ZGlmZiAtLWdpdCBhLy5naXRhdHRyaWJ1dGVzIGIvLmdpdGF0dHJpYnV0ZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGQ3MjczMwotLS0gL2Rldi9udWxsCisrKyBiLy5naXRhdHRyaWJ1dGVzCkBAIC0wLDAgKzEsNzAgQEAKKyogdGV4dD1hdXRvICFlb2wKKworKi5jIHRleHQgIWVvbAorKi5jYyB0ZXh0ICFlb2wKKyouY2xhc3NwYXRoIHRleHQgIWVvbAorKi5jcHAgdGV4dCAhZW9sCisqLmNzcyB0ZXh0ICFlb2wKKyouZHNwIHRleHQgIWVvbAorKi5kc3cgdGV4dCAhZW9sCisqLmZpbHRlcnMgdGV4dCAhZW9sCisqLmggdGV4dCAhZW9sCisqLmh0bSB0ZXh0ICFlb2wKKyouaHRtbCB0ZXh0ICFlb2wKKyouaW4gdGV4dCAhZW9sCisqLmphdmEgdGV4dCAhZW9sCisqLmxhdW5jaCB0ZXh0ICFlb2wKKyoubWFrIHRleHQgIWVvbAorKi5tZCB0ZXh0ICFlb2wKKyouTUYgdGV4dCAhZW9sCisqLm1rIHRleHQgIWVvbAorKi5wbCB0ZXh0ICFlb2wKKyoucG0gdGV4dCAhZW9sCisqLnByb2plY3QgdGV4dCAhZW9sCisqLnByb3BlcnRpZXMgdGV4dCAhZW9sCisqLnB5IHRleHQgIWVvbAorKi5yYyB0ZXh0ICFlb2wKKyouc2ggdGV4dCBlb2w9bGYKKyouc2xuIHRleHQgIWVvbAorKi5zdHViIHRleHQgIWVvbAorKi50eHQgdGV4dCAhZW9sCisqLnVjbSB0ZXh0ICFlb2wKKyoudmNwcm9qIHRleHQgIWVvbAorKi52Y3hwcm9qIHRleHQgIWVvbAorKi54bWwgdGV4dCAhZW9sCisqLnhzbCB0ZXh0ICFlb2wKKyoueHNsdCB0ZXh0ICFlb2wKK01ha2VmaWxlIHRleHQgIWVvbAorY29uZmlndXJlIHRleHQgIWVvbAorTElDRU5TRSB0ZXh0ICFlb2wKK1JFQURNRSB0ZXh0ICFlb2wKKworKi5iaW4gLXRleHQKKyouYnJrIC10ZXh0CisqLmNudiAtdGV4dAorKi5pY3UgLXRleHQKKyoucmVzIC10ZXh0CisqLm5ybSAtdGV4dAorKi5zcHAgLXRleHQKKyoudHJpMiAtdGV4dAorCitzcmMvY29tL2libS9pY3UvZGV2L2RhdGEvVGhhaVdvcmRGcmVxLnhscyAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL2hvbGlkYXlzX2pwLnVjcyAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3JiYmkvZW5nbGlzaC5kaWN0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdGhhaTYudWNzIC10ZXh0CitzcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0lDVUxvY2FsZURhdGEuamFyIC10ZXh0CitzcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL2ludnVjYS5pY3UgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvdGhhaV9kaWN0IC10ZXh0CitzcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL3VjYWRhdGEuaWN1IC10ZXh0CitzcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL3VuYW1lcy5pY3UgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvdW5vcm0uaWN1IC10ZXh0CitzcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL3Vwcm9wcy5pY3UgLXRleHQKKworIyBUaGUgZm9sbG93aW5nIGZpbGUgdHlwZXMgYXJlIHN0b3JlZCBpbiBHaXQtTEZTLgorKi5qYXIgZmlsdGVyPWxmcyBkaWZmPWxmcyBtZXJnZT1sZnMgLXRleHQKKyouZGF0IGZpbHRlcj1sZnMgZGlmZj1sZnMgbWVyZ2U9bGZzIC10ZXh0CisqLnppcCBmaWx0ZXI9bGZzIGRpZmY9bGZzIG1lcmdlPWxmcyAtdGV4dAorKi5neiBmaWx0ZXI9bGZzIGRpZmY9bGZzIG1lcmdlPWxmcyAtdGV4dAorKi5iejIgZmlsdGVyPWxmcyBkaWZmPWxmcyBtZXJnZT1sZnMgLXRleHQKKyouZ2lmIGZpbHRlcj1sZnMgZGlmZj1sZnMgbWVyZ2U9bGZzIC10ZXh0CisKZGlmZiAtLWdpdCBhL2J1aWxkLmJhdCBiL2J1aWxkLmJhdApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mYzNiOTNlCi0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQuYmF0CkBAIC0wLDAgKzEsMTUgQEAKK0BlY2hvIG9mZgorCitSRU0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorUkVNICogQ29weXJpZ2h0IChDKSAxOTk3IC0gMjAwMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgCitSRU0gKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCitSRU0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCitSRU0gJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovQXR0aWMvYnVpbGQuYmF0LHYgJCAKK1JFTSAkRGF0ZTogMjAwMS8xMS8yOSAxODoxODoxMCAkIAorUkVNICRSZXZpc2lvbjogMS41ICQKKworUkVNICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworUkVNIGNvbnZpZW5jZSBiYXQgZmlsZSB0byBidWlsZCB3aXRoCitqYXZhIC1jbGFzc3BhdGggIiVKQVZBX0hPTUUlXGxpYlx0b29scy5qYXI7JUFOVF9IT01FJVxsaWJcYW50LmphcjslQ0xBU1NQQVRIJSIgb3JnLmFwYWNoZS50b29scy5hbnQuTWFpbiAlMSAlMiAlMyAlNCAlNQpkaWZmIC0tZ2l0IGEvYnVpbGQuc2ggYi9idWlsZC5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42YTY1MzRjCi0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQuc2gKQEAgLTAsMCArMSwxNiBAQAorIy8qCisjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjKiBDb3B5cmlnaHQgKEMpIDE5OTcgLSAyMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorIyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyoKKyMqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL0F0dGljL2J1aWxkLnNoLHYgJCAKKyMqICREYXRlOiAyMDAyLzAzLzE4IDIyOjExOjA0ICQgCisjKiAkUmV2aXNpb246IDEuNSAkCisjKgorIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMqLworIyEvYmluL3NoCitDTEFTU1BBVEg9JEpBVkFfSE9NRS90b29scy5qYXI6JEFOVF9IT01FL2xpYi9hbnQuamFyCitlY2hvIGphdmEgLWNsYXNzcGF0aCAkQ0xBU1NQQVRIIG9yZy5hcGFjaGUudG9vbHMuYW50Lk1haW4gJCogCitqYXZhIC1jbGFzc3BhdGggJENMQVNTUEFUSCBvcmcuYXBhY2hlLnRvb2xzLmFudC5NYWluICQqCmRpZmYgLS1naXQgYS9idWlsZC54bWwgYi9idWlsZC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTI2NzUxNAotLS0gL2Rldi9udWxsCisrKyBiL2J1aWxkLnhtbApAQCAtMCwwICsxLDI1NiBAQAorPCEtLQorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk3LTIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovYnVpbGQueG1sLHYgJAorKiAkRGF0ZTogMjAwMi8wOC8wMyAwNzo0MzoxOCAkCisqICRSZXZpc2lvbjogMS41NCAkCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFRoaXMgaXMgdGhlIGFudCBidWlsZCBmaWxlIGZvciBJQ1U0Si4gIFNlZSByZWFkbWUuaHRtbCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KKyovCistLT4KKworPHByb2plY3QgbmFtZT0iSUNVNEoiIGRlZmF1bHQ9ImNvcmUiIGJhc2VkaXI9Ii4iPgorCisgICAgPCEtLSAjIyMgYmVnaW4gY2xvdmVyIHNldHVwICMjIyAtLT4KKyAgICA8cHJvcGVydHkgbmFtZT0iY2xvdmVyLmluaXRzdHJpbmciIHZhbHVlPSJ0bXAvaWN1NGouZGIiLz4KKyAgICA8cGF0aCBpZD0iY2xvdmVyLmNsYXNzcGF0aCI+CisJPCEtLSAqKioqKiB5b3Ugd2lsbCBuZWVkIHRvIGNoYW5nZSB0aGUgcGF0aHMgYmVsb3cgdG8gcG9pbnQKKwkgICAgICAgICAgIHRvIGNsb3Zlci5qYXIgYW5kIHZlbG9jaXR5LmphciBvbiB5b3VyIGZpbGVzeXN0ZW0gKioqKiogLS0+CisgICAgPHBhdGhlbGVtZW50IHBhdGg9IiR7amF2YS5jbGFzcy5wYXRofS8iLz4KKwk8cGF0aGVsZW1lbnQgbG9jYXRpb249ImNsb3Zlci5qYXIiLz4KKwk8cGF0aGVsZW1lbnQgbG9jYXRpb249InZlbG9jaXR5LmphciIvPgorICAgIDwvcGF0aD4KKworICAgIDwhLS0gdGFyZ2V0IHRvIHN3aXRjaCBDbG92ZXIgb24gLS0+CisgICAgPHRhcmdldCBuYW1lPSJ3aXRoLmNsb3ZlciI+CisJCTxwcm9wZXJ0eSBuYW1lPSJidWlsZC5jb21waWxlciIgdmFsdWU9Im9yZy5hcGFjaGUudG9vbHMuYW50LnRhc2tkZWZzLkNsb3ZlckNvbXBpbGVyQWRhcHRlciIvPgorCisJCTwhLS0gaW5zdHJ1Y3QgY2xvdmVyIHRvIHVzZSBhIGNsYXNzLWJhc2VkIGluc3RydW1lbnRhdGlvbiBzdHJhdGVneSB3aGVuIGluc3RydW1lbnRpbmcgU2ltcGxlVGltZVpvbmUuamF2YSAtLT4KKwkJPHByb3BlcnR5IG5hbWU9ImNsb3Zlci51c2VjbGFzcy5pbmNsdWRlcyIgdmFsdWU9IioqL1NpbXBsZVRpbWVab25lLmphdmEiLz4KKyAgICA8L3RhcmdldD4KKworICAgIDwhLS0gdGFyZ2V0IHRvIGdlbmVyYXRlIGEgQ2xvdmVyIGh0bWwgcmVwb3J0IC0tPgorICAgIDx0YXJnZXQgbmFtZT0iY2xvdmVyLnJlcG9ydCI+CisJPGphdmEgY2xhc3NuYW1lPSJjb20uY29ydGV4ZWIudG9vbHMuY2xvdmVyLnJlcG9ydGVycy5odG1sLkh0bWxSZXBvcnRlciIgZm9yaz0ieWVzIj4KKwkgICAgPGFyZyBsaW5lPSItLW91dHB1dGRpciB0bXAvaWN1NGpfaHRtbCAtLXNob3dTcmMgLS1pbml0c3RyaW5nICR7Y2xvdmVyLmluaXRzdHJpbmd9IC0tdGl0bGUgJ2ljdTRqIGNvcmUnIi8+CisJICAgIDxjbGFzc3BhdGggcmVmaWQ9ImNsb3Zlci5jbGFzc3BhdGgiLz4KKwk8L2phdmE+CisgICAgPC90YXJnZXQ+CisgICAgPCEtLSAjIyMgZW5kIGNsb3ZlciBzZXR1cCAjIyMgLS0+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImluaXQiPgorICAgICAgICA8dHN0YW1wLz4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9InNyYy5kaXIiIHZhbHVlPSJzcmMiLz4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImJ1aWxkLmRpciIgdmFsdWU9ImNsYXNzZXMiLz4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImRvYy5kaXIiIHZhbHVlPSJkb2MiLz4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9Imphci5maWxlIiB2YWx1ZT0iaWN1NGouamFyIi8+CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJpY3U0ai5tYW5pZmVzdCIgdmFsdWU9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvbWFuaWZlc3Quc3R1YiIvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0iemlwLmZpbGUiIHZhbHVlPSIuLi9pY3U0aiR7RFNUQU1QfS56aXAiLz4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9InppcFNyYy5maWxlIiB2YWx1ZT0iLi4vaWN1NGpTcmMke0RTVEFNUH0uemlwIi8+CisKKwk8cGF0aCBpZD0iYnVpbGQuY2xhc3NwYXRoIj4KKwkgICAgPHBhdGhlbGVtZW50IHBhdGg9IiR7YnVpbGQuZGlyfSIvPgorCSAgICA8cGF0aCByZWZpZD0iY2xvdmVyLmNsYXNzcGF0aCIvPgorCTwvcGF0aD4KKworICAgICAgICA8cHJvcGVydHkgbmFtZT0icmljaGVkaXQuZGlyIiB2YWx1ZT0icmljaGVkaXQiLz4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9InJpY2hlZGl0LmRvYy5kaXIiIHZhbHVlPSIke3JpY2hlZGl0LmRpcn0vZG9jIi8+CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJyaWNoZWRpdC5qYXIuZmlsZSIgdmFsdWU9IiR7cmljaGVkaXQuZGlyfS9yaWNoZWRpdC5qYXIiLz4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9InJpY2hlZGl0LnppcC5maWxlIiB2YWx1ZT0iJHtyaWNoZWRpdC5kaXJ9L3JpY2hlZGl0LnppcCIvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0icmljaGVkaXQubWFuaWZlc3QiIHZhbHVlPSIke3NyYy5kaXJ9L2NvbS9pYm0vcmljaHRleHQvbWFuaWZlc3Quc3R1YiIvPgorCisgICAgICAgIDxta2RpciBkaXI9IiR7YnVpbGQuZGlyfSIvPgorCTx1cHRvZGF0ZSBwcm9wZXJ0eT0iaWN1NGoucmVzb3VyY2VzIiB0YXJnZXRmaWxlPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9JQ1VMb2NhbGVEYXRhLmphciI+CisJICAgIDwhLS0gbm90ZSBtdXN0IG5vdCBoYXZlICcvJyBiZWZvcmUgJ2NvbScgaW4gc3JjZmlsZXMgaW5jbHVkZXMgYXJnISAtLT4KKwkgICAgPHNyY2ZpbGVzIGRpcj0iJHtidWlsZC5kaXJ9IiBpbmNsdWRlcz0iY29tL2libS9pY3UvaW1wbC9kYXRhL0xvY2FsZUVsZW1lbnRzX2luZGV4LmNsYXNzIi8+CisJPC91cHRvZGF0ZT4KKwk8cHJvcGVydHkgbmFtZT0iZG9jLnBhcmFtcyIgdmFsdWU9IiIvPgorCTxjb25kaXRpb24gcHJvcGVydHk9ImRvYy5wYXJhbXMiCisJICAgIHZhbHVlPSItYnJlYWtpdGVyYXRvciAtdGFnIGRyYWZ0OmE6JnF1b3Q7RHJhZnQmcXVvdDsgLXRhZyBpbnRlcm5hbDpYOiZxdW90O0ludGVybmFsJnF1b3Q7Ij4KKwkgICAgPGVxdWFscyBhcmcxPSIke2FudC5qYXZhLnZlcnNpb259IiBhcmcyPSIxLjQiLz4KKwk8L2NvbmRpdGlvbj4KKyAgICA8L3RhcmdldD4KKworICAgIDwhLS0gYnVpbGQgZXZlcnl0aGluZyBidXQgZGlzdC1yZWxhdGVkIHN0dWZmIC0tPgorICAgIDx0YXJnZXQgbmFtZT0iYWxsIiBkZXBlbmRzPSJjb3JlLHRlc3RzLHRvb2xzLHJpY2hlZGl0LGRlbW9zLGphcixkb2NzIi8+CisKKwk8dGFyZ2V0IG5hbWU9InJlc291cmNlcyIgZGVwZW5kcz0iaW5pdCI+CisgICAgCTwhLS0gdXNlIHRoaXMgdGFyZ2V0IHRvIGZvcmNlIHJlc291cmNlcyB0byBiZSByZWJ1aWx0IC0tPgorCQk8dW5qYXIgc3JjPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9JQ1VMb2NhbGVEYXRhLmphciIgZGVzdD0iJHtidWlsZC5kaXJ9Ii8+CisgCQk8dG91Y2ggZmlsZT0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Mb2NhbGVFbGVtZW50c19pbmRleC5jbGFzcyIvPgorCTwvdGFyZ2V0PgorCisJPHRhcmdldCBuYW1lPSJfcmVzb3VyY2VzIiBkZXBlbmRzPSJpbml0IiBpZj0iaWN1NGoucmVzb3VyY2VzIj4KKyAgICAJPCEtLSB1c2UgdGhpcyB0YXJnZXQgdG8gY29uZGl0aW9uYWxseSBidWlsZCByZXNvdXJjZXMgb25seSBpZiBpY3U0ai5yZXNvdXJjZXMgaXMgc2V0IC0tPgorCQk8dW5qYXIgc3JjPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9JQ1VMb2NhbGVEYXRhLmphciIgZGVzdD0iJHtidWlsZC5kaXJ9Ii8+CisgCQk8dG91Y2ggZmlsZT0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Mb2NhbGVFbGVtZW50c19pbmRleC5jbGFzcyIvPgorCTwvdGFyZ2V0PgorCisJPCEtLSBjb3JlIGRvZXMgbm90IGJ1aWxkIHJpY2hlZGl0IG9yIHRlc3RzIC0tPgorICAgIDx0YXJnZXQgbmFtZT0iY29yZSIgZGVwZW5kcz0iaW5pdCxjb3JlRGF0YSxfcmVzb3VyY2VzIj4KKyAgICAgICAgPGNvcHkgZmlsZT0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9pbXBsL2RhdGEvdGhhaV9kaWN0IgorICAgICAgICAgICAgdG9kaXI9IiR7YnVpbGQuZGlyfS9jb20vaWJtL2ljdS9pbXBsL2RhdGEvIi8+PCEtLSBvbmx5IG5lZWRlZCBpZiB5b3UgYXJlIHVzaW5nIGh0bWwgcmVwb3J0ZXIgLS0+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvdXRpbC8qKi8qLmphdmEsY29tL2libS9pY3UvdGV4dC8qKi8qLmphdmEsY29tL2libS9pY3UvbWF0aC8qKi8qLmphdmEsY29tL2libS9pY3UvaW1wbC8qKi8qLmphdmEsY29tL2libS9pY3UvbGFuZy8qLmphdmEiCisgICAgICAgICAgICBleGNsdWRlcz0iKiovQ1ZTLyoqLyoiCisgICAgICAgICAgICBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgCSAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgCSAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJ0ZXN0cyIgZGVwZW5kcz0iY29yZSx0ZXN0RGF0YSI+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvZGV2L3Rlc3QvKiovKi5qYXZhIgorICAgICAgICAgICAgZXhjbHVkZXM9IioqL0NWUy8qKi8qIgorICAgIAkgICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgIAkgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgIAkgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBkZWJ1Zz0ib24iIGRlcHJlY2F0aW9uPSJvZmYiLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iZGVtb3MiIGRlcGVuZHM9ImNvcmUsdGVzdERhdGEiPgorICAgICAgICA8amF2YWMgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L2Rldi9kZW1vLyoqLyouamF2YSIKKyAgICAgICAgICAgIGV4Y2x1ZGVzPSIqKi9DVlMvKiovKiIKKyAgICAJICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAJICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAJICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIi8+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9InRvb2xzIiBkZXBlbmRzPSJjb3JlIj4KKyAgICAgICAgPGphdmFjIGluY2x1ZGVzPSJjb20vaWJtL2ljdS9kZXYvdG9vbC8qKi8qLmphdmEiCisgICAgICAgICAgICBleGNsdWRlcz0iKiovQ1ZTLyoqLyoiCisgICAgCSAgICBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgCSAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgCSAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJkb2NzIiBkZXBlbmRzPSJpbml0Ij4KKyAgICAgICAgPG1rZGlyIGRpcj0iJHtkb2MuZGlyfSIvPgorICAgICAgICA8amF2YWRvYyBwYWNrYWdlbmFtZXM9ImNvbS5pYm0uaWN1LmxhbmcsY29tLmlibS5pY3UuZGV2LnRvb2wudHJhbnNsaXQsY29tLmlibS5pY3UudGV4dCxjb20uaWJtLmljdS5pbXBsLmRhdGEsY29tLmlibS5pY3UuZGV2LnRvb2wuY29tcHJlc3Npb24sY29tLmlibS5pY3UuZGV2LnRvb2wubm9ybWFsaXplcixjb20uaWJtLmljdS51dGlsLGNvbS5pYm0uaWN1LmRldi50b29sLnJiYmksY29tLmlibS5pY3UubWF0aCxjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQsY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMsY29tLmlibS5yaWNodGV4dC5hd3R1aSxjb20uaWJtLnJpY2h0ZXh0LnByaW50LGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dCxjb20uaWJtLnJpY2h0ZXh0LnN3aW5ndWksY29tLmlibS5yaWNodGV4dC50ZXh0YXBwcyxjb20uaWJtLnJpY2h0ZXh0LnRleHRmb3JtYXQsY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwsY29tLmlibS5yaWNodGV4dC51aWltcGwsY29tLmlibS5yaWNodGV4dC51aWltcGwucmVzb3VyY2VzLGNvbS5pYm0ucmljaHRleHQudGV4dGFwcHMucmVzb3VyY2VzIgorICAgICAgICAgICAgc291cmNlcGF0aD0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7ZG9jLmRpcn0iCisgICAgICAgICAgICBub2RlcHJlY2F0ZWRsaXN0PSJ0cnVlIgorCSAgICB3aW5kb3d0aXRsZT0iaWN1NGoiCisJICAgIGRvY3RpdGxlPSJpY3U0aiIKKwkgICAgZW5jb2Rpbmc9Imlzby04ODU5LTEiCisJICAgIGRvY2VuY29kaW5nPSJpc28tODg1OS0xIgorCSAgICBib3R0b209IiZsdDtmb250IHNpemU9LTE+Q29weXJpZ2h0IChjKSAyMDAyIElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiZsdDsvZm9udD4iCisJICAgIGFkZGl0aW9uYWxwYXJhbT0iJHtkb2MucGFyYW1zfSIKKyAgICAgICAgLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZSA9ImNvcmVEYXRhIiBkZXBlbmRzPSJpbml0Ij4KKyAgICAgICAgPGNvcHkgdG9kaXI9IiR7YnVpbGQuZGlyfS9jb20vaWJtL2ljdS9pbXBsL2RhdGEiPgorICAgICAgICA8ZmlsZXNldCBkaXI9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvaW1wbC9kYXRhIgorICAgICAgICAgICAgICAgICBpbmNsdWRlcz0iVHJhbnNsaXRlcmF0b3JfKi50eHQsKi5pY3UiLz4KKyAgICAgICAgPC9jb3B5PgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lID0idGVzdERhdGEiIGRlcGVuZHM9ImluaXQiPgorICAgICAgICA8Y29weSBmaWxlPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhL3JiYmkvZW5nbGlzaC5kaWN0IgorICAgIAkgICAgICB0b2Rpcj0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhL3JiYmkiLz4KKyAgICAJPGphdmFjIGluY2x1ZGVzPSJjb20vaWJtL2ljdS9kZXYvZGF0YS8qLmphdmEiCisJCSAgICAgICAgICAgIGV4Y2x1ZGVzPSIqKi9DVlMvKiovKiIKKwkJICAgIAkgICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorCQkgICAgCSAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisJCSAgICAJICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIi8+CisgICAgPC90YXJnZXQ+CisKKyAgICA8IS0tIGJ1aWxkcyByaWNoZWRpdCBhbmQgcmljaGVkaXQgdGVzdHMgLS0+CisgICAgPHRhcmdldCBuYW1lPSJyaWNoZWRpdCIgZGVwZW5kcz0iaW5pdCI+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9yaWNodGV4dC8qKi8qLmphdmEiCisgICAgICAgICAgICBleGNsdWRlcz0iKiovQ1ZTLyoqLyoiCisgICAgCSAgICBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgCSAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgCSAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJqYXIiIGRlcGVuZHM9ImNvcmUiPgorICAgICAgICA8amFyIGphcmZpbGU9IiR7amFyLmZpbGV9IgorICAgICAgICAgICAgY29tcHJlc3M9ImZhbHNlIgorICAgICAgICAgICAgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L3V0aWwvKiovKixjb20vaWJtL2ljdS90ZXh0LyoqLyosY29tL2libS9pY3UvbWF0aC8qKi8qLGNvbS9pYm0vaWN1L2ltcGwvKiovKixjb20vaWJtL2ljdS9sYW5nLyoqLyoiCisgICAgICAgICAgICBiYXNlZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBtYW5pZmVzdD0iJHtpY3U0ai5tYW5pZmVzdH0iLz4KKyAgICA8L3RhcmdldD4KKworICAgIDwhLS0gamFycyB1cCByaWNoZWRpdCBidXQgd2l0aG91dCB0ZXN0cyAtLT4KKyAgICA8dGFyZ2V0IG5hbWU9InJpY2hlZGl0SmFyIiBkZXBlbmRzPSJyaWNoZWRpdCI+CisgICAgICAgIDxta2RpciBkaXI9IiR7cmljaGVkaXQuZGlyfSIvPgorICAgICAgICA8amFyIGphcmZpbGU9IiR7cmljaGVkaXQuamFyLmZpbGV9IgorICAgICAgICAgICAgY29tcHJlc3M9ImZhbHNlIgorICAgICAgICAgICAgaW5jbHVkZXM9ImNvbS9pYm0vcmljaHRleHQvKiovKiIKKwkgICAgZXhjbHVkZXM9ImNvbS9pYm0vcmljaHRleHQvdGVzdC8qKi8qIgorICAgICAgICAgICAgYmFzZWRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgbWFuaWZlc3Q9IiR7cmljaGVkaXQubWFuaWZlc3R9Ii8+CisgICAgPC90YXJnZXQ+CisKKyAgICA8IS0tCisgICAgICAgIE5vdGU6ICBJIHVzZWQgdG8gdXNlIC1saW5rb2ZmbGluZSBodHRwOi8vamF2YS5zdW4uY29tL3Byb2R1Y3RzL2pkay8xLjIvZG9jcy9hcGkvIEM6XGpkazEuMi4yXGRvY3NcYXBpCisgICAgICAgIFRoaXMgbGlua3MgdG8gY29yZSBkb2NzIG9uIFN1bidzIHNpdGUgLSBhIHZlcnkgbmljZSBmZWF0dXJlLiAgQnV0IGl0IHJlcXVpcmVzIHRoZSAxLjIgZG9jcyB0byBiZQorICAgICAgICBvbiB0aGUgYnVpbGQgbWFjaGluZSBhdCBhIGtub3duIGxvY2F0aW9uLgorICAgIC0tPgorCisgICAgPCEtLSB0aGUgJ3B1YmxpYycgZG9jcyBmb3IgcmljaGVkaXQgLS0+CisgICAgPHRhcmdldCBuYW1lPSJyaWNoZWRpdERvY3MiIGRlcGVuZHM9ImluaXQiPgorICAgICAgICA8bWtkaXIgZGlyPSIke3JpY2hlZGl0LmRvYy5kaXJ9Ii8+CisgICAgICAgIDxqYXZhZG9jICBwYWNrYWdlbmFtZXM9ImNvbS5pYm0ucmljaHRleHQuYXd0dWksY29tLmlibS5yaWNodGV4dC5zd2luZ3VpLGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dCxjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcyxjb20uaWJtLnJpY2h0ZXh0LnByaW50IgorICAgICAgICAgICAgc291cmNlcGF0aD0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7cmljaGVkaXQuZG9jLmRpcn0iCisgICAgICAgICAgICBub2RlcHJlY2F0ZWRsaXN0PSJ0cnVlIgorCSAgICAgICAgd2luZG93dGl0bGU9IlJpY2hFZGl0IENvbnRyb2wiCisJICAgICAgICBkb2N0aXRsZT0iUmljaEVkaXQgQ29udHJvbCIKKwkgICAgICAgIGVuY29kaW5nPSJpc28tODg1OS0xIgorCSAgICAgICAgZG9jZW5jb2Rpbmc9Imlzby04ODU5LTEiCisJICAgICAgICBib3R0b209IiZsdDtmb250IHNpemU9LTE+Q29weXJpZ2h0IChjKSAxOTk4LTIwMDIgSUJNIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuJmx0Oy9mb250PiIKKyAgICAJCSAgICAvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPCEtLSByaWNoZWRpdCBhbHBoYXdvcmtzIGRpc3RyaWJ1dGlvbiAtIGphciBhbmQgZG9jcywgYnV0IG5vIHNvdXJjZSAtLT4KKyAgICA8dGFyZ2V0IG5hbWU9InJpY2hlZGl0WmlwIiBkZXBlbmRzPSJyaWNoZWRpdEphcixyaWNoZWRpdERvY3MiPgorICAgICAgICA8IS0tQ3JlYXRlIGEgemlwIGFyY2hpdmUgb2YgdGhlIHJpY2hlZGl0IGphciBhbmQgcmVhZG1lIC0tPgorCTxjb3B5IGZpbGU9ImxpY2Vuc2UuaHRtbCIgdG9kaXI9IiR7cmljaGVkaXQuZGlyfSIvPgorICAgICAgICA8emlwIHppcGZpbGU9IiR7cmljaGVkaXQuemlwLmZpbGV9IgorICAgICAgICAgICAgYmFzZWRpcj0iJHtyaWNoZWRpdC5kaXJ9IgorICAgICAgICAgICAgaW5jbHVkZXM9ImRvYy8qKi8qLHJpY2hlZGl0LmphcixsaWNlbnNlLmh0bWwiLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iemlwIiBkZXBlbmRzPSJkb2NzLGphciI+CisgICAgICAgIDwhLS1DcmVhdGUgYSB6aXAgYXJjaGl2ZSBvZiB0aGUgc291cmNlLCBkb2NzLCBhbmQgamFyIGZpbGUgZm9yCisgICAgICAgIGRpc3RyaWJ1dGlvbi4gIFRoZSB6aXAgZmlsZSB3aWxsIGJlIGNyZWF0ZWQgaW4gdGhlIGRpcmVjdG9yeSBhYm92ZQorICAgICAgICB0aGUgcm9vdCBJQ1U0SiBkaXJlY3RvcnkuIFRoZSBleGNsdWRlIHBhdHRlcm4gJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL1VuaWNvZGVEYXRhLSoudHh0CisgICAgICAgIGFuZCAke3NyYy5kaXJ9L2RhdGEvdW5pY29kZS9TcGVjaWFsQ2FzaW5nLSoudHh0CisgICAgICAgIGVsaW1pbmF0ZXMgb2xkIGFyY2hpdmUgY29waWVzIGxpa2UgU3BlY2lhbENhc2luZy0yLnR4dCBhbmQKKyAgICAgICAgVW5pY29kZURhdGEtMi4xLjgudHh0IGV0YyAtLT4KKyAgICAgICAgPHppcCB6aXBmaWxlPSIke3ppcC5maWxlfSIKKyAgICAgICAgICAgIGJhc2VkaXI9Ii4iCisgICAgICAgICAgICBleGNsdWRlcz0iJHtyaWNoZWRpdC5kaXJ9LyoqLyosdGVzdF8qLCR7c3JjLmRpcn0vY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9Vbmljb2RlRGF0YS0qLnR4dCwke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvU3BlY2lhbENhc2luZy0qLnR4dCwke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvQ29tcG9zaXRpb25FeGNsdXNpb25zLSoudHh0LCR7b2Jzb2xldGUuZGlyfS8qKiwqKi8qfiwke3NyYy5kaXJ9LyoqLyouY2xhc3MsJHtidWlsZC5kaXJ9LyoqLCoqL0NWUy8qKi8qIi8+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9InppcFNyYyIgZGVwZW5kcz0iaW5pdCI+CisgICAgICAgIDwhLS1DcmVhdGUgYSB6aXAgYXJjaGl2ZSBvZiBqdXN0IHRoZSBzb3VyY2UgZm9yIGRpc3RyaWJ1dGlvbi4gIFRoZQorICAgICAgICB6aXAgZmlsZSB3aWxsIGJlIGNyZWF0ZWQgaW4gdGhlIGRpcmVjdG9yeSBhYm92ZSB0aGUgcm9vdCBJQ1U0SgorICAgICAgICBkaXJlY3RvcnkuIFRoZSBleGNsdWRlIHBhdHRlcm4gJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL1VuaWNvZGVEYXRhLSoudHh0CisgICAgICAgIGFuZCAke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvU3BlY2lhbENhc2luZy0qLnR4dAorICAgICAgICBlbGltaW5hdGVzIG9sZCBhcmNoaXZlIGNvcGllcyBsaWtlIFNwZWNpYWxDYXNpbmctMi50eHQgYW5kCisgICAgICAgIFVuaWNvZGVEYXRhLTIuMS44LnR4dCAtLT4KKyAgICAgICAgPHppcCB6aXBmaWxlPSIke3ppcFNyYy5maWxlfSIKKyAgICAgICAgICAgIGJhc2VkaXI9Ii4iCisgICAgICAgICAgICBleGNsdWRlcz0iJHtyaWNoZWRpdC5kaXJ9LyoqLyosdGVzdF8qLCR7c3JjLmRpcn0vY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS8vVW5pY29kZURhdGEtKi50eHQsJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL1NwZWNpYWxDYXNpbmctKi50eHQsJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL0NvbXBvc2l0aW9uRXhjbHVzaW9ucy0qLnR4dCwke29ic29sZXRlLmRpcn0vKiosKiovKn4sJHtzcmMuZGlyfS8qKi8qLmNsYXNzLCR7YnVpbGQuZGlyfS8qKiwqKi9DVlMvKiovKiwke2RvYy5kaXJ9LyoqLCR7amFyLmZpbGV9Ii8+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImNsZWFuIiBkZXBlbmRzPSJpbml0Ij4KKyAgICAgICAgPGRlbGV0ZSBkaXI9IiR7YnVpbGQuZGlyfSIvPgorICAgICAgICA8ZGVsZXRlIGRpcj0iJHtkb2MuZGlyfSIvPgorICAgICAgICA8ZGVsZXRlIGZpbGU9IiR7amFyLmZpbGV9Ii8+CisJPGRlbGV0ZSBkaXI9IiR7cmljaGVkaXQuZGlyfSIvPgorICAgIDwvdGFyZ2V0PgorCis8L3Byb2plY3Q+CmRpZmYgLS1naXQgYS9saWNlbnNlLmh0bWwgYi9saWNlbnNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGFiMDc2YQotLS0gL2Rldi9udWxsCisrKyBiL2xpY2Vuc2UuaHRtbApAQCAtMCwwICsxLDM0IEBACis8aHRtbD4KKworPGhlYWQ+Cis8dGl0bGU+SUNVNEogbGljZW5zZSAtIElDVTRKIDEuMy4xIGFuZCBsYXRlcjwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5IEJHQ09MT1I9IiNmZmZmZmYiPgorPGgyPklDVTRKIGxpY2Vuc2UgLSBJQ1U0SiAxLjMuMSBhbmQgbGF0ZXI8L2gyPgorCis8cD5DT1BZUklHSFQgQU5EIFBFUk1JU1NJT04gTk9USUNFPC9wPgorCis8cD4KK0NvcHlyaWdodCAoYykgMTk5NS0yMDAxIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIG90aGVycworPC9wPgorPHA+CitBbGwgcmlnaHRzIHJlc2VydmVkLgorPC9wPgorPHA+CitQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMKK3RvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZShzKSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUgYW5kIHRoYXQgYm90aCB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZShzKSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gc3VwcG9ydGluZyBkb2N1bWVudGF0aW9uLgorPC9wPgorPHA+CitUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVCBPRiBUSElSRCBQQVJUWSBSSUdIVFMuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIEhPTERFUlMgSU5DTFVERUQgSU4gVEhJUyBOT1RJQ0UgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIE9SIEFOWSBTUEVDSUFMIElORElSRUNUIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUywgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUiBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuCis8L3A+Cis8cD4KK0V4Y2VwdCBhcyBjb250YWluZWQgaW4gdGhpcyBub3RpY2UsIHRoZSBuYW1lIG9mIGEgY29weXJpZ2h0IGhvbGRlciBzaGFsbCBub3QgYmUgdXNlZCBpbiBhZHZlcnRpc2luZyBvciBvdGhlcndpc2UgdG8gcHJvbW90ZSB0aGUgc2FsZSwgdXNlIG9yIG90aGVyIGRlYWxpbmdzIGluIHRoaXMgU29mdHdhcmUgd2l0aG91dCBwcmlvciB3cml0dGVuIGF1dGhvcml6YXRpb24gb2YgdGhlIGNvcHlyaWdodCBob2xkZXIuCis8L3A+CisKKzxocj4KKzxzbWFsbD4KK0FsbCB0cmFkZW1hcmtzIGFuZCByZWdpc3RlcmVkIHRyYWRlbWFya3MgbWVudGlvbmVkIGhlcmVpbiBhcmUgdGhlIHByb3BlcnR5IG9mIHRoZWlyIHJlc3BlY3RpdmUgb3duZXJzLgorPC9zbWFsbD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3JlYWRtZS5odG1sIGIvcmVhZG1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTZkZjYzMAotLS0gL2Rldi9udWxsCisrKyBiL3JlYWRtZS5odG1sCkBAIC0wLDAgKzEsNzM0IEBACis8IWRvY3R5cGUgaHRtbCBwdWJsaWMgIi0vL3czYy8vZHRkIGh0bWwgNC4wIHRyYW5zaXRpb25hbC8vZW4iPgorPGh0bWw+CisKKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9aXNvLTg4NTktMSI+Cis8dGl0bGU+UmVhZE1lIGZvciBJQ1U0SjwvdGl0bGU+Cis8IS0tCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwMS0yMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3JlYWRtZS5odG1sLHYgJAorKiAkRGF0ZTogMjAwMi8wOC8xNiAxNTo1MTozNSAkCisqICRSZXZpc2lvbjogMS4zNiAkCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCistLT4KKzwvaGVhZD4KKworPGJvZHkgYmdjb2xvcj0iI0ZGRkZGRiIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4MDAwODAiIGxhbmc9IkVOLVVTIj4KKworICAgIDxoMj5JbnRlcm5hdGlvbmFsIENvbXBvbmVudHMgZm9yIFVuaWNvZGUgZm9yIEphdmE8L2gyPgorICAgIDxoMz5SZWFkIE1lIGZvciBJQ1U0SiAyLjI8L2gzPgorCis8aHIgc2l6ZT0iMiIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPgorICAgIDxwPjxiPlJlbGVhc2UgRGF0ZTwvYj48YnI+CisgICAgQXVndXN0IDE1dGgsIDIwMDI8L3A+CisKKzxwPkZvciB0aGUgbW9zdCByZWNlbnQKKyAgICAgIHJlbGVhc2UsIHNlZSB0aGUgPGEgaHJlZj0iaHR0cDovL29zcy5zb2Z0d2FyZS5pYm0uY29tL2ljdTRqL2Rvd25sb2FkL2luZGV4Lmh0bWwiPgorICAgICAgSUNVNEogZG93bmxvYWQgc2l0ZTwvYT4uCisgICAgPC9QPgorCis8aDM+PHU+Q29udGVudHM8L3U+PC9oMz4KKworPHVsIHR5cGU9ImRpc2MiPgorICA8bGk+PGEgaHJlZj0iI2ludHJvZHVjdGlvbiI+SW50cm9kdWN0aW9uIHRvIElDVTRKIChJbnRlcm5hdGlvbmFsIENvbXBvbmVudHMgZm9yIFVuaWNvZGUgZm9yIEphdmEpPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjbGljZW5zZSI+TGljZW5zZSBJbmZvcm1hdGlvbjwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI1BsYXRmb3JtRGVwZW5kZW5jaWVzIj5QbGF0Zm9ybSBEZXBlbmRlbmNpZXM8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IiNkb3dubG9hZCI+SG93IHRvIERvd25sb2FkIElDVTRKPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjV2hhdENvbnRhaW4iPlRoZSBTdHJ1Y3R1cmUgYW5kIENvbnRlbnRzIG9mIElDVTRKPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjQVBJIj5XaGVyZSB0byBHZXQgRG9jdW1lbnRhdGlvbjwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI0hvd1RvSW5zdGFsbEphdmFjIj5Ib3cgdG8gSW5zdGFsbCBhbmQgQnVpbGQ8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IiN0cnlpbmdvdXQiPlRyeWluZyBPdXQgSUNVNEo8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IiNyZXNvdXJjZXMiPklDVTRKIFJlc291cmNlIEluZm9ybWF0aW9uPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjV2hlcmVUb0ZpbmRNb3JlIj5XaGVyZSB0byBGaW5kIE1vcmUgSW5mb3JtYXRpb248L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IiNTdWJtaXR0aW5nQ29tbWVudHMiPlN1Ym1pdHRpbmcgQ29tbWVudHMsIFJlcXVlc3RpbmcgRmVhdHVyZXMgYW5kIFJlcG9ydGluZworICAgIEJ1Z3M8L2E+PC9saT4KKzwvdWw+CisKKzxoMz48YSBOQU1FPSJpbnRyb2R1Y3Rpb24iPjwvYT48dT5JbnRyb2R1Y3Rpb24gdG8gSUNVNEogKEludGVybmF0aW9uYWwgQ29tcG9uZW50cyBmb3IgVW5pY29kZSBmb3IgSmF2YSk8L3U+PC9oMz4KKworPHA+VG9kYXkncyBnbG9iYWwgbWFya2V0IGRlbWFuZHMgcHJvZ3JhbXMgdGhhdCBzdXBwb3J0IGEgd2lkZSB2YXJpZXR5CisgICAgb2YgbGFuZ3VhZ2VzIGFuZCBuYXRpb25hbCBjb252ZW50aW9ucy4mbmJzcDsgQ3VzdG9tZXJzIHByZWZlciBzb2Z0d2FyZQorICAgIGFuZCB3ZWIgcGFnZXMgdGFpbG9yZWQgdG8gdGhlaXIgbmVlZHMsIHN0dWRpZXMgY29uZmlybSB0aGF0CisgICAgdGhpcyBsZWFkcyB0byBpbmNyZWFzZWQgc2FsZXMuJm5ic3A7ICBKYXZhIHByb3ZpZGVzIGEgc3Ryb25nCisgICAgZm91bmRhdGlvbiBmb3IgZ2xvYmFsIHByb2dyYW1zLCBhbmQgSUJNIGFuZCB0aGUgSUNVNEogdGVhbSBwbGF5ZWQKKyAgICBhIGtleSByb2xlIGluIHByb3ZpZGluZyBnbG9iYWxpemF0aW9uIHRlY2hub2xvZ3kgdG8gU3VuIGZvciB1c2UgaW4KKyAgICBKYXZhLiA8L3A+CisgICAgPHA+CisgICAgQnV0IEphdmEgZG9lcyBub3QgeWV0IHByb3ZpZGUgYWxsIHRoZSBmZWF0dXJlcyB0aGF0IHNvbWUgcHJvZHVjdHMgcmVxdWlyZS4mbmJzcDsgSUNVNEogaXMgYW4gYWRkLW9uIGxpYnJhcnkgdGhhdCBleHRlbmRzIEphdmEncyBnbG9iYWxpemF0aW9uIHRlY2hub2xvZ3kgYnkgcHJvdmlkaW5nIHRoZSBmb2xsb3dpbmcgdG9vbHM6CisgICAgPHVsPiAKKyAgICA8bGk+IAorICAgIFVuaWNvZGUgTm9ybWFsaXphdGlvbiCWIE5GQywgTkZELCBORktELCBORktDCisgICAgCTxibG9ja3F1b3RlPlByb2R1Y2VzIGNhbm9uaWNhbCB0ZXh0IHJlcHJlc2VudGF0aW9ucywgbmVlZGVkIGZvciBYTUwgYW5kIHRoZSBuZXQuPC9ibG9ja3F1b3RlPgorICAgIDxsaT4KKyAgICBJbnRlcm5hdGlvbmFsIENhbGVuZGFycyCWIEFyYWJpYywgQnVkZGhpc3QsIEhlYnJldywgYW5kIEphcGFuZXNlPGJyPgorICAgICAgICA8YmxvY2txdW90ZT5SZXF1aXJlZCBmb3IgY29ycmVjdCBwcmVzZW50YXRpb24gb2YgZGF0ZXMgaW4gc29tZSBjb3VudHJpZXMuPC9ibG9ja3F1b3RlPgorICAgIDxsaT4gCisgICAgTnVtYmVyIEZvcm1hdCBFbmhhbmNlbWVudHMgliBTY2llbnRpZmljIE5vdGF0aW9uLCBTcGVsbGVkLW91dCBOdW1iZXJzCisgICAgICAgICAgICAgIDxibG9ja3F1b3RlPkVuaGFuY2VzIHN0YW5kYXJkIEphdmEgbnVtYmVyIGZvcm1hdHRpbmcuIFRoZSBzcGVsbGVkLW91dCBmb3JtYXQgaXMgdXNlZAorZm9yIGNoZWNrcyBhbmQgc2ltaWxhciBkb2N1bWVudHMuPC9ibG9ja3F1b3RlPgorCisgICAgPGxpPkVuaGFuY2VkIHdvcmQtYnJlYWsgZGV0ZWN0aW9uIJYgUnVsZS1iYXNlZCwgc3VwcG9ydHMgVGhhaQorICAgICAgICAgICAgICA8YmxvY2txdW90ZT5SZXF1aXJlZCBmb3IgY29ycmVjdCBzdXBwb3J0IG9mIFRoYWkuPC9ibG9ja3F1b3RlPgorCisgICAgPGxpPlVuaWNvZGUgVGV4dCBDb21wcmVzc2lvbiCWIFN0YW5kYXJkIGNvbXByZXNzaW9uIG9mIFVuaWNvZGUgdGV4dAorICAgICAgICAgICAgICA8YmxvY2txdW90ZT5TdWl0YWJsZSBmb3IgbGFyZ2UgbnVtYmVycyBvZiBzbWFsbCBmaWVsZHMsIHdoZXJlIExaVyBhbmQgc2ltaWxhciBzY2hlbWVzCitkbyBub3QgYXBwbHkuPC9ibG9ja3F1b3RlPgorICAgIDxsaT5Db2xsYXRpb24gLSBSdWxlLWJhc2VkLCB1cC10by1kYXRlIFVuaWNvZGUgQ29sbGF0aW9uIEFsZ29yaXRobSAoVUNBKSBzb3J0aW5nIG9yZGVyCisgICAgICAgIDxibG9ja3F1b3RlPkZvciBmYXN0IG11bHRpbGluZ3VhbCBzdHJpbmcgY29tcGFyaXNvbjwvYmxvY2txdW90ZT4KKyAgICA8L3VsPgorSW4gc29tZSBjYXNlcywgdGhlIGFib3ZlIHN1cHBvcnQgaGFzIGJlZW4gcm9sbGVkIGludG8gYSBsYXRlciByZWxlYXNlIG9mCitKYXZhLiBGb3IgZXhhbXBsZSwgdGhlIFRoYWkgd29yZC1icmVhayBpcyBub3cgaW4gSmF2YSAxLjQuIEhvd2V2ZXIsIGlmIHlvdQorYXJlIHVzaW5nIEphdmEgMS4zLCB5b3UgY2FuIHVzZSB0aGUgSUNVNEogcGFja2FnZSB1bnRpbCB5b3UgdXBncmFkZSB0byAxLjQuCis8L3A+CisKKzxoMz48YSBuYW1lPWxpY2Vuc2U+PC9hPjx1PkxpY2Vuc2UgSW5mb3JtYXRpb248L3U+PC9oMz4KKzxwPgorVGhlIElDVSBwcm9qZWN0cyAoSUNVNEMgYW5kIElDVTRKKSB1c2UgdGhlIFggbGljZW5zZS4mbmJzcDsgVGhlIFggbGljZW5zZSBpcyBhIDxiPm5vbi12aXJhbDwvYj4gYW5kIHJlY29tbWVuZGVkIGZyZWUgc29mdHdhcmUgbGljZW5zZSB0aGF0IGlzIGNvbXBhdGlibGUgd2l0aCB0aGUgR05VIEdQTCBsaWNlbnNlLiZuYnNwOyBUaGlzIGJlY2FtZSBlZmZlY3RpdmUgd2l0aCByZWxlYXNlIDEuOC4xIG9mIElDVTRDIGFuZCByZWxlYXNlIDEuMy4xIG9mIElDVTRKIGluIG1pZC0yMDAxLiBBbGwgbmV3IElDVSByZWxlYXNlcyB3aWxsIGFkb3B0IHRoZSBYIGxpY2Vuc2U7IHByZXZpb3VzIElDVSByZWxlYXNlcyBjb250aW51ZSB0byB1dGlsaXplIHRoZSBJUEwgKElCTSBQdWJsaWMgTGljZW5zZSkuJm5ic3A7IFVzZXJzIG9mIHByZXZpb3VzIHJlbGVhc2VzIG9mIElDVSB3aG8gd2FudCB0byBhZG9wdCBuZXcgSUNVIHJlbGVhc2VzIHdpbGwgbmVlZCB0byBhY2NlcHQgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBYIGxpY2Vuc2UuCis8L3A+Cis8cD4KK1RoZSBtYWluIGVmZmVjdCBvZiB0aGUgY2hhbmdlIGlzIHRvIHByb3ZpZGUgR1BMIGNvbXBhdGliaWxpdHkuJm5ic3A7IFRoZSBYIGxpY2Vuc2UgaXMgbGlzdGVkIGFzIEdQTCBjb21wYXRpYmxlLCBzZWUgdGhlIGdudSBwYWdlIGF0IDxhIGhyZWY9aHR0cDovL3d3dy5nbnUub3JnL3BoaWxvc29waHkvbGljZW5zZS1saXN0Lmh0bWwjR1BMQ29tcGF0aWJsZUxpY2Vuc2VzPgoraHR0cDovL3d3dy5nbnUub3JnL3BoaWxvc29waHkvbGljZW5zZS1saXN0Lmh0bWwjR1BMQ29tcGF0aWJsZUxpY2Vuc2VzPC9hPi4gIFRoaXMgbWVhbnMgdGhhdCBHUEwgcHJvamVjdHMgY2FuIG5vdyB1c2UgSUNVIGNvZGUsIGl0IGRvZXMgPGI+bm90PC9iPiBtZWFuIHRoYXQgcHJvamVjdHMgdXNpbmcgSUNVIGJlY29tZSBzdWJqZWN0IHRvIEdQTC4KKzwvcD4KKzxwPgorVGhlIHRleHQgb2YgdGhlIFggbGljZW5zZSBpcyBhdmFpbGFibGUgYXQgPGEgaHJlZj1odHRwOi8vd3d3Lngub3JnL3Rlcm1zLmh0bT5odHRwOi8vd3d3Lngub3JnL3Rlcm1zLmh0bTwvYT4uIFRoZSBJQk0gdmVyc2lvbiBjb250YWlucyB0aGUgZXNzZW50aWFsIHRleHQgb2YgdGhlIGxpY2Vuc2UsIG9taXR0aW5nIHRoZSBYLXNwZWNpZmljIHRyYWRlbWFya3MgYW5kIGNvcHlyaWdodCBub3RpY2VzLiAgVGhlIGZ1bGwgY29weSBvZiA8YSBocmVmPWxpY2Vuc2UuaHRtbD5JQ1UncyBsaWNlbnNlPC9hPiBpcyBpbmNsdWRlZCBpbiB0aGUgZG93bmxvYWQgcGFja2FnZS4KKzwvcD4KKzxwPgorRm9yIG1vcmUgZGV0YWlscyBwbGVhc2Ugc2VlIHRoZSA8YSBocmVmPWh0dHA6Ly9vc3Muc29mdHdhcmUuaWJtLmNvbS9pY3UvcHJlc3MuaHRtbD5wcmVzcyBhbm5vdW5jZW1lbnQ8L2E+IGFuZCB0aGUgPGEgaHJlZj1odHRwOi8vb3NzLnNvZnR3YXJlLmlibS5jb20vaWN1L3Byb2plY3RfZmFxLmh0bWwjbGljZW5zZT5Qcm9qZWN0IEZBUTwvYT4uCis8L3A+CisKKzxoMz48YSBOQU1FPSJQbGF0Zm9ybURlcGVuZGVuY2llcyI+PC9hPjx1PlBsYXRmb3JtIERlcGVuZGVuY2llczwvdT48L2gzPgorICAgICAgPFA+CisgICAgICBQYXJ0cyBvZiBJQ1U0SiBkZXBlbmQgb24gZnVuY3Rpb25hbGl0eSB0aGF0IGlzIG9ubHkgYXZhaWxhYmxlIGluIEpESyAxLjMKKyAgICAgIG9yIGxhdGVyLCBhbHRob3VnaCBzb21lIGNvbXBvbmVudHMgd29yayB1bmRlciBlYXJsaWVyIEpWTXMuIEFsbCAKKyAgICAgIGNvbXBvbmVudHMgc2hvdWxkIGJlIGNvbXBpbGVkIHVzaW5nIGEgSmF2YTIgY29tcGlsZXIsIGFzIGV2ZW4gY29tcG9uZW50cyAKKyAgICAgIHRoYXQgcnVuIHVuZGVyIGVhcmxpZXIgSlZNcyBjYW4gcmVxdWlyZSBsYW5ndWFnZSBmZWF0dXJlcyB0aGF0IGFyZSBvbmx5IAorICAgICAgcHJlc2VudCBpbiBKYXZhMi4gQ3VycmVudGx5IDEuMS54IGFuZCAxLjIueCBKVk1zIGFyZSB1bnN1cHBvcnRlZCBhbmQgdW50ZXN0ZWQsIGFuZCB5b3UgdXNlIAorICAgICAgdGhlIGNvbXBvbmVudHMgb24gdGhlc2UgSlZNcyBhdCB5b3VyIG93biByaXNrLjwvUD4KKyAgICAgIDxwPgorICAgICAgVGhlIHJlZmVyZW5jZSBwbGF0Zm9ybXMgd2hpY2ggd2Ugc3VwcG9ydCBhbmQgdGVzdCBJQ1U0SiBvbiBhcmU6PHVsPgorPGxpPiBXaW4yMDAwLCBJQk0gSkRLIDEuMzwvbGk+Cis8bGk+IFNvbGFyaXMgMi43LCBTdW4gSkRLIDEuMy4xPC9saT4KKzxsaT4gQUlYIDUuMSwgSUJNIEpESyAxLjM8L2xpPgorPC91bD4KKzwvcD4KKzxwPlBsZWFzZSB1c2UgdGhlIG1vc3QgcmVjZW50IHVwZGF0ZXMgb2YgdGhlIHN1cHBvcnRlZCBKREsgdmVyc2lvbnMuPC9wPiAKKworPHA+QWRkaXRpb25hbGx5LCB3ZSBoYXZlIGJ1aWx0IGFuZCB0ZXN0ZWQgSUNVNEogb24gdGhlIGZvbGxvd2luZyA8Yj51bnN1cHBvcnRlZDwvYj4gcGxhdGZvcm1zOgorPHVsPgorPGxpPiBXaW45OCwgV2luTlQsIFdpblhQIC8gSUJNIEpESyAxLjMsIFN1biBKREsgMS4zLjEsIDEuNDwvbGk+Cis8bGk+IFdpbjIwMDAgLyBTdW4gSkRLIDEuMy4xLCAxLjQ8L2xpPgorPGxpPiBTb2xhcmlzIDIuNiAsIFNvbGFyaXMgMi44IC8gU3VuIEpESyAxLjMsIDEuMy4xLCAxLjQ8L2xpPgorPGxpPiBTb2xhcmlzIDIuNyAvIFN1biBKREsgMS4zLjEsIDEuNDwvbGk+Cis8bGk+IEFJWCA1LjEsIElCTSBKREsgMS4zLjE8L2xpPgorPC91bD4KKworPGgzPjxhIE5BTUU9Im9idGFpbmluZyI+PC9hPjx1PkhvdyB0byBEb3dubG9hZCBJQ1U0SjwvdT48L2gzPgorCis8cD5UaGVyZSBhcmUgdHdvIHdheXMgdG8gZG93bmxvYWQgdGhlIElDVTRKIHJlbGVhc2VzLgorCis8dWwgdHlwZT0iZGlzYyI+CisgIDxsaT48Yj5PZmZpY2lhbCBSZWxlYXNlIFNuYXBzaG90OjwvYj48YnI+CisKKyAgICBJZiB5b3Ugd2FudCB0byB1c2UgSUNVNEogKGFzIG9wcG9zZWQgdG8gZGV2ZWxvcGluZyBpdCksIHlvdXIgYmVzdAorICAgIGJldCBpcyB0byBkb3dubG9hZCBhbiBvZmZpY2lhbCwgcGFja2FnZWQgdmVyc2lvbiBvZiB0aGUgSUNVNEoKKyAgICBzb3VyY2UgY29kZS4mbmJzcDsgVGhlc2UgdmVyc2lvbnMgYXJlIHRlc3RlZCBtb3JlIHRob3JvdWdobHkgdGhhbgorICAgIGRheS10by1kYXkgZGV2ZWxvcG1lbnQgYnVpbGRzLCBhbmQgdGhleSBhcmUgcGFja2FnZWQgaW4gemlwIGZpbGVzCisgICAgZm9yIGNvbnZlbmllbnQgZG93bmxvYWQuJm5ic3A7IFRoZXNlIHBhY2thZ2VkIGZpbGVzIGNhbiBiZSBmb3VuZAorICAgIGF0IDxhIGhyZWY9Imh0dHA6Ly9vc3Muc29mdHdhcmUuaWJtLmNvbS9pY3U0ai9kb3dubG9hZC9pbmRleC5odG1sIj5odHRwOi8vb3NzLnNvZnR3YXJlLmlibS5jb20vaWN1NGovZG93bmxvYWQvaW5kZXguaHRtbDwvYT4uJm5ic3A7IElmIGEgcGFja2FnZWQgc25hcHNob3QgaXMgbmFtZWQgPGI+SUNVNEpYWFhYWFguemlwPC9iPiwgd2hlcmUgWFhYWFhYIGlzCisgICAgdGhlIHJlbGVhc2UgdmVyc2lvbiBudW1iZXIuJm5ic3A7IFBsZWFzZSB1bnppcCB0aGlzIGZpbGUuJm5ic3A7IEl0CisgICAgd2lsbCByZWNvbnN0cnVjdCB0aGUgc291cmNlIGRpcmVjdG9yeS4gPC9saT4KKzwvdWw+CisKKzx1bCB0eXBlPSJkaXNjIj4KKyAgPGxpPjxiPkNWUyBTb3VyY2UgUmVwb3NpdG9yeTo8L2I+PGJyPgorICAgIElmIHlvdSBhcmUgaW50ZXJlc3RlZCBpbiBkZXZlbG9waW5nIGZlYXR1cmVzLCBwYXRjaGVzLCBvciBidWcgZml4ZXMgZm9yIElDVTRKLCB5b3Ugc2hvdWxkCisgICAgcHJvYmFibHkgYmUgd29ya2luZyB3aXRoIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGUgSUNVNEogc291cmNlIGNvZGUuIFlvdSB3aWxsIG5lZWQgdG8KKyAgICBjaGVjayB0aGUgY29kZSBvdXQgb2Ygb3VyIENWUyByZXBvc2l0b3J5IHRvIGVuc3VyZSB0aGF0IHlvdSBoYXZlIHRoZSBtb3N0IHJlY2VudCB2ZXJzaW9uCisgICAgb2YgYWxsIG9mIHRoZSBmaWxlcy4gVGhlcmUgYXJlIHNldmVyYWwgd2F5cyB0byBkbyB0aGlzOiA8YnI+CisgICAgPHVsIHR5cGU9ImNpcmNsZSI+CisgICAgICA8bGk+V2ViQ1ZTOjxicj4KKyAgICAgICAgSWYgeW91IHdhbnQgdG8gYnJvd3NlIHRoZSBjb2RlIGFuZCBvbmx5IG1ha2Ugb2NjYXNpb25hbCBkb3dubG9hZHMsIHlvdSBtYXkgd2FudCB0byB1c2UKKyAgICAgICAgV2ViQ1ZTLiBJdCBwcm92aWRlcyBhIGNvbnZlbmllbnQsIHdlYi1iYXNlZCBpbnRlcmZhY2UgZm9yIGJyb3dzaW5nIGFuZCBkb3dubG9hZGluZyB0aGUKKyAgICAgICAgbGF0ZXN0IHZlcnNpb24gb2YgdGhlIElDVTRKIHNvdXJjZSBjb2RlIGFuZCBkb2N1bWVudGF0aW9uLiBZb3UgY2FuIGFsc28gdmlldyBlYWNoIGZpbGUncworICAgICAgICByZXZpc2lvbiBoaXN0b3J5LCBkaXNwbGF5IHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIGluZGl2aWR1YWwgcmV2aXNpb25zLCBkZXRlcm1pbmUgd2hpY2gKKyAgICAgICAgcmV2aXNpb25zIHdlcmUgcGFydCBvZiB3aGljaCBvZmZpY2lhbCByZWxlYXNlLCBhbmQgc28gb24uIDxicj4KKyAgICAgIDwvbGk+CisgICAgICA8bGk+V2luQ1ZTOjxicj4KKyAgICAgICAgSWYgeW91IHdpbGwgYmUgZG9pbmcgc2VyaW91cyB3b3JrIG9uIElDVTRKLCB5b3Ugc2hvdWxkIHByb2JhYmx5IGluc3RhbGwgYSBDVlMgY2xpZW50IG9uCisgICAgICAgIHlvdXIgb3duIG1hY2hpbmUgc28gdGhhdCB5b3UgY2FuIGRvIGJhdGNoIG9wZXJhdGlvbnMgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRoZSBXZWJDVlMKKyAgICAgICAgaW50ZXJmYWNlLiBPbiBXaW5kb3dzLCB3ZSBzdWdnZXN0IHRoZSBXaW5DVlMgY2xpZW50LiBUbyBkb3dubG9hZCBJQ1U0SiB2aWEgV2luQ1ZTOiA8b2w+CisgICAgICAgICAgPGxpPkluc3RhbGwgdGhlIFdpbkNWUyBjbGllbnQsIHdoaWNoIHlvdSBjYW4gZG93bmxvYWQgZnJvbSB0aGUgPGEKKyAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly93d3cud2luY3ZzLm9yZyI+aHR0cDovL3d3dy53aW5jdnMub3JnPC9hPi48L2xpPgorICAgICAgICAgIDxsaT5TZWxlY3QgPHN0cm9uZz5QcmVmZXJlbmNlczwvc3Ryb25nPiBmcm9tIHRoZSA8c3Ryb25nPkFkbWluPC9zdHJvbmc+IG1lbnUuPG9sIHR5cGU9ImEiPgorICAgICAgICAgICAgICA8bGk+T24gdGhlIDxzdHJvbmc+R2VuZXJhbDwvc3Ryb25nPiB0YWIgcGFuZWw6IFNldCB5b3VyIDxzdHJvbmc+Q1ZTUk9PVDwvc3Ryb25nPiB0byAmcXVvdDs8c3Ryb25nPjpwc2VydmVyOmFub25jdnNAb3NzLnNvZnR3YXJlLmlibS5jb206L3Vzci9jdnMvaWN1NGo8L3N0cm9uZz4mcXVvdDsuPGJyPgorICAgICAgICAgICAgICAgIExlYXZlIG90aGVyIG9wdGlvbnMgb24gdGhpcyBwYWdlIGF0IHRoZWlyIGRlZmF1bHQuPC9saT4KKyAgICAgICAgICAgICAgPGxpPk9uIHRoZSA8c3Ryb25nPlBvcnRzPC9zdHJvbmc+IHRhYiBwYW5lbDogQ2hlY2sgdGhlIDxzdHJvbmc+cHNlcnZlcjwvc3Ryb25nPiBjaGVja2JveCBhbmQKKyAgICAgICAgICAgICAgICBlbnRlciBwb3J0IDxzdHJvbmc+MjQwMTwvc3Ryb25nPi48L2xpPgorICAgICAgICAgICAgPC9vbD4KKyAgICAgICAgICA8L2xpPgorICAgICAgICAgIDxsaT5DbGljayBvbiB0aGUgTG9naW4gbWVudSBidXR0b24gKDxzdHJvbmc+QWRtaW48L3N0cm9uZz4gbWVudSkuIEVudGVyIGluICAmcXVvdDs8c3Ryb25nPmFub25jdnM8L3N0cm9uZz4mcXVvdDsgd2hlbiByZXF1ZXN0ZWQuPC9saT4KKyAgICAgICAgICA8bGk+VG8gZXh0cmFjdCB0aGUgbW9zdCByZWNlbnQgdmVyc2lvbiBvZiBJQ1U0Siwgc2VsZWN0IDxzdHJvbmc+Q2hlY2tvdXQgbW9kdWxlPC9zdHJvbmc+CisgICAgICAgICAgICBmcm9tIHRoZSA8c3Ryb25nPkNyZWF0ZTwvc3Ryb25nPiBtZW51LiBTcGVjaWZ5ICZxdW90OzxzdHJvbmc+aWN1NGo8L3N0cm9uZz4mcXVvdDsgZm9yIHRoZQorICAgICAgICAgICAgbW9kdWxlIG5hbWUuIFRoaXMgd2lsbCBjcmVhdGUgYSBuZXcgY29weSBvZiB0aGUgd29ya3NwYWNlIG9uIHlvdXIgbG9jYWwgaGFyZCBkcml2ZS48L2xpPgorICAgICAgICAgIDxsaT5JbiB0aGUgZnV0dXJlLCB5b3UgY2FuIGRvd25sb2FkIHVwZGF0ZWQgZmlsZXMgZnJvbSB0aGUgcmVwb3NpdG9yeSB0byB5b3VyIGhhcmQgZHJpdmUKKyAgICAgICAgICAgIHVzaW5nIHRoZSA8c3Ryb25nPlVwZGF0ZSBzZWxlY3Rpb248L3N0cm9uZz4gaXRlbSBpbiB0aGUgPHN0cm9uZz5Nb2RpZnk8L3N0cm9uZz4gbWVudS48YnI+CisgICAgICAgICAgPC9saT4KKyAgICAgICAgPC9vbD4KKyAgICAgIDwvbGk+CisgICAgICA8bGk+Q1ZTIGNvbW1hbmQgbGluZTo8YnI+CisgICAgICAgIFlvdSBjYW4gYWxzbyBjaGVjayBvdXQgdGhlIHJlcG9zaXRvcnkgYW5vbnltb3VzbHkgb24gVU5JWCB1c2luZyB0aGUgZm9sbG93aW5nIGNvbW1hbmRzLAorICAgICAgICBhZnRlciBmaXJzdCBzZXR0aW5nIHlvdXIgQ1ZTUk9PVCB0byBwb2ludCB0byB0aGUgSUNVNEogcmVwb3NpdG9yeTogPHByZT48Y29kZT5leHBvcnQgQ1ZTUk9PVD06cHNlcnZlcjphbm9uY3ZzQG9zcy5zb2Z0d2FyZS5pYm0uY29tOi91c3IvY3ZzL2ljdTRqIAorY3ZzIGxvZ2luIENWUyBwYXNzd29yZDogYW5vbmN2cyAKK2N2cyBjaGVja291dCBpY3U0aiAKK2N2cyBsb2dvdXQ8L2NvZGU+PC9wcmU+CisgICAgICA8L2xpPgorICAgIDwvdWw+CisgIDwvbGk+Cis8L3VsPgorCis8cD5Gb3IgbW9yZSBkZXRhaWxzIG9uIGhvdyB0byBkb3dubG9hZCBJQ1U0SiBkaXJlY3RseSBmcm9tIHRoZSB3ZWIgc2l0ZSwgcGxlYXNlIGFsc28gc2VlIDxhCitocmVmPSJodHRwOi8vb3NzLnNvZnR3YXJlLmlibS5jb20vaWN1NGovZG93bmxvYWQvaW5kZXguaHRtbCI+aHR0cDovL29zcy5zb2Z0d2FyZS5pYm0uY29tL2ljdTRqL2Rvd25sb2FkL2luZGV4Lmh0bWw8L2E+Cis8L3A+CisKKzxoMz48YSBOQU1FPSJXaGF0Q29udGFpbiI+PC9hPjx1PlRoZSBTdHJ1Y3R1cmUgYW5kIENvbnRlbnRzIG9mIElDVTRKPC91PjwvaDM+CisKKzxwPkJlbG93LCA8Yj4kUm9vdDwvYj4gaXMgdGhlIHBsYWNlbWVudCBvZiB0aGUgaWN1IGRpcmVjdG9yeSBpbiB5b3VyIGZpbGUgc3lzdGVtLCBsaWtlCismcXVvdDtkcml2ZTpcLi4uXGljdTRqJnF1b3Q7IGluIHlvdXIgZW52aXJvbm1lbnQuICZxdW90O2RyaXZlOlwuLi4mcXVvdDsgc3RhbmRzIGZvciBhbnkKK2RyaXZlIGFuZCBhbnkgZGlyZWN0b3J5IG9uIHRoYXQgZHJpdmUgdGhhdCB5b3UgY2hvc2UgdG8gaW5zdGFsbCBpY3U0aiBpbnRvLiA8L3A+CisKKzxwPjxiPkluZm9ybWF0aW9uIGFuZCBidWlsZCBmaWxlczo8L2I+PC9wPgorCis8dGFibGUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyI+CisgIDx0cj4KKyAgICA8dGQ+cmVhZG1lLmh0bWw8YnI+CisgICAgICAgICh0aGlzIGZpbGUpPC90ZD4KKyAgICA8dGQ+QSBkZXNjcmlwdGlvbiBvZiBJQ1U0SiAoSW50ZXJuYXRpb25hbCBDb21wb25lbnRzIGZvciBVbmljb2RlIGZvciBKYXZhKTwvdGQ+CisgIDwvdHI+CisgIDx0cj4KKyAgICA8dGQ+cmVsZWFzZW5vdGVzLmh0bWwKKyAgICA8dGQ+QSBkZXNjcmlwdGlvbiBvZiBmZWF0dXJlcyBhbmQgY2hhbmdlcyBpbiB0aGlzIGFuZCBwcmlvciByZWxlYXNlcyBvZiBJQ1U0SjwvdGQ+CisgIDwvdHI+CisgIDx0cj4KKyAgICA8dGQ+bGljZW5zZS5odG1sPC90ZD4KKyAgICA8dGQ+VGhlIFggbGljZW5zZSwgdXNlZCBieSBJQ1U0SjwvdGQ+CisgIDwvdHI+CisgIDx0cj4KKyAgICA8dGQ+YnVpbGQuYmF0PC90ZD4KKyAgICA8dGQ+QSBjb252ZW5pZW5jZSBiYXQgZmlsZSBmb3IgYnVpbGRpbmcgSUNVNEogd2l0aCBBbnQgb24gV2luZG93czwvdGQ+CisgIDwvdHI+CisgIDx0cj4KKyAgICA8dGQ+YnVpbGQuc2g8L3RkPgorICAgIDx0ZD5BIGNvbnZlbmllbmNlIHNoIGZpbGUgZm9yIGJ1aWxkaW5nIElDVTRKIHdpdGggQW50IG9uIFVuaXg8L3RkPgorICA8L3RyPgorICA8dHI+CisgICAgPHRkPmJ1aWxkLnhtbDwvdGQ+CisgICAgPHRkPkFudCBidWlsZCBmaWxlLiBTZWUgPGEgaHJlZj0iI0hvd1RvSW5zdGFsbEphdmFjIj5Ib3cgdG8gSW5zdGFsbCBhbmQgQnVpbGQ8L2E+IGZvciBtb3JlIGluZm9ybWF0aW9uPC90ZD4KKyAgPC90cj4KKzwvdGFibGU+CisKKzxwPjxiPlRoZSBzb3VyY2UgZGlyZWN0b3JpZXMgbWlycm9yIHRoZSBwYWNrYWdlIHN0cnVjdHVyZSBvZiB0aGUgY29kZS48L2I+PGJyPjxmb250IGNvbG9yPSJyZWQiPkNvcmU8L2ZvbnQ+IHBhY2thZ2VzIGJlY29tZSBwYXJ0IG9mIHRoZSBJQ1U0SiBqYXIgZmlsZS48YnI+PGZvbnQgY29sb3I9InJlZCI+QVBJPC9mb250PiBwYWNrYWdlcyBjb250YWluIGNsYXNzZXMgd2l0aCBzdXBwb3J0ZWQgQVBJLiA8YnI+PGZvbnQgY29sb3I9InJlZCI+UmljaFRleHQ8L2ZvbnQ+IGNsYXNzZXMgYXJlIENvcmUgYW5kIEFQSSwgYnV0IGNhbiBiZSByZW1vdmVkIGZyb20gaWN1NGouamFyLCBhbmQgY2FuIGJlIGJ1aWx0IGludG8gdGhlaXIgb3duIGphci48L3A+CisKKzx0YWJsZSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBXSURUSD0iNjIzIj4KKyAgPHRyPgorICAgIDx0ZD4kUm9vdC9zcmMvY29tL2libS9pY3UvZGV2PGJyPjxmb250IGNvbG9yPSJyZWQiPk5vbi1Db3JlLCBOb24tQVBJPC9mb250PjwvdGQ+CisgICAgPHRkPlBhY2thZ2VzIHVzZWQgZm9yIGludGVybmFsIGRldmVsb3BtZW50OgorICAgIDx1bD4KKyAgICA8bGk+RGF0YTogZGF0YSB1c2VkIGJ5IHRlc3RzIGFuZCBpbiBidWlsZGluZyBJQ1U8L2xpPgorICAgIDxsaT5EZW1vczogQ2FsZW5kYXIsIEhvbGlkYXksIEJyZWFrIEl0ZXJhdG9yLCBSdWxlLWJhc2VkIE51bWJlciBGb3JtYXQsIFRyYW5zZm9ybWF0aW9uczxicj4oU2VlIDxhIGhyZWY9IiN0cnlpbmdvdXQiPmJlbG93PC9hPiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZGVtb3MuKTwvbGk+CisgICAgPGxpPlRlc3RzOiBBUEkgYW5kIGNvdmVyYWdlIHRlc3RzIG9mIGFsbCBmdW5jdGlvbmFsaXR5Ljxicj5Gb3IgaW5mb3JtYXRpb24gYWJvdXQgcnVubmluZyB0aGUgdGVzdHMsIHNlZSAkUm9vdC9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEFsbC5qYXZhLjwvbGk+CisgICAgPGxpPlRvb2xzOiB0b29scyB1c2VkIHRvIGJ1aWxkIGRhdGEgdGFibGVzLCBldGMuPC9saT48L3VsPjwvdGQ+CisgIDwvdHI+CisgIDx0cj4KKyAgICA8dGQ+JFJvb3Qvc3JjL2NvbS9pYm0vaWN1L2ltcGw8YnI+PGZvbnQgY29sb3I9InJlZCI+Q29yZSwgTm9uLUFQSTwvZm9udD48L3RkPgorICAgIDx0ZD5UaGVzZSBhcmUgdXRpbGl0eSBjbGFzc2VzIHVzZWQgZnJvbSBkaWZmZXJlbnQgSUNVNEogY29yZSBwYWNrYWdlcy48L3RkPgorICA8L3RyPgorICA8dHI+CisgICAgPHRkPiRSb290L3NyYy9jb20vaWJtL2ljdS9sYW5nPGJyPjxmb250IGNvbG9yPSJyZWQiPkNvcmUsIEFQSTwvZm9udD48L3RkPgorICAgIDx0ZD5DaGFyYWN0ZXIgcHJvcGVydGllcyBwYWNrYWdlLjwvdGQ+CisgIDwvdHI+CisgIDx0cj4KKyAgICA8dGQ+JFJvb3Qvc3JjL2NvbS9pYm0vaWN1L21hdGg8YnI+PGZvbnQgY29sb3I9InJlZCI+Q29yZSwgQVBJPC9mb250PjwvdGQ+CisgICAgPHRkPkFkZGl0aW9uYWwgbWF0aCBjbGFzc2VzLjwvdGQ+CisgIDwvdHI+CisgIDx0cj4KKyAgICA8dGQ+JFJvb3Qvc3JjL2NvbS9pYm0vaWN1L3RleHQ8YnI+PGZvbnQgY29sb3I9InJlZCI+Q29yZSwgQVBJPC9mb250PjwvdGQ+CisgICAgPHRkPkFkZGl0aW9uYWwgdGV4dCBjbGFzc2VzLiAgVGhlc2UgYWRkIHRvLCBhbmQgaW4gc29tZSBjYXNlcyByZXBsYWNlLCByZWxhdGVkIGNvcmUgSmF2YSBjbGFzc2VzOgorICAgICAgPHVsPgorICAgICAgPGxpPkFyYWJpYyBzaGFwaW5nCisgICAgICA8bGk+QnJlYWsgaXRlcmF0aW9uCisgICAgICA8bGk+RGF0ZSBmb3JtYXR0aW5nCisgICAgICA8bGk+TnVtYmVyIGZvcm1hdHRpbmcKKyAgICAgIDxsaT5UcmFuc2xpdGVyYXRpb24KKyAgICAgIDxsaT5Ob3JtYWxpemF0aW9uCisgICAgICA8bGk+U3RyaW5nIG1hbmlwdWxhdGlvbgorICAgICAgPGxpPkNvbGxhdGlvbgorICAgICAgPGxpPlN0cmluZyBzZWFyY2gKKyAgICAgIDxsaT5Vbmljb2RlIGNvbXByZXNzaW9uCisgICAgICA8bGk+VW5pY29kZSBzZXRzCisgICAgPC91bD4KKyAgICA8L3RkPgorICA8L3RyPgorICA8dHI+CisgICAgPHRkPiRSb290L3NyYy9jb20vaWJtL2ljdS91dGlsPGJyPjxmb250IGNvbG9yPSJyZWQiPkNvcmUsIEFQSTwvZm9udD48L3RkPgorICAgIDx0ZD5BZGRpdGlvbmFsIHV0aWxpdHkgY2xhc3NlczoKKyAgICA8dWw+CisgICAgPGxpPkNhbGVuZGFycyAtIEdyZWdvcmlhbiwgQnVkZGhpc3QsIEhlYnJldywgSXNsYW1pYywgSmFwYW5lc2UKKyAgICA8bGk+SG9saWRheTwvbGk+CisgICAgPGxpPlRpbWVab25lPC9saT4KKyAgICA8bGk+VmVyc2lvbkluZm88L2xpPgorICAgIDxsaT5JdGVyYXRpb248L2xpPgorICAgIDwvdWw+CisgICAgPC90ZD4KKyAgPC90cj4KKyAgPHRyPgorICAgIDx0ZD4kUm9vdC9zcmMvY29tL2libS9yaWNodGV4dDxicj48Zm9udCBjb2xvcj0icmVkIj5SaWNoVGV4dDwvZm9udD48L3RkPiAKKyAgICA8dGQ+U3R5bGVkIHRleHQgZWRpdGluZworICAgIHBhY2thZ2UuIFRoaXMgaW5jbHVkZXMgZGVtb3MsIHRlc3RzLCBhbmQgR1VJcyBmb3IgZWRpdGluZyBhbmQKKyAgICBkaXNwbGF5aW5nIHN0eWxlZCB0ZXh0LiAgVGhlIHJpY2h0ZXh0IHBhY2thZ2UgcHJvdmlkZXMgYQorICAgIHNjcm9sbGFibGUgZGlzcGxheSwgdHlwaW5nLCBhcnJvdy1rZXkgc3VwcG9ydCwgdGFicywgYWxpZ25tZW50IGFuZAorICAgIGp1c3RpZmljYXRpb24sIHdvcmQtIGFuZCBzZW50ZW5jZS1zZWxlY3Rpb24gKGJ5IGRvdWJsZS1jbGlja2luZworICAgIGFuZCB0cmlwbGUtY2xpY2tpbmcsIHJlc3BlY3RpdmVseSksIHRleHQgc3R5bGVzLCBjbGlwYm9hcmQKKyAgICBvcGVyYXRpb25zIChjdXQsIGNvcHkgYW5kIHBhc3RlKSBhbmQgYSBsb2cgb2YgY2hhbmdlcyBmb3IKKyAgICB1bmRvLXJlZG8uICBSaWNodGV4dCB1c2VzIEphdmEncyBUZXh0TGF5b3V0IGFuZCBjb21wbGV4CisgICAgdGV4dCBzdXBwb3J0IChwcm92aWRlZCB0byBTdW4gYnkgdGhlIElDVTRKIHRlYW0pLjwvdGQ+CisgIDwvdHI+Cis8L3RhYmxlPgorCis8cD48Yj5CdWlsZGluZyBJQ1U0SiBjcmVhdGVzIGFuZCBwb3B1bGF0ZXMgdGhlIGZvbGxvd2luZyBkaXJlY3Rvcmllczo8L2I+IDwvcD4KKworPHRhYmxlIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiPgorICA8dHI+CisgICAgPHRkPiRSb290L2NsYXNzZXM8L3RkPgorICAgIDx0ZD5jb250YWlucyBhbGwgY2xhc3MgZmlsZXM8L3RkPgorICA8L3RyPgorICA8dHI+CisgICAgPHRkPiRSb290L2RvYzwvdGQ+CisgICAgPHRkPmNvbnRhaW5zIEphdmFEb2MgZm9yIGFsbCBwYWNrYWdlczwvdGQ+CisgIDwvdHI+Cis8L3RhYmxlPgorCis8cD48Yj5EYXRhIG9yZ2FuaXphdGlvbjo8L2I+IDwvcD4KKworPHA+SUNVNEogZGF0YSBpcyBzdG9yZWQgaW4gdGhlIGZvbGxvd2luZyBsb2NhdGlvbnM6CisKKzx0YWJsZSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBXSURUSD0iNjIzIj4KKyAgPHRyPgorICAgIDx0ZD48Y29kZT5jb20uaWJtLmljdS5pbXBsLmRhdGE8L2NvZGU+PC90ZD4KKyAgICA8dGQ+SG9sZHMgZGF0YSB1c2VkIGJ5IHRoZSBJQ1U0SiBjb3JlIHBhY2thZ2VzICg8Y29kZT5jb20uaWJtLmljdS5sYW5nPC9jb2RlPiwgPGNvZGU+Y29tLmlibS5pY3UudGV4dDwvY29kZT4sIDxjb2RlPmNvbS5pYm0uaWN1LnV0aWw8L2NvZGU+LCA8Y29kZT5jb20uaWJtLmljdS5tYXRoPC9jb2RlPiBhbmQgPGNvZGU+Y29tLmlibS5pY3UudGV4dDwvY29kZT4pLiBJbiBwYXJ0aWN1bGFyLCBhbGwgcmVzb3VyY2UgaW5mb3JtYXRpb24gaXMgc3RvcmVkIGhlcmUuPC90ZD4KKyAgPC90cj4KKyAgPHRyPgorICAgIDx0ZD48Y29kZT5jb20uaWJtLmljdS5kZXYuZGF0YTwvY29kZT48L3RkPgorICAgIDx0ZD5Ib2xkcyBkYXRhIHRoYXQgaXMgbm90IHBhcnQgb2YgSUNVNEogY29yZSwgYnV0IHJhdGhlciBwYXJ0IG9mIGEgdGVzdCwgc2FtcGxlLCBvciBkZW1vLjwvdGQ+CisgIDwvdHI+Cis8L3RhYmxlPgorCis8aDM+PHU+PGEgbmFtZT0iQVBJIj48L2E+V2hlcmUgdG8gZ2V0IERvY3VtZW50YXRpb248L3U+PC9oMz4KKworPHA+VGhlIDxhIGhyZWY9Imh0dHA6Ly9vc3Muc29mdHdhcmUuaWJtLmNvbS9pY3UvdXNlcmd1aWRlLyI+SUNVIHVzZXIncyBndWlkZTwvYT4gY29udGFpbnMgbG90cyBvZiBnZW5lcmFsIGluZm9ybWF0aW9uIGFib3V0IElDVSwgaW4gaXRzIEMsIEMrKywgYW5kIEphdmEgaW5jYXJuYXRpb25zLjwvcD4KKworPHA+VGhlIGNvbXBsZXRlIEFQSSBkb2N1bWVudGF0aW9uIGZvciBJQ1U0SiAoamF2YWRvYykgaXMgYXZhaWxhYmxlIG9uIHRoZSBJQ1U0SiB3ZWIgc2l0ZSwgYW5kIGNhbiBiZSBidWlsdCBmcm9tIHRoZSBzb3VyY2VzOiAKKworPHVsPgorICA8bGk+PGEgaHJlZj0iaHR0cDovL29zcy5zb2Z0d2FyZS5pYm0uY29tL2ljdTRqL2RvYy9pbmRleC5odG1sIj5JbmRleCB0byBhbGwgSUNVNEogQVBJPC9hPjwvbGk+CisgIDxsaT5JbnRlcm5hdGlvbmFsIENhbGVuZGFycyAmIzE1MDsgPGEgaHJlZj0iaHR0cDovL29zcy5zb2Z0d2FyZS5pYm0uY29tL2ljdTRqL2RvYy9jb20vaWJtL2ljdS91dGlsL0lzbGFtaWNDYWxlbmRhci5odG1sIj5Jc2xhbWljPC9hPiwKKyAgICA8YSBocmVmPSJodHRwOi8vb3NzLnNvZnR3YXJlLmlibS5jb20vaWN1NGovZG9jL2NvbS9pYm0vaWN1L3V0aWwvQnVkZGhpc3RDYWxlbmRhci5odG1sIj5CdWRkaGlzdDwvYT4sIDxhCisgICAgaHJlZj0iaHR0cDovL29zcy5zb2Z0d2FyZS5pYm0uY29tL2ljdTRqL2RvYy9jb20vaWJtL2ljdS91dGlsL0hlYnJld0NhbGVuZGFyLmh0bWwiPkhlYnJldzwvYT4sIDxhCisgICAgaHJlZj0iaHR0cDovL29zcy5zb2Z0d2FyZS5pYm0uY29tL2ljdTRqL2RvYy9jb20vaWJtL2ljdS91dGlsL0phcGFuZXNlQ2FsZW5kYXIuaHRtbCI+SmFwYW5lc2U8L2E+LjwvbGk+CisgIDxsaT48YSBocmVmPSJodHRwOi8vb3NzLnNvZnR3YXJlLmlibS5jb20vaWN1NGovZG9jL2NvbS9pYm0vaWN1L3RleHQvTm9ybWFsaXplci5odG1sIj5Vbmljb2RlIE5vcm1hbGl6YXRpb248L2E+ICYjMTUwOworICAgIENhbm9uaWNhbCB0ZXh0IHJlcHJlc2VudGF0aW9uIGZvciBXM0MuPC9saT4KKyAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9vc3Muc29mdHdhcmUuaWJtLmNvbS9pY3U0ai9kb2MvY29tL2libS9pY3UvdGV4dC9OdW1iZXJGb3JtYXQuaHRtbCI+TnVtYmVyIEZvcm1hdCBFbmhhbmNlbWVudHM8L2E+ICYjMTUwOworICAgIFNjaWVudGlmaWMgTm90YXRpb24sIFNwZWxsZWQgb3V0LjwvbGk+CisgIDxsaT48YSBocmVmPSJodHRwOi8vb3NzLnNvZnR3YXJlLmlibS5jb20vaWN1NGovZG9jL2NvbS9pYm0vaWN1L3RleHQvQnJlYWtJdGVyYXRvci5odG1sIj5FbmhhbmNlZCB3b3JkLWJyZWFrIGRldGVjdGlvbjwvYT4KKyAgICAmIzE1MDsgUnVsZS1iYXNlZCwgc3VwcG9ydHMgVGhhaTwvbGk+Cis8bGk+PGEgaHJlZj0iaHR0cDovL29zcy5zb2Z0d2FyZS5pYm0uY29tL2ljdTRqL2RvYy9jb20vaWJtL2ljdS90ZXh0L1RyYW5zbGl0ZXJhdG9yLmh0bWwiPlRyYW5zbGl0ZXJhdGlvbjwvYT4gJiMxNTA7IEEgZ2VuZXJhbCBmcmFtZXdvcmsgZm9yIG9udmVydGluZyB0ZXh0IGZyb20gb25lIGZvcm1hdCB0byBhbm90aGVyLCBlLmcuIEN5cmlsbGljIHRvIExhdGluLCBvciBIZXggdG8gVW5pY29kZS4KKyAgPGxpPlVuaWNvZGUgVGV4dCA8YSBocmVmPSJodHRwOi8vb3NzLnNvZnR3YXJlLmlibS5jb20vaWN1NGovZG9jL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZUNvbXByZXNzb3IuaHRtbCI+Q29tcHJlc3Npb248L2E+ICZhbXA7CisgICAgPGEgaHJlZj0iaHR0cDovL29zcy5zb2Z0d2FyZS5pYm0uY29tL2ljdTRqL2RvYy9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVEZWNvbXByZXNzb3IuaHRtbCI+RGVjb21wcmVzc2lvbjwvYT4gJiMxNTA7IDI6MQorICAgIGNvbXByZXNzaW9uIG9uIEVuZ2xpc2ggVW5pY29kZSB0ZXh0LjwvbGk+CisgIDxsaT5Db2xsYXRpb24gLSA8YSBocmVmPSJodHRwOi8vb3NzLnNvZnR3YXJlLmlibS5jb20vaWN1NGovZG9jL2NvbS9pYm0vaWN1L3RleHQvUnVsZUJhc2VkQ29sbGF0b3IuaHRtbCI+UnVsZS1iYXNlZCBzb3J0aW5nPC9hPiwgPGEgaHJlZj0iaHR0cDovL29zcy5zb2Z0d2FyZS5pYm0uY29tL2ljdTRqL2RvYy9jb20vaWJtL2ljdS90ZXh0L1N0cmluZ1NlYXJjaC5odG1sIj5FZmZpY2llbnQgbXVsdGktbGluZ3VhbCBzZWFyY2hpbmc8L2E+IDwvbGk+Cis8L3VsPgorCis8aDM+PGEgTkFNRT0iSG93VG9JbnN0YWxsSmF2YWMiPjwvYT48dT5Ib3cgdG8gSW5zdGFsbCBhbmQgQnVpbGQ8L3U+PC9oMz4KKworPHA+VG8gaW5zdGFsbCBJQ1U0Siwgc2ltcGx5IHBsYWNlIHRoZSBwcmVidWlsdCBqYXIgZmlsZSA8c3Ryb25nPmljdTRqLmphcjwvc3Ryb25nPiBvbiB5b3VyCitKYXZhIENMQVNTUEFUSC4mbmJzcDsgTm8gb3RoZXIgZmlsZXMgYXJlIG5lZWRlZC48L3A+CisKKzxwPlRvIGJ1aWxkIElDVTRKLCB5b3Ugd2lsbCBuZWVkIGEgSmF2YTIgSkRLIGFuZCB0aGUgQW50IGJ1aWxkIHN5c3RlbS4KK1dlIHN0cm9uZ2x5IHJlY29tbWVuZCB1c2luZyB0aGUgQW50IGJ1aWxkIHN5c3RlbSB0byBidWlsZCBJQ1U0Sjo8L3A+CisKKzx1bD4KKyAgPGxpPkl0J3MgcmVjb21tZW5kZWQgdG8gaW5zdGFsbCBib3RoIHRoZSBKREsgYW5kIEFudCBzb21ld2hlcmUgPGVtPm91dHNpZGU8L2VtPiB0aGUgSUNVNEoKKyAgICBkaXJlY3RvcnkuIEZvciBleGFtcGxlLCBvbiBMaW51eCB5b3UgbWlnaHQgaW5zdGFsbCB0aGVzZQorICAgIGluIC91c3IvbG9jYWwuPC9saT4KKyAgPGxpPkluc3RhbGwgYSByZWNlbnQgSkRLLCB2ZXJzaW9uIDEuMy54IG9yIDEuNC54IHdpbGwgd29yay48L2xpPgorICA8bGk+PHA+TmV4dCBpbnN0YWxsIHRoZSA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2FudC8iPjxzdHJvbmc+QW50PC9zdHJvbmc+PC9hPiBidWlsZAorICAgIHN5c3RlbSwgcGFydCBvZiB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24ncyA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnLyI+PHN0cm9uZz5KYWthcnRhPC9zdHJvbmc+PC9hPgorICAgIHByb2plY3QuIEFudCBpcyBhIHBvcnRhYmxlLCBKYXZhLWJhc2VkIGJ1aWxkIHN5c3RlbSBzaW1pbGFyIHRvIG1ha2UuIElDVTRKIHVzZXMgQW50CisgICAgYmVjYXVzZSBpdCBpbnRyb2R1Y2VzIG5vIG90aGVyIGRlcGVuZGVuY2llcywgaXQncyBwb3J0YWJsZSwgYW5kIGl0J3MgZWFzaWVyIHRvIG1hbmFnZSB0aGFuCisgICAgYSBjb2xsZWN0aW9uIG9mIG1ha2VmaWxlcy4gV2UgY3VycmVudGx5IGJ1aWxkIElDVTRKIHVzaW5nIGEgc2luZ2xlIG1ha2VmaWxlIG9uIGJvdGgKKyAgICBXaW5kb3dzIDl4IGFuZCBMaW51eCB1c2luZyBBbnQuICBUaGUgYnVpbGQgc3lzdGVtIHJlcXVpcmVzIEFudCAxLjQgb3IgbGF0ZXIuPC9wPgorICAgIDxwPkluc3RhbGxpbmcgQW50IGlzIHN0cmFpZ2h0Zm9yd2FyZC4gRG93bmxvYWQgaXQgKHNlZSA8YQorICAgIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvZG93bmxvYWRzL2JpbmluZGV4Lmh0bWwiPmh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvZG93bmxvYWRzL2JpbmluZGV4Lmh0bWw8L2E+KSwKKyAgICBleHRyYWN0IGl0IG9udG8geW91ciBzeXN0ZW0sIHNldCBzb21lIGVudmlyb25tZW50IHZhcmlhYmxlcywgYW5kIGFkZCBpdHMgYmluIGRpcmVjdG9yeSB0bworICAgIHlvdXIgcGF0aC4gRm9yIGV4YW1wbGU6PHByZT4gICAgc2V0IEpBVkFfSE9NRT1DOlxqZGsxLjMuMQorICAgIHNldCBBTlRfSE9NRT1DOlxqYWthcnRhLWFudAorICAgIHNldCBQQVRIPSVQQVRIJTslQU5UX0hPTUUlXGJpbjwvcHJlPjwvcD4KKyAgICA8cD5TZWUgdGhlIGN1cnJlbnQgQW50IGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHMuPC9wPgorICA8L2xpPgorPC91bD4KKworPHA+T25jZSB0aGUgSkRLIGFuZCBBbnQgYXJlIGluc3RhbGxlZCwgYnVpbGRpbmcgaXMganVzdCBhIG1hdHRlciBvZgordHlwaW5nIDxzdHJvbmc+YW50PC9zdHJvbmc+IGluIHRoZSBJQ1U0SiByb290IGRpcmVjdG9yeS4gVGhpcyBjYXVzZXMKK3RoZSBBbnQgYnVpbGQgc3lzdGVtIHRvIHBlcmZvcm0gYSBidWlsZCBhcyBzcGVjaWZpZWQgYnkgdGhlIGZpbGUKKzxzdHJvbmc+YnVpbGQueG1sPC9zdHJvbmc+LCBsb2NhdGVkIGluIHRoZSBJQ1U0SiByb290IGRpcmVjdG9yeS4gWW91CitjYW4gZ2l2ZSBBbnQgb3B0aW9ucyBsaWtlIC12ZXJib3NlLCBhbmQgeW91IGNhbiBzcGVjaWZ5IHRhcmdldHMuIEFudAord2lsbCBvbmx5IGJ1aWxkIHdoYXQncyBiZWVuIGNoYW5nZWQgYW5kIHdpbGwgcmVzb2x2ZSBkZXBlbmRlbmNpZXMKK3Byb3Blcmx5LiAgRm9yIGV4YW1wbGU6PC9wPgorPGJsb2NrcXVvdGU+CisgIDxwcmU+RjpcaWN1NGomZ3Q7YW50IHRlc3RzCitCdWlsZGZpbGU6IGJ1aWxkLnhtbAorUHJvamVjdCBiYXNlIGRpciBzZXQgdG86IEY6XGljdTRqCitFeGVjdXRpbmcgVGFyZ2V0OiBjb3JlCitDb21waWxpbmcgNzEgc291cmNlIGZpbGVzIHRvIEY6XGljdTRqXGNsYXNzZXMKK0V4ZWN1dGluZyBUYXJnZXQ6IHRlc3RzCitDb21waWxpbmcgMjQgc291cmNlIGZpbGVzIHRvIEY6XGljdTRqXGNsYXNzZXMKK0NvbXBsZXRlZCBpbiAxOSBzZWNvbmRzPC9wcmU+Cis8L2Jsb2NrcXVvdGU+CisKKzxwPlRoZSBmb2xsb3dpbmcgYXJlIHNvbWUgdGFyZ2V0cyB0aGF0IHlvdSBjYW4gZ2l2ZSBhZnRlciA8c3Ryb25nPmFudDwvc3Ryb25nPi4gIEZvciBtb3JlCit0YXJnZXRzLCBzZWUgdGhlIGJ1aWxkLnhtbCBmaWxlOjwvcD4KKzxkaXYgYWxpZ249ImxlZnQiPgorCis8dGFibGUgYm9yZGVyPSIxIiBjZWxscGFkZGluZz0iMCI+CisgIDx0cj4KKyAgICA8dGQ+YWxsPC90ZD4KKyAgICA8dGQ+QnVpbGQgYWxsIHRhcmdldHMuPC90ZD4KKyAgPC90cj4KKyAgPHRyPgorICAgIDx0ZD5jb3JlPC90ZD4KKyAgICA8dGQ+QnVpbGQgdGhlIG1haW4gY2xhc3MgZmlsZXMgaW4gdGhlIHN1YmRpcmVjdG9yeSA8c3Ryb25nPmNsYXNzZXM8L3N0cm9uZz4uIElmIG5vIHRhcmdldAorICAgIGlzIHNwZWNpZmllZCwgY29yZSBpcyBhc3N1bWVkLjwvdGQ+CisgIDwvdHI+CisgIDx0cj4KKyAgICA8dGQ+dGVzdHM8L3RkPgorICAgIDx0ZD5CdWlsZCB0aGUgdGVzdCBjbGFzcyBmaWxlcy48L3RkPgorICA8L3RyPgorICA8dHI+CisgICAgPHRkPmRlbW9zPC90ZD4KKyAgICA8dGQ+QnVpbGQgdGhlIGRlbW9zLjwvdGQ+CisgIDwvdHI+CisgIDx0cj4KKyAgICA8dGQ+dG9vbHM8L3RkPgorICAgIDx0ZD5CdWlsZCB0aGUgdG9vbHMuPC90ZD4KKyAgPC90cj4KKyAgPHRyPgorICAgIDx0ZD5kb2NzPC90ZD4KKyAgICA8dGQ+UnVuIGphdmFkb2Mgb3ZlciB0aGUgbWFpbiBjbGFzcyBmaWxlcywgZ2VuZXJhdGluZyBhbiBIVE1MIGRvY3VtZW50YXRpb24gdHJlZSBpbiB0aGUKKyAgICBzdWJkaXJlY3RvcnkgPHN0cm9uZz5kb2M8L3N0cm9uZz4uPC90ZD4KKyAgPC90cj4KKyAgPHRyPgorICAgIDx0ZD5qYXI8L3RkPgorICAgIDx0ZD5DcmVhdGUgYSBqYXIgYXJjaGl2ZSA8c3Ryb25nPmljdTRqLmphcjwvc3Ryb25nPiBpbiB0aGUgcm9vdCBJQ1U0SiBkaXJlY3RvcnkgY29udGFpbmluZworICAgIHRoZSBtYWluIGNsYXNzIGZpbGVzLjwvdGQ+CisgIDwvdHI+CisgIDx0cj4KKyAgICA8dGQ+emlwPC90ZD4KKyAgICA8dGQ+Q3JlYXRlIGEgemlwIGFyY2hpdmUgb2YgdGhlIHNvdXJjZSwgZG9jcywgYW5kIGphciBmaWxlIGZvciBkaXN0cmlidXRpb24uIFRoZSB6aXAgZmlsZSA8c3Ryb25nPmljdTRqWVlZWU1NREQuemlwPC9zdHJvbmc+CisgICAgd2lsbCBiZSBjcmVhdGVkIGluIHRoZSBkaXJlY3RvcnkgPGVtPmFib3ZlPC9lbT4gdGhlIHJvb3QgSUNVNEogZGlyZWN0b3J5LCB3aGVyZSBZWVlZTU1ERAorICAgIGlzIHRvZGF5J3MgZGF0ZS4gQW55IGV4aXN0aW5nIGZpbGUgb2YgdGhhdCBuYW1lIHdpbGwgYmUgb3ZlcndyaXR0ZW4uPC90ZD4KKyAgPC90cj4KKyAgPHRyPgorICAgIDx0ZD56aXBzcmM8L3RkPgorICAgIDx0ZD5MaWtlIHRoZSA8c3Ryb25nPnppcDwvc3Ryb25nPiB0YXJnZXQsIHdpdGhvdXQgdGhlIGRvY3MgYW5kIHRoZSBqYXIgZmlsZS4gVGhlIHppcCBmaWxlIDxzdHJvbmc+aWN1NGpzcmNZWVlZTU1ERC56aXA8L3N0cm9uZz4KKyAgICB3aWxsIGJlIGNyZWF0ZWQgaW4gdGhlIGRpcmVjdG9yeSA8ZW0+YWJvdmU8L2VtPiB0aGUgcm9vdCBJQ1U0SiBkaXJlY3RvcnkuPC90ZD4KKyAgPC90cj4KKyAgPHRyPgorICAgIDx0ZD5yaWNoZWRpdDwvdGQ+CisgICAgPHRkPkJ1aWxkIHRoZSByaWNoZWRpdCBjb3JlIGNsYXNzIGZpbGVzIGFuZCB0ZXN0cy4KKyAgPC90cj4KKyAgPHRyPgorICAgIDx0ZD5yaWNoZWRpdEphcjwvdGQ+CisgICAgPHRkPkNyZWF0ZSB0aGUgcmljaGVkaXQgamFyIGZpbGUgKHdoaWNoIGNvbnRhaW5zIG9ubHkgdGhlIHJpY2hlZGl0IGNvcmUgY2xhc3MgZmlsZXMpLgorICAgIFRoZSBmaWxlIDxzdHJvbmc+cmljaGVkaXQuamFyPC9zdHJvbmc+CisgICAgd2lsbCBiZSBjcmVhdGVkIGluIHRoZSA8c3Ryb25nPi4vcmljaGVkaXQ8L3N0cm9uZz4gc3ViZGlyZWN0b3J5LiBBbnkgZXhpc3RpbmcgZmlsZSBvZiAKKyAgICB0aGF0IG5hbWUgd2lsbCBiZSBvdmVyd3JpdHRlbi48L3RkPgorICA8L3RyPgorICA8dHI+CisgICAgPHRkPnJpY2hlZGl0WmlwPC90ZD4KKyAgICA8dGQ+Q3JlYXRlIGEgemlwIGFyY2hpdmUgb2YgdGhlIHJpY2hlZGl0IGRvY3MgYW5kIGphciBmaWxlIGZvciBkaXN0cmlidXRpb24uIFRoZSB6aXAgZmlsZSA8c3Ryb25nPnJpY2hlZGl0LnppcDwvc3Ryb25nPgorICAgIHdpbGwgYmUgY3JlYXRlZCBpbiB0aGUgPHN0cm9uZz4uL3JpY2hlZGl0PC9zdHJvbmc+IHN1YmRpcmVjdG9yeS4gQW55IGV4aXN0aW5nIGZpbGUgb2YgCisgICAgdGhhdCBuYW1lIHdpbGwgYmUgb3ZlcndyaXR0ZW4uPC90ZD4KKyAgPC90cj4KKyAgPHRyPgorICAgIDx0ZD5jbGVhbjwvdGQ+CisgICAgPHRkPlJlbW92ZSBhbGwgYnVpbHQgdGFyZ2V0cywgbGVhdmluZyB0aGUgc291cmNlLjwvdGQ+CisgIDwvdHI+Cis8L3RhYmxlPgorPC9kaXY+CisKKzxwPkZvciBtb3JlIGluZm9ybWF0aW9uLCByZWFkIHRoZSBBbnQgZG9jdW1lbnRhdGlvbiBhbmQgdGhlIDxzdHJvbmc+YnVpbGQueG1sPC9zdHJvbmc+CitmaWxlLjwvcD4KKworPHA+QWZ0ZXIgZG9pbmcgYSBidWlsZCBpdCBpcyBhIGdvb2QgaWRlYSB0byBydW4gYWxsIHRoZSBpY3U0aiB0ZXN0cyBieSB0eXBpbmcgPGJyPiZxdW90O2phdmEKKy1jbGFzc3BhdGggJFJvb3QvY2xhc3NlcyAtRFVuaWNvZGVEYXRhPSRSb290L3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlIGNvbS5pYm0uZGV2LnRlc3QuVGVzdEFsbCZxdW90Oy48L3A+CisKKzxwPihJZiB5b3UgYXJlIGFsbGVyZ2ljIHRvIGJ1aWxkIHN5c3RlbXMsIGFzIGFuIGFsdGVybmF0aXZlIHRvIHVzaW5nCitBbnQgeW91IGNhbiBidWlsZCBieSBydW5uaW5nIGphdmFjIGFuZCBqYXZhZG9jIGRpcmVjdGx5LiBUaGlzCitpcyBub3QgcmVjb21tZW5kZWQuIFlvdSBtYXkgaGF2ZSB0byBtYW51YWxseSBjcmVhdGUgZGVzdGluYXRpb24KK2RpcmVjdG9yaWVzLik8L3A+CisKKzxoMz48YSBuYW1lPSJ0cnlpbmdvdXQiPjwvYT48dT5UcnlpbmcgT3V0IElDVTRKPC91PjwvaDM+CisKKzxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gdGhlIGRlbW9zIHByb3ZpZGVkIHdpdGggSUNVNEogYXJlIGZvciB0aGUKK21vc3QgcGFydCB1bmRvY3VtZW50ZWQuICBUaGlzIGxpc3QgY2FuIHNob3cgeW91IHdoZXJlIHRvIGxvb2ssIGJ1dCB5b3UnbGwKK2hhdmUgdG8gZXhwZXJpbWVudCBhIGJpdC4gIFRoZSBkZW1vcyAod2l0aCB0aGUKK2V4Y2VwdGlvbiBvZiByaWNoZWRpdCkgYXJlIDxzdHJvbmc+dW5zdXBwb3J0ZWQ8L3N0cm9uZz4gYW5kIG1heSBjaGFuZ2UKK29yIGRpc2FwcGVhciB3aXRob3V0IG5vdGljZS48L3A+Cis8cD5UaGUgaWN1NGouamFyIGZpbGUgY29udGFpbnMgb25seSB0aGUgY29yZSBJQ1U0SiBjbGFzc2VzLCBub3QgdGhlCitkZW1vIGNsYXNzZXMsIHNvIHVubGVzcyB5b3UgYnVpbGQgSUNVNEogdGhlcmUgaXMgbGl0dGxlIHRvIHRyeSBvdXQuCisKKzxoND5SaWNoIEVkaXQ8L2g0PgorVG8gdHJ5IG91dCB0aGUgPHN0cm9uZz5yaWNoZWRpdDwvc3Ryb25nPiBwYWNrYWdlLCBmaXJzdCBidWlsZCB0aGUgcmljaGVkaXRKYXIgdGFyZ2V0LgorVGhpcyBpcyBhICdydW5uYWJsZScgamFyIGZpbGUuICBUbyBydW4gdGhlIHJpY2hlZGl0IGRlbW8sIHR5cGU6IAorPHR0PjxibG9ja3F1b3RlPiAgamF2YSAtamFyICRSb290L3JpY2hlZGl0L3JpY2hlZGl0LmphcjwvYmxvY2txdW90ZT48L3R0PgorCitUaGlzIHdpbGwgcHJlc2VudCBhbiBlbXB0eSBlZGl0IHBhbmUgd2l0aCBhbiBhd3QgaW50ZXJmYWNlLjwvcD4KKworPHA+V2l0aCBhIGZ1bGxlciBjb21tYW5kIGxpbmUgeW91IGNhbiB0cnkgb3V0IG90aGVyIG9wdGlvbnMsIGZvciBleGFtcGxlOgorPHR0PjxibG9ja3F1b3RlPiAgIGphdmEgLWNsYXNzcGF0aCAkUm9vdC9yaWNoZWRpdC9yaWNoZWRpdC5qYXIgY29tLmlibS5yaWNodGV4dC5kZW1vLkVkaXREZW1vIFstc3dpbmddW2ZpbGVdPC9ibG9ja3F1b3RlPjwvdHQ+CitUaGlzIHdpbGwgdXNlIGFuIGF3dCBHVUksIG9yIGEgc3dpbmcgR1VJIGlmCis8dHQ+LXN3aW5nPC90dD4gaXMgcGFzc2VkIG9uIHRoZSBjb21tYW5kIGxpbmUuICBJdCB3aWxsIG9wZW4gYSB0ZXh0CitmaWxlIGlmIG9uZSBpcyBwcm92aWRlZCwgb3RoZXJ3aXNlIGl0IHdpbGwgb3BlbiBhIGJsYW5rIHBhZ2UuICBDbGljawordG8gdHlwZS48L3A+Cis8cD4KK1lvdSBjYW4gYWRkIHRhYnMgdG8gdGhlIHRhYiBydWxlciBieSBjbGlja2luZyBpbiB0aGUgcnVsZXIgd2hpbGUgaG9sZGluZyBkb3duIHRoZSBjb250cm9sIGtleS4KK0NsaWNraW5nIG9uIGFuIGV4aXN0aW5nIHRhYiBjaGFuZ2VzIGJldHdlZW4gbGVmdCwgcmlnaHQsIGNlbnRlciwgYW5kIGRlY2ltYWwgdGFicy4gIERyYWdnaW5nCithIHRhYiBtb3ZlcyBpdCwgZHJhZ2dpbmcgaXQgb2ZmIHRoZSBydWxlciByZW1vdmVzIGl0LjwvcD4KKzxwPgorWW91IGNhbiBleHBlcmltZW50IHdpdGggY29tcGxleCB0ZXh0IGJ5IHVzaW5nIHRoZSBrZXltYXAgZnVuY3Rpb25zLgorUGxlYXNlIG5vdGUgdGhhdCB0aGVzZSBhcmUgbWFpbmx5IGZvciBkZW1vIHB1cnBvc2VzLCBmb3IgcmVhbCB3b3JrCit3aXRoIEFyYWJpYyBvciBIZWJyZXcgeW91IHdpbGwgd2FudCB0byB1c2UgYW4gaW5wdXQgbWV0aG9kLiAgWW91IHdpbGwKK25lZWQgdG8gdXNlIGEgZm9udCB0aGF0IHN1cHBvcnRzIEFyYWJpYyBvciBIZWJyZXcsICdMdWNpZGEgU2FucycgKHByb3ZpZGVkCit3aXRoIEphdmEpIHN1cHBvcnRzIHRoZXNlIGxhbmd1YWdlcy48L3A+CisKKzxoND5PdGhlciBkZW1vczwvaDQ+Cis8cD5UaGUgb3RoZXIgZGVtbyBwcm9ncmFtcyBhcmUgPHN0cm9uZz5ub3Qgc3VwcG9ydGVkPC9zdHJvbmc+IGFuZCBleGlzdCBvbmx5IHRvIGxldCB5b3UKK2V4cGVyaW1lbnQgd2l0aCB0aGUgSUNVNEogY2xhc3Nlcy4gIEZpcnN0LCBidWlsZCBJQ1U0SiB1c2luZyA8dHQ+YW50Jm5ic3A7YWxsPC90dD4uICBUaGVuIHRyeQorb25lIG9mIHRoZSBmb2xsb3dpbmc6Cis8dWw+Cis8bGk+PHR0PmphdmEgLWNsYXNzcGF0aCBjbGFzc2VzIGNvbS5pYm0uaWN1LmRldi5kZW1vLmNhbGVuZGFyLkNhbGVuZGFyQXBwPC90dD4KKzxsaT48dHQ+amF2YSAtY2xhc3NwYXRoIGNsYXNzZXMgY29tLmlibS5pY3UuZGV2LmRlbW8uaG9saWRheS5Ib2xpZGF5Q2FsZW5kYXJEZW1vPC90dD4KKzxsaT48dHQ+amF2YSAtY2xhc3NwYXRoIGNsYXNzZXMgY29tLmlibS5pY3UuZGV2LmRlbW8ucmJiaS5UZXh0Qm91bmREZW1vPC90dD48YnI+KENsaWNrIGluIHRoZSB0ZXh0LCB0aGVuIHVzZSA8dHQ+Y3RybC1OPC90dD4gYW5kIDx0dD5jdHJsLVA8L3R0PiB0byBzZWxlY3QgdGhlIG5leHQgb3IgcHJldmlvdXMgYmxvY2sgb2YgdGV4dC4pCis8bGk+PHR0PmphdmEgLWNsYXNzcGF0aCBjbGFzc2VzIGNvbS5pYm0uaWN1LmRldi5kZW1vLnJibmYuUmJuZkRlbW88L3R0PgorPGxpPjx0dD5qYXZhIC1jbGFzc3BhdGggY2xhc3NlcyBjb20uaWJtLmljdS5kZXYuZGVtby50cmFuc2xpdC5EZW1vPC90dD4KKzwvdWw+Cis8L3A+CisKKzxhIG5hbWU9InJlc291cmNlcyI+Cis8aDM+PHU+SUNVNEogUmVzb3VyY2UgSW5mb3JtYXRpb248L3U+PC9oMz4KKzwvYT4KK1N0YXJ0aW5nIHdpdGggcmVsZWFzZSAyLjEsIElDVTRKIGluY2x1ZGVzIGl0cyBvd24gCityZXNvdXJjZSBpbmZvcm1hdGlvbgord2hpY2ggaXMgY29tcGxldGVseSBpbmRlcGVuZGVudCBvZiB0aGUgSkRLIHJlc291cmNlIGluZm9ybWF0aW9uLiAgVGhlCituZXcgSUNVNEogaW5mb3JtYXRpb24gaXMgZXF1aXZhbGVudCB0byB0aGUgaW5mb3JtYXRpb24gaW4gSUNVNEMgYW5kCit1bHRpbWF0ZWx5IGRlcml2ZXMgZnJvbSB0aGUgc2FtZSBzb3VyY2UuICBUaGlzIGFsbG93cyBJQ1U0SiAyLjEgYW5kIGFib3ZlIAordG8gYmUKK2J1aWx0IG9uLCBhbmQgcnVuIG9uLCBKREsgMS40LgorPC9wPgorPHA+CitCeSBkZWZhdWx0IHRoZSBJQ1U0SiBkaXN0cmlidXRpb24gaW5jbHVkZXMgYWxsIG9mIHRoZSBuZXcgcmVzb3VyY2UKK2luZm9ybWF0aW9uLiAgSXQgaXMgbG9jYXRlZCBpbiB0aGUgcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGEsIGFzIGEKK3NldCBvZiBjbGFzcyBmaWxlcyBuYW1lZCAiTG9jYWxlRWxlbWVudHMiIGZvbGxvd2VkIGJ5IHRoZSBuYW1lcyBvZgorbG9jYWxlcyBpbiB0aGUgZm9ybSBfeHhfWVlfWlpaWiwgd2hlcmUgJ3h4JyBpcyB0aGUgdHdvLWxldHRlciBsYW5ndWFnZQorY29kZSwgJ1lZJyBpcyB0aGUgY291bnRyeSBjb2RlLCBhbmQgJ1paJyAod2hpY2ggY2FuIGJlIGFueSBsZW5ndGgpIGlzCithIHZhcmlhbnQuICBNYW55IG9mIHRoZXNlIGZpZWxkcyBjYW4gYmUgb21pdHRlZC4gIExvY2FsZSBuYW1pbmcgaXMKK2RvY3VtZW50ZWQgdGhlIExvY2FsZSBjbGFzcywgamF2YS51dGlsLkxvY2FsZSwgYW5kIHRoZSB1c2Ugb2YgdGhlc2UKK25hbWVzIGluIHNlYXJjaGluZyBmb3IgcmVzb3VyY2VzIGlzIGRvY3VtZW50ZWQgaW4KK2phdmEudXRpbC5SZXNvdXJjZUJ1bmRsZS4KKzwvcD4KKzxwPgorU29tZSBvZiB0aGVzZSBmaWxlcyByZXF1aXJlIHNlcGFyYXRlIGJpbmFyeSBkYXRhLiAgVGhlIG5hbWVzIG9mIHRoZQorYmluYXJ5IGRhdGEgZmlsZXMgc3RhcnQgd2l0aCAiQ29sbGF0aW9uRWxlbWVudHMiLCB0aGVuIHRoZQorY29ycmVzcG9uZGluZyBMb2NhbGUgc3RyaW5nLCBhbmQgZW5kIHdpdGggJy5yZXMnLiAgQW5vdGhlciBkYXRhIGZpbGUKKyhvbmx5IG9uZSBhdCB0aGUgbW9tZW50KSBzdGFydHMgd2l0aCB0aGUgbmFtZSAiQnJlYWtEaWN0aW9uYXJ5RGF0YSIsCit0aGUgY29ycmVzcG9uZGluZyBMb2NhbGUgc3RyaW5nLCBhbmQgZW5kcyB3aXRoICcudWNzJy4KKzwvcD4KKzxwPgorU29tZSBvZiB0aGUgTG9jYWxlRWxlbWVudHMgZmlsZXMgc2hhcmUgZGF0YSB3aXRoIG90aGVyIExvY2FsZUVsZW1lbnRzCitmaWxlcywgYmVjYXVzZSBzb21lIExvY2FsZSBuYW1lcyBoYXZlIGNoYW5nZWQuIEZvciBleGFtcGxlLCBoZV9JTCB1c2VkCit0byBiZSBpd19JTC4gIEluIG9yZGVyIHRvIHN1cHBvcnQgYm90aCBuYW1lcyBidXQgbm90IGR1cGxpY2F0ZSB0aGUKK2RhdGEsIG9uZSBvZiB0aGUgY2xhc3MgZmlsZXMgcmVmZXJzIHRvIHRoZSBvdGhlciBjbGFzcyBmaWxlJ3MgZGF0YS4KKzwvcD4KKzxwPgorVGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIHJlc291cmNlcyBpcyBmb3VuZCBpbiBhIGZpbGUgY2FsbGVkCitMb2NhbGVFbGVtZW50c19pbmRleC5jbGFzcy4gIFRoaXMgY29udGFpbnMgdGhlIG5hbWVzIG9mIGFsbCB0aGUKK0xvY2FsZUVsZW1lbnRzIHJlc291cmNlcyBhbmQgaXMgdGhlIHNvdXJjZSBvZiB0aGUgaW5mb3JtYXRpb24gcmV0dXJuZWQKK2J5IEFQSSBzdWNoIGFzIENhbGVuZGFyLmdldEF2YWlsYWJsZUxvY2FsZXMuIChOb3RlOiBmb3IgZWFzZSBvZgorY3VzdG9taXphdGlvbiB0aGlzIHByb2JhYmx5IHNob3VsZCBiZSBhIHRleHQgZmlsZSkuCis8L3A+Cis8cD4KK0xvY2FsZUVsZW1lbnRzIGZpbGVzIGZvcm0gYSBoaWVyYXJjaHksIHdpdGggdXAgdG8gZm91ciBsZXZlbHM6IGEgcm9vdCwKK2xhbmd1YWdlLCByZWdpb24gKGNvdW50cnkpLCBhbmQgdmFyaWFudC4gIFNlYXJjaGVzIGZvciBsb2NhbGUgZGF0YQorYXR0ZW1wdCB0byBtYXRjaCBhcyBmYXIgZG93biB0aGUgaGllcmFyY2h5IGFzIHBvc3NpYmxlLCBmb3IgZXhhbXBsZSwKKydoZV9JTCcgd2lsbCBtYXRjaCBMb2NhbGVFbGVtZW50c19oZV9JTCwgYnV0ICdoZV9VUycgd2lsbCBtYXRjaAorTG9jYWxlRWxlbWVudHNfaGUgKHNpbmNlIHRoZXJlIGlzIG5vICdVUycgdmFyaWFudCBmb3IgJ2hlJywgYW5kCisneHhfWVknIHdpbGwgbWF0Y2ggTG9jYWxlRWxlbWVudHMgKHNpbmNlIHRoZXJlIGlzIG5vICd4eCcgbGFuZ3VhZ2UKK2NvZGUgaW4gdGhlIExvY2FsZUVsZW1lbnRzIGhpZXJhcmNoeSkuICBBZ2Fpbiwgc2VlCitqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGUgZm9yIG1vcmUgaW5mb3JtYXRpb24uCis8L3A+Cis8cD4KK1dpdGggdGhpcyBpbiBtaW5kLCB0aGUgd2F5IHRvIHJlbW92ZSBMb2NhbGVEYXRhIGlzIHRvIG1ha2Ugc3VyZSB0bworcmVtb3ZlIGFsbCBkZXBlbmRlbmNpZXMgb24gdGhhdCBkYXRhIGFzIHdlbGwuICBGb3IgZXhhbXBsZSwgaWYgeW91CityZW1vdmUgTG9jYWxlRWxlbWVudHNfaGUuY2xhc3MsIHlvdSBuZWVkIHRvIHJlbW92ZQorTG9jYWxlRWxlbWVudHNfaGVfSUwuY2xhc3MsIHNpbmNlIGl0IGlzIGxvd2VyIGluIHRoZSBoaWVyYXJjaHksIGFuZAoreW91IG11c3QgcmVtb3ZlIExvY2FsZUVsZW1lbnRzX2l3LmNsYXNzLCBzaW5jZSBpdCByZWZlcmVuY2VzCitMb2NhbGVFbGVtZW50c19oZSwgYW5kIExvY2FsZUVMZW1lbnRzX2l3X0lMLmNsYXNzLCBzaW5jZSBpdCBkZXBlbmRzIG9uCitpdCAoYW5kIGFsc28gcmVmZXJlbmNlcyBMb2NhbGVFbGVtZW50c19oZV9JTCkuICBGb3IgYW5vdGhlciBleGFtcGxlLAoraWYgeW91IHJlbW92ZSBDb2xsYXRpb25FbGVtZW50c196aF9fUElOWUlOLnJlcywgeW91IG11c3QgYWxzbyByZW1vdmUKK0xvY2FsZUVsZW1lbnRzX3poX19QSU5ZSU4uY2xhc3MsIHNpbmNlIGl0IGRlcGVuZHMgb24gdGhlCitDb2xsYXRpb25FbGVtZW50c196aF9fUElOWUlOLnJlcy4KKzwvcD4KKworPHA+CitVbmZvcnR1bmF0ZWx5LCB0aGUgamFyIHRvb2wgaW4gdGhlIEpESyBwcm92aWRlcyBubyB3YXkgdG8gcmVtb3ZlIGl0ZW1zCitmcm9tIGEgamFyIGZpbGUuICBUaHVzIHlvdSBoYXZlIHRvIGV4dHJhY3QgdGhlIHJlc291cmNlcywgcmVtb3ZlIHRoZQorb25lcyB5b3UgZG9uJ3Qgd2FudCwgYW5kIHRoZW4gY3JlYXRlIGEgbmV3IGphciBmaWxlIHdpdGggdGhlIHJlbWluaW5nCityZXNvdXJjZXMuICBTZWUgdGhlIGphciB0b29sIGluZm9ybWF0aW9uIGZvciBob3cgdG8gZG8gdGhpcy4gIEJlZm9yZQorJ3JlamFyaW5nJyB0aGUgZmlsZXMsIGJlIHN1cmUgdG8gdGhvcm91Z2hseSB0ZXN0IHlvdXIgYXBwbGljYXRpb24gd2l0aAordGhlIHJlbWFpbmluZyByZXNvdXJjZXMsIG1ha2luZyBzdXJlIGVhY2ggcmVxdWlyZWQgcmVzb3VyY2UgaXMKK3ByZXNlbnQuCis8L3A+CisKKzxoMz5EZXZlbG9waW5nIFJlc291cmNlcyB0byBiZSB1c2VkIHdpdGggSUNVNEo8L2gzPgorPHA+CitJQ1U0SiAyLjEgYW5kIGFib3ZlIHVzZXMgdGhlIHN0YW5kYXJkIGNsYXNzIGxvb2t1cCBtZWNoYW5pc20uICBUaGlzIG1lYW5zIAorYW55IHBwcm9wcmlhdGVseSBuYW1lZCByZXNvdXJjZSBvbiB0aGUgQ0xBU1NQQVRIIHdpbGwgYmUgbG9jYXRlZCwgaW4gdGhlCitvcmRlciBsaXN0ZWQgaW4gdGhlIGNsYXNzcGF0aC4KKzwvcD4KKzxwPgorSWYgeW91IGNyZWF0ZSBhIHJlc291cmNlIGZpbGUKK2NvbS5pYm0uaWN1LmltcGwuZGF0YS5Mb2NhbGVFbGVtZW50c194eF9ZWS5jbGFzcywgYW5kIGxpc3QgaXQgb24gdGhlCitDTEFTU1BBVEggYmVmb3JlIGljdTRqLmphciwgeW91ciByZXNvdXJjZSB3aWxsIGJlIHVzZWQgaW4gcGxhY2Ugb2YgYW55CitleGlzdGluZyBMb2NhbGVFbGVtZW50c194eF9ZWSByZXNvdXJjZSBpbiBpY3U0ai4gIFRoaXMgaXMgYSBnb29kIHdheQordG8gdHJ5IG91dCBjaGFuZ2VzIHRvIHJlc291cmNlcy4gIFlvdSBjYW4sIGZvciBleGFtcGxlLCBpbmNsdWRlIHRoZQorcmVzb3VyY2UgaW4geW91ciBhcHBsaWNhdGlvbidzIGphciBmaWxlIGFuZCBsaXN0IGl0IGFoZWFkIG9mCitpY3U0ai5qYXIuCis8L3A+Cis8cD4KK0luIG9yZGVyIHRvIGNyZWF0ZSBuZXcgcmVzb3VyY2VzLCB5b3UgZmlyc3QgbXVzdCB0aG9yb3VnaGx5IHVuZGVyc3RhbmQKK3RoZSB2YXJpb3VzIGVsZW1lbnRzIGNvbnRhaW5lZCBpbiB0aGUgcmVzb3VyY2UgZmlsZXMsIHRoZWlyIHN5bnRheCBhbmQKK2RlcGVuZGVuY2llcy4gIFlvdSBjYW5ub3Qgc2ltcGx5ICdwYXRjaCcgZXhpc3RpbmcgcmVzb3VyY2UgZmlsZXMgd2l0aAorYSBzaW5nbGUgY2hhbmdlIGJlY2F1c2UgdGhlIG5ldyBmaWxlIGNvbXBsZXRlbHkgcmVwbGFjZXMgdGhlIG9sZCBmaWxlCitpbiB0aGUgcmVzb3VyY2UgaGllcmFyY2h5LiAgSW4gZ2VuZXJhbCwgdGhlIG5ldyByZXNvdXJjZSBmaWxlIHNob3VsZAorY29udGFpbiBhbGwgdGhlIGRpZmZlcmVudCBkYXRhIHRoYXQgdGhlIG9sZCBvbmUgZGlkLCBwbHVzIHlvdXIKK2NoYW5nZXMuCis8L3A+Cis8cD4KK0FkZGluZyBhIG5ldyAnbGVhZicgcmVzb3VyY2UgaXMgZWFzaWVzdC4gIEVsZW1lbnRzIGRlZmluZWQgaW4gdGhhdAorcmVzb3VyY2Ugd2lsbCBvdmVycmlkZSBjb3JyZXNwb25kaW5nIG9uZXMgaW4gdGhlIHJlc291cmNlcyBmdXJ0aGVyIHVwCit0aGUgaGllcmFyY2h5LiAgVGh1cyB5b3UgY2FuLCBmb3IgZXhhbXBsZSwgdHJ5IG91dCBuZXcgbG9jYWxpemVkIG5hbWVzCitvZiBkYXlzIG9mIHRoZSB3ZWVrLCBhcyB0aGV5IGFyZSBhbGwgY29udGFpbmVkIGluIG9uZSBlbGVtZW50LiAgVGhlCit2YXJpYW50IG1lY2hhbmlzbSBjYW4gYmUgdXNlZCB0byB0ZW1wb3JhcmlseSB0cnkgb3V0IG5ldyB2ZXJzaW9ucyBvZgorZXhpc3RpbmcgcmVzb3VyY2UgZWxlbWVudHMgKHRob3VnaCB3ZSBkb24ndCByZWNvbW1lbmQgc2hpcHBpbmcgdGhpcword2F5KS4gIE5vdGUgdGhvdWdoIHRoYXQgc29tZSByZXNvdXJjZXMgaGF2ZSBkZXRhaWxlZCBkZXBlbmRlbmNpZXMgb24KK2VhY2ggb3RoZXIsIHNvIHRoYXQgeW91IGNhbm5vdCBzaW1wbHkgYXNzdW1lIHRoYXQgYSBuZXcgZWxlbWVudCB3aXRoCit0aGUgc2FtZSBzdHJ1Y3R1cmUgYW5kIG51bWJlciBvZiBjb250ZW50cyB3aWxsICdqdXN0IHdvcmsuJworPC9wPgorPHA+CitQYXRjaGluZyBhbiAnaW50ZXJuYWwnIHJlc291cmNlIChzYXksIG9uZSBjb3JyZXNwb25kaW5nIHRvIGFuIGV4aXN0aW5nCitsYW5ndWFnZSByZXNvdXJjZSB0aGF0IGhhcyBjaGlsZHJlbikgcmVxdWlyZXMgY2FyZWZ1bCBhbmFseXNpcyBvZiB0aGUKK2NvbnRlbnRzIG9mIHRoZSByZXNvdXJjZXMuCis8L3A+CisKKzxwPgorTG9jYWxlRWxlbWVudHMgcmVzb3VyY2UgZGF0YSBpbiBJQ1U0SiBpcyBjaGVja2VkIGluIHRvIHRoZQorcmVwb3NpdG9yeSBhcyBwcmVjb21waWxlZCBjbGFzcyBmaWxlcy4gIFRoaXMgbWVhbnMgdGhhdCBpbnNwZWN0aW5nIHRoZQorY29udGVudHMgb2YgdGhlc2UgcmVzb3VyY2VzIGlzIGRpZmZpY3VsdC4gIFRoZXkgYXJlIGNvbXBpbGVkIGZyb20gamF2YQorZmlsZXMgdGhhdCBpbiB0dXJuIGFyZSBtYWNoaW5lLWdlbmVyYXRlZCBmcm9tIElDVTRDIGJpbmFyeSBkYXRhLCB1c2luZwordGhlIGdlbnJiIHRvb2wgaW4gSUNVNEMuICBZb3UgY2FuIHZpZXcgdGhlIGNvbnRlbnRzIG9mIHRoZSBJQ1U0QyB0ZXh0CityZXNvdXJjZSBmaWxlcyB0byB1bmRlcnN0YW5kIHRoZSBjb250ZW50cyBvZiB0aGUgSUNVNEogcmVzb3VyY2VzLCBhcwordGhleSBhcmUgdGhlIHNhbWUuCis8L3A+CisKKzxoMz5EZXZlbG9waW5nIElDVTRKIFJlc291cmNlczwvaDM+Cis8cD4KK0N1cnJlbnRseSBvbmx5IHRoZSBMb2NhbGVFbGVtZW50cyByZXNvdXJjZSBkYXRhIGlzIHNoYXJlZCwgb3RoZXIgSUNVCityZXNvdXJjZXMgKGNhbGVuZGFyLCB0cmFuc2xpdGVyYXRvciwgZXRjLikgYXJlIHN0aWxsIGNoZWNrZWQgaW4KK2RpcmVjdGx5IHRvIElDVTRKIGFzIHNvdXJjZSBmaWxlcy4gIFRoaXMgbWVhbnMgdGhhdCBkZXZlbG9wbWVudCBhbmQKK21haW50ZW5hbmNlIG9mIHRoZXNlIHJlc291cmNlcyBjb250aW51ZXMgYXMgYmVmb3JlLCBvbmx5CitMb2NhbGVFbGVtZW50cyByZXNvdXJjZSBkYXRhIGhhcyBiZWVuIGNoYW5nZWQgaW4gSUNVNEogMi4xLiAgVGhpcworcHJvYmFibHkgd2lsbCBjaGFuZ2UgaW4gdGhlIGZ1dHVyZSBvbmNlIHdlIHdvcmsgb3V0IGEgcmVhc29uYWJsZQorbWVjaGFuaXNtIGZvciBzdG9yaW5nIGFuZCBnZW5lcmF0aW5nIHRoZSByZXNvdXJjZSBkYXRhLgorPC9wPgorPHA+CitPbmUgZ29hbCBvZiB1c2luZyB0aGUgc2FtZSByZXNvdXJjZSBkYXRhIGFzIElDVTRDIGlzIHRvIGF2b2lkIGtlZXBpbmcKK3JlZHVuZGFudCBjb3BpZXMgb2YgdGhlIHJlc291cmNlIGRhdGEuICBDdXJyZW50bHkgdGhlcmUgaXMgbm8gc2VwYXJhdGUKK3JlcG9zaXRvcnkgb2YgdGhlICdtYXN0ZXInIHJlc291cmNlIGRhdGEsIGl0IGlzIGNoZWNrZWQgaW4gdG8gSUNVNEMsCithbmQgdGhlIHRvb2xzIGZvciBjb252ZXJ0aW5nIGl0IHRvIC5qYXZhIGZpbGVzIGFyZSBJQ1U0QyB0b29scy4gIFRoaXMKK2lzIGluY29udmVuaWVudCBmb3Igd29ya2luZyBpbiBKYXZhLCBidXQgc2luY2UgbWFpbnRlbmFuY2Ugb2YgSUNVNEoKK2FuZCBJQ1U0QyBpcyBzdXBwb3NlZCB0byBnbyBvbiAnaW4gcGFyYWxsZWwsJyBhcyBhIHByYWN0aWNhbCBtYXR0ZXIKK3Blb3BsZSB3aWxsIGhhdmUgdG8gYmUgZmFtaWxpYXIgd2l0aCBkZXZlbG9wbWVudCBpbiBib3RoIEMgYW5kIEphdmEsCithbmQgd2l0aCB0aGUgY29udmVudGlvbnMgYW5kIHN0cnVjdHVyZSBvZiBlYWNoIHByb2plY3QuICBBZGRpdGlvbmFsbHksCitzaGFyaW5nIG9mIGRhdGEgbWVhbnMgdGhhdCBtb2RpZmljYXRpb25zIHRvIGRhdGEgaW1tZWRpYXRlbHkgaW1wYWN0Citib3RoIHByb2plY3RzIChhcyBpdCBzaG91bGQpIGFuZCB0aHVzIGJvdGggcHJvamVjdHMgbmVlZCB0byBiZSB0ZXN0ZWQKK3doZW4gc3VjaCBjaGFuZ2VzIGFyZSBtYWRlLiAgVGhlIGJ1bGsgb2YgdGhlIHRvb2xzIGFyZSBjdXJyZW50bHkgb24KK3RoZSBJQ1U0QyBzaWRlLCBhbmQgd2lsbCBsaWtlbHkgc3RheSB0aGF0IHdheSwgc28gdGhpcyBzZWVtcyBsaWtlIGEKK3JlYXNvbmFibGUgaW5pdGlhbCBhcHByb2FjaCB0byBzaGFyaW5nIHRoZSBkYXRhLgorPC9wPgorCis8cD4KK1doaWxlIHByb3RvdHlwaW5nIG9mIExvY2FsZUVsZW1lbnRzIGRhdGEgY2FuIG9jY3VyIGluIGVpdGhlciBKYXZhIG9yCitDLCB0aGUgZmluYWwgdmVyc2lvbiBzaG91bGQgYmUgY2hlY2tlZCBpbiB0byBJQ1U0QyBpbiB0ZXh0IGZvcm1hdC4KK0dlbnJiIGlzIHRoZW4gcnVuIHRvIGdlbmVyYXRlIHRoZSAuamF2YSBhbmQgLnJlcyBmaWxlcy4gIFRoZXkgYXJlIHRoZW4KK2NvbXBpbGVkIGFuZCBqYXInZCBpbnRvIHRoZSBmaWxlIElDVUxvY2FsZURhdGEuamFyLiAgVGhlIHJlc3VsdGluZyBqYXIKK2ZpbGUgaXMgdGhlbiBjaGVja2VkIGluIHRvIElDVTRKIGFzCitzcmMvY29tL2libS9pY3UvZGV2L2RhdGEvSUNVTG9jYWxlRGF0YS5qYXIuICAoVGhpcyBpcyBub3QgZ3JlYXQgYnV0IGl0CithbGxvd3MgSUNVNEogdG8gYmUgZG93bmxvYWRlZCBhbmQgYnVpbHQgYXMgb25lIHByb2plY3QsIGluc3RlYWQgb2YKK3R3bywgb25lIGZvciBsb2NhbGUgZGF0YSBhbmQgb25lIGZvciBJQ1U0SiBwcm9wZXIuICBHaXZlbiB0aGUgMi4yCitzY2hlZHVsZSBpdCB3YXNuJ3QgcG9zc2libGUgdG8gd29yayBvdXQgdGhlIGxhcmdlciBkYXRhIHNoYXJpbmcKK3Byb2JsZW0gaW4gdGltZSwgc28gd2UgdHJpZWQgdG8gbGltaXQgdGhlIGltcGFjdCB0byBqdXN0IHdoYXQgd2FzCituZWVkZWQgdG8gZ2V0IEpESyAxLjQgc3VwcG9ydCB1cCBhbmQgcnVubmluZy4pCis8L3A+CisKKzxwPgorVGhlIGZpbGVzIGluIElDVUxvY2FsZURhdGEuamFyIGdldCBleHRyYWN0ZWQgdG8gY29tL2libS9pY3UvaW1wbC9kYXRhIGluCit0aGUgYnVpbGQgZGlyZWN0b3J5IHdoZW4gdGhlICdjb3JlJyB0YXJnZXQgaXMgYnVpbHQuICBUaGVyZWFmdGVyLCBhcworbG9uZyBhcyB0aGUgZmlsZSBMb2NhbGVFbGVtZW50c19pbmRleC5jbGFzcyBmaWxlIGlzIHVudG91Y2hlZCwgdGhleSB3aWxsCitub3QgYmUgZXh0cmFjdGVkIGFnYWluLiAgQnVpbGRpbmcgdGhlICdyZXNvdXJjZScgdGFyZ2V0IHdpbGwgZm9yY2UgdGhlCityZXNvdXJjZXMgdG8gb25jZSBhZ2FpbiBiZSBleHRyYWN0ZWQuICBFeHRyYWN0aW9uIHdpbGwgCitvdmVyd3JpdGUgYW55IGNvcnJlc3BvbmRpbmcgLmNsYXNzIGZpbGVzIGFscmVhZHkgaW4gdGhhdCBkaXJlY3RvcnkuCis8L3A+CisKKzxoMz48YSBuYW1lPSJXaGVyZVRvRmluZE1vcmUiPjwvYT48dT5XaGVyZSB0byBGaW5kIE1vcmUgSW5mb3JtYXRpb248L3U+PC9oMz4KKworPHA+Rm9yIGluZm9ybWF0aW9uIHNwZWNpZmljIHRvIHRoaXMgY3VycmVudCByZWxlYXNlLCBwbGVhc2UgcmVmZXIgdG8gdGhlIDxhIGhyZWY9InJlbGVhc2Vub3Rlcy5odG1sIj5yZWxlYXNlbm90ZXMuaHRtbDwvYT48L3A+CisKKzxwPjxhIGhyZWY9Imh0dHA6Ly9vc3Muc29mdHdhcmUuaWJtLmNvbS9pY3U0aiI+aHR0cDovL29zcy5zb2Z0d2FyZS5pYm0uY29tL2ljdTRqPC9hPiBpcyBhCitwb2ludGVyIHRvIGdlbmVyYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIEludGVybmF0aW9uYWwgQ29tcG9uZW50cyBmb3IgVW5pY29kZSBpbiBKYXZhIDwvcD4KKworPHA+PGEgaHJlZj0iaHR0cDovL3d3dy5pYm0uY29tL2RldmVsb3Blci91bmljb2RlIj5odHRwOi8vd3d3LmlibS5jb20vZGV2ZWxvcGVyL3VuaWNvZGU8L2E+IGlzIGEgcG9pbnRlciB0bworaW5mb3JtYXRpb24gb24gaG93IHRvIG1ha2UgYXBwbGljYXRpb25zIGdsb2JhbC4gPC9wPgorCis8aDM+PGEgTkFNRT0iU3VibWl0dGluZ0NvbW1lbnRzIj48L2E+PHU+U3VibWl0dGluZyBDb21tZW50cywgUmVxdWVzdGluZyBGZWF0dXJlcyBhbmQKK1JlcG9ydGluZyBCdWdzPC91PjwvaDM+CisKKzxwPllvdXIgY29tbWVudHMgYXJlIGltcG9ydGFudCB0byBtYWtpbmcgSUNVNEogc3VjY2Vzc2Z1bC4mbmJzcDsgV2UgYXJlIGNvbW1pdHRlZAordG8gZml4aW5nIGFueSBidWdzLCBhbmQgd2lsbCB1c2UgeW91ciBmZWVkYmFjayB0byBoZWxwIHBsYW4gZnV0dXJlIHJlbGVhc2VzLjwvcD4KKworPHA+VG8gc3VibWl0IGNvbW1lbnRzLCByZXF1ZXN0IGZlYXR1cmVzIGFuZCByZXBvcnQgYnVncywgY29udGFjdCB1cyB0aHJvdWdoIHRoZSA8YSBocmVmPWh0dHA6Ly9vc3Muc29mdHdhcmUuaWJtLmNvbS9pY3U0ai9hcmNoaXZlcy9pbmRleC5odG1sPklDVTRKIG1haWxpbmcgbGlzdDwvYT4uPGJyPgorV2hpbGUgd2UgYXJlIG5vdCBhYmxlIHRvIHJlc3BvbmQgaW5kaXZpZHVhbGx5IHRvIGVhY2ggY29tbWVudCwgd2UgZG8gcmV2aWV3IGFsbCBjb21tZW50cy48L3A+Cis8cD5UaGFua3MgZm9yIHlvdXIgaW50ZXJlc3QgaW4gSUNVNEohPC9wPgorCis8aHIgc2l6ZT0iMiIgd2lkdGg9IjEwMCUiIGFsaWduPSJjZW50ZXIiPgorCis8cD48aT48Zm9udCBzaXplPSItMSI+Q29weXJpZ2h0IKkgMjAwMiBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMKK1Jlc2VydmVkLjxicj4KKzU2MDAgQ290dGxlIFJvYWQsIFNhbiBKb3PpLCBDQSA5NTE5MworPC9mb250PjwvaT48L3A+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3JlbGVhc2Vub3Rlcy5odG1sIGIvcmVsZWFzZW5vdGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmNmOTM5MAotLS0gL2Rldi9udWxsCisrKyBiL3JlbGVhc2Vub3Rlcy5odG1sCkBAIC0wLDAgKzEsMjM0IEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPklDVTRKIDIuMiBSZWxlYXNlIE5vdGVzPC90aXRsZT4KKzxtZXRhIGh0dHAtZXF1aXY9Q29udGVudC1UeXBlIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xIj4KKzwhLS0KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovQXR0aWMvcmVsZWFzZW5vdGVzLmh0bWwsdiAkCisqICREYXRlOiAyMDAyLzA4LzE2IDE1OjUxOjM1ICQKKyogJFJldmlzaW9uOiAxLjcgJAorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorLS0+Cis8L2hlYWQ+CisKKzxib2R5IGJnY29sb3I9IiNGRkZGRkYiPgorPCEtLSNpbmNsdWRlIHZpcnR1YWw9Ii9pY3Uvc3NpL2hlYWRlci5odG1sIiAtLT4gCisgICAgPGgyPkludGVybmF0aW9uYWwgQ29tcG9uZW50cyBmb3IgVW5pY29kZSBmb3IgSmF2YTwvaDI+CisgICAgPGgzPlJlbGVhc2UgTm90ZXMgZm9yIElDVTRKIDIuMjwvaDM+CisKKzxociBzaXplPSIyIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+CisgICAgPHA+PGI+UmVsZWFzZSBEYXRlPC9iPjxicj4KKyAgICBBdWd1c3QgMTV0aCwgMjAwMjwvcD4KKworPHA+Rm9yIHRoZSBtb3N0IHJlY2VudAorICAgICAgcmVsZWFzZSwgc2VlIHRoZSA8YSBocmVmPSJodHRwOi8vb3NzLnNvZnR3YXJlLmlibS5jb20vaWN1NGovZG93bmxvYWQvaW5kZXguaHRtbCI+CisgICAgICBJQ1U0SiBkb3dubG9hZCBzaXRlPC9hPi4KKyAgICA8L1A+CisKKyAgICA8cD48Qj5XaGF0J3MgbmV3IGluIFJlbGVhc2UgMi4yPC9CPjwvcD4KKworPHVsPgorICA8bGk+PGI+VW5pY29kZSAzLjIgc3VwcG9ydDwvYj4KKyAgICA8dWw+CisgICAgICA8bGk+QWxsIHByb3BlcnRpZXMgYW5kIGFsZ29yaXRobXMgYXJlIHVwZ3JhZGVkIHRvIDxhIGhyZWY9Imh0dHA6Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0cy90cjI4LyI+VW5pY29kZQorICAgICAgICAzLjI8L2E+LgorICAgICAgPGxpPlRoZSBVQ0EgKDxhIGhyZWY9Imh0dHA6Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0cy90cjEwLyI+VW5pY29kZQorICAgICAgICBDb2xsYXRpb24gQWxnb3JpdGhtPC9hPikgdGFibGUgaXMgdXBkYXRlZCB0byB0aGUgY3VycmVudCB2ZXJzaW9uIDMuMS4xLAorICAgICAgICB3aXRoIFVuaWNvZGUgMy4yLWJhc2VkIGNhbm9uaWNhbCBjbG9zdXJlLgorICAgICAgPGxpPk1vc3QgVW5pY29kZSBwcm9wZXJ0aWVzIGFyZSBub3cgPGEgaHJlZj0iaHR0cDovL29zcy5zb2Z0d2FyZS5pYm0uY29tL2N2cy9pY3UvfmNoZWNrb3V0fi9pY3VodG1sL2Rlc2lnbi91Y2RfaWN1Lmh0bWwiPmF2YWlsYWJsZQorICAgICAgICB2aWEgZGlyZWN0IEFQSXMsIGFuZCBpbiBVbmljb2RlU2V0PC9hPi48L2xpPgorICAgIDwvdWw+CisgIDwvbGk+CisgIDxsaT48Yj5Db2xsYXRpb248L2I+PGJyPgorICAgIFRoZSBjb2xsYXRpb24gZW5naW5lIGhhcyBiZWVuIGNvbXBsZXRlbHkgcmV3cml0dGVuIHRvIGJlIGNvbmZvcm1hbnQgdG8gdGhlCisgICAgbGF0ZXN0IHZlcnNpb24gb2YgdGhlIFVDQSwgYW5kIHRvIHVzZSB0aGUgc2FtZSBwZXJmb3JtYW5jZSBlbmhhbmNlbWVudHMKKyAgICBhdmFpbGFibGUgaW4gSUNVNEMuIENvbXBhcmVkIHRvIHRoZSBKREssIGl0IGlzIGRyYW1hdGljYWxseSBmYXN0ZXIsIGhhcyBtdWNoCisgICAgc21hbGxlciBzb3J0IGtleXMsIG1vcmUgY3VzdG9taXphdGlvbiwgYW5kIGJldHRlciBhbmQgYWRkaXRpb25hbAorICAgIGxvY2FsZS1zcGVjaWZpYyBkYXRhLiBGb3IgbW9yZSBkZXRhaWxzLCBzZWUgPGEgaHJlZj0iI2NvbGxhdGlvbiI+Q29sbGF0aW9uCisgICAgRW5oYW5jZW1lbnRzPC9hPiBiZWxvdy4KKyAgPGxpPjxiPk5vcm1hbGl6YXRpb248L2I+PGJyPgorICAgIFRoZSBOb3JtYWxpemF0aW9uIHNlcnZpY2UgYWRkcyBzZXZlcmFsIGhpZ2ggcGVyZm9ybWFuY2UgZnVuY3Rpb25zIGZvcjoKKyAgICA8dWw+CisgICAgICA8bGk+ZmFzdCBjb25jYXRlbmF0aW9uLCBwcmVzZXJ2aW5nIE5GQyBhbmQgTkZELgorICAgICAgPGxpPmZhc3QgZGV0ZWN0aW9uIG9mIG5vcm1hbGl6ZWQgdGV4dAorICAgICAgPGxpPmZhc3QgY2Fub25pY2FsIGVxdWl2YWxhbmNlIGFuZC9vciBjYXNlLWluc2Vuc2l0aXZlIG1hdGNoaW5nPC9saT4KKyAgICA8L3VsPgorICA8bGk+PGI+VHJhbnNsaXRlcmF0aW9uPC9iPjxicj4KKyAgICBUaGVyZSBhcmUgbm93IHRyYW5zbGl0ZXJhdG9ycyBmb3IgYWxsIHNjcmlwdHMgdXNlZCBieSBJQ1UgbG9jYWxlcy4gSW4KKyAgICBhZGRpdGlvbiwgbWl4ZWQtc2NyaXB0IHRleHQgY2FuIGJlIGF1dG9tYXRpY2FsbHkgdHJhbnNsaXRlcmF0ZWQgdG8gYSB0YXJnZXQKKyAgICBzY3JpcHQuCisgIDxsaT48Yj5BbHRlcm5hdGUgY3VycmVuY3kgZm9ybWF0dGluZzwvYj48YnI+CisgICAgSUNVIHBlcm1pdHMgYXJiaXRyYXJ5IGN1cnJlbmNpZXMgdG8gYmUgZm9ybWF0dGVkIGZvciBkaXNwbGF5IGFjY29yZGluZyB0bworICAgIGFyYml0cmFyeSBsb2NhbGVzLCBzdWNoIGFzIGZvcm1hdHRpbmcgWWVuIGFtb3VudHMgZm9yIHRoZSBVUy4KKyAgPGxpPjxiPlVuaWNvZGVTZXRzPC9iPjxicj4KKyAgICBVbmljb2RlU2V0cyBub3cgcGVybWl0IHN0cmluZ3MgYXMgd2VsbCBhcyBjaGFyYWN0ZXJzLCBzbyB0aGF0IHRoZXkgY2FuCisgICAgY29udGFpbiBncmFwaGVtZS1jbHVzdGVycy4gVW5pY29kZVNldEl0ZXJhdG9yIHByb3ZpZGVzIGEgZmFzdCBtZWNoYW5pc20gZm9yCisgICAgaXRlcmF0aW5nIHRocm91Z2ggdGhlIGNvbnRlbnRzIChjb2RlIHBvaW50cyBhbmQgc3RyaW5ncykgb2YgYSBVbmljb2RlU2V0LgorICAgIEZvciBjb2RlIHBvaW50cyB0aGUgaXRlcmF0aW9uIGlzIGVpdGhlciBieSBpbmRpdmlkdWFsIGNvZGUgcG9pbnQgb3IgYnkKKyAgICByYW5nZXMuCisgIDxsaT48Yj5HZW5lcmFsIGltcHJvdmVtZW50czwvYj48YnI+CisgICAgUGVyZm9ybWFuY2UgaGFzIGJlZW4gZW5oYW5jZWQgaW4gYSBudW1iZXIgb2Ygc2VydmljZXMsIGFuZCBhIG51bWJlciBvZgorICAgIHNpZ25pZmljYW50IGJ1Z3MgaGF2ZSBiZWVuIGZpeGVkLjwvbGk+Cis8L3VsPgorICA8cD5QbGVhc2UgYWxzbyBub3RlIHRoZSA8YSBocmVmPSIjcmVwYWNrYWdlIj5wYWNrYWdpbmc8L2E+IGFuZCA8YSBocmVmPSIjUmVzb3VyY2VEYXRhIj5yZXNvdXJjZSBkYXRhPC9hPiBjaGFuZ2VzCisgICAgaW50cm9kdWNlZCB3aXRoIElDVTRKIDIuMSwgZGVzY3JpYmVkIGJlbG93LjwvcD4KKworICAgICA8UD48Qj5SZWZlcmVuY2UgUGxhdGZvcm1zPC9CPjwvUD4KKyAgICAgIDxwPgorICAgICAgVGhlIHJlZmVyZW5jZSBwbGF0Zm9ybXMgZm9yIHZlcnNpb24gMi4yIGFyZTo8dWw+Cis8bGk+IFdpbjIwMDAsIElCTSBKREsgMS4zCis8bGk+IFNvbGFyaXMgMi43LCBTdW4gSkRLIDEuMy4xCis8bGk+IEFJWCA1LjEsIElCTSBKREsgMS4zCis8L3VsPgorICAgICAgPC9wPgorICAgICAgPFA+CisgICAgICBJbiByZWxlYXNlIDIuMiwgdGhlcmUgYXJlIDIga25vd24gbm9uLXJlZmVyZW5jZSBwbGF0Zm9ybSBjb21waWxlcnMgdGhhdCBmYWlsIGNvbXBpbGluZyBJQ1U0SiBzb3VyY2UgY29kZSwgSUJNIEpESyAxLjMuMV8wMiBhbmQgSmlrZXMgMS4xNi4gVXNlIElDVTRKIG9uIHVuc3VwcG9ydGVkIEpWTXMgYW5kIG5vbi1yZWZlcmVuY2UgcGxhdGZvcm0gY29tcGlsZXJzIGF0IHlvdXIgb3duIHJpc2suPC9QPgorCisgICAgICA8cD48Yj5XYXJuaW5nczwvYj48L3A+CisgICAgICA8cD4KKyAgICAgICAgIEluIHJlbGVhc2UgMi4yLCB0aGVyZSBpcyBhIGxpbWl0YXRpb24gd2l0aCBwYXR0ZXJuIGhhbmRsaW5nIHdpdGggRGVjaW1hbEZvcm1hdCB3aGVuIGEgcGVyY2VudCBvciBwZXJtaWxsZSBzaWduIGlzIGluY2x1ZGVkLgorICAgICAgPC9wPgorICAgICAgPHA+CisgICAgICA8dWw+CisgICAgICAgICAgPGxpPiBRdW90ZWQgcGVyY2VudCBvciBwZXJtaWxsZSBzaWducywgd2hpY2ggc2hvdWxkIGJlIHRyZWF0ZWQgYXMgbGl0ZXJhbHMsIGFyZSBpbnN0ZWFkIHRyZWF0ZWQgYXMgaWYgdGhleSB3ZXJlIHVucXVvdGVkLgorICAgICAgICAgIDxsaT4gUGF0dGVybnMgaW52b2x2aW5nIHBlcmNlbnQgb3IgcGVybWlsbGUgc2lnbnMgd2lsbCBiZSBnZW5lcmF0ZWQgd2l0aCBsb2NhbGl6ZWQgcGF0dGVybiBjaGFyYWN0ZXJzIGZvciB0aG9zZSBzaWducywgd2hlbiBhIG5vbi1sb2NhbGl6ZWQgcGF0dGVybiBpcyByZXF1ZXN0ZWQuICBJZiBzdWNoIGEgcGF0dGVybiBpcyBzdWJzZXF1ZW50bHkgYXBwbGllZCB0byBhIERlY2ltYWxGb3JtYXQgYXMgYSBub24tbG9jYWxpemVkIHBhdHRlcm4sIHRoZSBwZXJjZW50IG9yIHBlcm1pbGxlIHNpZ25zIHdpbGwgbm90IGJlIHJlY29nbml6ZWQgaWYgdGhleSBkaWZmZXIgZnJvbSB0aGUgbm9uLWxvY2FsaXplZCBzaWducyBpbiB0aGUgbG9jYWxlIGJlaW5nIHVzZWQuCisgICAgICA8L3VsPgorICAgICAgPC9wPgorICAgICAgPHA+VGhlc2UgcHJvYmxlbXMgd2lsbCBiZSBmaXhlZCBpbiB0aGUgbmV4dCByZWxlYXNlLjwvcD4KKworPHA+PGI+Rm9yIE1vcmUgSW5mb3JtYXRpb248L2I+PC9wPgorCisgICAgICA8cD5Gb3IgZnVydGhlciBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgSUNVNEogbGlicmFyeSwgcGxlYXNlIHJlZmVyIHRvIHRoZQorICAgICAgPEEgaHJlZj0icmVhZG1lLmh0bWwiPnJlYWRtZS48L0E+CisgICAgICA8L3A+CisKKzxociBzaXplPSIyIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+CisKKyAgICA8cD48aDM+PGEgbmFtZT0iY29sbGF0aW9uIj5Db2xsYXRpb24gRW5oYW5jZW1lbnRzPC9hPjwvaDM+PC9wPiAKKworPHA+SUNVNEoncyBjb2xsYXRpb24gaGFzIGJlZW4gdXBncmFkZWQgYW5kIG5vdyBkaWZmZXJzIHNpZ25pZmljYW50bHkgZnJvbSB0aGUgSkRLJ3MgaW1wbGVtZW50YXRpb24gKG9yaWdpbmFsbHkgcHJvdmlkZWQgYnkgdXMgc2V2ZXJhbCB5ZWFycyBhZ28pLjwvcD4KKworPHA+SUNVJ3MgY29sbGF0aW9uIGlzLCBpbiBnZW5lcmFsLCBtdWNoIG1vcmUgZWZmaWNpZW50IHRoYW4gdGhlIEpESydzLiAoVGhlIHRpbWUgdG8gZ2VuZXJhdGUgc29ydCBrZXlzIGlzIGxvbmdlciwgYmVjYXVzZSB0aGV5IGFyZSBzbyBtdWNoIHNob3J0ZXIgYW5kIG1vcmUgZWZmaWNpZW50IHRvIHByb2Nlc3MpLiAgRm9yIGluc3RhbmNlOgorPHVsPgorICA8bGk+SUNVNEogY2FuIGNvcnJlY3RseSBwcm9jZXNzIEZDRCBmb3JtYXQgc3RyaW5ncyB3aXRoIG5vcm1hbGl6YXRpb24gb2ZmLiAgVGhlIEpESyBoYXMgbm8gbm90aW9uIG9mIEZDRC4gTXVjaCB1c2VyIHRleHQgaXMgaW4gRkNEIGZvcm0gKGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IEZDRCwgc2VlIDxhIGhyZWY9Imh0dHA6Ly93d3cudW5pY29kZS5vcmcvbm90ZXMvdG41LyI+VW5pY29kZSBUZWNobmljYWwgTm90ZSAjNTwvYT4pLjwvbGk+CisgIDxsaT5Db2xsYXRpb25LZXlzIGdlbmVyYXRlZCBieSBJQ1U0SiBhcmUgY29tcHJlc3NlZCwgYW5kIGFzIGNvbXBhcmVkIHdpdGggdGhlIEpESydzLCBjYW4gYmUgdXAgdG8gNzAlIHNtYWxsZXIgKGUuZy4gaW4gdGhlIGNhc2Ugb2YgTGF0aW4gY2hhcmFjdGVycykuPC9saT4KKyAgPGxpPlN0cmluZyBjb21wYXJpc29uIGluIElDVSBpcyBmYXN0ZXIgdGhhbiB0aGUgSkRLJ3MuIEluIG91ciB0ZXN0cyBvZiBMYXRpbiBjaGFyYWN0ZXJzLCBpdCB0b29rIGp1c3QgMzUlIG9mIHRoZSBKREsncyB0aW1lLiA8L2xpPgorPC91bD48L3A+CisKKzxwPkFsdGhvdWdoIElDVTRKJ3MgY29sbGF0aW9uIEFQSSBpcyB2ZXJ5IGNvbXBhdGFibGUgd2l0aCB0aGUgSkRLJ3MsIHRoZXJlIGFyZSBzb21lIGRpZmZlcmVuY2VzLiAgSGVyZSBpcyBhIGxpc3Rpbmcgb2YgdGhlIG1haW4gb25lczoKKzx1bD4KKyAgPGxpPklDVTRKIHN1cHBvcnRzIDxiPnF1YXRlcm5hcnk8L2I+IGFuZCA8Yj5pZGVudGljYWw8L2I+IHN0cmVuZ3RoLCB0aGUgSkRLIGRvZXMgbm90LjwvbGk+CisgIDxsaT4gSUNVNEogc3VwcG9ydHMgZXh0cmEgY29sbGF0aW9uIG9wdGlvbnMsIHRoZSBKREsgZG9lcyBub3Q6PC9saT4KKyAgICA8dWw+CisgICAgICA8bGk+YWx0ZXJuYXRlIGhhbmRsaW5nPC9saT4KKyAgICAgIDxsaT5jYXNlIGxldmVsIHNvcnQ8L2xpPgorICAgICAgPGxpPnVwcGVyIGNhc2UgZmlyc3Qgb3IgbG93ZXIgY2FzZSBmaXJzdCBzd2l0Y2g8L2xpPgorICAgIDwvdWw+CisgIDxsaT5JQ1U0SiBzdXBwb3J0cyBVbmljb2RlIDMuMiwgd2hpbGUgdGhlIEpESyAoYXMgb2YgdmVyc2lvbiAxLjQpIG9ubHkgc3VwcG9ydHMgVW5pY29kZSAzLjAuPC9saT4KKyAgPGxpPklDVTRKIGRvZXMgbm90IGFsbG93IHR1cm5pbmcgb2ZmIFRoYWkgcmVvcmRlcmluZywgd2hpbGUgdGhlIEpESyBkb2VzLiAgVGhpcyBpcyBiZWNhdXNlIGluIFVuaWNvZGUgMy4yIFRoYWkgcmVvcmRlcmluZyBpcyBhbHdheXMgcmVxdWlyZWQuIFRoZSBKREsgdXNlcyAnIScgaW4gdGhlIHJ1bGVzIHRvIHR1cm4gb2ZmIFRoYWkgcmVvcmRlcmluZzsgSUNVNEogaWdub3JlcyBpdC48L2xpPgorICA8bGk+SUNVNEogc3VwcG9ydHMgYWRkaXRpb25hbCBydWxlIHN5bnRheCBmb3IgdmFyaW91cyBvcHRpb25zLCBmb3IgZXhhbXBsZSwgc2V0dGluZyA8Yj52YXJpYWJsZS10b3A8L2I+LCBjb2RlIHBvaW50IGNvbGxhdGlvbiBlbGVtZW50IHBvc2l0aW9uaW5nLCBhbmQgb3RoZXJzLiAgRm9yIGRldGFpbHMsIHNlZSB0aGUgPGEgaHJlZj0iaHR0cDovL29zcy5zb2Z0d2FyZS5pYm0uY29tL2ljdS91c2VyZ3VpZGUvQ29sbGF0ZV9DdXN0b21pemF0aW9uLmh0bWwiPnVzZXIncyBndWlkZTwvYT4uCisgIDxsaT5JQ1U0SidzIHZlcnNpb24gb2YgQ29sbGF0aW9uS2V5IGhhcyBhIHB1YmxpYyBjb25zdHJ1Y3Rvciwgc28gc3ViY2xhc3NlcyBvZiBSdWxlQmFzZWRDb2xsYXRvciBjYW4gY3JlYXRlIHRoZWlyIG93biBDb2xsYXRpb25LZXlzLiAgVGhpcyB3YXMgb3Zlcmxvb2tlZCBpbiB0aGUgSkRLIChtZWEgY3VscGEpLjwvbGk+CisgIDxsaT5UaGUgRlVMTF9ERUNPTVBPU0lUSU9OIG1vZGUgdXNlZCBpbiB0aGUgSkRLIGlzIHVubmVjZXNzYXJ5IGZvciB0aGUgVUNBIChhbmQgYWN0dWFsbHkgaW5jb3JyZWN0IGluIHNvbWUgY2FzZXMpLiBJQ1U0SiBkb2VzIG5vdCBkZWZpbmUgdGhpcyBtb2RlOyBjbGllbnRzIHNob3VsZCB1c2UgQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04gaW5zdGVhZC4KKyAgPGxpPklDVTRKIHVzZXMgdGhlIHN0YW5kYXJkIFVDQSBkZWZhdWx0IG9yZGVyaW5nLCBwbHVzIGZpeGVzIGFuZCBhZGRpdGlvbnMgZm9yCisgICAgZGlmZmVyZW50IGxhbmd1YWdlcywgc28gdGhlIHNvcnRpbmcgb3JkZXIgd2lsbCBkaWZmZXIgZnJvbSB0aGUgSkRLJ3MuCisgIDxsaT5UaGUgQ29sbGF0aW9uS2V5cyBnZW5lcmF0ZWQgYnkgSUNVNEogYW5kIHRoZSBKREsgYXJlIGRpZmZlcmVudCwgc28gdGhleSBjYW5ub3QgYmUgY29tcGFyZWQuPC9saT4KKzwvdWw+Cis8L3A+CisKKzxociBzaXplPSIyIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+CisgICAgPGgzPjxhIG5hbWU9InJlcGFja2FnZSI+UGFja2FnZSBSZXN0cnVjdHVyaW5nPC9hPjwvaDM+IAorCis8cD5TdGFydGluZyB3aXRoIGVuaGFuY2VtZW50IHJlbGVhc2UgMi4xIG9mIElDVTRKLCB0aGUgY3ZzIHJlcG9zaXRvcnkKK2FuZCBwYWNrYWdlIG9yZ2FuaXphdGlvbiBoYXMgY2hhbmdlZC4gIFRoaXMgaGVscHMgdXMgdG8gbW9yZSBjbGVhbmx5Citvcmdhbml6ZSB0aGUgY2xhc3NlcywgYW5kIHRvIGNsYXJpZnkgcmVsYXRpb25zaGlwcyBhbmQgZGlmZmVyZW5jZXMKK2JldHdlZW4gcGFydHMgb2YgdGhlIHByb2plY3QuPC9wPgorCis8cD5UaGUgbmV3IGhpZ2gtbGV2ZWwgc3RydWN0dXJlIGlzIGFzIGZvbGxvd3M6PGJyPjx0dD48cHJlPgorY29tCisgICAuaWJtCisgICAgICAgLnJpY2h0ZXh0ICAgICAgIC0tLSAgcm9vdCBvZiByaWNoIGVkaXQgY29udHJvbAorICAgICAgIC5pY3UgICAgICAgICAgICAtLS0gIHJvb3Qgb2YgaWN1CisgICAgICAgICAgICAuZGV2ICAgICAgIC0tLSAgY2xhc3NlcyBleGNsdWRlZCBmcm9tIGljdTRqLmphciAoZGV2ZWxvcG1lbnQgb25seSkKKyAgICAgICAgICAgICAgICAuZGF0YSAgLS0tICBkYXRhIChlLmcuIHVuaWNvZGUgZGF0YSBmaWxlcykKKyAgICAgICAgICAgICAgICAuZGVtbyAgLS0tICBkZW1vcyAoZS5nLiBjYWxlbmRhciwgaG9saWRheSwgdHJhbnNsaXQpCisgICAgICAgICAgICAgICAgLnRlc3QgIC0tLSAgYXBpIHRlc3RzIGdyb3VwZWQgYnkgZnVuY3Rpb25hbGl0eQorICAgICAgICAgICAgICAgIC50b29sICAtLS0gIHRvb2xzIHVzZWQgaW4gZGV2ZWxvcG1lbnQKKyAgICAgICAgICAgIC5pbXBsICAgICAgLS0tICByb290IG9mICdpbnRlcm5hbCcgY2xhc3NlcyAKKyAgICAgICAgICAgICAgICAuZGF0YSAgLS0tICBzaGlwcGVkIGRhdGEgKHRleHQgYW5kIHJlc291cmNlcykKKyAgICAgICAgICAgIC5sYW5nICAgICAgLS0tICBzaW1pbGFyIHRvIGphdmEubGFuZworICAgICAgICAgICAgLm1hdGggICAgICAtLS0gIHNpbWlsYXIgdG8gamF2YS5tYXRoCisgICAgICAgICAgICAudGV4dCAgICAgIC0tLSAgc2ltaWxhciB0byBqYXZhLnRleHQKKyAgICAgICAgICAgIC51dGlsICAgICAgLS0tICBzaW1pbGFyIHRvIGphdmEudXRpbAorPC9wcmU+PC90dD48L3A+CisKKzxwPkJ5IGFuZCBsYXJnZSBjbGFzcyBuYW1lcyBkaWRuJ3QgY2hhbmdlLCBvbmx5IHBhY2thZ2luZywgc28gY2hhbmdpbmcgCit0aGUgcGFja2FnZXMgaW4geW91ciBzb3VyY2Ugc2hvdWxkIGJlIHN1ZmZpY2llbnQgdG8gcmVzb2x2ZSBtb3N0IHByb2JsZW1zLgorVGhlIHBhY2thZ2UgY2hhbmdlIDxiPndpbGwgYnJlYWsgc2VyaWFsaXphdGlvbjwvYj4gZm9yIHRob3NlIGNsYXNzZXMgdGhhdCBhcmUKK3NlcmlhbGl6YWJsZS48L3A+CisKKzxwPlRoZSBjbGFzc2VzIGluIGNvbS5pYm0uaWN1LmltcGwgYXJlIDxiPmludGVybmFsIHVzZSBvbmx5PC9iPi4KK1RoZWlyIGphdmFkb2NzIGFyZSBub3QgZ2VuZXJhdGVkLCB0aGVpciBBUElzIGFyZSBub3Qgc3VwcG9ydGVkLCBhbmQKK3RoZXkgY2FuIGNoYW5nZSBBUElzIG9yIGRpc2FwcGVhciBlbnRpcmVseSA8Yj5hdCBhbnkKK3RpbWU8L2I+LiAgTWFueSBjbGFzc2VzIGluIHRoaXMgcGFja2FnZSBhcmUgcHVibGljIGluIG9yZGVyIHRvCitmYWNpbGl0YXRlIHVzZSBieSBjbGFzc2VzIGluIG11bHRpcGxlIG90aGVyIHBhY2thZ2VzLCBidXQgdGhpcyBzaG91bGQgbm90CitiZSBjb25zdHJ1ZWQgdG8gbWVhbiB0aGF0IHN1Y2ggY2xhc3NlcyB3aWxsIG5lY2Vzc2FyaWx5IGJlICdwcm9tb3RlZCcKK3RvIGZ1bGwgcHVibGljIGNsYXNzZXMgaW4gdGhlIGZ1dHVyZS4gQ2xpZW50cyBhcmUgd2FybmVkIG5vdCB0byBkZXBlbmQKK29uIGFueXRoaW5nIGluIHRoaXMgcGFja2FnZS48L3A+CisKKzxociBzaXplPSIyIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+CisgICAgPGgzPjxhIG5hbWU9IlJlc291cmNlRGF0YSI+SUNVIFJlc291cmNlIERhdGEgYWRkZWQgdG8gSUNVNEo8L2E+PC9oMz4KKzxwPlN0YXJ0aW5nIHdpdGggSkRLIDEuNCwgdGhlIHJlc291cmNlIGluZm9ybWF0aW9uIHRoYXQgdXNlZCB0byBiZQorYXZhaWxhYmxlIHRocm91Z2ggcHVibGljIGNsYXNzZXMgaW4gamF2YS50ZXh0LnJlc291cmNlcyBpcyBubyBsb25nZXIKK2F2YWlsYWJsZS4gIFN1biBoYXMgbW92ZWQgdGhlc2UgY2xhc3NlcyB0byBhbiBpbnRlcm5hbCBwYWNrYWdlLiAgVGhpcworaGFzIHR3byBjb25zZXF1ZW5jZXMuICBPbmUsIGJvdGggdGhlIGZvcm1hdCBhbmQgY29udGVudHMgb2YgdGhlCityZXNvdXJjZXMgY2FuIG5vdyBjaGFuZ2UgYXQgYW55IHRpbWUtLSBkb3QgcmVsZWFzZXMgYW5kIHNwZWNpYWwgYnVnZml4CityZWxlYXNlcyBjYW4gYmUgZGlmZmVyZW50LiAgVHdvLCB0aGUgcmVzb3VyY2VzIGFyZSBub3cgbm8gbG9uZ2VyCithY2Nlc3NpYmxlIHdpdGhvdXQgZXhwbGljaXQgcGVybWlzc2lvbiBieSB0aGUgamF2YSB1c2VyLgorPC9wPgorPHA+CitGb3IgdGhlc2UgcmVhc29ucywgc3RhcnRpbmcgd2l0aCByZWxlYXNlIDIuMSwgSUNVNEogaW5jbHVkZXMgaXRzIG93biAKK3Jlc291cmNlIGluZm9ybWF0aW9uCit3aGljaCBpcyBjb21wbGV0ZWx5IGluZGVwZW5kZW50IG9mIHRoZSBKREsgcmVzb3VyY2UgaW5mb3JtYXRpb24uICBUaGUKK25ldyBJQ1U0SiBpbmZvcm1hdGlvbiBpcyBlcXVpdmFsZW50IHRvIHRoZSBpbmZvcm1hdGlvbiBpbiBJQ1U0QyBhbmQKK3VsdGltYXRlbHkgZGVyaXZlcyBmcm9tIHRoZSBzYW1lIHNvdXJjZS4gIFRoaXMgYWxsb3dzIElDVTRKIDIuMSBhbmQgYWJvdmUgCit0byBiZQorYnVpbHQgb24sIGFuZCBydW4gb24sIEpESyAxLjQuCis8L3A+Cis8cD4KK1RoZXJlIGFyZSB0d28gbWFpbiBjb25zZXF1ZW5jZXMgb2YgdGhpcyBkZWNpc2lvbi4gIFRoZSBmaXJzdCBpcyBhbgoraW5jcmVhc2UgaW4gc2l6ZSBvZiBJQ1U0Si4gIFRoZSBuZXcgcmVzb3VyY2UgaW5mb3JtYXRpb24sIGN1cnJlbnRseQorc3RvcmVkIGFzIGNsYXNzIGZpbGVzIHJlc2lkaW5nIGluIGEgamFyIGZpbGUsIGlzIGFwcHJveGltYXRlbHkgMS4xNQorbWVnYWJ5dGVzLiAgVGhlIHNlY29uZCBpcyBhbiBpbmNyZWFzZWQgZGlmZmVyZW5jZSBiZXR3ZWVuIElDVSdzCityZXNvdXJjZSBpbmZvcm1hdGlvbiBhbmQgSmF2YSdzLiAgTmVpdGhlciBpcyBhIGNsZWFyIHN1cGVyc2V0IG9mIHRoZQorb3RoZXIuICBGb3IgZXhhbXBsZSwgSmF2YSBjb3JlIGN1cnJlbnRseSBoYXMgbW9yZSB0aW1lem9uZSBpbmZvcm1hdGlvbgordGhhbiBJQ1UuICBJQ1UncyBtb2RlbCBmb3IgaGFuZGxpbmcgY3VycmVuY3kgaXMgYWxzbyBkaWZmZXJlbnQgdGhhbgorSmF2YSdzLiAgVGhpcyB3aWxsIGNoYW5nZSBvdmVyIHRpbWUgYXMgbmV3IHZlcnNpb25zIG9mIEphdmEgYW5kIElDVQorYXJlIHJlbGVhc2VkLgorPC9wPgorPHA+CitJbiBhZGRpdGlvbiB0byB0aGUgcmVzb3VyY2UgaW5mb3JtYXRpb24gdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgSmF2YQorcmVzb3VyY2UgaW5mb3JtYXRpb24sIElDVTRKIGFsc28gaW5jbHVkZXMgcmVzb3VyY2UgaW5mb3JtYXRpb24gbmVlZGVkCit0byBzdXBwb3J0IGl0cyBhZGRpdGlvbmFsIGZlYXR1cmVzLCBzdWNoIGFzIFRyYW5zbGl0ZXJhdGlvbiwgQ2FsZW5kYXIsCithbmQgRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvci4gIFRoaXMgaW5mb3JtYXRpb24gaGFzIGV4aXN0ZWQgaW4KK3NvbWUgZm9ybSBpbiBwcmlvciByZWxlYXNlcyBvbiBJQ1U0SiBhbmQgaGFzIG5vdCBncmVhdGx5IGNoYW5nZWQgaW4KK3NpemUuCis8L3A+Cis8cD5Gb3IgaW5mb3JtYXRpb24gYWJvdXQgbW9kaWZ5aW5nIHJlc291cmNlIGluZm9ybWF0aW9uLCBwbGVhc2Ugc2VlCit0aGUgPGEgaHJlZj1yZWFkbWUuaHRtbD5yZWFkbWU8L2E+LjwvcD4KKzxociBzaXplPSIyIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+CisgICAgPGgzPjxCPkxpY2Vuc2U8L0I+PC9oMz4KKyAgICA8UD4KKyAgICBQbGVhc2UgcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgPGEgaHJlZj0iLi9saWNlbnNlLmh0bWwiPmxpY2Vuc2U8L2E+IAorICAgIGluY2x1ZGVkIHdpdGggdGhpcyByZWxlYXNlIGJlZm9yZSBpbnN0YWxsaW5nIGFuZCB1c2luZyB0aGUgSUNVNEogbGlicmFyaWVzLiAKKyAgICA8L1A+CisKKzxociBzaXplPSIyIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+Cis8cD48aT48Zm9udCBzaXplPSItMSI+Q29weXJpZ2h0IChDKSAyMDAyIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuPC9mb250PjwvaT48L3A+Cis8IS0tI2luY2x1ZGUgdmlydHVhbD0iL2ljdS9zc2kvZm9vdGVyLmh0bWwiIC0tPiAKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9UZXN0RGF0YUVsZW1lbnRzX3Rlc3RhbGlhc2VzLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvVGVzdERhdGFFbGVtZW50c190ZXN0YWxpYXNlcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0Mjg2MDIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvVGVzdERhdGFFbGVtZW50c190ZXN0YWxpYXNlcy5qYXZhCkBAIC0wLDAgKzEsNzEgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvVGVzdERhdGFFbGVtZW50c190ZXN0YWxpYXNlcy5qYXZhLHYgJAorKiAkRGF0ZTogMjAwMi8wOC8xMyAyMTozOTowMSAkCisqICRSZXZpc2lvbjogMS40ICQKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kYXRhOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIFRlc3REYXRhRWxlbWVudHNfdGVzdGFsaWFzZXMgZXh0ZW5kcyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUgeworCisgICAgcHVibGljIFRlc3REYXRhRWxlbWVudHNfdGVzdGFsaWFzZXMgICgpIHsKKyAgICAgICAgICBzdXBlci5jb250ZW50cyA9IGRhdGE7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIE9iamVjdFtdW10gZGF0YSA9IG5ldyBPYmplY3RbXVtdIHsgCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAiQ29sbGF0aW9uRWxlbWVudHMiLAorICAgICAgICAgICAgICAgICAgICBuZXcgSUNVTGlzdFJlc291cmNlQnVuZGxlLkFsaWFzKCIvSUNVREFUQS91ayIpLAorICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJhbm90aGVyYWxpYXMiLAorICAgICAgICAgICAgICAgICAgICBuZXcgSUNVTGlzdFJlc291cmNlQnVuZGxlLkFsaWFzKCIvSUNVREFUQS91ay9Db2xsYXRpb25FbGVtZW50cyIpLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibm9uZXhpc3RpbmciLAorICAgICAgICAgICAgICAgICAgICBuZXcgSUNVTGlzdFJlc291cmNlQnVuZGxlLkFsaWFzKCIvSUNVREFUQS91ayIpLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAicmVmZXJlbmNpbmdhbGlhcyIsCisgICAgICAgICAgICAgICAgICAgIG5ldyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUuQWxpYXMoInRlc3RhbGlhc2VzL2Fub3RoZXJhbGlhcy9TZXF1ZW5jZSIpLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAic2ltcGxlYWxpYXMiLAorICAgICAgICAgICAgICAgICAgICBuZXcgSUNVTGlzdFJlc291cmNlQnVuZGxlLkFsaWFzKCJ0ZXN0dHlwZXMvbWVudS9maWxlL29wZW4iKSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgInpvbmVTdHJpbmdzIiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgbmV3IElDVUxpc3RSZXNvdXJjZUJ1bmRsZS5BbGlhcygiL0lDVURBVEEvZW4iKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUuQWxpYXMoIi9JQ1VEQVRBL2VuIiksCisKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgInpvbmVUZXN0cyIsCisgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ6b25lQWxpYXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUuQWxpYXMoIi9JQ1VEQVRBL2VuL3pvbmVTdHJpbmdzIiksCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ6b25lQWxpYXMxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSUNVTGlzdFJlc291cmNlQnVuZGxlLkFsaWFzKCIvSUNVREFUQS9lbi96b25lU3RyaW5ncy8zIiksCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ6b25lQWxpYXMyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSUNVTGlzdFJlc291cmNlQnVuZGxlLkFsaWFzKCIvSUNVREFUQS9lbi96b25lU3RyaW5ncy8zLzAiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgfSwKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL1Rlc3REYXRhRWxlbWVudHNfdGVzdGNpcmN1bGFyYWxpYXMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9UZXN0RGF0YUVsZW1lbnRzX3Rlc3RjaXJjdWxhcmFsaWFzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjZmZDk0MgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9UZXN0RGF0YUVsZW1lbnRzX3Rlc3RjaXJjdWxhcmFsaWFzLmphdmEKQEAgLTAsMCArMSw0NCBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9UZXN0RGF0YUVsZW1lbnRzX3Rlc3RjaXJjdWxhcmFsaWFzLmphdmEsdiAkCisgKiAkRGF0ZTogMjAwMi8wOC8xMyAyMTo0MzozOCAkCisgKiAkUmV2aXNpb246IDEuMiAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGF0YTsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMaXN0UmVzb3VyY2VCdW5kbGU7CisvKioKKyAqIEBhdXRob3IgUmFtCisgKgorICogVG8gY2hhbmdlIHRoaXMgZ2VuZXJhdGVkIGNvbW1lbnQgZWRpdCB0aGUgdGVtcGxhdGUgdmFyaWFibGUgInR5cGVjb21tZW50IjoKKyAqIFdpbmRvdz5QcmVmZXJlbmNlcz5KYXZhPlRlbXBsYXRlcy4KKyAqIFRvIGVuYWJsZSBhbmQgZGlzYWJsZSB0aGUgY3JlYXRpb24gb2YgdHlwZSBjb21tZW50cyBnbyB0bworICogV2luZG93PlByZWZlcmVuY2VzPkphdmE+Q29kZSBHZW5lcmF0aW9uLgorICovCitwdWJsaWMgY2xhc3MgVGVzdERhdGFFbGVtZW50c190ZXN0Y2lyY3VsYXJhbGlhcyAgZXh0ZW5kcyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIHB1YmxpYyBUZXN0RGF0YUVsZW1lbnRzX3Rlc3RjaXJjdWxhcmFsaWFzKCkgeworICAgICAgICAgIHN1cGVyLmNvbnRlbnRzID0gZGF0YTsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgT2JqZWN0W11bXSBkYXRhID0gbmV3IE9iamVjdFtdW10geyAKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJhYWEiLAorICAgICAgICAgICAgICAgICAgICBuZXcgSUNVTGlzdFJlc291cmNlQnVuZGxlLkFsaWFzKCJ0ZXN0Y2lyY3VsYXJhbGlhcy9hYWIiKSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgImFhYiIsCisgICAgICAgICAgICAgICAgICAgIG5ldyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUuQWxpYXMoInRlc3RjaXJjdWxhcmFsaWFzL2FhYyIpLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAiYWFjIiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IElDVUxpc3RSZXNvdXJjZUJ1bmRsZS5BbGlhcygidGVzdGNpcmN1bGFyYWxpYXMvYWFhIiksCisgICAgICAgICAgICAgICAgfSAKKyAgICB9OworfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvVGVzdERhdGFFbGVtZW50c190ZXN0dHlwZXMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9UZXN0RGF0YUVsZW1lbnRzX3Rlc3R0eXBlcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmMzhlOGQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvVGVzdERhdGFFbGVtZW50c190ZXN0dHlwZXMuamF2YQpAQCAtMCwwICsxLDE0NSBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9UZXN0RGF0YUVsZW1lbnRzX3Rlc3R0eXBlcy5qYXZhLHYgJAorICogJERhdGU6IDIwMDIvMDgvMTMgMjE6NDc6MzAgJAorICogJFJldmlzaW9uOiAxLjIgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRhdGE7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgVGVzdERhdGFFbGVtZW50c190ZXN0dHlwZXMgZXh0ZW5kcyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUgeworCisgICAgcHVibGljIFRlc3REYXRhRWxlbWVudHNfdGVzdHR5cGVzICAoKSB7CisgICAgICAgICAgc3VwZXIuY29udGVudHMgPSBkYXRhOworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBPYmplY3RbXVtdIGRhdGEgPSBuZXcgT2JqZWN0W11bXSB7IAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgImJpbmFyeXRlc3QiLAorICAgICAgICAgICAgICAgICAgICBuZXcgSUNVTGlzdFJlc291cmNlQnVuZGxlLkNvbXByZXNzZWRCaW5hcnkoCisgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMDAwXHUwMDBGXHUwMDAxXHUwMjAzXHUwNDA1XHUwNjA3XHUwODA5XHUwQTBCIiArCisgICAgICAgICAgICAgICAgICAgICAgICAiXHUwQzBEXHUwRTAwIiksCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJlbXB0eWFycmF5IiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJlbXB0eWJpbiIsCisgICAgICAgICAgICAgICAgICAgIG5ldyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUuQ29tcHJlc3NlZEJpbmFyeShudWxsKSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgImVtcHR5ZXhwbGljaXRzdHJpbmciLAorICAgICAgICAgICAgICAgICAgICAiIiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgImVtcHR5aW50IiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IEludGVnZXIoMCksCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJlbXB0eWludHYiLAorICAgICAgICAgICAgICAgICAgICBuZXcgSW50ZWdlcltdIHsKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgImVtcHR5c3RyaW5nIiwKKyAgICAgICAgICAgICAgICAgICAgIiIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJlbXB0eXRhYmxlIiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJpbXBvcnR0ZXN0IiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IElDVUxpc3RSZXNvdXJjZUJ1bmRsZS5Db21wcmVzc2VkQmluYXJ5KAorICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAwMFx1MDAwRlx1MDAwMVx1MDIwM1x1MDQwNVx1MDYwN1x1MDgwOVx1MEEwQiIgKworICAgICAgICAgICAgICAgICAgICAgICAgIlx1MEMwRFx1MEUwMCIpLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAiaW50ZWdlcmFycmF5IiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IEludGVnZXJbXSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSW50ZWdlcigxKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJbnRlZ2VyKDIpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEludGVnZXIoMyksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSW50ZWdlcigtMyksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSW50ZWdlcig0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJbnRlZ2VyKDUpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEludGVnZXIoNiksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSW50ZWdlcig3KSwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIm1lbnUiLAorICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmlsZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleGl0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFeGl0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9wZW4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk9wZW4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2F2ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU2F2ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJtaW51c29uZSIsCisgICAgICAgICAgICAgICAgICAgIG5ldyBJbnRlZ2VyKC0xKSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIm9uZSIsCisgICAgICAgICAgICAgICAgICAgIG5ldyBJbnRlZ2VyKDEpLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAib25laHVuZHJlZHR3ZW50eXRocmVlIiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IEludGVnZXIoMTIzKSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgInBsdXNvbmUiLAorICAgICAgICAgICAgICAgICAgICBuZXcgSW50ZWdlcigxKSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgInN0cmluZyIsCisgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAic3RyaW5nVGFibGUiLAorICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgInRlc3RfdW5kZXJzY29yZXMiLAorICAgICAgICAgICAgICAgICAgICAidGVzdCBtZXNzYWdlIC4uLi4iLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAidGVzdGVzY2FwZSIsCisgICAgICAgICAgICAgICAgICAgICJ0YWI6XHUwMDA5IGNyOlxmIGZmOlx1MDAwQyBuZXdsaW5lOlxuIGJhY2tzbGFzaDpcXCIgKworICAgICAgICAgICAgICAgICAgICAiIHF1b3RlPVxcXCcgZG91YmxlUXVvdGU9XFxcIiBzaW5nbGVxdW91dGVzPScnIiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgInplcm90ZXN0IiwKKyAgICAgICAgICAgICAgICAgICAgImFiY1x1MDAwMGRlZiIsCisgICAgICAgICAgICAgICAgfSwKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL1RoYWlXb3JkRnJlcS54bHMgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvVGhhaVdvcmRGcmVxLnhscwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MjYyMDM4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL1RoYWlXb3JkRnJlcS54bHMKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL2hvbGlkYXlzX2pwLnVjcyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9ob2xpZGF5c19qcC51Y3MKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmU2YmM0OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9ob2xpZGF5c19qcC51Y3MKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3JiYmkvZW5nbGlzaC5kaWN0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3JiYmkvZW5nbGlzaC5kaWN0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjEwZjQzMGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvcmJiaS9lbmdsaXNoLmRpY3QKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3JiYmkvd29yZHMudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3JiYmkvd29yZHMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE3ZTA2YWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvcmJiaS93b3Jkcy50eHQKQEAgLTAsMCArMSwyOTkwIEBACistLQorLS1zdWNoCithCithJ2JlbC1taXpyYWltCithJ2lhaAorYWJhdGUKK2FiYXRlZAorYWJkaWNhdGVkCithYmVsCithYmknZGEKK2FiaWRlCithYmltJ2EtZWwKK2FiaW0nZWxlY2gKK2FiaW0nZWxlY2gncworYWJsZQorYWJvbGlzaAorYWJvbGlzaGluZworYWJvbWluYXRpb24KK2Fib3V0CithYm92ZQorYWJyYWhhbQorYWJyYWhhbSdzCithYnJhbQorYWJyYW0ncworYWJyb2FkCithYnNlbnQKK2Fic29sdXRlCithYnNvbHZlZAorYWJ1bmRhbmNlCithYnVuZGFudGx5CithYnVzZXMKK2FjY2FkCithY2NlcHQKK2FjY2VwdGVkCithY2NvbW1vZGF0aW9uCithY2NvcmRpbmcKK2FjY29yZGluZ2x5CithY2NvdW50CithY2N1c3RvbWVkCithY2hib3IKK2Fja25vd2xlZGdlZAorYWNxdWllc2NlCithY3F1aXJlZAorYWNyb3NzCithY3QKK2FjdHMKK2FkYWgKK2FkYW0KK2FkYmVlbAorYWRkCithZGRlZAorYWRtYWgKK2FkbWluaXN0cmF0aW9uCithZHVsbGFtaXRlCithZHZhbmNlZAorYWR2aXNlcgorYWZhcgorYWZmZWN0ZWQKK2FmZmxpY3RlZAorYWZmbGljdGlvbgorYWZyYWlkCithZnRlcgorYWZ0ZXJ3YXJkCithZnRlcndhcmRzCithZ2FpbgorYWdhaW5zdAorYWdlCithZ2VzCithZ2lsZQorYWdyZWUKK2FncmVlZAorYWh1eid6YXRoCithaQorYWlkCithaXIKK2FrYW4KK2FsJ2xvbi1iYWN1dGgKK2FsaWdodGVkCithbGl2ZQorYWxsCithbGxlZ2lhbmNlCithbGxpYW5jZXMKK2FsbGllcworYWxsb3cKK2FsbG93YW5jZQorYWxtaWdodHkKK2FsbW8nZGFkCithbG1vbmQKK2FsbW9uZHMKK2Fsb25lCithbG9uZworYWxvdWQKK2FscmVhZHkKK2Fsc28KK2FsdGFyCithbHRlcgorYWx0ZXJpbmcKK2FsdGhvdWdoCithbHRvZ2V0aGVyCithbHZhaAorYWx2YW4KK2FtCithbSdhbGVrCithbSdyYXBoZWwKK2FtYWwnZWtpdGVzCithbWF6ZW1lbnQKK2FtZXJpY2EKK2FtbW9uaXRlcworYW1vbmcKK2Ftb25nc3QKK2Ftb3JpdGUKK2Ftb3JpdGVzCithbW91bnQKK2FuCithbidhbWltCithbmFoCithbmQKK2FuZXIKK2FuZ2VsCithbmdlbHMKK2FuZ2VyCithbmdyeQorYW5pbWFsCithbmltYWxzCithbm5paGlsYXRpb24KK2Fub2ludGVkCithbm90aGVyCithbm90aGVyJ3MKK2Fuc3dlcgorYW5zd2VyZWQKK2FueQorYW55dGhpbmcKK2FueXdoZXJlCithcGFydAorYXBwZWFsZWQKK2FwcGVhbGluZworYXBwZWFyCithcHBlYXJlZAorYXBwZWFzZQorYXBwb2ludAorYXBwb2ludGVkCithcHByb2FjaGVkCithcHByb2FjaGluZworYXBwcm9wcmlhdGlvbnMKK2Fwcm9ucworYXInYXJhdAorYXInaW9jaAorYXIndmFkaXRlcworYXJhbQorYXJhbWVhbgorYXJhbgorYXJiaXRyYXJ5CithcmNoZXJzCithcmQKK2FyZQorYXJlJ2xpCithcmVhCithcmlzZQorYXJrCithcmtpdGVzCithcm1lZAorYXJtaWVzCithcm1zCithcm15Cithcm8nZGkKK2Fyb3NlCithcm91bmQKK2FycGFjaCdzaGFkCithcnJheWVkCithcnJpdmUKK2FydAorYXMKK2FzJ2VuYXRoCithc2NlbmRpbmcKK2FzaCdrZW5hegorYXNoJ3Rlcm90aC1rYXJuYSdpbQorYXNoYW1lZAorYXNoYmVsCithc2hlcgorYXNoZXIncworYXNoZXMKK2FzaWRlCithc2sKK2Fza2VkCithc2tzCithc2xlZXAKK2FzcworYXNzJ3MKK2Fzc2VtYmxlCithc3NlbWJsZWQKK2Fzc2VudAorYXNzZXMKK2Fzc2h1J3JpbQorYXNzaHVyCithc3N1bWUKK2Fzc3VyZWQKK2Fzc3lyaWEKK2F0CithdGFkCithdGUKK2F0dGFjaworYXR0YWNrZWQKK2F0dGFpbmVkCithdHRlbXB0cworYXR0ZW5kCithdHRlbmRlZAorYXR0ZW50aW9uCithdXRob3JpdHkKK2F2ZW5nZWQKK2F2aXRoCithd2F5Cithd2Vzb21lCithd29rZQorYmEnYWwtaGEnbmFuCitiYSdiZWwKK2JhY2sKK2JhY2t3YXJkCitiYWQKK2JhZGUKK2JhZ3MKK2Jha2VkCitiYWtlcgorYmFsbQorYmFuaworYmFua3MKK2JhcmJhcm91cworYmFycmVuCitiYXMnZW1hdGgKK2Jhc2tldAorYmFza2V0cworYmF0dGxlCitiZGVsbGl1bQorYmUKK2JlJ29yCitiZS1lJ3JpCitiZWFyCitiZWFyaW5nCitiZWFycworYmVhc3QKK2JlYXN0cworYmVhdXRpZnVsCitiZWNhbWUKK2JlY2F1c2UKK2JlY2hlcgorYmVjb21lCitiZWNvbWVzCitiZWQKK2JlZGFkCitiZWVuCitiZWVyLWxhJ2hhaS1yb2kKK2JlZXItc2hlYmEKK2JlZmFsbAorYmVmYWxsZW4KK2JlZmFsbHMKK2JlZm9yZQorYmVnCitiZWdhbgorYmVnaW5uaW5nCitiZWd1aWxlZAorYmVndW4KK2JlaGVsZAorYmVoaW5kCitiZWhvbGQKK2JlaW5nCitiZWxhCitiZWxpZXZlCitiZWxpZXZlZAorYmVsbHkKK2JlbG9uZworYmVsb25naW5nCitiZWxvbmdzCitiZWxvdworYmVuLWFtbWkKK2Jlbi1vJ25pCitiZW5lYXRoCitiZW5lZml0cworYmVuamFtaW4KK2JlbmphbWluJ3MKK2JlcmEKK2JlcmVhdmVkCitiZXJlZAorYmVyZWZ0CitiZXJpJ2FoCitiZXNpZGUKK2Jlc2lkZXMKK2Jlc291Z2h0CitiZXN0CitiZXRoZWwKK2JldGhsZWhlbQorYmV0aHUnZWwKK2JldHRlcgorYmV0d2VlbgorYmV5b25kCitiaWxoYWgKK2JpbGhhbgorYmluZGluZworYmlyZAorYmlyZHMKK2JpcnNoYQorYmlydGgKK2JpcnRoZGF5CitiaXJ0aHJpZ2h0CitiaXRlcworYml0dGVyCitiaXR1bWVuCitibGFjaworYmxhbWUKK2JsYW1lbGVzcworYmxlc3MKK2JsZXNzZWQKK2JsZXNzZXMKK2JsZXNzaW5nCitibGVzc2luZ3MKK2JsaWdodGVkCitibGluZG5lc3MKK2Jsb29kCitibG9zc29tcworYmxvdAorYmxvdHRlZAorYmxvdworYm9kaWVzCitib2R5Citib2lsaW5nCitib25kcworYm9uZQorYm9uZXMKK2Jvb2sKK2Jvb3RocworYm9yZGVyCitib3JlCitib3JuCitib3JuZQorYm90aAorYm91Z2gKK2JvdWdodAorYm91bmQKK2JvdW5kYXJpZXMKK2JvdW50aWVzCitib3cKK2Jvd2VkCitib3dpbmcKK2Jvd3Nob3QKK2JveXMKK2JvenJhaAorYnJhY2VsZXRzCiticmFuY2hlcworYnJlYWNoCiticmVhZAorYnJlYWR0aAorYnJlYWsKK2JyZWFraW5nCiticmVhc3RzCiticmVhdGgKK2JyZWF0aGVkCiticmVkCiticmVlZAorYnJlZWRpbmcKK2JyZXRocmVuCiticmljaworYnJpY2tzCiticmltc3RvbmUKK2JyaW5nCiticml0YWluCiticml0aXNoCiticm9rZW4KK2Jyb256ZQorYnJvdGhlcgorYnJvdGhlcidzCiticm90aGVyLWluLWxhdworYnJvdGhlcnMKK2Jyb3VnaHQKK2Jyb3cKK2JydWlzZQorYnVkZGVkCitidWlsZAorYnVpbGRpbmcKK2J1aWx0CitidWxscworYnVuZGxlCitidW5kbGVzCitidXJpZWQKK2J1cm4KK2J1cm5lZAorYnVybnQKK2J1cnN0CitidXJ5CitidXJ5aW5nCitidXNoZXMKK2J1dAorYnV0bGVyCitidXRsZXJzaGlwCitidXkKK2J1egorYnkKK2NhaW4KK2Nha2UKK2Nha2VzCitjYWxhaAorY2FsZgorY2FsbAorY2FsbGVkCitjYWxscworY2FtZQorY2FtZWwKK2NhbWVsJ3MKK2NhbWVscworY2FtcAorY2FtcGVkCitjYW4KK2NhbmFhbgorY2FuYWFuJworY2FuYWFuaXRlCitjYW5hYW5pdGVzCitjYW5hYW5pdGlzaAorY2FuZGlkCitjYW5ub3QKK2NhcGgndG9yaW0KK2NhcHRhaW4KK2NhcHRpdmUKK2NhcHRpdmVzCitjYXB0dXJlZAorY2FyYXZhbgorY2FyY2Fzc2VzCitjYXJlCitjYXJlZnVsbHkKK2Nhcm1pCitjYXJyaWVkCitjYXJyeQorY2FzZXMKK2Nhc2x1J2hpbQorY2FzdAorY2F0dGxlCitjYXVnaHQKK2NhdXNlCitjYXVzZWQKK2NhdXNlcworY2F2ZQorY2Vhc2UKK2NlYXNlZAorY2VydGFpbgorY2hhaW4KK2NoYWxkZSdhbnMKK2NoYW1iZXIKK2NoYW5nZQorY2hhbmdlZAorY2hhcmFjdGVyCitjaGFyZ2UKK2NoYXJnZWQKK2NoYXJnaW5nCitjaGFyaW90CitjaGFyaW90cworY2hhcnRlcnMKK2NoZWF0CitjaGVhdGVkCitjaGVkLW9yLWxhbydtZXIKK2NoZXJhbgorY2hlcnViaW0KK2NoZXNlZAorY2hlemliCitjaGllZgorY2hpZWZzCitjaGlsZAorY2hpbGRiZWFyaW5nCitjaGlsZGxlc3MKK2NoaWxkcmVuCitjaGlsZHJlbidzCitjaG9pY2UKK2Nob2ljZXN0CitjaG9zZQorY2hvc2VuCitjaXJjdW1jaXNlZAorY2lyY3Vtc3RhbmNlcworY2l0aWVzCitjaXRpemVucworY2l0eQorY2l2aWwKK2NpdmlsaXplZAorY2xhbnMKK2NsZWFuCitjbGVhcgorY2xlYXZlcworY2xvc2UKK2Nsb3NlZAorY2xvdGhlZAorY2xvdGhlcworY2xvdGhpbmcKK2Nsb3VkCitjbG91ZHMKK2NsdXN0ZXJzCitjb2FzdGxhbmQKK2NvYXN0cworY29mZmluCitjb2xkCitjb2xvbmllcworY29sb25pZXM6Citjb2x0Citjb2x0cworY29tYmluZWQKK2NvbWUKK2NvbWVseQorY29tZXMKK2NvbWZvcnQKK2NvbWZvcnRlZAorY29tZm9ydHMKK2NvbWluZworY29tbWFuZAorY29tbWFuZGVkCitjb21tYW5kZXIKK2NvbW1hbmRtZW50cworY29tbWVyY2UKK2NvbW1pdAorY29tbWl0dGVkCitjb21tb24KK2NvbXBhbmllcworY29tcGFueQorY29tcGxhaW5lZAorY29tcGxldGUKK2NvbXBsZXRlZAorY29tcGxpYW5jZQorY29uY2VhbAorY29uY2VpdmVkCitjb25jZXJuCitjb25jZXJuaW5nCitjb25jbHVkZQorY29uY3ViaW5lCitjb25jdWJpbmVzCitjb25kaXRpb24KK2NvbmRpdGlvbnMKK2NvbmZpbmVkCitjb25mdXNlCitjb25mdXNlZAorY29uZ3Jlc3MKK2Nvbmp1cmVkCitjb25uZWN0ZWQKK2Nvbm5lY3Rpb24KK2Nvbm5lY3Rpb25zCitjb25zZW50Citjb25zZW50OgorY29uc3BpcmVkCitjb25zdGl0dXRpb24KK2NvbnN0cmFpbmVkCitjb25zdHJhaW5zCitjb25zdW1lCitjb25zdW1lZAorY29udGVtcHQKK2NvbnRlbmRlZAorY29udGludWFsbHkKK2NvbnRpbnVlCitjb250aW51ZWQKK2NvbnRyYWN0Citjb250cm9sCitjb250cm9sbGluZworY29udnVsc2lvbnMKK2Nvb2wKK2NvcmQKK2NvcnJlc3BvbmRlbmNlCitjb3JydXB0Citjb3JydXB0ZWQKK2Nvc3RseQorY291Y2gKK2NvdWNoZWQKK2NvdWNoZXMKK2NvdWNoaW5nCitjb3VsZAorY291bmNpbAorY291bnQKK2NvdW50ZWQKK2NvdW50ZW5hbmNlCitjb3VudHJ5Citjb3Vyc2UKK2NvdmVuYW50Citjb3ZlcgorY292ZXJlZAorY292ZXJpbmcKK2Nvd3MKK2NyZWF0ZWQKK2NyZWF0aW9uCitjcmVhdG9yCitjcmVhdHVyZQorY3JlYXR1cmVzCitjcmVlcGluZworY3JlZXBzCitjcmllZAorY3Jvc3NlZAorY3Jvc3NpbmcKK2Nyb3VjaGluZworY3Jvd24KK2NydWVsCitjcnVlbHR5CitjcnkKK2NyeWluZworY3ViaXQKK2N1Yml0cworY3VwCitjdXJkcworY3VycmVudAorY3Vyc2UKK2N1cnNlZAorY3Vyc2VzCitjdXNoCitjdXN0b2R5CitjdXQKK2N1dHRpbmcKK2RhaW50aWVzCitkYW1hc2N1cworZGFuCitkYW5nZXJzCitkYXJlcworZGFyaworZGFya25lc3MKK2RhdWdodGVyCitkYXVnaHRlci1pbi1sYXcKK2RhdWdodGVycworZGF3bmVkCitkYXkKK2RheXMKK2RlYWQKK2RlYWwKK2RlYWx0CitkZWF0aAorZGViJ29yYWgKK2RlY2VpdGZ1bGx5CitkZWNlaXZlZAorZGVjZW50CitkZWNpZGUKK2RlY2tzCitkZWNsYXJhdGlvbgorZGVjbGFyZQorZGVjbGFyaW5nCitkZWRhbgorZGVlZAorZGVlcAorZGVmZWF0CitkZWZlYXRlZAorZGVmaWxlZAorZGVmaW5lCitkZWxheQorZGVsYXllZAorZGVsaWdodAorZGVsaXZlcgorZGVsaXZlcmVkCitkZWxpdmVyeQorZGVuaWVkCitkZW5vdW5jZXMKK2RlcGFydAorZGVwYXJ0ZWQKK2RlcGFydGluZworZGVwZW5kZW50CitkZXBlbmRlbnRzCitkZXBvc2l0b3J5CitkZXByaXZpbmcKK2Rlcml2aW5nCitkZXNjZW5kYW50cworZGVzY2VuZGluZworZGVzaWduCitkZXNpcmUKK2Rlc2lyZWQKK2Rlc29sYXRlCitkZXNvbGF0aW9uCitkZXNwaXNlZAorZGVzcG90aXNtCitkZXN0cm95CitkZXN0cm95ZWQKK2Rlc3Ryb3lzCitkZXN0cnVjdGlvbgorZGVzdHJ1Y3RpdmUKK2RldGVybWluZWQKK2Rldm91cmVkCitkZXZvdXJpbmcKK2RldworZGljdGF0ZQorZGlkCitkaWRzdAorZGllCitkaWVkCitkaWVzCitkaWtsYWgKK2RpbQorZGluJ2hhYmFoCitkaW5haAorZGluYWgncworZGluZQorZGlwcGVkCitkaXJlY3QKK2RpcmVjdGlvbgorZGlzYXN0ZXIKK2Rpc2F2b3cKK2Rpc2NyZWV0CitkaXNncmFjZQorZGlzaGFuCitkaXNob24KK2Rpc21heWVkCitkaXNwbGVhc2VkCitkaXNwbGVhc2luZworZGlzcG9zZWQKK2Rpc3NvbHV0aW9ucworZGlzc29sdmUKK2Rpc3NvbHZlZAorZGlzdGFuY2UKK2Rpc3RhbnQKK2Rpc3RyZXNzCitkaXN0cmVzc2VkCitkaXN0cmljdHMKK2RpdmlkZQorZGl2aWRlZAorZGl2aWRpbmcKK2RpdmluYXRpb24KK2RpdmluZQorZGl2aW5lcworZG8KK2RvJ2RhbmltCitkb2VyCitkb2VzCitkb2luZworZG9tZXN0aWMKK2RvbWluaW9uCitkb25lCitkb29yCitkb3RoYW4KK2RvdWJsZQorZG91YmxpbmcKK2RvdWJ0Citkb3ZlCitkb3duCitkb3duY2FzdAorZG93cnkKK2RyYW5rCitkcmF3CitkcmF3bgorZHJlYWQKK2RyZWFtCitkcmVhbWVkCitkcmVhbWVyCitkcmVhbXMKK2RyZXcKK2RyaWVkCitkcmluaworZHJpbmtpbmcKK2RyaW5rcworZHJpdmVuCitkcm92ZQorZHJvdmVzCitkcnVuaworZHJ5CitkdWcKK2R1bWFoCitkdW5nZW9uCitkdXJpbmcKK2R1c3QKK2R1dHkKK2R3ZWxsCitkd2VsbGluZworZHdlbHQKK2UnZG9taXRlcworZSdwaHJhaW0KK2UncGhyYWltJ3MKK2VhY2gKK2Vhcmx5CitlYXJzCitlYXJ0aAorZWFzaWx5CitlYXN0CitlYXN0d2FyZAorZWF0CitlYXRlbgorZWF0aW5nCitlYmFsCitlYmVyCitlZGVuCitlZGVyCitlZG9tCitlZmZlY3QKK2VneXB0CitlZ3lwdGlhbgorZWd5cHRpYW4ncworZWd5cHRpYW5zCitlaGkKK2VpZ2h0CitlaWdodGVlbgorZWlnaHR5CitlaWdodHktc2V2ZW4KK2VpZ2h0eS1zaXgKK2VpZ2h0eS10d28KK2VpdGhlcgorZWwnaXBoYXoKK2VsLWJldGhlbAorZWwtZWwnb2hlLWlzcmFlbAorZWwtcGFyYW4KK2VsYWgKK2VsYW0KK2VsZGEnYWgKK2VsZGVyCitlbGRlcnMKK2VsZGVzdAorZWxlY3RlZAorZWxldmVuCitlbGknc2hhaAorZWxpZSd6ZXIKK2VsbGEnc2FyCitlbG9uCitlbHNlCitlbWJhbG0KK2VtYmFsbWVkCitlbWJhbG1pbmcKK2VtYnJhY2UKK2VtYnJhY2VkCitlbWlncmF0aW9uCitlbWltCitlbXB0aWVkCitlbXB0eQorZW1wdHktaGFuZGVkCitlbmFpbQorZW5jYW1wZWQKK2VuY2FtcG1lbnRzCitlbmNvdXJhZ2UKK2VuZAorZW5kZWF2b3JlZAorZW5kZWQKK2VuZGluZworZW5kb3dlZAorZW5kcworZW5lbWllcworZW5lbXkKK2VuZ2xpc2gKK2VubGFyZ2UKK2VubGFyZ2luZworZW5taXNoJ3BhdAorZW5taXR5Citlbm9jaAorZW5vc2gKK2Vub3VnaAorZW50ZXIKK2VudGVyZWQKK2VudGl0bGUKK2VudHJhbmNlCitlbnRyZWF0CitlbnZpZWQKK2VwaGFoCitlcGhlcgorZXBocmF0aAorZXBocm9uCitlcXVhbAorZXIKK2VyZWNoCitlcmVjdGVkCitlcmkKK2VycmFuZAorZXNhdQorZXNhdSdzCitlc2NhcGUKK2VzY2FwZWQKK2VzZWsKK2VzaGJhbgorZXNoY29sCitlc3RhYmxpc2gKK2VzdGFibGlzaGVkCitlc3RhYmxpc2hpbmcKK2VzdGFibGlzaG1lbnQKK2V0ZXJuYWwKK2V1cGhyYSd0ZXMKK2V1cGhyYXRlcworZXZlCitldmVuCitldmVuaW5nCitldmVudHMKK2V2ZXIKK2V2ZXJsYXN0aW5nCitldmVyeQorZXZlcnl0aGluZworZXZlcnl3aGVyZQorZXZpbAorZXZpbHMKK2V2aW5jZXMKK2V3ZQorZXdlcworZXhhbXBsZQorZXhjZWVkaW5nbHkKK2V4Y2VwdAorZXhjaGFuZ2UKK2V4Y2l0ZWQKK2V4ZWN1dGlvbmVycworZXhlcmNpc2UKK2V4cGVyaWVuY2UKK2V4cGVydAorZXhwbGFpbgorZXhwb3NlZAorZXhwb3NpbmcKK2V4dGVuZAorZXh0ZW5kZWQKK2V5ZXMKK2V6Ym9uCitlemVyCitmYWNlCitmYWNlcworZmFjdHMKK2ZhaWxlZAorZmFpbnRlZAorZmFpcgorZmFpdGhmdWxuZXNzCitmYWxsCitmYWxsZW4KK2ZhbGxzCitmYWxzZWx5CitmYW1pbGllcworZmFtaWx5CitmYW1pbmUKK2ZhbWlzaGVkCitmYXIKK2ZhcmUKK2ZhcmVkCitmYXJld2VsbAorZmFzdAorZmF0CitmYXRoZXIKK2ZhdGhlcidzCitmYXRoZXItaW4tbGF3CitmYXRoZXJzCitmYXRpZ3VpbmcKK2ZhdG5lc3MKK2ZhdWx0cworZmF2b3IKK2Zhdm9yYWJsZQorZmF3bnMKK2ZlYXIKK2ZlYXJlZAorZmVhc3QKK2ZlZAorZmVlYmxlcgorZmVlZAorZmVlbAorZmVldAorZmVsbAorZmVsbG93CitmZWx0CitmZW1hbGUKK2Zlc3RhbAorZmV0Y2gKK2ZldworZmllbGQKK2ZpZWxkcworZmllcmNlCitmaWVyY2VseQorZmlmdGVlbgorZmlmdGgKK2ZpZnRocworZmlmdHkKK2ZpZworZmlsbAorZmlsbGVkCitmaW5kCitmaW5kcworZmluZQorZmluaXNoCitmaW5pc2hlZAorZmlyZQorZmlybQorZmlybWFtZW50CitmaXJtbmVzcworZmlyc3QKK2ZpcnN0LQorZmlyc3QtYm9ybgorZmlyc3RsaW5ncworZmlzaAorZml0CitmaXZlCitmaXhlZAorZmxhbWluZworZmxlZAorZmxlZQorZmxlZWluZworZmxlc2gKK2Zsb2F0ZWQKK2Zsb2NrCitmbG9ja3MKK2Zsb29kCitmbG9vcgorZmxvd2VkCitmbG93cworZmx5Citmb2FsCitmb2xsb3cKK2ZvbGxvd2VkCitmb2xsb3dpbmcKK2ZvbGxvd3MKK2ZvbGx5Citmb25kbGluZworZm9vZAorZm9vbGlzaGx5Citmb290Citmb3IKK2ZvcmJpZGRlbgorZm9yY2UKK2ZvcmNlZAorZm9yY2VzCitmb3JkCitmb3JlaWduCitmb3JlaWduZXIKK2ZvcmVpZ25lcnMKK2ZvcmVtb3N0Citmb3Jlc2tpbgorZm9yZXNraW5zCitmb3JnZXIKK2ZvcmdldAorZm9yZ2V0cworZm9yZ2l2ZQorZm9yZ290Citmb3Jnb3R0ZW4KK2Zvcm0KK2Zvcm1lZAorZm9ybWVyCitmb3JtZXJseQorZm9ybWlkYWJsZQorZm9ybXMKK2ZvcnNha2VuCitmb3J0aAorZm9ydHVuZQorZm9ydHVuZXMKK2ZvcnR5Citmb3J0eS1maXZlCitmb3J0eS1zZXZlbgorZm91bmQKK2ZvdW5kYXRpb24KK2ZvdW50YWlucworZm91cgorZm91cnRlZW4KK2ZvdXJ0ZWVudGgKK2ZvdXJ0aAorZnJhaWwKK2ZyZWUKK2ZyZWVseQorZnJlc2gKK2ZyZXNobHkKK2ZyaWVuZAorZnJpZW5kbHkKK2ZyaWVuZHMKK2ZybworZnJvbQorZnJvbnQKK2Zyb250aWVycworZnJ1aXQKK2ZydWl0ZnVsCitmcnVpdHMKK2Z1Z2l0aXZlCitmdWxmaWwKK2Z1bGZpbGxlZAorZnVsbAorZnVuZGFtZW50YWxseQorZnVybmFjZQorZnVyeQorZnV0dXJlCitnYWQKK2dhaGFtCitnYWluZWQKK2dhbGVlZAorZ2FtZQorZ2FyZGVuCitnYXJtZW50CitnYXJtZW50cworZ2F0YW0KK2dhdGUKK2dhdGhlcgorZ2F0aGVyZWQKK2dhdW50CitnYXZlCitnYXZlc3QKK2dhemEKK2dhemVkCitnZW5lYWxvZ2llcworZ2VuZXJhbAorZ2VuZXJhdGlvbgorZ2VuZXJhdGlvbnMKK2dlcmEKK2dlcmFyCitnZXJzaG9uCitnZXQKK2dldGhlcgorZ2lmdAorZ2lmdHMKK2dpaG9uCitnaWxlYWQKK2dpcidnYXNoaXRlcworZ2l2ZQorZ2l2ZW4KK2dpdmVzdAorZ2l2aW5nCitnbworZ29hdAorZ29hdHMKK2dvZAorZ29kJ3MKK2dvZHMKK2dvZXMKK2dvaSdpbQorZ29pbmcKK2dvbGQKK2dvbWVyCitnb21vcidyYWgKK2dvbmUKK2dvb2QKK2dvb2QtbG9va2luZworZ29vZHMKK2dvcGhlcgorZ29zaGVuCitnb3QKK2dvdHRlbgorZ292ZXJuZWQKK2dvdmVybm1lbnQKK2dvdmVybm1lbnRzCitnb3Zlcm5tZW50czoKK2dvdmVybm9yCitnb3Zlcm5vcnMKK2dyYWNpb3VzCitncmFjaW91c2x5CitncmFpbgorZ3JhbmRjaGlsZHJlbgorZ3JhbmRzb24KK2dyYW50CitncmFudGVkCitncmFwZXMKK2dyYXNzCitncmF2ZQorZ3JheQorZ3JlYXQKK2dyZWF0ZXIKK2dyZWF0bHkKK2dyZWVuCitncmV3CitncmlldmVkCitncmlldm91cworZ3JvcGluZworZ3JvdW5kCitncm93Citncm93aW5nCitncm93bgorZ3Jvd3MKK2d1YXJkCitndWFyZHMKK2d1aWxlCitndWlsdAorZ3VpbHR5CitndW0KK2d1bmkKK2hhJ21hdGhpdGVzCitoYWQKK2hhZGFkCitoYWRhcgoraGFkb3InYW0KK2hhZ2FyCitoYWdnaQoraGFpcnMKK2hhaXJ5CitoYWxmCitoYWxsb3dlZAoraGFtCitoYW1vcgoraGFtb3IncworaGFtc3RyaW5nCitoYW11bAoraGFuZAoraGFuZHMKK2hhbmRzb21lCitoYW5nCitoYW5nZWQKK2hhbm9jaAoraGFwcGVuZWQKK2hhcHBpbmVzcworaGFwcHkKK2hhcmFuCitoYXJhc3MKK2hhcmFzc2VkCitoYXJkCitoYXJkc2hpcAoraGFybG90CitoYXJsb3RyeQoraGFybQoraGFyc2hseQoraGFydmVzdAoraGFydmVzdHMKK2hhcworaGFzdAoraGFzdGUKK2hhc3RlbmVkCitoYXN0aWx5CitoYXRlCitoYXRlZAoraGF0aAoraGF2J2lsYWgKK2hhdmUKK2hhdmVuCitoYXZpbGFoCitoYXZpbmcKK2hheidhem9uLXRhJ21hcgoraGF6YXJtYSd2ZXRoCitoYXpvCitoZQoraGUtYXNzZXMKK2hlLWdvYXRzCitoZWFkCitoZWFkcworaGVhbGVkCitoZWFwCitoZWFyCitoZWFyZAoraGVhcmluZworaGVhcmtlbgoraGVhcmtlbmVkCitoZWFycworaGVhcnQKK2hlYXJ0cworaGVhdAoraGVhdmVuCitoZWF2ZW5zCitoZWJlcgoraGVicmV3CitoZWJyZXdzCitoZWJyb24KK2hlZWQKK2hlZWRlZAoraGVlbAoraGVlbHMKK2hlaWZlcgoraGVpZ2h0CitoZWlyCitoZWxkCitoZWxwCitoZWxwZXIKK2hlbWFuCitoZW1kYW4KK2hlcgoraGVyYgoraGVyZAoraGVyZHMKK2hlcmRzbWVuCitoZXJlCitoZXJzZWxmCitoZXRoCitoZXdlZAoraGV6cm9uCitoaWQKK2hpZGRlbgoraGlkZQoraGlnaAoraGlsbAoraGlsbHMKK2hpbQoraGltc2VsZgoraGluZAoraGluZGVyCitoaXAKK2hpcmFoCitoaXJlCitoaXJlZAoraGlzCitoaXN0b3J5CitoaXRoZXIKK2hpdHRpdGUKK2hpdHRpdGVzCitoaXZpdGUKK2hpdml0ZXMKK2hvYmFoCitob2xkCitob2xsb3cKK2hvbWUKK2hvbmVzdAoraG9uZXN0eQoraG9uZXkKK2hvbm9yCitob25vcmVkCitob3JpCitob3JpdGUKK2hvcml0ZXMKK2hvcm5zCitob3JzZSdzCitob3JzZW1lbgoraG9yc2VzCitob3N0Citob3QKK2hvdGx5Citob3VzZQoraG91c2Vob2xkCitob3VzZWhvbGRzCitob3VzZXMKK2hvdworaHVsCitodW1hbgoraHVtYW5lCitodW1ibGUKK2h1bWJsZWQKK2h1bmRyZWQKK2h1bmRyZWRmb2xkCitodW5kcmVkdGgKK2h1bnQKK2h1bnRlZAoraHVudGVyCitodW50aW5nCitodXBwaW0KK2h1c2JhbmQKK2h1c2hhbQoraHVzaGltCitpCitpZgoraWxsCitpbGwtdHJlYXQKK2ltYWdlCitpbWFnaW5hdGlvbgoraW1tZWRpYXRlCitpbW5haAoraW1wZWwKK2ltcG9ydGFuY2UKK2ltcG9zaW5nCitpbXBvc3NpYmxlCitpbgoraW5hc211Y2gKK2luY2FwYWJsZQoraW5jbHVkaW5nCitpbmNyZWFzZWQKK2luZGVlZAoraW5kZXBlbmRlbnQKK2luZGlhbgoraW5kaWduYW50CitpbmVzdGltYWJsZQoraW5ldml0YWJseQoraW5oYWJpdGFudHMKK2luaGVyaXRhbmNlCitpbmlxdWl0eQoraW5qdXJpZXMKK2luanVyeQoraW5ub2NlbmNlCitpbm5vY2VudAoraW5xdWlyZQoraW5xdWlyZWQKK2luc2lkZQoraW5zdGVhZAoraW5zdGl0dXRlCitpbnN0aXR1dGVkCitpbnN0cnVjdGVkCitpbnN0cnVjdGluZworaW5zdHJ1bWVudAoraW5zdHJ1bWVudHMKK2luc3VsdAoraW5zdXJyZWN0aW9ucworaW50ZWdyaXR5CitpbnRlbmRlZAoraW50ZW50aW9ucworaW50ZXJwcmV0CitpbnRlcnByZXRhdGlvbgoraW50ZXJwcmV0YXRpb25zCitpbnRlcnByZXRlZAoraW50ZXJwcmV0ZXIKK2ludGVycnVwdAoraW50bworaW50cm9kdWNpbmcKK2ludmFyaWFibHkKK2ludmFzaW9uCitpbnZhc2lvbnMKK2ludmVzdGVkCitpb2IKK2lyYWQKK2lyYW0KK2lyb24KK2lzCitpcydzYWNoYXIKK2lzYWFjCitpc2FhYydzCitpc2NhaAoraXNoJ21hZWwKK2lzaCdtYWVsJ3MKK2lzaCdtYWVsaXRlcworaXNoYmFrCitpc2h2YWgKK2lzaHZpCitpc3JhZWwKK2lzcmFlbCdzCitpc3JhZWxpdGVzCitpdAoraXRocmFuCitpdHMKK2l0c2VsZgoramFiYWwKK2phYmJvaworamFjaGluCitqYWNvYgoramFjb2IncworamFoJ2xlZWwKK2phaHplZWwKK2phbGFtCitqYW1pbgoramFwaGV0aAoramFyCitqYXJlZAoramF2YW4KK2plJ2dhci1zYWhhZHUndGhhCitqZSd1c2gKK2plYWxvdXMKK2plYid1c2l0ZXMKK2plbXUnZWwKK2plcmFoCitqZXN0aW5nCitqZXRoZXRoCitqZXR1cgoramV3ZWxyeQoramV6ZXIKK2ppZGxhcGgKK2pvYmFiCitqb2luZWQKK2pvaW50Citqb2tzaGFuCitqb2t0YW4KK2pvcmRhbgoram9zZXBoCitqb3NlcGgncworam91cm5leQoram91cm5leWVkCitqdWJhbAoranVkYWgKK2p1ZGFoJ3MKK2p1ZGdlCitqdWRnZWQKK2p1ZGdlcworanVkZ21lbnQKK2p1ZGljaWFyeQoranVkaXRoCitqdXJpc2RpY3Rpb24KK2p1cnk6CitqdXN0CitqdXN0aWNlCitrYWQnbW9uaXRlcwora2FkZXNoCitrZWQnZW1haAora2VkYXIKK2tlZXAKK2tlZXBlcgora2VlcGVycwora2VtdSdlbAora2VuJ2l0ZXMKK2tlbidpenppdGVzCitrZW5hbgora2VuYXoKK2tlcHQKK2tldHUncmFoCitraWQKK2tpZHMKK2tpbGwKK2tpbGxlZAora2luZAora2luZGxlZAora2luZG5lc3MKK2tpbmRyZWQKK2tpbmRzCitraW5nCitraW5nJ3MKK2tpbmdkb20KK2tpbmdzCitraW5zbWFuCitraW5zbWVuCitraXInaWF0aC1hcidiYQora2lzcwora2lzc2VkCitraXR0aW0KK2tuZWFkCitrbmVlCitrbmVlbAora25lZXMKK2tuZXcKK2tuaWZlCitrbm93Citrbm93aW5nCitrbm93bGVkZ2UKK2tub3duCitrbm93cwora29oYXRoCitrb3JhaAorbGFiYW4KK2xhYmFuJ3MKK2xhYm9yCitsYWNrCitsYWNraW5nCitsYWQKK2xhZCdzCitsYWRkZXIKK2xhZHMKK2xhaWQKK2xhaW4KK2xhbWIKK2xhbWJzCitsYW1lY2gKK2xhbWVudGF0aW9uCitsYW1lbnRlZAorbGFuZAorbGFuZHMKK2xhbmd1YWdlCitsYW5ndWFnZXMKK2xhbmd1aXNoZWQKK2xhcmdlCitsYXNoYQorbGFzdAorbGF0ZXIKK2xhdWdoCitsYXVnaGVkCitsYXVnaHRlcgorbGF3cworbGF5CitsYXlpbmcKK2xlLXVtJ21pbQorbGVhZAorbGVhZgorbGVhaAorbGVhaCdzCitsZWFuCitsZWFwCitsZWFwZWQKK2xlYXJuCitsZWFybmVkCitsZWFzdAorbGVhdmUKK2xlYXZlcworbGVkCitsZWZ0CitsZWdpc2xhdGUKK2xlZ2lzbGF0aW9uOgorbGVnaXNsYXRpdmUKK2xlZ2lzbGF0dXJlCitsZWdpc2xhdHVyZXMKK2xlaGEnYmltCitsZW5ndGgKK2xlbnRpbHMKK2xlc3NlcgorbGVzdAorbGV0CitsZXR1J3NoaW0KK2xldmV5CitsZXZpCitsaWJlcnR5CitsaWUKK2xpZXMKK2xpZmUKK2xpZmVibG9vZAorbGlmdAorbGlmdGVkCitsaWdodAorbGlnaHRzCitsaWtlCitsaWtlbHkKK2xpa2VuZXNzCitsaWtld2lzZQorbGltcGluZworbGluZW4KK2xpbmdlcmVkCitsaW9uCitsaW9uJ3MKK2xpb25lc3MKK2xpc3RlbgorbGlzdGVuZWQKK2xpc3RlbmluZworbGl0dGxlCitsaXZlCitsaXZlZAorbGl2ZXMKK2xpdmVzdG9jaworbGl2aW5nCitsbworbG9hZAorbG9hZGVkCitsb2RnZQorbG9kZ2VkCitsb2RnaW5nCitsb2lucworbG9uZworbG9uZ2VkCitsb25nZXIKK2xvbmdzCitsb29rCitsb29rZWQKK2xvb2tpbmcKK2xvb3NlCitsb3JkCitsb3JkJ3MKK2xvcmRzCitsb3NzCitsb3QKK2xvdCdzCitsb3RhbgorbG90YW4ncworbG91ZAorbG92ZQorbG92ZWQKK2xvdmVseQorbG92ZXMKK2xvd2VyCitsb3dlcmVkCitsb3lhbGx5CitsdWQKK2x1ZGltCitsdXoKK2x5aW5nCitseXJlCittYSdhY2FoCittYSdoYWxhdGgKK21hLWhhbCdhbGVsCittYWNoLQorbWFjaC1wZSdsYWgKK21hY2hpcgorbWFkYWkKK21hZGUKK21hZydkaWVsCittYWdpY2lhbnMKK21hZ25hbmltaXR5CittYWdvZworbWFoYW5hJ2ltCittYWlkCittYWlkZW4KK21haWRzCittYWlkc2VydmFudHMKK21ha2UKK21ha2VyCittYWtpbmcKK21hbCdjaGktZWwKK21hbGUKK21hbGVzCittYW1yZQorbWFuCittYW4nYWhhdGgKK21hbidzCittYW5hcydzZWgKK21hbmFzJ3NlaCdzCittYW5kcmFrZXMKK21hbmtpbmQKK21hbmx5CittYW5uZXIKK21hbnRsZQorbWFueQorbWFyaworbWFya2VkCittYXJyaWFnZQorbWFycmlhZ2VzCittYXJyaWVkCittYXJyaWVzCittYXJyeQorbWFzaAorbWFzcmUna2FoCittYXNzYQorbWFzdGVyCittYXN0ZXIncworbWF0ZQorbWF0aW5nCittYXRyZWQKK21hdHRlcgorbWF5CittZQorbWUnemFoYWIKK21lLWh1J2phLWVsCittZS10aHUnc2hhLWVsCittZWFsCittZWFuCittZWFuaW5nCittZWFucworbWVhbnQKK21lYW50aW1lCittZWFud2hpbGUKK21lYXN1cmUKK21lYXN1cmVkCittZWFzdXJlcworbWVkYW4KK21lZGl0YXRlCittZWV0CittZWV0cworbWVoZXQnYWJlbAorbWVsLWNoaXonZWRlaworbWVtYmVycworbWVuCittZW4ncworbWVuZAorbWVuZGVkCittZW5zZXJ2YW50cworbWVudGlvbgorbWVyYXInaQorbWVyY2VuYXJpZXMKK21lcmNoYW50cworbWVyY2lmdWwKK21lcmNpbGVzcworbWVyY3kKK21lcnJ5CittZXNoYQorbWVzaGVjaAorbWVzb3BvdGEnbWlhCittZXNzYWdlCittZXNzZW5nZXJzCittZXQKK21ldGh1J3NlbGFoCittaWJzYW0KK21pYnphcgorbWlkJ2lhbgorbWlkJ2lhbml0ZQorbWlkJ2lhbml0ZXMKK21pZHN0CittaWR3aWZlCittaWdodAorbWlnaHRpZXIKK21pZ2h0aWx5CittaWdodHkKK21pZ3JhdGVkCittaWdyYXRpb24KK21pbGNhaAorbWlsY2gKK21pbGl0YXJ5CittaWxrCittaW5kCittaW5lCittaXJ0aAorbWlzY2FycmllZAorbWlzaG1hCittaXN0CittaXN0cmVzcworbWl6cGFoCittaXp6YWgKK21vYWIKK21vYWJpdGVzCittb2NrCittb2NraW5nCittb25leQorbW9uc3RlcnMKK21vbnRoCittb250aHMKK21vb24KK21vcmUKK21vcmVoCittb3Jlb3ZlcgorbW9yaSdhaAorbW9ybmluZworbW9yc2VsCittb3J0YXIKK21vc3QKK21vdGhlcgorbW90aGVyJ3MKK21vdGhlcnMKK21vdHRsZWQKK21vdW50Cittb3VudGFpbgorbW91bnRhaW5zCittb3VybgorbW91cm5lZAorbW91cm5pbmcKK21vdXRoCittb3ZlZAorbW92ZXMKK21vdmluZworbXVjaAorbXVsdGlwbGllZAorbXVsdGlwbHkKK211bHRpdHVkZQorbXVwcGltCittdXJkZXJzCittdXN0CittdXR1YWxseQorbXkKK215cnJoCitteXNlbGYKK25hJ2FtYWgKK25hJ2FtYW4KK25haGF0aAorbmFob3IKK25haG9yJ3MKK25ha2VkCituYWtlZG5lc3MKK25hbWUKK25hbWVkCituYW1lcworbmFwaCd0YWxpCituYXBoLXR1J2hpbQorbmFwaGlzaAorbmF0aW9uCituYXRpb25zCituYXRpdmUKK25hdHVyYWxpemF0aW9uCituYXR1cmUKK25hdHVyZSdzCituZWFyCituZWJhJ2lvdGgKK25lY2Vzc2FyeQorbmVjZXNzaXR5CituZWNrCituZWVkCituZWdlYgorbmVnbGVjdGVkCituZWlnaGJvcmluZworbmVpdGhlcgorbmVwaGlsaW0KK25ldmVyCituZXZlcnRoZWxlc3MKK25ldworbmV4dAorbmlnaHQKK25pZ2h0cworbmlsZQorbmltcm9kCituaW4nZXZlaAorbmluZQorbmluZXRlZW4KK25pbmV0eQorbmluZXR5LWZpdmUKK25pbmV0eS1uaW5lCitubworbm9haAorbm9haCdzCitub2QKK25vbmUKK25vb24KK25vcgorbm9ydGgKK25vcnRod2FyZAorbm9zZQorbm9zdHJpbHMKK25vdAorbm90aGluZworbm93CitudW1iZXIKK251bWJlcmVkCitudW1iZXJzCitudXJzZQorbnV0cworbworb2FrCitvYWtzCitvYXRoCitvYmFsCitvYmVkaWVuY2UKK29iZWlzYW5jZQorb2JleQorb2JleWVkCitvYmplY3QKK29ic3RydWN0ZWQKK29ic3RydWN0aW5nCitvYnRhaW4KK29idGFpbmVkCitvY2Nhc2lvbgorb2NjdXBhdGlvbgorb2Rpb3VzCitvZG9yCitvZgorb2ZmCitvZmZlbmRlZAorb2ZmZW5zZQorb2ZmZW5zZXM6CitvZmZlcgorb2ZmZXJlZAorb2ZmZXJpbmcKK29mZmVyaW5ncworb2ZmaWNlCitvZmZpY2VyCitvZmZpY2Vycworb2ZmaWNlcworb2Zmc3ByaW5nCitvaAorb2hhZAorb2hvbGliYSdtYWgKK29pbAorb2xkCitvbGRlcgorb2xkZXN0CitvbGl2ZQorb21hcgorb24KK29uYW0KK29uYW4KK29uY2UKK29uZQorb25lcworb25seQorb255eAorb3Blbgorb3BlbmVkCitvcGVyYXRpb24KK29waGlyCitvcGluaW9ucworb3Bwb3NpbmcKK29wcG9zaXRlCitvcHByZXNzZWQKK29wcHJlc3Npb25zCitvcgorb3JkZXIKK29yZGVycworb3JnYW5pemluZworb3JuYW1lbnRzCitvdGhlcgorb3RoZXJzCitvdWdodAorb3VyCitvdXJzCitvdXJzZWx2ZXMKK291dAorb3V0Y3J5CitvdXRzaWRlCitvdXR3aXR0ZWQKK292ZXIKK292ZXJkcml2ZW4KK292ZXJzZWVyCitvdmVyc2VlcnMKK292ZXJzaWdodAorb3ZlcnRha2UKK292ZXJ0aHJldworb3ZlcnRocm93CitvdmVydG9vaworb3duCitvd25zCitveGVuCitwYWNlCitwYWRkYW4KK3BhZGRhbi1hcmFtCitwYWlkCitwYWluCitwYWlyCitwYWlycworcGFsbHUKK3BhcmFsbGVsZWQKK3BhcmFuCitwYXJ0CitwYXJ0cworcGFzcworcGFzc2VkCitwYXN0CitwYXN0dXJlCitwYXN0dXJlZAorcGFzdHVyaW5nCitwYXRoCitwYXRocnUnc2ltCitwYXRpZW50CitwYXUKK3BheQorcGF5bWVudAorcGUnbGFoCitwZWFjZQorcGVhY2VhYmx5CitwZWVsZWQKK3BlbGVnCitwZW5pJ2VsCitwZW51J2VsCitwZW9wbGUKK3Blb3BsZWQKK3Blb3BsZXMKK3BlcidpenppdGVzCitwZXJlegorcGVyZmlkeQorcGVyZm9ybQorcGVyaGFwcworcGVyaXNoCitwZXJtaXQKK3BlcnBldHVhdGVkCitwZXJzb25zCitwZXRpdGlvbmVkCitwZXRpdGlvbnMKK3BoYXJhb2gKK3BoYXJhb2gncworcGhpY29sCitwaGlsaXN0aW5lcworcGh5c2ljaWFucworcGllY2UKK3BpZWNlcworcGlnZW9uCitwaWxkYXNoCitwaWxsYXIKK3Bpbm9uCitwaXBlCitwaXNob24KK3Bpc3RhY2hpbworcGl0CitwaXRjaAorcGl0Y2hlZAorcGl0cworcGxhY2UKK3BsYWNlZAorcGxhY2VzCitwbGFndWVzCitwbGFpbgorcGxhaW5seQorcGxhbmUKK3BsYW5uaW5nCitwbGFudAorcGxhbnRlZAorcGxhbnRzCitwbGF5CitwbGF5ZWQKK3BsYXlpbmcKK3BsZWFzYW50CitwbGVhc2UKK3BsZWFzZWQKK3BsZWFzZXMKK3BsZWFzaW5nCitwbGVhc3VyZQorcGxlZGdlCitwbGVudGVvdXMKK3BsZW50eQorcGxvd2luZworcGx1Y2tlZAorcGx1bXAKK3BsdW5kZXJlZAorcG9pbnQKK3BvbGl0aWNhbAorcG9vcgorcG9wbGFyCitwb3B1bGF0aW9uCitwb3J0aW9uCitwb3J0aW9ucworcG9zc2VzcworcG9zc2Vzc2lvbgorcG9zc2Vzc2lvbnMKK3Bvc3Rlcml0eQorcG90Citwb3QnaS1waGFyCitwb3RpJ3BoZXJhCitwb3R0YWdlCitwb3VyZWQKK3BvdmVydHkKK3Bvd2VyCitwb3dlcnMKK3ByYWlzZQorcHJhaXNlZAorcHJheQorcHJheWVkCitwcmF5ZXIKK3ByZS1lbWluZW5jZQorcHJlLWVtaW5lbnQKK3ByZXBhcmUKK3ByZXBhcmVkCitwcmVzZW5jZQorcHJlc2VudAorcHJlc2VudGVkCitwcmVzZXJ2ZQorcHJlc2VydmVkCitwcmVzc2VkCitwcmVzc2luZworcHJldGVuZGVkCitwcmV2YWlsCitwcmV2YWlsZWQKK3ByZXZlbnQKK3ByZXZlbnRlZAorcHJleQorcHJpY2UKK3ByaWRlCitwcmllc3QKK3ByaWVzdHMKK3ByaW5jZQorcHJpbmNlcworcHJpbmNpcGxlcworcHJpc29uCitwcmlzb25lcnMKK3Byb2NlZWQKK3Byb2R1Y2UKK3Byb2ZpdAorcHJvbWlzZQorcHJvbWlzZWQKK3Byb25vdW5jZQorcHJvcGVydHkKK3Byb3BoZXQKK3Byb3Bvc2FsCitwcm9wb3NlCitwcm9zcGVyCitwcm9zcGVyZWQKK3Byb3RlY3RpbmcKK3Byb3RlY3Rpb24KK3Byb3ZlCitwcm92ZW5kZXIKK3Byb3ZpZGUKK3Byb3ZpZGVkCitwcm92aWRlbmNlCitwcm92aW5jZQorcHJvdmlzaW9uCitwcm92aXNpb25zCitwcnVkZW5jZQorcHVibGljCitwdWJsaXNoCitwdW5pc2htZW50CitwdXJjaGFzZWQKK3B1cmlmeQorcHVycG9zZQorcHVyc3VlCitwdXJzdWVkCitwdXJzdWluZworcHVyc3VpdAorcHV0CitwdXR0aW5nCitwdXZhaAorcXVhcnJlbAorcXVhcnJlbGVkCitxdWFydGVyaW5nCitxdWVzdGlvbmVkCitxdWVzdGlvbnMKK3F1aWNrbHkKK3F1aWV0CitxdWl2ZXIKK3JhJ2FtYWgKK3JhY2hlbAorcmFjaGVsJ3MKK3JhaWQKK3JhaWRlcnMKK3JhaW1lbnQKK3JhaW4KK3JhaW5lZAorcmFpc2UKK3JhaXNlZAorcmFpc2luZworcmFtCityYW0nZXNlcworcmFtcworcmFuCityYXRoZXIKK3JhdmFnZWQKK3JhdmVuCityYXZlbm91cworcmUndQorcmVhY2hlZAorcmVhZHkKK3JlYWxseQorcmVhcGVkCityZWFzb24KK3JlYXNzdXJlZAorcmViZWthaAorcmViZWthaCdzCityZWJlbGxlZAorcmVidWtlZAorcmVjZWRlZAorcmVjZWl2ZQorcmVjZWl2ZWQKK3JlY2tvbmVkCityZWNrb25pbmcKK3JlY29nbml6ZQorcmVjb2duaXplZAorcmVjb3JkcworcmVjdGl0dWRlCityZWQKK3JlZGVlbWVkCityZWRyZXNzCityZWR1Y2UKK3JlZWQKK3JlZnJlc2gKK3JlZnVzZWQKK3JlZnVzaW5nCityZWdhcmQKK3JlZ2FyZGVkCityZWdhcmRzCityZWhvJ2JvdGgKK3JlaG8nYm90aC1pcgorcmVpZ24KK3JlaWduZWQKK3JlbGlhbmNlCityZWxpZWYKK3JlbGlucXVpc2gKK3JlbWFpbgorcmVtYWluZWQKK3JlbWFpbmluZworcmVtYWlucworcmVtZW1iZXIKK3JlbWVtYmVyZWQKK3JlbWluZGVkCityZW1uYW50CityZW1vdmUKK3JlbW92ZWQKK3JlbW92aW5nCityZW5kZXIKK3Jlbm93bgorcmVudAorcmVwZWF0ZWQKK3JlcGVhdGVkbHkKK3JlcGgnYWltCityZXBsYWNlCityZXBsYWNlZAorcmVwbGllZAorcmVwb3J0CityZXByZXNlbnRhdGlvbgorcmVwcmVzZW50YXRpdmUKK3JlcHJlc2VudGF0aXZlcworcmVwcm9hY2gKK3JlcXVpcmUKK3JlcXVpcmVkCityZXF1aXJlcworcmVzY3VlCityZXNlbgorcmVzZXJ2ZQorcmVzZXJ2ZWQKK3Jlc3BlY3QKK3Jlc3QKK3Jlc3RlZAorcmVzdGluZworcmVzdG9yZQorcmVzdG9yZWQKK3Jlc3RyYWluZWQKK3JldHVybgorcmV0dXJuZWQKK3JldSdlbAorcmV1YmVuCityZXVtYWgKK3JldmVhbGVkCityZXZpdmVkCityZXdhcmQKK3JpYgorcmlicworcmljaAorcmlkZQorcmlkZXIKK3JpZ2h0CityaWdodGVkCityaWdodGVvdXMKK3JpZ2h0ZW91c25lc3MKK3JpZ2h0bHkKK3JpZ2h0cworcmluZworcmluZ3MKK3JpcGVuZWQKK3JpcGhhdGgKK3Jpc2UKK3Jpc2VuCityaXZlcgorcml2ZXJzCityb2FkCityb2JlCityb2NrCityb2RlCityb2RzCityb2xsCityb2xsZWQKK3Jvb2YKK3Jvb20KK3Jvb21zCityb3NlCityb3NoCityb3VnaGx5Cityb3VuZAorcm91c2UKK3JvdXRlZAorcm95YWwKK3J1bGUKK3J1bGVyCitydWxlcidzCitydW4KK3J1bm5lbHMKK3NhYid0ZWNhCitzYWJ0YWgKK3NhY2sKK3NhY2tjbG90aAorc2Fja3MKK3NhY3JlZAorc2FjcmlmaWNlCitzYWNyaWZpY2VzCitzYWRkbGUKK3NhZGRsZWQKK3NhZmVseQorc2FmZXR5CitzYWlkCitzYWtlCitzYWxhcmllcworc2FsZW0KK3NhbHQKK3NhbHZhdGlvbgorc2FtZQorc2FtbGFoCitzYW5kCitzYW5kYWwtdGhvbmcKK3NhcidhaQorc2FyYWgKK3NhcmFoJ3MKK3NhdAorc2F2YWdlcworc2F2ZWQKK3NhdmluZworc2F2b3J5CitzYXcKK3NheQorc2F5aW5nCitzYXlzCitzY2FyY2VseQorc2NhcmxldAorc2NhdHRlcgorc2NhdHRlcmVkCitzY2VwdGVyCitzZSdpcgorc2VhCitzZWFyY2hlZAorc2Vhcworc2Vhc2hvcmUKK3NlYXNvbgorc2Vhc29ucworc2ViYQorc2Vjb25kCitzZWNyZXRseQorc2VjdXJlCitzZWN1cml0eQorc2VlCitzZWVkCitzZWVkdGltZQorc2VlaW5nCitzZWVrCitzZWVraW5nCitzZWVtCitzZWVtZWQKK3NlZW4KK3NlZXMKK3NlaXplCitzZWl6ZWQKK3NlbGVjdAorc2VsZi1ldmlkZW50CitzZWxsCitzZW1lbgorc2VuZAorc2VudAorc2VwYXJhdGUKK3NlcGFyYXRlZAorc2VwYXJhdGlvbgorc2VwaGFyCitzZXB1bGNocmUKK3NlcHVsY2hyZXMKK3NlcmFoCitzZXJlZAorc2VycGVudAorc2VydWcKK3NlcnZhbnQKK3NlcnZhbnQncworc2VydmFudHMKK3NlcnZlCitzZXJ2ZWQKK3NlcnZpY2UKK3NlcnZpbmcKK3NldAorc2V0aAorc2V0dGxlCitzZXR0bGVkCitzZXR0bGVtZW50CitzZXZlbgorc2V2ZW5mb2xkCitzZXZlbnRlZW4KK3NldmVudGVlbnRoCitzZXZlbnRoCitzZXZlbnR5CitzZXZlbnR5LWZpdmUKK3NldmVudHktc2V2ZW4KK3NldmVudHktc2V2ZW5mb2xkCitzZXZlcmUKK3Nld2VkCitzZXhlcworc2hhJ3ZlaC1raXJpYXRoYSdpbQorc2hhbGwKK3NoYW1tYWgKK3NoYXJlCitzaGF1bAorc2hhdmVkCitzaGF2ZWgKK3NoZQorc2hlLWFzc2VzCitzaGUtZ29hdAorc2hlLWdvYXRzCitzaGVhZgorc2hlYXIKK3NoZWF2ZXMKK3NoZWJhCitzaGVjaGVtCitzaGVjaGVtJ3MKK3NoZWQKK3NoZWRzCitzaGVlcAorc2hlZXBmb2xkcworc2hlZXBzaGVhcmVycworc2hla2VsCitzaGVrZWxzCitzaGVsYWgKK3NoZWxlcGgKK3NoZWx0ZXIKK3NoZW0KK3NoZW1lJ2Jlcgorc2hlb2wKK3NoZXBoZXJkCitzaGVwaGVyZGluZworc2hlcGhlcmRzCitzaGVwaG8KK3NoaWJhaAorc2hpZWxkCitzaGlsbGVtCitzaGltcm9uCitzaGluYWIKK3NoaW5hcgorc2hpcHMKK3Nob2JhbAorc2hvcmUKK3Nob3J0CitzaG9ydGx5CitzaG90CitzaG91bGQKK3Nob3VsZGVyCitzaG91bGRlcnMKK3Nob3cKK3Nob3dlZAorc2hvd24KK3NodWEKK3NodWEncworc2h1YWgKK3NodW5pCitzaHVyCitzaHV0CitzaWRkaW0KK3NpZGUKK3NpZG9uCitzaWdodAorc2lnbgorc2lnbmV0CitzaWducworc2lsZW5jZQorc2lsdmVyCitzaW1lb24KK3Npbgorc2luY2UKK3NpbmV3CitzaW5pdGVzCitzaW5uZWQKK3Npbm5lcnMKK3Npbm5pbmcKK3Npc3Rlcgorc2lzdGVyJ3MKK3NpdAorc2l0bmFoCitzaXR0aW5nCitzaXgKK3NpeHRlZW4KK3NpeHRoCitzaXh0eQorc2l4dHktZml2ZQorc2l4dHktbmluZQorc2l4dHktc2l4CitzaXh0eS10d28KK3NraWxmdWwKK3NraW4KK3NraW5zCitzbGFpbgorc2xhdWdodGVyCitzbGF2ZQorc2xhdmVzCitzbGF5CitzbGF5cworc2xlZWsKK3NsZWVwCitzbGVldmVzCitzbGVwdAorc2xldworc2xvcGUKK3Nsb3dseQorc21hbGwKK3NtZWxsCitzbWVsbGVkCitzbW9rZQorc21va2luZworc21vb3RoCitzbworc29kb20KK3NvaWwKK3Nvam91cm4KK3Nvam91cm5lZAorc29qb3VybmVyCitzb2pvdXJuZXJzCitzb2pvdXJuaW5nCitzb2pvdXJuaW5ncworc29sZAorc29sZQorc29sZW1ubHkKK3NvbWUKK3Nvbgorc29uJ3MKK3NvbmdzCitzb25zCitzb25zJworc29ucy1pbi1sYXcKK3Nvb24KK3NvcmUKK3NvcmVseQorc29ycm93Citzb3Jyb3dmdWwKK3NvcnJ5Citzb3J0Citzb3J0cworc291Z2h0Citzb3VsCitzb3VuZAorc291dGgKK3NvdXRod2FyZAorc293Citzb3dlZAorc3BhY2UKK3NwYXJlCitzcGFyZWQKK3NwZWFrCitzcGVha2luZworc3BlYWtzCitzcGVja2xlZAorc3BlZWNoCitzcGVuZAorc3BlbnQKK3NwaWVzCitzcGlsbGVkCitzcGlyaXQKK3NwbGVuZG9yCitzcG9pbAorc3Bva2UKK3Nwb2tlbgorc3BvdHRlZAorc3ByZWFkCitzcHJpbmcKK3NwcmluZ2luZworc3ByaW5ncworc3Byb3V0ZWQKK3NwcnVuZworc3RhZmYKK3N0YWdlCitzdGFsaworc3RhbmQKK3N0YW5kaW5nCitzdGFuZHMKK3N0YXJzCitzdGF0ZQorc3RhdGVzCitzdGF0ZXM6CitzdGF0aW9uCitzdGF0dXRlCitzdGF0dXRlcworc3RheQorc3RheWVkCitzdGVhZAorc3RlYWRmYXN0CitzdGVhbAorc3Rld2FyZAorc3RpbGwKK3N0b2xlCitzdG9sZW4KK3N0b25lCitzdG9uZXMKK3N0b29kCitzdG9vcGVkCitzdG9wCitzdG9wcGVkCitzdG9yZQorc3RvcmVkCitzdG9yZWhvdXNlcworc3RvcnkKK3N0cmFuZ2VyCitzdHJhbmdlcnMKK3N0cmF3CitzdHJlYWtzCitzdHJlYW0KK3N0cmVldAorc3RyZW5ndGgKK3N0cmV0Y2hlZAorc3RyaWZlCitzdHJpa2luZworc3RyaXBlZAorc3RyaXBwZWQKK3N0cml2ZW4KK3N0cm9uZworc3Ryb25nZXIKK3N0cm9uZ2x5CitzdHJ1Y2sKK3N0cnVnZ2xlZAorc3ViZHVlCitzdWJkdWVkCitzdWJqZWN0CitzdWJtaXQKK3N1Ym1pdHRlZAorc3Vic2lkZWQKK3N1YnN0YW5jZQorc3VidGxlCitzdWNjZXNzCitzdWNjZXNzZnVsCitzdWNjb3RoCitzdWNoCitzdWNrCitzdWNrbGUKK3N1ZmZlcgorc3VmZmVyYWJsZQorc3VmZmVyYW5jZQorc3VpdGFibGUKK3N1bW1lcgorc3VtbW9uZWQKK3N1bgorc3VwZXJpb3IKK3N1cHBsYW50ZWQKK3N1cHBsaWVkCitzdXBwb3J0CitzdXBwb3NlCitzdXByZW1lCitzdXJlbHkKK3N1cmV0eQorc3Vycm91bmRlZAorc3Vydml2b3JzCitzdXNwZW5kZWQKK3N1c3BlbmRpbmcKK3N1c3RhaW5lZAorc3dhbGxvd2VkCitzd2FybQorc3dhcm1pbmcKK3N3YXJtcworc3dlYXIKK3N3ZWF0Citzd29yZAorc3dvcmRzCitzd29yZQorc3dvcm4KK3N5c3RlbQorc3lzdGVtcwordGFibGUKK3RhaGFzaAordGFrZQordGFrZW4KK3Rha2luZwordGFsa2VkCit0YWxraW5nCit0YW1hcgordGFtYXJpc2sKK3RhbWJvdXJpbmUKK3RhcnJpZWQKK3RhcnJ5Cit0YXJzaGlzaAordGF4ZXMKK3RlJ21hbml0ZXMKK3RlYmFoCit0ZWV0aAordGVsbAordGVsbHMKK3RlbWEKK3RlbWFuCit0ZW4KK3RlbmRlcgordGVuZGVybHkKK3RlbnQKK3RlbnRoCit0ZW50cwordGVudXJlCit0ZXJhaAordGVybXM6Cit0ZXJyaXRvcnkKK3RlcnJvcgordGVzdGVkCit0aGFuCit0aGF0Cit0aGUKK3RoZWUKK3RoZWlyCit0aGVpcnMKK3RoZW0KK3RoZW1zZWx2ZXMKK3RoZW4KK3RoZW5jZQordGhlcmUKK3RoZXJlZm9yZQordGhlcmVpbgordGhlc2UKK3RoZXkKK3RoaWNrZXQKK3RoaWdoCit0aGluCit0aGluZwordGhpbmdzCit0aGlua2luZwordGhpcmQKK3RoaXJ0ZWVuCit0aGlydGVlbnRoCit0aGlydHkKK3RoaXJ0eS1maXZlCit0aGlydHktZm91cgordGhpcnR5LXNldmVuCit0aGlydHktdGhyZWUKK3RoaXJ0eS10d28KK3RoaXMKK3RoaXN0bGVzCit0aG9ybnMKK3Rob3JvdWdobHkKK3Rob3NlCit0aG91Cit0aG91Z2h0Cit0aG91Z2h0cwordGhvdXNhbmQKK3Rob3VzYW5kcwordGhyZWFkCit0aHJlZQordGhyZXNoaW5nCit0aHJvbmUKK3Rocm91Z2gKK3Rocm91Z2hvdXQKK3Rocm93Cit0aHVzCit0aHkKK3RpZGFsCit0aWRpbmdzCit0aWVzCit0aWdyaXMKK3RpbGwKK3RpbGxlcgordGltZQordGltZXMKK3RpbW5hCit0aW1uYWgKK3RpcmFzCit0bwordG9kYXkKK3RvZ2FyJ21haAordG9nZXRoZXIKK3RvaWwKK3RvbGEKK3RvbGQKK3RvbWIKK3RvbmlnaHQKK3RvbwordG9vawordG9wCit0b3BzCit0b3JjaAordG9ybgordG90YWxseQordG90YWx5Cit0b3VjaAordG91Y2hlZAordG91Y2hlcwordG93YXJkCit0b3dlcgordG93bnMKK3RyYWRlCit0cmFkZXJzCit0cmFpbgordHJhaW5lZAordHJhbnNncmVzc2lvbgordHJhbnNpZW50Cit0cmFuc3BvcnRpbmcKK3RyYXZhaWxlZAordHJlYXN1cmUKK3RyZWF0Cit0cmVhdGVkCit0cmVlCit0cmVlcwordHJlbWJsZWQKK3RyZW1ibGluZwordHJpYWwKK3RyaWJlcwordHJpZWQKK3Ryb29wcwordHJvdWJsZQordHJvdWJsZWQKK3Ryb3VibGVzCit0cm91Z2gKK3Ryb3VnaHMKK3RydWx5Cit0cnV0aAordHJ1dGhzCit0dWJhbAordHViYWwtCit0dWJhbC1jYWluCit0dXJuCit0dXJuZWQKK3R1cm5zCit0dXJ0bGVkb3ZlCit0d2VsdmUKK3R3ZW50eQordHdlbnR5LW5pbmUKK3R3ZW50eS1zZXZlbgordHdlbnR5LXNldmVudGgKK3R3aWNlCit0d2lucwordHdvCit0eXJhbm55Cit0eXJhbnQKK3R5cmFudHMKK3VuYWNrbm93bGVkZ2VkCit1bmFsaWVuYWJsZQordW5hd2FyZXMKK3VuY2lyY3VtY2lzZWQKK3VuY29tZm9ydGFibGUKK3VuY292ZXJlZAordW5kZXIKK3VuZGVyc3RhbmQKK3VuZGVyc3Rvb2QKK3VuZGlzdGluZ3Vpc2hlZAordW5maXQKK3VuZ2lyZGVkCit1bml0ZWQKK3Vua25vd24KK3VubGVhdmVuZWQKK3VubGVzcwordW5tb3ZlZAordW5zdGFibGUKK3VudGlsCit1bnVzdWFsCit1bndhcnJhbnRhYmxlCit1bndvcnRoCit1cAordXBicmFpZGVkCit1cG9uCit1cHBlcm1vc3QKK3VwcmlnaHQKK3VyCit1cmdlZAordXMKK3VzOgordXNlCit1c2luZwordXN1cnBhdGlvbnMKK3V0dGVybHkKK3V6Cit1emFsCit2YWxsZXkKK3ZhbHVhYmxlCit2ZWdldGF0aW9uCit2ZWlsCit2ZW5nZWFuY2UKK3ZlbnQKK3ZlbnRzCit2ZXJpZmllZAordmVyeQordmVzdHVyZQordmlsbGFnZXMKK3ZpbmRpY2F0aW9uCit2aW5lCit2aW5leWFyZAordmlvbGVuY2UKK3Zpb2xlbnRseQordmlwZXIKK3ZpcmdpbgordmlzaW9uCit2aXNpb25zCit2aXNpdAordmlzaXRlZAordm9pY2UKK3ZvaWQKK3Zvdword2FnZXMKK3dhZ2luZword2Fnb25zCit3YWl0Cit3YWl0ZWQKK3dhbGsKK3dhbGtlZAord2Fsa2luZword2FsbAord2FuZGVyCit3YW5kZXJlZAord2FuZGVyZXIKK3dhbmRlcmluZword2FudGluZword2FudG9ubmVzcword2FyCit3YXJmYXJlCit3YXJuZWQKK3dhcword2FzaAord2FzaGVkCit3YXNoZXMKK3dhdGNoCit3YXRlcgord2F0ZXJlZAord2F0ZXJpbmcKK3dhdGVycword2F5Cit3YXlzaWRlCit3ZQord2Vhaword2Vha25lc3MKK3dlYWx0aAord2VhbHRoeQord2VhbmVkCit3ZWFwb25zCit3ZWFyCit3ZWFyaWVkCit3ZWFyeQord2Vlaword2VlcAord2VlcGluZword2VpZ2hlZAord2VpZ2hpbmcKK3dlaWdodAord2VpZ2h0cword2VsZmFyZQord2VsbAord2VsbCdzCit3ZWxscword2VudAord2VwdAord2VyZQord2VzdAord2VzdHdhcmQKK3doYXQKK3doYXRldmVyCit3aGF0c29ldmVyCit3aGVhdAord2hlbHAKK3doZW4KK3doZW5jZQord2hlbmV2ZXIKK3doZXJlCit3aGVyZWJ5Cit3aGVyZXZlcgord2hldGhlcgord2hpY2gKK3doaWxlCit3aGl0ZQord2hvCit3aG9ldmVyCit3aG9sZQord2hvbGVzb21lCit3aG9tCit3aG9tZXZlcgord2hvc2UKK3doeQord2lja2VkCit3aWNrZWRseQord2lja2VkbmVzcword2lkb3cKK3dpZG93J3MKK3dpZG93aG9vZAord2lmZQord2lmZSdzCit3aWxkCit3aWxkZXJuZXNzCit3aWxsCit3aWxsaW5nCit3aWx0Cit3aW5kCit3aW5kb3cKK3dpbmRvd3MKK3dpbmUKK3dpbmdlZAord2ludGVyCit3aXNlCit3aXRoCit3aXRoZXJlZAord2l0aGhlbGQKK3dpdGhob2xkCit3aXRoaW4KK3dpdGhvdXQKK3dpdG5lc3MKK3dpdmVzCit3b2xmCit3b21hbgord29tYW4ncword29tYgord29tYnMKK3dvbWVuCit3b29kCit3b3JkCit3b3Jkcword29yZQord29yaword29ya3MKK3dvcmxkCit3b3JsZDoKK3dvcnNlCit3b3JzaGlwCit3b3JzaGlwZWQKK3dvcnRoCit3b3J0aHkKK3dvdWxkCit3b3VuZGluZword3JhcHBpbmcKK3dyYXRoCit3cmVzdGxlZAord3Jlc3RsaW5ncword3JvbmcKK3dyb3VnaHQKK3llYXIKK3llYXJuZWQKK3llYXJzCit5ZXMKK3lldAoreWllbGQKK3lpZWxkaW5nCit5b2tlCit5b25kZXIKK3lvdQoreW91bmcKK3lvdW5nZXIKK3lvdW5nZXN0Cit5b3VyCit5b3VycworeW91cnNlbGYKK3lvdXJzZWx2ZXMKK3lvdXRoCit6YSdhdmFuCit6YXBoJ2VuYXRoLXBhbmUnYWgKK3plYid1bHVuCit6ZWJvaSdpbQoremVtJ2FyaXRlcworemVwaG8KK3plcmFoCit6aWInZW9uCit6aWxsYWgKK3ppbHBhaAoremltcmFuCit6aXBoJ2lvbgorem8nYXIKK3pvaGFyCit6dXppbQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3RoMTgwNTcudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3RoMTgwNTcudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFjNjEwNjcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdGgxODA1Ny50eHQKQEAgLTAsMCArMSwxNzkxOSBAQAor77u/IyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMqCisjKiAgIENvcHlyaWdodCAoQykgMTk5OC0yMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisjKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorIyoKKyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyMKKyMgQCgjKSRSQ1NmaWxlOiB0aDE4MDU3LnR4dCx2ICQgJFJldmlzaW9uOiAxLjEgJCAkRGF0ZTogMjAwMi8wNy8xNiAwMDoyOTozOSAkCisjIAorIyBTb3J0ZWQgVGhhaSB3b3JkIGxpc3QgdXNlZCBmb3IgdGVzdGluZyB0aGUgVGhhaUNvbGxhdG9yIGNsYXNzLgorIyBUaGlzIGxpc3Qgd2FzIHRha2VuIGZyb20gdGhlIFdlYjogPGh0dHA6Ly9zZWFzcmMudGgubmV0L2RpY3QvZGljdC5odG0+CisjIGFuZCBzb21lIG9idmlvdXMgZ2FyYmFnZSBsaW5lcyAobnVsbHMsIGV0Yykgd2VyZSBkZWxldGVkCisjCisjIExpbmVzIHN0YXJ0aW5nIHdpdGggJyMnIGFyZSBpZ25vcmVkOyBvdGhlcnMgYXJlIHRyZWF0ZWQgYXMgc2luZ2xlIHdvcmRzCisjIGluIHRoZSBVVEYtOCBlbmNvZGluZy4KKyMKKyMgWzEyLzE1Lzk5IGFsaXVdIHJlY29kZWQgZnJvbSBUSVMtNjIwIHRvIFVURi04CisjCivguIEKK+C4geC5hwor4LiB4LiBCivguIHguYrguIEKK+C4geC4geC4guC4meC4suC4gQor4LiB4LiB4Lix4LiT4LiP4LiB4LiwCivguIHguIHguLjguI8KK+C4geC4geC4uOC4lwor4LiB4LiB4Li44LiY4Lig4Lix4LiT4LiR4LmMCivguIHguIHguLjguKrguLHguJnguYLguJgKK+C4geC4hwor4LiB4LmI4LiHCivguIHguYnguIcKK+C4geC5iuC4hwor4LiB4LiH4LiB4Lit4LiZCivguIHguIfguIHguLLguKMKK+C4geC4h+C5guC4geC5iQor4LiB4LmJ4LiH4LmC4LiE4LmJ4LiHCivguIHguYnguIfguIcKK+C4geC4h+C4ieC4suC4gQor4LiB4LiH4LmE4LiJ4LmICivguIHguIfguYDguJXguYfguIEKK+C4geC4h+C4quC4tQor4LiB4LiH4Liq4Li44LilCivguIHguIoKK+C4geC4iuC4geC4owor4LiB4LiO4Li44Lih4Lie4Li1CivguIHguI8KK+C4geC4j+C4q+C4oeC4suC4ogor4LiB4LiP4LiwCivguIHguI/guLLguKvguLAKK+C4geC4j+C4tAor4LiB4LiP4Li44LiBCivguIHguJDguLTguJkKK+C4geC4kOC4tOC4meC4geC4suC4pQor4LiB4LiQ4Li04LiZ4LiV4LmJ4LiZCivguIHguJDguLTguJnguJfguLLguJkKK+C4geC4kOC4tOC4meC4o+C4suC4qeC4juC4o+C5jAor4LiB4LiQ4Li04LiZ4Lir4Lil4Lin4LiHCivguIHguJDguLTguJnguLHguJXguJbguLLguKPguIHguKPguKPguKEKK+C4geC4kOC4tOC4meC4uOC4l+C4mOC4suC4o+C4sAor4LiB4LiT4Li04LiB4LiZ4Lix4LiZ4LiV4LmMCivguIHguJPguLTguIHguLLguKPguYwKK+C4geC5gOC4k+C4o+C4uAor4LiB4LmA4LiT4Lij4Li44LiB4LiyCivguIHguJQKK+C4geC4lOC4hOC4seC4hwor4LiB4LiU4LmB4LiU4LiHCivguIHguJTguJfguLDguYDguKUKK+C4geC4lOC5guC4m+C5iuC4sAor4LiB4LiU4Lir4Lix4Lin4LmC4LiVCivguIHguJTguYDguKvguKXguLfguK3guIcKK+C4geC4leC4jeC4suC4kwor4LiB4LiV4Lih4Liy4Lil4Li1CivguIHguJXguYDguKfguJfguLTguJXguLIKK+C4geC4leC5gOC4p+C4l+C4tQor4LiB4LiV4Lix4LiN4LiK4Lil4Li1CivguIHguJXguLHguI3guI3guLjguJXguLIKK+C4geC4leC4seC4jeC4jeC4uQor4LiB4LiV4Liy4LiY4Li04LiB4Liy4LijCivguIHguJXguLLguKDguLTguJnguLTguKvguLLguKMKK+C4geC4leC4tOC4geC4sgor4LiB4LiW4LiyCivguIHguJbguLTguIEKK+C4geC4luC4tOC4geC4suC4iOC4suC4o+C4ouC5jAor4LiB4LiX4Lij4Lij4LibCivguIHguJfguKXguLTguKHguKTguIQKK+C4geC4l+C4peC4tQor4LiB4LiZCivguIHguYjguJkKK+C4geC5ieC4mQor4LiB4LiZ4LiBCivguIHguJnguJkKK+C4geC4meC4meC5gOC4iuC4rQor4LiB4LmI4LiZ4LiZ4LmC4LiW4LiHCivguIHguJnguJnguYDguKvguLTguKEKK+C4geC4meC4tOC4qeC4kOC5jAor4LiB4LiZ4Li04Lip4LiQ4LiyCivguIHguJoKK+C4geC4muC4jwor4LiB4Lia4LiU4Liy4LiZCivguIHguJrguJTguLPguIHguJrguYHguJTguIcKK+C4geC4muC4l+C4uQor4LiB4Lia4Liy4LilCivguIHguJrguLTguJnguJfguKPguYwKK+C4geC4muC4tOC4pQor4LiB4Lia4Li04Lil4Lie4Lix4Liq4LiU4Li44LmMCivguIHguJrguLXguYgKK+C4geC4muC4ueC4owor4LiB4LmA4Lia4LiZ4LiX4Lij4LmMCivguIHguYLguJrguKMKK+C4geC5guC4muC4pQor4LiB4Lib4LiTCivguIHguJvguJPguIEKK+C4geC4m+C4k+C4sgor4LiB4Lib4Li0CivguIHguJvguLTguJXguLHguJkKK+C4geC4oQor4LiB4LmJ4LihCivguIHguKHguJPguJHguKXguLLguKDguLTguYDguKnguIEKK+C4geC4oeC4k+C4keC5guC4peC4l+C4gQor4LiB4Lih4LilCivguIHguKHguKXguILguLHguJPguJHguYwKK+C4geC4oeC4peC4hOC4o+C4o+C4oOC5jAor4LiB4Lih4Lil4LiJ4Lix4LiZ4LiX4LmMCivguIHguKHguKXguJ7guLLguJnguJjguJ4KK+C4geC4oeC4peC4sgor4LiB4Lih4Lil4Liy4LioCivguIHguKHguKXguLLguKrguJnguYwKK+C4geC4oeC5gOC4peC4qAor4LiB4Lih4Lix4LiT4LiR4Lil4Li4CivguIHguKHguLjguJcKK+C4geC4owor4LiB4Lij4LiBCivguIHguKPguIHguI4KK+C4geC4o+C4geC4juC4suC4hOC4oQor4LiB4Lij4LiHCivguIHguKPguIrguIHguLLguKIKK+C4geC4o+C4k+C4keC5jAor4LiB4Lij4LiT4Li04LiB4Liy4Lij4LmMCivguIHguKPguJPguLUKK+C4geC4o+C4k+C4teC4ouC5jAor4LiB4Lij4LiT4Li14Lii4LiwCivguIHguKPguJQKK+C4geC4o+C4mQor4LiB4Lij4LiZ4LiX4LiyCivguIHguKPguJnguJnguYDguIrguYnguLIKK+C4geC4o+C4mgor4LiB4Lij4Lia4Li54LijCivguIHguKPguJ7guLTguJnguJjguLjguYwKK+C4geC4o+C4oOC4gQor4LiB4Lij4Lig4Li04LiZCivguIHguKPguKDguLXguKPguYwKK+C4geC4o+C4oOC4uOC4oQor4LiB4Lij4LihCivguIHguKPguKHguIHguKPguK3guKEKK+C4geC4o+C4oeC4geC4suC4owor4LiB4Lij4Lih4LiB4Liy4Lij4Lie4Li04LmA4Lio4LipCivguIHguKPguKHguYDguIHguKPguLXguKLguKEKK+C4geC4o+C4oeC4guC4uOC4mQor4LiB4Lij4Lih4LiK4Liw4LmB4Lih4LmICivguIHguKPguKHguJfguYjguLIKK+C4geC4o+C4oeC4l+C5iOC4suC4geC4peC4suC4hwor4LiB4Lij4Lih4LiX4LmI4Liy4LiC4Lin4LiyCivguIHguKPguKHguJfguYjguLLguIvguYnguLLguKIKK+C4geC4o+C4oeC4mOC4o+C4o+C4oeC5jAor4LiB4Lij4Lih4LiZ4LiE4Lij4Lia4Liy4LilCivguIHguKPguKHguJnguLIKK+C4geC4o+C4oeC4nuC4o+C4sAor4LiB4Lij4Lih4Lie4Lij4Liw4LiB4Lil4Liy4LmC4Lir4LihCivguIHguKPguKHguJ7guKPguLDguKLguLIKK+C4geC4o+C4oeC4oeC4q+C4suC4lOC5hOC4l+C4ogor4LiB4Lij4Lih4LmA4Lih4Li34Lit4LiHCivguIHguKPguKHguKfguLHguIcKK+C4geC4o+C4oeC4qOC4seC4geC4lOC4tAor4LiB4Lij4Lih4Liq4Lih4LmA4LiU4LmH4LiICivguIHguKPguKHguKvguKHguLfguYjguJkKK+C4geC4o+C4oeC4q+C4peC4p+C4hwor4LiB4Lij4Lih4Lix4LiP4LiP4LmMCivguIHguKPguKMKK+C4geC4o+C4o+C5hOC4geC4owor4LiB4Lij4Lij4LmA4LiI4Li14Lii4LiBCivguIHguKPguKPguIrguLTguIcKK+C4geC4o+C4o+C4iuC4tOC4lAor4LiB4Lij4Lij4LmA4LiK4LitCivguIHguKPguKPguYDguIrguYnguLIKK+C4geC4o+C4o+C5gOC4iuC4teC4ouC4hwor4LiB4Lij4Lij4LmC4LiK4LiBCivguIHguKPguKPguIvguYnguJnguJkKK+C4geC4o+C4o+C5geC4i+C4hwor4LiB4Lij4Lij4LiQ4LmMCivguIHguKPguKPguJDguLIKK+C4geC4o+C4o+C4kwor4LiB4Lij4Lij4LiT4Li04LiB4Liy4Lij4LmMCivguIHguKPguKPguJTguLQKK+C4geC4o+C4o+C4lOC4tOC4gQor4LiB4Lij4Lij4LiU4Li24LiBCivguIHguKPguKPguJXguLgKK+C4geC4o+C4o+C5hOC4leC4owor4LiB4Lij4Lij4LiX4LiaCivguIHguKPguKPguYHguJfguIEKK+C4geC4o+C4o+C5geC4l+C4o+C4gQor4LiB4Lij4Lij4Lia4Liy4Liq4Li04LiBCivguIHguKPguKPguJrguLTguJQKK+C4geC4o+C4o+C4muC4ueC4owor4LiB4Lij4Lij4Lib4Liy4Liq4Li04LiBCivguIHguKPguKPguJvguLjguKPguLAKK+C4geC4o+C4o+C4nuC4uOC4oQor4LiB4Lij4Lij4Lie4Li44LmI4LihCivguIHguKPguKPguKDguLTguKPguKHguKLguYwKK+C4geC4o+C4o+C4oQor4LiB4Lij4Lij4Lih4LmMCivguIHguKPguKPguKHguLLguIrguLXguJ4KK+C4geC4o+C4o+C4oeC4suC4mOC4tOC4geC4suC4owor4LiB4Lij4Lij4Lih4Liy4LijCivguIHguKPguKPguKXguLUKK+C4geC4o+C4o+C4peC4tuC4hwor4LiB4Lij4Lij4Lip4LiBCivguIHguKPguKPguKrguLAKK+C4geC4o+C4o+C5geC4quC4hwor4LiB4Lij4Lij4Lir4Liy4LiiCivguIHguKPguKPguYDguKvguLTguKEKK+C4geC4o+C4o+C5guC4q+C4ogor4LiB4Lij4Lij4LmA4Lit4LiyCivguIHguKPguKPguLjguJPguLIKK+C4geC4o+C4p+C4lAor4LiB4Lij4Lin4LiZCivguIHguKPguKfguJoKK+C4geC4o+C4p+C4oQor4LiB4Lij4LmJ4Lin4LihCivguIHguKPguKfguKIKK+C4geC4o+C4p+C4tOC4gQor4LiB4Lij4Liq4Liy4Lib4LiZ4LmMCivguIHguKPguKrguLjguJfguJjguLTguYwKK+C4geC4o+C4rQor4LiB4Lij4LmJ4LitCivguIHguKPguK3guIEKK+C4geC4o+C5h+C4reC4geC4geC4o+C5i+C4reC4ogor4LiB4Lij4Lit4LiB4LmB4LiB4Lij4LiBCivguIHguKPguK3guIcKK+C4geC4o+C4reC4h+C4geC4o+C4reC4ogor4LiB4Lij4Lit4LiUCivguIHguKPguYjguK3guJkKK+C4geC4o+C4reC4mgor4LiB4Lij4Lit4LihCivguIHguKPguYjguK3guKEKK+C4geC4o+C5iOC4reC4ogor4LiB4Lij4LiwCivguIHguKPguLDguIHguKMKK+C4geC4o+C4sOC4geC4o+C4seC4muC4geC4o+C4sOC5gOC4geC4o+C4teC4ouC4mgor4LiB4Lij4Liw4LiB4Lij4Li14LmK4LiUCivguIHguKPguLDguIHguKPguLjguYjguJkKK+C4geC4o+C4sOC4geC4peC4seC4muC4geC4peC4reC4gQor4LiB4Lij4Liw4LiB4Lin4LiUCivguIHguKPguLDguIHguK3guIcKK+C4geC4o+C4sOC4geC4seC4lAor4LiB4Lij4Liw4LiB4Li14LmJCivguIHguKPguLDguIHguLnguKUKK+C4geC4o+C4sOC5gOC4geC4o+C4reC4gQor4LiB4Lij4Liw4LmA4LiB4Lij4Li04LiBCivguIHguKPguLDguYDguIHguKPguLTguYjguJkKK+C4geC4o+C4sOC5gOC4geC4o+C4teC4ouC4mgor4LiB4Lij4Liw4LmA4LiB4Lij4Li14Lii4LihCivguIHguKPguLDguYDguIHguKPguLXguKLguKcKK+C4geC4o+C4sOC5gOC4geC4o+C4teC5ieC4ouC4pwor4LiB4Lij4Liw4LmA4LiB4Lil4Li34Lit4LiBCivguIHguKPguLDguITguJkKK+C4geC4o+C4sOC4hOC4suC4ogor4LiB4Lij4Liw4LiE4Li44LiBCivguIHguKPguLDguIfguIHguIHguKPguLDguIfguLHguJkKK+C4geC4o+C4sOC4h+C4geC4geC4o+C4sOC5gOC4h+C4tOC5iOC4mQor4LiB4Lij4Liw4LiH4LmI4Lit4LiH4LiB4Lij4Liw4LmB4LiH4LmI4LiHCivguIHguKPguLDguIfguK3guJQKK+C4geC4o+C4sOC4h+C5iOC4reC4meC4geC4o+C4sOC5geC4h+C5iOC4mQor4LiB4Lij4Liw4LmC4LiH4LiBCivguIHguKPguLDguIjguIEKK+C4geC4o+C4sOC4iOC4hwor4LiB4Lij4Liw4LiI4LijCivguIHguKPguLDguIjguK3guIEKK+C4geC4o+C4sOC4iOC4reC4h+C4q+C4h+C5iOC4reC4hwor4LiB4Lij4Liw4LiI4Lit4LiH4Lit4LmB4LiHCivguIHguKPguLDguIjguYnguK3guJkKK+C4geC4o+C4sOC4iOC4reC4meC4q+C4uQor4LiB4Lij4Liw4LiI4LmJ4Lit4LiiCivguIHguKPguLDguIjguYvguK3guKvguKfguK0KK+C4geC4o+C4sOC4iOC4sAor4LiB4Lij4Liw4LiI4Lix4LiBCivguIHguKPguLDguIjguLHguIcKK+C4geC4o+C4sOC4iOC4seC4h+C4q+C4peC4seC4h+C5gOC4muC4teC5ieC4ogor4LiB4Lij4Liw4LiI4Lix4LiUCivguIHguKPguLDguIjguLHguJoKK+C4geC4o+C4sOC4iOC4seC4muC4m+C4tOC5ieC4hwor4LiB4Lij4Liw4LiI4Lix4Lia4Lib4Li14LmICivguIHguKPguLDguIjguYjguLIKK+C4geC4o+C4sOC4iOC5iOC4suC4hwor4LiB4Lij4Liw4LiI4Liy4LiUCivguIHguKPguLDguIjguLLguJkKK+C4geC4o+C4sOC4iOC4suC4mgor4LiB4Lij4Liw4LiI4Liy4LihCivguIHguKPguLDguIjguLLguKIKK+C4geC4o+C4sOC4iOC4suC4pwor4LiB4Lij4Liw4LiI4Li04LiBCivguIHguKPguLDguIjguLTguYvguIcKK+C4geC4o+C4sOC4iOC4tOC4lAor4LiB4Lij4Liw4LiI4Li04LiaCivguIHguKPguLDguIjguLTguYvguKEKK+C4geC4o+C4sOC4iOC4tOC4o+C4tOC4lAor4LiB4Lij4Liw4LiI4Li04LmL4LinCivguIHguKPguLDguIjguLXguYkKK+C4geC4o+C4sOC4iOC4teC5iwor4LiB4Lij4Liw4LiI4Li44LiBCivguIHguKPguLDguIjguLjguYvguIfguIHguKPguLDguIjguLTguYvguIcKK+C4geC4o+C4sOC4iOC4uOC4mgor4LiB4Lij4Liw4LiI4Li44LmK4LiaCivguIHguKPguLDguIjguLjguJrguIHguKPguLDguIjguLTguJoKK+C4geC4o+C4sOC4iOC4uOC5i+C4oeC4geC4o+C4sOC4iOC4tOC5i+C4oQor4LiB4Lij4Liw4LiI4Li44LiiCivguIHguKPguLDguIjguLnguYkKK+C4geC4o+C4sOC4iOC4ueC5i+C4geC4o+C4sOC4iOC4teC5iwor4LiB4Lij4Liw4LiI4Li54LiUCivguIHguKPguLDguYDguIjguK3guLDguIHguKPguLDguYDguIjguLTguIcKK+C4geC4o+C4sOC5gOC4iOC4sgor4LiB4Lij4Liw4LmA4LiI4LmI4LiyCivguIHguKPguLDguYDguIjguYnguLIKK+C4geC4o+C4sOC5gOC4iOC4suC4sAor4LiB4Lij4Liw4LmA4LiI4Li04LiHCivguIHguKPguLDguYDguIjguLTguJTguIHguKPguLDguYDguIjguLTguIcKK+C4geC4o+C4sOC5gOC4iOC4teC5ieC4ouC4hwor4LiB4Lij4Liw4LmA4LiI4Li14LmK4Lii4LiaCivguIHguKPguLDguYDguIjguLXguKLguKcKK+C4geC4o+C4sOC5gOC4iOC4teC5iuC4ouC4pwor4LiB4Lij4Liw4LmB4LiI4LiwCivguIHguKPguLDguYLguIjguJkKK+C4geC4o+C4sOC5guC4iOC4oQor4LiB4Lij4Liw4LiJ4LiHCivguIHguKPguLDguInguK3guIEKK+C4geC4o+C4sOC4ieC5iOC4reC4mQor4LiB4Lij4Liw4LiJ4Lix4Lia4LiB4Lij4Liw4LmA4LiJ4LiHCivguIHguKPguLDguInguLTguYjguIcKK+C4geC4o+C4sOC4ieC4teC4gQor4LiB4Lij4Liw4LiJ4Li44LiBCivguIHguKPguLDguInguLnguJQKK+C4geC4o+C4sOC5gOC4ieC4gQor4LiB4Lij4Liw4LmA4LiJ4LiHCivguIHguKPguLDguYDguInguJQKK+C4geC4o+C4sOC5geC4ieC4gQor4LiB4Lij4Liw4LmB4LiJ4LmI4LiZCivguIHguKPguLDguYLguInguIHguIHguKPguLDguYDguInguIEKK+C4geC4o+C4sOC5guC4ieC4oQor4LiB4Lij4Liw4LiK4LiHCivguIHguKPguLDguIrguJTguIHguKPguLDguIrguYnguK3guKIKK+C4geC4o+C4sOC4iuC4p+C4ogor4LiB4Lij4Liw4LiK4Lit4LiBCivguIHguKPguLDguIrguK3guJkKK+C4geC4o+C4sOC4iuC4reC4oQor4LiB4Lij4Liw4LiK4Lit4Lih4LiU4Lit4LiBCivguIHguKPguLDguIrguYnguK3guKIKK+C4geC4o+C4sOC4iuC5ieC4reC4ouC4meC4suC4h+C4o+C4swor4LiB4Lij4Liw4LiK4Lix4LiHCivguIHguKPguLDguIrguLHguYnguJkKK+C4geC4o+C4sOC4iuC4seC4mgor4LiB4Lij4Liw4LiK4Liy4LiBCivguIHguKPguLDguIrguYjguLLguIcKK+C4geC4o+C4sOC4iuC4suC5gOC4lOC4tOC4oQor4LiB4Lij4Liw4LiK4Liy4LiiCivguIHguKPguLDguIrguLTguIcKK+C4geC4o+C4sOC4iuC4tOC4lAor4LiB4Lij4Liw4LiK4Li4CivguIHguKPguLDguIrguLjguIEKK+C4geC4o+C4sOC4iuC4uOC5iOC4oeC4geC4o+C4sOC4iuC4p+C4ogor4LiB4Lij4Liw4LmA4LiK4LitCivguIHguKPguLDguYDguIrguLIKK+C4geC4o+C4sOC5gOC4iuC5ieC4sgor4LiB4Lij4Liw4LmA4LiK4Li14Lii4LiHCivguIHguKPguLDguYHguIrguIcKK+C4geC4o+C4sOC5geC4iuC4sAor4LiB4Lij4Liw4LmC4LiK4LiBCivguIHguKPguLDguIvguKfguKIKK+C4geC4o+C4sOC4i+C5ieC4rQor4LiB4Lij4Liw4LiL4LmI4Lit4LiH4LiB4Lij4Liw4LmB4LiL4LmI4LiHCivguIHguKPguLDguIvguLHguJoKK+C4geC4o+C4sOC4i+C4seC4muC4m+C4suC4geC5gOC4o+C4t+C4rQor4LiB4Lij4Liw4LiL4LmI4Liy4LiHCivguIHguKPguLDguIvguLLguJoKK+C4geC4o+C4sOC4i+C4tOC4gQor4LiB4Lij4Liw4LiL4Li04LiaCivguIHguKPguLDguIvguLXguYkKK+C4geC4o+C4sOC4i+C4teC5ieC4geC4o+C4sOC4i+C5ieC4rQor4LiB4Lij4Liw4LiL4Li44LiHCivguIHguKPguLDguIvguLjguJrguIHguKPguLDguIvguLTguJoKK+C4geC4o+C4sOC4i+C4uOC5ieC4oQor4LiB4Lij4Liw4LiL4Li54LmICivguIHguKPguLDguYDguIsKK+C4geC4o+C4sOC5gOC4i+C5h+C4mQor4LiB4Lij4Liw4LmA4LiL4LitCivguIHguKPguLDguYDguIvguK3guLDguIHguKPguLDguYDguIvguK0KK+C4geC4o+C4sOC5gOC4i+C4reC4sOC4geC4o+C4sOC5gOC4i+C4tOC4hwor4LiB4Lij4Liw4LmA4LiL4LmJ4LiyCivguIHguKPguLDguYDguIvguLTguIcKK+C4geC4o+C4sOC5geC4iwor4LiB4Lij4Liw4LmB4LiL4LiwCivguIHguKPguLDguYLguIvguIHguKPguLDguYDguIsKK+C4geC4o+C4sOC4juC4tQor4LiB4Lij4Liw4LiO4Li44Lih4Lie4Li1CivguIHguKPguLDguJTguIEKK+C4geC4o+C4sOC4lOC5ieC4hwor4LiB4Lij4Liw4LiU4LiZ4LmC4LiU4LmICivguIHguKPguLDguJTguKfguIcKK+C4geC4o+C4sOC4lOC4p+C4mQor4LiB4Lij4Liw4LiU4LmJ4Lin4Lih4LiB4Lij4Liw4LmA4LiU4Li14LmJ4Lii4LihCivguIHguKPguLDguJTguK0KK+C4geC4o+C4sOC4lOC4reC4hwor4LiB4Lij4Liw4LiU4Lit4LiH4Lir4Liy4LiiCivguIHguKPguLDguJTguK3guJkKK+C4geC4o+C4sOC4lOC4reC4oQor4LiB4Lij4Liw4LiU4Lix4LiB4LiB4Lij4Liw4LmA4LiU4Li14LmJ4LiiCivguIHguKPguLDguJTguLHguIfguIfguLHguKcKK+C4geC4o+C4sOC4lOC4seC4h+C4h+C4sgor4LiB4Lij4Liw4LiU4Liy4LiBCivguIHguKPguLDguJTguYnguLLguIcKK+C4geC4o+C4sOC4lOC4suC4h+C4peC4suC4hwor4LiB4Lij4Liw4LiU4Liy4LiUCivguIHguKPguLDguJTguLLguJTguILguLLguKcKK+C4geC4o+C4sOC4lOC4suC4mQor4LiB4Lij4Liw4LiU4Liy4LipCivguIHguKPguLDguJTguLLguKnguYDguJfguKgKK+C4geC4o+C4sOC4lOC4s+C4geC4o+C4sOC4lOC5iOC4suC4hwor4LiB4Lij4Liw4LiU4Li04LiBCivguIHguKPguLDguJTguLTguYjguIcKK+C4geC4o+C4sOC4lOC4tOC5ieC4hwor4LiB4Lij4Liw4LiU4Li04LmI4LiH4LiX4Lit4LiHCivguIHguKPguLDguJTguLTguJrguYYKK+C4geC4o+C4sOC4lOC4teC5iAor4LiB4Lij4Liw4LiU4Li14LmJ4LiB4Lij4Liw4LmA4LiU4Li14Lii4LihCivguIHguKPguLDguJTguLXguYjguKvguKHguYnguK0KK+C4geC4o+C4sOC4lOC4tuC4hwor4LiB4Lij4Liw4LiU4Li34LiaCivguIHguKPguLDguJTguLgKK+C4geC4o+C4sOC4lOC4uOC4geC4geC4o+C4sOC4lOC4tOC4gQor4LiB4Lij4Liw4LiU4Li44LmJ4LiH4LiB4Lij4Liw4LiU4Li04LmJ4LiHCivguIHguKPguLDguJTguLjguJrguYYKK+C4geC4o+C4sOC4lOC4uOC4muC4geC4o+C4sOC4lOC4tOC4mgor4LiB4Lij4Liw4LiU4Li44LihCivguIHguKPguLDguJTguLnguIEKK+C4geC4o+C4sOC5gOC4lOC5ieC4hwor4LiB4Lij4Liw4LmA4LiU4LmH4LiZCivguIHguKPguLDguYDguJTguYnguLIKK+C4geC4o+C4sOC5gOC4lOC4suC4sAor4LiB4Lij4Liw4LmA4LiU4Li04LiUCivguIHguKPguLDguYDguJTguLXguYnguKIKK+C4geC4o+C4sOC5gOC4lOC4teC4ouC4lAor4LiB4Lij4Liw4LmA4LiU4Li14Lii4LihCivguIHguKPguLDguYDguJTguLXguYnguKLguKEKK+C4geC4o+C4sOC5gOC4lOC4t+C4reC4gQor4LiB4Lij4Liw4LmA4LiU4Li34LmI4Lit4LiHCivguIHguKPguLDguYHguJTguYfguIHguYYKK+C4geC4o+C4sOC5geC4lOC5ieC4hwor4LiB4Lij4Liw4LmB4LiU4LmJ4LmB4Lij4LmICivguIHguKPguLDguYHguJTguYjguKfguYYKK+C4geC4o+C4sOC5geC4lOC4sAor4LiB4Lij4Liw4LmC4LiU4LiBCivguIHguKPguLDguYLguJTguIcKK+C4geC4o+C4sOC5guC4lOC4h+C5geC4lOC4hwor4LiB4Lij4Liw4LmC4LiU4LiUCivguIHguKPguLDguYLguJTguJkKK+C4geC4o+C4sOC5g+C4lAor4LiB4Lij4Liw4LmE4LiUCivguIHguKPguLDguJXguKPguIHguIHguKPguLDguJXguKPguLMKK+C4geC4o+C4sOC4leC4o+C5ieC4rQor4LiB4Lij4Liw4LiV4Lij4Lix4LiaCivguIHguKPguLDguJXguKPguLLguIEKK+C4geC4o+C4sOC4leC4o+C4swor4LiB4Lij4Liw4LiV4Lij4Li44LiUCivguIHguKPguLDguJXguKPguLjguKEKK+C4geC4o+C4sOC4leC5ieC4p+C4oeC4geC4o+C4sOC5gOC4leC4teC5ieC4ouC4oQor4LiB4Lij4Liw4LiV4LmJ4LitCivguIHguKPguLDguJXguYjguK3guIfguIHguKPguLDguYHguJXguYjguIcKK+C4geC4o+C4sOC4leC5iuC4reC4mgor4LiB4Lij4Liw4LiV4LmI4Lit4LihIHsg4LiB4Li64Lij4Liw4LiV4LmI4Lit4LihIH0KK+C4geC4o+C4sOC4leC5ieC4reC4ouC4leC4teC4p+C4tOC4lAor4LiB4Lij4Liw4LiV4Lix4LiBCivguIHguKPguLDguJXguLHguYnguKcKK+C4geC4o+C4sOC4leC4suC4gQor4LiB4Lij4Liw4LiV4LmK4Liy4LiBCivguIHguKPguLDguJXguYjguLLguKIKK+C4geC4o+C4sOC4leC4tOC4gQor4LiB4Lij4Liw4LiV4Li04LmJ4LiHCivguIHguKPguLDguJXguLTguYrguJQKK+C4geC4o+C4sOC4leC4tOC4mgor4LiB4Lij4Liw4LiV4Li34Lit4Lij4Li34Lit4Lij4LmJ4LiZCivguIHguKPguLDguJXguLjguIEKK+C4geC4o+C4sOC4leC4uOC4geC4geC4o+C4sOC4leC4tOC4gQor4LiB4Lij4Liw4LiV4Li44LmJ4LiH4LiB4Lij4Liw4LiV4Li04LmJ4LiHCivguIHguKPguLDguJXguLjguYjguJkKK+C4geC4o+C4sOC4leC4uOC5ieC4mQor4LiB4Lij4Liw4LiV4Li54LiaCivguIHguKPguLDguYDguJXguIcKK+C4geC4o+C4sOC5gOC4leC5h+C4mQor4LiB4Lij4Liw4LmA4LiV4Lit4LiwCivguIHguKPguLDguYDguJXguYjguLIKK+C4geC4o+C4sOC5gOC4leC4suC4sAor4LiB4Lij4Liw4LmA4LiV4Liy4Liw4LiB4Lij4Liw4LmB4LiV4LiwCivguIHguKPguLDguYDguJXguLXguYnguKLguKEKK+C4geC4o+C4sOC5gOC4leC4t+C5ieC4reC4hwor4LiB4Lij4Liw4LmB4LiVCivguIHguKPguLDguYHguJXguYjguIcKK+C4geC4o+C4sOC5geC4leC5geC4leC5ieC5geC4p+C5ieC4lAor4LiB4Lij4Liw4LmB4LiV4Lin4Lix4LiaCivguIHguKPguLDguYHguJXguLAKK+C4geC4o+C4sOC5guC4leC4geC4geC4o+C4sOC4leC4suC4gQor4LiB4Lij4Liw4LmC4LiV4LiZCivguIHguKPguLDguYTguJXguKMKK+C4geC4o+C4sOC4luC4lAor4LiB4Lij4Liw4LiW4Lit4LiaCivguIHguKPguLDguJbguLHguYjguKcKK+C4geC4o+C4sOC4luC4suC4hwor4LiB4Lij4Liw4LiW4Li04LiBCivguIHguKPguLDguJbguLTguJkKK+C4geC4o+C4sOC4luC4tuC4gQor4LiB4Lij4Liw4LmA4LiW4Li04LiaCivguIHguKPguLDguYLguJbguJkKK+C4geC4o+C4sOC4l+C4gQor4LiB4Lij4Liw4LiX4LiHCivguIHguKPguLDguJfguIfguKXguLLguKIKK+C4geC4o+C4sOC4l+C4lAor4LiB4Lij4Liw4LiX4LiaCivguIHguKPguLDguJfguKPguKfguIcKK+C4geC4o+C4sOC4l+C4p+C4oiB7IOC4geC4uuC4o+C4sOC4l+C4p+C4oiB9CivguIHguKPguLDguJfguK3guIEKK+C4geC4o+C4sOC4l+C5ieC4reC4mQor4LiB4Lij4Liw4LiX4LmI4Lit4LiZ4LiB4Lij4Liw4LmB4LiX4LmI4LiZCivguIHguKPguLDguJfguYjguK3guKEKK+C4geC4o+C4sOC4l+C5ieC4reC4oeC4geC4o+C4sOC5geC4l+C5ieC4oQor4LiB4Lij4Liw4LiX4LiwCivguIHguKPguLDguJfguLHguYjguIcKK+C4geC4o+C4sOC4l+C4seC5iOC4h+C4leC4tOC4lAor4LiB4Lij4Liw4LiX4Lix4LiZCivguIHguKPguLDguJfguLHguYnguJkKK+C4geC4o+C4sOC4l+C4sgor4LiB4Lij4Liw4LiX4Liy4LiK4Liy4LiiCivguIHguKPguLDguJfguLLguKIKK+C4geC4o+C4sOC4l+C4suC4ouC5gOC4q+C4tOC4mQor4LiB4Lij4Liw4LiX4Liy4Liq4Li1CivguIHguKPguLDguJfguLLguKvguK3guIcKK+C4geC4o+C4sOC4l+C4swor4LiB4Lij4Liw4LiX4Li04LiB4LiB4Lij4Liw4LiX4Lin4LiiCivguIHguKPguLDguJfguLTguIcKK+C4geC4o+C4sOC4l+C4tuC4hwor4LiB4Lij4Liw4LiX4Li34LiaCivguIHguKPguLDguJfguLgKK+C4geC4o+C4sOC4l+C4uOC4hwor4LiB4Lij4Liw4LiX4Li44LmJ4LiHCivguIHguKPguLDguJfguLjguIfguKXguLLguKIKK+C4geC4o+C4sOC4l+C4uOC4h+C4q+C4oeC4suC4muC5ieC4sgor4LiB4Lij4Liw4LiX4Li44LiH4LmA4Lir4LinCivguIHguKPguLDguJfguLjguYjguKEKK+C4geC4o+C4sOC4l+C4uOC5iOC4oeC4guC4teC5ieC4q+C4oeC4uQor4LiB4Lij4Liw4LiX4Li44LmI4Lih4LiZ4LiyCivguIHguKPguLDguJfguLjguYjguKHguKvguKHguLkKK+C4geC4o+C4sOC4l+C4ueC5iQor4LiB4Lij4Liw4LmA4LiX4LmICivguIHguKPguLDguYDguJfguLXguKLguJoKK+C4geC4o+C4sOC5gOC4l+C4teC4ouC4oQor4LiB4Lij4Liw4LmA4LiX4Li34Lit4LiZCivguIHguKPguLDguYDguJfguLfguYnguK3guKEKK+C4geC4o+C4sOC5geC4l+C4gQor4LiB4Lij4Liw4LmB4LiX4LmI4LiZCivguIHguKPguLDguYHguJfguYnguKEKK+C4geC4o+C4sOC5geC4l+C4sAor4LiB4Lij4Liw4LmE4LiX4LiK4Liy4LiiCivguIHguKPguLDguJnguIEKK+C4geC4o+C4sOC4meC5iOC4reC4hwor4LiB4Lij4Liw4LiZ4Lix4LmJ4LiZCivguIHguKPguLDguJnguLXguYkKK+C4geC4o+C4sOC5guC4meC5ieC4mQor4LiB4Lij4Liw4LmE4LiZCivguIHguKPguLDguJrguIEKK+C4geC4o+C4sOC4muC4geC4hOC4suC4ogor4LiB4Lij4Liw4Lia4LiWCivguIHguKPguLDguJrguKfguJkKK+C4geC4o+C4sOC4muC4p+C4ogor4LiB4Lij4Liw4Lia4Lin4LijCivguIHguKPguLDguJrguK3guIEKK+C4geC4o+C4sOC4muC4reC4geC5gOC4quC4teC4ouC4hwor4LiB4Lij4Liw4Lia4Lit4LiHCivguIHguKPguLDguJrguK3guIfguIHguLHguJkKK+C4geC4o+C4sOC4muC4reC4h+C5gOC4nuC4iuC4owor4LiB4Lij4Liw4Lia4Lit4LiH4Lij4Liy4Lir4Li5CivguIHguKPguLDguJrguLAKK+C4geC4o+C4sOC4muC4seC4lAor4LiB4Lij4Liw4Lia4Lix4LmJ4Lin4LiB4Lij4Liw4LmA4Lia4Li14LmJ4LiiCivguIHguKPguLDguJrguYjguLIKK+C4geC4o+C4sOC4muC5ieC4sgor4LiB4Lij4Liw4Lia4Liy4LiBCivguIHguKPguLDguJrguLLguKIKK+C4geC4o+C4sOC4muC4suC4pSB7IOC4geC4uuC4o+C4sOC4muC4suC4mSB9CivguIHguKPguLDguJrguLQKK+C4geC4o+C4sOC4muC4tOC5ieC4hwor4LiB4Lij4Liw4Lia4Li04LiUCivguIHguKPguLDguJrguLTguKUKK+C4geC4o+C4sOC4muC4teC5iAor4LiB4Lij4Liw4Lia4Li34LitCivguIHguKPguLDguJrguLjguIcKK+C4geC4o+C4sOC4muC4uOC4oQor4LiB4Lij4Liw4Lia4Li44LmI4Lih4LiB4Lij4Liw4Lia4LmI4Liy4LihCivguIHguKPguLDguJrguLnguYnguIHguKPguLDguJrguLXguYkKK+C4geC4o+C4sOC4muC4ueC4mQor4LiB4Lij4Liw4Lia4Li54LijCivguIHguKPguLDguYDguJrguIcKK+C4geC4o+C4sOC5gOC4muC4jQor4LiB4Lij4Liw4LmA4Lia4LmH4LiU4LiB4Lij4Liw4Lia4Lin4LiZCivguIHguKPguLDguYDguJrguJkKK+C4geC4o+C4sOC5gOC4muC4sgor4LiB4Lij4Liw4LmA4Lia4Li04LiBCivguIHguKPguLDguYDguJrguLXguYnguKIKK+C4geC4o+C4sOC5gOC4muC4teC4ouC4lAor4LiB4Lij4Liw4LmA4Lia4Li14Lii4LiZCivguIHguKPguLDguYDguJrguLfguYnguK3guIcKK+C4geC4o+C4sOC5gOC4muC4t+C5ieC4reC4h+C4luC5ieC4p+C4ogor4LiB4Lij4Liw4LmB4Lia4LmICivguIHguKPguLDguYHguJrguIEKK+C4geC4o+C4sOC5geC4muC4geC4h+C4sgor4LiB4Lij4Liw4LmB4Lia4LiwCivguIHguKPguLDguYLguJrguKEKK+C4geC4o+C4sOC4m+C4oeC4geC4o+C4sOC4m+C4swor4LiB4Lij4Liw4Lib4Lih4LiB4Lij4Liw4LmA4Lib4LiyCivguIHguKPguLDguJvguKPguK3guIEKK+C4geC4o+C4sOC4m+C4o+C4reC4geC4p+C5iOC4suC4pwor4LiB4Lij4Liw4Lib4Lij4Li14LmJ4LiB4Lij4Liw4LmA4Lib4Lij4LmI4LiyCivguIHguKPguLDguJvguK3guIEKK+C4geC4o+C4sOC4m+C5ieC4reC4geC4o+C4sOC5geC4m+C5iQor4LiB4Lij4Liw4Lib4LmI4Lit4LiHCivguIHguKPguLDguJvguYvguK3guIcKK+C4geC4o+C4sOC4m+C4reC4lOC4geC4o+C4sOC5geC4m+C4lAor4LiB4Lij4Liw4Lib4LmL4Lit4Lir4Lil4LitCivguIHguKPguLDguJvguLHguYnguKfguIHguKPguLDguYDguJvguLXguYnguKIKK+C4geC4o+C4sOC4m+C5iOC4swor4LiB4Lij4Liw4Lib4Li04LmI4LihCivguIHguKPguLDguJvguLjguIEKK+C4geC4o+C4sOC4m+C4uOC5iOC4oQor4LiB4Lij4Liw4Lib4Li44LmI4Lih4LiB4Lij4Liw4Lib4LmI4LizCivguIHguKPguLDguJvguLjguYjguKHguIHguKPguLDguJvguLTguYjguKEKK+C4geC4o+C4sOC5gOC4m+C4sgor4LiB4Lij4Liw4LmA4Lib4LmL4LiyCivguIHguKPguLDguYDguJvguLLguLAKK+C4geC4o+C4sOC5gOC4m+C4teC5ieC4oiB7IOC4geC4uuC4o+C4sOC5gOC4m+C4teC5ieC4oiB9CivguIHguKPguLDguYHguJvguYkKK+C4geC4o+C4sOC5geC4m+C4lAor4LiB4Lij4Liw4LmC4Lib4LiBCivguIHguKPguLDguYLguJvguKPguIcKK+C4geC4o+C4sOC5guC4m+C4o+C4h+C4l+C4reC4hwor4LiB4Lij4Liw4Lic4LihCivguIHguKPguLDguJzguKXguLLguKEKK+C4geC4o+C4sOC4nOC4peC4teC4geC4o+C4sOC4nOC4peC4suC4oQor4LiB4Lij4Liw4Lic4Liy4LiZCivguIHguKPguLDguJzguLXguIEKK+C4geC4o+C4sOC4nuC4o+C4p+C4mQor4LiB4Lij4Liw4Lie4Lij4Li04LmJ4LihCivguIHguKPguLDguJ7guK3guIEKK+C4geC4o+C4sOC4nuC4reC4geC4p+C4seC4pwor4LiB4Lij4Liw4Lie4Lit4LiHCivguIHguKPguLDguJ7guYnguK3guKEKK+C4geC4o+C4sOC4nuC4seC4gQor4LiB4Lij4Liw4Lie4Lix4LiHCivguIHguKPguLDguJ7guLHguIfguYDguKvguLTguKMKK+C4geC4o+C4sOC4nuC4seC4h+C5guC4q+C4oQor4LiB4Lij4Liw4Lie4Lix4LiUCivguIHguKPguLDguJ7guLHguJTguYHguKHguYjguKHguYjguLLguKIKK+C4geC4o+C4sOC4nuC4seC4leC4owor4LiB4Lij4Liw4Lie4Lix4LiZCivguIHguKPguLDguJ7guLHguYjguJkKK+C4geC4o+C4sOC4nuC4sgor4LiB4Lij4Liw4Lie4Liy4LiBIHsg4LiB4Li64Lij4Liw4Lie4Liy4LiBIH0KK+C4geC4o+C4sOC4nuC4teC5iQor4LiB4Lij4Liw4Lie4Li34LitCivguIHguKPguLDguJ7guLjguYnguIcKK+C4geC4o+C4sOC4nuC4uOC5iOC4oQor4LiB4Lij4Liw4LmA4Lie4Lil4Li04LioCivguIHguKPguLDguYDguJ7guLLguLAKK+C4geC4o+C4sOC5gOC4nuC4suC4sOC4m+C4peC4sgor4LiB4Lij4Liw4LmA4Lie4Li04LiHCivguIHguKPguLDguYDguJ7guLfguYjguK3guKEKK+C4geC4o+C4sOC5geC4nuC4hwor4LiB4Lij4Liw4LmB4Lie4LmJ4LiHCivguIHguKPguLDguJ/guLHguJTguIHguKPguLDguYDguJ/guLXguKLguJQKK+C4geC4o+C4sOC4n+C4suC4ogor4LiB4Lij4Liw4Lif4Li54Lih4LiB4Lij4Liw4Lif4Liy4LiiCivguIHguKPguLDguYDguJ/guLXguKLguJQKK+C4geC4o+C4sOC4oeC4pQor4LiB4Lij4Liw4Lih4Lit4LiaCivguIHguKPguLDguKHguK3guKHguIHguKPguLDguYHguKHguKEKK+C4geC4o+C4sOC4oeC4seC4hwor4LiB4Lij4Liw4Lih4Lix4LiZCivguIHguKPguLDguKHguLTguJTguIHguKPguLDguYDguKHguLXguYnguKLguJkKK+C4geC4o+C4sOC4oeC4tuC4mQor4LiB4Lij4Liw4Lih4Li44LiXCivguIHguKPguLDguYDguKHguLLguLAKK+C4geC4o+C4sOC5gOC4oeC4teC5ieC4ouC4mQor4LiB4Lij4Liw4LmB4Lih4LihCivguIHguKPguLDguKLguYjguK3guIcKK+C4geC4o+C4sOC4ouC5iOC4reC4h+C4geC4o+C4sOC5geC4ouC5iOC4hwor4LiB4Lij4Liw4Lii4LmI4Lit4LiZCivguIHguKPguLDguKLguYjguK3guKEKK+C4geC4o+C4sOC4ouC4sgor4LiB4Lij4Liw4Lii4Liy4LiHCivguIHguKPguLDguKLguLLguIjguIEKK+C4geC4o+C4sOC4ouC4suC4lAor4LiB4Lij4Liw4Lii4Liy4Lir4LiH4Lix4LiZCivguIHguKPguLDguKLguLTguIEKK+C4geC4o+C4sOC4ouC4tOC5ieC4oeC4geC4o+C4sOC4ouC5iOC4reC4hwor4LiB4Lij4Liw4Lii4Li24LiB4LiB4Lij4Liw4Lii4Li34LitCivguIHguKPguLDguKLguLbguJTguIHguKPguLDguKLguLLguJQKK+C4geC4o+C4sOC5gOC4ouC5ieC4reC4geC4o+C4sOC5geC4q+C4ouC5iOC4hwor4LiB4Lij4Liw4LmB4Lii4LmI4LiHCivguIHguKPguLDguKPguK3guIEKK+C4geC4o+C4sOC4o+C4reC4geC4meC5ieC4s+C4guC5ieC4suC4pwor4LiB4Lij4Liw4LmA4Lij4Li14Lii4LiZCivguIHguKPguLDguYLguKPguIHguJnguYnguLPguILguYnguLLguKcKK+C4geC4o+C4sOC5guC4o+C4geC5g+C4q+C4jeC5iAor4LiB4Lij4Liw4LmE4LijCivguIHguKPguLDguKXguJQKK+C4geC4o+C4sOC4peC4mgor4LiB4Lij4Liw4Lil4Lit4LiBCivguIHguKPguLDguKXguK3guKEKK+C4geC4o+C4sOC4peC4sOC4q+C4peC5iOC4swor4LiB4Lij4Liw4Lil4Lix4LiUCivguIHguKPguLDguKXguLHguJoKK+C4geC4o+C4sOC4peC4seC4oeC4nuC4owor4LiB4Lij4Liw4Lil4LiyCivguIHguKPguLDguKXguLLguIHguLLguKMKK+C4geC4o+C4sOC4peC4suC4ouC4geC4o+C4sOC4peC4reC4gQor4LiB4Lij4Liw4Lil4LizCivguIHguKPguLDguKXguLPguJ7guKMKK+C4geC4o+C4sOC4peC4s+C4nuC4seC4gQor4LiB4Lij4Liw4Lil4Liz4Lie4Li44LiBCivguIHguKPguLDguKXguLTguIcKK+C4geC4o+C4sOC4peC4tQor4LiB4Lij4Liw4Lil4Li24LiHCivguIHguKPguLDguKXguLjguKHguJ7guLLguIcKK+C4geC4o+C4sOC4peC4uOC4oeC4nuC4uOC4gQor4LiB4Lij4Liw4Lil4Li44Lih4Lie4Li5CivguIHguKPguLDguKXguLnguJkKK+C4geC4o+C4sOC4peC4ueC5iOC4meC5jAor4LiB4Lij4Liw4LmA4Lil4LmH4LiZCivguIHguKPguLDguYDguKXguLXguKLguJQKK+C4geC4o+C4sOC5gOC4peC4t+C4reC4gQor4LiB4Lij4Liw4LmC4Lil4LiHCivguIHguKPguLDguKfguJkKK+C4geC4o+C4sOC4p+C4seC4lAor4LiB4Lij4Liw4Lin4LmI4LiyCivguIHguKPguLDguKfguLLguJQKK+C4geC4o+C4sOC4p+C4suC4mQor4LiB4Lij4Liw4Lin4Liy4LiiCivguIHguKPguLDguKfguLTguJkKK+C4geC4o+C4sOC4p+C4tQor4LiB4Lij4Liw4Lin4Li14LiB4Lij4Liw4Lin4Liy4LiUCivguIHguKPguLDguKfguLnguJTguIHguKPguLDguKfguLLguJQKK+C4geC4o+C4sOC5gOC4p+C4mQor4LiB4Lij4Liw4LmA4Lin4Lii4LiB4Lij4Liw4Lin4Liy4LiiCivguIHguKPguLDguYHguKfguJkKK+C4geC4o+C4sOC5guC4p+C4ouC4geC4o+C4sOC4p+C4suC4ogor4LiB4Lij4Liw4Lio4LiBCivguIHguKPguLDguKjguLHguKIKK+C4geC4o+C4sOC4qeC4seC4leC4o+C4tOC4ouC5jAor4LiB4Lij4Liw4Lip4Lix4LiV4Lij4Li1CivguIHguKPguLDguKnguLHguKIKK+C4geC4o+C4sOC4qeC4suC4m+C4k+C5jAor4LiB4Lij4Liw4Lip4Li04LijCivguIHguKPguLDguYDguKnguKEKK+C4geC4o+C4sOC5gOC4qeC4teC4ouC4owor4LiB4Lij4Liw4Liq4LiHCivguIHguKPguLDguKrguJkKK+C4geC4o+C4sOC4quC4mgor4LiB4Lij4Liw4Liq4LihCivguIHguKPguLDguKrguKPguKfguKUKK+C4geC4o+C4sOC4quC4o+C5ieC4reC4ogor4LiB4Lij4Liw4Liq4Lin4LiZCivguIHguKPguLDguKrguKfguKIKK+C4geC4o+C4sOC4quC4reC4mgor4LiB4Lij4Liw4Liq4LiwCivguIHguKPguLDguKrguLHguIcKK+C4geC4o+C4sOC4quC4seC4mQor4LiB4Lij4Liw4Liq4Lix4Lia4LiB4Lij4Liw4Liq4LmI4Liy4LiiCivguIHguKPguLDguKrguLIKK+C4geC4o+C4sOC4quC4suC4meC4leC4tOC5jAor4LiB4Lij4Liw4Liq4Liy4LiaCivguIHguKPguLDguKrguLLguKIKK+C4geC4o+C4sOC4quC5iOC4suC4ogor4LiB4Lij4Liw4Liq4Li04LiZ4LiY4Li4CivguIHguKPguLDguKrguLfguK0KK+C4geC4o+C4sOC4quC4uOC4h+C4geC4o+C4sOC4quC4tOC4hwor4LiB4Lij4Liw4Liq4Li44LiZCivguIHguKPguLDguKrguLnguJfguJjguLTguYwKK+C4geC4o+C4sOC4quC4ueC4mgor4LiB4Lij4Liw4LmA4Liq4LiUCivguIHguKPguLDguYDguKrguYfguJnguIHguKPguLDguKrguLLguKIKK+C4geC4o+C4sOC5gOC4quC5iOC4sgor4LiB4Lij4Liw4LmA4Liq4Liy4Liw4LiB4Lij4Liw4LmB4Liq4LiwCivguIHguKPguLDguYDguKrguLXguKLguJkKK+C4geC4o+C4sOC5gOC4quC4teC4ouC4owor4LiB4Lij4Liw4LmA4Liq4Li34Lit4LiB4LiB4Lij4Liw4Liq4LiZCivguIHguKPguLDguYHguKoKK+C4geC4o+C4sOC5geC4quC4hwor4LiB4Lij4Liw4LmB4Liq4LiwIHsg4LiB4Li64Lij4Liw4LmB4Liq4LiwIH0KK+C4geC4o+C4sOC5guC4quC4hwor4LiB4Lij4Liw4LmE4LiqCivguIHguKPguLDguKvguIfguYjguK3guIcKK+C4geC4o+C4sOC4q+C4mQor4LiB4Lij4Liw4Lir4LiZ4LiBCivguIHguKPguLDguKvguJnguIHguIHguLTguJnguKPguLUKK+C4geC4o+C4sOC4q+C4meC4geC4meC4pOC4oeC4tOC4lQor4LiB4Lij4Liw4Lir4LiZ4LiB4LiZ4Liy4Lij4Li1CivguIHguKPguLDguKvguJnguYjguK3guIcKK+C4geC4o+C4sOC4q+C4meC4suC4gQor4LiB4Lij4Liw4Lir4LiZ4LmI4LizCivguIHguKPguLDguKvguKHguKfguJQKK+C4geC4o+C4sOC4q+C4oeC4reC4mgor4LiB4Lij4Liw4Lir4Lih4LmI4Lit4LihCivguIHguKPguLDguKvguKHguLHguYjguIcKK+C4geC4o+C4sOC4q+C4oeC5iOC4sgor4LiB4Lij4Liw4Lir4Lih4Li04LiUCivguIHguKPguLDguKvguKHguLTguJoKK+C4geC4o+C4sOC4q+C4oeC4uOC4lOC4geC4o+C4sOC4q+C4oeC4tOC4lAor4LiB4Lij4Liw4Lir4Lih4Li44LmI4LiZCivguIHguKPguLDguKvguKHguLjguJoKK+C4geC4o+C4sOC4q+C4ouC5iOC4hwor4LiB4Lij4Liw4Lir4Lii4LiUCivguIHguKPguLDguKvguKLguJoKK+C4geC4o+C4sOC4q+C4ouC5iOC4reC4mQor4LiB4Lij4Liw4Lir4Lii4LmI4Lit4LihCivguIHguKPguLDguKvguKLguLAKK+C4geC4o+C4sOC4q+C4ouC4seC4hwor4LiB4Lij4Liw4Lir4Lii4Lix4LiaCivguIHguKPguLDguKvguKLguLTguYjguKEKK+C4geC4o+C4sOC4q+C4o+C4reC4lAor4LiB4Lij4Liw4Lir4Lij4Li04LmI4LiHCivguIHguKPguLDguKvguKfguJkKK+C4geC4o+C4sOC4q+C4p+C4seC4lAor4LiB4Lij4Liw4Lir4Lin4Lix4LiU4LmA4LiB4Lil4LmJ4LiyCivguIHguKPguLDguKvguKfguYjguLIKK+C4geC4o+C4sOC4q+C4reC4hwor4LiB4Lij4Liw4Lir4Lix4LiHCivguIHguKPguLDguKvguLHguJQKK+C4geC4o+C4sOC4q+C4suC4hyB7IOC4geC4uuC4o+C4sOC4q+C4suC4hyB9CivguIHguKPguLDguKvguLLguKIKK+C4geC4o+C4sOC4q+C4tuC4oQor4LiB4Lij4Liw4Lir4Li24LmI4LihCivguIHguKPguLDguKvguLfguJTguIHguKPguLDguKvguK3guJoKK+C4geC4o+C4sOC5gOC4q+C5h+C4mQor4LiB4Lij4Liw4LmA4Lir4LiZ4LmH4LiICivguIHguKPguLDguYDguKvguJnguLXguKLguJQKK+C4geC4o+C4sOC5gOC4q+C4oeC5h+C4lOC4geC4o+C4sOC5gOC4q+C4oeC4teC4ouC4lAor4LiB4Lij4Liw4LmA4Lir4Lih4LmH4LiU4LiB4Lij4Liw4LmB4Lir4Lih4LmICivguIHguKPguLDguYDguKvguKHguYjguJkKK+C4geC4o+C4sOC5gOC4q+C4oeC5iOC4sgor4LiB4Lij4Liw4LmA4Lir4Lil4Li14Lii4LiBCivguIHguKPguLDguYDguKvguKfguYjguLIKK+C4geC4o+C4sOC5gOC4q+C5iOC4rQor4LiB4Lij4Liw4LmA4Lir4Li04LihCivguIHguKPguLDguYDguKvguLXguYnguKLguJnguIHguKPguLDguKvguLfguK3guKPguLfguK0KK+C4geC4o+C4sOC5geC4q+C4l+C4reC4hwor4LiB4Lij4Liw4LmB4Lir4LiZCivguIHguKPguLDguYHguKvguJnguYgKK+C4geC4o+C4sOC5geC4q+C4meC4mgor4LiB4Lij4Liw4LmB4Lir4LiZ4LiwCivguIHguKPguLDguYHguKvguKHguJoKK+C4geC4o+C4sOC5geC4q+C4oeC5iOC4pwor4LiB4Lij4Liw4LmB4Lir4Lii4LmI4LiHCivguIHguKPguLDguYHguKvguKPguYjguKEKK+C4geC4o+C4sOC5geC4q+C4peC5iOC4hwor4LiB4Lij4Liw4LmC4Lir4LmJCivguIHguKPguLDguYLguKvguJnguJQKK+C4geC4o+C4sOC5guC4q+C4oQor4LiB4Lij4Liw4LmC4Lir4LiiCivguIHguKPguLDguYLguKvguKLguYjguIcKK+C4geC4o+C4sOC4reC5iOC4p+C4mQor4LiB4Lij4Liw4Lit4Lin4LilCivguIHguKPguLDguK3guYnguK3guIHguKPguLDguYHguK3guYkKK+C4geC4o+C4sOC4reC4reC4lOC4geC4o+C4sOC5geC4reC4lAor4LiB4Lij4Liw4Lit4Lit4LiaCivguIHguKPguLDguK3guK3guKEKK+C4geC4o+C4sOC4reC5ieC4reC4oeC4geC4o+C4sOC5geC4reC5ieC4oQor4LiB4Lij4Liw4Lit4Lit4Lih4LiZ4LmJ4LizCivguIHguKPguLDguK3guLHguIEKK+C4geC4o+C4sOC4reC4seC4geC4geC4o+C4sOC4reC5iOC4p+C4mQor4LiB4Lij4Liw4Lit4Lix4LiB4LiB4Lij4Liw4LmE4LitCivguIHguKPguLDguK3guLHguYnguKfguYHguJfguIfguITguKfguLLguKIKK+C4geC4o+C4sOC4reC5ieC4sgor4LiB4Lij4Liw4Lit4Liy4LiZCivguIHguKPguLDguK3guLTguJQKK+C4geC4o+C4sOC4reC4tOC4lOC4geC4o+C4sOC5gOC4reC4t+C5ieC4reC4mQor4LiB4Lij4Liw4Lit4Li24LiBCivguIHguKPguLDguK3guLbguIHguIHguKPguLDguK3guLHguIEKK+C4geC4o+C4sOC4reC4tuC4lAor4LiB4Lij4Liw4Lit4Li34LiUCivguIHguKPguLDguK3guLgKK+C4geC4o+C4sOC4reC4uOC4gQor4LiB4Lij4Liw4LmA4Lit4LiaCivguIHguKPguLDguYDguK3guLIKK+C4geC4o+C4sOC5gOC4reC4tOC4gQor4LiB4Lij4Liw4LmA4Lit4Li04LiaCivguIHguKPguLDguYHguK3guYkKK+C4geC4o+C4sOC5geC4reC4gQor4LiB4Lij4Liw4LmB4Lit4LiUCivguIHguKPguLDguYHguK3guJoKK+C4geC4o+C4sOC5geC4reC4oQor4LiB4Lij4Liw4LmB4Lit4LmJ4LihCivguIHguKPguLDguYTguK0KK+C4geC4o+C4seC4gQor4LiB4Lij4Lix4LiB4LiC4Li1CivguIHguKPguLHguIcKK+C4geC4o+C4seC4iuC4geC4suC4ogor4LiB4Lij4Lix4LiT4LiR4LmMCivguIHguKPguLHguJPguKLguYwKK+C4geC4o+C4seC4mQor4LiB4Lij4Lix4LiaCivguIHguKPguLHguKEKK+C4geC4o+C4suC4gQor4LiB4Lij4Liy4LiHCivguIHguKPguYjguLLguIcKK+C4geC4o+C4suC4lAor4LiB4Lij4Liy4LiU4LmA4LiB4Lij4Li14LmJ4Lii4LinCivguIHguKPguLLguJTguKfguIcKK+C4geC4o+C4suC4mQor4LiB4Lij4LmJ4Liy4LiZCivguIHguKPguLLguJoKK+C4geC4o+C4suC4nwor4LiB4Lij4Liy4LihCivguIHguKPguLLguKHguJ7guKXguLkKK+C4geC4o+C4suC4ogor4LiB4Lij4LmI4Liy4LiiCivguIHguKPguLLguKUKK+C4geC4o+C4suC4pwor4LiB4Lij4LmJ4Liy4LinCivguIHguKPguLLguKfguJTguYjguLLguIcKK+C4geC4o+C4suC4p+C4o+C4ueC4lAor4LiB4Lij4Liy4Liq4Li04LiBCivguIHguKPguLMKK+C4geC4o+C5iOC4swor4LiB4Lij4LmI4Liz4LiB4Lij4Li44LmI4LiZCivguIHguKPguLTguIEKK+C4geC4o+C4tOC5iuC4gQor4LiB4Lij4Li04LiB4LiB4Lij4Li04LinCivguIHguKPguLTguIHguIHguKPguLUKK+C4geC4o+C4tOC5iOC4hwor4LiB4Lij4Li04LmK4LiHCivguIHguKPguLTguIfguIHguKPguLTguKcKK+C4geC4o+C4tOC5ieC4h+C4geC4o+C4tOC5ieC4pwor4LiB4Lij4Li04LiKCivguIHguKPguLTguJPguLUKK+C4geC4o+C4tOC4leC4ogor4LiB4Lij4Li04LiZCivguIHguKPguLTguJnguLUKK+C4geC4o+C4tOC4mgor4LiB4Lij4Li04LihCivguIHguKPguLTguYjguKEKK+C4geC4o+C4tOC4ouC4sgor4LiB4Lij4Li04LinCivguIHguKPguLTguYnguKcKK+C4geC4o+C4tQor4LiB4Lij4Li14LiR4LiyCivguIHguKPguLXguJQKK+C4geC4o+C4teC5iuC4lAor4LiB4Lij4Li14LiY4LiyCivguIHguKPguLXguKkKK+C4geC4o+C4teC4qgor4LiB4Lij4Li24LiHCivguIHguKPguLgKK+C4geC4o+C4uOC4gQor4LiB4Lij4Li44LiB4LiB4Lij4Li54LmKCivguIHguKPguLjguIcKK+C4geC4o+C4uOC5ieC4h+C4geC4o+C4tOC5iOC4hwor4LiB4Lij4Li44LiH4LmA4LiC4Lih4LiyCivguIHguKPguLjguIfguJ7guLLguKXguLUKK+C4geC4o+C4uOC4kwor4LiB4Lij4Li44LiT4LiyCivguIHguKPguLjguJkKK+C4geC4o+C4uOC5iOC4mQor4LiB4Lij4Li44LiaCivguIHguKPguLjguYjguKEKK+C4geC4o+C4uOC5ieC4oeC4geC4o+C4tOC5iOC4oQor4LiB4Lij4Li44LiiCivguIHguKPguLjguKLguYDguIHguKPguLXguKLguKcKK+C4geC4o+C4uQor4LiB4Lij4Li54LiUCivguIHguKPguLnguKEKK+C4geC5gOC4o+C4k+C4uAor4LiB4LmA4Lij4LiZ4LiX4LijCivguIHguYDguKPguJnguJfguKPguYwKK+C4geC4pOC4igor4LiB4Lik4LiU4Lii4Liy4LmA4LiB4Li14Lii4Lij4LiTCivguIHguKTguJTguLIKK+C4geC4pOC4lOC4suC4geC4suC4owor4LiB4Lik4LiU4Liy4Lit4Lix4LiN4LiK4Lil4Li1CivguIHguKTguJTguLQKK+C4geC4pOC4lOC4teC4geC4sgor4LiB4Lik4LiVCivguIHguKTguJXguIHguLIKK+C4geC4pOC4leC4ouC4juC4teC4geC4sgor4LiB4Lik4LiV4Li04LiB4LiyCivguIHguKTguKgKK+C4geC4pOC5guC4qOC4l+C4owor4LiB4Lik4Lip4LiO4LiyCivguIHguKTguKnguI7guLLguI0KK+C4geC4pOC4qeC4juC4suC4jeC4iuC4peC4tOC4lQor4LiB4Lik4Lip4LiO4Liy4LiN4LiK4Lil4Li1CivguIHguKTguKnguI7guLLguI3guIrguKfguKXguLTguJXguKfguLIKK+C4geC4pOC4qeC4juC4suC4jeC4iuC4p+C4peC4tOC4qAor4LiB4Lik4Lip4LiO4Liy4LiN4LiK4Lin4LmA4Lil4LioCivguIHguKTguKnguI7guLLguI3guIrguLjguKXguLUKK+C4geC4pOC4qeC4juC4suC4mOC4suC4owor4LiB4Lik4Lip4LiO4Li1CivguIHguKTguKnguI7guLXguIHguLIKK+C4geC4pOC4qeC4kwor4LiB4Lik4Lip4LiT4LiyCivguIHguKTguKnguLLguJMKK+C4geC4pOC4qeC4tAor4LiB4LilCivguIHguKXguJQKK+C4geC4peC5iOC4mQor4LiB4Lil4LiaCivguIHguKXguJrguJcKK+C4geC4peC4oQor4LiB4Lil4Lih4LigCivguIHguKXguYDguKHguYfguJQKK+C4geC4peC4ouC4uOC4l+C4mOC5jAor4LiB4Lil4Lil4LiwCivguIHguKXguKfguIcKK+C4geC4peC4p+C4oQor4LiB4Lil4LmJ4Lin4LiiCivguIHguKXguYnguKfguKLguJnguYnguK3guKIKK+C4geC4peC5ieC4p+C4ouC5hOC4oeC5iQor4LiB4Lil4LmJ4Lin4Lii4Lir4Lih4Li54Liq4Lix4LiHCivguIHguKXguKfguLTguJjguLUKK+C4geC4peC4qAor4LiB4Lil4Lio4Liy4Liq4LiV4Lij4LmMCivguIHguKXguKjguLbguIEKK+C4geC4peC4q+C4suC4ogor4LiB4Lil4LmA4Lir4LiiCivguIHguKXguYnguK0KK+C4geC4peC4reC4gQor4LiB4Lil4Lit4LiHCivguIHguKXguYjguK3guIcKK+C4geC4peC5ieC4reC4hwor4LiB4Lil4LmJ4Lit4LiH4LmB4LiB4Lil4LmJ4LiHCivguIHguKXguK3guJkKK+C4geC4peC5iOC4reC4mQor4LiB4Lil4LmJ4Lit4LiZCivguIHguKXguYjguK3guKEKK+C4geC4peC5ieC4reC4oeC5geC4geC4peC5ieC4oQor4LiB4Lil4Lit4LiiCivguIHguKXguLHguIEKK+C4geC4peC4seC4hwor4LiB4Lil4Lix4LiUCivguIHguKXguLHguYjguJkKK+C4geC4peC4seC5ieC4mQor4LiB4Lil4Lix4LiZ4LiXCivguIHguKXguLHguJnguJfguIHguYwKK+C4geC4peC4seC4meC4l+C4geC4meC4tOC4p+C4suC4m+C4quC4luC4suC4mQor4LiB4Lil4Lix4LiaCivguIHguKXguLHguKHguJ7guIEKK+C4geC4peC4seC4oeC4nuC4owor4LiB4Lil4Lix4Lih4Lie4Lix4LiBCivguIHguKXguLHguKcKK+C4geC4peC4seC5ieC4pwor4LiB4Lil4LiyCivguIHguKXguYjguLIKK+C4geC4peC5ieC4sgor4LiB4Lil4Liy4LiBCivguIHguKXguLLguIHguKXguLLguJQKK+C4geC4peC4suC4hwor4LiB4Lil4Liy4LmA4LiL4Li14Lii4Lij4LmMCivguIHguKXguLLguJQKK+C4geC4peC4suC4muC4suC4lQor4LiB4Lil4Liy4LibCivguIHguKXguYnguLLguKEKK+C4geC4peC4suC4ogor4LiB4Lil4LmJ4Liy4LiiCivguIHguKXguLLguKLguIHguKXguK3guIEKK+C4geC4peC5iOC4suC4pwor4LiB4Lil4Liy4LmC4Lir4LihCivguIHguKXguYjguLMKK+C4geC4peC5ieC4swor4LiB4Lil4Li0CivguIHguKXguLTguIHguLLguKUKK+C4geC4peC4tOC4geC4uOC4jeC4iOC4tOC4geC4sgor4LiB4Lil4Li04LmI4LiHCivguIHguKXguLTguYnguIcKK+C4geC4peC4tOC5ieC4h+C4geC4peC4suC4h+C4lOC4hwor4LiB4Lil4Li04LiH4LiE4LmMCivguIHguKXguLTguYjguJkKK+C4geC4peC4tOC4m+C4o+C4teC4ouC5jAor4LiB4Lil4Li04LmJ4LihCivguIHguKXguLTguKLguLjguIQKK+C4geC4peC4tQor4LiB4Lil4Li14LmICivguIHguKXguLXguYDguIvguK3guKPguLXguJkKK+C4geC4peC4teC4mgor4LiB4Lil4Li24LiHCivguIHguKXguLbguYnguIcKK+C4geC4peC4tuC4h+C4geC4peC5iOC4reC4oQor4LiB4Lil4Li24LiH4LiE4LmMCivguIHguKXguLfguJkKK+C4geC4peC4uOC5iOC4oQor4LiB4Lil4Li44LmJ4LihCivguIHguKXguLnguYgKK+C4geC4peC4ueC5guC4hOC4qgor4LiB4Lil4Li54LiZCivguIHguKXguLnguJnguYwKK+C4geC5gOC4peC4p+C4o+C4sAor4LiB4Lin4LiUCivguIHguKfguJkKK+C4geC5iuC4p+C4mQor4LiB4Lin4LiZ4Lit4Li04LihCivguIHguKfguKEKK+C4geC4p+C4ogor4LiB4Lin4Lii4LiI4Lix4LmK4LiaCivguIHguKfguKLguIjguLXguYoKK+C4geC5i+C4p+C4ouC5gOC4leC4teC5i+C4ouC4pwor4LiB4LmL4Lin4Lii4Liq4Lil4Liy4LiBCivguIHguKfguKzguLTguIfguIHguLLguKPguLLguKvguLLguKMKK+C4geC4p+C4sAor4LiB4Lin4Liw4LiB4Lin4Lix4LiBCivguIHguKfguLDguYHguIHguKfguYjguIcKK+C4geC4p+C4seC4gQor4LiB4Lin4Lix4LiUCivguIHguKfguLIKK+C4geC4p+C5iOC4sgor4LiB4Lin4LmJ4LiyCivguIHguKfguLLguIcKK+C4geC4p+C5iOC4suC4hwor4LiB4Lin4LmJ4Liy4LiHCivguIHguKfguLLguIfguYDguILguJkKK+C4geC4p+C4suC4h+C5guC4iOC4mQor4LiB4Lin4LmI4Liy4LiH4LiK4LiZCivguIHguKfguLLguIfguIrguLDguKHguJQKK+C4geC4p+C5iOC4suC4h+C5guC4i+C5ieC4hwor4LiB4Lin4Liy4LiH4LiV4Li44LmJ4LiHCivguIHguKfguLLguIfguJfguK3guIcKK+C4geC4p+C4suC4h+C4m+C5iOC4sgor4LiB4Lin4Liy4LiH4Lih4LmJ4LiyCivguIHguKfguLLguJQKK+C4geC4p+C4suC4mQor4LiB4Lin4LmI4Liy4LiZCivguIHguKfguYnguLLguJkKK+C4geC4p+C5iuC4suC4mQor4LiB4Lin4LmJ4Liy4LinCivguIHguKfguLLguKfguYDguITguKPguLfguK0KK+C4geC4p+C4tOC4mQor4LiB4Lin4Li1CivguIHguKnguJPguLAKK+C4geC4qeC4oeC4sgor4LiB4Lip4Lix4LiV4LijCivguIHguKnguLHguJXguKPguLIKK+C4geC4qeC4seC4leC4o+C4tOC4ouC5jAor4LiB4Lip4Lix4LiV4Lij4Li1CivguIHguKnguLHguJXguKPguLXguKLguYwKK+C4geC4qeC4seC4leC4o+C4teC4qOC4ueC4owor4LiB4Lip4Lix4LiiCivguIHguKnguLHguKLguIHguLLguKMKK+C4geC4qeC4suC4m+C4k+C5jAor4LiB4Lip4Liy4LiiCivguIHguKnguLTguJTguLQKK+C4geC4qeC4tOC4lOC4tOC4meC4l+C4owor4LiB4Lip4Li04LiU4Li04LiZ4LiX4Lij4LmMCivguIHguKnguLXguJPguLLguKjguKPguJ4KK+C4geC4qeC4teC4lOC4tAor4LiB4Lip4Li14LijCivguIHguKnguLXguKPguLLguKHguJ7guLgKK+C4geC4qeC4teC4o+C4suC4o+C4k+C4ngor4LiB4Lip4Li44LiY4LiyCivguIHguKnguLjguKPguLUKK+C4geC4quC4suC4meC4leC4tOC5jAor4LiB4Liq4Li0CivguIHguKrguLTguJMKK+C4geC4qwor4LiB4Lir4Lix4LiH4Lib4Liy4Lii4LiyCivguIHguKvguLLguJvguJPguLAKK+C4geC5gOC4rOC4p+C4o+C4suC4gQor4LiB4LitCivguIHguYjguK0KK+C4geC5ieC4rQor4LiB4LmK4LitCivguIHguK3guIEKK+C4geC5iuC4reC4gQor4LiB4Lit4LmB4LiBCivguIHguK3guIcKK+C4geC5iOC4reC4hwor4LiB4LmJ4Lit4LiHCivguIHguK3guIfguIHguK3guKIKK+C4geC4reC4iwor4LiB4Lit4LiUCivguIHguYjguK3guJkKK+C4geC5ieC4reC4mQor4LiB4Lit4LiaCivguIHguK3guJrguJnguLLguIcKK+C4geC5iuC4reC4muC4m+C4teC5iQor4LiB4Lit4Lib4LijCivguIHguYnguK3guKEKK+C4geC4reC4oeC4geC5ieC4rQor4LiB4LmI4Lit4Lih4LiB4LmJ4LitCivguIHguYnguK3guKHguIHguYnguK0KK+C4geC4reC4ogor4LiB4LmJ4Lit4LiiCivguIHguYvguK3guKIKK+C4geC4reC4o+C4tOC4peC4peC4sgor4LiB4Lit4Lil4LmM4LifCivguIHguK3guYHguKvguKXguLAKK+C4geC4reC5gOC4reC4teC5iuC4ouC4sAor4LiB4LiwCivguIHguLDguIHguKPguYjguK3guKEKK+C4geC4sOC4geC4o+C5ieC4suC4pwor4LiB4Liw4LiB4Lil4Li04LmJ4LiHCivguIHguLDguIHguYjguK3guIcKK+C4geC4sOC4geC4seC4hwor4LiB4Liw4LiB4Li24LiBCivguIHguLDguYDguIHguLLguLAKK+C4geC4sOC5guC4geC4o+C4sAor4LiB4Liw4LiH4LmJ4Lit4LiZ4LiB4Liw4LmB4LiH4LmJ4LiZCivguIHguLDguIjguLHguIcKK+C4geC4sOC4iOC4seC5iuC4pwor4LiB4Liw4LmB4LiI4LiwCivguIHguLDguIrguLAKK+C4geC4sOC4iuC4seC4hwor4LiB4Liw4LiK4Liy4Lih4Liy4LioCivguIHguLDguIrguLTguIcKK+C4geC4sOC4iuC4tuC5iOC4geC4geC4sOC4iuC4seC5iOC4gQor4LiB4Liw4LmB4LiK4LmICivguIHguLDguIvguKfguIEKK+C4geC4sOC4i+C5ieC4suC4q+C4reC4ogor4LiB4Liw4LiL4Li14LmICivguIHguLDguIvguLXguYkKK+C4geC4sOC5guC4i+C5iAor4LiB4Liw4LmC4LiL4LmJCivguIHguLDguJTguIEKK+C4geC4sOC4lOC4hwor4LiB4Liw4LiU4Lin4LiZCivguIHguLDguJTguK3guIHguYYKK+C4geC4sOC4lOC4sAor4LiB4Liw4LiU4Lix4LiH4Lia4Liy4LiiCivguIHguLDguJTguLHguJQKK+C4geC4sOC4lOC5ieC4suC4hwor4LiB4Liw4LiU4Liz4LiB4Liw4LiU4LmI4Liy4LiHCivguIHguLDguJTguLUKK+C4geC4sOC4lOC4teC5iAor4LiB4Liw4LiU4Li44LmJ4LiHCivguIHguLDguYDguJTguYkKK+C4geC4sOC5gOC4lOC4gQor4LiB4Liw4LmA4LiU4Li14LmL4Lii4LinCivguIHguLDguYTguJQKK+C4geC4sOC4leC4o+C4uOC4lAor4LiB4Liw4LiV4Lit4LiBCivguIHguLDguJXguYjguK3guKIKK+C4geC4sOC4leC4seC4gQor4LiB4Liw4LiV4Lix4LiHCivguIHguLDguJXguLHguIfguIHguLDguJXguLTguYnguKcKK+C4geC4sOC4leC4seC4h+C5g+C4mgor4LiB4Liw4LiV4LmI4LiyCivguIHguLDguJXguYrguLLguIEKK+C4geC4sOC4leC5ieC4swor4LiB4Liw4LiV4Li04LmK4LiB4Lij4Li04LiBCivguIHguLDguJXguLTguIfguIHguLDguYHguJXguIcKK+C4geC4sOC4leC4teC4mgor4LiB4Liw4LiV4Li24LiH4LiB4Liw4LmB4LiV4LiHCivguIHguLDguJXguLjguYrguIEKK+C4geC4sOC4leC4uOC4lAor4LiB4Liw4LiV4Li44Lih4Li5CivguIHguLDguJXguLnguIEKK+C4geC4sOC4leC4ueC5ieC4p+C4ueC5iQor4LiB4Liw4LmA4LiV4LiBCivguIHguLDguYDguJXguIfguYYKK+C4geC4sOC5gOC4leC4h+C5gOC4o+C4hwor4LiB4Liw4LmB4LiV4LinCivguIHguLDguYHguJXguYjguKcKK+C4geC4sOC5guC4leC5iuC4gQor4LiB4Liw4LmC4LiV4LiB4LiB4Liw4LiV4Liy4LiBCivguIHguLDguYLguJXguIfguIHguLDguYDguJXguIcKK+C4geC4sOC5guC4leC5ieC4h+C5guC4q+C5iOC4hwor4LiB4Liw4LiW4Lix4LinCivguIHguLDguJfguIHguKPguIEKK+C4geC4sOC4l+C4rQor4LiB4Liw4LiX4Lix4LiHCivguIHguLDguJfguLHguJTguKPguLHguJQKK+C4geC4sOC4l+C4seC4mQor4LiB4Liw4LiX4Lix4LiZ4Lir4Lix4LiZCivguIHguLDguJfguLHguJoKK+C4geC4sOC4l+C4swor4LiB4Liw4LiX4Li0CivguIHguLDguJfguLfguK0KK+C4geC4sOC4l+C4uOC4mQor4LiB4Liw4LiX4Li54LmJ4LmA4LiI4LmH4LiU4LiV4Lix4LinCivguIHguLDguYDguJfguKIKK+C4geC4sOC5gOC4l+C5iOC5gOC4o+C5iAor4LiB4Liw4LmA4LiX4Liy4LiwCivguIHguLDguYHguJfguYkKK+C4geC4sOC5geC4l+C5iOC4hwor4LiB4Liw4LmB4LiX4LiZCivguIHguLDguJnguKfguKUKK+C4geC4sOC4meC4seC4lAor4LiB4Liw4Lia4Lit4LiHCivguIHguLDguJrguK3guJnguIHguLDguJrguLbguIcKK+C4geC4sOC4muC5iOC4reC4meC4geC4sOC5geC4muC5iOC4mQor4LiB4Liw4Lia4Lix4LiHCivguIHguLDguJrguLHguYnguIcKK+C4geC4sOC4muC4seC4h+C4o+C4seC4h+C5gOC4neC4t+C4reC4gQor4LiB4Liw4Lia4Li0CivguIHguLDguJrguLTguYnguIcKK+C4geC4sOC4muC4tOC4pQor4LiB4Liw4Lia4Li24LiH4LiB4Liw4Lia4Lit4LiZCivguIHguLDguJrguLjguJQKK+C4geC4sOC5gOC4muC5ieC4rQor4LiB4Liw4LmA4Lia4Li14Lii4LiZCivguIHguLDguYDguJrguLfguK0KK+C4geC4sOC5geC4muC4hwor4LiB4Liw4Lib4Lij4Li04LiU4LiB4Liw4Lib4Lij4Lit4LiiCivguIHguLDguJvguKPguLTguJoKK+C4geC4sOC4m+C4peC4geC4geC4sOC5gOC4m+C4peC4teC5ieC4ogor4LiB4Liw4Lib4Lin4LiB4LiB4Liw4LmA4Lib4Li14Lii4LiBCivguIHguLDguJvguK3guKEKK+C4geC4sOC4m+C4reC4oeC4guC4suC4hwor4LiB4Liw4Lib4LiwCivguIHguLDguJvguLHguYjguJkKK+C4geC4sOC4m+C5ieC4s+C4geC4sOC5gOC4m+C5i+C4rQor4LiB4Liw4Lib4Li0CivguIHguLDguJvguLkKK+C4geC4sOC4m+C4ueC4lAor4LiB4Liw4Lib4Li54LiU4Lir4Lil4Li54LiUCivguIHguLDguYDguJvguLAKK+C4geC4sOC5gOC4m+C4sgor4LiB4Liw4LmA4Lib4Li04LmK4Lia4LiB4Liw4Lib4LmK4Liy4LiaCivguIHguLDguYDguJvguLXguKLguJQKK+C4geC4sOC5geC4m+C5ieC4mQor4LiB4Liw4LmB4Lib4LiwCivguIHguLDguYLguJvguKPguIcKK+C4geC4sOC5guC4m+C5guC4pQor4LiB4Liw4Lic4Lil4Li24LiB4LiB4Liw4Lic4Lil4Liy4LihCivguIHguLDguJzguKXguLjguJrguIHguLDguYLguJzguKXguYgKK+C4geC4sOC5gOC4nOC5iOC4mQor4LiB4Liw4LmA4Lic4Lil4LiBCivguIHguLDguYLguJzguKXguIHguIHguLDguYDguJzguKXguIEKK+C4geC4sOC4nuC4hwor4LiB4Liw4Lie4Lij4Lin4LiU4LiB4Liw4Lie4Lij4Liy4LiUCivguIHguLDguJ7guKPguYjguK3guIfguIHguLDguYHguJ7guKPguYjguIcKK+C4geC4sOC4nuC4o+C4tOC4mgor4LiB4Liw4Lie4Lij4Li44LiZCivguIHguLDguJ7guKPguLnguJTguIHguLDguJ7guKPguLLguJQKK+C4geC4sOC4nuC4peC5ieC4rQor4LiB4Liw4Lie4Lil4LmI4Lit4LiH4LiB4Liw4LmB4Lie4Lil4LmI4LiHCivguIHguLDguJ7guYnguK0KK+C4geC4sOC4nuC4reC4gQor4LiB4Liw4Lie4Lit4LiHCivguIHguLDguJ7guLHguIcKK+C4geC4sOC5gOC4nuC4o+C4sgor4LiB4Liw4LmA4Lie4Li14Lii4LiUCivguIHguLDguYDguJ7guLXguKLguJTguIrguYnguLLguIcKK+C4geC4sOC5gOC4nuC4teC4ouC4lOC4q+C4meC4uQor4LiB4Liw4Lih4Li04LiU4LiB4Liw4LmA4Lih4Li14LmJ4Lii4LiZCivguIHguLDguKHguLnguJXguLTguIcKK+C4geC4sOC5gOC4oeC5h+C4hwor4LiB4Liw4LmA4Lih4Li14LiiCivguIHguLDguKLguLLguKvguIfguLHguJkKK+C4geC4sOC4ouC4tuC4geC4geC4sOC4ouC4t+C4rQor4LiB4Liw4Lii4Li4CivguIHguLDguKPguYjguK3guIfguIHguLDguYHguKPguYjguIcKK+C4geC4sOC4o+C4sOC4leC4sAor4LiB4Liw4Lij4Liw4Lir4LiZ4LiwCivguIHguLDguKPguLHguIcKK+C4geC4sOC4o+C4seC4lQor4LiB4Liw4Lij4Liy4LiHCivguIHguLDguKPguLTguIcKK+C4geC4sOC4o+C4tOC4h+C4geC4sOC5gOC4o+C4teC4ouC4lAor4LiB4Liw4Lij4Li44LiH4LiB4Liw4Lij4Lix4LiHCivguIHguLDguKPguLjguYjguIfguIHguLDguKPguLTguYjguIcKK+C4geC4sOC4o+C4uOC4mQor4LiB4Liw4LmA4LijCivguIHguLDguYDguKPguIHguLDguKPguYjguK3guJkKK+C4geC4sOC5gOC4o+C5iOC4geC4sOC4o+C5iOC4reC4mQor4LiB4Liw4LmA4Lij4LmI4LitCivguIHguLDguYDguKPguLXguYjguKLguIHguLDguKPguLLguJQKK+C4geC4sOC5guC4o+C4geC4sOC5gOC4owor4LiB4Liw4Lil4Lin4LiiCivguIHguLDguKXguK0KK+C4geC4sOC4peC5iOC4reC4geC4sOC5geC4peC5iAor4LiB4Liw4Lil4Lit4LiI4Li14LmKCivguIHguLDguKXguYjguK3guJkKK+C4geC4sOC4peC5iOC4reC4oeC4geC4sOC5geC4peC5iOC4oQor4LiB4Liw4Lil4LmI4Lit4Lii4LiB4Liw4Lir4Lil4Li04LiaCivguIHguLDguKXguLDguJvguLHguIfguKvguLIKK+C4geC4sOC4peC4sOC4oeC4seC4hwor4LiB4Liw4Lil4Liw4LmB4LihCivguIHguLDguKXguLDguK3guK3guKEKK+C4geC4sOC4peC4seC4h+C4leC4seC4h+C5hOC4geC5iAor4LiB4Liw4Lil4Lix4LiZCivguIHguLDguKXguLHguJnguJfguLIKK+C4geC4sOC4peC4sgor4LiB4Liw4Lil4Liy4LiHCivguIHguLDguKXguLLguKrguLUKK+C4geC4sOC4peC4suC4q+C4meC4sgor4LiB4Liw4Lil4Liz4Lie4LitCivguIHguLDguKXguLPguJ7guLHguIEKK+C4geC4sOC4peC4s+C5gOC4nuC4suC4sAor4LiB4Liw4Lil4Li04LiHCivguIHguLDguKXguLTguYnguKHguIHguLDguYDguKvguKXguLXguYjguKIKK+C4geC4sOC4peC4tOC4reC5iOC4reC4hwor4LiB4Liw4Lil4Li44Lih4Lie4Li1CivguIHguLDguYDguKXguYfguIcKK+C4geC4sOC5gOC4peC5iOC4reC4geC4sOC4peC5iOC4sgor4LiB4Liw4LmA4Lil4Li04LiUCivguIHguLDguYDguKXguLXguKLguKcKK+C4geC4sOC5geC4pQor4LiB4Liw4LmC4Lil4LmICivguIHguLDguYLguKXguIcKK+C4geC4sOC4p+C4reC4geC4geC4sOC5geC4p+C4gQor4LiB4Liw4Lin4LiwCivguIHguLDguKrguYnguKHguIrguLfguYjguJkKK+C4geC4sOC4quC5ieC4suC4q+C4reC4ogor4LiB4Liw4Lir4LiZ4Lit4LiB4Liw4LmB4Lir4LiZCivguIHguLDguKvguJnguYfguK3guIfguIHguLDguYHguKvguJnguYfguIcKK+C4geC4sOC4q+C4meC4sAor4LiB4Liw4Lir4LiZ4Li44LiH4LiB4Liw4Lir4LiZ4Li04LiHCivguIHguLDguKvguKHguK3guIEKK+C4geC4sOC4q+C4o+C5iOC4reC4hwor4LiB4Liw4Lir4Lij4Lit4LiUCivguIHguLDguKvguKPguYfguK3guKHguIHguLDguYHguKvguKPguYfguKEKK+C4geC4sOC4q+C4o+C4seC4lOC4geC4sOC4leC4teC4geC4sgor4LiB4Liw4Lir4Lij4Lix4LiU4LiV4Liw4Lib4Liy4LiV4Li1CivguIHguLDguKvguKPguYjguLLguIcKK+C4geC4sOC4q+C4o+C4suC4mQor4LiB4Liw4Lir4Lij4Li04LmI4LiHCivguIHguLDguKvguKPguLXguYgKK+C4geC4sOC4q+C4o+C4teC5iOC4m+C4seC5iuC4mgor4LiB4Liw4Lir4Lil4Lix4Lia4LiB4Liw4LmA4Lir4Lil4Li34Lit4LiBCivguIHguLDguKvguKXguLLguJvguYvguLIKK+C4geC4sOC4q+C4peC5iOC4swor4LiB4Liw4Lir4Lil4Li14LmICivguIHguLDguKvguKXguLXguIHguLDguKvguKXguK0KK+C4geC4sOC4q+C4peC4uOC4geC4geC4sOC4q+C4peC4tOC4gQor4LiB4Liw4Lir4LizCivguIHguLDguKvguLbguKEKK+C4geC4sOC4q+C4t+C4lOC4geC4sOC4q+C4reC4mgor4LiB4Liw4Lir4Li34LitCivguIHguLDguKvguLnguJQKK+C4geC4sOC5gOC4q+C4meC5h+C4lAor4LiB4Liw4LmA4Lir4Lij4Li14LmI4Lii4LiHCivguIHguLDguYDguKvguKXguLLguLDguYDguJvguLLguLAKK+C4geC4sOC5gOC4q+C4p+C4teC4ouC4gQor4LiB4Liw4LmB4LirCivguIHguLDguYHguKvguJnguYgKK+C4geC4sOC5geC4q+C4meC4sAor4LiB4Liw4LmB4Lir4Lii4LiBCivguIHguLDguYHguKvguLAKK+C4geC4sOC5guC4q+C5iQor4LiB4Liw4LmC4Lir4Lil4LiBCivguIHguLDguYLguKvguKXguYnguIcKK+C4geC4sOC5hOC4q+C4peC5iAor4LiB4Liw4Lit4Lin4LihCivguIHguLDguK3guYnguK3guIHguLDguYHguK3guYkKK+C4geC4sOC4reC4reC4oQor4LiB4Liw4Lit4LmJ4Lit4Lih4LiB4Liw4LmB4Lit4LmJ4LihCivguIHguLDguK3guLHguIEKK+C4geC4sOC4reC4seC4geC4geC4sOC5hOC4rQor4LiB4Liw4Lit4Liy4LiZCivguIHguLDguK3guLLguKEKK+C4geC4sOC4reC4tOC4lAor4LiB4Liw4Lit4Li44LiaCivguIHguLDguYHguK0KK+C4geC4sOC5geC4reC4gQor4LiB4Liw4LmB4Lit4LiZCivguIHguLDguYHguK3guJoKK+C4geC4sOC5geC4reC4oQor4LiB4Liw4LmB4Lit4LinCivguIHguLHguIEKK+C4geC4seC5iuC4gQor4LiB4Lix4LmJ4LiB4LmGCivguIHguLHguIHguIHguKPguLIKK+C4geC4seC4geC4geC4quC4sAor4LiB4Lix4LiB4LiB4LiwCivguIHguLHguIHguIHguLLguKPguLUKK+C4geC4seC4geC4geC4suC4o+C4uAor4LiB4Lix4LiB4LiC4Lis4LiwCivguIHguLHguIHguKnguLHguJnguJXguKPguLHguIcKK+C4geC4seC4hwor4LiB4Lix4LmJ4LiHCivguIHguLHguIfguIEKK+C4geC4seC5ieC4h+C4geC4o+C4sOC4lOC4suC4mQor4LiB4Lix4LiH4LiB4LmJ4LiyCivguIHguLHguIfguYDguIHguLXguKLguIcKK+C4geC4seC4h+C4guC4sgor4LiB4Lix4LiH4LiC4Liy4Lin4Li04LiV4Lij4LiT4Lin4Li04Liq4Li44LiX4LiY4Li0CivguIHguLHguIfguITguLgKK+C4geC4seC4h+C4ieC4tOC4mQor4LiB4Lix4LiH4Lif4Li5CivguIHguLHguIfguKfguKUKK+C4geC4seC4h+C4p+C4suC4mQor4LiB4Lix4LiH4LmA4Lin4Li14Lii4LiZCivguIHguLHguIfguKoKK+C4geC4seC4h+C4quC4lOC4suC4pQor4LiB4Lix4LiH4LmE4LiqCivguIHguLHguIfguKvguLHguJkKK+C4geC4seC4iOC4ieC4m+C4sAor4LiB4Lix4LiI4LiJ4LiwCivguIHguLHguIjguInguLIKK+C4geC4seC4iOC4ieC4uAor4LiB4Lix4LiI4LmC4LiJ4LiX4LiBCivguIHguLHguI0KK+C4geC4seC4jeC4iOC4uOC4gQor4LiB4Lix4LiN4LiI4Li44LiB4Liy4Lij4LiyCivguIHguLHguI3guIrguLIKK+C4geC4seC4jeC4jeC4sgor4LiB4Lix4LiN4LiQ4LiB4LiwCivguIHguLHguJAKK+C4geC4seC4k+C4j+C4geC4sAor4LiB4Lix4LiT4LiQ4LiBCivguIHguLHguJPguJDguLHguKgKK+C4geC4seC4k+C4kOC4seC4qOC4p+C5jAor4LiB4Lix4LiT4LiQ4LiyCivguIHguLHguJPguJDguLUKK+C4geC4seC4k+C4keC5jAor4LiB4Lix4LiT4LiR4Lih4Liy4LiZ4Lin4LiBCivguIHguLHguJPguJHguKPguLIKK+C4geC4seC4k+C4keC4uAor4LiB4Lix4LiT4LiR4Li54Lin4LiZ4LiwCivguIHguLHguJPguJPguYwKK+C4geC4seC4k+C4qwor4LiB4Lix4LiUCivguIHguLHguJXguJXguLTguIHguKHguLLguKoKK+C4geC4seC4leC4leC4tOC4geC4sgor4LiB4Lix4LiV4LiV4Li04LmA4LiB4Lii4LiyCivguIHguLHguJXguKPguJfguLHguJPguJHguYwKK+C4geC4seC4leC4o+C4sgor4LiB4Lix4LiX4Lil4Li1CivguIHguLHguJkKK+C4geC4seC5iOC4mQor4LiB4Lix4LmJ4LiZCivguIHguLHguJnguYDguIHguKPguLIKK+C4geC4seC4meC5hOC4geC4owor4LiB4Lix4LiZ4LiK4Li04LiHCivguIHguLHguJnguYDguIrguK0KK+C4geC4seC5ieC4meC4i+C4ueC5iAor4LiB4Lix4LiZ4LmB4LiL4LiHCivguIHguLHguJnguJTguK3guIcKK+C4geC4seC4meC4lOC4suC4owor4LiB4Lix4LiZ4LiU4Liy4LilCivguIHguLHguJnguYTguJQKK+C4geC4seC4meC4leC5jAor4LiB4Lix4LiZ4LiV4Lix4LiHCivguIHguLHguJnguYTguJXguKMKK+C4geC4seC4meC4l+C4owor4LiB4Lix4LiZ4LiX4Lij4Liy4LiB4LijCivguIHguLHguJnguJfguLAKK+C4geC4seC5ieC4meC4muC4seC4hwor4LiB4Lix4LiZ4Lig4Lix4LiiCivguIHguLHguJnguKDguLTguKPguKHguKLguYwKK+C4geC4seC4meC5gOC4oeC4teC4ouC4hwor4LiB4Lix4LiZ4Lii4LmMCivguIHguLHguJnguKLguLIKK+C4geC4seC4meC4peC4hwor4LiB4Lix4LiZ4Lil4Lit4LiHCivguIHguLHguJnguKXguLbguIcKK+C4geC4seC4meC5geC4quC4hwor4LiB4Lix4LmJ4LiZ4Lir4Lii4Lix4LmI4LiZCivguIHguLHguJnguYDguK3guLIKK+C4geC4seC4mgor4LiB4Lix4Lia4LmB4LiB4LmJCivguIHguLHguJrguYHguIHguKXguYnguKEKK+C4geC4seC4muC4muC4uOC5gOC4o+C4qAor4LiB4Lix4LibCivguIHguLHguJvguJXguLHguJkKK+C4geC4seC4m+C4meC4gQor4LiB4Lix4Lib4Lia4Liy4Liq4Li04LiBCivguIHguLHguJvguJvguLLguKrguLTguIEKK+C4geC4seC4m+C4m+C4tOC4ouC4sAor4LiB4Lix4Lib4Lib4Li14Lii4LmMCivguIHguLHguKHguJrguJkKK+C4geC4seC4oeC4m+C4meC4suC4geC4suC4owor4LiB4Lix4Lih4Lib4LiZ4Liy4LiXCivguIHguLHguKHguJvguJnguLUKK+C4geC4seC4oeC4m+C4o+C4sOC5guC4lAor4LiB4Lix4Lih4Lib4Li1CivguIHguLHguKHguJ7guKUKK+C4geC4seC4oeC4nuC4uOC4igor4LiB4Lix4Lih4Lie4Li44LiK4Lie4Liy4LiB4Lii4LmMCivguIHguLHguKHguJ7guLkKK+C4geC4seC4oeC4nuC4ueC4iuC4sgor4LiB4Lix4Lih4LmC4Lie4LiKCivguIHguLHguKHguKHguKrguLHguJfguJjguLIKK+C4geC4seC4oeC4oeC4seC4iuC4p+C4suC4lQor4LiB4Lix4Lih4Lih4Lix4LiP4LiQ4Liy4LiZCivguIHguLHguKHguKHguLHguJnguJXguKDguLLguJ7guKPguLHguIfguKrguLUKK+C4geC4seC4oeC4oeC4seC4meC4leC4o+C4seC4h+C4quC4tQor4LiB4Lix4Lih4Lih4Lix4Liq4Liq4LiB4LiV4LiyCivguIHguLHguKHguKHguLLguKMKK+C4geC4seC4oeC4peC4suC4qAor4LiB4Lix4Lii4Lin4Li04LiB4Lix4LiiCivguIHguLHguKXguIrguLLguI0KK+C4geC4seC4peC4muC4gQor4LiB4Lix4Lil4Lib4LmMCivguIHguLHguKXguJvguJnguLIKK+C4geC4seC4peC4m+C4seC4h+C4q+C4sgor4LiB4Lix4Lil4Lib4Liy4Lin4Liq4Liy4LiZCivguIHguLHguKXguJvguLTguJUKK+C4geC4seC4peC4nuC4uOC4oQor4LiB4Lix4Lil4LmA4Lih4LmH4LiUCivguIHguLHguKXguKLguLIKK+C4geC4seC4peC4ouC4suC4k+C4oeC4tOC4leC4owor4LiB4Lix4Lil4Lii4Liy4LiT4Li1CivguIHguLHguKXguYDguKfguYnguLIKK+C4geC4seC4peC4q+C4suC4ogor4LiB4Lix4Lil4LmC4Lir4LiiCivguIHguLHguKXguK3guK3guKEKK+C4geC4seC4peC5gOC4reC4sgor4LiB4Lix4Lio4Lih4LilCivguIHguLHguKjguKLguJsKK+C4geC4seC4qeC4kwor4LiB4LiyCivguIHguYvguLIKK+C4geC4suC4gQor4LiB4Liy4LiB4LiE4LiV4Li0CivguIHguLLguIHguJPguLbguIEKK+C4geC4suC4geC4meC4suC4quC4ueC4owor4LiB4Liy4LiB4Lia4Liy4LiXCivguIHguLLguIHguKDguLLguKnguLIKK+C4geC4suC4geC4quC4ueC4owor4LiB4Liy4LiB4Liw4LiX4Li04LiHCivguIHguLLguIHguLDguYDguKLguLXguKIKK+C4geC4suC4geC4tQor4LiB4Liy4LiHCivguIHguYnguLLguIcKK+C4geC4suC4h+C5gOC4geC4hwor4LiB4Liy4LiH4LmA4LiB4Li14Lii4LiHCivguIHguLLguIfguILguK3guIcKK+C4geC4suC4h+C5gOC4guC4mQor4LiB4Liy4LiICivguIHguYrguLLguIsKK+C4geC4suC4i+C4sOC4peC4reC4hwor4LiB4Liy4LiL4Liw4Lil4Lit4LiH4LiE4LizCivguIHguLLguI3guIjguJnguLIKK+C4geC4suC4kAor4LiB4Liy4LiUCivguIHguYrguLLguJQKK+C4geC4suC4mQor4LiB4LmI4Liy4LiZCivguIHguYnguLLguJkKK+C4geC5iuC4suC4mQor4LiB4Liy4LiZ4LiU4LiyCivguIHguLLguJnguJXguYwKK+C4geC4suC4meC4l+C5jAor4LiB4Liy4LiZ4LiZCivguIHguLLguJnguJ7guKXguLkKK+C4geC4suC4meC5ieC4sgor4LiB4Liy4LiaCivguIHguYnguLLguJrguYYKK+C4geC4suC4muC4muC4seC4pwor4LiB4Liy4Lia4LiwCivguIHguLLguJrguLjguKPguLjguKkKK+C4geC4suC4muC4uQor4LiB4Liy4LmA4Lib4Li14LmJ4Lii4LiUCivguIHguLLguJ7guKLguYwKK+C4geC4suC5gOC4n+C4reC4teC4mQor4LiB4Liy4LmB4LifCivguIHguLLguKEKK+C4geC5ieC4suC4oQor4LiB4Liy4Lih4LiB4Lin4LihCivguIHguYnguLLguKHguIHguLjguYnguIcKK+C4geC4suC4oeC4lwor4LiB4Liy4Lih4LiZCivguIHguYnguLLguKHguJvguLkKK+C4geC5ieC4suC4oeC4m+C4ueC4q+C4peC4uOC4lAor4LiB4Liy4Lih4LmC4Lih4LiX4LiiCivguIHguLLguKHguKfguLTguJXguJbguLLguKMKK+C4geC4suC4oeC4seC4igor4LiB4Liy4Lih4LiyCivguIHguLLguKHguLLguJfguLXguJnguJ4KK+C4geC4suC4oeC4suC4nuC4iOC4owor4LiB4Liy4Lih4Liy4Lih4Li04LioCivguIHguLLguKHguLLguKPguKHguJPguYwKK+C4geC4suC4oeC4suC4p+C4iOC4owor4LiB4Liy4Lih4Li04LiZ4Li1CivguIHguLLguKHguLTguKgKK+C4geC4suC5gOC4oeC4qAor4LiB4Liy4LmA4Lih4Liq4Li44Lih4Li04LiI4LiJ4Liy4LiI4Liy4LijCivguIHguLLguKIKK+C4geC5iOC4suC4ogor4LiB4Liy4Lii4LiB4Lij4Lij4LihCivguIHguLLguKLguITguJXguLLguKrguJXguLQKK+C4geC4suC4ouC4l+C4p+C4suC4owor4LiB4Liy4Lii4LiX4Li44LiI4Lij4Li04LiVCivguIHguLLguKLguJrguKPguLTguKvguLLguKMKK+C4geC4suC4ouC4nuC4seC4meC4mOC4meC5jAor4LiB4Liy4Lii4Lig4Liy4LieCivguIHguLLguKLguKDguLLguJ7guJrguLPguJrguLHguJQKK+C4geC4suC4ouC4p+C4tOC4oOC4suC4hOC4qOC4suC4quC4leC4o+C5jAor4LiB4Liy4Lii4Liq4Li04LiX4LiY4Li04LmMCivguIHguLLguKLguKrguLjguIjguKPguLTguJUKK+C4geC4suC4ouC4suC4nuC4ouC4ngor4LiB4Liy4Lii4Li04LiZ4LiX4Lij4Li14Lii4LmMCivguIHguLLguYDguKLguJkKK+C4geC4suC5gOC4ouC4meC4l+C4o+C4teC4ouC5jAor4LiB4Liy4LijCivguIHguLLguKPguIEKK+C4geC4suC4o+C4k+C5jAor4LiB4Liy4Lij4LmM4LiUCivguIHguLLguKPguJXguLTguYDguIHguKLguLAKK+C4geC4suC4o+C5jOC4leC4ueC4mQor4LiB4Liy4Lij4LmA4LiVCivguIHguLLguKPguYLguJnguYnguKHguJbguYjguKfguIcKK+C4geC4suC4o+C4muC4ueC4owor4LiB4Liy4Lij4Lia4Li54Lij4Lib4LmI4LiyCivguIHguLLguKPguKLguYwKK+C4geC4suC4o+C4peC4sOC5gOC4peC5iOC4mQor4LiB4Liy4Lij4Lin4Li04LiBCivguIHguLLguKPguYDguKfguIEKK+C4geC4suC4o+C4sOC5gOC4geC4lAor4LiB4Liy4Lij4Liw4Lia4Li44Lir4LiZ4Li04LiHCivguIHguLLguKPguLHguJPguJHguKfguLAKK+C4geC4suC4o+C4seC4k+C4ouC5jAor4LiB4Liy4Lij4Lix4LiZ4LiV4LmMCivguIHguLLguKPguLLguIfguKvguLHguKfguILguKfguLLguJkKK+C4geC4suC4o+C4uOC4jQor4LiB4Liy4Lij4Li44LiT4Lii4LmMCivguIHguLLguYDguKPguIHguLLguKPguYjguK3guJkKK+C4geC4suC5gOC4o+C4teC4ouC4mQor4LiB4Liy4LilCivguIHguLLguKXguIHguKPguKPguJPguLUKK+C4geC4suC4peC4geC4seC4jeC4iuC4tOC4geC4suC4quC4ueC4owor4LiB4Liy4Lil4LiB4Li04LiT4Li1CivguIHguLLguKXguIjguLHguIHguKMKK+C4geC4suC4peC4seC4jeC4jeC4uOC4leC4sgor4LiB4Liy4Lil4Lix4LiN4LiN4Li5CivguIHguLLguKXguLHguJQKK+C4geC4suC4peC4suC4meC4uOC4geC4suC4pQor4LiB4Liy4Lil4Liy4Lih4Liq4Li54LiV4LijCivguIHguLLguKXguLTguIEKK+C4geC4suC4peC4tQor4LiB4Liy4LmB4Lil4LmH4LiB4LiL4Li14LmICivguIHguLLguKcKK+C4geC5ieC4suC4pwor4LiB4Liy4Lin4Lin4Liy4LinCivguIHguLLguYHguKfguJkKK+C4geC4suC4qOC4tOC4gQor4LiB4Liy4Lip4LiQ4LiwCivguIHguLLguKnguLIKK+C4geC4suC4quC4owor4LiB4Liy4Liq4LiwCivguIHguLLguKrguLIKK+C4geC4suC4quC4suC4owor4LiB4Liy4Liq4Liy4Lin4LiwCivguIHguLLguKrguLTguYLguJkKK+C4geC4suC4q+C4pQor4LiB4Liy4Lir4Lil4LiyCivguIHguLLguKvguKXguLTguJoKK+C4geC4suC4q+C4seC4gQor4LiB4Liy4LmA4Lir4Lin4LmI4LiyCivguIHguLLguYTguKvguKXguYgKK+C4geC4suC4rAor4LiB4Liy4Lis4LiB4Li54LiPCivguIHguLLguKzguJvguLHguIHguKnguYwKK+C4geC4suC4rOC4m+C4seC4geC4qeC4tQor4LiB4Liy4Lis4Lie4Lik4LiB4Lip4LmMCivguIHguLLguKzguYLguKPguIQKK+C4geC4suC4rOC4p+C4suC4lQor4LiB4Liy4Lis4Liy4Lin4LiBCivguIHguLLguK7guLHguIcKK+C4geC4swor4LiB4LmI4LizCivguIHguYnguLMKK+C4geC4s+C4geC4p+C4oQor4LiB4Liz4LiB4Lix4LiUCivguIHguLPguIHguLHguJoKK+C4geC5ieC4s+C4geC4tuC5iOC4hwor4LiB4Liz4LiB4Li54LiZCivguIHguYnguLPguYDguIHguLTguJkKK+C4geC4s+C5gOC4geC4teC4ouC4hwor4LiB4Liz4LiE4Li54LiZCivguIHguYjguLPguYDguITguLfguK0KK+C4geC4s+C4iOC4owor4LiB4Liz4LiI4Lix4LiUCivguIHguLPguIjguLLguKIKK+C4geC4s+C4iuC4seC4mgor4LiB4Liz4LiK4LizCivguIHguLPguYLguIrguIEKK+C4geC4s+C4i+C4suC4mgor4LiB4Liz4LiL4LizCivguIHguLPguJTguYnguJkKK+C4geC4s+C4lOC4seC4lAor4LiB4Liz4LiU4Liy4LilCivguIHguLPguYDguJTguLIKK+C4geC4s+C5gOC4lOC4suC4sAor4LiB4Liz4LiV4Liy4LiBCivguIHguLPguJfguKfguJQKK+C4geC4s+C4l+C4p+C4mQor4LiB4Liz4LiY4LijCivguIHguLPguJnguKUKK+C4geC4s+C4meC4seC4lAor4LiB4Liz4LiZ4Lix4LiZCivguIHguLPguJnguLHguKUKK+C4geC4s+C5gOC4meC4tOC4lAor4LiB4Liz4LmA4LiZ4Li14Lii4LiICivguIHguLPguJrguJQKK+C4geC4s+C4muC4mQor4LiB4Liz4Lia4Lix4LiHCivguIHguLPguJrguLHguJQKK+C4geC4s+C4muC4tOC4lAor4LiB4Liz4LmA4Lia4LmJ4LitCivguIHguLPguYLguJrguKUKK+C4geC4s+C4m+C4rQor4LiB4Liz4Lib4Lix4LmI4LiZCivguIHguLPguJvguLHguYnguJkKK+C4geC4s+C4nOC4peC4sgor4LiB4Liz4Lie4LiHCivguIHguLPguJ7guJQKK+C4geC4s+C4nuC4lQor4LiB4Liz4Lie4Lij4LmJ4LiyCivguIHguLPguJ7guKPguLLguIEKK+C4geC4s+C4nuC4p+C4lAor4LiB4Liz4Lie4Lit4LiHCivguIHguLPguJ7guLfguJQKK+C4geC4s+C4nuC4uQor4LiB4Liz4LmA4Lie4Lil4Li04LiHCivguIHguLPguYHguJ7guIcKK+C4geC4s+C5geC4nuC5ieC4hwor4LiB4Liz4Lig4Li5CivguIHguLPguKHguJ7guKTguIHguKnguYwKK+C4geC4s+C4oeC4peC4suC4qOC4meC5jAor4LiB4Liz4Lih4LmA4Lil4LioCivguIHguLPguKHguLDguJbguLHguJkKK+C4geC4s+C4oeC4sOC4peC4rQor4LiB4Liz4Lih4Liw4Lir4Lii4Li14LmICivguIHguLPguKHguLDguKvguKPguLTguJQKK+C4geC4s+C4oeC4seC4h+C4peC4sOC4geC4suC4owor4LiB4Liz4Lih4Lix4LiH4Lin4Li04Lil4Li04LiVCivguIHguLPguKHguLHguIrguJ7guKUKK+C4geC4s+C4ouC4suC4mQor4LiB4Liz4Lii4LizCivguIHguLPguKPguK0KK+C4geC4s+C4o+C4suC4gQor4LiB4Liz4Lij4Liy4LiaCivguIHguLPguKPguLLguKUKK+C4geC4s+C4o+C4uQor4LiB4Liz4LmA4Lij4Li04LiaCivguIHguLPguYTguKMKK+C4geC4s+C4peC4reC4hwor4LiB4Liz4Lil4Lix4LiHCivguIHguLPguKXguLHguIfguIrguYnguLLguIfguYDguJzguLfguK3guIEKK+C4geC4s+C4peC4seC4h+C4iuC5ieC4suC4h+C4quC4suC4owor4LiB4Liz4Lil4Lix4LiH4Lin4Lix4Lin4LmA4LiW4Lil4Li04LiHCivguIHguLPguKXguLjguIcKK+C4geC4s+C4peC4ueC4mQor4LiB4Liz4LmA4Lil4LiyCivguIHguLPguYDguKXguLLguLAKK+C4geC4s+C5hOC4pQor4LiB4Liz4Liq4Lij4LiUCivguIHguLPguKrguKPguKfguKUKK+C4geC4s+C5gOC4quC4suC4sAor4LiB4Liz4LmB4Liq4LiHCivguIHguLPguKvguJnguJQKK+C4geC4s+C4q+C4meC4seC4lAor4LiB4Liz4Lir4Lij4Liy4LiBCivguIHguLPguYDguKvguJnguYfguIgKK+C4geC4s+C5geC4q+C4hwor4LiB4Li04LiBCivguIHguLTguYrguIEKK+C4geC4tOC5iOC4hwor4LiB4Li04LmJ4LiH4LiB4LmI4LiyCivguIHguLTguYnguIfguIHguLfguK0KK+C4geC4tOC5ieC4h+C5guC4hOC4o+C4hwor4LiB4Li04LiH4Lia4Li44Lij4Li44LipCivguIHguLTguIfguKrguLjguIEKK+C4geC4tOC5iOC4h+C4q+C4suC4ogor4LiB4Li04LiICivguIHguLTguIjguIjguLAKK+C4geC4tOC4iOC4iOC4sOC4peC4seC4geC4qeC4k+C4sAor4LiB4Li04LiI4LiI4LiyCivguIHguLTguJTguLLguIHguLLguKMKK+C4geC4tOC4lOC4suC4q+C4ouC4seC4mQor4LiB4Li04LiV4LiV4Li0CivguIHguLTguJXguLLguKvguKPguLHguIcKK+C4geC4tOC4mQor4LiB4Li04LiZ4LmA4LiE4Lij4LiyCivguIHguLTguJnguJnguKMKK+C4geC4tOC4meC4o+C4tOC4mQor4LiB4Li04LiZ4Lij4Li1CivguIHguLTguJnguLnguJkKK+C4geC4tOC5iuC4mgor4LiB4Li04LihCivguIHguLTguKHguJXguLbguYvguIcKK+C4geC4tOC4oeC4tOC4iuC4suC4leC4tAor4LiB4Li04Lih4Li04Lin4Li04LiX4Lii4LiyCivguIHguLTguYLguKHguYLguJkKK+C4geC4tOC5guC4ouC4leC4teC4mQor4LiB4Li04Lij4LiwCivguIHguLTguKPguLTguJPguLUKK+C4geC4tOC4o+C4tOC4meC4lwor4LiB4Li04Lij4Li04LmA4LiZ4Lio4Lin4LijCivguIHguLTguKPguLTguKLguLIKK+C4geC4tOC4peC4oeC4sAor4LiB4Li04LmA4Lil4LiZCivguIHguLTguYDguKXguKoKK+C4geC4tOC5guC4pQor4LiB4Li04LmC4Lil4Lih4LiB4LiwCivguIHguLTguYjguKcKK+C4geC4tOC5i+C4pwor4LiB4Li14LmICivguIHguLXguYkKK+C4geC4teC5iwor4LiB4Li14LiPCivguIHguLXguJQKK+C4geC4teC4leC4suC4o+C5jAor4LiB4Li14LiaCivguIHguLXguKPguJXguLQKK+C4geC4teC4p+C4tQor4LiB4Li14Lis4LiyCivguIHguLbguIEKK+C4geC4tuC4geC4luC4reC4hwor4LiB4Li24LiHCivguIHguLbguYjguIcKK+C4geC4tuC5i+C4mQor4LiB4Li4CivguIHguLjguIEKK+C4geC4uOC5iuC4gQor4LiB4Li44LiB4LmG4LiB4Lix4LiB4LmGCivguIHguLjguYrguIHguYbguIHguLTguYrguIHguYYKK+C4geC4uOC4geC4geC4seC4gQor4LiB4Li44LmK4LiB4LiB4Li04LmK4LiBCivguIHguLjguIHguIHguLjguI8KK+C4geC4uOC4geC4geC4uOC4owor4LiB4Li44LiB4LiC4Li14LmJ4Lir4Lih4Li5CivguIHguLjguIHguKPguKPguKEKK+C4geC4uOC4geC5iOC4reC4hwor4LiB4Li44LiB4LiwCivguIHguLjguIHguLjguJjguKDguLHguJPguJHguYwKK+C4geC4uOC5ieC4hwor4LiB4Li44LmJ4LiH4LmA4LiV4LmJ4LiZCivguIHguLjguYnguIfguKLguLTguIcKK+C4geC4uOC4h+C4reC4mQor4LiB4Li44LiH4Liy4LiZCivguIHguLjguYLguIfguIEKK+C4geC4uOC4iOC4tQor4LiB4Li44LiN4LmB4LiICivguIHguLjguI3guIrguKMKK+C4geC4uOC4jgor4LiB4Li44LiO4LiyCivguIHguLjguI7guLLguJjguLLguKMKK+C4geC4uOC4juC4tQor4LiB4Li44LiP4LiQ4Lix4LiHCivguIHguLjguI/guLQKK+C4geC4uOC4k+C4keC5jAor4LiB4Li44LiT4LiR4LilCivguIHguLjguJPguJHguLTguJkKK+C4geC4uOC4k+C4keC4tQor4LiB4Li44LiT4LmC4LiRCivguIHguLjguJPguLLguKUKK+C4geC4uOC4k+C4tAor4LiB4Li44LiT4Li1CivguIHguLjguJQKK+C4geC4uOC4lOC4seC4hwor4LiB4Li44LiU4Lix4LmI4LiZCivguIHguLjguJTguLIKK+C4geC4uOC4l+C4seC4k+C4keC5jAor4LiB4Li44LiZCivguIHguLjguYrguJkKK+C4geC4uOC4meC5gOC4iuC4teC4ouC4hwor4LiB4Li44LiZ4LiL4Li34LitCivguIHguLjguJnguJfguLUKK+C4geC4uOC5guC4meC4geC4suC4oeC4rQor4LiB4Li44LiaCivguIHguLjguJrguIHguLHguJoKK+C4geC4uOC4oQor4LiB4Li44LmI4LihCivguIHguLjguKHguJ3guK3guKIKK+C4geC4uOC4oeC4oOC5jAor4LiB4Li44Lih4Lig4LiZ4Li04Lii4LiyCivguIHguLjguKHguKDguLHguJPguJHguYwKK+C4geC4uOC4oeC4oOC4sgor4LiB4Li44Lih4Lig4Li04LilCivguIHguLjguKHguKDguLXguKXguYwKK+C4geC4uOC4oeC4oeC4suC4qgor4LiB4Li44Lih4LmA4Lir4LiHCivguIHguLjguKHguLLguKMKK+C4geC4uOC4oeC4suC4o+C4peC4rOC4tOC4leC4sgor4LiB4Li44Lih4Liy4Lij4LiyCivguIHguLjguKHguLLguKPguLTguIHguLIKK+C4geC4uOC4oeC4suC4o+C4tQor4LiB4Li44Lih4Li44LiXCivguIHguLjguKIKK+C4geC4uOC5iuC4ogor4LiB4Li44LmL4LiiCivguIHguLjguYvguKLguYYKK+C4geC4uOC4ouC4iuC5iOC4suC4ogor4LiB4Li44LmI4Lii4Lir4Lil4Li44LmI4Lii4Liq4LmJ4LihCivguIHguLjguKLguYDguK7guIcKK+C4geC4uOC4o+C4owor4LiB4Li44Lij4LiwCivguIHguLjguKPguLjguYDguIHguKnguJXguKMKK+C4geC4uOC4o+C4uOC4hwor4LiB4Li44Lij4Li44Lie4Li04LiZ4LiX4LmMCivguIHguLjguKPguLjguKMKK+C4geC4uOC5gOC4o+C4sgor4LiB4Li44LilCivguIHguLjguKXguIHguLHguKXguKLguLIKK+C4geC4uOC4peC4geC4ueC4k+C4tQor4LiB4Li44Lil4LiE4Li44Lij4Li4CivguIHguLjguKXguIrguJkKK+C4geC4uOC4peC4iuC4suC4lQor4LiB4Li44Lil4LiU4Li04Lil4LiBCivguIHguLjguKXguJfguLnguKrguIEKK+C4geC4uOC4peC4mOC4o+C4o+C4oQor4LiB4Li44Lil4LiY4Li04LiU4LiyCivguIHguLjguKXguJnguLLguIQKK+C4geC4uOC4peC4meC4suC4o+C4tQor4LiB4Li44Lil4LiZ4Liy4LioCivguIHguLjguKXguJrguJTguLUKK+C4geC4uOC4peC4muC4uOC4leC4owor4LiB4Li44Lil4Lia4Li44Lij4Li44LipCivguIHguLjguKXguJ7guJjguLkKK+C4geC4uOC4peC4oeC4seC4iOC4ieC4o+C4tOC4ouC4sAor4LiB4Li44Lil4Lih4Li04LiV4LijCivguIHguLjguKXguKfguLLguKMKK+C4geC4uOC4peC5gOC4p+C4l+C4tOC4leC4sgor4LiB4Li44Lil4Liq4LiV4Lij4Li1CivguIHguLjguKXguKrguLHguKHguJ7guLHguJnguJjguYwKK+C4geC4uOC4peC4sgor4LiB4Li44Lil4Liy4Lir4LilCivguIHguLjguKXguLUKK+C4geC4uOC4peC4teC4geC4uOC4iOC4rQor4LiB4Li44Lil4Li44Lib4LiB4Liy4LiI4Liy4Lij4Lii4LmMCivguIHguLjguYDguKXguLIKK+C4geC4uOC5geC4pQor4LiB4Li44LmE4LilCivguIHguLjguKfguLAKK+C4geC4uOC5gOC4p+C4owor4LiB4Li44Lio4Lij4Liy4LiKCivguIHguLjguKjguKUKK+C4geC4uOC4qOC5guC4peC4muC4suC4ogor4LiB4Li44Liq4LilCivguIHguLjguKrguLAKK+C4geC4uOC4quC4uOC4oQor4LiB4Li44Liq4Li44Lih4Lig4LmMCivguIHguLjguKrguLjguKHguLIKK+C4geC4uOC4quC4uOC4oeC4suC4peC4ouC5jAor4LiB4Li44Liq4Li44Lih4Li04LiV4Lil4LiU4Liy4LmA4Lin4Lil4Lil4Li04LiV4LiyCivguIHguLjguKvguIEKK+C4geC4uOC4q+C4meC4tQor4LiB4Li44Lir4LiZ4Li44LiHCivguIHguLjguKvguKPguYjguLIKK+C4geC4uOC4q+C4peC5iOC4sgor4LiB4Li44Lir4Lil4Liy4LiaCivguIHguLjguYHguKvguKXguLAKK+C4geC4uQor4LiB4Li54LmICivguIHguLnguYkKK+C4geC4ueC5iuC4gQor4LiB4Li54LiPCivguIHguLnguI/guLIKK+C4geC4ueC5guC4j+C4muC4suC4ogor4LiB4Li54LiT4LiR4LmMCivguIHguLnguJQKK+C4geC4ueC4mQor4LiB4Li54LiaCivguIHguLnguJvguKPguLUKK+C4geC4ueC4o+C4oeC4sAor4LiB4Li54Lij4Lih4Liy4Lin4LiV4Liy4LijCivguIHguLnguKPguLMKK+C5gOC4gQor4LmA4LiB4LmICivguYDguIHguYoKK+C5gOC4geC5iwor4LmA4LiB4LmJ4LmG4LiB4Lix4LiH4LmGCivguYDguIHguIEKK+C5gOC4geC5iuC4gQor4LmA4LiB4LiB4Lih4Liw4LmA4Lir4Lij4LiBCivguYDguIHguYrguIHguK7guKfguKIKK+C5gOC4geC5ieC4geC4seC4hwor4LmA4LiB4LmH4LiHCivguYDguIHguYjguIcKK+C5gOC4geC5ieC4hwor4LmA4LiB4LmL4LiHCivguYDguIHguIfguIHguK3guKIKK+C5gOC4geC5ieC4h+C4geC5ieC4suC4hwor4LmA4LiB4LiH4LmA4LiC4LiHCivguYDguIHguYvguIfguYDguITguIcKK+C5gOC4geC5h+C4iAor4LmA4LiB4LiI4Li04Lit4Liy4LiI4Liy4Lij4Lii4LmMCivguYDguIHguIrguLIKK+C5gOC4geC4k+C4keC5jAor4LmA4LiB4LiT4LiR4LmM4LiV4Liw4Lie4Lix4LiUCivguYDguIHguJQKK+C5gOC4geC5h+C4lAor4LmA4LiB4LiV4Li4CivguYDguIHguJkKK+C5gOC4geC5iOC4mQor4LmA4LiB4LiZ4LmGCivguYDguIHguYfguJoKK+C5gOC4geC4oQor4LmA4LiB4LiiCivguYDguIHguKLguYwKK+C5gOC4geC4ouC4ueC4owor4LmA4LiB4Lij4LiHCivguYDguIHguKPguYfguIcKK+C5gOC4geC4o+C4lAor4LmA4LiB4Lij4LmH4LiUCivguYDguIHguKPguJkKK+C5gOC4geC4o+C5iOC4rQor4LmA4LiB4Lij4Lit4LiwCivguYDguIHguKPguLLguLAKK+C5gOC4geC4o+C4suC4sOC5gOC4nuC4iuC4o+C5hOC4nuC4keC4ueC4o+C4ouC5jAor4LmA4LiB4Lij4Li04LiBCivguYDguIHguKPguLTguJkKK+C5gOC4geC4o+C4tOC5iOC4mQor4LmA4LiB4Lij4Li14Lii4LiBCivguYDguIHguKPguLXguKLguIcKK+C5gOC4geC4o+C4teC4ouC4lAor4LmA4LiB4Lij4Li14Lii4LiZCivguYDguIHguKPguLXguKLguJoKK+C5gOC4geC4o+C4teC4ouC4oQor4LmA4LiB4Lij4Li14Lii4Lih4LiB4Lij4LihCivguYDguIHguKPguLXguKLguKcKK+C5gOC4geC4o+C4teC5ieC4ouC4pwor4LmA4LiB4Lij4Li14LmJ4Lii4Lin4LmGCivguYDguIHguYDguKMKK+C5gOC4geC4peC5h+C4lAor4LmA4LiB4Lil4LioCivguYDguIHguKXguK0KK+C5gOC4geC4peC4sgor4LmA4LiB4Lil4LmJ4LiyCivguYDguIHguKXguLLguLAKK+C5gOC4geC4peC4teC5iOC4ogor4LmA4LiB4Lil4Li14LmJ4LiiCivguYDguIHguKXguLXguKLguIcKK+C5gOC4geC4peC4teC5ieC4ouC4hwor4LmA4LiB4Lil4Li14Lii4LiUCivguYDguIHguKXguLXguKLguKcKK+C5gOC4geC4peC4teC5iOC4ouC4p+C4lOC4swor4LmA4LiB4Lil4Li34LitCivguYDguIHguKXguLfguYnguK0KK+C5gOC4geC4peC4t+C4reC4gQor4LmA4LiB4Lil4Li34LmI4Lit4LiZCivguYDguIHguKXguLfguYnguK3guJkKK+C5gOC4geC5hOC4pQor4LmA4LiB4Lin4LilCivguYDguIHguKfguKXguLLguJfguLUKK+C5gOC4geC4p+C4peC4tOC4mQor4LmA4LiB4Lin4Lil4Li1CivguYDguIHguKfguLHguI8KK+C5gOC4geC4p+C4teC4ouC4mQor4LmA4LiB4LioCivguYDguIHguKjguJ4KK+C5gOC4geC4qOC4pwor4LmA4LiB4Lio4LiyCivguYDguIHguKjguLTguJnguLUKK+C5gOC4geC4qOC4tQor4LmA4LiB4Lip4LiV4LijCivguYDguIHguKnguJXguKPguIHguKMKK+C5gOC4geC4qeC4leC4o+C4geC4o+C4o+C4oQor4LmA4LiB4Lip4LiV4Lij4Lia4LiU4Li1CivguYDguIHguKnguJXguKPguKjguLLguKrguJXguKPguYwKK+C5gOC4geC4qeC4oQor4LmA4LiB4Lip4Li14Lii4LiTCivguYDguIHguKnguLXguKLguJkKK+C5gOC4geC4qeC4teC4ouC4owor4LmA4LiB4LiqCivguYDguIHguKrguJXguLLguYLguJsKK+C5gOC4geC4quC4owor4LmA4LiB4Liq4Lij4Li1CivguYDguIHguKrguLIKK+C5gOC4geC4quC4tQor4LmA4LiB4LmI4Lir4Lil4Li1CivguYDguIHguYnguK0KK+C5gOC4geC4reC4tOC4iuC4sgor4LmA4LiB4LiwCivguYDguIHguLDguIHguLAKK+C5gOC4geC4sgor4LmA4LiB4LmI4LiyCivguYDguIHguYnguLIKK+C5gOC4geC5i+C4sgor4LmA4LiB4Liy4LiV4LmMCivguYDguIHguLLguJfguLHguJPguJHguYwKK+C5gOC4geC4suC4l+C4uOC4oeC4nuC4owor4LmA4LiB4Liy4Lia4Li04LiZCivguYDguIHguLLguJrguLTguKUKK+C5gOC4geC4suC4oeC4suC4owor4LmA4LiB4Liy4Lil4Lix4LiUCivguYDguIHguLLguKXguLTguJkKK+C5gOC4geC4suC4qOC4seC4peC4ouC5jAor4LmA4LiB4Liy4LmE4Lio4LiiCivguYDguIHguLLguYDguKvguKXguLIKK+C5gOC4geC4suC5gOC4q+C4peC4teC4ouC4hwor4LmA4LiB4LmJ4Liy4Lit4Li14LmJCivguYDguIHguLLguLAKK+C5gOC4geC4suC4sOC5geC4geC4sAor4LmA4LiB4Li04LiHCivguYDguIHguLTguYnguIcKK+C5gOC4geC4tOC4lAor4LmA4LiB4Li04LiZCivguYDguIHguLTguJoKK+C5gOC4geC4teC4ogor4LmA4LiB4Li14Lii4LiB4LiB4Liy4LiiCivguYDguIHguLXguKLguIcKK+C5gOC4geC4teC5iOC4ouC4hwor4LmA4LiB4Li14LmL4Lii4LiHCivguYDguIHguLXguKLguIgKK+C5gOC4geC4teC4ouC4lAor4LmA4LiB4Li14Lii4LiZCivguYDguIHguLXguYnguKLguKHguYTguInguYgKK+C5gOC4geC4teC5ieC4ouC4oeC4reC4teC5iwor4LmA4LiB4Li14Lii4Lij4LiV4Li0CivguYDguIHguLXguKLguKPguJXguLTguYwKK+C5gOC4geC4teC5iOC4ouC4pwor4LmA4LiB4Li14LmJ4Lii4LinCivguYDguIHguLXguYrguKLguKcKK+C5gOC4geC4teC5iuC4ouC4sAor4LmA4LiB4Li34LmJ4LitCivguYDguIHguLfguK3guIEKK+C5gOC4geC4t+C5ieC4reC4geC4ueC4pQor4LmA4LiB4Li34Lit4LiaCivguYHguIEKK+C5geC4geC5iAor4LmB4LiB4LmJCivguYHguIHguIcKK+C5geC4geC5iOC4hwor4LmB4LiB4LmJ4LiHCivguYHguIHguYrguIcKK+C5geC4geC4h+C4guC4oQor4LmB4LiB4LiH4LmE4LiUCivguYHguIHguIfguYHguJnguIcKK+C5geC4geC5iOC4h+C5geC4ouC5iOC4hwor4LmB4LiB4LmC4LiU4Lil4Li04LmA4LiZ4Li14Lii4LihCivguYHguIHguJkKK+C5geC4geC5iOC4mQor4LmB4LiB4LiZ4LiwCivguYHguIHguYHguJkKK+C5geC4geC5iuC4mwor4LmB4LiB4LihCivguYHguIHguYnguKEKK+C5geC4geC4oeC4oeC4sgor4LmB4LiB4Lij4LiBCivguYHguIHguKPguYjguIcKK+C5geC4geC4o+C5h+C4mQor4LmB4LiB4Lij4LiZ4Li04LiVCivguYHguIHguKPguYTguJ/guJXguYwKK+C5geC4geC4o+C5iOC4pwor4LmB4LiB4Lij4LiwCivguYHguIHguKUKK+C5geC4geC4peC5iAor4LmB4LiB4Lil4LmJ4LiHCivguYHguIHguKXguJkKK+C5geC4geC4peC4mgor4LmB4LiB4Lil4LmJ4LihCivguYHguIHguKXguKXguK3guJkKK+C5geC4geC4peC5gOC4peC4teC4ouC4oQor4LmB4LiB4Lil4LmJ4LinCivguYHguIHguKXguLAKK+C5geC4geC5geC4pQor4LmB4LiB4LinCivguYHguIHguYnguKcKK+C5geC4geC4p+C5iOC4hwor4LmB4LiB4Lin4LmI4LiZCivguYHguIHguYfguKoKK+C5geC4geC5iuC4qgor4LmB4LiB4LiwCivguYLguIEKK+C5guC4geC5iAor4LmC4LiB4LmJCivguYLguIHguYsKK+C5guC4geC4gQor4LmC4LiB4LiB4LiZ4Li44LiXCivguYLguIHguIHguLTguKUKK+C5guC4geC4geC4tOC4peC4sgor4LmC4LiB4LmC4LiB4LmJCivguYLguIHguIcKK+C5guC4geC5iOC4hwor4LmC4LiB4LiH4LiB4Liy4LiHCivguYLguIHguYnguIfguYDguIHguYnguIcKK+C5guC4geC4h+C5guC4geC5iQor4LmC4LiB4LmJ4LiH4LmC4LiE4LmJ4LiHCivguYLguIHguYDguIrguLLguKfguYwKK+C5guC4geC4jeC4iOC4mQor4LmC4LiB4LiN4LiI4LiyCivguYLguIHguI/guLQKK+C5guC4geC4kAor4LmC4LiB4LiQ4Liy4LiqCivguYLguIHguJMKK+C5guC4geC4k+C4gQor4LmC4LiB4LiT4LiR4Lix4LiN4LiN4LiwCivguYLguIHguJTguLHguIcKK+C5guC4geC4leC5hOC4lQor4LmC4LiB4LiX4Lix4LiT4LiR4LmMCivguYLguIHguJkKK+C5guC4geC5iOC4mQor4LmC4LiB4LmL4LiZCivguYLguIHguJnguLLguITguKHguJnguYwKK+C5guC4geC5guC4meC5gOC4o+C4teC4ogor4LmC4LiB4Lib4Li04LiZ4LizCivguYLguIHguKHguKUKK+C5guC4geC4oeC4suC4o+C4oOC4seC4iOC4iOC5jAor4LmC4LiB4Lih4Li44LiXCivguYLguIHguYDguKHguJkKK+C5guC4geC5gOC4oeC4qAor4LmC4LiB4LiiCivguYLguIHguKPguYkKK+C5guC4geC4o+C4gQor4LmC4LiB4Lij4LiB4LiB4Lij4Liy4LiBCivguYLguIHguKPguIcKK+C5guC4geC4o+C5iOC4hwor4LmC4LiB4Lij4LmI4LiH4LiB4Lij4LmI4Liy4LiHCivguYLguIHguKPguIfguYDguIHguKPguIcKK+C5guC4geC4o+C5i+C4h+C5gOC4geC4o+C5i+C4hwor4LmC4LiB4Lij4LiN4LiICivguYLguIHguKPguJQKK+C5guC4geC4o+C4leC5i+C4mQor4LmC4LiB4Lij4LiYCivguYLguIHguKPguJjguLIKK+C5guC4geC4o+C5i+C4mQor4LmC4LiB4Lij4LihCivguYLguIHguKPguKIKK+C5guC4geC4o+C4qAor4LmC4LiB4LmC4Lij4LmC4LiB4LmA4LiVCivguYLguIHguYLguKPguYLguIHguYLguKPguIEKK+C5guC4geC5guC4o+C5guC4geC5guC4qgor4LmC4LiB4Lil4LiHCivguYLguIHguKXguJkKK+C5guC4geC4peC4suC4q+C4pQor4LmC4LiB4LmE4LilCivguYLguIHguKfguLTguJcKK+C5guC4geC4p+C4tOC4rOC4suC4owor4LmC4LiB4LioCivguYLguIHguKjguKUKK+C5guC4geC4qQor4LmC4LiB4Lip4LihCivguYLguIHguKnguKIKK+C5guC4geC4qgor4LmC4LiB4Liq4LiZCivguYLguIHguKrguLHguIoKK+C5guC4geC4quC4tOC4meC4l+C4o+C5jAor4LmC4LiB4Liq4Li14Lii4LmMCivguYLguIHguKrguLjguKEKK+C5guC4geC5hOC4quC4ogor4LmC4LiB4Lir4LiBCivguYLguIHguKvguKfguLIKK+C5guC4geC4q+C4seC4jQor4LmD4LiB4Lil4LmJCivguYTguIEKK+C5hOC4geC5iAor4LmE4LiB4LmJCivguYTguIHguYoKK+C5hOC4geC5iwor4LmE4LiB4LmI4LiB4Lit4LihCivguYTguIHguYvguYHguJTguIcKK+C5hOC4geC5iOC5gOC4leC4teC5ieC4ogor4LmE4LiB4LmI4LiZ4LiyCivguYTguIHguYjguJ7guLHguKUKK+C5hOC4geC5iOC4n+C5ieC4sgor4LmE4LiB4LijCivguYTguIHguKPguJ4KK+C5hOC4geC4o+C4peC4suC4qgor4LmE4LiB4Lij4Lio4LijCivguYTguIHguKPguKjguKPguLUKK+C5hOC4geC4o+C4quC4owor4LmE4LiB4Lij4Liq4Li04LiX4LiY4Li0CivguYTguIHguKUKK+C5hOC4geC4peC5iAor4LmE4LiB4Lil4Liy4LiqCivguYTguIHguKcKK+C5hOC4geC4p+C4seC4pQor4LmE4LiB4LmI4LmE4Lir4LmJCivguIIKK+C4guC4hOC4sAor4LiC4LiE4Liy4LiY4Li04LibCivguILguITguLLguKDguLTguKPguLLguKEKK+C4guC4hOC4suC4quC4meC4sAor4LiC4LmA4LiE4Lio4Lin4LijCivguILguIcKK+C4guC4h+C4iOC4t+C5iuC4rQor4LiC4LiI4LijCivguILguIjguK3guIEKK+C4guC4iOC4seC4lAor4LiC4LiI4LmI4Liy4LiHCivguILguIjguLLguKIKK+C4guC4iOC4suC4pwor4LiC4LiI4Li04LiVCivguILguIjguLTguKPguLTguJQKK+C4guC4iOC4tQor4LiC4LiI4Li44LiiCivguILguYDguIjguLIKK+C4guC4k+C4sAor4LiC4LiT4Liw4LiI4Li04LiVCivguILguJPguLTguIEKK+C4guC4k+C4tOC4geC4quC4oeC4suC4mOC4tAor4LiC4LiUCivguILguJTguLLguJkKK+C4guC4leC4reC4ogor4LiC4LiX4Li04LiHCivguILguJfguLbguIcKK+C4guC4mQor4LiC4LmJ4LiZCivguILguJnguIcKK+C4guC4meC4h+C5gOC4meC4t+C5ieC4rQor4LiC4LiZ4LiUCivguILguJnguJkKK+C4guC4meC4mgor4LiC4LiZ4LihCivguILguJnguKHguIjguLXguJkKK+C4guC4meC4oeC5gOC4muC4t+C5ieC4reC4h+C4jeC4p+C4mQor4LiC4LiZ4Lih4Lib4Lix4LiHCivguILguJnguKHguJzguKrguKHguJnguYnguLPguKLguLIKK+C4guC4meC4oeC4nOC4seC4geC4geC4suC4lAor4LiC4LiZ4Lih4LmA4Liq4LmJ4LiZCivguILguJnguKHguKvguLHguKfguJzguLHguIHguIHguLLguJQKK+C4guC4meC4reC4hwor4LiC4LiZ4Lit4LiZCivguILguJnguK3guJoKK+C4guC4meC4seC4lAor4LiC4LiZ4Lix4LiZCivguILguJnguLLguIEKK+C4guC4meC4suC4hwor4LiC4LiZ4Liy4LiUCivguILguJnguLLguJkKK+C4guC4meC4suC4mgor4LiC4LiZ4Liy4LiiCivguILguJnguLMKK+C4guC4meC4tOC4qeC4kAor4LiC4LiZ4Li04Lip4LiQ4LiyCivguILguJnguLjguJkKK+C4guC4mgor4LiC4Lia4LiC4Lix4LiZCivguILguJrguJYKK+C4guC4muC4p+C4mQor4LiC4Lia4Lin4LijCivguILguJrguLnguKMKK+C4guC4oQor4LiC4LmI4LihCivguILguKHguIfguYLguIHguKPguKIKK+C4guC4oeC4oQor4LiC4Lih4Lin4LiUCivguILguKHguKfguJTguKLguLIKK+C4guC4oeC4p+C4mQor4LiC4Lih4Lir4Li04LiZCivguILguKHguK3guIcKK+C4guC4oeC5iOC4reC4oQor4LiC4Lih4Lit4LiiCivguILguKHguLHguIHguYDguILguKHguYnguJkKK+C4guC4oeC4seC4hwor4LiC4Lih4Lix4LiaCivguILguKHguLIKK+C4guC4oeC5ieC4swor4LiC4Lih4Li04LmJ4LiZCivguILguKHguLTguJoKK+C4guC4oeC4teC4guC4oeC4seC4mQor4LiC4Lih4Li24LiHCivguILguKHguLgKK+C4guC4oeC4uOC4geC4guC4oeC4reC4oQor4LiC4Lih4Li44LiB4LiC4Lih4Lix4LinCivguILguKHguLjguJTguILguKHguLTguJQKK+C4guC4oeC4uOC4mgor4LiC4Lih4Li44LihCivguILguYLguKHguKIKK+C4guC4ouC4lAor4LiC4Lii4LihCivguILguKLguYjguKEKK+C4guC4ouC4pQor4LiC4Lii4Lit4LiBCivguILguKLguK3guIcKK+C4guC4ouC5iOC4reC4mQor4LiC4Lii4LmJ4Lit4LiZCivguILguKLguLAKK+C4guC4ouC4sOC5geC4guC4ouC4hwor4LiC4Lii4Lix4LiBCivguILguKLguLHguJkKK+C4guC4ouC4seC5ieC4mQor4LiC4Lii4Lix4LiaCivguILguKLguLLguJQKK+C4guC4ouC4suC4mgor4LiC4Lii4Liy4LiiCivguILguKLguLMKK+C4guC4ouC5ieC4swor4LiC4Lii4Li04LiBCivguILguKLguLTguJoKK+C4guC4ouC4tOC5iOC4oQor4LiC4Lii4Li14LmJCivguILguKLguLXguYjguILguKLguLHguJkKK+C4guC4ouC4uOC4geC4guC4ouC4tOC4gQor4LiC4Lii4Li44LiB4LiC4Lii4Li44LiiCivguILguKLguLjguJoKK+C4guC4ouC4uOC4oQor4LiC4Lii4Li44LmJ4LihCivguILguKLguLjguYnguKHguJXguLXguJnguKvguKHguLIKK+C4guC4ouC4uOC4ogor4LiC4Lij4LihCivguILguKPguKPguITguYwKK+C4guC4o+C4seC4pwor4LiC4Lij4Li04LiaCivguILguKPguLUKK+C4guC4o+C4tuC4oQor4LiC4Lij4Li44LiC4Lij4LiwCivguILguKXguYnguIcKK+C4guC4peC4mgor4LiC4Lil4LihCivguILguKXguKfguJkKK+C4guC4peC5ieC4rQor4LiC4Lil4Lix4LiHCivguILguKXguLHguJoKK+C4guC4peC4sgor4LiC4Lil4Liy4LiUCivguILguKXguLLguKIKK+C4guC4peC4tOC4mgor4LiC4Lil4Li04Lia4LiX4Lit4LiHCivguILguKXguLbguIcKK+C4guC4peC4uOC4gQor4LiC4Lil4Li44LiaCivguILguKXguLjguKEKK+C4guC4peC4uOC4oeC4m+C4o+C4sOC5gOC4iOC4teC4ouC4lAor4LiC4Lil4Li44LmI4LiiCivguILguKXguLkKK+C4guC4peC4ueC5iAor4LiC4Lin4LiHCivguILguYjguKfguIcKK+C4guC4p+C4lAor4LiC4Lin4LiZCivguILguYjguKfguJkKK+C4guC4p+C4mgor4LiC4Lin4LiiCivguILguKfguLDguYTguILguKfguYjguYDguILguKfguLXguYjguKIKK+C4guC4p+C4seC4geC5hOC4guC4p+C5iAor4LiC4Lin4Lix4LiNCivguILguKfguLHguI3guYDguKHguLfguK3guIcKK+C4guC4p+C4seC4jeC4reC5iOC4reC4mQor4LiC4Lin4Lix4LiUCivguILguKfguLHguJTguILguKfguLTguJQKK+C4guC4p+C4seC4lOC5geC4hOC4p+C5ieC4hwor4LiC4Lin4Lix4LmJ4LiZCivguILguKfguLHguJoKK+C4guC4p+C4sgor4LiC4Lin4Liy4LiBCivguILguKfguLLguIcKK+C4guC4p+C5ieC4suC4hwor4LiC4Lin4Liy4LiUCivguILguKfguLLguJkKK+C4guC4p+C4suC4ouC4guC4p+C4mQor4LiC4Lin4Liy4LinCivguILguKfguYnguLLguKcKK+C4guC4p+C4tOC4lAor4LiC4Lip4LiT4LiwCivguILguKnguLHguKIKK+C4guC4qeC4teC4k+C4suC4qOC4o+C4ngor4LiC4Lip4Li14LijCivguILguK0KK+C4guC5iOC4rQor4LiC4LmJ4LitCivguILguK3guIEKK+C4guC4reC4hwor4LiC4LmJ4Lit4LiHCivguILguK3guIfguKPguLDguK3guLIKK+C4guC4reC4ieC4suC4ogor4LiC4Lit4LiUCivguILguK3guJkKK+C4guC5iOC4reC4mQor4LiC4LmJ4Lit4LiZCivguILguK3guJoKK+C4guC4reC4muC4guC5iOC4suC4ogor4LiC4Lit4Lia4LmA4LiC4LiVCivguILguK3guJrguITguLjguJMKK+C4guC4reC4muC5g+C4iAor4LiC4Lit4Lia4Lie4Lij4Liw4LiE4Li44LiTCivguILguK3guJrguYDguKvguKXguYfguIEKK+C4guC4reC4oQor4LiC4LmI4Lit4LiiCivguILguYnguK3guKIKK+C4guC4sOC4guC4swor4LiC4Liw4LmB4LiC4LmI4LiZCivguILguLDguYHguILguYnguJkKK+C4guC4sOC5geC4iOC4sAor4LiC4Liw4LmB4LiW4LiBCivguILguLDguJnguLLguJkKK+C4guC4sOC5gOC4meC5h+C4lAor4LiC4Liw4Lih4Lit4Lih4LiC4Liw4LmB4Lih4LihCivguILguLDguYHguKHguIvguK0KK+C4guC4sOC5geC4oeC4mOC4oQor4LiC4Liw4Lii4Li04LiBCivguILguLDguKLguLjguIEKK+C4guC4sOC5gOC4ouC5ieC4reC5geC4guC4ouC5iOC4hwor4LiC4Liw4LmB4Lii4LiwCivguILguLHguIQKK+C4guC4seC4hwor4LiC4Lix4LiH4LiC4Lit4LiBCivguILguLHguIoKK+C4guC4seC4iuC4gQor4LiC4Lix4LiT4LiR4Liq4LiB4LijCivguILguLHguJQKK+C4guC4seC4lOC4oeC4reC4mQor4LiC4Lix4LiZCivguILguLHguYnguJkKK+C4guC4seC4meC5geC4guC5h+C4hwor4LiC4Lix4LiZ4LiV4Li0CivguILguLHguJnguJXguLUKK+C4guC4seC4meC5guC4leC4gQor4LiC4Lix4LiZ4LiX4Lit4LiH4Lie4Lii4Liy4Lia4Liy4LiXCivguILguLHguJnguJfguLUKK+C4guC4seC4meC4mOC5jAor4LiC4Lix4LiZ4LiY4LiB4Li44Lih4Liy4LijCivguILguLHguJnguJjguKrguLHguJnguJTguLLguJkKK+C4guC4seC4meC4mOC4suC4p+C4suC4owor4LiC4Lix4LiZ4Lir4Lih4Liy4LiBCivguILguLHguJoKK+C4guC4seC4ogor4LiC4Lix4LinCivguILguLHguYnguKcKK+C4guC4sgor4LiC4LmI4LiyCivguILguYnguLIKK+C4guC4suC4gQor4LiC4Liy4LiB4LmK4Lin4LiiCivguILguLLguYDguIHguKfguLXguKLguJkKK+C4guC4suC4hwor4LiC4LmI4Liy4LiHCivguILguYnguLLguIcKK+C4guC5ieC4suC4h+C4geC4o+C4sOC4lOC4suC4mQor4LiC4LmJ4Liy4LiH4LmA4LiH4Li04LiZCivguILguLLguIfguYHguJTguIcKK+C4guC5ieC4suC4h+C4leC4sOC5gOC4oOC4sgor4LiC4LmJ4Liy4LiH4Lil4Liy4LiiCivguILguLLguJPguLgKK+C4guC4suC4lAor4LiC4Liy4LiX4LiZ4Li14Lii4LiwCivguILguLLguJkKK+C4guC5iOC4suC4mQor4LiC4Liy4LiaCivguILguLLguKEKK+C4guC5ieC4suC4oQor4LiC4Liy4LiiCivguILguYjguLLguKIKK+C4guC4suC4pQor4LiC4Liy4LinCivguILguYjguLLguKcKK+C4guC5ieC4suC4pwor4LiC4LmJ4Liy4Lin4LiE4LizCivguILguYnguLLguKfguIjguLXguYgKK+C4guC4suC4p+C4iOC4teC4mgor4LiC4LmJ4Liy4Lin4LiV4LmJ4LihCivguILguYnguLLguKfguJXguK3guIEKK+C4guC5ieC4suC4p+C4meC4gQor4LiC4Liy4Lin4Lie4Lin4LiHCivguILguLLguKfguKHguYnguLIKK+C4guC5ieC4suC4p+C4oeC4tOC5iOC4mQor4LiC4LmJ4Liy4Lin4LmA4Lii4LmH4LiZ4LmD4LiV4LmJCivguILguYnguLLguKfguYDguKLguYfguJnguYDguKvguJnguLfguK0KK+C4guC5ieC4suC4p+C4quC4suC4owor4LiC4LmJ4Liy4Lin4Lir4Liy4LiH4LiK4LmJ4Liy4LiHCivguILguLLguKfguYPguKvguI3guYgKK+C4guC5ieC4suC4p+C5g+C4q+C4oeC5iOC4meC5ieC4reC4ogor4LiC4LmJ4Liy4Lin4LmD4Lir4Lih4LmI4LmD4Lir4LiN4LmICivguILguYnguLLguKjguLbguIEKK+C4guC5ieC4suC4q+C4peC4p+C4hwor4LiC4LmJ4Liy4Lir4Lil4Lin4LiH4Lir4Lil4Lix4LiH4Lil4Liy4LiiCivguILguLMKK+C4guC5iOC4s+C5gOC4guC4teC4ouC4pwor4LiC4Li04LiBCivguILguLTguIHguYYKK+C4guC4tOC4hwor4LiC4Li04LmI4LiHCivguILguLTguJvguKrguLHguJfguYLguJcKK+C4guC4tOC4oQor4LiC4Li14LmICivguILguLXguYkKK+C4guC4teC5ieC4geC4sgor4LiC4Li14LmJ4LiB4Liy4LiU4LiHCivguILguLXguYnguIHguLLguYHguJTguIcKK+C4guC4teC5ieC4geC4suC5gOC4q+C4peC4teC5iOC4ouC4oQor4LiC4Li14LmJ4LiC4LihCivguILguLXguYnguILguKfguIcKK+C4guC4teC5ieC4guC4uOC4ogor4LiC4Li14LmJ4LiE4Lij4Lit4LiBCivguILguLXguYnguITguKfguLLguKIKK+C4guC4teC5ieC5guC4hOC4o+C4hwor4LiC4Li14LiT4LiwCivguILguLXguJPguLLguKrguJ4KK+C4guC4teC4lAor4LiC4Li14LmJ4LiV4Lix4LiH4LiZ4Li1CivguILguLXguYnguJXguLTguYnguKcKK+C4guC4teC5ieC5hOC4leC5iQor4LiC4Li14LmJ4LmE4LiWCivguILguLXguJvguJnguLLguKfguLjguJgKK+C4guC4teC5ieC4nOC4tuC5ieC4hwor4LiC4Li14LmJ4Lih4Lit4LiUCivguILguLXguYnguKLguK3guIEKK+C4guC4teC5ieC4o+C4suC4lAor4LiC4Li14LmJ4LmB4Lij4LiUCivguILguLXguYnguKrguLnguJQKK+C4guC4teC5ieC4q+C4meC4reC4mQor4LiC4Li14LmJ4Lir4LiZ4LmJ4LiyCivguILguLXguYnguKvguJnguLkKK+C4guC4teC5ieC4q+C4oeC4uQor4LiC4Li14LmJ4LmA4Lir4Lil4LmH4LiBCivguILguLXguYnguK3guYnguJkKK+C4guC4teC5ieC4reC5ieC4suC4ogor4LiC4Li24LiHCivguILguLbguYnguIcKK+C4guC4tuC5ieC4mQor4LiC4Li24LmJ4LiZ4LiJ4LmI4Liy4LiiCivguILguLfguJkKK+C4guC4t+C5iOC4mQor4LiC4Li34LmI4LitCivguILguLfguYjguK3guJzguLUKK+C4guC4uOC4gQor4LiC4Li44LiUCivguILguLjguJfguJfguIHguJnguLTguIHguLLguKIKK+C4guC4uOC4mQor4LiC4Li44LmI4LiZCivguILguLjguJnguJfguK3guIcKK+C4guC4uOC4meC5geC4nOC4mQor4LiC4Li44LiZ4LmA4Lie4LmH4LiUCivguILguLjguJvguJvguLTguJvguLLguKrguLTguIHguYDguJvguKPguJUKK+C4guC4uOC4oQor4LiC4Li44LiiCivguILguLkKK+C4guC4ueC5iAor4LiC4Li54LiUCivguYDguIIKK+C5gOC4guC5iQor4LmA4LiC4LiBCivguYDguILguYfguIcKK+C5gOC4guC5iOC4hwor4LmA4LiC4LiI4LijCivguYDguILguYfguI0KK+C5gOC4guC5h+C4jeC5g+C4iAor4LmA4LiC4LmH4LiUCivguYDguILguJTguLIKK+C5gOC4guC4lQor4LmA4LiC4LiZCivguYDguILguYfguJkKK+C5gOC4guC5iOC4mQor4LmA4LiC4LiZ4LiHCivguYDguILguJnguYfguJQKK+C5gOC4guC4meC4ogor4LmA4LiC4Lia4LmH4LiI4LiC4Lia4Lin4LiZCivguYDguILguJrguYfguJUKK+C5gOC4guC5h+C4oQor4LmA4LiC4LmJ4LihCivguYDguILguYnguKHguILguLLguJoKK+C5gOC4guC4oeC5h+C4hwor4LmA4LiC4Lih4LmH4LiU4LmB4LiC4Lih4LmICivguYDguILguKHguYjguJkKK+C5gOC4guC4oeC5ieC4mQor4LmA4LiC4Lih4LmJ4LiZ4LiC4Liw4Lih4Lix4LiBCivguYDguILguKHguKMKK+C5gOC4guC4oeC4sgor4LmA4LiC4Lih4LmI4LiyCivguYDguILguKHguLLguYLguIHguKPguKIKK+C5gOC4guC4oeC4t+C4reC4mgor4LmA4LiC4LiiCivguYDguILguKLguIEKK+C5gOC4guC4ouC5iOC4hwor4LmA4LiC4Lii4LiV4Liy4LiiCivguYDguILguKLguYnguK3guYHguILguKLguYjguIcKK+C5gOC4guC4ouC4reC4sOC4guC4ouC4sAor4LmA4LiC4Lii4LmI4LiyCivguYDguILguKLguLTguJkKK+C5gOC4guC4ouC4tOC4mgor4LmA4LiC4Lii4Li14Lii4Lin4LiC4Lii4Lit4LiZCivguYDguILguKLguLfguYnguK3guJkKK+C5gOC4guC4o+C4reC4sAor4LmA4LiC4Lil4LiHCivguYDguILguKXguK3guLAKK+C5gOC4guC4peC4sAor4LmA4LiC4Lil4LiyCivguYDguILguKXguLLguLAKK+C5gOC4guC4pwor4LmA4LiC4Lip4LiV4LijCivguYDguILguKnguKEKK+C5gOC4guC4qeC4teC4ouC4owor4LmA4LiC4Lis4LiwCivguYDguILguLDguILguLAKK+C5gOC4guC4sgor4LmA4LiC4LmI4LiyCivguYDguILguYnguLIKK+C5gOC4guC5ieC4suC4q+C4oeC4tOC5ieC4mQor4LmA4LiC4Li04LiHCivguYDguILguLTguJkKK+C5gOC4guC4tOC4mgor4LmA4LiC4Li14LmI4LiiCivguYDguILguLXguKLguIcKK+C5gOC4guC4teC4ouC4h+C4nuC4o+C4sOC4meC4suC4h+C4reC4teC5iAor4LmA4LiC4Li14Lii4LiH4Lie4Lij4LmJ4LiyCivguYDguILguLXguKLguJQKK+C5gOC4guC4teC4ouC4mQor4LmA4LiC4Li14LmI4Lii4LiZCivguYDguILguLXguKLguKEKK+C5gOC4guC4teC4ouC4pwor4LmA4LiC4Li14LmJ4Lii4LinCivguYDguILguLXguKLguLAKK+C5gOC4guC4t+C4rQor4LmA4LiC4Li34Lit4LiHCivguYDguILguLfguYjguK3guIcKK+C5gOC4guC4t+C5iOC4reC4mQor4LmA4LiC4Li34Lit4LihCivguYHguIIKK+C5geC4guC5iQor4LmB4LiC4LiBCivguYHguILguIHguYDguJXguYnguLIKK+C5geC4guC5h+C4hwor4LmB4LiC4LmI4LiHCivguYHguILguYnguIcKK+C5geC4guC4mQor4LmB4LiC4LmI4LiZCivguYHguILguYnguJkKK+C5geC4guC4meC4hwor4LmB4LiC4LiZ4LiwCivguYHguILguKEKK+C5geC4guC4oeC5h+C4mgor4LmB4LiC4Lih4LmI4LinCivguYHguILguKLguYfguIHguYYKK+C5geC4guC4ouC4hwor4LmB4LiC4Lii4LmI4LiHCivguYHguILguKLguIfguKvguJnguLkKK+C5geC4guC4peC4sAor4LmB4LiC4Lin4LiBCivguYHguILguKfguIcKK+C5geC4guC4p+C4mQor4LmB4LiC4Lin4LiZ4Lil4Lit4LiiCivguYHguILguKfguLAKK+C5geC4guC4quC4o+C5jAor4LmC4LiCCivguYLguILguIEKK+C5guC4guC5iOC4hwor4LmC4LiC4LiUCivguYLguILguJTguIcKK+C5guC4guC4mQor4LmC4LiC4LiZ4LiHCivguYLguILguKEKK+C5guC4guC4oeC4hwor4LmC4LiC4Lih4LiUCivguYLguILguKHguJTguKLguLIKK+C5guC4guC4ouC4gQor4LmC4LiC4Lii4LiHCivguYLguILguKLguYjguIcKK+C5guC4guC4ouC4lAor4LmC4LiC4Lii4LihCivguYLguILguKXguIEKK+C5guC4guC4peC4geC5hgor4LmC4LiC4Lil4LiHCivguYLguILguKXguJkKK+C5guC4guC4peC4meC4l+C4p+C4suC4owor4LmC4LiC4Lip4LihCivguYTguIIKK+C5hOC4guC5iAor4LmE4LiC4LmJCivguYTguILguYjguJTguLHguJkKK+C5hOC4guC5iOC4oeC4uOC4gQor4LmE4LiC4Lij4LiyCivguYTguILguKfguYgKK+C5hOC4guC4p+C5iQor4LmE4LiC4Lip4LiiCivguYTguILguKrguLfguK0KK+C5hOC4guC5gOC4quC4meC4teC4ouC4lAor4LmE4LiC4Lir4Li5CivguYTguILguYjguYDguKvguKXguLfguK3guIcKK+C4hAor4LiE4LiBCivguITguITguJnguLAKK+C4hOC4hOC4meC4seC4oeC4nuC4owor4LiE4LiE4LiZ4Liy4LiH4LiE4LmMCivguITguITguJnguLLguJnguJXguYwKK+C4hOC4hwor4LiE4LiH4LiE4LiyCivguITguIfguITguLLguYDguJTguLfguK3guJQKK+C4hOC4h+C5hOC4hOC4ogor4LiE4LiK4Lij4Liy4LiKCivguITguIrguKrguYjguLLguJkKK+C4hOC4iuC4suC4iuC4suC4leC4tAor4LiE4LiK4Liy4LiK4Li14LieCivguITguIrguLLguJjguLLguKMKK+C4hOC4iuC4suC4oOC4o+C4k+C5jAor4LiE4LiK4Liy4Lii4Li44Lij4LmA4Lin4LiKCivguITguIrguLLguKPguLUKK+C4hOC4iuC4tOC4meC4l+C4owor4LiE4LmA4LiK4LiZ4LiX4Lij4LmMCivguITguJPguJkKK+C4hOC4k+C4meC4sgor4LiE4LiT4LmC4Lig4LiK4LiZ4LmMCivguITguJPguLAKK+C4hOC4k+C4tOC4geC4sgor4LiE4LiT4Li04LiVCivguITguYDguJPguKgKK+C4hOC4lAor4LiE4LiU4Li1CivguITguJUKK+C4hOC4leC4tAor4LiE4LiX4LiyCivguITguJkKK+C4hOC5ieC4mQor4LiE4LiZ4LiX4LiyCivguITguJnguJfguLTguKrguK0KK+C4hOC4meC4l+C4tOC4quC4reC4l+C4sOC5gOC4pQor4LiE4LiZ4LiX4Li1CivguITguJnguJfguLXguYDguILguKHguLIKK+C4hOC4meC4l+C4teC4quC4rQor4LiE4LiZ4LmC4LiXCivguITguJnguJjguYwKK+C4hOC4meC4mOC4o+C4o+C4nuC5jAor4LiE4LiZ4Lil4LiwCivguITguYDguJnguIjguKMKK+C4hOC4mgor4LiE4LihCivguITguKHguJnguYwKK+C4hOC4oeC4meC4suC4geC4suC4owor4LiE4Lih4LiZ4Liy4LiE4LihCivguITguKHguLTguIHguKDguLHguJUKK+C4hOC4o+C4gQor4LiE4Lij4LmI4LiHCivguITguKPguJoKK+C4hOC4o+C4muC4luC5ieC4p+C4mQor4LiE4Lij4Lij4LiK4Li04LiVCivguITguKPguKPguKAKK+C4hOC4o+C4o+C4oOC5jAor4LiE4Lij4Lij4Lig4LiY4Liy4LiV4Li4CivguITguKPguKPguKDguKHguKUKK+C4hOC4o+C4o+C4oOC4suC4mOC4suC4mQor4LiE4Lij4Lij4LmC4Lig4LiX4LijCivguITguKPguKPguKXguK3guIcKK+C4hOC4o+C4o+C5guC4peC4hwor4LiE4Lij4Lij4LmE4LilCivguITguKPguKPguKvguLTguJUKK+C4hOC4o+C4p+C4jQor4LiE4Lij4Lin4LiN4Lir4LiyCivguITguKPguKfguLHguIEKK+C4hOC4o+C4p+C4tQor4LiE4Lij4Lir4LiyCivguITguKPguK3guIEKK+C4hOC4o+C4reC4hwor4LiE4Lij4Lit4LiH4LmB4LiE4Lij4LiHCivguITguKPguYjguK3guYDguIfguLLguLAKK+C4hOC4o+C5iOC4reC5gOC4l+C4teC4ouC4mQor4LiE4Lij4Lit4LiaCivguITguKPguK3guJrguIjguLHguIHguKPguKfguLLguKUKK+C4hOC4o+C4reC4muC4leC4peC4seC4mgor4LiE4Lij4LmI4Lit4LihCivguITguKPguLAKK+C4hOC4o+C4sOC5gOC4oeC4tOC4mQor4LiE4Lij4Liw4LmB4Lil4LiHCivguITguKPguLDguYTguKUKK+C4hOC4o+C4sOC5geC4p+C4hwor4LiE4Lij4Liw4Lir4LiZCivguITguKPguLDguKvguKfguJkKK+C4hOC4o+C4sOC4q+C4suC4ogor4LiE4Lij4Liw4Lir4Li04LinCivguITguKPguLDguYLguKvguKIKK+C4hOC4o+C4seC5iOC4hwor4LiE4Lij4Lix4LmJ4LiHCivguITguKPguLHguJTguYDguITguKPguYjguIcKK+C4hOC4o+C4seC4mQor4LiE4Lij4Lix4LmI4LiZCivguITguKPguLHguYnguJkKK+C4hOC4o+C4seC4mgor4LiE4Lij4Lix4LinCivguITguKPguLIKK+C4hOC4o+C5iOC4sgor4LiE4Lij4Liy4LiBCivguITguKPguLLguIcKK+C4hOC4o+C4suC4jQor4LiE4Lij4Liy4LiUCivguITguKPguYnguLLguJkKK+C4hOC4o+C4suC4mgor4LiE4Lij4Liy4Lia4Lir4Lih4Li5CivguITguKPguLLguKEKK+C4hOC4o+C5ieC4suC4oQor4LiE4Lij4Liy4Lih4LiE4Lij4Lix4LiZCivguITguKPguLLguKcKK+C4hOC4o+C5iOC4suC4pwor4LiE4Lij4Liy4LiqCivguITguKPguLMKK+C4hOC4o+C5iOC4swor4LiE4Lij4Li04Lib4LiX4Lit4LiZCivguITguKPguLTguKrguJXguYwKK+C4hOC4o+C4teC4hOC4o+C4rQor4LiE4Lij4Li14LiaCivguITguKPguLXguKEKK+C4hOC4o+C4teC4qeC4oeC4suC4ouC4seC4mQor4LiE4Lij4Li2CivguITguKPguLbguIHguITguKPguLfguYnguJkKK+C4hOC4o+C4tuC4geC5guC4hOC4o+C4oQor4LiE4Lij4Li24LmI4LiHCivguITguKPguLbguJkKK+C4hOC4o+C4tuC4oQor4LiE4Lij4Li24LmJ4LihCivguITguKPguLbguKHguITguKPguLgKK+C4hOC4o+C4t+C4lAor4LiE4Lij4Li34LiZCivguITguKPguLfguYnguJkKK+C4hOC4o+C4t+C4meC4hOC4o+C4seC5iOC4mQor4LiE4Lij4Li34LmJ4LiZ4LiE4Lij4Li24LiBCivguITguKPguLfguYnguJnguYDguITguKPguIcKK+C4hOC4o+C4t+C4rQor4LiE4Lij4Li4CivguITguKPguLjguITguKPguLAKK+C4hOC4o+C4uOC4kQor4LiE4Lij4Li44LiR4LiB4Lij4Liw4LiX4LiHCivguITguKPguLjguYjguJkKK+C4hOC4o+C4uOC5iOC4meC4hOC4tOC4lAor4LiE4Lij4Li44Lih4LmA4LiE4Lij4Li34LitCivguITguKPguLjguKIKK+C4hOC4o+C4uOC4p+C4meC4sgor4LiE4Lij4Li5CivguITguKPguLnguYgKK+C4hOC4o+C4ueC4lAor4LiE4Lik4LmC4LiG4LipCivguITguKTguJnguJbguYwKK+C4hOC4pOC4qwor4LiE4Lik4Lir4Lia4LiU4Li1CivguITguKTguKvguJvguLHguJXguJnguLUKK+C4hOC4pOC4q+C4seC4quC4luC5jAor4LiE4Lik4Lir4LiyCivguITguKTguKvguLLguKrguJnguYwKK+C4hOC4pQor4LiE4Lil4Lin4LiHCivguITguKXguK0KK+C4hOC4peC5ieC4rQor4LiE4Lil4Lit4LiBCivguITguKXguK3guIcKK+C4hOC4peC5iOC4reC4hwor4LiE4Lil4LmJ4Lit4LiHCivguITguKXguK3guJQKK+C4hOC4peC4reC4mQor4LiE4Lil4LmJ4Lit4LiiCivguITguKXguK3guKPguLXguJkKK+C4hOC4peC4reC5guC4o+C4n+C4reC4o+C4oeC5jAor4LiE4Lil4Lit4LmC4Lij4Lif4Li14Lil4Lil4LmMCivguITguKXguLAKK+C4hOC4peC4sOC4hOC4peC4uOC5ieC4hwor4LiE4Lil4Lix4LiBCivguITguKXguLHguYjguIEKK+C4hOC4peC4seC5iOC4geC5hgor4LiE4Lil4Lix4LiHCivguITguKXguLHguYjguIcKK+C4hOC4peC4seC4leC4iuC5jAor4LiE4Lil4Lix4LiaCivguITguKXguLHguJrguITguKXguYnguLLguKIKK+C4hOC4peC4sgor4LiE4Lil4LmJ4LiyCivguITguKXguLLguIfguYHguITguKXguIcKK+C4hOC4peC4suC4lAor4LiE4Lil4Liy4LiZCivguITguKXguLLguKIKK+C4hOC4peC5ieC4suC4ogor4LiE4Lil4LmJ4Liy4Lii4LiE4Lil4Li24LiHCivguITguKXguYjguLLguKcKK+C4hOC4peC4suC4qAor4LiE4Lil4LizCivguITguKXguYjguLMKK+C4hOC4peC5ieC4swor4LiE4Lil4Li04LiHCivguITguKXguLTguYnguIfguYLguITguKXguIcKK+C4hOC4peC4tOC4meC4tOC4gQor4LiE4Lil4Li1CivguITguKXguLXguYgKK+C4hOC4peC4tuC4hwor4LiE4Lil4Li34LmI4LiZCivguITguKXguLfguYjguJnguYTguKrguYkKK+C4hOC4peC4t+C5iOC4meC5gOC4q+C4teC4ouC4mQor4LiE4Lil4Li44LiBCivguITguKXguLjguIHguITguKXguLLguJkKK+C4hOC4peC4uOC5ieC4hwor4LiE4Lil4Li44LiaCivguITguKXguLjguKEKK+C4hOC4peC4uOC5iOC4oQor4LiE4Lil4Li44LmJ4LihCivguITguKfguIcKK+C4hOC4p+C4kwor4LiE4Lin4LiZCivguITguKfguJoKK+C4hOC4p+C4muC5geC4meC5iOC4mQor4LiE4Lin4LiiCivguITguKfguKMKK+C4hOC4p+C4seC4gQor4LiE4Lin4Lix4LiB4LiE4LmJ4Lit4LiZCivguITguKfguLHguYjguIfguITguKfguYnguLLguIcKK+C4hOC4p+C4seC4mQor4LiE4Lin4Lix4LmI4LiZCivguITguKfguYnguLIKK+C4hOC4p+C4suC4gQor4LiE4Lin4LmJ4Liy4LiHCivguITguKfguLLguI0KK+C4hOC4p+C4suC4mQor4LiE4Lin4LmJ4Liy4LiZCivguITguKfguLLguKEKK+C4hOC4p+C4suC4oeC4hOC4peC4suC4lAor4LiE4Lin4Liy4Lih4LmA4LiE4Lij4Li14Lii4LiUCivguITguKfguLLguKHguYHguITguYnguJkKK+C4hOC4p+C4suC4oeC5gOC4ieC4t+C5iOC4reC4ogor4LiE4Lin4Liy4Lih4LiK4Li34LmJ4LiZCivguITguKfguLLguKHguJbguYjguKfguIcKK+C4hOC4p+C4suC4oeC4luC4teC5iAor4LiE4Lin4Liy4Lih4Lii4Liy4Lin4LiE4Lil4Li34LmI4LiZCivguITguKfguLLguKHguKPguLnguYnguKrguLbguIHguYDguILguLfguYjguK3guIcKK+C4hOC4p+C4suC4oeC4o+C4ueC5ieC4quC4tuC4geC4lOC5ieC4reC4ogor4LiE4Lin4Liy4Lih4Lij4Li54LmJ4Liq4Li24LiB4LmA4LiU4LmI4LiZCivguITguKfguLLguKHguYDguKPguYjguIcKK+C4hOC4p+C4suC4oeC5gOC4o+C5h+C4pwor4LiE4Lin4Liy4Lih4Lir4LiZ4LmI4Lin4LiHCivguITguKfguLLguKIKK+C4hOC4p+C5iOC4suC4pwor4LiE4Lin4LmI4LizCivguITguKfguLTguJnguLTguJkKK+C4hOC4p+C4tOC4p+C5hgor4LiE4Lin4Li04Lin4LiE4Lin4Lix4LiHCivguITguKfguLTguKfguITguKfguYjguLLguIcKK+C4hOC4p+C4tOC4p+C4hOC4p+C5ieC4suC4hwor4LiE4Lin4Li14LiZ4Liq4Li04Lij4Li04LiB4Li04LiV4Li04LmMCivguITguKvguLHguJAKK+C4hOC4rQor4LiE4LmJ4LitCivguITguK3guIEKK+C4hOC5h+C4reC4geC4hOC4seC4qgor4LiE4LmH4Lit4LiB4LmA4LiX4LilCivguITguK3guITguLLguJkKK+C4hOC4reC5gOC4hOC4i+C4reC4ouC4lOC5jAor4LiE4Lit4LiH4LmA4LiB4Lij4LiqCivguITguYjguK3guIfguK3guYnguK3guKIKK+C4hOC4reC4lAor4LiE4Lit4LmA4LiV4LmH4LiaCivguITguK3guJkKK+C4hOC5iOC4reC4mQor4LiE4LmJ4Lit4LiZCivguITguK3guJnguIHguKPguLXguJUKK+C4hOC5ieC4reC4meC4geC4peC4reC4hwor4LiE4Lit4LiZ4LmA4LiU4LiZ4LmA4LiL4Lit4Lij4LmMCivguITguYnguK3guJnguJXguLXguJnguKvguKHguLIKK+C4hOC5ieC4reC4meC4l+C4reC4hwor4LiE4Lit4LiZ4Lin4Lit4LiiCivguITguK3guJnguYHguKfguJnguJXguYwKK+C4hOC4reC4meC5gOC4quC4tOC4o+C5jOC4lQor4LiE4LmJ4Lit4LiZ4Lir4Lit4LiiCivguITguK3guJoKK+C4hOC4reC4oQor4LiE4LmI4Lit4LihCivguITguYnguK3guKEKK+C4hOC4reC4oeC4nuC4tOC4p+C5gOC4leC4reC4o+C5jAor4LiE4Lit4Lih4Lih4Liy4LiZ4LmC4LiUCivguITguK3guKHguKHguLTguKfguJnguLTguKrguJXguYwKK+C4hOC4reC4ogor4LiE4LmI4Lit4LiiCivguITguYnguK3guKIKK+C4hOC5iOC4reC4ouC5hgor4LiE4Lit4Lii4Lil4LmMCivguITguK3guKPguYzguJQKK+C4hOC4reC4o+C5jOC4lQor4LiE4Lit4Lij4Lix4Lib4LiK4Lix4LmI4LiZCivguITguK3guKXguLHguKHguJnguYwKK+C4hOC4reC5gOC4peC4quC5gOC4leC4reC4o+C4reC4pQor4LiE4Lit4LmB4Lil4LiZCivguITguK3guKrguJXguLTguIHguYLguIvguJTguLIKK+C4hOC4reC5geC4q+C5ieC4hwor4LiE4LiwCivguITguYjguLAKK+C4hOC4sOC5hOC4guC4p+C5iAor4LiE4Liw4LiE4LmJ4Lit4LiiCivguITguLDguITguLLguJkKK+C4hOC4sOC4hOC4tuC4hwor4LiE4Liw4LiZ4LiZCivguITguLDguJnguK3guIcKK+C4hOC4sOC4meC5ieC4sgor4LiE4Liw4LiZ4Li24LiHCivguITguLDguYDguJkKK+C4hOC4sOC5gOC4meC4h+C4o+C5ieC4suC4ogor4LiE4Liw4LmA4LiZ4LmH4LiUCivguITguLDguYHguJnguJkKK+C4hOC4sOC5g+C4mQor4LiE4Liw4Lih4LizCivguITguLDguKHguLbguIEKK+C4hOC4sOC4ouC4seC5ieC4meC4hOC4sOC4ouC4rQor4LiE4Liw4LmA4Lii4LitCivguITguLHguIEKK+C4hOC4seC5iOC4gQor4LiE4Lix4LiE4LiZCivguITguLHguITguJnguLAKK+C4hOC4seC4hOC4meC4seC4oeC4nuC4owor4LiE4Lix4LiE4LiZ4Liy4LiH4LiE4LmMCivguITguLHguITguJnguLLguJnguJXguYwKK+C4hOC4seC5iOC4hwor4LiE4Lix4LiH4LmE4LiE4LiiCivguITguLHguIjguIkKK+C4hOC4seC4k+C4keC4oeC4suC4peC4sgor4LiE4Lix4LiT4LiR4Liq4Li54LiV4LijCivguITguLHguJQKK+C4hOC4seC4lOC5gOC4hOC5ieC4sgor4LiE4Lix4LiU4LiK4LmJ4Lit4LiZCivguITguLHguJTguKHguK3guJkKK+C4hOC4seC4l+C4peC4teC4ouC4sgor4LiE4Lix4LiZCivguITguLHguYjguJkKK+C4hOC4seC5ieC4mQor4LiE4Lix4LiZ4LiI4Liy4LihCivguITguLHguJnguInguLLguKIKK+C4hOC4seC4meC5guC4lOC4hwor4LiE4Lix4LiZ4LiX4Lij4LiHCivguITguLHguJnguJgKK+C4hOC4seC4meC4mOC5jAor4LiE4Lix4LiZ4LiY4Liy4Lij4Lij4Liy4Lip4LiO4Lij4LmMCivguITguLHguJnguKvguLLguKHguYDguKrguLfguK0KK+C4hOC4seC4mgor4LiE4Lix4Lia4LiE4LmJ4Lit4LiZCivguITguLHguJrguITguLIKK+C4hOC4seC4muC5geC4hAor4LiE4Lix4Lie4Lig4LmMCivguITguLHguJ7guYLguKDguJfguKMKK+C4hOC4seC4oeC4oOC4teC4o+C5jAor4LiE4Lix4LilCivguITguLHguKcKK+C4hOC4seC5iOC4pwor4LiE4LiyCivguITguYjguLIKK+C4hOC5ieC4sgor4LiE4LmI4Liy4LiE4LiaCivguITguLLguIcKK+C4hOC5iOC4suC4hwor4LiE4LmJ4Liy4LiHCivguITguLLguIfguITguIEKK+C4hOC5ieC4suC4h+C4hOC4suC4pwor4LiE4Liy4LiUCivguITguLLguJTguITguLHguYnguJkKK+C4hOC4suC4luC4sgor4LiE4Liy4LiX4Lit4Lil4Li04LiBCivguITguYjguLLguJfguLXguYgKK+C4hOC4suC4mAor4LiE4Liy4LmA4LiY4Lii4LmMCivguITguLLguJkKK+C4hOC5ieC4suC4mQor4LiE4Liy4LiZ4LmJ4LiyCivguITguLLguJoKK+C4hOC4suC4nuC4ouC4uOC4lQor4LiE4Liy4LihCivguITguLLguKHguJPguLXguKLguYwKK+C4hOC4suC4oeC4oOC4teC4o+C5jAor4LiE4Liy4Lih4Li1CivguITguLLguKIKK+C4hOC5iOC4suC4ogor4LiE4Liy4Lii4LiBCivguITguLLguKLguLHguJkKK+C4hOC4suC4o+C5jOC4muC4reC4mQor4LiE4Liy4Lij4LmM4Lia4Lit4LiZ4LmE4LiU4Lit4Lit4LiB4LmE4LiL4LiU4LmMCivguITguLLguKPguYzguJrguK3guJnguKHguK3guJnguK3guIHguYTguIvguJTguYwKK+C4hOC4suC4o+C5jOC4muC4reC5gOC4meC4lQor4LiE4Liy4Lij4LmM4Lia4Lit4Lil4Li04LiBCivguITguLLguKPguYzguJrguLnguYDguKPguYDguJXguK3guKPguYwKK+C4hOC4suC4o+C5jOC5guC4muC4o+C4seC4meC4lOC4seC4oQor4LiE4Liy4Lij4LmM4LmC4Lia4LmE4Liu4LmA4LiU4Lij4LiVCivguITguLLguKPguJ4KK+C4hOC4suC4o+C4oQor4LiE4Liy4Lij4Lin4LiwCivguITguLLguKPguLLguYDguJXguYkKK+C4hOC4suC4o+C4suC4p+C4suC4mQor4LiE4Liy4LinCivguITguYjguLLguKcKK+C4hOC5ieC4suC4pwor4LiE4Liy4Lin4LiV4Lit4LiHCivguITguLLguKfguLUKK+C4hOC4suC4p+C4uOC4lQor4LiE4Liy4LiqCivguITguYjguLLguKvguJQKK+C4hOC4swor4LiE4LmI4LizCivguITguYnguLMKK+C4hOC4s+C4lOC4teC4hOC4p+C4suC4ogor4LiE4Liz4LmD4LiV4LmJCivguITguLPguJnguKfguJMKK+C4hOC4s+C4meC4p+C4owor4LiE4Liz4LiZ4Lix4LiaCivguITguLPguJnguLHguKUKK+C4hOC4s+C4meC4tuC4hwor4LiE4Liz4LiZ4Li54LiTCivguITguLPguYLguJrguKUKK+C4hOC4s+C4neC4reC4ogor4LiE4Liz4LmA4Lie4Lil4Li04LiHCivguITguLPguKPguJkKK+C4hOC4s+C4o+C4mgor4LiE4Liz4Lij4Liy4LihCivguITguLPguYHguKrguJQKK+C4hOC4s+C5geC4q+C4hwor4LiE4Liz4LmC4Lit4LiHCivguITguLTguIHguYYKK+C4hOC4tOC4hwor4LiE4Li04LiUCivguITguLTguJnguLQKK+C4hOC4tOC4oeC4qwor4LiE4Li04Lih4Lir4Lix4LiZ4LiV4LmMCivguITguLTguKHguKvguLLguJnguLAKK+C4hOC4tOC4o+C4tAor4LiE4Li04Lij4Li1CivguITguLTguKXguLLguJnguLAKK+C4hOC4tOC4pwor4LiE4Li04LmJ4LinCivguITguLTguKvguLTguKrguLjguIIKK+C4hOC4teC5iAor4LiE4Li14LiVCivguITguLXguJXguIHguLAKK+C4hOC4teC4mgor4LiE4Li14LihCivguITguLXguKPguLUKK+C4hOC4teC4o+C4teC4muC4ueC4mQor4LiE4Li24LiBCivguITguLbguYjguIEKK+C4hOC4tuC5iOC4geC5hgor4LiE4Li24LiB4LiE4Lix4LiBCivguITguLbguIHguITguLLguKEKK+C4hOC4t+C4mQor4LiE4Li34LiaCivguITguLfguK0KK+C4hOC4uAor4LiE4Li44LiBCivguITguLjguIHguIHguLXguYkKK+C4hOC4uOC4geC5gOC4guC5iOC4sgor4LiE4Li44LiB4LiE4Lil4Liy4LiZCivguITguLjguIHguITguLLguKEKK+C4hOC4uOC4geC4nuC4suC4l+C4ouC5jAor4LiE4Li44LiE4LiwCivguITguLjguIcKK+C4hOC4uOC5ieC4hwor4LiE4Li44LiTCivguITguLjguJPguITguYjguLIKK+C4hOC4uOC4k+C4mOC4o+C4o+C4oQor4LiE4Li44LiT4LiZ4Liy4LihCivguITguLjguJPguJrguJcKK+C4hOC4uOC4k+C4m+C4o+C4sOC5guC4ouC4iuC4meC5jAor4LiE4Li44LiT4Lie4Li04LmA4Lio4LipCivguITguLjguJPguKDguLLguJ4KK+C4hOC4uOC4k+C4peC4seC4geC4qeC4k+C4sAor4LiE4Li44LiT4Lil4Li44LiH4LiE4Li44LiT4Lib4LmJ4LiyCivguITguLjguJPguKfguLTguYDguKjguKkKK+C4hOC4uOC4k+C4p+C4uOC4kuC4tAor4LiE4Li44LiT4Lio4Lix4Lie4LiX4LmMCivguITguLjguJPguKrguKHguJrguLHguJXguLQKK+C4hOC4uOC4k+C4suC4geC4owor4LiE4Li44LiT4Liy4Lil4Lix4LiiCivguITguLjguJPguLnguJvguIHguLLguKMKK+C4hOC4uOC5guC4k+C4m+C4geC4suC4owor4LiE4Li44LiUCivguITguLjguJTguJfguLDguKPguLLguJQKK+C4hOC4uOC4lQor4LiE4Li44LiV4LiV4Li0CivguITguLjguYjguJkKK+C4hOC4uOC5ieC4mQor4LiE4Li44LibCivguITguLjguJvguJXguYwKK+C4hOC4uOC4m+C4leC4tAor4LiE4Li44LihCivguITguLjguYjguKEKK+C4hOC4uOC5ieC4oQor4LiE4Li44LmJ4Lih4LiU4Li14LiE4Li44LmJ4Lih4Lij4LmJ4Liy4LiiCivguITguLjguYnguKHguYDguJfguYnguLIKK+C4hOC4uOC4oeC4neC4reC4ogor4LiE4Li44LiiCivguITguLjguYnguKIKK+C4hOC4uOC4o+C4uAor4LiE4Li44Lil4LiyCivguITguLjguKXguLTguIHguYjguLIKK+C4hOC4uOC4peC4teC4geC4suC4owor4LiE4Li5CivguITguLnguYgKK+C4hOC4ueC5iQor4LiE4Li54LiTCivguITguLnguJYKK+C4hOC4ueC4mQor4LiE4Li54Lib4Lit4LiHCivguITguLnguYDguKPguLXguKLguKEKK+C4hOC4ueC4q+C4sgor4LmA4LiE4LmJ4LmA4LiB4LmJCivguYDguITguYnguIcKK+C5gOC4hOC4iOC4iQor4LmA4LiE4LiT4LiR4LiwCivguYDguITguJQKK+C5gOC4hOC4mQor4LmA4LiE4LmA4Lia4Li04LilCivguYDguITguYfguKEKK+C5gOC4hOC4oeC4tQor4LmA4LiE4LiiCivguYDguITguKPguIcKK+C5gOC4hOC4o+C5iOC4hwor4LmA4LiE4Lij4LiH4LiE4Lij4LizCivguYDguITguKPguIfguITguKPguYjguLMKK+C5gOC4hOC4o+C4lOC4tOC4lQor4LmA4LiE4Lij4LiZCivguYDguITguKPguLIKK+C5gOC4hOC4o+C5iOC4sgor4LmA4LiE4Lij4Liy4Lir4LiT4Li1CivguYDguITguKPguLLguLDguKvguYwKK+C5gOC4hOC4o+C4teC4ouC4lAor4LmA4LiE4Lij4Li14Lii4LinCivguYDguITguKPguLfguK0KK+C5gOC4hOC4o+C4t+C4reC5gOC4guC4suC4meC5ieC4swor4LmA4LiE4Lij4Li34Lit4LmA4LiC4Liy4Lih4Lin4LiBCivguYDguITguKPguLfguYjguK3guIcKK+C5gOC4hOC4o+C4t+C4reC4iOC4seC4geC4o+C4oOC4ngor4LmA4LiE4Lil4LmJ4LiHCivguYDguITguKXguYfguJQKK+C5gOC4hOC4peC5ieC4mQor4LmA4LiE4Lil4LmJ4LiyCivguYDguITguKXguYjguLLguITguKXguYjguK3guIcKK+C5gOC4hOC4peC4tOC4muC5gOC4hOC4peC4tOC5ieC4oQor4LmA4LiE4Lil4Li04LmJ4LihCivguYDguITguKXguLXguKIKK+C5gOC4hOC4peC4teC5ieC4ouC4hOC4peC4tOC4hwor4LmA4LiE4Lil4Li34LmI4Lit4LiZCivguYDguITguKXguLfguK3guJoKK+C5gOC4hOC4p+C5ieC4hwor4LmA4LiE4Lir4LiwCivguYDguITguKvguLIKK+C5gOC4hOC4reC4sAor4LmA4LiE4LiyCivguYDguITguYnguLIKK+C5gOC4hOC4suC4meC5jOC5gOC4leC4reC4o+C5jAor4LmA4LiE4Liy4LmA4Lib4LmLCivguYDguITguLLguKPguJ4KK+C5gOC4hOC5ieC4suC4quC4meC4suC4oeC4q+C4peC4p+C4hwor4LmA4LiE4Liy4LiwCivguYDguITguLLguLDguYHguITguLAKK+C5gOC4hOC4teC5ieC4ogor4LmA4LiE4Li14Lii4LiHCivguYDguITguLXguKLguJQKK+C5gOC4hOC4teC4ouC4mQor4LmA4LiE4Li14Lii4LihCivguYDguITguLXguYjguKLguKEKK+C5gOC4hOC4teC4ouC4owor4LmA4LiE4Li14Lii4LinCivguYDguITguLXguYjguKLguKcKK+C5gOC4hOC4teC5ieC4ouC4pwor4LmA4LiE4Li34LmJ4LitCivguYDguITguLfguK3guIcKK+C5geC4hAor4LmB4LiE4LmICivguYHguITguYkKK+C5geC4hOC5geC4geC4pQor4LmB4LiE4LiK4LmA4LiK4Li14Lii4Lij4LmMCivguYHguITguJTguYDguKHguLXguKLguKEKK+C5geC4hOC5guC4l+C4lAor4LmB4LiE4LiZCivguYHguITguYjguJkKK+C5geC4hOC5ieC4mQor4LmB4LiE4LiaCivguYHguITguJrguKvguKHguLkKK+C5geC4hOC4m+C4i+C4ueC4pQor4LmB4LiE4LihCivguYHguITguKPguYgKK+C5geC4hOC4o+C4gQor4LmB4LiE4Lij4LiE4Lij4Lix4LmI4LiHCivguYHguITguKPguIcKK+C5geC4hOC4o+C4h+C5gOC4hOC4o+C4teC4ouC4pwor4LmB4LiE4Lij4LiwCivguYHguITguKXguITguLnguKXguLHguKoKK+C5geC4hOC4peC4hwor4LmB4LiE4Lil4LmA4LiL4Li14Lii4LihCivguYHguITguKXguJkKK+C5geC4hOC4peC5ieC4pwor4LmB4LiE4Lil4LmI4Lin4LiE4Lil4LmI4Lit4LiHCivguYHguITguKXguK3guKPguLUKK+C5geC4hOC4peC4tOC4n+C4reC4o+C5jOC5gOC4meC4teC4ouC4oQor4LmB4LiE4LmB4LilCivguYHguITguKcKK+C5geC4hOC4p+C4gQor4LmB4LiE4Lin4LmJ4LiHCivguYHguITguKfguYnguJkKK+C5geC4hOC4sAor4LmC4LiECivguYLguITguIEKK+C5guC4hOC4geC4geC4o+C4sOC4quC4uOC4mQor4LmC4LiE4LiB4LiB4Lij4Liw4Lit4Lit4LihCivguYLguITguIHguKHguYnguLIKK+C5guC4hOC4hOC4peC4suC4mQor4LmC4LiE4LmA4LiE4LiZCivguYLguITguYjguIcKK+C5guC4hOC5ieC4hwor4LmC4LiE4LiI4LijCivguYLguITguIjguKPguITguLLguKEKK+C5guC4hOC5ieC4igor4LmC4LiE4LmA4LiL4LmB4LiE4LiZ4LiV4LmMCivguYLguITguYTguIvguJnguYwKK+C5guC4hOC4leC4owor4LmC4LiE4LmB4LiX4LiZ4LmA4LiI4LiZ4LiV4LmMCivguYLguITguJjguLIKK+C5guC4hOC4mQor4LmC4LiE4LmI4LiZCivguYLguITguJnguJTguLTguJnguKrguK0KK+C5guC4hOC4meC4leC4suC4ouC4m+C4peC4suC4ouC5gOC4m+C5h+C4mQor4LmC4LiE4LiZ4Liq4Lih4LitCivguYLguITguJrguK3guKXguJXguYwKK+C5guC4hOC4m+C4nOC4geC4sAor4LmC4LiE4LihCivguYLguITguKHguYjguLIKK+C5guC4hOC4o+C4gQor4LmC4LiE4Lij4LiB4LiE4Lij4Lit4LiBCivguYLguITguKPguIHguITguKPguLLguIEKK+C5guC4hOC4o+C4hwor4LmC4LiE4Lij4LmI4LiHCivguYLguITguKPguYjguIfguITguKPguYjguLLguIcKK+C5guC4hOC4o+C4h+C5geC4hOC4owor4LmC4LiE4Lij4LihCivguYLguITguKPguYDguKHguLXguKLguKEKK+C5guC4hOC4o+C5guC4oeC5guC4i+C4oQor4LmC4LiE4Lij4Liy4LiKCivguYLguITguKUKK+C5guC4hOC4peC4hwor4LmC4LiE4Lil4LiZCivguYLguITguKfguJXguLIKK+C5guC4hOC4reC4reC4o+C5jOC4lOC4tOC5gOC4meC4lQor4LmD4LiE4LijCivguYPguITguKPguYgKK+C5g+C4hOC4o+C5iOC4hOC4o+C4p+C4jQor4LmE4LiECivguYTguITguYkKK+C5hOC4hOC4o+C5iQor4LmE4LiE4Lij4LmJ4LmA4LiE4Lij4Li34LitCivguYTguITguKUKK+C5hOC4hOC4peC5iQor4LiGCivguIbguIcKK+C4huC4jwor4LiG4LmC4LiP4LiX4LijCivguIbguJUKK+C4huC4mQor4LiG4LiZ4Liy4LiB4LijCivguIbguJnguLLguITguKEKK+C4huC4meC4suC4oeC4seC4ogor4LiG4LiZ4Liy4Lio4Lix4LiiCivguIbguYLguJnguJrguKUKK+C4huC4o+C4suC4p+C4suC4qgor4LiG4LmJ4Lit4LiHCivguIbguYnguK3guIfguKrguLLguKHguKLguYjguLLguJkKK+C4huC5iOC4sgor4LiG4Liy4LiPCivguIbguLLguJUKK+C4huC4suC4mQor4LmA4LiG4Li14LmI4Lii4LiZCivguYLguIbguKPguKfguLTguKoKK+C5guC4huC4qQor4LmC4LiG4Lip4LiBCivguYLguIbguKnguJPguLIKK+C5guC4huC4qeC4k+C4suC4geC4suC4owor4LmC4LiG4Lip4LiT4Liy4LiK4Lin4LiZ4LmA4LiK4Li34LmI4LitCivguYLguIbguKnguLTguJUKK+C5guC4huC4quC4p+C4seC4meC4leC5jAor4LiHCivguIfguIEKK+C4h+C4hwor4LiH4LiH4Li04LiUCivguIfguJQKK+C4h+C4lOC4h+C4suC4oQor4LiH4LiaCivguIfguKEKK+C4h+C4p+C4hwor4LiH4LmI4Lin4LiHCivguIfguKfguJQKK+C4h+C5iOC4p+C4mQor4LiH4LmJ4Lin4LiZCivguIfguKfguKLguIfguIcKK+C4h+C4rQor4LiH4LmJ4LitCivguIfguK3guIEKK+C4h+C4reC4geC5geC4h+C4gQor4LiH4LmI4Lit4LiHCivguIfguYjguK3guIfguYHguIfguYjguIcKK+C4h+C4reC5geC4hwor4LiH4Lit4LiUCivguIfguK3guJTguYHguIfguJQKK+C4h+C4reC4mQor4LiH4LmI4Lit4LiZCivguIfguYjguK3guJnguYHguIfguYjguJkKK+C4h+C4reC4meC4q+C4h+C5iOC4rQor4LiH4LmJ4Lit4LiZ4Lir4Lih4Li5CivguIfguK3guJoKK+C4h+C4reC4oQor4LiH4LmJ4Lit4LihCivguIfguK3guKIKK+C4h+C5iOC4reC4ogor4LiH4LiwCivguIfguLHguIHguYYKK+C4h+C4seC5iOC4geC5hgor4LiH4Lix4LmI4LiHCivguIfguLHguIfguYYKK+C4h+C4seC4lAor4LiH4Lix4LiZCivguIfguLHguJnguIfguIEKK+C4h+C4seC4mgor4LiH4Lix4LinCivguIfguLHguYjguKcKK+C4h+C4seC4p+C5gOC4h+C4teC4ogor4LiH4Lix4Lin4LiL4Lix4LiHCivguIfguLHguKfguYDguKXguLXguKIKK+C4h+C4sgor4LiH4LmI4LiyCivguIfguYnguLLguIcKK+C4h+C5iOC4suC5gOC4h+C4ogor4LiH4Liy4LmE4LiLCivguIfguLLguJkKK+C4h+C5iOC4suC4mQor4LiH4Liy4Lia4LmGCivguIfguLLguKEKK+C4h+C5iOC4suC4oQor4LiH4Liy4LiiCivguIfguYjguLLguKIKK+C4h+C5iOC4suC4ouC5ieC4reC4ogor4LiH4LmJ4Liy4LinCivguIfguLMKK+C4h+C5iOC4swor4LiH4LmJ4LizCivguIfguYjguLPguYYKK+C4h+C4tOC5ieC4pwor4LiH4Li14LiaCivguIfguLbguIHguYYKK+C4h+C4tuC4mQor4LiH4Li24LihCivguIfguLbguKHguIfguLMKK+C4h+C4uOC4lAor4LiH4Li44LiU4LmGCivguIfguLjguJnguIfguIcKK+C4h+C4uOC5iOC4meC4h+C5iOC4suC4mQor4LiH4Li44LiaCivguIfguLjguJrguYYKK+C4h+C4uOC4muC4h+C4tOC4mgor4LiH4Li44LmJ4LihCivguIfguLjguYjguKHguIfguYjguLLguKEKK+C4h+C4uOC4ogor4LiH4Li5CivguIfguLnguJoKK+C4h+C4ueC5iOC4q+C4meC4tQor4LmA4LiH4LmJCivguYDguIfguIEKK+C5gOC4h+C5h+C4mQor4LmA4LiH4LiiCivguYDguIfguYjguKvguKHguLbguIcKK+C5gOC4h+C4reC4sAor4LmA4LiH4Lit4Liw4LiH4LiwCivguYDguIfguLIKK+C5gOC4h+C5iOC4sgor4LmA4LiH4LmJ4LiyCivguYDguIfguLLguLAKK+C5gOC4h+C4tOC4mQor4LmA4LiH4Li14LmI4LiiCivguYDguIfguLXguYjguKLguIcKK+C5gOC4h+C4teC5iOC4ouC4mQor4LmA4LiH4Li14Lii4LiaCivguYDguIfguLXguYnguKLguKcKK+C5gOC4h+C4teC5ieC4ouC4p+C4o+C4sOC5gOC4o+C4tOC4hwor4LmA4LiH4Li14LmJ4Lii4Lin4Lij4Liz4Lil4Li24LiBCivguYDguIfguLXguYjguKLguKvguLkKK+C5gOC4h+C4t+C5ieC4rQor4LmA4LiH4Li34Lit4LiBCivguYDguIfguLfguYjguK3guIcKK+C5gOC4h+C4t+C5iOC4reC4h+C5hgor4LmA4LiH4Li34Lit4LiUCivguYDguIfguLfguK3guJTguIfguJQKK+C5gOC4h+C4t+C4reC4mQor4LmA4LiH4Li34LmI4Lit4LiZCivguYDguIfguLfguK3guJoKK+C5gOC4h+C4t+C5ieC4reC4oQor4LmB4LiHCivguYHguIfguYgKK+C5geC4h+C5iOC4hwor4LmB4LiH4LmI4LiZCivguYHguIfguYnguKEKK+C5geC4h+C4sAor4LmC4LiHCivguYLguIfguYgKK+C5guC4h+C4gQor4LmC4LiH4LiB4LmA4LiH4LiBCivguYLguIfguIcKK+C5guC4h+C5ieC4hwor4LmC4LiH4LmI4LiH4LmGCivguYLguIfguIfguYDguIfguIcKK+C5guC4h+C5iOC4h+C5gOC4h+C5iOC4hwor4LmC4LiH4LmA4LiHCivguYLguIfguJkKK+C5hOC4hwor4LmE4LiH4LmJCivguIgKK+C4iOC4gQor4LiI4LiHCivguIjguYjguIcKK+C4iOC5i+C4hwor4LiI4LiH4LiB4Lij4LihCivguIjguIfguIHguKUKK+C4iOC4h+C4geC4peC4meC4tQor4LiI4LiH4LmC4LiE4Lij4LmI4LiHCivguIjguIfguK3guKMKK+C4iOC4h+C4reC4suC4hwor4LiI4LiNCivguIjguJQKK+C4iOC4lOC4uOC4o+C4h+C4hOC5jAor4LiI4LiU4Li44Lij4LiwCivguIjguJXguLjguIrguLLguJXguLTguKrguLjguITguJnguJjguYwKK+C4iOC4leC4uOC4leC4luC4tQor4LiI4LiV4Li44Lij4LiH4LiE4LmC4LiK4LiECivguIjguJXguLjguKPguLLguJrguLLguKLguKDguLnguKHguLQKK+C4iOC4leC4uOC4o+C4suC4o+C4tOC4ouC4quC4seC4iAor4LiI4LiV4Li44Liq4LiU4Lih4Lig4LmMCivguIjguJfguLbguIcKK+C4iOC4mQor4LiI4LmJ4LiZCivguIjguJoKK+C4iOC4oQor4LiI4LmI4LihCivguIjguKHguKMKK+C4iOC4oeC4o+C4tQor4LiI4Lih4Li5CivguIjguKHguLnguIEKK+C4iOC4oeC4ueC4geC4m+C4peC4suC4q+C4peC4lAor4LiI4Lih4Li54LiB4Lib4Lil4Liy4LmE4Lir4LilCivguIjguKHguLnguIHguKvguKXguK3guJQKK+C4iOC4ouC4uOC4leC4tAor4LiI4LijCivguIjguKPguIEKK+C4iOC4o+C4geC4peC4ueC5iAor4LiI4Lij4LiB4LiyCivguIjguKPguYHguIHguKfguYjguIcKK+C4iOC4o+C4hOC4seC5iOC4hwor4LiI4Lij4LiI4Lij4Lix4LilCivguIjguKPguIjguLHguJQKK+C4iOC4o+C4k+C4sAor4LiI4Lij4LiUCivguIjguKPguJTguKUKK+C4iOC4o+C4muC4mQor4LiI4Lij4Lia4Lix4LiZCivguIjguKPguJrguLLguJcKK+C4iOC4o+C4oeC4seC4mQor4LiI4Lij4Lih4Li54LiBCivguIjguKPguKPguIjguLIKK+C4iOC4o+C4o+C5guC4iOC4qQor4LiI4Lij4Lij4LihCivguIjguKPguKPguKLguLIKK+C4iOC4o+C4o+C5guC4peC4hwor4LiI4Lij4Lij4LmI4LizCivguIjguKPguKXguKfguIcKK+C4iOC4o+C4peC5iOC4p+C4hwor4LiI4Lij4Lil4Liy4LiUCivguIjguKPguKXguLLguKIKK+C4iOC4o+C4peC4tOC5iOC4pwor4LiI4Lij4Lil4Li1CivguIjguKPguKXguLnguYgKK+C4iOC4o+C4p+C4iAor4LiI4Lij4Lin4LiUCivguIjguKPguKfguJTguIjguKPguLUKK+C4iOC4o+C4p+C4seC4gQor4LiI4Lij4LiqCivguIjguKPguK3guIEKK+C4iOC4o+C4sOC4geC4peC5ieC4suC4ogor4LiI4Lij4Liw4LiC4Liy4LiaCivguIjguKPguLDguYDguILguYkKK+C4iOC4o+C4sOC4hOC4peC4seC4mgor4LiI4Lij4Liw4LiE4Lil4LmJ4Liy4LiiCivguIjguKPguLDguITguKXguLjguYjguKEKK+C4iOC4o+C4sOC5geC4hOC4hwor4LiI4Lij4Liw4LiI4Li44LmI4LihCivguIjguKPguLDguJfguIEKK+C4iOC4o+C4sOC5gOC4l+C4tOC4mQor4LiI4Lij4Liw4LiZ4LizCivguIjguKPguLDguJrguLLguJkKK+C4iOC4o+C4sOC4muC4tQor4LiI4Lij4Liw4Lil4Li04LmI4LiHCivguIjguKPguLDguKXguLbguIcKK+C4iOC4o+C4sOC4peC4uOC4hwor4LiI4Lij4Lix4LilCivguIjguKPguLHguKoKK+C4iOC4o+C4suC4gQor4LiI4Lij4Liy4LiHCivguIjguKPguLLguIjguKMKK+C4iOC4o+C4suC4jQor4LiI4Lij4Liy4LiiCivguIjguKPguLLguKcKK+C4iOC4o+C4suC4qgor4LiI4Lij4Li04LiBCivguIjguKPguLTguIcKK+C4iOC4o+C4tOC4h+C5hgor4LiI4Lij4Li04LiTCivguIjguKPguLTguJUKK+C4iOC4o+C4tOC4ouC4sgor4LiI4Lij4Li04LinCivguIjguKPguLUKK+C4iOC4o+C4tuC4hwor4LiI4Lij4Li44LiBCivguIjguKPguLjguIcKK+C4iOC4o+C4ueC4hwor4LiI4Lij4Li54LiNCivguIjguKPguLnguKoKK+C4iOC5gOC4owor4LiI4LilCivguIjguKXguJnguJ7guKXguKjguLLguKrguJXguKPguYwKK+C4iOC4peC4meC4qOC4suC4quC4leC4o+C5jAor4LiI4Lil4LiZ4Li1CivguIjguKXguLIKK+C4iOC4peC4suC4iOC4pQor4LiI4Lin4LiBCivguIjguYrguKfguIEKK+C4iOC4p+C4hwor4LiI4LmJ4Lin4LiHCivguIjguYvguKfguIcKK+C4iOC4p+C4h+C4q+C4reC4oQor4LiI4Lin4LiUCivguIjguKfguJTguKXguLLguIEKK+C4iOC4p+C4mQor4LiI4Lin4LiaCivguIjguKfguLHguIEKK+C4iOC4rQor4LiI4LmI4LitCivguIjguYnguK0KK+C4iOC5i+C4rQor4LiI4Lit4LiBCivguIjguYnguK3guIEKK+C4iOC5iuC4reC4gQor4LiI4LmJ4Lit4LiB4LmGCivguIjguYrguK3guIHguYYKK+C4iOC5ieC4reC4geC5geC4iOC5ieC4gQor4LiI4LmJ4Lit4LiB4Lin4Lit4LiBCivguIjguK3guIcKK+C4iOC5iOC4reC4hwor4LiI4LmJ4Lit4LiHCivguIjguYvguK3guIcKK+C4iOC5ieC4reC4h+C5gOC4lQor4LiI4Lit4LiH4LmA4Lib4Lij4Li14Lii4LiHCivguIjguK3guIfguKvguIfguYjguK3guIcKK+C4iOC5ieC4reC4h+C4q+C4meC5iOC4reC4hwor4LiI4Lit4LiH4Lir4Lit4LiHCivguIjguK3guYHguIgKK+C4iOC5i+C4reC5geC4iOC5iwor4LiI4LmJ4Lit4LiK4LmJ4Liy4LiHCivguIjguK3guJQKK+C4iOC4reC4mQor4LiI4LmJ4Lit4LiZCivguIjguK3guJnguIjguYjguK0KK+C4iOC4reC4meC4q+C4uQor4LiI4Lit4LiaCivguIjguK3guKEKK+C4iOC5iOC4reC4oQor4LiI4LmI4Lit4Lih4LiI4LmI4Liy4LiiCivguIjguK3guKHguJfguK3guIcKK+C4iOC4reC4oeC4m+C4peC4reC4oQor4LiI4LmJ4Lit4Lih4Lib4LmJ4Lit4LihCivguIjguK3guKHguYDguJvguLLguLAKK+C4iOC4reC4oeC4quC4uOC4o+C4suC4h+C4hOC5jAor4LiI4LmI4Lit4LiiCivguIjguYnguK3guKIKK+C4iOC5i+C4reC4ogor4LiI4LiwCivguIjguYnguLAKK+C4iOC5iuC4sAor4LiI4LmL4LiwCivguIjguLDguIHguKPguLHguJTguIjguLDguIHguKPguLLguJQKK+C4iOC4sOC4geC4o+C4uOC4mQor4LiI4Liw4LiB4Lij4Li44Lih4LiI4Liw4LiB4Lij4Liy4LihCivguIjguLDguIHguKPguLnguJkKK+C4iOC4sOC4geC4peC4sAor4LiI4Liw4LiB4Lin4LiUCivguIjguLDguYDguIHguKPguYfguIcKK+C4iOC4sOC4guC4suC4mgor4LiI4Liw4LmA4LiC4LmJCivguIjguLDguYDguILguYfguJoKK+C4iOC4sOC4h+C4reC4ogor4LiI4Liw4LiI4LiwCivguIjguLDguIjguYnguLIKK+C4iOC4sOC5geC4iAor4LiI4Liw4LmB4LiI4LmJ4LiHCivguIjguLDguYHguIjguYnguJkKK+C4iOC4sOC5geC4iOC5iOC4oQor4LiI4Liw4LmE4LiI4LmJCivguIjguLDguJrguLHguJkKK+C4iOC4sOC4m+C4tOC5ieC4hwor4LiI4Liw4LmA4Lie4Lil4Li04LiHCivguIjguLDguKXguLDguYDguKHguYfguJQKK+C4iOC4sOC4peC4sOC4q+C4p+C4seC5iOC4mQor4LiI4Liw4Lil4Li44LiHCivguIjguLHguIEKK+C4iOC4seC5ieC4geC5hgor4LiI4Lix4LiB4LiB4Liy4LiiCivguIjguLHguYrguIHguIHguLTguYnguKEKK+C4iOC4seC4geC4guC4uAor4LiI4Lix4LiB4LiI4Lix4LmI4LiZCivguIjguLHguIHguIjguLXguYkKK+C4iOC4seC5iuC4geC4iOC4teC5iQor4LiI4Lix4LmK4LiB4LmA4LiU4Li14Lii4LihCivguIjguLHguIHguKMKK+C4iOC4seC4geC4o+C4nuC4suC4gQor4LiI4Lix4LiB4Lij4Lin4Liy4LiBCivguIjguLHguIHguKPguLTguJkKK+C4iOC4seC4geC4o+C4tQor4LiI4Lix4LmK4LiB4LmA4Lil4LmJ4LitCivguIjguLHguIHguKnguLgKK+C4iOC4seC4geC5geC4q+C4peC5iOC4mQor4LiI4Lix4LiHCivguIjguLHguYnguIcKK+C4iOC4seC5i+C4hwor4LiI4Lix4LiH4LiB4Lin4LiUCivguIjguLHguIfguIHguK3guJoKK+C4iOC4seC4h+C4geC4sgor4LiI4Lix4LiH4LiB4Li54LiUCivguIjguLHguIfguYDguIEKK+C4iOC4seC4h+C5guC4gQor4LiI4Lix4LiH4LmC4LiB4LmLCivguIjguLHguIfguYLguIHguI/guIHguYwKK+C4iOC4seC4h+C4h+C4seC4hwor4LiI4Lix4LiH4Lih4Lix4LiHCivguIjguLHguIfguYTguKMKK+C4iOC4seC4h+C4peC4reC4mQor4LiI4Lix4LiH4LmA4Lin4LmH4LiICivguIjguLHguIfguKvguJnguLHguJoKK+C4iOC4seC4h+C4q+C4o+C4teC4lAor4LiI4Lix4LiH4Lir4Lil4LmI4LitCivguIjguLHguIfguKvguKfguLAKK+C4iOC4seC4h+C4q+C4p+C4seC4lAor4LiI4Lix4LiH4Lir4Lix4LiZCivguIjguLHguIfguK3guK3guJkKK+C4iOC4seC4jeC5hOC4owor4LiI4Lix4LiT4LiR4LmMCivguIjguLHguJPguJHguLLguKUKK+C4iOC4seC4lAor4LiI4Lix4LiU4LiI4Lit4LiHCivguIjguLHguJXguJXguLLguKzguLXguKoKK+C4iOC4seC4leC4p+C4sgor4LiI4Lix4LiV4Li4CivguIjguLHguJXguLjguKMKK+C4iOC4seC4leC4uOC5guC4peC4geC4muC4suC4pQor4LiI4Lix4LiV4Li44Liq4LiU4Lih4Lig4LmMCivguIjguLHguJkKK+C4iOC4seC5iOC4mQor4LiI4Lix4LiZ4LmC4LiI4LipCivguIjguLHguJnguJfguYwKK+C4iOC4seC4meC4l+C4meC5jAor4LiI4Lix4LiZ4LiX4LiZ4LiyCivguIjguLHguJnguJfguKPguYwKK+C4iOC4seC4meC4l+C4o+C4geC4peC4sgor4LiI4Lix4LiZ4LiX4Lij4LiB4Lip4Lix4LiiCivguIjguLHguJnguJfguKPguIHguLLguJnguJXguYwKK+C4iOC4seC4meC4l+C4o+C4geC4uOC4jgor4LiI4Lix4LiZ4LiX4Lij4LmA4LiB4LiV4Li4CivguIjguLHguJnguJfguKPguITguJXguLQKK+C4iOC4seC4meC4l+C4o+C4hOC4o+C4suC4qgor4LiI4Lix4LiZ4LiX4Lij4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguIjguLHguJnguJfguKPguIrguJnguIEKK+C4iOC4seC4meC4l+C4o+C4l+C4seC4geC4qeC4tOC4kwor4LiI4Lix4LiZ4LiX4Lij4LiX4Liy4LijCivguIjguLHguJnguJfguKPguJnguLTguKDguLIKK+C4iOC4seC4meC4l+C4o+C4muC4uOC4leC4owor4LiI4Lix4LiZ4LiX4Lij4Lib4Lij4Liw4Lig4Liy4LieCivguIjguLHguJnguJfguKPguJ7guLTguKHguJ7guYwKK+C4iOC4seC4meC4l+C4o+C4oOC4suC4qgor4LiI4Lix4LiZ4LiX4Lij4Lig4Li54LiV4Li0CivguIjguLHguJnguJfguKPguKHguJPguJHguKUKK+C4iOC4seC4meC4l+C4o+C5gOC4oeC5h+C4lAor4LiI4Lix4LiZ4LiX4Lij4LmA4Lih4Liy4Liw4Lir4LmMCivguIjguLHguJnguJfguKPguKPguLHguJXguJnguYwKK+C4iOC4seC4meC4l+C4o+C4p+C4h+C4qOC5jAor4LiI4Lix4LiZ4LiX4Lij4Lin4Lij4Lij4LiTCivguIjguLHguJnguJfguKPguYDguKjguILguKMKK+C4iOC4seC4meC4l+C4o+C4suC4o+C4tAor4LiI4Lix4LiZ4LiX4Lij4Li44Lib4Lij4Liy4LiE4LiyCivguIjguLHguJnguJfguYLguKPguJfguLHguKIKK+C4iOC4seC4meC4l+C4seC4mQor4LiI4Lix4LiZ4Lil4Lit4LiHCivguIjguLHguJnguYDguKXguLIKK+C4iOC4seC4meC5gOC4peC4suC4sAor4LiI4Lix4LmJ4LiZ4Lir4Lil4LmI4LitCivguIjguLHguJnguK3guLHguJoKK+C4iOC4seC4mgor4LiI4Lix4Lia4LiB4Lix4LiHCivguIjguLHguJrguIjguYjguLLguKIKK+C4iOC4seC4muC5gOC4iOC4teC5i+C4ouC4pwor4LiI4Lix4Lia4LiJ4LmI4Liy4LiiCivguIjguLHguJrguYDguJTguLTguKEKK+C4iOC4seC4muC4m+C4tOC5ieC4hwor4LiI4Lix4Lia4LmC4Lib4LiHCivguIjguLHguJrguKLguLXguYjguIHguLUKK+C4iOC4seC4muC4quC4seC5iOC4mQor4LiI4Lix4Lih4Lia4LiBCivguIjguLHguKHguJvguIEKK+C4iOC4seC4oeC4oeC4sAor4LiI4Lix4LmI4LinCivguIjguLHguKfguIjguLXguYrguJQKK+C4iOC4seC5iuC4p+C4sAor4LiI4LiyCivguIjguYjguLIKK+C4iOC5ieC4sgor4LiI4LmL4LiyCivguIjguLLguIEKK+C4iOC4suC4geC4nuC4o+C4suC4gQor4LiI4Liy4LiB4Lie4Liy4LiBCivguIjguLLguITguLAKK+C4iOC4suC4hOC4tQor4LiI4Liy4LiHCivguIjguYjguLLguIcKK+C4iOC5ieC4suC4hwor4LiI4Liy4LiH4Lin4Liy4LiHCivguIjguLLguJQKK+C4iOC4suC4leC4uAor4LiI4Liy4LiV4Li44Lij4LiH4LiE4LmMCivguIjguLLguJXguLjguKPguJnguJXguYwKK+C4iOC4suC4leC4uOC4o+C4seC4meC4leC5jAor4LiI4Liy4LiV4Li44Lij4Li04LiBCivguIjguLLguJkKK+C4iOC5ieC4suC4mQor4LiI4Liy4LiaCivguIjguLLguJrguLHguKUKK+C4iOC4suC4muC4seC4peC4ouC5jAor4LiI4Liy4LibCivguIjguLLguJvguITguLjguJMKK+C4iOC4suC4m+C4mOC4owor4LiI4Liy4Lib4LmA4Lin4LiXCivguIjguLLguKEKK+C4iOC4suC4oeC4iOC4uOC4o+C4tQor4LiI4Liy4Lih4LijCivguIjguLLguKHguKPguLUKK+C4iOC4suC4oeC4teC4geC4owor4LiI4LmI4Liy4LiiCivguIjguLLguKMKK+C4iOC5iOC4suC4o+C4hwor4LiI4Liy4Lij4Lin4Liy4LiBCivguIjguLLguKPguLDguYTguJkKK+C4iOC4suC4o+C4sOC4muC4tQor4LiI4Liy4Lij4Li04LiBCivguIjguLLguKPguLUKK+C4iOC4suC4o+C4teC4lQor4LiI4Liy4Lij4Li24LiBCivguIjguLLguKPguLgKK+C4iOC5ieC4suC4peC4sOC4q+C4p+C4seC5iOC4mQor4LiI4Liy4LinCivguIjguYjguLLguKcKK+C4iOC5ieC4suC4pwor4LiI4LmI4Liy4Lir4Lin4Lix4LiBCivguIjguLMKK+C4iOC5ieC4swor4LiI4Liz4LiB4Lin4LmI4LiyCivguIjguLPguIHguLHguJQKK+C4iOC4s+C4h+C4suC4ogor4LiI4LmJ4Liz4LiI4Li14LmJCivguIjguLPguYDguIgKK+C4iOC4s+C5gOC4lOC4tOC4oQor4LiI4Liz4LiX4Lin4LiiCivguIjguLPguJfguLHguJoKK+C4iOC4s+C4l+C4suC4mgor4LiI4Liz4LmA4LiX4Li04LiUCivguIjguLPguYHguJfguIcKK+C4iOC4s+C4meC4hwor4LiI4Liz4LiZ4LiZCivguIjguLPguJnguKPguKPguIjguYwKK+C4iOC4s+C4meC4o+C4o+C4iOC4sgor4LiI4Liz4LiZ4Lin4LiZCivguIjguLPguJnguK3guIcKK+C4iOC4s+C4meC4seC4mgor4LiI4Liz4LiZ4Lix4LilCivguIjguLPguJnguLMKK+C4iOC4s+C5gOC4meC4teC4ouC4mQor4LiI4Liz4LmA4LiZ4Li14Lii4LihCivguIjguLPguYDguJnguLXguKLguKMKK+C4iOC4s+C5geC4meC4gQor4LiI4Liz4LmC4LiZ4LiX4Lii4LmMCivguIjguLPguJrguYjguKEKK+C4iOC5ieC4s+C4muC5iuC4sAor4LiI4Liz4Lia4Lix4LiHCivguIjguLPguJrguLHguJoKK+C4iOC4s+C5gOC4muC4qAor4LiI4LmJ4Liz4LmA4Lia4LmJ4LiyCivguIjguLPguYHguJoKK+C4iOC4s+C4m+C4sgor4LiI4Liz4Lib4Liy4LiU4LiwCivguIjguLPguJvguLUKK+C4iOC4s+C4m+C4ueC4mQor4LiI4Liz4Lie4Lin4LiBCivguIjguLPguYDguJ7guLLguLAKK+C4iOC4s+C5geC4nuC4o+C4gQor4LiI4LmJ4Liz4Lih4LmI4LizCivguIjguLPguKPguJQKK+C4iOC4s+C4o+C4seC4qgor4LiI4Liz4Lij4Liy4LiNCivguIjguLPguKPguLLguKIKK+C4iOC4s+C4o+C4ueC4jQor4LiI4Liz4LmA4Lij4Li04LiNCivguIjguLPguYDguKPguLXguKLguIcKK+C4iOC4s+C4peC4reC4hwor4LiI4Liz4Lil4Liy4LiiCivguIjguLPguYDguKXguLLguLAKK+C4iOC4s+C5gOC4peC4suC4sOC4leC4sgor4LiI4Liz4LmB4Lil4LiHCivguIjguLPguYHguKXguYjguJkKK+C4iOC4s+C4q+C4meC4seC4mgor4LiI4LmL4Liz4Lir4LiZ4Lix4LiaCivguIjguLPguKvguJnguYjguLLguKIKK+C4iOC4s+C4q+C4o+C4sAor4LiI4Liz4Lir4Lil4LmI4LitCivguIjguLPguKvguKXguK3guIEKK+C4iOC4s+C4q+C4peC4seC4gQor4LiI4Liz4Lir4Lix4LiZCivguIjguLPguKvguLLguKIKK+C4iOC4s+C4q+C4uOC4lAor4LiI4Liz4LmA4Lir4Li14Lii4LiHCivguIjguLPguK3guKfguJQKK+C4iOC4s+C4reC4t+C5iOC4mQor4LiI4Li0CivguIjguLTguIEKK+C4iOC4tOC5iuC4geC5guC4geC5iwor4LiI4Li04LmI4LiHCivguIjguLTguYnguIfguIjguIEKK+C4iOC4tOC4h+C4iOC5ieC4rQor4LiI4Li04LmJ4LiH4LiI4Lit4LiBCivguIjguLTguIfguIjguLHguIcKK+C4iOC4tOC5ieC4h+C4iOC4seC4hwor4LiI4Li04LiH4LmC4LiI4LmJCivguIjguLTguYnguIfguKvguKPguLXguJQKK+C4iOC4tOC5ieC4h+C4q+C4o+C4teC4lOC4nOC4tQor4LiI4Li04LiH4Lir4Lix4LiZCivguIjguLTguIfguKvguLjguJkKK+C4iOC4tOC5ieC4h+C5gOC4q+C4peC4mQor4LiI4Li04LiVCivguIjguLTguJXguIHguLLguJjguLLguJkKK+C4iOC4tOC4leC4geC4tuC5iOC4h+C4quC4s+C4meC4tuC4gQor4LiI4Li04LiV4LmD4LiICivguIjguLTguJXguJXguYwKK+C4iOC4tOC4leC4leC4suC4meC4uOC4m+C4seC4quC4quC4meC4sgor4LiI4Li04LiV4LiZ4Liy4LiWCivguIjguLTguJXguJnguLTguKLguKEKK+C4iOC4tOC4leC4muC4s+C4muC4seC4lAor4LiI4Li04LiV4LmB4Lie4LiX4Lii4LmMCivguIjguLTguJXguKDguLLguJ4KK+C4iOC4tOC4leC4oOC4uQor4LiI4Li04LiV4LijCivguIjguLTguJXguKPguIjguLjguKUKK+C4iOC4tOC4leC4o+C4peC4lOC4sgor4LiI4Li04LiV4Lij4LiyCivguIjguLTguJXguKPguLLguKPguIjguLTguKoKK+C4iOC4tOC4leC5hOC4o+C5ieC4quC4s+C4meC4tuC4gQor4LiI4Li04LiV4Lin4Li04LiX4Lii4LiyCivguIjguLTguJXguKfguLTguKrguLHguKIKK+C4iOC4tOC4leC5gOC4p+C4iuC4qOC4suC4quC4leC4o+C5jAor4LiI4Li04LiV4Lio4Liy4Liq4LiV4Lij4LmMCivguIjguLTguJXguKrguLPguJnguLbguIEKK+C4iOC4tOC4meC5gOC4iOC4sgor4LiI4Li04LiZ4LiU4LiyCivguIjguLTguJnguJTguLLguKrguYjguLLguKvguKPguLUKK+C4iOC4tOC4meC4lOC4suC4q+C4meC4sgor4LiI4Li04LiZ4LiU4Liy4Lir4Lij4LiyCivguIjguLTguJnguJTguLLguK3guKPguKrguLIKK+C4iOC4tOC4meC4leC5jAor4LiI4Li04LiaCivguIjguLTguYrguJrguIjguYrguK3guKIKK+C4iOC4tOC4m+C4suC4luC4sAor4LiI4Li04LmI4LihCivguIjguLTguYnguKEKK+C4iOC4tOC5i+C4oQor4LiI4Li04LmJ4Lih4LiB4LmJ4Lit4LiHCivguIjguLTguYnguKHguKXguLTguYnguKEKK+C4iOC4tOC4o+C4seC4meC4lOC4owor4LiI4Li04Lij4Liy4Lii4Li44LiqCivguIjguLTguYrguKcKK+C4iOC4tOC5i+C4pwor4LiI4Li1CivguIjguLXguYgKK+C4iOC4teC5iQor4LiI4Li14LmLCivguIjguLXguYvguIjguYnguK0KK+C4iOC4teC4iOC4ueC5iQor4LiI4Li14LmK4LiI4Li54LmJCivguIjguLXguYHguIjguYrguJoKK+C4iOC4teC5iuC4lAor4LiI4Li14LiZCivguIjguLXguJnguYHguKoKK+C4iOC4teC4mgor4LiI4Li14LmC4LiaCivguIjguLXguJ7guKMKK+C4iOC4teC4oQor4LiI4Li14Lin4LijCivguIjguLbguIcKK+C4iOC4tuC5iOC4hwor4LiI4Li24LmJ4LiHCivguIjguLfguJQKK+C4iOC4t+C5ieC4meC5gOC4iOC4t+C4reC4gQor4LiI4Li4CivguIjguLjguIEKK+C4iOC4uOC5iuC4geC4geC4o+C4ueC5igor4LiI4Li44LiB4LiI4Li04LiBCivguIjguLjguIHguIrguLUKK+C4iOC4uOC4geC4nOC4suC4oQor4LiI4Li44LiB4Lie4Lij4Liy4Lir4Lih4LiT4LmMCivguIjguLjguIHguYLguKPguKvguLTguJnguLUKK+C4iOC4uOC5iOC4hwor4LiI4Li44LmJ4LiH4LiI4Lix4LiHCivguIjguLjguYvguIfguIjguLTguYvguIcKK+C4iOC4uOC5i+C4iOC4teC5iwor4LiI4Li44LiR4LiyCivguIjguLjguJMKK+C4iOC4uOC4k+C4k+C4teC4ouC4muC4lwor4LiI4Li44LiUCivguIjguLjguJXguLQKK+C4iOC4uOC4leC4ueC4m+C4m+C4suC4leC4jeC4suC4kwor4LiI4Li44LiX4LiqCivguIjguLjguJkKK+C4iOC4uOC5iOC4mQor4LiI4Li44LmJ4LiZCivguIjguLjguYnguJnguIjguYnguLLguJkKK+C4iOC4uOC4meC4iOC4ueC5iwor4LiI4Li44LmJ4LiZ4LiI4Li54LmKCivguIjguLjguJnguJfguIHguLLguKMKK+C4iOC4uOC4meC4quC4tQor4LiI4Li44LiaCivguIjguLjguYrguJoKK+C4iOC4uOC4muC4iOC4tOC4mgor4LiI4Li44LmK4Lia4LmB4LiI4LiHCivguIjguLjguYjguKEKK+C4iOC4uOC5ieC4oQor4LiI4Li44LmL4Lih4LiI4Li04LmL4LihCivguIjguLjguKHguJ7guI8KK+C4iOC4uOC4oeC4nuC4o+C4p+C4lAor4LiI4Li44Lih4Lie4LilCivguIjguLjguKHguJ7guLTguJUKK+C4iOC4uOC4oeC5guC4nuC4peC5iAor4LiI4Li44LmI4LiiCivguIjguLjguYnguKIKK+C4iOC4uOC4o+C4kwor4LiI4Li44Lij4Li1CivguIjguLjguYTguKMKK+C4iOC4uOC4peC4iOC4reC4oeC5gOC4geC4peC5ieC4sgor4LiI4Li44Lil4Lin4LiH4Lio4LmMCivguIjguLjguKzguLIKK+C4iOC4uOC4rOC4suC4o+C4suC4iuC4oeC4meC4leC4o+C4tQor4LiI4Li5CivguIjguLnguYgKK+C4iOC4ueC5iQor4LiI4Li54LmLCivguIjguLnguIcKK+C4iOC4ueC5ieC4iOC4teC5iQor4LiI4Li54LmK4LiUCivguIjguLnguJoKK+C4iOC4ueC4o+C4kwor4LmA4LiICivguYDguIjguYoKK+C5gOC4iOC5iuC4gQor4LmA4LiI4LmI4LiHCivguYDguIjguYrguIcKK+C5gOC4iOC5h+C4lAor4LmA4LiI4LmH4LiU4LiV4Liw4LiE4Lil4Li1CivguYDguIjguJTguLXguKLguYwKK+C5gOC4iOC4lQor4LmA4LiI4LiV4LiZ4LiyCivguYDguIjguJXguJ7guLHguIfguITguLUKK+C5gOC4iOC4leC4oeC4ueC4peC5gOC4nuC4peC4tOC4hwor4LmA4LiI4LiV4Liq4Li04LiBCivguYDguIjguJXguLTguKIKK+C5gOC4iOC5guC4leC4m+C4o+C4tOC4ouC4jeC4suC4kwor4LmA4LiI4LmC4LiV4Lin4Li04Lih4Li44LiV4Li0CivguYDguIjguJkKK+C5gOC4iOC5h+C4mgor4LmA4LiI4Lij4LiI4LiyCivguYDguIjguKPguLTguI0KK+C5gOC4iOC4o+C4tOC4lAor4LmA4LiI4Lij4Li14Lii4LiHCivguYDguIjguKXguLXguKLguIcKK+C5gOC4iOC4p+C5h+C4lAor4LmA4LiI4Lip4LiO4LiyCivguYDguIjguYrguKrguLHguKcKK+C5gOC4iOC4rQor4LmA4LiI4LmI4LitCivguYDguIjguYvguK0KK+C5gOC4iOC5i+C4reC5gOC4iOC5iuC4reC4sAor4LmA4LiI4Lit4Lij4LmM4LmA4Lih4LmA4LiZ4Li14Lii4LihCivguYDguIjguK3guLAKK+C5gOC4iOC4sgor4LmA4LiI4LmI4LiyCivguYDguIjguYnguLIKK+C5gOC4iOC5iuC4sgor4LmA4LiI4LmJ4Liy4Lie4Lij4Liw4Lii4LiyCivguYDguIjguYnguLLguJ/guYnguLLguKvguI3guLTguIfguKrguLTguKPguLTguJnguJjguKMKK+C5gOC4iOC4suC4sAor4LmA4LiI4Li04LmI4LiHCivguYDguIjguLTguJQKK+C5gOC4iOC4tOC5iOC4mQor4LmA4LiI4Li04LihCivguYDguIjguLXguYrguKLguIEKK+C5gOC4iOC4teC4ouC4hwor4LmA4LiI4Li14Lii4LiUCivguYDguIjguLXguKLguJkKK+C5gOC4iOC4teC5i+C4ouC4mQor4LmA4LiI4Li14LmK4Lii4LiaCivguYDguIjguLXguKLguKEKK+C5gOC4iOC4teC5i+C4ouC4oeC5gOC4iOC4teC5ieC4ouC4oQor4LmA4LiI4Li14Lii4LijCivguYDguIjguLXguKLguKPguLDguYTguJkKK+C5gOC4iOC4teC4ouC4o+C4sOC4muC4suC4lAor4LmA4LiI4Li14Lii4LinCivguYDguIjguLXguYrguKLguKfguIjguYrguLLguKcKK+C5gOC4iOC4t+C4rQor4LmA4LiI4Li34LmI4Lit4LiZCivguYDguIjguLfguYnguK3guKIKK+C5gOC4iOC4t+C4reC4quC4oQor4LmB4LiICivguYHguIjguYkKK+C5geC4iOC5iwor4LmB4LiI4LiBCivguYHguIjguIcKK+C5geC4iOC5ieC4hwor4LmB4LiI4LiH4Lil4Lit4LiZCivguYHguIjguYrguJQKK+C5geC4iOC4lOC5geC4iOC5iQor4LmB4LiI4LmK4LiU4LmB4LiI4LmLCivguYHguIjguJXguKMKK+C5geC4iOC5ieC4mQor4LmB4LiI4LiaCivguYHguIjguYjguKEKK+C5geC4iOC5iOC4oeC4iOC4seC4meC4l+C4o+C5jAor4LmB4LiI4LijCivguYHguIjguKPguIEKK+C5geC4iOC4o+C4hwor4LmB4LiI4LinCivguYHguIjguYnguKcKK+C5geC4iOC5i+C4pwor4LmB4LiI4LmJ4Lin4LmGCivguYHguIjguLAKK+C5guC4iOC4gQor4LmC4LiI4LmK4LiBCivguYLguIjguIcKK+C5guC4iOC4h+C4geC4o+C4sOC5gOC4muC4meC4leC4teC5gOC4q+C4peC5h+C4gQor4LmC4LiI4LmI4LiH4LiE4Lij4Li24LmI4LihCivguYLguIjguYvguIfguITguKPguLbguYjguKEKK+C5guC4iOC5iOC4h+C4hOC4o+C4uOC5iOC4oQor4LmC4LiI4LiH4LmC4LiE4Lij4LmI4LiHCivguYLguIjguYvguIfguYDguIjguYvguIcKK+C5guC4iOC5iOC4h+C5geC4iOC5ieC4hwor4LmC4LiI4LiXCivguYLguIjguJfguIHguYwKK+C5guC4iOC4l+C4meC4sgor4LmC4LiI4LiX4Lii4LmMCivguYLguIjguJkKK+C5guC4iOC4oQor4LmC4LiI4LijCivguYLguIjguKPguIHguKPguKPguKEKK+C5guC4iOC4pQor4LmC4LiI4LipCivguYLguIjguKnguIjguLHguJkKK+C5g+C4iAor4LmE4LiICivguYTguIjguYkKK+C5hOC4iOC5ieC5hgor4LmE4LiI4LijCivguIkKK+C4ieC4gQor4LiJ4LiB4Lih4Liy4Lin4LiI4LijCivguInguIHguKPguKPguIjguYwKK+C4ieC4geC4suC4iAor4LiJ4LiB4Liy4LiI4LiJ4LiB4Lij4Lij4LiI4LmMCivguInguIHguLLguKHguLLguJ7guIjguKMKK+C4ieC4h+C4mQor4LiJ4LiH4Liy4LiiCivguInguJPguLAKK+C4ieC4l+C4p+C4suC4owor4LiJ4LiX4LiwCivguInguJfguLLguJnguKjguLLguKXguLIKK+C4ieC4l+C4tuC4hwor4LiJ4LiZ4Lin4LiZCivguInguJnguLHguIcKK+C4ieC4meC4suC4gQor4LiJ4LiZ4LizCivguInguJrguJoKK+C4ieC4muC4seC4hwor4LiJ4Lia4Lix4LiUCivguInguJrguLHguJoKK+C4ieC4muC4swor4LiJ4LihCivguInguKHguJoKK+C4ieC4oeC4p+C4gQor4LiJ4Lih4Lin4LiiCivguInguKHguYjguK3guIcKK+C4ieC4oeC4seC4hwor4LiJ4Lih4Lix4LiZCivguInguKHguLIKK+C4ieC4oeC4swor4LiJ4LilCivguInguKXguKfguKIKK+C4ieC4peC4reC4hwor4LiJ4Lil4Lit4LihCivguInguKXguLHguIEKK+C4ieC4peC4seC4mgor4LiJ4Lil4Liy4LiBCivguInguKXguLLguIHguJrguLLguIcKK+C4ieC4peC4suC4hwor4LiJ4Lil4Liy4LiUCivguInguKXguLLguKEKK+C4ieC4peC4suC4ogor4LiJ4Lil4Li04LinCivguInguKXguLXguIEKK+C4ieC4peC4uAor4LiJ4Lil4Li44LiB4LiJ4Lil4Lin4LiiCivguInguKXguLkKK+C4ieC4p+C4ogor4LiJ4Lin4LiwCivguInguKfguLHguJTguYDguInguKfguLXguKLguJkKK+C4ieC4p+C4suC4hwor4LiJ4Lin4Li1CivguInguKrguIEKK+C4ieC4rOC4oOC4tOC4jeC5guC4jQor4LiJ4LmJ4LitCivguInguK3guIEKK+C4ieC4reC4geC4qeC4seC4leC4o+C4tOC4ouC5jAor4LiJ4LmI4Lit4LiHCivguInguK3guJTguYYKK+C4ieC4sAor4LiJ4Liw4LiB4LiwCivguInguLDguInguLLguJQKK+C4ieC4sOC4ieC4suC4mQor4LiJ4Liw4LiJ4LmI4LizCivguInguLDguInguLXguYgKK+C4ieC4sOC5gOC4ieC4t+C5iOC4reC4ogor4LiJ4Liw4LiV4LmJ4LiyCivguInguLDguJnguLHguYnguJkKK+C4ieC4sOC4meC4teC5iQor4LiJ4Liw4Lit4LmJ4Lit4LiZCivguInguLHguIHguIHguLAKK+C4ieC4seC4kAor4LiJ4Lix4LiQ4Lih4LiwCivguInguLHguJQKK+C4ieC4seC4leC4owor4LiJ4Lix4LiX4LiX4Lix4LiZ4LiV4LmMCivguInguLHguJkKK+C4ieC4seC4meC4l+C5jAor4LiJ4Lix4LiZ4LiX4LiwCivguInguLHguJnguJfguLTguJUKK+C4ieC4seC4meC4p+C4uOC4kuC4tAor4LiJ4Lix4LiaCivguInguLHguJrguYYKK+C4ieC4seC4nuC4nuC4o+C4o+C4k+C4o+C4seC4h+C4quC4tQor4LiJ4Lix4Lii4Lii4LiyCivguInguLLguIEKK+C4ieC4suC4hwor4LiJ4LmI4Liy4LiHCivguInguYjguLLguInguLLguKcKK+C4ieC4suC4lAor4LiJ4Liy4LiU4LiJ4Liy4LiZCivguInguLLguJXguIHguKDguLHguKIKK+C4ieC4suC4l+C4meC4sAor4LiJ4Liy4LiZCivguInguLLguJoKK+C4ieC4suC4muC4ieC4p+C4ogor4LiJ4Liy4LibCivguInguLLguKIKK+C4ieC4suC4ouC4sgor4LiJ4Liy4Lij4Li04LiB4LiyCivguInguLLguKcKK+C4ieC5iOC4swor4LiJ4Liz4LiJ4LiyCivguInguLPguYDguInguIcKK+C4ieC4s+C5geC4ieC4sAor4LiJ4Li04LmI4LiHCivguInguLTguJkKK+C4ieC4tOC4meC4l+C5jAor4LiJ4Li04LiaCivguInguLTguKHguJ7guKXguLUKK+C4ieC4tOC4pwor4LiJ4Li14LmICivguInguLXguIEKK+C4ieC4teC4lAor4LiJ4Li4CivguInguLjguIEKK+C4ieC4uOC4lAor4LiJ4Li44LiZCivguInguLjguJsKK+C4ieC4uOC4ogor4LiJ4Li44Lii4LiJ4Liy4LiiCivguInguLjguKPguLTguIHguLIKK+C4ieC4ueC5iAor4LiJ4Li54LmI4LiJ4Li14LmICivguInguLnguJQKK+C4ieC4ueC4lOC4ieC4suC4lAor4LmA4LiJCivguYDguInguIEKK+C5gOC4ieC5guC4gQor4LmA4LiJ4LmI4LiHCivguYDguInguJQKK+C5gOC4ieC4lwor4LmA4LiJ4LiZ4Li14Lii4LiZCivguYDguInguJ7guLLguLAKK+C5gOC4ieC4ogor4LmA4LiJ4Lil4LiiCivguYDguInguKXguKcKK+C5gOC4ieC4peC4sgor4LmA4LiJ4Lil4Li04LihCivguYDguInguKXguLXguYjguKIKK+C5gOC4ieC4peC4teC4ouC4hwor4LmA4LiJ4Lil4Li14LmI4Lii4LiHCivguYDguInguKXguLXguKLguJoKK+C5gOC4ieC4peC4teC4ouC4pwor4LmA4LiJ4Lin4Li14Lii4LiHCivguYDguInguKfguLXguKLguJkKK+C5gOC4ieC4reC4sAor4LmA4LiJ4LiyCivguYDguInguLLguIHguYrguKfguKIKK+C5gOC4ieC4suC5guC4ieC4lAor4LmA4LiJ4Liy4Liu4Li34LmJ4LitCivguYDguInguLLguLAKK+C5gOC4ieC4tOC4lAor4LmA4LiJ4Li04LiaCivguYDguInguLTguJrguYYKK+C5gOC4ieC4teC4ouC4hwor4LmA4LiJ4Li14Lii4LiH4Lie4Lij4LmJ4Liy4LiU4LizCivguYDguInguLXguKLguIfguJ7guKPguYnguLLguJnguLLguIfguYHguK0KK+C5gOC4ieC4teC4ouC4h+C4nuC4o+C5ieC4suC4oeC4reC4jQor4LmA4LiJ4Li14Lii4LiUCivguYDguInguLXguKLguJoKK+C5gOC4ieC4teC5iOC4ouC4pwor4LmA4LiJ4Li34Lit4LiZCivguYDguInguLfguYjguK3guKIKK+C5geC4iQor4LmB4LiJ4LmICivguYHguInguIEKK+C5geC4ieC4geC5hgor4LmB4LiJ4LiHCivguYHguInguYjguIcKK+C5geC4ieC4peC4mgor4LmB4LiJ4Lil4LmJ4LihCivguYHguInguKXguYnguKHguYHguIrguYjguKHguIrguYnguK3guKIKK+C5geC4ieC4peC4sAor4LmB4LiJ4LinCivguYHguInguLAKK+C5guC4iQor4LmC4LiJ4LmICivguYLguInguYDguIEKK+C5guC4ieC5iOC4h+C4ieC5iOC4suC4hwor4LmC4LiJ4LiH4LmA4LiJ4LiHCivguYLguInguJQKK+C5guC4ieC4meC4lAor4LmC4LiJ4LiaCivguYLguInguYDguJrguYoKK+C5guC4ieC4oQor4LmC4LiJ4Lih4LiH4Liy4LihCivguYLguInguKXguIEKK+C5hOC4ieC4mQor4LmE4LiJ4LmE4LilCivguIoKK+C4iuC4gQor4LiK4LiB4LiyCivguIrguITguKMKK+C4iuC4hOC4seC4lQor4LiK4LiE4Lix4LiXCivguIrguITguLHguJkKK+C4iuC4hwor4LiK4LiH4LiE4LiyCivguIrguIfguYLguIQKK+C4iuC4h+C4huC5jAor4LiK4LiH4LiG4LiyCivguIrguI7guLIKK+C4iuC4juC4tOC4pQor4LiK4LiUCivguIrguJfguLbguIcKK+C4iuC4mQor4LiK4LiZ4LiBCivguIrguJnguIHguIHguKPguKPguKEKK+C4iuC4meC4meC4tQor4LiK4LiZ4Lia4LiXCivguIrguJnguKHguYwKK+C4iuC4meC4p+C4mQor4LiK4LiZ4LiwCivguIrguJnguLHguIEKK+C4iuC4meC4sgor4LiK4LiZ4Liy4LiHCivguIrguJnguLQKK+C4iuC4meC4tOC4gQor4LiK4LiZ4Li04LiB4LiyCivguIrguJnguLTguJQKK+C4iuC4meC4tOC4lOC4sgor4LiK4LiZ4Li04LioCivguIrguYDguJnguJXguJXguLUKK+C4iuC4muC4sgor4LiK4Lib4LiZCivguIrguJvguYLguKLguIQKK+C4iuC4oQor4LiK4Lih4LiK4Lin4LiZCivguIrguKHguJTguIrguKHguYnguK3guKIKK+C4iuC4oeC4meC4suC4lAor4LiK4Lih4LiaCivguIrguKHguJ7guLkKK+C4iuC4oeC4nuC4ueC5iAor4LiK4Lih4Lie4Li54Lie4Liy4LiU4Lia4LmI4LiyCivguIrguKHguKPguKEKK+C4iuC4oeC5gOC4peC4suC4sAor4LiK4Lih4Liq4Lin4LiZ4Liq4Lin4Lij4Lij4LiE4LmMCivguIrguKHguYnguK3guKIKK+C4iuC4oeC4seC4mQor4LiK4Lih4LiyCivguIrguKHguYnguLLguKIKK+C4iuC5hOC4oQor4LiK4LiiCivguIrguKLguLHguKHguJrguJTguLUKK+C4iuC4ouC4sgor4LiK4Lii4Li44LiV4Li0CivguIrguYLguKIKK+C4iuC4owor4LiK4Lij4LiV4LiyCivguIrguKPguJfguLbguIcKK+C4iuC4o+C5guC4oeC4pQor4LiK4Lij4LmE4LihCivguIrguKPguKPguLLguIcKK+C4iuC4o+C4o+C4tOC4mQor4LiK4Lij4LmB4Lij4LiHCivguIrguKPguYHguKPguYjguIcKK+C4iuC4o+C5gOC4peC4t+C4reC4lAor4LiK4Lij4LmC4Lil4LiHCivguIrguKPguK3guIHguIrguKPguLHguIcKK+C4iuC4o+C4reC4reC4mgor4LiK4Lij4Lit4Lix4LiUCivguIrguKPguK3guYjguLMKK+C4iuC4o+C4reC4t+C5ieC4rQor4LiK4Lij4Lit4Li44LmI4LihCivguIrguKPguLAKK+C4iuC4o+C4sOC4h+C4oQor4LiK4Lij4Liw4LiH4LmI4Lit4LiZCivguIrguKPguLDguIfguLMKK+C4iuC4o+C4sOC4lOC4seC4lAor4LiK4Lij4Liw4LiU4Li34LmI4LiZCivguIrguKPguLDguYDguJTguLXguKLguJQKK+C4iuC4o+C4sOC4muC4reC4mgor4LiK4Lij4Liw4Lia4Liy4LiaCivguIrguKPguLDguKHguJQKK+C4iuC4o+C4sOC4oeC4seC4pwor4LiK4Lij4Liw4Lih4Li34LmI4LiZCivguIrguKPguLDguKHguLjguIHguIrguKPguLDguKHguK3guKEKK+C4iuC4o+C4sOC4oeC4uOC5iOC4mQor4LiK4Lij4Liw4LmA4Lih4Li14Lii4LiHCivguIrguKPguLDguYDguKHguLXguKLguJkKK+C4iuC4o+C4sOC4peC4rQor4LiK4Lij4Liw4Lil4Lit4LiHCivguIrguKPguLDguKXguYjguK3guIcKK+C4iuC4o+C4sOC4peC4seC5iOC4hwor4LiK4Lij4Liw4Lil4Lix4LiUCivguIrguKPguLDguKXguYnguLMKK+C4iuC4o+C4sOC4peC4uAor4LiK4Lij4Liw4LmB4Lil4LiHCivguIrguKPguLDguK3guLHguJoKK+C4iuC4o+C4sOC4reC4suC4mgor4LiK4Lij4Liw4LmA4Lit4LihCivguIrguKPguLHguJQKK+C4iuC4o+C4seC4pwor4LiK4Lij4LiyCivguIrguKPguLLguIHguLLguIHguLUKK+C4iuC4o+C4suC4mgor4LiK4Lij4Liy4Lia4LiK4Lij4Lix4LiaCivguIrguKPguLLguKLguLgKK+C4iuC4o+C4tOC4mQor4LiK4Lij4Li44LiBCivguIrguKPguLnguJoKK+C4iuC4pQor4LiK4Lil4Li1CivguIrguKXguLnguIHguLIKK+C4iuC5gOC4pQor4LiK4LmC4Lil4LiHCivguIrguYLguKXguKEKK+C4iuC5iOC4p+C4hwor4LiK4LmI4Lin4LiH4LiX4Lij4Lix4Lie4Lii4LmMCivguIrguYjguKfguIfguKrguLTguJfguJjguLTguYwKK+C4iuC4p+C4lAor4LiK4Lin4LiZCivguIrguKfguKIKK+C4iuC5iOC4p+C4ogor4LiK4Lin4LijCivguIrguKfguKXguLTguJUKK+C4iuC4p+C4seC4gQor4LiK4Lin4LiyCivguIrguKfguLLguKUKK+C4iuC4p+C4suC4peC4sgor4LiK4LmB4Lin4LiHCivguIrguYjguK0KK+C4iuC4reC4gQor4LiK4LmH4Lit4LiBCivguIrguYfguK3guIHguIHguLLguKPguLUKK+C4iuC5h+C4reC4geC5guC4geC5gOC4peC4lQor4LiK4LmH4Lit4LiB4LmC4LiB4LmB4Lil4LiVCivguIrguK3guIcKK+C4iuC5iOC4reC4hwor4LiK4LmJ4Lit4LiHCivguIrguYnguK3guIfguJnguLLguIcKK+C4iuC5ieC4reC4h+C4meC4suC4h+C4hOC4peC4teC5iAor4LiK4LmJ4Lit4LiH4LmB4Lih4LinCivguIrguK3guJkKK+C4iuC5iOC4reC4mQor4LiK4LmJ4Lit4LiZCivguIrguYnguK3guJnguJnguLLguIcKK+C4iuC4reC4mgor4LiK4Lit4LihCivguIrguYjguK3guKIKK+C4iuC5ieC4reC4ogor4LiK4LmJ4Lit4Lii4LiK4LmI4Liy4LiH4Lij4LizCivguIrguYnguK3guKLguJnguLLguIfguKPguLMKK+C4iuC4reC4peC5jOC4gQor4LiK4Lit4LmI4LizCivguIrguK3guLfguYnguK0KK+C4iuC4reC4uOC5iOC4oQor4LiK4LiwCivguIrguLDguITguKPguLLguKEKK+C4iuC4sOC4h+C4reC4gQor4LiK4Liw4LiH4LmI4Lit4LiZCivguIrguLDguIfguLHguIEKK+C4iuC4sOC4h+C4seC4lAor4LiK4Liw4LiH4Liy4LiaCivguIrguLDguIfguYnguLMKK+C4iuC4sOC4h+C4uOC5ieC4oQor4LiK4Liw4LmA4LiH4LmJ4LitCivguIrguLDguYDguIfguLfguYnguK3guKEKK+C4iuC4sOC5geC4h+C5iQor4LiK4Liw4LmC4LiH4LiBCivguIrguLDguInguYjguLIKK+C4iuC4sOC4iuC5iOC4reC4hwor4LiK4Liw4LiK4LmJ4LiyCivguIrguLDguIrguLTguJQKK+C4iuC4sOC4lOC4teC4iuC4sOC4o+C5ieC4suC4ogor4LiK4Liw4LmC4LiUCivguIrguLDguJXguLIKK+C4iuC4sOC4leC5ieC4sgor4LiK4Liw4LiZ4Li1CivguIrguLDguJnguLjguIcKK+C4iuC4sOC5gOC4meC4suC4sAor4LiK4Liw4Lie4Lil4Li5CivguIrguLDguYDguJ7guKXguLTguIcKK+C4iuC4sOC4oeC4lAor4LiK4Liw4Lih4LiU4LiV4LmJ4LiZCivguIrguLDguKHguJoKK+C4iuC4sOC4oeC4p+C4hwor4LiK4Liw4Lih4Lix4LiHCivguIrguLDguKHguLHguJQKK+C4iuC4sOC5geC4oeC5iAor4LiK4Liw4Lij4Lit4LiiCivguIrguLDguKXguK0KK+C4iuC4sOC4peC4reC4oQor4LiK4Liw4Lil4Liw4LiB4LiyCivguIrguLDguKXguYjguLIKK+C4iuC4sOC4peC4tOC4mQor4LiK4Liw4Lil4Li54LiUCivguIrguLDguYDguKXguIcKK+C4iuC4sOC5gOC4peC4ogor4LiK4Liw4LmB4Lil4LmH4LiBCivguIrguLDguYHguKXguIcKK+C4iuC4sOC4p+C4seC4hwor4LiK4Liw4Lin4Liy4LiBCivguIrguLDguKfguLLguJQKK+C4iuC4sOC4p+C4uOC5ieC4hwor4LiK4Liw4LmA4Lin4Li04LiB4LiK4Liw4Lin4Liy4LiBCivguIrguLDguYHguKfguIcKK+C4iuC4sOC4reC4oQor4LiK4Liw4Lit4LmJ4Lit4LiZCivguIrguLDguYDguK3guKEKK+C4iuC4sOC5guC4reC4mQor4LiK4Lix4LiBCivguIrguLHguIHguITguKPguLLguKEKK+C4iuC4seC4geC4iuC5ieC4sgor4LiK4Lix4LiB4Lir4LiZ4LmJ4LiyCivguIrguLHguIcKK+C4iuC4seC5iOC4hwor4LiK4Lix4LiH4LiE4LiyCivguIrguLHguIfguYDguIbguKLguKLguIHguLAKK+C4iuC4seC4iuC4p+C4suC4pQor4LiK4Lix4LiPCivguIrguLHguJQKK+C4iuC4seC4lOC4iuC5ieC4sgor4LiK4Lix4LiZCivguIrguLHguYnguJkKK+C4iuC4seC4meC4geC4suC4lAor4LiK4Lix4LiZ4LiK4Li1CivguIrguLHguJnguJXguLLguIbguKMKK+C4iuC4seC4meC4leC4uAor4LiK4Lix4LiZ4LiZ4Liw4LiV4Li4CivguIrguLHguJnguJnguLgKK+C4iuC4seC4meC4meC4uOC4geC4sAor4LiK4Lix4LiZ4LmC4Lij4LiHCivguIrguLHguJnguKnguLIKK+C4iuC4seC4meC4quC4ueC4leC4owor4LiK4Lix4Lib4LiZCivguIrguLHguJ4KK+C4iuC4seC4oeC4nuC4ueC4meC4lwor4LiK4Lix4LiiCivguIrguLHguKLguIHguKPguLDguKrguJ4KK+C4iuC4seC4ouC4muC4suC4mQor4LiK4Lix4Lii4Lie4Lik4LiB4Lip4LmMCivguIrguLHguKLguKDguLnguKHguLQKK+C4iuC4seC4ouC5gOC4oOC4o+C4tQor4LiK4Lix4Lii4Lih4LiH4LiE4LilCivguIrguLHguKLguKHguIfguITguKXguITguLLguJbguLIKK+C4iuC4seC4peC4peC4uOC4geC4sgor4LiK4Lix4LmI4LinCivguIrguLHguYnguKcKK+C4iuC4seC4p+C4iuC4oQor4LiK4Lix4LmI4Lin4LmB4LiV4LmI4Lin4LmI4LiyCivguIrguLIKK+C4iuC5ieC4sgor4LiK4Liy4LiE4LijCivguIrguLLguITguKPguLTguJUKK+C4iuC4suC4hOC4o+C4tOC4ouC4suC4meC4uOC5guC4ouC4hAor4LiK4LmI4Liy4LiHCivguIrguYnguLLguIcKK+C4iuC5ieC4suC4h+C4geC4o+C4sAor4LiK4LmI4Liy4LiH4LiB4Lij4Liw4LmE4LijCivguIrguYnguLLguIfguJTguLMKK+C4iuC5ieC4suC4h+C5geC4lOC4hwor4LiK4LmI4Liy4LiH4LiX4Lit4LiHCivguIrguYjguLLguIfguJnguYnguLLguKcKK+C4iuC5ieC4suC4h+C5gOC4nOC4t+C4reC4gQor4LiK4LmI4Liy4LiH4LmA4Lir4Lil4LmH4LiBCivguIrguYnguLLguIrguYjguK3guJkKK+C4iuC4suC4jQor4LiK4Liy4LiUCivguIrguLLguJTguIEKK+C4iuC4suC4leC4muC4uOC4qeC4ouC5jAor4LiK4Liy4LiV4Lij4Li1CivguIrguLLguJXguLAKK+C4iuC4suC4leC4sgor4LiK4Liy4LiV4Li0CivguIrguLLguJXguLTguJjguKPguKPguKEKK+C4iuC4suC4leC4tOC4nuC4seC4meC4mOC4uOC5jAor4LiK4Liy4LiV4Li04Lie4Lix4LiZ4LiY4Li44LmM4Lin4Lij4Lij4LiT4LiZ4LiyCivguIrguLLguJXguLTguJ7guLHguJnguJjguLjguYzguKfguLTguJfguKLguLIKK+C4iuC4suC4leC4tOC4oOC4ueC4oeC4tAor4LiK4Liy4LiV4Li04Lih4Liy4Lil4LiyCivguIrguLLguJXguLTguKPguKoKK+C4iuC4suC4leC4tOC4quC4seC4oeC4muC4seC4meC4meC5jAor4LiK4Liy4LiZCivguIrguLLguJnguKfguLLguJfguLTguIEKK+C4iuC4suC4meC4uAor4LiK4Liy4LiZ4Li44LiB4LiwCivguIrguYnguLLguJvguLXguYgKK+C4iuC5ieC4suC4m+C4teC5iOC5hOC4q+C4mQor4LiK4LmJ4Liy4LmB4Lib4LmJ4LiZCivguIrguYnguLLguJ7guKXguLkKK+C4iuC4suC4oQor4LiK4Liy4Lih4Lie4Li54LiZ4LiXCivguIrguLLguKHguLLguJTguKMKK+C4iuC4suC4oeC4suC4lOC4sgor4LiK4Liy4Lih4Liy4LiV4Li4CivguIrguLLguKIKK+C4iuC4suC4ouC4mOC4hwor4LiK4Liy4Lii4Lic4LmJ4Liy4Liq4Li14LiU4LiyCivguIrguLLguKLguLIKK+C4iuC4suC4owor4LiK4Liy4Lij4Li1CivguIrguLLguKUKK+C4iuC4suC4peC4sgor4LiK4Liy4Lil4Li04LiZ4Li1CivguIrguYnguLLguYDguKXguLfguK3guJQKK+C4iuC4suC4pwor4LiK4Liy4Lin4Li1CivguIrguLLguKvguYwKK+C4iuC5ieC4suC4q+C4oeC4reC4hwor4LiK4Liy4Lir4Lij4Lix4LiZ4LiZ4Liy4Lin4Li1CivguIrguLMKK+C4iuC5iOC4swor4LiK4LmJ4LizCivguIrguLPguIfguLHguJQKK+C4iuC4s+C4h+C4suC4ogor4LiK4Liz4LiH4Li34LitCivguIrguYjguLPguIrguK3guIcKK+C4iuC5iOC4s+C4iuC5iOC4sgor4LiK4Liz4LiZ4LiZCivguIrguLPguJnguKPguKMKK+C4iuC4s+C4meC4sAor4LiK4Liz4LiZ4Lix4LiNCivguIrguLPguJnguLHguJkKK+C4iuC4s+C4meC4suC4jQor4LiK4Liz4LiZ4Li0CivguIrguLPguYDguJnguLXguKLguJkKK+C4iuC4s+C5gOC4meC4teC4ouC4owor4LiK4Liz4Lih4Liw4LiZ4Liy4LiUCivguIrguLPguKHguLDguYDguKXguLXguKLguIcKK+C4iuC4s+C4o+C5iOC4p+C4ogor4LiK4Liz4Lij4LiwCivguIrguYnguLPguKPguLHguYjguKcKK+C4iuC4s+C4o+C4uOC4lAor4LiK4Liz4LmA4Lij4LiyCivguIrguLPguYDguKPguLLguLAKK+C4iuC4s+C4peC4sgor4LiK4Liz4LmA4Lil4Li34Lit4LiHCivguIrguLPguYHguKvguKXguLAKK+C4iuC4tAor4LiK4Li04LiHCivguIrguLTguYjguIcKK+C4iuC4tOC4h+C4iuC4seC4hwor4LiK4Li04LiH4LiK4Lix4LiZCivguIrguLTguIfguIrguYnguLIKK+C4iuC4tOC4h+C4iuC5ieC4suC4iuC4suC4peC4tQor4LiK4Li04LiH4LiK4Li14LmICivguIrguLTguIfguJ7guKXguJoKK+C4iuC4tOC4h+C4ruC4t+C5ieC4rQor4LiK4Li04LiK4LiwCivguIrguLTguIrguLQKK+C4iuC4tOC4k+C4k+C4sAor4LiK4Li04LiUCivguIrguLTguYDguJTguJnguJfguKPguLXguKLguYwKK+C4iuC4tOC4lQor4LiK4Li04LiZCivguIrguLTguYjguJkKK+C4iuC4tOC5ieC4mQor4LiK4Li04LiZ4LmC4LiVCivguIrguLTguJnguJrguLjguJXguKMKK+C4iuC4tOC4meC4quC4suC4quC4meC5jAor4LiK4Li04LihCivguIrguLTguKHguYHguJvguJnguIvguLUKK+C4iuC4tOC4ouC4sgor4LiK4Li04Lij4LiT4LiwCivguIrguLTguKPguLAKK+C4iuC4tOC4p+C4q+C4sgor4LiK4Li04Liq4LiyCivguIrguLUKK+C4iuC4teC5iAor4LiK4Li14LmJCivguIrguLXguJ4KK+C4iuC4teC4n+C4reC4hwor4LiK4Li14Lij4LiTCivguIrguLXguKPguLAKK+C4iuC4teC4p+C4sAor4LiK4Li14Lit4Liw4Lir4LmMCivguIrguLfguJQKK+C4iuC4t+C5iOC4mQor4LiK4Li34LmJ4LiZCivguIrguLfguYjguK0KK+C4iuC4t+C5ieC4rQor4LiK4Li4CivguIrguLjguIEKK+C4iuC4uOC4geC4iuC4tQor4LiK4Li44LmI4LiHCivguIrguLjguYnguIcKK+C4iuC4uOC4lAor4LiK4Li44LiV4Li0CivguIrguLjguJkKK+C4iuC4uOC4mgor4LiK4Li44Lia4LiK4Li5CivguIrguLjguKEKK+C4iuC4uOC5iOC4oQor4LiK4Li44Lih4LiZ4Li44LihCivguIrguLjguKHguJ7guKMKK+C4iuC4uOC4oeC4nuC4sgor4LiK4Li44Lih4LmA4Lie4LmH4LiUCivguIrguLjguKHguYHguJ7guKPguIEKK+C4iuC4uOC4oeC4o+C4uOC4oQor4LiK4Li44Lih4Liq4Liy4LiiCivguIrguLjguKHguYHguKrguIcKK+C4iuC4uOC4oeC5gOC4q+C5h+C4lAor4LiK4Li44LmI4LiiCivguIrguLjguYjguKLguYYKK+C4iuC4uOC4peC4oeC4uOC4mQor4LiK4Li44Lil4Li1CivguIrguLjguKnguJPguLAKK+C4iuC4uQor4LiK4Li54LmJCivguYDguIrguYfguIQKK+C5gOC4iuC5ieC4hwor4LmA4LiK4LiH4LmA4Lil4LiHCivguYDguIrguYnguIfguKfguLHguJoKK+C5gOC4iuC5h+C4lAor4LmA4LiK4LmH4LiU4Lir4LiZ4LmJ4LiyCivguYDguIrguJkKK+C5gOC4iuC5iOC4mQor4LmA4LiK4LiiCivguYDguIrguKPguLIKK+C5gOC4iuC4o+C4suC4sAor4LmA4LiK4Lij4Li04LiUCivguYDguIrguKXguIcKK+C5gOC4iuC4peC4ogor4LmA4LiK4Lil4LmB4Lil4LmH4LiBCivguYDguIrguKXguLXguKLguIcKK+C5gOC4iuC4p+C4hwor4LmA4LiK4Lip4LiQ4LiyCivguYDguIrguK0KK+C5gOC4iuC5iOC4sgor4LmA4LiK4LmJ4LiyCivguYDguIrguLLguKfguYwKK+C5gOC4iuC4suC4p+C4meC5jAor4LmA4LiK4Li04LiHCivguYDguIrguLTguIfguIHguKUKK+C5gOC4iuC4tOC4h+C4i+C5ieC4reC4mQor4LmA4LiK4Li04LiH4LmA4LiU4Li14Lii4LinCivguYDguIrguLTguIfguYDguJTguLXguYjguKLguKcKK+C5gOC4iuC4tOC4h+C4oeC4uOC4oQor4LmA4LiK4Li04LiH4LmA4Lin4Li14Lii4LiZCivguYDguIrguLTguIfguK3guKPguKPguJYKK+C5gOC4iuC4tOC4jQor4LmA4LiK4Li04LiUCivguYDguIrguLTguYnguJUKK+C5gOC4iuC4teC4ogor4LmA4LiK4Li14LmJ4LiiCivguYDguIrguLXguKLguIcKK+C5gOC4iuC4teC5iOC4ouC4mQor4LmA4LiK4Li14LmI4Lii4LiZ4Lir4Lih4Liy4LiBCivguYDguIrguLXguKLguJoKK+C5gOC4iuC4teC5iOC4ouC4oQor4LmA4LiK4Li14Lii4LijCivguYDguIrguLXguKLguKPguYwKK+C5gOC4iuC4teC4ouC4o+C4k+C5jAor4LmA4LiK4Li14Lii4LinCivguYDguIrguLXguYjguKLguKcKK+C5gOC4iuC4t+C5iOC4rQor4LmA4LiK4Li34LmJ4LitCivguYDguIrguLfguK3guIEKK+C5gOC4iuC4t+C5iOC4reC4hwor4LmA4LiK4Li34LmI4Lit4LiH4LiK4LmJ4LiyCivguYDguIrguLfguK3guJQKK+C5gOC4iuC4t+C4reC4mQor4LmA4LiK4Li34LmI4Lit4LihCivguYDguIrguLfguYjguK3guKfguLHguJkKK+C5geC4igor4LmB4LiK4LmICivguYHguIrguYjguIcKK+C5geC4iuC4h+C4oeC4sgor4LmB4LiK4Lia4LmK4Lin4LiiCivguYHguIrguYjguKEKK+C5geC4iuC4oeC5gOC4m+C4jQor4LmB4LiK4Lih4Lig4Li5CivguYHguIrguKPguYwKK+C5geC4iuC4o+C4hwor4LmB4LiK4Lil4LmI4LihCivguYHguIrguLAKK+C5guC4iuC4gQor4LmC4LiK4LiB4LmGCivguYLguIrguIHguLjguJkKK+C5guC4iuC4hAor4LmC4LiK4LiH4LmC4Lil4LiHCivguYLguIrguJTguIEKK+C5guC4iuC4lOC4tuC4gQor4LmC4LiK4LiVCivguYLguIrguJXguIEKK+C5guC4iuC4leC4tAor4LmC4LiK4LiZCivguYLguIrguKHguYLguKPguKEKK+C5guC4iuC4ogor4LmC4LiK4Lii4LiH4LiB4Liy4LijCivguYLguIrguKLguIrguLLguKIKK+C5guC4iuC4ouC4leC4tOC4qgor4LmC4LiK4Lij4LihCivguYLguIrguKfguYwKK+C5g+C4iuC5iAor4LmD4LiK4LmJCivguYTguIoKK+C5hOC4iuC4meC4sAor4LmE4LiK4LiiCivguYTguIrguYLguKIKK+C4iwor4LiL4LiBCivguIvguYjguIEKK+C4i+C4h+C4lOC4swor4LiL4LmI4LiH4Liu4Li34LmJ4LitCivguIvguIfguYnguLIKK+C4i+C4lAor4LiL4LiZCivguIvguYjguJkKK+C4i+C5ieC4mQor4LiL4LiaCivguIvguKEKK+C4i+C4o+C4reC4geC4i+C4o+C4seC4hwor4LiL4Lin4LiUCivguIvguKfguJTguYDguIsKK+C4i+C4p+C4lOC4l+C4o+C4hwor4LiL4Lin4LiZCivguIvguKfguKIKK+C4i+C4rQor4LiL4Lit4LiBCivguIvguK3guIcKK+C4i+C5iOC4reC4hwor4LiL4LmJ4Lit4LiHCivguIvguK3guIfguJ7guKXguLkKK+C4i+C4reC4h+C5geC4oeC4pwor4LiL4LmJ4Lit4LiH4LmB4Lih4LinCivguIvguK3guYHguIsKK+C4i+C5ieC4reC5geC4i+C5iQor4LiL4Lit4LiZCivguIvguYjguK3guJkKK+C4i+C5ieC4reC4mQor4LiL4LmI4Lit4LiZ4LiB4Lil4Li04LmI4LiZCivguIvguYjguK3guJnguJfguKPguLLguKIKK+C4i+C4reC4oQor4LiL4LmI4Lit4LihCivguIvguYnguK3guKEKK+C4i+C4reC4oeC4i+C5iOC4rQor4LiL4Lit4LiiCivguIvguK3guKoKK+C4i+C4sOC4i+C4o+C5ieC4suC4pwor4LiL4Liw4LiL4LmI4Lit4LiHCivguIvguLDguIvguK3guYDguIvguLXguKIKK+C4i+C4sOC4i+C4tOC4geC4i+C4sOC5geC4iwor4LiL4Liw4LiL4Li04LiaCivguIvguLDguYDguIvguLLguLAKK+C4i+C4sOC5gOC4i+C4teC4ouC4mgor4LiL4Lix4LiBCivguIvguLHguIHguKrguYnguLLguKcKK+C4i+C4seC4hwor4LiL4Lix4LmJ4LiHCivguIvguLHguIfguIHguLDguJXguLLguKIKK+C4i+C4seC4h+C5geC4i+C4pwor4LiL4Lix4LiH4LiV4Liy4LiiCivguIvguLHguJQKK+C4i+C4seC5ieC4mQor4LiL4Lix4LiZ4LiV4Liy4LiE4Lil4Lit4LiqCivguIvguLHguJoKK+C4i+C4seC4muC4i+C4teC5iAor4LiL4Lix4LihCivguIvguLHguKXguJ/guLIKK+C4i+C4seC4peC5guC4pwor4LiL4Lix4LmJ4LinCivguIvguLHguKfguJvguLIKK+C4i+C4sgor4LiL4LmI4LiyCivguIvguLLguIEKK+C4i+C4suC4geC4uOC4o+C4sAor4LiL4Liy4LmE4LiBCivguIvguLLguIcKK+C4i+C5iOC4suC4hwor4LiL4Liy4LiUCivguIvguLLguJkKK+C4i+C5iOC4suC4mQor4LiL4Liy4Lia4LiL4LmI4Liy4LiZCivguIvguLLguJrguIvguLbguYnguIcKK+C4i+C5iOC4suC5guC4muC4sAor4LiL4Liy4Lib4Lix4LmK4LinCivguIvguLLguYHguKHguYDguKPguLXguKLguKEKK+C4i+C5ieC4suC4ogor4LiL4Liy4LmC4Lii4LiZ4Liy4Lij4LiwCivguIvguLLguKPguYwKK+C4i+C4suC4o+C4tOC4meC4sgor4LiL4Liy4Lil4Liy4LmA4Lib4LiyCivguIvguLLguKcKK+C4i+C5iOC4suC4q+C4o+C4tOC5iOC4oQor4LiL4LmJ4LizCivguIvguLQKK+C4i+C4tOC4gQor4LiL4Li04LiB4LiL4Li14LmJCivguIvguLTguIHguYHguIvguYfguIEKK+C4i+C4tOC4geC4suC4o+C5jAor4LiL4Li04LiH4LmC4LiE4LiZ4LiyCivguIvguLTguYjguJkKK+C4i+C4tOC4meC4leC4tuC5iuC4hwor4LiL4Li04LiZ4LiZ4Liy4Lih4Li04LiBCivguIvguLTguJnguYHguKoKK+C4i+C4tOC4mgor4LiL4Li04Lia4LmGCivguIvguLTguJsKK+C4i+C4tOC4n+C4tOC4peC4tOC4qgor4LiL4Li04LmJ4LihCivguIvguLTguKXguLTguITguK3guJkKK+C4i+C4tOC4pwor4LiL4Li1CivguIvguLXguYgKK+C4i+C4teC4gQor4LiL4Li14LmJ4LiL4Lit4LiZCivguIvguLXguYnguIvguLHguYnguKcKK+C4i+C4teC5gOC4i+C5h+C4geC5hOC4ieC5iAor4LiL4Li14LmA4LiL4Li14Lii4LihCivguIvguLXguJQKK+C4i+C4teC4meC4reC4mQor4LiL4Li14Lib4LmI4Liy4LiiCivguIvguLXguYDguKHguJnguJXguYwKK+C4i+C4teC5gOC4o+C4teC4ouC4oQor4LiL4Li14Lil4Li14LmA4LiZ4Li14Lii4LihCivguIvguLXguK3guLTguYnguKcKK+C4i+C4tuC4gQor4LiL4Li24LmI4LiHCivguIvguLbguYnguIcKK+C4i+C4tuC4oQor4LiL4Li34LmI4LitCivguIvguLfguYnguK0KK+C4i+C4t+C5iOC4reC5hgor4LiL4Li34LmJ4Lit4Lir4LiZ4LmJ4LiyCivguIvguLjguIEKK+C4i+C4uOC4geC4i+C4mQor4LiL4Li44LiHCivguIvguLjguJkKK+C4i+C4uOC4mgor4LiL4Li44Lia4LiL4Li04LiaCivguIvguLjguJrguIvguLnguYgKK+C4i+C4uOC4mwor4LiL4Li44LmI4LihCivguIvguLjguYnguKEKK+C4i+C4uOC5ieC4oeC4geC4o+C4sOC4leC5iOC4suC4ogor4LiL4Li44LmI4Lih4LiL4LmI4Liy4LihCivguIvguLjguKHguYHguIvguKcKK+C4i+C4uOC5iOC4oeC5gOC4quC4teC4ouC4hwor4LiL4Li44LiiCivguIvguLnguYgKK+C4i+C4ueC5iOC4geC4seC5ieC4meC4o+C4seC5ieC4p+C5hOC4i+C4oeC4suC4mQor4LiL4Li54LmC4LiE4Lij4LiqCivguIvguLnguJQKK+C4i+C4ueC5ieC4lAor4LiL4Li54LiU4LiL4Liy4LiUCivguIvguLnguJoKK+C5gOC4iwor4LmA4LiL4LmH4LiBCivguYDguIvguYHguITguJnguJXguYwKK+C5gOC4i+C5h+C4hwor4LmA4LiL4LmI4LiHCivguYDguIvguYnguIcKK+C5gOC4i+C5h+C4h+C5geC4i+C5iAor4LmA4LiL4LiVCivguYDguIvguJkKK+C5gOC4i+C5h+C4mQor4LmA4LiL4LmI4LiZCivguYDguIvguJnguJXguLTguIHguKPguLHguKEKK+C5gOC4i+C4meC4leC4tOC5gOC4oeC4leC4owor4LmA4LiL4LiZ4LiV4Li04Lil4Li04LiV4LijCivguYDguIvguYjguJnguYDguKvguKXguYnguLIKK+C5gOC4i+C4m+C4seC4geC4leC4sOC4geC4o+C5ieC4rQor4LmA4LiL4LifCivguYDguIvguKPguLIKK+C5gOC4i+C4o+C4suC4sAor4LmA4LiL4Lij4Li44LmI4LihCivguYDguIvguKXguYDguIvguLXguKLguKoKK+C5gOC4i+C4peC4peC5jAor4LmA4LiL4Lil4Lil4Li54Lil4Lit4Lii4LiU4LmMCivguYDguIvguKXguKXguLnguYLguKXguKoKK+C5gOC4i+C4peC4quC5jOC5geC4oeC4mQor4LmA4LiL4LmI4LitCivguYDguIvguK3guKPguYwKK+C5gOC4i+C4reC4o+C5jOC5guC4hOC5gOC4meC4teC4ouC4oQor4LmA4LiL4Lit4LiwCivguYDguIvguLIKK+C5gOC4i+C5ieC4suC4i+C4teC5iQor4LmA4LiL4Liy4LiwCivguYDguIvguLTguIcKK+C5gOC4i+C4tOC5ieC4hwor4LmA4LiL4Li14Lii4LiZCivguYDguIvguLXguKLguJoKK+C5gOC4i+C4teC4ouC4oeC4i+C4tQor4LmA4LiL4Li14Lii4LinCivguYDguIvguLXguYjguKLguKcKK+C5gOC4i+C4teC5ieC4ouC4pwor4LmA4LiL4Li14LmI4Lii4Lin4LiB4Liy4LiHCivguYDguIvguLfguYjguK3guIcKK+C5geC4iwor4LmB4LiL4LmICivguYHguIvguYfguIHguITguLLguKPguLTguJkKK+C5geC4i+C4geC4uOC4ogor4LmB4LiL4LiHCivguYHguIvguIfguYHguIvguKcKK+C5geC4i+C4lAor4LmB4LiL4LiU4LmGCivguYHguIvguJnguJTguYzguKfguLTguIoKK+C5geC4i+C4mgor4LmB4LiL4LihCivguYHguIvguKLguLTguJQKK+C5geC4i+C5iOC4pwor4LmB4LiL4LiwCivguYLguIsKK+C5guC4i+C5iAor4LmC4LiL4LiBCivguYLguIvguYjguIcKK+C5guC4i+C4h+C5guC4guC4lOC4hwor4LmC4LiL4LmA4LiLCivguYLguIvguJTguLIKK+C5guC4i+C4lOC4suC5geC4nOC4lOC5gOC4nOC4sgor4LmC4LiL4LiU4Liy4LmE4LifCivguYLguIvguYDguJTguLXguKLguKEKK+C5guC4i+C4oQor4LmC4LiL4Lij4LihCivguYLguIvguKXguLIKK+C5hOC4iwor4LmE4LiL4LmJCivguYTguIvguYDguIHguLTguKUKK+C5hOC4i+C5guC4hOC4peC4mQor4LmE4LiL4LiZ4LmMCivguYTguIvguKLguLLguYTguJnguJTguYwKK+C5hOC4i+C4o+C5iQor4LmE4LiL4LmA4Lij4LiZCivguYTguIvguYLguKUKK+C5hOC4i+C5iOC4q+C4ueC5iQor4LiMCivguIzguKXguLIKK+C4jOC4peC4tAor4LiM4LipCivguIzguLHguKXguKXguYwKK+C4jOC4seC4peC4peC4geC4seC4k+C4kOC5jAor4LiM4Liy4LiZCivguIzguLLguJnguKXguLLguKDguLUKK+C4jOC4suC4meC4suC4l+C4tOC4quC4seC4h+C4geC4tOC5gOC4peC4quC4suC4l+C4tOC4jOC4suC4mQor4LiM4Li54LiBCivguYDguIzguK0KK+C5guC4jOC4kQor4LiNCivguI3guI3guYjguLLguKIKK+C4jeC4p+C4mQor4LiN4Lix4LiV4LiV4Li0CivguI3guLLguJPguLUKK+C4jeC4suC4lOC4sgor4LiN4Liy4LiV4Lib4Lij4Li04LiN4LiN4LiyCivguI3guLLguJXguLHguJXguJbguIjguKPguLTguKLguLIKK+C4jeC4suC4leC4tAor4LiN4Liy4LiZCivguI3guLLguJvguIEKK+C4jeC4suC4ouC4m+C4j+C4tOC4muC4seC4leC4tAor4LiN4Liy4Lii4Lib4LiP4Li04Lib4Lix4LiZ4LmC4LiZCivguI3guLTguJkKK+C4jeC4tOC4mgor4LiN4Li14LmICivguI3guLXguYjguJvguLjguYjguJkKK+C5gOC4jeC4ouC4mOC4o+C4o+C4oQor4LmE4LiN4Lii4LiY4Lij4Lij4LihCivguI4KK+C4juC4hOC4o+C4sAor4LiO4Li14LiB4LiyCivguI8KK+C4j+C4seC4h+C4geC4muC4lOC4tQor4LiP4Lix4LiH4LiB4Lio4Liy4Lil4LiyCivguI/guLHguIfguIHguLAKK+C4j+C4seC4h+C4geC4suC4owor4LiP4Lix4LiH4LiE4LiwCivguI/guLHguIfguITguLIKK+C4j+C4seC4j+C4j+C4meC4tQor4LiP4Liy4LiH4LiB4LijCivguI/guLLguKMKK+C4j+C4uOC4k+C4kOC4uOC4gQor4LiQCivguJDguIHguLHguJQKK+C4kOC4suC4geC4ueC4owor4LiQ4Liy4LiZCivguJDguLLguJnguLAKK+C4kOC4suC4meC4teC4ouC4sAor4LiQ4Liy4Lib4LiZ4LiyCivguJDguLLguKLguLUKK+C4kOC4tOC4lQor4LiQ4Li04LiV4Li0CivguJEKK+C4keC4suC4q+C4gQor4LiR4Liy4Lir4LiwCivguJHguLTguKHguKDguYwKK+C4kgor4LmA4LiS4LmI4LiyCivguJMKK+C4k+C4o+C4h+C4hOC5jAor4LiT4Lix4LiQCivguYDguJPguKMKK+C4lAor4LiU4LiBCivguJTguIcKK+C4lOC5ieC4hwor4LiU4LiH4Lin4Liy4LiiCivguJTguYnguJkKK+C4lOC4meC5guC4lOC5iAor4LiU4LiZ4LiV4Lij4Li1CivguJTguJnguKIKK+C4lOC4meC4ouC4sgor4LiU4LiZ4Lix4LiiCivguJTguJnguLgKK+C4lOC4meC4uQor4LiU4Lia4Lix4LiZCivguJTguJrguLHguKrguKfguLTguJkKK+C4lOC4muC4seC4quC4p+C4tOC4meC4tQor4LiU4Lia4Lix4Liq4Lin4Li1CivguJTguKEKK+C4lOC4oeC5hOC4owor4LiU4LijCivguJTguKPguIfguITguYwKK+C4lOC4o+C4k+C4tAor4LiU4Lij4LiT4Li1CivguJTguKPguJjguLLguJkKK+C4lOC4o+C4o+C4iuC4meC4tQor4LiU4Lij4Lil4LiyCivguJTguKPguLLguJ/guJXguYwKK+C4lOC4o+C4tAor4LiU4Lij4Li1CivguJTguKPguLgKK+C4lOC4o+C4uOC4kwor4LiU4Lij4Li44LiT4Li1CivguJTguKTguJbguLUKK+C4lOC4pQor4LiU4Lil4Lig4Liy4LiECivguJTguKfguIcKK+C4lOC5ieC4p+C4hwor4LiU4Lin4LiICivguJTguKfguJQKK+C4lOC5iOC4p+C4mQor4LiU4LmJ4Lin4LiZCivguJTguYnguKfguKHguYDguJTguLXguYnguKLguKEKK+C4lOC5ieC4p+C4ogor4LiU4Lin4LilCivguJTguK3guIEKK+C4lOC4reC4geC4geC4sOC4l+C4t+C4rQor4LiU4Lit4LiB4LiX4Lit4LiHCivguJTguK3guIHguJ/guYnguK3guJkKK+C4lOC4reC4geC5hOC4oeC5ieC4l+C4sOC5gOC4pQor4LiU4Lit4LiB4Liq4Lij4LmJ4Lit4LiiCivguJTguK3guIHguK3guLLguKcKK+C4lOC4reC4hwor4LiU4LmJ4Lit4LiHCivguJTguYjguK3guIfguYYKK+C4lOC5ieC4reC4h+C5hgor4LiU4Lit4LiH4LiJ4Liy4LiiCivguJTguK3guIfguJTguLbguIcKK+C4lOC4reC4h+C4q+C4suC4ogor4LiU4Lit4LiUCivguJTguK3guJkKK+C4lOC5iOC4reC4mQor4LiU4Lit4LihCivguJTguYnguK3guKEKK+C4lOC4reC4ogor4LiU4LmJ4Lit4LiiCivguJTguK3guKXguKXguLLguKPguYwKK+C4lOC4sAor4LiU4Liw4LmC4LiV4LmK4Liw4Lii4Li44LiV4Li04LiY4Lij4Lij4LihCivguJTguLDguKvguKHguLHguIcKK+C4lOC4seC4gQor4LiU4Lix4LiB4LiU4LiZCivguJTguLHguIHguJTguLLguJkKK+C4lOC4seC4geC5gOC4lOC4teC5ieC4ogor4LiU4Lix4LiB4LmB4LiU4LmJCivguJTguLHguIHguKnguIEKK+C4lOC4seC4geC4qeC4kwor4LiU4Lix4LiB4Lip4LiT4Li1CivguJTguLHguIHguKnguLHguJkKK+C4lOC4seC4hwor4LiU4Lix4LmI4LiHCivguJTguLHguYnguIcKK+C4lOC4seC5ieC4h+C5gOC4lOC4tOC4oQor4LiU4Lix4LiK4LiZ4Li1CivguJTguLHguJQKK+C4lOC4seC4lOC4m+C4peC4seC4gQor4LiU4Lix4LiV4LiK4LmMCivguJTguLHguJkKK+C4lOC4seC5ieC4mQor4LiU4Lix4LiZ4LmA4Lir4Li04LihCivguJTguLHguJoKK+C4lOC4seC4oeC4nuC5jAor4LiU4Lix4LmJ4Lin4LmA4LiU4Li14LmJ4LiiCivguJTguLHguKrguIHguKMKK+C4lOC4seC4quC4geC4o+C4tQor4LiU4LiyCivguJTguYjguLIKK+C4lOC4suC4gQor4LiU4LmI4Liy4LiHCivguJTguYnguLLguIcKK+C4lOC4suC4lAor4LiU4Liy4LiU4LiV4Liw4LiB4Lix4LmI4LinCivguJTguLLguJkKK+C4lOC5iOC4suC4mQor4LiU4LmJ4Liy4LiZCivguJTguLLguJoKK+C4lOC4suC4muC4qgor4LiU4Liy4LihCivguJTguYnguLLguKEKK+C4lOC5ieC4suC4oeC4iOC4tOC5ieC4pwor4LiU4Liy4Lih4Lie4LmMCivguJTguLLguKHguKMKK+C4lOC4suC4ogor4LiU4LmJ4Liy4LiiCivguJTguLLguKMKK+C4lOC4suC4o+C4gQor4LiU4Liy4Lij4LiT4Li1CivguJTguLLguKPguJTguLLguKkKK+C4lOC4suC4o+C4sgor4LiU4Liy4LilCivguJTguLLguKXguLHguJQKK+C4lOC4suC4peC4uAor4LiU4Liy4Lil4Li44LiKCivguJTguLLguYTguKXguKXguLLguKHguLAKK+C4lOC4suC4pwor4LiU4LmI4Liy4LinCivguJTguYnguLLguKcKK+C4lOC4suC4p+C4geC4o+C4sOC4iOC4suC4ogor4LiU4Liy4Lin4LiU4Li24LiH4Liq4LmMCivguJTguLLguKfguJrguKoKK+C4lOC4suC4p+C5gOC4o+C4t+C4reC4hwor4LiU4Liy4LipCivguJTguLLguKvguIfguLHguJkKK+C4lOC4suC4q+C4peC4seC4hwor4LiU4Liy4LisCivguJTguLMKK+C4lOC5iOC4swor4LiU4LmJ4LizCivguJTguLPguYbguYHguJTguIfguYYKK+C4lOC4s+C4geC4pQor4LiU4Liz4LmA4LiB4Li04LiHCivguJTguLPguYHguITguIcKK+C4lOC4s+C4lOC4hwor4LiU4Liz4LiZ4Liy4LiTCivguJTguLPguJnguLLguJkKK+C4lOC4s+C4meC4uQor4LiU4Liz4LmA4LiZ4Li04LiZCivguJTguLPguYDguJnguLXguKLguJkKK+C4lOC4s+C5gOC4meC4teC4ouC4owor4LiU4Liz4Lia4LilCivguJTguLPguJ7guK3guIcKK+C4lOC4s+C4o+C4seC4qgor4LiU4Liz4Lij4Li0CivguJTguLPguKPguLUKK+C4lOC4s+C4o+C4uQor4LiU4Liz4LmE4LijCivguJTguLPguKTguKnguJPguLIKK+C4lOC4s+C5gOC4peC4tOC4hwor4LiU4Liz4LmB4Lil4LiHCivguJTguLPguKvguJnguLHguIEKK+C4lOC4s+C4q+C4meC4tAor4LiU4Liz4Lit4Lin4LiUCivguJTguLTguIEKK+C4lOC4tOC4geC5hgor4LiU4Li04LiHCivguJTguLTguYjguIcKK+C4lOC4tOC4ieC4seC4mQor4LiU4Li04LiQCivguJTguLTguJXguJbguYwKK+C4lOC4tOC4luC4tQor4LiU4Li04LiZCivguJTguLTguYnguJkKK+C4lOC4tOC4mgor4LiU4Li04Lia4LiU4Li1CivguJTguLTguKPguLHguIjguInguLLguJkKK+C4lOC4tOC5gOC4o+C4gQor4LiU4Li04Lil4LiBCivguJTguLTguYjguKcKK+C4lOC4tOC5ieC4pwor4LiU4Li04LmJ4Lin4LmA4LiU4Li14LmJ4Lii4LinCivguJTguLTguKnguJDguYwKK+C4lOC4tOC4quC5guC4nuC4o+C5gOC4i+C4teC4ouC4oQor4LiU4Li1CivguJTguLXguIHguKPguLUKK+C4lOC4teC4ieC4seC4mQor4LiU4Li14LmA4LiL4LilCivguJTguLXguJQKK+C4lOC4teC4lOC4teC4l+C4tQor4LiU4Li14LiZ4Liy4LiE4Lij4Liy4LiKCivguJTguLXguJrguLjguIEKK+C4lOC4teC4m+C4peC4tQor4LiU4Li14LmA4Lib4Lij4Liq4LiK4Lix4LiZCivguJTguLXguJzguLIKK+C4lOC4teC4nuC4owor4LiU4Li14Lii4LiyCivguJTguLXguKvguKHguLUKK+C4lOC4teC4q+C4peC4tQor4LiU4Li24LiBCivguJTguLbguIcKK+C4lOC4tuC5iOC4hwor4LiU4Li24LiH4Liq4LiwCivguJTguLbguYjguKEKK+C4lOC4t+C5iOC4mQor4LiU4Li34LmI4LihCivguJTguLfguK0KK+C4lOC4t+C5ieC4rQor4LiU4Li4CivguJTguLjguIEKK+C4lOC4uOC4geC4lOC4tOC4gQor4LiU4Li44LiB4LiX4Liw4LmA4LilCivguJTguLjguYnguIcKK+C4lOC4uOC5ieC4h+C4lOC4tOC5ieC4hwor4LiU4Li44LiICivguJTguLjguIjguJTguLHguIcKK+C4lOC4uOC4iOC4q+C4meC4tuC5iOC4hwor4LiU4Li44LiUCivguJTguLjguJkKK+C4lOC4uOC5ieC4mQor4LiU4Li44Lia4LmGCivguJTguLjguKEKK+C4lOC4uOC5iOC4oQor4LiU4Li44LmI4Lih4LmGCivguJTguLjguYjguKIKK+C4lOC4uOC4o+C4hAor4LiU4Li44Lij4LiH4LiE4LmMCivguJTguLjguKPguIfguITguLUKK+C4lOC4uOC4o+C4tOC4ouC4sAor4LiU4Li44Lij4Li04Lii4Liy4LiH4LiE4LmMCivguJTguLjguKUKK+C4lOC4uOC4qeC4juC4tQor4LiU4Li44Lip4LiT4Li1CivguJTguLjguKnguJPguLXguKDguLLguJ4KK+C4lOC4uOC4qeC4tOC4lQor4LiU4Li44Liq4Li04LiVCivguJTguLjguYDguKvguKfguYjguLIKK+C4lOC4uQor4LiU4Li54LiB4LmE4LiB4LmI4LiU4LizCivguJTguLnguIHguITguYjguLLguIcKK+C4lOC4ueC4geC4iuC5ieC4suC4hwor4LiU4Li54LiB4LijCivguJTguLnguJQKK+C5gOC4lAor4LmA4LiU4LmICivguYDguJTguIEKK+C5gOC4lOC5h+C4gQor4LmA4LiU4LiB4LiL4LmM4LmC4LiX4Lij4LiqCivguYDguJTguITguLLguIHguKPguLHguKEKK+C5gOC4lOC4hOC4suC5gOC4oeC4leC4owor4LmA4LiU4LiE4Liy4Lil4Li04LiV4LijCivguYDguJTguYnguIcKK+C5gOC4lOC5h+C4iAor4LmA4LiU4LiKCivguYDguJTguIrguJnguYwKK+C5gOC4lOC4iuC4meC4sAor4LmA4LiU4LiK4LiwCivguYDguJTguYLguIoKK+C5gOC4lOC4i+C4tOC4geC4o+C4seC4oQor4LmA4LiU4LiL4Li04LmA4Lih4LiV4LijCivguYDguJTguIvguLTguKXguLTguJXguKMKK+C5gOC4lOC5h+C4lAor4LmA4LiU4LiZCivguYDguJTguYjguJkKK+C5gOC4lOC4meC4oeC4suC4o+C5jOC4gQor4LmA4LiU4Lij4Lix4LiI4LiJ4Liy4LiZCivguYDguJTguYvguK0KK+C5gOC4lOC5i+C4reC4lOC5i+C4sgor4LmA4LiU4LiyCivguYDguJTguYjguLIKK+C5gOC4lOC5ieC4sgor4LmA4LiU4LmI4Liy4LmGCivguYDguJTguYnguLLguJTguLTguJkKK+C5gOC4lOC5ieC4suC4peC4oQor4LmA4LiU4Liy4LiwCivguYDguJTguLTguJkKK+C5gOC4lOC4tOC5iOC4mQor4LmA4LiU4Li04LihCivguYDguJTguLXguYnguKIKK+C5gOC4lOC4teC4ouC4hwor4LmA4LiU4Li14Lii4LiUCivguYDguJTguLXguKLguKMKK+C5gOC4lOC4teC4ouC4o+C4lOC4suC4qQor4LmA4LiU4Li14Lii4Lij4LiW4LmMCivguYDguJTguLXguKLguKPguJbguLXguKLguYwKK+C5gOC4lOC4teC4ouC4o+C4seC4iOC4ieC4suC4mQor4LmA4LiU4Li14Lii4LinCivguYDguJTguLXguYjguKLguKcKK+C5gOC4lOC4teC5i+C4ouC4pwor4LmA4LiU4Li14Lii4LiwCivguYDguJTguLfguYjguK0KK+C5gOC4lOC4t+C4reC4gQor4LmA4LiU4Li34LmI4Lit4LiHCivguYDguJTguLfguK3guJQKK+C5gOC4lOC4t+C4reC4mQor4LmA4LiU4Li34Lit4LiiCivguYHguJQKK+C5geC4lOC5iAor4LmB4LiU4LiBCivguYHguJTguYfguIHguYYKK+C5geC4lOC4geC4h+C4sgor4LmB4LiU4LiB4LmB4LiU4LmJCivguYHguJTguYfguIHguYHguJTguYkKK+C5geC4lOC4hwor4LmB4LiU4LiH4LiZ4LmJ4LizCivguYHguJTguJQKK+C5geC4lOC4mQor4LmB4LiU4LmI4LiZCivguYHguJTguYjguKfguYYKK+C5geC4lOC4sAor4LmC4LiUCivguYLguJTguYgKK+C5guC4lOC4geC5gOC4lOC4gQor4LmC4LiU4LmI4LiHCivguYLguJTguJQKK+C5guC4lOC4mQor4LmC4LiU4LiZ4Lix4LiVCivguYLguJTguYrguJvguKLguLIKK+C5guC4lOC4oQor4LmC4LiU4Lih4LijCivguYLguJTguKIKK+C5guC4lOC4owor4LmC4LiU4Lij4LiTCivguYPguJQKK+C5hOC4lAor4LmE4LiU4LmJCivguYTguJTguYHguIvguYfguIHguITguLLguYTguKPguITguYwKK+C5hOC4lOC4meC4suC5hOC4oeC4leC5jAor4LmE4LiU4LmC4LiZ4LmA4Liq4Liy4Lij4LmMCivguYTguJTguYDguKPguIHguJXguKPguLTguIHguIvguYwKK+C5hOC4lOC4reC4suC4o+C4tQor4LiVCivguJXguIEKK+C4leC5iuC4geC5guC4lQor4LiV4LiHCivguJXguYvguIcKK+C4leC4h+C4ieC4tOC4mQor4LiV4LiH4Li04LiUCivguJXguIfguLjguYjguJkKK+C4leC4lAor4LiV4LiW4Liy4LiE4LiVCivguJXguJfguLHguIfguITguKfguLTguKHguLjguJXguJXguLQKK+C4leC4mQor4LiV4LmJ4LiZCivguJXguJnguLHguKIKK+C4leC4meC4uAor4LiV4LiaCivguJXguJrguKLguLjguIcKK+C4leC4muC4sAor4LiV4Lib4Liw4LiZ4Li14Lii4LiwCivguJXguKEKK+C4leC5ieC4oQor4LiV4Lih4Li54LiBCivguJXguYLguKHguYLguIrguJXguLTguJvguKPguLLguKLguYLguJkKK+C4leC5guC4oeC4leC4oeC4m+C4o+C4suC4ouC5guC4mQor4LiV4LmC4Lih4LiZ4Li44LiXCivguJXguYLguKHguYTguJ7guKPguLUKK+C4leC5guC4oeC4q+C4owor4LiV4Lii4Liy4LiECivguJXguKLguLLguITguLUKK+C4leC4ouC4uOC4leC4tAor4LiV4Lij4LiHCivguJXguKPguIfguYYKK+C4leC4o+C4k+C4tQor4LiV4Lij4LihCivguJXguKPguKHguKfguKUKK+C4leC4o+C4o+C4geC4sAor4LiV4Lij4Lil4LiaCivguJXguKPguKXguK3guJQKK+C4leC4o+C4peC4sAor4LiV4Lij4Lil4LiyCivguJXguKPguKXguLLguJQKK+C4leC4o+C5gOC4peC4tOC4lAor4LiV4Lij4Lin4LiICivguJXguKPguKfguJQKK+C4leC4o+C4p+C4mQor4LiV4Lij4Lin4LiiCivguJXguKPguK3guIEKK+C4leC4o+C4reC4hwor4LiV4Lij4Lit4Lih4LmD4LiICivguJXguKPguK3guKHguJXguKPguKEKK+C4leC4o+C4sAor4LiV4Lij4Liw4LiB4LilCivguJXguKPguLDguIHguKfguJkKK+C4leC4o+C4sOC4geC4reC4hwor4LiV4Lij4Liw4LiB4Lix4LiUCivguJXguKPguLDguIHguLLguKMKK+C4leC4o+C4sOC4geC4ueC4pQor4LiV4Lij4Liw4LiE4Lix4LijCivguJXguKPguLDguIfguYjguK3guIcKK+C4leC4o+C4sOC4iOC4seC4gQor4LiV4Lij4Liw4LiK4Lix4LiBCivguJXguKPguLDguJTguIEKK+C4leC4o+C4sOC4lOC4suC4qQor4LiV4Lij4Liw4LmA4LiV4Lij4Li14Lii4LihCivguJXguKPguLDguYHguJXguYnguJkKK+C4leC4o+C4sOC4l+C4o+C4p+C4hwor4LiV4Lij4Liw4LiZ4Liy4LinCivguJXguKPguLDguYTguJkKK+C4leC4o+C4sOC4muC4gQor4LiV4Lij4Liw4Lia4Lit4LiBCivguJXguKPguLDguJrguK3guIcKK+C4leC4o+C4sOC4muC4seC4lAor4LiV4Lij4Liw4Lia4Lix4LiZCivguJXguKPguLDguYDguJrguYfguIcKK+C4leC4o+C4sOC5geC4muC5iAor4LiV4Lij4Liw4LmB4Lia4LiBCivguJXguKPguLDguYHguJrguIcKK+C4leC4o+C4sOC5geC4muC4mQor4LiV4Lij4Liw4LmB4Lia4LmI4LiZCivguJXguKPguLDguYLguJrguKEKK+C4leC4o+C4sOC4nuC4reC4hwor4LiV4Lij4Liw4Lie4Lix4LiHCivguJXguKPguLDguKHguLfguYjguJkKK+C4leC4o+C4sOC5guC4oeC4iAor4LiV4Lij4Liw4Lil4Liy4LiB4Liy4LijCivguJXguKPguLDguKfguLHguJkKK+C4leC4o+C4sOC5gOC4p+C5h+C4lAor4LiV4Lij4Liw4LmA4Lin4LiZCivguJXguKPguLDguYDguKfguJnguYTguJ7guKMKK+C4leC4o+C4sOC5gOC4p+C4meC4p+C4seC4mQor4LiV4Lij4Liw4Liq4Lix4LiBCivguJXguKPguLDguKvguIfguYjguK3guIcKK+C4leC4o+C4sOC4q+C4h+C5iOC4suC4mQor4LiV4Lij4Liw4Lir4LiZ4LiBCivguJXguKPguLDguKvguJnguLHguIEKK+C4leC4o+C4sOC4q+C4meC5iOC4swor4LiV4Lij4Liw4Lir4LiZ4Li14LmICivguJXguKPguLDguK3guKMKK+C4leC4o+C4sOC4reC4suC4pQor4LiV4Lij4Liw4LmC4Lit4LihCivguJXguKPguLHguIcKK+C4leC4o+C4seC4h+C4hOC5jAor4LiV4Lij4Lix4LiaCivguJXguKPguLHguJrguJ/guLHguIcKK+C4leC4o+C4seC4ogor4LiV4Lij4Lix4Lii4LiV4Lij4Li24LiH4Lio4LmMCivguJXguKPguLHguKoKK+C4leC4o+C4seC4quC4quC4sgor4LiV4Lij4LiyCivguJXguKPguLLguIHguJXguKPguLMKK+C4leC4o+C4suC4iuC4uQor4LiV4Lij4Liy4LiaCivguJXguKPguLLguKrguLHguIcKK+C4leC4o+C4swor4LiV4Lij4LmI4LizCivguJXguKPguLQKK+C4leC4o+C4tOC4pwor4LiV4Lij4Li1CivguJXguKPguLXguJvguKPguLDguJTguLHguJoKK+C4leC4o+C4teC4m+C4p+C4suC4ogor4LiV4Lij4Li14Lie4Li04LiY4Lie4Lij4Lij4LiTCivguJXguKPguLXguYDguJ7guIrguKPguJfguLHguJPguJHguLUKK+C4leC4o+C4teC5gOC4nuC4iuC4o+C4nuC4p+C4hwor4LiV4Lij4Li14Lii4Lih4LiBCivguJXguKPguLXguKLguLHguKHguJvguKfguLLguKIKK+C4leC4o+C4tuC4gQor4LiV4Lij4Li24LiHCivguJXguKPguLgKK+C4leC4o+C4uOC4kwor4LiV4Lij4Li44LiiCivguJXguKPguLjguKkKK+C4leC4o+C4uOC4qeC4iOC4teC4mQor4LiV4Lij4Li5CivguJXguKPguLnguYgKK+C4leC4pOC4kwor4LiV4Lik4LiV4Li14Lii4LiwCivguJXguKTguJcKK+C4leC4pOC4mwor4LiV4Lik4Lip4LiT4LiyCivguJXguKTguYUKK+C4leC4pQor4LiV4Lil4LiBCivguJXguKXguIHguJrguLLguJXguKMKK+C4leC4peC4mgor4LiV4Lil4Lit4LiUCivguJXguKXguLAKK+C4leC4peC4seC4mgor4LiV4Lil4Lix4Lia4LiZ4Liy4LiBCivguJXguKXguLLguJQKK+C4leC4peC4tOC5iOC4hwor4LiV4Lil4Li24LiHCivguJXguKfguIcKK+C4leC5iOC4p+C4mQor4LiV4LmJ4Lin4Lih4LmA4LiV4Li14LmJ4Lii4LihCivguJXguKfguLHguIEKK+C4leC4p+C4seC4lAor4LiV4Lin4Liy4LiUCivguJXguK0KK+C4leC5iOC4rQor4LiV4LmJ4LitCivguJXguK3guIEKK+C4leC5iuC4reC4gQor4LiV4LmK4Lit4LiB4LiV4LmL4Lit4LiiCivguJXguK3guIcKK+C4leC5ieC4reC4hwor4LiV4Lit4LiH4LiB4Lij4Liy4LiiCivguJXguYnguK3guIfguIHguLLguKMKK+C4leC4reC4h+C4leC4reC4ogor4LiV4Lit4LiH4LiV4Li24LiHCivguJXguYnguK3guIfguYDguJUKK+C4leC4reC4h+C5geC4leC4gQor4LiV4LmI4Lit4LiH4LmB4LiV4LmI4LiHCivguJXguK3guIfguYDguJvguKPguLXguKLguIcKK+C4leC5ieC4reC4h+C4quC4ueC5iQor4LiV4Lit4LiH4LmA4Lir4Lil4Li34Lit4LiHCivguJXguK3guJQKK+C4leC4reC4lOC4leC5iOC4rQor4LiV4Lit4LiZCivguJXguYnguK3guJkKK+C4leC4reC4mgor4LiV4Lit4LmA4Lia4LiyCivguJXguK3guKEKK+C4leC5iOC4reC4oQor4LiV4LmL4Lit4LihCivguJXguYjguK3guKHguJnguYnguLMKK+C4leC5iOC4reC4ogor4LiV4LmJ4Lit4LiiCivguJXguYnguK3guKLguJXguKPguLTguYjguIcKK+C4leC5ieC4reC4ouC4leC4tOC5iOC4hwor4LiV4LmJ4Lit4Lii4LiV4Li14Lin4Li04LiUCivguJXguK3guYHguKIKK+C4leC4reC4o+C5jOC4m+C4tOC5guC4lAor4LiV4LmI4Lit4LmE4Liq4LmJCivguJXguK3guYHguKvguKUKK+C4leC4sAor4LiV4Liw4LiB4Lij4LiZCivguJXguLDguIHguKPguKEKK+C4leC4sOC4geC4o+C4p+C4ogor4LiV4Liw4LiB4Lij4LmJ4LitCivguJXguLDguIHguKPguYjguK3guKEKK+C4leC4sOC4geC4o+C4seC4mQor4LiV4Liw4LiB4Lij4Lix4LiaCivguJXguLDguIHguKPguYnguLIKK+C4leC4sOC4geC4o+C4suC4oQor4LiV4Liw4LiB4Lij4Li44LiUCivguJXguLDguIHguKPguLjguKEKK+C4leC4sOC4geC4o+C4uOC4oeC4leC4sOC4geC4o+C4suC4oQor4LiV4Liw4LiB4Lil4LiwCivguJXguLDguIHguKXguLLguKEKK+C4leC4sOC4geC4p+C4lAor4LiV4Liw4LiB4LitCivguJXguLDguIHguK3guJkKK+C4leC4sOC4geC4seC4hwor4LiV4Liw4LiB4Lix4LmI4LinCivguJXguLDguIHguLLguIcKK+C4leC4sOC4geC4suC4lAor4LiV4Liw4LiB4Liy4LiiCivguJXguLDguIHguLLguKcKK+C4leC4sOC4geC4teC5iQor4LiV4Liw4LiB4Li44LiB4LiV4Liw4LiB4Lix4LiBCivguJXguLDguIHguLjguKIKK+C4leC4sOC4geC4uQor4LiV4Liw4LiB4Li54LiUCivguJXguLDguYDguIHguLXguKLguIHguJXguLDguIHguLLguKIKK+C4leC4sOC5gOC4geC4teC4ouC4hwor4LiV4Liw4LmA4LiB4Li14Lii4LiaCivguJXguLDguYHguIEKK+C4leC4sOC5geC4geC5iAor4LiV4Liw4LmB4LiB4Lij4LiHCivguJXguLDguYLguIEKK+C4leC4sOC5guC4geC5iQor4LiV4Liw4LmC4LiB4LiBCivguJXguLDguYLguIHguJkKK+C4leC4sOC5guC4geC4o+C4hwor4LiV4Liw4LmC4LiB4Lij4LihCivguJXguLDguYTguIHguKMKK+C4leC4sOC4guC4mgor4LiV4Liw4LiC4LitCivguJXguLDguILguLLguJoKK+C4leC4sOC4guC4tOC4lOC4leC4sOC4guC4p+C4hwor4LiV4Liw4LmA4LiC4LmJCivguJXguLDguYDguILguYfguJoKK+C4leC4sOC5gOC4guC4tOC4hwor4LiV4Liw4LmC4LiC4LiHCivguJXguLDguITguKPguYnguK0KK+C4leC4sOC4hOC4o+C4reC4hwor4LiV4Liw4LiE4Lij4Lix4LmI4LiZ4LiV4Liw4LiE4Lij4LitCivguJXguLDguITguKPguYnguLMKK+C4leC4sOC4hOC4o+C4tOC4pwor4LiV4Liw4LiE4Lij4Li44LiaCivguJXguLDguITguKXguLHguJrguJXguLDguITguKXguYnguLLguKIKK+C4leC4sOC4hOC4reC4gQor4LiV4Liw4LiE4Lix4LiZCivguJXguLDguITguYnguLIKK+C4leC4sOC4hOC4suC4gQor4LiV4Liw4LiE4Liy4LiHCivguJXguLDguITguYnguLLguJkKK+C4leC4sOC4hOC4tOC4pwor4LiV4Liw4LiE4Li44LmI4LihCivguJXguLDguYDguITguKPguLXguKLguKcKK+C4leC4sOC5gOC4hOC4teC4ouC4mQor4LiV4Liw4LmA4LiE4Li14Lii4LiZ4LiX4Lit4LiHCivguJXguLDguYDguITguLXguKLguKcKK+C4leC4sOC5geC4hOC4hwor4LiV4Liw4LmE4LiE4Lij4LmICivguJXguLDguYTguITguKPguYkKK+C4leC4sOC5gOC4huC5iAor4LiV4Liw4LmB4LiH4LmJCivguJXguLDguJXguLTguJkKK+C4leC4sOC5geC4leC4o+C5ieC4mQor4LiV4Liw4LiZ4Lit4LiiCivguJXguLDguJnguLLguKcKK+C4leC4sOC4muC4oQor4LiV4Liw4Lia4Lit4LiHCivguJXguLDguJrguK3guIfguIHguLHguJkKK+C4leC4sOC4muC4reC4h+C5gOC4nuC4iuC4owor4LiV4Liw4Lia4Lit4LiiCivguJXguLDguJrguLHguJkKK+C4leC4sOC4muC4tOC5ieC4hwor4LiV4Liw4Lia4Li04LiUCivguJXguLDguJrguLTguJTguJXguLDguJrguK3guKIKK+C4leC4sOC4muC4teC5ieC4leC4sOC4muC4seC4mQor4LiV4Liw4Lia4Li24LiHCivguJXguLDguJrguLjguYnguKIKK+C4leC4sOC4muC4uOC5ieC4ouC5hgor4LiV4Liw4Lia4Li54LiZCivguJXguLDguYDguJrguYfguIcKK+C4leC4sOC5gOC4muC5h+C4h+C4oeC4suC4mQor4LiV4Liw4LmB4Lia4LiBCivguJXguLDguYHguJrguIcKK+C4leC4sOC5guC4muC4oQor4LiV4Liw4LmE4LiaCivguJXguLDguJvguJoKK+C4leC4sOC4m+C4peC4tOC4hwor4LiV4Liw4Lib4Lix4LiU4LiV4Liw4Lib4LmI4Lit4LiHCivguJXguLDguJvguLTguYnguIcKK+C4leC4sOC4m+C4uOC5iOC4oeC4leC4sOC4m+C5iOC4swor4LiV4Liw4Lib4Li5CivguJXguLDguJ7guIcKK+C4leC4sOC4nuC4lAor4LiV4Liw4Lie4Lit4LiHCivguJXguLDguJ7guLHguIEKK+C4leC4sOC4nuC4seC4hwor4LiV4Liw4Lie4Lix4LiUCivguJXguLDguJ7guLHguYnguJkKK+C4leC4sOC4nuC4suC4gQor4LiV4Liw4Lie4Liy4LiZCivguJXguLDguJ7guLLguJoKK+C4leC4sOC4nuC4suC4muC4meC5ieC4swor4LiV4Liw4Lie4Liy4LiiCivguJXguLDguJ7guLbguJQKK+C4leC4sOC4nuC4uOC5iOC4mQor4LiV4Liw4LmA4Lie4Lij4LiyCivguJXguLDguYDguJ7guLTguIcKK+C4leC4sOC5gOC4nuC4tOC4lAor4LiV4Liw4LmA4Lie4Li04LmI4LiZCivguJXguLDguYDguJ7guLXguKLguJkKK+C4leC4sOC5guC4nuC4gQor4LiV4Liw4LmC4Lie4LiHCivguJXguLDguYLguJ7guJkKK+C4leC4sOC5gOC4oOC4sgor4LiV4Liw4LmD4Lig4LmJCivguJXguLDguKHguYjguK0KK+C4leC4sOC4oeC4reC4ogor4LiV4Liw4Lih4Lit4Lii4Liq4Liw4Lil4LiyCivguJXguLDguKPguLHguIcKK+C4leC4sOC4o+C4seC4h+C4geC4sOC4meC4uQor4LiV4Liw4Lij4Lix4LiH4LiV4Lix4LiHCivguJXguLDguKPguLLguIcKK+C4leC4sOC4peC4reC4hwor4LiV4Liw4Lil4Lit4LiZCivguJXguLDguKXguYjguK3guKEKK+C4leC4sOC4peC5iOC4reC4oeC4m+C5ieC4reC4oQor4LiV4Liw4Lil4LiwCivguJXguLDguKXguLLguJkKK+C4leC4sOC4peC4tOC4h+C4m+C4peC4tOC4hwor4LiV4Liw4Lil4Li04LiaCivguJXguLDguKXguLXguJXguLDguKXguLLguJkKK+C4leC4sOC4peC4tuC4hwor4LiV4Liw4Lil4Li44LiHCivguJXguLDguKXguLjguYjguKEKK+C4leC4sOC4peC4uOC4oeC4muC4reC4mQor4LiV4Liw4Lil4Li44LmI4Lih4LmC4Lib4LiHCivguJXguLDguKXguLjguKHguJ7guK0KK+C4leC4sOC4peC4uOC4oeC4nuC4uOC4gQor4LiV4Liw4Lil4Li44LmI4Lih4Lit4Li04LiUCivguJXguLDguKXguLjguKIKK+C4leC4sOC5gOC4peC4hwor4LiV4Liw4LmB4Lil4LiH4LmB4LiB4LiHCivguJXguLDguYTguKUKK+C4leC4sOC4p+C4seC4mQor4LiV4Liw4Lin4Liy4LiHCivguJXguLDguYDguKfguJkKK+C4leC4sOC4q+C4meC4tuC5iOC4h+C4o+C4seC4lAor4LiV4Liw4Lir4Lil4Li04LinCivguJXguLDguKvguKXguLjguIEKK+C4leC4sOC4q+C4peC4uOC4hwor4LiV4Liw4LmA4Lir4Lil4LiZ4LmB4Lib4LmL4LiZCivguJXguLDguYDguKvguKXguLLguLDguYDguJvguLLguLAKK+C4leC4sOC5geC4q+C4h+C5iOC4pwor4LiV4Liw4LmB4Lir4Lih4Liw4LmB4LiC4LiwCivguJXguLDguYHguKvguKXguJnguYHguJvguYvguJkKK+C4leC4sOC5guC4q+C4h+C4gQor4LiV4Lix4LmK4LiBCivguJXguLHguIHguIHguLAKK+C4leC4seC4geC5gOC4leC4t+C4reC4mQor4LiV4Lix4LmK4LiB4LmB4LiV4LiZCivguJXguLHguIHguKMKK+C4leC4seC4geC4qeC4gQor4LiV4Lix4LiB4Lip4LiTCivguJXguLHguIHguKnguJPguLUKK+C4leC4seC4geC4qeC4seC4ogor4LiV4Lix4LiHCivguJXguLHguYjguIcKK+C4leC4seC5ieC4hwor4LiV4Lix4LiH4LmA4LiBCivguJXguLHguIfguInguYjguLLguKIKK+C4leC4seC4h+C4leC4tOC4lAor4LiV4Lix4LiH4LmA4LihCivguJXguLHguIfguKfguLLguKIKK+C4leC4seC4h+C5guC4reC5iwor4LiV4Lix4LiI4LiJ4LiBCivguJXguLHguIjguInguJnguLUKK+C4leC4seC4k+C4keC4uOC4pQor4LiV4Lix4LiT4Lir4Lix4LiB4Lip4Lix4LiiCivguJXguLHguJPguKvguLIKK+C4leC4seC4lAor4LiV4Lix4LiW4Lii4LmMCivguJXguLHguJkKK+C4leC4seC4meC4leC4o+C4sAor4LiV4Lix4LiZ4LiV4Li0CivguJXguLHguJnguKvguIEKK+C4leC4seC4meC4q+C4ouC4hwor4LiV4Lix4LiZ4LmA4Lir4Li04LihCivguJXguLHguJoKK+C4leC4seC4muC5gOC4leC5iOC4sgor4LiV4Lix4Lia4Lib4Li04LmJ4LiHCivguJXguLHguJrguYDguJvguYfguJQKK+C4leC4seC4pwor4LiV4Lix4LmL4LinCivguJXguLHguKfguJXguLfguJQKK+C4leC4seC5ieC4p+C5guC4nAor4LiV4Lix4LmJ4Lin4Liq4Li04LinCivguJXguLHguYnguKfguYDguKvguLXguYjguKIKK+C4leC4sgor4LiV4Liy4LiBCivguJXguLLguIcKK+C4leC5iOC4suC4hwor4LiV4Liy4LiUCivguJXguLLguJkKK+C4leC5iOC4suC4mQor4LiV4LmJ4Liy4LiZCivguJXguLLguJnguJnguIHguIHguJQKK+C4leC4suC4meC5gOC4quC4teC5ieC4ouC4mQor4LiV4Liy4LiZ4Lir4LiBCivguJXguLLguJnguKvguKHguYjguK3guJkKK+C4leC4suC4meC5gOC4q+C4peC4t+C4reC4hwor4LiV4Liy4LiZ4Li1CivguJXguLLguJoKK+C4leC4suC4neC4seC5iOC4hwor4LiV4Liy4LihCivguJXguLLguKHguJ7guLAKK+C4leC4suC4oeC4sOC5geC4mQor4LiV4Liy4Lih4Li04LiZCivguJXguLLguKIKK+C4leC5ieC4suC4ogor4LiV4LmK4Liy4Lii4LiV4Liy4LiiCivguJXguLLguKPguLLguYTguJUKK+C4leC4suC5gOC4o+C4t+C4reC4iuC4seC4ogor4LiV4Liy4LilCivguJXguLLguKXguLLguJkKK+C4leC4suC4peC4uAor4LiV4Liy4Lil4Li44LiKCivguJXguLLguKcKK+C4leC4suC5gOC4quC4t+C4rQor4LiV4Liy4Lir4Lil4Li04LmI4LiHCivguJXguLLguKwKK+C4leC4swor4LiV4LmI4LizCivguJXguLPguJnguLLguJkKK+C4leC4s+C5gOC4meC4tOC4mQor4LiV4Liz4LmA4LiZ4Li14Lii4LiZCivguJXguLPguJrguKUKK+C4leC4s+C5geC4mgor4LiV4LmJ4Liz4Lib4Li44LiBCivguJXguYnguLPguJzguLLguIcKK+C4leC5ieC4s+C4nuC4o+C4p+C4lAor4LiV4Liz4Lih4Liw4Lir4LiH4LiHCivguJXguLPguYHguKIKK+C4leC4s+C4o+C4p+C4iAor4LiV4Liz4Lij4Lix4LiaCivguJXguLPguKPguLIKK+C4leC4s+C4o+C4uAor4LiV4Liz4Lil4Li24LiHCivguJXguLPguYDguKrguLIKK+C4leC4s+C4q+C4meC4seC4gQor4LiV4Liz4Lir4LiZ4Li0CivguJXguLPguKvguKPguLAKK+C4leC4s+C5geC4q+C4meC5iOC4hwor4LiV4Li0CivguJXguLTguIHguILguI3guLLguJMKK+C4leC4tOC4geC4sAor4LiV4Li04LiB4Liy4Lir4Lil4Lix4LiHCivguJXguLTguIcKK+C4leC4tOC5iOC4hwor4LiV4Li04LmL4LiHCivguJXguLTguYvguIfguYYKK+C4leC4tOC5iOC4h+C4leC4seC5iOC4hwor4LiV4Li04LiH4Liq4LiV4Li0CivguJXguLTguYjguIfguKvguLLguKIKK+C4leC4tOC4kwor4LiV4Li04LiT4Lin4Lix4LiV4LiW4Liy4Lij4LiB4Lin4Li04LiZ4Lix4LiiCivguJXguLTguJQKK+C4leC4tOC4lOC5hgor4LiV4Li04LiV4LiV4Li04LiBCivguJXguLTguJXguJXguLTguKMKK+C4leC4tOC4leC4lgor4LiV4Li04LiW4Li1CivguJXguLTguJvguLIKK+C4leC4tOC4m+C4suC4luC4sAor4LiV4Li04Lih4Li0CivguJXguLTguKHguLTguIfguITguKXguLAKK+C4leC4tOC4owor4LiV4Li04Lij4Lix4LiI4LiJ4Liy4LiZCivguJXguLTguKUKK+C4leC4tOC4peC4gQor4LiV4Li04LmJ4LinCivguJXguLTguKrguKPguJPguITguKHguJnguLnguJvguKrguLHguKHguJvguJfguLIKK+C4leC4tQor4LiV4Li14LmICivguJXguLXguYsKK+C4leC4teC4l+C4reC4hwor4LiV4Li14LiZCivguJXguLXguJnguIjguYnguLMKK+C4leC4teC4meC5gOC4l+C4teC4ouC4mQor4LiV4Li14LiZ4LmB4Lij4LiUCivguJXguLXguJoKK+C4leC4teC4o+C4luC4sAor4LiV4Li14Lij4LiwCivguJXguLXguKvguKHguLIKK+C4leC4tgor4LiV4Li24LmGCivguJXguLbguIEKK+C4leC4tuC4geC5hgor4LiV4Li24LmJ4LiB4LmGCivguJXguLbguYnguIHguJXguLHguYnguIEKK+C4leC4tuC4hwor4LiV4Li24LiU4LiV4Li34LmL4LitCivguJXguLbguYrguJTguJXguLfguYvguK0KK+C4leC4t+C4lAor4LiV4Li34LmI4LiZCivguJXguLfguYnguJkKK+C4leC4t+C5ieC4rQor4LiV4Li34LmK4LitCivguJXguLfguYvguK0KK+C4leC4t+C4reC4ruC4p+C4mQor4LiV4Li4CivguJXguLjguYoKK+C4leC4uOC5hgor4LiV4Li44LmK4LiB4LmB4LiBCivguJXguLjguYrguIHguJXguLIKK+C4leC4uOC5iuC4geC4leC5iOC4swor4LiV4Li44LmK4LiB4LiV4LmI4Liz4LiZ4LmJ4Liz4LiX4Lit4LiHCivguJXguLjguIHguJXguLTguIEKK+C4leC4uOC5iuC4geC4leC4tOC5iuC4gQor4LiV4Li44LmK4LiB4LiV4Li44LmI4LiZCivguJXguLjguYrguIHguJXguLjguYvguKIKK+C4leC4uOC4hwor4LiV4Li44LmJ4LiH4LiB4LmI4LiyCivguJXguLjguYnguIfguJXguLTguYnguIcKK+C4leC4uOC5iuC4lOC4leC4ueC5iAor4LiV4Li44LiZCivguJXguLjguYjguJkKK+C4leC4uOC5i+C4mQor4LiV4Li44LmJ4LiZ4LmB4LiL4LiwCivguJXguLjguYjguJnguJXguYjguLLguJkKK+C4leC4uOC4meC4suC4q+C4h+C4seC4mQor4LiV4Li44Lia4LmGCivguJXguLjguYnguJrguYYKK+C4leC4uOC5iuC4muC4m+C5iOC4reC4hwor4LiV4Li44Lib4Lix4LiU4LiV4Li44Lib4LmI4Lit4LiHCivguJXguLjguJvguLHguJTguJXguLjguYDguJvguYsKK+C4leC4uOC5iOC4oQor4LiV4Li44LmJ4LihCivguJXguLjguYvguKEKK+C4leC4uOC5iuC4oeC5hgor4LiV4Li44LmK4Lih4LmG4LiV4LmJ4Lit4Lih4LmGCivguJXguLjguYnguKHguIHguKfguYnguLLguKcKK+C4leC4uOC4oeC4geC4sgor4LiV4Li44LmJ4Lih4LmB4LiL4LiwCivguJXguLjguKHguJXguLHguIcKK+C4leC4uOC5ieC4oeC5gOC4leC5i+C4mQor4LiV4Li44LmJ4Lih4Lib4Li14LmICivguJXguLjguKHguJ4KK+C4leC4uOC5iOC4ogor4LiV4Li44LmJ4LiiCivguJXguLjguYrguKIKK+C4leC4uOC5iOC4ouC5hgor4LiV4Li44LmJ4Lii4LmGCivguJXguLjguYvguKLguJXguLjguYjguKIKK+C4leC4uOC4o+C4hAor4LiV4Li44Lij4LiH4LiE4LmMCivguJXguLjguKPguLTguKLguLLguIfguITguYwKK+C4leC4uOC4peC4quC4tAor4LiV4Li44Lil4LiyCivguJXguLjguKvguKPguLHguJTguJXguLjguYDguKvguKPguYgKK+C4leC4uQor4LiV4Li54LmICivguJXguLnguYkKK+C4leC4ueC4gQor4LiV4Li54LiUCivguJXguLnguJTguIfguK3guJkKK+C4leC4ueC4mgor4LiV4Li54LihCivguJXguLnguKXguLTguYjguJnguK7guLfguYnguK0KK+C4leC4ueC4q+C4meC4sgor4LmA4LiVCivguYDguJXguIEKK+C5gOC4leC5h+C4gQor4LmA4LiV4LmH4LiHCivguYDguJXguYjguIcKK+C5gOC4leC4igor4LmA4LiV4LmC4LiKCivguYDguJXguYnguJkKK+C5gOC4leC5h+C4meC4l+C5jAor4LmA4LiV4LmH4LihCivguYDguJXguKIKK+C5gOC4leC5ieC4ogor4LmA4LiV4LmK4LiiCivguYDguJXguKPguYgKK+C5gOC4leC4o+C5h+C4lAor4LmA4LiV4Lij4LmH4LiU4LmA4LiV4Lij4LmICivguYDguJXguKPguYfguJTguYDguJXguKPguJkKK+C5gOC4leC4o+C4mQor4LmA4LiV4Lij4Li04LiHCivguYDguJXguKPguLXguKLguJQKK+C5gOC4leC4o+C4teC4ouC4mgor4LmA4LiV4Lij4Li14Lii4LihCivguYDguJXguKPguLXguKLguKHguJXguKPguKEKK+C5gOC4leC4peC4sAor4LmA4LiV4Lil4Li04LiUCivguYDguJXguKfguYfguJQKK+C5gOC4leC5iOC4rQor4LmA4LiV4Lit4LiwCivguYDguJXguLAKK+C5gOC4leC5iuC4sAor4LmA4LiV4LmK4Liw4LiI4Li44LmK4LiiCivguYDguJXguYrguLDguJfguYjguLIKK+C5gOC4leC4sgor4LmA4LiV4LmI4LiyCivguYDguJXguYnguLIKK+C5gOC4leC5i+C4sgor4LmA4LiV4LmI4Liy4LiB4Lij4Liw4Liq4Li44LiZCivguYDguJXguYjguLLguIHguLTguJnguJzguLHguIHguJrguLjguYnguIcKK+C5gOC4leC5iOC4suC5gOC4geC4teC4ouC4lAor4LmA4LiV4LmJ4Liy4LmA4LiI4Li14LmJ4Lii4LinCivguYDguJXguYjguLLguJfguK3guIcKK+C5gOC4leC5iOC4suC4l+C4reC5gOC4quC4t+C5iOC4rQor4LmA4LiV4LmJ4Liy4LiX4Li24LiHCivguYDguJXguYjguLLguJrguYnguLIKK+C5gOC4leC5iOC4suC4o+C4seC5ieC4hwor4LmA4LiV4LmI4Liy4Lij4LmJ4Liy4LiHCivguYDguJXguYjguLLguYDguKXguLfguK3guJkKK+C5gOC4leC5ieC4suC4quC5iOC4p+C4mQor4LmA4LiV4LmJ4Liy4LmA4Liq4Li14Lii4LiaCivguYDguJXguYjguLLguKvguLHguJoKK+C5gOC4leC5ieC4suC4q+C4ueC5iQor4LmA4LiV4LmJ4Liy4Liu4Lin4LiiCivguYDguJXguYrguLLguLAKK+C5gOC4leC4suC4sOC5geC4leC4sAor4LmA4LiV4Li04LmI4LiHCivguYDguJXguLTguJnguYDguJXguYjguK0KK+C5gOC4leC4tOC4mgor4LmA4LiV4Li04LihCivguYDguJXguLXguYjguKIKK+C5gOC4leC4teC5ieC4ogor4LmA4LiV4Li14Lii4LiHCivguYDguJXguLXguKLguJkKK+C5gOC4leC4teC4ouC4mgor4LmA4LiV4Li14LmK4Lii4LihCivguYDguJXguLXguYvguKLguKEKK+C5gOC4leC4teC4ouC4o+C4luC5jAor4LmA4LiV4Li14Lii4LinCivguYDguJXguLXguYjguKLguKcKK+C5gOC4leC4t+C5ieC4rQor4LmA4LiV4Li34Lit4LiZCivguYHguJXguYgKK+C5geC4leC5iQor4LmB4LiV4LmI4LmGCivguYHguJXguIEKK+C5geC4leC5iOC4geC5iOC4reC4meC5geC4leC5iOC4geC4teC5iQor4LmB4LiV4LmI4LiB4Li14LmJ4LmB4LiV4LmI4LiB4LmI4Lit4LiZCivguYHguJXguIcKK+C5geC4leC5iOC4hwor4LmB4LiV4LiH4LmA4LihCivguYHguJXguYnguIjguLTguYvguKcKK+C5geC4leC4lAor4LmB4LiV4LmK4LiU4LmB4LiV4LmLCivguYHguJXguJkKK+C5geC4leC5ieC4oQor4LmB4LiV4LijCivguYHguJXguKPguLAKK+C5geC4leC5ieC4p+C5geC4o+C5ieC4pwor4LmB4LiV4LiwCivguYLguJUKK+C5guC4leC5iQor4LmC4LiV4LiBCivguYLguJXguYnguIcKK+C5guC4leC5ieC4h+C5hgor4LmC4LiV4LiH4LmG4LmA4LiV4LiH4LmGCivguYLguJXguIfguYDguJXguIcKK+C5guC4leC4juC4gQor4LmC4LiV4LmK4LiUCivguYLguJXguYvguYDguJXguYsKK+C5guC4leC4mQor4LmC4LiV4LiZ4LiUCivguYLguJXguYnguYLguJwKK+C5guC4leC4oeC4owor4LmC4LiV4Lih4Lij4LiY4LijCivguYLguJXguKIKK+C5guC4leC4o+C4gQor4LmC4LiV4Lij4LiB4LmE4LiV4LijCivguYLguJXguKPguJQKK+C5guC4leC5ieC4q+C4peC4hwor4LmC4LiV4LmK4LiwCivguYPguJXguYkKK+C5hOC4lQor4LmE4LiV4LmICivguYTguJXguYkKK+C5hOC4leC5iwor4LmE4LiV4LmJ4LiB4LmL4LiHCivguYTguJXguYnguJ3guLjguYjguJkKK+C5hOC4leC5iOC5hOC4oeC5iQor4LmE4LiV4LijCivguYTguJXguKPguIHguLTguKjguKLguLIKK+C5hOC4leC4o+C4lOC4suC4ouC4uOC4hAor4LmE4LiV4Lij4LmI4LiV4Lij4Lit4LiHCivguYTguJXguKPguKIKK+C5hOC4leC5ieC4q+C4p+C4seC4mQor4LmE4LiV4LmJ4Lit4LmL4Lit4LiHCivguJYKK+C4luC4gQor4LiW4LiB4LilCivguJbguIfguLHguJkKK+C4luC4h+C4suC4lAor4LiW4LiUCivguJbguJkKK+C4luC4meC4mQor4LiW4LiZ4LibCivguJbguJnguK3guKEKK+C4luC4meC4seC4lAor4LiW4LiZ4Lix4LiZCivguJbguJnguLMKK+C4luC4meC4tOC4oQor4LiW4LiZ4Li04Lih4Liq4Lij4LmJ4Lit4LiiCivguJbguJoKK+C4luC4muC4lOC4tQor4LiW4LihCivguJbguYjguKEKK+C4luC4oeC4rQor4LiW4Lih4Li24LiH4LiX4Li24LiHCivguJbguKUKK+C4luC4peC4gQor4LiW4Lil4LiB4Lia4Liy4LiV4LijCivguJbguKXguJkKK+C4luC4peC4oQor4LiW4Lil4LmI4LihCivguJbguKXguK3guIEKK+C4luC4peC4seC4gQor4LiW4Lil4Lix4LiZCivguJbguKXguLIKK+C4luC4peC4suC4gQor4LiW4Lil4Liy4LiiCivguJbguKXguLMKK+C4luC4peC4teC4luC4peC4swor4LiW4Lil4Li24LiH4LiV4LiyCivguJbguKXguLjguIcKK+C4luC4peC4uOC4mQor4LiW4LmI4Lin4LiHCivguJbguYnguKfguJkKK+C4luC5ieC4p+C4ogor4LiW4LmJ4Lin4Lii4LmC4LiW4LiHCivguJbguKfguLHguJQKK+C4luC4p+C4seC4pQor4LiW4Lin4Lix4Lil4Lii4LmMCivguJbguKfguLLguKIKK+C4luC4p+C4tOC4mQor4LiW4Lin4Li04LilCivguJbguYjguK0KK+C4luC5ieC4rQor4LiW4Lit4LiBCivguJbguK3guIcKK+C4luC5iOC4reC4hwor4LiW4LmJ4Lit4LiHCivguJbguK3guJQKK+C4luC4reC4mQor4LiW4Lit4LiaCivguJbguK3guJrguYHguJbguJoKK+C4luC5iOC4reC4oQor4LiW4Lit4LiiCivguJbguYjguK3guKIKK+C4luC5ieC4reC4ogor4LiW4LiwCivguJbguLDguIHguLHguJQKK+C4luC4sOC5gOC4geC4tOC4mQor4LiW4Liw4LmC4LiB4LiZCivguJbguLDguJbguLHguYjguJkKK+C4luC4sOC4luC4seC4mgor4LiW4Liw4LiW4Li44LiZ4LiW4Liw4LiW4Lix4LiZCivguJbguLDguKHguLHguJTguJbguLDguYHguKHguIcKK+C4luC4seC4gQor4LiW4Lix4LiHCivguJbguLHguYjguIcKK+C4luC4seC4k+C4keC4tOC4pQor4LiW4Lix4LiUCivguJbguLHguJfguJgKK+C4luC4seC4mQor4LiW4Lix4LmI4LiZCivguJbguLHguYjguJnguYYKK+C4luC4seC4mgor4LiW4Lix4Lia4LmGCivguJbguLHguKHguKDguYwKK+C4luC4seC4pwor4LiW4Lix4LmI4LinCivguJbguLHguYjguKfguILguLLguKcKK+C4luC4sgor4LiW4LmJ4LiyCivguJbguLLguIEKK+C4luC4suC4hwor4LiW4LmI4Liy4LiHCivguJbguLLguJQKK+C4luC4suC4mQor4LiW4LmI4Liy4LiZCivguJbguLLguJoKK+C4luC4suC4oQor4LiW4Liy4Lih4LiwCivguJbguYjguLLguKIKK+C4luC5iOC4suC4ouC5gOC4lOC4teC4ouC4pwor4LiW4LmI4Liy4LinCivguJbguLLguKfguKMKK+C4luC4suC4p+C4o+C4mOC4tOC4o+C4sgor4LiW4Liy4Lin4Lij4Lin4Lix4LiV4LiW4Li4CivguJbguYnguLMKK+C4luC4tOC5iOC4mQor4LiW4Li1CivguJbguLXguYgKK+C4luC4teC5iOC5hgor4LiW4Li14LiaCivguJbguLXguJrguInguLHguJQKK+C4luC4tuC4gQor4LiW4Li24LiHCivguJbguLfguK0KK+C4luC4uOC4hwor4LiW4Li44LiZCivguJbguLjguKIKK+C4luC4uOC4pQor4LiW4Li44Lil4Lil4LiwCivguJbguLkKK+C4luC4ueC4gQor4LmA4LiW4LiB4Li04LiHCivguYDguJbguJkKK+C5gOC4luC4oeC4tOC4mQor4LmA4LiW4LijCivguYDguJbguKPguLAKK+C5gOC4luC4peC5hOC4luC4pQor4LmA4LiW4Lil4Li04LiBCivguYDguJbguKXguLTguIcKK+C5gOC4luC4peC4t+C4reC4geC4luC4peC4mQor4LmA4LiW4LmI4LitCivguYDguJbguK3guLAKK+C5gOC4luC4sgor4LmA4LiW4LmJ4LiyCivguYDguJbguLLguITguLHguJkKK+C5gOC4luC4suC4hOC4seC4meC5gOC4q+C4peC5h+C4gQor4LmA4LiW4Liy4LmA4LiH4Liy4LiwCivguYDguJbguLLguKHguKfguIEKK+C5gOC4luC4suC4p+C4seC4peC4ouC5jOC5gOC4guC4teC4ouC4pwor4LmA4LiW4Liy4Lin4Lix4Lil4Lii4LmM4Lib4Li54LiZCivguYDguJbguLLguKfguLHguKXguKLguYzguYDguJvguKPguLXguKLguIcKK+C5gOC4luC4suC4p+C4seC4peC4ouC5jOC4ouC4reC4lOC4lOC5ieC4p+C4mQor4LmA4LiW4Liy4Lin4Lix4Lil4Lii4LmM4LmA4Lir4Lil4LmH4LiBCivguYDguJbguLLguKrguLTguIfguYLguJUKK+C5gOC4luC4suC4q+C4seC4p+C4lOC5ieC4p+C4mQor4LmA4LiW4Liy4LiwCivguYDguJbguLTguIEKK+C5gOC4luC4tOC4hwor4LmA4LiW4Li04LiUCivguYDguJbguLTguJTguYDguJfguLTguIcKK+C5gOC4luC4tOC4mQor4LmA4LiW4Li14Lii4LiHCivguYDguJbguLXguKLguKMKK+C5gOC4luC4t+C4rQor4LmA4LiW4Li34Lit4LiBCivguYDguJbguLfguYjguK3guJkKK+C5geC4lgor4LmB4LiW4LiBCivguYHguJbguIcKK+C5geC4luC4mQor4LmB4LiW4LiaCivguYHguJbguKEKK+C5geC4luC4peC4hwor4LmB4LiW4Lil4LiaCivguYHguJbguKcKK+C5guC4lgor4LmC4LiW4LiHCivguYLguJbguIfguYDguJbguIcKK+C5guC4luC4mgor4LmC4LiW4LihCivguYLguJbguKHguJnguLLguIHguLLguKMKK+C5hOC4lgor4LmE4LiW4LmICivguYTguJbguYkKK+C5hOC4luC4hwor4LmE4LiW4LilCivguJcKK+C4l+C4gQor4LiX4LiB4Lil4LmJ4LiyCivguJfguYHguIHguKXguYnguKcKK+C4l+C5iOC4hwor4LiX4LiH4Lix4LiZCivguJfguIrguLUKK+C4l+C4lAor4LiX4LiU4LmC4LiX4Lij4LmI4LirCivguJfguJcKK+C4l+C4mOC4tAor4LiX4LiZCivguJfguYnguJkKK+C4l+C4meC4lOC4tQor4LiX4LiZ4LiV4LmMCivguJfguJnguYLguJfguYgKK+C4l+C4meC4oQor4LiX4LiZ4Liq4Lih4Li44LiX4LijCivguJfguJnguLLguKIKK+C4l+C4mgor4LiX4Lia4Lin4LiHCivguJfguKEKK+C4l+C4oeC4gQor4LiX4Lih4LiZCivguJfguKHguJoKK+C4l+C4oeC4rQor4LiX4Lih4Li04LisCivguJfguYDguKHguLTguJkKK+C4l+C5guC4oeC4mQor4LiX4Lii4Lit4LiiCivguJfguKLguLIKK+C4l+C5geC4ouC4hwor4LiX4LijCivguJfguKPguIcKK+C4l+C4o+C4h+C4geC4o+C4sOC5gOC4l+C4teC4ouC4oQor4LiX4Lij4LiH4Lia4Liy4LiU4Liy4LilCivguJfguKPguJfguLbguIcKK+C4l+C4o+C4nuC4tQor4LiX4Lij4Lih4Liy4LiX4Lij4LiB4Lij4Lij4LihCivguJfguKPguKHguLLguJkKK+C4l+C4o+C4oeC4uOC4gQor4LiX4Lij4Lij4LiX4Li24LiHCivguJfguKPguKPguJsKK+C4l+C4o+C4o+C4m+C4k+C5jAor4LiX4Lij4Lij4Lib4LiT4LiwCivguJfguKPguKPguKjguJnguLAKK+C4l+C4o+C4o+C4qOC4meC4teC4ouC5jAor4LiX4Lij4LmA4Lil4LmI4Lir4LmMCivguJfguKPguKfguIcKK+C4l+C4o+C4p+C4lAor4LiX4Lij4Lin4LiU4LiX4Lij4LiHCivguJfguKPguKfguLLguKMKK+C4l+C4o+C4quC4reC4h+C4l+C4o+C4quC4uOC4oQor4LiX4Lij4Liq4Liy4LiiCivguJfguKPguKrguLjguKEKK+C4l+C4o+C4q+C4lAor4LiX4Lij4Lir4LiZCivguJfguKPguKvguKfguKUKK+C4l+C4o+C4q+C4tuC4hwor4LiX4Lij4Lir4Li24LiH4LiX4Lij4Lir4Lin4LilCivguJfguKPguKvguLkKK+C4l+C4o+C5gOC4q+C4pQor4LiX4Lij4LitCivguJfguKPguK3guKHguYLguJrguJkKK+C4l+C4o+C4reC4tuC4hwor4LiX4Lij4Lit4Li44LmJ4LihCivguJfguKPguLDguJnguIcKK+C4l+C4o+C4sOC4meC4suC4pwor4LiX4Lij4Lix4Lie4Lii4LmMCivguJfguKPguLHguKHguYDguJvguYfguJUKK+C4l+C4o+C4seC4quC4leC5jAor4LiX4Lij4Liy4LiZ4LiL4Li04Liq4LmA4LiV4Lit4Lij4LmMCivguJfguKPguLLguJoKK+C4l+C4o+C4suC4oQor4LiX4Lij4Liy4LiiCivguJfguKPguLLguKLguILguLLguKcKK+C4l+C4o+C4tOC4l+C4owor4LiX4Lij4Li44LiUCivguJfguKPguLjguKEKK+C4l+C4o+C4uOC4oeC4guC4seC4k+C4keC5jAor4LiX4Lij4Li44Lih4Lih4Lix4LiiCivguJfguKPguLjguKHguKfguLLguKrguLUKK+C4l+C4o+C4uOC4oeC5gOC4qOC4o+C4qeC4kOC5jAor4LiX4Lij4Li44Lih4Liy4Lij4Li0CivguJfguKPguLjguKHguLLguKXguLHguKIKK+C4l+C4o+C4ueC5iAor4LiX4Lik4Lip4LiO4Li1CivguJfguKUKK+C4l+C4peC4muC4oQor4LiX4Lil4Lit4Li24LiHCivguJfguKXguLLguKIKK+C4l+C4peC4tOC4lwor4LiX4Lil4Li04LiX4LiX4LiBCivguJfguKfguIcKK+C4l+C5ieC4p+C4hwor4LiX4LmI4Lin4LiH4LiX4LmI4LiyCivguJfguYjguKfguIfguJfguLPguJnguK3guIcKK+C4l+C5iOC4p+C4h+C4l+C4tQor4LiX4Lin4LiUCivguJfguKfguJTguLbguIfguKrguYwKK+C4l+C4p+C4mQor4LiX4LmJ4Lin4LiZCivguJfguYjguKfguKEKK+C4l+C5ieC4p+C4oQor4LiX4LmJ4Lin4Lih4LmGCivguJfguKfguKIKK+C4l+C5iOC4p+C4ogor4LiX4LmJ4Lin4LiiCivguJfguKfguKLguLAKK+C4l+C4p+C4reC4ogor4LiX4Lin4Lix4LiV4LiU4Li24LiH4Liq4LmMCivguJfguKfguLHguKIKK+C4l+C4p+C4sgor4LiX4Lin4LmI4LiyCivguJfguKfguLLguJrguKPguKLguLjguIQKK+C4l+C4p+C4suC4ogor4LiX4Lin4Liy4LijCivguJfguKfguLLguKPguLLguKfguJTguLUKK+C4l+C4p+C4tAor4LiX4Lin4Li04LiKCivguJfguKfguLTguJXguLXguKIKK+C4l+C4p+C4tOC4leC4teC4ouC4sgor4LiX4Lin4Li04LijCivguJfguKfguLUKK+C4l+C4p+C4teC4mwor4LiX4Lin4Li14Lib4Li1CivguJfguKgKK+C4l+C4qOC4sgor4LiX4Lio4Liy4LiH4LiE4LmMCivguJfguKrguKHguLUKK+C4l+C4quC4sgor4LiX4Lir4Lij4LiwCivguJfguKvguLLguKMKK+C4l+C4rQor4LiX4LmI4LitCivguJfguYnguK0KK+C4l+C4reC4gQor4LiX4Lit4LiHCivguJfguYjguK3guIcKK+C4l+C5ieC4reC4hwor4LiX4Lit4LiH4LiB4Lin4Liy4LinCivguJfguK3guIfguYDguITguKPguLfguK0KK+C4l+C4reC4h+C4mOC4o+C4o+C4oeC4iuC4suC4leC4tAor4LiX4Lit4LiH4LmA4Lic4Li34Lit4LiBCivguJfguK3guIfguJ7guKPguLDguILguLjguJkKK+C4l+C4reC4h+C4nuC4peC4uAor4LiX4LmJ4Lit4LiH4Lie4Lil4Li4CivguJfguK3guIfguJ7guLHguJnguIrguYjguLLguIcKK+C4l+C4reC4h+C4nuC4seC4meC4lOC4uOC4pQor4LiX4Lit4LiH4Lig4Li5CivguJfguK3guIfguKHguYnguKfguJkKK+C4l+C4reC4h+C4ouC5ieC4reC4ogor4LiX4Lit4LiH4Lil4Li04LiZCivguJfguK3guIfguKvguKXguLLguIcKK+C4l+C4reC4h+C5guC4q+C4peC4hwor4LiX4Lit4LiH4Lit4Li44LmE4LijCivguJfguK3guJQKK+C4l+C4reC4mQor4LiX4LmI4Lit4LiZCivguJfguK3guJnguIvguLTguKUKK+C4l+C4reC4n+C4n+C4teC5iAor4LiX4Lit4LihCivguJfguYjguK3guKHguYYKK+C4l+C4reC4ogor4LiX4Lit4Lij4LmM4LiZ4Liy4LmC4LiUCivguJfguK3guYDguKPguLXguKLguKEKK+C4l+C4sAor4LiX4Liw4LiH4Lix4LiZCivguJfguLDguJfguYjguLLguKcKK+C4l+C4sOC5gOC4l+C4teC4ouC4lAor4LiX4Liw4LiZ4LiHCivguJfguLDguJnguJkKK+C4l+C4sOC4meC4sAor4LiX4Liw4LiZ4LiyCivguJfguLDguJnguLLguJkKK+C4l+C4sOC4meC4uAor4LiX4Liw4Lia4Li5CivguJfguLDguYDguJrguLXguKLguJkKK+C4l+C4sOC4oeC4seC4lOC4l+C4sOC5geC4oeC4hwor4LiX4Liw4Lih4Li24LiZCivguJfguLDguKHguLfguYjguJkKK+C4l+C4sOC5geC4oeC5iOC4hwor4LiX4Liw4Lii4Liy4LiX4Liw4LmB4Lii4LmB4LiqCivguJfguLDguKLguLLguJkKK+C4l+C4sOC5gOC4ouC4reC4l+C4sOC4ouC4suC4mQor4LiX4Liw4LmB4LiiCivguJfguLDguKPguYjguK3guJfguLDguYHguKPguYgKK+C4l+C4sOC4peC4p+C4hwor4LiX4Liw4Lil4Lit4LiBCivguJfguLDguKXguYjguK3guJfguLDguKXguYjguLIKK+C4l+C4sOC4peC4seC4gQor4LiX4Liw4Lil4Lix4LiB4LiX4Liw4LmB4Lil4LiHCivguJfguLDguKXguLLguKIKK+C4l+C4sOC4peC4tOC5iOC4mQor4LiX4Liw4Lil4Li24LmI4LiHCivguJfguLDguKXguLgKK+C4l+C4sOC4peC4uOC4l+C4sOC4peC4suC4lAor4LiX4Liw4LmA4LilCivguJfguLDguYDguKXguYnguJkKK+C4l+C4sOC5gOC4peC4suC4sAor4LiX4Liw4Lin4Liy4LiiCivguJfguLDguYDguKfguJkKK+C4l+C4seC4gQor4LiX4Lix4LiB4LiC4LmMCivguJfguLHguIHguILguLTguI0KK+C4l+C4seC4geC4guC4tOC4kwor4LiX4Lix4LiB4LiC4Li04LiT4LiyCivguJfguLHguIHguILguLTguJPguLLguJrguJYKK+C4l+C4seC4geC4guC4tOC4k+C4suC4p+C4seC4jwor4LiX4Lix4LiB4LiC4Li04LmC4LiT4LiX4LiBCivguJfguLHguIHguILguLTguYTguJPguKLguJrguLjguITguITguKUKK+C4l+C4seC4geC4l+C4rQor4LiX4Lix4LiB4LiX4Li04LiZCivguJfguLHguIHguKnguLAKK+C4l+C4seC4geC4qeC4sgor4LiX4Lix4LiB4Lip4Li04LiTCivguJfguLHguIHguKnguLTguJPguLIKK+C4l+C4seC4hOC4mOC5jAor4LiX4Lix4LiHCivguJfguLHguYjguIcKK+C4l+C4seC5ieC4hwor4LiX4Lix4LiH4Lin4LilCivguJfguLHguIfguKfguLXguYnguJfguLHguIfguKfguKUKK+C4l+C4seC4h+C4quC5gOC4leC4mQor4LiX4Lix4LiT4LiR4LiB4Lij4Lij4LihCivguJfguLHguJPguJHguIbguLLguJUKK+C4l+C4seC4k+C4keC4mOC4owor4LiX4Lix4LiT4LiR4LiZ4Liy4Lii4LiBCivguJfguLHguJPguJHguJnguLTguITguKEKK+C4l+C4seC4k+C4keC4meC4teC4leC4tAor4LiX4Lix4LiT4LiR4LmM4Lia4LiZCivguJfguLHguJPguJHguJvguLLguKjguIEKK+C4l+C4seC4k+C4keC4oOC4seC4ogor4LiX4Lix4LiT4LiR4Lih4Li44LiCCivguJfguLHguJPguJHguKLguLLguJXguKPguLIKK+C4l+C4seC4k+C4keC4p+C4tOC4l+C4ouC4sgor4LiX4Lix4LiT4LiR4Liq4LiW4Liy4LiZCivguJfguLHguJPguJHguKrguKLguLLguKEKK+C4l+C4seC4k+C4keC4sAor4LiX4Lix4LiT4LiR4Li04LiB4LiyCivguJfguLHguJPguJHguLTguKHguLIKK+C4l+C4seC4k+C4keC4tQor4LiX4Lix4LiT4LiR4Li14Lia4LiXCivguJfguLHguJQKK+C4l+C4seC4lOC4l+C4sgor4LiX4Lix4LiVCivguJfguLHguJkKK+C4l+C4seC4meC4leC5jAor4LiX4Lix4LiZ4LiV4Li04LiZCivguJfguLHguJnguJXguLUKK+C4l+C4seC4meC4mOC5jAor4LiX4Lix4LiaCivguJfguLHguJrguYDguIHguKnguJXguKMKK+C4l+C4seC4muC4l+C4tOC4oQor4LiX4Lix4Lia4LmA4Lil4LmH4LiBCivguJfguLHguJrguKrguKHguLTguIfguITguKXguLIKK+C4l+C4seC4mwor4LiX4Lix4Lib4LiZCivguJfguLHguJ4KK+C4l+C4seC4nuC4nuC4sAor4LiX4Lix4Lie4Lie4Li1CivguJfguLHguKHguKHguLAKK+C4l+C4seC5iOC4pwor4LiX4Lix4LioCivguJfguLHguKjguJnguYwKK+C4l+C4seC4qOC4meC4sAor4LiX4Lix4Lio4LiZ4LiyCivguJfguLHguKjguJnguLXguKLguYwKK+C4l+C4seC4qOC5hOC4meC4ogor4LiX4Lix4Liq4LiZ4Liy4LiZ4Li44LiV4Lij4Li04Lii4LiwCivguJfguLHguKzguKsKK+C4l+C4seC4rOC4q+C4tOC4geC4o+C4k+C5jAor4LiX4Lix4Lis4Lir4Li14LiB4Lij4Lij4LihCivguJfguLIKK+C4l+C5iOC4sgor4LiX4LmJ4LiyCivguJfguLLguIEKK+C4l+C4suC4hwor4LiX4LmJ4Liy4LiHCivguJfguLLguJDguLAKK+C4l+C4suC4kOC4tOC4geC4sAor4LiX4Liy4LiS4LiwCivguJfguLLguJLguLTguIHguLAKK+C4l+C4suC4mQor4LiX4LmI4Liy4LiZCivguJfguLLguJnguIHguLHguJPguJHguYwKK+C4l+C4suC4meC4geC4suC4oQor4LiX4Liy4LiZ4LiV4LmMCivguJfguLLguJnguJXguLDguKfguLHguJkKK+C4l+C4suC4meC4mOC4o+C4o+C4oQor4LiX4Liy4LiZ4Lia4LiU4Li1CivguJfguLLguJnguJrguLLguKPguKHguLUKK+C4l+C4suC4meC4ngor4LiX4Liy4LiZ4Lio4Li14LilCivguJfguLLguJnguKrguKHguLLguJrguLHguJXguLQKK+C4l+C4suC4meC4suC4mOC4tOC4muC4lOC4tQor4LiX4Liy4LiaCivguJfguLLguKEKK+C4l+C5iOC4suC4oeC4geC4peC4suC4hwor4LiX4Liy4Lih4Lij4Li04LiBCivguJfguLLguKIKK+C4l+C5ieC4suC4ogor4LiX4Liy4Lii4LiBCivguJfguLLguKLguLHguIoKK+C4l+C4suC4ouC4sgor4LiX4Liy4Lii4Liy4LiUCivguJfguLLguKLguLLguJcKK+C4l+C4suC4o+C4gQor4LiX4Liy4Lij4LmM4LiL4Liy4LiZCivguJfguLLguKPguJ7guLUKK+C4l+C4suC4o+C4tOC4geC4sgor4LiX4Liy4Lij4Li4CivguJfguLLguKPguLjguJMKK+C4l+C4suC4o+C4uOC4k+C4geC4o+C4o+C4oQor4LiX4Liy4LinCivguJfguYjguLLguKcKK+C4l+C5ieC4suC4pwor4LiX4Liy4LipCivguJfguLLguKoKK+C4l+C4suC4quC4tQor4LiX4LizCivguJfguLPguIfguJkKK+C4l+C4s+C4meC4mgor4LiX4Liz4LiZ4Lin4LiiCivguJfguLPguJnguK3guIcKK+C4l+C4s+C4meC4suC4ogor4LiX4Liz4LiZ4Li4CivguJfguLPguJnguLnguKUKK+C4l+C4s+C5gOC4meC4sgor4LiX4Liz4LmA4LiZ4Li14Lii4LiaCivguJfguLPguYDguJnguLXguKLguKEKK+C4l+C4s+C4oeC4seC4hwor4LiX4Liz4LmE4LihCivguJfguLPguKXguLLguKIKK+C4l+C4s+C5gOC4pQor4LiX4Liz4Lin4LiZCivguJfguLTguITguLHguKHguJ7guKMKK+C4l+C4tOC4huC4seC4oeC4nuC4owor4LiX4Li04LmJ4LiHCivguJfguLTguIfguYDguIjguK3guKPguYwKK+C4l+C4tOC5ieC4h+C4luC5iOC4reC4mQor4LiX4Li04LmJ4LiH4LiX4Li54LiUCivguJfguLTguIoKK+C4l+C4tOC4j+C4kOC4iuC4uOC4geC4o+C4o+C4oQor4LiX4Li04LiP4LiQ4LiwCivguJfguLTguI/guJDguLLguJnguLjguITguJXguLQKK+C4l+C4tOC4kOC4tAor4LiX4Li04LiUCivguJfguLTguJUKK+C4l+C4tOC4mQor4LiX4Li04LiZ4Liy4LiXCivguJfguLTguJ4KK+C4l+C4tOC4nuC4ouC5jAor4LiX4Li04Lie4LiyCivguJfguLTguKEKK+C4l+C4tOC5iOC4oQor4LiX4Li04Lih4LiX4Lit4LiHCivguJfguLTguKcKK+C4l+C4tOC4p+C4h+C4hOC4lQor4LiX4Li04Lin4LiX4Lix4Lio4LiZ4LmMCivguJfguLTguKfguKrguLAKK+C4l+C4tOC4p+C4sgor4LiX4Li04LioCivguJfguLTguKjguLIKK+C4l+C4tQor4LiX4Li14LmICivguJfguLXguJsKK+C4l+C4teC4oQor4LiX4Li14Lin4Li1CivguJfguLXguYDguK3guJnguJfguLUKK+C4l+C4tuC4gQor4LiX4Li24LmI4LiHCivguJfguLbguYnguIcKK+C4l+C4tuC4lOC4l+C4t+C4rQor4LiX4Li24LiZ4LiX4Li24LiBCivguJfguLbguJoKK+C4l+C4tuC4oQor4LiX4Li24LmI4LihCivguJfguLfguYjguK0KK+C4l+C4uAor4LiX4Li44LiBCivguJfguLjguIHguIIKK+C4l+C4uOC4geC4guC5jAor4LiX4Li44LiB4LiC4Lix4LiB4Lip4Lix4LiiCivguJfguLjguIHguI8KK+C4l+C4uOC4geC4qeC4lOC4owor4LiX4Li44LiB4LiwCivguJfguLjguIHguLHguIcKK+C4l+C4uOC4geC4ueC4pQor4LiX4Li44LiE4LiV4LiwCivguJfguLjguITguJXguLQKK+C4l+C4uOC5iOC4hwor4LiX4Li44LmJ4LiHCivguJfguLjguIfguIfguLAKK+C4l+C4uOC4h+C5gOC4l+C4hwor4LiX4Li44LiI4LiI4Li04LiT4LiT4LiwCivguJfguLjguIjguKPguLTguJUKK+C4l+C4uOC4j+C4kOC4sAor4LiX4Li44LiP4LiQ4Li44Lil4Lil4LiwCivguJfguLjguJQKK+C4l+C4uOC4leC4p+C4tOC4peC4seC4oeC4nuC4tOC4leC4oeC4suC4peC4sgor4LiX4Li44LiV4Li04Lii4Liy4Liq4Liy4Lis4LirCivguJfguLjguJfguKPguKPguKjguJnguJnguLTguKLguKEKK+C4l+C4uOC4mQor4LiX4Li44LmI4LiZCivguJfguLjguJnguJnguLTguKHguLTguJUKK+C4l+C4uOC4meC4tOC4ouC4oQor4LiX4Li44LiaCivguJfguLjguJrguJfguLkKK+C4l+C4uOC4m+C4m+C4seC4jeC4jeC4sgor4LiX4Li44Lie4Lie4Lij4Lij4LiTCivguJfguLjguJ7guJ7guKUKK+C4l+C4uOC4nuC4nuC4peC4oOC4suC4ngor4LiX4Li44Lie4Lig4Li04LiB4LiC4Lig4Lix4LiiCivguJfguLjguJ7guKDguLTguIHguILguLHguJnguJTguKPguIHguLHguJsKK+C4l+C4uOC4oQor4LiX4Li44LmI4LihCivguJfguLjguYnguKEKK+C4l+C4uOC4oeC5guC4mQor4LiX4Li44LiiCivguJfguLjguYnguKIKK+C4l+C4uOC4o+C4mQor4LiX4Li44Lij4Lix4LiW4Lii4LiyCivguJfguLjguKPguLHguKgKK+C4l+C4uOC4o+C4suC4hOC4oQor4LiX4Li44Lij4Liy4LiI4Liy4LijCivguJfguLjguKPguLLguJjguKfguLIKK+C4l+C4uOC5gOC4o+C4qAor4LiX4Li44LmA4Lij4Li14Lii4LiZCivguJfguLjguYDguKPguLXguKLguJnguYHguILguIEKK+C4l+C4uOC4peC4seC4geC4l+C4uOC5gOC4pQor4LiX4Li44LmA4Lil4LiyCivguJfguLjguKfguLTguIrguLLguJkKK+C4l+C4uOC4p+C4tOC4mAor4LiX4Li44Lio4Li14LilCivguJfguLjguKrguKrguLAKK+C4l+C4uOC4quC4quC4teC4pQor4LiX4Li5CivguJfguLnguYgKK+C4l+C4ueC5iQor4LiX4Li54LmI4LiL4Li14LmJCivguJfguLnguJUKK+C4l+C4ueC4leC4suC4meC4uOC4l+C4ueC4lQor4LiX4Li54LiZCivguJfguLnguJoKK+C4l+C4ueC4oQor4LiX4Li54LmA4Lij4LiZ4Li04LiX4Liy4LiZCivguJfguLnguKUKK+C4l+C4ueC5gOC4peC4teC4ouC4oQor4LiX4Li54Lip4LiBCivguYDguJcKK+C5gOC4l+C5iAor4LmA4LiX4LiE4LiZ4Li04LiECivguYDguJfguITguJnguLXguYDguIvguLXguKLguKEKK+C5gOC4l+C4hOC5guC4meC5guC4peC4ouC4tQor4LmA4LiX4LiHCivguYDguJfguYnguIcKK+C5gOC4l+C5ieC4h+C5gOC4leC5ieC4hwor4LmA4LiX4LmJ4LiH4LiX4Li54LiUCivguYDguJfguYfguIgKK+C5gOC4l+C4meC4meC4tOC4qgor4LmA4LiX4LmA4Lia4Li04Lil4LmA4LiX4LiZ4LiZ4Li04LiqCivguYDguJfguJsKK+C5gOC4l+C4ngor4LmA4LiX4Lie4LiX4Liy4Lij4Li5CivguYDguJfguJ7guJfguLLguYLguKMKK+C5gOC4l+C4nuC4sgor4LmA4LiX4Lie4Li04LiZCivguYDguJfguJ7guLUKK+C5gOC4l+C4nuC4teC4m+C4seC4geC4qeC4tQor4LmA4LiX4LmC4LieCivguYDguJfguKHguJvguLjguKPguLAKK+C5gOC4l+C4o+C4tOC4lAor4LmA4LiX4Lil4Lil4Li54LmA4Lij4Li14Lii4LihCivguYDguJfguKfguJTguLIKK+C5gOC4l+C4p+C4meC4sAor4LmA4LiX4Lin4Lig4Liy4Lin4LiwCivguYDguJfguKfguKPguLAKK+C5gOC4l+C4p+C4p+C4suC4iOC4tOC4geC4sAor4LmA4LiX4Lin4Lin4Liy4LiI4Li04Liq4Lij4LiT4LiE4Lih4LiZ4LmMCivguYDguJfguKfguKgKK+C5gOC4l+C4p+C4qQor4LmA4LiX4Lin4Liq4Li44LiE4LiZ4LiY4LmMCivguYDguJfguKfguK0KK+C5gOC4l+C4p+C4seC4jQor4LmA4LiX4Lin4Lix4LiZCivguYDguJfguKfguLUKK+C5gOC4l+C4qAor4LmA4LiX4Lio4LiBCivguYDguJfguKjguJnguYwKK+C5gOC4l+C4qOC4meC4sgor4LmA4LiX4Lio4LiwCivguYDguJfguKvguYwKK+C5gOC4l+C5iOC4q+C5jAor4LmA4LiX4LmI4LitCivguYDguJfguYnguK0KK+C5gOC4l+C4reC4jQor4LmA4LiX4Lit4LihCivguYDguJfguK3guKPguYzguYDguJrguLXguKLguKEKK+C5gOC4l+C4reC4o+C5jOC5guC4oeC4oeC4tOC5gOC4leC4reC4o+C5jAor4LmA4LiX4Lit4Liw4LiX4LiwCivguYDguJfguLIKK+C5gOC4l+C5iOC4sgor4LmA4LiX4LmJ4LiyCivguYDguJfguYnguLLguIrguYnguLLguIcKK+C5gOC4l+C5iOC4suC4oeC4seC4gQor4LmA4LiX4LmJ4Liy4Lii4Liy4Lii4Lih4LmI4Lit4LihCivguYDguJfguYjguLLguKPguLbguIcKK+C5gOC4l+C5ieC4suC4quC4suC4mQor4LmA4LiX4Liy4Liw4Lir4LmMCivguYDguJfguLTguIEKK+C5gOC4l+C4tOC5iOC4hwor4LmA4LiX4Li04LiH4Lia4Lit4LiHCivguYDguJfguLTguJQKK+C5gOC4l+C4tOC4mQor4LmA4LiX4Li04LiaCivguYDguJfguLTguJrguYYKK+C5gOC4l+C4tOC5ieC4oQor4LmA4LiX4Li14Lii4LiHCivguYDguJfguLXguKLguJkKK+C5gOC4l+C4teC5ieC4ouC4mQor4LmA4LiX4Li14Lii4LiaCivguYDguJfguLXguKLguKMKK+C5gOC4l+C4teC5ieC4ouC4owor4LmA4LiX4Li14Lii4LinCivguYDguJfguLXguYjguKLguKcKK+C5gOC4l+C4t+C4rQor4LmA4LiX4Li34LmI4LitCivguYDguJfguLfguYnguK0KK+C5gOC4l+C4t+C4reC4gQor4LmA4LiX4Li34Lit4LiB4LmA4LiC4LiyCivguYDguJfguLfguK3guIHguYDguJbguLLguYDguKvguKXguYjguLLguIHguK0KK+C5gOC4l+C4t+C4reC4mQor4LmB4LiX4LmICivguYHguJfguYkKK+C5geC4l+C5h+C4geC4i+C4teC5iAor4LmB4LiX4LiHCivguYHguJfguYjguIcKK+C5geC4l+C5ieC4hwor4LmB4LiX4LmH4LiH4LiB4LmM4LiZ4LmJ4LizCivguYHguJfguIfguJfguKfguKIKK+C5geC4l+C4h+C4p+C4tOC4quC4seC4ogor4LmB4LiX4LiV4Lii4LmMCivguYHguJfguJkKK+C5geC4l+C5iOC4mQor4LmB4LiX4LiZ4LmA4LiI4LiZ4LiV4LmMCivguYHguJfguJnguJfguLLguKXguLHguKEKK+C5geC4l+C4mgor4LmB4LiX4Lij4LiBCivguYHguJfguKPguIHguYDguJXguK3guKPguYwKK+C5geC4l+C4peC5gOC4peC4teC4ouC4oQor4LmB4LiX4LiwCivguYLguJcKK+C5guC4l+C5iAor4LmC4LiX4LiB4LmA4LiX4LiBCivguYLguJfguIfguYYKK+C5guC4l+C4h+C5gOC4l+C4hwor4LmC4LiX4LiT4LiwCivguYLguJfguJjguIEKK+C5guC4l+C4mQor4LmC4LiX4LiZ4LmC4LiX4LmICivguYLguJfguKHguJnguLHguKoKK+C5guC4l+C4o+C4kwor4LmC4LiX4Lij4LihCivguYLguJfguKPguLLguKfguLTguIEKK+C5guC4l+C4peC4sgor4LmC4LiX4LipCivguYLguJfguKnguIHguKPguJPguYwKK+C5guC4l+C4qeC4hOC4uOC4kwor4LmC4LiX4Lip4LiV4Lij4Lix4LiiCivguYLguJfguKnguJfguLHguJPguJHguYwKK+C5guC4l+C4qeC5guC4nuC4ogor4LmC4LiX4Lip4Lih4Lir4Lix4LiZ4LiV4LmMCivguYLguJfguKnguLIKK+C5guC4l+C4quC4sAor4LmC4LiX4LmC4LiqCivguYLguJfguKvguKzguLAKK+C5guC4l+C4q+C4rOC4tOC4meC4tQor4LmE4LiXCivguYTguJfguYkKK+C5hOC4l+C4geC4rQor4LmE4LiX4LmA4LiX4LmA4LiZ4Li14Lii4LihCivguYTguJfguJ/guK3guKLguJTguYwKK+C5hOC4l+C4ogor4LmE4LiX4Lii4LiY4Lij4Lij4LihCivguYTguJfguKMKK+C5hOC4l+C4o+C4reC4ouC4lOC5jAor4LmE4LiX4Lin4LiwCivguJgKK+C4mOC4hwor4LiY4LiH4LiB4LmMCivguJjguIoKK+C4mOC4iuC4tQor4LiY4LiV4Lij4LiQCivguJjguJkKK+C4mOC4meC4seC4hwor4LiY4LiZ4Liy4LiE4Liy4LijCivguJjguJnguLLguJPguLHguJXguLQKK+C4mOC4meC4suC4leC4oQor4LiY4LiZ4Liy4LiY4Liy4LijCivguJjguJnguLLguJjguLTguJrguJTguLUKK+C4mOC4meC4suC4mOC4tOC4mwor4LiY4LiZ4Liy4LiY4Li04Lib4Lix4LiV4Lii4LmMCivguJjguJnguLLguJnguLjguYDguITguKPguLLguLDguKvguYwKK+C4mOC4meC4suC4o+C4seC4geC4qeC5jAor4LiY4LiZ4Li04LiVCivguJjguJnguLTguKnguJDguLIKK+C4mOC4meC4uAor4LiY4LiZ4Li5CivguJjguYDguJnguKgKK+C4mOC5gOC4meC4qOC4p+C4owor4LiY4LmC4LiZ4Lib4LiI4Lix4LiiCivguJjguYTguJnguKjguKfguKPguKPguKLguYwKK+C4mOC4oQor4LiY4Lih4LiB4Lij4LiBCivguJjguKMKK+C4mOC4o+C4hwor4LiY4Lij4LiTCivguJjguKPguJPguLTguJkKK+C4mOC4o+C4k+C4tOC4meC4l+C4o+C5jAor4LiY4Lij4LiT4Li04LioCivguJjguKPguJPguLTguKjguKMKK+C4mOC4o+C4k+C4tOC4qOC4p+C4o+C5jAor4LiY4Lij4LiT4Li1CivguJjguKPguKHguLLguJkKK+C4mOC4o+C4o+C4oQor4LiY4Lij4Lij4Lih4LiwCivguJjguKPguLIKK+C4mOC4o+C4tOC4qeC4leC4o+C4tQor4LiY4LmA4Lij4LioCivguJjguYDguKPguKnguJXguKPguLUKK+C4mOC4p+C4seC4igor4LiY4Lix4LiH4LiBCivguJjguLHguIoKK+C4mOC4seC4jQor4LiY4Lix4LiZ4Lii4LiyCivguJjguLHguJnguKLguLLguKfguLLguJcKK+C4mOC4seC4meC4p+C4suC4hOC4oQor4LiY4Lix4Lih4Lih4LiwCivguJjguLLguJTguLIKK+C4mOC4suC4leC4o+C4tQor4LiY4Liy4LiV4Lin4Liy4LiB4LijCivguJjguLLguJXguLgKK+C4mOC4suC4leC4uOC4oeC4oeC4tOC4quC4quC4sgor4LiY4Liy4LiZ4Li04LiZCivguJjguLLguJnguLTguJnguJfguKPguYwKK+C4mOC4suC4meC4tQor4LiY4Liy4LijCivguJjguLLguKPguIHguLPguJnguLHguKUKK+C4mOC4suC4o+C4hOC4s+C4meC4seC4pQor4LiY4Liy4Lij4LiTCivguJjguLLguKPguJPguLAKK+C4mOC4suC4o+C4k+C4sgor4LiY4Liy4Lij4LiyCivguJjguLLguKnguJXguKPguLUKK+C4mOC4s+C4oeC4o+C4h+C4hOC5jAor4LiY4Liz4Lij4LiHCivguJjguLTguJTguLIKK+C4mOC4tOC4leC4tAor4LiY4Li14Lij4LiwCivguJjguLjguIoKK+C4mOC4uOC4lOC4h+C4hOC5jAor4LiY4Li44LiVCivguJjguLjguJXguJXguLAKK+C4mOC4uOC4oQor4LiY4Li44Lih4LiwCivguJjguLjguKPguLAKK+C4mOC4uOC4o+C4swor4LiY4Li44Lil4Li1CivguJjguLjguKvguKPguYjguLMKK+C4mOC4ueC4mwor4LmA4LiY4LiZ4Li4CivguYDguJjguK0KK+C5gOC4mOC4teC4ouC4owor4LmC4LiY4LmICivguYLguJjguKfguJkKK+C4mQor4LiZ4LiBCivguJnguIHguIHguKPguLDguJfguLjguIcKK+C4meC4geC4uOC4pQor4LiZ4LiCCivguJnguIQKK+C4meC4hOC4owor4LiZ4LiE4Lij4LiB4Lix4LiT4LiR4LmMCivguJnguITguKPguJrguLLguKUKK+C4meC4hOC4o+C4oeC4seC4k+C4keC4meC4sgor4LiZ4LiE4Lij4Lij4Lix4LiQCivguJnguITguKPguKfguLLguKrguLUKK+C4meC4hOC4o+C5guC4quC4oOC4tOC4k+C4tQor4LiZ4LiE4Lij4LmC4Liq4LmA4Lig4LiT4Li1CivguJnguITguKPguKvguKXguKfguIcKK+C4meC4hOC4o+C4suC4l+C4owor4LiZ4LiE4Lij4Li04LiZ4LiX4Lij4LmMCivguJnguITguYDguKPguKgKK+C4meC4hwor4LiZ4LiH4LiE4Li44LiQCivguJnguJcKK+C4meC4l+C4tQor4LiZ4LiZ4LiV4Lij4LiyCivguJnguJnguJfguYwKK+C4meC4meC4l+C4gQor4LiZ4LiZ4LiX4Lij4Li1CivguJnguJnguJfguKXguLUKK+C4meC4meC4l+C4tAor4LiZ4LiaCivguJnguJvguLjguIfguKrguIHguKXguLTguIfguITguYwKK+C4meC4m+C4uOC4h+C4quC4geC4peC4tuC4h+C4hOC5jAor4LiZ4Lie4LmA4LiB4LiV4LiZ4LmMCivguJnguJ7guYDguIHguYnguLIKK+C4meC4nuC4hOC4uOC4kwor4LiZ4Lie4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguJnguJ7guJnguLTguJUKK+C4meC4nuC4m+C4juC4pQor4LiZ4Lie4Lie4LilCivguJnguJ7guJ7guKfguIcKK+C4meC4nuC4nuC4seC4mQor4LiZ4Lie4Lij4Lix4LiV4LiZ4LmMCivguJnguJ7guKjguIEKK+C4meC4nuC4qOC4ueC4pQor4LiZ4Lig4LiB4Liy4LiZ4LiV4LmMCivguJnguKDguITguIoKK+C4meC4oOC4hOC4leC4tAor4LiZ4Lig4LiI4LijCivguJnguKDguIjguLHguIHguKnguLgKK+C4meC4oOC4lOC4pQor4LiZ4Lig4LiX4Lin4Li14LibCivguJnguKDguJvguKPguLLguJMKK+C4meC4oOC4oeC4k+C4keC4pQor4LiZ4Lig4Lih4LiT4Li1CivguJnguKDguKHguLHguKIKK+C4meC4oOC4o+C4ueC4mwor4LiZ4Lig4LmA4Lij4LiT4Li5CivguJnguKDguKfguLTguJbguLUKK+C4meC4oOC4qOC4ueC4pQor4LiZ4Lig4Liq4Li04LiZ4LiY4Li44LmMCivguJnguKDguLIKK+C4meC4oOC4suC4geC4suC4qAor4LiZ4Lig4Liy4Lil4Lix4LiiCivguJnguKEKK+C4meC4oeC4meC4suC4mQor4LiZ4Lih4LiwCivguJnguKHguLHguIHguIHguLLguKMKK+C4meC4oeC4seC4quC4geC4suC4owor4LiZ4Lih4Liy4LiLCivguJnguKLguJnguLAKK+C4meC4ouC4meC4sgor4LiZ4Lii4LiwCivguJnguKLguLHguIHguKnguYwKK+C4meC4o+C4gQor4LiZ4Lij4LiB4Liy4LijCivguJnguKPguLLguJjguLTguJsKK+C4meC4o+C4tOC4meC4l+C4o+C5jAor4LiZ4Lij4Li04LioCivguJnguKPguLTguKjguKfguKMKK+C4meC4o+C4tQor4LiZ4LmA4Lij4LiZ4LiX4Lij4Liq4Li54LijCivguJnguYDguKPguKgKK+C4meC5gOC4o+C4qOC4p+C4owor4LiZ4LmA4Lij4Lio4Lin4Lij4LmM4LiK4LiZ4LiK4LmJ4Liy4LiHCivguJnguYDguKPguKjguLnguKMKK+C4meC4pOC5guC4huC4qQor4LiZ4Lik4LiV4Lii4LmMCivguJnguKTguJnguLLguJcKK+C4meC4pOC4nuC4suC4mQor4LiZ4Lik4Lih4LilCivguJnguKTguKHguLLguJMKK+C4meC4pOC4oeC4tOC4lQor4LiZ4Lil4Liy4LiPCivguJnguKXguLTguJkKK+C4meC4p+C4geC4sAor4LiZ4Lin4LiUCivguJnguKfguJnguLTguKLguLLguKIKK+C4meC4p+C4oQor4LiZ4LmI4Lin4LihCivguJnguKfguKIKK+C4meC4p+C4pQor4LiZ4Lin4Lit4Lij4Lir4Liy4LiX4Li04LiE4Li44LiTCivguJnguKfguLHguIfguITguKrguLHguJXguJbguLjguKjguLLguKrguJnguYwKK+C4meC4p+C4suC4o+C4sAor4LiZ4Lin4Liy4Lit4Lij4Lir4Liy4LiY4Li04LiE4Li44LiTCivguJnguKvguLLguJTguIEKK+C4meC4q+C4suC4mQor4LiZ4Lir4Liy4Lij4Li4CivguJnguKvguLjguJUKK+C4meC4rAor4LiZ4Lis4LibCivguJnguK0KK+C4meC4reC4gQor4LiZ4Lit4LiHCivguJnguYjguK3guIcKK+C4meC5ieC4reC4hwor4LiZ4LmI4Lit4LiH4LmB4LiZ4LmI4LiHCivguJnguK3guJUKK+C4meC4reC4mQor4LiZ4Lit4LiaCivguJnguYnguK3guKEKK+C4meC5ieC4reC4ogor4LiZ4LmJ4Lit4Lii4Lir4LiZ4LmI4LiyCivguJnguYnguK3guKLguYLguKvguJnguYjguIcKK+C4meC4sAor4LiZ4Liw4LmB4LiZ4LmI4LiHCivguJnguLHguIEKK+C4meC4seC4geC4geC4sAor4LiZ4Lix4LiB4LiC4Lix4LiVCivguJnguLHguIHguIfguLLguJkKK+C4meC4seC4geC4leC4sAor4LiZ4Lix4LiB4LijCivguJnguLHguIHguKnguLHguJXguKMKK+C4meC4seC4geC4quC4o+C4suC4igor4LiZ4Lix4LiCCivguJnguLHguIQKK+C4meC4seC4hOC4hOC4sAor4LiZ4Lix4LiHCivguJnguLHguYjguIcKK+C4meC4seC4h+C4hOC4seC4pQor4LiZ4Lix4LiICivguJnguLHguI8KK+C4meC4seC4j+C4gQor4LiZ4Lix4LiRCivguJnguLHguJQKK+C4meC4seC4lOC4lOC4sgor4LiZ4Lix4LiV4LiW4Li44LmMCivguJnguLHguYjguJkKK+C4meC4seC5ieC4mQor4LiZ4Lix4LiZ4LiX4LiX4Liy4Lii4Li1CivguJnguLHguJnguJfguJnguYwKK+C4meC4seC4meC4l+C4meC4suC4geC4suC4owor4LiZ4Lix4LiZ4LiX4Li0CivguJnguLHguJoKK+C4meC4seC4muC4m+C4o+C4sOC4quC4sgor4LiZ4Lix4Lia4Lib4Lij4Liw4Liq4Liy4Lit4Liw4LmE4LijCivguJnguLHguKIKK+C4meC4seC4ouC4meC5jAor4LiZ4Lix4Lii4LiZ4LiyCivguJnguLHguKcKK+C4meC4sgor4LiZ4LmI4LiyCivguJnguYnguLIKK+C4meC4suC4gQor4LiZ4Liy4LiB4Lia4Li44LiUCivguJnguLLguIHguLLguKrguLLguKvguKPguLUKK+C4meC4suC4hAor4LiZ4Liy4LiE4LijCivguJnguLLguITguLIKK+C4meC4suC4hOC4suC4p+C5guC4peC4gQor4LiZ4Liy4LiE4Liy4Liq4LiZ4LmMCivguJnguLLguITguLTguJnguJfguKPguYwKK+C4meC4suC4hOC4tQor4LiZ4Liy4LmA4LiE4LiZ4LiX4Lij4LmMCivguJnguLLguYDguITguKgKK+C4meC4suC5gOC4hOC4qOC4p+C4owor4LiZ4Liy4LmC4LiE4Lij4LiE4Li04LiZ4LiX4LijCivguJnguLLguIcKK+C4meC4suC4h+C4meC4p+C4pQor4LiZ4Liy4LiH4LiZ4Li54LiZCivguJnguLLguIfguYHguKLguYnguKEKK+C4meC4suC4h+C4o+C4oQor4LiZ4Liy4LiH4LmA4Lil4LmH4LiUCivguJnguLLguIfguYDguKXguLTguYnguIcKK+C4meC4suC4h+C4q+C4h+C4quC5jAor4LiZ4Liy4LiH4Lit4Liy4LiiCivguJnguLLguIfguYHguK3guYjguJkKK+C4meC4suC4i+C4sgor4LiZ4Liy4LiL4Li1CivguJnguLLguI8KK+C4meC4suC4j+C4gQor4LiZ4Liy4LiP4LiB4Lij4Lij4LihCivguJnguLLguI/guJTguJnguJXguKPguLUKK+C4meC4suC4j+C4qOC4tOC4peC4m+C5jAor4LiZ4Liy4LiUCivguJnguLLguJYKK+C4meC4suC4lwor4LiZ4Liy4LiX4Li1CivguJnguLLguJkKK+C4meC5iOC4suC4mQor4LiZ4Liy4LiZ4Lix4LiE4Lij4LiqCivguJnguLLguJnguLHguJXguKcKK+C4meC4suC4meC4seC4m+C4geC4suC4owor4LiZ4Liy4LiZ4LiyCivguJnguLLguYDguJnguIEKK+C4meC4suC4mgor4LiZ4Liy4Lig4Li0CivguJnguLLguKDguLUKK+C4meC4suC4oQor4LiZ4Liy4Lih4Lia4Lix4LiV4LijCivguJnguLLguKHguJvguLLguIHguIHguLIKK+C4meC4suC4oeC5geC4neC4hwor4LiZ4Liy4Lih4Liq4LiB4Li44LilCivguJnguLLguKIKK+C4meC5iOC4suC4ogor4LiZ4Liy4Lii4LiBCivguJnguLLguKLguLTguIHguLIKK+C4meC4suC4o+C4lwor4LiZ4Liy4Lij4LiyCivguJnguLLguKPguLLguKLguJPguYwKK+C4meC4suC4o+C4tQor4LiZ4Liy4LmA4Lij4LioCivguJnguLLguKXguLTguKfguLHguJkKK+C4meC4suC4peC4tQor4LiZ4Liy4LinCivguJnguYnguLLguKcKK+C4meC4suC4p+C4sgor4LiZ4Liy4Lin4Li04LiBCivguJnguLLguKfguLTguJkKK+C4meC4suC4p+C4tQor4LiZ4Liy4LmA4Lin4LioCivguJnguLLguKgKK+C4meC4suC4quC4meC4sAor4LiZ4Liy4Liq4LiyCivguJnguLLguKrguLTguIEKK+C4meC4suC4rOC4tOC4geC4sgor4LiZ4Liy4Lis4Li04LmA4LiBCivguJnguLLguKzguLUKK+C4meC4swor4LiZ4LmJ4LizCivguJnguYnguLPguJXguLDguIHguLkKK+C4meC5ieC4s+C4leC4sOC5guC4gQor4LiZ4Li0CivguJnguLTguIHguILguLAKK+C4meC4tOC4geC4guC4seC4meC4leC5jAor4LiZ4Li04LiB4LmA4LiC4LibCivguJnguLTguIHguKMKK+C4meC4tOC4geC4o+C4reC4ouC4lOC5jAor4LiZ4Li04LiB4Liy4LiiCivguJnguLTguYDguIHguLTguKUKK+C4meC4tOC4hOC4oQor4LiZ4Li04LiE4Lij4LiZ4LiW4LmMCivguJnguLTguITguKvguLAKK+C4meC4tOC4hOC4q+C4tOC4lQor4LiZ4Li04LiE4Liy4Lil4Lix4LiiCivguJnguLTguYDguITguKPguLLguLDguKvguYwKK+C4meC4tOC5guC4hOC4leC4tOC4mQor4LiZ4Li04LmC4LiE4Lij4LiYCivguJnguLTguYLguITguKPguKEKK+C4meC4tOC4hwor4LiZ4Li04LmI4LiHCivguJnguLTguIgKK+C4meC4tOC4lAor4LiZ4Li04LiV4Lii4LmMCivguJnguLTguJXguLQKK+C4meC4tOC4l+C4owor4LiZ4Li04LiX4Lij4Lij4Lio4LiB4Liy4LijCivguJnguLTguJfguKPguLIKK+C4meC4tOC4l+C4seC4qOC4meC5jAor4LiZ4Li04LiX4Liy4LiGCivguJnguLTguJfguLLguJkKK+C4meC4tOC5gOC4l+C4qAor4LiZ4Li04LmA4LiX4Lio4LiB4LmMCivguJnguLTguJjguLLguJkKK+C4meC4tOC4mOC4tAor4LiZ4Li04LiZ4LiX4LiyCivguJnguLTguJnguJnguLAKK+C4meC4tOC4meC4meC4suC4lwor4LiZ4Li04LiZ4Lir4Li44LiVCivguJnguLTguJnguLLguJcKK+C4meC4tOC4muC4suC4lQor4LiZ4Li04Lib4Lij4Li04Lii4Liy4LiiCivguJnguLTguJvguLHguIjguIHguLLguKMKK+C4meC4tOC4nuC4iOC4meC5jAor4LiZ4Li04Lie4LiZ4LiY4LmMCivguJnguLTguJ7guJ7guLLguJkKK+C4meC4tOC4nuC4nuC4tOC4l+C4sgor4LiZ4Li04Lie4Lix4LiX4LiY4LmMCivguJnguLTguJ7guLHguJnguJjguYwKK+C4meC4tOC4nuC4tOC4lwor4LiZ4Li04LmA4Lie4LiXCivguJnguLTguKDguLIKK+C4meC4tOC5iOC4oQor4LiZ4Li04LmJ4LihCivguJnguLTguKHguJnguJXguYwKK+C4meC4tOC4oeC4oeC4suC4mQor4LiZ4Li04Lih4Lih4Liy4LiZ4Lij4LiU4Li1CivguJnguLTguKHguLTguJUKK+C4meC4tOC4ouC4lQor4LiZ4Li04Lii4LihCivguJnguLTguKLguKLguLLguJkKK+C4meC4tOC4ouC4ouC4suC4meC4tOC4gQor4LiZ4Li04Lii4Lix4LiV4Li04LiZ4Li04Lii4LihCivguJnguLTguKLguLLguKEKK+C4meC4tOC4ouC4suC4ogor4LiZ4Li04Lii4Li44LiVCivguJnguLTguKPguJ7guLHguJXguKMKK+C4meC4tOC4o+C4oeC4suC4kwor4LiZ4Li04Lij4Lih4Li04LiVCivguJnguLTguKPguLHguJ7guJ7guLjguJcKK+C4meC4tOC4o+C4suC4qAor4LiZ4Li04Lij4Li44LiB4LiV4Li0CivguJnguLTguKPguLjguJXguJXguLQKK+C4meC4tOC4o+C4uOC4l+C4mOC5jAor4LiZ4Li04LmC4Lij4LiYCivguJnguLTguKUKK+C4meC4tOC5iOC4pwor4LiZ4Li04LmJ4LinCivguJnguLTguKfguITguKXguLXguK3guLTguIEKK+C4meC4tOC4p+C5gOC4hOC4peC4teC4ouC4o+C5jAor4LiZ4Li04Lin4LmA4LiE4Lil4Li14Lii4LiqCivguJnguLTguKfguJXguKPguK3guJkKK+C4meC4tOC4p+C4o+C4k+C5jAor4LiZ4Li04Lin4Lix4LiV4LiZ4LmMCivguJnguLTguKfguLHguJXguLQKK+C4meC4tOC4p+C4suC4lQor4LiZ4Li04Lin4Liy4LiqCivguJnguLTguKfguLLguKrguJnguYwKK+C4meC4tOC5gOC4p+C4qAor4LiZ4Li04LmA4Lin4Lio4LiZ4LmMCivguJnguLTguKjguLIKK+C4meC4tOC4qeC4geC4o+C4oQor4LiZ4Li04Lip4Liy4LiXCivguJnguLTguKrguKrguLHguITguITguLTguKLguKfguLHguJXguJbguLgKK+C4meC4tOC4quC4quC4seC4hOC4hOC4teC4ouC5jAor4LiZ4Li04Liq4Lix4LiKCivguJnguLTguKrguLHguKIKK+C4meC4tOC4quC4suC4lwor4LiZ4Li04Liq4Li04LiVCivguJnguLTguKrguLXguJfguJnguLAKK+C4meC4tOC5gOC4quC4mAor4LiZ4Li04Lir4Li14LiZ4LiwCivguJnguLXguYgKK+C4meC4teC5iQor4LiZ4Li14LiV4Li0CivguJnguLXguYjguJnguLHguJkKK+C4meC4teC4o+C4meC4suC4lwor4LiZ4Li14Lit4Lit4LiZCivguJnguLXguYLguK3guJTguLXguYDguKHguLXguKLguKEKK+C4meC4tuC4gQor4LiZ4Li24LiHCivguJnguLbguYjguIcKK+C4meC4uAor4LiZ4Li44LiHCivguJnguLjguYjguIcKK+C4meC4uOC4igor4LiZ4Li44LiUCivguJnguLjguJUKK+C4meC4uOC5iOC4mQor4LiZ4Li44LmJ4LiiCivguJnguLnguJkKK+C4meC4ueC5iOC4mQor4LiZ4Li54LmJ4LiZCivguYDguJnguIHguILguLAKK+C5gOC4meC4geC4guC4seC4oQor4LmA4LiZ4LiE4LmE4LiXCivguYDguJnguJUKK+C5gOC4meC4leC4muC4reC4pQor4LmA4LiZ4LiV4LijCivguYDguJnguJXguLQKK+C5gOC4meC5ieC4mQor4LmA4LiZ4Lia4Li04Lin4Lil4LiyCivguYDguJnguJvguIjguLnguJkKK+C5gOC4meC4m+C4l+C4ueC5gOC4meC4teC4ouC4oQor4LmA4LiZ4Lih4Li0CivguYDguJnguKHguLTguJXguIHguLAKK+C5gOC4meC4oeC4tOC4meC4mOC4owor4LmA4LiZ4LiiCivguYDguJnguKLguKLguLAKK+C5gOC4meC4o+C4geC4seC4k+C4kOC4tQor4LmA4LiZ4Lij4LiE4Li44LiTCivguYDguJnguKPguYDguJfguKgKK+C5gOC4meC4o+C4meC4suC4lgor4LmA4LiZ4Lij4Lih4Li04LiVCivguYDguJnguKPguLDguJ7guLnguKrguLUKK+C5gOC4meC4qeC4suC4lwor4LmA4LiZ4LitCivguYDguJnguYnguK0KK+C5gOC4meC4sgor4LmA4LiZ4LmI4LiyCivguYDguJnguLLguKfguJnguLTguJUKK+C5gOC4meC4tOC4mQor4LmA4LiZ4Li04LmI4LiZCivguYDguJnguLTguJoKK+C5gOC4meC4teC4ouC4hwor4LmA4LiZ4Li14Lii4LiZCivguYDguJnguLXguKLguKEKK+C5gOC4meC4teC4ouC4owor4LmA4LiZ4Li14Lii4Lij4LiX4Li44LiB4LiC4LmMCivguYDguJnguLXguKLguKPguYDguJfguKgKK+C5gOC4meC4teC4ouC4o+C4meC4suC4lwor4LmA4LiZ4Li34LmJ4LitCivguYDguJnguLfguK3guIcKK+C5gOC4meC4t+C5iOC4reC4hwor4LmA4LiZ4Li34Lit4LiiCivguYDguJnguLfguYnguK3guYDguKLguLfguYnguK0KK+C5geC4meC5iAor4LmB4LiZ4LmI4LiHCivguYHguJnguYjguJkKK+C5geC4meC4mgor4LmB4LiZ4LihCivguYHguJnguKcKK+C5geC4meC5iOC4pwor4LmB4LiZ4LiwCivguYHguJnguLDguYHguKvguJkKK+C5guC4mQor4LmC4LiZ4LmJ4LiVCivguYLguJnguJkKK+C5guC4meC5iOC4mQor4LmC4LiZ4LmJ4LiZCivguYLguJnguYDguJkKK+C5guC4meC5gOC4muC5gOC4peC4teC4ouC4oQor4LmC4LiZ4LmJ4LihCivguYLguJnguKHguJ7guKPguKPguJMKK+C5guC4meC4o+C4sgor4LmC4LiZ4Lij4Li1CivguYPguJkKK+C5hOC4mQor4LmE4LiZ4LiV4LmM4LiE4Lil4Lix4LiaCivguYTguJnguYLguJXguKPguYDguIjguJkKK+C5hOC4meC4l+C5jOC4hOC4peC4seC4mgor4LmE4LiZ4Lil4Lit4LiZCivguYTguJnguK3guLLguIvguLXguJkKK+C5hOC4meC5guC4reC5gOC4muC4teC4ouC4oQor4LiaCivguJrguYgKK+C4muC4gQor4Lia4LiHCivguJrguYjguIcKK+C4muC4h+C4geC5jAor4Lia4LmK4LiH4LmA4Lia4LmK4LiHCivguJrguIfguKrguLjguYwKK+C4muC4h+C4reC4seC4muC4muC4h+C4o+C4sgor4Lia4LmI4LiH4Lit4Lix4Lia4Lia4LmI4LiH4Lij4LiyCivguJrguI8KK+C4muC4lAor4Lia4LiU4Li04LiZ4LiX4Lij4LmMCivguJrguJTguLUKK+C4muC4lgor4Lia4LiXCivguJrguJfguJnguLUKK+C4muC4l+C4muC4h+C4geC4igor4Lia4LiX4Lia4LiH4Liq4Li44LmMCivguJrguJfguJrguLnguKPguJPguYwKK+C4muC4l+C4nuC4seC4meC4mOC5jAor4Lia4LiX4Lig4Liy4LiK4LiZ4LmMCivguJrguJfguKDguLLguIrguJnguLXguKLguYwKK+C4muC4l+C4oeC4suC4peC4ouC5jAor4Lia4LiX4Lij4Lix4LiKCivguJrguJfguKfguYDguKPguKgKK+C4muC4l+C4p+C4peC4seC4jeC4iuC5jAor4Lia4LiX4Lin4Liy4LijCivguJrguJfguKjguKPguLUKK+C4muC4l+C4qOC4seC4nuC4l+C5jAor4Lia4LiX4Liq4LiW4Liy4LiZCivguJrguJfguLLguKHguJ7guLjguIoKK+C4muC5guC4l+C4mQor4Lia4LiZCivguJrguYjguJkKK+C4muC4nuC4tOC4leC4owor4Lia4Lie4Li04LiYCivguJrguYjguKEKK+C4muC4o+C4oQor4Lia4Lij4Lih4Lix4LiV4LiW4LmMCivguJrguKPguKPguIHguKfguJQKK+C4muC4o+C4o+C4iOC4hwor4Lia4Lij4Lij4LiI4LiW4Lij4LiT4LmMCivguJrguKPguKPguIjguJoKK+C4muC4o+C4o+C4iOC4p+C4mgor4Lia4Lij4Lij4LiI4Li4CivguJrguKPguKPguYDguIjguLTguJQKK+C4muC4o+C4o+C4kwor4Lia4Lij4Lij4LiT4Liy4LiB4Liy4LijCivguJrguKPguKPguJPguLLguITguKEKK+C4muC4o+C4o+C4k+C4suC4mOC4tOC4geC4suC4owor4Lia4Lij4Lij4LiT4Liy4LiZ4Li44LiB4Lij4LihCivguJrguKPguKPguJPguLLguKPguLHguIHguKnguYwKK+C4muC4o+C4o+C4k+C4suC4o+C4seC4geC4qeC4qOC4suC4quC4leC4o+C5jAor4Lia4Lij4Lij4LiU4LiyCivguJrguKPguKPguJTguLLguIEKK+C4muC4o+C4o+C4lOC4suC4qOC4seC4geC4lOC4tOC5jAor4Lia4Lij4Lij4LiV4Liy4LiZ4Li24LiBCivguJrguKPguKPguJbguKMKK+C4muC4o+C4o+C4l+C4oQor4Lia4Lij4Lij4LiX4Lix4LiUCivguJrguKPguKPguJfguLHguJoKK+C4muC4o+C4o+C4l+C4suC4mQor4Lia4Lij4Lij4LiX4Li44LiBCivguJrguKPguKPguYDguJfguLIKK+C4muC4o+C4o+C5gOC4l+C4t+C4reC4hwor4Lia4Lij4Lij4LieCivguJrguKPguKPguJ7guYwKK+C4muC4o+C4o+C4nuC4iuC4sgor4Lia4Lij4Lij4Lie4LiK4Li04LiVCivguJrguKPguKPguJ7guJUKK+C4muC4o+C4o+C4ouC4hwor4Lia4Lij4Lij4Lii4LiH4LiE4LmMCivguJrguKPguKPguKLguYDguKfguIHguKnguIHguYwKK+C4muC4o+C4o+C4ouC4suC4geC4suC4qAor4Lia4Lij4Lij4Lii4Liy4LiiCivguJrguKPguKPguKXguLHguKIKK+C4muC4o+C4o+C4peC4suC4ogor4Lia4Lij4Lij4Lil4Li4CivguJrguKPguKPguYDguKXguIcKK+C4muC4o+C4o+C5guC4peC4oQor4Lia4Lij4Lij4Lip4Lix4LiXCivguJrguKPguKPguKrguJoKK+C4muC4o+C4o+C4quC4ngor4Lia4Lij4Lij4Liq4LihCivguJrguKPguKPguKrguLLguJkKK+C4muC4o+C4o+C4quC4suC4owor4Lia4Lij4Lij4Lir4Liy4LiZCivguJrguKPguKPguKvguLLguKMKK+C4muC4o+C4seC4lAor4Lia4Lij4Lix4LmI4LiZ4LiU4Li1CivguJrguKPguLHguKjguKfguYwKK+C4muC4o+C4suC4geC4o+C4oQor4Lia4Lij4Liy4LiX4Li44LiB4Lij4LiyCivguJrguKPguLLguKXguLUKK+C4muC4o+C4tOC4geC4o+C4oQor4Lia4Lij4Li04LiB4Lij4Lij4LihCivguJrguKPguLTguIHguLHguJsKK+C4muC4o+C4tOC4geC4suC4owor4Lia4Lij4Li04LiC4LiyCivguJrguKPguLTguILguLLguKMKK+C4muC4o+C4tOC4hOC4k+C4q+C5jAor4Lia4Lij4Li04LiI4Liy4LiECivguJrguKPguLTguIjguLLguKPguIEKK+C4muC4o+C4tOC4iOC4suC4o+C4tOC4geC4sgor4Lia4Lij4Li04LmA4LiJ4LiXCivguJrguKPguLTguIrguJkKK+C4muC4o+C4tOC4k+C4suC4ouC4gQor4Lia4Lij4Li04LiU4LiI4LmMCivguJrguKPguLTguJrguJcKK+C4muC4o+C4tOC4muC4p+C4o+C4k+C5jAor4Lia4Lij4Li04Lia4Liy4LilCivguJrguKPguLTguJrguLnguKPguJPguYwKK+C4muC4o+C4tOC4nuC4meC4mOC5jAor4Lia4Lij4Li04Lie4Lix4LiV4LijCivguJrguKPguLTguJ7guLHguJnguJjguYwKK+C4muC4o+C4tOC4nuC4suC4iuC4gQor4Lia4Lij4Li04Lie4Liy4LiK4Li04LiB4LiyCivguJrguKPguLTguJ7guLLguIrguLUKK+C4muC4o+C4tOC4nuC4suC4owor4Lia4Lij4Li04Lig4Lix4LiT4LiR4LmMCivguJrguKPguLTguKDguLLguKkKK+C4muC4o+C4tOC5guC4oOC4hAor4Lia4Lij4Li04Lih4Liy4LiqCivguJrguKPguLTguKLguLLguKIKK+C4muC4o+C4tOC4o+C4oQor4Lia4Lij4Li04Lij4Lix4LiB4Lip4LmMCivguJrguKPguLTguKPguLLguIoKK+C4muC4o+C4tOC4p+C4o+C4o+C4lQor4Lia4Lij4Li04Lin4Liy4LijCivguJrguKPguLTguKfguLLguKoKK+C4muC4o+C4tOC5gOC4p+C4kwor4Lia4Lij4Li04Lip4LiB4Liy4LijCivguJrguKPguLTguKnguLHguJcKK+C4muC4o+C4tOC4quC4iuC4mQor4Lia4Lij4Li04Liq4Li44LiX4LiY4Li04LmMCivguJrguKPguLTguKvguLLguKMKK+C4muC4o+C4tOC4q+C4suC4qgor4Lia4Lij4Li34LmL4LitCivguJrguKTguIfguITguJ4KK+C4muC4peC5h+C4reC4gQor4Lia4Lin4LiBCivguJrguKfguIcKK+C4muC5iOC4p+C4hwor4Lia4Lin4LiKCivguJrguKfguJkKK+C4muC5ieC4p+C4mQor4Lia4Lin4LiaCivguJrguKfguKEKK+C4muC5iuC4p+C4ogor4Lia4Lin4LijCivguJrguKfguKPguYLguJXguI7guIEKK+C4muC4q+C4peC4tOC5iOC4oQor4Lia4LitCivguJrguYjguK0KK+C4muC5ieC4rQor4Lia4Lit4LiBCivguJrguK3guIcKK+C4muC5iOC4reC4hwor4Lia4LmJ4Lit4LiHCivguJrguYrguK3guIcKK+C4muC5iuC4reC4h+C5hgor4Lia4LmJ4Lit4LiH4LiV4Liw4Lil4LiyCivguJrguYnguK3guIfguYHguJrguYrguKcKK+C4muC4reC4h+C4q+C4peC4sgor4Lia4Lit4LiUCivguJrguK3guJkKK+C4muC5iOC4reC4mQor4Lia4Lit4LiZ4Lil4Liy4Lii4LiB4Lij4Liw4Lir4LiZ4LiBCivguJrguK3guJoKK+C4muC5ieC4reC4oQor4Lia4LmL4Lit4LihCivguJrguK3guKHguJrguYwKK+C4muC5iOC4reC4ogor4Lia4LmL4Lit4LiiCivguJrguYjguK3guKLguYYKK+C4muC4reC4o+C4sOC5gOC4nuC5h+C4lAor4Lia4Lit4Lij4Liw4Lih4Liy4LiZCivguJrguK3guKUKK+C4muC4reC4peC4peC4ueC4mQor4Lia4LmJ4Lit4Lir4Li44LmJ4LiZCivguJrguYrguLAKK+C4muC4sOC4ieC5iOC4rQor4Lia4Liw4Lir4Lih4Li14LmICivguJrguLHguIEKK+C4muC4seC4hOC5gOC4leC4o+C4tQor4Lia4Lix4LiHCivguJrguLHguYnguIcKK+C4muC4seC4h+C4geC4sOC5guC4pQor4Lia4Lix4LiH4LiB4Lix4LiUCivguJrguLHguIfguYDguIHguLTguJQKK+C4muC4seC4h+C5guC4geC4o+C4ouC4leC4seC4p+C4nOC4ueC5iQor4Lia4Lix4LiH4LmC4LiB4Lij4Lii4LiV4Lix4Lin4LmA4Lih4Li14LiiCivguJrguLHguIfguYLguIHguKXguJkKK+C4muC4seC4h+C4hOC4mQor4Lia4Lix4LiH4LiE4LihCivguJrguLHguIfguITguKUKK+C4muC4seC4h+C4hOC4p+C4owor4Lia4Lix4LiH4LiE4Lix4LiaCivguJrguLHguIfguITguLHguKUKK+C4muC4seC4h+C5guC4hOC4peC4mQor4Lia4Lix4LiH4LmB4LiX4Lij4LiBCivguJrguLHguIfguKfguLLguKIKK+C4muC4seC4h+C5gOC4p+C4teC4ouC4mQor4Lia4Lix4LiH4Liq4Li44LiB4Li44LilCivguJrguLHguIfguKrguLjguIHguLnguKXguLTguIEKK+C4muC4seC4h+C4quC4ueC4o+C4ouC5jAor4Lia4Lix4LiH4Lir4Lin4LiZCivguJrguLHguIfguKvguKfguJnguITguKfguLHguJkKK+C4muC4seC4h+C5gOC4q+C4leC4uAor4Lia4Lix4LiH4LmA4Lir4Li04LiZCivguJrguLHguIfguYDguKvguLXguKLguJkKK+C4muC4seC4h+C4reC4owor4Lia4Lix4LiH4Lit4Lin4LiICivguJrguLHguIfguK3guLLguIgKK+C4muC4seC4h+C4reC4tOC4hwor4Lia4Lix4LiH4Lit4Li54LijCivguJrguLHguIfguYDguK3guLTguI0KK+C4muC4seC4jeC4iOC4gQor4Lia4Lix4LiN4LiI4Lij4LiH4LiE4LmMCivguJrguLHguI3guIrguKMKK+C4muC4seC4jeC4iuC4sgor4Lia4Lix4LiN4LiK4Li1CivguJrguLHguI3guI3guLHguJXguLQKK+C4muC4seC4jeC4q+C4sgor4Lia4Lix4LiPCivguJrguLHguJDguKLguLLguJ7guKTguJUKK+C4muC4seC4k+C4keC4owor4Lia4Lix4LiT4LiR4Li04LiVCivguJrguLHguJPguJHguLTguJXguKLguYwKK+C4muC4seC4k+C4keC4uAor4Lia4Lix4LiT4LiR4Li54LijCivguJrguLHguJPguYDguJHguLLguLDguIHguYwKK+C4muC4seC4k+C4k+C4suC4qgor4Lia4Lix4LiT4Lij4LiqCivguJrguLHguJPguKPguKrguLUKK+C4muC4seC4lAor4Lia4Lix4LiU4LiB4Lij4Li1CivguJrguLHguJTguIvguJoKK+C4muC4seC4lOC4muC4hwor4Lia4Lix4LiU4Liq4Li1CivguJrguLHguJXguKMKK+C4muC4seC4l+C4oeC5jAor4Lia4Lix4LiZCivguJrguLHguYjguJkKK+C4muC4seC5ieC4mQor4Lia4Lix4LiZ4LiB4Lin4LiUCivguJrguLHguJnguIjguKfguJoKK+C4muC4seC4meC4iOC4reC4ogor4Lia4Lix4LiZ4LiU4LilCivguJrguLHguJnguJTguLLguKUKK+C4muC4seC4meC5gOC4lOC4tOC4mQor4Lia4Lix4LiZ4LmC4LiU4LiiCivguJrguLHguJnguYTguJQKK+C4muC4seC4meC4l+C4suC4ogor4Lia4Lix4LiZ4LiX4Li24LiBCivguJrguLHguJnguJfguLbguIcKK+C4muC4seC4meC5gOC4l+C4tOC4hwor4Lia4Lix4LiZ4Lii4Liw4Lia4Lix4LiZ4Lii4Lix4LiHCivguJrguLHguJnguKXguLfguK0KK+C4muC4seC4meC5gOC4q+C4tOC4mQor4Lia4Lix4Lib4Lic4Liy4Liq4LiwCivguJrguLHguJ4KK+C4muC4seC4nuC4iuC4sgor4Lia4Lix4Lie4LiK4Li04LiVCivguJrguLHguJ7guJ7guLLguIoKK+C4muC4seC4nuC4nuC4suC4iuC4meC5jAor4Lia4Lix4Lie4Lie4Liy4LiK4LiZ4Li14Lii4LiB4Lij4Lij4LihCivguJrguLHguKUKK+C4muC4seC4peC4peC4ngor4Lia4Lix4Lil4Lil4Lix4LiH4LiB4LmMCivguJrguLHguKXguKXguLnguJkKK+C4muC4seC4peC5gOC4peC5iOC4leC5jAor4Lia4Lix4Lil4Lin4LiwCivguJrguLHguKcKK+C4muC4seC4p+C5gOC4lOC4t+C5iOC4rQor4Lia4Lix4Lin4LiV4Li54LihCivguJrguLHguKfguJrguIEKK+C4muC4seC4p+C4quC4p+C4o+C4o+C4hOC5jAor4Lia4LiyCivguJrguYjguLIKK+C4muC5ieC4sgor4Lia4LmJ4Liy4LmGCivguJrguLLguIEKK+C4muC4suC4hwor4Lia4LmI4Liy4LiHCivguJrguYnguLLguIcKK+C4muC4suC4h+C4geC4reC4gQor4Lia4Liy4LiH4Liq4Li4CivguJrguLLguIjguIEKK+C4muC4suC4iOC4o+C4teC4ouC5jAor4Lia4Liy4LiI4Li04LiB4LiyCivguJrguLLguIvguLLguKPguYwKK+C4muC4suC4i+C4tOC4peC4peC4seC4qgor4Lia4Liy4LiUCivguJrguLLguJTguJfguLDguIjguLTguJUKK+C4muC4suC4lOC4l+C4sOC4nuC4tOC4qQor4Lia4Liy4LiU4LiX4Liw4Lii4Lix4LiBCivguJrguLLguJTguKvguKHguLLguKIKK+C4muC4suC4lOC5hOC4q+C4oQor4Lia4Liy4LiU4Liy4LilCivguJrguLLguYHguJTguIcKK+C4muC4suC4lQor4Lia4Liy4LiV4LijCivguJrguLLguJcKK+C4muC4suC4l+C4mgor4Lia4Liy4LiX4Lia4LiH4LiB4LiKCivguJrguLLguJfguJrguKPguLTguIjguLLguKPguLTguIHguLIKK+C4muC4suC4l+C4p+C4tOC4luC4tQor4Lia4Liy4LiX4Liq4LiB4Li44LiT4Li1CivguJrguLLguJfguKvguKXguKfguIcKK+C4muC4suC4l+C4suC4mOC4tuC4gQor4Lia4Liy4LiX4Li44LiB4LiyCivguJrguLLguJkKK+C4muC5ieC4suC4mQor4Lia4Liy4LiZ4Lih4LiH4LiE4LilCivguJrguLLguJnguLXguKLguLAKK+C4muC5ieC4suC4muC5iOC4mQor4Lia4LmJ4Liy4Lia4LmL4LiyCivguJrguLLguJrguLUKK+C4muC4suC4muC4uQor4Lia4Liy4Lia4Li54LiZCivguJrguLLguJsKK+C4muC4suC4m+C5gOC4hOC4o+C4suC4sOC4q+C5jAor4Lia4Liy4Lib4LiX4Lik4Lip4LiO4Li1CivguJrguLLguJvguKHguLTguJXguKMKK+C4muC4suC4m+C4p+C4suC4lwor4Lia4Liy4Lie4LiBCivguJrguYjguLLguJ7guIEKK+C4muC4suC4ogor4Lia4LmI4Liy4LiiCivguJrguYnguLLguKIKK+C4muC4suC4ouC4quC4uOC4q+C4o+C4tQor4Lia4Liy4LmA4Lii4Li14LiiCivguJrguLLguYLguKIKK+C4muC4suC4o+C5jAor4Lia4Liy4Lij4LiZ4Li1CivguJrguLLguKPguYzguJrguLTguITguLTguKcKK+C4muC4suC4o+C5jOC5gOC4muC4pQor4Lia4Liy4Lij4Lih4Li1CivguJrguLLguKPguYzguYDguKPguKUKK+C4muC4suC4o+C5jOC5gOC4peC4ouC5jAor4Lia4Liy4Lij4Lit4Lih4Li04LmA4LiV4Lit4Lij4LmMCivguJrguYnguLLguKPguLDguJrguLjguYjguJkKK+C4muC5ieC4suC4o+C5iOC4suC4l+C5iOC4sgor4Lia4Liy4LmA4Lij4Li14Lii4LiZCivguJrguLLguYDguKPguLXguKLguKEKK+C4muC4suC4pQor4Lia4Liy4Lil4Li1CivguJrguYjguLLguKcKK+C4muC5iOC4suC4p+C4guC4uOC4mQor4Lia4Liy4LioCivguJrguLLguKjguIHguYwKK+C4muC4suC4quC5gOC4geC4leC4muC4reC4pQor4Lia4LmJ4Liy4Lir4Lih4Li5CivguJrguLLguKvguKXguLUKK+C4muC5ieC4suC4q+C4p+C5iOC4sgor4Lia4LmI4Liy4Lit4LmJ4Liy4LiiCivguJrguYvguLMKK+C4muC4s+C5gOC4l+C4tOC4hwor4Lia4Liz4LiZ4Liy4LiNCivguJrguLPguJrguKfguIcKK+C4muC4s+C4muC4seC4lAor4Lia4Liz4LmC4LiaCivguJrguLPguYLguJrguKIKK+C4muC4s+C5guC4muC4pQor4Lia4Liz4LmA4Lie4LmH4LiNCivguJrguLPguKPguLLguJoKK+C4muC4s+C4o+C4suC4qAor4Lia4Liz4Lij4Li44LiHCivguJrguLPguKPguLkKK+C4muC4s+C5gOC4o+C4rQor4Lia4Liz4Lir4Lii4Lix4LiUCivguJrguLPguYDguKvguJnguYfguIgKK+C4muC4tAor4Lia4Li04LiB4Li5CivguJrguLTguJAKK+C4muC4tOC4lAor4Lia4Li04LiU4LijCivguJrguLTguJTguKvguKXguYjguLIKK+C4muC4tOC4lOC4sgor4Lia4Li04LiV4Li4CivguJrguLTguJXguLjguIjguInguLIKK+C4muC4tOC4leC4uOC4o+C4h+C4hOC5jAor4Lia4Li04LiV4Li44LmA4Lij4LioCivguJrguLTguJXguLjguKUKK+C4muC4tOC4leC4uOC4peC4sgor4Lia4Li04LiV4Li44Lil4Liy4LiZ4Li1CivguJrguLTguJkKK+C4muC4tOC5iOC4mQor4Lia4Li04LiZ4Lii4LiyCivguJrguLTguKXguYDguKXguLXguKLguJQKK+C4muC4tOC4p+C5gOC4o+C4leC4leC5jAor4Lia4Li04Lio4Liy4LiICivguJrguLTguKrguKHguLHguJcKK+C4muC4teC5iQor4Lia4Li14LiB4Li5CivguJrguLXguJHguLIKK+C4muC4teC4leC4sgor4Lia4Li14LiaCivguJrguLXguYDguKLguKgKK+C4muC4tuC4gQor4Lia4Li24LiB4Lia4Li24LiZCivguJrguLbguIcKK+C4muC4tuC5iOC4hwor4Lia4Li24LmJ4LiHCivguJrguLgKK+C4muC4uOC4gQor4Lia4Li44LiE4LiE4LilCivguJrguLjguITguKXguLLguIHguKMKK+C4muC4uOC4hOC4peC4suC4mOC4tOC4qeC4kOC4suC4mQor4Lia4Li44LiE4Lil4Li04LiBCivguJrguLjguIcKK+C4muC4uOC5iOC4hwor4Lia4Li44LmJ4LiHCivguJrguLjguI0KK+C4muC4uOC4jeC5gOC4guC4lQor4Lia4Li44LiN4LiN4Liy4LiZ4Li44Lig4Liy4LieCivguJrguLjguI3guI3guLLguKDguLTguJnguLTguKvguLLguKMKK+C4muC4uOC4jeC4jeC4suC4oOC4tOC4quC4seC4h+C4guC4suC4owor4Lia4Li44LiN4LiZ4Li04LiY4Li0CivguJrguLjguI3guKPguLLguKjguLUKK+C4muC4uOC4jeC4pOC4l+C4mOC4tOC5jAor4Lia4Li44LiT4LiR4Lij4Li04LiBCivguJrguLjguJPguKHguLUKK+C4muC4uOC4k+C4ouC5jAor4Lia4Li44LiV4LijCivguJrguLjguJXguKPguJjguKPguKPguKEKK+C4muC4uOC4leC4o+C4sgor4Lia4Li44LiV4Lij4Li1CivguJrguLjguJXguKPguLXguJXguKPguLDguKrguLjguKEKK+C4muC4uOC4luC4uOC4iuC4mQor4Lia4Li44LiX4LiE4LilCivguJrguLjguYvguJkKK+C4muC4uOC4meC4meC4sOC4muC4uOC4meC4meC4seC4hwor4Lia4Li44LiZ4LiZ4Liy4LiECivguJrguLjguJoKK+C4muC4uOC4nuC5gOC4nuC4meC4tOC4p+C4suC4quC4suC4meC4uOC4quC4leC4tOC4jeC4suC4kwor4Lia4Li44Lie4LmA4Lie4Liq4Lix4LiZ4LiZ4Li04Lin4Liy4LiqCivguJrguLjguJ7guYLguJ4KK+C4muC4uOC4n+C5gOC4n+C5iOC4leC5jAor4Lia4Li44LmL4LihCivguJrguLjguYjguKHguJrguYjguLLguKEKK+C4muC4uOC5ieC4ogor4Lia4Li44LmJ4Lii4Lib4Liy4LiBCivguJrguLjguKPguJPguLAKK+C4muC4uOC4o+C4nuC4geC4uOC4qOC4pQor4Lia4Li44Lij4Lie4LiX4Li04LioCivguJrguLjguKPguJ7guJnguLTguKHguLTguJUKK+C4muC4uOC4o+C4nuC4muC4lwor4Lia4Li44Lij4Lie4Lig4Lix4LiX4Lij4Lia4LiXCivguJrguLjguKPguJ7guLLguIjguLLguKPguKLguYwKK+C4muC4uOC4o+C4nuC4suC4qeC4suC4kgor4Lia4Li44Lij4LiwCivguJrguLjguKPguLHguJXguJbguLTguKHguJfguLTguKgKK+C4muC4uOC4o+C4suC4kwor4Lia4Li44Lij4Liy4LiT4LiX4Li44LiV4Li04Lii4Li04LiB4LiyCivguJrguLjguKPguLTguJnguJfguKPguYwKK+C4muC4uOC4o+C4tOC4oeC4l+C4tOC4qAor4Lia4Li44Lij4Li04Lih4Lie4Lij4Lij4Lip4LiyCivguJrguLjguKPguLTguKHguKrguLTguJfguJjguLQKK+C4muC4uOC4o+C4tQor4Lia4Li44Lij4Li44LipCivguJrguLjguKPguLjguKnguYLguJfguKkKK+C4muC4uOC4o+C4uOC4qeC4mOC4o+C4o+C4oQor4Lia4Li44LmA4Lij4Lig4LieCivguJrguLjguYDguKPguKDguLHguJUKK+C4muC4uOC5guC4o+C4l+C4seC5iOC4hwor4Lia4Li44Lip4LiB4LijCivguJrguLjguKnguJrguIEKK+C4muC4uOC4qeC4muC4hwor4Lia4Li44Lip4Lia4Lix4LiZCivguJrguLjguKnguJrguLIKK+C4muC4uOC4qeC4muC4suC4oeC4tOC4meC4leC4o+C4sgor4Lia4Li44Lip4Lib4Lij4Liy4LiECivguJrguLjguKnguJvguLAKK+C4muC4uOC4qeC4ogor4Lia4Li44Lip4Lii4LmMCivguJrguLjguKnguKLguYzguJnguYnguLPguJfguK3guIcKK+C4muC4uOC4qeC4o+C4suC4hOC4seC4oQor4Lia4Li44Lir4LiH4LiHCivguJrguLjguKvguIfguLHguJkKK+C4muC4uOC4q+C4h+C4sgor4Lia4Li44Lir4Lij4LiHCivguJrguLjguKvguKPguLXguYgKK+C4muC4uOC4q+C4o+C4teC5iOC4nuC4o+C4sOC4o+C4suC4oQor4Lia4Li44Lir4Lil4Lix4LiZCivguJrguLnguYgKK+C4muC4ueC5iQor4Lia4Li54LmKCivguJrguLnguIrguJnguLXguKLguKrguJbguLLguJkKK+C4muC4ueC4iuC4sgor4Lia4Li54LiK4Li04LmC4LiUCivguJrguLnguIrguLTguJUKK+C4muC4ueC4lAor4Lia4Li54LiU4Li5CivguJrguLnguKMKK+C4muC4ueC4o+C4k+C5jAor4Lia4Li54Lij4LiT4LiwCivguJrguLnguKPguJ4KK+C4muC4ueC4o+C4nuC4sgor4Lia4Li54Lij4Lie4Liy4LiI4Liy4Lij4Lii4LmMCivguJrguLnguKPguLUKK+C5gOC4muC5iQor4LmA4Lia4LmKCivguYDguJrguITguK3guJkKK+C5gOC4muC5iOC4hwor4LmA4Lia4LiH4LiB4Liy4Lil4Liw4LiZ4Li1CivguYDguJrguYrguIjguLXguYsKK+C5gOC4muC4jeC4geC4suC4meC4tQor4LmA4Lia4LiN4LiICivguYDguJrguI3guIjguIEKK+C5gOC4muC4jeC4iOC4oeC4suC4qAor4LmA4Lia4LiN4LiI4LiyCivguYDguJrguI3guIjguLLguIfguITguYwKK+C5gOC4muC4jeC4jeC4sgor4LmA4Lia4LiN4Lie4Liy4LiUCivguYDguJrguYfguJQKK+C5gOC4muC5h+C4lOC5gOC4leC4peC5h+C4lAor4LmA4Lia4LmH4LiU4LmA4Liq4Lij4LmH4LiICivguYDguJrguJXguLIKK+C5gOC4muC4meC4i+C4tOC4mQor4LmA4Lia4LiZ4LmE4LiL4LiZ4LmMCivguYDguJrguKPguIEKK+C5gOC4muC4o+C4tOC4peC5gOC4peC4teC4ouC4oQor4LmA4Lia4Lij4Li14Lii4LiZCivguYDguJrguYDguKPguYjguJXguYwKK+C5gOC4muC4qgor4LmA4Lia4Liq4Lia4Lit4LilCivguYDguJrguYnguK0KK+C5gOC4muC4reC4o+C5jAor4LmA4Lia4Lit4Lij4LmM4LiE4Li14LmA4Lil4Li14Lii4LihCivguYDguJrguYnguK3guYDguKPguYjguK0KK+C5gOC4muC5ieC4reC5gOC4o+C5iOC4reC5gOC4l+C5iOC4rQor4LmA4Lia4LmJ4Lit4LmA4Lij4Li04LmI4LihCivguYDguJrguYnguK3guYDguKPguLTguYjguKHguYDguJfguLTguYjguKEKK+C5gOC4muC4reC4sAor4LmA4Lia4LiwCivguYDguJrguLIKK+C5gOC4muC5ieC4sgor4LmA4Lia4Liy4Lij4Liy4LiTCivguYDguJrguLLguLAKK+C5gOC4muC4tOC4gQor4LmA4Lia4Li04LmI4LiHCivguYDguJrguLXguYnguKIKK+C5gOC4muC4teC4ouC4gQor4LmA4Lia4Li14LmI4Lii4LiHCivguYDguJrguLXguKLguJQKK+C5gOC4muC4teC4ouC4mQor4LmA4Lia4Li14Lii4Lij4LmMCivguYDguJrguLXguYnguKLguKcKK+C5gOC4muC4t+C4rQor4LmA4Lia4Li34LmI4LitCivguYDguJrguLfguYnguK0KK+C5gOC4muC4t+C5ieC4reC4hwor4LmA4Lia4Li34Lit4LiZCivguYHguJoKK+C5geC4muC5iQor4LmB4Lia4LiBCivguYHguJrguITguJfguLXguYDguKPguLXguKIgRQor4LmB4Lia4LmI4LiHCivguYHguJrguIfguITguYwKK+C5geC4muC4lOC4oeC4tOC4meC4leC4seC4mQor4LmB4Lia4LiV4LmA4LiV4Lit4Lij4Li14LmICivguYHguJrguJkKK+C5geC4muC4meC5guC4iAor4LmB4Lia4LiaCivguYHguJrguYfguJoKK+C5geC4muC4o+C4gQor4LmB4Lia4LmA4Lij4Li14Lii4LihCivguYHguJrguKvguKXguLIKK+C5geC4muC4sAor4LmB4Lia4Liw4LmB4LiLCivguYLguJoKK+C5guC4muC5iQor4LmC4Lia4LmLCivguYLguJrguIEKK+C5guC4muC4geC4guC4o+C4k+C4tQor4LmC4Lia4LiB4Li14LmJCivguYLguJrguIrguLjguIEKK+C5guC4muC4lOC4gQor4LmC4Lia4LiVCivguYLguJrguJXguLHguYvguJkKK+C5guC4muC4meC4seC4qgor4LmC4Lia4LmK4LmA4Lia4LmKCivguYLguJrguKIKK+C5guC4muC4o+C4oeC4teC4mQor4LmC4Lia4Lij4Lit4LiZCivguYLguJrguKPguLLguJMKK+C5guC4muC4p+C5jOC4peC4tOC5iOC4hwor4LmC4Lia4Liq4LiW4LmMCivguYPguJoKK+C5g+C4muC5iQor4LmD4Lia4Lij4Liw4LiB4LiyCivguYTguJrguYjguYYKK+C5hOC4muC4hOC4suC4o+C5jOC4muC4reC5gOC4meC4lQor4LmE4Lia4LmA4Lia4Li04LilCivguJsKK+C4m+C4gQor4Lib4LiB4LiV4Li0CivguJvguIHguKPguJPguYwKK+C4m+C4geC4o+C4k+C4seC4oQor4Lib4LiB4Liy4LijCivguJvguIHguLTguJPguIHguLAKK+C4m+C4geC4teC4o+C4k+C4seC4oQor4Lib4LmC4LiB4LiP4Li0CivguJvguITguLjguJMKK+C4m+C4hwor4Lib4LmI4LiHCivguJvguIfguJvguLHguIcKK+C4m+C4iuC4suC4muC4lOC4tQor4Lib4LiO4LilCivguJvguI/guLHguIEKK+C4m+C4j+C4tOC4geC4o+C4k+C5jAor4Lib4LiP4Li04LiB4Lij4Lij4LihCivguJvguI/guLTguIHguKPguKPguKHguKrguIfguITguKPguLLguKEKK+C4m+C4j+C4tOC4geC4suC4o+C4sAor4Lib4LiP4Li04LiB4Li04Lij4Li04Lii4LiyCivguJvguI/guLTguIHguLnguKUKK+C4m+C4j+C4tOC4hOC4hOC4q+C4tOC4lQor4Lib4LiP4Li04LiE4LihCivguJvguI/guLTguITguLLguKvguIEKK+C4m+C4j+C4tOC4huC4sAor4Lib4LiP4Li04LiI4LiI4Liq4Lih4Li44Lib4Lia4Liy4LiXCivguJvguI/guLTguIrguLXguKfguJnguLAKK+C4m+C4j+C4tOC4jeC4jeC4sgor4Lib4LiP4Li04LiN4Liy4LiTCivguJvguI/guLTguJfguLTguJkKK+C4m+C4j+C4tOC4muC4lgor4Lib4LiP4Li04Lia4Lix4LiV4Li0CivguJvguI/guLTguJvguJfguLIKK+C4m+C4j+C4tOC4m+C4seC4geC4qeC5jAor4Lib4LiP4Li04Lib4Lix4LiZCivguJvguI/guLTguJvguLjguIjguInguLLguJ7guKLguLLguIHguKPguJPguYwKK+C4m+C4j+C4tOC4m+C4uOC4iOC4ieC4suC4p+C4suC4l+C4tQor4Lib4LiP4Li04Lie4Lix4LiX4LiY4LmMCivguJvguI/guLTguJ7guLLguIHguKLguYwKK+C4m+C4j+C4tOC4oOC4suC4hAor4Lib4LiP4Li04Lig4Liy4LiTCivguJvguI/guLTguKDguLLguJPguIHguKfguLUKK+C4m+C4j+C4tOC4oOC4suC4k+C4m+C4j+C4tOC4quC4seC4oeC4oOC4tOC4l+C4sgor4Lib4LiP4Li04Lig4Liy4LiT4LmC4Lin4Lir4Liy4LijCivguJvguI/guLTguKHguLIKK+C4m+C4j+C4tOC4oeC4suC4geC4owor4Lib4LiP4Li04Lii4Liy4LiiCivguJvguI/guLTguKLguLjguJfguJjguYwKK+C4m+C4j+C4tOC4o+C4ngor4Lib4LiP4Li04Lij4Li54LibCivguJvguI/guLTguYLguKXguKEKK+C4m+C4j+C4tOC4p+C4seC4leC4tAor4Lib4LiP4Li04Lin4Liy4LiVCivguJvguI/guLTguKfguLLguJcKK+C4m+C4j+C4tOC5gOC4p+C4mAor4Lib4LiP4Li04Liq4LiZ4LiY4Li0CivguJvguI/guLTguKrguKfguLAKK+C4m+C4j+C4tOC4quC4seC4h+C4guC4o+C4k+C5jAor4Lib4LiP4Li04Liq4Lix4LiZ4LiW4Liy4LijCivguJvguI/guLTguKrguLHguKHguKDguLTguJfguLIKK+C4m+C4j+C4tOC5gOC4quC4mAor4Lib4LiQ4Lie4Li1CivguJvguJDguKEKK+C4m+C4kOC4oeC4lOC4uOC4quC4tOC4lQor4Lib4LiQ4Lih4Lie4Lii4Liy4Lia4Liy4LilCivguJvguJDguKHguKrguKHguYLguJ7guJjguLQKK+C4m+C4kOC4oeC4suC4quC4suC4kgor4Lib4LiQ4Lin4Li1CivguJvguJPguJUKK+C4m+C4k+C4suC4oQor4Lib4LiT4Li04LiY4Liy4LiZCivguJvguJPguLTguJjguLQKK+C4m+C4k+C4teC4lQor4Lib4LiUCivguJvguJTguYLguJvguYkKK+C4m+C4lOC4tOC4p+C4o+C4seC4lOC4sgor4Lib4LiV4Lix4LiV4Lij4Li1CivguJvguJXguLQKK+C4m+C4leC4tOC4ouC4seC4lQor4Lib4LiW4Lie4Li1CivguJvguJbguKHguLHguIcKK+C4m+C4luC4p+C4tQor4Lib4LiX4Lix4LiB4LiC4Li04LiTCivguJvguJfguLHguI/guJDguLLguJkKK+C4m+C4l+C4seC4quC4luC4suC4mQor4Lib4LiX4Liy4LiZCivguJvguJfguLLguJnguLjguIHguKPguKEKK+C4m+C4l+C4teC4mwor4Lib4LiX4Li44LihCivguJvguJjguLLguJkKK+C4m+C4mQor4Lib4LmI4LiZCivguJvguJnguLHguJTguJTguLIKK+C4m+C4meC4uOC4lwor4Lib4LiaCivguJvguJvguLHguI3guIjguLAKK+C4m+C4oQor4Lib4Lij4LiBCivguJvguKPguIHguJXguLQKK+C4m+C4o+C4hwor4Lib4Lij4LiUCivguJvguKPguJXguKLguLHguIHguKnguYwKK+C4m+C4o+C4leC4ouC4suC4hAor4Lib4Lij4LiV4LmA4Lii4LiBCivguJvguKPguJfguLHguJXguJXguLnguJvguIrguLXguKfguLUKK+C4m+C4o+C4mQor4Lib4Lij4LiZ4LiZ4Li04Lia4Lix4LiV4Li0CivguJvguKPguJnguLHguKIKK+C4m+C4o+C4mgor4Lib4Lij4Lib4Lix4LiB4Lip4LmMCivguJvguKPguYDguKHguKvguLAKK+C4m+C4o+C5guC4peC4gQor4Lib4Lij4Lin4LiUCivguJvguKPguKfguJnguYHguJvguKMKK+C4m+C4o+C4p+C4suC4l+C4tQor4Lib4Lij4Lin4Li04Liq4Lix4Lii4Liq4Li14Lih4LiyCivguJvguKPguKjguLgKK+C4m+C4o+C4quC4tOC4lQor4Lib4Lij4LmL4LitCivguJvguKPguK3guIfguJTguK3guIcKK+C4m+C4o+C4reC4lAor4Lib4Lij4Lit4LiU4LmGCivguJvguKPguK3guJcKK+C4m+C4o+C4reC4ogor4Lib4Lij4Lit4Lii4LmGCivguJvguKPguLAKK+C4m+C4o+C4sOC4geC4mgor4Lib4Lij4Liw4LiB4Lik4LiVCivguJvguKPguLDguIHguKTguJXguLQKK+C4m+C4o+C4sOC4geC4pQor4Lib4Lij4Liw4LiB4Lin4LiUCivguJvguKPguLDguIHguK3guJoKK+C4m+C4o+C4sOC4geC4seC4mQor4Lib4Lij4Liw4LiB4Lix4LiaCivguJvguKPguLDguIHguLLguKIKK+C4m+C4o+C4sOC4geC4suC4owor4Lib4Lij4Liw4LiB4Liy4LioCivguJvguKPguLDguIHguLLguKjguIEKK+C4m+C4o+C4sOC4geC4suC4qOC4meC4teC4ouC4geC4o+C4o+C4oQor4Lib4Lij4Liw4LiB4Liy4Lio4LiZ4Li14Lii4Lia4Lix4LiV4LijCivguJvguKPguLDguIHguLLguKjguLTguJUKK+C4m+C4o+C4sOC4geC4swor4Lib4Lij4Liw4LiB4Li04LiUCivguJvguKPguLDguIHguLTguJUKK+C4m+C4o+C4sOC4geC4teC4o+C4k+C4gQor4Lib4Lij4Liw4LmA4LiB4Li14Lii4Lij4LiT4LiBCivguJvguKPguLDguYHguIHguIEKK+C4m+C4o+C4sOC4hOC4lAor4Lib4Lij4Liw4LiE4LiZ4LiY4Lij4Lij4LieCivguJvguKPguLDguITguJnguJjguKPguKPguJ7guYwKK+C4m+C4o+C4sOC4hOC4mgor4Lib4Lij4Liw4LiE4Lit4LiHCivguJvguKPguLDguITguLHguJrguJvguKPguLDguITguK3guIcKK+C4m+C4o+C4sOC4hOC4seC4peC4oOC5jAor4Lib4Lij4Liw4LiE4LizCivguJvguKPguLDguITguLPguYTguIHguYgKK+C4m+C4o+C4sOC4hOC4s+C4lOC4teC4hOC4p+C4suC4ogor4Lib4Lij4Liw4LiE4Li04LmI4LiZCivguJvguKPguLDguITguLTguYjguJnguKfguLTguJnguIrguLIKK+C4m+C4o+C4sOC4hOC4uOC4kwor4Lib4Lij4Liw4LmA4LiE4LiZCivguJvguKPguLDguYDguITguKPguLLguLDguKvguYwKK+C4m+C4o+C4sOC5guC4hOC4mQor4Lib4Lij4Liw4LmC4LiE4LiZ4LiY4Lij4Lij4LiaCivguJvguKPguLDguYLguITguJnguJjguKPguKPguJ7guYwKK+C4m+C4o+C4sOC5guC4hOC4oQor4Lib4Lij4Liw4LiI4LiHCivguJvguKPguLDguIjguI0KK+C4m+C4o+C4sOC4iOC4mgor4Lib4Lij4Liw4LiI4Lin4LiaCivguJvguKPguLDguIjguYvguK3guJvguKPguLDguYHguIjguYsKK+C4m+C4o+C4sOC4iOC4seC4geC4qeC5jAor4Lib4Lij4Liw4LiI4Lix4LiNCivguJvguKPguLDguIjguLHguJkKK+C4m+C4o+C4sOC4iOC4suC4gQor4Lib4Lij4Liw4LiI4Liy4LiECivguJvguKPguLDguIjguLLguJkKK+C4m+C4o+C4sOC4iOC4swor4Lib4Lij4Liw4LiI4Li04LihCivguJvguKPguLDguIjguLTguYnguKHguJvguKPguLDguIjguYjguK3guIcKK+C4m+C4o+C4sOC4iOC4tOC5ieC4oeC4m+C4o+C4sOC5gOC4iOC5i+C4rQor4Lib4Lij4Liw4LiI4Li4CivguJvguKPguLDguIjguLjguITguKHguJnguYwKK+C4m+C4o+C4sOC4iOC4uOC4muC4seC4mQor4Lib4Lij4Liw4LmA4LiI4LiBCivguJvguKPguLDguYDguIjguLTguJQKK+C4m+C4o+C4sOC5gOC4iOC4teC4ouC4lAor4Lib4Lij4Liw4LmB4LiICivguJvguKPguLDguIrguJQKK+C4m+C4o+C4sOC4iuC4mQor4Lib4Lij4Liw4LiK4Lin4LihCivguJvguKPguLDguIrguKfguKMKK+C4m+C4o+C4sOC4iuC4seC4mQor4Lib4Lij4Liw4LiK4LiyCivguJvguKPguLDguIrguLTguJQKK+C4m+C4o+C4sOC4iuC4tQor4Lib4Lij4Liw4LiK4Li44LihCivguJvguKPguLDguYDguIrguLTguI0KK+C4m+C4o+C4sOC4k+C4lQor4Lib4Lij4Liw4LiT4LihCivguJvguKPguLDguJPguLLguKEKK+C4m+C4o+C4sOC4k+C4tOC4mOC4suC4mQor4Lib4Lij4Liw4LiT4Li04LiY4Li0CivguJvguKPguLDguJPguLXguJUKK+C4m+C4o+C4sOC4k+C4uOC4lwor4Lib4Lij4Liw4LiU4LiHCivguJvguKPguLDguJTguIfguYHguJTguIcKK+C4m+C4o+C4sOC4lOC4mQor4Lib4Lij4Liw4LiU4Lin4LiZCivguJvguKPguLDguJTguK3guJkKK+C4m+C4o+C4sOC4lOC4reC4ogor4Lib4Lij4Liw4LiU4Lix4LiBCivguJvguKPguLDguJTguLHguIcKK+C4m+C4o+C4sOC4lOC4seC4mgor4Lib4Lij4Liw4LiU4LiyCivguJvguKPguLDguJTguLLguIEKK+C4m+C4o+C4sOC4lOC4suC4mwor4Lib4Lij4Liw4LiU4Liy4LipCivguJvguKPguLDguJTguLTguIrguI3guLIKK+C4m+C4o+C4sOC4lOC4tOC4lOC4m+C4o+C4sOC4lOC4reC4ogor4Lib4Lij4Liw4LiU4Li04LiX4Li04LiZCivguJvguKPguLDguJTguLTguKPguJ4KK+C4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jAor4Lib4Lij4Liw4LiU4Li04Lip4LiQ4Liy4LiZCivguJvguKPguLDguJTguLgKK+C4m+C4o+C4sOC4lOC4uOC4hwor4Lib4Lij4Liw4LiU4Li44LiICivguJvguKPguLDguJTguLnguYgKK+C4m+C4o+C4sOC5gOC4lAor4Lib4Lij4Liw4LmA4LiU4LmH4LiZCivguJvguKPguLDguYDguJTguKLguIEKK+C4m+C4o+C4sOC5gOC4lOC4tOC4oQor4Lib4Lij4Liw4LmA4LiU4Li14Lii4LiHCivguJvguKPguLDguYDguJTguLXguYvguKLguKcKK+C4m+C4o+C4sOC5geC4lOC4hwor4Lib4Lij4Liw4LmB4LiU4LiwCivguJvguKPguLDguYLguJTguKIKK+C4m+C4o+C4sOC4leC4hwor4Lib4Lij4Liw4LiV4Lii4Liy4LiECivguJvguKPguLDguJXguLHguIEKK+C4m+C4o+C4sOC4leC4suC4m+C4sAor4Lib4Lij4Liw4LiV4Li04LiK4LiN4LiyCivguJvguKPguLDguJXguLTguI3guLLguJMKK+C4m+C4o+C4sOC4leC4tOC4l+C4tOC4mQor4Lib4Lij4Liw4LiV4Li04Lih4Liy4LiB4Lij4Lij4LihCivguJvguKPguLDguJXguLTguKPguJ4KK+C4m+C4o+C4sOC4leC4tOC4qOC4o+C4seC4ngor4Lib4Lij4Liw4LiV4Li5CivguJvguKPguLDguJbguKEKK+C4m+C4o+C4sOC4luC4oeC4iOC4tOC4meC4lOC4sgor4Lib4Lij4Liw4LiX4LihCivguJvguKPguLDguJfguKLguJQKK+C4m+C4o+C4sOC4l+C5ieC4p+C4hwor4Lib4Lij4Liw4LiX4Lin4LiZCivguJvguKPguLDguJfguLHguIHguKnguYwKK+C4m+C4o+C4sOC4l+C4seC4geC4qeC4tOC4kwor4Lib4Lij4Liw4LiX4Lix4LiHCivguJvguKPguLDguJfguLHguJQKK+C4m+C4o+C4sOC4l+C4seC4mgor4Lib4Lij4Liw4LiX4LmI4LiyCivguJvguKPguLDguJfguLLguIHguKXguYnguK3guIcKK+C4m+C4o+C4sOC4l+C4suC4mQor4Lib4Lij4Liw4LiX4Liy4LiiCivguJvguKPguLDguJfguLLguKjguLUKK+C4m+C4o+C4sOC4l+C4tOC4mQor4Lib4Lij4Liw4LiX4Li04LmI4LiZCivguJvguKPguLDguJfguLXguJsKK+C4m+C4o+C4sOC4l+C4uOC4gQor4Lib4Lij4Liw4LiX4Li44LiQCivguJvguKPguLDguJfguLjguJDguIjguLTguJUKK+C4m+C4o+C4sOC4l+C4uOC4mQor4Lib4Lij4Liw4LiX4Li44Lih4Lij4Liy4LiECivguJvguKPguLDguJfguLjguKkKK+C4m+C4o+C4sOC4l+C4uOC4qeC4j+C5jAor4Lib4Lij4Liw4LiX4Li44Lip4LiP4LiI4Li04LiVCivguJvguKPguLDguJfguLjguKnguJDguYwKK+C4m+C4o+C4sOC4l+C4uOC4qeC4kOC4iOC4tOC4lQor4Lib4Lij4Liw4LmA4LiX4LioCivguJvguKPguLDguYDguJfguLIKK+C4m+C4o+C4sOC5gOC4l+C5ieC4sgor4Lib4Lij4Liw4LmA4LiX4Li14Lii4LiUCivguJvguKPguLDguYDguJfguLXguKLguJoKK+C4m+C4o+C4sOC5gOC4l+C4t+C4reC4hwor4Lib4Lij4Liw4LiY4Liy4LiZCivguJvguKPguLDguJjguLLguJnguLLguJjguLTguJrguJTguLUKK+C4m+C4o+C4sOC4meC4oQor4Lib4Lij4Liw4LiZ4LitCivguJvguKPguLDguJnguK3guKEKK+C4m+C4o+C4sOC4meC4seC4hwor4Lib4Lij4Liw4LiZ4Lix4Lib4LiU4LiyCivguJvguKPguLDguJnguLXguYkKK+C4m+C4o+C4sOC4meC4teC4m+C4o+C4sOC4meC4reC4oQor4Lib4Lij4Liw4Lia4Lix4LiUCivguJvguKPguLDguJrguLLguJUKK+C4m+C4o+C4sOC4m+C4o+C4suC4mQor4Lib4Lij4Liw4Lib4Lij4Liy4LiiCivguJvguKPguLDguJvguLIKK+C4m+C4o+C4sOC5gOC4m+C4o+C4teC5ieC4ouC4hwor4Lib4Lij4Liw4LmA4Lib4Lij4Li14LmJ4Lii4LinCivguJvguKPguLDguYHguJvguKPguYnguJkKK+C4m+C4o+C4sOC4nuC4iOC4meC5jAor4Lib4Lij4Liw4Lie4LiZ4LiY4LmMCivguJvguKPguLDguJ7guKPguKEKK+C4m+C4o+C4sOC4nuC4pOC4leC4tAor4Lib4Lij4Liw4Lie4Lik4LiX4LiY4Li04LmMCivguJvguKPguLDguJ7guLHguJQKK+C4m+C4o+C4sOC4nuC4seC4l+C4mOC5jAor4Lib4Lij4Liw4Lie4Lix4LiZ4LiY4LmMCivguJvguKPguLDguJ7guLLguJUKK+C4m+C4o+C4sOC4nuC4suC4qOC4oeC4q+C4o+C4k+C4ngor4Lib4Lij4Liw4Lie4Liy4LiqCivguJvguKPguLDguJ7guLLguKwKK+C4m+C4o+C4sOC4nuC4tOC4kwor4Lib4Lij4Liw4Lie4Li04Lih4Lie4LmM4Lib4Lij4Liw4Lie4Liy4LiiCivguJvguKPguLDguJ7guLjguJfguJjguYwKK+C4m+C4o+C4sOC5gOC4nuC4k+C4tQor4Lib4Lij4Liw4LmA4Lie4LmJ4LitCivguJvguKPguLDguYHguJ7guKPguYjguIfguJvguKPguLDguYHguJ7guKPguKcKK+C4m+C4o+C4sOC5guC4nuC4mAor4Lib4Lij4Liw4LmE4LieCivguJvguKPguLDguYTguJ7guKMKK+C4m+C4o+C4sOC4oOC4ngor4Lib4Lij4Liw4Lig4Lix4Liq4Liq4LijCivguJvguKPguLDguKDguLIKK+C4m+C4o+C4sOC4oOC4suC4ngor4Lib4Lij4Liw4Lig4Liy4LipCivguJvguKPguLDguKDguLLguKoKK+C4m+C4o+C4sOC4oOC4ueC4qOC4seC4geC4lOC4tOC5jAor4Lib4Lij4Liw4LmA4Lig4LiXCivguJvguKPguLDguKHguIcKK+C4m+C4o+C4sOC4oeC4p+C4jQor4Lib4Lij4Liw4Lih4Lin4LilCivguJvguKPguLDguKHguLHguJXguJXguLAKK+C4m+C4o+C4sOC4oeC4suC4kwor4Lib4Lij4Liw4Lih4Liy4LiXCivguJvguKPguLDguKHguLjguIIKK+C4m+C4o+C4sOC4oeC4uOC4lwor4Lib4Lij4Liw4Lih4Li54LilCivguJvguKPguLDguYDguKHguLTguJkKK+C4m+C4o+C4sOC5guC4oeC4hwor4Lib4Lij4Liw4LmC4Lih4LiX4Lii4LmMCivguJvguKPguLDguKLguIfguITguYwKK+C4m+C4o+C4sOC4ouC4uOC4geC4leC5jAor4Lib4Lij4Liw4Lii4Li44LiX4LiY4LmMCivguJvguKPguLDguKLguLjguKMKK+C4m+C4o+C4sOC4ouC4ueC4owor4Lib4Lij4Liw4LmC4Lii4LiECivguJvguKPguLDguYLguKLguITguKrguLHguKHguJvguJfguLIKK+C4m+C4o+C4sOC5guC4ouC4iuC4meC5jAor4Lib4Lij4Liw4LmC4Lij4Lir4Li04LiVCivguJvguKPguLDguKXguKHguJ7guYwKK+C4m+C4o+C4sOC4peC4reC4hwor4Lib4Lij4Liw4Lil4Lix4LiiCivguJvguKPguLDguKXguLLguJUKK+C4m+C4o+C4sOC4peC4suC4ogor4Lib4Lij4Liw4Lil4Li24LiHCivguJvguKPguLDguKXguLgKK+C4m+C4o+C4sOC4peC4uOC4hwor4Lib4Lij4Liw4LmA4Lil4LmI4Lir4LmMCivguJvguKPguLDguYDguKXguYnguLLguJvguKPguLDguYLguKXguKEKK+C4m+C4o+C4sOC5guC4peC4m+C4o+C4sOC5gOC4pQor4Lib4Lij4Liw4LmC4Lil4LihCivguJvguKPguLDguKfguKPguKPguJUKK+C4m+C4o+C4sOC4p+C4o+C4o+C4leC4meC5jAor4Lib4Lij4Liw4Lin4Lix4LiV4Li0CivguJvguKPguLDguKfguLLguJUKK+C4m+C4o+C4sOC4p+C4suC4l+C4tQor4Lib4Lij4Liw4Lin4Liy4LilCivguJvguKPguLDguKfguLLguKXguJvguLHguJfguKHguYwKK+C4m+C4o+C4sOC4p+C4suC4peC4nOC4pQor4Lib4Lij4Liw4Lin4Liy4Lil4Lin4Lij4Lij4LiTCivguJvguKPguLDguKfguLLguKoKK+C4m+C4o+C4sOC4p+C4tOC4hwor4Lib4Lij4Liw4Lin4Li04LiKCivguJvguKPguLDguKfguLTguJXguKMKK+C4m+C4o+C4sOC4p+C4teC4kwor4Lib4Lij4Liw4LmA4Lin4LiT4Li1CivguJvguKPguLDguYDguKfguJvguKPguLDguKfguLTguIcKK+C4m+C4o+C4sOC5gOC4p+C4qAor4Lib4Lij4Liw4LmA4Lin4Lio4LiZ4LmMCivguJvguKPguLDguKjguKEKK+C4m+C4o+C4sOC4qOC4suC4quC4meC5jAor4Lib4Lij4Liw4Lio4Li4CivguJvguKPguLDguKrguIEKK+C4m+C4o+C4sOC4quC4h+C4hOC5jAor4Lib4Lij4Liw4Liq4LiaCivguJvguKPguLDguKrguJ4KK+C4m+C4o+C4sOC4quC4oQor4Lib4Lij4Liw4Liq4LiwCivguJvguKPguLDguKrguLHguIEKK+C4m+C4o+C4sOC4quC4seC4meC4meC4suC4geC4suC4owor4Lib4Lij4Liw4Liq4Lix4Lii4Lir4LmMCivguJvguKPguLDguKrguLIKK+C4m+C4o+C4sOC4quC4suC4lwor4Lib4Lij4Liw4Liq4Liy4LiX4LiB4Liy4LijCivguJvguKPguLDguKrguLLguJfguKPguLnguJsKK+C4m+C4o+C4sOC4quC4suC4mOC4meC5jAor4Lib4Lij4Liw4Liq4Liy4LiZCivguJvguKPguLDguKrguLLguKMKK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jAor4Lib4Lij4Liw4Liq4Li14Lib4Lij4Liw4Liq4LiyCivguJvguKPguLDguKrguLnguJUKK+C4m+C4o+C4sOC4quC4ueC4leC4tAor4Lib4Lij4Liw4LmA4Liq4Lia4Lix4LiZ4Lit4Liy4LiB4LiHCivguJvguKPguLDguYDguKrguKPguLTguJAKK+C4m+C4o+C4sOC5geC4quC4muC4seC4mQor4Lib4Lij4Liw4Lir4LiZ4Li24LmI4LiHCivguJvguKPguLDguKvguKHguLHguJkKK+C4m+C4o+C4sOC4q+C4oeC5iOC4sgor4Lib4Lij4Liw4Lir4Lii4Lix4LiUCivguJvguKPguLDguKvguKPguJPguYwKK+C4m+C4o+C4sOC4q+C4peC4suC4lAor4Lib4Lij4Liw4Lir4Lil4Liy4LiXCivguJvguKPguLDguKvguKXguYjguLMKK+C4m+C4o+C4sOC4q+C4peC4tOC5iOC4oQor4Lib4Lij4Liw4Lir4Lin4Lix4LiUCivguJvguKPguLDguKvguKfguLHguYjguJkKK+C4m+C4o+C4sOC4q+C4p+C5iOC4sgor4Lib4Lij4Liw4Lir4Lix4LiVCivguJvguKPguLDguKvguLLguJMKK+C4m+C4o+C4sOC4q+C4suC4owor4Lib4Lij4Liw4Lir4Liy4LiqCivguJvguKPguLDguYDguKvguKUKK+C4m+C4o+C4sOC5gOC4q+C4qgor4Lib4Lij4Liw4LmA4Lir4Li14Lii4LilCivguJvguKPguLDguYTguKvguKHguKrguLjguKvguKPguLUKK+C4m+C4o+C4sOC4reC4mgor4Lib4Lij4Liw4Lit4LijCivguJvguKPguLDguK3guLbguIcKK+C4m+C4o+C4sOC4reC4uOC4gQor4Lib4Lij4Liw4LmA4Lit4Li14Lii4LiHCivguJvguKPguLDguYHguK3guIEKK+C4m+C4o+C4sOC4ruC4suC4oQor4Lib4Lij4Lix4LiBCivguJvguKPguLHguIHguJvguKPguLMKK+C4m+C4o+C4seC4geC4oeC4sAor4Lib4Lij4Lix4LiB4Lir4Lix4LiB4Lie4Lix4LiHCivguJvguKPguLHguIcKK+C4m+C4o+C4seC4iuC4jeC4sgor4Lib4Lij4Lix4LiUCivguJvguKPguLHguJXguJbguIjguKPguLTguKLguLIKK+C4m+C4o+C4seC4leC4ouC4meC4leC5jAor4Lib4Lij4Lix4LiV4Lii4Lix4LiB4Lip4LmMCivguJvguKPguLHguJXguKLguLHguJnguJXguYwKK+C4m+C4o+C4seC4leC4ouC4seC4ogor4Lib4Lij4Lix4LiV4Lii4Li44LiV4Lia4Lix4LiZCivguJvguKPguLHguJXguKLguLjguJrguLHguJkKK+C4m+C4o+C4seC4leC4ouC4ueC4qQor4Lib4Lij4Lix4LiV4Lii4Li54Lir4LmMCivguJvguKPguLHguJXguYDguKLguIEKK+C4m+C4o+C4seC4mQor4Lib4Lij4Lix4LmI4LiZCivguJvguKPguLHguYnguJkKK+C4m+C4o+C4seC4mgor4Lib4Lij4Lix4Lib4Lin4Liy4LiXCivguJvguKPguLHguKHguJvguKPguLIKK+C4m+C4o+C4seC4oeC4oeC4uOC4guC4sgor4Lib4Lij4Lix4Lio4LiI4Li04LihCivguJvguKPguLHguKjguJnguLIKK+C4m+C4o+C4seC4qOC4meC4tQor4Lib4Lij4Lix4Lio4Lin4LmMCivguJvguKPguYjguLIKK+C4m+C4o+C4suC4geC4jwor4Lib4Lij4Liy4LiB4Lij4LihCivguJvguKPguLLguIHguKTguJUKK+C4m+C4o+C4suC4geC4suC4owor4Lib4Lij4Liy4LiE4Lig4Liy4LijCivguJvguKPguLLguITguLLguKMKK+C4m+C4o+C4suC4hwor4Lib4Lij4Liy4LiH4LiE4LmMCivguJvguKPguLLguIfguITguJPguLAKK+C4m+C4o+C4suC4iOC4teC4mQor4Lib4Lij4Liy4LiK4LiN4LmMCivguJvguKPguLLguIrguI3guLIKK+C4m+C4o+C4suC4iuC4seC4ogor4Lib4Lij4Liy4LiK4Liy4Lib4Lix4LiV4Lii4Lin4Li04Lin4Liy4Lir4LiwCivguJvguKPguLLguIrguLTguJUKK+C4m+C4o+C4suC4kwor4Lib4Lij4Liy4LiT4Li1CivguJvguKPguLLguJQKK+C4m+C4o+C4suC4leC4tOC4q+C4suC4o+C4ouC5jAor4Lib4Lij4Liy4LiX4Li44LiB4Lij4LiyCivguJvguKPguLLguJkKK+C4m+C4o+C4suC4meC4tQor4Lib4Lij4Liy4LiaCivguJvguKPguLLguJrguJTguLLguKDguLTguYDguKnguIEKK+C4m+C4o+C4suC4m+C4leC5jAor4Lib4Lij4Liy4Lig4LieCivguJvguKPguLLguKEKK+C4m+C4o+C4suC4oeC4suC4qgor4Lib4Lij4Liy4LmC4Lih4LiKCivguJvguKPguLLguYLguKHguJfguKLguYwKK+C4m+C4o+C4suC4ogor4Lib4Lij4Liy4Lij4LiW4LiZ4LiyCivguJvguKPguLLguKPguKAKK+C4m+C4o+C4suC4o+C4oeC4oOC5jAor4Lib4Lij4Liy4LioCivguJvguKPguLLguKjguIjguLLguIEKK+C4m+C4o+C4suC4qOC4seC4ogor4Lib4Lij4Liy4Lip4LiT4Li1CivguJvguKPguLLguKnguLLguJMKK+C4m+C4o+C4suC4quC4seC4ogor4Lib4Lij4Liy4Liq4Liy4LiXCivguJvguKPguLMKK+C4m+C4o+C4tAor4Lib4Lij4Li04LiBCivguJvguKPguLTguIHguILguLLguKMKK+C4m+C4o+C4tOC4geC4o+C4o+C4oQor4Lib4Lij4Li04LiB4Lix4LibCivguJvguKPguLTguILguLIKK+C4m+C4o+C4tOC4hOC4k+C4q+C5jAor4Lib4Lij4Li04LiGCivguJvguKPguLTguIjguLLguIQKK+C4m+C4o+C4tOC4iOC4suC4o+C4tOC4geC4sgor4Lib4Lij4Li04LmA4LiJ4LiXCivguJvguKPguLTguIrguJkKK+C4m+C4o+C4tOC4i+C4tuC4oQor4Lib4Lij4Li04LiN4LiN4LiyCivguJvguKPguLTguJPguLLguKEKK+C4m+C4o+C4tOC4k+C4suC4ouC4gQor4Lib4Lij4Li04LiV4LiV4LiwCivguJvguKPguLTguJXguYLguJXguJfguIEKK+C4m+C4o+C4tOC4leC4ouC4suC4hAor4Lib4Lij4Li04LiV4LijCivguJvguKPguLTguJfguKPguKPguKjguJnguYwKK+C4m+C4o+C4tOC4l+C4seC4ouC4q+C4seC4hOC4hOC4tQor4Lib4Lij4Li04LiX4Lix4Lio4LiZ4LmMCivguJvguKPguLTguYDguJfguJ4KK+C4m+C4o+C4tOC5gOC4l+C4nuC4meC5jAor4Lib4Lij4Li04LmA4LiX4Lin4LiZ4LiwCivguJvguKPguLTguYDguJfguKfguLAKK+C4m+C4o+C4tOC4meC4tOC4nuC4nuC4suC4mQor4Lib4Lij4Li04LiaCivguJvguKPguLTguJvguLHguJnguJbguYwKK+C4m+C4o+C4tOC4nuC4meC4mOC5jAor4Lib4Lij4Li04Lie4Lix4LiV4LijCivguJvguKPguLTguJ7guLHguJnguJjguYwKK+C4m+C4o+C4tOC4nuC4suC4iuC4gQor4Lib4Lij4Li04Lig4Lix4LiT4LiR4LmMCivguJvguKPguLTguKDguLLguKkKK+C4m+C4o+C4tOC4oOC4suC4qeC4k+C5jAor4Lib4Lij4Li04Lig4Li44LiN4LiK4LmMCivguJvguKPguLTguKDguLnguKHguLQKK+C4m+C4o+C4tOC5guC4oOC4hAor4Lib4Lij4Li04LmI4LihCivguJvguKPguLTguKHguJPguJHguKUKK+C4m+C4o+C4tOC4oeC4seC4lwor4Lib4Lij4Li04Lih4Liy4LiTCivguJvguKPguLTguKHguLLguJXguKMKK+C4m+C4o+C4tOC4ouC4seC4leC4tAor4Lib4Lij4Li04Lii4Lix4LiV4Li04LiY4Lij4Lij4LihCivguJvguKPguLTguKLguLLguKIKK+C4m+C4o+C4tOC5gOC4ouC4qAor4Lib4Lij4Li04LmC4Lii4Liq4Liy4LiZCivguJvguKPguLTguKfguKPguKPguJUKK+C4m+C4o+C4tOC4p+C4seC4leC4owor4Lib4Lij4Li04Lin4Liy4LijCivguJvguKPguLTguKfguLLguKoKK+C4m+C4o+C4tOC4p+C4tOC4leC4gQor4Lib4Lij4Li04LmA4Lin4LiTCivguJvguKPguLTguKjguJnguLIKK+C4m+C4o+C4tOC4qeC4geC4suC4owor4Lib4Lij4Li04Lip4Lix4LiXCivguJvguKPguLTguKrguLHguI3guI3guLkKK+C4m+C4o+C4tOC4quC4uOC4l+C4mOC4tAor4Lib4Lij4Li04Lir4Liy4LiZCivguJvguKPguLTguKvguLLguKMKK+C4m+C4o+C4tOC4q+C4suC4qgor4Lib4Lij4Li14LmICivguJvguKPguLXguIrguI3guLIKK+C4m+C4o+C4teC4iuC4sgor4Lib4Lij4Li14LmK4LiUCivguJvguKPguLXguJTguLIKK+C4m+C4o+C4teC4lOC4tAor4Lib4Lij4Li14LiU4Li04LmMCivguJvguKPguLXguJTguLUKK+C4m+C4o+C4teC4leC4tAor4Lib4Lij4Li14LiiCivguJvguKPguLXguKLguLIKK+C4m+C4o+C4tuC4gQor4Lib4Lij4Li24LiB4Lip4LiyCivguJvguKPguLbguIcKK+C4m+C4o+C4t+C4rQor4Lib4Lij4Li34LmL4LitCivguJvguKPguLgKK+C4m+C4o+C4uOC4hwor4Lib4Lij4Li5CivguJvguKPguLnguYsKK+C4m+C4o+C4ueC4lAor4Lib4Lij4Li54LmK4LifCivguJvguKTguIfguITguJ4KK+C4m+C4pOC4iOC4ieC4sgor4Lib4Lik4Lip4LiO4Liy4LiH4LiE4LmMCivguJvguKTguKnguJAKK+C4m+C4pOC4qeC4k+C5jAor4Lib4Lil4LiBCivguJvguKXguIHguYDguJvguKXguLXguYnguKIKK+C4m+C4peC4hwor4Lib4Lil4LmI4LiHCivguJvguKXguJQKK+C4m+C4peC5ieC4mQor4Lib4Lil4Lin4LiBCivguJvguKXguK3guIEKK+C4m+C4peC5iOC4reC4hwor4Lib4Lil4LmJ4Lit4LiHCivguJvguKXguK3guJQKK+C4m+C4peC5ieC4reC4mQor4Lib4Lil4Lit4LiaCivguJvguKXguK3guKEKK+C4m+C4peC5iOC4reC4ogor4Lib4Lil4LiwCivguJvguKXguLHguIEKK+C4m+C4peC4seC5iuC4gQor4Lib4Lil4Lix4LmK4LiB4LmE4LifCivguJvguKXguLHguIcKK+C4m+C4peC4seC5iOC4hwor4Lib4Lil4Lix4LiUCivguJvguKXguLHguJTguILguLTguIEKK+C4m+C4peC4sgor4Lib4Lil4Liy4LiBCivguJvguKXguLLguJTguLLguKcKK+C4m+C4peC4suC4lQor4Lib4Lil4Liy4LiaCivguJvguKXguLLguJ3guLIKK+C4m+C4peC4suC4ogor4Lib4Lil4Liy4Lii4LiZ4Liy4LiB4Liy4LijCivguJvguKXguLLguYLguKXguKHguLIKK+C4m+C4peC4suC4p+C4suC4rAor4Lib4Lil4Liy4Liq4LmA4LiV4Lit4Lij4LmMCivguJvguKXguLLguKrguJnguLLguIHguLLguKMKK+C4m+C4peC4suC4q+C4oeC4tuC4gQor4Lib4Lil4LmJ4LizCivguJvguKXguYnguLPguJvguKXguLjguIEKK+C4m+C4peC4tOC4hwor4Lib4Lil4Li04LiUCivguJvguKXguLTguYnguJkKK+C4m+C4peC4tOC5guC4nuC4mAor4Lib4Lil4Li04LihCivguJvguKXguLTguYjguKEKK+C4m+C4peC4tOC4pwor4Lib4Lil4Li1CivguJvguKXguLXguIEKK+C4m+C4peC4t+C5ieC4oQor4Lib4Lil4Li44LiBCivguJvguKXguLnguIEKK+C4m+C4p+C4geC5gOC4m+C4teC4ouC4gQor4Lib4Lin4LiHCivguJvguYjguKfguIcKK+C4m+C4p+C4lAor4Lib4LmI4Lin4LiZCivguJvguYnguKfguJkKK+C4m+C5ieC4p+C4meC5gOC4m+C4teC5ieC4ouC4mQor4Lib4LmI4Lin4LiiCivguJvguKfguLHguJXguJnguYwKK+C4m+C4p+C4seC4leC4ouC4suC4geC4suC4owor4Lib4Lin4Liy4LiVCivguJvguKfguLLguKPguJPguLIKK+C4m+C4p+C4suC4pQor4Lib4Lin4Liy4LiqCivguJvguKfguLLguKwKK+C4m+C4p+C4tOC4igor4Lib4Lin4Li04LiV4LijCivguJvguKfguLTguJgKK+C4m+C4p+C4tOC5gOC4p+C4gQor4Lib4Lin4Li14LiTCivguJvguKfguLjguJXguLQKK+C4m+C5gOC4p+C4k+C4tQor4Lib4LmA4Lin4LiqCivguJvguYDguKfguKrguJnguYwKK+C4m+C4qOC4uAor4Lib4Liq4LieCivguJvguKrguLHguJnguJnguLAKK+C4m+C4quC4seC4ouC4q+C4sAor4Lib4Liq4Liy4LiXCivguJvguKrguLLguJkKK+C4m+C4quC4suC4quC4meC5jAor4Lib4Liq4Li4CivguJvguKrguLjguJUKK+C4m+C4quC4ueC4leC4tAor4Lib4Lir4Lix4LiH4LiqCivguJvguKvguLHguIfguKrguJkKK+C4m+C4q+C4suC4mQor4Lib4Lir4Liy4LijCivguJvguKvguLLguKoKK+C4m+C4rQor4Lib4LmJ4LitCivguJvguYvguK0KK+C4m+C4reC4gQor4Lib4Lit4LiHCivguJvguYjguK3guIcKK+C4m+C5ieC4reC4hwor4Lib4Lit4LiUCivguJvguK3guJkKK+C4m+C5ieC4reC4mQor4Lib4Lit4LiZ4LmGCivguJvguK3guJnguJTguYwKK+C4m+C4reC5gOC4meC4suC4sAor4Lib4Lit4LiaCivguJvguK3guKEKK+C4m+C5ieC4reC4oQor4Lib4LmL4Lit4LihCivguJvguK3guKIKK+C4m+C5ieC4reC4ogor4Lib4LiwCivguJvguLDguIHguJkKK+C4m+C4sOC4geC4seC4hwor4Lib4Liw4LiB4Liy4Lib4Liw4LiB4Lix4LiHCivguJvguLDguIHguLLguKPguLHguIcKK+C4m+C4sOC4geC4swor4Lib4Liw4LiC4Liy4LinCivguJvguLDguIfguLHguJrguJvguLDguIfguYjguK3guJkKK+C4m+C4sOC4leC4suC4meC4tQor4Lib4Liw4LiV4Liy4Lib4LiyCivguJvguLDguJXguLLguKPguLDguIHguLLguKvguKXguLIKK+C4m+C4sOC4leC4tOC4lOC4m+C4sOC4leC5iOC4rQor4Lib4Liw4LiV4Li04Lii4Liy4LiZCivguJvguLDguYDguJXguLAKK+C4m+C4sOC4l+C4sAor4Lib4Liw4LiX4Liw4Lib4Liw4LiX4Lix4LiHCivguJvguLDguJfguLgKK+C4m+C4sOC4l+C4uOC4mQor4Lib4Liw4Lia4Li44LiBCivguJvguLDguJvguJkKK+C4m+C4sOC4oeC4hwor4Lib4Liw4Lij4Liy4Lil4Li1CivguJvguLDguKPguLMKK+C4m+C4sOC4peC4reC4oQor4Lib4Liw4LmA4Lil4LiHCivguJvguLDguYHguKXguYjguKEKK+C4m+C4sOC5geC4peC5iOC4oeC5hgor4Lib4Liw4LmC4Lil4LiHCivguJvguLDguKfguLDguKvguKXguLMKK+C4m+C4sOC4p+C4sOC4q+C4peC4tOC5iOC4oQor4Lib4Liw4LmA4Liq4Lir4Lij4Lix4LiZ4Lit4Liy4LiB4LiHCivguJvguLDguKvguIfguLHguJoKK+C4m+C4sOC4q+C4h+C4seC4muC5hgor4Lib4Liw4Lir4LiZ4Lix4LiZCivguJvguLDguKvguKHguLHguJnguK3guLLguKvguKLguLUKK+C4m+C4sOC4q+C4peC4tOC5iOC4oQor4Lib4Liw4Lir4Lix4LiHCivguJvguLDguYDguKvguKXguLLguLAKK+C4m+C4sOC5gOC4q+C4peC4suC4sOC4m+C4sOC5geC4q+C4peC4sAor4Lib4Lix4LiBCivguJvguLHguIHguILguYwKK+C4m+C4seC4geC5gOC4m+C5ieC4sgor4Lib4Lix4LiB4Lip4LmMCivguJvguLHguIHguKnguLIKK+C4m+C4seC4geC4qeC4suC4quC4p+C4o+C4o+C4hOC5jAor4Lib4Lix4LiB4Lip4Li04LiZCivguJvguLHguIHguKnguLTguJrguJTguLUKK+C4m+C4seC4geC4qeC4tOC4oeC4suC4o+C4hAor4Lib4Lix4LiB4Lip4Li04Lij4Liy4LiKCivguJvguLHguIHguKnguLTguKrguLTguIfguKvguYwKK+C4m+C4seC4geC4qeC4tQor4Lib4Lix4LiE4Lir4LiwCivguJvguLHguIcKK+C4m+C4seC5iOC4hwor4Lib4Lix4LiH4Liq4Li44LmMCivguJvguLHguIfguKrguLjguIHguLjguKUKK+C4m+C4seC4iOC4iOC4seC4leC4leC4sAor4Lib4Lix4LiI4LiI4Lix4LiiCivguJvguLHguIjguIjguLLguKHguLTguJXguKMKK+C4m+C4seC4iOC4iOC4uOC4hOC4oeC4meC5jAor4Lib4Lix4LiI4LiI4Li44LiX4LiY4Lij4LiT4LmMCivguJvguLHguIjguIjguLjguJrguLHguJkKK+C4m+C4seC4iOC4iOC4ueC4qgor4Lib4Lix4LiI4LiI4Li54Lir4LiwCivguJvguLHguIjguYDguIjguIEKK+C4m+C4seC4iOC5gOC4iOC4geC4iuC4mQor4Lib4Lix4LiI4LmA4LiI4LiB4Lia4Li44LiE4LiE4LilCivguJvguLHguIjguYDguIjguIHguJ7guLjguJfguJjguLAKK+C4m+C4seC4iOC5gOC4iOC4geC5guC4nuC4mOC4tAor4Lib4Lix4LiI4LmA4LiI4LiB4Liq4Lih4Liy4LiX4Liy4LiZCivguJvguLHguIjguYLguIjguJvguIHguLLguKPguIHguLTguIgKK+C4m+C4seC4iOC4ieC4sgor4Lib4Lix4LiI4LiJ4Li04LihCivguJvguLHguIjguJbguKPguJPguYwKK+C4m+C4seC4iOC4meC4tuC4gQor4Lib4Lix4LiI4Lii4Liy4LiB4Liy4LijCivguJvguLHguIjguYDguKfguIHguILguJPguYwKK+C4m+C4seC4iuC4iuC4owor4Lib4Lix4LiK4LiK4Li44LiZCivguJvguLHguI3guIjguIEKK+C4m+C4seC4jeC4iOC4oQor4Lib4Lix4LiN4LiI4Lin4Li14Liq4LiV4Li0CivguJvguLHguI3guI3guLHguJXguLQKK+C4m+C4seC4jeC4jeC4sgor4Lib4Lix4LiN4Lir4LiyCivguJvguLHguI8KK+C4m+C4seC4j+C4meC4sAor4Lib4Lix4LiQ4Lii4Liy4Lin4Lix4LiVCivguJvguLHguJPguJHguKPguKvguLHguJXguJbguLUKK+C4m+C4seC4k+C4keC4uOC4m+C4peC4suC4qgor4Lib4Lix4LiT4LiT4LiwCivguJvguLHguJPguJPguLHguJXguJXguLTguIHguKfguLHguIrguIrguLAKK+C4m+C4seC4k+C4k+C4suC4qgor4Lib4Lix4LiT4LiT4Liy4Liq4LiB4LmMCivguJvguLHguJPguKPguKrguKEKK+C4m+C4seC4k+C4o+C4quC4tQor4Lib4Lix4LiT4Lir4Li0CivguJvguLHguJQKK+C4m+C4seC4lOC5hgor4Lib4Lix4LiU4LmE4LiW4LihCivguJvguLHguJXguITguLLguJQKK+C4m+C4seC4leC4iOC4seC4leC4luC4o+C4k+C5jAor4Lib4Lix4LiV4LiI4Lix4LiZ4LiV4LmMCivguJvguLHguJXguJXguLAKK+C4m+C4seC4leC4leC4sOC5gOC4peC4teC5iOC4ouC4mQor4Lib4Lix4LiV4LiV4Liy4LiZ4Li14LiB4LiwCivguJvguLHguJXguJXguLLguJnguLbguIEKK+C4m+C4seC4leC4leC4suC4oeC4uOC5guC4oeC4l+C4meC4sgor4Lib4Lix4LiV4LiV4Liy4LmA4Lin4Li14LiiCivguJvguLHguJXguJXguLQKK+C4m+C4seC4leC4leC4tOC4gQor4Lib4Lix4LiV4LiW4LijCivguJvguLHguJXguJbguLAKK+C4m+C4seC4leC4meC4tAor4Lib4Lix4LiV4LiZ4Li1CivguJvguLHguJXguKLguLHguKIKK+C4m+C4seC4leC4q+C4peC5iOC4sgor4Lib4Lix4LiW4Lie4Li1CivguJvguLHguJbguKfguLUKK+C4m+C4seC4mQor4Lib4Lix4LmI4LiZCivguJvguLHguYnguJkKK+C4m+C4seC5ieC4meC4iOC4seC5iOC4mQor4Lib4Lix4LiZ4LiI4Li44LmA4Lir4Lij4LmH4LiICivguJvguLHguJnguKXguKEKK+C4m+C4seC5ieC4meC4q+C4ouC4sgor4Lib4Lix4LmJ4LiZ4LmA4Lir4LiZ4LmI4LiHCivguJvguLHguJoKK+C4m+C4seC5iuC4mgor4Lib4Lix4Lib4Lic4Liy4Liq4LiwCivguJvguLHguJ7guJ7guLLguIrguJnguLAKK+C4m+C4seC4nuC4nuC4suC4iuC4meC4teC4ouC4geC4o+C4o+C4oQor4Lib4Lix4Lie4Lig4Liy4Lij4LiwCivguJvguLHguYrguKEKK+C4m+C4seC5iuC4oeC5geC4geC5h+C4qgor4Lib4Lix4LmK4Lih4LiZ4LmJ4Liz4Lih4Lix4LiZCivguJvguLHguKLguIHguLAKK+C4m+C4seC4ouC4geC4sgor4Lib4Lix4Lii4Lii4Li04LiB4LiyCivguJvguLHguYjguKcKK+C4m+C4seC4p+C5gOC4m+C4teC4ogor4Lib4Lix4LmJ4Lin4LmA4Lib4Li14LmJ4LiiCivguJvguLHguKjguIjguLTguKEKK+C4m+C4seC4qOC4leC4seC4mQor4Lib4Lix4Lio4LiV4Li5CivguJvguLHguKrguKrguLHguJfguJjguLQKK+C4m+C4seC4quC4quC4suC4p+C4sAor4Lib4Lix4Liq4Liq4Liy4Liq4LiwCivguJvguLIKK+C4m+C5iOC4sgor4Lib4LmJ4LiyCivguJvguYvguLIKK+C4m+C4suC4gQor4Lib4Liy4LiHCivguJvguYjguLLguIcKK+C4m+C5ieC4suC4hwor4Lib4LmJ4Liy4LiH4Lib4LmI4LiyCivguJvguLLguIjguJnguLAKK+C4m+C4suC4iOC4o+C4teC4ouC5jAor4Lib4Liy4LiI4Liy4Lij4Lii4LmMCivguJvguLLguIjguLTguJXguJXguLXguKLguYwKK+C4m+C4suC4iOC4teC4mQor4Lib4Liy4LiP4Lil4Li0CivguJvguLLguI/guLTguJrguJcKK+C4m+C4suC4j+C4tOC4muC4uOC4hOC4hOC4peC4tOC4gQor4Lib4Liy4LiP4Li04LmC4Lig4LiECivguJvguLLguI/guLTguKvguLLguKPguLTguKLguYwKK+C4m+C4suC4kOC4sAor4Lib4Liy4LiT4LiwCivguJvguLLguJPguLQKK+C4m+C4suC4k+C4tQor4Lib4Liy4LiUCivguJvguLLguJTguKvguLLguKcKK+C4m+C4suC4leC4tOC5guC4oeC4geC4guC5jAor4Lib4Liy4LiV4Li1CivguJvguLLguYDguJXguYrguLAKK+C4m+C4suC4lwor4Lib4Liy4LiX4LibCivguJvguLLguJfguYjguK3guIfguYLguIHguYsKK+C4m+C4suC4l+C4seC4h+C4geC4sgor4Lib4Liy4LiX4Liy4LiZCivguJvguLLguJfguLjguIHguLIKK+C4m+C4suC4mQor4Lib4LmI4Liy4LiZCivguJvguYnguLLguJkKK+C4m+C4suC4meC4lOC4hwor4Lib4LmJ4Liy4LiZ4Lil4LihCivguJvguLLguJnguLAKK+C4m+C4suC4meC4tOC5gOC4ouC4mQor4Lib4Liy4LiZ4Li14Lii4LiwCivguJvguYnguLLguJoKK+C4m+C5iuC4suC4mgor4Lib4Liy4Lib4Lit4Lir4Lii4Li14Liq4Lix4LiH4LiG4Liy4LiV4LiyCivguJvguLLguJ7guIjguJnguYwKK+C4m+C4suC4oQor4Lib4Liy4LmC4Lih4LiB4LiC4LmMCivguJvguYjguLLguKIKK+C4m+C5ieC4suC4ogor4Lib4Liy4Lii4Liy4LiqCivguJvguLLguKPguYzguIEKK+C4m+C4suC4o+C5jOC5gOC4geC4leC5jAor4Lib4Liy4Lij4LmM4LiV4Li1CivguJvguLLguKPguKHguLUKK+C4m+C4suC4o+C4qeC4k+C4tQor4Lib4Liy4Lij4Liy4LiK4Li04LiBCivguJvguLLguKPguLTguInguLHguJXguKMKK+C4m+C4suC4o+C4tOC4iuC4suC4lQor4Lib4Liy4Lij4Li04Liq4Li44LiX4LiY4Li04Lio4Li14LilCivguJvguLLguKPguLjguJvguJnguLAKK+C4m+C4suC4pQor4Lib4Liy4Lil4LmM4LihCivguJvguLLguKXguLTguYTguKXguKLguIHguYwKK+C4m+C4suC4peC4tQor4Lib4LmI4Liy4LinCivguJvguYrguLLguKcKK+C4m+C4suC4p+C5hgor4Lib4Liy4Lin4LiBCivguJvguLLguKfguIjguJnguLAKK+C4m+C4suC4p+C4suC4owor4Lib4Liy4Lip4Liy4LiTCivguJvguLLguKoKK+C4m+C4suC4quC4suC4kwor4Lib4Liy4Liq4Liy4LiX4Li04LiB4LiwCivguJvguLLguKvguJnguLHguJkKK+C4m+C4suC4q+C4teC5iAor4Lib4Liy4Lir4Li44LiTCivguJvguLMKK+C4m+C5ieC4swor4Lib4LmJ4Liz4LmG4LmA4Lib4LmL4Lit4LmGCivguJvguYnguLPguYDguJvguYnguK0KK+C4m+C5ieC4s+C5gOC4m+C5i+C4rQor4Lib4Li04LiB4LiZ4Li04LiBCivguJvguLTguIHguK3guLHguJ4KK+C4m+C4tOC4h+C4hOC4pQor4Lib4Li04LiH4LiE4Lil4LiwCivguJvguLTguIfguJvguK3guIcKK+C4m+C4tOC4juC4gQor4Lib4Li04LiP4LiQ4LiwCivguJvguLTguJDguLQKK+C4m+C4tOC4k+C4keC4sAor4Lib4Li04LiUCivguJvguLTguJTguYDguJXguYrguLLguLAKK+C4m+C4tOC4leC4leC4sAor4Lib4Li04LiV4LiyCivguJvguLTguJXguLgKK+C4m+C4tOC4leC4uOC4iOC4ieC4sgor4Lib4Li04LiV4Li44LilCivguJvguLTguJXguLjguKXguLIKK+C4m+C4tOC4leC4uOC4peC4suC4meC4tQor4Lib4Li04LmC4LiV4Lij4LmA4Lil4Li14Lii4LihCivguJvguLTguYjguJkKK+C4m+C4tOC5iuC4mQor4Lib4Li04LmK4LiZ4LmGCivguJvguLTguYjguJnguJXguK0KK+C4m+C4tOC5iOC4meC5guC4lQor4Lib4Li04Lib4Lic4Lil4Li1CivguJvguLTguYjguKEKK+C4m+C4tOC5ieC4oQor4Lib4Li04Lii4Lix4LiH4LiE4Li4CivguJvguLTguKPguLHguJnguK7guLIKK+C4m+C4tOC4peC4seC4meC4mOC4meC5jAor4Lib4Li04LmL4LinCivguJvguLTguKjguLLguIgKK+C4m+C4tOC4quC4seC4hwor4Lib4Li04LmE4LiqCivguJvguLTguKvguIEKK+C4m+C4tOC4q+C4peC4seC5iOC4mQor4Lib4Li1CivguJvguLXguYgKK+C4m+C4teC5iQor4Lib4Li14LmLCivguJvguLXguIEKK+C4m+C4teC4juC4geC4huC4owor4Lib4Li14LiQ4LiB4LiwCivguJvguLXguJDguLAKK+C4m+C4teC5iuC4lAor4Lib4Li14LiV4LiB4Liq4Li04LiTCivguJvguLXguJXguLQKK+C4m+C4teC4mQor4Lib4Li14LiaCivguJvguLXguYrguJoKK+C4m+C4teC5guC4m+C5igor4Lib4Li14Lio4Liy4LiICivguJvguLXguKwKK+C4m+C4teC4rOC4gQor4Lib4Li14Lis4LiyCivguJvguLbguIEKK+C4m+C4tuC4hwor4Lib4Li24LmI4LiHCivguJvguLbguYrguIcKK+C4m+C4tuC5i+C4hwor4Lib4Li24LmJ4LiUCivguJvguLbguYnguJkKK+C4m+C4tuC4oeC4m+C4t+C5ieC4rQor4Lib4Li34LiU4Lib4Li24LiHCivguJvguLfguJkKK+C4m+C4t+C4rQor4Lib4Li34LmJ4LitCivguJvguLfguYvguK0KK+C4m+C4uAor4Lib4Li44LmKCivguJvguLjguIEKK+C4m+C4uOC4geC4m+C4uOC4ogor4Lib4Li44LmK4LiB4Lil4Li44LiBCivguJvguLjguITguKXguLAKK+C4m+C4uOC5ieC4h+C4geC4teC5iwor4Lib4Li44LiH4LiE4LieCivguJvguLjguIfguITguKfguLAKK+C4m+C4uOC4h+C4peC4tOC4h+C4hOC5jAor4Lib4Li44LiH4Lil4Li24LiH4LiE4LmMCivguJvguLjguIjguInguLIKK+C4m+C4uOC4jwor4Lib4Li44LiT4LiR4Lij4Li04LiBCivguJvguLjguJQKK+C4m+C4uOC4leC4leC4sAor4Lib4Li44LiV4LiX4Liy4Lij4LiX4Liy4LiZCivguJvguLjguJbguLjguIrguJkKK+C4m+C4uOC4meC5gOC4l+C5iOC4suC4geC5i+C4hwor4Lib4Li44LiZ4LiZ4Liy4LiECivguJvguLjguJnguKDguJ4KK+C4m+C4uOC4meC4seC4muC4m+C4uOC4meC4seC4hwor4Lib4Li44LiZ4Lix4Lie4Liq4Li4CivguJvguLjguJoKK+C4m+C4uOC5iuC4mgor4Lib4Li44Lia4Lib4Lix4LiaCivguJvguLjguYrguJrguJvguLHguYrguJoKK+C4m+C4uOC4m+C4nOC4sAor4Lib4Li44Lib4LiwCivguJvguLjguJ7guJ7guLAKK+C4m+C4uOC5iOC4oQor4Lib4Li44LmJ4LihCivguJvguLjguYvguKEKK+C4m+C4uOC5iOC4oeC4m+C4peC4sgor4Lib4Li44LmJ4Lih4LmA4Lib4LmJ4LiHCivguJvguLjguYjguKHguYDguJvguLfguK3guIEKK+C4m+C4uOC5ieC4oeC5gOC4m+C4t+C4reC4gQor4Lib4Li44Lih4LiyCivguJvguLjguKIKK+C4m+C4uOC5ieC4ogor4Lib4Li44LmL4LiiCivguJvguLjguKMKK+C4m+C4uOC4o+C4k+C4sAor4Lib4Li44Lij4Lix4LiV4LiW4Li04Lih4LiX4Li04LioCivguJvguLjguKPguLLguJMKK+C4m+C4uOC4o+C4suC4k+C4sAor4Lib4Li44Lij4Li04Lih4LiX4Li04LioCivguJvguLjguKPguLTguKHguJ7guKPguKPguKnguLIKK+C4m+C4uOC4o+C4tOC4quC4oOC4suC4p+C4sAor4Lib4Li44Lij4Li04LmC4Liq4LiU4LihCivguJvguLjguYDguKPguIjguLLguKPguLTguIEKK+C4m+C4uOC5guC4o+C4q+C4tOC4lQor4Lib4Li44Lil4Lil4Li04LiH4LiE4LmMCivguJvguLjguKXguKXguLbguIfguITguYwKK+C4m+C4uOC4peC4tOC4meC4l+C5jAor4Lib4Li44Lil4Li5CivguJvguLjguYDguKXguIcKK+C4m+C4uOC5gOC4peC4h+C5hgor4Lib4Li44LmC4Lil4Lib4Li44LmA4LilCivguJvguLjguYHguKvguKXguLAKK+C4m+C4uOC4rOC4p+C4sAor4Lib4Li5CivguJvguLnguYgKK+C4m+C4ueC4iuC4geC4sAor4Lib4Li54LiK4LiZ4Li14Lii4LiwCivguJvguLnguIrguLIKK+C4m+C4ueC4iuC4tOC4lQor4Lib4Li54LiUCivguJvguLnguJTguIHguIHguKrguYnguKHguKHguK0KK+C4m+C4ueC4leC4tAor4Lib4Li54LiZCivguJvguLnguKEKK+C4m+C4ueC5ieC4ouC4ouC4teC5ieC4m+C4ueC5ieC4ouC4swor4Lib4Li54LmI4Lii4LmI4LiyCivguJvguLnguKPguLAKK+C4m+C4ueC4peC4uQor4Lib4Li54Lin4LiyCivguYDguJvguYkKK+C5gOC4m+C5iwor4LmA4Lib4LiBCivguYDguJvguYrguIEKK+C5gOC4m+C4geC4guC5jAor4LmA4Lib4LmI4LiHCivguYDguJvguYnguIcKK+C5gOC4m+C5iuC4hwor4LmA4Lib4LmL4LiHCivguYDguJvguYfguJQKK+C5gOC4m+C5h+C4lOC5hOC4i+C5ieC5hOC4geC5iOC4leC4reC4lOC4quC4peC4seC4geC4o+C4reC4lOC4q+C4oeC4ueC4quC4tQor4LmA4Lib4LmH4LiZCivguYDguJvguYfguJnguJXguYnguJkKK+C5gOC4m+C4ouC4ouC4suC4pQor4LmA4Lib4LijCivguYDguJvguKPguYfguIcKK+C5gOC4m+C4o+C4lQor4LmA4Lib4Lij4LihCivguYDguJvguKPguKIKK+C5gOC4m+C4o+C4ouC5hgor4LmA4Lib4Lij4LitCivguYDguJvguKPguK3guLAKK+C5gOC4m+C4o+C4sgor4LmA4Lib4Lij4Liy4LiwCivguYDguJvguKPguLLguLDguYHguJvguKPguLAKK+C5gOC4m+C4o+C4teC4ouC4hwor4LmA4Lib4Lij4Li14LmJ4Lii4LiHCivguYDguJvguKPguLXguKLguI0KK+C5gOC4m+C4o+C4teC4ouC4mgor4LmA4Lib4Lij4Li14LmI4Lii4LihCivguYDguJvguKPguLXguKLguKcKK+C5gOC4m+C4o+C4teC5ieC4ouC4pwor4LmA4Lib4Lij4Li14LmJ4Lii4Lin4Lir4Lin4Liy4LiZCivguYDguJvguKPguLXguKLguLAKK+C5gOC4m+C4o+C4teC5iuC4ouC4sAor4LmA4Lib4Lij4Li34LmI4Lit4LiHCivguYDguJvguKPguLfguYnguK3guKIKK+C5gOC4m+C4pQor4LmA4Lib4Lil4LmI4LiHCivguYDguJvguKXguKcKK+C5gOC4m+C4peC4sgor4LmA4Lib4Lil4LmI4LiyCivguYDguJvguKXguYnguLIKK+C5gOC4m+C4peC4suC4sAor4LmA4Lib4Lil4Li14LmJ4LiiCivguYDguJvguKXguLXguYjguKLguJkKK+C5gOC4m+C4peC4teC5iOC4ouC4oQor4LmA4Lib4Lil4Li14LmI4Lii4LinCivguYDguJvguKXguLXguYjguKLguKfguJTguLMKK+C5gOC4m+C4peC4t+C4reC4gQor4LmA4Lib4Lil4Li34Lit4LiB4LiB4Lij4Liw4LmA4LiX4Li14Lii4LihCivguYDguJvguKXguLfguK3guIcKK+C5gOC4m+C4peC4t+C5ieC4reC4hwor4LmA4Lib4Lil4Li34Lit4LiiCivguYDguJvguKgKK+C5gOC4m+C4qOC4pQor4LmA4Lib4Lio4Lix4LiqCivguYDguJvguKrguIHguLLguKMKK+C5gOC4m+C4quC4pQor4LmA4Lib4Liq4Li44LiNCivguYDguJvguKrguLjguYTguJPguKIKK+C5gOC4m+C5i+C4rQor4LmA4Lib4LmJ4Lit4LmA4Lii4LmJ4LitCivguYDguJvguK3guKPguYzguYDguIvguYfguJnguJXguYwKK+C5gOC4m+C5i+C4reC5gOC4q+C4peC4rQor4LmA4Lib4LiwCivguYDguJvguLDguJvguLAKK+C5gOC4m+C4sgor4LmA4Lib4LmI4LiyCivguYDguJvguYnguLIKK+C5gOC4m+C5iuC4sgor4LmA4Lib4LmL4LiyCivguYDguJvguYvguLLguK7guLfguYnguK0KK+C5gOC4m+C4suC4sAor4LmA4Lib4Liy4Liw4LmA4Lib4Li14LmK4Lii4LiwCivguYDguJvguLLguLDguYHguJvguLAKK+C5gOC4m+C4suC4sOC5gOC4q+C4peC4suC4sAor4LmA4Lib4Li04LiBCivguYDguJvguLTguIcKK+C5gOC4m+C4tOC4h+C5hgor4LmA4Lib4Li04LiH4Lih4Liy4LiHCivguYDguJvguLTguJQKK+C5gOC4m+C4tOC5iOC4mQor4LmA4Lib4Li04LiaCivguYDguJvguLTguYrguJoKK+C5gOC4m+C4tOC4muC4guC5ieC4suC4pwor4LmA4Lib4Li14LiiCivguYDguJvguLXguKLguIEKK+C5gOC4m+C4teC5iuC4ouC4gQor4LmA4Lib4Li14Lii4LmB4LiK4Lij4LmMCivguYDguJvguLXguYrguKLguJoKK+C5gOC4m+C4teC5iOC4ouC4oQor4LmA4Lib4Li14Lii4LinCivguYDguJvguLXguYnguKLguKcKK+C5gOC4m+C4teC4ouC4q+C4p+C4ogor4LmA4Lib4Li14Lii4LiwCivguYDguJvguLfguK3guIEKK+C5gOC4m+C4t+C5ieC4reC4mQor4LmB4LibCivguYHguJvguYnguIcKK+C5geC4m+C5i+C4hwor4LmB4Lib4LmJ4LiH4LmB4LiK4LmICivguYHguJvguJQKK+C5geC4m+C5iuC4lAor4LmB4Lib4LiX4Li5CivguYHguJvguYnguJkKK+C5geC4m+C4mgor4LmB4Lib4LmK4LiaCivguYHguJvguKEKK+C5geC4m+C4owor4LmB4Lib4Lij4LmLCivguYHguJvguKPguIEKK+C5geC4m+C4o+C4hwor4LmB4Lib4Lij4LmI4LiHCivguYHguJvguKPguIfguKXguYnguLLguIfguILguKfguJQKK+C5geC4m+C4o+C4h+C4q+C4ueC4q+C4meC4uQor4LmB4Lib4Lij4LmK4LiUCivguYHguJvguKPguYnguJkKK+C5geC4m+C4o+C5i+C4mQor4LmB4Lib4Lij4LmL4LmB4Lib4Lij4LmJ4LiZCivguYHguJvguKPguLAKK+C5geC4m+C4pQor4LmB4Lib4Lil4LmJCivguYHguJvguKXguIEKK+C5geC4m+C4peC4hwor4LmB4Lib4Lil4LiZCivguYHguJvguKXguJoKK+C5geC4m+C5ieC4pwor4LmB4Lib4LmK4LinCivguYHguJvguYvguKcKK+C5geC4m+C4sAor4LmB4Lib4LmK4LiwCivguYHguJvguYrguLDguIvguLAKK+C5guC4mwor4LmC4Lib4LmICivguYLguJvguYkKK+C5guC4m+C5igor4LmC4Lib4LiBCivguYLguJvguYrguIEKK+C5guC4m+C5iuC4geC5gOC4geC4reC4o+C5jAor4LmC4Lib4LiB4LiC4Lij4LiT4Li1CivguYLguJvguYDguIEKK+C5guC4m+C4hwor4LmC4Lib4LmI4LiHCivguYLguJvguYnguIcKK+C5guC4m+C5iOC4h+C4guC5iOC4suC4oQor4LmC4Lib4LiH4Lil4Liy4LiHCivguYLguJvguYjguIfguKfguLTguJQKK+C5guC4m+C5ieC4h+C5guC4q+C4ouC4hwor4LmC4Lib4LiQ4Lib4LiX4LiyCivguYLguJvguJTguIEKK+C5guC4m+C4leC4luC4geC4sAor4LmC4Lib4LiZCivguYLguJvguJsKK+C5guC4m+C5iuC4ouC4geC4seC5ieC4gQor4LmC4Lib4LmK4Lii4LmA4LiL4Li14Lii4LiZCivguYLguJvguKPguIcKK+C5guC4m+C4o+C5iOC4hwor4LmC4Lib4Lij4LiUCivguYLguJvguKPguJXguK3guJkKK+C5guC4m+C4o+C4leC4teC4mQor4LmC4Lib4Lij4LmA4LiV4Liq4LmB4LiV4LiZ4LiV4LmMCivguYLguJvguKPguYHguJfguKPguIHguYDguJXguK3guKPguYwKK+C5guC4m+C4o+C4ogor4LmC4Lib4Lij4Li14Liq4Lig4LiyCivguYLguJvguKXguYjguIcKK+C5guC4m+C4peC4tOC5guC4rQor4LmC4Lib4LmC4LilCivguYLguJvguKoKK+C5guC4m+C4quC4gQor4LmC4Lib4Liq4LiB4Liy4Lij4LmM4LiUCivguYLguJvguKrguYDguJXguK3guKPguYwKK+C5guC4m+C4quC4suC4p+C4meC4tOC4geC4oeC4ueC4pQor4LmC4Lib4LiwCivguYLguJvguYrguLAKK+C5guC4m+C5iuC4sOC4iOC5ieC4suC4ogor4LmE4LibCivguYTguJvguYgKK+C5hOC4m+C5iwor4LmE4Lib4LmL4LmA4Lib4LmLCivguYTguJvguKLguLLguKUKK+C5hOC4m+C4o+C4qeC4k+C4teC4ouC5jAor4LmE4Lib4Lil4LmICivguYTguJvguKjguLLguIgKK+C5hOC4m+C4qOC4suC4iOC4tQor4LicCivguJzguIEKK+C4nOC4geC5gOC4o+C4t+C4reC4gQor4Lic4LiB4LiyCivguJzguIHguLLguKIKK+C4nOC4hOC4oQor4Lic4LiHCivguJzguIfguIEKK+C4nOC4h+C4oQor4Lic4LiH4LijCivguJzguIfguK3guJkKK+C4nOC4h+C4reC4mgor4Lic4LiH4LiwCivguJzguIfguLLguJQKK+C4nOC4h+C5iOC4suC4mQor4Lic4LiI4LiHCivguJzguIjguI0KK+C4nOC4iOC4seC4jQor4Lic4LiI4Liy4LiZCivguJzguIrguLjguKEKK+C4nOC4jeC4sgor4Lic4LiT4LiwCivguJzguJPguLTguJkKK+C4nOC4lAor4Lic4LiU4Li44LiHCivguJzguYDguJTguLTguJkKK+C4nOC4l+C4oQor4Lic4LiZ4Lin4LiBCivguJzguJnguKfguIoKK+C4nOC4meC4seC4hwor4Lic4LiZ4Li04LiUCivguJzguJnguLbguIEKK+C4nOC4oQor4Lic4Lih4LiZ4Liy4LiHCivguJzguKLguK3guIcKK+C4nOC4ouC5iOC4s+C5gOC4nOC4ouC4rQor4Lic4Lij4Liq4Li4CivguJzguKPguLTguJUKK+C4nOC4o+C4uOC4nuC4gQor4Lic4LilCivguJzguKXguIEKK+C4nOC4peC4hOC4uOC4mQor4Lic4Lil4LiE4Li44LiZ4Li1CivguJzguKXguIcKK+C4nOC4peC4rQor4Lic4Lil4LmH4Lit4LiHCivguJzguKXguYfguK3guKIKK+C4nOC4peC4sAor4Lic4Lil4Lix4LiBCivguJzguKXguLHguJQKK+C4nOC4peC4seC4mgor4Lic4Lil4Lix4Lin4LiwCivguJzguKXguLIKK+C4nOC4peC4suC4jQor4Lic4Lil4Li0CivguJzguKXguLTguIHguLAKK+C4nOC4peC4tOC4lQor4Lic4Lil4Li04LiZCivguJzguKXguLUKK+C4nOC4peC4teC4nOC4peC4suC4oQor4Lic4Lil4Li24LiBCivguJzguKXguLbguYjguIcKK+C4nOC4peC4t+C4rQor4Lic4Lil4Li4CivguJzguKXguLjguIcKK+C4nOC4peC4uOC4lAor4Lic4Lil4Li44LiZCivguJzguKXguLjguJoKK+C4nOC4peC4uOC4ogor4Lic4Lil4Li5CivguJzguKfguLIKK+C4nOC4quC4oQor4Lic4Liq4Lih4LmA4Liq4Lij4LmH4LiICivguJzguKrguLLguJkKK+C4nOC4quC4suC4ogor4Lic4Liq4Liy4LijCivguJzguK3guIEKK+C4nOC4reC4hwor4Lic4LmI4Lit4LiHCivguJzguYjguK3guJkKK+C4nOC4reC4mgor4Lic4Lit4LihCivguJzguYfguK3guKIKK+C4nOC5iOC4reC4ogor4Lic4Lit4Lin4LiUCivguJzguK3guLnguJkKK+C4nOC4sAor4Lic4Liw4LmB4LiE4LiHCivguJzguLDguJTguLIKK+C4nOC4sOC4quC4sgor4Lic4Liw4Lir4Lih4Li1CivguJzguLDguK3guK3guJoKK+C4nOC4sOC4reC4t+C4lOC4nOC4sOC4reC4oQor4Lic4Lix4LiBCivguJzguLHguIHguYTguIEKK+C4nOC4seC4geC4guC4p+C4hwor4Lic4Lix4LiB4LiC4Li14LmJ4LiC4Lin4LiHCivguJzguLHguIHguYLguInguKEKK+C4nOC4seC4geC4iuC4tQor4Lic4Lix4LiB4LiV4Lia4LiK4Lin4LiyCivguJzguLHguIHguJfguK3guJTguKLguK3guJQKK+C4nOC4seC4geC4muC4uOC5ieC4hwor4Lic4Lix4LiB4Lia4Li44LmJ4LiH4LiC4Lix4LiZCivguJzguLHguIHguJrguLjguYnguIfguIjguLXguJkKK+C4nOC4seC4geC4muC4uOC5ieC4h+C4l+C4sOC5gOC4pQor4Lic4Lix4LiB4Lia4Li44LmJ4LiH4Lid4Lij4Lix4LmI4LiHCivguJzguLHguIHguJrguLjguYnguIfguKPguYnguKfguKEKK+C4nOC4seC4geC4muC4uOC5ieC4h+C4o+C4seC5ieC4pwor4Lic4Lix4LiB4LmA4Lia4Li14LmJ4LiiCivguJzguLHguIHguYDguJrguLXguYnguKLguYPguKvguI3guYgKK+C4nOC4seC4geC4m+C4peC4seC4hwor4Lic4Lix4LiB4Lib4Li44LmI4Lih4Lib4Lil4LiyCivguJzguLHguIHguYDguJzguYfguJQKK+C4nOC4seC4geC5hOC4nOC5iAor4Lic4Lix4LiB4Lij4Li54LmJ4LiZ4Lit4LiZCivguJzguLHguIHguYHguKfguYjguJkKK+C4nOC4seC4geC4quC4suC4mgor4Lic4Lix4LiB4Liq4Liy4Lih4Lir4Liy4LinCivguJzguLHguIHguYDguKrguLXguYnguKLguJkKK+C4nOC4seC4geC4q+C4meC4reC4gQor4Lic4Lix4LiB4Lir4LiZ4Lit4LiHCivguJzguLHguIHguKvguJnguLLguKEKK+C4nOC4seC4geC4q+C4p+C4suC4mQor4Lic4Lix4LiB4LmE4Lir4LihCivguJzguLHguIHguK3guLXguYHguJvguLAKK+C4nOC4seC4hOC4hOC4uOC4kwor4Lic4Lix4LiE4LiE4Li44LiT4Li1CivguJzguLHguIcKK+C4nOC4seC4lAor4Lic4Lix4LiZCivguJzguLHguJoKK+C4nOC4seC4peC4hOC4uOC4meC4tQor4Lic4Lix4LinCivguJzguLHguKfguLAKK+C4nOC4seC4quC4quC4sAor4Lic4LiyCivguJzguYjguLIKK+C4nOC5ieC4sgor4Lic4Liy4LiBCivguJzguLLguIcKK+C4nOC5iOC4suC4hwor4Lic4Liy4LiT4Li04LiVCivguJzguLLguJQKK+C4nOC4suC4leC4tAor4Lic4LmI4Liy4LiZCivguJzguLLguKEKK+C4nOC4suC4ogor4Lic4LmI4Liy4LiiCivguJzguYnguLLguKIKK+C4nOC4suC4pQor4Lic4Liy4Lil4LiE4Li44LiZCivguJzguLLguKXguLIKK+C4nOC5iOC4suC4pwor4Lic4Liy4Liq4Li44LiBCivguJzguYnguLLguK7guLLguJQKK+C4nOC4swor4Lic4LmJ4Liz4LmGCivguJzguLQKK+C4nOC4tOC4hwor4Lic4Li04LiUCivguJzguLTguJTguIEKK+C4nOC4tOC4lQor4Lic4Li04LiZCivguJzguLTguKcKK+C4nOC4tQor4Lic4Li14LiV4Lit4LiH4LmA4Lir4Lil4Li34Lit4LiHCivguJzguLXguYnguKfguYwKK+C4nOC4tuC4hwor4Lic4Li24LmI4LiHCivguJzguLbguYnguIcKK+C4nOC4t+C5iOC4mQor4Lic4Li4CivguJzguLjguJQKK+C4nOC4uOC4ouC4nOC4hwor4Lic4Li44Liq4Lij4Liy4LiE4LiyCivguJzguLnguYkKK+C4nOC4ueC4gQor4LmA4LicCivguYDguJzguIcKK+C5gOC4nOC4iuC4tOC4jQor4LmA4Lic4LmH4LiUCivguYDguJzguJTguYfguIgKK+C5gOC4nOC4lOC4tOC4oQor4LmA4Lic4LiU4Li14Lii4LiHCivguYDguJzguYjguJkKK+C5gOC4nOC4meC4tOC4gQor4LmA4Lic4LiiCivguYDguJzguKLguK0KK+C5gOC4nOC4ouC4tOC4mgor4LmA4Lic4LilCivguYDguJzguKXguYgKK+C5gOC4nOC4peC5iQor4LmA4Lic4Lil4LmH4LiUCivguYDguJzguKXguK0KK+C5gOC4nOC4peC4sAor4LmA4Lic4Lil4Liy4LiwCivguYDguJzguKXguLLguLDguYHguJzguKXguLAKK+C5gOC4nOC4peC4teC4ouC4hwor4LmA4Lic4Lit4LmA4Lij4LitCivguYDguJzguK3guLTguI0KK+C5gOC4nOC4reC4tOC4pQor4LmA4Lic4LiwCivguYDguJzguLIKK+C5gOC4nOC5iOC4sgor4LmA4Lic4LmJ4LiyCivguYDguJzguYnguLLguJzguIcKK+C5gOC4nOC4suC4sAor4LmA4Lic4Li04LmJ4LiHCivguYDguJzguLTguJkKK+C5gOC4nOC4tOC4meC5hgor4LmA4Lic4Li14Lii4LiZCivguYDguJzguLXguKLguLAKK+C5gOC4nOC4t+C4rQor4LmA4Lic4Li34LmI4LitCivguYDguJzguLfguK3guIEKK+C5gOC4nOC4t+C4reC4lAor4LmA4Lic4Li34Lit4LiZCivguYDguJzguLfguYjguK3guJkKK+C5geC4nOC5iAor4LmB4Lic4LiBCivguYHguJzguIcKK+C5geC4nOC4lAor4LmB4Lic4LiU4LmA4Lic4LiyCivguYHguJzguJTguYDguKrguLXguKLguIcKK+C5geC4nOC4mQor4LmB4Lic4LmI4LiZCivguYHguJzguJnguIEKK+C5geC4nOC4pQor4LmB4Lic4Lil4LiHCivguYHguJzguKXguYfguJoKK+C5geC4nOC4peC5h+C4muC5hgor4LmB4Lic4Lil4LmH4LinCivguYHguJzguKXguLAKK+C5geC4nOC5iOC4pwor4LmB4Lic4LmJ4LinCivguYLguJwKK+C5guC4nOC4hwor4LmC4Lic4LiP4LiQ4Lix4Lie4Lie4LiwCivguYLguJzguJkKK+C5guC4nOC4ogor4LmC4Lic4Lil4LmICivguYLguJzguKXguIHguYDguJzguKXguIEKK+C5guC4nOC4peC4sAor4LmC4Lic4Lit4LiZCivguYLguJzguLAKK+C5hOC4nAor4LmE4Lic4LmICivguYTguJzguJcKK+C5hOC4nOC5iOC4nOC4seC4hwor4LidCivguJ3guJkKK+C4neC4o+C4seC5iOC4hwor4Lid4Lij4Lix4LmI4LiH4LmA4Lio4LiqCivguJ3guKPguLHguYjguJkKK+C4neC5iOC4rQor4Lid4Lit4LiiCivguJ3guLHguIEKK+C4neC4seC4geC4neC5iOC4suC4ogor4Lid4Lix4LiB4LmD4Lid4LmICivguJ3guLHguIcKK+C4neC4seC5iOC4hwor4Lid4Lix4LiUCivguJ3guLHguJkKK+C4neC4sgor4Lid4LmI4LiyCivguJ3guYnguLIKK+C4neC4suC4gQor4Lid4Liy4LiHCivguJ3guLLguJQKK+C4neC4suC4mQor4Lid4Liy4LiiCivguJ3guYjguLLguKIKK+C4neC5ieC4suC4ogor4Lid4Li04LmI4LiZCivguJ3guLUKK+C4neC4teC5iAor4Lid4Li14LiBCivguJ3guLXguKvguKHguK3guJoKK+C4neC4tuC4gQor4Lid4Li34LiUCivguJ3guLfguJkKK+C4neC4uOC5iOC4mQor4Lid4Li54LiHCivguYDguJ3guYnguLIKK+C5gOC4neC4t+C4rQor4LmA4Lid4Li34Lit4LiBCivguYDguJ3guLfguK3guIcKK+C5gOC4neC4t+C5iOC4reC4mQor4LmB4Lid4LiBCivguYHguJ3guIcKK+C5geC4neC4lAor4LmD4Lid4LmICivguYTguJ0KK+C4ngor4Lie4LiBCivguJ7guIHguIjguKMKK+C4nuC4geC4meC4uOC5iOC4mQor4Lie4LiB4Lie4LmI4Liy4LiiCivguJ7guIHguKXguKEKK+C4nuC4geC4q+C4tOC4mQor4Lie4LiB4Lit4Liy4Lin4Li44LiYCivguJ7guIHguLIKK+C4nuC4geC4uOC4o+C4sAor4Lie4LiB4Li44LilCivguJ7guIcKK+C4nuC4h+C4qOC5jAor4Lie4LiI4LiZ4LmMCivguJ7guIjguJnguLIKK+C4nuC4iOC4meC4suC4o+C4lgor4Lie4LiI4LiZ4Li14Lii4LmMCivguJ7guIjguKHguLLguJkKK+C4nuC4iOC4tQor4Lie4LiK4Lij4LiwCivguJ7guI3guLIKK+C4nuC4jeC4suC4kwor4Lie4LiN4Liy4LmE4LifCivguJ7guI3guLLguKXguK0KK+C4nuC4k+C4tOC4igor4Lie4LiT4Li04LiK4Lii4LmMCivguJ7guJQKK+C4nuC4mOC4uQor4Lie4LiZCivguJ7guYjguJkKK+C4nuC5ieC4mQor4Lie4LiZ4LihCivguJ7guJnguK3guIcKK+C4nuC4meC4reC4oQor4Lie4LiZ4Lix4LiBCivguJ7guJnguLHguIHguIfguLLguJkKK+C4nuC4meC4seC4hwor4Lie4LiZ4Lix4LiU4LijCivguJ7guJnguLHguJkKK+C4nuC4meC4seC4qgor4Lie4LiZ4LiyCivguJ7guJnguLLguJQKK+C4nuC4meC4suC4meC4lOC4owor4Lie4LiZ4Liy4LiZ4LiV4LmMCivguJ7guJnguLLguKIKK+C4nuC4meC4tOC4lOC4sgor4Lie4LiZ4Li04LiVCivguJ7guJnguLXguKLguIEKK+C4nuC5gOC4meC4gQor4Lie4LmA4LiZ4LiI4LijCivguJ7guJoKK+C4nuC4muC4uQor4Lie4Lih4LmI4LiyCivguJ7guKLguIoKK+C4nuC4ouC4iuC4meC5jAor4Lie4Lii4LiV4Li04LmA4Lij4LiBCivguJ7guKLguJnguJXguYwKK+C4nuC4ouC4qAor4Lie4Lii4Lix4LiBCivguJ7guKLguLHguITguIbguYwKK+C4nuC4ouC4seC4iuC4meC5jAor4Lie4Lii4Lix4LiN4LiK4LiZ4LiwCivguJ7guKLguLHguJUKK+C4nuC4ouC4seC4mgor4Lie4Lii4Liy4LiB4Lij4LiT4LmMCivguJ7guKLguLLguIbguKPguYwKK+C4nuC4ouC4suC4h+C4hOC5jAor4Lie4Lii4Liy4LiY4Li0CivguJ7guKLguLLguJkKK+C4nuC4ouC4suC4muC4suC4lwor4Lie4Lii4Liy4Lia4Liy4LilCivguJ7guKLguLLguKEKK+C4nuC4ouC4suC4ouC4suC4oQor4Lie4Lii4Liy4LilCivguJ7guKLguLgKK+C4nuC4ouC4uOC4hwor4Lie4Lii4Li44Lir4LijCivguJ7guKLguLjguKvguLAKK+C4nuC4ouC4ueC5iOC4q+C5jAor4Lie4LmA4Lii4Li14LiiCivguJ7guKMKK+C4nuC4o+C4lQor4Lie4Lij4LihCivguJ7guKPguKHguITguJQKK+C4nuC4o+C4oeC5geC4lOC4mQor4Lie4Lij4Lih4Lih4Li0CivguJ7guKPguKPguIQKK+C4nuC4o+C4o+C4hOC5jAor4Lie4Lij4Lij4LiE4Liy4LiZ4LiV4LmMCivguJ7guKPguKPguJMKK+C4nuC4o+C4o+C4k+C4meC4sgor4Lie4Lij4Lij4LiT4Lij4Liy4LiiCivguJ7guKPguKPguJTguLbguIEKK+C4nuC4o+C4o+C4peC4suC4ogor4Lie4Lij4Lij4LipCivguJ7guKPguKPguYDguKvguLIKK+C4nuC4o+C4o+C5gOC4reC4tOC4jQor4Lie4Lij4Lin4LiH4LmA4Lie4Lij4Li14Lii4LiHCivguJ7guKPguKfguJQKK+C4nuC4o+C4p+C4mQor4Lie4Lij4Lir4LihCivguJ7guKPguK3guIEKK+C4nuC4o+C5iOC4reC4hwor4Lie4Lij4LmJ4Lit4LiHCivguJ7guKPguK3guJQKK+C4nuC4o+C5ieC4reC4oQor4Lie4Lij4LmI4Lit4Lih4Lie4Lij4LmJ4LitCivguJ7guKPguYjguK3guKIKK+C4nuC4o+C5ieC4reC4ogor4Lie4Lij4LiwCivguJ7guKPguLDguIjguLHguJnguJfguKPguYzguITguKPguLbguYjguIfguIvguLXguIEKK+C4nuC4o+C4sOC5gOC4iOC5ieC4suC4peC4reC4ouC4luC4suC4lAor4Lie4Lij4Liw4LmA4LiI4LmJ4Liy4Lir4LmJ4Liy4Lie4Lij4Liw4Lit4LiH4LiE4LmMCivguJ7guKPguLDguJnguK3guKEKK+C4nuC4o+C4sOC4meC4suC4lAor4Lie4Lij4Liw4Lii4Liy4LmA4Lil4LmH4Lia4LiE4Lij4Li44LiRCivguJ7guKPguLDguKLguLLguKfguLHguJkKK+C4nuC4o+C4sOC4peC4mgor4Lie4Lij4Liw4Lil4Li34LitCivguJ7guKPguLDguYHguKfguKcKK+C4nuC4o+C4sOC4q+C4sgor4Lie4Lij4Liw4Lir4Liy4LihCivguJ7guKPguLDguKvguLTguJQKK+C4nuC4o+C4sOC4ruC4suC4oQor4Lie4Lij4Lix4LiB4Lie4Lij4LmJ4Lit4LihCivguJ7guKPguLHguYjguIcKK+C4nuC4o+C4seC4lAor4Lie4Lij4Lix4LmI4LiZCivguJ7guKPguLHguJoKK+C4nuC4o+C5iOC4sgor4Lie4Lij4LmJ4LiyCivguJ7guKPguLLguIEKK+C4nuC4o+C4suC4hwor4Lie4Lij4LmI4Liy4LiHCivguJ7guKPguLLguJQKK+C4nuC4o+C4suC4mQor4Lie4Lij4Liy4LiiCivguJ7guKPguLLguKcKK+C4nuC4o+C4suC4q+C4oeC4k+C5jAor4Lie4Lij4Liy4Lir4Lih4LiT4Li1CivguJ7guKPguLLguKvguKHguLUKK+C4nuC4o+C4swor4Lie4Lij4LmI4LizCivguJ7guKPguYnguLMKK+C4nuC4o+C4s+C5hgor4Lie4Lij4Li04LiBCivguJ7guKPguLTguYnguIcKK+C4nuC4o+C4tOC4mgor4Lie4Lij4Li04Lia4LmE4Lir4LinCivguJ7guKPguLTguYnguKEKK+C4nuC4o+C4tuC4hwor4Lie4Lij4Li24LiZCivguJ7guKPguLbguJoKK+C4nuC4o+C4t+C4lAor4Lie4Lij4Li34LmJ4LitCivguJ7guKPguLgKK+C4nuC4o+C4uOC4gQor4Lie4Lij4Li44LmI4LiHCivguJ7guKPguLjguYjguIfguJnguLXguYkKK+C4nuC4o+C4uOC4mQor4Lie4Lij4Li5CivguJ7guKPguLnguJQKK+C4nuC4pOC4geC4qeC5jAor4Lie4Lik4LiSCivguJ7guKTguJLguLIKK+C4nuC4pOC4kuC4tAor4Lie4Lik4LiVCivguJ7guKTguJXguLQKK+C4nuC4pOC4l+C4mOC5jAor4Lie4Lik4LiX4LiY4Li04LmMCivguJ7guKTguJnguJXguYwKK+C4nuC4pOC4meC4l+C5jAor4Lie4Lik4LiZ4LiX4Liy4LijCivguJ7guKTguJnguJfguLTguYwKK+C4nuC4pOC4oOC4ueC4qeC4kwor4Lie4Lik4Lig4Li54Lip4Li04LiVCivguJ7guKTguKnguIjguLTguIEKK+C4nuC4pOC4qeC4oAor4Lie4Lik4Lir4Lix4Liq4Lia4LiU4Li1CivguJ7guKUKK+C4nuC4peC4geC4suC4ogor4Lie4Lil4LiB4Liy4LijCivguJ7guKXguILguLHguJnguJjguYwKK+C4nuC4peC4hOC4p+C4suC4oQor4Lie4Lil4LmA4LiX4LieCivguJ7guKXguJoKK+C4nuC4peC5gOC4oeC4t+C4reC4hwor4Lie4Lil4LmA4Lij4Li34Lit4LiZCivguJ7guKXguYLguKXguIEKK+C4nuC4peC4p+C4gQor4Lie4Lil4Lin4LiHCivguJ7guKXguKfguJTguIHguLTguJnguKXguLnguIEKK+C4nuC4peC4p+C4lOC5g+C4q+C4jeC5iAor4Lie4Lil4Lin4Lix4LiVCivguJ7guKXguKjguLLguKrguJXguKPguYwKK+C4nuC4peC4qOC4teC4geC4qeC4sgor4Lie4Lil4Liq4Li04LiH4Lir4LmMCivguJ7guKXguK0KK+C4nuC4peC5ieC4rQor4Lie4Lil4Lit4LiHCivguJ7guKXguK3guJQKK+C4nuC4peC4reC4mQor4Lie4Lil4Lit4Lih4LmB4Lie4Lil4LihCivguJ7guKXguK3guKIKK+C4nuC4peC5iOC4reC4ogor4Lie4Lil4LiwCivguJ7guKXguLDguIHguLPguKXguLHguIcKK+C4nuC4peC4sOC4nuC4peC4sgor4Lie4Lil4Lix4LmI4LiBCivguJ7guKXguLHguIcKK+C4nuC4peC4seC5iOC4hwor4Lie4Lil4Lix4LmJ4LiHCivguJ7guKXguLHguJQKK+C4nuC4peC4seC4mQor4Lie4Lil4Lix4LiaCivguJ7guKXguLHguJrguJ7guKXguLIKK+C4nuC4peC4seC4muC4nuC4peC4tuC4hwor4Lie4Lil4Lix4LmI4LinCivguJ7guKXguYjguLIKK+C4nuC4peC4suC4geC4owor4Lie4Lil4Liy4LiHCivguJ7guKXguLLguI0KK+C4nuC4peC4suC4lAor4Lie4Lil4Liy4LiU4Li04Lio4Lix4LiiCivguJ7guKXguLLguJjguLTguIHguLLguKMKK+C4nuC4peC5iOC4suC4mQor4Lie4Lil4Liy4LiZ4Liy4Lih4Lix4LiiCivguJ7guKXguLLguJnguLbguIEKK+C4nuC4peC4suC4oQor4Lie4Lil4LmI4Liy4LihCivguJ7guKXguLLguKIKK+C4nuC4peC4suC4ouC4oeC5ieC4sgor4Lie4Lil4Liy4Liq4LiV4Li04LiBCivguJ7guKXguLLguKrguKHguLIKK+C4nuC4peC4suC4q+C4gQor4Lie4Lil4LizCivguJ7guKXguYnguLMKK+C4nuC4peC4s+C4oOC4seC4hwor4Lie4Lil4Li0CivguJ7guKXguLTguIEKK+C4nuC4peC4tOC4nuC4seC4lwor4Lie4Lil4Li04LmJ4LinCivguJ7guKXguLUKK+C4nuC4peC4teC4oeC4uOC4ggor4Lie4Lil4Li4CivguJ7guKXguLjguIEKK+C4nuC4peC4uOC5iOC4gQor4Lie4Lil4Li44LiB4Lie4Lil4LmI4Liy4LiZCivguJ7guKXguLjguYjguIcKK+C4nuC4peC4uOC5ieC4mQor4Lie4Lil4Li44LmI4Lih4Lie4Lil4LmI4Liy4LihCivguJ7guKXguLjguYjguKIKK+C4nuC4peC4uOC5ieC4ogor4Lie4Lil4Li5CivguJ7guKXguLnguYHguIEKK+C4nuC4peC4ueC4hOC4suC4pwor4Lie4Lil4Li54LiV4LmJ4LiZCivguJ7guKXguLnguYLguJUKK+C4nuC4peC4ueC5guC4l+C5gOC4meC4teC4ouC4oQor4Lie4Lin4LiBCivguJ7guKfguIcKK+C4nuC5iOC4p+C4hwor4Lie4Lin4LiZCivguJ7guKfguKIKK+C4nuC4quC4gQor4Lie4Liq4LiZCivguJ7guKrguLgKK+C4nuC4quC4uOC4quC4h+C4geC4o+C4suC4meC4leC5jAor4Lie4Lir4LilCivguJ7guKvguLgKK+C4nuC4q+C4uOC4pQor4Lie4Lir4Li5CivguJ7guK0KK+C4nuC5iOC4rQor4Lie4LmJ4LitCivguJ7guK3guIEKK+C4nuC4reC4geC4nuC4ueC4mQor4Lie4Lit4LiE4LmA4LiB4LiV4Lia4Li44LiECivguJ7guYjguK3guITguYnguLLguJXguLXguYDguKHguLXguKIKK+C4nuC4reC4hwor4Lie4LmJ4Lit4LiHCivguJ7guK3guJkKK+C4nuC5ieC4reC4oQor4Lie4Lit4LmC4Lil4LmA4LiZ4Li14Lii4LihCivguJ7guLAKK+C4nuC5iOC4sAor4Lie4Liw4LiH4LiyCivguJ7guLDguIfguLLguJoKK+C4nuC4sOC4h+C4suC4muC5hgor4Lie4Liw4LiI4LiHCivguJ7guLDguJfguLPguKHguLDguKPguIcKK+C4nuC4sOC4meC4rQor4Lie4Liw4LmA4LiZ4LmJ4Liy4Lie4Liw4LiZ4LitCivguJ7guLDguYDguJnguYnguLLguJ7guLDguJnguLbguIcKK+C4nuC4sOC5gOC4meC4tOC4mQor4Lie4Liw4LmA4LiZ4Li14Lii4LiHCivguJ7guLDguYHguJnguIcKK+C4nuC4sOC5hOC4meC4ogor4Lie4Liw4Lie4Liy4LiZCivguJ7guLDguJ7guLTguIcKK+C4nuC4sOC5gOC4nuC4tOC4hwor4Lie4Liw4Lii4Lit4LihCivguJ7guLDguKLguLjguJ7guKLguLjguIcKK+C4nuC4sOC4ouC4ueC4hwor4Lie4Liw4Lii4Li54LiZCivguJ7guLDguYDguKLguLTguJoKK+C4nuC4sOC5gOC4ouC4tOC4muC5hgor4Lie4Liw4LmA4Lii4Li14LiiCivguJ7guLDguKPguLjguIfguJ7guLDguKPguLHguIcKK+C4nuC4sOC5gOC4peC4ogor4Lie4Liw4LmC4Lil4LmJCivguJ7guLDguYTguKUKK+C4nuC4sOC4p+C4hwor4Lie4Liw4Lin4Lix4LiB4Lie4Liw4Lin4LiZCivguJ7guLDguKfguLIKK+C4nuC4sOC4p+C5ieC4suC4nuC4sOC4p+C4seC4hwor4Lie4Liw4Lit4LiHCivguJ7guLDguK3guLLguIHguJ7guLDguK3guLMKK+C4nuC4sOC4reC4t+C4lOC4nuC4sOC4reC4oQor4Lie4Lix4LiBCivguJ7guLHguIHguJXguKPguYwKK+C4nuC4seC4geC4leC4o+C4sgor4Lie4Lix4LiB4LiV4LiyCivguJ7guLHguIHguYHguJ7guKcKK+C4nuC4seC4geC4owor4Lie4Lix4LiHCivguJ7guLHguIfguIHguLIKK+C4nuC4seC4h+C4hOC4sgor4Lie4Lix4LiH4LiH4LiyCivguJ7guLHguIfguJzguLfguJQKK+C4nuC4seC4h+C4nuC4p+C4ogor4Lie4Lix4LiH4Lie4Lit4LiZCivguJ7guLHguIfguJ7guLLguJkKK+C4nuC4seC4h+C4nuC4suC4mgor4Lie4Lix4LiH4LmA4Lie4LiiCivguJ7guLHguIfguKXguLLguIcKK+C4nuC4seC4igor4Lie4Lix4LiK4LiZ4Li1CivguJ7guLHguIrguKMKK+C4nuC4seC4jeC4iOC4gQor4Lie4Lix4LiN4LiI4LiZ4LmMCivguJ7guLHguJLguIHguLUKK+C4nuC4seC4kuC4meC4sAor4Lie4Lix4LiS4LiZ4LiyCivguJ7guLHguJQKK+C4nuC4seC4lOC4iuC4sgor4Lie4Lix4LiU4LiL4Liy4LiUCivguJ7guLHguJTguJTguLbguIfguKrguYwKK+C4nuC4seC4lOC5geC4nuC4pwor4Lie4Lix4LiU4Lir4Lil4Lin4LiHCivguJ7guLHguJXguJXguLTguIfguKrguLAKK+C4nuC4seC4leC4owor4Lie4Lix4LiX4LiY4LmMCivguJ7guLHguJfguJjguKLguLIKK+C4nuC4seC4l+C4owor4Lie4Lix4LiZCivguJ7guLHguJnguIfguLkKK+C4nuC4seC4meC4iOC4swor4Lie4Lix4LiZ4LmE4LiJ4LiZCivguJ7guLHguJnguJXguLHguJkKK+C4nuC4seC4meC4leC4uQor4Lie4Lix4LiZ4LiX4Liy4LiHCivguJ7guLHguJnguJjguYwKK+C4nuC4seC4meC4mOC4meC4sAor4Lie4Lix4LiZ4LiY4LiZ4LizCivguJ7guLHguJnguJjguLAKK+C4nuC4seC4meC4mOC4uAor4Lie4Lix4LiZ4LiY4Li44LmMCivguJ7guLHguJnguKXguK3guIEKK+C4nuC4seC4meC4peC4suC4ogor4Lie4Lix4LiZ4Lil4LizCivguJ7guLHguJnguKXguLbguIEKK+C4nuC4seC4meC4peC4tuC4geC4nuC4seC4meC4peC4t+C4rQor4Lie4Lix4LiZ4LmA4Lil4Li04LioCivguJ7guLHguJnguYDguK3guLTguI0KK+C4nuC4seC4mgor4Lie4Lix4Lia4Lic4LmI4LiyCivguJ7guLHguJ8KK+C4nuC4seC4peC4peC4oAor4Lie4Lix4Lil4Lin4Lix4LiZCivguJ7guLHguKcKK+C4nuC4seC4p+C4sAor4Lie4Lix4Lio4LiU4Li1CivguJ7guLHguKrguJTguLgKK+C4nuC4seC4quC5gOC4lOC4sgor4Lie4Lix4Liq4LiV4Lij4LmMCivguJ7guLHguKrguJbguLLguJkKK+C4nuC4sgor4Lie4Liy4LiBCivguJ7guLLguIHguYDguJ7guLXguKLguKMKK+C4nuC4suC4geC4ouC5jAor4Lie4Liy4LiHCivguJ7guYjguLLguIcKK+C4nuC4suC4iuC4tQor4Lie4Liy4LiTCivguJ7guLLguJPguLTguIoKK+C4nuC4suC4k+C4tOC4iuC4ouC5jAor4Lie4Liy4LiT4Li04LiZ4Li1CivguJ7guLLguJPguLUKK+C4nuC4suC4lAor4Lie4Liy4LiU4LmE4LiJ4LiZCivguJ7guLLguJUKK+C4nuC4suC4lwor4Lie4Liy4LiX4Lii4LmMCivguJ7guLLguJgKK+C4nuC4suC4mOC4sgor4Lie4Liy4LiZCivguJ7guYjguLLguJkKK+C4nuC4suC4meC4owor4Lie4Liy4LihCivguJ7guLLguKIKK+C4nuC5iOC4suC4ogor4Lie4Liy4Lii4Lih4LmJ4LiyCivguJ7guLLguKLguLHguJ4KK+C4nuC4suC4ouC4uAor4Lie4Liy4Lij4LmM4LmA4LiL4LiBCivguJ7guLLguKPguJMKK+C4nuC4suC4o+C4k+C4sAor4Lie4Liy4Lij4LmM4LiV4LmA4LiZ4Lit4Lij4LmMCivguJ7guLLguKPguLIKK+C4nuC4suC4o+C4suC4n+C4tOC4mQor4Lie4Liy4LilCivguJ7guLLguKXguLIKK+C4nuC4suC4peC4tQor4Lie4Liy4Lil4Li14Lir4Lil4Liy4Lii4Lir4LiZ4LmJ4LiyCivguJ7guLLguKXguLjguIEKK+C4nuC4suC5guC4pQor4Lie4Liy4LmE4LilCivguJ7guLLguKoKK+C4nuC4suC4quC4meC5jAor4Lie4Liy4Liq4LiZ4LiyCivguJ7guLLguKrguLjguIHguKPguLUKK+C4nuC5iOC4suC4q+C5jAor4Lie4Liy4Lir4LiZ4LiwCivguJ7guLLguKvguLAKK+C4nuC4suC4q+C4sgor4Lie4Liy4Lir4Li04Lij4LiB4LiwCivguJ7guLLguKvguLTguKPguLAKK+C4nuC4suC4q+C4uAor4Lie4Liy4LmA4Lir4Lij4LiUCivguJ7guLLguYDguKvguLXguKLguKMKK+C4nuC4suC4rAor4Lie4Liy4Lis4Lir4LiwCivguJ7guLLguKzguLAKK+C4nuC4swor4Lie4Liz4LmG4Lie4Li24Lih4LmGCivguJ7guLPguJnguLHguIEKK+C4nuC4s+C4nuC4p+C4gQor4Lie4Liz4Lie4Li24LihCivguJ7guLPguKXguLIKK+C4nuC4tOC4geC4pQor4Lie4Li04LiB4Liq4Li04LiVCivguJ7guLTguIHguLHguJQKK+C4nuC4tOC4geC4seC4leC4tAor4Lie4Li04LiB4Lix4LiZCivguJ7guLTguIHguLLguKMKK+C4nuC4tOC4geC4uOC4pQor4Lie4Li04LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguJ7guLTguIbguJnguYwKK+C4nuC4tOC4huC5gOC4meC4qAor4Lie4Li04LiG4LmA4LiZ4Lio4Lin4LijCivguJ7guLTguIbguLLguJUKK+C4nuC4tOC4hwor4Lie4Li04LiI4LilCivguJ7guLTguIjguLHguKIKK+C4nuC4tOC4iOC4suC4owor4Lie4Li04LiI4Liy4Lij4LiT4LmMCivguJ7guLTguIjguLLguKPguJPguLIKK+C4nuC4tOC4iOC4tOC4lQor4Lie4Li04LiI4Li04LiV4LijCivguJ7guLTguIrguI3guYwKK+C4nuC4tOC4iuC4ogor4Lie4Li04LiK4Lix4LiiCivguJ7guLTguIrguLLguJkKK+C4nuC4tOC4iuC4tOC4lQor4Lie4Li04LmA4LiK4LiQCivguJ7guLTguYDguIrguLXguKLguKMKK+C4nuC4tOC4keC4ueC4o+C4ouC5jAor4Lie4Li04LiTCivguJ7guLTguJTguJfguLnguKUKK+C4nuC4tOC4lOC4o+C4gQor4Lie4Li04LiU4Liy4LiZCivguJ7guLTguYLguJTguKMKK+C4nuC4tOC4leC4owor4Lie4Li04LiW4Li1CivguJ7guLTguJbguLXguJ7guLTguJbguLHguJkKK+C4nuC4tOC4l+C4ouC5jAor4Lie4Li04LiX4Lii4LiyCivguJ7guLTguJfguLHguIHguKnguYwKK+C4nuC4tOC4l+C4seC4geC4qeC5jOC4quC4seC4meC4leC4tAor4Lie4Li04LiX4Li54LijCivguJ7guLTguYDguJfguKgKK+C4nuC4tOC4mOC4suC4mQor4Lie4Li04LiY4Li1CivguJ7guLTguJjguLgKK+C4nuC4tOC4mOC4uOC4owor4Lie4Li04LmC4LiY4LmICivguJ7guLTguJnguJfguLgKK+C4nuC4tOC4meC4nuC4hwor4Lie4Li04LmI4LiZ4Lie4Lix4LmI4LiHCivguJ7guLTguJnguK3guJrguJ7guLTguYDguJfguLIKK+C4nuC4tOC4meC4seC4ogor4Lie4Li04LiZ4Liy4LioCivguJ7guLTguJnguLTguIgKK+C4nuC4tOC4meC4tOC4lQor4Lie4Li04LiZ4Li04LioCivguJ7guLTguJnguLTguKjguIjguLHguKIKK+C4nuC4tOC5gOC4meC4lQor4Lie4Li04Lia4Lix4LiV4Li0CivguJ7guLTguJrguLLguIEKK+C4nuC4tOC4muC4uOC4pQor4Lie4Li04Lia4Li54LilCivguJ7guLTguJvguKPguLTguJUKK+C4nuC4tOC4m+C4peC4suC4qAor4Lie4Li04Lib4Lix4Liq4Liq4LiZ4LiyCivguJ7guLTguJ7guKPguKPguJgKK+C4nuC4tOC4nuC4o+C4o+C4mOC4meC5jAor4Lie4Li04Lie4Lix4LiB4Lie4Li04Lie4LmI4Lin4LiZCivguJ7guLTguJ7guLHguJIKK+C4nuC4tOC4nuC4seC4kuC4meC5jAor4Lie4Li04Lie4Liy4LiB4Lip4LmMCivguJ7guLTguJ7guLLguIHguKnguLIKK+C4nuC4tOC4nuC4suC4lwor4Lie4Li04Lie4Li04LiYCivguJ7guLTguKDguJ4KK+C4nuC4tOC4oOC4seC4igor4Lie4Li04Lig4Liy4LiECivguJ7guLTguKDguLnguKnguJPguLAKK+C4nuC4tOC5gOC4oOC4gQor4Lie4Li04Lih4Lie4LmMCivguJ7guLTguKHguJ7guIHguLLguKPguLHguIcKK+C4nuC4tOC4oeC4nuC4sgor4Lie4Li04Lih4LmC4Lie4Lir4LiZ4LiwCivguJ7guLTguKHguKUKK+C4nuC4tOC4oeC5gOC4quC4mQor4Lie4Li04Lih4Liy4LiZCivguJ7guLTguKHguLjguIIKK+C4nuC4tOC5guC4oeC4geC4guC5jAor4Lie4Li04LmC4Lih4LiB4Lip4LmMCivguJ7guLTguYLguKLguIHguJ7guLTguYDguIHguJkKK+C4nuC4tOC5guC4ouC4hAor4Lie4Li04LijCivguJ7guLTguKPguK3guJQKK+C4nuC4tOC4o+C4suC4geC4pQor4Lie4Li04Lij4Liy4LiaCivguJ7guLTguKPguLLguKEKK+C4nuC4tOC4o+C4suC4peC4seC4ogor4Lie4Li04Lij4Li04Lii4LiwCivguJ7guLTguKPguLXguYnguJ7guLTguYTguKMKK+C4nuC4tOC4o+C4uOC4kwor4Lie4Li04Lij4Li44LiYCivguJ7guLTguKPguLjguKzguKvguYwKK+C4nuC4tOC5gOC4o+C4meC4l+C4o+C5jAor4Lie4Li04LmA4Lij4Liy4LiwCivguJ7guLTguYLguKPguJgKK+C4nuC4tOC5guC4o+C4mOC4meC4sAor4Lie4Li04LmE4LijCivguJ7guLTguKXguLHguIfguIHguLLguKrguLIKK+C4nuC4tOC4peC4suC4mwor4Lie4Li04Lil4Liy4Lil4LiqCivguJ7guLTguKXguLLguKoKK+C4nuC4tOC4peC4tOC4m+C4lOC4sgor4Lie4Li04LmC4Lil4LilCivguJ7guLTguYTguKUKK+C4nuC4tOC4qAor4Lie4Li04Lio4Lin4LiHCivguJ7guLTguKjguKfguLLguKoKK+C4nuC4tOC4qOC4suC4pQor4Lie4Li04Lio4Li44LiX4LiY4Li04LmMCivguJ7guLTguYDguKjguKkKK+C4nuC4tOC4qQor4Lie4Li04Lip4LiQ4Liy4LiZCivguJ7guLTguKnguJnguLLguKjguJnguYwKK+C4nuC4tOC4quC4lOC4suC4owor4Lie4Li04Liq4Lih4LijCivguJ7guLTguKrguKHguLHguKIKK+C4nuC4tOC4quC4seC4hwor4Lie4Li04Liq4Lix4LiKCivguJ7guLTguKrguLHguI3guI3guLUKK+C4nuC4tOC4quC4seC4ogor4Lie4Li04Liq4Li04LiQCivguJ7guLTguKrguLjguJfguJjguLTguYwKK+C4nuC4tOC4quC4ueC4iOC4meC5jAor4Lie4Li04Lir4LiECivguJ7guLTguKvguLLguKMKK+C4nuC4tOC4rOC4suC4owor4Lie4Li1CivguJ7guLXguYgKK+C4nuC4teC5iQor4Lie4Li14LiKCivguJ7guLXguIrguITguJPguLTguJUKK+C4nuC4teC5ieC5guC4nuC5iQor4Lie4Li14Lij4Liw4Lih4Li04LiUCivguJ7guLbguIcKK+C4nuC4tuC5iOC4hwor4Lie4Li24LmI4LiaCivguJ7guLbguKEKK+C4nuC4tuC4oeC4nuC4swor4Lie4Li34LiKCivguJ7guLfguJQKK+C4nuC4t+C5ieC4mQor4Lie4Li4CivguJ7guLjguIEKK+C4nuC4uOC4geC4suC4oQor4Lie4Li44LiHCivguJ7guLjguYjguIcKK+C4nuC4uOC4h+C5geC4gQor4Lie4Li44LiH4LiI4LiHCivguJ7guLjguIfguJTguK0KK+C4nuC4uOC4h+C4l+C4sOC4peC4suC4ogor4Lie4Li44LiH4Lib4Lil4LiyCivguJ7guLjguJIKK+C4nuC4uOC4kuC4tAor4Lie4Li44LiUCivguJ7guLjguJTguJXguLLguJkKK+C4nuC4uOC4l+C4mAor4Lie4Li44LiX4LiY4LiK4Liy4LiUCivguJ7guLjguJfguJjguKPguLHguIHguKnguLIKK+C4nuC4uOC4l+C4mOC4sAor4Lie4Li44LiX4LiY4Li0CivguJ7guLjguJfguYLguJjguYgKK+C4nuC4uOC4l+C4o+C4sgor4Lie4Li44LiYCivguJ7guLjguYjguKEKK+C4nuC4uOC4oeC5gOC4o+C4teC4ouC4hwor4Lie4Li44LmJ4LiiCivguJ7guLkKK+C4nuC4ueC5iAor4Lie4Li54LiB4Liy4LihCivguJ7guLnguJQKK+C4nuC4ueC4mQor4Lie4Li54LmJ4LiZCivguYDguJ4KK+C5gOC4nuC5h+C4gQor4LmA4Lie4LiB4LiyCivguYDguJ7guITguLAKK+C5gOC4nuC5h+C4hwor4LmA4Lie4LmI4LiHCivguYDguJ7guYfguIgKK+C5gOC4nuC4iuC4ieC4peC4ueC4geC4o+C4o+C4oQor4LmA4Lie4LiK4LiM4LiG4Liy4LiVCivguYDguJ7guIrguKMKK+C5gOC4nuC4iuC4o+C4geC4peC4seC4mgor4LmA4Lie4LiK4Lij4LiU4LiyCivguYDguJ7guIrguKPguJnguLTguKXguIjguLTguJnguJTguLIKK+C5gOC4nuC4iuC4o+C4m+C4o+C4suC4k+C4tQor4LmA4Lie4LiK4Lij4Lik4LiB4Lip4LmMCivguYDguJ7guIrguKPguKrguLHguIfguIbguLLguJUKK+C5gOC4nuC4iuC4o+C4q+C4peC4teC4gQor4LmA4Lie4LiK4Lij4Lir4Li24LiHCivguYDguJ7guIrguKPguLLguKLguLjguJgKK+C5gOC4nuC5h+C4jQor4LmA4Lie4LiR4Li54Lij4Li04Lii4LmMCivguYDguJ7guJPguLUKK+C5gOC4nuC5h+C4lOC4l+C4ueC4pQor4LmA4Lie4LiU4Liy4LiZCivguYDguJ7guJXguKMKK+C5gOC4nuC4lwor4LmA4Lie4LiX4LiZ4LiyCivguYDguJ7guJfguKLguLLguJjguKMKK+C5gOC4nuC4l+C4suC4ogor4LmA4Lie4LiX4Li44Lia4Liy4LiiCivguYDguJ7guYLguJfguJrguLLguKIKK+C5gOC4nuC4meC4geC4p+C4tOC4mQor4LmA4Lie4LmI4LiZ4Lie4LmI4Liy4LiZCivguYDguJ7guJnguLXguKLguJQKK+C5gOC4nuC5ieC4ogor4LmA4Lie4Lij4LiHCivguYDguJ7guKPguIvguLXguYLguK3guJTguLXguYDguKHguLXguKLguKEKK+C5gOC4nuC4o+C4sgor4LmA4Lie4Lij4Liy4LiwCivguYDguJ7guKPguLTguJQKK+C5gOC4nuC4o+C4tOC4qAor4LmA4Lie4Lij4Li14Lii4LiBCivguYDguJ7guKPguLXguKLguIcKK+C5gOC4nuC4o+C4teC4ouC4mgor4LmA4Lie4Lij4Li14LmJ4Lii4LihCivguYDguJ7guKPguLXguKLguKcKK+C5gOC4nuC4o+C4t+C5iOC4rQor4LmA4Lie4Lij4Li34Lit4LiHCivguYDguJ7guKUKK+C5gOC4nuC4peC4hwor4LmA4Lie4Lil4LmH4LiUCivguYDguJ7guKXguYnguYLguJ7guKXguYkKK+C5gOC4nuC4peC4sgor4LmA4Lie4Lil4Liy4LiwCivguYDguJ7guKXguLLguLDguYHguJ7guKXguLAKK+C5gOC4nuC4peC4tOC4hwor4LmA4Lie4Lil4Li04LiU4LmA4Lie4Lil4Li04LiZCivguYDguJ7guKXguLTguJkKK+C5gOC4nuC4peC4teC4ogor4LmA4Lie4Lil4Li14LmJ4LiiCivguYDguJ7guKXguLXguYjguKLguIcKK+C5gOC4nuC4qAor4LmA4Lie4Lio4Lii4Lix4LiZ4LiU4LijCivguYDguJ7guKoKK+C5gOC4nuC4quC4peC4suC4lAor4LmA4Lie4LmI4LitCivguYDguJ7guYnguK0KK+C5gOC4nuC4reC4tOC4jQor4LmA4Lie4LiwCivguYDguJ7guLTguIEKK+C5gOC4nuC4tOC4geC5gOC4ieC4ogor4LmA4Lie4Li04LiHCivguYDguJ7guLTguYjguIcKK+C5gOC4nuC4tOC4lOC5gOC4nuC5ieC4ogor4LmA4Lie4Li04LmI4LihCivguYDguJ7guLXguYnguKIKK+C5gOC4nuC4teC4ouC4hwor4LmA4Lie4Li14LmJ4Lii4LiHCivguYDguJ7guLXguKLguIfguK3guK0KK+C5gOC4nuC4teC4ouC4iuC4meC5jAor4LmA4Lie4Li14Lii4LiZCivguYDguJ7guLXguYnguKLguJkKK+C5gOC4nuC4teC4ouC4mgor4LmA4Lie4Li14Lii4LijCivguYDguJ7guLfguYjguK0KK+C5gOC4nuC4t+C5iOC4reC4mQor4LmB4LieCivguYHguJ7guYkKK+C5geC4nuC4hwor4LmB4Lie4LmI4LiHCivguYHguJ7guIfguJ7guKfguKIKK+C5geC4nuC4h+C4nuC4p+C4ouC4neC4o+C4seC5iOC4hwor4LmB4Lie4LmH4LiH4LmB4Lie4LinCivguYHguJ7guJfguKLguYwKK+C5geC4nuC4l+C4ouC4sgor4LmB4Lie4LiZCivguYHguJ7guYjguJkKK+C5geC4nuC4meC4gQor4LmB4Lie4LiZ4LiH4LmA4LiK4Li04LiHCivguYHguJ7guJnguJTguLIKK+C5geC4nuC4owor4LmB4Lie4Lij4LmICivguYHguJ7guKPguIEKK+C5geC4nuC4o+C5iOC4hwor4LmB4Lie4Lij4LinCivguYHguJ7guKPguYnguKcKK+C5geC4nuC4peC4hwor4LmB4Lie4Lil4LiX4Li04LiZ4Lix4LihCivguYHguJ7guKXguKEKK+C5geC4nuC4peC5gOC4peC5gOC4lOC4teC4ouC4oQor4LmB4Lie4Lil4LiwCivguYHguJ7guKXguLDguYLguKXguKEKK+C5geC4nuC4pwor4LmB4Lie4LmJ4LinCivguYHguJ7guKjguKLguYwKK+C5geC4nuC4qOC4ouC4sgor4LmB4Lie4LiwCivguYHguJ7guLDguYLguKXguKEKK+C5guC4ngor4LmC4Lie4LiBCivguYLguJ7guIHguJ7guLLguKIKK+C5guC4nuC4hwor4LmC4Lie4LiH4Lie4Liy4LiHCivguYLguJ7guIrguIzguIfguITguYwKK+C5guC4nuC4i+C4tOC4leC4o+C4reC4mQor4LmC4Lie4LiUCivguYLguJ7guYHguJfguKrguYDguIvguLXguKLguKEKK+C5guC4nuC4mAor4LmC4Lie4LiY4Li04LmMCivguYLguJ7guJkKK+C5guC4nuC5ieC4mQor4LmC4Lie4LiZ4LiX4Liw4LiZ4LiyCivguYLguJ7guJrguLLguKIKK+C5guC4nuC4nOC4seC4mQor4LmC4Lie4LiiCivguYLguJ7guKLguKEKK+C5guC4nuC4ouC4oeC4seC4mQor4LmC4Lie4Lii4Lih4Liy4LiZCivguYLguJ7guKPguIEKK+C5guC4nuC4o+C4hwor4LmC4Lie4Lij4LmC4LiX4LmB4Lit4LiB4LiX4Li04LmA4LiZ4Li14Lii4LihCivguYLguJ7guKPguKHguLXguYDguJfguLXguKLguKEKK+C5guC4nuC4o+C4sOC4lOC4gQor4LmC4Lie4Lil4LmICivguYLguJ7guKXguIcKK+C5guC4nuC4peC5iOC4hwor4LmC4Lie4Lil4LmJ4LiHCivguYLguJ7guKXguJkKK+C5guC4nuC4peC5ieC5gOC4nuC4peC5iQor4LmC4Lie4Lil4LiwCivguYLguJ7guKrguJ4KK+C5hOC4ngor4LmE4Lie4LmICivguYTguJ7guIjguLTguJXguKMKK+C5hOC4nuC4iuC4mQor4LmE4Lie4LiK4Lii4LiZ4LiV4LmMCivguYTguJ7guJHguLnguKPguKLguYwKK+C5hOC4nuC5guC4lOC4owor4LmE4Lie4LiX4Li1CivguYTguJ7guJrguLnguKXguKLguYwKK+C5hOC4nuC4nuC4o+C4o+C4kwor4LmE4Lie4LmA4Lie4Li04LiUCivguYTguJ7guKHguK3guIEKK+C5hOC4nuC4oeC5ieC4sgor4LmE4Lie4LijCivguYTguJ7guKPguYgKK+C5hOC4nuC4o+C4iOC4tOC4leC4owor4LmE4Lie4Lij4LiK4LiZCivguYTguJ7guKPguIrguKLguJnguJXguYwKK+C5hOC4nuC4o+C4keC4ueC4o+C4ouC5jAor4LmE4Lie4Lij4LiX4Li1CivguYTguJ7guKPguJrguLnguKXguKLguYwKK+C5hOC4nuC4o+C5gOC4o+C4suC4sAor4LmE4Lie4Lij4Liq4Liy4Lih4LiB4LitCivguYTguJ7guKPguLHguIoKK+C5hOC4nuC4o+C4swor4LmE4Lie4Lij4Li04LiZCivguYTguJ7guKPguLUKK+C5hOC4nuC4o+C4uQor4LmE4Lie4LmA4Lij4Liy4LiwCivguYTguJ7guYLguKPguIjguJnguYwKK+C5hOC4nuC4pQor4LmE4Lie4Lil4LmICivguYTguJ7guKjguLLguIIKK+C5hOC4nuC4qOC4suC4pQor4LmE4Lie4LmA4Lio4LipCivguYTguJ7guKrguJ4KK+C5hOC4nuC4quC4tOC4kAor4LmE4Lie4Lir4Liy4LijCivguJ8KK+C4n+C4gQor4Lif4LmJ4LiHCivguJ/guKPguLHguIHguYLguJfguKoKK+C4n+C4o+C4tQor4Lif4Lil4Lit4Lij4LmM4LmC4LiK4Lin4LmMCivguJ/guKXguLnguK3guK3guKPguLXguJkKK+C4n+C5iOC4rQor4Lif4LmJ4LitCivguJ/guK3guIEKK+C4n+C4reC4hwor4Lif4LmI4Lit4LiHCivguJ/guYnguK3guIcKK+C4n+C4reC4lAor4Lif4Lit4LiZCivguJ/guYjguK3guJkKK+C4n+C5ieC4reC4mQor4Lif4LmJ4Lit4LmB4Lif4LmJCivguJ/guK3guKPguYzguKEKK+C4n+C4reC4o+C5jOC4oeC4suC4peC4lOC4teC5hOC4ruC4lOC5jAor4Lif4Lit4Lij4LmM4Lih4Liy4Lil4Li04LiZCivguJ/guK3guKrguIvguLTguKUKK+C4n+C4reC4quC4n+C4reC4o+C4seC4qgor4Lif4Lit4Liq4LmA4Lif4LiVCivguJ/guLDguJ/guLHguJQKK+C4n+C4sOC4n+C4seC5iOC4mQor4Lif4Liw4Lif4LmI4Liy4LiiCivguJ/guLHguIEKK+C4n+C4seC4geC4n+C4uOC5ieC4mQor4Lif4Lix4LiHCivguJ/guLHguIfguIHguYzguIrguLHguJkKK+C4n+C4seC4h+C5gOC4nuC4o+C4suC4sAor4Lif4Lix4LiUCivguJ/guLHguJkKK+C4n+C4seC5iOC4mQor4Lif4Lix4LmJ4LiZCivguJ/guLHguJnguIrguYnguLLguIcKK+C4n+C5ieC4sgor4Lif4Liy4LiBCivguJ/guLLguIcKK+C4n+C5iOC4suC4hwor4Lif4Liy4LiUCivguJ/guLLguJfguK3guKEKK+C4n+C4suC4mQor4Lif4LmJ4Liy4Lid4LmI4LitCivguJ/guYjguLLguKEKK+C4n+C5ieC4suC4oeC4uOC5iOC4ogor4Lif4Liy4LiiCivguJ/guLLguKPguYzguKEKK+C4n+C4suC4quC4i+C4tOC4quC4leC5jAor4Lif4Li04LiBCivguJ/guLTguJQKK+C4n+C4tOC4lQor4Lif4Li04LiaCivguJ/guLTguKXguYzguKEKK+C4n+C4tOC4p+C4quC5jAor4Lif4Li04Liq4Li04LiB4Liq4LmMCivguJ/guLXguYgKK+C4n+C4teC5iQor4Lif4Li34LiZCivguJ/guLfguYnguJkKK+C4n+C4t+C4oQor4Lif4Li4CivguJ/guLjguYnguIcKK+C4n+C4uOC4lQor4Lif4Li44LiZCivguJ/guLjguJoKK+C4n+C4uOC5iOC4mgor4Lif4Li44Lif4LiwCivguJ/guLjguYjguKHguYDguJ/guLfguK3guKIKK+C4n+C4uOC4peC4quC5geC4geC5iuC4mwor4Lif4Li5CivguJ/guLnguYgKK+C4n+C4ueC4gQor4Lif4Li54LiUCivguJ/guLnguKEKK+C5gOC4n+C5h+C4lAor4LmA4Lif4LmJ4LiZCivguYDguJ/guKXguJTguYzguKrguJvguLLguKPguYwKK+C5gOC4n+C5ieC4rQor4LmA4Lif4Lit4Lij4LmM4LiZ4Li04LmA4LiI4Lit4Lij4LmMCivguYDguJ/guK3guKPguYzguYDguKHguLXguKLguKEKK+C5gOC4n+C4reC4sAor4LmA4Lif4LiwCivguYDguJ/guLTguJkKK+C5gOC4n+C4tOC4o+C5jOC4mQor4LmA4Lif4Li14LmJ4Lii4LihCivguYDguJ/guLXguYnguKLguKcKK+C5gOC4n+C4t+C4rQor4LmA4Lif4Li34LmI4LitCivguYDguJ/guLfguYnguK0KK+C5gOC4n+C4t+C4reC4hwor4LmA4Lif4Li34LmJ4Lit4LiHCivguYDguJ/guLfguK3guJkKK+C5gOC4n+C4t+C4reC4ogor4LmB4Lif4LmICivguYHguJ/guIcKK+C5geC4n+C4iuC4seC5iOC4mQor4LmB4Lif4LiZCivguYHguJ/guJnguIvguLUKK+C5geC4n+C4mgor4LmB4Lif4LmJ4LihCivguYHguJ/guKPguYwKK+C5geC4n+C4o+C4meC5gOC4i+C4teC4ouC4oQor4LmB4Lif4Lil4LiB4LiL4LmMCivguYHguJ/guKXguJUKK+C5geC4n+C4sAor4LmC4Lif4LiB4Lix4LiqCivguYTguJ8KK+C4oAor4Lig4LiECivguKDguITguKfguJTguLUKK+C4oOC4hOC4p+C4seC4lQor4Lig4LiE4Lin4Lix4LiX4LiE4Li14LiV4LiyCivguKDguITguKfguLHguJnguJXguYwKK+C4oOC4hOC4p+C4seC4oQor4Lig4LiE4Lin4LiyCivguKDguITguKfguLLguJkKK+C4oOC4hOC4seC4meC4l+C4peC4sgor4Lig4LiE4Li04LiZ4Li1CivguKDguJMKK+C4oOC4k+C4tOC4lOC4sgor4Lig4LieCivguKDguKHguIHguLLguKMKK+C4oOC4oeC4owor4Lig4Lih4Li4CivguKDguKHguLjguIHguLAKK+C4oOC4oeC4uOC4geC4sgor4Lig4Lii4Lix4LiZ4LiV4Lij4Liy4LiiCivguKDguKLguLLguITguJXguLQKK+C4oOC4owor4Lig4Lij4LiT4Li1CivguKDguKPguJUKK+C4oOC4o+C4leC4p+C4o+C4o+C4qQor4Lig4Lij4LiV4Lio4Liy4Liq4LiV4Lij4LmMCivguKDguKPguKPguJTguKMKK+C4oOC4o+C4o+C4lOC4sgor4Lig4Lij4Lij4Lii4LiyCivguKDguKPguLDguKHguKMKK+C4oOC4o+C4sOC4oeC4o+C4tQor4Lig4Lij4Lix4Liq4LiU4Liy4LipCivguKDguKPguLLguJTguKMKK+C4oOC4o+C4suC4lOC4sgor4Lig4Lij4Li04Lii4LiyCivguKDguKPguLkKK+C4oOC4pOC4h+C4hOC4suC4owor4Lig4Lik4LiU4LiBCivguKDguKTguJTguLUKK+C4oOC4pOC4leC4ouC5jAor4Lig4Lik4LioCivguKDguKTguKnguI/guYwKK+C4oOC4pwor4Lig4Lin4Lix4LiE4LijCivguKDguKfguLHguIfguITguYwKK+C4oOC4seC4geC4guC4sAor4Lig4Lix4LiB4LiU4Li1CivguKDguLHguIHguJXguLAKK+C4oOC4seC4geC4leC4tAor4Lig4Lix4LiB4Lip4LmMCivguKDguLHguIQKK+C4oOC4seC4hOC4meC5jAor4Lig4Lix4LiH4LiE4LiwCivguKDguLHguIfguITguLUKK+C4oOC4seC4iAor4Lig4Lix4LiN4LiK4LiwCivguKDguLHguJPguJHguYwKK+C4oOC4seC4k+C4keC4hOC4o+C4o+C4oAor4Lig4Lix4LiT4LiR4LiZ4LiwCivguKDguLHguJPguJHguLLguITguLLguKMKK+C4oOC4seC4k+C4keC4suC4hOC4suC4o+C4tOC4gQor4Lig4Lix4LiT4LiR4Liy4Lij4Lix4LiB4Lip4LmMCivguKDguLHguJPguJHguLkKK+C4oOC4seC4lQor4Lig4Lix4LiV4LijCivguKDguLHguJfguKMKK+C4oOC4seC4ngor4Lig4Lix4LiiCivguKDguLHguKrguJTguLIKK+C4oOC4seC4quC4leC4o+C4sgor4Lig4Lix4Liq4Lih4LiwCivguKDguLHguKrguKrguKMKK+C4oOC4sgor4Lig4Liy4LiECivguKDguLLguITguKDguLnguKHguLQKK+C4oOC4suC4hOC4ouC5jAor4Lig4Liy4LiE4Lii4Liy4LiZ4Li44Lin4Lix4LiV4Li0CivguKDguLLguITguLTguJnguLUKK+C4oOC4suC4hOC4tOC5hOC4meC4ogor4Lig4Liy4LiE4Li1CivguKDguLLguITguLXguKLguLAKK+C4oOC4suC4iuC4meC4sAor4Lig4Liy4LiK4Li1CivguKDguLLguJMKK+C4oOC4suC4k+C4gQor4Lig4Liy4LiT4Li1CivguKDguLLguJPguLgKK+C4oOC4suC4lOC4owor4Lig4Liy4LiU4LiyCivguKDguLLguJXguKMKK+C4oOC4suC4leC4sgor4Lig4Liy4LiV4Li04LiB4LiwCivguKDguLLguJXguLTguKLguLAKK+C4oOC4suC4leC4uAor4Lig4Liy4LieCivguKDguLLguJ7guKLguYwKK+C4oOC4suC4nuC4ouC4meC4leC5jAor4Lig4Liy4LihCivguKDguLLguKIKK+C4oOC4suC4owor4Lig4Liy4Lij4LiU4Li1CivguKDguLLguKPguJUKK+C4oOC4suC4o+C4leC4tQor4Lig4Liy4Lij4Lii4LiX4Lij4Lix4Lie4Lii4LmMCivguKDguLLguKPguKLguLIKK+C4oOC4suC4o+C5guC4o+C4hwor4Lig4Liy4Lij4LiwCivguKDguLLguKPguLIKK+C4oOC4suC4p+C4meC4sgor4Lig4Liy4Lin4LiwCivguKDguLLguKkKK+C4oOC4suC4qeC4gQor4Lig4Liy4Lip4LiT4LmMCivguKDguLLguKnguLIKK+C4oOC4suC4qeC4tOC4lQor4Lig4Liy4Lip4Li1CivguKDguLLguKoKK+C4oOC4suC4quC4meC5jAor4Lig4Liy4Liq4LiyCivguKDguLLguKrguLjguKMKK+C4oOC4tOC4geC4guC4sgor4Lig4Li04LiB4LiC4Li4CivguKDguLTguIHguILguLjguJnguLUKK+C4oOC4tOC4geC4qeC4sgor4Lig4Li04LiB4Lip4Li4CivguKDguLTguIHguKnguLjguJPguLUKK+C4oOC4tOC4h+C4hOC4suC4owor4Lig4Li04LiH4LiqCivguKDguLTguIfguKrguJnguLAKK+C4oOC4tOC4h+C4quC4owor4Lig4Li04LiN4LmC4LiNCivguKDguLTguJXguJXguLQKK+C4oOC4tOC4lwor4Lig4Li04LiZ4LiX4LmMCivguKDguLTguKLguYLguKIKK+C4oOC4tOC4o+C4oeC4ouC5jAor4Lig4Li04Lij4Lih4Lii4LmM4Liq4Li44Lij4Liy4LiH4LiE4LmMCivguKDguLTguKnguLHguIoKK+C4oOC4tOC4qgor4Lig4Li04Liq4Lix4LiBCivguKDguLXguJXguLAKK+C4oOC4teC4oQor4Lig4Li14Lij4Li4CivguKDguLjguIHguJXguYwKK+C4oOC4uOC4guC4seC4mQor4Lig4Li44LiKCivguKDguLjguI3guIoKK+C4oOC4uOC4lQor4Lig4Li44LihCivguKDguLjguKHguKPguLAKK+C4oOC4uOC4oeC4o+C4sgor4Lig4Li44Lih4Lij4Li04LiZCivguKDguLjguKHguKPguLUKK+C4oOC4uOC4oeC5gOC4o+C4qAor4Lig4Li44LiqCivguKDguLkKK+C4oOC4ueC5iAor4Lig4Li54LmC4LiKCivguKDguLnguJTguLLguJQKK+C4oOC4ueC4lQor4Lig4Li54LiV4Li0CivguKDguLnguJXguLUKK+C4oOC4ueC4oQor4Lig4Li54Lih4Li0CivguKDguLnguKHguLTguITguLjguYnguKHguIHguLHguJkKK+C4oOC4ueC4oeC4tOC5geC4nuC5iQor4Lig4Li54Lih4Li1CivguKDguLnguKPguYLguKXguIEKK+C4oOC4ueC4o+C4tAor4Lig4Li54Lij4Li1CivguKDguLnguKnguLIKK+C4oOC4ueC4qeC4tOC4lQor4LmA4Lig4LiB4LiwCivguYDguKDguITguLAKK+C5gOC4oOC4leC4o+C4sgor4LmA4Lig4LiXCivguYDguKDguKPguKcKK+C5gOC4oOC4o+C4tAor4LmA4Lig4Lij4Li1CivguYDguKDguKrguLHguIoKK+C5gOC4oOC4quC4seC4iuC5gOC4nuC4peC4sgor4LmC4Lig4LiECivguYLguKDguITguJfguKPguLHguJ7guKLguYwKK+C5guC4oOC4hOC4oOC4seC4k+C4keC5jAor4LmC4Lig4LiE4Lii4LiX4Lij4Lix4Lie4Lii4LmMCivguYLguKDguITguLTguJkKK+C5guC4oOC4hOC4tQor4LmC4Lig4LmE4LiE4LiiCivguYLguKDguYTguITguKjguKfguKPguKPguKLguYwKK+C5guC4oOC4igor4LmC4Lig4LiK4LiBCivguYLguKDguIrguJnguYwKK+C5guC4oOC4iuC4meC4sAor4LmC4Lig4LiK4LiZ4Liy4LiB4LijCivguYLguKDguIrguJnguLLguIHguLLguKMKK+C5guC4oOC4iuC4meC4suC4q+C4suC4owor4LmE4Lig4Lij4LieCivguYTguKDguKPguLTguJkKK+C5hOC4oOC4o+C4tQor4LmE4Lig4Lip4Lix4LiK4LiE4Li44Lij4Li4CivguYTguKDguKnguLHguIrguKLguYwKK+C4oQor4Lih4LiBCivguKHguIHguKMKK+C4oeC4geC4o+C4geC4uOC4k+C4keC4pQor4Lih4LiB4Lij4LmA4LiB4LiV4LiZ4LmMCivguKHguIHguKPguJjguKfguLHguIoKK+C4oeC4geC4o+C4nuC4suC4q+C4mQor4Lih4LiB4Lij4Liy4LiB4LijCivguKHguIHguKPguLLguITguKEKK+C4oeC4geC4o+C4suC4peC4seC4ogor4Lih4LiB4Lij4Liy4Lin4Liy4LiqCivguKHguIHguKoKK+C4oeC4geC4uOC4jgor4Lih4LiB4Li44LilCivguKHguITguJgKK+C4oeC4hgor4Lih4LiG4Lin4Lix4LiZCivguKHguIbguLIKK+C4oeC5iOC4hwor4Lih4LiH4LiB4Li44LiOCivguKHguIfguYLguIHguKPguKIKK+C4oeC4h+C4hOC4pQor4Lih4LiH4LiE4Lil4LiI4Lix4LiB4LijCivguKHguIfguITguKXguJ7guLTguJjguLUKK+C4oeC4h+C4hOC4peC4p+C4suC4lwor4Lih4LiH4LiE4Lil4Lin4Liy4LijCivguKHguIfguITguKXguKrguKHguKPguKoKK+C4oeC4h+C4hOC4peC4quC4oeC4seC4ogor4Lih4LiH4LiE4Lil4Liq4Li54LiV4LijCivguKHguIfguITguKXguKvguLHguJXguJbguLUKK+C4oeC4k+C4keC5jAor4Lih4LiT4LiR4LiBCivguKHguJPguJHguJnguLAKK+C4oeC4k+C4keC4mwor4Lih4LiT4LiR4LilCivguKHguJPguJHguLIKK+C4oeC4k+C4keC4suC4o+C4ngor4Lih4LiT4LiR4Li04LijCivguKHguJPguYDguJHguLXguKLguKMKK+C4oeC4k+C4tQor4Lih4LiUCivguKHguJTguYDguJfguYfguIgKK+C4oeC4lOC4ouC4reC4mgor4Lih4LiU4Lil4Li54LiBCivguKHguJTguLLguKIKK+C4oeC4lOC4tQor4Lih4LiV4LiwCivguKHguJXguLQKK+C4oeC4lwor4Lih4LiX4LiZ4LiwCivguKHguJfguJnguLXguKLguLAKK+C4oeC4mOC4uAor4Lih4LiY4Li44Lij4LiwCivguKHguJkKK+C4oeC5iOC4mQor4Lih4LiZ4LiV4LmMCivguKHguJnguJXguKPguYwKK+C4oeC4meC4leC4o+C4tQor4Lih4LiZ4LiX4LmMCivguKHguJnguJfguLTguKMKK+C4oeC4meC4l+C4tOC4o+C4suC4peC4seC4ogor4Lih4LiZ4LmA4LiX4Li14Lii4LijCivguKHguJnguKrguLTguIHguLLguKMKK+C4oeC4meC4seC4qgor4Lih4LiZ4Liy4LmC4LibCivguKHguJnguLTguKHguJnguLIKK+C4oeC4meC4tOC4peC4sgor4Lih4LiZ4Li14Lih4LiZ4LiyCivguKHguJnguLgKK+C4oeC4meC4uOC4jQor4Lih4LiZ4Li44Lip4Lii4LmMCivguKHguJnguLjguKrguLLguKMKK+C4oeC4meC4uQor4Lih4LiZ4Li54Liq4Liy4LijCivguKHguYLguJkKK+C4oeC5guC4meC4o+C4suC4q+C5jAor4Lih4LmC4LiZ4Liq4Liy4LijCivguKHguYLguJnguKrguLLguYDguKPguYgKK+C4oeC5guC4meC4q+C5jOC4o+C4sgor4Lih4Lih4Lix4LiH4LiB4Liy4LijCivguKHguKHguLLguIEKK+C4oeC4ouC4uOC4o+C4sAor4Lih4Lii4Li54LiCCivguKHguKLguLnguKMKK+C4oeC4owor4Lih4Lij4LiB4LiVCivguKHguKPguITguLIKK+C4oeC4o+C4keC4mwor4Lih4Lij4LiT4LmMCivguKHguKPguJPguLAKK+C4oeC4o+C4lOC4gQor4Lih4Lij4Lij4LiECivguKHguKPguKPguITguLIKK+C4oeC4o+C4o+C4leC4ogor4Lih4Lij4Lij4LiV4Lix4LiiCivguKHguKPguKPguJfguJkKK+C4oeC4o+C4o+C4ouC4suC4lwor4Lih4Lij4Lij4LipCivguKHguKPguKrguLjguKEKK+C4oeC4o+C4seC4oeC5gOC4l+C4qAor4Lih4Lij4Liy4LiZ4LiE4Lin4Liy4LiZCivguKHguKPguLTguIgKK+C4oeC4o+C4tOC4ouC4suC4lwor4Lih4Lij4Li14LiI4Li0CivguKHguKPguLgKK+C4oeC4o+C4uOC4lQor4Lih4Lik4LiECivguKHguKTguITguKLguYwKK+C4oeC4pOC4iOC4ieC4sgor4Lih4Lik4LiU4LiBCivguKHguKTguJUKK+C4oeC4pOC4leC4gQor4Lih4Lik4LiV4Lii4Li5CivguKHguKTguJfguLTguIfguITguYwKK+C4oeC4pOC4l+C4uAor4Lih4Lik4LiY4Li4CivguKHguKTguKnguLIKK+C4oeC4pQor4Lih4Lil4LmC4LiECivguKHguKXguJfguLTguJkKK+C4oeC4peC4mQor4Lih4Lil4LmI4LiZCivguKHguKXguKfguIEKK+C4oeC4peC5iOC4reC4mQor4Lih4Lil4LmI4Lit4LiiCivguKHguKXguLAKK+C4oeC4peC4seC4gQor4Lih4Lil4Lix4LiH4LmA4Lih4Lil4Li34Lit4LiHCivguKHguKXguYnguLIKK+C4oeC4peC4suC4gQor4Lih4Lil4LmJ4Liy4LiHCivguKHguKXguLLguJkKK+C4oeC4peC5iOC4suC4mQor4Lih4Lil4Liy4LiiCivguKHguKXguLLguKLguLkKK+C4oeC4peC4suC4pwor4Lih4Lil4LmI4Liy4Lin4LmA4Lih4Lil4LiyCivguKHguKXguLLguKvguKPguLIKK+C4oeC4peC4tOC4mQor4Lih4Lil4Li04LmJ4LiZCivguKHguKXguLfguYjguJkKK+C4oeC4p+C4gQor4Lih4LmI4Lin4LiHCivguKHguKfguJkKK+C4oeC5iOC4p+C4mQor4Lih4LmJ4Lin4LiZCivguKHguKfguKIKK+C4oeC5iOC4p+C4ogor4Lih4LmJ4Lin4LiiCivguKHguKfguKUKK+C4oeC4quC4suC4owor4Lih4Liq4Liy4Lij4LiBCivguKHguKrguLLguKPguITguLHguKUKK+C4oeC4quC4tAor4Lih4Lir4LiB4Lij4Lij4LihCivguKHguKvguKPguJPguJ4KK+C4oeC4q+C4o+C4o+C4hgor4Lih4Lir4Lij4Lij4LiT4LieCivguKHguKvguKPguKrguJ4KK+C4oeC4q+C4seC4iOC4ieC4o+C4tOC4ouC4sAor4Lih4Lir4Lix4LiT4LiT4LieCivguKHguKvguLHguJUKK+C4oeC4q+C4seC4leC4hgor4Lih4Lir4Lix4LiX4LiY4LiZ4LiwCivguKHguKvguLHguJnguJXguYwKK+C4oeC4q+C4seC4nuC4oOC4suC4hAor4Lih4Lir4Lix4LilCivguKHguKvguLHguKXguIHguLAKK+C4oeC4q+C4seC4qOC4iOC4o+C4o+C4ouC5jAor4Lih4Lir4LiyCivguKHguKvguLLguIHguJDguLTguJkKK+C4oeC4q+C4suC4geC4suC4rAor4Lih4Lir4Liy4LiC4Lix4LiZ4LiY4LiBCivguKHguKvguLLguIjguLHguIHguKMKK+C4oeC4q+C4suC4iuC4mQor4Lih4Lir4Liy4LiK4Lix4LiiCivguKHguKvguLLguIrguLLguJXguLQKK+C4oeC4q+C4suC5guC4iuC4leC4o+C4seC4lQor4Lih4Lir4Liy4LiU4LmE4LiX4LiiCivguKHguKvguLLguJTguYDguKXguYfguIEKK+C4oeC4q+C4suC4leC4oeC4sAor4Lih4Lir4Liy4LmE4LiW4LmICivguKHguKvguLLguJfguKfguLXguJsKK+C4oeC4q+C4suC5gOC4l+C4ngor4Lih4Lir4Liy4LmA4LiX4Lie4Li1CivguKHguKvguLLguYDguJfguKfguLUKK+C4oeC4q+C4suC4mOC4suC4leC4uAor4Lih4Lir4Liy4LiZ4Lij4LiBCivguKHguKvguLLguJnguKrguLAKK+C4oeC4q+C4suC4meC4tOC4geC4suC4ogor4Lih4Lir4Liy4LiZ4Li04LilCivguKHguKvguLLguJrguJ7guLTguJXguKMKK+C4oeC4q+C4suC4muC4o+C4tOC4iOC4suC4hAor4Lih4Lir4Liy4Lia4Lix4LiT4LiR4Li04LiVCivguKHguKvguLLguJrguLjguKPguLjguKkKK+C4oeC4q+C4suC4nuC4mQor4Lih4Lir4Liy4Lie4Lij4Lir4LihCivguKHguKvguLLguKDguLLguKPguJUKK+C4oeC4q+C4suC4oOC4tOC5gOC4meC4qeC4geC4o+C4oeC4k+C5jAor4Lih4Lir4Liy4Lig4Li54LiVCivguKHguKvguLLguYDguKHguIYKK+C4oeC4q+C4suC4ouC4suC4mQor4Lih4Lir4Liy4Lii4Li44LiECivguKHguKvguLLguKPguJPguJ4KK+C4oeC4q+C4suC4o+C4suC4igor4Lih4Lir4Liy4Lij4Liy4LiK4Lil4Li14Lil4LiyCivguKHguKvguLLguKTguIHguKnguYwKK+C4oeC4q+C4suC4peC4sOC4peC4p+C4ogor4Lih4Lir4Liy4Lil4Liw4Lil4Liy4LiiCivguKHguKvguLLguKfguIfguKjguYwKK+C4oeC4q+C4suC4p+C4o+C4o+C4hAor4Lih4Lir4Liy4Lin4Lix4LiVCivguKHguKvguLLguKfguLTguJfguKLguLLguKXguLHguKIKK+C4oeC4q+C4suC4qOC4seC4geC4o+C4suC4igor4Lih4Lir4Liy4Lio4Liy4LilCivguKHguKvguLLguKjguLnguJnguKLguYwKK+C4oeC4q+C4suC5gOC4qOC4o+C4qeC4kOC4tQor4Lih4Lir4Liy4Liq4LiH4LiB4Lij4Liy4LiZ4LiV4LmMCivguKHguKvguLLguKrguIfguITguKPguLLguKEKK+C4oeC4q+C4suC4quC4lOC4oeC4oOC5jAor4Lih4Lir4Liy4Liq4LiU4LizCivguKHguKvguLLguKrguKHguLjguJfguKMKK+C4oeC4q+C4suC4quC4seC4meC4meC4tOC4muC4suC4lQor4Lih4Lir4Liy4Liq4Liy4Lin4LiBCivguKHguKvguLLguKrguLLguKfguLTguIHguLIKK+C4oeC4q+C4suC4quC4tOC4l+C4mOC4tOC5guC4iuC4hAor4Lih4Lir4Liy4Liq4Li14Lih4LiyCivguKHguKvguLLguYDguKrguKfguIEKK+C4oeC4q+C4suC4q+C4h+C4quC5jAor4Lih4Lir4Liy4Lir4Li04LiH4LiE4Li44LmMCivguKHguKvguLLguK3guLPguJnguLLguIgKK+C4oeC4q+C4suC4reC4s+C4oeC4suC4leC4ouC5jAor4Lih4Lir4Liy4Lit4Li44LiICivguKHguKvguLLguK3guLjguJQKK+C4oeC4q+C4suC4reC4uOC4m+C4o+C4suC4geC4owor4Lih4Lir4Li0CivguKHguKvguLTguIfguKrguYwKK+C4oeC4q+C4tOC4l+C4mOC4tAor4Lih4Lir4Li04LiZ4LiX4LmMCivguKHguKvguLTguKHguLIKK+C4oeC4q+C4tOC4qOC4owor4Lih4Lir4Li04Lio4Lin4LijCivguKHguKvguLTguKkKK+C4oeC4q+C4tOC4qeC4tQor4Lih4Lir4Li24Lih4LiyCivguKHguKvguLjguJTguLTguKTguIHguKnguYwKK+C4oeC4q+C4uOC4o+C4lOC4tQor4Lih4Lir4Li44Lij4LiV4Li04Liq4Lix4LiN4LiN4LiyCivguKHguKvguLkKK+C4oeC5gOC4q+C4meC4l+C4o+C5jAor4Lih4LmA4Lir4Lii4LiH4LiE4LmMCivguKHguYDguKvguKgKK+C4oeC5gOC4q+C4qOC4p+C4owor4Lih4LmA4Lir4Lio4Lix4LiB4LiU4Li04LmMCivguKHguYDguKvguKrguLHguIHguILguYwKK+C4oeC5gOC4q+C4quC4tAor4Lih4LmA4Lir4Liq4Li1CivguKHguYDguKvguLLguKnguJgKK+C4oeC5gOC4q+C4suC4rOC4suC4owor4Lih4LmC4Lir4LiGCivguKHguYLguKvguKPguJfguLbguIEKK+C4oeC5guC4q+C4o+C4quC4ngor4Lih4LmC4Lir4Lij4Li1CivguKHguYLguKvguKnguJgKK+C4oeC5guC4q+C4rOC4suC4owor4Lih4LmE4Lir4Lio4Lin4Lij4Lij4Lii4LmMCivguKHguK0KK+C4oeC4reC4hwor4Lih4LmI4Lit4LiHCivguKHguK3guIfguYLguIHguKXguK3guKLguJTguYwKK+C4oeC4reC4h+C4hOC4o+C5iOC4rQor4Lih4LmI4Lit4LiH4LmA4LiX4LmI4LiHCivguKHguK3guI0KK+C4oeC5iOC4reC4leC5ieC4rQor4Lih4Lit4LmA4LiV4Lit4Lij4LmMCivguKHguK3guJkKK+C4oeC5iOC4reC4mQor4Lih4Lit4LiZ4LmE4LiC4LmICivguKHguK3guJoKK+C4oeC5iOC4reC4ogor4Lih4Lit4Lij4LmM4Lif4Li14LiZCivguKHguK3guKPguLDguIHguLnguYgKK+C4oeC4reC4peC5guC4l+C4qgor4Lih4LmI4Lit4Lil4Lit4LiB4Lih4LmI4Lit4LmB4Lil4LiBCivguKHguYjguK3guK7guYjguK3guKEKK+C4oeC4sAor4Lih4Liw4LiB4Lij4Li54LiUCivguKHguLDguIHguKXguYjguLMKK+C4oeC4sOC4geC4reC4gQor4Lih4Liw4LiB4LmI4Lit4LiHCivguKHguLDguIHguYjguK3guJXguLLguKvguKHguLkKK+C4oeC4sOC4geC4sOC5guC4o+C4meC4tQor4Lih4Liw4LiB4LiyCivguKHguLDguYDguIHguKXguLfguK0KK+C4oeC4sOC5gOC4geC4teC5i+C4ouC4hwor4Lih4Liw4LiC4LmI4Lin4LiHCivguKHguLDguILguKfguLTguJQKK+C4oeC4sOC4guC4suC4oQor4Lih4Liw4LiC4Liy4Lih4LmA4LiX4LioCivguKHguLDguILguLLguKHguJvguYnguK3guKHguJTguLTguJkKK+C4oeC4sOC5gOC4guC4t+C4rQor4Lih4Liw4LmA4LiC4Li34Lit4LiX4Lin4Liy4LiiCivguKHguLDguYDguILguLfguK3guYDguJfguKgKK+C4oeC4sOC5gOC4guC4t+C4reC4nuC4p+C4hwor4Lih4Liw4LmA4LiC4Li34Lit4Lih4Lit4LiNCivguKHguLDguYHguILguYjguJkKK+C4oeC4sOC4hOC4sAor4Lih4Liw4LiE4Lix4LiH4LmB4LiU4LiHCivguKHguLDguITguYjguLIKK+C4oeC4sOC4hOC4s+C5hOC4geC5iAor4Lih4Liw4LiE4Liz4LiU4Li14LiE4Lin4Liy4LiiCivguKHguLDguIfguLHguJkKK+C4oeC4sOC4h+C4seC5iOC4pwor4Lih4Liw4LiH4Li44Lih4Lih4Liw4LiH4Liy4Lir4Lil4LiyCivguKHguLDguIvguLHguIEKK+C4oeC4sOC4i+C4suC4hwor4Lih4Liw4LiL4LmI4Liy4LiZCivguKHguLDguJTguLDguILguLXguYnguJnguIEKK+C4oeC4sOC4lOC4seC4mQor4Lih4Liw4LiU4LiyCivguKHguLDguJTguLnguIEKK+C4oeC4sOC5gOC4lOC4q+C4p+C4tQor4Lih4Liw4LmA4LiU4Li34LmI4LitCivguKHguLDguJXguYnguK3guIcKK+C4oeC4sOC4leC4sOC4muC4sAor4Lih4Liw4LiV4Liy4LiUCivguKHguLDguJXguLLguKvguLDguKPguLUKK+C4oeC4sOC4leC4tQor4Lih4Liw4LiV4Li24LmI4LiHCivguKHguLDguJXguLfguYvguJkKK+C4oeC4sOC4leC4ueC4oQor4Lih4Liw4LmB4LiV4LiBCivguKHguLDguJnguLLguKcKK+C4oeC4sOC4m+C4o+C4suC4hwor4Lih4Liw4Lib4Lij4Li04LiHCivguKHguLDguJvguYjguK3guIcKK+C4oeC4sOC4neC5iOC4rQor4Lih4Liw4Lie4Lij4LmJ4Liy4LinCivguKHguLDguJ7guKXguLHguJoKK+C4oeC4sOC4nuC4ueC4lAor4Lih4Liw4LmB4Lie4LiZCivguKHguLDguYHguJ7guKPguYnguKcKK+C4oeC4sOC5gOC4n+C4t+C4reC4hwor4Lih4Liw4LmB4Lif4LiZCivguKHguLDguYTguJ8KK+C4oeC4sOC4oeC5iOC4p+C4hwor4Lih4Liw4Lih4LmI4Liy4LinCivguKHguLDguKHguLXguYgKK+C4oeC4sOC4oeC4t+C5iOC4mQor4Lih4Liw4Lih4Li44LiUCivguKHguLDguYDguKHguK0KK+C4oeC4sOC5gOC4oeC4teC4ogor4Lih4Liw4LmA4Lih4Li34LmI4Lit4LiiCivguKHguLDguYHguKEKK+C4oeC4sOC4ouC4hwor4Lih4Liw4Lii4LihCivguKHguLDguKPguLAKK+C4oeC4sOC4o+C4tOC4lAor4Lih4Liw4Lij4Li34LiZCivguKHguLDguKPguLjguKEKK+C4oeC4sOC4o+C4uOC4oeC4oeC4sOC4leC4uOC5ieC4oQor4Lih4Liw4LmA4Lij4LmH4LiHCivguKHguLDguYDguKPguLfguYjguK3guIcKK+C4oeC4sOC5guC4o+C4hwor4Lih4Liw4Lil4Liw4LiB4LitCivguKHguLDguKXguLLguKPguK3guIHguLHguJkKK+C4oeC4sOC4peC4swor4Lih4Liw4Lil4Li0CivguKHguLDguKXguLTguJkKK+C4oeC4sOC4peC4tOC5iOC4oQor4Lih4Liw4Lil4Li04LmA4Lil4Li34LmJ4Lit4LiiCivguKHguLDguKXguLTguK3guYjguK3guIcKK+C4oeC4sOC4peC4t+C5iOC4mQor4Lih4Liw4Lil4Li34Lih4LiU4LizCivguKHguLDguKXguLjguKXguLUKK+C4oeC4sOC4p+C4suC4owor4Lih4Liw4Lir4Lil4Li04LmI4LihCivguKHguLDguKvguKfguJQKK+C4oeC4sOC4q+C4sOC4q+C4oeC4seC4lAor4Lih4Liw4Lir4Lix4LilCivguKHguLDguKvguLLguJQKK+C4oeC4sOC4q+C4tOC5iOC4hwor4Lih4Liw4LmA4Lir4Lih4Li34LmI4Lit4LiiCivguKHguLDguK3guLbguIEKK+C4oeC4sOC4ruC4reC4geC4geC4suC4meC4tQor4Lih4Lix4LiBCivguKHguLHguIHguIHguLDguKXguLXguJzguKUKK+C4oeC4seC4geC4geC4sOC4quC4seC4mQor4Lih4Lix4LiB4LiC4LiwCivguKHguLHguYjguIHguILguLHguYnguIEKK+C4oeC4seC4geC4guC4tOC4geC4sgor4Lih4Lix4LiB4LiC4Li04LiB4Liy4LiK4Liy4LiV4Li0CivguKHguLHguIHguI/guIHguLAKK+C4oeC4seC4geC4j+C4sAor4Lih4Lix4LiE4LiE4LiwCivguKHguLHguITguITguLjguYDguJfguKjguIHguYwKK+C4oeC4seC4hOC4quC4tOC4o+C4sAor4Lih4Lix4LiG4Lin4LiyCivguKHguLHguIbguKfguLLguJkKK+C4oeC4seC5iOC4hwor4Lih4Lix4LiH4LiB4LiHCivguKHguLHguIfguIHguKMKK+C4oeC4seC4h+C4geC4uAor4Lih4Lix4LiH4LiE4Lil4LiwCivguKHguLHguIfguITguYjguLIKK+C4oeC4seC4h+C4hOC4uOC4lAor4Lih4Lix4LiH4LiV4Liy4LiZCivguKHguLHguIfguKrguLAKK+C4oeC4seC4h+C4quC4tQor4Lih4Lix4LiH4Lir4LiH4Lix4LiZCivguKHguLHguIjguIjguLAKK+C4oeC4seC4iOC4iOC4uAor4Lih4Lix4LiI4LiJ4Lij4LiwCivguKHguLHguIjguInguKPguLTguKLguLAKK+C4oeC4seC4iOC4ieC4o+C4tQor4Lih4Lix4LiI4LiJ4LiwCivguKHguLHguIjguInguLIKK+C4oeC4seC4iuC4iuC4sAor4Lih4Lix4LiK4LiK4Liy4LijCivguKHguLHguI3guIjguIEKK+C4oeC4seC4jeC4iOC4sgor4Lih4Lix4LiN4LiK4Li04Lip4LiQCivguKHguLHguI3guIrguLTguKnguJDguLIKK+C4oeC4seC4jeC4iuC4teC4owor4Lih4Lix4LiN4LiK4Li4CivguKHguLHguI3guIrguLjguKrguLIKK+C4oeC4seC4jeC4iuC4ueC4quC4sgor4Lih4Lix4LiN4LmA4LiK4LiP4LiQ4LiwCivguKHguLHguI3guYDguIrguI/guJDguLTguIHguLIKK+C4oeC4seC4jeC5gOC4iuC4teC4ouC4owor4Lih4Lix4LiP4LiQ4LiwCivguKHguLHguJPguJHguJnguLIKK+C4oeC4seC4k+C4keC4uOC4gQor4Lih4Lix4LiUCivguKHguLHguJTguKvguKHguLXguYgKK+C4oeC4seC4lOC4q+C4oeC4uQor4Lih4Lix4LiU4Lir4Lin4Liy4LiiCivguKHguLHguJXguJXguLAKK+C4oeC4seC4leC4leC4seC4ogor4Lih4Lix4LiV4LiV4LiyCivguKHguLHguJXguJXguLTguIHguLIKK+C4oeC4seC4leC4luC4gQor4Lih4Lix4LiV4LiW4Lil4Li44LiH4LiE4LmMCivguKHguLHguJXguKIKK+C4oeC4seC4leC4quC4ouC4sAor4Lih4Lix4LiV4Liq4Lii4LiyCivguKHguLHguJXguKrguKMKK+C4oeC4seC4leC4quC4o+C4o+C4ouC5jAor4Lih4Lix4LiX4LiZ4LiwCivguKHguLHguJfguJnguLXguKLguLAKK+C4oeC4seC4l+C4ouC4sAor4Lih4Lix4LiY4Lii4LihCivguKHguLHguJjguKLguKHguLIKK+C4oeC4seC4mOC4ouC4seC4meC4q+C5jAor4Lih4Lix4LiY4Lii4Lix4Liq4LiW4LmMCivguKHguLHguJkKK+C4oeC4seC5iOC4mQor4Lih4Lix4LiZ4LiU4Li1CivguKHguLHguJnguJXguLIKK+C4oeC4seC4meC4luC4sAor4Lih4Lix4LiZ4LiX4Li04LijCivguKHguLHguJnguJfguLTguKPguLLguKXguLHguKIKK+C4oeC4seC4meC5hOC4quC5iQor4Lih4Lix4LiaCivguKHguLHguJrguYYKK+C4oeC4seC5ieC4oQor4Lih4Lix4Lih4Lih4Li14LmICivguKHguLHguKIKK+C4oeC4seC4peC4gQor4Lih4Lix4Lil4Lil4LiwCivguKHguLHguKXguKXguLTguIHguLIKK+C4oeC4seC4pwor4Lih4Lix4LmI4LinCivguKHguLHguKjguKLguLIKK+C4oeC4seC4quC4lOC4gQor4Lih4Lix4Liq4LiU4Li4CivguKHguLHguKrguJXguLLguKPguYzguJQKK+C4oeC4seC4quC4leC4uAor4Lih4Lix4Liq4Lih4Lix4LmI4LiZCivguKHguLHguKrguKLguLTguJQKK+C4oeC4seC4quC4o+C4ueC5iAor4Lih4Lix4Liq4Lil4Li04LiZCivguKHguLHguKrguKrguLgKK+C4oeC4sgor4Lih4LmJ4LiyCivguKHguLLguIEKK+C4oeC4suC4hOC4quC4tOC4o+C4sAor4Lih4Liy4LiG4LiwCivguKHguYnguLLguIcKK+C4oeC4suC4h+C4quC4sAor4Lih4Liy4LiT4LieCivguKHguLLguJPguKfguLTguIHguLIKK+C4oeC4suC4lAor4Lih4Liy4LiU4LiyCivguKHguLLguJXguIfguITguYwKK+C4oeC4suC4leC4owor4Lih4Liy4LiV4Lij4LiB4Liy4LijCivguKHguLLguJXguKPguIjguK3guJTguKPguJYKK+C4oeC4suC4leC4o+C4kOC4suC4mQor4Lih4Liy4LiV4Lij4LmB4Lih4LmJ4LiZCivguKHguLLguJXguKPguKfguYjguLIKK+C4oeC4suC4leC4o+C4sgor4Lih4Liy4LiV4LikCivguKHguLLguJXguKTguIHguLAKK+C4oeC4suC4leC4quC4o+C4o+C4ouC5jAor4Lih4Liy4LiV4Lix4LiH4LiECivguKHguLLguJXguLIKK+C4oeC4suC4leC4suC4oeC4q+C4sAor4Lih4Liy4LiV4Liy4Lih4Lir4Lix4Lii4LiB4LiwCivguKHguLLguJXguLLguKHguKvguLHguKLguIHguLIKK+C4oeC4suC4leC4suC4oeC4q+C4seC4ouC4ouC4tOC4geC4sgor4Lih4Liy4LiV4Liy4Lih4Lir4LiyCivguKHguLLguJXguLTguIEKK+C4oeC4suC4leC4tOC4geC4sgor4Lih4Liy4LiV4Li1CivguKHguLLguJXguLgKK+C4oeC4suC4leC4uOC4iOC4ieC4sgor4Lih4Liy4LiV4Li44Lij4LiH4LiE4LmMCivguKHguLLguJXguLjguYDguKPguKgKK+C4oeC4suC4leC4uOC4peC4sAor4Lih4Liy4LiV4Li44Lil4LiyCivguKHguLLguJXguLjguKXguLLguJnguLUKK+C4oeC4suC4leC4uOC4peC4uOC4h+C4hOC5jAor4Lih4Liy4LiXCivguKHguLLguJfguJkKK+C4oeC5ieC4suC4l+C4peC4suC4ouC5guC4o+C4hwor4Lih4Liy4LiY4Lii4Lih4Li04LiB4LiwCivguKHguLLguJjguLjguKMKK+C4oeC4suC4mOC4uOC4quC4owor4Lih4Liy4LiY4Li54LijCivguKHguLLguJkKK+C4oeC5iOC4suC4mQor4Lih4LmJ4Liy4LiZCivguKHguLLguJnguJ4KK+C4oeC5iOC4suC4meC4peC4suC4ogor4Lih4LmI4Liy4LiZ4Lit4Li04LiZ4LiX4LiZ4Li04LilCivguKHguLLguJnguLAKK+C4oeC4suC4meC4seC4lQor4Lih4Liy4LiZ4Lix4LiqCivguKHguLLguJnguLTguJUKK+C4oeC4suC4meC4tQor4Lih4Liy4LiZ4Li44LipCivguKHguLLguYLguJnguIrguI3guYwKK+C4oeC4suC4mgor4Lih4Liy4Lib4LiBCivguKHguLLguKDguLIKK+C4oeC5ieC4suC4oQor4Lih4Liy4LiiCivguKHguYjguLLguKIKK+C4oeC5ieC4suC4ogor4Lih4Liy4Lii4Lix4LiHCivguKHguLLguKLguLIKK+C4oeC4suC4owor4Lih4Liy4Lij4LiECivguKHguLLguKPguITguK3guKvguK3guKIKK+C4oeC4suC4o+C4iuC4tAor4Lih4Liy4Lij4LiK4Li04LiVCivguKHguLLguKPguJTguKMKK+C4oeC4suC4o+C4lOC4sgor4Lih4Liy4Lij4LmM4LiU4Li04LiB4Lij4Liy4Liq4LmMCivguKHguLLguKPguJzguIjguI0KK+C4oeC4suC4o+C4ouC4sgor4Lih4Liy4Lij4Lii4Liy4LiXCivguKHguLLguKPguKfguLTguIrguLHguKIKK+C4oeC4suC4o+C4p+C4tOC4iuC4tOC4lQor4Lih4Liy4Lij4LmA4Lin4LiV4Liy4LilCivguKHguLLguKPguKjguKPguLUKK+C4oeC4suC4o+C4qeC4sgor4Lih4Liy4Lij4Liq4Lix4LiH4LiE4LihCivguKHguLLguKPguKvguLHguKfguILguJkKK+C4oeC4suC4o+C4q+C4seC4p+C5g+C4iAor4Lih4Liy4Lij4LiwCivguKHguLLguKPguLLguJjguK3guJkKK+C4oeC5ieC4suC4o+C4swor4Lih4Liy4Lij4Li0CivguKHguLLguKPguLTguJUKK+C4oeC4suC4o+C4tOC4qeC4sAor4Lih4Liy4Lij4Li04Liq4LiwCivguKHguLLguKPguLjguJUKK+C4oeC4suC4o+C4uOC4oeC4oeC4suC4leC4uOC5ieC4oQor4Lih4Liy4Lil4Lii4LmMCivguKHguLLguKXguLHguKIKK+C4oeC4suC4peC4sgor4Lih4Liy4Lil4Liy4LiV4Li1CivguKHguLLguKXguLLguYDguKPguLXguKIKK+C4oeC4suC4peC4swor4Lih4Liy4Lil4Li04LiZ4Li1CivguKHguLLguKXguLUKK+C4oeC4suC4peC4uOC4lQor4Lih4Liy4Lin4Liq4LiwCivguKHguLLguKfguLLguKMKK+C4oeC4suC4qAor4Lih4Liy4LiqCivguKHguLLguKrguIEKK+C4oeC5ieC4suC4quC4sOC4muC4seC4lOC4geC4teC4mgor4Lih4Liy4Lir4LmMCivguKHguYjguLLguKvguYwKK+C4oeC4suC4q+C4tOC4qgor4Lih4LmI4Liy4LmA4Lir4Lih4Li14LmI4Lii4LinCivguKHguLLguKzguIEKK+C4oeC5ieC4suC4reC5ieC4p+C4mQor4Lih4Liz4LmA4Lil4Li34Lit4LiHCivguKHguLQKK+C4oeC4tOC4hAor4Lih4Li04LmI4LiHCivguKHguLTguIfguYLguIQKK+C4oeC4tOC4iOC4ieC4sgor4Lih4Li04LiK4LiK4Lix4LiZ4LiZ4Liy4Lij4Li1CivguKHguLTguIvguIvguLHguIcKK+C4oeC4tOC4lAor4Lih4Li04LiU4Lir4Lih4Li1CivguKHguLTguJXguKMKK+C4oeC4tOC4leC4tAor4Lih4Li04LiW4Lii4LiyCivguKHguLTguJbguLjguJkKK+C4oeC4tOC4l+C4mOC4sAor4Lih4Li04LiX4LiY4Li1CivguKHguLTguJnguJXguKPguLIKK+C4oeC4tOC4meC4leC4sgor4Lih4Li04LiZ4Lir4Lih4LmJ4LitCivguKHguLTguJnguYjguLIKK+C4oeC4tOC4meC5iOC4suC4peC5iOC4sAor4Lih4Li04LiZ4LmI4Liy4LmA4Lil4LmI4LiyCivguKHguLTguYnguKEKK+C4oeC4tOC4ouC4sgor4Lih4Li04LmE4LiiCivguKHguLTguKPguLHguJnguJXguLUKK+C4oeC4tOC4peC4peC4tOC4geC4o+C4seC4oQor4Lih4Li04Lil4Lil4Li04Lia4Liy4Lij4LmMCivguKHguLTguKXguLHguIHguILguLAKK+C4oeC4tOC4peC4seC4geC4guC4uQor4Lih4Li04Lil4Liy4LiVCivguKHguLTguKXguLTguYDguKHguJXguKMKK+C4oeC4tOC4quC4geC4o+C4tQor4Lih4Li04Liq4LiL4LiyCivguKHguLUKK+C4oeC4teC5iAor4Lih4Li14LiUCivguKHguLXguJTguKLguLHguJoKK+C4oeC4teC5gOC4l+C4mQor4Lih4Li14LiZCivguKHguLXguYjguKrguLHguYnguKcKK+C4oeC4tuC4gQor4Lih4Li24LiHCivguKHguLbguIfguKfguLLguJ7guLLguYLguKfguKIKK+C4oeC4tuC4mQor4Lih4Li34LiUCivguKHguLfguJkKK+C4oeC4t+C5iOC4mQor4Lih4Li34LitCivguKHguLfguYnguK0KK+C4oeC4uAor4Lih4Li44LiBCivguKHguLjguIHguJTguLIKK+C4oeC4uOC4geC4lOC4suC4q+C4suC4owor4Lih4Li44LiB4Li44LijCivguKHguLjguIHguLjguKUKK+C4oeC4uOC4ggor4Lih4Li44LmC4LiC4LmC4Lil4LiB4LiZ4LiwCivguKHguLjguITguITguLAKK+C4oeC4uOC4hOC4mOC5jAor4Lih4Li44LiE4LijCivguKHguLjguIcKK+C4oeC4uOC5iOC4hwor4Lih4Li44LmJ4LiHCivguKHguLjguIfguIHguKPguLDguJXguYjguLLguKIKK+C4oeC4uOC4iOC4ieC4sgor4Lih4Li44LiI4LiZCivguKHguLjguIjguKXguLTguJnguJfguYwKK+C4oeC4uOC4jeC4iOC4meC4sAor4Lih4Li44LiN4LiKCivguKHguLjguJDguLQKK+C4oeC4uOC4k+C4kQor4Lih4Li44LiT4LiR4LiBCivguKHguLjguJQKK+C4oeC4uOC4lQor4Lih4Li44LiV4LiV4LiwCivguKHguLjguJXguJXguLIKK+C4oeC4uOC4leC4leC4tAor4Lih4Li44LiV4Li0CivguKHguLjguJXguLTguIfguITguYwKK+C4oeC4uOC4l+C4hAor4Lih4Li44LiX4LiE4LijCivguKHguLjguJfguJfguLIKK+C4oeC4uOC4l+C4mOC4iuC4sAor4Lih4Li44LiX4LiY4LiyCivguKHguLjguJfguKPguLIKK+C4oeC4uOC4l+C4o+C4tOC4geC4sgor4Lih4Li44LiX4Liw4Lil4Li4CivguKHguLjguJfguLIKK+C4oeC4uOC4l+C4tOC4geC4sgor4Lih4Li44LiX4Li04LiH4LiE4LmMCivguKHguLjguJfguLTguJXguLIKK+C4oeC4uOC4l+C4tOC4mQor4Lih4Li44LiX4Li4CivguKHguLjguYjguJkKK+C4oeC4uOC4meC4tAor4Lih4Li44LiZ4Li1CivguKHguLjguJoKK+C4oeC4uOC4muC5hgor4Lih4Li44LihCivguKHguLjguYjguKEKK+C4oeC4uOC5ieC4oQor4Lih4Li44LmI4LiiCivguKHguLjguKPguIoKK+C4oeC4uOC4o+C4mOC4sgor4Lih4Li44Lil4Liq4LiwCivguKHguLjguKXguLjguJUKK+C4oeC4uOC4peC4uQor4Lih4Li44Liq4Lil4Li04LihCivguKHguLjguKrguLAKK+C4oeC4uOC4quC4sgor4Lih4Li44Liq4Li04LiBCivguKHguLjguKvguIfguLTguJQKK+C4oeC4uOC4q+C4meC5iOC4suC4ogor4Lih4Li44Lir4Li44LiVCivguKHguLnguIEKK+C4oeC4ueC4geC4oeC4seC4mQor4Lih4Li54LiB4Lir4Lil4Lin4LiHCivguKHguLnguIvguLHguIcKK+C4oeC4ueC5gOC4i+C4rQor4Lih4Li54LiV4LijCivguKHguLnguYjguJfguLnguYgKK+C4oeC4ueC4mQor4Lih4Li54Lih4Lih4Liy4LihCivguKHguLnguKPguJTguLUKK+C4oeC4ueC4o+C4leC4tAor4Lih4Li54Lij4LiY4LiyCivguKHguLnguKUKK+C4oeC4ueC4peC4sgor4Lih4Li54Lil4Li04LiB4Liy4LiB4LijCivguKHguLnguYjguKXguLXguYgKK+C4oeC4ueC5iOC5gOC4peC5iAor4Lih4Li54Liq4Li04LiBCivguYDguKEKK+C5gOC4oeC5h+C4gQor4LmA4Lih4LiB4Liw4LmA4Liu4Li04Lij4LiV4LiL4LmMCivguYDguKHguILguKXguLIKK+C5gOC4oeC4hgor4LmA4Lih4LiG4LiJ4Liy4LiiCivguYDguKHguIbguJ7guLHguJQKK+C5gOC4oeC5h+C4hwor4LmA4Lih4LiH4Lit4Liw4Lib4LiyCivguYDguKHguYfguJQKK+C5gOC4oeC4leC4leC4sgor4LmA4Lih4LiV4LmE4LiV4Lij4LiiCivguYDguKHguJXguKMKK+C5gOC4oeC4leC4o+C4tOC4gQor4LmA4Lih4LiV4Lij4Li04LiB4LiV4Lix4LiZCivguYDguKHguJbguLjguJkKK+C5gOC4oeC4lwor4LmA4Lih4LiX4LiZ4Li1CivguYDguKHguJfguLTguJnguLUKK+C5gOC4oeC4l+C4tOC4peC5geC4reC4peC4geC4reC4ruC4reC4peC5jAor4LmA4Lih4LmC4LiXCivguYDguKHguJgKK+C5gOC4oeC4mOC4sgor4LmA4Lih4LiY4Liy4Lin4Li1CivguYDguKHguJjguLUKK+C5gOC4oeC4mQor4LmA4Lih4LmI4LiZCivguYDguKHguYnguJkKK+C5gOC4oeC4meC5gOC4lOC4p+C4teC5gOC4peC4teC4ouC4oQor4LmA4Lih4LiZ4LiX4Lit4LilCivguYDguKHguJnguLkKK+C5gOC4oeC5ieC4oQor4LmA4Lih4Lii4LmM4LmA4LiU4Lii4LmMCivguYDguKHguKPguLHguKIKK+C5gOC4oeC4o+C4uAor4LmA4Lih4Lil4LmMCivguYDguKHguKXguIEKK+C5gOC4oeC4peC5h+C4lAor4LmA4Lih4Lil4Li34Lit4LiHCivguYDguKHguKXguLfguYjguK3guKIKK+C5gOC4oeC4peC4t+C5ieC4reC4ogor4LmA4Lih4LipCivguYDguKHguKsKK+C5gOC4oeC4q+C5jAor4LmA4Lih4Lir4LiZCivguYDguKHguLAKK+C5gOC4oeC4sgor4LmA4Lih4LmI4LiyCivguYDguKHguYnguLIKK+C5gOC4oeC5ieC4suC5gOC4hOC5ieC4sgor4LmA4Lih4Liy4Lij4Li1CivguYDguKHguLLguKXguLTguJQKK+C5gOC4oeC4suC4peC4tQor4LmA4Lih4Liy4Lir4LmMCivguYDguKHguLLguLAKK+C5gOC4oeC4suC4sOC4leC4suC5guC4ouC4geC4seC4gQor4LmA4Lih4Li04LiHCivguYDguKHguLTguJkKK+C5gOC4oeC4tOC4pQor4LmA4Lih4Li14LiiCivguYDguKHguLXguKLguIcKK+C5gOC4oeC4teC5iOC4ouC4hwor4LmA4Lih4Li14LmJ4Lii4LiZCivguYDguKHguLXguYnguKLguKfguYYKK+C5gOC4oeC4t+C4rQor4LmA4Lih4Li34LmI4LitCivguYDguKHguLfguYnguK0KK+C5gOC4oeC4t+C4reC4gQor4LmA4Lih4Li34Lit4LiHCivguYDguKHguLfguK3guJoKK+C5gOC4oeC4t+C5iOC4reC4ogor4LmB4Lih4LmICivguYHguKHguYkKK+C5geC4oeC4gQor4LmB4Lih4LiB4LiZ4Li14LmA4LiL4Li14Lii4LihCivguYHguKHguIcKK+C5geC4oeC4h+C4geC4suC4meC4tOC4mQor4LmB4Lih4LiH4LiB4Liy4LiZ4Li14LiqCivguYHguKHguIfguJvguLLguIHguIjguK3guJoKK+C5geC4oeC4h+C5hOC4n+C5gOC4lOC4t+C4reC4meC4q+C5ieC4sgor4LmB4Lih4LmI4LiH4Lih4LmJ4Liy4LiHCivguYHguKHguIfguKXguLHguIEKK+C5geC4oeC5iOC4leC4sOC4h+C4suC4pwor4LmB4Lih4LmI4LiV4Liy4LiiCivguYHguKHguJkKK+C5geC4oeC5iOC4mQor4LmB4Lih4LmJ4LiZCivguYHguKHguYnguJnguYDguILguLXguKLguJkKK+C5geC4oeC4meC4lOC4suC4o+C4tOC4mQor4LmB4Lih4LmI4Lih4LmI4Liy4LiZ4Lil4Lit4LiH4LmE4LiZCivguYHguKHguKMKK+C5geC4oeC4peC4hwor4LmB4Lih4Lil4LiaCivguYHguKHguKcKK+C5geC4oeC5ieC4pwor4LmB4Lih4LiwCivguYLguKEKK+C5guC4oeC5iAor4LmC4Lih4LmJCivguYLguKHguIEKK+C5guC4oeC4geC4guC5jAor4LmC4Lih4LiB4LmC4LiE4LiBCivguYLguKHguIHguKnguLAKK+C5guC4oeC4geC4uOC4pQor4LmC4Lih4LiG4LiwCivguYLguKHguIbguLXguKLguLAKK+C5guC4oeC4hwor4LmC4Lih4LmI4LiHCivguYLguKHguIfguITguKPguLjguYjguKEKK+C5guC4oeC5gOC4leC5h+C4pQor4LmC4Lih4LiX4LiZ4LiyCivguYLguKHguJkKK+C5guC4oeC5gOC4meC4leC5jAor4LmC4Lih4LmC4LiZ4LmB4LiL4LmH4LiB4LiE4Liy4LmE4Lij4LiU4LmMCivguYLguKHguYTguJnguKIKK+C5guC4oeC4oeC4ueC4q+C5jAor4LmC4Lih4Lih4Li54Lir4LiwCivguYLguKHguYDguKEKK+C5guC4oeC4o+C4sgor4LmC4Lih4Lij4Li1CivguYLguKHguYDguKPguKgKK+C5guC4oeC4peC4tOC4muC4lOC4teC4meC4seC4oQor4LmC4Lih4Lil4Li1CivguYLguKHguYDguKXguIHguLjguKUKK+C5guC4oeC4qQor4LmC4Lih4Lip4LiBCivguYLguKHguKnguJMKK+C5guC4oeC5gOC4quC4qgor4LmC4Lih4LmI4Lir4LmMCivguYLguKHguKvguLAKK+C5guC4oeC5guC4qwor4LmE4Lih4LiB4LiyCivguYTguKHguITguKPguK3guJkKK+C5hOC4oeC5guC4hOC4geC4o+C4seC4oQor4LmE4Lih4LmC4LiE4Lij4Lif4Li04Lil4LmM4LihCivguYTguKHguYLguITguKPguYLguJ/guJkKK+C5hOC4oeC5guC4hOC4o+C4oeC4tOC5gOC4leC4reC4o+C5jAor4LmE4Lih4LmC4LiE4Lij4LmA4Lih4LiV4LijCivguYTguKHguYLguITguKPguKXguLTguJXguKMKK+C5hOC4oeC5guC4hOC4o+C5gOC4p+C4nwor4LmE4Lih4LiV4Lij4Li1CivguYTguKHguYjguYTguKHguYkKK+C5hOC4oeC4ouC4o+C4suC4mgor4LmE4Lih4Lil4LmMCivguKIKK+C4ouC4gQor4Lii4LiB4LiB4Lij4Liw4Lia4Lix4LiV4LijCivguKLguIHguJkKK+C4ouC4hwor4Lii4LiH4Lii4Li44LiX4LiY4LmMCivguKLguIfguYLguKLguYgKK+C4ouC4iuC4uOC4o+C5gOC4p+C4lwor4Lii4LiV4Li0CivguKLguJbguLIKK+C4ouC5iOC4mQor4Lii4LiZ4LiV4LmMCivguKLguJnguJXguKPguYwKK+C4ouC4oQor4Lii4Lih4LiBCivguKLguKHguYLguJTguKIKK+C4ouC4oeC4meC4sgor4Lii4Lih4LilCivguKLguKPguKPguKLguIcKK+C4ouC4pQor4Lii4LinCivguKLguKfguIHguKrguLIKK+C4ouC4p+C4hwor4Lii4Lin4LiUCivguKLguKfguJTguKLguLLguJkKK+C4ouC4p+C4mQor4Lii4Lin4LiaCivguKLguYnguKfguKIKK+C4ouC4p+C4o+C4ouC4suC4leC4owor4Lii4Lin4LiyCivguKLguKfguLLguITguLgKK+C4ouC4qAor4Lii4LmC4LiqCivguKLguK0KK+C4ouC4reC4gQor4Lii4Lit4LiB4Lii4LmJ4Lit4LiZCivguKLguYfguK3guIHguYHguKLguYfguIEKK+C4ouC5h+C4reC4geC5geC4ouC5h+C4geC5hgor4Lii4Lit4LiHCivguKLguYjguK3guIcKK+C4ouC5ieC4reC4hwor4Lii4Lit4LiH4LmGCivguKLguYjguK3guIfguYDguKvguIfguYfguJQKK+C4ouC4reC4lAor4Lii4Lit4LiU4LiI4Liy4LiBCivguKLguK3guJkKK+C4ouC5ieC4reC4mQor4Lii4Lit4LiaCivguKLguK3guKEKK+C4ouC5iOC4reC4oQor4Lii4LmJ4Lit4LihCivguKLguYjguK3guKIKK+C4ouC5ieC4reC4ogor4Lii4LmJ4Lit4LmB4Lii4LmJCivguKLguLAKK+C4ouC5iOC4sAor4Lii4Liw4LiH4Lix4LiZ4LiI4Liw4LiE4Lix4LiaCivguKLguLDguKLguK3guJoKK+C4ouC4sOC4ouC4seC4mQor4Lii4Liw4Lii4Lix4LiaCivguKLguLDguKLguLLguJkKK+C4ouC4sOC4ouC5ieC4suC4ogor4Lii4Liw4Lii4LmJ4Liy4LinCivguKLguLDguYHguKLguYnguIcKK+C4ouC4sOC4q+C4tOC4l+C4sgor4Lii4Lix4LiBCivguKLguLHguIHguILguYwKK+C4ouC4seC4geC4guC4tOC4meC4tQor4Lii4Lix4LiB4LmA4Lie4Lij4Li14LiiCivguKLguLHguIHguKLguLXguYjguKLguLHguIHguKLguLHguJkKK+C4ouC4seC4geC4ouC4teC5iOC4ouC4seC4geC4q+C4ouC4sgor4Lii4Lix4LiB4LmB4Lii4LmI4Lii4Lix4LiB4Lii4Lix4LiZCivguKLguLHguIHguKnguYwKK+C4ouC4seC4geC4qeC4tOC4k+C4tQor4Lii4Lix4LiB4Lip4Li1CivguKLguLHguIHguKvguKLguLLguKcKK+C4ouC4seC4hwor4Lii4Lix4LmJ4LiHCivguKLguLHguIfguIHguLLguKvguKXguLIKK+C4ouC4seC5iOC4h+C4ouC4t+C4mQor4Lii4Lix4LiH4Lir4Lii4Lix4LiHCivguKLguLHguIrguYLguI3guJvguKfguLXguJUKK+C4ouC4seC4iuC4mQor4Lii4Lix4LiK4Lih4Liy4LiZCivguKLguLHguI0KK+C4ouC4seC4jeC4jeC4sAor4Lii4Lix4LiN4LiN4Lix4LiH4LiE4LmMCivguKLguLHguJDguLQKK+C4ouC4seC4kOC4tOC4oeC4mOC4uOC4geC4sgor4Lii4Lix4LiUCivguKLguLHguJXguLTguKDguLHguIfguITguYwKK+C4ouC4seC4mQor4Lii4Lix4LmI4LiZCivguKLguLHguJnguJXguYwKK+C4ouC4seC4meC4leC4o+C5jAor4Lii4Lix4LmI4LiZ4LiV4Liw4LiZ4Li1CivguKLguLHguJnguYDguKLguYnguLIKK+C4ouC4seC4mgor4Lii4Lix4Lia4LmGCivguKLguLHguJrguKLguLHguYnguIcKK+C4ouC4seC5iOC4pwor4Lii4Lix4LmJ4LinCivguKLguLHguYnguKfguYDguKLguLXguYnguKIKK+C4ouC4seC4p+C4o+C4ouC4suC4leC4owor4Lii4Lix4Lip4LiP4Li0CivguKLguLIKK+C4ouC5iOC4sgor4Lii4Liy4LiBCivguKLguLLguIQKK+C4ouC4suC4hOC4uAor4Lii4Liy4LiE4Li5CivguKLguLLguIcKK+C4ouC5iOC4suC4hwor4Lii4LmI4Liy4LiH4LiX4Lij4Liy4LiiCivguKLguLLguIjguIEKK+C4ouC4suC4iOC4mQor4Lii4Liy4LiI4LiZ4LiBCivguKLguLLguIjguJnguLIKK+C4ouC4suC5hOC4ieC4mQor4Lii4Liy4LiK4LiBCivguKLguLLguJQKK+C4ouC4suC4lOC4sgor4Lii4Liy4LiV4LiZ4LiyCivguKLguLLguJXguKMKK+C4ouC4suC4leC4o+C4sgor4Lii4Liy4LiZCivguKLguYjguLLguJkKK+C4ouC4suC4meC4gQor4Lii4LmI4Liy4LiZ4LiB4Lit4Lia4LiZ4Liy4LiHCivguKLguYjguLLguJnguJfguKPguLLguKIKK+C4ouC5iOC4suC4meC4nuC4suC5guC4q+C4oQor4Lii4LmI4Liy4LiZ4Lih4LiE4Lin4Liy4LiiCivguKLguLLguJnguKHguLLguKgKK+C4ouC5iOC4suC4meC4peC4tOC5gOC4oOC4sgor4Lii4LmI4Liy4LiZ4Liy4LiHCivguKLguYjguLLguJnguLLguIfguIrguYnguLLguIcKK+C4ouC4suC4meC4tQor4Lii4Liy4LiZ4Li44Lih4Liy4LioCivguKLguLLguJoKK+C4ouC4suC4muC5hgor4Lii4LmI4Liy4LihCivguKLguLLguKHguIHguLLguKXguLTguIEKK+C4ouC4suC4oeC5gOC4geC4sgor4Lii4Liy4Lih4Lix4LiB4LiB4Liy4LijCivguKLguLLguKHguLTguIEKK+C4ouC4suC4ogor4Lii4LmJ4Liy4LiiCivguKLguLLguKLguLUKK+C4ouC4suC4pwor4Lii4LmJ4Liy4LinCivguKLguLLguKfguIHguLLguKXguLTguIEKK+C4ouC4suC4p+C4iuC4teC4p+C4tOC4gQor4Lii4Liy4Lin4Lix4LiqCivguKLguLLguKvguKLguLHguIcKK+C4ouC4suC4q+C4ouC4sgor4Lii4Liy4Lir4Lii4Li1CivguKLguLMKK+C4ouC5iOC4swor4Lii4LmJ4LizCivguKLguLPguKLguLLguKEKK+C4ouC4s+C5gOC4ouC4teC4ogor4Lii4LmI4Liz4LmB4Lii4LmICivguKLguYnguLPguYDguKvguKLguK0KK+C4ouC4tOC4gQor4Lii4Li04LiB4LmGCivguKLguLTguIcKK+C4ouC4tOC5iOC4hwor4Lii4Li04LiH4Lif4Lix4LiZCivguKLguLTguI/guJDguLAKK+C4ouC4tOC4kAor4Lii4Li04LiZCivguKLguLTguJoKK+C4ouC4tOC4muC5hgor4Lii4Li04Lib4LiL4Lix4LihCivguKLguLTguJvguIvguLUKK+C4ouC4tOC5ieC4oQor4Lii4Li04Lih4LiZ4Liy4Liq4LiV4Li04LiBCivguKLguLTguKvguKfguLIKK+C4ouC4tQor4Lii4Li14LmICivguKLguLXguYjguIHguYjguLIKK+C4ouC4teC5iOC5gOC4gQor4Lii4Li14LmI4LmA4LiC4LmI4LiHCivguKLguLXguYjguYLguJYKK+C4ouC4teC4mQor4Lii4Li14LmI4LmC4Lib4LmJCivguKLguLXguYjguKDguLnguYgKK+C4ouC4teC4o+C4suC4nwor4Lii4Li14LmI4Liq4LiBCivguKLguLXguYjguKrguIcKK+C4ouC4teC5iOC4quC4mQor4Lii4Li14LmI4Liq4Liy4LiZCivguKLguLXguYjguKrguYjguLLguJkKK+C4ouC4teC5iOC4quC4tOC4mgor4Lii4Li14LmI4Liq4Li44LmI4LiZCivguKLguLXguYjguKvguKPguLAKK+C4ouC4teC5iOC4q+C4o+C5iOC4sgor4Lii4Li14LmI4Lir4LmJ4LitCivguKLguLXguYjguKvguLjguJoKK+C4ouC4tuC4geC4ouC4t+C4rQor4Lii4Li34LiUCivguKLguLfguJkKK+C4ouC4t+C5iOC4mQor4Lii4Li34LihCivguKLguLfguYnguK0KK+C4ouC4uAor4Lii4Li44LiB4LiB4Lij4Liw4Lia4Lix4LiV4LijCivguKLguLjguIHguJTguLQKK+C4ouC4uOC4geC4leC5jAor4Lii4Li44LiB4LiV4Li0CivguKLguLjguIQKK+C4ouC4uOC4hOC4meC4mOC4owor4Lii4Li44LiE4LilCivguKLguLjguITguKXguJrguLLguJcKK+C4ouC4uOC4hOC4seC4meC4leC5jAor4Lii4Li44LiE4Lix4LiZ4LiY4LijCivguKLguLjguITguLjguJnguJjguKMKK+C4ouC4uOC4hwor4Lii4Li44LmI4LiHCivguKLguLjguYnguIcKK+C4ouC4uOC4h+C4geC4p+C4suC4lAor4Lii4Li44LiH4Lib4Lix4LiUCivguKLguLjguJQKK+C4ouC4uOC4lQor4Lii4Li44LiV4Li0CivguKLguLjguJfguJjguYwKK+C4ouC4uOC4l+C4mOC4meC4sgor4Lii4Li44LiaCivguKLguLjguYjguJrguKLguLHguYjguJoKK+C4ouC4uOC4muC4ouC4tOC4mgor4Lii4Li44Lia4LilCivguKLguLjguJ7guJTguLUKK+C4ouC4uOC4nuC4sgor4Lii4Li44Lie4Liy4LiZCivguKLguLjguJ7guLLguJ7guLLguKUKK+C4ouC4uOC4nuC4suC4nuC4tOC4mQor4Lii4Li44LmI4Lih4Lii4LmI4Liy4LihCivguKLguLjguYjguKIKK+C4ouC4uOC5ieC4ogor4Lii4Li44Lij4Lia4Liy4LiV4LijCivguKLguLjguKPguKLguLLguJXguKMKK+C4ouC4uOC4p+C4lOC4tQor4Lii4Li44Lin4LiyCivguKLguLjguKfguLLguJkKK+C4ouC4uOC4q+C4muC4suC4leC4owor4Lii4Li5CivguKLguLnguYgKK+C4ouC4ueC4hOC4suC4peC4tOC4m+C4leC4seC4qgor4Lii4Li54LiHCivguKLguLnguYLguJQKK+C4ouC4ueC4luC4sAor4Lii4Li54LiW4Li04LiB4LiyCivguKLguLnguJvguLAKK+C4ouC4ueC4o+C4ouC4suC4leC4owor4Lii4Li54Lij4Li04LiBCivguKLguLnguYDguKPguJnguLHguKoKK+C4ouC4ueC5gOC4o+C5gOC4meC4teC4ouC4oQor4Lii4Li54LmC4Lij4LmA4Lie4Li14Lii4LihCivguKLguLnguKnguLAKK+C4ouC4ueC5iOC4reC4teC5iAor4LmA4Lii4LmJCivguYDguKLguYYKK+C5gOC4ouC4hwor4LmA4Lii4LiL4Li5CivguYDguKLguYfguJQKK+C5gOC4ouC5h+C4mQor4LmA4Lii4LmH4LiZ4LiV4Liy4LmC4LifCivguYDguKLguYfguJnguYDguJXguLLguYLguJ8KK+C5gOC4ouC5h+C4mgor4LmA4Lii4Lig4Li44Lii4Lii4LiwCivguYDguKLguYnguKIKK+C5gOC4ouC4rQor4LmA4Lii4LmI4LitCivguYDguKLguK3guKPguKHguLHguJkKK+C5gOC4ouC4reC4pwor4LmA4Lii4LmI4Lit4Lir4Lii4Li04LmI4LiHCivguYDguKLguK3guLAKK+C5gOC4ouC4sgor4LmA4Lii4LmJ4LiyCivguYDguKLguLLguKfguYwKK+C5gOC4ouC4suC4p+C4nuC4sgor4LmA4Lii4Liy4Lin4Lie4Liy4LiT4Li1CivguYDguKLguLLguKfguJ7guLLguJkKK+C5gOC4ouC4tOC4hwor4LmA4Lii4Li04LiZCivguYDguKLguLTguYjguJkKK+C5gOC4ouC4tOC4meC4ouC4rQor4LmA4Lii4Li04Lia4LmGCivguYDguKLguLTguJrguKLguLLguJoKK+C5gOC4ouC4tOC5ieC4oQor4LmA4Lii4Li14LiiCivguYDguKLguLXguYjguKLguIcKK+C5gOC4ouC4teC4ouC4h+C4nOC4sgor4LmA4Lii4Li14LmI4Lii4LiH4Lit4Lii4LmI4Liy4LiHCivguYDguKLguLXguKLguJTguKLguLHguJQKK+C5gOC4ouC4teC4ouC4mQor4LmA4Lii4Li14Lii4LiaCivguYDguKLguLXguYjguKLguKEKK+C5gOC4ouC4teC5iOC4ouC4oeC4p+C4tOC4oeC4suC4mQor4LmA4Lii4Li14Lii4Lij4Lia4Lix4LiaCivguYDguKLguLXguKLguKPguKLguIcKK+C5gOC4ouC4teC4ouC4pwor4LmA4Lii4Li14LmI4Lii4LinCivguYDguKLguLXguYjguKLguKfguIfguLXguKcKK+C5gOC4ouC4teC4ouC4p+C4ouC4hwor4LmA4Lii4Li14Lii4Lin4Lii4LiyCivguYDguKLguLfguK0KK+C5gOC4ouC4t+C5iOC4rQor4LmA4Lii4Li34LmJ4LitCivguYDguKLguLfguK3guIEKK+C5gOC4ouC4t+C4reC4hwor4LmA4Lii4Li34LmI4Lit4LiHCivguYDguKLguLfguYnguK3guIcKK+C5gOC4ouC4t+C4reC4mQor4LmA4Lii4Li34LmJ4Lit4LiZCivguYHguKLguYgKK+C5geC4ouC5iQor4LmB4Lii4LiBCivguYHguKLguIcKK+C5geC4ouC5iOC4hwor4LmB4Lii4LmJ4LiHCivguYHguKLguIfguYHguKLguYgKK+C5geC4ouC4h+C5geC4ouC5iQor4LmB4Lii4LiaCivguYHguKLguYfguJoKK+C5geC4ouC4oQor4LmB4Lii4LmJ4LihCivguYHguKLguYHguKoKK+C5geC4ouC4sAor4LmC4LiiCivguYLguKLguYkKK+C5guC4ouC4gQor4LmC4Lii4LiB4LiV4Lij4LmMCivguYLguKLguITguYDguIHguJPguJHguYwKK+C5guC4ouC4hOC4ouC4sAor4LmC4Lii4LiE4LiwCivguYLguKLguITguLTguJkKK+C5guC4ouC4hOC4tQor4LmC4Lii4LiHCivguYLguKLguYjguIfguYYKK+C5guC4ouC4h+C5guC4ouC5iAor4LmC4Lii4LiK4LiBCivguYLguKLguIrguJnguYwKK+C5guC4ouC4iuC4meC4sgor4LmC4Lii4LiUCivguYLguKLguJUKK+C5guC4ouC4luC4tOC4geC4sAor4LmC4Lii4LiX4Liw4LiB4LiyCivguYLguKLguJjguLIKK+C5guC4ouC4mQor4LmC4Lii4LiZ4LiBCivguYLguKLguJnguLTguYLguKoKK+C5guC4ouC4meC4tOC5guC4quC4oeC4meC4quC4tOC4geC4suC4owor4LmC4Lii4LiZ4Li1CivguYLguKLguJ7guJnguLAKK+C5guC4ouC4oQor4LmC4Lii4LmC4LiqCivguYPguKIKK+C5hOC4ogor4LmE4Lii4LmICivguYTguKLguJTguLUKK+C5hOC4ouC5hOC4ngor4LmE4Lii4LmE4LiiCivguYTguKLguYjguYTguKLguYgKK+C4owor4Lij4LiBCivguKPguIHguIrguYnguLLguIcKK+C4o+C4geC4n+C5ieC4sgor4Lij4LiHCivguKPguIfguIHguLjguYwKK+C4o+C4h+C4hOC5jAor4Lij4LiH4Lij4Lit4LiHCivguKPguIjguJnguLIKK+C4o+C4iOC5gOC4o+C4ggor4Lij4LiI4LmA4Lil4LiCCivguKPguIjguLTguJUKK+C4o+C4iuC4geC4sAor4Lij4LiK4LiV4LiwCivguKPguIrguJnguLQKK+C4o+C4iuC4meC4tQor4Lij4LiK4LiZ4Li14Lii4LmMCivguKPguIrguLAKK+C4o+C4kwor4Lij4LiUCivguKPguJTguLUKK+C4o+C4leC4meC4sAor4Lij4LiV4LiwCivguKPguJXguLQKK+C4o+C4lgor4Lij4LiW4Lib4Li44LiH4LiE4LieCivguKPguJbguJvguLjguIfguITguKcKK+C4o+C4luC4ouC4sgor4Lij4LiW4Liy4LiZ4Li24LiBCivguKPguYDguJbguKrguKDguLAKK+C4o+C4lwor4Lij4LiX4LiZ4LiwCivguKPguJkKK+C4o+C5iOC4mQor4Lij4LmJ4LiZCivguKPguJnguJQKK+C4o+C4mgor4Lij4Lia4LiqCivguKPguJrguLLguI0KK+C4o+C4ngor4Lij4Lie4LiyCivguKPguJ7guLQKK+C4o+C4nuC4tQor4Lij4LihCivguKPguKHguJPguLXguKLguYwKK+C4o+C4oeC4ouC5jAor4Lij4Lih4LmA4Lii4LioCivguKPguKLguLAKK+C4o+C4p+C4gQor4Lij4Lin4LiHCivguKPguYjguKfguIcKK+C4o+C4p+C4lAor4Lij4Lin4LiZCivguKPguYjguKfguJkKK+C4o+C4p+C4mgor4Lij4Lin4LihCivguKPguYjguKfguKEKK+C4o+C4p+C4ogor4Lij4Lin4Lii4LmGCivguKPguKfguLAKK+C4o+C4p+C4tAor4Lij4Lin4Li1CivguKPguKjguJnguLIKK+C4o+C4qgor4Lij4Liq4LiBCivguKPguKrguJnguLIKK+C4o+C4quC4quC4uOC4hOC4meC4mOC5jAor4Lij4Liq4Liy4Lii4LiZ4LmA4Lin4LiXCivguKPguKrguLTguIEKK+C4o+C4q+C4seC4lwor4Lij4Lir4Lix4LiqCivguKPguKvguLHguKrguKLguYwKK+C4o+C4q+C4tOC4lQor4Lij4LmC4LirCivguKPguK0KK+C4o+C5iOC4rQor4Lij4Lit4LiBCivguKPguK3guIcKK+C4o+C5iOC4reC4hwor4Lij4LmJ4Lit4LiHCivguKPguK3guIfguYDguIfguYfguIcKK+C4o+C5iOC4reC4h+C5geC4o+C5iOC4hwor4Lij4Lit4LiUCivguKPguK3guJkKK+C4o+C5iOC4reC4mQor4Lij4LmJ4Lit4LiZCivguKPguYjguK3guJnguJfguK3guIcKK+C4o+C4reC4mgor4Lij4Lit4LihCivguKPguK3guKHguIrguK3guKEKK+C4o+C4reC4oeC4o+C5iOC4rQor4Lij4Lit4LiiCivguKPguYjguK3guKIKK+C4o+C5ieC4reC4ogor4Lij4LmJ4Lit4Lii4Lij4Li5CivguKPguYjguK3guYHguKPguYgKK+C4o+C4sAor4Lij4Liw4LiB4LiwCivguKPguLDguIHguLIKK+C4o+C4sOC4geC4swor4Lij4Liw4LmA4LiB4Liw4Lij4Liw4LiB4LiwCivguKPguLDguITguJkKK+C4o+C4sOC4hOC4suC4hwor4Lij4Liw4LiE4Liy4LiiCivguKPguLDguYDguITguYfguJTguKPguLDguITguLLguKIKK+C4o+C4sOC5geC4hOC4sAor4Lij4Liw4LiG4Lix4LiHCivguKPguLDguIfguKEKK+C4o+C4sOC4h+C4oeC5hOC4nuC4owor4Lij4Liw4LiH4Lix4LiaCivguKPguLDguIfguLHguJrguJ7guLTguKkKK+C4o+C4sOC4h+C4teC5iAor4Lij4Liw4LmB4LiH4LmJCivguKPguLDguYLguIfguIHguKvguLTguJkKK+C4o+C4sOC4iuC4p+C4ogor4Lij4Liw4LiU4LihCivguKPguLDguJTguLAKK+C4o+C4sOC4lOC4seC4mgor4Lij4Liw4LiU4LiyCivguKPguLDguJTguYjguLLguKcKK+C4o+C4sOC4lOC4uQor4Lij4Liw4LmA4LiU4LmI4LiZCivguKPguLDguYDguJTguLXguKLguIcKK+C4o+C4sOC5geC4lAor4Lij4Liw4LiV4Li5CivguKPguLDguJfguIEKK+C4o+C4sOC4l+C4lAor4Lij4Liw4LiX4LihCivguKPguLDguJfguKfguKIKK+C4o+C4sOC4l+C4reC4lAor4Lij4Liw4LiX4LiyCivguKPguLDguJfguLbguIEKK+C4o+C4sOC4l+C4tuC4hwor4Lij4Liw4LmB4LiX4LiwCivguKPguLDguJnguLHguKEKK+C4o+C4sOC4meC4suC4lAor4Lij4Liw4LiZ4Liy4LiaCivguKPguLDguJnguLLguKEKK+C4o+C4sOC4meC4suC4pwor4Lij4Liw4LmA4LiZ4LiZCivguKPguLDguYDguJnguJnguKPguLDguJnguLLguJQKK+C4o+C4sOC5gOC4meC4o+C4sOC4meC4suC4lAor4Lij4Liw4LmA4LiZ4Li14Lii4LiUCivguKPguLDguYHguJnguIcKK+C4o+C4sOC5geC4meC4sAor4Lij4Liw4Lia4LiaCivguKPguLDguJrguKEKK+C4o+C4sOC4muC4reC4mgor4Lij4Liw4Lia4Lix4LiUCivguKPguLDguJrguLHguJoKK+C4o+C4sOC4muC4suC4jQor4Lij4Liw4Lia4Liy4LiUCivguKPguLDguJrguLLguJnguLUKK+C4o+C4sOC4muC4suC4meC4teC5iQor4Lij4Liw4Lia4Liy4LiiCivguKPguLDguJrguLMKK+C4o+C4sOC4muC4tAor4Lij4Liw4Lia4Li04LilCivguKPguLDguJrguLfguK0KK+C4o+C4sOC4muC4uAor4Lij4Liw4Lia4Li5CivguKPguLDguYDguJrguIcKK+C4o+C4sOC5gOC4muC5h+C4hwor4Lij4Liw4LmA4Lia4Li04LiUCivguKPguLDguYDguJrguLXguKLguIcKK+C4o+C4sOC5gOC4muC4teC4ouC4mQor4Lij4Liw4LmA4Lia4Li14Lii4LiaCivguKPguLDguYHguJrguJoKK+C4o+C4sOC5g+C4mgor4Lij4Liw4Lih4Lix4LiU4Lij4Liw4Lin4Lix4LiHCivguKPguLDguKHguLIKK+C4o+C4sOC4oeC4suC4lAor4Lij4Liw4LmA4Lih4Li14Lii4LijCivguKPguLDguKLguYjguK0KK+C4o+C4sOC4ouC5iOC4reC4oQor4Lij4Liw4Lii4LiwCivguKPguLDguKLguLHguIcKK+C4o+C4sOC4ouC4seC5ieC4hwor4Lij4Liw4Lii4Lix4LiUCivguKPguLDguKLguLHguJoKK+C4o+C4sOC4ouC5ieC4sgor4Lij4Liw4Lii4Liy4LiZCivguKPguLDguKLguLLguJoKK+C4o+C4sOC4ouC4suC4oeC4o+C4sOC4ouC4seC4mgor4Lij4Liw4Lii4LizCivguKPguLDguKLguLTguJrguKPguLDguKLguLHguJoKK+C4o+C4sOC5guC4ouC4hwor4Lij4Liw4Lij4Lin4LiiCivguKPguLDguKPguK3guIcKK+C4o+C4sOC4o+C5iOC4reC4mQor4Lij4Liw4Lij4Lix4LinCivguKPguLDguKPguLLguJkKK+C4o+C4sOC4o+C5iOC4suC4ogor4Lij4Liw4Lij4Liy4LinCivguKPguLDguKPguLTguIEKK+C4o+C4sOC4o+C4teC5iAor4Lij4Liw4Lij4Li24LiHCivguKPguLDguKPguLfguYjguJkKK+C4o+C4sOC4o+C4t+C5ieC4mQor4Lij4Liw4LmA4LijCivguKPguLDguYDguKPguYgKK+C4o+C4sOC5gOC4o+C5ieC4hwor4Lij4Liw4LmA4Lij4LmH4LinCivguKPguLDguYDguKPguLTguIcKK+C4o+C4sOC5gOC4o+C4teC4ouC4hwor4Lij4Liw4LmA4Lij4Li14Lii4LihCivguKPguLDguYDguKPguLfguYjguK3guKIKK+C4o+C4sOC5geC4o+C5iAor4Lij4Liw4LmB4Lij4LiHCivguKPguLDguKXguIcKK+C4o+C4sOC4peC4p+C4hwor4Lij4Liw4Lil4Lit4LiBCivguKPguLDguKXguLHguJQKK+C4o+C4sOC4peC4tuC4gQor4Lij4Liw4Lil4Li44LiBCivguKPguLDguKXguLjguIcKK+C4o+C4sOC5gOC4peC4tOC4hwor4Lij4Liw4LmA4Lil4Li14Lii4LiUCivguKPguLDguKfguLHguIcKK+C4o+C4sOC4p+C4seC4h+C5hOC4nuC4owor4Lij4Liw4Lin4Lix4LiH4Lin4Lix4LiZCivguKPguLDguKfguLLguIcKK+C4o+C4sOC4p+C4suC4lOC4o+C4sOC5hOC4pwor4Lij4Liw4Lin4Liy4LihCivguKPguLDguKfguLLguKIKK+C4o+C4sOC4p+C4tOC4hwor4Lij4Liw4LmB4Lin4LiHCivguKPguLDguYHguKfguJTguKPguLDguKfguLHguIcKK+C4o+C4sOC5hOC4pwor4Lij4Liw4Liq4Liy4LiiCivguKPguLDguKrguYjguLPguKPguLDguKrguLLguKIKK+C4o+C4sOC4quC4tQor4Lij4Liw4LmA4Liq4Li04LiU4Lij4Liw4Liq4Lix4LiHCivguKPguLDguKvguIHguKPguLDguYDguKvguLTguJkKK+C4o+C4sOC4q+C4hwor4Lij4Liw4Lir4Lin4LiiCivguKPguLDguKvguKfguYjguLLguIcKK+C4o+C4sOC4q+C4reC4h+C4o+C4sOC5geC4q+C4hwor4Lij4Liw4Lir4Lit4LiaCivguKPguLDguKvguLHguJQKK+C4o+C4sOC4q+C4suC4ogor4Lij4Liw4Lir4Li44LiiCivguKPguLDguYDguKvguYfguIgKK+C4o+C4sOC5gOC4q+C4ogor4Lij4Liw4LmA4Lir4Lij4Liw4Lir4LiZCivguKPguLDguYDguKvguKvguJkKK+C4o+C4sOC5gOC4q+C4q+C4seC4mQor4Lij4Liw4LmA4Lir4Li04LiUCivguKPguLDguYDguKvguLTguJnguKPguLDguKvguIEKK+C4o+C4sOC5geC4q+C4gQor4Lij4Liw4LmB4Lir4LiHCivguKPguLDguYLguKvguKIKK+C4o+C4sOC4reC4oeC4o+C4sOC4reC4sgor4Lij4Liw4Lit4LiyCivguKPguLDguK3guLTguJTguKPguLDguK3guLIKK+C4o+C4sOC4reC4tuC4gQor4Lij4Liw4Lit4Li4CivguKPguLDguYHguK3guJkKK+C4o+C4seC4gQor4Lij4Lix4LiB4LiC4LmMCivguKPguLHguIHguILguKrguLAKK+C4o+C4seC4geC4guC4sgor4Lij4Lix4LiB4LiC4Li04LiVCivguKPguLHguIHguJTguJsKK+C4o+C4seC4geC4lOC4sAor4Lij4Lix4LiB4LiV4LiwCivguKPguLHguIHguJrguLXguYkKK+C4o+C4seC4geC5gOC4o+C5iAor4Lij4Lix4LiB4LmB4Lij4LmJCivguKPguLHguIHguKnguYwKK+C4o+C4seC4geC4qeC4sgor4Lij4Lix4LiHCivguKPguLHguYnguIcKK+C4o+C4seC4h+C5geC4gQor4Lij4Lix4LiH4LiE4LmMCivguKPguLHguIfguITguKfguLLguJkKK+C4o+C4seC4h+C5geC4hAor4Lij4Lix4LiH4LiZ4Liy4LiZCivguKPguLHguIfguKPguK3guIcKK+C4o+C4seC4h+C4p+C4seC4lAor4Lij4Lix4LiH4Liq4Li0CivguKPguLHguIfguKrguLTguKHguLHguJnguJXguLjguYwKK+C4o+C4seC4h+C4quC4tOC4oeC4sgor4Lij4Lix4LiH4Liq4Li1CivguKPguLHguIfguKvguKLguLLguKcKK+C4o+C4seC4iOC4ieC4sgor4Lij4Lix4LiKCivguKPguLHguIrguIHguLAKK+C4o+C4seC4iuC4iuC4uAor4Lij4Lix4LiK4LiO4Liy4Lig4Li04LmA4Lip4LiBCivguKPguLHguIrguJnguLAKK+C4o+C4seC4iuC4meC4tQor4Lij4Lix4LiN4LiI4Lin4LiZCivguKPguLHguI/guJDguLLguKDguLTguJvguLLguKXguYLguJnguJrguLLguKIKK+C4o+C4seC4kAor4Lij4Lix4LiUCivguKPguLHguJUKK+C4o+C4seC4leC4hOC4mQor4Lij4Lix4LiV4LiV4Lix4LiN4LiN4Li5CivguKPguLHguJXguJXguLQKK+C4o+C4seC4leC4meC5jAor4Lij4Lix4LiV4LiZ4LiwCivguKPguLHguJXguKHguLIKK+C4o+C4seC4lgor4Lij4Lix4LiW4Lii4LiyCivguKPguLHguJfguYDguJfguK3guKPguYzguJ/guK3guKPguYzguYDguJTguLXguKLguKEKK+C4o+C4seC4mQor4Lij4Lix4LmJ4LiZCivguKPguLHguJnguIrguJnguKPguLHguJnguYHguIrguIcKK+C4o+C4seC4meC4l+C4lAor4Lij4Lix4LiZ4LiX4Lin4LiiCivguKPguLHguJnguJfguLMKK+C4o+C4seC4meC5geC4l+C4sAor4Lij4Lix4LiZ4LiY4LiwCivguKPguLHguJoKK+C4o+C4seC4oeC4oOC4sgor4Lij4Lix4Lih4Lih4Li14LmICivguKPguLHguKHguKLguYwKK+C4o+C4seC4ogor4Lij4Lix4LinCivguKPguLHguYjguKcKK+C4o+C4seC5ieC4pwor4Lij4Lix4Lio4Lih4Li04Lih4Lix4LiV4Li0CivguKPguLHguKjguKHguLTguKHguLLguJkKK+C4o+C4seC4qOC4oeC4tQor4Lij4Lix4Lip4LiO4Liy4LiB4LijCivguKPguLHguKrguKrguLAKK+C4o+C4sgor4Lij4LmI4LiyCivguKPguYnguLIKK+C4o+C4suC4gQor4Lij4Liy4LiB4Lip4LiqCivguKPguLLguIHguYLguKnguKoKK+C4o+C4suC4geC4quC4suC4lAor4Lij4Liy4LiE4LiwCivguKPguLLguITguLIKK+C4o+C4suC4hOC4tOC4mQor4Lij4Liy4LiE4Li1CivguKPguLLguIcKK+C4o+C5iOC4suC4hwor4Lij4LmJ4Liy4LiHCivguKPguLLguIfguIjguLfguJQKK+C4o+C4suC4h+C4iuC4suC4hwor4Lij4Liy4LiH4LiU4LizCivguKPguLLguIfguYHguJTguIcKK+C4o+C4suC4h+C4meC4suC4mQor4Lij4Liy4LiH4Lin4Lix4LilCivguKPguLLguIoKK+C4o+C4suC4iuC4jeC4tQor4Lij4Liy4LiK4LiU4Lix4LiUCivguKPguLLguIrguJ7guKTguIHguKnguYwKK+C4o+C4suC4iuC4oeC4suC4k+C4ngor4Lij4Liy4LiK4Lii4LmMCivguKPguLLguIrguLAKK+C4o+C4suC4iuC4seC4mQor4Lij4Liy4LiK4Lix4LiZ4Lii4LmMCivguKPguLLguIrguLHguKIKK+C4o+C4suC4iuC4sgor4Lij4Liy4LiK4Liy4Lii4LiV4LiZ4LiwCivguKPguLLguIrguLLguKfguJTguLUKK+C4o+C4suC4iuC4tAor4Lij4Liy4LiK4Li04LiZ4Li1CivguKPguLLguIrguLUKK+C4o+C4suC5gOC4iuC4mQor4Lij4Liy4LmA4LiK4LiZ4LiX4Lij4Lii4Liy4LiZCivguKPguLLguI0KK+C4o+C4suC4jeC4o+C4reC4mQor4Lij4Liy4LiUCivguKPguLLguJUKK+C4o+C4suC4leC4owor4Lij4Liy4LiV4Lij4Li1CivguKPguLLguJXguKPguLXguJvguKPguLDguJTguLHguJrguJTguLLguKcKK+C4o+C4suC5guC4lwor4Lij4Liy4LiY4LiyCivguKPguLLguJkKK+C4o+C5iOC4suC4mQor4Lij4LmJ4Liy4LiZCivguKPguLLguJoKK+C4o+C4suC4nuC4k+C5jAor4Lij4Liy4LihCivguKPguLLguKHguYDguIHguLXguKLguKPguJXguLTguYwKK+C4o+C4suC4oeC4quC4ueC4owor4Lij4Liy4Lih4Lix4LiNCivguKPguLLguKHguLIKK+C4o+C4suC4ogor4Lij4LmI4Liy4LiiCivguKPguYnguLLguKIKK+C4o+C5iOC4suC4ouC4o+C4seC4hwor4Lij4Liy4LinCivguKPguYnguLLguKcKK+C4o+C4suC4p+C4tQor4Lij4Liy4Lio4Li1CivguKPguLLguKnguI7guKMKK+C4o+C4suC4qeC4juC4o+C5jAor4Lij4Liy4Lip4LiV4Lij4Li1CivguKPguLLguKnguKPguLLguJXguKPguLTguJkKK+C4o+C4suC4qeC4o+C4suC4leC4o+C4tQor4Lij4Liy4Liq4Li1CivguKPguLLguKvguLgKK+C4o+C5iOC4suC4q+C4uOC5jAor4Lij4Liy4Lir4Li5CivguKPguLMKK+C4o+C5iOC4swor4Lij4Liz4LiE4Liy4LiNCivguKPguLPguIfguLHguJoKK+C4o+C4s+C4iOC4p+C4mQor4Lij4Liz4LiL4Li44LiiCivguKPguLPguJrguLLguI0KK+C4o+C4s+C4nuC4seC4mQor4Lij4Liz4Lie4Liy4LiiCivguKPguLPguJ7guLbguIcKK+C4o+C4s+C5gOC4nuC4ogor4Lij4Liz4LmE4LieCivguKPguLPguKHguLDguYDguIIKK+C4o+C4s+C4oeC4sOC4meC4sgor4Lij4Liz4Lih4Liw4LiZ4Liy4LiUCivguKPguLPguKHguLDguKPguYjguK0KK+C4o+C4s+C4ouC4p+C4mQor4Lij4Liz4Lii4LmJ4Lit4LiiCivguKPguLPguYHguKLguYkKK+C4o+C5iOC4s+C4o+C4p+C4ogor4Lij4Liz4Lij4Liy4LiNCivguKPguLPguKPguLMKK+C4o+C4s+C5gOC4owor4Lij4Liz4LmE4LijCivguKPguLPguKXguLbguIEKK+C4o+C4s+C4q+C4seC4lAor4Lij4Liz4Lir4Lix4LiqCivguKPguLQKK+C4o+C4tOC4gQor4Lij4Li04LiB4LmGCivguKPguLTguJTguKrguLXguJTguKfguIcKK+C4o+C4tOC4mQor4Lij4Li04LmJ4LiZCivguKPguLTguJnguYYKK+C4o+C4tOC4mgor4Lij4Li04Lia4Lia4Li04LmJ4LiZCivguKPguLTguJrguKPguLXguYgKK+C4o+C4tOC4muC4q+C4o+C4teC5iAor4Lij4Li04Lib4Li4CivguKPguLTguJvguLkKK+C4o+C4tOC4oQor4Lij4Li04LmJ4LinCivguKPguLTguKnguKLguLIKK+C4o+C4tQor4Lij4Li14LmICivguKPguLXguYkKK+C4o+C4teC5huC4guC4p+C4suC4h+C5hgor4Lij4Li14LmG4Lij4Lit4LmGCivguKPguLXguJQKK+C4o+C4teC4lOC4seC4geC4iuC4seC4mQor4Lij4Li14LiVCivguKPguLXguYDguJnguLXguKLguKEKK+C4o+C4teC4mgor4Lij4Li14LihCivguKPguLXguKPguK0KK+C4o+C4teC5ieC4o+C4tOC4gQor4Lij4Li24LiB4LiV4LmMCivguKPguLbguIcKK+C4o+C4tuC5ieC4hwor4Lij4Li34LmI4LiZCivguKPguLfguYnguJkKK+C4o+C4t+C5ieC4rQor4Lij4Li4CivguKPguLjguIEKK+C4o+C4uOC4geC4guC5jAor4Lij4Li44LiB4LiC4LiB4LiwCivguKPguLjguIHguILguLIKK+C4o+C4uOC4geC4o+C4uOC4ogor4Lij4Li44LiB4Lip4LiwCivguKPguLjguYjguIcKK+C4o+C4uOC5ieC4hwor4Lij4Li44LiH4Lij4Lix4LiHCivguKPguLjguIgKK+C4o+C4uOC4iOC4mQor4Lij4Li44LiI4LiyCivguKPguLjguIjguLQKK+C4o+C4uOC4iOC4tOC4o+C4sAor4Lij4Li44LiI4Li04Lij4LiyCivguKPguLjguIjguLUKK+C4o+C4uOC4iuC4sgor4Lij4Li44LiUCivguKPguLjguJUKK+C4o+C4uOC4l+C4mOC5jAor4Lij4Li44LiX4LijCivguKPguLjguJjguLTguKMKK+C4o+C4uOC5gOC4mOC4teC4ouC4owor4Lij4Li44LiZCivguKPguLjguYjguJkKK+C4o+C4uOC4muC4o+C4ueC5iAor4Lij4Li44Lia4Liy4LiB4Liy4LijCivguKPguLjguKEKK+C4o+C4uOC5iOC4oQor4Lij4Li44LmI4Lih4Lij4LmI4Liy4LihCivguKPguLjguKIKK+C4o+C4uOC5iOC4ogor4Lij4Li44Lij4Li4CivguKPguLjguKnguI/guYwKK+C4o+C4uOC4q+C4sAor4Lij4Li44Lir4Liy4LiNCivguKPguLkKK+C4o+C4ueC5iAor4Lij4Li54LmJCivguKPguLnguIjguLUKK+C4o+C4ueC4lAor4Lij4Li54LiX4Li14LmA4LiZ4Li14Lii4LihCivguKPguLnguYnguJnguK3guJkKK+C4o+C4ueC4muC4tOC5gOC4lOC4teC4ouC4oQor4Lij4Li54LibCivguKPguLnguJvguLTguKLguLAKK+C4o+C4ueC4m+C4tQor4Lij4Li54LmA4Lil4LmH4LiV4LiV4LmMCivguKPguLnguKvguLIKK+C5gOC4o+C5iAor4LmA4Lij4LiCCivguYDguKPguILguLIKK+C5gOC4o+C4guC4suC4hOC4k+C4tOC4lQor4LmA4Lij4LmH4LiHCivguYDguKPguYjguIcKK+C5gOC4o+C5ieC4hwor4LmA4Lij4LiT4Li4CivguYDguKPguJPguLjguIEKK+C5gOC4o+C4k+C4uQor4LmA4Lij4LiU4Lit4LiZCivguYDguKPguJTguLLguKPguYwKK+C5gOC4o+C5gOC4lOC4teC4ouC4oQor4LmA4Lij4LmJ4LiZCivguYDguKPguKLguK3guIcKK+C5gOC4o+C4o+C4p+C4mQor4LmA4Lij4LmE4LijCivguYDguKPguYfguKcKK+C5gOC4o+C5iOC4pwor4LmA4Lij4Lin4LiU4Li1CivguYDguKPguK0KK+C5gOC4o+C5iOC4rQor4LmA4Lij4LiyCivguYDguKPguYjguLIKK+C5gOC4o+C5ieC4sgor4LmA4Lij4LmI4Liy4LmGCivguYDguKPguLLguLAKK+C5gOC4o+C4tOC4hwor4LmA4Lij4Li04LiUCivguYDguKPguLTguKEKK+C5gOC4o+C4tOC5iOC4oQor4LmA4Lij4Li04LmJ4LihCivguYDguKPguLTguKjguKPguYnguLLguIcKK+C5gOC4o+C4teC5iOC4ogor4LmA4Lij4Li14LmJ4Lii4LmGCivguYDguKPguLXguKLguIEKK+C5gOC4o+C4teC4ouC4hwor4LmA4Lij4Li14Lii4LiH4LmGCivguYDguKPguLXguKLguJQKK+C5gOC4o+C4teC4ouC4mQor4LmA4Lij4Li14Lii4LiaCivguYDguKPguLXguKLguKEKK+C5gOC4o+C4teC5iOC4ouC4oQor4LmA4Lij4Li14Lii4LinCivguYDguKPguLXguYjguKLguKcKK+C5gOC4o+C4teC5ieC4ouC4p+C4o+C4gQor4LmA4Lij4Li34LitCivguYDguKPguLfguYjguK0KK+C5gOC4o+C4t+C5ieC4rQor4LmA4Lij4Li34Lit4LiBCivguYDguKPguLfguK3guIHguKrguKfguJkKK+C5gOC4o+C4t+C4reC4hwor4LmA4Lij4Li34LmI4Lit4LiHCivguYDguKPguLfguYnguK3guIcKK+C5gOC4o+C4t+C4reC4h+C4o+C4reC4hwor4LmA4Lij4Li34Lit4LiUCivguYDguKPguLfguK3guJkKK+C5gOC4o+C4t+C5ieC4reC4mQor4LmA4Lij4Li34LmJ4Lit4LiiCivguYHguKMKK+C5geC4o+C5iAor4LmB4Lij4LiBCivguYHguKPguYfguIHguYDguIHguJUKK+C5geC4o+C4hwor4LmB4Lij4LmI4LiHCivguYHguKPguYnguIcKK+C5geC4o+C5iOC4h+C4o+C4tOC5ieC4pwor4LmB4Lij4LmI4LiH4LmE4Lir4LihCivguYHguKPguJQKK+C5geC4o+C5ieC4meC5geC4hOC5ieC4mQor4LmB4Lij4LihCivguYHguKPguYnguKcKK+C5geC4o+C4sAor4LmC4LijCivguYLguKPguYgKK+C5guC4o+C4hAor4LmC4Lij4LiHCivguYLguKPguIgKK+C5guC4o+C4iOC4meC5jAor4LmC4Lij4LmA4LiU4Li14Lii4LihCivguYLguKPguJXguLUKK+C5guC4o+C4lwor4LmC4Lij4LiX4LiZ4LiwCivguYLguKPguJgKK+C5guC4o+C4mOC4owor4LmC4Lij4LmA4LiZ4Li14Lii4LinCivguYLguKPguJvguJnguLAKK+C5guC4o+C4oQor4LmC4Lij4Lih4Lix4LiN4LiICivguYLguKPguKHguLHguJkKK+C5guC4o+C4oeC4seC4meC4hOC4suC4l+C4reC4peC4tOC4gQor4LmC4Lij4LmA4Lih4Lit4Lij4LmMCivguYLguKPguKIKK+C5guC4o+C5gOC4owor4LmC4Lij4LipCivguYLguKPguKnguJPguLAKK+C5guC4o+C4q+C4tOC4k+C4tQor4LmC4Lij4Lir4Li04LiVCivguYTguKMKK+C5hOC4o+C5iAor4LmE4Lij4LmJCivguYTguKPguJ/guLHguJkKK+C5hOC4o+C4ouC5jAor4LikCivguKTguIHguKnguYwKK+C4pOC4geC4qeC4k+C4sAor4Lik4LiE4LmA4Lin4LiXCivguKTguIrguLIKK+C4pOC4iuC4uAor4Lik4LiTCivguKTguJTguLUKK+C4pOC4lOC4teC4ouC4sgor4Lik4LiU4Li5CivguKTguJUKK+C4pOC4leC4tOC4ouC4sgor4Lik4LiV4Li4CivguKTguJXguLjguKrguJnguLLguJkKK+C4pOC4l+C4mOC4sgor4Lik4LiX4LiY4Li04LmMCivguKTguJfguLHguKIKK+C4pOC4qeC4oAor4Lik4Lip4Lii4LiyCivguKTguKnguLUKK+C4pOC5hQor4Lik4LmF4LiK4Li4CivguKTguYXguJTguLUKK+C4pOC5heC4l+C4seC4ogor4Lik4LmF4Lip4Li1CivguKTguYXguKrguLLguKIKK+C4pQor4Lil4LiBCivguKXguIHguLLguKMKK+C4peC4geC4uOC4iAor4Lil4LiE4Li44LiRCivguKXguITguLjguKwKK+C4peC4huC4uAor4Lil4LiHCivguKXguYjguIcKK+C4peC4h+C4geC4sgor4Lil4LmJ4LiH4LmA4Lil4LmJ4LiHCivguKXguJQKK+C4peC4lOC4sgor4Lil4LiZCivguKXguYjguJkKK+C4peC5ieC4mQor4Lil4LiaCivguKXguJrguKEKK+C4peC4muC4reC4hwor4Lil4Lib4LiBCivguKXguJvguJkKK+C4peC4ngor4Lil4Lie4Li44LiKCivguKXguKEKK+C4peC5iOC4oQor4Lil4LmJ4LihCivguKXguKHguLLguJQKK+C4peC4o+C4o+C4peC4uOC4hwor4Lil4Lil4LiZ4LiyCivguKXguKXguLLguI8KK+C4peC4peC4tOC4lQor4Lil4Lin4LiBCivguKXguKfguIcKK+C4peC5iOC4p+C4hwor4Lil4LmJ4Lin4LiHCivguKXguKfguIfguITguYwKK+C4peC4p+C4h+C5gOC4peC5ieC4sgor4Lil4Lin4LiT4LiwCivguKXguKfguJQKK+C4peC5ieC4p+C4mQor4Lil4Lin4LiZ4Lil4Liy4LihCivguKXguKfguJnguLAKK+C4peC5iOC4p+C4oQor4Lil4Lin4LiwCivguKXguKfguLTguJXguKMKK+C4peC4q+C4uAor4Lil4Lir4Li44LiB4LiwCivguKXguYjguK0KK+C4peC5ieC4rQor4Lil4Lit4LiBCivguKXguYfguK3guIHguYDguIHguJUKK+C4peC4reC4geC5geC4peC4gQor4Lil4Lit4LiB4Liy4Lij4Li04LiX4Li24LihCivguKXguK3guIcKK+C4peC5iOC4reC4hwor4Lil4Lit4LiH4LiB4Lit4LiHCivguKXguK3guIfguIjguLTguIjguLnguJQKK+C4peC4reC4h+C5hOC4mQor4Lil4Lit4LiUCivguKXguK3guJXguYDguJXguK3guKPguLXguYgKK+C4peC4reC4mQor4Lil4LmI4Lit4LiZCivguKXguK3guJoKK+C4peC4reC4oQor4Lil4LmJ4Lit4LihCivguKXguK3guKHguIrguK3guKEKK+C4peC5ieC4reC4oeC4m+C4o+C4p+C4lAor4Lil4Lit4Lih4Lie4Lit4LiBCivguKXguK3guKIKK+C4peC5iOC4reC4ogor4Lil4LmI4Lit4LmB4Lil4LmICivguKXguK3guKfguYzguYDguKPguJnguYDguIvguLXguKLguKEKK+C4peC4reC4rQor4Lil4LiwCivguKXguYjguLAKK+C4peC4sOC4geC4pQor4Lil4Liw4LiB4Li54Lih4Liw4LiZ4Li04LiqCivguKXguLDguILguLHguJTguKXguLDguILguLfguJkKK+C4peC4sOC4hOC4owor4Lil4Liw4LiE4Li0CivguKXguLDguITguLbguIEKK+C4peC4sOC4h+C4suC4lAor4Lil4Liw4LiH4Li04LiUCivguKXguLDguJXguLTguIjguLnguJQKK+C4peC4sOC4muC4oeC4peC4sOC4muC4reC4hwor4Lil4Liw4Lia4Lix4LiUCivguKXguLDguJrguLfguK0KK+C4peC4sOC5gOC4muC5h+C4hwor4Lil4Liw4LmC4Lia4LihCivguKXguLDguKHguYjguK3guKEKK+C4peC4sOC4oeC4seC5iOC4hwor4Lil4Liw4Lih4LiyCivguKXguLDguKHguLLguJkKK+C4peC4sOC4oeC5ieC4suC4ogor4Lil4Liw4Lih4Li4CivguKXguLDguKHguLjguJQKK+C4peC4sOC4oeC4uOC4mQor4Lil4Liw4LmA4Lih4LmH4LiH4Lil4Liw4LiE4LijCivguKXguLDguYDguKHguYfguJQKK+C4peC4sOC5gOC4oeC4rQor4Lil4Liw4LmA4Lih4Liy4LiwCivguKXguLDguYDguKHguLTguJQKK+C4peC4sOC5gOC4oeC4teC4ouC4lAor4Lil4Liw4LmA4Lih4Li14Lii4LiaCivguKXguLDguYHguKHguLAKK+C4peC4sOC5guC4oeC4gQor4Lil4Liw4LmC4Lih4LiaCivguKXguLDguYTguKEKK+C4peC4sOC4o+C4tQor4Lil4Liw4Lil4LiZ4Lil4Liw4Lil4Liy4LiZCivguKXguLDguKXguKHguKXguLDguKXguLLguKIKK+C4peC4sOC4peC4p+C4ogor4Lil4Liw4Lil4Lit4LiBCivguKXguLDguKXguK3guJrguKXguLDguYDguKXguYnguLIKK+C4peC4sOC4peC4seC4hwor4Lil4Liw4Lil4Lix4LiUCivguKXguLDguKXguYnguLIKK+C4peC4sOC4peC4suC4mQor4Lil4Liw4Lil4Liy4Lia4Lil4Liw4Lil4LmJ4Lin4LiHCivguKXguLDguKXguLLguKIKK+C4peC4sOC4peC5ieC4suC4pwor4Lil4Liw4Lil4LmI4Liz4Lil4Liw4Lil4Lix4LiBCivguKXguLDguKXguLTguJoKK+C4peC4sOC4peC4uOC4hwor4Lil4Liw4Lil4Li44LihCivguKXguLDguYDguKXguIcKK+C4peC4sOC5gOC4peC5ieC4sgor4Lil4Liw4LmA4Lil4Liy4LiwCivguKXguLDguYDguKXguLLguLDguKXguLDguKXguK3guIcKK+C4peC4sOC5gOC4peC4tOC4hwor4Lil4Liw4LmA4Lil4Li14Lii4LiUCivguKXguLDguYDguKXguLXguKLguJoKK+C4peC4sOC5gOC4peC4t+C4reC4gQor4Lil4Liw4LmE4Lil4LmJCivguKXguLDguKfguKUKK+C4peC4sOC4p+C5ieC4rQor4Lil4Liw4Lin4LmJ4LiyCivguKXguLDguKfguLLguJQKK+C4peC4sOC5gOC4p+C4hwor4Lil4Liw4LmB4Lin4LiBCivguKXguLDguYLguKfguYkKK+C4peC4sOC4q+C4oeC4suC4lAor4Lil4Liw4Lir4Lih4Liy4LiU4LiN4Liy4LiZ4Liy4LiL4Liw4Liu4LmMCivguKXguLDguKvguKXguLHguJQKK+C4peC4sOC4q+C5ieC4reC4ogor4Lil4Liw4Lir4Liy4LiZCivguKXguLDguKvguLjguYjguIcKK+C4peC4sOC5gOC4q+C4ogor4Lil4Liw4LmA4Lir4Li14LmI4LiiCivguKXguLDguK3guK3guIcKK+C4peC4sOC4reC4reC4h+C4oeC4seC5iOC4hwor4Lil4Liw4Lit4Liy4LiiCivguKXguLDguYDguK3guLXguKLguJQKK+C4peC4sOC5geC4reC4mQor4Lil4Lix4LiBCivguKXguLHguIHguILguJPguLAKK+C4peC4seC4geC4guC4k+C4sgor4Lil4Lix4LiB4LiC4LiwCivguKXguLHguIHguIjguLHguYjguJkKK+C4peC4seC4geC4m+C4tOC4lOC4peC4seC4geC5gOC4m+C4tOC4lAor4Lil4Lix4LiB4Lip4LiT4LiwCivguKXguLHguIHguKnguKHguJPguYwKK+C4peC4seC4geC4qeC4oeC4suC4k+C4sgor4Lil4Lix4LiB4Lip4Lih4Li1CivguKXguLHguIHguKnguLAKK+C4peC4seC4hOC4hOC4sAor4Lil4Lix4LiE4LiZ4LmMCivguKXguLHguITguJnguLIKK+C4peC4seC4hwor4Lil4Lix4LmI4LiHCivguKXguLHguIfguIHguLIKK+C4peC4seC4h+C4hOC4tAor4Lil4Lix4LiH4LiE4Li1CivguKXguLHguIfguJbguLbguIcKK+C4peC4seC4h+C4peC4reC4hwor4Lil4Lix4LiH4LmA4LilCivguKXguLHguIfguKrguLLguJQKK+C4peC4seC4iuC4iuC4sgor4Lil4Lix4LiK4LiK4Li1CivguKXguLHguI3guIjguYwKK+C4peC4seC4jeC4iOC4geC4owor4Lil4Lix4LiN4LiJCivguKXguLHguI3guInguIHguKMKK+C4peC4seC4jeC4ieC4meC5jAor4Lil4Lix4LiQ4Li0CivguKXguLHguJDguLTguIHguLIKK+C4peC4seC4lAor4Lil4Lix4LiU4LiyCivguKXguLHguJfguJjguYwKK+C4peC4seC4l+C4mOC4tAor4Lil4Lix4LiZCivguKXguLHguYjguJkKK+C4peC4seC4meC5gOC4lQor4Lil4Lix4LiZ4LmA4LiV4LiyCivguKXguLHguJnguYTguJUKK+C4peC4seC5iOC4meC4luC4seC4mQor4Lil4Lix4LmI4LiZ4LiX4LihCivguKXguLHguJnguJfguKfguKIKK+C4peC4seC4meC5guC4l+C4oQor4Lil4Lix4LiaCivguKXguLHguJ7guJjguYwKK+C4peC4seC4nuC4mOC4tAor4Lil4Lix4LigCivguKXguLHguKDguJnguLAKK+C4peC4seC4oOC4ouC5jAor4Lil4Lix4Lih4Lie4LmMCivguKXguLHguKIKK+C4peC4seC4p+C4sAor4Lil4LiyCivguKXguYjguLIKK+C4peC5ieC4sgor4Lil4Liy4LiBCivguKXguLLguIHguKnguLIKK+C4peC4suC4guC4sgor4Lil4Liy4LiHCivguKXguYjguLLguIcKK+C4peC5ieC4suC4hwor4Lil4Liy4LiH4LiE4Lix4LilCivguKXguLLguIfguIfguLTguJQKK+C4peC4suC4h+C4peC4tOC4hwor4Lil4Liy4LiH4Liq4Liy4LiUCivguKXguLLguIfguLLguJQKK+C4peC5ieC4suC4h+C4suC4lAor4Lil4Liy4LmA4LiH4LmH4LiUCivguKXguLLguIoKK+C4peC4suC4iuC4sgor4Lil4Liy4LiNCivguKXguLLguJQKK+C4peC4suC4lOC5gOC4peC4sgor4Lil4LmJ4Liy4LiV4LmJ4LiyCivguKXguYjguLLguYDguJXguLXguKLguIcKK+C4peC5ieC4suC5gOC4leC4teC4ouC4hwor4Lil4Liy4LiZCivguKXguYjguLLguJkKK+C4peC4suC4mgor4Lil4Liy4LibCivguKXguLLguJ7guK3guJkKK+C4peC4suC4nuC4uAor4Lil4Liy4LmA4LieCivguKXguLLguYDguJ7guLIKK+C4peC4suC4oAor4Lil4Liy4LihCivguKXguYjguLLguKEKK+C4peC4suC4oeC4sAor4Lil4Liy4LiiCivguKXguYnguLLguKIKK+C4peC4suC4peC4meC4sAor4Lil4Liy4Lil4LiqCivguKXguLLguKXguLIKK+C4peC4suC4pwor4Lil4Liy4Lin4LiBCivguKXguLLguKfguLHguJPguKLguYwKK+C4peC4suC4p+C4sgor4Lil4Liy4Liq4LiZ4LiwCivguKXguLMKK+C4peC5iOC4swor4Lil4LmJ4LizCivguKXguLPguYDguILguYfguI0KK+C4peC4s+C5geC4ggor4Lil4Liz4LmA4LiE4LmH4LiNCivguKXguLPguYDguITguLfguK3guIcKK+C4peC4s+C4h+C4suC4lAor4Lil4Liz4LmA4LiI4Li14Lii4LiBCivguKXguLPguJTguKfguJkKK+C4peC4s+C4lOC4seC4mgor4Lil4Liz4LiZ4Lix4LiBCivguKXguLPguYDguJnguLIKK+C4peC4s+C4muC4reC4hwor4Lil4Liz4Lia4Liy4LiBCivguKXguLPguJrguLgKK+C4peC4s+C4m+C4swor4Lil4Liz4Lie4Lin4LiZCivguKXguLPguJ7guK3guIcKK+C4peC4s+C4nuC4seC4hwor4Lil4Liz4Lie4Li5CivguKXguLPguYDguJ7guYfguI0KK+C4peC4s+C5gOC4nuC4sgor4Lil4Liz4LmB4Lie4LiHCivguKXguLPguYHguJ7guJkKK+C4peC4s+C5guC4nuC4hwor4Lil4Liz4LmE4Lie4LmICivguKXguLPguKDguLjguILguLHguJkKK+C4peC4s+C4oeC4sOC4peC4reC4gQor4Lil4Liz4Lih4Liy4LiUCivguKXguLPguYDguKHguLLguLAKK+C4peC4s+C5gOC4oeC4teC4ouC4mgor4Lil4Liz4Lii4Lit4LiHCivguKXguLPguKLguLIKK+C4peC4s+C5hOC4ogor4Lil4Liz4Lil4Lit4LiHCivguKXguYjguLPguKXguLIKK+C4peC4s+C4peC4suC4mgor4Lil4Liz4Lil4LizCivguKXguLPguKXguLbguIEKK+C4peC4s+C5gOC4peC4suC4sAor4Lil4Liz4LmA4Lil4Li04LiBCivguKXguLPguYDguKXguLXguKLguIcKK+C4peC4s+C5gOC4peC4teC4ouC4mgor4Lil4Liz4LmA4Lin4Li14Lii4LiHCivguKXguLPguYDguKfguLXguKLguJkKK+C4peC4s+C4reC4uOC4lAor4Lil4Liz4LmA4Lit4Li14Lii4LiBCivguKXguLPguYLguK3guIcKK+C4peC4tAor4Lil4Li04LiB4LiC4LiyCivguKXguLTguIHguYTguJnguJXguYwKK+C4peC4tOC4geC4qeC4sgor4Lil4Li04LiB4Li44LiICivguKXguLTguYDguIEKK+C4peC4tOC4guC4meC4sAor4Lil4Li04LiC4Liq4Li04LiX4LiY4LmMCivguKXguLTguILguLTguJUKK+C4peC4tOC4hwor4Lil4Li04LiH4LiE4LmMCivguKXguLTguIfguYLguKXguJQKK+C4peC4tOC4lAor4Lil4Li04LiVCivguKXguLTguJXguKHguLHguKoKK+C4peC4tOC4leC4owor4Lil4Li04LmA4LiX4Li14Lii4LihCivguKXguLTguYjguJkKK+C4peC4tOC5ieC4mQor4Lil4Li04LiZ4LmC4LiB4Lij4LiiCivguKXguLTguJnguIjguIcKK+C4peC4tOC5ieC4meC4iOC4teC5iAor4Lil4Li04LmI4LiZ4LiV4LmJ4LiZCivguKXguLTguYjguJnguJfguLDguYDguKUKK+C4peC4tOC5iOC4meC4ruC4t+C5ieC4rQor4Lil4Li04LiZ4Li04LiZCivguKXguLTguJoKK+C4peC4tOC4m+C4lOC4sgor4Lil4Li04Lib4LiV4LmMCivguKXguLTguJvguKrguJXguLTguIEKK+C4peC4tOC4m+C4tAor4Lil4Li04Lif4LiV4LmMCivguKXguLTguYDguKDguLIKK+C4peC4tOC5iOC4oQor4Lil4Li04LmJ4LihCivguKXguLTguKHguJvguYwKK+C4peC4tOC4oeC4m+C4meC4sAor4Lil4Li04Lil4Li04LiVCivguKXguLTguKcKK+C4peC4tOC5iOC4pwor4Lil4Li04Liq4LiHCivguKXguLUKK+C4peC4teC5iAor4Lil4Li14LmJCivguKXguLXguIvguK0KK+C4peC4teC4mgor4Lil4Li14Lil4LiyCivguKXguLXguKXguLLguKgKK+C4peC4teC4rOC4q+C4sgor4Lil4Li24LiBCivguKXguLbguIfguITguYwKK+C4peC4tuC4h+C4hOC5jOC4meC4suC4ouC4nuC4o+C4suC4mQor4Lil4Li34LiUCivguKXguLfguYjguJkKK+C4peC4t+C5ieC4mQor4Lil4Li34LiaCivguKXguLfguKEKK+C4peC4t+C4rQor4Lil4Li34LmI4LitCivguKXguLfguYnguK0KK+C4peC4uAor4Lil4Li44LiBCivguKXguLjguIHguKXguJkKK+C4peC4uOC4geC4peC4teC5ieC4peC4uOC4geC4peC4mQor4Lil4Li44LiHCivguKXguLjguYnguIcKK+C4peC4uOC4lQor4Lil4Li44LiXCivguKXguLjguJfguIHguLAKK+C4peC4uOC4l+C4mOC5jAor4Lil4Li44LmI4LiZCivguKXguLjguJvguJXguYwKK+C4peC4uOC4nuC4mOC5jAor4Lil4Li44Lie4LiY4LiB4LiwCivguKXguLjguYjguKEKK+C4peC4uOC5iOC4oeC5gOC4meC4t+C5ieC4rQor4Lil4Li44Lih4Lib4LmMCivguKXguLjguKHguJ7guLUKK+C4peC4uOC4oeC4nuC4uQor4Lil4Li44Lih4Lir4Lih4LiyCivguKXguLjguKIKK+C4peC4uOC5iOC4ogor4Lil4Li44LmJ4LiiCivguKXguLjguKXguLLguKIKK+C4peC4uOC4quC4sgor4Lil4Li54LmICivguKXguLnguIEKK+C4peC4ueC4geC5gOC4guC4ouC4leC4suC4ouC5geC4oeC5iOC4ouC4suC4ouC4iuC4seC4geC4m+C4o+C4gQor4Lil4Li54LiB4LmA4LiE4Lil4LmJ4LiyCivguKXguLnguIHguJvguKPguLDguITguLPguJzguLUKK+C4peC4ueC4geC4m+C4t+C4meC5g+C4q+C4jeC5iAor4Lil4Li54LiB4LmA4Lit4LmH4LiZCivguKXguLnguIHguYDguK3guYfguKUKK+C4peC4ueC4guC4sAor4Lil4Li54LiV4LiyCivguKXguLnguJXguLTguIHguLIKK+C4peC4ueC4l+C4teC5gOC4iuC4teC4ouC4oQor4Lil4Li54LiZ4LiwCivguKXguLnguJoKK+C4peC4ueC5iOC4q+C4peC4teC5iAor4LmA4Lil4LiBCivguYDguKXguYfguIEKK+C5gOC4peC5h+C4geC4lOC4sgor4LmA4Lil4LmH4LiB4Liu4Lit4Lij4LmM4LiZCivguYDguKXguIIKK+C5gOC4peC4guC4geC4sAor4LmA4Lil4LiC4LiZ4LiwCivguYDguKXguILguKLguLAKK+C5gOC4peC4guC4sgor4LmA4Lil4LmH4LiHCivguYDguKXguYnguIcKK+C5gOC4peC5iOC4h+C4ruC4t+C5ieC4rQor4LmA4Lil4LmA4LiL4Lit4Lij4LmMCivguYDguKXguJHguJHguLgKK+C5gOC4peC4kwor4LmA4Lil4LiT4LiR4Li4CivguYDguKXguYfguJQKK+C5gOC4peC4lQor4LmA4Lil4LiZCivguYDguKXguYfguJkKK+C5gOC4peC5iOC4mQor4LmA4Lil4LiZ4LiI4LiHCivguYDguKXguJnguKrguYwKK+C5gOC4peC4meC4q+C4sOC4o+C4tQor4LmA4Lil4LmH4LiaCivguYDguKXguJrguIcKK+C5gOC4peC4m+C4geC4owor4LmA4Lil4Lib4LiZ4LmMCivguYDguKXguYDguJsKK+C5gOC4peC5gOC4ngor4LmA4Lil4LmH4LihCivguYDguKXguYjguKEKK+C5gOC4peC4ogor4LmA4Lil4LinCivguYDguKXguKfguIcKK+C5gOC4peC4p+C4ueC5guC4peC4qgor4LmA4Lil4LioCivguYDguKXguKnguI/guLgKK+C5gOC4peC4quC5gOC4muC4teC4ouC4mQor4LmA4Lil4LirCivguYDguKXguYjguKvguYwKK+C5gOC4peC4q+C4ouC4sAor4LmA4Lil4Lir4Lil4Lix4LiHCivguYDguKXguKvguKXguLIKK+C5gOC4peC4q+C4sAor4LmA4Lil4LitCivguYDguKXguLAKK+C5gOC4peC4sgor4LmA4Lil4LmI4LiyCivguYDguKXguYnguLIKK+C5gOC4peC4suC4geC4seC4ogor4LmA4Lil4LmI4Liy4LmA4LiV4LmK4LiHCivguYDguKXguYnguLLguYLguKXguKEKK+C5gOC4peC4suC4sAor4LmA4Lil4Li04LiBCivguYDguKXguLTguYnguIcKK+C5gOC4peC4tOC4meC5gOC4peC5iOC4rQor4LmA4Lil4Li04LioCivguYDguKXguLXguKIKK+C5gOC4peC4teC4ouC4hwor4LmA4Lil4Li14LmI4Lii4LiHCivguYDguKXguLXguYnguKLguIcKK+C5gOC4peC4teC4ouC4h+C4guC4suC4pwor4LmA4Lil4Li14Lii4LiH4Lic4LiyCivguYDguKXguLXguKLguIfguJ3guYnguLLguKIKK+C5gOC4peC4teC4ouC4h+C4oeC4seC4mQor4LmA4Lil4Li14Lii4LiZCivguYDguKXguLXguYjguKLguJkKK+C5gOC4peC4teC4ouC4meC5hOC4nwor4LmA4Lil4Li14Lii4LiaCivguYDguKXguLXguKLguKEKK+C5gOC4peC4teC5iOC4ouC4oQor4LmA4Lil4Li14Lii4LinCivguYDguKXguLXguYnguKLguKcKK+C5gOC4peC4t+C4reC4gQor4LmA4Lil4Li34Lit4LiHCivguYDguKXguLfguYjguK3guIcKK+C5gOC4peC4t+C4reC4lAor4LmA4Lil4Li34Lit4LiZCivguYDguKXguLfguYjguK3guJkKK+C5gOC4peC4t+C5iOC4reC4oQor4LmA4Lil4Li34LmI4Lit4Lih4LmD4LiqCivguYDguKXguLfguYjguK3guKIKK+C5gOC4peC4t+C5ieC4reC4ogor4LmA4Lil4Li34LmI4Lit4Lii4Lil4LmJ4LiyCivguYHguKUKK+C5geC4peC5iAor4LmB4Lil4LmJCivguYHguKXguIEKK+C5geC4peC5h+C4geC5guC4l+C4qgor4LmB4Lil4LiHCivguYHguKXguYjguIcKK+C5geC4peC5ieC4hwor4LmB4Lil4LiZCivguYHguKXguYjguJkKK+C5geC4peC4meC4l+C4suC4meC4seC4oQor4LmB4Lil4LiaCivguYHguKXguYnguKcKK+C5geC4peC4sAor4LmC4Lil4LmICivguYLguKXguYkKK+C5guC4peC4gQor4LmC4Lil4LiB4LiE4LiV4Li0CivguYLguKXguIHguIjguLHguIHguKnguLgKK+C5guC4peC4geC4iuC4meC4meC4tQor4LmC4Lil4LiB4LmA4LiK4Lip4LiQ4LmMCivguYLguKXguIHguJjguKPguKPguKEKK+C5guC4peC4geC4mOC4suC4lOC4sgor4LmC4Lil4LiB4LiY4Liy4LiV4Li4CivguYLguKXguIHguJnguLLguJYKK+C5guC4peC4geC4muC4lgor4LmC4Lil4LiB4Lia4Liy4LilCivguYLguKXguIHguJrguLTguJTguKMKK+C5guC4peC4geC4m+C4o+C4sOC4l+C4teC4mwor4LmC4Lil4LiB4Lih4Liy4Lij4LiU4LiyCivguYLguKXguIHguKLguYwKK+C5guC4peC4geC4ouC4suC4leC4o+C4sgor4LmC4Lil4LiB4Lin4Lix4LiK4LiK4LiwCivguYLguKXguIHguKfguLTguJfguLkKK+C5guC4peC4geC4qOC4seC4nuC4l+C5jAor4LmC4Lil4LiB4Liq4LiW4Li04LiV4Li0CivguYLguKXguIHguK3guLjguJTguKMKK+C5guC4peC4geC4seC4leC4luC4iOC4o+C4tOC4ouC4sgor4LmC4Lil4LiB4Lix4LiZ4LiV4Lij4LmMCivguYLguKXguIHguLIKK+C5guC4peC4geC4tOC4ouC4sAor4LmC4Lil4LiB4Li14Lii4LmMCivguYLguKXguIHguLXguKLguIrguJkKK+C5guC4peC4geC4teC4ouC4p+C4seC4leC4owor4LmC4Lil4LiB4Li44LiV4LijCivguYLguKXguIHguLjguJXguKPguJjguKPguKPguKEKK+C5guC4peC4geC4uOC4leC4o+C4oOC4ueC4oeC4tAor4LmC4Lil4LmA4LiB4LioCivguYLguKXguIcKK+C5guC4peC5iOC4hwor4LmC4Lil4LmJ4LiHCivguYLguKXguYnguIfguYLguJXguYnguIcKK+C5guC4peC4iOC4meC4sAor4LmC4Lil4LiT4LiwCivguYLguKXguJQKK+C5guC4peC4lOC4l+C4sOC4meC4hwor4LmC4Lil4LmI4LiV4Li04LmK4LiZCivguYLguKXguYLguJUKK+C5guC4peC4lwor4LmC4Lil4LiZCivguYLguKXguYnguJkKK+C5guC4peC4m+C4sAor4LmC4Lil4LigCivguYLguKXguKEKK+C5guC4peC4oeC4sAor4LmC4Lil4Lih4LiyCivguYLguKXguKUKK+C5guC4peC4peC4uOC4mwor4LmC4Lil4LmA4LilCivguYLguKXguYnguYDguKXguYkKK+C5guC4peC5guC4pQor4LmC4Lil4LmC4Lil4LmJCivguYLguKXguKvguLAKK+C5guC4peC4q+C4seC4igor4LmC4Lil4Lir4Li04LiVCivguYLguKXguLAKK+C5hOC4peC5iAor4LmE4Lil4LmJCivguYTguKXguKIKK+C5hOC4peC4peC4sgor4LmE4Lil4LmA4Lil4LiiCivguYTguKXguYTguKXguYkKK+C4pwor4Lin4LiBCivguKfguIHguLAKK+C4p+C4geC4uOC4pQor4Lin4LiHCivguKfguIfguIHguYwKK+C4p+C4h+C4geC4lQor4Lin4LiH4Lio4LmMCivguKfguIfguKjguLIKK+C4p+C4h+C4qeC5jAor4Lin4LiI4LiZ4LiwCivguKfguIjguLAKK+C4p+C4iOC4sgor4Lin4LiI4Li1CivguKfguIrguLAKK+C4p+C4iuC4tOC4o+C4sAor4Lin4LiP4LiwCivguKfguI/guLLguIHguLLguKMKK+C4p+C4j+C4uOC4oeC4sAor4Lin4LiT4LiwCivguKfguJPguLTguIoKK+C4p+C4k+C4tOC4iuC4iuC4sgor4Lin4LiT4Li04LiK4Lii4LmMCivguKfguJPguLTguIrguKLguLIKK+C4p+C4k+C4tOC4nuC4gQor4Lin4LiU4Lij4LiZ4Li5CivguKfguJTguLUKK+C4p+C4leC4sAor4Lin4LiX4LiZ4LiwCivguKfguJfguLAKK+C4p+C4l+C4seC4jeC4jeC4uOC4leC4sgor4Lin4LiX4Lix4LiN4LiN4Li5CivguKfguJjguLjguIHguLIKK+C4p+C4mOC4uQor4Lin4LiZCivguKfguJnguIjguKMKK+C4p+C4meC4seC4m+C4leC4tAor4Lin4LiZ4Lix4LiqCivguKfguJnguLIKK+C4p+C4meC4suC4meC4leC5jAor4Lin4LiZ4Li04LiU4LiyCivguKfguJnguLTguJ7guIEKK+C4p+C5gOC4meC4iOC4owor4Lin4LmC4LiZ4LiX4Lii4Liy4LiZCivguKfguJvguJnguLAKK+C4p+C4m+C4uAor4Lin4Lii4Lix4LiE4LiG4LmMCivguKfguKLguLHguI3guIrguJnguLAKK+C4p+C4ouC4seC4oeC4q+C4sAor4Lin4Lii4Lix4Liq4Lii4LmMCivguKfguKLguLLguIHguKPguJPguYwKK+C4p+C4ouC4suC4huC4o+C5jAor4Lin4Lii4Liy4LiY4Li0CivguKfguKLguLLguKEKK+C4p+C4ouC4suC4ouC4suC4oQor4Lin4Lij4LiB4Lix4LiN4LiN4LiyCivguKfguKPguIHguLLguKIKK+C4p+C4o+C4h+C4hOC5jAor4Lin4Lij4LiT4LiwCivguKfguKPguJcKK+C4p+C4o+C4l+C4suC4mQor4Lin4Lij4LiZ4Liy4Lij4Li1CivguKfguKPguJvguLHguIHguKnguYwKK+C4p+C4o+C4nuC4meC4tOC4lQor4Lin4Lij4Lih4Lir4Liy4Lin4Li04Lir4Liy4LijCivguKfguKPguKLguLTguJXguLIKK+C4p+C4o+C4o+C4hAor4Lin4Lij4Lij4LiE4Lii4LmMCivguKfguKPguKPguIoKK+C4p+C4o+C4o+C4iuC4ouC5jAor4Lin4Lij4Lij4LiT4LiZ4LiyCivguKfguKPguKPguJPguJ7guKTguJXguLQKK+C4p+C4o+C4o+C4k+C4sAor4Lin4Lij4Lij4LiT4Li24LiBCivguKfguKPguKPguJjguIEKK+C4p+C4o+C4o+C4mOC4meC4sAor4Lin4Lij4Lij4LipCivguKfguKPguKPguKnguLIKK+C4p+C4o+C4o+C4ueC4mwor4Lin4Lij4Lin4Lij4Lij4LiT4Li04LiZ4Li1CivguKfguKPguKfguLTguKvguLLguKMKK+C4p+C4o+C4seC4jeC4jeC4uQor4Lin4Lij4Liy4LiB4LiwCivguKfguKPguLLguIfguITguJPguLIKK+C4p+C4o+C4suC4oOC4o+C4k+C5jAor4Lin4Lij4Liy4Lii4Li44LiX4LiYCivguKfguKPguLLguYLguKPguKvguLLguKMKK+C4p+C4o+C4suC4q+C5jAor4Lin4Lij4Liy4Lir4LijCivguKfguKPguLLguKvguLAKK+C4p+C4o+C4uOC4kwor4Lin4Lij4Li44LiV4LiU4LihCivguKfguKPguLjguJXguKHguLAKK+C4p+C4o+C4ueC4lgor4Lin4LmC4Lij4LiU4LihCivguKfguYLguKPguJXguKHguLAKK+C4p+C4pOC4gQor4Lin4Lik4Lip4LigCivguKfguKTguKnguKUKK+C4p+C4peC4seC4igor4Lin4Lil4Lix4LiN4LiK4LmMCivguKfguKXguLHguJPguIrguJnguYwKK+C4p+C4peC4seC4ogor4Lin4Lil4Liy4Lir4LiBCivguKfguKXguLUKK+C4p+C4qOC4hAor4Lin4Lio4LiwCivguKfguKjguLTguJkKK+C4p+C4quC4meC4sAor4Lin4Liq4Lig4LiwCivguKfguKrguKXguLAKK+C4p+C4quC4peC4tQor4Lin4Liq4Lin4Lix4LiU4LiU4Li1CivguKfguKrguKfguLHguJXguJXguLUKK+C4p+C4quC4sAor4Lin4Liq4Lix4LiZ4LiV4LmMCivguKfguKrguLHguJnguJXguJTguLTguKXguIEKK+C4p+C4quC4sgor4Lin4Liq4Li1CivguKfguKrguLgKK+C4p+C4quC4uOC4mOC4sgor4Lin4Liq4Li44LiZ4LiY4Lij4LiyCivguKfguKrguLjguKHguJTguLUKK+C4p+C4q+C4sAor4Lin4Lir4LiyCivguKfguK0KK+C4p+C4reC4gQor4Lin4Lit4LiB4LmB4Lin4LiBCivguKfguYjguK3guIcKK+C4p+C5iOC4reC4h+C5hOC4pwor4Lin4Lit4LiUCivguKfguK3guJkKK+C4p+C5iOC4reC4mQor4Lin4Lit4Lil4LmA4Lil4Lii4LmM4Lia4Lit4LilCivguKfguK3guYHguKcKK+C4p+C4sAor4Lin4Lix4LiBCivguKfguLHguIHguIHguLAKK+C4p+C4seC4hAor4Lin4Lix4LiE4LiE4Li04LiiCivguKfguLHguITguITguLXguKLguYwKK+C4p+C4seC4hOC4hOC4uAor4Lin4Lix4LiE4LiL4Li14LiZCivguKfguLHguIcKK+C4p+C4seC4h+C4geC5jAor4Lin4Lix4LiH4LiK4LiyCivguKfguLHguIfguYDguKfguIcKK+C4p+C4seC4h+C4qOC4sAor4Lin4Lix4LiH4Liq4LiwCivguKfguLHguIjguIjguLAKK+C4p+C4seC4iOC4ieC5jAor4Lin4Lix4LiI4LiJ4LiBCivguKfguLHguIjguInguKXguLAKK+C4p+C4seC4iOC4meC5jAor4Lin4Lix4LiKCivguKfguLHguIrguIrguLAKK+C4p+C4seC4iuC4jOC5jAor4Lin4Lix4LiK4Lie4Li34LiKCivguKfguLHguIrguKPguLAKK+C4p+C4seC4jeC4iOC4gQor4Lin4Lix4LiN4LiI4LiZ4LiwCivguKfguLHguI3guIzguYwKK+C4p+C4seC4j+C4geC4sAor4Lin4Lix4LiP4LiP4LiwCivguKfguLHguI/guI/guLQKK+C4p+C4seC4kuC4geC4sAor4Lin4Lix4LiS4LiB4Li1CivguKfguLHguJLguJnguLAKK+C4p+C4seC4kuC4meC4sgor4Lin4Lix4LiTCivguKfguLHguJPguI/guYwKK+C4p+C4seC4k+C4k+C4sAor4Lin4Lix4LiT4LiZ4LiyCivguKfguLHguJQKK+C4p+C4seC4lQor4Lin4Lix4LiV4LiV4LmMCivguKfguLHguJXguJXguLIKK+C4p+C4seC4leC4luC5jAor4Lin4Lix4LiV4LiW4Li4CivguKfguLHguJXguJnguLAKK+C4p+C4seC4leC4owor4Lin4Lix4LiV4Lij4Lib4LiP4Li04Lia4Lix4LiV4Li0CivguKfguLHguJXguKrguJTguKMKK+C4p+C4seC4leC4quC4sAor4Lin4Lix4LiV4Li0CivguKfguLHguJfguJnguYwKK+C4p+C4seC4mQor4Lin4Lix4LiZ4LiV4LmMCivguKfguLHguJnguJfguJnguLIKK+C4p+C4seC4meC4l+C4meC4teC4ouC5jAor4Lin4Lix4LiZ4LiX4LiyCivguKfguLHguJnguJfguLQKK+C4p+C4seC4meC4meC4tOC4nuC4gQor4Lin4Lix4LiZ4LmA4Lin4Lii4LmMCivguKfguLHguJoKK+C4p+C4seC4muC5huC4q+C4p+C4s+C5hgor4Lin4Lix4Lib4Lib4LiwCivguKfguLHguKHguKHguLTguIEKK+C4p+C4seC4ogor4Lin4Lix4Lil4LiB4LmMCivguKfguLHguKXguITguLgKK+C4p+C4seC4peC4ouC5jAor4Lin4Lix4Lil4Lil4LigCivguKfguLHguKXguKXguLUKK+C4p+C4seC4pwor4Lin4Lix4Liq4LiU4Li4CivguKfguLHguKrguJXguKPguYwKK+C4p+C4seC4quC4meC5jAor4Lin4Lix4Liq4LiZ4LiwCivguKfguLHguKrguKrguLAKK+C4p+C4sgor4Lin4LmI4LiyCivguKfguYnguLIKK+C4p+C4suC4gQor4Lin4LmJ4Liy4LiB4LmA4Lie4LmJ4LiiCivguKfguLLguIHguKLguLAKK+C4p+C4suC4geC4o+C4sgor4Lin4Liy4LiB4LiwCivguKfguLLguIcKK+C4p+C5iOC4suC4hwor4Lin4LmJ4Liy4LiHCivguKfguLLguIjguIEKK+C4p+C4suC4iOC4sgor4Lin4Liy4LiI4Liy4LmE4Lib4Lii4LiwCivguKfguLLguIjguLLguKUKK+C4p+C4suC4iuC5gOC4m+C4ouC4sAor4Lin4Liy4LiP4LiB4LiwCivguKfguLLguJPguLTguIoKK+C4p+C4suC4k+C4tOC4iuC4geC4sAor4Lin4Liy4LiT4Li04LiK4Lii4LmMCivguKfguLLguJPguLUKK+C4p+C4suC4lAor4Lin4Liy4LiV4LiwCivguKfguLLguJcKK+C4p+C4suC4l+C4gQor4Lin4Liy4LiX4LiZCivguKfguLLguJfguKLguYwKK+C4p+C4suC4l+C4tOC4lQor4Lin4Liy4LiX4Li04LiZCivguKfguLLguJfguLUKK+C4p+C4suC4mQor4Lin4LmI4Liy4LiZCivguKfguYjguLLguJnguYDguITguKPguLfguK0KK+C4p+C4suC4meC4owor4Lin4Liy4LmA4LiZ4LmA4LiU4Li14Lii4LihCivguKfguLLguJoKK+C4p+C4suC4m+C4sAor4Lin4Liy4Lib4Li04LiV4LiwCivguKfguLLguJvguLUKK+C4p+C4suC4oQor4Lin4Liy4Lih4LiwCivguKfguLLguYLguKHguKMKK+C4p+C4suC4ogor4Lin4LmI4Liy4LiiCivguKfguYnguLLguKIKK+C4p+C4suC4ouC4quC4sAor4Lin4Liy4Lii4LiwCivguKfguLLguKLguLHguIcKK+C4p+C4suC4ouC4suC4oeC4sAor4Lin4Liy4Lii4Li4CivguKfguLLguKLguLjguIHguLnguKUKK+C4p+C4suC4ouC4uOC4muC4uOC4leC4o+C4ouC4suC4leC4o+C4sgor4Lin4Liy4LmC4LiiCivguKfguLLguKMKK+C4p+C4suC4o+C4p+C4suC4o+C4tAor4Lin4Liy4Lij4LiwCivguKfguLLguKPguLQKK+C4p+C4suC4o+C4tQor4Lin4Liy4Lij4Li44LiTCivguKfguLLguKPguLjguJPguLUKK+C4p+C4suC4pQor4Lin4Liy4Lil4LmM4LinCivguKfguLLguKXguLTguIHguLIKK+C4p+C4suC4peC4uOC4geC4sgor4Lin4Liy4LinCivguKfguYjguLLguKcKK+C4p+C5ieC4suC4p+C5iOC4reC4mQor4Lin4LmJ4Liy4Lin4Li44LmI4LiZCivguKfguLLguKrguJnguLAKK+C4p+C4suC4quC4meC4sgor4Lin4Liy4Liq4LieCivguKfguLLguKrguLAKK+C4p+C4suC4quC4tOC4mQor4Lin4Liy4Liq4Li1CivguKfguLLguKrguLjguIHguKPguLUKK+C4p+C4suC4quC4uOC4geC4tQor4Lin4Liy4Liq4Li44LmA4LiX4LieCivguKfguLLguKvguJnguLAKK+C4p+C4suC4q+C4sAor4Lin4Liy4Lir4Li04LiZ4Li1CivguKfguLLguKwKK+C4p+C4tAor4Lin4Li04LiBCivguKfguLTguIHguILguLHguKHguKDguYwKK+C4p+C4tOC4geC4guC4seC4oeC4oOC4meC4sAor4Lin4Li04LiB4LmA4LiC4LibCivguKfguLTguIHguIjguLAKK+C4p+C4tOC4geC4o+C4oQor4Lin4Li04LiB4Lij4Lix4LiiCivguKfguLTguIHguKPguLLguJnguJXguYwKK+C4p+C4tOC4geC4pOC4lQor4Lin4Li04LiB4Lik4LiV4Li0CivguKfguLTguIHguKUKK+C4p+C4tOC4geC4peC4iOC4o+C4tOC4lQor4Lin4Li04LiB4Liq4Li04LiVCivguKfguLTguIHguLHguJUKK+C4p+C4tOC4geC4seC4leC4tAor4Lin4Li04LiB4Lix4LibCivguKfguLTguIHguLHguKIKK+C4p+C4tOC4geC4suC4owor4Lin4Li04LiB4Liy4LilCivguKfguLTguITguJXguJvguLHguIjguIjguLHguKIKK+C4p+C4tOC4hOC4q+C4sAor4Lin4Li04LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguKfguLTguIbguJnguLAKK+C4p+C4tOC4huC5gOC4meC4qAor4Lin4Li04LiG4LmA4LiZ4Lio4Lin4LijCivguKfguLTguIbguLLguJUKK+C4p+C4tOC4huC4suC4qgor4Lin4Li04LiHCivguKfguLTguYjguIcKK+C4p+C4tOC4h+C4p+C4reC4mQor4Lin4Li04LiI4LiJ4Li04LiB4LiwCivguKfguLTguIjguKLguLjguJUKK+C4p+C4tOC4iOC4o+C4k+C4sAor4Lin4Li04LiI4LilCivguKfguLTguIjguLHguIHguILguJPguYwKK+C4p+C4tOC4iOC4seC4geC4qeC4k+C5jAor4Lin4Li04LiI4Lix4LiiCivguKfguLTguIjguLLguKMKK+C4p+C4tOC4iOC4suC4o+C4k+C5jAor4Lin4Li04LiI4Li0CivguKfguLTguIjguLTguIHguLTguIjguInguLIKK+C4p+C4tOC4iOC4tOC4lQor4Lin4Li04LiI4Li04LiV4LijCivguKfguLTguIjguLTguJkKK+C4p+C4tOC4iOC4uOC4kwor4Lin4Li04LiI4Li44Lij4LiTCivguKfguLTguIrguIrguLIKK+C4p+C4tOC4iuC4iuC4uAor4Lin4Li04LiK4LiK4Li44LiU4LiyCivguKfguLTguIrguIrguLjguJXguLIKK+C4p+C4tOC4iuC4iuC4uOC4peC4lOC4sgor4Lin4Li04LiK4LiN4LiwCivguKfguLTguIrguJkKK+C4p+C4tOC4iuC4meC4tQor4Lin4Li04LiK4Lix4LiiCivguKfguLTguIrguLIKK+C4p+C4tOC4iuC4suC4meC4meC4sAor4Lin4Li04LiK4Li04LiVCivguKfguLTguYDguIrguLXguKLguKMKK+C4p+C4tOC4jeC4jeC4seC4leC4leC4tAor4Lin4Li04LiN4LiN4Liy4LiTCivguKfguLTguI3guI3guLLguJPguIHguJfguKPguLHguJ7guKLguYwKK+C4p+C4tOC4jeC4jeC4uQor4Lin4Li04LiR4Li54Lij4Lii4LmMCivguKfguLTguJPguKvguLgKK+C4p+C4tOC4lAor4Lin4Li04LiU4Li14Liq4LiU4Li1CivguKfguLTguJXguIEKK+C4p+C4tOC4leC4luC4suC4owor4Lin4Li04LiV4Liy4Lih4Li04LiZCivguKfguLTguJbguLUKK+C4p+C4tOC4l+C4mOC4sAor4Lin4Li04LiX4LiY4Lix4LiH4Liq4LiwCivguKfguLTguJfguKLguLIKK+C4p+C4tOC4l+C4ouC4uAor4Lin4Li04LiX4Lii4Li44LiVCivguKfguLTguJfguKPguLjguKHguLAKK+C4p+C4tOC4l+C4p+C4seC4qgor4Lin4Li04LiX4Lix4LiV4LiW4Li0CivguKfguLTguJfguLLguKPguJPguYwKK+C4p+C4tOC4l+C4suC4peC4meC5jAor4Lin4Li04LiX4Li04LiVCivguKfguLTguJfguLkKK+C4p+C4tOC4l+C4ueC4owor4Lin4Li04LmA4LiX4Lin4LipCivguKfguLTguYDguJfguKgKK+C4p+C4tOC4mAor4Lin4Li04LiY4Lin4LiyCivguKfguLTguJjguLIKK+C4p+C4tOC4mOC4suC4mQor4Lin4Li04LiY4Li1CivguKfguLTguJjguLjguKPguLAKK+C4p+C4tOC4mOC4uQor4Lin4Li04LiY4Li54Lib4LiZ4LiwCivguKfguLTguJkKK+C4p+C4tOC5iOC4mQor4Lin4Li04LiZ4LiX4LmMCivguKfguLTguJnguLHguJnguJXguLkKK+C4p+C4tOC4meC4seC4ogor4Lin4Li04LiZ4Liy4LiX4Li1CivguKfguLTguJnguLLguKLguIEKK+C4p+C4tOC4meC4suC4qAor4Lin4Li04LiZ4Li04LiICivguKfguLTguJnguLTguIjguInguLHguKIKK+C4p+C4tOC4meC4tOC4lQor4Lin4Li04LiZ4Li04Lia4Liy4LiVCivguKfguLTguJnguLTguJvguLLguJXguLTguIEKK+C4p+C4tOC4meC4teC4lQor4Lin4Li04LmA4LiZ4LiVCivguKfguLTguYLguJnguJfguIEKK+C4p+C4tOC4muC4seC4leC4tAor4Lin4Li04Lia4Liy4LiBCivguKfguLTguJrguLjguKUKK+C4p+C4tOC4muC4ueC4pQor4Lin4Li04Lib4LiB4Liy4LijCivguKfguLTguJvguI/guLTguKrguLLguKMKK+C4p+C4tOC4m+C5guC4ouC4hAor4Lin4Li04Lib4Lij4Liw4LiB4Liy4LijCivguKfguLTguJvguKPguLDguJXguLTguKrguLLguKMKK+C4p+C4tOC4m+C4o+C4sOC5guC4ouC4hAor4Lin4Li04Lib4Lij4Liw4Lil4Liy4LibCivguKfguLTguJvguKPguLDguKfguLLguKoKK+C4p+C4tOC4m+C4o+C4tOC4k+C4suC4oeC4l+C4uOC4geC4guC5jAor4Lin4Li04Lib4Lij4Li04LiVCivguKfguLTguJvguKXguLLguJsKK+C4p+C4tOC4m+C4peC4suC4qgor4Lin4Li04Lib4Lin4Liy4LiqCivguKfguLTguJvguLHguIHguKnguYwKK+C4p+C4tOC4m+C4seC4quC4quC4gQor4Lin4Li04Lib4Lix4Liq4Liq4LiZ4LiyCivguKfguLTguJvguLLguIHguILguLHguJnguJjguYwKK+C4p+C4tOC4nuC4suC4geC4qeC5jAor4Lin4Li04Lie4Liy4LiB4Lip4LmM4Lin4Li04LiI4Liy4Lij4LiT4LmMCivguKfguLTguJ7guLTguJjguJfguLHguKjguJnguLIKK+C4p+C4tOC4nuC4uOC4mAor4Lin4Li04Lig4Lix4LiH4LiE4LmMCivguKfguLTguKDguLHguIoKK+C4p+C4tOC4oOC4seC4leC4leC4tAor4Lin4Li04Lig4LiyCivguKfguLTguKDguLLguIQKK+C4p+C4tOC4oOC4suC4igor4Lin4Li04Lig4Liy4LiU4LiyCivguKfguLTguKDguLLguKfguLUKK+C4p+C4tOC4oOC4suC4qQor4Lin4Li04Lig4Liy4LiqCivguKfguLTguKDguLkKK+C4p+C4tOC4oOC4ueC4qeC4k+C4sAor4Lin4Li04Lig4Li54Lip4LiyCivguKfguLTguKDguLnguKnguLTguJUKK+C4p+C4tOC5gOC4oOC4leC4geC5jAor4Lin4Li04LmA4Lig4LiX4LiB4LmMCivguKfguLTguKHguJkKK+C4p+C4tOC4oeC4pQor4Lin4Li04Lih4Lil4Lix4LiBCivguKfguLTguKHguKXguLLguIEKK+C4p+C4tOC4oeC4seC4h+C4quC4sgor4Lin4Li04Lih4Lix4LiV4Li0CivguKfguLTguKHguLLguJkKK+C4p+C4tOC4oeC4suC4meC4tOC4geC5gOC4m+C4o+C4lQor4Lin4Li04Lih4Li44LiCCivguKfguLTguKHguLjguJUKK+C4p+C4tOC4oeC4uOC4leC4leC4tAor4Lin4Li04LmA4Lih4Lil4Li34Lit4LiHCivguKfguLTguYLguKHguIHguILguYwKK+C4p+C4tOC5guC4oeC4geC4qeC4p+C4tOC4luC4tQor4Lin4Li04LmA4Lii4LiZCivguKfguLTguYLguKLguIQKK+C4p+C4tOC4o+C4h+C4o+C4reC4hwor4Lin4Li04Lij4LiV4LiwCivguKfguLTguKPguKHguJPguLAKK+C4p+C4tOC4o+C4p+C4sAor4Lin4Li04Lij4LiwCivguKfguLTguKPguLHguIfguKPguK3guIcKK+C4p+C4tOC4o+C4seC4igor4Lin4Li04Lij4Lix4LiVCivguKfguLTguKPguLHguJXguLQKK+C4p+C4tOC4o+C4suC4hOC4sAor4Lin4Li04Lij4Liy4LihCivguKfguLTguKPguLLguKfguLAKK+C4p+C4tOC4o+C4uOC4mAor4Lin4Li04Lij4Li44Lis4Lir4LmMCivguKfguLTguKPguLjguKzguKvguIEKK+C4p+C4tOC4o+C4ueC4mwor4Lin4Li04Lij4Li54Lib4Lix4LiB4Lip4LmMCivguKfguLTguYDguKPguIEKK+C4p+C4tOC5gOC4o+C4meC4l+C4o+C5jAor4Lin4Li04LmC4Lij4LiECivguKfguLTguYLguKPguIgKK+C4p+C4tOC5guC4o+C4iOC4meC5jAor4Lin4Li04LmC4Lij4LiSCivguKfguLTguYLguKPguJgKK+C4p+C4tOC5guC4o+C4mOC4meC5jAor4Lin4Li04Lil4Lix4LiZ4LiU4LiyCivguKfguLTguKXguLHguKIKK+C4p+C4tOC4peC4suC4lAor4Lin4Li04Lil4Liy4LibCivguKfguLTguKXguLLguKfguLHguJPguKLguYwKK+C4p+C4tOC4peC4suC4qAor4Lin4Li04Lil4Liy4LiqCivguKfguLTguKXguLLguKrguLTguJnguLUKK+C4p+C4tOC4peC4tOC4m+C4lOC4sgor4Lin4Li04Lil4Li04Lio4Lih4Liy4Lir4Lij4LiyCivguKfguLTguYDguKXguJsKK+C4p+C4tOC5gOC4peC4m+C4meC4sAor4Lin4Li04LmC4Lil4LiBCivguKfguLTguYLguKXguIHguJnguLAKK+C4p+C4tOC5guC4peC4iOC4meC4sAor4Lin4Li04LmC4Lil4LihCivguKfguLTguYTguKUKK+C4p+C4tOC4pwor4Lin4Li04Lin4Lij4LiT4LmMCivguKfguLTguKfguKPguKPguJjguJnguYwKK+C4p+C4tOC4p+C4o+C4sAor4Lin4Li04Lin4Lix4LiPCivguKfguLTguKfguLHguJLguJnguYwKK+C4p+C4tOC4p+C4seC4mQor4Lin4Li04Lin4Liy4LiXCivguKfguLTguKfguLLguKvguYwKK+C4p+C4tOC4p+C4suC4q+C4sAor4Lin4Li04Lin4Li04LiICivguKfguLTguKfguLTguJUKK+C4p+C4tOC4p+C4tOC4mAor4Lin4Li04LmA4Lin4LiBCivguKfguLTguKjguKPguLjguJUKK+C4p+C4tOC4qOC4seC4lwor4Lin4Li04Lio4Lix4Lil4Lii4LmMCivguKfguLTguKjguLLguILguLAKK+C4p+C4tOC4qOC4suC4guC4sgor4Lin4Li04Lio4Liy4LiH4LiE4LmMCivguKfguLTguKjguLLguKUKK+C4p+C4tOC4qOC4tOC4qeC4j+C5jAor4Lin4Li04Lio4Li44LiX4LiY4LmMCivguKfguLTguKjguLjguJfguJjguLTguYwKK+C4p+C4tOC5gOC4qOC4qQor4Lin4Li04LmA4Lio4Lip4LiT4LmMCivguKfguLTguKnguJPguLgKK+C4p+C4tOC4qeC4k+C4uOC4geC4o+C4o+C4oQor4Lin4Li04Lip4LiY4LijCivguKfguLTguKnguLHguIHguJXguYwKK+C4p+C4tOC4qeC4seC4ogor4Lin4Li04Lip4Liy4LiTCivguKfguLTguKnguLjguKfguLHguJUKK+C4p+C4tOC4quC4geC4teC5iQor4Lin4Li04Liq4Lij4Lij4LiK4LiZ4Li14Lii4LmMCivguKfguLTguKrguKTguJUKK+C4p+C4tOC4quC4quC4uOC4geC4o+C4o+C4oQor4Lin4Li04Liq4Lix4LiH4LmC4Lii4LiECivguKfguLTguKrguLHguIrguJnguLIKK+C4p+C4tOC4quC4seC4jeC4jeC4tQor4Lin4Li04Liq4Lix4LiiCivguKfguLTguKrguLLguILguLAKK+C4p+C4tOC4quC4suC4guC4sgor4Lin4Li04Liq4Liy4Lih4Lix4LiNCivguKfguLTguKrguLLguKMKK+C4p+C4tOC4quC4suC4o+C4lwor4Lin4Li04Liq4Liy4LilCivguKfguLTguKrguLLguKrguLAKK+C4p+C4tOC4quC4suC4q+C4geC4tOC4iAor4Lin4Li04Liq4Li04LiQCivguKfguLTguKrguLjguIfguITguLLguKHguKrguLXguKHguLIKK+C4p+C4tOC4quC4uOC4l+C4mOC5jAor4Lin4Li04Liq4Li44LiX4LiY4Li04LmMCivguKfguLTguKrguLnguJXguKMKK+C4p+C4tOC5gOC4quC4lwor4Lin4Li04LmA4Liq4Liq4LiZ4LiwCivguKfguLTguKvguIQKK+C4p+C4tOC4q+C4h+C4hOC5jAor4Lin4Li04Lir4Lil4Lix4LmI4LiZCivguKfguLTguKvguLHguJvguJvguJXguLQKK+C4p+C4tOC4q+C4suC4ouC4quC4sAor4Lin4Li04Lir4Liy4LijCivguKfguLTguKvguLQKK+C4p+C4tOC4q+C4tOC4h+C4quC4sAor4Lin4Li04Lir4Li04LiH4Liq4LiyCivguKfguLTguYDguKvguKrguKDguLLguITguLUKK+C4p+C4tOC5gOC4q+C4quC4sgor4Lin4Li04Lis4Lix4LiH4LiE4LmMCivguKfguLTguKzguLLguKMKK+C4p+C4tQor4Lin4Li14LiI4Li0CivguKfguLXguIrguJnguLUKK+C4p+C4teC4i+C5iOC4sgor4Lin4Li14LiT4LiyCivguKfguLXguYnguJQKK+C4p+C4teC5iOC4p+C4seC4mQor4Lin4Li14LmI4LmB4Lin4LinCivguKfguLXguKrguLAKK+C4p+C4uOC5ieC4hwor4Lin4Li44LiQ4Li0CivguKfguLjguJIKK+C4p+C4uOC4kuC4tAor4Lin4Li44LiUCivguKfguLjguYjguJkKK+C4p+C4uOC5ieC4mQor4Lin4Li44LiaCivguKfguLjguYnguKIKK+C4p+C4uOC4peC5geC4n+C4o+C4oQor4Lin4Li54LmJCivguKfguLnguJTguKfguLLguJQKK+C4p+C4ueC4mgor4Lin4Li54LmI4Lin4Liy4LihCivguYDguKfguYkKK+C5gOC4p+C4hAor4LmA4Lin4LiE4Li04LiZCivguYDguKfguITguLUKK+C5gOC4p+C4iAor4LmA4Lin4LiKCivguYDguKfguIrguKLguLHguJnguJXguYwKK+C5gOC4p+C5hOC4iuC4ouC4ouC4seC4meC4leC5jOC4o+C4suC4iuC4o+C4lgor4LmA4Lin4LiQ4LiZ4LmMCivguYDguKfguJPguLAKK+C5gOC4p+C4k+C4tAor4LmA4Lin4LiT4Li04LiBCivguYDguKfguJPguLgKK+C5gOC4p+C4leC4meC5jAor4LmA4Lin4LiV4LijCivguYDguKfguJXguLLguKUKK+C5gOC4p+C4lwor4LmA4Lin4LiX4LiZ4LiyCivguYDguKfguJfguKLguYwKK+C5gOC4p+C4l+C4suC4h+C4hOC5jAor4LmA4Lin4LiX4Liy4LiH4LiE4Lio4Liy4Liq4LiV4Lij4LmMCivguYDguKfguJfguLLguJnguJXguYwKK+C5gOC4p+C4l+C4suC4meC4leC4sAor4LmA4Lin4LiX4Li0CivguYDguKfguJfguLUKK+C5gOC4p+C4mOC4sAor4LmA4Lin4LiY4Li1CivguYDguKfguJkKK+C5gOC4p+C5ieC4mQor4LmA4Lin4LiZ4LmE4LiV4LiiCivguYDguKfguYTguJnguKIKK+C5gOC4p+C4oeC4sAor4LmA4Lin4Lih4Lix4LiVCivguYDguKfguKHguLLguJXguLTguIEKK+C5gOC4p+C5ieC4ogor4LmA4Lin4LijCivguYDguKfguKPguKHguJPguLUKK+C5gOC4p+C4o+C4tQor4LmA4Lin4LmC4Lij4LiI4LiZ4LmMCivguYDguKfguKXguLIKK+C5gOC4p+C5gOC4peC4meC4i+C4tQor4LmA4Lin4Lin4Lix4LiTCivguYDguKfguKfguLHguJPguJPguLTguKLguLAKK+C5gOC4p+C4qOC4oeC5jAor4LmA4Lin4Lio4Lii4LmMCivguYDguKfguKjguKLguLIKK+C5gOC4p+C4quC4meC5jAor4LmA4Lin4Liq4Lig4Li5CivguYDguKfguKrguKHguYwKK+C5gOC4p+C4quC4oeC4sAor4LmA4Lin4Liq4Lin4Lix4LiTCivguYDguKfguKrguKrguLAKK+C5gOC4p+C4quC4quC4seC4meC4lOC4owor4LmA4Lin4Liq4Liq4Li44LiB4Lij4Lij4LihCivguYDguKfguKrguKrguLjguKfguLHguJMKK+C5gOC4p+C4quC4suC4o+C4seC4igor4LmA4Lin4Liq4Li0CivguYDguKfguKrguLTguKLguLIKK+C5gOC4p+C4q+C4mQor4LmA4Lin4Lir4LiwCivguYDguKfguKvguLHguIfguITguYwKK+C5gOC4p+C4q+C4seC4m+C4leC4tAor4LmA4Lin4Lir4LiyCivguYDguKfguKvguLLguKLguKoKK+C5gOC4p+C4rOC4uAor4LmA4Lin4Lis4Li44Lij4Li04LiiCivguYDguKfguYjguK0KK+C5gOC4p+C5ieC4sgor4LmA4Lin4Li04LiBCivguYDguKfguLTguYnguIcKK+C5gOC4p+C4teC5iOC4ogor4LmA4Lin4Li14Lii4LiHCivguYDguKfguLXguKLguJkKK+C5gOC4p+C4teC4ouC4owor4LmA4Lin4Li14LmI4Lii4LinCivguYHguKfguYkKK+C5geC4p+C4hwor4LmB4Lin4LmJ4LiHCivguYHguKfguJQKK+C5geC4p+C4leC4owor4LmB4Lin4LiZCivguYHguKfguYjguJkKK+C5geC4p+C4meC4lOC4sgor4LmB4Lin4LiaCivguYHguKfguKEKK+C5geC4p+C4pwor4LmB4Lin4LmI4LinCivguYHguKfguKfguKfguLTguYDguIrguLXguKLguKMKK+C5geC4p+C4sAor4LmC4LinCivguYLguKfguYgKK+C5guC4p+C4geC4suC4owor4LmC4Lin4LmI4LiHCivguYLguKfguJUKK+C5guC4p+C4l+C4suC4mQor4LmC4Lin4LiiCivguYLguKfguYnguKIKK+C5guC4p+C4ouC4p+C4suC4ogor4LmC4Lin4LmJ4LmA4Lin4LmJCivguYLguKfguKrguLLguJkKK+C5guC4p+C4q+C4suC4owor4LmE4LinCivguYTguKfguYkKK+C5hOC4p+C4geC4ueC4k+C4kOC5jAor4LmE4Lin4LiR4Li54Lij4Lii4LmMCivguYTguKfguJfguKLguYwKK+C5hOC4p+C4nuC4iOC4meC5jAor4LmE4Lin4Lii4Liy4LiB4Lij4LiT4LmMCivguYTguKfguKLguLLguKfguLHguIjguIHguKMKK+C5hOC4p+C4ouC4suC4p+C4seC4iOC4oeC4seC4ogor4LmE4Lin4Lij4Lix4LiqCivguYTguKfguKfguKPguKPguJMKK+C5hOC4p+C4qeC4k+C4ngor4LmE4Lin4LmC4Lit4Lil4Li04LiZCivguKgKK+C4qOC4gQor4Lio4LiB4LiPCivguKjguIHguKUKK+C4qOC4geC4uOC4mQor4Lio4LiB4Li44LiZ4Li0CivguKjguIHguLjguJnguLUKK+C4qOC4h+C4geC4sgor4Lio4LiI4Li04Lia4LiU4Li1CivguKjguIjguLUKK+C4qOC4kAor4Lio4LiU4LiBCivguKjguJUKK+C4qOC4leC4gQor4Lio4LiZ4Li0CivguKjguYTguJnguKrguYwKK+C4qOC4ngor4Lio4Lie4LilCivguKjguKEKK+C4qOC4oeC4mQor4Lio4Lih4LiZ4Li1CivguKjguKHguJnguLXguKLguYwKK+C4qOC4oeC4qOC4suC4mQor4Lio4LiiCivguKjguKLguJnguLAKK+C4qOC4ouC4meC4teC4ouC5jAor4Lio4Lii4Liy4LihCivguKjguKLguLLguKHguIHguLHguJPguJDguYwKK+C4qOC4ouC4suC4oeC4pQor4Lio4LijCivguKjguKPguJPguLQKK+C4qOC4o+C4meC4suC4o+C4suC4ouC4k+C5jAor4Lio4Lij4LigCivguKjguKPguKHguJPguLAKK+C4qOC4o+C4o+C4geC4owor4Lio4Lij4Lij4LiB4Lij4LiyCivguKjguKPguKPguJ7guKPguLUKK+C4qOC4o+C4p+C4k+C4sAor4Lio4Lij4Lin4LiT4Li14Lii4LmMCivguKjguKPguKfguLTguKnguJDguLIKK+C4qOC4o+C4seC4lgor4Lio4Lij4Lix4LiW4LiZ4LiwCivguKjguKPguLHguJcKK+C4qOC4o+C4seC4l+C4mOC4sgor4Lio4Lij4Lix4LiZ4LiW4LmMCivguKjguKPguLHguJnguKLguYwKK+C4qOC4o+C4seC4meC4ouC4uQor4Lio4Lij4Lix4LiiCivguKjguKPguLLguJfguJjguYwKK+C4qOC4o+C4suC4meC4leC5jAor4Lio4Lij4Liy4LieCivguKjguKPguLLguJ7guIEKK+C4qOC4o+C4suC4ouC4sAor4Lio4Lij4Liy4Lin4LiBCivguKjguKPguLLguKfguJPguLAKK+C4qOC4o+C4suC4p+C4o+C4k+C5jAor4Lio4Lij4Liy4Lin4Li44LiYCivguKjguKPguLLguKrguJnguYwKK+C4qOC4o+C4tQor4Lio4Lij4Li14LiV4Lij4Lix4LiHCivguKjguKPguLXguKnguLAKK+C4qOC4o+C4teC4quC4seC4h+C4hOC4teC4lQor4Lio4Lij4Li44LiVCivguKjguKPguLjguJXguLQKK+C4qOC4pOC4geC4suC4pQor4Lio4Lik4LiE4Liy4LilCivguKjguKTguIfguITguYwKK+C4qOC4pOC4h+C4hOC4suC4owor4Lio4Lik4LiH4LiE4Liy4Lij4Li04LiZCivguKjguKTguIfguITguLLguKPguLUKK+C4qOC4peC4oAor4Lio4Lil4Lix4LiWCivguKjguKXguLTguKnguI/guYwKK+C4qOC4peC4tOC4qeC4sgor4Lio4LinCivguKjguKfguKjguLjguKMKK+C4qOC4p+C4seC4qOC4mQor4Lio4Lin4Lix4LiqCivguKjguKfguLIKK+C4qOC4p+C4suC4mQor4Lio4Lin4Liy4LiqCivguKjguKfguLTguJUKK+C4qOC4p+C4tOC4leC4owor4Lio4Lio4LiwCivguKjguKjguLQKK+C4qOC4qOC4tOC4mQor4Lio4Lio4Li1CivguKjguKrguLIKK+C4qOC4rQor4Lio4Lit4LiBCivguKjguLHguIHguJTguLIKK+C4qOC4seC4geC4lOC4tAor4Lio4Lix4LiB4LiU4Li04LmMCivguKjguLHguIHguJXguLQKK+C4qOC4seC4geC4ouC5jAor4Lio4Lix4LiB4Lii4LiwCivguKjguLHguIHguKPguLLguIoKK+C4qOC4seC4h+C4geC4owor4Lio4Lix4LiH4LiB4LiyCivguKjguLHguIfguIHguLgKK+C4qOC4seC4leC4o+C4uAor4Lio4Lix4LiV4Lij4Li5CivguKjguLHguJfguJjguJnguLAKK+C4qOC4seC4meC4quC4meC4sAor4Lio4Lix4LiZ4Liq4LiZ4Li14Lii4LmMCivguKjguLHguJ7guJfguYwKK+C4qOC4seC4oeC4ouC4uAor4Lio4Lix4Lii4Lii4LiyCivguKjguLHguKUKK+C4qOC4seC4peC4gQor4Lio4Lix4Lil4LiB4Li1CivguKjguLHguKrguJTguKMKK+C4qOC4seC4quC4leC4o+C4sgor4Lio4Lix4Liq4LiV4Lij4Li1CivguKjguLHguKrguKIKK+C4qOC4suC4gQor4Lio4Liy4LiB4LiV4LiwCivguKjguLLguIHguKLguLAKK+C4qOC4suC4geC4p+C4owor4Lio4Liy4LiB4Liy4LiH4LiE4LmMCivguKjguLLguIHguLTguJnguLUKK+C4qOC4suC4juC4gQor4Lio4Liy4LiQ4Lii4LiwCivguKjguLLguJMKK+C4qOC4suC4lQor4Lio4Liy4LiZCivguKjguLLguJnguJXguYwKK+C4qOC4suC4meC4leC4tAor4Lio4Liy4LiZ4Li04LiVCivguKjguLLguJsKK+C4qOC4suC4nuC4l+C5jAor4Lio4Liy4Lie4LijCivguKjguLLguKHguLAKK+C4qOC4suC4oeC4sgor4Lio4Liy4Lih4Li14LilCivguKjguLLguKPguJcKK+C4qOC4suC4o+C4l+C4ueC4pQor4Lio4Liy4Lij4Li04LiB4LiyCivguKjguLLguKUKK+C4qOC4suC4peC4sgor4Lio4Liy4Lil4Li0CivguKjguLLguKjguKfguLHguJUKK+C4qOC4suC4quC4gQor4Lio4Liy4Liq4LiU4LiyCivguKjguLLguKrguJXguKPguYwKK+C4qOC4suC4quC4leC4o+C4sgor4Lio4Liy4Liq4LiZ4LmMCivguKjguLLguKrguJnguLIKK+C4qOC4suC4quC4meC4teC4ouC5jAor4Lio4Liy4Liq4LmC4LiZ4Lin4Liy4LiXCivguKjguLTguIHguKnguIEKK+C4qOC4tOC4geC4suC4owor4Lio4Li04LiC4LijCivguKjguLTguILguKPguLTguJkKK+C4qOC4tOC4guC4o+C4tQor4Lio4Li04LiC4Lix4LiT4LiR4LmMCivguKjguLTguILguLIKK+C4qOC4tOC4hOC4suC4pQor4Lio4Li04LiH4LiC4LijCivguKjguLTguIfguILguKPguLTguJkKK+C4qOC4tOC4lQor4Lio4Li04LiW4Li1CivguKjguLTguJ7guLTguKPguLAKK+C4qOC4tOC4o+C4sAor4Lio4Li04Lij4LiyCivguKjguLTguKPguLLguKHguJ7guLjguIoKK+C4qOC4tOC5guC4o+C4o+C4suC4mgor4Lio4Li04Lil4Lib4LmMCivguKjguLTguKXguJvguLAKK+C4qOC4tOC4peC4sgor4Lio4Li04Lin4LiwCivguKjguLTguKfguLTguIHguLIKK+C4qOC4tOC4qOC4teC4o+C4sAor4Lio4Li04Lio4Li4CivguKjguLTguKnguI7guLQKK+C4qOC4tOC4qeC4j+C5jAor4Lio4Li04Lip4Lii4LmMCivguKjguLXguIHguKMKK+C4qOC4teC4guC4owor4Lio4Li14LiV4LilCivguKjguLXguKUKK+C4qOC4tuC4gQor4Lio4Li24LiB4Lip4LiyCivguKjguLjguIHguKPguYwKK+C4qOC4uOC4geC4peC4seC4oQor4Lio4Li44LiB4LiwCivguKjguLjguIjguLQKK+C4qOC4uOC4k+C4keC4sgor4Lio4Li44LiT4LiR4Li1CivguKjguLjguJfguJgKK+C4qOC4uOC4l+C4mOC4tAor4Lio4Li44LiZCivguKjguLjguJnguLHguIEKK+C4qOC4uOC4meC4tAor4Lio4Li44Lil4Li1CivguKjguLjguKnguLTguKMKK+C4qOC4uOC4qeC4tOC4pQor4Lio4Li54LiB4LijCivguKjguLnguJfguKMKK+C4qOC4ueC4meC4ouC5jAor4Lio4Li54LilCivguKjguLnguKXguLTguJkKK+C5gOC4qOC4o+C4k+C4tQor4LmA4Lio4Lij4Lip4LiQ4LmMCivguYDguKjguKPguKnguJDguLUKK+C5gOC4qOC4o+C5ieC4sgor4LmA4Lio4Lil4LipCivguYDguKjguKfguJTguIfguITguYwKK+C5gOC4qOC4p+C4lOC4teC4oAor4LmA4Lio4Lin4LiVCivguYDguKjguKfguJXguKMKK+C5gOC4qOC4p+C4suC4pQor4LmA4Lio4LipCivguYDguKjguLLguYTguIjguKIKK+C5gOC4qOC4suC4o+C5jAor4LmA4Lio4Liy4Lij4Lii4LiwCivguYDguKjguLTguIEKK+C5gOC4qOC4teC4ouC4owor4LmC4Lio4LiBCivguYLguKjguIHguLIKK+C5guC4qOC4geC4tQor4LmC4Lio4LiI4LiZ4LiwCivguYLguKjguIjguJnguLXguKLguLAKK+C5guC4qOC4iOC4tAor4LmC4Lio4LiW4LiwCivguYLguKjguJjguJnguLAKK+C5guC4qOC4nOC4sAor4LmC4Lio4LigCivguYLguKjguKDguJkKK+C5guC4qOC4oOC4sgor4LmC4Lio4Lig4Li04LiVCivguYLguKjguKDguLTguJkKK+C5guC4qOC4oOC4tOC4qeC4kOC5jAor4LmC4Lio4Lig4Li1CivguYLguKjguKPguJPguLQKK+C5guC4qOC4o+C4k+C4tQor4LmC4Lio4Lij4LiU4LiyCivguYLguKjguKPguJXguKMKK+C5guC4qOC4peC4gQor4LmC4Lio4Lin4Lig4Liy4LieCivguYTguKjguKUKK+C5hOC4qOC4p+C4sAor4LipCivguKnguKHguLIKK+C4qeC4seC4jwor4Lip4Lix4LiP4LiB4LiwCivguKnguLHguJEKK+C4qeC4seC4kwor4Lip4Lix4LipCivguKnguLHguKnguI/guLUKK+C4qeC4seC4qeC4kAor4Lip4Lix4Lip4LiQ4Li1CivguKnguLLguKPguKDguLLguITguK3guKMKK+C5guC4qeC4keC4qAor4LmC4Lip4LiR4Lio4Lix4LiZCivguKoKK+C4quC4gQor4Liq4LiB4LiP4LiwCivguKrguIHguJDguLLguJkKK+C4quC4geC4l+C4suC4hOC4suC4oeC4tQor4Liq4LiB4LiZ4LiY4LmMCivguKrguIHguJvguKPguIEKK+C4quC4geC4o+C4k+C4teC4ouC5jAor4Liq4LiB4Lij4Lij4LiI4LmMCivguKrguIHguKPguKPguJYKK+C4quC4geC4o+C4o+C4oeC4geC4o+C4tOC4ouC4sgor4Liq4LiB4Lij4Lix4LihCivguKrguIHguKPguLkKK+C4quC4geC4pQor4Liq4LiB4Lix4LiUCivguKrguIHguLHguJTguYHguITguKPguYgKK+C4quC4geC4sgor4Liq4LiB4Liy4Lii4LmB4Lil4LiaCivguKrguIHguLLguKcKK+C4quC4geC4tOC4l+C4suC4hOC4suC4oeC4tQor4Liq4LiB4Li1CivguKrguIHguLjguJMKK+C4quC4geC4uOC4k+C4sgor4Liq4LiB4Li44LiT4Li1CivguKrguIHguLjguJkKK+C4quC4geC4uOC4meC4leC5jAor4Liq4LiB4Li44LilCivguKrguYDguIHguJUKK+C4quC5geC4geC4meC5gOC4lOC4teC4ouC4oQor4Liq4LiC4LiwCivguKrguILguLIKK+C4quC4guC4tAor4Liq4LiHCivguKrguYjguIcKK+C4quC4h+C4geC4owor4Liq4LiH4LiB4Lij4Liy4LiZ4LiV4LmMCivguKrguIfguIHguLIKK+C4quC4h+C5guC4geC4iAor4Liq4LiH4LiE4LmMCivguKrguIfguITguKMKK+C4quC4h+C4hOC4o+C4suC4oQor4Liq4LiH4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguKrguIfguIbguYwKK+C4quC4h+C4mgor4Liq4LiH4Lin4LiZCivguKrguIfguYDguKnguJsKK+C4quC5iOC4h+C4quC4geC4suC4owor4Liq4LiH4Liq4Lix4LiiCivguKrguIfguKrguLLguKMKK+C4quC4h+C4seC4lAor4Liq4LiH4LmI4LiyCivguKrguIjguYrguKfguJQKK+C4quC4kAor4Liq4LiT4LiR4LmMCivguKrguJQKK+C4quC4lOC4gQor4Liq4LiU4LiZCivguKrguJTguKHguKDguYwKK+C4quC4lOC4seC4mQor4Liq4LiU4Lix4LiaCivguKrguJTguLHguJrguJvguIHguKPguJPguYwKK+C4quC4lOC4swor4Liq4LiU4Li1CivguKrguJTguLjguJTguLUKK+C4quC4lOC4ueC4mwor4Liq4LiVCivguKrguJXguIEKK+C4quC4leC4mQor4Liq4LiV4Lij4Lit4LiZ4LmA4LiK4Li14Lii4LihCivguKrguJXguKPguLTguIHguJnguLTguJkKK+C4quC4leC4o+C4tQor4Liq4LiV4Lix4LiZCivguKrguJXguLHguJnguKLguYwKK+C4quC4leC4seC4nuC4mOC5jAor4Liq4LiV4Lix4Lif4Lif4LmMCivguKrguJXguLHguKHguKDguYwKK+C4quC4leC4suC4h+C4hOC5jAor4Liq4LiV4Liy4Lif4Lif4LmMCivguKrguJXguLQKK+C4quC4leC4tOC5iuC4gQor4Liq4LiV4Li1CivguKrguJXguLXguKEKK+C4quC4leC4uQor4Liq4LiV4Li54LibCivguKrguYDguJXguYfguIEKK+C4quC5gOC4leC4meC5gOC4peC4qgor4Liq4LmA4LiV4Lii4LmMCivguKrguYTguJXguKPguYrguITguYwKK+C4quC4luC4mQor4Liq4LiW4Lia4LiU4Li1CivguKrguJbguKUKK+C4quC4luC4p+C4teC4o+C4sAor4Liq4LiW4Liy4LiZCivguKrguJbguLLguJnguLAKK+C4quC4luC4suC4meC4tQor4Liq4LiW4Liy4Lia4LiBCivguKrguJbguLLguJrguLHguJkKK+C4quC4luC4suC4m+C4meC4sgor4Liq4LiW4Liy4Lib4LiZ4Li04LiBCivguKrguJbguLLguJvguJnguLXguKLguJ7guKLguLLguIHguKPguJPguYwKK+C4quC4luC4suC4m+C4meC4teC4ouC4p+C4suC4l+C4tQor4Liq4LiW4Liy4Lib4Lix4LiV4Lii4LiB4Lij4Lij4LihCivguKrguJbguLLguJ7guKMKK+C4quC4luC4suC4pQor4Liq4LiW4Liy4Lin4LijCivguKrguJbguLTguJUKK+C4quC4luC4tOC4leC4meC4qOC4suC4quC4leC4o+C5jAor4Liq4LiW4Li04LiV4Li0CivguKrguJbguLjguKUKK+C4quC4luC4ueC4mwor4Liq4LiX4Liy4LijCivguKrguJfguLbguIcKK+C4quC4l+C4uOC4oQor4Liq4LiY4LiZCivguKrguJjguLjguKrguLAKK+C4quC4mQor4Liq4LmJ4LiZCivguKrguJnguYDguJTguIEKK+C4quC4meC4l+C4meC4sgor4Liq4LiZ4LiX4Lij4Lij4LioCivguKrguJnguJfguKPguKPguKjguJnguYwKK+C4quC4meC4l+C4tOC4qAor4Liq4LiZ4LmA4LiX4LioCivguKrguJnguYDguJfguYjguKvguYwKK+C4quC4meC4mOC4ouC4sgor4Liq4LiZ4LiY4Li0CivguKrguJnguJjguLTguK3guKXguIfguIHguJUKK+C4quC4meC4meC4o+C4suC4hOC4sgor4Liq4LiZ4LihCivguKrguJnguKfguJkKK+C4quC4meC4quC4o+C5ieC4reC4ogor4Liq4LiZ4Lit4LiHCivguKrguJnguK3guJoKK+C4quC4meC4reC4oQor4Liq4LiZ4LiwCivguKrguJnguLHguJQKK+C4quC4meC4seC5iOC4mQor4Liq4LiZ4Lix4LiaCivguKrguJnguLHguJrguKrguJnguLjguJkKK+C4quC4meC4suC4lOC4gQor4Liq4LiZ4Liy4LiZCivguKrguJnguLLguJrguIEKK+C4quC4meC4suC4muC4seC4mQor4Liq4LiZ4Liy4LihCivguKrguJnguLLguKLguLgKK+C4quC4meC4tOC4gQor4Liq4LiZ4Li04LiXCivguKrguJnguLTguJgKK+C4quC4meC4tOC4oQor4Liq4LiZ4Li04Lih4Liq4Lij4LmJ4Lit4LiiCivguKrguJnguLjguIEKK+C4quC4meC4uOC4geC5gOC4geC4reC4o+C5jAor4Liq4LiZ4Li44LiCCivguKrguJnguLjguJUKK+C4quC4meC4uOC5iOC4mQor4Liq4LiaCivguKrguJrguIcKK+C4quC4muC4iAor4Liq4Lia4LiWCivguKrguJrguYDguKrguLXguKIKK+C4quC4muC4seC4mQor4Liq4Lia4Liy4LiiCivguKrguJrguLnguYgKK+C4quC5hOC4mgor4Liq4Lib4Lij4Li04LiHCivguKrguJvguLLguYDguIHguJXguJXguLUKK+C4quC4m+C4suC4ogor4Liq4Lib4Li04Lij4Li04LiVCivguKrguYDguJvguIHguJXguKPguLHguKEKK+C4quC5gOC4m+C4geC5guC4l+C4o+C4quC5guC4hOC4mwor4Liq4LmE4Lib4Lij4Li04Lil4Lil4Lix4LihCivguKrguJ7guLHguYnguJkKK+C4quC4nuC4suC4mgor4Liq4Lig4Lix4LiH4LiE4Lih4LiT4LiR4LilCivguKrguKDguLIKK+C4quC4oOC4suC4hAor4Liq4Lig4Liy4LieCivguKrguKDguLLguKfguLAKK+C4quC4oQor4Liq4LmJ4LihCivguKrguKHguIHguLLguKMKK+C4quC4oeC4iOC4suC4o+C4tQor4Liq4Lih4LiK4Li14Lin4Li04LiV4LiyCivguKrguKHguIrguLXguKfguLTguJjguKPguKPguKEKK+C4quC4oeC4jeC4sgor4Liq4Lih4LmA4LiN4LioCivguKrguKHguJPguLAKK+C4quC4oeC4lOC4tuC4h+C4quC5jAor4Liq4Lih4LiU4Li44LilCivguKrguKHguYDguJTguYfguIgKK+C4quC4oeC4luC4sAor4Liq4Lih4LiZ4Liy4LiE4Li44LiTCivguKrguKHguJrguLHguJXguLQKK+C4quC4oeC4muC4uOC4geC4quC4oeC4muC4seC4mQor4Liq4Lih4Lia4Li54Lij4LiT4LmMCivguKrguKHguJrguLnguKPguJPguLLguI3guLLguKrguLTguJfguJjguLTguKPguLLguIrguKLguYwKK+C4quC4oeC4m+C4o+C4sOC4lOC4tQor4Liq4Lih4Lib4Lik4LiU4Li1CivguKrguKHguJvguKTguYXguJTguLUKK+C4quC4oeC4nOC4uOC4qgor4Liq4Lih4Lie4LiH4Lio4LmMCivguKrguKHguJ7guKUKK+C4quC4oeC4nuC4seC4geC4meC4seC4geC4geC4suC4owor4Liq4Lih4Lie4Lix4LiV4Liq4LijCivguKrguKHguJ7guLLguKoKK+C4quC4oeC5gOC4nuC4igor4Liq4Lih4LmC4Lie4LiY4LiZ4LmMCivguKrguKHguYLguJ7guJjguLQKK+C4quC4oeC4oOC4ngor4Liq4Lih4Lig4Liy4LijCivguKrguKHguYLguKDguIQKK+C4quC4oeC5guC4oOC4igor4Liq4Lih4Lih4LiVCivguKrguKHguKHguJXguLQKK+C4quC4oeC4oeC4suC4leC4owor4Liq4Lih4Lih4Li44LiV4Li0CivguKrguKHguKHguLnguKUKK+C4quC4oeC5guC4oeC4lwor4Liq4Lih4LmC4Lii4LiECivguKrguKHguKMKK+C4quC4oeC4o+C4lAor4Liq4Lih4Lij4Lij4LiWCivguKrguKHguKPguKoKK+C4quC4oeC4pOC4lOC4tQor4Liq4Lih4Lik4LiV4Li0CivguKrguKHguKTguYXguJTguLUKK+C4quC4oeC4p+C4seC4ogor4Liq4Lih4Lin4Liy4Lii4LiwCivguKrguKHguYDguKrguKPguYfguIgKK+C4quC4oeC4rQor4Liq4Lih4Lit4LiHCivguKrguKHguK3guKrguLPguYDguKDguLIKK+C4quC4oeC4seC4hAor4Liq4Lih4Lix4LiE4LijCivguKrguKHguLHguIfguITguLUKK+C4quC4oeC4seC4igor4Liq4Lih4Lix4LiK4LiK4LiyCivguKrguKHguLHguJUKK+C4quC4oeC4seC4mQor4Liq4Lih4Lix4LiZ4LiV4LmMCivguKrguKHguLHguKIKK+C4quC4oeC4sgor4Liq4Lih4Liy4LiE4LihCivguKrguKHguLLguIjguLLguKMKK+C4quC4oeC4suC4iuC4tOC4gQor4Liq4Lih4Liy4LiX4Liy4LiZCivguKrguKHguLLguJjguLQKK+C4quC4oeC4suC4mQor4Liq4Lih4Liy4LiZ4Lix4LiV4LiV4LiyCivguKrguKHguLLguYLguJnguJXguKHguYwKK+C4quC4oeC4suC4muC4seC4leC4tAor4Liq4Lih4Liy4Lie4Lix4LiZ4LiY4Lij4Lix4LiQCivguKrguKHguLLguKoKK+C4quC4oeC5iOC4s+C5gOC4quC4oeC4rQor4Liq4Lih4Li04LiHCivguKrguKHguLTguIfguJfguK3guIcKK+C4quC4oeC4tOC4lQor4Liq4Lih4Li04LiV4Li0CivguKrguKHguLTguJfguJjguYwKK+C4quC4oeC4tOC4l+C4mOC4tAor4Liq4Lih4Li1CivguKrguKHguLXguJsKK+C4quC4oeC4teC4owor4Liq4Lih4Li44LiBCivguKrguKHguLjguIjguIjguLHguKIKK+C4quC4oeC4uOC4iOC5gOC4ieC4lwor4Liq4Lih4Li44LiP4LiQ4Liy4LiZCivguKrguKHguLjguJQKK+C4quC4oeC4uOC4leC4luC4suC4mQor4Liq4Lih4Li44LiX4LijCivguKrguKHguLjguJfguKPguIEKK+C4quC4oeC4uOC4l+C4seC4ogor4Liq4Lih4Li44LiX4Li04LiVCivguKrguKHguLjguJkKK+C4quC4oeC4uOC4meC5hOC4nuC4owor4Liq4Lih4Li44Lil4LmB4Lin4LmJ4LiHCivguKrguKHguLjguKvguYwKK+C4quC5guC4oeC4mOC4suC4mQor4Liq4LmC4Lih4Liq4LijCivguKrguKLguJQKK+C4quC4ouC4meC4sAor4Liq4Lii4LiaCivguKrguKLguKHguJ7guKMKK+C4quC4ouC4oeC4oOC4uQor4Liq4Lii4Lit4LiHCivguKrguKLguK3guJkKK+C4quC4ouC4seC4oeC4nuC4owor4Liq4Lii4Lix4Lih4Lin4Lij4LiyCivguKrguKLguLLguKEKK+C4quC4ouC4suC4ogor4Liq4Lii4Li04LinCivguKrguKLguLTguYnguKcKK+C4quC4ouC4uOC5iOC4mQor4Liq4Lii4Li44Lih4Lie4LijCivguKrguKLguLjguKHguKDguLkKK+C4quC4owor4Liq4Lij4LiBCivguKrguKPguIcKK+C4quC4o+C5iOC4hwor4Liq4Lij4LiP4LiwCivguKrguKPguJPguLAKK+C4quC4o+C4lOC4seC4gQor4Liq4Lij4LiU4Li24LmI4LiZCivguKrguKPguJTguLfguYjguJkKK+C4quC4o+C4leC4sAor4Liq4Lij4LiV4Lix4LiBCivguKrguKPguJfguLAKK+C4quC4o+C4l+C4tuC4hwor4Liq4Lij4LmB4LiX4LiaCivguKrguKPguJnguLjguIEKK+C4quC4o+C5gOC4meC4suC4sAor4Liq4Lij4LmE4LiZCivguKrguKPguJoKK+C4quC4o+C4muC4mgor4Liq4Lij4Lia4Lix4LiaCivguKrguKPguJ4KK+C4quC4o+C5gOC4nuC4iuC4jQor4Liq4Lij4Lig4LiwCivguKrguKPguKDguLHguI3guI3guLAKK+C4quC4o+C4oOC4uQor4Liq4Lij4LihCivguKrguKPguKMKK+C4quC4o+C4o+C4hOC5jAor4Liq4Lij4Lij4LieCivguKrguKPguKPguJ7guLHguIrguI0KK+C4quC4o+C4o+C5gOC4nuC4iuC4jQor4Liq4Lij4Lij4LmA4Lie4LiK4Li44LiU4LiyCivguKrguKPguKPguKfguIcKK+C4quC4o+C4o+C5gOC4quC4o+C4tOC4jQor4Liq4Lij4Lil4LiZCivguKrguKPguKXguKEKK+C4quC4o+C4peC4oeC4quC4peC4p+C4mQor4Liq4Lij4Lil4Lit4LiUCivguKrguKPguKXguK3guJkKK+C4quC4o+C4peC4sAor4Liq4Lij4Lil4LmJ4Liy4LiiCivguKrguKPguKXguLTguJQKK+C4quC4o+C5gOC4peC4ggor4Liq4Lij4Lin4LiHCivguKrguKPguKfguJsKK+C4quC4o+C4p+C4oQor4Liq4Lij4Lin4LilCivguKrguKPguKfguKXguYDguKoKK+C4quC4o+C4p+C4peC5gOC4quC5gOC4ruC4ruC4sgor4Liq4Lij4LmA4Liq4Lij4Li04LiNCivguKrguKPguYnguK3guKIKK+C4quC4o+C5ieC4reC4ouC4l+C4sOC5geC4ogor4Liq4Lij4LiwCivguKrguKPguLDguIHguK0KK+C4quC4o+C4sOC4hOC4o+C4suC4jQor4Liq4Lij4Liw4LiU4LiwCivguKrguKPguLDguJfguYnguK3guJkKK+C4quC4o+C4sOC4nuC4o+C4seC5iOC4hwor4Liq4Lij4Liw4Lit4Liy4LiUCivguKrguKPguLDguK3guLfguYnguJkKK+C4quC4o+C4seC5iOC4hwor4Liq4Lij4Lix4Liq4Lin4LiU4Li1CivguKrguKPguYjguLLguIcKK+C4quC4o+C5ieC4suC4hwor4Liq4Lij4Liy4LiNCivguKrguKPguYnguLLguKfguYDguKrguLXguKLguKcKK+C4quC4o+C4tOC4lQor4Liq4Lij4Li14LmJCivguKrguKPguLXguKPguLAKK+C4quC4o+C4teC4quC4pOC4mgor4Liq4Lij4Li44LiBCivguKrguKPguLjguIcKK+C4quC4o+C4uOC5guC4meC4gQor4Liq4Lij4Li44LibCivguKrguKPguLjguKrguKPguLAKK+C4quC4o+C4ueC4mwor4Liq4LmC4Lij4LiKCivguKrguKTguIEKK+C4quC4pOC4hOC4suC4pQor4Liq4Lik4LiVCivguKrguKTguKnguI7guYwKK+C4quC4pOC4qeC4juC4tQor4Liq4LilCivguKrguKXguJQKK+C4quC4peC4mgor4Liq4Lil4Lin4LiZCivguKrguKXguKfguKIKK+C4quC4peC4reC4lAor4Liq4Lil4Lit4LiZCivguKrguKXguK3guKIKK+C4quC4peC4sAor4Liq4Lil4Liw4Liq4Lil4Lin4LiiCivguKrguKXguLHguIEKK+C4quC4peC4seC4geC5gOC4leC5iQor4Liq4Lil4Lix4LiB4Liq4Liz4LiE4Lix4LiNCivguKrguKXguLHguJQKK+C4quC4peC4seC4lOC5hOC4lAor4Liq4Lil4Lix4LiaCivguKrguKXguLHguKEKK+C4quC4peC4seC4pwor4Liq4Lil4LiyCivguKrguKXguLLguIEKK+C4quC4peC4suC4geC4sgor4Liq4Lil4Liy4LiHCivguKrguKXguYnguLLguIcKK+C4quC4peC4suC4lAor4Liq4Lil4Liy4LiV4Lix4LiZCivguKrguKXguLLguJoKK+C4quC4peC4suC4oQor4Liq4Lil4Liy4LiiCivguKrguKXguLTguJQKK+C4quC4peC4tOC4pQor4Liq4Lil4Li24LiBCivguKrguKXguLbguIcKK+C4quC4peC4uOC4lQor4Liq4Lil4Li44LiaCivguKrguKXguLjguKHguJ7guKMKK+C4quC5geC4peC4hwor4Liq4LmC4Lil4LiUCivguKrguYTguKXguJTguYwKK+C4quC4p+C4gQor4Liq4LmJ4Lin4LiHCivguKrguKfguJQKK+C4quC4p+C4mQor4Liq4LmI4Lin4LiZCivguKrguKfguJnguLAKK+C4quC4p+C4meC4tOC4lQor4Liq4Lin4LiaCivguKrguKfguKEKK+C4quC5ieC4p+C4oQor4Liq4Lin4LiiCivguKrguYjguKfguKIKK+C4quC5ieC4p+C4ogor4Liq4Lin4Lii4LihCivguKrguKfguKMKK+C4quC4p+C4o+C4o+C4hOC5jAor4Liq4Lin4Lij4Lij4Lii4LiyCivguKrguKfguLAKK+C4quC4p+C4seC4quC4lOC4tOC5jAor4Liq4Lin4Lix4Liq4LiU4Li1CivguKrguKfguLHguKrguJXguLTguIHguLAKK+C4quC4p+C4sgor4Liq4Lin4Liy4LiE4LiVCivguKrguKfguLLguIcKK+C4quC4p+C5iOC4suC4hwor4Liq4Lin4Liy4LiUCivguKrguKfguLLguJTguLQKK+C4quC4p+C4suC4lwor4Liq4Lin4Liy4LiZCivguKrguKfguYjguLLguJkKK+C4quC4p+C5ieC4suC4mQor4Liq4Lin4Liy4LiaCivguKrguKfguLLguKHguLQKK+C4quC4p+C4suC4oeC4tQor4Liq4Lin4Liy4LiiCivguKrguKfguLLguKrguJTguLTguYwKK+C4quC4p+C4suC4q+C4sAor4Liq4Lin4Li04LiHCivguKrguKfguLTguIfguKrguKfguLLguKIKK+C4quC4p+C4tOC4jeC4jeC4suC4k+C4geC4l+C4o+C4seC4nuC4ouC5jAor4Liq4Lin4Li04LiV4LiL4LmMCivguKrguKrguLLguKMKK+C4quC4quC4uOC4o+C4sAor4Liq4Liq4Li44Lij4Li1CivguKrguKvguLHguKHguJrguJTguLUKK+C4quC4q+C4seC4quC4o+C4seC4h+C4quC4tQor4Liq4Lir4Lix4Liq4Liq4LiwCivguKrguKvguLHguKrguLIKK+C4quC4rQor4Liq4LmI4LitCivguKrguK3guIcKK+C4quC5iOC4reC4hwor4Liq4LmJ4Lit4LiHCivguKrguK3guJQKK+C4quC4reC4mQor4Liq4LmI4Lit4LiZCivguKrguK3guJoKK+C4quC4reC4nuC4peC4rQor4Liq4LmJ4Lit4LihCivguKrguK3guKIKK+C4quC5iOC4reC5gOC4quC4teC4ouC4lAor4Liq4LiwCivguKrguLDguIHguJQKK+C4quC4sOC4geC4rQor4Liq4Liw4LiB4Liy4LiHCivguKrguLDguIHguLLguKPguLAKK+C4quC4sOC4geC4suC4o+C4sOC4leC4suC4q+C4o+C4sgor4Liq4Liw4LiB4Li04LiUCivguKrguLDguYDguIHguYfguJQKK+C4quC4sOC5geC4gQor4Liq4Liw4LiE4Lij4LmJ4LitCivguKrguLDguITguKPguLLguI0KK+C4quC4sOC4hOC5ieC4suC4mQor4Liq4Liw4LmA4LiH4Liy4Liw4Liq4Liw4LmB4LiH4LiwCivguKrguLDguYPguIgKK+C4quC4sOC4lOC4oQor4Liq4Liw4LiU4Lin4LiBCivguKrguLDguJTguLHguIEKK+C4quC4sOC4lOC4tOC5ieC4hwor4Liq4Liw4LiU4Li24LiHCivguKrguLDguJTguLfguK0KK+C4quC4sOC4lOC4uOC5ieC4hwor4Liq4Liw4LiU4Li44LiUCivguKrguLDguYDguJTguYfguJQKK+C4quC4sOC5gOC4lOC4sgor4Liq4Liw4LmA4LiU4Liy4LiwCivguKrguLDguJXguK0KK+C4quC4sOC4leC4suC4q+C4oeC4seC4mQor4Liq4Liw4LiV4Li2CivguKrguLDguJXguLfguK0KK+C4quC4sOC4leC4uAor4Liq4Liw4LmA4LiV4LmK4LiwCivguKrguLDguYLguJXguIEKK+C4quC4sOC4l+C4gQor4Liq4Liw4LiX4LiZCivguKrguLDguJfguYnguK3guJkKK+C4quC4sOC4l+C5ieC4suC4mQor4Liq4Liw4LiX4Li24LiBCivguKrguLDguJfguLbguJkKK+C4quC4sOC4l+C4tuC5iOC4mQor4Liq4Liw4LmA4LiX4Li04LiZCivguKrguLDguYDguJfguLTguYnguJkKK+C4quC4sOC5gOC4l+C4t+C4reC4mQor4Liq4Liw4LmA4LiX4Li34LmJ4Lit4LiZCivguKrguLDguJrguLAKK+C4quC4sOC4muC4seC4gQor4Liq4Liw4Lia4Lix4LiUCivguKrguLDguJrguLHguYnguJkKK+C4quC4sOC4muC4seC4meC4h+C4sgor4Liq4Liw4Lia4Lix4LiZ4LiH4Liy4LiV4LmJ4LiZCivguKrguLDguJrguYnguLIKK+C4quC4sOC4muC4uQor4Liq4Liw4LmB4Lia4LiHCivguKrguLDguYDguJvguLDguKrguLDguJvguLAKK+C4quC4sOC4nuC4o+C4seC4gQor4Liq4Liw4Lie4Lij4Lix4LmI4LiHCivguKrguLDguJ7guKPguLbguIfguIHguKXguLHguKcKK+C4quC4sOC4nuC4o+C4tuC4mgor4Liq4Liw4Lie4Lix4LiBCivguKrguLDguJ7guLHguIcKK+C4quC4sOC4nuC4seC4lAor4Liq4Liw4Lie4Lix4LmJ4LiZCivguKrguLDguJ7guLLguJkKK+C4quC4sOC4nuC4suC4ogor4Liq4Liw4LmA4Lie4Lij4LmI4LiyCivguKrguLDguYLguJ7guIEKK+C4quC4sOC5gOC4oOC4sgor4Liq4Liw4LmD4Lig4LmJCivguKrguLDguYLguKHguIcKK+C4quC4sOC4o+C4sOC4leC4sAor4Liq4Liw4Lij4Liw4LmB4Lir4LiZ4LmICivguKrguLDguKPguLXguJXguJ7guIfguKjguYwKK+C4quC4sOC4peC4sOC4m+C4sOC4leC4uOC5iOC4mQor4Liq4Liw4Lil4Liy4LiHCivguKrguLDguKXguLbguKHguKrguLDguKXguLfguK0KK+C4quC4sOC4p+C4teC5ieC4lOC4quC4sOC4p+C5ieC4suC4lAor4Liq4Liw4Liq4LihCivguKrguLDguKrguLLguIcKK+C4quC4sOC4reC4suC4hwor4Liq4Liw4Lit4Liy4LiUCivguKrguLDguK3guYnguLLguJkKK+C4quC4sOC4reC4tOC5ieC4hwor4Liq4Liw4Lit4Li04LiU4Liq4Liw4LmA4Lit4Li14Lii4LiZCivguKrguLDguK3guLbguIEKK+C4quC4sOC4reC4t+C5ieC4mQor4Liq4Liw4LmA4Lit4LinCivguKrguLDguYDguK3guK3guLAKK+C4quC4sOC5guC4reC4lOC4quC4sOC4reC4hwor4Liq4Liw4LmE4LitCivguKrguLHguIEKK+C4quC4seC4geC4geC4sAor4Liq4Lix4LiB4LiB4Lix4LiI4LiI4LiwCivguKrguLHguIHguIHguLLguKPguLAKK+C4quC4seC4geC4guC4o+C4sgor4Liq4Lix4LiB4LiC4Li1CivguKrguLHguIHguI/guLAKK+C4quC4seC4geC4leC4sAor4Liq4Lix4LiB4Lii4LiwCivguKrguLHguIHguKfguLIKK+C4quC4seC4geC4q+C4peC4suC4lAor4Liq4Lix4LiC4Lii4LiwCivguKrguLHguIQKK+C4quC4seC4hOC4hOC4sAor4Liq4Lix4LmI4LiHCivguKrguLHguIfguIHguKHguJfguKPguLHguJ7guKLguYwKK+C4quC4seC4h+C4geC4owor4Liq4Lix4LiH4LiB4Liw4LiV4Lix4LiHCivguKrguLHguIfguIHguLDguKfguLHguIcKK+C4quC4seC4h+C4geC4sOC4p+C4suC4lAor4Liq4Lix4LiH4LiB4Liw4Liq4Li1CivguKrguLHguIfguIHguLHguJQKK+C4quC4seC4h+C4geC4seC4m+C4m+C4sAor4Liq4Lix4LiH4LiB4LiyCivguKrguLHguIfguIHguLLguKMKK+C4quC4seC4h+C4geC4suC4qAor4Liq4Lix4LiH4LiB4Li04LmA4Lil4LiqCivguKrguLHguIfguYDguIHguJUKK+C4quC4seC4h+C4guC5jAor4Liq4Lix4LiH4LiC4LiV4LiwCivguKrguLHguIfguILguKLguLIKK+C4quC4seC4h+C4guC4peC4tOC4gQor4Liq4Lix4LiH4LiC4Lil4Li04LiB4LiyCivguKrguLHguIfguILguKfguLLguJnguKMKK+C4quC4seC4h+C4guC4suC4owor4Liq4Lix4LiH4LiC4Liy4Lij4LiX4Li44LiB4LiC4LmMCivguKrguLHguIfguILguLLguKPguJjguKPguKPguKEKK+C4quC4seC4h+C4guC4suC4o+C5guC4peC4gQor4Liq4Lix4LiH4LiC4Liy4Lij4Lit4Li44LmA4Lia4LiB4LiC4LiyCivguKrguLHguIfguYDguILguJsKK+C4quC4seC4h+C5guC4guC4oAor4Liq4Lix4LiH4LiE4LmMCivguKrguLHguIfguITguKEKK+C4quC4seC4h+C4hOC4oeC4meC4tOC4ouC4oQor4Liq4Lix4LiH4LiE4Lih4Lin4Li04LiX4Lii4LiyCivguKrguLHguIfguITguKHguKjguLLguKrguJXguKPguYwKK+C4quC4seC4h+C4hOC4oeC4qOC4tuC4geC4qeC4sgor4Liq4Lix4LiH4LiE4Lih4Liq4LiH4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguKrguLHguIfguITguKvguLAKK+C4quC4seC4h+C4hOC4seC4hwor4Liq4Lix4LiH4LiE4Liy4LiV4LiyCivguKrguLHguIfguITguLLguKLguJnguLIKK+C4quC4seC4h+C4hOC4suC4ouC4meC4suC4ogor4Liq4Lix4LiH4LiE4Li14LiVCivguKrguLHguIfguITguLXguJXguLQKK+C4quC4seC4h+C5gOC4hOC5h+C4lAor4Liq4Lix4LiH4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguKrguLHguIfguIbguLLguI/guLQKK+C4quC4seC4h+C4lOC4seC4gQor4Liq4Lix4LiH4Lib4Liw4LiV4Li04LmA4Lir4LiH4LiwCivguKrguLHguIfguJvguLDguKXguLTguYDguKvguIfguLAKK+C4quC4seC4h+C5guC4ouC4hAor4Liq4Lix4LiH4LmC4Lii4LiK4LiZ4LmMCivguKrguLHguIfguKfguKMKK+C4quC4seC4h+C4p+C4seC4iOC4ieC4o+C4sAor4Liq4Lix4LiH4Lin4Lix4LiY4Lii4Liy4LiiCivguKrguLHguIfguKfguLLguKUKK+C4quC4seC4h+C4p+C4suC4qgor4Liq4Lix4LiH4LmA4Lin4LiKCivguKrguLHguIfguYDguKfguKIKK+C4quC4seC4h+C5gOC4p+C4teC4ouC4mQor4Liq4Lix4LiH4Liq4LiB4Lik4LiVCivguKrguLHguIfguKrguIHguLLguKMKK+C4quC4seC4h+C4quC4lOC4oeC4oOC5jAor4Liq4Lix4LiH4Liq4LiZ4LiX4LiZ4LiyCivguKrguLHguYjguIfguKrguJnguJfguJnguLIKK+C4quC4seC4h+C4quC4o+C4o+C4hOC5jAor4Liq4Lix4LiH4Liq4Liy4Lij4Lin4Lix4LiPCivguKrguLHguIfguKrguLTguJfguJjguLQKK+C4quC4seC4h+C4quC4uOC4l+C4mOC5jAor4Liq4Lix4LiH4Liq4Li44LiX4LiY4Li0CivguKrguLHguIfguKvguKMKK+C4quC4seC4h+C4q+C4o+C4k+C5jAor4Liq4Lix4LiH4Lir4Lij4Lij4LipCivguKrguLHguIfguKvguLLguKMKK+C4quC4seC4h+C4q+C4suC4o+C4tOC4oeC4l+C4o+C4seC4nuC4ouC5jAor4Liq4Lix4LiH4Lir4Liy4Lij4Li04Lih4LiwCivguKrguLHguIfguKvguLTguJUKK+C4quC4seC4iAor4Liq4Lix4LiI4LiI4LiwCivguKrguLHguIjguIjguLIKK+C4quC4seC4iuC4jOC4sAor4Liq4Lix4LiK4LiM4Liy4Lii4LiwCivguKrguLHguIrguIzguLgKK+C4quC4seC4jeC4iOC4owor4Liq4Lix4LiN4LiI4Liy4LijCivguKrguLHguI3guYDguIjguJXguJnguLIKK+C4quC4seC4jeC4iuC4suC4leC4jeC4suC4kwor4Liq4Lix4LiN4LiK4Liy4LiV4Liq4Lij4LiwCivguKrguLHguI3guIrguLLguJXguLQKK+C4quC4seC4jeC4iuC4teC4nuC4meC4o+C4gQor4Liq4Lix4LiN4LiM4LiyCivguKrguLHguI3guI3guLIKK+C4quC4seC4jeC4jeC4suC4kwor4Liq4Lix4LiN4LiN4Li1CivguKrguLHguI3guYLguI3guIrguJnguYwKK+C4quC4seC4jeC5guC4ouC4hAor4Liq4Lix4LiN4Lil4Lix4LiB4Lip4LiT4LmMCivguKrguLHguJDguLQKK+C4quC4seC4k+C4kOC4suC4mQor4Liq4Lix4LiT4LiQ4Li04LiV4Li0CivguKrguLHguJPguJHguYwKK+C4quC4seC4k+C4q+C5jAor4Liq4Lix4LiUCivguKrguLHguJTguIjguK3guIcKK+C4quC4seC4lQor4Liq4Lix4LiV4LiV4Lia4LiH4LiB4LiKCivguKrguLHguJXguJXguJrguKPguKPguJMKK+C4quC4seC4leC4leC4muC4uOC4qeC4ouC5jAor4Liq4Lix4LiV4LiV4Lin4LiT4Li04LiK4LiK4LiyCivguKrguLHguJXguJXguLAKK+C4quC4seC4leC4leC4uQor4Liq4Lix4LiV4LiWCivguKrguLHguJXguJbguLHguJnguJTguKMKK+C4quC4seC4leC4luC4sgor4Liq4Lix4LiV4LiW4Li0CivguKrguLHguJXguJbguLgKK+C4quC4seC4leC4muC4o+C4o+C4kwor4Liq4Lix4LiV4Lia4Lij4Li04Lig4Lix4LiT4LiR4LmMCivguKrguLHguJXguKLguYwKK+C4quC4seC4leC4p+C5jAor4Liq4Lix4LiV4Lin4LiyCivguKrguLHguJfguJjguKPguKPguKEKK+C4quC4seC4l+C4mOC4sgor4Liq4Lix4LiX4LiY4Li04LiH4Lin4Li04Lir4Liy4Lij4Li04LiBCivguKrguLHguJfguJjguLTguKfguLTguKvguLLguKPguLTguIEKK+C4quC4seC4l+C4qOC4suC4quC4leC4o+C5jAor4Liq4Lix4LiZCivguKrguLHguYjguJkKK+C4quC4seC5ieC4mQor4Liq4Lix4LiZ4LiU4Liy4LiZCivguKrguLHguJnguJTguLLguJsKK+C4quC4seC4meC4lOC4uOC4qeC4juC4tQor4Liq4Lix4LiZ4LmA4LiU4LiBCivguKrguLHguJnguYLguJTguKkKK+C4quC4seC4meC4leC5jAor4Liq4Lix4LiZ4LiV4LiV4Li0CivguKrguLHguJnguJXguLDguJvguLLguJvguLIKK+C4quC4seC4meC4leC4sOC5guC4owor4Liq4Lix4LiZ4LiV4Liw4Lin4LiyCivguKrguLHguJnguJXguLQKK+C4quC4seC4meC4leC4tOC4geC4sAor4Liq4Lix4LiZ4LiV4Li04LmA4LiB4LiZ4Li04LiX4Liy4LiZCivguKrguLHguJnguJXguLjguI/guJDguLUKK+C4quC4seC4meC4luC4o+C4sAor4Liq4Lix4LiZ4LiW4Lin4LiwCivguKrguLHguJnguJbguLHguJUKK+C4quC4seC4meC4luC4suC4owor4Liq4Lix4LiZ4LiX4LiZ4LiwCivguKrguLHguJnguJfguJnguLLguIHguLLguKMKK+C4quC4seC4meC4l+C4sAor4Liq4Lix4LiZ4LiX4Lix4LiUCivguKrguLHguJnguJfguLHguKrguJnguLAKK+C4quC4seC4meC4l+C4suC4mQor4Liq4Lix4LiZ4LiX4Li04LiQ4Li0CivguKrguLHguJnguJfguLTguKoKK+C4quC4seC4meC5gOC4l+C4qgor4Liq4Lix4LiZ4LmA4LiX4LirCivguKrguLHguJnguYDguJfguYjguKvguYwKK+C4quC4seC4meC4mOC4suC4mQor4Liq4Lix4LiZ4LiZ4Li04LiY4Li0CivguKrguLHguJnguJnguLTguJrguLLguJUKK+C4quC4seC4meC4meC4tOC4p+C4suC4qgor4Liq4Lix4LiZ4LiZ4Li04LmA4Lin4LiqCivguKrguLHguJnguJnguLTguKnguJDguLLguJkKK+C4quC4seC4meC4nuC4o+C5ieC4suC4meC4suC4h+C5geC4rQor4Liq4Lix4LiZ4Lie4Lij4LmJ4Liy4Lih4Lit4LiNCivguKrguLHguJnguJ7guKPguYnguLLguKvguK3guKEKK+C4quC4seC4meC4o+C4p+C4hwor4Liq4Lix4LiZ4Lil4Li24LiBCivguKrguLHguJnguKrguIHguKTguJUKK+C4quC4seC4mgor4Liq4Lix4Lia4Lib4Lil4Lix4LiaCivguKrguLHguJrguJvguKXguLXguYkKK+C4quC4seC4muC4m+C4sOC4o+C4seC4h+C5gOC4hAor4Liq4Lix4Lia4Lib4Liy4LiBCivguKrguLHguJvguITguLHguJoKK+C4quC4seC4m+C4lOC4mQor4Liq4Lix4Lib4LmC4LiU4LiBCivguKrguLHguJvguYLguJTguIHguKrguLHguJvguJTguJkKK+C4quC4seC4m+C4l+C4mQor4Liq4Lix4Lib4Lib4LiwCivguKrguLHguJvguJvguLLguKLguIHguLLguKPguLUKK+C4quC4seC4m+C4m+C4tAor4Liq4Lix4Lib4Lib4Li44Lij4Li44LipCivguKrguLHguJvguKPguLDguKLguLjguJfguJjguYwKK+C4quC4seC4m+C4q+C4h+C4gQor4Liq4Lix4Lib4LmA4Lir4Lij4LmI4LitCivguKrguLHguJ4KK+C4quC4seC4nuC4nuC4sAor4Liq4Lix4Lie4Lie4Lix4LiN4LiN4Li5CivguKrguLHguJ7guYDguJ7guKrguLHguJXguJXguLIKK+C4quC4seC4nuC5gOC4nuC5gOC4q+C4o+C4sAor4Liq4Lix4Lie4Lii4Lit4LiBCivguKrguLHguJ/guLHguJnguITguJnguJfguLIKK+C4quC4seC4oeC4jeC4jeC4sgor4Liq4Lix4Lih4Lia4Li54Lij4LiT4LmMCivguKrguLHguKHguJvguIrguLHguI3guI3guLAKK+C4quC4seC4oeC4m+C4l+C4sgor4Liq4Lix4Lih4Lib4LiX4Liy4LiZCivguKrguLHguKHguJvguKLguLjguJUKK+C4quC4seC4oeC4m+C5guC4ouC4hAor4Liq4Lix4Lih4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMCivguKrguLHguKHguJvguKPguLDguKvguLLguKMKK+C4quC4seC4oeC4m+C4o+C4suC4ouC4oOC4ngor4Liq4Lix4Lih4Lib4Lij4Liy4Lii4Li04LiB4Lig4LieCivguKrguLHguKHguJvguLHguJXguJXguLQKK+C4quC4seC4oeC4nOC4seC4m+C4peC4suC4mwor4Liq4Lix4Lih4Lic4Lix4LiqCivguKrguLHguKHguJ7guKUKK+C4quC4seC4oeC4nuC4q+C4uOC4peC4sgor4Liq4Lix4Lih4Lie4Lix4LiV4Liq4LijCivguKrguLHguKHguJ7guLHguJfguJjguYwKK+C4quC4seC4oeC4nuC4seC4meC4mOC5jAor4Liq4Lix4Lih4Lie4Lix4LiZ4LiY4LiZ4LmMCivguKrguLHguKHguJ7guLLguJjguLAKK+C4quC4seC4oeC4nuC4suC4o+C4sAor4Liq4Lix4Lih4Lie4Liy4Lir4LiZ4LmMCivguKrguLHguKHguJ7guLLguKvguLAKK+C4quC4seC4oeC4nuC4uOC4l+C4mOC4sAor4Liq4Lix4Lih4LmC4Lie4LiY4Li0CivguKrguLHguKHguKDguKfguLAKK+C4quC4seC4oeC4oOC5gOC4p+C4quC4tQor4Liq4Lix4Lih4Lig4Lix4LiVCivguKrguLHguKHguKDguLHguJXguJXguLAKK+C4quC4seC4oeC4oOC4suC4qeC4k+C5jAor4Liq4Lix4Lih4LmA4Lig4LiX4LiwCivguKrguLHguKHguYLguKDguITguIHguLLguKIKK+C4quC4seC4oeC4oeC4meC4sgor4Liq4Lix4Lih4Lih4Lix4Lib4LiY4Liy4LiZCivguKrguLHguKHguKHguLIKK+C4quC4seC4oeC5guC4oeC4l+C4meC4teC4ouC4geC4luC4sgor4Liq4Lix4Lih4Lik4LiX4LiY4Li0CivguKrguLHguKHguKTguJfguJjguLTguYwKK+C4quC4seC4ouC4meC5jAor4Liq4Lix4Lil4Lil4LiwCivguKrguLHguKXguKXguLLguJsKK+C4quC4seC4quC4lOC4tQor4Liq4Lix4Liq4Liq4LiwCivguKrguLHguKrguKrguLgKK+C4quC4seC4quC4quC4uQor4Liq4Lix4Liq4Li44Lij4Li1CivguKrguLIKK+C4quC5iOC4sgor4Liq4Liy4LiBCivguKrguLLguIHguKPguKPguIjguYwKK+C4quC4suC4geC4pQor4Liq4Liy4LiB4Lip4Li04LiZCivguKrguLLguIHguKnguLUKK+C4quC4suC4geC4seC4iOC4ieC4sgor4Liq4Liy4LiB4Lix4Lil4Lii4LmMCivguKrguLLguIHguLTguKLguLAKK+C4quC4suC5gOC4gQor4Liq4Liy4LiC4LiyCivguKrguLLguITguKMKK+C4quC4suC4hOC5gOC4o+C4qAor4Liq4Liy4LiE4Li5CivguKrguLLguIcKK+C4quC4suC4h+C4q+C5iOC4sgor4Liq4Liy4LiO4LiBCivguKrguLLguJPguLUKK+C4quC4suC4lAor4Liq4Liy4LiVCivguKrguLLguJXguKPguLIKK+C4quC4suC5hOC4luC4ogor4Liq4Liy4LiX4LijCivguKrguLLguJfguLTguKoKK+C4quC4suC4l+C4uAor4Liq4Liy4LmC4LiXCivguKrguLLguJjguIEKK+C4quC4suC4mOC4mQor4Liq4Liy4LiY4Lii4LiwCivguKrguLLguJjguKLguLLguKIKK+C4quC4suC4mOC4suC4o+C4k+C5jAor4Liq4Liy4LiY4Liy4Lij4LiT4LiwCivguKrguLLguJjguLTguJUKK+C4quC4suC4mOC4uAor4Liq4Liy4LiY4Li44Liq4LiwCivguKrguLLguJkKK+C4quC4suC4meC4leC4p+C4sAor4Liq4Liy4LiZ4Li4CivguKrguLLguJnguLjguKjguLTguKnguKLguYwKK+C4quC4suC4meC4uQor4Liq4Liy4LiaCivguKrguLLguJrguKrguLnguI0KK+C4quC4suC4muC4suC4mQor4Liq4Liy4LibCivguKrguLLguJvguYTguJXguKIKK+C4quC4suC4m+C4quC4o+C4owor4Liq4Liy4LihCivguKrguLLguKHguIrguLjguIEKK+C4quC4suC4oeC5gOC4k+C4owor4Liq4Liy4Lih4LmA4LiT4Lij4Li1CivguKrguLLguKHguJnguJXguYwKK+C4quC4suC4oeC4ouC4l+C4o+C4seC4nuC4ouC5jAor4Liq4Liy4Lih4Lij4LiqCivguKrguLLguKHguKUKK+C4quC4suC4oeC4quC4tOC4mgor4Liq4Liy4Lih4Lix4LiE4LiE4Li1CivguKrguLLguKHguLHguI0KK+C4quC4suC4oeC4seC4leC4luC4tOC4ouC4sAor4Liq4Liy4Lih4Liy4LiZ4Lii4LmMCivguKrguLLguKHguLLguKPguJYKK+C4quC4suC4oeC4tOC4gQor4Liq4Liy4Lih4Li04LiVCivguKrguLLguKHguLTguJnguLUKK+C4quC4suC4oeC4tOC4oOC4seC4geC4lOC4tOC5jAor4Liq4Liy4Lih4Li04LiqCivguKrguLLguKHguLUKK+C4quC4suC4oeC4teC4iOC4tOC4geC4o+C4o+C4oQor4Liq4Liy4LiiCivguKrguYjguLLguKIKK+C4quC5ieC4suC4ogor4Liq4Liy4Lii4LiK4Li5CivguKrguLLguKLguJXguLIKK+C4quC4suC4ouC5gOC4p+C4l+C4ouC5jAor4Liq4Liy4Lii4Lix4LiT4Lir4LmMCivguKrguLLguKLguLLguKvguYwKK+C4quC4suC4owor4Liq4Liy4Lij4LiB4Lij4Lih4LiY4Lij4Lij4Lih4LmMCivguKrguLLguKPguITguJTguLUKK+C4quC4suC4o+C5gOC4hOC4oeC4tQor4Liq4Liy4Lij4LiT4Li14Lii4LiY4Lij4Lij4LihCivguKrguLLguKPguJXguKPguLIKK+C4quC4suC4o+C4luC4tQor4Liq4Liy4Lij4LiXCivguKrguLLguKPguJfguLIKK+C4quC4suC4o+C4l+C4tOC4qAor4Liq4Liy4Lij4LiX4Li44LiB4LiC4LmMCivguKrguLLguKPguJjguKPguKPguKEKK+C4quC4suC4o+C4meC4tOC5gOC4l+C4qAor4Liq4Liy4Lij4Lia4LiaCivguKrguLLguKPguJrguKPguKPguJMKK+C4quC4suC4o+C4muC4o+C4tOC4quC4uOC4l+C4mOC4tOC5jAor4Liq4Liy4Lij4Lia4Lix4LiNCivguKrguLLguKPguJrguLHguJoKK+C4quC5ieC4suC4o+C4muC4seC4mgor4Liq4Liy4Lij4Lia4Liy4LiNCivguKrguLLguKPguJvguKPguLDguIHguK3guJoKK+C4quC4suC4o+C4m+C4o+C4sOC5guC4ouC4iuC4meC5jAor4Liq4Liy4Lij4Lie4Lix4LiUCivguKrguLLguKPguJ7guLHguJkKK+C4quC4suC4o+C4nuC4suC4h+C4hOC5jAor4Liq4Liy4Lij4Lig4Liy4LieCivguKrguLLguKPguKDguLUKK+C4quC4suC4o+C5hOC4oeC4ogor4Liq4Liy4Lij4Lij4Lix4LiBCivguKrguLLguKPguKXguLDguKXguLLguKIKK+C4quC4suC4o+C5gOC4peC4pwor4Liq4Liy4Lij4Lin4Lix4LiUCivguKrguLLguKPguKfguLHguJXguKMKK+C4quC4suC4o+C4quC5ieC4oQor4Liq4Liy4Lij4Lir4LiZ4Li5CivguKrguLLguKPguLAKK+C4quC4suC4o+C4sOC5guC4geC4gQor4Liq4Liy4Lij4Liw4LmA4LiZCivguKrguLLguKPguLDguJ7guLIKK+C4quC4suC4o+C4sOC4nuC4suC5gOC4ruC5guC4pQor4Liq4Liy4Lij4Liw4Lin4Lit4LiZCivguKrguLLguKPguLDguKfguLLguKPguLUKK+C4quC4suC4o+C4sOC4quC4sOC4oeC4sgor4Liq4Liy4Lij4Liw4Liq4Liz4LiE4Lix4LiNCivguKrguLLguKPguLHguJXguJbguLAKK+C4quC4suC4o+C4seC4l+C4mOC5jAor4Liq4Liy4Lij4Lix4Lih4Lig4LmMCivguKrguLLguKPguLLguJPguLXguKLguIHguKMKK+C4quC4suC4o+C4suC4k+C4teC4ouC4sAor4Liq4Liy4Lij4Liy4LiZ4Li44LiB4Lij4LihCivguKrguLLguKPguLXguKPguLTguIHguJjguLLguJXguLgKK+C4quC4suC4o+C4ueC4mwor4Liq4Liy4LmC4Lij4LiKCivguKrguLLguKXguLAKK+C4quC4suC4peC4sOC4p+C4mQor4Liq4Liy4Lil4Li0CivguKrguLLguKXguLTguIHguLIKK+C4quC4suC4peC4tOC4meC4tQor4Liq4Liy4Lil4Li1CivguKrguLLguKXguLXguYgKK+C4quC4suC4peC4uQor4Liq4Liy4LmC4Lil4Lir4Li04LiVCivguKrguLLguKcKK+C4quC4suC4p+C4gQor4Liq4Liy4Lin4LiB4Lij4Liw4LiX4Li34Lia4Lir4LitCivguKrguLLguKfguJnguYnguK3guKLguYDguKXguYjguJnguJnguYnguLMKK+C4quC4suC4p+C4meC4sAor4Liq4Liy4Lin4Li04LiB4LiyCivguKrguLLguKfguLTguJXguKMKK+C4quC4suC4p+C4tOC4leC4o+C4tQor4Liq4Liy4Liq4LiZ4LmMCivguKrguLLguKrguJnguLIKK+C4quC4suC4q+C4o+C5iOC4suC4ogor4Liq4Liy4Lir4Lij4Li1CivguKrguYjguLLguKvguKPguLUKK+C4quC4suC4q+C4seC4qgor4Liq4Liy4LmA4Lir4LiV4Li4CivguKrguLLguYHguKvguKPguIEKK+C4quC4suC4rOC4uOC4o+C4sAor4Liq4LizCivguKrguYjguLMKK+C4quC4s+C4hOC4seC4jQor4Liq4Liz4LiL4LmI4Liy4LiHCivguKrguLPguYHguJTguIcKK+C4quC4s+C4l+C4seC4mgor4Liq4Liz4LiZ4Lin4LiUCivguKrguLPguJnguKfguJkKK+C4quC4s+C4meC4reC4hwor4Liq4Liz4LiZ4Lix4LiBCivguKrguLPguJnguLLguJkKK+C4quC4s+C4meC4tuC4hwor4Liq4Liz4LmA4LiZ4LiyCivguKrguLPguYDguJnguLXguKLguIcKK+C4quC4s+C5gOC4meC4teC4ouC4mQor4Liq4Liz4Lia4Lit4LiBCivguKrguLPguJrguLHguJTguKrguLPguJnguKfguJkKK+C4quC4s+C4m+C4sOC4peC4rQor4Liq4Liz4Lib4Liw4Lir4Lil4Lix4LiHCivguKrguLPguJvguLHguYnguJkKK+C4quC4s+C4m+C4seC4meC4meC4tQor4Liq4Liz4LmA4Lig4LiyCivguKrguLPguYDguKDguLLguJfguK3guIcKK+C4quC4s+C4oeC4sOC4h+C4sgor4Liq4Liz4Lih4Liw4LmC4LiZ4LiE4Lij4Lix4LinCivguKrguLPguKHguLDguYLguJnguJvguLDguIrguLLguIHguKMKK+C4quC4s+C4oeC4sOC4peC4rQor4Liq4Liz4Lih4Liw4LmA4Lil4LmA4LiX4LmA4Lih4LiyCivguKrguLPguKHguLDguKvguLIKK+C4quC4s+C4o+C4lAor4Liq4Liz4Lij4Lin4LiICivguKrguLPguKPguKfguKEKK+C4quC4s+C4o+C4p+C4ogor4Liq4Liz4Lij4Lin4LilCivguKrguLPguKPguK3guIEKK+C4quC4s+C4o+C4reC4hwor4Liq4Liz4Lij4Lix4LiaCivguKrguLPguKPguLLguIEKK+C4quC4s+C4o+C4suC4jQor4Liq4Liz4Lij4Li04LiUCivguKrguLPguYDguKPguYfguIgKK+C4quC4s+C5gOC4o+C4sgor4Liq4Liz4LmA4Lij4Li04LiHCivguKrguLPguYLguKPguIcKK+C4quC4s+C4peC4seC4gQor4Liq4Liz4Lil4Liy4LiZCivguKrguLPguKXguLUKK+C4quC4s+C5geC4peC4hwor4Liq4Liz4Liq4Lij4LmJ4Liy4LiHCivguKrguLPguKrguLIKK+C4quC4s+C5gOC4quC5h+C4lAor4Liq4LmI4Liz4LmA4Liq4Li14LiiCivguKrguLPguKvguKPguKfguJQKK+C4quC4s+C4q+C4o+C4seC4mgor4Liq4Liz4Lir4LiyCivguKrguLPguYDguKvguJnguLXguKLguIEKK+C4quC4s+C5gOC4q+C4o+C5iAor4Liq4Liz4Lit4Lit4LiiCivguKrguLPguK3guLLguIcKK+C4quC4tAor4Liq4Li04LiB4LiC4LmMCivguKrguLTguIHguILguKHguLLguJnguLIKK+C4quC4tOC4geC4guC4sgor4Liq4Li04LiC4LijCivguKrguLTguILguKPguLUKK+C4quC4tOC4guC5gOC4o+C4qAor4Liq4Li04LiC4LiyCivguKrguLTguILguLUKK+C4quC4tOC4hOC4suC4pQor4Liq4Li04LiHCivguKrguLTguYjguIcKK+C4quC4tOC4h+C4guC4owor4Liq4Li04LiH4LiE4LmMCivguKrguLTguIfguITguKXguLTguYnguIcKK+C4quC4tOC4h+C4hOC4peC4tQor4Liq4Li04LiH4LiE4Liy4LijCivguKrguLTguIfguITguLLguKUKK+C4quC4tOC4h+C4hOC4tQor4Liq4Li04LiH4LmC4LiVCivguKrguLTguIfguYLguJXguJfguLDguYDguKUKK+C4quC4tOC4h+C4quC4suC4o+C4suC4quC4seC4leC4p+C5jAor4Liq4Li04LiH4Lir4LmMCivguKrguLTguIfguKvguKUKK+C4quC4tOC4jeC4iOC4meC5jAor4Liq4Li04LiVCivguKrguLTguYLguJXguJfguIHguKfguLLguKPguLUKK+C4quC4tOC4luC4tOC4pQor4Liq4Li04LiX4LiY4LmMCivguKrguLTguJfguJjguLQKK+C4quC4tOC4l+C4mOC4tOC5jAor4Liq4Li04LiY4Lii4LiwCivguKrguLTguJkKK+C4quC4tOC5ieC4mQor4Liq4Li04LiZ4LiX4Li54Lij4LiwCivguKrguLTguJnguJjguJ4KK+C4quC4tOC4meC4mOC4uAor4Liq4Li04LiZ4LiY4Li44Lij4LiwCivguKrguLTguJnguYDguJjguLLguKfguYwKK+C4quC4tOC4meC4sAor4Liq4Li04LiZ4Liy4LiUCivguKrguLTguJnguLTguJfguJjguYwKK+C4quC4tOC4meC4tQor4Liq4Li04LmA4LiZ4Lij4Li4CivguKrguLTguYDguJnguKvguIEKK+C4quC4tOC5gOC4meC4q+C4meC4teC4ouC4sAor4Liq4Li04LmA4LiZ4Lir4LiwCivguKrguLTguYDguJnguKvguLIKK+C4quC4tOC5gOC4meC5iOC4q+C4sgor4Liq4Li04LiaCivguKrguLTguJvguJvguLAKK+C4quC4tOC4nuC4meC4sAor4Liq4Li04Lih4Lie4Lil4Li1CivguKrguLTguKPguLAKK+C4quC4tOC4o+C4tAor4Liq4Li04Lij4Li1CivguKrguLTguKXguLIKK+C4quC4tOC5guC4peC4gQor4Liq4Li04LinCivguKrguLTguYjguKcKK+C4quC4tOC4p+C4sAor4Liq4Li04Lin4Li04LiB4LiyCivguKrguLTguKvguJnguLIKK+C4quC4tQor4Liq4Li14LmICivguKrguLXguYkKK+C4quC4teC4geC4o+C4uOC4lAor4Liq4Li14LiB4LiyCivguKrguLXguIHguLjguJkKK+C4quC4teC4guC5ieC4suC4hwor4Liq4Li14LiI4Lix4LiBCivguKrguLXguIrguKHguJ7guLnguJTguIcKK+C4quC4teC4iuC4oeC4nuC4ueC4quC4p+C4mQor4Liq4Li14LiUCivguKrguLXguJTguK0KK+C4quC4teC4leC5ieC4mQor4Liq4Li14LiX4Lix4LiZ4LiU4LijCivguKrguLXguYjguJrguJcKK+C4quC4teC4n+C4seC4meC4meC4suC4h+C5geC4rQor4Liq4Li14Lih4Lix4LiZ4LiV4LmMCivguKrguLXguKHguLIKK+C4quC4teC4peC4sOC4oeC4seC4mQor4Liq4Li14Lil4Lix4Lie4Lie4LiV4Lib4Lij4Liy4Lih4Liy4LiqCivguKrguLXguKfguLTguIHguLIKK+C4quC4teC4p+C4tOC4oOC4sgor4Liq4Li14Liq4LitCivguKrguLXguKrguLAKK+C4quC4teC4quC4sgor4Liq4Li14Liq4Li44LiBCivguKrguLXguYDguKrguLXguKLguJQKK+C4quC4teC5gOC4quC4t+C5ieC4reC4meC5ieC4reC4ogor4Liq4Li14Lir4LmMCivguKrguLXguKvguLAKK+C4quC4tuC4gQor4Liq4Li24LiHCivguKrguLfguJoKK+C4quC4t+C5iOC4rQor4Liq4Li4CivguKrguLjguIEKK+C4quC4uOC4geC4guC5jAor4Liq4Li44LiB4LijCivguKrguLjguIHguKPguKEKK+C4quC4uOC4geC4swor4Liq4Li44LiB4Li14LmJ4Lii4Liy4LiB4Li14LmJCivguKrguLjguIIKK+C4quC4uOC4guC4tOC4mQor4Liq4Li44LiC4Li1CivguKrguLjguILguLjguKEKK+C4quC4uOC4guC4uOC4oeC4suC4pQor4Liq4Li44LiE4LiVCivguKrguLjguITguJXguLQKK+C4quC4uOC4hOC4meC4mOC5jAor4Liq4Li44LiE4Lix4LiZ4LiY4LmMCivguKrguLjguIfguIHguLAKK+C4quC4uOC4h+C4quC4tOC4hwor4Liq4Li44LiH4Liq4Li44Lih4Liy4LijCivguKrguLjguIfguKrguLjguKHguLLguKPguLUKK+C4quC4uOC4iOC4o+C4tOC4lQor4Liq4Li44LiI4Lir4LiZ4Li14LmICivguKrguLjguIjguLAKK+C4quC4uOC4iOC4tAor4Liq4Li44LiI4Li04LiVCivguKrguLjguIjguLTguJXguKMKK+C4quC4uOC4iuC4mQor4Liq4Li44LiK4Lix4Lih4Lia4LiU4Li1CivguKrguLjguIrguLIKK+C4quC4uOC4iuC4suC4lOC4sgor4Liq4Li44LiNCivguKrguLjguJMKK+C4quC4uOC4k+C4q+C4sgor4Liq4Li44LiT4Li04Liq4LiyCivguKrguLjguJQKK+C4quC4uOC4lOC4quC4h+C4p+C4mQor4Liq4Li44LiU4LiyCivguKrguLjguJUKK+C4quC4uOC4leC4leC4sAor4Liq4Li44LiV4LiV4Lix4LiZ4LiV4LiwCivguKrguLjguJXguJXguLHguJnguJXguLDguJvguLTguI7guIEKK+C4quC4uOC4leC4tAor4Liq4Li44LiX4LiY4LmMCivguKrguLjguJfguJjguLQKK+C4quC4uOC4l+C4o+C4o+C4qOC4meC5jAor4Liq4Li44LiX4Lix4Lio4LiZ4LmMCivguKrguLjguJjguKPguKPguKHguYDguJfguKfguKrguKDguLIKK+C4quC4uOC4mOC4sgor4Liq4Li44LiY4Li1CivguKrguLjguJnguJfguKMKK+C4quC4uOC4meC4l+C4o+C4tQor4Liq4Li44LiZ4LiX4Lij4Li14Lii4LiwCivguKrguLjguJnguLHguIIKK+C4quC4uOC4meC4seC4meC4l+C5jAor4Liq4Li44LmC4LiZ4LiBCivguKrguLjguJrguJTguLUKK+C4quC4uOC4muC4o+C4o+C4kwor4Liq4Li44Lia4Li04LiZCivguKrguLjguJvguKPguLXguJTguLTguYwKK+C4quC4uOC4m+C4o+C4teC4ouC5jAor4Liq4Li44Lib4Liy4LiT4Li1CivguKrguLjguJ7guJ7guLHguJUKK+C4quC4uOC4nuC4o+C4o+C4kwor4Liq4Li44Lie4Lij4Lij4LiT4LiW4Lix4LiZCivguKrguLjguJ7guKPguKPguJPguLTguIHguLLguKPguYwKK+C4quC4uOC4oOC4owor4Liq4Li44Lig4Lix4LiECivguKrguLjguKDguLIKK+C4quC4uOC4oOC4suC4ngor4Liq4Li44Lig4Liy4Lip4Li04LiVCivguKrguLjguKEKK+C4quC4uOC5iOC4oQor4Liq4Li44Lih4LiX4Li44LihCivguKrguLjguKHguJkKK+C4quC4uOC4oeC4meC4sAor4Liq4Li44Lih4LiZ4Lix4LiqCivguKrguLjguKHguJnguLIKK+C4quC4uOC5ieC4oeC5gOC4quC4teC4ouC4hwor4Liq4Li44Lih4LiwCivguKrguLjguKHguLLguKXguLUKK+C4quC4uOC5gOC4oeC4mAor4Liq4Li44LmA4Lih4Lij4Li4CivguKrguLjguYnguKIKK+C4quC4uOC4o+C4h+C4hOC5jAor4Liq4Li44Lij4Lig4Li1CivguKrguLjguKPguLHguIfguITguYwKK+C4quC4uOC4o+C4seC4leC4tAor4Liq4Li44Lij4Lix4Liq4Lin4LiU4Li1CivguKrguLjguKPguLIKK+C4quC4uOC4o+C4suC4h+C4hOC5jOC4iOC4s+C5gOC4o+C4teC4ouC4hwor4Liq4Li44Lij4Liy4LiY4Li04Lib4LmE4LiV4LiiCivguKrguLjguKPguLTguJnguJfguKPguLLguKvguLkKK+C4quC4uOC4o+C4tOC4ouC4hwor4Liq4Li44Lij4Li04Lii4LiZCivguKrguLjguKPguLTguKLguLAKK+C4quC4uOC4o+C4tOC4ouC4seC4mQor4Liq4Li44Lij4Li04Lii4LiyCivguKrguLjguKPguLTguKLguLjguJvguKPguLLguITguLIKK+C4quC4uOC4o+C4tOC5gOC4ouC4meC4l+C4o+C5jAor4Liq4Li44Lij4Li04LmA4Lii4LioCivguKrguLjguKPguLTguYLguKIKK+C4quC4uOC4o+C4uOC5iOC4ouC4quC4uOC4o+C5iOC4suC4ogor4Liq4Li44Lil4LiV4LmI4Liy4LiZCivguKrguLjguKcKK+C4quC4uOC4p+C4oOC4suC4ngor4Liq4Li44Lin4Lij4Lij4LiTCivguKrguLjguKfguLLguJkKK+C4quC4uOC4p+C4tOC4meC4seC4ogor4Liq4Li44Lin4Li04Lih4LilCivguKrguLjguKnguLTguKMKK+C4quC4uOC4quC4suC4mQor4Liq4Li44Lir4LiZ4Lix4LiVCivguKrguLjguKvguKPguYjguIcKK+C4quC4uOC4q+C4o+C5iOC4suC4ogor4Liq4Li44Lir4Lik4LiXCivguKrguLjguKvguLHguJcKK+C4quC4uOC5gOC4q+C4o+C5iOC4sgor4Liq4Li5CivguKrguLnguYkKK+C4quC4ueC4geC4qeC4oQor4Liq4Li54LiHCivguKrguLnguIjguIHguLAKK+C4quC4ueC4iOC4meC4sAor4Liq4Li54LiI4Li0CivguKrguLnguI0KK+C4quC4ueC4lAor4Liq4Li54LiVCivguKrguLnguJXguKMKK+C4quC4ueC4leC4tAor4Liq4Li54LiXCivguKrguLnguJnguLgKK+C4quC4ueC4mgor4Liq4Li54Lib4LiwCivguKrguLnguKMKK+C4quC4ueC4o+C4ouC5jAor4Liq4Li54Lij4Li0CivguKrguLnguKrguLUKK+C5gOC4qgor4LmA4Liq4LiBCivguYDguKrguIHguILguLAKK+C5gOC4quC4guC4sAor4LmA4Liq4LmH4LiHCivguYDguKrguYnguIcKK+C5gOC4quC4h+C4teC5iOC4ouC4oQor4LmA4Liq4LiJ4Lin4LiZCivguYDguKrguI/guJDguLUKK+C5gOC4quC4k+C4tQor4LmA4Liq4LiUCivguYDguKrguJTguYfguIgKK+C5gOC4quC4leC4uAor4LmA4Liq4LiW4Li14Lii4LijCivguYDguKrguYLguJcKK+C5gOC4quC4mQor4LmA4Liq4LmJ4LiZCivguYDguKrguJnguIcKK+C5gOC4quC4meC5iOC4hwor4LmA4Liq4LiZ4LmI4Lir4LmMCivguYDguKrguJnguYjguKvguYzguIjguLHguJnguJfguKPguYzguILguLLguKcKK+C5gOC4quC4meC5iOC4q+C5jOC4iOC4seC4meC4l+C4o+C5jOC5geC4lOC4hwor4LmA4Liq4LiZ4Lir4LiyCivguYDguKrguJnguYjguKvguLIKK+C5gOC4quC4meC4rQor4LmA4Liq4LiZ4LiwCivguYDguKrguJnguLIKK+C5gOC4quC4meC5iOC4sgor4LmA4Liq4LiZ4Liy4LiB4Li44LiOCivguYDguKrguJnguLLguIfguITguYwKK+C5gOC4quC4meC4suC4h+C4hOC4meC4tOC4geC4owor4LmA4Liq4LiZ4Liy4LiZ4Li1CivguYDguKrguJnguLLguKrguJnguLAKK+C5gOC4quC4meC4suC4sAor4LmA4Liq4LiZ4Li1CivguYDguKrguJnguLXguKLguYwKK+C5gOC4quC4meC4teC4ouC4lAor4LmA4Liq4LiZ4Li14Lii4LiwCivguYDguKrguJrguKIKK+C5gOC4quC4muC4teC4ouC4hwor4LmA4Liq4LieCivguYDguKrguJ7guKLguYwKK+C5gOC4quC5gOC4nuC4pQor4LmA4Liq4Lig4LiyCivguYDguKrguKHguYfguJQKK+C5gOC4quC4oeC4rQor4LmA4Liq4Lih4LiyCivguYDguKrguKHguLXguKLguJkKK+C5gOC4quC4oeC4t+C4reC4mQor4LmA4Liq4LiiCivguYDguKrguKPguYfguIgKK+C5gOC4quC4o+C4tOC4lAor4LmA4Liq4Lij4Li04LihCivguYDguKrguKPguLUKK+C5gOC4quC4peC4lAor4LmA4Liq4Lil4LiU4Lie4Lix4LiH4Lie4Lit4LiZCivguYDguKrguKXguLIKK+C5gOC4quC4peC4teC5iOC4ouC4hwor4LmA4Liq4Lil4Li34Lit4LiB4Liq4Lil4LiZCivguYDguKrguYLguKUKK+C5gOC4quC4p+C4gQor4LmA4Liq4Lin4LiB4Liy4Lih4Liy4LiV4Lii4LmMCivguYDguKrguKfguJnguLAKK+C5gOC4quC4p+C4meC4sgor4LmA4Liq4Lin4LiiCivguYDguKrguKfguKLguJ7guKPguLDguIrguLLguJXguLQKK+C5gOC4quC4p+C4teC4ouC4mQor4LmA4Liq4Liq4Lij4Lin4LiHCivguYDguKrguKrguKPguKfguKUKK+C5gOC4quC4sgor4LmA4Liq4LmJ4LiyCivguYDguKrguLLguKPguYwKK+C5gOC4quC4suC4o+C4oOC4ouC5jAor4LmA4Liq4Liy4Lij4Li1CivguYDguKrguLLguKfguJPguLTguJUKK+C5gOC4quC4suC4p+C4meC4sAor4LmA4Liq4Liy4Lin4LiZ4LiyCivguYDguKrguLLguKfguJnguLLguIHguLLguKMKK+C5gOC4quC4suC4p+C4meC4teC4ouC5jAor4LmA4Liq4Liy4Lir4Lik4LiXCivguYDguKrguLLguLAKK+C5gOC4quC4suC4sOC5geC4quC4sAor4LmA4Liq4Li04Lij4LmM4LiICivguYDguKrguLTguKPguYzguJ8KK+C5gOC4quC4teC4ogor4LmA4Liq4Li14LmI4LiiCivguYDguKrguLXguKLguIcKK+C5gOC4quC4teC5iOC4ouC4hwor4LmA4Liq4Li14Lii4LiUCivguYDguKrguLXguYnguKLguJkKK+C5gOC4quC4teC4ouC4mgor4LmA4Liq4Li14Lii4LihCivguYDguKrguLXguYjguKLguKEKK+C5gOC4quC4teC5ieC4ouC4oQor4LmA4Liq4Li14Lii4LinCivguYDguKrguLXguYjguKLguKcKK+C5gOC4quC4teC5ieC4ouC4pwor4LmA4Liq4Li34LitCivguYDguKrguLfguYjguK0KK+C5gOC4quC4t+C5ieC4rQor4LmA4Liq4Li34Lit4LiBCivguYDguKrguLfguYjguK3guKEKK+C5geC4qgor4LmB4Liq4LmICivguYHguKrguYkKK+C5geC4quC4gQor4LmB4Liq4LiHCivguYHguKrguJQKK+C5geC4quC4lOC4hwor4LmB4Liq4LiV4Lih4Lib4LmMCivguYHguKrguJkKK+C5geC4quC4meC4hwor4LmB4Liq4LiZ4Lii4LmMCivguYHguKrguJnguYDguKrguJnguLLguLAKK+C5geC4quC4mgor4LmB4Liq4Lia4LiBCivguYHguKrguKEKK+C5geC4quC4ouC4gQor4LmB4Liq4Lii4LiHCivguYHguKrguKLguLAKK+C5geC4quC4o+C4gQor4LmB4Liq4Lij4LmJ4LiHCivguYHguKrguKXguIcKK+C5geC4quC4peC4h+C5g+C4iAor4LmB4Liq4Lil4LiH4LmA4Lia4Li34LmI4LitCivguYHguKrguKfguIcKK+C5geC4quC4reC4gQor4LmB4Liq4LiwCivguYLguKrguIEKK+C5guC4quC4geC5guC4lOC4gQor4LmC4Liq4LiB4Lix4LiZ4LiV4LmMCivguYLguKrguIHguLLguJTguLLguJnguLIKK+C5guC4quC5guC4hOC4o+C4gQor4LmC4Liq4LiTCivguYLguKrguJPguJHguYwKK+C5guC4quC4k+C4tAor4LmC4Liq4LiT4Li1CivguYLguKrguJQKK+C5guC4quC4lOC4gQor4LmC4Liq4LiU4LihCivguYLguKrguJTguLIKK+C5guC4quC4lQor4LmC4Liq4LiV4LiW4Li0CivguYLguKrguJfguIEKK+C5guC4quC4l+C4owor4LmC4Liq4LiY4LiBCivguYLguKrguJjguJnguLAKK+C5guC4quC4mQor4LmC4Liq4Lib4Liy4LiZCivguYLguKrguKDguJMKK+C5guC4quC4oOC4sgor4LmC4Liq4Lig4Li04LiT4Li1CivguYLguKrguKDguLUKK+C5guC4quC5gOC4oOC4k+C4tQor4LmC4Liq4LihCivguYLguKrguKHguJnguLHguKoKK+C5guC4quC4oeC4oQor4LmC4Liq4Lih4Lii4LmMCivguYLguKrguKHguKrguYjguK3guIfguYHguKrguIcKK+C5guC4quC4o+C5iOC4hwor4LmC4Liq4Lij4LiICivguYLguKrguKPguLHguIjguIjguLAKK+C5guC4quC4p+C4o+C4o+C4kwor4LmC4Liq4Lir4Li44LmJ4LiiCivguYLguKrguKzguKoKK+C5g+C4qgor4LmD4Liq4LmICivguYTguKoKK+C5hOC4quC5iQor4LmE4Liq4LiiCivguYTguKrguKLguLIKK+C5hOC4quC4o+C5iQor4LmE4Liq4LinCivguYTguKrguYnguKvguLnguYkKK+C4qwor4Lir4LiBCivguKvguIHguJrguJcKK+C4q+C4geC5guC4peC5iAor4Lir4LiHCivguKvguIfguIEKK+C4q+C4h+C4quC5jAor4Lir4LiH4Liq4LmM4LiX4Lit4LiHCivguKvguIfguKrguYzguKvguKLguIEKK+C4q+C4h+C4rQor4Lir4LiH4Lit4LiBCivguKvguIfguYjguK3guIcKK+C4q+C4h+C4reC4h+C5geC4q+C4h+C4hwor4Lir4LiH4Lit4LiUCivguKvguIfguK3guJTguYYKK+C4q+C4h+C4reC4mQor4Lir4LiH4LmI4Lit4LihCivguKvguIfguK3guKIKK+C4q+C4h+C5iOC4reC4ogor4Lir4LiH4Lix4LiBCivguKvguIfguLHguJoKK+C4q+C4h+C5iOC4suC4hwor4Lir4LiH4Liy4LiiCivguKvguIfguYjguLLguKcKK+C4q+C4h+C4swor4Lir4LiH4Li04LiBCivguKvguIfguLTguIcKK+C4q+C4h+C4tOC4oQor4Lir4LiH4Li24LiBCivguKvguIfguLjguIfguKvguIfguLTguIcKK+C4q+C4h+C4uOC4lOC4q+C4h+C4tOC4lAor4Lir4LiH4Li44LiaCivguKvguIfguLjguJrguKvguIfguLHguJoKK+C4q+C4h+C4uOC5iOC4ogor4Lir4LiN4LmJ4LiyCivguKvguI3guYnguLLguJvguLLguIHguITguK3guIEKK+C4q+C4jeC5ieC4suC4neC4o+C4seC5iOC4mQor4Lir4LiN4LmJ4Liy4Lii4Lit4LiH4LmE4LifCivguKvguI3guYnguLLguKvguJnguKfguJTguYHguKHguKcKK+C4q+C4jeC4tOC4hwor4Lir4LiN4Li04LiaCivguKvguJQKK+C4q+C4leC4sAor4Lir4LiX4Lix4LiiCivguKvguJkKK+C4q+C4meC4p+C4gQor4Lir4LiZ4LmI4Lin4LiHCivguKvguJnguKfguJQKK+C4q+C4meC4p+C4lOC4meC4suC4hOC4o+C4suC4igor4Lir4LiZ4Lin4LiU4Lie4Lij4Liy4Lir4Lih4LiT4LmMCivguKvguJnguKfguJTguYHguKHguKcKK+C4q+C4meC5iOC4p+C4ogor4Lir4LiZ4LmI4Lin4Lii4LiB4Li04LiVCivguKvguJnguK0KK+C4q+C4meC5iOC4rQor4Lir4LiZ4Lit4LiBCivguKvguJnguK3guIHguIrguYnguLLguIcKK+C4q+C4meC4reC4hwor4Lir4LiZ4Lit4LiH4LmB4LiL4LiHCivguKvguJnguK3guJkKK+C4q+C4meC4reC4meC4leC4suC4meC4q+C4ouC4suC4gQor4Lir4LiZ4LmI4Lit4LiiCivguKvguJnguYfguK3guKLguYHguJnguYgKK+C4q+C4meC4sAor4Lir4LiZ4Lix4LiBCivguKvguJnguLHguIcKK+C4q+C4meC4seC4h+C4geC4peC4suC4h+C4p+C4seC4mQor4Lir4LiZ4Lix4LiH4Liq4Li34LitCivguKvguJnguLHguYjguJkKK+C4q+C4meC4seC4mgor4Lir4LiZ4LiyCivguKvguJnguYnguLIKK+C4q+C4meC4suC4geC4suC4quC4o+C4tQor4Lir4LiZ4LmI4Liy4LiHCivguKvguJnguLLguJQKK+C4q+C4meC4suC4mQor4Lir4LiZ4Liy4LihCivguKvguJnguYjguLLguKIKK+C4q+C4meC4suC4pwor4Lir4LiZ4LizCivguKvguJnguLPguYDguKXguLXguYnguKLguJoKK+C4q+C4meC4tQor4Lir4LiZ4Li14LmJCivguKvguJnguLXguJoKK+C4q+C4meC4teC5gOC4quC4t+C4rQor4Lir4LiZ4Li24LiBCivguKvguJnguLbguYjguIcKK+C4q+C4meC4tuC4mgor4Lir4LiZ4Li34LiUCivguKvguJnguLgKK+C4q+C4meC4uOC4h+C4q+C4meC4tOC4hwor4Lir4LiZ4Li44LiZCivguKvguJnguLjguJoKK+C4q+C4meC4uOC5iOC4oQor4Lir4LiZ4Li44LmI4LiiCivguKvguJnguLkKK+C4q+C5iOC4oQor4Lir4Lih4LiBCivguKvguKHguJQKK+C4q+C4oeC5iOC4mQor4Lir4Lih4Lin4LiBCivguKvguKHguKfguJQKK+C4q+C4oeC4rQor4Lir4Lih4LmI4LitCivguKvguKHguYnguK0KK+C4q+C4oeC4reC4gQor4Lir4Lih4Lit4LiHCivguKvguKHguYjguK3guIcKK+C4q+C4oeC4reC4mQor4Lir4Lih4LmI4Lit4LiZCivguKvguKHguK3guJoKK+C4q+C4oeC5iOC4reC4oQor4Lir4Lih4Lit4LiiCivguKvguKHguLHguIEKK+C4q+C4oeC4seC4lAor4Lir4Lih4Lix4LiZCivguKvguKHguLHguYjguJkKK+C4q+C4oeC4seC5ieC4mQor4Lir4Lih4Lix4LmI4LiZ4LmE4Liq4LmJCivguKvguKHguLHguJoKK+C4q+C4oeC4sgor4Lir4Lih4LmI4LiyCivguKvguKHguYnguLIKK+C4q+C4oeC4suC4gQor4Lir4Lih4Liy4LiHCivguKvguKHguLLguIjguYjguK0KK+C4q+C4oeC4suC4lAor4Lir4Lih4Liy4LiV4LmL4LiyCivguKvguKHguLLguKHguLjguYjguKIKK+C4q+C4oeC4suC4oeC4uOC5ieC4ogor4Lir4Lih4Liy4LmE4Lih4LmJCivguKvguKHguLLguKIKK+C4q+C4oeC5ieC4suC4ogor4Lir4Lih4Liy4Lij4LmI4LiyCivguKvguKHguYjguLMKK+C4q+C4oeC4tOC5iOC4mQor4Lir4Lih4Li1CivguKvguKHguLXguYgKK+C4q+C4oeC4teC5gOC4q+C4oeC5h+C4mQor4Lir4Lih4Li24LiBCivguKvguKHguLfguJkKK+C4q+C4oeC4t+C5iOC4mQor4Lir4Lih4Li44LiUCivguKvguKHguLjguJkKK+C4q+C4oeC4uOC4mgor4Lir4Lih4Li44LmI4LiiCivguKvguKHguLjguKLguILguLLguKcKK+C4q+C4oeC4uQor4Lir4Lih4Li54LmICivguKvguKHguLnguKrguLHguIcKK+C4q+C4oeC4ueC4quC4tQor4Lir4Lii4LiBCivguKvguKLguYjguIcKK+C4q+C4ouC4lAor4Lir4Lii4Lin4LiBCivguKvguKLguKfguJkKK+C4q+C4ouC4p+C4meC5guC4peC5iQor4Lir4Lii4Lin4LiaCivguKvguKLguK3guIEKK+C4q+C4ouC5h+C4reC4geC4q+C4ouC5h+C4reC4ogor4Lir4Lii4Lit4LiHCivguKvguKLguYjguK3guIcKK+C4q+C4ouC5h+C4reC4h+C5geC4q+C4ouC5h+C4hwor4Lir4Lii4Lit4LiUCivguKvguKLguK3guJkKK+C4q+C4ouC5iOC4reC4mQor4Lir4Lii4LmI4Lit4LihCivguKvguKLguK3guKHguYHguKvguKLguKEKK+C4q+C4ouC4reC4ogor4Lir4Lii4LmI4Lit4LiiCivguKvguKLguLHguIEKK+C4q+C4ouC4seC4geC5gOC4q+C4ouC4sgor4Lir4Lii4Lix4LiHCivguKvguKLguLHguYjguIcKK+C4q+C4ouC4seC4h+C4q+C4ouC4seC4hwor4Lir4Lii4Lix4LiUCivguKvguKLguLHguJkKK+C4q+C4ouC4seC4mgor4Lir4Lii4Lix4LmI4Lin4LmA4Lih4Li34Lit4LiHCivguKvguKLguYjguLIKK+C4q+C4ouC4suC4geC5gOC4ouC4t+C5iOC4rQor4Lir4Lii4Liy4LiB4LmE4Lii4LmICivguKvguKLguYjguLLguIfguITguYnguLMKK+C4q+C4ouC4suC4lAor4Lir4Lii4Liy4LiaCivguKvguKLguLLguKEKK+C4q+C4ouC4suC4pwor4Lir4Lii4LmJ4Liy4LinCivguKvguKLguLPguInguYjguLIKK+C4q+C4ouC4s+C5gOC4mwor4Lir4Lii4Liz4LmB4Lir4Lii4Lit4LiwCivguKvguKLguLPguYHguKvguKLguLAKK+C4q+C4ouC4tOC4gQor4Lir4Lii4Li04LmI4LiHCivguKvguKLguLTguJoKK+C4q+C4ouC4tOC4oQor4Lir4Lii4Li1CivguKvguKLguLXguYgKK+C4q+C4ouC4uAor4Lir4Lii4Li44LiB4Lir4Lii4Li04LiBCivguKvguKLguLjguJQKK+C4q+C4ouC4uOC5iOC4mQor4Lir4Lii4Li44Lia4LmGCivguKvguKLguLjguKHguKvguKLguLTguKEKK+C4q+C4ouC4ueC4geC4ouC4sgor4Lir4LijCivguKvguKPguITguLjguJMKK+C4q+C4o+C4lOC4suC4pQor4Lir4Lij4LiU4Li1CivguKvguKPguJoKK+C4q+C4o+C4o+C4qQor4Lir4Lij4Lij4Lip4LiyCivguKvguKPguK0KK+C4q+C4o+C4reC4gQor4Lir4Lij4LmH4Lit4Lih4LmB4Lir4Lij4LmH4LihCivguKvguKPguK3guKLguYYKK+C4q+C4o+C4sAor4Lir4Lij4Lix4Lia4LmGCivguKvguKPguLIKK+C4q+C4o+C4tAor4Lir4Lij4Li04LmI4LiHCivguKvguKPguLTguJPguLAKK+C4q+C4o+C4tOC4k+C4seC4h+C4hOC5jAor4Lir4Lij4Li04LiVCivguKvguKPguLTguJXguIHguLUKK+C4q+C4o+C4teC5iAor4Lir4Lij4Li14LiUCivguKvguKPguLXguJXguIHguLUKK+C4q+C4o+C4t+C4rQor4Lir4Lij4Li44LmI4LiZCivguKvguKPguLjguJrguYYKK+C4q+C4o+C4uOC4muC4o+C4ueC5iAor4Lir4Lij4Li44Lia4Lir4Lij4Li54LmICivguKvguKPguLjguYjguKEKK+C4q+C4o+C4uQor4Lir4Lij4Li54Lir4Lij4LiyCivguKvguKTguJfguKIKK+C4q+C4pOC4l+C4ouC5jAor4Lir4Lik4LiX4Lix4LiiCivguKvguKTguKnguI7guYwKK+C4q+C4pOC4qeC4juC4tQor4Lir4Lik4Lir4Lij4Lij4Lip4LmMCivguKvguKTguYLguKvguJQKK+C4q+C4pQor4Lir4Lil4LiHCivguKvguKXguJQKK+C4q+C4peC4mQor4Lir4Lil4LmI4LiZCivguKvguKXguJoKK+C4q+C4peC5iOC4oQor4Lir4Lil4Lin4LiHCivguKvguKXguKfguKEKK+C4q+C4peC4rQor4Lir4Lil4LmI4LitCivguKvguKXguK3guIEKK+C4q+C4peC4reC4lAor4Lir4Lil4Lit4LiZCivguKvguKXguYfguK3guJkKK+C4q+C4peC5iOC4reC4mQor4Lir4Lil4LmH4Lit4LiZ4LmGCivguKvguKXguK3guKEKK+C4q+C4peC4sAor4Lir4Lil4Liw4Lir4Lil4Lin4LihCivguKvguKXguLHguIEKK+C4q+C4peC4seC4hwor4Lir4Lil4Lix4LmI4LiHCivguKvguKXguLHguJTguYYKK+C4q+C4peC4seC5iOC4mQor4Lir4Lil4Lix4LiaCivguKvguKXguLHguKcKK+C4q+C4peC4sgor4Lir4Lil4LmJ4LiyCivguKvguKXguLLguIEKK+C4q+C4peC4suC4lwor4Lir4Lil4Liy4LiX4Lin4LiUCivguKvguKXguLLguJkKK+C4q+C4peC4suC4mgor4Lir4Lil4Liy4LihCivguKvguKXguLLguKIKK+C4q+C4peC4suC4pwor4Lir4Lil4Liy4Lir4LilCivguKvguKXguLTguIEKK+C4q+C4peC4tOC5iOC4hwor4Lir4Lil4Li04LiXCivguKvguKXguLTguJkKK+C4q+C4peC4tOC4oQor4Lir4Lil4Li04LinCivguKvguKXguLTguYjguKcKK+C4q+C4peC4tQor4Lir4Lil4Li14LiBCivguKvguKXguLXguYLguIEKK+C4q+C4peC4teC4mgor4Lir4Lil4Li14Liu4Li34LmJ4LitCivguKvguKXguLfguJoKK+C4q+C4peC4uOC4geC4q+C4peC4tOC4gQor4Lir4Lil4Li44LiUCivguKvguKXguLjguJnguYYKK+C4q+C4peC4uOC4mgor4Lir4Lil4Li44LihCivguKvguKXguLjguKHguJ7guK0KK+C4q+C4peC4uOC4oeC4nuC4tQor4Lir4Lil4Li54LmICivguKvguKfguIcKK+C4q+C5iOC4p+C4hwor4Lir4LmJ4Lin4LiHCivguKvguKfguJQKK+C4q+C4p+C4mQor4Lir4LmJ4Lin4LiZCivguKvguKfguJnguITguLPguJnguLbguIcKK+C4q+C4p+C4ogor4Lir4LmI4Lin4LiiCivguKvguYnguKfguKIKK+C4q+C4p+C4rQor4Lir4Lin4Lit4LiUCivguKvguKfguYfguK3guKLguYYKK+C4q+C4p+C4sAor4Lir4Lin4Lix4LiHCivguKvguKfguLHguJQKK+C4q+C4p+C4seC5iOC4mQor4Lir4Lin4Lix4LiZ4Lii4Li04Lir4Lin4LiyCivguKvguKfguLHguKcKK+C4q+C4p+C4seC4p+C4o+C5iOC4rQor4Lir4Lin4Lix4Lin4LmA4Lij4Liy4LiwCivguKvguKfguLIKK+C4q+C4p+C5iOC4sgor4Lir4Lin4LmJ4LiyCivguKvguKfguLLguIEKK+C4q+C4p+C5iOC4suC4hwor4Lir4Lin4Liy4LiUCivguKvguKfguLLguJkKK+C4q+C4p+C5iOC4suC4mQor4Lir4Lin4Liy4LihCivguKvguKfguLLguKIKK+C4q+C4p+C4swor4Lir4Lin4Li04LiUCivguKvguKfguLTguKcKK+C4q+C4p+C4tQor4Lir4Lin4Li14LmICivguKvguKfguLXguJQKK+C4q+C4p+C4t+C4rQor4Lir4Lin4Li44LiU4Lir4Lin4Li04LiUCivguKvguKfguLjguKEKK+C4q+C4p+C4ueC4lAor4Lir4LitCivguKvguYjguK0KK+C4q+C5ieC4rQor4Lir4Lit4LiBCivguKvguK3guIcKK+C4q+C5ieC4reC4hwor4Lir4Lit4LiZCivguKvguYjguK3guJkKK+C4q+C4reC4mgor4Lir4Lit4LihCivguKvguYnguK3guKEKK+C4q+C4reC4oTDvv70KK+C5gOC4q+C4oeC4seC4meC4leC5jAor4LmA4Lir4Lih4LiyCivguYDguKvguKHguLLguKLguLHguJkKK+C5gOC4q+C4oeC4suC4sAor4LmA4Lir4Lih4Li14Lii4LinCivguYDguKvguKHguLXguYjguKLguKcKK+C5gOC4q+C4oeC4t+C4reC4hwor4LmA4Lir4Lih4Li34Lit4LiUCivguYDguKvguKHguLfguK3guJTguITguJkKK+C5gOC4q+C4oeC4t+C4reC4lOC5guC4peC4lAor4LmA4Lir4Lih4Li34Lit4LiZCivguYDguKvguKHguLfguYjguK3guKIKK+C5gOC4q+C4oeC4t+C5iOC4reC4ouC5hgor4LmA4Lir4LiiCivguYDguKvguKLguIcKK+C5gOC4q+C4ouC5iOC4reC4ogor4LmA4Lir4Lii4LiyCivguYDguKvguKLguYjguLIKK+C5gOC4q+C4ouC5ieC4sgor4LmA4Lir4Lii4LmI4Liy4LmGCivguYDguKvguKLguLLguLAKK+C5gOC4q+C4ouC4suC4sOC5hgor4LmA4Lir4Lii4Liy4Liw4Lii4LmI4Liy4LiHCivguYDguKvguKLguLLguLDguYHguKvguKLguLAKK+C5gOC4q+C4ouC4tOC4hwor4LmA4Lir4Lii4Li04Lia4LmGCivguYDguKvguKLguLXguKLguJQKK+C5gOC4q+C4ouC4teC4ouC4mgor4LmA4Lir4Lii4Li14LmI4Lii4LinCivguYDguKvguKLguLfguYjguK0KK+C5gOC4q+C4ouC4t+C4reC4gQor4LmA4Lir4Lij4Lix4LiN4LiN4Li04LiBCivguYDguKvguKPguLIKK+C5gOC4q+C4o+C4suC4sOC5hgor4LmA4Lir4Lij4Li14Lii4LiNCivguYDguKvguKXguYgKK+C5gOC4q+C4peC5h+C4gQor4LmA4Lir4Lil4LiZCivguYDguKvguKXguKcKK+C5gOC4q+C4peC4rQor4LmA4Lir4Lil4LiyCivguYDguKvguKXguYjguLIKK+C5gOC4q+C4peC5ieC4sgor4LmA4Lir4Lil4Liy4LiK4Liw4LmC4Lit4LiZCivguYDguKvguKXguLLguKvguKXguIEKK+C5gOC4q+C4peC4suC5gOC4q+C4ouC5iAor4LmA4Lir4Lil4Liy4Liw4LmB4Lir4Lil4LiwCivguYDguKvguKXguLTguIcKK+C5gOC4q+C4peC4tOC4h+C5gOC4iOC4tOC5ieC4hwor4LmA4Lir4Lil4Li14Lii4LiZCivguYDguKvguKXguLXguYjguKLguKEKK+C5gOC4q+C4peC4teC4ouC4pwor4LmA4Lir4Lil4Li34LitCivguYDguKvguKXguLfguK3guIEKK+C5gOC4q+C4peC4t+C4reC4hwor4LmA4Lir4Lil4Li34Lit4LiaCivguYDguKvguKXguLfguK3guKEKK+C5gOC4q+C4peC4t+C5iOC4reC4oQor4LmA4Lir4LinCivguYDguKvguKfguYgKK+C5gOC4q+C4p+C4hwor4LmA4Lir4Lin4LiiCivguYDguKvguKfguK3guLAKK+C5gOC4q+C4p+C4reC4sOC4q+C4p+C4sAor4LmA4Lir4Lin4Li14LmI4Lii4LiHCivguYDguKvguYjguK0KK+C5gOC4q+C4reC4sAor4LmA4Lir4LiwCivguYDguKvguLDguKvguLAKK+C5gOC4q+C4sgor4LmA4Lir4LmI4LiyCivguYDguKvguLLguLAKK+C5gOC4q+C4tOC4mQor4LmA4Lir4Li04LihCivguYDguKvguLXguYnguKIKK+C5gOC4q+C4teC4ouC4hwor4LmA4Lir4Li14Lii4LiZCivguYDguKvguLXguYnguKLguJkKK+C5gOC4q+C4teC5ieC4ouC4oQor4LmA4Lir4Li14LmI4Lii4LinCivguYDguKvguLfguYjguK0KK+C5gOC4q+C4t+C4reC4lAor4LmB4LirCivguYHguKvguYgKK+C5geC4q+C5iQor4LmB4Lir4LiBCivguYHguKvguIcKK+C5geC4q+C4h+C5iAor4LmB4Lir4LmI4LiHCivguYHguKvguYnguIcKK+C5geC4q+C4h+C5h+C4gQor4LmB4Lir4LiH4LmB4LiB4LmLCivguYHguKvguIfguYjguIcKK+C5geC4q+C4h+C4mQor4LmB4Lir4LiZCivguYHguKvguYnguJkKK+C5geC4q+C4meC4hwor4LmB4Lir4LiZ4LiaCivguYHguKvguJnguKEKK+C5geC4q+C4mgor4LmB4Lir4LihCivguYHguKvguKHguYgKK+C5geC4q+C4oeC5iOC4oQor4LmB4Lir4Lih4LiwCivguYHguKvguKIKK+C5geC4q+C4ouC5iAor4LmB4Lir4Lii4LiHCivguYHguKvguKLguYjguIcKK+C5geC4q+C4ouC4oQor4LmB4Lir4Lii4LiwCivguYHguKvguKLguLDguYYKK+C5geC4q+C4pQor4LmB4Lir4Lil4LmICivguYHguKvguKXguIEKK+C5geC4q+C4peC5iOC4hwor4LmB4Lir4Lil4LiZCivguYHguKvguKXguKEKK+C5geC4q+C4peC4sAor4LmB4Lir4LinCivguYHguKvguYnguKcKK+C5geC4q+C4p+C4gQor4LmB4Lir4Lin4LmI4LiHCivguYHguKvguKfguJQKK+C5geC4q+C4p+C4mQor4LmB4Lir4Lin4LiwCivguYHguKvguLAKK+C5geC4q+C4sOC5hgor4LmC4Lir4LmICivguYLguKvguIEKK+C5guC4q+C4hwor4LmC4Lir4LiUCivguYLguKvguJkKK+C5guC4q+C4meC4gQor4LmC4Lir4LiZ4LmI4LiHCivguYLguKvguKEKK+C5guC4q+C4oeC5iAor4LmC4Lir4Lih4LiB4Lij4Lij4LihCivguYLguKvguKHguIHguLnguJPguJHguYwKK+C5guC4q+C4oeC5iOC4hwor4LmC4Lir4Lih4LiUCivguYLguKvguKIKK+C5guC4q+C4ouC4geC5gOC4q+C4ouC4gQor4LmC4Lir4Lii4LiHCivguYLguKvguKLguYjguIcKK+C5guC4q+C4owor4LmC4Lir4Lij4LiHCivguYLguKvguKPguIfguYDguKvguKPguIcKK+C5guC4q+C4o+C4lOC4suC4iOC4suC4o+C4ouC5jAor4LmC4Lir4Lij4Liw4Lie4LiyCivguYLguKvguKUKK+C5guC4q+C4peC5iAor4LmC4Lir4Lil4LiH4LmC4LiI4LmJ4LiHCivguYLguKvguKcKK+C5guC4q+C4p+C5iAor4LmC4Lir4Lin4LmJCivguYLguKvguKfguIHguYDguKvguKfguIEKK+C5guC4q+C4p+C4hwor4LmC4Lir4Lin4LiUCivguYLguKvguKfguJUKK+C5g+C4q+C5iQor4LmD4Lir4LiN4LmICivguYPguKvguKHguYgKK+C5hOC4qwor4LmE4Lir4LmICivguYTguKvguYkKK+C5hOC4q+C4mQor4LmE4Lir4LihCivguYTguKvguKHguYkKK+C5hOC4q+C4o+C4kwor4LmE4Lir4LilCivguYTguKvguKXguYgKK+C5hOC4q+C4pwor4LmE4Lir4Lin4LmJCivguYTguKvguKfguYYKK+C5hOC4q+C4q+C4peC4swor4LitCivguK3guIEKK+C4reC4geC4leC4seC4jeC4jeC4uOC4leC4sgor4Lit4LiB4LiV4Lix4LiN4LiN4Li5CivguK3guIHguJnguLTguKnguJDguYwKK+C4reC4geC4o+C4k+C4teC4ouC5jAor4Lit4LiB4Lij4Lij4Lih4LiB4Lij4Li04Lii4LiyCivguK3guIHguLHguJvguJvguLTguKLguLAKK+C4reC4geC4suC4peC4iOC4teC4p+C4owor4Lit4LiB4Liy4Lil4Li04LmC4LiBCivguK3guIHguLTguKPguLTguKLguJfguLTguJDguLQKK+C4reC4geC4uOC4qOC4pQor4Lit4LiE4LiV4Li0CivguK3guITguYDguJnguKrguLHguJkKK+C4reC4hOC4suC4mAor4Lit4LiGCivguK3guIcKK+C4reC4h+C4geC5jAor4Lit4LiH4LiE4LmMCivguK3guIfguITguKHguJnguJXguKPguLUKK+C4reC4h+C4hOC4oeC4o+C4o+C4qQor4Lit4LiH4LiE4Li44LilCivguK3guIfguITguLjguKXguLUKK+C4reC4h+C4qOC5jAor4Lit4LiH4Lio4LiyCivguK3guIfguK3guLLguIgKK+C4reC4h+C4uOC5iOC4mQor4Lit4LiI4LijCivguK3guIjguKXguLIKK+C4reC4iOC4tOC4leC4leC4tAor4Lit4LiI4Li04LiZ4LiV4LiyCivguK3guIjguLTguJnguYTguJXguKIKK+C4reC4iOC4tOC4o+C4sAor4Lit4LmA4LiI4Lil4LiBCivguK3guYDguIjguKXguLAKK+C4reC4igor4Lit4LiK4Li04LiZCivguK3guIrguLTguJnguLUKK+C4reC4iuC4tOC4owor4Lit4LiK4Li14Lin4Lin4Li04LiX4LiiCivguK3guI/guKfguLUKK+C4reC4k+C4tAor4Lit4LiT4Li4CivguK3guJPguLkKK+C4reC5guC4k+C4l+C4seC4ogor4Lit4LiUCivguK3guJTguLQKK+C4reC4lOC4tOC4luC4tQor4Lit4LiU4Li04LmA4LiX4LieCivguK3guJTguLTguYDguKPguIEKK+C4reC4lOC4tOC4qOC4owor4Lit4LiU4Li04Lio4Lin4LijCivguK3guJTguLTguKjguLHguKIKK+C4reC4lOC4teC4lQor4Lit4LiU4Li44LilCivguK3guJTguLjguKXguKLguYwKK+C4reC4leC4tAor4Lit4LiV4Li04LiK4Liy4LiVCivguK3guJXguLTguJXguLHguJPguKvguLIKK+C4reC4leC4tOC4luC4tOC4nuC4peC4tQor4Lit4LiV4Li04LmA4LiX4LieCivguK3guJXguLTguKPguLLguIoKK+C4reC4leC4tOC5gOC4o+C4gQor4Lit4LiV4Li04Liq4Liy4LijCivguK3guJXguLTguLLguKHguJnguLAKK+C4reC4leC4teC4leC4seC4h+C4quC4jeC4suC4kwor4Lit4LiW4Lij4Lij4Lie4LmA4Lin4LiXCivguK3guJfguLTguJXguLQKK+C4reC4l+C4tOC4meC4meC4suC4l+C4suC4mQor4Lit4LiX4Li04LiZ4LiZ4Liy4LiX4Liy4Lii4Li1CivguK3guJjguKPguKPguKEKK+C4reC4mOC4tAor4Lit4LiY4Li04LiB4Lij4LiT4LmMCivguK3guJjguLTguIHguLLguKMKK+C4reC4mOC4tOC4hOC4oQor4Lit4LiY4Li04LiI4Li04LiVCivguK3guJjguLTguI/guJDguLLguJkKK+C4reC4mOC4tOC4muC4lOC4tQor4Lit4LiY4Li04Lia4Liy4LiiCivguK3guJjguLTguJsKK+C4reC4mOC4tOC4oeC4suC4leC4owor4Lit4LiY4Li04Lih4Li44LiV4LiV4Li0CivguK3guJjguLTguYLguKHguIHguILguYwKK+C4reC4mOC4tOC4o+C4suC4igor4Lit4LiY4Li04Lin4Liy4LiqCivguK3guJjguLTguKfguLLguKrguJnguLAKK+C4reC4mOC4tOC4qOC4teC4pQor4Lit4LiY4Li04Lip4LiQ4Liy4LiZCivguK3guJjguLbguIEKK+C4reC5ieC4mQor4Lit4LiZ4LiH4LiE4LmMCivguK3guJnguIfguITguJPguLAKK+C4reC4meC4mOC4tOC4p+C4owor4Lit4LiZ4LiZ4LiV4LmMCivguK3guJnguKDguLTguKPguJXguLQKK+C4reC4meC4ouC4sAor4Lit4LiZ4Lij4Lij4LiGCivguK3guJnguKPguKPguJYKK+C4reC4meC4o+C4tOC4ouC4m+C4o+C4tOC5gOC4ouC4quC4meC4sgor4Lit4LiZ4LilCivguK3guJnguKfguLHguIoKK+C4reC5ieC4meC4reC5ieC4rQor4Lit4LiZ4Lix4LiNCivguK3guJnguLHguJXguJXguKXguLHguIHguKnguJPguLAKK+C4reC4meC4seC4leC4leC4sgor4Lit4LiZ4Lix4LiZ4LiV4LmMCivguK3guJnguLHguKEKK+C4reC4meC4suC4hOC4lQor4Lit4LiZ4Liy4LiE4Liy4Lih4Li1CivguK3guJnguLLguITguLLguKPguLTguIEKK+C4reC4meC4suC4hOC4suC4o+C4tOC4ouC5gOC4nuC4qAor4Lit4LiZ4Liy4LiI4Liy4LijCivguK3guJnguLLguJYKK+C4reC4meC4suC4luC4sgor4Lit4LiZ4Liy4LiX4LijCivguK3guJnguLLguJjguLTguJvguYTguJXguKIKK+C4reC4meC4suC4oeC4seC4ogor4Lit4LiZ4Liy4Lij4Lii4LiwCivguK3guJnguLLguKXguLHguKIKK+C4reC4meC4suC4p+C4o+C4k+C4jeC4suC4kwor4Lit4LiZ4LizCivguK3guJnguLTguIgKK+C4reC4meC4tOC4iOC4iOC4seC4hwor4Lit4LiZ4Li04LiI4LiI4LiyCivguK3guJnguLTguI/guJDguLLguKPguKHguJPguYwKK+C4reC4meC4tOC4ouC4lQor4Lit4LiZ4Li04Lii4LihCivguK3guJnguLTguKUKK+C4reC4meC4tOC4p+C4o+C4o+C4lQor4Lit4LiZ4Li04Lin4Lij4Lij4LiV4LiZ4LmMCivguK3guJnguLTguKnguI/guYwKK+C4reC4meC4teC4geC4sAor4Lit4LiZ4Li14LiICivguK3guJnguLbguIEKK+C4reC4meC4tuC5iOC4hwor4Lit4LiZ4Li4CivguK3guJnguLjguIHguKMKK+C4reC4meC4uOC4geC4o+C4oQor4Lit4LiZ4Li44LiB4Lij4Lij4Lih4LiB4Liy4LijCivguK3guJnguLjguIHguKPguLDguYDguJrguLXguKLguJQKK+C4reC4meC4uOC4geC4suC4iuC4suC4lAor4Lit4LiZ4Li44LiB4Liy4LijCivguK3guJnguLjguIHguLnguKUKK+C4reC4meC4uOC4hOC4suC4oeC4tOC4gQor4Lit4LiZ4Li44LiE4Liy4Lih4Li1CivguK3guJnguLjguYDguITguKPguLLguLDguKvguYwKK+C4reC4meC4uOC4iOC4owor4Lit4LiZ4Li44LiKCivguK3guJnguLjguIrguLIKK+C4reC4meC4uOC4iuC4suC4lQor4Lit4LiZ4Li44LiK4Li04LiVCivguK3guJnguLjguI3guLLguJUKK+C4reC4meC4uOC4jeC4suC5guC4leC4leC4uOC4peC4suC4geC4suC4owor4Lit4LiZ4Li44LmA4LiW4Lij4LiwCivguK3guJnguLjguJfguLTguJkKK+C4reC4meC4uOC4muC4lwor4Lit4LiZ4Li44Lia4Liy4LilCivguK3guJnguLjguJrguLjguJ4KK+C4reC4meC4uOC4m+C4o+C4tOC4jeC4jeC4sgor4Lit4LiZ4Li44Lib4Liq4Lix4Lih4Lia4Lix4LiZCivguK3guJnguLjguJvguLHguKrguJnguLIKK+C4reC4meC4uOC4nuC4h+C4qOC5jAor4Lit4LiZ4Li44Lie4LiZ4LiY4LmMCivguK3guJnguLjguJ7guLHguJnguJjguYwKK+C4reC4meC4uOC5guC4nuC4mAor4Lit4LiZ4Li44Lig4Lij4Lij4Lii4LiyCivguK3guJnguLjguKDguLLguIQKK+C4reC4meC4uOC4oOC4suC4qQor4Lit4LiZ4Li44Lih4Lix4LiV4Li0CivguK3guJnguLjguKHguLLguJXguKPguLIKK+C4reC4meC4uOC4oeC4suC4mQor4Lit4LiZ4Li44Lih4Li54LilCivguK3guJnguLjguYLguKHguJfguJnguLIKK+C4reC4meC4uOC5guC4ouC4hAor4Lit4LiZ4Li44Lij4Lix4LiB4Lip4LmMCivguK3guJnguLjguKPguLLguIoKK+C4reC4meC4uOC4o+C4suC4mOC4sgor4Lit4LiZ4Li44Lij4Li54LibCivguK3guJnguLjguYLguKXguKEKK+C4reC4meC4uOC4p+C4h+C4qOC5jAor4Lit4LiZ4Li44Lin4Lix4LiVCivguK3guJnguLjguKfguLLguJUKK+C4reC4meC4uOC4qOC4suC4quC4gQor4Lit4LiZ4Li44Lio4Liy4Liq4LiZ4LmMCivguK3guJnguLjguKjguLLguKrguJnguLLguIjguLLguKPguKLguYwKK+C4reC4meC4uOC4qOC4tOC4qeC4j+C5jAor4Lit4LiZ4Li44Liq4LiV4Li0CivguK3guJnguLjguKrguJnguJjguLQKK+C4reC4meC4uOC4quC4oOC4suC4geC4suC4iuC4suC4lAor4Lit4LiZ4Li44Liq4LijCivguK3guJnguLjguKrguKPguJPguYwKK+C4reC4meC4uOC4quC4seC4jeC4jeC4sgor4Lit4LiZ4Li44Liq4Lix4LiiCivguK3guJnguLjguKrguLLguKfguKPguLXguKLguYwKK+C4reC4meC4uOC4quC4suC4quC4meC4tQor4Lit4LmA4LiZ4LiBCivguK3guYDguJnguIHguITguLjguJMKK+C4reC5gOC4meC4geC4p+C4tOC4mAor4Lit4LmA4LiZ4LiI4Lit4LiZ4Liy4LiWCivguK3guYDguJnguI3guIrguLLguKDguLTguKrguLHguIfguILguLLguKMKK+C4reC5gOC4meC4quC4meC4sgor4Lit4LmC4LiZ4LiK4LiyCivguK3guYLguJnguJTguLLguJUKK+C4reC4mgor4Lit4Lia4LmA4LiK4LiiCivguK3guJrguLLguKIKK+C4reC4mwor4Lit4Lib4LiB4Liy4LijCivguK3guJvguJfguLLguJkKK+C4reC4m+C5gOC4l+C4qAor4Lit4Lib4Lig4Liy4LiE4Lii4LmMCivguK3guJvguKHguIfguITguKUKK+C4reC4m+C4oeC4suC4mQor4Lit4Lib4Lii4LioCivguK3guJvguKPguIHguJXguLQKK+C4reC4m+C4o+C4sOC4oeC4suC4kwor4Lit4Lib4Lij4Liw4Lih4Liy4LiXCivguK3guJvguKPguLDguYTguKHguKIKK+C4reC4m+C4o+C4seC4kwor4Lit4Lib4Lij4LiyCivguK3guJvguKPguLLguIrguLHguKIKK+C4reC4m+C4o+C4suC4iuC4tOC4lQor4Lit4Lib4Lij4Liy4LiYCivguK3guJvguKPguLLguJvguKPguYDguIjguJXguJnguLIKK+C4reC4m+C4o+C4suC4m+C4o+C5gOC4p+C4l+C4meC4teC4ouC4geC4o+C4o+C4oQor4Lit4Lib4Lij4Li04Lih4Liy4LiTCivguK3guJvguKPguLTguKvguLLguKPguLTguKLguJjguKPguKPguKEKK+C4reC4m+C4peC4seC4geC4qeC4k+C5jAor4Lit4Lib4LmC4Lil4LiB4LiZ4LmMCivguK3guJvguKfguLLguJcKK+C4reC4m+C4q+C4suC4owor4Lit4Lib4Lix4LiT4LiT4LiB4Lib4LiP4Li04Lib4LiX4LiyCivguK3guJvguLHguJfguKPguJ4KK+C4reC4m+C4suC4iOC4suC4ouC4meC4sAor4Lit4Lib4Liy4LiI4Li1CivguK3guJvguLLguIjguLXguJkKK+C4reC4m+C4uOC4jeC4jeC4suC4oOC4tOC4quC4seC4h+C4guC4suC4owor4Lit4LmA4Lib4Lir4Li0CivguK3guJ7guIjguJnguYwKK+C4reC4nuC4nuC4sAor4Lit4Lie4Lii4LieCivguK3guJ7guKLguLLguJrguLLguJfguKfguLTguJXguIEKK+C4reC4nuC4pQor4Lit4Lie4Lil4LiyCivguK3guJ7guLLguKPguYzguJXguYDguKHguJnguJXguYwKK+C4reC4oOC4pwor4Lit4Lig4Lix4LieCivguK3guKDguLHguKIKK+C4reC4oOC4tAor4Lit4Lig4Li04LiE4LihCivguK3guKDguLTguIbguLLguJUKK+C4reC4oOC4tOC4iOC4ieC4sgor4Lit4Lig4Li04LiI4LiM4LiyCivguK3guKDguLTguIrguJkKK+C4reC4oOC4tOC4iuC4seC4ogor4Lit4Lig4Li04LiK4Liy4LiVCivguK3guKDguLTguIrguLTguJUKK+C4reC4oOC4tOC4jeC4jeC4sgor4Lit4Lig4Li04LiN4LiN4Liy4LiTCivguK3guKDguLTguJDguLLguJkKK+C4reC4oOC4tOC4mOC4o+C4o+C4oQor4Lit4Lig4Li04LiY4Liy4LiZCivguK3guKDguLTguYTguJjguKIKK+C4reC4oOC4tOC4meC4seC4meC4l+C5jAor4Lit4Lig4Li04LiZ4Lix4LiiCivguK3guKDguLTguJnguLLguJcKK+C4reC4oOC4tOC4meC4tOC4q+C4suC4owor4Lit4Lig4Li04LmA4LiZ4Lip4LiB4Lij4Lih4LiT4LmMCivguK3guKDguLTguJrguLLguKUKK+C4reC4oOC4tOC4m+C4o+C4seC4iuC4jeC4sgor4Lit4Lig4Li04Lib4Lij4Liy4LiiCivguK3guKDguLTguKHguKvguLLguK3guLPguJnguLLguIgKK+C4reC4oOC4tOC4oeC4suC4meC4sAor4Lit4Lig4Li04Lih4Li44LiCCivguK3guKDguLTguKPguJTguLUKK+C4reC4oOC4tOC4o+C4leC4tAor4Lit4Lig4Li04Lij4Lih4Lii4LmMCivguK3guKDguLTguKPguLHguIHguKnguYwKK+C4reC4oOC4tOC4o+C4seC4kOC4oeC4meC4leC4o+C4tQor4Lit4Lig4Li04Lij4Liy4LihCivguK3guKDguLTguKPguLjguJUKK+C4reC4oOC4tOC4o+C4uOC4oQor4Lit4Lig4Li04Lij4Li54LibCivguK3guKDguLTguKXguLHguIHguILguLTguJUKK+C4reC4oOC4tOC4peC4suC4qgor4Lit4Lig4Li04LmA4Lil4Lib4LiZ4LmMCivguK3guKDguLTguKfguLHguJnguJfguYwKK+C4reC4oOC4tOC4p+C4suC4lwor4Lit4Lig4Li04Lin4Liy4LiX4LiZ4LmMCivguK3guKDguLTguYDguKnguIEKK+C4reC4oOC4tOC4quC4l+C4mOC4tOC5jAor4Lit4Lig4Li04Liq4Lih4LmC4Lie4LiY4Li0CivguK3guKDguLTguKrguKHguLHguKIKK+C4reC4oOC4tOC4quC4seC4h+C4guC4suC4owor4Lit4Lig4Li04Liq4Lix4Lih4LmC4Lie4LiY4Li0CivguK3guKDguLTguKrguLTguJUKK+C4reC4oOC4ueC4lQor4Lit4LihCivguK3guYnguKEKK+C4reC4oeC4leC4sAor4Lit4Lih4LiZ4Li44Lip4Lii4LmMCivguK3guKHguKMKK+C4reC4oeC4o+C4muC4lOC4tQor4Lit4Lih4Lij4Lib4Li44Lij4LiwCivguK3guKHguKPguKPguLHguJXguJnguYwKK+C4reC4oeC4o+C4o+C4suC4igor4Lit4Lih4Lij4Liq4LiV4Lij4Li1CivguK3guKHguYDguKPguKgKK+C4reC4oeC5gOC4o+C4qOC4p+C4owor4Lit4Lih4Lik4LiVCivguK3guKHguKTguJXguKLguLkKK+C4reC4oeC4seC4iOC4iOC4sAor4Lit4Lih4Lix4LiV4LijCivguK3guKHguLLguJXguKLguYwKK+C4reC4oeC4suC4p+C4quC4uAor4Lit4Lih4Liy4Lin4Liy4Liq4Li1CivguK3guKHguLTguJXguKMKK+C4reC5gOC4oeC4o+C4tOC4geC4seC4mQor4Lit4LiiCivguK3guKLguJkKK+C4reC4ouC4seC4qgor4Lit4Lii4LmI4LiyCivguK3guKLguLLguIEKK+C4reC4ouC5iOC4suC4hwor4Lit4Lii4Li44LiV4Li04LiY4Lij4Lij4LihCivguK3guKLguLjguJfguJjguYwKK+C4reC4ouC4ueC5iAor4Lit4LijCivguK3guKPguIoKK+C4reC4o+C4iuC4owor4Lit4Lij4LiK4Li44LiZCivguK3guKPguJMKK+C4reC4o+C4lOC4tQor4Lit4Lij4LiV4Li0CivguK3guKPguYTguJcKK+C4reC4o+C4mOC4suC4mQor4Lit4Lij4LiZ4Li44LiKCivguK3guKPguJ7guLTguJnguJfguYwKK+C4reC4o+C4nuC4tOC4oQor4Lit4Lij4Lij4LiECivguK3guKPguKPguIYKK+C4reC4o+C4o+C4huC4ouC5jAor4Lit4Lij4Lij4LiI4LiZ4LmMCivguK3guKPguKPguJPguJ4KK+C4reC4o+C4o+C4lgor4Lit4Lij4Lij4LiYCivguK3guKPguKPguJjguLLguIfguITguYwKK+C4reC4o+C4quC4uOC4oQor4Lit4Lij4Lir4LiwCivguK3guKPguKvguLHguIcKK+C4reC4o+C4q+C4seC4lQor4Lit4Lij4Lir4Lix4LiZCivguK3guKPguKvguLHguJnguJXguYwKK+C4reC4o+C5iOC4reC4ogor4Lit4Lij4Lix4LiNCivguK3guKPguLHguJnguJXguYwKK+C4reC4o+C4suC4lOC4tQor4Lit4Lij4Liy4LiV4Li0CivguK3guKPguYjguLLguKEKK+C4reC4o+C4tAor4Lit4Lij4Li04LiZCivguK3guKPguLTguKLguIHguLAKK+C4reC4o+C4tOC4ouC4sAor4Lit4Lij4Li4CivguK3guKPguLjguJMKK+C4reC4o+C4uOC5iOC4oQor4Lit4Lij4Li54LibCivguK3guKXguIfguIHguJUKK+C4reC4peC4h+C4geC4o+C4k+C5jAor4Lit4Lil4LiH4LiB4Liy4LijCivguK3guKXguKfguJkKK+C4reC4peC5gOC4p+C4hwor4Lit4Lil4Lir4Lih4LmI4Liy4LiZCivguK3guKXguYjguK3guIfguInguYjguK3guIcKK+C4reC4peC4seC4geC5gOC4reC4peC4t+C5iOC4rQor4Lit4Lil4Lix4LiK4LiK4Li1CivguK3guKXguYjguLLguIfguInguYjguLLguIcKK+C4reC4peC4tAor4Lit4Lil4Li04LiH4LiE4LmMCivguK3guKXguLbguIfguITguYwKK+C4reC4peC4tuC5iOC4h+C4ieC4tuC5iOC4hwor4Lit4LmC4Lil4Lir4LiwCivguK3guKfguIEKK+C4reC5ieC4p+C4gQor4Lit4Lin4LiB4Liy4LioCivguK3guKfguYDguITguKPguLLguLDguKvguYwKK+C4reC4p+C4iOC4owor4Lit4Lin4LiK4Lix4LiiCivguK3guKfguIrguLLguJUKK+C4reC4p+C4lAor4Lit4Lin4LiV4Liy4LijCivguK3guKfguJkKK+C4reC5ieC4p+C4mQor4Lit4Lin4LiZ4Li0CivguK3guKfguJoKK+C4reC4p+C4oeC4h+C4hOC4pQor4Lit4Lin4Lih4Lit4LizCivguK3guYnguKfguKHguYDguK3guLXguKIKK+C4reC4p+C4ogor4Lit4Lin4Lii4Lin4LiwCivguK3guKfguKPguLjguJfguJjguYwKK+C4reC4p+C4o+C4uOC4mOC4l+C4gQor4Lit4Lin4LilCivguK3guKfguKrguLLguJkKK+C4reC4p+C4q+C4suC4owor4Lit4Lin4Lix4LiV4LiW4LiyCivguK3guKfguLHguKLguKfguLAKK+C4reC4p+C4seC4quC4lOC4sgor4Lit4Lin4Liy4LiI4Li1CivguK3guKfguLTguIjguLUKK+C4reC4p+C4tOC4iuC4iuC4sgor4Lit4Lin4Li04LiN4LiN4Li5CivguK3guKfguLTguKPguLjguJfguJjguYwKK+C4reC4p+C4tOC5guC4o+C4mOC4meC5jAor4Lit4Lin4Li14LiI4Li0CivguK3guYDguKfguIjguLUKK+C4reC5gOC4p+C5hOC4meC4ouC4quC4seC4leC4p+C5jAor4Lit4LmC4Lio4LiBCivguK3guKrguIfguYTguILguKIKK+C4reC4quC4meC4tQor4Lit4Liq4LigCivguK3guKrguKHguIHguLLguKMKK+C4reC4quC4oeC4oeC4suC4leC4owor4Lit4Liq4Lij4Lie4Li04LipCivguK3guKrguLHguIfguIHguKHguJfguKPguLHguJ7guKLguYwKK+C4reC4quC4seC4h+C4guC4leC4mOC4o+C4o+C4oQor4Lit4Liq4Lix4LiH4Lir4Liy4Lij4Li04Lih4LiwCivguK3guKrguLHguI3guI3guLUKK+C4reC4quC4seC4jeC5geC4lOC4q+C4p+C4sgor4Lit4Liq4Lix4LiV4LiW4Lie4Lik4LiB4Lip4LmMCivguK3guKrguLHguJXguKLguYwKK+C4reC4quC4suC4mOC4owor4Lit4Liq4Liy4LiY4Li4CivguK3guKrguLLguJ7guJXguLQKK+C4reC4quC4tAor4Lit4Liq4Li04LiVCivguK3guKrguLXguJXguKLguLLguJnguLjguJ7guKLguLHguI3guIrguJnguLAKK+C4reC4quC4teC4leC4tAor4Lit4Liq4Li4CivguK3guKrguLjguIjguLQKK+C4reC4quC4uOC4jeC4geC4seC4peC4m+C5jAor4Lit4Liq4Li44LiZ4Li14Lia4Liy4LiVCivguK3guKrguLjguKAKK+C4reC4quC4uOC4o+C4tOC4meC4l+C4o+C5jAor4Lit4Liq4Li44Lij4Li1CivguK3guKrguLjguYDguKPguJnguJfguKPguYwKK+C4reC4quC4uOC5gOC4o+C4qAor4Lit4Liq4Li54LijCivguK3guYDguKoKK+C4reC5gOC4quC4geC4guC4sAor4Lit4LmA4Liq4LiC4LiwCivguK3guYDguKrguKfguJnguLAKK+C4reC5gOC4quC4p+C4meC4sgor4Lit4LirCivguK3guKvguLHguIfguIHguLLguKMKK+C4reC4q+C4tAor4Lit4Lir4Li04LiH4Liq4LiyCivguK3guKvguLbguIfguKrguLIKK+C4reC5gOC4q+C4leC4uOC4geC4l+C4tOC4kOC4tAor4Lit4LmC4Lir4Liq4Li0CivguK3guK0KK+C4reC5ieC4rQor4Lit4LmL4LitCivguK3guK3guIEKK+C4reC4reC4geC4i+C4tOC5gOC4iOC4mQor4Lit4Lit4LiB4LiL4Li04LmA4LiU4LiK4Lix4LiZCivguK3guK3guIHguYTguIvguJTguYwKK+C4reC5iOC4reC4hwor4Lit4LmL4Lit4LiHCivguK3guYnguK3guIfguYHguK3guYnguIcKK+C4reC4reC5gOC4i+C4suC4sAor4Lit4Lit4LiUCivguK3guYrguK3guJTguYbguYHguK3guYrguJTguYYKK+C4reC5iuC4reC4lOC5geC4reC5iuC4lAor4Lit4LmI4Lit4LiZCivguK3guYnguK3guJkKK+C4reC4reC4meC4i+C5jAor4Lit4Lit4LiZ4LiL4Lit4LiZCivguK3guYjguK3guJnguIvguK3guJkKK+C4reC5ieC4reC4meC5geC4reC5ieC4mQor4Lit4Lit4Lif4Lif4Li04LioCivguK3guK3guKEKK+C4reC5iOC4reC4oQor4Lit4LmJ4Lit4LihCivguK3guK3guKHguITguKPguK3guKEKK+C4reC4reC4oeC4iuC4reC4oQor4Lit4Lit4Lih4LiL4Lit4LihCivguK3guYnguK3guKHguYHguK3guYnguKEKK+C4reC5iOC4reC4ogor4Lit4LmJ4Lit4LiiCivguK3guYvguK3guKIKK+C4reC5ieC4reC4ouC4quC5ieC4reC4ogor4Lit4LmJ4Lit4Lii4Lit4Li04LmI4LiHCivguK3guK3guKPguYzguYHguIHguJkKK+C4reC4reC4o+C5jOC5gOC4lOC4tOC4o+C5jOC4nwor4Lit4Lit4Liq4LmA4Lih4Li14Lii4LihCivguK3guYnguK3guYHguK3guYkKK+C4reC5iuC4sAor4Lit4Liw4LiE4Lij4LmJ4Liy4LinCivguK3guLDguYDguITguLfguYnguK0KK+C4reC4sOC4iOC4teC4mQor4Lit4Liw4LmB4LiICivguK3guLDguYDguIvguJfguLTguKXguLXguJkKK+C4reC4sOC4lOC4o+C4t+C4meC4suC4peC4tOC4mQor4Lit4Liw4LiU4Lix4LiBCivguK3guLDguJTguLjguIcKK+C4reC4sOC4leC4reC4oQor4Lit4Liw4LiZ4LiwCivguK3guLDguJnguLHguYnguJkKK+C4reC4sOC4meC4teC5iQor4Lit4Liw4Lih4Li14Lia4LiyCivguK3guLDguYDguKHguKPguLTguYDguIvguLXguKLguKEKK+C4reC4sOC4o+C5ieC4suC4reC4o+C5iOC4suC4oQor4Lit4Liw4LmE4LijCivguK3guLDguKXguLHguIfguIHguLLguKMKK+C4reC4sOC4peC4uOC5iOC4oeC4reC4peC5iOC4p+C4ogor4Lit4Liw4Lil4Li44LmJ4Lih4Lit4Lil4LmI4Lin4LiiCivguK3guLDguKXguLnguKHguLTguYDguJnguLXguKLguKEKK+C4reC4sOC4q+C4oQor4Lit4Liw4LmE4Lir4Lil4LmICivguK3guLDguK3guLfguYnguK0KK+C4reC4sOC5gOC4reC4t+C5ieC4reC4ogor4Lit4Lix4LiBCivguK3guLHguYnguIEKK+C4reC4seC5iuC4gQor4Lit4Lix4LmJ4LiB4LmGCivguK3guLHguYrguIHguYYKK+C4reC4seC4geC4geC4sAor4Lit4Lix4LiB4LmC4LiB4LiY4LiwCivguK3guLHguIHguYLguIHguKrguKfguLHguJXguJbguLgKK+C4reC4seC4geC4ggor4Lit4Lix4LiB4LiC4Lij4LiwCivguK3guLHguIHguILguKPguLLguJnguLjguIHguKPguKHguKDguLnguKHguLTguKjguLLguKrguJXguKPguYwKK+C4reC4seC4geC4guC4suC4mQor4Lit4Lix4LiB4LmC4LiCCivguK3guLHguIHguYLguILguKDguLTguJPguLUKK+C4reC4seC4geC5guC4guC5gOC4oOC4k+C4tQor4Lit4Lix4LiB4Lip4LijCivguK3guLHguIHguKnguLAKK+C4reC4seC4geC5gOC4qeC4suC4q+C4tOC4k+C4tQor4Lit4Lix4LiB4LmA4Liq4LiaCivguK3guLHguIHguK3guYjguKfguJkKK+C4reC4seC4hOC4hOC4sAor4Lit4Lix4LiE4LiE4Li0CivguK3guLHguITguITguLUKK+C4reC4seC4hOC4meC4tAor4Lit4Lix4LiE4LiZ4Li1CivguK3guLHguITguJnguLXguIHguKPguLXguJHguLIKK+C4reC4seC4hwor4Lit4Lix4LiH4LiB4LmMCivguK3guLHguIfguIHguJnguLAKK+C4reC4seC4h+C4geC4pOC4qQor4Lit4Lix4LiH4LiB4Lin4LiUCivguK3guLHguIfguIHguLDguKXguLjguIcKK+C4reC4seC4h+C4geC4sgor4Lit4Lix4LiH4LiB4Liy4LiaCivguK3guLHguIfguIHguLjguKMKK+C4reC4seC4h+C4geC4uOC4qAor4Lit4Lix4LiH4LiB4Li54LijCivguK3guLHguIfguITguJPguLAKK+C4reC4seC4h+C4hOC4k+C4sgor4Lit4Lix4LiH4LiE4LiwCivguK3guLHguIfguITguLLguKMKK+C4reC4seC4h+C4hOC4suC4qgor4Lit4Lix4LiH4LiE4Li14Lij4LiqCivguK3guLHguIfguITguLjguJAKK+C4reC4seC4h+C4huC4suC4lQor4Lit4Lix4LmJ4LiH4LmA4Lib4LiyCivguK3guLHguYnguIfguKHguYnguK0KK+C4reC4seC5ieC4h+C4ouC4teC5iAor4Lit4Lix4LmJ4LiH4LmC4Lil4LmICivguK3guLHguIfguKjguLAKK+C4reC4seC4h+C4qOC4uAor4Lit4Lix4LiH4Lio4Li44LiBCivguK3guLHguIfguKrguJXguKPguK3guKEKK+C4reC4seC4h+C4quC4meC4sgor4Lit4Lix4LiH4Liq4LiwCivguK3guLHguIjguIHguKXguLHguJoKK+C4reC4seC4iOC4iOC4seC4meC4leC5jAor4Lit4Lix4LiI4LiI4Lix4LiiCivguK3guLHguIjguIjguLQKK+C4reC4seC4iOC4iOC4uOC4lQor4Lit4Lix4LiI4LmA4LiI4LiB4LiwCivguK3guLHguIjguInguKPguLIKK+C4reC4seC4iOC4ieC4o+C4tOC4ouC4sAor4Lit4Lix4LiI4LiZ4LiyCivguK3guLHguIrguIzguLIKK+C4reC4seC4iuC4jOC4suC4iOC4suC4owor4Lit4Lix4LiK4LiM4Liy4Lio4Lix4LiiCivguK3guLHguIrguIzguLLguKrguLHguKIKK+C4reC4seC4iuC4muC4suC4pQor4Lit4Lix4LiN4LiC4Lii4LihCivguK3guLHguI3guIrguJnguLAKK+C4reC4seC4jeC4iuC4peC4tQor4Lit4Lix4LiN4LiK4Lix4LiZCivguK3guLHguI3guYDguIrguLTguI0KK+C4reC4seC4jeC4jeC4sAor4Lit4Lix4LiN4Lib4Lij4Liw4LiB4Liy4LioCivguK3guLHguI3guKHguLHguI3guI3guLAKK+C4reC4seC4jeC4o+C4ueC4mwor4Lit4Lix4LiPCivguK3guLHguI/guJAKK+C4reC4seC4j+C4meC4sgor4Lit4Lix4LiQCivguK3guLHguJDguKHguLAKK+C4reC4seC4kOC4rOC4qgor4Lit4Lix4LiQ4Li0CivguK3guLHguJPguJHguLAKK+C4reC4seC4k+C4k+C4ngor4Lit4Lix4LiUCivguK3guLHguJTguYHguIgKK+C4reC4seC4leC4hOC4seC4lAor4Lit4Lix4LiV4LiI4Lij4Li04Lii4LiyCivguK3guLHguJXguJXguLAKK+C4reC4seC4leC4leC4sgor4Lit4Lix4LiV4LiW4LmMCivguK3guLHguJXguJbguLAKK+C4reC4seC4leC5guC4meC4oeC4seC4leC4tAor4Lit4Lix4LiV4Lij4LiK4LiwCivguK3guLHguJXguKPguLIKK+C4reC4seC4leC4peC4seC4lAor4Lit4Lix4LiX4LiX4LiyCivguK3guLHguJfguJjguYwKK+C4reC4seC4l+C4mOC4sgor4Lit4Lix4LiX4LiY4Liy4LiZCivguK3guLHguJjguKLguLLguJXguKHguKfguLTguJfguKLguLIKK+C4reC4seC4mOC4ouC4suC4ogor4Lit4Lix4LiY4Lii4Liy4Lio4Lix4LiiCivguK3guLHguJkKK+C4reC4seC5ieC4mQor4Lit4Lix4LmL4LiZCivguK3guLHguJnguJTguIEKK+C4reC4seC4meC4lOC4owor4Lit4Lix4LiZ4LiU4Lix4LiaCivguK3guLHguJnguJTguYrguLLguIEKK+C4reC4seC4meC5guC4lOC5iuC4gQor4Lit4Lix4LiZ4LiV4LijCivguK3guLHguJnguJXguKPguJjguLLguJkKK+C4reC4seC4meC4leC4o+C4sgor4Lit4Lix4LiZ4LiV4Lij4Liy4LiiCivguK3guLHguJnguJXguLTguIEKK+C4reC4seC4meC4leC4tOC4oeC4sAor4Lit4Lix4LiZ4LmA4LiVCivguK3guLHguJnguYLguJUKK+C4reC4seC4meC5geC4luC5ieC4hwor4Lit4Lix4LiZ4LiX4Li4CivguK3guLHguJnguYLguJfguKUKK+C4reC4seC4meC4meC4sAor4Lit4Lix4LiZ4Lii4LiwCivguK3guLHguJnguYLguKLguJnguKLguLAKK+C4reC4seC4meC4p+C4seC4ogor4Lit4Lix4LiZ4LmA4Lin4LiqCivguK3guLHguJoKK+C4reC4seC4muC4m+C4suC4hwor4Lit4Lix4Lib4LiB4LiwCivguK3guLHguJvguIHguLLguKMKK+C4reC4seC4m+C4j+C4tOC4huC4sAor4Lit4Lix4Lib4LiP4Li04Lig4Liy4LiECivguK3guLHguJvguJvguLAKK+C4reC4seC4m+C4oOC4suC4hOC4ouC5jAor4Lit4Lix4Lib4Lih4LiH4LiE4LilCivguK3guLHguJvguKLguKgKK+C4reC4seC4m+C4o+C4sOC4oeC4suC4kwor4Lit4Lix4Lib4Lij4Liw4Lih4Liy4LiXCivguK3guLHguJvguKPguLDguYTguKHguKIKK+C4reC4seC4m+C4o+C4suC4iuC4seC4ogor4Lit4Lix4Lib4Lij4Li14Lii4LmMCivguK3guLHguJvguKXguLHguIHguKnguJPguYwKK+C4reC4seC4m+C4quC4owor4Lit4Lix4Lie4Lie4Li44LiXCivguK3guLHguJ7guYLguJ7guKvguLLguKPguLTguIEKK+C4reC4seC4nuC4oOC4seC4meC4lOC4owor4Lit4Lix4Lie4Lig4Liy4LiZCivguK3guLHguJ7guKDguLLguKoKK+C4reC4seC4oQor4Lit4Lix4Lih4Lie4LijCivguK3guLHguKHguJ7guLIKK+C4reC4seC4oeC4nuC4tOC4pQor4Lit4Lix4Lih4Lie4Li4CivguK3guLHguKLguIHguLAKK+C4reC4seC4ouC4geC4sgor4Lit4Lix4Lii4LiB4Liy4LijCivguK3guLHguKLguIHguLUKK+C4reC4seC4ouC4ouC4sAor4Lit4Lix4Lii4Lii4Liy4Lig4Lij4Li04Lii4LiyCivguK3guLHguKLguKLguLTguIHguLIKK+C4reC4seC4peC4leC4o+C4suC5hOC4p+C5guC4reC5gOC4peC4lQor4Lit4Lix4LmI4LinCivguK3guLHguYrguKcKK+C4reC4seC4qOC4iOC4o+C4o+C4ouC5jAor4Lit4Lix4Lio4LmA4LiI4Lij4Li14Lii4LmMCivguK3guLHguKnguI7guKHguLAKK+C4reC4seC4quC4lOC4hwor4Lit4Lix4Liq4LiU4LihCivguK3guLHguKrguJnguLUKK+C4reC4seC4quC4oeC4tOC4oeC4suC4meC4sAor4Lit4Lix4Liq4Liq4LiwCivguK3guLHguKrguKrguLHguJXguJbguJ7guKTguIHguKnguYwKK+C4reC4seC4quC4quC4uAor4Lit4LiyCivguK3guYjguLIKK+C4reC5ieC4sgor4Lit4Liy4LiB4LiHCivguK3guLLguIHguKMKK+C4reC4suC4geC4seC4h+C4guC4sgor4Lit4Liy4LiB4Lix4LibCivguK3guLLguIHguLHguKHguJvguJnguLAKK+C4reC4suC4geC4seC4oeC4m+C4sAor4Lit4Liy4LiB4Liy4LijCivguK3guLLguIHguLLguKgKK+C4reC4suC4geC4tOC4jeC4iOC4seC4jeC4jeC4sAor4Lit4Liy4LiB4Li54LilCivguK3guLLguYDguIHguLXguKLguKPguJPguYwKK+C4reC4suC4guC4ouC4suC4lQor4Lit4Liy4LiC4Lii4Liy4LiZCivguK3guLLguITguYDguJnguKLguYwKK+C4reC4suC4hOC4oQor4Lit4Liy4LiE4Lij4Lir4Liy4Lii4LiT4Li1CivguK3guLLguITguLHguJnguJXguLjguIHguLAKK+C4reC4suC4hOC4suC4owor4Lit4Liy4LiG4Liy4LiVCivguK3guLLguIbguLLguJXguJnguLAKK+C4reC5iOC4suC4hwor4Lit4LmJ4Liy4LiHCivguK3guLLguIfguILguJnguLLguIcKK+C4reC5ieC4suC4h+C4p+C5ieC4suC4hwor4Lit4Liy4LiICivguK3guLLguIjguKEKK+C4reC4suC4iOC4oeC4mQor4Lit4Liy4LiI4Liy4LiUCivguK3guLLguIjguLLguKMKK+C4reC4suC4iOC4suC4o+C4ouC5jAor4Lit4Liy4LiI4Li04LiTCivguK3guLLguYDguIjguLXguKLguJkKK+C4reC4suC4iuC4jeC4seC4m+C4leC4tAor4Lit4Liy4LiK4LiN4Lix4Lib4LiV4Li04LmMCivguK3guLLguIrguI3guLIKK+C4reC4suC4iuC4p+C4sAor4Lit4Liy4LiK4LiyCivguK3guLLguIrguLLguJkKK+C4reC4suC4iuC4suC4meC4tAor4Lit4Liy4LiK4Liy4LmE4LiZ4LiiCivguK3guLLguIrguLXguJ4KK+C4reC4suC4iuC4teC4p+C4gQor4Lit4Liy4LiK4Li14Lin4LiZ4LiwCivguK3guLLguIrguLXguKfguLAKK+C4reC4suC4jeC4sgor4Lit4Liy4LiP4Liy4LiV4LiyCivguK3guLLguJPguLHguJXguLQKK+C4reC4suC4k+C4sgor4Lit4Liy4LiT4Liy4Lib4LiBCivguK3guLLguJPguLLguJvguJkKK+C4reC4suC4lAor4Lit4Liy4LiU4LmGCivguK3guLLguJTguLjguKXguKLguYwKK+C4reC4suC4lOC4ueC4owor4Lit4Liy4LiU4Li54Lil4Lii4LmMCivguK3guLLguYDguJTguYrguLAKK+C4reC4suC4leC4oeC4seC4mQor4Lit4Liy4LiV4Li44LijCivguK3guLLguJbguKPguKPguJ7guYwKK+C4reC4suC4luC4o+C4o+C4nuC4k+C5jAor4Lit4Liy4LiW4Lij4Lij4Lie4LiT4LiwCivguK3guLLguJfguKHguLLguI8KK+C4reC4suC4l+C4owor4Lit4Liy4LiX4Liy4LiV4LiyCivguK3guLLguJfguLLguJkKK+C4reC4suC4l+C4tOC4geC4p+C4tQor4Lit4Liy4LiX4Li04LiV4Lii4LmMCivguK3guLLguJfguLXguJnguJ4KK+C4reC4suC4l+C4teC4meC4pwor4Lit4Liy4LiX4Li24LiBCivguK3guLLguYDguJfguKgKK+C4reC4suC4mOC4o+C4o+C4oQor4Lit4Liy4LiY4Lij4Lij4Lih4LmMCivguK3guLLguJjguKPguKPguKHguLTguIEKK+C4reC4suC4mOC4o+C4o+C4oeC4tuC4gQor4Lit4Liy4LiY4Liy4LiZCivguK3guLLguJjguLLguKMKK+C4reC4suC4mQor4Lit4LmI4Liy4LiZCivguK3guLLguJnguIEKK+C4reC4suC4meC4mQor4Lit4Liy4LiZ4LiZ4LiX4LmMCivguK3guLLguJnguLAKK+C4reC4suC4meC4seC4meC4l+C5jAor4Lit4Liy4LiZ4Lix4LiZ4LiX4LiZ4LiwCivguK3guLLguJnguLHguKEKK+C4reC4suC4meC4swor4Lit4Liy4LiZ4Li04LiBCivguK3guLLguJnguLTguKrguIfguIbguYwKK+C4reC4suC4meC4uOC4oOC4suC4ngor4Lit4Liy4LiZ4Li44Lig4Liy4Lin4LiwCivguK3guLLguJoKK+C4reC4suC4muC4seC4hwor4Lit4Liy4Lia4Lix4LiV4Li0CivguK3guLLguJrguLHguJkKK+C4reC4suC4muC4uQor4Lit4Liy4Lib4LiT4LiwCivguK3guLLguJvguLAKK+C4reC4suC4m+C4suC4meC4sAor4Lit4Liy4LmC4LibCivguK3guLLguJ7guLHguJQKK+C4reC4suC4nuC4seC4l+C4mOC5jAor4Lit4Liy4Lie4Lix4LiZ4LiY4LmMCivguK3guLLguJ7guLHguJnguJjguJnguLAKK+C4reC4suC4nuC4suC4mAor4Lit4Liy4Lie4Li04LilCivguK3guLLguYDguJ7guKgKK+C4reC4suC4oOC4o+C4k+C5jAor4Lit4Liy4Lig4Lix4LieCivguK3guLLguKDguLHguKrguKPguLAKK+C4reC4suC4oOC4sgor4Lit4Liy4Lig4Liy4LiqCivguK3guLLguYLguKDguIQKK+C4reC4suC4oeC4peC4gQor4Lit4Liy4Lih4Lix4LiiCivguK3guLLguKHguLIKK+C4reC4suC4oeC4tOC4qQor4Lit4Liy4Lih4Li04LiqCivguK3guLLguKIKK+C4reC5ieC4suC4ogor4Lit4Liy4Lii4LiVCivguK3guLLguKLguJXguJnguLAKK+C4reC4suC4ouC4mQor4Lit4Liy4Lii4Lix4LiUCivguK3guLLguKLguLHguJUKK+C4reC4suC4ouC4seC4mQor4Lit4Liy4Lii4Liy4LiI4LiZ4LiwCivguK3guLLguKLguLLguJkKK+C4reC4suC4ouC4uAor4Lit4Liy4Lii4Li44LiB4LiV4LiB4LiwCivguK3guLLguKLguLjguJXguIHguLAKK+C4reC4suC4ouC4uOC4mAor4Lit4Liy4Lii4Li44LipCivguK3guLLguKPguYzguIHguK3guJkKK+C4reC4suC4o+C4lOC4tQor4Lit4Liy4Lij4LmM4LiVCivguK3guLLguKPguJXguLQKK+C4reC4suC4o+C4l+C4o+C4sgor4Lit4Liy4Lij4Lia4Li04LiECivguK3guLLguKPguYzguKEKK+C4reC4suC4o+C4oeC4k+C5jAor4Lit4Liy4Lij4Lii4LiwCivguK3guLLguKPguLAKK+C4reC4suC4o+C4seC4geC4guC4sgor4Lit4Liy4Lij4Lix4LiB4Lip4LmMCivguK3guLLguKPguLHguI0KK+C4reC4suC4o+C4seC4jeC4jeC4tOC4gQor4Lit4Liy4Lij4Lix4LiT4Lii4LmMCivguK3guLLguKPguLHguJPguKLguIHguLAKK+C4reC4suC4o+C4seC4leC4tAor4Lit4Liy4Lij4Lix4Lih4Lig4LmMCivguK3guLLguKPguLLguJjguJnguYwKK+C4reC4suC4o+C4suC4mOC4meC4sgor4Lit4Liy4Lij4Liy4LihCivguK3guLLguKPguLUKK+C4reC4suC4o+C4uOC4oQor4Lit4Liy4Lil4Lib4LiZ4LmMCivguK3guLLguKXguJvguJnguLAKK+C4reC4suC4peC4sOC4p+C4suC4lAor4Lit4Liy4Lil4Lix4LiB4Lip4LiT4LmMCivguK3guLLguKXguLHguKIKK+C4reC4suC4peC4seC4pwor4Lit4Liy4Lil4Li0CivguK3guLLguKXguLUKK+C4reC4suC5guC4peC4gQor4Lit4Liy4LinCivguK3guYjguLLguKcKK+C4reC5ieC4suC4pwor4Lit4Liy4Lin4Lij4LiT4LmMCivguK3guLLguKfguLHguIrguJnguLLguIHguLLguKMKK+C4reC4suC4p+C4suC4qgor4Lit4Liy4Lin4Liy4Lir4LiwCivguK3guLLguKfguLTguKUKK+C4reC4suC4p+C4uOC4lQor4Lit4Liy4Lin4Li44LiYCivguK3guLLguKfguLjguYLguKoKK+C4reC4suC5gOC4p+C4hAor4Lit4Liy4LmA4Lin4LioCivguK3guLLguKjguKPguKEKK+C4reC4suC4qOC4o+C4oeC4muC4lwor4Lit4Liy4Lio4LmA4Lil4Lip4LiyCivguK3guLLguKjguLHguKIKK+C4reC4suC4qOC4uAor4Lit4Liy4LmA4Lio4Li14Lii4LijCivguK3guLLguKnguLLguJIKK+C4reC4suC4quC4meC4sAor4Lit4Liy4Liq4Lig4Li04Lin4Liy4LiI4LiyCivguK3guLLguKrguKLguLLguJnguLjguKrguLHguKIKK+C4reC4suC4quC4p+C4geC4qeC4seC4ogor4Lit4Liy4Liq4Lin4LiB4Li04LmA4Lil4LiqCivguK3guLLguKrguLHguI0KK+C4reC4suC4quC4seC4leC4ouC5jAor4Lit4Liy4Liq4Lix4LiZ4LiZ4LiwCivguK3guLLguKrguLIKK+C4reC4suC4quC4suC4rOC4q+C5jAor4Lit4Liy4Liq4Li04LiN4LiI4LmMCivguK3guLLguKrguLTguJkKK+C4reC4suC4quC4ueC4owor4Lit4Liy4LmA4Liq4Li14LmI4LiiCivguK3guLLguYHguKrguLAKK+C4reC4suC4q+C4lQor4Lit4Liy4Lir4LiV4Li1CivguK3guLLguKvguJnguLUKK+C4reC4suC4q+C4meC4uQor4Lit4Liy4Lir4LihCivguK3guLLguKvguKLguLHguIcKK+C4reC4suC4q+C4ouC4seC4mQor4Lit4Liy4Lir4LijCivguK3guLLguKvguKPguLHguJTguIHguLHguJTguJXguLTguIHguLIKK+C4reC4suC4q+C4o+C4seC4mgor4Lit4Liy4Lir4Lil4Lix4LiB4Lit4Liy4LmA4Lir4Lil4Li34LmI4LitCivguK3guLLguKvguLLguKMKK+C4reC4suC4q+C4uOC4lOC4tQor4Lit4Liy4Lis4Lir4LiBCivguK3guLLguKzguLLguKvguJnguLAKK+C4reC4swor4Lit4LmI4LizCivguK3guLPguYHguJTguIcKK+C4reC4s+C4meC4lAor4Lit4Liz4LiZ4LiZ4LiV4LmMCivguK3guLPguJnguKPguKPguIYKK+C4reC4s+C4meC4p+C4ogor4Lit4Liz4LiZ4Liy4LiICivguK3guLPguJnguLLguJYKK+C4reC4s+C4meC4tOC4kAor4Lit4Liz4LiZ4Li04Lip4LiQ4LmMCivguK3guLPguJvguKXguLHguIcKK+C4reC4s+C4nuC4mQor4Lit4Liz4Lie4Liw4LiZ4LizCivguK3guLPguJ7guLHguJkKK+C4reC4s+C5hOC4ngor4Lit4Liz4LmA4Lig4LitCivguK3guLPguYDguKDguK3guYPguIgKK+C4reC4s+C4oeC4owor4Lit4Liz4Lih4Lik4LiE4LmC4LiK4LiECivguK3guLPguKHguKTguJUKK+C4reC4s+C4oeC4q+C4tOC4lQor4Lit4Liz4Lih4Liy4LiV4Lii4LmMCivguK3guLPguKLguKfguJkKK+C4reC4s+C4o+C4uOC4hwor4Lit4Liz4Lil4LiyCivguK3guLPguK3guKfguKEKK+C4reC5ieC4s+C4reC4tuC5ieC4hwor4Lit4Li04LiBCivguK3guLTguIcKK+C4reC4tOC4h+C4hOC5jAor4Lit4Li04LiH4Lit4LijCivguK3guLTguIjguInguLIKK+C4reC4tOC4ieC4seC4mQor4Lit4Li04LiK4Lii4LiyCivguK3guLTguJAKK+C4reC4tOC4kwor4Lit4Li04LiUCivguK3guLTguJXguJbguLUKK+C4reC4tOC4leC5gOC4l+C4o+C4teC4ouC4oQor4Lit4Li04LiV4LmA4LiX4Lit4Lij4LmM4LmA4Lia4Li14Lii4LihCivguK3guLTguJXguLTguKvguLLguKoKK+C4reC4tOC4l+C4mOC4tAor4Lit4Li04LiY4LmC4Lil4LiBCivguK3guLTguJkKK+C4reC4tOC4meC4i+C4ueC4peC4tOC4mQor4Lit4Li04LiZ4LmA4LiU4Li14LiiCivguK3guLTguJnguYDguJTguLXguKLguJnguYHguJTguIcKK+C4reC4tOC4meC5gOC4lOC4teC4ouC4oQor4Lit4Li04LiZ4LiX4LmMCivguK3guLTguJnguJfguILguLXguKUKK+C4reC4tOC4meC4l+C4meC4tOC4pQor4Lit4Li04LiZ4LiX4LiZ4Li04Lil4LiZ4LmJ4LizCivguK3guLTguJnguJfguJzguKXguLHguKEKK+C4reC4tOC4meC4l+C4o+C5jAor4Lit4Li04LiZ4LiX4Lij4Li1CivguK3guLTguJnguJfguKPguLXguKLguYwKK+C4reC4tOC4meC4l+C4teC4p+C4owor4Lit4Li04LiZ4LiX4Li4CivguK3guLTguJnguJjguJnguYwKK+C4reC4tOC4meC4n+C4o+C4suC5gOC4o+C4lAor4Lit4Li04LiZ4LmB4Lil4Liw4Lir4Lii4Lix4LiHCivguK3guLTguJnguKfguK3guKLguIvguYwKK+C4reC4tOC5iOC4oQor4Lit4Li04Lih4Lix4Lil4LiK4Lix4LiZCivguK3guLTguKPguLTguYDguJTguLXguKLguKEKK+C4reC4tOC4o+C4tOC4ouC4sgor4Lit4Li04Lij4Li44Lie4LmA4Lie4LiXCivguK3guLTguKXguLkKK+C4reC4tOC5gOC4peC5h+C4geC4leC4o+C4reC4mQor4Lit4Li04LmA4Lil4LmH4LiB4LiX4Lij4Lit4LiZ4Li04LiB4Liq4LmMCivguK3guLTguYDguKXguYfguIHguYLguJfguJkKK+C4reC4tOC4qAor4Lit4Li04Lio4LijCivguK3guLTguKjguKfguKMKK+C4reC4tOC4qeC4j+C5jAor4Lit4Li04Lip4LiP4Li1CivguK3guLTguKoKK+C4reC4tOC4quC4leC4o+C4tQor4Lit4Li04Liq4Lij4LiwCivguK3guLTguKrguKPguLTguKLguLAKK+C4reC4tOC4quC4quC4sgor4Lit4Li04Liq4Lix4LiV4Lij4Li1CivguK3guLTguKrguLQKK+C4reC4tOC4quC4tQor4Lit4Li04Lir4Lih4LmI4Liy4LihCivguK3guLUKK+C4reC4teC5iAor4Lit4Li14LmJCivguK3guLXguYoKK+C4reC4teC5iwor4Lit4Li14LiBCivguK3guLXguIHguYnguK0KK+C4reC4teC4geC5i+C4reC4ogor4Lit4Li14LiB4LiyCivguK3guLXguIHguYvguLIKK+C4reC4teC5gOC4geC5ieC4hwor4Lit4Li14LmA4LiB4Lij4LmH4LiHCivguK3guLXguYDguIHguYnguK3guLXguIHguLHguIcKK+C4reC4teC5geC4gQor4Lit4Li14LmB4LiB4LmICivguK3guLXguYHguIHguYkKK+C4reC4teC5guC4geC5ieC4hwor4Lit4Li14LmC4LiB4LmK4LiwCivguK3guLXguITguKfguYjguLPguK3guLXguKvguIfguLLguKIKK+C4reC4teC4iOC4ueC5iQor4Lit4Li14LiJ4Lix4LiZCivguK3guLXguInguLjguKLguK3guLXguYHguInguIEKK+C4reC4teC4iuC4uOC4gQor4Lit4Li14LmK4LiUCivguK3guLXguJTguK3guIEKK+C4reC4teC4lOC4s+C4reC4teC5geC4lOC4hwor4Lit4Li14LiV4Lix4LinCivguK3guLXguJXguLLguKUKK+C4reC4teC5gOC4leC5ieC4rQor4Lit4Li14LmC4LiV4LmJCivguK3guLXguJbguYjguLLguIcKK+C4reC4teC4l+C4uOC4gQor4Lit4Li14LiX4Li44LiaCivguK3guLXguYDguJfguK3guKPguYwKK+C4reC4teC4meC4uOC4h+C4leC4uOC4h+C4meC4seC4hwor4Lit4Li14LiZ4Li54LiZCivguK3guLXguYLguJkKK+C4reC4teC5guC4meC4h+C5guC4leC4h+C5gOC4meC4hwor4Lit4Li14Lia4Li24LmJ4LiHCivguK3guLXguJvguLjguJQKK+C4reC4teC5gOC4m+C5h+C4lAor4Lit4Li14LmA4Lib4LmJ4LiyCivguK3guLXguYHguJvguLAKK+C4reC4teC5guC4m+C4hwor4Lit4Li14LmA4Lie4LiyCivguK3guLXguKHguLkKK+C4reC4teC4o+C4oQor4Lit4Li14Lij4Li44LmJ4LiHCivguK3guLXguYHguKPguJTguYHguIjguYrguJTguYHguIjguYsKK+C4reC4teC5geC4o+C5ieC5geC4l+C5ieC5geC4leC5iAor4Lit4Li14Lil4Lit4LiHCivguK3guLXguKXguYjguK3guKLguJvguYjguK3guKLguYHguK0KK+C4reC4teC4peC4uOC5ieC4oQor4Lit4Li14Lil4Li44LmI4Lii4LiJ4Li44Lii4LmB4LiJ4LiBCivguK3guLXguYDguKXguLTguYnguIcKK+C4reC4teC5geC4peC5iOC4hwor4Lit4Li14LmC4Lil4LiHCivguK3guLXguKjguKfguKMKK+C4reC4teC4qgor4Lit4Li14Liq4LmA4LiV4Lit4Lij4LmMCivguK3guLXguKrguLIKK+C4reC4teC4quC4suC4mQor4Lit4Li14Liq4Li44LiB4Lit4Li14LmD4LiqCivguK3guLXguKvguJnguK3guIfguK3guLXguYHguKvguJnguIcKK+C4reC4teC4q+C4o+C4reC4mgor4Lit4Li14Lir4Lil4Lix4LiB4Lit4Li14LmA4Lir4Lil4Li34LmI4LitCivguK3guLXguKvguKXguLHguJTguJbguLHguJTguJfguLIKK+C4reC4teC4q+C4peC4tQor4Lit4Li14Lir4Lil4Li44LiB4LiC4Lil4Li44LiB4LiC4Lil4Lix4LiBCivguK3guLXguKvguKXguLjguIHguILguKXguLjguIHguILguKXguLjguYjguKIKK+C4reC4teC4q+C4peC4uOC4ouC4ieC4uOC4ouC5geC4ieC4gQor4Lit4Li14LmA4Lir4LmH4LiZCivguK3guLXguYDguKvguJnguYfguJoKK+C4reC4teC5gOC4q+C4meC4teC4ouC4pwor4Lit4Li14LmA4Lir4Lii4Li14LmI4Lii4LinCivguK3guLXguYDguKvguKXguLDguYDguILguKXguLDguILguKXguLAKK+C4reC4teC5gOC4q+C4peC4sOC5gOC4guC4sOC4guC4sAor4Lit4Li14LmC4Lir4LiZ4LmI4Lit4Li14LmA4Lir4LiZ4LmICivguK3guLXguYLguKvguKXguIHguYLguILguKXguIHguYDguILguKXguIEKK+C4reC4teC5geC4reC5iOC4mQor4Lit4Li2CivguK3guLbguIEKK+C4reC4tuC5iuC4gQor4Lit4Li24LiB4LiX4Li24LiBCivguK3guLbguIHguK3guLHguIEKK+C4reC4tuC4hwor4Lit4Li24LmI4LiHCivguK3guLbguYnguIcKK+C4reC4tuC4lAor4Lit4Li24LiU4LiV4Liw4Lib4Li34LitCivguK3guLbguYnguJTguJfguLbguYjguJQKK+C4reC4tuC4mQor4Lit4Li34LiUCivguK3guLfguYjguJkKK+C4reC4t+C5ieC4mQor4Lit4Li34LitCivguK3guLfguYnguK0KK+C4reC4uAor4Lit4Li44LiBCivguK3guLjguIHguIHguLIKK+C4reC4uOC4geC4pOC4qeC4j+C5jAor4Lit4Li44LiB4Lil4LiyCivguK3guLjguIQKK+C4reC4uOC4hOC4owor4Lit4Li44LiE4Lir4LiZ4Li04Lih4Li04LiVCivguK3guLjguITguKvguLAKK+C4reC4uOC5guC4huC4qQor4Lit4Li44LmJ4LiHCivguK3guLjguIgKK+C4reC4uOC4iOC4iOC4suC4o+C4sAor4Lit4Li44LiI4LiJ4Li4CivguK3guLjguIjguYDguInguJcKK+C4reC4uOC4iOC4suC4lAor4Lit4Li44LiK4Li4CivguK3guLjguI3guInguLLguIjguKPguLTguKLguLIKK+C4reC4uOC4j+C4kOC4suC4geC4suC4owor4Lit4Li44LiT4Lir4LiwCivguK3guLjguJPguKvguLTguKoKK+C4reC4uOC4k+C4sgor4Lit4Li44LiUCivguK3guLjguJTguYDguJXguLIKK+C4reC4uOC4lOC4oQor4Lit4Li44LiU4LijCivguK3guLjguJTguKvguJnguLjguJkKK+C4reC4uOC4lOC4suC4geC4seC4mQor4Lit4Li44LiV4LiU4LihCivguK3guLjguJXguJTguKMKK+C4reC4uOC4leC4leC4oeC4sAor4Lit4Li44LiV4Lia4LilCivguK3guLjguJXguJ7guLTguJQKK+C4reC4uOC4leC4o+C4sgor4Lit4Li44LiV4Lij4Li0CivguK3guLjguJXguKXguLjguJQKK+C4reC4uOC4leC4quC5iOC4suC4q+C5jAor4Lit4Li44LiV4Liq4Liy4Lir4LiwCivguK3guLjguJXguLgKK+C4reC4uOC4l+C4gQor4Lit4Li44LiX4LiX4Liy4LihCivguK3guLjguJfguJjguKPguJPguYwKK+C4reC4uOC4l+C4mOC4seC4iAor4Lit4Li44LiX4Lii4Liy4LiZCivguK3guLjguJfguKMKK+C4reC4uOC4l+C4o+C4tOC4ouC4sAor4Lit4Li44LiX4Lil4Li44LihCivguK3guLjguJfguLHguKIKK+C4reC4uOC4l+C4suC4mQor4Lit4Li44LiX4Liy4LijCivguK3guLjguJfguLLguKvguKPguJPguYwKK+C4reC4uOC4l+C4tOC4qAor4Lit4Li44LiX4Li44Lih4Lie4LijCivguK3guLjguYDguJfguKgKK+C4reC4uOC5gOC4l+C4quC4tOC4geC5gOC4iOC4lOC4teC4ouC5jAor4Lit4Li44LiY4Lix4LiICivguK3guLjguYjguJkKK+C4reC4uOC4meC4suC4geC4seC4mQor4Lit4Li44LiaCivguK3guLjguJrguKUKK+C4reC4uOC4muC4sAor4Lit4Li44Lia4LmK4LiwCivguK3guLjguJrguLHguJXguLQKK+C4reC4uOC4muC4suC4lwor4Lit4Li44Lia4Liy4LiX4Lin4LmMCivguK3guLjguJrguLLguKIKK+C4reC4uOC4muC4suC4quC4gQor4Lit4Li44Lia4Liy4Liq4Li04LiB4LiyCivguK3guLjguYDguJrguIHguILguLIKK+C4reC4uOC5guC4muC4quC4lgor4Lit4Li44LmC4Lia4Liq4LiW4Lir4Lix4LiV4LiW4Li1CivguK3guLjguJsKK+C4reC4uOC4m+C4geC4o+C4k+C5jAor4Lit4Li44Lib4LiB4Lij4LihCivguK3guLjguJvguIHguLLguKMKK+C4reC4uOC4m+C4geC4suC4o+C4sAor4Lit4Li44Lib4LiB4Liy4Lio4Liq4Liy4LijCivguK3guLjguJvguIHguLTguJPguJPguLAKK+C4reC4uOC4m+C4geC4tOC5gOC4peC4qgor4Lit4Li44Lib4LiG4Liy4LiV4LiB4LiB4Lij4Lij4LihCivguK3guLjguJvguIjguLLguKMKK+C4reC4uOC4m+C4luC4seC4oeC4oOC5jAor4Lit4Li44Lib4LiW4Lix4Lih4Lig4LiBCivguK3guLjguJvguJfguKEKK+C4reC4uOC4m+C4l+C4ueC4lQor4Lit4Li44Lib4LmA4LiX4LioCivguK3guLjguJvguYDguJfguYjguKvguYwKK+C4reC4uOC4m+C4mOC4tAor4Lit4Li44Lib4LiY4Li04Lin4Li04LmA4Lin4LiBCivguK3guLjguJvguJnguLHguKIKK+C4reC4uOC4m+C4meC4suC4ouC4gQor4Lit4Li44Lib4LiZ4Liy4Lii4LiZCivguK3guLjguJvguJnguLTguIHguILguLTguJUKK+C4reC4uOC4m+C4meC4tOC4geC4qeC4tOC4lQor4Lit4Li44Lib4LiZ4Li04Lip4Lix4LiXCivguK3guLjguJvguJnguLTguKrguLHguKIKK+C4reC4uOC4m+C4muC4pQor4Lit4Li44Lib4Lia4Lix4LiV4Li0CivguK3guLjguJvguJrguLLguJcKK+C4reC4uOC4m+C4nuC4seC4l+C4mOC5jAor4Lit4Li44Lib4Lie4Lix4LiZ4LiY4LmMCivguK3guLjguJvguKDguLTguYDguKnguIEKK+C4reC4uOC4m+C5guC4oOC4hAor4Lit4Li44Lib4Lih4LiyCivguK3guLjguJvguKHguLLguJkKK+C4reC4uOC4m+C4oeC4suC4reC4uOC4m+C5hOC4oeC4ogor4Lit4Li44Lib4LmE4Lih4LiiCivguK3guLjguJvguKLguLjguKfguKPguLLguIoKK+C4reC4uOC4m+C5guC4ouC4hAor4Lit4Li44Lib4LmC4Lii4Lij4Liy4LiKCivguK3guLjguJvguKPguLLguIHguKMKK+C4reC4uOC4m+C4o+C4suC4hOC4sgor4Lit4Li44Lib4Lij4Liy4LiKCivguK3guLjguJvguKPguLQKK+C4reC4uOC4m+C5guC4peC4geC4meC5jAor4Lit4Li44Lib4LmC4Lil4LiB4Lir4LmMCivguK3guLjguJvguKrguKHguJrguJcKK+C4reC4uOC4m+C4quC4oeC4muC4seC4mQor4Lit4Li44Lib4Liq4Lij4Lij4LiECivguK3guLjguJvguKrguLHguKHguJrguLHguJkKK+C4reC4uOC4m+C4quC4seC4oeC4m+C4l+C4sgor4Lit4Li44Lib4Liu4Liy4LiUCivguK3guLjguJvguLHguIrguIzguLLguKLguYwKK+C4reC4uOC4m+C4seC4iuC4jOC4suC4ouC4sAor4Lit4Li44Lib4Lix4LiP4LiQ4Liy4LiBCivguK3guLjguJvguLHguI/guJDguLLguJnguLAKK+C4reC4uOC4m+C4seC4l+C4p+C4sAor4Lit4Li44Lib4Liy4LiC4Lii4Liy4LiZCivguK3guLjguJvguLLguJjguKLguLLguKIKK+C4reC4uOC4m+C4suC4ouC4suC4qgor4Lit4Li44Lib4Liy4Lir4LiZ4LiyCivguK3guLjguKDguYLguJXguKrguIfguIbguYwKK+C4reC4uOC4oOC4seC4ogor4Lit4Li44LmJ4LihCivguK3guLjguKHguIfguITguYwKK+C4reC4uOC4oeC4oeC4seC4lQor4Lit4Li44Lih4LiyCivguK3guLjguYLguKHguIfguITguYwKK+C4reC4uOC4ogor4Lit4Li44LmJ4LiiCivguK3guLjguYrguKIKK+C4reC4uOC4ouC4ouC4suC4mQor4Lit4Li44Lii4Lii4Liy4LihCivguK3guLjguKLguYLguKLguIQKK+C4reC4uOC4o+C4hAor4Lit4Li44Lij4LiTCivguK3guLjguKPguJ7guLUKK+C4reC4uOC4o+C4qgor4Lit4Li44Lij4LiwCivguK3guLjguKPguLHguIfguK3guLjguJXguLHguIcKK+C4reC4uOC4o+C4seC4iOC4ieC4l+C4sAor4Lit4Li44Lij4Lix4LiI4LiJ4Lix4LiXCivguK3guLjguKPguLIKK+C4reC4uOC4o+C4uAor4Lit4Li44LmE4LijCivguK3guLjguKXguJvguJnguLAKK+C4reC4uOC4peC5guC4peC4iAor4Lit4Li44Lil4LmC4Lil4Lil4LiwCivguK3guLjguKXguLLguKHguIEKK+C4reC4uOC4peC4tOC4lAor4Lit4Li44Lil4Li54LiBCivguK3guLjguYLguKXguIEKK+C4reC4uOC4p+C4sAor4Lit4Li44LmB4Lin4LmJCivguK3guLjguKnguJPguLXguKnguYwKK+C4reC4uOC4qeC4oQor4Lit4Li44Lip4Lih4Lix4LiZCivguK3guLjguKnguLIKK+C4reC4uOC4qeC4suC4q+C4sAor4Lit4Li44Liq4LigCivguK3guLjguKrguKfguLAKK+C4reC4uOC4quC4quC5iOC4suC4q+C5jAor4Lit4Li44Liq4Liq4Liy4Lir4LiwCivguK3guLjguKrguLIKK+C4reC4uOC4quC4uAor4Lit4Li44Liq4Li44LigCivguK3guLjguKrguLjguKEKK+C4reC4uOC4q+C4o+C4seC4mgor4Lit4Li44Lir4Lil4LiaCivguK3guLjguYDguKvguKHguYgKK+C4reC4uOC4rOC4suC4owor4Lit4Li5CivguK3guLnguYgKK+C4reC4ueC5iQor4Lit4Li54LmLCivguK3guLnguJAKK+C4reC4ueC4lAor4Lit4Li54LihCivguK3guLnguKPguLkKK+C4reC4ueC5i+C4reC4teC5iwor4LmA4LitCivguYDguK3guYkKK+C5gOC4reC5ieC5huC5geC4reC5iOC4mQor4LmA4Lit4LiBCivguYDguK3guYrguIEKK+C5gOC4reC4geC5gOC4guC4meC4gQor4LmA4Lit4LiB4LiI4Lix4LiB4Lip4Li4CivguYDguK3guIHguIjguLTguJUKK+C5gOC4reC4geC4ieC4seC4meC4l+C5jAor4LmA4Lit4LiB4LiK4LiZCivguYDguK3guIHguIvguYLguJsKK+C5gOC4reC4geC4i+C5gOC4o+C4ouC5jAor4LmA4Lit4LiB4LmA4LiX4LioCivguYDguK3guIHguYLguJfguKkKK+C5gOC4reC4geC4meC4seC4ogor4LmA4Lit4LiB4Lia4Li44LiE4LiE4LilCivguYDguK3guIHguJrguLjguKPguLjguKkKK+C5gOC4reC4geC4nuC4iOC4meC5jAor4LmA4Lit4LiB4Lie4Lix4LiZ4LiY4LmMCivguYDguK3guIHguKDguJ4KK+C5gOC4reC4geC4oOC4o+C4tOC4ouC4sgor4LmA4Lit4LiB4Lig4Lix4LiB4LiU4Li04LmMCivguYDguK3guIHguKDguLLguITguLUKK+C5gOC4reC4geC4oOC4suC4ngor4LmA4Lit4LiB4LihCivguYDguK3guIHguKHguJXguLQKK+C5gOC4reC4geC4oeC4seC4ogor4LmA4Lit4LiB4Lij4Lij4LiW4Lib4Lij4Liw4LmC4Lii4LiECivguYDguK3guIHguKPguKoKK+C5gOC4reC4geC4o+C4sAor4LmA4Lit4LiB4Lij4Liy4LiKCivguYDguK3guIHguKXguLHguIHguKnguJPguYwKK+C5gOC4reC4geC4qOC4gQor4LmA4Lit4LiB4LiqCivguYDguK3guIHguKrguKHguLHguIfguITguLUKK+C5gOC4reC4geC4quC4suC4owor4LmA4Lit4LiB4Liq4Li04LiX4LiY4Li04LmMCivguYDguK3guIHguK3guLHguITguKPguKPguLLguIrguJfguLnguJUKK+C5gOC4reC4geC4reC4uAor4LmA4Lit4LiB4Lix4LiE4LiV4LiyCivguYDguK3guIHguLHguIfguKrguJ7guKLguLLguIHguKPguJPguYwKK+C5gOC4reC4geC4seC4h+C4quC4p+C4suC4l+C4tQor4LmA4Lit4LiB4Lix4LiV4Lig4Liy4LieCivguYDguK3guIHguLIKK+C5gOC4reC5ieC4geC4sgor4LmA4Lit4LiB4Li04LiB4LiyCivguYDguK3guIHguLXguKDguLnguJUKK+C5gOC4reC5gOC4hOC4reC4o+C5jAor4LmA4Lit4LiHCivguYDguK3guYfguIcKK+C5gOC4reC5i+C4hwor4LmA4Lit4LmA4LiK4Li14LmI4Lii4LiZ4LmA4LiB4Lih4Liq4LmMCivguYDguK3guYfguJQKK+C5gOC4reC4lOC4quC5jAor4LmA4Lit4LiV4LiX4Lix4LiE4LiE4LiwCivguYDguK3guYnguYDguJUKK+C5gOC4reC4l+C4tOC4peC5geC4reC4peC4geC4reC4ruC4reC4peC5jAor4LmA4Lit4LiZCivguYDguK3guYfguJkKK+C5gOC4reC4meC5hOC4i+C4oeC5jAor4LmA4Lit4LmH4LiZ4LiU4Li5CivguYDguK3guJnguJfguKPguLLguJnguIvguYwKK+C5gOC4reC4oQor4LmA4Lit4LmH4Lih4Lia4Lij4Li04LmC4LitCivguYDguK3guKIKK+C5gOC4reC5iOC4ogor4LmA4Lit4LmK4LiiCivguYDguK3guYvguKIKK+C5gOC4reC5gOC4ouC5iOC4meC4leC5jAor4LmA4Lit4Lij4LmH4LiU4Lit4Lij4LmI4Lit4LiiCivguYDguK3guKPguLLguKfguLHguJMKK+C5gOC4reC4peC4sgor4LmA4Lit4Lil4Liy4Lis4Li44LiBCivguYDguK3guKcKK+C5gOC4reC5iuC4pwor4LmA4Lit4Lin4Lix4LiHCivguYDguK3guYnguKvguKHguLbguIcKK+C5gOC4reC4q+C4tOC4m+C4seC4quC4quC4tOC5guC4gQor4LmA4Lit4Lir4Li04Lig4Li04LiB4LiC4Li44Lit4Li44Lib4Liq4Lix4Lih4Lib4LiX4LiyCivguYDguK3guKzguIEKK+C5gOC4reC4rOC4sgor4LmA4Lit4LitCivguYDguK3guYjguK0KK+C5gOC4reC4reC4o+C5jOC5gOC4muC4teC4ouC4oQor4LmA4Lit4LmJ4Lit4Lij4Liw4LmA4Lir4LiiCivguYDguK3guYnguK3guYDguKPguYnguK0KK+C5gOC4reC5ieC4reC5gOC4ruC4rQor4LmA4Lit4LmJ4LmB4Lit4LmI4LiZCivguYDguK3guYrguLAKK+C5gOC4reC4sOC5g+C4iAor4LmA4Lit4Liw4Lit4LiwCivguYDguK3guLIKK+C5gOC4reC5ieC4sgor4LmA4Lit4Liy4LiX4Liy4LijCivguYDguK3guLLguJfguLLguKPguKLguYwKK+C5gOC4reC4suC4o+C4qgor4LmA4Lit4Liy4Lis4Liy4LijCivguYDguK3guLLguLDguKXguLLguKIKK+C5gOC4reC4tOC4gQor4LmA4Lit4Li04LmJ4LiBCivguYDguK3guLTguJkKK+C5gOC4reC4tOC5ieC4mQor4LmA4Lit4Li04LiaCivguYDguK3guLXguKLguIcKK+C5gOC4reC4teC5ieC4ouC4hwor4LmA4Lit4Li14Lii4LiUCivguYDguK3guLXguYrguKLguJQKK+C5gOC4reC4teC4ouC4mQor4LmA4Lit4Li14LmI4Lii4LiZCivguYDguK3guLXguYjguKLguKEKK+C5gOC4reC4teC5iuC4ouC4oQor4LmA4Lit4Li14LmJ4Lii4Lih4LiI4Li44LmK4LiZCivguYDguK3guLXguYnguKLguKHguYDguJ/guLXguYnguKLguKEKK+C5gOC4reC4teC5iOC4ouC4pwor4LmA4Lit4Li14LmJ4Lii4LinCivguYDguK3guLfguYnguK0KK+C5gOC4reC4t+C5ieC4reC4hwor4LmA4Lit4Li34LmJ4Lit4LiH4LiK4Lix4LiZCivguYDguK3guLfguK3guJQKK+C5gOC4reC4t+C4reC4mQor4LmA4Lit4Li34LmJ4Lit4LiZCivguYDguK3guLfguK3guKEKK+C5gOC4reC4t+C5ieC4reC4oQor4LmA4Lit4Li34LmI4Lit4LiiCivguYDguK3guLfguYnguK3guKIKK+C5gOC4reC4t+C5iOC4reC4ouC5hgor4LmB4LitCivguYHguK3guYkKK+C5geC4reC5iwor4LmB4Lit4LiBCivguYHguK3guIHguJfguLTguYDguJnguLXguKLguKEKK+C5geC4reC5iOC4hwor4LmB4Lit4LmJ4LiH4LmB4Lih4LmJ4LiHCivguYHguK3guJQKK+C5geC4reC5ieC4lAor4LmB4Lit4LmK4LiUCivguYHguK3guJTguYYKK+C5geC4reC5iuC4lOC5hgor4LmB4Lit4LmI4LiZCivguYHguK3guJnguJXguLTguYDguIjguJkKK+C5geC4reC4meC4leC4tOC4muC4reC4lOC4tQor4LmB4Lit4LiZ4LiV4Li04Lit4Li04LmA4Lil4LmH4LiB4LiV4Lij4Lit4LiZCivguYHguK3guYjguJnguKXguKEKK+C5geC4reC5guC4meC4lAor4LmB4Lit4LiaCivguYHguK3guYnguKEKK+C5geC4reC4oeC5geC4m+C4o+C5jAor4LmB4Lit4Lih4LmA4Lif4LiV4Liy4Lih4Li14LiZCivguYHguK3guKHguKHguLTguYDguJXguK3guKPguYwKK+C5geC4reC4oeC5guC4oeC5gOC4meC4teC4ogor4LmB4Lit4Lij4LmI4LihCivguYHguK3guKPguYzguYLguK7guKrguYDguJXguKoKK+C5geC4reC4peC4geC4reC4ruC4reC4peC5jAor4LmB4Lit4Lil4Lif4LiyCivguYHguK3guKcKK+C5geC4reC5iOC4pwor4LmB4Lit4LmJ4Lin4LmB4LiL4LmI4LinCivguYHguK3guKrguJfguLLguJfguLXguJkKK+C5geC4reC4quC5hOC4nuC4o+C4tOC4mQor4LmB4Lit4Liq4Lif4Lix4Lil4LiV4LmMCivguYHguK3guKvguJnguLHguIcKK+C5geC4reC4reC4p+C4ogor4LmB4Lit4Lit4Lix4LiUCivguYLguK0KK+C5guC4reC5iAor4LmC4Lit4LmJCivguYLguK3guYsKK+C5guC4reC4gQor4LmC4Lit4LmJ4LiBCivguYLguK3guYrguIEKK+C5guC4reC4geC4suC4qgor4LmC4Lit4LiG4LiwCivguYLguK3guYjguIcKK+C5guC4reC4h+C4geC4suC4owor4LmC4Lit4LiH4LmC4LiC4LiU4LiHCivguYLguK3guIrguLAKK+C5guC4reC4iuC4sgor4LmC4Lit4LmC4LiL4LiZCivguYLguK3guJAKK+C5guC4reC4lAor4LmC4Lit4LiVCivguYLguK3guJXguJXguLHguJvguJvguLAKK+C5guC4reC4l+C4meC4sAor4LmC4Lit4LiZCivguYLguK3guJoKK+C5guC4reC4m+C4m+C4suC4leC4tOC4geC4sAor4LmC4Lit4LmA4Lib4LiBCivguYLguK3guKDguLIKK+C5guC4reC4oOC4suC4qgor4LmC4Lit4LihCivguYLguK3guKIKK+C5guC4reC5iuC4ogor4LmC4Lit4Lij4LiqCivguYLguK3guKXguLDguJ7guYjguK0KK+C5guC4reC4peC4tOC4oeC4m+C4tOC4gQor4LmC4Lit4LmA4Lil4Li14LmJ4Lii4LiHCivguYLguK3guKfguLLguJcKK+C5guC4reC4qeC4kOC5jAor4LmC4Lit4Liq4LiWCivguYLguK3guKrguLLguJkKK+C5guC4reC4q+C4meC4rQor4LmC4Lit4Lir4LmM4LihCivguYLguK3guKvguLHguIcKK+C5guC4reC4rOC4suC4owor4LmC4Lit4LmJ4LmA4Lit4LmJCivguYLguK3guYDguK3guIvguLTguKoKK+C5guC4reC5ieC5guC4rgor4LmE4LitCivguYTguK3guYnguYDguILguYkKK+C5hOC4reC5guC4i+C5guC4l+C4mwor4LmE4Lit4LiZ4LmM4Liq4LmE4LiV4LmA4LiZ4Li14Lii4LihCivguYTguK3guKLguKPguLIKK+C5hOC4reC4ouC5gOC4o+C4qAor4LmE4Lit4Lij4Liy4Lie4LiVCivguYTguK3guKPguLLguKfguLHguJMKK+C5hOC4reC4qOC4geC4o+C4teC4oQor4LmE4Lit4Lio4Lin4Lij4Lij4Lii4LmMCivguYTguK3guK3guK3guJkKK+C5hOC4reC5guC4reC4lOC4teC4mQor4LiuCivguK7guIHguYDguIHguLXguYnguKLguJkKK+C4ruC4geC4peC4geC4i+C4tOC5iOC4pwor4Liu4LmJ4LiHCivguK7guJQKK+C4ruC4p+C4h+C4i+C4uOC5ieC4ogor4Liu4Lin4LiZCivguK7guYnguKfguJkKK+C4ruC5ieC4p+C4meC4q+C4oeC4uQor4Liu4Lin4LiaCivguK7guKfguKIKK+C4ruC5iOC4rQor4Liu4LmJ4LitCivguK7guK3guIHguIHguLXguYkKK+C4ruC5iOC4reC4hwor4Liu4LmI4Lit4LiH4LmA4LiV4LmJCivguK7guK3guIfguYDguK7guLIKK+C4ruC4reC4lAor4Liu4Lit4LiV4LiU4Lit4LiBCivguK7guYjguK3guKEKK+C4ruC5iOC4reC4oeC4lOC4hwor4Liu4LmI4Lit4Lih4LmA4Lih4Li34Lit4LiHCivguK7guYjguK3guKHguKPguLTguJkKK+C4ruC4reC4o+C5jOC5guC4oeC4mQor4Liu4Lit4Lil4LmB4Lil4LiZ4LiU4LmMCivguK7guK3guKXguLHguJnguJTguLIKK+C4ruC4sAor4Liu4Lix4LiBCivguK7guLHguIHguYYKK+C4ruC4seC4h+C5gOC4pQor4Liu4Lix4LiU4LmA4LiK4LmJ4LiiCivguK7guLHguYjguJkKK+C4ruC4seC5ieC4pwor4Liu4LiyCivguK7guYnguLIKK+C4ruC5iOC4suC5hgor4Liu4LmI4Liy4LiH4Lir4Lil4Lin4LiHCivguK7guLLguKEKK+C4ruC4suC4o+C4suC4hOC4teC4o+C4tQor4Liu4Liy4LmA4Lij4LmH4LihCivguK7guLLguKvguYzguYDguJnguLXguKLguKEKK+C4ruC4tOC5hgor4Liu4Li04LiI4LmA4Lij4Liy4Liw4Lir4LmMCivguK7guLTguJnguJTguLkKK+C4ruC4tOC4m+C4m+C4teC5iQor4Liu4Li04Lib4LmC4Lib4LmC4Lib4LmA4LiV4Lih4Lix4LiqCivguK7guLTguKrguJfguLXguYDguKPguLXguKIKK+C4ruC4teC5iQor4Liu4Li14LmA4Lil4Li14Lii4LihCivguK7guLYKK+C4ruC4tuC4gQor4Liu4Li24LiUCivguK7guLbguKEKK+C4ruC4tuC5iOC4oQor4Liu4Li24LiiCivguK7guLfguJTguK7guLLguJQKK+C4ruC4t+C4rQor4Liu4Li34LmI4LitCivguK7guLfguYnguK0KK+C4ruC4uOC4lAor4Liu4Li44LiaCivguK7guLjguKLguYDguKXguK7guLjguKIKK+C4ruC4ueC5iQor4Liu4Li54LiBCivguK7guLnguKEKK+C5gOC4rgor4LmA4Liu4LmJCivguYDguK7guIHguJXguLLguKPguYwKK+C5gOC4ruC4geC5guC4leC4geC4o+C4seC4oQor4LmA4Liu4LiB4LmC4LiV4LmA4Lih4LiV4LijCivguYDguK7guIHguYLguJXguKXguLTguJXguKMKK+C5gOC4ruC4hwor4LmA4Liu4LmC4Lih4LmC4LiB4Lil4Lia4Li04LiZCivguYDguK7guKIKK+C5gOC4ruC5ieC4ogor4LmA4Liu4LmC4Lij4Lit4Li14LiZCivguYDguK7guKXguLTguITguK3guJvguYDguJXguK3guKPguYwKK+C5gOC4ruC5ieC4pwor4LmA4Liu4LitCivguYDguK7guYnguK0KK+C5gOC4ruC4tOC4o+C4leC4i+C5jAor4LmA4Liu4Li14LiiCivguYDguK7guLXguYnguKLguJkKK+C5gOC4ruC4teC5ieC4ouC4mgor4LmA4Liu4Li14LmJ4Lii4LinCivguYDguK7guLfguK3guIEKK+C5gOC4ruC4t+C4reC4mQor4LmB4LiuCivguYHguK7guYgKK+C5geC4ruC5iOC4geC4tuC5iuC4mQor4LmB4Liu4LiZ4LiU4LmM4Lia4Lit4LilCivguYHguK7guJ/guYDguJnguLXguKLguKEKK+C5geC4ruC4oQor4LmB4Liu4Lih4LmA4Lia4Lit4Lij4LmM4LmA4LiB4Lit4Lij4LmMCivguYHguK7guLAKK+C5guC4rgor4LmC4Liu4LiBCivguYLguK7guYDguJXguYfguKUKK+C5guC4ruC4peC5gOC4oeC4teC4ouC4oQor4LmC4Liu4LiwCivguYTguK7guYkKK+C5hOC4ruC5guC4geC4o+C4oeC4tOC5gOC4leC4reC4o+C5jAor4LmE4Liu4LiU4LmM4Lib4Liy4Lij4LmM4LiBCivguYTguK7guJTguKPguLIKK+C5hOC4ruC5guC4lOC4o+C4hOC4suC4o+C5jOC4muC4reC4mQor4LmE4Liu4LmC4LiU4Lij4LmA4LiI4LiZCivguYTguK7guYLguJTguKPguYDguIjguJnguIvguLHguKXguYTguJ/guJTguYwKK+C5hOC4ruC5guC4lOC4o+C5gOC4iOC4meC5gOC4nuC4reC4o+C5jOC4reC4reC4geC5hOC4i+C4lOC5jAor4LmE4Liu4LmC4LiU4Lij4Lih4Li04LmA4LiV4Lit4Lij4LmMCivguYTguK7guYTguJ8KK+C5hOC4ruC5guC4pQor4LmE4Liu4Liu4Li1CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdGhhaTYudWNzIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3RoYWk2LnVjcwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iYWIwNTQzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3RoYWk2LnVjcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9Db21wb3NpdGlvbkV4Y2x1c2lvbnMtMS50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9Db21wb3NpdGlvbkV4Y2x1c2lvbnMtMS50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWVhNDZhZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL0NvbXBvc2l0aW9uRXhjbHVzaW9ucy0xLnR4dApAQCAtMCwwICsxLDE0MyBAQAorIyBDb21wb3NpdGlvbiBFeGNsdXNpb25zCisjIFRoaXMgZmlsZSBsaXN0cyB0aGUgY2hhcmFjdGVycyBmcm9tIHRoZSBVVFIgIzE1IENvbXBvc2l0aW9uIEV4Y2x1c2lvbiBUYWJsZS4KKyMKKyMgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZQorIyBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjE1LyNQcmltYXJ5IEV4Y2x1c2lvbiBMaXN0IFRhYmxlCisKKyMgKDEpIFNjcmlwdCBTcGVjaWZpY3MKKyMgVGhpcyBsaXN0IG9mIGNoYXJhY3RlcnMgY2Fubm90IGJlIGRlcml2ZWQgZnJvbSB0aGUgVW5pY29kZURhdGEgZmlsZS4KKworMDk1OCAjIERFVkFOQUdBUkkgTEVUVEVSIFFBCiswOTU5ICMgREVWQU5BR0FSSSBMRVRURVIgS0hIQQorMDk1QSAjIERFVkFOQUdBUkkgTEVUVEVSIEdISEEKKzA5NUIgIyBERVZBTkFHQVJJIExFVFRFUiBaQQorMDk1QyAjIERFVkFOQUdBUkkgTEVUVEVSIEREREhBCiswOTVEICMgREVWQU5BR0FSSSBMRVRURVIgUkhBCiswOTVFICMgREVWQU5BR0FSSSBMRVRURVIgRkEKKzA5NUYgIyBERVZBTkFHQVJJIExFVFRFUiBZWUEKKzA5REMgIyBCRU5HQUxJIExFVFRFUiBSUkEKKzA5REQgIyBCRU5HQUxJIExFVFRFUiBSSEEKKzA5REYgIyBCRU5HQUxJIExFVFRFUiBZWUEKKzBBMzMgIyBHVVJNVUtISSBMRVRURVIgTExBCiswQTM2ICMgR1VSTVVLSEkgTEVUVEVSIFNIQQorMEE1OSAjIEdVUk1VS0hJIExFVFRFUiBLSEhBCiswQTVBICMgR1VSTVVLSEkgTEVUVEVSIEdISEEKKzBBNUIgIyBHVVJNVUtISSBMRVRURVIgWkEKKzBBNUUgIyBHVVJNVUtISSBMRVRURVIgRkEKKzBCNUMgIyBPUklZQSBMRVRURVIgUlJBCiswQjVEICMgT1JJWUEgTEVUVEVSIFJIQQorMEY0MyAjIFRJQkVUQU4gTEVUVEVSIEdIQQorMEY0RCAjIFRJQkVUQU4gTEVUVEVSIERESEEKKzBGNTIgIyBUSUJFVEFOIExFVFRFUiBESEEKKzBGNTcgIyBUSUJFVEFOIExFVFRFUiBCSEEKKzBGNUMgIyBUSUJFVEFOIExFVFRFUiBEWkhBCiswRjY5ICMgVElCRVRBTiBMRVRURVIgS1NTQQorMEY3NiAjIFRJQkVUQU4gVk9XRUwgU0lHTiBWT0NBTElDIFIKKzBGNzggIyBUSUJFVEFOIFZPV0VMIFNJR04gVk9DQUxJQyBMCiswRjkzICMgVElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEdIQQorMEY5RCAjIFRJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBEREhBCiswRkEyICMgVElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIERIQQorMEZBNyAjIFRJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBCSEEKKzBGQUMgIyBUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgRFpIQQorMEZCOSAjIFRJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBLU1NBCitGQjFGICMgSEVCUkVXIExJR0FUVVJFIFlJRERJU0ggWU9EIFlPRCBQQVRBSAorRkIyQSAjIEhFQlJFVyBMRVRURVIgU0hJTiBXSVRIIFNISU4gRE9UCitGQjJCICMgSEVCUkVXIExFVFRFUiBTSElOIFdJVEggU0lOIERPVAorRkIyQyAjIEhFQlJFVyBMRVRURVIgU0hJTiBXSVRIIERBR0VTSCBBTkQgU0hJTiBET1QKK0ZCMkQgIyBIRUJSRVcgTEVUVEVSIFNISU4gV0lUSCBEQUdFU0ggQU5EIFNJTiBET1QKK0ZCMkUgIyBIRUJSRVcgTEVUVEVSIEFMRUYgV0lUSCBQQVRBSAorRkIyRiAjIEhFQlJFVyBMRVRURVIgQUxFRiBXSVRIIFFBTUFUUworRkIzMCAjIEhFQlJFVyBMRVRURVIgQUxFRiBXSVRIIE1BUElRCitGQjMxICMgSEVCUkVXIExFVFRFUiBCRVQgV0lUSCBEQUdFU0gKK0ZCMzIgIyBIRUJSRVcgTEVUVEVSIEdJTUVMIFdJVEggREFHRVNICitGQjMzICMgSEVCUkVXIExFVFRFUiBEQUxFVCBXSVRIIERBR0VTSAorRkIzNCAjIEhFQlJFVyBMRVRURVIgSEUgV0lUSCBNQVBJUQorRkIzNSAjIEhFQlJFVyBMRVRURVIgVkFWIFdJVEggREFHRVNICitGQjM2ICMgSEVCUkVXIExFVFRFUiBaQVlJTiBXSVRIIERBR0VTSAorRkIzOCAjIEhFQlJFVyBMRVRURVIgVEVUIFdJVEggREFHRVNICitGQjM5ICMgSEVCUkVXIExFVFRFUiBZT0QgV0lUSCBEQUdFU0gKK0ZCM0EgIyBIRUJSRVcgTEVUVEVSIEZJTkFMIEtBRiBXSVRIIERBR0VTSAorRkIzQiAjIEhFQlJFVyBMRVRURVIgS0FGIFdJVEggREFHRVNICitGQjNDICMgSEVCUkVXIExFVFRFUiBMQU1FRCBXSVRIIERBR0VTSAorRkIzRSAjIEhFQlJFVyBMRVRURVIgTUVNIFdJVEggREFHRVNICitGQjQwICMgSEVCUkVXIExFVFRFUiBOVU4gV0lUSCBEQUdFU0gKK0ZCNDEgIyBIRUJSRVcgTEVUVEVSIFNBTUVLSCBXSVRIIERBR0VTSAorRkI0MyAjIEhFQlJFVyBMRVRURVIgRklOQUwgUEUgV0lUSCBEQUdFU0gKK0ZCNDQgIyBIRUJSRVcgTEVUVEVSIFBFIFdJVEggREFHRVNICitGQjQ2ICMgSEVCUkVXIExFVFRFUiBUU0FESSBXSVRIIERBR0VTSAorRkI0NyAjIEhFQlJFVyBMRVRURVIgUU9GIFdJVEggREFHRVNICitGQjQ4ICMgSEVCUkVXIExFVFRFUiBSRVNIIFdJVEggREFHRVNICitGQjQ5ICMgSEVCUkVXIExFVFRFUiBTSElOIFdJVEggREFHRVNICitGQjRBICMgSEVCUkVXIExFVFRFUiBUQVYgV0lUSCBEQUdFU0gKK0ZCNEIgIyBIRUJSRVcgTEVUVEVSIFZBViBXSVRIIEhPTEFNCitGQjRDICMgSEVCUkVXIExFVFRFUiBCRVQgV0lUSCBSQUZFCitGQjREICMgSEVCUkVXIExFVFRFUiBLQUYgV0lUSCBSQUZFCitGQjRFICMgSEVCUkVXIExFVFRFUiBQRSBXSVRIIFJBRkUKKworIyAoMikgUG9zdCBDb21wb3NpdGlvbiBWZXJzaW9uIGNoYXJhY3RlcnMKKyMgVGhlc2UgY2hhcmFjdGVycyBjYW5ub3QgYmUgZGVyaXZlZCBmcm9tIHRoZSBVbmljb2RlRGF0YSBmaWxlLgorIyAoVGhlcmUgYXJlIG5vIGNoYXJhY3RlcnMgaW4gdGhpcyBjYXRlZ29yeSBpbiB0aGlzIHZlcnNpb24gb2YgVW5pY29kZS4pCisKKyMgKDMpIFNpbmdsZXRvbiBEZWNvbXBvc2l0aW9ucworIyBUaGVzZSBjaGFyYWN0ZXJzIGNhbiBiZSBkZXJpdmVkIGZyb20gdGhlIFVuaWNvZGVEYXRhIGZpbGUKKyMgYnkgaW5jbHVkaW5nIGFsbCBjaGFyYWN0ZXJzIHdob3NlIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9uCisjIGNvbnNpc3RzIG9mIGEgc2luZ2xlIGNoYXJhY3Rlci4KKyMgVGhlc2UgY2hhcmFjdGVycyBhcmUgc2ltcGx5IHF1b3RlZCBoZXJlIGZvciByZWZlcmVuY2UuCisKKyMgMDM0MCBDT01CSU5JTkcgR1JBVkUgVE9ORSBNQVJLCisjIDAzNDEgQ09NQklOSU5HIEFDVVRFIFRPTkUgTUFSSworIyAwMzQzIENPTUJJTklORyBHUkVFSyBLT1JPTklTCisjIDAzNzQgR1JFRUsgTlVNRVJBTCBTSUdOCisjIDAzN0UgR1JFRUsgUVVFU1RJT04gTUFSSworIyAwMzg3IEdSRUVLIEFOTyBURUxFSUEKKyMgMUY3MSBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBPWElBCisjIDFGNzMgR1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT04gV0lUSCBPWElBCisjIDFGNzUgR1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIE9YSUEKKyMgMUY3NyBHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIE9YSUEKKyMgMUY3OSBHUkVFSyBTTUFMTCBMRVRURVIgT01JQ1JPTiBXSVRIIE9YSUEKKyMgMUY3QiBHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIE9YSUEKKyMgMUY3RCBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBPWElBCisjIDFGQkIgR1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBPWElBCisjIDFGQkUgR1JFRUsgUFJPU0dFR1JBTU1FTkkKKyMgMUZDOSBHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OIFdJVEggT1hJQQorIyAxRkNCIEdSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIE9YSUEKKyMgMUZEMyBHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERJQUxZVElLQSBBTkQgT1hJQQorIyAxRkRCIEdSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBPWElBCisjIDFGRTMgR1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBESUFMWVRJS0EgQU5EIE9YSUEKKyMgMUZFQiBHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIFdJVEggT1hJQQorIyAxRkVFIEdSRUVLIERJQUxZVElLQSBBTkQgT1hJQQorIyAxRkVGIEdSRUVLIFZBUklBCisjIDFGRjkgR1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTiBXSVRIIE9YSUEKKyMgMUZGQiBHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIE9YSUEKKyMgMUZGRCBHUkVFSyBPWElBCisjIDIwMDAgRU4gUVVBRAorIyAyMDAxIEVNIFFVQUQKKyMgMjEyNiBPSE0gU0lHTgorIyAyMTJBIEtFTFZJTiBTSUdOCisjIDIxMkIgQU5HU1RST00gU0lHTgorIyAyMzI5IExFRlQtUE9JTlRJTkcgQU5HTEUgQlJBQ0tFVAorIyAyMzJBIFJJR0hULVBPSU5USU5HIEFOR0xFIEJSQUNLRVQKKyMgRjkwMCBDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwMAorIy4uIEZBMEQgQ0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMEQKKyMgRkExMCBDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExMAorIyBGQTEyIENKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTEyCisjIEZBMTUgQ0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMTUKKyMuLiBGQTFFIENKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTFFCisjIEZBMjAgQ0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMjAKKyMgRkEyMiBDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyMgorIyBGQTI1IENKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTI1CisjIEZBMjYgQ0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMjYKKyMgRkEyQSBDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyQQorIy4uIEZBMkQgQ0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMkQKKworIyAoNCkgTm9uLVN0YXJ0ZXIgRGVjb21wb3NpdGlvbnMKKyMgVGhlc2UgY2hhcmFjdGVycyBjYW4gYmUgZGVyaXZlZCBmcm9tIHRoZSBVbmljb2RlRGF0YSBmaWxlCisjIGJ5IGluY2x1ZGluZyBhbGwgY2hhcmFjdGVycyB3aG9zZSBjYW5vbmljYWwgZGVjb21wb3NpdGlvbiBjb25zaXN0cworIyBvZiBhIHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMsIHRoZSBmaXJzdCBvZiB3aGljaCBoYXMgYSBjYW5vbmljYWwKKyMgY2xhc3Mgb2YgemVyby4KKyMgVGhlc2UgY2hhcmFjdGVycyBhcmUgc2ltcGx5IHF1b3RlZCBoZXJlIGZvciByZWZlcmVuY2UuCisKKyMgMDM0NCBDT01CSU5JTkcgR1JFRUsgRElBTFlUSUtBIFRPTk9TCisjIDBGNzMgVElCRVRBTiBWT1dFTCBTSUdOIElJCisjIDBGNzUgVElCRVRBTiBWT1dFTCBTSUdOIFVVCisjIDBGODEgVElCRVRBTiBWT1dFTCBTSUdOIFJFVkVSU0VEIElJCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9Db21wb3NpdGlvbkV4Y2x1c2lvbnMtMy50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9Db21wb3NpdGlvbkV4Y2x1c2lvbnMtMy50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDcxNzA0NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL0NvbXBvc2l0aW9uRXhjbHVzaW9ucy0zLnR4dApAQCAtMCwwICsxLDE2MyBAQAorIyBDb21wb3NpdGlvbkV4Y2x1c2lvbnMtMy50eHQKKyMKKyMgQ29tcG9zaXRpb24gRXhjbHVzaW9ucworIyBUaGlzIGZpbGUgbGlzdHMgdGhlIGNoYXJhY3RlcnMgZnJvbSB0aGUgVUFYICMxNSBDb21wb3NpdGlvbiBFeGNsdXNpb24gVGFibGUuCisjCisjIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUKKyMgaHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHIxNS8jUHJpbWFyeSBFeGNsdXNpb24gTGlzdCBUYWJsZQorCisjICgxKSBTY3JpcHQgU3BlY2lmaWNzCisjIFRoaXMgbGlzdCBvZiBjaGFyYWN0ZXJzIGNhbm5vdCBiZSBkZXJpdmVkIGZyb20gdGhlIFVuaWNvZGVEYXRhIGZpbGUuCisKKzA5NTggIyBERVZBTkFHQVJJIExFVFRFUiBRQQorMDk1OSAjIERFVkFOQUdBUkkgTEVUVEVSIEtISEEKKzA5NUEgIyBERVZBTkFHQVJJIExFVFRFUiBHSEhBCiswOTVCICMgREVWQU5BR0FSSSBMRVRURVIgWkEKKzA5NUMgIyBERVZBTkFHQVJJIExFVFRFUiBERERIQQorMDk1RCAjIERFVkFOQUdBUkkgTEVUVEVSIFJIQQorMDk1RSAjIERFVkFOQUdBUkkgTEVUVEVSIEZBCiswOTVGICMgREVWQU5BR0FSSSBMRVRURVIgWVlBCiswOURDICMgQkVOR0FMSSBMRVRURVIgUlJBCiswOUREICMgQkVOR0FMSSBMRVRURVIgUkhBCiswOURGICMgQkVOR0FMSSBMRVRURVIgWVlBCiswQTMzICMgR1VSTVVLSEkgTEVUVEVSIExMQQorMEEzNiAjIEdVUk1VS0hJIExFVFRFUiBTSEEKKzBBNTkgIyBHVVJNVUtISSBMRVRURVIgS0hIQQorMEE1QSAjIEdVUk1VS0hJIExFVFRFUiBHSEhBCiswQTVCICMgR1VSTVVLSEkgTEVUVEVSIFpBCiswQTVFICMgR1VSTVVLSEkgTEVUVEVSIEZBCiswQjVDICMgT1JJWUEgTEVUVEVSIFJSQQorMEI1RCAjIE9SSVlBIExFVFRFUiBSSEEKKzBGNDMgIyBUSUJFVEFOIExFVFRFUiBHSEEKKzBGNEQgIyBUSUJFVEFOIExFVFRFUiBEREhBCiswRjUyICMgVElCRVRBTiBMRVRURVIgREhBCiswRjU3ICMgVElCRVRBTiBMRVRURVIgQkhBCiswRjVDICMgVElCRVRBTiBMRVRURVIgRFpIQQorMEY2OSAjIFRJQkVUQU4gTEVUVEVSIEtTU0EKKzBGNzYgIyBUSUJFVEFOIFZPV0VMIFNJR04gVk9DQUxJQyBSCiswRjc4ICMgVElCRVRBTiBWT1dFTCBTSUdOIFZPQ0FMSUMgTAorMEY5MyAjIFRJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBHSEEKKzBGOUQgIyBUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgRERIQQorMEZBMiAjIFRJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBESEEKKzBGQTcgIyBUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgQkhBCiswRkFDICMgVElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIERaSEEKKzBGQjkgIyBUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgS1NTQQorRkIxRCAjIEhFQlJFVyBMRVRURVIgWU9EIFdJVEggSElSSVEKK0ZCMUYgIyBIRUJSRVcgTElHQVRVUkUgWUlERElTSCBZT0QgWU9EIFBBVEFICitGQjJBICMgSEVCUkVXIExFVFRFUiBTSElOIFdJVEggU0hJTiBET1QKK0ZCMkIgIyBIRUJSRVcgTEVUVEVSIFNISU4gV0lUSCBTSU4gRE9UCitGQjJDICMgSEVCUkVXIExFVFRFUiBTSElOIFdJVEggREFHRVNIIEFORCBTSElOIERPVAorRkIyRCAjIEhFQlJFVyBMRVRURVIgU0hJTiBXSVRIIERBR0VTSCBBTkQgU0lOIERPVAorRkIyRSAjIEhFQlJFVyBMRVRURVIgQUxFRiBXSVRIIFBBVEFICitGQjJGICMgSEVCUkVXIExFVFRFUiBBTEVGIFdJVEggUUFNQVRTCitGQjMwICMgSEVCUkVXIExFVFRFUiBBTEVGIFdJVEggTUFQSVEKK0ZCMzEgIyBIRUJSRVcgTEVUVEVSIEJFVCBXSVRIIERBR0VTSAorRkIzMiAjIEhFQlJFVyBMRVRURVIgR0lNRUwgV0lUSCBEQUdFU0gKK0ZCMzMgIyBIRUJSRVcgTEVUVEVSIERBTEVUIFdJVEggREFHRVNICitGQjM0ICMgSEVCUkVXIExFVFRFUiBIRSBXSVRIIE1BUElRCitGQjM1ICMgSEVCUkVXIExFVFRFUiBWQVYgV0lUSCBEQUdFU0gKK0ZCMzYgIyBIRUJSRVcgTEVUVEVSIFpBWUlOIFdJVEggREFHRVNICitGQjM4ICMgSEVCUkVXIExFVFRFUiBURVQgV0lUSCBEQUdFU0gKK0ZCMzkgIyBIRUJSRVcgTEVUVEVSIFlPRCBXSVRIIERBR0VTSAorRkIzQSAjIEhFQlJFVyBMRVRURVIgRklOQUwgS0FGIFdJVEggREFHRVNICitGQjNCICMgSEVCUkVXIExFVFRFUiBLQUYgV0lUSCBEQUdFU0gKK0ZCM0MgIyBIRUJSRVcgTEVUVEVSIExBTUVEIFdJVEggREFHRVNICitGQjNFICMgSEVCUkVXIExFVFRFUiBNRU0gV0lUSCBEQUdFU0gKK0ZCNDAgIyBIRUJSRVcgTEVUVEVSIE5VTiBXSVRIIERBR0VTSAorRkI0MSAjIEhFQlJFVyBMRVRURVIgU0FNRUtIIFdJVEggREFHRVNICitGQjQzICMgSEVCUkVXIExFVFRFUiBGSU5BTCBQRSBXSVRIIERBR0VTSAorRkI0NCAjIEhFQlJFVyBMRVRURVIgUEUgV0lUSCBEQUdFU0gKK0ZCNDYgIyBIRUJSRVcgTEVUVEVSIFRTQURJIFdJVEggREFHRVNICitGQjQ3ICMgSEVCUkVXIExFVFRFUiBRT0YgV0lUSCBEQUdFU0gKK0ZCNDggIyBIRUJSRVcgTEVUVEVSIFJFU0ggV0lUSCBEQUdFU0gKK0ZCNDkgIyBIRUJSRVcgTEVUVEVSIFNISU4gV0lUSCBEQUdFU0gKK0ZCNEEgIyBIRUJSRVcgTEVUVEVSIFRBViBXSVRIIERBR0VTSAorRkI0QiAjIEhFQlJFVyBMRVRURVIgVkFWIFdJVEggSE9MQU0KK0ZCNEMgIyBIRUJSRVcgTEVUVEVSIEJFVCBXSVRIIFJBRkUKK0ZCNEQgIyBIRUJSRVcgTEVUVEVSIEtBRiBXSVRIIFJBRkUKK0ZCNEUgIyBIRUJSRVcgTEVUVEVSIFBFIFdJVEggUkFGRQorCisjICgyKSBQb3N0IENvbXBvc2l0aW9uIFZlcnNpb24gcHJlY29tcG9zZWQgY2hhcmFjdGVycworIyBUaGVzZSBjaGFyYWN0ZXJzIGNhbm5vdCBiZSBkZXJpdmVkIGZyb20gdGhlIFVuaWNvZGVEYXRhIGZpbGUuCisKKzFEMTVFICMgTVVTSUNBTCBTWU1CT0wgSEFMRiBOT1RFCisxRDE1RiAjIE1VU0lDQUwgU1lNQk9MIFFVQVJURVIgTk9URQorMUQxNjAgIyBNVVNJQ0FMIFNZTUJPTCBFSUdIVEggTk9URQorMUQxNjEgIyBNVVNJQ0FMIFNZTUJPTCBTSVhURUVOVEggTk9URQorMUQxNjIgIyBNVVNJQ0FMIFNZTUJPTCBUSElSVFktU0VDT05EIE5PVEUKKzFEMTYzICMgTVVTSUNBTCBTWU1CT0wgU0lYVFktRk9VUlRIIE5PVEUKKzFEMTY0ICMgTVVTSUNBTCBTWU1CT0wgT05FIEhVTkRSRUQgVFdFTlRZLUVJR0hUSCBOT1RFCisxRDFCQiAjIE1VU0lDQUwgU1lNQk9MIE1JTklNQQorMUQxQkMgIyBNVVNJQ0FMIFNZTUJPTCBNSU5JTUEgQkxBQ0sKKzFEMUJEICMgTVVTSUNBTCBTWU1CT0wgU0VNSU1JTklNQSBXSElURQorMUQxQkUgIyBNVVNJQ0FMIFNZTUJPTCBTRU1JTUlOSU1BIEJMQUNLCisxRDFCRiAjIE1VU0lDQUwgU1lNQk9MIEZVU0EgV0hJVEUKKzFEMUMwICMgTVVTSUNBTCBTWU1CT0wgRlVTQSBCTEFDSworCisjICgzKSBTaW5nbGV0b24gRGVjb21wb3NpdGlvbnMKKyMgVGhlc2UgY2hhcmFjdGVycyBjYW4gYmUgZGVyaXZlZCBmcm9tIHRoZSBVbmljb2RlRGF0YSBmaWxlCisjIGJ5IGluY2x1ZGluZyBhbGwgY2hhcmFjdGVycyB3aG9zZSBjYW5vbmljYWwgZGVjb21wb3NpdGlvbgorIyBjb25zaXN0cyBvZiBhIHNpbmdsZSBjaGFyYWN0ZXIuCisjIFRoZXNlIGNoYXJhY3RlcnMgYXJlIHNpbXBseSBxdW90ZWQgaGVyZSBmb3IgcmVmZXJlbmNlLgorCisjIDAzNDAgQ09NQklOSU5HIEdSQVZFIFRPTkUgTUFSSworIyAwMzQxIENPTUJJTklORyBBQ1VURSBUT05FIE1BUksKKyMgMDM0MyBDT01CSU5JTkcgR1JFRUsgS09ST05JUworIyAwMzc0IEdSRUVLIE5VTUVSQUwgU0lHTgorIyAwMzdFIEdSRUVLIFFVRVNUSU9OIE1BUksKKyMgMDM4NyBHUkVFSyBBTk8gVEVMRUlBCisjIDFGNzEgR1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggT1hJQQorIyAxRjczIEdSRUVLIFNNQUxMIExFVFRFUiBFUFNJTE9OIFdJVEggT1hJQQorIyAxRjc1IEdSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBPWElBCisjIDFGNzcgR1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBPWElBCisjIDFGNzkgR1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gV0lUSCBPWElBCisjIDFGN0IgR1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBPWElBCisjIDFGN0QgR1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggT1hJQQorIyAxRkJCIEdSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggT1hJQQorIyAxRkJFIEdSRUVLIFBST1NHRUdSQU1NRU5JCisjIDFGQzkgR1JFRUsgQ0FQSVRBTCBMRVRURVIgRVBTSUxPTiBXSVRIIE9YSUEKKyMgMUZDQiBHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBPWElBCisjIDFGRDMgR1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBESUFMWVRJS0EgQU5EIE9YSUEKKyMgMUZEQiBHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggT1hJQQorIyAxRkUzIEdSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggRElBTFlUSUtBIEFORCBPWElBCisjIDFGRUIgR1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBXSVRIIE9YSUEKKyMgMUZFRSBHUkVFSyBESUFMWVRJS0EgQU5EIE9YSUEKKyMgMUZFRiBHUkVFSyBWQVJJQQorIyAxRkY5IEdSRUVLIENBUElUQUwgTEVUVEVSIE9NSUNST04gV0lUSCBPWElBCisjIDFGRkIgR1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBPWElBCisjIDFGRkQgR1JFRUsgT1hJQQorIyAyMDAwIEVOIFFVQUQKKyMgMjAwMSBFTSBRVUFECisjIDIxMjYgT0hNIFNJR04KKyMgMjEyQSBLRUxWSU4gU0lHTgorIyAyMTJCIEFOR1NUUk9NIFNJR04KKyMgMjMyOSBMRUZULVBPSU5USU5HIEFOR0xFIEJSQUNLRVQKKyMgMjMyQSBSSUdIVC1QT0lOVElORyBBTkdMRSBCUkFDS0VUCisjIEY5MDAgQ0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MDAKKyMuLiBGQTBEIENKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTBECisjIEZBMTAgQ0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMTAKKyMgRkExMiBDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExMgorIyBGQTE1IENKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTE1CisjLi4gRkExRSBDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExRQorIyBGQTIwIENKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTIwCisjIEZBMjIgQ0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMjIKKyMgRkEyNSBDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyNQorIyBGQTI2IENKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTI2CisjIEZBMkEgQ0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMkEKKyMuLiBGQTJEIENKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTJECisjIDJGODAwIENKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgwMAorIy4uIDJGQTFEIENKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkExRAorCisjICg0KSBOb24tU3RhcnRlciBEZWNvbXBvc2l0aW9ucworIyBUaGVzZSBjaGFyYWN0ZXJzIGNhbiBiZSBkZXJpdmVkIGZyb20gdGhlIFVuaWNvZGVEYXRhIGZpbGUKKyMgYnkgaW5jbHVkaW5nIGFsbCBjaGFyYWN0ZXJzIHdob3NlIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9uIGNvbnNpc3RzCisjIG9mIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycywgdGhlIGZpcnN0IG9mIHdoaWNoIGhhcyBhIG5vbi16ZXJvCisjIGNvbWJpbmluZyBjbGFzcy4KKyMgVGhlc2UgY2hhcmFjdGVycyBhcmUgc2ltcGx5IHF1b3RlZCBoZXJlIGZvciByZWZlcmVuY2UuCisKKyMgMDM0NCBDT01CSU5JTkcgR1JFRUsgRElBTFlUSUtBIFRPTk9TCisjIDBGNzMgVElCRVRBTiBWT1dFTCBTSUdOIElJCisjIDBGNzUgVElCRVRBTiBWT1dFTCBTSUdOIFVVCisjIDBGODEgVElCRVRBTiBWT1dFTCBTSUdOIFJFVkVSU0VEIElJCisKKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvQ29tcG9zaXRpb25FeGNsdXNpb25zLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL0NvbXBvc2l0aW9uRXhjbHVzaW9ucy50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDcxNzA0NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL0NvbXBvc2l0aW9uRXhjbHVzaW9ucy50eHQKQEAgLTAsMCArMSwxNjMgQEAKKyMgQ29tcG9zaXRpb25FeGNsdXNpb25zLTMudHh0CisjCisjIENvbXBvc2l0aW9uIEV4Y2x1c2lvbnMKKyMgVGhpcyBmaWxlIGxpc3RzIHRoZSBjaGFyYWN0ZXJzIGZyb20gdGhlIFVBWCAjMTUgQ29tcG9zaXRpb24gRXhjbHVzaW9uIFRhYmxlLgorIworIyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlCisjIGh0dHA6Ly93d3cudW5pY29kZS5vcmcvdW5pY29kZS9yZXBvcnRzL3RyMTUvI1ByaW1hcnkgRXhjbHVzaW9uIExpc3QgVGFibGUKKworIyAoMSkgU2NyaXB0IFNwZWNpZmljcworIyBUaGlzIGxpc3Qgb2YgY2hhcmFjdGVycyBjYW5ub3QgYmUgZGVyaXZlZCBmcm9tIHRoZSBVbmljb2RlRGF0YSBmaWxlLgorCiswOTU4ICMgREVWQU5BR0FSSSBMRVRURVIgUUEKKzA5NTkgIyBERVZBTkFHQVJJIExFVFRFUiBLSEhBCiswOTVBICMgREVWQU5BR0FSSSBMRVRURVIgR0hIQQorMDk1QiAjIERFVkFOQUdBUkkgTEVUVEVSIFpBCiswOTVDICMgREVWQU5BR0FSSSBMRVRURVIgRERESEEKKzA5NUQgIyBERVZBTkFHQVJJIExFVFRFUiBSSEEKKzA5NUUgIyBERVZBTkFHQVJJIExFVFRFUiBGQQorMDk1RiAjIERFVkFOQUdBUkkgTEVUVEVSIFlZQQorMDlEQyAjIEJFTkdBTEkgTEVUVEVSIFJSQQorMDlERCAjIEJFTkdBTEkgTEVUVEVSIFJIQQorMDlERiAjIEJFTkdBTEkgTEVUVEVSIFlZQQorMEEzMyAjIEdVUk1VS0hJIExFVFRFUiBMTEEKKzBBMzYgIyBHVVJNVUtISSBMRVRURVIgU0hBCiswQTU5ICMgR1VSTVVLSEkgTEVUVEVSIEtISEEKKzBBNUEgIyBHVVJNVUtISSBMRVRURVIgR0hIQQorMEE1QiAjIEdVUk1VS0hJIExFVFRFUiBaQQorMEE1RSAjIEdVUk1VS0hJIExFVFRFUiBGQQorMEI1QyAjIE9SSVlBIExFVFRFUiBSUkEKKzBCNUQgIyBPUklZQSBMRVRURVIgUkhBCiswRjQzICMgVElCRVRBTiBMRVRURVIgR0hBCiswRjREICMgVElCRVRBTiBMRVRURVIgRERIQQorMEY1MiAjIFRJQkVUQU4gTEVUVEVSIERIQQorMEY1NyAjIFRJQkVUQU4gTEVUVEVSIEJIQQorMEY1QyAjIFRJQkVUQU4gTEVUVEVSIERaSEEKKzBGNjkgIyBUSUJFVEFOIExFVFRFUiBLU1NBCiswRjc2ICMgVElCRVRBTiBWT1dFTCBTSUdOIFZPQ0FMSUMgUgorMEY3OCAjIFRJQkVUQU4gVk9XRUwgU0lHTiBWT0NBTElDIEwKKzBGOTMgIyBUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgR0hBCiswRjlEICMgVElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIERESEEKKzBGQTIgIyBUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgREhBCiswRkE3ICMgVElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEJIQQorMEZBQyAjIFRJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBEWkhBCiswRkI5ICMgVElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEtTU0EKK0ZCMUQgIyBIRUJSRVcgTEVUVEVSIFlPRCBXSVRIIEhJUklRCitGQjFGICMgSEVCUkVXIExJR0FUVVJFIFlJRERJU0ggWU9EIFlPRCBQQVRBSAorRkIyQSAjIEhFQlJFVyBMRVRURVIgU0hJTiBXSVRIIFNISU4gRE9UCitGQjJCICMgSEVCUkVXIExFVFRFUiBTSElOIFdJVEggU0lOIERPVAorRkIyQyAjIEhFQlJFVyBMRVRURVIgU0hJTiBXSVRIIERBR0VTSCBBTkQgU0hJTiBET1QKK0ZCMkQgIyBIRUJSRVcgTEVUVEVSIFNISU4gV0lUSCBEQUdFU0ggQU5EIFNJTiBET1QKK0ZCMkUgIyBIRUJSRVcgTEVUVEVSIEFMRUYgV0lUSCBQQVRBSAorRkIyRiAjIEhFQlJFVyBMRVRURVIgQUxFRiBXSVRIIFFBTUFUUworRkIzMCAjIEhFQlJFVyBMRVRURVIgQUxFRiBXSVRIIE1BUElRCitGQjMxICMgSEVCUkVXIExFVFRFUiBCRVQgV0lUSCBEQUdFU0gKK0ZCMzIgIyBIRUJSRVcgTEVUVEVSIEdJTUVMIFdJVEggREFHRVNICitGQjMzICMgSEVCUkVXIExFVFRFUiBEQUxFVCBXSVRIIERBR0VTSAorRkIzNCAjIEhFQlJFVyBMRVRURVIgSEUgV0lUSCBNQVBJUQorRkIzNSAjIEhFQlJFVyBMRVRURVIgVkFWIFdJVEggREFHRVNICitGQjM2ICMgSEVCUkVXIExFVFRFUiBaQVlJTiBXSVRIIERBR0VTSAorRkIzOCAjIEhFQlJFVyBMRVRURVIgVEVUIFdJVEggREFHRVNICitGQjM5ICMgSEVCUkVXIExFVFRFUiBZT0QgV0lUSCBEQUdFU0gKK0ZCM0EgIyBIRUJSRVcgTEVUVEVSIEZJTkFMIEtBRiBXSVRIIERBR0VTSAorRkIzQiAjIEhFQlJFVyBMRVRURVIgS0FGIFdJVEggREFHRVNICitGQjNDICMgSEVCUkVXIExFVFRFUiBMQU1FRCBXSVRIIERBR0VTSAorRkIzRSAjIEhFQlJFVyBMRVRURVIgTUVNIFdJVEggREFHRVNICitGQjQwICMgSEVCUkVXIExFVFRFUiBOVU4gV0lUSCBEQUdFU0gKK0ZCNDEgIyBIRUJSRVcgTEVUVEVSIFNBTUVLSCBXSVRIIERBR0VTSAorRkI0MyAjIEhFQlJFVyBMRVRURVIgRklOQUwgUEUgV0lUSCBEQUdFU0gKK0ZCNDQgIyBIRUJSRVcgTEVUVEVSIFBFIFdJVEggREFHRVNICitGQjQ2ICMgSEVCUkVXIExFVFRFUiBUU0FESSBXSVRIIERBR0VTSAorRkI0NyAjIEhFQlJFVyBMRVRURVIgUU9GIFdJVEggREFHRVNICitGQjQ4ICMgSEVCUkVXIExFVFRFUiBSRVNIIFdJVEggREFHRVNICitGQjQ5ICMgSEVCUkVXIExFVFRFUiBTSElOIFdJVEggREFHRVNICitGQjRBICMgSEVCUkVXIExFVFRFUiBUQVYgV0lUSCBEQUdFU0gKK0ZCNEIgIyBIRUJSRVcgTEVUVEVSIFZBViBXSVRIIEhPTEFNCitGQjRDICMgSEVCUkVXIExFVFRFUiBCRVQgV0lUSCBSQUZFCitGQjREICMgSEVCUkVXIExFVFRFUiBLQUYgV0lUSCBSQUZFCitGQjRFICMgSEVCUkVXIExFVFRFUiBQRSBXSVRIIFJBRkUKKworIyAoMikgUG9zdCBDb21wb3NpdGlvbiBWZXJzaW9uIHByZWNvbXBvc2VkIGNoYXJhY3RlcnMKKyMgVGhlc2UgY2hhcmFjdGVycyBjYW5ub3QgYmUgZGVyaXZlZCBmcm9tIHRoZSBVbmljb2RlRGF0YSBmaWxlLgorCisxRDE1RSAjIE1VU0lDQUwgU1lNQk9MIEhBTEYgTk9URQorMUQxNUYgIyBNVVNJQ0FMIFNZTUJPTCBRVUFSVEVSIE5PVEUKKzFEMTYwICMgTVVTSUNBTCBTWU1CT0wgRUlHSFRIIE5PVEUKKzFEMTYxICMgTVVTSUNBTCBTWU1CT0wgU0lYVEVFTlRIIE5PVEUKKzFEMTYyICMgTVVTSUNBTCBTWU1CT0wgVEhJUlRZLVNFQ09ORCBOT1RFCisxRDE2MyAjIE1VU0lDQUwgU1lNQk9MIFNJWFRZLUZPVVJUSCBOT1RFCisxRDE2NCAjIE1VU0lDQUwgU1lNQk9MIE9ORSBIVU5EUkVEIFRXRU5UWS1FSUdIVEggTk9URQorMUQxQkIgIyBNVVNJQ0FMIFNZTUJPTCBNSU5JTUEKKzFEMUJDICMgTVVTSUNBTCBTWU1CT0wgTUlOSU1BIEJMQUNLCisxRDFCRCAjIE1VU0lDQUwgU1lNQk9MIFNFTUlNSU5JTUEgV0hJVEUKKzFEMUJFICMgTVVTSUNBTCBTWU1CT0wgU0VNSU1JTklNQSBCTEFDSworMUQxQkYgIyBNVVNJQ0FMIFNZTUJPTCBGVVNBIFdISVRFCisxRDFDMCAjIE1VU0lDQUwgU1lNQk9MIEZVU0EgQkxBQ0sKKworIyAoMykgU2luZ2xldG9uIERlY29tcG9zaXRpb25zCisjIFRoZXNlIGNoYXJhY3RlcnMgY2FuIGJlIGRlcml2ZWQgZnJvbSB0aGUgVW5pY29kZURhdGEgZmlsZQorIyBieSBpbmNsdWRpbmcgYWxsIGNoYXJhY3RlcnMgd2hvc2UgY2Fub25pY2FsIGRlY29tcG9zaXRpb24KKyMgY29uc2lzdHMgb2YgYSBzaW5nbGUgY2hhcmFjdGVyLgorIyBUaGVzZSBjaGFyYWN0ZXJzIGFyZSBzaW1wbHkgcXVvdGVkIGhlcmUgZm9yIHJlZmVyZW5jZS4KKworIyAwMzQwIENPTUJJTklORyBHUkFWRSBUT05FIE1BUksKKyMgMDM0MSBDT01CSU5JTkcgQUNVVEUgVE9ORSBNQVJLCisjIDAzNDMgQ09NQklOSU5HIEdSRUVLIEtPUk9OSVMKKyMgMDM3NCBHUkVFSyBOVU1FUkFMIFNJR04KKyMgMDM3RSBHUkVFSyBRVUVTVElPTiBNQVJLCisjIDAzODcgR1JFRUsgQU5PIFRFTEVJQQorIyAxRjcxIEdSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIE9YSUEKKyMgMUY3MyBHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTiBXSVRIIE9YSUEKKyMgMUY3NSBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggT1hJQQorIyAxRjc3IEdSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggT1hJQQorIyAxRjc5IEdSRUVLIFNNQUxMIExFVFRFUiBPTUlDUk9OIFdJVEggT1hJQQorIyAxRjdCIEdSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggT1hJQQorIyAxRjdEIEdSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIE9YSUEKKyMgMUZCQiBHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIE9YSUEKKyMgMUZCRSBHUkVFSyBQUk9TR0VHUkFNTUVOSQorIyAxRkM5IEdSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gV0lUSCBPWElBCisjIDFGQ0IgR1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggT1hJQQorIyAxRkQzIEdSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggRElBTFlUSUtBIEFORCBPWElBCisjIDFGREIgR1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIE9YSUEKKyMgMUZFMyBHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIERJQUxZVElLQSBBTkQgT1hJQQorIyAxRkVCIEdSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gV0lUSCBPWElBCisjIDFGRUUgR1JFRUsgRElBTFlUSUtBIEFORCBPWElBCisjIDFGRUYgR1JFRUsgVkFSSUEKKyMgMUZGOSBHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OIFdJVEggT1hJQQorIyAxRkZCIEdSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggT1hJQQorIyAxRkZEIEdSRUVLIE9YSUEKKyMgMjAwMCBFTiBRVUFECisjIDIwMDEgRU0gUVVBRAorIyAyMTI2IE9ITSBTSUdOCisjIDIxMkEgS0VMVklOIFNJR04KKyMgMjEyQiBBTkdTVFJPTSBTSUdOCisjIDIzMjkgTEVGVC1QT0lOVElORyBBTkdMRSBCUkFDS0VUCisjIDIzMkEgUklHSFQtUE9JTlRJTkcgQU5HTEUgQlJBQ0tFVAorIyBGOTAwIENKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTAwCisjLi4gRkEwRCBDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwRAorIyBGQTEwIENKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTEwCisjIEZBMTIgQ0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMTIKKyMgRkExNSBDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExNQorIy4uIEZBMUUgQ0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMUUKKyMgRkEyMCBDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyMAorIyBGQTIyIENKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTIyCisjIEZBMjUgQ0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMjUKKyMgRkEyNiBDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyNgorIyBGQTJBIENKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTJBCisjLi4gRkEyRCBDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyRAorIyAyRjgwMCBDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MDAKKyMuLiAyRkExRCBDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMUQKKworIyAoNCkgTm9uLVN0YXJ0ZXIgRGVjb21wb3NpdGlvbnMKKyMgVGhlc2UgY2hhcmFjdGVycyBjYW4gYmUgZGVyaXZlZCBmcm9tIHRoZSBVbmljb2RlRGF0YSBmaWxlCisjIGJ5IGluY2x1ZGluZyBhbGwgY2hhcmFjdGVycyB3aG9zZSBjYW5vbmljYWwgZGVjb21wb3NpdGlvbiBjb25zaXN0cworIyBvZiBhIHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMsIHRoZSBmaXJzdCBvZiB3aGljaCBoYXMgYSBub24temVybworIyBjb21iaW5pbmcgY2xhc3MuCisjIFRoZXNlIGNoYXJhY3RlcnMgYXJlIHNpbXBseSBxdW90ZWQgaGVyZSBmb3IgcmVmZXJlbmNlLgorCisjIDAzNDQgQ09NQklOSU5HIEdSRUVLIERJQUxZVElLQSBUT05PUworIyAwRjczIFRJQkVUQU4gVk9XRUwgU0lHTiBJSQorIyAwRjc1IFRJQkVUQU4gVk9XRUwgU0lHTiBVVQorIyAwRjgxIFRJQkVUQU4gVk9XRUwgU0lHTiBSRVZFUlNFRCBJSQorCisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL05vcm1hbGl6YXRpb25UZXN0LnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL05vcm1hbGl6YXRpb25UZXN0LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNGRlYzRlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvTm9ybWFsaXphdGlvblRlc3QudHh0CkBAIC0wLDAgKzEsMTcwMzUgQEAKKyMgTm9ybWFsaXphdGlvblRlc3QtMy4yLjAudHh0CisjIERhdGU6IDIwMDItMDMtMTksMjM6MzE6MTggR01UIFtNRF0KKyMKKyMgTm9ybWFsaXphdGlvbiBUZXN0IFN1aXRlCisjIEZvcm1hdDoKKyMKKyMgICBDb2x1bW5zIChjMSwgYzIsLi4uKSBhcmUgc2VwYXJhdGVkIGJ5IHNlbWljb2xvbnMKKyMgICBDb21tZW50cyBhcmUgaW5kaWNhdGVkIHdpdGggaGFzaCBtYXJrcworIworIyBDT05GT1JNQU5DRToKKyMgMS4gVGhlIGZvbGxvd2luZyBpbnZhcmlhbnRzIG11c3QgYmUgdHJ1ZSBmb3IgYWxsIGNvbmZvcm1hbnQgaW1wbGVtZW50YXRpb25zCisjCisjICAgIE5GQworIyAgICAgIGMyID09ICBORkMoYzEpID09ICBORkMoYzIpID09ICBORkMoYzMpCisjICAgICAgYzQgPT0gIE5GQyhjNCkgPT0gIE5GQyhjNSkKKyMKKyMgICAgTkZECisjICAgICAgYzMgPT0gIE5GRChjMSkgPT0gIE5GRChjMikgPT0gIE5GRChjMykKKyMgICAgICBjNSA9PSAgTkZEKGM0KSA9PSAgTkZEKGM1KQorIworIyAgICBORktDCisjICAgICAgYzQgPT0gTkZLQyhjMSkgPT0gTkZLQyhjMikgPT0gTkZLQyhjMykgPT0gTkZLQyhjNCkgPT0gTkZLQyhjNSkKKyMKKyMgICAgTkZLRAorIyAgICAgIGM1ID09IE5GS0QoYzEpID09IE5GS0QoYzIpID09IE5GS0QoYzMpID09IE5GS0QoYzQpID09IE5GS0QoYzUpCisjCisjIDIuIEZvciBldmVyeSBhc3NpZ25lZCBVbmljb2RlIDMuMS4wIGNvZGUgcG9pbnQgWCB0aGF0IGlzIG5vdCBzcGVjaWZpY2FsbHkKKyMgICAgbGlzdGVkIGluIFBhcnQgMSwgdGhlIGZvbGxvd2luZyBpbnZhcmlhbnRzIG11c3QgYmUgdHJ1ZSBmb3IgYWxsIGNvbmZvcm1hbnQKKyMgICAgaW1wbGVtZW50YXRpb25zOgorIworIyAgICAgIFggPT0gTkZDKFgpID09IE5GRChYKSA9PSBORktDKFgpID09IE5GS0QoWCkKKyMKK0BQYXJ0MCAjIFNwZWNpZmljIGNhc2VzCisjCisxRTBBOzFFMEE7MDA0NCAwMzA3OzFFMEE7MDA0NCAwMzA3OworMUUwQzsxRTBDOzAwNDQgMDMyMzsxRTBDOzAwNDQgMDMyMzsKKzFFMEEgMDMyMzsxRTBDIDAzMDc7MDA0NCAwMzIzIDAzMDc7MUUwQyAwMzA3OzAwNDQgMDMyMyAwMzA3OworMUUwQyAwMzA3OzFFMEMgMDMwNzswMDQ0IDAzMjMgMDMwNzsxRTBDIDAzMDc7MDA0NCAwMzIzIDAzMDc7CiswMDQ0IDAzMDcgMDMyMzsxRTBDIDAzMDc7MDA0NCAwMzIzIDAzMDc7MUUwQyAwMzA3OzAwNDQgMDMyMyAwMzA3OworMDA0NCAwMzIzIDAzMDc7MUUwQyAwMzA3OzAwNDQgMDMyMyAwMzA3OzFFMEMgMDMwNzswMDQ0IDAzMjMgMDMwNzsKKzFFMEEgMDMxQjsxRTBBIDAzMUI7MDA0NCAwMzFCIDAzMDc7MUUwQSAwMzFCOzAwNDQgMDMxQiAwMzA3OworMUUwQyAwMzFCOzFFMEMgMDMxQjswMDQ0IDAzMUIgMDMyMzsxRTBDIDAzMUI7MDA0NCAwMzFCIDAzMjM7CisxRTBBIDAzMUIgMDMyMzsxRTBDIDAzMUIgMDMwNzswMDQ0IDAzMUIgMDMyMyAwMzA3OzFFMEMgMDMxQiAwMzA3OzAwNDQgMDMxQiAwMzIzIDAzMDc7CisxRTBDIDAzMUIgMDMwNzsxRTBDIDAzMUIgMDMwNzswMDQ0IDAzMUIgMDMyMyAwMzA3OzFFMEMgMDMxQiAwMzA3OzAwNDQgMDMxQiAwMzIzIDAzMDc7CiswMDQ0IDAzMUIgMDMwNyAwMzIzOzFFMEMgMDMxQiAwMzA3OzAwNDQgMDMxQiAwMzIzIDAzMDc7MUUwQyAwMzFCIDAzMDc7MDA0NCAwMzFCIDAzMjMgMDMwNzsKKzAwNDQgMDMxQiAwMzIzIDAzMDc7MUUwQyAwMzFCIDAzMDc7MDA0NCAwMzFCIDAzMjMgMDMwNzsxRTBDIDAzMUIgMDMwNzswMDQ0IDAzMUIgMDMyMyAwMzA3OworMDBDODswMEM4OzAwNDUgMDMwMDswMEM4OzAwNDUgMDMwMDsKKzAxMTI7MDExMjswMDQ1IDAzMDQ7MDExMjswMDQ1IDAzMDQ7CiswMDQ1IDAzMDA7MDBDODswMDQ1IDAzMDA7MDBDODswMDQ1IDAzMDA7CiswMDQ1IDAzMDQ7MDExMjswMDQ1IDAzMDQ7MDExMjswMDQ1IDAzMDQ7CisxRTE0OzFFMTQ7MDA0NSAwMzA0IDAzMDA7MUUxNDswMDQ1IDAzMDQgMDMwMDsKKzAxMTIgMDMwMDsxRTE0OzAwNDUgMDMwNCAwMzAwOzFFMTQ7MDA0NSAwMzA0IDAzMDA7CisxRTE0IDAzMDQ7MUUxNCAwMzA0OzAwNDUgMDMwNCAwMzAwIDAzMDQ7MUUxNCAwMzA0OzAwNDUgMDMwNCAwMzAwIDAzMDQ7CiswMDQ1IDAzMDQgMDMwMDsxRTE0OzAwNDUgMDMwNCAwMzAwOzFFMTQ7MDA0NSAwMzA0IDAzMDA7CiswMDQ1IDAzMDAgMDMwNDswMEM4IDAzMDQ7MDA0NSAwMzAwIDAzMDQ7MDBDOCAwMzA0OzAwNDUgMDMwMCAwMzA0OworMDVCOCAwNUI5IDA1QjEgMDU5MSAwNUMzIDA1QjAgMDVBQyAwNTlGOzA1QjEgMDVCOCAwNUI5IDA1OTEgMDVDMyAwNUIwIDA1QUMgMDU5RjswNUIxIDA1QjggMDVCOSAwNTkxIDA1QzMgMDVCMCAwNUFDIDA1OUY7MDVCMSAwNUI4IDA1QjkgMDU5MSAwNUMzIDA1QjAgMDVBQyAwNTlGOzA1QjEgMDVCOCAwNUI5IDA1OTEgMDVDMyAwNUIwIDA1QUMgMDU5RjsKKzA1OTIgMDVCNyAwNUJDIDA1QTUgMDVCMCAwNUMwIDA1QzQgMDVBRDswNUIwIDA1QjcgMDVCQyAwNUE1IDA1OTIgMDVDMCAwNUFEIDA1QzQ7MDVCMCAwNUI3IDA1QkMgMDVBNSAwNTkyIDA1QzAgMDVBRCAwNUM0OzA1QjAgMDVCNyAwNUJDIDA1QTUgMDU5MiAwNUMwIDA1QUQgMDVDNDswNUIwIDA1QjcgMDVCQyAwNUE1IDA1OTIgMDVDMCAwNUFEIDA1QzQ7CisjCitAUGFydDEgIyBDaGFyYWN0ZXIgYnkgY2hhcmFjdGVyIHRlc3QKKyMgQWxsIGNoYXJhY3RlcnMgbm90IGV4cGxpY2l0bHkgb2NjdXJyaW5nIGluIGMxIG9mIFBhcnQgMSBoYXZlIGlkZW50aWNhbCBORkMsIEQsIEtDLCBLRCBmb3Jtcy4KKyMKKzAwQTA7MDBBMDswMEEwOzAwMjA7MDAyMDsKKzAwQTg7MDBBODswMEE4OzAwMjAgMDMwODswMDIwIDAzMDg7CiswMEFBOzAwQUE7MDBBQTswMDYxOzAwNjE7CiswMEFGOzAwQUY7MDBBRjswMDIwIDAzMDQ7MDAyMCAwMzA0OworMDBCMjswMEIyOzAwQjI7MDAzMjswMDMyOworMDBCMzswMEIzOzAwQjM7MDAzMzswMDMzOworMDBCNDswMEI0OzAwQjQ7MDAyMCAwMzAxOzAwMjAgMDMwMTsKKzAwQjU7MDBCNTswMEI1OzAzQkM7MDNCQzsKKzAwQjg7MDBCODswMEI4OzAwMjAgMDMyNzswMDIwIDAzMjc7CiswMEI5OzAwQjk7MDBCOTswMDMxOzAwMzE7CiswMEJBOzAwQkE7MDBCQTswMDZGOzAwNkY7CiswMEJDOzAwQkM7MDBCQzswMDMxIDIwNDQgMDAzNDswMDMxIDIwNDQgMDAzNDsKKzAwQkQ7MDBCRDswMEJEOzAwMzEgMjA0NCAwMDMyOzAwMzEgMjA0NCAwMDMyOworMDBCRTswMEJFOzAwQkU7MDAzMyAyMDQ0IDAwMzQ7MDAzMyAyMDQ0IDAwMzQ7CiswMEMwOzAwQzA7MDA0MSAwMzAwOzAwQzA7MDA0MSAwMzAwOworMDBDMTswMEMxOzAwNDEgMDMwMTswMEMxOzAwNDEgMDMwMTsKKzAwQzI7MDBDMjswMDQxIDAzMDI7MDBDMjswMDQxIDAzMDI7CiswMEMzOzAwQzM7MDA0MSAwMzAzOzAwQzM7MDA0MSAwMzAzOworMDBDNDswMEM0OzAwNDEgMDMwODswMEM0OzAwNDEgMDMwODsKKzAwQzU7MDBDNTswMDQxIDAzMEE7MDBDNTswMDQxIDAzMEE7CiswMEM3OzAwQzc7MDA0MyAwMzI3OzAwQzc7MDA0MyAwMzI3OworMDBDODswMEM4OzAwNDUgMDMwMDswMEM4OzAwNDUgMDMwMDsKKzAwQzk7MDBDOTswMDQ1IDAzMDE7MDBDOTswMDQ1IDAzMDE7CiswMENBOzAwQ0E7MDA0NSAwMzAyOzAwQ0E7MDA0NSAwMzAyOworMDBDQjswMENCOzAwNDUgMDMwODswMENCOzAwNDUgMDMwODsKKzAwQ0M7MDBDQzswMDQ5IDAzMDA7MDBDQzswMDQ5IDAzMDA7CiswMENEOzAwQ0Q7MDA0OSAwMzAxOzAwQ0Q7MDA0OSAwMzAxOworMDBDRTswMENFOzAwNDkgMDMwMjswMENFOzAwNDkgMDMwMjsKKzAwQ0Y7MDBDRjswMDQ5IDAzMDg7MDBDRjswMDQ5IDAzMDg7CiswMEQxOzAwRDE7MDA0RSAwMzAzOzAwRDE7MDA0RSAwMzAzOworMDBEMjswMEQyOzAwNEYgMDMwMDswMEQyOzAwNEYgMDMwMDsKKzAwRDM7MDBEMzswMDRGIDAzMDE7MDBEMzswMDRGIDAzMDE7CiswMEQ0OzAwRDQ7MDA0RiAwMzAyOzAwRDQ7MDA0RiAwMzAyOworMDBENTswMEQ1OzAwNEYgMDMwMzswMEQ1OzAwNEYgMDMwMzsKKzAwRDY7MDBENjswMDRGIDAzMDg7MDBENjswMDRGIDAzMDg7CiswMEQ5OzAwRDk7MDA1NSAwMzAwOzAwRDk7MDA1NSAwMzAwOworMDBEQTswMERBOzAwNTUgMDMwMTswMERBOzAwNTUgMDMwMTsKKzAwREI7MDBEQjswMDU1IDAzMDI7MDBEQjswMDU1IDAzMDI7CiswMERDOzAwREM7MDA1NSAwMzA4OzAwREM7MDA1NSAwMzA4OworMDBERDswMEREOzAwNTkgMDMwMTswMEREOzAwNTkgMDMwMTsKKzAwRTA7MDBFMDswMDYxIDAzMDA7MDBFMDswMDYxIDAzMDA7CiswMEUxOzAwRTE7MDA2MSAwMzAxOzAwRTE7MDA2MSAwMzAxOworMDBFMjswMEUyOzAwNjEgMDMwMjswMEUyOzAwNjEgMDMwMjsKKzAwRTM7MDBFMzswMDYxIDAzMDM7MDBFMzswMDYxIDAzMDM7CiswMEU0OzAwRTQ7MDA2MSAwMzA4OzAwRTQ7MDA2MSAwMzA4OworMDBFNTswMEU1OzAwNjEgMDMwQTswMEU1OzAwNjEgMDMwQTsKKzAwRTc7MDBFNzswMDYzIDAzMjc7MDBFNzswMDYzIDAzMjc7CiswMEU4OzAwRTg7MDA2NSAwMzAwOzAwRTg7MDA2NSAwMzAwOworMDBFOTswMEU5OzAwNjUgMDMwMTswMEU5OzAwNjUgMDMwMTsKKzAwRUE7MDBFQTswMDY1IDAzMDI7MDBFQTswMDY1IDAzMDI7CiswMEVCOzAwRUI7MDA2NSAwMzA4OzAwRUI7MDA2NSAwMzA4OworMDBFQzswMEVDOzAwNjkgMDMwMDswMEVDOzAwNjkgMDMwMDsKKzAwRUQ7MDBFRDswMDY5IDAzMDE7MDBFRDswMDY5IDAzMDE7CiswMEVFOzAwRUU7MDA2OSAwMzAyOzAwRUU7MDA2OSAwMzAyOworMDBFRjswMEVGOzAwNjkgMDMwODswMEVGOzAwNjkgMDMwODsKKzAwRjE7MDBGMTswMDZFIDAzMDM7MDBGMTswMDZFIDAzMDM7CiswMEYyOzAwRjI7MDA2RiAwMzAwOzAwRjI7MDA2RiAwMzAwOworMDBGMzswMEYzOzAwNkYgMDMwMTswMEYzOzAwNkYgMDMwMTsKKzAwRjQ7MDBGNDswMDZGIDAzMDI7MDBGNDswMDZGIDAzMDI7CiswMEY1OzAwRjU7MDA2RiAwMzAzOzAwRjU7MDA2RiAwMzAzOworMDBGNjswMEY2OzAwNkYgMDMwODswMEY2OzAwNkYgMDMwODsKKzAwRjk7MDBGOTswMDc1IDAzMDA7MDBGOTswMDc1IDAzMDA7CiswMEZBOzAwRkE7MDA3NSAwMzAxOzAwRkE7MDA3NSAwMzAxOworMDBGQjswMEZCOzAwNzUgMDMwMjswMEZCOzAwNzUgMDMwMjsKKzAwRkM7MDBGQzswMDc1IDAzMDg7MDBGQzswMDc1IDAzMDg7CiswMEZEOzAwRkQ7MDA3OSAwMzAxOzAwRkQ7MDA3OSAwMzAxOworMDBGRjswMEZGOzAwNzkgMDMwODswMEZGOzAwNzkgMDMwODsKKzAxMDA7MDEwMDswMDQxIDAzMDQ7MDEwMDswMDQxIDAzMDQ7CiswMTAxOzAxMDE7MDA2MSAwMzA0OzAxMDE7MDA2MSAwMzA0OworMDEwMjswMTAyOzAwNDEgMDMwNjswMTAyOzAwNDEgMDMwNjsKKzAxMDM7MDEwMzswMDYxIDAzMDY7MDEwMzswMDYxIDAzMDY7CiswMTA0OzAxMDQ7MDA0MSAwMzI4OzAxMDQ7MDA0MSAwMzI4OworMDEwNTswMTA1OzAwNjEgMDMyODswMTA1OzAwNjEgMDMyODsKKzAxMDY7MDEwNjswMDQzIDAzMDE7MDEwNjswMDQzIDAzMDE7CiswMTA3OzAxMDc7MDA2MyAwMzAxOzAxMDc7MDA2MyAwMzAxOworMDEwODswMTA4OzAwNDMgMDMwMjswMTA4OzAwNDMgMDMwMjsKKzAxMDk7MDEwOTswMDYzIDAzMDI7MDEwOTswMDYzIDAzMDI7CiswMTBBOzAxMEE7MDA0MyAwMzA3OzAxMEE7MDA0MyAwMzA3OworMDEwQjswMTBCOzAwNjMgMDMwNzswMTBCOzAwNjMgMDMwNzsKKzAxMEM7MDEwQzswMDQzIDAzMEM7MDEwQzswMDQzIDAzMEM7CiswMTBEOzAxMEQ7MDA2MyAwMzBDOzAxMEQ7MDA2MyAwMzBDOworMDEwRTswMTBFOzAwNDQgMDMwQzswMTBFOzAwNDQgMDMwQzsKKzAxMEY7MDEwRjswMDY0IDAzMEM7MDEwRjswMDY0IDAzMEM7CiswMTEyOzAxMTI7MDA0NSAwMzA0OzAxMTI7MDA0NSAwMzA0OworMDExMzswMTEzOzAwNjUgMDMwNDswMTEzOzAwNjUgMDMwNDsKKzAxMTQ7MDExNDswMDQ1IDAzMDY7MDExNDswMDQ1IDAzMDY7CiswMTE1OzAxMTU7MDA2NSAwMzA2OzAxMTU7MDA2NSAwMzA2OworMDExNjswMTE2OzAwNDUgMDMwNzswMTE2OzAwNDUgMDMwNzsKKzAxMTc7MDExNzswMDY1IDAzMDc7MDExNzswMDY1IDAzMDc7CiswMTE4OzAxMTg7MDA0NSAwMzI4OzAxMTg7MDA0NSAwMzI4OworMDExOTswMTE5OzAwNjUgMDMyODswMTE5OzAwNjUgMDMyODsKKzAxMUE7MDExQTswMDQ1IDAzMEM7MDExQTswMDQ1IDAzMEM7CiswMTFCOzAxMUI7MDA2NSAwMzBDOzAxMUI7MDA2NSAwMzBDOworMDExQzswMTFDOzAwNDcgMDMwMjswMTFDOzAwNDcgMDMwMjsKKzAxMUQ7MDExRDswMDY3IDAzMDI7MDExRDswMDY3IDAzMDI7CiswMTFFOzAxMUU7MDA0NyAwMzA2OzAxMUU7MDA0NyAwMzA2OworMDExRjswMTFGOzAwNjcgMDMwNjswMTFGOzAwNjcgMDMwNjsKKzAxMjA7MDEyMDswMDQ3IDAzMDc7MDEyMDswMDQ3IDAzMDc7CiswMTIxOzAxMjE7MDA2NyAwMzA3OzAxMjE7MDA2NyAwMzA3OworMDEyMjswMTIyOzAwNDcgMDMyNzswMTIyOzAwNDcgMDMyNzsKKzAxMjM7MDEyMzswMDY3IDAzMjc7MDEyMzswMDY3IDAzMjc7CiswMTI0OzAxMjQ7MDA0OCAwMzAyOzAxMjQ7MDA0OCAwMzAyOworMDEyNTswMTI1OzAwNjggMDMwMjswMTI1OzAwNjggMDMwMjsKKzAxMjg7MDEyODswMDQ5IDAzMDM7MDEyODswMDQ5IDAzMDM7CiswMTI5OzAxMjk7MDA2OSAwMzAzOzAxMjk7MDA2OSAwMzAzOworMDEyQTswMTJBOzAwNDkgMDMwNDswMTJBOzAwNDkgMDMwNDsKKzAxMkI7MDEyQjswMDY5IDAzMDQ7MDEyQjswMDY5IDAzMDQ7CiswMTJDOzAxMkM7MDA0OSAwMzA2OzAxMkM7MDA0OSAwMzA2OworMDEyRDswMTJEOzAwNjkgMDMwNjswMTJEOzAwNjkgMDMwNjsKKzAxMkU7MDEyRTswMDQ5IDAzMjg7MDEyRTswMDQ5IDAzMjg7CiswMTJGOzAxMkY7MDA2OSAwMzI4OzAxMkY7MDA2OSAwMzI4OworMDEzMDswMTMwOzAwNDkgMDMwNzswMTMwOzAwNDkgMDMwNzsKKzAxMzI7MDEzMjswMTMyOzAwNDkgMDA0QTswMDQ5IDAwNEE7CiswMTMzOzAxMzM7MDEzMzswMDY5IDAwNkE7MDA2OSAwMDZBOworMDEzNDswMTM0OzAwNEEgMDMwMjswMTM0OzAwNEEgMDMwMjsKKzAxMzU7MDEzNTswMDZBIDAzMDI7MDEzNTswMDZBIDAzMDI7CiswMTM2OzAxMzY7MDA0QiAwMzI3OzAxMzY7MDA0QiAwMzI3OworMDEzNzswMTM3OzAwNkIgMDMyNzswMTM3OzAwNkIgMDMyNzsKKzAxMzk7MDEzOTswMDRDIDAzMDE7MDEzOTswMDRDIDAzMDE7CiswMTNBOzAxM0E7MDA2QyAwMzAxOzAxM0E7MDA2QyAwMzAxOworMDEzQjswMTNCOzAwNEMgMDMyNzswMTNCOzAwNEMgMDMyNzsKKzAxM0M7MDEzQzswMDZDIDAzMjc7MDEzQzswMDZDIDAzMjc7CiswMTNEOzAxM0Q7MDA0QyAwMzBDOzAxM0Q7MDA0QyAwMzBDOworMDEzRTswMTNFOzAwNkMgMDMwQzswMTNFOzAwNkMgMDMwQzsKKzAxM0Y7MDEzRjswMTNGOzAwNEMgMDBCNzswMDRDIDAwQjc7CiswMTQwOzAxNDA7MDE0MDswMDZDIDAwQjc7MDA2QyAwMEI3OworMDE0MzswMTQzOzAwNEUgMDMwMTswMTQzOzAwNEUgMDMwMTsKKzAxNDQ7MDE0NDswMDZFIDAzMDE7MDE0NDswMDZFIDAzMDE7CiswMTQ1OzAxNDU7MDA0RSAwMzI3OzAxNDU7MDA0RSAwMzI3OworMDE0NjswMTQ2OzAwNkUgMDMyNzswMTQ2OzAwNkUgMDMyNzsKKzAxNDc7MDE0NzswMDRFIDAzMEM7MDE0NzswMDRFIDAzMEM7CiswMTQ4OzAxNDg7MDA2RSAwMzBDOzAxNDg7MDA2RSAwMzBDOworMDE0OTswMTQ5OzAxNDk7MDJCQyAwMDZFOzAyQkMgMDA2RTsKKzAxNEM7MDE0QzswMDRGIDAzMDQ7MDE0QzswMDRGIDAzMDQ7CiswMTREOzAxNEQ7MDA2RiAwMzA0OzAxNEQ7MDA2RiAwMzA0OworMDE0RTswMTRFOzAwNEYgMDMwNjswMTRFOzAwNEYgMDMwNjsKKzAxNEY7MDE0RjswMDZGIDAzMDY7MDE0RjswMDZGIDAzMDY7CiswMTUwOzAxNTA7MDA0RiAwMzBCOzAxNTA7MDA0RiAwMzBCOworMDE1MTswMTUxOzAwNkYgMDMwQjswMTUxOzAwNkYgMDMwQjsKKzAxNTQ7MDE1NDswMDUyIDAzMDE7MDE1NDswMDUyIDAzMDE7CiswMTU1OzAxNTU7MDA3MiAwMzAxOzAxNTU7MDA3MiAwMzAxOworMDE1NjswMTU2OzAwNTIgMDMyNzswMTU2OzAwNTIgMDMyNzsKKzAxNTc7MDE1NzswMDcyIDAzMjc7MDE1NzswMDcyIDAzMjc7CiswMTU4OzAxNTg7MDA1MiAwMzBDOzAxNTg7MDA1MiAwMzBDOworMDE1OTswMTU5OzAwNzIgMDMwQzswMTU5OzAwNzIgMDMwQzsKKzAxNUE7MDE1QTswMDUzIDAzMDE7MDE1QTswMDUzIDAzMDE7CiswMTVCOzAxNUI7MDA3MyAwMzAxOzAxNUI7MDA3MyAwMzAxOworMDE1QzswMTVDOzAwNTMgMDMwMjswMTVDOzAwNTMgMDMwMjsKKzAxNUQ7MDE1RDswMDczIDAzMDI7MDE1RDswMDczIDAzMDI7CiswMTVFOzAxNUU7MDA1MyAwMzI3OzAxNUU7MDA1MyAwMzI3OworMDE1RjswMTVGOzAwNzMgMDMyNzswMTVGOzAwNzMgMDMyNzsKKzAxNjA7MDE2MDswMDUzIDAzMEM7MDE2MDswMDUzIDAzMEM7CiswMTYxOzAxNjE7MDA3MyAwMzBDOzAxNjE7MDA3MyAwMzBDOworMDE2MjswMTYyOzAwNTQgMDMyNzswMTYyOzAwNTQgMDMyNzsKKzAxNjM7MDE2MzswMDc0IDAzMjc7MDE2MzswMDc0IDAzMjc7CiswMTY0OzAxNjQ7MDA1NCAwMzBDOzAxNjQ7MDA1NCAwMzBDOworMDE2NTswMTY1OzAwNzQgMDMwQzswMTY1OzAwNzQgMDMwQzsKKzAxNjg7MDE2ODswMDU1IDAzMDM7MDE2ODswMDU1IDAzMDM7CiswMTY5OzAxNjk7MDA3NSAwMzAzOzAxNjk7MDA3NSAwMzAzOworMDE2QTswMTZBOzAwNTUgMDMwNDswMTZBOzAwNTUgMDMwNDsKKzAxNkI7MDE2QjswMDc1IDAzMDQ7MDE2QjswMDc1IDAzMDQ7CiswMTZDOzAxNkM7MDA1NSAwMzA2OzAxNkM7MDA1NSAwMzA2OworMDE2RDswMTZEOzAwNzUgMDMwNjswMTZEOzAwNzUgMDMwNjsKKzAxNkU7MDE2RTswMDU1IDAzMEE7MDE2RTswMDU1IDAzMEE7CiswMTZGOzAxNkY7MDA3NSAwMzBBOzAxNkY7MDA3NSAwMzBBOworMDE3MDswMTcwOzAwNTUgMDMwQjswMTcwOzAwNTUgMDMwQjsKKzAxNzE7MDE3MTswMDc1IDAzMEI7MDE3MTswMDc1IDAzMEI7CiswMTcyOzAxNzI7MDA1NSAwMzI4OzAxNzI7MDA1NSAwMzI4OworMDE3MzswMTczOzAwNzUgMDMyODswMTczOzAwNzUgMDMyODsKKzAxNzQ7MDE3NDswMDU3IDAzMDI7MDE3NDswMDU3IDAzMDI7CiswMTc1OzAxNzU7MDA3NyAwMzAyOzAxNzU7MDA3NyAwMzAyOworMDE3NjswMTc2OzAwNTkgMDMwMjswMTc2OzAwNTkgMDMwMjsKKzAxNzc7MDE3NzswMDc5IDAzMDI7MDE3NzswMDc5IDAzMDI7CiswMTc4OzAxNzg7MDA1OSAwMzA4OzAxNzg7MDA1OSAwMzA4OworMDE3OTswMTc5OzAwNUEgMDMwMTswMTc5OzAwNUEgMDMwMTsKKzAxN0E7MDE3QTswMDdBIDAzMDE7MDE3QTswMDdBIDAzMDE7CiswMTdCOzAxN0I7MDA1QSAwMzA3OzAxN0I7MDA1QSAwMzA3OworMDE3QzswMTdDOzAwN0EgMDMwNzswMTdDOzAwN0EgMDMwNzsKKzAxN0Q7MDE3RDswMDVBIDAzMEM7MDE3RDswMDVBIDAzMEM7CiswMTdFOzAxN0U7MDA3QSAwMzBDOzAxN0U7MDA3QSAwMzBDOworMDE3RjswMTdGOzAxN0Y7MDA3MzswMDczOworMDFBMDswMUEwOzAwNEYgMDMxQjswMUEwOzAwNEYgMDMxQjsKKzAxQTE7MDFBMTswMDZGIDAzMUI7MDFBMTswMDZGIDAzMUI7CiswMUFGOzAxQUY7MDA1NSAwMzFCOzAxQUY7MDA1NSAwMzFCOworMDFCMDswMUIwOzAwNzUgMDMxQjswMUIwOzAwNzUgMDMxQjsKKzAxQzQ7MDFDNDswMUM0OzAwNDQgMDE3RDswMDQ0IDAwNUEgMDMwQzsKKzAxQzU7MDFDNTswMUM1OzAwNDQgMDE3RTswMDQ0IDAwN0EgMDMwQzsKKzAxQzY7MDFDNjswMUM2OzAwNjQgMDE3RTswMDY0IDAwN0EgMDMwQzsKKzAxQzc7MDFDNzswMUM3OzAwNEMgMDA0QTswMDRDIDAwNEE7CiswMUM4OzAxQzg7MDFDODswMDRDIDAwNkE7MDA0QyAwMDZBOworMDFDOTswMUM5OzAxQzk7MDA2QyAwMDZBOzAwNkMgMDA2QTsKKzAxQ0E7MDFDQTswMUNBOzAwNEUgMDA0QTswMDRFIDAwNEE7CiswMUNCOzAxQ0I7MDFDQjswMDRFIDAwNkE7MDA0RSAwMDZBOworMDFDQzswMUNDOzAxQ0M7MDA2RSAwMDZBOzAwNkUgMDA2QTsKKzAxQ0Q7MDFDRDswMDQxIDAzMEM7MDFDRDswMDQxIDAzMEM7CiswMUNFOzAxQ0U7MDA2MSAwMzBDOzAxQ0U7MDA2MSAwMzBDOworMDFDRjswMUNGOzAwNDkgMDMwQzswMUNGOzAwNDkgMDMwQzsKKzAxRDA7MDFEMDswMDY5IDAzMEM7MDFEMDswMDY5IDAzMEM7CiswMUQxOzAxRDE7MDA0RiAwMzBDOzAxRDE7MDA0RiAwMzBDOworMDFEMjswMUQyOzAwNkYgMDMwQzswMUQyOzAwNkYgMDMwQzsKKzAxRDM7MDFEMzswMDU1IDAzMEM7MDFEMzswMDU1IDAzMEM7CiswMUQ0OzAxRDQ7MDA3NSAwMzBDOzAxRDQ7MDA3NSAwMzBDOworMDFENTswMUQ1OzAwNTUgMDMwOCAwMzA0OzAxRDU7MDA1NSAwMzA4IDAzMDQ7CiswMUQ2OzAxRDY7MDA3NSAwMzA4IDAzMDQ7MDFENjswMDc1IDAzMDggMDMwNDsKKzAxRDc7MDFENzswMDU1IDAzMDggMDMwMTswMUQ3OzAwNTUgMDMwOCAwMzAxOworMDFEODswMUQ4OzAwNzUgMDMwOCAwMzAxOzAxRDg7MDA3NSAwMzA4IDAzMDE7CiswMUQ5OzAxRDk7MDA1NSAwMzA4IDAzMEM7MDFEOTswMDU1IDAzMDggMDMwQzsKKzAxREE7MDFEQTswMDc1IDAzMDggMDMwQzswMURBOzAwNzUgMDMwOCAwMzBDOworMDFEQjswMURCOzAwNTUgMDMwOCAwMzAwOzAxREI7MDA1NSAwMzA4IDAzMDA7CiswMURDOzAxREM7MDA3NSAwMzA4IDAzMDA7MDFEQzswMDc1IDAzMDggMDMwMDsKKzAxREU7MDFERTswMDQxIDAzMDggMDMwNDswMURFOzAwNDEgMDMwOCAwMzA0OworMDFERjswMURGOzAwNjEgMDMwOCAwMzA0OzAxREY7MDA2MSAwMzA4IDAzMDQ7CiswMUUwOzAxRTA7MDA0MSAwMzA3IDAzMDQ7MDFFMDswMDQxIDAzMDcgMDMwNDsKKzAxRTE7MDFFMTswMDYxIDAzMDcgMDMwNDswMUUxOzAwNjEgMDMwNyAwMzA0OworMDFFMjswMUUyOzAwQzYgMDMwNDswMUUyOzAwQzYgMDMwNDsKKzAxRTM7MDFFMzswMEU2IDAzMDQ7MDFFMzswMEU2IDAzMDQ7CiswMUU2OzAxRTY7MDA0NyAwMzBDOzAxRTY7MDA0NyAwMzBDOworMDFFNzswMUU3OzAwNjcgMDMwQzswMUU3OzAwNjcgMDMwQzsKKzAxRTg7MDFFODswMDRCIDAzMEM7MDFFODswMDRCIDAzMEM7CiswMUU5OzAxRTk7MDA2QiAwMzBDOzAxRTk7MDA2QiAwMzBDOworMDFFQTswMUVBOzAwNEYgMDMyODswMUVBOzAwNEYgMDMyODsKKzAxRUI7MDFFQjswMDZGIDAzMjg7MDFFQjswMDZGIDAzMjg7CiswMUVDOzAxRUM7MDA0RiAwMzI4IDAzMDQ7MDFFQzswMDRGIDAzMjggMDMwNDsKKzAxRUQ7MDFFRDswMDZGIDAzMjggMDMwNDswMUVEOzAwNkYgMDMyOCAwMzA0OworMDFFRTswMUVFOzAxQjcgMDMwQzswMUVFOzAxQjcgMDMwQzsKKzAxRUY7MDFFRjswMjkyIDAzMEM7MDFFRjswMjkyIDAzMEM7CiswMUYwOzAxRjA7MDA2QSAwMzBDOzAxRjA7MDA2QSAwMzBDOworMDFGMTswMUYxOzAxRjE7MDA0NCAwMDVBOzAwNDQgMDA1QTsKKzAxRjI7MDFGMjswMUYyOzAwNDQgMDA3QTswMDQ0IDAwN0E7CiswMUYzOzAxRjM7MDFGMzswMDY0IDAwN0E7MDA2NCAwMDdBOworMDFGNDswMUY0OzAwNDcgMDMwMTswMUY0OzAwNDcgMDMwMTsKKzAxRjU7MDFGNTswMDY3IDAzMDE7MDFGNTswMDY3IDAzMDE7CiswMUY4OzAxRjg7MDA0RSAwMzAwOzAxRjg7MDA0RSAwMzAwOworMDFGOTswMUY5OzAwNkUgMDMwMDswMUY5OzAwNkUgMDMwMDsKKzAxRkE7MDFGQTswMDQxIDAzMEEgMDMwMTswMUZBOzAwNDEgMDMwQSAwMzAxOworMDFGQjswMUZCOzAwNjEgMDMwQSAwMzAxOzAxRkI7MDA2MSAwMzBBIDAzMDE7CiswMUZDOzAxRkM7MDBDNiAwMzAxOzAxRkM7MDBDNiAwMzAxOworMDFGRDswMUZEOzAwRTYgMDMwMTswMUZEOzAwRTYgMDMwMTsKKzAxRkU7MDFGRTswMEQ4IDAzMDE7MDFGRTswMEQ4IDAzMDE7CiswMUZGOzAxRkY7MDBGOCAwMzAxOzAxRkY7MDBGOCAwMzAxOworMDIwMDswMjAwOzAwNDEgMDMwRjswMjAwOzAwNDEgMDMwRjsKKzAyMDE7MDIwMTswMDYxIDAzMEY7MDIwMTswMDYxIDAzMEY7CiswMjAyOzAyMDI7MDA0MSAwMzExOzAyMDI7MDA0MSAwMzExOworMDIwMzswMjAzOzAwNjEgMDMxMTswMjAzOzAwNjEgMDMxMTsKKzAyMDQ7MDIwNDswMDQ1IDAzMEY7MDIwNDswMDQ1IDAzMEY7CiswMjA1OzAyMDU7MDA2NSAwMzBGOzAyMDU7MDA2NSAwMzBGOworMDIwNjswMjA2OzAwNDUgMDMxMTswMjA2OzAwNDUgMDMxMTsKKzAyMDc7MDIwNzswMDY1IDAzMTE7MDIwNzswMDY1IDAzMTE7CiswMjA4OzAyMDg7MDA0OSAwMzBGOzAyMDg7MDA0OSAwMzBGOworMDIwOTswMjA5OzAwNjkgMDMwRjswMjA5OzAwNjkgMDMwRjsKKzAyMEE7MDIwQTswMDQ5IDAzMTE7MDIwQTswMDQ5IDAzMTE7CiswMjBCOzAyMEI7MDA2OSAwMzExOzAyMEI7MDA2OSAwMzExOworMDIwQzswMjBDOzAwNEYgMDMwRjswMjBDOzAwNEYgMDMwRjsKKzAyMEQ7MDIwRDswMDZGIDAzMEY7MDIwRDswMDZGIDAzMEY7CiswMjBFOzAyMEU7MDA0RiAwMzExOzAyMEU7MDA0RiAwMzExOworMDIwRjswMjBGOzAwNkYgMDMxMTswMjBGOzAwNkYgMDMxMTsKKzAyMTA7MDIxMDswMDUyIDAzMEY7MDIxMDswMDUyIDAzMEY7CiswMjExOzAyMTE7MDA3MiAwMzBGOzAyMTE7MDA3MiAwMzBGOworMDIxMjswMjEyOzAwNTIgMDMxMTswMjEyOzAwNTIgMDMxMTsKKzAyMTM7MDIxMzswMDcyIDAzMTE7MDIxMzswMDcyIDAzMTE7CiswMjE0OzAyMTQ7MDA1NSAwMzBGOzAyMTQ7MDA1NSAwMzBGOworMDIxNTswMjE1OzAwNzUgMDMwRjswMjE1OzAwNzUgMDMwRjsKKzAyMTY7MDIxNjswMDU1IDAzMTE7MDIxNjswMDU1IDAzMTE7CiswMjE3OzAyMTc7MDA3NSAwMzExOzAyMTc7MDA3NSAwMzExOworMDIxODswMjE4OzAwNTMgMDMyNjswMjE4OzAwNTMgMDMyNjsKKzAyMTk7MDIxOTswMDczIDAzMjY7MDIxOTswMDczIDAzMjY7CiswMjFBOzAyMUE7MDA1NCAwMzI2OzAyMUE7MDA1NCAwMzI2OworMDIxQjswMjFCOzAwNzQgMDMyNjswMjFCOzAwNzQgMDMyNjsKKzAyMUU7MDIxRTswMDQ4IDAzMEM7MDIxRTswMDQ4IDAzMEM7CiswMjFGOzAyMUY7MDA2OCAwMzBDOzAyMUY7MDA2OCAwMzBDOworMDIyNjswMjI2OzAwNDEgMDMwNzswMjI2OzAwNDEgMDMwNzsKKzAyMjc7MDIyNzswMDYxIDAzMDc7MDIyNzswMDYxIDAzMDc7CiswMjI4OzAyMjg7MDA0NSAwMzI3OzAyMjg7MDA0NSAwMzI3OworMDIyOTswMjI5OzAwNjUgMDMyNzswMjI5OzAwNjUgMDMyNzsKKzAyMkE7MDIyQTswMDRGIDAzMDggMDMwNDswMjJBOzAwNEYgMDMwOCAwMzA0OworMDIyQjswMjJCOzAwNkYgMDMwOCAwMzA0OzAyMkI7MDA2RiAwMzA4IDAzMDQ7CiswMjJDOzAyMkM7MDA0RiAwMzAzIDAzMDQ7MDIyQzswMDRGIDAzMDMgMDMwNDsKKzAyMkQ7MDIyRDswMDZGIDAzMDMgMDMwNDswMjJEOzAwNkYgMDMwMyAwMzA0OworMDIyRTswMjJFOzAwNEYgMDMwNzswMjJFOzAwNEYgMDMwNzsKKzAyMkY7MDIyRjswMDZGIDAzMDc7MDIyRjswMDZGIDAzMDc7CiswMjMwOzAyMzA7MDA0RiAwMzA3IDAzMDQ7MDIzMDswMDRGIDAzMDcgMDMwNDsKKzAyMzE7MDIzMTswMDZGIDAzMDcgMDMwNDswMjMxOzAwNkYgMDMwNyAwMzA0OworMDIzMjswMjMyOzAwNTkgMDMwNDswMjMyOzAwNTkgMDMwNDsKKzAyMzM7MDIzMzswMDc5IDAzMDQ7MDIzMzswMDc5IDAzMDQ7CiswMkIwOzAyQjA7MDJCMDswMDY4OzAwNjg7CiswMkIxOzAyQjE7MDJCMTswMjY2OzAyNjY7CiswMkIyOzAyQjI7MDJCMjswMDZBOzAwNkE7CiswMkIzOzAyQjM7MDJCMzswMDcyOzAwNzI7CiswMkI0OzAyQjQ7MDJCNDswMjc5OzAyNzk7CiswMkI1OzAyQjU7MDJCNTswMjdCOzAyN0I7CiswMkI2OzAyQjY7MDJCNjswMjgxOzAyODE7CiswMkI3OzAyQjc7MDJCNzswMDc3OzAwNzc7CiswMkI4OzAyQjg7MDJCODswMDc5OzAwNzk7CiswMkQ4OzAyRDg7MDJEODswMDIwIDAzMDY7MDAyMCAwMzA2OworMDJEOTswMkQ5OzAyRDk7MDAyMCAwMzA3OzAwMjAgMDMwNzsKKzAyREE7MDJEQTswMkRBOzAwMjAgMDMwQTswMDIwIDAzMEE7CiswMkRCOzAyREI7MDJEQjswMDIwIDAzMjg7MDAyMCAwMzI4OworMDJEQzswMkRDOzAyREM7MDAyMCAwMzAzOzAwMjAgMDMwMzsKKzAyREQ7MDJERDswMkREOzAwMjAgMDMwQjswMDIwIDAzMEI7CiswMkUwOzAyRTA7MDJFMDswMjYzOzAyNjM7CiswMkUxOzAyRTE7MDJFMTswMDZDOzAwNkM7CiswMkUyOzAyRTI7MDJFMjswMDczOzAwNzM7CiswMkUzOzAyRTM7MDJFMzswMDc4OzAwNzg7CiswMkU0OzAyRTQ7MDJFNDswMjk1OzAyOTU7CiswMzQwOzAzMDA7MDMwMDswMzAwOzAzMDA7CiswMzQxOzAzMDE7MDMwMTswMzAxOzAzMDE7CiswMzQzOzAzMTM7MDMxMzswMzEzOzAzMTM7CiswMzQ0OzAzMDggMDMwMTswMzA4IDAzMDE7MDMwOCAwMzAxOzAzMDggMDMwMTsKKzAzNzQ7MDJCOTswMkI5OzAyQjk7MDJCOTsKKzAzN0E7MDM3QTswMzdBOzAwMjAgMDM0NTswMDIwIDAzNDU7CiswMzdFOzAwM0I7MDAzQjswMDNCOzAwM0I7CiswMzg0OzAzODQ7MDM4NDswMDIwIDAzMDE7MDAyMCAwMzAxOworMDM4NTswMzg1OzAwQTggMDMwMTswMDIwIDAzMDggMDMwMTswMDIwIDAzMDggMDMwMTsKKzAzODY7MDM4NjswMzkxIDAzMDE7MDM4NjswMzkxIDAzMDE7CiswMzg3OzAwQjc7MDBCNzswMEI3OzAwQjc7CiswMzg4OzAzODg7MDM5NSAwMzAxOzAzODg7MDM5NSAwMzAxOworMDM4OTswMzg5OzAzOTcgMDMwMTswMzg5OzAzOTcgMDMwMTsKKzAzOEE7MDM4QTswMzk5IDAzMDE7MDM4QTswMzk5IDAzMDE7CiswMzhDOzAzOEM7MDM5RiAwMzAxOzAzOEM7MDM5RiAwMzAxOworMDM4RTswMzhFOzAzQTUgMDMwMTswMzhFOzAzQTUgMDMwMTsKKzAzOEY7MDM4RjswM0E5IDAzMDE7MDM4RjswM0E5IDAzMDE7CiswMzkwOzAzOTA7MDNCOSAwMzA4IDAzMDE7MDM5MDswM0I5IDAzMDggMDMwMTsKKzAzQUE7MDNBQTswMzk5IDAzMDg7MDNBQTswMzk5IDAzMDg7CiswM0FCOzAzQUI7MDNBNSAwMzA4OzAzQUI7MDNBNSAwMzA4OworMDNBQzswM0FDOzAzQjEgMDMwMTswM0FDOzAzQjEgMDMwMTsKKzAzQUQ7MDNBRDswM0I1IDAzMDE7MDNBRDswM0I1IDAzMDE7CiswM0FFOzAzQUU7MDNCNyAwMzAxOzAzQUU7MDNCNyAwMzAxOworMDNBRjswM0FGOzAzQjkgMDMwMTswM0FGOzAzQjkgMDMwMTsKKzAzQjA7MDNCMDswM0M1IDAzMDggMDMwMTswM0IwOzAzQzUgMDMwOCAwMzAxOworMDNDQTswM0NBOzAzQjkgMDMwODswM0NBOzAzQjkgMDMwODsKKzAzQ0I7MDNDQjswM0M1IDAzMDg7MDNDQjswM0M1IDAzMDg7CiswM0NDOzAzQ0M7MDNCRiAwMzAxOzAzQ0M7MDNCRiAwMzAxOworMDNDRDswM0NEOzAzQzUgMDMwMTswM0NEOzAzQzUgMDMwMTsKKzAzQ0U7MDNDRTswM0M5IDAzMDE7MDNDRTswM0M5IDAzMDE7CiswM0QwOzAzRDA7MDNEMDswM0IyOzAzQjI7CiswM0QxOzAzRDE7MDNEMTswM0I4OzAzQjg7CiswM0QyOzAzRDI7MDNEMjswM0E1OzAzQTU7CiswM0QzOzAzRDM7MDNEMiAwMzAxOzAzOEU7MDNBNSAwMzAxOworMDNENDswM0Q0OzAzRDIgMDMwODswM0FCOzAzQTUgMDMwODsKKzAzRDU7MDNENTswM0Q1OzAzQzY7MDNDNjsKKzAzRDY7MDNENjswM0Q2OzAzQzA7MDNDMDsKKzAzRjA7MDNGMDswM0YwOzAzQkE7MDNCQTsKKzAzRjE7MDNGMTswM0YxOzAzQzE7MDNDMTsKKzAzRjI7MDNGMjswM0YyOzAzQzI7MDNDMjsKKzAzRjQ7MDNGNDswM0Y0OzAzOTg7MDM5ODsKKzAzRjU7MDNGNTswM0Y1OzAzQjU7MDNCNTsKKzA0MDA7MDQwMDswNDE1IDAzMDA7MDQwMDswNDE1IDAzMDA7CiswNDAxOzA0MDE7MDQxNSAwMzA4OzA0MDE7MDQxNSAwMzA4OworMDQwMzswNDAzOzA0MTMgMDMwMTswNDAzOzA0MTMgMDMwMTsKKzA0MDc7MDQwNzswNDA2IDAzMDg7MDQwNzswNDA2IDAzMDg7CiswNDBDOzA0MEM7MDQxQSAwMzAxOzA0MEM7MDQxQSAwMzAxOworMDQwRDswNDBEOzA0MTggMDMwMDswNDBEOzA0MTggMDMwMDsKKzA0MEU7MDQwRTswNDIzIDAzMDY7MDQwRTswNDIzIDAzMDY7CiswNDE5OzA0MTk7MDQxOCAwMzA2OzA0MTk7MDQxOCAwMzA2OworMDQzOTswNDM5OzA0MzggMDMwNjswNDM5OzA0MzggMDMwNjsKKzA0NTA7MDQ1MDswNDM1IDAzMDA7MDQ1MDswNDM1IDAzMDA7CiswNDUxOzA0NTE7MDQzNSAwMzA4OzA0NTE7MDQzNSAwMzA4OworMDQ1MzswNDUzOzA0MzMgMDMwMTswNDUzOzA0MzMgMDMwMTsKKzA0NTc7MDQ1NzswNDU2IDAzMDg7MDQ1NzswNDU2IDAzMDg7CiswNDVDOzA0NUM7MDQzQSAwMzAxOzA0NUM7MDQzQSAwMzAxOworMDQ1RDswNDVEOzA0MzggMDMwMDswNDVEOzA0MzggMDMwMDsKKzA0NUU7MDQ1RTswNDQzIDAzMDY7MDQ1RTswNDQzIDAzMDY7CiswNDc2OzA0NzY7MDQ3NCAwMzBGOzA0NzY7MDQ3NCAwMzBGOworMDQ3NzswNDc3OzA0NzUgMDMwRjswNDc3OzA0NzUgMDMwRjsKKzA0QzE7MDRDMTswNDE2IDAzMDY7MDRDMTswNDE2IDAzMDY7CiswNEMyOzA0QzI7MDQzNiAwMzA2OzA0QzI7MDQzNiAwMzA2OworMDREMDswNEQwOzA0MTAgMDMwNjswNEQwOzA0MTAgMDMwNjsKKzA0RDE7MDREMTswNDMwIDAzMDY7MDREMTswNDMwIDAzMDY7CiswNEQyOzA0RDI7MDQxMCAwMzA4OzA0RDI7MDQxMCAwMzA4OworMDREMzswNEQzOzA0MzAgMDMwODswNEQzOzA0MzAgMDMwODsKKzA0RDY7MDRENjswNDE1IDAzMDY7MDRENjswNDE1IDAzMDY7CiswNEQ3OzA0RDc7MDQzNSAwMzA2OzA0RDc7MDQzNSAwMzA2OworMDREQTswNERBOzA0RDggMDMwODswNERBOzA0RDggMDMwODsKKzA0REI7MDREQjswNEQ5IDAzMDg7MDREQjswNEQ5IDAzMDg7CiswNERDOzA0REM7MDQxNiAwMzA4OzA0REM7MDQxNiAwMzA4OworMDRERDswNEREOzA0MzYgMDMwODswNEREOzA0MzYgMDMwODsKKzA0REU7MDRERTswNDE3IDAzMDg7MDRERTswNDE3IDAzMDg7CiswNERGOzA0REY7MDQzNyAwMzA4OzA0REY7MDQzNyAwMzA4OworMDRFMjswNEUyOzA0MTggMDMwNDswNEUyOzA0MTggMDMwNDsKKzA0RTM7MDRFMzswNDM4IDAzMDQ7MDRFMzswNDM4IDAzMDQ7CiswNEU0OzA0RTQ7MDQxOCAwMzA4OzA0RTQ7MDQxOCAwMzA4OworMDRFNTswNEU1OzA0MzggMDMwODswNEU1OzA0MzggMDMwODsKKzA0RTY7MDRFNjswNDFFIDAzMDg7MDRFNjswNDFFIDAzMDg7CiswNEU3OzA0RTc7MDQzRSAwMzA4OzA0RTc7MDQzRSAwMzA4OworMDRFQTswNEVBOzA0RTggMDMwODswNEVBOzA0RTggMDMwODsKKzA0RUI7MDRFQjswNEU5IDAzMDg7MDRFQjswNEU5IDAzMDg7CiswNEVDOzA0RUM7MDQyRCAwMzA4OzA0RUM7MDQyRCAwMzA4OworMDRFRDswNEVEOzA0NEQgMDMwODswNEVEOzA0NEQgMDMwODsKKzA0RUU7MDRFRTswNDIzIDAzMDQ7MDRFRTswNDIzIDAzMDQ7CiswNEVGOzA0RUY7MDQ0MyAwMzA0OzA0RUY7MDQ0MyAwMzA0OworMDRGMDswNEYwOzA0MjMgMDMwODswNEYwOzA0MjMgMDMwODsKKzA0RjE7MDRGMTswNDQzIDAzMDg7MDRGMTswNDQzIDAzMDg7CiswNEYyOzA0RjI7MDQyMyAwMzBCOzA0RjI7MDQyMyAwMzBCOworMDRGMzswNEYzOzA0NDMgMDMwQjswNEYzOzA0NDMgMDMwQjsKKzA0RjQ7MDRGNDswNDI3IDAzMDg7MDRGNDswNDI3IDAzMDg7CiswNEY1OzA0RjU7MDQ0NyAwMzA4OzA0RjU7MDQ0NyAwMzA4OworMDRGODswNEY4OzA0MkIgMDMwODswNEY4OzA0MkIgMDMwODsKKzA0Rjk7MDRGOTswNDRCIDAzMDg7MDRGOTswNDRCIDAzMDg7CiswNTg3OzA1ODc7MDU4NzswNTY1IDA1ODI7MDU2NSAwNTgyOworMDYyMjswNjIyOzA2MjcgMDY1MzswNjIyOzA2MjcgMDY1MzsKKzA2MjM7MDYyMzswNjI3IDA2NTQ7MDYyMzswNjI3IDA2NTQ7CiswNjI0OzA2MjQ7MDY0OCAwNjU0OzA2MjQ7MDY0OCAwNjU0OworMDYyNTswNjI1OzA2MjcgMDY1NTswNjI1OzA2MjcgMDY1NTsKKzA2MjY7MDYyNjswNjRBIDA2NTQ7MDYyNjswNjRBIDA2NTQ7CiswNjc1OzA2NzU7MDY3NTswNjI3IDA2NzQ7MDYyNyAwNjc0OworMDY3NjswNjc2OzA2NzY7MDY0OCAwNjc0OzA2NDggMDY3NDsKKzA2Nzc7MDY3NzswNjc3OzA2QzcgMDY3NDswNkM3IDA2NzQ7CiswNjc4OzA2Nzg7MDY3ODswNjRBIDA2NzQ7MDY0QSAwNjc0OworMDZDMDswNkMwOzA2RDUgMDY1NDswNkMwOzA2RDUgMDY1NDsKKzA2QzI7MDZDMjswNkMxIDA2NTQ7MDZDMjswNkMxIDA2NTQ7CiswNkQzOzA2RDM7MDZEMiAwNjU0OzA2RDM7MDZEMiAwNjU0OworMDkyOTswOTI5OzA5MjggMDkzQzswOTI5OzA5MjggMDkzQzsKKzA5MzE7MDkzMTswOTMwIDA5M0M7MDkzMTswOTMwIDA5M0M7CiswOTM0OzA5MzQ7MDkzMyAwOTNDOzA5MzQ7MDkzMyAwOTNDOworMDk1ODswOTE1IDA5M0M7MDkxNSAwOTNDOzA5MTUgMDkzQzswOTE1IDA5M0M7CiswOTU5OzA5MTYgMDkzQzswOTE2IDA5M0M7MDkxNiAwOTNDOzA5MTYgMDkzQzsKKzA5NUE7MDkxNyAwOTNDOzA5MTcgMDkzQzswOTE3IDA5M0M7MDkxNyAwOTNDOworMDk1QjswOTFDIDA5M0M7MDkxQyAwOTNDOzA5MUMgMDkzQzswOTFDIDA5M0M7CiswOTVDOzA5MjEgMDkzQzswOTIxIDA5M0M7MDkyMSAwOTNDOzA5MjEgMDkzQzsKKzA5NUQ7MDkyMiAwOTNDOzA5MjIgMDkzQzswOTIyIDA5M0M7MDkyMiAwOTNDOworMDk1RTswOTJCIDA5M0M7MDkyQiAwOTNDOzA5MkIgMDkzQzswOTJCIDA5M0M7CiswOTVGOzA5MkYgMDkzQzswOTJGIDA5M0M7MDkyRiAwOTNDOzA5MkYgMDkzQzsKKzA5Q0I7MDlDQjswOUM3IDA5QkU7MDlDQjswOUM3IDA5QkU7CiswOUNDOzA5Q0M7MDlDNyAwOUQ3OzA5Q0M7MDlDNyAwOUQ3OworMDlEQzswOUExIDA5QkM7MDlBMSAwOUJDOzA5QTEgMDlCQzswOUExIDA5QkM7CiswOUREOzA5QTIgMDlCQzswOUEyIDA5QkM7MDlBMiAwOUJDOzA5QTIgMDlCQzsKKzA5REY7MDlBRiAwOUJDOzA5QUYgMDlCQzswOUFGIDA5QkM7MDlBRiAwOUJDOworMEEzMzswQTMyIDBBM0M7MEEzMiAwQTNDOzBBMzIgMEEzQzswQTMyIDBBM0M7CiswQTM2OzBBMzggMEEzQzswQTM4IDBBM0M7MEEzOCAwQTNDOzBBMzggMEEzQzsKKzBBNTk7MEExNiAwQTNDOzBBMTYgMEEzQzswQTE2IDBBM0M7MEExNiAwQTNDOworMEE1QTswQTE3IDBBM0M7MEExNyAwQTNDOzBBMTcgMEEzQzswQTE3IDBBM0M7CiswQTVCOzBBMUMgMEEzQzswQTFDIDBBM0M7MEExQyAwQTNDOzBBMUMgMEEzQzsKKzBBNUU7MEEyQiAwQTNDOzBBMkIgMEEzQzswQTJCIDBBM0M7MEEyQiAwQTNDOworMEI0ODswQjQ4OzBCNDcgMEI1NjswQjQ4OzBCNDcgMEI1NjsKKzBCNEI7MEI0QjswQjQ3IDBCM0U7MEI0QjswQjQ3IDBCM0U7CiswQjRDOzBCNEM7MEI0NyAwQjU3OzBCNEM7MEI0NyAwQjU3OworMEI1QzswQjIxIDBCM0M7MEIyMSAwQjNDOzBCMjEgMEIzQzswQjIxIDBCM0M7CiswQjVEOzBCMjIgMEIzQzswQjIyIDBCM0M7MEIyMiAwQjNDOzBCMjIgMEIzQzsKKzBCOTQ7MEI5NDswQjkyIDBCRDc7MEI5NDswQjkyIDBCRDc7CiswQkNBOzBCQ0E7MEJDNiAwQkJFOzBCQ0E7MEJDNiAwQkJFOworMEJDQjswQkNCOzBCQzcgMEJCRTswQkNCOzBCQzcgMEJCRTsKKzBCQ0M7MEJDQzswQkM2IDBCRDc7MEJDQzswQkM2IDBCRDc7CiswQzQ4OzBDNDg7MEM0NiAwQzU2OzBDNDg7MEM0NiAwQzU2OworMENDMDswQ0MwOzBDQkYgMENENTswQ0MwOzBDQkYgMENENTsKKzBDQzc7MENDNzswQ0M2IDBDRDU7MENDNzswQ0M2IDBDRDU7CiswQ0M4OzBDQzg7MENDNiAwQ0Q2OzBDQzg7MENDNiAwQ0Q2OworMENDQTswQ0NBOzBDQzYgMENDMjswQ0NBOzBDQzYgMENDMjsKKzBDQ0I7MENDQjswQ0M2IDBDQzIgMENENTswQ0NCOzBDQzYgMENDMiAwQ0Q1OworMEQ0QTswRDRBOzBENDYgMEQzRTswRDRBOzBENDYgMEQzRTsKKzBENEI7MEQ0QjswRDQ3IDBEM0U7MEQ0QjswRDQ3IDBEM0U7CiswRDRDOzBENEM7MEQ0NiAwRDU3OzBENEM7MEQ0NiAwRDU3OworMEREQTswRERBOzBERDkgMERDQTswRERBOzBERDkgMERDQTsKKzBEREM7MEREQzswREQ5IDBEQ0Y7MEREQzswREQ5IDBEQ0Y7CiswREREOzBEREQ7MEREOSAwRENGIDBEQ0E7MERERDswREQ5IDBEQ0YgMERDQTsKKzBEREU7MERERTswREQ5IDBEREY7MERERTswREQ5IDBEREY7CiswRTMzOzBFMzM7MEUzMzswRTREIDBFMzI7MEU0RCAwRTMyOworMEVCMzswRUIzOzBFQjM7MEVDRCAwRUIyOzBFQ0QgMEVCMjsKKzBFREM7MEVEQzswRURDOzBFQUIgMEU5OTswRUFCIDBFOTk7CiswRUREOzBFREQ7MEVERDswRUFCIDBFQTE7MEVBQiAwRUExOworMEYwQzswRjBDOzBGMEM7MEYwQjswRjBCOworMEY0MzswRjQyIDBGQjc7MEY0MiAwRkI3OzBGNDIgMEZCNzswRjQyIDBGQjc7CiswRjREOzBGNEMgMEZCNzswRjRDIDBGQjc7MEY0QyAwRkI3OzBGNEMgMEZCNzsKKzBGNTI7MEY1MSAwRkI3OzBGNTEgMEZCNzswRjUxIDBGQjc7MEY1MSAwRkI3OworMEY1NzswRjU2IDBGQjc7MEY1NiAwRkI3OzBGNTYgMEZCNzswRjU2IDBGQjc7CiswRjVDOzBGNUIgMEZCNzswRjVCIDBGQjc7MEY1QiAwRkI3OzBGNUIgMEZCNzsKKzBGNjk7MEY0MCAwRkI1OzBGNDAgMEZCNTswRjQwIDBGQjU7MEY0MCAwRkI1OworMEY3MzswRjcxIDBGNzI7MEY3MSAwRjcyOzBGNzEgMEY3MjswRjcxIDBGNzI7CiswRjc1OzBGNzEgMEY3NDswRjcxIDBGNzQ7MEY3MSAwRjc0OzBGNzEgMEY3NDsKKzBGNzY7MEZCMiAwRjgwOzBGQjIgMEY4MDswRkIyIDBGODA7MEZCMiAwRjgwOworMEY3NzswRjc3OzBGNzc7MEZCMiAwRjcxIDBGODA7MEZCMiAwRjcxIDBGODA7CiswRjc4OzBGQjMgMEY4MDswRkIzIDBGODA7MEZCMyAwRjgwOzBGQjMgMEY4MDsKKzBGNzk7MEY3OTswRjc5OzBGQjMgMEY3MSAwRjgwOzBGQjMgMEY3MSAwRjgwOworMEY4MTswRjcxIDBGODA7MEY3MSAwRjgwOzBGNzEgMEY4MDswRjcxIDBGODA7CiswRjkzOzBGOTIgMEZCNzswRjkyIDBGQjc7MEY5MiAwRkI3OzBGOTIgMEZCNzsKKzBGOUQ7MEY5QyAwRkI3OzBGOUMgMEZCNzswRjlDIDBGQjc7MEY5QyAwRkI3OworMEZBMjswRkExIDBGQjc7MEZBMSAwRkI3OzBGQTEgMEZCNzswRkExIDBGQjc7CiswRkE3OzBGQTYgMEZCNzswRkE2IDBGQjc7MEZBNiAwRkI3OzBGQTYgMEZCNzsKKzBGQUM7MEZBQiAwRkI3OzBGQUIgMEZCNzswRkFCIDBGQjc7MEZBQiAwRkI3OworMEZCOTswRjkwIDBGQjU7MEY5MCAwRkI1OzBGOTAgMEZCNTswRjkwIDBGQjU7CisxMDI2OzEwMjY7MTAyNSAxMDJFOzEwMjY7MTAyNSAxMDJFOworMUUwMDsxRTAwOzAwNDEgMDMyNTsxRTAwOzAwNDEgMDMyNTsKKzFFMDE7MUUwMTswMDYxIDAzMjU7MUUwMTswMDYxIDAzMjU7CisxRTAyOzFFMDI7MDA0MiAwMzA3OzFFMDI7MDA0MiAwMzA3OworMUUwMzsxRTAzOzAwNjIgMDMwNzsxRTAzOzAwNjIgMDMwNzsKKzFFMDQ7MUUwNDswMDQyIDAzMjM7MUUwNDswMDQyIDAzMjM7CisxRTA1OzFFMDU7MDA2MiAwMzIzOzFFMDU7MDA2MiAwMzIzOworMUUwNjsxRTA2OzAwNDIgMDMzMTsxRTA2OzAwNDIgMDMzMTsKKzFFMDc7MUUwNzswMDYyIDAzMzE7MUUwNzswMDYyIDAzMzE7CisxRTA4OzFFMDg7MDA0MyAwMzI3IDAzMDE7MUUwODswMDQzIDAzMjcgMDMwMTsKKzFFMDk7MUUwOTswMDYzIDAzMjcgMDMwMTsxRTA5OzAwNjMgMDMyNyAwMzAxOworMUUwQTsxRTBBOzAwNDQgMDMwNzsxRTBBOzAwNDQgMDMwNzsKKzFFMEI7MUUwQjswMDY0IDAzMDc7MUUwQjswMDY0IDAzMDc7CisxRTBDOzFFMEM7MDA0NCAwMzIzOzFFMEM7MDA0NCAwMzIzOworMUUwRDsxRTBEOzAwNjQgMDMyMzsxRTBEOzAwNjQgMDMyMzsKKzFFMEU7MUUwRTswMDQ0IDAzMzE7MUUwRTswMDQ0IDAzMzE7CisxRTBGOzFFMEY7MDA2NCAwMzMxOzFFMEY7MDA2NCAwMzMxOworMUUxMDsxRTEwOzAwNDQgMDMyNzsxRTEwOzAwNDQgMDMyNzsKKzFFMTE7MUUxMTswMDY0IDAzMjc7MUUxMTswMDY0IDAzMjc7CisxRTEyOzFFMTI7MDA0NCAwMzJEOzFFMTI7MDA0NCAwMzJEOworMUUxMzsxRTEzOzAwNjQgMDMyRDsxRTEzOzAwNjQgMDMyRDsKKzFFMTQ7MUUxNDswMDQ1IDAzMDQgMDMwMDsxRTE0OzAwNDUgMDMwNCAwMzAwOworMUUxNTsxRTE1OzAwNjUgMDMwNCAwMzAwOzFFMTU7MDA2NSAwMzA0IDAzMDA7CisxRTE2OzFFMTY7MDA0NSAwMzA0IDAzMDE7MUUxNjswMDQ1IDAzMDQgMDMwMTsKKzFFMTc7MUUxNzswMDY1IDAzMDQgMDMwMTsxRTE3OzAwNjUgMDMwNCAwMzAxOworMUUxODsxRTE4OzAwNDUgMDMyRDsxRTE4OzAwNDUgMDMyRDsKKzFFMTk7MUUxOTswMDY1IDAzMkQ7MUUxOTswMDY1IDAzMkQ7CisxRTFBOzFFMUE7MDA0NSAwMzMwOzFFMUE7MDA0NSAwMzMwOworMUUxQjsxRTFCOzAwNjUgMDMzMDsxRTFCOzAwNjUgMDMzMDsKKzFFMUM7MUUxQzswMDQ1IDAzMjcgMDMwNjsxRTFDOzAwNDUgMDMyNyAwMzA2OworMUUxRDsxRTFEOzAwNjUgMDMyNyAwMzA2OzFFMUQ7MDA2NSAwMzI3IDAzMDY7CisxRTFFOzFFMUU7MDA0NiAwMzA3OzFFMUU7MDA0NiAwMzA3OworMUUxRjsxRTFGOzAwNjYgMDMwNzsxRTFGOzAwNjYgMDMwNzsKKzFFMjA7MUUyMDswMDQ3IDAzMDQ7MUUyMDswMDQ3IDAzMDQ7CisxRTIxOzFFMjE7MDA2NyAwMzA0OzFFMjE7MDA2NyAwMzA0OworMUUyMjsxRTIyOzAwNDggMDMwNzsxRTIyOzAwNDggMDMwNzsKKzFFMjM7MUUyMzswMDY4IDAzMDc7MUUyMzswMDY4IDAzMDc7CisxRTI0OzFFMjQ7MDA0OCAwMzIzOzFFMjQ7MDA0OCAwMzIzOworMUUyNTsxRTI1OzAwNjggMDMyMzsxRTI1OzAwNjggMDMyMzsKKzFFMjY7MUUyNjswMDQ4IDAzMDg7MUUyNjswMDQ4IDAzMDg7CisxRTI3OzFFMjc7MDA2OCAwMzA4OzFFMjc7MDA2OCAwMzA4OworMUUyODsxRTI4OzAwNDggMDMyNzsxRTI4OzAwNDggMDMyNzsKKzFFMjk7MUUyOTswMDY4IDAzMjc7MUUyOTswMDY4IDAzMjc7CisxRTJBOzFFMkE7MDA0OCAwMzJFOzFFMkE7MDA0OCAwMzJFOworMUUyQjsxRTJCOzAwNjggMDMyRTsxRTJCOzAwNjggMDMyRTsKKzFFMkM7MUUyQzswMDQ5IDAzMzA7MUUyQzswMDQ5IDAzMzA7CisxRTJEOzFFMkQ7MDA2OSAwMzMwOzFFMkQ7MDA2OSAwMzMwOworMUUyRTsxRTJFOzAwNDkgMDMwOCAwMzAxOzFFMkU7MDA0OSAwMzA4IDAzMDE7CisxRTJGOzFFMkY7MDA2OSAwMzA4IDAzMDE7MUUyRjswMDY5IDAzMDggMDMwMTsKKzFFMzA7MUUzMDswMDRCIDAzMDE7MUUzMDswMDRCIDAzMDE7CisxRTMxOzFFMzE7MDA2QiAwMzAxOzFFMzE7MDA2QiAwMzAxOworMUUzMjsxRTMyOzAwNEIgMDMyMzsxRTMyOzAwNEIgMDMyMzsKKzFFMzM7MUUzMzswMDZCIDAzMjM7MUUzMzswMDZCIDAzMjM7CisxRTM0OzFFMzQ7MDA0QiAwMzMxOzFFMzQ7MDA0QiAwMzMxOworMUUzNTsxRTM1OzAwNkIgMDMzMTsxRTM1OzAwNkIgMDMzMTsKKzFFMzY7MUUzNjswMDRDIDAzMjM7MUUzNjswMDRDIDAzMjM7CisxRTM3OzFFMzc7MDA2QyAwMzIzOzFFMzc7MDA2QyAwMzIzOworMUUzODsxRTM4OzAwNEMgMDMyMyAwMzA0OzFFMzg7MDA0QyAwMzIzIDAzMDQ7CisxRTM5OzFFMzk7MDA2QyAwMzIzIDAzMDQ7MUUzOTswMDZDIDAzMjMgMDMwNDsKKzFFM0E7MUUzQTswMDRDIDAzMzE7MUUzQTswMDRDIDAzMzE7CisxRTNCOzFFM0I7MDA2QyAwMzMxOzFFM0I7MDA2QyAwMzMxOworMUUzQzsxRTNDOzAwNEMgMDMyRDsxRTNDOzAwNEMgMDMyRDsKKzFFM0Q7MUUzRDswMDZDIDAzMkQ7MUUzRDswMDZDIDAzMkQ7CisxRTNFOzFFM0U7MDA0RCAwMzAxOzFFM0U7MDA0RCAwMzAxOworMUUzRjsxRTNGOzAwNkQgMDMwMTsxRTNGOzAwNkQgMDMwMTsKKzFFNDA7MUU0MDswMDREIDAzMDc7MUU0MDswMDREIDAzMDc7CisxRTQxOzFFNDE7MDA2RCAwMzA3OzFFNDE7MDA2RCAwMzA3OworMUU0MjsxRTQyOzAwNEQgMDMyMzsxRTQyOzAwNEQgMDMyMzsKKzFFNDM7MUU0MzswMDZEIDAzMjM7MUU0MzswMDZEIDAzMjM7CisxRTQ0OzFFNDQ7MDA0RSAwMzA3OzFFNDQ7MDA0RSAwMzA3OworMUU0NTsxRTQ1OzAwNkUgMDMwNzsxRTQ1OzAwNkUgMDMwNzsKKzFFNDY7MUU0NjswMDRFIDAzMjM7MUU0NjswMDRFIDAzMjM7CisxRTQ3OzFFNDc7MDA2RSAwMzIzOzFFNDc7MDA2RSAwMzIzOworMUU0ODsxRTQ4OzAwNEUgMDMzMTsxRTQ4OzAwNEUgMDMzMTsKKzFFNDk7MUU0OTswMDZFIDAzMzE7MUU0OTswMDZFIDAzMzE7CisxRTRBOzFFNEE7MDA0RSAwMzJEOzFFNEE7MDA0RSAwMzJEOworMUU0QjsxRTRCOzAwNkUgMDMyRDsxRTRCOzAwNkUgMDMyRDsKKzFFNEM7MUU0QzswMDRGIDAzMDMgMDMwMTsxRTRDOzAwNEYgMDMwMyAwMzAxOworMUU0RDsxRTREOzAwNkYgMDMwMyAwMzAxOzFFNEQ7MDA2RiAwMzAzIDAzMDE7CisxRTRFOzFFNEU7MDA0RiAwMzAzIDAzMDg7MUU0RTswMDRGIDAzMDMgMDMwODsKKzFFNEY7MUU0RjswMDZGIDAzMDMgMDMwODsxRTRGOzAwNkYgMDMwMyAwMzA4OworMUU1MDsxRTUwOzAwNEYgMDMwNCAwMzAwOzFFNTA7MDA0RiAwMzA0IDAzMDA7CisxRTUxOzFFNTE7MDA2RiAwMzA0IDAzMDA7MUU1MTswMDZGIDAzMDQgMDMwMDsKKzFFNTI7MUU1MjswMDRGIDAzMDQgMDMwMTsxRTUyOzAwNEYgMDMwNCAwMzAxOworMUU1MzsxRTUzOzAwNkYgMDMwNCAwMzAxOzFFNTM7MDA2RiAwMzA0IDAzMDE7CisxRTU0OzFFNTQ7MDA1MCAwMzAxOzFFNTQ7MDA1MCAwMzAxOworMUU1NTsxRTU1OzAwNzAgMDMwMTsxRTU1OzAwNzAgMDMwMTsKKzFFNTY7MUU1NjswMDUwIDAzMDc7MUU1NjswMDUwIDAzMDc7CisxRTU3OzFFNTc7MDA3MCAwMzA3OzFFNTc7MDA3MCAwMzA3OworMUU1ODsxRTU4OzAwNTIgMDMwNzsxRTU4OzAwNTIgMDMwNzsKKzFFNTk7MUU1OTswMDcyIDAzMDc7MUU1OTswMDcyIDAzMDc7CisxRTVBOzFFNUE7MDA1MiAwMzIzOzFFNUE7MDA1MiAwMzIzOworMUU1QjsxRTVCOzAwNzIgMDMyMzsxRTVCOzAwNzIgMDMyMzsKKzFFNUM7MUU1QzswMDUyIDAzMjMgMDMwNDsxRTVDOzAwNTIgMDMyMyAwMzA0OworMUU1RDsxRTVEOzAwNzIgMDMyMyAwMzA0OzFFNUQ7MDA3MiAwMzIzIDAzMDQ7CisxRTVFOzFFNUU7MDA1MiAwMzMxOzFFNUU7MDA1MiAwMzMxOworMUU1RjsxRTVGOzAwNzIgMDMzMTsxRTVGOzAwNzIgMDMzMTsKKzFFNjA7MUU2MDswMDUzIDAzMDc7MUU2MDswMDUzIDAzMDc7CisxRTYxOzFFNjE7MDA3MyAwMzA3OzFFNjE7MDA3MyAwMzA3OworMUU2MjsxRTYyOzAwNTMgMDMyMzsxRTYyOzAwNTMgMDMyMzsKKzFFNjM7MUU2MzswMDczIDAzMjM7MUU2MzswMDczIDAzMjM7CisxRTY0OzFFNjQ7MDA1MyAwMzAxIDAzMDc7MUU2NDswMDUzIDAzMDEgMDMwNzsKKzFFNjU7MUU2NTswMDczIDAzMDEgMDMwNzsxRTY1OzAwNzMgMDMwMSAwMzA3OworMUU2NjsxRTY2OzAwNTMgMDMwQyAwMzA3OzFFNjY7MDA1MyAwMzBDIDAzMDc7CisxRTY3OzFFNjc7MDA3MyAwMzBDIDAzMDc7MUU2NzswMDczIDAzMEMgMDMwNzsKKzFFNjg7MUU2ODswMDUzIDAzMjMgMDMwNzsxRTY4OzAwNTMgMDMyMyAwMzA3OworMUU2OTsxRTY5OzAwNzMgMDMyMyAwMzA3OzFFNjk7MDA3MyAwMzIzIDAzMDc7CisxRTZBOzFFNkE7MDA1NCAwMzA3OzFFNkE7MDA1NCAwMzA3OworMUU2QjsxRTZCOzAwNzQgMDMwNzsxRTZCOzAwNzQgMDMwNzsKKzFFNkM7MUU2QzswMDU0IDAzMjM7MUU2QzswMDU0IDAzMjM7CisxRTZEOzFFNkQ7MDA3NCAwMzIzOzFFNkQ7MDA3NCAwMzIzOworMUU2RTsxRTZFOzAwNTQgMDMzMTsxRTZFOzAwNTQgMDMzMTsKKzFFNkY7MUU2RjswMDc0IDAzMzE7MUU2RjswMDc0IDAzMzE7CisxRTcwOzFFNzA7MDA1NCAwMzJEOzFFNzA7MDA1NCAwMzJEOworMUU3MTsxRTcxOzAwNzQgMDMyRDsxRTcxOzAwNzQgMDMyRDsKKzFFNzI7MUU3MjswMDU1IDAzMjQ7MUU3MjswMDU1IDAzMjQ7CisxRTczOzFFNzM7MDA3NSAwMzI0OzFFNzM7MDA3NSAwMzI0OworMUU3NDsxRTc0OzAwNTUgMDMzMDsxRTc0OzAwNTUgMDMzMDsKKzFFNzU7MUU3NTswMDc1IDAzMzA7MUU3NTswMDc1IDAzMzA7CisxRTc2OzFFNzY7MDA1NSAwMzJEOzFFNzY7MDA1NSAwMzJEOworMUU3NzsxRTc3OzAwNzUgMDMyRDsxRTc3OzAwNzUgMDMyRDsKKzFFNzg7MUU3ODswMDU1IDAzMDMgMDMwMTsxRTc4OzAwNTUgMDMwMyAwMzAxOworMUU3OTsxRTc5OzAwNzUgMDMwMyAwMzAxOzFFNzk7MDA3NSAwMzAzIDAzMDE7CisxRTdBOzFFN0E7MDA1NSAwMzA0IDAzMDg7MUU3QTswMDU1IDAzMDQgMDMwODsKKzFFN0I7MUU3QjswMDc1IDAzMDQgMDMwODsxRTdCOzAwNzUgMDMwNCAwMzA4OworMUU3QzsxRTdDOzAwNTYgMDMwMzsxRTdDOzAwNTYgMDMwMzsKKzFFN0Q7MUU3RDswMDc2IDAzMDM7MUU3RDswMDc2IDAzMDM7CisxRTdFOzFFN0U7MDA1NiAwMzIzOzFFN0U7MDA1NiAwMzIzOworMUU3RjsxRTdGOzAwNzYgMDMyMzsxRTdGOzAwNzYgMDMyMzsKKzFFODA7MUU4MDswMDU3IDAzMDA7MUU4MDswMDU3IDAzMDA7CisxRTgxOzFFODE7MDA3NyAwMzAwOzFFODE7MDA3NyAwMzAwOworMUU4MjsxRTgyOzAwNTcgMDMwMTsxRTgyOzAwNTcgMDMwMTsKKzFFODM7MUU4MzswMDc3IDAzMDE7MUU4MzswMDc3IDAzMDE7CisxRTg0OzFFODQ7MDA1NyAwMzA4OzFFODQ7MDA1NyAwMzA4OworMUU4NTsxRTg1OzAwNzcgMDMwODsxRTg1OzAwNzcgMDMwODsKKzFFODY7MUU4NjswMDU3IDAzMDc7MUU4NjswMDU3IDAzMDc7CisxRTg3OzFFODc7MDA3NyAwMzA3OzFFODc7MDA3NyAwMzA3OworMUU4ODsxRTg4OzAwNTcgMDMyMzsxRTg4OzAwNTcgMDMyMzsKKzFFODk7MUU4OTswMDc3IDAzMjM7MUU4OTswMDc3IDAzMjM7CisxRThBOzFFOEE7MDA1OCAwMzA3OzFFOEE7MDA1OCAwMzA3OworMUU4QjsxRThCOzAwNzggMDMwNzsxRThCOzAwNzggMDMwNzsKKzFFOEM7MUU4QzswMDU4IDAzMDg7MUU4QzswMDU4IDAzMDg7CisxRThEOzFFOEQ7MDA3OCAwMzA4OzFFOEQ7MDA3OCAwMzA4OworMUU4RTsxRThFOzAwNTkgMDMwNzsxRThFOzAwNTkgMDMwNzsKKzFFOEY7MUU4RjswMDc5IDAzMDc7MUU4RjswMDc5IDAzMDc7CisxRTkwOzFFOTA7MDA1QSAwMzAyOzFFOTA7MDA1QSAwMzAyOworMUU5MTsxRTkxOzAwN0EgMDMwMjsxRTkxOzAwN0EgMDMwMjsKKzFFOTI7MUU5MjswMDVBIDAzMjM7MUU5MjswMDVBIDAzMjM7CisxRTkzOzFFOTM7MDA3QSAwMzIzOzFFOTM7MDA3QSAwMzIzOworMUU5NDsxRTk0OzAwNUEgMDMzMTsxRTk0OzAwNUEgMDMzMTsKKzFFOTU7MUU5NTswMDdBIDAzMzE7MUU5NTswMDdBIDAzMzE7CisxRTk2OzFFOTY7MDA2OCAwMzMxOzFFOTY7MDA2OCAwMzMxOworMUU5NzsxRTk3OzAwNzQgMDMwODsxRTk3OzAwNzQgMDMwODsKKzFFOTg7MUU5ODswMDc3IDAzMEE7MUU5ODswMDc3IDAzMEE7CisxRTk5OzFFOTk7MDA3OSAwMzBBOzFFOTk7MDA3OSAwMzBBOworMUU5QTsxRTlBOzFFOUE7MDA2MSAwMkJFOzAwNjEgMDJCRTsKKzFFOUI7MUU5QjswMTdGIDAzMDc7MUU2MTswMDczIDAzMDc7CisxRUEwOzFFQTA7MDA0MSAwMzIzOzFFQTA7MDA0MSAwMzIzOworMUVBMTsxRUExOzAwNjEgMDMyMzsxRUExOzAwNjEgMDMyMzsKKzFFQTI7MUVBMjswMDQxIDAzMDk7MUVBMjswMDQxIDAzMDk7CisxRUEzOzFFQTM7MDA2MSAwMzA5OzFFQTM7MDA2MSAwMzA5OworMUVBNDsxRUE0OzAwNDEgMDMwMiAwMzAxOzFFQTQ7MDA0MSAwMzAyIDAzMDE7CisxRUE1OzFFQTU7MDA2MSAwMzAyIDAzMDE7MUVBNTswMDYxIDAzMDIgMDMwMTsKKzFFQTY7MUVBNjswMDQxIDAzMDIgMDMwMDsxRUE2OzAwNDEgMDMwMiAwMzAwOworMUVBNzsxRUE3OzAwNjEgMDMwMiAwMzAwOzFFQTc7MDA2MSAwMzAyIDAzMDA7CisxRUE4OzFFQTg7MDA0MSAwMzAyIDAzMDk7MUVBODswMDQxIDAzMDIgMDMwOTsKKzFFQTk7MUVBOTswMDYxIDAzMDIgMDMwOTsxRUE5OzAwNjEgMDMwMiAwMzA5OworMUVBQTsxRUFBOzAwNDEgMDMwMiAwMzAzOzFFQUE7MDA0MSAwMzAyIDAzMDM7CisxRUFCOzFFQUI7MDA2MSAwMzAyIDAzMDM7MUVBQjswMDYxIDAzMDIgMDMwMzsKKzFFQUM7MUVBQzswMDQxIDAzMjMgMDMwMjsxRUFDOzAwNDEgMDMyMyAwMzAyOworMUVBRDsxRUFEOzAwNjEgMDMyMyAwMzAyOzFFQUQ7MDA2MSAwMzIzIDAzMDI7CisxRUFFOzFFQUU7MDA0MSAwMzA2IDAzMDE7MUVBRTswMDQxIDAzMDYgMDMwMTsKKzFFQUY7MUVBRjswMDYxIDAzMDYgMDMwMTsxRUFGOzAwNjEgMDMwNiAwMzAxOworMUVCMDsxRUIwOzAwNDEgMDMwNiAwMzAwOzFFQjA7MDA0MSAwMzA2IDAzMDA7CisxRUIxOzFFQjE7MDA2MSAwMzA2IDAzMDA7MUVCMTswMDYxIDAzMDYgMDMwMDsKKzFFQjI7MUVCMjswMDQxIDAzMDYgMDMwOTsxRUIyOzAwNDEgMDMwNiAwMzA5OworMUVCMzsxRUIzOzAwNjEgMDMwNiAwMzA5OzFFQjM7MDA2MSAwMzA2IDAzMDk7CisxRUI0OzFFQjQ7MDA0MSAwMzA2IDAzMDM7MUVCNDswMDQxIDAzMDYgMDMwMzsKKzFFQjU7MUVCNTswMDYxIDAzMDYgMDMwMzsxRUI1OzAwNjEgMDMwNiAwMzAzOworMUVCNjsxRUI2OzAwNDEgMDMyMyAwMzA2OzFFQjY7MDA0MSAwMzIzIDAzMDY7CisxRUI3OzFFQjc7MDA2MSAwMzIzIDAzMDY7MUVCNzswMDYxIDAzMjMgMDMwNjsKKzFFQjg7MUVCODswMDQ1IDAzMjM7MUVCODswMDQ1IDAzMjM7CisxRUI5OzFFQjk7MDA2NSAwMzIzOzFFQjk7MDA2NSAwMzIzOworMUVCQTsxRUJBOzAwNDUgMDMwOTsxRUJBOzAwNDUgMDMwOTsKKzFFQkI7MUVCQjswMDY1IDAzMDk7MUVCQjswMDY1IDAzMDk7CisxRUJDOzFFQkM7MDA0NSAwMzAzOzFFQkM7MDA0NSAwMzAzOworMUVCRDsxRUJEOzAwNjUgMDMwMzsxRUJEOzAwNjUgMDMwMzsKKzFFQkU7MUVCRTswMDQ1IDAzMDIgMDMwMTsxRUJFOzAwNDUgMDMwMiAwMzAxOworMUVCRjsxRUJGOzAwNjUgMDMwMiAwMzAxOzFFQkY7MDA2NSAwMzAyIDAzMDE7CisxRUMwOzFFQzA7MDA0NSAwMzAyIDAzMDA7MUVDMDswMDQ1IDAzMDIgMDMwMDsKKzFFQzE7MUVDMTswMDY1IDAzMDIgMDMwMDsxRUMxOzAwNjUgMDMwMiAwMzAwOworMUVDMjsxRUMyOzAwNDUgMDMwMiAwMzA5OzFFQzI7MDA0NSAwMzAyIDAzMDk7CisxRUMzOzFFQzM7MDA2NSAwMzAyIDAzMDk7MUVDMzswMDY1IDAzMDIgMDMwOTsKKzFFQzQ7MUVDNDswMDQ1IDAzMDIgMDMwMzsxRUM0OzAwNDUgMDMwMiAwMzAzOworMUVDNTsxRUM1OzAwNjUgMDMwMiAwMzAzOzFFQzU7MDA2NSAwMzAyIDAzMDM7CisxRUM2OzFFQzY7MDA0NSAwMzIzIDAzMDI7MUVDNjswMDQ1IDAzMjMgMDMwMjsKKzFFQzc7MUVDNzswMDY1IDAzMjMgMDMwMjsxRUM3OzAwNjUgMDMyMyAwMzAyOworMUVDODsxRUM4OzAwNDkgMDMwOTsxRUM4OzAwNDkgMDMwOTsKKzFFQzk7MUVDOTswMDY5IDAzMDk7MUVDOTswMDY5IDAzMDk7CisxRUNBOzFFQ0E7MDA0OSAwMzIzOzFFQ0E7MDA0OSAwMzIzOworMUVDQjsxRUNCOzAwNjkgMDMyMzsxRUNCOzAwNjkgMDMyMzsKKzFFQ0M7MUVDQzswMDRGIDAzMjM7MUVDQzswMDRGIDAzMjM7CisxRUNEOzFFQ0Q7MDA2RiAwMzIzOzFFQ0Q7MDA2RiAwMzIzOworMUVDRTsxRUNFOzAwNEYgMDMwOTsxRUNFOzAwNEYgMDMwOTsKKzFFQ0Y7MUVDRjswMDZGIDAzMDk7MUVDRjswMDZGIDAzMDk7CisxRUQwOzFFRDA7MDA0RiAwMzAyIDAzMDE7MUVEMDswMDRGIDAzMDIgMDMwMTsKKzFFRDE7MUVEMTswMDZGIDAzMDIgMDMwMTsxRUQxOzAwNkYgMDMwMiAwMzAxOworMUVEMjsxRUQyOzAwNEYgMDMwMiAwMzAwOzFFRDI7MDA0RiAwMzAyIDAzMDA7CisxRUQzOzFFRDM7MDA2RiAwMzAyIDAzMDA7MUVEMzswMDZGIDAzMDIgMDMwMDsKKzFFRDQ7MUVENDswMDRGIDAzMDIgMDMwOTsxRUQ0OzAwNEYgMDMwMiAwMzA5OworMUVENTsxRUQ1OzAwNkYgMDMwMiAwMzA5OzFFRDU7MDA2RiAwMzAyIDAzMDk7CisxRUQ2OzFFRDY7MDA0RiAwMzAyIDAzMDM7MUVENjswMDRGIDAzMDIgMDMwMzsKKzFFRDc7MUVENzswMDZGIDAzMDIgMDMwMzsxRUQ3OzAwNkYgMDMwMiAwMzAzOworMUVEODsxRUQ4OzAwNEYgMDMyMyAwMzAyOzFFRDg7MDA0RiAwMzIzIDAzMDI7CisxRUQ5OzFFRDk7MDA2RiAwMzIzIDAzMDI7MUVEOTswMDZGIDAzMjMgMDMwMjsKKzFFREE7MUVEQTswMDRGIDAzMUIgMDMwMTsxRURBOzAwNEYgMDMxQiAwMzAxOworMUVEQjsxRURCOzAwNkYgMDMxQiAwMzAxOzFFREI7MDA2RiAwMzFCIDAzMDE7CisxRURDOzFFREM7MDA0RiAwMzFCIDAzMDA7MUVEQzswMDRGIDAzMUIgMDMwMDsKKzFFREQ7MUVERDswMDZGIDAzMUIgMDMwMDsxRUREOzAwNkYgMDMxQiAwMzAwOworMUVERTsxRURFOzAwNEYgMDMxQiAwMzA5OzFFREU7MDA0RiAwMzFCIDAzMDk7CisxRURGOzFFREY7MDA2RiAwMzFCIDAzMDk7MUVERjswMDZGIDAzMUIgMDMwOTsKKzFFRTA7MUVFMDswMDRGIDAzMUIgMDMwMzsxRUUwOzAwNEYgMDMxQiAwMzAzOworMUVFMTsxRUUxOzAwNkYgMDMxQiAwMzAzOzFFRTE7MDA2RiAwMzFCIDAzMDM7CisxRUUyOzFFRTI7MDA0RiAwMzFCIDAzMjM7MUVFMjswMDRGIDAzMUIgMDMyMzsKKzFFRTM7MUVFMzswMDZGIDAzMUIgMDMyMzsxRUUzOzAwNkYgMDMxQiAwMzIzOworMUVFNDsxRUU0OzAwNTUgMDMyMzsxRUU0OzAwNTUgMDMyMzsKKzFFRTU7MUVFNTswMDc1IDAzMjM7MUVFNTswMDc1IDAzMjM7CisxRUU2OzFFRTY7MDA1NSAwMzA5OzFFRTY7MDA1NSAwMzA5OworMUVFNzsxRUU3OzAwNzUgMDMwOTsxRUU3OzAwNzUgMDMwOTsKKzFFRTg7MUVFODswMDU1IDAzMUIgMDMwMTsxRUU4OzAwNTUgMDMxQiAwMzAxOworMUVFOTsxRUU5OzAwNzUgMDMxQiAwMzAxOzFFRTk7MDA3NSAwMzFCIDAzMDE7CisxRUVBOzFFRUE7MDA1NSAwMzFCIDAzMDA7MUVFQTswMDU1IDAzMUIgMDMwMDsKKzFFRUI7MUVFQjswMDc1IDAzMUIgMDMwMDsxRUVCOzAwNzUgMDMxQiAwMzAwOworMUVFQzsxRUVDOzAwNTUgMDMxQiAwMzA5OzFFRUM7MDA1NSAwMzFCIDAzMDk7CisxRUVEOzFFRUQ7MDA3NSAwMzFCIDAzMDk7MUVFRDswMDc1IDAzMUIgMDMwOTsKKzFFRUU7MUVFRTswMDU1IDAzMUIgMDMwMzsxRUVFOzAwNTUgMDMxQiAwMzAzOworMUVFRjsxRUVGOzAwNzUgMDMxQiAwMzAzOzFFRUY7MDA3NSAwMzFCIDAzMDM7CisxRUYwOzFFRjA7MDA1NSAwMzFCIDAzMjM7MUVGMDswMDU1IDAzMUIgMDMyMzsKKzFFRjE7MUVGMTswMDc1IDAzMUIgMDMyMzsxRUYxOzAwNzUgMDMxQiAwMzIzOworMUVGMjsxRUYyOzAwNTkgMDMwMDsxRUYyOzAwNTkgMDMwMDsKKzFFRjM7MUVGMzswMDc5IDAzMDA7MUVGMzswMDc5IDAzMDA7CisxRUY0OzFFRjQ7MDA1OSAwMzIzOzFFRjQ7MDA1OSAwMzIzOworMUVGNTsxRUY1OzAwNzkgMDMyMzsxRUY1OzAwNzkgMDMyMzsKKzFFRjY7MUVGNjswMDU5IDAzMDk7MUVGNjswMDU5IDAzMDk7CisxRUY3OzFFRjc7MDA3OSAwMzA5OzFFRjc7MDA3OSAwMzA5OworMUVGODsxRUY4OzAwNTkgMDMwMzsxRUY4OzAwNTkgMDMwMzsKKzFFRjk7MUVGOTswMDc5IDAzMDM7MUVGOTswMDc5IDAzMDM7CisxRjAwOzFGMDA7MDNCMSAwMzEzOzFGMDA7MDNCMSAwMzEzOworMUYwMTsxRjAxOzAzQjEgMDMxNDsxRjAxOzAzQjEgMDMxNDsKKzFGMDI7MUYwMjswM0IxIDAzMTMgMDMwMDsxRjAyOzAzQjEgMDMxMyAwMzAwOworMUYwMzsxRjAzOzAzQjEgMDMxNCAwMzAwOzFGMDM7MDNCMSAwMzE0IDAzMDA7CisxRjA0OzFGMDQ7MDNCMSAwMzEzIDAzMDE7MUYwNDswM0IxIDAzMTMgMDMwMTsKKzFGMDU7MUYwNTswM0IxIDAzMTQgMDMwMTsxRjA1OzAzQjEgMDMxNCAwMzAxOworMUYwNjsxRjA2OzAzQjEgMDMxMyAwMzQyOzFGMDY7MDNCMSAwMzEzIDAzNDI7CisxRjA3OzFGMDc7MDNCMSAwMzE0IDAzNDI7MUYwNzswM0IxIDAzMTQgMDM0MjsKKzFGMDg7MUYwODswMzkxIDAzMTM7MUYwODswMzkxIDAzMTM7CisxRjA5OzFGMDk7MDM5MSAwMzE0OzFGMDk7MDM5MSAwMzE0OworMUYwQTsxRjBBOzAzOTEgMDMxMyAwMzAwOzFGMEE7MDM5MSAwMzEzIDAzMDA7CisxRjBCOzFGMEI7MDM5MSAwMzE0IDAzMDA7MUYwQjswMzkxIDAzMTQgMDMwMDsKKzFGMEM7MUYwQzswMzkxIDAzMTMgMDMwMTsxRjBDOzAzOTEgMDMxMyAwMzAxOworMUYwRDsxRjBEOzAzOTEgMDMxNCAwMzAxOzFGMEQ7MDM5MSAwMzE0IDAzMDE7CisxRjBFOzFGMEU7MDM5MSAwMzEzIDAzNDI7MUYwRTswMzkxIDAzMTMgMDM0MjsKKzFGMEY7MUYwRjswMzkxIDAzMTQgMDM0MjsxRjBGOzAzOTEgMDMxNCAwMzQyOworMUYxMDsxRjEwOzAzQjUgMDMxMzsxRjEwOzAzQjUgMDMxMzsKKzFGMTE7MUYxMTswM0I1IDAzMTQ7MUYxMTswM0I1IDAzMTQ7CisxRjEyOzFGMTI7MDNCNSAwMzEzIDAzMDA7MUYxMjswM0I1IDAzMTMgMDMwMDsKKzFGMTM7MUYxMzswM0I1IDAzMTQgMDMwMDsxRjEzOzAzQjUgMDMxNCAwMzAwOworMUYxNDsxRjE0OzAzQjUgMDMxMyAwMzAxOzFGMTQ7MDNCNSAwMzEzIDAzMDE7CisxRjE1OzFGMTU7MDNCNSAwMzE0IDAzMDE7MUYxNTswM0I1IDAzMTQgMDMwMTsKKzFGMTg7MUYxODswMzk1IDAzMTM7MUYxODswMzk1IDAzMTM7CisxRjE5OzFGMTk7MDM5NSAwMzE0OzFGMTk7MDM5NSAwMzE0OworMUYxQTsxRjFBOzAzOTUgMDMxMyAwMzAwOzFGMUE7MDM5NSAwMzEzIDAzMDA7CisxRjFCOzFGMUI7MDM5NSAwMzE0IDAzMDA7MUYxQjswMzk1IDAzMTQgMDMwMDsKKzFGMUM7MUYxQzswMzk1IDAzMTMgMDMwMTsxRjFDOzAzOTUgMDMxMyAwMzAxOworMUYxRDsxRjFEOzAzOTUgMDMxNCAwMzAxOzFGMUQ7MDM5NSAwMzE0IDAzMDE7CisxRjIwOzFGMjA7MDNCNyAwMzEzOzFGMjA7MDNCNyAwMzEzOworMUYyMTsxRjIxOzAzQjcgMDMxNDsxRjIxOzAzQjcgMDMxNDsKKzFGMjI7MUYyMjswM0I3IDAzMTMgMDMwMDsxRjIyOzAzQjcgMDMxMyAwMzAwOworMUYyMzsxRjIzOzAzQjcgMDMxNCAwMzAwOzFGMjM7MDNCNyAwMzE0IDAzMDA7CisxRjI0OzFGMjQ7MDNCNyAwMzEzIDAzMDE7MUYyNDswM0I3IDAzMTMgMDMwMTsKKzFGMjU7MUYyNTswM0I3IDAzMTQgMDMwMTsxRjI1OzAzQjcgMDMxNCAwMzAxOworMUYyNjsxRjI2OzAzQjcgMDMxMyAwMzQyOzFGMjY7MDNCNyAwMzEzIDAzNDI7CisxRjI3OzFGMjc7MDNCNyAwMzE0IDAzNDI7MUYyNzswM0I3IDAzMTQgMDM0MjsKKzFGMjg7MUYyODswMzk3IDAzMTM7MUYyODswMzk3IDAzMTM7CisxRjI5OzFGMjk7MDM5NyAwMzE0OzFGMjk7MDM5NyAwMzE0OworMUYyQTsxRjJBOzAzOTcgMDMxMyAwMzAwOzFGMkE7MDM5NyAwMzEzIDAzMDA7CisxRjJCOzFGMkI7MDM5NyAwMzE0IDAzMDA7MUYyQjswMzk3IDAzMTQgMDMwMDsKKzFGMkM7MUYyQzswMzk3IDAzMTMgMDMwMTsxRjJDOzAzOTcgMDMxMyAwMzAxOworMUYyRDsxRjJEOzAzOTcgMDMxNCAwMzAxOzFGMkQ7MDM5NyAwMzE0IDAzMDE7CisxRjJFOzFGMkU7MDM5NyAwMzEzIDAzNDI7MUYyRTswMzk3IDAzMTMgMDM0MjsKKzFGMkY7MUYyRjswMzk3IDAzMTQgMDM0MjsxRjJGOzAzOTcgMDMxNCAwMzQyOworMUYzMDsxRjMwOzAzQjkgMDMxMzsxRjMwOzAzQjkgMDMxMzsKKzFGMzE7MUYzMTswM0I5IDAzMTQ7MUYzMTswM0I5IDAzMTQ7CisxRjMyOzFGMzI7MDNCOSAwMzEzIDAzMDA7MUYzMjswM0I5IDAzMTMgMDMwMDsKKzFGMzM7MUYzMzswM0I5IDAzMTQgMDMwMDsxRjMzOzAzQjkgMDMxNCAwMzAwOworMUYzNDsxRjM0OzAzQjkgMDMxMyAwMzAxOzFGMzQ7MDNCOSAwMzEzIDAzMDE7CisxRjM1OzFGMzU7MDNCOSAwMzE0IDAzMDE7MUYzNTswM0I5IDAzMTQgMDMwMTsKKzFGMzY7MUYzNjswM0I5IDAzMTMgMDM0MjsxRjM2OzAzQjkgMDMxMyAwMzQyOworMUYzNzsxRjM3OzAzQjkgMDMxNCAwMzQyOzFGMzc7MDNCOSAwMzE0IDAzNDI7CisxRjM4OzFGMzg7MDM5OSAwMzEzOzFGMzg7MDM5OSAwMzEzOworMUYzOTsxRjM5OzAzOTkgMDMxNDsxRjM5OzAzOTkgMDMxNDsKKzFGM0E7MUYzQTswMzk5IDAzMTMgMDMwMDsxRjNBOzAzOTkgMDMxMyAwMzAwOworMUYzQjsxRjNCOzAzOTkgMDMxNCAwMzAwOzFGM0I7MDM5OSAwMzE0IDAzMDA7CisxRjNDOzFGM0M7MDM5OSAwMzEzIDAzMDE7MUYzQzswMzk5IDAzMTMgMDMwMTsKKzFGM0Q7MUYzRDswMzk5IDAzMTQgMDMwMTsxRjNEOzAzOTkgMDMxNCAwMzAxOworMUYzRTsxRjNFOzAzOTkgMDMxMyAwMzQyOzFGM0U7MDM5OSAwMzEzIDAzNDI7CisxRjNGOzFGM0Y7MDM5OSAwMzE0IDAzNDI7MUYzRjswMzk5IDAzMTQgMDM0MjsKKzFGNDA7MUY0MDswM0JGIDAzMTM7MUY0MDswM0JGIDAzMTM7CisxRjQxOzFGNDE7MDNCRiAwMzE0OzFGNDE7MDNCRiAwMzE0OworMUY0MjsxRjQyOzAzQkYgMDMxMyAwMzAwOzFGNDI7MDNCRiAwMzEzIDAzMDA7CisxRjQzOzFGNDM7MDNCRiAwMzE0IDAzMDA7MUY0MzswM0JGIDAzMTQgMDMwMDsKKzFGNDQ7MUY0NDswM0JGIDAzMTMgMDMwMTsxRjQ0OzAzQkYgMDMxMyAwMzAxOworMUY0NTsxRjQ1OzAzQkYgMDMxNCAwMzAxOzFGNDU7MDNCRiAwMzE0IDAzMDE7CisxRjQ4OzFGNDg7MDM5RiAwMzEzOzFGNDg7MDM5RiAwMzEzOworMUY0OTsxRjQ5OzAzOUYgMDMxNDsxRjQ5OzAzOUYgMDMxNDsKKzFGNEE7MUY0QTswMzlGIDAzMTMgMDMwMDsxRjRBOzAzOUYgMDMxMyAwMzAwOworMUY0QjsxRjRCOzAzOUYgMDMxNCAwMzAwOzFGNEI7MDM5RiAwMzE0IDAzMDA7CisxRjRDOzFGNEM7MDM5RiAwMzEzIDAzMDE7MUY0QzswMzlGIDAzMTMgMDMwMTsKKzFGNEQ7MUY0RDswMzlGIDAzMTQgMDMwMTsxRjREOzAzOUYgMDMxNCAwMzAxOworMUY1MDsxRjUwOzAzQzUgMDMxMzsxRjUwOzAzQzUgMDMxMzsKKzFGNTE7MUY1MTswM0M1IDAzMTQ7MUY1MTswM0M1IDAzMTQ7CisxRjUyOzFGNTI7MDNDNSAwMzEzIDAzMDA7MUY1MjswM0M1IDAzMTMgMDMwMDsKKzFGNTM7MUY1MzswM0M1IDAzMTQgMDMwMDsxRjUzOzAzQzUgMDMxNCAwMzAwOworMUY1NDsxRjU0OzAzQzUgMDMxMyAwMzAxOzFGNTQ7MDNDNSAwMzEzIDAzMDE7CisxRjU1OzFGNTU7MDNDNSAwMzE0IDAzMDE7MUY1NTswM0M1IDAzMTQgMDMwMTsKKzFGNTY7MUY1NjswM0M1IDAzMTMgMDM0MjsxRjU2OzAzQzUgMDMxMyAwMzQyOworMUY1NzsxRjU3OzAzQzUgMDMxNCAwMzQyOzFGNTc7MDNDNSAwMzE0IDAzNDI7CisxRjU5OzFGNTk7MDNBNSAwMzE0OzFGNTk7MDNBNSAwMzE0OworMUY1QjsxRjVCOzAzQTUgMDMxNCAwMzAwOzFGNUI7MDNBNSAwMzE0IDAzMDA7CisxRjVEOzFGNUQ7MDNBNSAwMzE0IDAzMDE7MUY1RDswM0E1IDAzMTQgMDMwMTsKKzFGNUY7MUY1RjswM0E1IDAzMTQgMDM0MjsxRjVGOzAzQTUgMDMxNCAwMzQyOworMUY2MDsxRjYwOzAzQzkgMDMxMzsxRjYwOzAzQzkgMDMxMzsKKzFGNjE7MUY2MTswM0M5IDAzMTQ7MUY2MTswM0M5IDAzMTQ7CisxRjYyOzFGNjI7MDNDOSAwMzEzIDAzMDA7MUY2MjswM0M5IDAzMTMgMDMwMDsKKzFGNjM7MUY2MzswM0M5IDAzMTQgMDMwMDsxRjYzOzAzQzkgMDMxNCAwMzAwOworMUY2NDsxRjY0OzAzQzkgMDMxMyAwMzAxOzFGNjQ7MDNDOSAwMzEzIDAzMDE7CisxRjY1OzFGNjU7MDNDOSAwMzE0IDAzMDE7MUY2NTswM0M5IDAzMTQgMDMwMTsKKzFGNjY7MUY2NjswM0M5IDAzMTMgMDM0MjsxRjY2OzAzQzkgMDMxMyAwMzQyOworMUY2NzsxRjY3OzAzQzkgMDMxNCAwMzQyOzFGNjc7MDNDOSAwMzE0IDAzNDI7CisxRjY4OzFGNjg7MDNBOSAwMzEzOzFGNjg7MDNBOSAwMzEzOworMUY2OTsxRjY5OzAzQTkgMDMxNDsxRjY5OzAzQTkgMDMxNDsKKzFGNkE7MUY2QTswM0E5IDAzMTMgMDMwMDsxRjZBOzAzQTkgMDMxMyAwMzAwOworMUY2QjsxRjZCOzAzQTkgMDMxNCAwMzAwOzFGNkI7MDNBOSAwMzE0IDAzMDA7CisxRjZDOzFGNkM7MDNBOSAwMzEzIDAzMDE7MUY2QzswM0E5IDAzMTMgMDMwMTsKKzFGNkQ7MUY2RDswM0E5IDAzMTQgMDMwMTsxRjZEOzAzQTkgMDMxNCAwMzAxOworMUY2RTsxRjZFOzAzQTkgMDMxMyAwMzQyOzFGNkU7MDNBOSAwMzEzIDAzNDI7CisxRjZGOzFGNkY7MDNBOSAwMzE0IDAzNDI7MUY2RjswM0E5IDAzMTQgMDM0MjsKKzFGNzA7MUY3MDswM0IxIDAzMDA7MUY3MDswM0IxIDAzMDA7CisxRjcxOzAzQUM7MDNCMSAwMzAxOzAzQUM7MDNCMSAwMzAxOworMUY3MjsxRjcyOzAzQjUgMDMwMDsxRjcyOzAzQjUgMDMwMDsKKzFGNzM7MDNBRDswM0I1IDAzMDE7MDNBRDswM0I1IDAzMDE7CisxRjc0OzFGNzQ7MDNCNyAwMzAwOzFGNzQ7MDNCNyAwMzAwOworMUY3NTswM0FFOzAzQjcgMDMwMTswM0FFOzAzQjcgMDMwMTsKKzFGNzY7MUY3NjswM0I5IDAzMDA7MUY3NjswM0I5IDAzMDA7CisxRjc3OzAzQUY7MDNCOSAwMzAxOzAzQUY7MDNCOSAwMzAxOworMUY3ODsxRjc4OzAzQkYgMDMwMDsxRjc4OzAzQkYgMDMwMDsKKzFGNzk7MDNDQzswM0JGIDAzMDE7MDNDQzswM0JGIDAzMDE7CisxRjdBOzFGN0E7MDNDNSAwMzAwOzFGN0E7MDNDNSAwMzAwOworMUY3QjswM0NEOzAzQzUgMDMwMTswM0NEOzAzQzUgMDMwMTsKKzFGN0M7MUY3QzswM0M5IDAzMDA7MUY3QzswM0M5IDAzMDA7CisxRjdEOzAzQ0U7MDNDOSAwMzAxOzAzQ0U7MDNDOSAwMzAxOworMUY4MDsxRjgwOzAzQjEgMDMxMyAwMzQ1OzFGODA7MDNCMSAwMzEzIDAzNDU7CisxRjgxOzFGODE7MDNCMSAwMzE0IDAzNDU7MUY4MTswM0IxIDAzMTQgMDM0NTsKKzFGODI7MUY4MjswM0IxIDAzMTMgMDMwMCAwMzQ1OzFGODI7MDNCMSAwMzEzIDAzMDAgMDM0NTsKKzFGODM7MUY4MzswM0IxIDAzMTQgMDMwMCAwMzQ1OzFGODM7MDNCMSAwMzE0IDAzMDAgMDM0NTsKKzFGODQ7MUY4NDswM0IxIDAzMTMgMDMwMSAwMzQ1OzFGODQ7MDNCMSAwMzEzIDAzMDEgMDM0NTsKKzFGODU7MUY4NTswM0IxIDAzMTQgMDMwMSAwMzQ1OzFGODU7MDNCMSAwMzE0IDAzMDEgMDM0NTsKKzFGODY7MUY4NjswM0IxIDAzMTMgMDM0MiAwMzQ1OzFGODY7MDNCMSAwMzEzIDAzNDIgMDM0NTsKKzFGODc7MUY4NzswM0IxIDAzMTQgMDM0MiAwMzQ1OzFGODc7MDNCMSAwMzE0IDAzNDIgMDM0NTsKKzFGODg7MUY4ODswMzkxIDAzMTMgMDM0NTsxRjg4OzAzOTEgMDMxMyAwMzQ1OworMUY4OTsxRjg5OzAzOTEgMDMxNCAwMzQ1OzFGODk7MDM5MSAwMzE0IDAzNDU7CisxRjhBOzFGOEE7MDM5MSAwMzEzIDAzMDAgMDM0NTsxRjhBOzAzOTEgMDMxMyAwMzAwIDAzNDU7CisxRjhCOzFGOEI7MDM5MSAwMzE0IDAzMDAgMDM0NTsxRjhCOzAzOTEgMDMxNCAwMzAwIDAzNDU7CisxRjhDOzFGOEM7MDM5MSAwMzEzIDAzMDEgMDM0NTsxRjhDOzAzOTEgMDMxMyAwMzAxIDAzNDU7CisxRjhEOzFGOEQ7MDM5MSAwMzE0IDAzMDEgMDM0NTsxRjhEOzAzOTEgMDMxNCAwMzAxIDAzNDU7CisxRjhFOzFGOEU7MDM5MSAwMzEzIDAzNDIgMDM0NTsxRjhFOzAzOTEgMDMxMyAwMzQyIDAzNDU7CisxRjhGOzFGOEY7MDM5MSAwMzE0IDAzNDIgMDM0NTsxRjhGOzAzOTEgMDMxNCAwMzQyIDAzNDU7CisxRjkwOzFGOTA7MDNCNyAwMzEzIDAzNDU7MUY5MDswM0I3IDAzMTMgMDM0NTsKKzFGOTE7MUY5MTswM0I3IDAzMTQgMDM0NTsxRjkxOzAzQjcgMDMxNCAwMzQ1OworMUY5MjsxRjkyOzAzQjcgMDMxMyAwMzAwIDAzNDU7MUY5MjswM0I3IDAzMTMgMDMwMCAwMzQ1OworMUY5MzsxRjkzOzAzQjcgMDMxNCAwMzAwIDAzNDU7MUY5MzswM0I3IDAzMTQgMDMwMCAwMzQ1OworMUY5NDsxRjk0OzAzQjcgMDMxMyAwMzAxIDAzNDU7MUY5NDswM0I3IDAzMTMgMDMwMSAwMzQ1OworMUY5NTsxRjk1OzAzQjcgMDMxNCAwMzAxIDAzNDU7MUY5NTswM0I3IDAzMTQgMDMwMSAwMzQ1OworMUY5NjsxRjk2OzAzQjcgMDMxMyAwMzQyIDAzNDU7MUY5NjswM0I3IDAzMTMgMDM0MiAwMzQ1OworMUY5NzsxRjk3OzAzQjcgMDMxNCAwMzQyIDAzNDU7MUY5NzswM0I3IDAzMTQgMDM0MiAwMzQ1OworMUY5ODsxRjk4OzAzOTcgMDMxMyAwMzQ1OzFGOTg7MDM5NyAwMzEzIDAzNDU7CisxRjk5OzFGOTk7MDM5NyAwMzE0IDAzNDU7MUY5OTswMzk3IDAzMTQgMDM0NTsKKzFGOUE7MUY5QTswMzk3IDAzMTMgMDMwMCAwMzQ1OzFGOUE7MDM5NyAwMzEzIDAzMDAgMDM0NTsKKzFGOUI7MUY5QjswMzk3IDAzMTQgMDMwMCAwMzQ1OzFGOUI7MDM5NyAwMzE0IDAzMDAgMDM0NTsKKzFGOUM7MUY5QzswMzk3IDAzMTMgMDMwMSAwMzQ1OzFGOUM7MDM5NyAwMzEzIDAzMDEgMDM0NTsKKzFGOUQ7MUY5RDswMzk3IDAzMTQgMDMwMSAwMzQ1OzFGOUQ7MDM5NyAwMzE0IDAzMDEgMDM0NTsKKzFGOUU7MUY5RTswMzk3IDAzMTMgMDM0MiAwMzQ1OzFGOUU7MDM5NyAwMzEzIDAzNDIgMDM0NTsKKzFGOUY7MUY5RjswMzk3IDAzMTQgMDM0MiAwMzQ1OzFGOUY7MDM5NyAwMzE0IDAzNDIgMDM0NTsKKzFGQTA7MUZBMDswM0M5IDAzMTMgMDM0NTsxRkEwOzAzQzkgMDMxMyAwMzQ1OworMUZBMTsxRkExOzAzQzkgMDMxNCAwMzQ1OzFGQTE7MDNDOSAwMzE0IDAzNDU7CisxRkEyOzFGQTI7MDNDOSAwMzEzIDAzMDAgMDM0NTsxRkEyOzAzQzkgMDMxMyAwMzAwIDAzNDU7CisxRkEzOzFGQTM7MDNDOSAwMzE0IDAzMDAgMDM0NTsxRkEzOzAzQzkgMDMxNCAwMzAwIDAzNDU7CisxRkE0OzFGQTQ7MDNDOSAwMzEzIDAzMDEgMDM0NTsxRkE0OzAzQzkgMDMxMyAwMzAxIDAzNDU7CisxRkE1OzFGQTU7MDNDOSAwMzE0IDAzMDEgMDM0NTsxRkE1OzAzQzkgMDMxNCAwMzAxIDAzNDU7CisxRkE2OzFGQTY7MDNDOSAwMzEzIDAzNDIgMDM0NTsxRkE2OzAzQzkgMDMxMyAwMzQyIDAzNDU7CisxRkE3OzFGQTc7MDNDOSAwMzE0IDAzNDIgMDM0NTsxRkE3OzAzQzkgMDMxNCAwMzQyIDAzNDU7CisxRkE4OzFGQTg7MDNBOSAwMzEzIDAzNDU7MUZBODswM0E5IDAzMTMgMDM0NTsKKzFGQTk7MUZBOTswM0E5IDAzMTQgMDM0NTsxRkE5OzAzQTkgMDMxNCAwMzQ1OworMUZBQTsxRkFBOzAzQTkgMDMxMyAwMzAwIDAzNDU7MUZBQTswM0E5IDAzMTMgMDMwMCAwMzQ1OworMUZBQjsxRkFCOzAzQTkgMDMxNCAwMzAwIDAzNDU7MUZBQjswM0E5IDAzMTQgMDMwMCAwMzQ1OworMUZBQzsxRkFDOzAzQTkgMDMxMyAwMzAxIDAzNDU7MUZBQzswM0E5IDAzMTMgMDMwMSAwMzQ1OworMUZBRDsxRkFEOzAzQTkgMDMxNCAwMzAxIDAzNDU7MUZBRDswM0E5IDAzMTQgMDMwMSAwMzQ1OworMUZBRTsxRkFFOzAzQTkgMDMxMyAwMzQyIDAzNDU7MUZBRTswM0E5IDAzMTMgMDM0MiAwMzQ1OworMUZBRjsxRkFGOzAzQTkgMDMxNCAwMzQyIDAzNDU7MUZBRjswM0E5IDAzMTQgMDM0MiAwMzQ1OworMUZCMDsxRkIwOzAzQjEgMDMwNjsxRkIwOzAzQjEgMDMwNjsKKzFGQjE7MUZCMTswM0IxIDAzMDQ7MUZCMTswM0IxIDAzMDQ7CisxRkIyOzFGQjI7MDNCMSAwMzAwIDAzNDU7MUZCMjswM0IxIDAzMDAgMDM0NTsKKzFGQjM7MUZCMzswM0IxIDAzNDU7MUZCMzswM0IxIDAzNDU7CisxRkI0OzFGQjQ7MDNCMSAwMzAxIDAzNDU7MUZCNDswM0IxIDAzMDEgMDM0NTsKKzFGQjY7MUZCNjswM0IxIDAzNDI7MUZCNjswM0IxIDAzNDI7CisxRkI3OzFGQjc7MDNCMSAwMzQyIDAzNDU7MUZCNzswM0IxIDAzNDIgMDM0NTsKKzFGQjg7MUZCODswMzkxIDAzMDY7MUZCODswMzkxIDAzMDY7CisxRkI5OzFGQjk7MDM5MSAwMzA0OzFGQjk7MDM5MSAwMzA0OworMUZCQTsxRkJBOzAzOTEgMDMwMDsxRkJBOzAzOTEgMDMwMDsKKzFGQkI7MDM4NjswMzkxIDAzMDE7MDM4NjswMzkxIDAzMDE7CisxRkJDOzFGQkM7MDM5MSAwMzQ1OzFGQkM7MDM5MSAwMzQ1OworMUZCRDsxRkJEOzFGQkQ7MDAyMCAwMzEzOzAwMjAgMDMxMzsKKzFGQkU7MDNCOTswM0I5OzAzQjk7MDNCOTsKKzFGQkY7MUZCRjsxRkJGOzAwMjAgMDMxMzswMDIwIDAzMTM7CisxRkMwOzFGQzA7MUZDMDswMDIwIDAzNDI7MDAyMCAwMzQyOworMUZDMTsxRkMxOzAwQTggMDM0MjswMDIwIDAzMDggMDM0MjswMDIwIDAzMDggMDM0MjsKKzFGQzI7MUZDMjswM0I3IDAzMDAgMDM0NTsxRkMyOzAzQjcgMDMwMCAwMzQ1OworMUZDMzsxRkMzOzAzQjcgMDM0NTsxRkMzOzAzQjcgMDM0NTsKKzFGQzQ7MUZDNDswM0I3IDAzMDEgMDM0NTsxRkM0OzAzQjcgMDMwMSAwMzQ1OworMUZDNjsxRkM2OzAzQjcgMDM0MjsxRkM2OzAzQjcgMDM0MjsKKzFGQzc7MUZDNzswM0I3IDAzNDIgMDM0NTsxRkM3OzAzQjcgMDM0MiAwMzQ1OworMUZDODsxRkM4OzAzOTUgMDMwMDsxRkM4OzAzOTUgMDMwMDsKKzFGQzk7MDM4ODswMzk1IDAzMDE7MDM4ODswMzk1IDAzMDE7CisxRkNBOzFGQ0E7MDM5NyAwMzAwOzFGQ0E7MDM5NyAwMzAwOworMUZDQjswMzg5OzAzOTcgMDMwMTswMzg5OzAzOTcgMDMwMTsKKzFGQ0M7MUZDQzswMzk3IDAzNDU7MUZDQzswMzk3IDAzNDU7CisxRkNEOzFGQ0Q7MUZCRiAwMzAwOzAwMjAgMDMxMyAwMzAwOzAwMjAgMDMxMyAwMzAwOworMUZDRTsxRkNFOzFGQkYgMDMwMTswMDIwIDAzMTMgMDMwMTswMDIwIDAzMTMgMDMwMTsKKzFGQ0Y7MUZDRjsxRkJGIDAzNDI7MDAyMCAwMzEzIDAzNDI7MDAyMCAwMzEzIDAzNDI7CisxRkQwOzFGRDA7MDNCOSAwMzA2OzFGRDA7MDNCOSAwMzA2OworMUZEMTsxRkQxOzAzQjkgMDMwNDsxRkQxOzAzQjkgMDMwNDsKKzFGRDI7MUZEMjswM0I5IDAzMDggMDMwMDsxRkQyOzAzQjkgMDMwOCAwMzAwOworMUZEMzswMzkwOzAzQjkgMDMwOCAwMzAxOzAzOTA7MDNCOSAwMzA4IDAzMDE7CisxRkQ2OzFGRDY7MDNCOSAwMzQyOzFGRDY7MDNCOSAwMzQyOworMUZENzsxRkQ3OzAzQjkgMDMwOCAwMzQyOzFGRDc7MDNCOSAwMzA4IDAzNDI7CisxRkQ4OzFGRDg7MDM5OSAwMzA2OzFGRDg7MDM5OSAwMzA2OworMUZEOTsxRkQ5OzAzOTkgMDMwNDsxRkQ5OzAzOTkgMDMwNDsKKzFGREE7MUZEQTswMzk5IDAzMDA7MUZEQTswMzk5IDAzMDA7CisxRkRCOzAzOEE7MDM5OSAwMzAxOzAzOEE7MDM5OSAwMzAxOworMUZERDsxRkREOzFGRkUgMDMwMDswMDIwIDAzMTQgMDMwMDswMDIwIDAzMTQgMDMwMDsKKzFGREU7MUZERTsxRkZFIDAzMDE7MDAyMCAwMzE0IDAzMDE7MDAyMCAwMzE0IDAzMDE7CisxRkRGOzFGREY7MUZGRSAwMzQyOzAwMjAgMDMxNCAwMzQyOzAwMjAgMDMxNCAwMzQyOworMUZFMDsxRkUwOzAzQzUgMDMwNjsxRkUwOzAzQzUgMDMwNjsKKzFGRTE7MUZFMTswM0M1IDAzMDQ7MUZFMTswM0M1IDAzMDQ7CisxRkUyOzFGRTI7MDNDNSAwMzA4IDAzMDA7MUZFMjswM0M1IDAzMDggMDMwMDsKKzFGRTM7MDNCMDswM0M1IDAzMDggMDMwMTswM0IwOzAzQzUgMDMwOCAwMzAxOworMUZFNDsxRkU0OzAzQzEgMDMxMzsxRkU0OzAzQzEgMDMxMzsKKzFGRTU7MUZFNTswM0MxIDAzMTQ7MUZFNTswM0MxIDAzMTQ7CisxRkU2OzFGRTY7MDNDNSAwMzQyOzFGRTY7MDNDNSAwMzQyOworMUZFNzsxRkU3OzAzQzUgMDMwOCAwMzQyOzFGRTc7MDNDNSAwMzA4IDAzNDI7CisxRkU4OzFGRTg7MDNBNSAwMzA2OzFGRTg7MDNBNSAwMzA2OworMUZFOTsxRkU5OzAzQTUgMDMwNDsxRkU5OzAzQTUgMDMwNDsKKzFGRUE7MUZFQTswM0E1IDAzMDA7MUZFQTswM0E1IDAzMDA7CisxRkVCOzAzOEU7MDNBNSAwMzAxOzAzOEU7MDNBNSAwMzAxOworMUZFQzsxRkVDOzAzQTEgMDMxNDsxRkVDOzAzQTEgMDMxNDsKKzFGRUQ7MUZFRDswMEE4IDAzMDA7MDAyMCAwMzA4IDAzMDA7MDAyMCAwMzA4IDAzMDA7CisxRkVFOzAzODU7MDBBOCAwMzAxOzAwMjAgMDMwOCAwMzAxOzAwMjAgMDMwOCAwMzAxOworMUZFRjswMDYwOzAwNjA7MDA2MDswMDYwOworMUZGMjsxRkYyOzAzQzkgMDMwMCAwMzQ1OzFGRjI7MDNDOSAwMzAwIDAzNDU7CisxRkYzOzFGRjM7MDNDOSAwMzQ1OzFGRjM7MDNDOSAwMzQ1OworMUZGNDsxRkY0OzAzQzkgMDMwMSAwMzQ1OzFGRjQ7MDNDOSAwMzAxIDAzNDU7CisxRkY2OzFGRjY7MDNDOSAwMzQyOzFGRjY7MDNDOSAwMzQyOworMUZGNzsxRkY3OzAzQzkgMDM0MiAwMzQ1OzFGRjc7MDNDOSAwMzQyIDAzNDU7CisxRkY4OzFGRjg7MDM5RiAwMzAwOzFGRjg7MDM5RiAwMzAwOworMUZGOTswMzhDOzAzOUYgMDMwMTswMzhDOzAzOUYgMDMwMTsKKzFGRkE7MUZGQTswM0E5IDAzMDA7MUZGQTswM0E5IDAzMDA7CisxRkZCOzAzOEY7MDNBOSAwMzAxOzAzOEY7MDNBOSAwMzAxOworMUZGQzsxRkZDOzAzQTkgMDM0NTsxRkZDOzAzQTkgMDM0NTsKKzFGRkQ7MDBCNDswMEI0OzAwMjAgMDMwMTswMDIwIDAzMDE7CisxRkZFOzFGRkU7MUZGRTswMDIwIDAzMTQ7MDAyMCAwMzE0OworMjAwMDsyMDAyOzIwMDI7MDAyMDswMDIwOworMjAwMTsyMDAzOzIwMDM7MDAyMDswMDIwOworMjAwMjsyMDAyOzIwMDI7MDAyMDswMDIwOworMjAwMzsyMDAzOzIwMDM7MDAyMDswMDIwOworMjAwNDsyMDA0OzIwMDQ7MDAyMDswMDIwOworMjAwNTsyMDA1OzIwMDU7MDAyMDswMDIwOworMjAwNjsyMDA2OzIwMDY7MDAyMDswMDIwOworMjAwNzsyMDA3OzIwMDc7MDAyMDswMDIwOworMjAwODsyMDA4OzIwMDg7MDAyMDswMDIwOworMjAwOTsyMDA5OzIwMDk7MDAyMDswMDIwOworMjAwQTsyMDBBOzIwMEE7MDAyMDswMDIwOworMjAxMTsyMDExOzIwMTE7MjAxMDsyMDEwOworMjAxNzsyMDE3OzIwMTc7MDAyMCAwMzMzOzAwMjAgMDMzMzsKKzIwMjQ7MjAyNDsyMDI0OzAwMkU7MDAyRTsKKzIwMjU7MjAyNTsyMDI1OzAwMkUgMDAyRTswMDJFIDAwMkU7CisyMDI2OzIwMjY7MjAyNjswMDJFIDAwMkUgMDAyRTswMDJFIDAwMkUgMDAyRTsKKzIwMkY7MjAyRjsyMDJGOzAwMjA7MDAyMDsKKzIwMzM7MjAzMzsyMDMzOzIwMzIgMjAzMjsyMDMyIDIwMzI7CisyMDM0OzIwMzQ7MjAzNDsyMDMyIDIwMzIgMjAzMjsyMDMyIDIwMzIgMjAzMjsKKzIwMzY7MjAzNjsyMDM2OzIwMzUgMjAzNTsyMDM1IDIwMzU7CisyMDM3OzIwMzc7MjAzNzsyMDM1IDIwMzUgMjAzNTsyMDM1IDIwMzUgMjAzNTsKKzIwM0M7MjAzQzsyMDNDOzAwMjEgMDAyMTswMDIxIDAwMjE7CisyMDNFOzIwM0U7MjAzRTswMDIwIDAzMDU7MDAyMCAwMzA1OworMjA0NzsyMDQ3OzIwNDc7MDAzRiAwMDNGOzAwM0YgMDAzRjsKKzIwNDg7MjA0ODsyMDQ4OzAwM0YgMDAyMTswMDNGIDAwMjE7CisyMDQ5OzIwNDk7MjA0OTswMDIxIDAwM0Y7MDAyMSAwMDNGOworMjA1NzsyMDU3OzIwNTc7MjAzMiAyMDMyIDIwMzIgMjAzMjsyMDMyIDIwMzIgMjAzMiAyMDMyOworMjA1RjsyMDVGOzIwNUY7MDAyMDswMDIwOworMjA3MDsyMDcwOzIwNzA7MDAzMDswMDMwOworMjA3MTsyMDcxOzIwNzE7MDA2OTswMDY5OworMjA3NDsyMDc0OzIwNzQ7MDAzNDswMDM0OworMjA3NTsyMDc1OzIwNzU7MDAzNTswMDM1OworMjA3NjsyMDc2OzIwNzY7MDAzNjswMDM2OworMjA3NzsyMDc3OzIwNzc7MDAzNzswMDM3OworMjA3ODsyMDc4OzIwNzg7MDAzODswMDM4OworMjA3OTsyMDc5OzIwNzk7MDAzOTswMDM5OworMjA3QTsyMDdBOzIwN0E7MDAyQjswMDJCOworMjA3QjsyMDdCOzIwN0I7MjIxMjsyMjEyOworMjA3QzsyMDdDOzIwN0M7MDAzRDswMDNEOworMjA3RDsyMDdEOzIwN0Q7MDAyODswMDI4OworMjA3RTsyMDdFOzIwN0U7MDAyOTswMDI5OworMjA3RjsyMDdGOzIwN0Y7MDA2RTswMDZFOworMjA4MDsyMDgwOzIwODA7MDAzMDswMDMwOworMjA4MTsyMDgxOzIwODE7MDAzMTswMDMxOworMjA4MjsyMDgyOzIwODI7MDAzMjswMDMyOworMjA4MzsyMDgzOzIwODM7MDAzMzswMDMzOworMjA4NDsyMDg0OzIwODQ7MDAzNDswMDM0OworMjA4NTsyMDg1OzIwODU7MDAzNTswMDM1OworMjA4NjsyMDg2OzIwODY7MDAzNjswMDM2OworMjA4NzsyMDg3OzIwODc7MDAzNzswMDM3OworMjA4ODsyMDg4OzIwODg7MDAzODswMDM4OworMjA4OTsyMDg5OzIwODk7MDAzOTswMDM5OworMjA4QTsyMDhBOzIwOEE7MDAyQjswMDJCOworMjA4QjsyMDhCOzIwOEI7MjIxMjsyMjEyOworMjA4QzsyMDhDOzIwOEM7MDAzRDswMDNEOworMjA4RDsyMDhEOzIwOEQ7MDAyODswMDI4OworMjA4RTsyMDhFOzIwOEU7MDAyOTswMDI5OworMjBBODsyMEE4OzIwQTg7MDA1MiAwMDczOzAwNTIgMDA3MzsKKzIxMDA7MjEwMDsyMTAwOzAwNjEgMDAyRiAwMDYzOzAwNjEgMDAyRiAwMDYzOworMjEwMTsyMTAxOzIxMDE7MDA2MSAwMDJGIDAwNzM7MDA2MSAwMDJGIDAwNzM7CisyMTAyOzIxMDI7MjEwMjswMDQzOzAwNDM7CisyMTAzOzIxMDM7MjEwMzswMEIwIDAwNDM7MDBCMCAwMDQzOworMjEwNTsyMTA1OzIxMDU7MDA2MyAwMDJGIDAwNkY7MDA2MyAwMDJGIDAwNkY7CisyMTA2OzIxMDY7MjEwNjswMDYzIDAwMkYgMDA3NTswMDYzIDAwMkYgMDA3NTsKKzIxMDc7MjEwNzsyMTA3OzAxOTA7MDE5MDsKKzIxMDk7MjEwOTsyMTA5OzAwQjAgMDA0NjswMEIwIDAwNDY7CisyMTBBOzIxMEE7MjEwQTswMDY3OzAwNjc7CisyMTBCOzIxMEI7MjEwQjswMDQ4OzAwNDg7CisyMTBDOzIxMEM7MjEwQzswMDQ4OzAwNDg7CisyMTBEOzIxMEQ7MjEwRDswMDQ4OzAwNDg7CisyMTBFOzIxMEU7MjEwRTswMDY4OzAwNjg7CisyMTBGOzIxMEY7MjEwRjswMTI3OzAxMjc7CisyMTEwOzIxMTA7MjExMDswMDQ5OzAwNDk7CisyMTExOzIxMTE7MjExMTswMDQ5OzAwNDk7CisyMTEyOzIxMTI7MjExMjswMDRDOzAwNEM7CisyMTEzOzIxMTM7MjExMzswMDZDOzAwNkM7CisyMTE1OzIxMTU7MjExNTswMDRFOzAwNEU7CisyMTE2OzIxMTY7MjExNjswMDRFIDAwNkY7MDA0RSAwMDZGOworMjExOTsyMTE5OzIxMTk7MDA1MDswMDUwOworMjExQTsyMTFBOzIxMUE7MDA1MTswMDUxOworMjExQjsyMTFCOzIxMUI7MDA1MjswMDUyOworMjExQzsyMTFDOzIxMUM7MDA1MjswMDUyOworMjExRDsyMTFEOzIxMUQ7MDA1MjswMDUyOworMjEyMDsyMTIwOzIxMjA7MDA1MyAwMDREOzAwNTMgMDA0RDsKKzIxMjE7MjEyMTsyMTIxOzAwNTQgMDA0NSAwMDRDOzAwNTQgMDA0NSAwMDRDOworMjEyMjsyMTIyOzIxMjI7MDA1NCAwMDREOzAwNTQgMDA0RDsKKzIxMjQ7MjEyNDsyMTI0OzAwNUE7MDA1QTsKKzIxMjY7MDNBOTswM0E5OzAzQTk7MDNBOTsKKzIxMjg7MjEyODsyMTI4OzAwNUE7MDA1QTsKKzIxMkE7MDA0QjswMDRCOzAwNEI7MDA0QjsKKzIxMkI7MDBDNTswMDQxIDAzMEE7MDBDNTswMDQxIDAzMEE7CisyMTJDOzIxMkM7MjEyQzswMDQyOzAwNDI7CisyMTJEOzIxMkQ7MjEyRDswMDQzOzAwNDM7CisyMTJGOzIxMkY7MjEyRjswMDY1OzAwNjU7CisyMTMwOzIxMzA7MjEzMDswMDQ1OzAwNDU7CisyMTMxOzIxMzE7MjEzMTswMDQ2OzAwNDY7CisyMTMzOzIxMzM7MjEzMzswMDREOzAwNEQ7CisyMTM0OzIxMzQ7MjEzNDswMDZGOzAwNkY7CisyMTM1OzIxMzU7MjEzNTswNUQwOzA1RDA7CisyMTM2OzIxMzY7MjEzNjswNUQxOzA1RDE7CisyMTM3OzIxMzc7MjEzNzswNUQyOzA1RDI7CisyMTM4OzIxMzg7MjEzODswNUQzOzA1RDM7CisyMTM5OzIxMzk7MjEzOTswMDY5OzAwNjk7CisyMTNEOzIxM0Q7MjEzRDswM0IzOzAzQjM7CisyMTNFOzIxM0U7MjEzRTswMzkzOzAzOTM7CisyMTNGOzIxM0Y7MjEzRjswM0EwOzAzQTA7CisyMTQwOzIxNDA7MjE0MDsyMjExOzIyMTE7CisyMTQ1OzIxNDU7MjE0NTswMDQ0OzAwNDQ7CisyMTQ2OzIxNDY7MjE0NjswMDY0OzAwNjQ7CisyMTQ3OzIxNDc7MjE0NzswMDY1OzAwNjU7CisyMTQ4OzIxNDg7MjE0ODswMDY5OzAwNjk7CisyMTQ5OzIxNDk7MjE0OTswMDZBOzAwNkE7CisyMTUzOzIxNTM7MjE1MzswMDMxIDIwNDQgMDAzMzswMDMxIDIwNDQgMDAzMzsKKzIxNTQ7MjE1NDsyMTU0OzAwMzIgMjA0NCAwMDMzOzAwMzIgMjA0NCAwMDMzOworMjE1NTsyMTU1OzIxNTU7MDAzMSAyMDQ0IDAwMzU7MDAzMSAyMDQ0IDAwMzU7CisyMTU2OzIxNTY7MjE1NjswMDMyIDIwNDQgMDAzNTswMDMyIDIwNDQgMDAzNTsKKzIxNTc7MjE1NzsyMTU3OzAwMzMgMjA0NCAwMDM1OzAwMzMgMjA0NCAwMDM1OworMjE1ODsyMTU4OzIxNTg7MDAzNCAyMDQ0IDAwMzU7MDAzNCAyMDQ0IDAwMzU7CisyMTU5OzIxNTk7MjE1OTswMDMxIDIwNDQgMDAzNjswMDMxIDIwNDQgMDAzNjsKKzIxNUE7MjE1QTsyMTVBOzAwMzUgMjA0NCAwMDM2OzAwMzUgMjA0NCAwMDM2OworMjE1QjsyMTVCOzIxNUI7MDAzMSAyMDQ0IDAwMzg7MDAzMSAyMDQ0IDAwMzg7CisyMTVDOzIxNUM7MjE1QzswMDMzIDIwNDQgMDAzODswMDMzIDIwNDQgMDAzODsKKzIxNUQ7MjE1RDsyMTVEOzAwMzUgMjA0NCAwMDM4OzAwMzUgMjA0NCAwMDM4OworMjE1RTsyMTVFOzIxNUU7MDAzNyAyMDQ0IDAwMzg7MDAzNyAyMDQ0IDAwMzg7CisyMTVGOzIxNUY7MjE1RjswMDMxIDIwNDQ7MDAzMSAyMDQ0OworMjE2MDsyMTYwOzIxNjA7MDA0OTswMDQ5OworMjE2MTsyMTYxOzIxNjE7MDA0OSAwMDQ5OzAwNDkgMDA0OTsKKzIxNjI7MjE2MjsyMTYyOzAwNDkgMDA0OSAwMDQ5OzAwNDkgMDA0OSAwMDQ5OworMjE2MzsyMTYzOzIxNjM7MDA0OSAwMDU2OzAwNDkgMDA1NjsKKzIxNjQ7MjE2NDsyMTY0OzAwNTY7MDA1NjsKKzIxNjU7MjE2NTsyMTY1OzAwNTYgMDA0OTswMDU2IDAwNDk7CisyMTY2OzIxNjY7MjE2NjswMDU2IDAwNDkgMDA0OTswMDU2IDAwNDkgMDA0OTsKKzIxNjc7MjE2NzsyMTY3OzAwNTYgMDA0OSAwMDQ5IDAwNDk7MDA1NiAwMDQ5IDAwNDkgMDA0OTsKKzIxNjg7MjE2ODsyMTY4OzAwNDkgMDA1ODswMDQ5IDAwNTg7CisyMTY5OzIxNjk7MjE2OTswMDU4OzAwNTg7CisyMTZBOzIxNkE7MjE2QTswMDU4IDAwNDk7MDA1OCAwMDQ5OworMjE2QjsyMTZCOzIxNkI7MDA1OCAwMDQ5IDAwNDk7MDA1OCAwMDQ5IDAwNDk7CisyMTZDOzIxNkM7MjE2QzswMDRDOzAwNEM7CisyMTZEOzIxNkQ7MjE2RDswMDQzOzAwNDM7CisyMTZFOzIxNkU7MjE2RTswMDQ0OzAwNDQ7CisyMTZGOzIxNkY7MjE2RjswMDREOzAwNEQ7CisyMTcwOzIxNzA7MjE3MDswMDY5OzAwNjk7CisyMTcxOzIxNzE7MjE3MTswMDY5IDAwNjk7MDA2OSAwMDY5OworMjE3MjsyMTcyOzIxNzI7MDA2OSAwMDY5IDAwNjk7MDA2OSAwMDY5IDAwNjk7CisyMTczOzIxNzM7MjE3MzswMDY5IDAwNzY7MDA2OSAwMDc2OworMjE3NDsyMTc0OzIxNzQ7MDA3NjswMDc2OworMjE3NTsyMTc1OzIxNzU7MDA3NiAwMDY5OzAwNzYgMDA2OTsKKzIxNzY7MjE3NjsyMTc2OzAwNzYgMDA2OSAwMDY5OzAwNzYgMDA2OSAwMDY5OworMjE3NzsyMTc3OzIxNzc7MDA3NiAwMDY5IDAwNjkgMDA2OTswMDc2IDAwNjkgMDA2OSAwMDY5OworMjE3ODsyMTc4OzIxNzg7MDA2OSAwMDc4OzAwNjkgMDA3ODsKKzIxNzk7MjE3OTsyMTc5OzAwNzg7MDA3ODsKKzIxN0E7MjE3QTsyMTdBOzAwNzggMDA2OTswMDc4IDAwNjk7CisyMTdCOzIxN0I7MjE3QjswMDc4IDAwNjkgMDA2OTswMDc4IDAwNjkgMDA2OTsKKzIxN0M7MjE3QzsyMTdDOzAwNkM7MDA2QzsKKzIxN0Q7MjE3RDsyMTdEOzAwNjM7MDA2MzsKKzIxN0U7MjE3RTsyMTdFOzAwNjQ7MDA2NDsKKzIxN0Y7MjE3RjsyMTdGOzAwNkQ7MDA2RDsKKzIxOUE7MjE5QTsyMTkwIDAzMzg7MjE5QTsyMTkwIDAzMzg7CisyMTlCOzIxOUI7MjE5MiAwMzM4OzIxOUI7MjE5MiAwMzM4OworMjFBRTsyMUFFOzIxOTQgMDMzODsyMUFFOzIxOTQgMDMzODsKKzIxQ0Q7MjFDRDsyMUQwIDAzMzg7MjFDRDsyMUQwIDAzMzg7CisyMUNFOzIxQ0U7MjFENCAwMzM4OzIxQ0U7MjFENCAwMzM4OworMjFDRjsyMUNGOzIxRDIgMDMzODsyMUNGOzIxRDIgMDMzODsKKzIyMDQ7MjIwNDsyMjAzIDAzMzg7MjIwNDsyMjAzIDAzMzg7CisyMjA5OzIyMDk7MjIwOCAwMzM4OzIyMDk7MjIwOCAwMzM4OworMjIwQzsyMjBDOzIyMEIgMDMzODsyMjBDOzIyMEIgMDMzODsKKzIyMjQ7MjIyNDsyMjIzIDAzMzg7MjIyNDsyMjIzIDAzMzg7CisyMjI2OzIyMjY7MjIyNSAwMzM4OzIyMjY7MjIyNSAwMzM4OworMjIyQzsyMjJDOzIyMkM7MjIyQiAyMjJCOzIyMkIgMjIyQjsKKzIyMkQ7MjIyRDsyMjJEOzIyMkIgMjIyQiAyMjJCOzIyMkIgMjIyQiAyMjJCOworMjIyRjsyMjJGOzIyMkY7MjIyRSAyMjJFOzIyMkUgMjIyRTsKKzIyMzA7MjIzMDsyMjMwOzIyMkUgMjIyRSAyMjJFOzIyMkUgMjIyRSAyMjJFOworMjI0MTsyMjQxOzIyM0MgMDMzODsyMjQxOzIyM0MgMDMzODsKKzIyNDQ7MjI0NDsyMjQzIDAzMzg7MjI0NDsyMjQzIDAzMzg7CisyMjQ3OzIyNDc7MjI0NSAwMzM4OzIyNDc7MjI0NSAwMzM4OworMjI0OTsyMjQ5OzIyNDggMDMzODsyMjQ5OzIyNDggMDMzODsKKzIyNjA7MjI2MDswMDNEIDAzMzg7MjI2MDswMDNEIDAzMzg7CisyMjYyOzIyNjI7MjI2MSAwMzM4OzIyNjI7MjI2MSAwMzM4OworMjI2RDsyMjZEOzIyNEQgMDMzODsyMjZEOzIyNEQgMDMzODsKKzIyNkU7MjI2RTswMDNDIDAzMzg7MjI2RTswMDNDIDAzMzg7CisyMjZGOzIyNkY7MDAzRSAwMzM4OzIyNkY7MDAzRSAwMzM4OworMjI3MDsyMjcwOzIyNjQgMDMzODsyMjcwOzIyNjQgMDMzODsKKzIyNzE7MjI3MTsyMjY1IDAzMzg7MjI3MTsyMjY1IDAzMzg7CisyMjc0OzIyNzQ7MjI3MiAwMzM4OzIyNzQ7MjI3MiAwMzM4OworMjI3NTsyMjc1OzIyNzMgMDMzODsyMjc1OzIyNzMgMDMzODsKKzIyNzg7MjI3ODsyMjc2IDAzMzg7MjI3ODsyMjc2IDAzMzg7CisyMjc5OzIyNzk7MjI3NyAwMzM4OzIyNzk7MjI3NyAwMzM4OworMjI4MDsyMjgwOzIyN0EgMDMzODsyMjgwOzIyN0EgMDMzODsKKzIyODE7MjI4MTsyMjdCIDAzMzg7MjI4MTsyMjdCIDAzMzg7CisyMjg0OzIyODQ7MjI4MiAwMzM4OzIyODQ7MjI4MiAwMzM4OworMjI4NTsyMjg1OzIyODMgMDMzODsyMjg1OzIyODMgMDMzODsKKzIyODg7MjI4ODsyMjg2IDAzMzg7MjI4ODsyMjg2IDAzMzg7CisyMjg5OzIyODk7MjI4NyAwMzM4OzIyODk7MjI4NyAwMzM4OworMjJBQzsyMkFDOzIyQTIgMDMzODsyMkFDOzIyQTIgMDMzODsKKzIyQUQ7MjJBRDsyMkE4IDAzMzg7MjJBRDsyMkE4IDAzMzg7CisyMkFFOzIyQUU7MjJBOSAwMzM4OzIyQUU7MjJBOSAwMzM4OworMjJBRjsyMkFGOzIyQUIgMDMzODsyMkFGOzIyQUIgMDMzODsKKzIyRTA7MjJFMDsyMjdDIDAzMzg7MjJFMDsyMjdDIDAzMzg7CisyMkUxOzIyRTE7MjI3RCAwMzM4OzIyRTE7MjI3RCAwMzM4OworMjJFMjsyMkUyOzIyOTEgMDMzODsyMkUyOzIyOTEgMDMzODsKKzIyRTM7MjJFMzsyMjkyIDAzMzg7MjJFMzsyMjkyIDAzMzg7CisyMkVBOzIyRUE7MjJCMiAwMzM4OzIyRUE7MjJCMiAwMzM4OworMjJFQjsyMkVCOzIyQjMgMDMzODsyMkVCOzIyQjMgMDMzODsKKzIyRUM7MjJFQzsyMkI0IDAzMzg7MjJFQzsyMkI0IDAzMzg7CisyMkVEOzIyRUQ7MjJCNSAwMzM4OzIyRUQ7MjJCNSAwMzM4OworMjMyOTszMDA4OzMwMDg7MzAwODszMDA4OworMjMyQTszMDA5OzMwMDk7MzAwOTszMDA5OworMjQ2MDsyNDYwOzI0NjA7MDAzMTswMDMxOworMjQ2MTsyNDYxOzI0NjE7MDAzMjswMDMyOworMjQ2MjsyNDYyOzI0NjI7MDAzMzswMDMzOworMjQ2MzsyNDYzOzI0NjM7MDAzNDswMDM0OworMjQ2NDsyNDY0OzI0NjQ7MDAzNTswMDM1OworMjQ2NTsyNDY1OzI0NjU7MDAzNjswMDM2OworMjQ2NjsyNDY2OzI0NjY7MDAzNzswMDM3OworMjQ2NzsyNDY3OzI0Njc7MDAzODswMDM4OworMjQ2ODsyNDY4OzI0Njg7MDAzOTswMDM5OworMjQ2OTsyNDY5OzI0Njk7MDAzMSAwMDMwOzAwMzEgMDAzMDsKKzI0NkE7MjQ2QTsyNDZBOzAwMzEgMDAzMTswMDMxIDAwMzE7CisyNDZCOzI0NkI7MjQ2QjswMDMxIDAwMzI7MDAzMSAwMDMyOworMjQ2QzsyNDZDOzI0NkM7MDAzMSAwMDMzOzAwMzEgMDAzMzsKKzI0NkQ7MjQ2RDsyNDZEOzAwMzEgMDAzNDswMDMxIDAwMzQ7CisyNDZFOzI0NkU7MjQ2RTswMDMxIDAwMzU7MDAzMSAwMDM1OworMjQ2RjsyNDZGOzI0NkY7MDAzMSAwMDM2OzAwMzEgMDAzNjsKKzI0NzA7MjQ3MDsyNDcwOzAwMzEgMDAzNzswMDMxIDAwMzc7CisyNDcxOzI0NzE7MjQ3MTswMDMxIDAwMzg7MDAzMSAwMDM4OworMjQ3MjsyNDcyOzI0NzI7MDAzMSAwMDM5OzAwMzEgMDAzOTsKKzI0NzM7MjQ3MzsyNDczOzAwMzIgMDAzMDswMDMyIDAwMzA7CisyNDc0OzI0NzQ7MjQ3NDswMDI4IDAwMzEgMDAyOTswMDI4IDAwMzEgMDAyOTsKKzI0NzU7MjQ3NTsyNDc1OzAwMjggMDAzMiAwMDI5OzAwMjggMDAzMiAwMDI5OworMjQ3NjsyNDc2OzI0NzY7MDAyOCAwMDMzIDAwMjk7MDAyOCAwMDMzIDAwMjk7CisyNDc3OzI0Nzc7MjQ3NzswMDI4IDAwMzQgMDAyOTswMDI4IDAwMzQgMDAyOTsKKzI0Nzg7MjQ3ODsyNDc4OzAwMjggMDAzNSAwMDI5OzAwMjggMDAzNSAwMDI5OworMjQ3OTsyNDc5OzI0Nzk7MDAyOCAwMDM2IDAwMjk7MDAyOCAwMDM2IDAwMjk7CisyNDdBOzI0N0E7MjQ3QTswMDI4IDAwMzcgMDAyOTswMDI4IDAwMzcgMDAyOTsKKzI0N0I7MjQ3QjsyNDdCOzAwMjggMDAzOCAwMDI5OzAwMjggMDAzOCAwMDI5OworMjQ3QzsyNDdDOzI0N0M7MDAyOCAwMDM5IDAwMjk7MDAyOCAwMDM5IDAwMjk7CisyNDdEOzI0N0Q7MjQ3RDswMDI4IDAwMzEgMDAzMCAwMDI5OzAwMjggMDAzMSAwMDMwIDAwMjk7CisyNDdFOzI0N0U7MjQ3RTswMDI4IDAwMzEgMDAzMSAwMDI5OzAwMjggMDAzMSAwMDMxIDAwMjk7CisyNDdGOzI0N0Y7MjQ3RjswMDI4IDAwMzEgMDAzMiAwMDI5OzAwMjggMDAzMSAwMDMyIDAwMjk7CisyNDgwOzI0ODA7MjQ4MDswMDI4IDAwMzEgMDAzMyAwMDI5OzAwMjggMDAzMSAwMDMzIDAwMjk7CisyNDgxOzI0ODE7MjQ4MTswMDI4IDAwMzEgMDAzNCAwMDI5OzAwMjggMDAzMSAwMDM0IDAwMjk7CisyNDgyOzI0ODI7MjQ4MjswMDI4IDAwMzEgMDAzNSAwMDI5OzAwMjggMDAzMSAwMDM1IDAwMjk7CisyNDgzOzI0ODM7MjQ4MzswMDI4IDAwMzEgMDAzNiAwMDI5OzAwMjggMDAzMSAwMDM2IDAwMjk7CisyNDg0OzI0ODQ7MjQ4NDswMDI4IDAwMzEgMDAzNyAwMDI5OzAwMjggMDAzMSAwMDM3IDAwMjk7CisyNDg1OzI0ODU7MjQ4NTswMDI4IDAwMzEgMDAzOCAwMDI5OzAwMjggMDAzMSAwMDM4IDAwMjk7CisyNDg2OzI0ODY7MjQ4NjswMDI4IDAwMzEgMDAzOSAwMDI5OzAwMjggMDAzMSAwMDM5IDAwMjk7CisyNDg3OzI0ODc7MjQ4NzswMDI4IDAwMzIgMDAzMCAwMDI5OzAwMjggMDAzMiAwMDMwIDAwMjk7CisyNDg4OzI0ODg7MjQ4ODswMDMxIDAwMkU7MDAzMSAwMDJFOworMjQ4OTsyNDg5OzI0ODk7MDAzMiAwMDJFOzAwMzIgMDAyRTsKKzI0OEE7MjQ4QTsyNDhBOzAwMzMgMDAyRTswMDMzIDAwMkU7CisyNDhCOzI0OEI7MjQ4QjswMDM0IDAwMkU7MDAzNCAwMDJFOworMjQ4QzsyNDhDOzI0OEM7MDAzNSAwMDJFOzAwMzUgMDAyRTsKKzI0OEQ7MjQ4RDsyNDhEOzAwMzYgMDAyRTswMDM2IDAwMkU7CisyNDhFOzI0OEU7MjQ4RTswMDM3IDAwMkU7MDAzNyAwMDJFOworMjQ4RjsyNDhGOzI0OEY7MDAzOCAwMDJFOzAwMzggMDAyRTsKKzI0OTA7MjQ5MDsyNDkwOzAwMzkgMDAyRTswMDM5IDAwMkU7CisyNDkxOzI0OTE7MjQ5MTswMDMxIDAwMzAgMDAyRTswMDMxIDAwMzAgMDAyRTsKKzI0OTI7MjQ5MjsyNDkyOzAwMzEgMDAzMSAwMDJFOzAwMzEgMDAzMSAwMDJFOworMjQ5MzsyNDkzOzI0OTM7MDAzMSAwMDMyIDAwMkU7MDAzMSAwMDMyIDAwMkU7CisyNDk0OzI0OTQ7MjQ5NDswMDMxIDAwMzMgMDAyRTswMDMxIDAwMzMgMDAyRTsKKzI0OTU7MjQ5NTsyNDk1OzAwMzEgMDAzNCAwMDJFOzAwMzEgMDAzNCAwMDJFOworMjQ5NjsyNDk2OzI0OTY7MDAzMSAwMDM1IDAwMkU7MDAzMSAwMDM1IDAwMkU7CisyNDk3OzI0OTc7MjQ5NzswMDMxIDAwMzYgMDAyRTswMDMxIDAwMzYgMDAyRTsKKzI0OTg7MjQ5ODsyNDk4OzAwMzEgMDAzNyAwMDJFOzAwMzEgMDAzNyAwMDJFOworMjQ5OTsyNDk5OzI0OTk7MDAzMSAwMDM4IDAwMkU7MDAzMSAwMDM4IDAwMkU7CisyNDlBOzI0OUE7MjQ5QTswMDMxIDAwMzkgMDAyRTswMDMxIDAwMzkgMDAyRTsKKzI0OUI7MjQ5QjsyNDlCOzAwMzIgMDAzMCAwMDJFOzAwMzIgMDAzMCAwMDJFOworMjQ5QzsyNDlDOzI0OUM7MDAyOCAwMDYxIDAwMjk7MDAyOCAwMDYxIDAwMjk7CisyNDlEOzI0OUQ7MjQ5RDswMDI4IDAwNjIgMDAyOTswMDI4IDAwNjIgMDAyOTsKKzI0OUU7MjQ5RTsyNDlFOzAwMjggMDA2MyAwMDI5OzAwMjggMDA2MyAwMDI5OworMjQ5RjsyNDlGOzI0OUY7MDAyOCAwMDY0IDAwMjk7MDAyOCAwMDY0IDAwMjk7CisyNEEwOzI0QTA7MjRBMDswMDI4IDAwNjUgMDAyOTswMDI4IDAwNjUgMDAyOTsKKzI0QTE7MjRBMTsyNEExOzAwMjggMDA2NiAwMDI5OzAwMjggMDA2NiAwMDI5OworMjRBMjsyNEEyOzI0QTI7MDAyOCAwMDY3IDAwMjk7MDAyOCAwMDY3IDAwMjk7CisyNEEzOzI0QTM7MjRBMzswMDI4IDAwNjggMDAyOTswMDI4IDAwNjggMDAyOTsKKzI0QTQ7MjRBNDsyNEE0OzAwMjggMDA2OSAwMDI5OzAwMjggMDA2OSAwMDI5OworMjRBNTsyNEE1OzI0QTU7MDAyOCAwMDZBIDAwMjk7MDAyOCAwMDZBIDAwMjk7CisyNEE2OzI0QTY7MjRBNjswMDI4IDAwNkIgMDAyOTswMDI4IDAwNkIgMDAyOTsKKzI0QTc7MjRBNzsyNEE3OzAwMjggMDA2QyAwMDI5OzAwMjggMDA2QyAwMDI5OworMjRBODsyNEE4OzI0QTg7MDAyOCAwMDZEIDAwMjk7MDAyOCAwMDZEIDAwMjk7CisyNEE5OzI0QTk7MjRBOTswMDI4IDAwNkUgMDAyOTswMDI4IDAwNkUgMDAyOTsKKzI0QUE7MjRBQTsyNEFBOzAwMjggMDA2RiAwMDI5OzAwMjggMDA2RiAwMDI5OworMjRBQjsyNEFCOzI0QUI7MDAyOCAwMDcwIDAwMjk7MDAyOCAwMDcwIDAwMjk7CisyNEFDOzI0QUM7MjRBQzswMDI4IDAwNzEgMDAyOTswMDI4IDAwNzEgMDAyOTsKKzI0QUQ7MjRBRDsyNEFEOzAwMjggMDA3MiAwMDI5OzAwMjggMDA3MiAwMDI5OworMjRBRTsyNEFFOzI0QUU7MDAyOCAwMDczIDAwMjk7MDAyOCAwMDczIDAwMjk7CisyNEFGOzI0QUY7MjRBRjswMDI4IDAwNzQgMDAyOTswMDI4IDAwNzQgMDAyOTsKKzI0QjA7MjRCMDsyNEIwOzAwMjggMDA3NSAwMDI5OzAwMjggMDA3NSAwMDI5OworMjRCMTsyNEIxOzI0QjE7MDAyOCAwMDc2IDAwMjk7MDAyOCAwMDc2IDAwMjk7CisyNEIyOzI0QjI7MjRCMjswMDI4IDAwNzcgMDAyOTswMDI4IDAwNzcgMDAyOTsKKzI0QjM7MjRCMzsyNEIzOzAwMjggMDA3OCAwMDI5OzAwMjggMDA3OCAwMDI5OworMjRCNDsyNEI0OzI0QjQ7MDAyOCAwMDc5IDAwMjk7MDAyOCAwMDc5IDAwMjk7CisyNEI1OzI0QjU7MjRCNTswMDI4IDAwN0EgMDAyOTswMDI4IDAwN0EgMDAyOTsKKzI0QjY7MjRCNjsyNEI2OzAwNDE7MDA0MTsKKzI0Qjc7MjRCNzsyNEI3OzAwNDI7MDA0MjsKKzI0Qjg7MjRCODsyNEI4OzAwNDM7MDA0MzsKKzI0Qjk7MjRCOTsyNEI5OzAwNDQ7MDA0NDsKKzI0QkE7MjRCQTsyNEJBOzAwNDU7MDA0NTsKKzI0QkI7MjRCQjsyNEJCOzAwNDY7MDA0NjsKKzI0QkM7MjRCQzsyNEJDOzAwNDc7MDA0NzsKKzI0QkQ7MjRCRDsyNEJEOzAwNDg7MDA0ODsKKzI0QkU7MjRCRTsyNEJFOzAwNDk7MDA0OTsKKzI0QkY7MjRCRjsyNEJGOzAwNEE7MDA0QTsKKzI0QzA7MjRDMDsyNEMwOzAwNEI7MDA0QjsKKzI0QzE7MjRDMTsyNEMxOzAwNEM7MDA0QzsKKzI0QzI7MjRDMjsyNEMyOzAwNEQ7MDA0RDsKKzI0QzM7MjRDMzsyNEMzOzAwNEU7MDA0RTsKKzI0QzQ7MjRDNDsyNEM0OzAwNEY7MDA0RjsKKzI0QzU7MjRDNTsyNEM1OzAwNTA7MDA1MDsKKzI0QzY7MjRDNjsyNEM2OzAwNTE7MDA1MTsKKzI0Qzc7MjRDNzsyNEM3OzAwNTI7MDA1MjsKKzI0Qzg7MjRDODsyNEM4OzAwNTM7MDA1MzsKKzI0Qzk7MjRDOTsyNEM5OzAwNTQ7MDA1NDsKKzI0Q0E7MjRDQTsyNENBOzAwNTU7MDA1NTsKKzI0Q0I7MjRDQjsyNENCOzAwNTY7MDA1NjsKKzI0Q0M7MjRDQzsyNENDOzAwNTc7MDA1NzsKKzI0Q0Q7MjRDRDsyNENEOzAwNTg7MDA1ODsKKzI0Q0U7MjRDRTsyNENFOzAwNTk7MDA1OTsKKzI0Q0Y7MjRDRjsyNENGOzAwNUE7MDA1QTsKKzI0RDA7MjREMDsyNEQwOzAwNjE7MDA2MTsKKzI0RDE7MjREMTsyNEQxOzAwNjI7MDA2MjsKKzI0RDI7MjREMjsyNEQyOzAwNjM7MDA2MzsKKzI0RDM7MjREMzsyNEQzOzAwNjQ7MDA2NDsKKzI0RDQ7MjRENDsyNEQ0OzAwNjU7MDA2NTsKKzI0RDU7MjRENTsyNEQ1OzAwNjY7MDA2NjsKKzI0RDY7MjRENjsyNEQ2OzAwNjc7MDA2NzsKKzI0RDc7MjRENzsyNEQ3OzAwNjg7MDA2ODsKKzI0RDg7MjREODsyNEQ4OzAwNjk7MDA2OTsKKzI0RDk7MjREOTsyNEQ5OzAwNkE7MDA2QTsKKzI0REE7MjREQTsyNERBOzAwNkI7MDA2QjsKKzI0REI7MjREQjsyNERCOzAwNkM7MDA2QzsKKzI0REM7MjREQzsyNERDOzAwNkQ7MDA2RDsKKzI0REQ7MjRERDsyNEREOzAwNkU7MDA2RTsKKzI0REU7MjRERTsyNERFOzAwNkY7MDA2RjsKKzI0REY7MjRERjsyNERGOzAwNzA7MDA3MDsKKzI0RTA7MjRFMDsyNEUwOzAwNzE7MDA3MTsKKzI0RTE7MjRFMTsyNEUxOzAwNzI7MDA3MjsKKzI0RTI7MjRFMjsyNEUyOzAwNzM7MDA3MzsKKzI0RTM7MjRFMzsyNEUzOzAwNzQ7MDA3NDsKKzI0RTQ7MjRFNDsyNEU0OzAwNzU7MDA3NTsKKzI0RTU7MjRFNTsyNEU1OzAwNzY7MDA3NjsKKzI0RTY7MjRFNjsyNEU2OzAwNzc7MDA3NzsKKzI0RTc7MjRFNzsyNEU3OzAwNzg7MDA3ODsKKzI0RTg7MjRFODsyNEU4OzAwNzk7MDA3OTsKKzI0RTk7MjRFOTsyNEU5OzAwN0E7MDA3QTsKKzI0RUE7MjRFQTsyNEVBOzAwMzA7MDAzMDsKKzJBMEM7MkEwQzsyQTBDOzIyMkIgMjIyQiAyMjJCIDIyMkI7MjIyQiAyMjJCIDIyMkIgMjIyQjsKKzJBNzQ7MkE3NDsyQTc0OzAwM0EgMDAzQSAwMDNEOzAwM0EgMDAzQSAwMDNEOworMkE3NTsyQTc1OzJBNzU7MDAzRCAwMDNEOzAwM0QgMDAzRDsKKzJBNzY7MkE3NjsyQTc2OzAwM0QgMDAzRCAwMDNEOzAwM0QgMDAzRCAwMDNEOworMkFEQzsyQUREIDAzMzg7MkFERCAwMzM4OzJBREQgMDMzODsyQUREIDAzMzg7CisyRTlGOzJFOUY7MkU5Rjs2QkNEOzZCQ0Q7CisyRUYzOzJFRjM7MkVGMzs5RjlGOzlGOUY7CisyRjAwOzJGMDA7MkYwMDs0RTAwOzRFMDA7CisyRjAxOzJGMDE7MkYwMTs0RTI4OzRFMjg7CisyRjAyOzJGMDI7MkYwMjs0RTM2OzRFMzY7CisyRjAzOzJGMDM7MkYwMzs0RTNGOzRFM0Y7CisyRjA0OzJGMDQ7MkYwNDs0RTU5OzRFNTk7CisyRjA1OzJGMDU7MkYwNTs0RTg1OzRFODU7CisyRjA2OzJGMDY7MkYwNjs0RThDOzRFOEM7CisyRjA3OzJGMDc7MkYwNzs0RUEwOzRFQTA7CisyRjA4OzJGMDg7MkYwODs0RUJBOzRFQkE7CisyRjA5OzJGMDk7MkYwOTs1MTNGOzUxM0Y7CisyRjBBOzJGMEE7MkYwQTs1MTY1OzUxNjU7CisyRjBCOzJGMEI7MkYwQjs1MTZCOzUxNkI7CisyRjBDOzJGMEM7MkYwQzs1MTgyOzUxODI7CisyRjBEOzJGMEQ7MkYwRDs1MTk2OzUxOTY7CisyRjBFOzJGMEU7MkYwRTs1MUFCOzUxQUI7CisyRjBGOzJGMEY7MkYwRjs1MUUwOzUxRTA7CisyRjEwOzJGMTA7MkYxMDs1MUY1OzUxRjU7CisyRjExOzJGMTE7MkYxMTs1MjAwOzUyMDA7CisyRjEyOzJGMTI7MkYxMjs1MjlCOzUyOUI7CisyRjEzOzJGMTM7MkYxMzs1MkY5OzUyRjk7CisyRjE0OzJGMTQ7MkYxNDs1MzE1OzUzMTU7CisyRjE1OzJGMTU7MkYxNTs1MzFBOzUzMUE7CisyRjE2OzJGMTY7MkYxNjs1MzM4OzUzMzg7CisyRjE3OzJGMTc7MkYxNzs1MzQxOzUzNDE7CisyRjE4OzJGMTg7MkYxODs1MzVDOzUzNUM7CisyRjE5OzJGMTk7MkYxOTs1MzY5OzUzNjk7CisyRjFBOzJGMUE7MkYxQTs1MzgyOzUzODI7CisyRjFCOzJGMUI7MkYxQjs1M0I2OzUzQjY7CisyRjFDOzJGMUM7MkYxQzs1M0M4OzUzQzg7CisyRjFEOzJGMUQ7MkYxRDs1M0UzOzUzRTM7CisyRjFFOzJGMUU7MkYxRTs1NkQ3OzU2RDc7CisyRjFGOzJGMUY7MkYxRjs1NzFGOzU3MUY7CisyRjIwOzJGMjA7MkYyMDs1OEVCOzU4RUI7CisyRjIxOzJGMjE7MkYyMTs1OTAyOzU5MDI7CisyRjIyOzJGMjI7MkYyMjs1OTBBOzU5MEE7CisyRjIzOzJGMjM7MkYyMzs1OTE1OzU5MTU7CisyRjI0OzJGMjQ7MkYyNDs1OTI3OzU5Mjc7CisyRjI1OzJGMjU7MkYyNTs1OTczOzU5NzM7CisyRjI2OzJGMjY7MkYyNjs1QjUwOzVCNTA7CisyRjI3OzJGMjc7MkYyNzs1QjgwOzVCODA7CisyRjI4OzJGMjg7MkYyODs1QkY4OzVCRjg7CisyRjI5OzJGMjk7MkYyOTs1QzBGOzVDMEY7CisyRjJBOzJGMkE7MkYyQTs1QzIyOzVDMjI7CisyRjJCOzJGMkI7MkYyQjs1QzM4OzVDMzg7CisyRjJDOzJGMkM7MkYyQzs1QzZFOzVDNkU7CisyRjJEOzJGMkQ7MkYyRDs1QzcxOzVDNzE7CisyRjJFOzJGMkU7MkYyRTs1RERCOzVEREI7CisyRjJGOzJGMkY7MkYyRjs1REU1OzVERTU7CisyRjMwOzJGMzA7MkYzMDs1REYxOzVERjE7CisyRjMxOzJGMzE7MkYzMTs1REZFOzVERkU7CisyRjMyOzJGMzI7MkYzMjs1RTcyOzVFNzI7CisyRjMzOzJGMzM7MkYzMzs1RTdBOzVFN0E7CisyRjM0OzJGMzQ7MkYzNDs1RTdGOzVFN0Y7CisyRjM1OzJGMzU7MkYzNTs1RUY0OzVFRjQ7CisyRjM2OzJGMzY7MkYzNjs1RUZFOzVFRkU7CisyRjM3OzJGMzc7MkYzNzs1RjBCOzVGMEI7CisyRjM4OzJGMzg7MkYzODs1RjEzOzVGMTM7CisyRjM5OzJGMzk7MkYzOTs1RjUwOzVGNTA7CisyRjNBOzJGM0E7MkYzQTs1RjYxOzVGNjE7CisyRjNCOzJGM0I7MkYzQjs1RjczOzVGNzM7CisyRjNDOzJGM0M7MkYzQzs1RkMzOzVGQzM7CisyRjNEOzJGM0Q7MkYzRDs2MjA4OzYyMDg7CisyRjNFOzJGM0U7MkYzRTs2MjM2OzYyMzY7CisyRjNGOzJGM0Y7MkYzRjs2MjRCOzYyNEI7CisyRjQwOzJGNDA7MkY0MDs2NTJGOzY1MkY7CisyRjQxOzJGNDE7MkY0MTs2NTM0OzY1MzQ7CisyRjQyOzJGNDI7MkY0Mjs2NTg3OzY1ODc7CisyRjQzOzJGNDM7MkY0Mzs2NTk3OzY1OTc7CisyRjQ0OzJGNDQ7MkY0NDs2NUE0OzY1QTQ7CisyRjQ1OzJGNDU7MkY0NTs2NUI5OzY1Qjk7CisyRjQ2OzJGNDY7MkY0Njs2NUUwOzY1RTA7CisyRjQ3OzJGNDc7MkY0Nzs2NUU1OzY1RTU7CisyRjQ4OzJGNDg7MkY0ODs2NkYwOzY2RjA7CisyRjQ5OzJGNDk7MkY0OTs2NzA4OzY3MDg7CisyRjRBOzJGNEE7MkY0QTs2NzI4OzY3Mjg7CisyRjRCOzJGNEI7MkY0Qjs2QjIwOzZCMjA7CisyRjRDOzJGNEM7MkY0Qzs2QjYyOzZCNjI7CisyRjREOzJGNEQ7MkY0RDs2Qjc5OzZCNzk7CisyRjRFOzJGNEU7MkY0RTs2QkIzOzZCQjM7CisyRjRGOzJGNEY7MkY0Rjs2QkNCOzZCQ0I7CisyRjUwOzJGNTA7MkY1MDs2QkQ0OzZCRDQ7CisyRjUxOzJGNTE7MkY1MTs2QkRCOzZCREI7CisyRjUyOzJGNTI7MkY1Mjs2QzBGOzZDMEY7CisyRjUzOzJGNTM7MkY1Mzs2QzE0OzZDMTQ7CisyRjU0OzJGNTQ7MkY1NDs2QzM0OzZDMzQ7CisyRjU1OzJGNTU7MkY1NTs3MDZCOzcwNkI7CisyRjU2OzJGNTY7MkY1Njs3MjJBOzcyMkE7CisyRjU3OzJGNTc7MkY1Nzs3MjM2OzcyMzY7CisyRjU4OzJGNTg7MkY1ODs3MjNCOzcyM0I7CisyRjU5OzJGNTk7MkY1OTs3MjNGOzcyM0Y7CisyRjVBOzJGNUE7MkY1QTs3MjQ3OzcyNDc7CisyRjVCOzJGNUI7MkY1Qjs3MjU5OzcyNTk7CisyRjVDOzJGNUM7MkY1Qzs3MjVCOzcyNUI7CisyRjVEOzJGNUQ7MkY1RDs3MkFDOzcyQUM7CisyRjVFOzJGNUU7MkY1RTs3Mzg0OzczODQ7CisyRjVGOzJGNUY7MkY1Rjs3Mzg5OzczODk7CisyRjYwOzJGNjA7MkY2MDs3NERDOzc0REM7CisyRjYxOzJGNjE7MkY2MTs3NEU2Ozc0RTY7CisyRjYyOzJGNjI7MkY2Mjs3NTE4Ozc1MTg7CisyRjYzOzJGNjM7MkY2Mzs3NTFGOzc1MUY7CisyRjY0OzJGNjQ7MkY2NDs3NTI4Ozc1Mjg7CisyRjY1OzJGNjU7MkY2NTs3NTMwOzc1MzA7CisyRjY2OzJGNjY7MkY2Njs3NThCOzc1OEI7CisyRjY3OzJGNjc7MkY2Nzs3NTkyOzc1OTI7CisyRjY4OzJGNjg7MkY2ODs3Njc2Ozc2NzY7CisyRjY5OzJGNjk7MkY2OTs3NjdEOzc2N0Q7CisyRjZBOzJGNkE7MkY2QTs3NkFFOzc2QUU7CisyRjZCOzJGNkI7MkY2Qjs3NkJGOzc2QkY7CisyRjZDOzJGNkM7MkY2Qzs3NkVFOzc2RUU7CisyRjZEOzJGNkQ7MkY2RDs3N0RCOzc3REI7CisyRjZFOzJGNkU7MkY2RTs3N0UyOzc3RTI7CisyRjZGOzJGNkY7MkY2Rjs3N0YzOzc3RjM7CisyRjcwOzJGNzA7MkY3MDs3OTNBOzc5M0E7CisyRjcxOzJGNzE7MkY3MTs3OUI4Ozc5Qjg7CisyRjcyOzJGNzI7MkY3Mjs3OUJFOzc5QkU7CisyRjczOzJGNzM7MkY3Mzs3QTc0OzdBNzQ7CisyRjc0OzJGNzQ7MkY3NDs3QUNCOzdBQ0I7CisyRjc1OzJGNzU7MkY3NTs3QUY5OzdBRjk7CisyRjc2OzJGNzY7MkY3Njs3QzczOzdDNzM7CisyRjc3OzJGNzc7MkY3Nzs3Q0Y4OzdDRjg7CisyRjc4OzJGNzg7MkY3ODs3RjM2OzdGMzY7CisyRjc5OzJGNzk7MkY3OTs3RjUxOzdGNTE7CisyRjdBOzJGN0E7MkY3QTs3RjhBOzdGOEE7CisyRjdCOzJGN0I7MkY3Qjs3RkJEOzdGQkQ7CisyRjdDOzJGN0M7MkY3Qzs4MDAxOzgwMDE7CisyRjdEOzJGN0Q7MkY3RDs4MDBDOzgwMEM7CisyRjdFOzJGN0U7MkY3RTs4MDEyOzgwMTI7CisyRjdGOzJGN0Y7MkY3Rjs4MDMzOzgwMzM7CisyRjgwOzJGODA7MkY4MDs4MDdGOzgwN0Y7CisyRjgxOzJGODE7MkY4MTs4MDg5OzgwODk7CisyRjgyOzJGODI7MkY4Mjs4MUUzOzgxRTM7CisyRjgzOzJGODM7MkY4Mzs4MUVBOzgxRUE7CisyRjg0OzJGODQ7MkY4NDs4MUYzOzgxRjM7CisyRjg1OzJGODU7MkY4NTs4MUZDOzgxRkM7CisyRjg2OzJGODY7MkY4Njs4MjBDOzgyMEM7CisyRjg3OzJGODc7MkY4Nzs4MjFCOzgyMUI7CisyRjg4OzJGODg7MkY4ODs4MjFGOzgyMUY7CisyRjg5OzJGODk7MkY4OTs4MjZFOzgyNkU7CisyRjhBOzJGOEE7MkY4QTs4MjcyOzgyNzI7CisyRjhCOzJGOEI7MkY4Qjs4Mjc4OzgyNzg7CisyRjhDOzJGOEM7MkY4Qzs4NjREOzg2NEQ7CisyRjhEOzJGOEQ7MkY4RDs4NjZCOzg2NkI7CisyRjhFOzJGOEU7MkY4RTs4ODQwOzg4NDA7CisyRjhGOzJGOEY7MkY4Rjs4ODRDOzg4NEM7CisyRjkwOzJGOTA7MkY5MDs4ODYzOzg4NjM7CisyRjkxOzJGOTE7MkY5MTs4OTdFOzg5N0U7CisyRjkyOzJGOTI7MkY5Mjs4OThCOzg5OEI7CisyRjkzOzJGOTM7MkY5Mzs4OUQyOzg5RDI7CisyRjk0OzJGOTQ7MkY5NDs4QTAwOzhBMDA7CisyRjk1OzJGOTU7MkY5NTs4QzM3OzhDMzc7CisyRjk2OzJGOTY7MkY5Njs4QzQ2OzhDNDY7CisyRjk3OzJGOTc7MkY5Nzs4QzU1OzhDNTU7CisyRjk4OzJGOTg7MkY5ODs4Qzc4OzhDNzg7CisyRjk5OzJGOTk7MkY5OTs4QzlEOzhDOUQ7CisyRjlBOzJGOUE7MkY5QTs4RDY0OzhENjQ7CisyRjlCOzJGOUI7MkY5Qjs4RDcwOzhENzA7CisyRjlDOzJGOUM7MkY5Qzs4REIzOzhEQjM7CisyRjlEOzJGOUQ7MkY5RDs4RUFCOzhFQUI7CisyRjlFOzJGOUU7MkY5RTs4RUNBOzhFQ0E7CisyRjlGOzJGOUY7MkY5Rjs4RjlCOzhGOUI7CisyRkEwOzJGQTA7MkZBMDs4RkIwOzhGQjA7CisyRkExOzJGQTE7MkZBMTs4RkI1OzhGQjU7CisyRkEyOzJGQTI7MkZBMjs5MDkxOzkwOTE7CisyRkEzOzJGQTM7MkZBMzs5MTQ5OzkxNDk7CisyRkE0OzJGQTQ7MkZBNDs5MUM2OzkxQzY7CisyRkE1OzJGQTU7MkZBNTs5MUNDOzkxQ0M7CisyRkE2OzJGQTY7MkZBNjs5MUQxOzkxRDE7CisyRkE3OzJGQTc7MkZBNzs5NTc3Ozk1Nzc7CisyRkE4OzJGQTg7MkZBODs5NTgwOzk1ODA7CisyRkE5OzJGQTk7MkZBOTs5NjFDOzk2MUM7CisyRkFBOzJGQUE7MkZBQTs5NkI2Ozk2QjY7CisyRkFCOzJGQUI7MkZBQjs5NkI5Ozk2Qjk7CisyRkFDOzJGQUM7MkZBQzs5NkU4Ozk2RTg7CisyRkFEOzJGQUQ7MkZBRDs5NzUxOzk3NTE7CisyRkFFOzJGQUU7MkZBRTs5NzVFOzk3NUU7CisyRkFGOzJGQUY7MkZBRjs5NzYyOzk3NjI7CisyRkIwOzJGQjA7MkZCMDs5NzY5Ozk3Njk7CisyRkIxOzJGQjE7MkZCMTs5N0NCOzk3Q0I7CisyRkIyOzJGQjI7MkZCMjs5N0VEOzk3RUQ7CisyRkIzOzJGQjM7MkZCMzs5N0YzOzk3RjM7CisyRkI0OzJGQjQ7MkZCNDs5ODAxOzk4MDE7CisyRkI1OzJGQjU7MkZCNTs5OEE4Ozk4QTg7CisyRkI2OzJGQjY7MkZCNjs5OERCOzk4REI7CisyRkI3OzJGQjc7MkZCNzs5OERGOzk4REY7CisyRkI4OzJGQjg7MkZCODs5OTk2Ozk5OTY7CisyRkI5OzJGQjk7MkZCOTs5OTk5Ozk5OTk7CisyRkJBOzJGQkE7MkZCQTs5OUFDOzk5QUM7CisyRkJCOzJGQkI7MkZCQjs5QUE4OzlBQTg7CisyRkJDOzJGQkM7MkZCQzs5QUQ4OzlBRDg7CisyRkJEOzJGQkQ7MkZCRDs5QURGOzlBREY7CisyRkJFOzJGQkU7MkZCRTs5QjI1OzlCMjU7CisyRkJGOzJGQkY7MkZCRjs5QjJGOzlCMkY7CisyRkMwOzJGQzA7MkZDMDs5QjMyOzlCMzI7CisyRkMxOzJGQzE7MkZDMTs5QjNDOzlCM0M7CisyRkMyOzJGQzI7MkZDMjs5QjVBOzlCNUE7CisyRkMzOzJGQzM7MkZDMzs5Q0U1OzlDRTU7CisyRkM0OzJGQzQ7MkZDNDs5RTc1OzlFNzU7CisyRkM1OzJGQzU7MkZDNTs5RTdGOzlFN0Y7CisyRkM2OzJGQzY7MkZDNjs5RUE1OzlFQTU7CisyRkM3OzJGQzc7MkZDNzs5RUJCOzlFQkI7CisyRkM4OzJGQzg7MkZDODs5RUMzOzlFQzM7CisyRkM5OzJGQzk7MkZDOTs5RUNEOzlFQ0Q7CisyRkNBOzJGQ0E7MkZDQTs5RUQxOzlFRDE7CisyRkNCOzJGQ0I7MkZDQjs5RUY5OzlFRjk7CisyRkNDOzJGQ0M7MkZDQzs5RUZEOzlFRkQ7CisyRkNEOzJGQ0Q7MkZDRDs5RjBFOzlGMEU7CisyRkNFOzJGQ0U7MkZDRTs5RjEzOzlGMTM7CisyRkNGOzJGQ0Y7MkZDRjs5RjIwOzlGMjA7CisyRkQwOzJGRDA7MkZEMDs5RjNCOzlGM0I7CisyRkQxOzJGRDE7MkZEMTs5RjRBOzlGNEE7CisyRkQyOzJGRDI7MkZEMjs5RjUyOzlGNTI7CisyRkQzOzJGRDM7MkZEMzs5RjhEOzlGOEQ7CisyRkQ0OzJGRDQ7MkZENDs5RjlDOzlGOUM7CisyRkQ1OzJGRDU7MkZENTs5RkEwOzlGQTA7CiszMDAwOzMwMDA7MzAwMDswMDIwOzAwMjA7CiszMDM2OzMwMzY7MzAzNjszMDEyOzMwMTI7CiszMDM4OzMwMzg7MzAzODs1MzQxOzUzNDE7CiszMDM5OzMwMzk7MzAzOTs1MzQ0OzUzNDQ7CiszMDNBOzMwM0E7MzAzQTs1MzQ1OzUzNDU7CiszMDRDOzMwNEM7MzA0QiAzMDk5OzMwNEM7MzA0QiAzMDk5OworMzA0RTszMDRFOzMwNEQgMzA5OTszMDRFOzMwNEQgMzA5OTsKKzMwNTA7MzA1MDszMDRGIDMwOTk7MzA1MDszMDRGIDMwOTk7CiszMDUyOzMwNTI7MzA1MSAzMDk5OzMwNTI7MzA1MSAzMDk5OworMzA1NDszMDU0OzMwNTMgMzA5OTszMDU0OzMwNTMgMzA5OTsKKzMwNTY7MzA1NjszMDU1IDMwOTk7MzA1NjszMDU1IDMwOTk7CiszMDU4OzMwNTg7MzA1NyAzMDk5OzMwNTg7MzA1NyAzMDk5OworMzA1QTszMDVBOzMwNTkgMzA5OTszMDVBOzMwNTkgMzA5OTsKKzMwNUM7MzA1QzszMDVCIDMwOTk7MzA1QzszMDVCIDMwOTk7CiszMDVFOzMwNUU7MzA1RCAzMDk5OzMwNUU7MzA1RCAzMDk5OworMzA2MDszMDYwOzMwNUYgMzA5OTszMDYwOzMwNUYgMzA5OTsKKzMwNjI7MzA2MjszMDYxIDMwOTk7MzA2MjszMDYxIDMwOTk7CiszMDY1OzMwNjU7MzA2NCAzMDk5OzMwNjU7MzA2NCAzMDk5OworMzA2NzszMDY3OzMwNjYgMzA5OTszMDY3OzMwNjYgMzA5OTsKKzMwNjk7MzA2OTszMDY4IDMwOTk7MzA2OTszMDY4IDMwOTk7CiszMDcwOzMwNzA7MzA2RiAzMDk5OzMwNzA7MzA2RiAzMDk5OworMzA3MTszMDcxOzMwNkYgMzA5QTszMDcxOzMwNkYgMzA5QTsKKzMwNzM7MzA3MzszMDcyIDMwOTk7MzA3MzszMDcyIDMwOTk7CiszMDc0OzMwNzQ7MzA3MiAzMDlBOzMwNzQ7MzA3MiAzMDlBOworMzA3NjszMDc2OzMwNzUgMzA5OTszMDc2OzMwNzUgMzA5OTsKKzMwNzc7MzA3NzszMDc1IDMwOUE7MzA3NzszMDc1IDMwOUE7CiszMDc5OzMwNzk7MzA3OCAzMDk5OzMwNzk7MzA3OCAzMDk5OworMzA3QTszMDdBOzMwNzggMzA5QTszMDdBOzMwNzggMzA5QTsKKzMwN0M7MzA3QzszMDdCIDMwOTk7MzA3QzszMDdCIDMwOTk7CiszMDdEOzMwN0Q7MzA3QiAzMDlBOzMwN0Q7MzA3QiAzMDlBOworMzA5NDszMDk0OzMwNDYgMzA5OTszMDk0OzMwNDYgMzA5OTsKKzMwOUI7MzA5QjszMDlCOzAwMjAgMzA5OTswMDIwIDMwOTk7CiszMDlDOzMwOUM7MzA5QzswMDIwIDMwOUE7MDAyMCAzMDlBOworMzA5RTszMDlFOzMwOUQgMzA5OTszMDlFOzMwOUQgMzA5OTsKKzMwOUY7MzA5RjszMDlGOzMwODggMzA4QTszMDg4IDMwOEE7CiszMEFDOzMwQUM7MzBBQiAzMDk5OzMwQUM7MzBBQiAzMDk5OworMzBBRTszMEFFOzMwQUQgMzA5OTszMEFFOzMwQUQgMzA5OTsKKzMwQjA7MzBCMDszMEFGIDMwOTk7MzBCMDszMEFGIDMwOTk7CiszMEIyOzMwQjI7MzBCMSAzMDk5OzMwQjI7MzBCMSAzMDk5OworMzBCNDszMEI0OzMwQjMgMzA5OTszMEI0OzMwQjMgMzA5OTsKKzMwQjY7MzBCNjszMEI1IDMwOTk7MzBCNjszMEI1IDMwOTk7CiszMEI4OzMwQjg7MzBCNyAzMDk5OzMwQjg7MzBCNyAzMDk5OworMzBCQTszMEJBOzMwQjkgMzA5OTszMEJBOzMwQjkgMzA5OTsKKzMwQkM7MzBCQzszMEJCIDMwOTk7MzBCQzszMEJCIDMwOTk7CiszMEJFOzMwQkU7MzBCRCAzMDk5OzMwQkU7MzBCRCAzMDk5OworMzBDMDszMEMwOzMwQkYgMzA5OTszMEMwOzMwQkYgMzA5OTsKKzMwQzI7MzBDMjszMEMxIDMwOTk7MzBDMjszMEMxIDMwOTk7CiszMEM1OzMwQzU7MzBDNCAzMDk5OzMwQzU7MzBDNCAzMDk5OworMzBDNzszMEM3OzMwQzYgMzA5OTszMEM3OzMwQzYgMzA5OTsKKzMwQzk7MzBDOTszMEM4IDMwOTk7MzBDOTszMEM4IDMwOTk7CiszMEQwOzMwRDA7MzBDRiAzMDk5OzMwRDA7MzBDRiAzMDk5OworMzBEMTszMEQxOzMwQ0YgMzA5QTszMEQxOzMwQ0YgMzA5QTsKKzMwRDM7MzBEMzszMEQyIDMwOTk7MzBEMzszMEQyIDMwOTk7CiszMEQ0OzMwRDQ7MzBEMiAzMDlBOzMwRDQ7MzBEMiAzMDlBOworMzBENjszMEQ2OzMwRDUgMzA5OTszMEQ2OzMwRDUgMzA5OTsKKzMwRDc7MzBENzszMEQ1IDMwOUE7MzBENzszMEQ1IDMwOUE7CiszMEQ5OzMwRDk7MzBEOCAzMDk5OzMwRDk7MzBEOCAzMDk5OworMzBEQTszMERBOzMwRDggMzA5QTszMERBOzMwRDggMzA5QTsKKzMwREM7MzBEQzszMERCIDMwOTk7MzBEQzszMERCIDMwOTk7CiszMEREOzMwREQ7MzBEQiAzMDlBOzMwREQ7MzBEQiAzMDlBOworMzBGNDszMEY0OzMwQTYgMzA5OTszMEY0OzMwQTYgMzA5OTsKKzMwRjc7MzBGNzszMEVGIDMwOTk7MzBGNzszMEVGIDMwOTk7CiszMEY4OzMwRjg7MzBGMCAzMDk5OzMwRjg7MzBGMCAzMDk5OworMzBGOTszMEY5OzMwRjEgMzA5OTszMEY5OzMwRjEgMzA5OTsKKzMwRkE7MzBGQTszMEYyIDMwOTk7MzBGQTszMEYyIDMwOTk7CiszMEZFOzMwRkU7MzBGRCAzMDk5OzMwRkU7MzBGRCAzMDk5OworMzBGRjszMEZGOzMwRkY7MzBCMyAzMEM4OzMwQjMgMzBDODsKKzMxMzE7MzEzMTszMTMxOzExMDA7MTEwMDsKKzMxMzI7MzEzMjszMTMyOzExMDE7MTEwMTsKKzMxMzM7MzEzMzszMTMzOzExQUE7MTFBQTsKKzMxMzQ7MzEzNDszMTM0OzExMDI7MTEwMjsKKzMxMzU7MzEzNTszMTM1OzExQUM7MTFBQzsKKzMxMzY7MzEzNjszMTM2OzExQUQ7MTFBRDsKKzMxMzc7MzEzNzszMTM3OzExMDM7MTEwMzsKKzMxMzg7MzEzODszMTM4OzExMDQ7MTEwNDsKKzMxMzk7MzEzOTszMTM5OzExMDU7MTEwNTsKKzMxM0E7MzEzQTszMTNBOzExQjA7MTFCMDsKKzMxM0I7MzEzQjszMTNCOzExQjE7MTFCMTsKKzMxM0M7MzEzQzszMTNDOzExQjI7MTFCMjsKKzMxM0Q7MzEzRDszMTNEOzExQjM7MTFCMzsKKzMxM0U7MzEzRTszMTNFOzExQjQ7MTFCNDsKKzMxM0Y7MzEzRjszMTNGOzExQjU7MTFCNTsKKzMxNDA7MzE0MDszMTQwOzExMUE7MTExQTsKKzMxNDE7MzE0MTszMTQxOzExMDY7MTEwNjsKKzMxNDI7MzE0MjszMTQyOzExMDc7MTEwNzsKKzMxNDM7MzE0MzszMTQzOzExMDg7MTEwODsKKzMxNDQ7MzE0NDszMTQ0OzExMjE7MTEyMTsKKzMxNDU7MzE0NTszMTQ1OzExMDk7MTEwOTsKKzMxNDY7MzE0NjszMTQ2OzExMEE7MTEwQTsKKzMxNDc7MzE0NzszMTQ3OzExMEI7MTEwQjsKKzMxNDg7MzE0ODszMTQ4OzExMEM7MTEwQzsKKzMxNDk7MzE0OTszMTQ5OzExMEQ7MTEwRDsKKzMxNEE7MzE0QTszMTRBOzExMEU7MTEwRTsKKzMxNEI7MzE0QjszMTRCOzExMEY7MTEwRjsKKzMxNEM7MzE0QzszMTRDOzExMTA7MTExMDsKKzMxNEQ7MzE0RDszMTREOzExMTE7MTExMTsKKzMxNEU7MzE0RTszMTRFOzExMTI7MTExMjsKKzMxNEY7MzE0RjszMTRGOzExNjE7MTE2MTsKKzMxNTA7MzE1MDszMTUwOzExNjI7MTE2MjsKKzMxNTE7MzE1MTszMTUxOzExNjM7MTE2MzsKKzMxNTI7MzE1MjszMTUyOzExNjQ7MTE2NDsKKzMxNTM7MzE1MzszMTUzOzExNjU7MTE2NTsKKzMxNTQ7MzE1NDszMTU0OzExNjY7MTE2NjsKKzMxNTU7MzE1NTszMTU1OzExNjc7MTE2NzsKKzMxNTY7MzE1NjszMTU2OzExNjg7MTE2ODsKKzMxNTc7MzE1NzszMTU3OzExNjk7MTE2OTsKKzMxNTg7MzE1ODszMTU4OzExNkE7MTE2QTsKKzMxNTk7MzE1OTszMTU5OzExNkI7MTE2QjsKKzMxNUE7MzE1QTszMTVBOzExNkM7MTE2QzsKKzMxNUI7MzE1QjszMTVCOzExNkQ7MTE2RDsKKzMxNUM7MzE1QzszMTVDOzExNkU7MTE2RTsKKzMxNUQ7MzE1RDszMTVEOzExNkY7MTE2RjsKKzMxNUU7MzE1RTszMTVFOzExNzA7MTE3MDsKKzMxNUY7MzE1RjszMTVGOzExNzE7MTE3MTsKKzMxNjA7MzE2MDszMTYwOzExNzI7MTE3MjsKKzMxNjE7MzE2MTszMTYxOzExNzM7MTE3MzsKKzMxNjI7MzE2MjszMTYyOzExNzQ7MTE3NDsKKzMxNjM7MzE2MzszMTYzOzExNzU7MTE3NTsKKzMxNjQ7MzE2NDszMTY0OzExNjA7MTE2MDsKKzMxNjU7MzE2NTszMTY1OzExMTQ7MTExNDsKKzMxNjY7MzE2NjszMTY2OzExMTU7MTExNTsKKzMxNjc7MzE2NzszMTY3OzExQzc7MTFDNzsKKzMxNjg7MzE2ODszMTY4OzExQzg7MTFDODsKKzMxNjk7MzE2OTszMTY5OzExQ0M7MTFDQzsKKzMxNkE7MzE2QTszMTZBOzExQ0U7MTFDRTsKKzMxNkI7MzE2QjszMTZCOzExRDM7MTFEMzsKKzMxNkM7MzE2QzszMTZDOzExRDc7MTFENzsKKzMxNkQ7MzE2RDszMTZEOzExRDk7MTFEOTsKKzMxNkU7MzE2RTszMTZFOzExMUM7MTExQzsKKzMxNkY7MzE2RjszMTZGOzExREQ7MTFERDsKKzMxNzA7MzE3MDszMTcwOzExREY7MTFERjsKKzMxNzE7MzE3MTszMTcxOzExMUQ7MTExRDsKKzMxNzI7MzE3MjszMTcyOzExMUU7MTExRTsKKzMxNzM7MzE3MzszMTczOzExMjA7MTEyMDsKKzMxNzQ7MzE3NDszMTc0OzExMjI7MTEyMjsKKzMxNzU7MzE3NTszMTc1OzExMjM7MTEyMzsKKzMxNzY7MzE3NjszMTc2OzExMjc7MTEyNzsKKzMxNzc7MzE3NzszMTc3OzExMjk7MTEyOTsKKzMxNzg7MzE3ODszMTc4OzExMkI7MTEyQjsKKzMxNzk7MzE3OTszMTc5OzExMkM7MTEyQzsKKzMxN0E7MzE3QTszMTdBOzExMkQ7MTEyRDsKKzMxN0I7MzE3QjszMTdCOzExMkU7MTEyRTsKKzMxN0M7MzE3QzszMTdDOzExMkY7MTEyRjsKKzMxN0Q7MzE3RDszMTdEOzExMzI7MTEzMjsKKzMxN0U7MzE3RTszMTdFOzExMzY7MTEzNjsKKzMxN0Y7MzE3RjszMTdGOzExNDA7MTE0MDsKKzMxODA7MzE4MDszMTgwOzExNDc7MTE0NzsKKzMxODE7MzE4MTszMTgxOzExNEM7MTE0QzsKKzMxODI7MzE4MjszMTgyOzExRjE7MTFGMTsKKzMxODM7MzE4MzszMTgzOzExRjI7MTFGMjsKKzMxODQ7MzE4NDszMTg0OzExNTc7MTE1NzsKKzMxODU7MzE4NTszMTg1OzExNTg7MTE1ODsKKzMxODY7MzE4NjszMTg2OzExNTk7MTE1OTsKKzMxODc7MzE4NzszMTg3OzExODQ7MTE4NDsKKzMxODg7MzE4ODszMTg4OzExODU7MTE4NTsKKzMxODk7MzE4OTszMTg5OzExODg7MTE4ODsKKzMxOEE7MzE4QTszMThBOzExOTE7MTE5MTsKKzMxOEI7MzE4QjszMThCOzExOTI7MTE5MjsKKzMxOEM7MzE4QzszMThDOzExOTQ7MTE5NDsKKzMxOEQ7MzE4RDszMThEOzExOUU7MTE5RTsKKzMxOEU7MzE4RTszMThFOzExQTE7MTFBMTsKKzMxOTI7MzE5MjszMTkyOzRFMDA7NEUwMDsKKzMxOTM7MzE5MzszMTkzOzRFOEM7NEU4QzsKKzMxOTQ7MzE5NDszMTk0OzRFMDk7NEUwOTsKKzMxOTU7MzE5NTszMTk1OzU2REI7NTZEQjsKKzMxOTY7MzE5NjszMTk2OzRFMEE7NEUwQTsKKzMxOTc7MzE5NzszMTk3OzRFMkQ7NEUyRDsKKzMxOTg7MzE5ODszMTk4OzRFMEI7NEUwQjsKKzMxOTk7MzE5OTszMTk5Ozc1MzI7NzUzMjsKKzMxOUE7MzE5QTszMTlBOzRFNTk7NEU1OTsKKzMxOUI7MzE5QjszMTlCOzRFMTk7NEUxOTsKKzMxOUM7MzE5QzszMTlDOzRFMDE7NEUwMTsKKzMxOUQ7MzE5RDszMTlEOzU5Mjk7NTkyOTsKKzMxOUU7MzE5RTszMTlFOzU3MzA7NTczMDsKKzMxOUY7MzE5RjszMTlGOzRFQkE7NEVCQTsKKzMyMDA7MzIwMDszMjAwOzAwMjggMTEwMCAwMDI5OzAwMjggMTEwMCAwMDI5OworMzIwMTszMjAxOzMyMDE7MDAyOCAxMTAyIDAwMjk7MDAyOCAxMTAyIDAwMjk7CiszMjAyOzMyMDI7MzIwMjswMDI4IDExMDMgMDAyOTswMDI4IDExMDMgMDAyOTsKKzMyMDM7MzIwMzszMjAzOzAwMjggMTEwNSAwMDI5OzAwMjggMTEwNSAwMDI5OworMzIwNDszMjA0OzMyMDQ7MDAyOCAxMTA2IDAwMjk7MDAyOCAxMTA2IDAwMjk7CiszMjA1OzMyMDU7MzIwNTswMDI4IDExMDcgMDAyOTswMDI4IDExMDcgMDAyOTsKKzMyMDY7MzIwNjszMjA2OzAwMjggMTEwOSAwMDI5OzAwMjggMTEwOSAwMDI5OworMzIwNzszMjA3OzMyMDc7MDAyOCAxMTBCIDAwMjk7MDAyOCAxMTBCIDAwMjk7CiszMjA4OzMyMDg7MzIwODswMDI4IDExMEMgMDAyOTswMDI4IDExMEMgMDAyOTsKKzMyMDk7MzIwOTszMjA5OzAwMjggMTEwRSAwMDI5OzAwMjggMTEwRSAwMDI5OworMzIwQTszMjBBOzMyMEE7MDAyOCAxMTBGIDAwMjk7MDAyOCAxMTBGIDAwMjk7CiszMjBCOzMyMEI7MzIwQjswMDI4IDExMTAgMDAyOTswMDI4IDExMTAgMDAyOTsKKzMyMEM7MzIwQzszMjBDOzAwMjggMTExMSAwMDI5OzAwMjggMTExMSAwMDI5OworMzIwRDszMjBEOzMyMEQ7MDAyOCAxMTEyIDAwMjk7MDAyOCAxMTEyIDAwMjk7CiszMjBFOzMyMEU7MzIwRTswMDI4IEFDMDAgMDAyOTswMDI4IDExMDAgMTE2MSAwMDI5OworMzIwRjszMjBGOzMyMEY7MDAyOCBCMDk4IDAwMjk7MDAyOCAxMTAyIDExNjEgMDAyOTsKKzMyMTA7MzIxMDszMjEwOzAwMjggQjJFNCAwMDI5OzAwMjggMTEwMyAxMTYxIDAwMjk7CiszMjExOzMyMTE7MzIxMTswMDI4IEI3N0MgMDAyOTswMDI4IDExMDUgMTE2MSAwMDI5OworMzIxMjszMjEyOzMyMTI7MDAyOCBCOUM4IDAwMjk7MDAyOCAxMTA2IDExNjEgMDAyOTsKKzMyMTM7MzIxMzszMjEzOzAwMjggQkMxNCAwMDI5OzAwMjggMTEwNyAxMTYxIDAwMjk7CiszMjE0OzMyMTQ7MzIxNDswMDI4IEMwQUMgMDAyOTswMDI4IDExMDkgMTE2MSAwMDI5OworMzIxNTszMjE1OzMyMTU7MDAyOCBDNTQ0IDAwMjk7MDAyOCAxMTBCIDExNjEgMDAyOTsKKzMyMTY7MzIxNjszMjE2OzAwMjggQzc5MCAwMDI5OzAwMjggMTEwQyAxMTYxIDAwMjk7CiszMjE3OzMyMTc7MzIxNzswMDI4IENDMjggMDAyOTswMDI4IDExMEUgMTE2MSAwMDI5OworMzIxODszMjE4OzMyMTg7MDAyOCBDRTc0IDAwMjk7MDAyOCAxMTBGIDExNjEgMDAyOTsKKzMyMTk7MzIxOTszMjE5OzAwMjggRDBDMCAwMDI5OzAwMjggMTExMCAxMTYxIDAwMjk7CiszMjFBOzMyMUE7MzIxQTswMDI4IEQzMEMgMDAyOTswMDI4IDExMTEgMTE2MSAwMDI5OworMzIxQjszMjFCOzMyMUI7MDAyOCBENTU4IDAwMjk7MDAyOCAxMTEyIDExNjEgMDAyOTsKKzMyMUM7MzIxQzszMjFDOzAwMjggQzhGQyAwMDI5OzAwMjggMTEwQyAxMTZFIDAwMjk7CiszMjIwOzMyMjA7MzIyMDswMDI4IDRFMDAgMDAyOTswMDI4IDRFMDAgMDAyOTsKKzMyMjE7MzIyMTszMjIxOzAwMjggNEU4QyAwMDI5OzAwMjggNEU4QyAwMDI5OworMzIyMjszMjIyOzMyMjI7MDAyOCA0RTA5IDAwMjk7MDAyOCA0RTA5IDAwMjk7CiszMjIzOzMyMjM7MzIyMzswMDI4IDU2REIgMDAyOTswMDI4IDU2REIgMDAyOTsKKzMyMjQ7MzIyNDszMjI0OzAwMjggNEU5NCAwMDI5OzAwMjggNEU5NCAwMDI5OworMzIyNTszMjI1OzMyMjU7MDAyOCA1MTZEIDAwMjk7MDAyOCA1MTZEIDAwMjk7CiszMjI2OzMyMjY7MzIyNjswMDI4IDRFMDMgMDAyOTswMDI4IDRFMDMgMDAyOTsKKzMyMjc7MzIyNzszMjI3OzAwMjggNTE2QiAwMDI5OzAwMjggNTE2QiAwMDI5OworMzIyODszMjI4OzMyMjg7MDAyOCA0RTVEIDAwMjk7MDAyOCA0RTVEIDAwMjk7CiszMjI5OzMyMjk7MzIyOTswMDI4IDUzNDEgMDAyOTswMDI4IDUzNDEgMDAyOTsKKzMyMkE7MzIyQTszMjJBOzAwMjggNjcwOCAwMDI5OzAwMjggNjcwOCAwMDI5OworMzIyQjszMjJCOzMyMkI7MDAyOCA3MDZCIDAwMjk7MDAyOCA3MDZCIDAwMjk7CiszMjJDOzMyMkM7MzIyQzswMDI4IDZDMzQgMDAyOTswMDI4IDZDMzQgMDAyOTsKKzMyMkQ7MzIyRDszMjJEOzAwMjggNjcyOCAwMDI5OzAwMjggNjcyOCAwMDI5OworMzIyRTszMjJFOzMyMkU7MDAyOCA5MUQxIDAwMjk7MDAyOCA5MUQxIDAwMjk7CiszMjJGOzMyMkY7MzIyRjswMDI4IDU3MUYgMDAyOTswMDI4IDU3MUYgMDAyOTsKKzMyMzA7MzIzMDszMjMwOzAwMjggNjVFNSAwMDI5OzAwMjggNjVFNSAwMDI5OworMzIzMTszMjMxOzMyMzE7MDAyOCA2ODJBIDAwMjk7MDAyOCA2ODJBIDAwMjk7CiszMjMyOzMyMzI7MzIzMjswMDI4IDY3MDkgMDAyOTswMDI4IDY3MDkgMDAyOTsKKzMyMzM7MzIzMzszMjMzOzAwMjggNzkzRSAwMDI5OzAwMjggNzkzRSAwMDI5OworMzIzNDszMjM0OzMyMzQ7MDAyOCA1NDBEIDAwMjk7MDAyOCA1NDBEIDAwMjk7CiszMjM1OzMyMzU7MzIzNTswMDI4IDcyNzkgMDAyOTswMDI4IDcyNzkgMDAyOTsKKzMyMzY7MzIzNjszMjM2OzAwMjggOENBMSAwMDI5OzAwMjggOENBMSAwMDI5OworMzIzNzszMjM3OzMyMzc7MDAyOCA3OTVEIDAwMjk7MDAyOCA3OTVEIDAwMjk7CiszMjM4OzMyMzg7MzIzODswMDI4IDUyQjQgMDAyOTswMDI4IDUyQjQgMDAyOTsKKzMyMzk7MzIzOTszMjM5OzAwMjggNEVFMyAwMDI5OzAwMjggNEVFMyAwMDI5OworMzIzQTszMjNBOzMyM0E7MDAyOCA1NDdDIDAwMjk7MDAyOCA1NDdDIDAwMjk7CiszMjNCOzMyM0I7MzIzQjswMDI4IDVCNjYgMDAyOTswMDI4IDVCNjYgMDAyOTsKKzMyM0M7MzIzQzszMjNDOzAwMjggNzZFMyAwMDI5OzAwMjggNzZFMyAwMDI5OworMzIzRDszMjNEOzMyM0Q7MDAyOCA0RjAxIDAwMjk7MDAyOCA0RjAxIDAwMjk7CiszMjNFOzMyM0U7MzIzRTswMDI4IDhDQzcgMDAyOTswMDI4IDhDQzcgMDAyOTsKKzMyM0Y7MzIzRjszMjNGOzAwMjggNTM1NCAwMDI5OzAwMjggNTM1NCAwMDI5OworMzI0MDszMjQwOzMyNDA7MDAyOCA3OTZEIDAwMjk7MDAyOCA3OTZEIDAwMjk7CiszMjQxOzMyNDE7MzI0MTswMDI4IDRGMTEgMDAyOTswMDI4IDRGMTEgMDAyOTsKKzMyNDI7MzI0MjszMjQyOzAwMjggODFFQSAwMDI5OzAwMjggODFFQSAwMDI5OworMzI0MzszMjQzOzMyNDM7MDAyOCA4MUYzIDAwMjk7MDAyOCA4MUYzIDAwMjk7CiszMjUxOzMyNTE7MzI1MTswMDMyIDAwMzE7MDAzMiAwMDMxOworMzI1MjszMjUyOzMyNTI7MDAzMiAwMDMyOzAwMzIgMDAzMjsKKzMyNTM7MzI1MzszMjUzOzAwMzIgMDAzMzswMDMyIDAwMzM7CiszMjU0OzMyNTQ7MzI1NDswMDMyIDAwMzQ7MDAzMiAwMDM0OworMzI1NTszMjU1OzMyNTU7MDAzMiAwMDM1OzAwMzIgMDAzNTsKKzMyNTY7MzI1NjszMjU2OzAwMzIgMDAzNjswMDMyIDAwMzY7CiszMjU3OzMyNTc7MzI1NzswMDMyIDAwMzc7MDAzMiAwMDM3OworMzI1ODszMjU4OzMyNTg7MDAzMiAwMDM4OzAwMzIgMDAzODsKKzMyNTk7MzI1OTszMjU5OzAwMzIgMDAzOTswMDMyIDAwMzk7CiszMjVBOzMyNUE7MzI1QTswMDMzIDAwMzA7MDAzMyAwMDMwOworMzI1QjszMjVCOzMyNUI7MDAzMyAwMDMxOzAwMzMgMDAzMTsKKzMyNUM7MzI1QzszMjVDOzAwMzMgMDAzMjswMDMzIDAwMzI7CiszMjVEOzMyNUQ7MzI1RDswMDMzIDAwMzM7MDAzMyAwMDMzOworMzI1RTszMjVFOzMyNUU7MDAzMyAwMDM0OzAwMzMgMDAzNDsKKzMyNUY7MzI1RjszMjVGOzAwMzMgMDAzNTswMDMzIDAwMzU7CiszMjYwOzMyNjA7MzI2MDsxMTAwOzExMDA7CiszMjYxOzMyNjE7MzI2MTsxMTAyOzExMDI7CiszMjYyOzMyNjI7MzI2MjsxMTAzOzExMDM7CiszMjYzOzMyNjM7MzI2MzsxMTA1OzExMDU7CiszMjY0OzMyNjQ7MzI2NDsxMTA2OzExMDY7CiszMjY1OzMyNjU7MzI2NTsxMTA3OzExMDc7CiszMjY2OzMyNjY7MzI2NjsxMTA5OzExMDk7CiszMjY3OzMyNjc7MzI2NzsxMTBCOzExMEI7CiszMjY4OzMyNjg7MzI2ODsxMTBDOzExMEM7CiszMjY5OzMyNjk7MzI2OTsxMTBFOzExMEU7CiszMjZBOzMyNkE7MzI2QTsxMTBGOzExMEY7CiszMjZCOzMyNkI7MzI2QjsxMTEwOzExMTA7CiszMjZDOzMyNkM7MzI2QzsxMTExOzExMTE7CiszMjZEOzMyNkQ7MzI2RDsxMTEyOzExMTI7CiszMjZFOzMyNkU7MzI2RTtBQzAwOzExMDAgMTE2MTsKKzMyNkY7MzI2RjszMjZGO0IwOTg7MTEwMiAxMTYxOworMzI3MDszMjcwOzMyNzA7QjJFNDsxMTAzIDExNjE7CiszMjcxOzMyNzE7MzI3MTtCNzdDOzExMDUgMTE2MTsKKzMyNzI7MzI3MjszMjcyO0I5Qzg7MTEwNiAxMTYxOworMzI3MzszMjczOzMyNzM7QkMxNDsxMTA3IDExNjE7CiszMjc0OzMyNzQ7MzI3NDtDMEFDOzExMDkgMTE2MTsKKzMyNzU7MzI3NTszMjc1O0M1NDQ7MTEwQiAxMTYxOworMzI3NjszMjc2OzMyNzY7Qzc5MDsxMTBDIDExNjE7CiszMjc3OzMyNzc7MzI3NztDQzI4OzExMEUgMTE2MTsKKzMyNzg7MzI3ODszMjc4O0NFNzQ7MTEwRiAxMTYxOworMzI3OTszMjc5OzMyNzk7RDBDMDsxMTEwIDExNjE7CiszMjdBOzMyN0E7MzI3QTtEMzBDOzExMTEgMTE2MTsKKzMyN0I7MzI3QjszMjdCO0Q1NTg7MTExMiAxMTYxOworMzI4MDszMjgwOzMyODA7NEUwMDs0RTAwOworMzI4MTszMjgxOzMyODE7NEU4Qzs0RThDOworMzI4MjszMjgyOzMyODI7NEUwOTs0RTA5OworMzI4MzszMjgzOzMyODM7NTZEQjs1NkRCOworMzI4NDszMjg0OzMyODQ7NEU5NDs0RTk0OworMzI4NTszMjg1OzMyODU7NTE2RDs1MTZEOworMzI4NjszMjg2OzMyODY7NEUwMzs0RTAzOworMzI4NzszMjg3OzMyODc7NTE2Qjs1MTZCOworMzI4ODszMjg4OzMyODg7NEU1RDs0RTVEOworMzI4OTszMjg5OzMyODk7NTM0MTs1MzQxOworMzI4QTszMjhBOzMyOEE7NjcwODs2NzA4OworMzI4QjszMjhCOzMyOEI7NzA2Qjs3MDZCOworMzI4QzszMjhDOzMyOEM7NkMzNDs2QzM0OworMzI4RDszMjhEOzMyOEQ7NjcyODs2NzI4OworMzI4RTszMjhFOzMyOEU7OTFEMTs5MUQxOworMzI4RjszMjhGOzMyOEY7NTcxRjs1NzFGOworMzI5MDszMjkwOzMyOTA7NjVFNTs2NUU1OworMzI5MTszMjkxOzMyOTE7NjgyQTs2ODJBOworMzI5MjszMjkyOzMyOTI7NjcwOTs2NzA5OworMzI5MzszMjkzOzMyOTM7NzkzRTs3OTNFOworMzI5NDszMjk0OzMyOTQ7NTQwRDs1NDBEOworMzI5NTszMjk1OzMyOTU7NzI3OTs3Mjc5OworMzI5NjszMjk2OzMyOTY7OENBMTs4Q0ExOworMzI5NzszMjk3OzMyOTc7Nzk1RDs3OTVEOworMzI5ODszMjk4OzMyOTg7NTJCNDs1MkI0OworMzI5OTszMjk5OzMyOTk7NzlEODs3OUQ4OworMzI5QTszMjlBOzMyOUE7NzUzNzs3NTM3OworMzI5QjszMjlCOzMyOUI7NTk3Mzs1OTczOworMzI5QzszMjlDOzMyOUM7OTA2OTs5MDY5OworMzI5RDszMjlEOzMyOUQ7NTEyQTs1MTJBOworMzI5RTszMjlFOzMyOUU7NTM3MDs1MzcwOworMzI5RjszMjlGOzMyOUY7NkNFODs2Q0U4OworMzJBMDszMkEwOzMyQTA7OTgwNTs5ODA1OworMzJBMTszMkExOzMyQTE7NEYxMTs0RjExOworMzJBMjszMkEyOzMyQTI7NTE5OTs1MTk5OworMzJBMzszMkEzOzMyQTM7NkI2Mzs2QjYzOworMzJBNDszMkE0OzMyQTQ7NEUwQTs0RTBBOworMzJBNTszMkE1OzMyQTU7NEUyRDs0RTJEOworMzJBNjszMkE2OzMyQTY7NEUwQjs0RTBCOworMzJBNzszMkE3OzMyQTc7NURFNjs1REU2OworMzJBODszMkE4OzMyQTg7NTNGMzs1M0YzOworMzJBOTszMkE5OzMyQTk7NTMzQjs1MzNCOworMzJBQTszMkFBOzMyQUE7NUI5Nzs1Qjk3OworMzJBQjszMkFCOzMyQUI7NUI2Njs1QjY2OworMzJBQzszMkFDOzMyQUM7NzZFMzs3NkUzOworMzJBRDszMkFEOzMyQUQ7NEYwMTs0RjAxOworMzJBRTszMkFFOzMyQUU7OENDNzs4Q0M3OworMzJBRjszMkFGOzMyQUY7NTM1NDs1MzU0OworMzJCMDszMkIwOzMyQjA7NTkxQzs1OTFDOworMzJCMTszMkIxOzMyQjE7MDAzMyAwMDM2OzAwMzMgMDAzNjsKKzMyQjI7MzJCMjszMkIyOzAwMzMgMDAzNzswMDMzIDAwMzc7CiszMkIzOzMyQjM7MzJCMzswMDMzIDAwMzg7MDAzMyAwMDM4OworMzJCNDszMkI0OzMyQjQ7MDAzMyAwMDM5OzAwMzMgMDAzOTsKKzMyQjU7MzJCNTszMkI1OzAwMzQgMDAzMDswMDM0IDAwMzA7CiszMkI2OzMyQjY7MzJCNjswMDM0IDAwMzE7MDAzNCAwMDMxOworMzJCNzszMkI3OzMyQjc7MDAzNCAwMDMyOzAwMzQgMDAzMjsKKzMyQjg7MzJCODszMkI4OzAwMzQgMDAzMzswMDM0IDAwMzM7CiszMkI5OzMyQjk7MzJCOTswMDM0IDAwMzQ7MDAzNCAwMDM0OworMzJCQTszMkJBOzMyQkE7MDAzNCAwMDM1OzAwMzQgMDAzNTsKKzMyQkI7MzJCQjszMkJCOzAwMzQgMDAzNjswMDM0IDAwMzY7CiszMkJDOzMyQkM7MzJCQzswMDM0IDAwMzc7MDAzNCAwMDM3OworMzJCRDszMkJEOzMyQkQ7MDAzNCAwMDM4OzAwMzQgMDAzODsKKzMyQkU7MzJCRTszMkJFOzAwMzQgMDAzOTswMDM0IDAwMzk7CiszMkJGOzMyQkY7MzJCRjswMDM1IDAwMzA7MDAzNSAwMDMwOworMzJDMDszMkMwOzMyQzA7MDAzMSA2NzA4OzAwMzEgNjcwODsKKzMyQzE7MzJDMTszMkMxOzAwMzIgNjcwODswMDMyIDY3MDg7CiszMkMyOzMyQzI7MzJDMjswMDMzIDY3MDg7MDAzMyA2NzA4OworMzJDMzszMkMzOzMyQzM7MDAzNCA2NzA4OzAwMzQgNjcwODsKKzMyQzQ7MzJDNDszMkM0OzAwMzUgNjcwODswMDM1IDY3MDg7CiszMkM1OzMyQzU7MzJDNTswMDM2IDY3MDg7MDAzNiA2NzA4OworMzJDNjszMkM2OzMyQzY7MDAzNyA2NzA4OzAwMzcgNjcwODsKKzMyQzc7MzJDNzszMkM3OzAwMzggNjcwODswMDM4IDY3MDg7CiszMkM4OzMyQzg7MzJDODswMDM5IDY3MDg7MDAzOSA2NzA4OworMzJDOTszMkM5OzMyQzk7MDAzMSAwMDMwIDY3MDg7MDAzMSAwMDMwIDY3MDg7CiszMkNBOzMyQ0E7MzJDQTswMDMxIDAwMzEgNjcwODswMDMxIDAwMzEgNjcwODsKKzMyQ0I7MzJDQjszMkNCOzAwMzEgMDAzMiA2NzA4OzAwMzEgMDAzMiA2NzA4OworMzJEMDszMkQwOzMyRDA7MzBBMjszMEEyOworMzJEMTszMkQxOzMyRDE7MzBBNDszMEE0OworMzJEMjszMkQyOzMyRDI7MzBBNjszMEE2OworMzJEMzszMkQzOzMyRDM7MzBBODszMEE4OworMzJENDszMkQ0OzMyRDQ7MzBBQTszMEFBOworMzJENTszMkQ1OzMyRDU7MzBBQjszMEFCOworMzJENjszMkQ2OzMyRDY7MzBBRDszMEFEOworMzJENzszMkQ3OzMyRDc7MzBBRjszMEFGOworMzJEODszMkQ4OzMyRDg7MzBCMTszMEIxOworMzJEOTszMkQ5OzMyRDk7MzBCMzszMEIzOworMzJEQTszMkRBOzMyREE7MzBCNTszMEI1OworMzJEQjszMkRCOzMyREI7MzBCNzszMEI3OworMzJEQzszMkRDOzMyREM7MzBCOTszMEI5OworMzJERDszMkREOzMyREQ7MzBCQjszMEJCOworMzJERTszMkRFOzMyREU7MzBCRDszMEJEOworMzJERjszMkRGOzMyREY7MzBCRjszMEJGOworMzJFMDszMkUwOzMyRTA7MzBDMTszMEMxOworMzJFMTszMkUxOzMyRTE7MzBDNDszMEM0OworMzJFMjszMkUyOzMyRTI7MzBDNjszMEM2OworMzJFMzszMkUzOzMyRTM7MzBDODszMEM4OworMzJFNDszMkU0OzMyRTQ7MzBDQTszMENBOworMzJFNTszMkU1OzMyRTU7MzBDQjszMENCOworMzJFNjszMkU2OzMyRTY7MzBDQzszMENDOworMzJFNzszMkU3OzMyRTc7MzBDRDszMENEOworMzJFODszMkU4OzMyRTg7MzBDRTszMENFOworMzJFOTszMkU5OzMyRTk7MzBDRjszMENGOworMzJFQTszMkVBOzMyRUE7MzBEMjszMEQyOworMzJFQjszMkVCOzMyRUI7MzBENTszMEQ1OworMzJFQzszMkVDOzMyRUM7MzBEODszMEQ4OworMzJFRDszMkVEOzMyRUQ7MzBEQjszMERCOworMzJFRTszMkVFOzMyRUU7MzBERTszMERFOworMzJFRjszMkVGOzMyRUY7MzBERjszMERGOworMzJGMDszMkYwOzMyRjA7MzBFMDszMEUwOworMzJGMTszMkYxOzMyRjE7MzBFMTszMEUxOworMzJGMjszMkYyOzMyRjI7MzBFMjszMEUyOworMzJGMzszMkYzOzMyRjM7MzBFNDszMEU0OworMzJGNDszMkY0OzMyRjQ7MzBFNjszMEU2OworMzJGNTszMkY1OzMyRjU7MzBFODszMEU4OworMzJGNjszMkY2OzMyRjY7MzBFOTszMEU5OworMzJGNzszMkY3OzMyRjc7MzBFQTszMEVBOworMzJGODszMkY4OzMyRjg7MzBFQjszMEVCOworMzJGOTszMkY5OzMyRjk7MzBFQzszMEVDOworMzJGQTszMkZBOzMyRkE7MzBFRDszMEVEOworMzJGQjszMkZCOzMyRkI7MzBFRjszMEVGOworMzJGQzszMkZDOzMyRkM7MzBGMDszMEYwOworMzJGRDszMkZEOzMyRkQ7MzBGMTszMEYxOworMzJGRTszMkZFOzMyRkU7MzBGMjszMEYyOworMzMwMDszMzAwOzMzMDA7MzBBMiAzMEQxIDMwRkMgMzBDODszMEEyIDMwQ0YgMzA5QSAzMEZDIDMwQzg7CiszMzAxOzMzMDE7MzMwMTszMEEyIDMwRUIgMzBENSAzMEExOzMwQTIgMzBFQiAzMEQ1IDMwQTE7CiszMzAyOzMzMDI7MzMwMjszMEEyIDMwRjMgMzBEQSAzMEEyOzMwQTIgMzBGMyAzMEQ4IDMwOUEgMzBBMjsKKzMzMDM7MzMwMzszMzAzOzMwQTIgMzBGQyAzMEVCOzMwQTIgMzBGQyAzMEVCOworMzMwNDszMzA0OzMzMDQ7MzBBNCAzMENCIDMwRjMgMzBCMDszMEE0IDMwQ0IgMzBGMyAzMEFGIDMwOTk7CiszMzA1OzMzMDU7MzMwNTszMEE0IDMwRjMgMzBDMTszMEE0IDMwRjMgMzBDMTsKKzMzMDY7MzMwNjszMzA2OzMwQTYgMzBBOSAzMEYzOzMwQTYgMzBBOSAzMEYzOworMzMwNzszMzA3OzMzMDc7MzBBOCAzMEI5IDMwQUYgMzBGQyAzMEM5OzMwQTggMzBCOSAzMEFGIDMwRkMgMzBDOCAzMDk5OworMzMwODszMzA4OzMzMDg7MzBBOCAzMEZDIDMwQUIgMzBGQzszMEE4IDMwRkMgMzBBQiAzMEZDOworMzMwOTszMzA5OzMzMDk7MzBBQSAzMEYzIDMwQjk7MzBBQSAzMEYzIDMwQjk7CiszMzBBOzMzMEE7MzMwQTszMEFBIDMwRkMgMzBFMDszMEFBIDMwRkMgMzBFMDsKKzMzMEI7MzMwQjszMzBCOzMwQUIgMzBBNCAzMEVBOzMwQUIgMzBBNCAzMEVBOworMzMwQzszMzBDOzMzMEM7MzBBQiAzMEU5IDMwQzMgMzBDODszMEFCIDMwRTkgMzBDMyAzMEM4OworMzMwRDszMzBEOzMzMEQ7MzBBQiAzMEVEIDMwRUEgMzBGQzszMEFCIDMwRUQgMzBFQSAzMEZDOworMzMwRTszMzBFOzMzMEU7MzBBQyAzMEVEIDMwRjM7MzBBQiAzMDk5IDMwRUQgMzBGMzsKKzMzMEY7MzMwRjszMzBGOzMwQUMgMzBGMyAzMERFOzMwQUIgMzA5OSAzMEYzIDMwREU7CiszMzEwOzMzMTA7MzMxMDszMEFFIDMwQUM7MzBBRCAzMDk5IDMwQUIgMzA5OTsKKzMzMTE7MzMxMTszMzExOzMwQUUgMzBDQiAzMEZDOzMwQUQgMzA5OSAzMENCIDMwRkM7CiszMzEyOzMzMTI7MzMxMjszMEFEIDMwRTUgMzBFQSAzMEZDOzMwQUQgMzBFNSAzMEVBIDMwRkM7CiszMzEzOzMzMTM7MzMxMzszMEFFIDMwRUIgMzBDMCAzMEZDOzMwQUQgMzA5OSAzMEVCIDMwQkYgMzA5OSAzMEZDOworMzMxNDszMzE0OzMzMTQ7MzBBRCAzMEVEOzMwQUQgMzBFRDsKKzMzMTU7MzMxNTszMzE1OzMwQUQgMzBFRCAzMEIwIDMwRTkgMzBFMDszMEFEIDMwRUQgMzBBRiAzMDk5IDMwRTkgMzBFMDsKKzMzMTY7MzMxNjszMzE2OzMwQUQgMzBFRCAzMEUxIDMwRkMgMzBDOCAzMEVCOzMwQUQgMzBFRCAzMEUxIDMwRkMgMzBDOCAzMEVCOworMzMxNzszMzE3OzMzMTc7MzBBRCAzMEVEIDMwRUYgMzBDMyAzMEM4OzMwQUQgMzBFRCAzMEVGIDMwQzMgMzBDODsKKzMzMTg7MzMxODszMzE4OzMwQjAgMzBFOSAzMEUwOzMwQUYgMzA5OSAzMEU5IDMwRTA7CiszMzE5OzMzMTk7MzMxOTszMEIwIDMwRTkgMzBFMCAzMEM4IDMwRjM7MzBBRiAzMDk5IDMwRTkgMzBFMCAzMEM4IDMwRjM7CiszMzFBOzMzMUE7MzMxQTszMEFGIDMwRUIgMzBCQyAzMEE0IDMwRUQ7MzBBRiAzMEVCIDMwQkIgMzA5OSAzMEE0IDMwRUQ7CiszMzFCOzMzMUI7MzMxQjszMEFGIDMwRUQgMzBGQyAzMENEOzMwQUYgMzBFRCAzMEZDIDMwQ0Q7CiszMzFDOzMzMUM7MzMxQzszMEIxIDMwRkMgMzBCOTszMEIxIDMwRkMgMzBCOTsKKzMzMUQ7MzMxRDszMzFEOzMwQjMgMzBFQiAzMENBOzMwQjMgMzBFQiAzMENBOworMzMxRTszMzFFOzMzMUU7MzBCMyAzMEZDIDMwREQ7MzBCMyAzMEZDIDMwREIgMzA5QTsKKzMzMUY7MzMxRjszMzFGOzMwQjUgMzBBNCAzMEFGIDMwRUI7MzBCNSAzMEE0IDMwQUYgMzBFQjsKKzMzMjA7MzMyMDszMzIwOzMwQjUgMzBGMyAzMEMxIDMwRkMgMzBFMDszMEI1IDMwRjMgMzBDMSAzMEZDIDMwRTA7CiszMzIxOzMzMjE7MzMyMTszMEI3IDMwRUEgMzBGMyAzMEIwOzMwQjcgMzBFQSAzMEYzIDMwQUYgMzA5OTsKKzMzMjI7MzMyMjszMzIyOzMwQkIgMzBGMyAzMEMxOzMwQkIgMzBGMyAzMEMxOworMzMyMzszMzIzOzMzMjM7MzBCQiAzMEYzIDMwQzg7MzBCQiAzMEYzIDMwQzg7CiszMzI0OzMzMjQ7MzMyNDszMEMwIDMwRkMgMzBCOTszMEJGIDMwOTkgMzBGQyAzMEI5OworMzMyNTszMzI1OzMzMjU7MzBDNyAzMEI3OzMwQzYgMzA5OSAzMEI3OworMzMyNjszMzI2OzMzMjY7MzBDOSAzMEVCOzMwQzggMzA5OSAzMEVCOworMzMyNzszMzI3OzMzMjc7MzBDOCAzMEYzOzMwQzggMzBGMzsKKzMzMjg7MzMyODszMzI4OzMwQ0EgMzBDRTszMENBIDMwQ0U7CiszMzI5OzMzMjk7MzMyOTszMENFIDMwQzMgMzBDODszMENFIDMwQzMgMzBDODsKKzMzMkE7MzMyQTszMzJBOzMwQ0YgMzBBNCAzMEM0OzMwQ0YgMzBBNCAzMEM0OworMzMyQjszMzJCOzMzMkI7MzBEMSAzMEZDIDMwQkIgMzBGMyAzMEM4OzMwQ0YgMzA5QSAzMEZDIDMwQkIgMzBGMyAzMEM4OworMzMyQzszMzJDOzMzMkM7MzBEMSAzMEZDIDMwQzQ7MzBDRiAzMDlBIDMwRkMgMzBDNDsKKzMzMkQ7MzMyRDszMzJEOzMwRDAgMzBGQyAzMEVDIDMwRUI7MzBDRiAzMDk5IDMwRkMgMzBFQyAzMEVCOworMzMyRTszMzJFOzMzMkU7MzBENCAzMEEyIDMwQjkgMzBDOCAzMEVCOzMwRDIgMzA5QSAzMEEyIDMwQjkgMzBDOCAzMEVCOworMzMyRjszMzJGOzMzMkY7MzBENCAzMEFGIDMwRUI7MzBEMiAzMDlBIDMwQUYgMzBFQjsKKzMzMzA7MzMzMDszMzMwOzMwRDQgMzBCMzszMEQyIDMwOUEgMzBCMzsKKzMzMzE7MzMzMTszMzMxOzMwRDMgMzBFQjszMEQyIDMwOTkgMzBFQjsKKzMzMzI7MzMzMjszMzMyOzMwRDUgMzBBMSAzMEU5IDMwQzMgMzBDOTszMEQ1IDMwQTEgMzBFOSAzMEMzIDMwQzggMzA5OTsKKzMzMzM7MzMzMzszMzMzOzMwRDUgMzBBMyAzMEZDIDMwQzg7MzBENSAzMEEzIDMwRkMgMzBDODsKKzMzMzQ7MzMzNDszMzM0OzMwRDYgMzBDMyAzMEI3IDMwQTcgMzBFQjszMEQ1IDMwOTkgMzBDMyAzMEI3IDMwQTcgMzBFQjsKKzMzMzU7MzMzNTszMzM1OzMwRDUgMzBFOSAzMEYzOzMwRDUgMzBFOSAzMEYzOworMzMzNjszMzM2OzMzMzY7MzBEOCAzMEFGIDMwQkYgMzBGQyAzMEVCOzMwRDggMzBBRiAzMEJGIDMwRkMgMzBFQjsKKzMzMzc7MzMzNzszMzM3OzMwREEgMzBCRDszMEQ4IDMwOUEgMzBCRDsKKzMzMzg7MzMzODszMzM4OzMwREEgMzBDQiAzMEQyOzMwRDggMzA5QSAzMENCIDMwRDI7CiszMzM5OzMzMzk7MzMzOTszMEQ4IDMwRUIgMzBDNDszMEQ4IDMwRUIgMzBDNDsKKzMzM0E7MzMzQTszMzNBOzMwREEgMzBGMyAzMEI5OzMwRDggMzA5QSAzMEYzIDMwQjk7CiszMzNCOzMzM0I7MzMzQjszMERBIDMwRkMgMzBCODszMEQ4IDMwOUEgMzBGQyAzMEI3IDMwOTk7CiszMzNDOzMzM0M7MzMzQzszMEQ5IDMwRkMgMzBCRjszMEQ4IDMwOTkgMzBGQyAzMEJGOworMzMzRDszMzNEOzMzM0Q7MzBERCAzMEE0IDMwRjMgMzBDODszMERCIDMwOUEgMzBBNCAzMEYzIDMwQzg7CiszMzNFOzMzM0U7MzMzRTszMERDIDMwRUIgMzBDODszMERCIDMwOTkgMzBFQiAzMEM4OworMzMzRjszMzNGOzMzM0Y7MzBEQiAzMEYzOzMwREIgMzBGMzsKKzMzNDA7MzM0MDszMzQwOzMwREQgMzBGMyAzMEM5OzMwREIgMzA5QSAzMEYzIDMwQzggMzA5OTsKKzMzNDE7MzM0MTszMzQxOzMwREIgMzBGQyAzMEVCOzMwREIgMzBGQyAzMEVCOworMzM0MjszMzQyOzMzNDI7MzBEQiAzMEZDIDMwRjM7MzBEQiAzMEZDIDMwRjM7CiszMzQzOzMzNDM7MzM0MzszMERFIDMwQTQgMzBBRiAzMEVEOzMwREUgMzBBNCAzMEFGIDMwRUQ7CiszMzQ0OzMzNDQ7MzM0NDszMERFIDMwQTQgMzBFQjszMERFIDMwQTQgMzBFQjsKKzMzNDU7MzM0NTszMzQ1OzMwREUgMzBDMyAzMENGOzMwREUgMzBDMyAzMENGOworMzM0NjszMzQ2OzMzNDY7MzBERSAzMEVCIDMwQUY7MzBERSAzMEVCIDMwQUY7CiszMzQ3OzMzNDc7MzM0NzszMERFIDMwRjMgMzBCNyAzMEU3IDMwRjM7MzBERSAzMEYzIDMwQjcgMzBFNyAzMEYzOworMzM0ODszMzQ4OzMzNDg7MzBERiAzMEFGIDMwRUQgMzBGMzszMERGIDMwQUYgMzBFRCAzMEYzOworMzM0OTszMzQ5OzMzNDk7MzBERiAzMEVBOzMwREYgMzBFQTsKKzMzNEE7MzM0QTszMzRBOzMwREYgMzBFQSAzMEQwIDMwRkMgMzBFQjszMERGIDMwRUEgMzBDRiAzMDk5IDMwRkMgMzBFQjsKKzMzNEI7MzM0QjszMzRCOzMwRTEgMzBBQzszMEUxIDMwQUIgMzA5OTsKKzMzNEM7MzM0QzszMzRDOzMwRTEgMzBBQyAzMEM4IDMwRjM7MzBFMSAzMEFCIDMwOTkgMzBDOCAzMEYzOworMzM0RDszMzREOzMzNEQ7MzBFMSAzMEZDIDMwQzggMzBFQjszMEUxIDMwRkMgMzBDOCAzMEVCOworMzM0RTszMzRFOzMzNEU7MzBFNCAzMEZDIDMwQzk7MzBFNCAzMEZDIDMwQzggMzA5OTsKKzMzNEY7MzM0RjszMzRGOzMwRTQgMzBGQyAzMEVCOzMwRTQgMzBGQyAzMEVCOworMzM1MDszMzUwOzMzNTA7MzBFNiAzMEEyIDMwRjM7MzBFNiAzMEEyIDMwRjM7CiszMzUxOzMzNTE7MzM1MTszMEVBIDMwQzMgMzBDOCAzMEVCOzMwRUEgMzBDMyAzMEM4IDMwRUI7CiszMzUyOzMzNTI7MzM1MjszMEVBIDMwRTk7MzBFQSAzMEU5OworMzM1MzszMzUzOzMzNTM7MzBFQiAzMEQ0IDMwRkM7MzBFQiAzMEQyIDMwOUEgMzBGQzsKKzMzNTQ7MzM1NDszMzU0OzMwRUIgMzBGQyAzMEQ2IDMwRUI7MzBFQiAzMEZDIDMwRDUgMzA5OSAzMEVCOworMzM1NTszMzU1OzMzNTU7MzBFQyAzMEUwOzMwRUMgMzBFMDsKKzMzNTY7MzM1NjszMzU2OzMwRUMgMzBGMyAzMEM4IDMwQjIgMzBGMzszMEVDIDMwRjMgMzBDOCAzMEIxIDMwOTkgMzBGMzsKKzMzNTc7MzM1NzszMzU3OzMwRUYgMzBDMyAzMEM4OzMwRUYgMzBDMyAzMEM4OworMzM1ODszMzU4OzMzNTg7MDAzMCA3MEI5OzAwMzAgNzBCOTsKKzMzNTk7MzM1OTszMzU5OzAwMzEgNzBCOTswMDMxIDcwQjk7CiszMzVBOzMzNUE7MzM1QTswMDMyIDcwQjk7MDAzMiA3MEI5OworMzM1QjszMzVCOzMzNUI7MDAzMyA3MEI5OzAwMzMgNzBCOTsKKzMzNUM7MzM1QzszMzVDOzAwMzQgNzBCOTswMDM0IDcwQjk7CiszMzVEOzMzNUQ7MzM1RDswMDM1IDcwQjk7MDAzNSA3MEI5OworMzM1RTszMzVFOzMzNUU7MDAzNiA3MEI5OzAwMzYgNzBCOTsKKzMzNUY7MzM1RjszMzVGOzAwMzcgNzBCOTswMDM3IDcwQjk7CiszMzYwOzMzNjA7MzM2MDswMDM4IDcwQjk7MDAzOCA3MEI5OworMzM2MTszMzYxOzMzNjE7MDAzOSA3MEI5OzAwMzkgNzBCOTsKKzMzNjI7MzM2MjszMzYyOzAwMzEgMDAzMCA3MEI5OzAwMzEgMDAzMCA3MEI5OworMzM2MzszMzYzOzMzNjM7MDAzMSAwMDMxIDcwQjk7MDAzMSAwMDMxIDcwQjk7CiszMzY0OzMzNjQ7MzM2NDswMDMxIDAwMzIgNzBCOTswMDMxIDAwMzIgNzBCOTsKKzMzNjU7MzM2NTszMzY1OzAwMzEgMDAzMyA3MEI5OzAwMzEgMDAzMyA3MEI5OworMzM2NjszMzY2OzMzNjY7MDAzMSAwMDM0IDcwQjk7MDAzMSAwMDM0IDcwQjk7CiszMzY3OzMzNjc7MzM2NzswMDMxIDAwMzUgNzBCOTswMDMxIDAwMzUgNzBCOTsKKzMzNjg7MzM2ODszMzY4OzAwMzEgMDAzNiA3MEI5OzAwMzEgMDAzNiA3MEI5OworMzM2OTszMzY5OzMzNjk7MDAzMSAwMDM3IDcwQjk7MDAzMSAwMDM3IDcwQjk7CiszMzZBOzMzNkE7MzM2QTswMDMxIDAwMzggNzBCOTswMDMxIDAwMzggNzBCOTsKKzMzNkI7MzM2QjszMzZCOzAwMzEgMDAzOSA3MEI5OzAwMzEgMDAzOSA3MEI5OworMzM2QzszMzZDOzMzNkM7MDAzMiAwMDMwIDcwQjk7MDAzMiAwMDMwIDcwQjk7CiszMzZEOzMzNkQ7MzM2RDswMDMyIDAwMzEgNzBCOTswMDMyIDAwMzEgNzBCOTsKKzMzNkU7MzM2RTszMzZFOzAwMzIgMDAzMiA3MEI5OzAwMzIgMDAzMiA3MEI5OworMzM2RjszMzZGOzMzNkY7MDAzMiAwMDMzIDcwQjk7MDAzMiAwMDMzIDcwQjk7CiszMzcwOzMzNzA7MzM3MDswMDMyIDAwMzQgNzBCOTswMDMyIDAwMzQgNzBCOTsKKzMzNzE7MzM3MTszMzcxOzAwNjggMDA1MCAwMDYxOzAwNjggMDA1MCAwMDYxOworMzM3MjszMzcyOzMzNzI7MDA2NCAwMDYxOzAwNjQgMDA2MTsKKzMzNzM7MzM3MzszMzczOzAwNDEgMDA1NTswMDQxIDAwNTU7CiszMzc0OzMzNzQ7MzM3NDswMDYyIDAwNjEgMDA3MjswMDYyIDAwNjEgMDA3MjsKKzMzNzU7MzM3NTszMzc1OzAwNkYgMDA1NjswMDZGIDAwNTY7CiszMzc2OzMzNzY7MzM3NjswMDcwIDAwNjM7MDA3MCAwMDYzOworMzM3QjszMzdCOzMzN0I7NUU3MyA2MjEwOzVFNzMgNjIxMDsKKzMzN0M7MzM3QzszMzdDOzY2MkQgNTQ4Qzs2NjJEIDU0OEM7CiszMzdEOzMzN0Q7MzM3RDs1OTI3IDZCNjM7NTkyNyA2QjYzOworMzM3RTszMzdFOzMzN0U7NjYwRSA2Q0JCOzY2MEUgNkNCQjsKKzMzN0Y7MzM3RjszMzdGOzY4MkEgNUYwRiA0RjFBIDc5M0U7NjgyQSA1RjBGIDRGMUEgNzkzRTsKKzMzODA7MzM4MDszMzgwOzAwNzAgMDA0MTswMDcwIDAwNDE7CiszMzgxOzMzODE7MzM4MTswMDZFIDAwNDE7MDA2RSAwMDQxOworMzM4MjszMzgyOzMzODI7MDNCQyAwMDQxOzAzQkMgMDA0MTsKKzMzODM7MzM4MzszMzgzOzAwNkQgMDA0MTswMDZEIDAwNDE7CiszMzg0OzMzODQ7MzM4NDswMDZCIDAwNDE7MDA2QiAwMDQxOworMzM4NTszMzg1OzMzODU7MDA0QiAwMDQyOzAwNEIgMDA0MjsKKzMzODY7MzM4NjszMzg2OzAwNEQgMDA0MjswMDREIDAwNDI7CiszMzg3OzMzODc7MzM4NzswMDQ3IDAwNDI7MDA0NyAwMDQyOworMzM4ODszMzg4OzMzODg7MDA2MyAwMDYxIDAwNkM7MDA2MyAwMDYxIDAwNkM7CiszMzg5OzMzODk7MzM4OTswMDZCIDAwNjMgMDA2MSAwMDZDOzAwNkIgMDA2MyAwMDYxIDAwNkM7CiszMzhBOzMzOEE7MzM4QTswMDcwIDAwNDY7MDA3MCAwMDQ2OworMzM4QjszMzhCOzMzOEI7MDA2RSAwMDQ2OzAwNkUgMDA0NjsKKzMzOEM7MzM4QzszMzhDOzAzQkMgMDA0NjswM0JDIDAwNDY7CiszMzhEOzMzOEQ7MzM4RDswM0JDIDAwNjc7MDNCQyAwMDY3OworMzM4RTszMzhFOzMzOEU7MDA2RCAwMDY3OzAwNkQgMDA2NzsKKzMzOEY7MzM4RjszMzhGOzAwNkIgMDA2NzswMDZCIDAwNjc7CiszMzkwOzMzOTA7MzM5MDswMDQ4IDAwN0E7MDA0OCAwMDdBOworMzM5MTszMzkxOzMzOTE7MDA2QiAwMDQ4IDAwN0E7MDA2QiAwMDQ4IDAwN0E7CiszMzkyOzMzOTI7MzM5MjswMDREIDAwNDggMDA3QTswMDREIDAwNDggMDA3QTsKKzMzOTM7MzM5MzszMzkzOzAwNDcgMDA0OCAwMDdBOzAwNDcgMDA0OCAwMDdBOworMzM5NDszMzk0OzMzOTQ7MDA1NCAwMDQ4IDAwN0E7MDA1NCAwMDQ4IDAwN0E7CiszMzk1OzMzOTU7MzM5NTswM0JDIDAwNkM7MDNCQyAwMDZDOworMzM5NjszMzk2OzMzOTY7MDA2RCAwMDZDOzAwNkQgMDA2QzsKKzMzOTc7MzM5NzszMzk3OzAwNjQgMDA2QzswMDY0IDAwNkM7CiszMzk4OzMzOTg7MzM5ODswMDZCIDAwNkM7MDA2QiAwMDZDOworMzM5OTszMzk5OzMzOTk7MDA2NiAwMDZEOzAwNjYgMDA2RDsKKzMzOUE7MzM5QTszMzlBOzAwNkUgMDA2RDswMDZFIDAwNkQ7CiszMzlCOzMzOUI7MzM5QjswM0JDIDAwNkQ7MDNCQyAwMDZEOworMzM5QzszMzlDOzMzOUM7MDA2RCAwMDZEOzAwNkQgMDA2RDsKKzMzOUQ7MzM5RDszMzlEOzAwNjMgMDA2RDswMDYzIDAwNkQ7CiszMzlFOzMzOUU7MzM5RTswMDZCIDAwNkQ7MDA2QiAwMDZEOworMzM5RjszMzlGOzMzOUY7MDA2RCAwMDZEIDAwMzI7MDA2RCAwMDZEIDAwMzI7CiszM0EwOzMzQTA7MzNBMDswMDYzIDAwNkQgMDAzMjswMDYzIDAwNkQgMDAzMjsKKzMzQTE7MzNBMTszM0ExOzAwNkQgMDAzMjswMDZEIDAwMzI7CiszM0EyOzMzQTI7MzNBMjswMDZCIDAwNkQgMDAzMjswMDZCIDAwNkQgMDAzMjsKKzMzQTM7MzNBMzszM0EzOzAwNkQgMDA2RCAwMDMzOzAwNkQgMDA2RCAwMDMzOworMzNBNDszM0E0OzMzQTQ7MDA2MyAwMDZEIDAwMzM7MDA2MyAwMDZEIDAwMzM7CiszM0E1OzMzQTU7MzNBNTswMDZEIDAwMzM7MDA2RCAwMDMzOworMzNBNjszM0E2OzMzQTY7MDA2QiAwMDZEIDAwMzM7MDA2QiAwMDZEIDAwMzM7CiszM0E3OzMzQTc7MzNBNzswMDZEIDIyMTUgMDA3MzswMDZEIDIyMTUgMDA3MzsKKzMzQTg7MzNBODszM0E4OzAwNkQgMjIxNSAwMDczIDAwMzI7MDA2RCAyMjE1IDAwNzMgMDAzMjsKKzMzQTk7MzNBOTszM0E5OzAwNTAgMDA2MTswMDUwIDAwNjE7CiszM0FBOzMzQUE7MzNBQTswMDZCIDAwNTAgMDA2MTswMDZCIDAwNTAgMDA2MTsKKzMzQUI7MzNBQjszM0FCOzAwNEQgMDA1MCAwMDYxOzAwNEQgMDA1MCAwMDYxOworMzNBQzszM0FDOzMzQUM7MDA0NyAwMDUwIDAwNjE7MDA0NyAwMDUwIDAwNjE7CiszM0FEOzMzQUQ7MzNBRDswMDcyIDAwNjEgMDA2NDswMDcyIDAwNjEgMDA2NDsKKzMzQUU7MzNBRTszM0FFOzAwNzIgMDA2MSAwMDY0IDIyMTUgMDA3MzswMDcyIDAwNjEgMDA2NCAyMjE1IDAwNzM7CiszM0FGOzMzQUY7MzNBRjswMDcyIDAwNjEgMDA2NCAyMjE1IDAwNzMgMDAzMjswMDcyIDAwNjEgMDA2NCAyMjE1IDAwNzMgMDAzMjsKKzMzQjA7MzNCMDszM0IwOzAwNzAgMDA3MzswMDcwIDAwNzM7CiszM0IxOzMzQjE7MzNCMTswMDZFIDAwNzM7MDA2RSAwMDczOworMzNCMjszM0IyOzMzQjI7MDNCQyAwMDczOzAzQkMgMDA3MzsKKzMzQjM7MzNCMzszM0IzOzAwNkQgMDA3MzswMDZEIDAwNzM7CiszM0I0OzMzQjQ7MzNCNDswMDcwIDAwNTY7MDA3MCAwMDU2OworMzNCNTszM0I1OzMzQjU7MDA2RSAwMDU2OzAwNkUgMDA1NjsKKzMzQjY7MzNCNjszM0I2OzAzQkMgMDA1NjswM0JDIDAwNTY7CiszM0I3OzMzQjc7MzNCNzswMDZEIDAwNTY7MDA2RCAwMDU2OworMzNCODszM0I4OzMzQjg7MDA2QiAwMDU2OzAwNkIgMDA1NjsKKzMzQjk7MzNCOTszM0I5OzAwNEQgMDA1NjswMDREIDAwNTY7CiszM0JBOzMzQkE7MzNCQTswMDcwIDAwNTc7MDA3MCAwMDU3OworMzNCQjszM0JCOzMzQkI7MDA2RSAwMDU3OzAwNkUgMDA1NzsKKzMzQkM7MzNCQzszM0JDOzAzQkMgMDA1NzswM0JDIDAwNTc7CiszM0JEOzMzQkQ7MzNCRDswMDZEIDAwNTc7MDA2RCAwMDU3OworMzNCRTszM0JFOzMzQkU7MDA2QiAwMDU3OzAwNkIgMDA1NzsKKzMzQkY7MzNCRjszM0JGOzAwNEQgMDA1NzswMDREIDAwNTc7CiszM0MwOzMzQzA7MzNDMDswMDZCIDAzQTk7MDA2QiAwM0E5OworMzNDMTszM0MxOzMzQzE7MDA0RCAwM0E5OzAwNEQgMDNBOTsKKzMzQzI7MzNDMjszM0MyOzAwNjEgMDAyRSAwMDZEIDAwMkU7MDA2MSAwMDJFIDAwNkQgMDAyRTsKKzMzQzM7MzNDMzszM0MzOzAwNDIgMDA3MTswMDQyIDAwNzE7CiszM0M0OzMzQzQ7MzNDNDswMDYzIDAwNjM7MDA2MyAwMDYzOworMzNDNTszM0M1OzMzQzU7MDA2MyAwMDY0OzAwNjMgMDA2NDsKKzMzQzY7MzNDNjszM0M2OzAwNDMgMjIxNSAwMDZCIDAwNjc7MDA0MyAyMjE1IDAwNkIgMDA2NzsKKzMzQzc7MzNDNzszM0M3OzAwNDMgMDA2RiAwMDJFOzAwNDMgMDA2RiAwMDJFOworMzNDODszM0M4OzMzQzg7MDA2NCAwMDQyOzAwNjQgMDA0MjsKKzMzQzk7MzNDOTszM0M5OzAwNDcgMDA3OTswMDQ3IDAwNzk7CiszM0NBOzMzQ0E7MzNDQTswMDY4IDAwNjE7MDA2OCAwMDYxOworMzNDQjszM0NCOzMzQ0I7MDA0OCAwMDUwOzAwNDggMDA1MDsKKzMzQ0M7MzNDQzszM0NDOzAwNjkgMDA2RTswMDY5IDAwNkU7CiszM0NEOzMzQ0Q7MzNDRDswMDRCIDAwNEI7MDA0QiAwMDRCOworMzNDRTszM0NFOzMzQ0U7MDA0QiAwMDREOzAwNEIgMDA0RDsKKzMzQ0Y7MzNDRjszM0NGOzAwNkIgMDA3NDswMDZCIDAwNzQ7CiszM0QwOzMzRDA7MzNEMDswMDZDIDAwNkQ7MDA2QyAwMDZEOworMzNEMTszM0QxOzMzRDE7MDA2QyAwMDZFOzAwNkMgMDA2RTsKKzMzRDI7MzNEMjszM0QyOzAwNkMgMDA2RiAwMDY3OzAwNkMgMDA2RiAwMDY3OworMzNEMzszM0QzOzMzRDM7MDA2QyAwMDc4OzAwNkMgMDA3ODsKKzMzRDQ7MzNENDszM0Q0OzAwNkQgMDA2MjswMDZEIDAwNjI7CiszM0Q1OzMzRDU7MzNENTswMDZEIDAwNjkgMDA2QzswMDZEIDAwNjkgMDA2QzsKKzMzRDY7MzNENjszM0Q2OzAwNkQgMDA2RiAwMDZDOzAwNkQgMDA2RiAwMDZDOworMzNENzszM0Q3OzMzRDc7MDA1MCAwMDQ4OzAwNTAgMDA0ODsKKzMzRDg7MzNEODszM0Q4OzAwNzAgMDAyRSAwMDZEIDAwMkU7MDA3MCAwMDJFIDAwNkQgMDAyRTsKKzMzRDk7MzNEOTszM0Q5OzAwNTAgMDA1MCAwMDREOzAwNTAgMDA1MCAwMDREOworMzNEQTszM0RBOzMzREE7MDA1MCAwMDUyOzAwNTAgMDA1MjsKKzMzREI7MzNEQjszM0RCOzAwNzMgMDA3MjswMDczIDAwNzI7CiszM0RDOzMzREM7MzNEQzswMDUzIDAwNzY7MDA1MyAwMDc2OworMzNERDszM0REOzMzREQ7MDA1NyAwMDYyOzAwNTcgMDA2MjsKKzMzRTA7MzNFMDszM0UwOzAwMzEgNjVFNTswMDMxIDY1RTU7CiszM0UxOzMzRTE7MzNFMTswMDMyIDY1RTU7MDAzMiA2NUU1OworMzNFMjszM0UyOzMzRTI7MDAzMyA2NUU1OzAwMzMgNjVFNTsKKzMzRTM7MzNFMzszM0UzOzAwMzQgNjVFNTswMDM0IDY1RTU7CiszM0U0OzMzRTQ7MzNFNDswMDM1IDY1RTU7MDAzNSA2NUU1OworMzNFNTszM0U1OzMzRTU7MDAzNiA2NUU1OzAwMzYgNjVFNTsKKzMzRTY7MzNFNjszM0U2OzAwMzcgNjVFNTswMDM3IDY1RTU7CiszM0U3OzMzRTc7MzNFNzswMDM4IDY1RTU7MDAzOCA2NUU1OworMzNFODszM0U4OzMzRTg7MDAzOSA2NUU1OzAwMzkgNjVFNTsKKzMzRTk7MzNFOTszM0U5OzAwMzEgMDAzMCA2NUU1OzAwMzEgMDAzMCA2NUU1OworMzNFQTszM0VBOzMzRUE7MDAzMSAwMDMxIDY1RTU7MDAzMSAwMDMxIDY1RTU7CiszM0VCOzMzRUI7MzNFQjswMDMxIDAwMzIgNjVFNTswMDMxIDAwMzIgNjVFNTsKKzMzRUM7MzNFQzszM0VDOzAwMzEgMDAzMyA2NUU1OzAwMzEgMDAzMyA2NUU1OworMzNFRDszM0VEOzMzRUQ7MDAzMSAwMDM0IDY1RTU7MDAzMSAwMDM0IDY1RTU7CiszM0VFOzMzRUU7MzNFRTswMDMxIDAwMzUgNjVFNTswMDMxIDAwMzUgNjVFNTsKKzMzRUY7MzNFRjszM0VGOzAwMzEgMDAzNiA2NUU1OzAwMzEgMDAzNiA2NUU1OworMzNGMDszM0YwOzMzRjA7MDAzMSAwMDM3IDY1RTU7MDAzMSAwMDM3IDY1RTU7CiszM0YxOzMzRjE7MzNGMTswMDMxIDAwMzggNjVFNTswMDMxIDAwMzggNjVFNTsKKzMzRjI7MzNGMjszM0YyOzAwMzEgMDAzOSA2NUU1OzAwMzEgMDAzOSA2NUU1OworMzNGMzszM0YzOzMzRjM7MDAzMiAwMDMwIDY1RTU7MDAzMiAwMDMwIDY1RTU7CiszM0Y0OzMzRjQ7MzNGNDswMDMyIDAwMzEgNjVFNTswMDMyIDAwMzEgNjVFNTsKKzMzRjU7MzNGNTszM0Y1OzAwMzIgMDAzMiA2NUU1OzAwMzIgMDAzMiA2NUU1OworMzNGNjszM0Y2OzMzRjY7MDAzMiAwMDMzIDY1RTU7MDAzMiAwMDMzIDY1RTU7CiszM0Y3OzMzRjc7MzNGNzswMDMyIDAwMzQgNjVFNTswMDMyIDAwMzQgNjVFNTsKKzMzRjg7MzNGODszM0Y4OzAwMzIgMDAzNSA2NUU1OzAwMzIgMDAzNSA2NUU1OworMzNGOTszM0Y5OzMzRjk7MDAzMiAwMDM2IDY1RTU7MDAzMiAwMDM2IDY1RTU7CiszM0ZBOzMzRkE7MzNGQTswMDMyIDAwMzcgNjVFNTswMDMyIDAwMzcgNjVFNTsKKzMzRkI7MzNGQjszM0ZCOzAwMzIgMDAzOCA2NUU1OzAwMzIgMDAzOCA2NUU1OworMzNGQzszM0ZDOzMzRkM7MDAzMiAwMDM5IDY1RTU7MDAzMiAwMDM5IDY1RTU7CiszM0ZEOzMzRkQ7MzNGRDswMDMzIDAwMzAgNjVFNTswMDMzIDAwMzAgNjVFNTsKKzMzRkU7MzNGRTszM0ZFOzAwMzMgMDAzMSA2NUU1OzAwMzMgMDAzMSA2NUU1OworQUMwMDtBQzAwOzExMDAgMTE2MTtBQzAwOzExMDAgMTE2MTsKK0FDMDE7QUMwMTsxMTAwIDExNjEgMTFBODtBQzAxOzExMDAgMTE2MSAxMUE4OworQUMwMjtBQzAyOzExMDAgMTE2MSAxMUE5O0FDMDI7MTEwMCAxMTYxIDExQTk7CitBQzAzO0FDMDM7MTEwMCAxMTYxIDExQUE7QUMwMzsxMTAwIDExNjEgMTFBQTsKK0FDMDQ7QUMwNDsxMTAwIDExNjEgMTFBQjtBQzA0OzExMDAgMTE2MSAxMUFCOworQUMwNTtBQzA1OzExMDAgMTE2MSAxMUFDO0FDMDU7MTEwMCAxMTYxIDExQUM7CitBQzA2O0FDMDY7MTEwMCAxMTYxIDExQUQ7QUMwNjsxMTAwIDExNjEgMTFBRDsKK0FDMDc7QUMwNzsxMTAwIDExNjEgMTFBRTtBQzA3OzExMDAgMTE2MSAxMUFFOworQUMwODtBQzA4OzExMDAgMTE2MSAxMUFGO0FDMDg7MTEwMCAxMTYxIDExQUY7CitBQzA5O0FDMDk7MTEwMCAxMTYxIDExQjA7QUMwOTsxMTAwIDExNjEgMTFCMDsKK0FDMEE7QUMwQTsxMTAwIDExNjEgMTFCMTtBQzBBOzExMDAgMTE2MSAxMUIxOworQUMwQjtBQzBCOzExMDAgMTE2MSAxMUIyO0FDMEI7MTEwMCAxMTYxIDExQjI7CitBQzBDO0FDMEM7MTEwMCAxMTYxIDExQjM7QUMwQzsxMTAwIDExNjEgMTFCMzsKK0FDMEQ7QUMwRDsxMTAwIDExNjEgMTFCNDtBQzBEOzExMDAgMTE2MSAxMUI0OworQUMwRTtBQzBFOzExMDAgMTE2MSAxMUI1O0FDMEU7MTEwMCAxMTYxIDExQjU7CitBQzBGO0FDMEY7MTEwMCAxMTYxIDExQjY7QUMwRjsxMTAwIDExNjEgMTFCNjsKK0FDMTA7QUMxMDsxMTAwIDExNjEgMTFCNztBQzEwOzExMDAgMTE2MSAxMUI3OworQUMxMTtBQzExOzExMDAgMTE2MSAxMUI4O0FDMTE7MTEwMCAxMTYxIDExQjg7CitBQzEyO0FDMTI7MTEwMCAxMTYxIDExQjk7QUMxMjsxMTAwIDExNjEgMTFCOTsKK0FDMTM7QUMxMzsxMTAwIDExNjEgMTFCQTtBQzEzOzExMDAgMTE2MSAxMUJBOworQUMxNDtBQzE0OzExMDAgMTE2MSAxMUJCO0FDMTQ7MTEwMCAxMTYxIDExQkI7CitBQzE1O0FDMTU7MTEwMCAxMTYxIDExQkM7QUMxNTsxMTAwIDExNjEgMTFCQzsKK0FDMTY7QUMxNjsxMTAwIDExNjEgMTFCRDtBQzE2OzExMDAgMTE2MSAxMUJEOworQUMxNztBQzE3OzExMDAgMTE2MSAxMUJFO0FDMTc7MTEwMCAxMTYxIDExQkU7CitBQzE4O0FDMTg7MTEwMCAxMTYxIDExQkY7QUMxODsxMTAwIDExNjEgMTFCRjsKK0FDMTk7QUMxOTsxMTAwIDExNjEgMTFDMDtBQzE5OzExMDAgMTE2MSAxMUMwOworQUMxQTtBQzFBOzExMDAgMTE2MSAxMUMxO0FDMUE7MTEwMCAxMTYxIDExQzE7CitBQzFCO0FDMUI7MTEwMCAxMTYxIDExQzI7QUMxQjsxMTAwIDExNjEgMTFDMjsKK0FDMUM7QUMxQzsxMTAwIDExNjI7QUMxQzsxMTAwIDExNjI7CitBQzFEO0FDMUQ7MTEwMCAxMTYyIDExQTg7QUMxRDsxMTAwIDExNjIgMTFBODsKK0FDMUU7QUMxRTsxMTAwIDExNjIgMTFBOTtBQzFFOzExMDAgMTE2MiAxMUE5OworQUMxRjtBQzFGOzExMDAgMTE2MiAxMUFBO0FDMUY7MTEwMCAxMTYyIDExQUE7CitBQzIwO0FDMjA7MTEwMCAxMTYyIDExQUI7QUMyMDsxMTAwIDExNjIgMTFBQjsKK0FDMjE7QUMyMTsxMTAwIDExNjIgMTFBQztBQzIxOzExMDAgMTE2MiAxMUFDOworQUMyMjtBQzIyOzExMDAgMTE2MiAxMUFEO0FDMjI7MTEwMCAxMTYyIDExQUQ7CitBQzIzO0FDMjM7MTEwMCAxMTYyIDExQUU7QUMyMzsxMTAwIDExNjIgMTFBRTsKK0FDMjQ7QUMyNDsxMTAwIDExNjIgMTFBRjtBQzI0OzExMDAgMTE2MiAxMUFGOworQUMyNTtBQzI1OzExMDAgMTE2MiAxMUIwO0FDMjU7MTEwMCAxMTYyIDExQjA7CitBQzI2O0FDMjY7MTEwMCAxMTYyIDExQjE7QUMyNjsxMTAwIDExNjIgMTFCMTsKK0FDMjc7QUMyNzsxMTAwIDExNjIgMTFCMjtBQzI3OzExMDAgMTE2MiAxMUIyOworQUMyODtBQzI4OzExMDAgMTE2MiAxMUIzO0FDMjg7MTEwMCAxMTYyIDExQjM7CitBQzI5O0FDMjk7MTEwMCAxMTYyIDExQjQ7QUMyOTsxMTAwIDExNjIgMTFCNDsKK0FDMkE7QUMyQTsxMTAwIDExNjIgMTFCNTtBQzJBOzExMDAgMTE2MiAxMUI1OworQUMyQjtBQzJCOzExMDAgMTE2MiAxMUI2O0FDMkI7MTEwMCAxMTYyIDExQjY7CitBQzJDO0FDMkM7MTEwMCAxMTYyIDExQjc7QUMyQzsxMTAwIDExNjIgMTFCNzsKK0FDMkQ7QUMyRDsxMTAwIDExNjIgMTFCODtBQzJEOzExMDAgMTE2MiAxMUI4OworQUMyRTtBQzJFOzExMDAgMTE2MiAxMUI5O0FDMkU7MTEwMCAxMTYyIDExQjk7CitBQzJGO0FDMkY7MTEwMCAxMTYyIDExQkE7QUMyRjsxMTAwIDExNjIgMTFCQTsKK0FDMzA7QUMzMDsxMTAwIDExNjIgMTFCQjtBQzMwOzExMDAgMTE2MiAxMUJCOworQUMzMTtBQzMxOzExMDAgMTE2MiAxMUJDO0FDMzE7MTEwMCAxMTYyIDExQkM7CitBQzMyO0FDMzI7MTEwMCAxMTYyIDExQkQ7QUMzMjsxMTAwIDExNjIgMTFCRDsKK0FDMzM7QUMzMzsxMTAwIDExNjIgMTFCRTtBQzMzOzExMDAgMTE2MiAxMUJFOworQUMzNDtBQzM0OzExMDAgMTE2MiAxMUJGO0FDMzQ7MTEwMCAxMTYyIDExQkY7CitBQzM1O0FDMzU7MTEwMCAxMTYyIDExQzA7QUMzNTsxMTAwIDExNjIgMTFDMDsKK0FDMzY7QUMzNjsxMTAwIDExNjIgMTFDMTtBQzM2OzExMDAgMTE2MiAxMUMxOworQUMzNztBQzM3OzExMDAgMTE2MiAxMUMyO0FDMzc7MTEwMCAxMTYyIDExQzI7CitBQzM4O0FDMzg7MTEwMCAxMTYzO0FDMzg7MTEwMCAxMTYzOworQUMzOTtBQzM5OzExMDAgMTE2MyAxMUE4O0FDMzk7MTEwMCAxMTYzIDExQTg7CitBQzNBO0FDM0E7MTEwMCAxMTYzIDExQTk7QUMzQTsxMTAwIDExNjMgMTFBOTsKK0FDM0I7QUMzQjsxMTAwIDExNjMgMTFBQTtBQzNCOzExMDAgMTE2MyAxMUFBOworQUMzQztBQzNDOzExMDAgMTE2MyAxMUFCO0FDM0M7MTEwMCAxMTYzIDExQUI7CitBQzNEO0FDM0Q7MTEwMCAxMTYzIDExQUM7QUMzRDsxMTAwIDExNjMgMTFBQzsKK0FDM0U7QUMzRTsxMTAwIDExNjMgMTFBRDtBQzNFOzExMDAgMTE2MyAxMUFEOworQUMzRjtBQzNGOzExMDAgMTE2MyAxMUFFO0FDM0Y7MTEwMCAxMTYzIDExQUU7CitBQzQwO0FDNDA7MTEwMCAxMTYzIDExQUY7QUM0MDsxMTAwIDExNjMgMTFBRjsKK0FDNDE7QUM0MTsxMTAwIDExNjMgMTFCMDtBQzQxOzExMDAgMTE2MyAxMUIwOworQUM0MjtBQzQyOzExMDAgMTE2MyAxMUIxO0FDNDI7MTEwMCAxMTYzIDExQjE7CitBQzQzO0FDNDM7MTEwMCAxMTYzIDExQjI7QUM0MzsxMTAwIDExNjMgMTFCMjsKK0FDNDQ7QUM0NDsxMTAwIDExNjMgMTFCMztBQzQ0OzExMDAgMTE2MyAxMUIzOworQUM0NTtBQzQ1OzExMDAgMTE2MyAxMUI0O0FDNDU7MTEwMCAxMTYzIDExQjQ7CitBQzQ2O0FDNDY7MTEwMCAxMTYzIDExQjU7QUM0NjsxMTAwIDExNjMgMTFCNTsKK0FDNDc7QUM0NzsxMTAwIDExNjMgMTFCNjtBQzQ3OzExMDAgMTE2MyAxMUI2OworQUM0ODtBQzQ4OzExMDAgMTE2MyAxMUI3O0FDNDg7MTEwMCAxMTYzIDExQjc7CitBQzQ5O0FDNDk7MTEwMCAxMTYzIDExQjg7QUM0OTsxMTAwIDExNjMgMTFCODsKK0FDNEE7QUM0QTsxMTAwIDExNjMgMTFCOTtBQzRBOzExMDAgMTE2MyAxMUI5OworQUM0QjtBQzRCOzExMDAgMTE2MyAxMUJBO0FDNEI7MTEwMCAxMTYzIDExQkE7CitBQzRDO0FDNEM7MTEwMCAxMTYzIDExQkI7QUM0QzsxMTAwIDExNjMgMTFCQjsKK0FDNEQ7QUM0RDsxMTAwIDExNjMgMTFCQztBQzREOzExMDAgMTE2MyAxMUJDOworQUM0RTtBQzRFOzExMDAgMTE2MyAxMUJEO0FDNEU7MTEwMCAxMTYzIDExQkQ7CitBQzRGO0FDNEY7MTEwMCAxMTYzIDExQkU7QUM0RjsxMTAwIDExNjMgMTFCRTsKK0FDNTA7QUM1MDsxMTAwIDExNjMgMTFCRjtBQzUwOzExMDAgMTE2MyAxMUJGOworQUM1MTtBQzUxOzExMDAgMTE2MyAxMUMwO0FDNTE7MTEwMCAxMTYzIDExQzA7CitBQzUyO0FDNTI7MTEwMCAxMTYzIDExQzE7QUM1MjsxMTAwIDExNjMgMTFDMTsKK0FDNTM7QUM1MzsxMTAwIDExNjMgMTFDMjtBQzUzOzExMDAgMTE2MyAxMUMyOworQUM1NDtBQzU0OzExMDAgMTE2NDtBQzU0OzExMDAgMTE2NDsKK0FDNTU7QUM1NTsxMTAwIDExNjQgMTFBODtBQzU1OzExMDAgMTE2NCAxMUE4OworQUM1NjtBQzU2OzExMDAgMTE2NCAxMUE5O0FDNTY7MTEwMCAxMTY0IDExQTk7CitBQzU3O0FDNTc7MTEwMCAxMTY0IDExQUE7QUM1NzsxMTAwIDExNjQgMTFBQTsKK0FDNTg7QUM1ODsxMTAwIDExNjQgMTFBQjtBQzU4OzExMDAgMTE2NCAxMUFCOworQUM1OTtBQzU5OzExMDAgMTE2NCAxMUFDO0FDNTk7MTEwMCAxMTY0IDExQUM7CitBQzVBO0FDNUE7MTEwMCAxMTY0IDExQUQ7QUM1QTsxMTAwIDExNjQgMTFBRDsKK0FDNUI7QUM1QjsxMTAwIDExNjQgMTFBRTtBQzVCOzExMDAgMTE2NCAxMUFFOworQUM1QztBQzVDOzExMDAgMTE2NCAxMUFGO0FDNUM7MTEwMCAxMTY0IDExQUY7CitBQzVEO0FDNUQ7MTEwMCAxMTY0IDExQjA7QUM1RDsxMTAwIDExNjQgMTFCMDsKK0FDNUU7QUM1RTsxMTAwIDExNjQgMTFCMTtBQzVFOzExMDAgMTE2NCAxMUIxOworQUM1RjtBQzVGOzExMDAgMTE2NCAxMUIyO0FDNUY7MTEwMCAxMTY0IDExQjI7CitBQzYwO0FDNjA7MTEwMCAxMTY0IDExQjM7QUM2MDsxMTAwIDExNjQgMTFCMzsKK0FDNjE7QUM2MTsxMTAwIDExNjQgMTFCNDtBQzYxOzExMDAgMTE2NCAxMUI0OworQUM2MjtBQzYyOzExMDAgMTE2NCAxMUI1O0FDNjI7MTEwMCAxMTY0IDExQjU7CitBQzYzO0FDNjM7MTEwMCAxMTY0IDExQjY7QUM2MzsxMTAwIDExNjQgMTFCNjsKK0FDNjQ7QUM2NDsxMTAwIDExNjQgMTFCNztBQzY0OzExMDAgMTE2NCAxMUI3OworQUM2NTtBQzY1OzExMDAgMTE2NCAxMUI4O0FDNjU7MTEwMCAxMTY0IDExQjg7CitBQzY2O0FDNjY7MTEwMCAxMTY0IDExQjk7QUM2NjsxMTAwIDExNjQgMTFCOTsKK0FDNjc7QUM2NzsxMTAwIDExNjQgMTFCQTtBQzY3OzExMDAgMTE2NCAxMUJBOworQUM2ODtBQzY4OzExMDAgMTE2NCAxMUJCO0FDNjg7MTEwMCAxMTY0IDExQkI7CitBQzY5O0FDNjk7MTEwMCAxMTY0IDExQkM7QUM2OTsxMTAwIDExNjQgMTFCQzsKK0FDNkE7QUM2QTsxMTAwIDExNjQgMTFCRDtBQzZBOzExMDAgMTE2NCAxMUJEOworQUM2QjtBQzZCOzExMDAgMTE2NCAxMUJFO0FDNkI7MTEwMCAxMTY0IDExQkU7CitBQzZDO0FDNkM7MTEwMCAxMTY0IDExQkY7QUM2QzsxMTAwIDExNjQgMTFCRjsKK0FDNkQ7QUM2RDsxMTAwIDExNjQgMTFDMDtBQzZEOzExMDAgMTE2NCAxMUMwOworQUM2RTtBQzZFOzExMDAgMTE2NCAxMUMxO0FDNkU7MTEwMCAxMTY0IDExQzE7CitBQzZGO0FDNkY7MTEwMCAxMTY0IDExQzI7QUM2RjsxMTAwIDExNjQgMTFDMjsKK0FDNzA7QUM3MDsxMTAwIDExNjU7QUM3MDsxMTAwIDExNjU7CitBQzcxO0FDNzE7MTEwMCAxMTY1IDExQTg7QUM3MTsxMTAwIDExNjUgMTFBODsKK0FDNzI7QUM3MjsxMTAwIDExNjUgMTFBOTtBQzcyOzExMDAgMTE2NSAxMUE5OworQUM3MztBQzczOzExMDAgMTE2NSAxMUFBO0FDNzM7MTEwMCAxMTY1IDExQUE7CitBQzc0O0FDNzQ7MTEwMCAxMTY1IDExQUI7QUM3NDsxMTAwIDExNjUgMTFBQjsKK0FDNzU7QUM3NTsxMTAwIDExNjUgMTFBQztBQzc1OzExMDAgMTE2NSAxMUFDOworQUM3NjtBQzc2OzExMDAgMTE2NSAxMUFEO0FDNzY7MTEwMCAxMTY1IDExQUQ7CitBQzc3O0FDNzc7MTEwMCAxMTY1IDExQUU7QUM3NzsxMTAwIDExNjUgMTFBRTsKK0FDNzg7QUM3ODsxMTAwIDExNjUgMTFBRjtBQzc4OzExMDAgMTE2NSAxMUFGOworQUM3OTtBQzc5OzExMDAgMTE2NSAxMUIwO0FDNzk7MTEwMCAxMTY1IDExQjA7CitBQzdBO0FDN0E7MTEwMCAxMTY1IDExQjE7QUM3QTsxMTAwIDExNjUgMTFCMTsKK0FDN0I7QUM3QjsxMTAwIDExNjUgMTFCMjtBQzdCOzExMDAgMTE2NSAxMUIyOworQUM3QztBQzdDOzExMDAgMTE2NSAxMUIzO0FDN0M7MTEwMCAxMTY1IDExQjM7CitBQzdEO0FDN0Q7MTEwMCAxMTY1IDExQjQ7QUM3RDsxMTAwIDExNjUgMTFCNDsKK0FDN0U7QUM3RTsxMTAwIDExNjUgMTFCNTtBQzdFOzExMDAgMTE2NSAxMUI1OworQUM3RjtBQzdGOzExMDAgMTE2NSAxMUI2O0FDN0Y7MTEwMCAxMTY1IDExQjY7CitBQzgwO0FDODA7MTEwMCAxMTY1IDExQjc7QUM4MDsxMTAwIDExNjUgMTFCNzsKK0FDODE7QUM4MTsxMTAwIDExNjUgMTFCODtBQzgxOzExMDAgMTE2NSAxMUI4OworQUM4MjtBQzgyOzExMDAgMTE2NSAxMUI5O0FDODI7MTEwMCAxMTY1IDExQjk7CitBQzgzO0FDODM7MTEwMCAxMTY1IDExQkE7QUM4MzsxMTAwIDExNjUgMTFCQTsKK0FDODQ7QUM4NDsxMTAwIDExNjUgMTFCQjtBQzg0OzExMDAgMTE2NSAxMUJCOworQUM4NTtBQzg1OzExMDAgMTE2NSAxMUJDO0FDODU7MTEwMCAxMTY1IDExQkM7CitBQzg2O0FDODY7MTEwMCAxMTY1IDExQkQ7QUM4NjsxMTAwIDExNjUgMTFCRDsKK0FDODc7QUM4NzsxMTAwIDExNjUgMTFCRTtBQzg3OzExMDAgMTE2NSAxMUJFOworQUM4ODtBQzg4OzExMDAgMTE2NSAxMUJGO0FDODg7MTEwMCAxMTY1IDExQkY7CitBQzg5O0FDODk7MTEwMCAxMTY1IDExQzA7QUM4OTsxMTAwIDExNjUgMTFDMDsKK0FDOEE7QUM4QTsxMTAwIDExNjUgMTFDMTtBQzhBOzExMDAgMTE2NSAxMUMxOworQUM4QjtBQzhCOzExMDAgMTE2NSAxMUMyO0FDOEI7MTEwMCAxMTY1IDExQzI7CitBQzhDO0FDOEM7MTEwMCAxMTY2O0FDOEM7MTEwMCAxMTY2OworQUM4RDtBQzhEOzExMDAgMTE2NiAxMUE4O0FDOEQ7MTEwMCAxMTY2IDExQTg7CitBQzhFO0FDOEU7MTEwMCAxMTY2IDExQTk7QUM4RTsxMTAwIDExNjYgMTFBOTsKK0FDOEY7QUM4RjsxMTAwIDExNjYgMTFBQTtBQzhGOzExMDAgMTE2NiAxMUFBOworQUM5MDtBQzkwOzExMDAgMTE2NiAxMUFCO0FDOTA7MTEwMCAxMTY2IDExQUI7CitBQzkxO0FDOTE7MTEwMCAxMTY2IDExQUM7QUM5MTsxMTAwIDExNjYgMTFBQzsKK0FDOTI7QUM5MjsxMTAwIDExNjYgMTFBRDtBQzkyOzExMDAgMTE2NiAxMUFEOworQUM5MztBQzkzOzExMDAgMTE2NiAxMUFFO0FDOTM7MTEwMCAxMTY2IDExQUU7CitBQzk0O0FDOTQ7MTEwMCAxMTY2IDExQUY7QUM5NDsxMTAwIDExNjYgMTFBRjsKK0FDOTU7QUM5NTsxMTAwIDExNjYgMTFCMDtBQzk1OzExMDAgMTE2NiAxMUIwOworQUM5NjtBQzk2OzExMDAgMTE2NiAxMUIxO0FDOTY7MTEwMCAxMTY2IDExQjE7CitBQzk3O0FDOTc7MTEwMCAxMTY2IDExQjI7QUM5NzsxMTAwIDExNjYgMTFCMjsKK0FDOTg7QUM5ODsxMTAwIDExNjYgMTFCMztBQzk4OzExMDAgMTE2NiAxMUIzOworQUM5OTtBQzk5OzExMDAgMTE2NiAxMUI0O0FDOTk7MTEwMCAxMTY2IDExQjQ7CitBQzlBO0FDOUE7MTEwMCAxMTY2IDExQjU7QUM5QTsxMTAwIDExNjYgMTFCNTsKK0FDOUI7QUM5QjsxMTAwIDExNjYgMTFCNjtBQzlCOzExMDAgMTE2NiAxMUI2OworQUM5QztBQzlDOzExMDAgMTE2NiAxMUI3O0FDOUM7MTEwMCAxMTY2IDExQjc7CitBQzlEO0FDOUQ7MTEwMCAxMTY2IDExQjg7QUM5RDsxMTAwIDExNjYgMTFCODsKK0FDOUU7QUM5RTsxMTAwIDExNjYgMTFCOTtBQzlFOzExMDAgMTE2NiAxMUI5OworQUM5RjtBQzlGOzExMDAgMTE2NiAxMUJBO0FDOUY7MTEwMCAxMTY2IDExQkE7CitBQ0EwO0FDQTA7MTEwMCAxMTY2IDExQkI7QUNBMDsxMTAwIDExNjYgMTFCQjsKK0FDQTE7QUNBMTsxMTAwIDExNjYgMTFCQztBQ0ExOzExMDAgMTE2NiAxMUJDOworQUNBMjtBQ0EyOzExMDAgMTE2NiAxMUJEO0FDQTI7MTEwMCAxMTY2IDExQkQ7CitBQ0EzO0FDQTM7MTEwMCAxMTY2IDExQkU7QUNBMzsxMTAwIDExNjYgMTFCRTsKK0FDQTQ7QUNBNDsxMTAwIDExNjYgMTFCRjtBQ0E0OzExMDAgMTE2NiAxMUJGOworQUNBNTtBQ0E1OzExMDAgMTE2NiAxMUMwO0FDQTU7MTEwMCAxMTY2IDExQzA7CitBQ0E2O0FDQTY7MTEwMCAxMTY2IDExQzE7QUNBNjsxMTAwIDExNjYgMTFDMTsKK0FDQTc7QUNBNzsxMTAwIDExNjYgMTFDMjtBQ0E3OzExMDAgMTE2NiAxMUMyOworQUNBODtBQ0E4OzExMDAgMTE2NztBQ0E4OzExMDAgMTE2NzsKK0FDQTk7QUNBOTsxMTAwIDExNjcgMTFBODtBQ0E5OzExMDAgMTE2NyAxMUE4OworQUNBQTtBQ0FBOzExMDAgMTE2NyAxMUE5O0FDQUE7MTEwMCAxMTY3IDExQTk7CitBQ0FCO0FDQUI7MTEwMCAxMTY3IDExQUE7QUNBQjsxMTAwIDExNjcgMTFBQTsKK0FDQUM7QUNBQzsxMTAwIDExNjcgMTFBQjtBQ0FDOzExMDAgMTE2NyAxMUFCOworQUNBRDtBQ0FEOzExMDAgMTE2NyAxMUFDO0FDQUQ7MTEwMCAxMTY3IDExQUM7CitBQ0FFO0FDQUU7MTEwMCAxMTY3IDExQUQ7QUNBRTsxMTAwIDExNjcgMTFBRDsKK0FDQUY7QUNBRjsxMTAwIDExNjcgMTFBRTtBQ0FGOzExMDAgMTE2NyAxMUFFOworQUNCMDtBQ0IwOzExMDAgMTE2NyAxMUFGO0FDQjA7MTEwMCAxMTY3IDExQUY7CitBQ0IxO0FDQjE7MTEwMCAxMTY3IDExQjA7QUNCMTsxMTAwIDExNjcgMTFCMDsKK0FDQjI7QUNCMjsxMTAwIDExNjcgMTFCMTtBQ0IyOzExMDAgMTE2NyAxMUIxOworQUNCMztBQ0IzOzExMDAgMTE2NyAxMUIyO0FDQjM7MTEwMCAxMTY3IDExQjI7CitBQ0I0O0FDQjQ7MTEwMCAxMTY3IDExQjM7QUNCNDsxMTAwIDExNjcgMTFCMzsKK0FDQjU7QUNCNTsxMTAwIDExNjcgMTFCNDtBQ0I1OzExMDAgMTE2NyAxMUI0OworQUNCNjtBQ0I2OzExMDAgMTE2NyAxMUI1O0FDQjY7MTEwMCAxMTY3IDExQjU7CitBQ0I3O0FDQjc7MTEwMCAxMTY3IDExQjY7QUNCNzsxMTAwIDExNjcgMTFCNjsKK0FDQjg7QUNCODsxMTAwIDExNjcgMTFCNztBQ0I4OzExMDAgMTE2NyAxMUI3OworQUNCOTtBQ0I5OzExMDAgMTE2NyAxMUI4O0FDQjk7MTEwMCAxMTY3IDExQjg7CitBQ0JBO0FDQkE7MTEwMCAxMTY3IDExQjk7QUNCQTsxMTAwIDExNjcgMTFCOTsKK0FDQkI7QUNCQjsxMTAwIDExNjcgMTFCQTtBQ0JCOzExMDAgMTE2NyAxMUJBOworQUNCQztBQ0JDOzExMDAgMTE2NyAxMUJCO0FDQkM7MTEwMCAxMTY3IDExQkI7CitBQ0JEO0FDQkQ7MTEwMCAxMTY3IDExQkM7QUNCRDsxMTAwIDExNjcgMTFCQzsKK0FDQkU7QUNCRTsxMTAwIDExNjcgMTFCRDtBQ0JFOzExMDAgMTE2NyAxMUJEOworQUNCRjtBQ0JGOzExMDAgMTE2NyAxMUJFO0FDQkY7MTEwMCAxMTY3IDExQkU7CitBQ0MwO0FDQzA7MTEwMCAxMTY3IDExQkY7QUNDMDsxMTAwIDExNjcgMTFCRjsKK0FDQzE7QUNDMTsxMTAwIDExNjcgMTFDMDtBQ0MxOzExMDAgMTE2NyAxMUMwOworQUNDMjtBQ0MyOzExMDAgMTE2NyAxMUMxO0FDQzI7MTEwMCAxMTY3IDExQzE7CitBQ0MzO0FDQzM7MTEwMCAxMTY3IDExQzI7QUNDMzsxMTAwIDExNjcgMTFDMjsKK0FDQzQ7QUNDNDsxMTAwIDExNjg7QUNDNDsxMTAwIDExNjg7CitBQ0M1O0FDQzU7MTEwMCAxMTY4IDExQTg7QUNDNTsxMTAwIDExNjggMTFBODsKK0FDQzY7QUNDNjsxMTAwIDExNjggMTFBOTtBQ0M2OzExMDAgMTE2OCAxMUE5OworQUNDNztBQ0M3OzExMDAgMTE2OCAxMUFBO0FDQzc7MTEwMCAxMTY4IDExQUE7CitBQ0M4O0FDQzg7MTEwMCAxMTY4IDExQUI7QUNDODsxMTAwIDExNjggMTFBQjsKK0FDQzk7QUNDOTsxMTAwIDExNjggMTFBQztBQ0M5OzExMDAgMTE2OCAxMUFDOworQUNDQTtBQ0NBOzExMDAgMTE2OCAxMUFEO0FDQ0E7MTEwMCAxMTY4IDExQUQ7CitBQ0NCO0FDQ0I7MTEwMCAxMTY4IDExQUU7QUNDQjsxMTAwIDExNjggMTFBRTsKK0FDQ0M7QUNDQzsxMTAwIDExNjggMTFBRjtBQ0NDOzExMDAgMTE2OCAxMUFGOworQUNDRDtBQ0NEOzExMDAgMTE2OCAxMUIwO0FDQ0Q7MTEwMCAxMTY4IDExQjA7CitBQ0NFO0FDQ0U7MTEwMCAxMTY4IDExQjE7QUNDRTsxMTAwIDExNjggMTFCMTsKK0FDQ0Y7QUNDRjsxMTAwIDExNjggMTFCMjtBQ0NGOzExMDAgMTE2OCAxMUIyOworQUNEMDtBQ0QwOzExMDAgMTE2OCAxMUIzO0FDRDA7MTEwMCAxMTY4IDExQjM7CitBQ0QxO0FDRDE7MTEwMCAxMTY4IDExQjQ7QUNEMTsxMTAwIDExNjggMTFCNDsKK0FDRDI7QUNEMjsxMTAwIDExNjggMTFCNTtBQ0QyOzExMDAgMTE2OCAxMUI1OworQUNEMztBQ0QzOzExMDAgMTE2OCAxMUI2O0FDRDM7MTEwMCAxMTY4IDExQjY7CitBQ0Q0O0FDRDQ7MTEwMCAxMTY4IDExQjc7QUNENDsxMTAwIDExNjggMTFCNzsKK0FDRDU7QUNENTsxMTAwIDExNjggMTFCODtBQ0Q1OzExMDAgMTE2OCAxMUI4OworQUNENjtBQ0Q2OzExMDAgMTE2OCAxMUI5O0FDRDY7MTEwMCAxMTY4IDExQjk7CitBQ0Q3O0FDRDc7MTEwMCAxMTY4IDExQkE7QUNENzsxMTAwIDExNjggMTFCQTsKK0FDRDg7QUNEODsxMTAwIDExNjggMTFCQjtBQ0Q4OzExMDAgMTE2OCAxMUJCOworQUNEOTtBQ0Q5OzExMDAgMTE2OCAxMUJDO0FDRDk7MTEwMCAxMTY4IDExQkM7CitBQ0RBO0FDREE7MTEwMCAxMTY4IDExQkQ7QUNEQTsxMTAwIDExNjggMTFCRDsKK0FDREI7QUNEQjsxMTAwIDExNjggMTFCRTtBQ0RCOzExMDAgMTE2OCAxMUJFOworQUNEQztBQ0RDOzExMDAgMTE2OCAxMUJGO0FDREM7MTEwMCAxMTY4IDExQkY7CitBQ0REO0FDREQ7MTEwMCAxMTY4IDExQzA7QUNERDsxMTAwIDExNjggMTFDMDsKK0FDREU7QUNERTsxMTAwIDExNjggMTFDMTtBQ0RFOzExMDAgMTE2OCAxMUMxOworQUNERjtBQ0RGOzExMDAgMTE2OCAxMUMyO0FDREY7MTEwMCAxMTY4IDExQzI7CitBQ0UwO0FDRTA7MTEwMCAxMTY5O0FDRTA7MTEwMCAxMTY5OworQUNFMTtBQ0UxOzExMDAgMTE2OSAxMUE4O0FDRTE7MTEwMCAxMTY5IDExQTg7CitBQ0UyO0FDRTI7MTEwMCAxMTY5IDExQTk7QUNFMjsxMTAwIDExNjkgMTFBOTsKK0FDRTM7QUNFMzsxMTAwIDExNjkgMTFBQTtBQ0UzOzExMDAgMTE2OSAxMUFBOworQUNFNDtBQ0U0OzExMDAgMTE2OSAxMUFCO0FDRTQ7MTEwMCAxMTY5IDExQUI7CitBQ0U1O0FDRTU7MTEwMCAxMTY5IDExQUM7QUNFNTsxMTAwIDExNjkgMTFBQzsKK0FDRTY7QUNFNjsxMTAwIDExNjkgMTFBRDtBQ0U2OzExMDAgMTE2OSAxMUFEOworQUNFNztBQ0U3OzExMDAgMTE2OSAxMUFFO0FDRTc7MTEwMCAxMTY5IDExQUU7CitBQ0U4O0FDRTg7MTEwMCAxMTY5IDExQUY7QUNFODsxMTAwIDExNjkgMTFBRjsKK0FDRTk7QUNFOTsxMTAwIDExNjkgMTFCMDtBQ0U5OzExMDAgMTE2OSAxMUIwOworQUNFQTtBQ0VBOzExMDAgMTE2OSAxMUIxO0FDRUE7MTEwMCAxMTY5IDExQjE7CitBQ0VCO0FDRUI7MTEwMCAxMTY5IDExQjI7QUNFQjsxMTAwIDExNjkgMTFCMjsKK0FDRUM7QUNFQzsxMTAwIDExNjkgMTFCMztBQ0VDOzExMDAgMTE2OSAxMUIzOworQUNFRDtBQ0VEOzExMDAgMTE2OSAxMUI0O0FDRUQ7MTEwMCAxMTY5IDExQjQ7CitBQ0VFO0FDRUU7MTEwMCAxMTY5IDExQjU7QUNFRTsxMTAwIDExNjkgMTFCNTsKK0FDRUY7QUNFRjsxMTAwIDExNjkgMTFCNjtBQ0VGOzExMDAgMTE2OSAxMUI2OworQUNGMDtBQ0YwOzExMDAgMTE2OSAxMUI3O0FDRjA7MTEwMCAxMTY5IDExQjc7CitBQ0YxO0FDRjE7MTEwMCAxMTY5IDExQjg7QUNGMTsxMTAwIDExNjkgMTFCODsKK0FDRjI7QUNGMjsxMTAwIDExNjkgMTFCOTtBQ0YyOzExMDAgMTE2OSAxMUI5OworQUNGMztBQ0YzOzExMDAgMTE2OSAxMUJBO0FDRjM7MTEwMCAxMTY5IDExQkE7CitBQ0Y0O0FDRjQ7MTEwMCAxMTY5IDExQkI7QUNGNDsxMTAwIDExNjkgMTFCQjsKK0FDRjU7QUNGNTsxMTAwIDExNjkgMTFCQztBQ0Y1OzExMDAgMTE2OSAxMUJDOworQUNGNjtBQ0Y2OzExMDAgMTE2OSAxMUJEO0FDRjY7MTEwMCAxMTY5IDExQkQ7CitBQ0Y3O0FDRjc7MTEwMCAxMTY5IDExQkU7QUNGNzsxMTAwIDExNjkgMTFCRTsKK0FDRjg7QUNGODsxMTAwIDExNjkgMTFCRjtBQ0Y4OzExMDAgMTE2OSAxMUJGOworQUNGOTtBQ0Y5OzExMDAgMTE2OSAxMUMwO0FDRjk7MTEwMCAxMTY5IDExQzA7CitBQ0ZBO0FDRkE7MTEwMCAxMTY5IDExQzE7QUNGQTsxMTAwIDExNjkgMTFDMTsKK0FDRkI7QUNGQjsxMTAwIDExNjkgMTFDMjtBQ0ZCOzExMDAgMTE2OSAxMUMyOworQUNGQztBQ0ZDOzExMDAgMTE2QTtBQ0ZDOzExMDAgMTE2QTsKK0FDRkQ7QUNGRDsxMTAwIDExNkEgMTFBODtBQ0ZEOzExMDAgMTE2QSAxMUE4OworQUNGRTtBQ0ZFOzExMDAgMTE2QSAxMUE5O0FDRkU7MTEwMCAxMTZBIDExQTk7CitBQ0ZGO0FDRkY7MTEwMCAxMTZBIDExQUE7QUNGRjsxMTAwIDExNkEgMTFBQTsKK0FEMDA7QUQwMDsxMTAwIDExNkEgMTFBQjtBRDAwOzExMDAgMTE2QSAxMUFCOworQUQwMTtBRDAxOzExMDAgMTE2QSAxMUFDO0FEMDE7MTEwMCAxMTZBIDExQUM7CitBRDAyO0FEMDI7MTEwMCAxMTZBIDExQUQ7QUQwMjsxMTAwIDExNkEgMTFBRDsKK0FEMDM7QUQwMzsxMTAwIDExNkEgMTFBRTtBRDAzOzExMDAgMTE2QSAxMUFFOworQUQwNDtBRDA0OzExMDAgMTE2QSAxMUFGO0FEMDQ7MTEwMCAxMTZBIDExQUY7CitBRDA1O0FEMDU7MTEwMCAxMTZBIDExQjA7QUQwNTsxMTAwIDExNkEgMTFCMDsKK0FEMDY7QUQwNjsxMTAwIDExNkEgMTFCMTtBRDA2OzExMDAgMTE2QSAxMUIxOworQUQwNztBRDA3OzExMDAgMTE2QSAxMUIyO0FEMDc7MTEwMCAxMTZBIDExQjI7CitBRDA4O0FEMDg7MTEwMCAxMTZBIDExQjM7QUQwODsxMTAwIDExNkEgMTFCMzsKK0FEMDk7QUQwOTsxMTAwIDExNkEgMTFCNDtBRDA5OzExMDAgMTE2QSAxMUI0OworQUQwQTtBRDBBOzExMDAgMTE2QSAxMUI1O0FEMEE7MTEwMCAxMTZBIDExQjU7CitBRDBCO0FEMEI7MTEwMCAxMTZBIDExQjY7QUQwQjsxMTAwIDExNkEgMTFCNjsKK0FEMEM7QUQwQzsxMTAwIDExNkEgMTFCNztBRDBDOzExMDAgMTE2QSAxMUI3OworQUQwRDtBRDBEOzExMDAgMTE2QSAxMUI4O0FEMEQ7MTEwMCAxMTZBIDExQjg7CitBRDBFO0FEMEU7MTEwMCAxMTZBIDExQjk7QUQwRTsxMTAwIDExNkEgMTFCOTsKK0FEMEY7QUQwRjsxMTAwIDExNkEgMTFCQTtBRDBGOzExMDAgMTE2QSAxMUJBOworQUQxMDtBRDEwOzExMDAgMTE2QSAxMUJCO0FEMTA7MTEwMCAxMTZBIDExQkI7CitBRDExO0FEMTE7MTEwMCAxMTZBIDExQkM7QUQxMTsxMTAwIDExNkEgMTFCQzsKK0FEMTI7QUQxMjsxMTAwIDExNkEgMTFCRDtBRDEyOzExMDAgMTE2QSAxMUJEOworQUQxMztBRDEzOzExMDAgMTE2QSAxMUJFO0FEMTM7MTEwMCAxMTZBIDExQkU7CitBRDE0O0FEMTQ7MTEwMCAxMTZBIDExQkY7QUQxNDsxMTAwIDExNkEgMTFCRjsKK0FEMTU7QUQxNTsxMTAwIDExNkEgMTFDMDtBRDE1OzExMDAgMTE2QSAxMUMwOworQUQxNjtBRDE2OzExMDAgMTE2QSAxMUMxO0FEMTY7MTEwMCAxMTZBIDExQzE7CitBRDE3O0FEMTc7MTEwMCAxMTZBIDExQzI7QUQxNzsxMTAwIDExNkEgMTFDMjsKK0FEMTg7QUQxODsxMTAwIDExNkI7QUQxODsxMTAwIDExNkI7CitBRDE5O0FEMTk7MTEwMCAxMTZCIDExQTg7QUQxOTsxMTAwIDExNkIgMTFBODsKK0FEMUE7QUQxQTsxMTAwIDExNkIgMTFBOTtBRDFBOzExMDAgMTE2QiAxMUE5OworQUQxQjtBRDFCOzExMDAgMTE2QiAxMUFBO0FEMUI7MTEwMCAxMTZCIDExQUE7CitBRDFDO0FEMUM7MTEwMCAxMTZCIDExQUI7QUQxQzsxMTAwIDExNkIgMTFBQjsKK0FEMUQ7QUQxRDsxMTAwIDExNkIgMTFBQztBRDFEOzExMDAgMTE2QiAxMUFDOworQUQxRTtBRDFFOzExMDAgMTE2QiAxMUFEO0FEMUU7MTEwMCAxMTZCIDExQUQ7CitBRDFGO0FEMUY7MTEwMCAxMTZCIDExQUU7QUQxRjsxMTAwIDExNkIgMTFBRTsKK0FEMjA7QUQyMDsxMTAwIDExNkIgMTFBRjtBRDIwOzExMDAgMTE2QiAxMUFGOworQUQyMTtBRDIxOzExMDAgMTE2QiAxMUIwO0FEMjE7MTEwMCAxMTZCIDExQjA7CitBRDIyO0FEMjI7MTEwMCAxMTZCIDExQjE7QUQyMjsxMTAwIDExNkIgMTFCMTsKK0FEMjM7QUQyMzsxMTAwIDExNkIgMTFCMjtBRDIzOzExMDAgMTE2QiAxMUIyOworQUQyNDtBRDI0OzExMDAgMTE2QiAxMUIzO0FEMjQ7MTEwMCAxMTZCIDExQjM7CitBRDI1O0FEMjU7MTEwMCAxMTZCIDExQjQ7QUQyNTsxMTAwIDExNkIgMTFCNDsKK0FEMjY7QUQyNjsxMTAwIDExNkIgMTFCNTtBRDI2OzExMDAgMTE2QiAxMUI1OworQUQyNztBRDI3OzExMDAgMTE2QiAxMUI2O0FEMjc7MTEwMCAxMTZCIDExQjY7CitBRDI4O0FEMjg7MTEwMCAxMTZCIDExQjc7QUQyODsxMTAwIDExNkIgMTFCNzsKK0FEMjk7QUQyOTsxMTAwIDExNkIgMTFCODtBRDI5OzExMDAgMTE2QiAxMUI4OworQUQyQTtBRDJBOzExMDAgMTE2QiAxMUI5O0FEMkE7MTEwMCAxMTZCIDExQjk7CitBRDJCO0FEMkI7MTEwMCAxMTZCIDExQkE7QUQyQjsxMTAwIDExNkIgMTFCQTsKK0FEMkM7QUQyQzsxMTAwIDExNkIgMTFCQjtBRDJDOzExMDAgMTE2QiAxMUJCOworQUQyRDtBRDJEOzExMDAgMTE2QiAxMUJDO0FEMkQ7MTEwMCAxMTZCIDExQkM7CitBRDJFO0FEMkU7MTEwMCAxMTZCIDExQkQ7QUQyRTsxMTAwIDExNkIgMTFCRDsKK0FEMkY7QUQyRjsxMTAwIDExNkIgMTFCRTtBRDJGOzExMDAgMTE2QiAxMUJFOworQUQzMDtBRDMwOzExMDAgMTE2QiAxMUJGO0FEMzA7MTEwMCAxMTZCIDExQkY7CitBRDMxO0FEMzE7MTEwMCAxMTZCIDExQzA7QUQzMTsxMTAwIDExNkIgMTFDMDsKK0FEMzI7QUQzMjsxMTAwIDExNkIgMTFDMTtBRDMyOzExMDAgMTE2QiAxMUMxOworQUQzMztBRDMzOzExMDAgMTE2QiAxMUMyO0FEMzM7MTEwMCAxMTZCIDExQzI7CitBRDM0O0FEMzQ7MTEwMCAxMTZDO0FEMzQ7MTEwMCAxMTZDOworQUQzNTtBRDM1OzExMDAgMTE2QyAxMUE4O0FEMzU7MTEwMCAxMTZDIDExQTg7CitBRDM2O0FEMzY7MTEwMCAxMTZDIDExQTk7QUQzNjsxMTAwIDExNkMgMTFBOTsKK0FEMzc7QUQzNzsxMTAwIDExNkMgMTFBQTtBRDM3OzExMDAgMTE2QyAxMUFBOworQUQzODtBRDM4OzExMDAgMTE2QyAxMUFCO0FEMzg7MTEwMCAxMTZDIDExQUI7CitBRDM5O0FEMzk7MTEwMCAxMTZDIDExQUM7QUQzOTsxMTAwIDExNkMgMTFBQzsKK0FEM0E7QUQzQTsxMTAwIDExNkMgMTFBRDtBRDNBOzExMDAgMTE2QyAxMUFEOworQUQzQjtBRDNCOzExMDAgMTE2QyAxMUFFO0FEM0I7MTEwMCAxMTZDIDExQUU7CitBRDNDO0FEM0M7MTEwMCAxMTZDIDExQUY7QUQzQzsxMTAwIDExNkMgMTFBRjsKK0FEM0Q7QUQzRDsxMTAwIDExNkMgMTFCMDtBRDNEOzExMDAgMTE2QyAxMUIwOworQUQzRTtBRDNFOzExMDAgMTE2QyAxMUIxO0FEM0U7MTEwMCAxMTZDIDExQjE7CitBRDNGO0FEM0Y7MTEwMCAxMTZDIDExQjI7QUQzRjsxMTAwIDExNkMgMTFCMjsKK0FENDA7QUQ0MDsxMTAwIDExNkMgMTFCMztBRDQwOzExMDAgMTE2QyAxMUIzOworQUQ0MTtBRDQxOzExMDAgMTE2QyAxMUI0O0FENDE7MTEwMCAxMTZDIDExQjQ7CitBRDQyO0FENDI7MTEwMCAxMTZDIDExQjU7QUQ0MjsxMTAwIDExNkMgMTFCNTsKK0FENDM7QUQ0MzsxMTAwIDExNkMgMTFCNjtBRDQzOzExMDAgMTE2QyAxMUI2OworQUQ0NDtBRDQ0OzExMDAgMTE2QyAxMUI3O0FENDQ7MTEwMCAxMTZDIDExQjc7CitBRDQ1O0FENDU7MTEwMCAxMTZDIDExQjg7QUQ0NTsxMTAwIDExNkMgMTFCODsKK0FENDY7QUQ0NjsxMTAwIDExNkMgMTFCOTtBRDQ2OzExMDAgMTE2QyAxMUI5OworQUQ0NztBRDQ3OzExMDAgMTE2QyAxMUJBO0FENDc7MTEwMCAxMTZDIDExQkE7CitBRDQ4O0FENDg7MTEwMCAxMTZDIDExQkI7QUQ0ODsxMTAwIDExNkMgMTFCQjsKK0FENDk7QUQ0OTsxMTAwIDExNkMgMTFCQztBRDQ5OzExMDAgMTE2QyAxMUJDOworQUQ0QTtBRDRBOzExMDAgMTE2QyAxMUJEO0FENEE7MTEwMCAxMTZDIDExQkQ7CitBRDRCO0FENEI7MTEwMCAxMTZDIDExQkU7QUQ0QjsxMTAwIDExNkMgMTFCRTsKK0FENEM7QUQ0QzsxMTAwIDExNkMgMTFCRjtBRDRDOzExMDAgMTE2QyAxMUJGOworQUQ0RDtBRDREOzExMDAgMTE2QyAxMUMwO0FENEQ7MTEwMCAxMTZDIDExQzA7CitBRDRFO0FENEU7MTEwMCAxMTZDIDExQzE7QUQ0RTsxMTAwIDExNkMgMTFDMTsKK0FENEY7QUQ0RjsxMTAwIDExNkMgMTFDMjtBRDRGOzExMDAgMTE2QyAxMUMyOworQUQ1MDtBRDUwOzExMDAgMTE2RDtBRDUwOzExMDAgMTE2RDsKK0FENTE7QUQ1MTsxMTAwIDExNkQgMTFBODtBRDUxOzExMDAgMTE2RCAxMUE4OworQUQ1MjtBRDUyOzExMDAgMTE2RCAxMUE5O0FENTI7MTEwMCAxMTZEIDExQTk7CitBRDUzO0FENTM7MTEwMCAxMTZEIDExQUE7QUQ1MzsxMTAwIDExNkQgMTFBQTsKK0FENTQ7QUQ1NDsxMTAwIDExNkQgMTFBQjtBRDU0OzExMDAgMTE2RCAxMUFCOworQUQ1NTtBRDU1OzExMDAgMTE2RCAxMUFDO0FENTU7MTEwMCAxMTZEIDExQUM7CitBRDU2O0FENTY7MTEwMCAxMTZEIDExQUQ7QUQ1NjsxMTAwIDExNkQgMTFBRDsKK0FENTc7QUQ1NzsxMTAwIDExNkQgMTFBRTtBRDU3OzExMDAgMTE2RCAxMUFFOworQUQ1ODtBRDU4OzExMDAgMTE2RCAxMUFGO0FENTg7MTEwMCAxMTZEIDExQUY7CitBRDU5O0FENTk7MTEwMCAxMTZEIDExQjA7QUQ1OTsxMTAwIDExNkQgMTFCMDsKK0FENUE7QUQ1QTsxMTAwIDExNkQgMTFCMTtBRDVBOzExMDAgMTE2RCAxMUIxOworQUQ1QjtBRDVCOzExMDAgMTE2RCAxMUIyO0FENUI7MTEwMCAxMTZEIDExQjI7CitBRDVDO0FENUM7MTEwMCAxMTZEIDExQjM7QUQ1QzsxMTAwIDExNkQgMTFCMzsKK0FENUQ7QUQ1RDsxMTAwIDExNkQgMTFCNDtBRDVEOzExMDAgMTE2RCAxMUI0OworQUQ1RTtBRDVFOzExMDAgMTE2RCAxMUI1O0FENUU7MTEwMCAxMTZEIDExQjU7CitBRDVGO0FENUY7MTEwMCAxMTZEIDExQjY7QUQ1RjsxMTAwIDExNkQgMTFCNjsKK0FENjA7QUQ2MDsxMTAwIDExNkQgMTFCNztBRDYwOzExMDAgMTE2RCAxMUI3OworQUQ2MTtBRDYxOzExMDAgMTE2RCAxMUI4O0FENjE7MTEwMCAxMTZEIDExQjg7CitBRDYyO0FENjI7MTEwMCAxMTZEIDExQjk7QUQ2MjsxMTAwIDExNkQgMTFCOTsKK0FENjM7QUQ2MzsxMTAwIDExNkQgMTFCQTtBRDYzOzExMDAgMTE2RCAxMUJBOworQUQ2NDtBRDY0OzExMDAgMTE2RCAxMUJCO0FENjQ7MTEwMCAxMTZEIDExQkI7CitBRDY1O0FENjU7MTEwMCAxMTZEIDExQkM7QUQ2NTsxMTAwIDExNkQgMTFCQzsKK0FENjY7QUQ2NjsxMTAwIDExNkQgMTFCRDtBRDY2OzExMDAgMTE2RCAxMUJEOworQUQ2NztBRDY3OzExMDAgMTE2RCAxMUJFO0FENjc7MTEwMCAxMTZEIDExQkU7CitBRDY4O0FENjg7MTEwMCAxMTZEIDExQkY7QUQ2ODsxMTAwIDExNkQgMTFCRjsKK0FENjk7QUQ2OTsxMTAwIDExNkQgMTFDMDtBRDY5OzExMDAgMTE2RCAxMUMwOworQUQ2QTtBRDZBOzExMDAgMTE2RCAxMUMxO0FENkE7MTEwMCAxMTZEIDExQzE7CitBRDZCO0FENkI7MTEwMCAxMTZEIDExQzI7QUQ2QjsxMTAwIDExNkQgMTFDMjsKK0FENkM7QUQ2QzsxMTAwIDExNkU7QUQ2QzsxMTAwIDExNkU7CitBRDZEO0FENkQ7MTEwMCAxMTZFIDExQTg7QUQ2RDsxMTAwIDExNkUgMTFBODsKK0FENkU7QUQ2RTsxMTAwIDExNkUgMTFBOTtBRDZFOzExMDAgMTE2RSAxMUE5OworQUQ2RjtBRDZGOzExMDAgMTE2RSAxMUFBO0FENkY7MTEwMCAxMTZFIDExQUE7CitBRDcwO0FENzA7MTEwMCAxMTZFIDExQUI7QUQ3MDsxMTAwIDExNkUgMTFBQjsKK0FENzE7QUQ3MTsxMTAwIDExNkUgMTFBQztBRDcxOzExMDAgMTE2RSAxMUFDOworQUQ3MjtBRDcyOzExMDAgMTE2RSAxMUFEO0FENzI7MTEwMCAxMTZFIDExQUQ7CitBRDczO0FENzM7MTEwMCAxMTZFIDExQUU7QUQ3MzsxMTAwIDExNkUgMTFBRTsKK0FENzQ7QUQ3NDsxMTAwIDExNkUgMTFBRjtBRDc0OzExMDAgMTE2RSAxMUFGOworQUQ3NTtBRDc1OzExMDAgMTE2RSAxMUIwO0FENzU7MTEwMCAxMTZFIDExQjA7CitBRDc2O0FENzY7MTEwMCAxMTZFIDExQjE7QUQ3NjsxMTAwIDExNkUgMTFCMTsKK0FENzc7QUQ3NzsxMTAwIDExNkUgMTFCMjtBRDc3OzExMDAgMTE2RSAxMUIyOworQUQ3ODtBRDc4OzExMDAgMTE2RSAxMUIzO0FENzg7MTEwMCAxMTZFIDExQjM7CitBRDc5O0FENzk7MTEwMCAxMTZFIDExQjQ7QUQ3OTsxMTAwIDExNkUgMTFCNDsKK0FEN0E7QUQ3QTsxMTAwIDExNkUgMTFCNTtBRDdBOzExMDAgMTE2RSAxMUI1OworQUQ3QjtBRDdCOzExMDAgMTE2RSAxMUI2O0FEN0I7MTEwMCAxMTZFIDExQjY7CitBRDdDO0FEN0M7MTEwMCAxMTZFIDExQjc7QUQ3QzsxMTAwIDExNkUgMTFCNzsKK0FEN0Q7QUQ3RDsxMTAwIDExNkUgMTFCODtBRDdEOzExMDAgMTE2RSAxMUI4OworQUQ3RTtBRDdFOzExMDAgMTE2RSAxMUI5O0FEN0U7MTEwMCAxMTZFIDExQjk7CitBRDdGO0FEN0Y7MTEwMCAxMTZFIDExQkE7QUQ3RjsxMTAwIDExNkUgMTFCQTsKK0FEODA7QUQ4MDsxMTAwIDExNkUgMTFCQjtBRDgwOzExMDAgMTE2RSAxMUJCOworQUQ4MTtBRDgxOzExMDAgMTE2RSAxMUJDO0FEODE7MTEwMCAxMTZFIDExQkM7CitBRDgyO0FEODI7MTEwMCAxMTZFIDExQkQ7QUQ4MjsxMTAwIDExNkUgMTFCRDsKK0FEODM7QUQ4MzsxMTAwIDExNkUgMTFCRTtBRDgzOzExMDAgMTE2RSAxMUJFOworQUQ4NDtBRDg0OzExMDAgMTE2RSAxMUJGO0FEODQ7MTEwMCAxMTZFIDExQkY7CitBRDg1O0FEODU7MTEwMCAxMTZFIDExQzA7QUQ4NTsxMTAwIDExNkUgMTFDMDsKK0FEODY7QUQ4NjsxMTAwIDExNkUgMTFDMTtBRDg2OzExMDAgMTE2RSAxMUMxOworQUQ4NztBRDg3OzExMDAgMTE2RSAxMUMyO0FEODc7MTEwMCAxMTZFIDExQzI7CitBRDg4O0FEODg7MTEwMCAxMTZGO0FEODg7MTEwMCAxMTZGOworQUQ4OTtBRDg5OzExMDAgMTE2RiAxMUE4O0FEODk7MTEwMCAxMTZGIDExQTg7CitBRDhBO0FEOEE7MTEwMCAxMTZGIDExQTk7QUQ4QTsxMTAwIDExNkYgMTFBOTsKK0FEOEI7QUQ4QjsxMTAwIDExNkYgMTFBQTtBRDhCOzExMDAgMTE2RiAxMUFBOworQUQ4QztBRDhDOzExMDAgMTE2RiAxMUFCO0FEOEM7MTEwMCAxMTZGIDExQUI7CitBRDhEO0FEOEQ7MTEwMCAxMTZGIDExQUM7QUQ4RDsxMTAwIDExNkYgMTFBQzsKK0FEOEU7QUQ4RTsxMTAwIDExNkYgMTFBRDtBRDhFOzExMDAgMTE2RiAxMUFEOworQUQ4RjtBRDhGOzExMDAgMTE2RiAxMUFFO0FEOEY7MTEwMCAxMTZGIDExQUU7CitBRDkwO0FEOTA7MTEwMCAxMTZGIDExQUY7QUQ5MDsxMTAwIDExNkYgMTFBRjsKK0FEOTE7QUQ5MTsxMTAwIDExNkYgMTFCMDtBRDkxOzExMDAgMTE2RiAxMUIwOworQUQ5MjtBRDkyOzExMDAgMTE2RiAxMUIxO0FEOTI7MTEwMCAxMTZGIDExQjE7CitBRDkzO0FEOTM7MTEwMCAxMTZGIDExQjI7QUQ5MzsxMTAwIDExNkYgMTFCMjsKK0FEOTQ7QUQ5NDsxMTAwIDExNkYgMTFCMztBRDk0OzExMDAgMTE2RiAxMUIzOworQUQ5NTtBRDk1OzExMDAgMTE2RiAxMUI0O0FEOTU7MTEwMCAxMTZGIDExQjQ7CitBRDk2O0FEOTY7MTEwMCAxMTZGIDExQjU7QUQ5NjsxMTAwIDExNkYgMTFCNTsKK0FEOTc7QUQ5NzsxMTAwIDExNkYgMTFCNjtBRDk3OzExMDAgMTE2RiAxMUI2OworQUQ5ODtBRDk4OzExMDAgMTE2RiAxMUI3O0FEOTg7MTEwMCAxMTZGIDExQjc7CitBRDk5O0FEOTk7MTEwMCAxMTZGIDExQjg7QUQ5OTsxMTAwIDExNkYgMTFCODsKK0FEOUE7QUQ5QTsxMTAwIDExNkYgMTFCOTtBRDlBOzExMDAgMTE2RiAxMUI5OworQUQ5QjtBRDlCOzExMDAgMTE2RiAxMUJBO0FEOUI7MTEwMCAxMTZGIDExQkE7CitBRDlDO0FEOUM7MTEwMCAxMTZGIDExQkI7QUQ5QzsxMTAwIDExNkYgMTFCQjsKK0FEOUQ7QUQ5RDsxMTAwIDExNkYgMTFCQztBRDlEOzExMDAgMTE2RiAxMUJDOworQUQ5RTtBRDlFOzExMDAgMTE2RiAxMUJEO0FEOUU7MTEwMCAxMTZGIDExQkQ7CitBRDlGO0FEOUY7MTEwMCAxMTZGIDExQkU7QUQ5RjsxMTAwIDExNkYgMTFCRTsKK0FEQTA7QURBMDsxMTAwIDExNkYgMTFCRjtBREEwOzExMDAgMTE2RiAxMUJGOworQURBMTtBREExOzExMDAgMTE2RiAxMUMwO0FEQTE7MTEwMCAxMTZGIDExQzA7CitBREEyO0FEQTI7MTEwMCAxMTZGIDExQzE7QURBMjsxMTAwIDExNkYgMTFDMTsKK0FEQTM7QURBMzsxMTAwIDExNkYgMTFDMjtBREEzOzExMDAgMTE2RiAxMUMyOworQURBNDtBREE0OzExMDAgMTE3MDtBREE0OzExMDAgMTE3MDsKK0FEQTU7QURBNTsxMTAwIDExNzAgMTFBODtBREE1OzExMDAgMTE3MCAxMUE4OworQURBNjtBREE2OzExMDAgMTE3MCAxMUE5O0FEQTY7MTEwMCAxMTcwIDExQTk7CitBREE3O0FEQTc7MTEwMCAxMTcwIDExQUE7QURBNzsxMTAwIDExNzAgMTFBQTsKK0FEQTg7QURBODsxMTAwIDExNzAgMTFBQjtBREE4OzExMDAgMTE3MCAxMUFCOworQURBOTtBREE5OzExMDAgMTE3MCAxMUFDO0FEQTk7MTEwMCAxMTcwIDExQUM7CitBREFBO0FEQUE7MTEwMCAxMTcwIDExQUQ7QURBQTsxMTAwIDExNzAgMTFBRDsKK0FEQUI7QURBQjsxMTAwIDExNzAgMTFBRTtBREFCOzExMDAgMTE3MCAxMUFFOworQURBQztBREFDOzExMDAgMTE3MCAxMUFGO0FEQUM7MTEwMCAxMTcwIDExQUY7CitBREFEO0FEQUQ7MTEwMCAxMTcwIDExQjA7QURBRDsxMTAwIDExNzAgMTFCMDsKK0FEQUU7QURBRTsxMTAwIDExNzAgMTFCMTtBREFFOzExMDAgMTE3MCAxMUIxOworQURBRjtBREFGOzExMDAgMTE3MCAxMUIyO0FEQUY7MTEwMCAxMTcwIDExQjI7CitBREIwO0FEQjA7MTEwMCAxMTcwIDExQjM7QURCMDsxMTAwIDExNzAgMTFCMzsKK0FEQjE7QURCMTsxMTAwIDExNzAgMTFCNDtBREIxOzExMDAgMTE3MCAxMUI0OworQURCMjtBREIyOzExMDAgMTE3MCAxMUI1O0FEQjI7MTEwMCAxMTcwIDExQjU7CitBREIzO0FEQjM7MTEwMCAxMTcwIDExQjY7QURCMzsxMTAwIDExNzAgMTFCNjsKK0FEQjQ7QURCNDsxMTAwIDExNzAgMTFCNztBREI0OzExMDAgMTE3MCAxMUI3OworQURCNTtBREI1OzExMDAgMTE3MCAxMUI4O0FEQjU7MTEwMCAxMTcwIDExQjg7CitBREI2O0FEQjY7MTEwMCAxMTcwIDExQjk7QURCNjsxMTAwIDExNzAgMTFCOTsKK0FEQjc7QURCNzsxMTAwIDExNzAgMTFCQTtBREI3OzExMDAgMTE3MCAxMUJBOworQURCODtBREI4OzExMDAgMTE3MCAxMUJCO0FEQjg7MTEwMCAxMTcwIDExQkI7CitBREI5O0FEQjk7MTEwMCAxMTcwIDExQkM7QURCOTsxMTAwIDExNzAgMTFCQzsKK0FEQkE7QURCQTsxMTAwIDExNzAgMTFCRDtBREJBOzExMDAgMTE3MCAxMUJEOworQURCQjtBREJCOzExMDAgMTE3MCAxMUJFO0FEQkI7MTEwMCAxMTcwIDExQkU7CitBREJDO0FEQkM7MTEwMCAxMTcwIDExQkY7QURCQzsxMTAwIDExNzAgMTFCRjsKK0FEQkQ7QURCRDsxMTAwIDExNzAgMTFDMDtBREJEOzExMDAgMTE3MCAxMUMwOworQURCRTtBREJFOzExMDAgMTE3MCAxMUMxO0FEQkU7MTEwMCAxMTcwIDExQzE7CitBREJGO0FEQkY7MTEwMCAxMTcwIDExQzI7QURCRjsxMTAwIDExNzAgMTFDMjsKK0FEQzA7QURDMDsxMTAwIDExNzE7QURDMDsxMTAwIDExNzE7CitBREMxO0FEQzE7MTEwMCAxMTcxIDExQTg7QURDMTsxMTAwIDExNzEgMTFBODsKK0FEQzI7QURDMjsxMTAwIDExNzEgMTFBOTtBREMyOzExMDAgMTE3MSAxMUE5OworQURDMztBREMzOzExMDAgMTE3MSAxMUFBO0FEQzM7MTEwMCAxMTcxIDExQUE7CitBREM0O0FEQzQ7MTEwMCAxMTcxIDExQUI7QURDNDsxMTAwIDExNzEgMTFBQjsKK0FEQzU7QURDNTsxMTAwIDExNzEgMTFBQztBREM1OzExMDAgMTE3MSAxMUFDOworQURDNjtBREM2OzExMDAgMTE3MSAxMUFEO0FEQzY7MTEwMCAxMTcxIDExQUQ7CitBREM3O0FEQzc7MTEwMCAxMTcxIDExQUU7QURDNzsxMTAwIDExNzEgMTFBRTsKK0FEQzg7QURDODsxMTAwIDExNzEgMTFBRjtBREM4OzExMDAgMTE3MSAxMUFGOworQURDOTtBREM5OzExMDAgMTE3MSAxMUIwO0FEQzk7MTEwMCAxMTcxIDExQjA7CitBRENBO0FEQ0E7MTEwMCAxMTcxIDExQjE7QURDQTsxMTAwIDExNzEgMTFCMTsKK0FEQ0I7QURDQjsxMTAwIDExNzEgMTFCMjtBRENCOzExMDAgMTE3MSAxMUIyOworQURDQztBRENDOzExMDAgMTE3MSAxMUIzO0FEQ0M7MTEwMCAxMTcxIDExQjM7CitBRENEO0FEQ0Q7MTEwMCAxMTcxIDExQjQ7QURDRDsxMTAwIDExNzEgMTFCNDsKK0FEQ0U7QURDRTsxMTAwIDExNzEgMTFCNTtBRENFOzExMDAgMTE3MSAxMUI1OworQURDRjtBRENGOzExMDAgMTE3MSAxMUI2O0FEQ0Y7MTEwMCAxMTcxIDExQjY7CitBREQwO0FERDA7MTEwMCAxMTcxIDExQjc7QUREMDsxMTAwIDExNzEgMTFCNzsKK0FERDE7QUREMTsxMTAwIDExNzEgMTFCODtBREQxOzExMDAgMTE3MSAxMUI4OworQUREMjtBREQyOzExMDAgMTE3MSAxMUI5O0FERDI7MTEwMCAxMTcxIDExQjk7CitBREQzO0FERDM7MTEwMCAxMTcxIDExQkE7QUREMzsxMTAwIDExNzEgMTFCQTsKK0FERDQ7QURENDsxMTAwIDExNzEgMTFCQjtBREQ0OzExMDAgMTE3MSAxMUJCOworQURENTtBREQ1OzExMDAgMTE3MSAxMUJDO0FERDU7MTEwMCAxMTcxIDExQkM7CitBREQ2O0FERDY7MTEwMCAxMTcxIDExQkQ7QURENjsxMTAwIDExNzEgMTFCRDsKK0FERDc7QURENzsxMTAwIDExNzEgMTFCRTtBREQ3OzExMDAgMTE3MSAxMUJFOworQUREODtBREQ4OzExMDAgMTE3MSAxMUJGO0FERDg7MTEwMCAxMTcxIDExQkY7CitBREQ5O0FERDk7MTEwMCAxMTcxIDExQzA7QUREOTsxMTAwIDExNzEgMTFDMDsKK0FEREE7QUREQTsxMTAwIDExNzEgMTFDMTtBRERBOzExMDAgMTE3MSAxMUMxOworQUREQjtBRERCOzExMDAgMTE3MSAxMUMyO0FEREI7MTEwMCAxMTcxIDExQzI7CitBRERDO0FEREM7MTEwMCAxMTcyO0FEREM7MTEwMCAxMTcyOworQURERDtBREREOzExMDAgMTE3MiAxMUE4O0FEREQ7MTEwMCAxMTcyIDExQTg7CitBRERFO0FEREU7MTEwMCAxMTcyIDExQTk7QURERTsxMTAwIDExNzIgMTFBOTsKK0FEREY7QURERjsxMTAwIDExNzIgMTFBQTtBRERGOzExMDAgMTE3MiAxMUFBOworQURFMDtBREUwOzExMDAgMTE3MiAxMUFCO0FERTA7MTEwMCAxMTcyIDExQUI7CitBREUxO0FERTE7MTEwMCAxMTcyIDExQUM7QURFMTsxMTAwIDExNzIgMTFBQzsKK0FERTI7QURFMjsxMTAwIDExNzIgMTFBRDtBREUyOzExMDAgMTE3MiAxMUFEOworQURFMztBREUzOzExMDAgMTE3MiAxMUFFO0FERTM7MTEwMCAxMTcyIDExQUU7CitBREU0O0FERTQ7MTEwMCAxMTcyIDExQUY7QURFNDsxMTAwIDExNzIgMTFBRjsKK0FERTU7QURFNTsxMTAwIDExNzIgMTFCMDtBREU1OzExMDAgMTE3MiAxMUIwOworQURFNjtBREU2OzExMDAgMTE3MiAxMUIxO0FERTY7MTEwMCAxMTcyIDExQjE7CitBREU3O0FERTc7MTEwMCAxMTcyIDExQjI7QURFNzsxMTAwIDExNzIgMTFCMjsKK0FERTg7QURFODsxMTAwIDExNzIgMTFCMztBREU4OzExMDAgMTE3MiAxMUIzOworQURFOTtBREU5OzExMDAgMTE3MiAxMUI0O0FERTk7MTEwMCAxMTcyIDExQjQ7CitBREVBO0FERUE7MTEwMCAxMTcyIDExQjU7QURFQTsxMTAwIDExNzIgMTFCNTsKK0FERUI7QURFQjsxMTAwIDExNzIgMTFCNjtBREVCOzExMDAgMTE3MiAxMUI2OworQURFQztBREVDOzExMDAgMTE3MiAxMUI3O0FERUM7MTEwMCAxMTcyIDExQjc7CitBREVEO0FERUQ7MTEwMCAxMTcyIDExQjg7QURFRDsxMTAwIDExNzIgMTFCODsKK0FERUU7QURFRTsxMTAwIDExNzIgMTFCOTtBREVFOzExMDAgMTE3MiAxMUI5OworQURFRjtBREVGOzExMDAgMTE3MiAxMUJBO0FERUY7MTEwMCAxMTcyIDExQkE7CitBREYwO0FERjA7MTEwMCAxMTcyIDExQkI7QURGMDsxMTAwIDExNzIgMTFCQjsKK0FERjE7QURGMTsxMTAwIDExNzIgMTFCQztBREYxOzExMDAgMTE3MiAxMUJDOworQURGMjtBREYyOzExMDAgMTE3MiAxMUJEO0FERjI7MTEwMCAxMTcyIDExQkQ7CitBREYzO0FERjM7MTEwMCAxMTcyIDExQkU7QURGMzsxMTAwIDExNzIgMTFCRTsKK0FERjQ7QURGNDsxMTAwIDExNzIgMTFCRjtBREY0OzExMDAgMTE3MiAxMUJGOworQURGNTtBREY1OzExMDAgMTE3MiAxMUMwO0FERjU7MTEwMCAxMTcyIDExQzA7CitBREY2O0FERjY7MTEwMCAxMTcyIDExQzE7QURGNjsxMTAwIDExNzIgMTFDMTsKK0FERjc7QURGNzsxMTAwIDExNzIgMTFDMjtBREY3OzExMDAgMTE3MiAxMUMyOworQURGODtBREY4OzExMDAgMTE3MztBREY4OzExMDAgMTE3MzsKK0FERjk7QURGOTsxMTAwIDExNzMgMTFBODtBREY5OzExMDAgMTE3MyAxMUE4OworQURGQTtBREZBOzExMDAgMTE3MyAxMUE5O0FERkE7MTEwMCAxMTczIDExQTk7CitBREZCO0FERkI7MTEwMCAxMTczIDExQUE7QURGQjsxMTAwIDExNzMgMTFBQTsKK0FERkM7QURGQzsxMTAwIDExNzMgMTFBQjtBREZDOzExMDAgMTE3MyAxMUFCOworQURGRDtBREZEOzExMDAgMTE3MyAxMUFDO0FERkQ7MTEwMCAxMTczIDExQUM7CitBREZFO0FERkU7MTEwMCAxMTczIDExQUQ7QURGRTsxMTAwIDExNzMgMTFBRDsKK0FERkY7QURGRjsxMTAwIDExNzMgMTFBRTtBREZGOzExMDAgMTE3MyAxMUFFOworQUUwMDtBRTAwOzExMDAgMTE3MyAxMUFGO0FFMDA7MTEwMCAxMTczIDExQUY7CitBRTAxO0FFMDE7MTEwMCAxMTczIDExQjA7QUUwMTsxMTAwIDExNzMgMTFCMDsKK0FFMDI7QUUwMjsxMTAwIDExNzMgMTFCMTtBRTAyOzExMDAgMTE3MyAxMUIxOworQUUwMztBRTAzOzExMDAgMTE3MyAxMUIyO0FFMDM7MTEwMCAxMTczIDExQjI7CitBRTA0O0FFMDQ7MTEwMCAxMTczIDExQjM7QUUwNDsxMTAwIDExNzMgMTFCMzsKK0FFMDU7QUUwNTsxMTAwIDExNzMgMTFCNDtBRTA1OzExMDAgMTE3MyAxMUI0OworQUUwNjtBRTA2OzExMDAgMTE3MyAxMUI1O0FFMDY7MTEwMCAxMTczIDExQjU7CitBRTA3O0FFMDc7MTEwMCAxMTczIDExQjY7QUUwNzsxMTAwIDExNzMgMTFCNjsKK0FFMDg7QUUwODsxMTAwIDExNzMgMTFCNztBRTA4OzExMDAgMTE3MyAxMUI3OworQUUwOTtBRTA5OzExMDAgMTE3MyAxMUI4O0FFMDk7MTEwMCAxMTczIDExQjg7CitBRTBBO0FFMEE7MTEwMCAxMTczIDExQjk7QUUwQTsxMTAwIDExNzMgMTFCOTsKK0FFMEI7QUUwQjsxMTAwIDExNzMgMTFCQTtBRTBCOzExMDAgMTE3MyAxMUJBOworQUUwQztBRTBDOzExMDAgMTE3MyAxMUJCO0FFMEM7MTEwMCAxMTczIDExQkI7CitBRTBEO0FFMEQ7MTEwMCAxMTczIDExQkM7QUUwRDsxMTAwIDExNzMgMTFCQzsKK0FFMEU7QUUwRTsxMTAwIDExNzMgMTFCRDtBRTBFOzExMDAgMTE3MyAxMUJEOworQUUwRjtBRTBGOzExMDAgMTE3MyAxMUJFO0FFMEY7MTEwMCAxMTczIDExQkU7CitBRTEwO0FFMTA7MTEwMCAxMTczIDExQkY7QUUxMDsxMTAwIDExNzMgMTFCRjsKK0FFMTE7QUUxMTsxMTAwIDExNzMgMTFDMDtBRTExOzExMDAgMTE3MyAxMUMwOworQUUxMjtBRTEyOzExMDAgMTE3MyAxMUMxO0FFMTI7MTEwMCAxMTczIDExQzE7CitBRTEzO0FFMTM7MTEwMCAxMTczIDExQzI7QUUxMzsxMTAwIDExNzMgMTFDMjsKK0FFMTQ7QUUxNDsxMTAwIDExNzQ7QUUxNDsxMTAwIDExNzQ7CitBRTE1O0FFMTU7MTEwMCAxMTc0IDExQTg7QUUxNTsxMTAwIDExNzQgMTFBODsKK0FFMTY7QUUxNjsxMTAwIDExNzQgMTFBOTtBRTE2OzExMDAgMTE3NCAxMUE5OworQUUxNztBRTE3OzExMDAgMTE3NCAxMUFBO0FFMTc7MTEwMCAxMTc0IDExQUE7CitBRTE4O0FFMTg7MTEwMCAxMTc0IDExQUI7QUUxODsxMTAwIDExNzQgMTFBQjsKK0FFMTk7QUUxOTsxMTAwIDExNzQgMTFBQztBRTE5OzExMDAgMTE3NCAxMUFDOworQUUxQTtBRTFBOzExMDAgMTE3NCAxMUFEO0FFMUE7MTEwMCAxMTc0IDExQUQ7CitBRTFCO0FFMUI7MTEwMCAxMTc0IDExQUU7QUUxQjsxMTAwIDExNzQgMTFBRTsKK0FFMUM7QUUxQzsxMTAwIDExNzQgMTFBRjtBRTFDOzExMDAgMTE3NCAxMUFGOworQUUxRDtBRTFEOzExMDAgMTE3NCAxMUIwO0FFMUQ7MTEwMCAxMTc0IDExQjA7CitBRTFFO0FFMUU7MTEwMCAxMTc0IDExQjE7QUUxRTsxMTAwIDExNzQgMTFCMTsKK0FFMUY7QUUxRjsxMTAwIDExNzQgMTFCMjtBRTFGOzExMDAgMTE3NCAxMUIyOworQUUyMDtBRTIwOzExMDAgMTE3NCAxMUIzO0FFMjA7MTEwMCAxMTc0IDExQjM7CitBRTIxO0FFMjE7MTEwMCAxMTc0IDExQjQ7QUUyMTsxMTAwIDExNzQgMTFCNDsKK0FFMjI7QUUyMjsxMTAwIDExNzQgMTFCNTtBRTIyOzExMDAgMTE3NCAxMUI1OworQUUyMztBRTIzOzExMDAgMTE3NCAxMUI2O0FFMjM7MTEwMCAxMTc0IDExQjY7CitBRTI0O0FFMjQ7MTEwMCAxMTc0IDExQjc7QUUyNDsxMTAwIDExNzQgMTFCNzsKK0FFMjU7QUUyNTsxMTAwIDExNzQgMTFCODtBRTI1OzExMDAgMTE3NCAxMUI4OworQUUyNjtBRTI2OzExMDAgMTE3NCAxMUI5O0FFMjY7MTEwMCAxMTc0IDExQjk7CitBRTI3O0FFMjc7MTEwMCAxMTc0IDExQkE7QUUyNzsxMTAwIDExNzQgMTFCQTsKK0FFMjg7QUUyODsxMTAwIDExNzQgMTFCQjtBRTI4OzExMDAgMTE3NCAxMUJCOworQUUyOTtBRTI5OzExMDAgMTE3NCAxMUJDO0FFMjk7MTEwMCAxMTc0IDExQkM7CitBRTJBO0FFMkE7MTEwMCAxMTc0IDExQkQ7QUUyQTsxMTAwIDExNzQgMTFCRDsKK0FFMkI7QUUyQjsxMTAwIDExNzQgMTFCRTtBRTJCOzExMDAgMTE3NCAxMUJFOworQUUyQztBRTJDOzExMDAgMTE3NCAxMUJGO0FFMkM7MTEwMCAxMTc0IDExQkY7CitBRTJEO0FFMkQ7MTEwMCAxMTc0IDExQzA7QUUyRDsxMTAwIDExNzQgMTFDMDsKK0FFMkU7QUUyRTsxMTAwIDExNzQgMTFDMTtBRTJFOzExMDAgMTE3NCAxMUMxOworQUUyRjtBRTJGOzExMDAgMTE3NCAxMUMyO0FFMkY7MTEwMCAxMTc0IDExQzI7CitBRTMwO0FFMzA7MTEwMCAxMTc1O0FFMzA7MTEwMCAxMTc1OworQUUzMTtBRTMxOzExMDAgMTE3NSAxMUE4O0FFMzE7MTEwMCAxMTc1IDExQTg7CitBRTMyO0FFMzI7MTEwMCAxMTc1IDExQTk7QUUzMjsxMTAwIDExNzUgMTFBOTsKK0FFMzM7QUUzMzsxMTAwIDExNzUgMTFBQTtBRTMzOzExMDAgMTE3NSAxMUFBOworQUUzNDtBRTM0OzExMDAgMTE3NSAxMUFCO0FFMzQ7MTEwMCAxMTc1IDExQUI7CitBRTM1O0FFMzU7MTEwMCAxMTc1IDExQUM7QUUzNTsxMTAwIDExNzUgMTFBQzsKK0FFMzY7QUUzNjsxMTAwIDExNzUgMTFBRDtBRTM2OzExMDAgMTE3NSAxMUFEOworQUUzNztBRTM3OzExMDAgMTE3NSAxMUFFO0FFMzc7MTEwMCAxMTc1IDExQUU7CitBRTM4O0FFMzg7MTEwMCAxMTc1IDExQUY7QUUzODsxMTAwIDExNzUgMTFBRjsKK0FFMzk7QUUzOTsxMTAwIDExNzUgMTFCMDtBRTM5OzExMDAgMTE3NSAxMUIwOworQUUzQTtBRTNBOzExMDAgMTE3NSAxMUIxO0FFM0E7MTEwMCAxMTc1IDExQjE7CitBRTNCO0FFM0I7MTEwMCAxMTc1IDExQjI7QUUzQjsxMTAwIDExNzUgMTFCMjsKK0FFM0M7QUUzQzsxMTAwIDExNzUgMTFCMztBRTNDOzExMDAgMTE3NSAxMUIzOworQUUzRDtBRTNEOzExMDAgMTE3NSAxMUI0O0FFM0Q7MTEwMCAxMTc1IDExQjQ7CitBRTNFO0FFM0U7MTEwMCAxMTc1IDExQjU7QUUzRTsxMTAwIDExNzUgMTFCNTsKK0FFM0Y7QUUzRjsxMTAwIDExNzUgMTFCNjtBRTNGOzExMDAgMTE3NSAxMUI2OworQUU0MDtBRTQwOzExMDAgMTE3NSAxMUI3O0FFNDA7MTEwMCAxMTc1IDExQjc7CitBRTQxO0FFNDE7MTEwMCAxMTc1IDExQjg7QUU0MTsxMTAwIDExNzUgMTFCODsKK0FFNDI7QUU0MjsxMTAwIDExNzUgMTFCOTtBRTQyOzExMDAgMTE3NSAxMUI5OworQUU0MztBRTQzOzExMDAgMTE3NSAxMUJBO0FFNDM7MTEwMCAxMTc1IDExQkE7CitBRTQ0O0FFNDQ7MTEwMCAxMTc1IDExQkI7QUU0NDsxMTAwIDExNzUgMTFCQjsKK0FFNDU7QUU0NTsxMTAwIDExNzUgMTFCQztBRTQ1OzExMDAgMTE3NSAxMUJDOworQUU0NjtBRTQ2OzExMDAgMTE3NSAxMUJEO0FFNDY7MTEwMCAxMTc1IDExQkQ7CitBRTQ3O0FFNDc7MTEwMCAxMTc1IDExQkU7QUU0NzsxMTAwIDExNzUgMTFCRTsKK0FFNDg7QUU0ODsxMTAwIDExNzUgMTFCRjtBRTQ4OzExMDAgMTE3NSAxMUJGOworQUU0OTtBRTQ5OzExMDAgMTE3NSAxMUMwO0FFNDk7MTEwMCAxMTc1IDExQzA7CitBRTRBO0FFNEE7MTEwMCAxMTc1IDExQzE7QUU0QTsxMTAwIDExNzUgMTFDMTsKK0FFNEI7QUU0QjsxMTAwIDExNzUgMTFDMjtBRTRCOzExMDAgMTE3NSAxMUMyOworQUU0QztBRTRDOzExMDEgMTE2MTtBRTRDOzExMDEgMTE2MTsKK0FFNEQ7QUU0RDsxMTAxIDExNjEgMTFBODtBRTREOzExMDEgMTE2MSAxMUE4OworQUU0RTtBRTRFOzExMDEgMTE2MSAxMUE5O0FFNEU7MTEwMSAxMTYxIDExQTk7CitBRTRGO0FFNEY7MTEwMSAxMTYxIDExQUE7QUU0RjsxMTAxIDExNjEgMTFBQTsKK0FFNTA7QUU1MDsxMTAxIDExNjEgMTFBQjtBRTUwOzExMDEgMTE2MSAxMUFCOworQUU1MTtBRTUxOzExMDEgMTE2MSAxMUFDO0FFNTE7MTEwMSAxMTYxIDExQUM7CitBRTUyO0FFNTI7MTEwMSAxMTYxIDExQUQ7QUU1MjsxMTAxIDExNjEgMTFBRDsKK0FFNTM7QUU1MzsxMTAxIDExNjEgMTFBRTtBRTUzOzExMDEgMTE2MSAxMUFFOworQUU1NDtBRTU0OzExMDEgMTE2MSAxMUFGO0FFNTQ7MTEwMSAxMTYxIDExQUY7CitBRTU1O0FFNTU7MTEwMSAxMTYxIDExQjA7QUU1NTsxMTAxIDExNjEgMTFCMDsKK0FFNTY7QUU1NjsxMTAxIDExNjEgMTFCMTtBRTU2OzExMDEgMTE2MSAxMUIxOworQUU1NztBRTU3OzExMDEgMTE2MSAxMUIyO0FFNTc7MTEwMSAxMTYxIDExQjI7CitBRTU4O0FFNTg7MTEwMSAxMTYxIDExQjM7QUU1ODsxMTAxIDExNjEgMTFCMzsKK0FFNTk7QUU1OTsxMTAxIDExNjEgMTFCNDtBRTU5OzExMDEgMTE2MSAxMUI0OworQUU1QTtBRTVBOzExMDEgMTE2MSAxMUI1O0FFNUE7MTEwMSAxMTYxIDExQjU7CitBRTVCO0FFNUI7MTEwMSAxMTYxIDExQjY7QUU1QjsxMTAxIDExNjEgMTFCNjsKK0FFNUM7QUU1QzsxMTAxIDExNjEgMTFCNztBRTVDOzExMDEgMTE2MSAxMUI3OworQUU1RDtBRTVEOzExMDEgMTE2MSAxMUI4O0FFNUQ7MTEwMSAxMTYxIDExQjg7CitBRTVFO0FFNUU7MTEwMSAxMTYxIDExQjk7QUU1RTsxMTAxIDExNjEgMTFCOTsKK0FFNUY7QUU1RjsxMTAxIDExNjEgMTFCQTtBRTVGOzExMDEgMTE2MSAxMUJBOworQUU2MDtBRTYwOzExMDEgMTE2MSAxMUJCO0FFNjA7MTEwMSAxMTYxIDExQkI7CitBRTYxO0FFNjE7MTEwMSAxMTYxIDExQkM7QUU2MTsxMTAxIDExNjEgMTFCQzsKK0FFNjI7QUU2MjsxMTAxIDExNjEgMTFCRDtBRTYyOzExMDEgMTE2MSAxMUJEOworQUU2MztBRTYzOzExMDEgMTE2MSAxMUJFO0FFNjM7MTEwMSAxMTYxIDExQkU7CitBRTY0O0FFNjQ7MTEwMSAxMTYxIDExQkY7QUU2NDsxMTAxIDExNjEgMTFCRjsKK0FFNjU7QUU2NTsxMTAxIDExNjEgMTFDMDtBRTY1OzExMDEgMTE2MSAxMUMwOworQUU2NjtBRTY2OzExMDEgMTE2MSAxMUMxO0FFNjY7MTEwMSAxMTYxIDExQzE7CitBRTY3O0FFNjc7MTEwMSAxMTYxIDExQzI7QUU2NzsxMTAxIDExNjEgMTFDMjsKK0FFNjg7QUU2ODsxMTAxIDExNjI7QUU2ODsxMTAxIDExNjI7CitBRTY5O0FFNjk7MTEwMSAxMTYyIDExQTg7QUU2OTsxMTAxIDExNjIgMTFBODsKK0FFNkE7QUU2QTsxMTAxIDExNjIgMTFBOTtBRTZBOzExMDEgMTE2MiAxMUE5OworQUU2QjtBRTZCOzExMDEgMTE2MiAxMUFBO0FFNkI7MTEwMSAxMTYyIDExQUE7CitBRTZDO0FFNkM7MTEwMSAxMTYyIDExQUI7QUU2QzsxMTAxIDExNjIgMTFBQjsKK0FFNkQ7QUU2RDsxMTAxIDExNjIgMTFBQztBRTZEOzExMDEgMTE2MiAxMUFDOworQUU2RTtBRTZFOzExMDEgMTE2MiAxMUFEO0FFNkU7MTEwMSAxMTYyIDExQUQ7CitBRTZGO0FFNkY7MTEwMSAxMTYyIDExQUU7QUU2RjsxMTAxIDExNjIgMTFBRTsKK0FFNzA7QUU3MDsxMTAxIDExNjIgMTFBRjtBRTcwOzExMDEgMTE2MiAxMUFGOworQUU3MTtBRTcxOzExMDEgMTE2MiAxMUIwO0FFNzE7MTEwMSAxMTYyIDExQjA7CitBRTcyO0FFNzI7MTEwMSAxMTYyIDExQjE7QUU3MjsxMTAxIDExNjIgMTFCMTsKK0FFNzM7QUU3MzsxMTAxIDExNjIgMTFCMjtBRTczOzExMDEgMTE2MiAxMUIyOworQUU3NDtBRTc0OzExMDEgMTE2MiAxMUIzO0FFNzQ7MTEwMSAxMTYyIDExQjM7CitBRTc1O0FFNzU7MTEwMSAxMTYyIDExQjQ7QUU3NTsxMTAxIDExNjIgMTFCNDsKK0FFNzY7QUU3NjsxMTAxIDExNjIgMTFCNTtBRTc2OzExMDEgMTE2MiAxMUI1OworQUU3NztBRTc3OzExMDEgMTE2MiAxMUI2O0FFNzc7MTEwMSAxMTYyIDExQjY7CitBRTc4O0FFNzg7MTEwMSAxMTYyIDExQjc7QUU3ODsxMTAxIDExNjIgMTFCNzsKK0FFNzk7QUU3OTsxMTAxIDExNjIgMTFCODtBRTc5OzExMDEgMTE2MiAxMUI4OworQUU3QTtBRTdBOzExMDEgMTE2MiAxMUI5O0FFN0E7MTEwMSAxMTYyIDExQjk7CitBRTdCO0FFN0I7MTEwMSAxMTYyIDExQkE7QUU3QjsxMTAxIDExNjIgMTFCQTsKK0FFN0M7QUU3QzsxMTAxIDExNjIgMTFCQjtBRTdDOzExMDEgMTE2MiAxMUJCOworQUU3RDtBRTdEOzExMDEgMTE2MiAxMUJDO0FFN0Q7MTEwMSAxMTYyIDExQkM7CitBRTdFO0FFN0U7MTEwMSAxMTYyIDExQkQ7QUU3RTsxMTAxIDExNjIgMTFCRDsKK0FFN0Y7QUU3RjsxMTAxIDExNjIgMTFCRTtBRTdGOzExMDEgMTE2MiAxMUJFOworQUU4MDtBRTgwOzExMDEgMTE2MiAxMUJGO0FFODA7MTEwMSAxMTYyIDExQkY7CitBRTgxO0FFODE7MTEwMSAxMTYyIDExQzA7QUU4MTsxMTAxIDExNjIgMTFDMDsKK0FFODI7QUU4MjsxMTAxIDExNjIgMTFDMTtBRTgyOzExMDEgMTE2MiAxMUMxOworQUU4MztBRTgzOzExMDEgMTE2MiAxMUMyO0FFODM7MTEwMSAxMTYyIDExQzI7CitBRTg0O0FFODQ7MTEwMSAxMTYzO0FFODQ7MTEwMSAxMTYzOworQUU4NTtBRTg1OzExMDEgMTE2MyAxMUE4O0FFODU7MTEwMSAxMTYzIDExQTg7CitBRTg2O0FFODY7MTEwMSAxMTYzIDExQTk7QUU4NjsxMTAxIDExNjMgMTFBOTsKK0FFODc7QUU4NzsxMTAxIDExNjMgMTFBQTtBRTg3OzExMDEgMTE2MyAxMUFBOworQUU4ODtBRTg4OzExMDEgMTE2MyAxMUFCO0FFODg7MTEwMSAxMTYzIDExQUI7CitBRTg5O0FFODk7MTEwMSAxMTYzIDExQUM7QUU4OTsxMTAxIDExNjMgMTFBQzsKK0FFOEE7QUU4QTsxMTAxIDExNjMgMTFBRDtBRThBOzExMDEgMTE2MyAxMUFEOworQUU4QjtBRThCOzExMDEgMTE2MyAxMUFFO0FFOEI7MTEwMSAxMTYzIDExQUU7CitBRThDO0FFOEM7MTEwMSAxMTYzIDExQUY7QUU4QzsxMTAxIDExNjMgMTFBRjsKK0FFOEQ7QUU4RDsxMTAxIDExNjMgMTFCMDtBRThEOzExMDEgMTE2MyAxMUIwOworQUU4RTtBRThFOzExMDEgMTE2MyAxMUIxO0FFOEU7MTEwMSAxMTYzIDExQjE7CitBRThGO0FFOEY7MTEwMSAxMTYzIDExQjI7QUU4RjsxMTAxIDExNjMgMTFCMjsKK0FFOTA7QUU5MDsxMTAxIDExNjMgMTFCMztBRTkwOzExMDEgMTE2MyAxMUIzOworQUU5MTtBRTkxOzExMDEgMTE2MyAxMUI0O0FFOTE7MTEwMSAxMTYzIDExQjQ7CitBRTkyO0FFOTI7MTEwMSAxMTYzIDExQjU7QUU5MjsxMTAxIDExNjMgMTFCNTsKK0FFOTM7QUU5MzsxMTAxIDExNjMgMTFCNjtBRTkzOzExMDEgMTE2MyAxMUI2OworQUU5NDtBRTk0OzExMDEgMTE2MyAxMUI3O0FFOTQ7MTEwMSAxMTYzIDExQjc7CitBRTk1O0FFOTU7MTEwMSAxMTYzIDExQjg7QUU5NTsxMTAxIDExNjMgMTFCODsKK0FFOTY7QUU5NjsxMTAxIDExNjMgMTFCOTtBRTk2OzExMDEgMTE2MyAxMUI5OworQUU5NztBRTk3OzExMDEgMTE2MyAxMUJBO0FFOTc7MTEwMSAxMTYzIDExQkE7CitBRTk4O0FFOTg7MTEwMSAxMTYzIDExQkI7QUU5ODsxMTAxIDExNjMgMTFCQjsKK0FFOTk7QUU5OTsxMTAxIDExNjMgMTFCQztBRTk5OzExMDEgMTE2MyAxMUJDOworQUU5QTtBRTlBOzExMDEgMTE2MyAxMUJEO0FFOUE7MTEwMSAxMTYzIDExQkQ7CitBRTlCO0FFOUI7MTEwMSAxMTYzIDExQkU7QUU5QjsxMTAxIDExNjMgMTFCRTsKK0FFOUM7QUU5QzsxMTAxIDExNjMgMTFCRjtBRTlDOzExMDEgMTE2MyAxMUJGOworQUU5RDtBRTlEOzExMDEgMTE2MyAxMUMwO0FFOUQ7MTEwMSAxMTYzIDExQzA7CitBRTlFO0FFOUU7MTEwMSAxMTYzIDExQzE7QUU5RTsxMTAxIDExNjMgMTFDMTsKK0FFOUY7QUU5RjsxMTAxIDExNjMgMTFDMjtBRTlGOzExMDEgMTE2MyAxMUMyOworQUVBMDtBRUEwOzExMDEgMTE2NDtBRUEwOzExMDEgMTE2NDsKK0FFQTE7QUVBMTsxMTAxIDExNjQgMTFBODtBRUExOzExMDEgMTE2NCAxMUE4OworQUVBMjtBRUEyOzExMDEgMTE2NCAxMUE5O0FFQTI7MTEwMSAxMTY0IDExQTk7CitBRUEzO0FFQTM7MTEwMSAxMTY0IDExQUE7QUVBMzsxMTAxIDExNjQgMTFBQTsKK0FFQTQ7QUVBNDsxMTAxIDExNjQgMTFBQjtBRUE0OzExMDEgMTE2NCAxMUFCOworQUVBNTtBRUE1OzExMDEgMTE2NCAxMUFDO0FFQTU7MTEwMSAxMTY0IDExQUM7CitBRUE2O0FFQTY7MTEwMSAxMTY0IDExQUQ7QUVBNjsxMTAxIDExNjQgMTFBRDsKK0FFQTc7QUVBNzsxMTAxIDExNjQgMTFBRTtBRUE3OzExMDEgMTE2NCAxMUFFOworQUVBODtBRUE4OzExMDEgMTE2NCAxMUFGO0FFQTg7MTEwMSAxMTY0IDExQUY7CitBRUE5O0FFQTk7MTEwMSAxMTY0IDExQjA7QUVBOTsxMTAxIDExNjQgMTFCMDsKK0FFQUE7QUVBQTsxMTAxIDExNjQgMTFCMTtBRUFBOzExMDEgMTE2NCAxMUIxOworQUVBQjtBRUFCOzExMDEgMTE2NCAxMUIyO0FFQUI7MTEwMSAxMTY0IDExQjI7CitBRUFDO0FFQUM7MTEwMSAxMTY0IDExQjM7QUVBQzsxMTAxIDExNjQgMTFCMzsKK0FFQUQ7QUVBRDsxMTAxIDExNjQgMTFCNDtBRUFEOzExMDEgMTE2NCAxMUI0OworQUVBRTtBRUFFOzExMDEgMTE2NCAxMUI1O0FFQUU7MTEwMSAxMTY0IDExQjU7CitBRUFGO0FFQUY7MTEwMSAxMTY0IDExQjY7QUVBRjsxMTAxIDExNjQgMTFCNjsKK0FFQjA7QUVCMDsxMTAxIDExNjQgMTFCNztBRUIwOzExMDEgMTE2NCAxMUI3OworQUVCMTtBRUIxOzExMDEgMTE2NCAxMUI4O0FFQjE7MTEwMSAxMTY0IDExQjg7CitBRUIyO0FFQjI7MTEwMSAxMTY0IDExQjk7QUVCMjsxMTAxIDExNjQgMTFCOTsKK0FFQjM7QUVCMzsxMTAxIDExNjQgMTFCQTtBRUIzOzExMDEgMTE2NCAxMUJBOworQUVCNDtBRUI0OzExMDEgMTE2NCAxMUJCO0FFQjQ7MTEwMSAxMTY0IDExQkI7CitBRUI1O0FFQjU7MTEwMSAxMTY0IDExQkM7QUVCNTsxMTAxIDExNjQgMTFCQzsKK0FFQjY7QUVCNjsxMTAxIDExNjQgMTFCRDtBRUI2OzExMDEgMTE2NCAxMUJEOworQUVCNztBRUI3OzExMDEgMTE2NCAxMUJFO0FFQjc7MTEwMSAxMTY0IDExQkU7CitBRUI4O0FFQjg7MTEwMSAxMTY0IDExQkY7QUVCODsxMTAxIDExNjQgMTFCRjsKK0FFQjk7QUVCOTsxMTAxIDExNjQgMTFDMDtBRUI5OzExMDEgMTE2NCAxMUMwOworQUVCQTtBRUJBOzExMDEgMTE2NCAxMUMxO0FFQkE7MTEwMSAxMTY0IDExQzE7CitBRUJCO0FFQkI7MTEwMSAxMTY0IDExQzI7QUVCQjsxMTAxIDExNjQgMTFDMjsKK0FFQkM7QUVCQzsxMTAxIDExNjU7QUVCQzsxMTAxIDExNjU7CitBRUJEO0FFQkQ7MTEwMSAxMTY1IDExQTg7QUVCRDsxMTAxIDExNjUgMTFBODsKK0FFQkU7QUVCRTsxMTAxIDExNjUgMTFBOTtBRUJFOzExMDEgMTE2NSAxMUE5OworQUVCRjtBRUJGOzExMDEgMTE2NSAxMUFBO0FFQkY7MTEwMSAxMTY1IDExQUE7CitBRUMwO0FFQzA7MTEwMSAxMTY1IDExQUI7QUVDMDsxMTAxIDExNjUgMTFBQjsKK0FFQzE7QUVDMTsxMTAxIDExNjUgMTFBQztBRUMxOzExMDEgMTE2NSAxMUFDOworQUVDMjtBRUMyOzExMDEgMTE2NSAxMUFEO0FFQzI7MTEwMSAxMTY1IDExQUQ7CitBRUMzO0FFQzM7MTEwMSAxMTY1IDExQUU7QUVDMzsxMTAxIDExNjUgMTFBRTsKK0FFQzQ7QUVDNDsxMTAxIDExNjUgMTFBRjtBRUM0OzExMDEgMTE2NSAxMUFGOworQUVDNTtBRUM1OzExMDEgMTE2NSAxMUIwO0FFQzU7MTEwMSAxMTY1IDExQjA7CitBRUM2O0FFQzY7MTEwMSAxMTY1IDExQjE7QUVDNjsxMTAxIDExNjUgMTFCMTsKK0FFQzc7QUVDNzsxMTAxIDExNjUgMTFCMjtBRUM3OzExMDEgMTE2NSAxMUIyOworQUVDODtBRUM4OzExMDEgMTE2NSAxMUIzO0FFQzg7MTEwMSAxMTY1IDExQjM7CitBRUM5O0FFQzk7MTEwMSAxMTY1IDExQjQ7QUVDOTsxMTAxIDExNjUgMTFCNDsKK0FFQ0E7QUVDQTsxMTAxIDExNjUgMTFCNTtBRUNBOzExMDEgMTE2NSAxMUI1OworQUVDQjtBRUNCOzExMDEgMTE2NSAxMUI2O0FFQ0I7MTEwMSAxMTY1IDExQjY7CitBRUNDO0FFQ0M7MTEwMSAxMTY1IDExQjc7QUVDQzsxMTAxIDExNjUgMTFCNzsKK0FFQ0Q7QUVDRDsxMTAxIDExNjUgMTFCODtBRUNEOzExMDEgMTE2NSAxMUI4OworQUVDRTtBRUNFOzExMDEgMTE2NSAxMUI5O0FFQ0U7MTEwMSAxMTY1IDExQjk7CitBRUNGO0FFQ0Y7MTEwMSAxMTY1IDExQkE7QUVDRjsxMTAxIDExNjUgMTFCQTsKK0FFRDA7QUVEMDsxMTAxIDExNjUgMTFCQjtBRUQwOzExMDEgMTE2NSAxMUJCOworQUVEMTtBRUQxOzExMDEgMTE2NSAxMUJDO0FFRDE7MTEwMSAxMTY1IDExQkM7CitBRUQyO0FFRDI7MTEwMSAxMTY1IDExQkQ7QUVEMjsxMTAxIDExNjUgMTFCRDsKK0FFRDM7QUVEMzsxMTAxIDExNjUgMTFCRTtBRUQzOzExMDEgMTE2NSAxMUJFOworQUVENDtBRUQ0OzExMDEgMTE2NSAxMUJGO0FFRDQ7MTEwMSAxMTY1IDExQkY7CitBRUQ1O0FFRDU7MTEwMSAxMTY1IDExQzA7QUVENTsxMTAxIDExNjUgMTFDMDsKK0FFRDY7QUVENjsxMTAxIDExNjUgMTFDMTtBRUQ2OzExMDEgMTE2NSAxMUMxOworQUVENztBRUQ3OzExMDEgMTE2NSAxMUMyO0FFRDc7MTEwMSAxMTY1IDExQzI7CitBRUQ4O0FFRDg7MTEwMSAxMTY2O0FFRDg7MTEwMSAxMTY2OworQUVEOTtBRUQ5OzExMDEgMTE2NiAxMUE4O0FFRDk7MTEwMSAxMTY2IDExQTg7CitBRURBO0FFREE7MTEwMSAxMTY2IDExQTk7QUVEQTsxMTAxIDExNjYgMTFBOTsKK0FFREI7QUVEQjsxMTAxIDExNjYgMTFBQTtBRURCOzExMDEgMTE2NiAxMUFBOworQUVEQztBRURDOzExMDEgMTE2NiAxMUFCO0FFREM7MTEwMSAxMTY2IDExQUI7CitBRUREO0FFREQ7MTEwMSAxMTY2IDExQUM7QUVERDsxMTAxIDExNjYgMTFBQzsKK0FFREU7QUVERTsxMTAxIDExNjYgMTFBRDtBRURFOzExMDEgMTE2NiAxMUFEOworQUVERjtBRURGOzExMDEgMTE2NiAxMUFFO0FFREY7MTEwMSAxMTY2IDExQUU7CitBRUUwO0FFRTA7MTEwMSAxMTY2IDExQUY7QUVFMDsxMTAxIDExNjYgMTFBRjsKK0FFRTE7QUVFMTsxMTAxIDExNjYgMTFCMDtBRUUxOzExMDEgMTE2NiAxMUIwOworQUVFMjtBRUUyOzExMDEgMTE2NiAxMUIxO0FFRTI7MTEwMSAxMTY2IDExQjE7CitBRUUzO0FFRTM7MTEwMSAxMTY2IDExQjI7QUVFMzsxMTAxIDExNjYgMTFCMjsKK0FFRTQ7QUVFNDsxMTAxIDExNjYgMTFCMztBRUU0OzExMDEgMTE2NiAxMUIzOworQUVFNTtBRUU1OzExMDEgMTE2NiAxMUI0O0FFRTU7MTEwMSAxMTY2IDExQjQ7CitBRUU2O0FFRTY7MTEwMSAxMTY2IDExQjU7QUVFNjsxMTAxIDExNjYgMTFCNTsKK0FFRTc7QUVFNzsxMTAxIDExNjYgMTFCNjtBRUU3OzExMDEgMTE2NiAxMUI2OworQUVFODtBRUU4OzExMDEgMTE2NiAxMUI3O0FFRTg7MTEwMSAxMTY2IDExQjc7CitBRUU5O0FFRTk7MTEwMSAxMTY2IDExQjg7QUVFOTsxMTAxIDExNjYgMTFCODsKK0FFRUE7QUVFQTsxMTAxIDExNjYgMTFCOTtBRUVBOzExMDEgMTE2NiAxMUI5OworQUVFQjtBRUVCOzExMDEgMTE2NiAxMUJBO0FFRUI7MTEwMSAxMTY2IDExQkE7CitBRUVDO0FFRUM7MTEwMSAxMTY2IDExQkI7QUVFQzsxMTAxIDExNjYgMTFCQjsKK0FFRUQ7QUVFRDsxMTAxIDExNjYgMTFCQztBRUVEOzExMDEgMTE2NiAxMUJDOworQUVFRTtBRUVFOzExMDEgMTE2NiAxMUJEO0FFRUU7MTEwMSAxMTY2IDExQkQ7CitBRUVGO0FFRUY7MTEwMSAxMTY2IDExQkU7QUVFRjsxMTAxIDExNjYgMTFCRTsKK0FFRjA7QUVGMDsxMTAxIDExNjYgMTFCRjtBRUYwOzExMDEgMTE2NiAxMUJGOworQUVGMTtBRUYxOzExMDEgMTE2NiAxMUMwO0FFRjE7MTEwMSAxMTY2IDExQzA7CitBRUYyO0FFRjI7MTEwMSAxMTY2IDExQzE7QUVGMjsxMTAxIDExNjYgMTFDMTsKK0FFRjM7QUVGMzsxMTAxIDExNjYgMTFDMjtBRUYzOzExMDEgMTE2NiAxMUMyOworQUVGNDtBRUY0OzExMDEgMTE2NztBRUY0OzExMDEgMTE2NzsKK0FFRjU7QUVGNTsxMTAxIDExNjcgMTFBODtBRUY1OzExMDEgMTE2NyAxMUE4OworQUVGNjtBRUY2OzExMDEgMTE2NyAxMUE5O0FFRjY7MTEwMSAxMTY3IDExQTk7CitBRUY3O0FFRjc7MTEwMSAxMTY3IDExQUE7QUVGNzsxMTAxIDExNjcgMTFBQTsKK0FFRjg7QUVGODsxMTAxIDExNjcgMTFBQjtBRUY4OzExMDEgMTE2NyAxMUFCOworQUVGOTtBRUY5OzExMDEgMTE2NyAxMUFDO0FFRjk7MTEwMSAxMTY3IDExQUM7CitBRUZBO0FFRkE7MTEwMSAxMTY3IDExQUQ7QUVGQTsxMTAxIDExNjcgMTFBRDsKK0FFRkI7QUVGQjsxMTAxIDExNjcgMTFBRTtBRUZCOzExMDEgMTE2NyAxMUFFOworQUVGQztBRUZDOzExMDEgMTE2NyAxMUFGO0FFRkM7MTEwMSAxMTY3IDExQUY7CitBRUZEO0FFRkQ7MTEwMSAxMTY3IDExQjA7QUVGRDsxMTAxIDExNjcgMTFCMDsKK0FFRkU7QUVGRTsxMTAxIDExNjcgMTFCMTtBRUZFOzExMDEgMTE2NyAxMUIxOworQUVGRjtBRUZGOzExMDEgMTE2NyAxMUIyO0FFRkY7MTEwMSAxMTY3IDExQjI7CitBRjAwO0FGMDA7MTEwMSAxMTY3IDExQjM7QUYwMDsxMTAxIDExNjcgMTFCMzsKK0FGMDE7QUYwMTsxMTAxIDExNjcgMTFCNDtBRjAxOzExMDEgMTE2NyAxMUI0OworQUYwMjtBRjAyOzExMDEgMTE2NyAxMUI1O0FGMDI7MTEwMSAxMTY3IDExQjU7CitBRjAzO0FGMDM7MTEwMSAxMTY3IDExQjY7QUYwMzsxMTAxIDExNjcgMTFCNjsKK0FGMDQ7QUYwNDsxMTAxIDExNjcgMTFCNztBRjA0OzExMDEgMTE2NyAxMUI3OworQUYwNTtBRjA1OzExMDEgMTE2NyAxMUI4O0FGMDU7MTEwMSAxMTY3IDExQjg7CitBRjA2O0FGMDY7MTEwMSAxMTY3IDExQjk7QUYwNjsxMTAxIDExNjcgMTFCOTsKK0FGMDc7QUYwNzsxMTAxIDExNjcgMTFCQTtBRjA3OzExMDEgMTE2NyAxMUJBOworQUYwODtBRjA4OzExMDEgMTE2NyAxMUJCO0FGMDg7MTEwMSAxMTY3IDExQkI7CitBRjA5O0FGMDk7MTEwMSAxMTY3IDExQkM7QUYwOTsxMTAxIDExNjcgMTFCQzsKK0FGMEE7QUYwQTsxMTAxIDExNjcgMTFCRDtBRjBBOzExMDEgMTE2NyAxMUJEOworQUYwQjtBRjBCOzExMDEgMTE2NyAxMUJFO0FGMEI7MTEwMSAxMTY3IDExQkU7CitBRjBDO0FGMEM7MTEwMSAxMTY3IDExQkY7QUYwQzsxMTAxIDExNjcgMTFCRjsKK0FGMEQ7QUYwRDsxMTAxIDExNjcgMTFDMDtBRjBEOzExMDEgMTE2NyAxMUMwOworQUYwRTtBRjBFOzExMDEgMTE2NyAxMUMxO0FGMEU7MTEwMSAxMTY3IDExQzE7CitBRjBGO0FGMEY7MTEwMSAxMTY3IDExQzI7QUYwRjsxMTAxIDExNjcgMTFDMjsKK0FGMTA7QUYxMDsxMTAxIDExNjg7QUYxMDsxMTAxIDExNjg7CitBRjExO0FGMTE7MTEwMSAxMTY4IDExQTg7QUYxMTsxMTAxIDExNjggMTFBODsKK0FGMTI7QUYxMjsxMTAxIDExNjggMTFBOTtBRjEyOzExMDEgMTE2OCAxMUE5OworQUYxMztBRjEzOzExMDEgMTE2OCAxMUFBO0FGMTM7MTEwMSAxMTY4IDExQUE7CitBRjE0O0FGMTQ7MTEwMSAxMTY4IDExQUI7QUYxNDsxMTAxIDExNjggMTFBQjsKK0FGMTU7QUYxNTsxMTAxIDExNjggMTFBQztBRjE1OzExMDEgMTE2OCAxMUFDOworQUYxNjtBRjE2OzExMDEgMTE2OCAxMUFEO0FGMTY7MTEwMSAxMTY4IDExQUQ7CitBRjE3O0FGMTc7MTEwMSAxMTY4IDExQUU7QUYxNzsxMTAxIDExNjggMTFBRTsKK0FGMTg7QUYxODsxMTAxIDExNjggMTFBRjtBRjE4OzExMDEgMTE2OCAxMUFGOworQUYxOTtBRjE5OzExMDEgMTE2OCAxMUIwO0FGMTk7MTEwMSAxMTY4IDExQjA7CitBRjFBO0FGMUE7MTEwMSAxMTY4IDExQjE7QUYxQTsxMTAxIDExNjggMTFCMTsKK0FGMUI7QUYxQjsxMTAxIDExNjggMTFCMjtBRjFCOzExMDEgMTE2OCAxMUIyOworQUYxQztBRjFDOzExMDEgMTE2OCAxMUIzO0FGMUM7MTEwMSAxMTY4IDExQjM7CitBRjFEO0FGMUQ7MTEwMSAxMTY4IDExQjQ7QUYxRDsxMTAxIDExNjggMTFCNDsKK0FGMUU7QUYxRTsxMTAxIDExNjggMTFCNTtBRjFFOzExMDEgMTE2OCAxMUI1OworQUYxRjtBRjFGOzExMDEgMTE2OCAxMUI2O0FGMUY7MTEwMSAxMTY4IDExQjY7CitBRjIwO0FGMjA7MTEwMSAxMTY4IDExQjc7QUYyMDsxMTAxIDExNjggMTFCNzsKK0FGMjE7QUYyMTsxMTAxIDExNjggMTFCODtBRjIxOzExMDEgMTE2OCAxMUI4OworQUYyMjtBRjIyOzExMDEgMTE2OCAxMUI5O0FGMjI7MTEwMSAxMTY4IDExQjk7CitBRjIzO0FGMjM7MTEwMSAxMTY4IDExQkE7QUYyMzsxMTAxIDExNjggMTFCQTsKK0FGMjQ7QUYyNDsxMTAxIDExNjggMTFCQjtBRjI0OzExMDEgMTE2OCAxMUJCOworQUYyNTtBRjI1OzExMDEgMTE2OCAxMUJDO0FGMjU7MTEwMSAxMTY4IDExQkM7CitBRjI2O0FGMjY7MTEwMSAxMTY4IDExQkQ7QUYyNjsxMTAxIDExNjggMTFCRDsKK0FGMjc7QUYyNzsxMTAxIDExNjggMTFCRTtBRjI3OzExMDEgMTE2OCAxMUJFOworQUYyODtBRjI4OzExMDEgMTE2OCAxMUJGO0FGMjg7MTEwMSAxMTY4IDExQkY7CitBRjI5O0FGMjk7MTEwMSAxMTY4IDExQzA7QUYyOTsxMTAxIDExNjggMTFDMDsKK0FGMkE7QUYyQTsxMTAxIDExNjggMTFDMTtBRjJBOzExMDEgMTE2OCAxMUMxOworQUYyQjtBRjJCOzExMDEgMTE2OCAxMUMyO0FGMkI7MTEwMSAxMTY4IDExQzI7CitBRjJDO0FGMkM7MTEwMSAxMTY5O0FGMkM7MTEwMSAxMTY5OworQUYyRDtBRjJEOzExMDEgMTE2OSAxMUE4O0FGMkQ7MTEwMSAxMTY5IDExQTg7CitBRjJFO0FGMkU7MTEwMSAxMTY5IDExQTk7QUYyRTsxMTAxIDExNjkgMTFBOTsKK0FGMkY7QUYyRjsxMTAxIDExNjkgMTFBQTtBRjJGOzExMDEgMTE2OSAxMUFBOworQUYzMDtBRjMwOzExMDEgMTE2OSAxMUFCO0FGMzA7MTEwMSAxMTY5IDExQUI7CitBRjMxO0FGMzE7MTEwMSAxMTY5IDExQUM7QUYzMTsxMTAxIDExNjkgMTFBQzsKK0FGMzI7QUYzMjsxMTAxIDExNjkgMTFBRDtBRjMyOzExMDEgMTE2OSAxMUFEOworQUYzMztBRjMzOzExMDEgMTE2OSAxMUFFO0FGMzM7MTEwMSAxMTY5IDExQUU7CitBRjM0O0FGMzQ7MTEwMSAxMTY5IDExQUY7QUYzNDsxMTAxIDExNjkgMTFBRjsKK0FGMzU7QUYzNTsxMTAxIDExNjkgMTFCMDtBRjM1OzExMDEgMTE2OSAxMUIwOworQUYzNjtBRjM2OzExMDEgMTE2OSAxMUIxO0FGMzY7MTEwMSAxMTY5IDExQjE7CitBRjM3O0FGMzc7MTEwMSAxMTY5IDExQjI7QUYzNzsxMTAxIDExNjkgMTFCMjsKK0FGMzg7QUYzODsxMTAxIDExNjkgMTFCMztBRjM4OzExMDEgMTE2OSAxMUIzOworQUYzOTtBRjM5OzExMDEgMTE2OSAxMUI0O0FGMzk7MTEwMSAxMTY5IDExQjQ7CitBRjNBO0FGM0E7MTEwMSAxMTY5IDExQjU7QUYzQTsxMTAxIDExNjkgMTFCNTsKK0FGM0I7QUYzQjsxMTAxIDExNjkgMTFCNjtBRjNCOzExMDEgMTE2OSAxMUI2OworQUYzQztBRjNDOzExMDEgMTE2OSAxMUI3O0FGM0M7MTEwMSAxMTY5IDExQjc7CitBRjNEO0FGM0Q7MTEwMSAxMTY5IDExQjg7QUYzRDsxMTAxIDExNjkgMTFCODsKK0FGM0U7QUYzRTsxMTAxIDExNjkgMTFCOTtBRjNFOzExMDEgMTE2OSAxMUI5OworQUYzRjtBRjNGOzExMDEgMTE2OSAxMUJBO0FGM0Y7MTEwMSAxMTY5IDExQkE7CitBRjQwO0FGNDA7MTEwMSAxMTY5IDExQkI7QUY0MDsxMTAxIDExNjkgMTFCQjsKK0FGNDE7QUY0MTsxMTAxIDExNjkgMTFCQztBRjQxOzExMDEgMTE2OSAxMUJDOworQUY0MjtBRjQyOzExMDEgMTE2OSAxMUJEO0FGNDI7MTEwMSAxMTY5IDExQkQ7CitBRjQzO0FGNDM7MTEwMSAxMTY5IDExQkU7QUY0MzsxMTAxIDExNjkgMTFCRTsKK0FGNDQ7QUY0NDsxMTAxIDExNjkgMTFCRjtBRjQ0OzExMDEgMTE2OSAxMUJGOworQUY0NTtBRjQ1OzExMDEgMTE2OSAxMUMwO0FGNDU7MTEwMSAxMTY5IDExQzA7CitBRjQ2O0FGNDY7MTEwMSAxMTY5IDExQzE7QUY0NjsxMTAxIDExNjkgMTFDMTsKK0FGNDc7QUY0NzsxMTAxIDExNjkgMTFDMjtBRjQ3OzExMDEgMTE2OSAxMUMyOworQUY0ODtBRjQ4OzExMDEgMTE2QTtBRjQ4OzExMDEgMTE2QTsKK0FGNDk7QUY0OTsxMTAxIDExNkEgMTFBODtBRjQ5OzExMDEgMTE2QSAxMUE4OworQUY0QTtBRjRBOzExMDEgMTE2QSAxMUE5O0FGNEE7MTEwMSAxMTZBIDExQTk7CitBRjRCO0FGNEI7MTEwMSAxMTZBIDExQUE7QUY0QjsxMTAxIDExNkEgMTFBQTsKK0FGNEM7QUY0QzsxMTAxIDExNkEgMTFBQjtBRjRDOzExMDEgMTE2QSAxMUFCOworQUY0RDtBRjREOzExMDEgMTE2QSAxMUFDO0FGNEQ7MTEwMSAxMTZBIDExQUM7CitBRjRFO0FGNEU7MTEwMSAxMTZBIDExQUQ7QUY0RTsxMTAxIDExNkEgMTFBRDsKK0FGNEY7QUY0RjsxMTAxIDExNkEgMTFBRTtBRjRGOzExMDEgMTE2QSAxMUFFOworQUY1MDtBRjUwOzExMDEgMTE2QSAxMUFGO0FGNTA7MTEwMSAxMTZBIDExQUY7CitBRjUxO0FGNTE7MTEwMSAxMTZBIDExQjA7QUY1MTsxMTAxIDExNkEgMTFCMDsKK0FGNTI7QUY1MjsxMTAxIDExNkEgMTFCMTtBRjUyOzExMDEgMTE2QSAxMUIxOworQUY1MztBRjUzOzExMDEgMTE2QSAxMUIyO0FGNTM7MTEwMSAxMTZBIDExQjI7CitBRjU0O0FGNTQ7MTEwMSAxMTZBIDExQjM7QUY1NDsxMTAxIDExNkEgMTFCMzsKK0FGNTU7QUY1NTsxMTAxIDExNkEgMTFCNDtBRjU1OzExMDEgMTE2QSAxMUI0OworQUY1NjtBRjU2OzExMDEgMTE2QSAxMUI1O0FGNTY7MTEwMSAxMTZBIDExQjU7CitBRjU3O0FGNTc7MTEwMSAxMTZBIDExQjY7QUY1NzsxMTAxIDExNkEgMTFCNjsKK0FGNTg7QUY1ODsxMTAxIDExNkEgMTFCNztBRjU4OzExMDEgMTE2QSAxMUI3OworQUY1OTtBRjU5OzExMDEgMTE2QSAxMUI4O0FGNTk7MTEwMSAxMTZBIDExQjg7CitBRjVBO0FGNUE7MTEwMSAxMTZBIDExQjk7QUY1QTsxMTAxIDExNkEgMTFCOTsKK0FGNUI7QUY1QjsxMTAxIDExNkEgMTFCQTtBRjVCOzExMDEgMTE2QSAxMUJBOworQUY1QztBRjVDOzExMDEgMTE2QSAxMUJCO0FGNUM7MTEwMSAxMTZBIDExQkI7CitBRjVEO0FGNUQ7MTEwMSAxMTZBIDExQkM7QUY1RDsxMTAxIDExNkEgMTFCQzsKK0FGNUU7QUY1RTsxMTAxIDExNkEgMTFCRDtBRjVFOzExMDEgMTE2QSAxMUJEOworQUY1RjtBRjVGOzExMDEgMTE2QSAxMUJFO0FGNUY7MTEwMSAxMTZBIDExQkU7CitBRjYwO0FGNjA7MTEwMSAxMTZBIDExQkY7QUY2MDsxMTAxIDExNkEgMTFCRjsKK0FGNjE7QUY2MTsxMTAxIDExNkEgMTFDMDtBRjYxOzExMDEgMTE2QSAxMUMwOworQUY2MjtBRjYyOzExMDEgMTE2QSAxMUMxO0FGNjI7MTEwMSAxMTZBIDExQzE7CitBRjYzO0FGNjM7MTEwMSAxMTZBIDExQzI7QUY2MzsxMTAxIDExNkEgMTFDMjsKK0FGNjQ7QUY2NDsxMTAxIDExNkI7QUY2NDsxMTAxIDExNkI7CitBRjY1O0FGNjU7MTEwMSAxMTZCIDExQTg7QUY2NTsxMTAxIDExNkIgMTFBODsKK0FGNjY7QUY2NjsxMTAxIDExNkIgMTFBOTtBRjY2OzExMDEgMTE2QiAxMUE5OworQUY2NztBRjY3OzExMDEgMTE2QiAxMUFBO0FGNjc7MTEwMSAxMTZCIDExQUE7CitBRjY4O0FGNjg7MTEwMSAxMTZCIDExQUI7QUY2ODsxMTAxIDExNkIgMTFBQjsKK0FGNjk7QUY2OTsxMTAxIDExNkIgMTFBQztBRjY5OzExMDEgMTE2QiAxMUFDOworQUY2QTtBRjZBOzExMDEgMTE2QiAxMUFEO0FGNkE7MTEwMSAxMTZCIDExQUQ7CitBRjZCO0FGNkI7MTEwMSAxMTZCIDExQUU7QUY2QjsxMTAxIDExNkIgMTFBRTsKK0FGNkM7QUY2QzsxMTAxIDExNkIgMTFBRjtBRjZDOzExMDEgMTE2QiAxMUFGOworQUY2RDtBRjZEOzExMDEgMTE2QiAxMUIwO0FGNkQ7MTEwMSAxMTZCIDExQjA7CitBRjZFO0FGNkU7MTEwMSAxMTZCIDExQjE7QUY2RTsxMTAxIDExNkIgMTFCMTsKK0FGNkY7QUY2RjsxMTAxIDExNkIgMTFCMjtBRjZGOzExMDEgMTE2QiAxMUIyOworQUY3MDtBRjcwOzExMDEgMTE2QiAxMUIzO0FGNzA7MTEwMSAxMTZCIDExQjM7CitBRjcxO0FGNzE7MTEwMSAxMTZCIDExQjQ7QUY3MTsxMTAxIDExNkIgMTFCNDsKK0FGNzI7QUY3MjsxMTAxIDExNkIgMTFCNTtBRjcyOzExMDEgMTE2QiAxMUI1OworQUY3MztBRjczOzExMDEgMTE2QiAxMUI2O0FGNzM7MTEwMSAxMTZCIDExQjY7CitBRjc0O0FGNzQ7MTEwMSAxMTZCIDExQjc7QUY3NDsxMTAxIDExNkIgMTFCNzsKK0FGNzU7QUY3NTsxMTAxIDExNkIgMTFCODtBRjc1OzExMDEgMTE2QiAxMUI4OworQUY3NjtBRjc2OzExMDEgMTE2QiAxMUI5O0FGNzY7MTEwMSAxMTZCIDExQjk7CitBRjc3O0FGNzc7MTEwMSAxMTZCIDExQkE7QUY3NzsxMTAxIDExNkIgMTFCQTsKK0FGNzg7QUY3ODsxMTAxIDExNkIgMTFCQjtBRjc4OzExMDEgMTE2QiAxMUJCOworQUY3OTtBRjc5OzExMDEgMTE2QiAxMUJDO0FGNzk7MTEwMSAxMTZCIDExQkM7CitBRjdBO0FGN0E7MTEwMSAxMTZCIDExQkQ7QUY3QTsxMTAxIDExNkIgMTFCRDsKK0FGN0I7QUY3QjsxMTAxIDExNkIgMTFCRTtBRjdCOzExMDEgMTE2QiAxMUJFOworQUY3QztBRjdDOzExMDEgMTE2QiAxMUJGO0FGN0M7MTEwMSAxMTZCIDExQkY7CitBRjdEO0FGN0Q7MTEwMSAxMTZCIDExQzA7QUY3RDsxMTAxIDExNkIgMTFDMDsKK0FGN0U7QUY3RTsxMTAxIDExNkIgMTFDMTtBRjdFOzExMDEgMTE2QiAxMUMxOworQUY3RjtBRjdGOzExMDEgMTE2QiAxMUMyO0FGN0Y7MTEwMSAxMTZCIDExQzI7CitBRjgwO0FGODA7MTEwMSAxMTZDO0FGODA7MTEwMSAxMTZDOworQUY4MTtBRjgxOzExMDEgMTE2QyAxMUE4O0FGODE7MTEwMSAxMTZDIDExQTg7CitBRjgyO0FGODI7MTEwMSAxMTZDIDExQTk7QUY4MjsxMTAxIDExNkMgMTFBOTsKK0FGODM7QUY4MzsxMTAxIDExNkMgMTFBQTtBRjgzOzExMDEgMTE2QyAxMUFBOworQUY4NDtBRjg0OzExMDEgMTE2QyAxMUFCO0FGODQ7MTEwMSAxMTZDIDExQUI7CitBRjg1O0FGODU7MTEwMSAxMTZDIDExQUM7QUY4NTsxMTAxIDExNkMgMTFBQzsKK0FGODY7QUY4NjsxMTAxIDExNkMgMTFBRDtBRjg2OzExMDEgMTE2QyAxMUFEOworQUY4NztBRjg3OzExMDEgMTE2QyAxMUFFO0FGODc7MTEwMSAxMTZDIDExQUU7CitBRjg4O0FGODg7MTEwMSAxMTZDIDExQUY7QUY4ODsxMTAxIDExNkMgMTFBRjsKK0FGODk7QUY4OTsxMTAxIDExNkMgMTFCMDtBRjg5OzExMDEgMTE2QyAxMUIwOworQUY4QTtBRjhBOzExMDEgMTE2QyAxMUIxO0FGOEE7MTEwMSAxMTZDIDExQjE7CitBRjhCO0FGOEI7MTEwMSAxMTZDIDExQjI7QUY4QjsxMTAxIDExNkMgMTFCMjsKK0FGOEM7QUY4QzsxMTAxIDExNkMgMTFCMztBRjhDOzExMDEgMTE2QyAxMUIzOworQUY4RDtBRjhEOzExMDEgMTE2QyAxMUI0O0FGOEQ7MTEwMSAxMTZDIDExQjQ7CitBRjhFO0FGOEU7MTEwMSAxMTZDIDExQjU7QUY4RTsxMTAxIDExNkMgMTFCNTsKK0FGOEY7QUY4RjsxMTAxIDExNkMgMTFCNjtBRjhGOzExMDEgMTE2QyAxMUI2OworQUY5MDtBRjkwOzExMDEgMTE2QyAxMUI3O0FGOTA7MTEwMSAxMTZDIDExQjc7CitBRjkxO0FGOTE7MTEwMSAxMTZDIDExQjg7QUY5MTsxMTAxIDExNkMgMTFCODsKK0FGOTI7QUY5MjsxMTAxIDExNkMgMTFCOTtBRjkyOzExMDEgMTE2QyAxMUI5OworQUY5MztBRjkzOzExMDEgMTE2QyAxMUJBO0FGOTM7MTEwMSAxMTZDIDExQkE7CitBRjk0O0FGOTQ7MTEwMSAxMTZDIDExQkI7QUY5NDsxMTAxIDExNkMgMTFCQjsKK0FGOTU7QUY5NTsxMTAxIDExNkMgMTFCQztBRjk1OzExMDEgMTE2QyAxMUJDOworQUY5NjtBRjk2OzExMDEgMTE2QyAxMUJEO0FGOTY7MTEwMSAxMTZDIDExQkQ7CitBRjk3O0FGOTc7MTEwMSAxMTZDIDExQkU7QUY5NzsxMTAxIDExNkMgMTFCRTsKK0FGOTg7QUY5ODsxMTAxIDExNkMgMTFCRjtBRjk4OzExMDEgMTE2QyAxMUJGOworQUY5OTtBRjk5OzExMDEgMTE2QyAxMUMwO0FGOTk7MTEwMSAxMTZDIDExQzA7CitBRjlBO0FGOUE7MTEwMSAxMTZDIDExQzE7QUY5QTsxMTAxIDExNkMgMTFDMTsKK0FGOUI7QUY5QjsxMTAxIDExNkMgMTFDMjtBRjlCOzExMDEgMTE2QyAxMUMyOworQUY5QztBRjlDOzExMDEgMTE2RDtBRjlDOzExMDEgMTE2RDsKK0FGOUQ7QUY5RDsxMTAxIDExNkQgMTFBODtBRjlEOzExMDEgMTE2RCAxMUE4OworQUY5RTtBRjlFOzExMDEgMTE2RCAxMUE5O0FGOUU7MTEwMSAxMTZEIDExQTk7CitBRjlGO0FGOUY7MTEwMSAxMTZEIDExQUE7QUY5RjsxMTAxIDExNkQgMTFBQTsKK0FGQTA7QUZBMDsxMTAxIDExNkQgMTFBQjtBRkEwOzExMDEgMTE2RCAxMUFCOworQUZBMTtBRkExOzExMDEgMTE2RCAxMUFDO0FGQTE7MTEwMSAxMTZEIDExQUM7CitBRkEyO0FGQTI7MTEwMSAxMTZEIDExQUQ7QUZBMjsxMTAxIDExNkQgMTFBRDsKK0FGQTM7QUZBMzsxMTAxIDExNkQgMTFBRTtBRkEzOzExMDEgMTE2RCAxMUFFOworQUZBNDtBRkE0OzExMDEgMTE2RCAxMUFGO0FGQTQ7MTEwMSAxMTZEIDExQUY7CitBRkE1O0FGQTU7MTEwMSAxMTZEIDExQjA7QUZBNTsxMTAxIDExNkQgMTFCMDsKK0FGQTY7QUZBNjsxMTAxIDExNkQgMTFCMTtBRkE2OzExMDEgMTE2RCAxMUIxOworQUZBNztBRkE3OzExMDEgMTE2RCAxMUIyO0FGQTc7MTEwMSAxMTZEIDExQjI7CitBRkE4O0FGQTg7MTEwMSAxMTZEIDExQjM7QUZBODsxMTAxIDExNkQgMTFCMzsKK0FGQTk7QUZBOTsxMTAxIDExNkQgMTFCNDtBRkE5OzExMDEgMTE2RCAxMUI0OworQUZBQTtBRkFBOzExMDEgMTE2RCAxMUI1O0FGQUE7MTEwMSAxMTZEIDExQjU7CitBRkFCO0FGQUI7MTEwMSAxMTZEIDExQjY7QUZBQjsxMTAxIDExNkQgMTFCNjsKK0FGQUM7QUZBQzsxMTAxIDExNkQgMTFCNztBRkFDOzExMDEgMTE2RCAxMUI3OworQUZBRDtBRkFEOzExMDEgMTE2RCAxMUI4O0FGQUQ7MTEwMSAxMTZEIDExQjg7CitBRkFFO0FGQUU7MTEwMSAxMTZEIDExQjk7QUZBRTsxMTAxIDExNkQgMTFCOTsKK0FGQUY7QUZBRjsxMTAxIDExNkQgMTFCQTtBRkFGOzExMDEgMTE2RCAxMUJBOworQUZCMDtBRkIwOzExMDEgMTE2RCAxMUJCO0FGQjA7MTEwMSAxMTZEIDExQkI7CitBRkIxO0FGQjE7MTEwMSAxMTZEIDExQkM7QUZCMTsxMTAxIDExNkQgMTFCQzsKK0FGQjI7QUZCMjsxMTAxIDExNkQgMTFCRDtBRkIyOzExMDEgMTE2RCAxMUJEOworQUZCMztBRkIzOzExMDEgMTE2RCAxMUJFO0FGQjM7MTEwMSAxMTZEIDExQkU7CitBRkI0O0FGQjQ7MTEwMSAxMTZEIDExQkY7QUZCNDsxMTAxIDExNkQgMTFCRjsKK0FGQjU7QUZCNTsxMTAxIDExNkQgMTFDMDtBRkI1OzExMDEgMTE2RCAxMUMwOworQUZCNjtBRkI2OzExMDEgMTE2RCAxMUMxO0FGQjY7MTEwMSAxMTZEIDExQzE7CitBRkI3O0FGQjc7MTEwMSAxMTZEIDExQzI7QUZCNzsxMTAxIDExNkQgMTFDMjsKK0FGQjg7QUZCODsxMTAxIDExNkU7QUZCODsxMTAxIDExNkU7CitBRkI5O0FGQjk7MTEwMSAxMTZFIDExQTg7QUZCOTsxMTAxIDExNkUgMTFBODsKK0FGQkE7QUZCQTsxMTAxIDExNkUgMTFBOTtBRkJBOzExMDEgMTE2RSAxMUE5OworQUZCQjtBRkJCOzExMDEgMTE2RSAxMUFBO0FGQkI7MTEwMSAxMTZFIDExQUE7CitBRkJDO0FGQkM7MTEwMSAxMTZFIDExQUI7QUZCQzsxMTAxIDExNkUgMTFBQjsKK0FGQkQ7QUZCRDsxMTAxIDExNkUgMTFBQztBRkJEOzExMDEgMTE2RSAxMUFDOworQUZCRTtBRkJFOzExMDEgMTE2RSAxMUFEO0FGQkU7MTEwMSAxMTZFIDExQUQ7CitBRkJGO0FGQkY7MTEwMSAxMTZFIDExQUU7QUZCRjsxMTAxIDExNkUgMTFBRTsKK0FGQzA7QUZDMDsxMTAxIDExNkUgMTFBRjtBRkMwOzExMDEgMTE2RSAxMUFGOworQUZDMTtBRkMxOzExMDEgMTE2RSAxMUIwO0FGQzE7MTEwMSAxMTZFIDExQjA7CitBRkMyO0FGQzI7MTEwMSAxMTZFIDExQjE7QUZDMjsxMTAxIDExNkUgMTFCMTsKK0FGQzM7QUZDMzsxMTAxIDExNkUgMTFCMjtBRkMzOzExMDEgMTE2RSAxMUIyOworQUZDNDtBRkM0OzExMDEgMTE2RSAxMUIzO0FGQzQ7MTEwMSAxMTZFIDExQjM7CitBRkM1O0FGQzU7MTEwMSAxMTZFIDExQjQ7QUZDNTsxMTAxIDExNkUgMTFCNDsKK0FGQzY7QUZDNjsxMTAxIDExNkUgMTFCNTtBRkM2OzExMDEgMTE2RSAxMUI1OworQUZDNztBRkM3OzExMDEgMTE2RSAxMUI2O0FGQzc7MTEwMSAxMTZFIDExQjY7CitBRkM4O0FGQzg7MTEwMSAxMTZFIDExQjc7QUZDODsxMTAxIDExNkUgMTFCNzsKK0FGQzk7QUZDOTsxMTAxIDExNkUgMTFCODtBRkM5OzExMDEgMTE2RSAxMUI4OworQUZDQTtBRkNBOzExMDEgMTE2RSAxMUI5O0FGQ0E7MTEwMSAxMTZFIDExQjk7CitBRkNCO0FGQ0I7MTEwMSAxMTZFIDExQkE7QUZDQjsxMTAxIDExNkUgMTFCQTsKK0FGQ0M7QUZDQzsxMTAxIDExNkUgMTFCQjtBRkNDOzExMDEgMTE2RSAxMUJCOworQUZDRDtBRkNEOzExMDEgMTE2RSAxMUJDO0FGQ0Q7MTEwMSAxMTZFIDExQkM7CitBRkNFO0FGQ0U7MTEwMSAxMTZFIDExQkQ7QUZDRTsxMTAxIDExNkUgMTFCRDsKK0FGQ0Y7QUZDRjsxMTAxIDExNkUgMTFCRTtBRkNGOzExMDEgMTE2RSAxMUJFOworQUZEMDtBRkQwOzExMDEgMTE2RSAxMUJGO0FGRDA7MTEwMSAxMTZFIDExQkY7CitBRkQxO0FGRDE7MTEwMSAxMTZFIDExQzA7QUZEMTsxMTAxIDExNkUgMTFDMDsKK0FGRDI7QUZEMjsxMTAxIDExNkUgMTFDMTtBRkQyOzExMDEgMTE2RSAxMUMxOworQUZEMztBRkQzOzExMDEgMTE2RSAxMUMyO0FGRDM7MTEwMSAxMTZFIDExQzI7CitBRkQ0O0FGRDQ7MTEwMSAxMTZGO0FGRDQ7MTEwMSAxMTZGOworQUZENTtBRkQ1OzExMDEgMTE2RiAxMUE4O0FGRDU7MTEwMSAxMTZGIDExQTg7CitBRkQ2O0FGRDY7MTEwMSAxMTZGIDExQTk7QUZENjsxMTAxIDExNkYgMTFBOTsKK0FGRDc7QUZENzsxMTAxIDExNkYgMTFBQTtBRkQ3OzExMDEgMTE2RiAxMUFBOworQUZEODtBRkQ4OzExMDEgMTE2RiAxMUFCO0FGRDg7MTEwMSAxMTZGIDExQUI7CitBRkQ5O0FGRDk7MTEwMSAxMTZGIDExQUM7QUZEOTsxMTAxIDExNkYgMTFBQzsKK0FGREE7QUZEQTsxMTAxIDExNkYgMTFBRDtBRkRBOzExMDEgMTE2RiAxMUFEOworQUZEQjtBRkRCOzExMDEgMTE2RiAxMUFFO0FGREI7MTEwMSAxMTZGIDExQUU7CitBRkRDO0FGREM7MTEwMSAxMTZGIDExQUY7QUZEQzsxMTAxIDExNkYgMTFBRjsKK0FGREQ7QUZERDsxMTAxIDExNkYgMTFCMDtBRkREOzExMDEgMTE2RiAxMUIwOworQUZERTtBRkRFOzExMDEgMTE2RiAxMUIxO0FGREU7MTEwMSAxMTZGIDExQjE7CitBRkRGO0FGREY7MTEwMSAxMTZGIDExQjI7QUZERjsxMTAxIDExNkYgMTFCMjsKK0FGRTA7QUZFMDsxMTAxIDExNkYgMTFCMztBRkUwOzExMDEgMTE2RiAxMUIzOworQUZFMTtBRkUxOzExMDEgMTE2RiAxMUI0O0FGRTE7MTEwMSAxMTZGIDExQjQ7CitBRkUyO0FGRTI7MTEwMSAxMTZGIDExQjU7QUZFMjsxMTAxIDExNkYgMTFCNTsKK0FGRTM7QUZFMzsxMTAxIDExNkYgMTFCNjtBRkUzOzExMDEgMTE2RiAxMUI2OworQUZFNDtBRkU0OzExMDEgMTE2RiAxMUI3O0FGRTQ7MTEwMSAxMTZGIDExQjc7CitBRkU1O0FGRTU7MTEwMSAxMTZGIDExQjg7QUZFNTsxMTAxIDExNkYgMTFCODsKK0FGRTY7QUZFNjsxMTAxIDExNkYgMTFCOTtBRkU2OzExMDEgMTE2RiAxMUI5OworQUZFNztBRkU3OzExMDEgMTE2RiAxMUJBO0FGRTc7MTEwMSAxMTZGIDExQkE7CitBRkU4O0FGRTg7MTEwMSAxMTZGIDExQkI7QUZFODsxMTAxIDExNkYgMTFCQjsKK0FGRTk7QUZFOTsxMTAxIDExNkYgMTFCQztBRkU5OzExMDEgMTE2RiAxMUJDOworQUZFQTtBRkVBOzExMDEgMTE2RiAxMUJEO0FGRUE7MTEwMSAxMTZGIDExQkQ7CitBRkVCO0FGRUI7MTEwMSAxMTZGIDExQkU7QUZFQjsxMTAxIDExNkYgMTFCRTsKK0FGRUM7QUZFQzsxMTAxIDExNkYgMTFCRjtBRkVDOzExMDEgMTE2RiAxMUJGOworQUZFRDtBRkVEOzExMDEgMTE2RiAxMUMwO0FGRUQ7MTEwMSAxMTZGIDExQzA7CitBRkVFO0FGRUU7MTEwMSAxMTZGIDExQzE7QUZFRTsxMTAxIDExNkYgMTFDMTsKK0FGRUY7QUZFRjsxMTAxIDExNkYgMTFDMjtBRkVGOzExMDEgMTE2RiAxMUMyOworQUZGMDtBRkYwOzExMDEgMTE3MDtBRkYwOzExMDEgMTE3MDsKK0FGRjE7QUZGMTsxMTAxIDExNzAgMTFBODtBRkYxOzExMDEgMTE3MCAxMUE4OworQUZGMjtBRkYyOzExMDEgMTE3MCAxMUE5O0FGRjI7MTEwMSAxMTcwIDExQTk7CitBRkYzO0FGRjM7MTEwMSAxMTcwIDExQUE7QUZGMzsxMTAxIDExNzAgMTFBQTsKK0FGRjQ7QUZGNDsxMTAxIDExNzAgMTFBQjtBRkY0OzExMDEgMTE3MCAxMUFCOworQUZGNTtBRkY1OzExMDEgMTE3MCAxMUFDO0FGRjU7MTEwMSAxMTcwIDExQUM7CitBRkY2O0FGRjY7MTEwMSAxMTcwIDExQUQ7QUZGNjsxMTAxIDExNzAgMTFBRDsKK0FGRjc7QUZGNzsxMTAxIDExNzAgMTFBRTtBRkY3OzExMDEgMTE3MCAxMUFFOworQUZGODtBRkY4OzExMDEgMTE3MCAxMUFGO0FGRjg7MTEwMSAxMTcwIDExQUY7CitBRkY5O0FGRjk7MTEwMSAxMTcwIDExQjA7QUZGOTsxMTAxIDExNzAgMTFCMDsKK0FGRkE7QUZGQTsxMTAxIDExNzAgMTFCMTtBRkZBOzExMDEgMTE3MCAxMUIxOworQUZGQjtBRkZCOzExMDEgMTE3MCAxMUIyO0FGRkI7MTEwMSAxMTcwIDExQjI7CitBRkZDO0FGRkM7MTEwMSAxMTcwIDExQjM7QUZGQzsxMTAxIDExNzAgMTFCMzsKK0FGRkQ7QUZGRDsxMTAxIDExNzAgMTFCNDtBRkZEOzExMDEgMTE3MCAxMUI0OworQUZGRTtBRkZFOzExMDEgMTE3MCAxMUI1O0FGRkU7MTEwMSAxMTcwIDExQjU7CitBRkZGO0FGRkY7MTEwMSAxMTcwIDExQjY7QUZGRjsxMTAxIDExNzAgMTFCNjsKK0IwMDA7QjAwMDsxMTAxIDExNzAgMTFCNztCMDAwOzExMDEgMTE3MCAxMUI3OworQjAwMTtCMDAxOzExMDEgMTE3MCAxMUI4O0IwMDE7MTEwMSAxMTcwIDExQjg7CitCMDAyO0IwMDI7MTEwMSAxMTcwIDExQjk7QjAwMjsxMTAxIDExNzAgMTFCOTsKK0IwMDM7QjAwMzsxMTAxIDExNzAgMTFCQTtCMDAzOzExMDEgMTE3MCAxMUJBOworQjAwNDtCMDA0OzExMDEgMTE3MCAxMUJCO0IwMDQ7MTEwMSAxMTcwIDExQkI7CitCMDA1O0IwMDU7MTEwMSAxMTcwIDExQkM7QjAwNTsxMTAxIDExNzAgMTFCQzsKK0IwMDY7QjAwNjsxMTAxIDExNzAgMTFCRDtCMDA2OzExMDEgMTE3MCAxMUJEOworQjAwNztCMDA3OzExMDEgMTE3MCAxMUJFO0IwMDc7MTEwMSAxMTcwIDExQkU7CitCMDA4O0IwMDg7MTEwMSAxMTcwIDExQkY7QjAwODsxMTAxIDExNzAgMTFCRjsKK0IwMDk7QjAwOTsxMTAxIDExNzAgMTFDMDtCMDA5OzExMDEgMTE3MCAxMUMwOworQjAwQTtCMDBBOzExMDEgMTE3MCAxMUMxO0IwMEE7MTEwMSAxMTcwIDExQzE7CitCMDBCO0IwMEI7MTEwMSAxMTcwIDExQzI7QjAwQjsxMTAxIDExNzAgMTFDMjsKK0IwMEM7QjAwQzsxMTAxIDExNzE7QjAwQzsxMTAxIDExNzE7CitCMDBEO0IwMEQ7MTEwMSAxMTcxIDExQTg7QjAwRDsxMTAxIDExNzEgMTFBODsKK0IwMEU7QjAwRTsxMTAxIDExNzEgMTFBOTtCMDBFOzExMDEgMTE3MSAxMUE5OworQjAwRjtCMDBGOzExMDEgMTE3MSAxMUFBO0IwMEY7MTEwMSAxMTcxIDExQUE7CitCMDEwO0IwMTA7MTEwMSAxMTcxIDExQUI7QjAxMDsxMTAxIDExNzEgMTFBQjsKK0IwMTE7QjAxMTsxMTAxIDExNzEgMTFBQztCMDExOzExMDEgMTE3MSAxMUFDOworQjAxMjtCMDEyOzExMDEgMTE3MSAxMUFEO0IwMTI7MTEwMSAxMTcxIDExQUQ7CitCMDEzO0IwMTM7MTEwMSAxMTcxIDExQUU7QjAxMzsxMTAxIDExNzEgMTFBRTsKK0IwMTQ7QjAxNDsxMTAxIDExNzEgMTFBRjtCMDE0OzExMDEgMTE3MSAxMUFGOworQjAxNTtCMDE1OzExMDEgMTE3MSAxMUIwO0IwMTU7MTEwMSAxMTcxIDExQjA7CitCMDE2O0IwMTY7MTEwMSAxMTcxIDExQjE7QjAxNjsxMTAxIDExNzEgMTFCMTsKK0IwMTc7QjAxNzsxMTAxIDExNzEgMTFCMjtCMDE3OzExMDEgMTE3MSAxMUIyOworQjAxODtCMDE4OzExMDEgMTE3MSAxMUIzO0IwMTg7MTEwMSAxMTcxIDExQjM7CitCMDE5O0IwMTk7MTEwMSAxMTcxIDExQjQ7QjAxOTsxMTAxIDExNzEgMTFCNDsKK0IwMUE7QjAxQTsxMTAxIDExNzEgMTFCNTtCMDFBOzExMDEgMTE3MSAxMUI1OworQjAxQjtCMDFCOzExMDEgMTE3MSAxMUI2O0IwMUI7MTEwMSAxMTcxIDExQjY7CitCMDFDO0IwMUM7MTEwMSAxMTcxIDExQjc7QjAxQzsxMTAxIDExNzEgMTFCNzsKK0IwMUQ7QjAxRDsxMTAxIDExNzEgMTFCODtCMDFEOzExMDEgMTE3MSAxMUI4OworQjAxRTtCMDFFOzExMDEgMTE3MSAxMUI5O0IwMUU7MTEwMSAxMTcxIDExQjk7CitCMDFGO0IwMUY7MTEwMSAxMTcxIDExQkE7QjAxRjsxMTAxIDExNzEgMTFCQTsKK0IwMjA7QjAyMDsxMTAxIDExNzEgMTFCQjtCMDIwOzExMDEgMTE3MSAxMUJCOworQjAyMTtCMDIxOzExMDEgMTE3MSAxMUJDO0IwMjE7MTEwMSAxMTcxIDExQkM7CitCMDIyO0IwMjI7MTEwMSAxMTcxIDExQkQ7QjAyMjsxMTAxIDExNzEgMTFCRDsKK0IwMjM7QjAyMzsxMTAxIDExNzEgMTFCRTtCMDIzOzExMDEgMTE3MSAxMUJFOworQjAyNDtCMDI0OzExMDEgMTE3MSAxMUJGO0IwMjQ7MTEwMSAxMTcxIDExQkY7CitCMDI1O0IwMjU7MTEwMSAxMTcxIDExQzA7QjAyNTsxMTAxIDExNzEgMTFDMDsKK0IwMjY7QjAyNjsxMTAxIDExNzEgMTFDMTtCMDI2OzExMDEgMTE3MSAxMUMxOworQjAyNztCMDI3OzExMDEgMTE3MSAxMUMyO0IwMjc7MTEwMSAxMTcxIDExQzI7CitCMDI4O0IwMjg7MTEwMSAxMTcyO0IwMjg7MTEwMSAxMTcyOworQjAyOTtCMDI5OzExMDEgMTE3MiAxMUE4O0IwMjk7MTEwMSAxMTcyIDExQTg7CitCMDJBO0IwMkE7MTEwMSAxMTcyIDExQTk7QjAyQTsxMTAxIDExNzIgMTFBOTsKK0IwMkI7QjAyQjsxMTAxIDExNzIgMTFBQTtCMDJCOzExMDEgMTE3MiAxMUFBOworQjAyQztCMDJDOzExMDEgMTE3MiAxMUFCO0IwMkM7MTEwMSAxMTcyIDExQUI7CitCMDJEO0IwMkQ7MTEwMSAxMTcyIDExQUM7QjAyRDsxMTAxIDExNzIgMTFBQzsKK0IwMkU7QjAyRTsxMTAxIDExNzIgMTFBRDtCMDJFOzExMDEgMTE3MiAxMUFEOworQjAyRjtCMDJGOzExMDEgMTE3MiAxMUFFO0IwMkY7MTEwMSAxMTcyIDExQUU7CitCMDMwO0IwMzA7MTEwMSAxMTcyIDExQUY7QjAzMDsxMTAxIDExNzIgMTFBRjsKK0IwMzE7QjAzMTsxMTAxIDExNzIgMTFCMDtCMDMxOzExMDEgMTE3MiAxMUIwOworQjAzMjtCMDMyOzExMDEgMTE3MiAxMUIxO0IwMzI7MTEwMSAxMTcyIDExQjE7CitCMDMzO0IwMzM7MTEwMSAxMTcyIDExQjI7QjAzMzsxMTAxIDExNzIgMTFCMjsKK0IwMzQ7QjAzNDsxMTAxIDExNzIgMTFCMztCMDM0OzExMDEgMTE3MiAxMUIzOworQjAzNTtCMDM1OzExMDEgMTE3MiAxMUI0O0IwMzU7MTEwMSAxMTcyIDExQjQ7CitCMDM2O0IwMzY7MTEwMSAxMTcyIDExQjU7QjAzNjsxMTAxIDExNzIgMTFCNTsKK0IwMzc7QjAzNzsxMTAxIDExNzIgMTFCNjtCMDM3OzExMDEgMTE3MiAxMUI2OworQjAzODtCMDM4OzExMDEgMTE3MiAxMUI3O0IwMzg7MTEwMSAxMTcyIDExQjc7CitCMDM5O0IwMzk7MTEwMSAxMTcyIDExQjg7QjAzOTsxMTAxIDExNzIgMTFCODsKK0IwM0E7QjAzQTsxMTAxIDExNzIgMTFCOTtCMDNBOzExMDEgMTE3MiAxMUI5OworQjAzQjtCMDNCOzExMDEgMTE3MiAxMUJBO0IwM0I7MTEwMSAxMTcyIDExQkE7CitCMDNDO0IwM0M7MTEwMSAxMTcyIDExQkI7QjAzQzsxMTAxIDExNzIgMTFCQjsKK0IwM0Q7QjAzRDsxMTAxIDExNzIgMTFCQztCMDNEOzExMDEgMTE3MiAxMUJDOworQjAzRTtCMDNFOzExMDEgMTE3MiAxMUJEO0IwM0U7MTEwMSAxMTcyIDExQkQ7CitCMDNGO0IwM0Y7MTEwMSAxMTcyIDExQkU7QjAzRjsxMTAxIDExNzIgMTFCRTsKK0IwNDA7QjA0MDsxMTAxIDExNzIgMTFCRjtCMDQwOzExMDEgMTE3MiAxMUJGOworQjA0MTtCMDQxOzExMDEgMTE3MiAxMUMwO0IwNDE7MTEwMSAxMTcyIDExQzA7CitCMDQyO0IwNDI7MTEwMSAxMTcyIDExQzE7QjA0MjsxMTAxIDExNzIgMTFDMTsKK0IwNDM7QjA0MzsxMTAxIDExNzIgMTFDMjtCMDQzOzExMDEgMTE3MiAxMUMyOworQjA0NDtCMDQ0OzExMDEgMTE3MztCMDQ0OzExMDEgMTE3MzsKK0IwNDU7QjA0NTsxMTAxIDExNzMgMTFBODtCMDQ1OzExMDEgMTE3MyAxMUE4OworQjA0NjtCMDQ2OzExMDEgMTE3MyAxMUE5O0IwNDY7MTEwMSAxMTczIDExQTk7CitCMDQ3O0IwNDc7MTEwMSAxMTczIDExQUE7QjA0NzsxMTAxIDExNzMgMTFBQTsKK0IwNDg7QjA0ODsxMTAxIDExNzMgMTFBQjtCMDQ4OzExMDEgMTE3MyAxMUFCOworQjA0OTtCMDQ5OzExMDEgMTE3MyAxMUFDO0IwNDk7MTEwMSAxMTczIDExQUM7CitCMDRBO0IwNEE7MTEwMSAxMTczIDExQUQ7QjA0QTsxMTAxIDExNzMgMTFBRDsKK0IwNEI7QjA0QjsxMTAxIDExNzMgMTFBRTtCMDRCOzExMDEgMTE3MyAxMUFFOworQjA0QztCMDRDOzExMDEgMTE3MyAxMUFGO0IwNEM7MTEwMSAxMTczIDExQUY7CitCMDREO0IwNEQ7MTEwMSAxMTczIDExQjA7QjA0RDsxMTAxIDExNzMgMTFCMDsKK0IwNEU7QjA0RTsxMTAxIDExNzMgMTFCMTtCMDRFOzExMDEgMTE3MyAxMUIxOworQjA0RjtCMDRGOzExMDEgMTE3MyAxMUIyO0IwNEY7MTEwMSAxMTczIDExQjI7CitCMDUwO0IwNTA7MTEwMSAxMTczIDExQjM7QjA1MDsxMTAxIDExNzMgMTFCMzsKK0IwNTE7QjA1MTsxMTAxIDExNzMgMTFCNDtCMDUxOzExMDEgMTE3MyAxMUI0OworQjA1MjtCMDUyOzExMDEgMTE3MyAxMUI1O0IwNTI7MTEwMSAxMTczIDExQjU7CitCMDUzO0IwNTM7MTEwMSAxMTczIDExQjY7QjA1MzsxMTAxIDExNzMgMTFCNjsKK0IwNTQ7QjA1NDsxMTAxIDExNzMgMTFCNztCMDU0OzExMDEgMTE3MyAxMUI3OworQjA1NTtCMDU1OzExMDEgMTE3MyAxMUI4O0IwNTU7MTEwMSAxMTczIDExQjg7CitCMDU2O0IwNTY7MTEwMSAxMTczIDExQjk7QjA1NjsxMTAxIDExNzMgMTFCOTsKK0IwNTc7QjA1NzsxMTAxIDExNzMgMTFCQTtCMDU3OzExMDEgMTE3MyAxMUJBOworQjA1ODtCMDU4OzExMDEgMTE3MyAxMUJCO0IwNTg7MTEwMSAxMTczIDExQkI7CitCMDU5O0IwNTk7MTEwMSAxMTczIDExQkM7QjA1OTsxMTAxIDExNzMgMTFCQzsKK0IwNUE7QjA1QTsxMTAxIDExNzMgMTFCRDtCMDVBOzExMDEgMTE3MyAxMUJEOworQjA1QjtCMDVCOzExMDEgMTE3MyAxMUJFO0IwNUI7MTEwMSAxMTczIDExQkU7CitCMDVDO0IwNUM7MTEwMSAxMTczIDExQkY7QjA1QzsxMTAxIDExNzMgMTFCRjsKK0IwNUQ7QjA1RDsxMTAxIDExNzMgMTFDMDtCMDVEOzExMDEgMTE3MyAxMUMwOworQjA1RTtCMDVFOzExMDEgMTE3MyAxMUMxO0IwNUU7MTEwMSAxMTczIDExQzE7CitCMDVGO0IwNUY7MTEwMSAxMTczIDExQzI7QjA1RjsxMTAxIDExNzMgMTFDMjsKK0IwNjA7QjA2MDsxMTAxIDExNzQ7QjA2MDsxMTAxIDExNzQ7CitCMDYxO0IwNjE7MTEwMSAxMTc0IDExQTg7QjA2MTsxMTAxIDExNzQgMTFBODsKK0IwNjI7QjA2MjsxMTAxIDExNzQgMTFBOTtCMDYyOzExMDEgMTE3NCAxMUE5OworQjA2MztCMDYzOzExMDEgMTE3NCAxMUFBO0IwNjM7MTEwMSAxMTc0IDExQUE7CitCMDY0O0IwNjQ7MTEwMSAxMTc0IDExQUI7QjA2NDsxMTAxIDExNzQgMTFBQjsKK0IwNjU7QjA2NTsxMTAxIDExNzQgMTFBQztCMDY1OzExMDEgMTE3NCAxMUFDOworQjA2NjtCMDY2OzExMDEgMTE3NCAxMUFEO0IwNjY7MTEwMSAxMTc0IDExQUQ7CitCMDY3O0IwNjc7MTEwMSAxMTc0IDExQUU7QjA2NzsxMTAxIDExNzQgMTFBRTsKK0IwNjg7QjA2ODsxMTAxIDExNzQgMTFBRjtCMDY4OzExMDEgMTE3NCAxMUFGOworQjA2OTtCMDY5OzExMDEgMTE3NCAxMUIwO0IwNjk7MTEwMSAxMTc0IDExQjA7CitCMDZBO0IwNkE7MTEwMSAxMTc0IDExQjE7QjA2QTsxMTAxIDExNzQgMTFCMTsKK0IwNkI7QjA2QjsxMTAxIDExNzQgMTFCMjtCMDZCOzExMDEgMTE3NCAxMUIyOworQjA2QztCMDZDOzExMDEgMTE3NCAxMUIzO0IwNkM7MTEwMSAxMTc0IDExQjM7CitCMDZEO0IwNkQ7MTEwMSAxMTc0IDExQjQ7QjA2RDsxMTAxIDExNzQgMTFCNDsKK0IwNkU7QjA2RTsxMTAxIDExNzQgMTFCNTtCMDZFOzExMDEgMTE3NCAxMUI1OworQjA2RjtCMDZGOzExMDEgMTE3NCAxMUI2O0IwNkY7MTEwMSAxMTc0IDExQjY7CitCMDcwO0IwNzA7MTEwMSAxMTc0IDExQjc7QjA3MDsxMTAxIDExNzQgMTFCNzsKK0IwNzE7QjA3MTsxMTAxIDExNzQgMTFCODtCMDcxOzExMDEgMTE3NCAxMUI4OworQjA3MjtCMDcyOzExMDEgMTE3NCAxMUI5O0IwNzI7MTEwMSAxMTc0IDExQjk7CitCMDczO0IwNzM7MTEwMSAxMTc0IDExQkE7QjA3MzsxMTAxIDExNzQgMTFCQTsKK0IwNzQ7QjA3NDsxMTAxIDExNzQgMTFCQjtCMDc0OzExMDEgMTE3NCAxMUJCOworQjA3NTtCMDc1OzExMDEgMTE3NCAxMUJDO0IwNzU7MTEwMSAxMTc0IDExQkM7CitCMDc2O0IwNzY7MTEwMSAxMTc0IDExQkQ7QjA3NjsxMTAxIDExNzQgMTFCRDsKK0IwNzc7QjA3NzsxMTAxIDExNzQgMTFCRTtCMDc3OzExMDEgMTE3NCAxMUJFOworQjA3ODtCMDc4OzExMDEgMTE3NCAxMUJGO0IwNzg7MTEwMSAxMTc0IDExQkY7CitCMDc5O0IwNzk7MTEwMSAxMTc0IDExQzA7QjA3OTsxMTAxIDExNzQgMTFDMDsKK0IwN0E7QjA3QTsxMTAxIDExNzQgMTFDMTtCMDdBOzExMDEgMTE3NCAxMUMxOworQjA3QjtCMDdCOzExMDEgMTE3NCAxMUMyO0IwN0I7MTEwMSAxMTc0IDExQzI7CitCMDdDO0IwN0M7MTEwMSAxMTc1O0IwN0M7MTEwMSAxMTc1OworQjA3RDtCMDdEOzExMDEgMTE3NSAxMUE4O0IwN0Q7MTEwMSAxMTc1IDExQTg7CitCMDdFO0IwN0U7MTEwMSAxMTc1IDExQTk7QjA3RTsxMTAxIDExNzUgMTFBOTsKK0IwN0Y7QjA3RjsxMTAxIDExNzUgMTFBQTtCMDdGOzExMDEgMTE3NSAxMUFBOworQjA4MDtCMDgwOzExMDEgMTE3NSAxMUFCO0IwODA7MTEwMSAxMTc1IDExQUI7CitCMDgxO0IwODE7MTEwMSAxMTc1IDExQUM7QjA4MTsxMTAxIDExNzUgMTFBQzsKK0IwODI7QjA4MjsxMTAxIDExNzUgMTFBRDtCMDgyOzExMDEgMTE3NSAxMUFEOworQjA4MztCMDgzOzExMDEgMTE3NSAxMUFFO0IwODM7MTEwMSAxMTc1IDExQUU7CitCMDg0O0IwODQ7MTEwMSAxMTc1IDExQUY7QjA4NDsxMTAxIDExNzUgMTFBRjsKK0IwODU7QjA4NTsxMTAxIDExNzUgMTFCMDtCMDg1OzExMDEgMTE3NSAxMUIwOworQjA4NjtCMDg2OzExMDEgMTE3NSAxMUIxO0IwODY7MTEwMSAxMTc1IDExQjE7CitCMDg3O0IwODc7MTEwMSAxMTc1IDExQjI7QjA4NzsxMTAxIDExNzUgMTFCMjsKK0IwODg7QjA4ODsxMTAxIDExNzUgMTFCMztCMDg4OzExMDEgMTE3NSAxMUIzOworQjA4OTtCMDg5OzExMDEgMTE3NSAxMUI0O0IwODk7MTEwMSAxMTc1IDExQjQ7CitCMDhBO0IwOEE7MTEwMSAxMTc1IDExQjU7QjA4QTsxMTAxIDExNzUgMTFCNTsKK0IwOEI7QjA4QjsxMTAxIDExNzUgMTFCNjtCMDhCOzExMDEgMTE3NSAxMUI2OworQjA4QztCMDhDOzExMDEgMTE3NSAxMUI3O0IwOEM7MTEwMSAxMTc1IDExQjc7CitCMDhEO0IwOEQ7MTEwMSAxMTc1IDExQjg7QjA4RDsxMTAxIDExNzUgMTFCODsKK0IwOEU7QjA4RTsxMTAxIDExNzUgMTFCOTtCMDhFOzExMDEgMTE3NSAxMUI5OworQjA4RjtCMDhGOzExMDEgMTE3NSAxMUJBO0IwOEY7MTEwMSAxMTc1IDExQkE7CitCMDkwO0IwOTA7MTEwMSAxMTc1IDExQkI7QjA5MDsxMTAxIDExNzUgMTFCQjsKK0IwOTE7QjA5MTsxMTAxIDExNzUgMTFCQztCMDkxOzExMDEgMTE3NSAxMUJDOworQjA5MjtCMDkyOzExMDEgMTE3NSAxMUJEO0IwOTI7MTEwMSAxMTc1IDExQkQ7CitCMDkzO0IwOTM7MTEwMSAxMTc1IDExQkU7QjA5MzsxMTAxIDExNzUgMTFCRTsKK0IwOTQ7QjA5NDsxMTAxIDExNzUgMTFCRjtCMDk0OzExMDEgMTE3NSAxMUJGOworQjA5NTtCMDk1OzExMDEgMTE3NSAxMUMwO0IwOTU7MTEwMSAxMTc1IDExQzA7CitCMDk2O0IwOTY7MTEwMSAxMTc1IDExQzE7QjA5NjsxMTAxIDExNzUgMTFDMTsKK0IwOTc7QjA5NzsxMTAxIDExNzUgMTFDMjtCMDk3OzExMDEgMTE3NSAxMUMyOworQjA5ODtCMDk4OzExMDIgMTE2MTtCMDk4OzExMDIgMTE2MTsKK0IwOTk7QjA5OTsxMTAyIDExNjEgMTFBODtCMDk5OzExMDIgMTE2MSAxMUE4OworQjA5QTtCMDlBOzExMDIgMTE2MSAxMUE5O0IwOUE7MTEwMiAxMTYxIDExQTk7CitCMDlCO0IwOUI7MTEwMiAxMTYxIDExQUE7QjA5QjsxMTAyIDExNjEgMTFBQTsKK0IwOUM7QjA5QzsxMTAyIDExNjEgMTFBQjtCMDlDOzExMDIgMTE2MSAxMUFCOworQjA5RDtCMDlEOzExMDIgMTE2MSAxMUFDO0IwOUQ7MTEwMiAxMTYxIDExQUM7CitCMDlFO0IwOUU7MTEwMiAxMTYxIDExQUQ7QjA5RTsxMTAyIDExNjEgMTFBRDsKK0IwOUY7QjA5RjsxMTAyIDExNjEgMTFBRTtCMDlGOzExMDIgMTE2MSAxMUFFOworQjBBMDtCMEEwOzExMDIgMTE2MSAxMUFGO0IwQTA7MTEwMiAxMTYxIDExQUY7CitCMEExO0IwQTE7MTEwMiAxMTYxIDExQjA7QjBBMTsxMTAyIDExNjEgMTFCMDsKK0IwQTI7QjBBMjsxMTAyIDExNjEgMTFCMTtCMEEyOzExMDIgMTE2MSAxMUIxOworQjBBMztCMEEzOzExMDIgMTE2MSAxMUIyO0IwQTM7MTEwMiAxMTYxIDExQjI7CitCMEE0O0IwQTQ7MTEwMiAxMTYxIDExQjM7QjBBNDsxMTAyIDExNjEgMTFCMzsKK0IwQTU7QjBBNTsxMTAyIDExNjEgMTFCNDtCMEE1OzExMDIgMTE2MSAxMUI0OworQjBBNjtCMEE2OzExMDIgMTE2MSAxMUI1O0IwQTY7MTEwMiAxMTYxIDExQjU7CitCMEE3O0IwQTc7MTEwMiAxMTYxIDExQjY7QjBBNzsxMTAyIDExNjEgMTFCNjsKK0IwQTg7QjBBODsxMTAyIDExNjEgMTFCNztCMEE4OzExMDIgMTE2MSAxMUI3OworQjBBOTtCMEE5OzExMDIgMTE2MSAxMUI4O0IwQTk7MTEwMiAxMTYxIDExQjg7CitCMEFBO0IwQUE7MTEwMiAxMTYxIDExQjk7QjBBQTsxMTAyIDExNjEgMTFCOTsKK0IwQUI7QjBBQjsxMTAyIDExNjEgMTFCQTtCMEFCOzExMDIgMTE2MSAxMUJBOworQjBBQztCMEFDOzExMDIgMTE2MSAxMUJCO0IwQUM7MTEwMiAxMTYxIDExQkI7CitCMEFEO0IwQUQ7MTEwMiAxMTYxIDExQkM7QjBBRDsxMTAyIDExNjEgMTFCQzsKK0IwQUU7QjBBRTsxMTAyIDExNjEgMTFCRDtCMEFFOzExMDIgMTE2MSAxMUJEOworQjBBRjtCMEFGOzExMDIgMTE2MSAxMUJFO0IwQUY7MTEwMiAxMTYxIDExQkU7CitCMEIwO0IwQjA7MTEwMiAxMTYxIDExQkY7QjBCMDsxMTAyIDExNjEgMTFCRjsKK0IwQjE7QjBCMTsxMTAyIDExNjEgMTFDMDtCMEIxOzExMDIgMTE2MSAxMUMwOworQjBCMjtCMEIyOzExMDIgMTE2MSAxMUMxO0IwQjI7MTEwMiAxMTYxIDExQzE7CitCMEIzO0IwQjM7MTEwMiAxMTYxIDExQzI7QjBCMzsxMTAyIDExNjEgMTFDMjsKK0IwQjQ7QjBCNDsxMTAyIDExNjI7QjBCNDsxMTAyIDExNjI7CitCMEI1O0IwQjU7MTEwMiAxMTYyIDExQTg7QjBCNTsxMTAyIDExNjIgMTFBODsKK0IwQjY7QjBCNjsxMTAyIDExNjIgMTFBOTtCMEI2OzExMDIgMTE2MiAxMUE5OworQjBCNztCMEI3OzExMDIgMTE2MiAxMUFBO0IwQjc7MTEwMiAxMTYyIDExQUE7CitCMEI4O0IwQjg7MTEwMiAxMTYyIDExQUI7QjBCODsxMTAyIDExNjIgMTFBQjsKK0IwQjk7QjBCOTsxMTAyIDExNjIgMTFBQztCMEI5OzExMDIgMTE2MiAxMUFDOworQjBCQTtCMEJBOzExMDIgMTE2MiAxMUFEO0IwQkE7MTEwMiAxMTYyIDExQUQ7CitCMEJCO0IwQkI7MTEwMiAxMTYyIDExQUU7QjBCQjsxMTAyIDExNjIgMTFBRTsKK0IwQkM7QjBCQzsxMTAyIDExNjIgMTFBRjtCMEJDOzExMDIgMTE2MiAxMUFGOworQjBCRDtCMEJEOzExMDIgMTE2MiAxMUIwO0IwQkQ7MTEwMiAxMTYyIDExQjA7CitCMEJFO0IwQkU7MTEwMiAxMTYyIDExQjE7QjBCRTsxMTAyIDExNjIgMTFCMTsKK0IwQkY7QjBCRjsxMTAyIDExNjIgMTFCMjtCMEJGOzExMDIgMTE2MiAxMUIyOworQjBDMDtCMEMwOzExMDIgMTE2MiAxMUIzO0IwQzA7MTEwMiAxMTYyIDExQjM7CitCMEMxO0IwQzE7MTEwMiAxMTYyIDExQjQ7QjBDMTsxMTAyIDExNjIgMTFCNDsKK0IwQzI7QjBDMjsxMTAyIDExNjIgMTFCNTtCMEMyOzExMDIgMTE2MiAxMUI1OworQjBDMztCMEMzOzExMDIgMTE2MiAxMUI2O0IwQzM7MTEwMiAxMTYyIDExQjY7CitCMEM0O0IwQzQ7MTEwMiAxMTYyIDExQjc7QjBDNDsxMTAyIDExNjIgMTFCNzsKK0IwQzU7QjBDNTsxMTAyIDExNjIgMTFCODtCMEM1OzExMDIgMTE2MiAxMUI4OworQjBDNjtCMEM2OzExMDIgMTE2MiAxMUI5O0IwQzY7MTEwMiAxMTYyIDExQjk7CitCMEM3O0IwQzc7MTEwMiAxMTYyIDExQkE7QjBDNzsxMTAyIDExNjIgMTFCQTsKK0IwQzg7QjBDODsxMTAyIDExNjIgMTFCQjtCMEM4OzExMDIgMTE2MiAxMUJCOworQjBDOTtCMEM5OzExMDIgMTE2MiAxMUJDO0IwQzk7MTEwMiAxMTYyIDExQkM7CitCMENBO0IwQ0E7MTEwMiAxMTYyIDExQkQ7QjBDQTsxMTAyIDExNjIgMTFCRDsKK0IwQ0I7QjBDQjsxMTAyIDExNjIgMTFCRTtCMENCOzExMDIgMTE2MiAxMUJFOworQjBDQztCMENDOzExMDIgMTE2MiAxMUJGO0IwQ0M7MTEwMiAxMTYyIDExQkY7CitCMENEO0IwQ0Q7MTEwMiAxMTYyIDExQzA7QjBDRDsxMTAyIDExNjIgMTFDMDsKK0IwQ0U7QjBDRTsxMTAyIDExNjIgMTFDMTtCMENFOzExMDIgMTE2MiAxMUMxOworQjBDRjtCMENGOzExMDIgMTE2MiAxMUMyO0IwQ0Y7MTEwMiAxMTYyIDExQzI7CitCMEQwO0IwRDA7MTEwMiAxMTYzO0IwRDA7MTEwMiAxMTYzOworQjBEMTtCMEQxOzExMDIgMTE2MyAxMUE4O0IwRDE7MTEwMiAxMTYzIDExQTg7CitCMEQyO0IwRDI7MTEwMiAxMTYzIDExQTk7QjBEMjsxMTAyIDExNjMgMTFBOTsKK0IwRDM7QjBEMzsxMTAyIDExNjMgMTFBQTtCMEQzOzExMDIgMTE2MyAxMUFBOworQjBENDtCMEQ0OzExMDIgMTE2MyAxMUFCO0IwRDQ7MTEwMiAxMTYzIDExQUI7CitCMEQ1O0IwRDU7MTEwMiAxMTYzIDExQUM7QjBENTsxMTAyIDExNjMgMTFBQzsKK0IwRDY7QjBENjsxMTAyIDExNjMgMTFBRDtCMEQ2OzExMDIgMTE2MyAxMUFEOworQjBENztCMEQ3OzExMDIgMTE2MyAxMUFFO0IwRDc7MTEwMiAxMTYzIDExQUU7CitCMEQ4O0IwRDg7MTEwMiAxMTYzIDExQUY7QjBEODsxMTAyIDExNjMgMTFBRjsKK0IwRDk7QjBEOTsxMTAyIDExNjMgMTFCMDtCMEQ5OzExMDIgMTE2MyAxMUIwOworQjBEQTtCMERBOzExMDIgMTE2MyAxMUIxO0IwREE7MTEwMiAxMTYzIDExQjE7CitCMERCO0IwREI7MTEwMiAxMTYzIDExQjI7QjBEQjsxMTAyIDExNjMgMTFCMjsKK0IwREM7QjBEQzsxMTAyIDExNjMgMTFCMztCMERDOzExMDIgMTE2MyAxMUIzOworQjBERDtCMEREOzExMDIgMTE2MyAxMUI0O0IwREQ7MTEwMiAxMTYzIDExQjQ7CitCMERFO0IwREU7MTEwMiAxMTYzIDExQjU7QjBERTsxMTAyIDExNjMgMTFCNTsKK0IwREY7QjBERjsxMTAyIDExNjMgMTFCNjtCMERGOzExMDIgMTE2MyAxMUI2OworQjBFMDtCMEUwOzExMDIgMTE2MyAxMUI3O0IwRTA7MTEwMiAxMTYzIDExQjc7CitCMEUxO0IwRTE7MTEwMiAxMTYzIDExQjg7QjBFMTsxMTAyIDExNjMgMTFCODsKK0IwRTI7QjBFMjsxMTAyIDExNjMgMTFCOTtCMEUyOzExMDIgMTE2MyAxMUI5OworQjBFMztCMEUzOzExMDIgMTE2MyAxMUJBO0IwRTM7MTEwMiAxMTYzIDExQkE7CitCMEU0O0IwRTQ7MTEwMiAxMTYzIDExQkI7QjBFNDsxMTAyIDExNjMgMTFCQjsKK0IwRTU7QjBFNTsxMTAyIDExNjMgMTFCQztCMEU1OzExMDIgMTE2MyAxMUJDOworQjBFNjtCMEU2OzExMDIgMTE2MyAxMUJEO0IwRTY7MTEwMiAxMTYzIDExQkQ7CitCMEU3O0IwRTc7MTEwMiAxMTYzIDExQkU7QjBFNzsxMTAyIDExNjMgMTFCRTsKK0IwRTg7QjBFODsxMTAyIDExNjMgMTFCRjtCMEU4OzExMDIgMTE2MyAxMUJGOworQjBFOTtCMEU5OzExMDIgMTE2MyAxMUMwO0IwRTk7MTEwMiAxMTYzIDExQzA7CitCMEVBO0IwRUE7MTEwMiAxMTYzIDExQzE7QjBFQTsxMTAyIDExNjMgMTFDMTsKK0IwRUI7QjBFQjsxMTAyIDExNjMgMTFDMjtCMEVCOzExMDIgMTE2MyAxMUMyOworQjBFQztCMEVDOzExMDIgMTE2NDtCMEVDOzExMDIgMTE2NDsKK0IwRUQ7QjBFRDsxMTAyIDExNjQgMTFBODtCMEVEOzExMDIgMTE2NCAxMUE4OworQjBFRTtCMEVFOzExMDIgMTE2NCAxMUE5O0IwRUU7MTEwMiAxMTY0IDExQTk7CitCMEVGO0IwRUY7MTEwMiAxMTY0IDExQUE7QjBFRjsxMTAyIDExNjQgMTFBQTsKK0IwRjA7QjBGMDsxMTAyIDExNjQgMTFBQjtCMEYwOzExMDIgMTE2NCAxMUFCOworQjBGMTtCMEYxOzExMDIgMTE2NCAxMUFDO0IwRjE7MTEwMiAxMTY0IDExQUM7CitCMEYyO0IwRjI7MTEwMiAxMTY0IDExQUQ7QjBGMjsxMTAyIDExNjQgMTFBRDsKK0IwRjM7QjBGMzsxMTAyIDExNjQgMTFBRTtCMEYzOzExMDIgMTE2NCAxMUFFOworQjBGNDtCMEY0OzExMDIgMTE2NCAxMUFGO0IwRjQ7MTEwMiAxMTY0IDExQUY7CitCMEY1O0IwRjU7MTEwMiAxMTY0IDExQjA7QjBGNTsxMTAyIDExNjQgMTFCMDsKK0IwRjY7QjBGNjsxMTAyIDExNjQgMTFCMTtCMEY2OzExMDIgMTE2NCAxMUIxOworQjBGNztCMEY3OzExMDIgMTE2NCAxMUIyO0IwRjc7MTEwMiAxMTY0IDExQjI7CitCMEY4O0IwRjg7MTEwMiAxMTY0IDExQjM7QjBGODsxMTAyIDExNjQgMTFCMzsKK0IwRjk7QjBGOTsxMTAyIDExNjQgMTFCNDtCMEY5OzExMDIgMTE2NCAxMUI0OworQjBGQTtCMEZBOzExMDIgMTE2NCAxMUI1O0IwRkE7MTEwMiAxMTY0IDExQjU7CitCMEZCO0IwRkI7MTEwMiAxMTY0IDExQjY7QjBGQjsxMTAyIDExNjQgMTFCNjsKK0IwRkM7QjBGQzsxMTAyIDExNjQgMTFCNztCMEZDOzExMDIgMTE2NCAxMUI3OworQjBGRDtCMEZEOzExMDIgMTE2NCAxMUI4O0IwRkQ7MTEwMiAxMTY0IDExQjg7CitCMEZFO0IwRkU7MTEwMiAxMTY0IDExQjk7QjBGRTsxMTAyIDExNjQgMTFCOTsKK0IwRkY7QjBGRjsxMTAyIDExNjQgMTFCQTtCMEZGOzExMDIgMTE2NCAxMUJBOworQjEwMDtCMTAwOzExMDIgMTE2NCAxMUJCO0IxMDA7MTEwMiAxMTY0IDExQkI7CitCMTAxO0IxMDE7MTEwMiAxMTY0IDExQkM7QjEwMTsxMTAyIDExNjQgMTFCQzsKK0IxMDI7QjEwMjsxMTAyIDExNjQgMTFCRDtCMTAyOzExMDIgMTE2NCAxMUJEOworQjEwMztCMTAzOzExMDIgMTE2NCAxMUJFO0IxMDM7MTEwMiAxMTY0IDExQkU7CitCMTA0O0IxMDQ7MTEwMiAxMTY0IDExQkY7QjEwNDsxMTAyIDExNjQgMTFCRjsKK0IxMDU7QjEwNTsxMTAyIDExNjQgMTFDMDtCMTA1OzExMDIgMTE2NCAxMUMwOworQjEwNjtCMTA2OzExMDIgMTE2NCAxMUMxO0IxMDY7MTEwMiAxMTY0IDExQzE7CitCMTA3O0IxMDc7MTEwMiAxMTY0IDExQzI7QjEwNzsxMTAyIDExNjQgMTFDMjsKK0IxMDg7QjEwODsxMTAyIDExNjU7QjEwODsxMTAyIDExNjU7CitCMTA5O0IxMDk7MTEwMiAxMTY1IDExQTg7QjEwOTsxMTAyIDExNjUgMTFBODsKK0IxMEE7QjEwQTsxMTAyIDExNjUgMTFBOTtCMTBBOzExMDIgMTE2NSAxMUE5OworQjEwQjtCMTBCOzExMDIgMTE2NSAxMUFBO0IxMEI7MTEwMiAxMTY1IDExQUE7CitCMTBDO0IxMEM7MTEwMiAxMTY1IDExQUI7QjEwQzsxMTAyIDExNjUgMTFBQjsKK0IxMEQ7QjEwRDsxMTAyIDExNjUgMTFBQztCMTBEOzExMDIgMTE2NSAxMUFDOworQjEwRTtCMTBFOzExMDIgMTE2NSAxMUFEO0IxMEU7MTEwMiAxMTY1IDExQUQ7CitCMTBGO0IxMEY7MTEwMiAxMTY1IDExQUU7QjEwRjsxMTAyIDExNjUgMTFBRTsKK0IxMTA7QjExMDsxMTAyIDExNjUgMTFBRjtCMTEwOzExMDIgMTE2NSAxMUFGOworQjExMTtCMTExOzExMDIgMTE2NSAxMUIwO0IxMTE7MTEwMiAxMTY1IDExQjA7CitCMTEyO0IxMTI7MTEwMiAxMTY1IDExQjE7QjExMjsxMTAyIDExNjUgMTFCMTsKK0IxMTM7QjExMzsxMTAyIDExNjUgMTFCMjtCMTEzOzExMDIgMTE2NSAxMUIyOworQjExNDtCMTE0OzExMDIgMTE2NSAxMUIzO0IxMTQ7MTEwMiAxMTY1IDExQjM7CitCMTE1O0IxMTU7MTEwMiAxMTY1IDExQjQ7QjExNTsxMTAyIDExNjUgMTFCNDsKK0IxMTY7QjExNjsxMTAyIDExNjUgMTFCNTtCMTE2OzExMDIgMTE2NSAxMUI1OworQjExNztCMTE3OzExMDIgMTE2NSAxMUI2O0IxMTc7MTEwMiAxMTY1IDExQjY7CitCMTE4O0IxMTg7MTEwMiAxMTY1IDExQjc7QjExODsxMTAyIDExNjUgMTFCNzsKK0IxMTk7QjExOTsxMTAyIDExNjUgMTFCODtCMTE5OzExMDIgMTE2NSAxMUI4OworQjExQTtCMTFBOzExMDIgMTE2NSAxMUI5O0IxMUE7MTEwMiAxMTY1IDExQjk7CitCMTFCO0IxMUI7MTEwMiAxMTY1IDExQkE7QjExQjsxMTAyIDExNjUgMTFCQTsKK0IxMUM7QjExQzsxMTAyIDExNjUgMTFCQjtCMTFDOzExMDIgMTE2NSAxMUJCOworQjExRDtCMTFEOzExMDIgMTE2NSAxMUJDO0IxMUQ7MTEwMiAxMTY1IDExQkM7CitCMTFFO0IxMUU7MTEwMiAxMTY1IDExQkQ7QjExRTsxMTAyIDExNjUgMTFCRDsKK0IxMUY7QjExRjsxMTAyIDExNjUgMTFCRTtCMTFGOzExMDIgMTE2NSAxMUJFOworQjEyMDtCMTIwOzExMDIgMTE2NSAxMUJGO0IxMjA7MTEwMiAxMTY1IDExQkY7CitCMTIxO0IxMjE7MTEwMiAxMTY1IDExQzA7QjEyMTsxMTAyIDExNjUgMTFDMDsKK0IxMjI7QjEyMjsxMTAyIDExNjUgMTFDMTtCMTIyOzExMDIgMTE2NSAxMUMxOworQjEyMztCMTIzOzExMDIgMTE2NSAxMUMyO0IxMjM7MTEwMiAxMTY1IDExQzI7CitCMTI0O0IxMjQ7MTEwMiAxMTY2O0IxMjQ7MTEwMiAxMTY2OworQjEyNTtCMTI1OzExMDIgMTE2NiAxMUE4O0IxMjU7MTEwMiAxMTY2IDExQTg7CitCMTI2O0IxMjY7MTEwMiAxMTY2IDExQTk7QjEyNjsxMTAyIDExNjYgMTFBOTsKK0IxMjc7QjEyNzsxMTAyIDExNjYgMTFBQTtCMTI3OzExMDIgMTE2NiAxMUFBOworQjEyODtCMTI4OzExMDIgMTE2NiAxMUFCO0IxMjg7MTEwMiAxMTY2IDExQUI7CitCMTI5O0IxMjk7MTEwMiAxMTY2IDExQUM7QjEyOTsxMTAyIDExNjYgMTFBQzsKK0IxMkE7QjEyQTsxMTAyIDExNjYgMTFBRDtCMTJBOzExMDIgMTE2NiAxMUFEOworQjEyQjtCMTJCOzExMDIgMTE2NiAxMUFFO0IxMkI7MTEwMiAxMTY2IDExQUU7CitCMTJDO0IxMkM7MTEwMiAxMTY2IDExQUY7QjEyQzsxMTAyIDExNjYgMTFBRjsKK0IxMkQ7QjEyRDsxMTAyIDExNjYgMTFCMDtCMTJEOzExMDIgMTE2NiAxMUIwOworQjEyRTtCMTJFOzExMDIgMTE2NiAxMUIxO0IxMkU7MTEwMiAxMTY2IDExQjE7CitCMTJGO0IxMkY7MTEwMiAxMTY2IDExQjI7QjEyRjsxMTAyIDExNjYgMTFCMjsKK0IxMzA7QjEzMDsxMTAyIDExNjYgMTFCMztCMTMwOzExMDIgMTE2NiAxMUIzOworQjEzMTtCMTMxOzExMDIgMTE2NiAxMUI0O0IxMzE7MTEwMiAxMTY2IDExQjQ7CitCMTMyO0IxMzI7MTEwMiAxMTY2IDExQjU7QjEzMjsxMTAyIDExNjYgMTFCNTsKK0IxMzM7QjEzMzsxMTAyIDExNjYgMTFCNjtCMTMzOzExMDIgMTE2NiAxMUI2OworQjEzNDtCMTM0OzExMDIgMTE2NiAxMUI3O0IxMzQ7MTEwMiAxMTY2IDExQjc7CitCMTM1O0IxMzU7MTEwMiAxMTY2IDExQjg7QjEzNTsxMTAyIDExNjYgMTFCODsKK0IxMzY7QjEzNjsxMTAyIDExNjYgMTFCOTtCMTM2OzExMDIgMTE2NiAxMUI5OworQjEzNztCMTM3OzExMDIgMTE2NiAxMUJBO0IxMzc7MTEwMiAxMTY2IDExQkE7CitCMTM4O0IxMzg7MTEwMiAxMTY2IDExQkI7QjEzODsxMTAyIDExNjYgMTFCQjsKK0IxMzk7QjEzOTsxMTAyIDExNjYgMTFCQztCMTM5OzExMDIgMTE2NiAxMUJDOworQjEzQTtCMTNBOzExMDIgMTE2NiAxMUJEO0IxM0E7MTEwMiAxMTY2IDExQkQ7CitCMTNCO0IxM0I7MTEwMiAxMTY2IDExQkU7QjEzQjsxMTAyIDExNjYgMTFCRTsKK0IxM0M7QjEzQzsxMTAyIDExNjYgMTFCRjtCMTNDOzExMDIgMTE2NiAxMUJGOworQjEzRDtCMTNEOzExMDIgMTE2NiAxMUMwO0IxM0Q7MTEwMiAxMTY2IDExQzA7CitCMTNFO0IxM0U7MTEwMiAxMTY2IDExQzE7QjEzRTsxMTAyIDExNjYgMTFDMTsKK0IxM0Y7QjEzRjsxMTAyIDExNjYgMTFDMjtCMTNGOzExMDIgMTE2NiAxMUMyOworQjE0MDtCMTQwOzExMDIgMTE2NztCMTQwOzExMDIgMTE2NzsKK0IxNDE7QjE0MTsxMTAyIDExNjcgMTFBODtCMTQxOzExMDIgMTE2NyAxMUE4OworQjE0MjtCMTQyOzExMDIgMTE2NyAxMUE5O0IxNDI7MTEwMiAxMTY3IDExQTk7CitCMTQzO0IxNDM7MTEwMiAxMTY3IDExQUE7QjE0MzsxMTAyIDExNjcgMTFBQTsKK0IxNDQ7QjE0NDsxMTAyIDExNjcgMTFBQjtCMTQ0OzExMDIgMTE2NyAxMUFCOworQjE0NTtCMTQ1OzExMDIgMTE2NyAxMUFDO0IxNDU7MTEwMiAxMTY3IDExQUM7CitCMTQ2O0IxNDY7MTEwMiAxMTY3IDExQUQ7QjE0NjsxMTAyIDExNjcgMTFBRDsKK0IxNDc7QjE0NzsxMTAyIDExNjcgMTFBRTtCMTQ3OzExMDIgMTE2NyAxMUFFOworQjE0ODtCMTQ4OzExMDIgMTE2NyAxMUFGO0IxNDg7MTEwMiAxMTY3IDExQUY7CitCMTQ5O0IxNDk7MTEwMiAxMTY3IDExQjA7QjE0OTsxMTAyIDExNjcgMTFCMDsKK0IxNEE7QjE0QTsxMTAyIDExNjcgMTFCMTtCMTRBOzExMDIgMTE2NyAxMUIxOworQjE0QjtCMTRCOzExMDIgMTE2NyAxMUIyO0IxNEI7MTEwMiAxMTY3IDExQjI7CitCMTRDO0IxNEM7MTEwMiAxMTY3IDExQjM7QjE0QzsxMTAyIDExNjcgMTFCMzsKK0IxNEQ7QjE0RDsxMTAyIDExNjcgMTFCNDtCMTREOzExMDIgMTE2NyAxMUI0OworQjE0RTtCMTRFOzExMDIgMTE2NyAxMUI1O0IxNEU7MTEwMiAxMTY3IDExQjU7CitCMTRGO0IxNEY7MTEwMiAxMTY3IDExQjY7QjE0RjsxMTAyIDExNjcgMTFCNjsKK0IxNTA7QjE1MDsxMTAyIDExNjcgMTFCNztCMTUwOzExMDIgMTE2NyAxMUI3OworQjE1MTtCMTUxOzExMDIgMTE2NyAxMUI4O0IxNTE7MTEwMiAxMTY3IDExQjg7CitCMTUyO0IxNTI7MTEwMiAxMTY3IDExQjk7QjE1MjsxMTAyIDExNjcgMTFCOTsKK0IxNTM7QjE1MzsxMTAyIDExNjcgMTFCQTtCMTUzOzExMDIgMTE2NyAxMUJBOworQjE1NDtCMTU0OzExMDIgMTE2NyAxMUJCO0IxNTQ7MTEwMiAxMTY3IDExQkI7CitCMTU1O0IxNTU7MTEwMiAxMTY3IDExQkM7QjE1NTsxMTAyIDExNjcgMTFCQzsKK0IxNTY7QjE1NjsxMTAyIDExNjcgMTFCRDtCMTU2OzExMDIgMTE2NyAxMUJEOworQjE1NztCMTU3OzExMDIgMTE2NyAxMUJFO0IxNTc7MTEwMiAxMTY3IDExQkU7CitCMTU4O0IxNTg7MTEwMiAxMTY3IDExQkY7QjE1ODsxMTAyIDExNjcgMTFCRjsKK0IxNTk7QjE1OTsxMTAyIDExNjcgMTFDMDtCMTU5OzExMDIgMTE2NyAxMUMwOworQjE1QTtCMTVBOzExMDIgMTE2NyAxMUMxO0IxNUE7MTEwMiAxMTY3IDExQzE7CitCMTVCO0IxNUI7MTEwMiAxMTY3IDExQzI7QjE1QjsxMTAyIDExNjcgMTFDMjsKK0IxNUM7QjE1QzsxMTAyIDExNjg7QjE1QzsxMTAyIDExNjg7CitCMTVEO0IxNUQ7MTEwMiAxMTY4IDExQTg7QjE1RDsxMTAyIDExNjggMTFBODsKK0IxNUU7QjE1RTsxMTAyIDExNjggMTFBOTtCMTVFOzExMDIgMTE2OCAxMUE5OworQjE1RjtCMTVGOzExMDIgMTE2OCAxMUFBO0IxNUY7MTEwMiAxMTY4IDExQUE7CitCMTYwO0IxNjA7MTEwMiAxMTY4IDExQUI7QjE2MDsxMTAyIDExNjggMTFBQjsKK0IxNjE7QjE2MTsxMTAyIDExNjggMTFBQztCMTYxOzExMDIgMTE2OCAxMUFDOworQjE2MjtCMTYyOzExMDIgMTE2OCAxMUFEO0IxNjI7MTEwMiAxMTY4IDExQUQ7CitCMTYzO0IxNjM7MTEwMiAxMTY4IDExQUU7QjE2MzsxMTAyIDExNjggMTFBRTsKK0IxNjQ7QjE2NDsxMTAyIDExNjggMTFBRjtCMTY0OzExMDIgMTE2OCAxMUFGOworQjE2NTtCMTY1OzExMDIgMTE2OCAxMUIwO0IxNjU7MTEwMiAxMTY4IDExQjA7CitCMTY2O0IxNjY7MTEwMiAxMTY4IDExQjE7QjE2NjsxMTAyIDExNjggMTFCMTsKK0IxNjc7QjE2NzsxMTAyIDExNjggMTFCMjtCMTY3OzExMDIgMTE2OCAxMUIyOworQjE2ODtCMTY4OzExMDIgMTE2OCAxMUIzO0IxNjg7MTEwMiAxMTY4IDExQjM7CitCMTY5O0IxNjk7MTEwMiAxMTY4IDExQjQ7QjE2OTsxMTAyIDExNjggMTFCNDsKK0IxNkE7QjE2QTsxMTAyIDExNjggMTFCNTtCMTZBOzExMDIgMTE2OCAxMUI1OworQjE2QjtCMTZCOzExMDIgMTE2OCAxMUI2O0IxNkI7MTEwMiAxMTY4IDExQjY7CitCMTZDO0IxNkM7MTEwMiAxMTY4IDExQjc7QjE2QzsxMTAyIDExNjggMTFCNzsKK0IxNkQ7QjE2RDsxMTAyIDExNjggMTFCODtCMTZEOzExMDIgMTE2OCAxMUI4OworQjE2RTtCMTZFOzExMDIgMTE2OCAxMUI5O0IxNkU7MTEwMiAxMTY4IDExQjk7CitCMTZGO0IxNkY7MTEwMiAxMTY4IDExQkE7QjE2RjsxMTAyIDExNjggMTFCQTsKK0IxNzA7QjE3MDsxMTAyIDExNjggMTFCQjtCMTcwOzExMDIgMTE2OCAxMUJCOworQjE3MTtCMTcxOzExMDIgMTE2OCAxMUJDO0IxNzE7MTEwMiAxMTY4IDExQkM7CitCMTcyO0IxNzI7MTEwMiAxMTY4IDExQkQ7QjE3MjsxMTAyIDExNjggMTFCRDsKK0IxNzM7QjE3MzsxMTAyIDExNjggMTFCRTtCMTczOzExMDIgMTE2OCAxMUJFOworQjE3NDtCMTc0OzExMDIgMTE2OCAxMUJGO0IxNzQ7MTEwMiAxMTY4IDExQkY7CitCMTc1O0IxNzU7MTEwMiAxMTY4IDExQzA7QjE3NTsxMTAyIDExNjggMTFDMDsKK0IxNzY7QjE3NjsxMTAyIDExNjggMTFDMTtCMTc2OzExMDIgMTE2OCAxMUMxOworQjE3NztCMTc3OzExMDIgMTE2OCAxMUMyO0IxNzc7MTEwMiAxMTY4IDExQzI7CitCMTc4O0IxNzg7MTEwMiAxMTY5O0IxNzg7MTEwMiAxMTY5OworQjE3OTtCMTc5OzExMDIgMTE2OSAxMUE4O0IxNzk7MTEwMiAxMTY5IDExQTg7CitCMTdBO0IxN0E7MTEwMiAxMTY5IDExQTk7QjE3QTsxMTAyIDExNjkgMTFBOTsKK0IxN0I7QjE3QjsxMTAyIDExNjkgMTFBQTtCMTdCOzExMDIgMTE2OSAxMUFBOworQjE3QztCMTdDOzExMDIgMTE2OSAxMUFCO0IxN0M7MTEwMiAxMTY5IDExQUI7CitCMTdEO0IxN0Q7MTEwMiAxMTY5IDExQUM7QjE3RDsxMTAyIDExNjkgMTFBQzsKK0IxN0U7QjE3RTsxMTAyIDExNjkgMTFBRDtCMTdFOzExMDIgMTE2OSAxMUFEOworQjE3RjtCMTdGOzExMDIgMTE2OSAxMUFFO0IxN0Y7MTEwMiAxMTY5IDExQUU7CitCMTgwO0IxODA7MTEwMiAxMTY5IDExQUY7QjE4MDsxMTAyIDExNjkgMTFBRjsKK0IxODE7QjE4MTsxMTAyIDExNjkgMTFCMDtCMTgxOzExMDIgMTE2OSAxMUIwOworQjE4MjtCMTgyOzExMDIgMTE2OSAxMUIxO0IxODI7MTEwMiAxMTY5IDExQjE7CitCMTgzO0IxODM7MTEwMiAxMTY5IDExQjI7QjE4MzsxMTAyIDExNjkgMTFCMjsKK0IxODQ7QjE4NDsxMTAyIDExNjkgMTFCMztCMTg0OzExMDIgMTE2OSAxMUIzOworQjE4NTtCMTg1OzExMDIgMTE2OSAxMUI0O0IxODU7MTEwMiAxMTY5IDExQjQ7CitCMTg2O0IxODY7MTEwMiAxMTY5IDExQjU7QjE4NjsxMTAyIDExNjkgMTFCNTsKK0IxODc7QjE4NzsxMTAyIDExNjkgMTFCNjtCMTg3OzExMDIgMTE2OSAxMUI2OworQjE4ODtCMTg4OzExMDIgMTE2OSAxMUI3O0IxODg7MTEwMiAxMTY5IDExQjc7CitCMTg5O0IxODk7MTEwMiAxMTY5IDExQjg7QjE4OTsxMTAyIDExNjkgMTFCODsKK0IxOEE7QjE4QTsxMTAyIDExNjkgMTFCOTtCMThBOzExMDIgMTE2OSAxMUI5OworQjE4QjtCMThCOzExMDIgMTE2OSAxMUJBO0IxOEI7MTEwMiAxMTY5IDExQkE7CitCMThDO0IxOEM7MTEwMiAxMTY5IDExQkI7QjE4QzsxMTAyIDExNjkgMTFCQjsKK0IxOEQ7QjE4RDsxMTAyIDExNjkgMTFCQztCMThEOzExMDIgMTE2OSAxMUJDOworQjE4RTtCMThFOzExMDIgMTE2OSAxMUJEO0IxOEU7MTEwMiAxMTY5IDExQkQ7CitCMThGO0IxOEY7MTEwMiAxMTY5IDExQkU7QjE4RjsxMTAyIDExNjkgMTFCRTsKK0IxOTA7QjE5MDsxMTAyIDExNjkgMTFCRjtCMTkwOzExMDIgMTE2OSAxMUJGOworQjE5MTtCMTkxOzExMDIgMTE2OSAxMUMwO0IxOTE7MTEwMiAxMTY5IDExQzA7CitCMTkyO0IxOTI7MTEwMiAxMTY5IDExQzE7QjE5MjsxMTAyIDExNjkgMTFDMTsKK0IxOTM7QjE5MzsxMTAyIDExNjkgMTFDMjtCMTkzOzExMDIgMTE2OSAxMUMyOworQjE5NDtCMTk0OzExMDIgMTE2QTtCMTk0OzExMDIgMTE2QTsKK0IxOTU7QjE5NTsxMTAyIDExNkEgMTFBODtCMTk1OzExMDIgMTE2QSAxMUE4OworQjE5NjtCMTk2OzExMDIgMTE2QSAxMUE5O0IxOTY7MTEwMiAxMTZBIDExQTk7CitCMTk3O0IxOTc7MTEwMiAxMTZBIDExQUE7QjE5NzsxMTAyIDExNkEgMTFBQTsKK0IxOTg7QjE5ODsxMTAyIDExNkEgMTFBQjtCMTk4OzExMDIgMTE2QSAxMUFCOworQjE5OTtCMTk5OzExMDIgMTE2QSAxMUFDO0IxOTk7MTEwMiAxMTZBIDExQUM7CitCMTlBO0IxOUE7MTEwMiAxMTZBIDExQUQ7QjE5QTsxMTAyIDExNkEgMTFBRDsKK0IxOUI7QjE5QjsxMTAyIDExNkEgMTFBRTtCMTlCOzExMDIgMTE2QSAxMUFFOworQjE5QztCMTlDOzExMDIgMTE2QSAxMUFGO0IxOUM7MTEwMiAxMTZBIDExQUY7CitCMTlEO0IxOUQ7MTEwMiAxMTZBIDExQjA7QjE5RDsxMTAyIDExNkEgMTFCMDsKK0IxOUU7QjE5RTsxMTAyIDExNkEgMTFCMTtCMTlFOzExMDIgMTE2QSAxMUIxOworQjE5RjtCMTlGOzExMDIgMTE2QSAxMUIyO0IxOUY7MTEwMiAxMTZBIDExQjI7CitCMUEwO0IxQTA7MTEwMiAxMTZBIDExQjM7QjFBMDsxMTAyIDExNkEgMTFCMzsKK0IxQTE7QjFBMTsxMTAyIDExNkEgMTFCNDtCMUExOzExMDIgMTE2QSAxMUI0OworQjFBMjtCMUEyOzExMDIgMTE2QSAxMUI1O0IxQTI7MTEwMiAxMTZBIDExQjU7CitCMUEzO0IxQTM7MTEwMiAxMTZBIDExQjY7QjFBMzsxMTAyIDExNkEgMTFCNjsKK0IxQTQ7QjFBNDsxMTAyIDExNkEgMTFCNztCMUE0OzExMDIgMTE2QSAxMUI3OworQjFBNTtCMUE1OzExMDIgMTE2QSAxMUI4O0IxQTU7MTEwMiAxMTZBIDExQjg7CitCMUE2O0IxQTY7MTEwMiAxMTZBIDExQjk7QjFBNjsxMTAyIDExNkEgMTFCOTsKK0IxQTc7QjFBNzsxMTAyIDExNkEgMTFCQTtCMUE3OzExMDIgMTE2QSAxMUJBOworQjFBODtCMUE4OzExMDIgMTE2QSAxMUJCO0IxQTg7MTEwMiAxMTZBIDExQkI7CitCMUE5O0IxQTk7MTEwMiAxMTZBIDExQkM7QjFBOTsxMTAyIDExNkEgMTFCQzsKK0IxQUE7QjFBQTsxMTAyIDExNkEgMTFCRDtCMUFBOzExMDIgMTE2QSAxMUJEOworQjFBQjtCMUFCOzExMDIgMTE2QSAxMUJFO0IxQUI7MTEwMiAxMTZBIDExQkU7CitCMUFDO0IxQUM7MTEwMiAxMTZBIDExQkY7QjFBQzsxMTAyIDExNkEgMTFCRjsKK0IxQUQ7QjFBRDsxMTAyIDExNkEgMTFDMDtCMUFEOzExMDIgMTE2QSAxMUMwOworQjFBRTtCMUFFOzExMDIgMTE2QSAxMUMxO0IxQUU7MTEwMiAxMTZBIDExQzE7CitCMUFGO0IxQUY7MTEwMiAxMTZBIDExQzI7QjFBRjsxMTAyIDExNkEgMTFDMjsKK0IxQjA7QjFCMDsxMTAyIDExNkI7QjFCMDsxMTAyIDExNkI7CitCMUIxO0IxQjE7MTEwMiAxMTZCIDExQTg7QjFCMTsxMTAyIDExNkIgMTFBODsKK0IxQjI7QjFCMjsxMTAyIDExNkIgMTFBOTtCMUIyOzExMDIgMTE2QiAxMUE5OworQjFCMztCMUIzOzExMDIgMTE2QiAxMUFBO0IxQjM7MTEwMiAxMTZCIDExQUE7CitCMUI0O0IxQjQ7MTEwMiAxMTZCIDExQUI7QjFCNDsxMTAyIDExNkIgMTFBQjsKK0IxQjU7QjFCNTsxMTAyIDExNkIgMTFBQztCMUI1OzExMDIgMTE2QiAxMUFDOworQjFCNjtCMUI2OzExMDIgMTE2QiAxMUFEO0IxQjY7MTEwMiAxMTZCIDExQUQ7CitCMUI3O0IxQjc7MTEwMiAxMTZCIDExQUU7QjFCNzsxMTAyIDExNkIgMTFBRTsKK0IxQjg7QjFCODsxMTAyIDExNkIgMTFBRjtCMUI4OzExMDIgMTE2QiAxMUFGOworQjFCOTtCMUI5OzExMDIgMTE2QiAxMUIwO0IxQjk7MTEwMiAxMTZCIDExQjA7CitCMUJBO0IxQkE7MTEwMiAxMTZCIDExQjE7QjFCQTsxMTAyIDExNkIgMTFCMTsKK0IxQkI7QjFCQjsxMTAyIDExNkIgMTFCMjtCMUJCOzExMDIgMTE2QiAxMUIyOworQjFCQztCMUJDOzExMDIgMTE2QiAxMUIzO0IxQkM7MTEwMiAxMTZCIDExQjM7CitCMUJEO0IxQkQ7MTEwMiAxMTZCIDExQjQ7QjFCRDsxMTAyIDExNkIgMTFCNDsKK0IxQkU7QjFCRTsxMTAyIDExNkIgMTFCNTtCMUJFOzExMDIgMTE2QiAxMUI1OworQjFCRjtCMUJGOzExMDIgMTE2QiAxMUI2O0IxQkY7MTEwMiAxMTZCIDExQjY7CitCMUMwO0IxQzA7MTEwMiAxMTZCIDExQjc7QjFDMDsxMTAyIDExNkIgMTFCNzsKK0IxQzE7QjFDMTsxMTAyIDExNkIgMTFCODtCMUMxOzExMDIgMTE2QiAxMUI4OworQjFDMjtCMUMyOzExMDIgMTE2QiAxMUI5O0IxQzI7MTEwMiAxMTZCIDExQjk7CitCMUMzO0IxQzM7MTEwMiAxMTZCIDExQkE7QjFDMzsxMTAyIDExNkIgMTFCQTsKK0IxQzQ7QjFDNDsxMTAyIDExNkIgMTFCQjtCMUM0OzExMDIgMTE2QiAxMUJCOworQjFDNTtCMUM1OzExMDIgMTE2QiAxMUJDO0IxQzU7MTEwMiAxMTZCIDExQkM7CitCMUM2O0IxQzY7MTEwMiAxMTZCIDExQkQ7QjFDNjsxMTAyIDExNkIgMTFCRDsKK0IxQzc7QjFDNzsxMTAyIDExNkIgMTFCRTtCMUM3OzExMDIgMTE2QiAxMUJFOworQjFDODtCMUM4OzExMDIgMTE2QiAxMUJGO0IxQzg7MTEwMiAxMTZCIDExQkY7CitCMUM5O0IxQzk7MTEwMiAxMTZCIDExQzA7QjFDOTsxMTAyIDExNkIgMTFDMDsKK0IxQ0E7QjFDQTsxMTAyIDExNkIgMTFDMTtCMUNBOzExMDIgMTE2QiAxMUMxOworQjFDQjtCMUNCOzExMDIgMTE2QiAxMUMyO0IxQ0I7MTEwMiAxMTZCIDExQzI7CitCMUNDO0IxQ0M7MTEwMiAxMTZDO0IxQ0M7MTEwMiAxMTZDOworQjFDRDtCMUNEOzExMDIgMTE2QyAxMUE4O0IxQ0Q7MTEwMiAxMTZDIDExQTg7CitCMUNFO0IxQ0U7MTEwMiAxMTZDIDExQTk7QjFDRTsxMTAyIDExNkMgMTFBOTsKK0IxQ0Y7QjFDRjsxMTAyIDExNkMgMTFBQTtCMUNGOzExMDIgMTE2QyAxMUFBOworQjFEMDtCMUQwOzExMDIgMTE2QyAxMUFCO0IxRDA7MTEwMiAxMTZDIDExQUI7CitCMUQxO0IxRDE7MTEwMiAxMTZDIDExQUM7QjFEMTsxMTAyIDExNkMgMTFBQzsKK0IxRDI7QjFEMjsxMTAyIDExNkMgMTFBRDtCMUQyOzExMDIgMTE2QyAxMUFEOworQjFEMztCMUQzOzExMDIgMTE2QyAxMUFFO0IxRDM7MTEwMiAxMTZDIDExQUU7CitCMUQ0O0IxRDQ7MTEwMiAxMTZDIDExQUY7QjFENDsxMTAyIDExNkMgMTFBRjsKK0IxRDU7QjFENTsxMTAyIDExNkMgMTFCMDtCMUQ1OzExMDIgMTE2QyAxMUIwOworQjFENjtCMUQ2OzExMDIgMTE2QyAxMUIxO0IxRDY7MTEwMiAxMTZDIDExQjE7CitCMUQ3O0IxRDc7MTEwMiAxMTZDIDExQjI7QjFENzsxMTAyIDExNkMgMTFCMjsKK0IxRDg7QjFEODsxMTAyIDExNkMgMTFCMztCMUQ4OzExMDIgMTE2QyAxMUIzOworQjFEOTtCMUQ5OzExMDIgMTE2QyAxMUI0O0IxRDk7MTEwMiAxMTZDIDExQjQ7CitCMURBO0IxREE7MTEwMiAxMTZDIDExQjU7QjFEQTsxMTAyIDExNkMgMTFCNTsKK0IxREI7QjFEQjsxMTAyIDExNkMgMTFCNjtCMURCOzExMDIgMTE2QyAxMUI2OworQjFEQztCMURDOzExMDIgMTE2QyAxMUI3O0IxREM7MTEwMiAxMTZDIDExQjc7CitCMUREO0IxREQ7MTEwMiAxMTZDIDExQjg7QjFERDsxMTAyIDExNkMgMTFCODsKK0IxREU7QjFERTsxMTAyIDExNkMgMTFCOTtCMURFOzExMDIgMTE2QyAxMUI5OworQjFERjtCMURGOzExMDIgMTE2QyAxMUJBO0IxREY7MTEwMiAxMTZDIDExQkE7CitCMUUwO0IxRTA7MTEwMiAxMTZDIDExQkI7QjFFMDsxMTAyIDExNkMgMTFCQjsKK0IxRTE7QjFFMTsxMTAyIDExNkMgMTFCQztCMUUxOzExMDIgMTE2QyAxMUJDOworQjFFMjtCMUUyOzExMDIgMTE2QyAxMUJEO0IxRTI7MTEwMiAxMTZDIDExQkQ7CitCMUUzO0IxRTM7MTEwMiAxMTZDIDExQkU7QjFFMzsxMTAyIDExNkMgMTFCRTsKK0IxRTQ7QjFFNDsxMTAyIDExNkMgMTFCRjtCMUU0OzExMDIgMTE2QyAxMUJGOworQjFFNTtCMUU1OzExMDIgMTE2QyAxMUMwO0IxRTU7MTEwMiAxMTZDIDExQzA7CitCMUU2O0IxRTY7MTEwMiAxMTZDIDExQzE7QjFFNjsxMTAyIDExNkMgMTFDMTsKK0IxRTc7QjFFNzsxMTAyIDExNkMgMTFDMjtCMUU3OzExMDIgMTE2QyAxMUMyOworQjFFODtCMUU4OzExMDIgMTE2RDtCMUU4OzExMDIgMTE2RDsKK0IxRTk7QjFFOTsxMTAyIDExNkQgMTFBODtCMUU5OzExMDIgMTE2RCAxMUE4OworQjFFQTtCMUVBOzExMDIgMTE2RCAxMUE5O0IxRUE7MTEwMiAxMTZEIDExQTk7CitCMUVCO0IxRUI7MTEwMiAxMTZEIDExQUE7QjFFQjsxMTAyIDExNkQgMTFBQTsKK0IxRUM7QjFFQzsxMTAyIDExNkQgMTFBQjtCMUVDOzExMDIgMTE2RCAxMUFCOworQjFFRDtCMUVEOzExMDIgMTE2RCAxMUFDO0IxRUQ7MTEwMiAxMTZEIDExQUM7CitCMUVFO0IxRUU7MTEwMiAxMTZEIDExQUQ7QjFFRTsxMTAyIDExNkQgMTFBRDsKK0IxRUY7QjFFRjsxMTAyIDExNkQgMTFBRTtCMUVGOzExMDIgMTE2RCAxMUFFOworQjFGMDtCMUYwOzExMDIgMTE2RCAxMUFGO0IxRjA7MTEwMiAxMTZEIDExQUY7CitCMUYxO0IxRjE7MTEwMiAxMTZEIDExQjA7QjFGMTsxMTAyIDExNkQgMTFCMDsKK0IxRjI7QjFGMjsxMTAyIDExNkQgMTFCMTtCMUYyOzExMDIgMTE2RCAxMUIxOworQjFGMztCMUYzOzExMDIgMTE2RCAxMUIyO0IxRjM7MTEwMiAxMTZEIDExQjI7CitCMUY0O0IxRjQ7MTEwMiAxMTZEIDExQjM7QjFGNDsxMTAyIDExNkQgMTFCMzsKK0IxRjU7QjFGNTsxMTAyIDExNkQgMTFCNDtCMUY1OzExMDIgMTE2RCAxMUI0OworQjFGNjtCMUY2OzExMDIgMTE2RCAxMUI1O0IxRjY7MTEwMiAxMTZEIDExQjU7CitCMUY3O0IxRjc7MTEwMiAxMTZEIDExQjY7QjFGNzsxMTAyIDExNkQgMTFCNjsKK0IxRjg7QjFGODsxMTAyIDExNkQgMTFCNztCMUY4OzExMDIgMTE2RCAxMUI3OworQjFGOTtCMUY5OzExMDIgMTE2RCAxMUI4O0IxRjk7MTEwMiAxMTZEIDExQjg7CitCMUZBO0IxRkE7MTEwMiAxMTZEIDExQjk7QjFGQTsxMTAyIDExNkQgMTFCOTsKK0IxRkI7QjFGQjsxMTAyIDExNkQgMTFCQTtCMUZCOzExMDIgMTE2RCAxMUJBOworQjFGQztCMUZDOzExMDIgMTE2RCAxMUJCO0IxRkM7MTEwMiAxMTZEIDExQkI7CitCMUZEO0IxRkQ7MTEwMiAxMTZEIDExQkM7QjFGRDsxMTAyIDExNkQgMTFCQzsKK0IxRkU7QjFGRTsxMTAyIDExNkQgMTFCRDtCMUZFOzExMDIgMTE2RCAxMUJEOworQjFGRjtCMUZGOzExMDIgMTE2RCAxMUJFO0IxRkY7MTEwMiAxMTZEIDExQkU7CitCMjAwO0IyMDA7MTEwMiAxMTZEIDExQkY7QjIwMDsxMTAyIDExNkQgMTFCRjsKK0IyMDE7QjIwMTsxMTAyIDExNkQgMTFDMDtCMjAxOzExMDIgMTE2RCAxMUMwOworQjIwMjtCMjAyOzExMDIgMTE2RCAxMUMxO0IyMDI7MTEwMiAxMTZEIDExQzE7CitCMjAzO0IyMDM7MTEwMiAxMTZEIDExQzI7QjIwMzsxMTAyIDExNkQgMTFDMjsKK0IyMDQ7QjIwNDsxMTAyIDExNkU7QjIwNDsxMTAyIDExNkU7CitCMjA1O0IyMDU7MTEwMiAxMTZFIDExQTg7QjIwNTsxMTAyIDExNkUgMTFBODsKK0IyMDY7QjIwNjsxMTAyIDExNkUgMTFBOTtCMjA2OzExMDIgMTE2RSAxMUE5OworQjIwNztCMjA3OzExMDIgMTE2RSAxMUFBO0IyMDc7MTEwMiAxMTZFIDExQUE7CitCMjA4O0IyMDg7MTEwMiAxMTZFIDExQUI7QjIwODsxMTAyIDExNkUgMTFBQjsKK0IyMDk7QjIwOTsxMTAyIDExNkUgMTFBQztCMjA5OzExMDIgMTE2RSAxMUFDOworQjIwQTtCMjBBOzExMDIgMTE2RSAxMUFEO0IyMEE7MTEwMiAxMTZFIDExQUQ7CitCMjBCO0IyMEI7MTEwMiAxMTZFIDExQUU7QjIwQjsxMTAyIDExNkUgMTFBRTsKK0IyMEM7QjIwQzsxMTAyIDExNkUgMTFBRjtCMjBDOzExMDIgMTE2RSAxMUFGOworQjIwRDtCMjBEOzExMDIgMTE2RSAxMUIwO0IyMEQ7MTEwMiAxMTZFIDExQjA7CitCMjBFO0IyMEU7MTEwMiAxMTZFIDExQjE7QjIwRTsxMTAyIDExNkUgMTFCMTsKK0IyMEY7QjIwRjsxMTAyIDExNkUgMTFCMjtCMjBGOzExMDIgMTE2RSAxMUIyOworQjIxMDtCMjEwOzExMDIgMTE2RSAxMUIzO0IyMTA7MTEwMiAxMTZFIDExQjM7CitCMjExO0IyMTE7MTEwMiAxMTZFIDExQjQ7QjIxMTsxMTAyIDExNkUgMTFCNDsKK0IyMTI7QjIxMjsxMTAyIDExNkUgMTFCNTtCMjEyOzExMDIgMTE2RSAxMUI1OworQjIxMztCMjEzOzExMDIgMTE2RSAxMUI2O0IyMTM7MTEwMiAxMTZFIDExQjY7CitCMjE0O0IyMTQ7MTEwMiAxMTZFIDExQjc7QjIxNDsxMTAyIDExNkUgMTFCNzsKK0IyMTU7QjIxNTsxMTAyIDExNkUgMTFCODtCMjE1OzExMDIgMTE2RSAxMUI4OworQjIxNjtCMjE2OzExMDIgMTE2RSAxMUI5O0IyMTY7MTEwMiAxMTZFIDExQjk7CitCMjE3O0IyMTc7MTEwMiAxMTZFIDExQkE7QjIxNzsxMTAyIDExNkUgMTFCQTsKK0IyMTg7QjIxODsxMTAyIDExNkUgMTFCQjtCMjE4OzExMDIgMTE2RSAxMUJCOworQjIxOTtCMjE5OzExMDIgMTE2RSAxMUJDO0IyMTk7MTEwMiAxMTZFIDExQkM7CitCMjFBO0IyMUE7MTEwMiAxMTZFIDExQkQ7QjIxQTsxMTAyIDExNkUgMTFCRDsKK0IyMUI7QjIxQjsxMTAyIDExNkUgMTFCRTtCMjFCOzExMDIgMTE2RSAxMUJFOworQjIxQztCMjFDOzExMDIgMTE2RSAxMUJGO0IyMUM7MTEwMiAxMTZFIDExQkY7CitCMjFEO0IyMUQ7MTEwMiAxMTZFIDExQzA7QjIxRDsxMTAyIDExNkUgMTFDMDsKK0IyMUU7QjIxRTsxMTAyIDExNkUgMTFDMTtCMjFFOzExMDIgMTE2RSAxMUMxOworQjIxRjtCMjFGOzExMDIgMTE2RSAxMUMyO0IyMUY7MTEwMiAxMTZFIDExQzI7CitCMjIwO0IyMjA7MTEwMiAxMTZGO0IyMjA7MTEwMiAxMTZGOworQjIyMTtCMjIxOzExMDIgMTE2RiAxMUE4O0IyMjE7MTEwMiAxMTZGIDExQTg7CitCMjIyO0IyMjI7MTEwMiAxMTZGIDExQTk7QjIyMjsxMTAyIDExNkYgMTFBOTsKK0IyMjM7QjIyMzsxMTAyIDExNkYgMTFBQTtCMjIzOzExMDIgMTE2RiAxMUFBOworQjIyNDtCMjI0OzExMDIgMTE2RiAxMUFCO0IyMjQ7MTEwMiAxMTZGIDExQUI7CitCMjI1O0IyMjU7MTEwMiAxMTZGIDExQUM7QjIyNTsxMTAyIDExNkYgMTFBQzsKK0IyMjY7QjIyNjsxMTAyIDExNkYgMTFBRDtCMjI2OzExMDIgMTE2RiAxMUFEOworQjIyNztCMjI3OzExMDIgMTE2RiAxMUFFO0IyMjc7MTEwMiAxMTZGIDExQUU7CitCMjI4O0IyMjg7MTEwMiAxMTZGIDExQUY7QjIyODsxMTAyIDExNkYgMTFBRjsKK0IyMjk7QjIyOTsxMTAyIDExNkYgMTFCMDtCMjI5OzExMDIgMTE2RiAxMUIwOworQjIyQTtCMjJBOzExMDIgMTE2RiAxMUIxO0IyMkE7MTEwMiAxMTZGIDExQjE7CitCMjJCO0IyMkI7MTEwMiAxMTZGIDExQjI7QjIyQjsxMTAyIDExNkYgMTFCMjsKK0IyMkM7QjIyQzsxMTAyIDExNkYgMTFCMztCMjJDOzExMDIgMTE2RiAxMUIzOworQjIyRDtCMjJEOzExMDIgMTE2RiAxMUI0O0IyMkQ7MTEwMiAxMTZGIDExQjQ7CitCMjJFO0IyMkU7MTEwMiAxMTZGIDExQjU7QjIyRTsxMTAyIDExNkYgMTFCNTsKK0IyMkY7QjIyRjsxMTAyIDExNkYgMTFCNjtCMjJGOzExMDIgMTE2RiAxMUI2OworQjIzMDtCMjMwOzExMDIgMTE2RiAxMUI3O0IyMzA7MTEwMiAxMTZGIDExQjc7CitCMjMxO0IyMzE7MTEwMiAxMTZGIDExQjg7QjIzMTsxMTAyIDExNkYgMTFCODsKK0IyMzI7QjIzMjsxMTAyIDExNkYgMTFCOTtCMjMyOzExMDIgMTE2RiAxMUI5OworQjIzMztCMjMzOzExMDIgMTE2RiAxMUJBO0IyMzM7MTEwMiAxMTZGIDExQkE7CitCMjM0O0IyMzQ7MTEwMiAxMTZGIDExQkI7QjIzNDsxMTAyIDExNkYgMTFCQjsKK0IyMzU7QjIzNTsxMTAyIDExNkYgMTFCQztCMjM1OzExMDIgMTE2RiAxMUJDOworQjIzNjtCMjM2OzExMDIgMTE2RiAxMUJEO0IyMzY7MTEwMiAxMTZGIDExQkQ7CitCMjM3O0IyMzc7MTEwMiAxMTZGIDExQkU7QjIzNzsxMTAyIDExNkYgMTFCRTsKK0IyMzg7QjIzODsxMTAyIDExNkYgMTFCRjtCMjM4OzExMDIgMTE2RiAxMUJGOworQjIzOTtCMjM5OzExMDIgMTE2RiAxMUMwO0IyMzk7MTEwMiAxMTZGIDExQzA7CitCMjNBO0IyM0E7MTEwMiAxMTZGIDExQzE7QjIzQTsxMTAyIDExNkYgMTFDMTsKK0IyM0I7QjIzQjsxMTAyIDExNkYgMTFDMjtCMjNCOzExMDIgMTE2RiAxMUMyOworQjIzQztCMjNDOzExMDIgMTE3MDtCMjNDOzExMDIgMTE3MDsKK0IyM0Q7QjIzRDsxMTAyIDExNzAgMTFBODtCMjNEOzExMDIgMTE3MCAxMUE4OworQjIzRTtCMjNFOzExMDIgMTE3MCAxMUE5O0IyM0U7MTEwMiAxMTcwIDExQTk7CitCMjNGO0IyM0Y7MTEwMiAxMTcwIDExQUE7QjIzRjsxMTAyIDExNzAgMTFBQTsKK0IyNDA7QjI0MDsxMTAyIDExNzAgMTFBQjtCMjQwOzExMDIgMTE3MCAxMUFCOworQjI0MTtCMjQxOzExMDIgMTE3MCAxMUFDO0IyNDE7MTEwMiAxMTcwIDExQUM7CitCMjQyO0IyNDI7MTEwMiAxMTcwIDExQUQ7QjI0MjsxMTAyIDExNzAgMTFBRDsKK0IyNDM7QjI0MzsxMTAyIDExNzAgMTFBRTtCMjQzOzExMDIgMTE3MCAxMUFFOworQjI0NDtCMjQ0OzExMDIgMTE3MCAxMUFGO0IyNDQ7MTEwMiAxMTcwIDExQUY7CitCMjQ1O0IyNDU7MTEwMiAxMTcwIDExQjA7QjI0NTsxMTAyIDExNzAgMTFCMDsKK0IyNDY7QjI0NjsxMTAyIDExNzAgMTFCMTtCMjQ2OzExMDIgMTE3MCAxMUIxOworQjI0NztCMjQ3OzExMDIgMTE3MCAxMUIyO0IyNDc7MTEwMiAxMTcwIDExQjI7CitCMjQ4O0IyNDg7MTEwMiAxMTcwIDExQjM7QjI0ODsxMTAyIDExNzAgMTFCMzsKK0IyNDk7QjI0OTsxMTAyIDExNzAgMTFCNDtCMjQ5OzExMDIgMTE3MCAxMUI0OworQjI0QTtCMjRBOzExMDIgMTE3MCAxMUI1O0IyNEE7MTEwMiAxMTcwIDExQjU7CitCMjRCO0IyNEI7MTEwMiAxMTcwIDExQjY7QjI0QjsxMTAyIDExNzAgMTFCNjsKK0IyNEM7QjI0QzsxMTAyIDExNzAgMTFCNztCMjRDOzExMDIgMTE3MCAxMUI3OworQjI0RDtCMjREOzExMDIgMTE3MCAxMUI4O0IyNEQ7MTEwMiAxMTcwIDExQjg7CitCMjRFO0IyNEU7MTEwMiAxMTcwIDExQjk7QjI0RTsxMTAyIDExNzAgMTFCOTsKK0IyNEY7QjI0RjsxMTAyIDExNzAgMTFCQTtCMjRGOzExMDIgMTE3MCAxMUJBOworQjI1MDtCMjUwOzExMDIgMTE3MCAxMUJCO0IyNTA7MTEwMiAxMTcwIDExQkI7CitCMjUxO0IyNTE7MTEwMiAxMTcwIDExQkM7QjI1MTsxMTAyIDExNzAgMTFCQzsKK0IyNTI7QjI1MjsxMTAyIDExNzAgMTFCRDtCMjUyOzExMDIgMTE3MCAxMUJEOworQjI1MztCMjUzOzExMDIgMTE3MCAxMUJFO0IyNTM7MTEwMiAxMTcwIDExQkU7CitCMjU0O0IyNTQ7MTEwMiAxMTcwIDExQkY7QjI1NDsxMTAyIDExNzAgMTFCRjsKK0IyNTU7QjI1NTsxMTAyIDExNzAgMTFDMDtCMjU1OzExMDIgMTE3MCAxMUMwOworQjI1NjtCMjU2OzExMDIgMTE3MCAxMUMxO0IyNTY7MTEwMiAxMTcwIDExQzE7CitCMjU3O0IyNTc7MTEwMiAxMTcwIDExQzI7QjI1NzsxMTAyIDExNzAgMTFDMjsKK0IyNTg7QjI1ODsxMTAyIDExNzE7QjI1ODsxMTAyIDExNzE7CitCMjU5O0IyNTk7MTEwMiAxMTcxIDExQTg7QjI1OTsxMTAyIDExNzEgMTFBODsKK0IyNUE7QjI1QTsxMTAyIDExNzEgMTFBOTtCMjVBOzExMDIgMTE3MSAxMUE5OworQjI1QjtCMjVCOzExMDIgMTE3MSAxMUFBO0IyNUI7MTEwMiAxMTcxIDExQUE7CitCMjVDO0IyNUM7MTEwMiAxMTcxIDExQUI7QjI1QzsxMTAyIDExNzEgMTFBQjsKK0IyNUQ7QjI1RDsxMTAyIDExNzEgMTFBQztCMjVEOzExMDIgMTE3MSAxMUFDOworQjI1RTtCMjVFOzExMDIgMTE3MSAxMUFEO0IyNUU7MTEwMiAxMTcxIDExQUQ7CitCMjVGO0IyNUY7MTEwMiAxMTcxIDExQUU7QjI1RjsxMTAyIDExNzEgMTFBRTsKK0IyNjA7QjI2MDsxMTAyIDExNzEgMTFBRjtCMjYwOzExMDIgMTE3MSAxMUFGOworQjI2MTtCMjYxOzExMDIgMTE3MSAxMUIwO0IyNjE7MTEwMiAxMTcxIDExQjA7CitCMjYyO0IyNjI7MTEwMiAxMTcxIDExQjE7QjI2MjsxMTAyIDExNzEgMTFCMTsKK0IyNjM7QjI2MzsxMTAyIDExNzEgMTFCMjtCMjYzOzExMDIgMTE3MSAxMUIyOworQjI2NDtCMjY0OzExMDIgMTE3MSAxMUIzO0IyNjQ7MTEwMiAxMTcxIDExQjM7CitCMjY1O0IyNjU7MTEwMiAxMTcxIDExQjQ7QjI2NTsxMTAyIDExNzEgMTFCNDsKK0IyNjY7QjI2NjsxMTAyIDExNzEgMTFCNTtCMjY2OzExMDIgMTE3MSAxMUI1OworQjI2NztCMjY3OzExMDIgMTE3MSAxMUI2O0IyNjc7MTEwMiAxMTcxIDExQjY7CitCMjY4O0IyNjg7MTEwMiAxMTcxIDExQjc7QjI2ODsxMTAyIDExNzEgMTFCNzsKK0IyNjk7QjI2OTsxMTAyIDExNzEgMTFCODtCMjY5OzExMDIgMTE3MSAxMUI4OworQjI2QTtCMjZBOzExMDIgMTE3MSAxMUI5O0IyNkE7MTEwMiAxMTcxIDExQjk7CitCMjZCO0IyNkI7MTEwMiAxMTcxIDExQkE7QjI2QjsxMTAyIDExNzEgMTFCQTsKK0IyNkM7QjI2QzsxMTAyIDExNzEgMTFCQjtCMjZDOzExMDIgMTE3MSAxMUJCOworQjI2RDtCMjZEOzExMDIgMTE3MSAxMUJDO0IyNkQ7MTEwMiAxMTcxIDExQkM7CitCMjZFO0IyNkU7MTEwMiAxMTcxIDExQkQ7QjI2RTsxMTAyIDExNzEgMTFCRDsKK0IyNkY7QjI2RjsxMTAyIDExNzEgMTFCRTtCMjZGOzExMDIgMTE3MSAxMUJFOworQjI3MDtCMjcwOzExMDIgMTE3MSAxMUJGO0IyNzA7MTEwMiAxMTcxIDExQkY7CitCMjcxO0IyNzE7MTEwMiAxMTcxIDExQzA7QjI3MTsxMTAyIDExNzEgMTFDMDsKK0IyNzI7QjI3MjsxMTAyIDExNzEgMTFDMTtCMjcyOzExMDIgMTE3MSAxMUMxOworQjI3MztCMjczOzExMDIgMTE3MSAxMUMyO0IyNzM7MTEwMiAxMTcxIDExQzI7CitCMjc0O0IyNzQ7MTEwMiAxMTcyO0IyNzQ7MTEwMiAxMTcyOworQjI3NTtCMjc1OzExMDIgMTE3MiAxMUE4O0IyNzU7MTEwMiAxMTcyIDExQTg7CitCMjc2O0IyNzY7MTEwMiAxMTcyIDExQTk7QjI3NjsxMTAyIDExNzIgMTFBOTsKK0IyNzc7QjI3NzsxMTAyIDExNzIgMTFBQTtCMjc3OzExMDIgMTE3MiAxMUFBOworQjI3ODtCMjc4OzExMDIgMTE3MiAxMUFCO0IyNzg7MTEwMiAxMTcyIDExQUI7CitCMjc5O0IyNzk7MTEwMiAxMTcyIDExQUM7QjI3OTsxMTAyIDExNzIgMTFBQzsKK0IyN0E7QjI3QTsxMTAyIDExNzIgMTFBRDtCMjdBOzExMDIgMTE3MiAxMUFEOworQjI3QjtCMjdCOzExMDIgMTE3MiAxMUFFO0IyN0I7MTEwMiAxMTcyIDExQUU7CitCMjdDO0IyN0M7MTEwMiAxMTcyIDExQUY7QjI3QzsxMTAyIDExNzIgMTFBRjsKK0IyN0Q7QjI3RDsxMTAyIDExNzIgMTFCMDtCMjdEOzExMDIgMTE3MiAxMUIwOworQjI3RTtCMjdFOzExMDIgMTE3MiAxMUIxO0IyN0U7MTEwMiAxMTcyIDExQjE7CitCMjdGO0IyN0Y7MTEwMiAxMTcyIDExQjI7QjI3RjsxMTAyIDExNzIgMTFCMjsKK0IyODA7QjI4MDsxMTAyIDExNzIgMTFCMztCMjgwOzExMDIgMTE3MiAxMUIzOworQjI4MTtCMjgxOzExMDIgMTE3MiAxMUI0O0IyODE7MTEwMiAxMTcyIDExQjQ7CitCMjgyO0IyODI7MTEwMiAxMTcyIDExQjU7QjI4MjsxMTAyIDExNzIgMTFCNTsKK0IyODM7QjI4MzsxMTAyIDExNzIgMTFCNjtCMjgzOzExMDIgMTE3MiAxMUI2OworQjI4NDtCMjg0OzExMDIgMTE3MiAxMUI3O0IyODQ7MTEwMiAxMTcyIDExQjc7CitCMjg1O0IyODU7MTEwMiAxMTcyIDExQjg7QjI4NTsxMTAyIDExNzIgMTFCODsKK0IyODY7QjI4NjsxMTAyIDExNzIgMTFCOTtCMjg2OzExMDIgMTE3MiAxMUI5OworQjI4NztCMjg3OzExMDIgMTE3MiAxMUJBO0IyODc7MTEwMiAxMTcyIDExQkE7CitCMjg4O0IyODg7MTEwMiAxMTcyIDExQkI7QjI4ODsxMTAyIDExNzIgMTFCQjsKK0IyODk7QjI4OTsxMTAyIDExNzIgMTFCQztCMjg5OzExMDIgMTE3MiAxMUJDOworQjI4QTtCMjhBOzExMDIgMTE3MiAxMUJEO0IyOEE7MTEwMiAxMTcyIDExQkQ7CitCMjhCO0IyOEI7MTEwMiAxMTcyIDExQkU7QjI4QjsxMTAyIDExNzIgMTFCRTsKK0IyOEM7QjI4QzsxMTAyIDExNzIgMTFCRjtCMjhDOzExMDIgMTE3MiAxMUJGOworQjI4RDtCMjhEOzExMDIgMTE3MiAxMUMwO0IyOEQ7MTEwMiAxMTcyIDExQzA7CitCMjhFO0IyOEU7MTEwMiAxMTcyIDExQzE7QjI4RTsxMTAyIDExNzIgMTFDMTsKK0IyOEY7QjI4RjsxMTAyIDExNzIgMTFDMjtCMjhGOzExMDIgMTE3MiAxMUMyOworQjI5MDtCMjkwOzExMDIgMTE3MztCMjkwOzExMDIgMTE3MzsKK0IyOTE7QjI5MTsxMTAyIDExNzMgMTFBODtCMjkxOzExMDIgMTE3MyAxMUE4OworQjI5MjtCMjkyOzExMDIgMTE3MyAxMUE5O0IyOTI7MTEwMiAxMTczIDExQTk7CitCMjkzO0IyOTM7MTEwMiAxMTczIDExQUE7QjI5MzsxMTAyIDExNzMgMTFBQTsKK0IyOTQ7QjI5NDsxMTAyIDExNzMgMTFBQjtCMjk0OzExMDIgMTE3MyAxMUFCOworQjI5NTtCMjk1OzExMDIgMTE3MyAxMUFDO0IyOTU7MTEwMiAxMTczIDExQUM7CitCMjk2O0IyOTY7MTEwMiAxMTczIDExQUQ7QjI5NjsxMTAyIDExNzMgMTFBRDsKK0IyOTc7QjI5NzsxMTAyIDExNzMgMTFBRTtCMjk3OzExMDIgMTE3MyAxMUFFOworQjI5ODtCMjk4OzExMDIgMTE3MyAxMUFGO0IyOTg7MTEwMiAxMTczIDExQUY7CitCMjk5O0IyOTk7MTEwMiAxMTczIDExQjA7QjI5OTsxMTAyIDExNzMgMTFCMDsKK0IyOUE7QjI5QTsxMTAyIDExNzMgMTFCMTtCMjlBOzExMDIgMTE3MyAxMUIxOworQjI5QjtCMjlCOzExMDIgMTE3MyAxMUIyO0IyOUI7MTEwMiAxMTczIDExQjI7CitCMjlDO0IyOUM7MTEwMiAxMTczIDExQjM7QjI5QzsxMTAyIDExNzMgMTFCMzsKK0IyOUQ7QjI5RDsxMTAyIDExNzMgMTFCNDtCMjlEOzExMDIgMTE3MyAxMUI0OworQjI5RTtCMjlFOzExMDIgMTE3MyAxMUI1O0IyOUU7MTEwMiAxMTczIDExQjU7CitCMjlGO0IyOUY7MTEwMiAxMTczIDExQjY7QjI5RjsxMTAyIDExNzMgMTFCNjsKK0IyQTA7QjJBMDsxMTAyIDExNzMgMTFCNztCMkEwOzExMDIgMTE3MyAxMUI3OworQjJBMTtCMkExOzExMDIgMTE3MyAxMUI4O0IyQTE7MTEwMiAxMTczIDExQjg7CitCMkEyO0IyQTI7MTEwMiAxMTczIDExQjk7QjJBMjsxMTAyIDExNzMgMTFCOTsKK0IyQTM7QjJBMzsxMTAyIDExNzMgMTFCQTtCMkEzOzExMDIgMTE3MyAxMUJBOworQjJBNDtCMkE0OzExMDIgMTE3MyAxMUJCO0IyQTQ7MTEwMiAxMTczIDExQkI7CitCMkE1O0IyQTU7MTEwMiAxMTczIDExQkM7QjJBNTsxMTAyIDExNzMgMTFCQzsKK0IyQTY7QjJBNjsxMTAyIDExNzMgMTFCRDtCMkE2OzExMDIgMTE3MyAxMUJEOworQjJBNztCMkE3OzExMDIgMTE3MyAxMUJFO0IyQTc7MTEwMiAxMTczIDExQkU7CitCMkE4O0IyQTg7MTEwMiAxMTczIDExQkY7QjJBODsxMTAyIDExNzMgMTFCRjsKK0IyQTk7QjJBOTsxMTAyIDExNzMgMTFDMDtCMkE5OzExMDIgMTE3MyAxMUMwOworQjJBQTtCMkFBOzExMDIgMTE3MyAxMUMxO0IyQUE7MTEwMiAxMTczIDExQzE7CitCMkFCO0IyQUI7MTEwMiAxMTczIDExQzI7QjJBQjsxMTAyIDExNzMgMTFDMjsKK0IyQUM7QjJBQzsxMTAyIDExNzQ7QjJBQzsxMTAyIDExNzQ7CitCMkFEO0IyQUQ7MTEwMiAxMTc0IDExQTg7QjJBRDsxMTAyIDExNzQgMTFBODsKK0IyQUU7QjJBRTsxMTAyIDExNzQgMTFBOTtCMkFFOzExMDIgMTE3NCAxMUE5OworQjJBRjtCMkFGOzExMDIgMTE3NCAxMUFBO0IyQUY7MTEwMiAxMTc0IDExQUE7CitCMkIwO0IyQjA7MTEwMiAxMTc0IDExQUI7QjJCMDsxMTAyIDExNzQgMTFBQjsKK0IyQjE7QjJCMTsxMTAyIDExNzQgMTFBQztCMkIxOzExMDIgMTE3NCAxMUFDOworQjJCMjtCMkIyOzExMDIgMTE3NCAxMUFEO0IyQjI7MTEwMiAxMTc0IDExQUQ7CitCMkIzO0IyQjM7MTEwMiAxMTc0IDExQUU7QjJCMzsxMTAyIDExNzQgMTFBRTsKK0IyQjQ7QjJCNDsxMTAyIDExNzQgMTFBRjtCMkI0OzExMDIgMTE3NCAxMUFGOworQjJCNTtCMkI1OzExMDIgMTE3NCAxMUIwO0IyQjU7MTEwMiAxMTc0IDExQjA7CitCMkI2O0IyQjY7MTEwMiAxMTc0IDExQjE7QjJCNjsxMTAyIDExNzQgMTFCMTsKK0IyQjc7QjJCNzsxMTAyIDExNzQgMTFCMjtCMkI3OzExMDIgMTE3NCAxMUIyOworQjJCODtCMkI4OzExMDIgMTE3NCAxMUIzO0IyQjg7MTEwMiAxMTc0IDExQjM7CitCMkI5O0IyQjk7MTEwMiAxMTc0IDExQjQ7QjJCOTsxMTAyIDExNzQgMTFCNDsKK0IyQkE7QjJCQTsxMTAyIDExNzQgMTFCNTtCMkJBOzExMDIgMTE3NCAxMUI1OworQjJCQjtCMkJCOzExMDIgMTE3NCAxMUI2O0IyQkI7MTEwMiAxMTc0IDExQjY7CitCMkJDO0IyQkM7MTEwMiAxMTc0IDExQjc7QjJCQzsxMTAyIDExNzQgMTFCNzsKK0IyQkQ7QjJCRDsxMTAyIDExNzQgMTFCODtCMkJEOzExMDIgMTE3NCAxMUI4OworQjJCRTtCMkJFOzExMDIgMTE3NCAxMUI5O0IyQkU7MTEwMiAxMTc0IDExQjk7CitCMkJGO0IyQkY7MTEwMiAxMTc0IDExQkE7QjJCRjsxMTAyIDExNzQgMTFCQTsKK0IyQzA7QjJDMDsxMTAyIDExNzQgMTFCQjtCMkMwOzExMDIgMTE3NCAxMUJCOworQjJDMTtCMkMxOzExMDIgMTE3NCAxMUJDO0IyQzE7MTEwMiAxMTc0IDExQkM7CitCMkMyO0IyQzI7MTEwMiAxMTc0IDExQkQ7QjJDMjsxMTAyIDExNzQgMTFCRDsKK0IyQzM7QjJDMzsxMTAyIDExNzQgMTFCRTtCMkMzOzExMDIgMTE3NCAxMUJFOworQjJDNDtCMkM0OzExMDIgMTE3NCAxMUJGO0IyQzQ7MTEwMiAxMTc0IDExQkY7CitCMkM1O0IyQzU7MTEwMiAxMTc0IDExQzA7QjJDNTsxMTAyIDExNzQgMTFDMDsKK0IyQzY7QjJDNjsxMTAyIDExNzQgMTFDMTtCMkM2OzExMDIgMTE3NCAxMUMxOworQjJDNztCMkM3OzExMDIgMTE3NCAxMUMyO0IyQzc7MTEwMiAxMTc0IDExQzI7CitCMkM4O0IyQzg7MTEwMiAxMTc1O0IyQzg7MTEwMiAxMTc1OworQjJDOTtCMkM5OzExMDIgMTE3NSAxMUE4O0IyQzk7MTEwMiAxMTc1IDExQTg7CitCMkNBO0IyQ0E7MTEwMiAxMTc1IDExQTk7QjJDQTsxMTAyIDExNzUgMTFBOTsKK0IyQ0I7QjJDQjsxMTAyIDExNzUgMTFBQTtCMkNCOzExMDIgMTE3NSAxMUFBOworQjJDQztCMkNDOzExMDIgMTE3NSAxMUFCO0IyQ0M7MTEwMiAxMTc1IDExQUI7CitCMkNEO0IyQ0Q7MTEwMiAxMTc1IDExQUM7QjJDRDsxMTAyIDExNzUgMTFBQzsKK0IyQ0U7QjJDRTsxMTAyIDExNzUgMTFBRDtCMkNFOzExMDIgMTE3NSAxMUFEOworQjJDRjtCMkNGOzExMDIgMTE3NSAxMUFFO0IyQ0Y7MTEwMiAxMTc1IDExQUU7CitCMkQwO0IyRDA7MTEwMiAxMTc1IDExQUY7QjJEMDsxMTAyIDExNzUgMTFBRjsKK0IyRDE7QjJEMTsxMTAyIDExNzUgMTFCMDtCMkQxOzExMDIgMTE3NSAxMUIwOworQjJEMjtCMkQyOzExMDIgMTE3NSAxMUIxO0IyRDI7MTEwMiAxMTc1IDExQjE7CitCMkQzO0IyRDM7MTEwMiAxMTc1IDExQjI7QjJEMzsxMTAyIDExNzUgMTFCMjsKK0IyRDQ7QjJENDsxMTAyIDExNzUgMTFCMztCMkQ0OzExMDIgMTE3NSAxMUIzOworQjJENTtCMkQ1OzExMDIgMTE3NSAxMUI0O0IyRDU7MTEwMiAxMTc1IDExQjQ7CitCMkQ2O0IyRDY7MTEwMiAxMTc1IDExQjU7QjJENjsxMTAyIDExNzUgMTFCNTsKK0IyRDc7QjJENzsxMTAyIDExNzUgMTFCNjtCMkQ3OzExMDIgMTE3NSAxMUI2OworQjJEODtCMkQ4OzExMDIgMTE3NSAxMUI3O0IyRDg7MTEwMiAxMTc1IDExQjc7CitCMkQ5O0IyRDk7MTEwMiAxMTc1IDExQjg7QjJEOTsxMTAyIDExNzUgMTFCODsKK0IyREE7QjJEQTsxMTAyIDExNzUgMTFCOTtCMkRBOzExMDIgMTE3NSAxMUI5OworQjJEQjtCMkRCOzExMDIgMTE3NSAxMUJBO0IyREI7MTEwMiAxMTc1IDExQkE7CitCMkRDO0IyREM7MTEwMiAxMTc1IDExQkI7QjJEQzsxMTAyIDExNzUgMTFCQjsKK0IyREQ7QjJERDsxMTAyIDExNzUgMTFCQztCMkREOzExMDIgMTE3NSAxMUJDOworQjJERTtCMkRFOzExMDIgMTE3NSAxMUJEO0IyREU7MTEwMiAxMTc1IDExQkQ7CitCMkRGO0IyREY7MTEwMiAxMTc1IDExQkU7QjJERjsxMTAyIDExNzUgMTFCRTsKK0IyRTA7QjJFMDsxMTAyIDExNzUgMTFCRjtCMkUwOzExMDIgMTE3NSAxMUJGOworQjJFMTtCMkUxOzExMDIgMTE3NSAxMUMwO0IyRTE7MTEwMiAxMTc1IDExQzA7CitCMkUyO0IyRTI7MTEwMiAxMTc1IDExQzE7QjJFMjsxMTAyIDExNzUgMTFDMTsKK0IyRTM7QjJFMzsxMTAyIDExNzUgMTFDMjtCMkUzOzExMDIgMTE3NSAxMUMyOworQjJFNDtCMkU0OzExMDMgMTE2MTtCMkU0OzExMDMgMTE2MTsKK0IyRTU7QjJFNTsxMTAzIDExNjEgMTFBODtCMkU1OzExMDMgMTE2MSAxMUE4OworQjJFNjtCMkU2OzExMDMgMTE2MSAxMUE5O0IyRTY7MTEwMyAxMTYxIDExQTk7CitCMkU3O0IyRTc7MTEwMyAxMTYxIDExQUE7QjJFNzsxMTAzIDExNjEgMTFBQTsKK0IyRTg7QjJFODsxMTAzIDExNjEgMTFBQjtCMkU4OzExMDMgMTE2MSAxMUFCOworQjJFOTtCMkU5OzExMDMgMTE2MSAxMUFDO0IyRTk7MTEwMyAxMTYxIDExQUM7CitCMkVBO0IyRUE7MTEwMyAxMTYxIDExQUQ7QjJFQTsxMTAzIDExNjEgMTFBRDsKK0IyRUI7QjJFQjsxMTAzIDExNjEgMTFBRTtCMkVCOzExMDMgMTE2MSAxMUFFOworQjJFQztCMkVDOzExMDMgMTE2MSAxMUFGO0IyRUM7MTEwMyAxMTYxIDExQUY7CitCMkVEO0IyRUQ7MTEwMyAxMTYxIDExQjA7QjJFRDsxMTAzIDExNjEgMTFCMDsKK0IyRUU7QjJFRTsxMTAzIDExNjEgMTFCMTtCMkVFOzExMDMgMTE2MSAxMUIxOworQjJFRjtCMkVGOzExMDMgMTE2MSAxMUIyO0IyRUY7MTEwMyAxMTYxIDExQjI7CitCMkYwO0IyRjA7MTEwMyAxMTYxIDExQjM7QjJGMDsxMTAzIDExNjEgMTFCMzsKK0IyRjE7QjJGMTsxMTAzIDExNjEgMTFCNDtCMkYxOzExMDMgMTE2MSAxMUI0OworQjJGMjtCMkYyOzExMDMgMTE2MSAxMUI1O0IyRjI7MTEwMyAxMTYxIDExQjU7CitCMkYzO0IyRjM7MTEwMyAxMTYxIDExQjY7QjJGMzsxMTAzIDExNjEgMTFCNjsKK0IyRjQ7QjJGNDsxMTAzIDExNjEgMTFCNztCMkY0OzExMDMgMTE2MSAxMUI3OworQjJGNTtCMkY1OzExMDMgMTE2MSAxMUI4O0IyRjU7MTEwMyAxMTYxIDExQjg7CitCMkY2O0IyRjY7MTEwMyAxMTYxIDExQjk7QjJGNjsxMTAzIDExNjEgMTFCOTsKK0IyRjc7QjJGNzsxMTAzIDExNjEgMTFCQTtCMkY3OzExMDMgMTE2MSAxMUJBOworQjJGODtCMkY4OzExMDMgMTE2MSAxMUJCO0IyRjg7MTEwMyAxMTYxIDExQkI7CitCMkY5O0IyRjk7MTEwMyAxMTYxIDExQkM7QjJGOTsxMTAzIDExNjEgMTFCQzsKK0IyRkE7QjJGQTsxMTAzIDExNjEgMTFCRDtCMkZBOzExMDMgMTE2MSAxMUJEOworQjJGQjtCMkZCOzExMDMgMTE2MSAxMUJFO0IyRkI7MTEwMyAxMTYxIDExQkU7CitCMkZDO0IyRkM7MTEwMyAxMTYxIDExQkY7QjJGQzsxMTAzIDExNjEgMTFCRjsKK0IyRkQ7QjJGRDsxMTAzIDExNjEgMTFDMDtCMkZEOzExMDMgMTE2MSAxMUMwOworQjJGRTtCMkZFOzExMDMgMTE2MSAxMUMxO0IyRkU7MTEwMyAxMTYxIDExQzE7CitCMkZGO0IyRkY7MTEwMyAxMTYxIDExQzI7QjJGRjsxMTAzIDExNjEgMTFDMjsKK0IzMDA7QjMwMDsxMTAzIDExNjI7QjMwMDsxMTAzIDExNjI7CitCMzAxO0IzMDE7MTEwMyAxMTYyIDExQTg7QjMwMTsxMTAzIDExNjIgMTFBODsKK0IzMDI7QjMwMjsxMTAzIDExNjIgMTFBOTtCMzAyOzExMDMgMTE2MiAxMUE5OworQjMwMztCMzAzOzExMDMgMTE2MiAxMUFBO0IzMDM7MTEwMyAxMTYyIDExQUE7CitCMzA0O0IzMDQ7MTEwMyAxMTYyIDExQUI7QjMwNDsxMTAzIDExNjIgMTFBQjsKK0IzMDU7QjMwNTsxMTAzIDExNjIgMTFBQztCMzA1OzExMDMgMTE2MiAxMUFDOworQjMwNjtCMzA2OzExMDMgMTE2MiAxMUFEO0IzMDY7MTEwMyAxMTYyIDExQUQ7CitCMzA3O0IzMDc7MTEwMyAxMTYyIDExQUU7QjMwNzsxMTAzIDExNjIgMTFBRTsKK0IzMDg7QjMwODsxMTAzIDExNjIgMTFBRjtCMzA4OzExMDMgMTE2MiAxMUFGOworQjMwOTtCMzA5OzExMDMgMTE2MiAxMUIwO0IzMDk7MTEwMyAxMTYyIDExQjA7CitCMzBBO0IzMEE7MTEwMyAxMTYyIDExQjE7QjMwQTsxMTAzIDExNjIgMTFCMTsKK0IzMEI7QjMwQjsxMTAzIDExNjIgMTFCMjtCMzBCOzExMDMgMTE2MiAxMUIyOworQjMwQztCMzBDOzExMDMgMTE2MiAxMUIzO0IzMEM7MTEwMyAxMTYyIDExQjM7CitCMzBEO0IzMEQ7MTEwMyAxMTYyIDExQjQ7QjMwRDsxMTAzIDExNjIgMTFCNDsKK0IzMEU7QjMwRTsxMTAzIDExNjIgMTFCNTtCMzBFOzExMDMgMTE2MiAxMUI1OworQjMwRjtCMzBGOzExMDMgMTE2MiAxMUI2O0IzMEY7MTEwMyAxMTYyIDExQjY7CitCMzEwO0IzMTA7MTEwMyAxMTYyIDExQjc7QjMxMDsxMTAzIDExNjIgMTFCNzsKK0IzMTE7QjMxMTsxMTAzIDExNjIgMTFCODtCMzExOzExMDMgMTE2MiAxMUI4OworQjMxMjtCMzEyOzExMDMgMTE2MiAxMUI5O0IzMTI7MTEwMyAxMTYyIDExQjk7CitCMzEzO0IzMTM7MTEwMyAxMTYyIDExQkE7QjMxMzsxMTAzIDExNjIgMTFCQTsKK0IzMTQ7QjMxNDsxMTAzIDExNjIgMTFCQjtCMzE0OzExMDMgMTE2MiAxMUJCOworQjMxNTtCMzE1OzExMDMgMTE2MiAxMUJDO0IzMTU7MTEwMyAxMTYyIDExQkM7CitCMzE2O0IzMTY7MTEwMyAxMTYyIDExQkQ7QjMxNjsxMTAzIDExNjIgMTFCRDsKK0IzMTc7QjMxNzsxMTAzIDExNjIgMTFCRTtCMzE3OzExMDMgMTE2MiAxMUJFOworQjMxODtCMzE4OzExMDMgMTE2MiAxMUJGO0IzMTg7MTEwMyAxMTYyIDExQkY7CitCMzE5O0IzMTk7MTEwMyAxMTYyIDExQzA7QjMxOTsxMTAzIDExNjIgMTFDMDsKK0IzMUE7QjMxQTsxMTAzIDExNjIgMTFDMTtCMzFBOzExMDMgMTE2MiAxMUMxOworQjMxQjtCMzFCOzExMDMgMTE2MiAxMUMyO0IzMUI7MTEwMyAxMTYyIDExQzI7CitCMzFDO0IzMUM7MTEwMyAxMTYzO0IzMUM7MTEwMyAxMTYzOworQjMxRDtCMzFEOzExMDMgMTE2MyAxMUE4O0IzMUQ7MTEwMyAxMTYzIDExQTg7CitCMzFFO0IzMUU7MTEwMyAxMTYzIDExQTk7QjMxRTsxMTAzIDExNjMgMTFBOTsKK0IzMUY7QjMxRjsxMTAzIDExNjMgMTFBQTtCMzFGOzExMDMgMTE2MyAxMUFBOworQjMyMDtCMzIwOzExMDMgMTE2MyAxMUFCO0IzMjA7MTEwMyAxMTYzIDExQUI7CitCMzIxO0IzMjE7MTEwMyAxMTYzIDExQUM7QjMyMTsxMTAzIDExNjMgMTFBQzsKK0IzMjI7QjMyMjsxMTAzIDExNjMgMTFBRDtCMzIyOzExMDMgMTE2MyAxMUFEOworQjMyMztCMzIzOzExMDMgMTE2MyAxMUFFO0IzMjM7MTEwMyAxMTYzIDExQUU7CitCMzI0O0IzMjQ7MTEwMyAxMTYzIDExQUY7QjMyNDsxMTAzIDExNjMgMTFBRjsKK0IzMjU7QjMyNTsxMTAzIDExNjMgMTFCMDtCMzI1OzExMDMgMTE2MyAxMUIwOworQjMyNjtCMzI2OzExMDMgMTE2MyAxMUIxO0IzMjY7MTEwMyAxMTYzIDExQjE7CitCMzI3O0IzMjc7MTEwMyAxMTYzIDExQjI7QjMyNzsxMTAzIDExNjMgMTFCMjsKK0IzMjg7QjMyODsxMTAzIDExNjMgMTFCMztCMzI4OzExMDMgMTE2MyAxMUIzOworQjMyOTtCMzI5OzExMDMgMTE2MyAxMUI0O0IzMjk7MTEwMyAxMTYzIDExQjQ7CitCMzJBO0IzMkE7MTEwMyAxMTYzIDExQjU7QjMyQTsxMTAzIDExNjMgMTFCNTsKK0IzMkI7QjMyQjsxMTAzIDExNjMgMTFCNjtCMzJCOzExMDMgMTE2MyAxMUI2OworQjMyQztCMzJDOzExMDMgMTE2MyAxMUI3O0IzMkM7MTEwMyAxMTYzIDExQjc7CitCMzJEO0IzMkQ7MTEwMyAxMTYzIDExQjg7QjMyRDsxMTAzIDExNjMgMTFCODsKK0IzMkU7QjMyRTsxMTAzIDExNjMgMTFCOTtCMzJFOzExMDMgMTE2MyAxMUI5OworQjMyRjtCMzJGOzExMDMgMTE2MyAxMUJBO0IzMkY7MTEwMyAxMTYzIDExQkE7CitCMzMwO0IzMzA7MTEwMyAxMTYzIDExQkI7QjMzMDsxMTAzIDExNjMgMTFCQjsKK0IzMzE7QjMzMTsxMTAzIDExNjMgMTFCQztCMzMxOzExMDMgMTE2MyAxMUJDOworQjMzMjtCMzMyOzExMDMgMTE2MyAxMUJEO0IzMzI7MTEwMyAxMTYzIDExQkQ7CitCMzMzO0IzMzM7MTEwMyAxMTYzIDExQkU7QjMzMzsxMTAzIDExNjMgMTFCRTsKK0IzMzQ7QjMzNDsxMTAzIDExNjMgMTFCRjtCMzM0OzExMDMgMTE2MyAxMUJGOworQjMzNTtCMzM1OzExMDMgMTE2MyAxMUMwO0IzMzU7MTEwMyAxMTYzIDExQzA7CitCMzM2O0IzMzY7MTEwMyAxMTYzIDExQzE7QjMzNjsxMTAzIDExNjMgMTFDMTsKK0IzMzc7QjMzNzsxMTAzIDExNjMgMTFDMjtCMzM3OzExMDMgMTE2MyAxMUMyOworQjMzODtCMzM4OzExMDMgMTE2NDtCMzM4OzExMDMgMTE2NDsKK0IzMzk7QjMzOTsxMTAzIDExNjQgMTFBODtCMzM5OzExMDMgMTE2NCAxMUE4OworQjMzQTtCMzNBOzExMDMgMTE2NCAxMUE5O0IzM0E7MTEwMyAxMTY0IDExQTk7CitCMzNCO0IzM0I7MTEwMyAxMTY0IDExQUE7QjMzQjsxMTAzIDExNjQgMTFBQTsKK0IzM0M7QjMzQzsxMTAzIDExNjQgMTFBQjtCMzNDOzExMDMgMTE2NCAxMUFCOworQjMzRDtCMzNEOzExMDMgMTE2NCAxMUFDO0IzM0Q7MTEwMyAxMTY0IDExQUM7CitCMzNFO0IzM0U7MTEwMyAxMTY0IDExQUQ7QjMzRTsxMTAzIDExNjQgMTFBRDsKK0IzM0Y7QjMzRjsxMTAzIDExNjQgMTFBRTtCMzNGOzExMDMgMTE2NCAxMUFFOworQjM0MDtCMzQwOzExMDMgMTE2NCAxMUFGO0IzNDA7MTEwMyAxMTY0IDExQUY7CitCMzQxO0IzNDE7MTEwMyAxMTY0IDExQjA7QjM0MTsxMTAzIDExNjQgMTFCMDsKK0IzNDI7QjM0MjsxMTAzIDExNjQgMTFCMTtCMzQyOzExMDMgMTE2NCAxMUIxOworQjM0MztCMzQzOzExMDMgMTE2NCAxMUIyO0IzNDM7MTEwMyAxMTY0IDExQjI7CitCMzQ0O0IzNDQ7MTEwMyAxMTY0IDExQjM7QjM0NDsxMTAzIDExNjQgMTFCMzsKK0IzNDU7QjM0NTsxMTAzIDExNjQgMTFCNDtCMzQ1OzExMDMgMTE2NCAxMUI0OworQjM0NjtCMzQ2OzExMDMgMTE2NCAxMUI1O0IzNDY7MTEwMyAxMTY0IDExQjU7CitCMzQ3O0IzNDc7MTEwMyAxMTY0IDExQjY7QjM0NzsxMTAzIDExNjQgMTFCNjsKK0IzNDg7QjM0ODsxMTAzIDExNjQgMTFCNztCMzQ4OzExMDMgMTE2NCAxMUI3OworQjM0OTtCMzQ5OzExMDMgMTE2NCAxMUI4O0IzNDk7MTEwMyAxMTY0IDExQjg7CitCMzRBO0IzNEE7MTEwMyAxMTY0IDExQjk7QjM0QTsxMTAzIDExNjQgMTFCOTsKK0IzNEI7QjM0QjsxMTAzIDExNjQgMTFCQTtCMzRCOzExMDMgMTE2NCAxMUJBOworQjM0QztCMzRDOzExMDMgMTE2NCAxMUJCO0IzNEM7MTEwMyAxMTY0IDExQkI7CitCMzREO0IzNEQ7MTEwMyAxMTY0IDExQkM7QjM0RDsxMTAzIDExNjQgMTFCQzsKK0IzNEU7QjM0RTsxMTAzIDExNjQgMTFCRDtCMzRFOzExMDMgMTE2NCAxMUJEOworQjM0RjtCMzRGOzExMDMgMTE2NCAxMUJFO0IzNEY7MTEwMyAxMTY0IDExQkU7CitCMzUwO0IzNTA7MTEwMyAxMTY0IDExQkY7QjM1MDsxMTAzIDExNjQgMTFCRjsKK0IzNTE7QjM1MTsxMTAzIDExNjQgMTFDMDtCMzUxOzExMDMgMTE2NCAxMUMwOworQjM1MjtCMzUyOzExMDMgMTE2NCAxMUMxO0IzNTI7MTEwMyAxMTY0IDExQzE7CitCMzUzO0IzNTM7MTEwMyAxMTY0IDExQzI7QjM1MzsxMTAzIDExNjQgMTFDMjsKK0IzNTQ7QjM1NDsxMTAzIDExNjU7QjM1NDsxMTAzIDExNjU7CitCMzU1O0IzNTU7MTEwMyAxMTY1IDExQTg7QjM1NTsxMTAzIDExNjUgMTFBODsKK0IzNTY7QjM1NjsxMTAzIDExNjUgMTFBOTtCMzU2OzExMDMgMTE2NSAxMUE5OworQjM1NztCMzU3OzExMDMgMTE2NSAxMUFBO0IzNTc7MTEwMyAxMTY1IDExQUE7CitCMzU4O0IzNTg7MTEwMyAxMTY1IDExQUI7QjM1ODsxMTAzIDExNjUgMTFBQjsKK0IzNTk7QjM1OTsxMTAzIDExNjUgMTFBQztCMzU5OzExMDMgMTE2NSAxMUFDOworQjM1QTtCMzVBOzExMDMgMTE2NSAxMUFEO0IzNUE7MTEwMyAxMTY1IDExQUQ7CitCMzVCO0IzNUI7MTEwMyAxMTY1IDExQUU7QjM1QjsxMTAzIDExNjUgMTFBRTsKK0IzNUM7QjM1QzsxMTAzIDExNjUgMTFBRjtCMzVDOzExMDMgMTE2NSAxMUFGOworQjM1RDtCMzVEOzExMDMgMTE2NSAxMUIwO0IzNUQ7MTEwMyAxMTY1IDExQjA7CitCMzVFO0IzNUU7MTEwMyAxMTY1IDExQjE7QjM1RTsxMTAzIDExNjUgMTFCMTsKK0IzNUY7QjM1RjsxMTAzIDExNjUgMTFCMjtCMzVGOzExMDMgMTE2NSAxMUIyOworQjM2MDtCMzYwOzExMDMgMTE2NSAxMUIzO0IzNjA7MTEwMyAxMTY1IDExQjM7CitCMzYxO0IzNjE7MTEwMyAxMTY1IDExQjQ7QjM2MTsxMTAzIDExNjUgMTFCNDsKK0IzNjI7QjM2MjsxMTAzIDExNjUgMTFCNTtCMzYyOzExMDMgMTE2NSAxMUI1OworQjM2MztCMzYzOzExMDMgMTE2NSAxMUI2O0IzNjM7MTEwMyAxMTY1IDExQjY7CitCMzY0O0IzNjQ7MTEwMyAxMTY1IDExQjc7QjM2NDsxMTAzIDExNjUgMTFCNzsKK0IzNjU7QjM2NTsxMTAzIDExNjUgMTFCODtCMzY1OzExMDMgMTE2NSAxMUI4OworQjM2NjtCMzY2OzExMDMgMTE2NSAxMUI5O0IzNjY7MTEwMyAxMTY1IDExQjk7CitCMzY3O0IzNjc7MTEwMyAxMTY1IDExQkE7QjM2NzsxMTAzIDExNjUgMTFCQTsKK0IzNjg7QjM2ODsxMTAzIDExNjUgMTFCQjtCMzY4OzExMDMgMTE2NSAxMUJCOworQjM2OTtCMzY5OzExMDMgMTE2NSAxMUJDO0IzNjk7MTEwMyAxMTY1IDExQkM7CitCMzZBO0IzNkE7MTEwMyAxMTY1IDExQkQ7QjM2QTsxMTAzIDExNjUgMTFCRDsKK0IzNkI7QjM2QjsxMTAzIDExNjUgMTFCRTtCMzZCOzExMDMgMTE2NSAxMUJFOworQjM2QztCMzZDOzExMDMgMTE2NSAxMUJGO0IzNkM7MTEwMyAxMTY1IDExQkY7CitCMzZEO0IzNkQ7MTEwMyAxMTY1IDExQzA7QjM2RDsxMTAzIDExNjUgMTFDMDsKK0IzNkU7QjM2RTsxMTAzIDExNjUgMTFDMTtCMzZFOzExMDMgMTE2NSAxMUMxOworQjM2RjtCMzZGOzExMDMgMTE2NSAxMUMyO0IzNkY7MTEwMyAxMTY1IDExQzI7CitCMzcwO0IzNzA7MTEwMyAxMTY2O0IzNzA7MTEwMyAxMTY2OworQjM3MTtCMzcxOzExMDMgMTE2NiAxMUE4O0IzNzE7MTEwMyAxMTY2IDExQTg7CitCMzcyO0IzNzI7MTEwMyAxMTY2IDExQTk7QjM3MjsxMTAzIDExNjYgMTFBOTsKK0IzNzM7QjM3MzsxMTAzIDExNjYgMTFBQTtCMzczOzExMDMgMTE2NiAxMUFBOworQjM3NDtCMzc0OzExMDMgMTE2NiAxMUFCO0IzNzQ7MTEwMyAxMTY2IDExQUI7CitCMzc1O0IzNzU7MTEwMyAxMTY2IDExQUM7QjM3NTsxMTAzIDExNjYgMTFBQzsKK0IzNzY7QjM3NjsxMTAzIDExNjYgMTFBRDtCMzc2OzExMDMgMTE2NiAxMUFEOworQjM3NztCMzc3OzExMDMgMTE2NiAxMUFFO0IzNzc7MTEwMyAxMTY2IDExQUU7CitCMzc4O0IzNzg7MTEwMyAxMTY2IDExQUY7QjM3ODsxMTAzIDExNjYgMTFBRjsKK0IzNzk7QjM3OTsxMTAzIDExNjYgMTFCMDtCMzc5OzExMDMgMTE2NiAxMUIwOworQjM3QTtCMzdBOzExMDMgMTE2NiAxMUIxO0IzN0E7MTEwMyAxMTY2IDExQjE7CitCMzdCO0IzN0I7MTEwMyAxMTY2IDExQjI7QjM3QjsxMTAzIDExNjYgMTFCMjsKK0IzN0M7QjM3QzsxMTAzIDExNjYgMTFCMztCMzdDOzExMDMgMTE2NiAxMUIzOworQjM3RDtCMzdEOzExMDMgMTE2NiAxMUI0O0IzN0Q7MTEwMyAxMTY2IDExQjQ7CitCMzdFO0IzN0U7MTEwMyAxMTY2IDExQjU7QjM3RTsxMTAzIDExNjYgMTFCNTsKK0IzN0Y7QjM3RjsxMTAzIDExNjYgMTFCNjtCMzdGOzExMDMgMTE2NiAxMUI2OworQjM4MDtCMzgwOzExMDMgMTE2NiAxMUI3O0IzODA7MTEwMyAxMTY2IDExQjc7CitCMzgxO0IzODE7MTEwMyAxMTY2IDExQjg7QjM4MTsxMTAzIDExNjYgMTFCODsKK0IzODI7QjM4MjsxMTAzIDExNjYgMTFCOTtCMzgyOzExMDMgMTE2NiAxMUI5OworQjM4MztCMzgzOzExMDMgMTE2NiAxMUJBO0IzODM7MTEwMyAxMTY2IDExQkE7CitCMzg0O0IzODQ7MTEwMyAxMTY2IDExQkI7QjM4NDsxMTAzIDExNjYgMTFCQjsKK0IzODU7QjM4NTsxMTAzIDExNjYgMTFCQztCMzg1OzExMDMgMTE2NiAxMUJDOworQjM4NjtCMzg2OzExMDMgMTE2NiAxMUJEO0IzODY7MTEwMyAxMTY2IDExQkQ7CitCMzg3O0IzODc7MTEwMyAxMTY2IDExQkU7QjM4NzsxMTAzIDExNjYgMTFCRTsKK0IzODg7QjM4ODsxMTAzIDExNjYgMTFCRjtCMzg4OzExMDMgMTE2NiAxMUJGOworQjM4OTtCMzg5OzExMDMgMTE2NiAxMUMwO0IzODk7MTEwMyAxMTY2IDExQzA7CitCMzhBO0IzOEE7MTEwMyAxMTY2IDExQzE7QjM4QTsxMTAzIDExNjYgMTFDMTsKK0IzOEI7QjM4QjsxMTAzIDExNjYgMTFDMjtCMzhCOzExMDMgMTE2NiAxMUMyOworQjM4QztCMzhDOzExMDMgMTE2NztCMzhDOzExMDMgMTE2NzsKK0IzOEQ7QjM4RDsxMTAzIDExNjcgMTFBODtCMzhEOzExMDMgMTE2NyAxMUE4OworQjM4RTtCMzhFOzExMDMgMTE2NyAxMUE5O0IzOEU7MTEwMyAxMTY3IDExQTk7CitCMzhGO0IzOEY7MTEwMyAxMTY3IDExQUE7QjM4RjsxMTAzIDExNjcgMTFBQTsKK0IzOTA7QjM5MDsxMTAzIDExNjcgMTFBQjtCMzkwOzExMDMgMTE2NyAxMUFCOworQjM5MTtCMzkxOzExMDMgMTE2NyAxMUFDO0IzOTE7MTEwMyAxMTY3IDExQUM7CitCMzkyO0IzOTI7MTEwMyAxMTY3IDExQUQ7QjM5MjsxMTAzIDExNjcgMTFBRDsKK0IzOTM7QjM5MzsxMTAzIDExNjcgMTFBRTtCMzkzOzExMDMgMTE2NyAxMUFFOworQjM5NDtCMzk0OzExMDMgMTE2NyAxMUFGO0IzOTQ7MTEwMyAxMTY3IDExQUY7CitCMzk1O0IzOTU7MTEwMyAxMTY3IDExQjA7QjM5NTsxMTAzIDExNjcgMTFCMDsKK0IzOTY7QjM5NjsxMTAzIDExNjcgMTFCMTtCMzk2OzExMDMgMTE2NyAxMUIxOworQjM5NztCMzk3OzExMDMgMTE2NyAxMUIyO0IzOTc7MTEwMyAxMTY3IDExQjI7CitCMzk4O0IzOTg7MTEwMyAxMTY3IDExQjM7QjM5ODsxMTAzIDExNjcgMTFCMzsKK0IzOTk7QjM5OTsxMTAzIDExNjcgMTFCNDtCMzk5OzExMDMgMTE2NyAxMUI0OworQjM5QTtCMzlBOzExMDMgMTE2NyAxMUI1O0IzOUE7MTEwMyAxMTY3IDExQjU7CitCMzlCO0IzOUI7MTEwMyAxMTY3IDExQjY7QjM5QjsxMTAzIDExNjcgMTFCNjsKK0IzOUM7QjM5QzsxMTAzIDExNjcgMTFCNztCMzlDOzExMDMgMTE2NyAxMUI3OworQjM5RDtCMzlEOzExMDMgMTE2NyAxMUI4O0IzOUQ7MTEwMyAxMTY3IDExQjg7CitCMzlFO0IzOUU7MTEwMyAxMTY3IDExQjk7QjM5RTsxMTAzIDExNjcgMTFCOTsKK0IzOUY7QjM5RjsxMTAzIDExNjcgMTFCQTtCMzlGOzExMDMgMTE2NyAxMUJBOworQjNBMDtCM0EwOzExMDMgMTE2NyAxMUJCO0IzQTA7MTEwMyAxMTY3IDExQkI7CitCM0ExO0IzQTE7MTEwMyAxMTY3IDExQkM7QjNBMTsxMTAzIDExNjcgMTFCQzsKK0IzQTI7QjNBMjsxMTAzIDExNjcgMTFCRDtCM0EyOzExMDMgMTE2NyAxMUJEOworQjNBMztCM0EzOzExMDMgMTE2NyAxMUJFO0IzQTM7MTEwMyAxMTY3IDExQkU7CitCM0E0O0IzQTQ7MTEwMyAxMTY3IDExQkY7QjNBNDsxMTAzIDExNjcgMTFCRjsKK0IzQTU7QjNBNTsxMTAzIDExNjcgMTFDMDtCM0E1OzExMDMgMTE2NyAxMUMwOworQjNBNjtCM0E2OzExMDMgMTE2NyAxMUMxO0IzQTY7MTEwMyAxMTY3IDExQzE7CitCM0E3O0IzQTc7MTEwMyAxMTY3IDExQzI7QjNBNzsxMTAzIDExNjcgMTFDMjsKK0IzQTg7QjNBODsxMTAzIDExNjg7QjNBODsxMTAzIDExNjg7CitCM0E5O0IzQTk7MTEwMyAxMTY4IDExQTg7QjNBOTsxMTAzIDExNjggMTFBODsKK0IzQUE7QjNBQTsxMTAzIDExNjggMTFBOTtCM0FBOzExMDMgMTE2OCAxMUE5OworQjNBQjtCM0FCOzExMDMgMTE2OCAxMUFBO0IzQUI7MTEwMyAxMTY4IDExQUE7CitCM0FDO0IzQUM7MTEwMyAxMTY4IDExQUI7QjNBQzsxMTAzIDExNjggMTFBQjsKK0IzQUQ7QjNBRDsxMTAzIDExNjggMTFBQztCM0FEOzExMDMgMTE2OCAxMUFDOworQjNBRTtCM0FFOzExMDMgMTE2OCAxMUFEO0IzQUU7MTEwMyAxMTY4IDExQUQ7CitCM0FGO0IzQUY7MTEwMyAxMTY4IDExQUU7QjNBRjsxMTAzIDExNjggMTFBRTsKK0IzQjA7QjNCMDsxMTAzIDExNjggMTFBRjtCM0IwOzExMDMgMTE2OCAxMUFGOworQjNCMTtCM0IxOzExMDMgMTE2OCAxMUIwO0IzQjE7MTEwMyAxMTY4IDExQjA7CitCM0IyO0IzQjI7MTEwMyAxMTY4IDExQjE7QjNCMjsxMTAzIDExNjggMTFCMTsKK0IzQjM7QjNCMzsxMTAzIDExNjggMTFCMjtCM0IzOzExMDMgMTE2OCAxMUIyOworQjNCNDtCM0I0OzExMDMgMTE2OCAxMUIzO0IzQjQ7MTEwMyAxMTY4IDExQjM7CitCM0I1O0IzQjU7MTEwMyAxMTY4IDExQjQ7QjNCNTsxMTAzIDExNjggMTFCNDsKK0IzQjY7QjNCNjsxMTAzIDExNjggMTFCNTtCM0I2OzExMDMgMTE2OCAxMUI1OworQjNCNztCM0I3OzExMDMgMTE2OCAxMUI2O0IzQjc7MTEwMyAxMTY4IDExQjY7CitCM0I4O0IzQjg7MTEwMyAxMTY4IDExQjc7QjNCODsxMTAzIDExNjggMTFCNzsKK0IzQjk7QjNCOTsxMTAzIDExNjggMTFCODtCM0I5OzExMDMgMTE2OCAxMUI4OworQjNCQTtCM0JBOzExMDMgMTE2OCAxMUI5O0IzQkE7MTEwMyAxMTY4IDExQjk7CitCM0JCO0IzQkI7MTEwMyAxMTY4IDExQkE7QjNCQjsxMTAzIDExNjggMTFCQTsKK0IzQkM7QjNCQzsxMTAzIDExNjggMTFCQjtCM0JDOzExMDMgMTE2OCAxMUJCOworQjNCRDtCM0JEOzExMDMgMTE2OCAxMUJDO0IzQkQ7MTEwMyAxMTY4IDExQkM7CitCM0JFO0IzQkU7MTEwMyAxMTY4IDExQkQ7QjNCRTsxMTAzIDExNjggMTFCRDsKK0IzQkY7QjNCRjsxMTAzIDExNjggMTFCRTtCM0JGOzExMDMgMTE2OCAxMUJFOworQjNDMDtCM0MwOzExMDMgMTE2OCAxMUJGO0IzQzA7MTEwMyAxMTY4IDExQkY7CitCM0MxO0IzQzE7MTEwMyAxMTY4IDExQzA7QjNDMTsxMTAzIDExNjggMTFDMDsKK0IzQzI7QjNDMjsxMTAzIDExNjggMTFDMTtCM0MyOzExMDMgMTE2OCAxMUMxOworQjNDMztCM0MzOzExMDMgMTE2OCAxMUMyO0IzQzM7MTEwMyAxMTY4IDExQzI7CitCM0M0O0IzQzQ7MTEwMyAxMTY5O0IzQzQ7MTEwMyAxMTY5OworQjNDNTtCM0M1OzExMDMgMTE2OSAxMUE4O0IzQzU7MTEwMyAxMTY5IDExQTg7CitCM0M2O0IzQzY7MTEwMyAxMTY5IDExQTk7QjNDNjsxMTAzIDExNjkgMTFBOTsKK0IzQzc7QjNDNzsxMTAzIDExNjkgMTFBQTtCM0M3OzExMDMgMTE2OSAxMUFBOworQjNDODtCM0M4OzExMDMgMTE2OSAxMUFCO0IzQzg7MTEwMyAxMTY5IDExQUI7CitCM0M5O0IzQzk7MTEwMyAxMTY5IDExQUM7QjNDOTsxMTAzIDExNjkgMTFBQzsKK0IzQ0E7QjNDQTsxMTAzIDExNjkgMTFBRDtCM0NBOzExMDMgMTE2OSAxMUFEOworQjNDQjtCM0NCOzExMDMgMTE2OSAxMUFFO0IzQ0I7MTEwMyAxMTY5IDExQUU7CitCM0NDO0IzQ0M7MTEwMyAxMTY5IDExQUY7QjNDQzsxMTAzIDExNjkgMTFBRjsKK0IzQ0Q7QjNDRDsxMTAzIDExNjkgMTFCMDtCM0NEOzExMDMgMTE2OSAxMUIwOworQjNDRTtCM0NFOzExMDMgMTE2OSAxMUIxO0IzQ0U7MTEwMyAxMTY5IDExQjE7CitCM0NGO0IzQ0Y7MTEwMyAxMTY5IDExQjI7QjNDRjsxMTAzIDExNjkgMTFCMjsKK0IzRDA7QjNEMDsxMTAzIDExNjkgMTFCMztCM0QwOzExMDMgMTE2OSAxMUIzOworQjNEMTtCM0QxOzExMDMgMTE2OSAxMUI0O0IzRDE7MTEwMyAxMTY5IDExQjQ7CitCM0QyO0IzRDI7MTEwMyAxMTY5IDExQjU7QjNEMjsxMTAzIDExNjkgMTFCNTsKK0IzRDM7QjNEMzsxMTAzIDExNjkgMTFCNjtCM0QzOzExMDMgMTE2OSAxMUI2OworQjNENDtCM0Q0OzExMDMgMTE2OSAxMUI3O0IzRDQ7MTEwMyAxMTY5IDExQjc7CitCM0Q1O0IzRDU7MTEwMyAxMTY5IDExQjg7QjNENTsxMTAzIDExNjkgMTFCODsKK0IzRDY7QjNENjsxMTAzIDExNjkgMTFCOTtCM0Q2OzExMDMgMTE2OSAxMUI5OworQjNENztCM0Q3OzExMDMgMTE2OSAxMUJBO0IzRDc7MTEwMyAxMTY5IDExQkE7CitCM0Q4O0IzRDg7MTEwMyAxMTY5IDExQkI7QjNEODsxMTAzIDExNjkgMTFCQjsKK0IzRDk7QjNEOTsxMTAzIDExNjkgMTFCQztCM0Q5OzExMDMgMTE2OSAxMUJDOworQjNEQTtCM0RBOzExMDMgMTE2OSAxMUJEO0IzREE7MTEwMyAxMTY5IDExQkQ7CitCM0RCO0IzREI7MTEwMyAxMTY5IDExQkU7QjNEQjsxMTAzIDExNjkgMTFCRTsKK0IzREM7QjNEQzsxMTAzIDExNjkgMTFCRjtCM0RDOzExMDMgMTE2OSAxMUJGOworQjNERDtCM0REOzExMDMgMTE2OSAxMUMwO0IzREQ7MTEwMyAxMTY5IDExQzA7CitCM0RFO0IzREU7MTEwMyAxMTY5IDExQzE7QjNERTsxMTAzIDExNjkgMTFDMTsKK0IzREY7QjNERjsxMTAzIDExNjkgMTFDMjtCM0RGOzExMDMgMTE2OSAxMUMyOworQjNFMDtCM0UwOzExMDMgMTE2QTtCM0UwOzExMDMgMTE2QTsKK0IzRTE7QjNFMTsxMTAzIDExNkEgMTFBODtCM0UxOzExMDMgMTE2QSAxMUE4OworQjNFMjtCM0UyOzExMDMgMTE2QSAxMUE5O0IzRTI7MTEwMyAxMTZBIDExQTk7CitCM0UzO0IzRTM7MTEwMyAxMTZBIDExQUE7QjNFMzsxMTAzIDExNkEgMTFBQTsKK0IzRTQ7QjNFNDsxMTAzIDExNkEgMTFBQjtCM0U0OzExMDMgMTE2QSAxMUFCOworQjNFNTtCM0U1OzExMDMgMTE2QSAxMUFDO0IzRTU7MTEwMyAxMTZBIDExQUM7CitCM0U2O0IzRTY7MTEwMyAxMTZBIDExQUQ7QjNFNjsxMTAzIDExNkEgMTFBRDsKK0IzRTc7QjNFNzsxMTAzIDExNkEgMTFBRTtCM0U3OzExMDMgMTE2QSAxMUFFOworQjNFODtCM0U4OzExMDMgMTE2QSAxMUFGO0IzRTg7MTEwMyAxMTZBIDExQUY7CitCM0U5O0IzRTk7MTEwMyAxMTZBIDExQjA7QjNFOTsxMTAzIDExNkEgMTFCMDsKK0IzRUE7QjNFQTsxMTAzIDExNkEgMTFCMTtCM0VBOzExMDMgMTE2QSAxMUIxOworQjNFQjtCM0VCOzExMDMgMTE2QSAxMUIyO0IzRUI7MTEwMyAxMTZBIDExQjI7CitCM0VDO0IzRUM7MTEwMyAxMTZBIDExQjM7QjNFQzsxMTAzIDExNkEgMTFCMzsKK0IzRUQ7QjNFRDsxMTAzIDExNkEgMTFCNDtCM0VEOzExMDMgMTE2QSAxMUI0OworQjNFRTtCM0VFOzExMDMgMTE2QSAxMUI1O0IzRUU7MTEwMyAxMTZBIDExQjU7CitCM0VGO0IzRUY7MTEwMyAxMTZBIDExQjY7QjNFRjsxMTAzIDExNkEgMTFCNjsKK0IzRjA7QjNGMDsxMTAzIDExNkEgMTFCNztCM0YwOzExMDMgMTE2QSAxMUI3OworQjNGMTtCM0YxOzExMDMgMTE2QSAxMUI4O0IzRjE7MTEwMyAxMTZBIDExQjg7CitCM0YyO0IzRjI7MTEwMyAxMTZBIDExQjk7QjNGMjsxMTAzIDExNkEgMTFCOTsKK0IzRjM7QjNGMzsxMTAzIDExNkEgMTFCQTtCM0YzOzExMDMgMTE2QSAxMUJBOworQjNGNDtCM0Y0OzExMDMgMTE2QSAxMUJCO0IzRjQ7MTEwMyAxMTZBIDExQkI7CitCM0Y1O0IzRjU7MTEwMyAxMTZBIDExQkM7QjNGNTsxMTAzIDExNkEgMTFCQzsKK0IzRjY7QjNGNjsxMTAzIDExNkEgMTFCRDtCM0Y2OzExMDMgMTE2QSAxMUJEOworQjNGNztCM0Y3OzExMDMgMTE2QSAxMUJFO0IzRjc7MTEwMyAxMTZBIDExQkU7CitCM0Y4O0IzRjg7MTEwMyAxMTZBIDExQkY7QjNGODsxMTAzIDExNkEgMTFCRjsKK0IzRjk7QjNGOTsxMTAzIDExNkEgMTFDMDtCM0Y5OzExMDMgMTE2QSAxMUMwOworQjNGQTtCM0ZBOzExMDMgMTE2QSAxMUMxO0IzRkE7MTEwMyAxMTZBIDExQzE7CitCM0ZCO0IzRkI7MTEwMyAxMTZBIDExQzI7QjNGQjsxMTAzIDExNkEgMTFDMjsKK0IzRkM7QjNGQzsxMTAzIDExNkI7QjNGQzsxMTAzIDExNkI7CitCM0ZEO0IzRkQ7MTEwMyAxMTZCIDExQTg7QjNGRDsxMTAzIDExNkIgMTFBODsKK0IzRkU7QjNGRTsxMTAzIDExNkIgMTFBOTtCM0ZFOzExMDMgMTE2QiAxMUE5OworQjNGRjtCM0ZGOzExMDMgMTE2QiAxMUFBO0IzRkY7MTEwMyAxMTZCIDExQUE7CitCNDAwO0I0MDA7MTEwMyAxMTZCIDExQUI7QjQwMDsxMTAzIDExNkIgMTFBQjsKK0I0MDE7QjQwMTsxMTAzIDExNkIgMTFBQztCNDAxOzExMDMgMTE2QiAxMUFDOworQjQwMjtCNDAyOzExMDMgMTE2QiAxMUFEO0I0MDI7MTEwMyAxMTZCIDExQUQ7CitCNDAzO0I0MDM7MTEwMyAxMTZCIDExQUU7QjQwMzsxMTAzIDExNkIgMTFBRTsKK0I0MDQ7QjQwNDsxMTAzIDExNkIgMTFBRjtCNDA0OzExMDMgMTE2QiAxMUFGOworQjQwNTtCNDA1OzExMDMgMTE2QiAxMUIwO0I0MDU7MTEwMyAxMTZCIDExQjA7CitCNDA2O0I0MDY7MTEwMyAxMTZCIDExQjE7QjQwNjsxMTAzIDExNkIgMTFCMTsKK0I0MDc7QjQwNzsxMTAzIDExNkIgMTFCMjtCNDA3OzExMDMgMTE2QiAxMUIyOworQjQwODtCNDA4OzExMDMgMTE2QiAxMUIzO0I0MDg7MTEwMyAxMTZCIDExQjM7CitCNDA5O0I0MDk7MTEwMyAxMTZCIDExQjQ7QjQwOTsxMTAzIDExNkIgMTFCNDsKK0I0MEE7QjQwQTsxMTAzIDExNkIgMTFCNTtCNDBBOzExMDMgMTE2QiAxMUI1OworQjQwQjtCNDBCOzExMDMgMTE2QiAxMUI2O0I0MEI7MTEwMyAxMTZCIDExQjY7CitCNDBDO0I0MEM7MTEwMyAxMTZCIDExQjc7QjQwQzsxMTAzIDExNkIgMTFCNzsKK0I0MEQ7QjQwRDsxMTAzIDExNkIgMTFCODtCNDBEOzExMDMgMTE2QiAxMUI4OworQjQwRTtCNDBFOzExMDMgMTE2QiAxMUI5O0I0MEU7MTEwMyAxMTZCIDExQjk7CitCNDBGO0I0MEY7MTEwMyAxMTZCIDExQkE7QjQwRjsxMTAzIDExNkIgMTFCQTsKK0I0MTA7QjQxMDsxMTAzIDExNkIgMTFCQjtCNDEwOzExMDMgMTE2QiAxMUJCOworQjQxMTtCNDExOzExMDMgMTE2QiAxMUJDO0I0MTE7MTEwMyAxMTZCIDExQkM7CitCNDEyO0I0MTI7MTEwMyAxMTZCIDExQkQ7QjQxMjsxMTAzIDExNkIgMTFCRDsKK0I0MTM7QjQxMzsxMTAzIDExNkIgMTFCRTtCNDEzOzExMDMgMTE2QiAxMUJFOworQjQxNDtCNDE0OzExMDMgMTE2QiAxMUJGO0I0MTQ7MTEwMyAxMTZCIDExQkY7CitCNDE1O0I0MTU7MTEwMyAxMTZCIDExQzA7QjQxNTsxMTAzIDExNkIgMTFDMDsKK0I0MTY7QjQxNjsxMTAzIDExNkIgMTFDMTtCNDE2OzExMDMgMTE2QiAxMUMxOworQjQxNztCNDE3OzExMDMgMTE2QiAxMUMyO0I0MTc7MTEwMyAxMTZCIDExQzI7CitCNDE4O0I0MTg7MTEwMyAxMTZDO0I0MTg7MTEwMyAxMTZDOworQjQxOTtCNDE5OzExMDMgMTE2QyAxMUE4O0I0MTk7MTEwMyAxMTZDIDExQTg7CitCNDFBO0I0MUE7MTEwMyAxMTZDIDExQTk7QjQxQTsxMTAzIDExNkMgMTFBOTsKK0I0MUI7QjQxQjsxMTAzIDExNkMgMTFBQTtCNDFCOzExMDMgMTE2QyAxMUFBOworQjQxQztCNDFDOzExMDMgMTE2QyAxMUFCO0I0MUM7MTEwMyAxMTZDIDExQUI7CitCNDFEO0I0MUQ7MTEwMyAxMTZDIDExQUM7QjQxRDsxMTAzIDExNkMgMTFBQzsKK0I0MUU7QjQxRTsxMTAzIDExNkMgMTFBRDtCNDFFOzExMDMgMTE2QyAxMUFEOworQjQxRjtCNDFGOzExMDMgMTE2QyAxMUFFO0I0MUY7MTEwMyAxMTZDIDExQUU7CitCNDIwO0I0MjA7MTEwMyAxMTZDIDExQUY7QjQyMDsxMTAzIDExNkMgMTFBRjsKK0I0MjE7QjQyMTsxMTAzIDExNkMgMTFCMDtCNDIxOzExMDMgMTE2QyAxMUIwOworQjQyMjtCNDIyOzExMDMgMTE2QyAxMUIxO0I0MjI7MTEwMyAxMTZDIDExQjE7CitCNDIzO0I0MjM7MTEwMyAxMTZDIDExQjI7QjQyMzsxMTAzIDExNkMgMTFCMjsKK0I0MjQ7QjQyNDsxMTAzIDExNkMgMTFCMztCNDI0OzExMDMgMTE2QyAxMUIzOworQjQyNTtCNDI1OzExMDMgMTE2QyAxMUI0O0I0MjU7MTEwMyAxMTZDIDExQjQ7CitCNDI2O0I0MjY7MTEwMyAxMTZDIDExQjU7QjQyNjsxMTAzIDExNkMgMTFCNTsKK0I0Mjc7QjQyNzsxMTAzIDExNkMgMTFCNjtCNDI3OzExMDMgMTE2QyAxMUI2OworQjQyODtCNDI4OzExMDMgMTE2QyAxMUI3O0I0Mjg7MTEwMyAxMTZDIDExQjc7CitCNDI5O0I0Mjk7MTEwMyAxMTZDIDExQjg7QjQyOTsxMTAzIDExNkMgMTFCODsKK0I0MkE7QjQyQTsxMTAzIDExNkMgMTFCOTtCNDJBOzExMDMgMTE2QyAxMUI5OworQjQyQjtCNDJCOzExMDMgMTE2QyAxMUJBO0I0MkI7MTEwMyAxMTZDIDExQkE7CitCNDJDO0I0MkM7MTEwMyAxMTZDIDExQkI7QjQyQzsxMTAzIDExNkMgMTFCQjsKK0I0MkQ7QjQyRDsxMTAzIDExNkMgMTFCQztCNDJEOzExMDMgMTE2QyAxMUJDOworQjQyRTtCNDJFOzExMDMgMTE2QyAxMUJEO0I0MkU7MTEwMyAxMTZDIDExQkQ7CitCNDJGO0I0MkY7MTEwMyAxMTZDIDExQkU7QjQyRjsxMTAzIDExNkMgMTFCRTsKK0I0MzA7QjQzMDsxMTAzIDExNkMgMTFCRjtCNDMwOzExMDMgMTE2QyAxMUJGOworQjQzMTtCNDMxOzExMDMgMTE2QyAxMUMwO0I0MzE7MTEwMyAxMTZDIDExQzA7CitCNDMyO0I0MzI7MTEwMyAxMTZDIDExQzE7QjQzMjsxMTAzIDExNkMgMTFDMTsKK0I0MzM7QjQzMzsxMTAzIDExNkMgMTFDMjtCNDMzOzExMDMgMTE2QyAxMUMyOworQjQzNDtCNDM0OzExMDMgMTE2RDtCNDM0OzExMDMgMTE2RDsKK0I0MzU7QjQzNTsxMTAzIDExNkQgMTFBODtCNDM1OzExMDMgMTE2RCAxMUE4OworQjQzNjtCNDM2OzExMDMgMTE2RCAxMUE5O0I0MzY7MTEwMyAxMTZEIDExQTk7CitCNDM3O0I0Mzc7MTEwMyAxMTZEIDExQUE7QjQzNzsxMTAzIDExNkQgMTFBQTsKK0I0Mzg7QjQzODsxMTAzIDExNkQgMTFBQjtCNDM4OzExMDMgMTE2RCAxMUFCOworQjQzOTtCNDM5OzExMDMgMTE2RCAxMUFDO0I0Mzk7MTEwMyAxMTZEIDExQUM7CitCNDNBO0I0M0E7MTEwMyAxMTZEIDExQUQ7QjQzQTsxMTAzIDExNkQgMTFBRDsKK0I0M0I7QjQzQjsxMTAzIDExNkQgMTFBRTtCNDNCOzExMDMgMTE2RCAxMUFFOworQjQzQztCNDNDOzExMDMgMTE2RCAxMUFGO0I0M0M7MTEwMyAxMTZEIDExQUY7CitCNDNEO0I0M0Q7MTEwMyAxMTZEIDExQjA7QjQzRDsxMTAzIDExNkQgMTFCMDsKK0I0M0U7QjQzRTsxMTAzIDExNkQgMTFCMTtCNDNFOzExMDMgMTE2RCAxMUIxOworQjQzRjtCNDNGOzExMDMgMTE2RCAxMUIyO0I0M0Y7MTEwMyAxMTZEIDExQjI7CitCNDQwO0I0NDA7MTEwMyAxMTZEIDExQjM7QjQ0MDsxMTAzIDExNkQgMTFCMzsKK0I0NDE7QjQ0MTsxMTAzIDExNkQgMTFCNDtCNDQxOzExMDMgMTE2RCAxMUI0OworQjQ0MjtCNDQyOzExMDMgMTE2RCAxMUI1O0I0NDI7MTEwMyAxMTZEIDExQjU7CitCNDQzO0I0NDM7MTEwMyAxMTZEIDExQjY7QjQ0MzsxMTAzIDExNkQgMTFCNjsKK0I0NDQ7QjQ0NDsxMTAzIDExNkQgMTFCNztCNDQ0OzExMDMgMTE2RCAxMUI3OworQjQ0NTtCNDQ1OzExMDMgMTE2RCAxMUI4O0I0NDU7MTEwMyAxMTZEIDExQjg7CitCNDQ2O0I0NDY7MTEwMyAxMTZEIDExQjk7QjQ0NjsxMTAzIDExNkQgMTFCOTsKK0I0NDc7QjQ0NzsxMTAzIDExNkQgMTFCQTtCNDQ3OzExMDMgMTE2RCAxMUJBOworQjQ0ODtCNDQ4OzExMDMgMTE2RCAxMUJCO0I0NDg7MTEwMyAxMTZEIDExQkI7CitCNDQ5O0I0NDk7MTEwMyAxMTZEIDExQkM7QjQ0OTsxMTAzIDExNkQgMTFCQzsKK0I0NEE7QjQ0QTsxMTAzIDExNkQgMTFCRDtCNDRBOzExMDMgMTE2RCAxMUJEOworQjQ0QjtCNDRCOzExMDMgMTE2RCAxMUJFO0I0NEI7MTEwMyAxMTZEIDExQkU7CitCNDRDO0I0NEM7MTEwMyAxMTZEIDExQkY7QjQ0QzsxMTAzIDExNkQgMTFCRjsKK0I0NEQ7QjQ0RDsxMTAzIDExNkQgMTFDMDtCNDREOzExMDMgMTE2RCAxMUMwOworQjQ0RTtCNDRFOzExMDMgMTE2RCAxMUMxO0I0NEU7MTEwMyAxMTZEIDExQzE7CitCNDRGO0I0NEY7MTEwMyAxMTZEIDExQzI7QjQ0RjsxMTAzIDExNkQgMTFDMjsKK0I0NTA7QjQ1MDsxMTAzIDExNkU7QjQ1MDsxMTAzIDExNkU7CitCNDUxO0I0NTE7MTEwMyAxMTZFIDExQTg7QjQ1MTsxMTAzIDExNkUgMTFBODsKK0I0NTI7QjQ1MjsxMTAzIDExNkUgMTFBOTtCNDUyOzExMDMgMTE2RSAxMUE5OworQjQ1MztCNDUzOzExMDMgMTE2RSAxMUFBO0I0NTM7MTEwMyAxMTZFIDExQUE7CitCNDU0O0I0NTQ7MTEwMyAxMTZFIDExQUI7QjQ1NDsxMTAzIDExNkUgMTFBQjsKK0I0NTU7QjQ1NTsxMTAzIDExNkUgMTFBQztCNDU1OzExMDMgMTE2RSAxMUFDOworQjQ1NjtCNDU2OzExMDMgMTE2RSAxMUFEO0I0NTY7MTEwMyAxMTZFIDExQUQ7CitCNDU3O0I0NTc7MTEwMyAxMTZFIDExQUU7QjQ1NzsxMTAzIDExNkUgMTFBRTsKK0I0NTg7QjQ1ODsxMTAzIDExNkUgMTFBRjtCNDU4OzExMDMgMTE2RSAxMUFGOworQjQ1OTtCNDU5OzExMDMgMTE2RSAxMUIwO0I0NTk7MTEwMyAxMTZFIDExQjA7CitCNDVBO0I0NUE7MTEwMyAxMTZFIDExQjE7QjQ1QTsxMTAzIDExNkUgMTFCMTsKK0I0NUI7QjQ1QjsxMTAzIDExNkUgMTFCMjtCNDVCOzExMDMgMTE2RSAxMUIyOworQjQ1QztCNDVDOzExMDMgMTE2RSAxMUIzO0I0NUM7MTEwMyAxMTZFIDExQjM7CitCNDVEO0I0NUQ7MTEwMyAxMTZFIDExQjQ7QjQ1RDsxMTAzIDExNkUgMTFCNDsKK0I0NUU7QjQ1RTsxMTAzIDExNkUgMTFCNTtCNDVFOzExMDMgMTE2RSAxMUI1OworQjQ1RjtCNDVGOzExMDMgMTE2RSAxMUI2O0I0NUY7MTEwMyAxMTZFIDExQjY7CitCNDYwO0I0NjA7MTEwMyAxMTZFIDExQjc7QjQ2MDsxMTAzIDExNkUgMTFCNzsKK0I0NjE7QjQ2MTsxMTAzIDExNkUgMTFCODtCNDYxOzExMDMgMTE2RSAxMUI4OworQjQ2MjtCNDYyOzExMDMgMTE2RSAxMUI5O0I0NjI7MTEwMyAxMTZFIDExQjk7CitCNDYzO0I0NjM7MTEwMyAxMTZFIDExQkE7QjQ2MzsxMTAzIDExNkUgMTFCQTsKK0I0NjQ7QjQ2NDsxMTAzIDExNkUgMTFCQjtCNDY0OzExMDMgMTE2RSAxMUJCOworQjQ2NTtCNDY1OzExMDMgMTE2RSAxMUJDO0I0NjU7MTEwMyAxMTZFIDExQkM7CitCNDY2O0I0NjY7MTEwMyAxMTZFIDExQkQ7QjQ2NjsxMTAzIDExNkUgMTFCRDsKK0I0Njc7QjQ2NzsxMTAzIDExNkUgMTFCRTtCNDY3OzExMDMgMTE2RSAxMUJFOworQjQ2ODtCNDY4OzExMDMgMTE2RSAxMUJGO0I0Njg7MTEwMyAxMTZFIDExQkY7CitCNDY5O0I0Njk7MTEwMyAxMTZFIDExQzA7QjQ2OTsxMTAzIDExNkUgMTFDMDsKK0I0NkE7QjQ2QTsxMTAzIDExNkUgMTFDMTtCNDZBOzExMDMgMTE2RSAxMUMxOworQjQ2QjtCNDZCOzExMDMgMTE2RSAxMUMyO0I0NkI7MTEwMyAxMTZFIDExQzI7CitCNDZDO0I0NkM7MTEwMyAxMTZGO0I0NkM7MTEwMyAxMTZGOworQjQ2RDtCNDZEOzExMDMgMTE2RiAxMUE4O0I0NkQ7MTEwMyAxMTZGIDExQTg7CitCNDZFO0I0NkU7MTEwMyAxMTZGIDExQTk7QjQ2RTsxMTAzIDExNkYgMTFBOTsKK0I0NkY7QjQ2RjsxMTAzIDExNkYgMTFBQTtCNDZGOzExMDMgMTE2RiAxMUFBOworQjQ3MDtCNDcwOzExMDMgMTE2RiAxMUFCO0I0NzA7MTEwMyAxMTZGIDExQUI7CitCNDcxO0I0NzE7MTEwMyAxMTZGIDExQUM7QjQ3MTsxMTAzIDExNkYgMTFBQzsKK0I0NzI7QjQ3MjsxMTAzIDExNkYgMTFBRDtCNDcyOzExMDMgMTE2RiAxMUFEOworQjQ3MztCNDczOzExMDMgMTE2RiAxMUFFO0I0NzM7MTEwMyAxMTZGIDExQUU7CitCNDc0O0I0NzQ7MTEwMyAxMTZGIDExQUY7QjQ3NDsxMTAzIDExNkYgMTFBRjsKK0I0NzU7QjQ3NTsxMTAzIDExNkYgMTFCMDtCNDc1OzExMDMgMTE2RiAxMUIwOworQjQ3NjtCNDc2OzExMDMgMTE2RiAxMUIxO0I0NzY7MTEwMyAxMTZGIDExQjE7CitCNDc3O0I0Nzc7MTEwMyAxMTZGIDExQjI7QjQ3NzsxMTAzIDExNkYgMTFCMjsKK0I0Nzg7QjQ3ODsxMTAzIDExNkYgMTFCMztCNDc4OzExMDMgMTE2RiAxMUIzOworQjQ3OTtCNDc5OzExMDMgMTE2RiAxMUI0O0I0Nzk7MTEwMyAxMTZGIDExQjQ7CitCNDdBO0I0N0E7MTEwMyAxMTZGIDExQjU7QjQ3QTsxMTAzIDExNkYgMTFCNTsKK0I0N0I7QjQ3QjsxMTAzIDExNkYgMTFCNjtCNDdCOzExMDMgMTE2RiAxMUI2OworQjQ3QztCNDdDOzExMDMgMTE2RiAxMUI3O0I0N0M7MTEwMyAxMTZGIDExQjc7CitCNDdEO0I0N0Q7MTEwMyAxMTZGIDExQjg7QjQ3RDsxMTAzIDExNkYgMTFCODsKK0I0N0U7QjQ3RTsxMTAzIDExNkYgMTFCOTtCNDdFOzExMDMgMTE2RiAxMUI5OworQjQ3RjtCNDdGOzExMDMgMTE2RiAxMUJBO0I0N0Y7MTEwMyAxMTZGIDExQkE7CitCNDgwO0I0ODA7MTEwMyAxMTZGIDExQkI7QjQ4MDsxMTAzIDExNkYgMTFCQjsKK0I0ODE7QjQ4MTsxMTAzIDExNkYgMTFCQztCNDgxOzExMDMgMTE2RiAxMUJDOworQjQ4MjtCNDgyOzExMDMgMTE2RiAxMUJEO0I0ODI7MTEwMyAxMTZGIDExQkQ7CitCNDgzO0I0ODM7MTEwMyAxMTZGIDExQkU7QjQ4MzsxMTAzIDExNkYgMTFCRTsKK0I0ODQ7QjQ4NDsxMTAzIDExNkYgMTFCRjtCNDg0OzExMDMgMTE2RiAxMUJGOworQjQ4NTtCNDg1OzExMDMgMTE2RiAxMUMwO0I0ODU7MTEwMyAxMTZGIDExQzA7CitCNDg2O0I0ODY7MTEwMyAxMTZGIDExQzE7QjQ4NjsxMTAzIDExNkYgMTFDMTsKK0I0ODc7QjQ4NzsxMTAzIDExNkYgMTFDMjtCNDg3OzExMDMgMTE2RiAxMUMyOworQjQ4ODtCNDg4OzExMDMgMTE3MDtCNDg4OzExMDMgMTE3MDsKK0I0ODk7QjQ4OTsxMTAzIDExNzAgMTFBODtCNDg5OzExMDMgMTE3MCAxMUE4OworQjQ4QTtCNDhBOzExMDMgMTE3MCAxMUE5O0I0OEE7MTEwMyAxMTcwIDExQTk7CitCNDhCO0I0OEI7MTEwMyAxMTcwIDExQUE7QjQ4QjsxMTAzIDExNzAgMTFBQTsKK0I0OEM7QjQ4QzsxMTAzIDExNzAgMTFBQjtCNDhDOzExMDMgMTE3MCAxMUFCOworQjQ4RDtCNDhEOzExMDMgMTE3MCAxMUFDO0I0OEQ7MTEwMyAxMTcwIDExQUM7CitCNDhFO0I0OEU7MTEwMyAxMTcwIDExQUQ7QjQ4RTsxMTAzIDExNzAgMTFBRDsKK0I0OEY7QjQ4RjsxMTAzIDExNzAgMTFBRTtCNDhGOzExMDMgMTE3MCAxMUFFOworQjQ5MDtCNDkwOzExMDMgMTE3MCAxMUFGO0I0OTA7MTEwMyAxMTcwIDExQUY7CitCNDkxO0I0OTE7MTEwMyAxMTcwIDExQjA7QjQ5MTsxMTAzIDExNzAgMTFCMDsKK0I0OTI7QjQ5MjsxMTAzIDExNzAgMTFCMTtCNDkyOzExMDMgMTE3MCAxMUIxOworQjQ5MztCNDkzOzExMDMgMTE3MCAxMUIyO0I0OTM7MTEwMyAxMTcwIDExQjI7CitCNDk0O0I0OTQ7MTEwMyAxMTcwIDExQjM7QjQ5NDsxMTAzIDExNzAgMTFCMzsKK0I0OTU7QjQ5NTsxMTAzIDExNzAgMTFCNDtCNDk1OzExMDMgMTE3MCAxMUI0OworQjQ5NjtCNDk2OzExMDMgMTE3MCAxMUI1O0I0OTY7MTEwMyAxMTcwIDExQjU7CitCNDk3O0I0OTc7MTEwMyAxMTcwIDExQjY7QjQ5NzsxMTAzIDExNzAgMTFCNjsKK0I0OTg7QjQ5ODsxMTAzIDExNzAgMTFCNztCNDk4OzExMDMgMTE3MCAxMUI3OworQjQ5OTtCNDk5OzExMDMgMTE3MCAxMUI4O0I0OTk7MTEwMyAxMTcwIDExQjg7CitCNDlBO0I0OUE7MTEwMyAxMTcwIDExQjk7QjQ5QTsxMTAzIDExNzAgMTFCOTsKK0I0OUI7QjQ5QjsxMTAzIDExNzAgMTFCQTtCNDlCOzExMDMgMTE3MCAxMUJBOworQjQ5QztCNDlDOzExMDMgMTE3MCAxMUJCO0I0OUM7MTEwMyAxMTcwIDExQkI7CitCNDlEO0I0OUQ7MTEwMyAxMTcwIDExQkM7QjQ5RDsxMTAzIDExNzAgMTFCQzsKK0I0OUU7QjQ5RTsxMTAzIDExNzAgMTFCRDtCNDlFOzExMDMgMTE3MCAxMUJEOworQjQ5RjtCNDlGOzExMDMgMTE3MCAxMUJFO0I0OUY7MTEwMyAxMTcwIDExQkU7CitCNEEwO0I0QTA7MTEwMyAxMTcwIDExQkY7QjRBMDsxMTAzIDExNzAgMTFCRjsKK0I0QTE7QjRBMTsxMTAzIDExNzAgMTFDMDtCNEExOzExMDMgMTE3MCAxMUMwOworQjRBMjtCNEEyOzExMDMgMTE3MCAxMUMxO0I0QTI7MTEwMyAxMTcwIDExQzE7CitCNEEzO0I0QTM7MTEwMyAxMTcwIDExQzI7QjRBMzsxMTAzIDExNzAgMTFDMjsKK0I0QTQ7QjRBNDsxMTAzIDExNzE7QjRBNDsxMTAzIDExNzE7CitCNEE1O0I0QTU7MTEwMyAxMTcxIDExQTg7QjRBNTsxMTAzIDExNzEgMTFBODsKK0I0QTY7QjRBNjsxMTAzIDExNzEgMTFBOTtCNEE2OzExMDMgMTE3MSAxMUE5OworQjRBNztCNEE3OzExMDMgMTE3MSAxMUFBO0I0QTc7MTEwMyAxMTcxIDExQUE7CitCNEE4O0I0QTg7MTEwMyAxMTcxIDExQUI7QjRBODsxMTAzIDExNzEgMTFBQjsKK0I0QTk7QjRBOTsxMTAzIDExNzEgMTFBQztCNEE5OzExMDMgMTE3MSAxMUFDOworQjRBQTtCNEFBOzExMDMgMTE3MSAxMUFEO0I0QUE7MTEwMyAxMTcxIDExQUQ7CitCNEFCO0I0QUI7MTEwMyAxMTcxIDExQUU7QjRBQjsxMTAzIDExNzEgMTFBRTsKK0I0QUM7QjRBQzsxMTAzIDExNzEgMTFBRjtCNEFDOzExMDMgMTE3MSAxMUFGOworQjRBRDtCNEFEOzExMDMgMTE3MSAxMUIwO0I0QUQ7MTEwMyAxMTcxIDExQjA7CitCNEFFO0I0QUU7MTEwMyAxMTcxIDExQjE7QjRBRTsxMTAzIDExNzEgMTFCMTsKK0I0QUY7QjRBRjsxMTAzIDExNzEgMTFCMjtCNEFGOzExMDMgMTE3MSAxMUIyOworQjRCMDtCNEIwOzExMDMgMTE3MSAxMUIzO0I0QjA7MTEwMyAxMTcxIDExQjM7CitCNEIxO0I0QjE7MTEwMyAxMTcxIDExQjQ7QjRCMTsxMTAzIDExNzEgMTFCNDsKK0I0QjI7QjRCMjsxMTAzIDExNzEgMTFCNTtCNEIyOzExMDMgMTE3MSAxMUI1OworQjRCMztCNEIzOzExMDMgMTE3MSAxMUI2O0I0QjM7MTEwMyAxMTcxIDExQjY7CitCNEI0O0I0QjQ7MTEwMyAxMTcxIDExQjc7QjRCNDsxMTAzIDExNzEgMTFCNzsKK0I0QjU7QjRCNTsxMTAzIDExNzEgMTFCODtCNEI1OzExMDMgMTE3MSAxMUI4OworQjRCNjtCNEI2OzExMDMgMTE3MSAxMUI5O0I0QjY7MTEwMyAxMTcxIDExQjk7CitCNEI3O0I0Qjc7MTEwMyAxMTcxIDExQkE7QjRCNzsxMTAzIDExNzEgMTFCQTsKK0I0Qjg7QjRCODsxMTAzIDExNzEgMTFCQjtCNEI4OzExMDMgMTE3MSAxMUJCOworQjRCOTtCNEI5OzExMDMgMTE3MSAxMUJDO0I0Qjk7MTEwMyAxMTcxIDExQkM7CitCNEJBO0I0QkE7MTEwMyAxMTcxIDExQkQ7QjRCQTsxMTAzIDExNzEgMTFCRDsKK0I0QkI7QjRCQjsxMTAzIDExNzEgMTFCRTtCNEJCOzExMDMgMTE3MSAxMUJFOworQjRCQztCNEJDOzExMDMgMTE3MSAxMUJGO0I0QkM7MTEwMyAxMTcxIDExQkY7CitCNEJEO0I0QkQ7MTEwMyAxMTcxIDExQzA7QjRCRDsxMTAzIDExNzEgMTFDMDsKK0I0QkU7QjRCRTsxMTAzIDExNzEgMTFDMTtCNEJFOzExMDMgMTE3MSAxMUMxOworQjRCRjtCNEJGOzExMDMgMTE3MSAxMUMyO0I0QkY7MTEwMyAxMTcxIDExQzI7CitCNEMwO0I0QzA7MTEwMyAxMTcyO0I0QzA7MTEwMyAxMTcyOworQjRDMTtCNEMxOzExMDMgMTE3MiAxMUE4O0I0QzE7MTEwMyAxMTcyIDExQTg7CitCNEMyO0I0QzI7MTEwMyAxMTcyIDExQTk7QjRDMjsxMTAzIDExNzIgMTFBOTsKK0I0QzM7QjRDMzsxMTAzIDExNzIgMTFBQTtCNEMzOzExMDMgMTE3MiAxMUFBOworQjRDNDtCNEM0OzExMDMgMTE3MiAxMUFCO0I0QzQ7MTEwMyAxMTcyIDExQUI7CitCNEM1O0I0QzU7MTEwMyAxMTcyIDExQUM7QjRDNTsxMTAzIDExNzIgMTFBQzsKK0I0QzY7QjRDNjsxMTAzIDExNzIgMTFBRDtCNEM2OzExMDMgMTE3MiAxMUFEOworQjRDNztCNEM3OzExMDMgMTE3MiAxMUFFO0I0Qzc7MTEwMyAxMTcyIDExQUU7CitCNEM4O0I0Qzg7MTEwMyAxMTcyIDExQUY7QjRDODsxMTAzIDExNzIgMTFBRjsKK0I0Qzk7QjRDOTsxMTAzIDExNzIgMTFCMDtCNEM5OzExMDMgMTE3MiAxMUIwOworQjRDQTtCNENBOzExMDMgMTE3MiAxMUIxO0I0Q0E7MTEwMyAxMTcyIDExQjE7CitCNENCO0I0Q0I7MTEwMyAxMTcyIDExQjI7QjRDQjsxMTAzIDExNzIgMTFCMjsKK0I0Q0M7QjRDQzsxMTAzIDExNzIgMTFCMztCNENDOzExMDMgMTE3MiAxMUIzOworQjRDRDtCNENEOzExMDMgMTE3MiAxMUI0O0I0Q0Q7MTEwMyAxMTcyIDExQjQ7CitCNENFO0I0Q0U7MTEwMyAxMTcyIDExQjU7QjRDRTsxMTAzIDExNzIgMTFCNTsKK0I0Q0Y7QjRDRjsxMTAzIDExNzIgMTFCNjtCNENGOzExMDMgMTE3MiAxMUI2OworQjREMDtCNEQwOzExMDMgMTE3MiAxMUI3O0I0RDA7MTEwMyAxMTcyIDExQjc7CitCNEQxO0I0RDE7MTEwMyAxMTcyIDExQjg7QjREMTsxMTAzIDExNzIgMTFCODsKK0I0RDI7QjREMjsxMTAzIDExNzIgMTFCOTtCNEQyOzExMDMgMTE3MiAxMUI5OworQjREMztCNEQzOzExMDMgMTE3MiAxMUJBO0I0RDM7MTEwMyAxMTcyIDExQkE7CitCNEQ0O0I0RDQ7MTEwMyAxMTcyIDExQkI7QjRENDsxMTAzIDExNzIgMTFCQjsKK0I0RDU7QjRENTsxMTAzIDExNzIgMTFCQztCNEQ1OzExMDMgMTE3MiAxMUJDOworQjRENjtCNEQ2OzExMDMgMTE3MiAxMUJEO0I0RDY7MTEwMyAxMTcyIDExQkQ7CitCNEQ3O0I0RDc7MTEwMyAxMTcyIDExQkU7QjRENzsxMTAzIDExNzIgMTFCRTsKK0I0RDg7QjREODsxMTAzIDExNzIgMTFCRjtCNEQ4OzExMDMgMTE3MiAxMUJGOworQjREOTtCNEQ5OzExMDMgMTE3MiAxMUMwO0I0RDk7MTEwMyAxMTcyIDExQzA7CitCNERBO0I0REE7MTEwMyAxMTcyIDExQzE7QjREQTsxMTAzIDExNzIgMTFDMTsKK0I0REI7QjREQjsxMTAzIDExNzIgMTFDMjtCNERCOzExMDMgMTE3MiAxMUMyOworQjREQztCNERDOzExMDMgMTE3MztCNERDOzExMDMgMTE3MzsKK0I0REQ7QjRERDsxMTAzIDExNzMgMTFBODtCNEREOzExMDMgMTE3MyAxMUE4OworQjRERTtCNERFOzExMDMgMTE3MyAxMUE5O0I0REU7MTEwMyAxMTczIDExQTk7CitCNERGO0I0REY7MTEwMyAxMTczIDExQUE7QjRERjsxMTAzIDExNzMgMTFBQTsKK0I0RTA7QjRFMDsxMTAzIDExNzMgMTFBQjtCNEUwOzExMDMgMTE3MyAxMUFCOworQjRFMTtCNEUxOzExMDMgMTE3MyAxMUFDO0I0RTE7MTEwMyAxMTczIDExQUM7CitCNEUyO0I0RTI7MTEwMyAxMTczIDExQUQ7QjRFMjsxMTAzIDExNzMgMTFBRDsKK0I0RTM7QjRFMzsxMTAzIDExNzMgMTFBRTtCNEUzOzExMDMgMTE3MyAxMUFFOworQjRFNDtCNEU0OzExMDMgMTE3MyAxMUFGO0I0RTQ7MTEwMyAxMTczIDExQUY7CitCNEU1O0I0RTU7MTEwMyAxMTczIDExQjA7QjRFNTsxMTAzIDExNzMgMTFCMDsKK0I0RTY7QjRFNjsxMTAzIDExNzMgMTFCMTtCNEU2OzExMDMgMTE3MyAxMUIxOworQjRFNztCNEU3OzExMDMgMTE3MyAxMUIyO0I0RTc7MTEwMyAxMTczIDExQjI7CitCNEU4O0I0RTg7MTEwMyAxMTczIDExQjM7QjRFODsxMTAzIDExNzMgMTFCMzsKK0I0RTk7QjRFOTsxMTAzIDExNzMgMTFCNDtCNEU5OzExMDMgMTE3MyAxMUI0OworQjRFQTtCNEVBOzExMDMgMTE3MyAxMUI1O0I0RUE7MTEwMyAxMTczIDExQjU7CitCNEVCO0I0RUI7MTEwMyAxMTczIDExQjY7QjRFQjsxMTAzIDExNzMgMTFCNjsKK0I0RUM7QjRFQzsxMTAzIDExNzMgMTFCNztCNEVDOzExMDMgMTE3MyAxMUI3OworQjRFRDtCNEVEOzExMDMgMTE3MyAxMUI4O0I0RUQ7MTEwMyAxMTczIDExQjg7CitCNEVFO0I0RUU7MTEwMyAxMTczIDExQjk7QjRFRTsxMTAzIDExNzMgMTFCOTsKK0I0RUY7QjRFRjsxMTAzIDExNzMgMTFCQTtCNEVGOzExMDMgMTE3MyAxMUJBOworQjRGMDtCNEYwOzExMDMgMTE3MyAxMUJCO0I0RjA7MTEwMyAxMTczIDExQkI7CitCNEYxO0I0RjE7MTEwMyAxMTczIDExQkM7QjRGMTsxMTAzIDExNzMgMTFCQzsKK0I0RjI7QjRGMjsxMTAzIDExNzMgMTFCRDtCNEYyOzExMDMgMTE3MyAxMUJEOworQjRGMztCNEYzOzExMDMgMTE3MyAxMUJFO0I0RjM7MTEwMyAxMTczIDExQkU7CitCNEY0O0I0RjQ7MTEwMyAxMTczIDExQkY7QjRGNDsxMTAzIDExNzMgMTFCRjsKK0I0RjU7QjRGNTsxMTAzIDExNzMgMTFDMDtCNEY1OzExMDMgMTE3MyAxMUMwOworQjRGNjtCNEY2OzExMDMgMTE3MyAxMUMxO0I0RjY7MTEwMyAxMTczIDExQzE7CitCNEY3O0I0Rjc7MTEwMyAxMTczIDExQzI7QjRGNzsxMTAzIDExNzMgMTFDMjsKK0I0Rjg7QjRGODsxMTAzIDExNzQ7QjRGODsxMTAzIDExNzQ7CitCNEY5O0I0Rjk7MTEwMyAxMTc0IDExQTg7QjRGOTsxMTAzIDExNzQgMTFBODsKK0I0RkE7QjRGQTsxMTAzIDExNzQgMTFBOTtCNEZBOzExMDMgMTE3NCAxMUE5OworQjRGQjtCNEZCOzExMDMgMTE3NCAxMUFBO0I0RkI7MTEwMyAxMTc0IDExQUE7CitCNEZDO0I0RkM7MTEwMyAxMTc0IDExQUI7QjRGQzsxMTAzIDExNzQgMTFBQjsKK0I0RkQ7QjRGRDsxMTAzIDExNzQgMTFBQztCNEZEOzExMDMgMTE3NCAxMUFDOworQjRGRTtCNEZFOzExMDMgMTE3NCAxMUFEO0I0RkU7MTEwMyAxMTc0IDExQUQ7CitCNEZGO0I0RkY7MTEwMyAxMTc0IDExQUU7QjRGRjsxMTAzIDExNzQgMTFBRTsKK0I1MDA7QjUwMDsxMTAzIDExNzQgMTFBRjtCNTAwOzExMDMgMTE3NCAxMUFGOworQjUwMTtCNTAxOzExMDMgMTE3NCAxMUIwO0I1MDE7MTEwMyAxMTc0IDExQjA7CitCNTAyO0I1MDI7MTEwMyAxMTc0IDExQjE7QjUwMjsxMTAzIDExNzQgMTFCMTsKK0I1MDM7QjUwMzsxMTAzIDExNzQgMTFCMjtCNTAzOzExMDMgMTE3NCAxMUIyOworQjUwNDtCNTA0OzExMDMgMTE3NCAxMUIzO0I1MDQ7MTEwMyAxMTc0IDExQjM7CitCNTA1O0I1MDU7MTEwMyAxMTc0IDExQjQ7QjUwNTsxMTAzIDExNzQgMTFCNDsKK0I1MDY7QjUwNjsxMTAzIDExNzQgMTFCNTtCNTA2OzExMDMgMTE3NCAxMUI1OworQjUwNztCNTA3OzExMDMgMTE3NCAxMUI2O0I1MDc7MTEwMyAxMTc0IDExQjY7CitCNTA4O0I1MDg7MTEwMyAxMTc0IDExQjc7QjUwODsxMTAzIDExNzQgMTFCNzsKK0I1MDk7QjUwOTsxMTAzIDExNzQgMTFCODtCNTA5OzExMDMgMTE3NCAxMUI4OworQjUwQTtCNTBBOzExMDMgMTE3NCAxMUI5O0I1MEE7MTEwMyAxMTc0IDExQjk7CitCNTBCO0I1MEI7MTEwMyAxMTc0IDExQkE7QjUwQjsxMTAzIDExNzQgMTFCQTsKK0I1MEM7QjUwQzsxMTAzIDExNzQgMTFCQjtCNTBDOzExMDMgMTE3NCAxMUJCOworQjUwRDtCNTBEOzExMDMgMTE3NCAxMUJDO0I1MEQ7MTEwMyAxMTc0IDExQkM7CitCNTBFO0I1MEU7MTEwMyAxMTc0IDExQkQ7QjUwRTsxMTAzIDExNzQgMTFCRDsKK0I1MEY7QjUwRjsxMTAzIDExNzQgMTFCRTtCNTBGOzExMDMgMTE3NCAxMUJFOworQjUxMDtCNTEwOzExMDMgMTE3NCAxMUJGO0I1MTA7MTEwMyAxMTc0IDExQkY7CitCNTExO0I1MTE7MTEwMyAxMTc0IDExQzA7QjUxMTsxMTAzIDExNzQgMTFDMDsKK0I1MTI7QjUxMjsxMTAzIDExNzQgMTFDMTtCNTEyOzExMDMgMTE3NCAxMUMxOworQjUxMztCNTEzOzExMDMgMTE3NCAxMUMyO0I1MTM7MTEwMyAxMTc0IDExQzI7CitCNTE0O0I1MTQ7MTEwMyAxMTc1O0I1MTQ7MTEwMyAxMTc1OworQjUxNTtCNTE1OzExMDMgMTE3NSAxMUE4O0I1MTU7MTEwMyAxMTc1IDExQTg7CitCNTE2O0I1MTY7MTEwMyAxMTc1IDExQTk7QjUxNjsxMTAzIDExNzUgMTFBOTsKK0I1MTc7QjUxNzsxMTAzIDExNzUgMTFBQTtCNTE3OzExMDMgMTE3NSAxMUFBOworQjUxODtCNTE4OzExMDMgMTE3NSAxMUFCO0I1MTg7MTEwMyAxMTc1IDExQUI7CitCNTE5O0I1MTk7MTEwMyAxMTc1IDExQUM7QjUxOTsxMTAzIDExNzUgMTFBQzsKK0I1MUE7QjUxQTsxMTAzIDExNzUgMTFBRDtCNTFBOzExMDMgMTE3NSAxMUFEOworQjUxQjtCNTFCOzExMDMgMTE3NSAxMUFFO0I1MUI7MTEwMyAxMTc1IDExQUU7CitCNTFDO0I1MUM7MTEwMyAxMTc1IDExQUY7QjUxQzsxMTAzIDExNzUgMTFBRjsKK0I1MUQ7QjUxRDsxMTAzIDExNzUgMTFCMDtCNTFEOzExMDMgMTE3NSAxMUIwOworQjUxRTtCNTFFOzExMDMgMTE3NSAxMUIxO0I1MUU7MTEwMyAxMTc1IDExQjE7CitCNTFGO0I1MUY7MTEwMyAxMTc1IDExQjI7QjUxRjsxMTAzIDExNzUgMTFCMjsKK0I1MjA7QjUyMDsxMTAzIDExNzUgMTFCMztCNTIwOzExMDMgMTE3NSAxMUIzOworQjUyMTtCNTIxOzExMDMgMTE3NSAxMUI0O0I1MjE7MTEwMyAxMTc1IDExQjQ7CitCNTIyO0I1MjI7MTEwMyAxMTc1IDExQjU7QjUyMjsxMTAzIDExNzUgMTFCNTsKK0I1MjM7QjUyMzsxMTAzIDExNzUgMTFCNjtCNTIzOzExMDMgMTE3NSAxMUI2OworQjUyNDtCNTI0OzExMDMgMTE3NSAxMUI3O0I1MjQ7MTEwMyAxMTc1IDExQjc7CitCNTI1O0I1MjU7MTEwMyAxMTc1IDExQjg7QjUyNTsxMTAzIDExNzUgMTFCODsKK0I1MjY7QjUyNjsxMTAzIDExNzUgMTFCOTtCNTI2OzExMDMgMTE3NSAxMUI5OworQjUyNztCNTI3OzExMDMgMTE3NSAxMUJBO0I1Mjc7MTEwMyAxMTc1IDExQkE7CitCNTI4O0I1Mjg7MTEwMyAxMTc1IDExQkI7QjUyODsxMTAzIDExNzUgMTFCQjsKK0I1Mjk7QjUyOTsxMTAzIDExNzUgMTFCQztCNTI5OzExMDMgMTE3NSAxMUJDOworQjUyQTtCNTJBOzExMDMgMTE3NSAxMUJEO0I1MkE7MTEwMyAxMTc1IDExQkQ7CitCNTJCO0I1MkI7MTEwMyAxMTc1IDExQkU7QjUyQjsxMTAzIDExNzUgMTFCRTsKK0I1MkM7QjUyQzsxMTAzIDExNzUgMTFCRjtCNTJDOzExMDMgMTE3NSAxMUJGOworQjUyRDtCNTJEOzExMDMgMTE3NSAxMUMwO0I1MkQ7MTEwMyAxMTc1IDExQzA7CitCNTJFO0I1MkU7MTEwMyAxMTc1IDExQzE7QjUyRTsxMTAzIDExNzUgMTFDMTsKK0I1MkY7QjUyRjsxMTAzIDExNzUgMTFDMjtCNTJGOzExMDMgMTE3NSAxMUMyOworQjUzMDtCNTMwOzExMDQgMTE2MTtCNTMwOzExMDQgMTE2MTsKK0I1MzE7QjUzMTsxMTA0IDExNjEgMTFBODtCNTMxOzExMDQgMTE2MSAxMUE4OworQjUzMjtCNTMyOzExMDQgMTE2MSAxMUE5O0I1MzI7MTEwNCAxMTYxIDExQTk7CitCNTMzO0I1MzM7MTEwNCAxMTYxIDExQUE7QjUzMzsxMTA0IDExNjEgMTFBQTsKK0I1MzQ7QjUzNDsxMTA0IDExNjEgMTFBQjtCNTM0OzExMDQgMTE2MSAxMUFCOworQjUzNTtCNTM1OzExMDQgMTE2MSAxMUFDO0I1MzU7MTEwNCAxMTYxIDExQUM7CitCNTM2O0I1MzY7MTEwNCAxMTYxIDExQUQ7QjUzNjsxMTA0IDExNjEgMTFBRDsKK0I1Mzc7QjUzNzsxMTA0IDExNjEgMTFBRTtCNTM3OzExMDQgMTE2MSAxMUFFOworQjUzODtCNTM4OzExMDQgMTE2MSAxMUFGO0I1Mzg7MTEwNCAxMTYxIDExQUY7CitCNTM5O0I1Mzk7MTEwNCAxMTYxIDExQjA7QjUzOTsxMTA0IDExNjEgMTFCMDsKK0I1M0E7QjUzQTsxMTA0IDExNjEgMTFCMTtCNTNBOzExMDQgMTE2MSAxMUIxOworQjUzQjtCNTNCOzExMDQgMTE2MSAxMUIyO0I1M0I7MTEwNCAxMTYxIDExQjI7CitCNTNDO0I1M0M7MTEwNCAxMTYxIDExQjM7QjUzQzsxMTA0IDExNjEgMTFCMzsKK0I1M0Q7QjUzRDsxMTA0IDExNjEgMTFCNDtCNTNEOzExMDQgMTE2MSAxMUI0OworQjUzRTtCNTNFOzExMDQgMTE2MSAxMUI1O0I1M0U7MTEwNCAxMTYxIDExQjU7CitCNTNGO0I1M0Y7MTEwNCAxMTYxIDExQjY7QjUzRjsxMTA0IDExNjEgMTFCNjsKK0I1NDA7QjU0MDsxMTA0IDExNjEgMTFCNztCNTQwOzExMDQgMTE2MSAxMUI3OworQjU0MTtCNTQxOzExMDQgMTE2MSAxMUI4O0I1NDE7MTEwNCAxMTYxIDExQjg7CitCNTQyO0I1NDI7MTEwNCAxMTYxIDExQjk7QjU0MjsxMTA0IDExNjEgMTFCOTsKK0I1NDM7QjU0MzsxMTA0IDExNjEgMTFCQTtCNTQzOzExMDQgMTE2MSAxMUJBOworQjU0NDtCNTQ0OzExMDQgMTE2MSAxMUJCO0I1NDQ7MTEwNCAxMTYxIDExQkI7CitCNTQ1O0I1NDU7MTEwNCAxMTYxIDExQkM7QjU0NTsxMTA0IDExNjEgMTFCQzsKK0I1NDY7QjU0NjsxMTA0IDExNjEgMTFCRDtCNTQ2OzExMDQgMTE2MSAxMUJEOworQjU0NztCNTQ3OzExMDQgMTE2MSAxMUJFO0I1NDc7MTEwNCAxMTYxIDExQkU7CitCNTQ4O0I1NDg7MTEwNCAxMTYxIDExQkY7QjU0ODsxMTA0IDExNjEgMTFCRjsKK0I1NDk7QjU0OTsxMTA0IDExNjEgMTFDMDtCNTQ5OzExMDQgMTE2MSAxMUMwOworQjU0QTtCNTRBOzExMDQgMTE2MSAxMUMxO0I1NEE7MTEwNCAxMTYxIDExQzE7CitCNTRCO0I1NEI7MTEwNCAxMTYxIDExQzI7QjU0QjsxMTA0IDExNjEgMTFDMjsKK0I1NEM7QjU0QzsxMTA0IDExNjI7QjU0QzsxMTA0IDExNjI7CitCNTREO0I1NEQ7MTEwNCAxMTYyIDExQTg7QjU0RDsxMTA0IDExNjIgMTFBODsKK0I1NEU7QjU0RTsxMTA0IDExNjIgMTFBOTtCNTRFOzExMDQgMTE2MiAxMUE5OworQjU0RjtCNTRGOzExMDQgMTE2MiAxMUFBO0I1NEY7MTEwNCAxMTYyIDExQUE7CitCNTUwO0I1NTA7MTEwNCAxMTYyIDExQUI7QjU1MDsxMTA0IDExNjIgMTFBQjsKK0I1NTE7QjU1MTsxMTA0IDExNjIgMTFBQztCNTUxOzExMDQgMTE2MiAxMUFDOworQjU1MjtCNTUyOzExMDQgMTE2MiAxMUFEO0I1NTI7MTEwNCAxMTYyIDExQUQ7CitCNTUzO0I1NTM7MTEwNCAxMTYyIDExQUU7QjU1MzsxMTA0IDExNjIgMTFBRTsKK0I1NTQ7QjU1NDsxMTA0IDExNjIgMTFBRjtCNTU0OzExMDQgMTE2MiAxMUFGOworQjU1NTtCNTU1OzExMDQgMTE2MiAxMUIwO0I1NTU7MTEwNCAxMTYyIDExQjA7CitCNTU2O0I1NTY7MTEwNCAxMTYyIDExQjE7QjU1NjsxMTA0IDExNjIgMTFCMTsKK0I1NTc7QjU1NzsxMTA0IDExNjIgMTFCMjtCNTU3OzExMDQgMTE2MiAxMUIyOworQjU1ODtCNTU4OzExMDQgMTE2MiAxMUIzO0I1NTg7MTEwNCAxMTYyIDExQjM7CitCNTU5O0I1NTk7MTEwNCAxMTYyIDExQjQ7QjU1OTsxMTA0IDExNjIgMTFCNDsKK0I1NUE7QjU1QTsxMTA0IDExNjIgMTFCNTtCNTVBOzExMDQgMTE2MiAxMUI1OworQjU1QjtCNTVCOzExMDQgMTE2MiAxMUI2O0I1NUI7MTEwNCAxMTYyIDExQjY7CitCNTVDO0I1NUM7MTEwNCAxMTYyIDExQjc7QjU1QzsxMTA0IDExNjIgMTFCNzsKK0I1NUQ7QjU1RDsxMTA0IDExNjIgMTFCODtCNTVEOzExMDQgMTE2MiAxMUI4OworQjU1RTtCNTVFOzExMDQgMTE2MiAxMUI5O0I1NUU7MTEwNCAxMTYyIDExQjk7CitCNTVGO0I1NUY7MTEwNCAxMTYyIDExQkE7QjU1RjsxMTA0IDExNjIgMTFCQTsKK0I1NjA7QjU2MDsxMTA0IDExNjIgMTFCQjtCNTYwOzExMDQgMTE2MiAxMUJCOworQjU2MTtCNTYxOzExMDQgMTE2MiAxMUJDO0I1NjE7MTEwNCAxMTYyIDExQkM7CitCNTYyO0I1NjI7MTEwNCAxMTYyIDExQkQ7QjU2MjsxMTA0IDExNjIgMTFCRDsKK0I1NjM7QjU2MzsxMTA0IDExNjIgMTFCRTtCNTYzOzExMDQgMTE2MiAxMUJFOworQjU2NDtCNTY0OzExMDQgMTE2MiAxMUJGO0I1NjQ7MTEwNCAxMTYyIDExQkY7CitCNTY1O0I1NjU7MTEwNCAxMTYyIDExQzA7QjU2NTsxMTA0IDExNjIgMTFDMDsKK0I1NjY7QjU2NjsxMTA0IDExNjIgMTFDMTtCNTY2OzExMDQgMTE2MiAxMUMxOworQjU2NztCNTY3OzExMDQgMTE2MiAxMUMyO0I1Njc7MTEwNCAxMTYyIDExQzI7CitCNTY4O0I1Njg7MTEwNCAxMTYzO0I1Njg7MTEwNCAxMTYzOworQjU2OTtCNTY5OzExMDQgMTE2MyAxMUE4O0I1Njk7MTEwNCAxMTYzIDExQTg7CitCNTZBO0I1NkE7MTEwNCAxMTYzIDExQTk7QjU2QTsxMTA0IDExNjMgMTFBOTsKK0I1NkI7QjU2QjsxMTA0IDExNjMgMTFBQTtCNTZCOzExMDQgMTE2MyAxMUFBOworQjU2QztCNTZDOzExMDQgMTE2MyAxMUFCO0I1NkM7MTEwNCAxMTYzIDExQUI7CitCNTZEO0I1NkQ7MTEwNCAxMTYzIDExQUM7QjU2RDsxMTA0IDExNjMgMTFBQzsKK0I1NkU7QjU2RTsxMTA0IDExNjMgMTFBRDtCNTZFOzExMDQgMTE2MyAxMUFEOworQjU2RjtCNTZGOzExMDQgMTE2MyAxMUFFO0I1NkY7MTEwNCAxMTYzIDExQUU7CitCNTcwO0I1NzA7MTEwNCAxMTYzIDExQUY7QjU3MDsxMTA0IDExNjMgMTFBRjsKK0I1NzE7QjU3MTsxMTA0IDExNjMgMTFCMDtCNTcxOzExMDQgMTE2MyAxMUIwOworQjU3MjtCNTcyOzExMDQgMTE2MyAxMUIxO0I1NzI7MTEwNCAxMTYzIDExQjE7CitCNTczO0I1NzM7MTEwNCAxMTYzIDExQjI7QjU3MzsxMTA0IDExNjMgMTFCMjsKK0I1NzQ7QjU3NDsxMTA0IDExNjMgMTFCMztCNTc0OzExMDQgMTE2MyAxMUIzOworQjU3NTtCNTc1OzExMDQgMTE2MyAxMUI0O0I1NzU7MTEwNCAxMTYzIDExQjQ7CitCNTc2O0I1NzY7MTEwNCAxMTYzIDExQjU7QjU3NjsxMTA0IDExNjMgMTFCNTsKK0I1Nzc7QjU3NzsxMTA0IDExNjMgMTFCNjtCNTc3OzExMDQgMTE2MyAxMUI2OworQjU3ODtCNTc4OzExMDQgMTE2MyAxMUI3O0I1Nzg7MTEwNCAxMTYzIDExQjc7CitCNTc5O0I1Nzk7MTEwNCAxMTYzIDExQjg7QjU3OTsxMTA0IDExNjMgMTFCODsKK0I1N0E7QjU3QTsxMTA0IDExNjMgMTFCOTtCNTdBOzExMDQgMTE2MyAxMUI5OworQjU3QjtCNTdCOzExMDQgMTE2MyAxMUJBO0I1N0I7MTEwNCAxMTYzIDExQkE7CitCNTdDO0I1N0M7MTEwNCAxMTYzIDExQkI7QjU3QzsxMTA0IDExNjMgMTFCQjsKK0I1N0Q7QjU3RDsxMTA0IDExNjMgMTFCQztCNTdEOzExMDQgMTE2MyAxMUJDOworQjU3RTtCNTdFOzExMDQgMTE2MyAxMUJEO0I1N0U7MTEwNCAxMTYzIDExQkQ7CitCNTdGO0I1N0Y7MTEwNCAxMTYzIDExQkU7QjU3RjsxMTA0IDExNjMgMTFCRTsKK0I1ODA7QjU4MDsxMTA0IDExNjMgMTFCRjtCNTgwOzExMDQgMTE2MyAxMUJGOworQjU4MTtCNTgxOzExMDQgMTE2MyAxMUMwO0I1ODE7MTEwNCAxMTYzIDExQzA7CitCNTgyO0I1ODI7MTEwNCAxMTYzIDExQzE7QjU4MjsxMTA0IDExNjMgMTFDMTsKK0I1ODM7QjU4MzsxMTA0IDExNjMgMTFDMjtCNTgzOzExMDQgMTE2MyAxMUMyOworQjU4NDtCNTg0OzExMDQgMTE2NDtCNTg0OzExMDQgMTE2NDsKK0I1ODU7QjU4NTsxMTA0IDExNjQgMTFBODtCNTg1OzExMDQgMTE2NCAxMUE4OworQjU4NjtCNTg2OzExMDQgMTE2NCAxMUE5O0I1ODY7MTEwNCAxMTY0IDExQTk7CitCNTg3O0I1ODc7MTEwNCAxMTY0IDExQUE7QjU4NzsxMTA0IDExNjQgMTFBQTsKK0I1ODg7QjU4ODsxMTA0IDExNjQgMTFBQjtCNTg4OzExMDQgMTE2NCAxMUFCOworQjU4OTtCNTg5OzExMDQgMTE2NCAxMUFDO0I1ODk7MTEwNCAxMTY0IDExQUM7CitCNThBO0I1OEE7MTEwNCAxMTY0IDExQUQ7QjU4QTsxMTA0IDExNjQgMTFBRDsKK0I1OEI7QjU4QjsxMTA0IDExNjQgMTFBRTtCNThCOzExMDQgMTE2NCAxMUFFOworQjU4QztCNThDOzExMDQgMTE2NCAxMUFGO0I1OEM7MTEwNCAxMTY0IDExQUY7CitCNThEO0I1OEQ7MTEwNCAxMTY0IDExQjA7QjU4RDsxMTA0IDExNjQgMTFCMDsKK0I1OEU7QjU4RTsxMTA0IDExNjQgMTFCMTtCNThFOzExMDQgMTE2NCAxMUIxOworQjU4RjtCNThGOzExMDQgMTE2NCAxMUIyO0I1OEY7MTEwNCAxMTY0IDExQjI7CitCNTkwO0I1OTA7MTEwNCAxMTY0IDExQjM7QjU5MDsxMTA0IDExNjQgMTFCMzsKK0I1OTE7QjU5MTsxMTA0IDExNjQgMTFCNDtCNTkxOzExMDQgMTE2NCAxMUI0OworQjU5MjtCNTkyOzExMDQgMTE2NCAxMUI1O0I1OTI7MTEwNCAxMTY0IDExQjU7CitCNTkzO0I1OTM7MTEwNCAxMTY0IDExQjY7QjU5MzsxMTA0IDExNjQgMTFCNjsKK0I1OTQ7QjU5NDsxMTA0IDExNjQgMTFCNztCNTk0OzExMDQgMTE2NCAxMUI3OworQjU5NTtCNTk1OzExMDQgMTE2NCAxMUI4O0I1OTU7MTEwNCAxMTY0IDExQjg7CitCNTk2O0I1OTY7MTEwNCAxMTY0IDExQjk7QjU5NjsxMTA0IDExNjQgMTFCOTsKK0I1OTc7QjU5NzsxMTA0IDExNjQgMTFCQTtCNTk3OzExMDQgMTE2NCAxMUJBOworQjU5ODtCNTk4OzExMDQgMTE2NCAxMUJCO0I1OTg7MTEwNCAxMTY0IDExQkI7CitCNTk5O0I1OTk7MTEwNCAxMTY0IDExQkM7QjU5OTsxMTA0IDExNjQgMTFCQzsKK0I1OUE7QjU5QTsxMTA0IDExNjQgMTFCRDtCNTlBOzExMDQgMTE2NCAxMUJEOworQjU5QjtCNTlCOzExMDQgMTE2NCAxMUJFO0I1OUI7MTEwNCAxMTY0IDExQkU7CitCNTlDO0I1OUM7MTEwNCAxMTY0IDExQkY7QjU5QzsxMTA0IDExNjQgMTFCRjsKK0I1OUQ7QjU5RDsxMTA0IDExNjQgMTFDMDtCNTlEOzExMDQgMTE2NCAxMUMwOworQjU5RTtCNTlFOzExMDQgMTE2NCAxMUMxO0I1OUU7MTEwNCAxMTY0IDExQzE7CitCNTlGO0I1OUY7MTEwNCAxMTY0IDExQzI7QjU5RjsxMTA0IDExNjQgMTFDMjsKK0I1QTA7QjVBMDsxMTA0IDExNjU7QjVBMDsxMTA0IDExNjU7CitCNUExO0I1QTE7MTEwNCAxMTY1IDExQTg7QjVBMTsxMTA0IDExNjUgMTFBODsKK0I1QTI7QjVBMjsxMTA0IDExNjUgMTFBOTtCNUEyOzExMDQgMTE2NSAxMUE5OworQjVBMztCNUEzOzExMDQgMTE2NSAxMUFBO0I1QTM7MTEwNCAxMTY1IDExQUE7CitCNUE0O0I1QTQ7MTEwNCAxMTY1IDExQUI7QjVBNDsxMTA0IDExNjUgMTFBQjsKK0I1QTU7QjVBNTsxMTA0IDExNjUgMTFBQztCNUE1OzExMDQgMTE2NSAxMUFDOworQjVBNjtCNUE2OzExMDQgMTE2NSAxMUFEO0I1QTY7MTEwNCAxMTY1IDExQUQ7CitCNUE3O0I1QTc7MTEwNCAxMTY1IDExQUU7QjVBNzsxMTA0IDExNjUgMTFBRTsKK0I1QTg7QjVBODsxMTA0IDExNjUgMTFBRjtCNUE4OzExMDQgMTE2NSAxMUFGOworQjVBOTtCNUE5OzExMDQgMTE2NSAxMUIwO0I1QTk7MTEwNCAxMTY1IDExQjA7CitCNUFBO0I1QUE7MTEwNCAxMTY1IDExQjE7QjVBQTsxMTA0IDExNjUgMTFCMTsKK0I1QUI7QjVBQjsxMTA0IDExNjUgMTFCMjtCNUFCOzExMDQgMTE2NSAxMUIyOworQjVBQztCNUFDOzExMDQgMTE2NSAxMUIzO0I1QUM7MTEwNCAxMTY1IDExQjM7CitCNUFEO0I1QUQ7MTEwNCAxMTY1IDExQjQ7QjVBRDsxMTA0IDExNjUgMTFCNDsKK0I1QUU7QjVBRTsxMTA0IDExNjUgMTFCNTtCNUFFOzExMDQgMTE2NSAxMUI1OworQjVBRjtCNUFGOzExMDQgMTE2NSAxMUI2O0I1QUY7MTEwNCAxMTY1IDExQjY7CitCNUIwO0I1QjA7MTEwNCAxMTY1IDExQjc7QjVCMDsxMTA0IDExNjUgMTFCNzsKK0I1QjE7QjVCMTsxMTA0IDExNjUgMTFCODtCNUIxOzExMDQgMTE2NSAxMUI4OworQjVCMjtCNUIyOzExMDQgMTE2NSAxMUI5O0I1QjI7MTEwNCAxMTY1IDExQjk7CitCNUIzO0I1QjM7MTEwNCAxMTY1IDExQkE7QjVCMzsxMTA0IDExNjUgMTFCQTsKK0I1QjQ7QjVCNDsxMTA0IDExNjUgMTFCQjtCNUI0OzExMDQgMTE2NSAxMUJCOworQjVCNTtCNUI1OzExMDQgMTE2NSAxMUJDO0I1QjU7MTEwNCAxMTY1IDExQkM7CitCNUI2O0I1QjY7MTEwNCAxMTY1IDExQkQ7QjVCNjsxMTA0IDExNjUgMTFCRDsKK0I1Qjc7QjVCNzsxMTA0IDExNjUgMTFCRTtCNUI3OzExMDQgMTE2NSAxMUJFOworQjVCODtCNUI4OzExMDQgMTE2NSAxMUJGO0I1Qjg7MTEwNCAxMTY1IDExQkY7CitCNUI5O0I1Qjk7MTEwNCAxMTY1IDExQzA7QjVCOTsxMTA0IDExNjUgMTFDMDsKK0I1QkE7QjVCQTsxMTA0IDExNjUgMTFDMTtCNUJBOzExMDQgMTE2NSAxMUMxOworQjVCQjtCNUJCOzExMDQgMTE2NSAxMUMyO0I1QkI7MTEwNCAxMTY1IDExQzI7CitCNUJDO0I1QkM7MTEwNCAxMTY2O0I1QkM7MTEwNCAxMTY2OworQjVCRDtCNUJEOzExMDQgMTE2NiAxMUE4O0I1QkQ7MTEwNCAxMTY2IDExQTg7CitCNUJFO0I1QkU7MTEwNCAxMTY2IDExQTk7QjVCRTsxMTA0IDExNjYgMTFBOTsKK0I1QkY7QjVCRjsxMTA0IDExNjYgMTFBQTtCNUJGOzExMDQgMTE2NiAxMUFBOworQjVDMDtCNUMwOzExMDQgMTE2NiAxMUFCO0I1QzA7MTEwNCAxMTY2IDExQUI7CitCNUMxO0I1QzE7MTEwNCAxMTY2IDExQUM7QjVDMTsxMTA0IDExNjYgMTFBQzsKK0I1QzI7QjVDMjsxMTA0IDExNjYgMTFBRDtCNUMyOzExMDQgMTE2NiAxMUFEOworQjVDMztCNUMzOzExMDQgMTE2NiAxMUFFO0I1QzM7MTEwNCAxMTY2IDExQUU7CitCNUM0O0I1QzQ7MTEwNCAxMTY2IDExQUY7QjVDNDsxMTA0IDExNjYgMTFBRjsKK0I1QzU7QjVDNTsxMTA0IDExNjYgMTFCMDtCNUM1OzExMDQgMTE2NiAxMUIwOworQjVDNjtCNUM2OzExMDQgMTE2NiAxMUIxO0I1QzY7MTEwNCAxMTY2IDExQjE7CitCNUM3O0I1Qzc7MTEwNCAxMTY2IDExQjI7QjVDNzsxMTA0IDExNjYgMTFCMjsKK0I1Qzg7QjVDODsxMTA0IDExNjYgMTFCMztCNUM4OzExMDQgMTE2NiAxMUIzOworQjVDOTtCNUM5OzExMDQgMTE2NiAxMUI0O0I1Qzk7MTEwNCAxMTY2IDExQjQ7CitCNUNBO0I1Q0E7MTEwNCAxMTY2IDExQjU7QjVDQTsxMTA0IDExNjYgMTFCNTsKK0I1Q0I7QjVDQjsxMTA0IDExNjYgMTFCNjtCNUNCOzExMDQgMTE2NiAxMUI2OworQjVDQztCNUNDOzExMDQgMTE2NiAxMUI3O0I1Q0M7MTEwNCAxMTY2IDExQjc7CitCNUNEO0I1Q0Q7MTEwNCAxMTY2IDExQjg7QjVDRDsxMTA0IDExNjYgMTFCODsKK0I1Q0U7QjVDRTsxMTA0IDExNjYgMTFCOTtCNUNFOzExMDQgMTE2NiAxMUI5OworQjVDRjtCNUNGOzExMDQgMTE2NiAxMUJBO0I1Q0Y7MTEwNCAxMTY2IDExQkE7CitCNUQwO0I1RDA7MTEwNCAxMTY2IDExQkI7QjVEMDsxMTA0IDExNjYgMTFCQjsKK0I1RDE7QjVEMTsxMTA0IDExNjYgMTFCQztCNUQxOzExMDQgMTE2NiAxMUJDOworQjVEMjtCNUQyOzExMDQgMTE2NiAxMUJEO0I1RDI7MTEwNCAxMTY2IDExQkQ7CitCNUQzO0I1RDM7MTEwNCAxMTY2IDExQkU7QjVEMzsxMTA0IDExNjYgMTFCRTsKK0I1RDQ7QjVENDsxMTA0IDExNjYgMTFCRjtCNUQ0OzExMDQgMTE2NiAxMUJGOworQjVENTtCNUQ1OzExMDQgMTE2NiAxMUMwO0I1RDU7MTEwNCAxMTY2IDExQzA7CitCNUQ2O0I1RDY7MTEwNCAxMTY2IDExQzE7QjVENjsxMTA0IDExNjYgMTFDMTsKK0I1RDc7QjVENzsxMTA0IDExNjYgMTFDMjtCNUQ3OzExMDQgMTE2NiAxMUMyOworQjVEODtCNUQ4OzExMDQgMTE2NztCNUQ4OzExMDQgMTE2NzsKK0I1RDk7QjVEOTsxMTA0IDExNjcgMTFBODtCNUQ5OzExMDQgMTE2NyAxMUE4OworQjVEQTtCNURBOzExMDQgMTE2NyAxMUE5O0I1REE7MTEwNCAxMTY3IDExQTk7CitCNURCO0I1REI7MTEwNCAxMTY3IDExQUE7QjVEQjsxMTA0IDExNjcgMTFBQTsKK0I1REM7QjVEQzsxMTA0IDExNjcgMTFBQjtCNURDOzExMDQgMTE2NyAxMUFCOworQjVERDtCNUREOzExMDQgMTE2NyAxMUFDO0I1REQ7MTEwNCAxMTY3IDExQUM7CitCNURFO0I1REU7MTEwNCAxMTY3IDExQUQ7QjVERTsxMTA0IDExNjcgMTFBRDsKK0I1REY7QjVERjsxMTA0IDExNjcgMTFBRTtCNURGOzExMDQgMTE2NyAxMUFFOworQjVFMDtCNUUwOzExMDQgMTE2NyAxMUFGO0I1RTA7MTEwNCAxMTY3IDExQUY7CitCNUUxO0I1RTE7MTEwNCAxMTY3IDExQjA7QjVFMTsxMTA0IDExNjcgMTFCMDsKK0I1RTI7QjVFMjsxMTA0IDExNjcgMTFCMTtCNUUyOzExMDQgMTE2NyAxMUIxOworQjVFMztCNUUzOzExMDQgMTE2NyAxMUIyO0I1RTM7MTEwNCAxMTY3IDExQjI7CitCNUU0O0I1RTQ7MTEwNCAxMTY3IDExQjM7QjVFNDsxMTA0IDExNjcgMTFCMzsKK0I1RTU7QjVFNTsxMTA0IDExNjcgMTFCNDtCNUU1OzExMDQgMTE2NyAxMUI0OworQjVFNjtCNUU2OzExMDQgMTE2NyAxMUI1O0I1RTY7MTEwNCAxMTY3IDExQjU7CitCNUU3O0I1RTc7MTEwNCAxMTY3IDExQjY7QjVFNzsxMTA0IDExNjcgMTFCNjsKK0I1RTg7QjVFODsxMTA0IDExNjcgMTFCNztCNUU4OzExMDQgMTE2NyAxMUI3OworQjVFOTtCNUU5OzExMDQgMTE2NyAxMUI4O0I1RTk7MTEwNCAxMTY3IDExQjg7CitCNUVBO0I1RUE7MTEwNCAxMTY3IDExQjk7QjVFQTsxMTA0IDExNjcgMTFCOTsKK0I1RUI7QjVFQjsxMTA0IDExNjcgMTFCQTtCNUVCOzExMDQgMTE2NyAxMUJBOworQjVFQztCNUVDOzExMDQgMTE2NyAxMUJCO0I1RUM7MTEwNCAxMTY3IDExQkI7CitCNUVEO0I1RUQ7MTEwNCAxMTY3IDExQkM7QjVFRDsxMTA0IDExNjcgMTFCQzsKK0I1RUU7QjVFRTsxMTA0IDExNjcgMTFCRDtCNUVFOzExMDQgMTE2NyAxMUJEOworQjVFRjtCNUVGOzExMDQgMTE2NyAxMUJFO0I1RUY7MTEwNCAxMTY3IDExQkU7CitCNUYwO0I1RjA7MTEwNCAxMTY3IDExQkY7QjVGMDsxMTA0IDExNjcgMTFCRjsKK0I1RjE7QjVGMTsxMTA0IDExNjcgMTFDMDtCNUYxOzExMDQgMTE2NyAxMUMwOworQjVGMjtCNUYyOzExMDQgMTE2NyAxMUMxO0I1RjI7MTEwNCAxMTY3IDExQzE7CitCNUYzO0I1RjM7MTEwNCAxMTY3IDExQzI7QjVGMzsxMTA0IDExNjcgMTFDMjsKK0I1RjQ7QjVGNDsxMTA0IDExNjg7QjVGNDsxMTA0IDExNjg7CitCNUY1O0I1RjU7MTEwNCAxMTY4IDExQTg7QjVGNTsxMTA0IDExNjggMTFBODsKK0I1RjY7QjVGNjsxMTA0IDExNjggMTFBOTtCNUY2OzExMDQgMTE2OCAxMUE5OworQjVGNztCNUY3OzExMDQgMTE2OCAxMUFBO0I1Rjc7MTEwNCAxMTY4IDExQUE7CitCNUY4O0I1Rjg7MTEwNCAxMTY4IDExQUI7QjVGODsxMTA0IDExNjggMTFBQjsKK0I1Rjk7QjVGOTsxMTA0IDExNjggMTFBQztCNUY5OzExMDQgMTE2OCAxMUFDOworQjVGQTtCNUZBOzExMDQgMTE2OCAxMUFEO0I1RkE7MTEwNCAxMTY4IDExQUQ7CitCNUZCO0I1RkI7MTEwNCAxMTY4IDExQUU7QjVGQjsxMTA0IDExNjggMTFBRTsKK0I1RkM7QjVGQzsxMTA0IDExNjggMTFBRjtCNUZDOzExMDQgMTE2OCAxMUFGOworQjVGRDtCNUZEOzExMDQgMTE2OCAxMUIwO0I1RkQ7MTEwNCAxMTY4IDExQjA7CitCNUZFO0I1RkU7MTEwNCAxMTY4IDExQjE7QjVGRTsxMTA0IDExNjggMTFCMTsKK0I1RkY7QjVGRjsxMTA0IDExNjggMTFCMjtCNUZGOzExMDQgMTE2OCAxMUIyOworQjYwMDtCNjAwOzExMDQgMTE2OCAxMUIzO0I2MDA7MTEwNCAxMTY4IDExQjM7CitCNjAxO0I2MDE7MTEwNCAxMTY4IDExQjQ7QjYwMTsxMTA0IDExNjggMTFCNDsKK0I2MDI7QjYwMjsxMTA0IDExNjggMTFCNTtCNjAyOzExMDQgMTE2OCAxMUI1OworQjYwMztCNjAzOzExMDQgMTE2OCAxMUI2O0I2MDM7MTEwNCAxMTY4IDExQjY7CitCNjA0O0I2MDQ7MTEwNCAxMTY4IDExQjc7QjYwNDsxMTA0IDExNjggMTFCNzsKK0I2MDU7QjYwNTsxMTA0IDExNjggMTFCODtCNjA1OzExMDQgMTE2OCAxMUI4OworQjYwNjtCNjA2OzExMDQgMTE2OCAxMUI5O0I2MDY7MTEwNCAxMTY4IDExQjk7CitCNjA3O0I2MDc7MTEwNCAxMTY4IDExQkE7QjYwNzsxMTA0IDExNjggMTFCQTsKK0I2MDg7QjYwODsxMTA0IDExNjggMTFCQjtCNjA4OzExMDQgMTE2OCAxMUJCOworQjYwOTtCNjA5OzExMDQgMTE2OCAxMUJDO0I2MDk7MTEwNCAxMTY4IDExQkM7CitCNjBBO0I2MEE7MTEwNCAxMTY4IDExQkQ7QjYwQTsxMTA0IDExNjggMTFCRDsKK0I2MEI7QjYwQjsxMTA0IDExNjggMTFCRTtCNjBCOzExMDQgMTE2OCAxMUJFOworQjYwQztCNjBDOzExMDQgMTE2OCAxMUJGO0I2MEM7MTEwNCAxMTY4IDExQkY7CitCNjBEO0I2MEQ7MTEwNCAxMTY4IDExQzA7QjYwRDsxMTA0IDExNjggMTFDMDsKK0I2MEU7QjYwRTsxMTA0IDExNjggMTFDMTtCNjBFOzExMDQgMTE2OCAxMUMxOworQjYwRjtCNjBGOzExMDQgMTE2OCAxMUMyO0I2MEY7MTEwNCAxMTY4IDExQzI7CitCNjEwO0I2MTA7MTEwNCAxMTY5O0I2MTA7MTEwNCAxMTY5OworQjYxMTtCNjExOzExMDQgMTE2OSAxMUE4O0I2MTE7MTEwNCAxMTY5IDExQTg7CitCNjEyO0I2MTI7MTEwNCAxMTY5IDExQTk7QjYxMjsxMTA0IDExNjkgMTFBOTsKK0I2MTM7QjYxMzsxMTA0IDExNjkgMTFBQTtCNjEzOzExMDQgMTE2OSAxMUFBOworQjYxNDtCNjE0OzExMDQgMTE2OSAxMUFCO0I2MTQ7MTEwNCAxMTY5IDExQUI7CitCNjE1O0I2MTU7MTEwNCAxMTY5IDExQUM7QjYxNTsxMTA0IDExNjkgMTFBQzsKK0I2MTY7QjYxNjsxMTA0IDExNjkgMTFBRDtCNjE2OzExMDQgMTE2OSAxMUFEOworQjYxNztCNjE3OzExMDQgMTE2OSAxMUFFO0I2MTc7MTEwNCAxMTY5IDExQUU7CitCNjE4O0I2MTg7MTEwNCAxMTY5IDExQUY7QjYxODsxMTA0IDExNjkgMTFBRjsKK0I2MTk7QjYxOTsxMTA0IDExNjkgMTFCMDtCNjE5OzExMDQgMTE2OSAxMUIwOworQjYxQTtCNjFBOzExMDQgMTE2OSAxMUIxO0I2MUE7MTEwNCAxMTY5IDExQjE7CitCNjFCO0I2MUI7MTEwNCAxMTY5IDExQjI7QjYxQjsxMTA0IDExNjkgMTFCMjsKK0I2MUM7QjYxQzsxMTA0IDExNjkgMTFCMztCNjFDOzExMDQgMTE2OSAxMUIzOworQjYxRDtCNjFEOzExMDQgMTE2OSAxMUI0O0I2MUQ7MTEwNCAxMTY5IDExQjQ7CitCNjFFO0I2MUU7MTEwNCAxMTY5IDExQjU7QjYxRTsxMTA0IDExNjkgMTFCNTsKK0I2MUY7QjYxRjsxMTA0IDExNjkgMTFCNjtCNjFGOzExMDQgMTE2OSAxMUI2OworQjYyMDtCNjIwOzExMDQgMTE2OSAxMUI3O0I2MjA7MTEwNCAxMTY5IDExQjc7CitCNjIxO0I2MjE7MTEwNCAxMTY5IDExQjg7QjYyMTsxMTA0IDExNjkgMTFCODsKK0I2MjI7QjYyMjsxMTA0IDExNjkgMTFCOTtCNjIyOzExMDQgMTE2OSAxMUI5OworQjYyMztCNjIzOzExMDQgMTE2OSAxMUJBO0I2MjM7MTEwNCAxMTY5IDExQkE7CitCNjI0O0I2MjQ7MTEwNCAxMTY5IDExQkI7QjYyNDsxMTA0IDExNjkgMTFCQjsKK0I2MjU7QjYyNTsxMTA0IDExNjkgMTFCQztCNjI1OzExMDQgMTE2OSAxMUJDOworQjYyNjtCNjI2OzExMDQgMTE2OSAxMUJEO0I2MjY7MTEwNCAxMTY5IDExQkQ7CitCNjI3O0I2Mjc7MTEwNCAxMTY5IDExQkU7QjYyNzsxMTA0IDExNjkgMTFCRTsKK0I2Mjg7QjYyODsxMTA0IDExNjkgMTFCRjtCNjI4OzExMDQgMTE2OSAxMUJGOworQjYyOTtCNjI5OzExMDQgMTE2OSAxMUMwO0I2Mjk7MTEwNCAxMTY5IDExQzA7CitCNjJBO0I2MkE7MTEwNCAxMTY5IDExQzE7QjYyQTsxMTA0IDExNjkgMTFDMTsKK0I2MkI7QjYyQjsxMTA0IDExNjkgMTFDMjtCNjJCOzExMDQgMTE2OSAxMUMyOworQjYyQztCNjJDOzExMDQgMTE2QTtCNjJDOzExMDQgMTE2QTsKK0I2MkQ7QjYyRDsxMTA0IDExNkEgMTFBODtCNjJEOzExMDQgMTE2QSAxMUE4OworQjYyRTtCNjJFOzExMDQgMTE2QSAxMUE5O0I2MkU7MTEwNCAxMTZBIDExQTk7CitCNjJGO0I2MkY7MTEwNCAxMTZBIDExQUE7QjYyRjsxMTA0IDExNkEgMTFBQTsKK0I2MzA7QjYzMDsxMTA0IDExNkEgMTFBQjtCNjMwOzExMDQgMTE2QSAxMUFCOworQjYzMTtCNjMxOzExMDQgMTE2QSAxMUFDO0I2MzE7MTEwNCAxMTZBIDExQUM7CitCNjMyO0I2MzI7MTEwNCAxMTZBIDExQUQ7QjYzMjsxMTA0IDExNkEgMTFBRDsKK0I2MzM7QjYzMzsxMTA0IDExNkEgMTFBRTtCNjMzOzExMDQgMTE2QSAxMUFFOworQjYzNDtCNjM0OzExMDQgMTE2QSAxMUFGO0I2MzQ7MTEwNCAxMTZBIDExQUY7CitCNjM1O0I2MzU7MTEwNCAxMTZBIDExQjA7QjYzNTsxMTA0IDExNkEgMTFCMDsKK0I2MzY7QjYzNjsxMTA0IDExNkEgMTFCMTtCNjM2OzExMDQgMTE2QSAxMUIxOworQjYzNztCNjM3OzExMDQgMTE2QSAxMUIyO0I2Mzc7MTEwNCAxMTZBIDExQjI7CitCNjM4O0I2Mzg7MTEwNCAxMTZBIDExQjM7QjYzODsxMTA0IDExNkEgMTFCMzsKK0I2Mzk7QjYzOTsxMTA0IDExNkEgMTFCNDtCNjM5OzExMDQgMTE2QSAxMUI0OworQjYzQTtCNjNBOzExMDQgMTE2QSAxMUI1O0I2M0E7MTEwNCAxMTZBIDExQjU7CitCNjNCO0I2M0I7MTEwNCAxMTZBIDExQjY7QjYzQjsxMTA0IDExNkEgMTFCNjsKK0I2M0M7QjYzQzsxMTA0IDExNkEgMTFCNztCNjNDOzExMDQgMTE2QSAxMUI3OworQjYzRDtCNjNEOzExMDQgMTE2QSAxMUI4O0I2M0Q7MTEwNCAxMTZBIDExQjg7CitCNjNFO0I2M0U7MTEwNCAxMTZBIDExQjk7QjYzRTsxMTA0IDExNkEgMTFCOTsKK0I2M0Y7QjYzRjsxMTA0IDExNkEgMTFCQTtCNjNGOzExMDQgMTE2QSAxMUJBOworQjY0MDtCNjQwOzExMDQgMTE2QSAxMUJCO0I2NDA7MTEwNCAxMTZBIDExQkI7CitCNjQxO0I2NDE7MTEwNCAxMTZBIDExQkM7QjY0MTsxMTA0IDExNkEgMTFCQzsKK0I2NDI7QjY0MjsxMTA0IDExNkEgMTFCRDtCNjQyOzExMDQgMTE2QSAxMUJEOworQjY0MztCNjQzOzExMDQgMTE2QSAxMUJFO0I2NDM7MTEwNCAxMTZBIDExQkU7CitCNjQ0O0I2NDQ7MTEwNCAxMTZBIDExQkY7QjY0NDsxMTA0IDExNkEgMTFCRjsKK0I2NDU7QjY0NTsxMTA0IDExNkEgMTFDMDtCNjQ1OzExMDQgMTE2QSAxMUMwOworQjY0NjtCNjQ2OzExMDQgMTE2QSAxMUMxO0I2NDY7MTEwNCAxMTZBIDExQzE7CitCNjQ3O0I2NDc7MTEwNCAxMTZBIDExQzI7QjY0NzsxMTA0IDExNkEgMTFDMjsKK0I2NDg7QjY0ODsxMTA0IDExNkI7QjY0ODsxMTA0IDExNkI7CitCNjQ5O0I2NDk7MTEwNCAxMTZCIDExQTg7QjY0OTsxMTA0IDExNkIgMTFBODsKK0I2NEE7QjY0QTsxMTA0IDExNkIgMTFBOTtCNjRBOzExMDQgMTE2QiAxMUE5OworQjY0QjtCNjRCOzExMDQgMTE2QiAxMUFBO0I2NEI7MTEwNCAxMTZCIDExQUE7CitCNjRDO0I2NEM7MTEwNCAxMTZCIDExQUI7QjY0QzsxMTA0IDExNkIgMTFBQjsKK0I2NEQ7QjY0RDsxMTA0IDExNkIgMTFBQztCNjREOzExMDQgMTE2QiAxMUFDOworQjY0RTtCNjRFOzExMDQgMTE2QiAxMUFEO0I2NEU7MTEwNCAxMTZCIDExQUQ7CitCNjRGO0I2NEY7MTEwNCAxMTZCIDExQUU7QjY0RjsxMTA0IDExNkIgMTFBRTsKK0I2NTA7QjY1MDsxMTA0IDExNkIgMTFBRjtCNjUwOzExMDQgMTE2QiAxMUFGOworQjY1MTtCNjUxOzExMDQgMTE2QiAxMUIwO0I2NTE7MTEwNCAxMTZCIDExQjA7CitCNjUyO0I2NTI7MTEwNCAxMTZCIDExQjE7QjY1MjsxMTA0IDExNkIgMTFCMTsKK0I2NTM7QjY1MzsxMTA0IDExNkIgMTFCMjtCNjUzOzExMDQgMTE2QiAxMUIyOworQjY1NDtCNjU0OzExMDQgMTE2QiAxMUIzO0I2NTQ7MTEwNCAxMTZCIDExQjM7CitCNjU1O0I2NTU7MTEwNCAxMTZCIDExQjQ7QjY1NTsxMTA0IDExNkIgMTFCNDsKK0I2NTY7QjY1NjsxMTA0IDExNkIgMTFCNTtCNjU2OzExMDQgMTE2QiAxMUI1OworQjY1NztCNjU3OzExMDQgMTE2QiAxMUI2O0I2NTc7MTEwNCAxMTZCIDExQjY7CitCNjU4O0I2NTg7MTEwNCAxMTZCIDExQjc7QjY1ODsxMTA0IDExNkIgMTFCNzsKK0I2NTk7QjY1OTsxMTA0IDExNkIgMTFCODtCNjU5OzExMDQgMTE2QiAxMUI4OworQjY1QTtCNjVBOzExMDQgMTE2QiAxMUI5O0I2NUE7MTEwNCAxMTZCIDExQjk7CitCNjVCO0I2NUI7MTEwNCAxMTZCIDExQkE7QjY1QjsxMTA0IDExNkIgMTFCQTsKK0I2NUM7QjY1QzsxMTA0IDExNkIgMTFCQjtCNjVDOzExMDQgMTE2QiAxMUJCOworQjY1RDtCNjVEOzExMDQgMTE2QiAxMUJDO0I2NUQ7MTEwNCAxMTZCIDExQkM7CitCNjVFO0I2NUU7MTEwNCAxMTZCIDExQkQ7QjY1RTsxMTA0IDExNkIgMTFCRDsKK0I2NUY7QjY1RjsxMTA0IDExNkIgMTFCRTtCNjVGOzExMDQgMTE2QiAxMUJFOworQjY2MDtCNjYwOzExMDQgMTE2QiAxMUJGO0I2NjA7MTEwNCAxMTZCIDExQkY7CitCNjYxO0I2NjE7MTEwNCAxMTZCIDExQzA7QjY2MTsxMTA0IDExNkIgMTFDMDsKK0I2NjI7QjY2MjsxMTA0IDExNkIgMTFDMTtCNjYyOzExMDQgMTE2QiAxMUMxOworQjY2MztCNjYzOzExMDQgMTE2QiAxMUMyO0I2NjM7MTEwNCAxMTZCIDExQzI7CitCNjY0O0I2NjQ7MTEwNCAxMTZDO0I2NjQ7MTEwNCAxMTZDOworQjY2NTtCNjY1OzExMDQgMTE2QyAxMUE4O0I2NjU7MTEwNCAxMTZDIDExQTg7CitCNjY2O0I2NjY7MTEwNCAxMTZDIDExQTk7QjY2NjsxMTA0IDExNkMgMTFBOTsKK0I2Njc7QjY2NzsxMTA0IDExNkMgMTFBQTtCNjY3OzExMDQgMTE2QyAxMUFBOworQjY2ODtCNjY4OzExMDQgMTE2QyAxMUFCO0I2Njg7MTEwNCAxMTZDIDExQUI7CitCNjY5O0I2Njk7MTEwNCAxMTZDIDExQUM7QjY2OTsxMTA0IDExNkMgMTFBQzsKK0I2NkE7QjY2QTsxMTA0IDExNkMgMTFBRDtCNjZBOzExMDQgMTE2QyAxMUFEOworQjY2QjtCNjZCOzExMDQgMTE2QyAxMUFFO0I2NkI7MTEwNCAxMTZDIDExQUU7CitCNjZDO0I2NkM7MTEwNCAxMTZDIDExQUY7QjY2QzsxMTA0IDExNkMgMTFBRjsKK0I2NkQ7QjY2RDsxMTA0IDExNkMgMTFCMDtCNjZEOzExMDQgMTE2QyAxMUIwOworQjY2RTtCNjZFOzExMDQgMTE2QyAxMUIxO0I2NkU7MTEwNCAxMTZDIDExQjE7CitCNjZGO0I2NkY7MTEwNCAxMTZDIDExQjI7QjY2RjsxMTA0IDExNkMgMTFCMjsKK0I2NzA7QjY3MDsxMTA0IDExNkMgMTFCMztCNjcwOzExMDQgMTE2QyAxMUIzOworQjY3MTtCNjcxOzExMDQgMTE2QyAxMUI0O0I2NzE7MTEwNCAxMTZDIDExQjQ7CitCNjcyO0I2NzI7MTEwNCAxMTZDIDExQjU7QjY3MjsxMTA0IDExNkMgMTFCNTsKK0I2NzM7QjY3MzsxMTA0IDExNkMgMTFCNjtCNjczOzExMDQgMTE2QyAxMUI2OworQjY3NDtCNjc0OzExMDQgMTE2QyAxMUI3O0I2NzQ7MTEwNCAxMTZDIDExQjc7CitCNjc1O0I2NzU7MTEwNCAxMTZDIDExQjg7QjY3NTsxMTA0IDExNkMgMTFCODsKK0I2NzY7QjY3NjsxMTA0IDExNkMgMTFCOTtCNjc2OzExMDQgMTE2QyAxMUI5OworQjY3NztCNjc3OzExMDQgMTE2QyAxMUJBO0I2Nzc7MTEwNCAxMTZDIDExQkE7CitCNjc4O0I2Nzg7MTEwNCAxMTZDIDExQkI7QjY3ODsxMTA0IDExNkMgMTFCQjsKK0I2Nzk7QjY3OTsxMTA0IDExNkMgMTFCQztCNjc5OzExMDQgMTE2QyAxMUJDOworQjY3QTtCNjdBOzExMDQgMTE2QyAxMUJEO0I2N0E7MTEwNCAxMTZDIDExQkQ7CitCNjdCO0I2N0I7MTEwNCAxMTZDIDExQkU7QjY3QjsxMTA0IDExNkMgMTFCRTsKK0I2N0M7QjY3QzsxMTA0IDExNkMgMTFCRjtCNjdDOzExMDQgMTE2QyAxMUJGOworQjY3RDtCNjdEOzExMDQgMTE2QyAxMUMwO0I2N0Q7MTEwNCAxMTZDIDExQzA7CitCNjdFO0I2N0U7MTEwNCAxMTZDIDExQzE7QjY3RTsxMTA0IDExNkMgMTFDMTsKK0I2N0Y7QjY3RjsxMTA0IDExNkMgMTFDMjtCNjdGOzExMDQgMTE2QyAxMUMyOworQjY4MDtCNjgwOzExMDQgMTE2RDtCNjgwOzExMDQgMTE2RDsKK0I2ODE7QjY4MTsxMTA0IDExNkQgMTFBODtCNjgxOzExMDQgMTE2RCAxMUE4OworQjY4MjtCNjgyOzExMDQgMTE2RCAxMUE5O0I2ODI7MTEwNCAxMTZEIDExQTk7CitCNjgzO0I2ODM7MTEwNCAxMTZEIDExQUE7QjY4MzsxMTA0IDExNkQgMTFBQTsKK0I2ODQ7QjY4NDsxMTA0IDExNkQgMTFBQjtCNjg0OzExMDQgMTE2RCAxMUFCOworQjY4NTtCNjg1OzExMDQgMTE2RCAxMUFDO0I2ODU7MTEwNCAxMTZEIDExQUM7CitCNjg2O0I2ODY7MTEwNCAxMTZEIDExQUQ7QjY4NjsxMTA0IDExNkQgMTFBRDsKK0I2ODc7QjY4NzsxMTA0IDExNkQgMTFBRTtCNjg3OzExMDQgMTE2RCAxMUFFOworQjY4ODtCNjg4OzExMDQgMTE2RCAxMUFGO0I2ODg7MTEwNCAxMTZEIDExQUY7CitCNjg5O0I2ODk7MTEwNCAxMTZEIDExQjA7QjY4OTsxMTA0IDExNkQgMTFCMDsKK0I2OEE7QjY4QTsxMTA0IDExNkQgMTFCMTtCNjhBOzExMDQgMTE2RCAxMUIxOworQjY4QjtCNjhCOzExMDQgMTE2RCAxMUIyO0I2OEI7MTEwNCAxMTZEIDExQjI7CitCNjhDO0I2OEM7MTEwNCAxMTZEIDExQjM7QjY4QzsxMTA0IDExNkQgMTFCMzsKK0I2OEQ7QjY4RDsxMTA0IDExNkQgMTFCNDtCNjhEOzExMDQgMTE2RCAxMUI0OworQjY4RTtCNjhFOzExMDQgMTE2RCAxMUI1O0I2OEU7MTEwNCAxMTZEIDExQjU7CitCNjhGO0I2OEY7MTEwNCAxMTZEIDExQjY7QjY4RjsxMTA0IDExNkQgMTFCNjsKK0I2OTA7QjY5MDsxMTA0IDExNkQgMTFCNztCNjkwOzExMDQgMTE2RCAxMUI3OworQjY5MTtCNjkxOzExMDQgMTE2RCAxMUI4O0I2OTE7MTEwNCAxMTZEIDExQjg7CitCNjkyO0I2OTI7MTEwNCAxMTZEIDExQjk7QjY5MjsxMTA0IDExNkQgMTFCOTsKK0I2OTM7QjY5MzsxMTA0IDExNkQgMTFCQTtCNjkzOzExMDQgMTE2RCAxMUJBOworQjY5NDtCNjk0OzExMDQgMTE2RCAxMUJCO0I2OTQ7MTEwNCAxMTZEIDExQkI7CitCNjk1O0I2OTU7MTEwNCAxMTZEIDExQkM7QjY5NTsxMTA0IDExNkQgMTFCQzsKK0I2OTY7QjY5NjsxMTA0IDExNkQgMTFCRDtCNjk2OzExMDQgMTE2RCAxMUJEOworQjY5NztCNjk3OzExMDQgMTE2RCAxMUJFO0I2OTc7MTEwNCAxMTZEIDExQkU7CitCNjk4O0I2OTg7MTEwNCAxMTZEIDExQkY7QjY5ODsxMTA0IDExNkQgMTFCRjsKK0I2OTk7QjY5OTsxMTA0IDExNkQgMTFDMDtCNjk5OzExMDQgMTE2RCAxMUMwOworQjY5QTtCNjlBOzExMDQgMTE2RCAxMUMxO0I2OUE7MTEwNCAxMTZEIDExQzE7CitCNjlCO0I2OUI7MTEwNCAxMTZEIDExQzI7QjY5QjsxMTA0IDExNkQgMTFDMjsKK0I2OUM7QjY5QzsxMTA0IDExNkU7QjY5QzsxMTA0IDExNkU7CitCNjlEO0I2OUQ7MTEwNCAxMTZFIDExQTg7QjY5RDsxMTA0IDExNkUgMTFBODsKK0I2OUU7QjY5RTsxMTA0IDExNkUgMTFBOTtCNjlFOzExMDQgMTE2RSAxMUE5OworQjY5RjtCNjlGOzExMDQgMTE2RSAxMUFBO0I2OUY7MTEwNCAxMTZFIDExQUE7CitCNkEwO0I2QTA7MTEwNCAxMTZFIDExQUI7QjZBMDsxMTA0IDExNkUgMTFBQjsKK0I2QTE7QjZBMTsxMTA0IDExNkUgMTFBQztCNkExOzExMDQgMTE2RSAxMUFDOworQjZBMjtCNkEyOzExMDQgMTE2RSAxMUFEO0I2QTI7MTEwNCAxMTZFIDExQUQ7CitCNkEzO0I2QTM7MTEwNCAxMTZFIDExQUU7QjZBMzsxMTA0IDExNkUgMTFBRTsKK0I2QTQ7QjZBNDsxMTA0IDExNkUgMTFBRjtCNkE0OzExMDQgMTE2RSAxMUFGOworQjZBNTtCNkE1OzExMDQgMTE2RSAxMUIwO0I2QTU7MTEwNCAxMTZFIDExQjA7CitCNkE2O0I2QTY7MTEwNCAxMTZFIDExQjE7QjZBNjsxMTA0IDExNkUgMTFCMTsKK0I2QTc7QjZBNzsxMTA0IDExNkUgMTFCMjtCNkE3OzExMDQgMTE2RSAxMUIyOworQjZBODtCNkE4OzExMDQgMTE2RSAxMUIzO0I2QTg7MTEwNCAxMTZFIDExQjM7CitCNkE5O0I2QTk7MTEwNCAxMTZFIDExQjQ7QjZBOTsxMTA0IDExNkUgMTFCNDsKK0I2QUE7QjZBQTsxMTA0IDExNkUgMTFCNTtCNkFBOzExMDQgMTE2RSAxMUI1OworQjZBQjtCNkFCOzExMDQgMTE2RSAxMUI2O0I2QUI7MTEwNCAxMTZFIDExQjY7CitCNkFDO0I2QUM7MTEwNCAxMTZFIDExQjc7QjZBQzsxMTA0IDExNkUgMTFCNzsKK0I2QUQ7QjZBRDsxMTA0IDExNkUgMTFCODtCNkFEOzExMDQgMTE2RSAxMUI4OworQjZBRTtCNkFFOzExMDQgMTE2RSAxMUI5O0I2QUU7MTEwNCAxMTZFIDExQjk7CitCNkFGO0I2QUY7MTEwNCAxMTZFIDExQkE7QjZBRjsxMTA0IDExNkUgMTFCQTsKK0I2QjA7QjZCMDsxMTA0IDExNkUgMTFCQjtCNkIwOzExMDQgMTE2RSAxMUJCOworQjZCMTtCNkIxOzExMDQgMTE2RSAxMUJDO0I2QjE7MTEwNCAxMTZFIDExQkM7CitCNkIyO0I2QjI7MTEwNCAxMTZFIDExQkQ7QjZCMjsxMTA0IDExNkUgMTFCRDsKK0I2QjM7QjZCMzsxMTA0IDExNkUgMTFCRTtCNkIzOzExMDQgMTE2RSAxMUJFOworQjZCNDtCNkI0OzExMDQgMTE2RSAxMUJGO0I2QjQ7MTEwNCAxMTZFIDExQkY7CitCNkI1O0I2QjU7MTEwNCAxMTZFIDExQzA7QjZCNTsxMTA0IDExNkUgMTFDMDsKK0I2QjY7QjZCNjsxMTA0IDExNkUgMTFDMTtCNkI2OzExMDQgMTE2RSAxMUMxOworQjZCNztCNkI3OzExMDQgMTE2RSAxMUMyO0I2Qjc7MTEwNCAxMTZFIDExQzI7CitCNkI4O0I2Qjg7MTEwNCAxMTZGO0I2Qjg7MTEwNCAxMTZGOworQjZCOTtCNkI5OzExMDQgMTE2RiAxMUE4O0I2Qjk7MTEwNCAxMTZGIDExQTg7CitCNkJBO0I2QkE7MTEwNCAxMTZGIDExQTk7QjZCQTsxMTA0IDExNkYgMTFBOTsKK0I2QkI7QjZCQjsxMTA0IDExNkYgMTFBQTtCNkJCOzExMDQgMTE2RiAxMUFBOworQjZCQztCNkJDOzExMDQgMTE2RiAxMUFCO0I2QkM7MTEwNCAxMTZGIDExQUI7CitCNkJEO0I2QkQ7MTEwNCAxMTZGIDExQUM7QjZCRDsxMTA0IDExNkYgMTFBQzsKK0I2QkU7QjZCRTsxMTA0IDExNkYgMTFBRDtCNkJFOzExMDQgMTE2RiAxMUFEOworQjZCRjtCNkJGOzExMDQgMTE2RiAxMUFFO0I2QkY7MTEwNCAxMTZGIDExQUU7CitCNkMwO0I2QzA7MTEwNCAxMTZGIDExQUY7QjZDMDsxMTA0IDExNkYgMTFBRjsKK0I2QzE7QjZDMTsxMTA0IDExNkYgMTFCMDtCNkMxOzExMDQgMTE2RiAxMUIwOworQjZDMjtCNkMyOzExMDQgMTE2RiAxMUIxO0I2QzI7MTEwNCAxMTZGIDExQjE7CitCNkMzO0I2QzM7MTEwNCAxMTZGIDExQjI7QjZDMzsxMTA0IDExNkYgMTFCMjsKK0I2QzQ7QjZDNDsxMTA0IDExNkYgMTFCMztCNkM0OzExMDQgMTE2RiAxMUIzOworQjZDNTtCNkM1OzExMDQgMTE2RiAxMUI0O0I2QzU7MTEwNCAxMTZGIDExQjQ7CitCNkM2O0I2QzY7MTEwNCAxMTZGIDExQjU7QjZDNjsxMTA0IDExNkYgMTFCNTsKK0I2Qzc7QjZDNzsxMTA0IDExNkYgMTFCNjtCNkM3OzExMDQgMTE2RiAxMUI2OworQjZDODtCNkM4OzExMDQgMTE2RiAxMUI3O0I2Qzg7MTEwNCAxMTZGIDExQjc7CitCNkM5O0I2Qzk7MTEwNCAxMTZGIDExQjg7QjZDOTsxMTA0IDExNkYgMTFCODsKK0I2Q0E7QjZDQTsxMTA0IDExNkYgMTFCOTtCNkNBOzExMDQgMTE2RiAxMUI5OworQjZDQjtCNkNCOzExMDQgMTE2RiAxMUJBO0I2Q0I7MTEwNCAxMTZGIDExQkE7CitCNkNDO0I2Q0M7MTEwNCAxMTZGIDExQkI7QjZDQzsxMTA0IDExNkYgMTFCQjsKK0I2Q0Q7QjZDRDsxMTA0IDExNkYgMTFCQztCNkNEOzExMDQgMTE2RiAxMUJDOworQjZDRTtCNkNFOzExMDQgMTE2RiAxMUJEO0I2Q0U7MTEwNCAxMTZGIDExQkQ7CitCNkNGO0I2Q0Y7MTEwNCAxMTZGIDExQkU7QjZDRjsxMTA0IDExNkYgMTFCRTsKK0I2RDA7QjZEMDsxMTA0IDExNkYgMTFCRjtCNkQwOzExMDQgMTE2RiAxMUJGOworQjZEMTtCNkQxOzExMDQgMTE2RiAxMUMwO0I2RDE7MTEwNCAxMTZGIDExQzA7CitCNkQyO0I2RDI7MTEwNCAxMTZGIDExQzE7QjZEMjsxMTA0IDExNkYgMTFDMTsKK0I2RDM7QjZEMzsxMTA0IDExNkYgMTFDMjtCNkQzOzExMDQgMTE2RiAxMUMyOworQjZENDtCNkQ0OzExMDQgMTE3MDtCNkQ0OzExMDQgMTE3MDsKK0I2RDU7QjZENTsxMTA0IDExNzAgMTFBODtCNkQ1OzExMDQgMTE3MCAxMUE4OworQjZENjtCNkQ2OzExMDQgMTE3MCAxMUE5O0I2RDY7MTEwNCAxMTcwIDExQTk7CitCNkQ3O0I2RDc7MTEwNCAxMTcwIDExQUE7QjZENzsxMTA0IDExNzAgMTFBQTsKK0I2RDg7QjZEODsxMTA0IDExNzAgMTFBQjtCNkQ4OzExMDQgMTE3MCAxMUFCOworQjZEOTtCNkQ5OzExMDQgMTE3MCAxMUFDO0I2RDk7MTEwNCAxMTcwIDExQUM7CitCNkRBO0I2REE7MTEwNCAxMTcwIDExQUQ7QjZEQTsxMTA0IDExNzAgMTFBRDsKK0I2REI7QjZEQjsxMTA0IDExNzAgMTFBRTtCNkRCOzExMDQgMTE3MCAxMUFFOworQjZEQztCNkRDOzExMDQgMTE3MCAxMUFGO0I2REM7MTEwNCAxMTcwIDExQUY7CitCNkREO0I2REQ7MTEwNCAxMTcwIDExQjA7QjZERDsxMTA0IDExNzAgMTFCMDsKK0I2REU7QjZERTsxMTA0IDExNzAgMTFCMTtCNkRFOzExMDQgMTE3MCAxMUIxOworQjZERjtCNkRGOzExMDQgMTE3MCAxMUIyO0I2REY7MTEwNCAxMTcwIDExQjI7CitCNkUwO0I2RTA7MTEwNCAxMTcwIDExQjM7QjZFMDsxMTA0IDExNzAgMTFCMzsKK0I2RTE7QjZFMTsxMTA0IDExNzAgMTFCNDtCNkUxOzExMDQgMTE3MCAxMUI0OworQjZFMjtCNkUyOzExMDQgMTE3MCAxMUI1O0I2RTI7MTEwNCAxMTcwIDExQjU7CitCNkUzO0I2RTM7MTEwNCAxMTcwIDExQjY7QjZFMzsxMTA0IDExNzAgMTFCNjsKK0I2RTQ7QjZFNDsxMTA0IDExNzAgMTFCNztCNkU0OzExMDQgMTE3MCAxMUI3OworQjZFNTtCNkU1OzExMDQgMTE3MCAxMUI4O0I2RTU7MTEwNCAxMTcwIDExQjg7CitCNkU2O0I2RTY7MTEwNCAxMTcwIDExQjk7QjZFNjsxMTA0IDExNzAgMTFCOTsKK0I2RTc7QjZFNzsxMTA0IDExNzAgMTFCQTtCNkU3OzExMDQgMTE3MCAxMUJBOworQjZFODtCNkU4OzExMDQgMTE3MCAxMUJCO0I2RTg7MTEwNCAxMTcwIDExQkI7CitCNkU5O0I2RTk7MTEwNCAxMTcwIDExQkM7QjZFOTsxMTA0IDExNzAgMTFCQzsKK0I2RUE7QjZFQTsxMTA0IDExNzAgMTFCRDtCNkVBOzExMDQgMTE3MCAxMUJEOworQjZFQjtCNkVCOzExMDQgMTE3MCAxMUJFO0I2RUI7MTEwNCAxMTcwIDExQkU7CitCNkVDO0I2RUM7MTEwNCAxMTcwIDExQkY7QjZFQzsxMTA0IDExNzAgMTFCRjsKK0I2RUQ7QjZFRDsxMTA0IDExNzAgMTFDMDtCNkVEOzExMDQgMTE3MCAxMUMwOworQjZFRTtCNkVFOzExMDQgMTE3MCAxMUMxO0I2RUU7MTEwNCAxMTcwIDExQzE7CitCNkVGO0I2RUY7MTEwNCAxMTcwIDExQzI7QjZFRjsxMTA0IDExNzAgMTFDMjsKK0I2RjA7QjZGMDsxMTA0IDExNzE7QjZGMDsxMTA0IDExNzE7CitCNkYxO0I2RjE7MTEwNCAxMTcxIDExQTg7QjZGMTsxMTA0IDExNzEgMTFBODsKK0I2RjI7QjZGMjsxMTA0IDExNzEgMTFBOTtCNkYyOzExMDQgMTE3MSAxMUE5OworQjZGMztCNkYzOzExMDQgMTE3MSAxMUFBO0I2RjM7MTEwNCAxMTcxIDExQUE7CitCNkY0O0I2RjQ7MTEwNCAxMTcxIDExQUI7QjZGNDsxMTA0IDExNzEgMTFBQjsKK0I2RjU7QjZGNTsxMTA0IDExNzEgMTFBQztCNkY1OzExMDQgMTE3MSAxMUFDOworQjZGNjtCNkY2OzExMDQgMTE3MSAxMUFEO0I2RjY7MTEwNCAxMTcxIDExQUQ7CitCNkY3O0I2Rjc7MTEwNCAxMTcxIDExQUU7QjZGNzsxMTA0IDExNzEgMTFBRTsKK0I2Rjg7QjZGODsxMTA0IDExNzEgMTFBRjtCNkY4OzExMDQgMTE3MSAxMUFGOworQjZGOTtCNkY5OzExMDQgMTE3MSAxMUIwO0I2Rjk7MTEwNCAxMTcxIDExQjA7CitCNkZBO0I2RkE7MTEwNCAxMTcxIDExQjE7QjZGQTsxMTA0IDExNzEgMTFCMTsKK0I2RkI7QjZGQjsxMTA0IDExNzEgMTFCMjtCNkZCOzExMDQgMTE3MSAxMUIyOworQjZGQztCNkZDOzExMDQgMTE3MSAxMUIzO0I2RkM7MTEwNCAxMTcxIDExQjM7CitCNkZEO0I2RkQ7MTEwNCAxMTcxIDExQjQ7QjZGRDsxMTA0IDExNzEgMTFCNDsKK0I2RkU7QjZGRTsxMTA0IDExNzEgMTFCNTtCNkZFOzExMDQgMTE3MSAxMUI1OworQjZGRjtCNkZGOzExMDQgMTE3MSAxMUI2O0I2RkY7MTEwNCAxMTcxIDExQjY7CitCNzAwO0I3MDA7MTEwNCAxMTcxIDExQjc7QjcwMDsxMTA0IDExNzEgMTFCNzsKK0I3MDE7QjcwMTsxMTA0IDExNzEgMTFCODtCNzAxOzExMDQgMTE3MSAxMUI4OworQjcwMjtCNzAyOzExMDQgMTE3MSAxMUI5O0I3MDI7MTEwNCAxMTcxIDExQjk7CitCNzAzO0I3MDM7MTEwNCAxMTcxIDExQkE7QjcwMzsxMTA0IDExNzEgMTFCQTsKK0I3MDQ7QjcwNDsxMTA0IDExNzEgMTFCQjtCNzA0OzExMDQgMTE3MSAxMUJCOworQjcwNTtCNzA1OzExMDQgMTE3MSAxMUJDO0I3MDU7MTEwNCAxMTcxIDExQkM7CitCNzA2O0I3MDY7MTEwNCAxMTcxIDExQkQ7QjcwNjsxMTA0IDExNzEgMTFCRDsKK0I3MDc7QjcwNzsxMTA0IDExNzEgMTFCRTtCNzA3OzExMDQgMTE3MSAxMUJFOworQjcwODtCNzA4OzExMDQgMTE3MSAxMUJGO0I3MDg7MTEwNCAxMTcxIDExQkY7CitCNzA5O0I3MDk7MTEwNCAxMTcxIDExQzA7QjcwOTsxMTA0IDExNzEgMTFDMDsKK0I3MEE7QjcwQTsxMTA0IDExNzEgMTFDMTtCNzBBOzExMDQgMTE3MSAxMUMxOworQjcwQjtCNzBCOzExMDQgMTE3MSAxMUMyO0I3MEI7MTEwNCAxMTcxIDExQzI7CitCNzBDO0I3MEM7MTEwNCAxMTcyO0I3MEM7MTEwNCAxMTcyOworQjcwRDtCNzBEOzExMDQgMTE3MiAxMUE4O0I3MEQ7MTEwNCAxMTcyIDExQTg7CitCNzBFO0I3MEU7MTEwNCAxMTcyIDExQTk7QjcwRTsxMTA0IDExNzIgMTFBOTsKK0I3MEY7QjcwRjsxMTA0IDExNzIgMTFBQTtCNzBGOzExMDQgMTE3MiAxMUFBOworQjcxMDtCNzEwOzExMDQgMTE3MiAxMUFCO0I3MTA7MTEwNCAxMTcyIDExQUI7CitCNzExO0I3MTE7MTEwNCAxMTcyIDExQUM7QjcxMTsxMTA0IDExNzIgMTFBQzsKK0I3MTI7QjcxMjsxMTA0IDExNzIgMTFBRDtCNzEyOzExMDQgMTE3MiAxMUFEOworQjcxMztCNzEzOzExMDQgMTE3MiAxMUFFO0I3MTM7MTEwNCAxMTcyIDExQUU7CitCNzE0O0I3MTQ7MTEwNCAxMTcyIDExQUY7QjcxNDsxMTA0IDExNzIgMTFBRjsKK0I3MTU7QjcxNTsxMTA0IDExNzIgMTFCMDtCNzE1OzExMDQgMTE3MiAxMUIwOworQjcxNjtCNzE2OzExMDQgMTE3MiAxMUIxO0I3MTY7MTEwNCAxMTcyIDExQjE7CitCNzE3O0I3MTc7MTEwNCAxMTcyIDExQjI7QjcxNzsxMTA0IDExNzIgMTFCMjsKK0I3MTg7QjcxODsxMTA0IDExNzIgMTFCMztCNzE4OzExMDQgMTE3MiAxMUIzOworQjcxOTtCNzE5OzExMDQgMTE3MiAxMUI0O0I3MTk7MTEwNCAxMTcyIDExQjQ7CitCNzFBO0I3MUE7MTEwNCAxMTcyIDExQjU7QjcxQTsxMTA0IDExNzIgMTFCNTsKK0I3MUI7QjcxQjsxMTA0IDExNzIgMTFCNjtCNzFCOzExMDQgMTE3MiAxMUI2OworQjcxQztCNzFDOzExMDQgMTE3MiAxMUI3O0I3MUM7MTEwNCAxMTcyIDExQjc7CitCNzFEO0I3MUQ7MTEwNCAxMTcyIDExQjg7QjcxRDsxMTA0IDExNzIgMTFCODsKK0I3MUU7QjcxRTsxMTA0IDExNzIgMTFCOTtCNzFFOzExMDQgMTE3MiAxMUI5OworQjcxRjtCNzFGOzExMDQgMTE3MiAxMUJBO0I3MUY7MTEwNCAxMTcyIDExQkE7CitCNzIwO0I3MjA7MTEwNCAxMTcyIDExQkI7QjcyMDsxMTA0IDExNzIgMTFCQjsKK0I3MjE7QjcyMTsxMTA0IDExNzIgMTFCQztCNzIxOzExMDQgMTE3MiAxMUJDOworQjcyMjtCNzIyOzExMDQgMTE3MiAxMUJEO0I3MjI7MTEwNCAxMTcyIDExQkQ7CitCNzIzO0I3MjM7MTEwNCAxMTcyIDExQkU7QjcyMzsxMTA0IDExNzIgMTFCRTsKK0I3MjQ7QjcyNDsxMTA0IDExNzIgMTFCRjtCNzI0OzExMDQgMTE3MiAxMUJGOworQjcyNTtCNzI1OzExMDQgMTE3MiAxMUMwO0I3MjU7MTEwNCAxMTcyIDExQzA7CitCNzI2O0I3MjY7MTEwNCAxMTcyIDExQzE7QjcyNjsxMTA0IDExNzIgMTFDMTsKK0I3Mjc7QjcyNzsxMTA0IDExNzIgMTFDMjtCNzI3OzExMDQgMTE3MiAxMUMyOworQjcyODtCNzI4OzExMDQgMTE3MztCNzI4OzExMDQgMTE3MzsKK0I3Mjk7QjcyOTsxMTA0IDExNzMgMTFBODtCNzI5OzExMDQgMTE3MyAxMUE4OworQjcyQTtCNzJBOzExMDQgMTE3MyAxMUE5O0I3MkE7MTEwNCAxMTczIDExQTk7CitCNzJCO0I3MkI7MTEwNCAxMTczIDExQUE7QjcyQjsxMTA0IDExNzMgMTFBQTsKK0I3MkM7QjcyQzsxMTA0IDExNzMgMTFBQjtCNzJDOzExMDQgMTE3MyAxMUFCOworQjcyRDtCNzJEOzExMDQgMTE3MyAxMUFDO0I3MkQ7MTEwNCAxMTczIDExQUM7CitCNzJFO0I3MkU7MTEwNCAxMTczIDExQUQ7QjcyRTsxMTA0IDExNzMgMTFBRDsKK0I3MkY7QjcyRjsxMTA0IDExNzMgMTFBRTtCNzJGOzExMDQgMTE3MyAxMUFFOworQjczMDtCNzMwOzExMDQgMTE3MyAxMUFGO0I3MzA7MTEwNCAxMTczIDExQUY7CitCNzMxO0I3MzE7MTEwNCAxMTczIDExQjA7QjczMTsxMTA0IDExNzMgMTFCMDsKK0I3MzI7QjczMjsxMTA0IDExNzMgMTFCMTtCNzMyOzExMDQgMTE3MyAxMUIxOworQjczMztCNzMzOzExMDQgMTE3MyAxMUIyO0I3MzM7MTEwNCAxMTczIDExQjI7CitCNzM0O0I3MzQ7MTEwNCAxMTczIDExQjM7QjczNDsxMTA0IDExNzMgMTFCMzsKK0I3MzU7QjczNTsxMTA0IDExNzMgMTFCNDtCNzM1OzExMDQgMTE3MyAxMUI0OworQjczNjtCNzM2OzExMDQgMTE3MyAxMUI1O0I3MzY7MTEwNCAxMTczIDExQjU7CitCNzM3O0I3Mzc7MTEwNCAxMTczIDExQjY7QjczNzsxMTA0IDExNzMgMTFCNjsKK0I3Mzg7QjczODsxMTA0IDExNzMgMTFCNztCNzM4OzExMDQgMTE3MyAxMUI3OworQjczOTtCNzM5OzExMDQgMTE3MyAxMUI4O0I3Mzk7MTEwNCAxMTczIDExQjg7CitCNzNBO0I3M0E7MTEwNCAxMTczIDExQjk7QjczQTsxMTA0IDExNzMgMTFCOTsKK0I3M0I7QjczQjsxMTA0IDExNzMgMTFCQTtCNzNCOzExMDQgMTE3MyAxMUJBOworQjczQztCNzNDOzExMDQgMTE3MyAxMUJCO0I3M0M7MTEwNCAxMTczIDExQkI7CitCNzNEO0I3M0Q7MTEwNCAxMTczIDExQkM7QjczRDsxMTA0IDExNzMgMTFCQzsKK0I3M0U7QjczRTsxMTA0IDExNzMgMTFCRDtCNzNFOzExMDQgMTE3MyAxMUJEOworQjczRjtCNzNGOzExMDQgMTE3MyAxMUJFO0I3M0Y7MTEwNCAxMTczIDExQkU7CitCNzQwO0I3NDA7MTEwNCAxMTczIDExQkY7Qjc0MDsxMTA0IDExNzMgMTFCRjsKK0I3NDE7Qjc0MTsxMTA0IDExNzMgMTFDMDtCNzQxOzExMDQgMTE3MyAxMUMwOworQjc0MjtCNzQyOzExMDQgMTE3MyAxMUMxO0I3NDI7MTEwNCAxMTczIDExQzE7CitCNzQzO0I3NDM7MTEwNCAxMTczIDExQzI7Qjc0MzsxMTA0IDExNzMgMTFDMjsKK0I3NDQ7Qjc0NDsxMTA0IDExNzQ7Qjc0NDsxMTA0IDExNzQ7CitCNzQ1O0I3NDU7MTEwNCAxMTc0IDExQTg7Qjc0NTsxMTA0IDExNzQgMTFBODsKK0I3NDY7Qjc0NjsxMTA0IDExNzQgMTFBOTtCNzQ2OzExMDQgMTE3NCAxMUE5OworQjc0NztCNzQ3OzExMDQgMTE3NCAxMUFBO0I3NDc7MTEwNCAxMTc0IDExQUE7CitCNzQ4O0I3NDg7MTEwNCAxMTc0IDExQUI7Qjc0ODsxMTA0IDExNzQgMTFBQjsKK0I3NDk7Qjc0OTsxMTA0IDExNzQgMTFBQztCNzQ5OzExMDQgMTE3NCAxMUFDOworQjc0QTtCNzRBOzExMDQgMTE3NCAxMUFEO0I3NEE7MTEwNCAxMTc0IDExQUQ7CitCNzRCO0I3NEI7MTEwNCAxMTc0IDExQUU7Qjc0QjsxMTA0IDExNzQgMTFBRTsKK0I3NEM7Qjc0QzsxMTA0IDExNzQgMTFBRjtCNzRDOzExMDQgMTE3NCAxMUFGOworQjc0RDtCNzREOzExMDQgMTE3NCAxMUIwO0I3NEQ7MTEwNCAxMTc0IDExQjA7CitCNzRFO0I3NEU7MTEwNCAxMTc0IDExQjE7Qjc0RTsxMTA0IDExNzQgMTFCMTsKK0I3NEY7Qjc0RjsxMTA0IDExNzQgMTFCMjtCNzRGOzExMDQgMTE3NCAxMUIyOworQjc1MDtCNzUwOzExMDQgMTE3NCAxMUIzO0I3NTA7MTEwNCAxMTc0IDExQjM7CitCNzUxO0I3NTE7MTEwNCAxMTc0IDExQjQ7Qjc1MTsxMTA0IDExNzQgMTFCNDsKK0I3NTI7Qjc1MjsxMTA0IDExNzQgMTFCNTtCNzUyOzExMDQgMTE3NCAxMUI1OworQjc1MztCNzUzOzExMDQgMTE3NCAxMUI2O0I3NTM7MTEwNCAxMTc0IDExQjY7CitCNzU0O0I3NTQ7MTEwNCAxMTc0IDExQjc7Qjc1NDsxMTA0IDExNzQgMTFCNzsKK0I3NTU7Qjc1NTsxMTA0IDExNzQgMTFCODtCNzU1OzExMDQgMTE3NCAxMUI4OworQjc1NjtCNzU2OzExMDQgMTE3NCAxMUI5O0I3NTY7MTEwNCAxMTc0IDExQjk7CitCNzU3O0I3NTc7MTEwNCAxMTc0IDExQkE7Qjc1NzsxMTA0IDExNzQgMTFCQTsKK0I3NTg7Qjc1ODsxMTA0IDExNzQgMTFCQjtCNzU4OzExMDQgMTE3NCAxMUJCOworQjc1OTtCNzU5OzExMDQgMTE3NCAxMUJDO0I3NTk7MTEwNCAxMTc0IDExQkM7CitCNzVBO0I3NUE7MTEwNCAxMTc0IDExQkQ7Qjc1QTsxMTA0IDExNzQgMTFCRDsKK0I3NUI7Qjc1QjsxMTA0IDExNzQgMTFCRTtCNzVCOzExMDQgMTE3NCAxMUJFOworQjc1QztCNzVDOzExMDQgMTE3NCAxMUJGO0I3NUM7MTEwNCAxMTc0IDExQkY7CitCNzVEO0I3NUQ7MTEwNCAxMTc0IDExQzA7Qjc1RDsxMTA0IDExNzQgMTFDMDsKK0I3NUU7Qjc1RTsxMTA0IDExNzQgMTFDMTtCNzVFOzExMDQgMTE3NCAxMUMxOworQjc1RjtCNzVGOzExMDQgMTE3NCAxMUMyO0I3NUY7MTEwNCAxMTc0IDExQzI7CitCNzYwO0I3NjA7MTEwNCAxMTc1O0I3NjA7MTEwNCAxMTc1OworQjc2MTtCNzYxOzExMDQgMTE3NSAxMUE4O0I3NjE7MTEwNCAxMTc1IDExQTg7CitCNzYyO0I3NjI7MTEwNCAxMTc1IDExQTk7Qjc2MjsxMTA0IDExNzUgMTFBOTsKK0I3NjM7Qjc2MzsxMTA0IDExNzUgMTFBQTtCNzYzOzExMDQgMTE3NSAxMUFBOworQjc2NDtCNzY0OzExMDQgMTE3NSAxMUFCO0I3NjQ7MTEwNCAxMTc1IDExQUI7CitCNzY1O0I3NjU7MTEwNCAxMTc1IDExQUM7Qjc2NTsxMTA0IDExNzUgMTFBQzsKK0I3NjY7Qjc2NjsxMTA0IDExNzUgMTFBRDtCNzY2OzExMDQgMTE3NSAxMUFEOworQjc2NztCNzY3OzExMDQgMTE3NSAxMUFFO0I3Njc7MTEwNCAxMTc1IDExQUU7CitCNzY4O0I3Njg7MTEwNCAxMTc1IDExQUY7Qjc2ODsxMTA0IDExNzUgMTFBRjsKK0I3Njk7Qjc2OTsxMTA0IDExNzUgMTFCMDtCNzY5OzExMDQgMTE3NSAxMUIwOworQjc2QTtCNzZBOzExMDQgMTE3NSAxMUIxO0I3NkE7MTEwNCAxMTc1IDExQjE7CitCNzZCO0I3NkI7MTEwNCAxMTc1IDExQjI7Qjc2QjsxMTA0IDExNzUgMTFCMjsKK0I3NkM7Qjc2QzsxMTA0IDExNzUgMTFCMztCNzZDOzExMDQgMTE3NSAxMUIzOworQjc2RDtCNzZEOzExMDQgMTE3NSAxMUI0O0I3NkQ7MTEwNCAxMTc1IDExQjQ7CitCNzZFO0I3NkU7MTEwNCAxMTc1IDExQjU7Qjc2RTsxMTA0IDExNzUgMTFCNTsKK0I3NkY7Qjc2RjsxMTA0IDExNzUgMTFCNjtCNzZGOzExMDQgMTE3NSAxMUI2OworQjc3MDtCNzcwOzExMDQgMTE3NSAxMUI3O0I3NzA7MTEwNCAxMTc1IDExQjc7CitCNzcxO0I3NzE7MTEwNCAxMTc1IDExQjg7Qjc3MTsxMTA0IDExNzUgMTFCODsKK0I3NzI7Qjc3MjsxMTA0IDExNzUgMTFCOTtCNzcyOzExMDQgMTE3NSAxMUI5OworQjc3MztCNzczOzExMDQgMTE3NSAxMUJBO0I3NzM7MTEwNCAxMTc1IDExQkE7CitCNzc0O0I3NzQ7MTEwNCAxMTc1IDExQkI7Qjc3NDsxMTA0IDExNzUgMTFCQjsKK0I3NzU7Qjc3NTsxMTA0IDExNzUgMTFCQztCNzc1OzExMDQgMTE3NSAxMUJDOworQjc3NjtCNzc2OzExMDQgMTE3NSAxMUJEO0I3NzY7MTEwNCAxMTc1IDExQkQ7CitCNzc3O0I3Nzc7MTEwNCAxMTc1IDExQkU7Qjc3NzsxMTA0IDExNzUgMTFCRTsKK0I3Nzg7Qjc3ODsxMTA0IDExNzUgMTFCRjtCNzc4OzExMDQgMTE3NSAxMUJGOworQjc3OTtCNzc5OzExMDQgMTE3NSAxMUMwO0I3Nzk7MTEwNCAxMTc1IDExQzA7CitCNzdBO0I3N0E7MTEwNCAxMTc1IDExQzE7Qjc3QTsxMTA0IDExNzUgMTFDMTsKK0I3N0I7Qjc3QjsxMTA0IDExNzUgMTFDMjtCNzdCOzExMDQgMTE3NSAxMUMyOworQjc3QztCNzdDOzExMDUgMTE2MTtCNzdDOzExMDUgMTE2MTsKK0I3N0Q7Qjc3RDsxMTA1IDExNjEgMTFBODtCNzdEOzExMDUgMTE2MSAxMUE4OworQjc3RTtCNzdFOzExMDUgMTE2MSAxMUE5O0I3N0U7MTEwNSAxMTYxIDExQTk7CitCNzdGO0I3N0Y7MTEwNSAxMTYxIDExQUE7Qjc3RjsxMTA1IDExNjEgMTFBQTsKK0I3ODA7Qjc4MDsxMTA1IDExNjEgMTFBQjtCNzgwOzExMDUgMTE2MSAxMUFCOworQjc4MTtCNzgxOzExMDUgMTE2MSAxMUFDO0I3ODE7MTEwNSAxMTYxIDExQUM7CitCNzgyO0I3ODI7MTEwNSAxMTYxIDExQUQ7Qjc4MjsxMTA1IDExNjEgMTFBRDsKK0I3ODM7Qjc4MzsxMTA1IDExNjEgMTFBRTtCNzgzOzExMDUgMTE2MSAxMUFFOworQjc4NDtCNzg0OzExMDUgMTE2MSAxMUFGO0I3ODQ7MTEwNSAxMTYxIDExQUY7CitCNzg1O0I3ODU7MTEwNSAxMTYxIDExQjA7Qjc4NTsxMTA1IDExNjEgMTFCMDsKK0I3ODY7Qjc4NjsxMTA1IDExNjEgMTFCMTtCNzg2OzExMDUgMTE2MSAxMUIxOworQjc4NztCNzg3OzExMDUgMTE2MSAxMUIyO0I3ODc7MTEwNSAxMTYxIDExQjI7CitCNzg4O0I3ODg7MTEwNSAxMTYxIDExQjM7Qjc4ODsxMTA1IDExNjEgMTFCMzsKK0I3ODk7Qjc4OTsxMTA1IDExNjEgMTFCNDtCNzg5OzExMDUgMTE2MSAxMUI0OworQjc4QTtCNzhBOzExMDUgMTE2MSAxMUI1O0I3OEE7MTEwNSAxMTYxIDExQjU7CitCNzhCO0I3OEI7MTEwNSAxMTYxIDExQjY7Qjc4QjsxMTA1IDExNjEgMTFCNjsKK0I3OEM7Qjc4QzsxMTA1IDExNjEgMTFCNztCNzhDOzExMDUgMTE2MSAxMUI3OworQjc4RDtCNzhEOzExMDUgMTE2MSAxMUI4O0I3OEQ7MTEwNSAxMTYxIDExQjg7CitCNzhFO0I3OEU7MTEwNSAxMTYxIDExQjk7Qjc4RTsxMTA1IDExNjEgMTFCOTsKK0I3OEY7Qjc4RjsxMTA1IDExNjEgMTFCQTtCNzhGOzExMDUgMTE2MSAxMUJBOworQjc5MDtCNzkwOzExMDUgMTE2MSAxMUJCO0I3OTA7MTEwNSAxMTYxIDExQkI7CitCNzkxO0I3OTE7MTEwNSAxMTYxIDExQkM7Qjc5MTsxMTA1IDExNjEgMTFCQzsKK0I3OTI7Qjc5MjsxMTA1IDExNjEgMTFCRDtCNzkyOzExMDUgMTE2MSAxMUJEOworQjc5MztCNzkzOzExMDUgMTE2MSAxMUJFO0I3OTM7MTEwNSAxMTYxIDExQkU7CitCNzk0O0I3OTQ7MTEwNSAxMTYxIDExQkY7Qjc5NDsxMTA1IDExNjEgMTFCRjsKK0I3OTU7Qjc5NTsxMTA1IDExNjEgMTFDMDtCNzk1OzExMDUgMTE2MSAxMUMwOworQjc5NjtCNzk2OzExMDUgMTE2MSAxMUMxO0I3OTY7MTEwNSAxMTYxIDExQzE7CitCNzk3O0I3OTc7MTEwNSAxMTYxIDExQzI7Qjc5NzsxMTA1IDExNjEgMTFDMjsKK0I3OTg7Qjc5ODsxMTA1IDExNjI7Qjc5ODsxMTA1IDExNjI7CitCNzk5O0I3OTk7MTEwNSAxMTYyIDExQTg7Qjc5OTsxMTA1IDExNjIgMTFBODsKK0I3OUE7Qjc5QTsxMTA1IDExNjIgMTFBOTtCNzlBOzExMDUgMTE2MiAxMUE5OworQjc5QjtCNzlCOzExMDUgMTE2MiAxMUFBO0I3OUI7MTEwNSAxMTYyIDExQUE7CitCNzlDO0I3OUM7MTEwNSAxMTYyIDExQUI7Qjc5QzsxMTA1IDExNjIgMTFBQjsKK0I3OUQ7Qjc5RDsxMTA1IDExNjIgMTFBQztCNzlEOzExMDUgMTE2MiAxMUFDOworQjc5RTtCNzlFOzExMDUgMTE2MiAxMUFEO0I3OUU7MTEwNSAxMTYyIDExQUQ7CitCNzlGO0I3OUY7MTEwNSAxMTYyIDExQUU7Qjc5RjsxMTA1IDExNjIgMTFBRTsKK0I3QTA7QjdBMDsxMTA1IDExNjIgMTFBRjtCN0EwOzExMDUgMTE2MiAxMUFGOworQjdBMTtCN0ExOzExMDUgMTE2MiAxMUIwO0I3QTE7MTEwNSAxMTYyIDExQjA7CitCN0EyO0I3QTI7MTEwNSAxMTYyIDExQjE7QjdBMjsxMTA1IDExNjIgMTFCMTsKK0I3QTM7QjdBMzsxMTA1IDExNjIgMTFCMjtCN0EzOzExMDUgMTE2MiAxMUIyOworQjdBNDtCN0E0OzExMDUgMTE2MiAxMUIzO0I3QTQ7MTEwNSAxMTYyIDExQjM7CitCN0E1O0I3QTU7MTEwNSAxMTYyIDExQjQ7QjdBNTsxMTA1IDExNjIgMTFCNDsKK0I3QTY7QjdBNjsxMTA1IDExNjIgMTFCNTtCN0E2OzExMDUgMTE2MiAxMUI1OworQjdBNztCN0E3OzExMDUgMTE2MiAxMUI2O0I3QTc7MTEwNSAxMTYyIDExQjY7CitCN0E4O0I3QTg7MTEwNSAxMTYyIDExQjc7QjdBODsxMTA1IDExNjIgMTFCNzsKK0I3QTk7QjdBOTsxMTA1IDExNjIgMTFCODtCN0E5OzExMDUgMTE2MiAxMUI4OworQjdBQTtCN0FBOzExMDUgMTE2MiAxMUI5O0I3QUE7MTEwNSAxMTYyIDExQjk7CitCN0FCO0I3QUI7MTEwNSAxMTYyIDExQkE7QjdBQjsxMTA1IDExNjIgMTFCQTsKK0I3QUM7QjdBQzsxMTA1IDExNjIgMTFCQjtCN0FDOzExMDUgMTE2MiAxMUJCOworQjdBRDtCN0FEOzExMDUgMTE2MiAxMUJDO0I3QUQ7MTEwNSAxMTYyIDExQkM7CitCN0FFO0I3QUU7MTEwNSAxMTYyIDExQkQ7QjdBRTsxMTA1IDExNjIgMTFCRDsKK0I3QUY7QjdBRjsxMTA1IDExNjIgMTFCRTtCN0FGOzExMDUgMTE2MiAxMUJFOworQjdCMDtCN0IwOzExMDUgMTE2MiAxMUJGO0I3QjA7MTEwNSAxMTYyIDExQkY7CitCN0IxO0I3QjE7MTEwNSAxMTYyIDExQzA7QjdCMTsxMTA1IDExNjIgMTFDMDsKK0I3QjI7QjdCMjsxMTA1IDExNjIgMTFDMTtCN0IyOzExMDUgMTE2MiAxMUMxOworQjdCMztCN0IzOzExMDUgMTE2MiAxMUMyO0I3QjM7MTEwNSAxMTYyIDExQzI7CitCN0I0O0I3QjQ7MTEwNSAxMTYzO0I3QjQ7MTEwNSAxMTYzOworQjdCNTtCN0I1OzExMDUgMTE2MyAxMUE4O0I3QjU7MTEwNSAxMTYzIDExQTg7CitCN0I2O0I3QjY7MTEwNSAxMTYzIDExQTk7QjdCNjsxMTA1IDExNjMgMTFBOTsKK0I3Qjc7QjdCNzsxMTA1IDExNjMgMTFBQTtCN0I3OzExMDUgMTE2MyAxMUFBOworQjdCODtCN0I4OzExMDUgMTE2MyAxMUFCO0I3Qjg7MTEwNSAxMTYzIDExQUI7CitCN0I5O0I3Qjk7MTEwNSAxMTYzIDExQUM7QjdCOTsxMTA1IDExNjMgMTFBQzsKK0I3QkE7QjdCQTsxMTA1IDExNjMgMTFBRDtCN0JBOzExMDUgMTE2MyAxMUFEOworQjdCQjtCN0JCOzExMDUgMTE2MyAxMUFFO0I3QkI7MTEwNSAxMTYzIDExQUU7CitCN0JDO0I3QkM7MTEwNSAxMTYzIDExQUY7QjdCQzsxMTA1IDExNjMgMTFBRjsKK0I3QkQ7QjdCRDsxMTA1IDExNjMgMTFCMDtCN0JEOzExMDUgMTE2MyAxMUIwOworQjdCRTtCN0JFOzExMDUgMTE2MyAxMUIxO0I3QkU7MTEwNSAxMTYzIDExQjE7CitCN0JGO0I3QkY7MTEwNSAxMTYzIDExQjI7QjdCRjsxMTA1IDExNjMgMTFCMjsKK0I3QzA7QjdDMDsxMTA1IDExNjMgMTFCMztCN0MwOzExMDUgMTE2MyAxMUIzOworQjdDMTtCN0MxOzExMDUgMTE2MyAxMUI0O0I3QzE7MTEwNSAxMTYzIDExQjQ7CitCN0MyO0I3QzI7MTEwNSAxMTYzIDExQjU7QjdDMjsxMTA1IDExNjMgMTFCNTsKK0I3QzM7QjdDMzsxMTA1IDExNjMgMTFCNjtCN0MzOzExMDUgMTE2MyAxMUI2OworQjdDNDtCN0M0OzExMDUgMTE2MyAxMUI3O0I3QzQ7MTEwNSAxMTYzIDExQjc7CitCN0M1O0I3QzU7MTEwNSAxMTYzIDExQjg7QjdDNTsxMTA1IDExNjMgMTFCODsKK0I3QzY7QjdDNjsxMTA1IDExNjMgMTFCOTtCN0M2OzExMDUgMTE2MyAxMUI5OworQjdDNztCN0M3OzExMDUgMTE2MyAxMUJBO0I3Qzc7MTEwNSAxMTYzIDExQkE7CitCN0M4O0I3Qzg7MTEwNSAxMTYzIDExQkI7QjdDODsxMTA1IDExNjMgMTFCQjsKK0I3Qzk7QjdDOTsxMTA1IDExNjMgMTFCQztCN0M5OzExMDUgMTE2MyAxMUJDOworQjdDQTtCN0NBOzExMDUgMTE2MyAxMUJEO0I3Q0E7MTEwNSAxMTYzIDExQkQ7CitCN0NCO0I3Q0I7MTEwNSAxMTYzIDExQkU7QjdDQjsxMTA1IDExNjMgMTFCRTsKK0I3Q0M7QjdDQzsxMTA1IDExNjMgMTFCRjtCN0NDOzExMDUgMTE2MyAxMUJGOworQjdDRDtCN0NEOzExMDUgMTE2MyAxMUMwO0I3Q0Q7MTEwNSAxMTYzIDExQzA7CitCN0NFO0I3Q0U7MTEwNSAxMTYzIDExQzE7QjdDRTsxMTA1IDExNjMgMTFDMTsKK0I3Q0Y7QjdDRjsxMTA1IDExNjMgMTFDMjtCN0NGOzExMDUgMTE2MyAxMUMyOworQjdEMDtCN0QwOzExMDUgMTE2NDtCN0QwOzExMDUgMTE2NDsKK0I3RDE7QjdEMTsxMTA1IDExNjQgMTFBODtCN0QxOzExMDUgMTE2NCAxMUE4OworQjdEMjtCN0QyOzExMDUgMTE2NCAxMUE5O0I3RDI7MTEwNSAxMTY0IDExQTk7CitCN0QzO0I3RDM7MTEwNSAxMTY0IDExQUE7QjdEMzsxMTA1IDExNjQgMTFBQTsKK0I3RDQ7QjdENDsxMTA1IDExNjQgMTFBQjtCN0Q0OzExMDUgMTE2NCAxMUFCOworQjdENTtCN0Q1OzExMDUgMTE2NCAxMUFDO0I3RDU7MTEwNSAxMTY0IDExQUM7CitCN0Q2O0I3RDY7MTEwNSAxMTY0IDExQUQ7QjdENjsxMTA1IDExNjQgMTFBRDsKK0I3RDc7QjdENzsxMTA1IDExNjQgMTFBRTtCN0Q3OzExMDUgMTE2NCAxMUFFOworQjdEODtCN0Q4OzExMDUgMTE2NCAxMUFGO0I3RDg7MTEwNSAxMTY0IDExQUY7CitCN0Q5O0I3RDk7MTEwNSAxMTY0IDExQjA7QjdEOTsxMTA1IDExNjQgMTFCMDsKK0I3REE7QjdEQTsxMTA1IDExNjQgMTFCMTtCN0RBOzExMDUgMTE2NCAxMUIxOworQjdEQjtCN0RCOzExMDUgMTE2NCAxMUIyO0I3REI7MTEwNSAxMTY0IDExQjI7CitCN0RDO0I3REM7MTEwNSAxMTY0IDExQjM7QjdEQzsxMTA1IDExNjQgMTFCMzsKK0I3REQ7QjdERDsxMTA1IDExNjQgMTFCNDtCN0REOzExMDUgMTE2NCAxMUI0OworQjdERTtCN0RFOzExMDUgMTE2NCAxMUI1O0I3REU7MTEwNSAxMTY0IDExQjU7CitCN0RGO0I3REY7MTEwNSAxMTY0IDExQjY7QjdERjsxMTA1IDExNjQgMTFCNjsKK0I3RTA7QjdFMDsxMTA1IDExNjQgMTFCNztCN0UwOzExMDUgMTE2NCAxMUI3OworQjdFMTtCN0UxOzExMDUgMTE2NCAxMUI4O0I3RTE7MTEwNSAxMTY0IDExQjg7CitCN0UyO0I3RTI7MTEwNSAxMTY0IDExQjk7QjdFMjsxMTA1IDExNjQgMTFCOTsKK0I3RTM7QjdFMzsxMTA1IDExNjQgMTFCQTtCN0UzOzExMDUgMTE2NCAxMUJBOworQjdFNDtCN0U0OzExMDUgMTE2NCAxMUJCO0I3RTQ7MTEwNSAxMTY0IDExQkI7CitCN0U1O0I3RTU7MTEwNSAxMTY0IDExQkM7QjdFNTsxMTA1IDExNjQgMTFCQzsKK0I3RTY7QjdFNjsxMTA1IDExNjQgMTFCRDtCN0U2OzExMDUgMTE2NCAxMUJEOworQjdFNztCN0U3OzExMDUgMTE2NCAxMUJFO0I3RTc7MTEwNSAxMTY0IDExQkU7CitCN0U4O0I3RTg7MTEwNSAxMTY0IDExQkY7QjdFODsxMTA1IDExNjQgMTFCRjsKK0I3RTk7QjdFOTsxMTA1IDExNjQgMTFDMDtCN0U5OzExMDUgMTE2NCAxMUMwOworQjdFQTtCN0VBOzExMDUgMTE2NCAxMUMxO0I3RUE7MTEwNSAxMTY0IDExQzE7CitCN0VCO0I3RUI7MTEwNSAxMTY0IDExQzI7QjdFQjsxMTA1IDExNjQgMTFDMjsKK0I3RUM7QjdFQzsxMTA1IDExNjU7QjdFQzsxMTA1IDExNjU7CitCN0VEO0I3RUQ7MTEwNSAxMTY1IDExQTg7QjdFRDsxMTA1IDExNjUgMTFBODsKK0I3RUU7QjdFRTsxMTA1IDExNjUgMTFBOTtCN0VFOzExMDUgMTE2NSAxMUE5OworQjdFRjtCN0VGOzExMDUgMTE2NSAxMUFBO0I3RUY7MTEwNSAxMTY1IDExQUE7CitCN0YwO0I3RjA7MTEwNSAxMTY1IDExQUI7QjdGMDsxMTA1IDExNjUgMTFBQjsKK0I3RjE7QjdGMTsxMTA1IDExNjUgMTFBQztCN0YxOzExMDUgMTE2NSAxMUFDOworQjdGMjtCN0YyOzExMDUgMTE2NSAxMUFEO0I3RjI7MTEwNSAxMTY1IDExQUQ7CitCN0YzO0I3RjM7MTEwNSAxMTY1IDExQUU7QjdGMzsxMTA1IDExNjUgMTFBRTsKK0I3RjQ7QjdGNDsxMTA1IDExNjUgMTFBRjtCN0Y0OzExMDUgMTE2NSAxMUFGOworQjdGNTtCN0Y1OzExMDUgMTE2NSAxMUIwO0I3RjU7MTEwNSAxMTY1IDExQjA7CitCN0Y2O0I3RjY7MTEwNSAxMTY1IDExQjE7QjdGNjsxMTA1IDExNjUgMTFCMTsKK0I3Rjc7QjdGNzsxMTA1IDExNjUgMTFCMjtCN0Y3OzExMDUgMTE2NSAxMUIyOworQjdGODtCN0Y4OzExMDUgMTE2NSAxMUIzO0I3Rjg7MTEwNSAxMTY1IDExQjM7CitCN0Y5O0I3Rjk7MTEwNSAxMTY1IDExQjQ7QjdGOTsxMTA1IDExNjUgMTFCNDsKK0I3RkE7QjdGQTsxMTA1IDExNjUgMTFCNTtCN0ZBOzExMDUgMTE2NSAxMUI1OworQjdGQjtCN0ZCOzExMDUgMTE2NSAxMUI2O0I3RkI7MTEwNSAxMTY1IDExQjY7CitCN0ZDO0I3RkM7MTEwNSAxMTY1IDExQjc7QjdGQzsxMTA1IDExNjUgMTFCNzsKK0I3RkQ7QjdGRDsxMTA1IDExNjUgMTFCODtCN0ZEOzExMDUgMTE2NSAxMUI4OworQjdGRTtCN0ZFOzExMDUgMTE2NSAxMUI5O0I3RkU7MTEwNSAxMTY1IDExQjk7CitCN0ZGO0I3RkY7MTEwNSAxMTY1IDExQkE7QjdGRjsxMTA1IDExNjUgMTFCQTsKK0I4MDA7QjgwMDsxMTA1IDExNjUgMTFCQjtCODAwOzExMDUgMTE2NSAxMUJCOworQjgwMTtCODAxOzExMDUgMTE2NSAxMUJDO0I4MDE7MTEwNSAxMTY1IDExQkM7CitCODAyO0I4MDI7MTEwNSAxMTY1IDExQkQ7QjgwMjsxMTA1IDExNjUgMTFCRDsKK0I4MDM7QjgwMzsxMTA1IDExNjUgMTFCRTtCODAzOzExMDUgMTE2NSAxMUJFOworQjgwNDtCODA0OzExMDUgMTE2NSAxMUJGO0I4MDQ7MTEwNSAxMTY1IDExQkY7CitCODA1O0I4MDU7MTEwNSAxMTY1IDExQzA7QjgwNTsxMTA1IDExNjUgMTFDMDsKK0I4MDY7QjgwNjsxMTA1IDExNjUgMTFDMTtCODA2OzExMDUgMTE2NSAxMUMxOworQjgwNztCODA3OzExMDUgMTE2NSAxMUMyO0I4MDc7MTEwNSAxMTY1IDExQzI7CitCODA4O0I4MDg7MTEwNSAxMTY2O0I4MDg7MTEwNSAxMTY2OworQjgwOTtCODA5OzExMDUgMTE2NiAxMUE4O0I4MDk7MTEwNSAxMTY2IDExQTg7CitCODBBO0I4MEE7MTEwNSAxMTY2IDExQTk7QjgwQTsxMTA1IDExNjYgMTFBOTsKK0I4MEI7QjgwQjsxMTA1IDExNjYgMTFBQTtCODBCOzExMDUgMTE2NiAxMUFBOworQjgwQztCODBDOzExMDUgMTE2NiAxMUFCO0I4MEM7MTEwNSAxMTY2IDExQUI7CitCODBEO0I4MEQ7MTEwNSAxMTY2IDExQUM7QjgwRDsxMTA1IDExNjYgMTFBQzsKK0I4MEU7QjgwRTsxMTA1IDExNjYgMTFBRDtCODBFOzExMDUgMTE2NiAxMUFEOworQjgwRjtCODBGOzExMDUgMTE2NiAxMUFFO0I4MEY7MTEwNSAxMTY2IDExQUU7CitCODEwO0I4MTA7MTEwNSAxMTY2IDExQUY7QjgxMDsxMTA1IDExNjYgMTFBRjsKK0I4MTE7QjgxMTsxMTA1IDExNjYgMTFCMDtCODExOzExMDUgMTE2NiAxMUIwOworQjgxMjtCODEyOzExMDUgMTE2NiAxMUIxO0I4MTI7MTEwNSAxMTY2IDExQjE7CitCODEzO0I4MTM7MTEwNSAxMTY2IDExQjI7QjgxMzsxMTA1IDExNjYgMTFCMjsKK0I4MTQ7QjgxNDsxMTA1IDExNjYgMTFCMztCODE0OzExMDUgMTE2NiAxMUIzOworQjgxNTtCODE1OzExMDUgMTE2NiAxMUI0O0I4MTU7MTEwNSAxMTY2IDExQjQ7CitCODE2O0I4MTY7MTEwNSAxMTY2IDExQjU7QjgxNjsxMTA1IDExNjYgMTFCNTsKK0I4MTc7QjgxNzsxMTA1IDExNjYgMTFCNjtCODE3OzExMDUgMTE2NiAxMUI2OworQjgxODtCODE4OzExMDUgMTE2NiAxMUI3O0I4MTg7MTEwNSAxMTY2IDExQjc7CitCODE5O0I4MTk7MTEwNSAxMTY2IDExQjg7QjgxOTsxMTA1IDExNjYgMTFCODsKK0I4MUE7QjgxQTsxMTA1IDExNjYgMTFCOTtCODFBOzExMDUgMTE2NiAxMUI5OworQjgxQjtCODFCOzExMDUgMTE2NiAxMUJBO0I4MUI7MTEwNSAxMTY2IDExQkE7CitCODFDO0I4MUM7MTEwNSAxMTY2IDExQkI7QjgxQzsxMTA1IDExNjYgMTFCQjsKK0I4MUQ7QjgxRDsxMTA1IDExNjYgMTFCQztCODFEOzExMDUgMTE2NiAxMUJDOworQjgxRTtCODFFOzExMDUgMTE2NiAxMUJEO0I4MUU7MTEwNSAxMTY2IDExQkQ7CitCODFGO0I4MUY7MTEwNSAxMTY2IDExQkU7QjgxRjsxMTA1IDExNjYgMTFCRTsKK0I4MjA7QjgyMDsxMTA1IDExNjYgMTFCRjtCODIwOzExMDUgMTE2NiAxMUJGOworQjgyMTtCODIxOzExMDUgMTE2NiAxMUMwO0I4MjE7MTEwNSAxMTY2IDExQzA7CitCODIyO0I4MjI7MTEwNSAxMTY2IDExQzE7QjgyMjsxMTA1IDExNjYgMTFDMTsKK0I4MjM7QjgyMzsxMTA1IDExNjYgMTFDMjtCODIzOzExMDUgMTE2NiAxMUMyOworQjgyNDtCODI0OzExMDUgMTE2NztCODI0OzExMDUgMTE2NzsKK0I4MjU7QjgyNTsxMTA1IDExNjcgMTFBODtCODI1OzExMDUgMTE2NyAxMUE4OworQjgyNjtCODI2OzExMDUgMTE2NyAxMUE5O0I4MjY7MTEwNSAxMTY3IDExQTk7CitCODI3O0I4Mjc7MTEwNSAxMTY3IDExQUE7QjgyNzsxMTA1IDExNjcgMTFBQTsKK0I4Mjg7QjgyODsxMTA1IDExNjcgMTFBQjtCODI4OzExMDUgMTE2NyAxMUFCOworQjgyOTtCODI5OzExMDUgMTE2NyAxMUFDO0I4Mjk7MTEwNSAxMTY3IDExQUM7CitCODJBO0I4MkE7MTEwNSAxMTY3IDExQUQ7QjgyQTsxMTA1IDExNjcgMTFBRDsKK0I4MkI7QjgyQjsxMTA1IDExNjcgMTFBRTtCODJCOzExMDUgMTE2NyAxMUFFOworQjgyQztCODJDOzExMDUgMTE2NyAxMUFGO0I4MkM7MTEwNSAxMTY3IDExQUY7CitCODJEO0I4MkQ7MTEwNSAxMTY3IDExQjA7QjgyRDsxMTA1IDExNjcgMTFCMDsKK0I4MkU7QjgyRTsxMTA1IDExNjcgMTFCMTtCODJFOzExMDUgMTE2NyAxMUIxOworQjgyRjtCODJGOzExMDUgMTE2NyAxMUIyO0I4MkY7MTEwNSAxMTY3IDExQjI7CitCODMwO0I4MzA7MTEwNSAxMTY3IDExQjM7QjgzMDsxMTA1IDExNjcgMTFCMzsKK0I4MzE7QjgzMTsxMTA1IDExNjcgMTFCNDtCODMxOzExMDUgMTE2NyAxMUI0OworQjgzMjtCODMyOzExMDUgMTE2NyAxMUI1O0I4MzI7MTEwNSAxMTY3IDExQjU7CitCODMzO0I4MzM7MTEwNSAxMTY3IDExQjY7QjgzMzsxMTA1IDExNjcgMTFCNjsKK0I4MzQ7QjgzNDsxMTA1IDExNjcgMTFCNztCODM0OzExMDUgMTE2NyAxMUI3OworQjgzNTtCODM1OzExMDUgMTE2NyAxMUI4O0I4MzU7MTEwNSAxMTY3IDExQjg7CitCODM2O0I4MzY7MTEwNSAxMTY3IDExQjk7QjgzNjsxMTA1IDExNjcgMTFCOTsKK0I4Mzc7QjgzNzsxMTA1IDExNjcgMTFCQTtCODM3OzExMDUgMTE2NyAxMUJBOworQjgzODtCODM4OzExMDUgMTE2NyAxMUJCO0I4Mzg7MTEwNSAxMTY3IDExQkI7CitCODM5O0I4Mzk7MTEwNSAxMTY3IDExQkM7QjgzOTsxMTA1IDExNjcgMTFCQzsKK0I4M0E7QjgzQTsxMTA1IDExNjcgMTFCRDtCODNBOzExMDUgMTE2NyAxMUJEOworQjgzQjtCODNCOzExMDUgMTE2NyAxMUJFO0I4M0I7MTEwNSAxMTY3IDExQkU7CitCODNDO0I4M0M7MTEwNSAxMTY3IDExQkY7QjgzQzsxMTA1IDExNjcgMTFCRjsKK0I4M0Q7QjgzRDsxMTA1IDExNjcgMTFDMDtCODNEOzExMDUgMTE2NyAxMUMwOworQjgzRTtCODNFOzExMDUgMTE2NyAxMUMxO0I4M0U7MTEwNSAxMTY3IDExQzE7CitCODNGO0I4M0Y7MTEwNSAxMTY3IDExQzI7QjgzRjsxMTA1IDExNjcgMTFDMjsKK0I4NDA7Qjg0MDsxMTA1IDExNjg7Qjg0MDsxMTA1IDExNjg7CitCODQxO0I4NDE7MTEwNSAxMTY4IDExQTg7Qjg0MTsxMTA1IDExNjggMTFBODsKK0I4NDI7Qjg0MjsxMTA1IDExNjggMTFBOTtCODQyOzExMDUgMTE2OCAxMUE5OworQjg0MztCODQzOzExMDUgMTE2OCAxMUFBO0I4NDM7MTEwNSAxMTY4IDExQUE7CitCODQ0O0I4NDQ7MTEwNSAxMTY4IDExQUI7Qjg0NDsxMTA1IDExNjggMTFBQjsKK0I4NDU7Qjg0NTsxMTA1IDExNjggMTFBQztCODQ1OzExMDUgMTE2OCAxMUFDOworQjg0NjtCODQ2OzExMDUgMTE2OCAxMUFEO0I4NDY7MTEwNSAxMTY4IDExQUQ7CitCODQ3O0I4NDc7MTEwNSAxMTY4IDExQUU7Qjg0NzsxMTA1IDExNjggMTFBRTsKK0I4NDg7Qjg0ODsxMTA1IDExNjggMTFBRjtCODQ4OzExMDUgMTE2OCAxMUFGOworQjg0OTtCODQ5OzExMDUgMTE2OCAxMUIwO0I4NDk7MTEwNSAxMTY4IDExQjA7CitCODRBO0I4NEE7MTEwNSAxMTY4IDExQjE7Qjg0QTsxMTA1IDExNjggMTFCMTsKK0I4NEI7Qjg0QjsxMTA1IDExNjggMTFCMjtCODRCOzExMDUgMTE2OCAxMUIyOworQjg0QztCODRDOzExMDUgMTE2OCAxMUIzO0I4NEM7MTEwNSAxMTY4IDExQjM7CitCODREO0I4NEQ7MTEwNSAxMTY4IDExQjQ7Qjg0RDsxMTA1IDExNjggMTFCNDsKK0I4NEU7Qjg0RTsxMTA1IDExNjggMTFCNTtCODRFOzExMDUgMTE2OCAxMUI1OworQjg0RjtCODRGOzExMDUgMTE2OCAxMUI2O0I4NEY7MTEwNSAxMTY4IDExQjY7CitCODUwO0I4NTA7MTEwNSAxMTY4IDExQjc7Qjg1MDsxMTA1IDExNjggMTFCNzsKK0I4NTE7Qjg1MTsxMTA1IDExNjggMTFCODtCODUxOzExMDUgMTE2OCAxMUI4OworQjg1MjtCODUyOzExMDUgMTE2OCAxMUI5O0I4NTI7MTEwNSAxMTY4IDExQjk7CitCODUzO0I4NTM7MTEwNSAxMTY4IDExQkE7Qjg1MzsxMTA1IDExNjggMTFCQTsKK0I4NTQ7Qjg1NDsxMTA1IDExNjggMTFCQjtCODU0OzExMDUgMTE2OCAxMUJCOworQjg1NTtCODU1OzExMDUgMTE2OCAxMUJDO0I4NTU7MTEwNSAxMTY4IDExQkM7CitCODU2O0I4NTY7MTEwNSAxMTY4IDExQkQ7Qjg1NjsxMTA1IDExNjggMTFCRDsKK0I4NTc7Qjg1NzsxMTA1IDExNjggMTFCRTtCODU3OzExMDUgMTE2OCAxMUJFOworQjg1ODtCODU4OzExMDUgMTE2OCAxMUJGO0I4NTg7MTEwNSAxMTY4IDExQkY7CitCODU5O0I4NTk7MTEwNSAxMTY4IDExQzA7Qjg1OTsxMTA1IDExNjggMTFDMDsKK0I4NUE7Qjg1QTsxMTA1IDExNjggMTFDMTtCODVBOzExMDUgMTE2OCAxMUMxOworQjg1QjtCODVCOzExMDUgMTE2OCAxMUMyO0I4NUI7MTEwNSAxMTY4IDExQzI7CitCODVDO0I4NUM7MTEwNSAxMTY5O0I4NUM7MTEwNSAxMTY5OworQjg1RDtCODVEOzExMDUgMTE2OSAxMUE4O0I4NUQ7MTEwNSAxMTY5IDExQTg7CitCODVFO0I4NUU7MTEwNSAxMTY5IDExQTk7Qjg1RTsxMTA1IDExNjkgMTFBOTsKK0I4NUY7Qjg1RjsxMTA1IDExNjkgMTFBQTtCODVGOzExMDUgMTE2OSAxMUFBOworQjg2MDtCODYwOzExMDUgMTE2OSAxMUFCO0I4NjA7MTEwNSAxMTY5IDExQUI7CitCODYxO0I4NjE7MTEwNSAxMTY5IDExQUM7Qjg2MTsxMTA1IDExNjkgMTFBQzsKK0I4NjI7Qjg2MjsxMTA1IDExNjkgMTFBRDtCODYyOzExMDUgMTE2OSAxMUFEOworQjg2MztCODYzOzExMDUgMTE2OSAxMUFFO0I4NjM7MTEwNSAxMTY5IDExQUU7CitCODY0O0I4NjQ7MTEwNSAxMTY5IDExQUY7Qjg2NDsxMTA1IDExNjkgMTFBRjsKK0I4NjU7Qjg2NTsxMTA1IDExNjkgMTFCMDtCODY1OzExMDUgMTE2OSAxMUIwOworQjg2NjtCODY2OzExMDUgMTE2OSAxMUIxO0I4NjY7MTEwNSAxMTY5IDExQjE7CitCODY3O0I4Njc7MTEwNSAxMTY5IDExQjI7Qjg2NzsxMTA1IDExNjkgMTFCMjsKK0I4Njg7Qjg2ODsxMTA1IDExNjkgMTFCMztCODY4OzExMDUgMTE2OSAxMUIzOworQjg2OTtCODY5OzExMDUgMTE2OSAxMUI0O0I4Njk7MTEwNSAxMTY5IDExQjQ7CitCODZBO0I4NkE7MTEwNSAxMTY5IDExQjU7Qjg2QTsxMTA1IDExNjkgMTFCNTsKK0I4NkI7Qjg2QjsxMTA1IDExNjkgMTFCNjtCODZCOzExMDUgMTE2OSAxMUI2OworQjg2QztCODZDOzExMDUgMTE2OSAxMUI3O0I4NkM7MTEwNSAxMTY5IDExQjc7CitCODZEO0I4NkQ7MTEwNSAxMTY5IDExQjg7Qjg2RDsxMTA1IDExNjkgMTFCODsKK0I4NkU7Qjg2RTsxMTA1IDExNjkgMTFCOTtCODZFOzExMDUgMTE2OSAxMUI5OworQjg2RjtCODZGOzExMDUgMTE2OSAxMUJBO0I4NkY7MTEwNSAxMTY5IDExQkE7CitCODcwO0I4NzA7MTEwNSAxMTY5IDExQkI7Qjg3MDsxMTA1IDExNjkgMTFCQjsKK0I4NzE7Qjg3MTsxMTA1IDExNjkgMTFCQztCODcxOzExMDUgMTE2OSAxMUJDOworQjg3MjtCODcyOzExMDUgMTE2OSAxMUJEO0I4NzI7MTEwNSAxMTY5IDExQkQ7CitCODczO0I4NzM7MTEwNSAxMTY5IDExQkU7Qjg3MzsxMTA1IDExNjkgMTFCRTsKK0I4NzQ7Qjg3NDsxMTA1IDExNjkgMTFCRjtCODc0OzExMDUgMTE2OSAxMUJGOworQjg3NTtCODc1OzExMDUgMTE2OSAxMUMwO0I4NzU7MTEwNSAxMTY5IDExQzA7CitCODc2O0I4NzY7MTEwNSAxMTY5IDExQzE7Qjg3NjsxMTA1IDExNjkgMTFDMTsKK0I4Nzc7Qjg3NzsxMTA1IDExNjkgMTFDMjtCODc3OzExMDUgMTE2OSAxMUMyOworQjg3ODtCODc4OzExMDUgMTE2QTtCODc4OzExMDUgMTE2QTsKK0I4Nzk7Qjg3OTsxMTA1IDExNkEgMTFBODtCODc5OzExMDUgMTE2QSAxMUE4OworQjg3QTtCODdBOzExMDUgMTE2QSAxMUE5O0I4N0E7MTEwNSAxMTZBIDExQTk7CitCODdCO0I4N0I7MTEwNSAxMTZBIDExQUE7Qjg3QjsxMTA1IDExNkEgMTFBQTsKK0I4N0M7Qjg3QzsxMTA1IDExNkEgMTFBQjtCODdDOzExMDUgMTE2QSAxMUFCOworQjg3RDtCODdEOzExMDUgMTE2QSAxMUFDO0I4N0Q7MTEwNSAxMTZBIDExQUM7CitCODdFO0I4N0U7MTEwNSAxMTZBIDExQUQ7Qjg3RTsxMTA1IDExNkEgMTFBRDsKK0I4N0Y7Qjg3RjsxMTA1IDExNkEgMTFBRTtCODdGOzExMDUgMTE2QSAxMUFFOworQjg4MDtCODgwOzExMDUgMTE2QSAxMUFGO0I4ODA7MTEwNSAxMTZBIDExQUY7CitCODgxO0I4ODE7MTEwNSAxMTZBIDExQjA7Qjg4MTsxMTA1IDExNkEgMTFCMDsKK0I4ODI7Qjg4MjsxMTA1IDExNkEgMTFCMTtCODgyOzExMDUgMTE2QSAxMUIxOworQjg4MztCODgzOzExMDUgMTE2QSAxMUIyO0I4ODM7MTEwNSAxMTZBIDExQjI7CitCODg0O0I4ODQ7MTEwNSAxMTZBIDExQjM7Qjg4NDsxMTA1IDExNkEgMTFCMzsKK0I4ODU7Qjg4NTsxMTA1IDExNkEgMTFCNDtCODg1OzExMDUgMTE2QSAxMUI0OworQjg4NjtCODg2OzExMDUgMTE2QSAxMUI1O0I4ODY7MTEwNSAxMTZBIDExQjU7CitCODg3O0I4ODc7MTEwNSAxMTZBIDExQjY7Qjg4NzsxMTA1IDExNkEgMTFCNjsKK0I4ODg7Qjg4ODsxMTA1IDExNkEgMTFCNztCODg4OzExMDUgMTE2QSAxMUI3OworQjg4OTtCODg5OzExMDUgMTE2QSAxMUI4O0I4ODk7MTEwNSAxMTZBIDExQjg7CitCODhBO0I4OEE7MTEwNSAxMTZBIDExQjk7Qjg4QTsxMTA1IDExNkEgMTFCOTsKK0I4OEI7Qjg4QjsxMTA1IDExNkEgMTFCQTtCODhCOzExMDUgMTE2QSAxMUJBOworQjg4QztCODhDOzExMDUgMTE2QSAxMUJCO0I4OEM7MTEwNSAxMTZBIDExQkI7CitCODhEO0I4OEQ7MTEwNSAxMTZBIDExQkM7Qjg4RDsxMTA1IDExNkEgMTFCQzsKK0I4OEU7Qjg4RTsxMTA1IDExNkEgMTFCRDtCODhFOzExMDUgMTE2QSAxMUJEOworQjg4RjtCODhGOzExMDUgMTE2QSAxMUJFO0I4OEY7MTEwNSAxMTZBIDExQkU7CitCODkwO0I4OTA7MTEwNSAxMTZBIDExQkY7Qjg5MDsxMTA1IDExNkEgMTFCRjsKK0I4OTE7Qjg5MTsxMTA1IDExNkEgMTFDMDtCODkxOzExMDUgMTE2QSAxMUMwOworQjg5MjtCODkyOzExMDUgMTE2QSAxMUMxO0I4OTI7MTEwNSAxMTZBIDExQzE7CitCODkzO0I4OTM7MTEwNSAxMTZBIDExQzI7Qjg5MzsxMTA1IDExNkEgMTFDMjsKK0I4OTQ7Qjg5NDsxMTA1IDExNkI7Qjg5NDsxMTA1IDExNkI7CitCODk1O0I4OTU7MTEwNSAxMTZCIDExQTg7Qjg5NTsxMTA1IDExNkIgMTFBODsKK0I4OTY7Qjg5NjsxMTA1IDExNkIgMTFBOTtCODk2OzExMDUgMTE2QiAxMUE5OworQjg5NztCODk3OzExMDUgMTE2QiAxMUFBO0I4OTc7MTEwNSAxMTZCIDExQUE7CitCODk4O0I4OTg7MTEwNSAxMTZCIDExQUI7Qjg5ODsxMTA1IDExNkIgMTFBQjsKK0I4OTk7Qjg5OTsxMTA1IDExNkIgMTFBQztCODk5OzExMDUgMTE2QiAxMUFDOworQjg5QTtCODlBOzExMDUgMTE2QiAxMUFEO0I4OUE7MTEwNSAxMTZCIDExQUQ7CitCODlCO0I4OUI7MTEwNSAxMTZCIDExQUU7Qjg5QjsxMTA1IDExNkIgMTFBRTsKK0I4OUM7Qjg5QzsxMTA1IDExNkIgMTFBRjtCODlDOzExMDUgMTE2QiAxMUFGOworQjg5RDtCODlEOzExMDUgMTE2QiAxMUIwO0I4OUQ7MTEwNSAxMTZCIDExQjA7CitCODlFO0I4OUU7MTEwNSAxMTZCIDExQjE7Qjg5RTsxMTA1IDExNkIgMTFCMTsKK0I4OUY7Qjg5RjsxMTA1IDExNkIgMTFCMjtCODlGOzExMDUgMTE2QiAxMUIyOworQjhBMDtCOEEwOzExMDUgMTE2QiAxMUIzO0I4QTA7MTEwNSAxMTZCIDExQjM7CitCOEExO0I4QTE7MTEwNSAxMTZCIDExQjQ7QjhBMTsxMTA1IDExNkIgMTFCNDsKK0I4QTI7QjhBMjsxMTA1IDExNkIgMTFCNTtCOEEyOzExMDUgMTE2QiAxMUI1OworQjhBMztCOEEzOzExMDUgMTE2QiAxMUI2O0I4QTM7MTEwNSAxMTZCIDExQjY7CitCOEE0O0I4QTQ7MTEwNSAxMTZCIDExQjc7QjhBNDsxMTA1IDExNkIgMTFCNzsKK0I4QTU7QjhBNTsxMTA1IDExNkIgMTFCODtCOEE1OzExMDUgMTE2QiAxMUI4OworQjhBNjtCOEE2OzExMDUgMTE2QiAxMUI5O0I4QTY7MTEwNSAxMTZCIDExQjk7CitCOEE3O0I4QTc7MTEwNSAxMTZCIDExQkE7QjhBNzsxMTA1IDExNkIgMTFCQTsKK0I4QTg7QjhBODsxMTA1IDExNkIgMTFCQjtCOEE4OzExMDUgMTE2QiAxMUJCOworQjhBOTtCOEE5OzExMDUgMTE2QiAxMUJDO0I4QTk7MTEwNSAxMTZCIDExQkM7CitCOEFBO0I4QUE7MTEwNSAxMTZCIDExQkQ7QjhBQTsxMTA1IDExNkIgMTFCRDsKK0I4QUI7QjhBQjsxMTA1IDExNkIgMTFCRTtCOEFCOzExMDUgMTE2QiAxMUJFOworQjhBQztCOEFDOzExMDUgMTE2QiAxMUJGO0I4QUM7MTEwNSAxMTZCIDExQkY7CitCOEFEO0I4QUQ7MTEwNSAxMTZCIDExQzA7QjhBRDsxMTA1IDExNkIgMTFDMDsKK0I4QUU7QjhBRTsxMTA1IDExNkIgMTFDMTtCOEFFOzExMDUgMTE2QiAxMUMxOworQjhBRjtCOEFGOzExMDUgMTE2QiAxMUMyO0I4QUY7MTEwNSAxMTZCIDExQzI7CitCOEIwO0I4QjA7MTEwNSAxMTZDO0I4QjA7MTEwNSAxMTZDOworQjhCMTtCOEIxOzExMDUgMTE2QyAxMUE4O0I4QjE7MTEwNSAxMTZDIDExQTg7CitCOEIyO0I4QjI7MTEwNSAxMTZDIDExQTk7QjhCMjsxMTA1IDExNkMgMTFBOTsKK0I4QjM7QjhCMzsxMTA1IDExNkMgMTFBQTtCOEIzOzExMDUgMTE2QyAxMUFBOworQjhCNDtCOEI0OzExMDUgMTE2QyAxMUFCO0I4QjQ7MTEwNSAxMTZDIDExQUI7CitCOEI1O0I4QjU7MTEwNSAxMTZDIDExQUM7QjhCNTsxMTA1IDExNkMgMTFBQzsKK0I4QjY7QjhCNjsxMTA1IDExNkMgMTFBRDtCOEI2OzExMDUgMTE2QyAxMUFEOworQjhCNztCOEI3OzExMDUgMTE2QyAxMUFFO0I4Qjc7MTEwNSAxMTZDIDExQUU7CitCOEI4O0I4Qjg7MTEwNSAxMTZDIDExQUY7QjhCODsxMTA1IDExNkMgMTFBRjsKK0I4Qjk7QjhCOTsxMTA1IDExNkMgMTFCMDtCOEI5OzExMDUgMTE2QyAxMUIwOworQjhCQTtCOEJBOzExMDUgMTE2QyAxMUIxO0I4QkE7MTEwNSAxMTZDIDExQjE7CitCOEJCO0I4QkI7MTEwNSAxMTZDIDExQjI7QjhCQjsxMTA1IDExNkMgMTFCMjsKK0I4QkM7QjhCQzsxMTA1IDExNkMgMTFCMztCOEJDOzExMDUgMTE2QyAxMUIzOworQjhCRDtCOEJEOzExMDUgMTE2QyAxMUI0O0I4QkQ7MTEwNSAxMTZDIDExQjQ7CitCOEJFO0I4QkU7MTEwNSAxMTZDIDExQjU7QjhCRTsxMTA1IDExNkMgMTFCNTsKK0I4QkY7QjhCRjsxMTA1IDExNkMgMTFCNjtCOEJGOzExMDUgMTE2QyAxMUI2OworQjhDMDtCOEMwOzExMDUgMTE2QyAxMUI3O0I4QzA7MTEwNSAxMTZDIDExQjc7CitCOEMxO0I4QzE7MTEwNSAxMTZDIDExQjg7QjhDMTsxMTA1IDExNkMgMTFCODsKK0I4QzI7QjhDMjsxMTA1IDExNkMgMTFCOTtCOEMyOzExMDUgMTE2QyAxMUI5OworQjhDMztCOEMzOzExMDUgMTE2QyAxMUJBO0I4QzM7MTEwNSAxMTZDIDExQkE7CitCOEM0O0I4QzQ7MTEwNSAxMTZDIDExQkI7QjhDNDsxMTA1IDExNkMgMTFCQjsKK0I4QzU7QjhDNTsxMTA1IDExNkMgMTFCQztCOEM1OzExMDUgMTE2QyAxMUJDOworQjhDNjtCOEM2OzExMDUgMTE2QyAxMUJEO0I4QzY7MTEwNSAxMTZDIDExQkQ7CitCOEM3O0I4Qzc7MTEwNSAxMTZDIDExQkU7QjhDNzsxMTA1IDExNkMgMTFCRTsKK0I4Qzg7QjhDODsxMTA1IDExNkMgMTFCRjtCOEM4OzExMDUgMTE2QyAxMUJGOworQjhDOTtCOEM5OzExMDUgMTE2QyAxMUMwO0I4Qzk7MTEwNSAxMTZDIDExQzA7CitCOENBO0I4Q0E7MTEwNSAxMTZDIDExQzE7QjhDQTsxMTA1IDExNkMgMTFDMTsKK0I4Q0I7QjhDQjsxMTA1IDExNkMgMTFDMjtCOENCOzExMDUgMTE2QyAxMUMyOworQjhDQztCOENDOzExMDUgMTE2RDtCOENDOzExMDUgMTE2RDsKK0I4Q0Q7QjhDRDsxMTA1IDExNkQgMTFBODtCOENEOzExMDUgMTE2RCAxMUE4OworQjhDRTtCOENFOzExMDUgMTE2RCAxMUE5O0I4Q0U7MTEwNSAxMTZEIDExQTk7CitCOENGO0I4Q0Y7MTEwNSAxMTZEIDExQUE7QjhDRjsxMTA1IDExNkQgMTFBQTsKK0I4RDA7QjhEMDsxMTA1IDExNkQgMTFBQjtCOEQwOzExMDUgMTE2RCAxMUFCOworQjhEMTtCOEQxOzExMDUgMTE2RCAxMUFDO0I4RDE7MTEwNSAxMTZEIDExQUM7CitCOEQyO0I4RDI7MTEwNSAxMTZEIDExQUQ7QjhEMjsxMTA1IDExNkQgMTFBRDsKK0I4RDM7QjhEMzsxMTA1IDExNkQgMTFBRTtCOEQzOzExMDUgMTE2RCAxMUFFOworQjhENDtCOEQ0OzExMDUgMTE2RCAxMUFGO0I4RDQ7MTEwNSAxMTZEIDExQUY7CitCOEQ1O0I4RDU7MTEwNSAxMTZEIDExQjA7QjhENTsxMTA1IDExNkQgMTFCMDsKK0I4RDY7QjhENjsxMTA1IDExNkQgMTFCMTtCOEQ2OzExMDUgMTE2RCAxMUIxOworQjhENztCOEQ3OzExMDUgMTE2RCAxMUIyO0I4RDc7MTEwNSAxMTZEIDExQjI7CitCOEQ4O0I4RDg7MTEwNSAxMTZEIDExQjM7QjhEODsxMTA1IDExNkQgMTFCMzsKK0I4RDk7QjhEOTsxMTA1IDExNkQgMTFCNDtCOEQ5OzExMDUgMTE2RCAxMUI0OworQjhEQTtCOERBOzExMDUgMTE2RCAxMUI1O0I4REE7MTEwNSAxMTZEIDExQjU7CitCOERCO0I4REI7MTEwNSAxMTZEIDExQjY7QjhEQjsxMTA1IDExNkQgMTFCNjsKK0I4REM7QjhEQzsxMTA1IDExNkQgMTFCNztCOERDOzExMDUgMTE2RCAxMUI3OworQjhERDtCOEREOzExMDUgMTE2RCAxMUI4O0I4REQ7MTEwNSAxMTZEIDExQjg7CitCOERFO0I4REU7MTEwNSAxMTZEIDExQjk7QjhERTsxMTA1IDExNkQgMTFCOTsKK0I4REY7QjhERjsxMTA1IDExNkQgMTFCQTtCOERGOzExMDUgMTE2RCAxMUJBOworQjhFMDtCOEUwOzExMDUgMTE2RCAxMUJCO0I4RTA7MTEwNSAxMTZEIDExQkI7CitCOEUxO0I4RTE7MTEwNSAxMTZEIDExQkM7QjhFMTsxMTA1IDExNkQgMTFCQzsKK0I4RTI7QjhFMjsxMTA1IDExNkQgMTFCRDtCOEUyOzExMDUgMTE2RCAxMUJEOworQjhFMztCOEUzOzExMDUgMTE2RCAxMUJFO0I4RTM7MTEwNSAxMTZEIDExQkU7CitCOEU0O0I4RTQ7MTEwNSAxMTZEIDExQkY7QjhFNDsxMTA1IDExNkQgMTFCRjsKK0I4RTU7QjhFNTsxMTA1IDExNkQgMTFDMDtCOEU1OzExMDUgMTE2RCAxMUMwOworQjhFNjtCOEU2OzExMDUgMTE2RCAxMUMxO0I4RTY7MTEwNSAxMTZEIDExQzE7CitCOEU3O0I4RTc7MTEwNSAxMTZEIDExQzI7QjhFNzsxMTA1IDExNkQgMTFDMjsKK0I4RTg7QjhFODsxMTA1IDExNkU7QjhFODsxMTA1IDExNkU7CitCOEU5O0I4RTk7MTEwNSAxMTZFIDExQTg7QjhFOTsxMTA1IDExNkUgMTFBODsKK0I4RUE7QjhFQTsxMTA1IDExNkUgMTFBOTtCOEVBOzExMDUgMTE2RSAxMUE5OworQjhFQjtCOEVCOzExMDUgMTE2RSAxMUFBO0I4RUI7MTEwNSAxMTZFIDExQUE7CitCOEVDO0I4RUM7MTEwNSAxMTZFIDExQUI7QjhFQzsxMTA1IDExNkUgMTFBQjsKK0I4RUQ7QjhFRDsxMTA1IDExNkUgMTFBQztCOEVEOzExMDUgMTE2RSAxMUFDOworQjhFRTtCOEVFOzExMDUgMTE2RSAxMUFEO0I4RUU7MTEwNSAxMTZFIDExQUQ7CitCOEVGO0I4RUY7MTEwNSAxMTZFIDExQUU7QjhFRjsxMTA1IDExNkUgMTFBRTsKK0I4RjA7QjhGMDsxMTA1IDExNkUgMTFBRjtCOEYwOzExMDUgMTE2RSAxMUFGOworQjhGMTtCOEYxOzExMDUgMTE2RSAxMUIwO0I4RjE7MTEwNSAxMTZFIDExQjA7CitCOEYyO0I4RjI7MTEwNSAxMTZFIDExQjE7QjhGMjsxMTA1IDExNkUgMTFCMTsKK0I4RjM7QjhGMzsxMTA1IDExNkUgMTFCMjtCOEYzOzExMDUgMTE2RSAxMUIyOworQjhGNDtCOEY0OzExMDUgMTE2RSAxMUIzO0I4RjQ7MTEwNSAxMTZFIDExQjM7CitCOEY1O0I4RjU7MTEwNSAxMTZFIDExQjQ7QjhGNTsxMTA1IDExNkUgMTFCNDsKK0I4RjY7QjhGNjsxMTA1IDExNkUgMTFCNTtCOEY2OzExMDUgMTE2RSAxMUI1OworQjhGNztCOEY3OzExMDUgMTE2RSAxMUI2O0I4Rjc7MTEwNSAxMTZFIDExQjY7CitCOEY4O0I4Rjg7MTEwNSAxMTZFIDExQjc7QjhGODsxMTA1IDExNkUgMTFCNzsKK0I4Rjk7QjhGOTsxMTA1IDExNkUgMTFCODtCOEY5OzExMDUgMTE2RSAxMUI4OworQjhGQTtCOEZBOzExMDUgMTE2RSAxMUI5O0I4RkE7MTEwNSAxMTZFIDExQjk7CitCOEZCO0I4RkI7MTEwNSAxMTZFIDExQkE7QjhGQjsxMTA1IDExNkUgMTFCQTsKK0I4RkM7QjhGQzsxMTA1IDExNkUgMTFCQjtCOEZDOzExMDUgMTE2RSAxMUJCOworQjhGRDtCOEZEOzExMDUgMTE2RSAxMUJDO0I4RkQ7MTEwNSAxMTZFIDExQkM7CitCOEZFO0I4RkU7MTEwNSAxMTZFIDExQkQ7QjhGRTsxMTA1IDExNkUgMTFCRDsKK0I4RkY7QjhGRjsxMTA1IDExNkUgMTFCRTtCOEZGOzExMDUgMTE2RSAxMUJFOworQjkwMDtCOTAwOzExMDUgMTE2RSAxMUJGO0I5MDA7MTEwNSAxMTZFIDExQkY7CitCOTAxO0I5MDE7MTEwNSAxMTZFIDExQzA7QjkwMTsxMTA1IDExNkUgMTFDMDsKK0I5MDI7QjkwMjsxMTA1IDExNkUgMTFDMTtCOTAyOzExMDUgMTE2RSAxMUMxOworQjkwMztCOTAzOzExMDUgMTE2RSAxMUMyO0I5MDM7MTEwNSAxMTZFIDExQzI7CitCOTA0O0I5MDQ7MTEwNSAxMTZGO0I5MDQ7MTEwNSAxMTZGOworQjkwNTtCOTA1OzExMDUgMTE2RiAxMUE4O0I5MDU7MTEwNSAxMTZGIDExQTg7CitCOTA2O0I5MDY7MTEwNSAxMTZGIDExQTk7QjkwNjsxMTA1IDExNkYgMTFBOTsKK0I5MDc7QjkwNzsxMTA1IDExNkYgMTFBQTtCOTA3OzExMDUgMTE2RiAxMUFBOworQjkwODtCOTA4OzExMDUgMTE2RiAxMUFCO0I5MDg7MTEwNSAxMTZGIDExQUI7CitCOTA5O0I5MDk7MTEwNSAxMTZGIDExQUM7QjkwOTsxMTA1IDExNkYgMTFBQzsKK0I5MEE7QjkwQTsxMTA1IDExNkYgMTFBRDtCOTBBOzExMDUgMTE2RiAxMUFEOworQjkwQjtCOTBCOzExMDUgMTE2RiAxMUFFO0I5MEI7MTEwNSAxMTZGIDExQUU7CitCOTBDO0I5MEM7MTEwNSAxMTZGIDExQUY7QjkwQzsxMTA1IDExNkYgMTFBRjsKK0I5MEQ7QjkwRDsxMTA1IDExNkYgMTFCMDtCOTBEOzExMDUgMTE2RiAxMUIwOworQjkwRTtCOTBFOzExMDUgMTE2RiAxMUIxO0I5MEU7MTEwNSAxMTZGIDExQjE7CitCOTBGO0I5MEY7MTEwNSAxMTZGIDExQjI7QjkwRjsxMTA1IDExNkYgMTFCMjsKK0I5MTA7QjkxMDsxMTA1IDExNkYgMTFCMztCOTEwOzExMDUgMTE2RiAxMUIzOworQjkxMTtCOTExOzExMDUgMTE2RiAxMUI0O0I5MTE7MTEwNSAxMTZGIDExQjQ7CitCOTEyO0I5MTI7MTEwNSAxMTZGIDExQjU7QjkxMjsxMTA1IDExNkYgMTFCNTsKK0I5MTM7QjkxMzsxMTA1IDExNkYgMTFCNjtCOTEzOzExMDUgMTE2RiAxMUI2OworQjkxNDtCOTE0OzExMDUgMTE2RiAxMUI3O0I5MTQ7MTEwNSAxMTZGIDExQjc7CitCOTE1O0I5MTU7MTEwNSAxMTZGIDExQjg7QjkxNTsxMTA1IDExNkYgMTFCODsKK0I5MTY7QjkxNjsxMTA1IDExNkYgMTFCOTtCOTE2OzExMDUgMTE2RiAxMUI5OworQjkxNztCOTE3OzExMDUgMTE2RiAxMUJBO0I5MTc7MTEwNSAxMTZGIDExQkE7CitCOTE4O0I5MTg7MTEwNSAxMTZGIDExQkI7QjkxODsxMTA1IDExNkYgMTFCQjsKK0I5MTk7QjkxOTsxMTA1IDExNkYgMTFCQztCOTE5OzExMDUgMTE2RiAxMUJDOworQjkxQTtCOTFBOzExMDUgMTE2RiAxMUJEO0I5MUE7MTEwNSAxMTZGIDExQkQ7CitCOTFCO0I5MUI7MTEwNSAxMTZGIDExQkU7QjkxQjsxMTA1IDExNkYgMTFCRTsKK0I5MUM7QjkxQzsxMTA1IDExNkYgMTFCRjtCOTFDOzExMDUgMTE2RiAxMUJGOworQjkxRDtCOTFEOzExMDUgMTE2RiAxMUMwO0I5MUQ7MTEwNSAxMTZGIDExQzA7CitCOTFFO0I5MUU7MTEwNSAxMTZGIDExQzE7QjkxRTsxMTA1IDExNkYgMTFDMTsKK0I5MUY7QjkxRjsxMTA1IDExNkYgMTFDMjtCOTFGOzExMDUgMTE2RiAxMUMyOworQjkyMDtCOTIwOzExMDUgMTE3MDtCOTIwOzExMDUgMTE3MDsKK0I5MjE7QjkyMTsxMTA1IDExNzAgMTFBODtCOTIxOzExMDUgMTE3MCAxMUE4OworQjkyMjtCOTIyOzExMDUgMTE3MCAxMUE5O0I5MjI7MTEwNSAxMTcwIDExQTk7CitCOTIzO0I5MjM7MTEwNSAxMTcwIDExQUE7QjkyMzsxMTA1IDExNzAgMTFBQTsKK0I5MjQ7QjkyNDsxMTA1IDExNzAgMTFBQjtCOTI0OzExMDUgMTE3MCAxMUFCOworQjkyNTtCOTI1OzExMDUgMTE3MCAxMUFDO0I5MjU7MTEwNSAxMTcwIDExQUM7CitCOTI2O0I5MjY7MTEwNSAxMTcwIDExQUQ7QjkyNjsxMTA1IDExNzAgMTFBRDsKK0I5Mjc7QjkyNzsxMTA1IDExNzAgMTFBRTtCOTI3OzExMDUgMTE3MCAxMUFFOworQjkyODtCOTI4OzExMDUgMTE3MCAxMUFGO0I5Mjg7MTEwNSAxMTcwIDExQUY7CitCOTI5O0I5Mjk7MTEwNSAxMTcwIDExQjA7QjkyOTsxMTA1IDExNzAgMTFCMDsKK0I5MkE7QjkyQTsxMTA1IDExNzAgMTFCMTtCOTJBOzExMDUgMTE3MCAxMUIxOworQjkyQjtCOTJCOzExMDUgMTE3MCAxMUIyO0I5MkI7MTEwNSAxMTcwIDExQjI7CitCOTJDO0I5MkM7MTEwNSAxMTcwIDExQjM7QjkyQzsxMTA1IDExNzAgMTFCMzsKK0I5MkQ7QjkyRDsxMTA1IDExNzAgMTFCNDtCOTJEOzExMDUgMTE3MCAxMUI0OworQjkyRTtCOTJFOzExMDUgMTE3MCAxMUI1O0I5MkU7MTEwNSAxMTcwIDExQjU7CitCOTJGO0I5MkY7MTEwNSAxMTcwIDExQjY7QjkyRjsxMTA1IDExNzAgMTFCNjsKK0I5MzA7QjkzMDsxMTA1IDExNzAgMTFCNztCOTMwOzExMDUgMTE3MCAxMUI3OworQjkzMTtCOTMxOzExMDUgMTE3MCAxMUI4O0I5MzE7MTEwNSAxMTcwIDExQjg7CitCOTMyO0I5MzI7MTEwNSAxMTcwIDExQjk7QjkzMjsxMTA1IDExNzAgMTFCOTsKK0I5MzM7QjkzMzsxMTA1IDExNzAgMTFCQTtCOTMzOzExMDUgMTE3MCAxMUJBOworQjkzNDtCOTM0OzExMDUgMTE3MCAxMUJCO0I5MzQ7MTEwNSAxMTcwIDExQkI7CitCOTM1O0I5MzU7MTEwNSAxMTcwIDExQkM7QjkzNTsxMTA1IDExNzAgMTFCQzsKK0I5MzY7QjkzNjsxMTA1IDExNzAgMTFCRDtCOTM2OzExMDUgMTE3MCAxMUJEOworQjkzNztCOTM3OzExMDUgMTE3MCAxMUJFO0I5Mzc7MTEwNSAxMTcwIDExQkU7CitCOTM4O0I5Mzg7MTEwNSAxMTcwIDExQkY7QjkzODsxMTA1IDExNzAgMTFCRjsKK0I5Mzk7QjkzOTsxMTA1IDExNzAgMTFDMDtCOTM5OzExMDUgMTE3MCAxMUMwOworQjkzQTtCOTNBOzExMDUgMTE3MCAxMUMxO0I5M0E7MTEwNSAxMTcwIDExQzE7CitCOTNCO0I5M0I7MTEwNSAxMTcwIDExQzI7QjkzQjsxMTA1IDExNzAgMTFDMjsKK0I5M0M7QjkzQzsxMTA1IDExNzE7QjkzQzsxMTA1IDExNzE7CitCOTNEO0I5M0Q7MTEwNSAxMTcxIDExQTg7QjkzRDsxMTA1IDExNzEgMTFBODsKK0I5M0U7QjkzRTsxMTA1IDExNzEgMTFBOTtCOTNFOzExMDUgMTE3MSAxMUE5OworQjkzRjtCOTNGOzExMDUgMTE3MSAxMUFBO0I5M0Y7MTEwNSAxMTcxIDExQUE7CitCOTQwO0I5NDA7MTEwNSAxMTcxIDExQUI7Qjk0MDsxMTA1IDExNzEgMTFBQjsKK0I5NDE7Qjk0MTsxMTA1IDExNzEgMTFBQztCOTQxOzExMDUgMTE3MSAxMUFDOworQjk0MjtCOTQyOzExMDUgMTE3MSAxMUFEO0I5NDI7MTEwNSAxMTcxIDExQUQ7CitCOTQzO0I5NDM7MTEwNSAxMTcxIDExQUU7Qjk0MzsxMTA1IDExNzEgMTFBRTsKK0I5NDQ7Qjk0NDsxMTA1IDExNzEgMTFBRjtCOTQ0OzExMDUgMTE3MSAxMUFGOworQjk0NTtCOTQ1OzExMDUgMTE3MSAxMUIwO0I5NDU7MTEwNSAxMTcxIDExQjA7CitCOTQ2O0I5NDY7MTEwNSAxMTcxIDExQjE7Qjk0NjsxMTA1IDExNzEgMTFCMTsKK0I5NDc7Qjk0NzsxMTA1IDExNzEgMTFCMjtCOTQ3OzExMDUgMTE3MSAxMUIyOworQjk0ODtCOTQ4OzExMDUgMTE3MSAxMUIzO0I5NDg7MTEwNSAxMTcxIDExQjM7CitCOTQ5O0I5NDk7MTEwNSAxMTcxIDExQjQ7Qjk0OTsxMTA1IDExNzEgMTFCNDsKK0I5NEE7Qjk0QTsxMTA1IDExNzEgMTFCNTtCOTRBOzExMDUgMTE3MSAxMUI1OworQjk0QjtCOTRCOzExMDUgMTE3MSAxMUI2O0I5NEI7MTEwNSAxMTcxIDExQjY7CitCOTRDO0I5NEM7MTEwNSAxMTcxIDExQjc7Qjk0QzsxMTA1IDExNzEgMTFCNzsKK0I5NEQ7Qjk0RDsxMTA1IDExNzEgMTFCODtCOTREOzExMDUgMTE3MSAxMUI4OworQjk0RTtCOTRFOzExMDUgMTE3MSAxMUI5O0I5NEU7MTEwNSAxMTcxIDExQjk7CitCOTRGO0I5NEY7MTEwNSAxMTcxIDExQkE7Qjk0RjsxMTA1IDExNzEgMTFCQTsKK0I5NTA7Qjk1MDsxMTA1IDExNzEgMTFCQjtCOTUwOzExMDUgMTE3MSAxMUJCOworQjk1MTtCOTUxOzExMDUgMTE3MSAxMUJDO0I5NTE7MTEwNSAxMTcxIDExQkM7CitCOTUyO0I5NTI7MTEwNSAxMTcxIDExQkQ7Qjk1MjsxMTA1IDExNzEgMTFCRDsKK0I5NTM7Qjk1MzsxMTA1IDExNzEgMTFCRTtCOTUzOzExMDUgMTE3MSAxMUJFOworQjk1NDtCOTU0OzExMDUgMTE3MSAxMUJGO0I5NTQ7MTEwNSAxMTcxIDExQkY7CitCOTU1O0I5NTU7MTEwNSAxMTcxIDExQzA7Qjk1NTsxMTA1IDExNzEgMTFDMDsKK0I5NTY7Qjk1NjsxMTA1IDExNzEgMTFDMTtCOTU2OzExMDUgMTE3MSAxMUMxOworQjk1NztCOTU3OzExMDUgMTE3MSAxMUMyO0I5NTc7MTEwNSAxMTcxIDExQzI7CitCOTU4O0I5NTg7MTEwNSAxMTcyO0I5NTg7MTEwNSAxMTcyOworQjk1OTtCOTU5OzExMDUgMTE3MiAxMUE4O0I5NTk7MTEwNSAxMTcyIDExQTg7CitCOTVBO0I5NUE7MTEwNSAxMTcyIDExQTk7Qjk1QTsxMTA1IDExNzIgMTFBOTsKK0I5NUI7Qjk1QjsxMTA1IDExNzIgMTFBQTtCOTVCOzExMDUgMTE3MiAxMUFBOworQjk1QztCOTVDOzExMDUgMTE3MiAxMUFCO0I5NUM7MTEwNSAxMTcyIDExQUI7CitCOTVEO0I5NUQ7MTEwNSAxMTcyIDExQUM7Qjk1RDsxMTA1IDExNzIgMTFBQzsKK0I5NUU7Qjk1RTsxMTA1IDExNzIgMTFBRDtCOTVFOzExMDUgMTE3MiAxMUFEOworQjk1RjtCOTVGOzExMDUgMTE3MiAxMUFFO0I5NUY7MTEwNSAxMTcyIDExQUU7CitCOTYwO0I5NjA7MTEwNSAxMTcyIDExQUY7Qjk2MDsxMTA1IDExNzIgMTFBRjsKK0I5NjE7Qjk2MTsxMTA1IDExNzIgMTFCMDtCOTYxOzExMDUgMTE3MiAxMUIwOworQjk2MjtCOTYyOzExMDUgMTE3MiAxMUIxO0I5NjI7MTEwNSAxMTcyIDExQjE7CitCOTYzO0I5NjM7MTEwNSAxMTcyIDExQjI7Qjk2MzsxMTA1IDExNzIgMTFCMjsKK0I5NjQ7Qjk2NDsxMTA1IDExNzIgMTFCMztCOTY0OzExMDUgMTE3MiAxMUIzOworQjk2NTtCOTY1OzExMDUgMTE3MiAxMUI0O0I5NjU7MTEwNSAxMTcyIDExQjQ7CitCOTY2O0I5NjY7MTEwNSAxMTcyIDExQjU7Qjk2NjsxMTA1IDExNzIgMTFCNTsKK0I5Njc7Qjk2NzsxMTA1IDExNzIgMTFCNjtCOTY3OzExMDUgMTE3MiAxMUI2OworQjk2ODtCOTY4OzExMDUgMTE3MiAxMUI3O0I5Njg7MTEwNSAxMTcyIDExQjc7CitCOTY5O0I5Njk7MTEwNSAxMTcyIDExQjg7Qjk2OTsxMTA1IDExNzIgMTFCODsKK0I5NkE7Qjk2QTsxMTA1IDExNzIgMTFCOTtCOTZBOzExMDUgMTE3MiAxMUI5OworQjk2QjtCOTZCOzExMDUgMTE3MiAxMUJBO0I5NkI7MTEwNSAxMTcyIDExQkE7CitCOTZDO0I5NkM7MTEwNSAxMTcyIDExQkI7Qjk2QzsxMTA1IDExNzIgMTFCQjsKK0I5NkQ7Qjk2RDsxMTA1IDExNzIgMTFCQztCOTZEOzExMDUgMTE3MiAxMUJDOworQjk2RTtCOTZFOzExMDUgMTE3MiAxMUJEO0I5NkU7MTEwNSAxMTcyIDExQkQ7CitCOTZGO0I5NkY7MTEwNSAxMTcyIDExQkU7Qjk2RjsxMTA1IDExNzIgMTFCRTsKK0I5NzA7Qjk3MDsxMTA1IDExNzIgMTFCRjtCOTcwOzExMDUgMTE3MiAxMUJGOworQjk3MTtCOTcxOzExMDUgMTE3MiAxMUMwO0I5NzE7MTEwNSAxMTcyIDExQzA7CitCOTcyO0I5NzI7MTEwNSAxMTcyIDExQzE7Qjk3MjsxMTA1IDExNzIgMTFDMTsKK0I5NzM7Qjk3MzsxMTA1IDExNzIgMTFDMjtCOTczOzExMDUgMTE3MiAxMUMyOworQjk3NDtCOTc0OzExMDUgMTE3MztCOTc0OzExMDUgMTE3MzsKK0I5NzU7Qjk3NTsxMTA1IDExNzMgMTFBODtCOTc1OzExMDUgMTE3MyAxMUE4OworQjk3NjtCOTc2OzExMDUgMTE3MyAxMUE5O0I5NzY7MTEwNSAxMTczIDExQTk7CitCOTc3O0I5Nzc7MTEwNSAxMTczIDExQUE7Qjk3NzsxMTA1IDExNzMgMTFBQTsKK0I5Nzg7Qjk3ODsxMTA1IDExNzMgMTFBQjtCOTc4OzExMDUgMTE3MyAxMUFCOworQjk3OTtCOTc5OzExMDUgMTE3MyAxMUFDO0I5Nzk7MTEwNSAxMTczIDExQUM7CitCOTdBO0I5N0E7MTEwNSAxMTczIDExQUQ7Qjk3QTsxMTA1IDExNzMgMTFBRDsKK0I5N0I7Qjk3QjsxMTA1IDExNzMgMTFBRTtCOTdCOzExMDUgMTE3MyAxMUFFOworQjk3QztCOTdDOzExMDUgMTE3MyAxMUFGO0I5N0M7MTEwNSAxMTczIDExQUY7CitCOTdEO0I5N0Q7MTEwNSAxMTczIDExQjA7Qjk3RDsxMTA1IDExNzMgMTFCMDsKK0I5N0U7Qjk3RTsxMTA1IDExNzMgMTFCMTtCOTdFOzExMDUgMTE3MyAxMUIxOworQjk3RjtCOTdGOzExMDUgMTE3MyAxMUIyO0I5N0Y7MTEwNSAxMTczIDExQjI7CitCOTgwO0I5ODA7MTEwNSAxMTczIDExQjM7Qjk4MDsxMTA1IDExNzMgMTFCMzsKK0I5ODE7Qjk4MTsxMTA1IDExNzMgMTFCNDtCOTgxOzExMDUgMTE3MyAxMUI0OworQjk4MjtCOTgyOzExMDUgMTE3MyAxMUI1O0I5ODI7MTEwNSAxMTczIDExQjU7CitCOTgzO0I5ODM7MTEwNSAxMTczIDExQjY7Qjk4MzsxMTA1IDExNzMgMTFCNjsKK0I5ODQ7Qjk4NDsxMTA1IDExNzMgMTFCNztCOTg0OzExMDUgMTE3MyAxMUI3OworQjk4NTtCOTg1OzExMDUgMTE3MyAxMUI4O0I5ODU7MTEwNSAxMTczIDExQjg7CitCOTg2O0I5ODY7MTEwNSAxMTczIDExQjk7Qjk4NjsxMTA1IDExNzMgMTFCOTsKK0I5ODc7Qjk4NzsxMTA1IDExNzMgMTFCQTtCOTg3OzExMDUgMTE3MyAxMUJBOworQjk4ODtCOTg4OzExMDUgMTE3MyAxMUJCO0I5ODg7MTEwNSAxMTczIDExQkI7CitCOTg5O0I5ODk7MTEwNSAxMTczIDExQkM7Qjk4OTsxMTA1IDExNzMgMTFCQzsKK0I5OEE7Qjk4QTsxMTA1IDExNzMgMTFCRDtCOThBOzExMDUgMTE3MyAxMUJEOworQjk4QjtCOThCOzExMDUgMTE3MyAxMUJFO0I5OEI7MTEwNSAxMTczIDExQkU7CitCOThDO0I5OEM7MTEwNSAxMTczIDExQkY7Qjk4QzsxMTA1IDExNzMgMTFCRjsKK0I5OEQ7Qjk4RDsxMTA1IDExNzMgMTFDMDtCOThEOzExMDUgMTE3MyAxMUMwOworQjk4RTtCOThFOzExMDUgMTE3MyAxMUMxO0I5OEU7MTEwNSAxMTczIDExQzE7CitCOThGO0I5OEY7MTEwNSAxMTczIDExQzI7Qjk4RjsxMTA1IDExNzMgMTFDMjsKK0I5OTA7Qjk5MDsxMTA1IDExNzQ7Qjk5MDsxMTA1IDExNzQ7CitCOTkxO0I5OTE7MTEwNSAxMTc0IDExQTg7Qjk5MTsxMTA1IDExNzQgMTFBODsKK0I5OTI7Qjk5MjsxMTA1IDExNzQgMTFBOTtCOTkyOzExMDUgMTE3NCAxMUE5OworQjk5MztCOTkzOzExMDUgMTE3NCAxMUFBO0I5OTM7MTEwNSAxMTc0IDExQUE7CitCOTk0O0I5OTQ7MTEwNSAxMTc0IDExQUI7Qjk5NDsxMTA1IDExNzQgMTFBQjsKK0I5OTU7Qjk5NTsxMTA1IDExNzQgMTFBQztCOTk1OzExMDUgMTE3NCAxMUFDOworQjk5NjtCOTk2OzExMDUgMTE3NCAxMUFEO0I5OTY7MTEwNSAxMTc0IDExQUQ7CitCOTk3O0I5OTc7MTEwNSAxMTc0IDExQUU7Qjk5NzsxMTA1IDExNzQgMTFBRTsKK0I5OTg7Qjk5ODsxMTA1IDExNzQgMTFBRjtCOTk4OzExMDUgMTE3NCAxMUFGOworQjk5OTtCOTk5OzExMDUgMTE3NCAxMUIwO0I5OTk7MTEwNSAxMTc0IDExQjA7CitCOTlBO0I5OUE7MTEwNSAxMTc0IDExQjE7Qjk5QTsxMTA1IDExNzQgMTFCMTsKK0I5OUI7Qjk5QjsxMTA1IDExNzQgMTFCMjtCOTlCOzExMDUgMTE3NCAxMUIyOworQjk5QztCOTlDOzExMDUgMTE3NCAxMUIzO0I5OUM7MTEwNSAxMTc0IDExQjM7CitCOTlEO0I5OUQ7MTEwNSAxMTc0IDExQjQ7Qjk5RDsxMTA1IDExNzQgMTFCNDsKK0I5OUU7Qjk5RTsxMTA1IDExNzQgMTFCNTtCOTlFOzExMDUgMTE3NCAxMUI1OworQjk5RjtCOTlGOzExMDUgMTE3NCAxMUI2O0I5OUY7MTEwNSAxMTc0IDExQjY7CitCOUEwO0I5QTA7MTEwNSAxMTc0IDExQjc7QjlBMDsxMTA1IDExNzQgMTFCNzsKK0I5QTE7QjlBMTsxMTA1IDExNzQgMTFCODtCOUExOzExMDUgMTE3NCAxMUI4OworQjlBMjtCOUEyOzExMDUgMTE3NCAxMUI5O0I5QTI7MTEwNSAxMTc0IDExQjk7CitCOUEzO0I5QTM7MTEwNSAxMTc0IDExQkE7QjlBMzsxMTA1IDExNzQgMTFCQTsKK0I5QTQ7QjlBNDsxMTA1IDExNzQgMTFCQjtCOUE0OzExMDUgMTE3NCAxMUJCOworQjlBNTtCOUE1OzExMDUgMTE3NCAxMUJDO0I5QTU7MTEwNSAxMTc0IDExQkM7CitCOUE2O0I5QTY7MTEwNSAxMTc0IDExQkQ7QjlBNjsxMTA1IDExNzQgMTFCRDsKK0I5QTc7QjlBNzsxMTA1IDExNzQgMTFCRTtCOUE3OzExMDUgMTE3NCAxMUJFOworQjlBODtCOUE4OzExMDUgMTE3NCAxMUJGO0I5QTg7MTEwNSAxMTc0IDExQkY7CitCOUE5O0I5QTk7MTEwNSAxMTc0IDExQzA7QjlBOTsxMTA1IDExNzQgMTFDMDsKK0I5QUE7QjlBQTsxMTA1IDExNzQgMTFDMTtCOUFBOzExMDUgMTE3NCAxMUMxOworQjlBQjtCOUFCOzExMDUgMTE3NCAxMUMyO0I5QUI7MTEwNSAxMTc0IDExQzI7CitCOUFDO0I5QUM7MTEwNSAxMTc1O0I5QUM7MTEwNSAxMTc1OworQjlBRDtCOUFEOzExMDUgMTE3NSAxMUE4O0I5QUQ7MTEwNSAxMTc1IDExQTg7CitCOUFFO0I5QUU7MTEwNSAxMTc1IDExQTk7QjlBRTsxMTA1IDExNzUgMTFBOTsKK0I5QUY7QjlBRjsxMTA1IDExNzUgMTFBQTtCOUFGOzExMDUgMTE3NSAxMUFBOworQjlCMDtCOUIwOzExMDUgMTE3NSAxMUFCO0I5QjA7MTEwNSAxMTc1IDExQUI7CitCOUIxO0I5QjE7MTEwNSAxMTc1IDExQUM7QjlCMTsxMTA1IDExNzUgMTFBQzsKK0I5QjI7QjlCMjsxMTA1IDExNzUgMTFBRDtCOUIyOzExMDUgMTE3NSAxMUFEOworQjlCMztCOUIzOzExMDUgMTE3NSAxMUFFO0I5QjM7MTEwNSAxMTc1IDExQUU7CitCOUI0O0I5QjQ7MTEwNSAxMTc1IDExQUY7QjlCNDsxMTA1IDExNzUgMTFBRjsKK0I5QjU7QjlCNTsxMTA1IDExNzUgMTFCMDtCOUI1OzExMDUgMTE3NSAxMUIwOworQjlCNjtCOUI2OzExMDUgMTE3NSAxMUIxO0I5QjY7MTEwNSAxMTc1IDExQjE7CitCOUI3O0I5Qjc7MTEwNSAxMTc1IDExQjI7QjlCNzsxMTA1IDExNzUgMTFCMjsKK0I5Qjg7QjlCODsxMTA1IDExNzUgMTFCMztCOUI4OzExMDUgMTE3NSAxMUIzOworQjlCOTtCOUI5OzExMDUgMTE3NSAxMUI0O0I5Qjk7MTEwNSAxMTc1IDExQjQ7CitCOUJBO0I5QkE7MTEwNSAxMTc1IDExQjU7QjlCQTsxMTA1IDExNzUgMTFCNTsKK0I5QkI7QjlCQjsxMTA1IDExNzUgMTFCNjtCOUJCOzExMDUgMTE3NSAxMUI2OworQjlCQztCOUJDOzExMDUgMTE3NSAxMUI3O0I5QkM7MTEwNSAxMTc1IDExQjc7CitCOUJEO0I5QkQ7MTEwNSAxMTc1IDExQjg7QjlCRDsxMTA1IDExNzUgMTFCODsKK0I5QkU7QjlCRTsxMTA1IDExNzUgMTFCOTtCOUJFOzExMDUgMTE3NSAxMUI5OworQjlCRjtCOUJGOzExMDUgMTE3NSAxMUJBO0I5QkY7MTEwNSAxMTc1IDExQkE7CitCOUMwO0I5QzA7MTEwNSAxMTc1IDExQkI7QjlDMDsxMTA1IDExNzUgMTFCQjsKK0I5QzE7QjlDMTsxMTA1IDExNzUgMTFCQztCOUMxOzExMDUgMTE3NSAxMUJDOworQjlDMjtCOUMyOzExMDUgMTE3NSAxMUJEO0I5QzI7MTEwNSAxMTc1IDExQkQ7CitCOUMzO0I5QzM7MTEwNSAxMTc1IDExQkU7QjlDMzsxMTA1IDExNzUgMTFCRTsKK0I5QzQ7QjlDNDsxMTA1IDExNzUgMTFCRjtCOUM0OzExMDUgMTE3NSAxMUJGOworQjlDNTtCOUM1OzExMDUgMTE3NSAxMUMwO0I5QzU7MTEwNSAxMTc1IDExQzA7CitCOUM2O0I5QzY7MTEwNSAxMTc1IDExQzE7QjlDNjsxMTA1IDExNzUgMTFDMTsKK0I5Qzc7QjlDNzsxMTA1IDExNzUgMTFDMjtCOUM3OzExMDUgMTE3NSAxMUMyOworQjlDODtCOUM4OzExMDYgMTE2MTtCOUM4OzExMDYgMTE2MTsKK0I5Qzk7QjlDOTsxMTA2IDExNjEgMTFBODtCOUM5OzExMDYgMTE2MSAxMUE4OworQjlDQTtCOUNBOzExMDYgMTE2MSAxMUE5O0I5Q0E7MTEwNiAxMTYxIDExQTk7CitCOUNCO0I5Q0I7MTEwNiAxMTYxIDExQUE7QjlDQjsxMTA2IDExNjEgMTFBQTsKK0I5Q0M7QjlDQzsxMTA2IDExNjEgMTFBQjtCOUNDOzExMDYgMTE2MSAxMUFCOworQjlDRDtCOUNEOzExMDYgMTE2MSAxMUFDO0I5Q0Q7MTEwNiAxMTYxIDExQUM7CitCOUNFO0I5Q0U7MTEwNiAxMTYxIDExQUQ7QjlDRTsxMTA2IDExNjEgMTFBRDsKK0I5Q0Y7QjlDRjsxMTA2IDExNjEgMTFBRTtCOUNGOzExMDYgMTE2MSAxMUFFOworQjlEMDtCOUQwOzExMDYgMTE2MSAxMUFGO0I5RDA7MTEwNiAxMTYxIDExQUY7CitCOUQxO0I5RDE7MTEwNiAxMTYxIDExQjA7QjlEMTsxMTA2IDExNjEgMTFCMDsKK0I5RDI7QjlEMjsxMTA2IDExNjEgMTFCMTtCOUQyOzExMDYgMTE2MSAxMUIxOworQjlEMztCOUQzOzExMDYgMTE2MSAxMUIyO0I5RDM7MTEwNiAxMTYxIDExQjI7CitCOUQ0O0I5RDQ7MTEwNiAxMTYxIDExQjM7QjlENDsxMTA2IDExNjEgMTFCMzsKK0I5RDU7QjlENTsxMTA2IDExNjEgMTFCNDtCOUQ1OzExMDYgMTE2MSAxMUI0OworQjlENjtCOUQ2OzExMDYgMTE2MSAxMUI1O0I5RDY7MTEwNiAxMTYxIDExQjU7CitCOUQ3O0I5RDc7MTEwNiAxMTYxIDExQjY7QjlENzsxMTA2IDExNjEgMTFCNjsKK0I5RDg7QjlEODsxMTA2IDExNjEgMTFCNztCOUQ4OzExMDYgMTE2MSAxMUI3OworQjlEOTtCOUQ5OzExMDYgMTE2MSAxMUI4O0I5RDk7MTEwNiAxMTYxIDExQjg7CitCOURBO0I5REE7MTEwNiAxMTYxIDExQjk7QjlEQTsxMTA2IDExNjEgMTFCOTsKK0I5REI7QjlEQjsxMTA2IDExNjEgMTFCQTtCOURCOzExMDYgMTE2MSAxMUJBOworQjlEQztCOURDOzExMDYgMTE2MSAxMUJCO0I5REM7MTEwNiAxMTYxIDExQkI7CitCOUREO0I5REQ7MTEwNiAxMTYxIDExQkM7QjlERDsxMTA2IDExNjEgMTFCQzsKK0I5REU7QjlERTsxMTA2IDExNjEgMTFCRDtCOURFOzExMDYgMTE2MSAxMUJEOworQjlERjtCOURGOzExMDYgMTE2MSAxMUJFO0I5REY7MTEwNiAxMTYxIDExQkU7CitCOUUwO0I5RTA7MTEwNiAxMTYxIDExQkY7QjlFMDsxMTA2IDExNjEgMTFCRjsKK0I5RTE7QjlFMTsxMTA2IDExNjEgMTFDMDtCOUUxOzExMDYgMTE2MSAxMUMwOworQjlFMjtCOUUyOzExMDYgMTE2MSAxMUMxO0I5RTI7MTEwNiAxMTYxIDExQzE7CitCOUUzO0I5RTM7MTEwNiAxMTYxIDExQzI7QjlFMzsxMTA2IDExNjEgMTFDMjsKK0I5RTQ7QjlFNDsxMTA2IDExNjI7QjlFNDsxMTA2IDExNjI7CitCOUU1O0I5RTU7MTEwNiAxMTYyIDExQTg7QjlFNTsxMTA2IDExNjIgMTFBODsKK0I5RTY7QjlFNjsxMTA2IDExNjIgMTFBOTtCOUU2OzExMDYgMTE2MiAxMUE5OworQjlFNztCOUU3OzExMDYgMTE2MiAxMUFBO0I5RTc7MTEwNiAxMTYyIDExQUE7CitCOUU4O0I5RTg7MTEwNiAxMTYyIDExQUI7QjlFODsxMTA2IDExNjIgMTFBQjsKK0I5RTk7QjlFOTsxMTA2IDExNjIgMTFBQztCOUU5OzExMDYgMTE2MiAxMUFDOworQjlFQTtCOUVBOzExMDYgMTE2MiAxMUFEO0I5RUE7MTEwNiAxMTYyIDExQUQ7CitCOUVCO0I5RUI7MTEwNiAxMTYyIDExQUU7QjlFQjsxMTA2IDExNjIgMTFBRTsKK0I5RUM7QjlFQzsxMTA2IDExNjIgMTFBRjtCOUVDOzExMDYgMTE2MiAxMUFGOworQjlFRDtCOUVEOzExMDYgMTE2MiAxMUIwO0I5RUQ7MTEwNiAxMTYyIDExQjA7CitCOUVFO0I5RUU7MTEwNiAxMTYyIDExQjE7QjlFRTsxMTA2IDExNjIgMTFCMTsKK0I5RUY7QjlFRjsxMTA2IDExNjIgMTFCMjtCOUVGOzExMDYgMTE2MiAxMUIyOworQjlGMDtCOUYwOzExMDYgMTE2MiAxMUIzO0I5RjA7MTEwNiAxMTYyIDExQjM7CitCOUYxO0I5RjE7MTEwNiAxMTYyIDExQjQ7QjlGMTsxMTA2IDExNjIgMTFCNDsKK0I5RjI7QjlGMjsxMTA2IDExNjIgMTFCNTtCOUYyOzExMDYgMTE2MiAxMUI1OworQjlGMztCOUYzOzExMDYgMTE2MiAxMUI2O0I5RjM7MTEwNiAxMTYyIDExQjY7CitCOUY0O0I5RjQ7MTEwNiAxMTYyIDExQjc7QjlGNDsxMTA2IDExNjIgMTFCNzsKK0I5RjU7QjlGNTsxMTA2IDExNjIgMTFCODtCOUY1OzExMDYgMTE2MiAxMUI4OworQjlGNjtCOUY2OzExMDYgMTE2MiAxMUI5O0I5RjY7MTEwNiAxMTYyIDExQjk7CitCOUY3O0I5Rjc7MTEwNiAxMTYyIDExQkE7QjlGNzsxMTA2IDExNjIgMTFCQTsKK0I5Rjg7QjlGODsxMTA2IDExNjIgMTFCQjtCOUY4OzExMDYgMTE2MiAxMUJCOworQjlGOTtCOUY5OzExMDYgMTE2MiAxMUJDO0I5Rjk7MTEwNiAxMTYyIDExQkM7CitCOUZBO0I5RkE7MTEwNiAxMTYyIDExQkQ7QjlGQTsxMTA2IDExNjIgMTFCRDsKK0I5RkI7QjlGQjsxMTA2IDExNjIgMTFCRTtCOUZCOzExMDYgMTE2MiAxMUJFOworQjlGQztCOUZDOzExMDYgMTE2MiAxMUJGO0I5RkM7MTEwNiAxMTYyIDExQkY7CitCOUZEO0I5RkQ7MTEwNiAxMTYyIDExQzA7QjlGRDsxMTA2IDExNjIgMTFDMDsKK0I5RkU7QjlGRTsxMTA2IDExNjIgMTFDMTtCOUZFOzExMDYgMTE2MiAxMUMxOworQjlGRjtCOUZGOzExMDYgMTE2MiAxMUMyO0I5RkY7MTEwNiAxMTYyIDExQzI7CitCQTAwO0JBMDA7MTEwNiAxMTYzO0JBMDA7MTEwNiAxMTYzOworQkEwMTtCQTAxOzExMDYgMTE2MyAxMUE4O0JBMDE7MTEwNiAxMTYzIDExQTg7CitCQTAyO0JBMDI7MTEwNiAxMTYzIDExQTk7QkEwMjsxMTA2IDExNjMgMTFBOTsKK0JBMDM7QkEwMzsxMTA2IDExNjMgMTFBQTtCQTAzOzExMDYgMTE2MyAxMUFBOworQkEwNDtCQTA0OzExMDYgMTE2MyAxMUFCO0JBMDQ7MTEwNiAxMTYzIDExQUI7CitCQTA1O0JBMDU7MTEwNiAxMTYzIDExQUM7QkEwNTsxMTA2IDExNjMgMTFBQzsKK0JBMDY7QkEwNjsxMTA2IDExNjMgMTFBRDtCQTA2OzExMDYgMTE2MyAxMUFEOworQkEwNztCQTA3OzExMDYgMTE2MyAxMUFFO0JBMDc7MTEwNiAxMTYzIDExQUU7CitCQTA4O0JBMDg7MTEwNiAxMTYzIDExQUY7QkEwODsxMTA2IDExNjMgMTFBRjsKK0JBMDk7QkEwOTsxMTA2IDExNjMgMTFCMDtCQTA5OzExMDYgMTE2MyAxMUIwOworQkEwQTtCQTBBOzExMDYgMTE2MyAxMUIxO0JBMEE7MTEwNiAxMTYzIDExQjE7CitCQTBCO0JBMEI7MTEwNiAxMTYzIDExQjI7QkEwQjsxMTA2IDExNjMgMTFCMjsKK0JBMEM7QkEwQzsxMTA2IDExNjMgMTFCMztCQTBDOzExMDYgMTE2MyAxMUIzOworQkEwRDtCQTBEOzExMDYgMTE2MyAxMUI0O0JBMEQ7MTEwNiAxMTYzIDExQjQ7CitCQTBFO0JBMEU7MTEwNiAxMTYzIDExQjU7QkEwRTsxMTA2IDExNjMgMTFCNTsKK0JBMEY7QkEwRjsxMTA2IDExNjMgMTFCNjtCQTBGOzExMDYgMTE2MyAxMUI2OworQkExMDtCQTEwOzExMDYgMTE2MyAxMUI3O0JBMTA7MTEwNiAxMTYzIDExQjc7CitCQTExO0JBMTE7MTEwNiAxMTYzIDExQjg7QkExMTsxMTA2IDExNjMgMTFCODsKK0JBMTI7QkExMjsxMTA2IDExNjMgMTFCOTtCQTEyOzExMDYgMTE2MyAxMUI5OworQkExMztCQTEzOzExMDYgMTE2MyAxMUJBO0JBMTM7MTEwNiAxMTYzIDExQkE7CitCQTE0O0JBMTQ7MTEwNiAxMTYzIDExQkI7QkExNDsxMTA2IDExNjMgMTFCQjsKK0JBMTU7QkExNTsxMTA2IDExNjMgMTFCQztCQTE1OzExMDYgMTE2MyAxMUJDOworQkExNjtCQTE2OzExMDYgMTE2MyAxMUJEO0JBMTY7MTEwNiAxMTYzIDExQkQ7CitCQTE3O0JBMTc7MTEwNiAxMTYzIDExQkU7QkExNzsxMTA2IDExNjMgMTFCRTsKK0JBMTg7QkExODsxMTA2IDExNjMgMTFCRjtCQTE4OzExMDYgMTE2MyAxMUJGOworQkExOTtCQTE5OzExMDYgMTE2MyAxMUMwO0JBMTk7MTEwNiAxMTYzIDExQzA7CitCQTFBO0JBMUE7MTEwNiAxMTYzIDExQzE7QkExQTsxMTA2IDExNjMgMTFDMTsKK0JBMUI7QkExQjsxMTA2IDExNjMgMTFDMjtCQTFCOzExMDYgMTE2MyAxMUMyOworQkExQztCQTFDOzExMDYgMTE2NDtCQTFDOzExMDYgMTE2NDsKK0JBMUQ7QkExRDsxMTA2IDExNjQgMTFBODtCQTFEOzExMDYgMTE2NCAxMUE4OworQkExRTtCQTFFOzExMDYgMTE2NCAxMUE5O0JBMUU7MTEwNiAxMTY0IDExQTk7CitCQTFGO0JBMUY7MTEwNiAxMTY0IDExQUE7QkExRjsxMTA2IDExNjQgMTFBQTsKK0JBMjA7QkEyMDsxMTA2IDExNjQgMTFBQjtCQTIwOzExMDYgMTE2NCAxMUFCOworQkEyMTtCQTIxOzExMDYgMTE2NCAxMUFDO0JBMjE7MTEwNiAxMTY0IDExQUM7CitCQTIyO0JBMjI7MTEwNiAxMTY0IDExQUQ7QkEyMjsxMTA2IDExNjQgMTFBRDsKK0JBMjM7QkEyMzsxMTA2IDExNjQgMTFBRTtCQTIzOzExMDYgMTE2NCAxMUFFOworQkEyNDtCQTI0OzExMDYgMTE2NCAxMUFGO0JBMjQ7MTEwNiAxMTY0IDExQUY7CitCQTI1O0JBMjU7MTEwNiAxMTY0IDExQjA7QkEyNTsxMTA2IDExNjQgMTFCMDsKK0JBMjY7QkEyNjsxMTA2IDExNjQgMTFCMTtCQTI2OzExMDYgMTE2NCAxMUIxOworQkEyNztCQTI3OzExMDYgMTE2NCAxMUIyO0JBMjc7MTEwNiAxMTY0IDExQjI7CitCQTI4O0JBMjg7MTEwNiAxMTY0IDExQjM7QkEyODsxMTA2IDExNjQgMTFCMzsKK0JBMjk7QkEyOTsxMTA2IDExNjQgMTFCNDtCQTI5OzExMDYgMTE2NCAxMUI0OworQkEyQTtCQTJBOzExMDYgMTE2NCAxMUI1O0JBMkE7MTEwNiAxMTY0IDExQjU7CitCQTJCO0JBMkI7MTEwNiAxMTY0IDExQjY7QkEyQjsxMTA2IDExNjQgMTFCNjsKK0JBMkM7QkEyQzsxMTA2IDExNjQgMTFCNztCQTJDOzExMDYgMTE2NCAxMUI3OworQkEyRDtCQTJEOzExMDYgMTE2NCAxMUI4O0JBMkQ7MTEwNiAxMTY0IDExQjg7CitCQTJFO0JBMkU7MTEwNiAxMTY0IDExQjk7QkEyRTsxMTA2IDExNjQgMTFCOTsKK0JBMkY7QkEyRjsxMTA2IDExNjQgMTFCQTtCQTJGOzExMDYgMTE2NCAxMUJBOworQkEzMDtCQTMwOzExMDYgMTE2NCAxMUJCO0JBMzA7MTEwNiAxMTY0IDExQkI7CitCQTMxO0JBMzE7MTEwNiAxMTY0IDExQkM7QkEzMTsxMTA2IDExNjQgMTFCQzsKK0JBMzI7QkEzMjsxMTA2IDExNjQgMTFCRDtCQTMyOzExMDYgMTE2NCAxMUJEOworQkEzMztCQTMzOzExMDYgMTE2NCAxMUJFO0JBMzM7MTEwNiAxMTY0IDExQkU7CitCQTM0O0JBMzQ7MTEwNiAxMTY0IDExQkY7QkEzNDsxMTA2IDExNjQgMTFCRjsKK0JBMzU7QkEzNTsxMTA2IDExNjQgMTFDMDtCQTM1OzExMDYgMTE2NCAxMUMwOworQkEzNjtCQTM2OzExMDYgMTE2NCAxMUMxO0JBMzY7MTEwNiAxMTY0IDExQzE7CitCQTM3O0JBMzc7MTEwNiAxMTY0IDExQzI7QkEzNzsxMTA2IDExNjQgMTFDMjsKK0JBMzg7QkEzODsxMTA2IDExNjU7QkEzODsxMTA2IDExNjU7CitCQTM5O0JBMzk7MTEwNiAxMTY1IDExQTg7QkEzOTsxMTA2IDExNjUgMTFBODsKK0JBM0E7QkEzQTsxMTA2IDExNjUgMTFBOTtCQTNBOzExMDYgMTE2NSAxMUE5OworQkEzQjtCQTNCOzExMDYgMTE2NSAxMUFBO0JBM0I7MTEwNiAxMTY1IDExQUE7CitCQTNDO0JBM0M7MTEwNiAxMTY1IDExQUI7QkEzQzsxMTA2IDExNjUgMTFBQjsKK0JBM0Q7QkEzRDsxMTA2IDExNjUgMTFBQztCQTNEOzExMDYgMTE2NSAxMUFDOworQkEzRTtCQTNFOzExMDYgMTE2NSAxMUFEO0JBM0U7MTEwNiAxMTY1IDExQUQ7CitCQTNGO0JBM0Y7MTEwNiAxMTY1IDExQUU7QkEzRjsxMTA2IDExNjUgMTFBRTsKK0JBNDA7QkE0MDsxMTA2IDExNjUgMTFBRjtCQTQwOzExMDYgMTE2NSAxMUFGOworQkE0MTtCQTQxOzExMDYgMTE2NSAxMUIwO0JBNDE7MTEwNiAxMTY1IDExQjA7CitCQTQyO0JBNDI7MTEwNiAxMTY1IDExQjE7QkE0MjsxMTA2IDExNjUgMTFCMTsKK0JBNDM7QkE0MzsxMTA2IDExNjUgMTFCMjtCQTQzOzExMDYgMTE2NSAxMUIyOworQkE0NDtCQTQ0OzExMDYgMTE2NSAxMUIzO0JBNDQ7MTEwNiAxMTY1IDExQjM7CitCQTQ1O0JBNDU7MTEwNiAxMTY1IDExQjQ7QkE0NTsxMTA2IDExNjUgMTFCNDsKK0JBNDY7QkE0NjsxMTA2IDExNjUgMTFCNTtCQTQ2OzExMDYgMTE2NSAxMUI1OworQkE0NztCQTQ3OzExMDYgMTE2NSAxMUI2O0JBNDc7MTEwNiAxMTY1IDExQjY7CitCQTQ4O0JBNDg7MTEwNiAxMTY1IDExQjc7QkE0ODsxMTA2IDExNjUgMTFCNzsKK0JBNDk7QkE0OTsxMTA2IDExNjUgMTFCODtCQTQ5OzExMDYgMTE2NSAxMUI4OworQkE0QTtCQTRBOzExMDYgMTE2NSAxMUI5O0JBNEE7MTEwNiAxMTY1IDExQjk7CitCQTRCO0JBNEI7MTEwNiAxMTY1IDExQkE7QkE0QjsxMTA2IDExNjUgMTFCQTsKK0JBNEM7QkE0QzsxMTA2IDExNjUgMTFCQjtCQTRDOzExMDYgMTE2NSAxMUJCOworQkE0RDtCQTREOzExMDYgMTE2NSAxMUJDO0JBNEQ7MTEwNiAxMTY1IDExQkM7CitCQTRFO0JBNEU7MTEwNiAxMTY1IDExQkQ7QkE0RTsxMTA2IDExNjUgMTFCRDsKK0JBNEY7QkE0RjsxMTA2IDExNjUgMTFCRTtCQTRGOzExMDYgMTE2NSAxMUJFOworQkE1MDtCQTUwOzExMDYgMTE2NSAxMUJGO0JBNTA7MTEwNiAxMTY1IDExQkY7CitCQTUxO0JBNTE7MTEwNiAxMTY1IDExQzA7QkE1MTsxMTA2IDExNjUgMTFDMDsKK0JBNTI7QkE1MjsxMTA2IDExNjUgMTFDMTtCQTUyOzExMDYgMTE2NSAxMUMxOworQkE1MztCQTUzOzExMDYgMTE2NSAxMUMyO0JBNTM7MTEwNiAxMTY1IDExQzI7CitCQTU0O0JBNTQ7MTEwNiAxMTY2O0JBNTQ7MTEwNiAxMTY2OworQkE1NTtCQTU1OzExMDYgMTE2NiAxMUE4O0JBNTU7MTEwNiAxMTY2IDExQTg7CitCQTU2O0JBNTY7MTEwNiAxMTY2IDExQTk7QkE1NjsxMTA2IDExNjYgMTFBOTsKK0JBNTc7QkE1NzsxMTA2IDExNjYgMTFBQTtCQTU3OzExMDYgMTE2NiAxMUFBOworQkE1ODtCQTU4OzExMDYgMTE2NiAxMUFCO0JBNTg7MTEwNiAxMTY2IDExQUI7CitCQTU5O0JBNTk7MTEwNiAxMTY2IDExQUM7QkE1OTsxMTA2IDExNjYgMTFBQzsKK0JBNUE7QkE1QTsxMTA2IDExNjYgMTFBRDtCQTVBOzExMDYgMTE2NiAxMUFEOworQkE1QjtCQTVCOzExMDYgMTE2NiAxMUFFO0JBNUI7MTEwNiAxMTY2IDExQUU7CitCQTVDO0JBNUM7MTEwNiAxMTY2IDExQUY7QkE1QzsxMTA2IDExNjYgMTFBRjsKK0JBNUQ7QkE1RDsxMTA2IDExNjYgMTFCMDtCQTVEOzExMDYgMTE2NiAxMUIwOworQkE1RTtCQTVFOzExMDYgMTE2NiAxMUIxO0JBNUU7MTEwNiAxMTY2IDExQjE7CitCQTVGO0JBNUY7MTEwNiAxMTY2IDExQjI7QkE1RjsxMTA2IDExNjYgMTFCMjsKK0JBNjA7QkE2MDsxMTA2IDExNjYgMTFCMztCQTYwOzExMDYgMTE2NiAxMUIzOworQkE2MTtCQTYxOzExMDYgMTE2NiAxMUI0O0JBNjE7MTEwNiAxMTY2IDExQjQ7CitCQTYyO0JBNjI7MTEwNiAxMTY2IDExQjU7QkE2MjsxMTA2IDExNjYgMTFCNTsKK0JBNjM7QkE2MzsxMTA2IDExNjYgMTFCNjtCQTYzOzExMDYgMTE2NiAxMUI2OworQkE2NDtCQTY0OzExMDYgMTE2NiAxMUI3O0JBNjQ7MTEwNiAxMTY2IDExQjc7CitCQTY1O0JBNjU7MTEwNiAxMTY2IDExQjg7QkE2NTsxMTA2IDExNjYgMTFCODsKK0JBNjY7QkE2NjsxMTA2IDExNjYgMTFCOTtCQTY2OzExMDYgMTE2NiAxMUI5OworQkE2NztCQTY3OzExMDYgMTE2NiAxMUJBO0JBNjc7MTEwNiAxMTY2IDExQkE7CitCQTY4O0JBNjg7MTEwNiAxMTY2IDExQkI7QkE2ODsxMTA2IDExNjYgMTFCQjsKK0JBNjk7QkE2OTsxMTA2IDExNjYgMTFCQztCQTY5OzExMDYgMTE2NiAxMUJDOworQkE2QTtCQTZBOzExMDYgMTE2NiAxMUJEO0JBNkE7MTEwNiAxMTY2IDExQkQ7CitCQTZCO0JBNkI7MTEwNiAxMTY2IDExQkU7QkE2QjsxMTA2IDExNjYgMTFCRTsKK0JBNkM7QkE2QzsxMTA2IDExNjYgMTFCRjtCQTZDOzExMDYgMTE2NiAxMUJGOworQkE2RDtCQTZEOzExMDYgMTE2NiAxMUMwO0JBNkQ7MTEwNiAxMTY2IDExQzA7CitCQTZFO0JBNkU7MTEwNiAxMTY2IDExQzE7QkE2RTsxMTA2IDExNjYgMTFDMTsKK0JBNkY7QkE2RjsxMTA2IDExNjYgMTFDMjtCQTZGOzExMDYgMTE2NiAxMUMyOworQkE3MDtCQTcwOzExMDYgMTE2NztCQTcwOzExMDYgMTE2NzsKK0JBNzE7QkE3MTsxMTA2IDExNjcgMTFBODtCQTcxOzExMDYgMTE2NyAxMUE4OworQkE3MjtCQTcyOzExMDYgMTE2NyAxMUE5O0JBNzI7MTEwNiAxMTY3IDExQTk7CitCQTczO0JBNzM7MTEwNiAxMTY3IDExQUE7QkE3MzsxMTA2IDExNjcgMTFBQTsKK0JBNzQ7QkE3NDsxMTA2IDExNjcgMTFBQjtCQTc0OzExMDYgMTE2NyAxMUFCOworQkE3NTtCQTc1OzExMDYgMTE2NyAxMUFDO0JBNzU7MTEwNiAxMTY3IDExQUM7CitCQTc2O0JBNzY7MTEwNiAxMTY3IDExQUQ7QkE3NjsxMTA2IDExNjcgMTFBRDsKK0JBNzc7QkE3NzsxMTA2IDExNjcgMTFBRTtCQTc3OzExMDYgMTE2NyAxMUFFOworQkE3ODtCQTc4OzExMDYgMTE2NyAxMUFGO0JBNzg7MTEwNiAxMTY3IDExQUY7CitCQTc5O0JBNzk7MTEwNiAxMTY3IDExQjA7QkE3OTsxMTA2IDExNjcgMTFCMDsKK0JBN0E7QkE3QTsxMTA2IDExNjcgMTFCMTtCQTdBOzExMDYgMTE2NyAxMUIxOworQkE3QjtCQTdCOzExMDYgMTE2NyAxMUIyO0JBN0I7MTEwNiAxMTY3IDExQjI7CitCQTdDO0JBN0M7MTEwNiAxMTY3IDExQjM7QkE3QzsxMTA2IDExNjcgMTFCMzsKK0JBN0Q7QkE3RDsxMTA2IDExNjcgMTFCNDtCQTdEOzExMDYgMTE2NyAxMUI0OworQkE3RTtCQTdFOzExMDYgMTE2NyAxMUI1O0JBN0U7MTEwNiAxMTY3IDExQjU7CitCQTdGO0JBN0Y7MTEwNiAxMTY3IDExQjY7QkE3RjsxMTA2IDExNjcgMTFCNjsKK0JBODA7QkE4MDsxMTA2IDExNjcgMTFCNztCQTgwOzExMDYgMTE2NyAxMUI3OworQkE4MTtCQTgxOzExMDYgMTE2NyAxMUI4O0JBODE7MTEwNiAxMTY3IDExQjg7CitCQTgyO0JBODI7MTEwNiAxMTY3IDExQjk7QkE4MjsxMTA2IDExNjcgMTFCOTsKK0JBODM7QkE4MzsxMTA2IDExNjcgMTFCQTtCQTgzOzExMDYgMTE2NyAxMUJBOworQkE4NDtCQTg0OzExMDYgMTE2NyAxMUJCO0JBODQ7MTEwNiAxMTY3IDExQkI7CitCQTg1O0JBODU7MTEwNiAxMTY3IDExQkM7QkE4NTsxMTA2IDExNjcgMTFCQzsKK0JBODY7QkE4NjsxMTA2IDExNjcgMTFCRDtCQTg2OzExMDYgMTE2NyAxMUJEOworQkE4NztCQTg3OzExMDYgMTE2NyAxMUJFO0JBODc7MTEwNiAxMTY3IDExQkU7CitCQTg4O0JBODg7MTEwNiAxMTY3IDExQkY7QkE4ODsxMTA2IDExNjcgMTFCRjsKK0JBODk7QkE4OTsxMTA2IDExNjcgMTFDMDtCQTg5OzExMDYgMTE2NyAxMUMwOworQkE4QTtCQThBOzExMDYgMTE2NyAxMUMxO0JBOEE7MTEwNiAxMTY3IDExQzE7CitCQThCO0JBOEI7MTEwNiAxMTY3IDExQzI7QkE4QjsxMTA2IDExNjcgMTFDMjsKK0JBOEM7QkE4QzsxMTA2IDExNjg7QkE4QzsxMTA2IDExNjg7CitCQThEO0JBOEQ7MTEwNiAxMTY4IDExQTg7QkE4RDsxMTA2IDExNjggMTFBODsKK0JBOEU7QkE4RTsxMTA2IDExNjggMTFBOTtCQThFOzExMDYgMTE2OCAxMUE5OworQkE4RjtCQThGOzExMDYgMTE2OCAxMUFBO0JBOEY7MTEwNiAxMTY4IDExQUE7CitCQTkwO0JBOTA7MTEwNiAxMTY4IDExQUI7QkE5MDsxMTA2IDExNjggMTFBQjsKK0JBOTE7QkE5MTsxMTA2IDExNjggMTFBQztCQTkxOzExMDYgMTE2OCAxMUFDOworQkE5MjtCQTkyOzExMDYgMTE2OCAxMUFEO0JBOTI7MTEwNiAxMTY4IDExQUQ7CitCQTkzO0JBOTM7MTEwNiAxMTY4IDExQUU7QkE5MzsxMTA2IDExNjggMTFBRTsKK0JBOTQ7QkE5NDsxMTA2IDExNjggMTFBRjtCQTk0OzExMDYgMTE2OCAxMUFGOworQkE5NTtCQTk1OzExMDYgMTE2OCAxMUIwO0JBOTU7MTEwNiAxMTY4IDExQjA7CitCQTk2O0JBOTY7MTEwNiAxMTY4IDExQjE7QkE5NjsxMTA2IDExNjggMTFCMTsKK0JBOTc7QkE5NzsxMTA2IDExNjggMTFCMjtCQTk3OzExMDYgMTE2OCAxMUIyOworQkE5ODtCQTk4OzExMDYgMTE2OCAxMUIzO0JBOTg7MTEwNiAxMTY4IDExQjM7CitCQTk5O0JBOTk7MTEwNiAxMTY4IDExQjQ7QkE5OTsxMTA2IDExNjggMTFCNDsKK0JBOUE7QkE5QTsxMTA2IDExNjggMTFCNTtCQTlBOzExMDYgMTE2OCAxMUI1OworQkE5QjtCQTlCOzExMDYgMTE2OCAxMUI2O0JBOUI7MTEwNiAxMTY4IDExQjY7CitCQTlDO0JBOUM7MTEwNiAxMTY4IDExQjc7QkE5QzsxMTA2IDExNjggMTFCNzsKK0JBOUQ7QkE5RDsxMTA2IDExNjggMTFCODtCQTlEOzExMDYgMTE2OCAxMUI4OworQkE5RTtCQTlFOzExMDYgMTE2OCAxMUI5O0JBOUU7MTEwNiAxMTY4IDExQjk7CitCQTlGO0JBOUY7MTEwNiAxMTY4IDExQkE7QkE5RjsxMTA2IDExNjggMTFCQTsKK0JBQTA7QkFBMDsxMTA2IDExNjggMTFCQjtCQUEwOzExMDYgMTE2OCAxMUJCOworQkFBMTtCQUExOzExMDYgMTE2OCAxMUJDO0JBQTE7MTEwNiAxMTY4IDExQkM7CitCQUEyO0JBQTI7MTEwNiAxMTY4IDExQkQ7QkFBMjsxMTA2IDExNjggMTFCRDsKK0JBQTM7QkFBMzsxMTA2IDExNjggMTFCRTtCQUEzOzExMDYgMTE2OCAxMUJFOworQkFBNDtCQUE0OzExMDYgMTE2OCAxMUJGO0JBQTQ7MTEwNiAxMTY4IDExQkY7CitCQUE1O0JBQTU7MTEwNiAxMTY4IDExQzA7QkFBNTsxMTA2IDExNjggMTFDMDsKK0JBQTY7QkFBNjsxMTA2IDExNjggMTFDMTtCQUE2OzExMDYgMTE2OCAxMUMxOworQkFBNztCQUE3OzExMDYgMTE2OCAxMUMyO0JBQTc7MTEwNiAxMTY4IDExQzI7CitCQUE4O0JBQTg7MTEwNiAxMTY5O0JBQTg7MTEwNiAxMTY5OworQkFBOTtCQUE5OzExMDYgMTE2OSAxMUE4O0JBQTk7MTEwNiAxMTY5IDExQTg7CitCQUFBO0JBQUE7MTEwNiAxMTY5IDExQTk7QkFBQTsxMTA2IDExNjkgMTFBOTsKK0JBQUI7QkFBQjsxMTA2IDExNjkgMTFBQTtCQUFCOzExMDYgMTE2OSAxMUFBOworQkFBQztCQUFDOzExMDYgMTE2OSAxMUFCO0JBQUM7MTEwNiAxMTY5IDExQUI7CitCQUFEO0JBQUQ7MTEwNiAxMTY5IDExQUM7QkFBRDsxMTA2IDExNjkgMTFBQzsKK0JBQUU7QkFBRTsxMTA2IDExNjkgMTFBRDtCQUFFOzExMDYgMTE2OSAxMUFEOworQkFBRjtCQUFGOzExMDYgMTE2OSAxMUFFO0JBQUY7MTEwNiAxMTY5IDExQUU7CitCQUIwO0JBQjA7MTEwNiAxMTY5IDExQUY7QkFCMDsxMTA2IDExNjkgMTFBRjsKK0JBQjE7QkFCMTsxMTA2IDExNjkgMTFCMDtCQUIxOzExMDYgMTE2OSAxMUIwOworQkFCMjtCQUIyOzExMDYgMTE2OSAxMUIxO0JBQjI7MTEwNiAxMTY5IDExQjE7CitCQUIzO0JBQjM7MTEwNiAxMTY5IDExQjI7QkFCMzsxMTA2IDExNjkgMTFCMjsKK0JBQjQ7QkFCNDsxMTA2IDExNjkgMTFCMztCQUI0OzExMDYgMTE2OSAxMUIzOworQkFCNTtCQUI1OzExMDYgMTE2OSAxMUI0O0JBQjU7MTEwNiAxMTY5IDExQjQ7CitCQUI2O0JBQjY7MTEwNiAxMTY5IDExQjU7QkFCNjsxMTA2IDExNjkgMTFCNTsKK0JBQjc7QkFCNzsxMTA2IDExNjkgMTFCNjtCQUI3OzExMDYgMTE2OSAxMUI2OworQkFCODtCQUI4OzExMDYgMTE2OSAxMUI3O0JBQjg7MTEwNiAxMTY5IDExQjc7CitCQUI5O0JBQjk7MTEwNiAxMTY5IDExQjg7QkFCOTsxMTA2IDExNjkgMTFCODsKK0JBQkE7QkFCQTsxMTA2IDExNjkgMTFCOTtCQUJBOzExMDYgMTE2OSAxMUI5OworQkFCQjtCQUJCOzExMDYgMTE2OSAxMUJBO0JBQkI7MTEwNiAxMTY5IDExQkE7CitCQUJDO0JBQkM7MTEwNiAxMTY5IDExQkI7QkFCQzsxMTA2IDExNjkgMTFCQjsKK0JBQkQ7QkFCRDsxMTA2IDExNjkgMTFCQztCQUJEOzExMDYgMTE2OSAxMUJDOworQkFCRTtCQUJFOzExMDYgMTE2OSAxMUJEO0JBQkU7MTEwNiAxMTY5IDExQkQ7CitCQUJGO0JBQkY7MTEwNiAxMTY5IDExQkU7QkFCRjsxMTA2IDExNjkgMTFCRTsKK0JBQzA7QkFDMDsxMTA2IDExNjkgMTFCRjtCQUMwOzExMDYgMTE2OSAxMUJGOworQkFDMTtCQUMxOzExMDYgMTE2OSAxMUMwO0JBQzE7MTEwNiAxMTY5IDExQzA7CitCQUMyO0JBQzI7MTEwNiAxMTY5IDExQzE7QkFDMjsxMTA2IDExNjkgMTFDMTsKK0JBQzM7QkFDMzsxMTA2IDExNjkgMTFDMjtCQUMzOzExMDYgMTE2OSAxMUMyOworQkFDNDtCQUM0OzExMDYgMTE2QTtCQUM0OzExMDYgMTE2QTsKK0JBQzU7QkFDNTsxMTA2IDExNkEgMTFBODtCQUM1OzExMDYgMTE2QSAxMUE4OworQkFDNjtCQUM2OzExMDYgMTE2QSAxMUE5O0JBQzY7MTEwNiAxMTZBIDExQTk7CitCQUM3O0JBQzc7MTEwNiAxMTZBIDExQUE7QkFDNzsxMTA2IDExNkEgMTFBQTsKK0JBQzg7QkFDODsxMTA2IDExNkEgMTFBQjtCQUM4OzExMDYgMTE2QSAxMUFCOworQkFDOTtCQUM5OzExMDYgMTE2QSAxMUFDO0JBQzk7MTEwNiAxMTZBIDExQUM7CitCQUNBO0JBQ0E7MTEwNiAxMTZBIDExQUQ7QkFDQTsxMTA2IDExNkEgMTFBRDsKK0JBQ0I7QkFDQjsxMTA2IDExNkEgMTFBRTtCQUNCOzExMDYgMTE2QSAxMUFFOworQkFDQztCQUNDOzExMDYgMTE2QSAxMUFGO0JBQ0M7MTEwNiAxMTZBIDExQUY7CitCQUNEO0JBQ0Q7MTEwNiAxMTZBIDExQjA7QkFDRDsxMTA2IDExNkEgMTFCMDsKK0JBQ0U7QkFDRTsxMTA2IDExNkEgMTFCMTtCQUNFOzExMDYgMTE2QSAxMUIxOworQkFDRjtCQUNGOzExMDYgMTE2QSAxMUIyO0JBQ0Y7MTEwNiAxMTZBIDExQjI7CitCQUQwO0JBRDA7MTEwNiAxMTZBIDExQjM7QkFEMDsxMTA2IDExNkEgMTFCMzsKK0JBRDE7QkFEMTsxMTA2IDExNkEgMTFCNDtCQUQxOzExMDYgMTE2QSAxMUI0OworQkFEMjtCQUQyOzExMDYgMTE2QSAxMUI1O0JBRDI7MTEwNiAxMTZBIDExQjU7CitCQUQzO0JBRDM7MTEwNiAxMTZBIDExQjY7QkFEMzsxMTA2IDExNkEgMTFCNjsKK0JBRDQ7QkFENDsxMTA2IDExNkEgMTFCNztCQUQ0OzExMDYgMTE2QSAxMUI3OworQkFENTtCQUQ1OzExMDYgMTE2QSAxMUI4O0JBRDU7MTEwNiAxMTZBIDExQjg7CitCQUQ2O0JBRDY7MTEwNiAxMTZBIDExQjk7QkFENjsxMTA2IDExNkEgMTFCOTsKK0JBRDc7QkFENzsxMTA2IDExNkEgMTFCQTtCQUQ3OzExMDYgMTE2QSAxMUJBOworQkFEODtCQUQ4OzExMDYgMTE2QSAxMUJCO0JBRDg7MTEwNiAxMTZBIDExQkI7CitCQUQ5O0JBRDk7MTEwNiAxMTZBIDExQkM7QkFEOTsxMTA2IDExNkEgMTFCQzsKK0JBREE7QkFEQTsxMTA2IDExNkEgMTFCRDtCQURBOzExMDYgMTE2QSAxMUJEOworQkFEQjtCQURCOzExMDYgMTE2QSAxMUJFO0JBREI7MTEwNiAxMTZBIDExQkU7CitCQURDO0JBREM7MTEwNiAxMTZBIDExQkY7QkFEQzsxMTA2IDExNkEgMTFCRjsKK0JBREQ7QkFERDsxMTA2IDExNkEgMTFDMDtCQUREOzExMDYgMTE2QSAxMUMwOworQkFERTtCQURFOzExMDYgMTE2QSAxMUMxO0JBREU7MTEwNiAxMTZBIDExQzE7CitCQURGO0JBREY7MTEwNiAxMTZBIDExQzI7QkFERjsxMTA2IDExNkEgMTFDMjsKK0JBRTA7QkFFMDsxMTA2IDExNkI7QkFFMDsxMTA2IDExNkI7CitCQUUxO0JBRTE7MTEwNiAxMTZCIDExQTg7QkFFMTsxMTA2IDExNkIgMTFBODsKK0JBRTI7QkFFMjsxMTA2IDExNkIgMTFBOTtCQUUyOzExMDYgMTE2QiAxMUE5OworQkFFMztCQUUzOzExMDYgMTE2QiAxMUFBO0JBRTM7MTEwNiAxMTZCIDExQUE7CitCQUU0O0JBRTQ7MTEwNiAxMTZCIDExQUI7QkFFNDsxMTA2IDExNkIgMTFBQjsKK0JBRTU7QkFFNTsxMTA2IDExNkIgMTFBQztCQUU1OzExMDYgMTE2QiAxMUFDOworQkFFNjtCQUU2OzExMDYgMTE2QiAxMUFEO0JBRTY7MTEwNiAxMTZCIDExQUQ7CitCQUU3O0JBRTc7MTEwNiAxMTZCIDExQUU7QkFFNzsxMTA2IDExNkIgMTFBRTsKK0JBRTg7QkFFODsxMTA2IDExNkIgMTFBRjtCQUU4OzExMDYgMTE2QiAxMUFGOworQkFFOTtCQUU5OzExMDYgMTE2QiAxMUIwO0JBRTk7MTEwNiAxMTZCIDExQjA7CitCQUVBO0JBRUE7MTEwNiAxMTZCIDExQjE7QkFFQTsxMTA2IDExNkIgMTFCMTsKK0JBRUI7QkFFQjsxMTA2IDExNkIgMTFCMjtCQUVCOzExMDYgMTE2QiAxMUIyOworQkFFQztCQUVDOzExMDYgMTE2QiAxMUIzO0JBRUM7MTEwNiAxMTZCIDExQjM7CitCQUVEO0JBRUQ7MTEwNiAxMTZCIDExQjQ7QkFFRDsxMTA2IDExNkIgMTFCNDsKK0JBRUU7QkFFRTsxMTA2IDExNkIgMTFCNTtCQUVFOzExMDYgMTE2QiAxMUI1OworQkFFRjtCQUVGOzExMDYgMTE2QiAxMUI2O0JBRUY7MTEwNiAxMTZCIDExQjY7CitCQUYwO0JBRjA7MTEwNiAxMTZCIDExQjc7QkFGMDsxMTA2IDExNkIgMTFCNzsKK0JBRjE7QkFGMTsxMTA2IDExNkIgMTFCODtCQUYxOzExMDYgMTE2QiAxMUI4OworQkFGMjtCQUYyOzExMDYgMTE2QiAxMUI5O0JBRjI7MTEwNiAxMTZCIDExQjk7CitCQUYzO0JBRjM7MTEwNiAxMTZCIDExQkE7QkFGMzsxMTA2IDExNkIgMTFCQTsKK0JBRjQ7QkFGNDsxMTA2IDExNkIgMTFCQjtCQUY0OzExMDYgMTE2QiAxMUJCOworQkFGNTtCQUY1OzExMDYgMTE2QiAxMUJDO0JBRjU7MTEwNiAxMTZCIDExQkM7CitCQUY2O0JBRjY7MTEwNiAxMTZCIDExQkQ7QkFGNjsxMTA2IDExNkIgMTFCRDsKK0JBRjc7QkFGNzsxMTA2IDExNkIgMTFCRTtCQUY3OzExMDYgMTE2QiAxMUJFOworQkFGODtCQUY4OzExMDYgMTE2QiAxMUJGO0JBRjg7MTEwNiAxMTZCIDExQkY7CitCQUY5O0JBRjk7MTEwNiAxMTZCIDExQzA7QkFGOTsxMTA2IDExNkIgMTFDMDsKK0JBRkE7QkFGQTsxMTA2IDExNkIgMTFDMTtCQUZBOzExMDYgMTE2QiAxMUMxOworQkFGQjtCQUZCOzExMDYgMTE2QiAxMUMyO0JBRkI7MTEwNiAxMTZCIDExQzI7CitCQUZDO0JBRkM7MTEwNiAxMTZDO0JBRkM7MTEwNiAxMTZDOworQkFGRDtCQUZEOzExMDYgMTE2QyAxMUE4O0JBRkQ7MTEwNiAxMTZDIDExQTg7CitCQUZFO0JBRkU7MTEwNiAxMTZDIDExQTk7QkFGRTsxMTA2IDExNkMgMTFBOTsKK0JBRkY7QkFGRjsxMTA2IDExNkMgMTFBQTtCQUZGOzExMDYgMTE2QyAxMUFBOworQkIwMDtCQjAwOzExMDYgMTE2QyAxMUFCO0JCMDA7MTEwNiAxMTZDIDExQUI7CitCQjAxO0JCMDE7MTEwNiAxMTZDIDExQUM7QkIwMTsxMTA2IDExNkMgMTFBQzsKK0JCMDI7QkIwMjsxMTA2IDExNkMgMTFBRDtCQjAyOzExMDYgMTE2QyAxMUFEOworQkIwMztCQjAzOzExMDYgMTE2QyAxMUFFO0JCMDM7MTEwNiAxMTZDIDExQUU7CitCQjA0O0JCMDQ7MTEwNiAxMTZDIDExQUY7QkIwNDsxMTA2IDExNkMgMTFBRjsKK0JCMDU7QkIwNTsxMTA2IDExNkMgMTFCMDtCQjA1OzExMDYgMTE2QyAxMUIwOworQkIwNjtCQjA2OzExMDYgMTE2QyAxMUIxO0JCMDY7MTEwNiAxMTZDIDExQjE7CitCQjA3O0JCMDc7MTEwNiAxMTZDIDExQjI7QkIwNzsxMTA2IDExNkMgMTFCMjsKK0JCMDg7QkIwODsxMTA2IDExNkMgMTFCMztCQjA4OzExMDYgMTE2QyAxMUIzOworQkIwOTtCQjA5OzExMDYgMTE2QyAxMUI0O0JCMDk7MTEwNiAxMTZDIDExQjQ7CitCQjBBO0JCMEE7MTEwNiAxMTZDIDExQjU7QkIwQTsxMTA2IDExNkMgMTFCNTsKK0JCMEI7QkIwQjsxMTA2IDExNkMgMTFCNjtCQjBCOzExMDYgMTE2QyAxMUI2OworQkIwQztCQjBDOzExMDYgMTE2QyAxMUI3O0JCMEM7MTEwNiAxMTZDIDExQjc7CitCQjBEO0JCMEQ7MTEwNiAxMTZDIDExQjg7QkIwRDsxMTA2IDExNkMgMTFCODsKK0JCMEU7QkIwRTsxMTA2IDExNkMgMTFCOTtCQjBFOzExMDYgMTE2QyAxMUI5OworQkIwRjtCQjBGOzExMDYgMTE2QyAxMUJBO0JCMEY7MTEwNiAxMTZDIDExQkE7CitCQjEwO0JCMTA7MTEwNiAxMTZDIDExQkI7QkIxMDsxMTA2IDExNkMgMTFCQjsKK0JCMTE7QkIxMTsxMTA2IDExNkMgMTFCQztCQjExOzExMDYgMTE2QyAxMUJDOworQkIxMjtCQjEyOzExMDYgMTE2QyAxMUJEO0JCMTI7MTEwNiAxMTZDIDExQkQ7CitCQjEzO0JCMTM7MTEwNiAxMTZDIDExQkU7QkIxMzsxMTA2IDExNkMgMTFCRTsKK0JCMTQ7QkIxNDsxMTA2IDExNkMgMTFCRjtCQjE0OzExMDYgMTE2QyAxMUJGOworQkIxNTtCQjE1OzExMDYgMTE2QyAxMUMwO0JCMTU7MTEwNiAxMTZDIDExQzA7CitCQjE2O0JCMTY7MTEwNiAxMTZDIDExQzE7QkIxNjsxMTA2IDExNkMgMTFDMTsKK0JCMTc7QkIxNzsxMTA2IDExNkMgMTFDMjtCQjE3OzExMDYgMTE2QyAxMUMyOworQkIxODtCQjE4OzExMDYgMTE2RDtCQjE4OzExMDYgMTE2RDsKK0JCMTk7QkIxOTsxMTA2IDExNkQgMTFBODtCQjE5OzExMDYgMTE2RCAxMUE4OworQkIxQTtCQjFBOzExMDYgMTE2RCAxMUE5O0JCMUE7MTEwNiAxMTZEIDExQTk7CitCQjFCO0JCMUI7MTEwNiAxMTZEIDExQUE7QkIxQjsxMTA2IDExNkQgMTFBQTsKK0JCMUM7QkIxQzsxMTA2IDExNkQgMTFBQjtCQjFDOzExMDYgMTE2RCAxMUFCOworQkIxRDtCQjFEOzExMDYgMTE2RCAxMUFDO0JCMUQ7MTEwNiAxMTZEIDExQUM7CitCQjFFO0JCMUU7MTEwNiAxMTZEIDExQUQ7QkIxRTsxMTA2IDExNkQgMTFBRDsKK0JCMUY7QkIxRjsxMTA2IDExNkQgMTFBRTtCQjFGOzExMDYgMTE2RCAxMUFFOworQkIyMDtCQjIwOzExMDYgMTE2RCAxMUFGO0JCMjA7MTEwNiAxMTZEIDExQUY7CitCQjIxO0JCMjE7MTEwNiAxMTZEIDExQjA7QkIyMTsxMTA2IDExNkQgMTFCMDsKK0JCMjI7QkIyMjsxMTA2IDExNkQgMTFCMTtCQjIyOzExMDYgMTE2RCAxMUIxOworQkIyMztCQjIzOzExMDYgMTE2RCAxMUIyO0JCMjM7MTEwNiAxMTZEIDExQjI7CitCQjI0O0JCMjQ7MTEwNiAxMTZEIDExQjM7QkIyNDsxMTA2IDExNkQgMTFCMzsKK0JCMjU7QkIyNTsxMTA2IDExNkQgMTFCNDtCQjI1OzExMDYgMTE2RCAxMUI0OworQkIyNjtCQjI2OzExMDYgMTE2RCAxMUI1O0JCMjY7MTEwNiAxMTZEIDExQjU7CitCQjI3O0JCMjc7MTEwNiAxMTZEIDExQjY7QkIyNzsxMTA2IDExNkQgMTFCNjsKK0JCMjg7QkIyODsxMTA2IDExNkQgMTFCNztCQjI4OzExMDYgMTE2RCAxMUI3OworQkIyOTtCQjI5OzExMDYgMTE2RCAxMUI4O0JCMjk7MTEwNiAxMTZEIDExQjg7CitCQjJBO0JCMkE7MTEwNiAxMTZEIDExQjk7QkIyQTsxMTA2IDExNkQgMTFCOTsKK0JCMkI7QkIyQjsxMTA2IDExNkQgMTFCQTtCQjJCOzExMDYgMTE2RCAxMUJBOworQkIyQztCQjJDOzExMDYgMTE2RCAxMUJCO0JCMkM7MTEwNiAxMTZEIDExQkI7CitCQjJEO0JCMkQ7MTEwNiAxMTZEIDExQkM7QkIyRDsxMTA2IDExNkQgMTFCQzsKK0JCMkU7QkIyRTsxMTA2IDExNkQgMTFCRDtCQjJFOzExMDYgMTE2RCAxMUJEOworQkIyRjtCQjJGOzExMDYgMTE2RCAxMUJFO0JCMkY7MTEwNiAxMTZEIDExQkU7CitCQjMwO0JCMzA7MTEwNiAxMTZEIDExQkY7QkIzMDsxMTA2IDExNkQgMTFCRjsKK0JCMzE7QkIzMTsxMTA2IDExNkQgMTFDMDtCQjMxOzExMDYgMTE2RCAxMUMwOworQkIzMjtCQjMyOzExMDYgMTE2RCAxMUMxO0JCMzI7MTEwNiAxMTZEIDExQzE7CitCQjMzO0JCMzM7MTEwNiAxMTZEIDExQzI7QkIzMzsxMTA2IDExNkQgMTFDMjsKK0JCMzQ7QkIzNDsxMTA2IDExNkU7QkIzNDsxMTA2IDExNkU7CitCQjM1O0JCMzU7MTEwNiAxMTZFIDExQTg7QkIzNTsxMTA2IDExNkUgMTFBODsKK0JCMzY7QkIzNjsxMTA2IDExNkUgMTFBOTtCQjM2OzExMDYgMTE2RSAxMUE5OworQkIzNztCQjM3OzExMDYgMTE2RSAxMUFBO0JCMzc7MTEwNiAxMTZFIDExQUE7CitCQjM4O0JCMzg7MTEwNiAxMTZFIDExQUI7QkIzODsxMTA2IDExNkUgMTFBQjsKK0JCMzk7QkIzOTsxMTA2IDExNkUgMTFBQztCQjM5OzExMDYgMTE2RSAxMUFDOworQkIzQTtCQjNBOzExMDYgMTE2RSAxMUFEO0JCM0E7MTEwNiAxMTZFIDExQUQ7CitCQjNCO0JCM0I7MTEwNiAxMTZFIDExQUU7QkIzQjsxMTA2IDExNkUgMTFBRTsKK0JCM0M7QkIzQzsxMTA2IDExNkUgMTFBRjtCQjNDOzExMDYgMTE2RSAxMUFGOworQkIzRDtCQjNEOzExMDYgMTE2RSAxMUIwO0JCM0Q7MTEwNiAxMTZFIDExQjA7CitCQjNFO0JCM0U7MTEwNiAxMTZFIDExQjE7QkIzRTsxMTA2IDExNkUgMTFCMTsKK0JCM0Y7QkIzRjsxMTA2IDExNkUgMTFCMjtCQjNGOzExMDYgMTE2RSAxMUIyOworQkI0MDtCQjQwOzExMDYgMTE2RSAxMUIzO0JCNDA7MTEwNiAxMTZFIDExQjM7CitCQjQxO0JCNDE7MTEwNiAxMTZFIDExQjQ7QkI0MTsxMTA2IDExNkUgMTFCNDsKK0JCNDI7QkI0MjsxMTA2IDExNkUgMTFCNTtCQjQyOzExMDYgMTE2RSAxMUI1OworQkI0MztCQjQzOzExMDYgMTE2RSAxMUI2O0JCNDM7MTEwNiAxMTZFIDExQjY7CitCQjQ0O0JCNDQ7MTEwNiAxMTZFIDExQjc7QkI0NDsxMTA2IDExNkUgMTFCNzsKK0JCNDU7QkI0NTsxMTA2IDExNkUgMTFCODtCQjQ1OzExMDYgMTE2RSAxMUI4OworQkI0NjtCQjQ2OzExMDYgMTE2RSAxMUI5O0JCNDY7MTEwNiAxMTZFIDExQjk7CitCQjQ3O0JCNDc7MTEwNiAxMTZFIDExQkE7QkI0NzsxMTA2IDExNkUgMTFCQTsKK0JCNDg7QkI0ODsxMTA2IDExNkUgMTFCQjtCQjQ4OzExMDYgMTE2RSAxMUJCOworQkI0OTtCQjQ5OzExMDYgMTE2RSAxMUJDO0JCNDk7MTEwNiAxMTZFIDExQkM7CitCQjRBO0JCNEE7MTEwNiAxMTZFIDExQkQ7QkI0QTsxMTA2IDExNkUgMTFCRDsKK0JCNEI7QkI0QjsxMTA2IDExNkUgMTFCRTtCQjRCOzExMDYgMTE2RSAxMUJFOworQkI0QztCQjRDOzExMDYgMTE2RSAxMUJGO0JCNEM7MTEwNiAxMTZFIDExQkY7CitCQjREO0JCNEQ7MTEwNiAxMTZFIDExQzA7QkI0RDsxMTA2IDExNkUgMTFDMDsKK0JCNEU7QkI0RTsxMTA2IDExNkUgMTFDMTtCQjRFOzExMDYgMTE2RSAxMUMxOworQkI0RjtCQjRGOzExMDYgMTE2RSAxMUMyO0JCNEY7MTEwNiAxMTZFIDExQzI7CitCQjUwO0JCNTA7MTEwNiAxMTZGO0JCNTA7MTEwNiAxMTZGOworQkI1MTtCQjUxOzExMDYgMTE2RiAxMUE4O0JCNTE7MTEwNiAxMTZGIDExQTg7CitCQjUyO0JCNTI7MTEwNiAxMTZGIDExQTk7QkI1MjsxMTA2IDExNkYgMTFBOTsKK0JCNTM7QkI1MzsxMTA2IDExNkYgMTFBQTtCQjUzOzExMDYgMTE2RiAxMUFBOworQkI1NDtCQjU0OzExMDYgMTE2RiAxMUFCO0JCNTQ7MTEwNiAxMTZGIDExQUI7CitCQjU1O0JCNTU7MTEwNiAxMTZGIDExQUM7QkI1NTsxMTA2IDExNkYgMTFBQzsKK0JCNTY7QkI1NjsxMTA2IDExNkYgMTFBRDtCQjU2OzExMDYgMTE2RiAxMUFEOworQkI1NztCQjU3OzExMDYgMTE2RiAxMUFFO0JCNTc7MTEwNiAxMTZGIDExQUU7CitCQjU4O0JCNTg7MTEwNiAxMTZGIDExQUY7QkI1ODsxMTA2IDExNkYgMTFBRjsKK0JCNTk7QkI1OTsxMTA2IDExNkYgMTFCMDtCQjU5OzExMDYgMTE2RiAxMUIwOworQkI1QTtCQjVBOzExMDYgMTE2RiAxMUIxO0JCNUE7MTEwNiAxMTZGIDExQjE7CitCQjVCO0JCNUI7MTEwNiAxMTZGIDExQjI7QkI1QjsxMTA2IDExNkYgMTFCMjsKK0JCNUM7QkI1QzsxMTA2IDExNkYgMTFCMztCQjVDOzExMDYgMTE2RiAxMUIzOworQkI1RDtCQjVEOzExMDYgMTE2RiAxMUI0O0JCNUQ7MTEwNiAxMTZGIDExQjQ7CitCQjVFO0JCNUU7MTEwNiAxMTZGIDExQjU7QkI1RTsxMTA2IDExNkYgMTFCNTsKK0JCNUY7QkI1RjsxMTA2IDExNkYgMTFCNjtCQjVGOzExMDYgMTE2RiAxMUI2OworQkI2MDtCQjYwOzExMDYgMTE2RiAxMUI3O0JCNjA7MTEwNiAxMTZGIDExQjc7CitCQjYxO0JCNjE7MTEwNiAxMTZGIDExQjg7QkI2MTsxMTA2IDExNkYgMTFCODsKK0JCNjI7QkI2MjsxMTA2IDExNkYgMTFCOTtCQjYyOzExMDYgMTE2RiAxMUI5OworQkI2MztCQjYzOzExMDYgMTE2RiAxMUJBO0JCNjM7MTEwNiAxMTZGIDExQkE7CitCQjY0O0JCNjQ7MTEwNiAxMTZGIDExQkI7QkI2NDsxMTA2IDExNkYgMTFCQjsKK0JCNjU7QkI2NTsxMTA2IDExNkYgMTFCQztCQjY1OzExMDYgMTE2RiAxMUJDOworQkI2NjtCQjY2OzExMDYgMTE2RiAxMUJEO0JCNjY7MTEwNiAxMTZGIDExQkQ7CitCQjY3O0JCNjc7MTEwNiAxMTZGIDExQkU7QkI2NzsxMTA2IDExNkYgMTFCRTsKK0JCNjg7QkI2ODsxMTA2IDExNkYgMTFCRjtCQjY4OzExMDYgMTE2RiAxMUJGOworQkI2OTtCQjY5OzExMDYgMTE2RiAxMUMwO0JCNjk7MTEwNiAxMTZGIDExQzA7CitCQjZBO0JCNkE7MTEwNiAxMTZGIDExQzE7QkI2QTsxMTA2IDExNkYgMTFDMTsKK0JCNkI7QkI2QjsxMTA2IDExNkYgMTFDMjtCQjZCOzExMDYgMTE2RiAxMUMyOworQkI2QztCQjZDOzExMDYgMTE3MDtCQjZDOzExMDYgMTE3MDsKK0JCNkQ7QkI2RDsxMTA2IDExNzAgMTFBODtCQjZEOzExMDYgMTE3MCAxMUE4OworQkI2RTtCQjZFOzExMDYgMTE3MCAxMUE5O0JCNkU7MTEwNiAxMTcwIDExQTk7CitCQjZGO0JCNkY7MTEwNiAxMTcwIDExQUE7QkI2RjsxMTA2IDExNzAgMTFBQTsKK0JCNzA7QkI3MDsxMTA2IDExNzAgMTFBQjtCQjcwOzExMDYgMTE3MCAxMUFCOworQkI3MTtCQjcxOzExMDYgMTE3MCAxMUFDO0JCNzE7MTEwNiAxMTcwIDExQUM7CitCQjcyO0JCNzI7MTEwNiAxMTcwIDExQUQ7QkI3MjsxMTA2IDExNzAgMTFBRDsKK0JCNzM7QkI3MzsxMTA2IDExNzAgMTFBRTtCQjczOzExMDYgMTE3MCAxMUFFOworQkI3NDtCQjc0OzExMDYgMTE3MCAxMUFGO0JCNzQ7MTEwNiAxMTcwIDExQUY7CitCQjc1O0JCNzU7MTEwNiAxMTcwIDExQjA7QkI3NTsxMTA2IDExNzAgMTFCMDsKK0JCNzY7QkI3NjsxMTA2IDExNzAgMTFCMTtCQjc2OzExMDYgMTE3MCAxMUIxOworQkI3NztCQjc3OzExMDYgMTE3MCAxMUIyO0JCNzc7MTEwNiAxMTcwIDExQjI7CitCQjc4O0JCNzg7MTEwNiAxMTcwIDExQjM7QkI3ODsxMTA2IDExNzAgMTFCMzsKK0JCNzk7QkI3OTsxMTA2IDExNzAgMTFCNDtCQjc5OzExMDYgMTE3MCAxMUI0OworQkI3QTtCQjdBOzExMDYgMTE3MCAxMUI1O0JCN0E7MTEwNiAxMTcwIDExQjU7CitCQjdCO0JCN0I7MTEwNiAxMTcwIDExQjY7QkI3QjsxMTA2IDExNzAgMTFCNjsKK0JCN0M7QkI3QzsxMTA2IDExNzAgMTFCNztCQjdDOzExMDYgMTE3MCAxMUI3OworQkI3RDtCQjdEOzExMDYgMTE3MCAxMUI4O0JCN0Q7MTEwNiAxMTcwIDExQjg7CitCQjdFO0JCN0U7MTEwNiAxMTcwIDExQjk7QkI3RTsxMTA2IDExNzAgMTFCOTsKK0JCN0Y7QkI3RjsxMTA2IDExNzAgMTFCQTtCQjdGOzExMDYgMTE3MCAxMUJBOworQkI4MDtCQjgwOzExMDYgMTE3MCAxMUJCO0JCODA7MTEwNiAxMTcwIDExQkI7CitCQjgxO0JCODE7MTEwNiAxMTcwIDExQkM7QkI4MTsxMTA2IDExNzAgMTFCQzsKK0JCODI7QkI4MjsxMTA2IDExNzAgMTFCRDtCQjgyOzExMDYgMTE3MCAxMUJEOworQkI4MztCQjgzOzExMDYgMTE3MCAxMUJFO0JCODM7MTEwNiAxMTcwIDExQkU7CitCQjg0O0JCODQ7MTEwNiAxMTcwIDExQkY7QkI4NDsxMTA2IDExNzAgMTFCRjsKK0JCODU7QkI4NTsxMTA2IDExNzAgMTFDMDtCQjg1OzExMDYgMTE3MCAxMUMwOworQkI4NjtCQjg2OzExMDYgMTE3MCAxMUMxO0JCODY7MTEwNiAxMTcwIDExQzE7CitCQjg3O0JCODc7MTEwNiAxMTcwIDExQzI7QkI4NzsxMTA2IDExNzAgMTFDMjsKK0JCODg7QkI4ODsxMTA2IDExNzE7QkI4ODsxMTA2IDExNzE7CitCQjg5O0JCODk7MTEwNiAxMTcxIDExQTg7QkI4OTsxMTA2IDExNzEgMTFBODsKK0JCOEE7QkI4QTsxMTA2IDExNzEgMTFBOTtCQjhBOzExMDYgMTE3MSAxMUE5OworQkI4QjtCQjhCOzExMDYgMTE3MSAxMUFBO0JCOEI7MTEwNiAxMTcxIDExQUE7CitCQjhDO0JCOEM7MTEwNiAxMTcxIDExQUI7QkI4QzsxMTA2IDExNzEgMTFBQjsKK0JCOEQ7QkI4RDsxMTA2IDExNzEgMTFBQztCQjhEOzExMDYgMTE3MSAxMUFDOworQkI4RTtCQjhFOzExMDYgMTE3MSAxMUFEO0JCOEU7MTEwNiAxMTcxIDExQUQ7CitCQjhGO0JCOEY7MTEwNiAxMTcxIDExQUU7QkI4RjsxMTA2IDExNzEgMTFBRTsKK0JCOTA7QkI5MDsxMTA2IDExNzEgMTFBRjtCQjkwOzExMDYgMTE3MSAxMUFGOworQkI5MTtCQjkxOzExMDYgMTE3MSAxMUIwO0JCOTE7MTEwNiAxMTcxIDExQjA7CitCQjkyO0JCOTI7MTEwNiAxMTcxIDExQjE7QkI5MjsxMTA2IDExNzEgMTFCMTsKK0JCOTM7QkI5MzsxMTA2IDExNzEgMTFCMjtCQjkzOzExMDYgMTE3MSAxMUIyOworQkI5NDtCQjk0OzExMDYgMTE3MSAxMUIzO0JCOTQ7MTEwNiAxMTcxIDExQjM7CitCQjk1O0JCOTU7MTEwNiAxMTcxIDExQjQ7QkI5NTsxMTA2IDExNzEgMTFCNDsKK0JCOTY7QkI5NjsxMTA2IDExNzEgMTFCNTtCQjk2OzExMDYgMTE3MSAxMUI1OworQkI5NztCQjk3OzExMDYgMTE3MSAxMUI2O0JCOTc7MTEwNiAxMTcxIDExQjY7CitCQjk4O0JCOTg7MTEwNiAxMTcxIDExQjc7QkI5ODsxMTA2IDExNzEgMTFCNzsKK0JCOTk7QkI5OTsxMTA2IDExNzEgMTFCODtCQjk5OzExMDYgMTE3MSAxMUI4OworQkI5QTtCQjlBOzExMDYgMTE3MSAxMUI5O0JCOUE7MTEwNiAxMTcxIDExQjk7CitCQjlCO0JCOUI7MTEwNiAxMTcxIDExQkE7QkI5QjsxMTA2IDExNzEgMTFCQTsKK0JCOUM7QkI5QzsxMTA2IDExNzEgMTFCQjtCQjlDOzExMDYgMTE3MSAxMUJCOworQkI5RDtCQjlEOzExMDYgMTE3MSAxMUJDO0JCOUQ7MTEwNiAxMTcxIDExQkM7CitCQjlFO0JCOUU7MTEwNiAxMTcxIDExQkQ7QkI5RTsxMTA2IDExNzEgMTFCRDsKK0JCOUY7QkI5RjsxMTA2IDExNzEgMTFCRTtCQjlGOzExMDYgMTE3MSAxMUJFOworQkJBMDtCQkEwOzExMDYgMTE3MSAxMUJGO0JCQTA7MTEwNiAxMTcxIDExQkY7CitCQkExO0JCQTE7MTEwNiAxMTcxIDExQzA7QkJBMTsxMTA2IDExNzEgMTFDMDsKK0JCQTI7QkJBMjsxMTA2IDExNzEgMTFDMTtCQkEyOzExMDYgMTE3MSAxMUMxOworQkJBMztCQkEzOzExMDYgMTE3MSAxMUMyO0JCQTM7MTEwNiAxMTcxIDExQzI7CitCQkE0O0JCQTQ7MTEwNiAxMTcyO0JCQTQ7MTEwNiAxMTcyOworQkJBNTtCQkE1OzExMDYgMTE3MiAxMUE4O0JCQTU7MTEwNiAxMTcyIDExQTg7CitCQkE2O0JCQTY7MTEwNiAxMTcyIDExQTk7QkJBNjsxMTA2IDExNzIgMTFBOTsKK0JCQTc7QkJBNzsxMTA2IDExNzIgMTFBQTtCQkE3OzExMDYgMTE3MiAxMUFBOworQkJBODtCQkE4OzExMDYgMTE3MiAxMUFCO0JCQTg7MTEwNiAxMTcyIDExQUI7CitCQkE5O0JCQTk7MTEwNiAxMTcyIDExQUM7QkJBOTsxMTA2IDExNzIgMTFBQzsKK0JCQUE7QkJBQTsxMTA2IDExNzIgMTFBRDtCQkFBOzExMDYgMTE3MiAxMUFEOworQkJBQjtCQkFCOzExMDYgMTE3MiAxMUFFO0JCQUI7MTEwNiAxMTcyIDExQUU7CitCQkFDO0JCQUM7MTEwNiAxMTcyIDExQUY7QkJBQzsxMTA2IDExNzIgMTFBRjsKK0JCQUQ7QkJBRDsxMTA2IDExNzIgMTFCMDtCQkFEOzExMDYgMTE3MiAxMUIwOworQkJBRTtCQkFFOzExMDYgMTE3MiAxMUIxO0JCQUU7MTEwNiAxMTcyIDExQjE7CitCQkFGO0JCQUY7MTEwNiAxMTcyIDExQjI7QkJBRjsxMTA2IDExNzIgMTFCMjsKK0JCQjA7QkJCMDsxMTA2IDExNzIgMTFCMztCQkIwOzExMDYgMTE3MiAxMUIzOworQkJCMTtCQkIxOzExMDYgMTE3MiAxMUI0O0JCQjE7MTEwNiAxMTcyIDExQjQ7CitCQkIyO0JCQjI7MTEwNiAxMTcyIDExQjU7QkJCMjsxMTA2IDExNzIgMTFCNTsKK0JCQjM7QkJCMzsxMTA2IDExNzIgMTFCNjtCQkIzOzExMDYgMTE3MiAxMUI2OworQkJCNDtCQkI0OzExMDYgMTE3MiAxMUI3O0JCQjQ7MTEwNiAxMTcyIDExQjc7CitCQkI1O0JCQjU7MTEwNiAxMTcyIDExQjg7QkJCNTsxMTA2IDExNzIgMTFCODsKK0JCQjY7QkJCNjsxMTA2IDExNzIgMTFCOTtCQkI2OzExMDYgMTE3MiAxMUI5OworQkJCNztCQkI3OzExMDYgMTE3MiAxMUJBO0JCQjc7MTEwNiAxMTcyIDExQkE7CitCQkI4O0JCQjg7MTEwNiAxMTcyIDExQkI7QkJCODsxMTA2IDExNzIgMTFCQjsKK0JCQjk7QkJCOTsxMTA2IDExNzIgMTFCQztCQkI5OzExMDYgMTE3MiAxMUJDOworQkJCQTtCQkJBOzExMDYgMTE3MiAxMUJEO0JCQkE7MTEwNiAxMTcyIDExQkQ7CitCQkJCO0JCQkI7MTEwNiAxMTcyIDExQkU7QkJCQjsxMTA2IDExNzIgMTFCRTsKK0JCQkM7QkJCQzsxMTA2IDExNzIgMTFCRjtCQkJDOzExMDYgMTE3MiAxMUJGOworQkJCRDtCQkJEOzExMDYgMTE3MiAxMUMwO0JCQkQ7MTEwNiAxMTcyIDExQzA7CitCQkJFO0JCQkU7MTEwNiAxMTcyIDExQzE7QkJCRTsxMTA2IDExNzIgMTFDMTsKK0JCQkY7QkJCRjsxMTA2IDExNzIgMTFDMjtCQkJGOzExMDYgMTE3MiAxMUMyOworQkJDMDtCQkMwOzExMDYgMTE3MztCQkMwOzExMDYgMTE3MzsKK0JCQzE7QkJDMTsxMTA2IDExNzMgMTFBODtCQkMxOzExMDYgMTE3MyAxMUE4OworQkJDMjtCQkMyOzExMDYgMTE3MyAxMUE5O0JCQzI7MTEwNiAxMTczIDExQTk7CitCQkMzO0JCQzM7MTEwNiAxMTczIDExQUE7QkJDMzsxMTA2IDExNzMgMTFBQTsKK0JCQzQ7QkJDNDsxMTA2IDExNzMgMTFBQjtCQkM0OzExMDYgMTE3MyAxMUFCOworQkJDNTtCQkM1OzExMDYgMTE3MyAxMUFDO0JCQzU7MTEwNiAxMTczIDExQUM7CitCQkM2O0JCQzY7MTEwNiAxMTczIDExQUQ7QkJDNjsxMTA2IDExNzMgMTFBRDsKK0JCQzc7QkJDNzsxMTA2IDExNzMgMTFBRTtCQkM3OzExMDYgMTE3MyAxMUFFOworQkJDODtCQkM4OzExMDYgMTE3MyAxMUFGO0JCQzg7MTEwNiAxMTczIDExQUY7CitCQkM5O0JCQzk7MTEwNiAxMTczIDExQjA7QkJDOTsxMTA2IDExNzMgMTFCMDsKK0JCQ0E7QkJDQTsxMTA2IDExNzMgMTFCMTtCQkNBOzExMDYgMTE3MyAxMUIxOworQkJDQjtCQkNCOzExMDYgMTE3MyAxMUIyO0JCQ0I7MTEwNiAxMTczIDExQjI7CitCQkNDO0JCQ0M7MTEwNiAxMTczIDExQjM7QkJDQzsxMTA2IDExNzMgMTFCMzsKK0JCQ0Q7QkJDRDsxMTA2IDExNzMgMTFCNDtCQkNEOzExMDYgMTE3MyAxMUI0OworQkJDRTtCQkNFOzExMDYgMTE3MyAxMUI1O0JCQ0U7MTEwNiAxMTczIDExQjU7CitCQkNGO0JCQ0Y7MTEwNiAxMTczIDExQjY7QkJDRjsxMTA2IDExNzMgMTFCNjsKK0JCRDA7QkJEMDsxMTA2IDExNzMgMTFCNztCQkQwOzExMDYgMTE3MyAxMUI3OworQkJEMTtCQkQxOzExMDYgMTE3MyAxMUI4O0JCRDE7MTEwNiAxMTczIDExQjg7CitCQkQyO0JCRDI7MTEwNiAxMTczIDExQjk7QkJEMjsxMTA2IDExNzMgMTFCOTsKK0JCRDM7QkJEMzsxMTA2IDExNzMgMTFCQTtCQkQzOzExMDYgMTE3MyAxMUJBOworQkJENDtCQkQ0OzExMDYgMTE3MyAxMUJCO0JCRDQ7MTEwNiAxMTczIDExQkI7CitCQkQ1O0JCRDU7MTEwNiAxMTczIDExQkM7QkJENTsxMTA2IDExNzMgMTFCQzsKK0JCRDY7QkJENjsxMTA2IDExNzMgMTFCRDtCQkQ2OzExMDYgMTE3MyAxMUJEOworQkJENztCQkQ3OzExMDYgMTE3MyAxMUJFO0JCRDc7MTEwNiAxMTczIDExQkU7CitCQkQ4O0JCRDg7MTEwNiAxMTczIDExQkY7QkJEODsxMTA2IDExNzMgMTFCRjsKK0JCRDk7QkJEOTsxMTA2IDExNzMgMTFDMDtCQkQ5OzExMDYgMTE3MyAxMUMwOworQkJEQTtCQkRBOzExMDYgMTE3MyAxMUMxO0JCREE7MTEwNiAxMTczIDExQzE7CitCQkRCO0JCREI7MTEwNiAxMTczIDExQzI7QkJEQjsxMTA2IDExNzMgMTFDMjsKK0JCREM7QkJEQzsxMTA2IDExNzQ7QkJEQzsxMTA2IDExNzQ7CitCQkREO0JCREQ7MTEwNiAxMTc0IDExQTg7QkJERDsxMTA2IDExNzQgMTFBODsKK0JCREU7QkJERTsxMTA2IDExNzQgMTFBOTtCQkRFOzExMDYgMTE3NCAxMUE5OworQkJERjtCQkRGOzExMDYgMTE3NCAxMUFBO0JCREY7MTEwNiAxMTc0IDExQUE7CitCQkUwO0JCRTA7MTEwNiAxMTc0IDExQUI7QkJFMDsxMTA2IDExNzQgMTFBQjsKK0JCRTE7QkJFMTsxMTA2IDExNzQgMTFBQztCQkUxOzExMDYgMTE3NCAxMUFDOworQkJFMjtCQkUyOzExMDYgMTE3NCAxMUFEO0JCRTI7MTEwNiAxMTc0IDExQUQ7CitCQkUzO0JCRTM7MTEwNiAxMTc0IDExQUU7QkJFMzsxMTA2IDExNzQgMTFBRTsKK0JCRTQ7QkJFNDsxMTA2IDExNzQgMTFBRjtCQkU0OzExMDYgMTE3NCAxMUFGOworQkJFNTtCQkU1OzExMDYgMTE3NCAxMUIwO0JCRTU7MTEwNiAxMTc0IDExQjA7CitCQkU2O0JCRTY7MTEwNiAxMTc0IDExQjE7QkJFNjsxMTA2IDExNzQgMTFCMTsKK0JCRTc7QkJFNzsxMTA2IDExNzQgMTFCMjtCQkU3OzExMDYgMTE3NCAxMUIyOworQkJFODtCQkU4OzExMDYgMTE3NCAxMUIzO0JCRTg7MTEwNiAxMTc0IDExQjM7CitCQkU5O0JCRTk7MTEwNiAxMTc0IDExQjQ7QkJFOTsxMTA2IDExNzQgMTFCNDsKK0JCRUE7QkJFQTsxMTA2IDExNzQgMTFCNTtCQkVBOzExMDYgMTE3NCAxMUI1OworQkJFQjtCQkVCOzExMDYgMTE3NCAxMUI2O0JCRUI7MTEwNiAxMTc0IDExQjY7CitCQkVDO0JCRUM7MTEwNiAxMTc0IDExQjc7QkJFQzsxMTA2IDExNzQgMTFCNzsKK0JCRUQ7QkJFRDsxMTA2IDExNzQgMTFCODtCQkVEOzExMDYgMTE3NCAxMUI4OworQkJFRTtCQkVFOzExMDYgMTE3NCAxMUI5O0JCRUU7MTEwNiAxMTc0IDExQjk7CitCQkVGO0JCRUY7MTEwNiAxMTc0IDExQkE7QkJFRjsxMTA2IDExNzQgMTFCQTsKK0JCRjA7QkJGMDsxMTA2IDExNzQgMTFCQjtCQkYwOzExMDYgMTE3NCAxMUJCOworQkJGMTtCQkYxOzExMDYgMTE3NCAxMUJDO0JCRjE7MTEwNiAxMTc0IDExQkM7CitCQkYyO0JCRjI7MTEwNiAxMTc0IDExQkQ7QkJGMjsxMTA2IDExNzQgMTFCRDsKK0JCRjM7QkJGMzsxMTA2IDExNzQgMTFCRTtCQkYzOzExMDYgMTE3NCAxMUJFOworQkJGNDtCQkY0OzExMDYgMTE3NCAxMUJGO0JCRjQ7MTEwNiAxMTc0IDExQkY7CitCQkY1O0JCRjU7MTEwNiAxMTc0IDExQzA7QkJGNTsxMTA2IDExNzQgMTFDMDsKK0JCRjY7QkJGNjsxMTA2IDExNzQgMTFDMTtCQkY2OzExMDYgMTE3NCAxMUMxOworQkJGNztCQkY3OzExMDYgMTE3NCAxMUMyO0JCRjc7MTEwNiAxMTc0IDExQzI7CitCQkY4O0JCRjg7MTEwNiAxMTc1O0JCRjg7MTEwNiAxMTc1OworQkJGOTtCQkY5OzExMDYgMTE3NSAxMUE4O0JCRjk7MTEwNiAxMTc1IDExQTg7CitCQkZBO0JCRkE7MTEwNiAxMTc1IDExQTk7QkJGQTsxMTA2IDExNzUgMTFBOTsKK0JCRkI7QkJGQjsxMTA2IDExNzUgMTFBQTtCQkZCOzExMDYgMTE3NSAxMUFBOworQkJGQztCQkZDOzExMDYgMTE3NSAxMUFCO0JCRkM7MTEwNiAxMTc1IDExQUI7CitCQkZEO0JCRkQ7MTEwNiAxMTc1IDExQUM7QkJGRDsxMTA2IDExNzUgMTFBQzsKK0JCRkU7QkJGRTsxMTA2IDExNzUgMTFBRDtCQkZFOzExMDYgMTE3NSAxMUFEOworQkJGRjtCQkZGOzExMDYgMTE3NSAxMUFFO0JCRkY7MTEwNiAxMTc1IDExQUU7CitCQzAwO0JDMDA7MTEwNiAxMTc1IDExQUY7QkMwMDsxMTA2IDExNzUgMTFBRjsKK0JDMDE7QkMwMTsxMTA2IDExNzUgMTFCMDtCQzAxOzExMDYgMTE3NSAxMUIwOworQkMwMjtCQzAyOzExMDYgMTE3NSAxMUIxO0JDMDI7MTEwNiAxMTc1IDExQjE7CitCQzAzO0JDMDM7MTEwNiAxMTc1IDExQjI7QkMwMzsxMTA2IDExNzUgMTFCMjsKK0JDMDQ7QkMwNDsxMTA2IDExNzUgMTFCMztCQzA0OzExMDYgMTE3NSAxMUIzOworQkMwNTtCQzA1OzExMDYgMTE3NSAxMUI0O0JDMDU7MTEwNiAxMTc1IDExQjQ7CitCQzA2O0JDMDY7MTEwNiAxMTc1IDExQjU7QkMwNjsxMTA2IDExNzUgMTFCNTsKK0JDMDc7QkMwNzsxMTA2IDExNzUgMTFCNjtCQzA3OzExMDYgMTE3NSAxMUI2OworQkMwODtCQzA4OzExMDYgMTE3NSAxMUI3O0JDMDg7MTEwNiAxMTc1IDExQjc7CitCQzA5O0JDMDk7MTEwNiAxMTc1IDExQjg7QkMwOTsxMTA2IDExNzUgMTFCODsKK0JDMEE7QkMwQTsxMTA2IDExNzUgMTFCOTtCQzBBOzExMDYgMTE3NSAxMUI5OworQkMwQjtCQzBCOzExMDYgMTE3NSAxMUJBO0JDMEI7MTEwNiAxMTc1IDExQkE7CitCQzBDO0JDMEM7MTEwNiAxMTc1IDExQkI7QkMwQzsxMTA2IDExNzUgMTFCQjsKK0JDMEQ7QkMwRDsxMTA2IDExNzUgMTFCQztCQzBEOzExMDYgMTE3NSAxMUJDOworQkMwRTtCQzBFOzExMDYgMTE3NSAxMUJEO0JDMEU7MTEwNiAxMTc1IDExQkQ7CitCQzBGO0JDMEY7MTEwNiAxMTc1IDExQkU7QkMwRjsxMTA2IDExNzUgMTFCRTsKK0JDMTA7QkMxMDsxMTA2IDExNzUgMTFCRjtCQzEwOzExMDYgMTE3NSAxMUJGOworQkMxMTtCQzExOzExMDYgMTE3NSAxMUMwO0JDMTE7MTEwNiAxMTc1IDExQzA7CitCQzEyO0JDMTI7MTEwNiAxMTc1IDExQzE7QkMxMjsxMTA2IDExNzUgMTFDMTsKK0JDMTM7QkMxMzsxMTA2IDExNzUgMTFDMjtCQzEzOzExMDYgMTE3NSAxMUMyOworQkMxNDtCQzE0OzExMDcgMTE2MTtCQzE0OzExMDcgMTE2MTsKK0JDMTU7QkMxNTsxMTA3IDExNjEgMTFBODtCQzE1OzExMDcgMTE2MSAxMUE4OworQkMxNjtCQzE2OzExMDcgMTE2MSAxMUE5O0JDMTY7MTEwNyAxMTYxIDExQTk7CitCQzE3O0JDMTc7MTEwNyAxMTYxIDExQUE7QkMxNzsxMTA3IDExNjEgMTFBQTsKK0JDMTg7QkMxODsxMTA3IDExNjEgMTFBQjtCQzE4OzExMDcgMTE2MSAxMUFCOworQkMxOTtCQzE5OzExMDcgMTE2MSAxMUFDO0JDMTk7MTEwNyAxMTYxIDExQUM7CitCQzFBO0JDMUE7MTEwNyAxMTYxIDExQUQ7QkMxQTsxMTA3IDExNjEgMTFBRDsKK0JDMUI7QkMxQjsxMTA3IDExNjEgMTFBRTtCQzFCOzExMDcgMTE2MSAxMUFFOworQkMxQztCQzFDOzExMDcgMTE2MSAxMUFGO0JDMUM7MTEwNyAxMTYxIDExQUY7CitCQzFEO0JDMUQ7MTEwNyAxMTYxIDExQjA7QkMxRDsxMTA3IDExNjEgMTFCMDsKK0JDMUU7QkMxRTsxMTA3IDExNjEgMTFCMTtCQzFFOzExMDcgMTE2MSAxMUIxOworQkMxRjtCQzFGOzExMDcgMTE2MSAxMUIyO0JDMUY7MTEwNyAxMTYxIDExQjI7CitCQzIwO0JDMjA7MTEwNyAxMTYxIDExQjM7QkMyMDsxMTA3IDExNjEgMTFCMzsKK0JDMjE7QkMyMTsxMTA3IDExNjEgMTFCNDtCQzIxOzExMDcgMTE2MSAxMUI0OworQkMyMjtCQzIyOzExMDcgMTE2MSAxMUI1O0JDMjI7MTEwNyAxMTYxIDExQjU7CitCQzIzO0JDMjM7MTEwNyAxMTYxIDExQjY7QkMyMzsxMTA3IDExNjEgMTFCNjsKK0JDMjQ7QkMyNDsxMTA3IDExNjEgMTFCNztCQzI0OzExMDcgMTE2MSAxMUI3OworQkMyNTtCQzI1OzExMDcgMTE2MSAxMUI4O0JDMjU7MTEwNyAxMTYxIDExQjg7CitCQzI2O0JDMjY7MTEwNyAxMTYxIDExQjk7QkMyNjsxMTA3IDExNjEgMTFCOTsKK0JDMjc7QkMyNzsxMTA3IDExNjEgMTFCQTtCQzI3OzExMDcgMTE2MSAxMUJBOworQkMyODtCQzI4OzExMDcgMTE2MSAxMUJCO0JDMjg7MTEwNyAxMTYxIDExQkI7CitCQzI5O0JDMjk7MTEwNyAxMTYxIDExQkM7QkMyOTsxMTA3IDExNjEgMTFCQzsKK0JDMkE7QkMyQTsxMTA3IDExNjEgMTFCRDtCQzJBOzExMDcgMTE2MSAxMUJEOworQkMyQjtCQzJCOzExMDcgMTE2MSAxMUJFO0JDMkI7MTEwNyAxMTYxIDExQkU7CitCQzJDO0JDMkM7MTEwNyAxMTYxIDExQkY7QkMyQzsxMTA3IDExNjEgMTFCRjsKK0JDMkQ7QkMyRDsxMTA3IDExNjEgMTFDMDtCQzJEOzExMDcgMTE2MSAxMUMwOworQkMyRTtCQzJFOzExMDcgMTE2MSAxMUMxO0JDMkU7MTEwNyAxMTYxIDExQzE7CitCQzJGO0JDMkY7MTEwNyAxMTYxIDExQzI7QkMyRjsxMTA3IDExNjEgMTFDMjsKK0JDMzA7QkMzMDsxMTA3IDExNjI7QkMzMDsxMTA3IDExNjI7CitCQzMxO0JDMzE7MTEwNyAxMTYyIDExQTg7QkMzMTsxMTA3IDExNjIgMTFBODsKK0JDMzI7QkMzMjsxMTA3IDExNjIgMTFBOTtCQzMyOzExMDcgMTE2MiAxMUE5OworQkMzMztCQzMzOzExMDcgMTE2MiAxMUFBO0JDMzM7MTEwNyAxMTYyIDExQUE7CitCQzM0O0JDMzQ7MTEwNyAxMTYyIDExQUI7QkMzNDsxMTA3IDExNjIgMTFBQjsKK0JDMzU7QkMzNTsxMTA3IDExNjIgMTFBQztCQzM1OzExMDcgMTE2MiAxMUFDOworQkMzNjtCQzM2OzExMDcgMTE2MiAxMUFEO0JDMzY7MTEwNyAxMTYyIDExQUQ7CitCQzM3O0JDMzc7MTEwNyAxMTYyIDExQUU7QkMzNzsxMTA3IDExNjIgMTFBRTsKK0JDMzg7QkMzODsxMTA3IDExNjIgMTFBRjtCQzM4OzExMDcgMTE2MiAxMUFGOworQkMzOTtCQzM5OzExMDcgMTE2MiAxMUIwO0JDMzk7MTEwNyAxMTYyIDExQjA7CitCQzNBO0JDM0E7MTEwNyAxMTYyIDExQjE7QkMzQTsxMTA3IDExNjIgMTFCMTsKK0JDM0I7QkMzQjsxMTA3IDExNjIgMTFCMjtCQzNCOzExMDcgMTE2MiAxMUIyOworQkMzQztCQzNDOzExMDcgMTE2MiAxMUIzO0JDM0M7MTEwNyAxMTYyIDExQjM7CitCQzNEO0JDM0Q7MTEwNyAxMTYyIDExQjQ7QkMzRDsxMTA3IDExNjIgMTFCNDsKK0JDM0U7QkMzRTsxMTA3IDExNjIgMTFCNTtCQzNFOzExMDcgMTE2MiAxMUI1OworQkMzRjtCQzNGOzExMDcgMTE2MiAxMUI2O0JDM0Y7MTEwNyAxMTYyIDExQjY7CitCQzQwO0JDNDA7MTEwNyAxMTYyIDExQjc7QkM0MDsxMTA3IDExNjIgMTFCNzsKK0JDNDE7QkM0MTsxMTA3IDExNjIgMTFCODtCQzQxOzExMDcgMTE2MiAxMUI4OworQkM0MjtCQzQyOzExMDcgMTE2MiAxMUI5O0JDNDI7MTEwNyAxMTYyIDExQjk7CitCQzQzO0JDNDM7MTEwNyAxMTYyIDExQkE7QkM0MzsxMTA3IDExNjIgMTFCQTsKK0JDNDQ7QkM0NDsxMTA3IDExNjIgMTFCQjtCQzQ0OzExMDcgMTE2MiAxMUJCOworQkM0NTtCQzQ1OzExMDcgMTE2MiAxMUJDO0JDNDU7MTEwNyAxMTYyIDExQkM7CitCQzQ2O0JDNDY7MTEwNyAxMTYyIDExQkQ7QkM0NjsxMTA3IDExNjIgMTFCRDsKK0JDNDc7QkM0NzsxMTA3IDExNjIgMTFCRTtCQzQ3OzExMDcgMTE2MiAxMUJFOworQkM0ODtCQzQ4OzExMDcgMTE2MiAxMUJGO0JDNDg7MTEwNyAxMTYyIDExQkY7CitCQzQ5O0JDNDk7MTEwNyAxMTYyIDExQzA7QkM0OTsxMTA3IDExNjIgMTFDMDsKK0JDNEE7QkM0QTsxMTA3IDExNjIgMTFDMTtCQzRBOzExMDcgMTE2MiAxMUMxOworQkM0QjtCQzRCOzExMDcgMTE2MiAxMUMyO0JDNEI7MTEwNyAxMTYyIDExQzI7CitCQzRDO0JDNEM7MTEwNyAxMTYzO0JDNEM7MTEwNyAxMTYzOworQkM0RDtCQzREOzExMDcgMTE2MyAxMUE4O0JDNEQ7MTEwNyAxMTYzIDExQTg7CitCQzRFO0JDNEU7MTEwNyAxMTYzIDExQTk7QkM0RTsxMTA3IDExNjMgMTFBOTsKK0JDNEY7QkM0RjsxMTA3IDExNjMgMTFBQTtCQzRGOzExMDcgMTE2MyAxMUFBOworQkM1MDtCQzUwOzExMDcgMTE2MyAxMUFCO0JDNTA7MTEwNyAxMTYzIDExQUI7CitCQzUxO0JDNTE7MTEwNyAxMTYzIDExQUM7QkM1MTsxMTA3IDExNjMgMTFBQzsKK0JDNTI7QkM1MjsxMTA3IDExNjMgMTFBRDtCQzUyOzExMDcgMTE2MyAxMUFEOworQkM1MztCQzUzOzExMDcgMTE2MyAxMUFFO0JDNTM7MTEwNyAxMTYzIDExQUU7CitCQzU0O0JDNTQ7MTEwNyAxMTYzIDExQUY7QkM1NDsxMTA3IDExNjMgMTFBRjsKK0JDNTU7QkM1NTsxMTA3IDExNjMgMTFCMDtCQzU1OzExMDcgMTE2MyAxMUIwOworQkM1NjtCQzU2OzExMDcgMTE2MyAxMUIxO0JDNTY7MTEwNyAxMTYzIDExQjE7CitCQzU3O0JDNTc7MTEwNyAxMTYzIDExQjI7QkM1NzsxMTA3IDExNjMgMTFCMjsKK0JDNTg7QkM1ODsxMTA3IDExNjMgMTFCMztCQzU4OzExMDcgMTE2MyAxMUIzOworQkM1OTtCQzU5OzExMDcgMTE2MyAxMUI0O0JDNTk7MTEwNyAxMTYzIDExQjQ7CitCQzVBO0JDNUE7MTEwNyAxMTYzIDExQjU7QkM1QTsxMTA3IDExNjMgMTFCNTsKK0JDNUI7QkM1QjsxMTA3IDExNjMgMTFCNjtCQzVCOzExMDcgMTE2MyAxMUI2OworQkM1QztCQzVDOzExMDcgMTE2MyAxMUI3O0JDNUM7MTEwNyAxMTYzIDExQjc7CitCQzVEO0JDNUQ7MTEwNyAxMTYzIDExQjg7QkM1RDsxMTA3IDExNjMgMTFCODsKK0JDNUU7QkM1RTsxMTA3IDExNjMgMTFCOTtCQzVFOzExMDcgMTE2MyAxMUI5OworQkM1RjtCQzVGOzExMDcgMTE2MyAxMUJBO0JDNUY7MTEwNyAxMTYzIDExQkE7CitCQzYwO0JDNjA7MTEwNyAxMTYzIDExQkI7QkM2MDsxMTA3IDExNjMgMTFCQjsKK0JDNjE7QkM2MTsxMTA3IDExNjMgMTFCQztCQzYxOzExMDcgMTE2MyAxMUJDOworQkM2MjtCQzYyOzExMDcgMTE2MyAxMUJEO0JDNjI7MTEwNyAxMTYzIDExQkQ7CitCQzYzO0JDNjM7MTEwNyAxMTYzIDExQkU7QkM2MzsxMTA3IDExNjMgMTFCRTsKK0JDNjQ7QkM2NDsxMTA3IDExNjMgMTFCRjtCQzY0OzExMDcgMTE2MyAxMUJGOworQkM2NTtCQzY1OzExMDcgMTE2MyAxMUMwO0JDNjU7MTEwNyAxMTYzIDExQzA7CitCQzY2O0JDNjY7MTEwNyAxMTYzIDExQzE7QkM2NjsxMTA3IDExNjMgMTFDMTsKK0JDNjc7QkM2NzsxMTA3IDExNjMgMTFDMjtCQzY3OzExMDcgMTE2MyAxMUMyOworQkM2ODtCQzY4OzExMDcgMTE2NDtCQzY4OzExMDcgMTE2NDsKK0JDNjk7QkM2OTsxMTA3IDExNjQgMTFBODtCQzY5OzExMDcgMTE2NCAxMUE4OworQkM2QTtCQzZBOzExMDcgMTE2NCAxMUE5O0JDNkE7MTEwNyAxMTY0IDExQTk7CitCQzZCO0JDNkI7MTEwNyAxMTY0IDExQUE7QkM2QjsxMTA3IDExNjQgMTFBQTsKK0JDNkM7QkM2QzsxMTA3IDExNjQgMTFBQjtCQzZDOzExMDcgMTE2NCAxMUFCOworQkM2RDtCQzZEOzExMDcgMTE2NCAxMUFDO0JDNkQ7MTEwNyAxMTY0IDExQUM7CitCQzZFO0JDNkU7MTEwNyAxMTY0IDExQUQ7QkM2RTsxMTA3IDExNjQgMTFBRDsKK0JDNkY7QkM2RjsxMTA3IDExNjQgMTFBRTtCQzZGOzExMDcgMTE2NCAxMUFFOworQkM3MDtCQzcwOzExMDcgMTE2NCAxMUFGO0JDNzA7MTEwNyAxMTY0IDExQUY7CitCQzcxO0JDNzE7MTEwNyAxMTY0IDExQjA7QkM3MTsxMTA3IDExNjQgMTFCMDsKK0JDNzI7QkM3MjsxMTA3IDExNjQgMTFCMTtCQzcyOzExMDcgMTE2NCAxMUIxOworQkM3MztCQzczOzExMDcgMTE2NCAxMUIyO0JDNzM7MTEwNyAxMTY0IDExQjI7CitCQzc0O0JDNzQ7MTEwNyAxMTY0IDExQjM7QkM3NDsxMTA3IDExNjQgMTFCMzsKK0JDNzU7QkM3NTsxMTA3IDExNjQgMTFCNDtCQzc1OzExMDcgMTE2NCAxMUI0OworQkM3NjtCQzc2OzExMDcgMTE2NCAxMUI1O0JDNzY7MTEwNyAxMTY0IDExQjU7CitCQzc3O0JDNzc7MTEwNyAxMTY0IDExQjY7QkM3NzsxMTA3IDExNjQgMTFCNjsKK0JDNzg7QkM3ODsxMTA3IDExNjQgMTFCNztCQzc4OzExMDcgMTE2NCAxMUI3OworQkM3OTtCQzc5OzExMDcgMTE2NCAxMUI4O0JDNzk7MTEwNyAxMTY0IDExQjg7CitCQzdBO0JDN0E7MTEwNyAxMTY0IDExQjk7QkM3QTsxMTA3IDExNjQgMTFCOTsKK0JDN0I7QkM3QjsxMTA3IDExNjQgMTFCQTtCQzdCOzExMDcgMTE2NCAxMUJBOworQkM3QztCQzdDOzExMDcgMTE2NCAxMUJCO0JDN0M7MTEwNyAxMTY0IDExQkI7CitCQzdEO0JDN0Q7MTEwNyAxMTY0IDExQkM7QkM3RDsxMTA3IDExNjQgMTFCQzsKK0JDN0U7QkM3RTsxMTA3IDExNjQgMTFCRDtCQzdFOzExMDcgMTE2NCAxMUJEOworQkM3RjtCQzdGOzExMDcgMTE2NCAxMUJFO0JDN0Y7MTEwNyAxMTY0IDExQkU7CitCQzgwO0JDODA7MTEwNyAxMTY0IDExQkY7QkM4MDsxMTA3IDExNjQgMTFCRjsKK0JDODE7QkM4MTsxMTA3IDExNjQgMTFDMDtCQzgxOzExMDcgMTE2NCAxMUMwOworQkM4MjtCQzgyOzExMDcgMTE2NCAxMUMxO0JDODI7MTEwNyAxMTY0IDExQzE7CitCQzgzO0JDODM7MTEwNyAxMTY0IDExQzI7QkM4MzsxMTA3IDExNjQgMTFDMjsKK0JDODQ7QkM4NDsxMTA3IDExNjU7QkM4NDsxMTA3IDExNjU7CitCQzg1O0JDODU7MTEwNyAxMTY1IDExQTg7QkM4NTsxMTA3IDExNjUgMTFBODsKK0JDODY7QkM4NjsxMTA3IDExNjUgMTFBOTtCQzg2OzExMDcgMTE2NSAxMUE5OworQkM4NztCQzg3OzExMDcgMTE2NSAxMUFBO0JDODc7MTEwNyAxMTY1IDExQUE7CitCQzg4O0JDODg7MTEwNyAxMTY1IDExQUI7QkM4ODsxMTA3IDExNjUgMTFBQjsKK0JDODk7QkM4OTsxMTA3IDExNjUgMTFBQztCQzg5OzExMDcgMTE2NSAxMUFDOworQkM4QTtCQzhBOzExMDcgMTE2NSAxMUFEO0JDOEE7MTEwNyAxMTY1IDExQUQ7CitCQzhCO0JDOEI7MTEwNyAxMTY1IDExQUU7QkM4QjsxMTA3IDExNjUgMTFBRTsKK0JDOEM7QkM4QzsxMTA3IDExNjUgMTFBRjtCQzhDOzExMDcgMTE2NSAxMUFGOworQkM4RDtCQzhEOzExMDcgMTE2NSAxMUIwO0JDOEQ7MTEwNyAxMTY1IDExQjA7CitCQzhFO0JDOEU7MTEwNyAxMTY1IDExQjE7QkM4RTsxMTA3IDExNjUgMTFCMTsKK0JDOEY7QkM4RjsxMTA3IDExNjUgMTFCMjtCQzhGOzExMDcgMTE2NSAxMUIyOworQkM5MDtCQzkwOzExMDcgMTE2NSAxMUIzO0JDOTA7MTEwNyAxMTY1IDExQjM7CitCQzkxO0JDOTE7MTEwNyAxMTY1IDExQjQ7QkM5MTsxMTA3IDExNjUgMTFCNDsKK0JDOTI7QkM5MjsxMTA3IDExNjUgMTFCNTtCQzkyOzExMDcgMTE2NSAxMUI1OworQkM5MztCQzkzOzExMDcgMTE2NSAxMUI2O0JDOTM7MTEwNyAxMTY1IDExQjY7CitCQzk0O0JDOTQ7MTEwNyAxMTY1IDExQjc7QkM5NDsxMTA3IDExNjUgMTFCNzsKK0JDOTU7QkM5NTsxMTA3IDExNjUgMTFCODtCQzk1OzExMDcgMTE2NSAxMUI4OworQkM5NjtCQzk2OzExMDcgMTE2NSAxMUI5O0JDOTY7MTEwNyAxMTY1IDExQjk7CitCQzk3O0JDOTc7MTEwNyAxMTY1IDExQkE7QkM5NzsxMTA3IDExNjUgMTFCQTsKK0JDOTg7QkM5ODsxMTA3IDExNjUgMTFCQjtCQzk4OzExMDcgMTE2NSAxMUJCOworQkM5OTtCQzk5OzExMDcgMTE2NSAxMUJDO0JDOTk7MTEwNyAxMTY1IDExQkM7CitCQzlBO0JDOUE7MTEwNyAxMTY1IDExQkQ7QkM5QTsxMTA3IDExNjUgMTFCRDsKK0JDOUI7QkM5QjsxMTA3IDExNjUgMTFCRTtCQzlCOzExMDcgMTE2NSAxMUJFOworQkM5QztCQzlDOzExMDcgMTE2NSAxMUJGO0JDOUM7MTEwNyAxMTY1IDExQkY7CitCQzlEO0JDOUQ7MTEwNyAxMTY1IDExQzA7QkM5RDsxMTA3IDExNjUgMTFDMDsKK0JDOUU7QkM5RTsxMTA3IDExNjUgMTFDMTtCQzlFOzExMDcgMTE2NSAxMUMxOworQkM5RjtCQzlGOzExMDcgMTE2NSAxMUMyO0JDOUY7MTEwNyAxMTY1IDExQzI7CitCQ0EwO0JDQTA7MTEwNyAxMTY2O0JDQTA7MTEwNyAxMTY2OworQkNBMTtCQ0ExOzExMDcgMTE2NiAxMUE4O0JDQTE7MTEwNyAxMTY2IDExQTg7CitCQ0EyO0JDQTI7MTEwNyAxMTY2IDExQTk7QkNBMjsxMTA3IDExNjYgMTFBOTsKK0JDQTM7QkNBMzsxMTA3IDExNjYgMTFBQTtCQ0EzOzExMDcgMTE2NiAxMUFBOworQkNBNDtCQ0E0OzExMDcgMTE2NiAxMUFCO0JDQTQ7MTEwNyAxMTY2IDExQUI7CitCQ0E1O0JDQTU7MTEwNyAxMTY2IDExQUM7QkNBNTsxMTA3IDExNjYgMTFBQzsKK0JDQTY7QkNBNjsxMTA3IDExNjYgMTFBRDtCQ0E2OzExMDcgMTE2NiAxMUFEOworQkNBNztCQ0E3OzExMDcgMTE2NiAxMUFFO0JDQTc7MTEwNyAxMTY2IDExQUU7CitCQ0E4O0JDQTg7MTEwNyAxMTY2IDExQUY7QkNBODsxMTA3IDExNjYgMTFBRjsKK0JDQTk7QkNBOTsxMTA3IDExNjYgMTFCMDtCQ0E5OzExMDcgMTE2NiAxMUIwOworQkNBQTtCQ0FBOzExMDcgMTE2NiAxMUIxO0JDQUE7MTEwNyAxMTY2IDExQjE7CitCQ0FCO0JDQUI7MTEwNyAxMTY2IDExQjI7QkNBQjsxMTA3IDExNjYgMTFCMjsKK0JDQUM7QkNBQzsxMTA3IDExNjYgMTFCMztCQ0FDOzExMDcgMTE2NiAxMUIzOworQkNBRDtCQ0FEOzExMDcgMTE2NiAxMUI0O0JDQUQ7MTEwNyAxMTY2IDExQjQ7CitCQ0FFO0JDQUU7MTEwNyAxMTY2IDExQjU7QkNBRTsxMTA3IDExNjYgMTFCNTsKK0JDQUY7QkNBRjsxMTA3IDExNjYgMTFCNjtCQ0FGOzExMDcgMTE2NiAxMUI2OworQkNCMDtCQ0IwOzExMDcgMTE2NiAxMUI3O0JDQjA7MTEwNyAxMTY2IDExQjc7CitCQ0IxO0JDQjE7MTEwNyAxMTY2IDExQjg7QkNCMTsxMTA3IDExNjYgMTFCODsKK0JDQjI7QkNCMjsxMTA3IDExNjYgMTFCOTtCQ0IyOzExMDcgMTE2NiAxMUI5OworQkNCMztCQ0IzOzExMDcgMTE2NiAxMUJBO0JDQjM7MTEwNyAxMTY2IDExQkE7CitCQ0I0O0JDQjQ7MTEwNyAxMTY2IDExQkI7QkNCNDsxMTA3IDExNjYgMTFCQjsKK0JDQjU7QkNCNTsxMTA3IDExNjYgMTFCQztCQ0I1OzExMDcgMTE2NiAxMUJDOworQkNCNjtCQ0I2OzExMDcgMTE2NiAxMUJEO0JDQjY7MTEwNyAxMTY2IDExQkQ7CitCQ0I3O0JDQjc7MTEwNyAxMTY2IDExQkU7QkNCNzsxMTA3IDExNjYgMTFCRTsKK0JDQjg7QkNCODsxMTA3IDExNjYgMTFCRjtCQ0I4OzExMDcgMTE2NiAxMUJGOworQkNCOTtCQ0I5OzExMDcgMTE2NiAxMUMwO0JDQjk7MTEwNyAxMTY2IDExQzA7CitCQ0JBO0JDQkE7MTEwNyAxMTY2IDExQzE7QkNCQTsxMTA3IDExNjYgMTFDMTsKK0JDQkI7QkNCQjsxMTA3IDExNjYgMTFDMjtCQ0JCOzExMDcgMTE2NiAxMUMyOworQkNCQztCQ0JDOzExMDcgMTE2NztCQ0JDOzExMDcgMTE2NzsKK0JDQkQ7QkNCRDsxMTA3IDExNjcgMTFBODtCQ0JEOzExMDcgMTE2NyAxMUE4OworQkNCRTtCQ0JFOzExMDcgMTE2NyAxMUE5O0JDQkU7MTEwNyAxMTY3IDExQTk7CitCQ0JGO0JDQkY7MTEwNyAxMTY3IDExQUE7QkNCRjsxMTA3IDExNjcgMTFBQTsKK0JDQzA7QkNDMDsxMTA3IDExNjcgMTFBQjtCQ0MwOzExMDcgMTE2NyAxMUFCOworQkNDMTtCQ0MxOzExMDcgMTE2NyAxMUFDO0JDQzE7MTEwNyAxMTY3IDExQUM7CitCQ0MyO0JDQzI7MTEwNyAxMTY3IDExQUQ7QkNDMjsxMTA3IDExNjcgMTFBRDsKK0JDQzM7QkNDMzsxMTA3IDExNjcgMTFBRTtCQ0MzOzExMDcgMTE2NyAxMUFFOworQkNDNDtCQ0M0OzExMDcgMTE2NyAxMUFGO0JDQzQ7MTEwNyAxMTY3IDExQUY7CitCQ0M1O0JDQzU7MTEwNyAxMTY3IDExQjA7QkNDNTsxMTA3IDExNjcgMTFCMDsKK0JDQzY7QkNDNjsxMTA3IDExNjcgMTFCMTtCQ0M2OzExMDcgMTE2NyAxMUIxOworQkNDNztCQ0M3OzExMDcgMTE2NyAxMUIyO0JDQzc7MTEwNyAxMTY3IDExQjI7CitCQ0M4O0JDQzg7MTEwNyAxMTY3IDExQjM7QkNDODsxMTA3IDExNjcgMTFCMzsKK0JDQzk7QkNDOTsxMTA3IDExNjcgMTFCNDtCQ0M5OzExMDcgMTE2NyAxMUI0OworQkNDQTtCQ0NBOzExMDcgMTE2NyAxMUI1O0JDQ0E7MTEwNyAxMTY3IDExQjU7CitCQ0NCO0JDQ0I7MTEwNyAxMTY3IDExQjY7QkNDQjsxMTA3IDExNjcgMTFCNjsKK0JDQ0M7QkNDQzsxMTA3IDExNjcgMTFCNztCQ0NDOzExMDcgMTE2NyAxMUI3OworQkNDRDtCQ0NEOzExMDcgMTE2NyAxMUI4O0JDQ0Q7MTEwNyAxMTY3IDExQjg7CitCQ0NFO0JDQ0U7MTEwNyAxMTY3IDExQjk7QkNDRTsxMTA3IDExNjcgMTFCOTsKK0JDQ0Y7QkNDRjsxMTA3IDExNjcgMTFCQTtCQ0NGOzExMDcgMTE2NyAxMUJBOworQkNEMDtCQ0QwOzExMDcgMTE2NyAxMUJCO0JDRDA7MTEwNyAxMTY3IDExQkI7CitCQ0QxO0JDRDE7MTEwNyAxMTY3IDExQkM7QkNEMTsxMTA3IDExNjcgMTFCQzsKK0JDRDI7QkNEMjsxMTA3IDExNjcgMTFCRDtCQ0QyOzExMDcgMTE2NyAxMUJEOworQkNEMztCQ0QzOzExMDcgMTE2NyAxMUJFO0JDRDM7MTEwNyAxMTY3IDExQkU7CitCQ0Q0O0JDRDQ7MTEwNyAxMTY3IDExQkY7QkNENDsxMTA3IDExNjcgMTFCRjsKK0JDRDU7QkNENTsxMTA3IDExNjcgMTFDMDtCQ0Q1OzExMDcgMTE2NyAxMUMwOworQkNENjtCQ0Q2OzExMDcgMTE2NyAxMUMxO0JDRDY7MTEwNyAxMTY3IDExQzE7CitCQ0Q3O0JDRDc7MTEwNyAxMTY3IDExQzI7QkNENzsxMTA3IDExNjcgMTFDMjsKK0JDRDg7QkNEODsxMTA3IDExNjg7QkNEODsxMTA3IDExNjg7CitCQ0Q5O0JDRDk7MTEwNyAxMTY4IDExQTg7QkNEOTsxMTA3IDExNjggMTFBODsKK0JDREE7QkNEQTsxMTA3IDExNjggMTFBOTtCQ0RBOzExMDcgMTE2OCAxMUE5OworQkNEQjtCQ0RCOzExMDcgMTE2OCAxMUFBO0JDREI7MTEwNyAxMTY4IDExQUE7CitCQ0RDO0JDREM7MTEwNyAxMTY4IDExQUI7QkNEQzsxMTA3IDExNjggMTFBQjsKK0JDREQ7QkNERDsxMTA3IDExNjggMTFBQztCQ0REOzExMDcgMTE2OCAxMUFDOworQkNERTtCQ0RFOzExMDcgMTE2OCAxMUFEO0JDREU7MTEwNyAxMTY4IDExQUQ7CitCQ0RGO0JDREY7MTEwNyAxMTY4IDExQUU7QkNERjsxMTA3IDExNjggMTFBRTsKK0JDRTA7QkNFMDsxMTA3IDExNjggMTFBRjtCQ0UwOzExMDcgMTE2OCAxMUFGOworQkNFMTtCQ0UxOzExMDcgMTE2OCAxMUIwO0JDRTE7MTEwNyAxMTY4IDExQjA7CitCQ0UyO0JDRTI7MTEwNyAxMTY4IDExQjE7QkNFMjsxMTA3IDExNjggMTFCMTsKK0JDRTM7QkNFMzsxMTA3IDExNjggMTFCMjtCQ0UzOzExMDcgMTE2OCAxMUIyOworQkNFNDtCQ0U0OzExMDcgMTE2OCAxMUIzO0JDRTQ7MTEwNyAxMTY4IDExQjM7CitCQ0U1O0JDRTU7MTEwNyAxMTY4IDExQjQ7QkNFNTsxMTA3IDExNjggMTFCNDsKK0JDRTY7QkNFNjsxMTA3IDExNjggMTFCNTtCQ0U2OzExMDcgMTE2OCAxMUI1OworQkNFNztCQ0U3OzExMDcgMTE2OCAxMUI2O0JDRTc7MTEwNyAxMTY4IDExQjY7CitCQ0U4O0JDRTg7MTEwNyAxMTY4IDExQjc7QkNFODsxMTA3IDExNjggMTFCNzsKK0JDRTk7QkNFOTsxMTA3IDExNjggMTFCODtCQ0U5OzExMDcgMTE2OCAxMUI4OworQkNFQTtCQ0VBOzExMDcgMTE2OCAxMUI5O0JDRUE7MTEwNyAxMTY4IDExQjk7CitCQ0VCO0JDRUI7MTEwNyAxMTY4IDExQkE7QkNFQjsxMTA3IDExNjggMTFCQTsKK0JDRUM7QkNFQzsxMTA3IDExNjggMTFCQjtCQ0VDOzExMDcgMTE2OCAxMUJCOworQkNFRDtCQ0VEOzExMDcgMTE2OCAxMUJDO0JDRUQ7MTEwNyAxMTY4IDExQkM7CitCQ0VFO0JDRUU7MTEwNyAxMTY4IDExQkQ7QkNFRTsxMTA3IDExNjggMTFCRDsKK0JDRUY7QkNFRjsxMTA3IDExNjggMTFCRTtCQ0VGOzExMDcgMTE2OCAxMUJFOworQkNGMDtCQ0YwOzExMDcgMTE2OCAxMUJGO0JDRjA7MTEwNyAxMTY4IDExQkY7CitCQ0YxO0JDRjE7MTEwNyAxMTY4IDExQzA7QkNGMTsxMTA3IDExNjggMTFDMDsKK0JDRjI7QkNGMjsxMTA3IDExNjggMTFDMTtCQ0YyOzExMDcgMTE2OCAxMUMxOworQkNGMztCQ0YzOzExMDcgMTE2OCAxMUMyO0JDRjM7MTEwNyAxMTY4IDExQzI7CitCQ0Y0O0JDRjQ7MTEwNyAxMTY5O0JDRjQ7MTEwNyAxMTY5OworQkNGNTtCQ0Y1OzExMDcgMTE2OSAxMUE4O0JDRjU7MTEwNyAxMTY5IDExQTg7CitCQ0Y2O0JDRjY7MTEwNyAxMTY5IDExQTk7QkNGNjsxMTA3IDExNjkgMTFBOTsKK0JDRjc7QkNGNzsxMTA3IDExNjkgMTFBQTtCQ0Y3OzExMDcgMTE2OSAxMUFBOworQkNGODtCQ0Y4OzExMDcgMTE2OSAxMUFCO0JDRjg7MTEwNyAxMTY5IDExQUI7CitCQ0Y5O0JDRjk7MTEwNyAxMTY5IDExQUM7QkNGOTsxMTA3IDExNjkgMTFBQzsKK0JDRkE7QkNGQTsxMTA3IDExNjkgMTFBRDtCQ0ZBOzExMDcgMTE2OSAxMUFEOworQkNGQjtCQ0ZCOzExMDcgMTE2OSAxMUFFO0JDRkI7MTEwNyAxMTY5IDExQUU7CitCQ0ZDO0JDRkM7MTEwNyAxMTY5IDExQUY7QkNGQzsxMTA3IDExNjkgMTFBRjsKK0JDRkQ7QkNGRDsxMTA3IDExNjkgMTFCMDtCQ0ZEOzExMDcgMTE2OSAxMUIwOworQkNGRTtCQ0ZFOzExMDcgMTE2OSAxMUIxO0JDRkU7MTEwNyAxMTY5IDExQjE7CitCQ0ZGO0JDRkY7MTEwNyAxMTY5IDExQjI7QkNGRjsxMTA3IDExNjkgMTFCMjsKK0JEMDA7QkQwMDsxMTA3IDExNjkgMTFCMztCRDAwOzExMDcgMTE2OSAxMUIzOworQkQwMTtCRDAxOzExMDcgMTE2OSAxMUI0O0JEMDE7MTEwNyAxMTY5IDExQjQ7CitCRDAyO0JEMDI7MTEwNyAxMTY5IDExQjU7QkQwMjsxMTA3IDExNjkgMTFCNTsKK0JEMDM7QkQwMzsxMTA3IDExNjkgMTFCNjtCRDAzOzExMDcgMTE2OSAxMUI2OworQkQwNDtCRDA0OzExMDcgMTE2OSAxMUI3O0JEMDQ7MTEwNyAxMTY5IDExQjc7CitCRDA1O0JEMDU7MTEwNyAxMTY5IDExQjg7QkQwNTsxMTA3IDExNjkgMTFCODsKK0JEMDY7QkQwNjsxMTA3IDExNjkgMTFCOTtCRDA2OzExMDcgMTE2OSAxMUI5OworQkQwNztCRDA3OzExMDcgMTE2OSAxMUJBO0JEMDc7MTEwNyAxMTY5IDExQkE7CitCRDA4O0JEMDg7MTEwNyAxMTY5IDExQkI7QkQwODsxMTA3IDExNjkgMTFCQjsKK0JEMDk7QkQwOTsxMTA3IDExNjkgMTFCQztCRDA5OzExMDcgMTE2OSAxMUJDOworQkQwQTtCRDBBOzExMDcgMTE2OSAxMUJEO0JEMEE7MTEwNyAxMTY5IDExQkQ7CitCRDBCO0JEMEI7MTEwNyAxMTY5IDExQkU7QkQwQjsxMTA3IDExNjkgMTFCRTsKK0JEMEM7QkQwQzsxMTA3IDExNjkgMTFCRjtCRDBDOzExMDcgMTE2OSAxMUJGOworQkQwRDtCRDBEOzExMDcgMTE2OSAxMUMwO0JEMEQ7MTEwNyAxMTY5IDExQzA7CitCRDBFO0JEMEU7MTEwNyAxMTY5IDExQzE7QkQwRTsxMTA3IDExNjkgMTFDMTsKK0JEMEY7QkQwRjsxMTA3IDExNjkgMTFDMjtCRDBGOzExMDcgMTE2OSAxMUMyOworQkQxMDtCRDEwOzExMDcgMTE2QTtCRDEwOzExMDcgMTE2QTsKK0JEMTE7QkQxMTsxMTA3IDExNkEgMTFBODtCRDExOzExMDcgMTE2QSAxMUE4OworQkQxMjtCRDEyOzExMDcgMTE2QSAxMUE5O0JEMTI7MTEwNyAxMTZBIDExQTk7CitCRDEzO0JEMTM7MTEwNyAxMTZBIDExQUE7QkQxMzsxMTA3IDExNkEgMTFBQTsKK0JEMTQ7QkQxNDsxMTA3IDExNkEgMTFBQjtCRDE0OzExMDcgMTE2QSAxMUFCOworQkQxNTtCRDE1OzExMDcgMTE2QSAxMUFDO0JEMTU7MTEwNyAxMTZBIDExQUM7CitCRDE2O0JEMTY7MTEwNyAxMTZBIDExQUQ7QkQxNjsxMTA3IDExNkEgMTFBRDsKK0JEMTc7QkQxNzsxMTA3IDExNkEgMTFBRTtCRDE3OzExMDcgMTE2QSAxMUFFOworQkQxODtCRDE4OzExMDcgMTE2QSAxMUFGO0JEMTg7MTEwNyAxMTZBIDExQUY7CitCRDE5O0JEMTk7MTEwNyAxMTZBIDExQjA7QkQxOTsxMTA3IDExNkEgMTFCMDsKK0JEMUE7QkQxQTsxMTA3IDExNkEgMTFCMTtCRDFBOzExMDcgMTE2QSAxMUIxOworQkQxQjtCRDFCOzExMDcgMTE2QSAxMUIyO0JEMUI7MTEwNyAxMTZBIDExQjI7CitCRDFDO0JEMUM7MTEwNyAxMTZBIDExQjM7QkQxQzsxMTA3IDExNkEgMTFCMzsKK0JEMUQ7QkQxRDsxMTA3IDExNkEgMTFCNDtCRDFEOzExMDcgMTE2QSAxMUI0OworQkQxRTtCRDFFOzExMDcgMTE2QSAxMUI1O0JEMUU7MTEwNyAxMTZBIDExQjU7CitCRDFGO0JEMUY7MTEwNyAxMTZBIDExQjY7QkQxRjsxMTA3IDExNkEgMTFCNjsKK0JEMjA7QkQyMDsxMTA3IDExNkEgMTFCNztCRDIwOzExMDcgMTE2QSAxMUI3OworQkQyMTtCRDIxOzExMDcgMTE2QSAxMUI4O0JEMjE7MTEwNyAxMTZBIDExQjg7CitCRDIyO0JEMjI7MTEwNyAxMTZBIDExQjk7QkQyMjsxMTA3IDExNkEgMTFCOTsKK0JEMjM7QkQyMzsxMTA3IDExNkEgMTFCQTtCRDIzOzExMDcgMTE2QSAxMUJBOworQkQyNDtCRDI0OzExMDcgMTE2QSAxMUJCO0JEMjQ7MTEwNyAxMTZBIDExQkI7CitCRDI1O0JEMjU7MTEwNyAxMTZBIDExQkM7QkQyNTsxMTA3IDExNkEgMTFCQzsKK0JEMjY7QkQyNjsxMTA3IDExNkEgMTFCRDtCRDI2OzExMDcgMTE2QSAxMUJEOworQkQyNztCRDI3OzExMDcgMTE2QSAxMUJFO0JEMjc7MTEwNyAxMTZBIDExQkU7CitCRDI4O0JEMjg7MTEwNyAxMTZBIDExQkY7QkQyODsxMTA3IDExNkEgMTFCRjsKK0JEMjk7QkQyOTsxMTA3IDExNkEgMTFDMDtCRDI5OzExMDcgMTE2QSAxMUMwOworQkQyQTtCRDJBOzExMDcgMTE2QSAxMUMxO0JEMkE7MTEwNyAxMTZBIDExQzE7CitCRDJCO0JEMkI7MTEwNyAxMTZBIDExQzI7QkQyQjsxMTA3IDExNkEgMTFDMjsKK0JEMkM7QkQyQzsxMTA3IDExNkI7QkQyQzsxMTA3IDExNkI7CitCRDJEO0JEMkQ7MTEwNyAxMTZCIDExQTg7QkQyRDsxMTA3IDExNkIgMTFBODsKK0JEMkU7QkQyRTsxMTA3IDExNkIgMTFBOTtCRDJFOzExMDcgMTE2QiAxMUE5OworQkQyRjtCRDJGOzExMDcgMTE2QiAxMUFBO0JEMkY7MTEwNyAxMTZCIDExQUE7CitCRDMwO0JEMzA7MTEwNyAxMTZCIDExQUI7QkQzMDsxMTA3IDExNkIgMTFBQjsKK0JEMzE7QkQzMTsxMTA3IDExNkIgMTFBQztCRDMxOzExMDcgMTE2QiAxMUFDOworQkQzMjtCRDMyOzExMDcgMTE2QiAxMUFEO0JEMzI7MTEwNyAxMTZCIDExQUQ7CitCRDMzO0JEMzM7MTEwNyAxMTZCIDExQUU7QkQzMzsxMTA3IDExNkIgMTFBRTsKK0JEMzQ7QkQzNDsxMTA3IDExNkIgMTFBRjtCRDM0OzExMDcgMTE2QiAxMUFGOworQkQzNTtCRDM1OzExMDcgMTE2QiAxMUIwO0JEMzU7MTEwNyAxMTZCIDExQjA7CitCRDM2O0JEMzY7MTEwNyAxMTZCIDExQjE7QkQzNjsxMTA3IDExNkIgMTFCMTsKK0JEMzc7QkQzNzsxMTA3IDExNkIgMTFCMjtCRDM3OzExMDcgMTE2QiAxMUIyOworQkQzODtCRDM4OzExMDcgMTE2QiAxMUIzO0JEMzg7MTEwNyAxMTZCIDExQjM7CitCRDM5O0JEMzk7MTEwNyAxMTZCIDExQjQ7QkQzOTsxMTA3IDExNkIgMTFCNDsKK0JEM0E7QkQzQTsxMTA3IDExNkIgMTFCNTtCRDNBOzExMDcgMTE2QiAxMUI1OworQkQzQjtCRDNCOzExMDcgMTE2QiAxMUI2O0JEM0I7MTEwNyAxMTZCIDExQjY7CitCRDNDO0JEM0M7MTEwNyAxMTZCIDExQjc7QkQzQzsxMTA3IDExNkIgMTFCNzsKK0JEM0Q7QkQzRDsxMTA3IDExNkIgMTFCODtCRDNEOzExMDcgMTE2QiAxMUI4OworQkQzRTtCRDNFOzExMDcgMTE2QiAxMUI5O0JEM0U7MTEwNyAxMTZCIDExQjk7CitCRDNGO0JEM0Y7MTEwNyAxMTZCIDExQkE7QkQzRjsxMTA3IDExNkIgMTFCQTsKK0JENDA7QkQ0MDsxMTA3IDExNkIgMTFCQjtCRDQwOzExMDcgMTE2QiAxMUJCOworQkQ0MTtCRDQxOzExMDcgMTE2QiAxMUJDO0JENDE7MTEwNyAxMTZCIDExQkM7CitCRDQyO0JENDI7MTEwNyAxMTZCIDExQkQ7QkQ0MjsxMTA3IDExNkIgMTFCRDsKK0JENDM7QkQ0MzsxMTA3IDExNkIgMTFCRTtCRDQzOzExMDcgMTE2QiAxMUJFOworQkQ0NDtCRDQ0OzExMDcgMTE2QiAxMUJGO0JENDQ7MTEwNyAxMTZCIDExQkY7CitCRDQ1O0JENDU7MTEwNyAxMTZCIDExQzA7QkQ0NTsxMTA3IDExNkIgMTFDMDsKK0JENDY7QkQ0NjsxMTA3IDExNkIgMTFDMTtCRDQ2OzExMDcgMTE2QiAxMUMxOworQkQ0NztCRDQ3OzExMDcgMTE2QiAxMUMyO0JENDc7MTEwNyAxMTZCIDExQzI7CitCRDQ4O0JENDg7MTEwNyAxMTZDO0JENDg7MTEwNyAxMTZDOworQkQ0OTtCRDQ5OzExMDcgMTE2QyAxMUE4O0JENDk7MTEwNyAxMTZDIDExQTg7CitCRDRBO0JENEE7MTEwNyAxMTZDIDExQTk7QkQ0QTsxMTA3IDExNkMgMTFBOTsKK0JENEI7QkQ0QjsxMTA3IDExNkMgMTFBQTtCRDRCOzExMDcgMTE2QyAxMUFBOworQkQ0QztCRDRDOzExMDcgMTE2QyAxMUFCO0JENEM7MTEwNyAxMTZDIDExQUI7CitCRDREO0JENEQ7MTEwNyAxMTZDIDExQUM7QkQ0RDsxMTA3IDExNkMgMTFBQzsKK0JENEU7QkQ0RTsxMTA3IDExNkMgMTFBRDtCRDRFOzExMDcgMTE2QyAxMUFEOworQkQ0RjtCRDRGOzExMDcgMTE2QyAxMUFFO0JENEY7MTEwNyAxMTZDIDExQUU7CitCRDUwO0JENTA7MTEwNyAxMTZDIDExQUY7QkQ1MDsxMTA3IDExNkMgMTFBRjsKK0JENTE7QkQ1MTsxMTA3IDExNkMgMTFCMDtCRDUxOzExMDcgMTE2QyAxMUIwOworQkQ1MjtCRDUyOzExMDcgMTE2QyAxMUIxO0JENTI7MTEwNyAxMTZDIDExQjE7CitCRDUzO0JENTM7MTEwNyAxMTZDIDExQjI7QkQ1MzsxMTA3IDExNkMgMTFCMjsKK0JENTQ7QkQ1NDsxMTA3IDExNkMgMTFCMztCRDU0OzExMDcgMTE2QyAxMUIzOworQkQ1NTtCRDU1OzExMDcgMTE2QyAxMUI0O0JENTU7MTEwNyAxMTZDIDExQjQ7CitCRDU2O0JENTY7MTEwNyAxMTZDIDExQjU7QkQ1NjsxMTA3IDExNkMgMTFCNTsKK0JENTc7QkQ1NzsxMTA3IDExNkMgMTFCNjtCRDU3OzExMDcgMTE2QyAxMUI2OworQkQ1ODtCRDU4OzExMDcgMTE2QyAxMUI3O0JENTg7MTEwNyAxMTZDIDExQjc7CitCRDU5O0JENTk7MTEwNyAxMTZDIDExQjg7QkQ1OTsxMTA3IDExNkMgMTFCODsKK0JENUE7QkQ1QTsxMTA3IDExNkMgMTFCOTtCRDVBOzExMDcgMTE2QyAxMUI5OworQkQ1QjtCRDVCOzExMDcgMTE2QyAxMUJBO0JENUI7MTEwNyAxMTZDIDExQkE7CitCRDVDO0JENUM7MTEwNyAxMTZDIDExQkI7QkQ1QzsxMTA3IDExNkMgMTFCQjsKK0JENUQ7QkQ1RDsxMTA3IDExNkMgMTFCQztCRDVEOzExMDcgMTE2QyAxMUJDOworQkQ1RTtCRDVFOzExMDcgMTE2QyAxMUJEO0JENUU7MTEwNyAxMTZDIDExQkQ7CitCRDVGO0JENUY7MTEwNyAxMTZDIDExQkU7QkQ1RjsxMTA3IDExNkMgMTFCRTsKK0JENjA7QkQ2MDsxMTA3IDExNkMgMTFCRjtCRDYwOzExMDcgMTE2QyAxMUJGOworQkQ2MTtCRDYxOzExMDcgMTE2QyAxMUMwO0JENjE7MTEwNyAxMTZDIDExQzA7CitCRDYyO0JENjI7MTEwNyAxMTZDIDExQzE7QkQ2MjsxMTA3IDExNkMgMTFDMTsKK0JENjM7QkQ2MzsxMTA3IDExNkMgMTFDMjtCRDYzOzExMDcgMTE2QyAxMUMyOworQkQ2NDtCRDY0OzExMDcgMTE2RDtCRDY0OzExMDcgMTE2RDsKK0JENjU7QkQ2NTsxMTA3IDExNkQgMTFBODtCRDY1OzExMDcgMTE2RCAxMUE4OworQkQ2NjtCRDY2OzExMDcgMTE2RCAxMUE5O0JENjY7MTEwNyAxMTZEIDExQTk7CitCRDY3O0JENjc7MTEwNyAxMTZEIDExQUE7QkQ2NzsxMTA3IDExNkQgMTFBQTsKK0JENjg7QkQ2ODsxMTA3IDExNkQgMTFBQjtCRDY4OzExMDcgMTE2RCAxMUFCOworQkQ2OTtCRDY5OzExMDcgMTE2RCAxMUFDO0JENjk7MTEwNyAxMTZEIDExQUM7CitCRDZBO0JENkE7MTEwNyAxMTZEIDExQUQ7QkQ2QTsxMTA3IDExNkQgMTFBRDsKK0JENkI7QkQ2QjsxMTA3IDExNkQgMTFBRTtCRDZCOzExMDcgMTE2RCAxMUFFOworQkQ2QztCRDZDOzExMDcgMTE2RCAxMUFGO0JENkM7MTEwNyAxMTZEIDExQUY7CitCRDZEO0JENkQ7MTEwNyAxMTZEIDExQjA7QkQ2RDsxMTA3IDExNkQgMTFCMDsKK0JENkU7QkQ2RTsxMTA3IDExNkQgMTFCMTtCRDZFOzExMDcgMTE2RCAxMUIxOworQkQ2RjtCRDZGOzExMDcgMTE2RCAxMUIyO0JENkY7MTEwNyAxMTZEIDExQjI7CitCRDcwO0JENzA7MTEwNyAxMTZEIDExQjM7QkQ3MDsxMTA3IDExNkQgMTFCMzsKK0JENzE7QkQ3MTsxMTA3IDExNkQgMTFCNDtCRDcxOzExMDcgMTE2RCAxMUI0OworQkQ3MjtCRDcyOzExMDcgMTE2RCAxMUI1O0JENzI7MTEwNyAxMTZEIDExQjU7CitCRDczO0JENzM7MTEwNyAxMTZEIDExQjY7QkQ3MzsxMTA3IDExNkQgMTFCNjsKK0JENzQ7QkQ3NDsxMTA3IDExNkQgMTFCNztCRDc0OzExMDcgMTE2RCAxMUI3OworQkQ3NTtCRDc1OzExMDcgMTE2RCAxMUI4O0JENzU7MTEwNyAxMTZEIDExQjg7CitCRDc2O0JENzY7MTEwNyAxMTZEIDExQjk7QkQ3NjsxMTA3IDExNkQgMTFCOTsKK0JENzc7QkQ3NzsxMTA3IDExNkQgMTFCQTtCRDc3OzExMDcgMTE2RCAxMUJBOworQkQ3ODtCRDc4OzExMDcgMTE2RCAxMUJCO0JENzg7MTEwNyAxMTZEIDExQkI7CitCRDc5O0JENzk7MTEwNyAxMTZEIDExQkM7QkQ3OTsxMTA3IDExNkQgMTFCQzsKK0JEN0E7QkQ3QTsxMTA3IDExNkQgMTFCRDtCRDdBOzExMDcgMTE2RCAxMUJEOworQkQ3QjtCRDdCOzExMDcgMTE2RCAxMUJFO0JEN0I7MTEwNyAxMTZEIDExQkU7CitCRDdDO0JEN0M7MTEwNyAxMTZEIDExQkY7QkQ3QzsxMTA3IDExNkQgMTFCRjsKK0JEN0Q7QkQ3RDsxMTA3IDExNkQgMTFDMDtCRDdEOzExMDcgMTE2RCAxMUMwOworQkQ3RTtCRDdFOzExMDcgMTE2RCAxMUMxO0JEN0U7MTEwNyAxMTZEIDExQzE7CitCRDdGO0JEN0Y7MTEwNyAxMTZEIDExQzI7QkQ3RjsxMTA3IDExNkQgMTFDMjsKK0JEODA7QkQ4MDsxMTA3IDExNkU7QkQ4MDsxMTA3IDExNkU7CitCRDgxO0JEODE7MTEwNyAxMTZFIDExQTg7QkQ4MTsxMTA3IDExNkUgMTFBODsKK0JEODI7QkQ4MjsxMTA3IDExNkUgMTFBOTtCRDgyOzExMDcgMTE2RSAxMUE5OworQkQ4MztCRDgzOzExMDcgMTE2RSAxMUFBO0JEODM7MTEwNyAxMTZFIDExQUE7CitCRDg0O0JEODQ7MTEwNyAxMTZFIDExQUI7QkQ4NDsxMTA3IDExNkUgMTFBQjsKK0JEODU7QkQ4NTsxMTA3IDExNkUgMTFBQztCRDg1OzExMDcgMTE2RSAxMUFDOworQkQ4NjtCRDg2OzExMDcgMTE2RSAxMUFEO0JEODY7MTEwNyAxMTZFIDExQUQ7CitCRDg3O0JEODc7MTEwNyAxMTZFIDExQUU7QkQ4NzsxMTA3IDExNkUgMTFBRTsKK0JEODg7QkQ4ODsxMTA3IDExNkUgMTFBRjtCRDg4OzExMDcgMTE2RSAxMUFGOworQkQ4OTtCRDg5OzExMDcgMTE2RSAxMUIwO0JEODk7MTEwNyAxMTZFIDExQjA7CitCRDhBO0JEOEE7MTEwNyAxMTZFIDExQjE7QkQ4QTsxMTA3IDExNkUgMTFCMTsKK0JEOEI7QkQ4QjsxMTA3IDExNkUgMTFCMjtCRDhCOzExMDcgMTE2RSAxMUIyOworQkQ4QztCRDhDOzExMDcgMTE2RSAxMUIzO0JEOEM7MTEwNyAxMTZFIDExQjM7CitCRDhEO0JEOEQ7MTEwNyAxMTZFIDExQjQ7QkQ4RDsxMTA3IDExNkUgMTFCNDsKK0JEOEU7QkQ4RTsxMTA3IDExNkUgMTFCNTtCRDhFOzExMDcgMTE2RSAxMUI1OworQkQ4RjtCRDhGOzExMDcgMTE2RSAxMUI2O0JEOEY7MTEwNyAxMTZFIDExQjY7CitCRDkwO0JEOTA7MTEwNyAxMTZFIDExQjc7QkQ5MDsxMTA3IDExNkUgMTFCNzsKK0JEOTE7QkQ5MTsxMTA3IDExNkUgMTFCODtCRDkxOzExMDcgMTE2RSAxMUI4OworQkQ5MjtCRDkyOzExMDcgMTE2RSAxMUI5O0JEOTI7MTEwNyAxMTZFIDExQjk7CitCRDkzO0JEOTM7MTEwNyAxMTZFIDExQkE7QkQ5MzsxMTA3IDExNkUgMTFCQTsKK0JEOTQ7QkQ5NDsxMTA3IDExNkUgMTFCQjtCRDk0OzExMDcgMTE2RSAxMUJCOworQkQ5NTtCRDk1OzExMDcgMTE2RSAxMUJDO0JEOTU7MTEwNyAxMTZFIDExQkM7CitCRDk2O0JEOTY7MTEwNyAxMTZFIDExQkQ7QkQ5NjsxMTA3IDExNkUgMTFCRDsKK0JEOTc7QkQ5NzsxMTA3IDExNkUgMTFCRTtCRDk3OzExMDcgMTE2RSAxMUJFOworQkQ5ODtCRDk4OzExMDcgMTE2RSAxMUJGO0JEOTg7MTEwNyAxMTZFIDExQkY7CitCRDk5O0JEOTk7MTEwNyAxMTZFIDExQzA7QkQ5OTsxMTA3IDExNkUgMTFDMDsKK0JEOUE7QkQ5QTsxMTA3IDExNkUgMTFDMTtCRDlBOzExMDcgMTE2RSAxMUMxOworQkQ5QjtCRDlCOzExMDcgMTE2RSAxMUMyO0JEOUI7MTEwNyAxMTZFIDExQzI7CitCRDlDO0JEOUM7MTEwNyAxMTZGO0JEOUM7MTEwNyAxMTZGOworQkQ5RDtCRDlEOzExMDcgMTE2RiAxMUE4O0JEOUQ7MTEwNyAxMTZGIDExQTg7CitCRDlFO0JEOUU7MTEwNyAxMTZGIDExQTk7QkQ5RTsxMTA3IDExNkYgMTFBOTsKK0JEOUY7QkQ5RjsxMTA3IDExNkYgMTFBQTtCRDlGOzExMDcgMTE2RiAxMUFBOworQkRBMDtCREEwOzExMDcgMTE2RiAxMUFCO0JEQTA7MTEwNyAxMTZGIDExQUI7CitCREExO0JEQTE7MTEwNyAxMTZGIDExQUM7QkRBMTsxMTA3IDExNkYgMTFBQzsKK0JEQTI7QkRBMjsxMTA3IDExNkYgMTFBRDtCREEyOzExMDcgMTE2RiAxMUFEOworQkRBMztCREEzOzExMDcgMTE2RiAxMUFFO0JEQTM7MTEwNyAxMTZGIDExQUU7CitCREE0O0JEQTQ7MTEwNyAxMTZGIDExQUY7QkRBNDsxMTA3IDExNkYgMTFBRjsKK0JEQTU7QkRBNTsxMTA3IDExNkYgMTFCMDtCREE1OzExMDcgMTE2RiAxMUIwOworQkRBNjtCREE2OzExMDcgMTE2RiAxMUIxO0JEQTY7MTEwNyAxMTZGIDExQjE7CitCREE3O0JEQTc7MTEwNyAxMTZGIDExQjI7QkRBNzsxMTA3IDExNkYgMTFCMjsKK0JEQTg7QkRBODsxMTA3IDExNkYgMTFCMztCREE4OzExMDcgMTE2RiAxMUIzOworQkRBOTtCREE5OzExMDcgMTE2RiAxMUI0O0JEQTk7MTEwNyAxMTZGIDExQjQ7CitCREFBO0JEQUE7MTEwNyAxMTZGIDExQjU7QkRBQTsxMTA3IDExNkYgMTFCNTsKK0JEQUI7QkRBQjsxMTA3IDExNkYgMTFCNjtCREFCOzExMDcgMTE2RiAxMUI2OworQkRBQztCREFDOzExMDcgMTE2RiAxMUI3O0JEQUM7MTEwNyAxMTZGIDExQjc7CitCREFEO0JEQUQ7MTEwNyAxMTZGIDExQjg7QkRBRDsxMTA3IDExNkYgMTFCODsKK0JEQUU7QkRBRTsxMTA3IDExNkYgMTFCOTtCREFFOzExMDcgMTE2RiAxMUI5OworQkRBRjtCREFGOzExMDcgMTE2RiAxMUJBO0JEQUY7MTEwNyAxMTZGIDExQkE7CitCREIwO0JEQjA7MTEwNyAxMTZGIDExQkI7QkRCMDsxMTA3IDExNkYgMTFCQjsKK0JEQjE7QkRCMTsxMTA3IDExNkYgMTFCQztCREIxOzExMDcgMTE2RiAxMUJDOworQkRCMjtCREIyOzExMDcgMTE2RiAxMUJEO0JEQjI7MTEwNyAxMTZGIDExQkQ7CitCREIzO0JEQjM7MTEwNyAxMTZGIDExQkU7QkRCMzsxMTA3IDExNkYgMTFCRTsKK0JEQjQ7QkRCNDsxMTA3IDExNkYgMTFCRjtCREI0OzExMDcgMTE2RiAxMUJGOworQkRCNTtCREI1OzExMDcgMTE2RiAxMUMwO0JEQjU7MTEwNyAxMTZGIDExQzA7CitCREI2O0JEQjY7MTEwNyAxMTZGIDExQzE7QkRCNjsxMTA3IDExNkYgMTFDMTsKK0JEQjc7QkRCNzsxMTA3IDExNkYgMTFDMjtCREI3OzExMDcgMTE2RiAxMUMyOworQkRCODtCREI4OzExMDcgMTE3MDtCREI4OzExMDcgMTE3MDsKK0JEQjk7QkRCOTsxMTA3IDExNzAgMTFBODtCREI5OzExMDcgMTE3MCAxMUE4OworQkRCQTtCREJBOzExMDcgMTE3MCAxMUE5O0JEQkE7MTEwNyAxMTcwIDExQTk7CitCREJCO0JEQkI7MTEwNyAxMTcwIDExQUE7QkRCQjsxMTA3IDExNzAgMTFBQTsKK0JEQkM7QkRCQzsxMTA3IDExNzAgMTFBQjtCREJDOzExMDcgMTE3MCAxMUFCOworQkRCRDtCREJEOzExMDcgMTE3MCAxMUFDO0JEQkQ7MTEwNyAxMTcwIDExQUM7CitCREJFO0JEQkU7MTEwNyAxMTcwIDExQUQ7QkRCRTsxMTA3IDExNzAgMTFBRDsKK0JEQkY7QkRCRjsxMTA3IDExNzAgMTFBRTtCREJGOzExMDcgMTE3MCAxMUFFOworQkRDMDtCREMwOzExMDcgMTE3MCAxMUFGO0JEQzA7MTEwNyAxMTcwIDExQUY7CitCREMxO0JEQzE7MTEwNyAxMTcwIDExQjA7QkRDMTsxMTA3IDExNzAgMTFCMDsKK0JEQzI7QkRDMjsxMTA3IDExNzAgMTFCMTtCREMyOzExMDcgMTE3MCAxMUIxOworQkRDMztCREMzOzExMDcgMTE3MCAxMUIyO0JEQzM7MTEwNyAxMTcwIDExQjI7CitCREM0O0JEQzQ7MTEwNyAxMTcwIDExQjM7QkRDNDsxMTA3IDExNzAgMTFCMzsKK0JEQzU7QkRDNTsxMTA3IDExNzAgMTFCNDtCREM1OzExMDcgMTE3MCAxMUI0OworQkRDNjtCREM2OzExMDcgMTE3MCAxMUI1O0JEQzY7MTEwNyAxMTcwIDExQjU7CitCREM3O0JEQzc7MTEwNyAxMTcwIDExQjY7QkRDNzsxMTA3IDExNzAgMTFCNjsKK0JEQzg7QkRDODsxMTA3IDExNzAgMTFCNztCREM4OzExMDcgMTE3MCAxMUI3OworQkRDOTtCREM5OzExMDcgMTE3MCAxMUI4O0JEQzk7MTEwNyAxMTcwIDExQjg7CitCRENBO0JEQ0E7MTEwNyAxMTcwIDExQjk7QkRDQTsxMTA3IDExNzAgMTFCOTsKK0JEQ0I7QkRDQjsxMTA3IDExNzAgMTFCQTtCRENCOzExMDcgMTE3MCAxMUJBOworQkRDQztCRENDOzExMDcgMTE3MCAxMUJCO0JEQ0M7MTEwNyAxMTcwIDExQkI7CitCRENEO0JEQ0Q7MTEwNyAxMTcwIDExQkM7QkRDRDsxMTA3IDExNzAgMTFCQzsKK0JEQ0U7QkRDRTsxMTA3IDExNzAgMTFCRDtCRENFOzExMDcgMTE3MCAxMUJEOworQkRDRjtCRENGOzExMDcgMTE3MCAxMUJFO0JEQ0Y7MTEwNyAxMTcwIDExQkU7CitCREQwO0JERDA7MTEwNyAxMTcwIDExQkY7QkREMDsxMTA3IDExNzAgMTFCRjsKK0JERDE7QkREMTsxMTA3IDExNzAgMTFDMDtCREQxOzExMDcgMTE3MCAxMUMwOworQkREMjtCREQyOzExMDcgMTE3MCAxMUMxO0JERDI7MTEwNyAxMTcwIDExQzE7CitCREQzO0JERDM7MTEwNyAxMTcwIDExQzI7QkREMzsxMTA3IDExNzAgMTFDMjsKK0JERDQ7QkRENDsxMTA3IDExNzE7QkRENDsxMTA3IDExNzE7CitCREQ1O0JERDU7MTEwNyAxMTcxIDExQTg7QkRENTsxMTA3IDExNzEgMTFBODsKK0JERDY7QkRENjsxMTA3IDExNzEgMTFBOTtCREQ2OzExMDcgMTE3MSAxMUE5OworQkRENztCREQ3OzExMDcgMTE3MSAxMUFBO0JERDc7MTEwNyAxMTcxIDExQUE7CitCREQ4O0JERDg7MTEwNyAxMTcxIDExQUI7QkREODsxMTA3IDExNzEgMTFBQjsKK0JERDk7QkREOTsxMTA3IDExNzEgMTFBQztCREQ5OzExMDcgMTE3MSAxMUFDOworQkREQTtCRERBOzExMDcgMTE3MSAxMUFEO0JEREE7MTEwNyAxMTcxIDExQUQ7CitCRERCO0JEREI7MTEwNyAxMTcxIDExQUU7QkREQjsxMTA3IDExNzEgMTFBRTsKK0JEREM7QkREQzsxMTA3IDExNzEgMTFBRjtCRERDOzExMDcgMTE3MSAxMUFGOworQkRERDtCREREOzExMDcgMTE3MSAxMUIwO0JEREQ7MTEwNyAxMTcxIDExQjA7CitCRERFO0JEREU7MTEwNyAxMTcxIDExQjE7QkRERTsxMTA3IDExNzEgMTFCMTsKK0JEREY7QkRERjsxMTA3IDExNzEgMTFCMjtCRERGOzExMDcgMTE3MSAxMUIyOworQkRFMDtCREUwOzExMDcgMTE3MSAxMUIzO0JERTA7MTEwNyAxMTcxIDExQjM7CitCREUxO0JERTE7MTEwNyAxMTcxIDExQjQ7QkRFMTsxMTA3IDExNzEgMTFCNDsKK0JERTI7QkRFMjsxMTA3IDExNzEgMTFCNTtCREUyOzExMDcgMTE3MSAxMUI1OworQkRFMztCREUzOzExMDcgMTE3MSAxMUI2O0JERTM7MTEwNyAxMTcxIDExQjY7CitCREU0O0JERTQ7MTEwNyAxMTcxIDExQjc7QkRFNDsxMTA3IDExNzEgMTFCNzsKK0JERTU7QkRFNTsxMTA3IDExNzEgMTFCODtCREU1OzExMDcgMTE3MSAxMUI4OworQkRFNjtCREU2OzExMDcgMTE3MSAxMUI5O0JERTY7MTEwNyAxMTcxIDExQjk7CitCREU3O0JERTc7MTEwNyAxMTcxIDExQkE7QkRFNzsxMTA3IDExNzEgMTFCQTsKK0JERTg7QkRFODsxMTA3IDExNzEgMTFCQjtCREU4OzExMDcgMTE3MSAxMUJCOworQkRFOTtCREU5OzExMDcgMTE3MSAxMUJDO0JERTk7MTEwNyAxMTcxIDExQkM7CitCREVBO0JERUE7MTEwNyAxMTcxIDExQkQ7QkRFQTsxMTA3IDExNzEgMTFCRDsKK0JERUI7QkRFQjsxMTA3IDExNzEgMTFCRTtCREVCOzExMDcgMTE3MSAxMUJFOworQkRFQztCREVDOzExMDcgMTE3MSAxMUJGO0JERUM7MTEwNyAxMTcxIDExQkY7CitCREVEO0JERUQ7MTEwNyAxMTcxIDExQzA7QkRFRDsxMTA3IDExNzEgMTFDMDsKK0JERUU7QkRFRTsxMTA3IDExNzEgMTFDMTtCREVFOzExMDcgMTE3MSAxMUMxOworQkRFRjtCREVGOzExMDcgMTE3MSAxMUMyO0JERUY7MTEwNyAxMTcxIDExQzI7CitCREYwO0JERjA7MTEwNyAxMTcyO0JERjA7MTEwNyAxMTcyOworQkRGMTtCREYxOzExMDcgMTE3MiAxMUE4O0JERjE7MTEwNyAxMTcyIDExQTg7CitCREYyO0JERjI7MTEwNyAxMTcyIDExQTk7QkRGMjsxMTA3IDExNzIgMTFBOTsKK0JERjM7QkRGMzsxMTA3IDExNzIgMTFBQTtCREYzOzExMDcgMTE3MiAxMUFBOworQkRGNDtCREY0OzExMDcgMTE3MiAxMUFCO0JERjQ7MTEwNyAxMTcyIDExQUI7CitCREY1O0JERjU7MTEwNyAxMTcyIDExQUM7QkRGNTsxMTA3IDExNzIgMTFBQzsKK0JERjY7QkRGNjsxMTA3IDExNzIgMTFBRDtCREY2OzExMDcgMTE3MiAxMUFEOworQkRGNztCREY3OzExMDcgMTE3MiAxMUFFO0JERjc7MTEwNyAxMTcyIDExQUU7CitCREY4O0JERjg7MTEwNyAxMTcyIDExQUY7QkRGODsxMTA3IDExNzIgMTFBRjsKK0JERjk7QkRGOTsxMTA3IDExNzIgMTFCMDtCREY5OzExMDcgMTE3MiAxMUIwOworQkRGQTtCREZBOzExMDcgMTE3MiAxMUIxO0JERkE7MTEwNyAxMTcyIDExQjE7CitCREZCO0JERkI7MTEwNyAxMTcyIDExQjI7QkRGQjsxMTA3IDExNzIgMTFCMjsKK0JERkM7QkRGQzsxMTA3IDExNzIgMTFCMztCREZDOzExMDcgMTE3MiAxMUIzOworQkRGRDtCREZEOzExMDcgMTE3MiAxMUI0O0JERkQ7MTEwNyAxMTcyIDExQjQ7CitCREZFO0JERkU7MTEwNyAxMTcyIDExQjU7QkRGRTsxMTA3IDExNzIgMTFCNTsKK0JERkY7QkRGRjsxMTA3IDExNzIgMTFCNjtCREZGOzExMDcgMTE3MiAxMUI2OworQkUwMDtCRTAwOzExMDcgMTE3MiAxMUI3O0JFMDA7MTEwNyAxMTcyIDExQjc7CitCRTAxO0JFMDE7MTEwNyAxMTcyIDExQjg7QkUwMTsxMTA3IDExNzIgMTFCODsKK0JFMDI7QkUwMjsxMTA3IDExNzIgMTFCOTtCRTAyOzExMDcgMTE3MiAxMUI5OworQkUwMztCRTAzOzExMDcgMTE3MiAxMUJBO0JFMDM7MTEwNyAxMTcyIDExQkE7CitCRTA0O0JFMDQ7MTEwNyAxMTcyIDExQkI7QkUwNDsxMTA3IDExNzIgMTFCQjsKK0JFMDU7QkUwNTsxMTA3IDExNzIgMTFCQztCRTA1OzExMDcgMTE3MiAxMUJDOworQkUwNjtCRTA2OzExMDcgMTE3MiAxMUJEO0JFMDY7MTEwNyAxMTcyIDExQkQ7CitCRTA3O0JFMDc7MTEwNyAxMTcyIDExQkU7QkUwNzsxMTA3IDExNzIgMTFCRTsKK0JFMDg7QkUwODsxMTA3IDExNzIgMTFCRjtCRTA4OzExMDcgMTE3MiAxMUJGOworQkUwOTtCRTA5OzExMDcgMTE3MiAxMUMwO0JFMDk7MTEwNyAxMTcyIDExQzA7CitCRTBBO0JFMEE7MTEwNyAxMTcyIDExQzE7QkUwQTsxMTA3IDExNzIgMTFDMTsKK0JFMEI7QkUwQjsxMTA3IDExNzIgMTFDMjtCRTBCOzExMDcgMTE3MiAxMUMyOworQkUwQztCRTBDOzExMDcgMTE3MztCRTBDOzExMDcgMTE3MzsKK0JFMEQ7QkUwRDsxMTA3IDExNzMgMTFBODtCRTBEOzExMDcgMTE3MyAxMUE4OworQkUwRTtCRTBFOzExMDcgMTE3MyAxMUE5O0JFMEU7MTEwNyAxMTczIDExQTk7CitCRTBGO0JFMEY7MTEwNyAxMTczIDExQUE7QkUwRjsxMTA3IDExNzMgMTFBQTsKK0JFMTA7QkUxMDsxMTA3IDExNzMgMTFBQjtCRTEwOzExMDcgMTE3MyAxMUFCOworQkUxMTtCRTExOzExMDcgMTE3MyAxMUFDO0JFMTE7MTEwNyAxMTczIDExQUM7CitCRTEyO0JFMTI7MTEwNyAxMTczIDExQUQ7QkUxMjsxMTA3IDExNzMgMTFBRDsKK0JFMTM7QkUxMzsxMTA3IDExNzMgMTFBRTtCRTEzOzExMDcgMTE3MyAxMUFFOworQkUxNDtCRTE0OzExMDcgMTE3MyAxMUFGO0JFMTQ7MTEwNyAxMTczIDExQUY7CitCRTE1O0JFMTU7MTEwNyAxMTczIDExQjA7QkUxNTsxMTA3IDExNzMgMTFCMDsKK0JFMTY7QkUxNjsxMTA3IDExNzMgMTFCMTtCRTE2OzExMDcgMTE3MyAxMUIxOworQkUxNztCRTE3OzExMDcgMTE3MyAxMUIyO0JFMTc7MTEwNyAxMTczIDExQjI7CitCRTE4O0JFMTg7MTEwNyAxMTczIDExQjM7QkUxODsxMTA3IDExNzMgMTFCMzsKK0JFMTk7QkUxOTsxMTA3IDExNzMgMTFCNDtCRTE5OzExMDcgMTE3MyAxMUI0OworQkUxQTtCRTFBOzExMDcgMTE3MyAxMUI1O0JFMUE7MTEwNyAxMTczIDExQjU7CitCRTFCO0JFMUI7MTEwNyAxMTczIDExQjY7QkUxQjsxMTA3IDExNzMgMTFCNjsKK0JFMUM7QkUxQzsxMTA3IDExNzMgMTFCNztCRTFDOzExMDcgMTE3MyAxMUI3OworQkUxRDtCRTFEOzExMDcgMTE3MyAxMUI4O0JFMUQ7MTEwNyAxMTczIDExQjg7CitCRTFFO0JFMUU7MTEwNyAxMTczIDExQjk7QkUxRTsxMTA3IDExNzMgMTFCOTsKK0JFMUY7QkUxRjsxMTA3IDExNzMgMTFCQTtCRTFGOzExMDcgMTE3MyAxMUJBOworQkUyMDtCRTIwOzExMDcgMTE3MyAxMUJCO0JFMjA7MTEwNyAxMTczIDExQkI7CitCRTIxO0JFMjE7MTEwNyAxMTczIDExQkM7QkUyMTsxMTA3IDExNzMgMTFCQzsKK0JFMjI7QkUyMjsxMTA3IDExNzMgMTFCRDtCRTIyOzExMDcgMTE3MyAxMUJEOworQkUyMztCRTIzOzExMDcgMTE3MyAxMUJFO0JFMjM7MTEwNyAxMTczIDExQkU7CitCRTI0O0JFMjQ7MTEwNyAxMTczIDExQkY7QkUyNDsxMTA3IDExNzMgMTFCRjsKK0JFMjU7QkUyNTsxMTA3IDExNzMgMTFDMDtCRTI1OzExMDcgMTE3MyAxMUMwOworQkUyNjtCRTI2OzExMDcgMTE3MyAxMUMxO0JFMjY7MTEwNyAxMTczIDExQzE7CitCRTI3O0JFMjc7MTEwNyAxMTczIDExQzI7QkUyNzsxMTA3IDExNzMgMTFDMjsKK0JFMjg7QkUyODsxMTA3IDExNzQ7QkUyODsxMTA3IDExNzQ7CitCRTI5O0JFMjk7MTEwNyAxMTc0IDExQTg7QkUyOTsxMTA3IDExNzQgMTFBODsKK0JFMkE7QkUyQTsxMTA3IDExNzQgMTFBOTtCRTJBOzExMDcgMTE3NCAxMUE5OworQkUyQjtCRTJCOzExMDcgMTE3NCAxMUFBO0JFMkI7MTEwNyAxMTc0IDExQUE7CitCRTJDO0JFMkM7MTEwNyAxMTc0IDExQUI7QkUyQzsxMTA3IDExNzQgMTFBQjsKK0JFMkQ7QkUyRDsxMTA3IDExNzQgMTFBQztCRTJEOzExMDcgMTE3NCAxMUFDOworQkUyRTtCRTJFOzExMDcgMTE3NCAxMUFEO0JFMkU7MTEwNyAxMTc0IDExQUQ7CitCRTJGO0JFMkY7MTEwNyAxMTc0IDExQUU7QkUyRjsxMTA3IDExNzQgMTFBRTsKK0JFMzA7QkUzMDsxMTA3IDExNzQgMTFBRjtCRTMwOzExMDcgMTE3NCAxMUFGOworQkUzMTtCRTMxOzExMDcgMTE3NCAxMUIwO0JFMzE7MTEwNyAxMTc0IDExQjA7CitCRTMyO0JFMzI7MTEwNyAxMTc0IDExQjE7QkUzMjsxMTA3IDExNzQgMTFCMTsKK0JFMzM7QkUzMzsxMTA3IDExNzQgMTFCMjtCRTMzOzExMDcgMTE3NCAxMUIyOworQkUzNDtCRTM0OzExMDcgMTE3NCAxMUIzO0JFMzQ7MTEwNyAxMTc0IDExQjM7CitCRTM1O0JFMzU7MTEwNyAxMTc0IDExQjQ7QkUzNTsxMTA3IDExNzQgMTFCNDsKK0JFMzY7QkUzNjsxMTA3IDExNzQgMTFCNTtCRTM2OzExMDcgMTE3NCAxMUI1OworQkUzNztCRTM3OzExMDcgMTE3NCAxMUI2O0JFMzc7MTEwNyAxMTc0IDExQjY7CitCRTM4O0JFMzg7MTEwNyAxMTc0IDExQjc7QkUzODsxMTA3IDExNzQgMTFCNzsKK0JFMzk7QkUzOTsxMTA3IDExNzQgMTFCODtCRTM5OzExMDcgMTE3NCAxMUI4OworQkUzQTtCRTNBOzExMDcgMTE3NCAxMUI5O0JFM0E7MTEwNyAxMTc0IDExQjk7CitCRTNCO0JFM0I7MTEwNyAxMTc0IDExQkE7QkUzQjsxMTA3IDExNzQgMTFCQTsKK0JFM0M7QkUzQzsxMTA3IDExNzQgMTFCQjtCRTNDOzExMDcgMTE3NCAxMUJCOworQkUzRDtCRTNEOzExMDcgMTE3NCAxMUJDO0JFM0Q7MTEwNyAxMTc0IDExQkM7CitCRTNFO0JFM0U7MTEwNyAxMTc0IDExQkQ7QkUzRTsxMTA3IDExNzQgMTFCRDsKK0JFM0Y7QkUzRjsxMTA3IDExNzQgMTFCRTtCRTNGOzExMDcgMTE3NCAxMUJFOworQkU0MDtCRTQwOzExMDcgMTE3NCAxMUJGO0JFNDA7MTEwNyAxMTc0IDExQkY7CitCRTQxO0JFNDE7MTEwNyAxMTc0IDExQzA7QkU0MTsxMTA3IDExNzQgMTFDMDsKK0JFNDI7QkU0MjsxMTA3IDExNzQgMTFDMTtCRTQyOzExMDcgMTE3NCAxMUMxOworQkU0MztCRTQzOzExMDcgMTE3NCAxMUMyO0JFNDM7MTEwNyAxMTc0IDExQzI7CitCRTQ0O0JFNDQ7MTEwNyAxMTc1O0JFNDQ7MTEwNyAxMTc1OworQkU0NTtCRTQ1OzExMDcgMTE3NSAxMUE4O0JFNDU7MTEwNyAxMTc1IDExQTg7CitCRTQ2O0JFNDY7MTEwNyAxMTc1IDExQTk7QkU0NjsxMTA3IDExNzUgMTFBOTsKK0JFNDc7QkU0NzsxMTA3IDExNzUgMTFBQTtCRTQ3OzExMDcgMTE3NSAxMUFBOworQkU0ODtCRTQ4OzExMDcgMTE3NSAxMUFCO0JFNDg7MTEwNyAxMTc1IDExQUI7CitCRTQ5O0JFNDk7MTEwNyAxMTc1IDExQUM7QkU0OTsxMTA3IDExNzUgMTFBQzsKK0JFNEE7QkU0QTsxMTA3IDExNzUgMTFBRDtCRTRBOzExMDcgMTE3NSAxMUFEOworQkU0QjtCRTRCOzExMDcgMTE3NSAxMUFFO0JFNEI7MTEwNyAxMTc1IDExQUU7CitCRTRDO0JFNEM7MTEwNyAxMTc1IDExQUY7QkU0QzsxMTA3IDExNzUgMTFBRjsKK0JFNEQ7QkU0RDsxMTA3IDExNzUgMTFCMDtCRTREOzExMDcgMTE3NSAxMUIwOworQkU0RTtCRTRFOzExMDcgMTE3NSAxMUIxO0JFNEU7MTEwNyAxMTc1IDExQjE7CitCRTRGO0JFNEY7MTEwNyAxMTc1IDExQjI7QkU0RjsxMTA3IDExNzUgMTFCMjsKK0JFNTA7QkU1MDsxMTA3IDExNzUgMTFCMztCRTUwOzExMDcgMTE3NSAxMUIzOworQkU1MTtCRTUxOzExMDcgMTE3NSAxMUI0O0JFNTE7MTEwNyAxMTc1IDExQjQ7CitCRTUyO0JFNTI7MTEwNyAxMTc1IDExQjU7QkU1MjsxMTA3IDExNzUgMTFCNTsKK0JFNTM7QkU1MzsxMTA3IDExNzUgMTFCNjtCRTUzOzExMDcgMTE3NSAxMUI2OworQkU1NDtCRTU0OzExMDcgMTE3NSAxMUI3O0JFNTQ7MTEwNyAxMTc1IDExQjc7CitCRTU1O0JFNTU7MTEwNyAxMTc1IDExQjg7QkU1NTsxMTA3IDExNzUgMTFCODsKK0JFNTY7QkU1NjsxMTA3IDExNzUgMTFCOTtCRTU2OzExMDcgMTE3NSAxMUI5OworQkU1NztCRTU3OzExMDcgMTE3NSAxMUJBO0JFNTc7MTEwNyAxMTc1IDExQkE7CitCRTU4O0JFNTg7MTEwNyAxMTc1IDExQkI7QkU1ODsxMTA3IDExNzUgMTFCQjsKK0JFNTk7QkU1OTsxMTA3IDExNzUgMTFCQztCRTU5OzExMDcgMTE3NSAxMUJDOworQkU1QTtCRTVBOzExMDcgMTE3NSAxMUJEO0JFNUE7MTEwNyAxMTc1IDExQkQ7CitCRTVCO0JFNUI7MTEwNyAxMTc1IDExQkU7QkU1QjsxMTA3IDExNzUgMTFCRTsKK0JFNUM7QkU1QzsxMTA3IDExNzUgMTFCRjtCRTVDOzExMDcgMTE3NSAxMUJGOworQkU1RDtCRTVEOzExMDcgMTE3NSAxMUMwO0JFNUQ7MTEwNyAxMTc1IDExQzA7CitCRTVFO0JFNUU7MTEwNyAxMTc1IDExQzE7QkU1RTsxMTA3IDExNzUgMTFDMTsKK0JFNUY7QkU1RjsxMTA3IDExNzUgMTFDMjtCRTVGOzExMDcgMTE3NSAxMUMyOworQkU2MDtCRTYwOzExMDggMTE2MTtCRTYwOzExMDggMTE2MTsKK0JFNjE7QkU2MTsxMTA4IDExNjEgMTFBODtCRTYxOzExMDggMTE2MSAxMUE4OworQkU2MjtCRTYyOzExMDggMTE2MSAxMUE5O0JFNjI7MTEwOCAxMTYxIDExQTk7CitCRTYzO0JFNjM7MTEwOCAxMTYxIDExQUE7QkU2MzsxMTA4IDExNjEgMTFBQTsKK0JFNjQ7QkU2NDsxMTA4IDExNjEgMTFBQjtCRTY0OzExMDggMTE2MSAxMUFCOworQkU2NTtCRTY1OzExMDggMTE2MSAxMUFDO0JFNjU7MTEwOCAxMTYxIDExQUM7CitCRTY2O0JFNjY7MTEwOCAxMTYxIDExQUQ7QkU2NjsxMTA4IDExNjEgMTFBRDsKK0JFNjc7QkU2NzsxMTA4IDExNjEgMTFBRTtCRTY3OzExMDggMTE2MSAxMUFFOworQkU2ODtCRTY4OzExMDggMTE2MSAxMUFGO0JFNjg7MTEwOCAxMTYxIDExQUY7CitCRTY5O0JFNjk7MTEwOCAxMTYxIDExQjA7QkU2OTsxMTA4IDExNjEgMTFCMDsKK0JFNkE7QkU2QTsxMTA4IDExNjEgMTFCMTtCRTZBOzExMDggMTE2MSAxMUIxOworQkU2QjtCRTZCOzExMDggMTE2MSAxMUIyO0JFNkI7MTEwOCAxMTYxIDExQjI7CitCRTZDO0JFNkM7MTEwOCAxMTYxIDExQjM7QkU2QzsxMTA4IDExNjEgMTFCMzsKK0JFNkQ7QkU2RDsxMTA4IDExNjEgMTFCNDtCRTZEOzExMDggMTE2MSAxMUI0OworQkU2RTtCRTZFOzExMDggMTE2MSAxMUI1O0JFNkU7MTEwOCAxMTYxIDExQjU7CitCRTZGO0JFNkY7MTEwOCAxMTYxIDExQjY7QkU2RjsxMTA4IDExNjEgMTFCNjsKK0JFNzA7QkU3MDsxMTA4IDExNjEgMTFCNztCRTcwOzExMDggMTE2MSAxMUI3OworQkU3MTtCRTcxOzExMDggMTE2MSAxMUI4O0JFNzE7MTEwOCAxMTYxIDExQjg7CitCRTcyO0JFNzI7MTEwOCAxMTYxIDExQjk7QkU3MjsxMTA4IDExNjEgMTFCOTsKK0JFNzM7QkU3MzsxMTA4IDExNjEgMTFCQTtCRTczOzExMDggMTE2MSAxMUJBOworQkU3NDtCRTc0OzExMDggMTE2MSAxMUJCO0JFNzQ7MTEwOCAxMTYxIDExQkI7CitCRTc1O0JFNzU7MTEwOCAxMTYxIDExQkM7QkU3NTsxMTA4IDExNjEgMTFCQzsKK0JFNzY7QkU3NjsxMTA4IDExNjEgMTFCRDtCRTc2OzExMDggMTE2MSAxMUJEOworQkU3NztCRTc3OzExMDggMTE2MSAxMUJFO0JFNzc7MTEwOCAxMTYxIDExQkU7CitCRTc4O0JFNzg7MTEwOCAxMTYxIDExQkY7QkU3ODsxMTA4IDExNjEgMTFCRjsKK0JFNzk7QkU3OTsxMTA4IDExNjEgMTFDMDtCRTc5OzExMDggMTE2MSAxMUMwOworQkU3QTtCRTdBOzExMDggMTE2MSAxMUMxO0JFN0E7MTEwOCAxMTYxIDExQzE7CitCRTdCO0JFN0I7MTEwOCAxMTYxIDExQzI7QkU3QjsxMTA4IDExNjEgMTFDMjsKK0JFN0M7QkU3QzsxMTA4IDExNjI7QkU3QzsxMTA4IDExNjI7CitCRTdEO0JFN0Q7MTEwOCAxMTYyIDExQTg7QkU3RDsxMTA4IDExNjIgMTFBODsKK0JFN0U7QkU3RTsxMTA4IDExNjIgMTFBOTtCRTdFOzExMDggMTE2MiAxMUE5OworQkU3RjtCRTdGOzExMDggMTE2MiAxMUFBO0JFN0Y7MTEwOCAxMTYyIDExQUE7CitCRTgwO0JFODA7MTEwOCAxMTYyIDExQUI7QkU4MDsxMTA4IDExNjIgMTFBQjsKK0JFODE7QkU4MTsxMTA4IDExNjIgMTFBQztCRTgxOzExMDggMTE2MiAxMUFDOworQkU4MjtCRTgyOzExMDggMTE2MiAxMUFEO0JFODI7MTEwOCAxMTYyIDExQUQ7CitCRTgzO0JFODM7MTEwOCAxMTYyIDExQUU7QkU4MzsxMTA4IDExNjIgMTFBRTsKK0JFODQ7QkU4NDsxMTA4IDExNjIgMTFBRjtCRTg0OzExMDggMTE2MiAxMUFGOworQkU4NTtCRTg1OzExMDggMTE2MiAxMUIwO0JFODU7MTEwOCAxMTYyIDExQjA7CitCRTg2O0JFODY7MTEwOCAxMTYyIDExQjE7QkU4NjsxMTA4IDExNjIgMTFCMTsKK0JFODc7QkU4NzsxMTA4IDExNjIgMTFCMjtCRTg3OzExMDggMTE2MiAxMUIyOworQkU4ODtCRTg4OzExMDggMTE2MiAxMUIzO0JFODg7MTEwOCAxMTYyIDExQjM7CitCRTg5O0JFODk7MTEwOCAxMTYyIDExQjQ7QkU4OTsxMTA4IDExNjIgMTFCNDsKK0JFOEE7QkU4QTsxMTA4IDExNjIgMTFCNTtCRThBOzExMDggMTE2MiAxMUI1OworQkU4QjtCRThCOzExMDggMTE2MiAxMUI2O0JFOEI7MTEwOCAxMTYyIDExQjY7CitCRThDO0JFOEM7MTEwOCAxMTYyIDExQjc7QkU4QzsxMTA4IDExNjIgMTFCNzsKK0JFOEQ7QkU4RDsxMTA4IDExNjIgMTFCODtCRThEOzExMDggMTE2MiAxMUI4OworQkU4RTtCRThFOzExMDggMTE2MiAxMUI5O0JFOEU7MTEwOCAxMTYyIDExQjk7CitCRThGO0JFOEY7MTEwOCAxMTYyIDExQkE7QkU4RjsxMTA4IDExNjIgMTFCQTsKK0JFOTA7QkU5MDsxMTA4IDExNjIgMTFCQjtCRTkwOzExMDggMTE2MiAxMUJCOworQkU5MTtCRTkxOzExMDggMTE2MiAxMUJDO0JFOTE7MTEwOCAxMTYyIDExQkM7CitCRTkyO0JFOTI7MTEwOCAxMTYyIDExQkQ7QkU5MjsxMTA4IDExNjIgMTFCRDsKK0JFOTM7QkU5MzsxMTA4IDExNjIgMTFCRTtCRTkzOzExMDggMTE2MiAxMUJFOworQkU5NDtCRTk0OzExMDggMTE2MiAxMUJGO0JFOTQ7MTEwOCAxMTYyIDExQkY7CitCRTk1O0JFOTU7MTEwOCAxMTYyIDExQzA7QkU5NTsxMTA4IDExNjIgMTFDMDsKK0JFOTY7QkU5NjsxMTA4IDExNjIgMTFDMTtCRTk2OzExMDggMTE2MiAxMUMxOworQkU5NztCRTk3OzExMDggMTE2MiAxMUMyO0JFOTc7MTEwOCAxMTYyIDExQzI7CitCRTk4O0JFOTg7MTEwOCAxMTYzO0JFOTg7MTEwOCAxMTYzOworQkU5OTtCRTk5OzExMDggMTE2MyAxMUE4O0JFOTk7MTEwOCAxMTYzIDExQTg7CitCRTlBO0JFOUE7MTEwOCAxMTYzIDExQTk7QkU5QTsxMTA4IDExNjMgMTFBOTsKK0JFOUI7QkU5QjsxMTA4IDExNjMgMTFBQTtCRTlCOzExMDggMTE2MyAxMUFBOworQkU5QztCRTlDOzExMDggMTE2MyAxMUFCO0JFOUM7MTEwOCAxMTYzIDExQUI7CitCRTlEO0JFOUQ7MTEwOCAxMTYzIDExQUM7QkU5RDsxMTA4IDExNjMgMTFBQzsKK0JFOUU7QkU5RTsxMTA4IDExNjMgMTFBRDtCRTlFOzExMDggMTE2MyAxMUFEOworQkU5RjtCRTlGOzExMDggMTE2MyAxMUFFO0JFOUY7MTEwOCAxMTYzIDExQUU7CitCRUEwO0JFQTA7MTEwOCAxMTYzIDExQUY7QkVBMDsxMTA4IDExNjMgMTFBRjsKK0JFQTE7QkVBMTsxMTA4IDExNjMgMTFCMDtCRUExOzExMDggMTE2MyAxMUIwOworQkVBMjtCRUEyOzExMDggMTE2MyAxMUIxO0JFQTI7MTEwOCAxMTYzIDExQjE7CitCRUEzO0JFQTM7MTEwOCAxMTYzIDExQjI7QkVBMzsxMTA4IDExNjMgMTFCMjsKK0JFQTQ7QkVBNDsxMTA4IDExNjMgMTFCMztCRUE0OzExMDggMTE2MyAxMUIzOworQkVBNTtCRUE1OzExMDggMTE2MyAxMUI0O0JFQTU7MTEwOCAxMTYzIDExQjQ7CitCRUE2O0JFQTY7MTEwOCAxMTYzIDExQjU7QkVBNjsxMTA4IDExNjMgMTFCNTsKK0JFQTc7QkVBNzsxMTA4IDExNjMgMTFCNjtCRUE3OzExMDggMTE2MyAxMUI2OworQkVBODtCRUE4OzExMDggMTE2MyAxMUI3O0JFQTg7MTEwOCAxMTYzIDExQjc7CitCRUE5O0JFQTk7MTEwOCAxMTYzIDExQjg7QkVBOTsxMTA4IDExNjMgMTFCODsKK0JFQUE7QkVBQTsxMTA4IDExNjMgMTFCOTtCRUFBOzExMDggMTE2MyAxMUI5OworQkVBQjtCRUFCOzExMDggMTE2MyAxMUJBO0JFQUI7MTEwOCAxMTYzIDExQkE7CitCRUFDO0JFQUM7MTEwOCAxMTYzIDExQkI7QkVBQzsxMTA4IDExNjMgMTFCQjsKK0JFQUQ7QkVBRDsxMTA4IDExNjMgMTFCQztCRUFEOzExMDggMTE2MyAxMUJDOworQkVBRTtCRUFFOzExMDggMTE2MyAxMUJEO0JFQUU7MTEwOCAxMTYzIDExQkQ7CitCRUFGO0JFQUY7MTEwOCAxMTYzIDExQkU7QkVBRjsxMTA4IDExNjMgMTFCRTsKK0JFQjA7QkVCMDsxMTA4IDExNjMgMTFCRjtCRUIwOzExMDggMTE2MyAxMUJGOworQkVCMTtCRUIxOzExMDggMTE2MyAxMUMwO0JFQjE7MTEwOCAxMTYzIDExQzA7CitCRUIyO0JFQjI7MTEwOCAxMTYzIDExQzE7QkVCMjsxMTA4IDExNjMgMTFDMTsKK0JFQjM7QkVCMzsxMTA4IDExNjMgMTFDMjtCRUIzOzExMDggMTE2MyAxMUMyOworQkVCNDtCRUI0OzExMDggMTE2NDtCRUI0OzExMDggMTE2NDsKK0JFQjU7QkVCNTsxMTA4IDExNjQgMTFBODtCRUI1OzExMDggMTE2NCAxMUE4OworQkVCNjtCRUI2OzExMDggMTE2NCAxMUE5O0JFQjY7MTEwOCAxMTY0IDExQTk7CitCRUI3O0JFQjc7MTEwOCAxMTY0IDExQUE7QkVCNzsxMTA4IDExNjQgMTFBQTsKK0JFQjg7QkVCODsxMTA4IDExNjQgMTFBQjtCRUI4OzExMDggMTE2NCAxMUFCOworQkVCOTtCRUI5OzExMDggMTE2NCAxMUFDO0JFQjk7MTEwOCAxMTY0IDExQUM7CitCRUJBO0JFQkE7MTEwOCAxMTY0IDExQUQ7QkVCQTsxMTA4IDExNjQgMTFBRDsKK0JFQkI7QkVCQjsxMTA4IDExNjQgMTFBRTtCRUJCOzExMDggMTE2NCAxMUFFOworQkVCQztCRUJDOzExMDggMTE2NCAxMUFGO0JFQkM7MTEwOCAxMTY0IDExQUY7CitCRUJEO0JFQkQ7MTEwOCAxMTY0IDExQjA7QkVCRDsxMTA4IDExNjQgMTFCMDsKK0JFQkU7QkVCRTsxMTA4IDExNjQgMTFCMTtCRUJFOzExMDggMTE2NCAxMUIxOworQkVCRjtCRUJGOzExMDggMTE2NCAxMUIyO0JFQkY7MTEwOCAxMTY0IDExQjI7CitCRUMwO0JFQzA7MTEwOCAxMTY0IDExQjM7QkVDMDsxMTA4IDExNjQgMTFCMzsKK0JFQzE7QkVDMTsxMTA4IDExNjQgMTFCNDtCRUMxOzExMDggMTE2NCAxMUI0OworQkVDMjtCRUMyOzExMDggMTE2NCAxMUI1O0JFQzI7MTEwOCAxMTY0IDExQjU7CitCRUMzO0JFQzM7MTEwOCAxMTY0IDExQjY7QkVDMzsxMTA4IDExNjQgMTFCNjsKK0JFQzQ7QkVDNDsxMTA4IDExNjQgMTFCNztCRUM0OzExMDggMTE2NCAxMUI3OworQkVDNTtCRUM1OzExMDggMTE2NCAxMUI4O0JFQzU7MTEwOCAxMTY0IDExQjg7CitCRUM2O0JFQzY7MTEwOCAxMTY0IDExQjk7QkVDNjsxMTA4IDExNjQgMTFCOTsKK0JFQzc7QkVDNzsxMTA4IDExNjQgMTFCQTtCRUM3OzExMDggMTE2NCAxMUJBOworQkVDODtCRUM4OzExMDggMTE2NCAxMUJCO0JFQzg7MTEwOCAxMTY0IDExQkI7CitCRUM5O0JFQzk7MTEwOCAxMTY0IDExQkM7QkVDOTsxMTA4IDExNjQgMTFCQzsKK0JFQ0E7QkVDQTsxMTA4IDExNjQgMTFCRDtCRUNBOzExMDggMTE2NCAxMUJEOworQkVDQjtCRUNCOzExMDggMTE2NCAxMUJFO0JFQ0I7MTEwOCAxMTY0IDExQkU7CitCRUNDO0JFQ0M7MTEwOCAxMTY0IDExQkY7QkVDQzsxMTA4IDExNjQgMTFCRjsKK0JFQ0Q7QkVDRDsxMTA4IDExNjQgMTFDMDtCRUNEOzExMDggMTE2NCAxMUMwOworQkVDRTtCRUNFOzExMDggMTE2NCAxMUMxO0JFQ0U7MTEwOCAxMTY0IDExQzE7CitCRUNGO0JFQ0Y7MTEwOCAxMTY0IDExQzI7QkVDRjsxMTA4IDExNjQgMTFDMjsKK0JFRDA7QkVEMDsxMTA4IDExNjU7QkVEMDsxMTA4IDExNjU7CitCRUQxO0JFRDE7MTEwOCAxMTY1IDExQTg7QkVEMTsxMTA4IDExNjUgMTFBODsKK0JFRDI7QkVEMjsxMTA4IDExNjUgMTFBOTtCRUQyOzExMDggMTE2NSAxMUE5OworQkVEMztCRUQzOzExMDggMTE2NSAxMUFBO0JFRDM7MTEwOCAxMTY1IDExQUE7CitCRUQ0O0JFRDQ7MTEwOCAxMTY1IDExQUI7QkVENDsxMTA4IDExNjUgMTFBQjsKK0JFRDU7QkVENTsxMTA4IDExNjUgMTFBQztCRUQ1OzExMDggMTE2NSAxMUFDOworQkVENjtCRUQ2OzExMDggMTE2NSAxMUFEO0JFRDY7MTEwOCAxMTY1IDExQUQ7CitCRUQ3O0JFRDc7MTEwOCAxMTY1IDExQUU7QkVENzsxMTA4IDExNjUgMTFBRTsKK0JFRDg7QkVEODsxMTA4IDExNjUgMTFBRjtCRUQ4OzExMDggMTE2NSAxMUFGOworQkVEOTtCRUQ5OzExMDggMTE2NSAxMUIwO0JFRDk7MTEwOCAxMTY1IDExQjA7CitCRURBO0JFREE7MTEwOCAxMTY1IDExQjE7QkVEQTsxMTA4IDExNjUgMTFCMTsKK0JFREI7QkVEQjsxMTA4IDExNjUgMTFCMjtCRURCOzExMDggMTE2NSAxMUIyOworQkVEQztCRURDOzExMDggMTE2NSAxMUIzO0JFREM7MTEwOCAxMTY1IDExQjM7CitCRUREO0JFREQ7MTEwOCAxMTY1IDExQjQ7QkVERDsxMTA4IDExNjUgMTFCNDsKK0JFREU7QkVERTsxMTA4IDExNjUgMTFCNTtCRURFOzExMDggMTE2NSAxMUI1OworQkVERjtCRURGOzExMDggMTE2NSAxMUI2O0JFREY7MTEwOCAxMTY1IDExQjY7CitCRUUwO0JFRTA7MTEwOCAxMTY1IDExQjc7QkVFMDsxMTA4IDExNjUgMTFCNzsKK0JFRTE7QkVFMTsxMTA4IDExNjUgMTFCODtCRUUxOzExMDggMTE2NSAxMUI4OworQkVFMjtCRUUyOzExMDggMTE2NSAxMUI5O0JFRTI7MTEwOCAxMTY1IDExQjk7CitCRUUzO0JFRTM7MTEwOCAxMTY1IDExQkE7QkVFMzsxMTA4IDExNjUgMTFCQTsKK0JFRTQ7QkVFNDsxMTA4IDExNjUgMTFCQjtCRUU0OzExMDggMTE2NSAxMUJCOworQkVFNTtCRUU1OzExMDggMTE2NSAxMUJDO0JFRTU7MTEwOCAxMTY1IDExQkM7CitCRUU2O0JFRTY7MTEwOCAxMTY1IDExQkQ7QkVFNjsxMTA4IDExNjUgMTFCRDsKK0JFRTc7QkVFNzsxMTA4IDExNjUgMTFCRTtCRUU3OzExMDggMTE2NSAxMUJFOworQkVFODtCRUU4OzExMDggMTE2NSAxMUJGO0JFRTg7MTEwOCAxMTY1IDExQkY7CitCRUU5O0JFRTk7MTEwOCAxMTY1IDExQzA7QkVFOTsxMTA4IDExNjUgMTFDMDsKK0JFRUE7QkVFQTsxMTA4IDExNjUgMTFDMTtCRUVBOzExMDggMTE2NSAxMUMxOworQkVFQjtCRUVCOzExMDggMTE2NSAxMUMyO0JFRUI7MTEwOCAxMTY1IDExQzI7CitCRUVDO0JFRUM7MTEwOCAxMTY2O0JFRUM7MTEwOCAxMTY2OworQkVFRDtCRUVEOzExMDggMTE2NiAxMUE4O0JFRUQ7MTEwOCAxMTY2IDExQTg7CitCRUVFO0JFRUU7MTEwOCAxMTY2IDExQTk7QkVFRTsxMTA4IDExNjYgMTFBOTsKK0JFRUY7QkVFRjsxMTA4IDExNjYgMTFBQTtCRUVGOzExMDggMTE2NiAxMUFBOworQkVGMDtCRUYwOzExMDggMTE2NiAxMUFCO0JFRjA7MTEwOCAxMTY2IDExQUI7CitCRUYxO0JFRjE7MTEwOCAxMTY2IDExQUM7QkVGMTsxMTA4IDExNjYgMTFBQzsKK0JFRjI7QkVGMjsxMTA4IDExNjYgMTFBRDtCRUYyOzExMDggMTE2NiAxMUFEOworQkVGMztCRUYzOzExMDggMTE2NiAxMUFFO0JFRjM7MTEwOCAxMTY2IDExQUU7CitCRUY0O0JFRjQ7MTEwOCAxMTY2IDExQUY7QkVGNDsxMTA4IDExNjYgMTFBRjsKK0JFRjU7QkVGNTsxMTA4IDExNjYgMTFCMDtCRUY1OzExMDggMTE2NiAxMUIwOworQkVGNjtCRUY2OzExMDggMTE2NiAxMUIxO0JFRjY7MTEwOCAxMTY2IDExQjE7CitCRUY3O0JFRjc7MTEwOCAxMTY2IDExQjI7QkVGNzsxMTA4IDExNjYgMTFCMjsKK0JFRjg7QkVGODsxMTA4IDExNjYgMTFCMztCRUY4OzExMDggMTE2NiAxMUIzOworQkVGOTtCRUY5OzExMDggMTE2NiAxMUI0O0JFRjk7MTEwOCAxMTY2IDExQjQ7CitCRUZBO0JFRkE7MTEwOCAxMTY2IDExQjU7QkVGQTsxMTA4IDExNjYgMTFCNTsKK0JFRkI7QkVGQjsxMTA4IDExNjYgMTFCNjtCRUZCOzExMDggMTE2NiAxMUI2OworQkVGQztCRUZDOzExMDggMTE2NiAxMUI3O0JFRkM7MTEwOCAxMTY2IDExQjc7CitCRUZEO0JFRkQ7MTEwOCAxMTY2IDExQjg7QkVGRDsxMTA4IDExNjYgMTFCODsKK0JFRkU7QkVGRTsxMTA4IDExNjYgMTFCOTtCRUZFOzExMDggMTE2NiAxMUI5OworQkVGRjtCRUZGOzExMDggMTE2NiAxMUJBO0JFRkY7MTEwOCAxMTY2IDExQkE7CitCRjAwO0JGMDA7MTEwOCAxMTY2IDExQkI7QkYwMDsxMTA4IDExNjYgMTFCQjsKK0JGMDE7QkYwMTsxMTA4IDExNjYgMTFCQztCRjAxOzExMDggMTE2NiAxMUJDOworQkYwMjtCRjAyOzExMDggMTE2NiAxMUJEO0JGMDI7MTEwOCAxMTY2IDExQkQ7CitCRjAzO0JGMDM7MTEwOCAxMTY2IDExQkU7QkYwMzsxMTA4IDExNjYgMTFCRTsKK0JGMDQ7QkYwNDsxMTA4IDExNjYgMTFCRjtCRjA0OzExMDggMTE2NiAxMUJGOworQkYwNTtCRjA1OzExMDggMTE2NiAxMUMwO0JGMDU7MTEwOCAxMTY2IDExQzA7CitCRjA2O0JGMDY7MTEwOCAxMTY2IDExQzE7QkYwNjsxMTA4IDExNjYgMTFDMTsKK0JGMDc7QkYwNzsxMTA4IDExNjYgMTFDMjtCRjA3OzExMDggMTE2NiAxMUMyOworQkYwODtCRjA4OzExMDggMTE2NztCRjA4OzExMDggMTE2NzsKK0JGMDk7QkYwOTsxMTA4IDExNjcgMTFBODtCRjA5OzExMDggMTE2NyAxMUE4OworQkYwQTtCRjBBOzExMDggMTE2NyAxMUE5O0JGMEE7MTEwOCAxMTY3IDExQTk7CitCRjBCO0JGMEI7MTEwOCAxMTY3IDExQUE7QkYwQjsxMTA4IDExNjcgMTFBQTsKK0JGMEM7QkYwQzsxMTA4IDExNjcgMTFBQjtCRjBDOzExMDggMTE2NyAxMUFCOworQkYwRDtCRjBEOzExMDggMTE2NyAxMUFDO0JGMEQ7MTEwOCAxMTY3IDExQUM7CitCRjBFO0JGMEU7MTEwOCAxMTY3IDExQUQ7QkYwRTsxMTA4IDExNjcgMTFBRDsKK0JGMEY7QkYwRjsxMTA4IDExNjcgMTFBRTtCRjBGOzExMDggMTE2NyAxMUFFOworQkYxMDtCRjEwOzExMDggMTE2NyAxMUFGO0JGMTA7MTEwOCAxMTY3IDExQUY7CitCRjExO0JGMTE7MTEwOCAxMTY3IDExQjA7QkYxMTsxMTA4IDExNjcgMTFCMDsKK0JGMTI7QkYxMjsxMTA4IDExNjcgMTFCMTtCRjEyOzExMDggMTE2NyAxMUIxOworQkYxMztCRjEzOzExMDggMTE2NyAxMUIyO0JGMTM7MTEwOCAxMTY3IDExQjI7CitCRjE0O0JGMTQ7MTEwOCAxMTY3IDExQjM7QkYxNDsxMTA4IDExNjcgMTFCMzsKK0JGMTU7QkYxNTsxMTA4IDExNjcgMTFCNDtCRjE1OzExMDggMTE2NyAxMUI0OworQkYxNjtCRjE2OzExMDggMTE2NyAxMUI1O0JGMTY7MTEwOCAxMTY3IDExQjU7CitCRjE3O0JGMTc7MTEwOCAxMTY3IDExQjY7QkYxNzsxMTA4IDExNjcgMTFCNjsKK0JGMTg7QkYxODsxMTA4IDExNjcgMTFCNztCRjE4OzExMDggMTE2NyAxMUI3OworQkYxOTtCRjE5OzExMDggMTE2NyAxMUI4O0JGMTk7MTEwOCAxMTY3IDExQjg7CitCRjFBO0JGMUE7MTEwOCAxMTY3IDExQjk7QkYxQTsxMTA4IDExNjcgMTFCOTsKK0JGMUI7QkYxQjsxMTA4IDExNjcgMTFCQTtCRjFCOzExMDggMTE2NyAxMUJBOworQkYxQztCRjFDOzExMDggMTE2NyAxMUJCO0JGMUM7MTEwOCAxMTY3IDExQkI7CitCRjFEO0JGMUQ7MTEwOCAxMTY3IDExQkM7QkYxRDsxMTA4IDExNjcgMTFCQzsKK0JGMUU7QkYxRTsxMTA4IDExNjcgMTFCRDtCRjFFOzExMDggMTE2NyAxMUJEOworQkYxRjtCRjFGOzExMDggMTE2NyAxMUJFO0JGMUY7MTEwOCAxMTY3IDExQkU7CitCRjIwO0JGMjA7MTEwOCAxMTY3IDExQkY7QkYyMDsxMTA4IDExNjcgMTFCRjsKK0JGMjE7QkYyMTsxMTA4IDExNjcgMTFDMDtCRjIxOzExMDggMTE2NyAxMUMwOworQkYyMjtCRjIyOzExMDggMTE2NyAxMUMxO0JGMjI7MTEwOCAxMTY3IDExQzE7CitCRjIzO0JGMjM7MTEwOCAxMTY3IDExQzI7QkYyMzsxMTA4IDExNjcgMTFDMjsKK0JGMjQ7QkYyNDsxMTA4IDExNjg7QkYyNDsxMTA4IDExNjg7CitCRjI1O0JGMjU7MTEwOCAxMTY4IDExQTg7QkYyNTsxMTA4IDExNjggMTFBODsKK0JGMjY7QkYyNjsxMTA4IDExNjggMTFBOTtCRjI2OzExMDggMTE2OCAxMUE5OworQkYyNztCRjI3OzExMDggMTE2OCAxMUFBO0JGMjc7MTEwOCAxMTY4IDExQUE7CitCRjI4O0JGMjg7MTEwOCAxMTY4IDExQUI7QkYyODsxMTA4IDExNjggMTFBQjsKK0JGMjk7QkYyOTsxMTA4IDExNjggMTFBQztCRjI5OzExMDggMTE2OCAxMUFDOworQkYyQTtCRjJBOzExMDggMTE2OCAxMUFEO0JGMkE7MTEwOCAxMTY4IDExQUQ7CitCRjJCO0JGMkI7MTEwOCAxMTY4IDExQUU7QkYyQjsxMTA4IDExNjggMTFBRTsKK0JGMkM7QkYyQzsxMTA4IDExNjggMTFBRjtCRjJDOzExMDggMTE2OCAxMUFGOworQkYyRDtCRjJEOzExMDggMTE2OCAxMUIwO0JGMkQ7MTEwOCAxMTY4IDExQjA7CitCRjJFO0JGMkU7MTEwOCAxMTY4IDExQjE7QkYyRTsxMTA4IDExNjggMTFCMTsKK0JGMkY7QkYyRjsxMTA4IDExNjggMTFCMjtCRjJGOzExMDggMTE2OCAxMUIyOworQkYzMDtCRjMwOzExMDggMTE2OCAxMUIzO0JGMzA7MTEwOCAxMTY4IDExQjM7CitCRjMxO0JGMzE7MTEwOCAxMTY4IDExQjQ7QkYzMTsxMTA4IDExNjggMTFCNDsKK0JGMzI7QkYzMjsxMTA4IDExNjggMTFCNTtCRjMyOzExMDggMTE2OCAxMUI1OworQkYzMztCRjMzOzExMDggMTE2OCAxMUI2O0JGMzM7MTEwOCAxMTY4IDExQjY7CitCRjM0O0JGMzQ7MTEwOCAxMTY4IDExQjc7QkYzNDsxMTA4IDExNjggMTFCNzsKK0JGMzU7QkYzNTsxMTA4IDExNjggMTFCODtCRjM1OzExMDggMTE2OCAxMUI4OworQkYzNjtCRjM2OzExMDggMTE2OCAxMUI5O0JGMzY7MTEwOCAxMTY4IDExQjk7CitCRjM3O0JGMzc7MTEwOCAxMTY4IDExQkE7QkYzNzsxMTA4IDExNjggMTFCQTsKK0JGMzg7QkYzODsxMTA4IDExNjggMTFCQjtCRjM4OzExMDggMTE2OCAxMUJCOworQkYzOTtCRjM5OzExMDggMTE2OCAxMUJDO0JGMzk7MTEwOCAxMTY4IDExQkM7CitCRjNBO0JGM0E7MTEwOCAxMTY4IDExQkQ7QkYzQTsxMTA4IDExNjggMTFCRDsKK0JGM0I7QkYzQjsxMTA4IDExNjggMTFCRTtCRjNCOzExMDggMTE2OCAxMUJFOworQkYzQztCRjNDOzExMDggMTE2OCAxMUJGO0JGM0M7MTEwOCAxMTY4IDExQkY7CitCRjNEO0JGM0Q7MTEwOCAxMTY4IDExQzA7QkYzRDsxMTA4IDExNjggMTFDMDsKK0JGM0U7QkYzRTsxMTA4IDExNjggMTFDMTtCRjNFOzExMDggMTE2OCAxMUMxOworQkYzRjtCRjNGOzExMDggMTE2OCAxMUMyO0JGM0Y7MTEwOCAxMTY4IDExQzI7CitCRjQwO0JGNDA7MTEwOCAxMTY5O0JGNDA7MTEwOCAxMTY5OworQkY0MTtCRjQxOzExMDggMTE2OSAxMUE4O0JGNDE7MTEwOCAxMTY5IDExQTg7CitCRjQyO0JGNDI7MTEwOCAxMTY5IDExQTk7QkY0MjsxMTA4IDExNjkgMTFBOTsKK0JGNDM7QkY0MzsxMTA4IDExNjkgMTFBQTtCRjQzOzExMDggMTE2OSAxMUFBOworQkY0NDtCRjQ0OzExMDggMTE2OSAxMUFCO0JGNDQ7MTEwOCAxMTY5IDExQUI7CitCRjQ1O0JGNDU7MTEwOCAxMTY5IDExQUM7QkY0NTsxMTA4IDExNjkgMTFBQzsKK0JGNDY7QkY0NjsxMTA4IDExNjkgMTFBRDtCRjQ2OzExMDggMTE2OSAxMUFEOworQkY0NztCRjQ3OzExMDggMTE2OSAxMUFFO0JGNDc7MTEwOCAxMTY5IDExQUU7CitCRjQ4O0JGNDg7MTEwOCAxMTY5IDExQUY7QkY0ODsxMTA4IDExNjkgMTFBRjsKK0JGNDk7QkY0OTsxMTA4IDExNjkgMTFCMDtCRjQ5OzExMDggMTE2OSAxMUIwOworQkY0QTtCRjRBOzExMDggMTE2OSAxMUIxO0JGNEE7MTEwOCAxMTY5IDExQjE7CitCRjRCO0JGNEI7MTEwOCAxMTY5IDExQjI7QkY0QjsxMTA4IDExNjkgMTFCMjsKK0JGNEM7QkY0QzsxMTA4IDExNjkgMTFCMztCRjRDOzExMDggMTE2OSAxMUIzOworQkY0RDtCRjREOzExMDggMTE2OSAxMUI0O0JGNEQ7MTEwOCAxMTY5IDExQjQ7CitCRjRFO0JGNEU7MTEwOCAxMTY5IDExQjU7QkY0RTsxMTA4IDExNjkgMTFCNTsKK0JGNEY7QkY0RjsxMTA4IDExNjkgMTFCNjtCRjRGOzExMDggMTE2OSAxMUI2OworQkY1MDtCRjUwOzExMDggMTE2OSAxMUI3O0JGNTA7MTEwOCAxMTY5IDExQjc7CitCRjUxO0JGNTE7MTEwOCAxMTY5IDExQjg7QkY1MTsxMTA4IDExNjkgMTFCODsKK0JGNTI7QkY1MjsxMTA4IDExNjkgMTFCOTtCRjUyOzExMDggMTE2OSAxMUI5OworQkY1MztCRjUzOzExMDggMTE2OSAxMUJBO0JGNTM7MTEwOCAxMTY5IDExQkE7CitCRjU0O0JGNTQ7MTEwOCAxMTY5IDExQkI7QkY1NDsxMTA4IDExNjkgMTFCQjsKK0JGNTU7QkY1NTsxMTA4IDExNjkgMTFCQztCRjU1OzExMDggMTE2OSAxMUJDOworQkY1NjtCRjU2OzExMDggMTE2OSAxMUJEO0JGNTY7MTEwOCAxMTY5IDExQkQ7CitCRjU3O0JGNTc7MTEwOCAxMTY5IDExQkU7QkY1NzsxMTA4IDExNjkgMTFCRTsKK0JGNTg7QkY1ODsxMTA4IDExNjkgMTFCRjtCRjU4OzExMDggMTE2OSAxMUJGOworQkY1OTtCRjU5OzExMDggMTE2OSAxMUMwO0JGNTk7MTEwOCAxMTY5IDExQzA7CitCRjVBO0JGNUE7MTEwOCAxMTY5IDExQzE7QkY1QTsxMTA4IDExNjkgMTFDMTsKK0JGNUI7QkY1QjsxMTA4IDExNjkgMTFDMjtCRjVCOzExMDggMTE2OSAxMUMyOworQkY1QztCRjVDOzExMDggMTE2QTtCRjVDOzExMDggMTE2QTsKK0JGNUQ7QkY1RDsxMTA4IDExNkEgMTFBODtCRjVEOzExMDggMTE2QSAxMUE4OworQkY1RTtCRjVFOzExMDggMTE2QSAxMUE5O0JGNUU7MTEwOCAxMTZBIDExQTk7CitCRjVGO0JGNUY7MTEwOCAxMTZBIDExQUE7QkY1RjsxMTA4IDExNkEgMTFBQTsKK0JGNjA7QkY2MDsxMTA4IDExNkEgMTFBQjtCRjYwOzExMDggMTE2QSAxMUFCOworQkY2MTtCRjYxOzExMDggMTE2QSAxMUFDO0JGNjE7MTEwOCAxMTZBIDExQUM7CitCRjYyO0JGNjI7MTEwOCAxMTZBIDExQUQ7QkY2MjsxMTA4IDExNkEgMTFBRDsKK0JGNjM7QkY2MzsxMTA4IDExNkEgMTFBRTtCRjYzOzExMDggMTE2QSAxMUFFOworQkY2NDtCRjY0OzExMDggMTE2QSAxMUFGO0JGNjQ7MTEwOCAxMTZBIDExQUY7CitCRjY1O0JGNjU7MTEwOCAxMTZBIDExQjA7QkY2NTsxMTA4IDExNkEgMTFCMDsKK0JGNjY7QkY2NjsxMTA4IDExNkEgMTFCMTtCRjY2OzExMDggMTE2QSAxMUIxOworQkY2NztCRjY3OzExMDggMTE2QSAxMUIyO0JGNjc7MTEwOCAxMTZBIDExQjI7CitCRjY4O0JGNjg7MTEwOCAxMTZBIDExQjM7QkY2ODsxMTA4IDExNkEgMTFCMzsKK0JGNjk7QkY2OTsxMTA4IDExNkEgMTFCNDtCRjY5OzExMDggMTE2QSAxMUI0OworQkY2QTtCRjZBOzExMDggMTE2QSAxMUI1O0JGNkE7MTEwOCAxMTZBIDExQjU7CitCRjZCO0JGNkI7MTEwOCAxMTZBIDExQjY7QkY2QjsxMTA4IDExNkEgMTFCNjsKK0JGNkM7QkY2QzsxMTA4IDExNkEgMTFCNztCRjZDOzExMDggMTE2QSAxMUI3OworQkY2RDtCRjZEOzExMDggMTE2QSAxMUI4O0JGNkQ7MTEwOCAxMTZBIDExQjg7CitCRjZFO0JGNkU7MTEwOCAxMTZBIDExQjk7QkY2RTsxMTA4IDExNkEgMTFCOTsKK0JGNkY7QkY2RjsxMTA4IDExNkEgMTFCQTtCRjZGOzExMDggMTE2QSAxMUJBOworQkY3MDtCRjcwOzExMDggMTE2QSAxMUJCO0JGNzA7MTEwOCAxMTZBIDExQkI7CitCRjcxO0JGNzE7MTEwOCAxMTZBIDExQkM7QkY3MTsxMTA4IDExNkEgMTFCQzsKK0JGNzI7QkY3MjsxMTA4IDExNkEgMTFCRDtCRjcyOzExMDggMTE2QSAxMUJEOworQkY3MztCRjczOzExMDggMTE2QSAxMUJFO0JGNzM7MTEwOCAxMTZBIDExQkU7CitCRjc0O0JGNzQ7MTEwOCAxMTZBIDExQkY7QkY3NDsxMTA4IDExNkEgMTFCRjsKK0JGNzU7QkY3NTsxMTA4IDExNkEgMTFDMDtCRjc1OzExMDggMTE2QSAxMUMwOworQkY3NjtCRjc2OzExMDggMTE2QSAxMUMxO0JGNzY7MTEwOCAxMTZBIDExQzE7CitCRjc3O0JGNzc7MTEwOCAxMTZBIDExQzI7QkY3NzsxMTA4IDExNkEgMTFDMjsKK0JGNzg7QkY3ODsxMTA4IDExNkI7QkY3ODsxMTA4IDExNkI7CitCRjc5O0JGNzk7MTEwOCAxMTZCIDExQTg7QkY3OTsxMTA4IDExNkIgMTFBODsKK0JGN0E7QkY3QTsxMTA4IDExNkIgMTFBOTtCRjdBOzExMDggMTE2QiAxMUE5OworQkY3QjtCRjdCOzExMDggMTE2QiAxMUFBO0JGN0I7MTEwOCAxMTZCIDExQUE7CitCRjdDO0JGN0M7MTEwOCAxMTZCIDExQUI7QkY3QzsxMTA4IDExNkIgMTFBQjsKK0JGN0Q7QkY3RDsxMTA4IDExNkIgMTFBQztCRjdEOzExMDggMTE2QiAxMUFDOworQkY3RTtCRjdFOzExMDggMTE2QiAxMUFEO0JGN0U7MTEwOCAxMTZCIDExQUQ7CitCRjdGO0JGN0Y7MTEwOCAxMTZCIDExQUU7QkY3RjsxMTA4IDExNkIgMTFBRTsKK0JGODA7QkY4MDsxMTA4IDExNkIgMTFBRjtCRjgwOzExMDggMTE2QiAxMUFGOworQkY4MTtCRjgxOzExMDggMTE2QiAxMUIwO0JGODE7MTEwOCAxMTZCIDExQjA7CitCRjgyO0JGODI7MTEwOCAxMTZCIDExQjE7QkY4MjsxMTA4IDExNkIgMTFCMTsKK0JGODM7QkY4MzsxMTA4IDExNkIgMTFCMjtCRjgzOzExMDggMTE2QiAxMUIyOworQkY4NDtCRjg0OzExMDggMTE2QiAxMUIzO0JGODQ7MTEwOCAxMTZCIDExQjM7CitCRjg1O0JGODU7MTEwOCAxMTZCIDExQjQ7QkY4NTsxMTA4IDExNkIgMTFCNDsKK0JGODY7QkY4NjsxMTA4IDExNkIgMTFCNTtCRjg2OzExMDggMTE2QiAxMUI1OworQkY4NztCRjg3OzExMDggMTE2QiAxMUI2O0JGODc7MTEwOCAxMTZCIDExQjY7CitCRjg4O0JGODg7MTEwOCAxMTZCIDExQjc7QkY4ODsxMTA4IDExNkIgMTFCNzsKK0JGODk7QkY4OTsxMTA4IDExNkIgMTFCODtCRjg5OzExMDggMTE2QiAxMUI4OworQkY4QTtCRjhBOzExMDggMTE2QiAxMUI5O0JGOEE7MTEwOCAxMTZCIDExQjk7CitCRjhCO0JGOEI7MTEwOCAxMTZCIDExQkE7QkY4QjsxMTA4IDExNkIgMTFCQTsKK0JGOEM7QkY4QzsxMTA4IDExNkIgMTFCQjtCRjhDOzExMDggMTE2QiAxMUJCOworQkY4RDtCRjhEOzExMDggMTE2QiAxMUJDO0JGOEQ7MTEwOCAxMTZCIDExQkM7CitCRjhFO0JGOEU7MTEwOCAxMTZCIDExQkQ7QkY4RTsxMTA4IDExNkIgMTFCRDsKK0JGOEY7QkY4RjsxMTA4IDExNkIgMTFCRTtCRjhGOzExMDggMTE2QiAxMUJFOworQkY5MDtCRjkwOzExMDggMTE2QiAxMUJGO0JGOTA7MTEwOCAxMTZCIDExQkY7CitCRjkxO0JGOTE7MTEwOCAxMTZCIDExQzA7QkY5MTsxMTA4IDExNkIgMTFDMDsKK0JGOTI7QkY5MjsxMTA4IDExNkIgMTFDMTtCRjkyOzExMDggMTE2QiAxMUMxOworQkY5MztCRjkzOzExMDggMTE2QiAxMUMyO0JGOTM7MTEwOCAxMTZCIDExQzI7CitCRjk0O0JGOTQ7MTEwOCAxMTZDO0JGOTQ7MTEwOCAxMTZDOworQkY5NTtCRjk1OzExMDggMTE2QyAxMUE4O0JGOTU7MTEwOCAxMTZDIDExQTg7CitCRjk2O0JGOTY7MTEwOCAxMTZDIDExQTk7QkY5NjsxMTA4IDExNkMgMTFBOTsKK0JGOTc7QkY5NzsxMTA4IDExNkMgMTFBQTtCRjk3OzExMDggMTE2QyAxMUFBOworQkY5ODtCRjk4OzExMDggMTE2QyAxMUFCO0JGOTg7MTEwOCAxMTZDIDExQUI7CitCRjk5O0JGOTk7MTEwOCAxMTZDIDExQUM7QkY5OTsxMTA4IDExNkMgMTFBQzsKK0JGOUE7QkY5QTsxMTA4IDExNkMgMTFBRDtCRjlBOzExMDggMTE2QyAxMUFEOworQkY5QjtCRjlCOzExMDggMTE2QyAxMUFFO0JGOUI7MTEwOCAxMTZDIDExQUU7CitCRjlDO0JGOUM7MTEwOCAxMTZDIDExQUY7QkY5QzsxMTA4IDExNkMgMTFBRjsKK0JGOUQ7QkY5RDsxMTA4IDExNkMgMTFCMDtCRjlEOzExMDggMTE2QyAxMUIwOworQkY5RTtCRjlFOzExMDggMTE2QyAxMUIxO0JGOUU7MTEwOCAxMTZDIDExQjE7CitCRjlGO0JGOUY7MTEwOCAxMTZDIDExQjI7QkY5RjsxMTA4IDExNkMgMTFCMjsKK0JGQTA7QkZBMDsxMTA4IDExNkMgMTFCMztCRkEwOzExMDggMTE2QyAxMUIzOworQkZBMTtCRkExOzExMDggMTE2QyAxMUI0O0JGQTE7MTEwOCAxMTZDIDExQjQ7CitCRkEyO0JGQTI7MTEwOCAxMTZDIDExQjU7QkZBMjsxMTA4IDExNkMgMTFCNTsKK0JGQTM7QkZBMzsxMTA4IDExNkMgMTFCNjtCRkEzOzExMDggMTE2QyAxMUI2OworQkZBNDtCRkE0OzExMDggMTE2QyAxMUI3O0JGQTQ7MTEwOCAxMTZDIDExQjc7CitCRkE1O0JGQTU7MTEwOCAxMTZDIDExQjg7QkZBNTsxMTA4IDExNkMgMTFCODsKK0JGQTY7QkZBNjsxMTA4IDExNkMgMTFCOTtCRkE2OzExMDggMTE2QyAxMUI5OworQkZBNztCRkE3OzExMDggMTE2QyAxMUJBO0JGQTc7MTEwOCAxMTZDIDExQkE7CitCRkE4O0JGQTg7MTEwOCAxMTZDIDExQkI7QkZBODsxMTA4IDExNkMgMTFCQjsKK0JGQTk7QkZBOTsxMTA4IDExNkMgMTFCQztCRkE5OzExMDggMTE2QyAxMUJDOworQkZBQTtCRkFBOzExMDggMTE2QyAxMUJEO0JGQUE7MTEwOCAxMTZDIDExQkQ7CitCRkFCO0JGQUI7MTEwOCAxMTZDIDExQkU7QkZBQjsxMTA4IDExNkMgMTFCRTsKK0JGQUM7QkZBQzsxMTA4IDExNkMgMTFCRjtCRkFDOzExMDggMTE2QyAxMUJGOworQkZBRDtCRkFEOzExMDggMTE2QyAxMUMwO0JGQUQ7MTEwOCAxMTZDIDExQzA7CitCRkFFO0JGQUU7MTEwOCAxMTZDIDExQzE7QkZBRTsxMTA4IDExNkMgMTFDMTsKK0JGQUY7QkZBRjsxMTA4IDExNkMgMTFDMjtCRkFGOzExMDggMTE2QyAxMUMyOworQkZCMDtCRkIwOzExMDggMTE2RDtCRkIwOzExMDggMTE2RDsKK0JGQjE7QkZCMTsxMTA4IDExNkQgMTFBODtCRkIxOzExMDggMTE2RCAxMUE4OworQkZCMjtCRkIyOzExMDggMTE2RCAxMUE5O0JGQjI7MTEwOCAxMTZEIDExQTk7CitCRkIzO0JGQjM7MTEwOCAxMTZEIDExQUE7QkZCMzsxMTA4IDExNkQgMTFBQTsKK0JGQjQ7QkZCNDsxMTA4IDExNkQgMTFBQjtCRkI0OzExMDggMTE2RCAxMUFCOworQkZCNTtCRkI1OzExMDggMTE2RCAxMUFDO0JGQjU7MTEwOCAxMTZEIDExQUM7CitCRkI2O0JGQjY7MTEwOCAxMTZEIDExQUQ7QkZCNjsxMTA4IDExNkQgMTFBRDsKK0JGQjc7QkZCNzsxMTA4IDExNkQgMTFBRTtCRkI3OzExMDggMTE2RCAxMUFFOworQkZCODtCRkI4OzExMDggMTE2RCAxMUFGO0JGQjg7MTEwOCAxMTZEIDExQUY7CitCRkI5O0JGQjk7MTEwOCAxMTZEIDExQjA7QkZCOTsxMTA4IDExNkQgMTFCMDsKK0JGQkE7QkZCQTsxMTA4IDExNkQgMTFCMTtCRkJBOzExMDggMTE2RCAxMUIxOworQkZCQjtCRkJCOzExMDggMTE2RCAxMUIyO0JGQkI7MTEwOCAxMTZEIDExQjI7CitCRkJDO0JGQkM7MTEwOCAxMTZEIDExQjM7QkZCQzsxMTA4IDExNkQgMTFCMzsKK0JGQkQ7QkZCRDsxMTA4IDExNkQgMTFCNDtCRkJEOzExMDggMTE2RCAxMUI0OworQkZCRTtCRkJFOzExMDggMTE2RCAxMUI1O0JGQkU7MTEwOCAxMTZEIDExQjU7CitCRkJGO0JGQkY7MTEwOCAxMTZEIDExQjY7QkZCRjsxMTA4IDExNkQgMTFCNjsKK0JGQzA7QkZDMDsxMTA4IDExNkQgMTFCNztCRkMwOzExMDggMTE2RCAxMUI3OworQkZDMTtCRkMxOzExMDggMTE2RCAxMUI4O0JGQzE7MTEwOCAxMTZEIDExQjg7CitCRkMyO0JGQzI7MTEwOCAxMTZEIDExQjk7QkZDMjsxMTA4IDExNkQgMTFCOTsKK0JGQzM7QkZDMzsxMTA4IDExNkQgMTFCQTtCRkMzOzExMDggMTE2RCAxMUJBOworQkZDNDtCRkM0OzExMDggMTE2RCAxMUJCO0JGQzQ7MTEwOCAxMTZEIDExQkI7CitCRkM1O0JGQzU7MTEwOCAxMTZEIDExQkM7QkZDNTsxMTA4IDExNkQgMTFCQzsKK0JGQzY7QkZDNjsxMTA4IDExNkQgMTFCRDtCRkM2OzExMDggMTE2RCAxMUJEOworQkZDNztCRkM3OzExMDggMTE2RCAxMUJFO0JGQzc7MTEwOCAxMTZEIDExQkU7CitCRkM4O0JGQzg7MTEwOCAxMTZEIDExQkY7QkZDODsxMTA4IDExNkQgMTFCRjsKK0JGQzk7QkZDOTsxMTA4IDExNkQgMTFDMDtCRkM5OzExMDggMTE2RCAxMUMwOworQkZDQTtCRkNBOzExMDggMTE2RCAxMUMxO0JGQ0E7MTEwOCAxMTZEIDExQzE7CitCRkNCO0JGQ0I7MTEwOCAxMTZEIDExQzI7QkZDQjsxMTA4IDExNkQgMTFDMjsKK0JGQ0M7QkZDQzsxMTA4IDExNkU7QkZDQzsxMTA4IDExNkU7CitCRkNEO0JGQ0Q7MTEwOCAxMTZFIDExQTg7QkZDRDsxMTA4IDExNkUgMTFBODsKK0JGQ0U7QkZDRTsxMTA4IDExNkUgMTFBOTtCRkNFOzExMDggMTE2RSAxMUE5OworQkZDRjtCRkNGOzExMDggMTE2RSAxMUFBO0JGQ0Y7MTEwOCAxMTZFIDExQUE7CitCRkQwO0JGRDA7MTEwOCAxMTZFIDExQUI7QkZEMDsxMTA4IDExNkUgMTFBQjsKK0JGRDE7QkZEMTsxMTA4IDExNkUgMTFBQztCRkQxOzExMDggMTE2RSAxMUFDOworQkZEMjtCRkQyOzExMDggMTE2RSAxMUFEO0JGRDI7MTEwOCAxMTZFIDExQUQ7CitCRkQzO0JGRDM7MTEwOCAxMTZFIDExQUU7QkZEMzsxMTA4IDExNkUgMTFBRTsKK0JGRDQ7QkZENDsxMTA4IDExNkUgMTFBRjtCRkQ0OzExMDggMTE2RSAxMUFGOworQkZENTtCRkQ1OzExMDggMTE2RSAxMUIwO0JGRDU7MTEwOCAxMTZFIDExQjA7CitCRkQ2O0JGRDY7MTEwOCAxMTZFIDExQjE7QkZENjsxMTA4IDExNkUgMTFCMTsKK0JGRDc7QkZENzsxMTA4IDExNkUgMTFCMjtCRkQ3OzExMDggMTE2RSAxMUIyOworQkZEODtCRkQ4OzExMDggMTE2RSAxMUIzO0JGRDg7MTEwOCAxMTZFIDExQjM7CitCRkQ5O0JGRDk7MTEwOCAxMTZFIDExQjQ7QkZEOTsxMTA4IDExNkUgMTFCNDsKK0JGREE7QkZEQTsxMTA4IDExNkUgMTFCNTtCRkRBOzExMDggMTE2RSAxMUI1OworQkZEQjtCRkRCOzExMDggMTE2RSAxMUI2O0JGREI7MTEwOCAxMTZFIDExQjY7CitCRkRDO0JGREM7MTEwOCAxMTZFIDExQjc7QkZEQzsxMTA4IDExNkUgMTFCNzsKK0JGREQ7QkZERDsxMTA4IDExNkUgMTFCODtCRkREOzExMDggMTE2RSAxMUI4OworQkZERTtCRkRFOzExMDggMTE2RSAxMUI5O0JGREU7MTEwOCAxMTZFIDExQjk7CitCRkRGO0JGREY7MTEwOCAxMTZFIDExQkE7QkZERjsxMTA4IDExNkUgMTFCQTsKK0JGRTA7QkZFMDsxMTA4IDExNkUgMTFCQjtCRkUwOzExMDggMTE2RSAxMUJCOworQkZFMTtCRkUxOzExMDggMTE2RSAxMUJDO0JGRTE7MTEwOCAxMTZFIDExQkM7CitCRkUyO0JGRTI7MTEwOCAxMTZFIDExQkQ7QkZFMjsxMTA4IDExNkUgMTFCRDsKK0JGRTM7QkZFMzsxMTA4IDExNkUgMTFCRTtCRkUzOzExMDggMTE2RSAxMUJFOworQkZFNDtCRkU0OzExMDggMTE2RSAxMUJGO0JGRTQ7MTEwOCAxMTZFIDExQkY7CitCRkU1O0JGRTU7MTEwOCAxMTZFIDExQzA7QkZFNTsxMTA4IDExNkUgMTFDMDsKK0JGRTY7QkZFNjsxMTA4IDExNkUgMTFDMTtCRkU2OzExMDggMTE2RSAxMUMxOworQkZFNztCRkU3OzExMDggMTE2RSAxMUMyO0JGRTc7MTEwOCAxMTZFIDExQzI7CitCRkU4O0JGRTg7MTEwOCAxMTZGO0JGRTg7MTEwOCAxMTZGOworQkZFOTtCRkU5OzExMDggMTE2RiAxMUE4O0JGRTk7MTEwOCAxMTZGIDExQTg7CitCRkVBO0JGRUE7MTEwOCAxMTZGIDExQTk7QkZFQTsxMTA4IDExNkYgMTFBOTsKK0JGRUI7QkZFQjsxMTA4IDExNkYgMTFBQTtCRkVCOzExMDggMTE2RiAxMUFBOworQkZFQztCRkVDOzExMDggMTE2RiAxMUFCO0JGRUM7MTEwOCAxMTZGIDExQUI7CitCRkVEO0JGRUQ7MTEwOCAxMTZGIDExQUM7QkZFRDsxMTA4IDExNkYgMTFBQzsKK0JGRUU7QkZFRTsxMTA4IDExNkYgMTFBRDtCRkVFOzExMDggMTE2RiAxMUFEOworQkZFRjtCRkVGOzExMDggMTE2RiAxMUFFO0JGRUY7MTEwOCAxMTZGIDExQUU7CitCRkYwO0JGRjA7MTEwOCAxMTZGIDExQUY7QkZGMDsxMTA4IDExNkYgMTFBRjsKK0JGRjE7QkZGMTsxMTA4IDExNkYgMTFCMDtCRkYxOzExMDggMTE2RiAxMUIwOworQkZGMjtCRkYyOzExMDggMTE2RiAxMUIxO0JGRjI7MTEwOCAxMTZGIDExQjE7CitCRkYzO0JGRjM7MTEwOCAxMTZGIDExQjI7QkZGMzsxMTA4IDExNkYgMTFCMjsKK0JGRjQ7QkZGNDsxMTA4IDExNkYgMTFCMztCRkY0OzExMDggMTE2RiAxMUIzOworQkZGNTtCRkY1OzExMDggMTE2RiAxMUI0O0JGRjU7MTEwOCAxMTZGIDExQjQ7CitCRkY2O0JGRjY7MTEwOCAxMTZGIDExQjU7QkZGNjsxMTA4IDExNkYgMTFCNTsKK0JGRjc7QkZGNzsxMTA4IDExNkYgMTFCNjtCRkY3OzExMDggMTE2RiAxMUI2OworQkZGODtCRkY4OzExMDggMTE2RiAxMUI3O0JGRjg7MTEwOCAxMTZGIDExQjc7CitCRkY5O0JGRjk7MTEwOCAxMTZGIDExQjg7QkZGOTsxMTA4IDExNkYgMTFCODsKK0JGRkE7QkZGQTsxMTA4IDExNkYgMTFCOTtCRkZBOzExMDggMTE2RiAxMUI5OworQkZGQjtCRkZCOzExMDggMTE2RiAxMUJBO0JGRkI7MTEwOCAxMTZGIDExQkE7CitCRkZDO0JGRkM7MTEwOCAxMTZGIDExQkI7QkZGQzsxMTA4IDExNkYgMTFCQjsKK0JGRkQ7QkZGRDsxMTA4IDExNkYgMTFCQztCRkZEOzExMDggMTE2RiAxMUJDOworQkZGRTtCRkZFOzExMDggMTE2RiAxMUJEO0JGRkU7MTEwOCAxMTZGIDExQkQ7CitCRkZGO0JGRkY7MTEwOCAxMTZGIDExQkU7QkZGRjsxMTA4IDExNkYgMTFCRTsKK0MwMDA7QzAwMDsxMTA4IDExNkYgMTFCRjtDMDAwOzExMDggMTE2RiAxMUJGOworQzAwMTtDMDAxOzExMDggMTE2RiAxMUMwO0MwMDE7MTEwOCAxMTZGIDExQzA7CitDMDAyO0MwMDI7MTEwOCAxMTZGIDExQzE7QzAwMjsxMTA4IDExNkYgMTFDMTsKK0MwMDM7QzAwMzsxMTA4IDExNkYgMTFDMjtDMDAzOzExMDggMTE2RiAxMUMyOworQzAwNDtDMDA0OzExMDggMTE3MDtDMDA0OzExMDggMTE3MDsKK0MwMDU7QzAwNTsxMTA4IDExNzAgMTFBODtDMDA1OzExMDggMTE3MCAxMUE4OworQzAwNjtDMDA2OzExMDggMTE3MCAxMUE5O0MwMDY7MTEwOCAxMTcwIDExQTk7CitDMDA3O0MwMDc7MTEwOCAxMTcwIDExQUE7QzAwNzsxMTA4IDExNzAgMTFBQTsKK0MwMDg7QzAwODsxMTA4IDExNzAgMTFBQjtDMDA4OzExMDggMTE3MCAxMUFCOworQzAwOTtDMDA5OzExMDggMTE3MCAxMUFDO0MwMDk7MTEwOCAxMTcwIDExQUM7CitDMDBBO0MwMEE7MTEwOCAxMTcwIDExQUQ7QzAwQTsxMTA4IDExNzAgMTFBRDsKK0MwMEI7QzAwQjsxMTA4IDExNzAgMTFBRTtDMDBCOzExMDggMTE3MCAxMUFFOworQzAwQztDMDBDOzExMDggMTE3MCAxMUFGO0MwMEM7MTEwOCAxMTcwIDExQUY7CitDMDBEO0MwMEQ7MTEwOCAxMTcwIDExQjA7QzAwRDsxMTA4IDExNzAgMTFCMDsKK0MwMEU7QzAwRTsxMTA4IDExNzAgMTFCMTtDMDBFOzExMDggMTE3MCAxMUIxOworQzAwRjtDMDBGOzExMDggMTE3MCAxMUIyO0MwMEY7MTEwOCAxMTcwIDExQjI7CitDMDEwO0MwMTA7MTEwOCAxMTcwIDExQjM7QzAxMDsxMTA4IDExNzAgMTFCMzsKK0MwMTE7QzAxMTsxMTA4IDExNzAgMTFCNDtDMDExOzExMDggMTE3MCAxMUI0OworQzAxMjtDMDEyOzExMDggMTE3MCAxMUI1O0MwMTI7MTEwOCAxMTcwIDExQjU7CitDMDEzO0MwMTM7MTEwOCAxMTcwIDExQjY7QzAxMzsxMTA4IDExNzAgMTFCNjsKK0MwMTQ7QzAxNDsxMTA4IDExNzAgMTFCNztDMDE0OzExMDggMTE3MCAxMUI3OworQzAxNTtDMDE1OzExMDggMTE3MCAxMUI4O0MwMTU7MTEwOCAxMTcwIDExQjg7CitDMDE2O0MwMTY7MTEwOCAxMTcwIDExQjk7QzAxNjsxMTA4IDExNzAgMTFCOTsKK0MwMTc7QzAxNzsxMTA4IDExNzAgMTFCQTtDMDE3OzExMDggMTE3MCAxMUJBOworQzAxODtDMDE4OzExMDggMTE3MCAxMUJCO0MwMTg7MTEwOCAxMTcwIDExQkI7CitDMDE5O0MwMTk7MTEwOCAxMTcwIDExQkM7QzAxOTsxMTA4IDExNzAgMTFCQzsKK0MwMUE7QzAxQTsxMTA4IDExNzAgMTFCRDtDMDFBOzExMDggMTE3MCAxMUJEOworQzAxQjtDMDFCOzExMDggMTE3MCAxMUJFO0MwMUI7MTEwOCAxMTcwIDExQkU7CitDMDFDO0MwMUM7MTEwOCAxMTcwIDExQkY7QzAxQzsxMTA4IDExNzAgMTFCRjsKK0MwMUQ7QzAxRDsxMTA4IDExNzAgMTFDMDtDMDFEOzExMDggMTE3MCAxMUMwOworQzAxRTtDMDFFOzExMDggMTE3MCAxMUMxO0MwMUU7MTEwOCAxMTcwIDExQzE7CitDMDFGO0MwMUY7MTEwOCAxMTcwIDExQzI7QzAxRjsxMTA4IDExNzAgMTFDMjsKK0MwMjA7QzAyMDsxMTA4IDExNzE7QzAyMDsxMTA4IDExNzE7CitDMDIxO0MwMjE7MTEwOCAxMTcxIDExQTg7QzAyMTsxMTA4IDExNzEgMTFBODsKK0MwMjI7QzAyMjsxMTA4IDExNzEgMTFBOTtDMDIyOzExMDggMTE3MSAxMUE5OworQzAyMztDMDIzOzExMDggMTE3MSAxMUFBO0MwMjM7MTEwOCAxMTcxIDExQUE7CitDMDI0O0MwMjQ7MTEwOCAxMTcxIDExQUI7QzAyNDsxMTA4IDExNzEgMTFBQjsKK0MwMjU7QzAyNTsxMTA4IDExNzEgMTFBQztDMDI1OzExMDggMTE3MSAxMUFDOworQzAyNjtDMDI2OzExMDggMTE3MSAxMUFEO0MwMjY7MTEwOCAxMTcxIDExQUQ7CitDMDI3O0MwMjc7MTEwOCAxMTcxIDExQUU7QzAyNzsxMTA4IDExNzEgMTFBRTsKK0MwMjg7QzAyODsxMTA4IDExNzEgMTFBRjtDMDI4OzExMDggMTE3MSAxMUFGOworQzAyOTtDMDI5OzExMDggMTE3MSAxMUIwO0MwMjk7MTEwOCAxMTcxIDExQjA7CitDMDJBO0MwMkE7MTEwOCAxMTcxIDExQjE7QzAyQTsxMTA4IDExNzEgMTFCMTsKK0MwMkI7QzAyQjsxMTA4IDExNzEgMTFCMjtDMDJCOzExMDggMTE3MSAxMUIyOworQzAyQztDMDJDOzExMDggMTE3MSAxMUIzO0MwMkM7MTEwOCAxMTcxIDExQjM7CitDMDJEO0MwMkQ7MTEwOCAxMTcxIDExQjQ7QzAyRDsxMTA4IDExNzEgMTFCNDsKK0MwMkU7QzAyRTsxMTA4IDExNzEgMTFCNTtDMDJFOzExMDggMTE3MSAxMUI1OworQzAyRjtDMDJGOzExMDggMTE3MSAxMUI2O0MwMkY7MTEwOCAxMTcxIDExQjY7CitDMDMwO0MwMzA7MTEwOCAxMTcxIDExQjc7QzAzMDsxMTA4IDExNzEgMTFCNzsKK0MwMzE7QzAzMTsxMTA4IDExNzEgMTFCODtDMDMxOzExMDggMTE3MSAxMUI4OworQzAzMjtDMDMyOzExMDggMTE3MSAxMUI5O0MwMzI7MTEwOCAxMTcxIDExQjk7CitDMDMzO0MwMzM7MTEwOCAxMTcxIDExQkE7QzAzMzsxMTA4IDExNzEgMTFCQTsKK0MwMzQ7QzAzNDsxMTA4IDExNzEgMTFCQjtDMDM0OzExMDggMTE3MSAxMUJCOworQzAzNTtDMDM1OzExMDggMTE3MSAxMUJDO0MwMzU7MTEwOCAxMTcxIDExQkM7CitDMDM2O0MwMzY7MTEwOCAxMTcxIDExQkQ7QzAzNjsxMTA4IDExNzEgMTFCRDsKK0MwMzc7QzAzNzsxMTA4IDExNzEgMTFCRTtDMDM3OzExMDggMTE3MSAxMUJFOworQzAzODtDMDM4OzExMDggMTE3MSAxMUJGO0MwMzg7MTEwOCAxMTcxIDExQkY7CitDMDM5O0MwMzk7MTEwOCAxMTcxIDExQzA7QzAzOTsxMTA4IDExNzEgMTFDMDsKK0MwM0E7QzAzQTsxMTA4IDExNzEgMTFDMTtDMDNBOzExMDggMTE3MSAxMUMxOworQzAzQjtDMDNCOzExMDggMTE3MSAxMUMyO0MwM0I7MTEwOCAxMTcxIDExQzI7CitDMDNDO0MwM0M7MTEwOCAxMTcyO0MwM0M7MTEwOCAxMTcyOworQzAzRDtDMDNEOzExMDggMTE3MiAxMUE4O0MwM0Q7MTEwOCAxMTcyIDExQTg7CitDMDNFO0MwM0U7MTEwOCAxMTcyIDExQTk7QzAzRTsxMTA4IDExNzIgMTFBOTsKK0MwM0Y7QzAzRjsxMTA4IDExNzIgMTFBQTtDMDNGOzExMDggMTE3MiAxMUFBOworQzA0MDtDMDQwOzExMDggMTE3MiAxMUFCO0MwNDA7MTEwOCAxMTcyIDExQUI7CitDMDQxO0MwNDE7MTEwOCAxMTcyIDExQUM7QzA0MTsxMTA4IDExNzIgMTFBQzsKK0MwNDI7QzA0MjsxMTA4IDExNzIgMTFBRDtDMDQyOzExMDggMTE3MiAxMUFEOworQzA0MztDMDQzOzExMDggMTE3MiAxMUFFO0MwNDM7MTEwOCAxMTcyIDExQUU7CitDMDQ0O0MwNDQ7MTEwOCAxMTcyIDExQUY7QzA0NDsxMTA4IDExNzIgMTFBRjsKK0MwNDU7QzA0NTsxMTA4IDExNzIgMTFCMDtDMDQ1OzExMDggMTE3MiAxMUIwOworQzA0NjtDMDQ2OzExMDggMTE3MiAxMUIxO0MwNDY7MTEwOCAxMTcyIDExQjE7CitDMDQ3O0MwNDc7MTEwOCAxMTcyIDExQjI7QzA0NzsxMTA4IDExNzIgMTFCMjsKK0MwNDg7QzA0ODsxMTA4IDExNzIgMTFCMztDMDQ4OzExMDggMTE3MiAxMUIzOworQzA0OTtDMDQ5OzExMDggMTE3MiAxMUI0O0MwNDk7MTEwOCAxMTcyIDExQjQ7CitDMDRBO0MwNEE7MTEwOCAxMTcyIDExQjU7QzA0QTsxMTA4IDExNzIgMTFCNTsKK0MwNEI7QzA0QjsxMTA4IDExNzIgMTFCNjtDMDRCOzExMDggMTE3MiAxMUI2OworQzA0QztDMDRDOzExMDggMTE3MiAxMUI3O0MwNEM7MTEwOCAxMTcyIDExQjc7CitDMDREO0MwNEQ7MTEwOCAxMTcyIDExQjg7QzA0RDsxMTA4IDExNzIgMTFCODsKK0MwNEU7QzA0RTsxMTA4IDExNzIgMTFCOTtDMDRFOzExMDggMTE3MiAxMUI5OworQzA0RjtDMDRGOzExMDggMTE3MiAxMUJBO0MwNEY7MTEwOCAxMTcyIDExQkE7CitDMDUwO0MwNTA7MTEwOCAxMTcyIDExQkI7QzA1MDsxMTA4IDExNzIgMTFCQjsKK0MwNTE7QzA1MTsxMTA4IDExNzIgMTFCQztDMDUxOzExMDggMTE3MiAxMUJDOworQzA1MjtDMDUyOzExMDggMTE3MiAxMUJEO0MwNTI7MTEwOCAxMTcyIDExQkQ7CitDMDUzO0MwNTM7MTEwOCAxMTcyIDExQkU7QzA1MzsxMTA4IDExNzIgMTFCRTsKK0MwNTQ7QzA1NDsxMTA4IDExNzIgMTFCRjtDMDU0OzExMDggMTE3MiAxMUJGOworQzA1NTtDMDU1OzExMDggMTE3MiAxMUMwO0MwNTU7MTEwOCAxMTcyIDExQzA7CitDMDU2O0MwNTY7MTEwOCAxMTcyIDExQzE7QzA1NjsxMTA4IDExNzIgMTFDMTsKK0MwNTc7QzA1NzsxMTA4IDExNzIgMTFDMjtDMDU3OzExMDggMTE3MiAxMUMyOworQzA1ODtDMDU4OzExMDggMTE3MztDMDU4OzExMDggMTE3MzsKK0MwNTk7QzA1OTsxMTA4IDExNzMgMTFBODtDMDU5OzExMDggMTE3MyAxMUE4OworQzA1QTtDMDVBOzExMDggMTE3MyAxMUE5O0MwNUE7MTEwOCAxMTczIDExQTk7CitDMDVCO0MwNUI7MTEwOCAxMTczIDExQUE7QzA1QjsxMTA4IDExNzMgMTFBQTsKK0MwNUM7QzA1QzsxMTA4IDExNzMgMTFBQjtDMDVDOzExMDggMTE3MyAxMUFCOworQzA1RDtDMDVEOzExMDggMTE3MyAxMUFDO0MwNUQ7MTEwOCAxMTczIDExQUM7CitDMDVFO0MwNUU7MTEwOCAxMTczIDExQUQ7QzA1RTsxMTA4IDExNzMgMTFBRDsKK0MwNUY7QzA1RjsxMTA4IDExNzMgMTFBRTtDMDVGOzExMDggMTE3MyAxMUFFOworQzA2MDtDMDYwOzExMDggMTE3MyAxMUFGO0MwNjA7MTEwOCAxMTczIDExQUY7CitDMDYxO0MwNjE7MTEwOCAxMTczIDExQjA7QzA2MTsxMTA4IDExNzMgMTFCMDsKK0MwNjI7QzA2MjsxMTA4IDExNzMgMTFCMTtDMDYyOzExMDggMTE3MyAxMUIxOworQzA2MztDMDYzOzExMDggMTE3MyAxMUIyO0MwNjM7MTEwOCAxMTczIDExQjI7CitDMDY0O0MwNjQ7MTEwOCAxMTczIDExQjM7QzA2NDsxMTA4IDExNzMgMTFCMzsKK0MwNjU7QzA2NTsxMTA4IDExNzMgMTFCNDtDMDY1OzExMDggMTE3MyAxMUI0OworQzA2NjtDMDY2OzExMDggMTE3MyAxMUI1O0MwNjY7MTEwOCAxMTczIDExQjU7CitDMDY3O0MwNjc7MTEwOCAxMTczIDExQjY7QzA2NzsxMTA4IDExNzMgMTFCNjsKK0MwNjg7QzA2ODsxMTA4IDExNzMgMTFCNztDMDY4OzExMDggMTE3MyAxMUI3OworQzA2OTtDMDY5OzExMDggMTE3MyAxMUI4O0MwNjk7MTEwOCAxMTczIDExQjg7CitDMDZBO0MwNkE7MTEwOCAxMTczIDExQjk7QzA2QTsxMTA4IDExNzMgMTFCOTsKK0MwNkI7QzA2QjsxMTA4IDExNzMgMTFCQTtDMDZCOzExMDggMTE3MyAxMUJBOworQzA2QztDMDZDOzExMDggMTE3MyAxMUJCO0MwNkM7MTEwOCAxMTczIDExQkI7CitDMDZEO0MwNkQ7MTEwOCAxMTczIDExQkM7QzA2RDsxMTA4IDExNzMgMTFCQzsKK0MwNkU7QzA2RTsxMTA4IDExNzMgMTFCRDtDMDZFOzExMDggMTE3MyAxMUJEOworQzA2RjtDMDZGOzExMDggMTE3MyAxMUJFO0MwNkY7MTEwOCAxMTczIDExQkU7CitDMDcwO0MwNzA7MTEwOCAxMTczIDExQkY7QzA3MDsxMTA4IDExNzMgMTFCRjsKK0MwNzE7QzA3MTsxMTA4IDExNzMgMTFDMDtDMDcxOzExMDggMTE3MyAxMUMwOworQzA3MjtDMDcyOzExMDggMTE3MyAxMUMxO0MwNzI7MTEwOCAxMTczIDExQzE7CitDMDczO0MwNzM7MTEwOCAxMTczIDExQzI7QzA3MzsxMTA4IDExNzMgMTFDMjsKK0MwNzQ7QzA3NDsxMTA4IDExNzQ7QzA3NDsxMTA4IDExNzQ7CitDMDc1O0MwNzU7MTEwOCAxMTc0IDExQTg7QzA3NTsxMTA4IDExNzQgMTFBODsKK0MwNzY7QzA3NjsxMTA4IDExNzQgMTFBOTtDMDc2OzExMDggMTE3NCAxMUE5OworQzA3NztDMDc3OzExMDggMTE3NCAxMUFBO0MwNzc7MTEwOCAxMTc0IDExQUE7CitDMDc4O0MwNzg7MTEwOCAxMTc0IDExQUI7QzA3ODsxMTA4IDExNzQgMTFBQjsKK0MwNzk7QzA3OTsxMTA4IDExNzQgMTFBQztDMDc5OzExMDggMTE3NCAxMUFDOworQzA3QTtDMDdBOzExMDggMTE3NCAxMUFEO0MwN0E7MTEwOCAxMTc0IDExQUQ7CitDMDdCO0MwN0I7MTEwOCAxMTc0IDExQUU7QzA3QjsxMTA4IDExNzQgMTFBRTsKK0MwN0M7QzA3QzsxMTA4IDExNzQgMTFBRjtDMDdDOzExMDggMTE3NCAxMUFGOworQzA3RDtDMDdEOzExMDggMTE3NCAxMUIwO0MwN0Q7MTEwOCAxMTc0IDExQjA7CitDMDdFO0MwN0U7MTEwOCAxMTc0IDExQjE7QzA3RTsxMTA4IDExNzQgMTFCMTsKK0MwN0Y7QzA3RjsxMTA4IDExNzQgMTFCMjtDMDdGOzExMDggMTE3NCAxMUIyOworQzA4MDtDMDgwOzExMDggMTE3NCAxMUIzO0MwODA7MTEwOCAxMTc0IDExQjM7CitDMDgxO0MwODE7MTEwOCAxMTc0IDExQjQ7QzA4MTsxMTA4IDExNzQgMTFCNDsKK0MwODI7QzA4MjsxMTA4IDExNzQgMTFCNTtDMDgyOzExMDggMTE3NCAxMUI1OworQzA4MztDMDgzOzExMDggMTE3NCAxMUI2O0MwODM7MTEwOCAxMTc0IDExQjY7CitDMDg0O0MwODQ7MTEwOCAxMTc0IDExQjc7QzA4NDsxMTA4IDExNzQgMTFCNzsKK0MwODU7QzA4NTsxMTA4IDExNzQgMTFCODtDMDg1OzExMDggMTE3NCAxMUI4OworQzA4NjtDMDg2OzExMDggMTE3NCAxMUI5O0MwODY7MTEwOCAxMTc0IDExQjk7CitDMDg3O0MwODc7MTEwOCAxMTc0IDExQkE7QzA4NzsxMTA4IDExNzQgMTFCQTsKK0MwODg7QzA4ODsxMTA4IDExNzQgMTFCQjtDMDg4OzExMDggMTE3NCAxMUJCOworQzA4OTtDMDg5OzExMDggMTE3NCAxMUJDO0MwODk7MTEwOCAxMTc0IDExQkM7CitDMDhBO0MwOEE7MTEwOCAxMTc0IDExQkQ7QzA4QTsxMTA4IDExNzQgMTFCRDsKK0MwOEI7QzA4QjsxMTA4IDExNzQgMTFCRTtDMDhCOzExMDggMTE3NCAxMUJFOworQzA4QztDMDhDOzExMDggMTE3NCAxMUJGO0MwOEM7MTEwOCAxMTc0IDExQkY7CitDMDhEO0MwOEQ7MTEwOCAxMTc0IDExQzA7QzA4RDsxMTA4IDExNzQgMTFDMDsKK0MwOEU7QzA4RTsxMTA4IDExNzQgMTFDMTtDMDhFOzExMDggMTE3NCAxMUMxOworQzA4RjtDMDhGOzExMDggMTE3NCAxMUMyO0MwOEY7MTEwOCAxMTc0IDExQzI7CitDMDkwO0MwOTA7MTEwOCAxMTc1O0MwOTA7MTEwOCAxMTc1OworQzA5MTtDMDkxOzExMDggMTE3NSAxMUE4O0MwOTE7MTEwOCAxMTc1IDExQTg7CitDMDkyO0MwOTI7MTEwOCAxMTc1IDExQTk7QzA5MjsxMTA4IDExNzUgMTFBOTsKK0MwOTM7QzA5MzsxMTA4IDExNzUgMTFBQTtDMDkzOzExMDggMTE3NSAxMUFBOworQzA5NDtDMDk0OzExMDggMTE3NSAxMUFCO0MwOTQ7MTEwOCAxMTc1IDExQUI7CitDMDk1O0MwOTU7MTEwOCAxMTc1IDExQUM7QzA5NTsxMTA4IDExNzUgMTFBQzsKK0MwOTY7QzA5NjsxMTA4IDExNzUgMTFBRDtDMDk2OzExMDggMTE3NSAxMUFEOworQzA5NztDMDk3OzExMDggMTE3NSAxMUFFO0MwOTc7MTEwOCAxMTc1IDExQUU7CitDMDk4O0MwOTg7MTEwOCAxMTc1IDExQUY7QzA5ODsxMTA4IDExNzUgMTFBRjsKK0MwOTk7QzA5OTsxMTA4IDExNzUgMTFCMDtDMDk5OzExMDggMTE3NSAxMUIwOworQzA5QTtDMDlBOzExMDggMTE3NSAxMUIxO0MwOUE7MTEwOCAxMTc1IDExQjE7CitDMDlCO0MwOUI7MTEwOCAxMTc1IDExQjI7QzA5QjsxMTA4IDExNzUgMTFCMjsKK0MwOUM7QzA5QzsxMTA4IDExNzUgMTFCMztDMDlDOzExMDggMTE3NSAxMUIzOworQzA5RDtDMDlEOzExMDggMTE3NSAxMUI0O0MwOUQ7MTEwOCAxMTc1IDExQjQ7CitDMDlFO0MwOUU7MTEwOCAxMTc1IDExQjU7QzA5RTsxMTA4IDExNzUgMTFCNTsKK0MwOUY7QzA5RjsxMTA4IDExNzUgMTFCNjtDMDlGOzExMDggMTE3NSAxMUI2OworQzBBMDtDMEEwOzExMDggMTE3NSAxMUI3O0MwQTA7MTEwOCAxMTc1IDExQjc7CitDMEExO0MwQTE7MTEwOCAxMTc1IDExQjg7QzBBMTsxMTA4IDExNzUgMTFCODsKK0MwQTI7QzBBMjsxMTA4IDExNzUgMTFCOTtDMEEyOzExMDggMTE3NSAxMUI5OworQzBBMztDMEEzOzExMDggMTE3NSAxMUJBO0MwQTM7MTEwOCAxMTc1IDExQkE7CitDMEE0O0MwQTQ7MTEwOCAxMTc1IDExQkI7QzBBNDsxMTA4IDExNzUgMTFCQjsKK0MwQTU7QzBBNTsxMTA4IDExNzUgMTFCQztDMEE1OzExMDggMTE3NSAxMUJDOworQzBBNjtDMEE2OzExMDggMTE3NSAxMUJEO0MwQTY7MTEwOCAxMTc1IDExQkQ7CitDMEE3O0MwQTc7MTEwOCAxMTc1IDExQkU7QzBBNzsxMTA4IDExNzUgMTFCRTsKK0MwQTg7QzBBODsxMTA4IDExNzUgMTFCRjtDMEE4OzExMDggMTE3NSAxMUJGOworQzBBOTtDMEE5OzExMDggMTE3NSAxMUMwO0MwQTk7MTEwOCAxMTc1IDExQzA7CitDMEFBO0MwQUE7MTEwOCAxMTc1IDExQzE7QzBBQTsxMTA4IDExNzUgMTFDMTsKK0MwQUI7QzBBQjsxMTA4IDExNzUgMTFDMjtDMEFCOzExMDggMTE3NSAxMUMyOworQzBBQztDMEFDOzExMDkgMTE2MTtDMEFDOzExMDkgMTE2MTsKK0MwQUQ7QzBBRDsxMTA5IDExNjEgMTFBODtDMEFEOzExMDkgMTE2MSAxMUE4OworQzBBRTtDMEFFOzExMDkgMTE2MSAxMUE5O0MwQUU7MTEwOSAxMTYxIDExQTk7CitDMEFGO0MwQUY7MTEwOSAxMTYxIDExQUE7QzBBRjsxMTA5IDExNjEgMTFBQTsKK0MwQjA7QzBCMDsxMTA5IDExNjEgMTFBQjtDMEIwOzExMDkgMTE2MSAxMUFCOworQzBCMTtDMEIxOzExMDkgMTE2MSAxMUFDO0MwQjE7MTEwOSAxMTYxIDExQUM7CitDMEIyO0MwQjI7MTEwOSAxMTYxIDExQUQ7QzBCMjsxMTA5IDExNjEgMTFBRDsKK0MwQjM7QzBCMzsxMTA5IDExNjEgMTFBRTtDMEIzOzExMDkgMTE2MSAxMUFFOworQzBCNDtDMEI0OzExMDkgMTE2MSAxMUFGO0MwQjQ7MTEwOSAxMTYxIDExQUY7CitDMEI1O0MwQjU7MTEwOSAxMTYxIDExQjA7QzBCNTsxMTA5IDExNjEgMTFCMDsKK0MwQjY7QzBCNjsxMTA5IDExNjEgMTFCMTtDMEI2OzExMDkgMTE2MSAxMUIxOworQzBCNztDMEI3OzExMDkgMTE2MSAxMUIyO0MwQjc7MTEwOSAxMTYxIDExQjI7CitDMEI4O0MwQjg7MTEwOSAxMTYxIDExQjM7QzBCODsxMTA5IDExNjEgMTFCMzsKK0MwQjk7QzBCOTsxMTA5IDExNjEgMTFCNDtDMEI5OzExMDkgMTE2MSAxMUI0OworQzBCQTtDMEJBOzExMDkgMTE2MSAxMUI1O0MwQkE7MTEwOSAxMTYxIDExQjU7CitDMEJCO0MwQkI7MTEwOSAxMTYxIDExQjY7QzBCQjsxMTA5IDExNjEgMTFCNjsKK0MwQkM7QzBCQzsxMTA5IDExNjEgMTFCNztDMEJDOzExMDkgMTE2MSAxMUI3OworQzBCRDtDMEJEOzExMDkgMTE2MSAxMUI4O0MwQkQ7MTEwOSAxMTYxIDExQjg7CitDMEJFO0MwQkU7MTEwOSAxMTYxIDExQjk7QzBCRTsxMTA5IDExNjEgMTFCOTsKK0MwQkY7QzBCRjsxMTA5IDExNjEgMTFCQTtDMEJGOzExMDkgMTE2MSAxMUJBOworQzBDMDtDMEMwOzExMDkgMTE2MSAxMUJCO0MwQzA7MTEwOSAxMTYxIDExQkI7CitDMEMxO0MwQzE7MTEwOSAxMTYxIDExQkM7QzBDMTsxMTA5IDExNjEgMTFCQzsKK0MwQzI7QzBDMjsxMTA5IDExNjEgMTFCRDtDMEMyOzExMDkgMTE2MSAxMUJEOworQzBDMztDMEMzOzExMDkgMTE2MSAxMUJFO0MwQzM7MTEwOSAxMTYxIDExQkU7CitDMEM0O0MwQzQ7MTEwOSAxMTYxIDExQkY7QzBDNDsxMTA5IDExNjEgMTFCRjsKK0MwQzU7QzBDNTsxMTA5IDExNjEgMTFDMDtDMEM1OzExMDkgMTE2MSAxMUMwOworQzBDNjtDMEM2OzExMDkgMTE2MSAxMUMxO0MwQzY7MTEwOSAxMTYxIDExQzE7CitDMEM3O0MwQzc7MTEwOSAxMTYxIDExQzI7QzBDNzsxMTA5IDExNjEgMTFDMjsKK0MwQzg7QzBDODsxMTA5IDExNjI7QzBDODsxMTA5IDExNjI7CitDMEM5O0MwQzk7MTEwOSAxMTYyIDExQTg7QzBDOTsxMTA5IDExNjIgMTFBODsKK0MwQ0E7QzBDQTsxMTA5IDExNjIgMTFBOTtDMENBOzExMDkgMTE2MiAxMUE5OworQzBDQjtDMENCOzExMDkgMTE2MiAxMUFBO0MwQ0I7MTEwOSAxMTYyIDExQUE7CitDMENDO0MwQ0M7MTEwOSAxMTYyIDExQUI7QzBDQzsxMTA5IDExNjIgMTFBQjsKK0MwQ0Q7QzBDRDsxMTA5IDExNjIgMTFBQztDMENEOzExMDkgMTE2MiAxMUFDOworQzBDRTtDMENFOzExMDkgMTE2MiAxMUFEO0MwQ0U7MTEwOSAxMTYyIDExQUQ7CitDMENGO0MwQ0Y7MTEwOSAxMTYyIDExQUU7QzBDRjsxMTA5IDExNjIgMTFBRTsKK0MwRDA7QzBEMDsxMTA5IDExNjIgMTFBRjtDMEQwOzExMDkgMTE2MiAxMUFGOworQzBEMTtDMEQxOzExMDkgMTE2MiAxMUIwO0MwRDE7MTEwOSAxMTYyIDExQjA7CitDMEQyO0MwRDI7MTEwOSAxMTYyIDExQjE7QzBEMjsxMTA5IDExNjIgMTFCMTsKK0MwRDM7QzBEMzsxMTA5IDExNjIgMTFCMjtDMEQzOzExMDkgMTE2MiAxMUIyOworQzBENDtDMEQ0OzExMDkgMTE2MiAxMUIzO0MwRDQ7MTEwOSAxMTYyIDExQjM7CitDMEQ1O0MwRDU7MTEwOSAxMTYyIDExQjQ7QzBENTsxMTA5IDExNjIgMTFCNDsKK0MwRDY7QzBENjsxMTA5IDExNjIgMTFCNTtDMEQ2OzExMDkgMTE2MiAxMUI1OworQzBENztDMEQ3OzExMDkgMTE2MiAxMUI2O0MwRDc7MTEwOSAxMTYyIDExQjY7CitDMEQ4O0MwRDg7MTEwOSAxMTYyIDExQjc7QzBEODsxMTA5IDExNjIgMTFCNzsKK0MwRDk7QzBEOTsxMTA5IDExNjIgMTFCODtDMEQ5OzExMDkgMTE2MiAxMUI4OworQzBEQTtDMERBOzExMDkgMTE2MiAxMUI5O0MwREE7MTEwOSAxMTYyIDExQjk7CitDMERCO0MwREI7MTEwOSAxMTYyIDExQkE7QzBEQjsxMTA5IDExNjIgMTFCQTsKK0MwREM7QzBEQzsxMTA5IDExNjIgMTFCQjtDMERDOzExMDkgMTE2MiAxMUJCOworQzBERDtDMEREOzExMDkgMTE2MiAxMUJDO0MwREQ7MTEwOSAxMTYyIDExQkM7CitDMERFO0MwREU7MTEwOSAxMTYyIDExQkQ7QzBERTsxMTA5IDExNjIgMTFCRDsKK0MwREY7QzBERjsxMTA5IDExNjIgMTFCRTtDMERGOzExMDkgMTE2MiAxMUJFOworQzBFMDtDMEUwOzExMDkgMTE2MiAxMUJGO0MwRTA7MTEwOSAxMTYyIDExQkY7CitDMEUxO0MwRTE7MTEwOSAxMTYyIDExQzA7QzBFMTsxMTA5IDExNjIgMTFDMDsKK0MwRTI7QzBFMjsxMTA5IDExNjIgMTFDMTtDMEUyOzExMDkgMTE2MiAxMUMxOworQzBFMztDMEUzOzExMDkgMTE2MiAxMUMyO0MwRTM7MTEwOSAxMTYyIDExQzI7CitDMEU0O0MwRTQ7MTEwOSAxMTYzO0MwRTQ7MTEwOSAxMTYzOworQzBFNTtDMEU1OzExMDkgMTE2MyAxMUE4O0MwRTU7MTEwOSAxMTYzIDExQTg7CitDMEU2O0MwRTY7MTEwOSAxMTYzIDExQTk7QzBFNjsxMTA5IDExNjMgMTFBOTsKK0MwRTc7QzBFNzsxMTA5IDExNjMgMTFBQTtDMEU3OzExMDkgMTE2MyAxMUFBOworQzBFODtDMEU4OzExMDkgMTE2MyAxMUFCO0MwRTg7MTEwOSAxMTYzIDExQUI7CitDMEU5O0MwRTk7MTEwOSAxMTYzIDExQUM7QzBFOTsxMTA5IDExNjMgMTFBQzsKK0MwRUE7QzBFQTsxMTA5IDExNjMgMTFBRDtDMEVBOzExMDkgMTE2MyAxMUFEOworQzBFQjtDMEVCOzExMDkgMTE2MyAxMUFFO0MwRUI7MTEwOSAxMTYzIDExQUU7CitDMEVDO0MwRUM7MTEwOSAxMTYzIDExQUY7QzBFQzsxMTA5IDExNjMgMTFBRjsKK0MwRUQ7QzBFRDsxMTA5IDExNjMgMTFCMDtDMEVEOzExMDkgMTE2MyAxMUIwOworQzBFRTtDMEVFOzExMDkgMTE2MyAxMUIxO0MwRUU7MTEwOSAxMTYzIDExQjE7CitDMEVGO0MwRUY7MTEwOSAxMTYzIDExQjI7QzBFRjsxMTA5IDExNjMgMTFCMjsKK0MwRjA7QzBGMDsxMTA5IDExNjMgMTFCMztDMEYwOzExMDkgMTE2MyAxMUIzOworQzBGMTtDMEYxOzExMDkgMTE2MyAxMUI0O0MwRjE7MTEwOSAxMTYzIDExQjQ7CitDMEYyO0MwRjI7MTEwOSAxMTYzIDExQjU7QzBGMjsxMTA5IDExNjMgMTFCNTsKK0MwRjM7QzBGMzsxMTA5IDExNjMgMTFCNjtDMEYzOzExMDkgMTE2MyAxMUI2OworQzBGNDtDMEY0OzExMDkgMTE2MyAxMUI3O0MwRjQ7MTEwOSAxMTYzIDExQjc7CitDMEY1O0MwRjU7MTEwOSAxMTYzIDExQjg7QzBGNTsxMTA5IDExNjMgMTFCODsKK0MwRjY7QzBGNjsxMTA5IDExNjMgMTFCOTtDMEY2OzExMDkgMTE2MyAxMUI5OworQzBGNztDMEY3OzExMDkgMTE2MyAxMUJBO0MwRjc7MTEwOSAxMTYzIDExQkE7CitDMEY4O0MwRjg7MTEwOSAxMTYzIDExQkI7QzBGODsxMTA5IDExNjMgMTFCQjsKK0MwRjk7QzBGOTsxMTA5IDExNjMgMTFCQztDMEY5OzExMDkgMTE2MyAxMUJDOworQzBGQTtDMEZBOzExMDkgMTE2MyAxMUJEO0MwRkE7MTEwOSAxMTYzIDExQkQ7CitDMEZCO0MwRkI7MTEwOSAxMTYzIDExQkU7QzBGQjsxMTA5IDExNjMgMTFCRTsKK0MwRkM7QzBGQzsxMTA5IDExNjMgMTFCRjtDMEZDOzExMDkgMTE2MyAxMUJGOworQzBGRDtDMEZEOzExMDkgMTE2MyAxMUMwO0MwRkQ7MTEwOSAxMTYzIDExQzA7CitDMEZFO0MwRkU7MTEwOSAxMTYzIDExQzE7QzBGRTsxMTA5IDExNjMgMTFDMTsKK0MwRkY7QzBGRjsxMTA5IDExNjMgMTFDMjtDMEZGOzExMDkgMTE2MyAxMUMyOworQzEwMDtDMTAwOzExMDkgMTE2NDtDMTAwOzExMDkgMTE2NDsKK0MxMDE7QzEwMTsxMTA5IDExNjQgMTFBODtDMTAxOzExMDkgMTE2NCAxMUE4OworQzEwMjtDMTAyOzExMDkgMTE2NCAxMUE5O0MxMDI7MTEwOSAxMTY0IDExQTk7CitDMTAzO0MxMDM7MTEwOSAxMTY0IDExQUE7QzEwMzsxMTA5IDExNjQgMTFBQTsKK0MxMDQ7QzEwNDsxMTA5IDExNjQgMTFBQjtDMTA0OzExMDkgMTE2NCAxMUFCOworQzEwNTtDMTA1OzExMDkgMTE2NCAxMUFDO0MxMDU7MTEwOSAxMTY0IDExQUM7CitDMTA2O0MxMDY7MTEwOSAxMTY0IDExQUQ7QzEwNjsxMTA5IDExNjQgMTFBRDsKK0MxMDc7QzEwNzsxMTA5IDExNjQgMTFBRTtDMTA3OzExMDkgMTE2NCAxMUFFOworQzEwODtDMTA4OzExMDkgMTE2NCAxMUFGO0MxMDg7MTEwOSAxMTY0IDExQUY7CitDMTA5O0MxMDk7MTEwOSAxMTY0IDExQjA7QzEwOTsxMTA5IDExNjQgMTFCMDsKK0MxMEE7QzEwQTsxMTA5IDExNjQgMTFCMTtDMTBBOzExMDkgMTE2NCAxMUIxOworQzEwQjtDMTBCOzExMDkgMTE2NCAxMUIyO0MxMEI7MTEwOSAxMTY0IDExQjI7CitDMTBDO0MxMEM7MTEwOSAxMTY0IDExQjM7QzEwQzsxMTA5IDExNjQgMTFCMzsKK0MxMEQ7QzEwRDsxMTA5IDExNjQgMTFCNDtDMTBEOzExMDkgMTE2NCAxMUI0OworQzEwRTtDMTBFOzExMDkgMTE2NCAxMUI1O0MxMEU7MTEwOSAxMTY0IDExQjU7CitDMTBGO0MxMEY7MTEwOSAxMTY0IDExQjY7QzEwRjsxMTA5IDExNjQgMTFCNjsKK0MxMTA7QzExMDsxMTA5IDExNjQgMTFCNztDMTEwOzExMDkgMTE2NCAxMUI3OworQzExMTtDMTExOzExMDkgMTE2NCAxMUI4O0MxMTE7MTEwOSAxMTY0IDExQjg7CitDMTEyO0MxMTI7MTEwOSAxMTY0IDExQjk7QzExMjsxMTA5IDExNjQgMTFCOTsKK0MxMTM7QzExMzsxMTA5IDExNjQgMTFCQTtDMTEzOzExMDkgMTE2NCAxMUJBOworQzExNDtDMTE0OzExMDkgMTE2NCAxMUJCO0MxMTQ7MTEwOSAxMTY0IDExQkI7CitDMTE1O0MxMTU7MTEwOSAxMTY0IDExQkM7QzExNTsxMTA5IDExNjQgMTFCQzsKK0MxMTY7QzExNjsxMTA5IDExNjQgMTFCRDtDMTE2OzExMDkgMTE2NCAxMUJEOworQzExNztDMTE3OzExMDkgMTE2NCAxMUJFO0MxMTc7MTEwOSAxMTY0IDExQkU7CitDMTE4O0MxMTg7MTEwOSAxMTY0IDExQkY7QzExODsxMTA5IDExNjQgMTFCRjsKK0MxMTk7QzExOTsxMTA5IDExNjQgMTFDMDtDMTE5OzExMDkgMTE2NCAxMUMwOworQzExQTtDMTFBOzExMDkgMTE2NCAxMUMxO0MxMUE7MTEwOSAxMTY0IDExQzE7CitDMTFCO0MxMUI7MTEwOSAxMTY0IDExQzI7QzExQjsxMTA5IDExNjQgMTFDMjsKK0MxMUM7QzExQzsxMTA5IDExNjU7QzExQzsxMTA5IDExNjU7CitDMTFEO0MxMUQ7MTEwOSAxMTY1IDExQTg7QzExRDsxMTA5IDExNjUgMTFBODsKK0MxMUU7QzExRTsxMTA5IDExNjUgMTFBOTtDMTFFOzExMDkgMTE2NSAxMUE5OworQzExRjtDMTFGOzExMDkgMTE2NSAxMUFBO0MxMUY7MTEwOSAxMTY1IDExQUE7CitDMTIwO0MxMjA7MTEwOSAxMTY1IDExQUI7QzEyMDsxMTA5IDExNjUgMTFBQjsKK0MxMjE7QzEyMTsxMTA5IDExNjUgMTFBQztDMTIxOzExMDkgMTE2NSAxMUFDOworQzEyMjtDMTIyOzExMDkgMTE2NSAxMUFEO0MxMjI7MTEwOSAxMTY1IDExQUQ7CitDMTIzO0MxMjM7MTEwOSAxMTY1IDExQUU7QzEyMzsxMTA5IDExNjUgMTFBRTsKK0MxMjQ7QzEyNDsxMTA5IDExNjUgMTFBRjtDMTI0OzExMDkgMTE2NSAxMUFGOworQzEyNTtDMTI1OzExMDkgMTE2NSAxMUIwO0MxMjU7MTEwOSAxMTY1IDExQjA7CitDMTI2O0MxMjY7MTEwOSAxMTY1IDExQjE7QzEyNjsxMTA5IDExNjUgMTFCMTsKK0MxMjc7QzEyNzsxMTA5IDExNjUgMTFCMjtDMTI3OzExMDkgMTE2NSAxMUIyOworQzEyODtDMTI4OzExMDkgMTE2NSAxMUIzO0MxMjg7MTEwOSAxMTY1IDExQjM7CitDMTI5O0MxMjk7MTEwOSAxMTY1IDExQjQ7QzEyOTsxMTA5IDExNjUgMTFCNDsKK0MxMkE7QzEyQTsxMTA5IDExNjUgMTFCNTtDMTJBOzExMDkgMTE2NSAxMUI1OworQzEyQjtDMTJCOzExMDkgMTE2NSAxMUI2O0MxMkI7MTEwOSAxMTY1IDExQjY7CitDMTJDO0MxMkM7MTEwOSAxMTY1IDExQjc7QzEyQzsxMTA5IDExNjUgMTFCNzsKK0MxMkQ7QzEyRDsxMTA5IDExNjUgMTFCODtDMTJEOzExMDkgMTE2NSAxMUI4OworQzEyRTtDMTJFOzExMDkgMTE2NSAxMUI5O0MxMkU7MTEwOSAxMTY1IDExQjk7CitDMTJGO0MxMkY7MTEwOSAxMTY1IDExQkE7QzEyRjsxMTA5IDExNjUgMTFCQTsKK0MxMzA7QzEzMDsxMTA5IDExNjUgMTFCQjtDMTMwOzExMDkgMTE2NSAxMUJCOworQzEzMTtDMTMxOzExMDkgMTE2NSAxMUJDO0MxMzE7MTEwOSAxMTY1IDExQkM7CitDMTMyO0MxMzI7MTEwOSAxMTY1IDExQkQ7QzEzMjsxMTA5IDExNjUgMTFCRDsKK0MxMzM7QzEzMzsxMTA5IDExNjUgMTFCRTtDMTMzOzExMDkgMTE2NSAxMUJFOworQzEzNDtDMTM0OzExMDkgMTE2NSAxMUJGO0MxMzQ7MTEwOSAxMTY1IDExQkY7CitDMTM1O0MxMzU7MTEwOSAxMTY1IDExQzA7QzEzNTsxMTA5IDExNjUgMTFDMDsKK0MxMzY7QzEzNjsxMTA5IDExNjUgMTFDMTtDMTM2OzExMDkgMTE2NSAxMUMxOworQzEzNztDMTM3OzExMDkgMTE2NSAxMUMyO0MxMzc7MTEwOSAxMTY1IDExQzI7CitDMTM4O0MxMzg7MTEwOSAxMTY2O0MxMzg7MTEwOSAxMTY2OworQzEzOTtDMTM5OzExMDkgMTE2NiAxMUE4O0MxMzk7MTEwOSAxMTY2IDExQTg7CitDMTNBO0MxM0E7MTEwOSAxMTY2IDExQTk7QzEzQTsxMTA5IDExNjYgMTFBOTsKK0MxM0I7QzEzQjsxMTA5IDExNjYgMTFBQTtDMTNCOzExMDkgMTE2NiAxMUFBOworQzEzQztDMTNDOzExMDkgMTE2NiAxMUFCO0MxM0M7MTEwOSAxMTY2IDExQUI7CitDMTNEO0MxM0Q7MTEwOSAxMTY2IDExQUM7QzEzRDsxMTA5IDExNjYgMTFBQzsKK0MxM0U7QzEzRTsxMTA5IDExNjYgMTFBRDtDMTNFOzExMDkgMTE2NiAxMUFEOworQzEzRjtDMTNGOzExMDkgMTE2NiAxMUFFO0MxM0Y7MTEwOSAxMTY2IDExQUU7CitDMTQwO0MxNDA7MTEwOSAxMTY2IDExQUY7QzE0MDsxMTA5IDExNjYgMTFBRjsKK0MxNDE7QzE0MTsxMTA5IDExNjYgMTFCMDtDMTQxOzExMDkgMTE2NiAxMUIwOworQzE0MjtDMTQyOzExMDkgMTE2NiAxMUIxO0MxNDI7MTEwOSAxMTY2IDExQjE7CitDMTQzO0MxNDM7MTEwOSAxMTY2IDExQjI7QzE0MzsxMTA5IDExNjYgMTFCMjsKK0MxNDQ7QzE0NDsxMTA5IDExNjYgMTFCMztDMTQ0OzExMDkgMTE2NiAxMUIzOworQzE0NTtDMTQ1OzExMDkgMTE2NiAxMUI0O0MxNDU7MTEwOSAxMTY2IDExQjQ7CitDMTQ2O0MxNDY7MTEwOSAxMTY2IDExQjU7QzE0NjsxMTA5IDExNjYgMTFCNTsKK0MxNDc7QzE0NzsxMTA5IDExNjYgMTFCNjtDMTQ3OzExMDkgMTE2NiAxMUI2OworQzE0ODtDMTQ4OzExMDkgMTE2NiAxMUI3O0MxNDg7MTEwOSAxMTY2IDExQjc7CitDMTQ5O0MxNDk7MTEwOSAxMTY2IDExQjg7QzE0OTsxMTA5IDExNjYgMTFCODsKK0MxNEE7QzE0QTsxMTA5IDExNjYgMTFCOTtDMTRBOzExMDkgMTE2NiAxMUI5OworQzE0QjtDMTRCOzExMDkgMTE2NiAxMUJBO0MxNEI7MTEwOSAxMTY2IDExQkE7CitDMTRDO0MxNEM7MTEwOSAxMTY2IDExQkI7QzE0QzsxMTA5IDExNjYgMTFCQjsKK0MxNEQ7QzE0RDsxMTA5IDExNjYgMTFCQztDMTREOzExMDkgMTE2NiAxMUJDOworQzE0RTtDMTRFOzExMDkgMTE2NiAxMUJEO0MxNEU7MTEwOSAxMTY2IDExQkQ7CitDMTRGO0MxNEY7MTEwOSAxMTY2IDExQkU7QzE0RjsxMTA5IDExNjYgMTFCRTsKK0MxNTA7QzE1MDsxMTA5IDExNjYgMTFCRjtDMTUwOzExMDkgMTE2NiAxMUJGOworQzE1MTtDMTUxOzExMDkgMTE2NiAxMUMwO0MxNTE7MTEwOSAxMTY2IDExQzA7CitDMTUyO0MxNTI7MTEwOSAxMTY2IDExQzE7QzE1MjsxMTA5IDExNjYgMTFDMTsKK0MxNTM7QzE1MzsxMTA5IDExNjYgMTFDMjtDMTUzOzExMDkgMTE2NiAxMUMyOworQzE1NDtDMTU0OzExMDkgMTE2NztDMTU0OzExMDkgMTE2NzsKK0MxNTU7QzE1NTsxMTA5IDExNjcgMTFBODtDMTU1OzExMDkgMTE2NyAxMUE4OworQzE1NjtDMTU2OzExMDkgMTE2NyAxMUE5O0MxNTY7MTEwOSAxMTY3IDExQTk7CitDMTU3O0MxNTc7MTEwOSAxMTY3IDExQUE7QzE1NzsxMTA5IDExNjcgMTFBQTsKK0MxNTg7QzE1ODsxMTA5IDExNjcgMTFBQjtDMTU4OzExMDkgMTE2NyAxMUFCOworQzE1OTtDMTU5OzExMDkgMTE2NyAxMUFDO0MxNTk7MTEwOSAxMTY3IDExQUM7CitDMTVBO0MxNUE7MTEwOSAxMTY3IDExQUQ7QzE1QTsxMTA5IDExNjcgMTFBRDsKK0MxNUI7QzE1QjsxMTA5IDExNjcgMTFBRTtDMTVCOzExMDkgMTE2NyAxMUFFOworQzE1QztDMTVDOzExMDkgMTE2NyAxMUFGO0MxNUM7MTEwOSAxMTY3IDExQUY7CitDMTVEO0MxNUQ7MTEwOSAxMTY3IDExQjA7QzE1RDsxMTA5IDExNjcgMTFCMDsKK0MxNUU7QzE1RTsxMTA5IDExNjcgMTFCMTtDMTVFOzExMDkgMTE2NyAxMUIxOworQzE1RjtDMTVGOzExMDkgMTE2NyAxMUIyO0MxNUY7MTEwOSAxMTY3IDExQjI7CitDMTYwO0MxNjA7MTEwOSAxMTY3IDExQjM7QzE2MDsxMTA5IDExNjcgMTFCMzsKK0MxNjE7QzE2MTsxMTA5IDExNjcgMTFCNDtDMTYxOzExMDkgMTE2NyAxMUI0OworQzE2MjtDMTYyOzExMDkgMTE2NyAxMUI1O0MxNjI7MTEwOSAxMTY3IDExQjU7CitDMTYzO0MxNjM7MTEwOSAxMTY3IDExQjY7QzE2MzsxMTA5IDExNjcgMTFCNjsKK0MxNjQ7QzE2NDsxMTA5IDExNjcgMTFCNztDMTY0OzExMDkgMTE2NyAxMUI3OworQzE2NTtDMTY1OzExMDkgMTE2NyAxMUI4O0MxNjU7MTEwOSAxMTY3IDExQjg7CitDMTY2O0MxNjY7MTEwOSAxMTY3IDExQjk7QzE2NjsxMTA5IDExNjcgMTFCOTsKK0MxNjc7QzE2NzsxMTA5IDExNjcgMTFCQTtDMTY3OzExMDkgMTE2NyAxMUJBOworQzE2ODtDMTY4OzExMDkgMTE2NyAxMUJCO0MxNjg7MTEwOSAxMTY3IDExQkI7CitDMTY5O0MxNjk7MTEwOSAxMTY3IDExQkM7QzE2OTsxMTA5IDExNjcgMTFCQzsKK0MxNkE7QzE2QTsxMTA5IDExNjcgMTFCRDtDMTZBOzExMDkgMTE2NyAxMUJEOworQzE2QjtDMTZCOzExMDkgMTE2NyAxMUJFO0MxNkI7MTEwOSAxMTY3IDExQkU7CitDMTZDO0MxNkM7MTEwOSAxMTY3IDExQkY7QzE2QzsxMTA5IDExNjcgMTFCRjsKK0MxNkQ7QzE2RDsxMTA5IDExNjcgMTFDMDtDMTZEOzExMDkgMTE2NyAxMUMwOworQzE2RTtDMTZFOzExMDkgMTE2NyAxMUMxO0MxNkU7MTEwOSAxMTY3IDExQzE7CitDMTZGO0MxNkY7MTEwOSAxMTY3IDExQzI7QzE2RjsxMTA5IDExNjcgMTFDMjsKK0MxNzA7QzE3MDsxMTA5IDExNjg7QzE3MDsxMTA5IDExNjg7CitDMTcxO0MxNzE7MTEwOSAxMTY4IDExQTg7QzE3MTsxMTA5IDExNjggMTFBODsKK0MxNzI7QzE3MjsxMTA5IDExNjggMTFBOTtDMTcyOzExMDkgMTE2OCAxMUE5OworQzE3MztDMTczOzExMDkgMTE2OCAxMUFBO0MxNzM7MTEwOSAxMTY4IDExQUE7CitDMTc0O0MxNzQ7MTEwOSAxMTY4IDExQUI7QzE3NDsxMTA5IDExNjggMTFBQjsKK0MxNzU7QzE3NTsxMTA5IDExNjggMTFBQztDMTc1OzExMDkgMTE2OCAxMUFDOworQzE3NjtDMTc2OzExMDkgMTE2OCAxMUFEO0MxNzY7MTEwOSAxMTY4IDExQUQ7CitDMTc3O0MxNzc7MTEwOSAxMTY4IDExQUU7QzE3NzsxMTA5IDExNjggMTFBRTsKK0MxNzg7QzE3ODsxMTA5IDExNjggMTFBRjtDMTc4OzExMDkgMTE2OCAxMUFGOworQzE3OTtDMTc5OzExMDkgMTE2OCAxMUIwO0MxNzk7MTEwOSAxMTY4IDExQjA7CitDMTdBO0MxN0E7MTEwOSAxMTY4IDExQjE7QzE3QTsxMTA5IDExNjggMTFCMTsKK0MxN0I7QzE3QjsxMTA5IDExNjggMTFCMjtDMTdCOzExMDkgMTE2OCAxMUIyOworQzE3QztDMTdDOzExMDkgMTE2OCAxMUIzO0MxN0M7MTEwOSAxMTY4IDExQjM7CitDMTdEO0MxN0Q7MTEwOSAxMTY4IDExQjQ7QzE3RDsxMTA5IDExNjggMTFCNDsKK0MxN0U7QzE3RTsxMTA5IDExNjggMTFCNTtDMTdFOzExMDkgMTE2OCAxMUI1OworQzE3RjtDMTdGOzExMDkgMTE2OCAxMUI2O0MxN0Y7MTEwOSAxMTY4IDExQjY7CitDMTgwO0MxODA7MTEwOSAxMTY4IDExQjc7QzE4MDsxMTA5IDExNjggMTFCNzsKK0MxODE7QzE4MTsxMTA5IDExNjggMTFCODtDMTgxOzExMDkgMTE2OCAxMUI4OworQzE4MjtDMTgyOzExMDkgMTE2OCAxMUI5O0MxODI7MTEwOSAxMTY4IDExQjk7CitDMTgzO0MxODM7MTEwOSAxMTY4IDExQkE7QzE4MzsxMTA5IDExNjggMTFCQTsKK0MxODQ7QzE4NDsxMTA5IDExNjggMTFCQjtDMTg0OzExMDkgMTE2OCAxMUJCOworQzE4NTtDMTg1OzExMDkgMTE2OCAxMUJDO0MxODU7MTEwOSAxMTY4IDExQkM7CitDMTg2O0MxODY7MTEwOSAxMTY4IDExQkQ7QzE4NjsxMTA5IDExNjggMTFCRDsKK0MxODc7QzE4NzsxMTA5IDExNjggMTFCRTtDMTg3OzExMDkgMTE2OCAxMUJFOworQzE4ODtDMTg4OzExMDkgMTE2OCAxMUJGO0MxODg7MTEwOSAxMTY4IDExQkY7CitDMTg5O0MxODk7MTEwOSAxMTY4IDExQzA7QzE4OTsxMTA5IDExNjggMTFDMDsKK0MxOEE7QzE4QTsxMTA5IDExNjggMTFDMTtDMThBOzExMDkgMTE2OCAxMUMxOworQzE4QjtDMThCOzExMDkgMTE2OCAxMUMyO0MxOEI7MTEwOSAxMTY4IDExQzI7CitDMThDO0MxOEM7MTEwOSAxMTY5O0MxOEM7MTEwOSAxMTY5OworQzE4RDtDMThEOzExMDkgMTE2OSAxMUE4O0MxOEQ7MTEwOSAxMTY5IDExQTg7CitDMThFO0MxOEU7MTEwOSAxMTY5IDExQTk7QzE4RTsxMTA5IDExNjkgMTFBOTsKK0MxOEY7QzE4RjsxMTA5IDExNjkgMTFBQTtDMThGOzExMDkgMTE2OSAxMUFBOworQzE5MDtDMTkwOzExMDkgMTE2OSAxMUFCO0MxOTA7MTEwOSAxMTY5IDExQUI7CitDMTkxO0MxOTE7MTEwOSAxMTY5IDExQUM7QzE5MTsxMTA5IDExNjkgMTFBQzsKK0MxOTI7QzE5MjsxMTA5IDExNjkgMTFBRDtDMTkyOzExMDkgMTE2OSAxMUFEOworQzE5MztDMTkzOzExMDkgMTE2OSAxMUFFO0MxOTM7MTEwOSAxMTY5IDExQUU7CitDMTk0O0MxOTQ7MTEwOSAxMTY5IDExQUY7QzE5NDsxMTA5IDExNjkgMTFBRjsKK0MxOTU7QzE5NTsxMTA5IDExNjkgMTFCMDtDMTk1OzExMDkgMTE2OSAxMUIwOworQzE5NjtDMTk2OzExMDkgMTE2OSAxMUIxO0MxOTY7MTEwOSAxMTY5IDExQjE7CitDMTk3O0MxOTc7MTEwOSAxMTY5IDExQjI7QzE5NzsxMTA5IDExNjkgMTFCMjsKK0MxOTg7QzE5ODsxMTA5IDExNjkgMTFCMztDMTk4OzExMDkgMTE2OSAxMUIzOworQzE5OTtDMTk5OzExMDkgMTE2OSAxMUI0O0MxOTk7MTEwOSAxMTY5IDExQjQ7CitDMTlBO0MxOUE7MTEwOSAxMTY5IDExQjU7QzE5QTsxMTA5IDExNjkgMTFCNTsKK0MxOUI7QzE5QjsxMTA5IDExNjkgMTFCNjtDMTlCOzExMDkgMTE2OSAxMUI2OworQzE5QztDMTlDOzExMDkgMTE2OSAxMUI3O0MxOUM7MTEwOSAxMTY5IDExQjc7CitDMTlEO0MxOUQ7MTEwOSAxMTY5IDExQjg7QzE5RDsxMTA5IDExNjkgMTFCODsKK0MxOUU7QzE5RTsxMTA5IDExNjkgMTFCOTtDMTlFOzExMDkgMTE2OSAxMUI5OworQzE5RjtDMTlGOzExMDkgMTE2OSAxMUJBO0MxOUY7MTEwOSAxMTY5IDExQkE7CitDMUEwO0MxQTA7MTEwOSAxMTY5IDExQkI7QzFBMDsxMTA5IDExNjkgMTFCQjsKK0MxQTE7QzFBMTsxMTA5IDExNjkgMTFCQztDMUExOzExMDkgMTE2OSAxMUJDOworQzFBMjtDMUEyOzExMDkgMTE2OSAxMUJEO0MxQTI7MTEwOSAxMTY5IDExQkQ7CitDMUEzO0MxQTM7MTEwOSAxMTY5IDExQkU7QzFBMzsxMTA5IDExNjkgMTFCRTsKK0MxQTQ7QzFBNDsxMTA5IDExNjkgMTFCRjtDMUE0OzExMDkgMTE2OSAxMUJGOworQzFBNTtDMUE1OzExMDkgMTE2OSAxMUMwO0MxQTU7MTEwOSAxMTY5IDExQzA7CitDMUE2O0MxQTY7MTEwOSAxMTY5IDExQzE7QzFBNjsxMTA5IDExNjkgMTFDMTsKK0MxQTc7QzFBNzsxMTA5IDExNjkgMTFDMjtDMUE3OzExMDkgMTE2OSAxMUMyOworQzFBODtDMUE4OzExMDkgMTE2QTtDMUE4OzExMDkgMTE2QTsKK0MxQTk7QzFBOTsxMTA5IDExNkEgMTFBODtDMUE5OzExMDkgMTE2QSAxMUE4OworQzFBQTtDMUFBOzExMDkgMTE2QSAxMUE5O0MxQUE7MTEwOSAxMTZBIDExQTk7CitDMUFCO0MxQUI7MTEwOSAxMTZBIDExQUE7QzFBQjsxMTA5IDExNkEgMTFBQTsKK0MxQUM7QzFBQzsxMTA5IDExNkEgMTFBQjtDMUFDOzExMDkgMTE2QSAxMUFCOworQzFBRDtDMUFEOzExMDkgMTE2QSAxMUFDO0MxQUQ7MTEwOSAxMTZBIDExQUM7CitDMUFFO0MxQUU7MTEwOSAxMTZBIDExQUQ7QzFBRTsxMTA5IDExNkEgMTFBRDsKK0MxQUY7QzFBRjsxMTA5IDExNkEgMTFBRTtDMUFGOzExMDkgMTE2QSAxMUFFOworQzFCMDtDMUIwOzExMDkgMTE2QSAxMUFGO0MxQjA7MTEwOSAxMTZBIDExQUY7CitDMUIxO0MxQjE7MTEwOSAxMTZBIDExQjA7QzFCMTsxMTA5IDExNkEgMTFCMDsKK0MxQjI7QzFCMjsxMTA5IDExNkEgMTFCMTtDMUIyOzExMDkgMTE2QSAxMUIxOworQzFCMztDMUIzOzExMDkgMTE2QSAxMUIyO0MxQjM7MTEwOSAxMTZBIDExQjI7CitDMUI0O0MxQjQ7MTEwOSAxMTZBIDExQjM7QzFCNDsxMTA5IDExNkEgMTFCMzsKK0MxQjU7QzFCNTsxMTA5IDExNkEgMTFCNDtDMUI1OzExMDkgMTE2QSAxMUI0OworQzFCNjtDMUI2OzExMDkgMTE2QSAxMUI1O0MxQjY7MTEwOSAxMTZBIDExQjU7CitDMUI3O0MxQjc7MTEwOSAxMTZBIDExQjY7QzFCNzsxMTA5IDExNkEgMTFCNjsKK0MxQjg7QzFCODsxMTA5IDExNkEgMTFCNztDMUI4OzExMDkgMTE2QSAxMUI3OworQzFCOTtDMUI5OzExMDkgMTE2QSAxMUI4O0MxQjk7MTEwOSAxMTZBIDExQjg7CitDMUJBO0MxQkE7MTEwOSAxMTZBIDExQjk7QzFCQTsxMTA5IDExNkEgMTFCOTsKK0MxQkI7QzFCQjsxMTA5IDExNkEgMTFCQTtDMUJCOzExMDkgMTE2QSAxMUJBOworQzFCQztDMUJDOzExMDkgMTE2QSAxMUJCO0MxQkM7MTEwOSAxMTZBIDExQkI7CitDMUJEO0MxQkQ7MTEwOSAxMTZBIDExQkM7QzFCRDsxMTA5IDExNkEgMTFCQzsKK0MxQkU7QzFCRTsxMTA5IDExNkEgMTFCRDtDMUJFOzExMDkgMTE2QSAxMUJEOworQzFCRjtDMUJGOzExMDkgMTE2QSAxMUJFO0MxQkY7MTEwOSAxMTZBIDExQkU7CitDMUMwO0MxQzA7MTEwOSAxMTZBIDExQkY7QzFDMDsxMTA5IDExNkEgMTFCRjsKK0MxQzE7QzFDMTsxMTA5IDExNkEgMTFDMDtDMUMxOzExMDkgMTE2QSAxMUMwOworQzFDMjtDMUMyOzExMDkgMTE2QSAxMUMxO0MxQzI7MTEwOSAxMTZBIDExQzE7CitDMUMzO0MxQzM7MTEwOSAxMTZBIDExQzI7QzFDMzsxMTA5IDExNkEgMTFDMjsKK0MxQzQ7QzFDNDsxMTA5IDExNkI7QzFDNDsxMTA5IDExNkI7CitDMUM1O0MxQzU7MTEwOSAxMTZCIDExQTg7QzFDNTsxMTA5IDExNkIgMTFBODsKK0MxQzY7QzFDNjsxMTA5IDExNkIgMTFBOTtDMUM2OzExMDkgMTE2QiAxMUE5OworQzFDNztDMUM3OzExMDkgMTE2QiAxMUFBO0MxQzc7MTEwOSAxMTZCIDExQUE7CitDMUM4O0MxQzg7MTEwOSAxMTZCIDExQUI7QzFDODsxMTA5IDExNkIgMTFBQjsKK0MxQzk7QzFDOTsxMTA5IDExNkIgMTFBQztDMUM5OzExMDkgMTE2QiAxMUFDOworQzFDQTtDMUNBOzExMDkgMTE2QiAxMUFEO0MxQ0E7MTEwOSAxMTZCIDExQUQ7CitDMUNCO0MxQ0I7MTEwOSAxMTZCIDExQUU7QzFDQjsxMTA5IDExNkIgMTFBRTsKK0MxQ0M7QzFDQzsxMTA5IDExNkIgMTFBRjtDMUNDOzExMDkgMTE2QiAxMUFGOworQzFDRDtDMUNEOzExMDkgMTE2QiAxMUIwO0MxQ0Q7MTEwOSAxMTZCIDExQjA7CitDMUNFO0MxQ0U7MTEwOSAxMTZCIDExQjE7QzFDRTsxMTA5IDExNkIgMTFCMTsKK0MxQ0Y7QzFDRjsxMTA5IDExNkIgMTFCMjtDMUNGOzExMDkgMTE2QiAxMUIyOworQzFEMDtDMUQwOzExMDkgMTE2QiAxMUIzO0MxRDA7MTEwOSAxMTZCIDExQjM7CitDMUQxO0MxRDE7MTEwOSAxMTZCIDExQjQ7QzFEMTsxMTA5IDExNkIgMTFCNDsKK0MxRDI7QzFEMjsxMTA5IDExNkIgMTFCNTtDMUQyOzExMDkgMTE2QiAxMUI1OworQzFEMztDMUQzOzExMDkgMTE2QiAxMUI2O0MxRDM7MTEwOSAxMTZCIDExQjY7CitDMUQ0O0MxRDQ7MTEwOSAxMTZCIDExQjc7QzFENDsxMTA5IDExNkIgMTFCNzsKK0MxRDU7QzFENTsxMTA5IDExNkIgMTFCODtDMUQ1OzExMDkgMTE2QiAxMUI4OworQzFENjtDMUQ2OzExMDkgMTE2QiAxMUI5O0MxRDY7MTEwOSAxMTZCIDExQjk7CitDMUQ3O0MxRDc7MTEwOSAxMTZCIDExQkE7QzFENzsxMTA5IDExNkIgMTFCQTsKK0MxRDg7QzFEODsxMTA5IDExNkIgMTFCQjtDMUQ4OzExMDkgMTE2QiAxMUJCOworQzFEOTtDMUQ5OzExMDkgMTE2QiAxMUJDO0MxRDk7MTEwOSAxMTZCIDExQkM7CitDMURBO0MxREE7MTEwOSAxMTZCIDExQkQ7QzFEQTsxMTA5IDExNkIgMTFCRDsKK0MxREI7QzFEQjsxMTA5IDExNkIgMTFCRTtDMURCOzExMDkgMTE2QiAxMUJFOworQzFEQztDMURDOzExMDkgMTE2QiAxMUJGO0MxREM7MTEwOSAxMTZCIDExQkY7CitDMUREO0MxREQ7MTEwOSAxMTZCIDExQzA7QzFERDsxMTA5IDExNkIgMTFDMDsKK0MxREU7QzFERTsxMTA5IDExNkIgMTFDMTtDMURFOzExMDkgMTE2QiAxMUMxOworQzFERjtDMURGOzExMDkgMTE2QiAxMUMyO0MxREY7MTEwOSAxMTZCIDExQzI7CitDMUUwO0MxRTA7MTEwOSAxMTZDO0MxRTA7MTEwOSAxMTZDOworQzFFMTtDMUUxOzExMDkgMTE2QyAxMUE4O0MxRTE7MTEwOSAxMTZDIDExQTg7CitDMUUyO0MxRTI7MTEwOSAxMTZDIDExQTk7QzFFMjsxMTA5IDExNkMgMTFBOTsKK0MxRTM7QzFFMzsxMTA5IDExNkMgMTFBQTtDMUUzOzExMDkgMTE2QyAxMUFBOworQzFFNDtDMUU0OzExMDkgMTE2QyAxMUFCO0MxRTQ7MTEwOSAxMTZDIDExQUI7CitDMUU1O0MxRTU7MTEwOSAxMTZDIDExQUM7QzFFNTsxMTA5IDExNkMgMTFBQzsKK0MxRTY7QzFFNjsxMTA5IDExNkMgMTFBRDtDMUU2OzExMDkgMTE2QyAxMUFEOworQzFFNztDMUU3OzExMDkgMTE2QyAxMUFFO0MxRTc7MTEwOSAxMTZDIDExQUU7CitDMUU4O0MxRTg7MTEwOSAxMTZDIDExQUY7QzFFODsxMTA5IDExNkMgMTFBRjsKK0MxRTk7QzFFOTsxMTA5IDExNkMgMTFCMDtDMUU5OzExMDkgMTE2QyAxMUIwOworQzFFQTtDMUVBOzExMDkgMTE2QyAxMUIxO0MxRUE7MTEwOSAxMTZDIDExQjE7CitDMUVCO0MxRUI7MTEwOSAxMTZDIDExQjI7QzFFQjsxMTA5IDExNkMgMTFCMjsKK0MxRUM7QzFFQzsxMTA5IDExNkMgMTFCMztDMUVDOzExMDkgMTE2QyAxMUIzOworQzFFRDtDMUVEOzExMDkgMTE2QyAxMUI0O0MxRUQ7MTEwOSAxMTZDIDExQjQ7CitDMUVFO0MxRUU7MTEwOSAxMTZDIDExQjU7QzFFRTsxMTA5IDExNkMgMTFCNTsKK0MxRUY7QzFFRjsxMTA5IDExNkMgMTFCNjtDMUVGOzExMDkgMTE2QyAxMUI2OworQzFGMDtDMUYwOzExMDkgMTE2QyAxMUI3O0MxRjA7MTEwOSAxMTZDIDExQjc7CitDMUYxO0MxRjE7MTEwOSAxMTZDIDExQjg7QzFGMTsxMTA5IDExNkMgMTFCODsKK0MxRjI7QzFGMjsxMTA5IDExNkMgMTFCOTtDMUYyOzExMDkgMTE2QyAxMUI5OworQzFGMztDMUYzOzExMDkgMTE2QyAxMUJBO0MxRjM7MTEwOSAxMTZDIDExQkE7CitDMUY0O0MxRjQ7MTEwOSAxMTZDIDExQkI7QzFGNDsxMTA5IDExNkMgMTFCQjsKK0MxRjU7QzFGNTsxMTA5IDExNkMgMTFCQztDMUY1OzExMDkgMTE2QyAxMUJDOworQzFGNjtDMUY2OzExMDkgMTE2QyAxMUJEO0MxRjY7MTEwOSAxMTZDIDExQkQ7CitDMUY3O0MxRjc7MTEwOSAxMTZDIDExQkU7QzFGNzsxMTA5IDExNkMgMTFCRTsKK0MxRjg7QzFGODsxMTA5IDExNkMgMTFCRjtDMUY4OzExMDkgMTE2QyAxMUJGOworQzFGOTtDMUY5OzExMDkgMTE2QyAxMUMwO0MxRjk7MTEwOSAxMTZDIDExQzA7CitDMUZBO0MxRkE7MTEwOSAxMTZDIDExQzE7QzFGQTsxMTA5IDExNkMgMTFDMTsKK0MxRkI7QzFGQjsxMTA5IDExNkMgMTFDMjtDMUZCOzExMDkgMTE2QyAxMUMyOworQzFGQztDMUZDOzExMDkgMTE2RDtDMUZDOzExMDkgMTE2RDsKK0MxRkQ7QzFGRDsxMTA5IDExNkQgMTFBODtDMUZEOzExMDkgMTE2RCAxMUE4OworQzFGRTtDMUZFOzExMDkgMTE2RCAxMUE5O0MxRkU7MTEwOSAxMTZEIDExQTk7CitDMUZGO0MxRkY7MTEwOSAxMTZEIDExQUE7QzFGRjsxMTA5IDExNkQgMTFBQTsKK0MyMDA7QzIwMDsxMTA5IDExNkQgMTFBQjtDMjAwOzExMDkgMTE2RCAxMUFCOworQzIwMTtDMjAxOzExMDkgMTE2RCAxMUFDO0MyMDE7MTEwOSAxMTZEIDExQUM7CitDMjAyO0MyMDI7MTEwOSAxMTZEIDExQUQ7QzIwMjsxMTA5IDExNkQgMTFBRDsKK0MyMDM7QzIwMzsxMTA5IDExNkQgMTFBRTtDMjAzOzExMDkgMTE2RCAxMUFFOworQzIwNDtDMjA0OzExMDkgMTE2RCAxMUFGO0MyMDQ7MTEwOSAxMTZEIDExQUY7CitDMjA1O0MyMDU7MTEwOSAxMTZEIDExQjA7QzIwNTsxMTA5IDExNkQgMTFCMDsKK0MyMDY7QzIwNjsxMTA5IDExNkQgMTFCMTtDMjA2OzExMDkgMTE2RCAxMUIxOworQzIwNztDMjA3OzExMDkgMTE2RCAxMUIyO0MyMDc7MTEwOSAxMTZEIDExQjI7CitDMjA4O0MyMDg7MTEwOSAxMTZEIDExQjM7QzIwODsxMTA5IDExNkQgMTFCMzsKK0MyMDk7QzIwOTsxMTA5IDExNkQgMTFCNDtDMjA5OzExMDkgMTE2RCAxMUI0OworQzIwQTtDMjBBOzExMDkgMTE2RCAxMUI1O0MyMEE7MTEwOSAxMTZEIDExQjU7CitDMjBCO0MyMEI7MTEwOSAxMTZEIDExQjY7QzIwQjsxMTA5IDExNkQgMTFCNjsKK0MyMEM7QzIwQzsxMTA5IDExNkQgMTFCNztDMjBDOzExMDkgMTE2RCAxMUI3OworQzIwRDtDMjBEOzExMDkgMTE2RCAxMUI4O0MyMEQ7MTEwOSAxMTZEIDExQjg7CitDMjBFO0MyMEU7MTEwOSAxMTZEIDExQjk7QzIwRTsxMTA5IDExNkQgMTFCOTsKK0MyMEY7QzIwRjsxMTA5IDExNkQgMTFCQTtDMjBGOzExMDkgMTE2RCAxMUJBOworQzIxMDtDMjEwOzExMDkgMTE2RCAxMUJCO0MyMTA7MTEwOSAxMTZEIDExQkI7CitDMjExO0MyMTE7MTEwOSAxMTZEIDExQkM7QzIxMTsxMTA5IDExNkQgMTFCQzsKK0MyMTI7QzIxMjsxMTA5IDExNkQgMTFCRDtDMjEyOzExMDkgMTE2RCAxMUJEOworQzIxMztDMjEzOzExMDkgMTE2RCAxMUJFO0MyMTM7MTEwOSAxMTZEIDExQkU7CitDMjE0O0MyMTQ7MTEwOSAxMTZEIDExQkY7QzIxNDsxMTA5IDExNkQgMTFCRjsKK0MyMTU7QzIxNTsxMTA5IDExNkQgMTFDMDtDMjE1OzExMDkgMTE2RCAxMUMwOworQzIxNjtDMjE2OzExMDkgMTE2RCAxMUMxO0MyMTY7MTEwOSAxMTZEIDExQzE7CitDMjE3O0MyMTc7MTEwOSAxMTZEIDExQzI7QzIxNzsxMTA5IDExNkQgMTFDMjsKK0MyMTg7QzIxODsxMTA5IDExNkU7QzIxODsxMTA5IDExNkU7CitDMjE5O0MyMTk7MTEwOSAxMTZFIDExQTg7QzIxOTsxMTA5IDExNkUgMTFBODsKK0MyMUE7QzIxQTsxMTA5IDExNkUgMTFBOTtDMjFBOzExMDkgMTE2RSAxMUE5OworQzIxQjtDMjFCOzExMDkgMTE2RSAxMUFBO0MyMUI7MTEwOSAxMTZFIDExQUE7CitDMjFDO0MyMUM7MTEwOSAxMTZFIDExQUI7QzIxQzsxMTA5IDExNkUgMTFBQjsKK0MyMUQ7QzIxRDsxMTA5IDExNkUgMTFBQztDMjFEOzExMDkgMTE2RSAxMUFDOworQzIxRTtDMjFFOzExMDkgMTE2RSAxMUFEO0MyMUU7MTEwOSAxMTZFIDExQUQ7CitDMjFGO0MyMUY7MTEwOSAxMTZFIDExQUU7QzIxRjsxMTA5IDExNkUgMTFBRTsKK0MyMjA7QzIyMDsxMTA5IDExNkUgMTFBRjtDMjIwOzExMDkgMTE2RSAxMUFGOworQzIyMTtDMjIxOzExMDkgMTE2RSAxMUIwO0MyMjE7MTEwOSAxMTZFIDExQjA7CitDMjIyO0MyMjI7MTEwOSAxMTZFIDExQjE7QzIyMjsxMTA5IDExNkUgMTFCMTsKK0MyMjM7QzIyMzsxMTA5IDExNkUgMTFCMjtDMjIzOzExMDkgMTE2RSAxMUIyOworQzIyNDtDMjI0OzExMDkgMTE2RSAxMUIzO0MyMjQ7MTEwOSAxMTZFIDExQjM7CitDMjI1O0MyMjU7MTEwOSAxMTZFIDExQjQ7QzIyNTsxMTA5IDExNkUgMTFCNDsKK0MyMjY7QzIyNjsxMTA5IDExNkUgMTFCNTtDMjI2OzExMDkgMTE2RSAxMUI1OworQzIyNztDMjI3OzExMDkgMTE2RSAxMUI2O0MyMjc7MTEwOSAxMTZFIDExQjY7CitDMjI4O0MyMjg7MTEwOSAxMTZFIDExQjc7QzIyODsxMTA5IDExNkUgMTFCNzsKK0MyMjk7QzIyOTsxMTA5IDExNkUgMTFCODtDMjI5OzExMDkgMTE2RSAxMUI4OworQzIyQTtDMjJBOzExMDkgMTE2RSAxMUI5O0MyMkE7MTEwOSAxMTZFIDExQjk7CitDMjJCO0MyMkI7MTEwOSAxMTZFIDExQkE7QzIyQjsxMTA5IDExNkUgMTFCQTsKK0MyMkM7QzIyQzsxMTA5IDExNkUgMTFCQjtDMjJDOzExMDkgMTE2RSAxMUJCOworQzIyRDtDMjJEOzExMDkgMTE2RSAxMUJDO0MyMkQ7MTEwOSAxMTZFIDExQkM7CitDMjJFO0MyMkU7MTEwOSAxMTZFIDExQkQ7QzIyRTsxMTA5IDExNkUgMTFCRDsKK0MyMkY7QzIyRjsxMTA5IDExNkUgMTFCRTtDMjJGOzExMDkgMTE2RSAxMUJFOworQzIzMDtDMjMwOzExMDkgMTE2RSAxMUJGO0MyMzA7MTEwOSAxMTZFIDExQkY7CitDMjMxO0MyMzE7MTEwOSAxMTZFIDExQzA7QzIzMTsxMTA5IDExNkUgMTFDMDsKK0MyMzI7QzIzMjsxMTA5IDExNkUgMTFDMTtDMjMyOzExMDkgMTE2RSAxMUMxOworQzIzMztDMjMzOzExMDkgMTE2RSAxMUMyO0MyMzM7MTEwOSAxMTZFIDExQzI7CitDMjM0O0MyMzQ7MTEwOSAxMTZGO0MyMzQ7MTEwOSAxMTZGOworQzIzNTtDMjM1OzExMDkgMTE2RiAxMUE4O0MyMzU7MTEwOSAxMTZGIDExQTg7CitDMjM2O0MyMzY7MTEwOSAxMTZGIDExQTk7QzIzNjsxMTA5IDExNkYgMTFBOTsKK0MyMzc7QzIzNzsxMTA5IDExNkYgMTFBQTtDMjM3OzExMDkgMTE2RiAxMUFBOworQzIzODtDMjM4OzExMDkgMTE2RiAxMUFCO0MyMzg7MTEwOSAxMTZGIDExQUI7CitDMjM5O0MyMzk7MTEwOSAxMTZGIDExQUM7QzIzOTsxMTA5IDExNkYgMTFBQzsKK0MyM0E7QzIzQTsxMTA5IDExNkYgMTFBRDtDMjNBOzExMDkgMTE2RiAxMUFEOworQzIzQjtDMjNCOzExMDkgMTE2RiAxMUFFO0MyM0I7MTEwOSAxMTZGIDExQUU7CitDMjNDO0MyM0M7MTEwOSAxMTZGIDExQUY7QzIzQzsxMTA5IDExNkYgMTFBRjsKK0MyM0Q7QzIzRDsxMTA5IDExNkYgMTFCMDtDMjNEOzExMDkgMTE2RiAxMUIwOworQzIzRTtDMjNFOzExMDkgMTE2RiAxMUIxO0MyM0U7MTEwOSAxMTZGIDExQjE7CitDMjNGO0MyM0Y7MTEwOSAxMTZGIDExQjI7QzIzRjsxMTA5IDExNkYgMTFCMjsKK0MyNDA7QzI0MDsxMTA5IDExNkYgMTFCMztDMjQwOzExMDkgMTE2RiAxMUIzOworQzI0MTtDMjQxOzExMDkgMTE2RiAxMUI0O0MyNDE7MTEwOSAxMTZGIDExQjQ7CitDMjQyO0MyNDI7MTEwOSAxMTZGIDExQjU7QzI0MjsxMTA5IDExNkYgMTFCNTsKK0MyNDM7QzI0MzsxMTA5IDExNkYgMTFCNjtDMjQzOzExMDkgMTE2RiAxMUI2OworQzI0NDtDMjQ0OzExMDkgMTE2RiAxMUI3O0MyNDQ7MTEwOSAxMTZGIDExQjc7CitDMjQ1O0MyNDU7MTEwOSAxMTZGIDExQjg7QzI0NTsxMTA5IDExNkYgMTFCODsKK0MyNDY7QzI0NjsxMTA5IDExNkYgMTFCOTtDMjQ2OzExMDkgMTE2RiAxMUI5OworQzI0NztDMjQ3OzExMDkgMTE2RiAxMUJBO0MyNDc7MTEwOSAxMTZGIDExQkE7CitDMjQ4O0MyNDg7MTEwOSAxMTZGIDExQkI7QzI0ODsxMTA5IDExNkYgMTFCQjsKK0MyNDk7QzI0OTsxMTA5IDExNkYgMTFCQztDMjQ5OzExMDkgMTE2RiAxMUJDOworQzI0QTtDMjRBOzExMDkgMTE2RiAxMUJEO0MyNEE7MTEwOSAxMTZGIDExQkQ7CitDMjRCO0MyNEI7MTEwOSAxMTZGIDExQkU7QzI0QjsxMTA5IDExNkYgMTFCRTsKK0MyNEM7QzI0QzsxMTA5IDExNkYgMTFCRjtDMjRDOzExMDkgMTE2RiAxMUJGOworQzI0RDtDMjREOzExMDkgMTE2RiAxMUMwO0MyNEQ7MTEwOSAxMTZGIDExQzA7CitDMjRFO0MyNEU7MTEwOSAxMTZGIDExQzE7QzI0RTsxMTA5IDExNkYgMTFDMTsKK0MyNEY7QzI0RjsxMTA5IDExNkYgMTFDMjtDMjRGOzExMDkgMTE2RiAxMUMyOworQzI1MDtDMjUwOzExMDkgMTE3MDtDMjUwOzExMDkgMTE3MDsKK0MyNTE7QzI1MTsxMTA5IDExNzAgMTFBODtDMjUxOzExMDkgMTE3MCAxMUE4OworQzI1MjtDMjUyOzExMDkgMTE3MCAxMUE5O0MyNTI7MTEwOSAxMTcwIDExQTk7CitDMjUzO0MyNTM7MTEwOSAxMTcwIDExQUE7QzI1MzsxMTA5IDExNzAgMTFBQTsKK0MyNTQ7QzI1NDsxMTA5IDExNzAgMTFBQjtDMjU0OzExMDkgMTE3MCAxMUFCOworQzI1NTtDMjU1OzExMDkgMTE3MCAxMUFDO0MyNTU7MTEwOSAxMTcwIDExQUM7CitDMjU2O0MyNTY7MTEwOSAxMTcwIDExQUQ7QzI1NjsxMTA5IDExNzAgMTFBRDsKK0MyNTc7QzI1NzsxMTA5IDExNzAgMTFBRTtDMjU3OzExMDkgMTE3MCAxMUFFOworQzI1ODtDMjU4OzExMDkgMTE3MCAxMUFGO0MyNTg7MTEwOSAxMTcwIDExQUY7CitDMjU5O0MyNTk7MTEwOSAxMTcwIDExQjA7QzI1OTsxMTA5IDExNzAgMTFCMDsKK0MyNUE7QzI1QTsxMTA5IDExNzAgMTFCMTtDMjVBOzExMDkgMTE3MCAxMUIxOworQzI1QjtDMjVCOzExMDkgMTE3MCAxMUIyO0MyNUI7MTEwOSAxMTcwIDExQjI7CitDMjVDO0MyNUM7MTEwOSAxMTcwIDExQjM7QzI1QzsxMTA5IDExNzAgMTFCMzsKK0MyNUQ7QzI1RDsxMTA5IDExNzAgMTFCNDtDMjVEOzExMDkgMTE3MCAxMUI0OworQzI1RTtDMjVFOzExMDkgMTE3MCAxMUI1O0MyNUU7MTEwOSAxMTcwIDExQjU7CitDMjVGO0MyNUY7MTEwOSAxMTcwIDExQjY7QzI1RjsxMTA5IDExNzAgMTFCNjsKK0MyNjA7QzI2MDsxMTA5IDExNzAgMTFCNztDMjYwOzExMDkgMTE3MCAxMUI3OworQzI2MTtDMjYxOzExMDkgMTE3MCAxMUI4O0MyNjE7MTEwOSAxMTcwIDExQjg7CitDMjYyO0MyNjI7MTEwOSAxMTcwIDExQjk7QzI2MjsxMTA5IDExNzAgMTFCOTsKK0MyNjM7QzI2MzsxMTA5IDExNzAgMTFCQTtDMjYzOzExMDkgMTE3MCAxMUJBOworQzI2NDtDMjY0OzExMDkgMTE3MCAxMUJCO0MyNjQ7MTEwOSAxMTcwIDExQkI7CitDMjY1O0MyNjU7MTEwOSAxMTcwIDExQkM7QzI2NTsxMTA5IDExNzAgMTFCQzsKK0MyNjY7QzI2NjsxMTA5IDExNzAgMTFCRDtDMjY2OzExMDkgMTE3MCAxMUJEOworQzI2NztDMjY3OzExMDkgMTE3MCAxMUJFO0MyNjc7MTEwOSAxMTcwIDExQkU7CitDMjY4O0MyNjg7MTEwOSAxMTcwIDExQkY7QzI2ODsxMTA5IDExNzAgMTFCRjsKK0MyNjk7QzI2OTsxMTA5IDExNzAgMTFDMDtDMjY5OzExMDkgMTE3MCAxMUMwOworQzI2QTtDMjZBOzExMDkgMTE3MCAxMUMxO0MyNkE7MTEwOSAxMTcwIDExQzE7CitDMjZCO0MyNkI7MTEwOSAxMTcwIDExQzI7QzI2QjsxMTA5IDExNzAgMTFDMjsKK0MyNkM7QzI2QzsxMTA5IDExNzE7QzI2QzsxMTA5IDExNzE7CitDMjZEO0MyNkQ7MTEwOSAxMTcxIDExQTg7QzI2RDsxMTA5IDExNzEgMTFBODsKK0MyNkU7QzI2RTsxMTA5IDExNzEgMTFBOTtDMjZFOzExMDkgMTE3MSAxMUE5OworQzI2RjtDMjZGOzExMDkgMTE3MSAxMUFBO0MyNkY7MTEwOSAxMTcxIDExQUE7CitDMjcwO0MyNzA7MTEwOSAxMTcxIDExQUI7QzI3MDsxMTA5IDExNzEgMTFBQjsKK0MyNzE7QzI3MTsxMTA5IDExNzEgMTFBQztDMjcxOzExMDkgMTE3MSAxMUFDOworQzI3MjtDMjcyOzExMDkgMTE3MSAxMUFEO0MyNzI7MTEwOSAxMTcxIDExQUQ7CitDMjczO0MyNzM7MTEwOSAxMTcxIDExQUU7QzI3MzsxMTA5IDExNzEgMTFBRTsKK0MyNzQ7QzI3NDsxMTA5IDExNzEgMTFBRjtDMjc0OzExMDkgMTE3MSAxMUFGOworQzI3NTtDMjc1OzExMDkgMTE3MSAxMUIwO0MyNzU7MTEwOSAxMTcxIDExQjA7CitDMjc2O0MyNzY7MTEwOSAxMTcxIDExQjE7QzI3NjsxMTA5IDExNzEgMTFCMTsKK0MyNzc7QzI3NzsxMTA5IDExNzEgMTFCMjtDMjc3OzExMDkgMTE3MSAxMUIyOworQzI3ODtDMjc4OzExMDkgMTE3MSAxMUIzO0MyNzg7MTEwOSAxMTcxIDExQjM7CitDMjc5O0MyNzk7MTEwOSAxMTcxIDExQjQ7QzI3OTsxMTA5IDExNzEgMTFCNDsKK0MyN0E7QzI3QTsxMTA5IDExNzEgMTFCNTtDMjdBOzExMDkgMTE3MSAxMUI1OworQzI3QjtDMjdCOzExMDkgMTE3MSAxMUI2O0MyN0I7MTEwOSAxMTcxIDExQjY7CitDMjdDO0MyN0M7MTEwOSAxMTcxIDExQjc7QzI3QzsxMTA5IDExNzEgMTFCNzsKK0MyN0Q7QzI3RDsxMTA5IDExNzEgMTFCODtDMjdEOzExMDkgMTE3MSAxMUI4OworQzI3RTtDMjdFOzExMDkgMTE3MSAxMUI5O0MyN0U7MTEwOSAxMTcxIDExQjk7CitDMjdGO0MyN0Y7MTEwOSAxMTcxIDExQkE7QzI3RjsxMTA5IDExNzEgMTFCQTsKK0MyODA7QzI4MDsxMTA5IDExNzEgMTFCQjtDMjgwOzExMDkgMTE3MSAxMUJCOworQzI4MTtDMjgxOzExMDkgMTE3MSAxMUJDO0MyODE7MTEwOSAxMTcxIDExQkM7CitDMjgyO0MyODI7MTEwOSAxMTcxIDExQkQ7QzI4MjsxMTA5IDExNzEgMTFCRDsKK0MyODM7QzI4MzsxMTA5IDExNzEgMTFCRTtDMjgzOzExMDkgMTE3MSAxMUJFOworQzI4NDtDMjg0OzExMDkgMTE3MSAxMUJGO0MyODQ7MTEwOSAxMTcxIDExQkY7CitDMjg1O0MyODU7MTEwOSAxMTcxIDExQzA7QzI4NTsxMTA5IDExNzEgMTFDMDsKK0MyODY7QzI4NjsxMTA5IDExNzEgMTFDMTtDMjg2OzExMDkgMTE3MSAxMUMxOworQzI4NztDMjg3OzExMDkgMTE3MSAxMUMyO0MyODc7MTEwOSAxMTcxIDExQzI7CitDMjg4O0MyODg7MTEwOSAxMTcyO0MyODg7MTEwOSAxMTcyOworQzI4OTtDMjg5OzExMDkgMTE3MiAxMUE4O0MyODk7MTEwOSAxMTcyIDExQTg7CitDMjhBO0MyOEE7MTEwOSAxMTcyIDExQTk7QzI4QTsxMTA5IDExNzIgMTFBOTsKK0MyOEI7QzI4QjsxMTA5IDExNzIgMTFBQTtDMjhCOzExMDkgMTE3MiAxMUFBOworQzI4QztDMjhDOzExMDkgMTE3MiAxMUFCO0MyOEM7MTEwOSAxMTcyIDExQUI7CitDMjhEO0MyOEQ7MTEwOSAxMTcyIDExQUM7QzI4RDsxMTA5IDExNzIgMTFBQzsKK0MyOEU7QzI4RTsxMTA5IDExNzIgMTFBRDtDMjhFOzExMDkgMTE3MiAxMUFEOworQzI4RjtDMjhGOzExMDkgMTE3MiAxMUFFO0MyOEY7MTEwOSAxMTcyIDExQUU7CitDMjkwO0MyOTA7MTEwOSAxMTcyIDExQUY7QzI5MDsxMTA5IDExNzIgMTFBRjsKK0MyOTE7QzI5MTsxMTA5IDExNzIgMTFCMDtDMjkxOzExMDkgMTE3MiAxMUIwOworQzI5MjtDMjkyOzExMDkgMTE3MiAxMUIxO0MyOTI7MTEwOSAxMTcyIDExQjE7CitDMjkzO0MyOTM7MTEwOSAxMTcyIDExQjI7QzI5MzsxMTA5IDExNzIgMTFCMjsKK0MyOTQ7QzI5NDsxMTA5IDExNzIgMTFCMztDMjk0OzExMDkgMTE3MiAxMUIzOworQzI5NTtDMjk1OzExMDkgMTE3MiAxMUI0O0MyOTU7MTEwOSAxMTcyIDExQjQ7CitDMjk2O0MyOTY7MTEwOSAxMTcyIDExQjU7QzI5NjsxMTA5IDExNzIgMTFCNTsKK0MyOTc7QzI5NzsxMTA5IDExNzIgMTFCNjtDMjk3OzExMDkgMTE3MiAxMUI2OworQzI5ODtDMjk4OzExMDkgMTE3MiAxMUI3O0MyOTg7MTEwOSAxMTcyIDExQjc7CitDMjk5O0MyOTk7MTEwOSAxMTcyIDExQjg7QzI5OTsxMTA5IDExNzIgMTFCODsKK0MyOUE7QzI5QTsxMTA5IDExNzIgMTFCOTtDMjlBOzExMDkgMTE3MiAxMUI5OworQzI5QjtDMjlCOzExMDkgMTE3MiAxMUJBO0MyOUI7MTEwOSAxMTcyIDExQkE7CitDMjlDO0MyOUM7MTEwOSAxMTcyIDExQkI7QzI5QzsxMTA5IDExNzIgMTFCQjsKK0MyOUQ7QzI5RDsxMTA5IDExNzIgMTFCQztDMjlEOzExMDkgMTE3MiAxMUJDOworQzI5RTtDMjlFOzExMDkgMTE3MiAxMUJEO0MyOUU7MTEwOSAxMTcyIDExQkQ7CitDMjlGO0MyOUY7MTEwOSAxMTcyIDExQkU7QzI5RjsxMTA5IDExNzIgMTFCRTsKK0MyQTA7QzJBMDsxMTA5IDExNzIgMTFCRjtDMkEwOzExMDkgMTE3MiAxMUJGOworQzJBMTtDMkExOzExMDkgMTE3MiAxMUMwO0MyQTE7MTEwOSAxMTcyIDExQzA7CitDMkEyO0MyQTI7MTEwOSAxMTcyIDExQzE7QzJBMjsxMTA5IDExNzIgMTFDMTsKK0MyQTM7QzJBMzsxMTA5IDExNzIgMTFDMjtDMkEzOzExMDkgMTE3MiAxMUMyOworQzJBNDtDMkE0OzExMDkgMTE3MztDMkE0OzExMDkgMTE3MzsKK0MyQTU7QzJBNTsxMTA5IDExNzMgMTFBODtDMkE1OzExMDkgMTE3MyAxMUE4OworQzJBNjtDMkE2OzExMDkgMTE3MyAxMUE5O0MyQTY7MTEwOSAxMTczIDExQTk7CitDMkE3O0MyQTc7MTEwOSAxMTczIDExQUE7QzJBNzsxMTA5IDExNzMgMTFBQTsKK0MyQTg7QzJBODsxMTA5IDExNzMgMTFBQjtDMkE4OzExMDkgMTE3MyAxMUFCOworQzJBOTtDMkE5OzExMDkgMTE3MyAxMUFDO0MyQTk7MTEwOSAxMTczIDExQUM7CitDMkFBO0MyQUE7MTEwOSAxMTczIDExQUQ7QzJBQTsxMTA5IDExNzMgMTFBRDsKK0MyQUI7QzJBQjsxMTA5IDExNzMgMTFBRTtDMkFCOzExMDkgMTE3MyAxMUFFOworQzJBQztDMkFDOzExMDkgMTE3MyAxMUFGO0MyQUM7MTEwOSAxMTczIDExQUY7CitDMkFEO0MyQUQ7MTEwOSAxMTczIDExQjA7QzJBRDsxMTA5IDExNzMgMTFCMDsKK0MyQUU7QzJBRTsxMTA5IDExNzMgMTFCMTtDMkFFOzExMDkgMTE3MyAxMUIxOworQzJBRjtDMkFGOzExMDkgMTE3MyAxMUIyO0MyQUY7MTEwOSAxMTczIDExQjI7CitDMkIwO0MyQjA7MTEwOSAxMTczIDExQjM7QzJCMDsxMTA5IDExNzMgMTFCMzsKK0MyQjE7QzJCMTsxMTA5IDExNzMgMTFCNDtDMkIxOzExMDkgMTE3MyAxMUI0OworQzJCMjtDMkIyOzExMDkgMTE3MyAxMUI1O0MyQjI7MTEwOSAxMTczIDExQjU7CitDMkIzO0MyQjM7MTEwOSAxMTczIDExQjY7QzJCMzsxMTA5IDExNzMgMTFCNjsKK0MyQjQ7QzJCNDsxMTA5IDExNzMgMTFCNztDMkI0OzExMDkgMTE3MyAxMUI3OworQzJCNTtDMkI1OzExMDkgMTE3MyAxMUI4O0MyQjU7MTEwOSAxMTczIDExQjg7CitDMkI2O0MyQjY7MTEwOSAxMTczIDExQjk7QzJCNjsxMTA5IDExNzMgMTFCOTsKK0MyQjc7QzJCNzsxMTA5IDExNzMgMTFCQTtDMkI3OzExMDkgMTE3MyAxMUJBOworQzJCODtDMkI4OzExMDkgMTE3MyAxMUJCO0MyQjg7MTEwOSAxMTczIDExQkI7CitDMkI5O0MyQjk7MTEwOSAxMTczIDExQkM7QzJCOTsxMTA5IDExNzMgMTFCQzsKK0MyQkE7QzJCQTsxMTA5IDExNzMgMTFCRDtDMkJBOzExMDkgMTE3MyAxMUJEOworQzJCQjtDMkJCOzExMDkgMTE3MyAxMUJFO0MyQkI7MTEwOSAxMTczIDExQkU7CitDMkJDO0MyQkM7MTEwOSAxMTczIDExQkY7QzJCQzsxMTA5IDExNzMgMTFCRjsKK0MyQkQ7QzJCRDsxMTA5IDExNzMgMTFDMDtDMkJEOzExMDkgMTE3MyAxMUMwOworQzJCRTtDMkJFOzExMDkgMTE3MyAxMUMxO0MyQkU7MTEwOSAxMTczIDExQzE7CitDMkJGO0MyQkY7MTEwOSAxMTczIDExQzI7QzJCRjsxMTA5IDExNzMgMTFDMjsKK0MyQzA7QzJDMDsxMTA5IDExNzQ7QzJDMDsxMTA5IDExNzQ7CitDMkMxO0MyQzE7MTEwOSAxMTc0IDExQTg7QzJDMTsxMTA5IDExNzQgMTFBODsKK0MyQzI7QzJDMjsxMTA5IDExNzQgMTFBOTtDMkMyOzExMDkgMTE3NCAxMUE5OworQzJDMztDMkMzOzExMDkgMTE3NCAxMUFBO0MyQzM7MTEwOSAxMTc0IDExQUE7CitDMkM0O0MyQzQ7MTEwOSAxMTc0IDExQUI7QzJDNDsxMTA5IDExNzQgMTFBQjsKK0MyQzU7QzJDNTsxMTA5IDExNzQgMTFBQztDMkM1OzExMDkgMTE3NCAxMUFDOworQzJDNjtDMkM2OzExMDkgMTE3NCAxMUFEO0MyQzY7MTEwOSAxMTc0IDExQUQ7CitDMkM3O0MyQzc7MTEwOSAxMTc0IDExQUU7QzJDNzsxMTA5IDExNzQgMTFBRTsKK0MyQzg7QzJDODsxMTA5IDExNzQgMTFBRjtDMkM4OzExMDkgMTE3NCAxMUFGOworQzJDOTtDMkM5OzExMDkgMTE3NCAxMUIwO0MyQzk7MTEwOSAxMTc0IDExQjA7CitDMkNBO0MyQ0E7MTEwOSAxMTc0IDExQjE7QzJDQTsxMTA5IDExNzQgMTFCMTsKK0MyQ0I7QzJDQjsxMTA5IDExNzQgMTFCMjtDMkNCOzExMDkgMTE3NCAxMUIyOworQzJDQztDMkNDOzExMDkgMTE3NCAxMUIzO0MyQ0M7MTEwOSAxMTc0IDExQjM7CitDMkNEO0MyQ0Q7MTEwOSAxMTc0IDExQjQ7QzJDRDsxMTA5IDExNzQgMTFCNDsKK0MyQ0U7QzJDRTsxMTA5IDExNzQgMTFCNTtDMkNFOzExMDkgMTE3NCAxMUI1OworQzJDRjtDMkNGOzExMDkgMTE3NCAxMUI2O0MyQ0Y7MTEwOSAxMTc0IDExQjY7CitDMkQwO0MyRDA7MTEwOSAxMTc0IDExQjc7QzJEMDsxMTA5IDExNzQgMTFCNzsKK0MyRDE7QzJEMTsxMTA5IDExNzQgMTFCODtDMkQxOzExMDkgMTE3NCAxMUI4OworQzJEMjtDMkQyOzExMDkgMTE3NCAxMUI5O0MyRDI7MTEwOSAxMTc0IDExQjk7CitDMkQzO0MyRDM7MTEwOSAxMTc0IDExQkE7QzJEMzsxMTA5IDExNzQgMTFCQTsKK0MyRDQ7QzJENDsxMTA5IDExNzQgMTFCQjtDMkQ0OzExMDkgMTE3NCAxMUJCOworQzJENTtDMkQ1OzExMDkgMTE3NCAxMUJDO0MyRDU7MTEwOSAxMTc0IDExQkM7CitDMkQ2O0MyRDY7MTEwOSAxMTc0IDExQkQ7QzJENjsxMTA5IDExNzQgMTFCRDsKK0MyRDc7QzJENzsxMTA5IDExNzQgMTFCRTtDMkQ3OzExMDkgMTE3NCAxMUJFOworQzJEODtDMkQ4OzExMDkgMTE3NCAxMUJGO0MyRDg7MTEwOSAxMTc0IDExQkY7CitDMkQ5O0MyRDk7MTEwOSAxMTc0IDExQzA7QzJEOTsxMTA5IDExNzQgMTFDMDsKK0MyREE7QzJEQTsxMTA5IDExNzQgMTFDMTtDMkRBOzExMDkgMTE3NCAxMUMxOworQzJEQjtDMkRCOzExMDkgMTE3NCAxMUMyO0MyREI7MTEwOSAxMTc0IDExQzI7CitDMkRDO0MyREM7MTEwOSAxMTc1O0MyREM7MTEwOSAxMTc1OworQzJERDtDMkREOzExMDkgMTE3NSAxMUE4O0MyREQ7MTEwOSAxMTc1IDExQTg7CitDMkRFO0MyREU7MTEwOSAxMTc1IDExQTk7QzJERTsxMTA5IDExNzUgMTFBOTsKK0MyREY7QzJERjsxMTA5IDExNzUgMTFBQTtDMkRGOzExMDkgMTE3NSAxMUFBOworQzJFMDtDMkUwOzExMDkgMTE3NSAxMUFCO0MyRTA7MTEwOSAxMTc1IDExQUI7CitDMkUxO0MyRTE7MTEwOSAxMTc1IDExQUM7QzJFMTsxMTA5IDExNzUgMTFBQzsKK0MyRTI7QzJFMjsxMTA5IDExNzUgMTFBRDtDMkUyOzExMDkgMTE3NSAxMUFEOworQzJFMztDMkUzOzExMDkgMTE3NSAxMUFFO0MyRTM7MTEwOSAxMTc1IDExQUU7CitDMkU0O0MyRTQ7MTEwOSAxMTc1IDExQUY7QzJFNDsxMTA5IDExNzUgMTFBRjsKK0MyRTU7QzJFNTsxMTA5IDExNzUgMTFCMDtDMkU1OzExMDkgMTE3NSAxMUIwOworQzJFNjtDMkU2OzExMDkgMTE3NSAxMUIxO0MyRTY7MTEwOSAxMTc1IDExQjE7CitDMkU3O0MyRTc7MTEwOSAxMTc1IDExQjI7QzJFNzsxMTA5IDExNzUgMTFCMjsKK0MyRTg7QzJFODsxMTA5IDExNzUgMTFCMztDMkU4OzExMDkgMTE3NSAxMUIzOworQzJFOTtDMkU5OzExMDkgMTE3NSAxMUI0O0MyRTk7MTEwOSAxMTc1IDExQjQ7CitDMkVBO0MyRUE7MTEwOSAxMTc1IDExQjU7QzJFQTsxMTA5IDExNzUgMTFCNTsKK0MyRUI7QzJFQjsxMTA5IDExNzUgMTFCNjtDMkVCOzExMDkgMTE3NSAxMUI2OworQzJFQztDMkVDOzExMDkgMTE3NSAxMUI3O0MyRUM7MTEwOSAxMTc1IDExQjc7CitDMkVEO0MyRUQ7MTEwOSAxMTc1IDExQjg7QzJFRDsxMTA5IDExNzUgMTFCODsKK0MyRUU7QzJFRTsxMTA5IDExNzUgMTFCOTtDMkVFOzExMDkgMTE3NSAxMUI5OworQzJFRjtDMkVGOzExMDkgMTE3NSAxMUJBO0MyRUY7MTEwOSAxMTc1IDExQkE7CitDMkYwO0MyRjA7MTEwOSAxMTc1IDExQkI7QzJGMDsxMTA5IDExNzUgMTFCQjsKK0MyRjE7QzJGMTsxMTA5IDExNzUgMTFCQztDMkYxOzExMDkgMTE3NSAxMUJDOworQzJGMjtDMkYyOzExMDkgMTE3NSAxMUJEO0MyRjI7MTEwOSAxMTc1IDExQkQ7CitDMkYzO0MyRjM7MTEwOSAxMTc1IDExQkU7QzJGMzsxMTA5IDExNzUgMTFCRTsKK0MyRjQ7QzJGNDsxMTA5IDExNzUgMTFCRjtDMkY0OzExMDkgMTE3NSAxMUJGOworQzJGNTtDMkY1OzExMDkgMTE3NSAxMUMwO0MyRjU7MTEwOSAxMTc1IDExQzA7CitDMkY2O0MyRjY7MTEwOSAxMTc1IDExQzE7QzJGNjsxMTA5IDExNzUgMTFDMTsKK0MyRjc7QzJGNzsxMTA5IDExNzUgMTFDMjtDMkY3OzExMDkgMTE3NSAxMUMyOworQzJGODtDMkY4OzExMEEgMTE2MTtDMkY4OzExMEEgMTE2MTsKK0MyRjk7QzJGOTsxMTBBIDExNjEgMTFBODtDMkY5OzExMEEgMTE2MSAxMUE4OworQzJGQTtDMkZBOzExMEEgMTE2MSAxMUE5O0MyRkE7MTEwQSAxMTYxIDExQTk7CitDMkZCO0MyRkI7MTEwQSAxMTYxIDExQUE7QzJGQjsxMTBBIDExNjEgMTFBQTsKK0MyRkM7QzJGQzsxMTBBIDExNjEgMTFBQjtDMkZDOzExMEEgMTE2MSAxMUFCOworQzJGRDtDMkZEOzExMEEgMTE2MSAxMUFDO0MyRkQ7MTEwQSAxMTYxIDExQUM7CitDMkZFO0MyRkU7MTEwQSAxMTYxIDExQUQ7QzJGRTsxMTBBIDExNjEgMTFBRDsKK0MyRkY7QzJGRjsxMTBBIDExNjEgMTFBRTtDMkZGOzExMEEgMTE2MSAxMUFFOworQzMwMDtDMzAwOzExMEEgMTE2MSAxMUFGO0MzMDA7MTEwQSAxMTYxIDExQUY7CitDMzAxO0MzMDE7MTEwQSAxMTYxIDExQjA7QzMwMTsxMTBBIDExNjEgMTFCMDsKK0MzMDI7QzMwMjsxMTBBIDExNjEgMTFCMTtDMzAyOzExMEEgMTE2MSAxMUIxOworQzMwMztDMzAzOzExMEEgMTE2MSAxMUIyO0MzMDM7MTEwQSAxMTYxIDExQjI7CitDMzA0O0MzMDQ7MTEwQSAxMTYxIDExQjM7QzMwNDsxMTBBIDExNjEgMTFCMzsKK0MzMDU7QzMwNTsxMTBBIDExNjEgMTFCNDtDMzA1OzExMEEgMTE2MSAxMUI0OworQzMwNjtDMzA2OzExMEEgMTE2MSAxMUI1O0MzMDY7MTEwQSAxMTYxIDExQjU7CitDMzA3O0MzMDc7MTEwQSAxMTYxIDExQjY7QzMwNzsxMTBBIDExNjEgMTFCNjsKK0MzMDg7QzMwODsxMTBBIDExNjEgMTFCNztDMzA4OzExMEEgMTE2MSAxMUI3OworQzMwOTtDMzA5OzExMEEgMTE2MSAxMUI4O0MzMDk7MTEwQSAxMTYxIDExQjg7CitDMzBBO0MzMEE7MTEwQSAxMTYxIDExQjk7QzMwQTsxMTBBIDExNjEgMTFCOTsKK0MzMEI7QzMwQjsxMTBBIDExNjEgMTFCQTtDMzBCOzExMEEgMTE2MSAxMUJBOworQzMwQztDMzBDOzExMEEgMTE2MSAxMUJCO0MzMEM7MTEwQSAxMTYxIDExQkI7CitDMzBEO0MzMEQ7MTEwQSAxMTYxIDExQkM7QzMwRDsxMTBBIDExNjEgMTFCQzsKK0MzMEU7QzMwRTsxMTBBIDExNjEgMTFCRDtDMzBFOzExMEEgMTE2MSAxMUJEOworQzMwRjtDMzBGOzExMEEgMTE2MSAxMUJFO0MzMEY7MTEwQSAxMTYxIDExQkU7CitDMzEwO0MzMTA7MTEwQSAxMTYxIDExQkY7QzMxMDsxMTBBIDExNjEgMTFCRjsKK0MzMTE7QzMxMTsxMTBBIDExNjEgMTFDMDtDMzExOzExMEEgMTE2MSAxMUMwOworQzMxMjtDMzEyOzExMEEgMTE2MSAxMUMxO0MzMTI7MTEwQSAxMTYxIDExQzE7CitDMzEzO0MzMTM7MTEwQSAxMTYxIDExQzI7QzMxMzsxMTBBIDExNjEgMTFDMjsKK0MzMTQ7QzMxNDsxMTBBIDExNjI7QzMxNDsxMTBBIDExNjI7CitDMzE1O0MzMTU7MTEwQSAxMTYyIDExQTg7QzMxNTsxMTBBIDExNjIgMTFBODsKK0MzMTY7QzMxNjsxMTBBIDExNjIgMTFBOTtDMzE2OzExMEEgMTE2MiAxMUE5OworQzMxNztDMzE3OzExMEEgMTE2MiAxMUFBO0MzMTc7MTEwQSAxMTYyIDExQUE7CitDMzE4O0MzMTg7MTEwQSAxMTYyIDExQUI7QzMxODsxMTBBIDExNjIgMTFBQjsKK0MzMTk7QzMxOTsxMTBBIDExNjIgMTFBQztDMzE5OzExMEEgMTE2MiAxMUFDOworQzMxQTtDMzFBOzExMEEgMTE2MiAxMUFEO0MzMUE7MTEwQSAxMTYyIDExQUQ7CitDMzFCO0MzMUI7MTEwQSAxMTYyIDExQUU7QzMxQjsxMTBBIDExNjIgMTFBRTsKK0MzMUM7QzMxQzsxMTBBIDExNjIgMTFBRjtDMzFDOzExMEEgMTE2MiAxMUFGOworQzMxRDtDMzFEOzExMEEgMTE2MiAxMUIwO0MzMUQ7MTEwQSAxMTYyIDExQjA7CitDMzFFO0MzMUU7MTEwQSAxMTYyIDExQjE7QzMxRTsxMTBBIDExNjIgMTFCMTsKK0MzMUY7QzMxRjsxMTBBIDExNjIgMTFCMjtDMzFGOzExMEEgMTE2MiAxMUIyOworQzMyMDtDMzIwOzExMEEgMTE2MiAxMUIzO0MzMjA7MTEwQSAxMTYyIDExQjM7CitDMzIxO0MzMjE7MTEwQSAxMTYyIDExQjQ7QzMyMTsxMTBBIDExNjIgMTFCNDsKK0MzMjI7QzMyMjsxMTBBIDExNjIgMTFCNTtDMzIyOzExMEEgMTE2MiAxMUI1OworQzMyMztDMzIzOzExMEEgMTE2MiAxMUI2O0MzMjM7MTEwQSAxMTYyIDExQjY7CitDMzI0O0MzMjQ7MTEwQSAxMTYyIDExQjc7QzMyNDsxMTBBIDExNjIgMTFCNzsKK0MzMjU7QzMyNTsxMTBBIDExNjIgMTFCODtDMzI1OzExMEEgMTE2MiAxMUI4OworQzMyNjtDMzI2OzExMEEgMTE2MiAxMUI5O0MzMjY7MTEwQSAxMTYyIDExQjk7CitDMzI3O0MzMjc7MTEwQSAxMTYyIDExQkE7QzMyNzsxMTBBIDExNjIgMTFCQTsKK0MzMjg7QzMyODsxMTBBIDExNjIgMTFCQjtDMzI4OzExMEEgMTE2MiAxMUJCOworQzMyOTtDMzI5OzExMEEgMTE2MiAxMUJDO0MzMjk7MTEwQSAxMTYyIDExQkM7CitDMzJBO0MzMkE7MTEwQSAxMTYyIDExQkQ7QzMyQTsxMTBBIDExNjIgMTFCRDsKK0MzMkI7QzMyQjsxMTBBIDExNjIgMTFCRTtDMzJCOzExMEEgMTE2MiAxMUJFOworQzMyQztDMzJDOzExMEEgMTE2MiAxMUJGO0MzMkM7MTEwQSAxMTYyIDExQkY7CitDMzJEO0MzMkQ7MTEwQSAxMTYyIDExQzA7QzMyRDsxMTBBIDExNjIgMTFDMDsKK0MzMkU7QzMyRTsxMTBBIDExNjIgMTFDMTtDMzJFOzExMEEgMTE2MiAxMUMxOworQzMyRjtDMzJGOzExMEEgMTE2MiAxMUMyO0MzMkY7MTEwQSAxMTYyIDExQzI7CitDMzMwO0MzMzA7MTEwQSAxMTYzO0MzMzA7MTEwQSAxMTYzOworQzMzMTtDMzMxOzExMEEgMTE2MyAxMUE4O0MzMzE7MTEwQSAxMTYzIDExQTg7CitDMzMyO0MzMzI7MTEwQSAxMTYzIDExQTk7QzMzMjsxMTBBIDExNjMgMTFBOTsKK0MzMzM7QzMzMzsxMTBBIDExNjMgMTFBQTtDMzMzOzExMEEgMTE2MyAxMUFBOworQzMzNDtDMzM0OzExMEEgMTE2MyAxMUFCO0MzMzQ7MTEwQSAxMTYzIDExQUI7CitDMzM1O0MzMzU7MTEwQSAxMTYzIDExQUM7QzMzNTsxMTBBIDExNjMgMTFBQzsKK0MzMzY7QzMzNjsxMTBBIDExNjMgMTFBRDtDMzM2OzExMEEgMTE2MyAxMUFEOworQzMzNztDMzM3OzExMEEgMTE2MyAxMUFFO0MzMzc7MTEwQSAxMTYzIDExQUU7CitDMzM4O0MzMzg7MTEwQSAxMTYzIDExQUY7QzMzODsxMTBBIDExNjMgMTFBRjsKK0MzMzk7QzMzOTsxMTBBIDExNjMgMTFCMDtDMzM5OzExMEEgMTE2MyAxMUIwOworQzMzQTtDMzNBOzExMEEgMTE2MyAxMUIxO0MzM0E7MTEwQSAxMTYzIDExQjE7CitDMzNCO0MzM0I7MTEwQSAxMTYzIDExQjI7QzMzQjsxMTBBIDExNjMgMTFCMjsKK0MzM0M7QzMzQzsxMTBBIDExNjMgMTFCMztDMzNDOzExMEEgMTE2MyAxMUIzOworQzMzRDtDMzNEOzExMEEgMTE2MyAxMUI0O0MzM0Q7MTEwQSAxMTYzIDExQjQ7CitDMzNFO0MzM0U7MTEwQSAxMTYzIDExQjU7QzMzRTsxMTBBIDExNjMgMTFCNTsKK0MzM0Y7QzMzRjsxMTBBIDExNjMgMTFCNjtDMzNGOzExMEEgMTE2MyAxMUI2OworQzM0MDtDMzQwOzExMEEgMTE2MyAxMUI3O0MzNDA7MTEwQSAxMTYzIDExQjc7CitDMzQxO0MzNDE7MTEwQSAxMTYzIDExQjg7QzM0MTsxMTBBIDExNjMgMTFCODsKK0MzNDI7QzM0MjsxMTBBIDExNjMgMTFCOTtDMzQyOzExMEEgMTE2MyAxMUI5OworQzM0MztDMzQzOzExMEEgMTE2MyAxMUJBO0MzNDM7MTEwQSAxMTYzIDExQkE7CitDMzQ0O0MzNDQ7MTEwQSAxMTYzIDExQkI7QzM0NDsxMTBBIDExNjMgMTFCQjsKK0MzNDU7QzM0NTsxMTBBIDExNjMgMTFCQztDMzQ1OzExMEEgMTE2MyAxMUJDOworQzM0NjtDMzQ2OzExMEEgMTE2MyAxMUJEO0MzNDY7MTEwQSAxMTYzIDExQkQ7CitDMzQ3O0MzNDc7MTEwQSAxMTYzIDExQkU7QzM0NzsxMTBBIDExNjMgMTFCRTsKK0MzNDg7QzM0ODsxMTBBIDExNjMgMTFCRjtDMzQ4OzExMEEgMTE2MyAxMUJGOworQzM0OTtDMzQ5OzExMEEgMTE2MyAxMUMwO0MzNDk7MTEwQSAxMTYzIDExQzA7CitDMzRBO0MzNEE7MTEwQSAxMTYzIDExQzE7QzM0QTsxMTBBIDExNjMgMTFDMTsKK0MzNEI7QzM0QjsxMTBBIDExNjMgMTFDMjtDMzRCOzExMEEgMTE2MyAxMUMyOworQzM0QztDMzRDOzExMEEgMTE2NDtDMzRDOzExMEEgMTE2NDsKK0MzNEQ7QzM0RDsxMTBBIDExNjQgMTFBODtDMzREOzExMEEgMTE2NCAxMUE4OworQzM0RTtDMzRFOzExMEEgMTE2NCAxMUE5O0MzNEU7MTEwQSAxMTY0IDExQTk7CitDMzRGO0MzNEY7MTEwQSAxMTY0IDExQUE7QzM0RjsxMTBBIDExNjQgMTFBQTsKK0MzNTA7QzM1MDsxMTBBIDExNjQgMTFBQjtDMzUwOzExMEEgMTE2NCAxMUFCOworQzM1MTtDMzUxOzExMEEgMTE2NCAxMUFDO0MzNTE7MTEwQSAxMTY0IDExQUM7CitDMzUyO0MzNTI7MTEwQSAxMTY0IDExQUQ7QzM1MjsxMTBBIDExNjQgMTFBRDsKK0MzNTM7QzM1MzsxMTBBIDExNjQgMTFBRTtDMzUzOzExMEEgMTE2NCAxMUFFOworQzM1NDtDMzU0OzExMEEgMTE2NCAxMUFGO0MzNTQ7MTEwQSAxMTY0IDExQUY7CitDMzU1O0MzNTU7MTEwQSAxMTY0IDExQjA7QzM1NTsxMTBBIDExNjQgMTFCMDsKK0MzNTY7QzM1NjsxMTBBIDExNjQgMTFCMTtDMzU2OzExMEEgMTE2NCAxMUIxOworQzM1NztDMzU3OzExMEEgMTE2NCAxMUIyO0MzNTc7MTEwQSAxMTY0IDExQjI7CitDMzU4O0MzNTg7MTEwQSAxMTY0IDExQjM7QzM1ODsxMTBBIDExNjQgMTFCMzsKK0MzNTk7QzM1OTsxMTBBIDExNjQgMTFCNDtDMzU5OzExMEEgMTE2NCAxMUI0OworQzM1QTtDMzVBOzExMEEgMTE2NCAxMUI1O0MzNUE7MTEwQSAxMTY0IDExQjU7CitDMzVCO0MzNUI7MTEwQSAxMTY0IDExQjY7QzM1QjsxMTBBIDExNjQgMTFCNjsKK0MzNUM7QzM1QzsxMTBBIDExNjQgMTFCNztDMzVDOzExMEEgMTE2NCAxMUI3OworQzM1RDtDMzVEOzExMEEgMTE2NCAxMUI4O0MzNUQ7MTEwQSAxMTY0IDExQjg7CitDMzVFO0MzNUU7MTEwQSAxMTY0IDExQjk7QzM1RTsxMTBBIDExNjQgMTFCOTsKK0MzNUY7QzM1RjsxMTBBIDExNjQgMTFCQTtDMzVGOzExMEEgMTE2NCAxMUJBOworQzM2MDtDMzYwOzExMEEgMTE2NCAxMUJCO0MzNjA7MTEwQSAxMTY0IDExQkI7CitDMzYxO0MzNjE7MTEwQSAxMTY0IDExQkM7QzM2MTsxMTBBIDExNjQgMTFCQzsKK0MzNjI7QzM2MjsxMTBBIDExNjQgMTFCRDtDMzYyOzExMEEgMTE2NCAxMUJEOworQzM2MztDMzYzOzExMEEgMTE2NCAxMUJFO0MzNjM7MTEwQSAxMTY0IDExQkU7CitDMzY0O0MzNjQ7MTEwQSAxMTY0IDExQkY7QzM2NDsxMTBBIDExNjQgMTFCRjsKK0MzNjU7QzM2NTsxMTBBIDExNjQgMTFDMDtDMzY1OzExMEEgMTE2NCAxMUMwOworQzM2NjtDMzY2OzExMEEgMTE2NCAxMUMxO0MzNjY7MTEwQSAxMTY0IDExQzE7CitDMzY3O0MzNjc7MTEwQSAxMTY0IDExQzI7QzM2NzsxMTBBIDExNjQgMTFDMjsKK0MzNjg7QzM2ODsxMTBBIDExNjU7QzM2ODsxMTBBIDExNjU7CitDMzY5O0MzNjk7MTEwQSAxMTY1IDExQTg7QzM2OTsxMTBBIDExNjUgMTFBODsKK0MzNkE7QzM2QTsxMTBBIDExNjUgMTFBOTtDMzZBOzExMEEgMTE2NSAxMUE5OworQzM2QjtDMzZCOzExMEEgMTE2NSAxMUFBO0MzNkI7MTEwQSAxMTY1IDExQUE7CitDMzZDO0MzNkM7MTEwQSAxMTY1IDExQUI7QzM2QzsxMTBBIDExNjUgMTFBQjsKK0MzNkQ7QzM2RDsxMTBBIDExNjUgMTFBQztDMzZEOzExMEEgMTE2NSAxMUFDOworQzM2RTtDMzZFOzExMEEgMTE2NSAxMUFEO0MzNkU7MTEwQSAxMTY1IDExQUQ7CitDMzZGO0MzNkY7MTEwQSAxMTY1IDExQUU7QzM2RjsxMTBBIDExNjUgMTFBRTsKK0MzNzA7QzM3MDsxMTBBIDExNjUgMTFBRjtDMzcwOzExMEEgMTE2NSAxMUFGOworQzM3MTtDMzcxOzExMEEgMTE2NSAxMUIwO0MzNzE7MTEwQSAxMTY1IDExQjA7CitDMzcyO0MzNzI7MTEwQSAxMTY1IDExQjE7QzM3MjsxMTBBIDExNjUgMTFCMTsKK0MzNzM7QzM3MzsxMTBBIDExNjUgMTFCMjtDMzczOzExMEEgMTE2NSAxMUIyOworQzM3NDtDMzc0OzExMEEgMTE2NSAxMUIzO0MzNzQ7MTEwQSAxMTY1IDExQjM7CitDMzc1O0MzNzU7MTEwQSAxMTY1IDExQjQ7QzM3NTsxMTBBIDExNjUgMTFCNDsKK0MzNzY7QzM3NjsxMTBBIDExNjUgMTFCNTtDMzc2OzExMEEgMTE2NSAxMUI1OworQzM3NztDMzc3OzExMEEgMTE2NSAxMUI2O0MzNzc7MTEwQSAxMTY1IDExQjY7CitDMzc4O0MzNzg7MTEwQSAxMTY1IDExQjc7QzM3ODsxMTBBIDExNjUgMTFCNzsKK0MzNzk7QzM3OTsxMTBBIDExNjUgMTFCODtDMzc5OzExMEEgMTE2NSAxMUI4OworQzM3QTtDMzdBOzExMEEgMTE2NSAxMUI5O0MzN0E7MTEwQSAxMTY1IDExQjk7CitDMzdCO0MzN0I7MTEwQSAxMTY1IDExQkE7QzM3QjsxMTBBIDExNjUgMTFCQTsKK0MzN0M7QzM3QzsxMTBBIDExNjUgMTFCQjtDMzdDOzExMEEgMTE2NSAxMUJCOworQzM3RDtDMzdEOzExMEEgMTE2NSAxMUJDO0MzN0Q7MTEwQSAxMTY1IDExQkM7CitDMzdFO0MzN0U7MTEwQSAxMTY1IDExQkQ7QzM3RTsxMTBBIDExNjUgMTFCRDsKK0MzN0Y7QzM3RjsxMTBBIDExNjUgMTFCRTtDMzdGOzExMEEgMTE2NSAxMUJFOworQzM4MDtDMzgwOzExMEEgMTE2NSAxMUJGO0MzODA7MTEwQSAxMTY1IDExQkY7CitDMzgxO0MzODE7MTEwQSAxMTY1IDExQzA7QzM4MTsxMTBBIDExNjUgMTFDMDsKK0MzODI7QzM4MjsxMTBBIDExNjUgMTFDMTtDMzgyOzExMEEgMTE2NSAxMUMxOworQzM4MztDMzgzOzExMEEgMTE2NSAxMUMyO0MzODM7MTEwQSAxMTY1IDExQzI7CitDMzg0O0MzODQ7MTEwQSAxMTY2O0MzODQ7MTEwQSAxMTY2OworQzM4NTtDMzg1OzExMEEgMTE2NiAxMUE4O0MzODU7MTEwQSAxMTY2IDExQTg7CitDMzg2O0MzODY7MTEwQSAxMTY2IDExQTk7QzM4NjsxMTBBIDExNjYgMTFBOTsKK0MzODc7QzM4NzsxMTBBIDExNjYgMTFBQTtDMzg3OzExMEEgMTE2NiAxMUFBOworQzM4ODtDMzg4OzExMEEgMTE2NiAxMUFCO0MzODg7MTEwQSAxMTY2IDExQUI7CitDMzg5O0MzODk7MTEwQSAxMTY2IDExQUM7QzM4OTsxMTBBIDExNjYgMTFBQzsKK0MzOEE7QzM4QTsxMTBBIDExNjYgMTFBRDtDMzhBOzExMEEgMTE2NiAxMUFEOworQzM4QjtDMzhCOzExMEEgMTE2NiAxMUFFO0MzOEI7MTEwQSAxMTY2IDExQUU7CitDMzhDO0MzOEM7MTEwQSAxMTY2IDExQUY7QzM4QzsxMTBBIDExNjYgMTFBRjsKK0MzOEQ7QzM4RDsxMTBBIDExNjYgMTFCMDtDMzhEOzExMEEgMTE2NiAxMUIwOworQzM4RTtDMzhFOzExMEEgMTE2NiAxMUIxO0MzOEU7MTEwQSAxMTY2IDExQjE7CitDMzhGO0MzOEY7MTEwQSAxMTY2IDExQjI7QzM4RjsxMTBBIDExNjYgMTFCMjsKK0MzOTA7QzM5MDsxMTBBIDExNjYgMTFCMztDMzkwOzExMEEgMTE2NiAxMUIzOworQzM5MTtDMzkxOzExMEEgMTE2NiAxMUI0O0MzOTE7MTEwQSAxMTY2IDExQjQ7CitDMzkyO0MzOTI7MTEwQSAxMTY2IDExQjU7QzM5MjsxMTBBIDExNjYgMTFCNTsKK0MzOTM7QzM5MzsxMTBBIDExNjYgMTFCNjtDMzkzOzExMEEgMTE2NiAxMUI2OworQzM5NDtDMzk0OzExMEEgMTE2NiAxMUI3O0MzOTQ7MTEwQSAxMTY2IDExQjc7CitDMzk1O0MzOTU7MTEwQSAxMTY2IDExQjg7QzM5NTsxMTBBIDExNjYgMTFCODsKK0MzOTY7QzM5NjsxMTBBIDExNjYgMTFCOTtDMzk2OzExMEEgMTE2NiAxMUI5OworQzM5NztDMzk3OzExMEEgMTE2NiAxMUJBO0MzOTc7MTEwQSAxMTY2IDExQkE7CitDMzk4O0MzOTg7MTEwQSAxMTY2IDExQkI7QzM5ODsxMTBBIDExNjYgMTFCQjsKK0MzOTk7QzM5OTsxMTBBIDExNjYgMTFCQztDMzk5OzExMEEgMTE2NiAxMUJDOworQzM5QTtDMzlBOzExMEEgMTE2NiAxMUJEO0MzOUE7MTEwQSAxMTY2IDExQkQ7CitDMzlCO0MzOUI7MTEwQSAxMTY2IDExQkU7QzM5QjsxMTBBIDExNjYgMTFCRTsKK0MzOUM7QzM5QzsxMTBBIDExNjYgMTFCRjtDMzlDOzExMEEgMTE2NiAxMUJGOworQzM5RDtDMzlEOzExMEEgMTE2NiAxMUMwO0MzOUQ7MTEwQSAxMTY2IDExQzA7CitDMzlFO0MzOUU7MTEwQSAxMTY2IDExQzE7QzM5RTsxMTBBIDExNjYgMTFDMTsKK0MzOUY7QzM5RjsxMTBBIDExNjYgMTFDMjtDMzlGOzExMEEgMTE2NiAxMUMyOworQzNBMDtDM0EwOzExMEEgMTE2NztDM0EwOzExMEEgMTE2NzsKK0MzQTE7QzNBMTsxMTBBIDExNjcgMTFBODtDM0ExOzExMEEgMTE2NyAxMUE4OworQzNBMjtDM0EyOzExMEEgMTE2NyAxMUE5O0MzQTI7MTEwQSAxMTY3IDExQTk7CitDM0EzO0MzQTM7MTEwQSAxMTY3IDExQUE7QzNBMzsxMTBBIDExNjcgMTFBQTsKK0MzQTQ7QzNBNDsxMTBBIDExNjcgMTFBQjtDM0E0OzExMEEgMTE2NyAxMUFCOworQzNBNTtDM0E1OzExMEEgMTE2NyAxMUFDO0MzQTU7MTEwQSAxMTY3IDExQUM7CitDM0E2O0MzQTY7MTEwQSAxMTY3IDExQUQ7QzNBNjsxMTBBIDExNjcgMTFBRDsKK0MzQTc7QzNBNzsxMTBBIDExNjcgMTFBRTtDM0E3OzExMEEgMTE2NyAxMUFFOworQzNBODtDM0E4OzExMEEgMTE2NyAxMUFGO0MzQTg7MTEwQSAxMTY3IDExQUY7CitDM0E5O0MzQTk7MTEwQSAxMTY3IDExQjA7QzNBOTsxMTBBIDExNjcgMTFCMDsKK0MzQUE7QzNBQTsxMTBBIDExNjcgMTFCMTtDM0FBOzExMEEgMTE2NyAxMUIxOworQzNBQjtDM0FCOzExMEEgMTE2NyAxMUIyO0MzQUI7MTEwQSAxMTY3IDExQjI7CitDM0FDO0MzQUM7MTEwQSAxMTY3IDExQjM7QzNBQzsxMTBBIDExNjcgMTFCMzsKK0MzQUQ7QzNBRDsxMTBBIDExNjcgMTFCNDtDM0FEOzExMEEgMTE2NyAxMUI0OworQzNBRTtDM0FFOzExMEEgMTE2NyAxMUI1O0MzQUU7MTEwQSAxMTY3IDExQjU7CitDM0FGO0MzQUY7MTEwQSAxMTY3IDExQjY7QzNBRjsxMTBBIDExNjcgMTFCNjsKK0MzQjA7QzNCMDsxMTBBIDExNjcgMTFCNztDM0IwOzExMEEgMTE2NyAxMUI3OworQzNCMTtDM0IxOzExMEEgMTE2NyAxMUI4O0MzQjE7MTEwQSAxMTY3IDExQjg7CitDM0IyO0MzQjI7MTEwQSAxMTY3IDExQjk7QzNCMjsxMTBBIDExNjcgMTFCOTsKK0MzQjM7QzNCMzsxMTBBIDExNjcgMTFCQTtDM0IzOzExMEEgMTE2NyAxMUJBOworQzNCNDtDM0I0OzExMEEgMTE2NyAxMUJCO0MzQjQ7MTEwQSAxMTY3IDExQkI7CitDM0I1O0MzQjU7MTEwQSAxMTY3IDExQkM7QzNCNTsxMTBBIDExNjcgMTFCQzsKK0MzQjY7QzNCNjsxMTBBIDExNjcgMTFCRDtDM0I2OzExMEEgMTE2NyAxMUJEOworQzNCNztDM0I3OzExMEEgMTE2NyAxMUJFO0MzQjc7MTEwQSAxMTY3IDExQkU7CitDM0I4O0MzQjg7MTEwQSAxMTY3IDExQkY7QzNCODsxMTBBIDExNjcgMTFCRjsKK0MzQjk7QzNCOTsxMTBBIDExNjcgMTFDMDtDM0I5OzExMEEgMTE2NyAxMUMwOworQzNCQTtDM0JBOzExMEEgMTE2NyAxMUMxO0MzQkE7MTEwQSAxMTY3IDExQzE7CitDM0JCO0MzQkI7MTEwQSAxMTY3IDExQzI7QzNCQjsxMTBBIDExNjcgMTFDMjsKK0MzQkM7QzNCQzsxMTBBIDExNjg7QzNCQzsxMTBBIDExNjg7CitDM0JEO0MzQkQ7MTEwQSAxMTY4IDExQTg7QzNCRDsxMTBBIDExNjggMTFBODsKK0MzQkU7QzNCRTsxMTBBIDExNjggMTFBOTtDM0JFOzExMEEgMTE2OCAxMUE5OworQzNCRjtDM0JGOzExMEEgMTE2OCAxMUFBO0MzQkY7MTEwQSAxMTY4IDExQUE7CitDM0MwO0MzQzA7MTEwQSAxMTY4IDExQUI7QzNDMDsxMTBBIDExNjggMTFBQjsKK0MzQzE7QzNDMTsxMTBBIDExNjggMTFBQztDM0MxOzExMEEgMTE2OCAxMUFDOworQzNDMjtDM0MyOzExMEEgMTE2OCAxMUFEO0MzQzI7MTEwQSAxMTY4IDExQUQ7CitDM0MzO0MzQzM7MTEwQSAxMTY4IDExQUU7QzNDMzsxMTBBIDExNjggMTFBRTsKK0MzQzQ7QzNDNDsxMTBBIDExNjggMTFBRjtDM0M0OzExMEEgMTE2OCAxMUFGOworQzNDNTtDM0M1OzExMEEgMTE2OCAxMUIwO0MzQzU7MTEwQSAxMTY4IDExQjA7CitDM0M2O0MzQzY7MTEwQSAxMTY4IDExQjE7QzNDNjsxMTBBIDExNjggMTFCMTsKK0MzQzc7QzNDNzsxMTBBIDExNjggMTFCMjtDM0M3OzExMEEgMTE2OCAxMUIyOworQzNDODtDM0M4OzExMEEgMTE2OCAxMUIzO0MzQzg7MTEwQSAxMTY4IDExQjM7CitDM0M5O0MzQzk7MTEwQSAxMTY4IDExQjQ7QzNDOTsxMTBBIDExNjggMTFCNDsKK0MzQ0E7QzNDQTsxMTBBIDExNjggMTFCNTtDM0NBOzExMEEgMTE2OCAxMUI1OworQzNDQjtDM0NCOzExMEEgMTE2OCAxMUI2O0MzQ0I7MTEwQSAxMTY4IDExQjY7CitDM0NDO0MzQ0M7MTEwQSAxMTY4IDExQjc7QzNDQzsxMTBBIDExNjggMTFCNzsKK0MzQ0Q7QzNDRDsxMTBBIDExNjggMTFCODtDM0NEOzExMEEgMTE2OCAxMUI4OworQzNDRTtDM0NFOzExMEEgMTE2OCAxMUI5O0MzQ0U7MTEwQSAxMTY4IDExQjk7CitDM0NGO0MzQ0Y7MTEwQSAxMTY4IDExQkE7QzNDRjsxMTBBIDExNjggMTFCQTsKK0MzRDA7QzNEMDsxMTBBIDExNjggMTFCQjtDM0QwOzExMEEgMTE2OCAxMUJCOworQzNEMTtDM0QxOzExMEEgMTE2OCAxMUJDO0MzRDE7MTEwQSAxMTY4IDExQkM7CitDM0QyO0MzRDI7MTEwQSAxMTY4IDExQkQ7QzNEMjsxMTBBIDExNjggMTFCRDsKK0MzRDM7QzNEMzsxMTBBIDExNjggMTFCRTtDM0QzOzExMEEgMTE2OCAxMUJFOworQzNENDtDM0Q0OzExMEEgMTE2OCAxMUJGO0MzRDQ7MTEwQSAxMTY4IDExQkY7CitDM0Q1O0MzRDU7MTEwQSAxMTY4IDExQzA7QzNENTsxMTBBIDExNjggMTFDMDsKK0MzRDY7QzNENjsxMTBBIDExNjggMTFDMTtDM0Q2OzExMEEgMTE2OCAxMUMxOworQzNENztDM0Q3OzExMEEgMTE2OCAxMUMyO0MzRDc7MTEwQSAxMTY4IDExQzI7CitDM0Q4O0MzRDg7MTEwQSAxMTY5O0MzRDg7MTEwQSAxMTY5OworQzNEOTtDM0Q5OzExMEEgMTE2OSAxMUE4O0MzRDk7MTEwQSAxMTY5IDExQTg7CitDM0RBO0MzREE7MTEwQSAxMTY5IDExQTk7QzNEQTsxMTBBIDExNjkgMTFBOTsKK0MzREI7QzNEQjsxMTBBIDExNjkgMTFBQTtDM0RCOzExMEEgMTE2OSAxMUFBOworQzNEQztDM0RDOzExMEEgMTE2OSAxMUFCO0MzREM7MTEwQSAxMTY5IDExQUI7CitDM0REO0MzREQ7MTEwQSAxMTY5IDExQUM7QzNERDsxMTBBIDExNjkgMTFBQzsKK0MzREU7QzNERTsxMTBBIDExNjkgMTFBRDtDM0RFOzExMEEgMTE2OSAxMUFEOworQzNERjtDM0RGOzExMEEgMTE2OSAxMUFFO0MzREY7MTEwQSAxMTY5IDExQUU7CitDM0UwO0MzRTA7MTEwQSAxMTY5IDExQUY7QzNFMDsxMTBBIDExNjkgMTFBRjsKK0MzRTE7QzNFMTsxMTBBIDExNjkgMTFCMDtDM0UxOzExMEEgMTE2OSAxMUIwOworQzNFMjtDM0UyOzExMEEgMTE2OSAxMUIxO0MzRTI7MTEwQSAxMTY5IDExQjE7CitDM0UzO0MzRTM7MTEwQSAxMTY5IDExQjI7QzNFMzsxMTBBIDExNjkgMTFCMjsKK0MzRTQ7QzNFNDsxMTBBIDExNjkgMTFCMztDM0U0OzExMEEgMTE2OSAxMUIzOworQzNFNTtDM0U1OzExMEEgMTE2OSAxMUI0O0MzRTU7MTEwQSAxMTY5IDExQjQ7CitDM0U2O0MzRTY7MTEwQSAxMTY5IDExQjU7QzNFNjsxMTBBIDExNjkgMTFCNTsKK0MzRTc7QzNFNzsxMTBBIDExNjkgMTFCNjtDM0U3OzExMEEgMTE2OSAxMUI2OworQzNFODtDM0U4OzExMEEgMTE2OSAxMUI3O0MzRTg7MTEwQSAxMTY5IDExQjc7CitDM0U5O0MzRTk7MTEwQSAxMTY5IDExQjg7QzNFOTsxMTBBIDExNjkgMTFCODsKK0MzRUE7QzNFQTsxMTBBIDExNjkgMTFCOTtDM0VBOzExMEEgMTE2OSAxMUI5OworQzNFQjtDM0VCOzExMEEgMTE2OSAxMUJBO0MzRUI7MTEwQSAxMTY5IDExQkE7CitDM0VDO0MzRUM7MTEwQSAxMTY5IDExQkI7QzNFQzsxMTBBIDExNjkgMTFCQjsKK0MzRUQ7QzNFRDsxMTBBIDExNjkgMTFCQztDM0VEOzExMEEgMTE2OSAxMUJDOworQzNFRTtDM0VFOzExMEEgMTE2OSAxMUJEO0MzRUU7MTEwQSAxMTY5IDExQkQ7CitDM0VGO0MzRUY7MTEwQSAxMTY5IDExQkU7QzNFRjsxMTBBIDExNjkgMTFCRTsKK0MzRjA7QzNGMDsxMTBBIDExNjkgMTFCRjtDM0YwOzExMEEgMTE2OSAxMUJGOworQzNGMTtDM0YxOzExMEEgMTE2OSAxMUMwO0MzRjE7MTEwQSAxMTY5IDExQzA7CitDM0YyO0MzRjI7MTEwQSAxMTY5IDExQzE7QzNGMjsxMTBBIDExNjkgMTFDMTsKK0MzRjM7QzNGMzsxMTBBIDExNjkgMTFDMjtDM0YzOzExMEEgMTE2OSAxMUMyOworQzNGNDtDM0Y0OzExMEEgMTE2QTtDM0Y0OzExMEEgMTE2QTsKK0MzRjU7QzNGNTsxMTBBIDExNkEgMTFBODtDM0Y1OzExMEEgMTE2QSAxMUE4OworQzNGNjtDM0Y2OzExMEEgMTE2QSAxMUE5O0MzRjY7MTEwQSAxMTZBIDExQTk7CitDM0Y3O0MzRjc7MTEwQSAxMTZBIDExQUE7QzNGNzsxMTBBIDExNkEgMTFBQTsKK0MzRjg7QzNGODsxMTBBIDExNkEgMTFBQjtDM0Y4OzExMEEgMTE2QSAxMUFCOworQzNGOTtDM0Y5OzExMEEgMTE2QSAxMUFDO0MzRjk7MTEwQSAxMTZBIDExQUM7CitDM0ZBO0MzRkE7MTEwQSAxMTZBIDExQUQ7QzNGQTsxMTBBIDExNkEgMTFBRDsKK0MzRkI7QzNGQjsxMTBBIDExNkEgMTFBRTtDM0ZCOzExMEEgMTE2QSAxMUFFOworQzNGQztDM0ZDOzExMEEgMTE2QSAxMUFGO0MzRkM7MTEwQSAxMTZBIDExQUY7CitDM0ZEO0MzRkQ7MTEwQSAxMTZBIDExQjA7QzNGRDsxMTBBIDExNkEgMTFCMDsKK0MzRkU7QzNGRTsxMTBBIDExNkEgMTFCMTtDM0ZFOzExMEEgMTE2QSAxMUIxOworQzNGRjtDM0ZGOzExMEEgMTE2QSAxMUIyO0MzRkY7MTEwQSAxMTZBIDExQjI7CitDNDAwO0M0MDA7MTEwQSAxMTZBIDExQjM7QzQwMDsxMTBBIDExNkEgMTFCMzsKK0M0MDE7QzQwMTsxMTBBIDExNkEgMTFCNDtDNDAxOzExMEEgMTE2QSAxMUI0OworQzQwMjtDNDAyOzExMEEgMTE2QSAxMUI1O0M0MDI7MTEwQSAxMTZBIDExQjU7CitDNDAzO0M0MDM7MTEwQSAxMTZBIDExQjY7QzQwMzsxMTBBIDExNkEgMTFCNjsKK0M0MDQ7QzQwNDsxMTBBIDExNkEgMTFCNztDNDA0OzExMEEgMTE2QSAxMUI3OworQzQwNTtDNDA1OzExMEEgMTE2QSAxMUI4O0M0MDU7MTEwQSAxMTZBIDExQjg7CitDNDA2O0M0MDY7MTEwQSAxMTZBIDExQjk7QzQwNjsxMTBBIDExNkEgMTFCOTsKK0M0MDc7QzQwNzsxMTBBIDExNkEgMTFCQTtDNDA3OzExMEEgMTE2QSAxMUJBOworQzQwODtDNDA4OzExMEEgMTE2QSAxMUJCO0M0MDg7MTEwQSAxMTZBIDExQkI7CitDNDA5O0M0MDk7MTEwQSAxMTZBIDExQkM7QzQwOTsxMTBBIDExNkEgMTFCQzsKK0M0MEE7QzQwQTsxMTBBIDExNkEgMTFCRDtDNDBBOzExMEEgMTE2QSAxMUJEOworQzQwQjtDNDBCOzExMEEgMTE2QSAxMUJFO0M0MEI7MTEwQSAxMTZBIDExQkU7CitDNDBDO0M0MEM7MTEwQSAxMTZBIDExQkY7QzQwQzsxMTBBIDExNkEgMTFCRjsKK0M0MEQ7QzQwRDsxMTBBIDExNkEgMTFDMDtDNDBEOzExMEEgMTE2QSAxMUMwOworQzQwRTtDNDBFOzExMEEgMTE2QSAxMUMxO0M0MEU7MTEwQSAxMTZBIDExQzE7CitDNDBGO0M0MEY7MTEwQSAxMTZBIDExQzI7QzQwRjsxMTBBIDExNkEgMTFDMjsKK0M0MTA7QzQxMDsxMTBBIDExNkI7QzQxMDsxMTBBIDExNkI7CitDNDExO0M0MTE7MTEwQSAxMTZCIDExQTg7QzQxMTsxMTBBIDExNkIgMTFBODsKK0M0MTI7QzQxMjsxMTBBIDExNkIgMTFBOTtDNDEyOzExMEEgMTE2QiAxMUE5OworQzQxMztDNDEzOzExMEEgMTE2QiAxMUFBO0M0MTM7MTEwQSAxMTZCIDExQUE7CitDNDE0O0M0MTQ7MTEwQSAxMTZCIDExQUI7QzQxNDsxMTBBIDExNkIgMTFBQjsKK0M0MTU7QzQxNTsxMTBBIDExNkIgMTFBQztDNDE1OzExMEEgMTE2QiAxMUFDOworQzQxNjtDNDE2OzExMEEgMTE2QiAxMUFEO0M0MTY7MTEwQSAxMTZCIDExQUQ7CitDNDE3O0M0MTc7MTEwQSAxMTZCIDExQUU7QzQxNzsxMTBBIDExNkIgMTFBRTsKK0M0MTg7QzQxODsxMTBBIDExNkIgMTFBRjtDNDE4OzExMEEgMTE2QiAxMUFGOworQzQxOTtDNDE5OzExMEEgMTE2QiAxMUIwO0M0MTk7MTEwQSAxMTZCIDExQjA7CitDNDFBO0M0MUE7MTEwQSAxMTZCIDExQjE7QzQxQTsxMTBBIDExNkIgMTFCMTsKK0M0MUI7QzQxQjsxMTBBIDExNkIgMTFCMjtDNDFCOzExMEEgMTE2QiAxMUIyOworQzQxQztDNDFDOzExMEEgMTE2QiAxMUIzO0M0MUM7MTEwQSAxMTZCIDExQjM7CitDNDFEO0M0MUQ7MTEwQSAxMTZCIDExQjQ7QzQxRDsxMTBBIDExNkIgMTFCNDsKK0M0MUU7QzQxRTsxMTBBIDExNkIgMTFCNTtDNDFFOzExMEEgMTE2QiAxMUI1OworQzQxRjtDNDFGOzExMEEgMTE2QiAxMUI2O0M0MUY7MTEwQSAxMTZCIDExQjY7CitDNDIwO0M0MjA7MTEwQSAxMTZCIDExQjc7QzQyMDsxMTBBIDExNkIgMTFCNzsKK0M0MjE7QzQyMTsxMTBBIDExNkIgMTFCODtDNDIxOzExMEEgMTE2QiAxMUI4OworQzQyMjtDNDIyOzExMEEgMTE2QiAxMUI5O0M0MjI7MTEwQSAxMTZCIDExQjk7CitDNDIzO0M0MjM7MTEwQSAxMTZCIDExQkE7QzQyMzsxMTBBIDExNkIgMTFCQTsKK0M0MjQ7QzQyNDsxMTBBIDExNkIgMTFCQjtDNDI0OzExMEEgMTE2QiAxMUJCOworQzQyNTtDNDI1OzExMEEgMTE2QiAxMUJDO0M0MjU7MTEwQSAxMTZCIDExQkM7CitDNDI2O0M0MjY7MTEwQSAxMTZCIDExQkQ7QzQyNjsxMTBBIDExNkIgMTFCRDsKK0M0Mjc7QzQyNzsxMTBBIDExNkIgMTFCRTtDNDI3OzExMEEgMTE2QiAxMUJFOworQzQyODtDNDI4OzExMEEgMTE2QiAxMUJGO0M0Mjg7MTEwQSAxMTZCIDExQkY7CitDNDI5O0M0Mjk7MTEwQSAxMTZCIDExQzA7QzQyOTsxMTBBIDExNkIgMTFDMDsKK0M0MkE7QzQyQTsxMTBBIDExNkIgMTFDMTtDNDJBOzExMEEgMTE2QiAxMUMxOworQzQyQjtDNDJCOzExMEEgMTE2QiAxMUMyO0M0MkI7MTEwQSAxMTZCIDExQzI7CitDNDJDO0M0MkM7MTEwQSAxMTZDO0M0MkM7MTEwQSAxMTZDOworQzQyRDtDNDJEOzExMEEgMTE2QyAxMUE4O0M0MkQ7MTEwQSAxMTZDIDExQTg7CitDNDJFO0M0MkU7MTEwQSAxMTZDIDExQTk7QzQyRTsxMTBBIDExNkMgMTFBOTsKK0M0MkY7QzQyRjsxMTBBIDExNkMgMTFBQTtDNDJGOzExMEEgMTE2QyAxMUFBOworQzQzMDtDNDMwOzExMEEgMTE2QyAxMUFCO0M0MzA7MTEwQSAxMTZDIDExQUI7CitDNDMxO0M0MzE7MTEwQSAxMTZDIDExQUM7QzQzMTsxMTBBIDExNkMgMTFBQzsKK0M0MzI7QzQzMjsxMTBBIDExNkMgMTFBRDtDNDMyOzExMEEgMTE2QyAxMUFEOworQzQzMztDNDMzOzExMEEgMTE2QyAxMUFFO0M0MzM7MTEwQSAxMTZDIDExQUU7CitDNDM0O0M0MzQ7MTEwQSAxMTZDIDExQUY7QzQzNDsxMTBBIDExNkMgMTFBRjsKK0M0MzU7QzQzNTsxMTBBIDExNkMgMTFCMDtDNDM1OzExMEEgMTE2QyAxMUIwOworQzQzNjtDNDM2OzExMEEgMTE2QyAxMUIxO0M0MzY7MTEwQSAxMTZDIDExQjE7CitDNDM3O0M0Mzc7MTEwQSAxMTZDIDExQjI7QzQzNzsxMTBBIDExNkMgMTFCMjsKK0M0Mzg7QzQzODsxMTBBIDExNkMgMTFCMztDNDM4OzExMEEgMTE2QyAxMUIzOworQzQzOTtDNDM5OzExMEEgMTE2QyAxMUI0O0M0Mzk7MTEwQSAxMTZDIDExQjQ7CitDNDNBO0M0M0E7MTEwQSAxMTZDIDExQjU7QzQzQTsxMTBBIDExNkMgMTFCNTsKK0M0M0I7QzQzQjsxMTBBIDExNkMgMTFCNjtDNDNCOzExMEEgMTE2QyAxMUI2OworQzQzQztDNDNDOzExMEEgMTE2QyAxMUI3O0M0M0M7MTEwQSAxMTZDIDExQjc7CitDNDNEO0M0M0Q7MTEwQSAxMTZDIDExQjg7QzQzRDsxMTBBIDExNkMgMTFCODsKK0M0M0U7QzQzRTsxMTBBIDExNkMgMTFCOTtDNDNFOzExMEEgMTE2QyAxMUI5OworQzQzRjtDNDNGOzExMEEgMTE2QyAxMUJBO0M0M0Y7MTEwQSAxMTZDIDExQkE7CitDNDQwO0M0NDA7MTEwQSAxMTZDIDExQkI7QzQ0MDsxMTBBIDExNkMgMTFCQjsKK0M0NDE7QzQ0MTsxMTBBIDExNkMgMTFCQztDNDQxOzExMEEgMTE2QyAxMUJDOworQzQ0MjtDNDQyOzExMEEgMTE2QyAxMUJEO0M0NDI7MTEwQSAxMTZDIDExQkQ7CitDNDQzO0M0NDM7MTEwQSAxMTZDIDExQkU7QzQ0MzsxMTBBIDExNkMgMTFCRTsKK0M0NDQ7QzQ0NDsxMTBBIDExNkMgMTFCRjtDNDQ0OzExMEEgMTE2QyAxMUJGOworQzQ0NTtDNDQ1OzExMEEgMTE2QyAxMUMwO0M0NDU7MTEwQSAxMTZDIDExQzA7CitDNDQ2O0M0NDY7MTEwQSAxMTZDIDExQzE7QzQ0NjsxMTBBIDExNkMgMTFDMTsKK0M0NDc7QzQ0NzsxMTBBIDExNkMgMTFDMjtDNDQ3OzExMEEgMTE2QyAxMUMyOworQzQ0ODtDNDQ4OzExMEEgMTE2RDtDNDQ4OzExMEEgMTE2RDsKK0M0NDk7QzQ0OTsxMTBBIDExNkQgMTFBODtDNDQ5OzExMEEgMTE2RCAxMUE4OworQzQ0QTtDNDRBOzExMEEgMTE2RCAxMUE5O0M0NEE7MTEwQSAxMTZEIDExQTk7CitDNDRCO0M0NEI7MTEwQSAxMTZEIDExQUE7QzQ0QjsxMTBBIDExNkQgMTFBQTsKK0M0NEM7QzQ0QzsxMTBBIDExNkQgMTFBQjtDNDRDOzExMEEgMTE2RCAxMUFCOworQzQ0RDtDNDREOzExMEEgMTE2RCAxMUFDO0M0NEQ7MTEwQSAxMTZEIDExQUM7CitDNDRFO0M0NEU7MTEwQSAxMTZEIDExQUQ7QzQ0RTsxMTBBIDExNkQgMTFBRDsKK0M0NEY7QzQ0RjsxMTBBIDExNkQgMTFBRTtDNDRGOzExMEEgMTE2RCAxMUFFOworQzQ1MDtDNDUwOzExMEEgMTE2RCAxMUFGO0M0NTA7MTEwQSAxMTZEIDExQUY7CitDNDUxO0M0NTE7MTEwQSAxMTZEIDExQjA7QzQ1MTsxMTBBIDExNkQgMTFCMDsKK0M0NTI7QzQ1MjsxMTBBIDExNkQgMTFCMTtDNDUyOzExMEEgMTE2RCAxMUIxOworQzQ1MztDNDUzOzExMEEgMTE2RCAxMUIyO0M0NTM7MTEwQSAxMTZEIDExQjI7CitDNDU0O0M0NTQ7MTEwQSAxMTZEIDExQjM7QzQ1NDsxMTBBIDExNkQgMTFCMzsKK0M0NTU7QzQ1NTsxMTBBIDExNkQgMTFCNDtDNDU1OzExMEEgMTE2RCAxMUI0OworQzQ1NjtDNDU2OzExMEEgMTE2RCAxMUI1O0M0NTY7MTEwQSAxMTZEIDExQjU7CitDNDU3O0M0NTc7MTEwQSAxMTZEIDExQjY7QzQ1NzsxMTBBIDExNkQgMTFCNjsKK0M0NTg7QzQ1ODsxMTBBIDExNkQgMTFCNztDNDU4OzExMEEgMTE2RCAxMUI3OworQzQ1OTtDNDU5OzExMEEgMTE2RCAxMUI4O0M0NTk7MTEwQSAxMTZEIDExQjg7CitDNDVBO0M0NUE7MTEwQSAxMTZEIDExQjk7QzQ1QTsxMTBBIDExNkQgMTFCOTsKK0M0NUI7QzQ1QjsxMTBBIDExNkQgMTFCQTtDNDVCOzExMEEgMTE2RCAxMUJBOworQzQ1QztDNDVDOzExMEEgMTE2RCAxMUJCO0M0NUM7MTEwQSAxMTZEIDExQkI7CitDNDVEO0M0NUQ7MTEwQSAxMTZEIDExQkM7QzQ1RDsxMTBBIDExNkQgMTFCQzsKK0M0NUU7QzQ1RTsxMTBBIDExNkQgMTFCRDtDNDVFOzExMEEgMTE2RCAxMUJEOworQzQ1RjtDNDVGOzExMEEgMTE2RCAxMUJFO0M0NUY7MTEwQSAxMTZEIDExQkU7CitDNDYwO0M0NjA7MTEwQSAxMTZEIDExQkY7QzQ2MDsxMTBBIDExNkQgMTFCRjsKK0M0NjE7QzQ2MTsxMTBBIDExNkQgMTFDMDtDNDYxOzExMEEgMTE2RCAxMUMwOworQzQ2MjtDNDYyOzExMEEgMTE2RCAxMUMxO0M0NjI7MTEwQSAxMTZEIDExQzE7CitDNDYzO0M0NjM7MTEwQSAxMTZEIDExQzI7QzQ2MzsxMTBBIDExNkQgMTFDMjsKK0M0NjQ7QzQ2NDsxMTBBIDExNkU7QzQ2NDsxMTBBIDExNkU7CitDNDY1O0M0NjU7MTEwQSAxMTZFIDExQTg7QzQ2NTsxMTBBIDExNkUgMTFBODsKK0M0NjY7QzQ2NjsxMTBBIDExNkUgMTFBOTtDNDY2OzExMEEgMTE2RSAxMUE5OworQzQ2NztDNDY3OzExMEEgMTE2RSAxMUFBO0M0Njc7MTEwQSAxMTZFIDExQUE7CitDNDY4O0M0Njg7MTEwQSAxMTZFIDExQUI7QzQ2ODsxMTBBIDExNkUgMTFBQjsKK0M0Njk7QzQ2OTsxMTBBIDExNkUgMTFBQztDNDY5OzExMEEgMTE2RSAxMUFDOworQzQ2QTtDNDZBOzExMEEgMTE2RSAxMUFEO0M0NkE7MTEwQSAxMTZFIDExQUQ7CitDNDZCO0M0NkI7MTEwQSAxMTZFIDExQUU7QzQ2QjsxMTBBIDExNkUgMTFBRTsKK0M0NkM7QzQ2QzsxMTBBIDExNkUgMTFBRjtDNDZDOzExMEEgMTE2RSAxMUFGOworQzQ2RDtDNDZEOzExMEEgMTE2RSAxMUIwO0M0NkQ7MTEwQSAxMTZFIDExQjA7CitDNDZFO0M0NkU7MTEwQSAxMTZFIDExQjE7QzQ2RTsxMTBBIDExNkUgMTFCMTsKK0M0NkY7QzQ2RjsxMTBBIDExNkUgMTFCMjtDNDZGOzExMEEgMTE2RSAxMUIyOworQzQ3MDtDNDcwOzExMEEgMTE2RSAxMUIzO0M0NzA7MTEwQSAxMTZFIDExQjM7CitDNDcxO0M0NzE7MTEwQSAxMTZFIDExQjQ7QzQ3MTsxMTBBIDExNkUgMTFCNDsKK0M0NzI7QzQ3MjsxMTBBIDExNkUgMTFCNTtDNDcyOzExMEEgMTE2RSAxMUI1OworQzQ3MztDNDczOzExMEEgMTE2RSAxMUI2O0M0NzM7MTEwQSAxMTZFIDExQjY7CitDNDc0O0M0NzQ7MTEwQSAxMTZFIDExQjc7QzQ3NDsxMTBBIDExNkUgMTFCNzsKK0M0NzU7QzQ3NTsxMTBBIDExNkUgMTFCODtDNDc1OzExMEEgMTE2RSAxMUI4OworQzQ3NjtDNDc2OzExMEEgMTE2RSAxMUI5O0M0NzY7MTEwQSAxMTZFIDExQjk7CitDNDc3O0M0Nzc7MTEwQSAxMTZFIDExQkE7QzQ3NzsxMTBBIDExNkUgMTFCQTsKK0M0Nzg7QzQ3ODsxMTBBIDExNkUgMTFCQjtDNDc4OzExMEEgMTE2RSAxMUJCOworQzQ3OTtDNDc5OzExMEEgMTE2RSAxMUJDO0M0Nzk7MTEwQSAxMTZFIDExQkM7CitDNDdBO0M0N0E7MTEwQSAxMTZFIDExQkQ7QzQ3QTsxMTBBIDExNkUgMTFCRDsKK0M0N0I7QzQ3QjsxMTBBIDExNkUgMTFCRTtDNDdCOzExMEEgMTE2RSAxMUJFOworQzQ3QztDNDdDOzExMEEgMTE2RSAxMUJGO0M0N0M7MTEwQSAxMTZFIDExQkY7CitDNDdEO0M0N0Q7MTEwQSAxMTZFIDExQzA7QzQ3RDsxMTBBIDExNkUgMTFDMDsKK0M0N0U7QzQ3RTsxMTBBIDExNkUgMTFDMTtDNDdFOzExMEEgMTE2RSAxMUMxOworQzQ3RjtDNDdGOzExMEEgMTE2RSAxMUMyO0M0N0Y7MTEwQSAxMTZFIDExQzI7CitDNDgwO0M0ODA7MTEwQSAxMTZGO0M0ODA7MTEwQSAxMTZGOworQzQ4MTtDNDgxOzExMEEgMTE2RiAxMUE4O0M0ODE7MTEwQSAxMTZGIDExQTg7CitDNDgyO0M0ODI7MTEwQSAxMTZGIDExQTk7QzQ4MjsxMTBBIDExNkYgMTFBOTsKK0M0ODM7QzQ4MzsxMTBBIDExNkYgMTFBQTtDNDgzOzExMEEgMTE2RiAxMUFBOworQzQ4NDtDNDg0OzExMEEgMTE2RiAxMUFCO0M0ODQ7MTEwQSAxMTZGIDExQUI7CitDNDg1O0M0ODU7MTEwQSAxMTZGIDExQUM7QzQ4NTsxMTBBIDExNkYgMTFBQzsKK0M0ODY7QzQ4NjsxMTBBIDExNkYgMTFBRDtDNDg2OzExMEEgMTE2RiAxMUFEOworQzQ4NztDNDg3OzExMEEgMTE2RiAxMUFFO0M0ODc7MTEwQSAxMTZGIDExQUU7CitDNDg4O0M0ODg7MTEwQSAxMTZGIDExQUY7QzQ4ODsxMTBBIDExNkYgMTFBRjsKK0M0ODk7QzQ4OTsxMTBBIDExNkYgMTFCMDtDNDg5OzExMEEgMTE2RiAxMUIwOworQzQ4QTtDNDhBOzExMEEgMTE2RiAxMUIxO0M0OEE7MTEwQSAxMTZGIDExQjE7CitDNDhCO0M0OEI7MTEwQSAxMTZGIDExQjI7QzQ4QjsxMTBBIDExNkYgMTFCMjsKK0M0OEM7QzQ4QzsxMTBBIDExNkYgMTFCMztDNDhDOzExMEEgMTE2RiAxMUIzOworQzQ4RDtDNDhEOzExMEEgMTE2RiAxMUI0O0M0OEQ7MTEwQSAxMTZGIDExQjQ7CitDNDhFO0M0OEU7MTEwQSAxMTZGIDExQjU7QzQ4RTsxMTBBIDExNkYgMTFCNTsKK0M0OEY7QzQ4RjsxMTBBIDExNkYgMTFCNjtDNDhGOzExMEEgMTE2RiAxMUI2OworQzQ5MDtDNDkwOzExMEEgMTE2RiAxMUI3O0M0OTA7MTEwQSAxMTZGIDExQjc7CitDNDkxO0M0OTE7MTEwQSAxMTZGIDExQjg7QzQ5MTsxMTBBIDExNkYgMTFCODsKK0M0OTI7QzQ5MjsxMTBBIDExNkYgMTFCOTtDNDkyOzExMEEgMTE2RiAxMUI5OworQzQ5MztDNDkzOzExMEEgMTE2RiAxMUJBO0M0OTM7MTEwQSAxMTZGIDExQkE7CitDNDk0O0M0OTQ7MTEwQSAxMTZGIDExQkI7QzQ5NDsxMTBBIDExNkYgMTFCQjsKK0M0OTU7QzQ5NTsxMTBBIDExNkYgMTFCQztDNDk1OzExMEEgMTE2RiAxMUJDOworQzQ5NjtDNDk2OzExMEEgMTE2RiAxMUJEO0M0OTY7MTEwQSAxMTZGIDExQkQ7CitDNDk3O0M0OTc7MTEwQSAxMTZGIDExQkU7QzQ5NzsxMTBBIDExNkYgMTFCRTsKK0M0OTg7QzQ5ODsxMTBBIDExNkYgMTFCRjtDNDk4OzExMEEgMTE2RiAxMUJGOworQzQ5OTtDNDk5OzExMEEgMTE2RiAxMUMwO0M0OTk7MTEwQSAxMTZGIDExQzA7CitDNDlBO0M0OUE7MTEwQSAxMTZGIDExQzE7QzQ5QTsxMTBBIDExNkYgMTFDMTsKK0M0OUI7QzQ5QjsxMTBBIDExNkYgMTFDMjtDNDlCOzExMEEgMTE2RiAxMUMyOworQzQ5QztDNDlDOzExMEEgMTE3MDtDNDlDOzExMEEgMTE3MDsKK0M0OUQ7QzQ5RDsxMTBBIDExNzAgMTFBODtDNDlEOzExMEEgMTE3MCAxMUE4OworQzQ5RTtDNDlFOzExMEEgMTE3MCAxMUE5O0M0OUU7MTEwQSAxMTcwIDExQTk7CitDNDlGO0M0OUY7MTEwQSAxMTcwIDExQUE7QzQ5RjsxMTBBIDExNzAgMTFBQTsKK0M0QTA7QzRBMDsxMTBBIDExNzAgMTFBQjtDNEEwOzExMEEgMTE3MCAxMUFCOworQzRBMTtDNEExOzExMEEgMTE3MCAxMUFDO0M0QTE7MTEwQSAxMTcwIDExQUM7CitDNEEyO0M0QTI7MTEwQSAxMTcwIDExQUQ7QzRBMjsxMTBBIDExNzAgMTFBRDsKK0M0QTM7QzRBMzsxMTBBIDExNzAgMTFBRTtDNEEzOzExMEEgMTE3MCAxMUFFOworQzRBNDtDNEE0OzExMEEgMTE3MCAxMUFGO0M0QTQ7MTEwQSAxMTcwIDExQUY7CitDNEE1O0M0QTU7MTEwQSAxMTcwIDExQjA7QzRBNTsxMTBBIDExNzAgMTFCMDsKK0M0QTY7QzRBNjsxMTBBIDExNzAgMTFCMTtDNEE2OzExMEEgMTE3MCAxMUIxOworQzRBNztDNEE3OzExMEEgMTE3MCAxMUIyO0M0QTc7MTEwQSAxMTcwIDExQjI7CitDNEE4O0M0QTg7MTEwQSAxMTcwIDExQjM7QzRBODsxMTBBIDExNzAgMTFCMzsKK0M0QTk7QzRBOTsxMTBBIDExNzAgMTFCNDtDNEE5OzExMEEgMTE3MCAxMUI0OworQzRBQTtDNEFBOzExMEEgMTE3MCAxMUI1O0M0QUE7MTEwQSAxMTcwIDExQjU7CitDNEFCO0M0QUI7MTEwQSAxMTcwIDExQjY7QzRBQjsxMTBBIDExNzAgMTFCNjsKK0M0QUM7QzRBQzsxMTBBIDExNzAgMTFCNztDNEFDOzExMEEgMTE3MCAxMUI3OworQzRBRDtDNEFEOzExMEEgMTE3MCAxMUI4O0M0QUQ7MTEwQSAxMTcwIDExQjg7CitDNEFFO0M0QUU7MTEwQSAxMTcwIDExQjk7QzRBRTsxMTBBIDExNzAgMTFCOTsKK0M0QUY7QzRBRjsxMTBBIDExNzAgMTFCQTtDNEFGOzExMEEgMTE3MCAxMUJBOworQzRCMDtDNEIwOzExMEEgMTE3MCAxMUJCO0M0QjA7MTEwQSAxMTcwIDExQkI7CitDNEIxO0M0QjE7MTEwQSAxMTcwIDExQkM7QzRCMTsxMTBBIDExNzAgMTFCQzsKK0M0QjI7QzRCMjsxMTBBIDExNzAgMTFCRDtDNEIyOzExMEEgMTE3MCAxMUJEOworQzRCMztDNEIzOzExMEEgMTE3MCAxMUJFO0M0QjM7MTEwQSAxMTcwIDExQkU7CitDNEI0O0M0QjQ7MTEwQSAxMTcwIDExQkY7QzRCNDsxMTBBIDExNzAgMTFCRjsKK0M0QjU7QzRCNTsxMTBBIDExNzAgMTFDMDtDNEI1OzExMEEgMTE3MCAxMUMwOworQzRCNjtDNEI2OzExMEEgMTE3MCAxMUMxO0M0QjY7MTEwQSAxMTcwIDExQzE7CitDNEI3O0M0Qjc7MTEwQSAxMTcwIDExQzI7QzRCNzsxMTBBIDExNzAgMTFDMjsKK0M0Qjg7QzRCODsxMTBBIDExNzE7QzRCODsxMTBBIDExNzE7CitDNEI5O0M0Qjk7MTEwQSAxMTcxIDExQTg7QzRCOTsxMTBBIDExNzEgMTFBODsKK0M0QkE7QzRCQTsxMTBBIDExNzEgMTFBOTtDNEJBOzExMEEgMTE3MSAxMUE5OworQzRCQjtDNEJCOzExMEEgMTE3MSAxMUFBO0M0QkI7MTEwQSAxMTcxIDExQUE7CitDNEJDO0M0QkM7MTEwQSAxMTcxIDExQUI7QzRCQzsxMTBBIDExNzEgMTFBQjsKK0M0QkQ7QzRCRDsxMTBBIDExNzEgMTFBQztDNEJEOzExMEEgMTE3MSAxMUFDOworQzRCRTtDNEJFOzExMEEgMTE3MSAxMUFEO0M0QkU7MTEwQSAxMTcxIDExQUQ7CitDNEJGO0M0QkY7MTEwQSAxMTcxIDExQUU7QzRCRjsxMTBBIDExNzEgMTFBRTsKK0M0QzA7QzRDMDsxMTBBIDExNzEgMTFBRjtDNEMwOzExMEEgMTE3MSAxMUFGOworQzRDMTtDNEMxOzExMEEgMTE3MSAxMUIwO0M0QzE7MTEwQSAxMTcxIDExQjA7CitDNEMyO0M0QzI7MTEwQSAxMTcxIDExQjE7QzRDMjsxMTBBIDExNzEgMTFCMTsKK0M0QzM7QzRDMzsxMTBBIDExNzEgMTFCMjtDNEMzOzExMEEgMTE3MSAxMUIyOworQzRDNDtDNEM0OzExMEEgMTE3MSAxMUIzO0M0QzQ7MTEwQSAxMTcxIDExQjM7CitDNEM1O0M0QzU7MTEwQSAxMTcxIDExQjQ7QzRDNTsxMTBBIDExNzEgMTFCNDsKK0M0QzY7QzRDNjsxMTBBIDExNzEgMTFCNTtDNEM2OzExMEEgMTE3MSAxMUI1OworQzRDNztDNEM3OzExMEEgMTE3MSAxMUI2O0M0Qzc7MTEwQSAxMTcxIDExQjY7CitDNEM4O0M0Qzg7MTEwQSAxMTcxIDExQjc7QzRDODsxMTBBIDExNzEgMTFCNzsKK0M0Qzk7QzRDOTsxMTBBIDExNzEgMTFCODtDNEM5OzExMEEgMTE3MSAxMUI4OworQzRDQTtDNENBOzExMEEgMTE3MSAxMUI5O0M0Q0E7MTEwQSAxMTcxIDExQjk7CitDNENCO0M0Q0I7MTEwQSAxMTcxIDExQkE7QzRDQjsxMTBBIDExNzEgMTFCQTsKK0M0Q0M7QzRDQzsxMTBBIDExNzEgMTFCQjtDNENDOzExMEEgMTE3MSAxMUJCOworQzRDRDtDNENEOzExMEEgMTE3MSAxMUJDO0M0Q0Q7MTEwQSAxMTcxIDExQkM7CitDNENFO0M0Q0U7MTEwQSAxMTcxIDExQkQ7QzRDRTsxMTBBIDExNzEgMTFCRDsKK0M0Q0Y7QzRDRjsxMTBBIDExNzEgMTFCRTtDNENGOzExMEEgMTE3MSAxMUJFOworQzREMDtDNEQwOzExMEEgMTE3MSAxMUJGO0M0RDA7MTEwQSAxMTcxIDExQkY7CitDNEQxO0M0RDE7MTEwQSAxMTcxIDExQzA7QzREMTsxMTBBIDExNzEgMTFDMDsKK0M0RDI7QzREMjsxMTBBIDExNzEgMTFDMTtDNEQyOzExMEEgMTE3MSAxMUMxOworQzREMztDNEQzOzExMEEgMTE3MSAxMUMyO0M0RDM7MTEwQSAxMTcxIDExQzI7CitDNEQ0O0M0RDQ7MTEwQSAxMTcyO0M0RDQ7MTEwQSAxMTcyOworQzRENTtDNEQ1OzExMEEgMTE3MiAxMUE4O0M0RDU7MTEwQSAxMTcyIDExQTg7CitDNEQ2O0M0RDY7MTEwQSAxMTcyIDExQTk7QzRENjsxMTBBIDExNzIgMTFBOTsKK0M0RDc7QzRENzsxMTBBIDExNzIgMTFBQTtDNEQ3OzExMEEgMTE3MiAxMUFBOworQzREODtDNEQ4OzExMEEgMTE3MiAxMUFCO0M0RDg7MTEwQSAxMTcyIDExQUI7CitDNEQ5O0M0RDk7MTEwQSAxMTcyIDExQUM7QzREOTsxMTBBIDExNzIgMTFBQzsKK0M0REE7QzREQTsxMTBBIDExNzIgMTFBRDtDNERBOzExMEEgMTE3MiAxMUFEOworQzREQjtDNERCOzExMEEgMTE3MiAxMUFFO0M0REI7MTEwQSAxMTcyIDExQUU7CitDNERDO0M0REM7MTEwQSAxMTcyIDExQUY7QzREQzsxMTBBIDExNzIgMTFBRjsKK0M0REQ7QzRERDsxMTBBIDExNzIgMTFCMDtDNEREOzExMEEgMTE3MiAxMUIwOworQzRERTtDNERFOzExMEEgMTE3MiAxMUIxO0M0REU7MTEwQSAxMTcyIDExQjE7CitDNERGO0M0REY7MTEwQSAxMTcyIDExQjI7QzRERjsxMTBBIDExNzIgMTFCMjsKK0M0RTA7QzRFMDsxMTBBIDExNzIgMTFCMztDNEUwOzExMEEgMTE3MiAxMUIzOworQzRFMTtDNEUxOzExMEEgMTE3MiAxMUI0O0M0RTE7MTEwQSAxMTcyIDExQjQ7CitDNEUyO0M0RTI7MTEwQSAxMTcyIDExQjU7QzRFMjsxMTBBIDExNzIgMTFCNTsKK0M0RTM7QzRFMzsxMTBBIDExNzIgMTFCNjtDNEUzOzExMEEgMTE3MiAxMUI2OworQzRFNDtDNEU0OzExMEEgMTE3MiAxMUI3O0M0RTQ7MTEwQSAxMTcyIDExQjc7CitDNEU1O0M0RTU7MTEwQSAxMTcyIDExQjg7QzRFNTsxMTBBIDExNzIgMTFCODsKK0M0RTY7QzRFNjsxMTBBIDExNzIgMTFCOTtDNEU2OzExMEEgMTE3MiAxMUI5OworQzRFNztDNEU3OzExMEEgMTE3MiAxMUJBO0M0RTc7MTEwQSAxMTcyIDExQkE7CitDNEU4O0M0RTg7MTEwQSAxMTcyIDExQkI7QzRFODsxMTBBIDExNzIgMTFCQjsKK0M0RTk7QzRFOTsxMTBBIDExNzIgMTFCQztDNEU5OzExMEEgMTE3MiAxMUJDOworQzRFQTtDNEVBOzExMEEgMTE3MiAxMUJEO0M0RUE7MTEwQSAxMTcyIDExQkQ7CitDNEVCO0M0RUI7MTEwQSAxMTcyIDExQkU7QzRFQjsxMTBBIDExNzIgMTFCRTsKK0M0RUM7QzRFQzsxMTBBIDExNzIgMTFCRjtDNEVDOzExMEEgMTE3MiAxMUJGOworQzRFRDtDNEVEOzExMEEgMTE3MiAxMUMwO0M0RUQ7MTEwQSAxMTcyIDExQzA7CitDNEVFO0M0RUU7MTEwQSAxMTcyIDExQzE7QzRFRTsxMTBBIDExNzIgMTFDMTsKK0M0RUY7QzRFRjsxMTBBIDExNzIgMTFDMjtDNEVGOzExMEEgMTE3MiAxMUMyOworQzRGMDtDNEYwOzExMEEgMTE3MztDNEYwOzExMEEgMTE3MzsKK0M0RjE7QzRGMTsxMTBBIDExNzMgMTFBODtDNEYxOzExMEEgMTE3MyAxMUE4OworQzRGMjtDNEYyOzExMEEgMTE3MyAxMUE5O0M0RjI7MTEwQSAxMTczIDExQTk7CitDNEYzO0M0RjM7MTEwQSAxMTczIDExQUE7QzRGMzsxMTBBIDExNzMgMTFBQTsKK0M0RjQ7QzRGNDsxMTBBIDExNzMgMTFBQjtDNEY0OzExMEEgMTE3MyAxMUFCOworQzRGNTtDNEY1OzExMEEgMTE3MyAxMUFDO0M0RjU7MTEwQSAxMTczIDExQUM7CitDNEY2O0M0RjY7MTEwQSAxMTczIDExQUQ7QzRGNjsxMTBBIDExNzMgMTFBRDsKK0M0Rjc7QzRGNzsxMTBBIDExNzMgMTFBRTtDNEY3OzExMEEgMTE3MyAxMUFFOworQzRGODtDNEY4OzExMEEgMTE3MyAxMUFGO0M0Rjg7MTEwQSAxMTczIDExQUY7CitDNEY5O0M0Rjk7MTEwQSAxMTczIDExQjA7QzRGOTsxMTBBIDExNzMgMTFCMDsKK0M0RkE7QzRGQTsxMTBBIDExNzMgMTFCMTtDNEZBOzExMEEgMTE3MyAxMUIxOworQzRGQjtDNEZCOzExMEEgMTE3MyAxMUIyO0M0RkI7MTEwQSAxMTczIDExQjI7CitDNEZDO0M0RkM7MTEwQSAxMTczIDExQjM7QzRGQzsxMTBBIDExNzMgMTFCMzsKK0M0RkQ7QzRGRDsxMTBBIDExNzMgMTFCNDtDNEZEOzExMEEgMTE3MyAxMUI0OworQzRGRTtDNEZFOzExMEEgMTE3MyAxMUI1O0M0RkU7MTEwQSAxMTczIDExQjU7CitDNEZGO0M0RkY7MTEwQSAxMTczIDExQjY7QzRGRjsxMTBBIDExNzMgMTFCNjsKK0M1MDA7QzUwMDsxMTBBIDExNzMgMTFCNztDNTAwOzExMEEgMTE3MyAxMUI3OworQzUwMTtDNTAxOzExMEEgMTE3MyAxMUI4O0M1MDE7MTEwQSAxMTczIDExQjg7CitDNTAyO0M1MDI7MTEwQSAxMTczIDExQjk7QzUwMjsxMTBBIDExNzMgMTFCOTsKK0M1MDM7QzUwMzsxMTBBIDExNzMgMTFCQTtDNTAzOzExMEEgMTE3MyAxMUJBOworQzUwNDtDNTA0OzExMEEgMTE3MyAxMUJCO0M1MDQ7MTEwQSAxMTczIDExQkI7CitDNTA1O0M1MDU7MTEwQSAxMTczIDExQkM7QzUwNTsxMTBBIDExNzMgMTFCQzsKK0M1MDY7QzUwNjsxMTBBIDExNzMgMTFCRDtDNTA2OzExMEEgMTE3MyAxMUJEOworQzUwNztDNTA3OzExMEEgMTE3MyAxMUJFO0M1MDc7MTEwQSAxMTczIDExQkU7CitDNTA4O0M1MDg7MTEwQSAxMTczIDExQkY7QzUwODsxMTBBIDExNzMgMTFCRjsKK0M1MDk7QzUwOTsxMTBBIDExNzMgMTFDMDtDNTA5OzExMEEgMTE3MyAxMUMwOworQzUwQTtDNTBBOzExMEEgMTE3MyAxMUMxO0M1MEE7MTEwQSAxMTczIDExQzE7CitDNTBCO0M1MEI7MTEwQSAxMTczIDExQzI7QzUwQjsxMTBBIDExNzMgMTFDMjsKK0M1MEM7QzUwQzsxMTBBIDExNzQ7QzUwQzsxMTBBIDExNzQ7CitDNTBEO0M1MEQ7MTEwQSAxMTc0IDExQTg7QzUwRDsxMTBBIDExNzQgMTFBODsKK0M1MEU7QzUwRTsxMTBBIDExNzQgMTFBOTtDNTBFOzExMEEgMTE3NCAxMUE5OworQzUwRjtDNTBGOzExMEEgMTE3NCAxMUFBO0M1MEY7MTEwQSAxMTc0IDExQUE7CitDNTEwO0M1MTA7MTEwQSAxMTc0IDExQUI7QzUxMDsxMTBBIDExNzQgMTFBQjsKK0M1MTE7QzUxMTsxMTBBIDExNzQgMTFBQztDNTExOzExMEEgMTE3NCAxMUFDOworQzUxMjtDNTEyOzExMEEgMTE3NCAxMUFEO0M1MTI7MTEwQSAxMTc0IDExQUQ7CitDNTEzO0M1MTM7MTEwQSAxMTc0IDExQUU7QzUxMzsxMTBBIDExNzQgMTFBRTsKK0M1MTQ7QzUxNDsxMTBBIDExNzQgMTFBRjtDNTE0OzExMEEgMTE3NCAxMUFGOworQzUxNTtDNTE1OzExMEEgMTE3NCAxMUIwO0M1MTU7MTEwQSAxMTc0IDExQjA7CitDNTE2O0M1MTY7MTEwQSAxMTc0IDExQjE7QzUxNjsxMTBBIDExNzQgMTFCMTsKK0M1MTc7QzUxNzsxMTBBIDExNzQgMTFCMjtDNTE3OzExMEEgMTE3NCAxMUIyOworQzUxODtDNTE4OzExMEEgMTE3NCAxMUIzO0M1MTg7MTEwQSAxMTc0IDExQjM7CitDNTE5O0M1MTk7MTEwQSAxMTc0IDExQjQ7QzUxOTsxMTBBIDExNzQgMTFCNDsKK0M1MUE7QzUxQTsxMTBBIDExNzQgMTFCNTtDNTFBOzExMEEgMTE3NCAxMUI1OworQzUxQjtDNTFCOzExMEEgMTE3NCAxMUI2O0M1MUI7MTEwQSAxMTc0IDExQjY7CitDNTFDO0M1MUM7MTEwQSAxMTc0IDExQjc7QzUxQzsxMTBBIDExNzQgMTFCNzsKK0M1MUQ7QzUxRDsxMTBBIDExNzQgMTFCODtDNTFEOzExMEEgMTE3NCAxMUI4OworQzUxRTtDNTFFOzExMEEgMTE3NCAxMUI5O0M1MUU7MTEwQSAxMTc0IDExQjk7CitDNTFGO0M1MUY7MTEwQSAxMTc0IDExQkE7QzUxRjsxMTBBIDExNzQgMTFCQTsKK0M1MjA7QzUyMDsxMTBBIDExNzQgMTFCQjtDNTIwOzExMEEgMTE3NCAxMUJCOworQzUyMTtDNTIxOzExMEEgMTE3NCAxMUJDO0M1MjE7MTEwQSAxMTc0IDExQkM7CitDNTIyO0M1MjI7MTEwQSAxMTc0IDExQkQ7QzUyMjsxMTBBIDExNzQgMTFCRDsKK0M1MjM7QzUyMzsxMTBBIDExNzQgMTFCRTtDNTIzOzExMEEgMTE3NCAxMUJFOworQzUyNDtDNTI0OzExMEEgMTE3NCAxMUJGO0M1MjQ7MTEwQSAxMTc0IDExQkY7CitDNTI1O0M1MjU7MTEwQSAxMTc0IDExQzA7QzUyNTsxMTBBIDExNzQgMTFDMDsKK0M1MjY7QzUyNjsxMTBBIDExNzQgMTFDMTtDNTI2OzExMEEgMTE3NCAxMUMxOworQzUyNztDNTI3OzExMEEgMTE3NCAxMUMyO0M1Mjc7MTEwQSAxMTc0IDExQzI7CitDNTI4O0M1Mjg7MTEwQSAxMTc1O0M1Mjg7MTEwQSAxMTc1OworQzUyOTtDNTI5OzExMEEgMTE3NSAxMUE4O0M1Mjk7MTEwQSAxMTc1IDExQTg7CitDNTJBO0M1MkE7MTEwQSAxMTc1IDExQTk7QzUyQTsxMTBBIDExNzUgMTFBOTsKK0M1MkI7QzUyQjsxMTBBIDExNzUgMTFBQTtDNTJCOzExMEEgMTE3NSAxMUFBOworQzUyQztDNTJDOzExMEEgMTE3NSAxMUFCO0M1MkM7MTEwQSAxMTc1IDExQUI7CitDNTJEO0M1MkQ7MTEwQSAxMTc1IDExQUM7QzUyRDsxMTBBIDExNzUgMTFBQzsKK0M1MkU7QzUyRTsxMTBBIDExNzUgMTFBRDtDNTJFOzExMEEgMTE3NSAxMUFEOworQzUyRjtDNTJGOzExMEEgMTE3NSAxMUFFO0M1MkY7MTEwQSAxMTc1IDExQUU7CitDNTMwO0M1MzA7MTEwQSAxMTc1IDExQUY7QzUzMDsxMTBBIDExNzUgMTFBRjsKK0M1MzE7QzUzMTsxMTBBIDExNzUgMTFCMDtDNTMxOzExMEEgMTE3NSAxMUIwOworQzUzMjtDNTMyOzExMEEgMTE3NSAxMUIxO0M1MzI7MTEwQSAxMTc1IDExQjE7CitDNTMzO0M1MzM7MTEwQSAxMTc1IDExQjI7QzUzMzsxMTBBIDExNzUgMTFCMjsKK0M1MzQ7QzUzNDsxMTBBIDExNzUgMTFCMztDNTM0OzExMEEgMTE3NSAxMUIzOworQzUzNTtDNTM1OzExMEEgMTE3NSAxMUI0O0M1MzU7MTEwQSAxMTc1IDExQjQ7CitDNTM2O0M1MzY7MTEwQSAxMTc1IDExQjU7QzUzNjsxMTBBIDExNzUgMTFCNTsKK0M1Mzc7QzUzNzsxMTBBIDExNzUgMTFCNjtDNTM3OzExMEEgMTE3NSAxMUI2OworQzUzODtDNTM4OzExMEEgMTE3NSAxMUI3O0M1Mzg7MTEwQSAxMTc1IDExQjc7CitDNTM5O0M1Mzk7MTEwQSAxMTc1IDExQjg7QzUzOTsxMTBBIDExNzUgMTFCODsKK0M1M0E7QzUzQTsxMTBBIDExNzUgMTFCOTtDNTNBOzExMEEgMTE3NSAxMUI5OworQzUzQjtDNTNCOzExMEEgMTE3NSAxMUJBO0M1M0I7MTEwQSAxMTc1IDExQkE7CitDNTNDO0M1M0M7MTEwQSAxMTc1IDExQkI7QzUzQzsxMTBBIDExNzUgMTFCQjsKK0M1M0Q7QzUzRDsxMTBBIDExNzUgMTFCQztDNTNEOzExMEEgMTE3NSAxMUJDOworQzUzRTtDNTNFOzExMEEgMTE3NSAxMUJEO0M1M0U7MTEwQSAxMTc1IDExQkQ7CitDNTNGO0M1M0Y7MTEwQSAxMTc1IDExQkU7QzUzRjsxMTBBIDExNzUgMTFCRTsKK0M1NDA7QzU0MDsxMTBBIDExNzUgMTFCRjtDNTQwOzExMEEgMTE3NSAxMUJGOworQzU0MTtDNTQxOzExMEEgMTE3NSAxMUMwO0M1NDE7MTEwQSAxMTc1IDExQzA7CitDNTQyO0M1NDI7MTEwQSAxMTc1IDExQzE7QzU0MjsxMTBBIDExNzUgMTFDMTsKK0M1NDM7QzU0MzsxMTBBIDExNzUgMTFDMjtDNTQzOzExMEEgMTE3NSAxMUMyOworQzU0NDtDNTQ0OzExMEIgMTE2MTtDNTQ0OzExMEIgMTE2MTsKK0M1NDU7QzU0NTsxMTBCIDExNjEgMTFBODtDNTQ1OzExMEIgMTE2MSAxMUE4OworQzU0NjtDNTQ2OzExMEIgMTE2MSAxMUE5O0M1NDY7MTEwQiAxMTYxIDExQTk7CitDNTQ3O0M1NDc7MTEwQiAxMTYxIDExQUE7QzU0NzsxMTBCIDExNjEgMTFBQTsKK0M1NDg7QzU0ODsxMTBCIDExNjEgMTFBQjtDNTQ4OzExMEIgMTE2MSAxMUFCOworQzU0OTtDNTQ5OzExMEIgMTE2MSAxMUFDO0M1NDk7MTEwQiAxMTYxIDExQUM7CitDNTRBO0M1NEE7MTEwQiAxMTYxIDExQUQ7QzU0QTsxMTBCIDExNjEgMTFBRDsKK0M1NEI7QzU0QjsxMTBCIDExNjEgMTFBRTtDNTRCOzExMEIgMTE2MSAxMUFFOworQzU0QztDNTRDOzExMEIgMTE2MSAxMUFGO0M1NEM7MTEwQiAxMTYxIDExQUY7CitDNTREO0M1NEQ7MTEwQiAxMTYxIDExQjA7QzU0RDsxMTBCIDExNjEgMTFCMDsKK0M1NEU7QzU0RTsxMTBCIDExNjEgMTFCMTtDNTRFOzExMEIgMTE2MSAxMUIxOworQzU0RjtDNTRGOzExMEIgMTE2MSAxMUIyO0M1NEY7MTEwQiAxMTYxIDExQjI7CitDNTUwO0M1NTA7MTEwQiAxMTYxIDExQjM7QzU1MDsxMTBCIDExNjEgMTFCMzsKK0M1NTE7QzU1MTsxMTBCIDExNjEgMTFCNDtDNTUxOzExMEIgMTE2MSAxMUI0OworQzU1MjtDNTUyOzExMEIgMTE2MSAxMUI1O0M1NTI7MTEwQiAxMTYxIDExQjU7CitDNTUzO0M1NTM7MTEwQiAxMTYxIDExQjY7QzU1MzsxMTBCIDExNjEgMTFCNjsKK0M1NTQ7QzU1NDsxMTBCIDExNjEgMTFCNztDNTU0OzExMEIgMTE2MSAxMUI3OworQzU1NTtDNTU1OzExMEIgMTE2MSAxMUI4O0M1NTU7MTEwQiAxMTYxIDExQjg7CitDNTU2O0M1NTY7MTEwQiAxMTYxIDExQjk7QzU1NjsxMTBCIDExNjEgMTFCOTsKK0M1NTc7QzU1NzsxMTBCIDExNjEgMTFCQTtDNTU3OzExMEIgMTE2MSAxMUJBOworQzU1ODtDNTU4OzExMEIgMTE2MSAxMUJCO0M1NTg7MTEwQiAxMTYxIDExQkI7CitDNTU5O0M1NTk7MTEwQiAxMTYxIDExQkM7QzU1OTsxMTBCIDExNjEgMTFCQzsKK0M1NUE7QzU1QTsxMTBCIDExNjEgMTFCRDtDNTVBOzExMEIgMTE2MSAxMUJEOworQzU1QjtDNTVCOzExMEIgMTE2MSAxMUJFO0M1NUI7MTEwQiAxMTYxIDExQkU7CitDNTVDO0M1NUM7MTEwQiAxMTYxIDExQkY7QzU1QzsxMTBCIDExNjEgMTFCRjsKK0M1NUQ7QzU1RDsxMTBCIDExNjEgMTFDMDtDNTVEOzExMEIgMTE2MSAxMUMwOworQzU1RTtDNTVFOzExMEIgMTE2MSAxMUMxO0M1NUU7MTEwQiAxMTYxIDExQzE7CitDNTVGO0M1NUY7MTEwQiAxMTYxIDExQzI7QzU1RjsxMTBCIDExNjEgMTFDMjsKK0M1NjA7QzU2MDsxMTBCIDExNjI7QzU2MDsxMTBCIDExNjI7CitDNTYxO0M1NjE7MTEwQiAxMTYyIDExQTg7QzU2MTsxMTBCIDExNjIgMTFBODsKK0M1NjI7QzU2MjsxMTBCIDExNjIgMTFBOTtDNTYyOzExMEIgMTE2MiAxMUE5OworQzU2MztDNTYzOzExMEIgMTE2MiAxMUFBO0M1NjM7MTEwQiAxMTYyIDExQUE7CitDNTY0O0M1NjQ7MTEwQiAxMTYyIDExQUI7QzU2NDsxMTBCIDExNjIgMTFBQjsKK0M1NjU7QzU2NTsxMTBCIDExNjIgMTFBQztDNTY1OzExMEIgMTE2MiAxMUFDOworQzU2NjtDNTY2OzExMEIgMTE2MiAxMUFEO0M1NjY7MTEwQiAxMTYyIDExQUQ7CitDNTY3O0M1Njc7MTEwQiAxMTYyIDExQUU7QzU2NzsxMTBCIDExNjIgMTFBRTsKK0M1Njg7QzU2ODsxMTBCIDExNjIgMTFBRjtDNTY4OzExMEIgMTE2MiAxMUFGOworQzU2OTtDNTY5OzExMEIgMTE2MiAxMUIwO0M1Njk7MTEwQiAxMTYyIDExQjA7CitDNTZBO0M1NkE7MTEwQiAxMTYyIDExQjE7QzU2QTsxMTBCIDExNjIgMTFCMTsKK0M1NkI7QzU2QjsxMTBCIDExNjIgMTFCMjtDNTZCOzExMEIgMTE2MiAxMUIyOworQzU2QztDNTZDOzExMEIgMTE2MiAxMUIzO0M1NkM7MTEwQiAxMTYyIDExQjM7CitDNTZEO0M1NkQ7MTEwQiAxMTYyIDExQjQ7QzU2RDsxMTBCIDExNjIgMTFCNDsKK0M1NkU7QzU2RTsxMTBCIDExNjIgMTFCNTtDNTZFOzExMEIgMTE2MiAxMUI1OworQzU2RjtDNTZGOzExMEIgMTE2MiAxMUI2O0M1NkY7MTEwQiAxMTYyIDExQjY7CitDNTcwO0M1NzA7MTEwQiAxMTYyIDExQjc7QzU3MDsxMTBCIDExNjIgMTFCNzsKK0M1NzE7QzU3MTsxMTBCIDExNjIgMTFCODtDNTcxOzExMEIgMTE2MiAxMUI4OworQzU3MjtDNTcyOzExMEIgMTE2MiAxMUI5O0M1NzI7MTEwQiAxMTYyIDExQjk7CitDNTczO0M1NzM7MTEwQiAxMTYyIDExQkE7QzU3MzsxMTBCIDExNjIgMTFCQTsKK0M1NzQ7QzU3NDsxMTBCIDExNjIgMTFCQjtDNTc0OzExMEIgMTE2MiAxMUJCOworQzU3NTtDNTc1OzExMEIgMTE2MiAxMUJDO0M1NzU7MTEwQiAxMTYyIDExQkM7CitDNTc2O0M1NzY7MTEwQiAxMTYyIDExQkQ7QzU3NjsxMTBCIDExNjIgMTFCRDsKK0M1Nzc7QzU3NzsxMTBCIDExNjIgMTFCRTtDNTc3OzExMEIgMTE2MiAxMUJFOworQzU3ODtDNTc4OzExMEIgMTE2MiAxMUJGO0M1Nzg7MTEwQiAxMTYyIDExQkY7CitDNTc5O0M1Nzk7MTEwQiAxMTYyIDExQzA7QzU3OTsxMTBCIDExNjIgMTFDMDsKK0M1N0E7QzU3QTsxMTBCIDExNjIgMTFDMTtDNTdBOzExMEIgMTE2MiAxMUMxOworQzU3QjtDNTdCOzExMEIgMTE2MiAxMUMyO0M1N0I7MTEwQiAxMTYyIDExQzI7CitDNTdDO0M1N0M7MTEwQiAxMTYzO0M1N0M7MTEwQiAxMTYzOworQzU3RDtDNTdEOzExMEIgMTE2MyAxMUE4O0M1N0Q7MTEwQiAxMTYzIDExQTg7CitDNTdFO0M1N0U7MTEwQiAxMTYzIDExQTk7QzU3RTsxMTBCIDExNjMgMTFBOTsKK0M1N0Y7QzU3RjsxMTBCIDExNjMgMTFBQTtDNTdGOzExMEIgMTE2MyAxMUFBOworQzU4MDtDNTgwOzExMEIgMTE2MyAxMUFCO0M1ODA7MTEwQiAxMTYzIDExQUI7CitDNTgxO0M1ODE7MTEwQiAxMTYzIDExQUM7QzU4MTsxMTBCIDExNjMgMTFBQzsKK0M1ODI7QzU4MjsxMTBCIDExNjMgMTFBRDtDNTgyOzExMEIgMTE2MyAxMUFEOworQzU4MztDNTgzOzExMEIgMTE2MyAxMUFFO0M1ODM7MTEwQiAxMTYzIDExQUU7CitDNTg0O0M1ODQ7MTEwQiAxMTYzIDExQUY7QzU4NDsxMTBCIDExNjMgMTFBRjsKK0M1ODU7QzU4NTsxMTBCIDExNjMgMTFCMDtDNTg1OzExMEIgMTE2MyAxMUIwOworQzU4NjtDNTg2OzExMEIgMTE2MyAxMUIxO0M1ODY7MTEwQiAxMTYzIDExQjE7CitDNTg3O0M1ODc7MTEwQiAxMTYzIDExQjI7QzU4NzsxMTBCIDExNjMgMTFCMjsKK0M1ODg7QzU4ODsxMTBCIDExNjMgMTFCMztDNTg4OzExMEIgMTE2MyAxMUIzOworQzU4OTtDNTg5OzExMEIgMTE2MyAxMUI0O0M1ODk7MTEwQiAxMTYzIDExQjQ7CitDNThBO0M1OEE7MTEwQiAxMTYzIDExQjU7QzU4QTsxMTBCIDExNjMgMTFCNTsKK0M1OEI7QzU4QjsxMTBCIDExNjMgMTFCNjtDNThCOzExMEIgMTE2MyAxMUI2OworQzU4QztDNThDOzExMEIgMTE2MyAxMUI3O0M1OEM7MTEwQiAxMTYzIDExQjc7CitDNThEO0M1OEQ7MTEwQiAxMTYzIDExQjg7QzU4RDsxMTBCIDExNjMgMTFCODsKK0M1OEU7QzU4RTsxMTBCIDExNjMgMTFCOTtDNThFOzExMEIgMTE2MyAxMUI5OworQzU4RjtDNThGOzExMEIgMTE2MyAxMUJBO0M1OEY7MTEwQiAxMTYzIDExQkE7CitDNTkwO0M1OTA7MTEwQiAxMTYzIDExQkI7QzU5MDsxMTBCIDExNjMgMTFCQjsKK0M1OTE7QzU5MTsxMTBCIDExNjMgMTFCQztDNTkxOzExMEIgMTE2MyAxMUJDOworQzU5MjtDNTkyOzExMEIgMTE2MyAxMUJEO0M1OTI7MTEwQiAxMTYzIDExQkQ7CitDNTkzO0M1OTM7MTEwQiAxMTYzIDExQkU7QzU5MzsxMTBCIDExNjMgMTFCRTsKK0M1OTQ7QzU5NDsxMTBCIDExNjMgMTFCRjtDNTk0OzExMEIgMTE2MyAxMUJGOworQzU5NTtDNTk1OzExMEIgMTE2MyAxMUMwO0M1OTU7MTEwQiAxMTYzIDExQzA7CitDNTk2O0M1OTY7MTEwQiAxMTYzIDExQzE7QzU5NjsxMTBCIDExNjMgMTFDMTsKK0M1OTc7QzU5NzsxMTBCIDExNjMgMTFDMjtDNTk3OzExMEIgMTE2MyAxMUMyOworQzU5ODtDNTk4OzExMEIgMTE2NDtDNTk4OzExMEIgMTE2NDsKK0M1OTk7QzU5OTsxMTBCIDExNjQgMTFBODtDNTk5OzExMEIgMTE2NCAxMUE4OworQzU5QTtDNTlBOzExMEIgMTE2NCAxMUE5O0M1OUE7MTEwQiAxMTY0IDExQTk7CitDNTlCO0M1OUI7MTEwQiAxMTY0IDExQUE7QzU5QjsxMTBCIDExNjQgMTFBQTsKK0M1OUM7QzU5QzsxMTBCIDExNjQgMTFBQjtDNTlDOzExMEIgMTE2NCAxMUFCOworQzU5RDtDNTlEOzExMEIgMTE2NCAxMUFDO0M1OUQ7MTEwQiAxMTY0IDExQUM7CitDNTlFO0M1OUU7MTEwQiAxMTY0IDExQUQ7QzU5RTsxMTBCIDExNjQgMTFBRDsKK0M1OUY7QzU5RjsxMTBCIDExNjQgMTFBRTtDNTlGOzExMEIgMTE2NCAxMUFFOworQzVBMDtDNUEwOzExMEIgMTE2NCAxMUFGO0M1QTA7MTEwQiAxMTY0IDExQUY7CitDNUExO0M1QTE7MTEwQiAxMTY0IDExQjA7QzVBMTsxMTBCIDExNjQgMTFCMDsKK0M1QTI7QzVBMjsxMTBCIDExNjQgMTFCMTtDNUEyOzExMEIgMTE2NCAxMUIxOworQzVBMztDNUEzOzExMEIgMTE2NCAxMUIyO0M1QTM7MTEwQiAxMTY0IDExQjI7CitDNUE0O0M1QTQ7MTEwQiAxMTY0IDExQjM7QzVBNDsxMTBCIDExNjQgMTFCMzsKK0M1QTU7QzVBNTsxMTBCIDExNjQgMTFCNDtDNUE1OzExMEIgMTE2NCAxMUI0OworQzVBNjtDNUE2OzExMEIgMTE2NCAxMUI1O0M1QTY7MTEwQiAxMTY0IDExQjU7CitDNUE3O0M1QTc7MTEwQiAxMTY0IDExQjY7QzVBNzsxMTBCIDExNjQgMTFCNjsKK0M1QTg7QzVBODsxMTBCIDExNjQgMTFCNztDNUE4OzExMEIgMTE2NCAxMUI3OworQzVBOTtDNUE5OzExMEIgMTE2NCAxMUI4O0M1QTk7MTEwQiAxMTY0IDExQjg7CitDNUFBO0M1QUE7MTEwQiAxMTY0IDExQjk7QzVBQTsxMTBCIDExNjQgMTFCOTsKK0M1QUI7QzVBQjsxMTBCIDExNjQgMTFCQTtDNUFCOzExMEIgMTE2NCAxMUJBOworQzVBQztDNUFDOzExMEIgMTE2NCAxMUJCO0M1QUM7MTEwQiAxMTY0IDExQkI7CitDNUFEO0M1QUQ7MTEwQiAxMTY0IDExQkM7QzVBRDsxMTBCIDExNjQgMTFCQzsKK0M1QUU7QzVBRTsxMTBCIDExNjQgMTFCRDtDNUFFOzExMEIgMTE2NCAxMUJEOworQzVBRjtDNUFGOzExMEIgMTE2NCAxMUJFO0M1QUY7MTEwQiAxMTY0IDExQkU7CitDNUIwO0M1QjA7MTEwQiAxMTY0IDExQkY7QzVCMDsxMTBCIDExNjQgMTFCRjsKK0M1QjE7QzVCMTsxMTBCIDExNjQgMTFDMDtDNUIxOzExMEIgMTE2NCAxMUMwOworQzVCMjtDNUIyOzExMEIgMTE2NCAxMUMxO0M1QjI7MTEwQiAxMTY0IDExQzE7CitDNUIzO0M1QjM7MTEwQiAxMTY0IDExQzI7QzVCMzsxMTBCIDExNjQgMTFDMjsKK0M1QjQ7QzVCNDsxMTBCIDExNjU7QzVCNDsxMTBCIDExNjU7CitDNUI1O0M1QjU7MTEwQiAxMTY1IDExQTg7QzVCNTsxMTBCIDExNjUgMTFBODsKK0M1QjY7QzVCNjsxMTBCIDExNjUgMTFBOTtDNUI2OzExMEIgMTE2NSAxMUE5OworQzVCNztDNUI3OzExMEIgMTE2NSAxMUFBO0M1Qjc7MTEwQiAxMTY1IDExQUE7CitDNUI4O0M1Qjg7MTEwQiAxMTY1IDExQUI7QzVCODsxMTBCIDExNjUgMTFBQjsKK0M1Qjk7QzVCOTsxMTBCIDExNjUgMTFBQztDNUI5OzExMEIgMTE2NSAxMUFDOworQzVCQTtDNUJBOzExMEIgMTE2NSAxMUFEO0M1QkE7MTEwQiAxMTY1IDExQUQ7CitDNUJCO0M1QkI7MTEwQiAxMTY1IDExQUU7QzVCQjsxMTBCIDExNjUgMTFBRTsKK0M1QkM7QzVCQzsxMTBCIDExNjUgMTFBRjtDNUJDOzExMEIgMTE2NSAxMUFGOworQzVCRDtDNUJEOzExMEIgMTE2NSAxMUIwO0M1QkQ7MTEwQiAxMTY1IDExQjA7CitDNUJFO0M1QkU7MTEwQiAxMTY1IDExQjE7QzVCRTsxMTBCIDExNjUgMTFCMTsKK0M1QkY7QzVCRjsxMTBCIDExNjUgMTFCMjtDNUJGOzExMEIgMTE2NSAxMUIyOworQzVDMDtDNUMwOzExMEIgMTE2NSAxMUIzO0M1QzA7MTEwQiAxMTY1IDExQjM7CitDNUMxO0M1QzE7MTEwQiAxMTY1IDExQjQ7QzVDMTsxMTBCIDExNjUgMTFCNDsKK0M1QzI7QzVDMjsxMTBCIDExNjUgMTFCNTtDNUMyOzExMEIgMTE2NSAxMUI1OworQzVDMztDNUMzOzExMEIgMTE2NSAxMUI2O0M1QzM7MTEwQiAxMTY1IDExQjY7CitDNUM0O0M1QzQ7MTEwQiAxMTY1IDExQjc7QzVDNDsxMTBCIDExNjUgMTFCNzsKK0M1QzU7QzVDNTsxMTBCIDExNjUgMTFCODtDNUM1OzExMEIgMTE2NSAxMUI4OworQzVDNjtDNUM2OzExMEIgMTE2NSAxMUI5O0M1QzY7MTEwQiAxMTY1IDExQjk7CitDNUM3O0M1Qzc7MTEwQiAxMTY1IDExQkE7QzVDNzsxMTBCIDExNjUgMTFCQTsKK0M1Qzg7QzVDODsxMTBCIDExNjUgMTFCQjtDNUM4OzExMEIgMTE2NSAxMUJCOworQzVDOTtDNUM5OzExMEIgMTE2NSAxMUJDO0M1Qzk7MTEwQiAxMTY1IDExQkM7CitDNUNBO0M1Q0E7MTEwQiAxMTY1IDExQkQ7QzVDQTsxMTBCIDExNjUgMTFCRDsKK0M1Q0I7QzVDQjsxMTBCIDExNjUgMTFCRTtDNUNCOzExMEIgMTE2NSAxMUJFOworQzVDQztDNUNDOzExMEIgMTE2NSAxMUJGO0M1Q0M7MTEwQiAxMTY1IDExQkY7CitDNUNEO0M1Q0Q7MTEwQiAxMTY1IDExQzA7QzVDRDsxMTBCIDExNjUgMTFDMDsKK0M1Q0U7QzVDRTsxMTBCIDExNjUgMTFDMTtDNUNFOzExMEIgMTE2NSAxMUMxOworQzVDRjtDNUNGOzExMEIgMTE2NSAxMUMyO0M1Q0Y7MTEwQiAxMTY1IDExQzI7CitDNUQwO0M1RDA7MTEwQiAxMTY2O0M1RDA7MTEwQiAxMTY2OworQzVEMTtDNUQxOzExMEIgMTE2NiAxMUE4O0M1RDE7MTEwQiAxMTY2IDExQTg7CitDNUQyO0M1RDI7MTEwQiAxMTY2IDExQTk7QzVEMjsxMTBCIDExNjYgMTFBOTsKK0M1RDM7QzVEMzsxMTBCIDExNjYgMTFBQTtDNUQzOzExMEIgMTE2NiAxMUFBOworQzVENDtDNUQ0OzExMEIgMTE2NiAxMUFCO0M1RDQ7MTEwQiAxMTY2IDExQUI7CitDNUQ1O0M1RDU7MTEwQiAxMTY2IDExQUM7QzVENTsxMTBCIDExNjYgMTFBQzsKK0M1RDY7QzVENjsxMTBCIDExNjYgMTFBRDtDNUQ2OzExMEIgMTE2NiAxMUFEOworQzVENztDNUQ3OzExMEIgMTE2NiAxMUFFO0M1RDc7MTEwQiAxMTY2IDExQUU7CitDNUQ4O0M1RDg7MTEwQiAxMTY2IDExQUY7QzVEODsxMTBCIDExNjYgMTFBRjsKK0M1RDk7QzVEOTsxMTBCIDExNjYgMTFCMDtDNUQ5OzExMEIgMTE2NiAxMUIwOworQzVEQTtDNURBOzExMEIgMTE2NiAxMUIxO0M1REE7MTEwQiAxMTY2IDExQjE7CitDNURCO0M1REI7MTEwQiAxMTY2IDExQjI7QzVEQjsxMTBCIDExNjYgMTFCMjsKK0M1REM7QzVEQzsxMTBCIDExNjYgMTFCMztDNURDOzExMEIgMTE2NiAxMUIzOworQzVERDtDNUREOzExMEIgMTE2NiAxMUI0O0M1REQ7MTEwQiAxMTY2IDExQjQ7CitDNURFO0M1REU7MTEwQiAxMTY2IDExQjU7QzVERTsxMTBCIDExNjYgMTFCNTsKK0M1REY7QzVERjsxMTBCIDExNjYgMTFCNjtDNURGOzExMEIgMTE2NiAxMUI2OworQzVFMDtDNUUwOzExMEIgMTE2NiAxMUI3O0M1RTA7MTEwQiAxMTY2IDExQjc7CitDNUUxO0M1RTE7MTEwQiAxMTY2IDExQjg7QzVFMTsxMTBCIDExNjYgMTFCODsKK0M1RTI7QzVFMjsxMTBCIDExNjYgMTFCOTtDNUUyOzExMEIgMTE2NiAxMUI5OworQzVFMztDNUUzOzExMEIgMTE2NiAxMUJBO0M1RTM7MTEwQiAxMTY2IDExQkE7CitDNUU0O0M1RTQ7MTEwQiAxMTY2IDExQkI7QzVFNDsxMTBCIDExNjYgMTFCQjsKK0M1RTU7QzVFNTsxMTBCIDExNjYgMTFCQztDNUU1OzExMEIgMTE2NiAxMUJDOworQzVFNjtDNUU2OzExMEIgMTE2NiAxMUJEO0M1RTY7MTEwQiAxMTY2IDExQkQ7CitDNUU3O0M1RTc7MTEwQiAxMTY2IDExQkU7QzVFNzsxMTBCIDExNjYgMTFCRTsKK0M1RTg7QzVFODsxMTBCIDExNjYgMTFCRjtDNUU4OzExMEIgMTE2NiAxMUJGOworQzVFOTtDNUU5OzExMEIgMTE2NiAxMUMwO0M1RTk7MTEwQiAxMTY2IDExQzA7CitDNUVBO0M1RUE7MTEwQiAxMTY2IDExQzE7QzVFQTsxMTBCIDExNjYgMTFDMTsKK0M1RUI7QzVFQjsxMTBCIDExNjYgMTFDMjtDNUVCOzExMEIgMTE2NiAxMUMyOworQzVFQztDNUVDOzExMEIgMTE2NztDNUVDOzExMEIgMTE2NzsKK0M1RUQ7QzVFRDsxMTBCIDExNjcgMTFBODtDNUVEOzExMEIgMTE2NyAxMUE4OworQzVFRTtDNUVFOzExMEIgMTE2NyAxMUE5O0M1RUU7MTEwQiAxMTY3IDExQTk7CitDNUVGO0M1RUY7MTEwQiAxMTY3IDExQUE7QzVFRjsxMTBCIDExNjcgMTFBQTsKK0M1RjA7QzVGMDsxMTBCIDExNjcgMTFBQjtDNUYwOzExMEIgMTE2NyAxMUFCOworQzVGMTtDNUYxOzExMEIgMTE2NyAxMUFDO0M1RjE7MTEwQiAxMTY3IDExQUM7CitDNUYyO0M1RjI7MTEwQiAxMTY3IDExQUQ7QzVGMjsxMTBCIDExNjcgMTFBRDsKK0M1RjM7QzVGMzsxMTBCIDExNjcgMTFBRTtDNUYzOzExMEIgMTE2NyAxMUFFOworQzVGNDtDNUY0OzExMEIgMTE2NyAxMUFGO0M1RjQ7MTEwQiAxMTY3IDExQUY7CitDNUY1O0M1RjU7MTEwQiAxMTY3IDExQjA7QzVGNTsxMTBCIDExNjcgMTFCMDsKK0M1RjY7QzVGNjsxMTBCIDExNjcgMTFCMTtDNUY2OzExMEIgMTE2NyAxMUIxOworQzVGNztDNUY3OzExMEIgMTE2NyAxMUIyO0M1Rjc7MTEwQiAxMTY3IDExQjI7CitDNUY4O0M1Rjg7MTEwQiAxMTY3IDExQjM7QzVGODsxMTBCIDExNjcgMTFCMzsKK0M1Rjk7QzVGOTsxMTBCIDExNjcgMTFCNDtDNUY5OzExMEIgMTE2NyAxMUI0OworQzVGQTtDNUZBOzExMEIgMTE2NyAxMUI1O0M1RkE7MTEwQiAxMTY3IDExQjU7CitDNUZCO0M1RkI7MTEwQiAxMTY3IDExQjY7QzVGQjsxMTBCIDExNjcgMTFCNjsKK0M1RkM7QzVGQzsxMTBCIDExNjcgMTFCNztDNUZDOzExMEIgMTE2NyAxMUI3OworQzVGRDtDNUZEOzExMEIgMTE2NyAxMUI4O0M1RkQ7MTEwQiAxMTY3IDExQjg7CitDNUZFO0M1RkU7MTEwQiAxMTY3IDExQjk7QzVGRTsxMTBCIDExNjcgMTFCOTsKK0M1RkY7QzVGRjsxMTBCIDExNjcgMTFCQTtDNUZGOzExMEIgMTE2NyAxMUJBOworQzYwMDtDNjAwOzExMEIgMTE2NyAxMUJCO0M2MDA7MTEwQiAxMTY3IDExQkI7CitDNjAxO0M2MDE7MTEwQiAxMTY3IDExQkM7QzYwMTsxMTBCIDExNjcgMTFCQzsKK0M2MDI7QzYwMjsxMTBCIDExNjcgMTFCRDtDNjAyOzExMEIgMTE2NyAxMUJEOworQzYwMztDNjAzOzExMEIgMTE2NyAxMUJFO0M2MDM7MTEwQiAxMTY3IDExQkU7CitDNjA0O0M2MDQ7MTEwQiAxMTY3IDExQkY7QzYwNDsxMTBCIDExNjcgMTFCRjsKK0M2MDU7QzYwNTsxMTBCIDExNjcgMTFDMDtDNjA1OzExMEIgMTE2NyAxMUMwOworQzYwNjtDNjA2OzExMEIgMTE2NyAxMUMxO0M2MDY7MTEwQiAxMTY3IDExQzE7CitDNjA3O0M2MDc7MTEwQiAxMTY3IDExQzI7QzYwNzsxMTBCIDExNjcgMTFDMjsKK0M2MDg7QzYwODsxMTBCIDExNjg7QzYwODsxMTBCIDExNjg7CitDNjA5O0M2MDk7MTEwQiAxMTY4IDExQTg7QzYwOTsxMTBCIDExNjggMTFBODsKK0M2MEE7QzYwQTsxMTBCIDExNjggMTFBOTtDNjBBOzExMEIgMTE2OCAxMUE5OworQzYwQjtDNjBCOzExMEIgMTE2OCAxMUFBO0M2MEI7MTEwQiAxMTY4IDExQUE7CitDNjBDO0M2MEM7MTEwQiAxMTY4IDExQUI7QzYwQzsxMTBCIDExNjggMTFBQjsKK0M2MEQ7QzYwRDsxMTBCIDExNjggMTFBQztDNjBEOzExMEIgMTE2OCAxMUFDOworQzYwRTtDNjBFOzExMEIgMTE2OCAxMUFEO0M2MEU7MTEwQiAxMTY4IDExQUQ7CitDNjBGO0M2MEY7MTEwQiAxMTY4IDExQUU7QzYwRjsxMTBCIDExNjggMTFBRTsKK0M2MTA7QzYxMDsxMTBCIDExNjggMTFBRjtDNjEwOzExMEIgMTE2OCAxMUFGOworQzYxMTtDNjExOzExMEIgMTE2OCAxMUIwO0M2MTE7MTEwQiAxMTY4IDExQjA7CitDNjEyO0M2MTI7MTEwQiAxMTY4IDExQjE7QzYxMjsxMTBCIDExNjggMTFCMTsKK0M2MTM7QzYxMzsxMTBCIDExNjggMTFCMjtDNjEzOzExMEIgMTE2OCAxMUIyOworQzYxNDtDNjE0OzExMEIgMTE2OCAxMUIzO0M2MTQ7MTEwQiAxMTY4IDExQjM7CitDNjE1O0M2MTU7MTEwQiAxMTY4IDExQjQ7QzYxNTsxMTBCIDExNjggMTFCNDsKK0M2MTY7QzYxNjsxMTBCIDExNjggMTFCNTtDNjE2OzExMEIgMTE2OCAxMUI1OworQzYxNztDNjE3OzExMEIgMTE2OCAxMUI2O0M2MTc7MTEwQiAxMTY4IDExQjY7CitDNjE4O0M2MTg7MTEwQiAxMTY4IDExQjc7QzYxODsxMTBCIDExNjggMTFCNzsKK0M2MTk7QzYxOTsxMTBCIDExNjggMTFCODtDNjE5OzExMEIgMTE2OCAxMUI4OworQzYxQTtDNjFBOzExMEIgMTE2OCAxMUI5O0M2MUE7MTEwQiAxMTY4IDExQjk7CitDNjFCO0M2MUI7MTEwQiAxMTY4IDExQkE7QzYxQjsxMTBCIDExNjggMTFCQTsKK0M2MUM7QzYxQzsxMTBCIDExNjggMTFCQjtDNjFDOzExMEIgMTE2OCAxMUJCOworQzYxRDtDNjFEOzExMEIgMTE2OCAxMUJDO0M2MUQ7MTEwQiAxMTY4IDExQkM7CitDNjFFO0M2MUU7MTEwQiAxMTY4IDExQkQ7QzYxRTsxMTBCIDExNjggMTFCRDsKK0M2MUY7QzYxRjsxMTBCIDExNjggMTFCRTtDNjFGOzExMEIgMTE2OCAxMUJFOworQzYyMDtDNjIwOzExMEIgMTE2OCAxMUJGO0M2MjA7MTEwQiAxMTY4IDExQkY7CitDNjIxO0M2MjE7MTEwQiAxMTY4IDExQzA7QzYyMTsxMTBCIDExNjggMTFDMDsKK0M2MjI7QzYyMjsxMTBCIDExNjggMTFDMTtDNjIyOzExMEIgMTE2OCAxMUMxOworQzYyMztDNjIzOzExMEIgMTE2OCAxMUMyO0M2MjM7MTEwQiAxMTY4IDExQzI7CitDNjI0O0M2MjQ7MTEwQiAxMTY5O0M2MjQ7MTEwQiAxMTY5OworQzYyNTtDNjI1OzExMEIgMTE2OSAxMUE4O0M2MjU7MTEwQiAxMTY5IDExQTg7CitDNjI2O0M2MjY7MTEwQiAxMTY5IDExQTk7QzYyNjsxMTBCIDExNjkgMTFBOTsKK0M2Mjc7QzYyNzsxMTBCIDExNjkgMTFBQTtDNjI3OzExMEIgMTE2OSAxMUFBOworQzYyODtDNjI4OzExMEIgMTE2OSAxMUFCO0M2Mjg7MTEwQiAxMTY5IDExQUI7CitDNjI5O0M2Mjk7MTEwQiAxMTY5IDExQUM7QzYyOTsxMTBCIDExNjkgMTFBQzsKK0M2MkE7QzYyQTsxMTBCIDExNjkgMTFBRDtDNjJBOzExMEIgMTE2OSAxMUFEOworQzYyQjtDNjJCOzExMEIgMTE2OSAxMUFFO0M2MkI7MTEwQiAxMTY5IDExQUU7CitDNjJDO0M2MkM7MTEwQiAxMTY5IDExQUY7QzYyQzsxMTBCIDExNjkgMTFBRjsKK0M2MkQ7QzYyRDsxMTBCIDExNjkgMTFCMDtDNjJEOzExMEIgMTE2OSAxMUIwOworQzYyRTtDNjJFOzExMEIgMTE2OSAxMUIxO0M2MkU7MTEwQiAxMTY5IDExQjE7CitDNjJGO0M2MkY7MTEwQiAxMTY5IDExQjI7QzYyRjsxMTBCIDExNjkgMTFCMjsKK0M2MzA7QzYzMDsxMTBCIDExNjkgMTFCMztDNjMwOzExMEIgMTE2OSAxMUIzOworQzYzMTtDNjMxOzExMEIgMTE2OSAxMUI0O0M2MzE7MTEwQiAxMTY5IDExQjQ7CitDNjMyO0M2MzI7MTEwQiAxMTY5IDExQjU7QzYzMjsxMTBCIDExNjkgMTFCNTsKK0M2MzM7QzYzMzsxMTBCIDExNjkgMTFCNjtDNjMzOzExMEIgMTE2OSAxMUI2OworQzYzNDtDNjM0OzExMEIgMTE2OSAxMUI3O0M2MzQ7MTEwQiAxMTY5IDExQjc7CitDNjM1O0M2MzU7MTEwQiAxMTY5IDExQjg7QzYzNTsxMTBCIDExNjkgMTFCODsKK0M2MzY7QzYzNjsxMTBCIDExNjkgMTFCOTtDNjM2OzExMEIgMTE2OSAxMUI5OworQzYzNztDNjM3OzExMEIgMTE2OSAxMUJBO0M2Mzc7MTEwQiAxMTY5IDExQkE7CitDNjM4O0M2Mzg7MTEwQiAxMTY5IDExQkI7QzYzODsxMTBCIDExNjkgMTFCQjsKK0M2Mzk7QzYzOTsxMTBCIDExNjkgMTFCQztDNjM5OzExMEIgMTE2OSAxMUJDOworQzYzQTtDNjNBOzExMEIgMTE2OSAxMUJEO0M2M0E7MTEwQiAxMTY5IDExQkQ7CitDNjNCO0M2M0I7MTEwQiAxMTY5IDExQkU7QzYzQjsxMTBCIDExNjkgMTFCRTsKK0M2M0M7QzYzQzsxMTBCIDExNjkgMTFCRjtDNjNDOzExMEIgMTE2OSAxMUJGOworQzYzRDtDNjNEOzExMEIgMTE2OSAxMUMwO0M2M0Q7MTEwQiAxMTY5IDExQzA7CitDNjNFO0M2M0U7MTEwQiAxMTY5IDExQzE7QzYzRTsxMTBCIDExNjkgMTFDMTsKK0M2M0Y7QzYzRjsxMTBCIDExNjkgMTFDMjtDNjNGOzExMEIgMTE2OSAxMUMyOworQzY0MDtDNjQwOzExMEIgMTE2QTtDNjQwOzExMEIgMTE2QTsKK0M2NDE7QzY0MTsxMTBCIDExNkEgMTFBODtDNjQxOzExMEIgMTE2QSAxMUE4OworQzY0MjtDNjQyOzExMEIgMTE2QSAxMUE5O0M2NDI7MTEwQiAxMTZBIDExQTk7CitDNjQzO0M2NDM7MTEwQiAxMTZBIDExQUE7QzY0MzsxMTBCIDExNkEgMTFBQTsKK0M2NDQ7QzY0NDsxMTBCIDExNkEgMTFBQjtDNjQ0OzExMEIgMTE2QSAxMUFCOworQzY0NTtDNjQ1OzExMEIgMTE2QSAxMUFDO0M2NDU7MTEwQiAxMTZBIDExQUM7CitDNjQ2O0M2NDY7MTEwQiAxMTZBIDExQUQ7QzY0NjsxMTBCIDExNkEgMTFBRDsKK0M2NDc7QzY0NzsxMTBCIDExNkEgMTFBRTtDNjQ3OzExMEIgMTE2QSAxMUFFOworQzY0ODtDNjQ4OzExMEIgMTE2QSAxMUFGO0M2NDg7MTEwQiAxMTZBIDExQUY7CitDNjQ5O0M2NDk7MTEwQiAxMTZBIDExQjA7QzY0OTsxMTBCIDExNkEgMTFCMDsKK0M2NEE7QzY0QTsxMTBCIDExNkEgMTFCMTtDNjRBOzExMEIgMTE2QSAxMUIxOworQzY0QjtDNjRCOzExMEIgMTE2QSAxMUIyO0M2NEI7MTEwQiAxMTZBIDExQjI7CitDNjRDO0M2NEM7MTEwQiAxMTZBIDExQjM7QzY0QzsxMTBCIDExNkEgMTFCMzsKK0M2NEQ7QzY0RDsxMTBCIDExNkEgMTFCNDtDNjREOzExMEIgMTE2QSAxMUI0OworQzY0RTtDNjRFOzExMEIgMTE2QSAxMUI1O0M2NEU7MTEwQiAxMTZBIDExQjU7CitDNjRGO0M2NEY7MTEwQiAxMTZBIDExQjY7QzY0RjsxMTBCIDExNkEgMTFCNjsKK0M2NTA7QzY1MDsxMTBCIDExNkEgMTFCNztDNjUwOzExMEIgMTE2QSAxMUI3OworQzY1MTtDNjUxOzExMEIgMTE2QSAxMUI4O0M2NTE7MTEwQiAxMTZBIDExQjg7CitDNjUyO0M2NTI7MTEwQiAxMTZBIDExQjk7QzY1MjsxMTBCIDExNkEgMTFCOTsKK0M2NTM7QzY1MzsxMTBCIDExNkEgMTFCQTtDNjUzOzExMEIgMTE2QSAxMUJBOworQzY1NDtDNjU0OzExMEIgMTE2QSAxMUJCO0M2NTQ7MTEwQiAxMTZBIDExQkI7CitDNjU1O0M2NTU7MTEwQiAxMTZBIDExQkM7QzY1NTsxMTBCIDExNkEgMTFCQzsKK0M2NTY7QzY1NjsxMTBCIDExNkEgMTFCRDtDNjU2OzExMEIgMTE2QSAxMUJEOworQzY1NztDNjU3OzExMEIgMTE2QSAxMUJFO0M2NTc7MTEwQiAxMTZBIDExQkU7CitDNjU4O0M2NTg7MTEwQiAxMTZBIDExQkY7QzY1ODsxMTBCIDExNkEgMTFCRjsKK0M2NTk7QzY1OTsxMTBCIDExNkEgMTFDMDtDNjU5OzExMEIgMTE2QSAxMUMwOworQzY1QTtDNjVBOzExMEIgMTE2QSAxMUMxO0M2NUE7MTEwQiAxMTZBIDExQzE7CitDNjVCO0M2NUI7MTEwQiAxMTZBIDExQzI7QzY1QjsxMTBCIDExNkEgMTFDMjsKK0M2NUM7QzY1QzsxMTBCIDExNkI7QzY1QzsxMTBCIDExNkI7CitDNjVEO0M2NUQ7MTEwQiAxMTZCIDExQTg7QzY1RDsxMTBCIDExNkIgMTFBODsKK0M2NUU7QzY1RTsxMTBCIDExNkIgMTFBOTtDNjVFOzExMEIgMTE2QiAxMUE5OworQzY1RjtDNjVGOzExMEIgMTE2QiAxMUFBO0M2NUY7MTEwQiAxMTZCIDExQUE7CitDNjYwO0M2NjA7MTEwQiAxMTZCIDExQUI7QzY2MDsxMTBCIDExNkIgMTFBQjsKK0M2NjE7QzY2MTsxMTBCIDExNkIgMTFBQztDNjYxOzExMEIgMTE2QiAxMUFDOworQzY2MjtDNjYyOzExMEIgMTE2QiAxMUFEO0M2NjI7MTEwQiAxMTZCIDExQUQ7CitDNjYzO0M2NjM7MTEwQiAxMTZCIDExQUU7QzY2MzsxMTBCIDExNkIgMTFBRTsKK0M2NjQ7QzY2NDsxMTBCIDExNkIgMTFBRjtDNjY0OzExMEIgMTE2QiAxMUFGOworQzY2NTtDNjY1OzExMEIgMTE2QiAxMUIwO0M2NjU7MTEwQiAxMTZCIDExQjA7CitDNjY2O0M2NjY7MTEwQiAxMTZCIDExQjE7QzY2NjsxMTBCIDExNkIgMTFCMTsKK0M2Njc7QzY2NzsxMTBCIDExNkIgMTFCMjtDNjY3OzExMEIgMTE2QiAxMUIyOworQzY2ODtDNjY4OzExMEIgMTE2QiAxMUIzO0M2Njg7MTEwQiAxMTZCIDExQjM7CitDNjY5O0M2Njk7MTEwQiAxMTZCIDExQjQ7QzY2OTsxMTBCIDExNkIgMTFCNDsKK0M2NkE7QzY2QTsxMTBCIDExNkIgMTFCNTtDNjZBOzExMEIgMTE2QiAxMUI1OworQzY2QjtDNjZCOzExMEIgMTE2QiAxMUI2O0M2NkI7MTEwQiAxMTZCIDExQjY7CitDNjZDO0M2NkM7MTEwQiAxMTZCIDExQjc7QzY2QzsxMTBCIDExNkIgMTFCNzsKK0M2NkQ7QzY2RDsxMTBCIDExNkIgMTFCODtDNjZEOzExMEIgMTE2QiAxMUI4OworQzY2RTtDNjZFOzExMEIgMTE2QiAxMUI5O0M2NkU7MTEwQiAxMTZCIDExQjk7CitDNjZGO0M2NkY7MTEwQiAxMTZCIDExQkE7QzY2RjsxMTBCIDExNkIgMTFCQTsKK0M2NzA7QzY3MDsxMTBCIDExNkIgMTFCQjtDNjcwOzExMEIgMTE2QiAxMUJCOworQzY3MTtDNjcxOzExMEIgMTE2QiAxMUJDO0M2NzE7MTEwQiAxMTZCIDExQkM7CitDNjcyO0M2NzI7MTEwQiAxMTZCIDExQkQ7QzY3MjsxMTBCIDExNkIgMTFCRDsKK0M2NzM7QzY3MzsxMTBCIDExNkIgMTFCRTtDNjczOzExMEIgMTE2QiAxMUJFOworQzY3NDtDNjc0OzExMEIgMTE2QiAxMUJGO0M2NzQ7MTEwQiAxMTZCIDExQkY7CitDNjc1O0M2NzU7MTEwQiAxMTZCIDExQzA7QzY3NTsxMTBCIDExNkIgMTFDMDsKK0M2NzY7QzY3NjsxMTBCIDExNkIgMTFDMTtDNjc2OzExMEIgMTE2QiAxMUMxOworQzY3NztDNjc3OzExMEIgMTE2QiAxMUMyO0M2Nzc7MTEwQiAxMTZCIDExQzI7CitDNjc4O0M2Nzg7MTEwQiAxMTZDO0M2Nzg7MTEwQiAxMTZDOworQzY3OTtDNjc5OzExMEIgMTE2QyAxMUE4O0M2Nzk7MTEwQiAxMTZDIDExQTg7CitDNjdBO0M2N0E7MTEwQiAxMTZDIDExQTk7QzY3QTsxMTBCIDExNkMgMTFBOTsKK0M2N0I7QzY3QjsxMTBCIDExNkMgMTFBQTtDNjdCOzExMEIgMTE2QyAxMUFBOworQzY3QztDNjdDOzExMEIgMTE2QyAxMUFCO0M2N0M7MTEwQiAxMTZDIDExQUI7CitDNjdEO0M2N0Q7MTEwQiAxMTZDIDExQUM7QzY3RDsxMTBCIDExNkMgMTFBQzsKK0M2N0U7QzY3RTsxMTBCIDExNkMgMTFBRDtDNjdFOzExMEIgMTE2QyAxMUFEOworQzY3RjtDNjdGOzExMEIgMTE2QyAxMUFFO0M2N0Y7MTEwQiAxMTZDIDExQUU7CitDNjgwO0M2ODA7MTEwQiAxMTZDIDExQUY7QzY4MDsxMTBCIDExNkMgMTFBRjsKK0M2ODE7QzY4MTsxMTBCIDExNkMgMTFCMDtDNjgxOzExMEIgMTE2QyAxMUIwOworQzY4MjtDNjgyOzExMEIgMTE2QyAxMUIxO0M2ODI7MTEwQiAxMTZDIDExQjE7CitDNjgzO0M2ODM7MTEwQiAxMTZDIDExQjI7QzY4MzsxMTBCIDExNkMgMTFCMjsKK0M2ODQ7QzY4NDsxMTBCIDExNkMgMTFCMztDNjg0OzExMEIgMTE2QyAxMUIzOworQzY4NTtDNjg1OzExMEIgMTE2QyAxMUI0O0M2ODU7MTEwQiAxMTZDIDExQjQ7CitDNjg2O0M2ODY7MTEwQiAxMTZDIDExQjU7QzY4NjsxMTBCIDExNkMgMTFCNTsKK0M2ODc7QzY4NzsxMTBCIDExNkMgMTFCNjtDNjg3OzExMEIgMTE2QyAxMUI2OworQzY4ODtDNjg4OzExMEIgMTE2QyAxMUI3O0M2ODg7MTEwQiAxMTZDIDExQjc7CitDNjg5O0M2ODk7MTEwQiAxMTZDIDExQjg7QzY4OTsxMTBCIDExNkMgMTFCODsKK0M2OEE7QzY4QTsxMTBCIDExNkMgMTFCOTtDNjhBOzExMEIgMTE2QyAxMUI5OworQzY4QjtDNjhCOzExMEIgMTE2QyAxMUJBO0M2OEI7MTEwQiAxMTZDIDExQkE7CitDNjhDO0M2OEM7MTEwQiAxMTZDIDExQkI7QzY4QzsxMTBCIDExNkMgMTFCQjsKK0M2OEQ7QzY4RDsxMTBCIDExNkMgMTFCQztDNjhEOzExMEIgMTE2QyAxMUJDOworQzY4RTtDNjhFOzExMEIgMTE2QyAxMUJEO0M2OEU7MTEwQiAxMTZDIDExQkQ7CitDNjhGO0M2OEY7MTEwQiAxMTZDIDExQkU7QzY4RjsxMTBCIDExNkMgMTFCRTsKK0M2OTA7QzY5MDsxMTBCIDExNkMgMTFCRjtDNjkwOzExMEIgMTE2QyAxMUJGOworQzY5MTtDNjkxOzExMEIgMTE2QyAxMUMwO0M2OTE7MTEwQiAxMTZDIDExQzA7CitDNjkyO0M2OTI7MTEwQiAxMTZDIDExQzE7QzY5MjsxMTBCIDExNkMgMTFDMTsKK0M2OTM7QzY5MzsxMTBCIDExNkMgMTFDMjtDNjkzOzExMEIgMTE2QyAxMUMyOworQzY5NDtDNjk0OzExMEIgMTE2RDtDNjk0OzExMEIgMTE2RDsKK0M2OTU7QzY5NTsxMTBCIDExNkQgMTFBODtDNjk1OzExMEIgMTE2RCAxMUE4OworQzY5NjtDNjk2OzExMEIgMTE2RCAxMUE5O0M2OTY7MTEwQiAxMTZEIDExQTk7CitDNjk3O0M2OTc7MTEwQiAxMTZEIDExQUE7QzY5NzsxMTBCIDExNkQgMTFBQTsKK0M2OTg7QzY5ODsxMTBCIDExNkQgMTFBQjtDNjk4OzExMEIgMTE2RCAxMUFCOworQzY5OTtDNjk5OzExMEIgMTE2RCAxMUFDO0M2OTk7MTEwQiAxMTZEIDExQUM7CitDNjlBO0M2OUE7MTEwQiAxMTZEIDExQUQ7QzY5QTsxMTBCIDExNkQgMTFBRDsKK0M2OUI7QzY5QjsxMTBCIDExNkQgMTFBRTtDNjlCOzExMEIgMTE2RCAxMUFFOworQzY5QztDNjlDOzExMEIgMTE2RCAxMUFGO0M2OUM7MTEwQiAxMTZEIDExQUY7CitDNjlEO0M2OUQ7MTEwQiAxMTZEIDExQjA7QzY5RDsxMTBCIDExNkQgMTFCMDsKK0M2OUU7QzY5RTsxMTBCIDExNkQgMTFCMTtDNjlFOzExMEIgMTE2RCAxMUIxOworQzY5RjtDNjlGOzExMEIgMTE2RCAxMUIyO0M2OUY7MTEwQiAxMTZEIDExQjI7CitDNkEwO0M2QTA7MTEwQiAxMTZEIDExQjM7QzZBMDsxMTBCIDExNkQgMTFCMzsKK0M2QTE7QzZBMTsxMTBCIDExNkQgMTFCNDtDNkExOzExMEIgMTE2RCAxMUI0OworQzZBMjtDNkEyOzExMEIgMTE2RCAxMUI1O0M2QTI7MTEwQiAxMTZEIDExQjU7CitDNkEzO0M2QTM7MTEwQiAxMTZEIDExQjY7QzZBMzsxMTBCIDExNkQgMTFCNjsKK0M2QTQ7QzZBNDsxMTBCIDExNkQgMTFCNztDNkE0OzExMEIgMTE2RCAxMUI3OworQzZBNTtDNkE1OzExMEIgMTE2RCAxMUI4O0M2QTU7MTEwQiAxMTZEIDExQjg7CitDNkE2O0M2QTY7MTEwQiAxMTZEIDExQjk7QzZBNjsxMTBCIDExNkQgMTFCOTsKK0M2QTc7QzZBNzsxMTBCIDExNkQgMTFCQTtDNkE3OzExMEIgMTE2RCAxMUJBOworQzZBODtDNkE4OzExMEIgMTE2RCAxMUJCO0M2QTg7MTEwQiAxMTZEIDExQkI7CitDNkE5O0M2QTk7MTEwQiAxMTZEIDExQkM7QzZBOTsxMTBCIDExNkQgMTFCQzsKK0M2QUE7QzZBQTsxMTBCIDExNkQgMTFCRDtDNkFBOzExMEIgMTE2RCAxMUJEOworQzZBQjtDNkFCOzExMEIgMTE2RCAxMUJFO0M2QUI7MTEwQiAxMTZEIDExQkU7CitDNkFDO0M2QUM7MTEwQiAxMTZEIDExQkY7QzZBQzsxMTBCIDExNkQgMTFCRjsKK0M2QUQ7QzZBRDsxMTBCIDExNkQgMTFDMDtDNkFEOzExMEIgMTE2RCAxMUMwOworQzZBRTtDNkFFOzExMEIgMTE2RCAxMUMxO0M2QUU7MTEwQiAxMTZEIDExQzE7CitDNkFGO0M2QUY7MTEwQiAxMTZEIDExQzI7QzZBRjsxMTBCIDExNkQgMTFDMjsKK0M2QjA7QzZCMDsxMTBCIDExNkU7QzZCMDsxMTBCIDExNkU7CitDNkIxO0M2QjE7MTEwQiAxMTZFIDExQTg7QzZCMTsxMTBCIDExNkUgMTFBODsKK0M2QjI7QzZCMjsxMTBCIDExNkUgMTFBOTtDNkIyOzExMEIgMTE2RSAxMUE5OworQzZCMztDNkIzOzExMEIgMTE2RSAxMUFBO0M2QjM7MTEwQiAxMTZFIDExQUE7CitDNkI0O0M2QjQ7MTEwQiAxMTZFIDExQUI7QzZCNDsxMTBCIDExNkUgMTFBQjsKK0M2QjU7QzZCNTsxMTBCIDExNkUgMTFBQztDNkI1OzExMEIgMTE2RSAxMUFDOworQzZCNjtDNkI2OzExMEIgMTE2RSAxMUFEO0M2QjY7MTEwQiAxMTZFIDExQUQ7CitDNkI3O0M2Qjc7MTEwQiAxMTZFIDExQUU7QzZCNzsxMTBCIDExNkUgMTFBRTsKK0M2Qjg7QzZCODsxMTBCIDExNkUgMTFBRjtDNkI4OzExMEIgMTE2RSAxMUFGOworQzZCOTtDNkI5OzExMEIgMTE2RSAxMUIwO0M2Qjk7MTEwQiAxMTZFIDExQjA7CitDNkJBO0M2QkE7MTEwQiAxMTZFIDExQjE7QzZCQTsxMTBCIDExNkUgMTFCMTsKK0M2QkI7QzZCQjsxMTBCIDExNkUgMTFCMjtDNkJCOzExMEIgMTE2RSAxMUIyOworQzZCQztDNkJDOzExMEIgMTE2RSAxMUIzO0M2QkM7MTEwQiAxMTZFIDExQjM7CitDNkJEO0M2QkQ7MTEwQiAxMTZFIDExQjQ7QzZCRDsxMTBCIDExNkUgMTFCNDsKK0M2QkU7QzZCRTsxMTBCIDExNkUgMTFCNTtDNkJFOzExMEIgMTE2RSAxMUI1OworQzZCRjtDNkJGOzExMEIgMTE2RSAxMUI2O0M2QkY7MTEwQiAxMTZFIDExQjY7CitDNkMwO0M2QzA7MTEwQiAxMTZFIDExQjc7QzZDMDsxMTBCIDExNkUgMTFCNzsKK0M2QzE7QzZDMTsxMTBCIDExNkUgMTFCODtDNkMxOzExMEIgMTE2RSAxMUI4OworQzZDMjtDNkMyOzExMEIgMTE2RSAxMUI5O0M2QzI7MTEwQiAxMTZFIDExQjk7CitDNkMzO0M2QzM7MTEwQiAxMTZFIDExQkE7QzZDMzsxMTBCIDExNkUgMTFCQTsKK0M2QzQ7QzZDNDsxMTBCIDExNkUgMTFCQjtDNkM0OzExMEIgMTE2RSAxMUJCOworQzZDNTtDNkM1OzExMEIgMTE2RSAxMUJDO0M2QzU7MTEwQiAxMTZFIDExQkM7CitDNkM2O0M2QzY7MTEwQiAxMTZFIDExQkQ7QzZDNjsxMTBCIDExNkUgMTFCRDsKK0M2Qzc7QzZDNzsxMTBCIDExNkUgMTFCRTtDNkM3OzExMEIgMTE2RSAxMUJFOworQzZDODtDNkM4OzExMEIgMTE2RSAxMUJGO0M2Qzg7MTEwQiAxMTZFIDExQkY7CitDNkM5O0M2Qzk7MTEwQiAxMTZFIDExQzA7QzZDOTsxMTBCIDExNkUgMTFDMDsKK0M2Q0E7QzZDQTsxMTBCIDExNkUgMTFDMTtDNkNBOzExMEIgMTE2RSAxMUMxOworQzZDQjtDNkNCOzExMEIgMTE2RSAxMUMyO0M2Q0I7MTEwQiAxMTZFIDExQzI7CitDNkNDO0M2Q0M7MTEwQiAxMTZGO0M2Q0M7MTEwQiAxMTZGOworQzZDRDtDNkNEOzExMEIgMTE2RiAxMUE4O0M2Q0Q7MTEwQiAxMTZGIDExQTg7CitDNkNFO0M2Q0U7MTEwQiAxMTZGIDExQTk7QzZDRTsxMTBCIDExNkYgMTFBOTsKK0M2Q0Y7QzZDRjsxMTBCIDExNkYgMTFBQTtDNkNGOzExMEIgMTE2RiAxMUFBOworQzZEMDtDNkQwOzExMEIgMTE2RiAxMUFCO0M2RDA7MTEwQiAxMTZGIDExQUI7CitDNkQxO0M2RDE7MTEwQiAxMTZGIDExQUM7QzZEMTsxMTBCIDExNkYgMTFBQzsKK0M2RDI7QzZEMjsxMTBCIDExNkYgMTFBRDtDNkQyOzExMEIgMTE2RiAxMUFEOworQzZEMztDNkQzOzExMEIgMTE2RiAxMUFFO0M2RDM7MTEwQiAxMTZGIDExQUU7CitDNkQ0O0M2RDQ7MTEwQiAxMTZGIDExQUY7QzZENDsxMTBCIDExNkYgMTFBRjsKK0M2RDU7QzZENTsxMTBCIDExNkYgMTFCMDtDNkQ1OzExMEIgMTE2RiAxMUIwOworQzZENjtDNkQ2OzExMEIgMTE2RiAxMUIxO0M2RDY7MTEwQiAxMTZGIDExQjE7CitDNkQ3O0M2RDc7MTEwQiAxMTZGIDExQjI7QzZENzsxMTBCIDExNkYgMTFCMjsKK0M2RDg7QzZEODsxMTBCIDExNkYgMTFCMztDNkQ4OzExMEIgMTE2RiAxMUIzOworQzZEOTtDNkQ5OzExMEIgMTE2RiAxMUI0O0M2RDk7MTEwQiAxMTZGIDExQjQ7CitDNkRBO0M2REE7MTEwQiAxMTZGIDExQjU7QzZEQTsxMTBCIDExNkYgMTFCNTsKK0M2REI7QzZEQjsxMTBCIDExNkYgMTFCNjtDNkRCOzExMEIgMTE2RiAxMUI2OworQzZEQztDNkRDOzExMEIgMTE2RiAxMUI3O0M2REM7MTEwQiAxMTZGIDExQjc7CitDNkREO0M2REQ7MTEwQiAxMTZGIDExQjg7QzZERDsxMTBCIDExNkYgMTFCODsKK0M2REU7QzZERTsxMTBCIDExNkYgMTFCOTtDNkRFOzExMEIgMTE2RiAxMUI5OworQzZERjtDNkRGOzExMEIgMTE2RiAxMUJBO0M2REY7MTEwQiAxMTZGIDExQkE7CitDNkUwO0M2RTA7MTEwQiAxMTZGIDExQkI7QzZFMDsxMTBCIDExNkYgMTFCQjsKK0M2RTE7QzZFMTsxMTBCIDExNkYgMTFCQztDNkUxOzExMEIgMTE2RiAxMUJDOworQzZFMjtDNkUyOzExMEIgMTE2RiAxMUJEO0M2RTI7MTEwQiAxMTZGIDExQkQ7CitDNkUzO0M2RTM7MTEwQiAxMTZGIDExQkU7QzZFMzsxMTBCIDExNkYgMTFCRTsKK0M2RTQ7QzZFNDsxMTBCIDExNkYgMTFCRjtDNkU0OzExMEIgMTE2RiAxMUJGOworQzZFNTtDNkU1OzExMEIgMTE2RiAxMUMwO0M2RTU7MTEwQiAxMTZGIDExQzA7CitDNkU2O0M2RTY7MTEwQiAxMTZGIDExQzE7QzZFNjsxMTBCIDExNkYgMTFDMTsKK0M2RTc7QzZFNzsxMTBCIDExNkYgMTFDMjtDNkU3OzExMEIgMTE2RiAxMUMyOworQzZFODtDNkU4OzExMEIgMTE3MDtDNkU4OzExMEIgMTE3MDsKK0M2RTk7QzZFOTsxMTBCIDExNzAgMTFBODtDNkU5OzExMEIgMTE3MCAxMUE4OworQzZFQTtDNkVBOzExMEIgMTE3MCAxMUE5O0M2RUE7MTEwQiAxMTcwIDExQTk7CitDNkVCO0M2RUI7MTEwQiAxMTcwIDExQUE7QzZFQjsxMTBCIDExNzAgMTFBQTsKK0M2RUM7QzZFQzsxMTBCIDExNzAgMTFBQjtDNkVDOzExMEIgMTE3MCAxMUFCOworQzZFRDtDNkVEOzExMEIgMTE3MCAxMUFDO0M2RUQ7MTEwQiAxMTcwIDExQUM7CitDNkVFO0M2RUU7MTEwQiAxMTcwIDExQUQ7QzZFRTsxMTBCIDExNzAgMTFBRDsKK0M2RUY7QzZFRjsxMTBCIDExNzAgMTFBRTtDNkVGOzExMEIgMTE3MCAxMUFFOworQzZGMDtDNkYwOzExMEIgMTE3MCAxMUFGO0M2RjA7MTEwQiAxMTcwIDExQUY7CitDNkYxO0M2RjE7MTEwQiAxMTcwIDExQjA7QzZGMTsxMTBCIDExNzAgMTFCMDsKK0M2RjI7QzZGMjsxMTBCIDExNzAgMTFCMTtDNkYyOzExMEIgMTE3MCAxMUIxOworQzZGMztDNkYzOzExMEIgMTE3MCAxMUIyO0M2RjM7MTEwQiAxMTcwIDExQjI7CitDNkY0O0M2RjQ7MTEwQiAxMTcwIDExQjM7QzZGNDsxMTBCIDExNzAgMTFCMzsKK0M2RjU7QzZGNTsxMTBCIDExNzAgMTFCNDtDNkY1OzExMEIgMTE3MCAxMUI0OworQzZGNjtDNkY2OzExMEIgMTE3MCAxMUI1O0M2RjY7MTEwQiAxMTcwIDExQjU7CitDNkY3O0M2Rjc7MTEwQiAxMTcwIDExQjY7QzZGNzsxMTBCIDExNzAgMTFCNjsKK0M2Rjg7QzZGODsxMTBCIDExNzAgMTFCNztDNkY4OzExMEIgMTE3MCAxMUI3OworQzZGOTtDNkY5OzExMEIgMTE3MCAxMUI4O0M2Rjk7MTEwQiAxMTcwIDExQjg7CitDNkZBO0M2RkE7MTEwQiAxMTcwIDExQjk7QzZGQTsxMTBCIDExNzAgMTFCOTsKK0M2RkI7QzZGQjsxMTBCIDExNzAgMTFCQTtDNkZCOzExMEIgMTE3MCAxMUJBOworQzZGQztDNkZDOzExMEIgMTE3MCAxMUJCO0M2RkM7MTEwQiAxMTcwIDExQkI7CitDNkZEO0M2RkQ7MTEwQiAxMTcwIDExQkM7QzZGRDsxMTBCIDExNzAgMTFCQzsKK0M2RkU7QzZGRTsxMTBCIDExNzAgMTFCRDtDNkZFOzExMEIgMTE3MCAxMUJEOworQzZGRjtDNkZGOzExMEIgMTE3MCAxMUJFO0M2RkY7MTEwQiAxMTcwIDExQkU7CitDNzAwO0M3MDA7MTEwQiAxMTcwIDExQkY7QzcwMDsxMTBCIDExNzAgMTFCRjsKK0M3MDE7QzcwMTsxMTBCIDExNzAgMTFDMDtDNzAxOzExMEIgMTE3MCAxMUMwOworQzcwMjtDNzAyOzExMEIgMTE3MCAxMUMxO0M3MDI7MTEwQiAxMTcwIDExQzE7CitDNzAzO0M3MDM7MTEwQiAxMTcwIDExQzI7QzcwMzsxMTBCIDExNzAgMTFDMjsKK0M3MDQ7QzcwNDsxMTBCIDExNzE7QzcwNDsxMTBCIDExNzE7CitDNzA1O0M3MDU7MTEwQiAxMTcxIDExQTg7QzcwNTsxMTBCIDExNzEgMTFBODsKK0M3MDY7QzcwNjsxMTBCIDExNzEgMTFBOTtDNzA2OzExMEIgMTE3MSAxMUE5OworQzcwNztDNzA3OzExMEIgMTE3MSAxMUFBO0M3MDc7MTEwQiAxMTcxIDExQUE7CitDNzA4O0M3MDg7MTEwQiAxMTcxIDExQUI7QzcwODsxMTBCIDExNzEgMTFBQjsKK0M3MDk7QzcwOTsxMTBCIDExNzEgMTFBQztDNzA5OzExMEIgMTE3MSAxMUFDOworQzcwQTtDNzBBOzExMEIgMTE3MSAxMUFEO0M3MEE7MTEwQiAxMTcxIDExQUQ7CitDNzBCO0M3MEI7MTEwQiAxMTcxIDExQUU7QzcwQjsxMTBCIDExNzEgMTFBRTsKK0M3MEM7QzcwQzsxMTBCIDExNzEgMTFBRjtDNzBDOzExMEIgMTE3MSAxMUFGOworQzcwRDtDNzBEOzExMEIgMTE3MSAxMUIwO0M3MEQ7MTEwQiAxMTcxIDExQjA7CitDNzBFO0M3MEU7MTEwQiAxMTcxIDExQjE7QzcwRTsxMTBCIDExNzEgMTFCMTsKK0M3MEY7QzcwRjsxMTBCIDExNzEgMTFCMjtDNzBGOzExMEIgMTE3MSAxMUIyOworQzcxMDtDNzEwOzExMEIgMTE3MSAxMUIzO0M3MTA7MTEwQiAxMTcxIDExQjM7CitDNzExO0M3MTE7MTEwQiAxMTcxIDExQjQ7QzcxMTsxMTBCIDExNzEgMTFCNDsKK0M3MTI7QzcxMjsxMTBCIDExNzEgMTFCNTtDNzEyOzExMEIgMTE3MSAxMUI1OworQzcxMztDNzEzOzExMEIgMTE3MSAxMUI2O0M3MTM7MTEwQiAxMTcxIDExQjY7CitDNzE0O0M3MTQ7MTEwQiAxMTcxIDExQjc7QzcxNDsxMTBCIDExNzEgMTFCNzsKK0M3MTU7QzcxNTsxMTBCIDExNzEgMTFCODtDNzE1OzExMEIgMTE3MSAxMUI4OworQzcxNjtDNzE2OzExMEIgMTE3MSAxMUI5O0M3MTY7MTEwQiAxMTcxIDExQjk7CitDNzE3O0M3MTc7MTEwQiAxMTcxIDExQkE7QzcxNzsxMTBCIDExNzEgMTFCQTsKK0M3MTg7QzcxODsxMTBCIDExNzEgMTFCQjtDNzE4OzExMEIgMTE3MSAxMUJCOworQzcxOTtDNzE5OzExMEIgMTE3MSAxMUJDO0M3MTk7MTEwQiAxMTcxIDExQkM7CitDNzFBO0M3MUE7MTEwQiAxMTcxIDExQkQ7QzcxQTsxMTBCIDExNzEgMTFCRDsKK0M3MUI7QzcxQjsxMTBCIDExNzEgMTFCRTtDNzFCOzExMEIgMTE3MSAxMUJFOworQzcxQztDNzFDOzExMEIgMTE3MSAxMUJGO0M3MUM7MTEwQiAxMTcxIDExQkY7CitDNzFEO0M3MUQ7MTEwQiAxMTcxIDExQzA7QzcxRDsxMTBCIDExNzEgMTFDMDsKK0M3MUU7QzcxRTsxMTBCIDExNzEgMTFDMTtDNzFFOzExMEIgMTE3MSAxMUMxOworQzcxRjtDNzFGOzExMEIgMTE3MSAxMUMyO0M3MUY7MTEwQiAxMTcxIDExQzI7CitDNzIwO0M3MjA7MTEwQiAxMTcyO0M3MjA7MTEwQiAxMTcyOworQzcyMTtDNzIxOzExMEIgMTE3MiAxMUE4O0M3MjE7MTEwQiAxMTcyIDExQTg7CitDNzIyO0M3MjI7MTEwQiAxMTcyIDExQTk7QzcyMjsxMTBCIDExNzIgMTFBOTsKK0M3MjM7QzcyMzsxMTBCIDExNzIgMTFBQTtDNzIzOzExMEIgMTE3MiAxMUFBOworQzcyNDtDNzI0OzExMEIgMTE3MiAxMUFCO0M3MjQ7MTEwQiAxMTcyIDExQUI7CitDNzI1O0M3MjU7MTEwQiAxMTcyIDExQUM7QzcyNTsxMTBCIDExNzIgMTFBQzsKK0M3MjY7QzcyNjsxMTBCIDExNzIgMTFBRDtDNzI2OzExMEIgMTE3MiAxMUFEOworQzcyNztDNzI3OzExMEIgMTE3MiAxMUFFO0M3Mjc7MTEwQiAxMTcyIDExQUU7CitDNzI4O0M3Mjg7MTEwQiAxMTcyIDExQUY7QzcyODsxMTBCIDExNzIgMTFBRjsKK0M3Mjk7QzcyOTsxMTBCIDExNzIgMTFCMDtDNzI5OzExMEIgMTE3MiAxMUIwOworQzcyQTtDNzJBOzExMEIgMTE3MiAxMUIxO0M3MkE7MTEwQiAxMTcyIDExQjE7CitDNzJCO0M3MkI7MTEwQiAxMTcyIDExQjI7QzcyQjsxMTBCIDExNzIgMTFCMjsKK0M3MkM7QzcyQzsxMTBCIDExNzIgMTFCMztDNzJDOzExMEIgMTE3MiAxMUIzOworQzcyRDtDNzJEOzExMEIgMTE3MiAxMUI0O0M3MkQ7MTEwQiAxMTcyIDExQjQ7CitDNzJFO0M3MkU7MTEwQiAxMTcyIDExQjU7QzcyRTsxMTBCIDExNzIgMTFCNTsKK0M3MkY7QzcyRjsxMTBCIDExNzIgMTFCNjtDNzJGOzExMEIgMTE3MiAxMUI2OworQzczMDtDNzMwOzExMEIgMTE3MiAxMUI3O0M3MzA7MTEwQiAxMTcyIDExQjc7CitDNzMxO0M3MzE7MTEwQiAxMTcyIDExQjg7QzczMTsxMTBCIDExNzIgMTFCODsKK0M3MzI7QzczMjsxMTBCIDExNzIgMTFCOTtDNzMyOzExMEIgMTE3MiAxMUI5OworQzczMztDNzMzOzExMEIgMTE3MiAxMUJBO0M3MzM7MTEwQiAxMTcyIDExQkE7CitDNzM0O0M3MzQ7MTEwQiAxMTcyIDExQkI7QzczNDsxMTBCIDExNzIgMTFCQjsKK0M3MzU7QzczNTsxMTBCIDExNzIgMTFCQztDNzM1OzExMEIgMTE3MiAxMUJDOworQzczNjtDNzM2OzExMEIgMTE3MiAxMUJEO0M3MzY7MTEwQiAxMTcyIDExQkQ7CitDNzM3O0M3Mzc7MTEwQiAxMTcyIDExQkU7QzczNzsxMTBCIDExNzIgMTFCRTsKK0M3Mzg7QzczODsxMTBCIDExNzIgMTFCRjtDNzM4OzExMEIgMTE3MiAxMUJGOworQzczOTtDNzM5OzExMEIgMTE3MiAxMUMwO0M3Mzk7MTEwQiAxMTcyIDExQzA7CitDNzNBO0M3M0E7MTEwQiAxMTcyIDExQzE7QzczQTsxMTBCIDExNzIgMTFDMTsKK0M3M0I7QzczQjsxMTBCIDExNzIgMTFDMjtDNzNCOzExMEIgMTE3MiAxMUMyOworQzczQztDNzNDOzExMEIgMTE3MztDNzNDOzExMEIgMTE3MzsKK0M3M0Q7QzczRDsxMTBCIDExNzMgMTFBODtDNzNEOzExMEIgMTE3MyAxMUE4OworQzczRTtDNzNFOzExMEIgMTE3MyAxMUE5O0M3M0U7MTEwQiAxMTczIDExQTk7CitDNzNGO0M3M0Y7MTEwQiAxMTczIDExQUE7QzczRjsxMTBCIDExNzMgMTFBQTsKK0M3NDA7Qzc0MDsxMTBCIDExNzMgMTFBQjtDNzQwOzExMEIgMTE3MyAxMUFCOworQzc0MTtDNzQxOzExMEIgMTE3MyAxMUFDO0M3NDE7MTEwQiAxMTczIDExQUM7CitDNzQyO0M3NDI7MTEwQiAxMTczIDExQUQ7Qzc0MjsxMTBCIDExNzMgMTFBRDsKK0M3NDM7Qzc0MzsxMTBCIDExNzMgMTFBRTtDNzQzOzExMEIgMTE3MyAxMUFFOworQzc0NDtDNzQ0OzExMEIgMTE3MyAxMUFGO0M3NDQ7MTEwQiAxMTczIDExQUY7CitDNzQ1O0M3NDU7MTEwQiAxMTczIDExQjA7Qzc0NTsxMTBCIDExNzMgMTFCMDsKK0M3NDY7Qzc0NjsxMTBCIDExNzMgMTFCMTtDNzQ2OzExMEIgMTE3MyAxMUIxOworQzc0NztDNzQ3OzExMEIgMTE3MyAxMUIyO0M3NDc7MTEwQiAxMTczIDExQjI7CitDNzQ4O0M3NDg7MTEwQiAxMTczIDExQjM7Qzc0ODsxMTBCIDExNzMgMTFCMzsKK0M3NDk7Qzc0OTsxMTBCIDExNzMgMTFCNDtDNzQ5OzExMEIgMTE3MyAxMUI0OworQzc0QTtDNzRBOzExMEIgMTE3MyAxMUI1O0M3NEE7MTEwQiAxMTczIDExQjU7CitDNzRCO0M3NEI7MTEwQiAxMTczIDExQjY7Qzc0QjsxMTBCIDExNzMgMTFCNjsKK0M3NEM7Qzc0QzsxMTBCIDExNzMgMTFCNztDNzRDOzExMEIgMTE3MyAxMUI3OworQzc0RDtDNzREOzExMEIgMTE3MyAxMUI4O0M3NEQ7MTEwQiAxMTczIDExQjg7CitDNzRFO0M3NEU7MTEwQiAxMTczIDExQjk7Qzc0RTsxMTBCIDExNzMgMTFCOTsKK0M3NEY7Qzc0RjsxMTBCIDExNzMgMTFCQTtDNzRGOzExMEIgMTE3MyAxMUJBOworQzc1MDtDNzUwOzExMEIgMTE3MyAxMUJCO0M3NTA7MTEwQiAxMTczIDExQkI7CitDNzUxO0M3NTE7MTEwQiAxMTczIDExQkM7Qzc1MTsxMTBCIDExNzMgMTFCQzsKK0M3NTI7Qzc1MjsxMTBCIDExNzMgMTFCRDtDNzUyOzExMEIgMTE3MyAxMUJEOworQzc1MztDNzUzOzExMEIgMTE3MyAxMUJFO0M3NTM7MTEwQiAxMTczIDExQkU7CitDNzU0O0M3NTQ7MTEwQiAxMTczIDExQkY7Qzc1NDsxMTBCIDExNzMgMTFCRjsKK0M3NTU7Qzc1NTsxMTBCIDExNzMgMTFDMDtDNzU1OzExMEIgMTE3MyAxMUMwOworQzc1NjtDNzU2OzExMEIgMTE3MyAxMUMxO0M3NTY7MTEwQiAxMTczIDExQzE7CitDNzU3O0M3NTc7MTEwQiAxMTczIDExQzI7Qzc1NzsxMTBCIDExNzMgMTFDMjsKK0M3NTg7Qzc1ODsxMTBCIDExNzQ7Qzc1ODsxMTBCIDExNzQ7CitDNzU5O0M3NTk7MTEwQiAxMTc0IDExQTg7Qzc1OTsxMTBCIDExNzQgMTFBODsKK0M3NUE7Qzc1QTsxMTBCIDExNzQgMTFBOTtDNzVBOzExMEIgMTE3NCAxMUE5OworQzc1QjtDNzVCOzExMEIgMTE3NCAxMUFBO0M3NUI7MTEwQiAxMTc0IDExQUE7CitDNzVDO0M3NUM7MTEwQiAxMTc0IDExQUI7Qzc1QzsxMTBCIDExNzQgMTFBQjsKK0M3NUQ7Qzc1RDsxMTBCIDExNzQgMTFBQztDNzVEOzExMEIgMTE3NCAxMUFDOworQzc1RTtDNzVFOzExMEIgMTE3NCAxMUFEO0M3NUU7MTEwQiAxMTc0IDExQUQ7CitDNzVGO0M3NUY7MTEwQiAxMTc0IDExQUU7Qzc1RjsxMTBCIDExNzQgMTFBRTsKK0M3NjA7Qzc2MDsxMTBCIDExNzQgMTFBRjtDNzYwOzExMEIgMTE3NCAxMUFGOworQzc2MTtDNzYxOzExMEIgMTE3NCAxMUIwO0M3NjE7MTEwQiAxMTc0IDExQjA7CitDNzYyO0M3NjI7MTEwQiAxMTc0IDExQjE7Qzc2MjsxMTBCIDExNzQgMTFCMTsKK0M3NjM7Qzc2MzsxMTBCIDExNzQgMTFCMjtDNzYzOzExMEIgMTE3NCAxMUIyOworQzc2NDtDNzY0OzExMEIgMTE3NCAxMUIzO0M3NjQ7MTEwQiAxMTc0IDExQjM7CitDNzY1O0M3NjU7MTEwQiAxMTc0IDExQjQ7Qzc2NTsxMTBCIDExNzQgMTFCNDsKK0M3NjY7Qzc2NjsxMTBCIDExNzQgMTFCNTtDNzY2OzExMEIgMTE3NCAxMUI1OworQzc2NztDNzY3OzExMEIgMTE3NCAxMUI2O0M3Njc7MTEwQiAxMTc0IDExQjY7CitDNzY4O0M3Njg7MTEwQiAxMTc0IDExQjc7Qzc2ODsxMTBCIDExNzQgMTFCNzsKK0M3Njk7Qzc2OTsxMTBCIDExNzQgMTFCODtDNzY5OzExMEIgMTE3NCAxMUI4OworQzc2QTtDNzZBOzExMEIgMTE3NCAxMUI5O0M3NkE7MTEwQiAxMTc0IDExQjk7CitDNzZCO0M3NkI7MTEwQiAxMTc0IDExQkE7Qzc2QjsxMTBCIDExNzQgMTFCQTsKK0M3NkM7Qzc2QzsxMTBCIDExNzQgMTFCQjtDNzZDOzExMEIgMTE3NCAxMUJCOworQzc2RDtDNzZEOzExMEIgMTE3NCAxMUJDO0M3NkQ7MTEwQiAxMTc0IDExQkM7CitDNzZFO0M3NkU7MTEwQiAxMTc0IDExQkQ7Qzc2RTsxMTBCIDExNzQgMTFCRDsKK0M3NkY7Qzc2RjsxMTBCIDExNzQgMTFCRTtDNzZGOzExMEIgMTE3NCAxMUJFOworQzc3MDtDNzcwOzExMEIgMTE3NCAxMUJGO0M3NzA7MTEwQiAxMTc0IDExQkY7CitDNzcxO0M3NzE7MTEwQiAxMTc0IDExQzA7Qzc3MTsxMTBCIDExNzQgMTFDMDsKK0M3NzI7Qzc3MjsxMTBCIDExNzQgMTFDMTtDNzcyOzExMEIgMTE3NCAxMUMxOworQzc3MztDNzczOzExMEIgMTE3NCAxMUMyO0M3NzM7MTEwQiAxMTc0IDExQzI7CitDNzc0O0M3NzQ7MTEwQiAxMTc1O0M3NzQ7MTEwQiAxMTc1OworQzc3NTtDNzc1OzExMEIgMTE3NSAxMUE4O0M3NzU7MTEwQiAxMTc1IDExQTg7CitDNzc2O0M3NzY7MTEwQiAxMTc1IDExQTk7Qzc3NjsxMTBCIDExNzUgMTFBOTsKK0M3Nzc7Qzc3NzsxMTBCIDExNzUgMTFBQTtDNzc3OzExMEIgMTE3NSAxMUFBOworQzc3ODtDNzc4OzExMEIgMTE3NSAxMUFCO0M3Nzg7MTEwQiAxMTc1IDExQUI7CitDNzc5O0M3Nzk7MTEwQiAxMTc1IDExQUM7Qzc3OTsxMTBCIDExNzUgMTFBQzsKK0M3N0E7Qzc3QTsxMTBCIDExNzUgMTFBRDtDNzdBOzExMEIgMTE3NSAxMUFEOworQzc3QjtDNzdCOzExMEIgMTE3NSAxMUFFO0M3N0I7MTEwQiAxMTc1IDExQUU7CitDNzdDO0M3N0M7MTEwQiAxMTc1IDExQUY7Qzc3QzsxMTBCIDExNzUgMTFBRjsKK0M3N0Q7Qzc3RDsxMTBCIDExNzUgMTFCMDtDNzdEOzExMEIgMTE3NSAxMUIwOworQzc3RTtDNzdFOzExMEIgMTE3NSAxMUIxO0M3N0U7MTEwQiAxMTc1IDExQjE7CitDNzdGO0M3N0Y7MTEwQiAxMTc1IDExQjI7Qzc3RjsxMTBCIDExNzUgMTFCMjsKK0M3ODA7Qzc4MDsxMTBCIDExNzUgMTFCMztDNzgwOzExMEIgMTE3NSAxMUIzOworQzc4MTtDNzgxOzExMEIgMTE3NSAxMUI0O0M3ODE7MTEwQiAxMTc1IDExQjQ7CitDNzgyO0M3ODI7MTEwQiAxMTc1IDExQjU7Qzc4MjsxMTBCIDExNzUgMTFCNTsKK0M3ODM7Qzc4MzsxMTBCIDExNzUgMTFCNjtDNzgzOzExMEIgMTE3NSAxMUI2OworQzc4NDtDNzg0OzExMEIgMTE3NSAxMUI3O0M3ODQ7MTEwQiAxMTc1IDExQjc7CitDNzg1O0M3ODU7MTEwQiAxMTc1IDExQjg7Qzc4NTsxMTBCIDExNzUgMTFCODsKK0M3ODY7Qzc4NjsxMTBCIDExNzUgMTFCOTtDNzg2OzExMEIgMTE3NSAxMUI5OworQzc4NztDNzg3OzExMEIgMTE3NSAxMUJBO0M3ODc7MTEwQiAxMTc1IDExQkE7CitDNzg4O0M3ODg7MTEwQiAxMTc1IDExQkI7Qzc4ODsxMTBCIDExNzUgMTFCQjsKK0M3ODk7Qzc4OTsxMTBCIDExNzUgMTFCQztDNzg5OzExMEIgMTE3NSAxMUJDOworQzc4QTtDNzhBOzExMEIgMTE3NSAxMUJEO0M3OEE7MTEwQiAxMTc1IDExQkQ7CitDNzhCO0M3OEI7MTEwQiAxMTc1IDExQkU7Qzc4QjsxMTBCIDExNzUgMTFCRTsKK0M3OEM7Qzc4QzsxMTBCIDExNzUgMTFCRjtDNzhDOzExMEIgMTE3NSAxMUJGOworQzc4RDtDNzhEOzExMEIgMTE3NSAxMUMwO0M3OEQ7MTEwQiAxMTc1IDExQzA7CitDNzhFO0M3OEU7MTEwQiAxMTc1IDExQzE7Qzc4RTsxMTBCIDExNzUgMTFDMTsKK0M3OEY7Qzc4RjsxMTBCIDExNzUgMTFDMjtDNzhGOzExMEIgMTE3NSAxMUMyOworQzc5MDtDNzkwOzExMEMgMTE2MTtDNzkwOzExMEMgMTE2MTsKK0M3OTE7Qzc5MTsxMTBDIDExNjEgMTFBODtDNzkxOzExMEMgMTE2MSAxMUE4OworQzc5MjtDNzkyOzExMEMgMTE2MSAxMUE5O0M3OTI7MTEwQyAxMTYxIDExQTk7CitDNzkzO0M3OTM7MTEwQyAxMTYxIDExQUE7Qzc5MzsxMTBDIDExNjEgMTFBQTsKK0M3OTQ7Qzc5NDsxMTBDIDExNjEgMTFBQjtDNzk0OzExMEMgMTE2MSAxMUFCOworQzc5NTtDNzk1OzExMEMgMTE2MSAxMUFDO0M3OTU7MTEwQyAxMTYxIDExQUM7CitDNzk2O0M3OTY7MTEwQyAxMTYxIDExQUQ7Qzc5NjsxMTBDIDExNjEgMTFBRDsKK0M3OTc7Qzc5NzsxMTBDIDExNjEgMTFBRTtDNzk3OzExMEMgMTE2MSAxMUFFOworQzc5ODtDNzk4OzExMEMgMTE2MSAxMUFGO0M3OTg7MTEwQyAxMTYxIDExQUY7CitDNzk5O0M3OTk7MTEwQyAxMTYxIDExQjA7Qzc5OTsxMTBDIDExNjEgMTFCMDsKK0M3OUE7Qzc5QTsxMTBDIDExNjEgMTFCMTtDNzlBOzExMEMgMTE2MSAxMUIxOworQzc5QjtDNzlCOzExMEMgMTE2MSAxMUIyO0M3OUI7MTEwQyAxMTYxIDExQjI7CitDNzlDO0M3OUM7MTEwQyAxMTYxIDExQjM7Qzc5QzsxMTBDIDExNjEgMTFCMzsKK0M3OUQ7Qzc5RDsxMTBDIDExNjEgMTFCNDtDNzlEOzExMEMgMTE2MSAxMUI0OworQzc5RTtDNzlFOzExMEMgMTE2MSAxMUI1O0M3OUU7MTEwQyAxMTYxIDExQjU7CitDNzlGO0M3OUY7MTEwQyAxMTYxIDExQjY7Qzc5RjsxMTBDIDExNjEgMTFCNjsKK0M3QTA7QzdBMDsxMTBDIDExNjEgMTFCNztDN0EwOzExMEMgMTE2MSAxMUI3OworQzdBMTtDN0ExOzExMEMgMTE2MSAxMUI4O0M3QTE7MTEwQyAxMTYxIDExQjg7CitDN0EyO0M3QTI7MTEwQyAxMTYxIDExQjk7QzdBMjsxMTBDIDExNjEgMTFCOTsKK0M3QTM7QzdBMzsxMTBDIDExNjEgMTFCQTtDN0EzOzExMEMgMTE2MSAxMUJBOworQzdBNDtDN0E0OzExMEMgMTE2MSAxMUJCO0M3QTQ7MTEwQyAxMTYxIDExQkI7CitDN0E1O0M3QTU7MTEwQyAxMTYxIDExQkM7QzdBNTsxMTBDIDExNjEgMTFCQzsKK0M3QTY7QzdBNjsxMTBDIDExNjEgMTFCRDtDN0E2OzExMEMgMTE2MSAxMUJEOworQzdBNztDN0E3OzExMEMgMTE2MSAxMUJFO0M3QTc7MTEwQyAxMTYxIDExQkU7CitDN0E4O0M3QTg7MTEwQyAxMTYxIDExQkY7QzdBODsxMTBDIDExNjEgMTFCRjsKK0M3QTk7QzdBOTsxMTBDIDExNjEgMTFDMDtDN0E5OzExMEMgMTE2MSAxMUMwOworQzdBQTtDN0FBOzExMEMgMTE2MSAxMUMxO0M3QUE7MTEwQyAxMTYxIDExQzE7CitDN0FCO0M3QUI7MTEwQyAxMTYxIDExQzI7QzdBQjsxMTBDIDExNjEgMTFDMjsKK0M3QUM7QzdBQzsxMTBDIDExNjI7QzdBQzsxMTBDIDExNjI7CitDN0FEO0M3QUQ7MTEwQyAxMTYyIDExQTg7QzdBRDsxMTBDIDExNjIgMTFBODsKK0M3QUU7QzdBRTsxMTBDIDExNjIgMTFBOTtDN0FFOzExMEMgMTE2MiAxMUE5OworQzdBRjtDN0FGOzExMEMgMTE2MiAxMUFBO0M3QUY7MTEwQyAxMTYyIDExQUE7CitDN0IwO0M3QjA7MTEwQyAxMTYyIDExQUI7QzdCMDsxMTBDIDExNjIgMTFBQjsKK0M3QjE7QzdCMTsxMTBDIDExNjIgMTFBQztDN0IxOzExMEMgMTE2MiAxMUFDOworQzdCMjtDN0IyOzExMEMgMTE2MiAxMUFEO0M3QjI7MTEwQyAxMTYyIDExQUQ7CitDN0IzO0M3QjM7MTEwQyAxMTYyIDExQUU7QzdCMzsxMTBDIDExNjIgMTFBRTsKK0M3QjQ7QzdCNDsxMTBDIDExNjIgMTFBRjtDN0I0OzExMEMgMTE2MiAxMUFGOworQzdCNTtDN0I1OzExMEMgMTE2MiAxMUIwO0M3QjU7MTEwQyAxMTYyIDExQjA7CitDN0I2O0M3QjY7MTEwQyAxMTYyIDExQjE7QzdCNjsxMTBDIDExNjIgMTFCMTsKK0M3Qjc7QzdCNzsxMTBDIDExNjIgMTFCMjtDN0I3OzExMEMgMTE2MiAxMUIyOworQzdCODtDN0I4OzExMEMgMTE2MiAxMUIzO0M3Qjg7MTEwQyAxMTYyIDExQjM7CitDN0I5O0M3Qjk7MTEwQyAxMTYyIDExQjQ7QzdCOTsxMTBDIDExNjIgMTFCNDsKK0M3QkE7QzdCQTsxMTBDIDExNjIgMTFCNTtDN0JBOzExMEMgMTE2MiAxMUI1OworQzdCQjtDN0JCOzExMEMgMTE2MiAxMUI2O0M3QkI7MTEwQyAxMTYyIDExQjY7CitDN0JDO0M3QkM7MTEwQyAxMTYyIDExQjc7QzdCQzsxMTBDIDExNjIgMTFCNzsKK0M3QkQ7QzdCRDsxMTBDIDExNjIgMTFCODtDN0JEOzExMEMgMTE2MiAxMUI4OworQzdCRTtDN0JFOzExMEMgMTE2MiAxMUI5O0M3QkU7MTEwQyAxMTYyIDExQjk7CitDN0JGO0M3QkY7MTEwQyAxMTYyIDExQkE7QzdCRjsxMTBDIDExNjIgMTFCQTsKK0M3QzA7QzdDMDsxMTBDIDExNjIgMTFCQjtDN0MwOzExMEMgMTE2MiAxMUJCOworQzdDMTtDN0MxOzExMEMgMTE2MiAxMUJDO0M3QzE7MTEwQyAxMTYyIDExQkM7CitDN0MyO0M3QzI7MTEwQyAxMTYyIDExQkQ7QzdDMjsxMTBDIDExNjIgMTFCRDsKK0M3QzM7QzdDMzsxMTBDIDExNjIgMTFCRTtDN0MzOzExMEMgMTE2MiAxMUJFOworQzdDNDtDN0M0OzExMEMgMTE2MiAxMUJGO0M3QzQ7MTEwQyAxMTYyIDExQkY7CitDN0M1O0M3QzU7MTEwQyAxMTYyIDExQzA7QzdDNTsxMTBDIDExNjIgMTFDMDsKK0M3QzY7QzdDNjsxMTBDIDExNjIgMTFDMTtDN0M2OzExMEMgMTE2MiAxMUMxOworQzdDNztDN0M3OzExMEMgMTE2MiAxMUMyO0M3Qzc7MTEwQyAxMTYyIDExQzI7CitDN0M4O0M3Qzg7MTEwQyAxMTYzO0M3Qzg7MTEwQyAxMTYzOworQzdDOTtDN0M5OzExMEMgMTE2MyAxMUE4O0M3Qzk7MTEwQyAxMTYzIDExQTg7CitDN0NBO0M3Q0E7MTEwQyAxMTYzIDExQTk7QzdDQTsxMTBDIDExNjMgMTFBOTsKK0M3Q0I7QzdDQjsxMTBDIDExNjMgMTFBQTtDN0NCOzExMEMgMTE2MyAxMUFBOworQzdDQztDN0NDOzExMEMgMTE2MyAxMUFCO0M3Q0M7MTEwQyAxMTYzIDExQUI7CitDN0NEO0M3Q0Q7MTEwQyAxMTYzIDExQUM7QzdDRDsxMTBDIDExNjMgMTFBQzsKK0M3Q0U7QzdDRTsxMTBDIDExNjMgMTFBRDtDN0NFOzExMEMgMTE2MyAxMUFEOworQzdDRjtDN0NGOzExMEMgMTE2MyAxMUFFO0M3Q0Y7MTEwQyAxMTYzIDExQUU7CitDN0QwO0M3RDA7MTEwQyAxMTYzIDExQUY7QzdEMDsxMTBDIDExNjMgMTFBRjsKK0M3RDE7QzdEMTsxMTBDIDExNjMgMTFCMDtDN0QxOzExMEMgMTE2MyAxMUIwOworQzdEMjtDN0QyOzExMEMgMTE2MyAxMUIxO0M3RDI7MTEwQyAxMTYzIDExQjE7CitDN0QzO0M3RDM7MTEwQyAxMTYzIDExQjI7QzdEMzsxMTBDIDExNjMgMTFCMjsKK0M3RDQ7QzdENDsxMTBDIDExNjMgMTFCMztDN0Q0OzExMEMgMTE2MyAxMUIzOworQzdENTtDN0Q1OzExMEMgMTE2MyAxMUI0O0M3RDU7MTEwQyAxMTYzIDExQjQ7CitDN0Q2O0M3RDY7MTEwQyAxMTYzIDExQjU7QzdENjsxMTBDIDExNjMgMTFCNTsKK0M3RDc7QzdENzsxMTBDIDExNjMgMTFCNjtDN0Q3OzExMEMgMTE2MyAxMUI2OworQzdEODtDN0Q4OzExMEMgMTE2MyAxMUI3O0M3RDg7MTEwQyAxMTYzIDExQjc7CitDN0Q5O0M3RDk7MTEwQyAxMTYzIDExQjg7QzdEOTsxMTBDIDExNjMgMTFCODsKK0M3REE7QzdEQTsxMTBDIDExNjMgMTFCOTtDN0RBOzExMEMgMTE2MyAxMUI5OworQzdEQjtDN0RCOzExMEMgMTE2MyAxMUJBO0M3REI7MTEwQyAxMTYzIDExQkE7CitDN0RDO0M3REM7MTEwQyAxMTYzIDExQkI7QzdEQzsxMTBDIDExNjMgMTFCQjsKK0M3REQ7QzdERDsxMTBDIDExNjMgMTFCQztDN0REOzExMEMgMTE2MyAxMUJDOworQzdERTtDN0RFOzExMEMgMTE2MyAxMUJEO0M3REU7MTEwQyAxMTYzIDExQkQ7CitDN0RGO0M3REY7MTEwQyAxMTYzIDExQkU7QzdERjsxMTBDIDExNjMgMTFCRTsKK0M3RTA7QzdFMDsxMTBDIDExNjMgMTFCRjtDN0UwOzExMEMgMTE2MyAxMUJGOworQzdFMTtDN0UxOzExMEMgMTE2MyAxMUMwO0M3RTE7MTEwQyAxMTYzIDExQzA7CitDN0UyO0M3RTI7MTEwQyAxMTYzIDExQzE7QzdFMjsxMTBDIDExNjMgMTFDMTsKK0M3RTM7QzdFMzsxMTBDIDExNjMgMTFDMjtDN0UzOzExMEMgMTE2MyAxMUMyOworQzdFNDtDN0U0OzExMEMgMTE2NDtDN0U0OzExMEMgMTE2NDsKK0M3RTU7QzdFNTsxMTBDIDExNjQgMTFBODtDN0U1OzExMEMgMTE2NCAxMUE4OworQzdFNjtDN0U2OzExMEMgMTE2NCAxMUE5O0M3RTY7MTEwQyAxMTY0IDExQTk7CitDN0U3O0M3RTc7MTEwQyAxMTY0IDExQUE7QzdFNzsxMTBDIDExNjQgMTFBQTsKK0M3RTg7QzdFODsxMTBDIDExNjQgMTFBQjtDN0U4OzExMEMgMTE2NCAxMUFCOworQzdFOTtDN0U5OzExMEMgMTE2NCAxMUFDO0M3RTk7MTEwQyAxMTY0IDExQUM7CitDN0VBO0M3RUE7MTEwQyAxMTY0IDExQUQ7QzdFQTsxMTBDIDExNjQgMTFBRDsKK0M3RUI7QzdFQjsxMTBDIDExNjQgMTFBRTtDN0VCOzExMEMgMTE2NCAxMUFFOworQzdFQztDN0VDOzExMEMgMTE2NCAxMUFGO0M3RUM7MTEwQyAxMTY0IDExQUY7CitDN0VEO0M3RUQ7MTEwQyAxMTY0IDExQjA7QzdFRDsxMTBDIDExNjQgMTFCMDsKK0M3RUU7QzdFRTsxMTBDIDExNjQgMTFCMTtDN0VFOzExMEMgMTE2NCAxMUIxOworQzdFRjtDN0VGOzExMEMgMTE2NCAxMUIyO0M3RUY7MTEwQyAxMTY0IDExQjI7CitDN0YwO0M3RjA7MTEwQyAxMTY0IDExQjM7QzdGMDsxMTBDIDExNjQgMTFCMzsKK0M3RjE7QzdGMTsxMTBDIDExNjQgMTFCNDtDN0YxOzExMEMgMTE2NCAxMUI0OworQzdGMjtDN0YyOzExMEMgMTE2NCAxMUI1O0M3RjI7MTEwQyAxMTY0IDExQjU7CitDN0YzO0M3RjM7MTEwQyAxMTY0IDExQjY7QzdGMzsxMTBDIDExNjQgMTFCNjsKK0M3RjQ7QzdGNDsxMTBDIDExNjQgMTFCNztDN0Y0OzExMEMgMTE2NCAxMUI3OworQzdGNTtDN0Y1OzExMEMgMTE2NCAxMUI4O0M3RjU7MTEwQyAxMTY0IDExQjg7CitDN0Y2O0M3RjY7MTEwQyAxMTY0IDExQjk7QzdGNjsxMTBDIDExNjQgMTFCOTsKK0M3Rjc7QzdGNzsxMTBDIDExNjQgMTFCQTtDN0Y3OzExMEMgMTE2NCAxMUJBOworQzdGODtDN0Y4OzExMEMgMTE2NCAxMUJCO0M3Rjg7MTEwQyAxMTY0IDExQkI7CitDN0Y5O0M3Rjk7MTEwQyAxMTY0IDExQkM7QzdGOTsxMTBDIDExNjQgMTFCQzsKK0M3RkE7QzdGQTsxMTBDIDExNjQgMTFCRDtDN0ZBOzExMEMgMTE2NCAxMUJEOworQzdGQjtDN0ZCOzExMEMgMTE2NCAxMUJFO0M3RkI7MTEwQyAxMTY0IDExQkU7CitDN0ZDO0M3RkM7MTEwQyAxMTY0IDExQkY7QzdGQzsxMTBDIDExNjQgMTFCRjsKK0M3RkQ7QzdGRDsxMTBDIDExNjQgMTFDMDtDN0ZEOzExMEMgMTE2NCAxMUMwOworQzdGRTtDN0ZFOzExMEMgMTE2NCAxMUMxO0M3RkU7MTEwQyAxMTY0IDExQzE7CitDN0ZGO0M3RkY7MTEwQyAxMTY0IDExQzI7QzdGRjsxMTBDIDExNjQgMTFDMjsKK0M4MDA7QzgwMDsxMTBDIDExNjU7QzgwMDsxMTBDIDExNjU7CitDODAxO0M4MDE7MTEwQyAxMTY1IDExQTg7QzgwMTsxMTBDIDExNjUgMTFBODsKK0M4MDI7QzgwMjsxMTBDIDExNjUgMTFBOTtDODAyOzExMEMgMTE2NSAxMUE5OworQzgwMztDODAzOzExMEMgMTE2NSAxMUFBO0M4MDM7MTEwQyAxMTY1IDExQUE7CitDODA0O0M4MDQ7MTEwQyAxMTY1IDExQUI7QzgwNDsxMTBDIDExNjUgMTFBQjsKK0M4MDU7QzgwNTsxMTBDIDExNjUgMTFBQztDODA1OzExMEMgMTE2NSAxMUFDOworQzgwNjtDODA2OzExMEMgMTE2NSAxMUFEO0M4MDY7MTEwQyAxMTY1IDExQUQ7CitDODA3O0M4MDc7MTEwQyAxMTY1IDExQUU7QzgwNzsxMTBDIDExNjUgMTFBRTsKK0M4MDg7QzgwODsxMTBDIDExNjUgMTFBRjtDODA4OzExMEMgMTE2NSAxMUFGOworQzgwOTtDODA5OzExMEMgMTE2NSAxMUIwO0M4MDk7MTEwQyAxMTY1IDExQjA7CitDODBBO0M4MEE7MTEwQyAxMTY1IDExQjE7QzgwQTsxMTBDIDExNjUgMTFCMTsKK0M4MEI7QzgwQjsxMTBDIDExNjUgMTFCMjtDODBCOzExMEMgMTE2NSAxMUIyOworQzgwQztDODBDOzExMEMgMTE2NSAxMUIzO0M4MEM7MTEwQyAxMTY1IDExQjM7CitDODBEO0M4MEQ7MTEwQyAxMTY1IDExQjQ7QzgwRDsxMTBDIDExNjUgMTFCNDsKK0M4MEU7QzgwRTsxMTBDIDExNjUgMTFCNTtDODBFOzExMEMgMTE2NSAxMUI1OworQzgwRjtDODBGOzExMEMgMTE2NSAxMUI2O0M4MEY7MTEwQyAxMTY1IDExQjY7CitDODEwO0M4MTA7MTEwQyAxMTY1IDExQjc7QzgxMDsxMTBDIDExNjUgMTFCNzsKK0M4MTE7QzgxMTsxMTBDIDExNjUgMTFCODtDODExOzExMEMgMTE2NSAxMUI4OworQzgxMjtDODEyOzExMEMgMTE2NSAxMUI5O0M4MTI7MTEwQyAxMTY1IDExQjk7CitDODEzO0M4MTM7MTEwQyAxMTY1IDExQkE7QzgxMzsxMTBDIDExNjUgMTFCQTsKK0M4MTQ7QzgxNDsxMTBDIDExNjUgMTFCQjtDODE0OzExMEMgMTE2NSAxMUJCOworQzgxNTtDODE1OzExMEMgMTE2NSAxMUJDO0M4MTU7MTEwQyAxMTY1IDExQkM7CitDODE2O0M4MTY7MTEwQyAxMTY1IDExQkQ7QzgxNjsxMTBDIDExNjUgMTFCRDsKK0M4MTc7QzgxNzsxMTBDIDExNjUgMTFCRTtDODE3OzExMEMgMTE2NSAxMUJFOworQzgxODtDODE4OzExMEMgMTE2NSAxMUJGO0M4MTg7MTEwQyAxMTY1IDExQkY7CitDODE5O0M4MTk7MTEwQyAxMTY1IDExQzA7QzgxOTsxMTBDIDExNjUgMTFDMDsKK0M4MUE7QzgxQTsxMTBDIDExNjUgMTFDMTtDODFBOzExMEMgMTE2NSAxMUMxOworQzgxQjtDODFCOzExMEMgMTE2NSAxMUMyO0M4MUI7MTEwQyAxMTY1IDExQzI7CitDODFDO0M4MUM7MTEwQyAxMTY2O0M4MUM7MTEwQyAxMTY2OworQzgxRDtDODFEOzExMEMgMTE2NiAxMUE4O0M4MUQ7MTEwQyAxMTY2IDExQTg7CitDODFFO0M4MUU7MTEwQyAxMTY2IDExQTk7QzgxRTsxMTBDIDExNjYgMTFBOTsKK0M4MUY7QzgxRjsxMTBDIDExNjYgMTFBQTtDODFGOzExMEMgMTE2NiAxMUFBOworQzgyMDtDODIwOzExMEMgMTE2NiAxMUFCO0M4MjA7MTEwQyAxMTY2IDExQUI7CitDODIxO0M4MjE7MTEwQyAxMTY2IDExQUM7QzgyMTsxMTBDIDExNjYgMTFBQzsKK0M4MjI7QzgyMjsxMTBDIDExNjYgMTFBRDtDODIyOzExMEMgMTE2NiAxMUFEOworQzgyMztDODIzOzExMEMgMTE2NiAxMUFFO0M4MjM7MTEwQyAxMTY2IDExQUU7CitDODI0O0M4MjQ7MTEwQyAxMTY2IDExQUY7QzgyNDsxMTBDIDExNjYgMTFBRjsKK0M4MjU7QzgyNTsxMTBDIDExNjYgMTFCMDtDODI1OzExMEMgMTE2NiAxMUIwOworQzgyNjtDODI2OzExMEMgMTE2NiAxMUIxO0M4MjY7MTEwQyAxMTY2IDExQjE7CitDODI3O0M4Mjc7MTEwQyAxMTY2IDExQjI7QzgyNzsxMTBDIDExNjYgMTFCMjsKK0M4Mjg7QzgyODsxMTBDIDExNjYgMTFCMztDODI4OzExMEMgMTE2NiAxMUIzOworQzgyOTtDODI5OzExMEMgMTE2NiAxMUI0O0M4Mjk7MTEwQyAxMTY2IDExQjQ7CitDODJBO0M4MkE7MTEwQyAxMTY2IDExQjU7QzgyQTsxMTBDIDExNjYgMTFCNTsKK0M4MkI7QzgyQjsxMTBDIDExNjYgMTFCNjtDODJCOzExMEMgMTE2NiAxMUI2OworQzgyQztDODJDOzExMEMgMTE2NiAxMUI3O0M4MkM7MTEwQyAxMTY2IDExQjc7CitDODJEO0M4MkQ7MTEwQyAxMTY2IDExQjg7QzgyRDsxMTBDIDExNjYgMTFCODsKK0M4MkU7QzgyRTsxMTBDIDExNjYgMTFCOTtDODJFOzExMEMgMTE2NiAxMUI5OworQzgyRjtDODJGOzExMEMgMTE2NiAxMUJBO0M4MkY7MTEwQyAxMTY2IDExQkE7CitDODMwO0M4MzA7MTEwQyAxMTY2IDExQkI7QzgzMDsxMTBDIDExNjYgMTFCQjsKK0M4MzE7QzgzMTsxMTBDIDExNjYgMTFCQztDODMxOzExMEMgMTE2NiAxMUJDOworQzgzMjtDODMyOzExMEMgMTE2NiAxMUJEO0M4MzI7MTEwQyAxMTY2IDExQkQ7CitDODMzO0M4MzM7MTEwQyAxMTY2IDExQkU7QzgzMzsxMTBDIDExNjYgMTFCRTsKK0M4MzQ7QzgzNDsxMTBDIDExNjYgMTFCRjtDODM0OzExMEMgMTE2NiAxMUJGOworQzgzNTtDODM1OzExMEMgMTE2NiAxMUMwO0M4MzU7MTEwQyAxMTY2IDExQzA7CitDODM2O0M4MzY7MTEwQyAxMTY2IDExQzE7QzgzNjsxMTBDIDExNjYgMTFDMTsKK0M4Mzc7QzgzNzsxMTBDIDExNjYgMTFDMjtDODM3OzExMEMgMTE2NiAxMUMyOworQzgzODtDODM4OzExMEMgMTE2NztDODM4OzExMEMgMTE2NzsKK0M4Mzk7QzgzOTsxMTBDIDExNjcgMTFBODtDODM5OzExMEMgMTE2NyAxMUE4OworQzgzQTtDODNBOzExMEMgMTE2NyAxMUE5O0M4M0E7MTEwQyAxMTY3IDExQTk7CitDODNCO0M4M0I7MTEwQyAxMTY3IDExQUE7QzgzQjsxMTBDIDExNjcgMTFBQTsKK0M4M0M7QzgzQzsxMTBDIDExNjcgMTFBQjtDODNDOzExMEMgMTE2NyAxMUFCOworQzgzRDtDODNEOzExMEMgMTE2NyAxMUFDO0M4M0Q7MTEwQyAxMTY3IDExQUM7CitDODNFO0M4M0U7MTEwQyAxMTY3IDExQUQ7QzgzRTsxMTBDIDExNjcgMTFBRDsKK0M4M0Y7QzgzRjsxMTBDIDExNjcgMTFBRTtDODNGOzExMEMgMTE2NyAxMUFFOworQzg0MDtDODQwOzExMEMgMTE2NyAxMUFGO0M4NDA7MTEwQyAxMTY3IDExQUY7CitDODQxO0M4NDE7MTEwQyAxMTY3IDExQjA7Qzg0MTsxMTBDIDExNjcgMTFCMDsKK0M4NDI7Qzg0MjsxMTBDIDExNjcgMTFCMTtDODQyOzExMEMgMTE2NyAxMUIxOworQzg0MztDODQzOzExMEMgMTE2NyAxMUIyO0M4NDM7MTEwQyAxMTY3IDExQjI7CitDODQ0O0M4NDQ7MTEwQyAxMTY3IDExQjM7Qzg0NDsxMTBDIDExNjcgMTFCMzsKK0M4NDU7Qzg0NTsxMTBDIDExNjcgMTFCNDtDODQ1OzExMEMgMTE2NyAxMUI0OworQzg0NjtDODQ2OzExMEMgMTE2NyAxMUI1O0M4NDY7MTEwQyAxMTY3IDExQjU7CitDODQ3O0M4NDc7MTEwQyAxMTY3IDExQjY7Qzg0NzsxMTBDIDExNjcgMTFCNjsKK0M4NDg7Qzg0ODsxMTBDIDExNjcgMTFCNztDODQ4OzExMEMgMTE2NyAxMUI3OworQzg0OTtDODQ5OzExMEMgMTE2NyAxMUI4O0M4NDk7MTEwQyAxMTY3IDExQjg7CitDODRBO0M4NEE7MTEwQyAxMTY3IDExQjk7Qzg0QTsxMTBDIDExNjcgMTFCOTsKK0M4NEI7Qzg0QjsxMTBDIDExNjcgMTFCQTtDODRCOzExMEMgMTE2NyAxMUJBOworQzg0QztDODRDOzExMEMgMTE2NyAxMUJCO0M4NEM7MTEwQyAxMTY3IDExQkI7CitDODREO0M4NEQ7MTEwQyAxMTY3IDExQkM7Qzg0RDsxMTBDIDExNjcgMTFCQzsKK0M4NEU7Qzg0RTsxMTBDIDExNjcgMTFCRDtDODRFOzExMEMgMTE2NyAxMUJEOworQzg0RjtDODRGOzExMEMgMTE2NyAxMUJFO0M4NEY7MTEwQyAxMTY3IDExQkU7CitDODUwO0M4NTA7MTEwQyAxMTY3IDExQkY7Qzg1MDsxMTBDIDExNjcgMTFCRjsKK0M4NTE7Qzg1MTsxMTBDIDExNjcgMTFDMDtDODUxOzExMEMgMTE2NyAxMUMwOworQzg1MjtDODUyOzExMEMgMTE2NyAxMUMxO0M4NTI7MTEwQyAxMTY3IDExQzE7CitDODUzO0M4NTM7MTEwQyAxMTY3IDExQzI7Qzg1MzsxMTBDIDExNjcgMTFDMjsKK0M4NTQ7Qzg1NDsxMTBDIDExNjg7Qzg1NDsxMTBDIDExNjg7CitDODU1O0M4NTU7MTEwQyAxMTY4IDExQTg7Qzg1NTsxMTBDIDExNjggMTFBODsKK0M4NTY7Qzg1NjsxMTBDIDExNjggMTFBOTtDODU2OzExMEMgMTE2OCAxMUE5OworQzg1NztDODU3OzExMEMgMTE2OCAxMUFBO0M4NTc7MTEwQyAxMTY4IDExQUE7CitDODU4O0M4NTg7MTEwQyAxMTY4IDExQUI7Qzg1ODsxMTBDIDExNjggMTFBQjsKK0M4NTk7Qzg1OTsxMTBDIDExNjggMTFBQztDODU5OzExMEMgMTE2OCAxMUFDOworQzg1QTtDODVBOzExMEMgMTE2OCAxMUFEO0M4NUE7MTEwQyAxMTY4IDExQUQ7CitDODVCO0M4NUI7MTEwQyAxMTY4IDExQUU7Qzg1QjsxMTBDIDExNjggMTFBRTsKK0M4NUM7Qzg1QzsxMTBDIDExNjggMTFBRjtDODVDOzExMEMgMTE2OCAxMUFGOworQzg1RDtDODVEOzExMEMgMTE2OCAxMUIwO0M4NUQ7MTEwQyAxMTY4IDExQjA7CitDODVFO0M4NUU7MTEwQyAxMTY4IDExQjE7Qzg1RTsxMTBDIDExNjggMTFCMTsKK0M4NUY7Qzg1RjsxMTBDIDExNjggMTFCMjtDODVGOzExMEMgMTE2OCAxMUIyOworQzg2MDtDODYwOzExMEMgMTE2OCAxMUIzO0M4NjA7MTEwQyAxMTY4IDExQjM7CitDODYxO0M4NjE7MTEwQyAxMTY4IDExQjQ7Qzg2MTsxMTBDIDExNjggMTFCNDsKK0M4NjI7Qzg2MjsxMTBDIDExNjggMTFCNTtDODYyOzExMEMgMTE2OCAxMUI1OworQzg2MztDODYzOzExMEMgMTE2OCAxMUI2O0M4NjM7MTEwQyAxMTY4IDExQjY7CitDODY0O0M4NjQ7MTEwQyAxMTY4IDExQjc7Qzg2NDsxMTBDIDExNjggMTFCNzsKK0M4NjU7Qzg2NTsxMTBDIDExNjggMTFCODtDODY1OzExMEMgMTE2OCAxMUI4OworQzg2NjtDODY2OzExMEMgMTE2OCAxMUI5O0M4NjY7MTEwQyAxMTY4IDExQjk7CitDODY3O0M4Njc7MTEwQyAxMTY4IDExQkE7Qzg2NzsxMTBDIDExNjggMTFCQTsKK0M4Njg7Qzg2ODsxMTBDIDExNjggMTFCQjtDODY4OzExMEMgMTE2OCAxMUJCOworQzg2OTtDODY5OzExMEMgMTE2OCAxMUJDO0M4Njk7MTEwQyAxMTY4IDExQkM7CitDODZBO0M4NkE7MTEwQyAxMTY4IDExQkQ7Qzg2QTsxMTBDIDExNjggMTFCRDsKK0M4NkI7Qzg2QjsxMTBDIDExNjggMTFCRTtDODZCOzExMEMgMTE2OCAxMUJFOworQzg2QztDODZDOzExMEMgMTE2OCAxMUJGO0M4NkM7MTEwQyAxMTY4IDExQkY7CitDODZEO0M4NkQ7MTEwQyAxMTY4IDExQzA7Qzg2RDsxMTBDIDExNjggMTFDMDsKK0M4NkU7Qzg2RTsxMTBDIDExNjggMTFDMTtDODZFOzExMEMgMTE2OCAxMUMxOworQzg2RjtDODZGOzExMEMgMTE2OCAxMUMyO0M4NkY7MTEwQyAxMTY4IDExQzI7CitDODcwO0M4NzA7MTEwQyAxMTY5O0M4NzA7MTEwQyAxMTY5OworQzg3MTtDODcxOzExMEMgMTE2OSAxMUE4O0M4NzE7MTEwQyAxMTY5IDExQTg7CitDODcyO0M4NzI7MTEwQyAxMTY5IDExQTk7Qzg3MjsxMTBDIDExNjkgMTFBOTsKK0M4NzM7Qzg3MzsxMTBDIDExNjkgMTFBQTtDODczOzExMEMgMTE2OSAxMUFBOworQzg3NDtDODc0OzExMEMgMTE2OSAxMUFCO0M4NzQ7MTEwQyAxMTY5IDExQUI7CitDODc1O0M4NzU7MTEwQyAxMTY5IDExQUM7Qzg3NTsxMTBDIDExNjkgMTFBQzsKK0M4NzY7Qzg3NjsxMTBDIDExNjkgMTFBRDtDODc2OzExMEMgMTE2OSAxMUFEOworQzg3NztDODc3OzExMEMgMTE2OSAxMUFFO0M4Nzc7MTEwQyAxMTY5IDExQUU7CitDODc4O0M4Nzg7MTEwQyAxMTY5IDExQUY7Qzg3ODsxMTBDIDExNjkgMTFBRjsKK0M4Nzk7Qzg3OTsxMTBDIDExNjkgMTFCMDtDODc5OzExMEMgMTE2OSAxMUIwOworQzg3QTtDODdBOzExMEMgMTE2OSAxMUIxO0M4N0E7MTEwQyAxMTY5IDExQjE7CitDODdCO0M4N0I7MTEwQyAxMTY5IDExQjI7Qzg3QjsxMTBDIDExNjkgMTFCMjsKK0M4N0M7Qzg3QzsxMTBDIDExNjkgMTFCMztDODdDOzExMEMgMTE2OSAxMUIzOworQzg3RDtDODdEOzExMEMgMTE2OSAxMUI0O0M4N0Q7MTEwQyAxMTY5IDExQjQ7CitDODdFO0M4N0U7MTEwQyAxMTY5IDExQjU7Qzg3RTsxMTBDIDExNjkgMTFCNTsKK0M4N0Y7Qzg3RjsxMTBDIDExNjkgMTFCNjtDODdGOzExMEMgMTE2OSAxMUI2OworQzg4MDtDODgwOzExMEMgMTE2OSAxMUI3O0M4ODA7MTEwQyAxMTY5IDExQjc7CitDODgxO0M4ODE7MTEwQyAxMTY5IDExQjg7Qzg4MTsxMTBDIDExNjkgMTFCODsKK0M4ODI7Qzg4MjsxMTBDIDExNjkgMTFCOTtDODgyOzExMEMgMTE2OSAxMUI5OworQzg4MztDODgzOzExMEMgMTE2OSAxMUJBO0M4ODM7MTEwQyAxMTY5IDExQkE7CitDODg0O0M4ODQ7MTEwQyAxMTY5IDExQkI7Qzg4NDsxMTBDIDExNjkgMTFCQjsKK0M4ODU7Qzg4NTsxMTBDIDExNjkgMTFCQztDODg1OzExMEMgMTE2OSAxMUJDOworQzg4NjtDODg2OzExMEMgMTE2OSAxMUJEO0M4ODY7MTEwQyAxMTY5IDExQkQ7CitDODg3O0M4ODc7MTEwQyAxMTY5IDExQkU7Qzg4NzsxMTBDIDExNjkgMTFCRTsKK0M4ODg7Qzg4ODsxMTBDIDExNjkgMTFCRjtDODg4OzExMEMgMTE2OSAxMUJGOworQzg4OTtDODg5OzExMEMgMTE2OSAxMUMwO0M4ODk7MTEwQyAxMTY5IDExQzA7CitDODhBO0M4OEE7MTEwQyAxMTY5IDExQzE7Qzg4QTsxMTBDIDExNjkgMTFDMTsKK0M4OEI7Qzg4QjsxMTBDIDExNjkgMTFDMjtDODhCOzExMEMgMTE2OSAxMUMyOworQzg4QztDODhDOzExMEMgMTE2QTtDODhDOzExMEMgMTE2QTsKK0M4OEQ7Qzg4RDsxMTBDIDExNkEgMTFBODtDODhEOzExMEMgMTE2QSAxMUE4OworQzg4RTtDODhFOzExMEMgMTE2QSAxMUE5O0M4OEU7MTEwQyAxMTZBIDExQTk7CitDODhGO0M4OEY7MTEwQyAxMTZBIDExQUE7Qzg4RjsxMTBDIDExNkEgMTFBQTsKK0M4OTA7Qzg5MDsxMTBDIDExNkEgMTFBQjtDODkwOzExMEMgMTE2QSAxMUFCOworQzg5MTtDODkxOzExMEMgMTE2QSAxMUFDO0M4OTE7MTEwQyAxMTZBIDExQUM7CitDODkyO0M4OTI7MTEwQyAxMTZBIDExQUQ7Qzg5MjsxMTBDIDExNkEgMTFBRDsKK0M4OTM7Qzg5MzsxMTBDIDExNkEgMTFBRTtDODkzOzExMEMgMTE2QSAxMUFFOworQzg5NDtDODk0OzExMEMgMTE2QSAxMUFGO0M4OTQ7MTEwQyAxMTZBIDExQUY7CitDODk1O0M4OTU7MTEwQyAxMTZBIDExQjA7Qzg5NTsxMTBDIDExNkEgMTFCMDsKK0M4OTY7Qzg5NjsxMTBDIDExNkEgMTFCMTtDODk2OzExMEMgMTE2QSAxMUIxOworQzg5NztDODk3OzExMEMgMTE2QSAxMUIyO0M4OTc7MTEwQyAxMTZBIDExQjI7CitDODk4O0M4OTg7MTEwQyAxMTZBIDExQjM7Qzg5ODsxMTBDIDExNkEgMTFCMzsKK0M4OTk7Qzg5OTsxMTBDIDExNkEgMTFCNDtDODk5OzExMEMgMTE2QSAxMUI0OworQzg5QTtDODlBOzExMEMgMTE2QSAxMUI1O0M4OUE7MTEwQyAxMTZBIDExQjU7CitDODlCO0M4OUI7MTEwQyAxMTZBIDExQjY7Qzg5QjsxMTBDIDExNkEgMTFCNjsKK0M4OUM7Qzg5QzsxMTBDIDExNkEgMTFCNztDODlDOzExMEMgMTE2QSAxMUI3OworQzg5RDtDODlEOzExMEMgMTE2QSAxMUI4O0M4OUQ7MTEwQyAxMTZBIDExQjg7CitDODlFO0M4OUU7MTEwQyAxMTZBIDExQjk7Qzg5RTsxMTBDIDExNkEgMTFCOTsKK0M4OUY7Qzg5RjsxMTBDIDExNkEgMTFCQTtDODlGOzExMEMgMTE2QSAxMUJBOworQzhBMDtDOEEwOzExMEMgMTE2QSAxMUJCO0M4QTA7MTEwQyAxMTZBIDExQkI7CitDOEExO0M4QTE7MTEwQyAxMTZBIDExQkM7QzhBMTsxMTBDIDExNkEgMTFCQzsKK0M4QTI7QzhBMjsxMTBDIDExNkEgMTFCRDtDOEEyOzExMEMgMTE2QSAxMUJEOworQzhBMztDOEEzOzExMEMgMTE2QSAxMUJFO0M4QTM7MTEwQyAxMTZBIDExQkU7CitDOEE0O0M4QTQ7MTEwQyAxMTZBIDExQkY7QzhBNDsxMTBDIDExNkEgMTFCRjsKK0M4QTU7QzhBNTsxMTBDIDExNkEgMTFDMDtDOEE1OzExMEMgMTE2QSAxMUMwOworQzhBNjtDOEE2OzExMEMgMTE2QSAxMUMxO0M4QTY7MTEwQyAxMTZBIDExQzE7CitDOEE3O0M4QTc7MTEwQyAxMTZBIDExQzI7QzhBNzsxMTBDIDExNkEgMTFDMjsKK0M4QTg7QzhBODsxMTBDIDExNkI7QzhBODsxMTBDIDExNkI7CitDOEE5O0M4QTk7MTEwQyAxMTZCIDExQTg7QzhBOTsxMTBDIDExNkIgMTFBODsKK0M4QUE7QzhBQTsxMTBDIDExNkIgMTFBOTtDOEFBOzExMEMgMTE2QiAxMUE5OworQzhBQjtDOEFCOzExMEMgMTE2QiAxMUFBO0M4QUI7MTEwQyAxMTZCIDExQUE7CitDOEFDO0M4QUM7MTEwQyAxMTZCIDExQUI7QzhBQzsxMTBDIDExNkIgMTFBQjsKK0M4QUQ7QzhBRDsxMTBDIDExNkIgMTFBQztDOEFEOzExMEMgMTE2QiAxMUFDOworQzhBRTtDOEFFOzExMEMgMTE2QiAxMUFEO0M4QUU7MTEwQyAxMTZCIDExQUQ7CitDOEFGO0M4QUY7MTEwQyAxMTZCIDExQUU7QzhBRjsxMTBDIDExNkIgMTFBRTsKK0M4QjA7QzhCMDsxMTBDIDExNkIgMTFBRjtDOEIwOzExMEMgMTE2QiAxMUFGOworQzhCMTtDOEIxOzExMEMgMTE2QiAxMUIwO0M4QjE7MTEwQyAxMTZCIDExQjA7CitDOEIyO0M4QjI7MTEwQyAxMTZCIDExQjE7QzhCMjsxMTBDIDExNkIgMTFCMTsKK0M4QjM7QzhCMzsxMTBDIDExNkIgMTFCMjtDOEIzOzExMEMgMTE2QiAxMUIyOworQzhCNDtDOEI0OzExMEMgMTE2QiAxMUIzO0M4QjQ7MTEwQyAxMTZCIDExQjM7CitDOEI1O0M4QjU7MTEwQyAxMTZCIDExQjQ7QzhCNTsxMTBDIDExNkIgMTFCNDsKK0M4QjY7QzhCNjsxMTBDIDExNkIgMTFCNTtDOEI2OzExMEMgMTE2QiAxMUI1OworQzhCNztDOEI3OzExMEMgMTE2QiAxMUI2O0M4Qjc7MTEwQyAxMTZCIDExQjY7CitDOEI4O0M4Qjg7MTEwQyAxMTZCIDExQjc7QzhCODsxMTBDIDExNkIgMTFCNzsKK0M4Qjk7QzhCOTsxMTBDIDExNkIgMTFCODtDOEI5OzExMEMgMTE2QiAxMUI4OworQzhCQTtDOEJBOzExMEMgMTE2QiAxMUI5O0M4QkE7MTEwQyAxMTZCIDExQjk7CitDOEJCO0M4QkI7MTEwQyAxMTZCIDExQkE7QzhCQjsxMTBDIDExNkIgMTFCQTsKK0M4QkM7QzhCQzsxMTBDIDExNkIgMTFCQjtDOEJDOzExMEMgMTE2QiAxMUJCOworQzhCRDtDOEJEOzExMEMgMTE2QiAxMUJDO0M4QkQ7MTEwQyAxMTZCIDExQkM7CitDOEJFO0M4QkU7MTEwQyAxMTZCIDExQkQ7QzhCRTsxMTBDIDExNkIgMTFCRDsKK0M4QkY7QzhCRjsxMTBDIDExNkIgMTFCRTtDOEJGOzExMEMgMTE2QiAxMUJFOworQzhDMDtDOEMwOzExMEMgMTE2QiAxMUJGO0M4QzA7MTEwQyAxMTZCIDExQkY7CitDOEMxO0M4QzE7MTEwQyAxMTZCIDExQzA7QzhDMTsxMTBDIDExNkIgMTFDMDsKK0M4QzI7QzhDMjsxMTBDIDExNkIgMTFDMTtDOEMyOzExMEMgMTE2QiAxMUMxOworQzhDMztDOEMzOzExMEMgMTE2QiAxMUMyO0M4QzM7MTEwQyAxMTZCIDExQzI7CitDOEM0O0M4QzQ7MTEwQyAxMTZDO0M4QzQ7MTEwQyAxMTZDOworQzhDNTtDOEM1OzExMEMgMTE2QyAxMUE4O0M4QzU7MTEwQyAxMTZDIDExQTg7CitDOEM2O0M4QzY7MTEwQyAxMTZDIDExQTk7QzhDNjsxMTBDIDExNkMgMTFBOTsKK0M4Qzc7QzhDNzsxMTBDIDExNkMgMTFBQTtDOEM3OzExMEMgMTE2QyAxMUFBOworQzhDODtDOEM4OzExMEMgMTE2QyAxMUFCO0M4Qzg7MTEwQyAxMTZDIDExQUI7CitDOEM5O0M4Qzk7MTEwQyAxMTZDIDExQUM7QzhDOTsxMTBDIDExNkMgMTFBQzsKK0M4Q0E7QzhDQTsxMTBDIDExNkMgMTFBRDtDOENBOzExMEMgMTE2QyAxMUFEOworQzhDQjtDOENCOzExMEMgMTE2QyAxMUFFO0M4Q0I7MTEwQyAxMTZDIDExQUU7CitDOENDO0M4Q0M7MTEwQyAxMTZDIDExQUY7QzhDQzsxMTBDIDExNkMgMTFBRjsKK0M4Q0Q7QzhDRDsxMTBDIDExNkMgMTFCMDtDOENEOzExMEMgMTE2QyAxMUIwOworQzhDRTtDOENFOzExMEMgMTE2QyAxMUIxO0M4Q0U7MTEwQyAxMTZDIDExQjE7CitDOENGO0M4Q0Y7MTEwQyAxMTZDIDExQjI7QzhDRjsxMTBDIDExNkMgMTFCMjsKK0M4RDA7QzhEMDsxMTBDIDExNkMgMTFCMztDOEQwOzExMEMgMTE2QyAxMUIzOworQzhEMTtDOEQxOzExMEMgMTE2QyAxMUI0O0M4RDE7MTEwQyAxMTZDIDExQjQ7CitDOEQyO0M4RDI7MTEwQyAxMTZDIDExQjU7QzhEMjsxMTBDIDExNkMgMTFCNTsKK0M4RDM7QzhEMzsxMTBDIDExNkMgMTFCNjtDOEQzOzExMEMgMTE2QyAxMUI2OworQzhENDtDOEQ0OzExMEMgMTE2QyAxMUI3O0M4RDQ7MTEwQyAxMTZDIDExQjc7CitDOEQ1O0M4RDU7MTEwQyAxMTZDIDExQjg7QzhENTsxMTBDIDExNkMgMTFCODsKK0M4RDY7QzhENjsxMTBDIDExNkMgMTFCOTtDOEQ2OzExMEMgMTE2QyAxMUI5OworQzhENztDOEQ3OzExMEMgMTE2QyAxMUJBO0M4RDc7MTEwQyAxMTZDIDExQkE7CitDOEQ4O0M4RDg7MTEwQyAxMTZDIDExQkI7QzhEODsxMTBDIDExNkMgMTFCQjsKK0M4RDk7QzhEOTsxMTBDIDExNkMgMTFCQztDOEQ5OzExMEMgMTE2QyAxMUJDOworQzhEQTtDOERBOzExMEMgMTE2QyAxMUJEO0M4REE7MTEwQyAxMTZDIDExQkQ7CitDOERCO0M4REI7MTEwQyAxMTZDIDExQkU7QzhEQjsxMTBDIDExNkMgMTFCRTsKK0M4REM7QzhEQzsxMTBDIDExNkMgMTFCRjtDOERDOzExMEMgMTE2QyAxMUJGOworQzhERDtDOEREOzExMEMgMTE2QyAxMUMwO0M4REQ7MTEwQyAxMTZDIDExQzA7CitDOERFO0M4REU7MTEwQyAxMTZDIDExQzE7QzhERTsxMTBDIDExNkMgMTFDMTsKK0M4REY7QzhERjsxMTBDIDExNkMgMTFDMjtDOERGOzExMEMgMTE2QyAxMUMyOworQzhFMDtDOEUwOzExMEMgMTE2RDtDOEUwOzExMEMgMTE2RDsKK0M4RTE7QzhFMTsxMTBDIDExNkQgMTFBODtDOEUxOzExMEMgMTE2RCAxMUE4OworQzhFMjtDOEUyOzExMEMgMTE2RCAxMUE5O0M4RTI7MTEwQyAxMTZEIDExQTk7CitDOEUzO0M4RTM7MTEwQyAxMTZEIDExQUE7QzhFMzsxMTBDIDExNkQgMTFBQTsKK0M4RTQ7QzhFNDsxMTBDIDExNkQgMTFBQjtDOEU0OzExMEMgMTE2RCAxMUFCOworQzhFNTtDOEU1OzExMEMgMTE2RCAxMUFDO0M4RTU7MTEwQyAxMTZEIDExQUM7CitDOEU2O0M4RTY7MTEwQyAxMTZEIDExQUQ7QzhFNjsxMTBDIDExNkQgMTFBRDsKK0M4RTc7QzhFNzsxMTBDIDExNkQgMTFBRTtDOEU3OzExMEMgMTE2RCAxMUFFOworQzhFODtDOEU4OzExMEMgMTE2RCAxMUFGO0M4RTg7MTEwQyAxMTZEIDExQUY7CitDOEU5O0M4RTk7MTEwQyAxMTZEIDExQjA7QzhFOTsxMTBDIDExNkQgMTFCMDsKK0M4RUE7QzhFQTsxMTBDIDExNkQgMTFCMTtDOEVBOzExMEMgMTE2RCAxMUIxOworQzhFQjtDOEVCOzExMEMgMTE2RCAxMUIyO0M4RUI7MTEwQyAxMTZEIDExQjI7CitDOEVDO0M4RUM7MTEwQyAxMTZEIDExQjM7QzhFQzsxMTBDIDExNkQgMTFCMzsKK0M4RUQ7QzhFRDsxMTBDIDExNkQgMTFCNDtDOEVEOzExMEMgMTE2RCAxMUI0OworQzhFRTtDOEVFOzExMEMgMTE2RCAxMUI1O0M4RUU7MTEwQyAxMTZEIDExQjU7CitDOEVGO0M4RUY7MTEwQyAxMTZEIDExQjY7QzhFRjsxMTBDIDExNkQgMTFCNjsKK0M4RjA7QzhGMDsxMTBDIDExNkQgMTFCNztDOEYwOzExMEMgMTE2RCAxMUI3OworQzhGMTtDOEYxOzExMEMgMTE2RCAxMUI4O0M4RjE7MTEwQyAxMTZEIDExQjg7CitDOEYyO0M4RjI7MTEwQyAxMTZEIDExQjk7QzhGMjsxMTBDIDExNkQgMTFCOTsKK0M4RjM7QzhGMzsxMTBDIDExNkQgMTFCQTtDOEYzOzExMEMgMTE2RCAxMUJBOworQzhGNDtDOEY0OzExMEMgMTE2RCAxMUJCO0M4RjQ7MTEwQyAxMTZEIDExQkI7CitDOEY1O0M4RjU7MTEwQyAxMTZEIDExQkM7QzhGNTsxMTBDIDExNkQgMTFCQzsKK0M4RjY7QzhGNjsxMTBDIDExNkQgMTFCRDtDOEY2OzExMEMgMTE2RCAxMUJEOworQzhGNztDOEY3OzExMEMgMTE2RCAxMUJFO0M4Rjc7MTEwQyAxMTZEIDExQkU7CitDOEY4O0M4Rjg7MTEwQyAxMTZEIDExQkY7QzhGODsxMTBDIDExNkQgMTFCRjsKK0M4Rjk7QzhGOTsxMTBDIDExNkQgMTFDMDtDOEY5OzExMEMgMTE2RCAxMUMwOworQzhGQTtDOEZBOzExMEMgMTE2RCAxMUMxO0M4RkE7MTEwQyAxMTZEIDExQzE7CitDOEZCO0M4RkI7MTEwQyAxMTZEIDExQzI7QzhGQjsxMTBDIDExNkQgMTFDMjsKK0M4RkM7QzhGQzsxMTBDIDExNkU7QzhGQzsxMTBDIDExNkU7CitDOEZEO0M4RkQ7MTEwQyAxMTZFIDExQTg7QzhGRDsxMTBDIDExNkUgMTFBODsKK0M4RkU7QzhGRTsxMTBDIDExNkUgMTFBOTtDOEZFOzExMEMgMTE2RSAxMUE5OworQzhGRjtDOEZGOzExMEMgMTE2RSAxMUFBO0M4RkY7MTEwQyAxMTZFIDExQUE7CitDOTAwO0M5MDA7MTEwQyAxMTZFIDExQUI7QzkwMDsxMTBDIDExNkUgMTFBQjsKK0M5MDE7QzkwMTsxMTBDIDExNkUgMTFBQztDOTAxOzExMEMgMTE2RSAxMUFDOworQzkwMjtDOTAyOzExMEMgMTE2RSAxMUFEO0M5MDI7MTEwQyAxMTZFIDExQUQ7CitDOTAzO0M5MDM7MTEwQyAxMTZFIDExQUU7QzkwMzsxMTBDIDExNkUgMTFBRTsKK0M5MDQ7QzkwNDsxMTBDIDExNkUgMTFBRjtDOTA0OzExMEMgMTE2RSAxMUFGOworQzkwNTtDOTA1OzExMEMgMTE2RSAxMUIwO0M5MDU7MTEwQyAxMTZFIDExQjA7CitDOTA2O0M5MDY7MTEwQyAxMTZFIDExQjE7QzkwNjsxMTBDIDExNkUgMTFCMTsKK0M5MDc7QzkwNzsxMTBDIDExNkUgMTFCMjtDOTA3OzExMEMgMTE2RSAxMUIyOworQzkwODtDOTA4OzExMEMgMTE2RSAxMUIzO0M5MDg7MTEwQyAxMTZFIDExQjM7CitDOTA5O0M5MDk7MTEwQyAxMTZFIDExQjQ7QzkwOTsxMTBDIDExNkUgMTFCNDsKK0M5MEE7QzkwQTsxMTBDIDExNkUgMTFCNTtDOTBBOzExMEMgMTE2RSAxMUI1OworQzkwQjtDOTBCOzExMEMgMTE2RSAxMUI2O0M5MEI7MTEwQyAxMTZFIDExQjY7CitDOTBDO0M5MEM7MTEwQyAxMTZFIDExQjc7QzkwQzsxMTBDIDExNkUgMTFCNzsKK0M5MEQ7QzkwRDsxMTBDIDExNkUgMTFCODtDOTBEOzExMEMgMTE2RSAxMUI4OworQzkwRTtDOTBFOzExMEMgMTE2RSAxMUI5O0M5MEU7MTEwQyAxMTZFIDExQjk7CitDOTBGO0M5MEY7MTEwQyAxMTZFIDExQkE7QzkwRjsxMTBDIDExNkUgMTFCQTsKK0M5MTA7QzkxMDsxMTBDIDExNkUgMTFCQjtDOTEwOzExMEMgMTE2RSAxMUJCOworQzkxMTtDOTExOzExMEMgMTE2RSAxMUJDO0M5MTE7MTEwQyAxMTZFIDExQkM7CitDOTEyO0M5MTI7MTEwQyAxMTZFIDExQkQ7QzkxMjsxMTBDIDExNkUgMTFCRDsKK0M5MTM7QzkxMzsxMTBDIDExNkUgMTFCRTtDOTEzOzExMEMgMTE2RSAxMUJFOworQzkxNDtDOTE0OzExMEMgMTE2RSAxMUJGO0M5MTQ7MTEwQyAxMTZFIDExQkY7CitDOTE1O0M5MTU7MTEwQyAxMTZFIDExQzA7QzkxNTsxMTBDIDExNkUgMTFDMDsKK0M5MTY7QzkxNjsxMTBDIDExNkUgMTFDMTtDOTE2OzExMEMgMTE2RSAxMUMxOworQzkxNztDOTE3OzExMEMgMTE2RSAxMUMyO0M5MTc7MTEwQyAxMTZFIDExQzI7CitDOTE4O0M5MTg7MTEwQyAxMTZGO0M5MTg7MTEwQyAxMTZGOworQzkxOTtDOTE5OzExMEMgMTE2RiAxMUE4O0M5MTk7MTEwQyAxMTZGIDExQTg7CitDOTFBO0M5MUE7MTEwQyAxMTZGIDExQTk7QzkxQTsxMTBDIDExNkYgMTFBOTsKK0M5MUI7QzkxQjsxMTBDIDExNkYgMTFBQTtDOTFCOzExMEMgMTE2RiAxMUFBOworQzkxQztDOTFDOzExMEMgMTE2RiAxMUFCO0M5MUM7MTEwQyAxMTZGIDExQUI7CitDOTFEO0M5MUQ7MTEwQyAxMTZGIDExQUM7QzkxRDsxMTBDIDExNkYgMTFBQzsKK0M5MUU7QzkxRTsxMTBDIDExNkYgMTFBRDtDOTFFOzExMEMgMTE2RiAxMUFEOworQzkxRjtDOTFGOzExMEMgMTE2RiAxMUFFO0M5MUY7MTEwQyAxMTZGIDExQUU7CitDOTIwO0M5MjA7MTEwQyAxMTZGIDExQUY7QzkyMDsxMTBDIDExNkYgMTFBRjsKK0M5MjE7QzkyMTsxMTBDIDExNkYgMTFCMDtDOTIxOzExMEMgMTE2RiAxMUIwOworQzkyMjtDOTIyOzExMEMgMTE2RiAxMUIxO0M5MjI7MTEwQyAxMTZGIDExQjE7CitDOTIzO0M5MjM7MTEwQyAxMTZGIDExQjI7QzkyMzsxMTBDIDExNkYgMTFCMjsKK0M5MjQ7QzkyNDsxMTBDIDExNkYgMTFCMztDOTI0OzExMEMgMTE2RiAxMUIzOworQzkyNTtDOTI1OzExMEMgMTE2RiAxMUI0O0M5MjU7MTEwQyAxMTZGIDExQjQ7CitDOTI2O0M5MjY7MTEwQyAxMTZGIDExQjU7QzkyNjsxMTBDIDExNkYgMTFCNTsKK0M5Mjc7QzkyNzsxMTBDIDExNkYgMTFCNjtDOTI3OzExMEMgMTE2RiAxMUI2OworQzkyODtDOTI4OzExMEMgMTE2RiAxMUI3O0M5Mjg7MTEwQyAxMTZGIDExQjc7CitDOTI5O0M5Mjk7MTEwQyAxMTZGIDExQjg7QzkyOTsxMTBDIDExNkYgMTFCODsKK0M5MkE7QzkyQTsxMTBDIDExNkYgMTFCOTtDOTJBOzExMEMgMTE2RiAxMUI5OworQzkyQjtDOTJCOzExMEMgMTE2RiAxMUJBO0M5MkI7MTEwQyAxMTZGIDExQkE7CitDOTJDO0M5MkM7MTEwQyAxMTZGIDExQkI7QzkyQzsxMTBDIDExNkYgMTFCQjsKK0M5MkQ7QzkyRDsxMTBDIDExNkYgMTFCQztDOTJEOzExMEMgMTE2RiAxMUJDOworQzkyRTtDOTJFOzExMEMgMTE2RiAxMUJEO0M5MkU7MTEwQyAxMTZGIDExQkQ7CitDOTJGO0M5MkY7MTEwQyAxMTZGIDExQkU7QzkyRjsxMTBDIDExNkYgMTFCRTsKK0M5MzA7QzkzMDsxMTBDIDExNkYgMTFCRjtDOTMwOzExMEMgMTE2RiAxMUJGOworQzkzMTtDOTMxOzExMEMgMTE2RiAxMUMwO0M5MzE7MTEwQyAxMTZGIDExQzA7CitDOTMyO0M5MzI7MTEwQyAxMTZGIDExQzE7QzkzMjsxMTBDIDExNkYgMTFDMTsKK0M5MzM7QzkzMzsxMTBDIDExNkYgMTFDMjtDOTMzOzExMEMgMTE2RiAxMUMyOworQzkzNDtDOTM0OzExMEMgMTE3MDtDOTM0OzExMEMgMTE3MDsKK0M5MzU7QzkzNTsxMTBDIDExNzAgMTFBODtDOTM1OzExMEMgMTE3MCAxMUE4OworQzkzNjtDOTM2OzExMEMgMTE3MCAxMUE5O0M5MzY7MTEwQyAxMTcwIDExQTk7CitDOTM3O0M5Mzc7MTEwQyAxMTcwIDExQUE7QzkzNzsxMTBDIDExNzAgMTFBQTsKK0M5Mzg7QzkzODsxMTBDIDExNzAgMTFBQjtDOTM4OzExMEMgMTE3MCAxMUFCOworQzkzOTtDOTM5OzExMEMgMTE3MCAxMUFDO0M5Mzk7MTEwQyAxMTcwIDExQUM7CitDOTNBO0M5M0E7MTEwQyAxMTcwIDExQUQ7QzkzQTsxMTBDIDExNzAgMTFBRDsKK0M5M0I7QzkzQjsxMTBDIDExNzAgMTFBRTtDOTNCOzExMEMgMTE3MCAxMUFFOworQzkzQztDOTNDOzExMEMgMTE3MCAxMUFGO0M5M0M7MTEwQyAxMTcwIDExQUY7CitDOTNEO0M5M0Q7MTEwQyAxMTcwIDExQjA7QzkzRDsxMTBDIDExNzAgMTFCMDsKK0M5M0U7QzkzRTsxMTBDIDExNzAgMTFCMTtDOTNFOzExMEMgMTE3MCAxMUIxOworQzkzRjtDOTNGOzExMEMgMTE3MCAxMUIyO0M5M0Y7MTEwQyAxMTcwIDExQjI7CitDOTQwO0M5NDA7MTEwQyAxMTcwIDExQjM7Qzk0MDsxMTBDIDExNzAgMTFCMzsKK0M5NDE7Qzk0MTsxMTBDIDExNzAgMTFCNDtDOTQxOzExMEMgMTE3MCAxMUI0OworQzk0MjtDOTQyOzExMEMgMTE3MCAxMUI1O0M5NDI7MTEwQyAxMTcwIDExQjU7CitDOTQzO0M5NDM7MTEwQyAxMTcwIDExQjY7Qzk0MzsxMTBDIDExNzAgMTFCNjsKK0M5NDQ7Qzk0NDsxMTBDIDExNzAgMTFCNztDOTQ0OzExMEMgMTE3MCAxMUI3OworQzk0NTtDOTQ1OzExMEMgMTE3MCAxMUI4O0M5NDU7MTEwQyAxMTcwIDExQjg7CitDOTQ2O0M5NDY7MTEwQyAxMTcwIDExQjk7Qzk0NjsxMTBDIDExNzAgMTFCOTsKK0M5NDc7Qzk0NzsxMTBDIDExNzAgMTFCQTtDOTQ3OzExMEMgMTE3MCAxMUJBOworQzk0ODtDOTQ4OzExMEMgMTE3MCAxMUJCO0M5NDg7MTEwQyAxMTcwIDExQkI7CitDOTQ5O0M5NDk7MTEwQyAxMTcwIDExQkM7Qzk0OTsxMTBDIDExNzAgMTFCQzsKK0M5NEE7Qzk0QTsxMTBDIDExNzAgMTFCRDtDOTRBOzExMEMgMTE3MCAxMUJEOworQzk0QjtDOTRCOzExMEMgMTE3MCAxMUJFO0M5NEI7MTEwQyAxMTcwIDExQkU7CitDOTRDO0M5NEM7MTEwQyAxMTcwIDExQkY7Qzk0QzsxMTBDIDExNzAgMTFCRjsKK0M5NEQ7Qzk0RDsxMTBDIDExNzAgMTFDMDtDOTREOzExMEMgMTE3MCAxMUMwOworQzk0RTtDOTRFOzExMEMgMTE3MCAxMUMxO0M5NEU7MTEwQyAxMTcwIDExQzE7CitDOTRGO0M5NEY7MTEwQyAxMTcwIDExQzI7Qzk0RjsxMTBDIDExNzAgMTFDMjsKK0M5NTA7Qzk1MDsxMTBDIDExNzE7Qzk1MDsxMTBDIDExNzE7CitDOTUxO0M5NTE7MTEwQyAxMTcxIDExQTg7Qzk1MTsxMTBDIDExNzEgMTFBODsKK0M5NTI7Qzk1MjsxMTBDIDExNzEgMTFBOTtDOTUyOzExMEMgMTE3MSAxMUE5OworQzk1MztDOTUzOzExMEMgMTE3MSAxMUFBO0M5NTM7MTEwQyAxMTcxIDExQUE7CitDOTU0O0M5NTQ7MTEwQyAxMTcxIDExQUI7Qzk1NDsxMTBDIDExNzEgMTFBQjsKK0M5NTU7Qzk1NTsxMTBDIDExNzEgMTFBQztDOTU1OzExMEMgMTE3MSAxMUFDOworQzk1NjtDOTU2OzExMEMgMTE3MSAxMUFEO0M5NTY7MTEwQyAxMTcxIDExQUQ7CitDOTU3O0M5NTc7MTEwQyAxMTcxIDExQUU7Qzk1NzsxMTBDIDExNzEgMTFBRTsKK0M5NTg7Qzk1ODsxMTBDIDExNzEgMTFBRjtDOTU4OzExMEMgMTE3MSAxMUFGOworQzk1OTtDOTU5OzExMEMgMTE3MSAxMUIwO0M5NTk7MTEwQyAxMTcxIDExQjA7CitDOTVBO0M5NUE7MTEwQyAxMTcxIDExQjE7Qzk1QTsxMTBDIDExNzEgMTFCMTsKK0M5NUI7Qzk1QjsxMTBDIDExNzEgMTFCMjtDOTVCOzExMEMgMTE3MSAxMUIyOworQzk1QztDOTVDOzExMEMgMTE3MSAxMUIzO0M5NUM7MTEwQyAxMTcxIDExQjM7CitDOTVEO0M5NUQ7MTEwQyAxMTcxIDExQjQ7Qzk1RDsxMTBDIDExNzEgMTFCNDsKK0M5NUU7Qzk1RTsxMTBDIDExNzEgMTFCNTtDOTVFOzExMEMgMTE3MSAxMUI1OworQzk1RjtDOTVGOzExMEMgMTE3MSAxMUI2O0M5NUY7MTEwQyAxMTcxIDExQjY7CitDOTYwO0M5NjA7MTEwQyAxMTcxIDExQjc7Qzk2MDsxMTBDIDExNzEgMTFCNzsKK0M5NjE7Qzk2MTsxMTBDIDExNzEgMTFCODtDOTYxOzExMEMgMTE3MSAxMUI4OworQzk2MjtDOTYyOzExMEMgMTE3MSAxMUI5O0M5NjI7MTEwQyAxMTcxIDExQjk7CitDOTYzO0M5NjM7MTEwQyAxMTcxIDExQkE7Qzk2MzsxMTBDIDExNzEgMTFCQTsKK0M5NjQ7Qzk2NDsxMTBDIDExNzEgMTFCQjtDOTY0OzExMEMgMTE3MSAxMUJCOworQzk2NTtDOTY1OzExMEMgMTE3MSAxMUJDO0M5NjU7MTEwQyAxMTcxIDExQkM7CitDOTY2O0M5NjY7MTEwQyAxMTcxIDExQkQ7Qzk2NjsxMTBDIDExNzEgMTFCRDsKK0M5Njc7Qzk2NzsxMTBDIDExNzEgMTFCRTtDOTY3OzExMEMgMTE3MSAxMUJFOworQzk2ODtDOTY4OzExMEMgMTE3MSAxMUJGO0M5Njg7MTEwQyAxMTcxIDExQkY7CitDOTY5O0M5Njk7MTEwQyAxMTcxIDExQzA7Qzk2OTsxMTBDIDExNzEgMTFDMDsKK0M5NkE7Qzk2QTsxMTBDIDExNzEgMTFDMTtDOTZBOzExMEMgMTE3MSAxMUMxOworQzk2QjtDOTZCOzExMEMgMTE3MSAxMUMyO0M5NkI7MTEwQyAxMTcxIDExQzI7CitDOTZDO0M5NkM7MTEwQyAxMTcyO0M5NkM7MTEwQyAxMTcyOworQzk2RDtDOTZEOzExMEMgMTE3MiAxMUE4O0M5NkQ7MTEwQyAxMTcyIDExQTg7CitDOTZFO0M5NkU7MTEwQyAxMTcyIDExQTk7Qzk2RTsxMTBDIDExNzIgMTFBOTsKK0M5NkY7Qzk2RjsxMTBDIDExNzIgMTFBQTtDOTZGOzExMEMgMTE3MiAxMUFBOworQzk3MDtDOTcwOzExMEMgMTE3MiAxMUFCO0M5NzA7MTEwQyAxMTcyIDExQUI7CitDOTcxO0M5NzE7MTEwQyAxMTcyIDExQUM7Qzk3MTsxMTBDIDExNzIgMTFBQzsKK0M5NzI7Qzk3MjsxMTBDIDExNzIgMTFBRDtDOTcyOzExMEMgMTE3MiAxMUFEOworQzk3MztDOTczOzExMEMgMTE3MiAxMUFFO0M5NzM7MTEwQyAxMTcyIDExQUU7CitDOTc0O0M5NzQ7MTEwQyAxMTcyIDExQUY7Qzk3NDsxMTBDIDExNzIgMTFBRjsKK0M5NzU7Qzk3NTsxMTBDIDExNzIgMTFCMDtDOTc1OzExMEMgMTE3MiAxMUIwOworQzk3NjtDOTc2OzExMEMgMTE3MiAxMUIxO0M5NzY7MTEwQyAxMTcyIDExQjE7CitDOTc3O0M5Nzc7MTEwQyAxMTcyIDExQjI7Qzk3NzsxMTBDIDExNzIgMTFCMjsKK0M5Nzg7Qzk3ODsxMTBDIDExNzIgMTFCMztDOTc4OzExMEMgMTE3MiAxMUIzOworQzk3OTtDOTc5OzExMEMgMTE3MiAxMUI0O0M5Nzk7MTEwQyAxMTcyIDExQjQ7CitDOTdBO0M5N0E7MTEwQyAxMTcyIDExQjU7Qzk3QTsxMTBDIDExNzIgMTFCNTsKK0M5N0I7Qzk3QjsxMTBDIDExNzIgMTFCNjtDOTdCOzExMEMgMTE3MiAxMUI2OworQzk3QztDOTdDOzExMEMgMTE3MiAxMUI3O0M5N0M7MTEwQyAxMTcyIDExQjc7CitDOTdEO0M5N0Q7MTEwQyAxMTcyIDExQjg7Qzk3RDsxMTBDIDExNzIgMTFCODsKK0M5N0U7Qzk3RTsxMTBDIDExNzIgMTFCOTtDOTdFOzExMEMgMTE3MiAxMUI5OworQzk3RjtDOTdGOzExMEMgMTE3MiAxMUJBO0M5N0Y7MTEwQyAxMTcyIDExQkE7CitDOTgwO0M5ODA7MTEwQyAxMTcyIDExQkI7Qzk4MDsxMTBDIDExNzIgMTFCQjsKK0M5ODE7Qzk4MTsxMTBDIDExNzIgMTFCQztDOTgxOzExMEMgMTE3MiAxMUJDOworQzk4MjtDOTgyOzExMEMgMTE3MiAxMUJEO0M5ODI7MTEwQyAxMTcyIDExQkQ7CitDOTgzO0M5ODM7MTEwQyAxMTcyIDExQkU7Qzk4MzsxMTBDIDExNzIgMTFCRTsKK0M5ODQ7Qzk4NDsxMTBDIDExNzIgMTFCRjtDOTg0OzExMEMgMTE3MiAxMUJGOworQzk4NTtDOTg1OzExMEMgMTE3MiAxMUMwO0M5ODU7MTEwQyAxMTcyIDExQzA7CitDOTg2O0M5ODY7MTEwQyAxMTcyIDExQzE7Qzk4NjsxMTBDIDExNzIgMTFDMTsKK0M5ODc7Qzk4NzsxMTBDIDExNzIgMTFDMjtDOTg3OzExMEMgMTE3MiAxMUMyOworQzk4ODtDOTg4OzExMEMgMTE3MztDOTg4OzExMEMgMTE3MzsKK0M5ODk7Qzk4OTsxMTBDIDExNzMgMTFBODtDOTg5OzExMEMgMTE3MyAxMUE4OworQzk4QTtDOThBOzExMEMgMTE3MyAxMUE5O0M5OEE7MTEwQyAxMTczIDExQTk7CitDOThCO0M5OEI7MTEwQyAxMTczIDExQUE7Qzk4QjsxMTBDIDExNzMgMTFBQTsKK0M5OEM7Qzk4QzsxMTBDIDExNzMgMTFBQjtDOThDOzExMEMgMTE3MyAxMUFCOworQzk4RDtDOThEOzExMEMgMTE3MyAxMUFDO0M5OEQ7MTEwQyAxMTczIDExQUM7CitDOThFO0M5OEU7MTEwQyAxMTczIDExQUQ7Qzk4RTsxMTBDIDExNzMgMTFBRDsKK0M5OEY7Qzk4RjsxMTBDIDExNzMgMTFBRTtDOThGOzExMEMgMTE3MyAxMUFFOworQzk5MDtDOTkwOzExMEMgMTE3MyAxMUFGO0M5OTA7MTEwQyAxMTczIDExQUY7CitDOTkxO0M5OTE7MTEwQyAxMTczIDExQjA7Qzk5MTsxMTBDIDExNzMgMTFCMDsKK0M5OTI7Qzk5MjsxMTBDIDExNzMgMTFCMTtDOTkyOzExMEMgMTE3MyAxMUIxOworQzk5MztDOTkzOzExMEMgMTE3MyAxMUIyO0M5OTM7MTEwQyAxMTczIDExQjI7CitDOTk0O0M5OTQ7MTEwQyAxMTczIDExQjM7Qzk5NDsxMTBDIDExNzMgMTFCMzsKK0M5OTU7Qzk5NTsxMTBDIDExNzMgMTFCNDtDOTk1OzExMEMgMTE3MyAxMUI0OworQzk5NjtDOTk2OzExMEMgMTE3MyAxMUI1O0M5OTY7MTEwQyAxMTczIDExQjU7CitDOTk3O0M5OTc7MTEwQyAxMTczIDExQjY7Qzk5NzsxMTBDIDExNzMgMTFCNjsKK0M5OTg7Qzk5ODsxMTBDIDExNzMgMTFCNztDOTk4OzExMEMgMTE3MyAxMUI3OworQzk5OTtDOTk5OzExMEMgMTE3MyAxMUI4O0M5OTk7MTEwQyAxMTczIDExQjg7CitDOTlBO0M5OUE7MTEwQyAxMTczIDExQjk7Qzk5QTsxMTBDIDExNzMgMTFCOTsKK0M5OUI7Qzk5QjsxMTBDIDExNzMgMTFCQTtDOTlCOzExMEMgMTE3MyAxMUJBOworQzk5QztDOTlDOzExMEMgMTE3MyAxMUJCO0M5OUM7MTEwQyAxMTczIDExQkI7CitDOTlEO0M5OUQ7MTEwQyAxMTczIDExQkM7Qzk5RDsxMTBDIDExNzMgMTFCQzsKK0M5OUU7Qzk5RTsxMTBDIDExNzMgMTFCRDtDOTlFOzExMEMgMTE3MyAxMUJEOworQzk5RjtDOTlGOzExMEMgMTE3MyAxMUJFO0M5OUY7MTEwQyAxMTczIDExQkU7CitDOUEwO0M5QTA7MTEwQyAxMTczIDExQkY7QzlBMDsxMTBDIDExNzMgMTFCRjsKK0M5QTE7QzlBMTsxMTBDIDExNzMgMTFDMDtDOUExOzExMEMgMTE3MyAxMUMwOworQzlBMjtDOUEyOzExMEMgMTE3MyAxMUMxO0M5QTI7MTEwQyAxMTczIDExQzE7CitDOUEzO0M5QTM7MTEwQyAxMTczIDExQzI7QzlBMzsxMTBDIDExNzMgMTFDMjsKK0M5QTQ7QzlBNDsxMTBDIDExNzQ7QzlBNDsxMTBDIDExNzQ7CitDOUE1O0M5QTU7MTEwQyAxMTc0IDExQTg7QzlBNTsxMTBDIDExNzQgMTFBODsKK0M5QTY7QzlBNjsxMTBDIDExNzQgMTFBOTtDOUE2OzExMEMgMTE3NCAxMUE5OworQzlBNztDOUE3OzExMEMgMTE3NCAxMUFBO0M5QTc7MTEwQyAxMTc0IDExQUE7CitDOUE4O0M5QTg7MTEwQyAxMTc0IDExQUI7QzlBODsxMTBDIDExNzQgMTFBQjsKK0M5QTk7QzlBOTsxMTBDIDExNzQgMTFBQztDOUE5OzExMEMgMTE3NCAxMUFDOworQzlBQTtDOUFBOzExMEMgMTE3NCAxMUFEO0M5QUE7MTEwQyAxMTc0IDExQUQ7CitDOUFCO0M5QUI7MTEwQyAxMTc0IDExQUU7QzlBQjsxMTBDIDExNzQgMTFBRTsKK0M5QUM7QzlBQzsxMTBDIDExNzQgMTFBRjtDOUFDOzExMEMgMTE3NCAxMUFGOworQzlBRDtDOUFEOzExMEMgMTE3NCAxMUIwO0M5QUQ7MTEwQyAxMTc0IDExQjA7CitDOUFFO0M5QUU7MTEwQyAxMTc0IDExQjE7QzlBRTsxMTBDIDExNzQgMTFCMTsKK0M5QUY7QzlBRjsxMTBDIDExNzQgMTFCMjtDOUFGOzExMEMgMTE3NCAxMUIyOworQzlCMDtDOUIwOzExMEMgMTE3NCAxMUIzO0M5QjA7MTEwQyAxMTc0IDExQjM7CitDOUIxO0M5QjE7MTEwQyAxMTc0IDExQjQ7QzlCMTsxMTBDIDExNzQgMTFCNDsKK0M5QjI7QzlCMjsxMTBDIDExNzQgMTFCNTtDOUIyOzExMEMgMTE3NCAxMUI1OworQzlCMztDOUIzOzExMEMgMTE3NCAxMUI2O0M5QjM7MTEwQyAxMTc0IDExQjY7CitDOUI0O0M5QjQ7MTEwQyAxMTc0IDExQjc7QzlCNDsxMTBDIDExNzQgMTFCNzsKK0M5QjU7QzlCNTsxMTBDIDExNzQgMTFCODtDOUI1OzExMEMgMTE3NCAxMUI4OworQzlCNjtDOUI2OzExMEMgMTE3NCAxMUI5O0M5QjY7MTEwQyAxMTc0IDExQjk7CitDOUI3O0M5Qjc7MTEwQyAxMTc0IDExQkE7QzlCNzsxMTBDIDExNzQgMTFCQTsKK0M5Qjg7QzlCODsxMTBDIDExNzQgMTFCQjtDOUI4OzExMEMgMTE3NCAxMUJCOworQzlCOTtDOUI5OzExMEMgMTE3NCAxMUJDO0M5Qjk7MTEwQyAxMTc0IDExQkM7CitDOUJBO0M5QkE7MTEwQyAxMTc0IDExQkQ7QzlCQTsxMTBDIDExNzQgMTFCRDsKK0M5QkI7QzlCQjsxMTBDIDExNzQgMTFCRTtDOUJCOzExMEMgMTE3NCAxMUJFOworQzlCQztDOUJDOzExMEMgMTE3NCAxMUJGO0M5QkM7MTEwQyAxMTc0IDExQkY7CitDOUJEO0M5QkQ7MTEwQyAxMTc0IDExQzA7QzlCRDsxMTBDIDExNzQgMTFDMDsKK0M5QkU7QzlCRTsxMTBDIDExNzQgMTFDMTtDOUJFOzExMEMgMTE3NCAxMUMxOworQzlCRjtDOUJGOzExMEMgMTE3NCAxMUMyO0M5QkY7MTEwQyAxMTc0IDExQzI7CitDOUMwO0M5QzA7MTEwQyAxMTc1O0M5QzA7MTEwQyAxMTc1OworQzlDMTtDOUMxOzExMEMgMTE3NSAxMUE4O0M5QzE7MTEwQyAxMTc1IDExQTg7CitDOUMyO0M5QzI7MTEwQyAxMTc1IDExQTk7QzlDMjsxMTBDIDExNzUgMTFBOTsKK0M5QzM7QzlDMzsxMTBDIDExNzUgMTFBQTtDOUMzOzExMEMgMTE3NSAxMUFBOworQzlDNDtDOUM0OzExMEMgMTE3NSAxMUFCO0M5QzQ7MTEwQyAxMTc1IDExQUI7CitDOUM1O0M5QzU7MTEwQyAxMTc1IDExQUM7QzlDNTsxMTBDIDExNzUgMTFBQzsKK0M5QzY7QzlDNjsxMTBDIDExNzUgMTFBRDtDOUM2OzExMEMgMTE3NSAxMUFEOworQzlDNztDOUM3OzExMEMgMTE3NSAxMUFFO0M5Qzc7MTEwQyAxMTc1IDExQUU7CitDOUM4O0M5Qzg7MTEwQyAxMTc1IDExQUY7QzlDODsxMTBDIDExNzUgMTFBRjsKK0M5Qzk7QzlDOTsxMTBDIDExNzUgMTFCMDtDOUM5OzExMEMgMTE3NSAxMUIwOworQzlDQTtDOUNBOzExMEMgMTE3NSAxMUIxO0M5Q0E7MTEwQyAxMTc1IDExQjE7CitDOUNCO0M5Q0I7MTEwQyAxMTc1IDExQjI7QzlDQjsxMTBDIDExNzUgMTFCMjsKK0M5Q0M7QzlDQzsxMTBDIDExNzUgMTFCMztDOUNDOzExMEMgMTE3NSAxMUIzOworQzlDRDtDOUNEOzExMEMgMTE3NSAxMUI0O0M5Q0Q7MTEwQyAxMTc1IDExQjQ7CitDOUNFO0M5Q0U7MTEwQyAxMTc1IDExQjU7QzlDRTsxMTBDIDExNzUgMTFCNTsKK0M5Q0Y7QzlDRjsxMTBDIDExNzUgMTFCNjtDOUNGOzExMEMgMTE3NSAxMUI2OworQzlEMDtDOUQwOzExMEMgMTE3NSAxMUI3O0M5RDA7MTEwQyAxMTc1IDExQjc7CitDOUQxO0M5RDE7MTEwQyAxMTc1IDExQjg7QzlEMTsxMTBDIDExNzUgMTFCODsKK0M5RDI7QzlEMjsxMTBDIDExNzUgMTFCOTtDOUQyOzExMEMgMTE3NSAxMUI5OworQzlEMztDOUQzOzExMEMgMTE3NSAxMUJBO0M5RDM7MTEwQyAxMTc1IDExQkE7CitDOUQ0O0M5RDQ7MTEwQyAxMTc1IDExQkI7QzlENDsxMTBDIDExNzUgMTFCQjsKK0M5RDU7QzlENTsxMTBDIDExNzUgMTFCQztDOUQ1OzExMEMgMTE3NSAxMUJDOworQzlENjtDOUQ2OzExMEMgMTE3NSAxMUJEO0M5RDY7MTEwQyAxMTc1IDExQkQ7CitDOUQ3O0M5RDc7MTEwQyAxMTc1IDExQkU7QzlENzsxMTBDIDExNzUgMTFCRTsKK0M5RDg7QzlEODsxMTBDIDExNzUgMTFCRjtDOUQ4OzExMEMgMTE3NSAxMUJGOworQzlEOTtDOUQ5OzExMEMgMTE3NSAxMUMwO0M5RDk7MTEwQyAxMTc1IDExQzA7CitDOURBO0M5REE7MTEwQyAxMTc1IDExQzE7QzlEQTsxMTBDIDExNzUgMTFDMTsKK0M5REI7QzlEQjsxMTBDIDExNzUgMTFDMjtDOURCOzExMEMgMTE3NSAxMUMyOworQzlEQztDOURDOzExMEQgMTE2MTtDOURDOzExMEQgMTE2MTsKK0M5REQ7QzlERDsxMTBEIDExNjEgMTFBODtDOUREOzExMEQgMTE2MSAxMUE4OworQzlERTtDOURFOzExMEQgMTE2MSAxMUE5O0M5REU7MTEwRCAxMTYxIDExQTk7CitDOURGO0M5REY7MTEwRCAxMTYxIDExQUE7QzlERjsxMTBEIDExNjEgMTFBQTsKK0M5RTA7QzlFMDsxMTBEIDExNjEgMTFBQjtDOUUwOzExMEQgMTE2MSAxMUFCOworQzlFMTtDOUUxOzExMEQgMTE2MSAxMUFDO0M5RTE7MTEwRCAxMTYxIDExQUM7CitDOUUyO0M5RTI7MTEwRCAxMTYxIDExQUQ7QzlFMjsxMTBEIDExNjEgMTFBRDsKK0M5RTM7QzlFMzsxMTBEIDExNjEgMTFBRTtDOUUzOzExMEQgMTE2MSAxMUFFOworQzlFNDtDOUU0OzExMEQgMTE2MSAxMUFGO0M5RTQ7MTEwRCAxMTYxIDExQUY7CitDOUU1O0M5RTU7MTEwRCAxMTYxIDExQjA7QzlFNTsxMTBEIDExNjEgMTFCMDsKK0M5RTY7QzlFNjsxMTBEIDExNjEgMTFCMTtDOUU2OzExMEQgMTE2MSAxMUIxOworQzlFNztDOUU3OzExMEQgMTE2MSAxMUIyO0M5RTc7MTEwRCAxMTYxIDExQjI7CitDOUU4O0M5RTg7MTEwRCAxMTYxIDExQjM7QzlFODsxMTBEIDExNjEgMTFCMzsKK0M5RTk7QzlFOTsxMTBEIDExNjEgMTFCNDtDOUU5OzExMEQgMTE2MSAxMUI0OworQzlFQTtDOUVBOzExMEQgMTE2MSAxMUI1O0M5RUE7MTEwRCAxMTYxIDExQjU7CitDOUVCO0M5RUI7MTEwRCAxMTYxIDExQjY7QzlFQjsxMTBEIDExNjEgMTFCNjsKK0M5RUM7QzlFQzsxMTBEIDExNjEgMTFCNztDOUVDOzExMEQgMTE2MSAxMUI3OworQzlFRDtDOUVEOzExMEQgMTE2MSAxMUI4O0M5RUQ7MTEwRCAxMTYxIDExQjg7CitDOUVFO0M5RUU7MTEwRCAxMTYxIDExQjk7QzlFRTsxMTBEIDExNjEgMTFCOTsKK0M5RUY7QzlFRjsxMTBEIDExNjEgMTFCQTtDOUVGOzExMEQgMTE2MSAxMUJBOworQzlGMDtDOUYwOzExMEQgMTE2MSAxMUJCO0M5RjA7MTEwRCAxMTYxIDExQkI7CitDOUYxO0M5RjE7MTEwRCAxMTYxIDExQkM7QzlGMTsxMTBEIDExNjEgMTFCQzsKK0M5RjI7QzlGMjsxMTBEIDExNjEgMTFCRDtDOUYyOzExMEQgMTE2MSAxMUJEOworQzlGMztDOUYzOzExMEQgMTE2MSAxMUJFO0M5RjM7MTEwRCAxMTYxIDExQkU7CitDOUY0O0M5RjQ7MTEwRCAxMTYxIDExQkY7QzlGNDsxMTBEIDExNjEgMTFCRjsKK0M5RjU7QzlGNTsxMTBEIDExNjEgMTFDMDtDOUY1OzExMEQgMTE2MSAxMUMwOworQzlGNjtDOUY2OzExMEQgMTE2MSAxMUMxO0M5RjY7MTEwRCAxMTYxIDExQzE7CitDOUY3O0M5Rjc7MTEwRCAxMTYxIDExQzI7QzlGNzsxMTBEIDExNjEgMTFDMjsKK0M5Rjg7QzlGODsxMTBEIDExNjI7QzlGODsxMTBEIDExNjI7CitDOUY5O0M5Rjk7MTEwRCAxMTYyIDExQTg7QzlGOTsxMTBEIDExNjIgMTFBODsKK0M5RkE7QzlGQTsxMTBEIDExNjIgMTFBOTtDOUZBOzExMEQgMTE2MiAxMUE5OworQzlGQjtDOUZCOzExMEQgMTE2MiAxMUFBO0M5RkI7MTEwRCAxMTYyIDExQUE7CitDOUZDO0M5RkM7MTEwRCAxMTYyIDExQUI7QzlGQzsxMTBEIDExNjIgMTFBQjsKK0M5RkQ7QzlGRDsxMTBEIDExNjIgMTFBQztDOUZEOzExMEQgMTE2MiAxMUFDOworQzlGRTtDOUZFOzExMEQgMTE2MiAxMUFEO0M5RkU7MTEwRCAxMTYyIDExQUQ7CitDOUZGO0M5RkY7MTEwRCAxMTYyIDExQUU7QzlGRjsxMTBEIDExNjIgMTFBRTsKK0NBMDA7Q0EwMDsxMTBEIDExNjIgMTFBRjtDQTAwOzExMEQgMTE2MiAxMUFGOworQ0EwMTtDQTAxOzExMEQgMTE2MiAxMUIwO0NBMDE7MTEwRCAxMTYyIDExQjA7CitDQTAyO0NBMDI7MTEwRCAxMTYyIDExQjE7Q0EwMjsxMTBEIDExNjIgMTFCMTsKK0NBMDM7Q0EwMzsxMTBEIDExNjIgMTFCMjtDQTAzOzExMEQgMTE2MiAxMUIyOworQ0EwNDtDQTA0OzExMEQgMTE2MiAxMUIzO0NBMDQ7MTEwRCAxMTYyIDExQjM7CitDQTA1O0NBMDU7MTEwRCAxMTYyIDExQjQ7Q0EwNTsxMTBEIDExNjIgMTFCNDsKK0NBMDY7Q0EwNjsxMTBEIDExNjIgMTFCNTtDQTA2OzExMEQgMTE2MiAxMUI1OworQ0EwNztDQTA3OzExMEQgMTE2MiAxMUI2O0NBMDc7MTEwRCAxMTYyIDExQjY7CitDQTA4O0NBMDg7MTEwRCAxMTYyIDExQjc7Q0EwODsxMTBEIDExNjIgMTFCNzsKK0NBMDk7Q0EwOTsxMTBEIDExNjIgMTFCODtDQTA5OzExMEQgMTE2MiAxMUI4OworQ0EwQTtDQTBBOzExMEQgMTE2MiAxMUI5O0NBMEE7MTEwRCAxMTYyIDExQjk7CitDQTBCO0NBMEI7MTEwRCAxMTYyIDExQkE7Q0EwQjsxMTBEIDExNjIgMTFCQTsKK0NBMEM7Q0EwQzsxMTBEIDExNjIgMTFCQjtDQTBDOzExMEQgMTE2MiAxMUJCOworQ0EwRDtDQTBEOzExMEQgMTE2MiAxMUJDO0NBMEQ7MTEwRCAxMTYyIDExQkM7CitDQTBFO0NBMEU7MTEwRCAxMTYyIDExQkQ7Q0EwRTsxMTBEIDExNjIgMTFCRDsKK0NBMEY7Q0EwRjsxMTBEIDExNjIgMTFCRTtDQTBGOzExMEQgMTE2MiAxMUJFOworQ0ExMDtDQTEwOzExMEQgMTE2MiAxMUJGO0NBMTA7MTEwRCAxMTYyIDExQkY7CitDQTExO0NBMTE7MTEwRCAxMTYyIDExQzA7Q0ExMTsxMTBEIDExNjIgMTFDMDsKK0NBMTI7Q0ExMjsxMTBEIDExNjIgMTFDMTtDQTEyOzExMEQgMTE2MiAxMUMxOworQ0ExMztDQTEzOzExMEQgMTE2MiAxMUMyO0NBMTM7MTEwRCAxMTYyIDExQzI7CitDQTE0O0NBMTQ7MTEwRCAxMTYzO0NBMTQ7MTEwRCAxMTYzOworQ0ExNTtDQTE1OzExMEQgMTE2MyAxMUE4O0NBMTU7MTEwRCAxMTYzIDExQTg7CitDQTE2O0NBMTY7MTEwRCAxMTYzIDExQTk7Q0ExNjsxMTBEIDExNjMgMTFBOTsKK0NBMTc7Q0ExNzsxMTBEIDExNjMgMTFBQTtDQTE3OzExMEQgMTE2MyAxMUFBOworQ0ExODtDQTE4OzExMEQgMTE2MyAxMUFCO0NBMTg7MTEwRCAxMTYzIDExQUI7CitDQTE5O0NBMTk7MTEwRCAxMTYzIDExQUM7Q0ExOTsxMTBEIDExNjMgMTFBQzsKK0NBMUE7Q0ExQTsxMTBEIDExNjMgMTFBRDtDQTFBOzExMEQgMTE2MyAxMUFEOworQ0ExQjtDQTFCOzExMEQgMTE2MyAxMUFFO0NBMUI7MTEwRCAxMTYzIDExQUU7CitDQTFDO0NBMUM7MTEwRCAxMTYzIDExQUY7Q0ExQzsxMTBEIDExNjMgMTFBRjsKK0NBMUQ7Q0ExRDsxMTBEIDExNjMgMTFCMDtDQTFEOzExMEQgMTE2MyAxMUIwOworQ0ExRTtDQTFFOzExMEQgMTE2MyAxMUIxO0NBMUU7MTEwRCAxMTYzIDExQjE7CitDQTFGO0NBMUY7MTEwRCAxMTYzIDExQjI7Q0ExRjsxMTBEIDExNjMgMTFCMjsKK0NBMjA7Q0EyMDsxMTBEIDExNjMgMTFCMztDQTIwOzExMEQgMTE2MyAxMUIzOworQ0EyMTtDQTIxOzExMEQgMTE2MyAxMUI0O0NBMjE7MTEwRCAxMTYzIDExQjQ7CitDQTIyO0NBMjI7MTEwRCAxMTYzIDExQjU7Q0EyMjsxMTBEIDExNjMgMTFCNTsKK0NBMjM7Q0EyMzsxMTBEIDExNjMgMTFCNjtDQTIzOzExMEQgMTE2MyAxMUI2OworQ0EyNDtDQTI0OzExMEQgMTE2MyAxMUI3O0NBMjQ7MTEwRCAxMTYzIDExQjc7CitDQTI1O0NBMjU7MTEwRCAxMTYzIDExQjg7Q0EyNTsxMTBEIDExNjMgMTFCODsKK0NBMjY7Q0EyNjsxMTBEIDExNjMgMTFCOTtDQTI2OzExMEQgMTE2MyAxMUI5OworQ0EyNztDQTI3OzExMEQgMTE2MyAxMUJBO0NBMjc7MTEwRCAxMTYzIDExQkE7CitDQTI4O0NBMjg7MTEwRCAxMTYzIDExQkI7Q0EyODsxMTBEIDExNjMgMTFCQjsKK0NBMjk7Q0EyOTsxMTBEIDExNjMgMTFCQztDQTI5OzExMEQgMTE2MyAxMUJDOworQ0EyQTtDQTJBOzExMEQgMTE2MyAxMUJEO0NBMkE7MTEwRCAxMTYzIDExQkQ7CitDQTJCO0NBMkI7MTEwRCAxMTYzIDExQkU7Q0EyQjsxMTBEIDExNjMgMTFCRTsKK0NBMkM7Q0EyQzsxMTBEIDExNjMgMTFCRjtDQTJDOzExMEQgMTE2MyAxMUJGOworQ0EyRDtDQTJEOzExMEQgMTE2MyAxMUMwO0NBMkQ7MTEwRCAxMTYzIDExQzA7CitDQTJFO0NBMkU7MTEwRCAxMTYzIDExQzE7Q0EyRTsxMTBEIDExNjMgMTFDMTsKK0NBMkY7Q0EyRjsxMTBEIDExNjMgMTFDMjtDQTJGOzExMEQgMTE2MyAxMUMyOworQ0EzMDtDQTMwOzExMEQgMTE2NDtDQTMwOzExMEQgMTE2NDsKK0NBMzE7Q0EzMTsxMTBEIDExNjQgMTFBODtDQTMxOzExMEQgMTE2NCAxMUE4OworQ0EzMjtDQTMyOzExMEQgMTE2NCAxMUE5O0NBMzI7MTEwRCAxMTY0IDExQTk7CitDQTMzO0NBMzM7MTEwRCAxMTY0IDExQUE7Q0EzMzsxMTBEIDExNjQgMTFBQTsKK0NBMzQ7Q0EzNDsxMTBEIDExNjQgMTFBQjtDQTM0OzExMEQgMTE2NCAxMUFCOworQ0EzNTtDQTM1OzExMEQgMTE2NCAxMUFDO0NBMzU7MTEwRCAxMTY0IDExQUM7CitDQTM2O0NBMzY7MTEwRCAxMTY0IDExQUQ7Q0EzNjsxMTBEIDExNjQgMTFBRDsKK0NBMzc7Q0EzNzsxMTBEIDExNjQgMTFBRTtDQTM3OzExMEQgMTE2NCAxMUFFOworQ0EzODtDQTM4OzExMEQgMTE2NCAxMUFGO0NBMzg7MTEwRCAxMTY0IDExQUY7CitDQTM5O0NBMzk7MTEwRCAxMTY0IDExQjA7Q0EzOTsxMTBEIDExNjQgMTFCMDsKK0NBM0E7Q0EzQTsxMTBEIDExNjQgMTFCMTtDQTNBOzExMEQgMTE2NCAxMUIxOworQ0EzQjtDQTNCOzExMEQgMTE2NCAxMUIyO0NBM0I7MTEwRCAxMTY0IDExQjI7CitDQTNDO0NBM0M7MTEwRCAxMTY0IDExQjM7Q0EzQzsxMTBEIDExNjQgMTFCMzsKK0NBM0Q7Q0EzRDsxMTBEIDExNjQgMTFCNDtDQTNEOzExMEQgMTE2NCAxMUI0OworQ0EzRTtDQTNFOzExMEQgMTE2NCAxMUI1O0NBM0U7MTEwRCAxMTY0IDExQjU7CitDQTNGO0NBM0Y7MTEwRCAxMTY0IDExQjY7Q0EzRjsxMTBEIDExNjQgMTFCNjsKK0NBNDA7Q0E0MDsxMTBEIDExNjQgMTFCNztDQTQwOzExMEQgMTE2NCAxMUI3OworQ0E0MTtDQTQxOzExMEQgMTE2NCAxMUI4O0NBNDE7MTEwRCAxMTY0IDExQjg7CitDQTQyO0NBNDI7MTEwRCAxMTY0IDExQjk7Q0E0MjsxMTBEIDExNjQgMTFCOTsKK0NBNDM7Q0E0MzsxMTBEIDExNjQgMTFCQTtDQTQzOzExMEQgMTE2NCAxMUJBOworQ0E0NDtDQTQ0OzExMEQgMTE2NCAxMUJCO0NBNDQ7MTEwRCAxMTY0IDExQkI7CitDQTQ1O0NBNDU7MTEwRCAxMTY0IDExQkM7Q0E0NTsxMTBEIDExNjQgMTFCQzsKK0NBNDY7Q0E0NjsxMTBEIDExNjQgMTFCRDtDQTQ2OzExMEQgMTE2NCAxMUJEOworQ0E0NztDQTQ3OzExMEQgMTE2NCAxMUJFO0NBNDc7MTEwRCAxMTY0IDExQkU7CitDQTQ4O0NBNDg7MTEwRCAxMTY0IDExQkY7Q0E0ODsxMTBEIDExNjQgMTFCRjsKK0NBNDk7Q0E0OTsxMTBEIDExNjQgMTFDMDtDQTQ5OzExMEQgMTE2NCAxMUMwOworQ0E0QTtDQTRBOzExMEQgMTE2NCAxMUMxO0NBNEE7MTEwRCAxMTY0IDExQzE7CitDQTRCO0NBNEI7MTEwRCAxMTY0IDExQzI7Q0E0QjsxMTBEIDExNjQgMTFDMjsKK0NBNEM7Q0E0QzsxMTBEIDExNjU7Q0E0QzsxMTBEIDExNjU7CitDQTREO0NBNEQ7MTEwRCAxMTY1IDExQTg7Q0E0RDsxMTBEIDExNjUgMTFBODsKK0NBNEU7Q0E0RTsxMTBEIDExNjUgMTFBOTtDQTRFOzExMEQgMTE2NSAxMUE5OworQ0E0RjtDQTRGOzExMEQgMTE2NSAxMUFBO0NBNEY7MTEwRCAxMTY1IDExQUE7CitDQTUwO0NBNTA7MTEwRCAxMTY1IDExQUI7Q0E1MDsxMTBEIDExNjUgMTFBQjsKK0NBNTE7Q0E1MTsxMTBEIDExNjUgMTFBQztDQTUxOzExMEQgMTE2NSAxMUFDOworQ0E1MjtDQTUyOzExMEQgMTE2NSAxMUFEO0NBNTI7MTEwRCAxMTY1IDExQUQ7CitDQTUzO0NBNTM7MTEwRCAxMTY1IDExQUU7Q0E1MzsxMTBEIDExNjUgMTFBRTsKK0NBNTQ7Q0E1NDsxMTBEIDExNjUgMTFBRjtDQTU0OzExMEQgMTE2NSAxMUFGOworQ0E1NTtDQTU1OzExMEQgMTE2NSAxMUIwO0NBNTU7MTEwRCAxMTY1IDExQjA7CitDQTU2O0NBNTY7MTEwRCAxMTY1IDExQjE7Q0E1NjsxMTBEIDExNjUgMTFCMTsKK0NBNTc7Q0E1NzsxMTBEIDExNjUgMTFCMjtDQTU3OzExMEQgMTE2NSAxMUIyOworQ0E1ODtDQTU4OzExMEQgMTE2NSAxMUIzO0NBNTg7MTEwRCAxMTY1IDExQjM7CitDQTU5O0NBNTk7MTEwRCAxMTY1IDExQjQ7Q0E1OTsxMTBEIDExNjUgMTFCNDsKK0NBNUE7Q0E1QTsxMTBEIDExNjUgMTFCNTtDQTVBOzExMEQgMTE2NSAxMUI1OworQ0E1QjtDQTVCOzExMEQgMTE2NSAxMUI2O0NBNUI7MTEwRCAxMTY1IDExQjY7CitDQTVDO0NBNUM7MTEwRCAxMTY1IDExQjc7Q0E1QzsxMTBEIDExNjUgMTFCNzsKK0NBNUQ7Q0E1RDsxMTBEIDExNjUgMTFCODtDQTVEOzExMEQgMTE2NSAxMUI4OworQ0E1RTtDQTVFOzExMEQgMTE2NSAxMUI5O0NBNUU7MTEwRCAxMTY1IDExQjk7CitDQTVGO0NBNUY7MTEwRCAxMTY1IDExQkE7Q0E1RjsxMTBEIDExNjUgMTFCQTsKK0NBNjA7Q0E2MDsxMTBEIDExNjUgMTFCQjtDQTYwOzExMEQgMTE2NSAxMUJCOworQ0E2MTtDQTYxOzExMEQgMTE2NSAxMUJDO0NBNjE7MTEwRCAxMTY1IDExQkM7CitDQTYyO0NBNjI7MTEwRCAxMTY1IDExQkQ7Q0E2MjsxMTBEIDExNjUgMTFCRDsKK0NBNjM7Q0E2MzsxMTBEIDExNjUgMTFCRTtDQTYzOzExMEQgMTE2NSAxMUJFOworQ0E2NDtDQTY0OzExMEQgMTE2NSAxMUJGO0NBNjQ7MTEwRCAxMTY1IDExQkY7CitDQTY1O0NBNjU7MTEwRCAxMTY1IDExQzA7Q0E2NTsxMTBEIDExNjUgMTFDMDsKK0NBNjY7Q0E2NjsxMTBEIDExNjUgMTFDMTtDQTY2OzExMEQgMTE2NSAxMUMxOworQ0E2NztDQTY3OzExMEQgMTE2NSAxMUMyO0NBNjc7MTEwRCAxMTY1IDExQzI7CitDQTY4O0NBNjg7MTEwRCAxMTY2O0NBNjg7MTEwRCAxMTY2OworQ0E2OTtDQTY5OzExMEQgMTE2NiAxMUE4O0NBNjk7MTEwRCAxMTY2IDExQTg7CitDQTZBO0NBNkE7MTEwRCAxMTY2IDExQTk7Q0E2QTsxMTBEIDExNjYgMTFBOTsKK0NBNkI7Q0E2QjsxMTBEIDExNjYgMTFBQTtDQTZCOzExMEQgMTE2NiAxMUFBOworQ0E2QztDQTZDOzExMEQgMTE2NiAxMUFCO0NBNkM7MTEwRCAxMTY2IDExQUI7CitDQTZEO0NBNkQ7MTEwRCAxMTY2IDExQUM7Q0E2RDsxMTBEIDExNjYgMTFBQzsKK0NBNkU7Q0E2RTsxMTBEIDExNjYgMTFBRDtDQTZFOzExMEQgMTE2NiAxMUFEOworQ0E2RjtDQTZGOzExMEQgMTE2NiAxMUFFO0NBNkY7MTEwRCAxMTY2IDExQUU7CitDQTcwO0NBNzA7MTEwRCAxMTY2IDExQUY7Q0E3MDsxMTBEIDExNjYgMTFBRjsKK0NBNzE7Q0E3MTsxMTBEIDExNjYgMTFCMDtDQTcxOzExMEQgMTE2NiAxMUIwOworQ0E3MjtDQTcyOzExMEQgMTE2NiAxMUIxO0NBNzI7MTEwRCAxMTY2IDExQjE7CitDQTczO0NBNzM7MTEwRCAxMTY2IDExQjI7Q0E3MzsxMTBEIDExNjYgMTFCMjsKK0NBNzQ7Q0E3NDsxMTBEIDExNjYgMTFCMztDQTc0OzExMEQgMTE2NiAxMUIzOworQ0E3NTtDQTc1OzExMEQgMTE2NiAxMUI0O0NBNzU7MTEwRCAxMTY2IDExQjQ7CitDQTc2O0NBNzY7MTEwRCAxMTY2IDExQjU7Q0E3NjsxMTBEIDExNjYgMTFCNTsKK0NBNzc7Q0E3NzsxMTBEIDExNjYgMTFCNjtDQTc3OzExMEQgMTE2NiAxMUI2OworQ0E3ODtDQTc4OzExMEQgMTE2NiAxMUI3O0NBNzg7MTEwRCAxMTY2IDExQjc7CitDQTc5O0NBNzk7MTEwRCAxMTY2IDExQjg7Q0E3OTsxMTBEIDExNjYgMTFCODsKK0NBN0E7Q0E3QTsxMTBEIDExNjYgMTFCOTtDQTdBOzExMEQgMTE2NiAxMUI5OworQ0E3QjtDQTdCOzExMEQgMTE2NiAxMUJBO0NBN0I7MTEwRCAxMTY2IDExQkE7CitDQTdDO0NBN0M7MTEwRCAxMTY2IDExQkI7Q0E3QzsxMTBEIDExNjYgMTFCQjsKK0NBN0Q7Q0E3RDsxMTBEIDExNjYgMTFCQztDQTdEOzExMEQgMTE2NiAxMUJDOworQ0E3RTtDQTdFOzExMEQgMTE2NiAxMUJEO0NBN0U7MTEwRCAxMTY2IDExQkQ7CitDQTdGO0NBN0Y7MTEwRCAxMTY2IDExQkU7Q0E3RjsxMTBEIDExNjYgMTFCRTsKK0NBODA7Q0E4MDsxMTBEIDExNjYgMTFCRjtDQTgwOzExMEQgMTE2NiAxMUJGOworQ0E4MTtDQTgxOzExMEQgMTE2NiAxMUMwO0NBODE7MTEwRCAxMTY2IDExQzA7CitDQTgyO0NBODI7MTEwRCAxMTY2IDExQzE7Q0E4MjsxMTBEIDExNjYgMTFDMTsKK0NBODM7Q0E4MzsxMTBEIDExNjYgMTFDMjtDQTgzOzExMEQgMTE2NiAxMUMyOworQ0E4NDtDQTg0OzExMEQgMTE2NztDQTg0OzExMEQgMTE2NzsKK0NBODU7Q0E4NTsxMTBEIDExNjcgMTFBODtDQTg1OzExMEQgMTE2NyAxMUE4OworQ0E4NjtDQTg2OzExMEQgMTE2NyAxMUE5O0NBODY7MTEwRCAxMTY3IDExQTk7CitDQTg3O0NBODc7MTEwRCAxMTY3IDExQUE7Q0E4NzsxMTBEIDExNjcgMTFBQTsKK0NBODg7Q0E4ODsxMTBEIDExNjcgMTFBQjtDQTg4OzExMEQgMTE2NyAxMUFCOworQ0E4OTtDQTg5OzExMEQgMTE2NyAxMUFDO0NBODk7MTEwRCAxMTY3IDExQUM7CitDQThBO0NBOEE7MTEwRCAxMTY3IDExQUQ7Q0E4QTsxMTBEIDExNjcgMTFBRDsKK0NBOEI7Q0E4QjsxMTBEIDExNjcgMTFBRTtDQThCOzExMEQgMTE2NyAxMUFFOworQ0E4QztDQThDOzExMEQgMTE2NyAxMUFGO0NBOEM7MTEwRCAxMTY3IDExQUY7CitDQThEO0NBOEQ7MTEwRCAxMTY3IDExQjA7Q0E4RDsxMTBEIDExNjcgMTFCMDsKK0NBOEU7Q0E4RTsxMTBEIDExNjcgMTFCMTtDQThFOzExMEQgMTE2NyAxMUIxOworQ0E4RjtDQThGOzExMEQgMTE2NyAxMUIyO0NBOEY7MTEwRCAxMTY3IDExQjI7CitDQTkwO0NBOTA7MTEwRCAxMTY3IDExQjM7Q0E5MDsxMTBEIDExNjcgMTFCMzsKK0NBOTE7Q0E5MTsxMTBEIDExNjcgMTFCNDtDQTkxOzExMEQgMTE2NyAxMUI0OworQ0E5MjtDQTkyOzExMEQgMTE2NyAxMUI1O0NBOTI7MTEwRCAxMTY3IDExQjU7CitDQTkzO0NBOTM7MTEwRCAxMTY3IDExQjY7Q0E5MzsxMTBEIDExNjcgMTFCNjsKK0NBOTQ7Q0E5NDsxMTBEIDExNjcgMTFCNztDQTk0OzExMEQgMTE2NyAxMUI3OworQ0E5NTtDQTk1OzExMEQgMTE2NyAxMUI4O0NBOTU7MTEwRCAxMTY3IDExQjg7CitDQTk2O0NBOTY7MTEwRCAxMTY3IDExQjk7Q0E5NjsxMTBEIDExNjcgMTFCOTsKK0NBOTc7Q0E5NzsxMTBEIDExNjcgMTFCQTtDQTk3OzExMEQgMTE2NyAxMUJBOworQ0E5ODtDQTk4OzExMEQgMTE2NyAxMUJCO0NBOTg7MTEwRCAxMTY3IDExQkI7CitDQTk5O0NBOTk7MTEwRCAxMTY3IDExQkM7Q0E5OTsxMTBEIDExNjcgMTFCQzsKK0NBOUE7Q0E5QTsxMTBEIDExNjcgMTFCRDtDQTlBOzExMEQgMTE2NyAxMUJEOworQ0E5QjtDQTlCOzExMEQgMTE2NyAxMUJFO0NBOUI7MTEwRCAxMTY3IDExQkU7CitDQTlDO0NBOUM7MTEwRCAxMTY3IDExQkY7Q0E5QzsxMTBEIDExNjcgMTFCRjsKK0NBOUQ7Q0E5RDsxMTBEIDExNjcgMTFDMDtDQTlEOzExMEQgMTE2NyAxMUMwOworQ0E5RTtDQTlFOzExMEQgMTE2NyAxMUMxO0NBOUU7MTEwRCAxMTY3IDExQzE7CitDQTlGO0NBOUY7MTEwRCAxMTY3IDExQzI7Q0E5RjsxMTBEIDExNjcgMTFDMjsKK0NBQTA7Q0FBMDsxMTBEIDExNjg7Q0FBMDsxMTBEIDExNjg7CitDQUExO0NBQTE7MTEwRCAxMTY4IDExQTg7Q0FBMTsxMTBEIDExNjggMTFBODsKK0NBQTI7Q0FBMjsxMTBEIDExNjggMTFBOTtDQUEyOzExMEQgMTE2OCAxMUE5OworQ0FBMztDQUEzOzExMEQgMTE2OCAxMUFBO0NBQTM7MTEwRCAxMTY4IDExQUE7CitDQUE0O0NBQTQ7MTEwRCAxMTY4IDExQUI7Q0FBNDsxMTBEIDExNjggMTFBQjsKK0NBQTU7Q0FBNTsxMTBEIDExNjggMTFBQztDQUE1OzExMEQgMTE2OCAxMUFDOworQ0FBNjtDQUE2OzExMEQgMTE2OCAxMUFEO0NBQTY7MTEwRCAxMTY4IDExQUQ7CitDQUE3O0NBQTc7MTEwRCAxMTY4IDExQUU7Q0FBNzsxMTBEIDExNjggMTFBRTsKK0NBQTg7Q0FBODsxMTBEIDExNjggMTFBRjtDQUE4OzExMEQgMTE2OCAxMUFGOworQ0FBOTtDQUE5OzExMEQgMTE2OCAxMUIwO0NBQTk7MTEwRCAxMTY4IDExQjA7CitDQUFBO0NBQUE7MTEwRCAxMTY4IDExQjE7Q0FBQTsxMTBEIDExNjggMTFCMTsKK0NBQUI7Q0FBQjsxMTBEIDExNjggMTFCMjtDQUFCOzExMEQgMTE2OCAxMUIyOworQ0FBQztDQUFDOzExMEQgMTE2OCAxMUIzO0NBQUM7MTEwRCAxMTY4IDExQjM7CitDQUFEO0NBQUQ7MTEwRCAxMTY4IDExQjQ7Q0FBRDsxMTBEIDExNjggMTFCNDsKK0NBQUU7Q0FBRTsxMTBEIDExNjggMTFCNTtDQUFFOzExMEQgMTE2OCAxMUI1OworQ0FBRjtDQUFGOzExMEQgMTE2OCAxMUI2O0NBQUY7MTEwRCAxMTY4IDExQjY7CitDQUIwO0NBQjA7MTEwRCAxMTY4IDExQjc7Q0FCMDsxMTBEIDExNjggMTFCNzsKK0NBQjE7Q0FCMTsxMTBEIDExNjggMTFCODtDQUIxOzExMEQgMTE2OCAxMUI4OworQ0FCMjtDQUIyOzExMEQgMTE2OCAxMUI5O0NBQjI7MTEwRCAxMTY4IDExQjk7CitDQUIzO0NBQjM7MTEwRCAxMTY4IDExQkE7Q0FCMzsxMTBEIDExNjggMTFCQTsKK0NBQjQ7Q0FCNDsxMTBEIDExNjggMTFCQjtDQUI0OzExMEQgMTE2OCAxMUJCOworQ0FCNTtDQUI1OzExMEQgMTE2OCAxMUJDO0NBQjU7MTEwRCAxMTY4IDExQkM7CitDQUI2O0NBQjY7MTEwRCAxMTY4IDExQkQ7Q0FCNjsxMTBEIDExNjggMTFCRDsKK0NBQjc7Q0FCNzsxMTBEIDExNjggMTFCRTtDQUI3OzExMEQgMTE2OCAxMUJFOworQ0FCODtDQUI4OzExMEQgMTE2OCAxMUJGO0NBQjg7MTEwRCAxMTY4IDExQkY7CitDQUI5O0NBQjk7MTEwRCAxMTY4IDExQzA7Q0FCOTsxMTBEIDExNjggMTFDMDsKK0NBQkE7Q0FCQTsxMTBEIDExNjggMTFDMTtDQUJBOzExMEQgMTE2OCAxMUMxOworQ0FCQjtDQUJCOzExMEQgMTE2OCAxMUMyO0NBQkI7MTEwRCAxMTY4IDExQzI7CitDQUJDO0NBQkM7MTEwRCAxMTY5O0NBQkM7MTEwRCAxMTY5OworQ0FCRDtDQUJEOzExMEQgMTE2OSAxMUE4O0NBQkQ7MTEwRCAxMTY5IDExQTg7CitDQUJFO0NBQkU7MTEwRCAxMTY5IDExQTk7Q0FCRTsxMTBEIDExNjkgMTFBOTsKK0NBQkY7Q0FCRjsxMTBEIDExNjkgMTFBQTtDQUJGOzExMEQgMTE2OSAxMUFBOworQ0FDMDtDQUMwOzExMEQgMTE2OSAxMUFCO0NBQzA7MTEwRCAxMTY5IDExQUI7CitDQUMxO0NBQzE7MTEwRCAxMTY5IDExQUM7Q0FDMTsxMTBEIDExNjkgMTFBQzsKK0NBQzI7Q0FDMjsxMTBEIDExNjkgMTFBRDtDQUMyOzExMEQgMTE2OSAxMUFEOworQ0FDMztDQUMzOzExMEQgMTE2OSAxMUFFO0NBQzM7MTEwRCAxMTY5IDExQUU7CitDQUM0O0NBQzQ7MTEwRCAxMTY5IDExQUY7Q0FDNDsxMTBEIDExNjkgMTFBRjsKK0NBQzU7Q0FDNTsxMTBEIDExNjkgMTFCMDtDQUM1OzExMEQgMTE2OSAxMUIwOworQ0FDNjtDQUM2OzExMEQgMTE2OSAxMUIxO0NBQzY7MTEwRCAxMTY5IDExQjE7CitDQUM3O0NBQzc7MTEwRCAxMTY5IDExQjI7Q0FDNzsxMTBEIDExNjkgMTFCMjsKK0NBQzg7Q0FDODsxMTBEIDExNjkgMTFCMztDQUM4OzExMEQgMTE2OSAxMUIzOworQ0FDOTtDQUM5OzExMEQgMTE2OSAxMUI0O0NBQzk7MTEwRCAxMTY5IDExQjQ7CitDQUNBO0NBQ0E7MTEwRCAxMTY5IDExQjU7Q0FDQTsxMTBEIDExNjkgMTFCNTsKK0NBQ0I7Q0FDQjsxMTBEIDExNjkgMTFCNjtDQUNCOzExMEQgMTE2OSAxMUI2OworQ0FDQztDQUNDOzExMEQgMTE2OSAxMUI3O0NBQ0M7MTEwRCAxMTY5IDExQjc7CitDQUNEO0NBQ0Q7MTEwRCAxMTY5IDExQjg7Q0FDRDsxMTBEIDExNjkgMTFCODsKK0NBQ0U7Q0FDRTsxMTBEIDExNjkgMTFCOTtDQUNFOzExMEQgMTE2OSAxMUI5OworQ0FDRjtDQUNGOzExMEQgMTE2OSAxMUJBO0NBQ0Y7MTEwRCAxMTY5IDExQkE7CitDQUQwO0NBRDA7MTEwRCAxMTY5IDExQkI7Q0FEMDsxMTBEIDExNjkgMTFCQjsKK0NBRDE7Q0FEMTsxMTBEIDExNjkgMTFCQztDQUQxOzExMEQgMTE2OSAxMUJDOworQ0FEMjtDQUQyOzExMEQgMTE2OSAxMUJEO0NBRDI7MTEwRCAxMTY5IDExQkQ7CitDQUQzO0NBRDM7MTEwRCAxMTY5IDExQkU7Q0FEMzsxMTBEIDExNjkgMTFCRTsKK0NBRDQ7Q0FENDsxMTBEIDExNjkgMTFCRjtDQUQ0OzExMEQgMTE2OSAxMUJGOworQ0FENTtDQUQ1OzExMEQgMTE2OSAxMUMwO0NBRDU7MTEwRCAxMTY5IDExQzA7CitDQUQ2O0NBRDY7MTEwRCAxMTY5IDExQzE7Q0FENjsxMTBEIDExNjkgMTFDMTsKK0NBRDc7Q0FENzsxMTBEIDExNjkgMTFDMjtDQUQ3OzExMEQgMTE2OSAxMUMyOworQ0FEODtDQUQ4OzExMEQgMTE2QTtDQUQ4OzExMEQgMTE2QTsKK0NBRDk7Q0FEOTsxMTBEIDExNkEgMTFBODtDQUQ5OzExMEQgMTE2QSAxMUE4OworQ0FEQTtDQURBOzExMEQgMTE2QSAxMUE5O0NBREE7MTEwRCAxMTZBIDExQTk7CitDQURCO0NBREI7MTEwRCAxMTZBIDExQUE7Q0FEQjsxMTBEIDExNkEgMTFBQTsKK0NBREM7Q0FEQzsxMTBEIDExNkEgMTFBQjtDQURDOzExMEQgMTE2QSAxMUFCOworQ0FERDtDQUREOzExMEQgMTE2QSAxMUFDO0NBREQ7MTEwRCAxMTZBIDExQUM7CitDQURFO0NBREU7MTEwRCAxMTZBIDExQUQ7Q0FERTsxMTBEIDExNkEgMTFBRDsKK0NBREY7Q0FERjsxMTBEIDExNkEgMTFBRTtDQURGOzExMEQgMTE2QSAxMUFFOworQ0FFMDtDQUUwOzExMEQgMTE2QSAxMUFGO0NBRTA7MTEwRCAxMTZBIDExQUY7CitDQUUxO0NBRTE7MTEwRCAxMTZBIDExQjA7Q0FFMTsxMTBEIDExNkEgMTFCMDsKK0NBRTI7Q0FFMjsxMTBEIDExNkEgMTFCMTtDQUUyOzExMEQgMTE2QSAxMUIxOworQ0FFMztDQUUzOzExMEQgMTE2QSAxMUIyO0NBRTM7MTEwRCAxMTZBIDExQjI7CitDQUU0O0NBRTQ7MTEwRCAxMTZBIDExQjM7Q0FFNDsxMTBEIDExNkEgMTFCMzsKK0NBRTU7Q0FFNTsxMTBEIDExNkEgMTFCNDtDQUU1OzExMEQgMTE2QSAxMUI0OworQ0FFNjtDQUU2OzExMEQgMTE2QSAxMUI1O0NBRTY7MTEwRCAxMTZBIDExQjU7CitDQUU3O0NBRTc7MTEwRCAxMTZBIDExQjY7Q0FFNzsxMTBEIDExNkEgMTFCNjsKK0NBRTg7Q0FFODsxMTBEIDExNkEgMTFCNztDQUU4OzExMEQgMTE2QSAxMUI3OworQ0FFOTtDQUU5OzExMEQgMTE2QSAxMUI4O0NBRTk7MTEwRCAxMTZBIDExQjg7CitDQUVBO0NBRUE7MTEwRCAxMTZBIDExQjk7Q0FFQTsxMTBEIDExNkEgMTFCOTsKK0NBRUI7Q0FFQjsxMTBEIDExNkEgMTFCQTtDQUVCOzExMEQgMTE2QSAxMUJBOworQ0FFQztDQUVDOzExMEQgMTE2QSAxMUJCO0NBRUM7MTEwRCAxMTZBIDExQkI7CitDQUVEO0NBRUQ7MTEwRCAxMTZBIDExQkM7Q0FFRDsxMTBEIDExNkEgMTFCQzsKK0NBRUU7Q0FFRTsxMTBEIDExNkEgMTFCRDtDQUVFOzExMEQgMTE2QSAxMUJEOworQ0FFRjtDQUVGOzExMEQgMTE2QSAxMUJFO0NBRUY7MTEwRCAxMTZBIDExQkU7CitDQUYwO0NBRjA7MTEwRCAxMTZBIDExQkY7Q0FGMDsxMTBEIDExNkEgMTFCRjsKK0NBRjE7Q0FGMTsxMTBEIDExNkEgMTFDMDtDQUYxOzExMEQgMTE2QSAxMUMwOworQ0FGMjtDQUYyOzExMEQgMTE2QSAxMUMxO0NBRjI7MTEwRCAxMTZBIDExQzE7CitDQUYzO0NBRjM7MTEwRCAxMTZBIDExQzI7Q0FGMzsxMTBEIDExNkEgMTFDMjsKK0NBRjQ7Q0FGNDsxMTBEIDExNkI7Q0FGNDsxMTBEIDExNkI7CitDQUY1O0NBRjU7MTEwRCAxMTZCIDExQTg7Q0FGNTsxMTBEIDExNkIgMTFBODsKK0NBRjY7Q0FGNjsxMTBEIDExNkIgMTFBOTtDQUY2OzExMEQgMTE2QiAxMUE5OworQ0FGNztDQUY3OzExMEQgMTE2QiAxMUFBO0NBRjc7MTEwRCAxMTZCIDExQUE7CitDQUY4O0NBRjg7MTEwRCAxMTZCIDExQUI7Q0FGODsxMTBEIDExNkIgMTFBQjsKK0NBRjk7Q0FGOTsxMTBEIDExNkIgMTFBQztDQUY5OzExMEQgMTE2QiAxMUFDOworQ0FGQTtDQUZBOzExMEQgMTE2QiAxMUFEO0NBRkE7MTEwRCAxMTZCIDExQUQ7CitDQUZCO0NBRkI7MTEwRCAxMTZCIDExQUU7Q0FGQjsxMTBEIDExNkIgMTFBRTsKK0NBRkM7Q0FGQzsxMTBEIDExNkIgMTFBRjtDQUZDOzExMEQgMTE2QiAxMUFGOworQ0FGRDtDQUZEOzExMEQgMTE2QiAxMUIwO0NBRkQ7MTEwRCAxMTZCIDExQjA7CitDQUZFO0NBRkU7MTEwRCAxMTZCIDExQjE7Q0FGRTsxMTBEIDExNkIgMTFCMTsKK0NBRkY7Q0FGRjsxMTBEIDExNkIgMTFCMjtDQUZGOzExMEQgMTE2QiAxMUIyOworQ0IwMDtDQjAwOzExMEQgMTE2QiAxMUIzO0NCMDA7MTEwRCAxMTZCIDExQjM7CitDQjAxO0NCMDE7MTEwRCAxMTZCIDExQjQ7Q0IwMTsxMTBEIDExNkIgMTFCNDsKK0NCMDI7Q0IwMjsxMTBEIDExNkIgMTFCNTtDQjAyOzExMEQgMTE2QiAxMUI1OworQ0IwMztDQjAzOzExMEQgMTE2QiAxMUI2O0NCMDM7MTEwRCAxMTZCIDExQjY7CitDQjA0O0NCMDQ7MTEwRCAxMTZCIDExQjc7Q0IwNDsxMTBEIDExNkIgMTFCNzsKK0NCMDU7Q0IwNTsxMTBEIDExNkIgMTFCODtDQjA1OzExMEQgMTE2QiAxMUI4OworQ0IwNjtDQjA2OzExMEQgMTE2QiAxMUI5O0NCMDY7MTEwRCAxMTZCIDExQjk7CitDQjA3O0NCMDc7MTEwRCAxMTZCIDExQkE7Q0IwNzsxMTBEIDExNkIgMTFCQTsKK0NCMDg7Q0IwODsxMTBEIDExNkIgMTFCQjtDQjA4OzExMEQgMTE2QiAxMUJCOworQ0IwOTtDQjA5OzExMEQgMTE2QiAxMUJDO0NCMDk7MTEwRCAxMTZCIDExQkM7CitDQjBBO0NCMEE7MTEwRCAxMTZCIDExQkQ7Q0IwQTsxMTBEIDExNkIgMTFCRDsKK0NCMEI7Q0IwQjsxMTBEIDExNkIgMTFCRTtDQjBCOzExMEQgMTE2QiAxMUJFOworQ0IwQztDQjBDOzExMEQgMTE2QiAxMUJGO0NCMEM7MTEwRCAxMTZCIDExQkY7CitDQjBEO0NCMEQ7MTEwRCAxMTZCIDExQzA7Q0IwRDsxMTBEIDExNkIgMTFDMDsKK0NCMEU7Q0IwRTsxMTBEIDExNkIgMTFDMTtDQjBFOzExMEQgMTE2QiAxMUMxOworQ0IwRjtDQjBGOzExMEQgMTE2QiAxMUMyO0NCMEY7MTEwRCAxMTZCIDExQzI7CitDQjEwO0NCMTA7MTEwRCAxMTZDO0NCMTA7MTEwRCAxMTZDOworQ0IxMTtDQjExOzExMEQgMTE2QyAxMUE4O0NCMTE7MTEwRCAxMTZDIDExQTg7CitDQjEyO0NCMTI7MTEwRCAxMTZDIDExQTk7Q0IxMjsxMTBEIDExNkMgMTFBOTsKK0NCMTM7Q0IxMzsxMTBEIDExNkMgMTFBQTtDQjEzOzExMEQgMTE2QyAxMUFBOworQ0IxNDtDQjE0OzExMEQgMTE2QyAxMUFCO0NCMTQ7MTEwRCAxMTZDIDExQUI7CitDQjE1O0NCMTU7MTEwRCAxMTZDIDExQUM7Q0IxNTsxMTBEIDExNkMgMTFBQzsKK0NCMTY7Q0IxNjsxMTBEIDExNkMgMTFBRDtDQjE2OzExMEQgMTE2QyAxMUFEOworQ0IxNztDQjE3OzExMEQgMTE2QyAxMUFFO0NCMTc7MTEwRCAxMTZDIDExQUU7CitDQjE4O0NCMTg7MTEwRCAxMTZDIDExQUY7Q0IxODsxMTBEIDExNkMgMTFBRjsKK0NCMTk7Q0IxOTsxMTBEIDExNkMgMTFCMDtDQjE5OzExMEQgMTE2QyAxMUIwOworQ0IxQTtDQjFBOzExMEQgMTE2QyAxMUIxO0NCMUE7MTEwRCAxMTZDIDExQjE7CitDQjFCO0NCMUI7MTEwRCAxMTZDIDExQjI7Q0IxQjsxMTBEIDExNkMgMTFCMjsKK0NCMUM7Q0IxQzsxMTBEIDExNkMgMTFCMztDQjFDOzExMEQgMTE2QyAxMUIzOworQ0IxRDtDQjFEOzExMEQgMTE2QyAxMUI0O0NCMUQ7MTEwRCAxMTZDIDExQjQ7CitDQjFFO0NCMUU7MTEwRCAxMTZDIDExQjU7Q0IxRTsxMTBEIDExNkMgMTFCNTsKK0NCMUY7Q0IxRjsxMTBEIDExNkMgMTFCNjtDQjFGOzExMEQgMTE2QyAxMUI2OworQ0IyMDtDQjIwOzExMEQgMTE2QyAxMUI3O0NCMjA7MTEwRCAxMTZDIDExQjc7CitDQjIxO0NCMjE7MTEwRCAxMTZDIDExQjg7Q0IyMTsxMTBEIDExNkMgMTFCODsKK0NCMjI7Q0IyMjsxMTBEIDExNkMgMTFCOTtDQjIyOzExMEQgMTE2QyAxMUI5OworQ0IyMztDQjIzOzExMEQgMTE2QyAxMUJBO0NCMjM7MTEwRCAxMTZDIDExQkE7CitDQjI0O0NCMjQ7MTEwRCAxMTZDIDExQkI7Q0IyNDsxMTBEIDExNkMgMTFCQjsKK0NCMjU7Q0IyNTsxMTBEIDExNkMgMTFCQztDQjI1OzExMEQgMTE2QyAxMUJDOworQ0IyNjtDQjI2OzExMEQgMTE2QyAxMUJEO0NCMjY7MTEwRCAxMTZDIDExQkQ7CitDQjI3O0NCMjc7MTEwRCAxMTZDIDExQkU7Q0IyNzsxMTBEIDExNkMgMTFCRTsKK0NCMjg7Q0IyODsxMTBEIDExNkMgMTFCRjtDQjI4OzExMEQgMTE2QyAxMUJGOworQ0IyOTtDQjI5OzExMEQgMTE2QyAxMUMwO0NCMjk7MTEwRCAxMTZDIDExQzA7CitDQjJBO0NCMkE7MTEwRCAxMTZDIDExQzE7Q0IyQTsxMTBEIDExNkMgMTFDMTsKK0NCMkI7Q0IyQjsxMTBEIDExNkMgMTFDMjtDQjJCOzExMEQgMTE2QyAxMUMyOworQ0IyQztDQjJDOzExMEQgMTE2RDtDQjJDOzExMEQgMTE2RDsKK0NCMkQ7Q0IyRDsxMTBEIDExNkQgMTFBODtDQjJEOzExMEQgMTE2RCAxMUE4OworQ0IyRTtDQjJFOzExMEQgMTE2RCAxMUE5O0NCMkU7MTEwRCAxMTZEIDExQTk7CitDQjJGO0NCMkY7MTEwRCAxMTZEIDExQUE7Q0IyRjsxMTBEIDExNkQgMTFBQTsKK0NCMzA7Q0IzMDsxMTBEIDExNkQgMTFBQjtDQjMwOzExMEQgMTE2RCAxMUFCOworQ0IzMTtDQjMxOzExMEQgMTE2RCAxMUFDO0NCMzE7MTEwRCAxMTZEIDExQUM7CitDQjMyO0NCMzI7MTEwRCAxMTZEIDExQUQ7Q0IzMjsxMTBEIDExNkQgMTFBRDsKK0NCMzM7Q0IzMzsxMTBEIDExNkQgMTFBRTtDQjMzOzExMEQgMTE2RCAxMUFFOworQ0IzNDtDQjM0OzExMEQgMTE2RCAxMUFGO0NCMzQ7MTEwRCAxMTZEIDExQUY7CitDQjM1O0NCMzU7MTEwRCAxMTZEIDExQjA7Q0IzNTsxMTBEIDExNkQgMTFCMDsKK0NCMzY7Q0IzNjsxMTBEIDExNkQgMTFCMTtDQjM2OzExMEQgMTE2RCAxMUIxOworQ0IzNztDQjM3OzExMEQgMTE2RCAxMUIyO0NCMzc7MTEwRCAxMTZEIDExQjI7CitDQjM4O0NCMzg7MTEwRCAxMTZEIDExQjM7Q0IzODsxMTBEIDExNkQgMTFCMzsKK0NCMzk7Q0IzOTsxMTBEIDExNkQgMTFCNDtDQjM5OzExMEQgMTE2RCAxMUI0OworQ0IzQTtDQjNBOzExMEQgMTE2RCAxMUI1O0NCM0E7MTEwRCAxMTZEIDExQjU7CitDQjNCO0NCM0I7MTEwRCAxMTZEIDExQjY7Q0IzQjsxMTBEIDExNkQgMTFCNjsKK0NCM0M7Q0IzQzsxMTBEIDExNkQgMTFCNztDQjNDOzExMEQgMTE2RCAxMUI3OworQ0IzRDtDQjNEOzExMEQgMTE2RCAxMUI4O0NCM0Q7MTEwRCAxMTZEIDExQjg7CitDQjNFO0NCM0U7MTEwRCAxMTZEIDExQjk7Q0IzRTsxMTBEIDExNkQgMTFCOTsKK0NCM0Y7Q0IzRjsxMTBEIDExNkQgMTFCQTtDQjNGOzExMEQgMTE2RCAxMUJBOworQ0I0MDtDQjQwOzExMEQgMTE2RCAxMUJCO0NCNDA7MTEwRCAxMTZEIDExQkI7CitDQjQxO0NCNDE7MTEwRCAxMTZEIDExQkM7Q0I0MTsxMTBEIDExNkQgMTFCQzsKK0NCNDI7Q0I0MjsxMTBEIDExNkQgMTFCRDtDQjQyOzExMEQgMTE2RCAxMUJEOworQ0I0MztDQjQzOzExMEQgMTE2RCAxMUJFO0NCNDM7MTEwRCAxMTZEIDExQkU7CitDQjQ0O0NCNDQ7MTEwRCAxMTZEIDExQkY7Q0I0NDsxMTBEIDExNkQgMTFCRjsKK0NCNDU7Q0I0NTsxMTBEIDExNkQgMTFDMDtDQjQ1OzExMEQgMTE2RCAxMUMwOworQ0I0NjtDQjQ2OzExMEQgMTE2RCAxMUMxO0NCNDY7MTEwRCAxMTZEIDExQzE7CitDQjQ3O0NCNDc7MTEwRCAxMTZEIDExQzI7Q0I0NzsxMTBEIDExNkQgMTFDMjsKK0NCNDg7Q0I0ODsxMTBEIDExNkU7Q0I0ODsxMTBEIDExNkU7CitDQjQ5O0NCNDk7MTEwRCAxMTZFIDExQTg7Q0I0OTsxMTBEIDExNkUgMTFBODsKK0NCNEE7Q0I0QTsxMTBEIDExNkUgMTFBOTtDQjRBOzExMEQgMTE2RSAxMUE5OworQ0I0QjtDQjRCOzExMEQgMTE2RSAxMUFBO0NCNEI7MTEwRCAxMTZFIDExQUE7CitDQjRDO0NCNEM7MTEwRCAxMTZFIDExQUI7Q0I0QzsxMTBEIDExNkUgMTFBQjsKK0NCNEQ7Q0I0RDsxMTBEIDExNkUgMTFBQztDQjREOzExMEQgMTE2RSAxMUFDOworQ0I0RTtDQjRFOzExMEQgMTE2RSAxMUFEO0NCNEU7MTEwRCAxMTZFIDExQUQ7CitDQjRGO0NCNEY7MTEwRCAxMTZFIDExQUU7Q0I0RjsxMTBEIDExNkUgMTFBRTsKK0NCNTA7Q0I1MDsxMTBEIDExNkUgMTFBRjtDQjUwOzExMEQgMTE2RSAxMUFGOworQ0I1MTtDQjUxOzExMEQgMTE2RSAxMUIwO0NCNTE7MTEwRCAxMTZFIDExQjA7CitDQjUyO0NCNTI7MTEwRCAxMTZFIDExQjE7Q0I1MjsxMTBEIDExNkUgMTFCMTsKK0NCNTM7Q0I1MzsxMTBEIDExNkUgMTFCMjtDQjUzOzExMEQgMTE2RSAxMUIyOworQ0I1NDtDQjU0OzExMEQgMTE2RSAxMUIzO0NCNTQ7MTEwRCAxMTZFIDExQjM7CitDQjU1O0NCNTU7MTEwRCAxMTZFIDExQjQ7Q0I1NTsxMTBEIDExNkUgMTFCNDsKK0NCNTY7Q0I1NjsxMTBEIDExNkUgMTFCNTtDQjU2OzExMEQgMTE2RSAxMUI1OworQ0I1NztDQjU3OzExMEQgMTE2RSAxMUI2O0NCNTc7MTEwRCAxMTZFIDExQjY7CitDQjU4O0NCNTg7MTEwRCAxMTZFIDExQjc7Q0I1ODsxMTBEIDExNkUgMTFCNzsKK0NCNTk7Q0I1OTsxMTBEIDExNkUgMTFCODtDQjU5OzExMEQgMTE2RSAxMUI4OworQ0I1QTtDQjVBOzExMEQgMTE2RSAxMUI5O0NCNUE7MTEwRCAxMTZFIDExQjk7CitDQjVCO0NCNUI7MTEwRCAxMTZFIDExQkE7Q0I1QjsxMTBEIDExNkUgMTFCQTsKK0NCNUM7Q0I1QzsxMTBEIDExNkUgMTFCQjtDQjVDOzExMEQgMTE2RSAxMUJCOworQ0I1RDtDQjVEOzExMEQgMTE2RSAxMUJDO0NCNUQ7MTEwRCAxMTZFIDExQkM7CitDQjVFO0NCNUU7MTEwRCAxMTZFIDExQkQ7Q0I1RTsxMTBEIDExNkUgMTFCRDsKK0NCNUY7Q0I1RjsxMTBEIDExNkUgMTFCRTtDQjVGOzExMEQgMTE2RSAxMUJFOworQ0I2MDtDQjYwOzExMEQgMTE2RSAxMUJGO0NCNjA7MTEwRCAxMTZFIDExQkY7CitDQjYxO0NCNjE7MTEwRCAxMTZFIDExQzA7Q0I2MTsxMTBEIDExNkUgMTFDMDsKK0NCNjI7Q0I2MjsxMTBEIDExNkUgMTFDMTtDQjYyOzExMEQgMTE2RSAxMUMxOworQ0I2MztDQjYzOzExMEQgMTE2RSAxMUMyO0NCNjM7MTEwRCAxMTZFIDExQzI7CitDQjY0O0NCNjQ7MTEwRCAxMTZGO0NCNjQ7MTEwRCAxMTZGOworQ0I2NTtDQjY1OzExMEQgMTE2RiAxMUE4O0NCNjU7MTEwRCAxMTZGIDExQTg7CitDQjY2O0NCNjY7MTEwRCAxMTZGIDExQTk7Q0I2NjsxMTBEIDExNkYgMTFBOTsKK0NCNjc7Q0I2NzsxMTBEIDExNkYgMTFBQTtDQjY3OzExMEQgMTE2RiAxMUFBOworQ0I2ODtDQjY4OzExMEQgMTE2RiAxMUFCO0NCNjg7MTEwRCAxMTZGIDExQUI7CitDQjY5O0NCNjk7MTEwRCAxMTZGIDExQUM7Q0I2OTsxMTBEIDExNkYgMTFBQzsKK0NCNkE7Q0I2QTsxMTBEIDExNkYgMTFBRDtDQjZBOzExMEQgMTE2RiAxMUFEOworQ0I2QjtDQjZCOzExMEQgMTE2RiAxMUFFO0NCNkI7MTEwRCAxMTZGIDExQUU7CitDQjZDO0NCNkM7MTEwRCAxMTZGIDExQUY7Q0I2QzsxMTBEIDExNkYgMTFBRjsKK0NCNkQ7Q0I2RDsxMTBEIDExNkYgMTFCMDtDQjZEOzExMEQgMTE2RiAxMUIwOworQ0I2RTtDQjZFOzExMEQgMTE2RiAxMUIxO0NCNkU7MTEwRCAxMTZGIDExQjE7CitDQjZGO0NCNkY7MTEwRCAxMTZGIDExQjI7Q0I2RjsxMTBEIDExNkYgMTFCMjsKK0NCNzA7Q0I3MDsxMTBEIDExNkYgMTFCMztDQjcwOzExMEQgMTE2RiAxMUIzOworQ0I3MTtDQjcxOzExMEQgMTE2RiAxMUI0O0NCNzE7MTEwRCAxMTZGIDExQjQ7CitDQjcyO0NCNzI7MTEwRCAxMTZGIDExQjU7Q0I3MjsxMTBEIDExNkYgMTFCNTsKK0NCNzM7Q0I3MzsxMTBEIDExNkYgMTFCNjtDQjczOzExMEQgMTE2RiAxMUI2OworQ0I3NDtDQjc0OzExMEQgMTE2RiAxMUI3O0NCNzQ7MTEwRCAxMTZGIDExQjc7CitDQjc1O0NCNzU7MTEwRCAxMTZGIDExQjg7Q0I3NTsxMTBEIDExNkYgMTFCODsKK0NCNzY7Q0I3NjsxMTBEIDExNkYgMTFCOTtDQjc2OzExMEQgMTE2RiAxMUI5OworQ0I3NztDQjc3OzExMEQgMTE2RiAxMUJBO0NCNzc7MTEwRCAxMTZGIDExQkE7CitDQjc4O0NCNzg7MTEwRCAxMTZGIDExQkI7Q0I3ODsxMTBEIDExNkYgMTFCQjsKK0NCNzk7Q0I3OTsxMTBEIDExNkYgMTFCQztDQjc5OzExMEQgMTE2RiAxMUJDOworQ0I3QTtDQjdBOzExMEQgMTE2RiAxMUJEO0NCN0E7MTEwRCAxMTZGIDExQkQ7CitDQjdCO0NCN0I7MTEwRCAxMTZGIDExQkU7Q0I3QjsxMTBEIDExNkYgMTFCRTsKK0NCN0M7Q0I3QzsxMTBEIDExNkYgMTFCRjtDQjdDOzExMEQgMTE2RiAxMUJGOworQ0I3RDtDQjdEOzExMEQgMTE2RiAxMUMwO0NCN0Q7MTEwRCAxMTZGIDExQzA7CitDQjdFO0NCN0U7MTEwRCAxMTZGIDExQzE7Q0I3RTsxMTBEIDExNkYgMTFDMTsKK0NCN0Y7Q0I3RjsxMTBEIDExNkYgMTFDMjtDQjdGOzExMEQgMTE2RiAxMUMyOworQ0I4MDtDQjgwOzExMEQgMTE3MDtDQjgwOzExMEQgMTE3MDsKK0NCODE7Q0I4MTsxMTBEIDExNzAgMTFBODtDQjgxOzExMEQgMTE3MCAxMUE4OworQ0I4MjtDQjgyOzExMEQgMTE3MCAxMUE5O0NCODI7MTEwRCAxMTcwIDExQTk7CitDQjgzO0NCODM7MTEwRCAxMTcwIDExQUE7Q0I4MzsxMTBEIDExNzAgMTFBQTsKK0NCODQ7Q0I4NDsxMTBEIDExNzAgMTFBQjtDQjg0OzExMEQgMTE3MCAxMUFCOworQ0I4NTtDQjg1OzExMEQgMTE3MCAxMUFDO0NCODU7MTEwRCAxMTcwIDExQUM7CitDQjg2O0NCODY7MTEwRCAxMTcwIDExQUQ7Q0I4NjsxMTBEIDExNzAgMTFBRDsKK0NCODc7Q0I4NzsxMTBEIDExNzAgMTFBRTtDQjg3OzExMEQgMTE3MCAxMUFFOworQ0I4ODtDQjg4OzExMEQgMTE3MCAxMUFGO0NCODg7MTEwRCAxMTcwIDExQUY7CitDQjg5O0NCODk7MTEwRCAxMTcwIDExQjA7Q0I4OTsxMTBEIDExNzAgMTFCMDsKK0NCOEE7Q0I4QTsxMTBEIDExNzAgMTFCMTtDQjhBOzExMEQgMTE3MCAxMUIxOworQ0I4QjtDQjhCOzExMEQgMTE3MCAxMUIyO0NCOEI7MTEwRCAxMTcwIDExQjI7CitDQjhDO0NCOEM7MTEwRCAxMTcwIDExQjM7Q0I4QzsxMTBEIDExNzAgMTFCMzsKK0NCOEQ7Q0I4RDsxMTBEIDExNzAgMTFCNDtDQjhEOzExMEQgMTE3MCAxMUI0OworQ0I4RTtDQjhFOzExMEQgMTE3MCAxMUI1O0NCOEU7MTEwRCAxMTcwIDExQjU7CitDQjhGO0NCOEY7MTEwRCAxMTcwIDExQjY7Q0I4RjsxMTBEIDExNzAgMTFCNjsKK0NCOTA7Q0I5MDsxMTBEIDExNzAgMTFCNztDQjkwOzExMEQgMTE3MCAxMUI3OworQ0I5MTtDQjkxOzExMEQgMTE3MCAxMUI4O0NCOTE7MTEwRCAxMTcwIDExQjg7CitDQjkyO0NCOTI7MTEwRCAxMTcwIDExQjk7Q0I5MjsxMTBEIDExNzAgMTFCOTsKK0NCOTM7Q0I5MzsxMTBEIDExNzAgMTFCQTtDQjkzOzExMEQgMTE3MCAxMUJBOworQ0I5NDtDQjk0OzExMEQgMTE3MCAxMUJCO0NCOTQ7MTEwRCAxMTcwIDExQkI7CitDQjk1O0NCOTU7MTEwRCAxMTcwIDExQkM7Q0I5NTsxMTBEIDExNzAgMTFCQzsKK0NCOTY7Q0I5NjsxMTBEIDExNzAgMTFCRDtDQjk2OzExMEQgMTE3MCAxMUJEOworQ0I5NztDQjk3OzExMEQgMTE3MCAxMUJFO0NCOTc7MTEwRCAxMTcwIDExQkU7CitDQjk4O0NCOTg7MTEwRCAxMTcwIDExQkY7Q0I5ODsxMTBEIDExNzAgMTFCRjsKK0NCOTk7Q0I5OTsxMTBEIDExNzAgMTFDMDtDQjk5OzExMEQgMTE3MCAxMUMwOworQ0I5QTtDQjlBOzExMEQgMTE3MCAxMUMxO0NCOUE7MTEwRCAxMTcwIDExQzE7CitDQjlCO0NCOUI7MTEwRCAxMTcwIDExQzI7Q0I5QjsxMTBEIDExNzAgMTFDMjsKK0NCOUM7Q0I5QzsxMTBEIDExNzE7Q0I5QzsxMTBEIDExNzE7CitDQjlEO0NCOUQ7MTEwRCAxMTcxIDExQTg7Q0I5RDsxMTBEIDExNzEgMTFBODsKK0NCOUU7Q0I5RTsxMTBEIDExNzEgMTFBOTtDQjlFOzExMEQgMTE3MSAxMUE5OworQ0I5RjtDQjlGOzExMEQgMTE3MSAxMUFBO0NCOUY7MTEwRCAxMTcxIDExQUE7CitDQkEwO0NCQTA7MTEwRCAxMTcxIDExQUI7Q0JBMDsxMTBEIDExNzEgMTFBQjsKK0NCQTE7Q0JBMTsxMTBEIDExNzEgMTFBQztDQkExOzExMEQgMTE3MSAxMUFDOworQ0JBMjtDQkEyOzExMEQgMTE3MSAxMUFEO0NCQTI7MTEwRCAxMTcxIDExQUQ7CitDQkEzO0NCQTM7MTEwRCAxMTcxIDExQUU7Q0JBMzsxMTBEIDExNzEgMTFBRTsKK0NCQTQ7Q0JBNDsxMTBEIDExNzEgMTFBRjtDQkE0OzExMEQgMTE3MSAxMUFGOworQ0JBNTtDQkE1OzExMEQgMTE3MSAxMUIwO0NCQTU7MTEwRCAxMTcxIDExQjA7CitDQkE2O0NCQTY7MTEwRCAxMTcxIDExQjE7Q0JBNjsxMTBEIDExNzEgMTFCMTsKK0NCQTc7Q0JBNzsxMTBEIDExNzEgMTFCMjtDQkE3OzExMEQgMTE3MSAxMUIyOworQ0JBODtDQkE4OzExMEQgMTE3MSAxMUIzO0NCQTg7MTEwRCAxMTcxIDExQjM7CitDQkE5O0NCQTk7MTEwRCAxMTcxIDExQjQ7Q0JBOTsxMTBEIDExNzEgMTFCNDsKK0NCQUE7Q0JBQTsxMTBEIDExNzEgMTFCNTtDQkFBOzExMEQgMTE3MSAxMUI1OworQ0JBQjtDQkFCOzExMEQgMTE3MSAxMUI2O0NCQUI7MTEwRCAxMTcxIDExQjY7CitDQkFDO0NCQUM7MTEwRCAxMTcxIDExQjc7Q0JBQzsxMTBEIDExNzEgMTFCNzsKK0NCQUQ7Q0JBRDsxMTBEIDExNzEgMTFCODtDQkFEOzExMEQgMTE3MSAxMUI4OworQ0JBRTtDQkFFOzExMEQgMTE3MSAxMUI5O0NCQUU7MTEwRCAxMTcxIDExQjk7CitDQkFGO0NCQUY7MTEwRCAxMTcxIDExQkE7Q0JBRjsxMTBEIDExNzEgMTFCQTsKK0NCQjA7Q0JCMDsxMTBEIDExNzEgMTFCQjtDQkIwOzExMEQgMTE3MSAxMUJCOworQ0JCMTtDQkIxOzExMEQgMTE3MSAxMUJDO0NCQjE7MTEwRCAxMTcxIDExQkM7CitDQkIyO0NCQjI7MTEwRCAxMTcxIDExQkQ7Q0JCMjsxMTBEIDExNzEgMTFCRDsKK0NCQjM7Q0JCMzsxMTBEIDExNzEgMTFCRTtDQkIzOzExMEQgMTE3MSAxMUJFOworQ0JCNDtDQkI0OzExMEQgMTE3MSAxMUJGO0NCQjQ7MTEwRCAxMTcxIDExQkY7CitDQkI1O0NCQjU7MTEwRCAxMTcxIDExQzA7Q0JCNTsxMTBEIDExNzEgMTFDMDsKK0NCQjY7Q0JCNjsxMTBEIDExNzEgMTFDMTtDQkI2OzExMEQgMTE3MSAxMUMxOworQ0JCNztDQkI3OzExMEQgMTE3MSAxMUMyO0NCQjc7MTEwRCAxMTcxIDExQzI7CitDQkI4O0NCQjg7MTEwRCAxMTcyO0NCQjg7MTEwRCAxMTcyOworQ0JCOTtDQkI5OzExMEQgMTE3MiAxMUE4O0NCQjk7MTEwRCAxMTcyIDExQTg7CitDQkJBO0NCQkE7MTEwRCAxMTcyIDExQTk7Q0JCQTsxMTBEIDExNzIgMTFBOTsKK0NCQkI7Q0JCQjsxMTBEIDExNzIgMTFBQTtDQkJCOzExMEQgMTE3MiAxMUFBOworQ0JCQztDQkJDOzExMEQgMTE3MiAxMUFCO0NCQkM7MTEwRCAxMTcyIDExQUI7CitDQkJEO0NCQkQ7MTEwRCAxMTcyIDExQUM7Q0JCRDsxMTBEIDExNzIgMTFBQzsKK0NCQkU7Q0JCRTsxMTBEIDExNzIgMTFBRDtDQkJFOzExMEQgMTE3MiAxMUFEOworQ0JCRjtDQkJGOzExMEQgMTE3MiAxMUFFO0NCQkY7MTEwRCAxMTcyIDExQUU7CitDQkMwO0NCQzA7MTEwRCAxMTcyIDExQUY7Q0JDMDsxMTBEIDExNzIgMTFBRjsKK0NCQzE7Q0JDMTsxMTBEIDExNzIgMTFCMDtDQkMxOzExMEQgMTE3MiAxMUIwOworQ0JDMjtDQkMyOzExMEQgMTE3MiAxMUIxO0NCQzI7MTEwRCAxMTcyIDExQjE7CitDQkMzO0NCQzM7MTEwRCAxMTcyIDExQjI7Q0JDMzsxMTBEIDExNzIgMTFCMjsKK0NCQzQ7Q0JDNDsxMTBEIDExNzIgMTFCMztDQkM0OzExMEQgMTE3MiAxMUIzOworQ0JDNTtDQkM1OzExMEQgMTE3MiAxMUI0O0NCQzU7MTEwRCAxMTcyIDExQjQ7CitDQkM2O0NCQzY7MTEwRCAxMTcyIDExQjU7Q0JDNjsxMTBEIDExNzIgMTFCNTsKK0NCQzc7Q0JDNzsxMTBEIDExNzIgMTFCNjtDQkM3OzExMEQgMTE3MiAxMUI2OworQ0JDODtDQkM4OzExMEQgMTE3MiAxMUI3O0NCQzg7MTEwRCAxMTcyIDExQjc7CitDQkM5O0NCQzk7MTEwRCAxMTcyIDExQjg7Q0JDOTsxMTBEIDExNzIgMTFCODsKK0NCQ0E7Q0JDQTsxMTBEIDExNzIgMTFCOTtDQkNBOzExMEQgMTE3MiAxMUI5OworQ0JDQjtDQkNCOzExMEQgMTE3MiAxMUJBO0NCQ0I7MTEwRCAxMTcyIDExQkE7CitDQkNDO0NCQ0M7MTEwRCAxMTcyIDExQkI7Q0JDQzsxMTBEIDExNzIgMTFCQjsKK0NCQ0Q7Q0JDRDsxMTBEIDExNzIgMTFCQztDQkNEOzExMEQgMTE3MiAxMUJDOworQ0JDRTtDQkNFOzExMEQgMTE3MiAxMUJEO0NCQ0U7MTEwRCAxMTcyIDExQkQ7CitDQkNGO0NCQ0Y7MTEwRCAxMTcyIDExQkU7Q0JDRjsxMTBEIDExNzIgMTFCRTsKK0NCRDA7Q0JEMDsxMTBEIDExNzIgMTFCRjtDQkQwOzExMEQgMTE3MiAxMUJGOworQ0JEMTtDQkQxOzExMEQgMTE3MiAxMUMwO0NCRDE7MTEwRCAxMTcyIDExQzA7CitDQkQyO0NCRDI7MTEwRCAxMTcyIDExQzE7Q0JEMjsxMTBEIDExNzIgMTFDMTsKK0NCRDM7Q0JEMzsxMTBEIDExNzIgMTFDMjtDQkQzOzExMEQgMTE3MiAxMUMyOworQ0JENDtDQkQ0OzExMEQgMTE3MztDQkQ0OzExMEQgMTE3MzsKK0NCRDU7Q0JENTsxMTBEIDExNzMgMTFBODtDQkQ1OzExMEQgMTE3MyAxMUE4OworQ0JENjtDQkQ2OzExMEQgMTE3MyAxMUE5O0NCRDY7MTEwRCAxMTczIDExQTk7CitDQkQ3O0NCRDc7MTEwRCAxMTczIDExQUE7Q0JENzsxMTBEIDExNzMgMTFBQTsKK0NCRDg7Q0JEODsxMTBEIDExNzMgMTFBQjtDQkQ4OzExMEQgMTE3MyAxMUFCOworQ0JEOTtDQkQ5OzExMEQgMTE3MyAxMUFDO0NCRDk7MTEwRCAxMTczIDExQUM7CitDQkRBO0NCREE7MTEwRCAxMTczIDExQUQ7Q0JEQTsxMTBEIDExNzMgMTFBRDsKK0NCREI7Q0JEQjsxMTBEIDExNzMgMTFBRTtDQkRCOzExMEQgMTE3MyAxMUFFOworQ0JEQztDQkRDOzExMEQgMTE3MyAxMUFGO0NCREM7MTEwRCAxMTczIDExQUY7CitDQkREO0NCREQ7MTEwRCAxMTczIDExQjA7Q0JERDsxMTBEIDExNzMgMTFCMDsKK0NCREU7Q0JERTsxMTBEIDExNzMgMTFCMTtDQkRFOzExMEQgMTE3MyAxMUIxOworQ0JERjtDQkRGOzExMEQgMTE3MyAxMUIyO0NCREY7MTEwRCAxMTczIDExQjI7CitDQkUwO0NCRTA7MTEwRCAxMTczIDExQjM7Q0JFMDsxMTBEIDExNzMgMTFCMzsKK0NCRTE7Q0JFMTsxMTBEIDExNzMgMTFCNDtDQkUxOzExMEQgMTE3MyAxMUI0OworQ0JFMjtDQkUyOzExMEQgMTE3MyAxMUI1O0NCRTI7MTEwRCAxMTczIDExQjU7CitDQkUzO0NCRTM7MTEwRCAxMTczIDExQjY7Q0JFMzsxMTBEIDExNzMgMTFCNjsKK0NCRTQ7Q0JFNDsxMTBEIDExNzMgMTFCNztDQkU0OzExMEQgMTE3MyAxMUI3OworQ0JFNTtDQkU1OzExMEQgMTE3MyAxMUI4O0NCRTU7MTEwRCAxMTczIDExQjg7CitDQkU2O0NCRTY7MTEwRCAxMTczIDExQjk7Q0JFNjsxMTBEIDExNzMgMTFCOTsKK0NCRTc7Q0JFNzsxMTBEIDExNzMgMTFCQTtDQkU3OzExMEQgMTE3MyAxMUJBOworQ0JFODtDQkU4OzExMEQgMTE3MyAxMUJCO0NCRTg7MTEwRCAxMTczIDExQkI7CitDQkU5O0NCRTk7MTEwRCAxMTczIDExQkM7Q0JFOTsxMTBEIDExNzMgMTFCQzsKK0NCRUE7Q0JFQTsxMTBEIDExNzMgMTFCRDtDQkVBOzExMEQgMTE3MyAxMUJEOworQ0JFQjtDQkVCOzExMEQgMTE3MyAxMUJFO0NCRUI7MTEwRCAxMTczIDExQkU7CitDQkVDO0NCRUM7MTEwRCAxMTczIDExQkY7Q0JFQzsxMTBEIDExNzMgMTFCRjsKK0NCRUQ7Q0JFRDsxMTBEIDExNzMgMTFDMDtDQkVEOzExMEQgMTE3MyAxMUMwOworQ0JFRTtDQkVFOzExMEQgMTE3MyAxMUMxO0NCRUU7MTEwRCAxMTczIDExQzE7CitDQkVGO0NCRUY7MTEwRCAxMTczIDExQzI7Q0JFRjsxMTBEIDExNzMgMTFDMjsKK0NCRjA7Q0JGMDsxMTBEIDExNzQ7Q0JGMDsxMTBEIDExNzQ7CitDQkYxO0NCRjE7MTEwRCAxMTc0IDExQTg7Q0JGMTsxMTBEIDExNzQgMTFBODsKK0NCRjI7Q0JGMjsxMTBEIDExNzQgMTFBOTtDQkYyOzExMEQgMTE3NCAxMUE5OworQ0JGMztDQkYzOzExMEQgMTE3NCAxMUFBO0NCRjM7MTEwRCAxMTc0IDExQUE7CitDQkY0O0NCRjQ7MTEwRCAxMTc0IDExQUI7Q0JGNDsxMTBEIDExNzQgMTFBQjsKK0NCRjU7Q0JGNTsxMTBEIDExNzQgMTFBQztDQkY1OzExMEQgMTE3NCAxMUFDOworQ0JGNjtDQkY2OzExMEQgMTE3NCAxMUFEO0NCRjY7MTEwRCAxMTc0IDExQUQ7CitDQkY3O0NCRjc7MTEwRCAxMTc0IDExQUU7Q0JGNzsxMTBEIDExNzQgMTFBRTsKK0NCRjg7Q0JGODsxMTBEIDExNzQgMTFBRjtDQkY4OzExMEQgMTE3NCAxMUFGOworQ0JGOTtDQkY5OzExMEQgMTE3NCAxMUIwO0NCRjk7MTEwRCAxMTc0IDExQjA7CitDQkZBO0NCRkE7MTEwRCAxMTc0IDExQjE7Q0JGQTsxMTBEIDExNzQgMTFCMTsKK0NCRkI7Q0JGQjsxMTBEIDExNzQgMTFCMjtDQkZCOzExMEQgMTE3NCAxMUIyOworQ0JGQztDQkZDOzExMEQgMTE3NCAxMUIzO0NCRkM7MTEwRCAxMTc0IDExQjM7CitDQkZEO0NCRkQ7MTEwRCAxMTc0IDExQjQ7Q0JGRDsxMTBEIDExNzQgMTFCNDsKK0NCRkU7Q0JGRTsxMTBEIDExNzQgMTFCNTtDQkZFOzExMEQgMTE3NCAxMUI1OworQ0JGRjtDQkZGOzExMEQgMTE3NCAxMUI2O0NCRkY7MTEwRCAxMTc0IDExQjY7CitDQzAwO0NDMDA7MTEwRCAxMTc0IDExQjc7Q0MwMDsxMTBEIDExNzQgMTFCNzsKK0NDMDE7Q0MwMTsxMTBEIDExNzQgMTFCODtDQzAxOzExMEQgMTE3NCAxMUI4OworQ0MwMjtDQzAyOzExMEQgMTE3NCAxMUI5O0NDMDI7MTEwRCAxMTc0IDExQjk7CitDQzAzO0NDMDM7MTEwRCAxMTc0IDExQkE7Q0MwMzsxMTBEIDExNzQgMTFCQTsKK0NDMDQ7Q0MwNDsxMTBEIDExNzQgMTFCQjtDQzA0OzExMEQgMTE3NCAxMUJCOworQ0MwNTtDQzA1OzExMEQgMTE3NCAxMUJDO0NDMDU7MTEwRCAxMTc0IDExQkM7CitDQzA2O0NDMDY7MTEwRCAxMTc0IDExQkQ7Q0MwNjsxMTBEIDExNzQgMTFCRDsKK0NDMDc7Q0MwNzsxMTBEIDExNzQgMTFCRTtDQzA3OzExMEQgMTE3NCAxMUJFOworQ0MwODtDQzA4OzExMEQgMTE3NCAxMUJGO0NDMDg7MTEwRCAxMTc0IDExQkY7CitDQzA5O0NDMDk7MTEwRCAxMTc0IDExQzA7Q0MwOTsxMTBEIDExNzQgMTFDMDsKK0NDMEE7Q0MwQTsxMTBEIDExNzQgMTFDMTtDQzBBOzExMEQgMTE3NCAxMUMxOworQ0MwQjtDQzBCOzExMEQgMTE3NCAxMUMyO0NDMEI7MTEwRCAxMTc0IDExQzI7CitDQzBDO0NDMEM7MTEwRCAxMTc1O0NDMEM7MTEwRCAxMTc1OworQ0MwRDtDQzBEOzExMEQgMTE3NSAxMUE4O0NDMEQ7MTEwRCAxMTc1IDExQTg7CitDQzBFO0NDMEU7MTEwRCAxMTc1IDExQTk7Q0MwRTsxMTBEIDExNzUgMTFBOTsKK0NDMEY7Q0MwRjsxMTBEIDExNzUgMTFBQTtDQzBGOzExMEQgMTE3NSAxMUFBOworQ0MxMDtDQzEwOzExMEQgMTE3NSAxMUFCO0NDMTA7MTEwRCAxMTc1IDExQUI7CitDQzExO0NDMTE7MTEwRCAxMTc1IDExQUM7Q0MxMTsxMTBEIDExNzUgMTFBQzsKK0NDMTI7Q0MxMjsxMTBEIDExNzUgMTFBRDtDQzEyOzExMEQgMTE3NSAxMUFEOworQ0MxMztDQzEzOzExMEQgMTE3NSAxMUFFO0NDMTM7MTEwRCAxMTc1IDExQUU7CitDQzE0O0NDMTQ7MTEwRCAxMTc1IDExQUY7Q0MxNDsxMTBEIDExNzUgMTFBRjsKK0NDMTU7Q0MxNTsxMTBEIDExNzUgMTFCMDtDQzE1OzExMEQgMTE3NSAxMUIwOworQ0MxNjtDQzE2OzExMEQgMTE3NSAxMUIxO0NDMTY7MTEwRCAxMTc1IDExQjE7CitDQzE3O0NDMTc7MTEwRCAxMTc1IDExQjI7Q0MxNzsxMTBEIDExNzUgMTFCMjsKK0NDMTg7Q0MxODsxMTBEIDExNzUgMTFCMztDQzE4OzExMEQgMTE3NSAxMUIzOworQ0MxOTtDQzE5OzExMEQgMTE3NSAxMUI0O0NDMTk7MTEwRCAxMTc1IDExQjQ7CitDQzFBO0NDMUE7MTEwRCAxMTc1IDExQjU7Q0MxQTsxMTBEIDExNzUgMTFCNTsKK0NDMUI7Q0MxQjsxMTBEIDExNzUgMTFCNjtDQzFCOzExMEQgMTE3NSAxMUI2OworQ0MxQztDQzFDOzExMEQgMTE3NSAxMUI3O0NDMUM7MTEwRCAxMTc1IDExQjc7CitDQzFEO0NDMUQ7MTEwRCAxMTc1IDExQjg7Q0MxRDsxMTBEIDExNzUgMTFCODsKK0NDMUU7Q0MxRTsxMTBEIDExNzUgMTFCOTtDQzFFOzExMEQgMTE3NSAxMUI5OworQ0MxRjtDQzFGOzExMEQgMTE3NSAxMUJBO0NDMUY7MTEwRCAxMTc1IDExQkE7CitDQzIwO0NDMjA7MTEwRCAxMTc1IDExQkI7Q0MyMDsxMTBEIDExNzUgMTFCQjsKK0NDMjE7Q0MyMTsxMTBEIDExNzUgMTFCQztDQzIxOzExMEQgMTE3NSAxMUJDOworQ0MyMjtDQzIyOzExMEQgMTE3NSAxMUJEO0NDMjI7MTEwRCAxMTc1IDExQkQ7CitDQzIzO0NDMjM7MTEwRCAxMTc1IDExQkU7Q0MyMzsxMTBEIDExNzUgMTFCRTsKK0NDMjQ7Q0MyNDsxMTBEIDExNzUgMTFCRjtDQzI0OzExMEQgMTE3NSAxMUJGOworQ0MyNTtDQzI1OzExMEQgMTE3NSAxMUMwO0NDMjU7MTEwRCAxMTc1IDExQzA7CitDQzI2O0NDMjY7MTEwRCAxMTc1IDExQzE7Q0MyNjsxMTBEIDExNzUgMTFDMTsKK0NDMjc7Q0MyNzsxMTBEIDExNzUgMTFDMjtDQzI3OzExMEQgMTE3NSAxMUMyOworQ0MyODtDQzI4OzExMEUgMTE2MTtDQzI4OzExMEUgMTE2MTsKK0NDMjk7Q0MyOTsxMTBFIDExNjEgMTFBODtDQzI5OzExMEUgMTE2MSAxMUE4OworQ0MyQTtDQzJBOzExMEUgMTE2MSAxMUE5O0NDMkE7MTEwRSAxMTYxIDExQTk7CitDQzJCO0NDMkI7MTEwRSAxMTYxIDExQUE7Q0MyQjsxMTBFIDExNjEgMTFBQTsKK0NDMkM7Q0MyQzsxMTBFIDExNjEgMTFBQjtDQzJDOzExMEUgMTE2MSAxMUFCOworQ0MyRDtDQzJEOzExMEUgMTE2MSAxMUFDO0NDMkQ7MTEwRSAxMTYxIDExQUM7CitDQzJFO0NDMkU7MTEwRSAxMTYxIDExQUQ7Q0MyRTsxMTBFIDExNjEgMTFBRDsKK0NDMkY7Q0MyRjsxMTBFIDExNjEgMTFBRTtDQzJGOzExMEUgMTE2MSAxMUFFOworQ0MzMDtDQzMwOzExMEUgMTE2MSAxMUFGO0NDMzA7MTEwRSAxMTYxIDExQUY7CitDQzMxO0NDMzE7MTEwRSAxMTYxIDExQjA7Q0MzMTsxMTBFIDExNjEgMTFCMDsKK0NDMzI7Q0MzMjsxMTBFIDExNjEgMTFCMTtDQzMyOzExMEUgMTE2MSAxMUIxOworQ0MzMztDQzMzOzExMEUgMTE2MSAxMUIyO0NDMzM7MTEwRSAxMTYxIDExQjI7CitDQzM0O0NDMzQ7MTEwRSAxMTYxIDExQjM7Q0MzNDsxMTBFIDExNjEgMTFCMzsKK0NDMzU7Q0MzNTsxMTBFIDExNjEgMTFCNDtDQzM1OzExMEUgMTE2MSAxMUI0OworQ0MzNjtDQzM2OzExMEUgMTE2MSAxMUI1O0NDMzY7MTEwRSAxMTYxIDExQjU7CitDQzM3O0NDMzc7MTEwRSAxMTYxIDExQjY7Q0MzNzsxMTBFIDExNjEgMTFCNjsKK0NDMzg7Q0MzODsxMTBFIDExNjEgMTFCNztDQzM4OzExMEUgMTE2MSAxMUI3OworQ0MzOTtDQzM5OzExMEUgMTE2MSAxMUI4O0NDMzk7MTEwRSAxMTYxIDExQjg7CitDQzNBO0NDM0E7MTEwRSAxMTYxIDExQjk7Q0MzQTsxMTBFIDExNjEgMTFCOTsKK0NDM0I7Q0MzQjsxMTBFIDExNjEgMTFCQTtDQzNCOzExMEUgMTE2MSAxMUJBOworQ0MzQztDQzNDOzExMEUgMTE2MSAxMUJCO0NDM0M7MTEwRSAxMTYxIDExQkI7CitDQzNEO0NDM0Q7MTEwRSAxMTYxIDExQkM7Q0MzRDsxMTBFIDExNjEgMTFCQzsKK0NDM0U7Q0MzRTsxMTBFIDExNjEgMTFCRDtDQzNFOzExMEUgMTE2MSAxMUJEOworQ0MzRjtDQzNGOzExMEUgMTE2MSAxMUJFO0NDM0Y7MTEwRSAxMTYxIDExQkU7CitDQzQwO0NDNDA7MTEwRSAxMTYxIDExQkY7Q0M0MDsxMTBFIDExNjEgMTFCRjsKK0NDNDE7Q0M0MTsxMTBFIDExNjEgMTFDMDtDQzQxOzExMEUgMTE2MSAxMUMwOworQ0M0MjtDQzQyOzExMEUgMTE2MSAxMUMxO0NDNDI7MTEwRSAxMTYxIDExQzE7CitDQzQzO0NDNDM7MTEwRSAxMTYxIDExQzI7Q0M0MzsxMTBFIDExNjEgMTFDMjsKK0NDNDQ7Q0M0NDsxMTBFIDExNjI7Q0M0NDsxMTBFIDExNjI7CitDQzQ1O0NDNDU7MTEwRSAxMTYyIDExQTg7Q0M0NTsxMTBFIDExNjIgMTFBODsKK0NDNDY7Q0M0NjsxMTBFIDExNjIgMTFBOTtDQzQ2OzExMEUgMTE2MiAxMUE5OworQ0M0NztDQzQ3OzExMEUgMTE2MiAxMUFBO0NDNDc7MTEwRSAxMTYyIDExQUE7CitDQzQ4O0NDNDg7MTEwRSAxMTYyIDExQUI7Q0M0ODsxMTBFIDExNjIgMTFBQjsKK0NDNDk7Q0M0OTsxMTBFIDExNjIgMTFBQztDQzQ5OzExMEUgMTE2MiAxMUFDOworQ0M0QTtDQzRBOzExMEUgMTE2MiAxMUFEO0NDNEE7MTEwRSAxMTYyIDExQUQ7CitDQzRCO0NDNEI7MTEwRSAxMTYyIDExQUU7Q0M0QjsxMTBFIDExNjIgMTFBRTsKK0NDNEM7Q0M0QzsxMTBFIDExNjIgMTFBRjtDQzRDOzExMEUgMTE2MiAxMUFGOworQ0M0RDtDQzREOzExMEUgMTE2MiAxMUIwO0NDNEQ7MTEwRSAxMTYyIDExQjA7CitDQzRFO0NDNEU7MTEwRSAxMTYyIDExQjE7Q0M0RTsxMTBFIDExNjIgMTFCMTsKK0NDNEY7Q0M0RjsxMTBFIDExNjIgMTFCMjtDQzRGOzExMEUgMTE2MiAxMUIyOworQ0M1MDtDQzUwOzExMEUgMTE2MiAxMUIzO0NDNTA7MTEwRSAxMTYyIDExQjM7CitDQzUxO0NDNTE7MTEwRSAxMTYyIDExQjQ7Q0M1MTsxMTBFIDExNjIgMTFCNDsKK0NDNTI7Q0M1MjsxMTBFIDExNjIgMTFCNTtDQzUyOzExMEUgMTE2MiAxMUI1OworQ0M1MztDQzUzOzExMEUgMTE2MiAxMUI2O0NDNTM7MTEwRSAxMTYyIDExQjY7CitDQzU0O0NDNTQ7MTEwRSAxMTYyIDExQjc7Q0M1NDsxMTBFIDExNjIgMTFCNzsKK0NDNTU7Q0M1NTsxMTBFIDExNjIgMTFCODtDQzU1OzExMEUgMTE2MiAxMUI4OworQ0M1NjtDQzU2OzExMEUgMTE2MiAxMUI5O0NDNTY7MTEwRSAxMTYyIDExQjk7CitDQzU3O0NDNTc7MTEwRSAxMTYyIDExQkE7Q0M1NzsxMTBFIDExNjIgMTFCQTsKK0NDNTg7Q0M1ODsxMTBFIDExNjIgMTFCQjtDQzU4OzExMEUgMTE2MiAxMUJCOworQ0M1OTtDQzU5OzExMEUgMTE2MiAxMUJDO0NDNTk7MTEwRSAxMTYyIDExQkM7CitDQzVBO0NDNUE7MTEwRSAxMTYyIDExQkQ7Q0M1QTsxMTBFIDExNjIgMTFCRDsKK0NDNUI7Q0M1QjsxMTBFIDExNjIgMTFCRTtDQzVCOzExMEUgMTE2MiAxMUJFOworQ0M1QztDQzVDOzExMEUgMTE2MiAxMUJGO0NDNUM7MTEwRSAxMTYyIDExQkY7CitDQzVEO0NDNUQ7MTEwRSAxMTYyIDExQzA7Q0M1RDsxMTBFIDExNjIgMTFDMDsKK0NDNUU7Q0M1RTsxMTBFIDExNjIgMTFDMTtDQzVFOzExMEUgMTE2MiAxMUMxOworQ0M1RjtDQzVGOzExMEUgMTE2MiAxMUMyO0NDNUY7MTEwRSAxMTYyIDExQzI7CitDQzYwO0NDNjA7MTEwRSAxMTYzO0NDNjA7MTEwRSAxMTYzOworQ0M2MTtDQzYxOzExMEUgMTE2MyAxMUE4O0NDNjE7MTEwRSAxMTYzIDExQTg7CitDQzYyO0NDNjI7MTEwRSAxMTYzIDExQTk7Q0M2MjsxMTBFIDExNjMgMTFBOTsKK0NDNjM7Q0M2MzsxMTBFIDExNjMgMTFBQTtDQzYzOzExMEUgMTE2MyAxMUFBOworQ0M2NDtDQzY0OzExMEUgMTE2MyAxMUFCO0NDNjQ7MTEwRSAxMTYzIDExQUI7CitDQzY1O0NDNjU7MTEwRSAxMTYzIDExQUM7Q0M2NTsxMTBFIDExNjMgMTFBQzsKK0NDNjY7Q0M2NjsxMTBFIDExNjMgMTFBRDtDQzY2OzExMEUgMTE2MyAxMUFEOworQ0M2NztDQzY3OzExMEUgMTE2MyAxMUFFO0NDNjc7MTEwRSAxMTYzIDExQUU7CitDQzY4O0NDNjg7MTEwRSAxMTYzIDExQUY7Q0M2ODsxMTBFIDExNjMgMTFBRjsKK0NDNjk7Q0M2OTsxMTBFIDExNjMgMTFCMDtDQzY5OzExMEUgMTE2MyAxMUIwOworQ0M2QTtDQzZBOzExMEUgMTE2MyAxMUIxO0NDNkE7MTEwRSAxMTYzIDExQjE7CitDQzZCO0NDNkI7MTEwRSAxMTYzIDExQjI7Q0M2QjsxMTBFIDExNjMgMTFCMjsKK0NDNkM7Q0M2QzsxMTBFIDExNjMgMTFCMztDQzZDOzExMEUgMTE2MyAxMUIzOworQ0M2RDtDQzZEOzExMEUgMTE2MyAxMUI0O0NDNkQ7MTEwRSAxMTYzIDExQjQ7CitDQzZFO0NDNkU7MTEwRSAxMTYzIDExQjU7Q0M2RTsxMTBFIDExNjMgMTFCNTsKK0NDNkY7Q0M2RjsxMTBFIDExNjMgMTFCNjtDQzZGOzExMEUgMTE2MyAxMUI2OworQ0M3MDtDQzcwOzExMEUgMTE2MyAxMUI3O0NDNzA7MTEwRSAxMTYzIDExQjc7CitDQzcxO0NDNzE7MTEwRSAxMTYzIDExQjg7Q0M3MTsxMTBFIDExNjMgMTFCODsKK0NDNzI7Q0M3MjsxMTBFIDExNjMgMTFCOTtDQzcyOzExMEUgMTE2MyAxMUI5OworQ0M3MztDQzczOzExMEUgMTE2MyAxMUJBO0NDNzM7MTEwRSAxMTYzIDExQkE7CitDQzc0O0NDNzQ7MTEwRSAxMTYzIDExQkI7Q0M3NDsxMTBFIDExNjMgMTFCQjsKK0NDNzU7Q0M3NTsxMTBFIDExNjMgMTFCQztDQzc1OzExMEUgMTE2MyAxMUJDOworQ0M3NjtDQzc2OzExMEUgMTE2MyAxMUJEO0NDNzY7MTEwRSAxMTYzIDExQkQ7CitDQzc3O0NDNzc7MTEwRSAxMTYzIDExQkU7Q0M3NzsxMTBFIDExNjMgMTFCRTsKK0NDNzg7Q0M3ODsxMTBFIDExNjMgMTFCRjtDQzc4OzExMEUgMTE2MyAxMUJGOworQ0M3OTtDQzc5OzExMEUgMTE2MyAxMUMwO0NDNzk7MTEwRSAxMTYzIDExQzA7CitDQzdBO0NDN0E7MTEwRSAxMTYzIDExQzE7Q0M3QTsxMTBFIDExNjMgMTFDMTsKK0NDN0I7Q0M3QjsxMTBFIDExNjMgMTFDMjtDQzdCOzExMEUgMTE2MyAxMUMyOworQ0M3QztDQzdDOzExMEUgMTE2NDtDQzdDOzExMEUgMTE2NDsKK0NDN0Q7Q0M3RDsxMTBFIDExNjQgMTFBODtDQzdEOzExMEUgMTE2NCAxMUE4OworQ0M3RTtDQzdFOzExMEUgMTE2NCAxMUE5O0NDN0U7MTEwRSAxMTY0IDExQTk7CitDQzdGO0NDN0Y7MTEwRSAxMTY0IDExQUE7Q0M3RjsxMTBFIDExNjQgMTFBQTsKK0NDODA7Q0M4MDsxMTBFIDExNjQgMTFBQjtDQzgwOzExMEUgMTE2NCAxMUFCOworQ0M4MTtDQzgxOzExMEUgMTE2NCAxMUFDO0NDODE7MTEwRSAxMTY0IDExQUM7CitDQzgyO0NDODI7MTEwRSAxMTY0IDExQUQ7Q0M4MjsxMTBFIDExNjQgMTFBRDsKK0NDODM7Q0M4MzsxMTBFIDExNjQgMTFBRTtDQzgzOzExMEUgMTE2NCAxMUFFOworQ0M4NDtDQzg0OzExMEUgMTE2NCAxMUFGO0NDODQ7MTEwRSAxMTY0IDExQUY7CitDQzg1O0NDODU7MTEwRSAxMTY0IDExQjA7Q0M4NTsxMTBFIDExNjQgMTFCMDsKK0NDODY7Q0M4NjsxMTBFIDExNjQgMTFCMTtDQzg2OzExMEUgMTE2NCAxMUIxOworQ0M4NztDQzg3OzExMEUgMTE2NCAxMUIyO0NDODc7MTEwRSAxMTY0IDExQjI7CitDQzg4O0NDODg7MTEwRSAxMTY0IDExQjM7Q0M4ODsxMTBFIDExNjQgMTFCMzsKK0NDODk7Q0M4OTsxMTBFIDExNjQgMTFCNDtDQzg5OzExMEUgMTE2NCAxMUI0OworQ0M4QTtDQzhBOzExMEUgMTE2NCAxMUI1O0NDOEE7MTEwRSAxMTY0IDExQjU7CitDQzhCO0NDOEI7MTEwRSAxMTY0IDExQjY7Q0M4QjsxMTBFIDExNjQgMTFCNjsKK0NDOEM7Q0M4QzsxMTBFIDExNjQgMTFCNztDQzhDOzExMEUgMTE2NCAxMUI3OworQ0M4RDtDQzhEOzExMEUgMTE2NCAxMUI4O0NDOEQ7MTEwRSAxMTY0IDExQjg7CitDQzhFO0NDOEU7MTEwRSAxMTY0IDExQjk7Q0M4RTsxMTBFIDExNjQgMTFCOTsKK0NDOEY7Q0M4RjsxMTBFIDExNjQgMTFCQTtDQzhGOzExMEUgMTE2NCAxMUJBOworQ0M5MDtDQzkwOzExMEUgMTE2NCAxMUJCO0NDOTA7MTEwRSAxMTY0IDExQkI7CitDQzkxO0NDOTE7MTEwRSAxMTY0IDExQkM7Q0M5MTsxMTBFIDExNjQgMTFCQzsKK0NDOTI7Q0M5MjsxMTBFIDExNjQgMTFCRDtDQzkyOzExMEUgMTE2NCAxMUJEOworQ0M5MztDQzkzOzExMEUgMTE2NCAxMUJFO0NDOTM7MTEwRSAxMTY0IDExQkU7CitDQzk0O0NDOTQ7MTEwRSAxMTY0IDExQkY7Q0M5NDsxMTBFIDExNjQgMTFCRjsKK0NDOTU7Q0M5NTsxMTBFIDExNjQgMTFDMDtDQzk1OzExMEUgMTE2NCAxMUMwOworQ0M5NjtDQzk2OzExMEUgMTE2NCAxMUMxO0NDOTY7MTEwRSAxMTY0IDExQzE7CitDQzk3O0NDOTc7MTEwRSAxMTY0IDExQzI7Q0M5NzsxMTBFIDExNjQgMTFDMjsKK0NDOTg7Q0M5ODsxMTBFIDExNjU7Q0M5ODsxMTBFIDExNjU7CitDQzk5O0NDOTk7MTEwRSAxMTY1IDExQTg7Q0M5OTsxMTBFIDExNjUgMTFBODsKK0NDOUE7Q0M5QTsxMTBFIDExNjUgMTFBOTtDQzlBOzExMEUgMTE2NSAxMUE5OworQ0M5QjtDQzlCOzExMEUgMTE2NSAxMUFBO0NDOUI7MTEwRSAxMTY1IDExQUE7CitDQzlDO0NDOUM7MTEwRSAxMTY1IDExQUI7Q0M5QzsxMTBFIDExNjUgMTFBQjsKK0NDOUQ7Q0M5RDsxMTBFIDExNjUgMTFBQztDQzlEOzExMEUgMTE2NSAxMUFDOworQ0M5RTtDQzlFOzExMEUgMTE2NSAxMUFEO0NDOUU7MTEwRSAxMTY1IDExQUQ7CitDQzlGO0NDOUY7MTEwRSAxMTY1IDExQUU7Q0M5RjsxMTBFIDExNjUgMTFBRTsKK0NDQTA7Q0NBMDsxMTBFIDExNjUgMTFBRjtDQ0EwOzExMEUgMTE2NSAxMUFGOworQ0NBMTtDQ0ExOzExMEUgMTE2NSAxMUIwO0NDQTE7MTEwRSAxMTY1IDExQjA7CitDQ0EyO0NDQTI7MTEwRSAxMTY1IDExQjE7Q0NBMjsxMTBFIDExNjUgMTFCMTsKK0NDQTM7Q0NBMzsxMTBFIDExNjUgMTFCMjtDQ0EzOzExMEUgMTE2NSAxMUIyOworQ0NBNDtDQ0E0OzExMEUgMTE2NSAxMUIzO0NDQTQ7MTEwRSAxMTY1IDExQjM7CitDQ0E1O0NDQTU7MTEwRSAxMTY1IDExQjQ7Q0NBNTsxMTBFIDExNjUgMTFCNDsKK0NDQTY7Q0NBNjsxMTBFIDExNjUgMTFCNTtDQ0E2OzExMEUgMTE2NSAxMUI1OworQ0NBNztDQ0E3OzExMEUgMTE2NSAxMUI2O0NDQTc7MTEwRSAxMTY1IDExQjY7CitDQ0E4O0NDQTg7MTEwRSAxMTY1IDExQjc7Q0NBODsxMTBFIDExNjUgMTFCNzsKK0NDQTk7Q0NBOTsxMTBFIDExNjUgMTFCODtDQ0E5OzExMEUgMTE2NSAxMUI4OworQ0NBQTtDQ0FBOzExMEUgMTE2NSAxMUI5O0NDQUE7MTEwRSAxMTY1IDExQjk7CitDQ0FCO0NDQUI7MTEwRSAxMTY1IDExQkE7Q0NBQjsxMTBFIDExNjUgMTFCQTsKK0NDQUM7Q0NBQzsxMTBFIDExNjUgMTFCQjtDQ0FDOzExMEUgMTE2NSAxMUJCOworQ0NBRDtDQ0FEOzExMEUgMTE2NSAxMUJDO0NDQUQ7MTEwRSAxMTY1IDExQkM7CitDQ0FFO0NDQUU7MTEwRSAxMTY1IDExQkQ7Q0NBRTsxMTBFIDExNjUgMTFCRDsKK0NDQUY7Q0NBRjsxMTBFIDExNjUgMTFCRTtDQ0FGOzExMEUgMTE2NSAxMUJFOworQ0NCMDtDQ0IwOzExMEUgMTE2NSAxMUJGO0NDQjA7MTEwRSAxMTY1IDExQkY7CitDQ0IxO0NDQjE7MTEwRSAxMTY1IDExQzA7Q0NCMTsxMTBFIDExNjUgMTFDMDsKK0NDQjI7Q0NCMjsxMTBFIDExNjUgMTFDMTtDQ0IyOzExMEUgMTE2NSAxMUMxOworQ0NCMztDQ0IzOzExMEUgMTE2NSAxMUMyO0NDQjM7MTEwRSAxMTY1IDExQzI7CitDQ0I0O0NDQjQ7MTEwRSAxMTY2O0NDQjQ7MTEwRSAxMTY2OworQ0NCNTtDQ0I1OzExMEUgMTE2NiAxMUE4O0NDQjU7MTEwRSAxMTY2IDExQTg7CitDQ0I2O0NDQjY7MTEwRSAxMTY2IDExQTk7Q0NCNjsxMTBFIDExNjYgMTFBOTsKK0NDQjc7Q0NCNzsxMTBFIDExNjYgMTFBQTtDQ0I3OzExMEUgMTE2NiAxMUFBOworQ0NCODtDQ0I4OzExMEUgMTE2NiAxMUFCO0NDQjg7MTEwRSAxMTY2IDExQUI7CitDQ0I5O0NDQjk7MTEwRSAxMTY2IDExQUM7Q0NCOTsxMTBFIDExNjYgMTFBQzsKK0NDQkE7Q0NCQTsxMTBFIDExNjYgMTFBRDtDQ0JBOzExMEUgMTE2NiAxMUFEOworQ0NCQjtDQ0JCOzExMEUgMTE2NiAxMUFFO0NDQkI7MTEwRSAxMTY2IDExQUU7CitDQ0JDO0NDQkM7MTEwRSAxMTY2IDExQUY7Q0NCQzsxMTBFIDExNjYgMTFBRjsKK0NDQkQ7Q0NCRDsxMTBFIDExNjYgMTFCMDtDQ0JEOzExMEUgMTE2NiAxMUIwOworQ0NCRTtDQ0JFOzExMEUgMTE2NiAxMUIxO0NDQkU7MTEwRSAxMTY2IDExQjE7CitDQ0JGO0NDQkY7MTEwRSAxMTY2IDExQjI7Q0NCRjsxMTBFIDExNjYgMTFCMjsKK0NDQzA7Q0NDMDsxMTBFIDExNjYgMTFCMztDQ0MwOzExMEUgMTE2NiAxMUIzOworQ0NDMTtDQ0MxOzExMEUgMTE2NiAxMUI0O0NDQzE7MTEwRSAxMTY2IDExQjQ7CitDQ0MyO0NDQzI7MTEwRSAxMTY2IDExQjU7Q0NDMjsxMTBFIDExNjYgMTFCNTsKK0NDQzM7Q0NDMzsxMTBFIDExNjYgMTFCNjtDQ0MzOzExMEUgMTE2NiAxMUI2OworQ0NDNDtDQ0M0OzExMEUgMTE2NiAxMUI3O0NDQzQ7MTEwRSAxMTY2IDExQjc7CitDQ0M1O0NDQzU7MTEwRSAxMTY2IDExQjg7Q0NDNTsxMTBFIDExNjYgMTFCODsKK0NDQzY7Q0NDNjsxMTBFIDExNjYgMTFCOTtDQ0M2OzExMEUgMTE2NiAxMUI5OworQ0NDNztDQ0M3OzExMEUgMTE2NiAxMUJBO0NDQzc7MTEwRSAxMTY2IDExQkE7CitDQ0M4O0NDQzg7MTEwRSAxMTY2IDExQkI7Q0NDODsxMTBFIDExNjYgMTFCQjsKK0NDQzk7Q0NDOTsxMTBFIDExNjYgMTFCQztDQ0M5OzExMEUgMTE2NiAxMUJDOworQ0NDQTtDQ0NBOzExMEUgMTE2NiAxMUJEO0NDQ0E7MTEwRSAxMTY2IDExQkQ7CitDQ0NCO0NDQ0I7MTEwRSAxMTY2IDExQkU7Q0NDQjsxMTBFIDExNjYgMTFCRTsKK0NDQ0M7Q0NDQzsxMTBFIDExNjYgMTFCRjtDQ0NDOzExMEUgMTE2NiAxMUJGOworQ0NDRDtDQ0NEOzExMEUgMTE2NiAxMUMwO0NDQ0Q7MTEwRSAxMTY2IDExQzA7CitDQ0NFO0NDQ0U7MTEwRSAxMTY2IDExQzE7Q0NDRTsxMTBFIDExNjYgMTFDMTsKK0NDQ0Y7Q0NDRjsxMTBFIDExNjYgMTFDMjtDQ0NGOzExMEUgMTE2NiAxMUMyOworQ0NEMDtDQ0QwOzExMEUgMTE2NztDQ0QwOzExMEUgMTE2NzsKK0NDRDE7Q0NEMTsxMTBFIDExNjcgMTFBODtDQ0QxOzExMEUgMTE2NyAxMUE4OworQ0NEMjtDQ0QyOzExMEUgMTE2NyAxMUE5O0NDRDI7MTEwRSAxMTY3IDExQTk7CitDQ0QzO0NDRDM7MTEwRSAxMTY3IDExQUE7Q0NEMzsxMTBFIDExNjcgMTFBQTsKK0NDRDQ7Q0NENDsxMTBFIDExNjcgMTFBQjtDQ0Q0OzExMEUgMTE2NyAxMUFCOworQ0NENTtDQ0Q1OzExMEUgMTE2NyAxMUFDO0NDRDU7MTEwRSAxMTY3IDExQUM7CitDQ0Q2O0NDRDY7MTEwRSAxMTY3IDExQUQ7Q0NENjsxMTBFIDExNjcgMTFBRDsKK0NDRDc7Q0NENzsxMTBFIDExNjcgMTFBRTtDQ0Q3OzExMEUgMTE2NyAxMUFFOworQ0NEODtDQ0Q4OzExMEUgMTE2NyAxMUFGO0NDRDg7MTEwRSAxMTY3IDExQUY7CitDQ0Q5O0NDRDk7MTEwRSAxMTY3IDExQjA7Q0NEOTsxMTBFIDExNjcgMTFCMDsKK0NDREE7Q0NEQTsxMTBFIDExNjcgMTFCMTtDQ0RBOzExMEUgMTE2NyAxMUIxOworQ0NEQjtDQ0RCOzExMEUgMTE2NyAxMUIyO0NDREI7MTEwRSAxMTY3IDExQjI7CitDQ0RDO0NDREM7MTEwRSAxMTY3IDExQjM7Q0NEQzsxMTBFIDExNjcgMTFCMzsKK0NDREQ7Q0NERDsxMTBFIDExNjcgMTFCNDtDQ0REOzExMEUgMTE2NyAxMUI0OworQ0NERTtDQ0RFOzExMEUgMTE2NyAxMUI1O0NDREU7MTEwRSAxMTY3IDExQjU7CitDQ0RGO0NDREY7MTEwRSAxMTY3IDExQjY7Q0NERjsxMTBFIDExNjcgMTFCNjsKK0NDRTA7Q0NFMDsxMTBFIDExNjcgMTFCNztDQ0UwOzExMEUgMTE2NyAxMUI3OworQ0NFMTtDQ0UxOzExMEUgMTE2NyAxMUI4O0NDRTE7MTEwRSAxMTY3IDExQjg7CitDQ0UyO0NDRTI7MTEwRSAxMTY3IDExQjk7Q0NFMjsxMTBFIDExNjcgMTFCOTsKK0NDRTM7Q0NFMzsxMTBFIDExNjcgMTFCQTtDQ0UzOzExMEUgMTE2NyAxMUJBOworQ0NFNDtDQ0U0OzExMEUgMTE2NyAxMUJCO0NDRTQ7MTEwRSAxMTY3IDExQkI7CitDQ0U1O0NDRTU7MTEwRSAxMTY3IDExQkM7Q0NFNTsxMTBFIDExNjcgMTFCQzsKK0NDRTY7Q0NFNjsxMTBFIDExNjcgMTFCRDtDQ0U2OzExMEUgMTE2NyAxMUJEOworQ0NFNztDQ0U3OzExMEUgMTE2NyAxMUJFO0NDRTc7MTEwRSAxMTY3IDExQkU7CitDQ0U4O0NDRTg7MTEwRSAxMTY3IDExQkY7Q0NFODsxMTBFIDExNjcgMTFCRjsKK0NDRTk7Q0NFOTsxMTBFIDExNjcgMTFDMDtDQ0U5OzExMEUgMTE2NyAxMUMwOworQ0NFQTtDQ0VBOzExMEUgMTE2NyAxMUMxO0NDRUE7MTEwRSAxMTY3IDExQzE7CitDQ0VCO0NDRUI7MTEwRSAxMTY3IDExQzI7Q0NFQjsxMTBFIDExNjcgMTFDMjsKK0NDRUM7Q0NFQzsxMTBFIDExNjg7Q0NFQzsxMTBFIDExNjg7CitDQ0VEO0NDRUQ7MTEwRSAxMTY4IDExQTg7Q0NFRDsxMTBFIDExNjggMTFBODsKK0NDRUU7Q0NFRTsxMTBFIDExNjggMTFBOTtDQ0VFOzExMEUgMTE2OCAxMUE5OworQ0NFRjtDQ0VGOzExMEUgMTE2OCAxMUFBO0NDRUY7MTEwRSAxMTY4IDExQUE7CitDQ0YwO0NDRjA7MTEwRSAxMTY4IDExQUI7Q0NGMDsxMTBFIDExNjggMTFBQjsKK0NDRjE7Q0NGMTsxMTBFIDExNjggMTFBQztDQ0YxOzExMEUgMTE2OCAxMUFDOworQ0NGMjtDQ0YyOzExMEUgMTE2OCAxMUFEO0NDRjI7MTEwRSAxMTY4IDExQUQ7CitDQ0YzO0NDRjM7MTEwRSAxMTY4IDExQUU7Q0NGMzsxMTBFIDExNjggMTFBRTsKK0NDRjQ7Q0NGNDsxMTBFIDExNjggMTFBRjtDQ0Y0OzExMEUgMTE2OCAxMUFGOworQ0NGNTtDQ0Y1OzExMEUgMTE2OCAxMUIwO0NDRjU7MTEwRSAxMTY4IDExQjA7CitDQ0Y2O0NDRjY7MTEwRSAxMTY4IDExQjE7Q0NGNjsxMTBFIDExNjggMTFCMTsKK0NDRjc7Q0NGNzsxMTBFIDExNjggMTFCMjtDQ0Y3OzExMEUgMTE2OCAxMUIyOworQ0NGODtDQ0Y4OzExMEUgMTE2OCAxMUIzO0NDRjg7MTEwRSAxMTY4IDExQjM7CitDQ0Y5O0NDRjk7MTEwRSAxMTY4IDExQjQ7Q0NGOTsxMTBFIDExNjggMTFCNDsKK0NDRkE7Q0NGQTsxMTBFIDExNjggMTFCNTtDQ0ZBOzExMEUgMTE2OCAxMUI1OworQ0NGQjtDQ0ZCOzExMEUgMTE2OCAxMUI2O0NDRkI7MTEwRSAxMTY4IDExQjY7CitDQ0ZDO0NDRkM7MTEwRSAxMTY4IDExQjc7Q0NGQzsxMTBFIDExNjggMTFCNzsKK0NDRkQ7Q0NGRDsxMTBFIDExNjggMTFCODtDQ0ZEOzExMEUgMTE2OCAxMUI4OworQ0NGRTtDQ0ZFOzExMEUgMTE2OCAxMUI5O0NDRkU7MTEwRSAxMTY4IDExQjk7CitDQ0ZGO0NDRkY7MTEwRSAxMTY4IDExQkE7Q0NGRjsxMTBFIDExNjggMTFCQTsKK0NEMDA7Q0QwMDsxMTBFIDExNjggMTFCQjtDRDAwOzExMEUgMTE2OCAxMUJCOworQ0QwMTtDRDAxOzExMEUgMTE2OCAxMUJDO0NEMDE7MTEwRSAxMTY4IDExQkM7CitDRDAyO0NEMDI7MTEwRSAxMTY4IDExQkQ7Q0QwMjsxMTBFIDExNjggMTFCRDsKK0NEMDM7Q0QwMzsxMTBFIDExNjggMTFCRTtDRDAzOzExMEUgMTE2OCAxMUJFOworQ0QwNDtDRDA0OzExMEUgMTE2OCAxMUJGO0NEMDQ7MTEwRSAxMTY4IDExQkY7CitDRDA1O0NEMDU7MTEwRSAxMTY4IDExQzA7Q0QwNTsxMTBFIDExNjggMTFDMDsKK0NEMDY7Q0QwNjsxMTBFIDExNjggMTFDMTtDRDA2OzExMEUgMTE2OCAxMUMxOworQ0QwNztDRDA3OzExMEUgMTE2OCAxMUMyO0NEMDc7MTEwRSAxMTY4IDExQzI7CitDRDA4O0NEMDg7MTEwRSAxMTY5O0NEMDg7MTEwRSAxMTY5OworQ0QwOTtDRDA5OzExMEUgMTE2OSAxMUE4O0NEMDk7MTEwRSAxMTY5IDExQTg7CitDRDBBO0NEMEE7MTEwRSAxMTY5IDExQTk7Q0QwQTsxMTBFIDExNjkgMTFBOTsKK0NEMEI7Q0QwQjsxMTBFIDExNjkgMTFBQTtDRDBCOzExMEUgMTE2OSAxMUFBOworQ0QwQztDRDBDOzExMEUgMTE2OSAxMUFCO0NEMEM7MTEwRSAxMTY5IDExQUI7CitDRDBEO0NEMEQ7MTEwRSAxMTY5IDExQUM7Q0QwRDsxMTBFIDExNjkgMTFBQzsKK0NEMEU7Q0QwRTsxMTBFIDExNjkgMTFBRDtDRDBFOzExMEUgMTE2OSAxMUFEOworQ0QwRjtDRDBGOzExMEUgMTE2OSAxMUFFO0NEMEY7MTEwRSAxMTY5IDExQUU7CitDRDEwO0NEMTA7MTEwRSAxMTY5IDExQUY7Q0QxMDsxMTBFIDExNjkgMTFBRjsKK0NEMTE7Q0QxMTsxMTBFIDExNjkgMTFCMDtDRDExOzExMEUgMTE2OSAxMUIwOworQ0QxMjtDRDEyOzExMEUgMTE2OSAxMUIxO0NEMTI7MTEwRSAxMTY5IDExQjE7CitDRDEzO0NEMTM7MTEwRSAxMTY5IDExQjI7Q0QxMzsxMTBFIDExNjkgMTFCMjsKK0NEMTQ7Q0QxNDsxMTBFIDExNjkgMTFCMztDRDE0OzExMEUgMTE2OSAxMUIzOworQ0QxNTtDRDE1OzExMEUgMTE2OSAxMUI0O0NEMTU7MTEwRSAxMTY5IDExQjQ7CitDRDE2O0NEMTY7MTEwRSAxMTY5IDExQjU7Q0QxNjsxMTBFIDExNjkgMTFCNTsKK0NEMTc7Q0QxNzsxMTBFIDExNjkgMTFCNjtDRDE3OzExMEUgMTE2OSAxMUI2OworQ0QxODtDRDE4OzExMEUgMTE2OSAxMUI3O0NEMTg7MTEwRSAxMTY5IDExQjc7CitDRDE5O0NEMTk7MTEwRSAxMTY5IDExQjg7Q0QxOTsxMTBFIDExNjkgMTFCODsKK0NEMUE7Q0QxQTsxMTBFIDExNjkgMTFCOTtDRDFBOzExMEUgMTE2OSAxMUI5OworQ0QxQjtDRDFCOzExMEUgMTE2OSAxMUJBO0NEMUI7MTEwRSAxMTY5IDExQkE7CitDRDFDO0NEMUM7MTEwRSAxMTY5IDExQkI7Q0QxQzsxMTBFIDExNjkgMTFCQjsKK0NEMUQ7Q0QxRDsxMTBFIDExNjkgMTFCQztDRDFEOzExMEUgMTE2OSAxMUJDOworQ0QxRTtDRDFFOzExMEUgMTE2OSAxMUJEO0NEMUU7MTEwRSAxMTY5IDExQkQ7CitDRDFGO0NEMUY7MTEwRSAxMTY5IDExQkU7Q0QxRjsxMTBFIDExNjkgMTFCRTsKK0NEMjA7Q0QyMDsxMTBFIDExNjkgMTFCRjtDRDIwOzExMEUgMTE2OSAxMUJGOworQ0QyMTtDRDIxOzExMEUgMTE2OSAxMUMwO0NEMjE7MTEwRSAxMTY5IDExQzA7CitDRDIyO0NEMjI7MTEwRSAxMTY5IDExQzE7Q0QyMjsxMTBFIDExNjkgMTFDMTsKK0NEMjM7Q0QyMzsxMTBFIDExNjkgMTFDMjtDRDIzOzExMEUgMTE2OSAxMUMyOworQ0QyNDtDRDI0OzExMEUgMTE2QTtDRDI0OzExMEUgMTE2QTsKK0NEMjU7Q0QyNTsxMTBFIDExNkEgMTFBODtDRDI1OzExMEUgMTE2QSAxMUE4OworQ0QyNjtDRDI2OzExMEUgMTE2QSAxMUE5O0NEMjY7MTEwRSAxMTZBIDExQTk7CitDRDI3O0NEMjc7MTEwRSAxMTZBIDExQUE7Q0QyNzsxMTBFIDExNkEgMTFBQTsKK0NEMjg7Q0QyODsxMTBFIDExNkEgMTFBQjtDRDI4OzExMEUgMTE2QSAxMUFCOworQ0QyOTtDRDI5OzExMEUgMTE2QSAxMUFDO0NEMjk7MTEwRSAxMTZBIDExQUM7CitDRDJBO0NEMkE7MTEwRSAxMTZBIDExQUQ7Q0QyQTsxMTBFIDExNkEgMTFBRDsKK0NEMkI7Q0QyQjsxMTBFIDExNkEgMTFBRTtDRDJCOzExMEUgMTE2QSAxMUFFOworQ0QyQztDRDJDOzExMEUgMTE2QSAxMUFGO0NEMkM7MTEwRSAxMTZBIDExQUY7CitDRDJEO0NEMkQ7MTEwRSAxMTZBIDExQjA7Q0QyRDsxMTBFIDExNkEgMTFCMDsKK0NEMkU7Q0QyRTsxMTBFIDExNkEgMTFCMTtDRDJFOzExMEUgMTE2QSAxMUIxOworQ0QyRjtDRDJGOzExMEUgMTE2QSAxMUIyO0NEMkY7MTEwRSAxMTZBIDExQjI7CitDRDMwO0NEMzA7MTEwRSAxMTZBIDExQjM7Q0QzMDsxMTBFIDExNkEgMTFCMzsKK0NEMzE7Q0QzMTsxMTBFIDExNkEgMTFCNDtDRDMxOzExMEUgMTE2QSAxMUI0OworQ0QzMjtDRDMyOzExMEUgMTE2QSAxMUI1O0NEMzI7MTEwRSAxMTZBIDExQjU7CitDRDMzO0NEMzM7MTEwRSAxMTZBIDExQjY7Q0QzMzsxMTBFIDExNkEgMTFCNjsKK0NEMzQ7Q0QzNDsxMTBFIDExNkEgMTFCNztDRDM0OzExMEUgMTE2QSAxMUI3OworQ0QzNTtDRDM1OzExMEUgMTE2QSAxMUI4O0NEMzU7MTEwRSAxMTZBIDExQjg7CitDRDM2O0NEMzY7MTEwRSAxMTZBIDExQjk7Q0QzNjsxMTBFIDExNkEgMTFCOTsKK0NEMzc7Q0QzNzsxMTBFIDExNkEgMTFCQTtDRDM3OzExMEUgMTE2QSAxMUJBOworQ0QzODtDRDM4OzExMEUgMTE2QSAxMUJCO0NEMzg7MTEwRSAxMTZBIDExQkI7CitDRDM5O0NEMzk7MTEwRSAxMTZBIDExQkM7Q0QzOTsxMTBFIDExNkEgMTFCQzsKK0NEM0E7Q0QzQTsxMTBFIDExNkEgMTFCRDtDRDNBOzExMEUgMTE2QSAxMUJEOworQ0QzQjtDRDNCOzExMEUgMTE2QSAxMUJFO0NEM0I7MTEwRSAxMTZBIDExQkU7CitDRDNDO0NEM0M7MTEwRSAxMTZBIDExQkY7Q0QzQzsxMTBFIDExNkEgMTFCRjsKK0NEM0Q7Q0QzRDsxMTBFIDExNkEgMTFDMDtDRDNEOzExMEUgMTE2QSAxMUMwOworQ0QzRTtDRDNFOzExMEUgMTE2QSAxMUMxO0NEM0U7MTEwRSAxMTZBIDExQzE7CitDRDNGO0NEM0Y7MTEwRSAxMTZBIDExQzI7Q0QzRjsxMTBFIDExNkEgMTFDMjsKK0NENDA7Q0Q0MDsxMTBFIDExNkI7Q0Q0MDsxMTBFIDExNkI7CitDRDQxO0NENDE7MTEwRSAxMTZCIDExQTg7Q0Q0MTsxMTBFIDExNkIgMTFBODsKK0NENDI7Q0Q0MjsxMTBFIDExNkIgMTFBOTtDRDQyOzExMEUgMTE2QiAxMUE5OworQ0Q0MztDRDQzOzExMEUgMTE2QiAxMUFBO0NENDM7MTEwRSAxMTZCIDExQUE7CitDRDQ0O0NENDQ7MTEwRSAxMTZCIDExQUI7Q0Q0NDsxMTBFIDExNkIgMTFBQjsKK0NENDU7Q0Q0NTsxMTBFIDExNkIgMTFBQztDRDQ1OzExMEUgMTE2QiAxMUFDOworQ0Q0NjtDRDQ2OzExMEUgMTE2QiAxMUFEO0NENDY7MTEwRSAxMTZCIDExQUQ7CitDRDQ3O0NENDc7MTEwRSAxMTZCIDExQUU7Q0Q0NzsxMTBFIDExNkIgMTFBRTsKK0NENDg7Q0Q0ODsxMTBFIDExNkIgMTFBRjtDRDQ4OzExMEUgMTE2QiAxMUFGOworQ0Q0OTtDRDQ5OzExMEUgMTE2QiAxMUIwO0NENDk7MTEwRSAxMTZCIDExQjA7CitDRDRBO0NENEE7MTEwRSAxMTZCIDExQjE7Q0Q0QTsxMTBFIDExNkIgMTFCMTsKK0NENEI7Q0Q0QjsxMTBFIDExNkIgMTFCMjtDRDRCOzExMEUgMTE2QiAxMUIyOworQ0Q0QztDRDRDOzExMEUgMTE2QiAxMUIzO0NENEM7MTEwRSAxMTZCIDExQjM7CitDRDREO0NENEQ7MTEwRSAxMTZCIDExQjQ7Q0Q0RDsxMTBFIDExNkIgMTFCNDsKK0NENEU7Q0Q0RTsxMTBFIDExNkIgMTFCNTtDRDRFOzExMEUgMTE2QiAxMUI1OworQ0Q0RjtDRDRGOzExMEUgMTE2QiAxMUI2O0NENEY7MTEwRSAxMTZCIDExQjY7CitDRDUwO0NENTA7MTEwRSAxMTZCIDExQjc7Q0Q1MDsxMTBFIDExNkIgMTFCNzsKK0NENTE7Q0Q1MTsxMTBFIDExNkIgMTFCODtDRDUxOzExMEUgMTE2QiAxMUI4OworQ0Q1MjtDRDUyOzExMEUgMTE2QiAxMUI5O0NENTI7MTEwRSAxMTZCIDExQjk7CitDRDUzO0NENTM7MTEwRSAxMTZCIDExQkE7Q0Q1MzsxMTBFIDExNkIgMTFCQTsKK0NENTQ7Q0Q1NDsxMTBFIDExNkIgMTFCQjtDRDU0OzExMEUgMTE2QiAxMUJCOworQ0Q1NTtDRDU1OzExMEUgMTE2QiAxMUJDO0NENTU7MTEwRSAxMTZCIDExQkM7CitDRDU2O0NENTY7MTEwRSAxMTZCIDExQkQ7Q0Q1NjsxMTBFIDExNkIgMTFCRDsKK0NENTc7Q0Q1NzsxMTBFIDExNkIgMTFCRTtDRDU3OzExMEUgMTE2QiAxMUJFOworQ0Q1ODtDRDU4OzExMEUgMTE2QiAxMUJGO0NENTg7MTEwRSAxMTZCIDExQkY7CitDRDU5O0NENTk7MTEwRSAxMTZCIDExQzA7Q0Q1OTsxMTBFIDExNkIgMTFDMDsKK0NENUE7Q0Q1QTsxMTBFIDExNkIgMTFDMTtDRDVBOzExMEUgMTE2QiAxMUMxOworQ0Q1QjtDRDVCOzExMEUgMTE2QiAxMUMyO0NENUI7MTEwRSAxMTZCIDExQzI7CitDRDVDO0NENUM7MTEwRSAxMTZDO0NENUM7MTEwRSAxMTZDOworQ0Q1RDtDRDVEOzExMEUgMTE2QyAxMUE4O0NENUQ7MTEwRSAxMTZDIDExQTg7CitDRDVFO0NENUU7MTEwRSAxMTZDIDExQTk7Q0Q1RTsxMTBFIDExNkMgMTFBOTsKK0NENUY7Q0Q1RjsxMTBFIDExNkMgMTFBQTtDRDVGOzExMEUgMTE2QyAxMUFBOworQ0Q2MDtDRDYwOzExMEUgMTE2QyAxMUFCO0NENjA7MTEwRSAxMTZDIDExQUI7CitDRDYxO0NENjE7MTEwRSAxMTZDIDExQUM7Q0Q2MTsxMTBFIDExNkMgMTFBQzsKK0NENjI7Q0Q2MjsxMTBFIDExNkMgMTFBRDtDRDYyOzExMEUgMTE2QyAxMUFEOworQ0Q2MztDRDYzOzExMEUgMTE2QyAxMUFFO0NENjM7MTEwRSAxMTZDIDExQUU7CitDRDY0O0NENjQ7MTEwRSAxMTZDIDExQUY7Q0Q2NDsxMTBFIDExNkMgMTFBRjsKK0NENjU7Q0Q2NTsxMTBFIDExNkMgMTFCMDtDRDY1OzExMEUgMTE2QyAxMUIwOworQ0Q2NjtDRDY2OzExMEUgMTE2QyAxMUIxO0NENjY7MTEwRSAxMTZDIDExQjE7CitDRDY3O0NENjc7MTEwRSAxMTZDIDExQjI7Q0Q2NzsxMTBFIDExNkMgMTFCMjsKK0NENjg7Q0Q2ODsxMTBFIDExNkMgMTFCMztDRDY4OzExMEUgMTE2QyAxMUIzOworQ0Q2OTtDRDY5OzExMEUgMTE2QyAxMUI0O0NENjk7MTEwRSAxMTZDIDExQjQ7CitDRDZBO0NENkE7MTEwRSAxMTZDIDExQjU7Q0Q2QTsxMTBFIDExNkMgMTFCNTsKK0NENkI7Q0Q2QjsxMTBFIDExNkMgMTFCNjtDRDZCOzExMEUgMTE2QyAxMUI2OworQ0Q2QztDRDZDOzExMEUgMTE2QyAxMUI3O0NENkM7MTEwRSAxMTZDIDExQjc7CitDRDZEO0NENkQ7MTEwRSAxMTZDIDExQjg7Q0Q2RDsxMTBFIDExNkMgMTFCODsKK0NENkU7Q0Q2RTsxMTBFIDExNkMgMTFCOTtDRDZFOzExMEUgMTE2QyAxMUI5OworQ0Q2RjtDRDZGOzExMEUgMTE2QyAxMUJBO0NENkY7MTEwRSAxMTZDIDExQkE7CitDRDcwO0NENzA7MTEwRSAxMTZDIDExQkI7Q0Q3MDsxMTBFIDExNkMgMTFCQjsKK0NENzE7Q0Q3MTsxMTBFIDExNkMgMTFCQztDRDcxOzExMEUgMTE2QyAxMUJDOworQ0Q3MjtDRDcyOzExMEUgMTE2QyAxMUJEO0NENzI7MTEwRSAxMTZDIDExQkQ7CitDRDczO0NENzM7MTEwRSAxMTZDIDExQkU7Q0Q3MzsxMTBFIDExNkMgMTFCRTsKK0NENzQ7Q0Q3NDsxMTBFIDExNkMgMTFCRjtDRDc0OzExMEUgMTE2QyAxMUJGOworQ0Q3NTtDRDc1OzExMEUgMTE2QyAxMUMwO0NENzU7MTEwRSAxMTZDIDExQzA7CitDRDc2O0NENzY7MTEwRSAxMTZDIDExQzE7Q0Q3NjsxMTBFIDExNkMgMTFDMTsKK0NENzc7Q0Q3NzsxMTBFIDExNkMgMTFDMjtDRDc3OzExMEUgMTE2QyAxMUMyOworQ0Q3ODtDRDc4OzExMEUgMTE2RDtDRDc4OzExMEUgMTE2RDsKK0NENzk7Q0Q3OTsxMTBFIDExNkQgMTFBODtDRDc5OzExMEUgMTE2RCAxMUE4OworQ0Q3QTtDRDdBOzExMEUgMTE2RCAxMUE5O0NEN0E7MTEwRSAxMTZEIDExQTk7CitDRDdCO0NEN0I7MTEwRSAxMTZEIDExQUE7Q0Q3QjsxMTBFIDExNkQgMTFBQTsKK0NEN0M7Q0Q3QzsxMTBFIDExNkQgMTFBQjtDRDdDOzExMEUgMTE2RCAxMUFCOworQ0Q3RDtDRDdEOzExMEUgMTE2RCAxMUFDO0NEN0Q7MTEwRSAxMTZEIDExQUM7CitDRDdFO0NEN0U7MTEwRSAxMTZEIDExQUQ7Q0Q3RTsxMTBFIDExNkQgMTFBRDsKK0NEN0Y7Q0Q3RjsxMTBFIDExNkQgMTFBRTtDRDdGOzExMEUgMTE2RCAxMUFFOworQ0Q4MDtDRDgwOzExMEUgMTE2RCAxMUFGO0NEODA7MTEwRSAxMTZEIDExQUY7CitDRDgxO0NEODE7MTEwRSAxMTZEIDExQjA7Q0Q4MTsxMTBFIDExNkQgMTFCMDsKK0NEODI7Q0Q4MjsxMTBFIDExNkQgMTFCMTtDRDgyOzExMEUgMTE2RCAxMUIxOworQ0Q4MztDRDgzOzExMEUgMTE2RCAxMUIyO0NEODM7MTEwRSAxMTZEIDExQjI7CitDRDg0O0NEODQ7MTEwRSAxMTZEIDExQjM7Q0Q4NDsxMTBFIDExNkQgMTFCMzsKK0NEODU7Q0Q4NTsxMTBFIDExNkQgMTFCNDtDRDg1OzExMEUgMTE2RCAxMUI0OworQ0Q4NjtDRDg2OzExMEUgMTE2RCAxMUI1O0NEODY7MTEwRSAxMTZEIDExQjU7CitDRDg3O0NEODc7MTEwRSAxMTZEIDExQjY7Q0Q4NzsxMTBFIDExNkQgMTFCNjsKK0NEODg7Q0Q4ODsxMTBFIDExNkQgMTFCNztDRDg4OzExMEUgMTE2RCAxMUI3OworQ0Q4OTtDRDg5OzExMEUgMTE2RCAxMUI4O0NEODk7MTEwRSAxMTZEIDExQjg7CitDRDhBO0NEOEE7MTEwRSAxMTZEIDExQjk7Q0Q4QTsxMTBFIDExNkQgMTFCOTsKK0NEOEI7Q0Q4QjsxMTBFIDExNkQgMTFCQTtDRDhCOzExMEUgMTE2RCAxMUJBOworQ0Q4QztDRDhDOzExMEUgMTE2RCAxMUJCO0NEOEM7MTEwRSAxMTZEIDExQkI7CitDRDhEO0NEOEQ7MTEwRSAxMTZEIDExQkM7Q0Q4RDsxMTBFIDExNkQgMTFCQzsKK0NEOEU7Q0Q4RTsxMTBFIDExNkQgMTFCRDtDRDhFOzExMEUgMTE2RCAxMUJEOworQ0Q4RjtDRDhGOzExMEUgMTE2RCAxMUJFO0NEOEY7MTEwRSAxMTZEIDExQkU7CitDRDkwO0NEOTA7MTEwRSAxMTZEIDExQkY7Q0Q5MDsxMTBFIDExNkQgMTFCRjsKK0NEOTE7Q0Q5MTsxMTBFIDExNkQgMTFDMDtDRDkxOzExMEUgMTE2RCAxMUMwOworQ0Q5MjtDRDkyOzExMEUgMTE2RCAxMUMxO0NEOTI7MTEwRSAxMTZEIDExQzE7CitDRDkzO0NEOTM7MTEwRSAxMTZEIDExQzI7Q0Q5MzsxMTBFIDExNkQgMTFDMjsKK0NEOTQ7Q0Q5NDsxMTBFIDExNkU7Q0Q5NDsxMTBFIDExNkU7CitDRDk1O0NEOTU7MTEwRSAxMTZFIDExQTg7Q0Q5NTsxMTBFIDExNkUgMTFBODsKK0NEOTY7Q0Q5NjsxMTBFIDExNkUgMTFBOTtDRDk2OzExMEUgMTE2RSAxMUE5OworQ0Q5NztDRDk3OzExMEUgMTE2RSAxMUFBO0NEOTc7MTEwRSAxMTZFIDExQUE7CitDRDk4O0NEOTg7MTEwRSAxMTZFIDExQUI7Q0Q5ODsxMTBFIDExNkUgMTFBQjsKK0NEOTk7Q0Q5OTsxMTBFIDExNkUgMTFBQztDRDk5OzExMEUgMTE2RSAxMUFDOworQ0Q5QTtDRDlBOzExMEUgMTE2RSAxMUFEO0NEOUE7MTEwRSAxMTZFIDExQUQ7CitDRDlCO0NEOUI7MTEwRSAxMTZFIDExQUU7Q0Q5QjsxMTBFIDExNkUgMTFBRTsKK0NEOUM7Q0Q5QzsxMTBFIDExNkUgMTFBRjtDRDlDOzExMEUgMTE2RSAxMUFGOworQ0Q5RDtDRDlEOzExMEUgMTE2RSAxMUIwO0NEOUQ7MTEwRSAxMTZFIDExQjA7CitDRDlFO0NEOUU7MTEwRSAxMTZFIDExQjE7Q0Q5RTsxMTBFIDExNkUgMTFCMTsKK0NEOUY7Q0Q5RjsxMTBFIDExNkUgMTFCMjtDRDlGOzExMEUgMTE2RSAxMUIyOworQ0RBMDtDREEwOzExMEUgMTE2RSAxMUIzO0NEQTA7MTEwRSAxMTZFIDExQjM7CitDREExO0NEQTE7MTEwRSAxMTZFIDExQjQ7Q0RBMTsxMTBFIDExNkUgMTFCNDsKK0NEQTI7Q0RBMjsxMTBFIDExNkUgMTFCNTtDREEyOzExMEUgMTE2RSAxMUI1OworQ0RBMztDREEzOzExMEUgMTE2RSAxMUI2O0NEQTM7MTEwRSAxMTZFIDExQjY7CitDREE0O0NEQTQ7MTEwRSAxMTZFIDExQjc7Q0RBNDsxMTBFIDExNkUgMTFCNzsKK0NEQTU7Q0RBNTsxMTBFIDExNkUgMTFCODtDREE1OzExMEUgMTE2RSAxMUI4OworQ0RBNjtDREE2OzExMEUgMTE2RSAxMUI5O0NEQTY7MTEwRSAxMTZFIDExQjk7CitDREE3O0NEQTc7MTEwRSAxMTZFIDExQkE7Q0RBNzsxMTBFIDExNkUgMTFCQTsKK0NEQTg7Q0RBODsxMTBFIDExNkUgMTFCQjtDREE4OzExMEUgMTE2RSAxMUJCOworQ0RBOTtDREE5OzExMEUgMTE2RSAxMUJDO0NEQTk7MTEwRSAxMTZFIDExQkM7CitDREFBO0NEQUE7MTEwRSAxMTZFIDExQkQ7Q0RBQTsxMTBFIDExNkUgMTFCRDsKK0NEQUI7Q0RBQjsxMTBFIDExNkUgMTFCRTtDREFCOzExMEUgMTE2RSAxMUJFOworQ0RBQztDREFDOzExMEUgMTE2RSAxMUJGO0NEQUM7MTEwRSAxMTZFIDExQkY7CitDREFEO0NEQUQ7MTEwRSAxMTZFIDExQzA7Q0RBRDsxMTBFIDExNkUgMTFDMDsKK0NEQUU7Q0RBRTsxMTBFIDExNkUgMTFDMTtDREFFOzExMEUgMTE2RSAxMUMxOworQ0RBRjtDREFGOzExMEUgMTE2RSAxMUMyO0NEQUY7MTEwRSAxMTZFIDExQzI7CitDREIwO0NEQjA7MTEwRSAxMTZGO0NEQjA7MTEwRSAxMTZGOworQ0RCMTtDREIxOzExMEUgMTE2RiAxMUE4O0NEQjE7MTEwRSAxMTZGIDExQTg7CitDREIyO0NEQjI7MTEwRSAxMTZGIDExQTk7Q0RCMjsxMTBFIDExNkYgMTFBOTsKK0NEQjM7Q0RCMzsxMTBFIDExNkYgMTFBQTtDREIzOzExMEUgMTE2RiAxMUFBOworQ0RCNDtDREI0OzExMEUgMTE2RiAxMUFCO0NEQjQ7MTEwRSAxMTZGIDExQUI7CitDREI1O0NEQjU7MTEwRSAxMTZGIDExQUM7Q0RCNTsxMTBFIDExNkYgMTFBQzsKK0NEQjY7Q0RCNjsxMTBFIDExNkYgMTFBRDtDREI2OzExMEUgMTE2RiAxMUFEOworQ0RCNztDREI3OzExMEUgMTE2RiAxMUFFO0NEQjc7MTEwRSAxMTZGIDExQUU7CitDREI4O0NEQjg7MTEwRSAxMTZGIDExQUY7Q0RCODsxMTBFIDExNkYgMTFBRjsKK0NEQjk7Q0RCOTsxMTBFIDExNkYgMTFCMDtDREI5OzExMEUgMTE2RiAxMUIwOworQ0RCQTtDREJBOzExMEUgMTE2RiAxMUIxO0NEQkE7MTEwRSAxMTZGIDExQjE7CitDREJCO0NEQkI7MTEwRSAxMTZGIDExQjI7Q0RCQjsxMTBFIDExNkYgMTFCMjsKK0NEQkM7Q0RCQzsxMTBFIDExNkYgMTFCMztDREJDOzExMEUgMTE2RiAxMUIzOworQ0RCRDtDREJEOzExMEUgMTE2RiAxMUI0O0NEQkQ7MTEwRSAxMTZGIDExQjQ7CitDREJFO0NEQkU7MTEwRSAxMTZGIDExQjU7Q0RCRTsxMTBFIDExNkYgMTFCNTsKK0NEQkY7Q0RCRjsxMTBFIDExNkYgMTFCNjtDREJGOzExMEUgMTE2RiAxMUI2OworQ0RDMDtDREMwOzExMEUgMTE2RiAxMUI3O0NEQzA7MTEwRSAxMTZGIDExQjc7CitDREMxO0NEQzE7MTEwRSAxMTZGIDExQjg7Q0RDMTsxMTBFIDExNkYgMTFCODsKK0NEQzI7Q0RDMjsxMTBFIDExNkYgMTFCOTtDREMyOzExMEUgMTE2RiAxMUI5OworQ0RDMztDREMzOzExMEUgMTE2RiAxMUJBO0NEQzM7MTEwRSAxMTZGIDExQkE7CitDREM0O0NEQzQ7MTEwRSAxMTZGIDExQkI7Q0RDNDsxMTBFIDExNkYgMTFCQjsKK0NEQzU7Q0RDNTsxMTBFIDExNkYgMTFCQztDREM1OzExMEUgMTE2RiAxMUJDOworQ0RDNjtDREM2OzExMEUgMTE2RiAxMUJEO0NEQzY7MTEwRSAxMTZGIDExQkQ7CitDREM3O0NEQzc7MTEwRSAxMTZGIDExQkU7Q0RDNzsxMTBFIDExNkYgMTFCRTsKK0NEQzg7Q0RDODsxMTBFIDExNkYgMTFCRjtDREM4OzExMEUgMTE2RiAxMUJGOworQ0RDOTtDREM5OzExMEUgMTE2RiAxMUMwO0NEQzk7MTEwRSAxMTZGIDExQzA7CitDRENBO0NEQ0E7MTEwRSAxMTZGIDExQzE7Q0RDQTsxMTBFIDExNkYgMTFDMTsKK0NEQ0I7Q0RDQjsxMTBFIDExNkYgMTFDMjtDRENCOzExMEUgMTE2RiAxMUMyOworQ0RDQztDRENDOzExMEUgMTE3MDtDRENDOzExMEUgMTE3MDsKK0NEQ0Q7Q0RDRDsxMTBFIDExNzAgMTFBODtDRENEOzExMEUgMTE3MCAxMUE4OworQ0RDRTtDRENFOzExMEUgMTE3MCAxMUE5O0NEQ0U7MTEwRSAxMTcwIDExQTk7CitDRENGO0NEQ0Y7MTEwRSAxMTcwIDExQUE7Q0RDRjsxMTBFIDExNzAgMTFBQTsKK0NERDA7Q0REMDsxMTBFIDExNzAgMTFBQjtDREQwOzExMEUgMTE3MCAxMUFCOworQ0REMTtDREQxOzExMEUgMTE3MCAxMUFDO0NERDE7MTEwRSAxMTcwIDExQUM7CitDREQyO0NERDI7MTEwRSAxMTcwIDExQUQ7Q0REMjsxMTBFIDExNzAgMTFBRDsKK0NERDM7Q0REMzsxMTBFIDExNzAgMTFBRTtDREQzOzExMEUgMTE3MCAxMUFFOworQ0RENDtDREQ0OzExMEUgMTE3MCAxMUFGO0NERDQ7MTEwRSAxMTcwIDExQUY7CitDREQ1O0NERDU7MTEwRSAxMTcwIDExQjA7Q0RENTsxMTBFIDExNzAgMTFCMDsKK0NERDY7Q0RENjsxMTBFIDExNzAgMTFCMTtDREQ2OzExMEUgMTE3MCAxMUIxOworQ0RENztDREQ3OzExMEUgMTE3MCAxMUIyO0NERDc7MTEwRSAxMTcwIDExQjI7CitDREQ4O0NERDg7MTEwRSAxMTcwIDExQjM7Q0REODsxMTBFIDExNzAgMTFCMzsKK0NERDk7Q0REOTsxMTBFIDExNzAgMTFCNDtDREQ5OzExMEUgMTE3MCAxMUI0OworQ0REQTtDRERBOzExMEUgMTE3MCAxMUI1O0NEREE7MTEwRSAxMTcwIDExQjU7CitDRERCO0NEREI7MTEwRSAxMTcwIDExQjY7Q0REQjsxMTBFIDExNzAgMTFCNjsKK0NEREM7Q0REQzsxMTBFIDExNzAgMTFCNztDRERDOzExMEUgMTE3MCAxMUI3OworQ0RERDtDREREOzExMEUgMTE3MCAxMUI4O0NEREQ7MTEwRSAxMTcwIDExQjg7CitDRERFO0NEREU7MTEwRSAxMTcwIDExQjk7Q0RERTsxMTBFIDExNzAgMTFCOTsKK0NEREY7Q0RERjsxMTBFIDExNzAgMTFCQTtDRERGOzExMEUgMTE3MCAxMUJBOworQ0RFMDtDREUwOzExMEUgMTE3MCAxMUJCO0NERTA7MTEwRSAxMTcwIDExQkI7CitDREUxO0NERTE7MTEwRSAxMTcwIDExQkM7Q0RFMTsxMTBFIDExNzAgMTFCQzsKK0NERTI7Q0RFMjsxMTBFIDExNzAgMTFCRDtDREUyOzExMEUgMTE3MCAxMUJEOworQ0RFMztDREUzOzExMEUgMTE3MCAxMUJFO0NERTM7MTEwRSAxMTcwIDExQkU7CitDREU0O0NERTQ7MTEwRSAxMTcwIDExQkY7Q0RFNDsxMTBFIDExNzAgMTFCRjsKK0NERTU7Q0RFNTsxMTBFIDExNzAgMTFDMDtDREU1OzExMEUgMTE3MCAxMUMwOworQ0RFNjtDREU2OzExMEUgMTE3MCAxMUMxO0NERTY7MTEwRSAxMTcwIDExQzE7CitDREU3O0NERTc7MTEwRSAxMTcwIDExQzI7Q0RFNzsxMTBFIDExNzAgMTFDMjsKK0NERTg7Q0RFODsxMTBFIDExNzE7Q0RFODsxMTBFIDExNzE7CitDREU5O0NERTk7MTEwRSAxMTcxIDExQTg7Q0RFOTsxMTBFIDExNzEgMTFBODsKK0NERUE7Q0RFQTsxMTBFIDExNzEgMTFBOTtDREVBOzExMEUgMTE3MSAxMUE5OworQ0RFQjtDREVCOzExMEUgMTE3MSAxMUFBO0NERUI7MTEwRSAxMTcxIDExQUE7CitDREVDO0NERUM7MTEwRSAxMTcxIDExQUI7Q0RFQzsxMTBFIDExNzEgMTFBQjsKK0NERUQ7Q0RFRDsxMTBFIDExNzEgMTFBQztDREVEOzExMEUgMTE3MSAxMUFDOworQ0RFRTtDREVFOzExMEUgMTE3MSAxMUFEO0NERUU7MTEwRSAxMTcxIDExQUQ7CitDREVGO0NERUY7MTEwRSAxMTcxIDExQUU7Q0RFRjsxMTBFIDExNzEgMTFBRTsKK0NERjA7Q0RGMDsxMTBFIDExNzEgMTFBRjtDREYwOzExMEUgMTE3MSAxMUFGOworQ0RGMTtDREYxOzExMEUgMTE3MSAxMUIwO0NERjE7MTEwRSAxMTcxIDExQjA7CitDREYyO0NERjI7MTEwRSAxMTcxIDExQjE7Q0RGMjsxMTBFIDExNzEgMTFCMTsKK0NERjM7Q0RGMzsxMTBFIDExNzEgMTFCMjtDREYzOzExMEUgMTE3MSAxMUIyOworQ0RGNDtDREY0OzExMEUgMTE3MSAxMUIzO0NERjQ7MTEwRSAxMTcxIDExQjM7CitDREY1O0NERjU7MTEwRSAxMTcxIDExQjQ7Q0RGNTsxMTBFIDExNzEgMTFCNDsKK0NERjY7Q0RGNjsxMTBFIDExNzEgMTFCNTtDREY2OzExMEUgMTE3MSAxMUI1OworQ0RGNztDREY3OzExMEUgMTE3MSAxMUI2O0NERjc7MTEwRSAxMTcxIDExQjY7CitDREY4O0NERjg7MTEwRSAxMTcxIDExQjc7Q0RGODsxMTBFIDExNzEgMTFCNzsKK0NERjk7Q0RGOTsxMTBFIDExNzEgMTFCODtDREY5OzExMEUgMTE3MSAxMUI4OworQ0RGQTtDREZBOzExMEUgMTE3MSAxMUI5O0NERkE7MTEwRSAxMTcxIDExQjk7CitDREZCO0NERkI7MTEwRSAxMTcxIDExQkE7Q0RGQjsxMTBFIDExNzEgMTFCQTsKK0NERkM7Q0RGQzsxMTBFIDExNzEgMTFCQjtDREZDOzExMEUgMTE3MSAxMUJCOworQ0RGRDtDREZEOzExMEUgMTE3MSAxMUJDO0NERkQ7MTEwRSAxMTcxIDExQkM7CitDREZFO0NERkU7MTEwRSAxMTcxIDExQkQ7Q0RGRTsxMTBFIDExNzEgMTFCRDsKK0NERkY7Q0RGRjsxMTBFIDExNzEgMTFCRTtDREZGOzExMEUgMTE3MSAxMUJFOworQ0UwMDtDRTAwOzExMEUgMTE3MSAxMUJGO0NFMDA7MTEwRSAxMTcxIDExQkY7CitDRTAxO0NFMDE7MTEwRSAxMTcxIDExQzA7Q0UwMTsxMTBFIDExNzEgMTFDMDsKK0NFMDI7Q0UwMjsxMTBFIDExNzEgMTFDMTtDRTAyOzExMEUgMTE3MSAxMUMxOworQ0UwMztDRTAzOzExMEUgMTE3MSAxMUMyO0NFMDM7MTEwRSAxMTcxIDExQzI7CitDRTA0O0NFMDQ7MTEwRSAxMTcyO0NFMDQ7MTEwRSAxMTcyOworQ0UwNTtDRTA1OzExMEUgMTE3MiAxMUE4O0NFMDU7MTEwRSAxMTcyIDExQTg7CitDRTA2O0NFMDY7MTEwRSAxMTcyIDExQTk7Q0UwNjsxMTBFIDExNzIgMTFBOTsKK0NFMDc7Q0UwNzsxMTBFIDExNzIgMTFBQTtDRTA3OzExMEUgMTE3MiAxMUFBOworQ0UwODtDRTA4OzExMEUgMTE3MiAxMUFCO0NFMDg7MTEwRSAxMTcyIDExQUI7CitDRTA5O0NFMDk7MTEwRSAxMTcyIDExQUM7Q0UwOTsxMTBFIDExNzIgMTFBQzsKK0NFMEE7Q0UwQTsxMTBFIDExNzIgMTFBRDtDRTBBOzExMEUgMTE3MiAxMUFEOworQ0UwQjtDRTBCOzExMEUgMTE3MiAxMUFFO0NFMEI7MTEwRSAxMTcyIDExQUU7CitDRTBDO0NFMEM7MTEwRSAxMTcyIDExQUY7Q0UwQzsxMTBFIDExNzIgMTFBRjsKK0NFMEQ7Q0UwRDsxMTBFIDExNzIgMTFCMDtDRTBEOzExMEUgMTE3MiAxMUIwOworQ0UwRTtDRTBFOzExMEUgMTE3MiAxMUIxO0NFMEU7MTEwRSAxMTcyIDExQjE7CitDRTBGO0NFMEY7MTEwRSAxMTcyIDExQjI7Q0UwRjsxMTBFIDExNzIgMTFCMjsKK0NFMTA7Q0UxMDsxMTBFIDExNzIgMTFCMztDRTEwOzExMEUgMTE3MiAxMUIzOworQ0UxMTtDRTExOzExMEUgMTE3MiAxMUI0O0NFMTE7MTEwRSAxMTcyIDExQjQ7CitDRTEyO0NFMTI7MTEwRSAxMTcyIDExQjU7Q0UxMjsxMTBFIDExNzIgMTFCNTsKK0NFMTM7Q0UxMzsxMTBFIDExNzIgMTFCNjtDRTEzOzExMEUgMTE3MiAxMUI2OworQ0UxNDtDRTE0OzExMEUgMTE3MiAxMUI3O0NFMTQ7MTEwRSAxMTcyIDExQjc7CitDRTE1O0NFMTU7MTEwRSAxMTcyIDExQjg7Q0UxNTsxMTBFIDExNzIgMTFCODsKK0NFMTY7Q0UxNjsxMTBFIDExNzIgMTFCOTtDRTE2OzExMEUgMTE3MiAxMUI5OworQ0UxNztDRTE3OzExMEUgMTE3MiAxMUJBO0NFMTc7MTEwRSAxMTcyIDExQkE7CitDRTE4O0NFMTg7MTEwRSAxMTcyIDExQkI7Q0UxODsxMTBFIDExNzIgMTFCQjsKK0NFMTk7Q0UxOTsxMTBFIDExNzIgMTFCQztDRTE5OzExMEUgMTE3MiAxMUJDOworQ0UxQTtDRTFBOzExMEUgMTE3MiAxMUJEO0NFMUE7MTEwRSAxMTcyIDExQkQ7CitDRTFCO0NFMUI7MTEwRSAxMTcyIDExQkU7Q0UxQjsxMTBFIDExNzIgMTFCRTsKK0NFMUM7Q0UxQzsxMTBFIDExNzIgMTFCRjtDRTFDOzExMEUgMTE3MiAxMUJGOworQ0UxRDtDRTFEOzExMEUgMTE3MiAxMUMwO0NFMUQ7MTEwRSAxMTcyIDExQzA7CitDRTFFO0NFMUU7MTEwRSAxMTcyIDExQzE7Q0UxRTsxMTBFIDExNzIgMTFDMTsKK0NFMUY7Q0UxRjsxMTBFIDExNzIgMTFDMjtDRTFGOzExMEUgMTE3MiAxMUMyOworQ0UyMDtDRTIwOzExMEUgMTE3MztDRTIwOzExMEUgMTE3MzsKK0NFMjE7Q0UyMTsxMTBFIDExNzMgMTFBODtDRTIxOzExMEUgMTE3MyAxMUE4OworQ0UyMjtDRTIyOzExMEUgMTE3MyAxMUE5O0NFMjI7MTEwRSAxMTczIDExQTk7CitDRTIzO0NFMjM7MTEwRSAxMTczIDExQUE7Q0UyMzsxMTBFIDExNzMgMTFBQTsKK0NFMjQ7Q0UyNDsxMTBFIDExNzMgMTFBQjtDRTI0OzExMEUgMTE3MyAxMUFCOworQ0UyNTtDRTI1OzExMEUgMTE3MyAxMUFDO0NFMjU7MTEwRSAxMTczIDExQUM7CitDRTI2O0NFMjY7MTEwRSAxMTczIDExQUQ7Q0UyNjsxMTBFIDExNzMgMTFBRDsKK0NFMjc7Q0UyNzsxMTBFIDExNzMgMTFBRTtDRTI3OzExMEUgMTE3MyAxMUFFOworQ0UyODtDRTI4OzExMEUgMTE3MyAxMUFGO0NFMjg7MTEwRSAxMTczIDExQUY7CitDRTI5O0NFMjk7MTEwRSAxMTczIDExQjA7Q0UyOTsxMTBFIDExNzMgMTFCMDsKK0NFMkE7Q0UyQTsxMTBFIDExNzMgMTFCMTtDRTJBOzExMEUgMTE3MyAxMUIxOworQ0UyQjtDRTJCOzExMEUgMTE3MyAxMUIyO0NFMkI7MTEwRSAxMTczIDExQjI7CitDRTJDO0NFMkM7MTEwRSAxMTczIDExQjM7Q0UyQzsxMTBFIDExNzMgMTFCMzsKK0NFMkQ7Q0UyRDsxMTBFIDExNzMgMTFCNDtDRTJEOzExMEUgMTE3MyAxMUI0OworQ0UyRTtDRTJFOzExMEUgMTE3MyAxMUI1O0NFMkU7MTEwRSAxMTczIDExQjU7CitDRTJGO0NFMkY7MTEwRSAxMTczIDExQjY7Q0UyRjsxMTBFIDExNzMgMTFCNjsKK0NFMzA7Q0UzMDsxMTBFIDExNzMgMTFCNztDRTMwOzExMEUgMTE3MyAxMUI3OworQ0UzMTtDRTMxOzExMEUgMTE3MyAxMUI4O0NFMzE7MTEwRSAxMTczIDExQjg7CitDRTMyO0NFMzI7MTEwRSAxMTczIDExQjk7Q0UzMjsxMTBFIDExNzMgMTFCOTsKK0NFMzM7Q0UzMzsxMTBFIDExNzMgMTFCQTtDRTMzOzExMEUgMTE3MyAxMUJBOworQ0UzNDtDRTM0OzExMEUgMTE3MyAxMUJCO0NFMzQ7MTEwRSAxMTczIDExQkI7CitDRTM1O0NFMzU7MTEwRSAxMTczIDExQkM7Q0UzNTsxMTBFIDExNzMgMTFCQzsKK0NFMzY7Q0UzNjsxMTBFIDExNzMgMTFCRDtDRTM2OzExMEUgMTE3MyAxMUJEOworQ0UzNztDRTM3OzExMEUgMTE3MyAxMUJFO0NFMzc7MTEwRSAxMTczIDExQkU7CitDRTM4O0NFMzg7MTEwRSAxMTczIDExQkY7Q0UzODsxMTBFIDExNzMgMTFCRjsKK0NFMzk7Q0UzOTsxMTBFIDExNzMgMTFDMDtDRTM5OzExMEUgMTE3MyAxMUMwOworQ0UzQTtDRTNBOzExMEUgMTE3MyAxMUMxO0NFM0E7MTEwRSAxMTczIDExQzE7CitDRTNCO0NFM0I7MTEwRSAxMTczIDExQzI7Q0UzQjsxMTBFIDExNzMgMTFDMjsKK0NFM0M7Q0UzQzsxMTBFIDExNzQ7Q0UzQzsxMTBFIDExNzQ7CitDRTNEO0NFM0Q7MTEwRSAxMTc0IDExQTg7Q0UzRDsxMTBFIDExNzQgMTFBODsKK0NFM0U7Q0UzRTsxMTBFIDExNzQgMTFBOTtDRTNFOzExMEUgMTE3NCAxMUE5OworQ0UzRjtDRTNGOzExMEUgMTE3NCAxMUFBO0NFM0Y7MTEwRSAxMTc0IDExQUE7CitDRTQwO0NFNDA7MTEwRSAxMTc0IDExQUI7Q0U0MDsxMTBFIDExNzQgMTFBQjsKK0NFNDE7Q0U0MTsxMTBFIDExNzQgMTFBQztDRTQxOzExMEUgMTE3NCAxMUFDOworQ0U0MjtDRTQyOzExMEUgMTE3NCAxMUFEO0NFNDI7MTEwRSAxMTc0IDExQUQ7CitDRTQzO0NFNDM7MTEwRSAxMTc0IDExQUU7Q0U0MzsxMTBFIDExNzQgMTFBRTsKK0NFNDQ7Q0U0NDsxMTBFIDExNzQgMTFBRjtDRTQ0OzExMEUgMTE3NCAxMUFGOworQ0U0NTtDRTQ1OzExMEUgMTE3NCAxMUIwO0NFNDU7MTEwRSAxMTc0IDExQjA7CitDRTQ2O0NFNDY7MTEwRSAxMTc0IDExQjE7Q0U0NjsxMTBFIDExNzQgMTFCMTsKK0NFNDc7Q0U0NzsxMTBFIDExNzQgMTFCMjtDRTQ3OzExMEUgMTE3NCAxMUIyOworQ0U0ODtDRTQ4OzExMEUgMTE3NCAxMUIzO0NFNDg7MTEwRSAxMTc0IDExQjM7CitDRTQ5O0NFNDk7MTEwRSAxMTc0IDExQjQ7Q0U0OTsxMTBFIDExNzQgMTFCNDsKK0NFNEE7Q0U0QTsxMTBFIDExNzQgMTFCNTtDRTRBOzExMEUgMTE3NCAxMUI1OworQ0U0QjtDRTRCOzExMEUgMTE3NCAxMUI2O0NFNEI7MTEwRSAxMTc0IDExQjY7CitDRTRDO0NFNEM7MTEwRSAxMTc0IDExQjc7Q0U0QzsxMTBFIDExNzQgMTFCNzsKK0NFNEQ7Q0U0RDsxMTBFIDExNzQgMTFCODtDRTREOzExMEUgMTE3NCAxMUI4OworQ0U0RTtDRTRFOzExMEUgMTE3NCAxMUI5O0NFNEU7MTEwRSAxMTc0IDExQjk7CitDRTRGO0NFNEY7MTEwRSAxMTc0IDExQkE7Q0U0RjsxMTBFIDExNzQgMTFCQTsKK0NFNTA7Q0U1MDsxMTBFIDExNzQgMTFCQjtDRTUwOzExMEUgMTE3NCAxMUJCOworQ0U1MTtDRTUxOzExMEUgMTE3NCAxMUJDO0NFNTE7MTEwRSAxMTc0IDExQkM7CitDRTUyO0NFNTI7MTEwRSAxMTc0IDExQkQ7Q0U1MjsxMTBFIDExNzQgMTFCRDsKK0NFNTM7Q0U1MzsxMTBFIDExNzQgMTFCRTtDRTUzOzExMEUgMTE3NCAxMUJFOworQ0U1NDtDRTU0OzExMEUgMTE3NCAxMUJGO0NFNTQ7MTEwRSAxMTc0IDExQkY7CitDRTU1O0NFNTU7MTEwRSAxMTc0IDExQzA7Q0U1NTsxMTBFIDExNzQgMTFDMDsKK0NFNTY7Q0U1NjsxMTBFIDExNzQgMTFDMTtDRTU2OzExMEUgMTE3NCAxMUMxOworQ0U1NztDRTU3OzExMEUgMTE3NCAxMUMyO0NFNTc7MTEwRSAxMTc0IDExQzI7CitDRTU4O0NFNTg7MTEwRSAxMTc1O0NFNTg7MTEwRSAxMTc1OworQ0U1OTtDRTU5OzExMEUgMTE3NSAxMUE4O0NFNTk7MTEwRSAxMTc1IDExQTg7CitDRTVBO0NFNUE7MTEwRSAxMTc1IDExQTk7Q0U1QTsxMTBFIDExNzUgMTFBOTsKK0NFNUI7Q0U1QjsxMTBFIDExNzUgMTFBQTtDRTVCOzExMEUgMTE3NSAxMUFBOworQ0U1QztDRTVDOzExMEUgMTE3NSAxMUFCO0NFNUM7MTEwRSAxMTc1IDExQUI7CitDRTVEO0NFNUQ7MTEwRSAxMTc1IDExQUM7Q0U1RDsxMTBFIDExNzUgMTFBQzsKK0NFNUU7Q0U1RTsxMTBFIDExNzUgMTFBRDtDRTVFOzExMEUgMTE3NSAxMUFEOworQ0U1RjtDRTVGOzExMEUgMTE3NSAxMUFFO0NFNUY7MTEwRSAxMTc1IDExQUU7CitDRTYwO0NFNjA7MTEwRSAxMTc1IDExQUY7Q0U2MDsxMTBFIDExNzUgMTFBRjsKK0NFNjE7Q0U2MTsxMTBFIDExNzUgMTFCMDtDRTYxOzExMEUgMTE3NSAxMUIwOworQ0U2MjtDRTYyOzExMEUgMTE3NSAxMUIxO0NFNjI7MTEwRSAxMTc1IDExQjE7CitDRTYzO0NFNjM7MTEwRSAxMTc1IDExQjI7Q0U2MzsxMTBFIDExNzUgMTFCMjsKK0NFNjQ7Q0U2NDsxMTBFIDExNzUgMTFCMztDRTY0OzExMEUgMTE3NSAxMUIzOworQ0U2NTtDRTY1OzExMEUgMTE3NSAxMUI0O0NFNjU7MTEwRSAxMTc1IDExQjQ7CitDRTY2O0NFNjY7MTEwRSAxMTc1IDExQjU7Q0U2NjsxMTBFIDExNzUgMTFCNTsKK0NFNjc7Q0U2NzsxMTBFIDExNzUgMTFCNjtDRTY3OzExMEUgMTE3NSAxMUI2OworQ0U2ODtDRTY4OzExMEUgMTE3NSAxMUI3O0NFNjg7MTEwRSAxMTc1IDExQjc7CitDRTY5O0NFNjk7MTEwRSAxMTc1IDExQjg7Q0U2OTsxMTBFIDExNzUgMTFCODsKK0NFNkE7Q0U2QTsxMTBFIDExNzUgMTFCOTtDRTZBOzExMEUgMTE3NSAxMUI5OworQ0U2QjtDRTZCOzExMEUgMTE3NSAxMUJBO0NFNkI7MTEwRSAxMTc1IDExQkE7CitDRTZDO0NFNkM7MTEwRSAxMTc1IDExQkI7Q0U2QzsxMTBFIDExNzUgMTFCQjsKK0NFNkQ7Q0U2RDsxMTBFIDExNzUgMTFCQztDRTZEOzExMEUgMTE3NSAxMUJDOworQ0U2RTtDRTZFOzExMEUgMTE3NSAxMUJEO0NFNkU7MTEwRSAxMTc1IDExQkQ7CitDRTZGO0NFNkY7MTEwRSAxMTc1IDExQkU7Q0U2RjsxMTBFIDExNzUgMTFCRTsKK0NFNzA7Q0U3MDsxMTBFIDExNzUgMTFCRjtDRTcwOzExMEUgMTE3NSAxMUJGOworQ0U3MTtDRTcxOzExMEUgMTE3NSAxMUMwO0NFNzE7MTEwRSAxMTc1IDExQzA7CitDRTcyO0NFNzI7MTEwRSAxMTc1IDExQzE7Q0U3MjsxMTBFIDExNzUgMTFDMTsKK0NFNzM7Q0U3MzsxMTBFIDExNzUgMTFDMjtDRTczOzExMEUgMTE3NSAxMUMyOworQ0U3NDtDRTc0OzExMEYgMTE2MTtDRTc0OzExMEYgMTE2MTsKK0NFNzU7Q0U3NTsxMTBGIDExNjEgMTFBODtDRTc1OzExMEYgMTE2MSAxMUE4OworQ0U3NjtDRTc2OzExMEYgMTE2MSAxMUE5O0NFNzY7MTEwRiAxMTYxIDExQTk7CitDRTc3O0NFNzc7MTEwRiAxMTYxIDExQUE7Q0U3NzsxMTBGIDExNjEgMTFBQTsKK0NFNzg7Q0U3ODsxMTBGIDExNjEgMTFBQjtDRTc4OzExMEYgMTE2MSAxMUFCOworQ0U3OTtDRTc5OzExMEYgMTE2MSAxMUFDO0NFNzk7MTEwRiAxMTYxIDExQUM7CitDRTdBO0NFN0E7MTEwRiAxMTYxIDExQUQ7Q0U3QTsxMTBGIDExNjEgMTFBRDsKK0NFN0I7Q0U3QjsxMTBGIDExNjEgMTFBRTtDRTdCOzExMEYgMTE2MSAxMUFFOworQ0U3QztDRTdDOzExMEYgMTE2MSAxMUFGO0NFN0M7MTEwRiAxMTYxIDExQUY7CitDRTdEO0NFN0Q7MTEwRiAxMTYxIDExQjA7Q0U3RDsxMTBGIDExNjEgMTFCMDsKK0NFN0U7Q0U3RTsxMTBGIDExNjEgMTFCMTtDRTdFOzExMEYgMTE2MSAxMUIxOworQ0U3RjtDRTdGOzExMEYgMTE2MSAxMUIyO0NFN0Y7MTEwRiAxMTYxIDExQjI7CitDRTgwO0NFODA7MTEwRiAxMTYxIDExQjM7Q0U4MDsxMTBGIDExNjEgMTFCMzsKK0NFODE7Q0U4MTsxMTBGIDExNjEgMTFCNDtDRTgxOzExMEYgMTE2MSAxMUI0OworQ0U4MjtDRTgyOzExMEYgMTE2MSAxMUI1O0NFODI7MTEwRiAxMTYxIDExQjU7CitDRTgzO0NFODM7MTEwRiAxMTYxIDExQjY7Q0U4MzsxMTBGIDExNjEgMTFCNjsKK0NFODQ7Q0U4NDsxMTBGIDExNjEgMTFCNztDRTg0OzExMEYgMTE2MSAxMUI3OworQ0U4NTtDRTg1OzExMEYgMTE2MSAxMUI4O0NFODU7MTEwRiAxMTYxIDExQjg7CitDRTg2O0NFODY7MTEwRiAxMTYxIDExQjk7Q0U4NjsxMTBGIDExNjEgMTFCOTsKK0NFODc7Q0U4NzsxMTBGIDExNjEgMTFCQTtDRTg3OzExMEYgMTE2MSAxMUJBOworQ0U4ODtDRTg4OzExMEYgMTE2MSAxMUJCO0NFODg7MTEwRiAxMTYxIDExQkI7CitDRTg5O0NFODk7MTEwRiAxMTYxIDExQkM7Q0U4OTsxMTBGIDExNjEgMTFCQzsKK0NFOEE7Q0U4QTsxMTBGIDExNjEgMTFCRDtDRThBOzExMEYgMTE2MSAxMUJEOworQ0U4QjtDRThCOzExMEYgMTE2MSAxMUJFO0NFOEI7MTEwRiAxMTYxIDExQkU7CitDRThDO0NFOEM7MTEwRiAxMTYxIDExQkY7Q0U4QzsxMTBGIDExNjEgMTFCRjsKK0NFOEQ7Q0U4RDsxMTBGIDExNjEgMTFDMDtDRThEOzExMEYgMTE2MSAxMUMwOworQ0U4RTtDRThFOzExMEYgMTE2MSAxMUMxO0NFOEU7MTEwRiAxMTYxIDExQzE7CitDRThGO0NFOEY7MTEwRiAxMTYxIDExQzI7Q0U4RjsxMTBGIDExNjEgMTFDMjsKK0NFOTA7Q0U5MDsxMTBGIDExNjI7Q0U5MDsxMTBGIDExNjI7CitDRTkxO0NFOTE7MTEwRiAxMTYyIDExQTg7Q0U5MTsxMTBGIDExNjIgMTFBODsKK0NFOTI7Q0U5MjsxMTBGIDExNjIgMTFBOTtDRTkyOzExMEYgMTE2MiAxMUE5OworQ0U5MztDRTkzOzExMEYgMTE2MiAxMUFBO0NFOTM7MTEwRiAxMTYyIDExQUE7CitDRTk0O0NFOTQ7MTEwRiAxMTYyIDExQUI7Q0U5NDsxMTBGIDExNjIgMTFBQjsKK0NFOTU7Q0U5NTsxMTBGIDExNjIgMTFBQztDRTk1OzExMEYgMTE2MiAxMUFDOworQ0U5NjtDRTk2OzExMEYgMTE2MiAxMUFEO0NFOTY7MTEwRiAxMTYyIDExQUQ7CitDRTk3O0NFOTc7MTEwRiAxMTYyIDExQUU7Q0U5NzsxMTBGIDExNjIgMTFBRTsKK0NFOTg7Q0U5ODsxMTBGIDExNjIgMTFBRjtDRTk4OzExMEYgMTE2MiAxMUFGOworQ0U5OTtDRTk5OzExMEYgMTE2MiAxMUIwO0NFOTk7MTEwRiAxMTYyIDExQjA7CitDRTlBO0NFOUE7MTEwRiAxMTYyIDExQjE7Q0U5QTsxMTBGIDExNjIgMTFCMTsKK0NFOUI7Q0U5QjsxMTBGIDExNjIgMTFCMjtDRTlCOzExMEYgMTE2MiAxMUIyOworQ0U5QztDRTlDOzExMEYgMTE2MiAxMUIzO0NFOUM7MTEwRiAxMTYyIDExQjM7CitDRTlEO0NFOUQ7MTEwRiAxMTYyIDExQjQ7Q0U5RDsxMTBGIDExNjIgMTFCNDsKK0NFOUU7Q0U5RTsxMTBGIDExNjIgMTFCNTtDRTlFOzExMEYgMTE2MiAxMUI1OworQ0U5RjtDRTlGOzExMEYgMTE2MiAxMUI2O0NFOUY7MTEwRiAxMTYyIDExQjY7CitDRUEwO0NFQTA7MTEwRiAxMTYyIDExQjc7Q0VBMDsxMTBGIDExNjIgMTFCNzsKK0NFQTE7Q0VBMTsxMTBGIDExNjIgMTFCODtDRUExOzExMEYgMTE2MiAxMUI4OworQ0VBMjtDRUEyOzExMEYgMTE2MiAxMUI5O0NFQTI7MTEwRiAxMTYyIDExQjk7CitDRUEzO0NFQTM7MTEwRiAxMTYyIDExQkE7Q0VBMzsxMTBGIDExNjIgMTFCQTsKK0NFQTQ7Q0VBNDsxMTBGIDExNjIgMTFCQjtDRUE0OzExMEYgMTE2MiAxMUJCOworQ0VBNTtDRUE1OzExMEYgMTE2MiAxMUJDO0NFQTU7MTEwRiAxMTYyIDExQkM7CitDRUE2O0NFQTY7MTEwRiAxMTYyIDExQkQ7Q0VBNjsxMTBGIDExNjIgMTFCRDsKK0NFQTc7Q0VBNzsxMTBGIDExNjIgMTFCRTtDRUE3OzExMEYgMTE2MiAxMUJFOworQ0VBODtDRUE4OzExMEYgMTE2MiAxMUJGO0NFQTg7MTEwRiAxMTYyIDExQkY7CitDRUE5O0NFQTk7MTEwRiAxMTYyIDExQzA7Q0VBOTsxMTBGIDExNjIgMTFDMDsKK0NFQUE7Q0VBQTsxMTBGIDExNjIgMTFDMTtDRUFBOzExMEYgMTE2MiAxMUMxOworQ0VBQjtDRUFCOzExMEYgMTE2MiAxMUMyO0NFQUI7MTEwRiAxMTYyIDExQzI7CitDRUFDO0NFQUM7MTEwRiAxMTYzO0NFQUM7MTEwRiAxMTYzOworQ0VBRDtDRUFEOzExMEYgMTE2MyAxMUE4O0NFQUQ7MTEwRiAxMTYzIDExQTg7CitDRUFFO0NFQUU7MTEwRiAxMTYzIDExQTk7Q0VBRTsxMTBGIDExNjMgMTFBOTsKK0NFQUY7Q0VBRjsxMTBGIDExNjMgMTFBQTtDRUFGOzExMEYgMTE2MyAxMUFBOworQ0VCMDtDRUIwOzExMEYgMTE2MyAxMUFCO0NFQjA7MTEwRiAxMTYzIDExQUI7CitDRUIxO0NFQjE7MTEwRiAxMTYzIDExQUM7Q0VCMTsxMTBGIDExNjMgMTFBQzsKK0NFQjI7Q0VCMjsxMTBGIDExNjMgMTFBRDtDRUIyOzExMEYgMTE2MyAxMUFEOworQ0VCMztDRUIzOzExMEYgMTE2MyAxMUFFO0NFQjM7MTEwRiAxMTYzIDExQUU7CitDRUI0O0NFQjQ7MTEwRiAxMTYzIDExQUY7Q0VCNDsxMTBGIDExNjMgMTFBRjsKK0NFQjU7Q0VCNTsxMTBGIDExNjMgMTFCMDtDRUI1OzExMEYgMTE2MyAxMUIwOworQ0VCNjtDRUI2OzExMEYgMTE2MyAxMUIxO0NFQjY7MTEwRiAxMTYzIDExQjE7CitDRUI3O0NFQjc7MTEwRiAxMTYzIDExQjI7Q0VCNzsxMTBGIDExNjMgMTFCMjsKK0NFQjg7Q0VCODsxMTBGIDExNjMgMTFCMztDRUI4OzExMEYgMTE2MyAxMUIzOworQ0VCOTtDRUI5OzExMEYgMTE2MyAxMUI0O0NFQjk7MTEwRiAxMTYzIDExQjQ7CitDRUJBO0NFQkE7MTEwRiAxMTYzIDExQjU7Q0VCQTsxMTBGIDExNjMgMTFCNTsKK0NFQkI7Q0VCQjsxMTBGIDExNjMgMTFCNjtDRUJCOzExMEYgMTE2MyAxMUI2OworQ0VCQztDRUJDOzExMEYgMTE2MyAxMUI3O0NFQkM7MTEwRiAxMTYzIDExQjc7CitDRUJEO0NFQkQ7MTEwRiAxMTYzIDExQjg7Q0VCRDsxMTBGIDExNjMgMTFCODsKK0NFQkU7Q0VCRTsxMTBGIDExNjMgMTFCOTtDRUJFOzExMEYgMTE2MyAxMUI5OworQ0VCRjtDRUJGOzExMEYgMTE2MyAxMUJBO0NFQkY7MTEwRiAxMTYzIDExQkE7CitDRUMwO0NFQzA7MTEwRiAxMTYzIDExQkI7Q0VDMDsxMTBGIDExNjMgMTFCQjsKK0NFQzE7Q0VDMTsxMTBGIDExNjMgMTFCQztDRUMxOzExMEYgMTE2MyAxMUJDOworQ0VDMjtDRUMyOzExMEYgMTE2MyAxMUJEO0NFQzI7MTEwRiAxMTYzIDExQkQ7CitDRUMzO0NFQzM7MTEwRiAxMTYzIDExQkU7Q0VDMzsxMTBGIDExNjMgMTFCRTsKK0NFQzQ7Q0VDNDsxMTBGIDExNjMgMTFCRjtDRUM0OzExMEYgMTE2MyAxMUJGOworQ0VDNTtDRUM1OzExMEYgMTE2MyAxMUMwO0NFQzU7MTEwRiAxMTYzIDExQzA7CitDRUM2O0NFQzY7MTEwRiAxMTYzIDExQzE7Q0VDNjsxMTBGIDExNjMgMTFDMTsKK0NFQzc7Q0VDNzsxMTBGIDExNjMgMTFDMjtDRUM3OzExMEYgMTE2MyAxMUMyOworQ0VDODtDRUM4OzExMEYgMTE2NDtDRUM4OzExMEYgMTE2NDsKK0NFQzk7Q0VDOTsxMTBGIDExNjQgMTFBODtDRUM5OzExMEYgMTE2NCAxMUE4OworQ0VDQTtDRUNBOzExMEYgMTE2NCAxMUE5O0NFQ0E7MTEwRiAxMTY0IDExQTk7CitDRUNCO0NFQ0I7MTEwRiAxMTY0IDExQUE7Q0VDQjsxMTBGIDExNjQgMTFBQTsKK0NFQ0M7Q0VDQzsxMTBGIDExNjQgMTFBQjtDRUNDOzExMEYgMTE2NCAxMUFCOworQ0VDRDtDRUNEOzExMEYgMTE2NCAxMUFDO0NFQ0Q7MTEwRiAxMTY0IDExQUM7CitDRUNFO0NFQ0U7MTEwRiAxMTY0IDExQUQ7Q0VDRTsxMTBGIDExNjQgMTFBRDsKK0NFQ0Y7Q0VDRjsxMTBGIDExNjQgMTFBRTtDRUNGOzExMEYgMTE2NCAxMUFFOworQ0VEMDtDRUQwOzExMEYgMTE2NCAxMUFGO0NFRDA7MTEwRiAxMTY0IDExQUY7CitDRUQxO0NFRDE7MTEwRiAxMTY0IDExQjA7Q0VEMTsxMTBGIDExNjQgMTFCMDsKK0NFRDI7Q0VEMjsxMTBGIDExNjQgMTFCMTtDRUQyOzExMEYgMTE2NCAxMUIxOworQ0VEMztDRUQzOzExMEYgMTE2NCAxMUIyO0NFRDM7MTEwRiAxMTY0IDExQjI7CitDRUQ0O0NFRDQ7MTEwRiAxMTY0IDExQjM7Q0VENDsxMTBGIDExNjQgMTFCMzsKK0NFRDU7Q0VENTsxMTBGIDExNjQgMTFCNDtDRUQ1OzExMEYgMTE2NCAxMUI0OworQ0VENjtDRUQ2OzExMEYgMTE2NCAxMUI1O0NFRDY7MTEwRiAxMTY0IDExQjU7CitDRUQ3O0NFRDc7MTEwRiAxMTY0IDExQjY7Q0VENzsxMTBGIDExNjQgMTFCNjsKK0NFRDg7Q0VEODsxMTBGIDExNjQgMTFCNztDRUQ4OzExMEYgMTE2NCAxMUI3OworQ0VEOTtDRUQ5OzExMEYgMTE2NCAxMUI4O0NFRDk7MTEwRiAxMTY0IDExQjg7CitDRURBO0NFREE7MTEwRiAxMTY0IDExQjk7Q0VEQTsxMTBGIDExNjQgMTFCOTsKK0NFREI7Q0VEQjsxMTBGIDExNjQgMTFCQTtDRURCOzExMEYgMTE2NCAxMUJBOworQ0VEQztDRURDOzExMEYgMTE2NCAxMUJCO0NFREM7MTEwRiAxMTY0IDExQkI7CitDRUREO0NFREQ7MTEwRiAxMTY0IDExQkM7Q0VERDsxMTBGIDExNjQgMTFCQzsKK0NFREU7Q0VERTsxMTBGIDExNjQgMTFCRDtDRURFOzExMEYgMTE2NCAxMUJEOworQ0VERjtDRURGOzExMEYgMTE2NCAxMUJFO0NFREY7MTEwRiAxMTY0IDExQkU7CitDRUUwO0NFRTA7MTEwRiAxMTY0IDExQkY7Q0VFMDsxMTBGIDExNjQgMTFCRjsKK0NFRTE7Q0VFMTsxMTBGIDExNjQgMTFDMDtDRUUxOzExMEYgMTE2NCAxMUMwOworQ0VFMjtDRUUyOzExMEYgMTE2NCAxMUMxO0NFRTI7MTEwRiAxMTY0IDExQzE7CitDRUUzO0NFRTM7MTEwRiAxMTY0IDExQzI7Q0VFMzsxMTBGIDExNjQgMTFDMjsKK0NFRTQ7Q0VFNDsxMTBGIDExNjU7Q0VFNDsxMTBGIDExNjU7CitDRUU1O0NFRTU7MTEwRiAxMTY1IDExQTg7Q0VFNTsxMTBGIDExNjUgMTFBODsKK0NFRTY7Q0VFNjsxMTBGIDExNjUgMTFBOTtDRUU2OzExMEYgMTE2NSAxMUE5OworQ0VFNztDRUU3OzExMEYgMTE2NSAxMUFBO0NFRTc7MTEwRiAxMTY1IDExQUE7CitDRUU4O0NFRTg7MTEwRiAxMTY1IDExQUI7Q0VFODsxMTBGIDExNjUgMTFBQjsKK0NFRTk7Q0VFOTsxMTBGIDExNjUgMTFBQztDRUU5OzExMEYgMTE2NSAxMUFDOworQ0VFQTtDRUVBOzExMEYgMTE2NSAxMUFEO0NFRUE7MTEwRiAxMTY1IDExQUQ7CitDRUVCO0NFRUI7MTEwRiAxMTY1IDExQUU7Q0VFQjsxMTBGIDExNjUgMTFBRTsKK0NFRUM7Q0VFQzsxMTBGIDExNjUgMTFBRjtDRUVDOzExMEYgMTE2NSAxMUFGOworQ0VFRDtDRUVEOzExMEYgMTE2NSAxMUIwO0NFRUQ7MTEwRiAxMTY1IDExQjA7CitDRUVFO0NFRUU7MTEwRiAxMTY1IDExQjE7Q0VFRTsxMTBGIDExNjUgMTFCMTsKK0NFRUY7Q0VFRjsxMTBGIDExNjUgMTFCMjtDRUVGOzExMEYgMTE2NSAxMUIyOworQ0VGMDtDRUYwOzExMEYgMTE2NSAxMUIzO0NFRjA7MTEwRiAxMTY1IDExQjM7CitDRUYxO0NFRjE7MTEwRiAxMTY1IDExQjQ7Q0VGMTsxMTBGIDExNjUgMTFCNDsKK0NFRjI7Q0VGMjsxMTBGIDExNjUgMTFCNTtDRUYyOzExMEYgMTE2NSAxMUI1OworQ0VGMztDRUYzOzExMEYgMTE2NSAxMUI2O0NFRjM7MTEwRiAxMTY1IDExQjY7CitDRUY0O0NFRjQ7MTEwRiAxMTY1IDExQjc7Q0VGNDsxMTBGIDExNjUgMTFCNzsKK0NFRjU7Q0VGNTsxMTBGIDExNjUgMTFCODtDRUY1OzExMEYgMTE2NSAxMUI4OworQ0VGNjtDRUY2OzExMEYgMTE2NSAxMUI5O0NFRjY7MTEwRiAxMTY1IDExQjk7CitDRUY3O0NFRjc7MTEwRiAxMTY1IDExQkE7Q0VGNzsxMTBGIDExNjUgMTFCQTsKK0NFRjg7Q0VGODsxMTBGIDExNjUgMTFCQjtDRUY4OzExMEYgMTE2NSAxMUJCOworQ0VGOTtDRUY5OzExMEYgMTE2NSAxMUJDO0NFRjk7MTEwRiAxMTY1IDExQkM7CitDRUZBO0NFRkE7MTEwRiAxMTY1IDExQkQ7Q0VGQTsxMTBGIDExNjUgMTFCRDsKK0NFRkI7Q0VGQjsxMTBGIDExNjUgMTFCRTtDRUZCOzExMEYgMTE2NSAxMUJFOworQ0VGQztDRUZDOzExMEYgMTE2NSAxMUJGO0NFRkM7MTEwRiAxMTY1IDExQkY7CitDRUZEO0NFRkQ7MTEwRiAxMTY1IDExQzA7Q0VGRDsxMTBGIDExNjUgMTFDMDsKK0NFRkU7Q0VGRTsxMTBGIDExNjUgMTFDMTtDRUZFOzExMEYgMTE2NSAxMUMxOworQ0VGRjtDRUZGOzExMEYgMTE2NSAxMUMyO0NFRkY7MTEwRiAxMTY1IDExQzI7CitDRjAwO0NGMDA7MTEwRiAxMTY2O0NGMDA7MTEwRiAxMTY2OworQ0YwMTtDRjAxOzExMEYgMTE2NiAxMUE4O0NGMDE7MTEwRiAxMTY2IDExQTg7CitDRjAyO0NGMDI7MTEwRiAxMTY2IDExQTk7Q0YwMjsxMTBGIDExNjYgMTFBOTsKK0NGMDM7Q0YwMzsxMTBGIDExNjYgMTFBQTtDRjAzOzExMEYgMTE2NiAxMUFBOworQ0YwNDtDRjA0OzExMEYgMTE2NiAxMUFCO0NGMDQ7MTEwRiAxMTY2IDExQUI7CitDRjA1O0NGMDU7MTEwRiAxMTY2IDExQUM7Q0YwNTsxMTBGIDExNjYgMTFBQzsKK0NGMDY7Q0YwNjsxMTBGIDExNjYgMTFBRDtDRjA2OzExMEYgMTE2NiAxMUFEOworQ0YwNztDRjA3OzExMEYgMTE2NiAxMUFFO0NGMDc7MTEwRiAxMTY2IDExQUU7CitDRjA4O0NGMDg7MTEwRiAxMTY2IDExQUY7Q0YwODsxMTBGIDExNjYgMTFBRjsKK0NGMDk7Q0YwOTsxMTBGIDExNjYgMTFCMDtDRjA5OzExMEYgMTE2NiAxMUIwOworQ0YwQTtDRjBBOzExMEYgMTE2NiAxMUIxO0NGMEE7MTEwRiAxMTY2IDExQjE7CitDRjBCO0NGMEI7MTEwRiAxMTY2IDExQjI7Q0YwQjsxMTBGIDExNjYgMTFCMjsKK0NGMEM7Q0YwQzsxMTBGIDExNjYgMTFCMztDRjBDOzExMEYgMTE2NiAxMUIzOworQ0YwRDtDRjBEOzExMEYgMTE2NiAxMUI0O0NGMEQ7MTEwRiAxMTY2IDExQjQ7CitDRjBFO0NGMEU7MTEwRiAxMTY2IDExQjU7Q0YwRTsxMTBGIDExNjYgMTFCNTsKK0NGMEY7Q0YwRjsxMTBGIDExNjYgMTFCNjtDRjBGOzExMEYgMTE2NiAxMUI2OworQ0YxMDtDRjEwOzExMEYgMTE2NiAxMUI3O0NGMTA7MTEwRiAxMTY2IDExQjc7CitDRjExO0NGMTE7MTEwRiAxMTY2IDExQjg7Q0YxMTsxMTBGIDExNjYgMTFCODsKK0NGMTI7Q0YxMjsxMTBGIDExNjYgMTFCOTtDRjEyOzExMEYgMTE2NiAxMUI5OworQ0YxMztDRjEzOzExMEYgMTE2NiAxMUJBO0NGMTM7MTEwRiAxMTY2IDExQkE7CitDRjE0O0NGMTQ7MTEwRiAxMTY2IDExQkI7Q0YxNDsxMTBGIDExNjYgMTFCQjsKK0NGMTU7Q0YxNTsxMTBGIDExNjYgMTFCQztDRjE1OzExMEYgMTE2NiAxMUJDOworQ0YxNjtDRjE2OzExMEYgMTE2NiAxMUJEO0NGMTY7MTEwRiAxMTY2IDExQkQ7CitDRjE3O0NGMTc7MTEwRiAxMTY2IDExQkU7Q0YxNzsxMTBGIDExNjYgMTFCRTsKK0NGMTg7Q0YxODsxMTBGIDExNjYgMTFCRjtDRjE4OzExMEYgMTE2NiAxMUJGOworQ0YxOTtDRjE5OzExMEYgMTE2NiAxMUMwO0NGMTk7MTEwRiAxMTY2IDExQzA7CitDRjFBO0NGMUE7MTEwRiAxMTY2IDExQzE7Q0YxQTsxMTBGIDExNjYgMTFDMTsKK0NGMUI7Q0YxQjsxMTBGIDExNjYgMTFDMjtDRjFCOzExMEYgMTE2NiAxMUMyOworQ0YxQztDRjFDOzExMEYgMTE2NztDRjFDOzExMEYgMTE2NzsKK0NGMUQ7Q0YxRDsxMTBGIDExNjcgMTFBODtDRjFEOzExMEYgMTE2NyAxMUE4OworQ0YxRTtDRjFFOzExMEYgMTE2NyAxMUE5O0NGMUU7MTEwRiAxMTY3IDExQTk7CitDRjFGO0NGMUY7MTEwRiAxMTY3IDExQUE7Q0YxRjsxMTBGIDExNjcgMTFBQTsKK0NGMjA7Q0YyMDsxMTBGIDExNjcgMTFBQjtDRjIwOzExMEYgMTE2NyAxMUFCOworQ0YyMTtDRjIxOzExMEYgMTE2NyAxMUFDO0NGMjE7MTEwRiAxMTY3IDExQUM7CitDRjIyO0NGMjI7MTEwRiAxMTY3IDExQUQ7Q0YyMjsxMTBGIDExNjcgMTFBRDsKK0NGMjM7Q0YyMzsxMTBGIDExNjcgMTFBRTtDRjIzOzExMEYgMTE2NyAxMUFFOworQ0YyNDtDRjI0OzExMEYgMTE2NyAxMUFGO0NGMjQ7MTEwRiAxMTY3IDExQUY7CitDRjI1O0NGMjU7MTEwRiAxMTY3IDExQjA7Q0YyNTsxMTBGIDExNjcgMTFCMDsKK0NGMjY7Q0YyNjsxMTBGIDExNjcgMTFCMTtDRjI2OzExMEYgMTE2NyAxMUIxOworQ0YyNztDRjI3OzExMEYgMTE2NyAxMUIyO0NGMjc7MTEwRiAxMTY3IDExQjI7CitDRjI4O0NGMjg7MTEwRiAxMTY3IDExQjM7Q0YyODsxMTBGIDExNjcgMTFCMzsKK0NGMjk7Q0YyOTsxMTBGIDExNjcgMTFCNDtDRjI5OzExMEYgMTE2NyAxMUI0OworQ0YyQTtDRjJBOzExMEYgMTE2NyAxMUI1O0NGMkE7MTEwRiAxMTY3IDExQjU7CitDRjJCO0NGMkI7MTEwRiAxMTY3IDExQjY7Q0YyQjsxMTBGIDExNjcgMTFCNjsKK0NGMkM7Q0YyQzsxMTBGIDExNjcgMTFCNztDRjJDOzExMEYgMTE2NyAxMUI3OworQ0YyRDtDRjJEOzExMEYgMTE2NyAxMUI4O0NGMkQ7MTEwRiAxMTY3IDExQjg7CitDRjJFO0NGMkU7MTEwRiAxMTY3IDExQjk7Q0YyRTsxMTBGIDExNjcgMTFCOTsKK0NGMkY7Q0YyRjsxMTBGIDExNjcgMTFCQTtDRjJGOzExMEYgMTE2NyAxMUJBOworQ0YzMDtDRjMwOzExMEYgMTE2NyAxMUJCO0NGMzA7MTEwRiAxMTY3IDExQkI7CitDRjMxO0NGMzE7MTEwRiAxMTY3IDExQkM7Q0YzMTsxMTBGIDExNjcgMTFCQzsKK0NGMzI7Q0YzMjsxMTBGIDExNjcgMTFCRDtDRjMyOzExMEYgMTE2NyAxMUJEOworQ0YzMztDRjMzOzExMEYgMTE2NyAxMUJFO0NGMzM7MTEwRiAxMTY3IDExQkU7CitDRjM0O0NGMzQ7MTEwRiAxMTY3IDExQkY7Q0YzNDsxMTBGIDExNjcgMTFCRjsKK0NGMzU7Q0YzNTsxMTBGIDExNjcgMTFDMDtDRjM1OzExMEYgMTE2NyAxMUMwOworQ0YzNjtDRjM2OzExMEYgMTE2NyAxMUMxO0NGMzY7MTEwRiAxMTY3IDExQzE7CitDRjM3O0NGMzc7MTEwRiAxMTY3IDExQzI7Q0YzNzsxMTBGIDExNjcgMTFDMjsKK0NGMzg7Q0YzODsxMTBGIDExNjg7Q0YzODsxMTBGIDExNjg7CitDRjM5O0NGMzk7MTEwRiAxMTY4IDExQTg7Q0YzOTsxMTBGIDExNjggMTFBODsKK0NGM0E7Q0YzQTsxMTBGIDExNjggMTFBOTtDRjNBOzExMEYgMTE2OCAxMUE5OworQ0YzQjtDRjNCOzExMEYgMTE2OCAxMUFBO0NGM0I7MTEwRiAxMTY4IDExQUE7CitDRjNDO0NGM0M7MTEwRiAxMTY4IDExQUI7Q0YzQzsxMTBGIDExNjggMTFBQjsKK0NGM0Q7Q0YzRDsxMTBGIDExNjggMTFBQztDRjNEOzExMEYgMTE2OCAxMUFDOworQ0YzRTtDRjNFOzExMEYgMTE2OCAxMUFEO0NGM0U7MTEwRiAxMTY4IDExQUQ7CitDRjNGO0NGM0Y7MTEwRiAxMTY4IDExQUU7Q0YzRjsxMTBGIDExNjggMTFBRTsKK0NGNDA7Q0Y0MDsxMTBGIDExNjggMTFBRjtDRjQwOzExMEYgMTE2OCAxMUFGOworQ0Y0MTtDRjQxOzExMEYgMTE2OCAxMUIwO0NGNDE7MTEwRiAxMTY4IDExQjA7CitDRjQyO0NGNDI7MTEwRiAxMTY4IDExQjE7Q0Y0MjsxMTBGIDExNjggMTFCMTsKK0NGNDM7Q0Y0MzsxMTBGIDExNjggMTFCMjtDRjQzOzExMEYgMTE2OCAxMUIyOworQ0Y0NDtDRjQ0OzExMEYgMTE2OCAxMUIzO0NGNDQ7MTEwRiAxMTY4IDExQjM7CitDRjQ1O0NGNDU7MTEwRiAxMTY4IDExQjQ7Q0Y0NTsxMTBGIDExNjggMTFCNDsKK0NGNDY7Q0Y0NjsxMTBGIDExNjggMTFCNTtDRjQ2OzExMEYgMTE2OCAxMUI1OworQ0Y0NztDRjQ3OzExMEYgMTE2OCAxMUI2O0NGNDc7MTEwRiAxMTY4IDExQjY7CitDRjQ4O0NGNDg7MTEwRiAxMTY4IDExQjc7Q0Y0ODsxMTBGIDExNjggMTFCNzsKK0NGNDk7Q0Y0OTsxMTBGIDExNjggMTFCODtDRjQ5OzExMEYgMTE2OCAxMUI4OworQ0Y0QTtDRjRBOzExMEYgMTE2OCAxMUI5O0NGNEE7MTEwRiAxMTY4IDExQjk7CitDRjRCO0NGNEI7MTEwRiAxMTY4IDExQkE7Q0Y0QjsxMTBGIDExNjggMTFCQTsKK0NGNEM7Q0Y0QzsxMTBGIDExNjggMTFCQjtDRjRDOzExMEYgMTE2OCAxMUJCOworQ0Y0RDtDRjREOzExMEYgMTE2OCAxMUJDO0NGNEQ7MTEwRiAxMTY4IDExQkM7CitDRjRFO0NGNEU7MTEwRiAxMTY4IDExQkQ7Q0Y0RTsxMTBGIDExNjggMTFCRDsKK0NGNEY7Q0Y0RjsxMTBGIDExNjggMTFCRTtDRjRGOzExMEYgMTE2OCAxMUJFOworQ0Y1MDtDRjUwOzExMEYgMTE2OCAxMUJGO0NGNTA7MTEwRiAxMTY4IDExQkY7CitDRjUxO0NGNTE7MTEwRiAxMTY4IDExQzA7Q0Y1MTsxMTBGIDExNjggMTFDMDsKK0NGNTI7Q0Y1MjsxMTBGIDExNjggMTFDMTtDRjUyOzExMEYgMTE2OCAxMUMxOworQ0Y1MztDRjUzOzExMEYgMTE2OCAxMUMyO0NGNTM7MTEwRiAxMTY4IDExQzI7CitDRjU0O0NGNTQ7MTEwRiAxMTY5O0NGNTQ7MTEwRiAxMTY5OworQ0Y1NTtDRjU1OzExMEYgMTE2OSAxMUE4O0NGNTU7MTEwRiAxMTY5IDExQTg7CitDRjU2O0NGNTY7MTEwRiAxMTY5IDExQTk7Q0Y1NjsxMTBGIDExNjkgMTFBOTsKK0NGNTc7Q0Y1NzsxMTBGIDExNjkgMTFBQTtDRjU3OzExMEYgMTE2OSAxMUFBOworQ0Y1ODtDRjU4OzExMEYgMTE2OSAxMUFCO0NGNTg7MTEwRiAxMTY5IDExQUI7CitDRjU5O0NGNTk7MTEwRiAxMTY5IDExQUM7Q0Y1OTsxMTBGIDExNjkgMTFBQzsKK0NGNUE7Q0Y1QTsxMTBGIDExNjkgMTFBRDtDRjVBOzExMEYgMTE2OSAxMUFEOworQ0Y1QjtDRjVCOzExMEYgMTE2OSAxMUFFO0NGNUI7MTEwRiAxMTY5IDExQUU7CitDRjVDO0NGNUM7MTEwRiAxMTY5IDExQUY7Q0Y1QzsxMTBGIDExNjkgMTFBRjsKK0NGNUQ7Q0Y1RDsxMTBGIDExNjkgMTFCMDtDRjVEOzExMEYgMTE2OSAxMUIwOworQ0Y1RTtDRjVFOzExMEYgMTE2OSAxMUIxO0NGNUU7MTEwRiAxMTY5IDExQjE7CitDRjVGO0NGNUY7MTEwRiAxMTY5IDExQjI7Q0Y1RjsxMTBGIDExNjkgMTFCMjsKK0NGNjA7Q0Y2MDsxMTBGIDExNjkgMTFCMztDRjYwOzExMEYgMTE2OSAxMUIzOworQ0Y2MTtDRjYxOzExMEYgMTE2OSAxMUI0O0NGNjE7MTEwRiAxMTY5IDExQjQ7CitDRjYyO0NGNjI7MTEwRiAxMTY5IDExQjU7Q0Y2MjsxMTBGIDExNjkgMTFCNTsKK0NGNjM7Q0Y2MzsxMTBGIDExNjkgMTFCNjtDRjYzOzExMEYgMTE2OSAxMUI2OworQ0Y2NDtDRjY0OzExMEYgMTE2OSAxMUI3O0NGNjQ7MTEwRiAxMTY5IDExQjc7CitDRjY1O0NGNjU7MTEwRiAxMTY5IDExQjg7Q0Y2NTsxMTBGIDExNjkgMTFCODsKK0NGNjY7Q0Y2NjsxMTBGIDExNjkgMTFCOTtDRjY2OzExMEYgMTE2OSAxMUI5OworQ0Y2NztDRjY3OzExMEYgMTE2OSAxMUJBO0NGNjc7MTEwRiAxMTY5IDExQkE7CitDRjY4O0NGNjg7MTEwRiAxMTY5IDExQkI7Q0Y2ODsxMTBGIDExNjkgMTFCQjsKK0NGNjk7Q0Y2OTsxMTBGIDExNjkgMTFCQztDRjY5OzExMEYgMTE2OSAxMUJDOworQ0Y2QTtDRjZBOzExMEYgMTE2OSAxMUJEO0NGNkE7MTEwRiAxMTY5IDExQkQ7CitDRjZCO0NGNkI7MTEwRiAxMTY5IDExQkU7Q0Y2QjsxMTBGIDExNjkgMTFCRTsKK0NGNkM7Q0Y2QzsxMTBGIDExNjkgMTFCRjtDRjZDOzExMEYgMTE2OSAxMUJGOworQ0Y2RDtDRjZEOzExMEYgMTE2OSAxMUMwO0NGNkQ7MTEwRiAxMTY5IDExQzA7CitDRjZFO0NGNkU7MTEwRiAxMTY5IDExQzE7Q0Y2RTsxMTBGIDExNjkgMTFDMTsKK0NGNkY7Q0Y2RjsxMTBGIDExNjkgMTFDMjtDRjZGOzExMEYgMTE2OSAxMUMyOworQ0Y3MDtDRjcwOzExMEYgMTE2QTtDRjcwOzExMEYgMTE2QTsKK0NGNzE7Q0Y3MTsxMTBGIDExNkEgMTFBODtDRjcxOzExMEYgMTE2QSAxMUE4OworQ0Y3MjtDRjcyOzExMEYgMTE2QSAxMUE5O0NGNzI7MTEwRiAxMTZBIDExQTk7CitDRjczO0NGNzM7MTEwRiAxMTZBIDExQUE7Q0Y3MzsxMTBGIDExNkEgMTFBQTsKK0NGNzQ7Q0Y3NDsxMTBGIDExNkEgMTFBQjtDRjc0OzExMEYgMTE2QSAxMUFCOworQ0Y3NTtDRjc1OzExMEYgMTE2QSAxMUFDO0NGNzU7MTEwRiAxMTZBIDExQUM7CitDRjc2O0NGNzY7MTEwRiAxMTZBIDExQUQ7Q0Y3NjsxMTBGIDExNkEgMTFBRDsKK0NGNzc7Q0Y3NzsxMTBGIDExNkEgMTFBRTtDRjc3OzExMEYgMTE2QSAxMUFFOworQ0Y3ODtDRjc4OzExMEYgMTE2QSAxMUFGO0NGNzg7MTEwRiAxMTZBIDExQUY7CitDRjc5O0NGNzk7MTEwRiAxMTZBIDExQjA7Q0Y3OTsxMTBGIDExNkEgMTFCMDsKK0NGN0E7Q0Y3QTsxMTBGIDExNkEgMTFCMTtDRjdBOzExMEYgMTE2QSAxMUIxOworQ0Y3QjtDRjdCOzExMEYgMTE2QSAxMUIyO0NGN0I7MTEwRiAxMTZBIDExQjI7CitDRjdDO0NGN0M7MTEwRiAxMTZBIDExQjM7Q0Y3QzsxMTBGIDExNkEgMTFCMzsKK0NGN0Q7Q0Y3RDsxMTBGIDExNkEgMTFCNDtDRjdEOzExMEYgMTE2QSAxMUI0OworQ0Y3RTtDRjdFOzExMEYgMTE2QSAxMUI1O0NGN0U7MTEwRiAxMTZBIDExQjU7CitDRjdGO0NGN0Y7MTEwRiAxMTZBIDExQjY7Q0Y3RjsxMTBGIDExNkEgMTFCNjsKK0NGODA7Q0Y4MDsxMTBGIDExNkEgMTFCNztDRjgwOzExMEYgMTE2QSAxMUI3OworQ0Y4MTtDRjgxOzExMEYgMTE2QSAxMUI4O0NGODE7MTEwRiAxMTZBIDExQjg7CitDRjgyO0NGODI7MTEwRiAxMTZBIDExQjk7Q0Y4MjsxMTBGIDExNkEgMTFCOTsKK0NGODM7Q0Y4MzsxMTBGIDExNkEgMTFCQTtDRjgzOzExMEYgMTE2QSAxMUJBOworQ0Y4NDtDRjg0OzExMEYgMTE2QSAxMUJCO0NGODQ7MTEwRiAxMTZBIDExQkI7CitDRjg1O0NGODU7MTEwRiAxMTZBIDExQkM7Q0Y4NTsxMTBGIDExNkEgMTFCQzsKK0NGODY7Q0Y4NjsxMTBGIDExNkEgMTFCRDtDRjg2OzExMEYgMTE2QSAxMUJEOworQ0Y4NztDRjg3OzExMEYgMTE2QSAxMUJFO0NGODc7MTEwRiAxMTZBIDExQkU7CitDRjg4O0NGODg7MTEwRiAxMTZBIDExQkY7Q0Y4ODsxMTBGIDExNkEgMTFCRjsKK0NGODk7Q0Y4OTsxMTBGIDExNkEgMTFDMDtDRjg5OzExMEYgMTE2QSAxMUMwOworQ0Y4QTtDRjhBOzExMEYgMTE2QSAxMUMxO0NGOEE7MTEwRiAxMTZBIDExQzE7CitDRjhCO0NGOEI7MTEwRiAxMTZBIDExQzI7Q0Y4QjsxMTBGIDExNkEgMTFDMjsKK0NGOEM7Q0Y4QzsxMTBGIDExNkI7Q0Y4QzsxMTBGIDExNkI7CitDRjhEO0NGOEQ7MTEwRiAxMTZCIDExQTg7Q0Y4RDsxMTBGIDExNkIgMTFBODsKK0NGOEU7Q0Y4RTsxMTBGIDExNkIgMTFBOTtDRjhFOzExMEYgMTE2QiAxMUE5OworQ0Y4RjtDRjhGOzExMEYgMTE2QiAxMUFBO0NGOEY7MTEwRiAxMTZCIDExQUE7CitDRjkwO0NGOTA7MTEwRiAxMTZCIDExQUI7Q0Y5MDsxMTBGIDExNkIgMTFBQjsKK0NGOTE7Q0Y5MTsxMTBGIDExNkIgMTFBQztDRjkxOzExMEYgMTE2QiAxMUFDOworQ0Y5MjtDRjkyOzExMEYgMTE2QiAxMUFEO0NGOTI7MTEwRiAxMTZCIDExQUQ7CitDRjkzO0NGOTM7MTEwRiAxMTZCIDExQUU7Q0Y5MzsxMTBGIDExNkIgMTFBRTsKK0NGOTQ7Q0Y5NDsxMTBGIDExNkIgMTFBRjtDRjk0OzExMEYgMTE2QiAxMUFGOworQ0Y5NTtDRjk1OzExMEYgMTE2QiAxMUIwO0NGOTU7MTEwRiAxMTZCIDExQjA7CitDRjk2O0NGOTY7MTEwRiAxMTZCIDExQjE7Q0Y5NjsxMTBGIDExNkIgMTFCMTsKK0NGOTc7Q0Y5NzsxMTBGIDExNkIgMTFCMjtDRjk3OzExMEYgMTE2QiAxMUIyOworQ0Y5ODtDRjk4OzExMEYgMTE2QiAxMUIzO0NGOTg7MTEwRiAxMTZCIDExQjM7CitDRjk5O0NGOTk7MTEwRiAxMTZCIDExQjQ7Q0Y5OTsxMTBGIDExNkIgMTFCNDsKK0NGOUE7Q0Y5QTsxMTBGIDExNkIgMTFCNTtDRjlBOzExMEYgMTE2QiAxMUI1OworQ0Y5QjtDRjlCOzExMEYgMTE2QiAxMUI2O0NGOUI7MTEwRiAxMTZCIDExQjY7CitDRjlDO0NGOUM7MTEwRiAxMTZCIDExQjc7Q0Y5QzsxMTBGIDExNkIgMTFCNzsKK0NGOUQ7Q0Y5RDsxMTBGIDExNkIgMTFCODtDRjlEOzExMEYgMTE2QiAxMUI4OworQ0Y5RTtDRjlFOzExMEYgMTE2QiAxMUI5O0NGOUU7MTEwRiAxMTZCIDExQjk7CitDRjlGO0NGOUY7MTEwRiAxMTZCIDExQkE7Q0Y5RjsxMTBGIDExNkIgMTFCQTsKK0NGQTA7Q0ZBMDsxMTBGIDExNkIgMTFCQjtDRkEwOzExMEYgMTE2QiAxMUJCOworQ0ZBMTtDRkExOzExMEYgMTE2QiAxMUJDO0NGQTE7MTEwRiAxMTZCIDExQkM7CitDRkEyO0NGQTI7MTEwRiAxMTZCIDExQkQ7Q0ZBMjsxMTBGIDExNkIgMTFCRDsKK0NGQTM7Q0ZBMzsxMTBGIDExNkIgMTFCRTtDRkEzOzExMEYgMTE2QiAxMUJFOworQ0ZBNDtDRkE0OzExMEYgMTE2QiAxMUJGO0NGQTQ7MTEwRiAxMTZCIDExQkY7CitDRkE1O0NGQTU7MTEwRiAxMTZCIDExQzA7Q0ZBNTsxMTBGIDExNkIgMTFDMDsKK0NGQTY7Q0ZBNjsxMTBGIDExNkIgMTFDMTtDRkE2OzExMEYgMTE2QiAxMUMxOworQ0ZBNztDRkE3OzExMEYgMTE2QiAxMUMyO0NGQTc7MTEwRiAxMTZCIDExQzI7CitDRkE4O0NGQTg7MTEwRiAxMTZDO0NGQTg7MTEwRiAxMTZDOworQ0ZBOTtDRkE5OzExMEYgMTE2QyAxMUE4O0NGQTk7MTEwRiAxMTZDIDExQTg7CitDRkFBO0NGQUE7MTEwRiAxMTZDIDExQTk7Q0ZBQTsxMTBGIDExNkMgMTFBOTsKK0NGQUI7Q0ZBQjsxMTBGIDExNkMgMTFBQTtDRkFCOzExMEYgMTE2QyAxMUFBOworQ0ZBQztDRkFDOzExMEYgMTE2QyAxMUFCO0NGQUM7MTEwRiAxMTZDIDExQUI7CitDRkFEO0NGQUQ7MTEwRiAxMTZDIDExQUM7Q0ZBRDsxMTBGIDExNkMgMTFBQzsKK0NGQUU7Q0ZBRTsxMTBGIDExNkMgMTFBRDtDRkFFOzExMEYgMTE2QyAxMUFEOworQ0ZBRjtDRkFGOzExMEYgMTE2QyAxMUFFO0NGQUY7MTEwRiAxMTZDIDExQUU7CitDRkIwO0NGQjA7MTEwRiAxMTZDIDExQUY7Q0ZCMDsxMTBGIDExNkMgMTFBRjsKK0NGQjE7Q0ZCMTsxMTBGIDExNkMgMTFCMDtDRkIxOzExMEYgMTE2QyAxMUIwOworQ0ZCMjtDRkIyOzExMEYgMTE2QyAxMUIxO0NGQjI7MTEwRiAxMTZDIDExQjE7CitDRkIzO0NGQjM7MTEwRiAxMTZDIDExQjI7Q0ZCMzsxMTBGIDExNkMgMTFCMjsKK0NGQjQ7Q0ZCNDsxMTBGIDExNkMgMTFCMztDRkI0OzExMEYgMTE2QyAxMUIzOworQ0ZCNTtDRkI1OzExMEYgMTE2QyAxMUI0O0NGQjU7MTEwRiAxMTZDIDExQjQ7CitDRkI2O0NGQjY7MTEwRiAxMTZDIDExQjU7Q0ZCNjsxMTBGIDExNkMgMTFCNTsKK0NGQjc7Q0ZCNzsxMTBGIDExNkMgMTFCNjtDRkI3OzExMEYgMTE2QyAxMUI2OworQ0ZCODtDRkI4OzExMEYgMTE2QyAxMUI3O0NGQjg7MTEwRiAxMTZDIDExQjc7CitDRkI5O0NGQjk7MTEwRiAxMTZDIDExQjg7Q0ZCOTsxMTBGIDExNkMgMTFCODsKK0NGQkE7Q0ZCQTsxMTBGIDExNkMgMTFCOTtDRkJBOzExMEYgMTE2QyAxMUI5OworQ0ZCQjtDRkJCOzExMEYgMTE2QyAxMUJBO0NGQkI7MTEwRiAxMTZDIDExQkE7CitDRkJDO0NGQkM7MTEwRiAxMTZDIDExQkI7Q0ZCQzsxMTBGIDExNkMgMTFCQjsKK0NGQkQ7Q0ZCRDsxMTBGIDExNkMgMTFCQztDRkJEOzExMEYgMTE2QyAxMUJDOworQ0ZCRTtDRkJFOzExMEYgMTE2QyAxMUJEO0NGQkU7MTEwRiAxMTZDIDExQkQ7CitDRkJGO0NGQkY7MTEwRiAxMTZDIDExQkU7Q0ZCRjsxMTBGIDExNkMgMTFCRTsKK0NGQzA7Q0ZDMDsxMTBGIDExNkMgMTFCRjtDRkMwOzExMEYgMTE2QyAxMUJGOworQ0ZDMTtDRkMxOzExMEYgMTE2QyAxMUMwO0NGQzE7MTEwRiAxMTZDIDExQzA7CitDRkMyO0NGQzI7MTEwRiAxMTZDIDExQzE7Q0ZDMjsxMTBGIDExNkMgMTFDMTsKK0NGQzM7Q0ZDMzsxMTBGIDExNkMgMTFDMjtDRkMzOzExMEYgMTE2QyAxMUMyOworQ0ZDNDtDRkM0OzExMEYgMTE2RDtDRkM0OzExMEYgMTE2RDsKK0NGQzU7Q0ZDNTsxMTBGIDExNkQgMTFBODtDRkM1OzExMEYgMTE2RCAxMUE4OworQ0ZDNjtDRkM2OzExMEYgMTE2RCAxMUE5O0NGQzY7MTEwRiAxMTZEIDExQTk7CitDRkM3O0NGQzc7MTEwRiAxMTZEIDExQUE7Q0ZDNzsxMTBGIDExNkQgMTFBQTsKK0NGQzg7Q0ZDODsxMTBGIDExNkQgMTFBQjtDRkM4OzExMEYgMTE2RCAxMUFCOworQ0ZDOTtDRkM5OzExMEYgMTE2RCAxMUFDO0NGQzk7MTEwRiAxMTZEIDExQUM7CitDRkNBO0NGQ0E7MTEwRiAxMTZEIDExQUQ7Q0ZDQTsxMTBGIDExNkQgMTFBRDsKK0NGQ0I7Q0ZDQjsxMTBGIDExNkQgMTFBRTtDRkNCOzExMEYgMTE2RCAxMUFFOworQ0ZDQztDRkNDOzExMEYgMTE2RCAxMUFGO0NGQ0M7MTEwRiAxMTZEIDExQUY7CitDRkNEO0NGQ0Q7MTEwRiAxMTZEIDExQjA7Q0ZDRDsxMTBGIDExNkQgMTFCMDsKK0NGQ0U7Q0ZDRTsxMTBGIDExNkQgMTFCMTtDRkNFOzExMEYgMTE2RCAxMUIxOworQ0ZDRjtDRkNGOzExMEYgMTE2RCAxMUIyO0NGQ0Y7MTEwRiAxMTZEIDExQjI7CitDRkQwO0NGRDA7MTEwRiAxMTZEIDExQjM7Q0ZEMDsxMTBGIDExNkQgMTFCMzsKK0NGRDE7Q0ZEMTsxMTBGIDExNkQgMTFCNDtDRkQxOzExMEYgMTE2RCAxMUI0OworQ0ZEMjtDRkQyOzExMEYgMTE2RCAxMUI1O0NGRDI7MTEwRiAxMTZEIDExQjU7CitDRkQzO0NGRDM7MTEwRiAxMTZEIDExQjY7Q0ZEMzsxMTBGIDExNkQgMTFCNjsKK0NGRDQ7Q0ZENDsxMTBGIDExNkQgMTFCNztDRkQ0OzExMEYgMTE2RCAxMUI3OworQ0ZENTtDRkQ1OzExMEYgMTE2RCAxMUI4O0NGRDU7MTEwRiAxMTZEIDExQjg7CitDRkQ2O0NGRDY7MTEwRiAxMTZEIDExQjk7Q0ZENjsxMTBGIDExNkQgMTFCOTsKK0NGRDc7Q0ZENzsxMTBGIDExNkQgMTFCQTtDRkQ3OzExMEYgMTE2RCAxMUJBOworQ0ZEODtDRkQ4OzExMEYgMTE2RCAxMUJCO0NGRDg7MTEwRiAxMTZEIDExQkI7CitDRkQ5O0NGRDk7MTEwRiAxMTZEIDExQkM7Q0ZEOTsxMTBGIDExNkQgMTFCQzsKK0NGREE7Q0ZEQTsxMTBGIDExNkQgMTFCRDtDRkRBOzExMEYgMTE2RCAxMUJEOworQ0ZEQjtDRkRCOzExMEYgMTE2RCAxMUJFO0NGREI7MTEwRiAxMTZEIDExQkU7CitDRkRDO0NGREM7MTEwRiAxMTZEIDExQkY7Q0ZEQzsxMTBGIDExNkQgMTFCRjsKK0NGREQ7Q0ZERDsxMTBGIDExNkQgMTFDMDtDRkREOzExMEYgMTE2RCAxMUMwOworQ0ZERTtDRkRFOzExMEYgMTE2RCAxMUMxO0NGREU7MTEwRiAxMTZEIDExQzE7CitDRkRGO0NGREY7MTEwRiAxMTZEIDExQzI7Q0ZERjsxMTBGIDExNkQgMTFDMjsKK0NGRTA7Q0ZFMDsxMTBGIDExNkU7Q0ZFMDsxMTBGIDExNkU7CitDRkUxO0NGRTE7MTEwRiAxMTZFIDExQTg7Q0ZFMTsxMTBGIDExNkUgMTFBODsKK0NGRTI7Q0ZFMjsxMTBGIDExNkUgMTFBOTtDRkUyOzExMEYgMTE2RSAxMUE5OworQ0ZFMztDRkUzOzExMEYgMTE2RSAxMUFBO0NGRTM7MTEwRiAxMTZFIDExQUE7CitDRkU0O0NGRTQ7MTEwRiAxMTZFIDExQUI7Q0ZFNDsxMTBGIDExNkUgMTFBQjsKK0NGRTU7Q0ZFNTsxMTBGIDExNkUgMTFBQztDRkU1OzExMEYgMTE2RSAxMUFDOworQ0ZFNjtDRkU2OzExMEYgMTE2RSAxMUFEO0NGRTY7MTEwRiAxMTZFIDExQUQ7CitDRkU3O0NGRTc7MTEwRiAxMTZFIDExQUU7Q0ZFNzsxMTBGIDExNkUgMTFBRTsKK0NGRTg7Q0ZFODsxMTBGIDExNkUgMTFBRjtDRkU4OzExMEYgMTE2RSAxMUFGOworQ0ZFOTtDRkU5OzExMEYgMTE2RSAxMUIwO0NGRTk7MTEwRiAxMTZFIDExQjA7CitDRkVBO0NGRUE7MTEwRiAxMTZFIDExQjE7Q0ZFQTsxMTBGIDExNkUgMTFCMTsKK0NGRUI7Q0ZFQjsxMTBGIDExNkUgMTFCMjtDRkVCOzExMEYgMTE2RSAxMUIyOworQ0ZFQztDRkVDOzExMEYgMTE2RSAxMUIzO0NGRUM7MTEwRiAxMTZFIDExQjM7CitDRkVEO0NGRUQ7MTEwRiAxMTZFIDExQjQ7Q0ZFRDsxMTBGIDExNkUgMTFCNDsKK0NGRUU7Q0ZFRTsxMTBGIDExNkUgMTFCNTtDRkVFOzExMEYgMTE2RSAxMUI1OworQ0ZFRjtDRkVGOzExMEYgMTE2RSAxMUI2O0NGRUY7MTEwRiAxMTZFIDExQjY7CitDRkYwO0NGRjA7MTEwRiAxMTZFIDExQjc7Q0ZGMDsxMTBGIDExNkUgMTFCNzsKK0NGRjE7Q0ZGMTsxMTBGIDExNkUgMTFCODtDRkYxOzExMEYgMTE2RSAxMUI4OworQ0ZGMjtDRkYyOzExMEYgMTE2RSAxMUI5O0NGRjI7MTEwRiAxMTZFIDExQjk7CitDRkYzO0NGRjM7MTEwRiAxMTZFIDExQkE7Q0ZGMzsxMTBGIDExNkUgMTFCQTsKK0NGRjQ7Q0ZGNDsxMTBGIDExNkUgMTFCQjtDRkY0OzExMEYgMTE2RSAxMUJCOworQ0ZGNTtDRkY1OzExMEYgMTE2RSAxMUJDO0NGRjU7MTEwRiAxMTZFIDExQkM7CitDRkY2O0NGRjY7MTEwRiAxMTZFIDExQkQ7Q0ZGNjsxMTBGIDExNkUgMTFCRDsKK0NGRjc7Q0ZGNzsxMTBGIDExNkUgMTFCRTtDRkY3OzExMEYgMTE2RSAxMUJFOworQ0ZGODtDRkY4OzExMEYgMTE2RSAxMUJGO0NGRjg7MTEwRiAxMTZFIDExQkY7CitDRkY5O0NGRjk7MTEwRiAxMTZFIDExQzA7Q0ZGOTsxMTBGIDExNkUgMTFDMDsKK0NGRkE7Q0ZGQTsxMTBGIDExNkUgMTFDMTtDRkZBOzExMEYgMTE2RSAxMUMxOworQ0ZGQjtDRkZCOzExMEYgMTE2RSAxMUMyO0NGRkI7MTEwRiAxMTZFIDExQzI7CitDRkZDO0NGRkM7MTEwRiAxMTZGO0NGRkM7MTEwRiAxMTZGOworQ0ZGRDtDRkZEOzExMEYgMTE2RiAxMUE4O0NGRkQ7MTEwRiAxMTZGIDExQTg7CitDRkZFO0NGRkU7MTEwRiAxMTZGIDExQTk7Q0ZGRTsxMTBGIDExNkYgMTFBOTsKK0NGRkY7Q0ZGRjsxMTBGIDExNkYgMTFBQTtDRkZGOzExMEYgMTE2RiAxMUFBOworRDAwMDtEMDAwOzExMEYgMTE2RiAxMUFCO0QwMDA7MTEwRiAxMTZGIDExQUI7CitEMDAxO0QwMDE7MTEwRiAxMTZGIDExQUM7RDAwMTsxMTBGIDExNkYgMTFBQzsKK0QwMDI7RDAwMjsxMTBGIDExNkYgMTFBRDtEMDAyOzExMEYgMTE2RiAxMUFEOworRDAwMztEMDAzOzExMEYgMTE2RiAxMUFFO0QwMDM7MTEwRiAxMTZGIDExQUU7CitEMDA0O0QwMDQ7MTEwRiAxMTZGIDExQUY7RDAwNDsxMTBGIDExNkYgMTFBRjsKK0QwMDU7RDAwNTsxMTBGIDExNkYgMTFCMDtEMDA1OzExMEYgMTE2RiAxMUIwOworRDAwNjtEMDA2OzExMEYgMTE2RiAxMUIxO0QwMDY7MTEwRiAxMTZGIDExQjE7CitEMDA3O0QwMDc7MTEwRiAxMTZGIDExQjI7RDAwNzsxMTBGIDExNkYgMTFCMjsKK0QwMDg7RDAwODsxMTBGIDExNkYgMTFCMztEMDA4OzExMEYgMTE2RiAxMUIzOworRDAwOTtEMDA5OzExMEYgMTE2RiAxMUI0O0QwMDk7MTEwRiAxMTZGIDExQjQ7CitEMDBBO0QwMEE7MTEwRiAxMTZGIDExQjU7RDAwQTsxMTBGIDExNkYgMTFCNTsKK0QwMEI7RDAwQjsxMTBGIDExNkYgMTFCNjtEMDBCOzExMEYgMTE2RiAxMUI2OworRDAwQztEMDBDOzExMEYgMTE2RiAxMUI3O0QwMEM7MTEwRiAxMTZGIDExQjc7CitEMDBEO0QwMEQ7MTEwRiAxMTZGIDExQjg7RDAwRDsxMTBGIDExNkYgMTFCODsKK0QwMEU7RDAwRTsxMTBGIDExNkYgMTFCOTtEMDBFOzExMEYgMTE2RiAxMUI5OworRDAwRjtEMDBGOzExMEYgMTE2RiAxMUJBO0QwMEY7MTEwRiAxMTZGIDExQkE7CitEMDEwO0QwMTA7MTEwRiAxMTZGIDExQkI7RDAxMDsxMTBGIDExNkYgMTFCQjsKK0QwMTE7RDAxMTsxMTBGIDExNkYgMTFCQztEMDExOzExMEYgMTE2RiAxMUJDOworRDAxMjtEMDEyOzExMEYgMTE2RiAxMUJEO0QwMTI7MTEwRiAxMTZGIDExQkQ7CitEMDEzO0QwMTM7MTEwRiAxMTZGIDExQkU7RDAxMzsxMTBGIDExNkYgMTFCRTsKK0QwMTQ7RDAxNDsxMTBGIDExNkYgMTFCRjtEMDE0OzExMEYgMTE2RiAxMUJGOworRDAxNTtEMDE1OzExMEYgMTE2RiAxMUMwO0QwMTU7MTEwRiAxMTZGIDExQzA7CitEMDE2O0QwMTY7MTEwRiAxMTZGIDExQzE7RDAxNjsxMTBGIDExNkYgMTFDMTsKK0QwMTc7RDAxNzsxMTBGIDExNkYgMTFDMjtEMDE3OzExMEYgMTE2RiAxMUMyOworRDAxODtEMDE4OzExMEYgMTE3MDtEMDE4OzExMEYgMTE3MDsKK0QwMTk7RDAxOTsxMTBGIDExNzAgMTFBODtEMDE5OzExMEYgMTE3MCAxMUE4OworRDAxQTtEMDFBOzExMEYgMTE3MCAxMUE5O0QwMUE7MTEwRiAxMTcwIDExQTk7CitEMDFCO0QwMUI7MTEwRiAxMTcwIDExQUE7RDAxQjsxMTBGIDExNzAgMTFBQTsKK0QwMUM7RDAxQzsxMTBGIDExNzAgMTFBQjtEMDFDOzExMEYgMTE3MCAxMUFCOworRDAxRDtEMDFEOzExMEYgMTE3MCAxMUFDO0QwMUQ7MTEwRiAxMTcwIDExQUM7CitEMDFFO0QwMUU7MTEwRiAxMTcwIDExQUQ7RDAxRTsxMTBGIDExNzAgMTFBRDsKK0QwMUY7RDAxRjsxMTBGIDExNzAgMTFBRTtEMDFGOzExMEYgMTE3MCAxMUFFOworRDAyMDtEMDIwOzExMEYgMTE3MCAxMUFGO0QwMjA7MTEwRiAxMTcwIDExQUY7CitEMDIxO0QwMjE7MTEwRiAxMTcwIDExQjA7RDAyMTsxMTBGIDExNzAgMTFCMDsKK0QwMjI7RDAyMjsxMTBGIDExNzAgMTFCMTtEMDIyOzExMEYgMTE3MCAxMUIxOworRDAyMztEMDIzOzExMEYgMTE3MCAxMUIyO0QwMjM7MTEwRiAxMTcwIDExQjI7CitEMDI0O0QwMjQ7MTEwRiAxMTcwIDExQjM7RDAyNDsxMTBGIDExNzAgMTFCMzsKK0QwMjU7RDAyNTsxMTBGIDExNzAgMTFCNDtEMDI1OzExMEYgMTE3MCAxMUI0OworRDAyNjtEMDI2OzExMEYgMTE3MCAxMUI1O0QwMjY7MTEwRiAxMTcwIDExQjU7CitEMDI3O0QwMjc7MTEwRiAxMTcwIDExQjY7RDAyNzsxMTBGIDExNzAgMTFCNjsKK0QwMjg7RDAyODsxMTBGIDExNzAgMTFCNztEMDI4OzExMEYgMTE3MCAxMUI3OworRDAyOTtEMDI5OzExMEYgMTE3MCAxMUI4O0QwMjk7MTEwRiAxMTcwIDExQjg7CitEMDJBO0QwMkE7MTEwRiAxMTcwIDExQjk7RDAyQTsxMTBGIDExNzAgMTFCOTsKK0QwMkI7RDAyQjsxMTBGIDExNzAgMTFCQTtEMDJCOzExMEYgMTE3MCAxMUJBOworRDAyQztEMDJDOzExMEYgMTE3MCAxMUJCO0QwMkM7MTEwRiAxMTcwIDExQkI7CitEMDJEO0QwMkQ7MTEwRiAxMTcwIDExQkM7RDAyRDsxMTBGIDExNzAgMTFCQzsKK0QwMkU7RDAyRTsxMTBGIDExNzAgMTFCRDtEMDJFOzExMEYgMTE3MCAxMUJEOworRDAyRjtEMDJGOzExMEYgMTE3MCAxMUJFO0QwMkY7MTEwRiAxMTcwIDExQkU7CitEMDMwO0QwMzA7MTEwRiAxMTcwIDExQkY7RDAzMDsxMTBGIDExNzAgMTFCRjsKK0QwMzE7RDAzMTsxMTBGIDExNzAgMTFDMDtEMDMxOzExMEYgMTE3MCAxMUMwOworRDAzMjtEMDMyOzExMEYgMTE3MCAxMUMxO0QwMzI7MTEwRiAxMTcwIDExQzE7CitEMDMzO0QwMzM7MTEwRiAxMTcwIDExQzI7RDAzMzsxMTBGIDExNzAgMTFDMjsKK0QwMzQ7RDAzNDsxMTBGIDExNzE7RDAzNDsxMTBGIDExNzE7CitEMDM1O0QwMzU7MTEwRiAxMTcxIDExQTg7RDAzNTsxMTBGIDExNzEgMTFBODsKK0QwMzY7RDAzNjsxMTBGIDExNzEgMTFBOTtEMDM2OzExMEYgMTE3MSAxMUE5OworRDAzNztEMDM3OzExMEYgMTE3MSAxMUFBO0QwMzc7MTEwRiAxMTcxIDExQUE7CitEMDM4O0QwMzg7MTEwRiAxMTcxIDExQUI7RDAzODsxMTBGIDExNzEgMTFBQjsKK0QwMzk7RDAzOTsxMTBGIDExNzEgMTFBQztEMDM5OzExMEYgMTE3MSAxMUFDOworRDAzQTtEMDNBOzExMEYgMTE3MSAxMUFEO0QwM0E7MTEwRiAxMTcxIDExQUQ7CitEMDNCO0QwM0I7MTEwRiAxMTcxIDExQUU7RDAzQjsxMTBGIDExNzEgMTFBRTsKK0QwM0M7RDAzQzsxMTBGIDExNzEgMTFBRjtEMDNDOzExMEYgMTE3MSAxMUFGOworRDAzRDtEMDNEOzExMEYgMTE3MSAxMUIwO0QwM0Q7MTEwRiAxMTcxIDExQjA7CitEMDNFO0QwM0U7MTEwRiAxMTcxIDExQjE7RDAzRTsxMTBGIDExNzEgMTFCMTsKK0QwM0Y7RDAzRjsxMTBGIDExNzEgMTFCMjtEMDNGOzExMEYgMTE3MSAxMUIyOworRDA0MDtEMDQwOzExMEYgMTE3MSAxMUIzO0QwNDA7MTEwRiAxMTcxIDExQjM7CitEMDQxO0QwNDE7MTEwRiAxMTcxIDExQjQ7RDA0MTsxMTBGIDExNzEgMTFCNDsKK0QwNDI7RDA0MjsxMTBGIDExNzEgMTFCNTtEMDQyOzExMEYgMTE3MSAxMUI1OworRDA0MztEMDQzOzExMEYgMTE3MSAxMUI2O0QwNDM7MTEwRiAxMTcxIDExQjY7CitEMDQ0O0QwNDQ7MTEwRiAxMTcxIDExQjc7RDA0NDsxMTBGIDExNzEgMTFCNzsKK0QwNDU7RDA0NTsxMTBGIDExNzEgMTFCODtEMDQ1OzExMEYgMTE3MSAxMUI4OworRDA0NjtEMDQ2OzExMEYgMTE3MSAxMUI5O0QwNDY7MTEwRiAxMTcxIDExQjk7CitEMDQ3O0QwNDc7MTEwRiAxMTcxIDExQkE7RDA0NzsxMTBGIDExNzEgMTFCQTsKK0QwNDg7RDA0ODsxMTBGIDExNzEgMTFCQjtEMDQ4OzExMEYgMTE3MSAxMUJCOworRDA0OTtEMDQ5OzExMEYgMTE3MSAxMUJDO0QwNDk7MTEwRiAxMTcxIDExQkM7CitEMDRBO0QwNEE7MTEwRiAxMTcxIDExQkQ7RDA0QTsxMTBGIDExNzEgMTFCRDsKK0QwNEI7RDA0QjsxMTBGIDExNzEgMTFCRTtEMDRCOzExMEYgMTE3MSAxMUJFOworRDA0QztEMDRDOzExMEYgMTE3MSAxMUJGO0QwNEM7MTEwRiAxMTcxIDExQkY7CitEMDREO0QwNEQ7MTEwRiAxMTcxIDExQzA7RDA0RDsxMTBGIDExNzEgMTFDMDsKK0QwNEU7RDA0RTsxMTBGIDExNzEgMTFDMTtEMDRFOzExMEYgMTE3MSAxMUMxOworRDA0RjtEMDRGOzExMEYgMTE3MSAxMUMyO0QwNEY7MTEwRiAxMTcxIDExQzI7CitEMDUwO0QwNTA7MTEwRiAxMTcyO0QwNTA7MTEwRiAxMTcyOworRDA1MTtEMDUxOzExMEYgMTE3MiAxMUE4O0QwNTE7MTEwRiAxMTcyIDExQTg7CitEMDUyO0QwNTI7MTEwRiAxMTcyIDExQTk7RDA1MjsxMTBGIDExNzIgMTFBOTsKK0QwNTM7RDA1MzsxMTBGIDExNzIgMTFBQTtEMDUzOzExMEYgMTE3MiAxMUFBOworRDA1NDtEMDU0OzExMEYgMTE3MiAxMUFCO0QwNTQ7MTEwRiAxMTcyIDExQUI7CitEMDU1O0QwNTU7MTEwRiAxMTcyIDExQUM7RDA1NTsxMTBGIDExNzIgMTFBQzsKK0QwNTY7RDA1NjsxMTBGIDExNzIgMTFBRDtEMDU2OzExMEYgMTE3MiAxMUFEOworRDA1NztEMDU3OzExMEYgMTE3MiAxMUFFO0QwNTc7MTEwRiAxMTcyIDExQUU7CitEMDU4O0QwNTg7MTEwRiAxMTcyIDExQUY7RDA1ODsxMTBGIDExNzIgMTFBRjsKK0QwNTk7RDA1OTsxMTBGIDExNzIgMTFCMDtEMDU5OzExMEYgMTE3MiAxMUIwOworRDA1QTtEMDVBOzExMEYgMTE3MiAxMUIxO0QwNUE7MTEwRiAxMTcyIDExQjE7CitEMDVCO0QwNUI7MTEwRiAxMTcyIDExQjI7RDA1QjsxMTBGIDExNzIgMTFCMjsKK0QwNUM7RDA1QzsxMTBGIDExNzIgMTFCMztEMDVDOzExMEYgMTE3MiAxMUIzOworRDA1RDtEMDVEOzExMEYgMTE3MiAxMUI0O0QwNUQ7MTEwRiAxMTcyIDExQjQ7CitEMDVFO0QwNUU7MTEwRiAxMTcyIDExQjU7RDA1RTsxMTBGIDExNzIgMTFCNTsKK0QwNUY7RDA1RjsxMTBGIDExNzIgMTFCNjtEMDVGOzExMEYgMTE3MiAxMUI2OworRDA2MDtEMDYwOzExMEYgMTE3MiAxMUI3O0QwNjA7MTEwRiAxMTcyIDExQjc7CitEMDYxO0QwNjE7MTEwRiAxMTcyIDExQjg7RDA2MTsxMTBGIDExNzIgMTFCODsKK0QwNjI7RDA2MjsxMTBGIDExNzIgMTFCOTtEMDYyOzExMEYgMTE3MiAxMUI5OworRDA2MztEMDYzOzExMEYgMTE3MiAxMUJBO0QwNjM7MTEwRiAxMTcyIDExQkE7CitEMDY0O0QwNjQ7MTEwRiAxMTcyIDExQkI7RDA2NDsxMTBGIDExNzIgMTFCQjsKK0QwNjU7RDA2NTsxMTBGIDExNzIgMTFCQztEMDY1OzExMEYgMTE3MiAxMUJDOworRDA2NjtEMDY2OzExMEYgMTE3MiAxMUJEO0QwNjY7MTEwRiAxMTcyIDExQkQ7CitEMDY3O0QwNjc7MTEwRiAxMTcyIDExQkU7RDA2NzsxMTBGIDExNzIgMTFCRTsKK0QwNjg7RDA2ODsxMTBGIDExNzIgMTFCRjtEMDY4OzExMEYgMTE3MiAxMUJGOworRDA2OTtEMDY5OzExMEYgMTE3MiAxMUMwO0QwNjk7MTEwRiAxMTcyIDExQzA7CitEMDZBO0QwNkE7MTEwRiAxMTcyIDExQzE7RDA2QTsxMTBGIDExNzIgMTFDMTsKK0QwNkI7RDA2QjsxMTBGIDExNzIgMTFDMjtEMDZCOzExMEYgMTE3MiAxMUMyOworRDA2QztEMDZDOzExMEYgMTE3MztEMDZDOzExMEYgMTE3MzsKK0QwNkQ7RDA2RDsxMTBGIDExNzMgMTFBODtEMDZEOzExMEYgMTE3MyAxMUE4OworRDA2RTtEMDZFOzExMEYgMTE3MyAxMUE5O0QwNkU7MTEwRiAxMTczIDExQTk7CitEMDZGO0QwNkY7MTEwRiAxMTczIDExQUE7RDA2RjsxMTBGIDExNzMgMTFBQTsKK0QwNzA7RDA3MDsxMTBGIDExNzMgMTFBQjtEMDcwOzExMEYgMTE3MyAxMUFCOworRDA3MTtEMDcxOzExMEYgMTE3MyAxMUFDO0QwNzE7MTEwRiAxMTczIDExQUM7CitEMDcyO0QwNzI7MTEwRiAxMTczIDExQUQ7RDA3MjsxMTBGIDExNzMgMTFBRDsKK0QwNzM7RDA3MzsxMTBGIDExNzMgMTFBRTtEMDczOzExMEYgMTE3MyAxMUFFOworRDA3NDtEMDc0OzExMEYgMTE3MyAxMUFGO0QwNzQ7MTEwRiAxMTczIDExQUY7CitEMDc1O0QwNzU7MTEwRiAxMTczIDExQjA7RDA3NTsxMTBGIDExNzMgMTFCMDsKK0QwNzY7RDA3NjsxMTBGIDExNzMgMTFCMTtEMDc2OzExMEYgMTE3MyAxMUIxOworRDA3NztEMDc3OzExMEYgMTE3MyAxMUIyO0QwNzc7MTEwRiAxMTczIDExQjI7CitEMDc4O0QwNzg7MTEwRiAxMTczIDExQjM7RDA3ODsxMTBGIDExNzMgMTFCMzsKK0QwNzk7RDA3OTsxMTBGIDExNzMgMTFCNDtEMDc5OzExMEYgMTE3MyAxMUI0OworRDA3QTtEMDdBOzExMEYgMTE3MyAxMUI1O0QwN0E7MTEwRiAxMTczIDExQjU7CitEMDdCO0QwN0I7MTEwRiAxMTczIDExQjY7RDA3QjsxMTBGIDExNzMgMTFCNjsKK0QwN0M7RDA3QzsxMTBGIDExNzMgMTFCNztEMDdDOzExMEYgMTE3MyAxMUI3OworRDA3RDtEMDdEOzExMEYgMTE3MyAxMUI4O0QwN0Q7MTEwRiAxMTczIDExQjg7CitEMDdFO0QwN0U7MTEwRiAxMTczIDExQjk7RDA3RTsxMTBGIDExNzMgMTFCOTsKK0QwN0Y7RDA3RjsxMTBGIDExNzMgMTFCQTtEMDdGOzExMEYgMTE3MyAxMUJBOworRDA4MDtEMDgwOzExMEYgMTE3MyAxMUJCO0QwODA7MTEwRiAxMTczIDExQkI7CitEMDgxO0QwODE7MTEwRiAxMTczIDExQkM7RDA4MTsxMTBGIDExNzMgMTFCQzsKK0QwODI7RDA4MjsxMTBGIDExNzMgMTFCRDtEMDgyOzExMEYgMTE3MyAxMUJEOworRDA4MztEMDgzOzExMEYgMTE3MyAxMUJFO0QwODM7MTEwRiAxMTczIDExQkU7CitEMDg0O0QwODQ7MTEwRiAxMTczIDExQkY7RDA4NDsxMTBGIDExNzMgMTFCRjsKK0QwODU7RDA4NTsxMTBGIDExNzMgMTFDMDtEMDg1OzExMEYgMTE3MyAxMUMwOworRDA4NjtEMDg2OzExMEYgMTE3MyAxMUMxO0QwODY7MTEwRiAxMTczIDExQzE7CitEMDg3O0QwODc7MTEwRiAxMTczIDExQzI7RDA4NzsxMTBGIDExNzMgMTFDMjsKK0QwODg7RDA4ODsxMTBGIDExNzQ7RDA4ODsxMTBGIDExNzQ7CitEMDg5O0QwODk7MTEwRiAxMTc0IDExQTg7RDA4OTsxMTBGIDExNzQgMTFBODsKK0QwOEE7RDA4QTsxMTBGIDExNzQgMTFBOTtEMDhBOzExMEYgMTE3NCAxMUE5OworRDA4QjtEMDhCOzExMEYgMTE3NCAxMUFBO0QwOEI7MTEwRiAxMTc0IDExQUE7CitEMDhDO0QwOEM7MTEwRiAxMTc0IDExQUI7RDA4QzsxMTBGIDExNzQgMTFBQjsKK0QwOEQ7RDA4RDsxMTBGIDExNzQgMTFBQztEMDhEOzExMEYgMTE3NCAxMUFDOworRDA4RTtEMDhFOzExMEYgMTE3NCAxMUFEO0QwOEU7MTEwRiAxMTc0IDExQUQ7CitEMDhGO0QwOEY7MTEwRiAxMTc0IDExQUU7RDA4RjsxMTBGIDExNzQgMTFBRTsKK0QwOTA7RDA5MDsxMTBGIDExNzQgMTFBRjtEMDkwOzExMEYgMTE3NCAxMUFGOworRDA5MTtEMDkxOzExMEYgMTE3NCAxMUIwO0QwOTE7MTEwRiAxMTc0IDExQjA7CitEMDkyO0QwOTI7MTEwRiAxMTc0IDExQjE7RDA5MjsxMTBGIDExNzQgMTFCMTsKK0QwOTM7RDA5MzsxMTBGIDExNzQgMTFCMjtEMDkzOzExMEYgMTE3NCAxMUIyOworRDA5NDtEMDk0OzExMEYgMTE3NCAxMUIzO0QwOTQ7MTEwRiAxMTc0IDExQjM7CitEMDk1O0QwOTU7MTEwRiAxMTc0IDExQjQ7RDA5NTsxMTBGIDExNzQgMTFCNDsKK0QwOTY7RDA5NjsxMTBGIDExNzQgMTFCNTtEMDk2OzExMEYgMTE3NCAxMUI1OworRDA5NztEMDk3OzExMEYgMTE3NCAxMUI2O0QwOTc7MTEwRiAxMTc0IDExQjY7CitEMDk4O0QwOTg7MTEwRiAxMTc0IDExQjc7RDA5ODsxMTBGIDExNzQgMTFCNzsKK0QwOTk7RDA5OTsxMTBGIDExNzQgMTFCODtEMDk5OzExMEYgMTE3NCAxMUI4OworRDA5QTtEMDlBOzExMEYgMTE3NCAxMUI5O0QwOUE7MTEwRiAxMTc0IDExQjk7CitEMDlCO0QwOUI7MTEwRiAxMTc0IDExQkE7RDA5QjsxMTBGIDExNzQgMTFCQTsKK0QwOUM7RDA5QzsxMTBGIDExNzQgMTFCQjtEMDlDOzExMEYgMTE3NCAxMUJCOworRDA5RDtEMDlEOzExMEYgMTE3NCAxMUJDO0QwOUQ7MTEwRiAxMTc0IDExQkM7CitEMDlFO0QwOUU7MTEwRiAxMTc0IDExQkQ7RDA5RTsxMTBGIDExNzQgMTFCRDsKK0QwOUY7RDA5RjsxMTBGIDExNzQgMTFCRTtEMDlGOzExMEYgMTE3NCAxMUJFOworRDBBMDtEMEEwOzExMEYgMTE3NCAxMUJGO0QwQTA7MTEwRiAxMTc0IDExQkY7CitEMEExO0QwQTE7MTEwRiAxMTc0IDExQzA7RDBBMTsxMTBGIDExNzQgMTFDMDsKK0QwQTI7RDBBMjsxMTBGIDExNzQgMTFDMTtEMEEyOzExMEYgMTE3NCAxMUMxOworRDBBMztEMEEzOzExMEYgMTE3NCAxMUMyO0QwQTM7MTEwRiAxMTc0IDExQzI7CitEMEE0O0QwQTQ7MTEwRiAxMTc1O0QwQTQ7MTEwRiAxMTc1OworRDBBNTtEMEE1OzExMEYgMTE3NSAxMUE4O0QwQTU7MTEwRiAxMTc1IDExQTg7CitEMEE2O0QwQTY7MTEwRiAxMTc1IDExQTk7RDBBNjsxMTBGIDExNzUgMTFBOTsKK0QwQTc7RDBBNzsxMTBGIDExNzUgMTFBQTtEMEE3OzExMEYgMTE3NSAxMUFBOworRDBBODtEMEE4OzExMEYgMTE3NSAxMUFCO0QwQTg7MTEwRiAxMTc1IDExQUI7CitEMEE5O0QwQTk7MTEwRiAxMTc1IDExQUM7RDBBOTsxMTBGIDExNzUgMTFBQzsKK0QwQUE7RDBBQTsxMTBGIDExNzUgMTFBRDtEMEFBOzExMEYgMTE3NSAxMUFEOworRDBBQjtEMEFCOzExMEYgMTE3NSAxMUFFO0QwQUI7MTEwRiAxMTc1IDExQUU7CitEMEFDO0QwQUM7MTEwRiAxMTc1IDExQUY7RDBBQzsxMTBGIDExNzUgMTFBRjsKK0QwQUQ7RDBBRDsxMTBGIDExNzUgMTFCMDtEMEFEOzExMEYgMTE3NSAxMUIwOworRDBBRTtEMEFFOzExMEYgMTE3NSAxMUIxO0QwQUU7MTEwRiAxMTc1IDExQjE7CitEMEFGO0QwQUY7MTEwRiAxMTc1IDExQjI7RDBBRjsxMTBGIDExNzUgMTFCMjsKK0QwQjA7RDBCMDsxMTBGIDExNzUgMTFCMztEMEIwOzExMEYgMTE3NSAxMUIzOworRDBCMTtEMEIxOzExMEYgMTE3NSAxMUI0O0QwQjE7MTEwRiAxMTc1IDExQjQ7CitEMEIyO0QwQjI7MTEwRiAxMTc1IDExQjU7RDBCMjsxMTBGIDExNzUgMTFCNTsKK0QwQjM7RDBCMzsxMTBGIDExNzUgMTFCNjtEMEIzOzExMEYgMTE3NSAxMUI2OworRDBCNDtEMEI0OzExMEYgMTE3NSAxMUI3O0QwQjQ7MTEwRiAxMTc1IDExQjc7CitEMEI1O0QwQjU7MTEwRiAxMTc1IDExQjg7RDBCNTsxMTBGIDExNzUgMTFCODsKK0QwQjY7RDBCNjsxMTBGIDExNzUgMTFCOTtEMEI2OzExMEYgMTE3NSAxMUI5OworRDBCNztEMEI3OzExMEYgMTE3NSAxMUJBO0QwQjc7MTEwRiAxMTc1IDExQkE7CitEMEI4O0QwQjg7MTEwRiAxMTc1IDExQkI7RDBCODsxMTBGIDExNzUgMTFCQjsKK0QwQjk7RDBCOTsxMTBGIDExNzUgMTFCQztEMEI5OzExMEYgMTE3NSAxMUJDOworRDBCQTtEMEJBOzExMEYgMTE3NSAxMUJEO0QwQkE7MTEwRiAxMTc1IDExQkQ7CitEMEJCO0QwQkI7MTEwRiAxMTc1IDExQkU7RDBCQjsxMTBGIDExNzUgMTFCRTsKK0QwQkM7RDBCQzsxMTBGIDExNzUgMTFCRjtEMEJDOzExMEYgMTE3NSAxMUJGOworRDBCRDtEMEJEOzExMEYgMTE3NSAxMUMwO0QwQkQ7MTEwRiAxMTc1IDExQzA7CitEMEJFO0QwQkU7MTEwRiAxMTc1IDExQzE7RDBCRTsxMTBGIDExNzUgMTFDMTsKK0QwQkY7RDBCRjsxMTBGIDExNzUgMTFDMjtEMEJGOzExMEYgMTE3NSAxMUMyOworRDBDMDtEMEMwOzExMTAgMTE2MTtEMEMwOzExMTAgMTE2MTsKK0QwQzE7RDBDMTsxMTEwIDExNjEgMTFBODtEMEMxOzExMTAgMTE2MSAxMUE4OworRDBDMjtEMEMyOzExMTAgMTE2MSAxMUE5O0QwQzI7MTExMCAxMTYxIDExQTk7CitEMEMzO0QwQzM7MTExMCAxMTYxIDExQUE7RDBDMzsxMTEwIDExNjEgMTFBQTsKK0QwQzQ7RDBDNDsxMTEwIDExNjEgMTFBQjtEMEM0OzExMTAgMTE2MSAxMUFCOworRDBDNTtEMEM1OzExMTAgMTE2MSAxMUFDO0QwQzU7MTExMCAxMTYxIDExQUM7CitEMEM2O0QwQzY7MTExMCAxMTYxIDExQUQ7RDBDNjsxMTEwIDExNjEgMTFBRDsKK0QwQzc7RDBDNzsxMTEwIDExNjEgMTFBRTtEMEM3OzExMTAgMTE2MSAxMUFFOworRDBDODtEMEM4OzExMTAgMTE2MSAxMUFGO0QwQzg7MTExMCAxMTYxIDExQUY7CitEMEM5O0QwQzk7MTExMCAxMTYxIDExQjA7RDBDOTsxMTEwIDExNjEgMTFCMDsKK0QwQ0E7RDBDQTsxMTEwIDExNjEgMTFCMTtEMENBOzExMTAgMTE2MSAxMUIxOworRDBDQjtEMENCOzExMTAgMTE2MSAxMUIyO0QwQ0I7MTExMCAxMTYxIDExQjI7CitEMENDO0QwQ0M7MTExMCAxMTYxIDExQjM7RDBDQzsxMTEwIDExNjEgMTFCMzsKK0QwQ0Q7RDBDRDsxMTEwIDExNjEgMTFCNDtEMENEOzExMTAgMTE2MSAxMUI0OworRDBDRTtEMENFOzExMTAgMTE2MSAxMUI1O0QwQ0U7MTExMCAxMTYxIDExQjU7CitEMENGO0QwQ0Y7MTExMCAxMTYxIDExQjY7RDBDRjsxMTEwIDExNjEgMTFCNjsKK0QwRDA7RDBEMDsxMTEwIDExNjEgMTFCNztEMEQwOzExMTAgMTE2MSAxMUI3OworRDBEMTtEMEQxOzExMTAgMTE2MSAxMUI4O0QwRDE7MTExMCAxMTYxIDExQjg7CitEMEQyO0QwRDI7MTExMCAxMTYxIDExQjk7RDBEMjsxMTEwIDExNjEgMTFCOTsKK0QwRDM7RDBEMzsxMTEwIDExNjEgMTFCQTtEMEQzOzExMTAgMTE2MSAxMUJBOworRDBENDtEMEQ0OzExMTAgMTE2MSAxMUJCO0QwRDQ7MTExMCAxMTYxIDExQkI7CitEMEQ1O0QwRDU7MTExMCAxMTYxIDExQkM7RDBENTsxMTEwIDExNjEgMTFCQzsKK0QwRDY7RDBENjsxMTEwIDExNjEgMTFCRDtEMEQ2OzExMTAgMTE2MSAxMUJEOworRDBENztEMEQ3OzExMTAgMTE2MSAxMUJFO0QwRDc7MTExMCAxMTYxIDExQkU7CitEMEQ4O0QwRDg7MTExMCAxMTYxIDExQkY7RDBEODsxMTEwIDExNjEgMTFCRjsKK0QwRDk7RDBEOTsxMTEwIDExNjEgMTFDMDtEMEQ5OzExMTAgMTE2MSAxMUMwOworRDBEQTtEMERBOzExMTAgMTE2MSAxMUMxO0QwREE7MTExMCAxMTYxIDExQzE7CitEMERCO0QwREI7MTExMCAxMTYxIDExQzI7RDBEQjsxMTEwIDExNjEgMTFDMjsKK0QwREM7RDBEQzsxMTEwIDExNjI7RDBEQzsxMTEwIDExNjI7CitEMEREO0QwREQ7MTExMCAxMTYyIDExQTg7RDBERDsxMTEwIDExNjIgMTFBODsKK0QwREU7RDBERTsxMTEwIDExNjIgMTFBOTtEMERFOzExMTAgMTE2MiAxMUE5OworRDBERjtEMERGOzExMTAgMTE2MiAxMUFBO0QwREY7MTExMCAxMTYyIDExQUE7CitEMEUwO0QwRTA7MTExMCAxMTYyIDExQUI7RDBFMDsxMTEwIDExNjIgMTFBQjsKK0QwRTE7RDBFMTsxMTEwIDExNjIgMTFBQztEMEUxOzExMTAgMTE2MiAxMUFDOworRDBFMjtEMEUyOzExMTAgMTE2MiAxMUFEO0QwRTI7MTExMCAxMTYyIDExQUQ7CitEMEUzO0QwRTM7MTExMCAxMTYyIDExQUU7RDBFMzsxMTEwIDExNjIgMTFBRTsKK0QwRTQ7RDBFNDsxMTEwIDExNjIgMTFBRjtEMEU0OzExMTAgMTE2MiAxMUFGOworRDBFNTtEMEU1OzExMTAgMTE2MiAxMUIwO0QwRTU7MTExMCAxMTYyIDExQjA7CitEMEU2O0QwRTY7MTExMCAxMTYyIDExQjE7RDBFNjsxMTEwIDExNjIgMTFCMTsKK0QwRTc7RDBFNzsxMTEwIDExNjIgMTFCMjtEMEU3OzExMTAgMTE2MiAxMUIyOworRDBFODtEMEU4OzExMTAgMTE2MiAxMUIzO0QwRTg7MTExMCAxMTYyIDExQjM7CitEMEU5O0QwRTk7MTExMCAxMTYyIDExQjQ7RDBFOTsxMTEwIDExNjIgMTFCNDsKK0QwRUE7RDBFQTsxMTEwIDExNjIgMTFCNTtEMEVBOzExMTAgMTE2MiAxMUI1OworRDBFQjtEMEVCOzExMTAgMTE2MiAxMUI2O0QwRUI7MTExMCAxMTYyIDExQjY7CitEMEVDO0QwRUM7MTExMCAxMTYyIDExQjc7RDBFQzsxMTEwIDExNjIgMTFCNzsKK0QwRUQ7RDBFRDsxMTEwIDExNjIgMTFCODtEMEVEOzExMTAgMTE2MiAxMUI4OworRDBFRTtEMEVFOzExMTAgMTE2MiAxMUI5O0QwRUU7MTExMCAxMTYyIDExQjk7CitEMEVGO0QwRUY7MTExMCAxMTYyIDExQkE7RDBFRjsxMTEwIDExNjIgMTFCQTsKK0QwRjA7RDBGMDsxMTEwIDExNjIgMTFCQjtEMEYwOzExMTAgMTE2MiAxMUJCOworRDBGMTtEMEYxOzExMTAgMTE2MiAxMUJDO0QwRjE7MTExMCAxMTYyIDExQkM7CitEMEYyO0QwRjI7MTExMCAxMTYyIDExQkQ7RDBGMjsxMTEwIDExNjIgMTFCRDsKK0QwRjM7RDBGMzsxMTEwIDExNjIgMTFCRTtEMEYzOzExMTAgMTE2MiAxMUJFOworRDBGNDtEMEY0OzExMTAgMTE2MiAxMUJGO0QwRjQ7MTExMCAxMTYyIDExQkY7CitEMEY1O0QwRjU7MTExMCAxMTYyIDExQzA7RDBGNTsxMTEwIDExNjIgMTFDMDsKK0QwRjY7RDBGNjsxMTEwIDExNjIgMTFDMTtEMEY2OzExMTAgMTE2MiAxMUMxOworRDBGNztEMEY3OzExMTAgMTE2MiAxMUMyO0QwRjc7MTExMCAxMTYyIDExQzI7CitEMEY4O0QwRjg7MTExMCAxMTYzO0QwRjg7MTExMCAxMTYzOworRDBGOTtEMEY5OzExMTAgMTE2MyAxMUE4O0QwRjk7MTExMCAxMTYzIDExQTg7CitEMEZBO0QwRkE7MTExMCAxMTYzIDExQTk7RDBGQTsxMTEwIDExNjMgMTFBOTsKK0QwRkI7RDBGQjsxMTEwIDExNjMgMTFBQTtEMEZCOzExMTAgMTE2MyAxMUFBOworRDBGQztEMEZDOzExMTAgMTE2MyAxMUFCO0QwRkM7MTExMCAxMTYzIDExQUI7CitEMEZEO0QwRkQ7MTExMCAxMTYzIDExQUM7RDBGRDsxMTEwIDExNjMgMTFBQzsKK0QwRkU7RDBGRTsxMTEwIDExNjMgMTFBRDtEMEZFOzExMTAgMTE2MyAxMUFEOworRDBGRjtEMEZGOzExMTAgMTE2MyAxMUFFO0QwRkY7MTExMCAxMTYzIDExQUU7CitEMTAwO0QxMDA7MTExMCAxMTYzIDExQUY7RDEwMDsxMTEwIDExNjMgMTFBRjsKK0QxMDE7RDEwMTsxMTEwIDExNjMgMTFCMDtEMTAxOzExMTAgMTE2MyAxMUIwOworRDEwMjtEMTAyOzExMTAgMTE2MyAxMUIxO0QxMDI7MTExMCAxMTYzIDExQjE7CitEMTAzO0QxMDM7MTExMCAxMTYzIDExQjI7RDEwMzsxMTEwIDExNjMgMTFCMjsKK0QxMDQ7RDEwNDsxMTEwIDExNjMgMTFCMztEMTA0OzExMTAgMTE2MyAxMUIzOworRDEwNTtEMTA1OzExMTAgMTE2MyAxMUI0O0QxMDU7MTExMCAxMTYzIDExQjQ7CitEMTA2O0QxMDY7MTExMCAxMTYzIDExQjU7RDEwNjsxMTEwIDExNjMgMTFCNTsKK0QxMDc7RDEwNzsxMTEwIDExNjMgMTFCNjtEMTA3OzExMTAgMTE2MyAxMUI2OworRDEwODtEMTA4OzExMTAgMTE2MyAxMUI3O0QxMDg7MTExMCAxMTYzIDExQjc7CitEMTA5O0QxMDk7MTExMCAxMTYzIDExQjg7RDEwOTsxMTEwIDExNjMgMTFCODsKK0QxMEE7RDEwQTsxMTEwIDExNjMgMTFCOTtEMTBBOzExMTAgMTE2MyAxMUI5OworRDEwQjtEMTBCOzExMTAgMTE2MyAxMUJBO0QxMEI7MTExMCAxMTYzIDExQkE7CitEMTBDO0QxMEM7MTExMCAxMTYzIDExQkI7RDEwQzsxMTEwIDExNjMgMTFCQjsKK0QxMEQ7RDEwRDsxMTEwIDExNjMgMTFCQztEMTBEOzExMTAgMTE2MyAxMUJDOworRDEwRTtEMTBFOzExMTAgMTE2MyAxMUJEO0QxMEU7MTExMCAxMTYzIDExQkQ7CitEMTBGO0QxMEY7MTExMCAxMTYzIDExQkU7RDEwRjsxMTEwIDExNjMgMTFCRTsKK0QxMTA7RDExMDsxMTEwIDExNjMgMTFCRjtEMTEwOzExMTAgMTE2MyAxMUJGOworRDExMTtEMTExOzExMTAgMTE2MyAxMUMwO0QxMTE7MTExMCAxMTYzIDExQzA7CitEMTEyO0QxMTI7MTExMCAxMTYzIDExQzE7RDExMjsxMTEwIDExNjMgMTFDMTsKK0QxMTM7RDExMzsxMTEwIDExNjMgMTFDMjtEMTEzOzExMTAgMTE2MyAxMUMyOworRDExNDtEMTE0OzExMTAgMTE2NDtEMTE0OzExMTAgMTE2NDsKK0QxMTU7RDExNTsxMTEwIDExNjQgMTFBODtEMTE1OzExMTAgMTE2NCAxMUE4OworRDExNjtEMTE2OzExMTAgMTE2NCAxMUE5O0QxMTY7MTExMCAxMTY0IDExQTk7CitEMTE3O0QxMTc7MTExMCAxMTY0IDExQUE7RDExNzsxMTEwIDExNjQgMTFBQTsKK0QxMTg7RDExODsxMTEwIDExNjQgMTFBQjtEMTE4OzExMTAgMTE2NCAxMUFCOworRDExOTtEMTE5OzExMTAgMTE2NCAxMUFDO0QxMTk7MTExMCAxMTY0IDExQUM7CitEMTFBO0QxMUE7MTExMCAxMTY0IDExQUQ7RDExQTsxMTEwIDExNjQgMTFBRDsKK0QxMUI7RDExQjsxMTEwIDExNjQgMTFBRTtEMTFCOzExMTAgMTE2NCAxMUFFOworRDExQztEMTFDOzExMTAgMTE2NCAxMUFGO0QxMUM7MTExMCAxMTY0IDExQUY7CitEMTFEO0QxMUQ7MTExMCAxMTY0IDExQjA7RDExRDsxMTEwIDExNjQgMTFCMDsKK0QxMUU7RDExRTsxMTEwIDExNjQgMTFCMTtEMTFFOzExMTAgMTE2NCAxMUIxOworRDExRjtEMTFGOzExMTAgMTE2NCAxMUIyO0QxMUY7MTExMCAxMTY0IDExQjI7CitEMTIwO0QxMjA7MTExMCAxMTY0IDExQjM7RDEyMDsxMTEwIDExNjQgMTFCMzsKK0QxMjE7RDEyMTsxMTEwIDExNjQgMTFCNDtEMTIxOzExMTAgMTE2NCAxMUI0OworRDEyMjtEMTIyOzExMTAgMTE2NCAxMUI1O0QxMjI7MTExMCAxMTY0IDExQjU7CitEMTIzO0QxMjM7MTExMCAxMTY0IDExQjY7RDEyMzsxMTEwIDExNjQgMTFCNjsKK0QxMjQ7RDEyNDsxMTEwIDExNjQgMTFCNztEMTI0OzExMTAgMTE2NCAxMUI3OworRDEyNTtEMTI1OzExMTAgMTE2NCAxMUI4O0QxMjU7MTExMCAxMTY0IDExQjg7CitEMTI2O0QxMjY7MTExMCAxMTY0IDExQjk7RDEyNjsxMTEwIDExNjQgMTFCOTsKK0QxMjc7RDEyNzsxMTEwIDExNjQgMTFCQTtEMTI3OzExMTAgMTE2NCAxMUJBOworRDEyODtEMTI4OzExMTAgMTE2NCAxMUJCO0QxMjg7MTExMCAxMTY0IDExQkI7CitEMTI5O0QxMjk7MTExMCAxMTY0IDExQkM7RDEyOTsxMTEwIDExNjQgMTFCQzsKK0QxMkE7RDEyQTsxMTEwIDExNjQgMTFCRDtEMTJBOzExMTAgMTE2NCAxMUJEOworRDEyQjtEMTJCOzExMTAgMTE2NCAxMUJFO0QxMkI7MTExMCAxMTY0IDExQkU7CitEMTJDO0QxMkM7MTExMCAxMTY0IDExQkY7RDEyQzsxMTEwIDExNjQgMTFCRjsKK0QxMkQ7RDEyRDsxMTEwIDExNjQgMTFDMDtEMTJEOzExMTAgMTE2NCAxMUMwOworRDEyRTtEMTJFOzExMTAgMTE2NCAxMUMxO0QxMkU7MTExMCAxMTY0IDExQzE7CitEMTJGO0QxMkY7MTExMCAxMTY0IDExQzI7RDEyRjsxMTEwIDExNjQgMTFDMjsKK0QxMzA7RDEzMDsxMTEwIDExNjU7RDEzMDsxMTEwIDExNjU7CitEMTMxO0QxMzE7MTExMCAxMTY1IDExQTg7RDEzMTsxMTEwIDExNjUgMTFBODsKK0QxMzI7RDEzMjsxMTEwIDExNjUgMTFBOTtEMTMyOzExMTAgMTE2NSAxMUE5OworRDEzMztEMTMzOzExMTAgMTE2NSAxMUFBO0QxMzM7MTExMCAxMTY1IDExQUE7CitEMTM0O0QxMzQ7MTExMCAxMTY1IDExQUI7RDEzNDsxMTEwIDExNjUgMTFBQjsKK0QxMzU7RDEzNTsxMTEwIDExNjUgMTFBQztEMTM1OzExMTAgMTE2NSAxMUFDOworRDEzNjtEMTM2OzExMTAgMTE2NSAxMUFEO0QxMzY7MTExMCAxMTY1IDExQUQ7CitEMTM3O0QxMzc7MTExMCAxMTY1IDExQUU7RDEzNzsxMTEwIDExNjUgMTFBRTsKK0QxMzg7RDEzODsxMTEwIDExNjUgMTFBRjtEMTM4OzExMTAgMTE2NSAxMUFGOworRDEzOTtEMTM5OzExMTAgMTE2NSAxMUIwO0QxMzk7MTExMCAxMTY1IDExQjA7CitEMTNBO0QxM0E7MTExMCAxMTY1IDExQjE7RDEzQTsxMTEwIDExNjUgMTFCMTsKK0QxM0I7RDEzQjsxMTEwIDExNjUgMTFCMjtEMTNCOzExMTAgMTE2NSAxMUIyOworRDEzQztEMTNDOzExMTAgMTE2NSAxMUIzO0QxM0M7MTExMCAxMTY1IDExQjM7CitEMTNEO0QxM0Q7MTExMCAxMTY1IDExQjQ7RDEzRDsxMTEwIDExNjUgMTFCNDsKK0QxM0U7RDEzRTsxMTEwIDExNjUgMTFCNTtEMTNFOzExMTAgMTE2NSAxMUI1OworRDEzRjtEMTNGOzExMTAgMTE2NSAxMUI2O0QxM0Y7MTExMCAxMTY1IDExQjY7CitEMTQwO0QxNDA7MTExMCAxMTY1IDExQjc7RDE0MDsxMTEwIDExNjUgMTFCNzsKK0QxNDE7RDE0MTsxMTEwIDExNjUgMTFCODtEMTQxOzExMTAgMTE2NSAxMUI4OworRDE0MjtEMTQyOzExMTAgMTE2NSAxMUI5O0QxNDI7MTExMCAxMTY1IDExQjk7CitEMTQzO0QxNDM7MTExMCAxMTY1IDExQkE7RDE0MzsxMTEwIDExNjUgMTFCQTsKK0QxNDQ7RDE0NDsxMTEwIDExNjUgMTFCQjtEMTQ0OzExMTAgMTE2NSAxMUJCOworRDE0NTtEMTQ1OzExMTAgMTE2NSAxMUJDO0QxNDU7MTExMCAxMTY1IDExQkM7CitEMTQ2O0QxNDY7MTExMCAxMTY1IDExQkQ7RDE0NjsxMTEwIDExNjUgMTFCRDsKK0QxNDc7RDE0NzsxMTEwIDExNjUgMTFCRTtEMTQ3OzExMTAgMTE2NSAxMUJFOworRDE0ODtEMTQ4OzExMTAgMTE2NSAxMUJGO0QxNDg7MTExMCAxMTY1IDExQkY7CitEMTQ5O0QxNDk7MTExMCAxMTY1IDExQzA7RDE0OTsxMTEwIDExNjUgMTFDMDsKK0QxNEE7RDE0QTsxMTEwIDExNjUgMTFDMTtEMTRBOzExMTAgMTE2NSAxMUMxOworRDE0QjtEMTRCOzExMTAgMTE2NSAxMUMyO0QxNEI7MTExMCAxMTY1IDExQzI7CitEMTRDO0QxNEM7MTExMCAxMTY2O0QxNEM7MTExMCAxMTY2OworRDE0RDtEMTREOzExMTAgMTE2NiAxMUE4O0QxNEQ7MTExMCAxMTY2IDExQTg7CitEMTRFO0QxNEU7MTExMCAxMTY2IDExQTk7RDE0RTsxMTEwIDExNjYgMTFBOTsKK0QxNEY7RDE0RjsxMTEwIDExNjYgMTFBQTtEMTRGOzExMTAgMTE2NiAxMUFBOworRDE1MDtEMTUwOzExMTAgMTE2NiAxMUFCO0QxNTA7MTExMCAxMTY2IDExQUI7CitEMTUxO0QxNTE7MTExMCAxMTY2IDExQUM7RDE1MTsxMTEwIDExNjYgMTFBQzsKK0QxNTI7RDE1MjsxMTEwIDExNjYgMTFBRDtEMTUyOzExMTAgMTE2NiAxMUFEOworRDE1MztEMTUzOzExMTAgMTE2NiAxMUFFO0QxNTM7MTExMCAxMTY2IDExQUU7CitEMTU0O0QxNTQ7MTExMCAxMTY2IDExQUY7RDE1NDsxMTEwIDExNjYgMTFBRjsKK0QxNTU7RDE1NTsxMTEwIDExNjYgMTFCMDtEMTU1OzExMTAgMTE2NiAxMUIwOworRDE1NjtEMTU2OzExMTAgMTE2NiAxMUIxO0QxNTY7MTExMCAxMTY2IDExQjE7CitEMTU3O0QxNTc7MTExMCAxMTY2IDExQjI7RDE1NzsxMTEwIDExNjYgMTFCMjsKK0QxNTg7RDE1ODsxMTEwIDExNjYgMTFCMztEMTU4OzExMTAgMTE2NiAxMUIzOworRDE1OTtEMTU5OzExMTAgMTE2NiAxMUI0O0QxNTk7MTExMCAxMTY2IDExQjQ7CitEMTVBO0QxNUE7MTExMCAxMTY2IDExQjU7RDE1QTsxMTEwIDExNjYgMTFCNTsKK0QxNUI7RDE1QjsxMTEwIDExNjYgMTFCNjtEMTVCOzExMTAgMTE2NiAxMUI2OworRDE1QztEMTVDOzExMTAgMTE2NiAxMUI3O0QxNUM7MTExMCAxMTY2IDExQjc7CitEMTVEO0QxNUQ7MTExMCAxMTY2IDExQjg7RDE1RDsxMTEwIDExNjYgMTFCODsKK0QxNUU7RDE1RTsxMTEwIDExNjYgMTFCOTtEMTVFOzExMTAgMTE2NiAxMUI5OworRDE1RjtEMTVGOzExMTAgMTE2NiAxMUJBO0QxNUY7MTExMCAxMTY2IDExQkE7CitEMTYwO0QxNjA7MTExMCAxMTY2IDExQkI7RDE2MDsxMTEwIDExNjYgMTFCQjsKK0QxNjE7RDE2MTsxMTEwIDExNjYgMTFCQztEMTYxOzExMTAgMTE2NiAxMUJDOworRDE2MjtEMTYyOzExMTAgMTE2NiAxMUJEO0QxNjI7MTExMCAxMTY2IDExQkQ7CitEMTYzO0QxNjM7MTExMCAxMTY2IDExQkU7RDE2MzsxMTEwIDExNjYgMTFCRTsKK0QxNjQ7RDE2NDsxMTEwIDExNjYgMTFCRjtEMTY0OzExMTAgMTE2NiAxMUJGOworRDE2NTtEMTY1OzExMTAgMTE2NiAxMUMwO0QxNjU7MTExMCAxMTY2IDExQzA7CitEMTY2O0QxNjY7MTExMCAxMTY2IDExQzE7RDE2NjsxMTEwIDExNjYgMTFDMTsKK0QxNjc7RDE2NzsxMTEwIDExNjYgMTFDMjtEMTY3OzExMTAgMTE2NiAxMUMyOworRDE2ODtEMTY4OzExMTAgMTE2NztEMTY4OzExMTAgMTE2NzsKK0QxNjk7RDE2OTsxMTEwIDExNjcgMTFBODtEMTY5OzExMTAgMTE2NyAxMUE4OworRDE2QTtEMTZBOzExMTAgMTE2NyAxMUE5O0QxNkE7MTExMCAxMTY3IDExQTk7CitEMTZCO0QxNkI7MTExMCAxMTY3IDExQUE7RDE2QjsxMTEwIDExNjcgMTFBQTsKK0QxNkM7RDE2QzsxMTEwIDExNjcgMTFBQjtEMTZDOzExMTAgMTE2NyAxMUFCOworRDE2RDtEMTZEOzExMTAgMTE2NyAxMUFDO0QxNkQ7MTExMCAxMTY3IDExQUM7CitEMTZFO0QxNkU7MTExMCAxMTY3IDExQUQ7RDE2RTsxMTEwIDExNjcgMTFBRDsKK0QxNkY7RDE2RjsxMTEwIDExNjcgMTFBRTtEMTZGOzExMTAgMTE2NyAxMUFFOworRDE3MDtEMTcwOzExMTAgMTE2NyAxMUFGO0QxNzA7MTExMCAxMTY3IDExQUY7CitEMTcxO0QxNzE7MTExMCAxMTY3IDExQjA7RDE3MTsxMTEwIDExNjcgMTFCMDsKK0QxNzI7RDE3MjsxMTEwIDExNjcgMTFCMTtEMTcyOzExMTAgMTE2NyAxMUIxOworRDE3MztEMTczOzExMTAgMTE2NyAxMUIyO0QxNzM7MTExMCAxMTY3IDExQjI7CitEMTc0O0QxNzQ7MTExMCAxMTY3IDExQjM7RDE3NDsxMTEwIDExNjcgMTFCMzsKK0QxNzU7RDE3NTsxMTEwIDExNjcgMTFCNDtEMTc1OzExMTAgMTE2NyAxMUI0OworRDE3NjtEMTc2OzExMTAgMTE2NyAxMUI1O0QxNzY7MTExMCAxMTY3IDExQjU7CitEMTc3O0QxNzc7MTExMCAxMTY3IDExQjY7RDE3NzsxMTEwIDExNjcgMTFCNjsKK0QxNzg7RDE3ODsxMTEwIDExNjcgMTFCNztEMTc4OzExMTAgMTE2NyAxMUI3OworRDE3OTtEMTc5OzExMTAgMTE2NyAxMUI4O0QxNzk7MTExMCAxMTY3IDExQjg7CitEMTdBO0QxN0E7MTExMCAxMTY3IDExQjk7RDE3QTsxMTEwIDExNjcgMTFCOTsKK0QxN0I7RDE3QjsxMTEwIDExNjcgMTFCQTtEMTdCOzExMTAgMTE2NyAxMUJBOworRDE3QztEMTdDOzExMTAgMTE2NyAxMUJCO0QxN0M7MTExMCAxMTY3IDExQkI7CitEMTdEO0QxN0Q7MTExMCAxMTY3IDExQkM7RDE3RDsxMTEwIDExNjcgMTFCQzsKK0QxN0U7RDE3RTsxMTEwIDExNjcgMTFCRDtEMTdFOzExMTAgMTE2NyAxMUJEOworRDE3RjtEMTdGOzExMTAgMTE2NyAxMUJFO0QxN0Y7MTExMCAxMTY3IDExQkU7CitEMTgwO0QxODA7MTExMCAxMTY3IDExQkY7RDE4MDsxMTEwIDExNjcgMTFCRjsKK0QxODE7RDE4MTsxMTEwIDExNjcgMTFDMDtEMTgxOzExMTAgMTE2NyAxMUMwOworRDE4MjtEMTgyOzExMTAgMTE2NyAxMUMxO0QxODI7MTExMCAxMTY3IDExQzE7CitEMTgzO0QxODM7MTExMCAxMTY3IDExQzI7RDE4MzsxMTEwIDExNjcgMTFDMjsKK0QxODQ7RDE4NDsxMTEwIDExNjg7RDE4NDsxMTEwIDExNjg7CitEMTg1O0QxODU7MTExMCAxMTY4IDExQTg7RDE4NTsxMTEwIDExNjggMTFBODsKK0QxODY7RDE4NjsxMTEwIDExNjggMTFBOTtEMTg2OzExMTAgMTE2OCAxMUE5OworRDE4NztEMTg3OzExMTAgMTE2OCAxMUFBO0QxODc7MTExMCAxMTY4IDExQUE7CitEMTg4O0QxODg7MTExMCAxMTY4IDExQUI7RDE4ODsxMTEwIDExNjggMTFBQjsKK0QxODk7RDE4OTsxMTEwIDExNjggMTFBQztEMTg5OzExMTAgMTE2OCAxMUFDOworRDE4QTtEMThBOzExMTAgMTE2OCAxMUFEO0QxOEE7MTExMCAxMTY4IDExQUQ7CitEMThCO0QxOEI7MTExMCAxMTY4IDExQUU7RDE4QjsxMTEwIDExNjggMTFBRTsKK0QxOEM7RDE4QzsxMTEwIDExNjggMTFBRjtEMThDOzExMTAgMTE2OCAxMUFGOworRDE4RDtEMThEOzExMTAgMTE2OCAxMUIwO0QxOEQ7MTExMCAxMTY4IDExQjA7CitEMThFO0QxOEU7MTExMCAxMTY4IDExQjE7RDE4RTsxMTEwIDExNjggMTFCMTsKK0QxOEY7RDE4RjsxMTEwIDExNjggMTFCMjtEMThGOzExMTAgMTE2OCAxMUIyOworRDE5MDtEMTkwOzExMTAgMTE2OCAxMUIzO0QxOTA7MTExMCAxMTY4IDExQjM7CitEMTkxO0QxOTE7MTExMCAxMTY4IDExQjQ7RDE5MTsxMTEwIDExNjggMTFCNDsKK0QxOTI7RDE5MjsxMTEwIDExNjggMTFCNTtEMTkyOzExMTAgMTE2OCAxMUI1OworRDE5MztEMTkzOzExMTAgMTE2OCAxMUI2O0QxOTM7MTExMCAxMTY4IDExQjY7CitEMTk0O0QxOTQ7MTExMCAxMTY4IDExQjc7RDE5NDsxMTEwIDExNjggMTFCNzsKK0QxOTU7RDE5NTsxMTEwIDExNjggMTFCODtEMTk1OzExMTAgMTE2OCAxMUI4OworRDE5NjtEMTk2OzExMTAgMTE2OCAxMUI5O0QxOTY7MTExMCAxMTY4IDExQjk7CitEMTk3O0QxOTc7MTExMCAxMTY4IDExQkE7RDE5NzsxMTEwIDExNjggMTFCQTsKK0QxOTg7RDE5ODsxMTEwIDExNjggMTFCQjtEMTk4OzExMTAgMTE2OCAxMUJCOworRDE5OTtEMTk5OzExMTAgMTE2OCAxMUJDO0QxOTk7MTExMCAxMTY4IDExQkM7CitEMTlBO0QxOUE7MTExMCAxMTY4IDExQkQ7RDE5QTsxMTEwIDExNjggMTFCRDsKK0QxOUI7RDE5QjsxMTEwIDExNjggMTFCRTtEMTlCOzExMTAgMTE2OCAxMUJFOworRDE5QztEMTlDOzExMTAgMTE2OCAxMUJGO0QxOUM7MTExMCAxMTY4IDExQkY7CitEMTlEO0QxOUQ7MTExMCAxMTY4IDExQzA7RDE5RDsxMTEwIDExNjggMTFDMDsKK0QxOUU7RDE5RTsxMTEwIDExNjggMTFDMTtEMTlFOzExMTAgMTE2OCAxMUMxOworRDE5RjtEMTlGOzExMTAgMTE2OCAxMUMyO0QxOUY7MTExMCAxMTY4IDExQzI7CitEMUEwO0QxQTA7MTExMCAxMTY5O0QxQTA7MTExMCAxMTY5OworRDFBMTtEMUExOzExMTAgMTE2OSAxMUE4O0QxQTE7MTExMCAxMTY5IDExQTg7CitEMUEyO0QxQTI7MTExMCAxMTY5IDExQTk7RDFBMjsxMTEwIDExNjkgMTFBOTsKK0QxQTM7RDFBMzsxMTEwIDExNjkgMTFBQTtEMUEzOzExMTAgMTE2OSAxMUFBOworRDFBNDtEMUE0OzExMTAgMTE2OSAxMUFCO0QxQTQ7MTExMCAxMTY5IDExQUI7CitEMUE1O0QxQTU7MTExMCAxMTY5IDExQUM7RDFBNTsxMTEwIDExNjkgMTFBQzsKK0QxQTY7RDFBNjsxMTEwIDExNjkgMTFBRDtEMUE2OzExMTAgMTE2OSAxMUFEOworRDFBNztEMUE3OzExMTAgMTE2OSAxMUFFO0QxQTc7MTExMCAxMTY5IDExQUU7CitEMUE4O0QxQTg7MTExMCAxMTY5IDExQUY7RDFBODsxMTEwIDExNjkgMTFBRjsKK0QxQTk7RDFBOTsxMTEwIDExNjkgMTFCMDtEMUE5OzExMTAgMTE2OSAxMUIwOworRDFBQTtEMUFBOzExMTAgMTE2OSAxMUIxO0QxQUE7MTExMCAxMTY5IDExQjE7CitEMUFCO0QxQUI7MTExMCAxMTY5IDExQjI7RDFBQjsxMTEwIDExNjkgMTFCMjsKK0QxQUM7RDFBQzsxMTEwIDExNjkgMTFCMztEMUFDOzExMTAgMTE2OSAxMUIzOworRDFBRDtEMUFEOzExMTAgMTE2OSAxMUI0O0QxQUQ7MTExMCAxMTY5IDExQjQ7CitEMUFFO0QxQUU7MTExMCAxMTY5IDExQjU7RDFBRTsxMTEwIDExNjkgMTFCNTsKK0QxQUY7RDFBRjsxMTEwIDExNjkgMTFCNjtEMUFGOzExMTAgMTE2OSAxMUI2OworRDFCMDtEMUIwOzExMTAgMTE2OSAxMUI3O0QxQjA7MTExMCAxMTY5IDExQjc7CitEMUIxO0QxQjE7MTExMCAxMTY5IDExQjg7RDFCMTsxMTEwIDExNjkgMTFCODsKK0QxQjI7RDFCMjsxMTEwIDExNjkgMTFCOTtEMUIyOzExMTAgMTE2OSAxMUI5OworRDFCMztEMUIzOzExMTAgMTE2OSAxMUJBO0QxQjM7MTExMCAxMTY5IDExQkE7CitEMUI0O0QxQjQ7MTExMCAxMTY5IDExQkI7RDFCNDsxMTEwIDExNjkgMTFCQjsKK0QxQjU7RDFCNTsxMTEwIDExNjkgMTFCQztEMUI1OzExMTAgMTE2OSAxMUJDOworRDFCNjtEMUI2OzExMTAgMTE2OSAxMUJEO0QxQjY7MTExMCAxMTY5IDExQkQ7CitEMUI3O0QxQjc7MTExMCAxMTY5IDExQkU7RDFCNzsxMTEwIDExNjkgMTFCRTsKK0QxQjg7RDFCODsxMTEwIDExNjkgMTFCRjtEMUI4OzExMTAgMTE2OSAxMUJGOworRDFCOTtEMUI5OzExMTAgMTE2OSAxMUMwO0QxQjk7MTExMCAxMTY5IDExQzA7CitEMUJBO0QxQkE7MTExMCAxMTY5IDExQzE7RDFCQTsxMTEwIDExNjkgMTFDMTsKK0QxQkI7RDFCQjsxMTEwIDExNjkgMTFDMjtEMUJCOzExMTAgMTE2OSAxMUMyOworRDFCQztEMUJDOzExMTAgMTE2QTtEMUJDOzExMTAgMTE2QTsKK0QxQkQ7RDFCRDsxMTEwIDExNkEgMTFBODtEMUJEOzExMTAgMTE2QSAxMUE4OworRDFCRTtEMUJFOzExMTAgMTE2QSAxMUE5O0QxQkU7MTExMCAxMTZBIDExQTk7CitEMUJGO0QxQkY7MTExMCAxMTZBIDExQUE7RDFCRjsxMTEwIDExNkEgMTFBQTsKK0QxQzA7RDFDMDsxMTEwIDExNkEgMTFBQjtEMUMwOzExMTAgMTE2QSAxMUFCOworRDFDMTtEMUMxOzExMTAgMTE2QSAxMUFDO0QxQzE7MTExMCAxMTZBIDExQUM7CitEMUMyO0QxQzI7MTExMCAxMTZBIDExQUQ7RDFDMjsxMTEwIDExNkEgMTFBRDsKK0QxQzM7RDFDMzsxMTEwIDExNkEgMTFBRTtEMUMzOzExMTAgMTE2QSAxMUFFOworRDFDNDtEMUM0OzExMTAgMTE2QSAxMUFGO0QxQzQ7MTExMCAxMTZBIDExQUY7CitEMUM1O0QxQzU7MTExMCAxMTZBIDExQjA7RDFDNTsxMTEwIDExNkEgMTFCMDsKK0QxQzY7RDFDNjsxMTEwIDExNkEgMTFCMTtEMUM2OzExMTAgMTE2QSAxMUIxOworRDFDNztEMUM3OzExMTAgMTE2QSAxMUIyO0QxQzc7MTExMCAxMTZBIDExQjI7CitEMUM4O0QxQzg7MTExMCAxMTZBIDExQjM7RDFDODsxMTEwIDExNkEgMTFCMzsKK0QxQzk7RDFDOTsxMTEwIDExNkEgMTFCNDtEMUM5OzExMTAgMTE2QSAxMUI0OworRDFDQTtEMUNBOzExMTAgMTE2QSAxMUI1O0QxQ0E7MTExMCAxMTZBIDExQjU7CitEMUNCO0QxQ0I7MTExMCAxMTZBIDExQjY7RDFDQjsxMTEwIDExNkEgMTFCNjsKK0QxQ0M7RDFDQzsxMTEwIDExNkEgMTFCNztEMUNDOzExMTAgMTE2QSAxMUI3OworRDFDRDtEMUNEOzExMTAgMTE2QSAxMUI4O0QxQ0Q7MTExMCAxMTZBIDExQjg7CitEMUNFO0QxQ0U7MTExMCAxMTZBIDExQjk7RDFDRTsxMTEwIDExNkEgMTFCOTsKK0QxQ0Y7RDFDRjsxMTEwIDExNkEgMTFCQTtEMUNGOzExMTAgMTE2QSAxMUJBOworRDFEMDtEMUQwOzExMTAgMTE2QSAxMUJCO0QxRDA7MTExMCAxMTZBIDExQkI7CitEMUQxO0QxRDE7MTExMCAxMTZBIDExQkM7RDFEMTsxMTEwIDExNkEgMTFCQzsKK0QxRDI7RDFEMjsxMTEwIDExNkEgMTFCRDtEMUQyOzExMTAgMTE2QSAxMUJEOworRDFEMztEMUQzOzExMTAgMTE2QSAxMUJFO0QxRDM7MTExMCAxMTZBIDExQkU7CitEMUQ0O0QxRDQ7MTExMCAxMTZBIDExQkY7RDFENDsxMTEwIDExNkEgMTFCRjsKK0QxRDU7RDFENTsxMTEwIDExNkEgMTFDMDtEMUQ1OzExMTAgMTE2QSAxMUMwOworRDFENjtEMUQ2OzExMTAgMTE2QSAxMUMxO0QxRDY7MTExMCAxMTZBIDExQzE7CitEMUQ3O0QxRDc7MTExMCAxMTZBIDExQzI7RDFENzsxMTEwIDExNkEgMTFDMjsKK0QxRDg7RDFEODsxMTEwIDExNkI7RDFEODsxMTEwIDExNkI7CitEMUQ5O0QxRDk7MTExMCAxMTZCIDExQTg7RDFEOTsxMTEwIDExNkIgMTFBODsKK0QxREE7RDFEQTsxMTEwIDExNkIgMTFBOTtEMURBOzExMTAgMTE2QiAxMUE5OworRDFEQjtEMURCOzExMTAgMTE2QiAxMUFBO0QxREI7MTExMCAxMTZCIDExQUE7CitEMURDO0QxREM7MTExMCAxMTZCIDExQUI7RDFEQzsxMTEwIDExNkIgMTFBQjsKK0QxREQ7RDFERDsxMTEwIDExNkIgMTFBQztEMUREOzExMTAgMTE2QiAxMUFDOworRDFERTtEMURFOzExMTAgMTE2QiAxMUFEO0QxREU7MTExMCAxMTZCIDExQUQ7CitEMURGO0QxREY7MTExMCAxMTZCIDExQUU7RDFERjsxMTEwIDExNkIgMTFBRTsKK0QxRTA7RDFFMDsxMTEwIDExNkIgMTFBRjtEMUUwOzExMTAgMTE2QiAxMUFGOworRDFFMTtEMUUxOzExMTAgMTE2QiAxMUIwO0QxRTE7MTExMCAxMTZCIDExQjA7CitEMUUyO0QxRTI7MTExMCAxMTZCIDExQjE7RDFFMjsxMTEwIDExNkIgMTFCMTsKK0QxRTM7RDFFMzsxMTEwIDExNkIgMTFCMjtEMUUzOzExMTAgMTE2QiAxMUIyOworRDFFNDtEMUU0OzExMTAgMTE2QiAxMUIzO0QxRTQ7MTExMCAxMTZCIDExQjM7CitEMUU1O0QxRTU7MTExMCAxMTZCIDExQjQ7RDFFNTsxMTEwIDExNkIgMTFCNDsKK0QxRTY7RDFFNjsxMTEwIDExNkIgMTFCNTtEMUU2OzExMTAgMTE2QiAxMUI1OworRDFFNztEMUU3OzExMTAgMTE2QiAxMUI2O0QxRTc7MTExMCAxMTZCIDExQjY7CitEMUU4O0QxRTg7MTExMCAxMTZCIDExQjc7RDFFODsxMTEwIDExNkIgMTFCNzsKK0QxRTk7RDFFOTsxMTEwIDExNkIgMTFCODtEMUU5OzExMTAgMTE2QiAxMUI4OworRDFFQTtEMUVBOzExMTAgMTE2QiAxMUI5O0QxRUE7MTExMCAxMTZCIDExQjk7CitEMUVCO0QxRUI7MTExMCAxMTZCIDExQkE7RDFFQjsxMTEwIDExNkIgMTFCQTsKK0QxRUM7RDFFQzsxMTEwIDExNkIgMTFCQjtEMUVDOzExMTAgMTE2QiAxMUJCOworRDFFRDtEMUVEOzExMTAgMTE2QiAxMUJDO0QxRUQ7MTExMCAxMTZCIDExQkM7CitEMUVFO0QxRUU7MTExMCAxMTZCIDExQkQ7RDFFRTsxMTEwIDExNkIgMTFCRDsKK0QxRUY7RDFFRjsxMTEwIDExNkIgMTFCRTtEMUVGOzExMTAgMTE2QiAxMUJFOworRDFGMDtEMUYwOzExMTAgMTE2QiAxMUJGO0QxRjA7MTExMCAxMTZCIDExQkY7CitEMUYxO0QxRjE7MTExMCAxMTZCIDExQzA7RDFGMTsxMTEwIDExNkIgMTFDMDsKK0QxRjI7RDFGMjsxMTEwIDExNkIgMTFDMTtEMUYyOzExMTAgMTE2QiAxMUMxOworRDFGMztEMUYzOzExMTAgMTE2QiAxMUMyO0QxRjM7MTExMCAxMTZCIDExQzI7CitEMUY0O0QxRjQ7MTExMCAxMTZDO0QxRjQ7MTExMCAxMTZDOworRDFGNTtEMUY1OzExMTAgMTE2QyAxMUE4O0QxRjU7MTExMCAxMTZDIDExQTg7CitEMUY2O0QxRjY7MTExMCAxMTZDIDExQTk7RDFGNjsxMTEwIDExNkMgMTFBOTsKK0QxRjc7RDFGNzsxMTEwIDExNkMgMTFBQTtEMUY3OzExMTAgMTE2QyAxMUFBOworRDFGODtEMUY4OzExMTAgMTE2QyAxMUFCO0QxRjg7MTExMCAxMTZDIDExQUI7CitEMUY5O0QxRjk7MTExMCAxMTZDIDExQUM7RDFGOTsxMTEwIDExNkMgMTFBQzsKK0QxRkE7RDFGQTsxMTEwIDExNkMgMTFBRDtEMUZBOzExMTAgMTE2QyAxMUFEOworRDFGQjtEMUZCOzExMTAgMTE2QyAxMUFFO0QxRkI7MTExMCAxMTZDIDExQUU7CitEMUZDO0QxRkM7MTExMCAxMTZDIDExQUY7RDFGQzsxMTEwIDExNkMgMTFBRjsKK0QxRkQ7RDFGRDsxMTEwIDExNkMgMTFCMDtEMUZEOzExMTAgMTE2QyAxMUIwOworRDFGRTtEMUZFOzExMTAgMTE2QyAxMUIxO0QxRkU7MTExMCAxMTZDIDExQjE7CitEMUZGO0QxRkY7MTExMCAxMTZDIDExQjI7RDFGRjsxMTEwIDExNkMgMTFCMjsKK0QyMDA7RDIwMDsxMTEwIDExNkMgMTFCMztEMjAwOzExMTAgMTE2QyAxMUIzOworRDIwMTtEMjAxOzExMTAgMTE2QyAxMUI0O0QyMDE7MTExMCAxMTZDIDExQjQ7CitEMjAyO0QyMDI7MTExMCAxMTZDIDExQjU7RDIwMjsxMTEwIDExNkMgMTFCNTsKK0QyMDM7RDIwMzsxMTEwIDExNkMgMTFCNjtEMjAzOzExMTAgMTE2QyAxMUI2OworRDIwNDtEMjA0OzExMTAgMTE2QyAxMUI3O0QyMDQ7MTExMCAxMTZDIDExQjc7CitEMjA1O0QyMDU7MTExMCAxMTZDIDExQjg7RDIwNTsxMTEwIDExNkMgMTFCODsKK0QyMDY7RDIwNjsxMTEwIDExNkMgMTFCOTtEMjA2OzExMTAgMTE2QyAxMUI5OworRDIwNztEMjA3OzExMTAgMTE2QyAxMUJBO0QyMDc7MTExMCAxMTZDIDExQkE7CitEMjA4O0QyMDg7MTExMCAxMTZDIDExQkI7RDIwODsxMTEwIDExNkMgMTFCQjsKK0QyMDk7RDIwOTsxMTEwIDExNkMgMTFCQztEMjA5OzExMTAgMTE2QyAxMUJDOworRDIwQTtEMjBBOzExMTAgMTE2QyAxMUJEO0QyMEE7MTExMCAxMTZDIDExQkQ7CitEMjBCO0QyMEI7MTExMCAxMTZDIDExQkU7RDIwQjsxMTEwIDExNkMgMTFCRTsKK0QyMEM7RDIwQzsxMTEwIDExNkMgMTFCRjtEMjBDOzExMTAgMTE2QyAxMUJGOworRDIwRDtEMjBEOzExMTAgMTE2QyAxMUMwO0QyMEQ7MTExMCAxMTZDIDExQzA7CitEMjBFO0QyMEU7MTExMCAxMTZDIDExQzE7RDIwRTsxMTEwIDExNkMgMTFDMTsKK0QyMEY7RDIwRjsxMTEwIDExNkMgMTFDMjtEMjBGOzExMTAgMTE2QyAxMUMyOworRDIxMDtEMjEwOzExMTAgMTE2RDtEMjEwOzExMTAgMTE2RDsKK0QyMTE7RDIxMTsxMTEwIDExNkQgMTFBODtEMjExOzExMTAgMTE2RCAxMUE4OworRDIxMjtEMjEyOzExMTAgMTE2RCAxMUE5O0QyMTI7MTExMCAxMTZEIDExQTk7CitEMjEzO0QyMTM7MTExMCAxMTZEIDExQUE7RDIxMzsxMTEwIDExNkQgMTFBQTsKK0QyMTQ7RDIxNDsxMTEwIDExNkQgMTFBQjtEMjE0OzExMTAgMTE2RCAxMUFCOworRDIxNTtEMjE1OzExMTAgMTE2RCAxMUFDO0QyMTU7MTExMCAxMTZEIDExQUM7CitEMjE2O0QyMTY7MTExMCAxMTZEIDExQUQ7RDIxNjsxMTEwIDExNkQgMTFBRDsKK0QyMTc7RDIxNzsxMTEwIDExNkQgMTFBRTtEMjE3OzExMTAgMTE2RCAxMUFFOworRDIxODtEMjE4OzExMTAgMTE2RCAxMUFGO0QyMTg7MTExMCAxMTZEIDExQUY7CitEMjE5O0QyMTk7MTExMCAxMTZEIDExQjA7RDIxOTsxMTEwIDExNkQgMTFCMDsKK0QyMUE7RDIxQTsxMTEwIDExNkQgMTFCMTtEMjFBOzExMTAgMTE2RCAxMUIxOworRDIxQjtEMjFCOzExMTAgMTE2RCAxMUIyO0QyMUI7MTExMCAxMTZEIDExQjI7CitEMjFDO0QyMUM7MTExMCAxMTZEIDExQjM7RDIxQzsxMTEwIDExNkQgMTFCMzsKK0QyMUQ7RDIxRDsxMTEwIDExNkQgMTFCNDtEMjFEOzExMTAgMTE2RCAxMUI0OworRDIxRTtEMjFFOzExMTAgMTE2RCAxMUI1O0QyMUU7MTExMCAxMTZEIDExQjU7CitEMjFGO0QyMUY7MTExMCAxMTZEIDExQjY7RDIxRjsxMTEwIDExNkQgMTFCNjsKK0QyMjA7RDIyMDsxMTEwIDExNkQgMTFCNztEMjIwOzExMTAgMTE2RCAxMUI3OworRDIyMTtEMjIxOzExMTAgMTE2RCAxMUI4O0QyMjE7MTExMCAxMTZEIDExQjg7CitEMjIyO0QyMjI7MTExMCAxMTZEIDExQjk7RDIyMjsxMTEwIDExNkQgMTFCOTsKK0QyMjM7RDIyMzsxMTEwIDExNkQgMTFCQTtEMjIzOzExMTAgMTE2RCAxMUJBOworRDIyNDtEMjI0OzExMTAgMTE2RCAxMUJCO0QyMjQ7MTExMCAxMTZEIDExQkI7CitEMjI1O0QyMjU7MTExMCAxMTZEIDExQkM7RDIyNTsxMTEwIDExNkQgMTFCQzsKK0QyMjY7RDIyNjsxMTEwIDExNkQgMTFCRDtEMjI2OzExMTAgMTE2RCAxMUJEOworRDIyNztEMjI3OzExMTAgMTE2RCAxMUJFO0QyMjc7MTExMCAxMTZEIDExQkU7CitEMjI4O0QyMjg7MTExMCAxMTZEIDExQkY7RDIyODsxMTEwIDExNkQgMTFCRjsKK0QyMjk7RDIyOTsxMTEwIDExNkQgMTFDMDtEMjI5OzExMTAgMTE2RCAxMUMwOworRDIyQTtEMjJBOzExMTAgMTE2RCAxMUMxO0QyMkE7MTExMCAxMTZEIDExQzE7CitEMjJCO0QyMkI7MTExMCAxMTZEIDExQzI7RDIyQjsxMTEwIDExNkQgMTFDMjsKK0QyMkM7RDIyQzsxMTEwIDExNkU7RDIyQzsxMTEwIDExNkU7CitEMjJEO0QyMkQ7MTExMCAxMTZFIDExQTg7RDIyRDsxMTEwIDExNkUgMTFBODsKK0QyMkU7RDIyRTsxMTEwIDExNkUgMTFBOTtEMjJFOzExMTAgMTE2RSAxMUE5OworRDIyRjtEMjJGOzExMTAgMTE2RSAxMUFBO0QyMkY7MTExMCAxMTZFIDExQUE7CitEMjMwO0QyMzA7MTExMCAxMTZFIDExQUI7RDIzMDsxMTEwIDExNkUgMTFBQjsKK0QyMzE7RDIzMTsxMTEwIDExNkUgMTFBQztEMjMxOzExMTAgMTE2RSAxMUFDOworRDIzMjtEMjMyOzExMTAgMTE2RSAxMUFEO0QyMzI7MTExMCAxMTZFIDExQUQ7CitEMjMzO0QyMzM7MTExMCAxMTZFIDExQUU7RDIzMzsxMTEwIDExNkUgMTFBRTsKK0QyMzQ7RDIzNDsxMTEwIDExNkUgMTFBRjtEMjM0OzExMTAgMTE2RSAxMUFGOworRDIzNTtEMjM1OzExMTAgMTE2RSAxMUIwO0QyMzU7MTExMCAxMTZFIDExQjA7CitEMjM2O0QyMzY7MTExMCAxMTZFIDExQjE7RDIzNjsxMTEwIDExNkUgMTFCMTsKK0QyMzc7RDIzNzsxMTEwIDExNkUgMTFCMjtEMjM3OzExMTAgMTE2RSAxMUIyOworRDIzODtEMjM4OzExMTAgMTE2RSAxMUIzO0QyMzg7MTExMCAxMTZFIDExQjM7CitEMjM5O0QyMzk7MTExMCAxMTZFIDExQjQ7RDIzOTsxMTEwIDExNkUgMTFCNDsKK0QyM0E7RDIzQTsxMTEwIDExNkUgMTFCNTtEMjNBOzExMTAgMTE2RSAxMUI1OworRDIzQjtEMjNCOzExMTAgMTE2RSAxMUI2O0QyM0I7MTExMCAxMTZFIDExQjY7CitEMjNDO0QyM0M7MTExMCAxMTZFIDExQjc7RDIzQzsxMTEwIDExNkUgMTFCNzsKK0QyM0Q7RDIzRDsxMTEwIDExNkUgMTFCODtEMjNEOzExMTAgMTE2RSAxMUI4OworRDIzRTtEMjNFOzExMTAgMTE2RSAxMUI5O0QyM0U7MTExMCAxMTZFIDExQjk7CitEMjNGO0QyM0Y7MTExMCAxMTZFIDExQkE7RDIzRjsxMTEwIDExNkUgMTFCQTsKK0QyNDA7RDI0MDsxMTEwIDExNkUgMTFCQjtEMjQwOzExMTAgMTE2RSAxMUJCOworRDI0MTtEMjQxOzExMTAgMTE2RSAxMUJDO0QyNDE7MTExMCAxMTZFIDExQkM7CitEMjQyO0QyNDI7MTExMCAxMTZFIDExQkQ7RDI0MjsxMTEwIDExNkUgMTFCRDsKK0QyNDM7RDI0MzsxMTEwIDExNkUgMTFCRTtEMjQzOzExMTAgMTE2RSAxMUJFOworRDI0NDtEMjQ0OzExMTAgMTE2RSAxMUJGO0QyNDQ7MTExMCAxMTZFIDExQkY7CitEMjQ1O0QyNDU7MTExMCAxMTZFIDExQzA7RDI0NTsxMTEwIDExNkUgMTFDMDsKK0QyNDY7RDI0NjsxMTEwIDExNkUgMTFDMTtEMjQ2OzExMTAgMTE2RSAxMUMxOworRDI0NztEMjQ3OzExMTAgMTE2RSAxMUMyO0QyNDc7MTExMCAxMTZFIDExQzI7CitEMjQ4O0QyNDg7MTExMCAxMTZGO0QyNDg7MTExMCAxMTZGOworRDI0OTtEMjQ5OzExMTAgMTE2RiAxMUE4O0QyNDk7MTExMCAxMTZGIDExQTg7CitEMjRBO0QyNEE7MTExMCAxMTZGIDExQTk7RDI0QTsxMTEwIDExNkYgMTFBOTsKK0QyNEI7RDI0QjsxMTEwIDExNkYgMTFBQTtEMjRCOzExMTAgMTE2RiAxMUFBOworRDI0QztEMjRDOzExMTAgMTE2RiAxMUFCO0QyNEM7MTExMCAxMTZGIDExQUI7CitEMjREO0QyNEQ7MTExMCAxMTZGIDExQUM7RDI0RDsxMTEwIDExNkYgMTFBQzsKK0QyNEU7RDI0RTsxMTEwIDExNkYgMTFBRDtEMjRFOzExMTAgMTE2RiAxMUFEOworRDI0RjtEMjRGOzExMTAgMTE2RiAxMUFFO0QyNEY7MTExMCAxMTZGIDExQUU7CitEMjUwO0QyNTA7MTExMCAxMTZGIDExQUY7RDI1MDsxMTEwIDExNkYgMTFBRjsKK0QyNTE7RDI1MTsxMTEwIDExNkYgMTFCMDtEMjUxOzExMTAgMTE2RiAxMUIwOworRDI1MjtEMjUyOzExMTAgMTE2RiAxMUIxO0QyNTI7MTExMCAxMTZGIDExQjE7CitEMjUzO0QyNTM7MTExMCAxMTZGIDExQjI7RDI1MzsxMTEwIDExNkYgMTFCMjsKK0QyNTQ7RDI1NDsxMTEwIDExNkYgMTFCMztEMjU0OzExMTAgMTE2RiAxMUIzOworRDI1NTtEMjU1OzExMTAgMTE2RiAxMUI0O0QyNTU7MTExMCAxMTZGIDExQjQ7CitEMjU2O0QyNTY7MTExMCAxMTZGIDExQjU7RDI1NjsxMTEwIDExNkYgMTFCNTsKK0QyNTc7RDI1NzsxMTEwIDExNkYgMTFCNjtEMjU3OzExMTAgMTE2RiAxMUI2OworRDI1ODtEMjU4OzExMTAgMTE2RiAxMUI3O0QyNTg7MTExMCAxMTZGIDExQjc7CitEMjU5O0QyNTk7MTExMCAxMTZGIDExQjg7RDI1OTsxMTEwIDExNkYgMTFCODsKK0QyNUE7RDI1QTsxMTEwIDExNkYgMTFCOTtEMjVBOzExMTAgMTE2RiAxMUI5OworRDI1QjtEMjVCOzExMTAgMTE2RiAxMUJBO0QyNUI7MTExMCAxMTZGIDExQkE7CitEMjVDO0QyNUM7MTExMCAxMTZGIDExQkI7RDI1QzsxMTEwIDExNkYgMTFCQjsKK0QyNUQ7RDI1RDsxMTEwIDExNkYgMTFCQztEMjVEOzExMTAgMTE2RiAxMUJDOworRDI1RTtEMjVFOzExMTAgMTE2RiAxMUJEO0QyNUU7MTExMCAxMTZGIDExQkQ7CitEMjVGO0QyNUY7MTExMCAxMTZGIDExQkU7RDI1RjsxMTEwIDExNkYgMTFCRTsKK0QyNjA7RDI2MDsxMTEwIDExNkYgMTFCRjtEMjYwOzExMTAgMTE2RiAxMUJGOworRDI2MTtEMjYxOzExMTAgMTE2RiAxMUMwO0QyNjE7MTExMCAxMTZGIDExQzA7CitEMjYyO0QyNjI7MTExMCAxMTZGIDExQzE7RDI2MjsxMTEwIDExNkYgMTFDMTsKK0QyNjM7RDI2MzsxMTEwIDExNkYgMTFDMjtEMjYzOzExMTAgMTE2RiAxMUMyOworRDI2NDtEMjY0OzExMTAgMTE3MDtEMjY0OzExMTAgMTE3MDsKK0QyNjU7RDI2NTsxMTEwIDExNzAgMTFBODtEMjY1OzExMTAgMTE3MCAxMUE4OworRDI2NjtEMjY2OzExMTAgMTE3MCAxMUE5O0QyNjY7MTExMCAxMTcwIDExQTk7CitEMjY3O0QyNjc7MTExMCAxMTcwIDExQUE7RDI2NzsxMTEwIDExNzAgMTFBQTsKK0QyNjg7RDI2ODsxMTEwIDExNzAgMTFBQjtEMjY4OzExMTAgMTE3MCAxMUFCOworRDI2OTtEMjY5OzExMTAgMTE3MCAxMUFDO0QyNjk7MTExMCAxMTcwIDExQUM7CitEMjZBO0QyNkE7MTExMCAxMTcwIDExQUQ7RDI2QTsxMTEwIDExNzAgMTFBRDsKK0QyNkI7RDI2QjsxMTEwIDExNzAgMTFBRTtEMjZCOzExMTAgMTE3MCAxMUFFOworRDI2QztEMjZDOzExMTAgMTE3MCAxMUFGO0QyNkM7MTExMCAxMTcwIDExQUY7CitEMjZEO0QyNkQ7MTExMCAxMTcwIDExQjA7RDI2RDsxMTEwIDExNzAgMTFCMDsKK0QyNkU7RDI2RTsxMTEwIDExNzAgMTFCMTtEMjZFOzExMTAgMTE3MCAxMUIxOworRDI2RjtEMjZGOzExMTAgMTE3MCAxMUIyO0QyNkY7MTExMCAxMTcwIDExQjI7CitEMjcwO0QyNzA7MTExMCAxMTcwIDExQjM7RDI3MDsxMTEwIDExNzAgMTFCMzsKK0QyNzE7RDI3MTsxMTEwIDExNzAgMTFCNDtEMjcxOzExMTAgMTE3MCAxMUI0OworRDI3MjtEMjcyOzExMTAgMTE3MCAxMUI1O0QyNzI7MTExMCAxMTcwIDExQjU7CitEMjczO0QyNzM7MTExMCAxMTcwIDExQjY7RDI3MzsxMTEwIDExNzAgMTFCNjsKK0QyNzQ7RDI3NDsxMTEwIDExNzAgMTFCNztEMjc0OzExMTAgMTE3MCAxMUI3OworRDI3NTtEMjc1OzExMTAgMTE3MCAxMUI4O0QyNzU7MTExMCAxMTcwIDExQjg7CitEMjc2O0QyNzY7MTExMCAxMTcwIDExQjk7RDI3NjsxMTEwIDExNzAgMTFCOTsKK0QyNzc7RDI3NzsxMTEwIDExNzAgMTFCQTtEMjc3OzExMTAgMTE3MCAxMUJBOworRDI3ODtEMjc4OzExMTAgMTE3MCAxMUJCO0QyNzg7MTExMCAxMTcwIDExQkI7CitEMjc5O0QyNzk7MTExMCAxMTcwIDExQkM7RDI3OTsxMTEwIDExNzAgMTFCQzsKK0QyN0E7RDI3QTsxMTEwIDExNzAgMTFCRDtEMjdBOzExMTAgMTE3MCAxMUJEOworRDI3QjtEMjdCOzExMTAgMTE3MCAxMUJFO0QyN0I7MTExMCAxMTcwIDExQkU7CitEMjdDO0QyN0M7MTExMCAxMTcwIDExQkY7RDI3QzsxMTEwIDExNzAgMTFCRjsKK0QyN0Q7RDI3RDsxMTEwIDExNzAgMTFDMDtEMjdEOzExMTAgMTE3MCAxMUMwOworRDI3RTtEMjdFOzExMTAgMTE3MCAxMUMxO0QyN0U7MTExMCAxMTcwIDExQzE7CitEMjdGO0QyN0Y7MTExMCAxMTcwIDExQzI7RDI3RjsxMTEwIDExNzAgMTFDMjsKK0QyODA7RDI4MDsxMTEwIDExNzE7RDI4MDsxMTEwIDExNzE7CitEMjgxO0QyODE7MTExMCAxMTcxIDExQTg7RDI4MTsxMTEwIDExNzEgMTFBODsKK0QyODI7RDI4MjsxMTEwIDExNzEgMTFBOTtEMjgyOzExMTAgMTE3MSAxMUE5OworRDI4MztEMjgzOzExMTAgMTE3MSAxMUFBO0QyODM7MTExMCAxMTcxIDExQUE7CitEMjg0O0QyODQ7MTExMCAxMTcxIDExQUI7RDI4NDsxMTEwIDExNzEgMTFBQjsKK0QyODU7RDI4NTsxMTEwIDExNzEgMTFBQztEMjg1OzExMTAgMTE3MSAxMUFDOworRDI4NjtEMjg2OzExMTAgMTE3MSAxMUFEO0QyODY7MTExMCAxMTcxIDExQUQ7CitEMjg3O0QyODc7MTExMCAxMTcxIDExQUU7RDI4NzsxMTEwIDExNzEgMTFBRTsKK0QyODg7RDI4ODsxMTEwIDExNzEgMTFBRjtEMjg4OzExMTAgMTE3MSAxMUFGOworRDI4OTtEMjg5OzExMTAgMTE3MSAxMUIwO0QyODk7MTExMCAxMTcxIDExQjA7CitEMjhBO0QyOEE7MTExMCAxMTcxIDExQjE7RDI4QTsxMTEwIDExNzEgMTFCMTsKK0QyOEI7RDI4QjsxMTEwIDExNzEgMTFCMjtEMjhCOzExMTAgMTE3MSAxMUIyOworRDI4QztEMjhDOzExMTAgMTE3MSAxMUIzO0QyOEM7MTExMCAxMTcxIDExQjM7CitEMjhEO0QyOEQ7MTExMCAxMTcxIDExQjQ7RDI4RDsxMTEwIDExNzEgMTFCNDsKK0QyOEU7RDI4RTsxMTEwIDExNzEgMTFCNTtEMjhFOzExMTAgMTE3MSAxMUI1OworRDI4RjtEMjhGOzExMTAgMTE3MSAxMUI2O0QyOEY7MTExMCAxMTcxIDExQjY7CitEMjkwO0QyOTA7MTExMCAxMTcxIDExQjc7RDI5MDsxMTEwIDExNzEgMTFCNzsKK0QyOTE7RDI5MTsxMTEwIDExNzEgMTFCODtEMjkxOzExMTAgMTE3MSAxMUI4OworRDI5MjtEMjkyOzExMTAgMTE3MSAxMUI5O0QyOTI7MTExMCAxMTcxIDExQjk7CitEMjkzO0QyOTM7MTExMCAxMTcxIDExQkE7RDI5MzsxMTEwIDExNzEgMTFCQTsKK0QyOTQ7RDI5NDsxMTEwIDExNzEgMTFCQjtEMjk0OzExMTAgMTE3MSAxMUJCOworRDI5NTtEMjk1OzExMTAgMTE3MSAxMUJDO0QyOTU7MTExMCAxMTcxIDExQkM7CitEMjk2O0QyOTY7MTExMCAxMTcxIDExQkQ7RDI5NjsxMTEwIDExNzEgMTFCRDsKK0QyOTc7RDI5NzsxMTEwIDExNzEgMTFCRTtEMjk3OzExMTAgMTE3MSAxMUJFOworRDI5ODtEMjk4OzExMTAgMTE3MSAxMUJGO0QyOTg7MTExMCAxMTcxIDExQkY7CitEMjk5O0QyOTk7MTExMCAxMTcxIDExQzA7RDI5OTsxMTEwIDExNzEgMTFDMDsKK0QyOUE7RDI5QTsxMTEwIDExNzEgMTFDMTtEMjlBOzExMTAgMTE3MSAxMUMxOworRDI5QjtEMjlCOzExMTAgMTE3MSAxMUMyO0QyOUI7MTExMCAxMTcxIDExQzI7CitEMjlDO0QyOUM7MTExMCAxMTcyO0QyOUM7MTExMCAxMTcyOworRDI5RDtEMjlEOzExMTAgMTE3MiAxMUE4O0QyOUQ7MTExMCAxMTcyIDExQTg7CitEMjlFO0QyOUU7MTExMCAxMTcyIDExQTk7RDI5RTsxMTEwIDExNzIgMTFBOTsKK0QyOUY7RDI5RjsxMTEwIDExNzIgMTFBQTtEMjlGOzExMTAgMTE3MiAxMUFBOworRDJBMDtEMkEwOzExMTAgMTE3MiAxMUFCO0QyQTA7MTExMCAxMTcyIDExQUI7CitEMkExO0QyQTE7MTExMCAxMTcyIDExQUM7RDJBMTsxMTEwIDExNzIgMTFBQzsKK0QyQTI7RDJBMjsxMTEwIDExNzIgMTFBRDtEMkEyOzExMTAgMTE3MiAxMUFEOworRDJBMztEMkEzOzExMTAgMTE3MiAxMUFFO0QyQTM7MTExMCAxMTcyIDExQUU7CitEMkE0O0QyQTQ7MTExMCAxMTcyIDExQUY7RDJBNDsxMTEwIDExNzIgMTFBRjsKK0QyQTU7RDJBNTsxMTEwIDExNzIgMTFCMDtEMkE1OzExMTAgMTE3MiAxMUIwOworRDJBNjtEMkE2OzExMTAgMTE3MiAxMUIxO0QyQTY7MTExMCAxMTcyIDExQjE7CitEMkE3O0QyQTc7MTExMCAxMTcyIDExQjI7RDJBNzsxMTEwIDExNzIgMTFCMjsKK0QyQTg7RDJBODsxMTEwIDExNzIgMTFCMztEMkE4OzExMTAgMTE3MiAxMUIzOworRDJBOTtEMkE5OzExMTAgMTE3MiAxMUI0O0QyQTk7MTExMCAxMTcyIDExQjQ7CitEMkFBO0QyQUE7MTExMCAxMTcyIDExQjU7RDJBQTsxMTEwIDExNzIgMTFCNTsKK0QyQUI7RDJBQjsxMTEwIDExNzIgMTFCNjtEMkFCOzExMTAgMTE3MiAxMUI2OworRDJBQztEMkFDOzExMTAgMTE3MiAxMUI3O0QyQUM7MTExMCAxMTcyIDExQjc7CitEMkFEO0QyQUQ7MTExMCAxMTcyIDExQjg7RDJBRDsxMTEwIDExNzIgMTFCODsKK0QyQUU7RDJBRTsxMTEwIDExNzIgMTFCOTtEMkFFOzExMTAgMTE3MiAxMUI5OworRDJBRjtEMkFGOzExMTAgMTE3MiAxMUJBO0QyQUY7MTExMCAxMTcyIDExQkE7CitEMkIwO0QyQjA7MTExMCAxMTcyIDExQkI7RDJCMDsxMTEwIDExNzIgMTFCQjsKK0QyQjE7RDJCMTsxMTEwIDExNzIgMTFCQztEMkIxOzExMTAgMTE3MiAxMUJDOworRDJCMjtEMkIyOzExMTAgMTE3MiAxMUJEO0QyQjI7MTExMCAxMTcyIDExQkQ7CitEMkIzO0QyQjM7MTExMCAxMTcyIDExQkU7RDJCMzsxMTEwIDExNzIgMTFCRTsKK0QyQjQ7RDJCNDsxMTEwIDExNzIgMTFCRjtEMkI0OzExMTAgMTE3MiAxMUJGOworRDJCNTtEMkI1OzExMTAgMTE3MiAxMUMwO0QyQjU7MTExMCAxMTcyIDExQzA7CitEMkI2O0QyQjY7MTExMCAxMTcyIDExQzE7RDJCNjsxMTEwIDExNzIgMTFDMTsKK0QyQjc7RDJCNzsxMTEwIDExNzIgMTFDMjtEMkI3OzExMTAgMTE3MiAxMUMyOworRDJCODtEMkI4OzExMTAgMTE3MztEMkI4OzExMTAgMTE3MzsKK0QyQjk7RDJCOTsxMTEwIDExNzMgMTFBODtEMkI5OzExMTAgMTE3MyAxMUE4OworRDJCQTtEMkJBOzExMTAgMTE3MyAxMUE5O0QyQkE7MTExMCAxMTczIDExQTk7CitEMkJCO0QyQkI7MTExMCAxMTczIDExQUE7RDJCQjsxMTEwIDExNzMgMTFBQTsKK0QyQkM7RDJCQzsxMTEwIDExNzMgMTFBQjtEMkJDOzExMTAgMTE3MyAxMUFCOworRDJCRDtEMkJEOzExMTAgMTE3MyAxMUFDO0QyQkQ7MTExMCAxMTczIDExQUM7CitEMkJFO0QyQkU7MTExMCAxMTczIDExQUQ7RDJCRTsxMTEwIDExNzMgMTFBRDsKK0QyQkY7RDJCRjsxMTEwIDExNzMgMTFBRTtEMkJGOzExMTAgMTE3MyAxMUFFOworRDJDMDtEMkMwOzExMTAgMTE3MyAxMUFGO0QyQzA7MTExMCAxMTczIDExQUY7CitEMkMxO0QyQzE7MTExMCAxMTczIDExQjA7RDJDMTsxMTEwIDExNzMgMTFCMDsKK0QyQzI7RDJDMjsxMTEwIDExNzMgMTFCMTtEMkMyOzExMTAgMTE3MyAxMUIxOworRDJDMztEMkMzOzExMTAgMTE3MyAxMUIyO0QyQzM7MTExMCAxMTczIDExQjI7CitEMkM0O0QyQzQ7MTExMCAxMTczIDExQjM7RDJDNDsxMTEwIDExNzMgMTFCMzsKK0QyQzU7RDJDNTsxMTEwIDExNzMgMTFCNDtEMkM1OzExMTAgMTE3MyAxMUI0OworRDJDNjtEMkM2OzExMTAgMTE3MyAxMUI1O0QyQzY7MTExMCAxMTczIDExQjU7CitEMkM3O0QyQzc7MTExMCAxMTczIDExQjY7RDJDNzsxMTEwIDExNzMgMTFCNjsKK0QyQzg7RDJDODsxMTEwIDExNzMgMTFCNztEMkM4OzExMTAgMTE3MyAxMUI3OworRDJDOTtEMkM5OzExMTAgMTE3MyAxMUI4O0QyQzk7MTExMCAxMTczIDExQjg7CitEMkNBO0QyQ0E7MTExMCAxMTczIDExQjk7RDJDQTsxMTEwIDExNzMgMTFCOTsKK0QyQ0I7RDJDQjsxMTEwIDExNzMgMTFCQTtEMkNCOzExMTAgMTE3MyAxMUJBOworRDJDQztEMkNDOzExMTAgMTE3MyAxMUJCO0QyQ0M7MTExMCAxMTczIDExQkI7CitEMkNEO0QyQ0Q7MTExMCAxMTczIDExQkM7RDJDRDsxMTEwIDExNzMgMTFCQzsKK0QyQ0U7RDJDRTsxMTEwIDExNzMgMTFCRDtEMkNFOzExMTAgMTE3MyAxMUJEOworRDJDRjtEMkNGOzExMTAgMTE3MyAxMUJFO0QyQ0Y7MTExMCAxMTczIDExQkU7CitEMkQwO0QyRDA7MTExMCAxMTczIDExQkY7RDJEMDsxMTEwIDExNzMgMTFCRjsKK0QyRDE7RDJEMTsxMTEwIDExNzMgMTFDMDtEMkQxOzExMTAgMTE3MyAxMUMwOworRDJEMjtEMkQyOzExMTAgMTE3MyAxMUMxO0QyRDI7MTExMCAxMTczIDExQzE7CitEMkQzO0QyRDM7MTExMCAxMTczIDExQzI7RDJEMzsxMTEwIDExNzMgMTFDMjsKK0QyRDQ7RDJENDsxMTEwIDExNzQ7RDJENDsxMTEwIDExNzQ7CitEMkQ1O0QyRDU7MTExMCAxMTc0IDExQTg7RDJENTsxMTEwIDExNzQgMTFBODsKK0QyRDY7RDJENjsxMTEwIDExNzQgMTFBOTtEMkQ2OzExMTAgMTE3NCAxMUE5OworRDJENztEMkQ3OzExMTAgMTE3NCAxMUFBO0QyRDc7MTExMCAxMTc0IDExQUE7CitEMkQ4O0QyRDg7MTExMCAxMTc0IDExQUI7RDJEODsxMTEwIDExNzQgMTFBQjsKK0QyRDk7RDJEOTsxMTEwIDExNzQgMTFBQztEMkQ5OzExMTAgMTE3NCAxMUFDOworRDJEQTtEMkRBOzExMTAgMTE3NCAxMUFEO0QyREE7MTExMCAxMTc0IDExQUQ7CitEMkRCO0QyREI7MTExMCAxMTc0IDExQUU7RDJEQjsxMTEwIDExNzQgMTFBRTsKK0QyREM7RDJEQzsxMTEwIDExNzQgMTFBRjtEMkRDOzExMTAgMTE3NCAxMUFGOworRDJERDtEMkREOzExMTAgMTE3NCAxMUIwO0QyREQ7MTExMCAxMTc0IDExQjA7CitEMkRFO0QyREU7MTExMCAxMTc0IDExQjE7RDJERTsxMTEwIDExNzQgMTFCMTsKK0QyREY7RDJERjsxMTEwIDExNzQgMTFCMjtEMkRGOzExMTAgMTE3NCAxMUIyOworRDJFMDtEMkUwOzExMTAgMTE3NCAxMUIzO0QyRTA7MTExMCAxMTc0IDExQjM7CitEMkUxO0QyRTE7MTExMCAxMTc0IDExQjQ7RDJFMTsxMTEwIDExNzQgMTFCNDsKK0QyRTI7RDJFMjsxMTEwIDExNzQgMTFCNTtEMkUyOzExMTAgMTE3NCAxMUI1OworRDJFMztEMkUzOzExMTAgMTE3NCAxMUI2O0QyRTM7MTExMCAxMTc0IDExQjY7CitEMkU0O0QyRTQ7MTExMCAxMTc0IDExQjc7RDJFNDsxMTEwIDExNzQgMTFCNzsKK0QyRTU7RDJFNTsxMTEwIDExNzQgMTFCODtEMkU1OzExMTAgMTE3NCAxMUI4OworRDJFNjtEMkU2OzExMTAgMTE3NCAxMUI5O0QyRTY7MTExMCAxMTc0IDExQjk7CitEMkU3O0QyRTc7MTExMCAxMTc0IDExQkE7RDJFNzsxMTEwIDExNzQgMTFCQTsKK0QyRTg7RDJFODsxMTEwIDExNzQgMTFCQjtEMkU4OzExMTAgMTE3NCAxMUJCOworRDJFOTtEMkU5OzExMTAgMTE3NCAxMUJDO0QyRTk7MTExMCAxMTc0IDExQkM7CitEMkVBO0QyRUE7MTExMCAxMTc0IDExQkQ7RDJFQTsxMTEwIDExNzQgMTFCRDsKK0QyRUI7RDJFQjsxMTEwIDExNzQgMTFCRTtEMkVCOzExMTAgMTE3NCAxMUJFOworRDJFQztEMkVDOzExMTAgMTE3NCAxMUJGO0QyRUM7MTExMCAxMTc0IDExQkY7CitEMkVEO0QyRUQ7MTExMCAxMTc0IDExQzA7RDJFRDsxMTEwIDExNzQgMTFDMDsKK0QyRUU7RDJFRTsxMTEwIDExNzQgMTFDMTtEMkVFOzExMTAgMTE3NCAxMUMxOworRDJFRjtEMkVGOzExMTAgMTE3NCAxMUMyO0QyRUY7MTExMCAxMTc0IDExQzI7CitEMkYwO0QyRjA7MTExMCAxMTc1O0QyRjA7MTExMCAxMTc1OworRDJGMTtEMkYxOzExMTAgMTE3NSAxMUE4O0QyRjE7MTExMCAxMTc1IDExQTg7CitEMkYyO0QyRjI7MTExMCAxMTc1IDExQTk7RDJGMjsxMTEwIDExNzUgMTFBOTsKK0QyRjM7RDJGMzsxMTEwIDExNzUgMTFBQTtEMkYzOzExMTAgMTE3NSAxMUFBOworRDJGNDtEMkY0OzExMTAgMTE3NSAxMUFCO0QyRjQ7MTExMCAxMTc1IDExQUI7CitEMkY1O0QyRjU7MTExMCAxMTc1IDExQUM7RDJGNTsxMTEwIDExNzUgMTFBQzsKK0QyRjY7RDJGNjsxMTEwIDExNzUgMTFBRDtEMkY2OzExMTAgMTE3NSAxMUFEOworRDJGNztEMkY3OzExMTAgMTE3NSAxMUFFO0QyRjc7MTExMCAxMTc1IDExQUU7CitEMkY4O0QyRjg7MTExMCAxMTc1IDExQUY7RDJGODsxMTEwIDExNzUgMTFBRjsKK0QyRjk7RDJGOTsxMTEwIDExNzUgMTFCMDtEMkY5OzExMTAgMTE3NSAxMUIwOworRDJGQTtEMkZBOzExMTAgMTE3NSAxMUIxO0QyRkE7MTExMCAxMTc1IDExQjE7CitEMkZCO0QyRkI7MTExMCAxMTc1IDExQjI7RDJGQjsxMTEwIDExNzUgMTFCMjsKK0QyRkM7RDJGQzsxMTEwIDExNzUgMTFCMztEMkZDOzExMTAgMTE3NSAxMUIzOworRDJGRDtEMkZEOzExMTAgMTE3NSAxMUI0O0QyRkQ7MTExMCAxMTc1IDExQjQ7CitEMkZFO0QyRkU7MTExMCAxMTc1IDExQjU7RDJGRTsxMTEwIDExNzUgMTFCNTsKK0QyRkY7RDJGRjsxMTEwIDExNzUgMTFCNjtEMkZGOzExMTAgMTE3NSAxMUI2OworRDMwMDtEMzAwOzExMTAgMTE3NSAxMUI3O0QzMDA7MTExMCAxMTc1IDExQjc7CitEMzAxO0QzMDE7MTExMCAxMTc1IDExQjg7RDMwMTsxMTEwIDExNzUgMTFCODsKK0QzMDI7RDMwMjsxMTEwIDExNzUgMTFCOTtEMzAyOzExMTAgMTE3NSAxMUI5OworRDMwMztEMzAzOzExMTAgMTE3NSAxMUJBO0QzMDM7MTExMCAxMTc1IDExQkE7CitEMzA0O0QzMDQ7MTExMCAxMTc1IDExQkI7RDMwNDsxMTEwIDExNzUgMTFCQjsKK0QzMDU7RDMwNTsxMTEwIDExNzUgMTFCQztEMzA1OzExMTAgMTE3NSAxMUJDOworRDMwNjtEMzA2OzExMTAgMTE3NSAxMUJEO0QzMDY7MTExMCAxMTc1IDExQkQ7CitEMzA3O0QzMDc7MTExMCAxMTc1IDExQkU7RDMwNzsxMTEwIDExNzUgMTFCRTsKK0QzMDg7RDMwODsxMTEwIDExNzUgMTFCRjtEMzA4OzExMTAgMTE3NSAxMUJGOworRDMwOTtEMzA5OzExMTAgMTE3NSAxMUMwO0QzMDk7MTExMCAxMTc1IDExQzA7CitEMzBBO0QzMEE7MTExMCAxMTc1IDExQzE7RDMwQTsxMTEwIDExNzUgMTFDMTsKK0QzMEI7RDMwQjsxMTEwIDExNzUgMTFDMjtEMzBCOzExMTAgMTE3NSAxMUMyOworRDMwQztEMzBDOzExMTEgMTE2MTtEMzBDOzExMTEgMTE2MTsKK0QzMEQ7RDMwRDsxMTExIDExNjEgMTFBODtEMzBEOzExMTEgMTE2MSAxMUE4OworRDMwRTtEMzBFOzExMTEgMTE2MSAxMUE5O0QzMEU7MTExMSAxMTYxIDExQTk7CitEMzBGO0QzMEY7MTExMSAxMTYxIDExQUE7RDMwRjsxMTExIDExNjEgMTFBQTsKK0QzMTA7RDMxMDsxMTExIDExNjEgMTFBQjtEMzEwOzExMTEgMTE2MSAxMUFCOworRDMxMTtEMzExOzExMTEgMTE2MSAxMUFDO0QzMTE7MTExMSAxMTYxIDExQUM7CitEMzEyO0QzMTI7MTExMSAxMTYxIDExQUQ7RDMxMjsxMTExIDExNjEgMTFBRDsKK0QzMTM7RDMxMzsxMTExIDExNjEgMTFBRTtEMzEzOzExMTEgMTE2MSAxMUFFOworRDMxNDtEMzE0OzExMTEgMTE2MSAxMUFGO0QzMTQ7MTExMSAxMTYxIDExQUY7CitEMzE1O0QzMTU7MTExMSAxMTYxIDExQjA7RDMxNTsxMTExIDExNjEgMTFCMDsKK0QzMTY7RDMxNjsxMTExIDExNjEgMTFCMTtEMzE2OzExMTEgMTE2MSAxMUIxOworRDMxNztEMzE3OzExMTEgMTE2MSAxMUIyO0QzMTc7MTExMSAxMTYxIDExQjI7CitEMzE4O0QzMTg7MTExMSAxMTYxIDExQjM7RDMxODsxMTExIDExNjEgMTFCMzsKK0QzMTk7RDMxOTsxMTExIDExNjEgMTFCNDtEMzE5OzExMTEgMTE2MSAxMUI0OworRDMxQTtEMzFBOzExMTEgMTE2MSAxMUI1O0QzMUE7MTExMSAxMTYxIDExQjU7CitEMzFCO0QzMUI7MTExMSAxMTYxIDExQjY7RDMxQjsxMTExIDExNjEgMTFCNjsKK0QzMUM7RDMxQzsxMTExIDExNjEgMTFCNztEMzFDOzExMTEgMTE2MSAxMUI3OworRDMxRDtEMzFEOzExMTEgMTE2MSAxMUI4O0QzMUQ7MTExMSAxMTYxIDExQjg7CitEMzFFO0QzMUU7MTExMSAxMTYxIDExQjk7RDMxRTsxMTExIDExNjEgMTFCOTsKK0QzMUY7RDMxRjsxMTExIDExNjEgMTFCQTtEMzFGOzExMTEgMTE2MSAxMUJBOworRDMyMDtEMzIwOzExMTEgMTE2MSAxMUJCO0QzMjA7MTExMSAxMTYxIDExQkI7CitEMzIxO0QzMjE7MTExMSAxMTYxIDExQkM7RDMyMTsxMTExIDExNjEgMTFCQzsKK0QzMjI7RDMyMjsxMTExIDExNjEgMTFCRDtEMzIyOzExMTEgMTE2MSAxMUJEOworRDMyMztEMzIzOzExMTEgMTE2MSAxMUJFO0QzMjM7MTExMSAxMTYxIDExQkU7CitEMzI0O0QzMjQ7MTExMSAxMTYxIDExQkY7RDMyNDsxMTExIDExNjEgMTFCRjsKK0QzMjU7RDMyNTsxMTExIDExNjEgMTFDMDtEMzI1OzExMTEgMTE2MSAxMUMwOworRDMyNjtEMzI2OzExMTEgMTE2MSAxMUMxO0QzMjY7MTExMSAxMTYxIDExQzE7CitEMzI3O0QzMjc7MTExMSAxMTYxIDExQzI7RDMyNzsxMTExIDExNjEgMTFDMjsKK0QzMjg7RDMyODsxMTExIDExNjI7RDMyODsxMTExIDExNjI7CitEMzI5O0QzMjk7MTExMSAxMTYyIDExQTg7RDMyOTsxMTExIDExNjIgMTFBODsKK0QzMkE7RDMyQTsxMTExIDExNjIgMTFBOTtEMzJBOzExMTEgMTE2MiAxMUE5OworRDMyQjtEMzJCOzExMTEgMTE2MiAxMUFBO0QzMkI7MTExMSAxMTYyIDExQUE7CitEMzJDO0QzMkM7MTExMSAxMTYyIDExQUI7RDMyQzsxMTExIDExNjIgMTFBQjsKK0QzMkQ7RDMyRDsxMTExIDExNjIgMTFBQztEMzJEOzExMTEgMTE2MiAxMUFDOworRDMyRTtEMzJFOzExMTEgMTE2MiAxMUFEO0QzMkU7MTExMSAxMTYyIDExQUQ7CitEMzJGO0QzMkY7MTExMSAxMTYyIDExQUU7RDMyRjsxMTExIDExNjIgMTFBRTsKK0QzMzA7RDMzMDsxMTExIDExNjIgMTFBRjtEMzMwOzExMTEgMTE2MiAxMUFGOworRDMzMTtEMzMxOzExMTEgMTE2MiAxMUIwO0QzMzE7MTExMSAxMTYyIDExQjA7CitEMzMyO0QzMzI7MTExMSAxMTYyIDExQjE7RDMzMjsxMTExIDExNjIgMTFCMTsKK0QzMzM7RDMzMzsxMTExIDExNjIgMTFCMjtEMzMzOzExMTEgMTE2MiAxMUIyOworRDMzNDtEMzM0OzExMTEgMTE2MiAxMUIzO0QzMzQ7MTExMSAxMTYyIDExQjM7CitEMzM1O0QzMzU7MTExMSAxMTYyIDExQjQ7RDMzNTsxMTExIDExNjIgMTFCNDsKK0QzMzY7RDMzNjsxMTExIDExNjIgMTFCNTtEMzM2OzExMTEgMTE2MiAxMUI1OworRDMzNztEMzM3OzExMTEgMTE2MiAxMUI2O0QzMzc7MTExMSAxMTYyIDExQjY7CitEMzM4O0QzMzg7MTExMSAxMTYyIDExQjc7RDMzODsxMTExIDExNjIgMTFCNzsKK0QzMzk7RDMzOTsxMTExIDExNjIgMTFCODtEMzM5OzExMTEgMTE2MiAxMUI4OworRDMzQTtEMzNBOzExMTEgMTE2MiAxMUI5O0QzM0E7MTExMSAxMTYyIDExQjk7CitEMzNCO0QzM0I7MTExMSAxMTYyIDExQkE7RDMzQjsxMTExIDExNjIgMTFCQTsKK0QzM0M7RDMzQzsxMTExIDExNjIgMTFCQjtEMzNDOzExMTEgMTE2MiAxMUJCOworRDMzRDtEMzNEOzExMTEgMTE2MiAxMUJDO0QzM0Q7MTExMSAxMTYyIDExQkM7CitEMzNFO0QzM0U7MTExMSAxMTYyIDExQkQ7RDMzRTsxMTExIDExNjIgMTFCRDsKK0QzM0Y7RDMzRjsxMTExIDExNjIgMTFCRTtEMzNGOzExMTEgMTE2MiAxMUJFOworRDM0MDtEMzQwOzExMTEgMTE2MiAxMUJGO0QzNDA7MTExMSAxMTYyIDExQkY7CitEMzQxO0QzNDE7MTExMSAxMTYyIDExQzA7RDM0MTsxMTExIDExNjIgMTFDMDsKK0QzNDI7RDM0MjsxMTExIDExNjIgMTFDMTtEMzQyOzExMTEgMTE2MiAxMUMxOworRDM0MztEMzQzOzExMTEgMTE2MiAxMUMyO0QzNDM7MTExMSAxMTYyIDExQzI7CitEMzQ0O0QzNDQ7MTExMSAxMTYzO0QzNDQ7MTExMSAxMTYzOworRDM0NTtEMzQ1OzExMTEgMTE2MyAxMUE4O0QzNDU7MTExMSAxMTYzIDExQTg7CitEMzQ2O0QzNDY7MTExMSAxMTYzIDExQTk7RDM0NjsxMTExIDExNjMgMTFBOTsKK0QzNDc7RDM0NzsxMTExIDExNjMgMTFBQTtEMzQ3OzExMTEgMTE2MyAxMUFBOworRDM0ODtEMzQ4OzExMTEgMTE2MyAxMUFCO0QzNDg7MTExMSAxMTYzIDExQUI7CitEMzQ5O0QzNDk7MTExMSAxMTYzIDExQUM7RDM0OTsxMTExIDExNjMgMTFBQzsKK0QzNEE7RDM0QTsxMTExIDExNjMgMTFBRDtEMzRBOzExMTEgMTE2MyAxMUFEOworRDM0QjtEMzRCOzExMTEgMTE2MyAxMUFFO0QzNEI7MTExMSAxMTYzIDExQUU7CitEMzRDO0QzNEM7MTExMSAxMTYzIDExQUY7RDM0QzsxMTExIDExNjMgMTFBRjsKK0QzNEQ7RDM0RDsxMTExIDExNjMgMTFCMDtEMzREOzExMTEgMTE2MyAxMUIwOworRDM0RTtEMzRFOzExMTEgMTE2MyAxMUIxO0QzNEU7MTExMSAxMTYzIDExQjE7CitEMzRGO0QzNEY7MTExMSAxMTYzIDExQjI7RDM0RjsxMTExIDExNjMgMTFCMjsKK0QzNTA7RDM1MDsxMTExIDExNjMgMTFCMztEMzUwOzExMTEgMTE2MyAxMUIzOworRDM1MTtEMzUxOzExMTEgMTE2MyAxMUI0O0QzNTE7MTExMSAxMTYzIDExQjQ7CitEMzUyO0QzNTI7MTExMSAxMTYzIDExQjU7RDM1MjsxMTExIDExNjMgMTFCNTsKK0QzNTM7RDM1MzsxMTExIDExNjMgMTFCNjtEMzUzOzExMTEgMTE2MyAxMUI2OworRDM1NDtEMzU0OzExMTEgMTE2MyAxMUI3O0QzNTQ7MTExMSAxMTYzIDExQjc7CitEMzU1O0QzNTU7MTExMSAxMTYzIDExQjg7RDM1NTsxMTExIDExNjMgMTFCODsKK0QzNTY7RDM1NjsxMTExIDExNjMgMTFCOTtEMzU2OzExMTEgMTE2MyAxMUI5OworRDM1NztEMzU3OzExMTEgMTE2MyAxMUJBO0QzNTc7MTExMSAxMTYzIDExQkE7CitEMzU4O0QzNTg7MTExMSAxMTYzIDExQkI7RDM1ODsxMTExIDExNjMgMTFCQjsKK0QzNTk7RDM1OTsxMTExIDExNjMgMTFCQztEMzU5OzExMTEgMTE2MyAxMUJDOworRDM1QTtEMzVBOzExMTEgMTE2MyAxMUJEO0QzNUE7MTExMSAxMTYzIDExQkQ7CitEMzVCO0QzNUI7MTExMSAxMTYzIDExQkU7RDM1QjsxMTExIDExNjMgMTFCRTsKK0QzNUM7RDM1QzsxMTExIDExNjMgMTFCRjtEMzVDOzExMTEgMTE2MyAxMUJGOworRDM1RDtEMzVEOzExMTEgMTE2MyAxMUMwO0QzNUQ7MTExMSAxMTYzIDExQzA7CitEMzVFO0QzNUU7MTExMSAxMTYzIDExQzE7RDM1RTsxMTExIDExNjMgMTFDMTsKK0QzNUY7RDM1RjsxMTExIDExNjMgMTFDMjtEMzVGOzExMTEgMTE2MyAxMUMyOworRDM2MDtEMzYwOzExMTEgMTE2NDtEMzYwOzExMTEgMTE2NDsKK0QzNjE7RDM2MTsxMTExIDExNjQgMTFBODtEMzYxOzExMTEgMTE2NCAxMUE4OworRDM2MjtEMzYyOzExMTEgMTE2NCAxMUE5O0QzNjI7MTExMSAxMTY0IDExQTk7CitEMzYzO0QzNjM7MTExMSAxMTY0IDExQUE7RDM2MzsxMTExIDExNjQgMTFBQTsKK0QzNjQ7RDM2NDsxMTExIDExNjQgMTFBQjtEMzY0OzExMTEgMTE2NCAxMUFCOworRDM2NTtEMzY1OzExMTEgMTE2NCAxMUFDO0QzNjU7MTExMSAxMTY0IDExQUM7CitEMzY2O0QzNjY7MTExMSAxMTY0IDExQUQ7RDM2NjsxMTExIDExNjQgMTFBRDsKK0QzNjc7RDM2NzsxMTExIDExNjQgMTFBRTtEMzY3OzExMTEgMTE2NCAxMUFFOworRDM2ODtEMzY4OzExMTEgMTE2NCAxMUFGO0QzNjg7MTExMSAxMTY0IDExQUY7CitEMzY5O0QzNjk7MTExMSAxMTY0IDExQjA7RDM2OTsxMTExIDExNjQgMTFCMDsKK0QzNkE7RDM2QTsxMTExIDExNjQgMTFCMTtEMzZBOzExMTEgMTE2NCAxMUIxOworRDM2QjtEMzZCOzExMTEgMTE2NCAxMUIyO0QzNkI7MTExMSAxMTY0IDExQjI7CitEMzZDO0QzNkM7MTExMSAxMTY0IDExQjM7RDM2QzsxMTExIDExNjQgMTFCMzsKK0QzNkQ7RDM2RDsxMTExIDExNjQgMTFCNDtEMzZEOzExMTEgMTE2NCAxMUI0OworRDM2RTtEMzZFOzExMTEgMTE2NCAxMUI1O0QzNkU7MTExMSAxMTY0IDExQjU7CitEMzZGO0QzNkY7MTExMSAxMTY0IDExQjY7RDM2RjsxMTExIDExNjQgMTFCNjsKK0QzNzA7RDM3MDsxMTExIDExNjQgMTFCNztEMzcwOzExMTEgMTE2NCAxMUI3OworRDM3MTtEMzcxOzExMTEgMTE2NCAxMUI4O0QzNzE7MTExMSAxMTY0IDExQjg7CitEMzcyO0QzNzI7MTExMSAxMTY0IDExQjk7RDM3MjsxMTExIDExNjQgMTFCOTsKK0QzNzM7RDM3MzsxMTExIDExNjQgMTFCQTtEMzczOzExMTEgMTE2NCAxMUJBOworRDM3NDtEMzc0OzExMTEgMTE2NCAxMUJCO0QzNzQ7MTExMSAxMTY0IDExQkI7CitEMzc1O0QzNzU7MTExMSAxMTY0IDExQkM7RDM3NTsxMTExIDExNjQgMTFCQzsKK0QzNzY7RDM3NjsxMTExIDExNjQgMTFCRDtEMzc2OzExMTEgMTE2NCAxMUJEOworRDM3NztEMzc3OzExMTEgMTE2NCAxMUJFO0QzNzc7MTExMSAxMTY0IDExQkU7CitEMzc4O0QzNzg7MTExMSAxMTY0IDExQkY7RDM3ODsxMTExIDExNjQgMTFCRjsKK0QzNzk7RDM3OTsxMTExIDExNjQgMTFDMDtEMzc5OzExMTEgMTE2NCAxMUMwOworRDM3QTtEMzdBOzExMTEgMTE2NCAxMUMxO0QzN0E7MTExMSAxMTY0IDExQzE7CitEMzdCO0QzN0I7MTExMSAxMTY0IDExQzI7RDM3QjsxMTExIDExNjQgMTFDMjsKK0QzN0M7RDM3QzsxMTExIDExNjU7RDM3QzsxMTExIDExNjU7CitEMzdEO0QzN0Q7MTExMSAxMTY1IDExQTg7RDM3RDsxMTExIDExNjUgMTFBODsKK0QzN0U7RDM3RTsxMTExIDExNjUgMTFBOTtEMzdFOzExMTEgMTE2NSAxMUE5OworRDM3RjtEMzdGOzExMTEgMTE2NSAxMUFBO0QzN0Y7MTExMSAxMTY1IDExQUE7CitEMzgwO0QzODA7MTExMSAxMTY1IDExQUI7RDM4MDsxMTExIDExNjUgMTFBQjsKK0QzODE7RDM4MTsxMTExIDExNjUgMTFBQztEMzgxOzExMTEgMTE2NSAxMUFDOworRDM4MjtEMzgyOzExMTEgMTE2NSAxMUFEO0QzODI7MTExMSAxMTY1IDExQUQ7CitEMzgzO0QzODM7MTExMSAxMTY1IDExQUU7RDM4MzsxMTExIDExNjUgMTFBRTsKK0QzODQ7RDM4NDsxMTExIDExNjUgMTFBRjtEMzg0OzExMTEgMTE2NSAxMUFGOworRDM4NTtEMzg1OzExMTEgMTE2NSAxMUIwO0QzODU7MTExMSAxMTY1IDExQjA7CitEMzg2O0QzODY7MTExMSAxMTY1IDExQjE7RDM4NjsxMTExIDExNjUgMTFCMTsKK0QzODc7RDM4NzsxMTExIDExNjUgMTFCMjtEMzg3OzExMTEgMTE2NSAxMUIyOworRDM4ODtEMzg4OzExMTEgMTE2NSAxMUIzO0QzODg7MTExMSAxMTY1IDExQjM7CitEMzg5O0QzODk7MTExMSAxMTY1IDExQjQ7RDM4OTsxMTExIDExNjUgMTFCNDsKK0QzOEE7RDM4QTsxMTExIDExNjUgMTFCNTtEMzhBOzExMTEgMTE2NSAxMUI1OworRDM4QjtEMzhCOzExMTEgMTE2NSAxMUI2O0QzOEI7MTExMSAxMTY1IDExQjY7CitEMzhDO0QzOEM7MTExMSAxMTY1IDExQjc7RDM4QzsxMTExIDExNjUgMTFCNzsKK0QzOEQ7RDM4RDsxMTExIDExNjUgMTFCODtEMzhEOzExMTEgMTE2NSAxMUI4OworRDM4RTtEMzhFOzExMTEgMTE2NSAxMUI5O0QzOEU7MTExMSAxMTY1IDExQjk7CitEMzhGO0QzOEY7MTExMSAxMTY1IDExQkE7RDM4RjsxMTExIDExNjUgMTFCQTsKK0QzOTA7RDM5MDsxMTExIDExNjUgMTFCQjtEMzkwOzExMTEgMTE2NSAxMUJCOworRDM5MTtEMzkxOzExMTEgMTE2NSAxMUJDO0QzOTE7MTExMSAxMTY1IDExQkM7CitEMzkyO0QzOTI7MTExMSAxMTY1IDExQkQ7RDM5MjsxMTExIDExNjUgMTFCRDsKK0QzOTM7RDM5MzsxMTExIDExNjUgMTFCRTtEMzkzOzExMTEgMTE2NSAxMUJFOworRDM5NDtEMzk0OzExMTEgMTE2NSAxMUJGO0QzOTQ7MTExMSAxMTY1IDExQkY7CitEMzk1O0QzOTU7MTExMSAxMTY1IDExQzA7RDM5NTsxMTExIDExNjUgMTFDMDsKK0QzOTY7RDM5NjsxMTExIDExNjUgMTFDMTtEMzk2OzExMTEgMTE2NSAxMUMxOworRDM5NztEMzk3OzExMTEgMTE2NSAxMUMyO0QzOTc7MTExMSAxMTY1IDExQzI7CitEMzk4O0QzOTg7MTExMSAxMTY2O0QzOTg7MTExMSAxMTY2OworRDM5OTtEMzk5OzExMTEgMTE2NiAxMUE4O0QzOTk7MTExMSAxMTY2IDExQTg7CitEMzlBO0QzOUE7MTExMSAxMTY2IDExQTk7RDM5QTsxMTExIDExNjYgMTFBOTsKK0QzOUI7RDM5QjsxMTExIDExNjYgMTFBQTtEMzlCOzExMTEgMTE2NiAxMUFBOworRDM5QztEMzlDOzExMTEgMTE2NiAxMUFCO0QzOUM7MTExMSAxMTY2IDExQUI7CitEMzlEO0QzOUQ7MTExMSAxMTY2IDExQUM7RDM5RDsxMTExIDExNjYgMTFBQzsKK0QzOUU7RDM5RTsxMTExIDExNjYgMTFBRDtEMzlFOzExMTEgMTE2NiAxMUFEOworRDM5RjtEMzlGOzExMTEgMTE2NiAxMUFFO0QzOUY7MTExMSAxMTY2IDExQUU7CitEM0EwO0QzQTA7MTExMSAxMTY2IDExQUY7RDNBMDsxMTExIDExNjYgMTFBRjsKK0QzQTE7RDNBMTsxMTExIDExNjYgMTFCMDtEM0ExOzExMTEgMTE2NiAxMUIwOworRDNBMjtEM0EyOzExMTEgMTE2NiAxMUIxO0QzQTI7MTExMSAxMTY2IDExQjE7CitEM0EzO0QzQTM7MTExMSAxMTY2IDExQjI7RDNBMzsxMTExIDExNjYgMTFCMjsKK0QzQTQ7RDNBNDsxMTExIDExNjYgMTFCMztEM0E0OzExMTEgMTE2NiAxMUIzOworRDNBNTtEM0E1OzExMTEgMTE2NiAxMUI0O0QzQTU7MTExMSAxMTY2IDExQjQ7CitEM0E2O0QzQTY7MTExMSAxMTY2IDExQjU7RDNBNjsxMTExIDExNjYgMTFCNTsKK0QzQTc7RDNBNzsxMTExIDExNjYgMTFCNjtEM0E3OzExMTEgMTE2NiAxMUI2OworRDNBODtEM0E4OzExMTEgMTE2NiAxMUI3O0QzQTg7MTExMSAxMTY2IDExQjc7CitEM0E5O0QzQTk7MTExMSAxMTY2IDExQjg7RDNBOTsxMTExIDExNjYgMTFCODsKK0QzQUE7RDNBQTsxMTExIDExNjYgMTFCOTtEM0FBOzExMTEgMTE2NiAxMUI5OworRDNBQjtEM0FCOzExMTEgMTE2NiAxMUJBO0QzQUI7MTExMSAxMTY2IDExQkE7CitEM0FDO0QzQUM7MTExMSAxMTY2IDExQkI7RDNBQzsxMTExIDExNjYgMTFCQjsKK0QzQUQ7RDNBRDsxMTExIDExNjYgMTFCQztEM0FEOzExMTEgMTE2NiAxMUJDOworRDNBRTtEM0FFOzExMTEgMTE2NiAxMUJEO0QzQUU7MTExMSAxMTY2IDExQkQ7CitEM0FGO0QzQUY7MTExMSAxMTY2IDExQkU7RDNBRjsxMTExIDExNjYgMTFCRTsKK0QzQjA7RDNCMDsxMTExIDExNjYgMTFCRjtEM0IwOzExMTEgMTE2NiAxMUJGOworRDNCMTtEM0IxOzExMTEgMTE2NiAxMUMwO0QzQjE7MTExMSAxMTY2IDExQzA7CitEM0IyO0QzQjI7MTExMSAxMTY2IDExQzE7RDNCMjsxMTExIDExNjYgMTFDMTsKK0QzQjM7RDNCMzsxMTExIDExNjYgMTFDMjtEM0IzOzExMTEgMTE2NiAxMUMyOworRDNCNDtEM0I0OzExMTEgMTE2NztEM0I0OzExMTEgMTE2NzsKK0QzQjU7RDNCNTsxMTExIDExNjcgMTFBODtEM0I1OzExMTEgMTE2NyAxMUE4OworRDNCNjtEM0I2OzExMTEgMTE2NyAxMUE5O0QzQjY7MTExMSAxMTY3IDExQTk7CitEM0I3O0QzQjc7MTExMSAxMTY3IDExQUE7RDNCNzsxMTExIDExNjcgMTFBQTsKK0QzQjg7RDNCODsxMTExIDExNjcgMTFBQjtEM0I4OzExMTEgMTE2NyAxMUFCOworRDNCOTtEM0I5OzExMTEgMTE2NyAxMUFDO0QzQjk7MTExMSAxMTY3IDExQUM7CitEM0JBO0QzQkE7MTExMSAxMTY3IDExQUQ7RDNCQTsxMTExIDExNjcgMTFBRDsKK0QzQkI7RDNCQjsxMTExIDExNjcgMTFBRTtEM0JCOzExMTEgMTE2NyAxMUFFOworRDNCQztEM0JDOzExMTEgMTE2NyAxMUFGO0QzQkM7MTExMSAxMTY3IDExQUY7CitEM0JEO0QzQkQ7MTExMSAxMTY3IDExQjA7RDNCRDsxMTExIDExNjcgMTFCMDsKK0QzQkU7RDNCRTsxMTExIDExNjcgMTFCMTtEM0JFOzExMTEgMTE2NyAxMUIxOworRDNCRjtEM0JGOzExMTEgMTE2NyAxMUIyO0QzQkY7MTExMSAxMTY3IDExQjI7CitEM0MwO0QzQzA7MTExMSAxMTY3IDExQjM7RDNDMDsxMTExIDExNjcgMTFCMzsKK0QzQzE7RDNDMTsxMTExIDExNjcgMTFCNDtEM0MxOzExMTEgMTE2NyAxMUI0OworRDNDMjtEM0MyOzExMTEgMTE2NyAxMUI1O0QzQzI7MTExMSAxMTY3IDExQjU7CitEM0MzO0QzQzM7MTExMSAxMTY3IDExQjY7RDNDMzsxMTExIDExNjcgMTFCNjsKK0QzQzQ7RDNDNDsxMTExIDExNjcgMTFCNztEM0M0OzExMTEgMTE2NyAxMUI3OworRDNDNTtEM0M1OzExMTEgMTE2NyAxMUI4O0QzQzU7MTExMSAxMTY3IDExQjg7CitEM0M2O0QzQzY7MTExMSAxMTY3IDExQjk7RDNDNjsxMTExIDExNjcgMTFCOTsKK0QzQzc7RDNDNzsxMTExIDExNjcgMTFCQTtEM0M3OzExMTEgMTE2NyAxMUJBOworRDNDODtEM0M4OzExMTEgMTE2NyAxMUJCO0QzQzg7MTExMSAxMTY3IDExQkI7CitEM0M5O0QzQzk7MTExMSAxMTY3IDExQkM7RDNDOTsxMTExIDExNjcgMTFCQzsKK0QzQ0E7RDNDQTsxMTExIDExNjcgMTFCRDtEM0NBOzExMTEgMTE2NyAxMUJEOworRDNDQjtEM0NCOzExMTEgMTE2NyAxMUJFO0QzQ0I7MTExMSAxMTY3IDExQkU7CitEM0NDO0QzQ0M7MTExMSAxMTY3IDExQkY7RDNDQzsxMTExIDExNjcgMTFCRjsKK0QzQ0Q7RDNDRDsxMTExIDExNjcgMTFDMDtEM0NEOzExMTEgMTE2NyAxMUMwOworRDNDRTtEM0NFOzExMTEgMTE2NyAxMUMxO0QzQ0U7MTExMSAxMTY3IDExQzE7CitEM0NGO0QzQ0Y7MTExMSAxMTY3IDExQzI7RDNDRjsxMTExIDExNjcgMTFDMjsKK0QzRDA7RDNEMDsxMTExIDExNjg7RDNEMDsxMTExIDExNjg7CitEM0QxO0QzRDE7MTExMSAxMTY4IDExQTg7RDNEMTsxMTExIDExNjggMTFBODsKK0QzRDI7RDNEMjsxMTExIDExNjggMTFBOTtEM0QyOzExMTEgMTE2OCAxMUE5OworRDNEMztEM0QzOzExMTEgMTE2OCAxMUFBO0QzRDM7MTExMSAxMTY4IDExQUE7CitEM0Q0O0QzRDQ7MTExMSAxMTY4IDExQUI7RDNENDsxMTExIDExNjggMTFBQjsKK0QzRDU7RDNENTsxMTExIDExNjggMTFBQztEM0Q1OzExMTEgMTE2OCAxMUFDOworRDNENjtEM0Q2OzExMTEgMTE2OCAxMUFEO0QzRDY7MTExMSAxMTY4IDExQUQ7CitEM0Q3O0QzRDc7MTExMSAxMTY4IDExQUU7RDNENzsxMTExIDExNjggMTFBRTsKK0QzRDg7RDNEODsxMTExIDExNjggMTFBRjtEM0Q4OzExMTEgMTE2OCAxMUFGOworRDNEOTtEM0Q5OzExMTEgMTE2OCAxMUIwO0QzRDk7MTExMSAxMTY4IDExQjA7CitEM0RBO0QzREE7MTExMSAxMTY4IDExQjE7RDNEQTsxMTExIDExNjggMTFCMTsKK0QzREI7RDNEQjsxMTExIDExNjggMTFCMjtEM0RCOzExMTEgMTE2OCAxMUIyOworRDNEQztEM0RDOzExMTEgMTE2OCAxMUIzO0QzREM7MTExMSAxMTY4IDExQjM7CitEM0REO0QzREQ7MTExMSAxMTY4IDExQjQ7RDNERDsxMTExIDExNjggMTFCNDsKK0QzREU7RDNERTsxMTExIDExNjggMTFCNTtEM0RFOzExMTEgMTE2OCAxMUI1OworRDNERjtEM0RGOzExMTEgMTE2OCAxMUI2O0QzREY7MTExMSAxMTY4IDExQjY7CitEM0UwO0QzRTA7MTExMSAxMTY4IDExQjc7RDNFMDsxMTExIDExNjggMTFCNzsKK0QzRTE7RDNFMTsxMTExIDExNjggMTFCODtEM0UxOzExMTEgMTE2OCAxMUI4OworRDNFMjtEM0UyOzExMTEgMTE2OCAxMUI5O0QzRTI7MTExMSAxMTY4IDExQjk7CitEM0UzO0QzRTM7MTExMSAxMTY4IDExQkE7RDNFMzsxMTExIDExNjggMTFCQTsKK0QzRTQ7RDNFNDsxMTExIDExNjggMTFCQjtEM0U0OzExMTEgMTE2OCAxMUJCOworRDNFNTtEM0U1OzExMTEgMTE2OCAxMUJDO0QzRTU7MTExMSAxMTY4IDExQkM7CitEM0U2O0QzRTY7MTExMSAxMTY4IDExQkQ7RDNFNjsxMTExIDExNjggMTFCRDsKK0QzRTc7RDNFNzsxMTExIDExNjggMTFCRTtEM0U3OzExMTEgMTE2OCAxMUJFOworRDNFODtEM0U4OzExMTEgMTE2OCAxMUJGO0QzRTg7MTExMSAxMTY4IDExQkY7CitEM0U5O0QzRTk7MTExMSAxMTY4IDExQzA7RDNFOTsxMTExIDExNjggMTFDMDsKK0QzRUE7RDNFQTsxMTExIDExNjggMTFDMTtEM0VBOzExMTEgMTE2OCAxMUMxOworRDNFQjtEM0VCOzExMTEgMTE2OCAxMUMyO0QzRUI7MTExMSAxMTY4IDExQzI7CitEM0VDO0QzRUM7MTExMSAxMTY5O0QzRUM7MTExMSAxMTY5OworRDNFRDtEM0VEOzExMTEgMTE2OSAxMUE4O0QzRUQ7MTExMSAxMTY5IDExQTg7CitEM0VFO0QzRUU7MTExMSAxMTY5IDExQTk7RDNFRTsxMTExIDExNjkgMTFBOTsKK0QzRUY7RDNFRjsxMTExIDExNjkgMTFBQTtEM0VGOzExMTEgMTE2OSAxMUFBOworRDNGMDtEM0YwOzExMTEgMTE2OSAxMUFCO0QzRjA7MTExMSAxMTY5IDExQUI7CitEM0YxO0QzRjE7MTExMSAxMTY5IDExQUM7RDNGMTsxMTExIDExNjkgMTFBQzsKK0QzRjI7RDNGMjsxMTExIDExNjkgMTFBRDtEM0YyOzExMTEgMTE2OSAxMUFEOworRDNGMztEM0YzOzExMTEgMTE2OSAxMUFFO0QzRjM7MTExMSAxMTY5IDExQUU7CitEM0Y0O0QzRjQ7MTExMSAxMTY5IDExQUY7RDNGNDsxMTExIDExNjkgMTFBRjsKK0QzRjU7RDNGNTsxMTExIDExNjkgMTFCMDtEM0Y1OzExMTEgMTE2OSAxMUIwOworRDNGNjtEM0Y2OzExMTEgMTE2OSAxMUIxO0QzRjY7MTExMSAxMTY5IDExQjE7CitEM0Y3O0QzRjc7MTExMSAxMTY5IDExQjI7RDNGNzsxMTExIDExNjkgMTFCMjsKK0QzRjg7RDNGODsxMTExIDExNjkgMTFCMztEM0Y4OzExMTEgMTE2OSAxMUIzOworRDNGOTtEM0Y5OzExMTEgMTE2OSAxMUI0O0QzRjk7MTExMSAxMTY5IDExQjQ7CitEM0ZBO0QzRkE7MTExMSAxMTY5IDExQjU7RDNGQTsxMTExIDExNjkgMTFCNTsKK0QzRkI7RDNGQjsxMTExIDExNjkgMTFCNjtEM0ZCOzExMTEgMTE2OSAxMUI2OworRDNGQztEM0ZDOzExMTEgMTE2OSAxMUI3O0QzRkM7MTExMSAxMTY5IDExQjc7CitEM0ZEO0QzRkQ7MTExMSAxMTY5IDExQjg7RDNGRDsxMTExIDExNjkgMTFCODsKK0QzRkU7RDNGRTsxMTExIDExNjkgMTFCOTtEM0ZFOzExMTEgMTE2OSAxMUI5OworRDNGRjtEM0ZGOzExMTEgMTE2OSAxMUJBO0QzRkY7MTExMSAxMTY5IDExQkE7CitENDAwO0Q0MDA7MTExMSAxMTY5IDExQkI7RDQwMDsxMTExIDExNjkgMTFCQjsKK0Q0MDE7RDQwMTsxMTExIDExNjkgMTFCQztENDAxOzExMTEgMTE2OSAxMUJDOworRDQwMjtENDAyOzExMTEgMTE2OSAxMUJEO0Q0MDI7MTExMSAxMTY5IDExQkQ7CitENDAzO0Q0MDM7MTExMSAxMTY5IDExQkU7RDQwMzsxMTExIDExNjkgMTFCRTsKK0Q0MDQ7RDQwNDsxMTExIDExNjkgMTFCRjtENDA0OzExMTEgMTE2OSAxMUJGOworRDQwNTtENDA1OzExMTEgMTE2OSAxMUMwO0Q0MDU7MTExMSAxMTY5IDExQzA7CitENDA2O0Q0MDY7MTExMSAxMTY5IDExQzE7RDQwNjsxMTExIDExNjkgMTFDMTsKK0Q0MDc7RDQwNzsxMTExIDExNjkgMTFDMjtENDA3OzExMTEgMTE2OSAxMUMyOworRDQwODtENDA4OzExMTEgMTE2QTtENDA4OzExMTEgMTE2QTsKK0Q0MDk7RDQwOTsxMTExIDExNkEgMTFBODtENDA5OzExMTEgMTE2QSAxMUE4OworRDQwQTtENDBBOzExMTEgMTE2QSAxMUE5O0Q0MEE7MTExMSAxMTZBIDExQTk7CitENDBCO0Q0MEI7MTExMSAxMTZBIDExQUE7RDQwQjsxMTExIDExNkEgMTFBQTsKK0Q0MEM7RDQwQzsxMTExIDExNkEgMTFBQjtENDBDOzExMTEgMTE2QSAxMUFCOworRDQwRDtENDBEOzExMTEgMTE2QSAxMUFDO0Q0MEQ7MTExMSAxMTZBIDExQUM7CitENDBFO0Q0MEU7MTExMSAxMTZBIDExQUQ7RDQwRTsxMTExIDExNkEgMTFBRDsKK0Q0MEY7RDQwRjsxMTExIDExNkEgMTFBRTtENDBGOzExMTEgMTE2QSAxMUFFOworRDQxMDtENDEwOzExMTEgMTE2QSAxMUFGO0Q0MTA7MTExMSAxMTZBIDExQUY7CitENDExO0Q0MTE7MTExMSAxMTZBIDExQjA7RDQxMTsxMTExIDExNkEgMTFCMDsKK0Q0MTI7RDQxMjsxMTExIDExNkEgMTFCMTtENDEyOzExMTEgMTE2QSAxMUIxOworRDQxMztENDEzOzExMTEgMTE2QSAxMUIyO0Q0MTM7MTExMSAxMTZBIDExQjI7CitENDE0O0Q0MTQ7MTExMSAxMTZBIDExQjM7RDQxNDsxMTExIDExNkEgMTFCMzsKK0Q0MTU7RDQxNTsxMTExIDExNkEgMTFCNDtENDE1OzExMTEgMTE2QSAxMUI0OworRDQxNjtENDE2OzExMTEgMTE2QSAxMUI1O0Q0MTY7MTExMSAxMTZBIDExQjU7CitENDE3O0Q0MTc7MTExMSAxMTZBIDExQjY7RDQxNzsxMTExIDExNkEgMTFCNjsKK0Q0MTg7RDQxODsxMTExIDExNkEgMTFCNztENDE4OzExMTEgMTE2QSAxMUI3OworRDQxOTtENDE5OzExMTEgMTE2QSAxMUI4O0Q0MTk7MTExMSAxMTZBIDExQjg7CitENDFBO0Q0MUE7MTExMSAxMTZBIDExQjk7RDQxQTsxMTExIDExNkEgMTFCOTsKK0Q0MUI7RDQxQjsxMTExIDExNkEgMTFCQTtENDFCOzExMTEgMTE2QSAxMUJBOworRDQxQztENDFDOzExMTEgMTE2QSAxMUJCO0Q0MUM7MTExMSAxMTZBIDExQkI7CitENDFEO0Q0MUQ7MTExMSAxMTZBIDExQkM7RDQxRDsxMTExIDExNkEgMTFCQzsKK0Q0MUU7RDQxRTsxMTExIDExNkEgMTFCRDtENDFFOzExMTEgMTE2QSAxMUJEOworRDQxRjtENDFGOzExMTEgMTE2QSAxMUJFO0Q0MUY7MTExMSAxMTZBIDExQkU7CitENDIwO0Q0MjA7MTExMSAxMTZBIDExQkY7RDQyMDsxMTExIDExNkEgMTFCRjsKK0Q0MjE7RDQyMTsxMTExIDExNkEgMTFDMDtENDIxOzExMTEgMTE2QSAxMUMwOworRDQyMjtENDIyOzExMTEgMTE2QSAxMUMxO0Q0MjI7MTExMSAxMTZBIDExQzE7CitENDIzO0Q0MjM7MTExMSAxMTZBIDExQzI7RDQyMzsxMTExIDExNkEgMTFDMjsKK0Q0MjQ7RDQyNDsxMTExIDExNkI7RDQyNDsxMTExIDExNkI7CitENDI1O0Q0MjU7MTExMSAxMTZCIDExQTg7RDQyNTsxMTExIDExNkIgMTFBODsKK0Q0MjY7RDQyNjsxMTExIDExNkIgMTFBOTtENDI2OzExMTEgMTE2QiAxMUE5OworRDQyNztENDI3OzExMTEgMTE2QiAxMUFBO0Q0Mjc7MTExMSAxMTZCIDExQUE7CitENDI4O0Q0Mjg7MTExMSAxMTZCIDExQUI7RDQyODsxMTExIDExNkIgMTFBQjsKK0Q0Mjk7RDQyOTsxMTExIDExNkIgMTFBQztENDI5OzExMTEgMTE2QiAxMUFDOworRDQyQTtENDJBOzExMTEgMTE2QiAxMUFEO0Q0MkE7MTExMSAxMTZCIDExQUQ7CitENDJCO0Q0MkI7MTExMSAxMTZCIDExQUU7RDQyQjsxMTExIDExNkIgMTFBRTsKK0Q0MkM7RDQyQzsxMTExIDExNkIgMTFBRjtENDJDOzExMTEgMTE2QiAxMUFGOworRDQyRDtENDJEOzExMTEgMTE2QiAxMUIwO0Q0MkQ7MTExMSAxMTZCIDExQjA7CitENDJFO0Q0MkU7MTExMSAxMTZCIDExQjE7RDQyRTsxMTExIDExNkIgMTFCMTsKK0Q0MkY7RDQyRjsxMTExIDExNkIgMTFCMjtENDJGOzExMTEgMTE2QiAxMUIyOworRDQzMDtENDMwOzExMTEgMTE2QiAxMUIzO0Q0MzA7MTExMSAxMTZCIDExQjM7CitENDMxO0Q0MzE7MTExMSAxMTZCIDExQjQ7RDQzMTsxMTExIDExNkIgMTFCNDsKK0Q0MzI7RDQzMjsxMTExIDExNkIgMTFCNTtENDMyOzExMTEgMTE2QiAxMUI1OworRDQzMztENDMzOzExMTEgMTE2QiAxMUI2O0Q0MzM7MTExMSAxMTZCIDExQjY7CitENDM0O0Q0MzQ7MTExMSAxMTZCIDExQjc7RDQzNDsxMTExIDExNkIgMTFCNzsKK0Q0MzU7RDQzNTsxMTExIDExNkIgMTFCODtENDM1OzExMTEgMTE2QiAxMUI4OworRDQzNjtENDM2OzExMTEgMTE2QiAxMUI5O0Q0MzY7MTExMSAxMTZCIDExQjk7CitENDM3O0Q0Mzc7MTExMSAxMTZCIDExQkE7RDQzNzsxMTExIDExNkIgMTFCQTsKK0Q0Mzg7RDQzODsxMTExIDExNkIgMTFCQjtENDM4OzExMTEgMTE2QiAxMUJCOworRDQzOTtENDM5OzExMTEgMTE2QiAxMUJDO0Q0Mzk7MTExMSAxMTZCIDExQkM7CitENDNBO0Q0M0E7MTExMSAxMTZCIDExQkQ7RDQzQTsxMTExIDExNkIgMTFCRDsKK0Q0M0I7RDQzQjsxMTExIDExNkIgMTFCRTtENDNCOzExMTEgMTE2QiAxMUJFOworRDQzQztENDNDOzExMTEgMTE2QiAxMUJGO0Q0M0M7MTExMSAxMTZCIDExQkY7CitENDNEO0Q0M0Q7MTExMSAxMTZCIDExQzA7RDQzRDsxMTExIDExNkIgMTFDMDsKK0Q0M0U7RDQzRTsxMTExIDExNkIgMTFDMTtENDNFOzExMTEgMTE2QiAxMUMxOworRDQzRjtENDNGOzExMTEgMTE2QiAxMUMyO0Q0M0Y7MTExMSAxMTZCIDExQzI7CitENDQwO0Q0NDA7MTExMSAxMTZDO0Q0NDA7MTExMSAxMTZDOworRDQ0MTtENDQxOzExMTEgMTE2QyAxMUE4O0Q0NDE7MTExMSAxMTZDIDExQTg7CitENDQyO0Q0NDI7MTExMSAxMTZDIDExQTk7RDQ0MjsxMTExIDExNkMgMTFBOTsKK0Q0NDM7RDQ0MzsxMTExIDExNkMgMTFBQTtENDQzOzExMTEgMTE2QyAxMUFBOworRDQ0NDtENDQ0OzExMTEgMTE2QyAxMUFCO0Q0NDQ7MTExMSAxMTZDIDExQUI7CitENDQ1O0Q0NDU7MTExMSAxMTZDIDExQUM7RDQ0NTsxMTExIDExNkMgMTFBQzsKK0Q0NDY7RDQ0NjsxMTExIDExNkMgMTFBRDtENDQ2OzExMTEgMTE2QyAxMUFEOworRDQ0NztENDQ3OzExMTEgMTE2QyAxMUFFO0Q0NDc7MTExMSAxMTZDIDExQUU7CitENDQ4O0Q0NDg7MTExMSAxMTZDIDExQUY7RDQ0ODsxMTExIDExNkMgMTFBRjsKK0Q0NDk7RDQ0OTsxMTExIDExNkMgMTFCMDtENDQ5OzExMTEgMTE2QyAxMUIwOworRDQ0QTtENDRBOzExMTEgMTE2QyAxMUIxO0Q0NEE7MTExMSAxMTZDIDExQjE7CitENDRCO0Q0NEI7MTExMSAxMTZDIDExQjI7RDQ0QjsxMTExIDExNkMgMTFCMjsKK0Q0NEM7RDQ0QzsxMTExIDExNkMgMTFCMztENDRDOzExMTEgMTE2QyAxMUIzOworRDQ0RDtENDREOzExMTEgMTE2QyAxMUI0O0Q0NEQ7MTExMSAxMTZDIDExQjQ7CitENDRFO0Q0NEU7MTExMSAxMTZDIDExQjU7RDQ0RTsxMTExIDExNkMgMTFCNTsKK0Q0NEY7RDQ0RjsxMTExIDExNkMgMTFCNjtENDRGOzExMTEgMTE2QyAxMUI2OworRDQ1MDtENDUwOzExMTEgMTE2QyAxMUI3O0Q0NTA7MTExMSAxMTZDIDExQjc7CitENDUxO0Q0NTE7MTExMSAxMTZDIDExQjg7RDQ1MTsxMTExIDExNkMgMTFCODsKK0Q0NTI7RDQ1MjsxMTExIDExNkMgMTFCOTtENDUyOzExMTEgMTE2QyAxMUI5OworRDQ1MztENDUzOzExMTEgMTE2QyAxMUJBO0Q0NTM7MTExMSAxMTZDIDExQkE7CitENDU0O0Q0NTQ7MTExMSAxMTZDIDExQkI7RDQ1NDsxMTExIDExNkMgMTFCQjsKK0Q0NTU7RDQ1NTsxMTExIDExNkMgMTFCQztENDU1OzExMTEgMTE2QyAxMUJDOworRDQ1NjtENDU2OzExMTEgMTE2QyAxMUJEO0Q0NTY7MTExMSAxMTZDIDExQkQ7CitENDU3O0Q0NTc7MTExMSAxMTZDIDExQkU7RDQ1NzsxMTExIDExNkMgMTFCRTsKK0Q0NTg7RDQ1ODsxMTExIDExNkMgMTFCRjtENDU4OzExMTEgMTE2QyAxMUJGOworRDQ1OTtENDU5OzExMTEgMTE2QyAxMUMwO0Q0NTk7MTExMSAxMTZDIDExQzA7CitENDVBO0Q0NUE7MTExMSAxMTZDIDExQzE7RDQ1QTsxMTExIDExNkMgMTFDMTsKK0Q0NUI7RDQ1QjsxMTExIDExNkMgMTFDMjtENDVCOzExMTEgMTE2QyAxMUMyOworRDQ1QztENDVDOzExMTEgMTE2RDtENDVDOzExMTEgMTE2RDsKK0Q0NUQ7RDQ1RDsxMTExIDExNkQgMTFBODtENDVEOzExMTEgMTE2RCAxMUE4OworRDQ1RTtENDVFOzExMTEgMTE2RCAxMUE5O0Q0NUU7MTExMSAxMTZEIDExQTk7CitENDVGO0Q0NUY7MTExMSAxMTZEIDExQUE7RDQ1RjsxMTExIDExNkQgMTFBQTsKK0Q0NjA7RDQ2MDsxMTExIDExNkQgMTFBQjtENDYwOzExMTEgMTE2RCAxMUFCOworRDQ2MTtENDYxOzExMTEgMTE2RCAxMUFDO0Q0NjE7MTExMSAxMTZEIDExQUM7CitENDYyO0Q0NjI7MTExMSAxMTZEIDExQUQ7RDQ2MjsxMTExIDExNkQgMTFBRDsKK0Q0NjM7RDQ2MzsxMTExIDExNkQgMTFBRTtENDYzOzExMTEgMTE2RCAxMUFFOworRDQ2NDtENDY0OzExMTEgMTE2RCAxMUFGO0Q0NjQ7MTExMSAxMTZEIDExQUY7CitENDY1O0Q0NjU7MTExMSAxMTZEIDExQjA7RDQ2NTsxMTExIDExNkQgMTFCMDsKK0Q0NjY7RDQ2NjsxMTExIDExNkQgMTFCMTtENDY2OzExMTEgMTE2RCAxMUIxOworRDQ2NztENDY3OzExMTEgMTE2RCAxMUIyO0Q0Njc7MTExMSAxMTZEIDExQjI7CitENDY4O0Q0Njg7MTExMSAxMTZEIDExQjM7RDQ2ODsxMTExIDExNkQgMTFCMzsKK0Q0Njk7RDQ2OTsxMTExIDExNkQgMTFCNDtENDY5OzExMTEgMTE2RCAxMUI0OworRDQ2QTtENDZBOzExMTEgMTE2RCAxMUI1O0Q0NkE7MTExMSAxMTZEIDExQjU7CitENDZCO0Q0NkI7MTExMSAxMTZEIDExQjY7RDQ2QjsxMTExIDExNkQgMTFCNjsKK0Q0NkM7RDQ2QzsxMTExIDExNkQgMTFCNztENDZDOzExMTEgMTE2RCAxMUI3OworRDQ2RDtENDZEOzExMTEgMTE2RCAxMUI4O0Q0NkQ7MTExMSAxMTZEIDExQjg7CitENDZFO0Q0NkU7MTExMSAxMTZEIDExQjk7RDQ2RTsxMTExIDExNkQgMTFCOTsKK0Q0NkY7RDQ2RjsxMTExIDExNkQgMTFCQTtENDZGOzExMTEgMTE2RCAxMUJBOworRDQ3MDtENDcwOzExMTEgMTE2RCAxMUJCO0Q0NzA7MTExMSAxMTZEIDExQkI7CitENDcxO0Q0NzE7MTExMSAxMTZEIDExQkM7RDQ3MTsxMTExIDExNkQgMTFCQzsKK0Q0NzI7RDQ3MjsxMTExIDExNkQgMTFCRDtENDcyOzExMTEgMTE2RCAxMUJEOworRDQ3MztENDczOzExMTEgMTE2RCAxMUJFO0Q0NzM7MTExMSAxMTZEIDExQkU7CitENDc0O0Q0NzQ7MTExMSAxMTZEIDExQkY7RDQ3NDsxMTExIDExNkQgMTFCRjsKK0Q0NzU7RDQ3NTsxMTExIDExNkQgMTFDMDtENDc1OzExMTEgMTE2RCAxMUMwOworRDQ3NjtENDc2OzExMTEgMTE2RCAxMUMxO0Q0NzY7MTExMSAxMTZEIDExQzE7CitENDc3O0Q0Nzc7MTExMSAxMTZEIDExQzI7RDQ3NzsxMTExIDExNkQgMTFDMjsKK0Q0Nzg7RDQ3ODsxMTExIDExNkU7RDQ3ODsxMTExIDExNkU7CitENDc5O0Q0Nzk7MTExMSAxMTZFIDExQTg7RDQ3OTsxMTExIDExNkUgMTFBODsKK0Q0N0E7RDQ3QTsxMTExIDExNkUgMTFBOTtENDdBOzExMTEgMTE2RSAxMUE5OworRDQ3QjtENDdCOzExMTEgMTE2RSAxMUFBO0Q0N0I7MTExMSAxMTZFIDExQUE7CitENDdDO0Q0N0M7MTExMSAxMTZFIDExQUI7RDQ3QzsxMTExIDExNkUgMTFBQjsKK0Q0N0Q7RDQ3RDsxMTExIDExNkUgMTFBQztENDdEOzExMTEgMTE2RSAxMUFDOworRDQ3RTtENDdFOzExMTEgMTE2RSAxMUFEO0Q0N0U7MTExMSAxMTZFIDExQUQ7CitENDdGO0Q0N0Y7MTExMSAxMTZFIDExQUU7RDQ3RjsxMTExIDExNkUgMTFBRTsKK0Q0ODA7RDQ4MDsxMTExIDExNkUgMTFBRjtENDgwOzExMTEgMTE2RSAxMUFGOworRDQ4MTtENDgxOzExMTEgMTE2RSAxMUIwO0Q0ODE7MTExMSAxMTZFIDExQjA7CitENDgyO0Q0ODI7MTExMSAxMTZFIDExQjE7RDQ4MjsxMTExIDExNkUgMTFCMTsKK0Q0ODM7RDQ4MzsxMTExIDExNkUgMTFCMjtENDgzOzExMTEgMTE2RSAxMUIyOworRDQ4NDtENDg0OzExMTEgMTE2RSAxMUIzO0Q0ODQ7MTExMSAxMTZFIDExQjM7CitENDg1O0Q0ODU7MTExMSAxMTZFIDExQjQ7RDQ4NTsxMTExIDExNkUgMTFCNDsKK0Q0ODY7RDQ4NjsxMTExIDExNkUgMTFCNTtENDg2OzExMTEgMTE2RSAxMUI1OworRDQ4NztENDg3OzExMTEgMTE2RSAxMUI2O0Q0ODc7MTExMSAxMTZFIDExQjY7CitENDg4O0Q0ODg7MTExMSAxMTZFIDExQjc7RDQ4ODsxMTExIDExNkUgMTFCNzsKK0Q0ODk7RDQ4OTsxMTExIDExNkUgMTFCODtENDg5OzExMTEgMTE2RSAxMUI4OworRDQ4QTtENDhBOzExMTEgMTE2RSAxMUI5O0Q0OEE7MTExMSAxMTZFIDExQjk7CitENDhCO0Q0OEI7MTExMSAxMTZFIDExQkE7RDQ4QjsxMTExIDExNkUgMTFCQTsKK0Q0OEM7RDQ4QzsxMTExIDExNkUgMTFCQjtENDhDOzExMTEgMTE2RSAxMUJCOworRDQ4RDtENDhEOzExMTEgMTE2RSAxMUJDO0Q0OEQ7MTExMSAxMTZFIDExQkM7CitENDhFO0Q0OEU7MTExMSAxMTZFIDExQkQ7RDQ4RTsxMTExIDExNkUgMTFCRDsKK0Q0OEY7RDQ4RjsxMTExIDExNkUgMTFCRTtENDhGOzExMTEgMTE2RSAxMUJFOworRDQ5MDtENDkwOzExMTEgMTE2RSAxMUJGO0Q0OTA7MTExMSAxMTZFIDExQkY7CitENDkxO0Q0OTE7MTExMSAxMTZFIDExQzA7RDQ5MTsxMTExIDExNkUgMTFDMDsKK0Q0OTI7RDQ5MjsxMTExIDExNkUgMTFDMTtENDkyOzExMTEgMTE2RSAxMUMxOworRDQ5MztENDkzOzExMTEgMTE2RSAxMUMyO0Q0OTM7MTExMSAxMTZFIDExQzI7CitENDk0O0Q0OTQ7MTExMSAxMTZGO0Q0OTQ7MTExMSAxMTZGOworRDQ5NTtENDk1OzExMTEgMTE2RiAxMUE4O0Q0OTU7MTExMSAxMTZGIDExQTg7CitENDk2O0Q0OTY7MTExMSAxMTZGIDExQTk7RDQ5NjsxMTExIDExNkYgMTFBOTsKK0Q0OTc7RDQ5NzsxMTExIDExNkYgMTFBQTtENDk3OzExMTEgMTE2RiAxMUFBOworRDQ5ODtENDk4OzExMTEgMTE2RiAxMUFCO0Q0OTg7MTExMSAxMTZGIDExQUI7CitENDk5O0Q0OTk7MTExMSAxMTZGIDExQUM7RDQ5OTsxMTExIDExNkYgMTFBQzsKK0Q0OUE7RDQ5QTsxMTExIDExNkYgMTFBRDtENDlBOzExMTEgMTE2RiAxMUFEOworRDQ5QjtENDlCOzExMTEgMTE2RiAxMUFFO0Q0OUI7MTExMSAxMTZGIDExQUU7CitENDlDO0Q0OUM7MTExMSAxMTZGIDExQUY7RDQ5QzsxMTExIDExNkYgMTFBRjsKK0Q0OUQ7RDQ5RDsxMTExIDExNkYgMTFCMDtENDlEOzExMTEgMTE2RiAxMUIwOworRDQ5RTtENDlFOzExMTEgMTE2RiAxMUIxO0Q0OUU7MTExMSAxMTZGIDExQjE7CitENDlGO0Q0OUY7MTExMSAxMTZGIDExQjI7RDQ5RjsxMTExIDExNkYgMTFCMjsKK0Q0QTA7RDRBMDsxMTExIDExNkYgMTFCMztENEEwOzExMTEgMTE2RiAxMUIzOworRDRBMTtENEExOzExMTEgMTE2RiAxMUI0O0Q0QTE7MTExMSAxMTZGIDExQjQ7CitENEEyO0Q0QTI7MTExMSAxMTZGIDExQjU7RDRBMjsxMTExIDExNkYgMTFCNTsKK0Q0QTM7RDRBMzsxMTExIDExNkYgMTFCNjtENEEzOzExMTEgMTE2RiAxMUI2OworRDRBNDtENEE0OzExMTEgMTE2RiAxMUI3O0Q0QTQ7MTExMSAxMTZGIDExQjc7CitENEE1O0Q0QTU7MTExMSAxMTZGIDExQjg7RDRBNTsxMTExIDExNkYgMTFCODsKK0Q0QTY7RDRBNjsxMTExIDExNkYgMTFCOTtENEE2OzExMTEgMTE2RiAxMUI5OworRDRBNztENEE3OzExMTEgMTE2RiAxMUJBO0Q0QTc7MTExMSAxMTZGIDExQkE7CitENEE4O0Q0QTg7MTExMSAxMTZGIDExQkI7RDRBODsxMTExIDExNkYgMTFCQjsKK0Q0QTk7RDRBOTsxMTExIDExNkYgMTFCQztENEE5OzExMTEgMTE2RiAxMUJDOworRDRBQTtENEFBOzExMTEgMTE2RiAxMUJEO0Q0QUE7MTExMSAxMTZGIDExQkQ7CitENEFCO0Q0QUI7MTExMSAxMTZGIDExQkU7RDRBQjsxMTExIDExNkYgMTFCRTsKK0Q0QUM7RDRBQzsxMTExIDExNkYgMTFCRjtENEFDOzExMTEgMTE2RiAxMUJGOworRDRBRDtENEFEOzExMTEgMTE2RiAxMUMwO0Q0QUQ7MTExMSAxMTZGIDExQzA7CitENEFFO0Q0QUU7MTExMSAxMTZGIDExQzE7RDRBRTsxMTExIDExNkYgMTFDMTsKK0Q0QUY7RDRBRjsxMTExIDExNkYgMTFDMjtENEFGOzExMTEgMTE2RiAxMUMyOworRDRCMDtENEIwOzExMTEgMTE3MDtENEIwOzExMTEgMTE3MDsKK0Q0QjE7RDRCMTsxMTExIDExNzAgMTFBODtENEIxOzExMTEgMTE3MCAxMUE4OworRDRCMjtENEIyOzExMTEgMTE3MCAxMUE5O0Q0QjI7MTExMSAxMTcwIDExQTk7CitENEIzO0Q0QjM7MTExMSAxMTcwIDExQUE7RDRCMzsxMTExIDExNzAgMTFBQTsKK0Q0QjQ7RDRCNDsxMTExIDExNzAgMTFBQjtENEI0OzExMTEgMTE3MCAxMUFCOworRDRCNTtENEI1OzExMTEgMTE3MCAxMUFDO0Q0QjU7MTExMSAxMTcwIDExQUM7CitENEI2O0Q0QjY7MTExMSAxMTcwIDExQUQ7RDRCNjsxMTExIDExNzAgMTFBRDsKK0Q0Qjc7RDRCNzsxMTExIDExNzAgMTFBRTtENEI3OzExMTEgMTE3MCAxMUFFOworRDRCODtENEI4OzExMTEgMTE3MCAxMUFGO0Q0Qjg7MTExMSAxMTcwIDExQUY7CitENEI5O0Q0Qjk7MTExMSAxMTcwIDExQjA7RDRCOTsxMTExIDExNzAgMTFCMDsKK0Q0QkE7RDRCQTsxMTExIDExNzAgMTFCMTtENEJBOzExMTEgMTE3MCAxMUIxOworRDRCQjtENEJCOzExMTEgMTE3MCAxMUIyO0Q0QkI7MTExMSAxMTcwIDExQjI7CitENEJDO0Q0QkM7MTExMSAxMTcwIDExQjM7RDRCQzsxMTExIDExNzAgMTFCMzsKK0Q0QkQ7RDRCRDsxMTExIDExNzAgMTFCNDtENEJEOzExMTEgMTE3MCAxMUI0OworRDRCRTtENEJFOzExMTEgMTE3MCAxMUI1O0Q0QkU7MTExMSAxMTcwIDExQjU7CitENEJGO0Q0QkY7MTExMSAxMTcwIDExQjY7RDRCRjsxMTExIDExNzAgMTFCNjsKK0Q0QzA7RDRDMDsxMTExIDExNzAgMTFCNztENEMwOzExMTEgMTE3MCAxMUI3OworRDRDMTtENEMxOzExMTEgMTE3MCAxMUI4O0Q0QzE7MTExMSAxMTcwIDExQjg7CitENEMyO0Q0QzI7MTExMSAxMTcwIDExQjk7RDRDMjsxMTExIDExNzAgMTFCOTsKK0Q0QzM7RDRDMzsxMTExIDExNzAgMTFCQTtENEMzOzExMTEgMTE3MCAxMUJBOworRDRDNDtENEM0OzExMTEgMTE3MCAxMUJCO0Q0QzQ7MTExMSAxMTcwIDExQkI7CitENEM1O0Q0QzU7MTExMSAxMTcwIDExQkM7RDRDNTsxMTExIDExNzAgMTFCQzsKK0Q0QzY7RDRDNjsxMTExIDExNzAgMTFCRDtENEM2OzExMTEgMTE3MCAxMUJEOworRDRDNztENEM3OzExMTEgMTE3MCAxMUJFO0Q0Qzc7MTExMSAxMTcwIDExQkU7CitENEM4O0Q0Qzg7MTExMSAxMTcwIDExQkY7RDRDODsxMTExIDExNzAgMTFCRjsKK0Q0Qzk7RDRDOTsxMTExIDExNzAgMTFDMDtENEM5OzExMTEgMTE3MCAxMUMwOworRDRDQTtENENBOzExMTEgMTE3MCAxMUMxO0Q0Q0E7MTExMSAxMTcwIDExQzE7CitENENCO0Q0Q0I7MTExMSAxMTcwIDExQzI7RDRDQjsxMTExIDExNzAgMTFDMjsKK0Q0Q0M7RDRDQzsxMTExIDExNzE7RDRDQzsxMTExIDExNzE7CitENENEO0Q0Q0Q7MTExMSAxMTcxIDExQTg7RDRDRDsxMTExIDExNzEgMTFBODsKK0Q0Q0U7RDRDRTsxMTExIDExNzEgMTFBOTtENENFOzExMTEgMTE3MSAxMUE5OworRDRDRjtENENGOzExMTEgMTE3MSAxMUFBO0Q0Q0Y7MTExMSAxMTcxIDExQUE7CitENEQwO0Q0RDA7MTExMSAxMTcxIDExQUI7RDREMDsxMTExIDExNzEgMTFBQjsKK0Q0RDE7RDREMTsxMTExIDExNzEgMTFBQztENEQxOzExMTEgMTE3MSAxMUFDOworRDREMjtENEQyOzExMTEgMTE3MSAxMUFEO0Q0RDI7MTExMSAxMTcxIDExQUQ7CitENEQzO0Q0RDM7MTExMSAxMTcxIDExQUU7RDREMzsxMTExIDExNzEgMTFBRTsKK0Q0RDQ7RDRENDsxMTExIDExNzEgMTFBRjtENEQ0OzExMTEgMTE3MSAxMUFGOworRDRENTtENEQ1OzExMTEgMTE3MSAxMUIwO0Q0RDU7MTExMSAxMTcxIDExQjA7CitENEQ2O0Q0RDY7MTExMSAxMTcxIDExQjE7RDRENjsxMTExIDExNzEgMTFCMTsKK0Q0RDc7RDRENzsxMTExIDExNzEgMTFCMjtENEQ3OzExMTEgMTE3MSAxMUIyOworRDREODtENEQ4OzExMTEgMTE3MSAxMUIzO0Q0RDg7MTExMSAxMTcxIDExQjM7CitENEQ5O0Q0RDk7MTExMSAxMTcxIDExQjQ7RDREOTsxMTExIDExNzEgMTFCNDsKK0Q0REE7RDREQTsxMTExIDExNzEgMTFCNTtENERBOzExMTEgMTE3MSAxMUI1OworRDREQjtENERCOzExMTEgMTE3MSAxMUI2O0Q0REI7MTExMSAxMTcxIDExQjY7CitENERDO0Q0REM7MTExMSAxMTcxIDExQjc7RDREQzsxMTExIDExNzEgMTFCNzsKK0Q0REQ7RDRERDsxMTExIDExNzEgMTFCODtENEREOzExMTEgMTE3MSAxMUI4OworRDRERTtENERFOzExMTEgMTE3MSAxMUI5O0Q0REU7MTExMSAxMTcxIDExQjk7CitENERGO0Q0REY7MTExMSAxMTcxIDExQkE7RDRERjsxMTExIDExNzEgMTFCQTsKK0Q0RTA7RDRFMDsxMTExIDExNzEgMTFCQjtENEUwOzExMTEgMTE3MSAxMUJCOworRDRFMTtENEUxOzExMTEgMTE3MSAxMUJDO0Q0RTE7MTExMSAxMTcxIDExQkM7CitENEUyO0Q0RTI7MTExMSAxMTcxIDExQkQ7RDRFMjsxMTExIDExNzEgMTFCRDsKK0Q0RTM7RDRFMzsxMTExIDExNzEgMTFCRTtENEUzOzExMTEgMTE3MSAxMUJFOworRDRFNDtENEU0OzExMTEgMTE3MSAxMUJGO0Q0RTQ7MTExMSAxMTcxIDExQkY7CitENEU1O0Q0RTU7MTExMSAxMTcxIDExQzA7RDRFNTsxMTExIDExNzEgMTFDMDsKK0Q0RTY7RDRFNjsxMTExIDExNzEgMTFDMTtENEU2OzExMTEgMTE3MSAxMUMxOworRDRFNztENEU3OzExMTEgMTE3MSAxMUMyO0Q0RTc7MTExMSAxMTcxIDExQzI7CitENEU4O0Q0RTg7MTExMSAxMTcyO0Q0RTg7MTExMSAxMTcyOworRDRFOTtENEU5OzExMTEgMTE3MiAxMUE4O0Q0RTk7MTExMSAxMTcyIDExQTg7CitENEVBO0Q0RUE7MTExMSAxMTcyIDExQTk7RDRFQTsxMTExIDExNzIgMTFBOTsKK0Q0RUI7RDRFQjsxMTExIDExNzIgMTFBQTtENEVCOzExMTEgMTE3MiAxMUFBOworRDRFQztENEVDOzExMTEgMTE3MiAxMUFCO0Q0RUM7MTExMSAxMTcyIDExQUI7CitENEVEO0Q0RUQ7MTExMSAxMTcyIDExQUM7RDRFRDsxMTExIDExNzIgMTFBQzsKK0Q0RUU7RDRFRTsxMTExIDExNzIgMTFBRDtENEVFOzExMTEgMTE3MiAxMUFEOworRDRFRjtENEVGOzExMTEgMTE3MiAxMUFFO0Q0RUY7MTExMSAxMTcyIDExQUU7CitENEYwO0Q0RjA7MTExMSAxMTcyIDExQUY7RDRGMDsxMTExIDExNzIgMTFBRjsKK0Q0RjE7RDRGMTsxMTExIDExNzIgMTFCMDtENEYxOzExMTEgMTE3MiAxMUIwOworRDRGMjtENEYyOzExMTEgMTE3MiAxMUIxO0Q0RjI7MTExMSAxMTcyIDExQjE7CitENEYzO0Q0RjM7MTExMSAxMTcyIDExQjI7RDRGMzsxMTExIDExNzIgMTFCMjsKK0Q0RjQ7RDRGNDsxMTExIDExNzIgMTFCMztENEY0OzExMTEgMTE3MiAxMUIzOworRDRGNTtENEY1OzExMTEgMTE3MiAxMUI0O0Q0RjU7MTExMSAxMTcyIDExQjQ7CitENEY2O0Q0RjY7MTExMSAxMTcyIDExQjU7RDRGNjsxMTExIDExNzIgMTFCNTsKK0Q0Rjc7RDRGNzsxMTExIDExNzIgMTFCNjtENEY3OzExMTEgMTE3MiAxMUI2OworRDRGODtENEY4OzExMTEgMTE3MiAxMUI3O0Q0Rjg7MTExMSAxMTcyIDExQjc7CitENEY5O0Q0Rjk7MTExMSAxMTcyIDExQjg7RDRGOTsxMTExIDExNzIgMTFCODsKK0Q0RkE7RDRGQTsxMTExIDExNzIgMTFCOTtENEZBOzExMTEgMTE3MiAxMUI5OworRDRGQjtENEZCOzExMTEgMTE3MiAxMUJBO0Q0RkI7MTExMSAxMTcyIDExQkE7CitENEZDO0Q0RkM7MTExMSAxMTcyIDExQkI7RDRGQzsxMTExIDExNzIgMTFCQjsKK0Q0RkQ7RDRGRDsxMTExIDExNzIgMTFCQztENEZEOzExMTEgMTE3MiAxMUJDOworRDRGRTtENEZFOzExMTEgMTE3MiAxMUJEO0Q0RkU7MTExMSAxMTcyIDExQkQ7CitENEZGO0Q0RkY7MTExMSAxMTcyIDExQkU7RDRGRjsxMTExIDExNzIgMTFCRTsKK0Q1MDA7RDUwMDsxMTExIDExNzIgMTFCRjtENTAwOzExMTEgMTE3MiAxMUJGOworRDUwMTtENTAxOzExMTEgMTE3MiAxMUMwO0Q1MDE7MTExMSAxMTcyIDExQzA7CitENTAyO0Q1MDI7MTExMSAxMTcyIDExQzE7RDUwMjsxMTExIDExNzIgMTFDMTsKK0Q1MDM7RDUwMzsxMTExIDExNzIgMTFDMjtENTAzOzExMTEgMTE3MiAxMUMyOworRDUwNDtENTA0OzExMTEgMTE3MztENTA0OzExMTEgMTE3MzsKK0Q1MDU7RDUwNTsxMTExIDExNzMgMTFBODtENTA1OzExMTEgMTE3MyAxMUE4OworRDUwNjtENTA2OzExMTEgMTE3MyAxMUE5O0Q1MDY7MTExMSAxMTczIDExQTk7CitENTA3O0Q1MDc7MTExMSAxMTczIDExQUE7RDUwNzsxMTExIDExNzMgMTFBQTsKK0Q1MDg7RDUwODsxMTExIDExNzMgMTFBQjtENTA4OzExMTEgMTE3MyAxMUFCOworRDUwOTtENTA5OzExMTEgMTE3MyAxMUFDO0Q1MDk7MTExMSAxMTczIDExQUM7CitENTBBO0Q1MEE7MTExMSAxMTczIDExQUQ7RDUwQTsxMTExIDExNzMgMTFBRDsKK0Q1MEI7RDUwQjsxMTExIDExNzMgMTFBRTtENTBCOzExMTEgMTE3MyAxMUFFOworRDUwQztENTBDOzExMTEgMTE3MyAxMUFGO0Q1MEM7MTExMSAxMTczIDExQUY7CitENTBEO0Q1MEQ7MTExMSAxMTczIDExQjA7RDUwRDsxMTExIDExNzMgMTFCMDsKK0Q1MEU7RDUwRTsxMTExIDExNzMgMTFCMTtENTBFOzExMTEgMTE3MyAxMUIxOworRDUwRjtENTBGOzExMTEgMTE3MyAxMUIyO0Q1MEY7MTExMSAxMTczIDExQjI7CitENTEwO0Q1MTA7MTExMSAxMTczIDExQjM7RDUxMDsxMTExIDExNzMgMTFCMzsKK0Q1MTE7RDUxMTsxMTExIDExNzMgMTFCNDtENTExOzExMTEgMTE3MyAxMUI0OworRDUxMjtENTEyOzExMTEgMTE3MyAxMUI1O0Q1MTI7MTExMSAxMTczIDExQjU7CitENTEzO0Q1MTM7MTExMSAxMTczIDExQjY7RDUxMzsxMTExIDExNzMgMTFCNjsKK0Q1MTQ7RDUxNDsxMTExIDExNzMgMTFCNztENTE0OzExMTEgMTE3MyAxMUI3OworRDUxNTtENTE1OzExMTEgMTE3MyAxMUI4O0Q1MTU7MTExMSAxMTczIDExQjg7CitENTE2O0Q1MTY7MTExMSAxMTczIDExQjk7RDUxNjsxMTExIDExNzMgMTFCOTsKK0Q1MTc7RDUxNzsxMTExIDExNzMgMTFCQTtENTE3OzExMTEgMTE3MyAxMUJBOworRDUxODtENTE4OzExMTEgMTE3MyAxMUJCO0Q1MTg7MTExMSAxMTczIDExQkI7CitENTE5O0Q1MTk7MTExMSAxMTczIDExQkM7RDUxOTsxMTExIDExNzMgMTFCQzsKK0Q1MUE7RDUxQTsxMTExIDExNzMgMTFCRDtENTFBOzExMTEgMTE3MyAxMUJEOworRDUxQjtENTFCOzExMTEgMTE3MyAxMUJFO0Q1MUI7MTExMSAxMTczIDExQkU7CitENTFDO0Q1MUM7MTExMSAxMTczIDExQkY7RDUxQzsxMTExIDExNzMgMTFCRjsKK0Q1MUQ7RDUxRDsxMTExIDExNzMgMTFDMDtENTFEOzExMTEgMTE3MyAxMUMwOworRDUxRTtENTFFOzExMTEgMTE3MyAxMUMxO0Q1MUU7MTExMSAxMTczIDExQzE7CitENTFGO0Q1MUY7MTExMSAxMTczIDExQzI7RDUxRjsxMTExIDExNzMgMTFDMjsKK0Q1MjA7RDUyMDsxMTExIDExNzQ7RDUyMDsxMTExIDExNzQ7CitENTIxO0Q1MjE7MTExMSAxMTc0IDExQTg7RDUyMTsxMTExIDExNzQgMTFBODsKK0Q1MjI7RDUyMjsxMTExIDExNzQgMTFBOTtENTIyOzExMTEgMTE3NCAxMUE5OworRDUyMztENTIzOzExMTEgMTE3NCAxMUFBO0Q1MjM7MTExMSAxMTc0IDExQUE7CitENTI0O0Q1MjQ7MTExMSAxMTc0IDExQUI7RDUyNDsxMTExIDExNzQgMTFBQjsKK0Q1MjU7RDUyNTsxMTExIDExNzQgMTFBQztENTI1OzExMTEgMTE3NCAxMUFDOworRDUyNjtENTI2OzExMTEgMTE3NCAxMUFEO0Q1MjY7MTExMSAxMTc0IDExQUQ7CitENTI3O0Q1Mjc7MTExMSAxMTc0IDExQUU7RDUyNzsxMTExIDExNzQgMTFBRTsKK0Q1Mjg7RDUyODsxMTExIDExNzQgMTFBRjtENTI4OzExMTEgMTE3NCAxMUFGOworRDUyOTtENTI5OzExMTEgMTE3NCAxMUIwO0Q1Mjk7MTExMSAxMTc0IDExQjA7CitENTJBO0Q1MkE7MTExMSAxMTc0IDExQjE7RDUyQTsxMTExIDExNzQgMTFCMTsKK0Q1MkI7RDUyQjsxMTExIDExNzQgMTFCMjtENTJCOzExMTEgMTE3NCAxMUIyOworRDUyQztENTJDOzExMTEgMTE3NCAxMUIzO0Q1MkM7MTExMSAxMTc0IDExQjM7CitENTJEO0Q1MkQ7MTExMSAxMTc0IDExQjQ7RDUyRDsxMTExIDExNzQgMTFCNDsKK0Q1MkU7RDUyRTsxMTExIDExNzQgMTFCNTtENTJFOzExMTEgMTE3NCAxMUI1OworRDUyRjtENTJGOzExMTEgMTE3NCAxMUI2O0Q1MkY7MTExMSAxMTc0IDExQjY7CitENTMwO0Q1MzA7MTExMSAxMTc0IDExQjc7RDUzMDsxMTExIDExNzQgMTFCNzsKK0Q1MzE7RDUzMTsxMTExIDExNzQgMTFCODtENTMxOzExMTEgMTE3NCAxMUI4OworRDUzMjtENTMyOzExMTEgMTE3NCAxMUI5O0Q1MzI7MTExMSAxMTc0IDExQjk7CitENTMzO0Q1MzM7MTExMSAxMTc0IDExQkE7RDUzMzsxMTExIDExNzQgMTFCQTsKK0Q1MzQ7RDUzNDsxMTExIDExNzQgMTFCQjtENTM0OzExMTEgMTE3NCAxMUJCOworRDUzNTtENTM1OzExMTEgMTE3NCAxMUJDO0Q1MzU7MTExMSAxMTc0IDExQkM7CitENTM2O0Q1MzY7MTExMSAxMTc0IDExQkQ7RDUzNjsxMTExIDExNzQgMTFCRDsKK0Q1Mzc7RDUzNzsxMTExIDExNzQgMTFCRTtENTM3OzExMTEgMTE3NCAxMUJFOworRDUzODtENTM4OzExMTEgMTE3NCAxMUJGO0Q1Mzg7MTExMSAxMTc0IDExQkY7CitENTM5O0Q1Mzk7MTExMSAxMTc0IDExQzA7RDUzOTsxMTExIDExNzQgMTFDMDsKK0Q1M0E7RDUzQTsxMTExIDExNzQgMTFDMTtENTNBOzExMTEgMTE3NCAxMUMxOworRDUzQjtENTNCOzExMTEgMTE3NCAxMUMyO0Q1M0I7MTExMSAxMTc0IDExQzI7CitENTNDO0Q1M0M7MTExMSAxMTc1O0Q1M0M7MTExMSAxMTc1OworRDUzRDtENTNEOzExMTEgMTE3NSAxMUE4O0Q1M0Q7MTExMSAxMTc1IDExQTg7CitENTNFO0Q1M0U7MTExMSAxMTc1IDExQTk7RDUzRTsxMTExIDExNzUgMTFBOTsKK0Q1M0Y7RDUzRjsxMTExIDExNzUgMTFBQTtENTNGOzExMTEgMTE3NSAxMUFBOworRDU0MDtENTQwOzExMTEgMTE3NSAxMUFCO0Q1NDA7MTExMSAxMTc1IDExQUI7CitENTQxO0Q1NDE7MTExMSAxMTc1IDExQUM7RDU0MTsxMTExIDExNzUgMTFBQzsKK0Q1NDI7RDU0MjsxMTExIDExNzUgMTFBRDtENTQyOzExMTEgMTE3NSAxMUFEOworRDU0MztENTQzOzExMTEgMTE3NSAxMUFFO0Q1NDM7MTExMSAxMTc1IDExQUU7CitENTQ0O0Q1NDQ7MTExMSAxMTc1IDExQUY7RDU0NDsxMTExIDExNzUgMTFBRjsKK0Q1NDU7RDU0NTsxMTExIDExNzUgMTFCMDtENTQ1OzExMTEgMTE3NSAxMUIwOworRDU0NjtENTQ2OzExMTEgMTE3NSAxMUIxO0Q1NDY7MTExMSAxMTc1IDExQjE7CitENTQ3O0Q1NDc7MTExMSAxMTc1IDExQjI7RDU0NzsxMTExIDExNzUgMTFCMjsKK0Q1NDg7RDU0ODsxMTExIDExNzUgMTFCMztENTQ4OzExMTEgMTE3NSAxMUIzOworRDU0OTtENTQ5OzExMTEgMTE3NSAxMUI0O0Q1NDk7MTExMSAxMTc1IDExQjQ7CitENTRBO0Q1NEE7MTExMSAxMTc1IDExQjU7RDU0QTsxMTExIDExNzUgMTFCNTsKK0Q1NEI7RDU0QjsxMTExIDExNzUgMTFCNjtENTRCOzExMTEgMTE3NSAxMUI2OworRDU0QztENTRDOzExMTEgMTE3NSAxMUI3O0Q1NEM7MTExMSAxMTc1IDExQjc7CitENTREO0Q1NEQ7MTExMSAxMTc1IDExQjg7RDU0RDsxMTExIDExNzUgMTFCODsKK0Q1NEU7RDU0RTsxMTExIDExNzUgMTFCOTtENTRFOzExMTEgMTE3NSAxMUI5OworRDU0RjtENTRGOzExMTEgMTE3NSAxMUJBO0Q1NEY7MTExMSAxMTc1IDExQkE7CitENTUwO0Q1NTA7MTExMSAxMTc1IDExQkI7RDU1MDsxMTExIDExNzUgMTFCQjsKK0Q1NTE7RDU1MTsxMTExIDExNzUgMTFCQztENTUxOzExMTEgMTE3NSAxMUJDOworRDU1MjtENTUyOzExMTEgMTE3NSAxMUJEO0Q1NTI7MTExMSAxMTc1IDExQkQ7CitENTUzO0Q1NTM7MTExMSAxMTc1IDExQkU7RDU1MzsxMTExIDExNzUgMTFCRTsKK0Q1NTQ7RDU1NDsxMTExIDExNzUgMTFCRjtENTU0OzExMTEgMTE3NSAxMUJGOworRDU1NTtENTU1OzExMTEgMTE3NSAxMUMwO0Q1NTU7MTExMSAxMTc1IDExQzA7CitENTU2O0Q1NTY7MTExMSAxMTc1IDExQzE7RDU1NjsxMTExIDExNzUgMTFDMTsKK0Q1NTc7RDU1NzsxMTExIDExNzUgMTFDMjtENTU3OzExMTEgMTE3NSAxMUMyOworRDU1ODtENTU4OzExMTIgMTE2MTtENTU4OzExMTIgMTE2MTsKK0Q1NTk7RDU1OTsxMTEyIDExNjEgMTFBODtENTU5OzExMTIgMTE2MSAxMUE4OworRDU1QTtENTVBOzExMTIgMTE2MSAxMUE5O0Q1NUE7MTExMiAxMTYxIDExQTk7CitENTVCO0Q1NUI7MTExMiAxMTYxIDExQUE7RDU1QjsxMTEyIDExNjEgMTFBQTsKK0Q1NUM7RDU1QzsxMTEyIDExNjEgMTFBQjtENTVDOzExMTIgMTE2MSAxMUFCOworRDU1RDtENTVEOzExMTIgMTE2MSAxMUFDO0Q1NUQ7MTExMiAxMTYxIDExQUM7CitENTVFO0Q1NUU7MTExMiAxMTYxIDExQUQ7RDU1RTsxMTEyIDExNjEgMTFBRDsKK0Q1NUY7RDU1RjsxMTEyIDExNjEgMTFBRTtENTVGOzExMTIgMTE2MSAxMUFFOworRDU2MDtENTYwOzExMTIgMTE2MSAxMUFGO0Q1NjA7MTExMiAxMTYxIDExQUY7CitENTYxO0Q1NjE7MTExMiAxMTYxIDExQjA7RDU2MTsxMTEyIDExNjEgMTFCMDsKK0Q1NjI7RDU2MjsxMTEyIDExNjEgMTFCMTtENTYyOzExMTIgMTE2MSAxMUIxOworRDU2MztENTYzOzExMTIgMTE2MSAxMUIyO0Q1NjM7MTExMiAxMTYxIDExQjI7CitENTY0O0Q1NjQ7MTExMiAxMTYxIDExQjM7RDU2NDsxMTEyIDExNjEgMTFCMzsKK0Q1NjU7RDU2NTsxMTEyIDExNjEgMTFCNDtENTY1OzExMTIgMTE2MSAxMUI0OworRDU2NjtENTY2OzExMTIgMTE2MSAxMUI1O0Q1NjY7MTExMiAxMTYxIDExQjU7CitENTY3O0Q1Njc7MTExMiAxMTYxIDExQjY7RDU2NzsxMTEyIDExNjEgMTFCNjsKK0Q1Njg7RDU2ODsxMTEyIDExNjEgMTFCNztENTY4OzExMTIgMTE2MSAxMUI3OworRDU2OTtENTY5OzExMTIgMTE2MSAxMUI4O0Q1Njk7MTExMiAxMTYxIDExQjg7CitENTZBO0Q1NkE7MTExMiAxMTYxIDExQjk7RDU2QTsxMTEyIDExNjEgMTFCOTsKK0Q1NkI7RDU2QjsxMTEyIDExNjEgMTFCQTtENTZCOzExMTIgMTE2MSAxMUJBOworRDU2QztENTZDOzExMTIgMTE2MSAxMUJCO0Q1NkM7MTExMiAxMTYxIDExQkI7CitENTZEO0Q1NkQ7MTExMiAxMTYxIDExQkM7RDU2RDsxMTEyIDExNjEgMTFCQzsKK0Q1NkU7RDU2RTsxMTEyIDExNjEgMTFCRDtENTZFOzExMTIgMTE2MSAxMUJEOworRDU2RjtENTZGOzExMTIgMTE2MSAxMUJFO0Q1NkY7MTExMiAxMTYxIDExQkU7CitENTcwO0Q1NzA7MTExMiAxMTYxIDExQkY7RDU3MDsxMTEyIDExNjEgMTFCRjsKK0Q1NzE7RDU3MTsxMTEyIDExNjEgMTFDMDtENTcxOzExMTIgMTE2MSAxMUMwOworRDU3MjtENTcyOzExMTIgMTE2MSAxMUMxO0Q1NzI7MTExMiAxMTYxIDExQzE7CitENTczO0Q1NzM7MTExMiAxMTYxIDExQzI7RDU3MzsxMTEyIDExNjEgMTFDMjsKK0Q1NzQ7RDU3NDsxMTEyIDExNjI7RDU3NDsxMTEyIDExNjI7CitENTc1O0Q1NzU7MTExMiAxMTYyIDExQTg7RDU3NTsxMTEyIDExNjIgMTFBODsKK0Q1NzY7RDU3NjsxMTEyIDExNjIgMTFBOTtENTc2OzExMTIgMTE2MiAxMUE5OworRDU3NztENTc3OzExMTIgMTE2MiAxMUFBO0Q1Nzc7MTExMiAxMTYyIDExQUE7CitENTc4O0Q1Nzg7MTExMiAxMTYyIDExQUI7RDU3ODsxMTEyIDExNjIgMTFBQjsKK0Q1Nzk7RDU3OTsxMTEyIDExNjIgMTFBQztENTc5OzExMTIgMTE2MiAxMUFDOworRDU3QTtENTdBOzExMTIgMTE2MiAxMUFEO0Q1N0E7MTExMiAxMTYyIDExQUQ7CitENTdCO0Q1N0I7MTExMiAxMTYyIDExQUU7RDU3QjsxMTEyIDExNjIgMTFBRTsKK0Q1N0M7RDU3QzsxMTEyIDExNjIgMTFBRjtENTdDOzExMTIgMTE2MiAxMUFGOworRDU3RDtENTdEOzExMTIgMTE2MiAxMUIwO0Q1N0Q7MTExMiAxMTYyIDExQjA7CitENTdFO0Q1N0U7MTExMiAxMTYyIDExQjE7RDU3RTsxMTEyIDExNjIgMTFCMTsKK0Q1N0Y7RDU3RjsxMTEyIDExNjIgMTFCMjtENTdGOzExMTIgMTE2MiAxMUIyOworRDU4MDtENTgwOzExMTIgMTE2MiAxMUIzO0Q1ODA7MTExMiAxMTYyIDExQjM7CitENTgxO0Q1ODE7MTExMiAxMTYyIDExQjQ7RDU4MTsxMTEyIDExNjIgMTFCNDsKK0Q1ODI7RDU4MjsxMTEyIDExNjIgMTFCNTtENTgyOzExMTIgMTE2MiAxMUI1OworRDU4MztENTgzOzExMTIgMTE2MiAxMUI2O0Q1ODM7MTExMiAxMTYyIDExQjY7CitENTg0O0Q1ODQ7MTExMiAxMTYyIDExQjc7RDU4NDsxMTEyIDExNjIgMTFCNzsKK0Q1ODU7RDU4NTsxMTEyIDExNjIgMTFCODtENTg1OzExMTIgMTE2MiAxMUI4OworRDU4NjtENTg2OzExMTIgMTE2MiAxMUI5O0Q1ODY7MTExMiAxMTYyIDExQjk7CitENTg3O0Q1ODc7MTExMiAxMTYyIDExQkE7RDU4NzsxMTEyIDExNjIgMTFCQTsKK0Q1ODg7RDU4ODsxMTEyIDExNjIgMTFCQjtENTg4OzExMTIgMTE2MiAxMUJCOworRDU4OTtENTg5OzExMTIgMTE2MiAxMUJDO0Q1ODk7MTExMiAxMTYyIDExQkM7CitENThBO0Q1OEE7MTExMiAxMTYyIDExQkQ7RDU4QTsxMTEyIDExNjIgMTFCRDsKK0Q1OEI7RDU4QjsxMTEyIDExNjIgMTFCRTtENThCOzExMTIgMTE2MiAxMUJFOworRDU4QztENThDOzExMTIgMTE2MiAxMUJGO0Q1OEM7MTExMiAxMTYyIDExQkY7CitENThEO0Q1OEQ7MTExMiAxMTYyIDExQzA7RDU4RDsxMTEyIDExNjIgMTFDMDsKK0Q1OEU7RDU4RTsxMTEyIDExNjIgMTFDMTtENThFOzExMTIgMTE2MiAxMUMxOworRDU4RjtENThGOzExMTIgMTE2MiAxMUMyO0Q1OEY7MTExMiAxMTYyIDExQzI7CitENTkwO0Q1OTA7MTExMiAxMTYzO0Q1OTA7MTExMiAxMTYzOworRDU5MTtENTkxOzExMTIgMTE2MyAxMUE4O0Q1OTE7MTExMiAxMTYzIDExQTg7CitENTkyO0Q1OTI7MTExMiAxMTYzIDExQTk7RDU5MjsxMTEyIDExNjMgMTFBOTsKK0Q1OTM7RDU5MzsxMTEyIDExNjMgMTFBQTtENTkzOzExMTIgMTE2MyAxMUFBOworRDU5NDtENTk0OzExMTIgMTE2MyAxMUFCO0Q1OTQ7MTExMiAxMTYzIDExQUI7CitENTk1O0Q1OTU7MTExMiAxMTYzIDExQUM7RDU5NTsxMTEyIDExNjMgMTFBQzsKK0Q1OTY7RDU5NjsxMTEyIDExNjMgMTFBRDtENTk2OzExMTIgMTE2MyAxMUFEOworRDU5NztENTk3OzExMTIgMTE2MyAxMUFFO0Q1OTc7MTExMiAxMTYzIDExQUU7CitENTk4O0Q1OTg7MTExMiAxMTYzIDExQUY7RDU5ODsxMTEyIDExNjMgMTFBRjsKK0Q1OTk7RDU5OTsxMTEyIDExNjMgMTFCMDtENTk5OzExMTIgMTE2MyAxMUIwOworRDU5QTtENTlBOzExMTIgMTE2MyAxMUIxO0Q1OUE7MTExMiAxMTYzIDExQjE7CitENTlCO0Q1OUI7MTExMiAxMTYzIDExQjI7RDU5QjsxMTEyIDExNjMgMTFCMjsKK0Q1OUM7RDU5QzsxMTEyIDExNjMgMTFCMztENTlDOzExMTIgMTE2MyAxMUIzOworRDU5RDtENTlEOzExMTIgMTE2MyAxMUI0O0Q1OUQ7MTExMiAxMTYzIDExQjQ7CitENTlFO0Q1OUU7MTExMiAxMTYzIDExQjU7RDU5RTsxMTEyIDExNjMgMTFCNTsKK0Q1OUY7RDU5RjsxMTEyIDExNjMgMTFCNjtENTlGOzExMTIgMTE2MyAxMUI2OworRDVBMDtENUEwOzExMTIgMTE2MyAxMUI3O0Q1QTA7MTExMiAxMTYzIDExQjc7CitENUExO0Q1QTE7MTExMiAxMTYzIDExQjg7RDVBMTsxMTEyIDExNjMgMTFCODsKK0Q1QTI7RDVBMjsxMTEyIDExNjMgMTFCOTtENUEyOzExMTIgMTE2MyAxMUI5OworRDVBMztENUEzOzExMTIgMTE2MyAxMUJBO0Q1QTM7MTExMiAxMTYzIDExQkE7CitENUE0O0Q1QTQ7MTExMiAxMTYzIDExQkI7RDVBNDsxMTEyIDExNjMgMTFCQjsKK0Q1QTU7RDVBNTsxMTEyIDExNjMgMTFCQztENUE1OzExMTIgMTE2MyAxMUJDOworRDVBNjtENUE2OzExMTIgMTE2MyAxMUJEO0Q1QTY7MTExMiAxMTYzIDExQkQ7CitENUE3O0Q1QTc7MTExMiAxMTYzIDExQkU7RDVBNzsxMTEyIDExNjMgMTFCRTsKK0Q1QTg7RDVBODsxMTEyIDExNjMgMTFCRjtENUE4OzExMTIgMTE2MyAxMUJGOworRDVBOTtENUE5OzExMTIgMTE2MyAxMUMwO0Q1QTk7MTExMiAxMTYzIDExQzA7CitENUFBO0Q1QUE7MTExMiAxMTYzIDExQzE7RDVBQTsxMTEyIDExNjMgMTFDMTsKK0Q1QUI7RDVBQjsxMTEyIDExNjMgMTFDMjtENUFCOzExMTIgMTE2MyAxMUMyOworRDVBQztENUFDOzExMTIgMTE2NDtENUFDOzExMTIgMTE2NDsKK0Q1QUQ7RDVBRDsxMTEyIDExNjQgMTFBODtENUFEOzExMTIgMTE2NCAxMUE4OworRDVBRTtENUFFOzExMTIgMTE2NCAxMUE5O0Q1QUU7MTExMiAxMTY0IDExQTk7CitENUFGO0Q1QUY7MTExMiAxMTY0IDExQUE7RDVBRjsxMTEyIDExNjQgMTFBQTsKK0Q1QjA7RDVCMDsxMTEyIDExNjQgMTFBQjtENUIwOzExMTIgMTE2NCAxMUFCOworRDVCMTtENUIxOzExMTIgMTE2NCAxMUFDO0Q1QjE7MTExMiAxMTY0IDExQUM7CitENUIyO0Q1QjI7MTExMiAxMTY0IDExQUQ7RDVCMjsxMTEyIDExNjQgMTFBRDsKK0Q1QjM7RDVCMzsxMTEyIDExNjQgMTFBRTtENUIzOzExMTIgMTE2NCAxMUFFOworRDVCNDtENUI0OzExMTIgMTE2NCAxMUFGO0Q1QjQ7MTExMiAxMTY0IDExQUY7CitENUI1O0Q1QjU7MTExMiAxMTY0IDExQjA7RDVCNTsxMTEyIDExNjQgMTFCMDsKK0Q1QjY7RDVCNjsxMTEyIDExNjQgMTFCMTtENUI2OzExMTIgMTE2NCAxMUIxOworRDVCNztENUI3OzExMTIgMTE2NCAxMUIyO0Q1Qjc7MTExMiAxMTY0IDExQjI7CitENUI4O0Q1Qjg7MTExMiAxMTY0IDExQjM7RDVCODsxMTEyIDExNjQgMTFCMzsKK0Q1Qjk7RDVCOTsxMTEyIDExNjQgMTFCNDtENUI5OzExMTIgMTE2NCAxMUI0OworRDVCQTtENUJBOzExMTIgMTE2NCAxMUI1O0Q1QkE7MTExMiAxMTY0IDExQjU7CitENUJCO0Q1QkI7MTExMiAxMTY0IDExQjY7RDVCQjsxMTEyIDExNjQgMTFCNjsKK0Q1QkM7RDVCQzsxMTEyIDExNjQgMTFCNztENUJDOzExMTIgMTE2NCAxMUI3OworRDVCRDtENUJEOzExMTIgMTE2NCAxMUI4O0Q1QkQ7MTExMiAxMTY0IDExQjg7CitENUJFO0Q1QkU7MTExMiAxMTY0IDExQjk7RDVCRTsxMTEyIDExNjQgMTFCOTsKK0Q1QkY7RDVCRjsxMTEyIDExNjQgMTFCQTtENUJGOzExMTIgMTE2NCAxMUJBOworRDVDMDtENUMwOzExMTIgMTE2NCAxMUJCO0Q1QzA7MTExMiAxMTY0IDExQkI7CitENUMxO0Q1QzE7MTExMiAxMTY0IDExQkM7RDVDMTsxMTEyIDExNjQgMTFCQzsKK0Q1QzI7RDVDMjsxMTEyIDExNjQgMTFCRDtENUMyOzExMTIgMTE2NCAxMUJEOworRDVDMztENUMzOzExMTIgMTE2NCAxMUJFO0Q1QzM7MTExMiAxMTY0IDExQkU7CitENUM0O0Q1QzQ7MTExMiAxMTY0IDExQkY7RDVDNDsxMTEyIDExNjQgMTFCRjsKK0Q1QzU7RDVDNTsxMTEyIDExNjQgMTFDMDtENUM1OzExMTIgMTE2NCAxMUMwOworRDVDNjtENUM2OzExMTIgMTE2NCAxMUMxO0Q1QzY7MTExMiAxMTY0IDExQzE7CitENUM3O0Q1Qzc7MTExMiAxMTY0IDExQzI7RDVDNzsxMTEyIDExNjQgMTFDMjsKK0Q1Qzg7RDVDODsxMTEyIDExNjU7RDVDODsxMTEyIDExNjU7CitENUM5O0Q1Qzk7MTExMiAxMTY1IDExQTg7RDVDOTsxMTEyIDExNjUgMTFBODsKK0Q1Q0E7RDVDQTsxMTEyIDExNjUgMTFBOTtENUNBOzExMTIgMTE2NSAxMUE5OworRDVDQjtENUNCOzExMTIgMTE2NSAxMUFBO0Q1Q0I7MTExMiAxMTY1IDExQUE7CitENUNDO0Q1Q0M7MTExMiAxMTY1IDExQUI7RDVDQzsxMTEyIDExNjUgMTFBQjsKK0Q1Q0Q7RDVDRDsxMTEyIDExNjUgMTFBQztENUNEOzExMTIgMTE2NSAxMUFDOworRDVDRTtENUNFOzExMTIgMTE2NSAxMUFEO0Q1Q0U7MTExMiAxMTY1IDExQUQ7CitENUNGO0Q1Q0Y7MTExMiAxMTY1IDExQUU7RDVDRjsxMTEyIDExNjUgMTFBRTsKK0Q1RDA7RDVEMDsxMTEyIDExNjUgMTFBRjtENUQwOzExMTIgMTE2NSAxMUFGOworRDVEMTtENUQxOzExMTIgMTE2NSAxMUIwO0Q1RDE7MTExMiAxMTY1IDExQjA7CitENUQyO0Q1RDI7MTExMiAxMTY1IDExQjE7RDVEMjsxMTEyIDExNjUgMTFCMTsKK0Q1RDM7RDVEMzsxMTEyIDExNjUgMTFCMjtENUQzOzExMTIgMTE2NSAxMUIyOworRDVENDtENUQ0OzExMTIgMTE2NSAxMUIzO0Q1RDQ7MTExMiAxMTY1IDExQjM7CitENUQ1O0Q1RDU7MTExMiAxMTY1IDExQjQ7RDVENTsxMTEyIDExNjUgMTFCNDsKK0Q1RDY7RDVENjsxMTEyIDExNjUgMTFCNTtENUQ2OzExMTIgMTE2NSAxMUI1OworRDVENztENUQ3OzExMTIgMTE2NSAxMUI2O0Q1RDc7MTExMiAxMTY1IDExQjY7CitENUQ4O0Q1RDg7MTExMiAxMTY1IDExQjc7RDVEODsxMTEyIDExNjUgMTFCNzsKK0Q1RDk7RDVEOTsxMTEyIDExNjUgMTFCODtENUQ5OzExMTIgMTE2NSAxMUI4OworRDVEQTtENURBOzExMTIgMTE2NSAxMUI5O0Q1REE7MTExMiAxMTY1IDExQjk7CitENURCO0Q1REI7MTExMiAxMTY1IDExQkE7RDVEQjsxMTEyIDExNjUgMTFCQTsKK0Q1REM7RDVEQzsxMTEyIDExNjUgMTFCQjtENURDOzExMTIgMTE2NSAxMUJCOworRDVERDtENUREOzExMTIgMTE2NSAxMUJDO0Q1REQ7MTExMiAxMTY1IDExQkM7CitENURFO0Q1REU7MTExMiAxMTY1IDExQkQ7RDVERTsxMTEyIDExNjUgMTFCRDsKK0Q1REY7RDVERjsxMTEyIDExNjUgMTFCRTtENURGOzExMTIgMTE2NSAxMUJFOworRDVFMDtENUUwOzExMTIgMTE2NSAxMUJGO0Q1RTA7MTExMiAxMTY1IDExQkY7CitENUUxO0Q1RTE7MTExMiAxMTY1IDExQzA7RDVFMTsxMTEyIDExNjUgMTFDMDsKK0Q1RTI7RDVFMjsxMTEyIDExNjUgMTFDMTtENUUyOzExMTIgMTE2NSAxMUMxOworRDVFMztENUUzOzExMTIgMTE2NSAxMUMyO0Q1RTM7MTExMiAxMTY1IDExQzI7CitENUU0O0Q1RTQ7MTExMiAxMTY2O0Q1RTQ7MTExMiAxMTY2OworRDVFNTtENUU1OzExMTIgMTE2NiAxMUE4O0Q1RTU7MTExMiAxMTY2IDExQTg7CitENUU2O0Q1RTY7MTExMiAxMTY2IDExQTk7RDVFNjsxMTEyIDExNjYgMTFBOTsKK0Q1RTc7RDVFNzsxMTEyIDExNjYgMTFBQTtENUU3OzExMTIgMTE2NiAxMUFBOworRDVFODtENUU4OzExMTIgMTE2NiAxMUFCO0Q1RTg7MTExMiAxMTY2IDExQUI7CitENUU5O0Q1RTk7MTExMiAxMTY2IDExQUM7RDVFOTsxMTEyIDExNjYgMTFBQzsKK0Q1RUE7RDVFQTsxMTEyIDExNjYgMTFBRDtENUVBOzExMTIgMTE2NiAxMUFEOworRDVFQjtENUVCOzExMTIgMTE2NiAxMUFFO0Q1RUI7MTExMiAxMTY2IDExQUU7CitENUVDO0Q1RUM7MTExMiAxMTY2IDExQUY7RDVFQzsxMTEyIDExNjYgMTFBRjsKK0Q1RUQ7RDVFRDsxMTEyIDExNjYgMTFCMDtENUVEOzExMTIgMTE2NiAxMUIwOworRDVFRTtENUVFOzExMTIgMTE2NiAxMUIxO0Q1RUU7MTExMiAxMTY2IDExQjE7CitENUVGO0Q1RUY7MTExMiAxMTY2IDExQjI7RDVFRjsxMTEyIDExNjYgMTFCMjsKK0Q1RjA7RDVGMDsxMTEyIDExNjYgMTFCMztENUYwOzExMTIgMTE2NiAxMUIzOworRDVGMTtENUYxOzExMTIgMTE2NiAxMUI0O0Q1RjE7MTExMiAxMTY2IDExQjQ7CitENUYyO0Q1RjI7MTExMiAxMTY2IDExQjU7RDVGMjsxMTEyIDExNjYgMTFCNTsKK0Q1RjM7RDVGMzsxMTEyIDExNjYgMTFCNjtENUYzOzExMTIgMTE2NiAxMUI2OworRDVGNDtENUY0OzExMTIgMTE2NiAxMUI3O0Q1RjQ7MTExMiAxMTY2IDExQjc7CitENUY1O0Q1RjU7MTExMiAxMTY2IDExQjg7RDVGNTsxMTEyIDExNjYgMTFCODsKK0Q1RjY7RDVGNjsxMTEyIDExNjYgMTFCOTtENUY2OzExMTIgMTE2NiAxMUI5OworRDVGNztENUY3OzExMTIgMTE2NiAxMUJBO0Q1Rjc7MTExMiAxMTY2IDExQkE7CitENUY4O0Q1Rjg7MTExMiAxMTY2IDExQkI7RDVGODsxMTEyIDExNjYgMTFCQjsKK0Q1Rjk7RDVGOTsxMTEyIDExNjYgMTFCQztENUY5OzExMTIgMTE2NiAxMUJDOworRDVGQTtENUZBOzExMTIgMTE2NiAxMUJEO0Q1RkE7MTExMiAxMTY2IDExQkQ7CitENUZCO0Q1RkI7MTExMiAxMTY2IDExQkU7RDVGQjsxMTEyIDExNjYgMTFCRTsKK0Q1RkM7RDVGQzsxMTEyIDExNjYgMTFCRjtENUZDOzExMTIgMTE2NiAxMUJGOworRDVGRDtENUZEOzExMTIgMTE2NiAxMUMwO0Q1RkQ7MTExMiAxMTY2IDExQzA7CitENUZFO0Q1RkU7MTExMiAxMTY2IDExQzE7RDVGRTsxMTEyIDExNjYgMTFDMTsKK0Q1RkY7RDVGRjsxMTEyIDExNjYgMTFDMjtENUZGOzExMTIgMTE2NiAxMUMyOworRDYwMDtENjAwOzExMTIgMTE2NztENjAwOzExMTIgMTE2NzsKK0Q2MDE7RDYwMTsxMTEyIDExNjcgMTFBODtENjAxOzExMTIgMTE2NyAxMUE4OworRDYwMjtENjAyOzExMTIgMTE2NyAxMUE5O0Q2MDI7MTExMiAxMTY3IDExQTk7CitENjAzO0Q2MDM7MTExMiAxMTY3IDExQUE7RDYwMzsxMTEyIDExNjcgMTFBQTsKK0Q2MDQ7RDYwNDsxMTEyIDExNjcgMTFBQjtENjA0OzExMTIgMTE2NyAxMUFCOworRDYwNTtENjA1OzExMTIgMTE2NyAxMUFDO0Q2MDU7MTExMiAxMTY3IDExQUM7CitENjA2O0Q2MDY7MTExMiAxMTY3IDExQUQ7RDYwNjsxMTEyIDExNjcgMTFBRDsKK0Q2MDc7RDYwNzsxMTEyIDExNjcgMTFBRTtENjA3OzExMTIgMTE2NyAxMUFFOworRDYwODtENjA4OzExMTIgMTE2NyAxMUFGO0Q2MDg7MTExMiAxMTY3IDExQUY7CitENjA5O0Q2MDk7MTExMiAxMTY3IDExQjA7RDYwOTsxMTEyIDExNjcgMTFCMDsKK0Q2MEE7RDYwQTsxMTEyIDExNjcgMTFCMTtENjBBOzExMTIgMTE2NyAxMUIxOworRDYwQjtENjBCOzExMTIgMTE2NyAxMUIyO0Q2MEI7MTExMiAxMTY3IDExQjI7CitENjBDO0Q2MEM7MTExMiAxMTY3IDExQjM7RDYwQzsxMTEyIDExNjcgMTFCMzsKK0Q2MEQ7RDYwRDsxMTEyIDExNjcgMTFCNDtENjBEOzExMTIgMTE2NyAxMUI0OworRDYwRTtENjBFOzExMTIgMTE2NyAxMUI1O0Q2MEU7MTExMiAxMTY3IDExQjU7CitENjBGO0Q2MEY7MTExMiAxMTY3IDExQjY7RDYwRjsxMTEyIDExNjcgMTFCNjsKK0Q2MTA7RDYxMDsxMTEyIDExNjcgMTFCNztENjEwOzExMTIgMTE2NyAxMUI3OworRDYxMTtENjExOzExMTIgMTE2NyAxMUI4O0Q2MTE7MTExMiAxMTY3IDExQjg7CitENjEyO0Q2MTI7MTExMiAxMTY3IDExQjk7RDYxMjsxMTEyIDExNjcgMTFCOTsKK0Q2MTM7RDYxMzsxMTEyIDExNjcgMTFCQTtENjEzOzExMTIgMTE2NyAxMUJBOworRDYxNDtENjE0OzExMTIgMTE2NyAxMUJCO0Q2MTQ7MTExMiAxMTY3IDExQkI7CitENjE1O0Q2MTU7MTExMiAxMTY3IDExQkM7RDYxNTsxMTEyIDExNjcgMTFCQzsKK0Q2MTY7RDYxNjsxMTEyIDExNjcgMTFCRDtENjE2OzExMTIgMTE2NyAxMUJEOworRDYxNztENjE3OzExMTIgMTE2NyAxMUJFO0Q2MTc7MTExMiAxMTY3IDExQkU7CitENjE4O0Q2MTg7MTExMiAxMTY3IDExQkY7RDYxODsxMTEyIDExNjcgMTFCRjsKK0Q2MTk7RDYxOTsxMTEyIDExNjcgMTFDMDtENjE5OzExMTIgMTE2NyAxMUMwOworRDYxQTtENjFBOzExMTIgMTE2NyAxMUMxO0Q2MUE7MTExMiAxMTY3IDExQzE7CitENjFCO0Q2MUI7MTExMiAxMTY3IDExQzI7RDYxQjsxMTEyIDExNjcgMTFDMjsKK0Q2MUM7RDYxQzsxMTEyIDExNjg7RDYxQzsxMTEyIDExNjg7CitENjFEO0Q2MUQ7MTExMiAxMTY4IDExQTg7RDYxRDsxMTEyIDExNjggMTFBODsKK0Q2MUU7RDYxRTsxMTEyIDExNjggMTFBOTtENjFFOzExMTIgMTE2OCAxMUE5OworRDYxRjtENjFGOzExMTIgMTE2OCAxMUFBO0Q2MUY7MTExMiAxMTY4IDExQUE7CitENjIwO0Q2MjA7MTExMiAxMTY4IDExQUI7RDYyMDsxMTEyIDExNjggMTFBQjsKK0Q2MjE7RDYyMTsxMTEyIDExNjggMTFBQztENjIxOzExMTIgMTE2OCAxMUFDOworRDYyMjtENjIyOzExMTIgMTE2OCAxMUFEO0Q2MjI7MTExMiAxMTY4IDExQUQ7CitENjIzO0Q2MjM7MTExMiAxMTY4IDExQUU7RDYyMzsxMTEyIDExNjggMTFBRTsKK0Q2MjQ7RDYyNDsxMTEyIDExNjggMTFBRjtENjI0OzExMTIgMTE2OCAxMUFGOworRDYyNTtENjI1OzExMTIgMTE2OCAxMUIwO0Q2MjU7MTExMiAxMTY4IDExQjA7CitENjI2O0Q2MjY7MTExMiAxMTY4IDExQjE7RDYyNjsxMTEyIDExNjggMTFCMTsKK0Q2Mjc7RDYyNzsxMTEyIDExNjggMTFCMjtENjI3OzExMTIgMTE2OCAxMUIyOworRDYyODtENjI4OzExMTIgMTE2OCAxMUIzO0Q2Mjg7MTExMiAxMTY4IDExQjM7CitENjI5O0Q2Mjk7MTExMiAxMTY4IDExQjQ7RDYyOTsxMTEyIDExNjggMTFCNDsKK0Q2MkE7RDYyQTsxMTEyIDExNjggMTFCNTtENjJBOzExMTIgMTE2OCAxMUI1OworRDYyQjtENjJCOzExMTIgMTE2OCAxMUI2O0Q2MkI7MTExMiAxMTY4IDExQjY7CitENjJDO0Q2MkM7MTExMiAxMTY4IDExQjc7RDYyQzsxMTEyIDExNjggMTFCNzsKK0Q2MkQ7RDYyRDsxMTEyIDExNjggMTFCODtENjJEOzExMTIgMTE2OCAxMUI4OworRDYyRTtENjJFOzExMTIgMTE2OCAxMUI5O0Q2MkU7MTExMiAxMTY4IDExQjk7CitENjJGO0Q2MkY7MTExMiAxMTY4IDExQkE7RDYyRjsxMTEyIDExNjggMTFCQTsKK0Q2MzA7RDYzMDsxMTEyIDExNjggMTFCQjtENjMwOzExMTIgMTE2OCAxMUJCOworRDYzMTtENjMxOzExMTIgMTE2OCAxMUJDO0Q2MzE7MTExMiAxMTY4IDExQkM7CitENjMyO0Q2MzI7MTExMiAxMTY4IDExQkQ7RDYzMjsxMTEyIDExNjggMTFCRDsKK0Q2MzM7RDYzMzsxMTEyIDExNjggMTFCRTtENjMzOzExMTIgMTE2OCAxMUJFOworRDYzNDtENjM0OzExMTIgMTE2OCAxMUJGO0Q2MzQ7MTExMiAxMTY4IDExQkY7CitENjM1O0Q2MzU7MTExMiAxMTY4IDExQzA7RDYzNTsxMTEyIDExNjggMTFDMDsKK0Q2MzY7RDYzNjsxMTEyIDExNjggMTFDMTtENjM2OzExMTIgMTE2OCAxMUMxOworRDYzNztENjM3OzExMTIgMTE2OCAxMUMyO0Q2Mzc7MTExMiAxMTY4IDExQzI7CitENjM4O0Q2Mzg7MTExMiAxMTY5O0Q2Mzg7MTExMiAxMTY5OworRDYzOTtENjM5OzExMTIgMTE2OSAxMUE4O0Q2Mzk7MTExMiAxMTY5IDExQTg7CitENjNBO0Q2M0E7MTExMiAxMTY5IDExQTk7RDYzQTsxMTEyIDExNjkgMTFBOTsKK0Q2M0I7RDYzQjsxMTEyIDExNjkgMTFBQTtENjNCOzExMTIgMTE2OSAxMUFBOworRDYzQztENjNDOzExMTIgMTE2OSAxMUFCO0Q2M0M7MTExMiAxMTY5IDExQUI7CitENjNEO0Q2M0Q7MTExMiAxMTY5IDExQUM7RDYzRDsxMTEyIDExNjkgMTFBQzsKK0Q2M0U7RDYzRTsxMTEyIDExNjkgMTFBRDtENjNFOzExMTIgMTE2OSAxMUFEOworRDYzRjtENjNGOzExMTIgMTE2OSAxMUFFO0Q2M0Y7MTExMiAxMTY5IDExQUU7CitENjQwO0Q2NDA7MTExMiAxMTY5IDExQUY7RDY0MDsxMTEyIDExNjkgMTFBRjsKK0Q2NDE7RDY0MTsxMTEyIDExNjkgMTFCMDtENjQxOzExMTIgMTE2OSAxMUIwOworRDY0MjtENjQyOzExMTIgMTE2OSAxMUIxO0Q2NDI7MTExMiAxMTY5IDExQjE7CitENjQzO0Q2NDM7MTExMiAxMTY5IDExQjI7RDY0MzsxMTEyIDExNjkgMTFCMjsKK0Q2NDQ7RDY0NDsxMTEyIDExNjkgMTFCMztENjQ0OzExMTIgMTE2OSAxMUIzOworRDY0NTtENjQ1OzExMTIgMTE2OSAxMUI0O0Q2NDU7MTExMiAxMTY5IDExQjQ7CitENjQ2O0Q2NDY7MTExMiAxMTY5IDExQjU7RDY0NjsxMTEyIDExNjkgMTFCNTsKK0Q2NDc7RDY0NzsxMTEyIDExNjkgMTFCNjtENjQ3OzExMTIgMTE2OSAxMUI2OworRDY0ODtENjQ4OzExMTIgMTE2OSAxMUI3O0Q2NDg7MTExMiAxMTY5IDExQjc7CitENjQ5O0Q2NDk7MTExMiAxMTY5IDExQjg7RDY0OTsxMTEyIDExNjkgMTFCODsKK0Q2NEE7RDY0QTsxMTEyIDExNjkgMTFCOTtENjRBOzExMTIgMTE2OSAxMUI5OworRDY0QjtENjRCOzExMTIgMTE2OSAxMUJBO0Q2NEI7MTExMiAxMTY5IDExQkE7CitENjRDO0Q2NEM7MTExMiAxMTY5IDExQkI7RDY0QzsxMTEyIDExNjkgMTFCQjsKK0Q2NEQ7RDY0RDsxMTEyIDExNjkgMTFCQztENjREOzExMTIgMTE2OSAxMUJDOworRDY0RTtENjRFOzExMTIgMTE2OSAxMUJEO0Q2NEU7MTExMiAxMTY5IDExQkQ7CitENjRGO0Q2NEY7MTExMiAxMTY5IDExQkU7RDY0RjsxMTEyIDExNjkgMTFCRTsKK0Q2NTA7RDY1MDsxMTEyIDExNjkgMTFCRjtENjUwOzExMTIgMTE2OSAxMUJGOworRDY1MTtENjUxOzExMTIgMTE2OSAxMUMwO0Q2NTE7MTExMiAxMTY5IDExQzA7CitENjUyO0Q2NTI7MTExMiAxMTY5IDExQzE7RDY1MjsxMTEyIDExNjkgMTFDMTsKK0Q2NTM7RDY1MzsxMTEyIDExNjkgMTFDMjtENjUzOzExMTIgMTE2OSAxMUMyOworRDY1NDtENjU0OzExMTIgMTE2QTtENjU0OzExMTIgMTE2QTsKK0Q2NTU7RDY1NTsxMTEyIDExNkEgMTFBODtENjU1OzExMTIgMTE2QSAxMUE4OworRDY1NjtENjU2OzExMTIgMTE2QSAxMUE5O0Q2NTY7MTExMiAxMTZBIDExQTk7CitENjU3O0Q2NTc7MTExMiAxMTZBIDExQUE7RDY1NzsxMTEyIDExNkEgMTFBQTsKK0Q2NTg7RDY1ODsxMTEyIDExNkEgMTFBQjtENjU4OzExMTIgMTE2QSAxMUFCOworRDY1OTtENjU5OzExMTIgMTE2QSAxMUFDO0Q2NTk7MTExMiAxMTZBIDExQUM7CitENjVBO0Q2NUE7MTExMiAxMTZBIDExQUQ7RDY1QTsxMTEyIDExNkEgMTFBRDsKK0Q2NUI7RDY1QjsxMTEyIDExNkEgMTFBRTtENjVCOzExMTIgMTE2QSAxMUFFOworRDY1QztENjVDOzExMTIgMTE2QSAxMUFGO0Q2NUM7MTExMiAxMTZBIDExQUY7CitENjVEO0Q2NUQ7MTExMiAxMTZBIDExQjA7RDY1RDsxMTEyIDExNkEgMTFCMDsKK0Q2NUU7RDY1RTsxMTEyIDExNkEgMTFCMTtENjVFOzExMTIgMTE2QSAxMUIxOworRDY1RjtENjVGOzExMTIgMTE2QSAxMUIyO0Q2NUY7MTExMiAxMTZBIDExQjI7CitENjYwO0Q2NjA7MTExMiAxMTZBIDExQjM7RDY2MDsxMTEyIDExNkEgMTFCMzsKK0Q2NjE7RDY2MTsxMTEyIDExNkEgMTFCNDtENjYxOzExMTIgMTE2QSAxMUI0OworRDY2MjtENjYyOzExMTIgMTE2QSAxMUI1O0Q2NjI7MTExMiAxMTZBIDExQjU7CitENjYzO0Q2NjM7MTExMiAxMTZBIDExQjY7RDY2MzsxMTEyIDExNkEgMTFCNjsKK0Q2NjQ7RDY2NDsxMTEyIDExNkEgMTFCNztENjY0OzExMTIgMTE2QSAxMUI3OworRDY2NTtENjY1OzExMTIgMTE2QSAxMUI4O0Q2NjU7MTExMiAxMTZBIDExQjg7CitENjY2O0Q2NjY7MTExMiAxMTZBIDExQjk7RDY2NjsxMTEyIDExNkEgMTFCOTsKK0Q2Njc7RDY2NzsxMTEyIDExNkEgMTFCQTtENjY3OzExMTIgMTE2QSAxMUJBOworRDY2ODtENjY4OzExMTIgMTE2QSAxMUJCO0Q2Njg7MTExMiAxMTZBIDExQkI7CitENjY5O0Q2Njk7MTExMiAxMTZBIDExQkM7RDY2OTsxMTEyIDExNkEgMTFCQzsKK0Q2NkE7RDY2QTsxMTEyIDExNkEgMTFCRDtENjZBOzExMTIgMTE2QSAxMUJEOworRDY2QjtENjZCOzExMTIgMTE2QSAxMUJFO0Q2NkI7MTExMiAxMTZBIDExQkU7CitENjZDO0Q2NkM7MTExMiAxMTZBIDExQkY7RDY2QzsxMTEyIDExNkEgMTFCRjsKK0Q2NkQ7RDY2RDsxMTEyIDExNkEgMTFDMDtENjZEOzExMTIgMTE2QSAxMUMwOworRDY2RTtENjZFOzExMTIgMTE2QSAxMUMxO0Q2NkU7MTExMiAxMTZBIDExQzE7CitENjZGO0Q2NkY7MTExMiAxMTZBIDExQzI7RDY2RjsxMTEyIDExNkEgMTFDMjsKK0Q2NzA7RDY3MDsxMTEyIDExNkI7RDY3MDsxMTEyIDExNkI7CitENjcxO0Q2NzE7MTExMiAxMTZCIDExQTg7RDY3MTsxMTEyIDExNkIgMTFBODsKK0Q2NzI7RDY3MjsxMTEyIDExNkIgMTFBOTtENjcyOzExMTIgMTE2QiAxMUE5OworRDY3MztENjczOzExMTIgMTE2QiAxMUFBO0Q2NzM7MTExMiAxMTZCIDExQUE7CitENjc0O0Q2NzQ7MTExMiAxMTZCIDExQUI7RDY3NDsxMTEyIDExNkIgMTFBQjsKK0Q2NzU7RDY3NTsxMTEyIDExNkIgMTFBQztENjc1OzExMTIgMTE2QiAxMUFDOworRDY3NjtENjc2OzExMTIgMTE2QiAxMUFEO0Q2NzY7MTExMiAxMTZCIDExQUQ7CitENjc3O0Q2Nzc7MTExMiAxMTZCIDExQUU7RDY3NzsxMTEyIDExNkIgMTFBRTsKK0Q2Nzg7RDY3ODsxMTEyIDExNkIgMTFBRjtENjc4OzExMTIgMTE2QiAxMUFGOworRDY3OTtENjc5OzExMTIgMTE2QiAxMUIwO0Q2Nzk7MTExMiAxMTZCIDExQjA7CitENjdBO0Q2N0E7MTExMiAxMTZCIDExQjE7RDY3QTsxMTEyIDExNkIgMTFCMTsKK0Q2N0I7RDY3QjsxMTEyIDExNkIgMTFCMjtENjdCOzExMTIgMTE2QiAxMUIyOworRDY3QztENjdDOzExMTIgMTE2QiAxMUIzO0Q2N0M7MTExMiAxMTZCIDExQjM7CitENjdEO0Q2N0Q7MTExMiAxMTZCIDExQjQ7RDY3RDsxMTEyIDExNkIgMTFCNDsKK0Q2N0U7RDY3RTsxMTEyIDExNkIgMTFCNTtENjdFOzExMTIgMTE2QiAxMUI1OworRDY3RjtENjdGOzExMTIgMTE2QiAxMUI2O0Q2N0Y7MTExMiAxMTZCIDExQjY7CitENjgwO0Q2ODA7MTExMiAxMTZCIDExQjc7RDY4MDsxMTEyIDExNkIgMTFCNzsKK0Q2ODE7RDY4MTsxMTEyIDExNkIgMTFCODtENjgxOzExMTIgMTE2QiAxMUI4OworRDY4MjtENjgyOzExMTIgMTE2QiAxMUI5O0Q2ODI7MTExMiAxMTZCIDExQjk7CitENjgzO0Q2ODM7MTExMiAxMTZCIDExQkE7RDY4MzsxMTEyIDExNkIgMTFCQTsKK0Q2ODQ7RDY4NDsxMTEyIDExNkIgMTFCQjtENjg0OzExMTIgMTE2QiAxMUJCOworRDY4NTtENjg1OzExMTIgMTE2QiAxMUJDO0Q2ODU7MTExMiAxMTZCIDExQkM7CitENjg2O0Q2ODY7MTExMiAxMTZCIDExQkQ7RDY4NjsxMTEyIDExNkIgMTFCRDsKK0Q2ODc7RDY4NzsxMTEyIDExNkIgMTFCRTtENjg3OzExMTIgMTE2QiAxMUJFOworRDY4ODtENjg4OzExMTIgMTE2QiAxMUJGO0Q2ODg7MTExMiAxMTZCIDExQkY7CitENjg5O0Q2ODk7MTExMiAxMTZCIDExQzA7RDY4OTsxMTEyIDExNkIgMTFDMDsKK0Q2OEE7RDY4QTsxMTEyIDExNkIgMTFDMTtENjhBOzExMTIgMTE2QiAxMUMxOworRDY4QjtENjhCOzExMTIgMTE2QiAxMUMyO0Q2OEI7MTExMiAxMTZCIDExQzI7CitENjhDO0Q2OEM7MTExMiAxMTZDO0Q2OEM7MTExMiAxMTZDOworRDY4RDtENjhEOzExMTIgMTE2QyAxMUE4O0Q2OEQ7MTExMiAxMTZDIDExQTg7CitENjhFO0Q2OEU7MTExMiAxMTZDIDExQTk7RDY4RTsxMTEyIDExNkMgMTFBOTsKK0Q2OEY7RDY4RjsxMTEyIDExNkMgMTFBQTtENjhGOzExMTIgMTE2QyAxMUFBOworRDY5MDtENjkwOzExMTIgMTE2QyAxMUFCO0Q2OTA7MTExMiAxMTZDIDExQUI7CitENjkxO0Q2OTE7MTExMiAxMTZDIDExQUM7RDY5MTsxMTEyIDExNkMgMTFBQzsKK0Q2OTI7RDY5MjsxMTEyIDExNkMgMTFBRDtENjkyOzExMTIgMTE2QyAxMUFEOworRDY5MztENjkzOzExMTIgMTE2QyAxMUFFO0Q2OTM7MTExMiAxMTZDIDExQUU7CitENjk0O0Q2OTQ7MTExMiAxMTZDIDExQUY7RDY5NDsxMTEyIDExNkMgMTFBRjsKK0Q2OTU7RDY5NTsxMTEyIDExNkMgMTFCMDtENjk1OzExMTIgMTE2QyAxMUIwOworRDY5NjtENjk2OzExMTIgMTE2QyAxMUIxO0Q2OTY7MTExMiAxMTZDIDExQjE7CitENjk3O0Q2OTc7MTExMiAxMTZDIDExQjI7RDY5NzsxMTEyIDExNkMgMTFCMjsKK0Q2OTg7RDY5ODsxMTEyIDExNkMgMTFCMztENjk4OzExMTIgMTE2QyAxMUIzOworRDY5OTtENjk5OzExMTIgMTE2QyAxMUI0O0Q2OTk7MTExMiAxMTZDIDExQjQ7CitENjlBO0Q2OUE7MTExMiAxMTZDIDExQjU7RDY5QTsxMTEyIDExNkMgMTFCNTsKK0Q2OUI7RDY5QjsxMTEyIDExNkMgMTFCNjtENjlCOzExMTIgMTE2QyAxMUI2OworRDY5QztENjlDOzExMTIgMTE2QyAxMUI3O0Q2OUM7MTExMiAxMTZDIDExQjc7CitENjlEO0Q2OUQ7MTExMiAxMTZDIDExQjg7RDY5RDsxMTEyIDExNkMgMTFCODsKK0Q2OUU7RDY5RTsxMTEyIDExNkMgMTFCOTtENjlFOzExMTIgMTE2QyAxMUI5OworRDY5RjtENjlGOzExMTIgMTE2QyAxMUJBO0Q2OUY7MTExMiAxMTZDIDExQkE7CitENkEwO0Q2QTA7MTExMiAxMTZDIDExQkI7RDZBMDsxMTEyIDExNkMgMTFCQjsKK0Q2QTE7RDZBMTsxMTEyIDExNkMgMTFCQztENkExOzExMTIgMTE2QyAxMUJDOworRDZBMjtENkEyOzExMTIgMTE2QyAxMUJEO0Q2QTI7MTExMiAxMTZDIDExQkQ7CitENkEzO0Q2QTM7MTExMiAxMTZDIDExQkU7RDZBMzsxMTEyIDExNkMgMTFCRTsKK0Q2QTQ7RDZBNDsxMTEyIDExNkMgMTFCRjtENkE0OzExMTIgMTE2QyAxMUJGOworRDZBNTtENkE1OzExMTIgMTE2QyAxMUMwO0Q2QTU7MTExMiAxMTZDIDExQzA7CitENkE2O0Q2QTY7MTExMiAxMTZDIDExQzE7RDZBNjsxMTEyIDExNkMgMTFDMTsKK0Q2QTc7RDZBNzsxMTEyIDExNkMgMTFDMjtENkE3OzExMTIgMTE2QyAxMUMyOworRDZBODtENkE4OzExMTIgMTE2RDtENkE4OzExMTIgMTE2RDsKK0Q2QTk7RDZBOTsxMTEyIDExNkQgMTFBODtENkE5OzExMTIgMTE2RCAxMUE4OworRDZBQTtENkFBOzExMTIgMTE2RCAxMUE5O0Q2QUE7MTExMiAxMTZEIDExQTk7CitENkFCO0Q2QUI7MTExMiAxMTZEIDExQUE7RDZBQjsxMTEyIDExNkQgMTFBQTsKK0Q2QUM7RDZBQzsxMTEyIDExNkQgMTFBQjtENkFDOzExMTIgMTE2RCAxMUFCOworRDZBRDtENkFEOzExMTIgMTE2RCAxMUFDO0Q2QUQ7MTExMiAxMTZEIDExQUM7CitENkFFO0Q2QUU7MTExMiAxMTZEIDExQUQ7RDZBRTsxMTEyIDExNkQgMTFBRDsKK0Q2QUY7RDZBRjsxMTEyIDExNkQgMTFBRTtENkFGOzExMTIgMTE2RCAxMUFFOworRDZCMDtENkIwOzExMTIgMTE2RCAxMUFGO0Q2QjA7MTExMiAxMTZEIDExQUY7CitENkIxO0Q2QjE7MTExMiAxMTZEIDExQjA7RDZCMTsxMTEyIDExNkQgMTFCMDsKK0Q2QjI7RDZCMjsxMTEyIDExNkQgMTFCMTtENkIyOzExMTIgMTE2RCAxMUIxOworRDZCMztENkIzOzExMTIgMTE2RCAxMUIyO0Q2QjM7MTExMiAxMTZEIDExQjI7CitENkI0O0Q2QjQ7MTExMiAxMTZEIDExQjM7RDZCNDsxMTEyIDExNkQgMTFCMzsKK0Q2QjU7RDZCNTsxMTEyIDExNkQgMTFCNDtENkI1OzExMTIgMTE2RCAxMUI0OworRDZCNjtENkI2OzExMTIgMTE2RCAxMUI1O0Q2QjY7MTExMiAxMTZEIDExQjU7CitENkI3O0Q2Qjc7MTExMiAxMTZEIDExQjY7RDZCNzsxMTEyIDExNkQgMTFCNjsKK0Q2Qjg7RDZCODsxMTEyIDExNkQgMTFCNztENkI4OzExMTIgMTE2RCAxMUI3OworRDZCOTtENkI5OzExMTIgMTE2RCAxMUI4O0Q2Qjk7MTExMiAxMTZEIDExQjg7CitENkJBO0Q2QkE7MTExMiAxMTZEIDExQjk7RDZCQTsxMTEyIDExNkQgMTFCOTsKK0Q2QkI7RDZCQjsxMTEyIDExNkQgMTFCQTtENkJCOzExMTIgMTE2RCAxMUJBOworRDZCQztENkJDOzExMTIgMTE2RCAxMUJCO0Q2QkM7MTExMiAxMTZEIDExQkI7CitENkJEO0Q2QkQ7MTExMiAxMTZEIDExQkM7RDZCRDsxMTEyIDExNkQgMTFCQzsKK0Q2QkU7RDZCRTsxMTEyIDExNkQgMTFCRDtENkJFOzExMTIgMTE2RCAxMUJEOworRDZCRjtENkJGOzExMTIgMTE2RCAxMUJFO0Q2QkY7MTExMiAxMTZEIDExQkU7CitENkMwO0Q2QzA7MTExMiAxMTZEIDExQkY7RDZDMDsxMTEyIDExNkQgMTFCRjsKK0Q2QzE7RDZDMTsxMTEyIDExNkQgMTFDMDtENkMxOzExMTIgMTE2RCAxMUMwOworRDZDMjtENkMyOzExMTIgMTE2RCAxMUMxO0Q2QzI7MTExMiAxMTZEIDExQzE7CitENkMzO0Q2QzM7MTExMiAxMTZEIDExQzI7RDZDMzsxMTEyIDExNkQgMTFDMjsKK0Q2QzQ7RDZDNDsxMTEyIDExNkU7RDZDNDsxMTEyIDExNkU7CitENkM1O0Q2QzU7MTExMiAxMTZFIDExQTg7RDZDNTsxMTEyIDExNkUgMTFBODsKK0Q2QzY7RDZDNjsxMTEyIDExNkUgMTFBOTtENkM2OzExMTIgMTE2RSAxMUE5OworRDZDNztENkM3OzExMTIgMTE2RSAxMUFBO0Q2Qzc7MTExMiAxMTZFIDExQUE7CitENkM4O0Q2Qzg7MTExMiAxMTZFIDExQUI7RDZDODsxMTEyIDExNkUgMTFBQjsKK0Q2Qzk7RDZDOTsxMTEyIDExNkUgMTFBQztENkM5OzExMTIgMTE2RSAxMUFDOworRDZDQTtENkNBOzExMTIgMTE2RSAxMUFEO0Q2Q0E7MTExMiAxMTZFIDExQUQ7CitENkNCO0Q2Q0I7MTExMiAxMTZFIDExQUU7RDZDQjsxMTEyIDExNkUgMTFBRTsKK0Q2Q0M7RDZDQzsxMTEyIDExNkUgMTFBRjtENkNDOzExMTIgMTE2RSAxMUFGOworRDZDRDtENkNEOzExMTIgMTE2RSAxMUIwO0Q2Q0Q7MTExMiAxMTZFIDExQjA7CitENkNFO0Q2Q0U7MTExMiAxMTZFIDExQjE7RDZDRTsxMTEyIDExNkUgMTFCMTsKK0Q2Q0Y7RDZDRjsxMTEyIDExNkUgMTFCMjtENkNGOzExMTIgMTE2RSAxMUIyOworRDZEMDtENkQwOzExMTIgMTE2RSAxMUIzO0Q2RDA7MTExMiAxMTZFIDExQjM7CitENkQxO0Q2RDE7MTExMiAxMTZFIDExQjQ7RDZEMTsxMTEyIDExNkUgMTFCNDsKK0Q2RDI7RDZEMjsxMTEyIDExNkUgMTFCNTtENkQyOzExMTIgMTE2RSAxMUI1OworRDZEMztENkQzOzExMTIgMTE2RSAxMUI2O0Q2RDM7MTExMiAxMTZFIDExQjY7CitENkQ0O0Q2RDQ7MTExMiAxMTZFIDExQjc7RDZENDsxMTEyIDExNkUgMTFCNzsKK0Q2RDU7RDZENTsxMTEyIDExNkUgMTFCODtENkQ1OzExMTIgMTE2RSAxMUI4OworRDZENjtENkQ2OzExMTIgMTE2RSAxMUI5O0Q2RDY7MTExMiAxMTZFIDExQjk7CitENkQ3O0Q2RDc7MTExMiAxMTZFIDExQkE7RDZENzsxMTEyIDExNkUgMTFCQTsKK0Q2RDg7RDZEODsxMTEyIDExNkUgMTFCQjtENkQ4OzExMTIgMTE2RSAxMUJCOworRDZEOTtENkQ5OzExMTIgMTE2RSAxMUJDO0Q2RDk7MTExMiAxMTZFIDExQkM7CitENkRBO0Q2REE7MTExMiAxMTZFIDExQkQ7RDZEQTsxMTEyIDExNkUgMTFCRDsKK0Q2REI7RDZEQjsxMTEyIDExNkUgMTFCRTtENkRCOzExMTIgMTE2RSAxMUJFOworRDZEQztENkRDOzExMTIgMTE2RSAxMUJGO0Q2REM7MTExMiAxMTZFIDExQkY7CitENkREO0Q2REQ7MTExMiAxMTZFIDExQzA7RDZERDsxMTEyIDExNkUgMTFDMDsKK0Q2REU7RDZERTsxMTEyIDExNkUgMTFDMTtENkRFOzExMTIgMTE2RSAxMUMxOworRDZERjtENkRGOzExMTIgMTE2RSAxMUMyO0Q2REY7MTExMiAxMTZFIDExQzI7CitENkUwO0Q2RTA7MTExMiAxMTZGO0Q2RTA7MTExMiAxMTZGOworRDZFMTtENkUxOzExMTIgMTE2RiAxMUE4O0Q2RTE7MTExMiAxMTZGIDExQTg7CitENkUyO0Q2RTI7MTExMiAxMTZGIDExQTk7RDZFMjsxMTEyIDExNkYgMTFBOTsKK0Q2RTM7RDZFMzsxMTEyIDExNkYgMTFBQTtENkUzOzExMTIgMTE2RiAxMUFBOworRDZFNDtENkU0OzExMTIgMTE2RiAxMUFCO0Q2RTQ7MTExMiAxMTZGIDExQUI7CitENkU1O0Q2RTU7MTExMiAxMTZGIDExQUM7RDZFNTsxMTEyIDExNkYgMTFBQzsKK0Q2RTY7RDZFNjsxMTEyIDExNkYgMTFBRDtENkU2OzExMTIgMTE2RiAxMUFEOworRDZFNztENkU3OzExMTIgMTE2RiAxMUFFO0Q2RTc7MTExMiAxMTZGIDExQUU7CitENkU4O0Q2RTg7MTExMiAxMTZGIDExQUY7RDZFODsxMTEyIDExNkYgMTFBRjsKK0Q2RTk7RDZFOTsxMTEyIDExNkYgMTFCMDtENkU5OzExMTIgMTE2RiAxMUIwOworRDZFQTtENkVBOzExMTIgMTE2RiAxMUIxO0Q2RUE7MTExMiAxMTZGIDExQjE7CitENkVCO0Q2RUI7MTExMiAxMTZGIDExQjI7RDZFQjsxMTEyIDExNkYgMTFCMjsKK0Q2RUM7RDZFQzsxMTEyIDExNkYgMTFCMztENkVDOzExMTIgMTE2RiAxMUIzOworRDZFRDtENkVEOzExMTIgMTE2RiAxMUI0O0Q2RUQ7MTExMiAxMTZGIDExQjQ7CitENkVFO0Q2RUU7MTExMiAxMTZGIDExQjU7RDZFRTsxMTEyIDExNkYgMTFCNTsKK0Q2RUY7RDZFRjsxMTEyIDExNkYgMTFCNjtENkVGOzExMTIgMTE2RiAxMUI2OworRDZGMDtENkYwOzExMTIgMTE2RiAxMUI3O0Q2RjA7MTExMiAxMTZGIDExQjc7CitENkYxO0Q2RjE7MTExMiAxMTZGIDExQjg7RDZGMTsxMTEyIDExNkYgMTFCODsKK0Q2RjI7RDZGMjsxMTEyIDExNkYgMTFCOTtENkYyOzExMTIgMTE2RiAxMUI5OworRDZGMztENkYzOzExMTIgMTE2RiAxMUJBO0Q2RjM7MTExMiAxMTZGIDExQkE7CitENkY0O0Q2RjQ7MTExMiAxMTZGIDExQkI7RDZGNDsxMTEyIDExNkYgMTFCQjsKK0Q2RjU7RDZGNTsxMTEyIDExNkYgMTFCQztENkY1OzExMTIgMTE2RiAxMUJDOworRDZGNjtENkY2OzExMTIgMTE2RiAxMUJEO0Q2RjY7MTExMiAxMTZGIDExQkQ7CitENkY3O0Q2Rjc7MTExMiAxMTZGIDExQkU7RDZGNzsxMTEyIDExNkYgMTFCRTsKK0Q2Rjg7RDZGODsxMTEyIDExNkYgMTFCRjtENkY4OzExMTIgMTE2RiAxMUJGOworRDZGOTtENkY5OzExMTIgMTE2RiAxMUMwO0Q2Rjk7MTExMiAxMTZGIDExQzA7CitENkZBO0Q2RkE7MTExMiAxMTZGIDExQzE7RDZGQTsxMTEyIDExNkYgMTFDMTsKK0Q2RkI7RDZGQjsxMTEyIDExNkYgMTFDMjtENkZCOzExMTIgMTE2RiAxMUMyOworRDZGQztENkZDOzExMTIgMTE3MDtENkZDOzExMTIgMTE3MDsKK0Q2RkQ7RDZGRDsxMTEyIDExNzAgMTFBODtENkZEOzExMTIgMTE3MCAxMUE4OworRDZGRTtENkZFOzExMTIgMTE3MCAxMUE5O0Q2RkU7MTExMiAxMTcwIDExQTk7CitENkZGO0Q2RkY7MTExMiAxMTcwIDExQUE7RDZGRjsxMTEyIDExNzAgMTFBQTsKK0Q3MDA7RDcwMDsxMTEyIDExNzAgMTFBQjtENzAwOzExMTIgMTE3MCAxMUFCOworRDcwMTtENzAxOzExMTIgMTE3MCAxMUFDO0Q3MDE7MTExMiAxMTcwIDExQUM7CitENzAyO0Q3MDI7MTExMiAxMTcwIDExQUQ7RDcwMjsxMTEyIDExNzAgMTFBRDsKK0Q3MDM7RDcwMzsxMTEyIDExNzAgMTFBRTtENzAzOzExMTIgMTE3MCAxMUFFOworRDcwNDtENzA0OzExMTIgMTE3MCAxMUFGO0Q3MDQ7MTExMiAxMTcwIDExQUY7CitENzA1O0Q3MDU7MTExMiAxMTcwIDExQjA7RDcwNTsxMTEyIDExNzAgMTFCMDsKK0Q3MDY7RDcwNjsxMTEyIDExNzAgMTFCMTtENzA2OzExMTIgMTE3MCAxMUIxOworRDcwNztENzA3OzExMTIgMTE3MCAxMUIyO0Q3MDc7MTExMiAxMTcwIDExQjI7CitENzA4O0Q3MDg7MTExMiAxMTcwIDExQjM7RDcwODsxMTEyIDExNzAgMTFCMzsKK0Q3MDk7RDcwOTsxMTEyIDExNzAgMTFCNDtENzA5OzExMTIgMTE3MCAxMUI0OworRDcwQTtENzBBOzExMTIgMTE3MCAxMUI1O0Q3MEE7MTExMiAxMTcwIDExQjU7CitENzBCO0Q3MEI7MTExMiAxMTcwIDExQjY7RDcwQjsxMTEyIDExNzAgMTFCNjsKK0Q3MEM7RDcwQzsxMTEyIDExNzAgMTFCNztENzBDOzExMTIgMTE3MCAxMUI3OworRDcwRDtENzBEOzExMTIgMTE3MCAxMUI4O0Q3MEQ7MTExMiAxMTcwIDExQjg7CitENzBFO0Q3MEU7MTExMiAxMTcwIDExQjk7RDcwRTsxMTEyIDExNzAgMTFCOTsKK0Q3MEY7RDcwRjsxMTEyIDExNzAgMTFCQTtENzBGOzExMTIgMTE3MCAxMUJBOworRDcxMDtENzEwOzExMTIgMTE3MCAxMUJCO0Q3MTA7MTExMiAxMTcwIDExQkI7CitENzExO0Q3MTE7MTExMiAxMTcwIDExQkM7RDcxMTsxMTEyIDExNzAgMTFCQzsKK0Q3MTI7RDcxMjsxMTEyIDExNzAgMTFCRDtENzEyOzExMTIgMTE3MCAxMUJEOworRDcxMztENzEzOzExMTIgMTE3MCAxMUJFO0Q3MTM7MTExMiAxMTcwIDExQkU7CitENzE0O0Q3MTQ7MTExMiAxMTcwIDExQkY7RDcxNDsxMTEyIDExNzAgMTFCRjsKK0Q3MTU7RDcxNTsxMTEyIDExNzAgMTFDMDtENzE1OzExMTIgMTE3MCAxMUMwOworRDcxNjtENzE2OzExMTIgMTE3MCAxMUMxO0Q3MTY7MTExMiAxMTcwIDExQzE7CitENzE3O0Q3MTc7MTExMiAxMTcwIDExQzI7RDcxNzsxMTEyIDExNzAgMTFDMjsKK0Q3MTg7RDcxODsxMTEyIDExNzE7RDcxODsxMTEyIDExNzE7CitENzE5O0Q3MTk7MTExMiAxMTcxIDExQTg7RDcxOTsxMTEyIDExNzEgMTFBODsKK0Q3MUE7RDcxQTsxMTEyIDExNzEgMTFBOTtENzFBOzExMTIgMTE3MSAxMUE5OworRDcxQjtENzFCOzExMTIgMTE3MSAxMUFBO0Q3MUI7MTExMiAxMTcxIDExQUE7CitENzFDO0Q3MUM7MTExMiAxMTcxIDExQUI7RDcxQzsxMTEyIDExNzEgMTFBQjsKK0Q3MUQ7RDcxRDsxMTEyIDExNzEgMTFBQztENzFEOzExMTIgMTE3MSAxMUFDOworRDcxRTtENzFFOzExMTIgMTE3MSAxMUFEO0Q3MUU7MTExMiAxMTcxIDExQUQ7CitENzFGO0Q3MUY7MTExMiAxMTcxIDExQUU7RDcxRjsxMTEyIDExNzEgMTFBRTsKK0Q3MjA7RDcyMDsxMTEyIDExNzEgMTFBRjtENzIwOzExMTIgMTE3MSAxMUFGOworRDcyMTtENzIxOzExMTIgMTE3MSAxMUIwO0Q3MjE7MTExMiAxMTcxIDExQjA7CitENzIyO0Q3MjI7MTExMiAxMTcxIDExQjE7RDcyMjsxMTEyIDExNzEgMTFCMTsKK0Q3MjM7RDcyMzsxMTEyIDExNzEgMTFCMjtENzIzOzExMTIgMTE3MSAxMUIyOworRDcyNDtENzI0OzExMTIgMTE3MSAxMUIzO0Q3MjQ7MTExMiAxMTcxIDExQjM7CitENzI1O0Q3MjU7MTExMiAxMTcxIDExQjQ7RDcyNTsxMTEyIDExNzEgMTFCNDsKK0Q3MjY7RDcyNjsxMTEyIDExNzEgMTFCNTtENzI2OzExMTIgMTE3MSAxMUI1OworRDcyNztENzI3OzExMTIgMTE3MSAxMUI2O0Q3Mjc7MTExMiAxMTcxIDExQjY7CitENzI4O0Q3Mjg7MTExMiAxMTcxIDExQjc7RDcyODsxMTEyIDExNzEgMTFCNzsKK0Q3Mjk7RDcyOTsxMTEyIDExNzEgMTFCODtENzI5OzExMTIgMTE3MSAxMUI4OworRDcyQTtENzJBOzExMTIgMTE3MSAxMUI5O0Q3MkE7MTExMiAxMTcxIDExQjk7CitENzJCO0Q3MkI7MTExMiAxMTcxIDExQkE7RDcyQjsxMTEyIDExNzEgMTFCQTsKK0Q3MkM7RDcyQzsxMTEyIDExNzEgMTFCQjtENzJDOzExMTIgMTE3MSAxMUJCOworRDcyRDtENzJEOzExMTIgMTE3MSAxMUJDO0Q3MkQ7MTExMiAxMTcxIDExQkM7CitENzJFO0Q3MkU7MTExMiAxMTcxIDExQkQ7RDcyRTsxMTEyIDExNzEgMTFCRDsKK0Q3MkY7RDcyRjsxMTEyIDExNzEgMTFCRTtENzJGOzExMTIgMTE3MSAxMUJFOworRDczMDtENzMwOzExMTIgMTE3MSAxMUJGO0Q3MzA7MTExMiAxMTcxIDExQkY7CitENzMxO0Q3MzE7MTExMiAxMTcxIDExQzA7RDczMTsxMTEyIDExNzEgMTFDMDsKK0Q3MzI7RDczMjsxMTEyIDExNzEgMTFDMTtENzMyOzExMTIgMTE3MSAxMUMxOworRDczMztENzMzOzExMTIgMTE3MSAxMUMyO0Q3MzM7MTExMiAxMTcxIDExQzI7CitENzM0O0Q3MzQ7MTExMiAxMTcyO0Q3MzQ7MTExMiAxMTcyOworRDczNTtENzM1OzExMTIgMTE3MiAxMUE4O0Q3MzU7MTExMiAxMTcyIDExQTg7CitENzM2O0Q3MzY7MTExMiAxMTcyIDExQTk7RDczNjsxMTEyIDExNzIgMTFBOTsKK0Q3Mzc7RDczNzsxMTEyIDExNzIgMTFBQTtENzM3OzExMTIgMTE3MiAxMUFBOworRDczODtENzM4OzExMTIgMTE3MiAxMUFCO0Q3Mzg7MTExMiAxMTcyIDExQUI7CitENzM5O0Q3Mzk7MTExMiAxMTcyIDExQUM7RDczOTsxMTEyIDExNzIgMTFBQzsKK0Q3M0E7RDczQTsxMTEyIDExNzIgMTFBRDtENzNBOzExMTIgMTE3MiAxMUFEOworRDczQjtENzNCOzExMTIgMTE3MiAxMUFFO0Q3M0I7MTExMiAxMTcyIDExQUU7CitENzNDO0Q3M0M7MTExMiAxMTcyIDExQUY7RDczQzsxMTEyIDExNzIgMTFBRjsKK0Q3M0Q7RDczRDsxMTEyIDExNzIgMTFCMDtENzNEOzExMTIgMTE3MiAxMUIwOworRDczRTtENzNFOzExMTIgMTE3MiAxMUIxO0Q3M0U7MTExMiAxMTcyIDExQjE7CitENzNGO0Q3M0Y7MTExMiAxMTcyIDExQjI7RDczRjsxMTEyIDExNzIgMTFCMjsKK0Q3NDA7RDc0MDsxMTEyIDExNzIgMTFCMztENzQwOzExMTIgMTE3MiAxMUIzOworRDc0MTtENzQxOzExMTIgMTE3MiAxMUI0O0Q3NDE7MTExMiAxMTcyIDExQjQ7CitENzQyO0Q3NDI7MTExMiAxMTcyIDExQjU7RDc0MjsxMTEyIDExNzIgMTFCNTsKK0Q3NDM7RDc0MzsxMTEyIDExNzIgMTFCNjtENzQzOzExMTIgMTE3MiAxMUI2OworRDc0NDtENzQ0OzExMTIgMTE3MiAxMUI3O0Q3NDQ7MTExMiAxMTcyIDExQjc7CitENzQ1O0Q3NDU7MTExMiAxMTcyIDExQjg7RDc0NTsxMTEyIDExNzIgMTFCODsKK0Q3NDY7RDc0NjsxMTEyIDExNzIgMTFCOTtENzQ2OzExMTIgMTE3MiAxMUI5OworRDc0NztENzQ3OzExMTIgMTE3MiAxMUJBO0Q3NDc7MTExMiAxMTcyIDExQkE7CitENzQ4O0Q3NDg7MTExMiAxMTcyIDExQkI7RDc0ODsxMTEyIDExNzIgMTFCQjsKK0Q3NDk7RDc0OTsxMTEyIDExNzIgMTFCQztENzQ5OzExMTIgMTE3MiAxMUJDOworRDc0QTtENzRBOzExMTIgMTE3MiAxMUJEO0Q3NEE7MTExMiAxMTcyIDExQkQ7CitENzRCO0Q3NEI7MTExMiAxMTcyIDExQkU7RDc0QjsxMTEyIDExNzIgMTFCRTsKK0Q3NEM7RDc0QzsxMTEyIDExNzIgMTFCRjtENzRDOzExMTIgMTE3MiAxMUJGOworRDc0RDtENzREOzExMTIgMTE3MiAxMUMwO0Q3NEQ7MTExMiAxMTcyIDExQzA7CitENzRFO0Q3NEU7MTExMiAxMTcyIDExQzE7RDc0RTsxMTEyIDExNzIgMTFDMTsKK0Q3NEY7RDc0RjsxMTEyIDExNzIgMTFDMjtENzRGOzExMTIgMTE3MiAxMUMyOworRDc1MDtENzUwOzExMTIgMTE3MztENzUwOzExMTIgMTE3MzsKK0Q3NTE7RDc1MTsxMTEyIDExNzMgMTFBODtENzUxOzExMTIgMTE3MyAxMUE4OworRDc1MjtENzUyOzExMTIgMTE3MyAxMUE5O0Q3NTI7MTExMiAxMTczIDExQTk7CitENzUzO0Q3NTM7MTExMiAxMTczIDExQUE7RDc1MzsxMTEyIDExNzMgMTFBQTsKK0Q3NTQ7RDc1NDsxMTEyIDExNzMgMTFBQjtENzU0OzExMTIgMTE3MyAxMUFCOworRDc1NTtENzU1OzExMTIgMTE3MyAxMUFDO0Q3NTU7MTExMiAxMTczIDExQUM7CitENzU2O0Q3NTY7MTExMiAxMTczIDExQUQ7RDc1NjsxMTEyIDExNzMgMTFBRDsKK0Q3NTc7RDc1NzsxMTEyIDExNzMgMTFBRTtENzU3OzExMTIgMTE3MyAxMUFFOworRDc1ODtENzU4OzExMTIgMTE3MyAxMUFGO0Q3NTg7MTExMiAxMTczIDExQUY7CitENzU5O0Q3NTk7MTExMiAxMTczIDExQjA7RDc1OTsxMTEyIDExNzMgMTFCMDsKK0Q3NUE7RDc1QTsxMTEyIDExNzMgMTFCMTtENzVBOzExMTIgMTE3MyAxMUIxOworRDc1QjtENzVCOzExMTIgMTE3MyAxMUIyO0Q3NUI7MTExMiAxMTczIDExQjI7CitENzVDO0Q3NUM7MTExMiAxMTczIDExQjM7RDc1QzsxMTEyIDExNzMgMTFCMzsKK0Q3NUQ7RDc1RDsxMTEyIDExNzMgMTFCNDtENzVEOzExMTIgMTE3MyAxMUI0OworRDc1RTtENzVFOzExMTIgMTE3MyAxMUI1O0Q3NUU7MTExMiAxMTczIDExQjU7CitENzVGO0Q3NUY7MTExMiAxMTczIDExQjY7RDc1RjsxMTEyIDExNzMgMTFCNjsKK0Q3NjA7RDc2MDsxMTEyIDExNzMgMTFCNztENzYwOzExMTIgMTE3MyAxMUI3OworRDc2MTtENzYxOzExMTIgMTE3MyAxMUI4O0Q3NjE7MTExMiAxMTczIDExQjg7CitENzYyO0Q3NjI7MTExMiAxMTczIDExQjk7RDc2MjsxMTEyIDExNzMgMTFCOTsKK0Q3NjM7RDc2MzsxMTEyIDExNzMgMTFCQTtENzYzOzExMTIgMTE3MyAxMUJBOworRDc2NDtENzY0OzExMTIgMTE3MyAxMUJCO0Q3NjQ7MTExMiAxMTczIDExQkI7CitENzY1O0Q3NjU7MTExMiAxMTczIDExQkM7RDc2NTsxMTEyIDExNzMgMTFCQzsKK0Q3NjY7RDc2NjsxMTEyIDExNzMgMTFCRDtENzY2OzExMTIgMTE3MyAxMUJEOworRDc2NztENzY3OzExMTIgMTE3MyAxMUJFO0Q3Njc7MTExMiAxMTczIDExQkU7CitENzY4O0Q3Njg7MTExMiAxMTczIDExQkY7RDc2ODsxMTEyIDExNzMgMTFCRjsKK0Q3Njk7RDc2OTsxMTEyIDExNzMgMTFDMDtENzY5OzExMTIgMTE3MyAxMUMwOworRDc2QTtENzZBOzExMTIgMTE3MyAxMUMxO0Q3NkE7MTExMiAxMTczIDExQzE7CitENzZCO0Q3NkI7MTExMiAxMTczIDExQzI7RDc2QjsxMTEyIDExNzMgMTFDMjsKK0Q3NkM7RDc2QzsxMTEyIDExNzQ7RDc2QzsxMTEyIDExNzQ7CitENzZEO0Q3NkQ7MTExMiAxMTc0IDExQTg7RDc2RDsxMTEyIDExNzQgMTFBODsKK0Q3NkU7RDc2RTsxMTEyIDExNzQgMTFBOTtENzZFOzExMTIgMTE3NCAxMUE5OworRDc2RjtENzZGOzExMTIgMTE3NCAxMUFBO0Q3NkY7MTExMiAxMTc0IDExQUE7CitENzcwO0Q3NzA7MTExMiAxMTc0IDExQUI7RDc3MDsxMTEyIDExNzQgMTFBQjsKK0Q3NzE7RDc3MTsxMTEyIDExNzQgMTFBQztENzcxOzExMTIgMTE3NCAxMUFDOworRDc3MjtENzcyOzExMTIgMTE3NCAxMUFEO0Q3NzI7MTExMiAxMTc0IDExQUQ7CitENzczO0Q3NzM7MTExMiAxMTc0IDExQUU7RDc3MzsxMTEyIDExNzQgMTFBRTsKK0Q3NzQ7RDc3NDsxMTEyIDExNzQgMTFBRjtENzc0OzExMTIgMTE3NCAxMUFGOworRDc3NTtENzc1OzExMTIgMTE3NCAxMUIwO0Q3NzU7MTExMiAxMTc0IDExQjA7CitENzc2O0Q3NzY7MTExMiAxMTc0IDExQjE7RDc3NjsxMTEyIDExNzQgMTFCMTsKK0Q3Nzc7RDc3NzsxMTEyIDExNzQgMTFCMjtENzc3OzExMTIgMTE3NCAxMUIyOworRDc3ODtENzc4OzExMTIgMTE3NCAxMUIzO0Q3Nzg7MTExMiAxMTc0IDExQjM7CitENzc5O0Q3Nzk7MTExMiAxMTc0IDExQjQ7RDc3OTsxMTEyIDExNzQgMTFCNDsKK0Q3N0E7RDc3QTsxMTEyIDExNzQgMTFCNTtENzdBOzExMTIgMTE3NCAxMUI1OworRDc3QjtENzdCOzExMTIgMTE3NCAxMUI2O0Q3N0I7MTExMiAxMTc0IDExQjY7CitENzdDO0Q3N0M7MTExMiAxMTc0IDExQjc7RDc3QzsxMTEyIDExNzQgMTFCNzsKK0Q3N0Q7RDc3RDsxMTEyIDExNzQgMTFCODtENzdEOzExMTIgMTE3NCAxMUI4OworRDc3RTtENzdFOzExMTIgMTE3NCAxMUI5O0Q3N0U7MTExMiAxMTc0IDExQjk7CitENzdGO0Q3N0Y7MTExMiAxMTc0IDExQkE7RDc3RjsxMTEyIDExNzQgMTFCQTsKK0Q3ODA7RDc4MDsxMTEyIDExNzQgMTFCQjtENzgwOzExMTIgMTE3NCAxMUJCOworRDc4MTtENzgxOzExMTIgMTE3NCAxMUJDO0Q3ODE7MTExMiAxMTc0IDExQkM7CitENzgyO0Q3ODI7MTExMiAxMTc0IDExQkQ7RDc4MjsxMTEyIDExNzQgMTFCRDsKK0Q3ODM7RDc4MzsxMTEyIDExNzQgMTFCRTtENzgzOzExMTIgMTE3NCAxMUJFOworRDc4NDtENzg0OzExMTIgMTE3NCAxMUJGO0Q3ODQ7MTExMiAxMTc0IDExQkY7CitENzg1O0Q3ODU7MTExMiAxMTc0IDExQzA7RDc4NTsxMTEyIDExNzQgMTFDMDsKK0Q3ODY7RDc4NjsxMTEyIDExNzQgMTFDMTtENzg2OzExMTIgMTE3NCAxMUMxOworRDc4NztENzg3OzExMTIgMTE3NCAxMUMyO0Q3ODc7MTExMiAxMTc0IDExQzI7CitENzg4O0Q3ODg7MTExMiAxMTc1O0Q3ODg7MTExMiAxMTc1OworRDc4OTtENzg5OzExMTIgMTE3NSAxMUE4O0Q3ODk7MTExMiAxMTc1IDExQTg7CitENzhBO0Q3OEE7MTExMiAxMTc1IDExQTk7RDc4QTsxMTEyIDExNzUgMTFBOTsKK0Q3OEI7RDc4QjsxMTEyIDExNzUgMTFBQTtENzhCOzExMTIgMTE3NSAxMUFBOworRDc4QztENzhDOzExMTIgMTE3NSAxMUFCO0Q3OEM7MTExMiAxMTc1IDExQUI7CitENzhEO0Q3OEQ7MTExMiAxMTc1IDExQUM7RDc4RDsxMTEyIDExNzUgMTFBQzsKK0Q3OEU7RDc4RTsxMTEyIDExNzUgMTFBRDtENzhFOzExMTIgMTE3NSAxMUFEOworRDc4RjtENzhGOzExMTIgMTE3NSAxMUFFO0Q3OEY7MTExMiAxMTc1IDExQUU7CitENzkwO0Q3OTA7MTExMiAxMTc1IDExQUY7RDc5MDsxMTEyIDExNzUgMTFBRjsKK0Q3OTE7RDc5MTsxMTEyIDExNzUgMTFCMDtENzkxOzExMTIgMTE3NSAxMUIwOworRDc5MjtENzkyOzExMTIgMTE3NSAxMUIxO0Q3OTI7MTExMiAxMTc1IDExQjE7CitENzkzO0Q3OTM7MTExMiAxMTc1IDExQjI7RDc5MzsxMTEyIDExNzUgMTFCMjsKK0Q3OTQ7RDc5NDsxMTEyIDExNzUgMTFCMztENzk0OzExMTIgMTE3NSAxMUIzOworRDc5NTtENzk1OzExMTIgMTE3NSAxMUI0O0Q3OTU7MTExMiAxMTc1IDExQjQ7CitENzk2O0Q3OTY7MTExMiAxMTc1IDExQjU7RDc5NjsxMTEyIDExNzUgMTFCNTsKK0Q3OTc7RDc5NzsxMTEyIDExNzUgMTFCNjtENzk3OzExMTIgMTE3NSAxMUI2OworRDc5ODtENzk4OzExMTIgMTE3NSAxMUI3O0Q3OTg7MTExMiAxMTc1IDExQjc7CitENzk5O0Q3OTk7MTExMiAxMTc1IDExQjg7RDc5OTsxMTEyIDExNzUgMTFCODsKK0Q3OUE7RDc5QTsxMTEyIDExNzUgMTFCOTtENzlBOzExMTIgMTE3NSAxMUI5OworRDc5QjtENzlCOzExMTIgMTE3NSAxMUJBO0Q3OUI7MTExMiAxMTc1IDExQkE7CitENzlDO0Q3OUM7MTExMiAxMTc1IDExQkI7RDc5QzsxMTEyIDExNzUgMTFCQjsKK0Q3OUQ7RDc5RDsxMTEyIDExNzUgMTFCQztENzlEOzExMTIgMTE3NSAxMUJDOworRDc5RTtENzlFOzExMTIgMTE3NSAxMUJEO0Q3OUU7MTExMiAxMTc1IDExQkQ7CitENzlGO0Q3OUY7MTExMiAxMTc1IDExQkU7RDc5RjsxMTEyIDExNzUgMTFCRTsKK0Q3QTA7RDdBMDsxMTEyIDExNzUgMTFCRjtEN0EwOzExMTIgMTE3NSAxMUJGOworRDdBMTtEN0ExOzExMTIgMTE3NSAxMUMwO0Q3QTE7MTExMiAxMTc1IDExQzA7CitEN0EyO0Q3QTI7MTExMiAxMTc1IDExQzE7RDdBMjsxMTEyIDExNzUgMTFDMTsKK0Q3QTM7RDdBMzsxMTEyIDExNzUgMTFDMjtEN0EzOzExMTIgMTE3NSAxMUMyOworRjkwMDs4QzQ4OzhDNDg7OEM0ODs4QzQ4OworRjkwMTs2NkY0OzY2RjQ7NjZGNDs2NkY0OworRjkwMjs4RUNBOzhFQ0E7OEVDQTs4RUNBOworRjkwMzs4Q0M4OzhDQzg7OENDODs4Q0M4OworRjkwNDs2RUQxOzZFRDE7NkVEMTs2RUQxOworRjkwNTs0RTMyOzRFMzI7NEUzMjs0RTMyOworRjkwNjs1M0U1OzUzRTU7NTNFNTs1M0U1OworRjkwNzs5RjlDOzlGOUM7OUY5Qzs5RjlDOworRjkwODs5RjlDOzlGOUM7OUY5Qzs5RjlDOworRjkwOTs1OTUxOzU5NTE7NTk1MTs1OTUxOworRjkwQTs5MUQxOzkxRDE7OTFEMTs5MUQxOworRjkwQjs1NTg3OzU1ODc7NTU4Nzs1NTg3OworRjkwQzs1OTQ4OzU5NDg7NTk0ODs1OTQ4OworRjkwRDs2MUY2OzYxRjY7NjFGNjs2MUY2OworRjkwRTs3NjY5Ozc2Njk7NzY2OTs3NjY5OworRjkwRjs3Rjg1OzdGODU7N0Y4NTs3Rjg1OworRjkxMDs4NjNGOzg2M0Y7ODYzRjs4NjNGOworRjkxMTs4N0JBOzg3QkE7ODdCQTs4N0JBOworRjkxMjs4OEY4Ozg4Rjg7ODhGODs4OEY4OworRjkxMzs5MDhGOzkwOEY7OTA4Rjs5MDhGOworRjkxNDs2QTAyOzZBMDI7NkEwMjs2QTAyOworRjkxNTs2RDFCOzZEMUI7NkQxQjs2RDFCOworRjkxNjs3MEQ5OzcwRDk7NzBEOTs3MEQ5OworRjkxNzs3M0RFOzczREU7NzNERTs3M0RFOworRjkxODs4NDNEOzg0M0Q7ODQzRDs4NDNEOworRjkxOTs5MTZBOzkxNkE7OTE2QTs5MTZBOworRjkxQTs5OUYxOzk5RjE7OTlGMTs5OUYxOworRjkxQjs0RTgyOzRFODI7NEU4Mjs0RTgyOworRjkxQzs1Mzc1OzUzNzU7NTM3NTs1Mzc1OworRjkxRDs2QjA0OzZCMDQ7NkIwNDs2QjA0OworRjkxRTs3MjFCOzcyMUI7NzIxQjs3MjFCOworRjkxRjs4NjJEOzg2MkQ7ODYyRDs4NjJEOworRjkyMDs5RTFFOzlFMUU7OUUxRTs5RTFFOworRjkyMTs1RDUwOzVENTA7NUQ1MDs1RDUwOworRjkyMjs2RkVCOzZGRUI7NkZFQjs2RkVCOworRjkyMzs4NUNEOzg1Q0Q7ODVDRDs4NUNEOworRjkyNDs4OTY0Ozg5NjQ7ODk2NDs4OTY0OworRjkyNTs2MkM5OzYyQzk7NjJDOTs2MkM5OworRjkyNjs4MUQ4OzgxRDg7ODFEODs4MUQ4OworRjkyNzs4ODFGOzg4MUY7ODgxRjs4ODFGOworRjkyODs1RUNBOzVFQ0E7NUVDQTs1RUNBOworRjkyOTs2NzE3OzY3MTc7NjcxNzs2NzE3OworRjkyQTs2RDZBOzZENkE7NkQ2QTs2RDZBOworRjkyQjs3MkZDOzcyRkM7NzJGQzs3MkZDOworRjkyQzs5MENFOzkwQ0U7OTBDRTs5MENFOworRjkyRDs0Rjg2OzRGODY7NEY4Njs0Rjg2OworRjkyRTs1MUI3OzUxQjc7NTFCNzs1MUI3OworRjkyRjs1MkRFOzUyREU7NTJERTs1MkRFOworRjkzMDs2NEM0OzY0QzQ7NjRDNDs2NEM0OworRjkzMTs2QUQzOzZBRDM7NkFEMzs2QUQzOworRjkzMjs3MjEwOzcyMTA7NzIxMDs3MjEwOworRjkzMzs3NkU3Ozc2RTc7NzZFNzs3NkU3OworRjkzNDs4MDAxOzgwMDE7ODAwMTs4MDAxOworRjkzNTs4NjA2Ozg2MDY7ODYwNjs4NjA2OworRjkzNjs4NjVDOzg2NUM7ODY1Qzs4NjVDOworRjkzNzs4REVGOzhERUY7OERFRjs4REVGOworRjkzODs5NzMyOzk3MzI7OTczMjs5NzMyOworRjkzOTs5QjZGOzlCNkY7OUI2Rjs5QjZGOworRjkzQTs5REZBOzlERkE7OURGQTs5REZBOworRjkzQjs3ODhDOzc4OEM7Nzg4Qzs3ODhDOworRjkzQzs3OTdGOzc5N0Y7Nzk3Rjs3OTdGOworRjkzRDs3REEwOzdEQTA7N0RBMDs3REEwOworRjkzRTs4M0M5OzgzQzk7ODNDOTs4M0M5OworRjkzRjs5MzA0OzkzMDQ7OTMwNDs5MzA0OworRjk0MDs5RTdGOzlFN0Y7OUU3Rjs5RTdGOworRjk0MTs4QUQ2OzhBRDY7OEFENjs4QUQ2OworRjk0Mjs1OERGOzU4REY7NThERjs1OERGOworRjk0Mzs1RjA0OzVGMDQ7NUYwNDs1RjA0OworRjk0NDs3QzYwOzdDNjA7N0M2MDs3QzYwOworRjk0NTs4MDdFOzgwN0U7ODA3RTs4MDdFOworRjk0Njs3MjYyOzcyNjI7NzI2Mjs3MjYyOworRjk0Nzs3OENBOzc4Q0E7NzhDQTs3OENBOworRjk0ODs4Q0MyOzhDQzI7OENDMjs4Q0MyOworRjk0OTs5NkY3Ozk2Rjc7OTZGNzs5NkY3OworRjk0QTs1OEQ4OzU4RDg7NThEODs1OEQ4OworRjk0Qjs1QzYyOzVDNjI7NUM2Mjs1QzYyOworRjk0Qzs2QTEzOzZBMTM7NkExMzs2QTEzOworRjk0RDs2RERBOzZEREE7NkREQTs2RERBOworRjk0RTs2RjBGOzZGMEY7NkYwRjs2RjBGOworRjk0Rjs3RDJGOzdEMkY7N0QyRjs3RDJGOworRjk1MDs3RTM3OzdFMzc7N0UzNzs3RTM3OworRjk1MTs5NjRCOzk2NEI7OTY0Qjs5NjRCOworRjk1Mjs1MkQyOzUyRDI7NTJEMjs1MkQyOworRjk1Mzs4MDhCOzgwOEI7ODA4Qjs4MDhCOworRjk1NDs1MURDOzUxREM7NTFEQzs1MURDOworRjk1NTs1MUNDOzUxQ0M7NTFDQzs1MUNDOworRjk1Njs3QTFDOzdBMUM7N0ExQzs3QTFDOworRjk1Nzs3REJFOzdEQkU7N0RCRTs3REJFOworRjk1ODs4M0YxOzgzRjE7ODNGMTs4M0YxOworRjk1OTs5Njc1Ozk2NzU7OTY3NTs5Njc1OworRjk1QTs4QjgwOzhCODA7OEI4MDs4QjgwOworRjk1Qjs2MkNGOzYyQ0Y7NjJDRjs2MkNGOworRjk1Qzs2QTAyOzZBMDI7NkEwMjs2QTAyOworRjk1RDs4QUZFOzhBRkU7OEFGRTs4QUZFOworRjk1RTs0RTM5OzRFMzk7NEUzOTs0RTM5OworRjk1Rjs1QkU3OzVCRTc7NUJFNzs1QkU3OworRjk2MDs2MDEyOzYwMTI7NjAxMjs2MDEyOworRjk2MTs3Mzg3OzczODc7NzM4Nzs3Mzg3OworRjk2Mjs3NTcwOzc1NzA7NzU3MDs3NTcwOworRjk2Mzs1MzE3OzUzMTc7NTMxNzs1MzE3OworRjk2NDs3OEZCOzc4RkI7NzhGQjs3OEZCOworRjk2NTs0RkJGOzRGQkY7NEZCRjs0RkJGOworRjk2Njs1RkE5OzVGQTk7NUZBOTs1RkE5OworRjk2Nzs0RTBEOzRFMEQ7NEUwRDs0RTBEOworRjk2ODs2Q0NDOzZDQ0M7NkNDQzs2Q0NDOworRjk2OTs2NTc4OzY1Nzg7NjU3ODs2NTc4OworRjk2QTs3RDIyOzdEMjI7N0QyMjs3RDIyOworRjk2Qjs1M0MzOzUzQzM7NTNDMzs1M0MzOworRjk2Qzs1ODVFOzU4NUU7NTg1RTs1ODVFOworRjk2RDs3NzAxOzc3MDE7NzcwMTs3NzAxOworRjk2RTs4NDQ5Ozg0NDk7ODQ0OTs4NDQ5OworRjk2Rjs4QUFBOzhBQUE7OEFBQTs4QUFBOworRjk3MDs2QkJBOzZCQkE7NkJCQTs2QkJBOworRjk3MTs4RkIwOzhGQjA7OEZCMDs4RkIwOworRjk3Mjs2Qzg4OzZDODg7NkM4ODs2Qzg4OworRjk3Mzs2MkZFOzYyRkU7NjJGRTs2MkZFOworRjk3NDs4MkU1OzgyRTU7ODJFNTs4MkU1OworRjk3NTs2M0EwOzYzQTA7NjNBMDs2M0EwOworRjk3Njs3NTY1Ozc1NjU7NzU2NTs3NTY1OworRjk3Nzs0RUFFOzRFQUU7NEVBRTs0RUFFOworRjk3ODs1MTY5OzUxNjk7NTE2OTs1MTY5OworRjk3OTs1MUM5OzUxQzk7NTFDOTs1MUM5OworRjk3QTs2ODgxOzY4ODE7Njg4MTs2ODgxOworRjk3Qjs3Q0U3OzdDRTc7N0NFNzs3Q0U3OworRjk3Qzs4MjZGOzgyNkY7ODI2Rjs4MjZGOworRjk3RDs4QUQyOzhBRDI7OEFEMjs4QUQyOworRjk3RTs5MUNGOzkxQ0Y7OTFDRjs5MUNGOworRjk3Rjs1MkY1OzUyRjU7NTJGNTs1MkY1OworRjk4MDs1NDQyOzU0NDI7NTQ0Mjs1NDQyOworRjk4MTs1OTczOzU5NzM7NTk3Mzs1OTczOworRjk4Mjs1RUVDOzVFRUM7NUVFQzs1RUVDOworRjk4Mzs2NUM1OzY1QzU7NjVDNTs2NUM1OworRjk4NDs2RkZFOzZGRkU7NkZGRTs2RkZFOworRjk4NTs3OTJBOzc5MkE7NzkyQTs3OTJBOworRjk4Njs5NUFEOzk1QUQ7OTVBRDs5NUFEOworRjk4Nzs5QTZBOzlBNkE7OUE2QTs5QTZBOworRjk4ODs5RTk3OzlFOTc7OUU5Nzs5RTk3OworRjk4OTs5RUNFOzlFQ0U7OUVDRTs5RUNFOworRjk4QTs1MjlCOzUyOUI7NTI5Qjs1MjlCOworRjk4Qjs2NkM2OzY2QzY7NjZDNjs2NkM2OworRjk4Qzs2Qjc3OzZCNzc7NkI3Nzs2Qjc3OworRjk4RDs4RjYyOzhGNjI7OEY2Mjs4RjYyOworRjk4RTs1RTc0OzVFNzQ7NUU3NDs1RTc0OworRjk4Rjs2MTkwOzYxOTA7NjE5MDs2MTkwOworRjk5MDs2MjAwOzYyMDA7NjIwMDs2MjAwOworRjk5MTs2NDlBOzY0OUE7NjQ5QTs2NDlBOworRjk5Mjs2RjIzOzZGMjM7NkYyMzs2RjIzOworRjk5Mzs3MTQ5OzcxNDk7NzE0OTs3MTQ5OworRjk5NDs3NDg5Ozc0ODk7NzQ4OTs3NDg5OworRjk5NTs3OUNBOzc5Q0E7NzlDQTs3OUNBOworRjk5Njs3REY0OzdERjQ7N0RGNDs3REY0OworRjk5Nzs4MDZGOzgwNkY7ODA2Rjs4MDZGOworRjk5ODs4RjI2OzhGMjY7OEYyNjs4RjI2OworRjk5OTs4NEVFOzg0RUU7ODRFRTs4NEVFOworRjk5QTs5MDIzOzkwMjM7OTAyMzs5MDIzOworRjk5Qjs5MzRBOzkzNEE7OTM0QTs5MzRBOworRjk5Qzs1MjE3OzUyMTc7NTIxNzs1MjE3OworRjk5RDs1MkEzOzUyQTM7NTJBMzs1MkEzOworRjk5RTs1NEJEOzU0QkQ7NTRCRDs1NEJEOworRjk5Rjs3MEM4OzcwQzg7NzBDODs3MEM4OworRjlBMDs4OEMyOzg4QzI7ODhDMjs4OEMyOworRjlBMTs4QUFBOzhBQUE7OEFBQTs4QUFBOworRjlBMjs1RUM5OzVFQzk7NUVDOTs1RUM5OworRjlBMzs1RkY1OzVGRjU7NUZGNTs1RkY1OworRjlBNDs2MzdCOzYzN0I7NjM3Qjs2MzdCOworRjlBNTs2QkFFOzZCQUU7NkJBRTs2QkFFOworRjlBNjs3QzNFOzdDM0U7N0MzRTs3QzNFOworRjlBNzs3Mzc1OzczNzU7NzM3NTs3Mzc1OworRjlBODs0RUU0OzRFRTQ7NEVFNDs0RUU0OworRjlBOTs1NkY5OzU2Rjk7NTZGOTs1NkY5OworRjlBQTs1QkU3OzVCRTc7NUJFNzs1QkU3OworRjlBQjs1REJBOzVEQkE7NURCQTs1REJBOworRjlBQzs2MDFDOzYwMUM7NjAxQzs2MDFDOworRjlBRDs3M0IyOzczQjI7NzNCMjs3M0IyOworRjlBRTs3NDY5Ozc0Njk7NzQ2OTs3NDY5OworRjlBRjs3RjlBOzdGOUE7N0Y5QTs3RjlBOworRjlCMDs4MDQ2OzgwNDY7ODA0Njs4MDQ2OworRjlCMTs5MjM0OzkyMzQ7OTIzNDs5MjM0OworRjlCMjs5NkY2Ozk2RjY7OTZGNjs5NkY2OworRjlCMzs5NzQ4Ozk3NDg7OTc0ODs5NzQ4OworRjlCNDs5ODE4Ozk4MTg7OTgxODs5ODE4OworRjlCNTs0RjhCOzRGOEI7NEY4Qjs0RjhCOworRjlCNjs3OUFFOzc5QUU7NzlBRTs3OUFFOworRjlCNzs5MUI0OzkxQjQ7OTFCNDs5MUI0OworRjlCODs5NkI4Ozk2Qjg7OTZCODs5NkI4OworRjlCOTs2MEUxOzYwRTE7NjBFMTs2MEUxOworRjlCQTs0RTg2OzRFODY7NEU4Njs0RTg2OworRjlCQjs1MERBOzUwREE7NTBEQTs1MERBOworRjlCQzs1QkVFOzVCRUU7NUJFRTs1QkVFOworRjlCRDs1QzNGOzVDM0Y7NUMzRjs1QzNGOworRjlCRTs2NTk5OzY1OTk7NjU5OTs2NTk5OworRjlCRjs2QTAyOzZBMDI7NkEwMjs2QTAyOworRjlDMDs3MUNFOzcxQ0U7NzFDRTs3MUNFOworRjlDMTs3NjQyOzc2NDI7NzY0Mjs3NjQyOworRjlDMjs4NEZDOzg0RkM7ODRGQzs4NEZDOworRjlDMzs5MDdDOzkwN0M7OTA3Qzs5MDdDOworRjlDNDs5RjhEOzlGOEQ7OUY4RDs5RjhEOworRjlDNTs2Njg4OzY2ODg7NjY4ODs2Njg4OworRjlDNjs5NjJFOzk2MkU7OTYyRTs5NjJFOworRjlDNzs1Mjg5OzUyODk7NTI4OTs1Mjg5OworRjlDODs2NzdCOzY3N0I7Njc3Qjs2NzdCOworRjlDOTs2N0YzOzY3RjM7NjdGMzs2N0YzOworRjlDQTs2RDQxOzZENDE7NkQ0MTs2RDQxOworRjlDQjs2RTlDOzZFOUM7NkU5Qzs2RTlDOworRjlDQzs3NDA5Ozc0MDk7NzQwOTs3NDA5OworRjlDRDs3NTU5Ozc1NTk7NzU1OTs3NTU5OworRjlDRTs3ODZCOzc4NkI7Nzg2Qjs3ODZCOworRjlDRjs3RDEwOzdEMTA7N0QxMDs3RDEwOworRjlEMDs5ODVFOzk4NUU7OTg1RTs5ODVFOworRjlEMTs1MTZEOzUxNkQ7NTE2RDs1MTZEOworRjlEMjs2MjJFOzYyMkU7NjIyRTs2MjJFOworRjlEMzs5Njc4Ozk2Nzg7OTY3ODs5Njc4OworRjlENDs1MDJCOzUwMkI7NTAyQjs1MDJCOworRjlENTs1RDE5OzVEMTk7NUQxOTs1RDE5OworRjlENjs2REVBOzZERUE7NkRFQTs2REVBOworRjlENzs4RjJBOzhGMkE7OEYyQTs4RjJBOworRjlEODs1RjhCOzVGOEI7NUY4Qjs1RjhCOworRjlEOTs2MTQ0OzYxNDQ7NjE0NDs2MTQ0OworRjlEQTs2ODE3OzY4MTc7NjgxNzs2ODE3OworRjlEQjs3Mzg3OzczODc7NzM4Nzs3Mzg3OworRjlEQzs5Njg2Ozk2ODY7OTY4Njs5Njg2OworRjlERDs1MjI5OzUyMjk7NTIyOTs1MjI5OworRjlERTs1NDBGOzU0MEY7NTQwRjs1NDBGOworRjlERjs1QzY1OzVDNjU7NUM2NTs1QzY1OworRjlFMDs2NjEzOzY2MTM7NjYxMzs2NjEzOworRjlFMTs2NzRFOzY3NEU7Njc0RTs2NzRFOworRjlFMjs2OEE4OzY4QTg7NjhBODs2OEE4OworRjlFMzs2Q0U1OzZDRTU7NkNFNTs2Q0U1OworRjlFNDs3NDA2Ozc0MDY7NzQwNjs3NDA2OworRjlFNTs3NUUyOzc1RTI7NzVFMjs3NUUyOworRjlFNjs3Rjc5OzdGNzk7N0Y3OTs3Rjc5OworRjlFNzs4OENGOzg4Q0Y7ODhDRjs4OENGOworRjlFODs4OEUxOzg4RTE7ODhFMTs4OEUxOworRjlFOTs5MUNDOzkxQ0M7OTFDQzs5MUNDOworRjlFQTs5NkUyOzk2RTI7OTZFMjs5NkUyOworRjlFQjs1MzNGOzUzM0Y7NTMzRjs1MzNGOworRjlFQzs2RUJBOzZFQkE7NkVCQTs2RUJBOworRjlFRDs1NDFEOzU0MUQ7NTQxRDs1NDFEOworRjlFRTs3MUQwOzcxRDA7NzFEMDs3MUQwOworRjlFRjs3NDk4Ozc0OTg7NzQ5ODs3NDk4OworRjlGMDs4NUZBOzg1RkE7ODVGQTs4NUZBOworRjlGMTs5NkEzOzk2QTM7OTZBMzs5NkEzOworRjlGMjs5QzU3OzlDNTc7OUM1Nzs5QzU3OworRjlGMzs5RTlGOzlFOUY7OUU5Rjs5RTlGOworRjlGNDs2Nzk3OzY3OTc7Njc5Nzs2Nzk3OworRjlGNTs2RENCOzZEQ0I7NkRDQjs2RENCOworRjlGNjs4MUU4OzgxRTg7ODFFODs4MUU4OworRjlGNzs3QUNCOzdBQ0I7N0FDQjs3QUNCOworRjlGODs3QjIwOzdCMjA7N0IyMDs3QjIwOworRjlGOTs3QzkyOzdDOTI7N0M5Mjs3QzkyOworRjlGQTs3MkMwOzcyQzA7NzJDMDs3MkMwOworRjlGQjs3MDk5OzcwOTk7NzA5OTs3MDk5OworRjlGQzs4QjU4OzhCNTg7OEI1ODs4QjU4OworRjlGRDs0RUMwOzRFQzA7NEVDMDs0RUMwOworRjlGRTs4MzM2OzgzMzY7ODMzNjs4MzM2OworRjlGRjs1MjNBOzUyM0E7NTIzQTs1MjNBOworRkEwMDs1MjA3OzUyMDc7NTIwNzs1MjA3OworRkEwMTs1RUE2OzVFQTY7NUVBNjs1RUE2OworRkEwMjs2MkQzOzYyRDM7NjJEMzs2MkQzOworRkEwMzs3Q0Q2OzdDRDY7N0NENjs3Q0Q2OworRkEwNDs1Qjg1OzVCODU7NUI4NTs1Qjg1OworRkEwNTs2RDFFOzZEMUU7NkQxRTs2RDFFOworRkEwNjs2NkI0OzY2QjQ7NjZCNDs2NkI0OworRkEwNzs4RjNCOzhGM0I7OEYzQjs4RjNCOworRkEwODs4ODRDOzg4NEM7ODg0Qzs4ODRDOworRkEwOTs5NjREOzk2NEQ7OTY0RDs5NjREOworRkEwQTs4OThCOzg5OEI7ODk4Qjs4OThCOworRkEwQjs1RUQzOzVFRDM7NUVEMzs1RUQzOworRkEwQzs1MTQwOzUxNDA7NTE0MDs1MTQwOworRkEwRDs1NUMwOzU1QzA7NTVDMDs1NUMwOworRkExMDs1ODVBOzU4NUE7NTg1QTs1ODVBOworRkExMjs2Njc0OzY2NzQ7NjY3NDs2Njc0OworRkExNTs1MURFOzUxREU7NTFERTs1MURFOworRkExNjs3MzJBOzczMkE7NzMyQTs3MzJBOworRkExNzs3NkNBOzc2Q0E7NzZDQTs3NkNBOworRkExODs3OTNDOzc5M0M7NzkzQzs3OTNDOworRkExOTs3OTVFOzc5NUU7Nzk1RTs3OTVFOworRkExQTs3OTY1Ozc5NjU7Nzk2NTs3OTY1OworRkExQjs3OThGOzc5OEY7Nzk4Rjs3OThGOworRkExQzs5NzU2Ozk3NTY7OTc1Njs5NzU2OworRkExRDs3Q0JFOzdDQkU7N0NCRTs3Q0JFOworRkExRTs3RkJEOzdGQkQ7N0ZCRDs3RkJEOworRkEyMDs4NjEyOzg2MTI7ODYxMjs4NjEyOworRkEyMjs4QUY4OzhBRjg7OEFGODs4QUY4OworRkEyNTs5MDM4OzkwMzg7OTAzODs5MDM4OworRkEyNjs5MEZEOzkwRkQ7OTBGRDs5MEZEOworRkEyQTs5OEVGOzk4RUY7OThFRjs5OEVGOworRkEyQjs5OEZDOzk4RkM7OThGQzs5OEZDOworRkEyQzs5OTI4Ozk5Mjg7OTkyODs5OTI4OworRkEyRDs5REI0OzlEQjQ7OURCNDs5REI0OworRkEzMDs0RkFFOzRGQUU7NEZBRTs0RkFFOworRkEzMTs1MEU3OzUwRTc7NTBFNzs1MEU3OworRkEzMjs1MTREOzUxNEQ7NTE0RDs1MTREOworRkEzMzs1MkM5OzUyQzk7NTJDOTs1MkM5OworRkEzNDs1MkU0OzUyRTQ7NTJFNDs1MkU0OworRkEzNTs1MzUxOzUzNTE7NTM1MTs1MzUxOworRkEzNjs1NTlEOzU1OUQ7NTU5RDs1NTlEOworRkEzNzs1NjA2OzU2MDY7NTYwNjs1NjA2OworRkEzODs1NjY4OzU2Njg7NTY2ODs1NjY4OworRkEzOTs1ODQwOzU4NDA7NTg0MDs1ODQwOworRkEzQTs1OEE4OzU4QTg7NThBODs1OEE4OworRkEzQjs1QzY0OzVDNjQ7NUM2NDs1QzY0OworRkEzQzs1QzZFOzVDNkU7NUM2RTs1QzZFOworRkEzRDs2MDk0OzYwOTQ7NjA5NDs2MDk0OworRkEzRTs2MTY4OzYxNjg7NjE2ODs2MTY4OworRkEzRjs2MThFOzYxOEU7NjE4RTs2MThFOworRkE0MDs2MUYyOzYxRjI7NjFGMjs2MUYyOworRkE0MTs2NTRGOzY1NEY7NjU0Rjs2NTRGOworRkE0Mjs2NUUyOzY1RTI7NjVFMjs2NUUyOworRkE0Mzs2NjkxOzY2OTE7NjY5MTs2NjkxOworRkE0NDs2ODg1OzY4ODU7Njg4NTs2ODg1OworRkE0NTs2RDc3OzZENzc7NkQ3Nzs2RDc3OworRkE0Njs2RTFBOzZFMUE7NkUxQTs2RTFBOworRkE0Nzs2RjIyOzZGMjI7NkYyMjs2RjIyOworRkE0ODs3MTZFOzcxNkU7NzE2RTs3MTZFOworRkE0OTs3MjJCOzcyMkI7NzIyQjs3MjJCOworRkE0QTs3NDIyOzc0MjI7NzQyMjs3NDIyOworRkE0Qjs3ODkxOzc4OTE7Nzg5MTs3ODkxOworRkE0Qzs3OTNFOzc5M0U7NzkzRTs3OTNFOworRkE0RDs3OTQ5Ozc5NDk7Nzk0OTs3OTQ5OworRkE0RTs3OTQ4Ozc5NDg7Nzk0ODs3OTQ4OworRkE0Rjs3OTUwOzc5NTA7Nzk1MDs3OTUwOworRkE1MDs3OTU2Ozc5NTY7Nzk1Njs3OTU2OworRkE1MTs3OTVEOzc5NUQ7Nzk1RDs3OTVEOworRkE1Mjs3OThEOzc5OEQ7Nzk4RDs3OThEOworRkE1Mzs3OThFOzc5OEU7Nzk4RTs3OThFOworRkE1NDs3QTQwOzdBNDA7N0E0MDs3QTQwOworRkE1NTs3QTgxOzdBODE7N0E4MTs3QTgxOworRkE1Njs3QkMwOzdCQzA7N0JDMDs3QkMwOworRkE1Nzs3REY0OzdERjQ7N0RGNDs3REY0OworRkE1ODs3RTA5OzdFMDk7N0UwOTs3RTA5OworRkE1OTs3RTQxOzdFNDE7N0U0MTs3RTQxOworRkE1QTs3RjcyOzdGNzI7N0Y3Mjs3RjcyOworRkE1Qjs4MDA1OzgwMDU7ODAwNTs4MDA1OworRkE1Qzs4MUVEOzgxRUQ7ODFFRDs4MUVEOworRkE1RDs4Mjc5OzgyNzk7ODI3OTs4Mjc5OworRkE1RTs4Mjc5OzgyNzk7ODI3OTs4Mjc5OworRkE1Rjs4NDU3Ozg0NTc7ODQ1Nzs4NDU3OworRkE2MDs4OTEwOzg5MTA7ODkxMDs4OTEwOworRkE2MTs4OTk2Ozg5OTY7ODk5Njs4OTk2OworRkE2Mjs4QjAxOzhCMDE7OEIwMTs4QjAxOworRkE2Mzs4QjM5OzhCMzk7OEIzOTs4QjM5OworRkE2NDs4Q0QzOzhDRDM7OENEMzs4Q0QzOworRkE2NTs4RDA4OzhEMDg7OEQwODs4RDA4OworRkE2Njs4RkI2OzhGQjY7OEZCNjs4RkI2OworRkE2Nzs5MDM4OzkwMzg7OTAzODs5MDM4OworRkE2ODs5NkUzOzk2RTM7OTZFMzs5NkUzOworRkE2OTs5N0ZGOzk3RkY7OTdGRjs5N0ZGOworRkE2QTs5ODNCOzk4M0I7OTgzQjs5ODNCOworRkIwMDtGQjAwO0ZCMDA7MDA2NiAwMDY2OzAwNjYgMDA2NjsKK0ZCMDE7RkIwMTtGQjAxOzAwNjYgMDA2OTswMDY2IDAwNjk7CitGQjAyO0ZCMDI7RkIwMjswMDY2IDAwNkM7MDA2NiAwMDZDOworRkIwMztGQjAzO0ZCMDM7MDA2NiAwMDY2IDAwNjk7MDA2NiAwMDY2IDAwNjk7CitGQjA0O0ZCMDQ7RkIwNDswMDY2IDAwNjYgMDA2QzswMDY2IDAwNjYgMDA2QzsKK0ZCMDU7RkIwNTtGQjA1OzAwNzMgMDA3NDswMDczIDAwNzQ7CitGQjA2O0ZCMDY7RkIwNjswMDczIDAwNzQ7MDA3MyAwMDc0OworRkIxMztGQjEzO0ZCMTM7MDU3NCAwNTc2OzA1NzQgMDU3NjsKK0ZCMTQ7RkIxNDtGQjE0OzA1NzQgMDU2NTswNTc0IDA1NjU7CitGQjE1O0ZCMTU7RkIxNTswNTc0IDA1NkI7MDU3NCAwNTZCOworRkIxNjtGQjE2O0ZCMTY7MDU3RSAwNTc2OzA1N0UgMDU3NjsKK0ZCMTc7RkIxNztGQjE3OzA1NzQgMDU2RDswNTc0IDA1NkQ7CitGQjFEOzA1RDkgMDVCNDswNUQ5IDA1QjQ7MDVEOSAwNUI0OzA1RDkgMDVCNDsKK0ZCMUY7MDVGMiAwNUI3OzA1RjIgMDVCNzswNUYyIDA1Qjc7MDVGMiAwNUI3OworRkIyMDtGQjIwO0ZCMjA7MDVFMjswNUUyOworRkIyMTtGQjIxO0ZCMjE7MDVEMDswNUQwOworRkIyMjtGQjIyO0ZCMjI7MDVEMzswNUQzOworRkIyMztGQjIzO0ZCMjM7MDVENDswNUQ0OworRkIyNDtGQjI0O0ZCMjQ7MDVEQjswNURCOworRkIyNTtGQjI1O0ZCMjU7MDVEQzswNURDOworRkIyNjtGQjI2O0ZCMjY7MDVERDswNUREOworRkIyNztGQjI3O0ZCMjc7MDVFODswNUU4OworRkIyODtGQjI4O0ZCMjg7MDVFQTswNUVBOworRkIyOTtGQjI5O0ZCMjk7MDAyQjswMDJCOworRkIyQTswNUU5IDA1QzE7MDVFOSAwNUMxOzA1RTkgMDVDMTswNUU5IDA1QzE7CitGQjJCOzA1RTkgMDVDMjswNUU5IDA1QzI7MDVFOSAwNUMyOzA1RTkgMDVDMjsKK0ZCMkM7MDVFOSAwNUJDIDA1QzE7MDVFOSAwNUJDIDA1QzE7MDVFOSAwNUJDIDA1QzE7MDVFOSAwNUJDIDA1QzE7CitGQjJEOzA1RTkgMDVCQyAwNUMyOzA1RTkgMDVCQyAwNUMyOzA1RTkgMDVCQyAwNUMyOzA1RTkgMDVCQyAwNUMyOworRkIyRTswNUQwIDA1Qjc7MDVEMCAwNUI3OzA1RDAgMDVCNzswNUQwIDA1Qjc7CitGQjJGOzA1RDAgMDVCODswNUQwIDA1Qjg7MDVEMCAwNUI4OzA1RDAgMDVCODsKK0ZCMzA7MDVEMCAwNUJDOzA1RDAgMDVCQzswNUQwIDA1QkM7MDVEMCAwNUJDOworRkIzMTswNUQxIDA1QkM7MDVEMSAwNUJDOzA1RDEgMDVCQzswNUQxIDA1QkM7CitGQjMyOzA1RDIgMDVCQzswNUQyIDA1QkM7MDVEMiAwNUJDOzA1RDIgMDVCQzsKK0ZCMzM7MDVEMyAwNUJDOzA1RDMgMDVCQzswNUQzIDA1QkM7MDVEMyAwNUJDOworRkIzNDswNUQ0IDA1QkM7MDVENCAwNUJDOzA1RDQgMDVCQzswNUQ0IDA1QkM7CitGQjM1OzA1RDUgMDVCQzswNUQ1IDA1QkM7MDVENSAwNUJDOzA1RDUgMDVCQzsKK0ZCMzY7MDVENiAwNUJDOzA1RDYgMDVCQzswNUQ2IDA1QkM7MDVENiAwNUJDOworRkIzODswNUQ4IDA1QkM7MDVEOCAwNUJDOzA1RDggMDVCQzswNUQ4IDA1QkM7CitGQjM5OzA1RDkgMDVCQzswNUQ5IDA1QkM7MDVEOSAwNUJDOzA1RDkgMDVCQzsKK0ZCM0E7MDVEQSAwNUJDOzA1REEgMDVCQzswNURBIDA1QkM7MDVEQSAwNUJDOworRkIzQjswNURCIDA1QkM7MDVEQiAwNUJDOzA1REIgMDVCQzswNURCIDA1QkM7CitGQjNDOzA1REMgMDVCQzswNURDIDA1QkM7MDVEQyAwNUJDOzA1REMgMDVCQzsKK0ZCM0U7MDVERSAwNUJDOzA1REUgMDVCQzswNURFIDA1QkM7MDVERSAwNUJDOworRkI0MDswNUUwIDA1QkM7MDVFMCAwNUJDOzA1RTAgMDVCQzswNUUwIDA1QkM7CitGQjQxOzA1RTEgMDVCQzswNUUxIDA1QkM7MDVFMSAwNUJDOzA1RTEgMDVCQzsKK0ZCNDM7MDVFMyAwNUJDOzA1RTMgMDVCQzswNUUzIDA1QkM7MDVFMyAwNUJDOworRkI0NDswNUU0IDA1QkM7MDVFNCAwNUJDOzA1RTQgMDVCQzswNUU0IDA1QkM7CitGQjQ2OzA1RTYgMDVCQzswNUU2IDA1QkM7MDVFNiAwNUJDOzA1RTYgMDVCQzsKK0ZCNDc7MDVFNyAwNUJDOzA1RTcgMDVCQzswNUU3IDA1QkM7MDVFNyAwNUJDOworRkI0ODswNUU4IDA1QkM7MDVFOCAwNUJDOzA1RTggMDVCQzswNUU4IDA1QkM7CitGQjQ5OzA1RTkgMDVCQzswNUU5IDA1QkM7MDVFOSAwNUJDOzA1RTkgMDVCQzsKK0ZCNEE7MDVFQSAwNUJDOzA1RUEgMDVCQzswNUVBIDA1QkM7MDVFQSAwNUJDOworRkI0QjswNUQ1IDA1Qjk7MDVENSAwNUI5OzA1RDUgMDVCOTswNUQ1IDA1Qjk7CitGQjRDOzA1RDEgMDVCRjswNUQxIDA1QkY7MDVEMSAwNUJGOzA1RDEgMDVCRjsKK0ZCNEQ7MDVEQiAwNUJGOzA1REIgMDVCRjswNURCIDA1QkY7MDVEQiAwNUJGOworRkI0RTswNUU0IDA1QkY7MDVFNCAwNUJGOzA1RTQgMDVCRjswNUU0IDA1QkY7CitGQjRGO0ZCNEY7RkI0RjswNUQwIDA1REM7MDVEMCAwNURDOworRkI1MDtGQjUwO0ZCNTA7MDY3MTswNjcxOworRkI1MTtGQjUxO0ZCNTE7MDY3MTswNjcxOworRkI1MjtGQjUyO0ZCNTI7MDY3QjswNjdCOworRkI1MztGQjUzO0ZCNTM7MDY3QjswNjdCOworRkI1NDtGQjU0O0ZCNTQ7MDY3QjswNjdCOworRkI1NTtGQjU1O0ZCNTU7MDY3QjswNjdCOworRkI1NjtGQjU2O0ZCNTY7MDY3RTswNjdFOworRkI1NztGQjU3O0ZCNTc7MDY3RTswNjdFOworRkI1ODtGQjU4O0ZCNTg7MDY3RTswNjdFOworRkI1OTtGQjU5O0ZCNTk7MDY3RTswNjdFOworRkI1QTtGQjVBO0ZCNUE7MDY4MDswNjgwOworRkI1QjtGQjVCO0ZCNUI7MDY4MDswNjgwOworRkI1QztGQjVDO0ZCNUM7MDY4MDswNjgwOworRkI1RDtGQjVEO0ZCNUQ7MDY4MDswNjgwOworRkI1RTtGQjVFO0ZCNUU7MDY3QTswNjdBOworRkI1RjtGQjVGO0ZCNUY7MDY3QTswNjdBOworRkI2MDtGQjYwO0ZCNjA7MDY3QTswNjdBOworRkI2MTtGQjYxO0ZCNjE7MDY3QTswNjdBOworRkI2MjtGQjYyO0ZCNjI7MDY3RjswNjdGOworRkI2MztGQjYzO0ZCNjM7MDY3RjswNjdGOworRkI2NDtGQjY0O0ZCNjQ7MDY3RjswNjdGOworRkI2NTtGQjY1O0ZCNjU7MDY3RjswNjdGOworRkI2NjtGQjY2O0ZCNjY7MDY3OTswNjc5OworRkI2NztGQjY3O0ZCNjc7MDY3OTswNjc5OworRkI2ODtGQjY4O0ZCNjg7MDY3OTswNjc5OworRkI2OTtGQjY5O0ZCNjk7MDY3OTswNjc5OworRkI2QTtGQjZBO0ZCNkE7MDZBNDswNkE0OworRkI2QjtGQjZCO0ZCNkI7MDZBNDswNkE0OworRkI2QztGQjZDO0ZCNkM7MDZBNDswNkE0OworRkI2RDtGQjZEO0ZCNkQ7MDZBNDswNkE0OworRkI2RTtGQjZFO0ZCNkU7MDZBNjswNkE2OworRkI2RjtGQjZGO0ZCNkY7MDZBNjswNkE2OworRkI3MDtGQjcwO0ZCNzA7MDZBNjswNkE2OworRkI3MTtGQjcxO0ZCNzE7MDZBNjswNkE2OworRkI3MjtGQjcyO0ZCNzI7MDY4NDswNjg0OworRkI3MztGQjczO0ZCNzM7MDY4NDswNjg0OworRkI3NDtGQjc0O0ZCNzQ7MDY4NDswNjg0OworRkI3NTtGQjc1O0ZCNzU7MDY4NDswNjg0OworRkI3NjtGQjc2O0ZCNzY7MDY4MzswNjgzOworRkI3NztGQjc3O0ZCNzc7MDY4MzswNjgzOworRkI3ODtGQjc4O0ZCNzg7MDY4MzswNjgzOworRkI3OTtGQjc5O0ZCNzk7MDY4MzswNjgzOworRkI3QTtGQjdBO0ZCN0E7MDY4NjswNjg2OworRkI3QjtGQjdCO0ZCN0I7MDY4NjswNjg2OworRkI3QztGQjdDO0ZCN0M7MDY4NjswNjg2OworRkI3RDtGQjdEO0ZCN0Q7MDY4NjswNjg2OworRkI3RTtGQjdFO0ZCN0U7MDY4NzswNjg3OworRkI3RjtGQjdGO0ZCN0Y7MDY4NzswNjg3OworRkI4MDtGQjgwO0ZCODA7MDY4NzswNjg3OworRkI4MTtGQjgxO0ZCODE7MDY4NzswNjg3OworRkI4MjtGQjgyO0ZCODI7MDY4RDswNjhEOworRkI4MztGQjgzO0ZCODM7MDY4RDswNjhEOworRkI4NDtGQjg0O0ZCODQ7MDY4QzswNjhDOworRkI4NTtGQjg1O0ZCODU7MDY4QzswNjhDOworRkI4NjtGQjg2O0ZCODY7MDY4RTswNjhFOworRkI4NztGQjg3O0ZCODc7MDY4RTswNjhFOworRkI4ODtGQjg4O0ZCODg7MDY4ODswNjg4OworRkI4OTtGQjg5O0ZCODk7MDY4ODswNjg4OworRkI4QTtGQjhBO0ZCOEE7MDY5ODswNjk4OworRkI4QjtGQjhCO0ZCOEI7MDY5ODswNjk4OworRkI4QztGQjhDO0ZCOEM7MDY5MTswNjkxOworRkI4RDtGQjhEO0ZCOEQ7MDY5MTswNjkxOworRkI4RTtGQjhFO0ZCOEU7MDZBOTswNkE5OworRkI4RjtGQjhGO0ZCOEY7MDZBOTswNkE5OworRkI5MDtGQjkwO0ZCOTA7MDZBOTswNkE5OworRkI5MTtGQjkxO0ZCOTE7MDZBOTswNkE5OworRkI5MjtGQjkyO0ZCOTI7MDZBRjswNkFGOworRkI5MztGQjkzO0ZCOTM7MDZBRjswNkFGOworRkI5NDtGQjk0O0ZCOTQ7MDZBRjswNkFGOworRkI5NTtGQjk1O0ZCOTU7MDZBRjswNkFGOworRkI5NjtGQjk2O0ZCOTY7MDZCMzswNkIzOworRkI5NztGQjk3O0ZCOTc7MDZCMzswNkIzOworRkI5ODtGQjk4O0ZCOTg7MDZCMzswNkIzOworRkI5OTtGQjk5O0ZCOTk7MDZCMzswNkIzOworRkI5QTtGQjlBO0ZCOUE7MDZCMTswNkIxOworRkI5QjtGQjlCO0ZCOUI7MDZCMTswNkIxOworRkI5QztGQjlDO0ZCOUM7MDZCMTswNkIxOworRkI5RDtGQjlEO0ZCOUQ7MDZCMTswNkIxOworRkI5RTtGQjlFO0ZCOUU7MDZCQTswNkJBOworRkI5RjtGQjlGO0ZCOUY7MDZCQTswNkJBOworRkJBMDtGQkEwO0ZCQTA7MDZCQjswNkJCOworRkJBMTtGQkExO0ZCQTE7MDZCQjswNkJCOworRkJBMjtGQkEyO0ZCQTI7MDZCQjswNkJCOworRkJBMztGQkEzO0ZCQTM7MDZCQjswNkJCOworRkJBNDtGQkE0O0ZCQTQ7MDZDMDswNkQ1IDA2NTQ7CitGQkE1O0ZCQTU7RkJBNTswNkMwOzA2RDUgMDY1NDsKK0ZCQTY7RkJBNjtGQkE2OzA2QzE7MDZDMTsKK0ZCQTc7RkJBNztGQkE3OzA2QzE7MDZDMTsKK0ZCQTg7RkJBODtGQkE4OzA2QzE7MDZDMTsKK0ZCQTk7RkJBOTtGQkE5OzA2QzE7MDZDMTsKK0ZCQUE7RkJBQTtGQkFBOzA2QkU7MDZCRTsKK0ZCQUI7RkJBQjtGQkFCOzA2QkU7MDZCRTsKK0ZCQUM7RkJBQztGQkFDOzA2QkU7MDZCRTsKK0ZCQUQ7RkJBRDtGQkFEOzA2QkU7MDZCRTsKK0ZCQUU7RkJBRTtGQkFFOzA2RDI7MDZEMjsKK0ZCQUY7RkJBRjtGQkFGOzA2RDI7MDZEMjsKK0ZCQjA7RkJCMDtGQkIwOzA2RDM7MDZEMiAwNjU0OworRkJCMTtGQkIxO0ZCQjE7MDZEMzswNkQyIDA2NTQ7CitGQkQzO0ZCRDM7RkJEMzswNkFEOzA2QUQ7CitGQkQ0O0ZCRDQ7RkJENDswNkFEOzA2QUQ7CitGQkQ1O0ZCRDU7RkJENTswNkFEOzA2QUQ7CitGQkQ2O0ZCRDY7RkJENjswNkFEOzA2QUQ7CitGQkQ3O0ZCRDc7RkJENzswNkM3OzA2Qzc7CitGQkQ4O0ZCRDg7RkJEODswNkM3OzA2Qzc7CitGQkQ5O0ZCRDk7RkJEOTswNkM2OzA2QzY7CitGQkRBO0ZCREE7RkJEQTswNkM2OzA2QzY7CitGQkRCO0ZCREI7RkJEQjswNkM4OzA2Qzg7CitGQkRDO0ZCREM7RkJEQzswNkM4OzA2Qzg7CitGQkREO0ZCREQ7RkJERDswNkM3IDA2NzQ7MDZDNyAwNjc0OworRkJERTtGQkRFO0ZCREU7MDZDQjswNkNCOworRkJERjtGQkRGO0ZCREY7MDZDQjswNkNCOworRkJFMDtGQkUwO0ZCRTA7MDZDNTswNkM1OworRkJFMTtGQkUxO0ZCRTE7MDZDNTswNkM1OworRkJFMjtGQkUyO0ZCRTI7MDZDOTswNkM5OworRkJFMztGQkUzO0ZCRTM7MDZDOTswNkM5OworRkJFNDtGQkU0O0ZCRTQ7MDZEMDswNkQwOworRkJFNTtGQkU1O0ZCRTU7MDZEMDswNkQwOworRkJFNjtGQkU2O0ZCRTY7MDZEMDswNkQwOworRkJFNztGQkU3O0ZCRTc7MDZEMDswNkQwOworRkJFODtGQkU4O0ZCRTg7MDY0OTswNjQ5OworRkJFOTtGQkU5O0ZCRTk7MDY0OTswNjQ5OworRkJFQTtGQkVBO0ZCRUE7MDYyNiAwNjI3OzA2NEEgMDY1NCAwNjI3OworRkJFQjtGQkVCO0ZCRUI7MDYyNiAwNjI3OzA2NEEgMDY1NCAwNjI3OworRkJFQztGQkVDO0ZCRUM7MDYyNiAwNkQ1OzA2NEEgMDY1NCAwNkQ1OworRkJFRDtGQkVEO0ZCRUQ7MDYyNiAwNkQ1OzA2NEEgMDY1NCAwNkQ1OworRkJFRTtGQkVFO0ZCRUU7MDYyNiAwNjQ4OzA2NEEgMDY1NCAwNjQ4OworRkJFRjtGQkVGO0ZCRUY7MDYyNiAwNjQ4OzA2NEEgMDY1NCAwNjQ4OworRkJGMDtGQkYwO0ZCRjA7MDYyNiAwNkM3OzA2NEEgMDY1NCAwNkM3OworRkJGMTtGQkYxO0ZCRjE7MDYyNiAwNkM3OzA2NEEgMDY1NCAwNkM3OworRkJGMjtGQkYyO0ZCRjI7MDYyNiAwNkM2OzA2NEEgMDY1NCAwNkM2OworRkJGMztGQkYzO0ZCRjM7MDYyNiAwNkM2OzA2NEEgMDY1NCAwNkM2OworRkJGNDtGQkY0O0ZCRjQ7MDYyNiAwNkM4OzA2NEEgMDY1NCAwNkM4OworRkJGNTtGQkY1O0ZCRjU7MDYyNiAwNkM4OzA2NEEgMDY1NCAwNkM4OworRkJGNjtGQkY2O0ZCRjY7MDYyNiAwNkQwOzA2NEEgMDY1NCAwNkQwOworRkJGNztGQkY3O0ZCRjc7MDYyNiAwNkQwOzA2NEEgMDY1NCAwNkQwOworRkJGODtGQkY4O0ZCRjg7MDYyNiAwNkQwOzA2NEEgMDY1NCAwNkQwOworRkJGOTtGQkY5O0ZCRjk7MDYyNiAwNjQ5OzA2NEEgMDY1NCAwNjQ5OworRkJGQTtGQkZBO0ZCRkE7MDYyNiAwNjQ5OzA2NEEgMDY1NCAwNjQ5OworRkJGQjtGQkZCO0ZCRkI7MDYyNiAwNjQ5OzA2NEEgMDY1NCAwNjQ5OworRkJGQztGQkZDO0ZCRkM7MDZDQzswNkNDOworRkJGRDtGQkZEO0ZCRkQ7MDZDQzswNkNDOworRkJGRTtGQkZFO0ZCRkU7MDZDQzswNkNDOworRkJGRjtGQkZGO0ZCRkY7MDZDQzswNkNDOworRkMwMDtGQzAwO0ZDMDA7MDYyNiAwNjJDOzA2NEEgMDY1NCAwNjJDOworRkMwMTtGQzAxO0ZDMDE7MDYyNiAwNjJEOzA2NEEgMDY1NCAwNjJEOworRkMwMjtGQzAyO0ZDMDI7MDYyNiAwNjQ1OzA2NEEgMDY1NCAwNjQ1OworRkMwMztGQzAzO0ZDMDM7MDYyNiAwNjQ5OzA2NEEgMDY1NCAwNjQ5OworRkMwNDtGQzA0O0ZDMDQ7MDYyNiAwNjRBOzA2NEEgMDY1NCAwNjRBOworRkMwNTtGQzA1O0ZDMDU7MDYyOCAwNjJDOzA2MjggMDYyQzsKK0ZDMDY7RkMwNjtGQzA2OzA2MjggMDYyRDswNjI4IDA2MkQ7CitGQzA3O0ZDMDc7RkMwNzswNjI4IDA2MkU7MDYyOCAwNjJFOworRkMwODtGQzA4O0ZDMDg7MDYyOCAwNjQ1OzA2MjggMDY0NTsKK0ZDMDk7RkMwOTtGQzA5OzA2MjggMDY0OTswNjI4IDA2NDk7CitGQzBBO0ZDMEE7RkMwQTswNjI4IDA2NEE7MDYyOCAwNjRBOworRkMwQjtGQzBCO0ZDMEI7MDYyQSAwNjJDOzA2MkEgMDYyQzsKK0ZDMEM7RkMwQztGQzBDOzA2MkEgMDYyRDswNjJBIDA2MkQ7CitGQzBEO0ZDMEQ7RkMwRDswNjJBIDA2MkU7MDYyQSAwNjJFOworRkMwRTtGQzBFO0ZDMEU7MDYyQSAwNjQ1OzA2MkEgMDY0NTsKK0ZDMEY7RkMwRjtGQzBGOzA2MkEgMDY0OTswNjJBIDA2NDk7CitGQzEwO0ZDMTA7RkMxMDswNjJBIDA2NEE7MDYyQSAwNjRBOworRkMxMTtGQzExO0ZDMTE7MDYyQiAwNjJDOzA2MkIgMDYyQzsKK0ZDMTI7RkMxMjtGQzEyOzA2MkIgMDY0NTswNjJCIDA2NDU7CitGQzEzO0ZDMTM7RkMxMzswNjJCIDA2NDk7MDYyQiAwNjQ5OworRkMxNDtGQzE0O0ZDMTQ7MDYyQiAwNjRBOzA2MkIgMDY0QTsKK0ZDMTU7RkMxNTtGQzE1OzA2MkMgMDYyRDswNjJDIDA2MkQ7CitGQzE2O0ZDMTY7RkMxNjswNjJDIDA2NDU7MDYyQyAwNjQ1OworRkMxNztGQzE3O0ZDMTc7MDYyRCAwNjJDOzA2MkQgMDYyQzsKK0ZDMTg7RkMxODtGQzE4OzA2MkQgMDY0NTswNjJEIDA2NDU7CitGQzE5O0ZDMTk7RkMxOTswNjJFIDA2MkM7MDYyRSAwNjJDOworRkMxQTtGQzFBO0ZDMUE7MDYyRSAwNjJEOzA2MkUgMDYyRDsKK0ZDMUI7RkMxQjtGQzFCOzA2MkUgMDY0NTswNjJFIDA2NDU7CitGQzFDO0ZDMUM7RkMxQzswNjMzIDA2MkM7MDYzMyAwNjJDOworRkMxRDtGQzFEO0ZDMUQ7MDYzMyAwNjJEOzA2MzMgMDYyRDsKK0ZDMUU7RkMxRTtGQzFFOzA2MzMgMDYyRTswNjMzIDA2MkU7CitGQzFGO0ZDMUY7RkMxRjswNjMzIDA2NDU7MDYzMyAwNjQ1OworRkMyMDtGQzIwO0ZDMjA7MDYzNSAwNjJEOzA2MzUgMDYyRDsKK0ZDMjE7RkMyMTtGQzIxOzA2MzUgMDY0NTswNjM1IDA2NDU7CitGQzIyO0ZDMjI7RkMyMjswNjM2IDA2MkM7MDYzNiAwNjJDOworRkMyMztGQzIzO0ZDMjM7MDYzNiAwNjJEOzA2MzYgMDYyRDsKK0ZDMjQ7RkMyNDtGQzI0OzA2MzYgMDYyRTswNjM2IDA2MkU7CitGQzI1O0ZDMjU7RkMyNTswNjM2IDA2NDU7MDYzNiAwNjQ1OworRkMyNjtGQzI2O0ZDMjY7MDYzNyAwNjJEOzA2MzcgMDYyRDsKK0ZDMjc7RkMyNztGQzI3OzA2MzcgMDY0NTswNjM3IDA2NDU7CitGQzI4O0ZDMjg7RkMyODswNjM4IDA2NDU7MDYzOCAwNjQ1OworRkMyOTtGQzI5O0ZDMjk7MDYzOSAwNjJDOzA2MzkgMDYyQzsKK0ZDMkE7RkMyQTtGQzJBOzA2MzkgMDY0NTswNjM5IDA2NDU7CitGQzJCO0ZDMkI7RkMyQjswNjNBIDA2MkM7MDYzQSAwNjJDOworRkMyQztGQzJDO0ZDMkM7MDYzQSAwNjQ1OzA2M0EgMDY0NTsKK0ZDMkQ7RkMyRDtGQzJEOzA2NDEgMDYyQzswNjQxIDA2MkM7CitGQzJFO0ZDMkU7RkMyRTswNjQxIDA2MkQ7MDY0MSAwNjJEOworRkMyRjtGQzJGO0ZDMkY7MDY0MSAwNjJFOzA2NDEgMDYyRTsKK0ZDMzA7RkMzMDtGQzMwOzA2NDEgMDY0NTswNjQxIDA2NDU7CitGQzMxO0ZDMzE7RkMzMTswNjQxIDA2NDk7MDY0MSAwNjQ5OworRkMzMjtGQzMyO0ZDMzI7MDY0MSAwNjRBOzA2NDEgMDY0QTsKK0ZDMzM7RkMzMztGQzMzOzA2NDIgMDYyRDswNjQyIDA2MkQ7CitGQzM0O0ZDMzQ7RkMzNDswNjQyIDA2NDU7MDY0MiAwNjQ1OworRkMzNTtGQzM1O0ZDMzU7MDY0MiAwNjQ5OzA2NDIgMDY0OTsKK0ZDMzY7RkMzNjtGQzM2OzA2NDIgMDY0QTswNjQyIDA2NEE7CitGQzM3O0ZDMzc7RkMzNzswNjQzIDA2Mjc7MDY0MyAwNjI3OworRkMzODtGQzM4O0ZDMzg7MDY0MyAwNjJDOzA2NDMgMDYyQzsKK0ZDMzk7RkMzOTtGQzM5OzA2NDMgMDYyRDswNjQzIDA2MkQ7CitGQzNBO0ZDM0E7RkMzQTswNjQzIDA2MkU7MDY0MyAwNjJFOworRkMzQjtGQzNCO0ZDM0I7MDY0MyAwNjQ0OzA2NDMgMDY0NDsKK0ZDM0M7RkMzQztGQzNDOzA2NDMgMDY0NTswNjQzIDA2NDU7CitGQzNEO0ZDM0Q7RkMzRDswNjQzIDA2NDk7MDY0MyAwNjQ5OworRkMzRTtGQzNFO0ZDM0U7MDY0MyAwNjRBOzA2NDMgMDY0QTsKK0ZDM0Y7RkMzRjtGQzNGOzA2NDQgMDYyQzswNjQ0IDA2MkM7CitGQzQwO0ZDNDA7RkM0MDswNjQ0IDA2MkQ7MDY0NCAwNjJEOworRkM0MTtGQzQxO0ZDNDE7MDY0NCAwNjJFOzA2NDQgMDYyRTsKK0ZDNDI7RkM0MjtGQzQyOzA2NDQgMDY0NTswNjQ0IDA2NDU7CitGQzQzO0ZDNDM7RkM0MzswNjQ0IDA2NDk7MDY0NCAwNjQ5OworRkM0NDtGQzQ0O0ZDNDQ7MDY0NCAwNjRBOzA2NDQgMDY0QTsKK0ZDNDU7RkM0NTtGQzQ1OzA2NDUgMDYyQzswNjQ1IDA2MkM7CitGQzQ2O0ZDNDY7RkM0NjswNjQ1IDA2MkQ7MDY0NSAwNjJEOworRkM0NztGQzQ3O0ZDNDc7MDY0NSAwNjJFOzA2NDUgMDYyRTsKK0ZDNDg7RkM0ODtGQzQ4OzA2NDUgMDY0NTswNjQ1IDA2NDU7CitGQzQ5O0ZDNDk7RkM0OTswNjQ1IDA2NDk7MDY0NSAwNjQ5OworRkM0QTtGQzRBO0ZDNEE7MDY0NSAwNjRBOzA2NDUgMDY0QTsKK0ZDNEI7RkM0QjtGQzRCOzA2NDYgMDYyQzswNjQ2IDA2MkM7CitGQzRDO0ZDNEM7RkM0QzswNjQ2IDA2MkQ7MDY0NiAwNjJEOworRkM0RDtGQzREO0ZDNEQ7MDY0NiAwNjJFOzA2NDYgMDYyRTsKK0ZDNEU7RkM0RTtGQzRFOzA2NDYgMDY0NTswNjQ2IDA2NDU7CitGQzRGO0ZDNEY7RkM0RjswNjQ2IDA2NDk7MDY0NiAwNjQ5OworRkM1MDtGQzUwO0ZDNTA7MDY0NiAwNjRBOzA2NDYgMDY0QTsKK0ZDNTE7RkM1MTtGQzUxOzA2NDcgMDYyQzswNjQ3IDA2MkM7CitGQzUyO0ZDNTI7RkM1MjswNjQ3IDA2NDU7MDY0NyAwNjQ1OworRkM1MztGQzUzO0ZDNTM7MDY0NyAwNjQ5OzA2NDcgMDY0OTsKK0ZDNTQ7RkM1NDtGQzU0OzA2NDcgMDY0QTswNjQ3IDA2NEE7CitGQzU1O0ZDNTU7RkM1NTswNjRBIDA2MkM7MDY0QSAwNjJDOworRkM1NjtGQzU2O0ZDNTY7MDY0QSAwNjJEOzA2NEEgMDYyRDsKK0ZDNTc7RkM1NztGQzU3OzA2NEEgMDYyRTswNjRBIDA2MkU7CitGQzU4O0ZDNTg7RkM1ODswNjRBIDA2NDU7MDY0QSAwNjQ1OworRkM1OTtGQzU5O0ZDNTk7MDY0QSAwNjQ5OzA2NEEgMDY0OTsKK0ZDNUE7RkM1QTtGQzVBOzA2NEEgMDY0QTswNjRBIDA2NEE7CitGQzVCO0ZDNUI7RkM1QjswNjMwIDA2NzA7MDYzMCAwNjcwOworRkM1QztGQzVDO0ZDNUM7MDYzMSAwNjcwOzA2MzEgMDY3MDsKK0ZDNUQ7RkM1RDtGQzVEOzA2NDkgMDY3MDswNjQ5IDA2NzA7CitGQzVFO0ZDNUU7RkM1RTswMDIwIDA2NEMgMDY1MTswMDIwIDA2NEMgMDY1MTsKK0ZDNUY7RkM1RjtGQzVGOzAwMjAgMDY0RCAwNjUxOzAwMjAgMDY0RCAwNjUxOworRkM2MDtGQzYwO0ZDNjA7MDAyMCAwNjRFIDA2NTE7MDAyMCAwNjRFIDA2NTE7CitGQzYxO0ZDNjE7RkM2MTswMDIwIDA2NEYgMDY1MTswMDIwIDA2NEYgMDY1MTsKK0ZDNjI7RkM2MjtGQzYyOzAwMjAgMDY1MCAwNjUxOzAwMjAgMDY1MCAwNjUxOworRkM2MztGQzYzO0ZDNjM7MDAyMCAwNjUxIDA2NzA7MDAyMCAwNjUxIDA2NzA7CitGQzY0O0ZDNjQ7RkM2NDswNjI2IDA2MzE7MDY0QSAwNjU0IDA2MzE7CitGQzY1O0ZDNjU7RkM2NTswNjI2IDA2MzI7MDY0QSAwNjU0IDA2MzI7CitGQzY2O0ZDNjY7RkM2NjswNjI2IDA2NDU7MDY0QSAwNjU0IDA2NDU7CitGQzY3O0ZDNjc7RkM2NzswNjI2IDA2NDY7MDY0QSAwNjU0IDA2NDY7CitGQzY4O0ZDNjg7RkM2ODswNjI2IDA2NDk7MDY0QSAwNjU0IDA2NDk7CitGQzY5O0ZDNjk7RkM2OTswNjI2IDA2NEE7MDY0QSAwNjU0IDA2NEE7CitGQzZBO0ZDNkE7RkM2QTswNjI4IDA2MzE7MDYyOCAwNjMxOworRkM2QjtGQzZCO0ZDNkI7MDYyOCAwNjMyOzA2MjggMDYzMjsKK0ZDNkM7RkM2QztGQzZDOzA2MjggMDY0NTswNjI4IDA2NDU7CitGQzZEO0ZDNkQ7RkM2RDswNjI4IDA2NDY7MDYyOCAwNjQ2OworRkM2RTtGQzZFO0ZDNkU7MDYyOCAwNjQ5OzA2MjggMDY0OTsKK0ZDNkY7RkM2RjtGQzZGOzA2MjggMDY0QTswNjI4IDA2NEE7CitGQzcwO0ZDNzA7RkM3MDswNjJBIDA2MzE7MDYyQSAwNjMxOworRkM3MTtGQzcxO0ZDNzE7MDYyQSAwNjMyOzA2MkEgMDYzMjsKK0ZDNzI7RkM3MjtGQzcyOzA2MkEgMDY0NTswNjJBIDA2NDU7CitGQzczO0ZDNzM7RkM3MzswNjJBIDA2NDY7MDYyQSAwNjQ2OworRkM3NDtGQzc0O0ZDNzQ7MDYyQSAwNjQ5OzA2MkEgMDY0OTsKK0ZDNzU7RkM3NTtGQzc1OzA2MkEgMDY0QTswNjJBIDA2NEE7CitGQzc2O0ZDNzY7RkM3NjswNjJCIDA2MzE7MDYyQiAwNjMxOworRkM3NztGQzc3O0ZDNzc7MDYyQiAwNjMyOzA2MkIgMDYzMjsKK0ZDNzg7RkM3ODtGQzc4OzA2MkIgMDY0NTswNjJCIDA2NDU7CitGQzc5O0ZDNzk7RkM3OTswNjJCIDA2NDY7MDYyQiAwNjQ2OworRkM3QTtGQzdBO0ZDN0E7MDYyQiAwNjQ5OzA2MkIgMDY0OTsKK0ZDN0I7RkM3QjtGQzdCOzA2MkIgMDY0QTswNjJCIDA2NEE7CitGQzdDO0ZDN0M7RkM3QzswNjQxIDA2NDk7MDY0MSAwNjQ5OworRkM3RDtGQzdEO0ZDN0Q7MDY0MSAwNjRBOzA2NDEgMDY0QTsKK0ZDN0U7RkM3RTtGQzdFOzA2NDIgMDY0OTswNjQyIDA2NDk7CitGQzdGO0ZDN0Y7RkM3RjswNjQyIDA2NEE7MDY0MiAwNjRBOworRkM4MDtGQzgwO0ZDODA7MDY0MyAwNjI3OzA2NDMgMDYyNzsKK0ZDODE7RkM4MTtGQzgxOzA2NDMgMDY0NDswNjQzIDA2NDQ7CitGQzgyO0ZDODI7RkM4MjswNjQzIDA2NDU7MDY0MyAwNjQ1OworRkM4MztGQzgzO0ZDODM7MDY0MyAwNjQ5OzA2NDMgMDY0OTsKK0ZDODQ7RkM4NDtGQzg0OzA2NDMgMDY0QTswNjQzIDA2NEE7CitGQzg1O0ZDODU7RkM4NTswNjQ0IDA2NDU7MDY0NCAwNjQ1OworRkM4NjtGQzg2O0ZDODY7MDY0NCAwNjQ5OzA2NDQgMDY0OTsKK0ZDODc7RkM4NztGQzg3OzA2NDQgMDY0QTswNjQ0IDA2NEE7CitGQzg4O0ZDODg7RkM4ODswNjQ1IDA2Mjc7MDY0NSAwNjI3OworRkM4OTtGQzg5O0ZDODk7MDY0NSAwNjQ1OzA2NDUgMDY0NTsKK0ZDOEE7RkM4QTtGQzhBOzA2NDYgMDYzMTswNjQ2IDA2MzE7CitGQzhCO0ZDOEI7RkM4QjswNjQ2IDA2MzI7MDY0NiAwNjMyOworRkM4QztGQzhDO0ZDOEM7MDY0NiAwNjQ1OzA2NDYgMDY0NTsKK0ZDOEQ7RkM4RDtGQzhEOzA2NDYgMDY0NjswNjQ2IDA2NDY7CitGQzhFO0ZDOEU7RkM4RTswNjQ2IDA2NDk7MDY0NiAwNjQ5OworRkM4RjtGQzhGO0ZDOEY7MDY0NiAwNjRBOzA2NDYgMDY0QTsKK0ZDOTA7RkM5MDtGQzkwOzA2NDkgMDY3MDswNjQ5IDA2NzA7CitGQzkxO0ZDOTE7RkM5MTswNjRBIDA2MzE7MDY0QSAwNjMxOworRkM5MjtGQzkyO0ZDOTI7MDY0QSAwNjMyOzA2NEEgMDYzMjsKK0ZDOTM7RkM5MztGQzkzOzA2NEEgMDY0NTswNjRBIDA2NDU7CitGQzk0O0ZDOTQ7RkM5NDswNjRBIDA2NDY7MDY0QSAwNjQ2OworRkM5NTtGQzk1O0ZDOTU7MDY0QSAwNjQ5OzA2NEEgMDY0OTsKK0ZDOTY7RkM5NjtGQzk2OzA2NEEgMDY0QTswNjRBIDA2NEE7CitGQzk3O0ZDOTc7RkM5NzswNjI2IDA2MkM7MDY0QSAwNjU0IDA2MkM7CitGQzk4O0ZDOTg7RkM5ODswNjI2IDA2MkQ7MDY0QSAwNjU0IDA2MkQ7CitGQzk5O0ZDOTk7RkM5OTswNjI2IDA2MkU7MDY0QSAwNjU0IDA2MkU7CitGQzlBO0ZDOUE7RkM5QTswNjI2IDA2NDU7MDY0QSAwNjU0IDA2NDU7CitGQzlCO0ZDOUI7RkM5QjswNjI2IDA2NDc7MDY0QSAwNjU0IDA2NDc7CitGQzlDO0ZDOUM7RkM5QzswNjI4IDA2MkM7MDYyOCAwNjJDOworRkM5RDtGQzlEO0ZDOUQ7MDYyOCAwNjJEOzA2MjggMDYyRDsKK0ZDOUU7RkM5RTtGQzlFOzA2MjggMDYyRTswNjI4IDA2MkU7CitGQzlGO0ZDOUY7RkM5RjswNjI4IDA2NDU7MDYyOCAwNjQ1OworRkNBMDtGQ0EwO0ZDQTA7MDYyOCAwNjQ3OzA2MjggMDY0NzsKK0ZDQTE7RkNBMTtGQ0ExOzA2MkEgMDYyQzswNjJBIDA2MkM7CitGQ0EyO0ZDQTI7RkNBMjswNjJBIDA2MkQ7MDYyQSAwNjJEOworRkNBMztGQ0EzO0ZDQTM7MDYyQSAwNjJFOzA2MkEgMDYyRTsKK0ZDQTQ7RkNBNDtGQ0E0OzA2MkEgMDY0NTswNjJBIDA2NDU7CitGQ0E1O0ZDQTU7RkNBNTswNjJBIDA2NDc7MDYyQSAwNjQ3OworRkNBNjtGQ0E2O0ZDQTY7MDYyQiAwNjQ1OzA2MkIgMDY0NTsKK0ZDQTc7RkNBNztGQ0E3OzA2MkMgMDYyRDswNjJDIDA2MkQ7CitGQ0E4O0ZDQTg7RkNBODswNjJDIDA2NDU7MDYyQyAwNjQ1OworRkNBOTtGQ0E5O0ZDQTk7MDYyRCAwNjJDOzA2MkQgMDYyQzsKK0ZDQUE7RkNBQTtGQ0FBOzA2MkQgMDY0NTswNjJEIDA2NDU7CitGQ0FCO0ZDQUI7RkNBQjswNjJFIDA2MkM7MDYyRSAwNjJDOworRkNBQztGQ0FDO0ZDQUM7MDYyRSAwNjQ1OzA2MkUgMDY0NTsKK0ZDQUQ7RkNBRDtGQ0FEOzA2MzMgMDYyQzswNjMzIDA2MkM7CitGQ0FFO0ZDQUU7RkNBRTswNjMzIDA2MkQ7MDYzMyAwNjJEOworRkNBRjtGQ0FGO0ZDQUY7MDYzMyAwNjJFOzA2MzMgMDYyRTsKK0ZDQjA7RkNCMDtGQ0IwOzA2MzMgMDY0NTswNjMzIDA2NDU7CitGQ0IxO0ZDQjE7RkNCMTswNjM1IDA2MkQ7MDYzNSAwNjJEOworRkNCMjtGQ0IyO0ZDQjI7MDYzNSAwNjJFOzA2MzUgMDYyRTsKK0ZDQjM7RkNCMztGQ0IzOzA2MzUgMDY0NTswNjM1IDA2NDU7CitGQ0I0O0ZDQjQ7RkNCNDswNjM2IDA2MkM7MDYzNiAwNjJDOworRkNCNTtGQ0I1O0ZDQjU7MDYzNiAwNjJEOzA2MzYgMDYyRDsKK0ZDQjY7RkNCNjtGQ0I2OzA2MzYgMDYyRTswNjM2IDA2MkU7CitGQ0I3O0ZDQjc7RkNCNzswNjM2IDA2NDU7MDYzNiAwNjQ1OworRkNCODtGQ0I4O0ZDQjg7MDYzNyAwNjJEOzA2MzcgMDYyRDsKK0ZDQjk7RkNCOTtGQ0I5OzA2MzggMDY0NTswNjM4IDA2NDU7CitGQ0JBO0ZDQkE7RkNCQTswNjM5IDA2MkM7MDYzOSAwNjJDOworRkNCQjtGQ0JCO0ZDQkI7MDYzOSAwNjQ1OzA2MzkgMDY0NTsKK0ZDQkM7RkNCQztGQ0JDOzA2M0EgMDYyQzswNjNBIDA2MkM7CitGQ0JEO0ZDQkQ7RkNCRDswNjNBIDA2NDU7MDYzQSAwNjQ1OworRkNCRTtGQ0JFO0ZDQkU7MDY0MSAwNjJDOzA2NDEgMDYyQzsKK0ZDQkY7RkNCRjtGQ0JGOzA2NDEgMDYyRDswNjQxIDA2MkQ7CitGQ0MwO0ZDQzA7RkNDMDswNjQxIDA2MkU7MDY0MSAwNjJFOworRkNDMTtGQ0MxO0ZDQzE7MDY0MSAwNjQ1OzA2NDEgMDY0NTsKK0ZDQzI7RkNDMjtGQ0MyOzA2NDIgMDYyRDswNjQyIDA2MkQ7CitGQ0MzO0ZDQzM7RkNDMzswNjQyIDA2NDU7MDY0MiAwNjQ1OworRkNDNDtGQ0M0O0ZDQzQ7MDY0MyAwNjJDOzA2NDMgMDYyQzsKK0ZDQzU7RkNDNTtGQ0M1OzA2NDMgMDYyRDswNjQzIDA2MkQ7CitGQ0M2O0ZDQzY7RkNDNjswNjQzIDA2MkU7MDY0MyAwNjJFOworRkNDNztGQ0M3O0ZDQzc7MDY0MyAwNjQ0OzA2NDMgMDY0NDsKK0ZDQzg7RkNDODtGQ0M4OzA2NDMgMDY0NTswNjQzIDA2NDU7CitGQ0M5O0ZDQzk7RkNDOTswNjQ0IDA2MkM7MDY0NCAwNjJDOworRkNDQTtGQ0NBO0ZDQ0E7MDY0NCAwNjJEOzA2NDQgMDYyRDsKK0ZDQ0I7RkNDQjtGQ0NCOzA2NDQgMDYyRTswNjQ0IDA2MkU7CitGQ0NDO0ZDQ0M7RkNDQzswNjQ0IDA2NDU7MDY0NCAwNjQ1OworRkNDRDtGQ0NEO0ZDQ0Q7MDY0NCAwNjQ3OzA2NDQgMDY0NzsKK0ZDQ0U7RkNDRTtGQ0NFOzA2NDUgMDYyQzswNjQ1IDA2MkM7CitGQ0NGO0ZDQ0Y7RkNDRjswNjQ1IDA2MkQ7MDY0NSAwNjJEOworRkNEMDtGQ0QwO0ZDRDA7MDY0NSAwNjJFOzA2NDUgMDYyRTsKK0ZDRDE7RkNEMTtGQ0QxOzA2NDUgMDY0NTswNjQ1IDA2NDU7CitGQ0QyO0ZDRDI7RkNEMjswNjQ2IDA2MkM7MDY0NiAwNjJDOworRkNEMztGQ0QzO0ZDRDM7MDY0NiAwNjJEOzA2NDYgMDYyRDsKK0ZDRDQ7RkNENDtGQ0Q0OzA2NDYgMDYyRTswNjQ2IDA2MkU7CitGQ0Q1O0ZDRDU7RkNENTswNjQ2IDA2NDU7MDY0NiAwNjQ1OworRkNENjtGQ0Q2O0ZDRDY7MDY0NiAwNjQ3OzA2NDYgMDY0NzsKK0ZDRDc7RkNENztGQ0Q3OzA2NDcgMDYyQzswNjQ3IDA2MkM7CitGQ0Q4O0ZDRDg7RkNEODswNjQ3IDA2NDU7MDY0NyAwNjQ1OworRkNEOTtGQ0Q5O0ZDRDk7MDY0NyAwNjcwOzA2NDcgMDY3MDsKK0ZDREE7RkNEQTtGQ0RBOzA2NEEgMDYyQzswNjRBIDA2MkM7CitGQ0RCO0ZDREI7RkNEQjswNjRBIDA2MkQ7MDY0QSAwNjJEOworRkNEQztGQ0RDO0ZDREM7MDY0QSAwNjJFOzA2NEEgMDYyRTsKK0ZDREQ7RkNERDtGQ0REOzA2NEEgMDY0NTswNjRBIDA2NDU7CitGQ0RFO0ZDREU7RkNERTswNjRBIDA2NDc7MDY0QSAwNjQ3OworRkNERjtGQ0RGO0ZDREY7MDYyNiAwNjQ1OzA2NEEgMDY1NCAwNjQ1OworRkNFMDtGQ0UwO0ZDRTA7MDYyNiAwNjQ3OzA2NEEgMDY1NCAwNjQ3OworRkNFMTtGQ0UxO0ZDRTE7MDYyOCAwNjQ1OzA2MjggMDY0NTsKK0ZDRTI7RkNFMjtGQ0UyOzA2MjggMDY0NzswNjI4IDA2NDc7CitGQ0UzO0ZDRTM7RkNFMzswNjJBIDA2NDU7MDYyQSAwNjQ1OworRkNFNDtGQ0U0O0ZDRTQ7MDYyQSAwNjQ3OzA2MkEgMDY0NzsKK0ZDRTU7RkNFNTtGQ0U1OzA2MkIgMDY0NTswNjJCIDA2NDU7CitGQ0U2O0ZDRTY7RkNFNjswNjJCIDA2NDc7MDYyQiAwNjQ3OworRkNFNztGQ0U3O0ZDRTc7MDYzMyAwNjQ1OzA2MzMgMDY0NTsKK0ZDRTg7RkNFODtGQ0U4OzA2MzMgMDY0NzswNjMzIDA2NDc7CitGQ0U5O0ZDRTk7RkNFOTswNjM0IDA2NDU7MDYzNCAwNjQ1OworRkNFQTtGQ0VBO0ZDRUE7MDYzNCAwNjQ3OzA2MzQgMDY0NzsKK0ZDRUI7RkNFQjtGQ0VCOzA2NDMgMDY0NDswNjQzIDA2NDQ7CitGQ0VDO0ZDRUM7RkNFQzswNjQzIDA2NDU7MDY0MyAwNjQ1OworRkNFRDtGQ0VEO0ZDRUQ7MDY0NCAwNjQ1OzA2NDQgMDY0NTsKK0ZDRUU7RkNFRTtGQ0VFOzA2NDYgMDY0NTswNjQ2IDA2NDU7CitGQ0VGO0ZDRUY7RkNFRjswNjQ2IDA2NDc7MDY0NiAwNjQ3OworRkNGMDtGQ0YwO0ZDRjA7MDY0QSAwNjQ1OzA2NEEgMDY0NTsKK0ZDRjE7RkNGMTtGQ0YxOzA2NEEgMDY0NzswNjRBIDA2NDc7CitGQ0YyO0ZDRjI7RkNGMjswNjQwIDA2NEUgMDY1MTswNjQwIDA2NEUgMDY1MTsKK0ZDRjM7RkNGMztGQ0YzOzA2NDAgMDY0RiAwNjUxOzA2NDAgMDY0RiAwNjUxOworRkNGNDtGQ0Y0O0ZDRjQ7MDY0MCAwNjUwIDA2NTE7MDY0MCAwNjUwIDA2NTE7CitGQ0Y1O0ZDRjU7RkNGNTswNjM3IDA2NDk7MDYzNyAwNjQ5OworRkNGNjtGQ0Y2O0ZDRjY7MDYzNyAwNjRBOzA2MzcgMDY0QTsKK0ZDRjc7RkNGNztGQ0Y3OzA2MzkgMDY0OTswNjM5IDA2NDk7CitGQ0Y4O0ZDRjg7RkNGODswNjM5IDA2NEE7MDYzOSAwNjRBOworRkNGOTtGQ0Y5O0ZDRjk7MDYzQSAwNjQ5OzA2M0EgMDY0OTsKK0ZDRkE7RkNGQTtGQ0ZBOzA2M0EgMDY0QTswNjNBIDA2NEE7CitGQ0ZCO0ZDRkI7RkNGQjswNjMzIDA2NDk7MDYzMyAwNjQ5OworRkNGQztGQ0ZDO0ZDRkM7MDYzMyAwNjRBOzA2MzMgMDY0QTsKK0ZDRkQ7RkNGRDtGQ0ZEOzA2MzQgMDY0OTswNjM0IDA2NDk7CitGQ0ZFO0ZDRkU7RkNGRTswNjM0IDA2NEE7MDYzNCAwNjRBOworRkNGRjtGQ0ZGO0ZDRkY7MDYyRCAwNjQ5OzA2MkQgMDY0OTsKK0ZEMDA7RkQwMDtGRDAwOzA2MkQgMDY0QTswNjJEIDA2NEE7CitGRDAxO0ZEMDE7RkQwMTswNjJDIDA2NDk7MDYyQyAwNjQ5OworRkQwMjtGRDAyO0ZEMDI7MDYyQyAwNjRBOzA2MkMgMDY0QTsKK0ZEMDM7RkQwMztGRDAzOzA2MkUgMDY0OTswNjJFIDA2NDk7CitGRDA0O0ZEMDQ7RkQwNDswNjJFIDA2NEE7MDYyRSAwNjRBOworRkQwNTtGRDA1O0ZEMDU7MDYzNSAwNjQ5OzA2MzUgMDY0OTsKK0ZEMDY7RkQwNjtGRDA2OzA2MzUgMDY0QTswNjM1IDA2NEE7CitGRDA3O0ZEMDc7RkQwNzswNjM2IDA2NDk7MDYzNiAwNjQ5OworRkQwODtGRDA4O0ZEMDg7MDYzNiAwNjRBOzA2MzYgMDY0QTsKK0ZEMDk7RkQwOTtGRDA5OzA2MzQgMDYyQzswNjM0IDA2MkM7CitGRDBBO0ZEMEE7RkQwQTswNjM0IDA2MkQ7MDYzNCAwNjJEOworRkQwQjtGRDBCO0ZEMEI7MDYzNCAwNjJFOzA2MzQgMDYyRTsKK0ZEMEM7RkQwQztGRDBDOzA2MzQgMDY0NTswNjM0IDA2NDU7CitGRDBEO0ZEMEQ7RkQwRDswNjM0IDA2MzE7MDYzNCAwNjMxOworRkQwRTtGRDBFO0ZEMEU7MDYzMyAwNjMxOzA2MzMgMDYzMTsKK0ZEMEY7RkQwRjtGRDBGOzA2MzUgMDYzMTswNjM1IDA2MzE7CitGRDEwO0ZEMTA7RkQxMDswNjM2IDA2MzE7MDYzNiAwNjMxOworRkQxMTtGRDExO0ZEMTE7MDYzNyAwNjQ5OzA2MzcgMDY0OTsKK0ZEMTI7RkQxMjtGRDEyOzA2MzcgMDY0QTswNjM3IDA2NEE7CitGRDEzO0ZEMTM7RkQxMzswNjM5IDA2NDk7MDYzOSAwNjQ5OworRkQxNDtGRDE0O0ZEMTQ7MDYzOSAwNjRBOzA2MzkgMDY0QTsKK0ZEMTU7RkQxNTtGRDE1OzA2M0EgMDY0OTswNjNBIDA2NDk7CitGRDE2O0ZEMTY7RkQxNjswNjNBIDA2NEE7MDYzQSAwNjRBOworRkQxNztGRDE3O0ZEMTc7MDYzMyAwNjQ5OzA2MzMgMDY0OTsKK0ZEMTg7RkQxODtGRDE4OzA2MzMgMDY0QTswNjMzIDA2NEE7CitGRDE5O0ZEMTk7RkQxOTswNjM0IDA2NDk7MDYzNCAwNjQ5OworRkQxQTtGRDFBO0ZEMUE7MDYzNCAwNjRBOzA2MzQgMDY0QTsKK0ZEMUI7RkQxQjtGRDFCOzA2MkQgMDY0OTswNjJEIDA2NDk7CitGRDFDO0ZEMUM7RkQxQzswNjJEIDA2NEE7MDYyRCAwNjRBOworRkQxRDtGRDFEO0ZEMUQ7MDYyQyAwNjQ5OzA2MkMgMDY0OTsKK0ZEMUU7RkQxRTtGRDFFOzA2MkMgMDY0QTswNjJDIDA2NEE7CitGRDFGO0ZEMUY7RkQxRjswNjJFIDA2NDk7MDYyRSAwNjQ5OworRkQyMDtGRDIwO0ZEMjA7MDYyRSAwNjRBOzA2MkUgMDY0QTsKK0ZEMjE7RkQyMTtGRDIxOzA2MzUgMDY0OTswNjM1IDA2NDk7CitGRDIyO0ZEMjI7RkQyMjswNjM1IDA2NEE7MDYzNSAwNjRBOworRkQyMztGRDIzO0ZEMjM7MDYzNiAwNjQ5OzA2MzYgMDY0OTsKK0ZEMjQ7RkQyNDtGRDI0OzA2MzYgMDY0QTswNjM2IDA2NEE7CitGRDI1O0ZEMjU7RkQyNTswNjM0IDA2MkM7MDYzNCAwNjJDOworRkQyNjtGRDI2O0ZEMjY7MDYzNCAwNjJEOzA2MzQgMDYyRDsKK0ZEMjc7RkQyNztGRDI3OzA2MzQgMDYyRTswNjM0IDA2MkU7CitGRDI4O0ZEMjg7RkQyODswNjM0IDA2NDU7MDYzNCAwNjQ1OworRkQyOTtGRDI5O0ZEMjk7MDYzNCAwNjMxOzA2MzQgMDYzMTsKK0ZEMkE7RkQyQTtGRDJBOzA2MzMgMDYzMTswNjMzIDA2MzE7CitGRDJCO0ZEMkI7RkQyQjswNjM1IDA2MzE7MDYzNSAwNjMxOworRkQyQztGRDJDO0ZEMkM7MDYzNiAwNjMxOzA2MzYgMDYzMTsKK0ZEMkQ7RkQyRDtGRDJEOzA2MzQgMDYyQzswNjM0IDA2MkM7CitGRDJFO0ZEMkU7RkQyRTswNjM0IDA2MkQ7MDYzNCAwNjJEOworRkQyRjtGRDJGO0ZEMkY7MDYzNCAwNjJFOzA2MzQgMDYyRTsKK0ZEMzA7RkQzMDtGRDMwOzA2MzQgMDY0NTswNjM0IDA2NDU7CitGRDMxO0ZEMzE7RkQzMTswNjMzIDA2NDc7MDYzMyAwNjQ3OworRkQzMjtGRDMyO0ZEMzI7MDYzNCAwNjQ3OzA2MzQgMDY0NzsKK0ZEMzM7RkQzMztGRDMzOzA2MzcgMDY0NTswNjM3IDA2NDU7CitGRDM0O0ZEMzQ7RkQzNDswNjMzIDA2MkM7MDYzMyAwNjJDOworRkQzNTtGRDM1O0ZEMzU7MDYzMyAwNjJEOzA2MzMgMDYyRDsKK0ZEMzY7RkQzNjtGRDM2OzA2MzMgMDYyRTswNjMzIDA2MkU7CitGRDM3O0ZEMzc7RkQzNzswNjM0IDA2MkM7MDYzNCAwNjJDOworRkQzODtGRDM4O0ZEMzg7MDYzNCAwNjJEOzA2MzQgMDYyRDsKK0ZEMzk7RkQzOTtGRDM5OzA2MzQgMDYyRTswNjM0IDA2MkU7CitGRDNBO0ZEM0E7RkQzQTswNjM3IDA2NDU7MDYzNyAwNjQ1OworRkQzQjtGRDNCO0ZEM0I7MDYzOCAwNjQ1OzA2MzggMDY0NTsKK0ZEM0M7RkQzQztGRDNDOzA2MjcgMDY0QjswNjI3IDA2NEI7CitGRDNEO0ZEM0Q7RkQzRDswNjI3IDA2NEI7MDYyNyAwNjRCOworRkQ1MDtGRDUwO0ZENTA7MDYyQSAwNjJDIDA2NDU7MDYyQSAwNjJDIDA2NDU7CitGRDUxO0ZENTE7RkQ1MTswNjJBIDA2MkQgMDYyQzswNjJBIDA2MkQgMDYyQzsKK0ZENTI7RkQ1MjtGRDUyOzA2MkEgMDYyRCAwNjJDOzA2MkEgMDYyRCAwNjJDOworRkQ1MztGRDUzO0ZENTM7MDYyQSAwNjJEIDA2NDU7MDYyQSAwNjJEIDA2NDU7CitGRDU0O0ZENTQ7RkQ1NDswNjJBIDA2MkUgMDY0NTswNjJBIDA2MkUgMDY0NTsKK0ZENTU7RkQ1NTtGRDU1OzA2MkEgMDY0NSAwNjJDOzA2MkEgMDY0NSAwNjJDOworRkQ1NjtGRDU2O0ZENTY7MDYyQSAwNjQ1IDA2MkQ7MDYyQSAwNjQ1IDA2MkQ7CitGRDU3O0ZENTc7RkQ1NzswNjJBIDA2NDUgMDYyRTswNjJBIDA2NDUgMDYyRTsKK0ZENTg7RkQ1ODtGRDU4OzA2MkMgMDY0NSAwNjJEOzA2MkMgMDY0NSAwNjJEOworRkQ1OTtGRDU5O0ZENTk7MDYyQyAwNjQ1IDA2MkQ7MDYyQyAwNjQ1IDA2MkQ7CitGRDVBO0ZENUE7RkQ1QTswNjJEIDA2NDUgMDY0QTswNjJEIDA2NDUgMDY0QTsKK0ZENUI7RkQ1QjtGRDVCOzA2MkQgMDY0NSAwNjQ5OzA2MkQgMDY0NSAwNjQ5OworRkQ1QztGRDVDO0ZENUM7MDYzMyAwNjJEIDA2MkM7MDYzMyAwNjJEIDA2MkM7CitGRDVEO0ZENUQ7RkQ1RDswNjMzIDA2MkMgMDYyRDswNjMzIDA2MkMgMDYyRDsKK0ZENUU7RkQ1RTtGRDVFOzA2MzMgMDYyQyAwNjQ5OzA2MzMgMDYyQyAwNjQ5OworRkQ1RjtGRDVGO0ZENUY7MDYzMyAwNjQ1IDA2MkQ7MDYzMyAwNjQ1IDA2MkQ7CitGRDYwO0ZENjA7RkQ2MDswNjMzIDA2NDUgMDYyRDswNjMzIDA2NDUgMDYyRDsKK0ZENjE7RkQ2MTtGRDYxOzA2MzMgMDY0NSAwNjJDOzA2MzMgMDY0NSAwNjJDOworRkQ2MjtGRDYyO0ZENjI7MDYzMyAwNjQ1IDA2NDU7MDYzMyAwNjQ1IDA2NDU7CitGRDYzO0ZENjM7RkQ2MzswNjMzIDA2NDUgMDY0NTswNjMzIDA2NDUgMDY0NTsKK0ZENjQ7RkQ2NDtGRDY0OzA2MzUgMDYyRCAwNjJEOzA2MzUgMDYyRCAwNjJEOworRkQ2NTtGRDY1O0ZENjU7MDYzNSAwNjJEIDA2MkQ7MDYzNSAwNjJEIDA2MkQ7CitGRDY2O0ZENjY7RkQ2NjswNjM1IDA2NDUgMDY0NTswNjM1IDA2NDUgMDY0NTsKK0ZENjc7RkQ2NztGRDY3OzA2MzQgMDYyRCAwNjQ1OzA2MzQgMDYyRCAwNjQ1OworRkQ2ODtGRDY4O0ZENjg7MDYzNCAwNjJEIDA2NDU7MDYzNCAwNjJEIDA2NDU7CitGRDY5O0ZENjk7RkQ2OTswNjM0IDA2MkMgMDY0QTswNjM0IDA2MkMgMDY0QTsKK0ZENkE7RkQ2QTtGRDZBOzA2MzQgMDY0NSAwNjJFOzA2MzQgMDY0NSAwNjJFOworRkQ2QjtGRDZCO0ZENkI7MDYzNCAwNjQ1IDA2MkU7MDYzNCAwNjQ1IDA2MkU7CitGRDZDO0ZENkM7RkQ2QzswNjM0IDA2NDUgMDY0NTswNjM0IDA2NDUgMDY0NTsKK0ZENkQ7RkQ2RDtGRDZEOzA2MzQgMDY0NSAwNjQ1OzA2MzQgMDY0NSAwNjQ1OworRkQ2RTtGRDZFO0ZENkU7MDYzNiAwNjJEIDA2NDk7MDYzNiAwNjJEIDA2NDk7CitGRDZGO0ZENkY7RkQ2RjswNjM2IDA2MkUgMDY0NTswNjM2IDA2MkUgMDY0NTsKK0ZENzA7RkQ3MDtGRDcwOzA2MzYgMDYyRSAwNjQ1OzA2MzYgMDYyRSAwNjQ1OworRkQ3MTtGRDcxO0ZENzE7MDYzNyAwNjQ1IDA2MkQ7MDYzNyAwNjQ1IDA2MkQ7CitGRDcyO0ZENzI7RkQ3MjswNjM3IDA2NDUgMDYyRDswNjM3IDA2NDUgMDYyRDsKK0ZENzM7RkQ3MztGRDczOzA2MzcgMDY0NSAwNjQ1OzA2MzcgMDY0NSAwNjQ1OworRkQ3NDtGRDc0O0ZENzQ7MDYzNyAwNjQ1IDA2NEE7MDYzNyAwNjQ1IDA2NEE7CitGRDc1O0ZENzU7RkQ3NTswNjM5IDA2MkMgMDY0NTswNjM5IDA2MkMgMDY0NTsKK0ZENzY7RkQ3NjtGRDc2OzA2MzkgMDY0NSAwNjQ1OzA2MzkgMDY0NSAwNjQ1OworRkQ3NztGRDc3O0ZENzc7MDYzOSAwNjQ1IDA2NDU7MDYzOSAwNjQ1IDA2NDU7CitGRDc4O0ZENzg7RkQ3ODswNjM5IDA2NDUgMDY0OTswNjM5IDA2NDUgMDY0OTsKK0ZENzk7RkQ3OTtGRDc5OzA2M0EgMDY0NSAwNjQ1OzA2M0EgMDY0NSAwNjQ1OworRkQ3QTtGRDdBO0ZEN0E7MDYzQSAwNjQ1IDA2NEE7MDYzQSAwNjQ1IDA2NEE7CitGRDdCO0ZEN0I7RkQ3QjswNjNBIDA2NDUgMDY0OTswNjNBIDA2NDUgMDY0OTsKK0ZEN0M7RkQ3QztGRDdDOzA2NDEgMDYyRSAwNjQ1OzA2NDEgMDYyRSAwNjQ1OworRkQ3RDtGRDdEO0ZEN0Q7MDY0MSAwNjJFIDA2NDU7MDY0MSAwNjJFIDA2NDU7CitGRDdFO0ZEN0U7RkQ3RTswNjQyIDA2NDUgMDYyRDswNjQyIDA2NDUgMDYyRDsKK0ZEN0Y7RkQ3RjtGRDdGOzA2NDIgMDY0NSAwNjQ1OzA2NDIgMDY0NSAwNjQ1OworRkQ4MDtGRDgwO0ZEODA7MDY0NCAwNjJEIDA2NDU7MDY0NCAwNjJEIDA2NDU7CitGRDgxO0ZEODE7RkQ4MTswNjQ0IDA2MkQgMDY0QTswNjQ0IDA2MkQgMDY0QTsKK0ZEODI7RkQ4MjtGRDgyOzA2NDQgMDYyRCAwNjQ5OzA2NDQgMDYyRCAwNjQ5OworRkQ4MztGRDgzO0ZEODM7MDY0NCAwNjJDIDA2MkM7MDY0NCAwNjJDIDA2MkM7CitGRDg0O0ZEODQ7RkQ4NDswNjQ0IDA2MkMgMDYyQzswNjQ0IDA2MkMgMDYyQzsKK0ZEODU7RkQ4NTtGRDg1OzA2NDQgMDYyRSAwNjQ1OzA2NDQgMDYyRSAwNjQ1OworRkQ4NjtGRDg2O0ZEODY7MDY0NCAwNjJFIDA2NDU7MDY0NCAwNjJFIDA2NDU7CitGRDg3O0ZEODc7RkQ4NzswNjQ0IDA2NDUgMDYyRDswNjQ0IDA2NDUgMDYyRDsKK0ZEODg7RkQ4ODtGRDg4OzA2NDQgMDY0NSAwNjJEOzA2NDQgMDY0NSAwNjJEOworRkQ4OTtGRDg5O0ZEODk7MDY0NSAwNjJEIDA2MkM7MDY0NSAwNjJEIDA2MkM7CitGRDhBO0ZEOEE7RkQ4QTswNjQ1IDA2MkQgMDY0NTswNjQ1IDA2MkQgMDY0NTsKK0ZEOEI7RkQ4QjtGRDhCOzA2NDUgMDYyRCAwNjRBOzA2NDUgMDYyRCAwNjRBOworRkQ4QztGRDhDO0ZEOEM7MDY0NSAwNjJDIDA2MkQ7MDY0NSAwNjJDIDA2MkQ7CitGRDhEO0ZEOEQ7RkQ4RDswNjQ1IDA2MkMgMDY0NTswNjQ1IDA2MkMgMDY0NTsKK0ZEOEU7RkQ4RTtGRDhFOzA2NDUgMDYyRSAwNjJDOzA2NDUgMDYyRSAwNjJDOworRkQ4RjtGRDhGO0ZEOEY7MDY0NSAwNjJFIDA2NDU7MDY0NSAwNjJFIDA2NDU7CitGRDkyO0ZEOTI7RkQ5MjswNjQ1IDA2MkMgMDYyRTswNjQ1IDA2MkMgMDYyRTsKK0ZEOTM7RkQ5MztGRDkzOzA2NDcgMDY0NSAwNjJDOzA2NDcgMDY0NSAwNjJDOworRkQ5NDtGRDk0O0ZEOTQ7MDY0NyAwNjQ1IDA2NDU7MDY0NyAwNjQ1IDA2NDU7CitGRDk1O0ZEOTU7RkQ5NTswNjQ2IDA2MkQgMDY0NTswNjQ2IDA2MkQgMDY0NTsKK0ZEOTY7RkQ5NjtGRDk2OzA2NDYgMDYyRCAwNjQ5OzA2NDYgMDYyRCAwNjQ5OworRkQ5NztGRDk3O0ZEOTc7MDY0NiAwNjJDIDA2NDU7MDY0NiAwNjJDIDA2NDU7CitGRDk4O0ZEOTg7RkQ5ODswNjQ2IDA2MkMgMDY0NTswNjQ2IDA2MkMgMDY0NTsKK0ZEOTk7RkQ5OTtGRDk5OzA2NDYgMDYyQyAwNjQ5OzA2NDYgMDYyQyAwNjQ5OworRkQ5QTtGRDlBO0ZEOUE7MDY0NiAwNjQ1IDA2NEE7MDY0NiAwNjQ1IDA2NEE7CitGRDlCO0ZEOUI7RkQ5QjswNjQ2IDA2NDUgMDY0OTswNjQ2IDA2NDUgMDY0OTsKK0ZEOUM7RkQ5QztGRDlDOzA2NEEgMDY0NSAwNjQ1OzA2NEEgMDY0NSAwNjQ1OworRkQ5RDtGRDlEO0ZEOUQ7MDY0QSAwNjQ1IDA2NDU7MDY0QSAwNjQ1IDA2NDU7CitGRDlFO0ZEOUU7RkQ5RTswNjI4IDA2MkUgMDY0QTswNjI4IDA2MkUgMDY0QTsKK0ZEOUY7RkQ5RjtGRDlGOzA2MkEgMDYyQyAwNjRBOzA2MkEgMDYyQyAwNjRBOworRkRBMDtGREEwO0ZEQTA7MDYyQSAwNjJDIDA2NDk7MDYyQSAwNjJDIDA2NDk7CitGREExO0ZEQTE7RkRBMTswNjJBIDA2MkUgMDY0QTswNjJBIDA2MkUgMDY0QTsKK0ZEQTI7RkRBMjtGREEyOzA2MkEgMDYyRSAwNjQ5OzA2MkEgMDYyRSAwNjQ5OworRkRBMztGREEzO0ZEQTM7MDYyQSAwNjQ1IDA2NEE7MDYyQSAwNjQ1IDA2NEE7CitGREE0O0ZEQTQ7RkRBNDswNjJBIDA2NDUgMDY0OTswNjJBIDA2NDUgMDY0OTsKK0ZEQTU7RkRBNTtGREE1OzA2MkMgMDY0NSAwNjRBOzA2MkMgMDY0NSAwNjRBOworRkRBNjtGREE2O0ZEQTY7MDYyQyAwNjJEIDA2NDk7MDYyQyAwNjJEIDA2NDk7CitGREE3O0ZEQTc7RkRBNzswNjJDIDA2NDUgMDY0OTswNjJDIDA2NDUgMDY0OTsKK0ZEQTg7RkRBODtGREE4OzA2MzMgMDYyRSAwNjQ5OzA2MzMgMDYyRSAwNjQ5OworRkRBOTtGREE5O0ZEQTk7MDYzNSAwNjJEIDA2NEE7MDYzNSAwNjJEIDA2NEE7CitGREFBO0ZEQUE7RkRBQTswNjM0IDA2MkQgMDY0QTswNjM0IDA2MkQgMDY0QTsKK0ZEQUI7RkRBQjtGREFCOzA2MzYgMDYyRCAwNjRBOzA2MzYgMDYyRCAwNjRBOworRkRBQztGREFDO0ZEQUM7MDY0NCAwNjJDIDA2NEE7MDY0NCAwNjJDIDA2NEE7CitGREFEO0ZEQUQ7RkRBRDswNjQ0IDA2NDUgMDY0QTswNjQ0IDA2NDUgMDY0QTsKK0ZEQUU7RkRBRTtGREFFOzA2NEEgMDYyRCAwNjRBOzA2NEEgMDYyRCAwNjRBOworRkRBRjtGREFGO0ZEQUY7MDY0QSAwNjJDIDA2NEE7MDY0QSAwNjJDIDA2NEE7CitGREIwO0ZEQjA7RkRCMDswNjRBIDA2NDUgMDY0QTswNjRBIDA2NDUgMDY0QTsKK0ZEQjE7RkRCMTtGREIxOzA2NDUgMDY0NSAwNjRBOzA2NDUgMDY0NSAwNjRBOworRkRCMjtGREIyO0ZEQjI7MDY0MiAwNjQ1IDA2NEE7MDY0MiAwNjQ1IDA2NEE7CitGREIzO0ZEQjM7RkRCMzswNjQ2IDA2MkQgMDY0QTswNjQ2IDA2MkQgMDY0QTsKK0ZEQjQ7RkRCNDtGREI0OzA2NDIgMDY0NSAwNjJEOzA2NDIgMDY0NSAwNjJEOworRkRCNTtGREI1O0ZEQjU7MDY0NCAwNjJEIDA2NDU7MDY0NCAwNjJEIDA2NDU7CitGREI2O0ZEQjY7RkRCNjswNjM5IDA2NDUgMDY0QTswNjM5IDA2NDUgMDY0QTsKK0ZEQjc7RkRCNztGREI3OzA2NDMgMDY0NSAwNjRBOzA2NDMgMDY0NSAwNjRBOworRkRCODtGREI4O0ZEQjg7MDY0NiAwNjJDIDA2MkQ7MDY0NiAwNjJDIDA2MkQ7CitGREI5O0ZEQjk7RkRCOTswNjQ1IDA2MkUgMDY0QTswNjQ1IDA2MkUgMDY0QTsKK0ZEQkE7RkRCQTtGREJBOzA2NDQgMDYyQyAwNjQ1OzA2NDQgMDYyQyAwNjQ1OworRkRCQjtGREJCO0ZEQkI7MDY0MyAwNjQ1IDA2NDU7MDY0MyAwNjQ1IDA2NDU7CitGREJDO0ZEQkM7RkRCQzswNjQ0IDA2MkMgMDY0NTswNjQ0IDA2MkMgMDY0NTsKK0ZEQkQ7RkRCRDtGREJEOzA2NDYgMDYyQyAwNjJEOzA2NDYgMDYyQyAwNjJEOworRkRCRTtGREJFO0ZEQkU7MDYyQyAwNjJEIDA2NEE7MDYyQyAwNjJEIDA2NEE7CitGREJGO0ZEQkY7RkRCRjswNjJEIDA2MkMgMDY0QTswNjJEIDA2MkMgMDY0QTsKK0ZEQzA7RkRDMDtGREMwOzA2NDUgMDYyQyAwNjRBOzA2NDUgMDYyQyAwNjRBOworRkRDMTtGREMxO0ZEQzE7MDY0MSAwNjQ1IDA2NEE7MDY0MSAwNjQ1IDA2NEE7CitGREMyO0ZEQzI7RkRDMjswNjI4IDA2MkQgMDY0QTswNjI4IDA2MkQgMDY0QTsKK0ZEQzM7RkRDMztGREMzOzA2NDMgMDY0NSAwNjQ1OzA2NDMgMDY0NSAwNjQ1OworRkRDNDtGREM0O0ZEQzQ7MDYzOSAwNjJDIDA2NDU7MDYzOSAwNjJDIDA2NDU7CitGREM1O0ZEQzU7RkRDNTswNjM1IDA2NDUgMDY0NTswNjM1IDA2NDUgMDY0NTsKK0ZEQzY7RkRDNjtGREM2OzA2MzMgMDYyRSAwNjRBOzA2MzMgMDYyRSAwNjRBOworRkRDNztGREM3O0ZEQzc7MDY0NiAwNjJDIDA2NEE7MDY0NiAwNjJDIDA2NEE7CitGREYwO0ZERjA7RkRGMDswNjM1IDA2NDQgMDZEMjswNjM1IDA2NDQgMDZEMjsKK0ZERjE7RkRGMTtGREYxOzA2NDIgMDY0NCAwNkQyOzA2NDIgMDY0NCAwNkQyOworRkRGMjtGREYyO0ZERjI7MDYyNyAwNjQ0IDA2NDQgMDY0NzswNjI3IDA2NDQgMDY0NCAwNjQ3OworRkRGMztGREYzO0ZERjM7MDYyNyAwNjQzIDA2MjggMDYzMTswNjI3IDA2NDMgMDYyOCAwNjMxOworRkRGNDtGREY0O0ZERjQ7MDY0NSAwNjJEIDA2NDUgMDYyRjswNjQ1IDA2MkQgMDY0NSAwNjJGOworRkRGNTtGREY1O0ZERjU7MDYzNSAwNjQ0IDA2MzkgMDY0NTswNjM1IDA2NDQgMDYzOSAwNjQ1OworRkRGNjtGREY2O0ZERjY7MDYzMSAwNjMzIDA2NDggMDY0NDswNjMxIDA2MzMgMDY0OCAwNjQ0OworRkRGNztGREY3O0ZERjc7MDYzOSAwNjQ0IDA2NEEgMDY0NzswNjM5IDA2NDQgMDY0QSAwNjQ3OworRkRGODtGREY4O0ZERjg7MDY0OCAwNjMzIDA2NDQgMDY0NTswNjQ4IDA2MzMgMDY0NCAwNjQ1OworRkRGOTtGREY5O0ZERjk7MDYzNSAwNjQ0IDA2NDk7MDYzNSAwNjQ0IDA2NDk7CitGREZBO0ZERkE7RkRGQTswNjM1IDA2NDQgMDY0OSAwMDIwIDA2MjcgMDY0NCAwNjQ0IDA2NDcgMDAyMCAwNjM5IDA2NDQgMDY0QSAwNjQ3IDAwMjAgMDY0OCAwNjMzIDA2NDQgMDY0NTswNjM1IDA2NDQgMDY0OSAwMDIwIDA2MjcgMDY0NCAwNjQ0IDA2NDcgMDAyMCAwNjM5IDA2NDQgMDY0QSAwNjQ3IDAwMjAgMDY0OCAwNjMzIDA2NDQgMDY0NTsKK0ZERkI7RkRGQjtGREZCOzA2MkMgMDY0NCAwMDIwIDA2MkMgMDY0NCAwNjI3IDA2NDQgMDY0NzswNjJDIDA2NDQgMDAyMCAwNjJDIDA2NDQgMDYyNyAwNjQ0IDA2NDc7CitGREZDO0ZERkM7RkRGQzswNjMxIDA2Q0MgMDYyNyAwNjQ0OzA2MzEgMDZDQyAwNjI3IDA2NDQ7CitGRTMwO0ZFMzA7RkUzMDswMDJFIDAwMkU7MDAyRSAwMDJFOworRkUzMTtGRTMxO0ZFMzE7MjAxNDsyMDE0OworRkUzMjtGRTMyO0ZFMzI7MjAxMzsyMDEzOworRkUzMztGRTMzO0ZFMzM7MDA1RjswMDVGOworRkUzNDtGRTM0O0ZFMzQ7MDA1RjswMDVGOworRkUzNTtGRTM1O0ZFMzU7MDAyODswMDI4OworRkUzNjtGRTM2O0ZFMzY7MDAyOTswMDI5OworRkUzNztGRTM3O0ZFMzc7MDA3QjswMDdCOworRkUzODtGRTM4O0ZFMzg7MDA3RDswMDdEOworRkUzOTtGRTM5O0ZFMzk7MzAxNDszMDE0OworRkUzQTtGRTNBO0ZFM0E7MzAxNTszMDE1OworRkUzQjtGRTNCO0ZFM0I7MzAxMDszMDEwOworRkUzQztGRTNDO0ZFM0M7MzAxMTszMDExOworRkUzRDtGRTNEO0ZFM0Q7MzAwQTszMDBBOworRkUzRTtGRTNFO0ZFM0U7MzAwQjszMDBCOworRkUzRjtGRTNGO0ZFM0Y7MzAwODszMDA4OworRkU0MDtGRTQwO0ZFNDA7MzAwOTszMDA5OworRkU0MTtGRTQxO0ZFNDE7MzAwQzszMDBDOworRkU0MjtGRTQyO0ZFNDI7MzAwRDszMDBEOworRkU0MztGRTQzO0ZFNDM7MzAwRTszMDBFOworRkU0NDtGRTQ0O0ZFNDQ7MzAwRjszMDBGOworRkU0OTtGRTQ5O0ZFNDk7MDAyMCAwMzA1OzAwMjAgMDMwNTsKK0ZFNEE7RkU0QTtGRTRBOzAwMjAgMDMwNTswMDIwIDAzMDU7CitGRTRCO0ZFNEI7RkU0QjswMDIwIDAzMDU7MDAyMCAwMzA1OworRkU0QztGRTRDO0ZFNEM7MDAyMCAwMzA1OzAwMjAgMDMwNTsKK0ZFNEQ7RkU0RDtGRTREOzAwNUY7MDA1RjsKK0ZFNEU7RkU0RTtGRTRFOzAwNUY7MDA1RjsKK0ZFNEY7RkU0RjtGRTRGOzAwNUY7MDA1RjsKK0ZFNTA7RkU1MDtGRTUwOzAwMkM7MDAyQzsKK0ZFNTE7RkU1MTtGRTUxOzMwMDE7MzAwMTsKK0ZFNTI7RkU1MjtGRTUyOzAwMkU7MDAyRTsKK0ZFNTQ7RkU1NDtGRTU0OzAwM0I7MDAzQjsKK0ZFNTU7RkU1NTtGRTU1OzAwM0E7MDAzQTsKK0ZFNTY7RkU1NjtGRTU2OzAwM0Y7MDAzRjsKK0ZFNTc7RkU1NztGRTU3OzAwMjE7MDAyMTsKK0ZFNTg7RkU1ODtGRTU4OzIwMTQ7MjAxNDsKK0ZFNTk7RkU1OTtGRTU5OzAwMjg7MDAyODsKK0ZFNUE7RkU1QTtGRTVBOzAwMjk7MDAyOTsKK0ZFNUI7RkU1QjtGRTVCOzAwN0I7MDA3QjsKK0ZFNUM7RkU1QztGRTVDOzAwN0Q7MDA3RDsKK0ZFNUQ7RkU1RDtGRTVEOzMwMTQ7MzAxNDsKK0ZFNUU7RkU1RTtGRTVFOzMwMTU7MzAxNTsKK0ZFNUY7RkU1RjtGRTVGOzAwMjM7MDAyMzsKK0ZFNjA7RkU2MDtGRTYwOzAwMjY7MDAyNjsKK0ZFNjE7RkU2MTtGRTYxOzAwMkE7MDAyQTsKK0ZFNjI7RkU2MjtGRTYyOzAwMkI7MDAyQjsKK0ZFNjM7RkU2MztGRTYzOzAwMkQ7MDAyRDsKK0ZFNjQ7RkU2NDtGRTY0OzAwM0M7MDAzQzsKK0ZFNjU7RkU2NTtGRTY1OzAwM0U7MDAzRTsKK0ZFNjY7RkU2NjtGRTY2OzAwM0Q7MDAzRDsKK0ZFNjg7RkU2ODtGRTY4OzAwNUM7MDA1QzsKK0ZFNjk7RkU2OTtGRTY5OzAwMjQ7MDAyNDsKK0ZFNkE7RkU2QTtGRTZBOzAwMjU7MDAyNTsKK0ZFNkI7RkU2QjtGRTZCOzAwNDA7MDA0MDsKK0ZFNzA7RkU3MDtGRTcwOzAwMjAgMDY0QjswMDIwIDA2NEI7CitGRTcxO0ZFNzE7RkU3MTswNjQwIDA2NEI7MDY0MCAwNjRCOworRkU3MjtGRTcyO0ZFNzI7MDAyMCAwNjRDOzAwMjAgMDY0QzsKK0ZFNzQ7RkU3NDtGRTc0OzAwMjAgMDY0RDswMDIwIDA2NEQ7CitGRTc2O0ZFNzY7RkU3NjswMDIwIDA2NEU7MDAyMCAwNjRFOworRkU3NztGRTc3O0ZFNzc7MDY0MCAwNjRFOzA2NDAgMDY0RTsKK0ZFNzg7RkU3ODtGRTc4OzAwMjAgMDY0RjswMDIwIDA2NEY7CitGRTc5O0ZFNzk7RkU3OTswNjQwIDA2NEY7MDY0MCAwNjRGOworRkU3QTtGRTdBO0ZFN0E7MDAyMCAwNjUwOzAwMjAgMDY1MDsKK0ZFN0I7RkU3QjtGRTdCOzA2NDAgMDY1MDswNjQwIDA2NTA7CitGRTdDO0ZFN0M7RkU3QzswMDIwIDA2NTE7MDAyMCAwNjUxOworRkU3RDtGRTdEO0ZFN0Q7MDY0MCAwNjUxOzA2NDAgMDY1MTsKK0ZFN0U7RkU3RTtGRTdFOzAwMjAgMDY1MjswMDIwIDA2NTI7CitGRTdGO0ZFN0Y7RkU3RjswNjQwIDA2NTI7MDY0MCAwNjUyOworRkU4MDtGRTgwO0ZFODA7MDYyMTswNjIxOworRkU4MTtGRTgxO0ZFODE7MDYyMjswNjI3IDA2NTM7CitGRTgyO0ZFODI7RkU4MjswNjIyOzA2MjcgMDY1MzsKK0ZFODM7RkU4MztGRTgzOzA2MjM7MDYyNyAwNjU0OworRkU4NDtGRTg0O0ZFODQ7MDYyMzswNjI3IDA2NTQ7CitGRTg1O0ZFODU7RkU4NTswNjI0OzA2NDggMDY1NDsKK0ZFODY7RkU4NjtGRTg2OzA2MjQ7MDY0OCAwNjU0OworRkU4NztGRTg3O0ZFODc7MDYyNTswNjI3IDA2NTU7CitGRTg4O0ZFODg7RkU4ODswNjI1OzA2MjcgMDY1NTsKK0ZFODk7RkU4OTtGRTg5OzA2MjY7MDY0QSAwNjU0OworRkU4QTtGRThBO0ZFOEE7MDYyNjswNjRBIDA2NTQ7CitGRThCO0ZFOEI7RkU4QjswNjI2OzA2NEEgMDY1NDsKK0ZFOEM7RkU4QztGRThDOzA2MjY7MDY0QSAwNjU0OworRkU4RDtGRThEO0ZFOEQ7MDYyNzswNjI3OworRkU4RTtGRThFO0ZFOEU7MDYyNzswNjI3OworRkU4RjtGRThGO0ZFOEY7MDYyODswNjI4OworRkU5MDtGRTkwO0ZFOTA7MDYyODswNjI4OworRkU5MTtGRTkxO0ZFOTE7MDYyODswNjI4OworRkU5MjtGRTkyO0ZFOTI7MDYyODswNjI4OworRkU5MztGRTkzO0ZFOTM7MDYyOTswNjI5OworRkU5NDtGRTk0O0ZFOTQ7MDYyOTswNjI5OworRkU5NTtGRTk1O0ZFOTU7MDYyQTswNjJBOworRkU5NjtGRTk2O0ZFOTY7MDYyQTswNjJBOworRkU5NztGRTk3O0ZFOTc7MDYyQTswNjJBOworRkU5ODtGRTk4O0ZFOTg7MDYyQTswNjJBOworRkU5OTtGRTk5O0ZFOTk7MDYyQjswNjJCOworRkU5QTtGRTlBO0ZFOUE7MDYyQjswNjJCOworRkU5QjtGRTlCO0ZFOUI7MDYyQjswNjJCOworRkU5QztGRTlDO0ZFOUM7MDYyQjswNjJCOworRkU5RDtGRTlEO0ZFOUQ7MDYyQzswNjJDOworRkU5RTtGRTlFO0ZFOUU7MDYyQzswNjJDOworRkU5RjtGRTlGO0ZFOUY7MDYyQzswNjJDOworRkVBMDtGRUEwO0ZFQTA7MDYyQzswNjJDOworRkVBMTtGRUExO0ZFQTE7MDYyRDswNjJEOworRkVBMjtGRUEyO0ZFQTI7MDYyRDswNjJEOworRkVBMztGRUEzO0ZFQTM7MDYyRDswNjJEOworRkVBNDtGRUE0O0ZFQTQ7MDYyRDswNjJEOworRkVBNTtGRUE1O0ZFQTU7MDYyRTswNjJFOworRkVBNjtGRUE2O0ZFQTY7MDYyRTswNjJFOworRkVBNztGRUE3O0ZFQTc7MDYyRTswNjJFOworRkVBODtGRUE4O0ZFQTg7MDYyRTswNjJFOworRkVBOTtGRUE5O0ZFQTk7MDYyRjswNjJGOworRkVBQTtGRUFBO0ZFQUE7MDYyRjswNjJGOworRkVBQjtGRUFCO0ZFQUI7MDYzMDswNjMwOworRkVBQztGRUFDO0ZFQUM7MDYzMDswNjMwOworRkVBRDtGRUFEO0ZFQUQ7MDYzMTswNjMxOworRkVBRTtGRUFFO0ZFQUU7MDYzMTswNjMxOworRkVBRjtGRUFGO0ZFQUY7MDYzMjswNjMyOworRkVCMDtGRUIwO0ZFQjA7MDYzMjswNjMyOworRkVCMTtGRUIxO0ZFQjE7MDYzMzswNjMzOworRkVCMjtGRUIyO0ZFQjI7MDYzMzswNjMzOworRkVCMztGRUIzO0ZFQjM7MDYzMzswNjMzOworRkVCNDtGRUI0O0ZFQjQ7MDYzMzswNjMzOworRkVCNTtGRUI1O0ZFQjU7MDYzNDswNjM0OworRkVCNjtGRUI2O0ZFQjY7MDYzNDswNjM0OworRkVCNztGRUI3O0ZFQjc7MDYzNDswNjM0OworRkVCODtGRUI4O0ZFQjg7MDYzNDswNjM0OworRkVCOTtGRUI5O0ZFQjk7MDYzNTswNjM1OworRkVCQTtGRUJBO0ZFQkE7MDYzNTswNjM1OworRkVCQjtGRUJCO0ZFQkI7MDYzNTswNjM1OworRkVCQztGRUJDO0ZFQkM7MDYzNTswNjM1OworRkVCRDtGRUJEO0ZFQkQ7MDYzNjswNjM2OworRkVCRTtGRUJFO0ZFQkU7MDYzNjswNjM2OworRkVCRjtGRUJGO0ZFQkY7MDYzNjswNjM2OworRkVDMDtGRUMwO0ZFQzA7MDYzNjswNjM2OworRkVDMTtGRUMxO0ZFQzE7MDYzNzswNjM3OworRkVDMjtGRUMyO0ZFQzI7MDYzNzswNjM3OworRkVDMztGRUMzO0ZFQzM7MDYzNzswNjM3OworRkVDNDtGRUM0O0ZFQzQ7MDYzNzswNjM3OworRkVDNTtGRUM1O0ZFQzU7MDYzODswNjM4OworRkVDNjtGRUM2O0ZFQzY7MDYzODswNjM4OworRkVDNztGRUM3O0ZFQzc7MDYzODswNjM4OworRkVDODtGRUM4O0ZFQzg7MDYzODswNjM4OworRkVDOTtGRUM5O0ZFQzk7MDYzOTswNjM5OworRkVDQTtGRUNBO0ZFQ0E7MDYzOTswNjM5OworRkVDQjtGRUNCO0ZFQ0I7MDYzOTswNjM5OworRkVDQztGRUNDO0ZFQ0M7MDYzOTswNjM5OworRkVDRDtGRUNEO0ZFQ0Q7MDYzQTswNjNBOworRkVDRTtGRUNFO0ZFQ0U7MDYzQTswNjNBOworRkVDRjtGRUNGO0ZFQ0Y7MDYzQTswNjNBOworRkVEMDtGRUQwO0ZFRDA7MDYzQTswNjNBOworRkVEMTtGRUQxO0ZFRDE7MDY0MTswNjQxOworRkVEMjtGRUQyO0ZFRDI7MDY0MTswNjQxOworRkVEMztGRUQzO0ZFRDM7MDY0MTswNjQxOworRkVENDtGRUQ0O0ZFRDQ7MDY0MTswNjQxOworRkVENTtGRUQ1O0ZFRDU7MDY0MjswNjQyOworRkVENjtGRUQ2O0ZFRDY7MDY0MjswNjQyOworRkVENztGRUQ3O0ZFRDc7MDY0MjswNjQyOworRkVEODtGRUQ4O0ZFRDg7MDY0MjswNjQyOworRkVEOTtGRUQ5O0ZFRDk7MDY0MzswNjQzOworRkVEQTtGRURBO0ZFREE7MDY0MzswNjQzOworRkVEQjtGRURCO0ZFREI7MDY0MzswNjQzOworRkVEQztGRURDO0ZFREM7MDY0MzswNjQzOworRkVERDtGRUREO0ZFREQ7MDY0NDswNjQ0OworRkVERTtGRURFO0ZFREU7MDY0NDswNjQ0OworRkVERjtGRURGO0ZFREY7MDY0NDswNjQ0OworRkVFMDtGRUUwO0ZFRTA7MDY0NDswNjQ0OworRkVFMTtGRUUxO0ZFRTE7MDY0NTswNjQ1OworRkVFMjtGRUUyO0ZFRTI7MDY0NTswNjQ1OworRkVFMztGRUUzO0ZFRTM7MDY0NTswNjQ1OworRkVFNDtGRUU0O0ZFRTQ7MDY0NTswNjQ1OworRkVFNTtGRUU1O0ZFRTU7MDY0NjswNjQ2OworRkVFNjtGRUU2O0ZFRTY7MDY0NjswNjQ2OworRkVFNztGRUU3O0ZFRTc7MDY0NjswNjQ2OworRkVFODtGRUU4O0ZFRTg7MDY0NjswNjQ2OworRkVFOTtGRUU5O0ZFRTk7MDY0NzswNjQ3OworRkVFQTtGRUVBO0ZFRUE7MDY0NzswNjQ3OworRkVFQjtGRUVCO0ZFRUI7MDY0NzswNjQ3OworRkVFQztGRUVDO0ZFRUM7MDY0NzswNjQ3OworRkVFRDtGRUVEO0ZFRUQ7MDY0ODswNjQ4OworRkVFRTtGRUVFO0ZFRUU7MDY0ODswNjQ4OworRkVFRjtGRUVGO0ZFRUY7MDY0OTswNjQ5OworRkVGMDtGRUYwO0ZFRjA7MDY0OTswNjQ5OworRkVGMTtGRUYxO0ZFRjE7MDY0QTswNjRBOworRkVGMjtGRUYyO0ZFRjI7MDY0QTswNjRBOworRkVGMztGRUYzO0ZFRjM7MDY0QTswNjRBOworRkVGNDtGRUY0O0ZFRjQ7MDY0QTswNjRBOworRkVGNTtGRUY1O0ZFRjU7MDY0NCAwNjIyOzA2NDQgMDYyNyAwNjUzOworRkVGNjtGRUY2O0ZFRjY7MDY0NCAwNjIyOzA2NDQgMDYyNyAwNjUzOworRkVGNztGRUY3O0ZFRjc7MDY0NCAwNjIzOzA2NDQgMDYyNyAwNjU0OworRkVGODtGRUY4O0ZFRjg7MDY0NCAwNjIzOzA2NDQgMDYyNyAwNjU0OworRkVGOTtGRUY5O0ZFRjk7MDY0NCAwNjI1OzA2NDQgMDYyNyAwNjU1OworRkVGQTtGRUZBO0ZFRkE7MDY0NCAwNjI1OzA2NDQgMDYyNyAwNjU1OworRkVGQjtGRUZCO0ZFRkI7MDY0NCAwNjI3OzA2NDQgMDYyNzsKK0ZFRkM7RkVGQztGRUZDOzA2NDQgMDYyNzswNjQ0IDA2Mjc7CitGRjAxO0ZGMDE7RkYwMTswMDIxOzAwMjE7CitGRjAyO0ZGMDI7RkYwMjswMDIyOzAwMjI7CitGRjAzO0ZGMDM7RkYwMzswMDIzOzAwMjM7CitGRjA0O0ZGMDQ7RkYwNDswMDI0OzAwMjQ7CitGRjA1O0ZGMDU7RkYwNTswMDI1OzAwMjU7CitGRjA2O0ZGMDY7RkYwNjswMDI2OzAwMjY7CitGRjA3O0ZGMDc7RkYwNzswMDI3OzAwMjc7CitGRjA4O0ZGMDg7RkYwODswMDI4OzAwMjg7CitGRjA5O0ZGMDk7RkYwOTswMDI5OzAwMjk7CitGRjBBO0ZGMEE7RkYwQTswMDJBOzAwMkE7CitGRjBCO0ZGMEI7RkYwQjswMDJCOzAwMkI7CitGRjBDO0ZGMEM7RkYwQzswMDJDOzAwMkM7CitGRjBEO0ZGMEQ7RkYwRDswMDJEOzAwMkQ7CitGRjBFO0ZGMEU7RkYwRTswMDJFOzAwMkU7CitGRjBGO0ZGMEY7RkYwRjswMDJGOzAwMkY7CitGRjEwO0ZGMTA7RkYxMDswMDMwOzAwMzA7CitGRjExO0ZGMTE7RkYxMTswMDMxOzAwMzE7CitGRjEyO0ZGMTI7RkYxMjswMDMyOzAwMzI7CitGRjEzO0ZGMTM7RkYxMzswMDMzOzAwMzM7CitGRjE0O0ZGMTQ7RkYxNDswMDM0OzAwMzQ7CitGRjE1O0ZGMTU7RkYxNTswMDM1OzAwMzU7CitGRjE2O0ZGMTY7RkYxNjswMDM2OzAwMzY7CitGRjE3O0ZGMTc7RkYxNzswMDM3OzAwMzc7CitGRjE4O0ZGMTg7RkYxODswMDM4OzAwMzg7CitGRjE5O0ZGMTk7RkYxOTswMDM5OzAwMzk7CitGRjFBO0ZGMUE7RkYxQTswMDNBOzAwM0E7CitGRjFCO0ZGMUI7RkYxQjswMDNCOzAwM0I7CitGRjFDO0ZGMUM7RkYxQzswMDNDOzAwM0M7CitGRjFEO0ZGMUQ7RkYxRDswMDNEOzAwM0Q7CitGRjFFO0ZGMUU7RkYxRTswMDNFOzAwM0U7CitGRjFGO0ZGMUY7RkYxRjswMDNGOzAwM0Y7CitGRjIwO0ZGMjA7RkYyMDswMDQwOzAwNDA7CitGRjIxO0ZGMjE7RkYyMTswMDQxOzAwNDE7CitGRjIyO0ZGMjI7RkYyMjswMDQyOzAwNDI7CitGRjIzO0ZGMjM7RkYyMzswMDQzOzAwNDM7CitGRjI0O0ZGMjQ7RkYyNDswMDQ0OzAwNDQ7CitGRjI1O0ZGMjU7RkYyNTswMDQ1OzAwNDU7CitGRjI2O0ZGMjY7RkYyNjswMDQ2OzAwNDY7CitGRjI3O0ZGMjc7RkYyNzswMDQ3OzAwNDc7CitGRjI4O0ZGMjg7RkYyODswMDQ4OzAwNDg7CitGRjI5O0ZGMjk7RkYyOTswMDQ5OzAwNDk7CitGRjJBO0ZGMkE7RkYyQTswMDRBOzAwNEE7CitGRjJCO0ZGMkI7RkYyQjswMDRCOzAwNEI7CitGRjJDO0ZGMkM7RkYyQzswMDRDOzAwNEM7CitGRjJEO0ZGMkQ7RkYyRDswMDREOzAwNEQ7CitGRjJFO0ZGMkU7RkYyRTswMDRFOzAwNEU7CitGRjJGO0ZGMkY7RkYyRjswMDRGOzAwNEY7CitGRjMwO0ZGMzA7RkYzMDswMDUwOzAwNTA7CitGRjMxO0ZGMzE7RkYzMTswMDUxOzAwNTE7CitGRjMyO0ZGMzI7RkYzMjswMDUyOzAwNTI7CitGRjMzO0ZGMzM7RkYzMzswMDUzOzAwNTM7CitGRjM0O0ZGMzQ7RkYzNDswMDU0OzAwNTQ7CitGRjM1O0ZGMzU7RkYzNTswMDU1OzAwNTU7CitGRjM2O0ZGMzY7RkYzNjswMDU2OzAwNTY7CitGRjM3O0ZGMzc7RkYzNzswMDU3OzAwNTc7CitGRjM4O0ZGMzg7RkYzODswMDU4OzAwNTg7CitGRjM5O0ZGMzk7RkYzOTswMDU5OzAwNTk7CitGRjNBO0ZGM0E7RkYzQTswMDVBOzAwNUE7CitGRjNCO0ZGM0I7RkYzQjswMDVCOzAwNUI7CitGRjNDO0ZGM0M7RkYzQzswMDVDOzAwNUM7CitGRjNEO0ZGM0Q7RkYzRDswMDVEOzAwNUQ7CitGRjNFO0ZGM0U7RkYzRTswMDVFOzAwNUU7CitGRjNGO0ZGM0Y7RkYzRjswMDVGOzAwNUY7CitGRjQwO0ZGNDA7RkY0MDswMDYwOzAwNjA7CitGRjQxO0ZGNDE7RkY0MTswMDYxOzAwNjE7CitGRjQyO0ZGNDI7RkY0MjswMDYyOzAwNjI7CitGRjQzO0ZGNDM7RkY0MzswMDYzOzAwNjM7CitGRjQ0O0ZGNDQ7RkY0NDswMDY0OzAwNjQ7CitGRjQ1O0ZGNDU7RkY0NTswMDY1OzAwNjU7CitGRjQ2O0ZGNDY7RkY0NjswMDY2OzAwNjY7CitGRjQ3O0ZGNDc7RkY0NzswMDY3OzAwNjc7CitGRjQ4O0ZGNDg7RkY0ODswMDY4OzAwNjg7CitGRjQ5O0ZGNDk7RkY0OTswMDY5OzAwNjk7CitGRjRBO0ZGNEE7RkY0QTswMDZBOzAwNkE7CitGRjRCO0ZGNEI7RkY0QjswMDZCOzAwNkI7CitGRjRDO0ZGNEM7RkY0QzswMDZDOzAwNkM7CitGRjREO0ZGNEQ7RkY0RDswMDZEOzAwNkQ7CitGRjRFO0ZGNEU7RkY0RTswMDZFOzAwNkU7CitGRjRGO0ZGNEY7RkY0RjswMDZGOzAwNkY7CitGRjUwO0ZGNTA7RkY1MDswMDcwOzAwNzA7CitGRjUxO0ZGNTE7RkY1MTswMDcxOzAwNzE7CitGRjUyO0ZGNTI7RkY1MjswMDcyOzAwNzI7CitGRjUzO0ZGNTM7RkY1MzswMDczOzAwNzM7CitGRjU0O0ZGNTQ7RkY1NDswMDc0OzAwNzQ7CitGRjU1O0ZGNTU7RkY1NTswMDc1OzAwNzU7CitGRjU2O0ZGNTY7RkY1NjswMDc2OzAwNzY7CitGRjU3O0ZGNTc7RkY1NzswMDc3OzAwNzc7CitGRjU4O0ZGNTg7RkY1ODswMDc4OzAwNzg7CitGRjU5O0ZGNTk7RkY1OTswMDc5OzAwNzk7CitGRjVBO0ZGNUE7RkY1QTswMDdBOzAwN0E7CitGRjVCO0ZGNUI7RkY1QjswMDdCOzAwN0I7CitGRjVDO0ZGNUM7RkY1QzswMDdDOzAwN0M7CitGRjVEO0ZGNUQ7RkY1RDswMDdEOzAwN0Q7CitGRjVFO0ZGNUU7RkY1RTswMDdFOzAwN0U7CitGRjVGO0ZGNUY7RkY1RjsyOTg1OzI5ODU7CitGRjYwO0ZGNjA7RkY2MDsyOTg2OzI5ODY7CitGRjYxO0ZGNjE7RkY2MTszMDAyOzMwMDI7CitGRjYyO0ZGNjI7RkY2MjszMDBDOzMwMEM7CitGRjYzO0ZGNjM7RkY2MzszMDBEOzMwMEQ7CitGRjY0O0ZGNjQ7RkY2NDszMDAxOzMwMDE7CitGRjY1O0ZGNjU7RkY2NTszMEZCOzMwRkI7CitGRjY2O0ZGNjY7RkY2NjszMEYyOzMwRjI7CitGRjY3O0ZGNjc7RkY2NzszMEExOzMwQTE7CitGRjY4O0ZGNjg7RkY2ODszMEEzOzMwQTM7CitGRjY5O0ZGNjk7RkY2OTszMEE1OzMwQTU7CitGRjZBO0ZGNkE7RkY2QTszMEE3OzMwQTc7CitGRjZCO0ZGNkI7RkY2QjszMEE5OzMwQTk7CitGRjZDO0ZGNkM7RkY2QzszMEUzOzMwRTM7CitGRjZEO0ZGNkQ7RkY2RDszMEU1OzMwRTU7CitGRjZFO0ZGNkU7RkY2RTszMEU3OzMwRTc7CitGRjZGO0ZGNkY7RkY2RjszMEMzOzMwQzM7CitGRjcwO0ZGNzA7RkY3MDszMEZDOzMwRkM7CitGRjcxO0ZGNzE7RkY3MTszMEEyOzMwQTI7CitGRjcyO0ZGNzI7RkY3MjszMEE0OzMwQTQ7CitGRjczO0ZGNzM7RkY3MzszMEE2OzMwQTY7CitGRjc0O0ZGNzQ7RkY3NDszMEE4OzMwQTg7CitGRjc1O0ZGNzU7RkY3NTszMEFBOzMwQUE7CitGRjc2O0ZGNzY7RkY3NjszMEFCOzMwQUI7CitGRjc3O0ZGNzc7RkY3NzszMEFEOzMwQUQ7CitGRjc4O0ZGNzg7RkY3ODszMEFGOzMwQUY7CitGRjc5O0ZGNzk7RkY3OTszMEIxOzMwQjE7CitGRjdBO0ZGN0E7RkY3QTszMEIzOzMwQjM7CitGRjdCO0ZGN0I7RkY3QjszMEI1OzMwQjU7CitGRjdDO0ZGN0M7RkY3QzszMEI3OzMwQjc7CitGRjdEO0ZGN0Q7RkY3RDszMEI5OzMwQjk7CitGRjdFO0ZGN0U7RkY3RTszMEJCOzMwQkI7CitGRjdGO0ZGN0Y7RkY3RjszMEJEOzMwQkQ7CitGRjgwO0ZGODA7RkY4MDszMEJGOzMwQkY7CitGRjgxO0ZGODE7RkY4MTszMEMxOzMwQzE7CitGRjgyO0ZGODI7RkY4MjszMEM0OzMwQzQ7CitGRjgzO0ZGODM7RkY4MzszMEM2OzMwQzY7CitGRjg0O0ZGODQ7RkY4NDszMEM4OzMwQzg7CitGRjg1O0ZGODU7RkY4NTszMENBOzMwQ0E7CitGRjg2O0ZGODY7RkY4NjszMENCOzMwQ0I7CitGRjg3O0ZGODc7RkY4NzszMENDOzMwQ0M7CitGRjg4O0ZGODg7RkY4ODszMENEOzMwQ0Q7CitGRjg5O0ZGODk7RkY4OTszMENFOzMwQ0U7CitGRjhBO0ZGOEE7RkY4QTszMENGOzMwQ0Y7CitGRjhCO0ZGOEI7RkY4QjszMEQyOzMwRDI7CitGRjhDO0ZGOEM7RkY4QzszMEQ1OzMwRDU7CitGRjhEO0ZGOEQ7RkY4RDszMEQ4OzMwRDg7CitGRjhFO0ZGOEU7RkY4RTszMERCOzMwREI7CitGRjhGO0ZGOEY7RkY4RjszMERFOzMwREU7CitGRjkwO0ZGOTA7RkY5MDszMERGOzMwREY7CitGRjkxO0ZGOTE7RkY5MTszMEUwOzMwRTA7CitGRjkyO0ZGOTI7RkY5MjszMEUxOzMwRTE7CitGRjkzO0ZGOTM7RkY5MzszMEUyOzMwRTI7CitGRjk0O0ZGOTQ7RkY5NDszMEU0OzMwRTQ7CitGRjk1O0ZGOTU7RkY5NTszMEU2OzMwRTY7CitGRjk2O0ZGOTY7RkY5NjszMEU4OzMwRTg7CitGRjk3O0ZGOTc7RkY5NzszMEU5OzMwRTk7CitGRjk4O0ZGOTg7RkY5ODszMEVBOzMwRUE7CitGRjk5O0ZGOTk7RkY5OTszMEVCOzMwRUI7CitGRjlBO0ZGOUE7RkY5QTszMEVDOzMwRUM7CitGRjlCO0ZGOUI7RkY5QjszMEVEOzMwRUQ7CitGRjlDO0ZGOUM7RkY5QzszMEVGOzMwRUY7CitGRjlEO0ZGOUQ7RkY5RDszMEYzOzMwRjM7CitGRjlFO0ZGOUU7RkY5RTszMDk5OzMwOTk7CitGRjlGO0ZGOUY7RkY5RjszMDlBOzMwOUE7CitGRkEwO0ZGQTA7RkZBMDsxMTYwOzExNjA7CitGRkExO0ZGQTE7RkZBMTsxMTAwOzExMDA7CitGRkEyO0ZGQTI7RkZBMjsxMTAxOzExMDE7CitGRkEzO0ZGQTM7RkZBMzsxMUFBOzExQUE7CitGRkE0O0ZGQTQ7RkZBNDsxMTAyOzExMDI7CitGRkE1O0ZGQTU7RkZBNTsxMUFDOzExQUM7CitGRkE2O0ZGQTY7RkZBNjsxMUFEOzExQUQ7CitGRkE3O0ZGQTc7RkZBNzsxMTAzOzExMDM7CitGRkE4O0ZGQTg7RkZBODsxMTA0OzExMDQ7CitGRkE5O0ZGQTk7RkZBOTsxMTA1OzExMDU7CitGRkFBO0ZGQUE7RkZBQTsxMUIwOzExQjA7CitGRkFCO0ZGQUI7RkZBQjsxMUIxOzExQjE7CitGRkFDO0ZGQUM7RkZBQzsxMUIyOzExQjI7CitGRkFEO0ZGQUQ7RkZBRDsxMUIzOzExQjM7CitGRkFFO0ZGQUU7RkZBRTsxMUI0OzExQjQ7CitGRkFGO0ZGQUY7RkZBRjsxMUI1OzExQjU7CitGRkIwO0ZGQjA7RkZCMDsxMTFBOzExMUE7CitGRkIxO0ZGQjE7RkZCMTsxMTA2OzExMDY7CitGRkIyO0ZGQjI7RkZCMjsxMTA3OzExMDc7CitGRkIzO0ZGQjM7RkZCMzsxMTA4OzExMDg7CitGRkI0O0ZGQjQ7RkZCNDsxMTIxOzExMjE7CitGRkI1O0ZGQjU7RkZCNTsxMTA5OzExMDk7CitGRkI2O0ZGQjY7RkZCNjsxMTBBOzExMEE7CitGRkI3O0ZGQjc7RkZCNzsxMTBCOzExMEI7CitGRkI4O0ZGQjg7RkZCODsxMTBDOzExMEM7CitGRkI5O0ZGQjk7RkZCOTsxMTBEOzExMEQ7CitGRkJBO0ZGQkE7RkZCQTsxMTBFOzExMEU7CitGRkJCO0ZGQkI7RkZCQjsxMTBGOzExMEY7CitGRkJDO0ZGQkM7RkZCQzsxMTEwOzExMTA7CitGRkJEO0ZGQkQ7RkZCRDsxMTExOzExMTE7CitGRkJFO0ZGQkU7RkZCRTsxMTEyOzExMTI7CitGRkMyO0ZGQzI7RkZDMjsxMTYxOzExNjE7CitGRkMzO0ZGQzM7RkZDMzsxMTYyOzExNjI7CitGRkM0O0ZGQzQ7RkZDNDsxMTYzOzExNjM7CitGRkM1O0ZGQzU7RkZDNTsxMTY0OzExNjQ7CitGRkM2O0ZGQzY7RkZDNjsxMTY1OzExNjU7CitGRkM3O0ZGQzc7RkZDNzsxMTY2OzExNjY7CitGRkNBO0ZGQ0E7RkZDQTsxMTY3OzExNjc7CitGRkNCO0ZGQ0I7RkZDQjsxMTY4OzExNjg7CitGRkNDO0ZGQ0M7RkZDQzsxMTY5OzExNjk7CitGRkNEO0ZGQ0Q7RkZDRDsxMTZBOzExNkE7CitGRkNFO0ZGQ0U7RkZDRTsxMTZCOzExNkI7CitGRkNGO0ZGQ0Y7RkZDRjsxMTZDOzExNkM7CitGRkQyO0ZGRDI7RkZEMjsxMTZEOzExNkQ7CitGRkQzO0ZGRDM7RkZEMzsxMTZFOzExNkU7CitGRkQ0O0ZGRDQ7RkZENDsxMTZGOzExNkY7CitGRkQ1O0ZGRDU7RkZENTsxMTcwOzExNzA7CitGRkQ2O0ZGRDY7RkZENjsxMTcxOzExNzE7CitGRkQ3O0ZGRDc7RkZENzsxMTcyOzExNzI7CitGRkRBO0ZGREE7RkZEQTsxMTczOzExNzM7CitGRkRCO0ZGREI7RkZEQjsxMTc0OzExNzQ7CitGRkRDO0ZGREM7RkZEQzsxMTc1OzExNzU7CitGRkUwO0ZGRTA7RkZFMDswMEEyOzAwQTI7CitGRkUxO0ZGRTE7RkZFMTswMEEzOzAwQTM7CitGRkUyO0ZGRTI7RkZFMjswMEFDOzAwQUM7CitGRkUzO0ZGRTM7RkZFMzswMDIwIDAzMDQ7MDAyMCAwMzA0OworRkZFNDtGRkU0O0ZGRTQ7MDBBNjswMEE2OworRkZFNTtGRkU1O0ZGRTU7MDBBNTswMEE1OworRkZFNjtGRkU2O0ZGRTY7MjBBOTsyMEE5OworRkZFODtGRkU4O0ZGRTg7MjUwMjsyNTAyOworRkZFOTtGRkU5O0ZGRTk7MjE5MDsyMTkwOworRkZFQTtGRkVBO0ZGRUE7MjE5MTsyMTkxOworRkZFQjtGRkVCO0ZGRUI7MjE5MjsyMTkyOworRkZFQztGRkVDO0ZGRUM7MjE5MzsyMTkzOworRkZFRDtGRkVEO0ZGRUQ7MjVBMDsyNUEwOworRkZFRTtGRkVFO0ZGRUU7MjVDQjsyNUNCOworMUQxNUU7MUQxNTcgMUQxNjU7MUQxNTcgMUQxNjU7MUQxNTcgMUQxNjU7MUQxNTcgMUQxNjU7CisxRDE1RjsxRDE1OCAxRDE2NTsxRDE1OCAxRDE2NTsxRDE1OCAxRDE2NTsxRDE1OCAxRDE2NTsKKzFEMTYwOzFEMTU4IDFEMTY1IDFEMTZFOzFEMTU4IDFEMTY1IDFEMTZFOzFEMTU4IDFEMTY1IDFEMTZFOzFEMTU4IDFEMTY1IDFEMTZFOworMUQxNjE7MUQxNTggMUQxNjUgMUQxNkY7MUQxNTggMUQxNjUgMUQxNkY7MUQxNTggMUQxNjUgMUQxNkY7MUQxNTggMUQxNjUgMUQxNkY7CisxRDE2MjsxRDE1OCAxRDE2NSAxRDE3MDsxRDE1OCAxRDE2NSAxRDE3MDsxRDE1OCAxRDE2NSAxRDE3MDsxRDE1OCAxRDE2NSAxRDE3MDsKKzFEMTYzOzFEMTU4IDFEMTY1IDFEMTcxOzFEMTU4IDFEMTY1IDFEMTcxOzFEMTU4IDFEMTY1IDFEMTcxOzFEMTU4IDFEMTY1IDFEMTcxOworMUQxNjQ7MUQxNTggMUQxNjUgMUQxNzI7MUQxNTggMUQxNjUgMUQxNzI7MUQxNTggMUQxNjUgMUQxNzI7MUQxNTggMUQxNjUgMUQxNzI7CisxRDFCQjsxRDFCOSAxRDE2NTsxRDFCOSAxRDE2NTsxRDFCOSAxRDE2NTsxRDFCOSAxRDE2NTsKKzFEMUJDOzFEMUJBIDFEMTY1OzFEMUJBIDFEMTY1OzFEMUJBIDFEMTY1OzFEMUJBIDFEMTY1OworMUQxQkQ7MUQxQjkgMUQxNjUgMUQxNkU7MUQxQjkgMUQxNjUgMUQxNkU7MUQxQjkgMUQxNjUgMUQxNkU7MUQxQjkgMUQxNjUgMUQxNkU7CisxRDFCRTsxRDFCQSAxRDE2NSAxRDE2RTsxRDFCQSAxRDE2NSAxRDE2RTsxRDFCQSAxRDE2NSAxRDE2RTsxRDFCQSAxRDE2NSAxRDE2RTsKKzFEMUJGOzFEMUI5IDFEMTY1IDFEMTZGOzFEMUI5IDFEMTY1IDFEMTZGOzFEMUI5IDFEMTY1IDFEMTZGOzFEMUI5IDFEMTY1IDFEMTZGOworMUQxQzA7MUQxQkEgMUQxNjUgMUQxNkY7MUQxQkEgMUQxNjUgMUQxNkY7MUQxQkEgMUQxNjUgMUQxNkY7MUQxQkEgMUQxNjUgMUQxNkY7CisxRDQwMDsxRDQwMDsxRDQwMDswMDQxOzAwNDE7CisxRDQwMTsxRDQwMTsxRDQwMTswMDQyOzAwNDI7CisxRDQwMjsxRDQwMjsxRDQwMjswMDQzOzAwNDM7CisxRDQwMzsxRDQwMzsxRDQwMzswMDQ0OzAwNDQ7CisxRDQwNDsxRDQwNDsxRDQwNDswMDQ1OzAwNDU7CisxRDQwNTsxRDQwNTsxRDQwNTswMDQ2OzAwNDY7CisxRDQwNjsxRDQwNjsxRDQwNjswMDQ3OzAwNDc7CisxRDQwNzsxRDQwNzsxRDQwNzswMDQ4OzAwNDg7CisxRDQwODsxRDQwODsxRDQwODswMDQ5OzAwNDk7CisxRDQwOTsxRDQwOTsxRDQwOTswMDRBOzAwNEE7CisxRDQwQTsxRDQwQTsxRDQwQTswMDRCOzAwNEI7CisxRDQwQjsxRDQwQjsxRDQwQjswMDRDOzAwNEM7CisxRDQwQzsxRDQwQzsxRDQwQzswMDREOzAwNEQ7CisxRDQwRDsxRDQwRDsxRDQwRDswMDRFOzAwNEU7CisxRDQwRTsxRDQwRTsxRDQwRTswMDRGOzAwNEY7CisxRDQwRjsxRDQwRjsxRDQwRjswMDUwOzAwNTA7CisxRDQxMDsxRDQxMDsxRDQxMDswMDUxOzAwNTE7CisxRDQxMTsxRDQxMTsxRDQxMTswMDUyOzAwNTI7CisxRDQxMjsxRDQxMjsxRDQxMjswMDUzOzAwNTM7CisxRDQxMzsxRDQxMzsxRDQxMzswMDU0OzAwNTQ7CisxRDQxNDsxRDQxNDsxRDQxNDswMDU1OzAwNTU7CisxRDQxNTsxRDQxNTsxRDQxNTswMDU2OzAwNTY7CisxRDQxNjsxRDQxNjsxRDQxNjswMDU3OzAwNTc7CisxRDQxNzsxRDQxNzsxRDQxNzswMDU4OzAwNTg7CisxRDQxODsxRDQxODsxRDQxODswMDU5OzAwNTk7CisxRDQxOTsxRDQxOTsxRDQxOTswMDVBOzAwNUE7CisxRDQxQTsxRDQxQTsxRDQxQTswMDYxOzAwNjE7CisxRDQxQjsxRDQxQjsxRDQxQjswMDYyOzAwNjI7CisxRDQxQzsxRDQxQzsxRDQxQzswMDYzOzAwNjM7CisxRDQxRDsxRDQxRDsxRDQxRDswMDY0OzAwNjQ7CisxRDQxRTsxRDQxRTsxRDQxRTswMDY1OzAwNjU7CisxRDQxRjsxRDQxRjsxRDQxRjswMDY2OzAwNjY7CisxRDQyMDsxRDQyMDsxRDQyMDswMDY3OzAwNjc7CisxRDQyMTsxRDQyMTsxRDQyMTswMDY4OzAwNjg7CisxRDQyMjsxRDQyMjsxRDQyMjswMDY5OzAwNjk7CisxRDQyMzsxRDQyMzsxRDQyMzswMDZBOzAwNkE7CisxRDQyNDsxRDQyNDsxRDQyNDswMDZCOzAwNkI7CisxRDQyNTsxRDQyNTsxRDQyNTswMDZDOzAwNkM7CisxRDQyNjsxRDQyNjsxRDQyNjswMDZEOzAwNkQ7CisxRDQyNzsxRDQyNzsxRDQyNzswMDZFOzAwNkU7CisxRDQyODsxRDQyODsxRDQyODswMDZGOzAwNkY7CisxRDQyOTsxRDQyOTsxRDQyOTswMDcwOzAwNzA7CisxRDQyQTsxRDQyQTsxRDQyQTswMDcxOzAwNzE7CisxRDQyQjsxRDQyQjsxRDQyQjswMDcyOzAwNzI7CisxRDQyQzsxRDQyQzsxRDQyQzswMDczOzAwNzM7CisxRDQyRDsxRDQyRDsxRDQyRDswMDc0OzAwNzQ7CisxRDQyRTsxRDQyRTsxRDQyRTswMDc1OzAwNzU7CisxRDQyRjsxRDQyRjsxRDQyRjswMDc2OzAwNzY7CisxRDQzMDsxRDQzMDsxRDQzMDswMDc3OzAwNzc7CisxRDQzMTsxRDQzMTsxRDQzMTswMDc4OzAwNzg7CisxRDQzMjsxRDQzMjsxRDQzMjswMDc5OzAwNzk7CisxRDQzMzsxRDQzMzsxRDQzMzswMDdBOzAwN0E7CisxRDQzNDsxRDQzNDsxRDQzNDswMDQxOzAwNDE7CisxRDQzNTsxRDQzNTsxRDQzNTswMDQyOzAwNDI7CisxRDQzNjsxRDQzNjsxRDQzNjswMDQzOzAwNDM7CisxRDQzNzsxRDQzNzsxRDQzNzswMDQ0OzAwNDQ7CisxRDQzODsxRDQzODsxRDQzODswMDQ1OzAwNDU7CisxRDQzOTsxRDQzOTsxRDQzOTswMDQ2OzAwNDY7CisxRDQzQTsxRDQzQTsxRDQzQTswMDQ3OzAwNDc7CisxRDQzQjsxRDQzQjsxRDQzQjswMDQ4OzAwNDg7CisxRDQzQzsxRDQzQzsxRDQzQzswMDQ5OzAwNDk7CisxRDQzRDsxRDQzRDsxRDQzRDswMDRBOzAwNEE7CisxRDQzRTsxRDQzRTsxRDQzRTswMDRCOzAwNEI7CisxRDQzRjsxRDQzRjsxRDQzRjswMDRDOzAwNEM7CisxRDQ0MDsxRDQ0MDsxRDQ0MDswMDREOzAwNEQ7CisxRDQ0MTsxRDQ0MTsxRDQ0MTswMDRFOzAwNEU7CisxRDQ0MjsxRDQ0MjsxRDQ0MjswMDRGOzAwNEY7CisxRDQ0MzsxRDQ0MzsxRDQ0MzswMDUwOzAwNTA7CisxRDQ0NDsxRDQ0NDsxRDQ0NDswMDUxOzAwNTE7CisxRDQ0NTsxRDQ0NTsxRDQ0NTswMDUyOzAwNTI7CisxRDQ0NjsxRDQ0NjsxRDQ0NjswMDUzOzAwNTM7CisxRDQ0NzsxRDQ0NzsxRDQ0NzswMDU0OzAwNTQ7CisxRDQ0ODsxRDQ0ODsxRDQ0ODswMDU1OzAwNTU7CisxRDQ0OTsxRDQ0OTsxRDQ0OTswMDU2OzAwNTY7CisxRDQ0QTsxRDQ0QTsxRDQ0QTswMDU3OzAwNTc7CisxRDQ0QjsxRDQ0QjsxRDQ0QjswMDU4OzAwNTg7CisxRDQ0QzsxRDQ0QzsxRDQ0QzswMDU5OzAwNTk7CisxRDQ0RDsxRDQ0RDsxRDQ0RDswMDVBOzAwNUE7CisxRDQ0RTsxRDQ0RTsxRDQ0RTswMDYxOzAwNjE7CisxRDQ0RjsxRDQ0RjsxRDQ0RjswMDYyOzAwNjI7CisxRDQ1MDsxRDQ1MDsxRDQ1MDswMDYzOzAwNjM7CisxRDQ1MTsxRDQ1MTsxRDQ1MTswMDY0OzAwNjQ7CisxRDQ1MjsxRDQ1MjsxRDQ1MjswMDY1OzAwNjU7CisxRDQ1MzsxRDQ1MzsxRDQ1MzswMDY2OzAwNjY7CisxRDQ1NDsxRDQ1NDsxRDQ1NDswMDY3OzAwNjc7CisxRDQ1NjsxRDQ1NjsxRDQ1NjswMDY5OzAwNjk7CisxRDQ1NzsxRDQ1NzsxRDQ1NzswMDZBOzAwNkE7CisxRDQ1ODsxRDQ1ODsxRDQ1ODswMDZCOzAwNkI7CisxRDQ1OTsxRDQ1OTsxRDQ1OTswMDZDOzAwNkM7CisxRDQ1QTsxRDQ1QTsxRDQ1QTswMDZEOzAwNkQ7CisxRDQ1QjsxRDQ1QjsxRDQ1QjswMDZFOzAwNkU7CisxRDQ1QzsxRDQ1QzsxRDQ1QzswMDZGOzAwNkY7CisxRDQ1RDsxRDQ1RDsxRDQ1RDswMDcwOzAwNzA7CisxRDQ1RTsxRDQ1RTsxRDQ1RTswMDcxOzAwNzE7CisxRDQ1RjsxRDQ1RjsxRDQ1RjswMDcyOzAwNzI7CisxRDQ2MDsxRDQ2MDsxRDQ2MDswMDczOzAwNzM7CisxRDQ2MTsxRDQ2MTsxRDQ2MTswMDc0OzAwNzQ7CisxRDQ2MjsxRDQ2MjsxRDQ2MjswMDc1OzAwNzU7CisxRDQ2MzsxRDQ2MzsxRDQ2MzswMDc2OzAwNzY7CisxRDQ2NDsxRDQ2NDsxRDQ2NDswMDc3OzAwNzc7CisxRDQ2NTsxRDQ2NTsxRDQ2NTswMDc4OzAwNzg7CisxRDQ2NjsxRDQ2NjsxRDQ2NjswMDc5OzAwNzk7CisxRDQ2NzsxRDQ2NzsxRDQ2NzswMDdBOzAwN0E7CisxRDQ2ODsxRDQ2ODsxRDQ2ODswMDQxOzAwNDE7CisxRDQ2OTsxRDQ2OTsxRDQ2OTswMDQyOzAwNDI7CisxRDQ2QTsxRDQ2QTsxRDQ2QTswMDQzOzAwNDM7CisxRDQ2QjsxRDQ2QjsxRDQ2QjswMDQ0OzAwNDQ7CisxRDQ2QzsxRDQ2QzsxRDQ2QzswMDQ1OzAwNDU7CisxRDQ2RDsxRDQ2RDsxRDQ2RDswMDQ2OzAwNDY7CisxRDQ2RTsxRDQ2RTsxRDQ2RTswMDQ3OzAwNDc7CisxRDQ2RjsxRDQ2RjsxRDQ2RjswMDQ4OzAwNDg7CisxRDQ3MDsxRDQ3MDsxRDQ3MDswMDQ5OzAwNDk7CisxRDQ3MTsxRDQ3MTsxRDQ3MTswMDRBOzAwNEE7CisxRDQ3MjsxRDQ3MjsxRDQ3MjswMDRCOzAwNEI7CisxRDQ3MzsxRDQ3MzsxRDQ3MzswMDRDOzAwNEM7CisxRDQ3NDsxRDQ3NDsxRDQ3NDswMDREOzAwNEQ7CisxRDQ3NTsxRDQ3NTsxRDQ3NTswMDRFOzAwNEU7CisxRDQ3NjsxRDQ3NjsxRDQ3NjswMDRGOzAwNEY7CisxRDQ3NzsxRDQ3NzsxRDQ3NzswMDUwOzAwNTA7CisxRDQ3ODsxRDQ3ODsxRDQ3ODswMDUxOzAwNTE7CisxRDQ3OTsxRDQ3OTsxRDQ3OTswMDUyOzAwNTI7CisxRDQ3QTsxRDQ3QTsxRDQ3QTswMDUzOzAwNTM7CisxRDQ3QjsxRDQ3QjsxRDQ3QjswMDU0OzAwNTQ7CisxRDQ3QzsxRDQ3QzsxRDQ3QzswMDU1OzAwNTU7CisxRDQ3RDsxRDQ3RDsxRDQ3RDswMDU2OzAwNTY7CisxRDQ3RTsxRDQ3RTsxRDQ3RTswMDU3OzAwNTc7CisxRDQ3RjsxRDQ3RjsxRDQ3RjswMDU4OzAwNTg7CisxRDQ4MDsxRDQ4MDsxRDQ4MDswMDU5OzAwNTk7CisxRDQ4MTsxRDQ4MTsxRDQ4MTswMDVBOzAwNUE7CisxRDQ4MjsxRDQ4MjsxRDQ4MjswMDYxOzAwNjE7CisxRDQ4MzsxRDQ4MzsxRDQ4MzswMDYyOzAwNjI7CisxRDQ4NDsxRDQ4NDsxRDQ4NDswMDYzOzAwNjM7CisxRDQ4NTsxRDQ4NTsxRDQ4NTswMDY0OzAwNjQ7CisxRDQ4NjsxRDQ4NjsxRDQ4NjswMDY1OzAwNjU7CisxRDQ4NzsxRDQ4NzsxRDQ4NzswMDY2OzAwNjY7CisxRDQ4ODsxRDQ4ODsxRDQ4ODswMDY3OzAwNjc7CisxRDQ4OTsxRDQ4OTsxRDQ4OTswMDY4OzAwNjg7CisxRDQ4QTsxRDQ4QTsxRDQ4QTswMDY5OzAwNjk7CisxRDQ4QjsxRDQ4QjsxRDQ4QjswMDZBOzAwNkE7CisxRDQ4QzsxRDQ4QzsxRDQ4QzswMDZCOzAwNkI7CisxRDQ4RDsxRDQ4RDsxRDQ4RDswMDZDOzAwNkM7CisxRDQ4RTsxRDQ4RTsxRDQ4RTswMDZEOzAwNkQ7CisxRDQ4RjsxRDQ4RjsxRDQ4RjswMDZFOzAwNkU7CisxRDQ5MDsxRDQ5MDsxRDQ5MDswMDZGOzAwNkY7CisxRDQ5MTsxRDQ5MTsxRDQ5MTswMDcwOzAwNzA7CisxRDQ5MjsxRDQ5MjsxRDQ5MjswMDcxOzAwNzE7CisxRDQ5MzsxRDQ5MzsxRDQ5MzswMDcyOzAwNzI7CisxRDQ5NDsxRDQ5NDsxRDQ5NDswMDczOzAwNzM7CisxRDQ5NTsxRDQ5NTsxRDQ5NTswMDc0OzAwNzQ7CisxRDQ5NjsxRDQ5NjsxRDQ5NjswMDc1OzAwNzU7CisxRDQ5NzsxRDQ5NzsxRDQ5NzswMDc2OzAwNzY7CisxRDQ5ODsxRDQ5ODsxRDQ5ODswMDc3OzAwNzc7CisxRDQ5OTsxRDQ5OTsxRDQ5OTswMDc4OzAwNzg7CisxRDQ5QTsxRDQ5QTsxRDQ5QTswMDc5OzAwNzk7CisxRDQ5QjsxRDQ5QjsxRDQ5QjswMDdBOzAwN0E7CisxRDQ5QzsxRDQ5QzsxRDQ5QzswMDQxOzAwNDE7CisxRDQ5RTsxRDQ5RTsxRDQ5RTswMDQzOzAwNDM7CisxRDQ5RjsxRDQ5RjsxRDQ5RjswMDQ0OzAwNDQ7CisxRDRBMjsxRDRBMjsxRDRBMjswMDQ3OzAwNDc7CisxRDRBNTsxRDRBNTsxRDRBNTswMDRBOzAwNEE7CisxRDRBNjsxRDRBNjsxRDRBNjswMDRCOzAwNEI7CisxRDRBOTsxRDRBOTsxRDRBOTswMDRFOzAwNEU7CisxRDRBQTsxRDRBQTsxRDRBQTswMDRGOzAwNEY7CisxRDRBQjsxRDRBQjsxRDRBQjswMDUwOzAwNTA7CisxRDRBQzsxRDRBQzsxRDRBQzswMDUxOzAwNTE7CisxRDRBRTsxRDRBRTsxRDRBRTswMDUzOzAwNTM7CisxRDRBRjsxRDRBRjsxRDRBRjswMDU0OzAwNTQ7CisxRDRCMDsxRDRCMDsxRDRCMDswMDU1OzAwNTU7CisxRDRCMTsxRDRCMTsxRDRCMTswMDU2OzAwNTY7CisxRDRCMjsxRDRCMjsxRDRCMjswMDU3OzAwNTc7CisxRDRCMzsxRDRCMzsxRDRCMzswMDU4OzAwNTg7CisxRDRCNDsxRDRCNDsxRDRCNDswMDU5OzAwNTk7CisxRDRCNTsxRDRCNTsxRDRCNTswMDVBOzAwNUE7CisxRDRCNjsxRDRCNjsxRDRCNjswMDYxOzAwNjE7CisxRDRCNzsxRDRCNzsxRDRCNzswMDYyOzAwNjI7CisxRDRCODsxRDRCODsxRDRCODswMDYzOzAwNjM7CisxRDRCOTsxRDRCOTsxRDRCOTswMDY0OzAwNjQ7CisxRDRCQjsxRDRCQjsxRDRCQjswMDY2OzAwNjY7CisxRDRCRDsxRDRCRDsxRDRCRDswMDY4OzAwNjg7CisxRDRCRTsxRDRCRTsxRDRCRTswMDY5OzAwNjk7CisxRDRCRjsxRDRCRjsxRDRCRjswMDZBOzAwNkE7CisxRDRDMDsxRDRDMDsxRDRDMDswMDZCOzAwNkI7CisxRDRDMjsxRDRDMjsxRDRDMjswMDZEOzAwNkQ7CisxRDRDMzsxRDRDMzsxRDRDMzswMDZFOzAwNkU7CisxRDRDNTsxRDRDNTsxRDRDNTswMDcwOzAwNzA7CisxRDRDNjsxRDRDNjsxRDRDNjswMDcxOzAwNzE7CisxRDRDNzsxRDRDNzsxRDRDNzswMDcyOzAwNzI7CisxRDRDODsxRDRDODsxRDRDODswMDczOzAwNzM7CisxRDRDOTsxRDRDOTsxRDRDOTswMDc0OzAwNzQ7CisxRDRDQTsxRDRDQTsxRDRDQTswMDc1OzAwNzU7CisxRDRDQjsxRDRDQjsxRDRDQjswMDc2OzAwNzY7CisxRDRDQzsxRDRDQzsxRDRDQzswMDc3OzAwNzc7CisxRDRDRDsxRDRDRDsxRDRDRDswMDc4OzAwNzg7CisxRDRDRTsxRDRDRTsxRDRDRTswMDc5OzAwNzk7CisxRDRDRjsxRDRDRjsxRDRDRjswMDdBOzAwN0E7CisxRDREMDsxRDREMDsxRDREMDswMDQxOzAwNDE7CisxRDREMTsxRDREMTsxRDREMTswMDQyOzAwNDI7CisxRDREMjsxRDREMjsxRDREMjswMDQzOzAwNDM7CisxRDREMzsxRDREMzsxRDREMzswMDQ0OzAwNDQ7CisxRDRENDsxRDRENDsxRDRENDswMDQ1OzAwNDU7CisxRDRENTsxRDRENTsxRDRENTswMDQ2OzAwNDY7CisxRDRENjsxRDRENjsxRDRENjswMDQ3OzAwNDc7CisxRDRENzsxRDRENzsxRDRENzswMDQ4OzAwNDg7CisxRDREODsxRDREODsxRDREODswMDQ5OzAwNDk7CisxRDREOTsxRDREOTsxRDREOTswMDRBOzAwNEE7CisxRDREQTsxRDREQTsxRDREQTswMDRCOzAwNEI7CisxRDREQjsxRDREQjsxRDREQjswMDRDOzAwNEM7CisxRDREQzsxRDREQzsxRDREQzswMDREOzAwNEQ7CisxRDRERDsxRDRERDsxRDRERDswMDRFOzAwNEU7CisxRDRERTsxRDRERTsxRDRERTswMDRGOzAwNEY7CisxRDRERjsxRDRERjsxRDRERjswMDUwOzAwNTA7CisxRDRFMDsxRDRFMDsxRDRFMDswMDUxOzAwNTE7CisxRDRFMTsxRDRFMTsxRDRFMTswMDUyOzAwNTI7CisxRDRFMjsxRDRFMjsxRDRFMjswMDUzOzAwNTM7CisxRDRFMzsxRDRFMzsxRDRFMzswMDU0OzAwNTQ7CisxRDRFNDsxRDRFNDsxRDRFNDswMDU1OzAwNTU7CisxRDRFNTsxRDRFNTsxRDRFNTswMDU2OzAwNTY7CisxRDRFNjsxRDRFNjsxRDRFNjswMDU3OzAwNTc7CisxRDRFNzsxRDRFNzsxRDRFNzswMDU4OzAwNTg7CisxRDRFODsxRDRFODsxRDRFODswMDU5OzAwNTk7CisxRDRFOTsxRDRFOTsxRDRFOTswMDVBOzAwNUE7CisxRDRFQTsxRDRFQTsxRDRFQTswMDYxOzAwNjE7CisxRDRFQjsxRDRFQjsxRDRFQjswMDYyOzAwNjI7CisxRDRFQzsxRDRFQzsxRDRFQzswMDYzOzAwNjM7CisxRDRFRDsxRDRFRDsxRDRFRDswMDY0OzAwNjQ7CisxRDRFRTsxRDRFRTsxRDRFRTswMDY1OzAwNjU7CisxRDRFRjsxRDRFRjsxRDRFRjswMDY2OzAwNjY7CisxRDRGMDsxRDRGMDsxRDRGMDswMDY3OzAwNjc7CisxRDRGMTsxRDRGMTsxRDRGMTswMDY4OzAwNjg7CisxRDRGMjsxRDRGMjsxRDRGMjswMDY5OzAwNjk7CisxRDRGMzsxRDRGMzsxRDRGMzswMDZBOzAwNkE7CisxRDRGNDsxRDRGNDsxRDRGNDswMDZCOzAwNkI7CisxRDRGNTsxRDRGNTsxRDRGNTswMDZDOzAwNkM7CisxRDRGNjsxRDRGNjsxRDRGNjswMDZEOzAwNkQ7CisxRDRGNzsxRDRGNzsxRDRGNzswMDZFOzAwNkU7CisxRDRGODsxRDRGODsxRDRGODswMDZGOzAwNkY7CisxRDRGOTsxRDRGOTsxRDRGOTswMDcwOzAwNzA7CisxRDRGQTsxRDRGQTsxRDRGQTswMDcxOzAwNzE7CisxRDRGQjsxRDRGQjsxRDRGQjswMDcyOzAwNzI7CisxRDRGQzsxRDRGQzsxRDRGQzswMDczOzAwNzM7CisxRDRGRDsxRDRGRDsxRDRGRDswMDc0OzAwNzQ7CisxRDRGRTsxRDRGRTsxRDRGRTswMDc1OzAwNzU7CisxRDRGRjsxRDRGRjsxRDRGRjswMDc2OzAwNzY7CisxRDUwMDsxRDUwMDsxRDUwMDswMDc3OzAwNzc7CisxRDUwMTsxRDUwMTsxRDUwMTswMDc4OzAwNzg7CisxRDUwMjsxRDUwMjsxRDUwMjswMDc5OzAwNzk7CisxRDUwMzsxRDUwMzsxRDUwMzswMDdBOzAwN0E7CisxRDUwNDsxRDUwNDsxRDUwNDswMDQxOzAwNDE7CisxRDUwNTsxRDUwNTsxRDUwNTswMDQyOzAwNDI7CisxRDUwNzsxRDUwNzsxRDUwNzswMDQ0OzAwNDQ7CisxRDUwODsxRDUwODsxRDUwODswMDQ1OzAwNDU7CisxRDUwOTsxRDUwOTsxRDUwOTswMDQ2OzAwNDY7CisxRDUwQTsxRDUwQTsxRDUwQTswMDQ3OzAwNDc7CisxRDUwRDsxRDUwRDsxRDUwRDswMDRBOzAwNEE7CisxRDUwRTsxRDUwRTsxRDUwRTswMDRCOzAwNEI7CisxRDUwRjsxRDUwRjsxRDUwRjswMDRDOzAwNEM7CisxRDUxMDsxRDUxMDsxRDUxMDswMDREOzAwNEQ7CisxRDUxMTsxRDUxMTsxRDUxMTswMDRFOzAwNEU7CisxRDUxMjsxRDUxMjsxRDUxMjswMDRGOzAwNEY7CisxRDUxMzsxRDUxMzsxRDUxMzswMDUwOzAwNTA7CisxRDUxNDsxRDUxNDsxRDUxNDswMDUxOzAwNTE7CisxRDUxNjsxRDUxNjsxRDUxNjswMDUzOzAwNTM7CisxRDUxNzsxRDUxNzsxRDUxNzswMDU0OzAwNTQ7CisxRDUxODsxRDUxODsxRDUxODswMDU1OzAwNTU7CisxRDUxOTsxRDUxOTsxRDUxOTswMDU2OzAwNTY7CisxRDUxQTsxRDUxQTsxRDUxQTswMDU3OzAwNTc7CisxRDUxQjsxRDUxQjsxRDUxQjswMDU4OzAwNTg7CisxRDUxQzsxRDUxQzsxRDUxQzswMDU5OzAwNTk7CisxRDUxRTsxRDUxRTsxRDUxRTswMDYxOzAwNjE7CisxRDUxRjsxRDUxRjsxRDUxRjswMDYyOzAwNjI7CisxRDUyMDsxRDUyMDsxRDUyMDswMDYzOzAwNjM7CisxRDUyMTsxRDUyMTsxRDUyMTswMDY0OzAwNjQ7CisxRDUyMjsxRDUyMjsxRDUyMjswMDY1OzAwNjU7CisxRDUyMzsxRDUyMzsxRDUyMzswMDY2OzAwNjY7CisxRDUyNDsxRDUyNDsxRDUyNDswMDY3OzAwNjc7CisxRDUyNTsxRDUyNTsxRDUyNTswMDY4OzAwNjg7CisxRDUyNjsxRDUyNjsxRDUyNjswMDY5OzAwNjk7CisxRDUyNzsxRDUyNzsxRDUyNzswMDZBOzAwNkE7CisxRDUyODsxRDUyODsxRDUyODswMDZCOzAwNkI7CisxRDUyOTsxRDUyOTsxRDUyOTswMDZDOzAwNkM7CisxRDUyQTsxRDUyQTsxRDUyQTswMDZEOzAwNkQ7CisxRDUyQjsxRDUyQjsxRDUyQjswMDZFOzAwNkU7CisxRDUyQzsxRDUyQzsxRDUyQzswMDZGOzAwNkY7CisxRDUyRDsxRDUyRDsxRDUyRDswMDcwOzAwNzA7CisxRDUyRTsxRDUyRTsxRDUyRTswMDcxOzAwNzE7CisxRDUyRjsxRDUyRjsxRDUyRjswMDcyOzAwNzI7CisxRDUzMDsxRDUzMDsxRDUzMDswMDczOzAwNzM7CisxRDUzMTsxRDUzMTsxRDUzMTswMDc0OzAwNzQ7CisxRDUzMjsxRDUzMjsxRDUzMjswMDc1OzAwNzU7CisxRDUzMzsxRDUzMzsxRDUzMzswMDc2OzAwNzY7CisxRDUzNDsxRDUzNDsxRDUzNDswMDc3OzAwNzc7CisxRDUzNTsxRDUzNTsxRDUzNTswMDc4OzAwNzg7CisxRDUzNjsxRDUzNjsxRDUzNjswMDc5OzAwNzk7CisxRDUzNzsxRDUzNzsxRDUzNzswMDdBOzAwN0E7CisxRDUzODsxRDUzODsxRDUzODswMDQxOzAwNDE7CisxRDUzOTsxRDUzOTsxRDUzOTswMDQyOzAwNDI7CisxRDUzQjsxRDUzQjsxRDUzQjswMDQ0OzAwNDQ7CisxRDUzQzsxRDUzQzsxRDUzQzswMDQ1OzAwNDU7CisxRDUzRDsxRDUzRDsxRDUzRDswMDQ2OzAwNDY7CisxRDUzRTsxRDUzRTsxRDUzRTswMDQ3OzAwNDc7CisxRDU0MDsxRDU0MDsxRDU0MDswMDQ5OzAwNDk7CisxRDU0MTsxRDU0MTsxRDU0MTswMDRBOzAwNEE7CisxRDU0MjsxRDU0MjsxRDU0MjswMDRCOzAwNEI7CisxRDU0MzsxRDU0MzsxRDU0MzswMDRDOzAwNEM7CisxRDU0NDsxRDU0NDsxRDU0NDswMDREOzAwNEQ7CisxRDU0NjsxRDU0NjsxRDU0NjswMDRGOzAwNEY7CisxRDU0QTsxRDU0QTsxRDU0QTswMDUzOzAwNTM7CisxRDU0QjsxRDU0QjsxRDU0QjswMDU0OzAwNTQ7CisxRDU0QzsxRDU0QzsxRDU0QzswMDU1OzAwNTU7CisxRDU0RDsxRDU0RDsxRDU0RDswMDU2OzAwNTY7CisxRDU0RTsxRDU0RTsxRDU0RTswMDU3OzAwNTc7CisxRDU0RjsxRDU0RjsxRDU0RjswMDU4OzAwNTg7CisxRDU1MDsxRDU1MDsxRDU1MDswMDU5OzAwNTk7CisxRDU1MjsxRDU1MjsxRDU1MjswMDYxOzAwNjE7CisxRDU1MzsxRDU1MzsxRDU1MzswMDYyOzAwNjI7CisxRDU1NDsxRDU1NDsxRDU1NDswMDYzOzAwNjM7CisxRDU1NTsxRDU1NTsxRDU1NTswMDY0OzAwNjQ7CisxRDU1NjsxRDU1NjsxRDU1NjswMDY1OzAwNjU7CisxRDU1NzsxRDU1NzsxRDU1NzswMDY2OzAwNjY7CisxRDU1ODsxRDU1ODsxRDU1ODswMDY3OzAwNjc7CisxRDU1OTsxRDU1OTsxRDU1OTswMDY4OzAwNjg7CisxRDU1QTsxRDU1QTsxRDU1QTswMDY5OzAwNjk7CisxRDU1QjsxRDU1QjsxRDU1QjswMDZBOzAwNkE7CisxRDU1QzsxRDU1QzsxRDU1QzswMDZCOzAwNkI7CisxRDU1RDsxRDU1RDsxRDU1RDswMDZDOzAwNkM7CisxRDU1RTsxRDU1RTsxRDU1RTswMDZEOzAwNkQ7CisxRDU1RjsxRDU1RjsxRDU1RjswMDZFOzAwNkU7CisxRDU2MDsxRDU2MDsxRDU2MDswMDZGOzAwNkY7CisxRDU2MTsxRDU2MTsxRDU2MTswMDcwOzAwNzA7CisxRDU2MjsxRDU2MjsxRDU2MjswMDcxOzAwNzE7CisxRDU2MzsxRDU2MzsxRDU2MzswMDcyOzAwNzI7CisxRDU2NDsxRDU2NDsxRDU2NDswMDczOzAwNzM7CisxRDU2NTsxRDU2NTsxRDU2NTswMDc0OzAwNzQ7CisxRDU2NjsxRDU2NjsxRDU2NjswMDc1OzAwNzU7CisxRDU2NzsxRDU2NzsxRDU2NzswMDc2OzAwNzY7CisxRDU2ODsxRDU2ODsxRDU2ODswMDc3OzAwNzc7CisxRDU2OTsxRDU2OTsxRDU2OTswMDc4OzAwNzg7CisxRDU2QTsxRDU2QTsxRDU2QTswMDc5OzAwNzk7CisxRDU2QjsxRDU2QjsxRDU2QjswMDdBOzAwN0E7CisxRDU2QzsxRDU2QzsxRDU2QzswMDQxOzAwNDE7CisxRDU2RDsxRDU2RDsxRDU2RDswMDQyOzAwNDI7CisxRDU2RTsxRDU2RTsxRDU2RTswMDQzOzAwNDM7CisxRDU2RjsxRDU2RjsxRDU2RjswMDQ0OzAwNDQ7CisxRDU3MDsxRDU3MDsxRDU3MDswMDQ1OzAwNDU7CisxRDU3MTsxRDU3MTsxRDU3MTswMDQ2OzAwNDY7CisxRDU3MjsxRDU3MjsxRDU3MjswMDQ3OzAwNDc7CisxRDU3MzsxRDU3MzsxRDU3MzswMDQ4OzAwNDg7CisxRDU3NDsxRDU3NDsxRDU3NDswMDQ5OzAwNDk7CisxRDU3NTsxRDU3NTsxRDU3NTswMDRBOzAwNEE7CisxRDU3NjsxRDU3NjsxRDU3NjswMDRCOzAwNEI7CisxRDU3NzsxRDU3NzsxRDU3NzswMDRDOzAwNEM7CisxRDU3ODsxRDU3ODsxRDU3ODswMDREOzAwNEQ7CisxRDU3OTsxRDU3OTsxRDU3OTswMDRFOzAwNEU7CisxRDU3QTsxRDU3QTsxRDU3QTswMDRGOzAwNEY7CisxRDU3QjsxRDU3QjsxRDU3QjswMDUwOzAwNTA7CisxRDU3QzsxRDU3QzsxRDU3QzswMDUxOzAwNTE7CisxRDU3RDsxRDU3RDsxRDU3RDswMDUyOzAwNTI7CisxRDU3RTsxRDU3RTsxRDU3RTswMDUzOzAwNTM7CisxRDU3RjsxRDU3RjsxRDU3RjswMDU0OzAwNTQ7CisxRDU4MDsxRDU4MDsxRDU4MDswMDU1OzAwNTU7CisxRDU4MTsxRDU4MTsxRDU4MTswMDU2OzAwNTY7CisxRDU4MjsxRDU4MjsxRDU4MjswMDU3OzAwNTc7CisxRDU4MzsxRDU4MzsxRDU4MzswMDU4OzAwNTg7CisxRDU4NDsxRDU4NDsxRDU4NDswMDU5OzAwNTk7CisxRDU4NTsxRDU4NTsxRDU4NTswMDVBOzAwNUE7CisxRDU4NjsxRDU4NjsxRDU4NjswMDYxOzAwNjE7CisxRDU4NzsxRDU4NzsxRDU4NzswMDYyOzAwNjI7CisxRDU4ODsxRDU4ODsxRDU4ODswMDYzOzAwNjM7CisxRDU4OTsxRDU4OTsxRDU4OTswMDY0OzAwNjQ7CisxRDU4QTsxRDU4QTsxRDU4QTswMDY1OzAwNjU7CisxRDU4QjsxRDU4QjsxRDU4QjswMDY2OzAwNjY7CisxRDU4QzsxRDU4QzsxRDU4QzswMDY3OzAwNjc7CisxRDU4RDsxRDU4RDsxRDU4RDswMDY4OzAwNjg7CisxRDU4RTsxRDU4RTsxRDU4RTswMDY5OzAwNjk7CisxRDU4RjsxRDU4RjsxRDU4RjswMDZBOzAwNkE7CisxRDU5MDsxRDU5MDsxRDU5MDswMDZCOzAwNkI7CisxRDU5MTsxRDU5MTsxRDU5MTswMDZDOzAwNkM7CisxRDU5MjsxRDU5MjsxRDU5MjswMDZEOzAwNkQ7CisxRDU5MzsxRDU5MzsxRDU5MzswMDZFOzAwNkU7CisxRDU5NDsxRDU5NDsxRDU5NDswMDZGOzAwNkY7CisxRDU5NTsxRDU5NTsxRDU5NTswMDcwOzAwNzA7CisxRDU5NjsxRDU5NjsxRDU5NjswMDcxOzAwNzE7CisxRDU5NzsxRDU5NzsxRDU5NzswMDcyOzAwNzI7CisxRDU5ODsxRDU5ODsxRDU5ODswMDczOzAwNzM7CisxRDU5OTsxRDU5OTsxRDU5OTswMDc0OzAwNzQ7CisxRDU5QTsxRDU5QTsxRDU5QTswMDc1OzAwNzU7CisxRDU5QjsxRDU5QjsxRDU5QjswMDc2OzAwNzY7CisxRDU5QzsxRDU5QzsxRDU5QzswMDc3OzAwNzc7CisxRDU5RDsxRDU5RDsxRDU5RDswMDc4OzAwNzg7CisxRDU5RTsxRDU5RTsxRDU5RTswMDc5OzAwNzk7CisxRDU5RjsxRDU5RjsxRDU5RjswMDdBOzAwN0E7CisxRDVBMDsxRDVBMDsxRDVBMDswMDQxOzAwNDE7CisxRDVBMTsxRDVBMTsxRDVBMTswMDQyOzAwNDI7CisxRDVBMjsxRDVBMjsxRDVBMjswMDQzOzAwNDM7CisxRDVBMzsxRDVBMzsxRDVBMzswMDQ0OzAwNDQ7CisxRDVBNDsxRDVBNDsxRDVBNDswMDQ1OzAwNDU7CisxRDVBNTsxRDVBNTsxRDVBNTswMDQ2OzAwNDY7CisxRDVBNjsxRDVBNjsxRDVBNjswMDQ3OzAwNDc7CisxRDVBNzsxRDVBNzsxRDVBNzswMDQ4OzAwNDg7CisxRDVBODsxRDVBODsxRDVBODswMDQ5OzAwNDk7CisxRDVBOTsxRDVBOTsxRDVBOTswMDRBOzAwNEE7CisxRDVBQTsxRDVBQTsxRDVBQTswMDRCOzAwNEI7CisxRDVBQjsxRDVBQjsxRDVBQjswMDRDOzAwNEM7CisxRDVBQzsxRDVBQzsxRDVBQzswMDREOzAwNEQ7CisxRDVBRDsxRDVBRDsxRDVBRDswMDRFOzAwNEU7CisxRDVBRTsxRDVBRTsxRDVBRTswMDRGOzAwNEY7CisxRDVBRjsxRDVBRjsxRDVBRjswMDUwOzAwNTA7CisxRDVCMDsxRDVCMDsxRDVCMDswMDUxOzAwNTE7CisxRDVCMTsxRDVCMTsxRDVCMTswMDUyOzAwNTI7CisxRDVCMjsxRDVCMjsxRDVCMjswMDUzOzAwNTM7CisxRDVCMzsxRDVCMzsxRDVCMzswMDU0OzAwNTQ7CisxRDVCNDsxRDVCNDsxRDVCNDswMDU1OzAwNTU7CisxRDVCNTsxRDVCNTsxRDVCNTswMDU2OzAwNTY7CisxRDVCNjsxRDVCNjsxRDVCNjswMDU3OzAwNTc7CisxRDVCNzsxRDVCNzsxRDVCNzswMDU4OzAwNTg7CisxRDVCODsxRDVCODsxRDVCODswMDU5OzAwNTk7CisxRDVCOTsxRDVCOTsxRDVCOTswMDVBOzAwNUE7CisxRDVCQTsxRDVCQTsxRDVCQTswMDYxOzAwNjE7CisxRDVCQjsxRDVCQjsxRDVCQjswMDYyOzAwNjI7CisxRDVCQzsxRDVCQzsxRDVCQzswMDYzOzAwNjM7CisxRDVCRDsxRDVCRDsxRDVCRDswMDY0OzAwNjQ7CisxRDVCRTsxRDVCRTsxRDVCRTswMDY1OzAwNjU7CisxRDVCRjsxRDVCRjsxRDVCRjswMDY2OzAwNjY7CisxRDVDMDsxRDVDMDsxRDVDMDswMDY3OzAwNjc7CisxRDVDMTsxRDVDMTsxRDVDMTswMDY4OzAwNjg7CisxRDVDMjsxRDVDMjsxRDVDMjswMDY5OzAwNjk7CisxRDVDMzsxRDVDMzsxRDVDMzswMDZBOzAwNkE7CisxRDVDNDsxRDVDNDsxRDVDNDswMDZCOzAwNkI7CisxRDVDNTsxRDVDNTsxRDVDNTswMDZDOzAwNkM7CisxRDVDNjsxRDVDNjsxRDVDNjswMDZEOzAwNkQ7CisxRDVDNzsxRDVDNzsxRDVDNzswMDZFOzAwNkU7CisxRDVDODsxRDVDODsxRDVDODswMDZGOzAwNkY7CisxRDVDOTsxRDVDOTsxRDVDOTswMDcwOzAwNzA7CisxRDVDQTsxRDVDQTsxRDVDQTswMDcxOzAwNzE7CisxRDVDQjsxRDVDQjsxRDVDQjswMDcyOzAwNzI7CisxRDVDQzsxRDVDQzsxRDVDQzswMDczOzAwNzM7CisxRDVDRDsxRDVDRDsxRDVDRDswMDc0OzAwNzQ7CisxRDVDRTsxRDVDRTsxRDVDRTswMDc1OzAwNzU7CisxRDVDRjsxRDVDRjsxRDVDRjswMDc2OzAwNzY7CisxRDVEMDsxRDVEMDsxRDVEMDswMDc3OzAwNzc7CisxRDVEMTsxRDVEMTsxRDVEMTswMDc4OzAwNzg7CisxRDVEMjsxRDVEMjsxRDVEMjswMDc5OzAwNzk7CisxRDVEMzsxRDVEMzsxRDVEMzswMDdBOzAwN0E7CisxRDVENDsxRDVENDsxRDVENDswMDQxOzAwNDE7CisxRDVENTsxRDVENTsxRDVENTswMDQyOzAwNDI7CisxRDVENjsxRDVENjsxRDVENjswMDQzOzAwNDM7CisxRDVENzsxRDVENzsxRDVENzswMDQ0OzAwNDQ7CisxRDVEODsxRDVEODsxRDVEODswMDQ1OzAwNDU7CisxRDVEOTsxRDVEOTsxRDVEOTswMDQ2OzAwNDY7CisxRDVEQTsxRDVEQTsxRDVEQTswMDQ3OzAwNDc7CisxRDVEQjsxRDVEQjsxRDVEQjswMDQ4OzAwNDg7CisxRDVEQzsxRDVEQzsxRDVEQzswMDQ5OzAwNDk7CisxRDVERDsxRDVERDsxRDVERDswMDRBOzAwNEE7CisxRDVERTsxRDVERTsxRDVERTswMDRCOzAwNEI7CisxRDVERjsxRDVERjsxRDVERjswMDRDOzAwNEM7CisxRDVFMDsxRDVFMDsxRDVFMDswMDREOzAwNEQ7CisxRDVFMTsxRDVFMTsxRDVFMTswMDRFOzAwNEU7CisxRDVFMjsxRDVFMjsxRDVFMjswMDRGOzAwNEY7CisxRDVFMzsxRDVFMzsxRDVFMzswMDUwOzAwNTA7CisxRDVFNDsxRDVFNDsxRDVFNDswMDUxOzAwNTE7CisxRDVFNTsxRDVFNTsxRDVFNTswMDUyOzAwNTI7CisxRDVFNjsxRDVFNjsxRDVFNjswMDUzOzAwNTM7CisxRDVFNzsxRDVFNzsxRDVFNzswMDU0OzAwNTQ7CisxRDVFODsxRDVFODsxRDVFODswMDU1OzAwNTU7CisxRDVFOTsxRDVFOTsxRDVFOTswMDU2OzAwNTY7CisxRDVFQTsxRDVFQTsxRDVFQTswMDU3OzAwNTc7CisxRDVFQjsxRDVFQjsxRDVFQjswMDU4OzAwNTg7CisxRDVFQzsxRDVFQzsxRDVFQzswMDU5OzAwNTk7CisxRDVFRDsxRDVFRDsxRDVFRDswMDVBOzAwNUE7CisxRDVFRTsxRDVFRTsxRDVFRTswMDYxOzAwNjE7CisxRDVFRjsxRDVFRjsxRDVFRjswMDYyOzAwNjI7CisxRDVGMDsxRDVGMDsxRDVGMDswMDYzOzAwNjM7CisxRDVGMTsxRDVGMTsxRDVGMTswMDY0OzAwNjQ7CisxRDVGMjsxRDVGMjsxRDVGMjswMDY1OzAwNjU7CisxRDVGMzsxRDVGMzsxRDVGMzswMDY2OzAwNjY7CisxRDVGNDsxRDVGNDsxRDVGNDswMDY3OzAwNjc7CisxRDVGNTsxRDVGNTsxRDVGNTswMDY4OzAwNjg7CisxRDVGNjsxRDVGNjsxRDVGNjswMDY5OzAwNjk7CisxRDVGNzsxRDVGNzsxRDVGNzswMDZBOzAwNkE7CisxRDVGODsxRDVGODsxRDVGODswMDZCOzAwNkI7CisxRDVGOTsxRDVGOTsxRDVGOTswMDZDOzAwNkM7CisxRDVGQTsxRDVGQTsxRDVGQTswMDZEOzAwNkQ7CisxRDVGQjsxRDVGQjsxRDVGQjswMDZFOzAwNkU7CisxRDVGQzsxRDVGQzsxRDVGQzswMDZGOzAwNkY7CisxRDVGRDsxRDVGRDsxRDVGRDswMDcwOzAwNzA7CisxRDVGRTsxRDVGRTsxRDVGRTswMDcxOzAwNzE7CisxRDVGRjsxRDVGRjsxRDVGRjswMDcyOzAwNzI7CisxRDYwMDsxRDYwMDsxRDYwMDswMDczOzAwNzM7CisxRDYwMTsxRDYwMTsxRDYwMTswMDc0OzAwNzQ7CisxRDYwMjsxRDYwMjsxRDYwMjswMDc1OzAwNzU7CisxRDYwMzsxRDYwMzsxRDYwMzswMDc2OzAwNzY7CisxRDYwNDsxRDYwNDsxRDYwNDswMDc3OzAwNzc7CisxRDYwNTsxRDYwNTsxRDYwNTswMDc4OzAwNzg7CisxRDYwNjsxRDYwNjsxRDYwNjswMDc5OzAwNzk7CisxRDYwNzsxRDYwNzsxRDYwNzswMDdBOzAwN0E7CisxRDYwODsxRDYwODsxRDYwODswMDQxOzAwNDE7CisxRDYwOTsxRDYwOTsxRDYwOTswMDQyOzAwNDI7CisxRDYwQTsxRDYwQTsxRDYwQTswMDQzOzAwNDM7CisxRDYwQjsxRDYwQjsxRDYwQjswMDQ0OzAwNDQ7CisxRDYwQzsxRDYwQzsxRDYwQzswMDQ1OzAwNDU7CisxRDYwRDsxRDYwRDsxRDYwRDswMDQ2OzAwNDY7CisxRDYwRTsxRDYwRTsxRDYwRTswMDQ3OzAwNDc7CisxRDYwRjsxRDYwRjsxRDYwRjswMDQ4OzAwNDg7CisxRDYxMDsxRDYxMDsxRDYxMDswMDQ5OzAwNDk7CisxRDYxMTsxRDYxMTsxRDYxMTswMDRBOzAwNEE7CisxRDYxMjsxRDYxMjsxRDYxMjswMDRCOzAwNEI7CisxRDYxMzsxRDYxMzsxRDYxMzswMDRDOzAwNEM7CisxRDYxNDsxRDYxNDsxRDYxNDswMDREOzAwNEQ7CisxRDYxNTsxRDYxNTsxRDYxNTswMDRFOzAwNEU7CisxRDYxNjsxRDYxNjsxRDYxNjswMDRGOzAwNEY7CisxRDYxNzsxRDYxNzsxRDYxNzswMDUwOzAwNTA7CisxRDYxODsxRDYxODsxRDYxODswMDUxOzAwNTE7CisxRDYxOTsxRDYxOTsxRDYxOTswMDUyOzAwNTI7CisxRDYxQTsxRDYxQTsxRDYxQTswMDUzOzAwNTM7CisxRDYxQjsxRDYxQjsxRDYxQjswMDU0OzAwNTQ7CisxRDYxQzsxRDYxQzsxRDYxQzswMDU1OzAwNTU7CisxRDYxRDsxRDYxRDsxRDYxRDswMDU2OzAwNTY7CisxRDYxRTsxRDYxRTsxRDYxRTswMDU3OzAwNTc7CisxRDYxRjsxRDYxRjsxRDYxRjswMDU4OzAwNTg7CisxRDYyMDsxRDYyMDsxRDYyMDswMDU5OzAwNTk7CisxRDYyMTsxRDYyMTsxRDYyMTswMDVBOzAwNUE7CisxRDYyMjsxRDYyMjsxRDYyMjswMDYxOzAwNjE7CisxRDYyMzsxRDYyMzsxRDYyMzswMDYyOzAwNjI7CisxRDYyNDsxRDYyNDsxRDYyNDswMDYzOzAwNjM7CisxRDYyNTsxRDYyNTsxRDYyNTswMDY0OzAwNjQ7CisxRDYyNjsxRDYyNjsxRDYyNjswMDY1OzAwNjU7CisxRDYyNzsxRDYyNzsxRDYyNzswMDY2OzAwNjY7CisxRDYyODsxRDYyODsxRDYyODswMDY3OzAwNjc7CisxRDYyOTsxRDYyOTsxRDYyOTswMDY4OzAwNjg7CisxRDYyQTsxRDYyQTsxRDYyQTswMDY5OzAwNjk7CisxRDYyQjsxRDYyQjsxRDYyQjswMDZBOzAwNkE7CisxRDYyQzsxRDYyQzsxRDYyQzswMDZCOzAwNkI7CisxRDYyRDsxRDYyRDsxRDYyRDswMDZDOzAwNkM7CisxRDYyRTsxRDYyRTsxRDYyRTswMDZEOzAwNkQ7CisxRDYyRjsxRDYyRjsxRDYyRjswMDZFOzAwNkU7CisxRDYzMDsxRDYzMDsxRDYzMDswMDZGOzAwNkY7CisxRDYzMTsxRDYzMTsxRDYzMTswMDcwOzAwNzA7CisxRDYzMjsxRDYzMjsxRDYzMjswMDcxOzAwNzE7CisxRDYzMzsxRDYzMzsxRDYzMzswMDcyOzAwNzI7CisxRDYzNDsxRDYzNDsxRDYzNDswMDczOzAwNzM7CisxRDYzNTsxRDYzNTsxRDYzNTswMDc0OzAwNzQ7CisxRDYzNjsxRDYzNjsxRDYzNjswMDc1OzAwNzU7CisxRDYzNzsxRDYzNzsxRDYzNzswMDc2OzAwNzY7CisxRDYzODsxRDYzODsxRDYzODswMDc3OzAwNzc7CisxRDYzOTsxRDYzOTsxRDYzOTswMDc4OzAwNzg7CisxRDYzQTsxRDYzQTsxRDYzQTswMDc5OzAwNzk7CisxRDYzQjsxRDYzQjsxRDYzQjswMDdBOzAwN0E7CisxRDYzQzsxRDYzQzsxRDYzQzswMDQxOzAwNDE7CisxRDYzRDsxRDYzRDsxRDYzRDswMDQyOzAwNDI7CisxRDYzRTsxRDYzRTsxRDYzRTswMDQzOzAwNDM7CisxRDYzRjsxRDYzRjsxRDYzRjswMDQ0OzAwNDQ7CisxRDY0MDsxRDY0MDsxRDY0MDswMDQ1OzAwNDU7CisxRDY0MTsxRDY0MTsxRDY0MTswMDQ2OzAwNDY7CisxRDY0MjsxRDY0MjsxRDY0MjswMDQ3OzAwNDc7CisxRDY0MzsxRDY0MzsxRDY0MzswMDQ4OzAwNDg7CisxRDY0NDsxRDY0NDsxRDY0NDswMDQ5OzAwNDk7CisxRDY0NTsxRDY0NTsxRDY0NTswMDRBOzAwNEE7CisxRDY0NjsxRDY0NjsxRDY0NjswMDRCOzAwNEI7CisxRDY0NzsxRDY0NzsxRDY0NzswMDRDOzAwNEM7CisxRDY0ODsxRDY0ODsxRDY0ODswMDREOzAwNEQ7CisxRDY0OTsxRDY0OTsxRDY0OTswMDRFOzAwNEU7CisxRDY0QTsxRDY0QTsxRDY0QTswMDRGOzAwNEY7CisxRDY0QjsxRDY0QjsxRDY0QjswMDUwOzAwNTA7CisxRDY0QzsxRDY0QzsxRDY0QzswMDUxOzAwNTE7CisxRDY0RDsxRDY0RDsxRDY0RDswMDUyOzAwNTI7CisxRDY0RTsxRDY0RTsxRDY0RTswMDUzOzAwNTM7CisxRDY0RjsxRDY0RjsxRDY0RjswMDU0OzAwNTQ7CisxRDY1MDsxRDY1MDsxRDY1MDswMDU1OzAwNTU7CisxRDY1MTsxRDY1MTsxRDY1MTswMDU2OzAwNTY7CisxRDY1MjsxRDY1MjsxRDY1MjswMDU3OzAwNTc7CisxRDY1MzsxRDY1MzsxRDY1MzswMDU4OzAwNTg7CisxRDY1NDsxRDY1NDsxRDY1NDswMDU5OzAwNTk7CisxRDY1NTsxRDY1NTsxRDY1NTswMDVBOzAwNUE7CisxRDY1NjsxRDY1NjsxRDY1NjswMDYxOzAwNjE7CisxRDY1NzsxRDY1NzsxRDY1NzswMDYyOzAwNjI7CisxRDY1ODsxRDY1ODsxRDY1ODswMDYzOzAwNjM7CisxRDY1OTsxRDY1OTsxRDY1OTswMDY0OzAwNjQ7CisxRDY1QTsxRDY1QTsxRDY1QTswMDY1OzAwNjU7CisxRDY1QjsxRDY1QjsxRDY1QjswMDY2OzAwNjY7CisxRDY1QzsxRDY1QzsxRDY1QzswMDY3OzAwNjc7CisxRDY1RDsxRDY1RDsxRDY1RDswMDY4OzAwNjg7CisxRDY1RTsxRDY1RTsxRDY1RTswMDY5OzAwNjk7CisxRDY1RjsxRDY1RjsxRDY1RjswMDZBOzAwNkE7CisxRDY2MDsxRDY2MDsxRDY2MDswMDZCOzAwNkI7CisxRDY2MTsxRDY2MTsxRDY2MTswMDZDOzAwNkM7CisxRDY2MjsxRDY2MjsxRDY2MjswMDZEOzAwNkQ7CisxRDY2MzsxRDY2MzsxRDY2MzswMDZFOzAwNkU7CisxRDY2NDsxRDY2NDsxRDY2NDswMDZGOzAwNkY7CisxRDY2NTsxRDY2NTsxRDY2NTswMDcwOzAwNzA7CisxRDY2NjsxRDY2NjsxRDY2NjswMDcxOzAwNzE7CisxRDY2NzsxRDY2NzsxRDY2NzswMDcyOzAwNzI7CisxRDY2ODsxRDY2ODsxRDY2ODswMDczOzAwNzM7CisxRDY2OTsxRDY2OTsxRDY2OTswMDc0OzAwNzQ7CisxRDY2QTsxRDY2QTsxRDY2QTswMDc1OzAwNzU7CisxRDY2QjsxRDY2QjsxRDY2QjswMDc2OzAwNzY7CisxRDY2QzsxRDY2QzsxRDY2QzswMDc3OzAwNzc7CisxRDY2RDsxRDY2RDsxRDY2RDswMDc4OzAwNzg7CisxRDY2RTsxRDY2RTsxRDY2RTswMDc5OzAwNzk7CisxRDY2RjsxRDY2RjsxRDY2RjswMDdBOzAwN0E7CisxRDY3MDsxRDY3MDsxRDY3MDswMDQxOzAwNDE7CisxRDY3MTsxRDY3MTsxRDY3MTswMDQyOzAwNDI7CisxRDY3MjsxRDY3MjsxRDY3MjswMDQzOzAwNDM7CisxRDY3MzsxRDY3MzsxRDY3MzswMDQ0OzAwNDQ7CisxRDY3NDsxRDY3NDsxRDY3NDswMDQ1OzAwNDU7CisxRDY3NTsxRDY3NTsxRDY3NTswMDQ2OzAwNDY7CisxRDY3NjsxRDY3NjsxRDY3NjswMDQ3OzAwNDc7CisxRDY3NzsxRDY3NzsxRDY3NzswMDQ4OzAwNDg7CisxRDY3ODsxRDY3ODsxRDY3ODswMDQ5OzAwNDk7CisxRDY3OTsxRDY3OTsxRDY3OTswMDRBOzAwNEE7CisxRDY3QTsxRDY3QTsxRDY3QTswMDRCOzAwNEI7CisxRDY3QjsxRDY3QjsxRDY3QjswMDRDOzAwNEM7CisxRDY3QzsxRDY3QzsxRDY3QzswMDREOzAwNEQ7CisxRDY3RDsxRDY3RDsxRDY3RDswMDRFOzAwNEU7CisxRDY3RTsxRDY3RTsxRDY3RTswMDRGOzAwNEY7CisxRDY3RjsxRDY3RjsxRDY3RjswMDUwOzAwNTA7CisxRDY4MDsxRDY4MDsxRDY4MDswMDUxOzAwNTE7CisxRDY4MTsxRDY4MTsxRDY4MTswMDUyOzAwNTI7CisxRDY4MjsxRDY4MjsxRDY4MjswMDUzOzAwNTM7CisxRDY4MzsxRDY4MzsxRDY4MzswMDU0OzAwNTQ7CisxRDY4NDsxRDY4NDsxRDY4NDswMDU1OzAwNTU7CisxRDY4NTsxRDY4NTsxRDY4NTswMDU2OzAwNTY7CisxRDY4NjsxRDY4NjsxRDY4NjswMDU3OzAwNTc7CisxRDY4NzsxRDY4NzsxRDY4NzswMDU4OzAwNTg7CisxRDY4ODsxRDY4ODsxRDY4ODswMDU5OzAwNTk7CisxRDY4OTsxRDY4OTsxRDY4OTswMDVBOzAwNUE7CisxRDY4QTsxRDY4QTsxRDY4QTswMDYxOzAwNjE7CisxRDY4QjsxRDY4QjsxRDY4QjswMDYyOzAwNjI7CisxRDY4QzsxRDY4QzsxRDY4QzswMDYzOzAwNjM7CisxRDY4RDsxRDY4RDsxRDY4RDswMDY0OzAwNjQ7CisxRDY4RTsxRDY4RTsxRDY4RTswMDY1OzAwNjU7CisxRDY4RjsxRDY4RjsxRDY4RjswMDY2OzAwNjY7CisxRDY5MDsxRDY5MDsxRDY5MDswMDY3OzAwNjc7CisxRDY5MTsxRDY5MTsxRDY5MTswMDY4OzAwNjg7CisxRDY5MjsxRDY5MjsxRDY5MjswMDY5OzAwNjk7CisxRDY5MzsxRDY5MzsxRDY5MzswMDZBOzAwNkE7CisxRDY5NDsxRDY5NDsxRDY5NDswMDZCOzAwNkI7CisxRDY5NTsxRDY5NTsxRDY5NTswMDZDOzAwNkM7CisxRDY5NjsxRDY5NjsxRDY5NjswMDZEOzAwNkQ7CisxRDY5NzsxRDY5NzsxRDY5NzswMDZFOzAwNkU7CisxRDY5ODsxRDY5ODsxRDY5ODswMDZGOzAwNkY7CisxRDY5OTsxRDY5OTsxRDY5OTswMDcwOzAwNzA7CisxRDY5QTsxRDY5QTsxRDY5QTswMDcxOzAwNzE7CisxRDY5QjsxRDY5QjsxRDY5QjswMDcyOzAwNzI7CisxRDY5QzsxRDY5QzsxRDY5QzswMDczOzAwNzM7CisxRDY5RDsxRDY5RDsxRDY5RDswMDc0OzAwNzQ7CisxRDY5RTsxRDY5RTsxRDY5RTswMDc1OzAwNzU7CisxRDY5RjsxRDY5RjsxRDY5RjswMDc2OzAwNzY7CisxRDZBMDsxRDZBMDsxRDZBMDswMDc3OzAwNzc7CisxRDZBMTsxRDZBMTsxRDZBMTswMDc4OzAwNzg7CisxRDZBMjsxRDZBMjsxRDZBMjswMDc5OzAwNzk7CisxRDZBMzsxRDZBMzsxRDZBMzswMDdBOzAwN0E7CisxRDZBODsxRDZBODsxRDZBODswMzkxOzAzOTE7CisxRDZBOTsxRDZBOTsxRDZBOTswMzkyOzAzOTI7CisxRDZBQTsxRDZBQTsxRDZBQTswMzkzOzAzOTM7CisxRDZBQjsxRDZBQjsxRDZBQjswMzk0OzAzOTQ7CisxRDZBQzsxRDZBQzsxRDZBQzswMzk1OzAzOTU7CisxRDZBRDsxRDZBRDsxRDZBRDswMzk2OzAzOTY7CisxRDZBRTsxRDZBRTsxRDZBRTswMzk3OzAzOTc7CisxRDZBRjsxRDZBRjsxRDZBRjswMzk4OzAzOTg7CisxRDZCMDsxRDZCMDsxRDZCMDswMzk5OzAzOTk7CisxRDZCMTsxRDZCMTsxRDZCMTswMzlBOzAzOUE7CisxRDZCMjsxRDZCMjsxRDZCMjswMzlCOzAzOUI7CisxRDZCMzsxRDZCMzsxRDZCMzswMzlDOzAzOUM7CisxRDZCNDsxRDZCNDsxRDZCNDswMzlEOzAzOUQ7CisxRDZCNTsxRDZCNTsxRDZCNTswMzlFOzAzOUU7CisxRDZCNjsxRDZCNjsxRDZCNjswMzlGOzAzOUY7CisxRDZCNzsxRDZCNzsxRDZCNzswM0EwOzAzQTA7CisxRDZCODsxRDZCODsxRDZCODswM0ExOzAzQTE7CisxRDZCOTsxRDZCOTsxRDZCOTswMzk4OzAzOTg7CisxRDZCQTsxRDZCQTsxRDZCQTswM0EzOzAzQTM7CisxRDZCQjsxRDZCQjsxRDZCQjswM0E0OzAzQTQ7CisxRDZCQzsxRDZCQzsxRDZCQzswM0E1OzAzQTU7CisxRDZCRDsxRDZCRDsxRDZCRDswM0E2OzAzQTY7CisxRDZCRTsxRDZCRTsxRDZCRTswM0E3OzAzQTc7CisxRDZCRjsxRDZCRjsxRDZCRjswM0E4OzAzQTg7CisxRDZDMDsxRDZDMDsxRDZDMDswM0E5OzAzQTk7CisxRDZDMTsxRDZDMTsxRDZDMTsyMjA3OzIyMDc7CisxRDZDMjsxRDZDMjsxRDZDMjswM0IxOzAzQjE7CisxRDZDMzsxRDZDMzsxRDZDMzswM0IyOzAzQjI7CisxRDZDNDsxRDZDNDsxRDZDNDswM0IzOzAzQjM7CisxRDZDNTsxRDZDNTsxRDZDNTswM0I0OzAzQjQ7CisxRDZDNjsxRDZDNjsxRDZDNjswM0I1OzAzQjU7CisxRDZDNzsxRDZDNzsxRDZDNzswM0I2OzAzQjY7CisxRDZDODsxRDZDODsxRDZDODswM0I3OzAzQjc7CisxRDZDOTsxRDZDOTsxRDZDOTswM0I4OzAzQjg7CisxRDZDQTsxRDZDQTsxRDZDQTswM0I5OzAzQjk7CisxRDZDQjsxRDZDQjsxRDZDQjswM0JBOzAzQkE7CisxRDZDQzsxRDZDQzsxRDZDQzswM0JCOzAzQkI7CisxRDZDRDsxRDZDRDsxRDZDRDswM0JDOzAzQkM7CisxRDZDRTsxRDZDRTsxRDZDRTswM0JEOzAzQkQ7CisxRDZDRjsxRDZDRjsxRDZDRjswM0JFOzAzQkU7CisxRDZEMDsxRDZEMDsxRDZEMDswM0JGOzAzQkY7CisxRDZEMTsxRDZEMTsxRDZEMTswM0MwOzAzQzA7CisxRDZEMjsxRDZEMjsxRDZEMjswM0MxOzAzQzE7CisxRDZEMzsxRDZEMzsxRDZEMzswM0MyOzAzQzI7CisxRDZENDsxRDZENDsxRDZENDswM0MzOzAzQzM7CisxRDZENTsxRDZENTsxRDZENTswM0M0OzAzQzQ7CisxRDZENjsxRDZENjsxRDZENjswM0M1OzAzQzU7CisxRDZENzsxRDZENzsxRDZENzswM0M2OzAzQzY7CisxRDZEODsxRDZEODsxRDZEODswM0M3OzAzQzc7CisxRDZEOTsxRDZEOTsxRDZEOTswM0M4OzAzQzg7CisxRDZEQTsxRDZEQTsxRDZEQTswM0M5OzAzQzk7CisxRDZEQjsxRDZEQjsxRDZEQjsyMjAyOzIyMDI7CisxRDZEQzsxRDZEQzsxRDZEQzswM0I1OzAzQjU7CisxRDZERDsxRDZERDsxRDZERDswM0I4OzAzQjg7CisxRDZERTsxRDZERTsxRDZERTswM0JBOzAzQkE7CisxRDZERjsxRDZERjsxRDZERjswM0M2OzAzQzY7CisxRDZFMDsxRDZFMDsxRDZFMDswM0MxOzAzQzE7CisxRDZFMTsxRDZFMTsxRDZFMTswM0MwOzAzQzA7CisxRDZFMjsxRDZFMjsxRDZFMjswMzkxOzAzOTE7CisxRDZFMzsxRDZFMzsxRDZFMzswMzkyOzAzOTI7CisxRDZFNDsxRDZFNDsxRDZFNDswMzkzOzAzOTM7CisxRDZFNTsxRDZFNTsxRDZFNTswMzk0OzAzOTQ7CisxRDZFNjsxRDZFNjsxRDZFNjswMzk1OzAzOTU7CisxRDZFNzsxRDZFNzsxRDZFNzswMzk2OzAzOTY7CisxRDZFODsxRDZFODsxRDZFODswMzk3OzAzOTc7CisxRDZFOTsxRDZFOTsxRDZFOTswMzk4OzAzOTg7CisxRDZFQTsxRDZFQTsxRDZFQTswMzk5OzAzOTk7CisxRDZFQjsxRDZFQjsxRDZFQjswMzlBOzAzOUE7CisxRDZFQzsxRDZFQzsxRDZFQzswMzlCOzAzOUI7CisxRDZFRDsxRDZFRDsxRDZFRDswMzlDOzAzOUM7CisxRDZFRTsxRDZFRTsxRDZFRTswMzlEOzAzOUQ7CisxRDZFRjsxRDZFRjsxRDZFRjswMzlFOzAzOUU7CisxRDZGMDsxRDZGMDsxRDZGMDswMzlGOzAzOUY7CisxRDZGMTsxRDZGMTsxRDZGMTswM0EwOzAzQTA7CisxRDZGMjsxRDZGMjsxRDZGMjswM0ExOzAzQTE7CisxRDZGMzsxRDZGMzsxRDZGMzswMzk4OzAzOTg7CisxRDZGNDsxRDZGNDsxRDZGNDswM0EzOzAzQTM7CisxRDZGNTsxRDZGNTsxRDZGNTswM0E0OzAzQTQ7CisxRDZGNjsxRDZGNjsxRDZGNjswM0E1OzAzQTU7CisxRDZGNzsxRDZGNzsxRDZGNzswM0E2OzAzQTY7CisxRDZGODsxRDZGODsxRDZGODswM0E3OzAzQTc7CisxRDZGOTsxRDZGOTsxRDZGOTswM0E4OzAzQTg7CisxRDZGQTsxRDZGQTsxRDZGQTswM0E5OzAzQTk7CisxRDZGQjsxRDZGQjsxRDZGQjsyMjA3OzIyMDc7CisxRDZGQzsxRDZGQzsxRDZGQzswM0IxOzAzQjE7CisxRDZGRDsxRDZGRDsxRDZGRDswM0IyOzAzQjI7CisxRDZGRTsxRDZGRTsxRDZGRTswM0IzOzAzQjM7CisxRDZGRjsxRDZGRjsxRDZGRjswM0I0OzAzQjQ7CisxRDcwMDsxRDcwMDsxRDcwMDswM0I1OzAzQjU7CisxRDcwMTsxRDcwMTsxRDcwMTswM0I2OzAzQjY7CisxRDcwMjsxRDcwMjsxRDcwMjswM0I3OzAzQjc7CisxRDcwMzsxRDcwMzsxRDcwMzswM0I4OzAzQjg7CisxRDcwNDsxRDcwNDsxRDcwNDswM0I5OzAzQjk7CisxRDcwNTsxRDcwNTsxRDcwNTswM0JBOzAzQkE7CisxRDcwNjsxRDcwNjsxRDcwNjswM0JCOzAzQkI7CisxRDcwNzsxRDcwNzsxRDcwNzswM0JDOzAzQkM7CisxRDcwODsxRDcwODsxRDcwODswM0JEOzAzQkQ7CisxRDcwOTsxRDcwOTsxRDcwOTswM0JFOzAzQkU7CisxRDcwQTsxRDcwQTsxRDcwQTswM0JGOzAzQkY7CisxRDcwQjsxRDcwQjsxRDcwQjswM0MwOzAzQzA7CisxRDcwQzsxRDcwQzsxRDcwQzswM0MxOzAzQzE7CisxRDcwRDsxRDcwRDsxRDcwRDswM0MyOzAzQzI7CisxRDcwRTsxRDcwRTsxRDcwRTswM0MzOzAzQzM7CisxRDcwRjsxRDcwRjsxRDcwRjswM0M0OzAzQzQ7CisxRDcxMDsxRDcxMDsxRDcxMDswM0M1OzAzQzU7CisxRDcxMTsxRDcxMTsxRDcxMTswM0M2OzAzQzY7CisxRDcxMjsxRDcxMjsxRDcxMjswM0M3OzAzQzc7CisxRDcxMzsxRDcxMzsxRDcxMzswM0M4OzAzQzg7CisxRDcxNDsxRDcxNDsxRDcxNDswM0M5OzAzQzk7CisxRDcxNTsxRDcxNTsxRDcxNTsyMjAyOzIyMDI7CisxRDcxNjsxRDcxNjsxRDcxNjswM0I1OzAzQjU7CisxRDcxNzsxRDcxNzsxRDcxNzswM0I4OzAzQjg7CisxRDcxODsxRDcxODsxRDcxODswM0JBOzAzQkE7CisxRDcxOTsxRDcxOTsxRDcxOTswM0M2OzAzQzY7CisxRDcxQTsxRDcxQTsxRDcxQTswM0MxOzAzQzE7CisxRDcxQjsxRDcxQjsxRDcxQjswM0MwOzAzQzA7CisxRDcxQzsxRDcxQzsxRDcxQzswMzkxOzAzOTE7CisxRDcxRDsxRDcxRDsxRDcxRDswMzkyOzAzOTI7CisxRDcxRTsxRDcxRTsxRDcxRTswMzkzOzAzOTM7CisxRDcxRjsxRDcxRjsxRDcxRjswMzk0OzAzOTQ7CisxRDcyMDsxRDcyMDsxRDcyMDswMzk1OzAzOTU7CisxRDcyMTsxRDcyMTsxRDcyMTswMzk2OzAzOTY7CisxRDcyMjsxRDcyMjsxRDcyMjswMzk3OzAzOTc7CisxRDcyMzsxRDcyMzsxRDcyMzswMzk4OzAzOTg7CisxRDcyNDsxRDcyNDsxRDcyNDswMzk5OzAzOTk7CisxRDcyNTsxRDcyNTsxRDcyNTswMzlBOzAzOUE7CisxRDcyNjsxRDcyNjsxRDcyNjswMzlCOzAzOUI7CisxRDcyNzsxRDcyNzsxRDcyNzswMzlDOzAzOUM7CisxRDcyODsxRDcyODsxRDcyODswMzlEOzAzOUQ7CisxRDcyOTsxRDcyOTsxRDcyOTswMzlFOzAzOUU7CisxRDcyQTsxRDcyQTsxRDcyQTswMzlGOzAzOUY7CisxRDcyQjsxRDcyQjsxRDcyQjswM0EwOzAzQTA7CisxRDcyQzsxRDcyQzsxRDcyQzswM0ExOzAzQTE7CisxRDcyRDsxRDcyRDsxRDcyRDswMzk4OzAzOTg7CisxRDcyRTsxRDcyRTsxRDcyRTswM0EzOzAzQTM7CisxRDcyRjsxRDcyRjsxRDcyRjswM0E0OzAzQTQ7CisxRDczMDsxRDczMDsxRDczMDswM0E1OzAzQTU7CisxRDczMTsxRDczMTsxRDczMTswM0E2OzAzQTY7CisxRDczMjsxRDczMjsxRDczMjswM0E3OzAzQTc7CisxRDczMzsxRDczMzsxRDczMzswM0E4OzAzQTg7CisxRDczNDsxRDczNDsxRDczNDswM0E5OzAzQTk7CisxRDczNTsxRDczNTsxRDczNTsyMjA3OzIyMDc7CisxRDczNjsxRDczNjsxRDczNjswM0IxOzAzQjE7CisxRDczNzsxRDczNzsxRDczNzswM0IyOzAzQjI7CisxRDczODsxRDczODsxRDczODswM0IzOzAzQjM7CisxRDczOTsxRDczOTsxRDczOTswM0I0OzAzQjQ7CisxRDczQTsxRDczQTsxRDczQTswM0I1OzAzQjU7CisxRDczQjsxRDczQjsxRDczQjswM0I2OzAzQjY7CisxRDczQzsxRDczQzsxRDczQzswM0I3OzAzQjc7CisxRDczRDsxRDczRDsxRDczRDswM0I4OzAzQjg7CisxRDczRTsxRDczRTsxRDczRTswM0I5OzAzQjk7CisxRDczRjsxRDczRjsxRDczRjswM0JBOzAzQkE7CisxRDc0MDsxRDc0MDsxRDc0MDswM0JCOzAzQkI7CisxRDc0MTsxRDc0MTsxRDc0MTswM0JDOzAzQkM7CisxRDc0MjsxRDc0MjsxRDc0MjswM0JEOzAzQkQ7CisxRDc0MzsxRDc0MzsxRDc0MzswM0JFOzAzQkU7CisxRDc0NDsxRDc0NDsxRDc0NDswM0JGOzAzQkY7CisxRDc0NTsxRDc0NTsxRDc0NTswM0MwOzAzQzA7CisxRDc0NjsxRDc0NjsxRDc0NjswM0MxOzAzQzE7CisxRDc0NzsxRDc0NzsxRDc0NzswM0MyOzAzQzI7CisxRDc0ODsxRDc0ODsxRDc0ODswM0MzOzAzQzM7CisxRDc0OTsxRDc0OTsxRDc0OTswM0M0OzAzQzQ7CisxRDc0QTsxRDc0QTsxRDc0QTswM0M1OzAzQzU7CisxRDc0QjsxRDc0QjsxRDc0QjswM0M2OzAzQzY7CisxRDc0QzsxRDc0QzsxRDc0QzswM0M3OzAzQzc7CisxRDc0RDsxRDc0RDsxRDc0RDswM0M4OzAzQzg7CisxRDc0RTsxRDc0RTsxRDc0RTswM0M5OzAzQzk7CisxRDc0RjsxRDc0RjsxRDc0RjsyMjAyOzIyMDI7CisxRDc1MDsxRDc1MDsxRDc1MDswM0I1OzAzQjU7CisxRDc1MTsxRDc1MTsxRDc1MTswM0I4OzAzQjg7CisxRDc1MjsxRDc1MjsxRDc1MjswM0JBOzAzQkE7CisxRDc1MzsxRDc1MzsxRDc1MzswM0M2OzAzQzY7CisxRDc1NDsxRDc1NDsxRDc1NDswM0MxOzAzQzE7CisxRDc1NTsxRDc1NTsxRDc1NTswM0MwOzAzQzA7CisxRDc1NjsxRDc1NjsxRDc1NjswMzkxOzAzOTE7CisxRDc1NzsxRDc1NzsxRDc1NzswMzkyOzAzOTI7CisxRDc1ODsxRDc1ODsxRDc1ODswMzkzOzAzOTM7CisxRDc1OTsxRDc1OTsxRDc1OTswMzk0OzAzOTQ7CisxRDc1QTsxRDc1QTsxRDc1QTswMzk1OzAzOTU7CisxRDc1QjsxRDc1QjsxRDc1QjswMzk2OzAzOTY7CisxRDc1QzsxRDc1QzsxRDc1QzswMzk3OzAzOTc7CisxRDc1RDsxRDc1RDsxRDc1RDswMzk4OzAzOTg7CisxRDc1RTsxRDc1RTsxRDc1RTswMzk5OzAzOTk7CisxRDc1RjsxRDc1RjsxRDc1RjswMzlBOzAzOUE7CisxRDc2MDsxRDc2MDsxRDc2MDswMzlCOzAzOUI7CisxRDc2MTsxRDc2MTsxRDc2MTswMzlDOzAzOUM7CisxRDc2MjsxRDc2MjsxRDc2MjswMzlEOzAzOUQ7CisxRDc2MzsxRDc2MzsxRDc2MzswMzlFOzAzOUU7CisxRDc2NDsxRDc2NDsxRDc2NDswMzlGOzAzOUY7CisxRDc2NTsxRDc2NTsxRDc2NTswM0EwOzAzQTA7CisxRDc2NjsxRDc2NjsxRDc2NjswM0ExOzAzQTE7CisxRDc2NzsxRDc2NzsxRDc2NzswMzk4OzAzOTg7CisxRDc2ODsxRDc2ODsxRDc2ODswM0EzOzAzQTM7CisxRDc2OTsxRDc2OTsxRDc2OTswM0E0OzAzQTQ7CisxRDc2QTsxRDc2QTsxRDc2QTswM0E1OzAzQTU7CisxRDc2QjsxRDc2QjsxRDc2QjswM0E2OzAzQTY7CisxRDc2QzsxRDc2QzsxRDc2QzswM0E3OzAzQTc7CisxRDc2RDsxRDc2RDsxRDc2RDswM0E4OzAzQTg7CisxRDc2RTsxRDc2RTsxRDc2RTswM0E5OzAzQTk7CisxRDc2RjsxRDc2RjsxRDc2RjsyMjA3OzIyMDc7CisxRDc3MDsxRDc3MDsxRDc3MDswM0IxOzAzQjE7CisxRDc3MTsxRDc3MTsxRDc3MTswM0IyOzAzQjI7CisxRDc3MjsxRDc3MjsxRDc3MjswM0IzOzAzQjM7CisxRDc3MzsxRDc3MzsxRDc3MzswM0I0OzAzQjQ7CisxRDc3NDsxRDc3NDsxRDc3NDswM0I1OzAzQjU7CisxRDc3NTsxRDc3NTsxRDc3NTswM0I2OzAzQjY7CisxRDc3NjsxRDc3NjsxRDc3NjswM0I3OzAzQjc7CisxRDc3NzsxRDc3NzsxRDc3NzswM0I4OzAzQjg7CisxRDc3ODsxRDc3ODsxRDc3ODswM0I5OzAzQjk7CisxRDc3OTsxRDc3OTsxRDc3OTswM0JBOzAzQkE7CisxRDc3QTsxRDc3QTsxRDc3QTswM0JCOzAzQkI7CisxRDc3QjsxRDc3QjsxRDc3QjswM0JDOzAzQkM7CisxRDc3QzsxRDc3QzsxRDc3QzswM0JEOzAzQkQ7CisxRDc3RDsxRDc3RDsxRDc3RDswM0JFOzAzQkU7CisxRDc3RTsxRDc3RTsxRDc3RTswM0JGOzAzQkY7CisxRDc3RjsxRDc3RjsxRDc3RjswM0MwOzAzQzA7CisxRDc4MDsxRDc4MDsxRDc4MDswM0MxOzAzQzE7CisxRDc4MTsxRDc4MTsxRDc4MTswM0MyOzAzQzI7CisxRDc4MjsxRDc4MjsxRDc4MjswM0MzOzAzQzM7CisxRDc4MzsxRDc4MzsxRDc4MzswM0M0OzAzQzQ7CisxRDc4NDsxRDc4NDsxRDc4NDswM0M1OzAzQzU7CisxRDc4NTsxRDc4NTsxRDc4NTswM0M2OzAzQzY7CisxRDc4NjsxRDc4NjsxRDc4NjswM0M3OzAzQzc7CisxRDc4NzsxRDc4NzsxRDc4NzswM0M4OzAzQzg7CisxRDc4ODsxRDc4ODsxRDc4ODswM0M5OzAzQzk7CisxRDc4OTsxRDc4OTsxRDc4OTsyMjAyOzIyMDI7CisxRDc4QTsxRDc4QTsxRDc4QTswM0I1OzAzQjU7CisxRDc4QjsxRDc4QjsxRDc4QjswM0I4OzAzQjg7CisxRDc4QzsxRDc4QzsxRDc4QzswM0JBOzAzQkE7CisxRDc4RDsxRDc4RDsxRDc4RDswM0M2OzAzQzY7CisxRDc4RTsxRDc4RTsxRDc4RTswM0MxOzAzQzE7CisxRDc4RjsxRDc4RjsxRDc4RjswM0MwOzAzQzA7CisxRDc5MDsxRDc5MDsxRDc5MDswMzkxOzAzOTE7CisxRDc5MTsxRDc5MTsxRDc5MTswMzkyOzAzOTI7CisxRDc5MjsxRDc5MjsxRDc5MjswMzkzOzAzOTM7CisxRDc5MzsxRDc5MzsxRDc5MzswMzk0OzAzOTQ7CisxRDc5NDsxRDc5NDsxRDc5NDswMzk1OzAzOTU7CisxRDc5NTsxRDc5NTsxRDc5NTswMzk2OzAzOTY7CisxRDc5NjsxRDc5NjsxRDc5NjswMzk3OzAzOTc7CisxRDc5NzsxRDc5NzsxRDc5NzswMzk4OzAzOTg7CisxRDc5ODsxRDc5ODsxRDc5ODswMzk5OzAzOTk7CisxRDc5OTsxRDc5OTsxRDc5OTswMzlBOzAzOUE7CisxRDc5QTsxRDc5QTsxRDc5QTswMzlCOzAzOUI7CisxRDc5QjsxRDc5QjsxRDc5QjswMzlDOzAzOUM7CisxRDc5QzsxRDc5QzsxRDc5QzswMzlEOzAzOUQ7CisxRDc5RDsxRDc5RDsxRDc5RDswMzlFOzAzOUU7CisxRDc5RTsxRDc5RTsxRDc5RTswMzlGOzAzOUY7CisxRDc5RjsxRDc5RjsxRDc5RjswM0EwOzAzQTA7CisxRDdBMDsxRDdBMDsxRDdBMDswM0ExOzAzQTE7CisxRDdBMTsxRDdBMTsxRDdBMTswMzk4OzAzOTg7CisxRDdBMjsxRDdBMjsxRDdBMjswM0EzOzAzQTM7CisxRDdBMzsxRDdBMzsxRDdBMzswM0E0OzAzQTQ7CisxRDdBNDsxRDdBNDsxRDdBNDswM0E1OzAzQTU7CisxRDdBNTsxRDdBNTsxRDdBNTswM0E2OzAzQTY7CisxRDdBNjsxRDdBNjsxRDdBNjswM0E3OzAzQTc7CisxRDdBNzsxRDdBNzsxRDdBNzswM0E4OzAzQTg7CisxRDdBODsxRDdBODsxRDdBODswM0E5OzAzQTk7CisxRDdBOTsxRDdBOTsxRDdBOTsyMjA3OzIyMDc7CisxRDdBQTsxRDdBQTsxRDdBQTswM0IxOzAzQjE7CisxRDdBQjsxRDdBQjsxRDdBQjswM0IyOzAzQjI7CisxRDdBQzsxRDdBQzsxRDdBQzswM0IzOzAzQjM7CisxRDdBRDsxRDdBRDsxRDdBRDswM0I0OzAzQjQ7CisxRDdBRTsxRDdBRTsxRDdBRTswM0I1OzAzQjU7CisxRDdBRjsxRDdBRjsxRDdBRjswM0I2OzAzQjY7CisxRDdCMDsxRDdCMDsxRDdCMDswM0I3OzAzQjc7CisxRDdCMTsxRDdCMTsxRDdCMTswM0I4OzAzQjg7CisxRDdCMjsxRDdCMjsxRDdCMjswM0I5OzAzQjk7CisxRDdCMzsxRDdCMzsxRDdCMzswM0JBOzAzQkE7CisxRDdCNDsxRDdCNDsxRDdCNDswM0JCOzAzQkI7CisxRDdCNTsxRDdCNTsxRDdCNTswM0JDOzAzQkM7CisxRDdCNjsxRDdCNjsxRDdCNjswM0JEOzAzQkQ7CisxRDdCNzsxRDdCNzsxRDdCNzswM0JFOzAzQkU7CisxRDdCODsxRDdCODsxRDdCODswM0JGOzAzQkY7CisxRDdCOTsxRDdCOTsxRDdCOTswM0MwOzAzQzA7CisxRDdCQTsxRDdCQTsxRDdCQTswM0MxOzAzQzE7CisxRDdCQjsxRDdCQjsxRDdCQjswM0MyOzAzQzI7CisxRDdCQzsxRDdCQzsxRDdCQzswM0MzOzAzQzM7CisxRDdCRDsxRDdCRDsxRDdCRDswM0M0OzAzQzQ7CisxRDdCRTsxRDdCRTsxRDdCRTswM0M1OzAzQzU7CisxRDdCRjsxRDdCRjsxRDdCRjswM0M2OzAzQzY7CisxRDdDMDsxRDdDMDsxRDdDMDswM0M3OzAzQzc7CisxRDdDMTsxRDdDMTsxRDdDMTswM0M4OzAzQzg7CisxRDdDMjsxRDdDMjsxRDdDMjswM0M5OzAzQzk7CisxRDdDMzsxRDdDMzsxRDdDMzsyMjAyOzIyMDI7CisxRDdDNDsxRDdDNDsxRDdDNDswM0I1OzAzQjU7CisxRDdDNTsxRDdDNTsxRDdDNTswM0I4OzAzQjg7CisxRDdDNjsxRDdDNjsxRDdDNjswM0JBOzAzQkE7CisxRDdDNzsxRDdDNzsxRDdDNzswM0M2OzAzQzY7CisxRDdDODsxRDdDODsxRDdDODswM0MxOzAzQzE7CisxRDdDOTsxRDdDOTsxRDdDOTswM0MwOzAzQzA7CisxRDdDRTsxRDdDRTsxRDdDRTswMDMwOzAwMzA7CisxRDdDRjsxRDdDRjsxRDdDRjswMDMxOzAwMzE7CisxRDdEMDsxRDdEMDsxRDdEMDswMDMyOzAwMzI7CisxRDdEMTsxRDdEMTsxRDdEMTswMDMzOzAwMzM7CisxRDdEMjsxRDdEMjsxRDdEMjswMDM0OzAwMzQ7CisxRDdEMzsxRDdEMzsxRDdEMzswMDM1OzAwMzU7CisxRDdENDsxRDdENDsxRDdENDswMDM2OzAwMzY7CisxRDdENTsxRDdENTsxRDdENTswMDM3OzAwMzc7CisxRDdENjsxRDdENjsxRDdENjswMDM4OzAwMzg7CisxRDdENzsxRDdENzsxRDdENzswMDM5OzAwMzk7CisxRDdEODsxRDdEODsxRDdEODswMDMwOzAwMzA7CisxRDdEOTsxRDdEOTsxRDdEOTswMDMxOzAwMzE7CisxRDdEQTsxRDdEQTsxRDdEQTswMDMyOzAwMzI7CisxRDdEQjsxRDdEQjsxRDdEQjswMDMzOzAwMzM7CisxRDdEQzsxRDdEQzsxRDdEQzswMDM0OzAwMzQ7CisxRDdERDsxRDdERDsxRDdERDswMDM1OzAwMzU7CisxRDdERTsxRDdERTsxRDdERTswMDM2OzAwMzY7CisxRDdERjsxRDdERjsxRDdERjswMDM3OzAwMzc7CisxRDdFMDsxRDdFMDsxRDdFMDswMDM4OzAwMzg7CisxRDdFMTsxRDdFMTsxRDdFMTswMDM5OzAwMzk7CisxRDdFMjsxRDdFMjsxRDdFMjswMDMwOzAwMzA7CisxRDdFMzsxRDdFMzsxRDdFMzswMDMxOzAwMzE7CisxRDdFNDsxRDdFNDsxRDdFNDswMDMyOzAwMzI7CisxRDdFNTsxRDdFNTsxRDdFNTswMDMzOzAwMzM7CisxRDdFNjsxRDdFNjsxRDdFNjswMDM0OzAwMzQ7CisxRDdFNzsxRDdFNzsxRDdFNzswMDM1OzAwMzU7CisxRDdFODsxRDdFODsxRDdFODswMDM2OzAwMzY7CisxRDdFOTsxRDdFOTsxRDdFOTswMDM3OzAwMzc7CisxRDdFQTsxRDdFQTsxRDdFQTswMDM4OzAwMzg7CisxRDdFQjsxRDdFQjsxRDdFQjswMDM5OzAwMzk7CisxRDdFQzsxRDdFQzsxRDdFQzswMDMwOzAwMzA7CisxRDdFRDsxRDdFRDsxRDdFRDswMDMxOzAwMzE7CisxRDdFRTsxRDdFRTsxRDdFRTswMDMyOzAwMzI7CisxRDdFRjsxRDdFRjsxRDdFRjswMDMzOzAwMzM7CisxRDdGMDsxRDdGMDsxRDdGMDswMDM0OzAwMzQ7CisxRDdGMTsxRDdGMTsxRDdGMTswMDM1OzAwMzU7CisxRDdGMjsxRDdGMjsxRDdGMjswMDM2OzAwMzY7CisxRDdGMzsxRDdGMzsxRDdGMzswMDM3OzAwMzc7CisxRDdGNDsxRDdGNDsxRDdGNDswMDM4OzAwMzg7CisxRDdGNTsxRDdGNTsxRDdGNTswMDM5OzAwMzk7CisxRDdGNjsxRDdGNjsxRDdGNjswMDMwOzAwMzA7CisxRDdGNzsxRDdGNzsxRDdGNzswMDMxOzAwMzE7CisxRDdGODsxRDdGODsxRDdGODswMDMyOzAwMzI7CisxRDdGOTsxRDdGOTsxRDdGOTswMDMzOzAwMzM7CisxRDdGQTsxRDdGQTsxRDdGQTswMDM0OzAwMzQ7CisxRDdGQjsxRDdGQjsxRDdGQjswMDM1OzAwMzU7CisxRDdGQzsxRDdGQzsxRDdGQzswMDM2OzAwMzY7CisxRDdGRDsxRDdGRDsxRDdGRDswMDM3OzAwMzc7CisxRDdGRTsxRDdGRTsxRDdGRTswMDM4OzAwMzg7CisxRDdGRjsxRDdGRjsxRDdGRjswMDM5OzAwMzk7CisyRjgwMDs0RTNEOzRFM0Q7NEUzRDs0RTNEOworMkY4MDE7NEUzODs0RTM4OzRFMzg7NEUzODsKKzJGODAyOzRFNDE7NEU0MTs0RTQxOzRFNDE7CisyRjgwMzsyMDEyMjsyMDEyMjsyMDEyMjsyMDEyMjsKKzJGODA0OzRGNjA7NEY2MDs0RjYwOzRGNjA7CisyRjgwNTs0RkFFOzRGQUU7NEZBRTs0RkFFOworMkY4MDY7NEZCQjs0RkJCOzRGQkI7NEZCQjsKKzJGODA3OzUwMDI7NTAwMjs1MDAyOzUwMDI7CisyRjgwODs1MDdBOzUwN0E7NTA3QTs1MDdBOworMkY4MDk7NTA5OTs1MDk5OzUwOTk7NTA5OTsKKzJGODBBOzUwRTc7NTBFNzs1MEU3OzUwRTc7CisyRjgwQjs1MENGOzUwQ0Y7NTBDRjs1MENGOworMkY4MEM7MzQ5RTszNDlFOzM0OUU7MzQ5RTsKKzJGODBEOzIwNjNBOzIwNjNBOzIwNjNBOzIwNjNBOworMkY4MEU7NTE0RDs1MTREOzUxNEQ7NTE0RDsKKzJGODBGOzUxNTQ7NTE1NDs1MTU0OzUxNTQ7CisyRjgxMDs1MTY0OzUxNjQ7NTE2NDs1MTY0OworMkY4MTE7NTE3Nzs1MTc3OzUxNzc7NTE3NzsKKzJGODEyOzIwNTFDOzIwNTFDOzIwNTFDOzIwNTFDOworMkY4MTM7MzRCOTszNEI5OzM0Qjk7MzRCOTsKKzJGODE0OzUxNjc7NTE2Nzs1MTY3OzUxNjc7CisyRjgxNTs1MThEOzUxOEQ7NTE4RDs1MThEOworMkY4MTY7MjA1NEI7MjA1NEI7MjA1NEI7MjA1NEI7CisyRjgxNzs1MTk3OzUxOTc7NTE5Nzs1MTk3OworMkY4MTg7NTFBNDs1MUE0OzUxQTQ7NTFBNDsKKzJGODE5OzRFQ0M7NEVDQzs0RUNDOzRFQ0M7CisyRjgxQTs1MUFDOzUxQUM7NTFBQzs1MUFDOworMkY4MUI7NTFCNTs1MUI1OzUxQjU7NTFCNTsKKzJGODFDOzI5MURGOzI5MURGOzI5MURGOzI5MURGOworMkY4MUQ7NTFGNTs1MUY1OzUxRjU7NTFGNTsKKzJGODFFOzUyMDM7NTIwMzs1MjAzOzUyMDM7CisyRjgxRjszNERGOzM0REY7MzRERjszNERGOworMkY4MjA7NTIzQjs1MjNCOzUyM0I7NTIzQjsKKzJGODIxOzUyNDY7NTI0Njs1MjQ2OzUyNDY7CisyRjgyMjs1MjcyOzUyNzI7NTI3Mjs1MjcyOworMkY4MjM7NTI3Nzs1Mjc3OzUyNzc7NTI3NzsKKzJGODI0OzM1MTU7MzUxNTszNTE1OzM1MTU7CisyRjgyNTs1MkM3OzUyQzc7NTJDNzs1MkM3OworMkY4MjY7NTJDOTs1MkM5OzUyQzk7NTJDOTsKKzJGODI3OzUyRTQ7NTJFNDs1MkU0OzUyRTQ7CisyRjgyODs1MkZBOzUyRkE7NTJGQTs1MkZBOworMkY4Mjk7NTMwNTs1MzA1OzUzMDU7NTMwNTsKKzJGODJBOzUzMDY7NTMwNjs1MzA2OzUzMDY7CisyRjgyQjs1MzE3OzUzMTc7NTMxNzs1MzE3OworMkY4MkM7NTM0OTs1MzQ5OzUzNDk7NTM0OTsKKzJGODJEOzUzNTE7NTM1MTs1MzUxOzUzNTE7CisyRjgyRTs1MzVBOzUzNUE7NTM1QTs1MzVBOworMkY4MkY7NTM3Mzs1MzczOzUzNzM7NTM3MzsKKzJGODMwOzUzN0Q7NTM3RDs1MzdEOzUzN0Q7CisyRjgzMTs1MzdGOzUzN0Y7NTM3Rjs1MzdGOworMkY4MzI7NTM3Rjs1MzdGOzUzN0Y7NTM3RjsKKzJGODMzOzUzN0Y7NTM3Rjs1MzdGOzUzN0Y7CisyRjgzNDsyMEEyQzsyMEEyQzsyMEEyQzsyMEEyQzsKKzJGODM1OzcwNzA7NzA3MDs3MDcwOzcwNzA7CisyRjgzNjs1M0NBOzUzQ0E7NTNDQTs1M0NBOworMkY4Mzc7NTNERjs1M0RGOzUzREY7NTNERjsKKzJGODM4OzIwQjYzOzIwQjYzOzIwQjYzOzIwQjYzOworMkY4Mzk7NTNFQjs1M0VCOzUzRUI7NTNFQjsKKzJGODNBOzUzRjE7NTNGMTs1M0YxOzUzRjE7CisyRjgzQjs1NDA2OzU0MDY7NTQwNjs1NDA2OworMkY4M0M7NTQ5RTs1NDlFOzU0OUU7NTQ5RTsKKzJGODNEOzU0Mzg7NTQzODs1NDM4OzU0Mzg7CisyRjgzRTs1NDQ4OzU0NDg7NTQ0ODs1NDQ4OworMkY4M0Y7NTQ2ODs1NDY4OzU0Njg7NTQ2ODsKKzJGODQwOzU0QTI7NTRBMjs1NEEyOzU0QTI7CisyRjg0MTs1NEY2OzU0RjY7NTRGNjs1NEY2OworMkY4NDI7NTUxMDs1NTEwOzU1MTA7NTUxMDsKKzJGODQzOzU1NTM7NTU1Mzs1NTUzOzU1NTM7CisyRjg0NDs1NTYzOzU1NjM7NTU2Mzs1NTYzOworMkY4NDU7NTU4NDs1NTg0OzU1ODQ7NTU4NDsKKzJGODQ2OzU1ODQ7NTU4NDs1NTg0OzU1ODQ7CisyRjg0Nzs1NTk5OzU1OTk7NTU5OTs1NTk5OworMkY4NDg7NTVBQjs1NUFCOzU1QUI7NTVBQjsKKzJGODQ5OzU1QjM7NTVCMzs1NUIzOzU1QjM7CisyRjg0QTs1NUMyOzU1QzI7NTVDMjs1NUMyOworMkY4NEI7NTcxNjs1NzE2OzU3MTY7NTcxNjsKKzJGODRDOzU2MDY7NTYwNjs1NjA2OzU2MDY7CisyRjg0RDs1NzE3OzU3MTc7NTcxNzs1NzE3OworMkY4NEU7NTY1MTs1NjUxOzU2NTE7NTY1MTsKKzJGODRGOzU2NzQ7NTY3NDs1Njc0OzU2NzQ7CisyRjg1MDs1MjA3OzUyMDc7NTIwNzs1MjA3OworMkY4NTE7NThFRTs1OEVFOzU4RUU7NThFRTsKKzJGODUyOzU3Q0U7NTdDRTs1N0NFOzU3Q0U7CisyRjg1Mzs1N0Y0OzU3RjQ7NTdGNDs1N0Y0OworMkY4NTQ7NTgwRDs1ODBEOzU4MEQ7NTgwRDsKKzJGODU1OzU3OEI7NTc4Qjs1NzhCOzU3OEI7CisyRjg1Njs1ODMyOzU4MzI7NTgzMjs1ODMyOworMkY4NTc7NTgzMTs1ODMxOzU4MzE7NTgzMTsKKzJGODU4OzU4QUM7NThBQzs1OEFDOzU4QUM7CisyRjg1OTsyMTRFNDsyMTRFNDsyMTRFNDsyMTRFNDsKKzJGODVBOzU4RjI7NThGMjs1OEYyOzU4RjI7CisyRjg1Qjs1OEY3OzU4Rjc7NThGNzs1OEY3OworMkY4NUM7NTkwNjs1OTA2OzU5MDY7NTkwNjsKKzJGODVEOzU5MUE7NTkxQTs1OTFBOzU5MUE7CisyRjg1RTs1OTIyOzU5MjI7NTkyMjs1OTIyOworMkY4NUY7NTk2Mjs1OTYyOzU5NjI7NTk2MjsKKzJGODYwOzIxNkE4OzIxNkE4OzIxNkE4OzIxNkE4OworMkY4NjE7MjE2RUE7MjE2RUE7MjE2RUE7MjE2RUE7CisyRjg2Mjs1OUVDOzU5RUM7NTlFQzs1OUVDOworMkY4NjM7NUExQjs1QTFCOzVBMUI7NUExQjsKKzJGODY0OzVBMjc7NUEyNzs1QTI3OzVBMjc7CisyRjg2NTs1OUQ4OzU5RDg7NTlEODs1OUQ4OworMkY4NjY7NUE2Njs1QTY2OzVBNjY7NUE2NjsKKzJGODY3OzM2RUU7MzZFRTszNkVFOzM2RUU7CisyRjg2ODsyMTM2QTsyMTM2QTsyMTM2QTsyMTM2QTsKKzJGODY5OzVCMDg7NUIwODs1QjA4OzVCMDg7CisyRjg2QTs1QjNFOzVCM0U7NUIzRTs1QjNFOworMkY4NkI7NUIzRTs1QjNFOzVCM0U7NUIzRTsKKzJGODZDOzIxOUM4OzIxOUM4OzIxOUM4OzIxOUM4OworMkY4NkQ7NUJDMzs1QkMzOzVCQzM7NUJDMzsKKzJGODZFOzVCRDg7NUJEODs1QkQ4OzVCRDg7CisyRjg2Rjs1QkU3OzVCRTc7NUJFNzs1QkU3OworMkY4NzA7NUJGMzs1QkYzOzVCRjM7NUJGMzsKKzJGODcxOzIxQjE4OzIxQjE4OzIxQjE4OzIxQjE4OworMkY4NzI7NUJGRjs1QkZGOzVCRkY7NUJGRjsKKzJGODczOzVDMDY7NUMwNjs1QzA2OzVDMDY7CisyRjg3NDs1RjMzOzVGMzM7NUYzMzs1RjMzOworMkY4NzU7NUMyMjs1QzIyOzVDMjI7NUMyMjsKKzJGODc2OzM3ODE7Mzc4MTszNzgxOzM3ODE7CisyRjg3Nzs1QzYwOzVDNjA7NUM2MDs1QzYwOworMkY4Nzg7NUM2RTs1QzZFOzVDNkU7NUM2RTsKKzJGODc5OzVDQzA7NUNDMDs1Q0MwOzVDQzA7CisyRjg3QTs1QzhEOzVDOEQ7NUM4RDs1QzhEOworMkY4N0I7MjFERTQ7MjFERTQ7MjFERTQ7MjFERTQ7CisyRjg3Qzs1RDQzOzVENDM7NUQ0Mzs1RDQzOworMkY4N0Q7MjFERTY7MjFERTY7MjFERTY7MjFERTY7CisyRjg3RTs1RDZFOzVENkU7NUQ2RTs1RDZFOworMkY4N0Y7NUQ2Qjs1RDZCOzVENkI7NUQ2QjsKKzJGODgwOzVEN0M7NUQ3Qzs1RDdDOzVEN0M7CisyRjg4MTs1REUxOzVERTE7NURFMTs1REUxOworMkY4ODI7NURFMjs1REUyOzVERTI7NURFMjsKKzJGODgzOzM4MkY7MzgyRjszODJGOzM4MkY7CisyRjg4NDs1REZEOzVERkQ7NURGRDs1REZEOworMkY4ODU7NUUyODs1RTI4OzVFMjg7NUUyODsKKzJGODg2OzVFM0Q7NUUzRDs1RTNEOzVFM0Q7CisyRjg4Nzs1RTY5OzVFNjk7NUU2OTs1RTY5OworMkY4ODg7Mzg2MjszODYyOzM4NjI7Mzg2MjsKKzJGODg5OzIyMTgzOzIyMTgzOzIyMTgzOzIyMTgzOworMkY4OEE7Mzg3QzszODdDOzM4N0M7Mzg3QzsKKzJGODhCOzVFQjA7NUVCMDs1RUIwOzVFQjA7CisyRjg4Qzs1RUIzOzVFQjM7NUVCMzs1RUIzOworMkY4OEQ7NUVCNjs1RUI2OzVFQjY7NUVCNjsKKzJGODhFOzVFQ0E7NUVDQTs1RUNBOzVFQ0E7CisyRjg4RjsyQTM5MjsyQTM5MjsyQTM5MjsyQTM5MjsKKzJGODkwOzVFRkU7NUVGRTs1RUZFOzVFRkU7CisyRjg5MTsyMjMzMTsyMjMzMTsyMjMzMTsyMjMzMTsKKzJGODkyOzIyMzMxOzIyMzMxOzIyMzMxOzIyMzMxOworMkY4OTM7ODIwMTs4MjAxOzgyMDE7ODIwMTsKKzJGODk0OzVGMjI7NUYyMjs1RjIyOzVGMjI7CisyRjg5NTs1RjIyOzVGMjI7NUYyMjs1RjIyOworMkY4OTY7MzhDNzszOEM3OzM4Qzc7MzhDNzsKKzJGODk3OzIzMkI4OzIzMkI4OzIzMkI4OzIzMkI4OworMkY4OTg7MjYxREE7MjYxREE7MjYxREE7MjYxREE7CisyRjg5OTs1RjYyOzVGNjI7NUY2Mjs1RjYyOworMkY4OUE7NUY2Qjs1RjZCOzVGNkI7NUY2QjsKKzJGODlCOzM4RTM7MzhFMzszOEUzOzM4RTM7CisyRjg5Qzs1RjlBOzVGOUE7NUY5QTs1RjlBOworMkY4OUQ7NUZDRDs1RkNEOzVGQ0Q7NUZDRDsKKzJGODlFOzVGRDc7NUZENzs1RkQ3OzVGRDc7CisyRjg5Rjs1RkY5OzVGRjk7NUZGOTs1RkY5OworMkY4QTA7NjA4MTs2MDgxOzYwODE7NjA4MTsKKzJGOEExOzM5M0E7MzkzQTszOTNBOzM5M0E7CisyRjhBMjszOTFDOzM5MUM7MzkxQzszOTFDOworMkY4QTM7NjA5NDs2MDk0OzYwOTQ7NjA5NDsKKzJGOEE0OzIyNkQ0OzIyNkQ0OzIyNkQ0OzIyNkQ0OworMkY4QTU7NjBDNzs2MEM3OzYwQzc7NjBDNzsKKzJGOEE2OzYxNDg7NjE0ODs2MTQ4OzYxNDg7CisyRjhBNzs2MTRDOzYxNEM7NjE0Qzs2MTRDOworMkY4QTg7NjE0RTs2MTRFOzYxNEU7NjE0RTsKKzJGOEE5OzYxNEM7NjE0Qzs2MTRDOzYxNEM7CisyRjhBQTs2MTdBOzYxN0E7NjE3QTs2MTdBOworMkY4QUI7NjE4RTs2MThFOzYxOEU7NjE4RTsKKzJGOEFDOzYxQjI7NjFCMjs2MUIyOzYxQjI7CisyRjhBRDs2MUE0OzYxQTQ7NjFBNDs2MUE0OworMkY4QUU7NjFBRjs2MUFGOzYxQUY7NjFBRjsKKzJGOEFGOzYxREU7NjFERTs2MURFOzYxREU7CisyRjhCMDs2MUYyOzYxRjI7NjFGMjs2MUYyOworMkY4QjE7NjFGNjs2MUY2OzYxRjY7NjFGNjsKKzJGOEIyOzYyMTA7NjIxMDs2MjEwOzYyMTA7CisyRjhCMzs2MjFCOzYyMUI7NjIxQjs2MjFCOworMkY4QjQ7NjI1RDs2MjVEOzYyNUQ7NjI1RDsKKzJGOEI1OzYyQjE7NjJCMTs2MkIxOzYyQjE7CisyRjhCNjs2MkQ0OzYyRDQ7NjJENDs2MkQ0OworMkY4Qjc7NjM1MDs2MzUwOzYzNTA7NjM1MDsKKzJGOEI4OzIyQjBDOzIyQjBDOzIyQjBDOzIyQjBDOworMkY4Qjk7NjMzRDs2MzNEOzYzM0Q7NjMzRDsKKzJGOEJBOzYyRkM7NjJGQzs2MkZDOzYyRkM7CisyRjhCQjs2MzY4OzYzNjg7NjM2ODs2MzY4OworMkY4QkM7NjM4Mzs2MzgzOzYzODM7NjM4MzsKKzJGOEJEOzYzRTQ7NjNFNDs2M0U0OzYzRTQ7CisyRjhCRTsyMkJGMTsyMkJGMTsyMkJGMTsyMkJGMTsKKzJGOEJGOzY0MjI7NjQyMjs2NDIyOzY0MjI7CisyRjhDMDs2M0M1OzYzQzU7NjNDNTs2M0M1OworMkY4QzE7NjNBOTs2M0E5OzYzQTk7NjNBOTsKKzJGOEMyOzNBMkU7M0EyRTszQTJFOzNBMkU7CisyRjhDMzs2NDY5OzY0Njk7NjQ2OTs2NDY5OworMkY4QzQ7NjQ3RTs2NDdFOzY0N0U7NjQ3RTsKKzJGOEM1OzY0OUQ7NjQ5RDs2NDlEOzY0OUQ7CisyRjhDNjs2NDc3OzY0Nzc7NjQ3Nzs2NDc3OworMkY4Qzc7M0E2QzszQTZDOzNBNkM7M0E2QzsKKzJGOEM4OzY1NEY7NjU0Rjs2NTRGOzY1NEY7CisyRjhDOTs2NTZDOzY1NkM7NjU2Qzs2NTZDOworMkY4Q0E7MjMwMEE7MjMwMEE7MjMwMEE7MjMwMEE7CisyRjhDQjs2NUUzOzY1RTM7NjVFMzs2NUUzOworMkY4Q0M7NjZGODs2NkY4OzY2Rjg7NjZGODsKKzJGOENEOzY2NDk7NjY0OTs2NjQ5OzY2NDk7CisyRjhDRTszQjE5OzNCMTk7M0IxOTszQjE5OworMkY4Q0Y7NjY5MTs2NjkxOzY2OTE7NjY5MTsKKzJGOEQwOzNCMDg7M0IwODszQjA4OzNCMDg7CisyRjhEMTszQUU0OzNBRTQ7M0FFNDszQUU0OworMkY4RDI7NTE5Mjs1MTkyOzUxOTI7NTE5MjsKKzJGOEQzOzUxOTU7NTE5NTs1MTk1OzUxOTU7CisyRjhENDs2NzAwOzY3MDA7NjcwMDs2NzAwOworMkY4RDU7NjY5Qzs2NjlDOzY2OUM7NjY5QzsKKzJGOEQ2OzgwQUQ7ODBBRDs4MEFEOzgwQUQ7CisyRjhENzs0M0Q5OzQzRDk7NDNEOTs0M0Q5OworMkY4RDg7NjcxNzs2NzE3OzY3MTc7NjcxNzsKKzJGOEQ5OzY3MUI7NjcxQjs2NzFCOzY3MUI7CisyRjhEQTs2NzIxOzY3MjE7NjcyMTs2NzIxOworMkY4REI7Njc1RTs2NzVFOzY3NUU7Njc1RTsKKzJGOERDOzY3NTM7Njc1Mzs2NzUzOzY3NTM7CisyRjhERDsyMzNDMzsyMzNDMzsyMzNDMzsyMzNDMzsKKzJGOERFOzNCNDk7M0I0OTszQjQ5OzNCNDk7CisyRjhERjs2N0ZBOzY3RkE7NjdGQTs2N0ZBOworMkY4RTA7Njc4NTs2Nzg1OzY3ODU7Njc4NTsKKzJGOEUxOzY4NTI7Njg1Mjs2ODUyOzY4NTI7CisyRjhFMjs2ODg1OzY4ODU7Njg4NTs2ODg1OworMkY4RTM7MjM0NkQ7MjM0NkQ7MjM0NkQ7MjM0NkQ7CisyRjhFNDs2ODhFOzY4OEU7Njg4RTs2ODhFOworMkY4RTU7NjgxRjs2ODFGOzY4MUY7NjgxRjsKKzJGOEU2OzY5MTQ7NjkxNDs2OTE0OzY5MTQ7CisyRjhFNzszQjlEOzNCOUQ7M0I5RDszQjlEOworMkY4RTg7Njk0Mjs2OTQyOzY5NDI7Njk0MjsKKzJGOEU5OzY5QTM7NjlBMzs2OUEzOzY5QTM7CisyRjhFQTs2OUVBOzY5RUE7NjlFQTs2OUVBOworMkY4RUI7NkFBODs2QUE4OzZBQTg7NkFBODsKKzJGOEVDOzIzNkEzOzIzNkEzOzIzNkEzOzIzNkEzOworMkY4RUQ7NkFEQjs2QURCOzZBREI7NkFEQjsKKzJGOEVFOzNDMTg7M0MxODszQzE4OzNDMTg7CisyRjhFRjs2QjIxOzZCMjE7NkIyMTs2QjIxOworMkY4RjA7MjM4QTc7MjM4QTc7MjM4QTc7MjM4QTc7CisyRjhGMTs2QjU0OzZCNTQ7NkI1NDs2QjU0OworMkY4RjI7M0M0RTszQzRFOzNDNEU7M0M0RTsKKzJGOEYzOzZCNzI7NkI3Mjs2QjcyOzZCNzI7CisyRjhGNDs2QjlGOzZCOUY7NkI5Rjs2QjlGOworMkY4RjU7NkJCQTs2QkJBOzZCQkE7NkJCQTsKKzJGOEY2OzZCQkI7NkJCQjs2QkJCOzZCQkI7CisyRjhGNzsyM0E4RDsyM0E4RDsyM0E4RDsyM0E4RDsKKzJGOEY4OzIxRDBCOzIxRDBCOzIxRDBCOzIxRDBCOworMkY4Rjk7MjNBRkE7MjNBRkE7MjNBRkE7MjNBRkE7CisyRjhGQTs2QzRFOzZDNEU7NkM0RTs2QzRFOworMkY4RkI7MjNDQkM7MjNDQkM7MjNDQkM7MjNDQkM7CisyRjhGQzs2Q0JGOzZDQkY7NkNCRjs2Q0JGOworMkY4RkQ7NkNDRDs2Q0NEOzZDQ0Q7NkNDRDsKKzJGOEZFOzZDNjc7NkM2Nzs2QzY3OzZDNjc7CisyRjhGRjs2RDE2OzZEMTY7NkQxNjs2RDE2OworMkY5MDA7NkQzRTs2RDNFOzZEM0U7NkQzRTsKKzJGOTAxOzZENzc7NkQ3Nzs2RDc3OzZENzc7CisyRjkwMjs2RDQxOzZENDE7NkQ0MTs2RDQxOworMkY5MDM7NkQ2OTs2RDY5OzZENjk7NkQ2OTsKKzJGOTA0OzZENzg7NkQ3ODs2RDc4OzZENzg7CisyRjkwNTs2RDg1OzZEODU7NkQ4NTs2RDg1OworMkY5MDY7MjNEMUU7MjNEMUU7MjNEMUU7MjNEMUU7CisyRjkwNzs2RDM0OzZEMzQ7NkQzNDs2RDM0OworMkY5MDg7NkUyRjs2RTJGOzZFMkY7NkUyRjsKKzJGOTA5OzZFNkU7NkU2RTs2RTZFOzZFNkU7CisyRjkwQTszRDMzOzNEMzM7M0QzMzszRDMzOworMkY5MEI7NkVDQjs2RUNCOzZFQ0I7NkVDQjsKKzJGOTBDOzZFQzc7NkVDNzs2RUM3OzZFQzc7CisyRjkwRDsyM0VEMTsyM0VEMTsyM0VEMTsyM0VEMTsKKzJGOTBFOzZERjk7NkRGOTs2REY5OzZERjk7CisyRjkwRjs2RjZFOzZGNkU7NkY2RTs2RjZFOworMkY5MTA7MjNGNUU7MjNGNUU7MjNGNUU7MjNGNUU7CisyRjkxMTsyM0Y4RTsyM0Y4RTsyM0Y4RTsyM0Y4RTsKKzJGOTEyOzZGQzY7NkZDNjs2RkM2OzZGQzY7CisyRjkxMzs3MDM5OzcwMzk7NzAzOTs3MDM5OworMkY5MTQ7NzAxRTs3MDFFOzcwMUU7NzAxRTsKKzJGOTE1OzcwMUI7NzAxQjs3MDFCOzcwMUI7CisyRjkxNjszRDk2OzNEOTY7M0Q5NjszRDk2OworMkY5MTc7NzA0QTs3MDRBOzcwNEE7NzA0QTsKKzJGOTE4OzcwN0Q7NzA3RDs3MDdEOzcwN0Q7CisyRjkxOTs3MDc3OzcwNzc7NzA3Nzs3MDc3OworMkY5MUE7NzBBRDs3MEFEOzcwQUQ7NzBBRDsKKzJGOTFCOzIwNTI1OzIwNTI1OzIwNTI1OzIwNTI1OworMkY5MUM7NzE0NTs3MTQ1OzcxNDU7NzE0NTsKKzJGOTFEOzI0MjYzOzI0MjYzOzI0MjYzOzI0MjYzOworMkY5MUU7NzE5Qzs3MTlDOzcxOUM7NzE5QzsKKzJGOTFGOzQzQUI7NDNBQjs0M0FCOzQzQUI7CisyRjkyMDs3MjI4OzcyMjg7NzIyODs3MjI4OworMkY5MjE7NzIzNTs3MjM1OzcyMzU7NzIzNTsKKzJGOTIyOzcyNTA7NzI1MDs3MjUwOzcyNTA7CisyRjkyMzsyNDYwODsyNDYwODsyNDYwODsyNDYwODsKKzJGOTI0OzcyODA7NzI4MDs3MjgwOzcyODA7CisyRjkyNTs3Mjk1OzcyOTU7NzI5NTs3Mjk1OworMkY5MjY7MjQ3MzU7MjQ3MzU7MjQ3MzU7MjQ3MzU7CisyRjkyNzsyNDgxNDsyNDgxNDsyNDgxNDsyNDgxNDsKKzJGOTI4OzczN0E7NzM3QTs3MzdBOzczN0E7CisyRjkyOTs3MzhCOzczOEI7NzM4Qjs3MzhCOworMkY5MkE7M0VBQzszRUFDOzNFQUM7M0VBQzsKKzJGOTJCOzczQTU7NzNBNTs3M0E1OzczQTU7CisyRjkyQzszRUI4OzNFQjg7M0VCODszRUI4OworMkY5MkQ7M0VCODszRUI4OzNFQjg7M0VCODsKKzJGOTJFOzc0NDc7NzQ0Nzs3NDQ3Ozc0NDc7CisyRjkyRjs3NDVDOzc0NUM7NzQ1Qzs3NDVDOworMkY5MzA7NzQ3MTs3NDcxOzc0NzE7NzQ3MTsKKzJGOTMxOzc0ODU7NzQ4NTs3NDg1Ozc0ODU7CisyRjkzMjs3NENBOzc0Q0E7NzRDQTs3NENBOworMkY5MzM7M0YxQjszRjFCOzNGMUI7M0YxQjsKKzJGOTM0Ozc1MjQ7NzUyNDs3NTI0Ozc1MjQ7CisyRjkzNTsyNEMzNjsyNEMzNjsyNEMzNjsyNEMzNjsKKzJGOTM2Ozc1M0U7NzUzRTs3NTNFOzc1M0U7CisyRjkzNzsyNEM5MjsyNEM5MjsyNEM5MjsyNEM5MjsKKzJGOTM4Ozc1NzA7NzU3MDs3NTcwOzc1NzA7CisyRjkzOTsyMjE5RjsyMjE5RjsyMjE5RjsyMjE5RjsKKzJGOTNBOzc2MTA7NzYxMDs3NjEwOzc2MTA7CisyRjkzQjsyNEZBMTsyNEZBMTsyNEZBMTsyNEZBMTsKKzJGOTNDOzI0RkI4OzI0RkI4OzI0RkI4OzI0RkI4OworMkY5M0Q7MjUwNDQ7MjUwNDQ7MjUwNDQ7MjUwNDQ7CisyRjkzRTszRkZDOzNGRkM7M0ZGQzszRkZDOworMkY5M0Y7NDAwODs0MDA4OzQwMDg7NDAwODsKKzJGOTQwOzc2RjQ7NzZGNDs3NkY0Ozc2RjQ7CisyRjk0MTsyNTBGMzsyNTBGMzsyNTBGMzsyNTBGMzsKKzJGOTQyOzI1MEYyOzI1MEYyOzI1MEYyOzI1MEYyOworMkY5NDM7MjUxMTk7MjUxMTk7MjUxMTk7MjUxMTk7CisyRjk0NDsyNTEzMzsyNTEzMzsyNTEzMzsyNTEzMzsKKzJGOTQ1Ozc3MUU7NzcxRTs3NzFFOzc3MUU7CisyRjk0Njs3NzFGOzc3MUY7NzcxRjs3NzFGOworMkY5NDc7NzcxRjs3NzFGOzc3MUY7NzcxRjsKKzJGOTQ4Ozc3NEE7Nzc0QTs3NzRBOzc3NEE7CisyRjk0OTs0MDM5OzQwMzk7NDAzOTs0MDM5OworMkY5NEE7Nzc4Qjs3NzhCOzc3OEI7Nzc4QjsKKzJGOTRCOzQwNDY7NDA0Njs0MDQ2OzQwNDY7CisyRjk0Qzs0MDk2OzQwOTY7NDA5Njs0MDk2OworMkY5NEQ7MjU0MUQ7MjU0MUQ7MjU0MUQ7MjU0MUQ7CisyRjk0RTs3ODRFOzc4NEU7Nzg0RTs3ODRFOworMkY5NEY7Nzg4Qzs3ODhDOzc4OEM7Nzg4QzsKKzJGOTUwOzc4Q0M7NzhDQzs3OENDOzc4Q0M7CisyRjk1MTs0MEUzOzQwRTM7NDBFMzs0MEUzOworMkY5NTI7MjU2MjY7MjU2MjY7MjU2MjY7MjU2MjY7CisyRjk1Mzs3OTU2Ozc5NTY7Nzk1Njs3OTU2OworMkY5NTQ7MjU2OUE7MjU2OUE7MjU2OUE7MjU2OUE7CisyRjk1NTsyNTZDNTsyNTZDNTsyNTZDNTsyNTZDNTsKKzJGOTU2Ozc5OEY7Nzk4Rjs3OThGOzc5OEY7CisyRjk1Nzs3OUVCOzc5RUI7NzlFQjs3OUVCOworMkY5NTg7NDEyRjs0MTJGOzQxMkY7NDEyRjsKKzJGOTU5OzdBNDA7N0E0MDs3QTQwOzdBNDA7CisyRjk1QTs3QTRBOzdBNEE7N0E0QTs3QTRBOworMkY5NUI7N0E0Rjs3QTRGOzdBNEY7N0E0RjsKKzJGOTVDOzI1OTdDOzI1OTdDOzI1OTdDOzI1OTdDOworMkY5NUQ7MjVBQTc7MjVBQTc7MjVBQTc7MjVBQTc7CisyRjk1RTsyNUFBNzsyNUFBNzsyNUFBNzsyNUFBNzsKKzJGOTVGOzdBQUU7N0FBRTs3QUFFOzdBQUU7CisyRjk2MDs0MjAyOzQyMDI7NDIwMjs0MjAyOworMkY5NjE7MjVCQUI7MjVCQUI7MjVCQUI7MjVCQUI7CisyRjk2Mjs3QkM2OzdCQzY7N0JDNjs3QkM2OworMkY5NjM7N0JDOTs3QkM5OzdCQzk7N0JDOTsKKzJGOTY0OzQyMjc7NDIyNzs0MjI3OzQyMjc7CisyRjk2NTsyNUM4MDsyNUM4MDsyNUM4MDsyNUM4MDsKKzJGOTY2OzdDRDI7N0NEMjs3Q0QyOzdDRDI7CisyRjk2Nzs0MkEwOzQyQTA7NDJBMDs0MkEwOworMkY5Njg7N0NFODs3Q0U4OzdDRTg7N0NFODsKKzJGOTY5OzdDRTM7N0NFMzs3Q0UzOzdDRTM7CisyRjk2QTs3RDAwOzdEMDA7N0QwMDs3RDAwOworMkY5NkI7MjVGODY7MjVGODY7MjVGODY7MjVGODY7CisyRjk2Qzs3RDYzOzdENjM7N0Q2Mzs3RDYzOworMkY5NkQ7NDMwMTs0MzAxOzQzMDE7NDMwMTsKKzJGOTZFOzdEQzc7N0RDNzs3REM3OzdEQzc7CisyRjk2Rjs3RTAyOzdFMDI7N0UwMjs3RTAyOworMkY5NzA7N0U0NTs3RTQ1OzdFNDU7N0U0NTsKKzJGOTcxOzQzMzQ7NDMzNDs0MzM0OzQzMzQ7CisyRjk3MjsyNjIyODsyNjIyODsyNjIyODsyNjIyODsKKzJGOTczOzI2MjQ3OzI2MjQ3OzI2MjQ3OzI2MjQ3OworMkY5NzQ7NDM1OTs0MzU5OzQzNTk7NDM1OTsKKzJGOTc1OzI2MkQ5OzI2MkQ5OzI2MkQ5OzI2MkQ5OworMkY5NzY7N0Y3QTs3RjdBOzdGN0E7N0Y3QTsKKzJGOTc3OzI2MzNFOzI2MzNFOzI2MzNFOzI2MzNFOworMkY5Nzg7N0Y5NTs3Rjk1OzdGOTU7N0Y5NTsKKzJGOTc5OzdGRkE7N0ZGQTs3RkZBOzdGRkE7CisyRjk3QTs4MDA1OzgwMDU7ODAwNTs4MDA1OworMkY5N0I7MjY0REE7MjY0REE7MjY0REE7MjY0REE7CisyRjk3QzsyNjUyMzsyNjUyMzsyNjUyMzsyNjUyMzsKKzJGOTdEOzgwNjA7ODA2MDs4MDYwOzgwNjA7CisyRjk3RTsyNjVBODsyNjVBODsyNjVBODsyNjVBODsKKzJGOTdGOzgwNzA7ODA3MDs4MDcwOzgwNzA7CisyRjk4MDsyMzM1RjsyMzM1RjsyMzM1RjsyMzM1RjsKKzJGOTgxOzQzRDU7NDNENTs0M0Q1OzQzRDU7CisyRjk4Mjs4MEIyOzgwQjI7ODBCMjs4MEIyOworMkY5ODM7ODEwMzs4MTAzOzgxMDM7ODEwMzsKKzJGOTg0OzQ0MEI7NDQwQjs0NDBCOzQ0MEI7CisyRjk4NTs4MTNFOzgxM0U7ODEzRTs4MTNFOworMkY5ODY7NUFCNTs1QUI1OzVBQjU7NUFCNTsKKzJGOTg3OzI2N0E3OzI2N0E3OzI2N0E3OzI2N0E3OworMkY5ODg7MjY3QjU7MjY3QjU7MjY3QjU7MjY3QjU7CisyRjk4OTsyMzM5MzsyMzM5MzsyMzM5MzsyMzM5MzsKKzJGOThBOzIzMzlDOzIzMzlDOzIzMzlDOzIzMzlDOworMkY5OEI7ODIwMTs4MjAxOzgyMDE7ODIwMTsKKzJGOThDOzgyMDQ7ODIwNDs4MjA0OzgyMDQ7CisyRjk4RDs4RjlFOzhGOUU7OEY5RTs4RjlFOworMkY5OEU7NDQ2Qjs0NDZCOzQ0NkI7NDQ2QjsKKzJGOThGOzgyOTE7ODI5MTs4MjkxOzgyOTE7CisyRjk5MDs4MjhCOzgyOEI7ODI4Qjs4MjhCOworMkY5OTE7ODI5RDs4MjlEOzgyOUQ7ODI5RDsKKzJGOTkyOzUyQjM7NTJCMzs1MkIzOzUyQjM7CisyRjk5Mzs4MkIxOzgyQjE7ODJCMTs4MkIxOworMkY5OTQ7ODJCMzs4MkIzOzgyQjM7ODJCMzsKKzJGOTk1OzgyQkQ7ODJCRDs4MkJEOzgyQkQ7CisyRjk5Njs4MkU2OzgyRTY7ODJFNjs4MkU2OworMkY5OTc7MjZCM0M7MjZCM0M7MjZCM0M7MjZCM0M7CisyRjk5ODs4MkU1OzgyRTU7ODJFNTs4MkU1OworMkY5OTk7ODMxRDs4MzFEOzgzMUQ7ODMxRDsKKzJGOTlBOzgzNjM7ODM2Mzs4MzYzOzgzNjM7CisyRjk5Qjs4M0FEOzgzQUQ7ODNBRDs4M0FEOworMkY5OUM7ODMyMzs4MzIzOzgzMjM7ODMyMzsKKzJGOTlEOzgzQkQ7ODNCRDs4M0JEOzgzQkQ7CisyRjk5RTs4M0U3OzgzRTc7ODNFNzs4M0U3OworMkY5OUY7ODQ1Nzs4NDU3Ozg0NTc7ODQ1NzsKKzJGOUEwOzgzNTM7ODM1Mzs4MzUzOzgzNTM7CisyRjlBMTs4M0NBOzgzQ0E7ODNDQTs4M0NBOworMkY5QTI7ODNDQzs4M0NDOzgzQ0M7ODNDQzsKKzJGOUEzOzgzREM7ODNEQzs4M0RDOzgzREM7CisyRjlBNDsyNkMzNjsyNkMzNjsyNkMzNjsyNkMzNjsKKzJGOUE1OzI2RDZCOzI2RDZCOzI2RDZCOzI2RDZCOworMkY5QTY7MjZDRDU7MjZDRDU7MjZDRDU7MjZDRDU7CisyRjlBNzs0NTJCOzQ1MkI7NDUyQjs0NTJCOworMkY5QTg7ODRGMTs4NEYxOzg0RjE7ODRGMTsKKzJGOUE5Ozg0RjM7ODRGMzs4NEYzOzg0RjM7CisyRjlBQTs4NTE2Ozg1MTY7ODUxNjs4NTE2OworMkY5QUI7MjczQ0E7MjczQ0E7MjczQ0E7MjczQ0E7CisyRjlBQzs4NTY0Ozg1NjQ7ODU2NDs4NTY0OworMkY5QUQ7MjZGMkM7MjZGMkM7MjZGMkM7MjZGMkM7CisyRjlBRTs0NTVEOzQ1NUQ7NDU1RDs0NTVEOworMkY5QUY7NDU2MTs0NTYxOzQ1NjE7NDU2MTsKKzJGOUIwOzI2RkIxOzI2RkIxOzI2RkIxOzI2RkIxOworMkY5QjE7MjcwRDI7MjcwRDI7MjcwRDI7MjcwRDI7CisyRjlCMjs0NTZCOzQ1NkI7NDU2Qjs0NTZCOworMkY5QjM7ODY1MDs4NjUwOzg2NTA7ODY1MDsKKzJGOUI0Ozg2NUM7ODY1Qzs4NjVDOzg2NUM7CisyRjlCNTs4NjY3Ozg2Njc7ODY2Nzs4NjY3OworMkY5QjY7ODY2OTs4NjY5Ozg2Njk7ODY2OTsKKzJGOUI3Ozg2QTk7ODZBOTs4NkE5Ozg2QTk7CisyRjlCODs4Njg4Ozg2ODg7ODY4ODs4Njg4OworMkY5Qjk7ODcwRTs4NzBFOzg3MEU7ODcwRTsKKzJGOUJBOzg2RTI7ODZFMjs4NkUyOzg2RTI7CisyRjlCQjs4Nzc5Ozg3Nzk7ODc3OTs4Nzc5OworMkY5QkM7ODcyODs4NzI4Ozg3Mjg7ODcyODsKKzJGOUJEOzg3NkI7ODc2Qjs4NzZCOzg3NkI7CisyRjlCRTs4Nzg2Ozg3ODY7ODc4Njs4Nzg2OworMkY5QkY7NEQ1Nzs0RDU3OzRENTc7NEQ1NzsKKzJGOUMwOzg3RTE7ODdFMTs4N0UxOzg3RTE7CisyRjlDMTs4ODAxOzg4MDE7ODgwMTs4ODAxOworMkY5QzI7NDVGOTs0NUY5OzQ1Rjk7NDVGOTsKKzJGOUMzOzg4NjA7ODg2MDs4ODYwOzg4NjA7CisyRjlDNDs4ODYzOzg4NjM7ODg2Mzs4ODYzOworMkY5QzU7Mjc2Njc7Mjc2Njc7Mjc2Njc7Mjc2Njc7CisyRjlDNjs4OEQ3Ozg4RDc7ODhENzs4OEQ3OworMkY5Qzc7ODhERTs4OERFOzg4REU7ODhERTsKKzJGOUM4OzQ2MzU7NDYzNTs0NjM1OzQ2MzU7CisyRjlDOTs4OEZBOzg4RkE7ODhGQTs4OEZBOworMkY5Q0E7MzRCQjszNEJCOzM0QkI7MzRCQjsKKzJGOUNCOzI3OEFFOzI3OEFFOzI3OEFFOzI3OEFFOworMkY5Q0M7Mjc5NjY7Mjc5NjY7Mjc5NjY7Mjc5NjY7CisyRjlDRDs0NkJFOzQ2QkU7NDZCRTs0NkJFOworMkY5Q0U7NDZDNzs0NkM3OzQ2Qzc7NDZDNzsKKzJGOUNGOzhBQTA7OEFBMDs4QUEwOzhBQTA7CisyRjlEMDs4QUVEOzhBRUQ7OEFFRDs4QUVEOworMkY5RDE7OEI4QTs4QjhBOzhCOEE7OEI4QTsKKzJGOUQyOzhDNTU7OEM1NTs4QzU1OzhDNTU7CisyRjlEMzsyN0NBODsyN0NBODsyN0NBODsyN0NBODsKKzJGOUQ0OzhDQUI7OENBQjs4Q0FCOzhDQUI7CisyRjlENTs4Q0MxOzhDQzE7OENDMTs4Q0MxOworMkY5RDY7OEQxQjs4RDFCOzhEMUI7OEQxQjsKKzJGOUQ3OzhENzc7OEQ3Nzs4RDc3OzhENzc7CisyRjlEODsyN0YyRjsyN0YyRjsyN0YyRjsyN0YyRjsKKzJGOUQ5OzIwODA0OzIwODA0OzIwODA0OzIwODA0OworMkY5REE7OERDQjs4RENCOzhEQ0I7OERDQjsKKzJGOURCOzhEQkM7OERCQzs4REJDOzhEQkM7CisyRjlEQzs4REYwOzhERjA7OERGMDs4REYwOworMkY5REQ7MjA4REU7MjA4REU7MjA4REU7MjA4REU7CisyRjlERTs4RUQ0OzhFRDQ7OEVENDs4RUQ0OworMkY5REY7OEYzODs4RjM4OzhGMzg7OEYzODsKKzJGOUUwOzI4NUQyOzI4NUQyOzI4NUQyOzI4NUQyOworMkY5RTE7Mjg1RUQ7Mjg1RUQ7Mjg1RUQ7Mjg1RUQ7CisyRjlFMjs5MDk0OzkwOTQ7OTA5NDs5MDk0OworMkY5RTM7OTBGMTs5MEYxOzkwRjE7OTBGMTsKKzJGOUU0OzkxMTE7OTExMTs5MTExOzkxMTE7CisyRjlFNTsyODcyRTsyODcyRTsyODcyRTsyODcyRTsKKzJGOUU2OzkxMUI7OTExQjs5MTFCOzkxMUI7CisyRjlFNzs5MjM4OzkyMzg7OTIzODs5MjM4OworMkY5RTg7OTJENzs5MkQ3OzkyRDc7OTJENzsKKzJGOUU5OzkyRDg7OTJEODs5MkQ4OzkyRDg7CisyRjlFQTs5MjdDOzkyN0M7OTI3Qzs5MjdDOworMkY5RUI7OTNGOTs5M0Y5OzkzRjk7OTNGOTsKKzJGOUVDOzk0MTU7OTQxNTs5NDE1Ozk0MTU7CisyRjlFRDsyOEJGQTsyOEJGQTsyOEJGQTsyOEJGQTsKKzJGOUVFOzk1OEI7OTU4Qjs5NThCOzk1OEI7CisyRjlFRjs0OTk1OzQ5OTU7NDk5NTs0OTk1OworMkY5RjA7OTVCNzs5NUI3Ozk1Qjc7OTVCNzsKKzJGOUYxOzI4RDc3OzI4RDc3OzI4RDc3OzI4RDc3OworMkY5RjI7NDlFNjs0OUU2OzQ5RTY7NDlFNjsKKzJGOUYzOzk2QzM7OTZDMzs5NkMzOzk2QzM7CisyRjlGNDs1REIyOzVEQjI7NURCMjs1REIyOworMkY5RjU7OTcyMzs5NzIzOzk3MjM7OTcyMzsKKzJGOUY2OzI5MTQ1OzI5MTQ1OzI5MTQ1OzI5MTQ1OworMkY5Rjc7MjkyMUE7MjkyMUE7MjkyMUE7MjkyMUE7CisyRjlGODs0QTZFOzRBNkU7NEE2RTs0QTZFOworMkY5Rjk7NEE3Njs0QTc2OzRBNzY7NEE3NjsKKzJGOUZBOzk3RTA7OTdFMDs5N0UwOzk3RTA7CisyRjlGQjsyOTQwQTsyOTQwQTsyOTQwQTsyOTQwQTsKKzJGOUZDOzRBQjI7NEFCMjs0QUIyOzRBQjI7CisyRjlGRDsyOTQ5NjsyOTQ5NjsyOTQ5NjsyOTQ5NjsKKzJGOUZFOzk4MEI7OTgwQjs5ODBCOzk4MEI7CisyRjlGRjs5ODBCOzk4MEI7OTgwQjs5ODBCOworMkZBMDA7OTgyOTs5ODI5Ozk4Mjk7OTgyOTsKKzJGQTAxOzI5NUI2OzI5NUI2OzI5NUI2OzI5NUI2OworMkZBMDI7OThFMjs5OEUyOzk4RTI7OThFMjsKKzJGQTAzOzRCMzM7NEIzMzs0QjMzOzRCMzM7CisyRkEwNDs5OTI5Ozk5Mjk7OTkyOTs5OTI5OworMkZBMDU7OTlBNzs5OUE3Ozk5QTc7OTlBNzsKKzJGQTA2Ozk5QzI7OTlDMjs5OUMyOzk5QzI7CisyRkEwNzs5OUZFOzk5RkU7OTlGRTs5OUZFOworMkZBMDg7NEJDRTs0QkNFOzRCQ0U7NEJDRTsKKzJGQTA5OzI5QjMwOzI5QjMwOzI5QjMwOzI5QjMwOworMkZBMEE7OUIxMjs5QjEyOzlCMTI7OUIxMjsKKzJGQTBCOzlDNDA7OUM0MDs5QzQwOzlDNDA7CisyRkEwQzs5Q0ZEOzlDRkQ7OUNGRDs5Q0ZEOworMkZBMEQ7NENDRTs0Q0NFOzRDQ0U7NENDRTsKKzJGQTBFOzRDRUQ7NENFRDs0Q0VEOzRDRUQ7CisyRkEwRjs5RDY3OzlENjc7OUQ2Nzs5RDY3OworMkZBMTA7MkEwQ0U7MkEwQ0U7MkEwQ0U7MkEwQ0U7CisyRkExMTs0Q0Y4OzRDRjg7NENGODs0Q0Y4OworMkZBMTI7MkExMDU7MkExMDU7MkExMDU7MkExMDU7CisyRkExMzsyQTIwRTsyQTIwRTsyQTIwRTsyQTIwRTsKKzJGQTE0OzJBMjkxOzJBMjkxOzJBMjkxOzJBMjkxOworMkZBMTU7OUVCQjs5RUJCOzlFQkI7OUVCQjsKKzJGQTE2OzRENTY7NEQ1Njs0RDU2OzRENTY7CisyRkExNzs5RUY5OzlFRjk7OUVGOTs5RUY5OworMkZBMTg7OUVGRTs5RUZFOzlFRkU7OUVGRTsKKzJGQTE5OzlGMDU7OUYwNTs5RjA1OzlGMDU7CisyRkExQTs5RjBGOzlGMEY7OUYwRjs5RjBGOworMkZBMUI7OUYxNjs5RjE2OzlGMTY7OUYxNjsKKzJGQTFDOzlGM0I7OUYzQjs5RjNCOzlGM0I7CisyRkExRDsyQTYwMDsyQTYwMDsyQTYwMDsyQTYwMDsKKyMKK0BQYXJ0MiAjIENhbm9uaWNhbCBPcmRlciBUZXN0CisjCiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMDAgMDA2MjswMEUwIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMCAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzAwIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDBFMCAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDAgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMwMSAwMDYyOzAwRTAgMDVBRSAwMzAxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAxIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMSAwMzE1IDAwNjI7CiswMDYxIDAzMDEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMEUxIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDEgMDMwMCAwMzE1IDAwNjI7MDBFMSAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAxIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzAyIDAwNjI7MDBFMCAwNUFFIDAzMDIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDIgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzAyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAyIDAzMTUgMDA2MjsKKzAwNjEgMDMwMiAwMzE1IDAzMDAgMDVBRSAwMDYyOzFFQTcgMDVBRSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDIgMDMwMCAwMzE1IDAwNjI7MUVBNyAwNUFFIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMwMyAwMDYyOzAwRTAgMDVBRSAwMzAzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAzIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwMyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMyAwMzE1IDAwNjI7CiswMDYxIDAzMDMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMEUzIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDMgMDMwMCAwMzE1IDAwNjI7MDBFMyAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAzIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzA0IDAwNjI7MDBFMCAwNUFFIDAzMDQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDQgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzA0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzA0IDAzMTUgMDA2MjsKKzAwNjEgMDMwNCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAxMDEgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwNCAwMzAwIDAzMTUgMDA2MjswMTAxIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMDUgMDA2MjswMEUwIDA1QUUgMDMwNSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwNSAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMDUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDUgMDMxNSAwMDYyOworMDA2MSAwMzA1IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzMDUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDUgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMDYgMDA2MjswMEUwIDA1QUUgMDMwNiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwNiAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMDYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDYgMDMxNSAwMDYyOworMDA2MSAwMzA2IDAzMTUgMDMwMCAwNUFFIDAwNjI7MUVCMSAwNUFFIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwNiAwMzAwIDAzMTUgMDA2MjsxRUIxIDA1QUUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzA2IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzA3IDAwNjI7MDBFMCAwNUFFIDAzMDcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDcgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzA3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzA3IDAzMTUgMDA2MjsKKzAwNjEgMDMwNyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAyMjcgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwNyAwMzAwIDAzMTUgMDA2MjswMjI3IDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDcgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMDggMDA2MjswMEUwIDA1QUUgMDMwOCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwOCAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMDggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDggMDMxNSAwMDYyOworMDA2MSAwMzA4IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDBFNCAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzA4IDAzMDAgMDMxNSAwMDYyOzAwRTQgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwOCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMwOSAwMDYyOzAwRTAgMDVBRSAwMzA5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzA5IDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwOSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwOSAwMzE1IDAwNjI7CiswMDYxIDAzMDkgMDMxNSAwMzAwIDA1QUUgMDA2MjsxRUEzIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDkgMDMwMCAwMzE1IDAwNjI7MUVBMyAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzA5IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzBBIDAwNjI7MDBFMCAwNUFFIDAzMEEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMEEgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzBBIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzBBIDAzMTUgMDA2MjsKKzAwNjEgMDMwQSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwRTUgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwQSAwMzAwIDAzMTUgMDA2MjswMEU1IDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMEIgMDA2MjswMEUwIDA1QUUgMDMwQiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwQiAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMEIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMEIgMDMxNSAwMDYyOworMDA2MSAwMzBCIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzMEIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMEMgMDA2MjswMEUwIDA1QUUgMDMwQyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwQyAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMEMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMEMgMDMxNSAwMDYyOworMDA2MSAwMzBDIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDFDRSAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzBDIDAzMDAgMDMxNSAwMDYyOzAxQ0UgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwQyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMwRCAwMDYyOzAwRTAgMDVBRSAwMzBEIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzBEIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwRCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwRCAwMzE1IDAwNjI7CiswMDYxIDAzMEQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDMwRCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwRCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwRCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwRCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMwRSAwMDYyOzAwRTAgMDVBRSAwMzBFIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzBFIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwRSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwRSAwMzE1IDAwNjI7CiswMDYxIDAzMEUgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDMwRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwRSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMwRiAwMDYyOzAwRTAgMDVBRSAwMzBGIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzBGIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwRiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwRiAwMzE1IDAwNjI7CiswMDYxIDAzMEYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMjAxIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEYgMDMwMCAwMzE1IDAwNjI7MDIwMSAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzBGIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzEwIDAwNjI7MDBFMCAwNUFFIDAzMTAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMTAgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzEwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzEwIDAzMTUgMDA2MjsKKzAwNjEgMDMxMCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzEwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEwIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzExIDAwNjI7MDBFMCAwNUFFIDAzMTEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMTEgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzExIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzExIDAzMTUgMDA2MjsKKzAwNjEgMDMxMSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAyMDMgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMxMSAwMzAwIDAzMTUgMDA2MjswMjAzIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMTIgMDA2MjswMEUwIDA1QUUgMDMxMiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMxMiAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMTIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMTIgMDMxNSAwMDYyOworMDA2MSAwMzEyIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzMTIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMTMgMDA2MjswMEUwIDA1QUUgMDMxMyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMxMyAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMTMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMTMgMDMxNSAwMDYyOworMDA2MSAwMzEzIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzMTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMTQgMDA2MjswMEUwIDA1QUUgMDMxNCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMxNCAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMTQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMTQgMDMxNSAwMDYyOworMDA2MSAwMzE0IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzMTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzNjIgMDMxNSAwMzAwIDAzMTUgMDA2MjswMEUwIDAzMTUgMDMxNSAwMzYyIDAwNjI7MDA2MSAwMzAwIDAzMTUgMDMxNSAwMzYyIDAwNjI7MDBFMCAwMzE1IDAzMTUgMDM2MiAwMDYyOzAwNjEgMDMwMCAwMzE1IDAzMTUgMDM2MiAwMDYyOworMDA2MSAwMzE1IDAzNjIgMDMxNSAwMzAwIDAwNjI7MDBFMCAwMzE1IDAzMTUgMDM2MiAwMDYyOzAwNjEgMDMwMCAwMzE1IDAzMTUgMDM2MiAwMDYyOzAwRTAgMDMxNSAwMzE1IDAzNjIgMDA2MjswMDYxIDAzMDAgMDMxNSAwMzE1IDAzNjIgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMxNiAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE2IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMTcgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE3IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE3IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE3IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE3IDA1OUEgMDA2MjsKKzAwNjEgMDMxNyAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzE3IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE3IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE3IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE3IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzE4IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxOCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxOCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxOCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxOCAwNTlBIDAwNjI7CiswMDYxIDAzMTggMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMxOCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxOCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxOCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxOCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMxOSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTkgMDU5QSAwMDYyOworMDA2MSAwMzE5IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMTkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTkgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzNjIgMDMxNSAwMzAwIDAzMUEgMDA2MjswMEUwIDAzMTUgMDMxQSAwMzYyIDAwNjI7MDA2MSAwMzAwIDAzMTUgMDMxQSAwMzYyIDAwNjI7MDBFMCAwMzE1IDAzMUEgMDM2MiAwMDYyOzAwNjEgMDMwMCAwMzE1IDAzMUEgMDM2MiAwMDYyOworMDA2MSAwMzFBIDAzNjIgMDMxNSAwMzAwIDAwNjI7MDBFMCAwMzFBIDAzMTUgMDM2MiAwMDYyOzAwNjEgMDMwMCAwMzFBIDAzMTUgMDM2MiAwMDYyOzAwRTAgMDMxQSAwMzE1IDAzNjIgMDA2MjswMDYxIDAzMDAgMDMxQSAwMzE1IDAzNjIgMDA2MjsKKzAwNjEgMzAyQSAwMzFCIDAzMjEgMDMxQiAwMDYyOzAwNjEgMDMyMSAwMzFCIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDAzMUIgMzAyQSAwMDYyOworMDA2MSAwMzFCIDMwMkEgMDMxQiAwMzIxIDAwNjI7MDA2MSAwMzIxIDAzMUIgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMDMxQiAzMDJBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMUMgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFDIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFDIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFDIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFDIDA1OUEgMDA2MjsKKzAwNjEgMDMxQyAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzFDIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzFDIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzFDIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzFDIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzFEIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxRCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxRCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxRCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxRCAwNTlBIDAwNjI7CiswMDYxIDAzMUQgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMxRCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxRCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxRCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxRCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMxRSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMUUgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMUUgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMUUgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMUUgMDU5QSAwMDYyOworMDA2MSAwMzFFIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMUUgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMUUgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMUUgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMUUgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMUYgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFGIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFGIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFGIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFGIDA1OUEgMDA2MjsKKzAwNjEgMDMxRiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzFGIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzFGIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzFGIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzFGIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzIwIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyMCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyMCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyMCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyMCAwNTlBIDAwNjI7CiswMDYxIDAzMjAgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMyMCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyMCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyMCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyMCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxQiAwMzIxIDBGNzQgMDMyMSAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjEgMDMxQiAwMDYyOworMDA2MSAwMzIxIDAzMUIgMDMyMSAwRjc0IDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyMSAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyMSAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyMSAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyMSAwMzFCIDAwNjI7CiswMDYxIDAzMUIgMDMyMSAwRjc0IDAzMjIgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzIyIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzIyIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzIyIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzIyIDAzMUIgMDA2MjsKKzAwNjEgMDMyMiAwMzFCIDAzMjEgMEY3NCAwMDYyOzAwNjEgMEY3NCAwMzIyIDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIyIDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIyIDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIyIDAzMjEgMDMxQiAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzIzIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyMyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyMyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyMyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyMyAwNTlBIDAwNjI7CiswMDYxIDAzMjMgMDU5QSAwMzE2IDMwMkEgMDA2MjsxRUExIDMwMkEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjMgMDMxNiAwNTlBIDAwNjI7MUVBMSAzMDJBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzIzIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzI0IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyNCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyNCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyNCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyNCAwNTlBIDAwNjI7CiswMDYxIDAzMjQgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMyNCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyNCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyNCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyNCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMyNSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjUgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjUgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjUgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjUgMDU5QSAwMDYyOworMDA2MSAwMzI1IDA1OUEgMDMxNiAzMDJBIDAwNjI7MUUwMSAzMDJBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzI1IDAzMTYgMDU5QSAwMDYyOzFFMDEgMzAyQSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyNSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMyNiAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjYgMDU5QSAwMDYyOworMDA2MSAwMzI2IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMjYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjYgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMUIgMDMyMSAwRjc0IDAzMjcgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzI3IDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzI3IDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzI3IDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzI3IDAzMUIgMDA2MjsKKzAwNjEgMDMyNyAwMzFCIDAzMjEgMEY3NCAwMDYyOzAwNjEgMEY3NCAwMzI3IDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzI3IDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzI3IDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzI3IDAzMjEgMDMxQiAwMDYyOworMDA2MSAwMzFCIDAzMjEgMEY3NCAwMzI4IDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyOCAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyOCAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyOCAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyOCAwMzFCIDAwNjI7CiswMDYxIDAzMjggMDMxQiAwMzIxIDBGNzQgMDA2MjswMTA1IDBGNzQgMDMyMSAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjggMDMyMSAwMzFCIDAwNjI7MDEwNSAwRjc0IDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzI4IDAzMjEgMDMxQiAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzI5IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyOSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyOSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyOSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyOSAwNTlBIDAwNjI7CiswMDYxIDAzMjkgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMyOSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyOSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyOSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyOSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMyQSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkEgMDU5QSAwMDYyOworMDA2MSAwMzJBIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMkEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkEgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMkIgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJCIDA1OUEgMDA2MjsKKzAwNjEgMDMyQiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzJCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJCIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzJDIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyQyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyQyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyQyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyQyAwNTlBIDAwNjI7CiswMDYxIDAzMkMgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMyQyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyQyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyQyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyQyAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMyRCAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkQgMDU5QSAwMDYyOworMDA2MSAwMzJEIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMkQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkQgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMkUgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJFIDA1OUEgMDA2MjsKKzAwNjEgMDMyRSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzJFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJFIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzJGIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyRiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyRiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyRiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyRiAwNTlBIDAwNjI7CiswMDYxIDAzMkYgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMyRiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyRiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyRiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyRiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMzMCAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzAgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzAgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzAgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzAgMDU5QSAwMDYyOworMDA2MSAwMzMwIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMzAgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzAgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzAgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzAgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMzEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMxIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMxIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMxIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMxIDA1OUEgMDA2MjsKKzAwNjEgMDMzMSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzMxIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzMxIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzMxIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzMxIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzMyIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzMiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzMiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzMiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzMiAwNTlBIDAwNjI7CiswMDYxIDAzMzIgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMzMiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzMiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzMiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzMiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMzMyAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzMgMDU5QSAwMDYyOworMDA2MSAwMzMzIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMzMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzMgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAwMzM0IDAwNjI7MDA2MSAwMzM0IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzQgMDkzQyAwMDYyOworMDA2MSAwMzM0IDA5M0MgMDMzNCAwMDYyOzAwNjEgMDMzNCAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDAzMzUgMDA2MjswMDYxIDAzMzQgMDMzNSAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzUgMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM1IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzNSAwOTNDIDAwNjI7CiswMDYxIDAzMzUgMDkzQyAwMzM0IDAwNjI7MDA2MSAwMzM1IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzNSAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzUgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM1IDAzMzQgMDkzQyAwMDYyOworMDA2MSAwOTNDIDAzMzQgMDMzNiAwMDYyOzAwNjEgMDMzNCAwMzM2IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzNiAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzYgMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM2IDA5M0MgMDA2MjsKKzAwNjEgMDMzNiAwOTNDIDAzMzQgMDA2MjswMDYxIDAzMzYgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM2IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzNiAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzYgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAwMzM3IDAwNjI7MDA2MSAwMzM0IDAzMzcgMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM3IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzNyAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzcgMDkzQyAwMDYyOworMDA2MSAwMzM3IDA5M0MgMDMzNCAwMDYyOzAwNjEgMDMzNyAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzcgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM3IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzNyAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDAzMzggMDA2MjswMDYxIDAzMzQgMDMzOCAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzggMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM4IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzOCAwOTNDIDAwNjI7CiswMDYxIDAzMzggMDkzQyAwMzM0IDAwNjI7MDA2MSAwMzM4IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzOCAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzggMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM4IDAzMzQgMDkzQyAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzM5IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzOSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzOSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzOSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzOSAwNTlBIDAwNjI7CiswMDYxIDAzMzkgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMzOSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzOSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzOSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzOSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMzQSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzM0EgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzM0EgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzM0EgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzM0EgMDU5QSAwMDYyOworMDA2MSAwMzNBIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzM0EgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzM0EgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzM0EgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzM0EgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzM0IgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzNCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzNCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzNCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzNCIDA1OUEgMDA2MjsKKzAwNjEgMDMzQiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzNCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzNCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzNCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzNCIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzNDIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzQyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzQyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzQyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzQyAwNTlBIDAwNjI7CiswMDYxIDAzM0MgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMzQyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzQyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzQyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzQyAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMzRCAwMDYyOzAwRTAgMDVBRSAwMzNEIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzNEIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMzRCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMzRCAwMzE1IDAwNjI7CiswMDYxIDAzM0QgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDMzRCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMzRCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMzRCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMzRCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMzRSAwMDYyOzAwRTAgMDVBRSAwMzNFIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzNFIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMzRSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMzRSAwMzE1IDAwNjI7CiswMDYxIDAzM0UgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDMzRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMzRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMzRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMzRSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMzRiAwMDYyOzAwRTAgMDVBRSAwMzNGIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzNGIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMzRiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMzRiAwMzE1IDAwNjI7CiswMDYxIDAzM0YgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDMzRiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMzRiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMzRiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMzRiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM0MCAwMDYyOzAwRTAgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAwIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzNDAgMDMxNSAwMzAwIDA1QUUgMDA2MjswMEUwIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMCAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzQxIDAwNjI7MDBFMCAwNUFFIDAzMDEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDEgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzAxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAxIDAzMTUgMDA2MjsKKzAwNjEgMDM0MSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwRTEgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMSAwMzAwIDAzMTUgMDA2MjswMEUxIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzNDIgMDA2MjswMEUwIDA1QUUgMDM0MiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM0MiAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzNDIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNDIgMDMxNSAwMDYyOworMDA2MSAwMzQyIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzNDIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNDIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNDIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNDIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzNDMgMDA2MjswMEUwIDA1QUUgMDMxMyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMxMyAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMTMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMTMgMDMxNSAwMDYyOworMDA2MSAwMzQzIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzMTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzNDQgMDA2MjswMEUwIDA1QUUgMDMwOCAwMzAxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzA4IDAzMDEgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzA4IDAzMDEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDggMDMwMSAwMzE1IDAwNjI7CiswMDYxIDAzNDQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMEU0IDA1QUUgMDMwMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwOCAwMzAxIDAzMDAgMDMxNSAwMDYyOzAwRTQgMDVBRSAwMzAxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzA4IDAzMDEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzNDUgMDM2MCAwMzQ1IDAwNjI7MDA2MSAwMzYwIDAzNDUgMDM0NSAwMDYyOzAwNjEgMDM2MCAwMzQ1IDAzNDUgMDA2MjswMDYxIDAzNjAgMDM0NSAwMzQ1IDAwNjI7MDA2MSAwMzYwIDAzNDUgMDM0NSAwMDYyOworMDA2MSAwMzQ1IDAzNDUgMDM2MCAwMDYyOzAwNjEgMDM2MCAwMzQ1IDAzNDUgMDA2MjswMDYxIDAzNjAgMDM0NSAwMzQ1IDAwNjI7MDA2MSAwMzYwIDAzNDUgMDM0NSAwMDYyOzAwNjEgMDM2MCAwMzQ1IDAzNDUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM0NiAwMDYyOzAwRTAgMDVBRSAwMzQ2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzQ2IDAzMTUgMDA2MjswMEUwIDA1QUUgMDM0NiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM0NiAwMzE1IDAwNjI7CiswMDYxIDAzNDYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM0NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM0NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM0NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM0NiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDM0NyAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNDcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNDcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNDcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNDcgMDU5QSAwMDYyOworMDA2MSAwMzQ3IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzNDcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNDcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNDcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNDcgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzNDggMDA2MjswMDYxIDMwMkEgMDMxNiAwMzQ4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzQ4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzQ4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzQ4IDA1OUEgMDA2MjsKKzAwNjEgMDM0OCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzQ4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzQ4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzQ4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzQ4IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzQ5IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0OSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0OSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0OSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0OSAwNTlBIDAwNjI7CiswMDYxIDAzNDkgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDM0OSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM0OSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM0OSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM0OSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM0QSAwMDYyOzAwRTAgMDVBRSAwMzRBIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzRBIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM0QSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM0QSAwMzE1IDAwNjI7CiswMDYxIDAzNEEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM0QSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM0QSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM0QSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM0QSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM0QiAwMDYyOzAwRTAgMDVBRSAwMzRCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzRCIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM0QiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM0QiAwMzE1IDAwNjI7CiswMDYxIDAzNEIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM0QiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM0QiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM0QiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM0QiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM0QyAwMDYyOzAwRTAgMDVBRSAwMzRDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzRDIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM0QyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM0QyAwMzE1IDAwNjI7CiswMDYxIDAzNEMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM0QyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM0QyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM0QyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM0QyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDM0RCAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNEQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNEQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNEQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNEQgMDU5QSAwMDYyOworMDA2MSAwMzREIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzNEQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNEQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNEQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNEQgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzNEUgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzRFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzRFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzRFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzRFIDA1OUEgMDA2MjsKKzAwNjEgMDM0RSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzRFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzRFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzRFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzRFIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzQ1IDAzNjAgMDM2MiAwMzYwIDAwNjI7MDA2MSAwMzYyIDAzNjAgMDM2MCAwMzQ1IDAwNjI7MDA2MSAwMzYyIDAzNjAgMDM2MCAwMzQ1IDAwNjI7MDA2MSAwMzYyIDAzNjAgMDM2MCAwMzQ1IDAwNjI7MDA2MSAwMzYyIDAzNjAgMDM2MCAwMzQ1IDAwNjI7CiswMDYxIDAzNjAgMDM0NSAwMzYwIDAzNjIgMDA2MjswMDYxIDAzNjIgMDM2MCAwMzYwIDAzNDUgMDA2MjswMDYxIDAzNjIgMDM2MCAwMzYwIDAzNDUgMDA2MjswMDYxIDAzNjIgMDM2MCAwMzYwIDAzNDUgMDA2MjswMDYxIDAzNjIgMDM2MCAwMzYwIDAzNDUgMDA2MjsKKzAwNjEgMDM0NSAwMzYwIDAzNjIgMDM2MSAwMDYyOzAwNjEgMDM2MiAwMzYwIDAzNjEgMDM0NSAwMDYyOzAwNjEgMDM2MiAwMzYwIDAzNjEgMDM0NSAwMDYyOzAwNjEgMDM2MiAwMzYwIDAzNjEgMDM0NSAwMDYyOzAwNjEgMDM2MiAwMzYwIDAzNjEgMDM0NSAwMDYyOworMDA2MSAwMzYxIDAzNDUgMDM2MCAwMzYyIDAwNjI7MDA2MSAwMzYyIDAzNjEgMDM2MCAwMzQ1IDAwNjI7MDA2MSAwMzYyIDAzNjEgMDM2MCAwMzQ1IDAwNjI7MDA2MSAwMzYyIDAzNjEgMDM2MCAwMzQ1IDAwNjI7MDA2MSAwMzYyIDAzNjEgMDM2MCAwMzQ1IDAwNjI7CiswMDYxIDAzNjAgMDM2MiAwMzE1IDAzNjIgMDA2MjswMDYxIDAzMTUgMDM2MiAwMzYyIDAzNjAgMDA2MjswMDYxIDAzMTUgMDM2MiAwMzYyIDAzNjAgMDA2MjswMDYxIDAzMTUgMDM2MiAwMzYyIDAzNjAgMDA2MjswMDYxIDAzMTUgMDM2MiAwMzYyIDAzNjAgMDA2MjsKKzAwNjEgMDM2MiAwMzYwIDAzNjIgMDMxNSAwMDYyOzAwNjEgMDMxNSAwMzYyIDAzNjIgMDM2MCAwMDYyOzAwNjEgMDMxNSAwMzYyIDAzNjIgMDM2MCAwMDYyOzAwNjEgMDMxNSAwMzYyIDAzNjIgMDM2MCAwMDYyOzAwNjEgMDMxNSAwMzYyIDAzNjIgMDM2MCAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzYzIDAwNjI7MDBFMCAwNUFFIDAzNjMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNjMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzYzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzYzIDAzMTUgMDA2MjsKKzAwNjEgMDM2MyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzYzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzYzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzYzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzYzIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzY0IDAwNjI7MDBFMCAwNUFFIDAzNjQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNjQgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzY0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY0IDAzMTUgMDA2MjsKKzAwNjEgMDM2NCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzY0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY0IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzY1IDAwNjI7MDBFMCAwNUFFIDAzNjUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNjUgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzY1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY1IDAzMTUgMDA2MjsKKzAwNjEgMDM2NSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzY1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY1IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzY2IDAwNjI7MDBFMCAwNUFFIDAzNjYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNjYgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzY2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY2IDAzMTUgMDA2MjsKKzAwNjEgMDM2NiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzY2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY2IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzY3IDAwNjI7MDBFMCAwNUFFIDAzNjcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNjcgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzY3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY3IDAzMTUgMDA2MjsKKzAwNjEgMDM2NyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzY3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY3IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzY4IDAwNjI7MDBFMCAwNUFFIDAzNjggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNjggMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzY4IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY4IDAzMTUgMDA2MjsKKzAwNjEgMDM2OCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzY4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY4IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzY5IDAwNjI7MDBFMCAwNUFFIDAzNjkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNjkgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzY5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY5IDAzMTUgMDA2MjsKKzAwNjEgMDM2OSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzY5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzY5IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzZBIDAwNjI7MDBFMCAwNUFFIDAzNkEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNkEgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzZBIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZBIDAzMTUgMDA2MjsKKzAwNjEgMDM2QSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzZBIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZBIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZBIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZBIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzZCIDAwNjI7MDBFMCAwNUFFIDAzNkIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNkIgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzZCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZCIDAzMTUgMDA2MjsKKzAwNjEgMDM2QiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzZCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZCIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzZDIDAwNjI7MDBFMCAwNUFFIDAzNkMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNkMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzZDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZDIDAzMTUgMDA2MjsKKzAwNjEgMDM2QyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzZDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZDIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzZEIDAwNjI7MDBFMCAwNUFFIDAzNkQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNkQgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzZEIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZEIDAzMTUgMDA2MjsKKzAwNjEgMDM2RCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzZEIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZEIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZEIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZEIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzZFIDAwNjI7MDBFMCAwNUFFIDAzNkUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNkUgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzZFIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZFIDAzMTUgMDA2MjsKKzAwNjEgMDM2RSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzZFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZFIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzZGIDAwNjI7MDBFMCAwNUFFIDAzNkYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNkYgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzZGIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZGIDAzMTUgMDA2MjsKKzAwNjEgMDM2RiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzZGIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZGIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZGIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzZGIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNDgzIDAwNjI7MDBFMCAwNUFFIDA0ODMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA0ODMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNDgzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNDgzIDAzMTUgMDA2MjsKKzAwNjEgMDQ4MyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNDgzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNDgzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNDgzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNDgzIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNDg0IDAwNjI7MDBFMCAwNUFFIDA0ODQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA0ODQgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNDg0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNDg0IDAzMTUgMDA2MjsKKzAwNjEgMDQ4NCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNDg0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNDg0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNDg0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNDg0IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNDg1IDAwNjI7MDBFMCAwNUFFIDA0ODUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA0ODUgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNDg1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNDg1IDAzMTUgMDA2MjsKKzAwNjEgMDQ4NSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNDg1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNDg1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNDg1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNDg1IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNDg2IDAwNjI7MDBFMCAwNUFFIDA0ODYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA0ODYgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNDg2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNDg2IDAzMTUgMDA2MjsKKzAwNjEgMDQ4NiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNDg2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNDg2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNDg2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNDg2IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNTkxIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDU5MSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDU5MSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDU5MSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDU5MSAwNTlBIDAwNjI7CiswMDYxIDA1OTEgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDU5MSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDU5MSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDU5MSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDU5MSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDU5MiAwMDYyOzAwRTAgMDVBRSAwNTkyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNTkyIDAzMTUgMDA2MjswMEUwIDA1QUUgMDU5MiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5MiAwMzE1IDAwNjI7CiswMDYxIDA1OTIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDU5MiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5MiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5MiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5MiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDU5MyAwMDYyOzAwRTAgMDVBRSAwNTkzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNTkzIDAzMTUgMDA2MjswMEUwIDA1QUUgMDU5MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5MyAwMzE1IDAwNjI7CiswMDYxIDA1OTMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDU5MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5MyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDU5NCAwMDYyOzAwRTAgMDVBRSAwNTk0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNTk0IDAzMTUgMDA2MjswMEUwIDA1QUUgMDU5NCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5NCAwMzE1IDAwNjI7CiswMDYxIDA1OTQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDU5NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5NCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDU5NSAwMDYyOzAwRTAgMDVBRSAwNTk1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNTk1IDAzMTUgMDA2MjswMEUwIDA1QUUgMDU5NSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5NSAwMzE1IDAwNjI7CiswMDYxIDA1OTUgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDU5NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5NSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDU5NiAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OTYgMDU5QSAwMDYyOworMDA2MSAwNTk2IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA1OTYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1OTYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1OTYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1OTYgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OTcgMDA2MjswMEUwIDA1QUUgMDU5NyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5NyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OTcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTcgMDMxNSAwMDYyOworMDA2MSAwNTk3IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTcgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OTggMDA2MjswMEUwIDA1QUUgMDU5OCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5OCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OTggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTggMDMxNSAwMDYyOworMDA2MSAwNTk4IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OTggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTggMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OTkgMDA2MjswMEUwIDA1QUUgMDU5OSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5OSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OTkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTkgMDMxNSAwMDYyOworMDA2MSAwNTk5IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OTkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTkgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDMwMkUgMDU5QSAwMzE2IDA1OUEgMDA2MjswMDYxIDAzMTYgMDU5QSAwNTlBIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAwNTlBIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAwNTlBIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAwNTlBIDMwMkUgMDA2MjsKKzAwNjEgMDU5QSAzMDJFIDA1OUEgMDMxNiAwMDYyOzAwNjEgMDMxNiAwNTlBIDA1OUEgMzAyRSAwMDYyOzAwNjEgMDMxNiAwNTlBIDA1OUEgMzAyRSAwMDYyOzAwNjEgMDMxNiAwNTlBIDA1OUEgMzAyRSAwMDYyOzAwNjEgMDMxNiAwNTlBIDA1OUEgMzAyRSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNTlCIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDU5QiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDU5QiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDU5QiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDU5QiAwNTlBIDAwNjI7CiswMDYxIDA1OUIgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDU5QiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDU5QiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDU5QiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDU5QiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDU5QyAwMDYyOzAwRTAgMDVBRSAwNTlDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNTlDIDAzMTUgMDA2MjswMEUwIDA1QUUgMDU5QyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5QyAwMzE1IDAwNjI7CiswMDYxIDA1OUMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDU5QyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5QyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5QyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5QyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDU5RCAwMDYyOzAwRTAgMDVBRSAwNTlEIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNTlEIDAzMTUgMDA2MjswMEUwIDA1QUUgMDU5RCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5RCAwMzE1IDAwNjI7CiswMDYxIDA1OUQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDU5RCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5RCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5RCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5RCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDU5RSAwMDYyOzAwRTAgMDVBRSAwNTlFIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNTlFIDAzMTUgMDA2MjswMEUwIDA1QUUgMDU5RSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5RSAwMzE1IDAwNjI7CiswMDYxIDA1OUUgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDU5RSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5RSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5RSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5RSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDU5RiAwMDYyOzAwRTAgMDVBRSAwNTlGIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNTlGIDAzMTUgMDA2MjswMEUwIDA1QUUgMDU5RiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5RiAwMzE1IDAwNjI7CiswMDYxIDA1OUYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDU5RiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5RiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5RiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDU5RiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDVBMCAwMDYyOzAwRTAgMDVBRSAwNUEwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNUEwIDAzMTUgMDA2MjswMEUwIDA1QUUgMDVBMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBMCAwMzE1IDAwNjI7CiswMDYxIDA1QTAgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDVBMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBMCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDVBMSAwMDYyOzAwRTAgMDVBRSAwNUExIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNUExIDAzMTUgMDA2MjswMEUwIDA1QUUgMDVBMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBMSAwMzE1IDAwNjI7CiswMDYxIDA1QTEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDVBMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBMSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDVBMyAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTMgMDU5QSAwMDYyOworMDA2MSAwNUEzIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA1QTMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QTMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QTMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QTMgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA1QTQgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUE0IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUE0IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUE0IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUE0IDA1OUEgMDA2MjsKKzAwNjEgMDVBNCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNUE0IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUE0IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUE0IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUE0IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNUE1IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNSAwNTlBIDAwNjI7CiswMDYxIDA1QTUgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDVBNSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBNSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBNSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBNSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDVBNiAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTYgMDU5QSAwMDYyOworMDA2MSAwNUE2IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA1QTYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QTYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QTYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QTYgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA1QTcgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUE3IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUE3IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUE3IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUE3IDA1OUEgMDA2MjsKKzAwNjEgMDVBNyAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNUE3IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUE3IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUE3IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUE3IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNUE4IDAwNjI7MDBFMCAwNUFFIDA1QTggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1QTggMDMxNSAwMDYyOzAwRTAgMDVBRSAwNUE4IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNUE4IDAzMTUgMDA2MjsKKzAwNjEgMDVBOCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNUE4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUE4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUE4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUE4IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNUE5IDAwNjI7MDBFMCAwNUFFIDA1QTkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1QTkgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNUE5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNUE5IDAzMTUgMDA2MjsKKzAwNjEgMDVBOSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNUE5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUE5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUE5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUE5IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNUFBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBQSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBQSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBQSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBQSAwNTlBIDAwNjI7CiswMDYxIDA1QUEgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDVBQSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBQSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBQSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBQSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDVBQiAwMDYyOzAwRTAgMDVBRSAwNUFCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNUFCIDAzMTUgMDA2MjswMEUwIDA1QUUgMDVBQiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBQiAwMzE1IDAwNjI7CiswMDYxIDA1QUIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDVBQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBQiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDVBQyAwMDYyOzAwRTAgMDVBRSAwNUFDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNUFDIDAzMTUgMDA2MjswMEUwIDA1QUUgMDVBQyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBQyAwMzE1IDAwNjI7CiswMDYxIDA1QUMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDVBQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBQyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMzAyRSAwNTlBIDAzMTYgMDVBRCAwMDYyOzAwNjEgMDMxNiAwNTlBIDA1QUQgMzAyRSAwMDYyOzAwNjEgMDMxNiAwNTlBIDA1QUQgMzAyRSAwMDYyOzAwNjEgMDMxNiAwNTlBIDA1QUQgMzAyRSAwMDYyOzAwNjEgMDMxNiAwNTlBIDA1QUQgMzAyRSAwMDYyOworMDA2MSAwNUFEIDMwMkUgMDU5QSAwMzE2IDAwNjI7MDA2MSAwMzE2IDA1QUQgMDU5QSAzMDJFIDAwNjI7MDA2MSAwMzE2IDA1QUQgMDU5QSAzMDJFIDAwNjI7MDA2MSAwMzE2IDA1QUQgMDU5QSAzMDJFIDAwNjI7MDA2MSAwMzE2IDA1QUQgMDU5QSAzMDJFIDAwNjI7CiswMDYxIDAzMDAgMDVBRSAxRDE2RCAwNUFFIDAwNjI7MDBFMCAxRDE2RCAwNUFFIDA1QUUgMDA2MjswMDYxIDFEMTZEIDA1QUUgMDVBRSAwMzAwIDAwNjI7MDBFMCAxRDE2RCAwNUFFIDA1QUUgMDA2MjswMDYxIDFEMTZEIDA1QUUgMDVBRSAwMzAwIDAwNjI7CiswMDYxIDA1QUUgMDMwMCAwNUFFIDFEMTZEIDAwNjI7MDBFMCAxRDE2RCAwNUFFIDA1QUUgMDA2MjswMDYxIDFEMTZEIDA1QUUgMDVBRSAwMzAwIDAwNjI7MDBFMCAxRDE2RCAwNUFFIDA1QUUgMDA2MjswMDYxIDFEMTZEIDA1QUUgMDVBRSAwMzAwIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1QUYgMDA2MjswMEUwIDA1QUUgMDVBRiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBRiAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1QUYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1QUYgMDMxNSAwMDYyOworMDA2MSAwNUFGIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1QUYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QUYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QUYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QUYgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1QjEgMDVCMCAwOTREIDA1QjAgMDA2MjswMDYxIDA5NEQgMDVCMCAwNUIwIDA1QjEgMDA2MjswMDYxIDA5NEQgMDVCMCAwNUIwIDA1QjEgMDA2MjswMDYxIDA5NEQgMDVCMCAwNUIwIDA1QjEgMDA2MjswMDYxIDA5NEQgMDVCMCAwNUIwIDA1QjEgMDA2MjsKKzAwNjEgMDVCMCAwNUIxIDA1QjAgMDk0RCAwMDYyOzAwNjEgMDk0RCAwNUIwIDA1QjAgMDVCMSAwMDYyOzAwNjEgMDk0RCAwNUIwIDA1QjAgMDVCMSAwMDYyOzAwNjEgMDk0RCAwNUIwIDA1QjAgMDVCMSAwMDYyOzAwNjEgMDk0RCAwNUIwIDA1QjAgMDVCMSAwMDYyOworMDA2MSAwNUIyIDA1QjEgMDVCMCAwNUIxIDAwNjI7MDA2MSAwNUIwIDA1QjEgMDVCMSAwNUIyIDAwNjI7MDA2MSAwNUIwIDA1QjEgMDVCMSAwNUIyIDAwNjI7MDA2MSAwNUIwIDA1QjEgMDVCMSAwNUIyIDAwNjI7MDA2MSAwNUIwIDA1QjEgMDVCMSAwNUIyIDAwNjI7CiswMDYxIDA1QjEgMDVCMiAwNUIxIDA1QjAgMDA2MjswMDYxIDA1QjAgMDVCMSAwNUIxIDA1QjIgMDA2MjswMDYxIDA1QjAgMDVCMSAwNUIxIDA1QjIgMDA2MjswMDYxIDA1QjAgMDVCMSAwNUIxIDA1QjIgMDA2MjswMDYxIDA1QjAgMDVCMSAwNUIxIDA1QjIgMDA2MjsKKzAwNjEgMDVCMyAwNUIyIDA1QjEgMDVCMiAwMDYyOzAwNjEgMDVCMSAwNUIyIDA1QjIgMDVCMyAwMDYyOzAwNjEgMDVCMSAwNUIyIDA1QjIgMDVCMyAwMDYyOzAwNjEgMDVCMSAwNUIyIDA1QjIgMDVCMyAwMDYyOzAwNjEgMDVCMSAwNUIyIDA1QjIgMDVCMyAwMDYyOworMDA2MSAwNUIyIDA1QjMgMDVCMiAwNUIxIDAwNjI7MDA2MSAwNUIxIDA1QjIgMDVCMiAwNUIzIDAwNjI7MDA2MSAwNUIxIDA1QjIgMDVCMiAwNUIzIDAwNjI7MDA2MSAwNUIxIDA1QjIgMDVCMiAwNUIzIDAwNjI7MDA2MSAwNUIxIDA1QjIgMDVCMiAwNUIzIDAwNjI7CiswMDYxIDA1QjQgMDVCMyAwNUIyIDA1QjMgMDA2MjswMDYxIDA1QjIgMDVCMyAwNUIzIDA1QjQgMDA2MjswMDYxIDA1QjIgMDVCMyAwNUIzIDA1QjQgMDA2MjswMDYxIDA1QjIgMDVCMyAwNUIzIDA1QjQgMDA2MjswMDYxIDA1QjIgMDVCMyAwNUIzIDA1QjQgMDA2MjsKKzAwNjEgMDVCMyAwNUI0IDA1QjMgMDVCMiAwMDYyOzAwNjEgMDVCMiAwNUIzIDA1QjMgMDVCNCAwMDYyOzAwNjEgMDVCMiAwNUIzIDA1QjMgMDVCNCAwMDYyOzAwNjEgMDVCMiAwNUIzIDA1QjMgMDVCNCAwMDYyOzAwNjEgMDVCMiAwNUIzIDA1QjMgMDVCNCAwMDYyOworMDA2MSAwNUI1IDA1QjQgMDVCMyAwNUI0IDAwNjI7MDA2MSAwNUIzIDA1QjQgMDVCNCAwNUI1IDAwNjI7MDA2MSAwNUIzIDA1QjQgMDVCNCAwNUI1IDAwNjI7MDA2MSAwNUIzIDA1QjQgMDVCNCAwNUI1IDAwNjI7MDA2MSAwNUIzIDA1QjQgMDVCNCAwNUI1IDAwNjI7CiswMDYxIDA1QjQgMDVCNSAwNUI0IDA1QjMgMDA2MjswMDYxIDA1QjMgMDVCNCAwNUI0IDA1QjUgMDA2MjswMDYxIDA1QjMgMDVCNCAwNUI0IDA1QjUgMDA2MjswMDYxIDA1QjMgMDVCNCAwNUI0IDA1QjUgMDA2MjswMDYxIDA1QjMgMDVCNCAwNUI0IDA1QjUgMDA2MjsKKzAwNjEgMDVCNiAwNUI1IDA1QjQgMDVCNSAwMDYyOzAwNjEgMDVCNCAwNUI1IDA1QjUgMDVCNiAwMDYyOzAwNjEgMDVCNCAwNUI1IDA1QjUgMDVCNiAwMDYyOzAwNjEgMDVCNCAwNUI1IDA1QjUgMDVCNiAwMDYyOzAwNjEgMDVCNCAwNUI1IDA1QjUgMDVCNiAwMDYyOworMDA2MSAwNUI1IDA1QjYgMDVCNSAwNUI0IDAwNjI7MDA2MSAwNUI0IDA1QjUgMDVCNSAwNUI2IDAwNjI7MDA2MSAwNUI0IDA1QjUgMDVCNSAwNUI2IDAwNjI7MDA2MSAwNUI0IDA1QjUgMDVCNSAwNUI2IDAwNjI7MDA2MSAwNUI0IDA1QjUgMDVCNSAwNUI2IDAwNjI7CiswMDYxIDA1QjcgMDVCNiAwNUI1IDA1QjYgMDA2MjswMDYxIDA1QjUgMDVCNiAwNUI2IDA1QjcgMDA2MjswMDYxIDA1QjUgMDVCNiAwNUI2IDA1QjcgMDA2MjswMDYxIDA1QjUgMDVCNiAwNUI2IDA1QjcgMDA2MjswMDYxIDA1QjUgMDVCNiAwNUI2IDA1QjcgMDA2MjsKKzAwNjEgMDVCNiAwNUI3IDA1QjYgMDVCNSAwMDYyOzAwNjEgMDVCNSAwNUI2IDA1QjYgMDVCNyAwMDYyOzAwNjEgMDVCNSAwNUI2IDA1QjYgMDVCNyAwMDYyOzAwNjEgMDVCNSAwNUI2IDA1QjYgMDVCNyAwMDYyOzAwNjEgMDVCNSAwNUI2IDA1QjYgMDVCNyAwMDYyOworMDA2MSAwNUI4IDA1QjcgMDVCNiAwNUI3IDAwNjI7MDA2MSAwNUI2IDA1QjcgMDVCNyAwNUI4IDAwNjI7MDA2MSAwNUI2IDA1QjcgMDVCNyAwNUI4IDAwNjI7MDA2MSAwNUI2IDA1QjcgMDVCNyAwNUI4IDAwNjI7MDA2MSAwNUI2IDA1QjcgMDVCNyAwNUI4IDAwNjI7CiswMDYxIDA1QjcgMDVCOCAwNUI3IDA1QjYgMDA2MjswMDYxIDA1QjYgMDVCNyAwNUI3IDA1QjggMDA2MjswMDYxIDA1QjYgMDVCNyAwNUI3IDA1QjggMDA2MjswMDYxIDA1QjYgMDVCNyAwNUI3IDA1QjggMDA2MjswMDYxIDA1QjYgMDVCNyAwNUI3IDA1QjggMDA2MjsKKzAwNjEgMDVCOSAwNUI4IDA1QjcgMDVCOCAwMDYyOzAwNjEgMDVCNyAwNUI4IDA1QjggMDVCOSAwMDYyOzAwNjEgMDVCNyAwNUI4IDA1QjggMDVCOSAwMDYyOzAwNjEgMDVCNyAwNUI4IDA1QjggMDVCOSAwMDYyOzAwNjEgMDVCNyAwNUI4IDA1QjggMDVCOSAwMDYyOworMDA2MSAwNUI4IDA1QjkgMDVCOCAwNUI3IDAwNjI7MDA2MSAwNUI3IDA1QjggMDVCOCAwNUI5IDAwNjI7MDA2MSAwNUI3IDA1QjggMDVCOCAwNUI5IDAwNjI7MDA2MSAwNUI3IDA1QjggMDVCOCAwNUI5IDAwNjI7MDA2MSAwNUI3IDA1QjggMDVCOCAwNUI5IDAwNjI7CiswMDYxIDA1QkIgMDVCOSAwNUI4IDA1QjkgMDA2MjswMDYxIDA1QjggMDVCOSAwNUI5IDA1QkIgMDA2MjswMDYxIDA1QjggMDVCOSAwNUI5IDA1QkIgMDA2MjswMDYxIDA1QjggMDVCOSAwNUI5IDA1QkIgMDA2MjswMDYxIDA1QjggMDVCOSAwNUI5IDA1QkIgMDA2MjsKKzAwNjEgMDVCOSAwNUJCIDA1QjkgMDVCOCAwMDYyOzAwNjEgMDVCOCAwNUI5IDA1QjkgMDVCQiAwMDYyOzAwNjEgMDVCOCAwNUI5IDA1QjkgMDVCQiAwMDYyOzAwNjEgMDVCOCAwNUI5IDA1QjkgMDVCQiAwMDYyOzAwNjEgMDVCOCAwNUI5IDA1QjkgMDVCQiAwMDYyOworMDA2MSAwNUJDIDA1QkIgMDVCOSAwNUJCIDAwNjI7MDA2MSAwNUI5IDA1QkIgMDVCQiAwNUJDIDAwNjI7MDA2MSAwNUI5IDA1QkIgMDVCQiAwNUJDIDAwNjI7MDA2MSAwNUI5IDA1QkIgMDVCQiAwNUJDIDAwNjI7MDA2MSAwNUI5IDA1QkIgMDVCQiAwNUJDIDAwNjI7CiswMDYxIDA1QkIgMDVCQyAwNUJCIDA1QjkgMDA2MjswMDYxIDA1QjkgMDVCQiAwNUJCIDA1QkMgMDA2MjswMDYxIDA1QjkgMDVCQiAwNUJCIDA1QkMgMDA2MjswMDYxIDA1QjkgMDVCQiAwNUJCIDA1QkMgMDA2MjswMDYxIDA1QjkgMDVCQiAwNUJCIDA1QkMgMDA2MjsKKzAwNjEgMDVCRCAwNUJDIDA1QkIgMDVCQyAwMDYyOzAwNjEgMDVCQiAwNUJDIDA1QkMgMDVCRCAwMDYyOzAwNjEgMDVCQiAwNUJDIDA1QkMgMDVCRCAwMDYyOzAwNjEgMDVCQiAwNUJDIDA1QkMgMDVCRCAwMDYyOzAwNjEgMDVCQiAwNUJDIDA1QkMgMDVCRCAwMDYyOworMDA2MSAwNUJDIDA1QkQgMDVCQyAwNUJCIDAwNjI7MDA2MSAwNUJCIDA1QkMgMDVCQyAwNUJEIDAwNjI7MDA2MSAwNUJCIDA1QkMgMDVCQyAwNUJEIDAwNjI7MDA2MSAwNUJCIDA1QkMgMDVCQyAwNUJEIDAwNjI7MDA2MSAwNUJCIDA1QkMgMDVCQyAwNUJEIDAwNjI7CiswMDYxIDA1QkYgMDVCRCAwNUJDIDA1QkQgMDA2MjswMDYxIDA1QkMgMDVCRCAwNUJEIDA1QkYgMDA2MjswMDYxIDA1QkMgMDVCRCAwNUJEIDA1QkYgMDA2MjswMDYxIDA1QkMgMDVCRCAwNUJEIDA1QkYgMDA2MjswMDYxIDA1QkMgMDVCRCAwNUJEIDA1QkYgMDA2MjsKKzAwNjEgMDVCRCAwNUJGIDA1QkQgMDVCQyAwMDYyOzAwNjEgMDVCQyAwNUJEIDA1QkQgMDVCRiAwMDYyOzAwNjEgMDVCQyAwNUJEIDA1QkQgMDVCRiAwMDYyOzAwNjEgMDVCQyAwNUJEIDA1QkQgMDVCRiAwMDYyOzAwNjEgMDVCQyAwNUJEIDA1QkQgMDVCRiAwMDYyOworMDA2MSAwNUMxIDA1QkYgMDVCRCAwNUJGIDAwNjI7MDA2MSAwNUJEIDA1QkYgMDVCRiAwNUMxIDAwNjI7MDA2MSAwNUJEIDA1QkYgMDVCRiAwNUMxIDAwNjI7MDA2MSAwNUJEIDA1QkYgMDVCRiAwNUMxIDAwNjI7MDA2MSAwNUJEIDA1QkYgMDVCRiAwNUMxIDAwNjI7CiswMDYxIDA1QkYgMDVDMSAwNUJGIDA1QkQgMDA2MjswMDYxIDA1QkQgMDVCRiAwNUJGIDA1QzEgMDA2MjswMDYxIDA1QkQgMDVCRiAwNUJGIDA1QzEgMDA2MjswMDYxIDA1QkQgMDVCRiAwNUJGIDA1QzEgMDA2MjswMDYxIDA1QkQgMDVCRiAwNUJGIDA1QzEgMDA2MjsKKzAwNjEgMDVDMiAwNUMxIDA1QkYgMDVDMSAwMDYyOzAwNjEgMDVCRiAwNUMxIDA1QzEgMDVDMiAwMDYyOzAwNjEgMDVCRiAwNUMxIDA1QzEgMDVDMiAwMDYyOzAwNjEgMDVCRiAwNUMxIDA1QzEgMDVDMiAwMDYyOzAwNjEgMDVCRiAwNUMxIDA1QzEgMDVDMiAwMDYyOworMDA2MSAwNUMxIDA1QzIgMDVDMSAwNUJGIDAwNjI7MDA2MSAwNUJGIDA1QzEgMDVDMSAwNUMyIDAwNjI7MDA2MSAwNUJGIDA1QzEgMDVDMSAwNUMyIDAwNjI7MDA2MSAwNUJGIDA1QzEgMDVDMSAwNUMyIDAwNjI7MDA2MSAwNUJGIDA1QzEgMDVDMSAwNUMyIDAwNjI7CiswMDYxIEZCMUUgMDVDMiAwNUMxIDA1QzIgMDA2MjswMDYxIDA1QzEgMDVDMiAwNUMyIEZCMUUgMDA2MjswMDYxIDA1QzEgMDVDMiAwNUMyIEZCMUUgMDA2MjswMDYxIDA1QzEgMDVDMiAwNUMyIEZCMUUgMDA2MjswMDYxIDA1QzEgMDVDMiAwNUMyIEZCMUUgMDA2MjsKKzAwNjEgMDVDMiBGQjFFIDA1QzIgMDVDMSAwMDYyOzAwNjEgMDVDMSAwNUMyIDA1QzIgRkIxRSAwMDYyOzAwNjEgMDVDMSAwNUMyIDA1QzIgRkIxRSAwMDYyOzAwNjEgMDVDMSAwNUMyIDA1QzIgRkIxRSAwMDYyOzAwNjEgMDVDMSAwNUMyIDA1QzIgRkIxRSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNUM0IDAwNjI7MDBFMCAwNUFFIDA1QzQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1QzQgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNUM0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNUM0IDAzMTUgMDA2MjsKKzAwNjEgMDVDNCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNUM0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUM0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUM0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUM0IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNjRDIDA2NEIgRkIxRSAwNjRCIDAwNjI7MDA2MSBGQjFFIDA2NEIgMDY0QiAwNjRDIDAwNjI7MDA2MSBGQjFFIDA2NEIgMDY0QiAwNjRDIDAwNjI7MDA2MSBGQjFFIDA2NEIgMDY0QiAwNjRDIDAwNjI7MDA2MSBGQjFFIDA2NEIgMDY0QiAwNjRDIDAwNjI7CiswMDYxIDA2NEIgMDY0QyAwNjRCIEZCMUUgMDA2MjswMDYxIEZCMUUgMDY0QiAwNjRCIDA2NEMgMDA2MjswMDYxIEZCMUUgMDY0QiAwNjRCIDA2NEMgMDA2MjswMDYxIEZCMUUgMDY0QiAwNjRCIDA2NEMgMDA2MjswMDYxIEZCMUUgMDY0QiAwNjRCIDA2NEMgMDA2MjsKKzAwNjEgMDY0RCAwNjRDIDA2NEIgMDY0QyAwMDYyOzAwNjEgMDY0QiAwNjRDIDA2NEMgMDY0RCAwMDYyOzAwNjEgMDY0QiAwNjRDIDA2NEMgMDY0RCAwMDYyOzAwNjEgMDY0QiAwNjRDIDA2NEMgMDY0RCAwMDYyOzAwNjEgMDY0QiAwNjRDIDA2NEMgMDY0RCAwMDYyOworMDA2MSAwNjRDIDA2NEQgMDY0QyAwNjRCIDAwNjI7MDA2MSAwNjRCIDA2NEMgMDY0QyAwNjREIDAwNjI7MDA2MSAwNjRCIDA2NEMgMDY0QyAwNjREIDAwNjI7MDA2MSAwNjRCIDA2NEMgMDY0QyAwNjREIDAwNjI7MDA2MSAwNjRCIDA2NEMgMDY0QyAwNjREIDAwNjI7CiswMDYxIDA2NEUgMDY0RCAwNjRDIDA2NEQgMDA2MjswMDYxIDA2NEMgMDY0RCAwNjREIDA2NEUgMDA2MjswMDYxIDA2NEMgMDY0RCAwNjREIDA2NEUgMDA2MjswMDYxIDA2NEMgMDY0RCAwNjREIDA2NEUgMDA2MjswMDYxIDA2NEMgMDY0RCAwNjREIDA2NEUgMDA2MjsKKzAwNjEgMDY0RCAwNjRFIDA2NEQgMDY0QyAwMDYyOzAwNjEgMDY0QyAwNjREIDA2NEQgMDY0RSAwMDYyOzAwNjEgMDY0QyAwNjREIDA2NEQgMDY0RSAwMDYyOzAwNjEgMDY0QyAwNjREIDA2NEQgMDY0RSAwMDYyOzAwNjEgMDY0QyAwNjREIDA2NEQgMDY0RSAwMDYyOworMDA2MSAwNjRGIDA2NEUgMDY0RCAwNjRFIDAwNjI7MDA2MSAwNjREIDA2NEUgMDY0RSAwNjRGIDAwNjI7MDA2MSAwNjREIDA2NEUgMDY0RSAwNjRGIDAwNjI7MDA2MSAwNjREIDA2NEUgMDY0RSAwNjRGIDAwNjI7MDA2MSAwNjREIDA2NEUgMDY0RSAwNjRGIDAwNjI7CiswMDYxIDA2NEUgMDY0RiAwNjRFIDA2NEQgMDA2MjswMDYxIDA2NEQgMDY0RSAwNjRFIDA2NEYgMDA2MjswMDYxIDA2NEQgMDY0RSAwNjRFIDA2NEYgMDA2MjswMDYxIDA2NEQgMDY0RSAwNjRFIDA2NEYgMDA2MjswMDYxIDA2NEQgMDY0RSAwNjRFIDA2NEYgMDA2MjsKKzAwNjEgMDY1MCAwNjRGIDA2NEUgMDY0RiAwMDYyOzAwNjEgMDY0RSAwNjRGIDA2NEYgMDY1MCAwMDYyOzAwNjEgMDY0RSAwNjRGIDA2NEYgMDY1MCAwMDYyOzAwNjEgMDY0RSAwNjRGIDA2NEYgMDY1MCAwMDYyOzAwNjEgMDY0RSAwNjRGIDA2NEYgMDY1MCAwMDYyOworMDA2MSAwNjRGIDA2NTAgMDY0RiAwNjRFIDAwNjI7MDA2MSAwNjRFIDA2NEYgMDY0RiAwNjUwIDAwNjI7MDA2MSAwNjRFIDA2NEYgMDY0RiAwNjUwIDAwNjI7MDA2MSAwNjRFIDA2NEYgMDY0RiAwNjUwIDAwNjI7MDA2MSAwNjRFIDA2NEYgMDY0RiAwNjUwIDAwNjI7CiswMDYxIDA2NTEgMDY1MCAwNjRGIDA2NTAgMDA2MjswMDYxIDA2NEYgMDY1MCAwNjUwIDA2NTEgMDA2MjswMDYxIDA2NEYgMDY1MCAwNjUwIDA2NTEgMDA2MjswMDYxIDA2NEYgMDY1MCAwNjUwIDA2NTEgMDA2MjswMDYxIDA2NEYgMDY1MCAwNjUwIDA2NTEgMDA2MjsKKzAwNjEgMDY1MCAwNjUxIDA2NTAgMDY0RiAwMDYyOzAwNjEgMDY0RiAwNjUwIDA2NTAgMDY1MSAwMDYyOzAwNjEgMDY0RiAwNjUwIDA2NTAgMDY1MSAwMDYyOzAwNjEgMDY0RiAwNjUwIDA2NTAgMDY1MSAwMDYyOzAwNjEgMDY0RiAwNjUwIDA2NTAgMDY1MSAwMDYyOworMDA2MSAwNjUyIDA2NTEgMDY1MCAwNjUxIDAwNjI7MDA2MSAwNjUwIDA2NTEgMDY1MSAwNjUyIDAwNjI7MDA2MSAwNjUwIDA2NTEgMDY1MSAwNjUyIDAwNjI7MDA2MSAwNjUwIDA2NTEgMDY1MSAwNjUyIDAwNjI7MDA2MSAwNjUwIDA2NTEgMDY1MSAwNjUyIDAwNjI7CiswMDYxIDA2NTEgMDY1MiAwNjUxIDA2NTAgMDA2MjswMDYxIDA2NTAgMDY1MSAwNjUxIDA2NTIgMDA2MjswMDYxIDA2NTAgMDY1MSAwNjUxIDA2NTIgMDA2MjswMDYxIDA2NTAgMDY1MSAwNjUxIDA2NTIgMDA2MjswMDYxIDA2NTAgMDY1MSAwNjUxIDA2NTIgMDA2MjsKKzAwNjEgMDY3MCAwNjUyIDA2NTEgMDY1MiAwMDYyOzAwNjEgMDY1MSAwNjUyIDA2NTIgMDY3MCAwMDYyOzAwNjEgMDY1MSAwNjUyIDA2NTIgMDY3MCAwMDYyOzAwNjEgMDY1MSAwNjUyIDA2NTIgMDY3MCAwMDYyOzAwNjEgMDY1MSAwNjUyIDA2NTIgMDY3MCAwMDYyOworMDA2MSAwNjUyIDA2NzAgMDY1MiAwNjUxIDAwNjI7MDA2MSAwNjUxIDA2NTIgMDY1MiAwNjcwIDAwNjI7MDA2MSAwNjUxIDA2NTIgMDY1MiAwNjcwIDAwNjI7MDA2MSAwNjUxIDA2NTIgMDY1MiAwNjcwIDAwNjI7MDA2MSAwNjUxIDA2NTIgMDY1MiAwNjcwIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2NTMgMDA2MjswMEUwIDA1QUUgMDY1MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDY1MyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2NTMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2NTMgMDMxNSAwMDYyOworMDA2MSAwNjUzIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2NTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NTMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2NTQgMDA2MjswMEUwIDA1QUUgMDY1NCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDY1NCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2NTQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2NTQgMDMxNSAwMDYyOworMDA2MSAwNjU0IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2NTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NTQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA2NTUgMDA2MjswMDYxIDMwMkEgMDMxNiAwNjU1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNjU1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNjU1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNjU1IDA1OUEgMDA2MjsKKzAwNjEgMDY1NSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNjU1IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNjU1IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNjU1IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNjU1IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNzExIDA2NzAgMDY1MiAwNjcwIDAwNjI7MDA2MSAwNjUyIDA2NzAgMDY3MCAwNzExIDAwNjI7MDA2MSAwNjUyIDA2NzAgMDY3MCAwNzExIDAwNjI7MDA2MSAwNjUyIDA2NzAgMDY3MCAwNzExIDAwNjI7MDA2MSAwNjUyIDA2NzAgMDY3MCAwNzExIDAwNjI7CiswMDYxIDA2NzAgMDcxMSAwNjcwIDA2NTIgMDA2MjswMDYxIDA2NTIgMDY3MCAwNjcwIDA3MTEgMDA2MjswMDYxIDA2NTIgMDY3MCAwNjcwIDA3MTEgMDA2MjswMDYxIDA2NTIgMDY3MCAwNjcwIDA3MTEgMDA2MjswMDYxIDA2NTIgMDY3MCAwNjcwIDA3MTEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZENiAwMDYyOzAwRTAgMDVBRSAwNkQ2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkQ2IDAzMTUgMDA2MjswMEUwIDA1QUUgMDZENiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZENiAwMzE1IDAwNjI7CiswMDYxIDA2RDYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZENiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZENiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZENiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZENiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZENyAwMDYyOzAwRTAgMDVBRSAwNkQ3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkQ3IDAzMTUgMDA2MjswMEUwIDA1QUUgMDZENyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZENyAwMzE1IDAwNjI7CiswMDYxIDA2RDcgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZENyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZENyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZENyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZENyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZEOCAwMDYyOzAwRTAgMDVBRSAwNkQ4IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkQ4IDAzMTUgMDA2MjswMEUwIDA1QUUgMDZEOCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZEOCAwMzE1IDAwNjI7CiswMDYxIDA2RDggMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZEOCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEOCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEOCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEOCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZEOSAwMDYyOzAwRTAgMDVBRSAwNkQ5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkQ5IDAzMTUgMDA2MjswMEUwIDA1QUUgMDZEOSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZEOSAwMzE1IDAwNjI7CiswMDYxIDA2RDkgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZEOSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEOSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEOSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEOSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZEQSAwMDYyOzAwRTAgMDVBRSAwNkRBIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkRBIDAzMTUgMDA2MjswMEUwIDA1QUUgMDZEQSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZEQSAwMzE1IDAwNjI7CiswMDYxIDA2REEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZEQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEQSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZEQiAwMDYyOzAwRTAgMDVBRSAwNkRCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkRCIDAzMTUgMDA2MjswMEUwIDA1QUUgMDZEQiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZEQiAwMzE1IDAwNjI7CiswMDYxIDA2REIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZEQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEQiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZEQyAwMDYyOzAwRTAgMDVBRSAwNkRDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkRDIDAzMTUgMDA2MjswMEUwIDA1QUUgMDZEQyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZEQyAwMzE1IDAwNjI7CiswMDYxIDA2REMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZEQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEQyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZERiAwMDYyOzAwRTAgMDVBRSAwNkRGIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkRGIDAzMTUgMDA2MjswMEUwIDA1QUUgMDZERiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZERiAwMzE1IDAwNjI7CiswMDYxIDA2REYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZERiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZERiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZERiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZERiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZFMCAwMDYyOzAwRTAgMDVBRSAwNkUwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkUwIDAzMTUgMDA2MjswMEUwIDA1QUUgMDZFMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFMCAwMzE1IDAwNjI7CiswMDYxIDA2RTAgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZFMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFMCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZFMSAwMDYyOzAwRTAgMDVBRSAwNkUxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkUxIDAzMTUgMDA2MjswMEUwIDA1QUUgMDZFMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFMSAwMzE1IDAwNjI7CiswMDYxIDA2RTEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZFMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFMSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZFMiAwMDYyOzAwRTAgMDVBRSAwNkUyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkUyIDAzMTUgMDA2MjswMEUwIDA1QUUgMDZFMiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFMiAwMzE1IDAwNjI7CiswMDYxIDA2RTIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZFMiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFMiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFMiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFMiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDZFMyAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2RTMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2RTMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2RTMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2RTMgMDU5QSAwMDYyOworMDA2MSAwNkUzIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA2RTMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA2RTMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA2RTMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA2RTMgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2RTQgMDA2MjswMEUwIDA1QUUgMDZFNCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFNCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2RTQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RTQgMDMxNSAwMDYyOworMDA2MSAwNkU0IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2RTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2RTcgMDA2MjswMEUwIDA1QUUgMDZFNyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFNyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2RTcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RTcgMDMxNSAwMDYyOworMDA2MSAwNkU3IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2RTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTcgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2RTggMDA2MjswMEUwIDA1QUUgMDZFOCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFOCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2RTggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RTggMDMxNSAwMDYyOworMDA2MSAwNkU4IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2RTggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTggMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA2RUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNkVBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNkVBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNkVBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNkVBIDA1OUEgMDA2MjsKKzAwNjEgMDZFQSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNkVBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNkVBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNkVBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNkVBIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNkVCIDAwNjI7MDBFMCAwNUFFIDA2RUIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RUIgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNkVCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkVCIDAzMTUgMDA2MjsKKzAwNjEgMDZFQiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNkVCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkVCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkVCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkVCIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNkVDIDAwNjI7MDBFMCAwNUFFIDA2RUMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RUMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNkVDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkVDIDAzMTUgMDA2MjsKKzAwNjEgMDZFQyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNkVDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkVDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkVDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkVDIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNkVEIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDZFRCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDZFRCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDZFRCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDZFRCAwNTlBIDAwNjI7CiswMDYxIDA2RUQgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDZFRCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDZFRCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDZFRCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDZFRCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMEM1NSAwNzExIDA2NzAgMDcxMSAwMDYyOzAwNjEgMDY3MCAwNzExIDA3MTEgMEM1NSAwMDYyOzAwNjEgMDY3MCAwNzExIDA3MTEgMEM1NSAwMDYyOzAwNjEgMDY3MCAwNzExIDA3MTEgMEM1NSAwMDYyOzAwNjEgMDY3MCAwNzExIDA3MTEgMEM1NSAwMDYyOworMDA2MSAwNzExIDBDNTUgMDcxMSAwNjcwIDAwNjI7MDA2MSAwNjcwIDA3MTEgMDcxMSAwQzU1IDAwNjI7MDA2MSAwNjcwIDA3MTEgMDcxMSAwQzU1IDAwNjI7MDA2MSAwNjcwIDA3MTEgMDcxMSAwQzU1IDAwNjI7MDA2MSAwNjcwIDA3MTEgMDcxMSAwQzU1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA3MzAgMDA2MjswMEUwIDA1QUUgMDczMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczMCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA3MzAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3MzAgMDMxNSAwMDYyOworMDA2MSAwNzMwIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA3MzAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3MzAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3MzAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3MzAgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA3MzEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzMxIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzMxIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzMxIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzMxIDA1OUEgMDA2MjsKKzAwNjEgMDczMSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNzMxIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzMxIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzMxIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzMxIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNzMyIDAwNjI7MDBFMCAwNUFFIDA3MzIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3MzIgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNzMyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzMyIDAzMTUgMDA2MjsKKzAwNjEgMDczMiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNzMyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzMyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzMyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzMyIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNzMzIDAwNjI7MDBFMCAwNUFFIDA3MzMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3MzMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNzMzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzMzIDAzMTUgMDA2MjsKKzAwNjEgMDczMyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNzMzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzMzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzMzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzMzIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNzM0IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczNCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczNCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczNCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczNCAwNTlBIDAwNjI7CiswMDYxIDA3MzQgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDczNCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczNCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczNCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczNCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDczNSAwMDYyOzAwRTAgMDVBRSAwNzM1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzM1IDAzMTUgMDA2MjswMEUwIDA1QUUgMDczNSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczNSAwMzE1IDAwNjI7CiswMDYxIDA3MzUgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDczNSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczNSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczNSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczNSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDczNiAwMDYyOzAwRTAgMDVBRSAwNzM2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzM2IDAzMTUgMDA2MjswMEUwIDA1QUUgMDczNiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczNiAwMzE1IDAwNjI7CiswMDYxIDA3MzYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDczNiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczNiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczNiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczNiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDczNyAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzcgMDU5QSAwMDYyOworMDA2MSAwNzM3IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA3MzcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3MzcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3MzcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3MzcgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA3MzggMDA2MjswMDYxIDMwMkEgMDMxNiAwNzM4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzM4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzM4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzM4IDA1OUEgMDA2MjsKKzAwNjEgMDczOCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNzM4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzM4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzM4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzM4IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNzM5IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczOSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczOSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczOSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczOSAwNTlBIDAwNjI7CiswMDYxIDA3MzkgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDczOSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczOSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczOSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczOSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDczQSAwMDYyOzAwRTAgMDVBRSAwNzNBIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzNBIDAzMTUgMDA2MjswMEUwIDA1QUUgMDczQSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczQSAwMzE1IDAwNjI7CiswMDYxIDA3M0EgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDczQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczQSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDczQiAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3M0IgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3M0IgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3M0IgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3M0IgMDU5QSAwMDYyOworMDA2MSAwNzNCIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA3M0IgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3M0IgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3M0IgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3M0IgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA3M0MgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzNDIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzNDIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzNDIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzNDIDA1OUEgMDA2MjsKKzAwNjEgMDczQyAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNzNDIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzNDIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzNDIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzNDIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNzNEIDAwNjI7MDBFMCAwNUFFIDA3M0QgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3M0QgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNzNEIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzNEIDAzMTUgMDA2MjsKKzAwNjEgMDczRCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNzNEIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzNEIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzNEIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzNEIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNzNFIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczRSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczRSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczRSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczRSAwNTlBIDAwNjI7CiswMDYxIDA3M0UgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDczRSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczRSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczRSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczRSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDczRiAwMDYyOzAwRTAgMDVBRSAwNzNGIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzNGIDAzMTUgMDA2MjswMEUwIDA1QUUgMDczRiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczRiAwMzE1IDAwNjI7CiswMDYxIDA3M0YgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDczRiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczRiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczRiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczRiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDc0MCAwMDYyOzAwRTAgMDVBRSAwNzQwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzQwIDAzMTUgMDA2MjswMEUwIDA1QUUgMDc0MCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDc0MCAwMzE1IDAwNjI7CiswMDYxIDA3NDAgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDc0MCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0MCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0MCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0MCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDc0MSAwMDYyOzAwRTAgMDVBRSAwNzQxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzQxIDAzMTUgMDA2MjswMEUwIDA1QUUgMDc0MSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDc0MSAwMzE1IDAwNjI7CiswMDYxIDA3NDEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDc0MSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0MSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0MSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0MSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDc0MiAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDIgMDU5QSAwMDYyOworMDA2MSAwNzQyIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA3NDIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3NDIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3NDIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3NDIgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA3NDMgMDA2MjswMEUwIDA1QUUgMDc0MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDc0MyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA3NDMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3NDMgMDMxNSAwMDYyOworMDA2MSAwNzQzIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA3NDMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA3NDQgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzQ0IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzQ0IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzQ0IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzQ0IDA1OUEgMDA2MjsKKzAwNjEgMDc0NCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNzQ0IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzQ0IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzQ0IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzQ0IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNzQ1IDAwNjI7MDBFMCAwNUFFIDA3NDUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3NDUgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNzQ1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzQ1IDAzMTUgMDA2MjsKKzAwNjEgMDc0NSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNzQ1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzQ1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzQ1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzQ1IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNzQ2IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDc0NiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDc0NiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDc0NiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDc0NiAwNTlBIDAwNjI7CiswMDYxIDA3NDYgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDc0NiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDc0NiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDc0NiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDc0NiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDc0NyAwMDYyOzAwRTAgMDVBRSAwNzQ3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzQ3IDAzMTUgMDA2MjswMEUwIDA1QUUgMDc0NyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDc0NyAwMzE1IDAwNjI7CiswMDYxIDA3NDcgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDc0NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0NyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDc0OCAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDggMDU5QSAwMDYyOworMDA2MSAwNzQ4IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA3NDggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3NDggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3NDggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3NDggMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA3NDkgMDA2MjswMEUwIDA1QUUgMDc0OSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDc0OSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA3NDkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3NDkgMDMxNSAwMDYyOworMDA2MSAwNzQ5IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA3NDkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDkgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA3NEEgMDA2MjswMEUwIDA1QUUgMDc0QSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDc0QSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA3NEEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3NEEgMDMxNSAwMDYyOworMDA2MSAwNzRBIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA3NEEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NEEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NEEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NEEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDMwOTkgMDkzQyAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzQgMDkzQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwOTNDIDMwOTkgMDA2MjsKKzAwNjEgMDkzQyAzMDk5IDA5M0MgMDMzNCAwMDYyOzAwNjEgMDMzNCAwOTNDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDA5M0MgMzA5OSAwMDYyOworMDA2MSAwNUIwIDA5NEQgMzA5OSAwOTREIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDA5NEQgMDVCMCAwOTREIDMwOTkgMDA2MjswMDYxIDMwOTkgMDk0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDk1MSAwMDYyOzAwRTAgMDVBRSAwOTUxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwOTUxIDAzMTUgMDA2MjswMEUwIDA1QUUgMDk1MSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDk1MSAwMzE1IDAwNjI7CiswMDYxIDA5NTEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDk1MSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDk1MSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDk1MSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDk1MSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDk1MiAwMDYyOzAwNjEgMzAyQSAwMzE2IDA5NTIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA5NTIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA5NTIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA5NTIgMDU5QSAwMDYyOworMDA2MSAwOTUyIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA5NTIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA5NTIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA5NTIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA5NTIgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA5NTMgMDA2MjswMEUwIDA1QUUgMDk1MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDk1MyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA5NTMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA5NTMgMDMxNSAwMDYyOworMDA2MSAwOTUzIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA5NTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA5NTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA5NTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA5NTMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA5NTQgMDA2MjswMEUwIDA1QUUgMDk1NCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDk1NCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA5NTQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA5NTQgMDMxNSAwMDYyOworMDA2MSAwOTU0IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA5NTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA5NTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA5NTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA5NTQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDMwOTkgMDkzQyAwMzM0IDA5QkMgMDA2MjswMDYxIDAzMzQgMDkzQyAwOUJDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwOUJDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwOUJDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwOUJDIDMwOTkgMDA2MjsKKzAwNjEgMDlCQyAzMDk5IDA5M0MgMDMzNCAwMDYyOzAwNjEgMDMzNCAwOUJDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOUJDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOUJDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOUJDIDA5M0MgMzA5OSAwMDYyOworMDA2MSAwNUIwIDA5NEQgMzA5OSAwOUNEIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDlDRCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDlDRCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDlDRCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDlDRCAwNUIwIDAwNjI7CiswMDYxIDA5Q0QgMDVCMCAwOTREIDMwOTkgMDA2MjswMDYxIDMwOTkgMDlDRCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDlDRCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDlDRCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDlDRCAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMzA5OSAwOTNDIDAzMzQgMEEzQyAwMDYyOzAwNjEgMDMzNCAwOTNDIDBBM0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDBBM0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDBBM0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDBBM0MgMzA5OSAwMDYyOworMDA2MSAwQTNDIDMwOTkgMDkzQyAwMzM0IDAwNjI7MDA2MSAwMzM0IDBBM0MgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDBBM0MgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDBBM0MgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDBBM0MgMDkzQyAzMDk5IDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDBBNEQgMDA2MjswMDYxIDMwOTkgMDk0RCAwQTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQTREIDA1QjAgMDA2MjsKKzAwNjEgMEE0RCAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAwQTREIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQTREIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQTREIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQTREIDA5NEQgMDVCMCAwMDYyOworMDA2MSAzMDk5IDA5M0MgMDMzNCAwQUJDIDAwNjI7MDA2MSAwMzM0IDA5M0MgMEFCQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMEFCQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMEFCQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMEFCQyAzMDk5IDAwNjI7CiswMDYxIDBBQkMgMzA5OSAwOTNDIDAzMzQgMDA2MjswMDYxIDAzMzQgMEFCQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMEFCQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMEFCQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMEFCQyAwOTNDIDMwOTkgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMEFDRCAwMDYyOzAwNjEgMzA5OSAwOTREIDBBQ0QgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBBQ0QgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBBQ0QgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBBQ0QgMDVCMCAwMDYyOworMDA2MSAwQUNEIDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDBBQ0QgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBBQ0QgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBBQ0QgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBBQ0QgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDMwOTkgMDkzQyAwMzM0IDBCM0MgMDA2MjswMDYxIDAzMzQgMDkzQyAwQjNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwQjNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwQjNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwQjNDIDMwOTkgMDA2MjsKKzAwNjEgMEIzQyAzMDk5IDA5M0MgMDMzNCAwMDYyOzAwNjEgMDMzNCAwQjNDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwQjNDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwQjNDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwQjNDIDA5M0MgMzA5OSAwMDYyOworMDA2MSAwNUIwIDA5NEQgMzA5OSAwQjREIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEI0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEI0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEI0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEI0RCAwNUIwIDAwNjI7CiswMDYxIDBCNEQgMDVCMCAwOTREIDMwOTkgMDA2MjswMDYxIDMwOTkgMEI0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEI0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEI0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEI0RCAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMEJDRCAwMDYyOzAwNjEgMzA5OSAwOTREIDBCQ0QgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBCQ0QgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBCQ0QgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBCQ0QgMDVCMCAwMDYyOworMDA2MSAwQkNEIDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDBCQ0QgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBCQ0QgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBCQ0QgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBCQ0QgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDBDNEQgMDA2MjswMDYxIDMwOTkgMDk0RCAwQzREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQzREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQzREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQzREIDA1QjAgMDA2MjsKKzAwNjEgMEM0RCAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAwQzREIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQzREIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQzREIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQzREIDA5NEQgMDVCMCAwMDYyOworMDA2MSAwQzU2IDBDNTUgMDcxMSAwQzU1IDAwNjI7MDA2MSAwNzExIDBDNTUgMEM1NSAwQzU2IDAwNjI7MDA2MSAwNzExIDBDNTUgMEM1NSAwQzU2IDAwNjI7MDA2MSAwNzExIDBDNTUgMEM1NSAwQzU2IDAwNjI7MDA2MSAwNzExIDBDNTUgMEM1NSAwQzU2IDAwNjI7CiswMDYxIDBDNTUgMEM1NiAwQzU1IDA3MTEgMDA2MjswMDYxIDA3MTEgMEM1NSAwQzU1IDBDNTYgMDA2MjswMDYxIDA3MTEgMEM1NSAwQzU1IDBDNTYgMDA2MjswMDYxIDA3MTEgMEM1NSAwQzU1IDBDNTYgMDA2MjswMDYxIDA3MTEgMEM1NSAwQzU1IDBDNTYgMDA2MjsKKzAwNjEgMEUzOCAwQzU2IDBDNTUgMEM1NiAwMDYyOzAwNjEgMEM1NSAwQzU2IDBDNTYgMEUzOCAwMDYyOzAwNjEgMEM1NSAwQzU2IDBDNTYgMEUzOCAwMDYyOzAwNjEgMEM1NSAwQzU2IDBDNTYgMEUzOCAwMDYyOzAwNjEgMEM1NSAwQzU2IDBDNTYgMEUzOCAwMDYyOworMDA2MSAwQzU2IDBFMzggMEM1NiAwQzU1IDAwNjI7MDA2MSAwQzU1IDBDNTYgMEM1NiAwRTM4IDAwNjI7MDA2MSAwQzU1IDBDNTYgMEM1NiAwRTM4IDAwNjI7MDA2MSAwQzU1IDBDNTYgMEM1NiAwRTM4IDAwNjI7MDA2MSAwQzU1IDBDNTYgMEM1NiAwRTM4IDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDBDQ0QgMDA2MjswMDYxIDMwOTkgMDk0RCAwQ0NEIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQ0NEIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQ0NEIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQ0NEIDA1QjAgMDA2MjsKKzAwNjEgMENDRCAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAwQ0NEIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQ0NEIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQ0NEIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQ0NEIDA5NEQgMDVCMCAwMDYyOworMDA2MSAwNUIwIDA5NEQgMzA5OSAwRDREIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEQ0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEQ0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEQ0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEQ0RCAwNUIwIDAwNjI7CiswMDYxIDBENEQgMDVCMCAwOTREIDMwOTkgMDA2MjswMDYxIDMwOTkgMEQ0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEQ0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEQ0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEQ0RCAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMERDQSAwMDYyOzAwNjEgMzA5OSAwOTREIDBEQ0EgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBEQ0EgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBEQ0EgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBEQ0EgMDVCMCAwMDYyOworMDA2MSAwRENBIDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDBEQ0EgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBEQ0EgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBEQ0EgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBEQ0EgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDBFNDggMEUzOCAwQzU2IDBFMzggMDA2MjswMDYxIDBDNTYgMEUzOCAwRTM4IDBFNDggMDA2MjswMDYxIDBDNTYgMEUzOCAwRTM4IDBFNDggMDA2MjswMDYxIDBDNTYgMEUzOCAwRTM4IDBFNDggMDA2MjswMDYxIDBDNTYgMEUzOCAwRTM4IDBFNDggMDA2MjsKKzAwNjEgMEUzOCAwRTQ4IDBFMzggMEM1NiAwMDYyOzAwNjEgMEM1NiAwRTM4IDBFMzggMEU0OCAwMDYyOzAwNjEgMEM1NiAwRTM4IDBFMzggMEU0OCAwMDYyOzAwNjEgMEM1NiAwRTM4IDBFMzggMEU0OCAwMDYyOzAwNjEgMEM1NiAwRTM4IDBFMzggMEU0OCAwMDYyOworMDA2MSAwRTQ4IDBFMzggMEM1NiAwRTM5IDAwNjI7MDA2MSAwQzU2IDBFMzggMEUzOSAwRTQ4IDAwNjI7MDA2MSAwQzU2IDBFMzggMEUzOSAwRTQ4IDAwNjI7MDA2MSAwQzU2IDBFMzggMEUzOSAwRTQ4IDAwNjI7MDA2MSAwQzU2IDBFMzggMEUzOSAwRTQ4IDAwNjI7CiswMDYxIDBFMzkgMEU0OCAwRTM4IDBDNTYgMDA2MjswMDYxIDBDNTYgMEUzOSAwRTM4IDBFNDggMDA2MjswMDYxIDBDNTYgMEUzOSAwRTM4IDBFNDggMDA2MjswMDYxIDBDNTYgMEUzOSAwRTM4IDBFNDggMDA2MjswMDYxIDBDNTYgMEUzOSAwRTM4IDBFNDggMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMEUzQSAwMDYyOzAwNjEgMzA5OSAwOTREIDBFM0EgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBFM0EgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBFM0EgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBFM0EgMDVCMCAwMDYyOworMDA2MSAwRTNBIDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDBFM0EgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBFM0EgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBFM0EgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBFM0EgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDBFQjggMEU0OCAwRTM4IDBFNDggMDA2MjswMDYxIDBFMzggMEU0OCAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTQ4IDBFQjggMDA2MjsKKzAwNjEgMEU0OCAwRUI4IDBFNDggMEUzOCAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNDggMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNDggMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNDggMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNDggMEVCOCAwMDYyOworMDA2MSAwRUI4IDBFNDggMEUzOCAwRTQ5IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0OSAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0OSAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0OSAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0OSAwRUI4IDAwNjI7CiswMDYxIDBFNDkgMEVCOCAwRTQ4IDBFMzggMDA2MjswMDYxIDBFMzggMEU0OSAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0OSAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0OSAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0OSAwRTQ4IDBFQjggMDA2MjsKKzAwNjEgMEVCOCAwRTQ4IDBFMzggMEU0QSAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNEEgMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNEEgMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNEEgMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNEEgMEVCOCAwMDYyOworMDA2MSAwRTRBIDBFQjggMEU0OCAwRTM4IDAwNjI7MDA2MSAwRTM4IDBFNEEgMEU0OCAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNEEgMEU0OCAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNEEgMEU0OCAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNEEgMEU0OCAwRUI4IDAwNjI7CiswMDYxIDBFQjggMEU0OCAwRTM4IDBFNEIgMDA2MjswMDYxIDBFMzggMEU0OCAwRTRCIDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTRCIDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTRCIDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTRCIDBFQjggMDA2MjsKKzAwNjEgMEU0QiAwRUI4IDBFNDggMEUzOCAwMDYyOzAwNjEgMEUzOCAwRTRCIDBFNDggMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTRCIDBFNDggMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTRCIDBFNDggMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTRCIDBFNDggMEVCOCAwMDYyOworMDA2MSAwRUM4IDBFQjggMEU0OCAwRUI4IDAwNjI7MDA2MSAwRTQ4IDBFQjggMEVCOCAwRUM4IDAwNjI7MDA2MSAwRTQ4IDBFQjggMEVCOCAwRUM4IDAwNjI7MDA2MSAwRTQ4IDBFQjggMEVCOCAwRUM4IDAwNjI7MDA2MSAwRTQ4IDBFQjggMEVCOCAwRUM4IDAwNjI7CiswMDYxIDBFQjggMEVDOCAwRUI4IDBFNDggMDA2MjswMDYxIDBFNDggMEVCOCAwRUI4IDBFQzggMDA2MjswMDYxIDBFNDggMEVCOCAwRUI4IDBFQzggMDA2MjswMDYxIDBFNDggMEVCOCAwRUI4IDBFQzggMDA2MjswMDYxIDBFNDggMEVCOCAwRUI4IDBFQzggMDA2MjsKKzAwNjEgMEVDOCAwRUI4IDBFNDggMEVCOSAwMDYyOzAwNjEgMEU0OCAwRUI4IDBFQjkgMEVDOCAwMDYyOzAwNjEgMEU0OCAwRUI4IDBFQjkgMEVDOCAwMDYyOzAwNjEgMEU0OCAwRUI4IDBFQjkgMEVDOCAwMDYyOzAwNjEgMEU0OCAwRUI4IDBFQjkgMEVDOCAwMDYyOworMDA2MSAwRUI5IDBFQzggMEVCOCAwRTQ4IDAwNjI7MDA2MSAwRTQ4IDBFQjkgMEVCOCAwRUM4IDAwNjI7MDA2MSAwRTQ4IDBFQjkgMEVCOCAwRUM4IDAwNjI7MDA2MSAwRTQ4IDBFQjkgMEVCOCAwRUM4IDAwNjI7MDA2MSAwRTQ4IDBFQjkgMEVCOCAwRUM4IDAwNjI7CiswMDYxIDBGNzEgMEVDOCAwRUI4IDBFQzggMDA2MjswMDYxIDBFQjggMEVDOCAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUM4IDBGNzEgMDA2MjsKKzAwNjEgMEVDOCAwRjcxIDBFQzggMEVCOCAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQzggMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQzggMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQzggMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQzggMEY3MSAwMDYyOworMDA2MSAwRjcxIDBFQzggMEVCOCAwRUM5IDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDOSAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDOSAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDOSAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDOSAwRjcxIDAwNjI7CiswMDYxIDBFQzkgMEY3MSAwRUM4IDBFQjggMDA2MjswMDYxIDBFQjggMEVDOSAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOSAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOSAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOSAwRUM4IDBGNzEgMDA2MjsKKzAwNjEgMEY3MSAwRUM4IDBFQjggMEVDQSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQ0EgMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQ0EgMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQ0EgMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQ0EgMEY3MSAwMDYyOworMDA2MSAwRUNBIDBGNzEgMEVDOCAwRUI4IDAwNjI7MDA2MSAwRUI4IDBFQ0EgMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQ0EgMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQ0EgMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQ0EgMEVDOCAwRjcxIDAwNjI7CiswMDYxIDBGNzEgMEVDOCAwRUI4IDBFQ0IgMDA2MjswMDYxIDBFQjggMEVDOCAwRUNCIDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUNCIDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUNCIDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUNCIDBGNzEgMDA2MjsKKzAwNjEgMEVDQiAwRjcxIDBFQzggMEVCOCAwMDYyOzAwNjEgMEVCOCAwRUNCIDBFQzggMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUNCIDBFQzggMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUNCIDBFQzggMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUNCIDBFQzggMEY3MSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwRjE4IDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYxOCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYxOCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYxOCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYxOCAwNTlBIDAwNjI7CiswMDYxIDBGMTggMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMEYxOCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEYxOCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEYxOCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEYxOCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMEYxOSAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMTkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMTkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMTkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMTkgMDU5QSAwMDYyOworMDA2MSAwRjE5IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDBGMTkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDBGMTkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDBGMTkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDBGMTkgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDBGMzUgMDA2MjswMDYxIDMwMkEgMDMxNiAwRjM1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwRjM1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwRjM1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwRjM1IDA1OUEgMDA2MjsKKzAwNjEgMEYzNSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwRjM1IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwRjM1IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwRjM1IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwRjM1IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwRjM3IDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYzNyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYzNyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYzNyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYzNyAwNTlBIDAwNjI7CiswMDYxIDBGMzcgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMEYzNyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEYzNyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEYzNyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEYzNyAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMzAyQSAwMzFCIDAzMjEgMEYzOSAwMDYyOzAwNjEgMDMyMSAwMzFCIDBGMzkgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDBGMzkgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDBGMzkgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDBGMzkgMzAyQSAwMDYyOworMDA2MSAwRjM5IDMwMkEgMDMxQiAwMzIxIDAwNjI7MDA2MSAwMzIxIDBGMzkgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDBGMzkgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDBGMzkgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDBGMzkgMDMxQiAzMDJBIDAwNjI7CiswMDYxIDBGNzIgMEY3MSAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQzggMEY3MSAwRjcxIDBGNzIgMDA2MjswMDYxIDBFQzggMEY3MSAwRjcxIDBGNzIgMDA2MjswMDYxIDBFQzggMEY3MSAwRjcxIDBGNzIgMDA2MjswMDYxIDBFQzggMEY3MSAwRjcxIDBGNzIgMDA2MjsKKzAwNjEgMEY3MSAwRjcyIDBGNzEgMEVDOCAwMDYyOzAwNjEgMEVDOCAwRjcxIDBGNzEgMEY3MiAwMDYyOzAwNjEgMEVDOCAwRjcxIDBGNzEgMEY3MiAwMDYyOzAwNjEgMEVDOCAwRjcxIDBGNzEgMEY3MiAwMDYyOzAwNjEgMEVDOCAwRjcxIDBGNzEgMEY3MiAwMDYyOworMDA2MSAwRjc0IDBGNzIgMEY3MSAwRjcyIDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3MiAwRjc0IDAwNjI7CiswMDYxIDBGNzIgMEY3NCAwRjcyIDBGNzEgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjcyIDBGNzQgMDA2MjsKKzAwNjEgMDMyMSAwRjc0IDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MiAwRjc0IDBGNzQgMDMyMSAwMDYyOzAwNjEgMEY3MiAwRjc0IDBGNzQgMDMyMSAwMDYyOzAwNjEgMEY3MiAwRjc0IDBGNzQgMDMyMSAwMDYyOzAwNjEgMEY3MiAwRjc0IDBGNzQgMDMyMSAwMDYyOworMDA2MSAwRjc0IDAzMjEgMEY3NCAwRjcyIDAwNjI7MDA2MSAwRjcyIDBGNzQgMEY3NCAwMzIxIDAwNjI7MDA2MSAwRjcyIDBGNzQgMEY3NCAwMzIxIDAwNjI7MDA2MSAwRjcyIDBGNzQgMEY3NCAwMzIxIDAwNjI7MDA2MSAwRjcyIDBGNzQgMEY3NCAwMzIxIDAwNjI7CiswMDYxIDBGNzQgMEY3MiAwRjcxIDBGN0EgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdBIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdBIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdBIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdBIDBGNzQgMDA2MjsKKzAwNjEgMEY3QSAwRjc0IDBGNzIgMEY3MSAwMDYyOzAwNjEgMEY3MSAwRjdBIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjdBIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjdBIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjdBIDBGNzIgMEY3NCAwMDYyOworMDA2MSAwRjc0IDBGNzIgMEY3MSAwRjdCIDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3QiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3QiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3QiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3QiAwRjc0IDAwNjI7CiswMDYxIDBGN0IgMEY3NCAwRjcyIDBGNzEgMDA2MjswMDYxIDBGNzEgMEY3QiAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3QiAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3QiAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3QiAwRjcyIDBGNzQgMDA2MjsKKzAwNjEgMEY3NCAwRjcyIDBGNzEgMEY3QyAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGN0MgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGN0MgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGN0MgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGN0MgMEY3NCAwMDYyOworMDA2MSAwRjdDIDBGNzQgMEY3MiAwRjcxIDAwNjI7MDA2MSAwRjcxIDBGN0MgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGN0MgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGN0MgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGN0MgMEY3MiAwRjc0IDAwNjI7CiswMDYxIDBGNzQgMEY3MiAwRjcxIDBGN0QgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdEIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdEIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdEIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdEIDBGNzQgMDA2MjsKKzAwNjEgMEY3RCAwRjc0IDBGNzIgMEY3MSAwMDYyOzAwNjEgMEY3MSAwRjdEIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjdEIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjdEIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjdEIDBGNzIgMEY3NCAwMDYyOworMDA2MSAwRjc0IDBGNzIgMEY3MSAwRjgwIDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY4MCAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY4MCAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY4MCAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY4MCAwRjc0IDAwNjI7CiswMDYxIDBGODAgMEY3NCAwRjcyIDBGNzEgMDA2MjswMDYxIDBGNzEgMEY4MCAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY4MCAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY4MCAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY4MCAwRjcyIDBGNzQgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMEY4MiAwMDYyOzAwRTAgMDVBRSAwRjgyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwRjgyIDAzMTUgMDA2MjswMEUwIDA1QUUgMEY4MiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMEY4MiAwMzE1IDAwNjI7CiswMDYxIDBGODIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMEY4MiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMEY4MiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMEY4MiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMEY4MiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMEY4MyAwMDYyOzAwRTAgMDVBRSAwRjgzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwRjgzIDAzMTUgMDA2MjswMEUwIDA1QUUgMEY4MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMEY4MyAwMzE1IDAwNjI7CiswMDYxIDBGODMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMEY4MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMEY4MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMEY4MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMEY4MyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMEY4NCAwMDYyOzAwNjEgMzA5OSAwOTREIDBGODQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBGODQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBGODQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBGODQgMDVCMCAwMDYyOworMDA2MSAwRjg0IDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDBGODQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBGODQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBGODQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBGODQgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDBGODYgMDA2MjswMEUwIDA1QUUgMEY4NiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMEY4NiAwMzE1IDAwNjI7MDBFMCAwNUFFIDBGODYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDBGODYgMDMxNSAwMDYyOworMDA2MSAwRjg2IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDBGODYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODYgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDBGODcgMDA2MjswMEUwIDA1QUUgMEY4NyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMEY4NyAwMzE1IDAwNjI7MDBFMCAwNUFFIDBGODcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDBGODcgMDMxNSAwMDYyOworMDA2MSAwRjg3IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDBGODcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODcgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDBGQzYgMDA2MjswMDYxIDMwMkEgMDMxNiAwRkM2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwRkM2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwRkM2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwRkM2IDA1OUEgMDA2MjsKKzAwNjEgMEZDNiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwRkM2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwRkM2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwRkM2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwRkM2IDAzMTYgMDU5QSAwMDYyOworMDA2MSAzMDk5IDA5M0MgMDMzNCAxMDM3IDAwNjI7MDA2MSAwMzM0IDA5M0MgMTAzNyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMTAzNyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMTAzNyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMTAzNyAzMDk5IDAwNjI7CiswMDYxIDEwMzcgMzA5OSAwOTNDIDAzMzQgMDA2MjswMDYxIDAzMzQgMTAzNyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMTAzNyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMTAzNyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMTAzNyAwOTNDIDMwOTkgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMTAzOSAwMDYyOzAwNjEgMzA5OSAwOTREIDEwMzkgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDEwMzkgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDEwMzkgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDEwMzkgMDVCMCAwMDYyOworMDA2MSAxMDM5IDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDEwMzkgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDEwMzkgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDEwMzkgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDEwMzkgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDE3MTQgMDA2MjswMDYxIDMwOTkgMDk0RCAxNzE0IDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAxNzE0IDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAxNzE0IDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAxNzE0IDA1QjAgMDA2MjsKKzAwNjEgMTcxNCAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAxNzE0IDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAxNzE0IDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAxNzE0IDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAxNzE0IDA5NEQgMDVCMCAwMDYyOworMDA2MSAwNUIwIDA5NEQgMzA5OSAxNzM0IDAwNjI7MDA2MSAzMDk5IDA5NEQgMTczNCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMTczNCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMTczNCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMTczNCAwNUIwIDAwNjI7CiswMDYxIDE3MzQgMDVCMCAwOTREIDMwOTkgMDA2MjswMDYxIDMwOTkgMTczNCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMTczNCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMTczNCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMTczNCAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMTdEMiAwMDYyOzAwNjEgMzA5OSAwOTREIDE3RDIgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDE3RDIgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDE3RDIgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDE3RDIgMDVCMCAwMDYyOworMDA2MSAxN0QyIDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDE3RDIgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDE3RDIgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDE3RDIgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDE3RDIgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDAzMDAgMDVBRSAxRDE2RCAxOEE5IDAwNjI7MDBFMCAxRDE2RCAwNUFFIDE4QTkgMDA2MjswMDYxIDFEMTZEIDA1QUUgMThBOSAwMzAwIDAwNjI7MDBFMCAxRDE2RCAwNUFFIDE4QTkgMDA2MjswMDYxIDFEMTZEIDA1QUUgMThBOSAwMzAwIDAwNjI7CiswMDYxIDE4QTkgMDMwMCAwNUFFIDFEMTZEIDAwNjI7MDBFMCAxRDE2RCAxOEE5IDA1QUUgMDA2MjswMDYxIDFEMTZEIDE4QTkgMDVBRSAwMzAwIDAwNjI7MDBFMCAxRDE2RCAxOEE5IDA1QUUgMDA2MjswMDYxIDFEMTZEIDE4QTkgMDVBRSAwMzAwIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDIwRDAgMDA2MjswMEUwIDA1QUUgMjBEMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBEMCAwMzE1IDAwNjI7MDBFMCAwNUFFIDIwRDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRDAgMDMxNSAwMDYyOworMDA2MSAyMEQwIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDIwRDAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRDAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRDAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRDAgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDIwRDEgMDA2MjswMEUwIDA1QUUgMjBEMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBEMSAwMzE1IDAwNjI7MDBFMCAwNUFFIDIwRDEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRDEgMDMxNSAwMDYyOworMDA2MSAyMEQxIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDIwRDEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRDEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRDEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRDEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA5M0MgMDMzNCAyMEQyIDAwNjI7MDA2MSAwMzM0IDIwRDIgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEQyIDA5M0MgMDA2MjswMDYxIDAzMzQgMjBEMiAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRDIgMDkzQyAwMDYyOworMDA2MSAyMEQyIDA5M0MgMDMzNCAwMDYyOzAwNjEgMjBEMiAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRDIgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEQyIDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBEMiAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDIwRDMgMDA2MjswMDYxIDAzMzQgMjBEMyAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRDMgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEQzIDA5M0MgMDA2MjswMDYxIDAzMzQgMjBEMyAwOTNDIDAwNjI7CiswMDYxIDIwRDMgMDkzQyAwMzM0IDAwNjI7MDA2MSAyMEQzIDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBEMyAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRDMgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEQzIDAzMzQgMDkzQyAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAyMEQ0IDAwNjI7MDBFMCAwNUFFIDIwRDQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRDQgMDMxNSAwMDYyOzAwRTAgMDVBRSAyMEQ0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEQ0IDAzMTUgMDA2MjsKKzAwNjEgMjBENCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAyMEQ0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQ0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQ0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQ0IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAyMEQ1IDAwNjI7MDBFMCAwNUFFIDIwRDUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRDUgMDMxNSAwMDYyOzAwRTAgMDVBRSAyMEQ1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEQ1IDAzMTUgMDA2MjsKKzAwNjEgMjBENSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAyMEQ1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQ1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQ1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQ1IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAyMEQ2IDAwNjI7MDBFMCAwNUFFIDIwRDYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRDYgMDMxNSAwMDYyOzAwRTAgMDVBRSAyMEQ2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEQ2IDAzMTUgMDA2MjsKKzAwNjEgMjBENiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAyMEQ2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQ2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQ2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQ2IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAyMEQ3IDAwNjI7MDBFMCAwNUFFIDIwRDcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRDcgMDMxNSAwMDYyOzAwRTAgMDVBRSAyMEQ3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEQ3IDAzMTUgMDA2MjsKKzAwNjEgMjBENyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAyMEQ3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQ3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQ3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQ3IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwOTNDIDAzMzQgMjBEOCAwMDYyOzAwNjEgMDMzNCAyMEQ4IDA5M0MgMDA2MjswMDYxIDAzMzQgMjBEOCAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRDggMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEQ4IDA5M0MgMDA2MjsKKzAwNjEgMjBEOCAwOTNDIDAzMzQgMDA2MjswMDYxIDIwRDggMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEQ4IDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBEOCAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRDggMDMzNCAwOTNDIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAyMEQ5IDAwNjI7MDA2MSAwMzM0IDIwRDkgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEQ5IDA5M0MgMDA2MjswMDYxIDAzMzQgMjBEOSAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRDkgMDkzQyAwMDYyOworMDA2MSAyMEQ5IDA5M0MgMDMzNCAwMDYyOzAwNjEgMjBEOSAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRDkgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEQ5IDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBEOSAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDIwREEgMDA2MjswMDYxIDAzMzQgMjBEQSAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwREEgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMERBIDA5M0MgMDA2MjswMDYxIDAzMzQgMjBEQSAwOTNDIDAwNjI7CiswMDYxIDIwREEgMDkzQyAwMzM0IDAwNjI7MDA2MSAyMERBIDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBEQSAwMzM0IDA5M0MgMDA2MjswMDYxIDIwREEgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMERBIDAzMzQgMDkzQyAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAyMERCIDAwNjI7MDBFMCAwNUFFIDIwREIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwREIgMDMxNSAwMDYyOzAwRTAgMDVBRSAyMERCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMERCIDAzMTUgMDA2MjsKKzAwNjEgMjBEQiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAyMERCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMERCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMERCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMERCIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAyMERDIDAwNjI7MDBFMCAwNUFFIDIwREMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwREMgMDMxNSAwMDYyOzAwRTAgMDVBRSAyMERDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMERDIDAzMTUgMDA2MjsKKzAwNjEgMjBEQyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAyMERDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMERDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMERDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMERDIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAyMEUxIDAwNjI7MDBFMCAwNUFFIDIwRTEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRTEgMDMxNSAwMDYyOzAwRTAgMDVBRSAyMEUxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEUxIDAzMTUgMDA2MjsKKzAwNjEgMjBFMSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAyMEUxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEUxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEUxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEUxIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwOTNDIDAzMzQgMjBFNSAwMDYyOzAwNjEgMDMzNCAyMEU1IDA5M0MgMDA2MjswMDYxIDAzMzQgMjBFNSAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRTUgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEU1IDA5M0MgMDA2MjsKKzAwNjEgMjBFNSAwOTNDIDAzMzQgMDA2MjswMDYxIDIwRTUgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEU1IDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBFNSAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRTUgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAyMEU2IDAwNjI7MDA2MSAwMzM0IDIwRTYgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEU2IDA5M0MgMDA2MjswMDYxIDAzMzQgMjBFNiAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRTYgMDkzQyAwMDYyOworMDA2MSAyMEU2IDA5M0MgMDMzNCAwMDYyOzAwNjEgMjBFNiAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRTYgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEU2IDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBFNiAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMjBFNyAwMDYyOzAwRTAgMDVBRSAyMEU3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEU3IDAzMTUgMDA2MjswMEUwIDA1QUUgMjBFNyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBFNyAwMzE1IDAwNjI7CiswMDYxIDIwRTcgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMjBFNyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBFNyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBFNyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBFNyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMjBFOCAwMDYyOzAwNjEgMzAyQSAwMzE2IDIwRTggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDIwRTggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDIwRTggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDIwRTggMDU5QSAwMDYyOworMDA2MSAyMEU4IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDIwRTggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDIwRTggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDIwRTggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDIwRTggMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDIwRTkgMDA2MjswMEUwIDA1QUUgMjBFOSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBFOSAwMzE1IDAwNjI7MDBFMCAwNUFFIDIwRTkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRTkgMDMxNSAwMDYyOworMDA2MSAyMEU5IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDIwRTkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRTkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRTkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRTkgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA5M0MgMDMzNCAyMEVBIDAwNjI7MDA2MSAwMzM0IDIwRUEgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEVBIDA5M0MgMDA2MjswMDYxIDAzMzQgMjBFQSAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRUEgMDkzQyAwMDYyOworMDA2MSAyMEVBIDA5M0MgMDMzNCAwMDYyOzAwNjEgMjBFQSAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRUEgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEVBIDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBFQSAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDMxNiAzMDJBIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMxQiAzMDJBIDMwMkEgMDMxNiAwMDYyOzAwNjEgMDMxQiAzMDJBIDMwMkEgMDMxNiAwMDYyOzAwNjEgMDMxQiAzMDJBIDMwMkEgMDMxNiAwMDYyOzAwNjEgMDMxQiAzMDJBIDMwMkEgMDMxNiAwMDYyOworMDA2MSAzMDJBIDAzMTYgMzAyQSAwMzFCIDAwNjI7MDA2MSAwMzFCIDMwMkEgMzAyQSAwMzE2IDAwNjI7MDA2MSAwMzFCIDMwMkEgMzAyQSAwMzE2IDAwNjI7MDA2MSAwMzFCIDMwMkEgMzAyQSAwMzE2IDAwNjI7MDA2MSAwMzFCIDMwMkEgMzAyQSAwMzE2IDAwNjI7CiswMDYxIDAzMDAgMDVBRSAxRDE2RCAzMDJCIDAwNjI7MDBFMCAxRDE2RCAwNUFFIDMwMkIgMDA2MjswMDYxIDFEMTZEIDA1QUUgMzAyQiAwMzAwIDAwNjI7MDBFMCAxRDE2RCAwNUFFIDMwMkIgMDA2MjswMDYxIDFEMTZEIDA1QUUgMzAyQiAwMzAwIDAwNjI7CiswMDYxIDMwMkIgMDMwMCAwNUFFIDFEMTZEIDAwNjI7MDBFMCAxRDE2RCAzMDJCIDA1QUUgMDA2MjswMDYxIDFEMTZEIDMwMkIgMDVBRSAwMzAwIDAwNjI7MDBFMCAxRDE2RCAzMDJCIDA1QUUgMDA2MjswMDYxIDFEMTZEIDMwMkIgMDVBRSAwMzAwIDAwNjI7CiswMDYxIDAzNjIgMDMxNSAwMzAwIDMwMkMgMDA2MjswMEUwIDAzMTUgMzAyQyAwMzYyIDAwNjI7MDA2MSAwMzAwIDAzMTUgMzAyQyAwMzYyIDAwNjI7MDBFMCAwMzE1IDMwMkMgMDM2MiAwMDYyOzAwNjEgMDMwMCAwMzE1IDMwMkMgMDM2MiAwMDYyOworMDA2MSAzMDJDIDAzNjIgMDMxNSAwMzAwIDAwNjI7MDBFMCAzMDJDIDAzMTUgMDM2MiAwMDYyOzAwNjEgMDMwMCAzMDJDIDAzMTUgMDM2MiAwMDYyOzAwRTAgMzAyQyAwMzE1IDAzNjIgMDA2MjswMDYxIDAzMDAgMzAyQyAwMzE1IDAzNjIgMDA2MjsKKzAwNjEgMzAyRSAwNTlBIDAzMTYgMzAyRCAwMDYyOzAwNjEgMDMxNiAwNTlBIDMwMkQgMzAyRSAwMDYyOzAwNjEgMDMxNiAwNTlBIDMwMkQgMzAyRSAwMDYyOzAwNjEgMDMxNiAwNTlBIDMwMkQgMzAyRSAwMDYyOzAwNjEgMDMxNiAwNTlBIDMwMkQgMzAyRSAwMDYyOworMDA2MSAzMDJEIDMwMkUgMDU5QSAwMzE2IDAwNjI7MDA2MSAwMzE2IDMwMkQgMDU5QSAzMDJFIDAwNjI7MDA2MSAwMzE2IDMwMkQgMDU5QSAzMDJFIDAwNjI7MDA2MSAwMzE2IDMwMkQgMDU5QSAzMDJFIDAwNjI7MDA2MSAwMzE2IDMwMkQgMDU5QSAzMDJFIDAwNjI7CiswMDYxIDFEMTZEIDMwMkUgMDU5QSAzMDJFIDAwNjI7MDA2MSAwNTlBIDMwMkUgMzAyRSAxRDE2RCAwMDYyOzAwNjEgMDU5QSAzMDJFIDMwMkUgMUQxNkQgMDA2MjswMDYxIDA1OUEgMzAyRSAzMDJFIDFEMTZEIDAwNjI7MDA2MSAwNTlBIDMwMkUgMzAyRSAxRDE2RCAwMDYyOworMDA2MSAzMDJFIDFEMTZEIDMwMkUgMDU5QSAwMDYyOzAwNjEgMDU5QSAzMDJFIDMwMkUgMUQxNkQgMDA2MjswMDYxIDA1OUEgMzAyRSAzMDJFIDFEMTZEIDAwNjI7MDA2MSAwNTlBIDMwMkUgMzAyRSAxRDE2RCAwMDYyOzAwNjEgMDU5QSAzMDJFIDMwMkUgMUQxNkQgMDA2MjsKKzAwNjEgMUQxNkQgMzAyRSAwNTlBIDMwMkYgMDA2MjswMDYxIDA1OUEgMzAyRSAzMDJGIDFEMTZEIDAwNjI7MDA2MSAwNTlBIDMwMkUgMzAyRiAxRDE2RCAwMDYyOzAwNjEgMDU5QSAzMDJFIDMwMkYgMUQxNkQgMDA2MjswMDYxIDA1OUEgMzAyRSAzMDJGIDFEMTZEIDAwNjI7CiswMDYxIDMwMkYgMUQxNkQgMzAyRSAwNTlBIDAwNjI7MDA2MSAwNTlBIDMwMkYgMzAyRSAxRDE2RCAwMDYyOzAwNjEgMDU5QSAzMDJGIDMwMkUgMUQxNkQgMDA2MjswMDYxIDA1OUEgMzAyRiAzMDJFIDFEMTZEIDAwNjI7MDA2MSAwNTlBIDMwMkYgMzAyRSAxRDE2RCAwMDYyOworMDA2MSAwOTREIDMwOTkgMDkzQyAzMDk5IDAwNjI7MDA2MSAwOTNDIDMwOTkgMzA5OSAwOTREIDAwNjI7MDA2MSAwOTNDIDMwOTkgMzA5OSAwOTREIDAwNjI7MDA2MSAwOTNDIDMwOTkgMzA5OSAwOTREIDAwNjI7MDA2MSAwOTNDIDMwOTkgMzA5OSAwOTREIDAwNjI7CiswMDYxIDMwOTkgMDk0RCAzMDk5IDA5M0MgMDA2MjswMDYxIDA5M0MgMzA5OSAzMDk5IDA5NEQgMDA2MjswMDYxIDA5M0MgMzA5OSAzMDk5IDA5NEQgMDA2MjswMDYxIDA5M0MgMzA5OSAzMDk5IDA5NEQgMDA2MjswMDYxIDA5M0MgMzA5OSAzMDk5IDA5NEQgMDA2MjsKKzAwNjEgMDk0RCAzMDk5IDA5M0MgMzA5QSAwMDYyOzAwNjEgMDkzQyAzMDk5IDMwOUEgMDk0RCAwMDYyOzAwNjEgMDkzQyAzMDk5IDMwOUEgMDk0RCAwMDYyOzAwNjEgMDkzQyAzMDk5IDMwOUEgMDk0RCAwMDYyOzAwNjEgMDkzQyAzMDk5IDMwOUEgMDk0RCAwMDYyOworMDA2MSAzMDlBIDA5NEQgMzA5OSAwOTNDIDAwNjI7MDA2MSAwOTNDIDMwOUEgMzA5OSAwOTREIDAwNjI7MDA2MSAwOTNDIDMwOUEgMzA5OSAwOTREIDAwNjI7MDA2MSAwOTNDIDMwOUEgMzA5OSAwOTREIDAwNjI7MDA2MSAwOTNDIDMwOUEgMzA5OSAwOTREIDAwNjI7CiswMDYxIDA2NEIgRkIxRSAwNUMyIEZCMUUgMDA2MjswMDYxIDA1QzIgRkIxRSBGQjFFIDA2NEIgMDA2MjswMDYxIDA1QzIgRkIxRSBGQjFFIDA2NEIgMDA2MjswMDYxIDA1QzIgRkIxRSBGQjFFIDA2NEIgMDA2MjswMDYxIDA1QzIgRkIxRSBGQjFFIDA2NEIgMDA2MjsKKzAwNjEgRkIxRSAwNjRCIEZCMUUgMDVDMiAwMDYyOzAwNjEgMDVDMiBGQjFFIEZCMUUgMDY0QiAwMDYyOzAwNjEgMDVDMiBGQjFFIEZCMUUgMDY0QiAwMDYyOzAwNjEgMDVDMiBGQjFFIEZCMUUgMDY0QiAwMDYyOzAwNjEgMDVDMiBGQjFFIEZCMUUgMDY0QiAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSBGRTIwIDAwNjI7MDBFMCAwNUFFIEZFMjAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIEZFMjAgMDMxNSAwMDYyOzAwRTAgMDVBRSBGRTIwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCBGRTIwIDAzMTUgMDA2MjsKKzAwNjEgRkUyMCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSBGRTIwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSBGRTIwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSBGRTIwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSBGRTIwIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSBGRTIxIDAwNjI7MDBFMCAwNUFFIEZFMjEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIEZFMjEgMDMxNSAwMDYyOzAwRTAgMDVBRSBGRTIxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCBGRTIxIDAzMTUgMDA2MjsKKzAwNjEgRkUyMSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSBGRTIxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSBGRTIxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSBGRTIxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSBGRTIxIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSBGRTIyIDAwNjI7MDBFMCAwNUFFIEZFMjIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIEZFMjIgMDMxNSAwMDYyOzAwRTAgMDVBRSBGRTIyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCBGRTIyIDAzMTUgMDA2MjsKKzAwNjEgRkUyMiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSBGRTIyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSBGRTIyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSBGRTIyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSBGRTIyIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSBGRTIzIDAwNjI7MDBFMCAwNUFFIEZFMjMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIEZFMjMgMDMxNSAwMDYyOzAwRTAgMDVBRSBGRTIzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCBGRTIzIDAzMTUgMDA2MjsKKzAwNjEgRkUyMyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSBGRTIzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSBGRTIzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSBGRTIzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSBGRTIzIDAzMDAgMDMxNSAwMDYyOworMDA2MSAzMDJBIDAzMUIgMDMyMSAxRDE2NSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTY1IDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2NSAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNjUgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTY1IDMwMkEgMDA2MjsKKzAwNjEgMUQxNjUgMzAyQSAwMzFCIDAzMjEgMDA2MjswMDYxIDAzMjEgMUQxNjUgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTY1IDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE2NSAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNjUgMDMxQiAzMDJBIDAwNjI7CiswMDYxIDMwMkEgMDMxQiAwMzIxIDFEMTY2IDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNjYgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTY2IDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2NiAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNjYgMzAyQSAwMDYyOworMDA2MSAxRDE2NiAzMDJBIDAzMUIgMDMyMSAwMDYyOzAwNjEgMDMyMSAxRDE2NiAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNjYgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTY2IDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE2NiAwMzFCIDMwMkEgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDFEMTY3IDAwNjI7MDA2MSAwMzM0IDFEMTY3IDA5M0MgMDA2MjswMDYxIDAzMzQgMUQxNjcgMDkzQyAwMDYyOzAwNjEgMDMzNCAxRDE2NyAwOTNDIDAwNjI7MDA2MSAwMzM0IDFEMTY3IDA5M0MgMDA2MjsKKzAwNjEgMUQxNjcgMDkzQyAwMzM0IDAwNjI7MDA2MSAxRDE2NyAwMzM0IDA5M0MgMDA2MjswMDYxIDFEMTY3IDAzMzQgMDkzQyAwMDYyOzAwNjEgMUQxNjcgMDMzNCAwOTNDIDAwNjI7MDA2MSAxRDE2NyAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDFEMTY4IDAwNjI7MDA2MSAwMzM0IDFEMTY4IDA5M0MgMDA2MjswMDYxIDAzMzQgMUQxNjggMDkzQyAwMDYyOzAwNjEgMDMzNCAxRDE2OCAwOTNDIDAwNjI7MDA2MSAwMzM0IDFEMTY4IDA5M0MgMDA2MjsKKzAwNjEgMUQxNjggMDkzQyAwMzM0IDAwNjI7MDA2MSAxRDE2OCAwMzM0IDA5M0MgMDA2MjswMDYxIDFEMTY4IDAzMzQgMDkzQyAwMDYyOzAwNjEgMUQxNjggMDMzNCAwOTNDIDAwNjI7MDA2MSAxRDE2OCAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDFEMTY5IDAwNjI7MDA2MSAwMzM0IDFEMTY5IDA5M0MgMDA2MjswMDYxIDAzMzQgMUQxNjkgMDkzQyAwMDYyOzAwNjEgMDMzNCAxRDE2OSAwOTNDIDAwNjI7MDA2MSAwMzM0IDFEMTY5IDA5M0MgMDA2MjsKKzAwNjEgMUQxNjkgMDkzQyAwMzM0IDAwNjI7MDA2MSAxRDE2OSAwMzM0IDA5M0MgMDA2MjswMDYxIDFEMTY5IDAzMzQgMDkzQyAwMDYyOzAwNjEgMUQxNjkgMDMzNCAwOTNDIDAwNjI7MDA2MSAxRDE2OSAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDVBRSAxRDE2RCAzMDJFIDFEMTZEIDAwNjI7MDA2MSAzMDJFIDFEMTZEIDFEMTZEIDA1QUUgMDA2MjswMDYxIDMwMkUgMUQxNkQgMUQxNkQgMDVBRSAwMDYyOzAwNjEgMzAyRSAxRDE2RCAxRDE2RCAwNUFFIDAwNjI7MDA2MSAzMDJFIDFEMTZEIDFEMTZEIDA1QUUgMDA2MjsKKzAwNjEgMUQxNkQgMDVBRSAxRDE2RCAzMDJFIDAwNjI7MDA2MSAzMDJFIDFEMTZEIDFEMTZEIDA1QUUgMDA2MjswMDYxIDMwMkUgMUQxNkQgMUQxNkQgMDVBRSAwMDYyOzAwNjEgMzAyRSAxRDE2RCAxRDE2RCAwNUFFIDAwNjI7MDA2MSAzMDJFIDFEMTZEIDFEMTZEIDA1QUUgMDA2MjsKKzAwNjEgMzAyQSAwMzFCIDAzMjEgMUQxNkUgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2RSAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNkUgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTZFIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2RSAzMDJBIDAwNjI7CiswMDYxIDFEMTZFIDMwMkEgMDMxQiAwMzIxIDAwNjI7MDA2MSAwMzIxIDFEMTZFIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE2RSAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNkUgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTZFIDAzMUIgMzAyQSAwMDYyOworMDA2MSAzMDJBIDAzMUIgMDMyMSAxRDE2RiAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTZGIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2RiAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNkYgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTZGIDMwMkEgMDA2MjsKKzAwNjEgMUQxNkYgMzAyQSAwMzFCIDAzMjEgMDA2MjswMDYxIDAzMjEgMUQxNkYgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTZGIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE2RiAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNkYgMDMxQiAzMDJBIDAwNjI7CiswMDYxIDMwMkEgMDMxQiAwMzIxIDFEMTcwIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNzAgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTcwIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE3MCAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNzAgMzAyQSAwMDYyOworMDA2MSAxRDE3MCAzMDJBIDAzMUIgMDMyMSAwMDYyOzAwNjEgMDMyMSAxRDE3MCAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNzAgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTcwIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE3MCAwMzFCIDMwMkEgMDA2MjsKKzAwNjEgMzAyQSAwMzFCIDAzMjEgMUQxNzEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE3MSAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNzEgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTcxIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE3MSAzMDJBIDAwNjI7CiswMDYxIDFEMTcxIDMwMkEgMDMxQiAwMzIxIDAwNjI7MDA2MSAwMzIxIDFEMTcxIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE3MSAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNzEgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTcxIDAzMUIgMzAyQSAwMDYyOworMDA2MSAzMDJBIDAzMUIgMDMyMSAxRDE3MiAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTcyIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE3MiAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNzIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTcyIDMwMkEgMDA2MjsKKzAwNjEgMUQxNzIgMzAyQSAwMzFCIDAzMjEgMDA2MjswMDYxIDAzMjEgMUQxNzIgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTcyIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE3MiAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNzIgMDMxQiAzMDJBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDFEMTdCIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0IgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3QiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0IgMDU5QSAwMDYyOworMDA2MSAxRDE3QiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAxRDE3QiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxN0IgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTdCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE3QiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMUQxN0MgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3QyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0MgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdDIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3QyAwNTlBIDAwNjI7CiswMDYxIDFEMTdDIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDFEMTdDIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE3QyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxN0MgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTdDIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAxRDE3RCAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdEIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3RCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0QgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdEIDA1OUEgMDA2MjsKKzAwNjEgMUQxN0QgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMUQxN0QgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTdEIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE3RCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxN0QgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDFEMTdFIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0UgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3RSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0UgMDU5QSAwMDYyOworMDA2MSAxRDE3RSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAxRDE3RSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxN0UgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTdFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE3RSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMUQxN0YgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3RiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0YgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdGIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3RiAwNTlBIDAwNjI7CiswMDYxIDFEMTdGIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDFEMTdGIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE3RiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxN0YgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTdGIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAxRDE4MCAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTgwIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4MCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxODAgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTgwIDA1OUEgMDA2MjsKKzAwNjEgMUQxODAgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMUQxODAgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTgwIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE4MCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxODAgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDFEMTgxIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxODEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTgxIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4MSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxODEgMDU5QSAwMDYyOworMDA2MSAxRDE4MSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAxRDE4MSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxODEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTgxIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE4MSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMUQxODIgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4MiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxODIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTgyIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4MiAwNTlBIDAwNjI7CiswMDYxIDFEMTgyIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDFEMTgyIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE4MiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxODIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTgyIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAxRDE4NSAwMDYyOzAwRTAgMDVBRSAxRDE4NSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxODUgMDMxNSAwMDYyOzAwRTAgMDVBRSAxRDE4NSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxODUgMDMxNSAwMDYyOworMDA2MSAxRDE4NSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAxRDE4NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxODUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMTg1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDE4NSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMUQxODYgMDA2MjswMEUwIDA1QUUgMUQxODYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMTg2IDAzMTUgMDA2MjswMEUwIDA1QUUgMUQxODYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMTg2IDAzMTUgMDA2MjsKKzAwNjEgMUQxODYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMUQxODYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMTg2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDE4NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxODYgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDFEMTg3IDAwNjI7MDBFMCAwNUFFIDFEMTg3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDE4NyAwMzE1IDAwNjI7MDBFMCAwNUFFIDFEMTg3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDE4NyAwMzE1IDAwNjI7CiswMDYxIDFEMTg3IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDFEMTg3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDE4NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxODcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMTg3IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAxRDE4OCAwMDYyOzAwRTAgMDVBRSAxRDE4OCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxODggMDMxNSAwMDYyOzAwRTAgMDVBRSAxRDE4OCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxODggMDMxNSAwMDYyOworMDA2MSAxRDE4OCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAxRDE4OCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxODggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMTg4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDE4OCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMUQxODkgMDA2MjswMEUwIDA1QUUgMUQxODkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMTg5IDAzMTUgMDA2MjswMEUwIDA1QUUgMUQxODkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMTg5IDAzMTUgMDA2MjsKKzAwNjEgMUQxODkgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMUQxODkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMTg5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDE4OSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxODkgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDFEMThBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxOEEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMThBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4QSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxOEEgMDU5QSAwMDYyOworMDA2MSAxRDE4QSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAxRDE4QSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxOEEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMThBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE4QSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMUQxOEIgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4QiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxOEIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMThCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4QiAwNTlBIDAwNjI7CiswMDYxIDFEMThCIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDFEMThCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE4QiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxOEIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMThCIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAxRDFBQSAwMDYyOzAwRTAgMDVBRSAxRDFBQSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxQUEgMDMxNSAwMDYyOzAwRTAgMDVBRSAxRDFBQSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxQUEgMDMxNSAwMDYyOworMDA2MSAxRDFBQSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAxRDFBQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxQUEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMUFBIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDFBQSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMUQxQUIgMDA2MjswMEUwIDA1QUUgMUQxQUIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMUFCIDAzMTUgMDA2MjswMEUwIDA1QUUgMUQxQUIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMUFCIDAzMTUgMDA2MjsKKzAwNjEgMUQxQUIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMUQxQUIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMUFCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDFBQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxQUIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDFEMUFDIDAwNjI7MDBFMCAwNUFFIDFEMUFDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDFBQyAwMzE1IDAwNjI7MDBFMCAwNUFFIDFEMUFDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDFBQyAwMzE1IDAwNjI7CiswMDYxIDFEMUFDIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDFEMUFDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDFBQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxQUMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMUFDIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAxRDFBRCAwMDYyOzAwRTAgMDVBRSAxRDFBRCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxQUQgMDMxNSAwMDYyOzAwRTAgMDVBRSAxRDFBRCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxQUQgMDMxNSAwMDYyOworMDA2MSAxRDFBRCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAxRDFBRCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxQUQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMUFEIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDFBRCAwMzAwIDAzMTUgMDA2MjsKKyMKKyMgRU5EIE9GIEZJTEUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL1NwZWNpYWxDYXNpbmctMi50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9TcGVjaWFsQ2FzaW5nLTIudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFmMDAyZWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9TcGVjaWFsQ2FzaW5nLTIudHh0CkBAIC0wLDAgKzEsMjE5IEBACisjIFNwZWNpYWxDYXNpbmctMi50eHQKKyMKKyMgU3BlY2lhbCBDYXNpbmcgUHJvcGVydGllcworIworIyBUaGlzIGZpbGUgaXMgYSBzdXBwbGVtZW50IHRvIHRoZSBVbmljb2RlRGF0YSBmaWxlLgorIyBJdCBjb250YWlucyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjYXNpbmcgb2YgVW5pY29kZSBjaGFyYWN0ZXJzLgorIyAoRm9yIGNvbXBhdGliaWxpdHksIHRoZSBVbmljb2RlRGF0YS50eHQgZmlsZSBvbmx5IGNvbnRhaW5zIGNhc2UgbWFwcGluZ3MgZm9yCisjIGNoYXJhY3RlcnMgd2hlcmUgdGhleSBhcmUgMS0xLCBhbmQgZG9lcyBub3QgaGF2ZSBsb2NhbGUtc3BlY2lmaWMgbWFwcGluZ3MuKQorIyBUaGVzZSBhcmUgaW5mb3JtYXRpdmUgY2hhcmFjdGVyIHByb3BlcnRpZXMuCisjCisjIFNlbmQgY29tbWVudHMgdG8gbWFya0B1bmljb2RlLm9yZworIworIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyBGb3JtYXQKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgVGhlIGVudHJpZXMgaW4gdGhpcyBmaWxlIGFyZSBpbiB0aGUgZm9sbG93aW5nIG1hY2hpbmUtcmVhZGFibGUgZm9ybWF0OgorIworIyA8ZW50cnk+IDo9IDxjYXNlX21hcHBpbmc+IDxjb25kaXRpb25fbGlzdD4/ICg8cz4qICIjIiA8Y29tbWVudD4pPworIworIyA8Y2FzZV9tYXBwaW5nPiA6PSA8c291cmNlPiA8c2VwPiA8bG93ZXI+IDxzZXA+IDx0aXRsZT4gPHNlcD4gPHVwcGVyPiA8c2VwPgorIworIyA8c291cmNlPiA6PSA8Y29kZV9wb2ludD4KKyMgPHNlcD4gOj0gPHM+KiAiOyIgPHM+KgorIyA8bG93ZXI+IDo9IDxjb2RlX3BvaW50X2xpc3Q+CisjIDx0aXRsZT4gOj0gPGNvZGVfcG9pbnRfbGlzdD4KKyMgPHVwcGVyPiA6PSA8Y29kZV9wb2ludF9saXN0PgorIyA8Y29kZV9wb2ludF9saXN0PiA6PSA8Y29kZV9wb2ludD4gKDxzPisgPGNvZGVfcG9pbnQ+KSoKKyMgPGNvZGVfcG9pbnQ+IDo9IDxoZXg+PGhleD48aGV4PjxoZXg+CisjIDxoZXg+IDo9IFswLTFBLUZhLWZdCisjIDxzPiA6PSA8c3BhY2U+CisjCisjIDxjb25kaXRpb25fbGlzdD4gOj0gPGxvY2FsZT4/ICg8cz4rIDxjb250ZXh0PikqCisjIDxsb2NhbGU+IDo9IDxJU09fMzE2Nl9jb2RlPiAoICJfIiA8SVNPXzYzOV9jb2RlPiApPyAoICJfIiA8dmFyaWFudD4gKT8KKyMgPElTT18zMTY2X2NvZGU+IDo9IDItbGV0dGVyIGNvdW50cnkgY29kZSwKKyMgICAgICAgICAgICAgICAgICAgIGFzIGluIGh0dHA6Ly93d3cudW5pY29kZS5vcmcvdW5pY29kZS9vbmxpbmVkYXQvY291bnRyaWVzLmh0bWwKKyMgPElTT182MzlfY29kZT4gOj0gIDItbGV0dGVyIGNvZGUsCisjICAgICAgICAgICAgICAgICAgICBhcyBpbiBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvb25saW5lZGF0L2xhbmd1YWdlcy5odG1sCisjIDxjb250ZXh0PiA6PSAiRklOQUwiIHwgIk5PTl9GSU5BTCIgfCAiTU9ERVJOIiB8ICJOT05fTU9ERVJOIgorIworIyAgQSBjb25kaXRpb24gbGlzdCBvdmVycmlkZXMgdGhlIG5vcm1hbCBiZWhhdmlvciBpZiBhbnkgb2YgdGhlIGxpc3RlZCBjb25kaXRpb25zIGlzIHRydWUuCisjICAgRklOQUw6ICBUaGUgbGV0dGVyIGlzIG5vdCBmb2xsb3dlZCBieSBhIGxldHRlciBvZiBjYXRlZ29yeSBMKiAoZS5nLiBMbCwgTHQsIEx1LCBMbSwgb3IgTG8pLgorIyAgIE1PREVSTjogVGhlIG1hcHBpbmcgaXMgb25seSB1c2VkIGZvciBtb2Rlcm4gdGV4dC4KKyMgIENvbmRpdGlvbnMgcHJlY2VkZWQgYnkgIk5PTl8iIHJlcHJlc2VudCB0aGUgbmVnYXRpb24gb2YgdGhlIGNvbmRpdGlvbgorIworIyBOZXcgY29udGV4dHMgbWF5IGJlIGFkZGVkIGluIHRoZSBmdXR1cmUuCisjIFBhcnNlcnMgb2YgdGhpcyBmaWxlIG11c3QgYmUgcHJlcGFyZWQgdG8gZGVhbCB3aXRoIHRoYXQgc2l0dWF0aW9uLgorIyBBZGRpdGlvbmFsIHdoaXRlc3BhY2UgYXJvdW5kIGVsZW1lbnRzIGlzIG9wdGlvbmFsLiBCbGFuayBsaW5lcyBhcmUgaWdub3JlZCBpbiBwYXJzaW5nLgorIyBPbiBhbnkgbGluZSwgYWxsIHRleHQgZm9sbG93aW5nICIjIiBpcyBhIGNvbW1lbnQsIGFuZCBhcmUgaWdub3JlZCBpbiBwYXJzaW5nLgorIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjIFVuY29uZGl0aW9uYWwgbWFwcGluZ3MKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworIyBUaGUgR2VybWFuIGVzLXplZCBpcyBzcGVjaWFsLS10aGUgbm9ybWFsIG1hcHBpbmcgaXMgdG8gU1MuCisjIE5vdGU6IHRoZSB0aXRsZWNhc2Ugc2hvdWxkIG5ldmVyIG9jY3VyIGluIHByYWN0aWNlLiBJdCBpcyBlcXVhbCB0byB0aXRsZWNhc2UodXBwZXJjYXNlKDxlcy16ZWQ+KSkKKworMDBERjsgMDBERjsgMDA1MyAwMDczOyAwMDUzIDAwNTM7ICMgTEFUSU4gU01BTEwgTEVUVEVSIFNIQVJQIFMKKworIyBMaWdhdHVyZXMKKworRkIwMDsgRkIwMDsgMDA0NiAwMDY2OyAwMDQ2IDAwNDY7ICMgTEFUSU4gU01BTEwgTElHQVRVUkUgRkYKK0ZCMDE7IEZCMDE7IDAwNDYgMDA2OTsgMDA0NiAwMDQ5OyAjIExBVElOIFNNQUxMIExJR0FUVVJFIEZJCitGQjAyOyBGQjAyOyAwMDQ2IDAwNkM7IDAwNDYgMDA0QzsgIyBMQVRJTiBTTUFMTCBMSUdBVFVSRSBGTAorRkIwMzsgRkIwMzsgMDA0NiAwMDY2IDAwNjk7IDAwNDYgMDA0NiAwMDQ5OyAjIExBVElOIFNNQUxMIExJR0FUVVJFIEZGSQorRkIwNDsgRkIwNDsgMDA0NiAwMDY2IDAwNkM7IDAwNDYgMDA0NiAwMDRDOyAjIExBVElOIFNNQUxMIExJR0FUVVJFIEZGTAorRkIwNTsgRkIwNTsgMDA1MyAwMDc0OyAwMDUzIDAwNTQ7ICMgTEFUSU4gU01BTEwgTElHQVRVUkUgTE9ORyBTIFQKK0ZCMDY7IEZCMDY7IDAwNTMgMDA3NDsgMDA1MyAwMDU0OyAjIExBVElOIFNNQUxMIExJR0FUVVJFIFNUCisKKzA1ODc7IDA1ODc7IDA1MzUgMDU4MjsgMDUzNSAwNTUyOyAjIEFSTUVOSUFOIFNNQUxMIExJR0FUVVJFIEVDSCBZSVdOCitGQjEzOyBGQjEzOyAwNTQ0IDA1NzY7IDA1NDQgMDU0NjsgIyBBUk1FTklBTiBTTUFMTCBMSUdBVFVSRSBNRU4gTk9XCitGQjE0OyBGQjE0OyAwNTQ0IDA1NjU7IDA1NDQgMDUzNTsgIyBBUk1FTklBTiBTTUFMTCBMSUdBVFVSRSBNRU4gRUNICitGQjE1OyBGQjE1OyAwNTQ0IDA1NkI7IDA1NDQgMDUzQjsgIyBBUk1FTklBTiBTTUFMTCBMSUdBVFVSRSBNRU4gSU5JCitGQjE2OyBGQjE2OyAwNTRFIDA1NzY7IDA1NEUgMDU0NjsgIyBBUk1FTklBTiBTTUFMTCBMSUdBVFVSRSBWRVcgTk9XCitGQjE3OyBGQjE3OyAwNTQ0IDA1NkQ7IDA1NDQgMDUzRDsgIyBBUk1FTklBTiBTTUFMTCBMSUdBVFVSRSBNRU4gWEVICisKKyMgTm8gY29ycmVzcG9uZGluZyB1cHBlcmNhc2UgcHJlY29tcG9zZWQgY2hhcmFjdGVyCisKKzAxNDk7IDAxNDk7IDAyQkMgMDA2RTsgMDJCQyAwMDRFOyAjIExBVElOIFNNQUxMIExFVFRFUiBOIFBSRUNFREVEIEJZIEFQT1NUUk9QSEUKKzAzOTA7IDAzOTA7IDAzOTkgMDMwOCAwMzAxOyAwMzk5IDAzMDggMDMwMTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERJQUxZVElLQSBBTkQgVE9OT1MKKzAzQjA7IDAzQjA7IDAzQTUgMDMwOCAwMzAxOyAwM0E1IDAzMDggMDMwMTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIERJQUxZVElLQSBBTkQgVE9OT1MKKzAxRjA7IDAxRjA7IDAwNEEgMDMwQzsgMDA0QSAwMzBDOyAjIExBVElOIFNNQUxMIExFVFRFUiBKIFdJVEggQ0FST04KKzFFOTY7IDFFOTY7IDAwNDggMDMzMTsgMDA0OCAwMzMxOyAjIExBVElOIFNNQUxMIExFVFRFUiBIIFdJVEggTElORSBCRUxPVworMUU5NzsgMUU5NzsgMDA1NCAwMzA4OyAwMDU0IDAzMDg7ICMgTEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBESUFFUkVTSVMKKzFFOTg7IDFFOTg7IDAwNTcgMDMwQTsgMDA1NyAwMzBBOyAjIExBVElOIFNNQUxMIExFVFRFUiBXIFdJVEggUklORyBBQk9WRQorMUU5OTsgMUU5OTsgMDA1OSAwMzBBOyAwMDU5IDAzMEE7ICMgTEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBSSU5HIEFCT1ZFCisxRTlBOyAxRTlBOyAwMDQxIDAyQkU7IDAwNDEgMDJCRTsgIyBMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIFJJR0hUIEhBTEYgUklORworMUY1MDsgMUY1MDsgMDNBNSAwMzEzOyAwM0E1IDAzMTM7ICMgR1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBQU0lMSQorMUY1MjsgMUY1MjsgMDNBNSAwMzEzIDAzMDA7IDAzQTUgMDMxMyAwMzAwOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggUFNJTEkgQU5EIFZBUklBCisxRjU0OyAxRjU0OyAwM0E1IDAzMTMgMDMwMTsgMDNBNSAwMzEzIDAzMDE7ICMgR1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBQU0lMSSBBTkQgT1hJQQorMUY1NjsgMUY1NjsgMDNBNSAwMzEzIDAzNDI7IDAzQTUgMDMxMyAwMzQyOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JCisxRkI2OyAxRkI2OyAwMzkxIDAzNDI7IDAzOTEgMDM0MjsgIyBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQRVJJU1BPTUVOSQorMUZDNjsgMUZDNjsgMDM5NyAwMzQyOyAwMzk3IDAzNDI7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBFUklTUE9NRU5JCisxRkQyOyAxRkQyOyAwMzk5IDAzMDggMDMwMDsgMDM5OSAwMzA4IDAzMDA7ICMgR1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBESUFMWVRJS0EgQU5EIFZBUklBCisxRkQzOyAxRkQzOyAwMzk5IDAzMDggMDMwMTsgMDM5OSAwMzA4IDAzMDE7ICMgR1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBESUFMWVRJS0EgQU5EIE9YSUEKKzFGRDY7IDFGRDY7IDAzOTkgMDM0MjsgMDM5OSAwMzQyOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggUEVSSVNQT01FTkkKKzFGRDc7IDFGRDc7IDAzOTkgMDMwOCAwMzQyOyAwMzk5IDAzMDggMDM0MjsgIyBHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERJQUxZVElLQSBBTkQgUEVSSVNQT01FTkkKKzFGRTI7IDFGRTI7IDAzQTUgMDMwOCAwMzAwOyAwM0E1IDAzMDggMDMwMDsgIyBHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIERJQUxZVElLQSBBTkQgVkFSSUEKKzFGRTM7IDFGRTM7IDAzQTUgMDMwOCAwMzAxOyAwM0E1IDAzMDggMDMwMTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIERJQUxZVElLQSBBTkQgT1hJQQorMUZFNDsgMUZFNDsgMDNBMSAwMzEzOyAwM0ExIDAzMTM7ICMgR1JFRUsgU01BTEwgTEVUVEVSIFJITyBXSVRIIFBTSUxJCisxRkU2OyAxRkU2OyAwM0E1IDAzNDI7IDAzQTUgMDM0MjsgIyBHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIFBFUklTUE9NRU5JCisxRkU3OyAxRkU3OyAwM0E1IDAzMDggMDM0MjsgMDNBNSAwMzA4IDAzNDI7ICMgR1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBESUFMWVRJS0EgQU5EIFBFUklTUE9NRU5JCisxRkY2OyAxRkY2OyAwM0E5IDAzNDI7IDAzQTkgMDM0MjsgIyBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQRVJJU1BPTUVOSQorCisjIElNUE9SVEFOVC13aGVuIGNhcGl0YWxpemluZyBpb3RhLXN1YnNjcmlwdCAoMDM0NSkKKyMgIEl0IE1VU1QgYmUgaW4gbm9ybWFsaXplZCBmb3JtLS1tb3ZlZCB0byB0aGUgZW5kIG9mIGFueSBzZXF1ZW5jZSBvZiBjb21iaW5pbmcgbWFya3MuCisjICBUaGlzIGlzIGJlY2F1c2UgbG9naWNhbGx5IGl0IHJlcHJlc2VudHMgYSBmb2xsb3dpbmcgYmFzZSBjaGFyYWN0ZXIhCisjICBFLmcuIDxpb3RhX3N1YnNjcmlwdD4gKDxNbj4gfCA8TWM+IHwgPE1lPikrID0+ICg8TW4+IHwgPE1jPiB8IDxNZT4pKyA8aW90YV9zdWJzY3JpcHQ+CisjIEl0IHNob3VsZCBuZXZlciBiZSB0aGUgZmlyc3QgY2hhcmFjdGVyIGluIGEgd29yZCwgc28gaW4gdGl0bGVjYXNpbmcgaXQgY2FuIGJlIGxlZnQgYXMgaXMuCisKKyMgVGhlIGZvbGxvd2luZyBjYXNlcyBhcmUgYWxyZWFkeSBpbiB0aGUgVW5pY29kZURhdGEgZmlsZSwgc28gYXJlIG9ubHkgY29tbWVudGVkIGhlcmUuCisKKyMgMDM0NTsgMDM0NTsgMDM0NTsgMDM5OTsgIyBDT01CSU5JTkcgR1JFRUsgWVBPR0VHUkFNTUVOSQorCisjIEFsbCBsZXR0ZXJzIHdpdGggWVBPR0VHUkFNTUVOSSAoaW90YS1zdWJzY3JpcHQpIG9yIFBST1NHRUdSQU1NRU5JIChpb3RhIGFkc2NyaXB0KQorIyBoYXZlIHNwZWNpYWwgdXBwZXJjYXNlcy4KKyMgTm90ZTogY2hhcmFjdGVycyB3aXRoIFBST1NHRUdSQU1NRU5JIGFyZSBhY3R1YWxseSB0aXRsZWNhc2UsIG5vdCB1cHBlcmNhc2UhCisKKzFGODA7IDFGODA7IDFGODg7IDFGMDggMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgWVBPR0VHUkFNTUVOSQorMUY4MTsgMUY4MTsgMUY4OTsgMUYwOSAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBZUE9HRUdSQU1NRU5JCisxRjgyOyAxRjgyOyAxRjhBOyAxRjBBIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JCisxRjgzOyAxRjgzOyAxRjhCOyAxRjBCIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JCisxRjg0OyAxRjg0OyAxRjhDOyAxRjBDIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGODU7IDFGODU7IDFGOEQ7IDFGMEQgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgT1hJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUY4NjsgMUY4NjsgMUY4RTsgMUYwRSAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSQorMUY4NzsgMUY4NzsgMUY4RjsgMUYwRiAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSQorMUY4ODsgMUY4MDsgMUY4ODsgMUYwOCAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFBST1NHRUdSQU1NRU5JCisxRjg5OyAxRjgxOyAxRjg5OyAxRjA5IDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGOEE7IDFGODI7IDFGOEE7IDFGMEEgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBWQVJJQSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGOEI7IDFGODM7IDFGOEI7IDFGMEIgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBWQVJJQSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGOEM7IDFGODQ7IDFGOEM7IDFGMEMgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBPWElBIEFORCBQUk9TR0VHUkFNTUVOSQorMUY4RDsgMUY4NTsgMUY4RDsgMUYwRCAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5EIFBST1NHRUdSQU1NRU5JCisxRjhFOyAxRjg2OyAxRjhFOyAxRjBFIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkkgQU5EIFBST1NHRUdSQU1NRU5JCisxRjhGOyAxRjg3OyAxRjhGOyAxRjBGIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkkgQU5EIFBST1NHRUdSQU1NRU5JCisxRjkwOyAxRjkwOyAxRjk4OyAxRjI4IDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBZUE9HRUdSQU1NRU5JCisxRjkxOyAxRjkxOyAxRjk5OyAxRjI5IDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBZUE9HRUdSQU1NRU5JCisxRjkyOyAxRjkyOyAxRjlBOyAxRjJBIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUY5MzsgMUY5MzsgMUY5QjsgMUYyQiAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGOTQ7IDFGOTQ7IDFGOUM7IDFGMkMgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGOTU7IDFGOTU7IDFGOUQ7IDFGMkQgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGOTY7IDFGOTY7IDFGOUU7IDFGMkUgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JCisxRjk3OyAxRjk3OyAxRjlGOyAxRjJGIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSQorMUY5ODsgMUY5MDsgMUY5ODsgMUYyOCAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBQUk9TR0VHUkFNTUVOSQorMUY5OTsgMUY5MTsgMUY5OTsgMUYyOSAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBQUk9TR0VHUkFNTUVOSQorMUY5QTsgMUY5MjsgMUY5QTsgMUYyQSAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBWQVJJQSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGOUI7IDFGOTM7IDFGOUI7IDFGMkIgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgVkFSSUEgQU5EIFBST1NHRUdSQU1NRU5JCisxRjlDOyAxRjk0OyAxRjlDOyAxRjJDIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIE9YSUEgQU5EIFBST1NHRUdSQU1NRU5JCisxRjlEOyAxRjk1OyAxRjlEOyAxRjJEIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5EIFBST1NHRUdSQU1NRU5JCisxRjlFOyAxRjk2OyAxRjlFOyAxRjJFIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JIEFORCBQUk9TR0VHUkFNTUVOSQorMUY5RjsgMUY5NzsgMUY5RjsgMUYyRiAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGQTA7IDFGQTA7IDFGQTg7IDFGNjggMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgWVBPR0VHUkFNTUVOSQorMUZBMTsgMUZBMTsgMUZBOTsgMUY2OSAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBZUE9HRUdSQU1NRU5JCisxRkEyOyAxRkEyOyAxRkFBOyAxRjZBIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JCisxRkEzOyAxRkEzOyAxRkFCOyAxRjZCIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JCisxRkE0OyAxRkE0OyAxRkFDOyAxRjZDIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGQTU7IDFGQTU7IDFGQUQ7IDFGNkQgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgT1hJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUZBNjsgMUZBNjsgMUZBRTsgMUY2RSAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSQorMUZBNzsgMUZBNzsgMUZBRjsgMUY2RiAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSQorMUZBODsgMUZBMDsgMUZBODsgMUY2OCAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFBST1NHRUdSQU1NRU5JCisxRkE5OyAxRkExOyAxRkE5OyAxRjY5IDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGQUE7IDFGQTI7IDFGQUE7IDFGNkEgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBWQVJJQSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGQUI7IDFGQTM7IDFGQUI7IDFGNkIgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBWQVJJQSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGQUM7IDFGQTQ7IDFGQUM7IDFGNkMgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBPWElBIEFORCBQUk9TR0VHUkFNTUVOSQorMUZBRDsgMUZBNTsgMUZBRDsgMUY2RCAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5EIFBST1NHRUdSQU1NRU5JCisxRkFFOyAxRkE2OyAxRkFFOyAxRjZFIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkkgQU5EIFBST1NHRUdSQU1NRU5JCisxRkFGOyAxRkE3OyAxRkFGOyAxRjZGIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkkgQU5EIFBST1NHRUdSQU1NRU5JCisKKzFGQjM7IDFGQjM7IDFGQkM7IDAzOTEgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBZUE9HRUdSQU1NRU5JCisxRkJDOyAxRkIzOyAxRkJDOyAwMzkxIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQUk9TR0VHUkFNTUVOSQorMUZDMzsgMUZDMzsgMUZDQzsgMDM5NyAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBZUE9HRUdSQU1NRU5JCisxRkNDOyAxRkMzOyAxRkNDOyAwMzk3IDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFJPU0dFR1JBTU1FTkkKKzFGRjM7IDFGRjM7IDFGRkM7IDAzQTkgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBZUE9HRUdSQU1NRU5JCisxRkZDOyAxRkYzOyAxRkZDOyAwM0E5IDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBQUk9TR0VHUkFNTUVOSQorCisjIFNvbWUgY2hhcmFjdGVycyB3aXRoIFlQT0dFR1JBTU1FTkkgYXJlIGFsc28gaGF2ZSBubyBjb3JyZXNwb25kaW5nIHRpdGxlY2FzZXMKKworMUZCMjsgMUZCMjsgMUZCQSAwMzQ1OyAxRkJBIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGQjQ7IDFGQjQ7IDAzODYgMDM0NTsgMDM4NiAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGQzI7IDFGQzI7IDFGQ0EgMDM0NTsgMUZDQSAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUZDNDsgMUZDNDsgMDM4OSAwMzQ1OyAwMzg5IDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGRjI7IDFGRjI7IDFGRkEgMDM0NTsgMUZGQSAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JCisxRkY0OyAxRkY0OyAwMzhGIDAzNDU7IDAzOEYgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBPWElBIEFORCBZUE9HRUdSQU1NRU5JCisKKzFGQjc7IDFGQjc7IDAzOTEgMDM0MiAwMzQ1OyAwMzkxIDAzNDIgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSQorMUZDNzsgMUZDNzsgMDM5NyAwMzQyIDAzNDU7IDAzOTcgMDM0MiAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSQorMUZGNzsgMUZGNzsgMDNBOSAwMzQyIDAzNDU7IDAzQTkgMDM0MiAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JCisKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgQ29uZGl0aW9uYWwgbWFwcGluZ3MKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworIyBTcGVjaWFsIGNhc2UgZm9yIGZpbmFsIGZvcm0gb2Ygc2lnbWEKKworMDNBMzsgMDNDMjsgMDNBMzsgMDNBMzsgRklOQUw7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgU0lHTUEKKworIyBOb3RlOiB0aGUgZm9sbG93aW5nIGNhc2VzIGZvciBub24tZmluYWwgYXJlIGFscmVhZHkgaW4gdGhlIFVuaWNvZGVEYXRhIGZpbGUuCisKKyMgMDNBMzsgMDNDMzsgMDNBMzsgMDNBMzsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBTSUdNQQorIyAwM0MzOyAwM0MzOyAwM0EzOyAwM0EzOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBTSUdNQQorIyAwM0MyOyAwM0MyOyAwM0EzOyAwM0EzOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBGSU5BTCBTSUdNQQorCisjIE5vdGU6IHRoZSBmb2xsb3dpbmcgY2FzZXMgYXJlIG5vdCBpbmNsdWRlZCwgc2luY2UgdGhleSB3b3VsZCBub3JtYWxpemUgaW4gbG93ZXJjYXNpbmcKKworIyAwM0MzOyAwM0MyOyAwM0EzOyAwM0EzOyBGSU5BTDsgIyBHUkVFSyBTTUFMTCBMRVRURVIgU0lHTUEKKyMgMDNDMjsgMDNDMzsgMDNBMzsgMDNBMzsgTk9OX0ZJTkFMOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBGSU5BTCBTSUdNQQorCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjIExvY2FsZS1zZW5zaXRpdmUgbWFwcGluZ3MKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworIyBUdXJraXNoCisKKzAwNDk7IDAxMzE7IDAwNDk7IDAwNDk7IFRSOyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkKKzAwNjk7IDAwNjk7IDAxMzA7IDAxMzA7IFRSOyAjIExBVElOIFNNQUxMIExFVFRFUiBJCisKKyMgTm90ZTogdGhlIGZvbGxvd2luZyBjYXNlcyBhcmUgYWxyZWFkeSBpbiB0aGUgVW5pY29kZURhdGEgZmlsZS4KKworIyAwMTMxOyAwMTMxOyAwMDQ5OyAwMDQ5OyBUUjsgIyBMQVRJTiBTTUFMTCBMRVRURVIgRE9UTEVTUyBJCisjIDAxMzA7IDAwNjk7IDAxMzA7IDAxMzA7IFRSOyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBET1QgQUJPVkUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL1NwZWNpYWxDYXNpbmctNS50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9TcGVjaWFsQ2FzaW5nLTUudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBmZjM3ZGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9TcGVjaWFsQ2FzaW5nLTUudHh0CkBAIC0wLDAgKzEsMjYyIEBACisjIFNwZWNpYWxDYXNpbmctNS50eHQKKyMKKyMgU3BlY2lhbCBDYXNpbmcgUHJvcGVydGllcworIworIyBUaGlzIGZpbGUgaXMgYSBzdXBwbGVtZW50IHRvIHRoZSBVbmljb2RlRGF0YSBmaWxlLgorIyBJdCBjb250YWlucyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjYXNpbmcgb2YgVW5pY29kZSBjaGFyYWN0ZXJzLgorIyAoRm9yIGNvbXBhdGliaWxpdHksIHRoZSBVbmljb2RlRGF0YS50eHQgZmlsZSBvbmx5IGNvbnRhaW5zIGNhc2UgbWFwcGluZ3MgZm9yCisjIGNoYXJhY3RlcnMgd2hlcmUgdGhleSBhcmUgMS0xLCBhbmQgZG9lcyBub3QgaGF2ZSBsb2NhbGUtc3BlY2lmaWMgbWFwcGluZ3MuKQorIyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlCisjIFVUUiAjMjEgQ2FzZSBNYXBwaW5ncywgYXQgaHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHIyMS8KKyMKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgRm9ybWF0CisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjIFRoZSBlbnRyaWVzIGluIHRoaXMgZmlsZSBhcmUgaW4gdGhlIGZvbGxvd2luZyBtYWNoaW5lLXJlYWRhYmxlIGZvcm1hdDoKKyMKKyMgPGNvZGU+OyA8bG93ZXI+IDsgPHRpdGxlPiA7IDx1cHBlcj4gOyAoPGNvbmRpdGlvbl9saXN0PiA7KT8gIyA8Y29tbWVudD4KKyMKKyMgPGNvZGU+LCA8bG93ZXI+LCA8dGl0bGU+LCBhbmQgPHVwcGVyPiBwcm92aWRlIGNoYXJhY3RlciB2YWx1ZXMgaW4gaGV4LiBJZiB0aGVyZSBpcyBtb3JlIHRoYW4KKyMgb25lIGNoYXJhY3RlciwgdGhleSBhcmUgc2VwYXJhdGVkIGJ5IHNwYWNlcy4KKyMKKyMgVGhlIDxjb25kaXRpb25fbGlzdD4gaXMgb3B0aW9uYWwuIFdoZXJlIHByZXNlbnQsIGl0IGNvbnNpc3RzIG9mIG9uZSBvciBtb3JlIGxvY2FsZXMgb3IgY29udGV4dHMsCisjIHNlcGFyYXRlZCBieSBzcGFjZXMuIEluIHRoZXNlIGNvbmRpdGlvbnM6CisjIC0gQSBjb25kaXRpb24gbGlzdCBvdmVycmlkZXMgdGhlIG5vcm1hbCBiZWhhdmlvciBpZiBhbGwgb2YgdGhlIGxpc3RlZCBjb25kaXRpb25zIGFyZSB0cnVlLgorIyAtIENhc2UgZGlzdGluY3Rpb25zIGluIHRoZSBjb25kaXRpb24gbGlzdCBhcmUgbm90IHNpZ25pZmljYW50LgorIyAtIENvbmRpdGlvbnMgcHJlY2VkZWQgYnkgIk5PVF8iIHJlcHJlc2VudCB0aGUgbmVnYXRpb24gb2YgdGhlIGNvbmRpdGlvbi4KKyMgLSBBIGNhc2VkIGxldHRlciBpcyBhbnkgY2hhcmFjdGVyIHdpdGggZ2VuZXJhbCBjYXRlZ29yeSA9IExsIG9yIExvIG9yIEx0CisjIC0gQW4gaWdub3JhYmxlIHNlcXVlbmNlIGlzIGEgc2VxdWVuY2Ugb2YgKnplcm8qIG9yIG1vcmUgY2hhcmFjdGVycyBmcm9tCisjICAgIHRoZSBzZXQge0hZUEhFTiwgU09GVCBIWVBIRU4sIGdlbmVyYWwgY2F0ZWdvcnkgPSBNbn0uCisjCisjIEEgbG9jYWxlIGlzIGRlZmluZWQgYXM6CisjIDxsb2NhbGU+IDo9IDxJU09fNjM5X2NvZGU+ICggIl8iIDxJU09fMzE2Nl9jb2RlPiAoICJfIiA8dmFyaWFudD4gKT8gKT8KKyMgPElTT18zMTY2X2NvZGU+IDo9IDItbGV0dGVyIElTTyBjb3VudHJ5IGNvZGUsCisjIDxJU09fNjM5X2NvZGU+IDo9ICAyLWxldHRlciBJU08gbGFuZ3VhZ2UgY29kZQorIworIyBBIGNvbnRleHQgaXMgYSBsb2NhbGUgb3Igb25lIG9mIHRoZSBmb2xsb3dpbmcgY2hvaWNlczoKKyMgICBDRklOQUw6ICAgICAgVGhlIGNoYXJhY3RlciBpcyBub3QgZm9sbG93ZWQgYnkgYSBzZXF1ZW5jZSBjb25zaXN0aW5nIG9mCisjICAgICAgICAgICAgICAgIGFuIGlnbm9yYWJsZSBzZXF1ZW5jZSBhbmQgdGhlbiBhIGNhc2VkIGxldHRlci4KKyMgICBDSU5JVElBTDogICAgVGhlIGNoYXJhY3RlciBpcyBub3QgcHJlY2VkZWQgYnkgYSBzZXF1ZW5jZSBjb25zaXN0aW5nIG9mCisjICAgICAgICAgICAgICAgIGEgY2FzZWQgbGV0dGVyIGFuZCBhbiBpZ25vcmFibGUgc2VxdWVuY2UuCisjICAgRklOQUxfU0lHTUE6IENGSU5BTCBhbmQgTk9UX0NJTklUSUFMCisjICAgVFlQRV9pOiAgICAgIFRoZSBjaGFyYWN0ZXIgaXMgImkiICgwMDY5KSwgImoiICgwMDZBKSwKKyMgICAgICAgICAgICAgICAgb3IgaGFzIGEgY2Fub25pY2FsIGRlY29tcG9zaXRpb24gdGhhdCBiZWdpbnMgd2l0aCBhbiAiaSIgb3IgImoiCisjICAgICAgICAgICAgICAgIGJ1dCBoYXMgbm8gY29tYmluaW5nIGNoYXJhY3RlcnMgYWJvdmUgKGkuZS4sIGktb2dvbmVrICgwMTJGKSwKKyMgICAgICAgICAgICAgICAgaS10aWxkZS1iZWxvdyAoMUUyRCksIG9yIGktZG90LWJlbG93ICgxRUNCKSkuCisjICAgQUZURVJfaTogICAgIFRoZSBsYXN0IHByZWNlZGluZyBiYXNlIGNoYXJhY3RlciB3YXMgVFlQRV9pLCBhbmQKKyMgICAgICAgICAgICAgICAgbm8gY29tYmluaW5nIGNoYXJhY3RlciBjbGFzcyAyMzAgKGFib3ZlKSBoYXMgaW50ZXJ2ZW5lZC4KKyMgICBNT1JFX0FCT1ZFOiAgVGhlIGNoYXJhY3RlciBpcyBmb2xsb3dlZCBieSBvbmUgb3IgbW9yZSBjaGFyYWN0ZXJzIG9mCisjICAgICAgICAgICAgICAgIGNvbWJpbmluZyBjbGFzcyAyMzAgKEFCT1ZFKSBpbiB0aGUgY29tYmluaW5nIGNoYXJhY3RlciBzZXF1ZW5jZQorIworIyBPdGhlciB0aGFuIGFzIHVzZWQgdG8gc2VwYXJhdGUgZWxlbWVudHMsIHNwYWNlcyBhcmUgdG8gYmUgaWdub3JlZC4KKyMKKyMgUGFyc2VycyBvZiB0aGlzIGZpbGUgbXVzdCBiZSBwcmVwYXJlZCB0byBkZWFsIGZ1dHVyZSBhZGRpdGlvbnMgdG8gdGhpcyBmb3JtYXQ6CisjICAqIEFkZGl0aW9uYWwgY29udGV4dHMKKyMgICogQWRkaXRpb25hbCBmaWVsZHMKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyBVbmNvbmRpdGlvbmFsIG1hcHBpbmdzCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyMgVGhlIEdlcm1hbiBlcy16ZWQgaXMgc3BlY2lhbC0tdGhlIG5vcm1hbCBtYXBwaW5nIGlzIHRvIFNTLgorIyBOb3RlOiB0aGUgdGl0bGVjYXNlIHNob3VsZCBuZXZlciBvY2N1ciBpbiBwcmFjdGljZS4gSXQgaXMgZXF1YWwgdG8gdGl0bGVjYXNlKHVwcGVyY2FzZSg8ZXMtemVkPikpCisKKzAwREY7IDAwREY7IDAwNTMgMDA3MzsgMDA1MyAwMDUzOyAjIExBVElOIFNNQUxMIExFVFRFUiBTSEFSUCBTCisKKyMgTGlnYXR1cmVzCisKK0ZCMDA7IEZCMDA7IDAwNDYgMDA2NjsgMDA0NiAwMDQ2OyAjIExBVElOIFNNQUxMIExJR0FUVVJFIEZGCitGQjAxOyBGQjAxOyAwMDQ2IDAwNjk7IDAwNDYgMDA0OTsgIyBMQVRJTiBTTUFMTCBMSUdBVFVSRSBGSQorRkIwMjsgRkIwMjsgMDA0NiAwMDZDOyAwMDQ2IDAwNEM7ICMgTEFUSU4gU01BTEwgTElHQVRVUkUgRkwKK0ZCMDM7IEZCMDM7IDAwNDYgMDA2NiAwMDY5OyAwMDQ2IDAwNDYgMDA0OTsgIyBMQVRJTiBTTUFMTCBMSUdBVFVSRSBGRkkKK0ZCMDQ7IEZCMDQ7IDAwNDYgMDA2NiAwMDZDOyAwMDQ2IDAwNDYgMDA0QzsgIyBMQVRJTiBTTUFMTCBMSUdBVFVSRSBGRkwKK0ZCMDU7IEZCMDU7IDAwNTMgMDA3NDsgMDA1MyAwMDU0OyAjIExBVElOIFNNQUxMIExJR0FUVVJFIExPTkcgUyBUCitGQjA2OyBGQjA2OyAwMDUzIDAwNzQ7IDAwNTMgMDA1NDsgIyBMQVRJTiBTTUFMTCBMSUdBVFVSRSBTVAorCiswNTg3OyAwNTg3OyAwNTM1IDA1ODI7IDA1MzUgMDU1MjsgIyBBUk1FTklBTiBTTUFMTCBMSUdBVFVSRSBFQ0ggWUlXTgorRkIxMzsgRkIxMzsgMDU0NCAwNTc2OyAwNTQ0IDA1NDY7ICMgQVJNRU5JQU4gU01BTEwgTElHQVRVUkUgTUVOIE5PVworRkIxNDsgRkIxNDsgMDU0NCAwNTY1OyAwNTQ0IDA1MzU7ICMgQVJNRU5JQU4gU01BTEwgTElHQVRVUkUgTUVOIEVDSAorRkIxNTsgRkIxNTsgMDU0NCAwNTZCOyAwNTQ0IDA1M0I7ICMgQVJNRU5JQU4gU01BTEwgTElHQVRVUkUgTUVOIElOSQorRkIxNjsgRkIxNjsgMDU0RSAwNTc2OyAwNTRFIDA1NDY7ICMgQVJNRU5JQU4gU01BTEwgTElHQVRVUkUgVkVXIE5PVworRkIxNzsgRkIxNzsgMDU0NCAwNTZEOyAwNTQ0IDA1M0Q7ICMgQVJNRU5JQU4gU01BTEwgTElHQVRVUkUgTUVOIFhFSAorCisjIE5vIGNvcnJlc3BvbmRpbmcgdXBwZXJjYXNlIHByZWNvbXBvc2VkIGNoYXJhY3RlcgorCiswMTQ5OyAwMTQ5OyAwMkJDIDAwNEU7IDAyQkMgMDA0RTsgIyBMQVRJTiBTTUFMTCBMRVRURVIgTiBQUkVDRURFRCBCWSBBUE9TVFJPUEhFCiswMzkwOyAwMzkwOyAwMzk5IDAzMDggMDMwMTsgMDM5OSAwMzA4IDAzMDE7ICMgR1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBESUFMWVRJS0EgQU5EIFRPTk9TCiswM0IwOyAwM0IwOyAwM0E1IDAzMDggMDMwMTsgMDNBNSAwMzA4IDAzMDE7ICMgR1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBESUFMWVRJS0EgQU5EIFRPTk9TCiswMUYwOyAwMUYwOyAwMDRBIDAzMEM7IDAwNEEgMDMwQzsgIyBMQVRJTiBTTUFMTCBMRVRURVIgSiBXSVRIIENBUk9OCisxRTk2OyAxRTk2OyAwMDQ4IDAzMzE7IDAwNDggMDMzMTsgIyBMQVRJTiBTTUFMTCBMRVRURVIgSCBXSVRIIExJTkUgQkVMT1cKKzFFOTc7IDFFOTc7IDAwNTQgMDMwODsgMDA1NCAwMzA4OyAjIExBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggRElBRVJFU0lTCisxRTk4OyAxRTk4OyAwMDU3IDAzMEE7IDAwNTcgMDMwQTsgIyBMQVRJTiBTTUFMTCBMRVRURVIgVyBXSVRIIFJJTkcgQUJPVkUKKzFFOTk7IDFFOTk7IDAwNTkgMDMwQTsgMDA1OSAwMzBBOyAjIExBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggUklORyBBQk9WRQorMUU5QTsgMUU5QTsgMDA0MSAwMkJFOyAwMDQxIDAyQkU7ICMgTEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBSSUdIVCBIQUxGIFJJTkcKKzFGNTA7IDFGNTA7IDAzQTUgMDMxMzsgMDNBNSAwMzEzOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggUFNJTEkKKzFGNTI7IDFGNTI7IDAzQTUgMDMxMyAwMzAwOyAwM0E1IDAzMTMgMDMwMDsgIyBHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIFBTSUxJIEFORCBWQVJJQQorMUY1NDsgMUY1NDsgMDNBNSAwMzEzIDAzMDE7IDAzQTUgMDMxMyAwMzAxOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggUFNJTEkgQU5EIE9YSUEKKzFGNTY7IDFGNTY7IDAzQTUgMDMxMyAwMzQyOyAwM0E1IDAzMTMgMDM0MjsgIyBHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSQorMUZCNjsgMUZCNjsgMDM5MSAwMzQyOyAwMzkxIDAzNDI7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUEVSSVNQT01FTkkKKzFGQzY7IDFGQzY7IDAzOTcgMDM0MjsgMDM5NyAwMzQyOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQRVJJU1BPTUVOSQorMUZEMjsgMUZEMjsgMDM5OSAwMzA4IDAzMDA7IDAzOTkgMDMwOCAwMzAwOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggRElBTFlUSUtBIEFORCBWQVJJQQorMUZEMzsgMUZEMzsgMDM5OSAwMzA4IDAzMDE7IDAzOTkgMDMwOCAwMzAxOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggRElBTFlUSUtBIEFORCBPWElBCisxRkQ2OyAxRkQ2OyAwMzk5IDAzNDI7IDAzOTkgMDM0MjsgIyBHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIFBFUklTUE9NRU5JCisxRkQ3OyAxRkQ3OyAwMzk5IDAzMDggMDM0MjsgMDM5OSAwMzA4IDAzNDI7ICMgR1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBESUFMWVRJS0EgQU5EIFBFUklTUE9NRU5JCisxRkUyOyAxRkUyOyAwM0E1IDAzMDggMDMwMDsgMDNBNSAwMzA4IDAzMDA7ICMgR1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBESUFMWVRJS0EgQU5EIFZBUklBCisxRkUzOyAxRkUzOyAwM0E1IDAzMDggMDMwMTsgMDNBNSAwMzA4IDAzMDE7ICMgR1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBESUFMWVRJS0EgQU5EIE9YSUEKKzFGRTQ7IDFGRTQ7IDAzQTEgMDMxMzsgMDNBMSAwMzEzOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBSSE8gV0lUSCBQU0lMSQorMUZFNjsgMUZFNjsgMDNBNSAwMzQyOyAwM0E1IDAzNDI7ICMgR1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBQRVJJU1BPTUVOSQorMUZFNzsgMUZFNzsgMDNBNSAwMzA4IDAzNDI7IDAzQTUgMDMwOCAwMzQyOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggRElBTFlUSUtBIEFORCBQRVJJU1BPTUVOSQorMUZGNjsgMUZGNjsgMDNBOSAwMzQyOyAwM0E5IDAzNDI7ICMgR1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUEVSSVNQT01FTkkKKworIyBJTVBPUlRBTlQtd2hlbiBjYXBpdGFsaXppbmcgaW90YS1zdWJzY3JpcHQgKDAzNDUpCisjICBJdCBNVVNUIGJlIGluIG5vcm1hbGl6ZWQgZm9ybS0tbW92ZWQgdG8gdGhlIGVuZCBvZiBhbnkgc2VxdWVuY2Ugb2YgY29tYmluaW5nIG1hcmtzLgorIyAgVGhpcyBpcyBiZWNhdXNlIGxvZ2ljYWxseSBpdCByZXByZXNlbnRzIGEgZm9sbG93aW5nIGJhc2UgY2hhcmFjdGVyIQorIyAgRS5nLiA8aW90YV9zdWJzY3JpcHQ+ICg8TW4+IHwgPE1jPiB8IDxNZT4pKyA9PiAoPE1uPiB8IDxNYz4gfCA8TWU+KSsgPGlvdGFfc3Vic2NyaXB0PgorIyBJdCBzaG91bGQgbmV2ZXIgYmUgdGhlIGZpcnN0IGNoYXJhY3RlciBpbiBhIHdvcmQsIHNvIGluIHRpdGxlY2FzaW5nIGl0IGNhbiBiZSBsZWZ0IGFzIGlzLgorCisjIFRoZSBmb2xsb3dpbmcgY2FzZXMgYXJlIGFscmVhZHkgaW4gdGhlIFVuaWNvZGVEYXRhIGZpbGUsIHNvIGFyZSBvbmx5IGNvbW1lbnRlZCBoZXJlLgorCisjIDAzNDU7IDAzNDU7IDAzNDU7IDAzOTk7ICMgQ09NQklOSU5HIEdSRUVLIFlQT0dFR1JBTU1FTkkKKworIyBBbGwgbGV0dGVycyB3aXRoIFlQT0dFR1JBTU1FTkkgKGlvdGEtc3Vic2NyaXB0KSBvciBQUk9TR0VHUkFNTUVOSSAoaW90YSBhZHNjcmlwdCkKKyMgaGF2ZSBzcGVjaWFsIHVwcGVyY2FzZXMuCisjIE5vdGU6IGNoYXJhY3RlcnMgd2l0aCBQUk9TR0VHUkFNTUVOSSBhcmUgYWN0dWFsbHkgdGl0bGVjYXNlLCBub3QgdXBwZXJjYXNlIQorCisxRjgwOyAxRjgwOyAxRjg4OyAxRjA4IDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFlQT0dFR1JBTU1FTkkKKzFGODE7IDFGODE7IDFGODk7IDFGMDkgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUY4MjsgMUY4MjsgMUY4QTsgMUYwQSAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUY4MzsgMUY4MzsgMUY4QjsgMUYwQiAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUY4NDsgMUY4NDsgMUY4QzsgMUYwQyAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBPWElBIEFORCBZUE9HRUdSQU1NRU5JCisxRjg1OyAxRjg1OyAxRjhEOyAxRjBEIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGODY7IDFGODY7IDFGOEU7IDFGMEUgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkkKKzFGODc7IDFGODc7IDFGOEY7IDFGMEYgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkkKKzFGODg7IDFGODA7IDFGODg7IDFGMDggMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBQUk9TR0VHUkFNTUVOSQorMUY4OTsgMUY4MTsgMUY4OTsgMUYwOSAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFBST1NHRUdSQU1NRU5JCisxRjhBOyAxRjgyOyAxRjhBOyAxRjBBIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgVkFSSUEgQU5EIFBST1NHRUdSQU1NRU5JCisxRjhCOyAxRjgzOyAxRjhCOyAxRjBCIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgVkFSSUEgQU5EIFBST1NHRUdSQU1NRU5JCisxRjhDOyAxRjg0OyAxRjhDOyAxRjBDIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgT1hJQSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGOEQ7IDFGODU7IDFGOEQ7IDFGMEQgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBPWElBIEFORCBQUk9TR0VHUkFNTUVOSQorMUY4RTsgMUY4NjsgMUY4RTsgMUYwRSAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JIEFORCBQUk9TR0VHUkFNTUVOSQorMUY4RjsgMUY4NzsgMUY4RjsgMUYwRiAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JIEFORCBQUk9TR0VHUkFNTUVOSQorMUY5MDsgMUY5MDsgMUY5ODsgMUYyOCAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgWVBPR0VHUkFNTUVOSQorMUY5MTsgMUY5MTsgMUY5OTsgMUYyOSAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUY5MjsgMUY5MjsgMUY5QTsgMUYyQSAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGOTM7IDFGOTM7IDFGOUI7IDFGMkIgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JCisxRjk0OyAxRjk0OyAxRjlDOyAxRjJDIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBPWElBIEFORCBZUE9HRUdSQU1NRU5JCisxRjk1OyAxRjk1OyAxRjlEOyAxRjJEIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBPWElBIEFORCBZUE9HRUdSQU1NRU5JCisxRjk2OyAxRjk2OyAxRjlFOyAxRjJFIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSQorMUY5NzsgMUY5NzsgMUY5RjsgMUYyRiAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkkKKzFGOTg7IDFGOTA7IDFGOTg7IDFGMjggMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGOTk7IDFGOTE7IDFGOTk7IDFGMjkgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGOUE7IDFGOTI7IDFGOUE7IDFGMkEgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgVkFSSUEgQU5EIFBST1NHRUdSQU1NRU5JCisxRjlCOyAxRjkzOyAxRjlCOyAxRjJCIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFZBUklBIEFORCBQUk9TR0VHUkFNTUVOSQorMUY5QzsgMUY5NDsgMUY5QzsgMUYyQyAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBPWElBIEFORCBQUk9TR0VHUkFNTUVOSQorMUY5RDsgMUY5NTsgMUY5RDsgMUYyRCAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBPWElBIEFORCBQUk9TR0VHUkFNTUVOSQorMUY5RTsgMUY5NjsgMUY5RTsgMUYyRSAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGOUY7IDFGOTc7IDFGOUY7IDFGMkYgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkkgQU5EIFBST1NHRUdSQU1NRU5JCisxRkEwOyAxRkEwOyAxRkE4OyAxRjY4IDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFlQT0dFR1JBTU1FTkkKKzFGQTE7IDFGQTE7IDFGQTk7IDFGNjkgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUZBMjsgMUZBMjsgMUZBQTsgMUY2QSAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUZBMzsgMUZBMzsgMUZBQjsgMUY2QiAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUZBNDsgMUZBNDsgMUZBQzsgMUY2QyAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBPWElBIEFORCBZUE9HRUdSQU1NRU5JCisxRkE1OyAxRkE1OyAxRkFEOyAxRjZEIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGQTY7IDFGQTY7IDFGQUU7IDFGNkUgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkkKKzFGQTc7IDFGQTc7IDFGQUY7IDFGNkYgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkkKKzFGQTg7IDFGQTA7IDFGQTg7IDFGNjggMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBQUk9TR0VHUkFNTUVOSQorMUZBOTsgMUZBMTsgMUZBOTsgMUY2OSAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFBST1NHRUdSQU1NRU5JCisxRkFBOyAxRkEyOyAxRkFBOyAxRjZBIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgVkFSSUEgQU5EIFBST1NHRUdSQU1NRU5JCisxRkFCOyAxRkEzOyAxRkFCOyAxRjZCIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgVkFSSUEgQU5EIFBST1NHRUdSQU1NRU5JCisxRkFDOyAxRkE0OyAxRkFDOyAxRjZDIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgT1hJQSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGQUQ7IDFGQTU7IDFGQUQ7IDFGNkQgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBPWElBIEFORCBQUk9TR0VHUkFNTUVOSQorMUZBRTsgMUZBNjsgMUZBRTsgMUY2RSAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JIEFORCBQUk9TR0VHUkFNTUVOSQorMUZBRjsgMUZBNzsgMUZBRjsgMUY2RiAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JIEFORCBQUk9TR0VHUkFNTUVOSQorCisxRkIzOyAxRkIzOyAxRkJDOyAwMzkxIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggWVBPR0VHUkFNTUVOSQorMUZCQzsgMUZCMzsgMUZCQzsgMDM5MSAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFJPU0dFR1JBTU1FTkkKKzFGQzM7IDFGQzM7IDFGQ0M7IDAzOTcgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggWVBPR0VHUkFNTUVOSQorMUZDQzsgMUZDMzsgMUZDQzsgMDM5NyAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBST1NHRUdSQU1NRU5JCisxRkYzOyAxRkYzOyAxRkZDOyAwM0E5IDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggWVBPR0VHUkFNTUVOSQorMUZGQzsgMUZGMzsgMUZGQzsgMDNBOSAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFJPU0dFR1JBTU1FTkkKKworIyBTb21lIGNoYXJhY3RlcnMgd2l0aCBZUE9HRUdSQU1NRU5JIGFyZSBhbHNvIGhhdmUgbm8gY29ycmVzcG9uZGluZyB0aXRsZWNhc2VzCisKKzFGQjI7IDFGQjI7IDFGQkEgMDM0NTsgMUZCQSAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JCisxRkI0OyAxRkI0OyAwMzg2IDAzNDU7IDAzODYgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBPWElBIEFORCBZUE9HRUdSQU1NRU5JCisxRkMyOyAxRkMyOyAxRkNBIDAzNDU7IDFGQ0EgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGQzQ7IDFGQzQ7IDAzODkgMDM0NTsgMDM4OSAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBPWElBIEFORCBZUE9HRUdSQU1NRU5JCisxRkYyOyAxRkYyOyAxRkZBIDAzNDU7IDFGRkEgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUZGNDsgMUZGNDsgMDM4RiAwMzQ1OyAwMzhGIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggT1hJQSBBTkQgWVBPR0VHUkFNTUVOSQorCisxRkI3OyAxRkI3OyAwMzkxIDAzNDIgMDM0NTsgMDM5MSAwMzQyIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkkKKzFGQzc7IDFGQzc7IDAzOTcgMDM0MiAwMzQ1OyAwMzk3IDAzNDIgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkkKKzFGRjc7IDFGRjc7IDAzQTkgMDM0MiAwMzQ1OyAwM0E5IDAzNDIgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSQorCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjIENvbmRpdGlvbmFsIG1hcHBpbmdzCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyMgU3BlY2lhbCBjYXNlIGZvciBmaW5hbCBmb3JtIG9mIHNpZ21hCisKKzAzQTM7IDAzQzI7IDAzQTM7IDAzQTM7IEZJTkFMX1NJR01BOyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIFNJR01BCisKKyMgTm90ZTogdGhlIGZvbGxvd2luZyBjYXNlcyBmb3Igbm9uLWZpbmFsIGFyZSBhbHJlYWR5IGluIHRoZSBVbmljb2RlRGF0YSBmaWxlLgorCisjIDAzQTM7IDAzQzM7IDAzQTM7IDAzQTM7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgU0lHTUEKKyMgMDNDMzsgMDNDMzsgMDNBMzsgMDNBMzsgIyBHUkVFSyBTTUFMTCBMRVRURVIgU0lHTUEKKyMgMDNDMjsgMDNDMjsgMDNBMzsgMDNBMzsgIyBHUkVFSyBTTUFMTCBMRVRURVIgRklOQUwgU0lHTUEKKworIyBOb3RlOiB0aGUgZm9sbG93aW5nIGNhc2VzIGFyZSBub3QgaW5jbHVkZWQsIHNpbmNlIHRoZXkgd291bGQgY2FzZS1mb2xkIGluIGxvd2VyY2FzaW5nCisKKyMgMDNDMzsgMDNDMjsgMDNBMzsgMDNBMzsgRklOQUxfU0lHTUE7ICMgR1JFRUsgU01BTEwgTEVUVEVSIFNJR01BCisjIDAzQzI7IDAzQzM7IDAzQTM7IDAzQTM7IE5PVF9GSU5BTF9TSUdNQTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgRklOQUwgU0lHTUEKKworIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyBMb2NhbGUtc2Vuc2l0aXZlIG1hcHBpbmdzCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyMgTGl0aHVhbmlhbgorCisjIExpdGh1YW5pYW4gcmV0YWlucyB0aGUgZG90IGluIGEgbG93ZXJjYXNlIGkgd2hlbiBmb2xsb3dlZCBieSBhY2NlbnRzLgorCisjIFJlbW92ZSBET1QgQUJPVkUgYWZ0ZXIgImkiIHdpdGggdXBwZXIgb3IgdGl0bGVjYXNlCisKKzAzMDc7IDAzMDc7IDsgOyBsdCBBRlRFUl9pICMgQ09NQklOSU5HIERPVCBBQk9WRQorCisjIEludHJvZHVjZSBhbiBleHBsaWNpdCBkb3QgYWJvdmUgd2hlbiBsb3dlcmNhc2luZyBjYXBpdGFsIEkncyBhbmQgSidzCisjIHdoZW5ldmVyIHRoZXJlIGFyZSBtb3JlIGFjY2VudHMgYWJvdmUKKyMgKG9mIHRoZSBhY2NlbnRzIHVzZWQgaW4gTGl0aHVhbmlhbjogZ3JhdmUsIGFjdXRlLCB0aWxkZSBhYm92ZSwgYW5kIG9nb25laykKKworMDA0OTsgMDA2OSAwMzA3OyAwMDQ5OyAwMDQ5OyBsdCBNT1JFX0FCT1ZFICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSQorMDA0QTsgMDA2QSAwMzA3OyAwMDRBOyAwMDRBOyBsdCBNT1JFX0FCT1ZFICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSgorMDEyRTsgMDEyRiAwMzA3OyAwMTJFOyAwMTJFOyBsdCBNT1JFX0FCT1ZFICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIE9HT05FSworMDBDQzsgMDA2OSAwMzA3IDAzMDA7IDAwQ0M7IDAwQ0M7IGx0ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIEdSQVZFCiswMENEOyAwMDY5IDAzMDcgMDMwMTsgMDBDRDsgMDBDRDsgbHQgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggQUNVVEUKKzAxMjg7IDAwNjkgMDMwNyAwMzAzOyAwMTI4OyAwMTI4OyBsdCAjIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBUSUxERQorCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyMgVHVya2lzaCBhbmQgQXplcmkKKworIyBJIGFuZCBpLWRvdGxlc3M7IEktZG90IGFuZCBpIGFyZSBjYXNlIHBhaXJzIGluIFR1cmtpc2ggYW5kIEF6ZXJpCisjIFRoZSBmb2xsb3dpbmcgcnVsZXMgaGFuZGxlIHRob3NlIGNhc2VzLgorCisjIFJlbW92ZSBzcHVyaW91cyBkb3QgYWJvdmUgc21hbGwgaSdzIHdoZW4gbG93ZXJjYXNpbmcsIGlmIHRoZXJlIGFyZSBubyBtb3JlIGFjY2VudHMgYWJvdmU6CisKKzAzMDc7IDsgMDMwNzsgMDMwNzsgdHIgQUZURVJfaSBOT1RfTU9SRV9BQk9WRSAjIENPTUJJTklORyBET1QgQUJPVkUKKzAzMDc7IDsgMDMwNzsgMDMwNzsgYXogQUZURVJfaSBOT1RfTU9SRV9BQk9WRSAjIENPTUJJTklORyBET1QgQUJPVkUKKworIyBGaXggY2FzZSBwYWlycworCiswMDQ5OyAwMTMxOyAwMDQ5OyAwMDQ5OyB0cjsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJCiswMDY5OyAwMDY5OyAwMTMwOyAwMTMwOyB0cjsgIyBMQVRJTiBTTUFMTCBMRVRURVIgSQorCiswMDQ5OyAwMTMxOyAwMDQ5OyAwMDQ5OyBhejsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJCiswMDY5OyAwMDY5OyAwMTMwOyAwMTMwOyBhejsgIyBMQVRJTiBTTUFMTCBMRVRURVIgSQorCisjIE5vdGU6IHRoZSBmb2xsb3dpbmcgY2FzZXMgYXJlIGFscmVhZHkgaW4gdGhlIFVuaWNvZGVEYXRhIGZpbGUuCisKKyMgMDEzMTsgMDEzMTsgMDA0OTsgMDA0OTsgdHI7ICMgTEFUSU4gU01BTEwgTEVUVEVSIERPVExFU1MgSQorIyAwMTMwOyAwMDY5OyAwMTMwOyAwMTMwOyB0cjsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRE9UIEFCT1ZFCisKKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvU3BlY2lhbENhc2luZy50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9TcGVjaWFsQ2FzaW5nLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mMjVhYzliCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvU3BlY2lhbENhc2luZy50eHQKQEAgLTAsMCArMSwyNTUgQEAKKyMgU3BlY2lhbENhc2luZy0zLjIuMC50eHQKKyMgRGF0ZTogMjAwMi0wMy0xOSwyMzozMTo0MiBHTVQgW01EXQorIworIyBTcGVjaWFsIENhc2luZyBQcm9wZXJ0aWVzCisjCisjIFRoaXMgZmlsZSBpcyBhIHN1cHBsZW1lbnQgdG8gdGhlIFVuaWNvZGVEYXRhIGZpbGUuCisjIEl0IGNvbnRhaW5zIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNhc2luZyBvZiBVbmljb2RlIGNoYXJhY3RlcnMuCisjIChGb3IgY29tcGF0aWJpbGl0eSwgdGhlIFVuaWNvZGVEYXRhLnR4dCBmaWxlIG9ubHkgY29udGFpbnMgY2FzZSBtYXBwaW5ncyBmb3IKKyMgY2hhcmFjdGVycyB3aGVyZSB0aGV5IGFyZSAxLTEsIGFuZCBkb2VzIG5vdCBoYXZlIGxvY2FsZS1zcGVjaWZpYyBtYXBwaW5ncy4pCisjIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUKKyMgVVRSICMyMSBDYXNlIE1hcHBpbmdzLCBhdCBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjIxLworIworIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyBGb3JtYXQKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgVGhlIGVudHJpZXMgaW4gdGhpcyBmaWxlIGFyZSBpbiB0aGUgZm9sbG93aW5nIG1hY2hpbmUtcmVhZGFibGUgZm9ybWF0OgorIworIyA8Y29kZT47IDxsb3dlcj4gOyA8dGl0bGU+IDsgPHVwcGVyPiA7ICg8Y29uZGl0aW9uX2xpc3Q+IDspPyAjIDxjb21tZW50PgorIworIyA8Y29kZT4sIDxsb3dlcj4sIDx0aXRsZT4sIGFuZCA8dXBwZXI+IHByb3ZpZGUgY2hhcmFjdGVyIHZhbHVlcyBpbiBoZXguIElmIHRoZXJlIGlzIG1vcmUgdGhhbgorIyBvbmUgY2hhcmFjdGVyLCB0aGV5IGFyZSBzZXBhcmF0ZWQgYnkgc3BhY2VzLiBPdGhlciB0aGFuIGFzIHVzZWQgdG8gc2VwYXJhdGUgZWxlbWVudHMsCisjIHNwYWNlcyBhcmUgdG8gYmUgaWdub3JlZC4KKyMKKyMgVGhlIDxjb25kaXRpb25fbGlzdD4gaXMgb3B0aW9uYWwuIFdoZXJlIHByZXNlbnQsIGl0IGNvbnNpc3RzIG9mIG9uZSBvciBtb3JlIGxvY2FsZXMgb3IgY29udGV4dHMsCisjIHNlcGFyYXRlZCBieSBzcGFjZXMuIEluIHRoZXNlIGNvbmRpdGlvbnM6CisjIC0gQSBjb25kaXRpb24gbGlzdCBvdmVycmlkZXMgdGhlIG5vcm1hbCBiZWhhdmlvciBpZiBhbGwgb2YgdGhlIGxpc3RlZCBjb25kaXRpb25zIGFyZSB0cnVlLgorIyAtIFRoZSBjb250ZXh0IGlzIGFsd2F5cyB0aGUgY29udGV4dCBvZiB0aGUgY2hhcmFjdGVycyBpbiB0aGUgb3JpZ2luYWwgc3RyaW5nLAorIyAgIE5PVCBpbiB0aGUgcmVzdWx0aW5nIHN0cmluZy4KKyMgLSBDYXNlIGRpc3RpbmN0aW9ucyBpbiB0aGUgY29uZGl0aW9uIGxpc3QgYXJlIG5vdCBzaWduaWZpY2FudC4KKyMgLSBDb25kaXRpb25zIHByZWNlZGVkIGJ5ICJOb3RfIiByZXByZXNlbnQgdGhlIG5lZ2F0aW9uIG9mIHRoZSBjb25kaXRpb24uCisjCisjIEEgbG9jYWxlIGlzIGRlZmluZWQgYXM6CisjIDxsb2NhbGU+IDo9IDxJU09fNjM5X2NvZGU+ICggIl8iIDxJU09fMzE2Nl9jb2RlPiAoICJfIiA8dmFyaWFudD4gKT8gKT8KKyMgPElTT18zMTY2X2NvZGU+IDo9IDItbGV0dGVyIElTTyBjb3VudHJ5IGNvZGUsCisjIDxJU09fNjM5X2NvZGU+IDo9ICAyLWxldHRlciBJU08gbGFuZ3VhZ2UgY29kZQorIworIyBBIGNvbnRleHQgaXMgb25lIG9mIHRoZSBmb2xsb3dpbmcsIGFzIGRlZmluZWQgaW4gVUFYICMyMTogQ2FzZSBNYXBwaW5nczoKKyMgICBGaW5hbF9TaWdtYSwgQWZ0ZXJfU29mdF9Eb3R0ZWQsIE1vcmVfQWJvdmUsIEJlZm9yZV9Eb3QKKyMKKyMgUGFyc2VycyBvZiB0aGlzIGZpbGUgbXVzdCBiZSBwcmVwYXJlZCB0byBkZWFsIGZ1dHVyZSBhZGRpdGlvbnMgdG8gdGhpcyBmb3JtYXQ6CisjICAqIEFkZGl0aW9uYWwgY29udGV4dHMKKyMgICogQWRkaXRpb25hbCBmaWVsZHMKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyBVbmNvbmRpdGlvbmFsIG1hcHBpbmdzCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyMgVGhlIEdlcm1hbiBlcy16ZWQgaXMgc3BlY2lhbC0tdGhlIG5vcm1hbCBtYXBwaW5nIGlzIHRvIFNTLgorIyBOb3RlOiB0aGUgdGl0bGVjYXNlIHNob3VsZCBuZXZlciBvY2N1ciBpbiBwcmFjdGljZS4gSXQgaXMgZXF1YWwgdG8gdGl0bGVjYXNlKHVwcGVyY2FzZSg8ZXMtemVkPikpCisKKzAwREY7IDAwREY7IDAwNTMgMDA3MzsgMDA1MyAwMDUzOyAjIExBVElOIFNNQUxMIExFVFRFUiBTSEFSUCBTCisKKyMgUHJlc2VydmUgY2Fub25pY2FsIGVxdWl2YWxlbmNlIGZvciBJIHdpdGggZG90LiBUdXJraWMgaXMgaGFuZGxlZCBiZWxvdy4KKworMDEzMDsgMDA2OSAwMzA3OyAwMTMwOyAwMTMwOyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBET1QgQUJPVkUKKworIyBMaWdhdHVyZXMKKworRkIwMDsgRkIwMDsgMDA0NiAwMDY2OyAwMDQ2IDAwNDY7ICMgTEFUSU4gU01BTEwgTElHQVRVUkUgRkYKK0ZCMDE7IEZCMDE7IDAwNDYgMDA2OTsgMDA0NiAwMDQ5OyAjIExBVElOIFNNQUxMIExJR0FUVVJFIEZJCitGQjAyOyBGQjAyOyAwMDQ2IDAwNkM7IDAwNDYgMDA0QzsgIyBMQVRJTiBTTUFMTCBMSUdBVFVSRSBGTAorRkIwMzsgRkIwMzsgMDA0NiAwMDY2IDAwNjk7IDAwNDYgMDA0NiAwMDQ5OyAjIExBVElOIFNNQUxMIExJR0FUVVJFIEZGSQorRkIwNDsgRkIwNDsgMDA0NiAwMDY2IDAwNkM7IDAwNDYgMDA0NiAwMDRDOyAjIExBVElOIFNNQUxMIExJR0FUVVJFIEZGTAorRkIwNTsgRkIwNTsgMDA1MyAwMDc0OyAwMDUzIDAwNTQ7ICMgTEFUSU4gU01BTEwgTElHQVRVUkUgTE9ORyBTIFQKK0ZCMDY7IEZCMDY7IDAwNTMgMDA3NDsgMDA1MyAwMDU0OyAjIExBVElOIFNNQUxMIExJR0FUVVJFIFNUCisKKzA1ODc7IDA1ODc7IDA1MzUgMDU4MjsgMDUzNSAwNTUyOyAjIEFSTUVOSUFOIFNNQUxMIExJR0FUVVJFIEVDSCBZSVdOCitGQjEzOyBGQjEzOyAwNTQ0IDA1NzY7IDA1NDQgMDU0NjsgIyBBUk1FTklBTiBTTUFMTCBMSUdBVFVSRSBNRU4gTk9XCitGQjE0OyBGQjE0OyAwNTQ0IDA1NjU7IDA1NDQgMDUzNTsgIyBBUk1FTklBTiBTTUFMTCBMSUdBVFVSRSBNRU4gRUNICitGQjE1OyBGQjE1OyAwNTQ0IDA1NkI7IDA1NDQgMDUzQjsgIyBBUk1FTklBTiBTTUFMTCBMSUdBVFVSRSBNRU4gSU5JCitGQjE2OyBGQjE2OyAwNTRFIDA1NzY7IDA1NEUgMDU0NjsgIyBBUk1FTklBTiBTTUFMTCBMSUdBVFVSRSBWRVcgTk9XCitGQjE3OyBGQjE3OyAwNTQ0IDA1NkQ7IDA1NDQgMDUzRDsgIyBBUk1FTklBTiBTTUFMTCBMSUdBVFVSRSBNRU4gWEVICisKKyMgTm8gY29ycmVzcG9uZGluZyB1cHBlcmNhc2UgcHJlY29tcG9zZWQgY2hhcmFjdGVyCisKKzAxNDk7IDAxNDk7IDAyQkMgMDA0RTsgMDJCQyAwMDRFOyAjIExBVElOIFNNQUxMIExFVFRFUiBOIFBSRUNFREVEIEJZIEFQT1NUUk9QSEUKKzAzOTA7IDAzOTA7IDAzOTkgMDMwOCAwMzAxOyAwMzk5IDAzMDggMDMwMTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERJQUxZVElLQSBBTkQgVE9OT1MKKzAzQjA7IDAzQjA7IDAzQTUgMDMwOCAwMzAxOyAwM0E1IDAzMDggMDMwMTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIERJQUxZVElLQSBBTkQgVE9OT1MKKzAxRjA7IDAxRjA7IDAwNEEgMDMwQzsgMDA0QSAwMzBDOyAjIExBVElOIFNNQUxMIExFVFRFUiBKIFdJVEggQ0FST04KKzFFOTY7IDFFOTY7IDAwNDggMDMzMTsgMDA0OCAwMzMxOyAjIExBVElOIFNNQUxMIExFVFRFUiBIIFdJVEggTElORSBCRUxPVworMUU5NzsgMUU5NzsgMDA1NCAwMzA4OyAwMDU0IDAzMDg7ICMgTEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBESUFFUkVTSVMKKzFFOTg7IDFFOTg7IDAwNTcgMDMwQTsgMDA1NyAwMzBBOyAjIExBVElOIFNNQUxMIExFVFRFUiBXIFdJVEggUklORyBBQk9WRQorMUU5OTsgMUU5OTsgMDA1OSAwMzBBOyAwMDU5IDAzMEE7ICMgTEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBSSU5HIEFCT1ZFCisxRTlBOyAxRTlBOyAwMDQxIDAyQkU7IDAwNDEgMDJCRTsgIyBMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIFJJR0hUIEhBTEYgUklORworMUY1MDsgMUY1MDsgMDNBNSAwMzEzOyAwM0E1IDAzMTM7ICMgR1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBQU0lMSQorMUY1MjsgMUY1MjsgMDNBNSAwMzEzIDAzMDA7IDAzQTUgMDMxMyAwMzAwOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggUFNJTEkgQU5EIFZBUklBCisxRjU0OyAxRjU0OyAwM0E1IDAzMTMgMDMwMTsgMDNBNSAwMzEzIDAzMDE7ICMgR1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBQU0lMSSBBTkQgT1hJQQorMUY1NjsgMUY1NjsgMDNBNSAwMzEzIDAzNDI7IDAzQTUgMDMxMyAwMzQyOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JCisxRkI2OyAxRkI2OyAwMzkxIDAzNDI7IDAzOTEgMDM0MjsgIyBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQRVJJU1BPTUVOSQorMUZDNjsgMUZDNjsgMDM5NyAwMzQyOyAwMzk3IDAzNDI7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBFUklTUE9NRU5JCisxRkQyOyAxRkQyOyAwMzk5IDAzMDggMDMwMDsgMDM5OSAwMzA4IDAzMDA7ICMgR1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBESUFMWVRJS0EgQU5EIFZBUklBCisxRkQzOyAxRkQzOyAwMzk5IDAzMDggMDMwMTsgMDM5OSAwMzA4IDAzMDE7ICMgR1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBESUFMWVRJS0EgQU5EIE9YSUEKKzFGRDY7IDFGRDY7IDAzOTkgMDM0MjsgMDM5OSAwMzQyOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggUEVSSVNQT01FTkkKKzFGRDc7IDFGRDc7IDAzOTkgMDMwOCAwMzQyOyAwMzk5IDAzMDggMDM0MjsgIyBHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERJQUxZVElLQSBBTkQgUEVSSVNQT01FTkkKKzFGRTI7IDFGRTI7IDAzQTUgMDMwOCAwMzAwOyAwM0E1IDAzMDggMDMwMDsgIyBHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIERJQUxZVElLQSBBTkQgVkFSSUEKKzFGRTM7IDFGRTM7IDAzQTUgMDMwOCAwMzAxOyAwM0E1IDAzMDggMDMwMTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIERJQUxZVElLQSBBTkQgT1hJQQorMUZFNDsgMUZFNDsgMDNBMSAwMzEzOyAwM0ExIDAzMTM7ICMgR1JFRUsgU01BTEwgTEVUVEVSIFJITyBXSVRIIFBTSUxJCisxRkU2OyAxRkU2OyAwM0E1IDAzNDI7IDAzQTUgMDM0MjsgIyBHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIFBFUklTUE9NRU5JCisxRkU3OyAxRkU3OyAwM0E1IDAzMDggMDM0MjsgMDNBNSAwMzA4IDAzNDI7ICMgR1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBESUFMWVRJS0EgQU5EIFBFUklTUE9NRU5JCisxRkY2OyAxRkY2OyAwM0E5IDAzNDI7IDAzQTkgMDM0MjsgIyBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQRVJJU1BPTUVOSQorCisjIElNUE9SVEFOVC13aGVuIGNhcGl0YWxpemluZyBpb3RhLXN1YnNjcmlwdCAoMDM0NSkKKyMgIEl0IE1VU1QgYmUgaW4gbm9ybWFsaXplZCBmb3JtLS1tb3ZlZCB0byB0aGUgZW5kIG9mIGFueSBzZXF1ZW5jZSBvZiBjb21iaW5pbmcgbWFya3MuCisjICBUaGlzIGlzIGJlY2F1c2UgbG9naWNhbGx5IGl0IHJlcHJlc2VudHMgYSBmb2xsb3dpbmcgYmFzZSBjaGFyYWN0ZXIhCisjICBFLmcuIDxpb3RhX3N1YnNjcmlwdD4gKDxNbj4gfCA8TWM+IHwgPE1lPikrID0+ICg8TW4+IHwgPE1jPiB8IDxNZT4pKyA8aW90YV9zdWJzY3JpcHQ+CisjIEl0IHNob3VsZCBuZXZlciBiZSB0aGUgZmlyc3QgY2hhcmFjdGVyIGluIGEgd29yZCwgc28gaW4gdGl0bGVjYXNpbmcgaXQgY2FuIGJlIGxlZnQgYXMgaXMuCisKKyMgVGhlIGZvbGxvd2luZyBjYXNlcyBhcmUgYWxyZWFkeSBpbiB0aGUgVW5pY29kZURhdGEgZmlsZSwgc28gYXJlIG9ubHkgY29tbWVudGVkIGhlcmUuCisKKyMgMDM0NTsgMDM0NTsgMDM0NTsgMDM5OTsgIyBDT01CSU5JTkcgR1JFRUsgWVBPR0VHUkFNTUVOSQorCisjIEFsbCBsZXR0ZXJzIHdpdGggWVBPR0VHUkFNTUVOSSAoaW90YS1zdWJzY3JpcHQpIG9yIFBST1NHRUdSQU1NRU5JIChpb3RhIGFkc2NyaXB0KQorIyBoYXZlIHNwZWNpYWwgdXBwZXJjYXNlcy4KKyMgTm90ZTogY2hhcmFjdGVycyB3aXRoIFBST1NHRUdSQU1NRU5JIGFyZSBhY3R1YWxseSB0aXRsZWNhc2UsIG5vdCB1cHBlcmNhc2UhCisKKzFGODA7IDFGODA7IDFGODg7IDFGMDggMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgWVBPR0VHUkFNTUVOSQorMUY4MTsgMUY4MTsgMUY4OTsgMUYwOSAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBZUE9HRUdSQU1NRU5JCisxRjgyOyAxRjgyOyAxRjhBOyAxRjBBIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JCisxRjgzOyAxRjgzOyAxRjhCOyAxRjBCIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JCisxRjg0OyAxRjg0OyAxRjhDOyAxRjBDIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGODU7IDFGODU7IDFGOEQ7IDFGMEQgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgT1hJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUY4NjsgMUY4NjsgMUY4RTsgMUYwRSAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSQorMUY4NzsgMUY4NzsgMUY4RjsgMUYwRiAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSQorMUY4ODsgMUY4MDsgMUY4ODsgMUYwOCAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFBST1NHRUdSQU1NRU5JCisxRjg5OyAxRjgxOyAxRjg5OyAxRjA5IDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGOEE7IDFGODI7IDFGOEE7IDFGMEEgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBWQVJJQSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGOEI7IDFGODM7IDFGOEI7IDFGMEIgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBWQVJJQSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGOEM7IDFGODQ7IDFGOEM7IDFGMEMgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBPWElBIEFORCBQUk9TR0VHUkFNTUVOSQorMUY4RDsgMUY4NTsgMUY4RDsgMUYwRCAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5EIFBST1NHRUdSQU1NRU5JCisxRjhFOyAxRjg2OyAxRjhFOyAxRjBFIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkkgQU5EIFBST1NHRUdSQU1NRU5JCisxRjhGOyAxRjg3OyAxRjhGOyAxRjBGIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkkgQU5EIFBST1NHRUdSQU1NRU5JCisxRjkwOyAxRjkwOyAxRjk4OyAxRjI4IDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBZUE9HRUdSQU1NRU5JCisxRjkxOyAxRjkxOyAxRjk5OyAxRjI5IDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBZUE9HRUdSQU1NRU5JCisxRjkyOyAxRjkyOyAxRjlBOyAxRjJBIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUY5MzsgMUY5MzsgMUY5QjsgMUYyQiAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGOTQ7IDFGOTQ7IDFGOUM7IDFGMkMgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGOTU7IDFGOTU7IDFGOUQ7IDFGMkQgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGOTY7IDFGOTY7IDFGOUU7IDFGMkUgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JCisxRjk3OyAxRjk3OyAxRjlGOyAxRjJGIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSQorMUY5ODsgMUY5MDsgMUY5ODsgMUYyOCAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBQUk9TR0VHUkFNTUVOSQorMUY5OTsgMUY5MTsgMUY5OTsgMUYyOSAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBQUk9TR0VHUkFNTUVOSQorMUY5QTsgMUY5MjsgMUY5QTsgMUYyQSAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBWQVJJQSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGOUI7IDFGOTM7IDFGOUI7IDFGMkIgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgVkFSSUEgQU5EIFBST1NHRUdSQU1NRU5JCisxRjlDOyAxRjk0OyAxRjlDOyAxRjJDIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIE9YSUEgQU5EIFBST1NHRUdSQU1NRU5JCisxRjlEOyAxRjk1OyAxRjlEOyAxRjJEIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5EIFBST1NHRUdSQU1NRU5JCisxRjlFOyAxRjk2OyAxRjlFOyAxRjJFIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JIEFORCBQUk9TR0VHUkFNTUVOSQorMUY5RjsgMUY5NzsgMUY5RjsgMUYyRiAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGQTA7IDFGQTA7IDFGQTg7IDFGNjggMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgWVBPR0VHUkFNTUVOSQorMUZBMTsgMUZBMTsgMUZBOTsgMUY2OSAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBZUE9HRUdSQU1NRU5JCisxRkEyOyAxRkEyOyAxRkFBOyAxRjZBIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JCisxRkEzOyAxRkEzOyAxRkFCOyAxRjZCIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JCisxRkE0OyAxRkE0OyAxRkFDOyAxRjZDIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGQTU7IDFGQTU7IDFGQUQ7IDFGNkQgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgT1hJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUZBNjsgMUZBNjsgMUZBRTsgMUY2RSAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSQorMUZBNzsgMUZBNzsgMUZBRjsgMUY2RiAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSQorMUZBODsgMUZBMDsgMUZBODsgMUY2OCAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFBST1NHRUdSQU1NRU5JCisxRkE5OyAxRkExOyAxRkE5OyAxRjY5IDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGQUE7IDFGQTI7IDFGQUE7IDFGNkEgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBWQVJJQSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGQUI7IDFGQTM7IDFGQUI7IDFGNkIgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBWQVJJQSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGQUM7IDFGQTQ7IDFGQUM7IDFGNkMgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBPWElBIEFORCBQUk9TR0VHUkFNTUVOSQorMUZBRDsgMUZBNTsgMUZBRDsgMUY2RCAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5EIFBST1NHRUdSQU1NRU5JCisxRkFFOyAxRkE2OyAxRkFFOyAxRjZFIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkkgQU5EIFBST1NHRUdSQU1NRU5JCisxRkFGOyAxRkE3OyAxRkFGOyAxRjZGIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkkgQU5EIFBST1NHRUdSQU1NRU5JCisxRkIzOyAxRkIzOyAxRkJDOyAwMzkxIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggWVBPR0VHUkFNTUVOSQorMUZCQzsgMUZCMzsgMUZCQzsgMDM5MSAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFJPU0dFR1JBTU1FTkkKKzFGQzM7IDFGQzM7IDFGQ0M7IDAzOTcgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggWVBPR0VHUkFNTUVOSQorMUZDQzsgMUZDMzsgMUZDQzsgMDM5NyAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBST1NHRUdSQU1NRU5JCisxRkYzOyAxRkYzOyAxRkZDOyAwM0E5IDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggWVBPR0VHUkFNTUVOSQorMUZGQzsgMUZGMzsgMUZGQzsgMDNBOSAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFJPU0dFR1JBTU1FTkkKKworIyBTb21lIGNoYXJhY3RlcnMgd2l0aCBZUE9HRUdSQU1NRU5JIGFyZSBhbHNvIGhhdmUgbm8gY29ycmVzcG9uZGluZyB0aXRsZWNhc2VzCisKKzFGQjI7IDFGQjI7IDFGQkEgMDM0NTsgMUZCQSAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JCisxRkI0OyAxRkI0OyAwMzg2IDAzNDU7IDAzODYgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBPWElBIEFORCBZUE9HRUdSQU1NRU5JCisxRkMyOyAxRkMyOyAxRkNBIDAzNDU7IDFGQ0EgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGQzQ7IDFGQzQ7IDAzODkgMDM0NTsgMDM4OSAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBPWElBIEFORCBZUE9HRUdSQU1NRU5JCisxRkYyOyAxRkYyOyAxRkZBIDAzNDU7IDFGRkEgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUZGNDsgMUZGNDsgMDM4RiAwMzQ1OyAwMzhGIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggT1hJQSBBTkQgWVBPR0VHUkFNTUVOSQorCisxRkI3OyAxRkI3OyAwMzkxIDAzNDIgMDM0NTsgMDM5MSAwMzQyIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkkKKzFGQzc7IDFGQzc7IDAzOTcgMDM0MiAwMzQ1OyAwMzk3IDAzNDIgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkkKKzFGRjc7IDFGRjc7IDAzQTkgMDM0MiAwMzQ1OyAwM0E5IDAzNDIgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSQorCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjIENvbmRpdGlvbmFsIG1hcHBpbmdzCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyMgU3BlY2lhbCBjYXNlIGZvciBmaW5hbCBmb3JtIG9mIHNpZ21hCisKKzAzQTM7IDAzQzI7IDAzQTM7IDAzQTM7IEZpbmFsX1NpZ21hOyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIFNJR01BCisKKyMgTm90ZTogdGhlIGZvbGxvd2luZyBjYXNlcyBmb3Igbm9uLWZpbmFsIGFyZSBhbHJlYWR5IGluIHRoZSBVbmljb2RlRGF0YSBmaWxlLgorCisjIDAzQTM7IDAzQzM7IDAzQTM7IDAzQTM7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgU0lHTUEKKyMgMDNDMzsgMDNDMzsgMDNBMzsgMDNBMzsgIyBHUkVFSyBTTUFMTCBMRVRURVIgU0lHTUEKKyMgMDNDMjsgMDNDMjsgMDNBMzsgMDNBMzsgIyBHUkVFSyBTTUFMTCBMRVRURVIgRklOQUwgU0lHTUEKKworIyBOb3RlOiB0aGUgZm9sbG93aW5nIGNhc2VzIGFyZSBub3QgaW5jbHVkZWQsIHNpbmNlIHRoZXkgd291bGQgY2FzZS1mb2xkIGluIGxvd2VyY2FzaW5nCisKKyMgMDNDMzsgMDNDMjsgMDNBMzsgMDNBMzsgRmluYWxfU2lnbWE7ICMgR1JFRUsgU01BTEwgTEVUVEVSIFNJR01BCisjIDAzQzI7IDAzQzM7IDAzQTM7IDAzQTM7IE5vdF9GaW5hbF9TaWdtYTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgRklOQUwgU0lHTUEKKworIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyBMb2NhbGUtc2Vuc2l0aXZlIG1hcHBpbmdzCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyMgTGl0aHVhbmlhbgorCisjIExpdGh1YW5pYW4gcmV0YWlucyB0aGUgZG90IGluIGEgbG93ZXJjYXNlIGkgd2hlbiBmb2xsb3dlZCBieSBhY2NlbnRzLgorCisjIFJlbW92ZSBET1QgQUJPVkUgYWZ0ZXIgImkiIHdpdGggdXBwZXIgb3IgdGl0bGVjYXNlCisKKzAzMDc7IDAzMDc7IDsgOyBsdCBBZnRlcl9Tb2Z0X0RvdHRlZDsgIyBDT01CSU5JTkcgRE9UIEFCT1ZFCisKKyMgSW50cm9kdWNlIGFuIGV4cGxpY2l0IGRvdCBhYm92ZSB3aGVuIGxvd2VyY2FzaW5nIGNhcGl0YWwgSSdzIGFuZCBKJ3MKKyMgd2hlbmV2ZXIgdGhlcmUgYXJlIG1vcmUgYWNjZW50cyBhYm92ZS4KKyMgKG9mIHRoZSBhY2NlbnRzIHVzZWQgaW4gTGl0aHVhbmlhbjogZ3JhdmUsIGFjdXRlLCB0aWxkZSBhYm92ZSwgYW5kIG9nb25laykKKworMDA0OTsgMDA2OSAwMzA3OyAwMDQ5OyAwMDQ5OyBsdCBNb3JlX0Fib3ZlOyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkKKzAwNEE7IDAwNkEgMDMwNzsgMDA0QTsgMDA0QTsgbHQgTW9yZV9BYm92ZTsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBKCiswMTJFOyAwMTJGIDAzMDc7IDAxMkU7IDAxMkU7IGx0IE1vcmVfQWJvdmU7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIE9HT05FSworMDBDQzsgMDA2OSAwMzA3IDAzMDA7IDAwQ0M7IDAwQ0M7IGx0OyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBHUkFWRQorMDBDRDsgMDA2OSAwMzA3IDAzMDE7IDAwQ0Q7IDAwQ0Q7IGx0OyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBBQ1VURQorMDEyODsgMDA2OSAwMzA3IDAzMDM7IDAxMjg7IDAxMjg7IGx0OyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBUSUxERQorCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyMgVHVya2lzaCBhbmQgQXplcmkKKworIyBJIGFuZCBpLWRvdGxlc3M7IEktZG90IGFuZCBpIGFyZSBjYXNlIHBhaXJzIGluIFR1cmtpc2ggYW5kIEF6ZXJpCisjIFRoZSBmb2xsb3dpbmcgcnVsZXMgaGFuZGxlIHRob3NlIGNhc2VzLgorCiswMTMwOyAwMDY5OyAwMTMwOyAwMTMwOyB0ciAjIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBET1QgQUJPVkUKKzAxMzA7IDAwNjk7IDAxMzA7IDAxMzA7IGF6ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERPVCBBQk9WRQorCisjIFdoZW4gbG93ZXJjYXNpbmcsIHJlbW92ZSBkb3RfYWJvdmUgaW4gdGhlIHNlcXVlbmNlIEkgKyBkb3RfYWJvdmUsIHdoaWNoIHdpbGwgdHVybiBpbnRvIGkuCisjIFRoaXMgbWF0Y2hlcyB0aGUgYmVoYXZpb3Igb2YgdGhlIGNhbm9uaWNhbGx5IGVxdWl2YWxlbnQgSS1kb3RfYWJvdmUKKworMDMwNzsgOyAwMzA3OyAwMzA3OyB0ciBBZnRlcl9Tb2Z0X0RvdHRlZDsgIyBDT01CSU5JTkcgRE9UIEFCT1ZFCiswMzA3OyA7IDAzMDc7IDAzMDc7IGF6IEFmdGVyX1NvZnRfRG90dGVkOyAjIENPTUJJTklORyBET1QgQUJPVkUKKworIyBXaGVuIGxvd2VyY2FzaW5nLCB1bmxlc3MgYW4gSSBpcyBiZWZvcmUgYSBkb3RfYWJvdmUsIGl0IHR1cm5zIGludG8gYSBkb3RsZXNzIGkuCisKKzAwNDk7IDAxMzE7IDAwNDk7IDAwNDk7IHRyIE5vdF9CZWZvcmVfRG90OyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkKKzAwNDk7IDAxMzE7IDAwNDk7IDAwNDk7IGF6IE5vdF9CZWZvcmVfRG90OyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkKKworIyBXaGVuIHVwcGVyY2FzaW5nLCBpIHR1cm5zIGludG8gYSBkb3R0ZWQgY2FwaXRhbCBJCisKKzAwNjk7IDAwNjk7IDAxMzA7IDAxMzA7IHRyOyAjIExBVElOIFNNQUxMIExFVFRFUiBJCiswMDY5OyAwMDY5OyAwMTMwOyAwMTMwOyBhejsgIyBMQVRJTiBTTUFMTCBMRVRURVIgSQorCisjIE5vdGU6IHRoZSBmb2xsb3dpbmcgY2FzZSBpcyBhbHJlYWR5IGluIHRoZSBVbmljb2RlRGF0YSBmaWxlLgorCisjIDAxMzE7IDAxMzE7IDAwNDk7IDAwNDk7IHRyOyAjIExBVElOIFNNQUxMIExFVFRFUiBET1RMRVNTIEkKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL1VuaWNvZGVEYXRhLTIuMS4yLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL1VuaWNvZGVEYXRhLTIuMS4yLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iY2E1OWU2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvVW5pY29kZURhdGEtMi4xLjIudHh0CkBAIC0wLDAgKzEsNjU5MCBAQAorMDAwMDs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7TjtOVUxMOzs7OworMDAwMTs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7TjtTVEFSVCBPRiBIRUFESU5HOzs7OworMDAwMjs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7TjtTVEFSVCBPRiBURVhUOzs7OworMDAwMzs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7TjtFTkQgT0YgVEVYVDs7OzsKKzAwMDQ7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047RU5EIE9GIFRSQU5TTUlTU0lPTjs7OzsKKzAwMDU7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047RU5RVUlSWTs7OzsKKzAwMDY7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047QUNLTk9XTEVER0U7Ozs7CiswMDA3Ozxjb250cm9sPjtDYzswO09OOzs7OztOO0JFTEw7Ozs7CiswMDA4Ozxjb250cm9sPjtDYzswO09OOzs7OztOO0JBQ0tTUEFDRTs7OzsKKzAwMDk7PGNvbnRyb2w+O0NjOzA7Uzs7Ozs7TjtIT1JJWk9OVEFMIFRBQlVMQVRJT047Ozs7CiswMDBBOzxjb250cm9sPjtDYzswO09OOzs7OztOO0xJTkUgRkVFRDs7OzsKKzAwMEI7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047VkVSVElDQUwgVEFCVUxBVElPTjs7OzsKKzAwMEM7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047Rk9STSBGRUVEOzs7OworMDAwRDs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7TjtDQVJSSUFHRSBSRVRVUk47Ozs7CiswMDBFOzxjb250cm9sPjtDYzswO09OOzs7OztOO1NISUZUIE9VVDs7OzsKKzAwMEY7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047U0hJRlQgSU47Ozs7CiswMDEwOzxjb250cm9sPjtDYzswO09OOzs7OztOO0RBVEEgTElOSyBFU0NBUEU7Ozs7CiswMDExOzxjb250cm9sPjtDYzswO09OOzs7OztOO0RFVklDRSBDT05UUk9MIE9ORTs7OzsKKzAwMTI7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047REVWSUNFIENPTlRST0wgVFdPOzs7OworMDAxMzs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7TjtERVZJQ0UgQ09OVFJPTCBUSFJFRTs7OzsKKzAwMTQ7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047REVWSUNFIENPTlRST0wgRk9VUjs7OzsKKzAwMTU7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047TkVHQVRJVkUgQUNLTk9XTEVER0U7Ozs7CiswMDE2Ozxjb250cm9sPjtDYzswO09OOzs7OztOO1NZTkNIUk9OT1VTIElETEU7Ozs7CiswMDE3Ozxjb250cm9sPjtDYzswO09OOzs7OztOO0VORCBPRiBUUkFOU01JU1NJT04gQkxPQ0s7Ozs7CiswMDE4Ozxjb250cm9sPjtDYzswO09OOzs7OztOO0NBTkNFTDs7OzsKKzAwMTk7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047RU5EIE9GIE1FRElVTTs7OzsKKzAwMUE7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047U1VCU1RJVFVURTs7OzsKKzAwMUI7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047RVNDQVBFOzs7OworMDAxQzs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7TjtGSUxFIFNFUEFSQVRPUjs7OzsKKzAwMUQ7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047R1JPVVAgU0VQQVJBVE9SOzs7OworMDAxRTs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7TjtSRUNPUkQgU0VQQVJBVE9SOzs7OworMDAxRjs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7TjtVTklUIFNFUEFSQVRPUjs7OzsKKzAwMjA7U1BBQ0U7WnM7MDtXUzs7Ozs7Tjs7Ozs7CiswMDIxO0VYQ0xBTUFUSU9OIE1BUks7UG87MDtPTjs7Ozs7Tjs7Ozs7CiswMDIyO1FVT1RBVElPTiBNQVJLO1BvOzA7T047Ozs7O047Ozs7OworMDAyMztOVU1CRVIgU0lHTjtQbzswO0VUOzs7OztOOzs7OzsKKzAwMjQ7RE9MTEFSIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CiswMDI1O1BFUkNFTlQgU0lHTjtQbzswO0VUOzs7OztOOzs7OzsKKzAwMjY7QU1QRVJTQU5EO1BvOzA7T047Ozs7O047Ozs7OworMDAyNztBUE9TVFJPUEhFO1BvOzA7T047Ozs7O047QVBPU1RST1BIRS1RVU9URTs7OzsKKzAwMjg7TEVGVCBQQVJFTlRIRVNJUztQczswO09OOzs7OztZO09QRU5JTkcgUEFSRU5USEVTSVM7Ozs7CiswMDI5O1JJR0hUIFBBUkVOVEhFU0lTO1BlOzA7T047Ozs7O1k7Q0xPU0lORyBQQVJFTlRIRVNJUzs7OzsKKzAwMkE7QVNURVJJU0s7UG87MDtPTjs7Ozs7Tjs7Ozs7CiswMDJCO1BMVVMgU0lHTjtTbTswO0VUOzs7OztOOzs7OzsKKzAwMkM7Q09NTUE7UG87MDtDUzs7Ozs7Tjs7Ozs7CiswMDJEO0hZUEhFTi1NSU5VUztQZDswO0VUOzs7OztOOzs7OzsKKzAwMkU7RlVMTCBTVE9QO1BvOzA7Q1M7Ozs7O047UEVSSU9EOzs7OworMDAyRjtTT0xJRFVTO1BvOzA7RVM7Ozs7O047U0xBU0g7Ozs7CiswMDMwO0RJR0lUIFpFUk87TmQ7MDtFTjs7MDswOzA7Tjs7Ozs7CiswMDMxO0RJR0lUIE9ORTtOZDswO0VOOzsxOzE7MTtOOzs7OzsKKzAwMzI7RElHSVQgVFdPO05kOzA7RU47OzI7MjsyO047Ozs7OworMDAzMztESUdJVCBUSFJFRTtOZDswO0VOOzszOzM7MztOOzs7OzsKKzAwMzQ7RElHSVQgRk9VUjtOZDswO0VOOzs0OzQ7NDtOOzs7OzsKKzAwMzU7RElHSVQgRklWRTtOZDswO0VOOzs1OzU7NTtOOzs7OzsKKzAwMzY7RElHSVQgU0lYO05kOzA7RU47OzY7Njs2O047Ozs7OworMDAzNztESUdJVCBTRVZFTjtOZDswO0VOOzs3Ozc7NztOOzs7OzsKKzAwMzg7RElHSVQgRUlHSFQ7TmQ7MDtFTjs7ODs4Ozg7Tjs7Ozs7CiswMDM5O0RJR0lUIE5JTkU7TmQ7MDtFTjs7OTs5Ozk7Tjs7Ozs7CiswMDNBO0NPTE9OO1BvOzA7Q1M7Ozs7O047Ozs7OworMDAzQjtTRU1JQ09MT047UG87MDtPTjs7Ozs7Tjs7Ozs7CiswMDNDO0xFU1MtVEhBTiBTSUdOO1NtOzA7T047Ozs7O1k7Ozs7OworMDAzRDtFUVVBTFMgU0lHTjtTbTswO09OOzs7OztOOzs7OzsKKzAwM0U7R1JFQVRFUi1USEFOIFNJR047U207MDtPTjs7Ozs7WTs7Ozs7CiswMDNGO1FVRVNUSU9OIE1BUks7UG87MDtPTjs7Ozs7Tjs7Ozs7CiswMDQwO0NPTU1FUkNJQUwgQVQ7UG87MDtPTjs7Ozs7Tjs7Ozs7CiswMDQxO0xBVElOIENBUElUQUwgTEVUVEVSIEE7THU7MDtMOzs7OztOOzs7OzAwNjE7CiswMDQyO0xBVElOIENBUElUQUwgTEVUVEVSIEI7THU7MDtMOzs7OztOOzs7OzAwNjI7CiswMDQzO0xBVElOIENBUElUQUwgTEVUVEVSIEM7THU7MDtMOzs7OztOOzs7OzAwNjM7CiswMDQ0O0xBVElOIENBUElUQUwgTEVUVEVSIEQ7THU7MDtMOzs7OztOOzs7OzAwNjQ7CiswMDQ1O0xBVElOIENBUElUQUwgTEVUVEVSIEU7THU7MDtMOzs7OztOOzs7OzAwNjU7CiswMDQ2O0xBVElOIENBUElUQUwgTEVUVEVSIEY7THU7MDtMOzs7OztOOzs7OzAwNjY7CiswMDQ3O0xBVElOIENBUElUQUwgTEVUVEVSIEc7THU7MDtMOzs7OztOOzs7OzAwNjc7CiswMDQ4O0xBVElOIENBUElUQUwgTEVUVEVSIEg7THU7MDtMOzs7OztOOzs7OzAwNjg7CiswMDQ5O0xBVElOIENBUElUQUwgTEVUVEVSIEk7THU7MDtMOzs7OztOOzs7OzAwNjk7CiswMDRBO0xBVElOIENBUElUQUwgTEVUVEVSIEo7THU7MDtMOzs7OztOOzs7OzAwNkE7CiswMDRCO0xBVElOIENBUElUQUwgTEVUVEVSIEs7THU7MDtMOzs7OztOOzs7OzAwNkI7CiswMDRDO0xBVElOIENBUElUQUwgTEVUVEVSIEw7THU7MDtMOzs7OztOOzs7OzAwNkM7CiswMDREO0xBVElOIENBUElUQUwgTEVUVEVSIE07THU7MDtMOzs7OztOOzs7OzAwNkQ7CiswMDRFO0xBVElOIENBUElUQUwgTEVUVEVSIE47THU7MDtMOzs7OztOOzs7OzAwNkU7CiswMDRGO0xBVElOIENBUElUQUwgTEVUVEVSIE87THU7MDtMOzs7OztOOzs7OzAwNkY7CiswMDUwO0xBVElOIENBUElUQUwgTEVUVEVSIFA7THU7MDtMOzs7OztOOzs7OzAwNzA7CiswMDUxO0xBVElOIENBUElUQUwgTEVUVEVSIFE7THU7MDtMOzs7OztOOzs7OzAwNzE7CiswMDUyO0xBVElOIENBUElUQUwgTEVUVEVSIFI7THU7MDtMOzs7OztOOzs7OzAwNzI7CiswMDUzO0xBVElOIENBUElUQUwgTEVUVEVSIFM7THU7MDtMOzs7OztOOzs7OzAwNzM7CiswMDU0O0xBVElOIENBUElUQUwgTEVUVEVSIFQ7THU7MDtMOzs7OztOOzs7OzAwNzQ7CiswMDU1O0xBVElOIENBUElUQUwgTEVUVEVSIFU7THU7MDtMOzs7OztOOzs7OzAwNzU7CiswMDU2O0xBVElOIENBUElUQUwgTEVUVEVSIFY7THU7MDtMOzs7OztOOzs7OzAwNzY7CiswMDU3O0xBVElOIENBUElUQUwgTEVUVEVSIFc7THU7MDtMOzs7OztOOzs7OzAwNzc7CiswMDU4O0xBVElOIENBUElUQUwgTEVUVEVSIFg7THU7MDtMOzs7OztOOzs7OzAwNzg7CiswMDU5O0xBVElOIENBUElUQUwgTEVUVEVSIFk7THU7MDtMOzs7OztOOzs7OzAwNzk7CiswMDVBO0xBVElOIENBUElUQUwgTEVUVEVSIFo7THU7MDtMOzs7OztOOzs7OzAwN0E7CiswMDVCO0xFRlQgU1FVQVJFIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTtPUEVOSU5HIFNRVUFSRSBCUkFDS0VUOzs7OworMDA1QztSRVZFUlNFIFNPTElEVVM7UG87MDtPTjs7Ozs7TjtCQUNLU0xBU0g7Ozs7CiswMDVEO1JJR0hUIFNRVUFSRSBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Q0xPU0lORyBTUVVBUkUgQlJBQ0tFVDs7OzsKKzAwNUU7Q0lSQ1VNRkxFWCBBQ0NFTlQ7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMDI7Ozs7TjtTUEFDSU5HIENJUkNVTUZMRVg7Ozs7CiswMDVGO0xPVyBMSU5FO1BjOzA7T047PGNvbXBhdD4gMDAyMCAwMzMyOzs7O047U1BBQ0lORyBVTkRFUlNDT1JFOzs7OworMDA2MDtHUkFWRSBBQ0NFTlQ7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMDA7Ozs7TjtTUEFDSU5HIEdSQVZFOzs7OworMDA2MTtMQVRJTiBTTUFMTCBMRVRURVIgQTtMbDswO0w7Ozs7O047OzswMDQxOzswMDQxCiswMDYyO0xBVElOIFNNQUxMIExFVFRFUiBCO0xsOzA7TDs7Ozs7Tjs7OzAwNDI7OzAwNDIKKzAwNjM7TEFUSU4gU01BTEwgTEVUVEVSIEM7TGw7MDtMOzs7OztOOzs7MDA0Mzs7MDA0MworMDA2NDtMQVRJTiBTTUFMTCBMRVRURVIgRDtMbDswO0w7Ozs7O047OzswMDQ0OzswMDQ0CiswMDY1O0xBVElOIFNNQUxMIExFVFRFUiBFO0xsOzA7TDs7Ozs7Tjs7OzAwNDU7OzAwNDUKKzAwNjY7TEFUSU4gU01BTEwgTEVUVEVSIEY7TGw7MDtMOzs7OztOOzs7MDA0Njs7MDA0NgorMDA2NztMQVRJTiBTTUFMTCBMRVRURVIgRztMbDswO0w7Ozs7O047OzswMDQ3OzswMDQ3CiswMDY4O0xBVElOIFNNQUxMIExFVFRFUiBIO0xsOzA7TDs7Ozs7Tjs7OzAwNDg7OzAwNDgKKzAwNjk7TEFUSU4gU01BTEwgTEVUVEVSIEk7TGw7MDtMOzs7OztOOzs7MDA0OTs7MDA0OQorMDA2QTtMQVRJTiBTTUFMTCBMRVRURVIgSjtMbDswO0w7Ozs7O047OzswMDRBOzswMDRBCiswMDZCO0xBVElOIFNNQUxMIExFVFRFUiBLO0xsOzA7TDs7Ozs7Tjs7OzAwNEI7OzAwNEIKKzAwNkM7TEFUSU4gU01BTEwgTEVUVEVSIEw7TGw7MDtMOzs7OztOOzs7MDA0Qzs7MDA0QworMDA2RDtMQVRJTiBTTUFMTCBMRVRURVIgTTtMbDswO0w7Ozs7O047OzswMDREOzswMDRECiswMDZFO0xBVElOIFNNQUxMIExFVFRFUiBOO0xsOzA7TDs7Ozs7Tjs7OzAwNEU7OzAwNEUKKzAwNkY7TEFUSU4gU01BTEwgTEVUVEVSIE87TGw7MDtMOzs7OztOOzs7MDA0Rjs7MDA0RgorMDA3MDtMQVRJTiBTTUFMTCBMRVRURVIgUDtMbDswO0w7Ozs7O047OzswMDUwOzswMDUwCiswMDcxO0xBVElOIFNNQUxMIExFVFRFUiBRO0xsOzA7TDs7Ozs7Tjs7OzAwNTE7OzAwNTEKKzAwNzI7TEFUSU4gU01BTEwgTEVUVEVSIFI7TGw7MDtMOzs7OztOOzs7MDA1Mjs7MDA1MgorMDA3MztMQVRJTiBTTUFMTCBMRVRURVIgUztMbDswO0w7Ozs7O047OzswMDUzOzswMDUzCiswMDc0O0xBVElOIFNNQUxMIExFVFRFUiBUO0xsOzA7TDs7Ozs7Tjs7OzAwNTQ7OzAwNTQKKzAwNzU7TEFUSU4gU01BTEwgTEVUVEVSIFU7TGw7MDtMOzs7OztOOzs7MDA1NTs7MDA1NQorMDA3NjtMQVRJTiBTTUFMTCBMRVRURVIgVjtMbDswO0w7Ozs7O047OzswMDU2OzswMDU2CiswMDc3O0xBVElOIFNNQUxMIExFVFRFUiBXO0xsOzA7TDs7Ozs7Tjs7OzAwNTc7OzAwNTcKKzAwNzg7TEFUSU4gU01BTEwgTEVUVEVSIFg7TGw7MDtMOzs7OztOOzs7MDA1ODs7MDA1OAorMDA3OTtMQVRJTiBTTUFMTCBMRVRURVIgWTtMbDswO0w7Ozs7O047OzswMDU5OzswMDU5CiswMDdBO0xBVElOIFNNQUxMIExFVFRFUiBaO0xsOzA7TDs7Ozs7Tjs7OzAwNUE7OzAwNUEKKzAwN0I7TEVGVCBDVVJMWSBCUkFDS0VUO1BzOzA7T047Ozs7O1k7T1BFTklORyBDVVJMWSBCUkFDS0VUOzs7OworMDA3QztWRVJUSUNBTCBMSU5FO1NtOzA7T047Ozs7O047VkVSVElDQUwgQkFSOzs7OworMDA3RDtSSUdIVCBDVVJMWSBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Q0xPU0lORyBDVVJMWSBCUkFDS0VUOzs7OworMDA3RTtUSUxERTtTbTswO09OOzs7OztOOzs7OzsKKzAwN0Y7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047REVMRVRFOzs7OworMDA4MDs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7Tjs7Ozs7CiswMDgxOzxjb250cm9sPjtDYzswO09OOzs7OztOOzs7OzsKKzAwODI7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047Ozs7OworMDA4Mzs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7Tjs7Ozs7CiswMDg0Ozxjb250cm9sPjtDYzswO09OOzs7OztOOzs7OzsKKzAwODU7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047Ozs7OworMDA4Njs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7Tjs7Ozs7CiswMDg3Ozxjb250cm9sPjtDYzswO09OOzs7OztOOzs7OzsKKzAwODg7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047Ozs7OworMDA4OTs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7Tjs7Ozs7CiswMDhBOzxjb250cm9sPjtDYzswO09OOzs7OztOOzs7OzsKKzAwOEI7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047Ozs7OworMDA4Qzs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7Tjs7Ozs7CiswMDhEOzxjb250cm9sPjtDYzswO09OOzs7OztOOzs7OzsKKzAwOEU7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047Ozs7OworMDA4Rjs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7Tjs7Ozs7CiswMDkwOzxjb250cm9sPjtDYzswO09OOzs7OztOOzs7OzsKKzAwOTE7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047Ozs7OworMDA5Mjs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7Tjs7Ozs7CiswMDkzOzxjb250cm9sPjtDYzswO09OOzs7OztOOzs7OzsKKzAwOTQ7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047Ozs7OworMDA5NTs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7Tjs7Ozs7CiswMDk2Ozxjb250cm9sPjtDYzswO09OOzs7OztOOzs7OzsKKzAwOTc7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047Ozs7OworMDA5ODs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7Tjs7Ozs7CiswMDk5Ozxjb250cm9sPjtDYzswO09OOzs7OztOOzs7OzsKKzAwOUE7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047Ozs7OworMDA5Qjs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7Tjs7Ozs7CiswMDlDOzxjb250cm9sPjtDYzswO09OOzs7OztOOzs7OzsKKzAwOUQ7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047Ozs7OworMDA5RTs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7Tjs7Ozs7CiswMDlGOzxjb250cm9sPjtDYzswO09OOzs7OztOOzs7OzsKKzAwQTA7Tk8tQlJFQUsgU1BBQ0U7WnM7MDtXUzs8bm9CcmVhaz4gMDAyMDs7OztOO05PTi1CUkVBS0lORyBTUEFDRTs7OzsKKzAwQTE7SU5WRVJURUQgRVhDTEFNQVRJT04gTUFSSztQbzswO09OOzs7OztOOzs7OzsKKzAwQTI7Q0VOVCBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMDBBMztQT1VORCBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMDBBNDtDVVJSRU5DWSBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMDBBNTtZRU4gU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzAwQTY7QlJPS0VOIEJBUjtTbzswO09OOzs7OztOO0JST0tFTiBWRVJUSUNBTCBCQVI7Ozs7CiswMEE3O1NFQ1RJT04gU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzAwQTg7RElBRVJFU0lTO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzA4Ozs7O047U1BBQ0lORyBESUFFUkVTSVM7Ozs7CiswMEE5O0NPUFlSSUdIVCBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMDBBQTtGRU1JTklORSBPUkRJTkFMIElORElDQVRPUjtMbDswO09OOzxzdXBlcj4gMDA2MTs7OztOOzs7OzsKKzAwQUI7TEVGVC1QT0lOVElORyBET1VCTEUgQU5HTEUgUVVPVEFUSU9OIE1BUks7UHM7MDtPTjs7Ozs7TjtMRUZUIFBPSU5USU5HIEdVSUxMRU1FVDs7OzsKKzAwQUM7Tk9UIFNJR047U207MDtPTjs7Ozs7Tjs7Ozs7CiswMEFEO1NPRlQgSFlQSEVOO1BkOzA7T047Ozs7O047Ozs7OworMDBBRTtSRUdJU1RFUkVEIFNJR047U287MDtPTjs7Ozs7TjtSRUdJU1RFUkVEIFRSQURFIE1BUksgU0lHTjs7OzsKKzAwQUY7TUFDUk9OO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzA0Ozs7O047U1BBQ0lORyBNQUNST047Ozs7CiswMEIwO0RFR1JFRSBTSUdOO1NvOzA7RVQ7Ozs7O047Ozs7OworMDBCMTtQTFVTLU1JTlVTIFNJR047U207MDtFVDs7Ozs7TjtQTFVTLU9SLU1JTlVTIFNJR047Ozs7CiswMEIyO1NVUEVSU0NSSVBUIFRXTztObzswO0VOOzxzdXBlcj4gMDAzMjsyOzI7MjtOO1NVUEVSU0NSSVBUIERJR0lUIFRXTzs7OzsKKzAwQjM7U1VQRVJTQ1JJUFQgVEhSRUU7Tm87MDtFTjs8c3VwZXI+IDAwMzM7MzszOzM7TjtTVVBFUlNDUklQVCBESUdJVCBUSFJFRTs7OzsKKzAwQjQ7QUNVVEUgQUNDRU5UO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzAxOzs7O047U1BBQ0lORyBBQ1VURTs7OzsKKzAwQjU7TUlDUk8gU0lHTjtMbDswO09OOzxjb21wYXQ+IDAzQkM7Ozs7Tjs7Ozs7CiswMEI2O1BJTENST1cgU0lHTjtTbzswO09OOzs7OztOO1BBUkFHUkFQSCBTSUdOOzs7OworMDBCNztNSURETEUgRE9UO1BvOzA7T047Ozs7O047Ozs7OworMDBCODtDRURJTExBO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzI3Ozs7O047U1BBQ0lORyBDRURJTExBOzs7OworMDBCOTtTVVBFUlNDUklQVCBPTkU7Tm87MDtFTjs8c3VwZXI+IDAwMzE7MTsxOzE7TjtTVVBFUlNDUklQVCBESUdJVCBPTkU7Ozs7CiswMEJBO01BU0NVTElORSBPUkRJTkFMIElORElDQVRPUjtMbDswO09OOzxzdXBlcj4gMDA2Rjs7OztOOzs7OzsKKzAwQkI7UklHSFQtUE9JTlRJTkcgRE9VQkxFIEFOR0xFIFFVT1RBVElPTiBNQVJLO1BlOzA7T047Ozs7O047UklHSFQgUE9JTlRJTkcgR1VJTExFTUVUOzs7OworMDBCQztWVUxHQVIgRlJBQ1RJT04gT05FIFFVQVJURVI7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzEgMjA0NCAwMDM0Ozs7MS80O047RlJBQ1RJT04gT05FIFFVQVJURVI7Ozs7CiswMEJEO1ZVTEdBUiBGUkFDVElPTiBPTkUgSEFMRjtObzswO09OOzxmcmFjdGlvbj4gMDAzMSAyMDQ0IDAwMzI7OzsxLzI7TjtGUkFDVElPTiBPTkUgSEFMRjs7OzsKKzAwQkU7VlVMR0FSIEZSQUNUSU9OIFRIUkVFIFFVQVJURVJTO05vOzA7T047PGZyYWN0aW9uPiAwMDMzIDIwNDQgMDAzNDs7OzMvNDtOO0ZSQUNUSU9OIFRIUkVFIFFVQVJURVJTOzs7OworMDBCRjtJTlZFUlRFRCBRVUVTVElPTiBNQVJLO1BvOzA7T047Ozs7O047Ozs7OworMDBDMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggR1JBVkU7THU7MDtMOzAwNDEgMDMwMDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgR1JBVkU7OzswMEUwOworMDBDMTtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQUNVVEU7THU7MDtMOzAwNDEgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgQUNVVEU7OzswMEUxOworMDBDMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA0MSAwMzAyOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBDSVJDVU1GTEVYOzs7MDBFMjsKKzAwQzM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIFRJTERFO0x1OzA7TDswMDQxIDAzMDM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFRJTERFOzs7MDBFMzsKKzAwQzQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDA0MSAwMzA4Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBESUFFUkVTSVM7OzswMEU0OworMDBDNTtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggUklORyBBQk9WRTtMdTswO0w7MDA0MSAwMzBBOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBSSU5HOzs7MDBFNTsKKzAwQzY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQUU7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgRTs7OzAwRTY7CiswMEM3O0xBVElOIENBUElUQUwgTEVUVEVSIEMgV0lUSCBDRURJTExBO0x1OzA7TDswMDQzIDAzMjc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBDIENFRElMTEE7OzswMEU3OworMDBDODtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggR1JBVkU7THU7MDtMOzAwNDUgMDMwMDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEUgR1JBVkU7OzswMEU4OworMDBDOTtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQUNVVEU7THU7MDtMOzAwNDUgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEUgQUNVVEU7OzswMEU5OworMDBDQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA0NSAwMzAyOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBDSVJDVU1GTEVYOzs7MDBFQTsKKzAwQ0I7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDA0NSAwMzA4Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBESUFFUkVTSVM7OzswMEVCOworMDBDQztMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggR1JBVkU7THU7MDtMOzAwNDkgMDMwMDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEkgR1JBVkU7OzswMEVDOworMDBDRDtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggQUNVVEU7THU7MDtMOzAwNDkgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEkgQUNVVEU7OzswMEVEOworMDBDRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA0OSAwMzAyOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBDSVJDVU1GTEVYOzs7MDBFRTsKKzAwQ0Y7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDA0OSAwMzA4Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBESUFFUkVTSVM7OzswMEVGOworMDBEMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBFVEg7THU7MDtMOzs7OztOOztJY2VsYW5kaWM7OzAwRjA7CiswMEQxO0xBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBUSUxERTtMdTswO0w7MDA0RSAwMzAzOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBUSUxERTs7OzAwRjE7CiswMEQyO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBHUkFWRTtMdTswO0w7MDA0RiAwMzAwOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBHUkFWRTs7OzAwRjI7CiswMEQzO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBBQ1VURTtMdTswO0w7MDA0RiAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBBQ1VURTs7OzAwRjM7CiswMEQ0O0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDRGIDAzMDI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIENJUkNVTUZMRVg7OzswMEY0OworMDBENTtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggVElMREU7THU7MDtMOzAwNEYgMDMwMzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gVElMREU7OzswMEY1OworMDBENjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggRElBRVJFU0lTO0x1OzA7TDswMDRGIDAzMDg7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIERJQUVSRVNJUzs7OzAwRjY7CiswMEQ3O01VTFRJUExJQ0FUSU9OIFNJR047U207MDtPTjs7Ozs7Tjs7Ozs7CiswMEQ4O0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gU0xBU0g7OzswMEY4OworMDBEOTtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggR1JBVkU7THU7MDtMOzAwNTUgMDMwMDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgR1JBVkU7OzswMEY5OworMDBEQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggQUNVVEU7THU7MDtMOzAwNTUgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgQUNVVEU7OzswMEZBOworMDBEQjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA1NSAwMzAyOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBDSVJDVU1GTEVYOzs7MDBGQjsKKzAwREM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDA1NSAwMzA4Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBESUFFUkVTSVM7OzswMEZDOworMDBERDtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggQUNVVEU7THU7MDtMOzAwNTkgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFkgQUNVVEU7OzswMEZEOworMDBERTtMQVRJTiBDQVBJVEFMIExFVFRFUiBUSE9STjtMdTswO0w7Ozs7O047O0ljZWxhbmRpYzs7MDBGRTsKKzAwREY7TEFUSU4gU01BTEwgTEVUVEVSIFNIQVJQIFM7TGw7MDtMOzs7OztOOztHZXJtYW47OzsKKzAwRTA7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBHUkFWRTtMbDswO0w7MDA2MSAwMzAwOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgR1JBVkU7OzAwQzA7OzAwQzAKKzAwRTE7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBBQ1VURTtMbDswO0w7MDA2MSAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgQUNVVEU7OzAwQzE7OzAwQzEKKzAwRTI7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDYxIDAzMDI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBDSVJDVU1GTEVYOzswMEMyOzswMEMyCiswMEUzO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggVElMREU7TGw7MDtMOzAwNjEgMDMwMzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIFRJTERFOzswMEMzOzswMEMzCiswMEU0O0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggRElBRVJFU0lTO0xsOzA7TDswMDYxIDAzMDg7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBESUFFUkVTSVM7OzAwQzQ7OzAwQzQKKzAwRTU7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBSSU5HIEFCT1ZFO0xsOzA7TDswMDYxIDAzMEE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBSSU5HOzswMEM1OzswMEM1CiswMEU2O0xBVElOIFNNQUxMIExFVFRFUiBBRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgRTs7MDBDNjs7MDBDNgorMDBFNztMQVRJTiBTTUFMTCBMRVRURVIgQyBXSVRIIENFRElMTEE7TGw7MDtMOzAwNjMgMDMyNzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBDIENFRElMTEE7OzAwQzc7OzAwQzcKKzAwRTg7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBHUkFWRTtMbDswO0w7MDA2NSAwMzAwOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEUgR1JBVkU7OzAwQzg7OzAwQzgKKzAwRTk7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBBQ1VURTtMbDswO0w7MDA2NSAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEUgQUNVVEU7OzAwQzk7OzAwQzkKKzAwRUE7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDY1IDAzMDI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRSBDSVJDVU1GTEVYOzswMENBOzswMENBCiswMEVCO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggRElBRVJFU0lTO0xsOzA7TDswMDY1IDAzMDg7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRSBESUFFUkVTSVM7OzAwQ0I7OzAwQ0IKKzAwRUM7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBHUkFWRTtMbDswO0w7MDA2OSAwMzAwOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEkgR1JBVkU7OzAwQ0M7OzAwQ0MKKzAwRUQ7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBBQ1VURTtMbDswO0w7MDA2OSAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEkgQUNVVEU7OzAwQ0Q7OzAwQ0QKKzAwRUU7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDY5IDAzMDI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSSBDSVJDVU1GTEVYOzswMENFOzswMENFCiswMEVGO0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggRElBRVJFU0lTO0xsOzA7TDswMDY5IDAzMDg7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSSBESUFFUkVTSVM7OzAwQ0Y7OzAwQ0YKKzAwRjA7TEFUSU4gU01BTEwgTEVUVEVSIEVUSDtMbDswO0w7Ozs7O047O0ljZWxhbmRpYzswMEQwOzswMEQwCiswMEYxO0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggVElMREU7TGw7MDtMOzAwNkUgMDMwMzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBOIFRJTERFOzswMEQxOzswMEQxCiswMEYyO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggR1JBVkU7TGw7MDtMOzAwNkYgMDMwMDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIEdSQVZFOzswMEQyOzswMEQyCiswMEYzO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQUNVVEU7TGw7MDtMOzAwNkYgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIEFDVVRFOzswMEQzOzswMEQzCiswMEY0O0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA2RiAwMzAyOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gQ0lSQ1VNRkxFWDs7MDBENDs7MDBENAorMDBGNTtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIFRJTERFO0xsOzA7TDswMDZGIDAzMDM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBUSUxERTs7MDBENTs7MDBENQorMDBGNjtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIERJQUVSRVNJUztMbDswO0w7MDA2RiAwMzA4Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gRElBRVJFU0lTOzswMEQ2OzswMEQ2CiswMEY3O0RJVklTSU9OIFNJR047U207MDtPTjs7Ozs7Tjs7Ozs7CiswMEY4O0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBTTEFTSDs7MDBEODs7MDBEOAorMDBGOTtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEdSQVZFO0xsOzA7TDswMDc1IDAzMDA7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBHUkFWRTs7MDBEOTs7MDBEOQorMDBGQTtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEFDVVRFO0xsOzA7TDswMDc1IDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBBQ1VURTs7MDBEQTs7MDBEQQorMDBGQjtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwNzUgMDMwMjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIENJUkNVTUZMRVg7OzAwREI7OzAwREIKKzAwRkM7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzAwNzUgMDMwODs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIERJQUVSRVNJUzs7MDBEQzs7MDBEQworMDBGRDtMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIEFDVVRFO0xsOzA7TDswMDc5IDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWSBBQ1VURTs7MDBERDs7MDBERAorMDBGRTtMQVRJTiBTTUFMTCBMRVRURVIgVEhPUk47TGw7MDtMOzs7OztOOztJY2VsYW5kaWM7MDBERTs7MDBERQorMDBGRjtMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDA3OSAwMzA4Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFkgRElBRVJFU0lTOzswMTc4OzswMTc4CiswMTAwO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBNQUNST047THU7MDtMOzAwNDEgMDMwNDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgTUFDUk9OOzs7MDEwMTsKKzAxMDE7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBNQUNST047TGw7MDtMOzAwNjEgMDMwNDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIE1BQ1JPTjs7MDEwMDs7MDEwMAorMDEwMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQlJFVkU7THU7MDtMOzAwNDEgMDMwNjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgQlJFVkU7OzswMTAzOworMDEwMztMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIEJSRVZFO0xsOzA7TDswMDYxIDAzMDY7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBCUkVWRTs7MDEwMjs7MDEwMgorMDEwNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggT0dPTkVLO0x1OzA7TDswMDQxIDAzMjg7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIE9HT05FSzs7OzAxMDU7CiswMTA1O0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggT0dPTkVLO0xsOzA7TDswMDYxIDAzMjg7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBPR09ORUs7OzAxMDQ7OzAxMDQKKzAxMDY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBXSVRIIEFDVVRFO0x1OzA7TDswMDQzIDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBDIEFDVVRFOzs7MDEwNzsKKzAxMDc7TEFUSU4gU01BTEwgTEVUVEVSIEMgV0lUSCBBQ1VURTtMbDswO0w7MDA2MyAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEMgQUNVVEU7OzAxMDY7OzAxMDYKKzAxMDg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNDMgMDMwMjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEMgQ0lSQ1VNRkxFWDs7OzAxMDk7CiswMTA5O0xBVElOIFNNQUxMIExFVFRFUiBDIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA2MyAwMzAyOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEMgQ0lSQ1VNRkxFWDs7MDEwODs7MDEwOAorMDEwQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBDIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDQzIDAzMDc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBDIERPVDs7OzAxMEI7CiswMTBCO0xBVElOIFNNQUxMIExFVFRFUiBDIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDYzIDAzMDc7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQyBET1Q7OzAxMEE7OzAxMEEKKzAxMEM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBXSVRIIENBUk9OO0x1OzA7TDswMDQzIDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBDIEhBQ0VLOzs7MDEwRDsKKzAxMEQ7TEFUSU4gU01BTEwgTEVUVEVSIEMgV0lUSCBDQVJPTjtMbDswO0w7MDA2MyAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEMgSEFDRUs7OzAxMEM7OzAxMEMKKzAxMEU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIENBUk9OO0x1OzA7TDswMDQ0IDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIEhBQ0VLOzs7MDEwRjsKKzAxMEY7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBDQVJPTjtMbDswO0w7MDA2NCAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEQgSEFDRUs7OzAxMEU7OzAxMEUKKzAxMTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBCQVI7OzswMTExOworMDExMTtMQVRJTiBTTUFMTCBMRVRURVIgRCBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEQgQkFSOzswMTEwOzswMTEwCiswMTEyO0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBNQUNST047THU7MDtMOzAwNDUgMDMwNDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEUgTUFDUk9OOzs7MDExMzsKKzAxMTM7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBNQUNST047TGw7MDtMOzAwNjUgMDMwNDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBFIE1BQ1JPTjs7MDExMjs7MDExMgorMDExNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQlJFVkU7THU7MDtMOzAwNDUgMDMwNjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEUgQlJFVkU7OzswMTE1OworMDExNTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIEJSRVZFO0xsOzA7TDswMDY1IDAzMDY7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRSBCUkVWRTs7MDExNDs7MDExNAorMDExNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDQ1IDAzMDc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIERPVDs7OzAxMTc7CiswMTE3O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDY1IDAzMDc7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRSBET1Q7OzAxMTY7OzAxMTYKKzAxMTg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIE9HT05FSztMdTswO0w7MDA0NSAwMzI4Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBPR09ORUs7OzswMTE5OworMDExOTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIE9HT05FSztMbDswO0w7MDA2NSAwMzI4Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEUgT0dPTkVLOzswMTE4OzswMTE4CiswMTFBO0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBDQVJPTjtMdTswO0w7MDA0NSAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBIQUNFSzs7OzAxMUI7CiswMTFCO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQ0FST047TGw7MDtMOzAwNjUgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBFIEhBQ0VLOzswMTFBOzswMTFBCiswMTFDO0xBVElOIENBUElUQUwgTEVUVEVSIEcgV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDQ3IDAzMDI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIENJUkNVTUZMRVg7OzswMTFEOworMDExRDtMQVRJTiBTTUFMTCBMRVRURVIgRyBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwNjcgMDMwMjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBHIENJUkNVTUZMRVg7OzAxMUM7OzAxMUMKKzAxMUU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBXSVRIIEJSRVZFO0x1OzA7TDswMDQ3IDAzMDY7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIEJSRVZFOzs7MDExRjsKKzAxMUY7TEFUSU4gU01BTEwgTEVUVEVSIEcgV0lUSCBCUkVWRTtMbDswO0w7MDA2NyAwMzA2Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEcgQlJFVkU7OzAxMUU7OzAxMUUKKzAxMjA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA0NyAwMzA3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBET1Q7OzswMTIxOworMDEyMTtMQVRJTiBTTUFMTCBMRVRURVIgRyBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA2NyAwMzA3Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEcgRE9UOzswMTIwOzswMTIwCiswMTIyO0xBVElOIENBUElUQUwgTEVUVEVSIEcgV0lUSCBDRURJTExBO0x1OzA7TDswMDQ3IDAzMjc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIENFRElMTEE7OzswMTIzOworMDEyMztMQVRJTiBTTUFMTCBMRVRURVIgRyBXSVRIIENFRElMTEE7TGw7MDtMOzAwNjcgMDMyNzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBHIENFRElMTEE7OzAxMjI7OzAxMjIKKzAxMjQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSCBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNDggMDMwMjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEggQ0lSQ1VNRkxFWDs7OzAxMjU7CiswMTI1O0xBVElOIFNNQUxMIExFVFRFUiBIIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA2OCAwMzAyOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEggQ0lSQ1VNRkxFWDs7MDEyNDs7MDEyNAorMDEyNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBIIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBIIEJBUjs7OzAxMjc7CiswMTI3O0xBVElOIFNNQUxMIExFVFRFUiBIIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSCBCQVI7OzAxMjY7OzAxMjYKKzAxMjg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIFRJTERFO0x1OzA7TDswMDQ5IDAzMDM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFRJTERFOzs7MDEyOTsKKzAxMjk7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBUSUxERTtMbDswO0w7MDA2OSAwMzAzOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEkgVElMREU7OzAxMjg7OzAxMjgKKzAxMkE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIE1BQ1JPTjtMdTswO0w7MDA0OSAwMzA0Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBNQUNST047OzswMTJCOworMDEyQjtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIE1BQ1JPTjtMbDswO0w7MDA2OSAwMzA0Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEkgTUFDUk9OOzswMTJBOzswMTJBCiswMTJDO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBCUkVWRTtMdTswO0w7MDA0OSAwMzA2Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBCUkVWRTs7OzAxMkQ7CiswMTJEO0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggQlJFVkU7TGw7MDtMOzAwNjkgMDMwNjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBJIEJSRVZFOzswMTJDOzswMTJDCiswMTJFO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBPR09ORUs7THU7MDtMOzAwNDkgMDMyODs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEkgT0dPTkVLOzs7MDEyRjsKKzAxMkY7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBPR09ORUs7TGw7MDtMOzAwNjkgMDMyODs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBJIE9HT05FSzs7MDEyRTs7MDEyRQorMDEzMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDQ5IDAzMDc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIERPVDs7OzAwNjk7CiswMTMxO0xBVElOIFNNQUxMIExFVFRFUiBET1RMRVNTIEk7TGw7MDtMOzs7OztOOzs7MDA0OTs7MDA0OQorMDEzMjtMQVRJTiBDQVBJVEFMIExJR0FUVVJFIElKO0x1OzA7TDs8Y29tcGF0PiAwMDQ5IDAwNEE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIEo7OzswMTMzOworMDEzMztMQVRJTiBTTUFMTCBMSUdBVFVSRSBJSjtMbDswO0w7PGNvbXBhdD4gMDA2OSAwMDZBOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEkgSjs7MDEzMjs7MDEzMgorMDEzNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBKIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA0QSAwMzAyOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSiBDSVJDVU1GTEVYOzs7MDEzNTsKKzAxMzU7TEFUSU4gU01BTEwgTEVUVEVSIEogV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDZBIDAzMDI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSiBDSVJDVU1GTEVYOzswMTM0OzswMTM0CiswMTM2O0xBVElOIENBUElUQUwgTEVUVEVSIEsgV0lUSCBDRURJTExBO0x1OzA7TDswMDRCIDAzMjc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBLIENFRElMTEE7OzswMTM3OworMDEzNztMQVRJTiBTTUFMTCBMRVRURVIgSyBXSVRIIENFRElMTEE7TGw7MDtMOzAwNkIgMDMyNzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBLIENFRElMTEE7OzAxMzY7OzAxMzYKKzAxMzg7TEFUSU4gU01BTEwgTEVUVEVSIEtSQTtMbDswO0w7Ozs7O047O0dyZWVubGFuZGljOzs7CiswMTM5O0xBVElOIENBUElUQUwgTEVUVEVSIEwgV0lUSCBBQ1VURTtMdTswO0w7MDA0QyAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBBQ1VURTs7OzAxM0E7CiswMTNBO0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggQUNVVEU7TGw7MDtMOzAwNkMgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBMIEFDVVRFOzswMTM5OzswMTM5CiswMTNCO0xBVElOIENBUElUQUwgTEVUVEVSIEwgV0lUSCBDRURJTExBO0x1OzA7TDswMDRDIDAzMjc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIENFRElMTEE7OzswMTNDOworMDEzQztMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIENFRElMTEE7TGw7MDtMOzAwNkMgMDMyNzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBMIENFRElMTEE7OzAxM0I7OzAxM0IKKzAxM0Q7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIENBUk9OO0x1OzA7TDswMDRDIDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIEhBQ0VLOzs7MDEzRTsKKzAxM0U7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBDQVJPTjtMbDswO0w7MDA2QyAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEwgSEFDRUs7OzAxM0Q7OzAxM0QKKzAxM0Y7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIE1JRERMRSBET1Q7THU7MDtMOzxjb21wYXQ+IDAwNEMgMDBCNzs7OztOOzs7OzAxNDA7CiswMTQwO0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggTUlERExFIERPVDtMbDswO0w7PGNvbXBhdD4gMDA2QyAwMEI3Ozs7O047OzswMTNGOzswMTNGCiswMTQxO0xBVElOIENBUElUQUwgTEVUVEVSIEwgV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEwgU0xBU0g7OzswMTQyOworMDE0MjtMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEwgU0xBU0g7OzAxNDE7OzAxNDEKKzAxNDM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIEFDVVRFO0x1OzA7TDswMDRFIDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIEFDVVRFOzs7MDE0NDsKKzAxNDQ7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBBQ1VURTtMbDswO0w7MDA2RSAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIE4gQUNVVEU7OzAxNDM7OzAxNDMKKzAxNDU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIENFRElMTEE7THU7MDtMOzAwNEUgMDMyNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE4gQ0VESUxMQTs7OzAxNDY7CiswMTQ2O0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggQ0VESUxMQTtMbDswO0w7MDA2RSAwMzI3Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE4gQ0VESUxMQTs7MDE0NTs7MDE0NQorMDE0NztMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggQ0FST047THU7MDtMOzAwNEUgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE4gSEFDRUs7OzswMTQ4OworMDE0ODtMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIENBUk9OO0xsOzA7TDswMDZFIDAzMEM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTiBIQUNFSzs7MDE0Nzs7MDE0NworMDE0OTtMQVRJTiBTTUFMTCBMRVRURVIgTiBQUkVDRURFRCBCWSBBUE9TVFJPUEhFO0xsOzA7TDs8Y29tcGF0PiAwMkJDIDAwNkU7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQVBPU1RST1BIRSBOOzs7OworMDE0QTtMQVRJTiBDQVBJVEFMIExFVFRFUiBFTkc7THU7MDtMOzs7OztOOztTYW1pOzswMTRCOworMDE0QjtMQVRJTiBTTUFMTCBMRVRURVIgRU5HO0xsOzA7TDs7Ozs7Tjs7U2FtaTswMTRBOzswMTRBCiswMTRDO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBNQUNST047THU7MDtMOzAwNEYgMDMwNDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gTUFDUk9OOzs7MDE0RDsKKzAxNEQ7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBNQUNST047TGw7MDtMOzAwNkYgMDMwNDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIE1BQ1JPTjs7MDE0Qzs7MDE0QworMDE0RTtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggQlJFVkU7THU7MDtMOzAwNEYgMDMwNjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gQlJFVkU7OzswMTRGOworMDE0RjtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIEJSRVZFO0xsOzA7TDswMDZGIDAzMDY7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBCUkVWRTs7MDE0RTs7MDE0RQorMDE1MDtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggRE9VQkxFIEFDVVRFO0x1OzA7TDswMDRGIDAzMEI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIERPVUJMRSBBQ1VURTs7OzAxNTE7CiswMTUxO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggRE9VQkxFIEFDVVRFO0xsOzA7TDswMDZGIDAzMEI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBET1VCTEUgQUNVVEU7OzAxNTA7OzAxNTAKKzAxNTI7TEFUSU4gQ0FQSVRBTCBMSUdBVFVSRSBPRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBFOzs7MDE1MzsKKzAxNTM7TEFUSU4gU01BTEwgTElHQVRVUkUgT0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIEU7OzAxNTI7OzAxNTIKKzAxNTQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBXSVRIIEFDVVRFO0x1OzA7TDswMDUyIDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBSIEFDVVRFOzs7MDE1NTsKKzAxNTU7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBBQ1VURTtMbDswO0w7MDA3MiAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFIgQUNVVEU7OzAxNTQ7OzAxNTQKKzAxNTY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBXSVRIIENFRElMTEE7THU7MDtMOzAwNTIgMDMyNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFIgQ0VESUxMQTs7OzAxNTc7CiswMTU3O0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggQ0VESUxMQTtMbDswO0w7MDA3MiAwMzI3Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFIgQ0VESUxMQTs7MDE1Njs7MDE1NgorMDE1ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBSIFdJVEggQ0FST047THU7MDtMOzAwNTIgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFIgSEFDRUs7OzswMTU5OworMDE1OTtMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIENBUk9OO0xsOzA7TDswMDcyIDAzMEM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUiBIQUNFSzs7MDE1ODs7MDE1OAorMDE1QTtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIFdJVEggQUNVVEU7THU7MDtMOzAwNTMgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFMgQUNVVEU7OzswMTVCOworMDE1QjtMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIEFDVVRFO0xsOzA7TDswMDczIDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUyBBQ1VURTs7MDE1QTs7MDE1QQorMDE1QztMQVRJTiBDQVBJVEFMIExFVFRFUiBTIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA1MyAwMzAyOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBDSVJDVU1GTEVYOzs7MDE1RDsKKzAxNUQ7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDczIDAzMDI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUyBDSVJDVU1GTEVYOzswMTVDOzswMTVDCiswMTVFO0xBVElOIENBUElUQUwgTEVUVEVSIFMgV0lUSCBDRURJTExBO0x1OzA7TDswMDUzIDAzMjc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIENFRElMTEE7OzswMTVGOworMDE1RjtMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIENFRElMTEE7TGw7MDtMOzAwNzMgMDMyNzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBTIENFRElMTEE7OzAxNUU7OzAxNUUKKzAxNjA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBXSVRIIENBUk9OO0x1OzA7TDswMDUzIDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIEhBQ0VLOzs7MDE2MTsKKzAxNjE7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBDQVJPTjtMbDswO0w7MDA3MyAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFMgSEFDRUs7OzAxNjA7OzAxNjAKKzAxNjI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBXSVRIIENFRElMTEE7THU7MDtMOzAwNTQgMDMyNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFQgQ0VESUxMQTs7OzAxNjM7CiswMTYzO0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggQ0VESUxMQTtMbDswO0w7MDA3NCAwMzI3Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFQgQ0VESUxMQTs7MDE2Mjs7MDE2MgorMDE2NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFdJVEggQ0FST047THU7MDtMOzAwNTQgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFQgSEFDRUs7OzswMTY1OworMDE2NTtMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIENBUk9OO0xsOzA7TDswMDc0IDAzMEM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVCBIQUNFSzs7MDE2NDs7MDE2NAorMDE2NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIEJBUjs7OzAxNjc7CiswMTY3O0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVCBCQVI7OzAxNjY7OzAxNjYKKzAxNjg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIFRJTERFO0x1OzA7TDswMDU1IDAzMDM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFRJTERFOzs7MDE2OTsKKzAxNjk7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBUSUxERTtMbDswO0w7MDA3NSAwMzAzOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgVElMREU7OzAxNjg7OzAxNjgKKzAxNkE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIE1BQ1JPTjtMdTswO0w7MDA1NSAwMzA0Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBNQUNST047OzswMTZCOworMDE2QjtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIE1BQ1JPTjtMbDswO0w7MDA3NSAwMzA0Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgTUFDUk9OOzswMTZBOzswMTZBCiswMTZDO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBCUkVWRTtMdTswO0w7MDA1NSAwMzA2Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBCUkVWRTs7OzAxNkQ7CiswMTZEO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggQlJFVkU7TGw7MDtMOzAwNzUgMDMwNjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIEJSRVZFOzswMTZDOzswMTZDCiswMTZFO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBSSU5HIEFCT1ZFO0x1OzA7TDswMDU1IDAzMEE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFJJTkc7OzswMTZGOworMDE2RjtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIFJJTkcgQUJPVkU7TGw7MDtMOzAwNzUgMDMwQTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIFJJTkc7OzAxNkU7OzAxNkUKKzAxNzA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIERPVUJMRSBBQ1VURTtMdTswO0w7MDA1NSAwMzBCOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBET1VCTEUgQUNVVEU7OzswMTcxOworMDE3MTtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIERPVUJMRSBBQ1VURTtMbDswO0w7MDA3NSAwMzBCOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgRE9VQkxFIEFDVVRFOzswMTcwOzswMTcwCiswMTcyO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBPR09ORUs7THU7MDtMOzAwNTUgMDMyODs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgT0dPTkVLOzs7MDE3MzsKKzAxNzM7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBPR09ORUs7TGw7MDtMOzAwNzUgMDMyODs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIE9HT05FSzs7MDE3Mjs7MDE3MgorMDE3NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBXIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA1NyAwMzAyOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVyBDSVJDVU1GTEVYOzs7MDE3NTsKKzAxNzU7TEFUSU4gU01BTEwgTEVUVEVSIFcgV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDc3IDAzMDI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVyBDSVJDVU1GTEVYOzswMTc0OzswMTc0CiswMTc2O0xBVElOIENBUElUQUwgTEVUVEVSIFkgV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDU5IDAzMDI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIENJUkNVTUZMRVg7OzswMTc3OworMDE3NztMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwNzkgMDMwMjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBZIENJUkNVTUZMRVg7OzAxNzY7OzAxNzYKKzAxNzg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDA1OSAwMzA4Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBESUFFUkVTSVM7OzswMEZGOworMDE3OTtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIFdJVEggQUNVVEU7THU7MDtMOzAwNUEgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFogQUNVVEU7OzswMTdBOworMDE3QTtMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIEFDVVRFO0xsOzA7TDswMDdBIDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWiBBQ1VURTs7MDE3OTs7MDE3OQorMDE3QjtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDVBIDAzMDc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIERPVDs7OzAxN0M7CiswMTdDO0xBVElOIFNNQUxMIExFVFRFUiBaIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDdBIDAzMDc7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWiBET1Q7OzAxN0I7OzAxN0IKKzAxN0Q7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBXSVRIIENBUk9OO0x1OzA7TDswMDVBIDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIEhBQ0VLOzs7MDE3RTsKKzAxN0U7TEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBDQVJPTjtMbDswO0w7MDA3QSAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFogSEFDRUs7OzAxN0Q7OzAxN0QKKzAxN0Y7TEFUSU4gU01BTEwgTEVUVEVSIExPTkcgUztMbDswO0w7PGNvbXBhdD4gMDA3Mzs7OztOOzs7MDA1Mzs7MDA1MworMDE4MDtMQVRJTiBTTUFMTCBMRVRURVIgQiBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEIgQkFSOzs7OworMDE4MTtMQVRJTiBDQVBJVEFMIExFVFRFUiBCIFdJVEggSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQiBIT09LOzs7MDI1MzsKKzAxODI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQiBXSVRIIFRPUEJBUjtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQiBUT1BCQVI7OzswMTgzOworMDE4MztMQVRJTiBTTUFMTCBMRVRURVIgQiBXSVRIIFRPUEJBUjtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEIgVE9QQkFSOzswMTgyOzswMTgyCiswMTg0O0xBVElOIENBUElUQUwgTEVUVEVSIFRPTkUgU0lYO0x1OzA7TDs7Ozs7Tjs7OzswMTg1OworMDE4NTtMQVRJTiBTTUFMTCBMRVRURVIgVE9ORSBTSVg7TGw7MDtMOzs7OztOOzs7MDE4NDs7MDE4NAorMDE4NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPUEVOIE87THU7MDtMOzs7OztOOzs7OzAyNTQ7CiswMTg3O0xBVElOIENBUElUQUwgTEVUVEVSIEMgV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBDIEhPT0s7OzswMTg4OworMDE4ODtMQVRJTiBTTUFMTCBMRVRURVIgQyBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBDIEhPT0s7OzAxODc7OzAxODcKKzAxODk7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQUZSSUNBTiBEO0x1OzA7TDs7Ozs7Tjs7OzswMjU2OworMDE4QTtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFdJVEggSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBIT09LOzs7MDI1NzsKKzAxOEI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIFRPUEJBUjtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBUT1BCQVI7OzswMThDOworMDE4QztMQVRJTiBTTUFMTCBMRVRURVIgRCBXSVRIIFRPUEJBUjtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEQgVE9QQkFSOzswMThCOzswMThCCiswMThEO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgREVMVEE7TGw7MDtMOzs7OztOOzs7OzsKKzAxOEU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUkVWRVJTRUQgRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVFVSTkVEIEU7OzswMUREOworMDE4RjtMQVRJTiBDQVBJVEFMIExFVFRFUiBTQ0hXQTtMdTswO0w7Ozs7O047Ozs7MDI1OTsKKzAxOTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgT1BFTiBFO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFUFNJTE9OOzs7MDI1QjsKKzAxOTE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRiBXSVRIIEhPT0s7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEYgSE9PSzs7OzAxOTI7CiswMTkyO0xBVElOIFNNQUxMIExFVFRFUiBGIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFNDUklQVCBGOzswMTkxOzswMTkxCiswMTkzO0xBVElOIENBUElUQUwgTEVUVEVSIEcgV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIEhPT0s7OzswMjYwOworMDE5NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBHQU1NQTtMdTswO0w7Ozs7O047Ozs7MDI2MzsKKzAxOTU7TEFUSU4gU01BTEwgTEVUVEVSIEhWO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSCBWOzs7OworMDE5NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJT1RBO0x1OzA7TDs7Ozs7Tjs7OzswMjY5OworMDE5NztMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBCQVJSRUQgSTs7OzAyNjg7CiswMTk4O0xBVElOIENBUElUQUwgTEVUVEVSIEsgV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBLIEhPT0s7OzswMTk5OworMDE5OTtMQVRJTiBTTUFMTCBMRVRURVIgSyBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBLIEhPT0s7OzAxOTg7OzAxOTgKKzAxOUE7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBCQVI7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBCQVJSRUQgTDs7OzsKKzAxOUI7TEFUSU4gU01BTEwgTEVUVEVSIExBTUJEQSBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEJBUlJFRCBMQU1CREE7Ozs7CiswMTlDO0xBVElOIENBUElUQUwgTEVUVEVSIFRVUk5FRCBNO0x1OzA7TDs7Ozs7Tjs7OzswMjZGOworMDE5RDtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggTEVGVCBIT09LO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIEhPT0s7OzswMjcyOworMDE5RTtMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIExPTkcgUklHSFQgTEVHO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMTlGO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBNSURETEUgVElMREU7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEJBUlJFRCBPOzs7MDI3NTsKKzAxQTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIEhPUk47THU7MDtMOzAwNEYgMDMxQjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gSE9STjs7OzAxQTE7CiswMUExO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggSE9STjtMbDswO0w7MDA2RiAwMzFCOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gSE9STjs7MDFBMDs7MDFBMAorMDFBMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPSTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBJOzs7MDFBMzsKKzAxQTM7TEFUSU4gU01BTEwgTEVUVEVSIE9JO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBJOzswMUEyOzswMUEyCiswMUE0O0xBVElOIENBUElUQUwgTEVUVEVSIFAgV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBQIEhPT0s7OzswMUE1OworMDFBNTtMQVRJTiBTTUFMTCBMRVRURVIgUCBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBQIEhPT0s7OzAxQTQ7OzAxQTQKKzAxQTY7TEFUSU4gTEVUVEVSIFlSO0x1OzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgWSBSOzs7OworMDFBNztMQVRJTiBDQVBJVEFMIExFVFRFUiBUT05FIFRXTztMdTswO0w7Ozs7O047Ozs7MDFBODsKKzAxQTg7TEFUSU4gU01BTEwgTEVUVEVSIFRPTkUgVFdPO0xsOzA7TDs7Ozs7Tjs7OzAxQTc7OzAxQTcKKzAxQTk7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRVNIO0x1OzA7TDs7Ozs7Tjs7OzswMjgzOworMDFBQTtMQVRJTiBMRVRURVIgUkVWRVJTRUQgRVNIIExPT1A7TG87MDtMOzs7OztOOzs7OzsKKzAxQUI7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBQQUxBVEFMIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBUIFBBTEFUQUwgSE9PSzs7OzsKKzAxQUM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBXSVRIIEhPT0s7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFQgSE9PSzs7OzAxQUQ7CiswMUFEO0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFQgSE9PSzs7MDFBQzs7MDFBQworMDFBRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFdJVEggUkVUUk9GTEVYIEhPT0s7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFQgUkVUUk9GTEVYIEhPT0s7OzswMjg4OworMDFBRjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggSE9STjtMdTswO0w7MDA1NSAwMzFCOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBIT1JOOzs7MDFCMDsKKzAxQjA7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBIT1JOO0xsOzA7TDswMDc1IDAzMUI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBIT1JOOzswMUFGOzswMUFGCiswMUIxO0xBVElOIENBUElUQUwgTEVUVEVSIFVQU0lMT047THU7MDtMOzs7OztOOzs7OzAyOEE7CiswMUIyO0xBVElOIENBUElUQUwgTEVUVEVSIFYgV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBTQ1JJUFQgVjs7OzAyOEI7CiswMUIzO0xBVElOIENBUElUQUwgTEVUVEVSIFkgV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIEhPT0s7OzswMUI0OworMDFCNDtMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBZIEhPT0s7OzAxQjM7OzAxQjMKKzAxQjU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBCQVI7OzswMUI2OworMDFCNjtMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFogQkFSOzswMUI1OzswMUI1CiswMUI3O0xBVElOIENBUElUQUwgTEVUVEVSIEVaSDtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgWU9HSDs7OzAyOTI7CiswMUI4O0xBVElOIENBUElUQUwgTEVUVEVSIEVaSCBSRVZFUlNFRDtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgUkVWRVJTRUQgWU9HSDs7OzAxQjk7CiswMUI5O0xBVElOIFNNQUxMIExFVFRFUiBFWkggUkVWRVJTRUQ7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBSRVZFUlNFRCBZT0dIOzswMUI4OzswMUI4CiswMUJBO0xBVElOIFNNQUxMIExFVFRFUiBFWkggV0lUSCBUQUlMO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWU9HSCBXSVRIIFRBSUw7Ozs7CiswMUJCO0xBVElOIExFVFRFUiBUV08gV0lUSCBTVFJPS0U7TG87MDtMOzs7OztOO0xBVElOIExFVFRFUiBUV08gQkFSOzs7OworMDFCQztMQVRJTiBDQVBJVEFMIExFVFRFUiBUT05FIEZJVkU7THU7MDtMOzs7OztOOzs7OzAxQkQ7CiswMUJEO0xBVElOIFNNQUxMIExFVFRFUiBUT05FIEZJVkU7TGw7MDtMOzs7OztOOzs7MDFCQzs7MDFCQworMDFCRTtMQVRJTiBMRVRURVIgSU5WRVJURUQgR0xPVFRBTCBTVE9QIFdJVEggU1RST0tFO0xvOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgSU5WRVJURUQgR0xPVFRBTCBTVE9QIEJBUjs7OzsKKzAxQkY7TEFUSU4gTEVUVEVSIFdZTk47TG87MDtMOzs7OztOOzs7OzsKKzAxQzA7TEFUSU4gTEVUVEVSIERFTlRBTCBDTElDSztMbzswO0w7Ozs7O047TEFUSU4gTEVUVEVSIFBJUEU7Ozs7CiswMUMxO0xBVElOIExFVFRFUiBMQVRFUkFMIENMSUNLO0xvOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgRE9VQkxFIFBJUEU7Ozs7CiswMUMyO0xBVElOIExFVFRFUiBBTFZFT0xBUiBDTElDSztMbzswO0w7Ozs7O047TEFUSU4gTEVUVEVSIFBJUEUgRE9VQkxFIEJBUjs7OzsKKzAxQzM7TEFUSU4gTEVUVEVSIFJFVFJPRkxFWCBDTElDSztMbzswO0w7Ozs7O047TEFUSU4gTEVUVEVSIEVYQ0xBTUFUSU9OIE1BUks7Ozs7CiswMUM0O0xBVElOIENBUElUQUwgTEVUVEVSIERaIFdJVEggQ0FST047THU7MDtMOzxjb21wYXQ+IDAwNDQgMDE3RDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEQgWiBIQUNFSzs7OzAxQzY7MDFDNQorMDFDNTtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFdJVEggU01BTEwgTEVUVEVSIFogV0lUSCBDQVJPTjtMdDswO0w7PGNvbXBhdD4gMDA0NCAwMTdFOzs7O047TEFUSU4gTEVUVEVSIENBUElUQUwgRCBTTUFMTCBaIEhBQ0VLOzswMUM0OzAxQzY7CiswMUM2O0xBVElOIFNNQUxMIExFVFRFUiBEWiBXSVRIIENBUk9OO0xsOzA7TDs8Y29tcGF0PiAwMDY0IDAxN0U7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRCBaIEhBQ0VLOzswMUM0OzswMUM1CiswMUM3O0xBVElOIENBUElUQUwgTEVUVEVSIExKO0x1OzA7TDs8Y29tcGF0PiAwMDRDIDAwNEE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIEo7OzswMUM5OzAxQzgKKzAxQzg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIFNNQUxMIExFVFRFUiBKO0x0OzA7TDs8Y29tcGF0PiAwMDRDIDAwNkE7Ozs7TjtMQVRJTiBMRVRURVIgQ0FQSVRBTCBMIFNNQUxMIEo7OzAxQzc7MDFDOTsKKzAxQzk7TEFUSU4gU01BTEwgTEVUVEVSIExKO0xsOzA7TDs8Y29tcGF0PiAwMDZDIDAwNkE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTCBKOzswMUM3OzswMUM4CiswMUNBO0xBVElOIENBUElUQUwgTEVUVEVSIE5KO0x1OzA7TDs8Y29tcGF0PiAwMDRFIDAwNEE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIEo7OzswMUNDOzAxQ0IKKzAxQ0I7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIFNNQUxMIExFVFRFUiBKO0x0OzA7TDs8Y29tcGF0PiAwMDRFIDAwNkE7Ozs7TjtMQVRJTiBMRVRURVIgQ0FQSVRBTCBOIFNNQUxMIEo7OzAxQ0E7MDFDQzsKKzAxQ0M7TEFUSU4gU01BTEwgTEVUVEVSIE5KO0xsOzA7TDs8Y29tcGF0PiAwMDZFIDAwNkE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTiBKOzswMUNBOzswMUNCCiswMUNEO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBDQVJPTjtMdTswO0w7MDA0MSAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBIQUNFSzs7OzAxQ0U7CiswMUNFO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQ0FST047TGw7MDtMOzAwNjEgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIEhBQ0VLOzswMUNEOzswMUNECiswMUNGO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBDQVJPTjtMdTswO0w7MDA0OSAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBIQUNFSzs7OzAxRDA7CiswMUQwO0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggQ0FST047TGw7MDtMOzAwNjkgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBJIEhBQ0VLOzswMUNGOzswMUNGCiswMUQxO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBDQVJPTjtMdTswO0w7MDA0RiAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBIQUNFSzs7OzAxRDI7CiswMUQyO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQ0FST047TGw7MDtMOzAwNkYgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIEhBQ0VLOzswMUQxOzswMUQxCiswMUQzO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBDQVJPTjtMdTswO0w7MDA1NSAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBIQUNFSzs7OzAxRDQ7CiswMUQ0O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggQ0FST047TGw7MDtMOzAwNzUgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIEhBQ0VLOzswMUQzOzswMUQzCiswMUQ1O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVMgQU5EIE1BQ1JPTjtMdTswO0w7MDBEQyAwMzA0Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBESUFFUkVTSVMgTUFDUk9OOzs7MDFENjsKKzAxRDY7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVMgQU5EIE1BQ1JPTjtMbDswO0w7MDBGQyAwMzA0Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgRElBRVJFU0lTIE1BQ1JPTjs7MDFENTs7MDFENQorMDFENztMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTIEFORCBBQ1VURTtMdTswO0w7MDBEQyAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBESUFFUkVTSVMgQUNVVEU7OzswMUQ4OworMDFEODtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUyBBTkQgQUNVVEU7TGw7MDtMOzAwRkMgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIERJQUVSRVNJUyBBQ1VURTs7MDFENzs7MDFENworMDFEOTtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTIEFORCBDQVJPTjtMdTswO0w7MDBEQyAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBESUFFUkVTSVMgSEFDRUs7OzswMURBOworMDFEQTtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUyBBTkQgQ0FST047TGw7MDtMOzAwRkMgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIERJQUVSRVNJUyBIQUNFSzs7MDFEOTs7MDFEOQorMDFEQjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTIEFORCBHUkFWRTtMdTswO0w7MDBEQyAwMzAwOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBESUFFUkVTSVMgR1JBVkU7OzswMURDOworMDFEQztMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUyBBTkQgR1JBVkU7TGw7MDtMOzAwRkMgMDMwMDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIERJQUVSRVNJUyBHUkFWRTs7MDFEQjs7MDFEQgorMDFERDtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIEU7TGw7MDtMOzs7OztOOzs7MDE4RTs7MDE4RQorMDFERTtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggRElBRVJFU0lTIEFORCBNQUNST047THU7MDtMOzAwQzQgMDMwNDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgRElBRVJFU0lTIE1BQ1JPTjs7OzAxREY7CiswMURGO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggRElBRVJFU0lTIEFORCBNQUNST047TGw7MDtMOzAwRTQgMDMwNDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIERJQUVSRVNJUyBNQUNST047OzAxREU7OzAxREUKKzAxRTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIERPVCBBQk9WRSBBTkQgTUFDUk9OO0x1OzA7TDswMDQxIDAzMDcgMDMwNDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgRE9UIE1BQ1JPTjs7OzAxRTE7CiswMUUxO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggRE9UIEFCT1ZFIEFORCBNQUNST047TGw7MDtMOzAwNjEgMDMwNyAwMzA0Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgRE9UIE1BQ1JPTjs7MDFFMDs7MDFFMAorMDFFMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBRSBXSVRIIE1BQ1JPTjtMdTswO0w7MDBDNiAwMzA0Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBFIE1BQ1JPTjs7OzAxRTM7CiswMUUzO0xBVElOIFNNQUxMIExFVFRFUiBBRSBXSVRIIE1BQ1JPTjtMbDswO0w7MDBFNiAwMzA0Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgRSBNQUNST047OzAxRTI7OzAxRTIKKzAxRTQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBCQVI7OzswMUU1OworMDFFNTtMQVRJTiBTTUFMTCBMRVRURVIgRyBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEcgQkFSOzswMUU0OzswMUU0CiswMUU2O0xBVElOIENBUElUQUwgTEVUVEVSIEcgV0lUSCBDQVJPTjtMdTswO0w7MDA0NyAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBIQUNFSzs7OzAxRTc7CiswMUU3O0xBVElOIFNNQUxMIExFVFRFUiBHIFdJVEggQ0FST047TGw7MDtMOzAwNjcgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBHIEhBQ0VLOzswMUU2OzswMUU2CiswMUU4O0xBVElOIENBUElUQUwgTEVUVEVSIEsgV0lUSCBDQVJPTjtMdTswO0w7MDA0QiAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSyBIQUNFSzs7OzAxRTk7CiswMUU5O0xBVElOIFNNQUxMIExFVFRFUiBLIFdJVEggQ0FST047TGw7MDtMOzAwNkIgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBLIEhBQ0VLOzswMUU4OzswMUU4CiswMUVBO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBPR09ORUs7THU7MDtMOzAwNEYgMDMyODs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gT0dPTkVLOzs7MDFFQjsKKzAxRUI7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBPR09ORUs7TGw7MDtMOzAwNkYgMDMyODs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIE9HT05FSzs7MDFFQTs7MDFFQQorMDFFQztMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggT0dPTkVLIEFORCBNQUNST047THU7MDtMOzAxRUEgMDMwNDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gT0dPTkVLIE1BQ1JPTjs7OzAxRUQ7CiswMUVEO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggT0dPTkVLIEFORCBNQUNST047TGw7MDtMOzAxRUIgMDMwNDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIE9HT05FSyBNQUNST047OzAxRUM7OzAxRUMKKzAxRUU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRVpIIFdJVEggQ0FST047THU7MDtMOzAxQjcgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFlPR0ggSEFDRUs7OzswMUVGOworMDFFRjtMQVRJTiBTTUFMTCBMRVRURVIgRVpIIFdJVEggQ0FST047TGw7MDtMOzAyOTIgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBZT0dIIEhBQ0VLOzswMUVFOzswMUVFCiswMUYwO0xBVElOIFNNQUxMIExFVFRFUiBKIFdJVEggQ0FST047TGw7MDtMOzAwNkEgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBKIEhBQ0VLOzs7OworMDFGMTtMQVRJTiBDQVBJVEFMIExFVFRFUiBEWjtMdTswO0w7PGNvbXBhdD4gMDA0NCAwMDVBOzs7O047Ozs7MDFGMzswMUYyCiswMUYyO0xBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBTTUFMTCBMRVRURVIgWjtMdDswO0w7PGNvbXBhdD4gMDA0NCAwMDdBOzs7O047OzswMUYxOzAxRjM7CiswMUYzO0xBVElOIFNNQUxMIExFVFRFUiBEWjtMbDswO0w7PGNvbXBhdD4gMDA2NCAwMDdBOzs7O047OzswMUYxOzswMUYyCiswMUY0O0xBVElOIENBUElUQUwgTEVUVEVSIEcgV0lUSCBBQ1VURTtMdTswO0w7MDA0NyAwMzAxOzs7O047Ozs7MDFGNTsKKzAxRjU7TEFUSU4gU01BTEwgTEVUVEVSIEcgV0lUSCBBQ1VURTtMbDswO0w7MDA2NyAwMzAxOzs7O047OzswMUY0OzswMUY0CiswMUZBO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBSSU5HIEFCT1ZFIEFORCBBQ1VURTtMdTswO0w7MDBDNSAwMzAxOzs7O047Ozs7MDFGQjsKKzAxRkI7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBSSU5HIEFCT1ZFIEFORCBBQ1VURTtMbDswO0w7MDBFNSAwMzAxOzs7O047OzswMUZBOzswMUZBCiswMUZDO0xBVElOIENBUElUQUwgTEVUVEVSIEFFIFdJVEggQUNVVEU7THU7MDtMOzAwQzYgMDMwMTs7OztOOzs7OzAxRkQ7CiswMUZEO0xBVElOIFNNQUxMIExFVFRFUiBBRSBXSVRIIEFDVVRFO0xsOzA7TDswMEU2IDAzMDE7Ozs7Tjs7OzAxRkM7OzAxRkMKKzAxRkU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIFNUUk9LRSBBTkQgQUNVVEU7THU7MDtMOzAwRDggMDMwMTs7OztOOzs7OzAxRkY7CiswMUZGO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggU1RST0tFIEFORCBBQ1VURTtMbDswO0w7MDBGOCAwMzAxOzs7O047OzswMUZFOzswMUZFCiswMjAwO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBET1VCTEUgR1JBVkU7THU7MDtMOzAwNDEgMDMwRjs7OztOOzs7OzAyMDE7CiswMjAxO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggRE9VQkxFIEdSQVZFO0xsOzA7TDswMDYxIDAzMEY7Ozs7Tjs7OzAyMDA7OzAyMDAKKzAyMDI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIElOVkVSVEVEIEJSRVZFO0x1OzA7TDswMDQxIDAzMTE7Ozs7Tjs7OzswMjAzOworMDIwMztMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIElOVkVSVEVEIEJSRVZFO0xsOzA7TDswMDYxIDAzMTE7Ozs7Tjs7OzAyMDI7OzAyMDIKKzAyMDQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIERPVUJMRSBHUkFWRTtMdTswO0w7MDA0NSAwMzBGOzs7O047Ozs7MDIwNTsKKzAyMDU7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBET1VCTEUgR1JBVkU7TGw7MDtMOzAwNjUgMDMwRjs7OztOOzs7MDIwNDs7MDIwNAorMDIwNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggSU5WRVJURUQgQlJFVkU7THU7MDtMOzAwNDUgMDMxMTs7OztOOzs7OzAyMDc7CiswMjA3O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggSU5WRVJURUQgQlJFVkU7TGw7MDtMOzAwNjUgMDMxMTs7OztOOzs7MDIwNjs7MDIwNgorMDIwODtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRE9VQkxFIEdSQVZFO0x1OzA7TDswMDQ5IDAzMEY7Ozs7Tjs7OzswMjA5OworMDIwOTtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIERPVUJMRSBHUkFWRTtMbDswO0w7MDA2OSAwMzBGOzs7O047OzswMjA4OzswMjA4CiswMjBBO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBJTlZFUlRFRCBCUkVWRTtMdTswO0w7MDA0OSAwMzExOzs7O047Ozs7MDIwQjsKKzAyMEI7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBJTlZFUlRFRCBCUkVWRTtMbDswO0w7MDA2OSAwMzExOzs7O047OzswMjBBOzswMjBBCiswMjBDO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBET1VCTEUgR1JBVkU7THU7MDtMOzAwNEYgMDMwRjs7OztOOzs7OzAyMEQ7CiswMjBEO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggRE9VQkxFIEdSQVZFO0xsOzA7TDswMDZGIDAzMEY7Ozs7Tjs7OzAyMEM7OzAyMEMKKzAyMEU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIElOVkVSVEVEIEJSRVZFO0x1OzA7TDswMDRGIDAzMTE7Ozs7Tjs7OzswMjBGOworMDIwRjtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIElOVkVSVEVEIEJSRVZFO0xsOzA7TDswMDZGIDAzMTE7Ozs7Tjs7OzAyMEU7OzAyMEUKKzAyMTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBXSVRIIERPVUJMRSBHUkFWRTtMdTswO0w7MDA1MiAwMzBGOzs7O047Ozs7MDIxMTsKKzAyMTE7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBET1VCTEUgR1JBVkU7TGw7MDtMOzAwNzIgMDMwRjs7OztOOzs7MDIxMDs7MDIxMAorMDIxMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBSIFdJVEggSU5WRVJURUQgQlJFVkU7THU7MDtMOzAwNTIgMDMxMTs7OztOOzs7OzAyMTM7CiswMjEzO0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggSU5WRVJURUQgQlJFVkU7TGw7MDtMOzAwNzIgMDMxMTs7OztOOzs7MDIxMjs7MDIxMgorMDIxNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggRE9VQkxFIEdSQVZFO0x1OzA7TDswMDU1IDAzMEY7Ozs7Tjs7OzswMjE1OworMDIxNTtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIERPVUJMRSBHUkFWRTtMbDswO0w7MDA3NSAwMzBGOzs7O047OzswMjE0OzswMjE0CiswMjE2O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBJTlZFUlRFRCBCUkVWRTtMdTswO0w7MDA1NSAwMzExOzs7O047Ozs7MDIxNzsKKzAyMTc7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBJTlZFUlRFRCBCUkVWRTtMbDswO0w7MDA3NSAwMzExOzs7O047OzswMjE2OzswMjE2CiswMjUwO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgQTtMbDswO0w7Ozs7O047Ozs7OworMDI1MTtMQVRJTiBTTUFMTCBMRVRURVIgQUxQSEE7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBTQ1JJUFQgQTs7OzsKKzAyNTI7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBBTFBIQTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBTQ1JJUFQgQTs7OzsKKzAyNTM7TEFUSU4gU01BTEwgTEVUVEVSIEIgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQiBIT09LOzswMTgxOzswMTgxCiswMjU0O0xBVElOIFNNQUxMIExFVFRFUiBPUEVOIE87TGw7MDtMOzs7OztOOzs7MDE4Njs7MDE4NgorMDI1NTtMQVRJTiBTTUFMTCBMRVRURVIgQyBXSVRIIENVUkw7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBDIENVUkw7Ozs7CiswMjU2O0xBVElOIFNNQUxMIExFVFRFUiBEIFdJVEggVEFJTDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEQgUkVUUk9GTEVYIEhPT0s7OzAxODk7OzAxODkKKzAyNTc7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRCBIT09LOzswMThBOzswMThBCiswMjU4O0xBVElOIFNNQUxMIExFVFRFUiBSRVZFUlNFRCBFO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjU5O0xBVElOIFNNQUxMIExFVFRFUiBTQ0hXQTtMbDswO0w7Ozs7O047OzswMThGOzswMThGCiswMjVBO0xBVElOIFNNQUxMIExFVFRFUiBTQ0hXQSBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBTQ0hXQSBIT09LOzs7OworMDI1QjtMQVRJTiBTTUFMTCBMRVRURVIgT1BFTiBFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRVBTSUxPTjs7MDE5MDs7MDE5MAorMDI1QztMQVRJTiBTTUFMTCBMRVRURVIgUkVWRVJTRUQgT1BFTiBFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUkVWRVJTRUQgRVBTSUxPTjs7OzsKKzAyNUQ7TEFUSU4gU01BTEwgTEVUVEVSIFJFVkVSU0VEIE9QRU4gRSBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBSRVZFUlNFRCBFUFNJTE9OIEhPT0s7Ozs7CiswMjVFO0xBVElOIFNNQUxMIExFVFRFUiBDTE9TRUQgUkVWRVJTRUQgT1BFTiBFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQ0xPU0VEIFJFVkVSU0VEIEVQU0lMT047Ozs7CiswMjVGO0xBVElOIFNNQUxMIExFVFRFUiBET1RMRVNTIEogV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBET1RMRVNTIEogQkFSOzs7OworMDI2MDtMQVRJTiBTTUFMTCBMRVRURVIgRyBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBHIEhPT0s7OzAxOTM7OzAxOTMKKzAyNjE7TEFUSU4gU01BTEwgTEVUVEVSIFNDUklQVCBHO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjYyO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIEc7TGw7MDtMOzs7OztOOzs7OzsKKzAyNjM7TEFUSU4gU01BTEwgTEVUVEVSIEdBTU1BO0xsOzA7TDs7Ozs7Tjs7OzAxOTQ7OzAxOTQKKzAyNjQ7TEFUSU4gU01BTEwgTEVUVEVSIFJBTVMgSE9STjtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEJBQlkgR0FNTUE7Ozs7CiswMjY1O0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgSDtMbDswO0w7Ozs7O047Ozs7OworMDI2NjtMQVRJTiBTTUFMTCBMRVRURVIgSCBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBIIEhPT0s7Ozs7CiswMjY3O0xBVElOIFNNQUxMIExFVFRFUiBIRU5HIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEhFTkcgSE9PSzs7OzsKKzAyNjg7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBCQVJSRUQgSTs7MDE5Nzs7MDE5NworMDI2OTtMQVRJTiBTTUFMTCBMRVRURVIgSU9UQTtMbDswO0w7Ozs7O047OzswMTk2OzswMTk2CiswMjZBO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIEk7TGw7MDtMOzs7OztOOzs7OzsKKzAyNkI7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBNSURETEUgVElMREU7TGw7MDtMOzs7OztOOzs7OzsKKzAyNkM7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBCRUxUO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTCBCRUxUOzs7OworMDI2RDtMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIFJFVFJPRkxFWCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTCBSRVRST0ZMRVggSE9PSzs7OzsKKzAyNkU7TEFUSU4gU01BTEwgTEVUVEVSIExFWkg7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBMIFlPR0g7Ozs7CiswMjZGO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgTTtMbDswO0w7Ozs7O047OzswMTlDOzswMTlDCiswMjcwO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgTSBXSVRIIExPTkcgTEVHO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjcxO0xBVElOIFNNQUxMIExFVFRFUiBNIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE0gSE9PSzs7OzsKKzAyNzI7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBMRUZUIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBOIEhPT0s7OzAxOUQ7OzAxOUQKKzAyNzM7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBSRVRST0ZMRVggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE4gUkVUUk9GTEVYIEhPT0s7Ozs7CiswMjc0O0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIE47TGw7MDtMOzs7OztOOzs7OzsKKzAyNzU7TEFUSU4gU01BTEwgTEVUVEVSIEJBUlJFRCBPO0xsOzA7TDs7Ozs7Tjs7OzswMTlGOworMDI3NjtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBPRTtMbDswO0w7Ozs7O047TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgTyBFOzs7OworMDI3NztMQVRJTiBTTUFMTCBMRVRURVIgQ0xPU0VEIE9NRUdBO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjc4O0xBVElOIFNNQUxMIExFVFRFUiBQSEk7TGw7MDtMOzs7OztOOzs7OzsKKzAyNzk7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBSO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjdBO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgUiBXSVRIIExPTkcgTEVHO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjdCO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgUiBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgUiBIT09LOzs7OworMDI3QztMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIExPTkcgTEVHO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjdEO0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggVEFJTDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFIgSE9PSzs7OzsKKzAyN0U7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBGSVNISE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEZJU0hIT09LIFI7Ozs7CiswMjdGO0xBVElOIFNNQUxMIExFVFRFUiBSRVZFUlNFRCBSIFdJVEggRklTSEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBSRVZFUlNFRCBGSVNISE9PSyBSOzs7OworMDI4MDtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBSO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjgxO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIElOVkVSVEVEIFI7TGw7MDtMOzs7OztOOzs7OzsKKzAyODI7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUyBIT09LOzs7OworMDI4MztMQVRJTiBTTUFMTCBMRVRURVIgRVNIO0xsOzA7TDs7Ozs7Tjs7OzAxQTk7OzAxQTkKKzAyODQ7TEFUSU4gU01BTEwgTEVUVEVSIERPVExFU1MgSiBXSVRIIFNUUk9LRSBBTkQgSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIERPVExFU1MgSiBCQVIgSE9PSzs7OzsKKzAyODU7TEFUSU4gU01BTEwgTEVUVEVSIFNRVUFUIFJFVkVSU0VEIEVTSDtMbDswO0w7Ozs7O047Ozs7OworMDI4NjtMQVRJTiBTTUFMTCBMRVRURVIgRVNIIFdJVEggQ1VSTDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEVTSCBDVVJMOzs7OworMDI4NztMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIFQ7TGw7MDtMOzs7OztOOzs7OzsKKzAyODg7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBSRVRST0ZMRVggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFQgUkVUUk9GTEVYIEhPT0s7OzAxQUU7OzAxQUUKKzAyODk7TEFUSU4gU01BTEwgTEVUVEVSIFUgQkFSO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjhBO0xBVElOIFNNQUxMIExFVFRFUiBVUFNJTE9OO0xsOzA7TDs7Ozs7Tjs7OzAxQjE7OzAxQjEKKzAyOEI7TEFUSU4gU01BTEwgTEVUVEVSIFYgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgU0NSSVBUIFY7OzAxQjI7OzAxQjIKKzAyOEM7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBWO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjhEO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgVztMbDswO0w7Ozs7O047Ozs7OworMDI4RTtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIFk7TGw7MDtMOzs7OztOOzs7OzsKKzAyOEY7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgWTtMbDswO0w7Ozs7O047Ozs7OworMDI5MDtMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIFJFVFJPRkxFWCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWiBSRVRST0ZMRVggSE9PSzs7OzsKKzAyOTE7TEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBDVVJMO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWiBDVVJMOzs7OworMDI5MjtMQVRJTiBTTUFMTCBMRVRURVIgRVpIO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWU9HSDs7MDFCNzs7MDFCNworMDI5MztMQVRJTiBTTUFMTCBMRVRURVIgRVpIIFdJVEggQ1VSTDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFlPR0ggQ1VSTDs7OzsKKzAyOTQ7TEFUSU4gTEVUVEVSIEdMT1RUQUwgU1RPUDtMbDswO0w7Ozs7O047Ozs7OworMDI5NTtMQVRJTiBMRVRURVIgUEhBUllOR0VBTCBWT0lDRUQgRlJJQ0FUSVZFO0xsOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgUkVWRVJTRUQgR0xPVFRBTCBTVE9QOzs7OworMDI5NjtMQVRJTiBMRVRURVIgSU5WRVJURUQgR0xPVFRBTCBTVE9QO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjk3O0xBVElOIExFVFRFUiBTVFJFVENIRUQgQztMbDswO0w7Ozs7O047Ozs7OworMDI5ODtMQVRJTiBMRVRURVIgQklMQUJJQUwgQ0xJQ0s7TGw7MDtMOzs7OztOO0xBVElOIExFVFRFUiBCVUxMU0VZRTs7OzsKKzAyOTk7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgQjtMbDswO0w7Ozs7O047Ozs7OworMDI5QTtMQVRJTiBTTUFMTCBMRVRURVIgQ0xPU0VEIE9QRU4gRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIENMT1NFRCBFUFNJTE9OOzs7OworMDI5QjtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBHIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgRyBIT09LOzs7OworMDI5QztMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBIO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjlEO0xBVElOIFNNQUxMIExFVFRFUiBKIFdJVEggQ1JPU1NFRC1UQUlMO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQ1JPU1NFRC1UQUlMIEo7Ozs7CiswMjlFO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgSztMbDswO0w7Ozs7O047Ozs7OworMDI5RjtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBMO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMkEwO0xBVElOIFNNQUxMIExFVFRFUiBRIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFEgSE9PSzs7OzsKKzAyQTE7TEFUSU4gTEVUVEVSIEdMT1RUQUwgU1RPUCBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gTEVUVEVSIEdMT1RUQUwgU1RPUCBCQVI7Ozs7CiswMkEyO0xBVElOIExFVFRFUiBSRVZFUlNFRCBHTE9UVEFMIFNUT1AgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIExFVFRFUiBSRVZFUlNFRCBHTE9UVEFMIFNUT1AgQkFSOzs7OworMDJBMztMQVRJTiBTTUFMTCBMRVRURVIgRFogRElHUkFQSDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEQgWjs7OzsKKzAyQTQ7TEFUSU4gU01BTEwgTEVUVEVSIERFWkggRElHUkFQSDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEQgWU9HSDs7OzsKKzAyQTU7TEFUSU4gU01BTEwgTEVUVEVSIERaIERJR1JBUEggV0lUSCBDVVJMO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRCBaIENVUkw7Ozs7CiswMkE2O0xBVElOIFNNQUxMIExFVFRFUiBUUyBESUdSQVBIO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVCBTOzs7OworMDJBNztMQVRJTiBTTUFMTCBMRVRURVIgVEVTSCBESUdSQVBIO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVCBFU0g7Ozs7CiswMkE4O0xBVElOIFNNQUxMIExFVFRFUiBUQyBESUdSQVBIIFdJVEggQ1VSTDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFQgQyBDVVJMOzs7OworMDJCMDtNT0RJRklFUiBMRVRURVIgU01BTEwgSDtMbTswO0w7PHN1cGVyPiAwMDY4Ozs7O047Ozs7OworMDJCMTtNT0RJRklFUiBMRVRURVIgU01BTEwgSCBXSVRIIEhPT0s7TG07MDtMOzxzdXBlcj4gMDI2Njs7OztOO01PRElGSUVSIExFVFRFUiBTTUFMTCBIIEhPT0s7Ozs7CiswMkIyO01PRElGSUVSIExFVFRFUiBTTUFMTCBKO0xtOzA7TDs8c3VwZXI+IDAwNkE7Ozs7Tjs7Ozs7CiswMkIzO01PRElGSUVSIExFVFRFUiBTTUFMTCBSO0xtOzA7TDs8c3VwZXI+IDAwNzI7Ozs7Tjs7Ozs7CiswMkI0O01PRElGSUVSIExFVFRFUiBTTUFMTCBUVVJORUQgUjtMbTswO0w7PHN1cGVyPiAwMjc5Ozs7O047Ozs7OworMDJCNTtNT0RJRklFUiBMRVRURVIgU01BTEwgVFVSTkVEIFIgV0lUSCBIT09LO0xtOzA7TDs8c3VwZXI+IDAyN0I7Ozs7TjtNT0RJRklFUiBMRVRURVIgU01BTEwgVFVSTkVEIFIgSE9PSzs7OzsKKzAyQjY7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIENBUElUQUwgSU5WRVJURUQgUjtMbTswO0w7PHN1cGVyPiAwMjgxOzs7O047Ozs7OworMDJCNztNT0RJRklFUiBMRVRURVIgU01BTEwgVztMbTswO0w7PHN1cGVyPiAwMDc3Ozs7O047Ozs7OworMDJCODtNT0RJRklFUiBMRVRURVIgU01BTEwgWTtMbTswO0w7PHN1cGVyPiAwMDc5Ozs7O047Ozs7OworMDJCOTtNT0RJRklFUiBMRVRURVIgUFJJTUU7U2s7MDtMOzs7OztOOzs7OzsKKzAyQkE7TU9ESUZJRVIgTEVUVEVSIERPVUJMRSBQUklNRTtTazswO0w7Ozs7O047Ozs7OworMDJCQjtNT0RJRklFUiBMRVRURVIgVFVSTkVEIENPTU1BO0xtOzA7TDs7Ozs7Tjs7Ozs7CiswMkJDO01PRElGSUVSIExFVFRFUiBBUE9TVFJPUEhFO0xtOzA7TDs7Ozs7Tjs7Ozs7CiswMkJEO01PRElGSUVSIExFVFRFUiBSRVZFUlNFRCBDT01NQTtMbTswO0w7Ozs7O047Ozs7OworMDJCRTtNT0RJRklFUiBMRVRURVIgUklHSFQgSEFMRiBSSU5HO0xtOzA7TDs7Ozs7Tjs7Ozs7CiswMkJGO01PRElGSUVSIExFVFRFUiBMRUZUIEhBTEYgUklORztMbTswO0w7Ozs7O047Ozs7OworMDJDMDtNT0RJRklFUiBMRVRURVIgR0xPVFRBTCBTVE9QO0xtOzA7TDs7Ozs7Tjs7Ozs7CiswMkMxO01PRElGSUVSIExFVFRFUiBSRVZFUlNFRCBHTE9UVEFMIFNUT1A7TG07MDtMOzs7OztOOzs7OzsKKzAyQzI7TU9ESUZJRVIgTEVUVEVSIExFRlQgQVJST1dIRUFEO1NrOzA7TDs7Ozs7Tjs7Ozs7CiswMkMzO01PRElGSUVSIExFVFRFUiBSSUdIVCBBUlJPV0hFQUQ7U2s7MDtMOzs7OztOOzs7OzsKKzAyQzQ7TU9ESUZJRVIgTEVUVEVSIFVQIEFSUk9XSEVBRDtTazswO0w7Ozs7O047Ozs7OworMDJDNTtNT0RJRklFUiBMRVRURVIgRE9XTiBBUlJPV0hFQUQ7U2s7MDtMOzs7OztOOzs7OzsKKzAyQzY7TU9ESUZJRVIgTEVUVEVSIENJUkNVTUZMRVggQUNDRU5UO1NrOzA7TDs7Ozs7TjtNT0RJRklFUiBMRVRURVIgQ0lSQ1VNRkxFWDs7OzsKKzAyQzc7Q0FST047U2s7MDtMOzs7OztOO01PRElGSUVSIExFVFRFUiBIQUNFSztNYW5kYXJpbiBDaGluZXNlIHRoaXJkIHRvbmU7OzsKKzAyQzg7TU9ESUZJRVIgTEVUVEVSIFZFUlRJQ0FMIExJTkU7U2s7MDtMOzs7OztOOzs7OzsKKzAyQzk7TU9ESUZJRVIgTEVUVEVSIE1BQ1JPTjtTazswO0w7Ozs7O047O01hbmRhcmluIENoaW5lc2UgZmlyc3QgdG9uZTs7OworMDJDQTtNT0RJRklFUiBMRVRURVIgQUNVVEUgQUNDRU5UO1NrOzA7TDs7Ozs7TjtNT0RJRklFUiBMRVRURVIgQUNVVEU7TWFuZGFyaW4gQ2hpbmVzZSBzZWNvbmQgdG9uZTs7OworMDJDQjtNT0RJRklFUiBMRVRURVIgR1JBVkUgQUNDRU5UO1NrOzA7TDs7Ozs7TjtNT0RJRklFUiBMRVRURVIgR1JBVkU7TWFuZGFyaW4gQ2hpbmVzZSBmb3VydGggdG9uZTs7OworMDJDQztNT0RJRklFUiBMRVRURVIgTE9XIFZFUlRJQ0FMIExJTkU7U2s7MDtMOzs7OztOOzs7OzsKKzAyQ0Q7TU9ESUZJRVIgTEVUVEVSIExPVyBNQUNST047U2s7MDtMOzs7OztOOzs7OzsKKzAyQ0U7TU9ESUZJRVIgTEVUVEVSIExPVyBHUkFWRSBBQ0NFTlQ7U2s7MDtMOzs7OztOO01PRElGSUVSIExFVFRFUiBMT1cgR1JBVkU7Ozs7CiswMkNGO01PRElGSUVSIExFVFRFUiBMT1cgQUNVVEUgQUNDRU5UO1NrOzA7TDs7Ozs7TjtNT0RJRklFUiBMRVRURVIgTE9XIEFDVVRFOzs7OworMDJEMDtNT0RJRklFUiBMRVRURVIgVFJJQU5HVUxBUiBDT0xPTjtMbTswO0w7Ozs7O047Ozs7OworMDJEMTtNT0RJRklFUiBMRVRURVIgSEFMRiBUUklBTkdVTEFSIENPTE9OO0xtOzA7TDs7Ozs7Tjs7Ozs7CiswMkQyO01PRElGSUVSIExFVFRFUiBDRU5UUkVEIFJJR0hUIEhBTEYgUklORztTazswO0w7Ozs7O047TU9ESUZJRVIgTEVUVEVSIENFTlRFUkVEIFJJR0hUIEhBTEYgUklORzs7OzsKKzAyRDM7TU9ESUZJRVIgTEVUVEVSIENFTlRSRUQgTEVGVCBIQUxGIFJJTkc7U2s7MDtMOzs7OztOO01PRElGSUVSIExFVFRFUiBDRU5URVJFRCBMRUZUIEhBTEYgUklORzs7OzsKKzAyRDQ7TU9ESUZJRVIgTEVUVEVSIFVQIFRBQ0s7U2s7MDtMOzs7OztOOzs7OzsKKzAyRDU7TU9ESUZJRVIgTEVUVEVSIERPV04gVEFDSztTazswO0w7Ozs7O047Ozs7OworMDJENjtNT0RJRklFUiBMRVRURVIgUExVUyBTSUdOO1NrOzA7TDs7Ozs7Tjs7Ozs7CiswMkQ3O01PRElGSUVSIExFVFRFUiBNSU5VUyBTSUdOO1NrOzA7TDs7Ozs7Tjs7Ozs7CiswMkQ4O0JSRVZFO1NrOzA7TDs8Y29tcGF0PiAwMDIwIDAzMDY7Ozs7TjtTUEFDSU5HIEJSRVZFOzs7OworMDJEOTtET1QgQUJPVkU7U2s7MDtMOzxjb21wYXQ+IDAwMjAgMDMwNzs7OztOO1NQQUNJTkcgRE9UIEFCT1ZFO01hbmRhcmluIENoaW5lc2UgbGlnaHQgdG9uZTs7OworMDJEQTtSSU5HIEFCT1ZFO1NrOzA7TDs8Y29tcGF0PiAwMDIwIDAzMEE7Ozs7TjtTUEFDSU5HIFJJTkcgQUJPVkU7Ozs7CiswMkRCO09HT05FSztTazswO0w7PGNvbXBhdD4gMDAyMCAwMzI4Ozs7O047U1BBQ0lORyBPR09ORUs7Ozs7CiswMkRDO1NNQUxMIFRJTERFO1NrOzA7TDs8Y29tcGF0PiAwMDIwIDAzMDM7Ozs7TjtTUEFDSU5HIFRJTERFOzs7OworMDJERDtET1VCTEUgQUNVVEUgQUNDRU5UO1NrOzA7TDs8Y29tcGF0PiAwMDIwIDAzMEI7Ozs7TjtTUEFDSU5HIERPVUJMRSBBQ1VURTs7OzsKKzAyREU7TU9ESUZJRVIgTEVUVEVSIFJIT1RJQyBIT09LO1NrOzA7TDs7Ozs7Tjs7Ozs7CiswMkUwO01PRElGSUVSIExFVFRFUiBTTUFMTCBHQU1NQTtMbTswO0w7PHN1cGVyPiAwMjYzOzs7O047Ozs7OworMDJFMTtNT0RJRklFUiBMRVRURVIgU01BTEwgTDtMbTswO0w7PHN1cGVyPiAwMDZDOzs7O047Ozs7OworMDJFMjtNT0RJRklFUiBMRVRURVIgU01BTEwgUztMbTswO0w7PHN1cGVyPiAwMDczOzs7O047Ozs7OworMDJFMztNT0RJRklFUiBMRVRURVIgU01BTEwgWDtMbTswO0w7PHN1cGVyPiAwMDc4Ozs7O047Ozs7OworMDJFNDtNT0RJRklFUiBMRVRURVIgU01BTEwgUkVWRVJTRUQgR0xPVFRBTCBTVE9QO0xtOzA7TDs8c3VwZXI+IDAyOTU7Ozs7Tjs7Ozs7CiswMkU1O01PRElGSUVSIExFVFRFUiBFWFRSQS1ISUdIIFRPTkUgQkFSO1NrOzA7TDs7Ozs7Tjs7Ozs7CiswMkU2O01PRElGSUVSIExFVFRFUiBISUdIIFRPTkUgQkFSO1NrOzA7TDs7Ozs7Tjs7Ozs7CiswMkU3O01PRElGSUVSIExFVFRFUiBNSUQgVE9ORSBCQVI7U2s7MDtMOzs7OztOOzs7OzsKKzAyRTg7TU9ESUZJRVIgTEVUVEVSIExPVyBUT05FIEJBUjtTazswO0w7Ozs7O047Ozs7OworMDJFOTtNT0RJRklFUiBMRVRURVIgRVhUUkEtTE9XIFRPTkUgQkFSO1NrOzA7TDs7Ozs7Tjs7Ozs7CiswMzAwO0NPTUJJTklORyBHUkFWRSBBQ0NFTlQ7TW47MjMwO0w7Ozs7O047Tk9OLVNQQUNJTkcgR1JBVkU7VmFyaWE7OzsKKzAzMDE7Q09NQklOSU5HIEFDVVRFIEFDQ0VOVDtNbjsyMzA7TDs7Ozs7TjtOT04tU1BBQ0lORyBBQ1VURTtPeGlhOzs7CiswMzAyO0NPTUJJTklORyBDSVJDVU1GTEVYIEFDQ0VOVDtNbjsyMzA7TDs7Ozs7TjtOT04tU1BBQ0lORyBDSVJDVU1GTEVYOzs7OworMDMwMztDT01CSU5JTkcgVElMREU7TW47MjMwO0w7Ozs7O047Tk9OLVNQQUNJTkcgVElMREU7Ozs7CiswMzA0O0NPTUJJTklORyBNQUNST047TW47MjMwO0w7Ozs7O047Tk9OLVNQQUNJTkcgTUFDUk9OOzs7OworMDMwNTtDT01CSU5JTkcgT1ZFUkxJTkU7TW47MjMwO0w7Ozs7O047Tk9OLVNQQUNJTkcgT1ZFUlNDT1JFOzs7OworMDMwNjtDT01CSU5JTkcgQlJFVkU7TW47MjMwO0w7Ozs7O047Tk9OLVNQQUNJTkcgQlJFVkU7VnJhY2h5Ozs7CiswMzA3O0NPTUJJTklORyBET1QgQUJPVkU7TW47MjMwO0w7Ozs7O047Tk9OLVNQQUNJTkcgRE9UIEFCT1ZFOzs7OworMDMwODtDT01CSU5JTkcgRElBRVJFU0lTO01uOzIzMDtMOzs7OztOO05PTi1TUEFDSU5HIERJQUVSRVNJUztEaWFseXRpa2E7OzsKKzAzMDk7Q09NQklOSU5HIEhPT0sgQUJPVkU7TW47MjMwO0w7Ozs7O047Tk9OLVNQQUNJTkcgSE9PSyBBQk9WRTs7OzsKKzAzMEE7Q09NQklOSU5HIFJJTkcgQUJPVkU7TW47MjMwO0w7Ozs7O047Tk9OLVNQQUNJTkcgUklORyBBQk9WRTs7OzsKKzAzMEI7Q09NQklOSU5HIERPVUJMRSBBQ1VURSBBQ0NFTlQ7TW47MjMwO0w7Ozs7O047Tk9OLVNQQUNJTkcgRE9VQkxFIEFDVVRFOzs7OworMDMwQztDT01CSU5JTkcgQ0FST047TW47MjMwO0w7Ozs7O047Tk9OLVNQQUNJTkcgSEFDRUs7Ozs7CiswMzBEO0NPTUJJTklORyBWRVJUSUNBTCBMSU5FIEFCT1ZFO01uOzIzMDtMOzs7OztOO05PTi1TUEFDSU5HIFZFUlRJQ0FMIExJTkUgQUJPVkU7VG9ub3M7OzsKKzAzMEU7Q09NQklOSU5HIERPVUJMRSBWRVJUSUNBTCBMSU5FIEFCT1ZFO01uOzIzMDtMOzs7OztOO05PTi1TUEFDSU5HIERPVUJMRSBWRVJUSUNBTCBMSU5FIEFCT1ZFOzs7OworMDMwRjtDT01CSU5JTkcgRE9VQkxFIEdSQVZFIEFDQ0VOVDtNbjsyMzA7TDs7Ozs7TjtOT04tU1BBQ0lORyBET1VCTEUgR1JBVkU7Ozs7CiswMzEwO0NPTUJJTklORyBDQU5EUkFCSU5EVTtNbjsyMzA7TDswMzA2IDAzMDc7Ozs7TjtOT04tU1BBQ0lORyBDQU5EUkFCSU5EVTs7OzsKKzAzMTE7Q09NQklOSU5HIElOVkVSVEVEIEJSRVZFO01uOzIzMDtMOzs7OztOO05PTi1TUEFDSU5HIElOVkVSVEVEIEJSRVZFOzs7OworMDMxMjtDT01CSU5JTkcgVFVSTkVEIENPTU1BIEFCT1ZFO01uOzIzMDtMOzs7OztOO05PTi1TUEFDSU5HIFRVUk5FRCBDT01NQSBBQk9WRTs7OzsKKzAzMTM7Q09NQklOSU5HIENPTU1BIEFCT1ZFO01uOzIzMDtMOzs7OztOO05PTi1TUEFDSU5HIENPTU1BIEFCT1ZFO1BzaWxpOzs7CiswMzE0O0NPTUJJTklORyBSRVZFUlNFRCBDT01NQSBBQk9WRTtNbjsyMzA7TDs7Ozs7TjtOT04tU1BBQ0lORyBSRVZFUlNFRCBDT01NQSBBQk9WRTtEYXNpYTs7OworMDMxNTtDT01CSU5JTkcgQ09NTUEgQUJPVkUgUklHSFQ7TW47MjMyO0w7Ozs7O047Tk9OLVNQQUNJTkcgQ09NTUEgQUJPVkUgUklHSFQ7Ozs7CiswMzE2O0NPTUJJTklORyBHUkFWRSBBQ0NFTlQgQkVMT1c7TW47MjIwO0w7Ozs7O047Tk9OLVNQQUNJTkcgR1JBVkUgQkVMT1c7Ozs7CiswMzE3O0NPTUJJTklORyBBQ1VURSBBQ0NFTlQgQkVMT1c7TW47MjIwO0w7Ozs7O047Tk9OLVNQQUNJTkcgQUNVVEUgQkVMT1c7Ozs7CiswMzE4O0NPTUJJTklORyBMRUZUIFRBQ0sgQkVMT1c7TW47MjIwO0w7Ozs7O047Tk9OLVNQQUNJTkcgTEVGVCBUQUNLIEJFTE9XOzs7OworMDMxOTtDT01CSU5JTkcgUklHSFQgVEFDSyBCRUxPVztNbjsyMjA7TDs7Ozs7TjtOT04tU1BBQ0lORyBSSUdIVCBUQUNLIEJFTE9XOzs7OworMDMxQTtDT01CSU5JTkcgTEVGVCBBTkdMRSBBQk9WRTtNbjsyMzI7TDs7Ozs7TjtOT04tU1BBQ0lORyBMRUZUIEFOR0xFIEFCT1ZFOzs7OworMDMxQjtDT01CSU5JTkcgSE9STjtNbjsyMTY7TDs7Ozs7TjtOT04tU1BBQ0lORyBIT1JOOzs7OworMDMxQztDT01CSU5JTkcgTEVGVCBIQUxGIFJJTkcgQkVMT1c7TW47MjIwO0w7Ozs7O047Tk9OLVNQQUNJTkcgTEVGVCBIQUxGIFJJTkcgQkVMT1c7Ozs7CiswMzFEO0NPTUJJTklORyBVUCBUQUNLIEJFTE9XO01uOzIyMDtMOzs7OztOO05PTi1TUEFDSU5HIFVQIFRBQ0sgQkVMT1c7Ozs7CiswMzFFO0NPTUJJTklORyBET1dOIFRBQ0sgQkVMT1c7TW47MjIwO0w7Ozs7O047Tk9OLVNQQUNJTkcgRE9XTiBUQUNLIEJFTE9XOzs7OworMDMxRjtDT01CSU5JTkcgUExVUyBTSUdOIEJFTE9XO01uOzIyMDtMOzs7OztOO05PTi1TUEFDSU5HIFBMVVMgU0lHTiBCRUxPVzs7OzsKKzAzMjA7Q09NQklOSU5HIE1JTlVTIFNJR04gQkVMT1c7TW47MjIwO0w7Ozs7O047Tk9OLVNQQUNJTkcgTUlOVVMgU0lHTiBCRUxPVzs7OzsKKzAzMjE7Q09NQklOSU5HIFBBTEFUQUxJWkVEIEhPT0sgQkVMT1c7TW47MjAyO0w7Ozs7O047Tk9OLVNQQUNJTkcgUEFMQVRBTElaRUQgSE9PSyBCRUxPVzs7OzsKKzAzMjI7Q09NQklOSU5HIFJFVFJPRkxFWCBIT09LIEJFTE9XO01uOzIwMjtMOzs7OztOO05PTi1TUEFDSU5HIFJFVFJPRkxFWCBIT09LIEJFTE9XOzs7OworMDMyMztDT01CSU5JTkcgRE9UIEJFTE9XO01uOzIyMDtMOzs7OztOO05PTi1TUEFDSU5HIERPVCBCRUxPVzs7OzsKKzAzMjQ7Q09NQklOSU5HIERJQUVSRVNJUyBCRUxPVztNbjsyMjA7TDs7Ozs7TjtOT04tU1BBQ0lORyBET1VCTEUgRE9UIEJFTE9XOzs7OworMDMyNTtDT01CSU5JTkcgUklORyBCRUxPVztNbjsyMjA7TDs7Ozs7TjtOT04tU1BBQ0lORyBSSU5HIEJFTE9XOzs7OworMDMyNjtDT01CSU5JTkcgQ09NTUEgQkVMT1c7TW47MjIwO0w7Ozs7O047Tk9OLVNQQUNJTkcgQ09NTUEgQkVMT1c7Ozs7CiswMzI3O0NPTUJJTklORyBDRURJTExBO01uOzIwMjtMOzs7OztOO05PTi1TUEFDSU5HIENFRElMTEE7Ozs7CiswMzI4O0NPTUJJTklORyBPR09ORUs7TW47MjAyO0w7Ozs7O047Tk9OLVNQQUNJTkcgT0dPTkVLOzs7OworMDMyOTtDT01CSU5JTkcgVkVSVElDQUwgTElORSBCRUxPVztNbjsyMjA7TDs7Ozs7TjtOT04tU1BBQ0lORyBWRVJUSUNBTCBMSU5FIEJFTE9XOzs7OworMDMyQTtDT01CSU5JTkcgQlJJREdFIEJFTE9XO01uOzIyMDtMOzs7OztOO05PTi1TUEFDSU5HIEJSSURHRSBCRUxPVzs7OzsKKzAzMkI7Q09NQklOSU5HIElOVkVSVEVEIERPVUJMRSBBUkNIIEJFTE9XO01uOzIyMDtMOzs7OztOO05PTi1TUEFDSU5HIElOVkVSVEVEIERPVUJMRSBBUkNIIEJFTE9XOzs7OworMDMyQztDT01CSU5JTkcgQ0FST04gQkVMT1c7TW47MjIwO0w7Ozs7O047Tk9OLVNQQUNJTkcgSEFDRUsgQkVMT1c7Ozs7CiswMzJEO0NPTUJJTklORyBDSVJDVU1GTEVYIEFDQ0VOVCBCRUxPVztNbjsyMjA7TDs7Ozs7TjtOT04tU1BBQ0lORyBDSVJDVU1GTEVYIEJFTE9XOzs7OworMDMyRTtDT01CSU5JTkcgQlJFVkUgQkVMT1c7TW47MjIwO0w7Ozs7O047Tk9OLVNQQUNJTkcgQlJFVkUgQkVMT1c7Ozs7CiswMzJGO0NPTUJJTklORyBJTlZFUlRFRCBCUkVWRSBCRUxPVztNbjsyMjA7TDs7Ozs7TjtOT04tU1BBQ0lORyBJTlZFUlRFRCBCUkVWRSBCRUxPVzs7OzsKKzAzMzA7Q09NQklOSU5HIFRJTERFIEJFTE9XO01uOzIyMDtMOzs7OztOO05PTi1TUEFDSU5HIFRJTERFIEJFTE9XOzs7OworMDMzMTtDT01CSU5JTkcgTUFDUk9OIEJFTE9XO01uOzIyMDtMOzs7OztOO05PTi1TUEFDSU5HIE1BQ1JPTiBCRUxPVzs7OzsKKzAzMzI7Q09NQklOSU5HIExPVyBMSU5FO01uOzIyMDtMOzs7OztOO05PTi1TUEFDSU5HIFVOREVSU0NPUkU7Ozs7CiswMzMzO0NPTUJJTklORyBET1VCTEUgTE9XIExJTkU7TW47MjIwO0w7Ozs7O047Tk9OLVNQQUNJTkcgRE9VQkxFIFVOREVSU0NPUkU7Ozs7CiswMzM0O0NPTUJJTklORyBUSUxERSBPVkVSTEFZO01uOzE7TDs7Ozs7TjtOT04tU1BBQ0lORyBUSUxERSBPVkVSTEFZOzs7OworMDMzNTtDT01CSU5JTkcgU0hPUlQgU1RST0tFIE9WRVJMQVk7TW47MTtMOzs7OztOO05PTi1TUEFDSU5HIFNIT1JUIEJBUiBPVkVSTEFZOzs7OworMDMzNjtDT01CSU5JTkcgTE9ORyBTVFJPS0UgT1ZFUkxBWTtNbjsxO0w7Ozs7O047Tk9OLVNQQUNJTkcgTE9ORyBCQVIgT1ZFUkxBWTs7OzsKKzAzMzc7Q09NQklOSU5HIFNIT1JUIFNPTElEVVMgT1ZFUkxBWTtNbjsxO0w7Ozs7O047Tk9OLVNQQUNJTkcgU0hPUlQgU0xBU0ggT1ZFUkxBWTs7OzsKKzAzMzg7Q09NQklOSU5HIExPTkcgU09MSURVUyBPVkVSTEFZO01uOzE7TDs7Ozs7TjtOT04tU1BBQ0lORyBMT05HIFNMQVNIIE9WRVJMQVk7Ozs7CiswMzM5O0NPTUJJTklORyBSSUdIVCBIQUxGIFJJTkcgQkVMT1c7TW47MjIwO0w7Ozs7O047Tk9OLVNQQUNJTkcgUklHSFQgSEFMRiBSSU5HIEJFTE9XOzs7OworMDMzQTtDT01CSU5JTkcgSU5WRVJURUQgQlJJREdFIEJFTE9XO01uOzIyMDtMOzs7OztOO05PTi1TUEFDSU5HIElOVkVSVEVEIEJSSURHRSBCRUxPVzs7OzsKKzAzM0I7Q09NQklOSU5HIFNRVUFSRSBCRUxPVztNbjsyMjA7TDs7Ozs7TjtOT04tU1BBQ0lORyBTUVVBUkUgQkVMT1c7Ozs7CiswMzNDO0NPTUJJTklORyBTRUFHVUxMIEJFTE9XO01uOzIyMDtMOzs7OztOO05PTi1TUEFDSU5HIFNFQUdVTEwgQkVMT1c7Ozs7CiswMzNEO0NPTUJJTklORyBYIEFCT1ZFO01uOzIzMDtMOzs7OztOO05PTi1TUEFDSU5HIFggQUJPVkU7Ozs7CiswMzNFO0NPTUJJTklORyBWRVJUSUNBTCBUSUxERTtNbjsyMzA7TDs7Ozs7TjtOT04tU1BBQ0lORyBWRVJUSUNBTCBUSUxERTs7OzsKKzAzM0Y7Q09NQklOSU5HIERPVUJMRSBPVkVSTElORTtNbjsyMzA7TDs7Ozs7TjtOT04tU1BBQ0lORyBET1VCTEUgT1ZFUlNDT1JFOzs7OworMDM0MDtDT01CSU5JTkcgR1JBVkUgVE9ORSBNQVJLO01uOzIzMDtMOzAzMDA7Ozs7TjtOT04tU1BBQ0lORyBHUkFWRSBUT05FIE1BUks7VmlldG5hbWVzZTs7OworMDM0MTtDT01CSU5JTkcgQUNVVEUgVE9ORSBNQVJLO01uOzIzMDtMOzAzMDE7Ozs7TjtOT04tU1BBQ0lORyBBQ1VURSBUT05FIE1BUks7VmlldG5hbWVzZTs7OworMDM0MjtDT01CSU5JTkcgR1JFRUsgUEVSSVNQT01FTkk7TW47MjMwO0w7Ozs7O047Ozs7OworMDM0MztDT01CSU5JTkcgR1JFRUsgS09ST05JUztNbjsyMzA7TDswMzEzOzs7O047Ozs7OworMDM0NDtDT01CSU5JTkcgR1JFRUsgRElBTFlUSUtBIFRPTk9TO01uOzIzMDtMOzAzMDggMDMwRDs7OztOO0dSRUVLIE5PTi1TUEFDSU5HIERJQUVSRVNJUyBUT05PUzs7OzsKKzAzNDU7Q09NQklOSU5HIEdSRUVLIFlQT0dFR1JBTU1FTkk7TW47MjIwO0w7Ozs7O047R1JFRUsgTk9OLVNQQUNJTkcgSU9UQSBCRUxPVzs7OzsKKzAzNjA7Q09NQklOSU5HIERPVUJMRSBUSUxERTtNbjsyMzQ7TDs7Ozs7Tjs7Ozs7CiswMzYxO0NPTUJJTklORyBET1VCTEUgSU5WRVJURUQgQlJFVkU7TW47MjM0O0w7Ozs7O047Ozs7OworMDM3NDtHUkVFSyBOVU1FUkFMIFNJR047UG87MDtMOzAyQjk7Ozs7TjtHUkVFSyBVUFBFUiBOVU1FUkFMIFNJR047RGV4aWEga2VyYWlhOzs7CiswMzc1O0dSRUVLIExPV0VSIE5VTUVSQUwgU0lHTjtQbzswO0w7Ozs7O047O0FyaXN0ZXJpIGtlcmFpYTs7OworMDM3QTtHUkVFSyBZUE9HRUdSQU1NRU5JO0xtOzA7TDs8Y29tcGF0PiAwMDIwIDAzNDU7Ozs7TjtHUkVFSyBTUEFDSU5HIElPVEEgQkVMT1c7Ozs7CiswMzdFO0dSRUVLIFFVRVNUSU9OIE1BUks7UG87MDtMOzAwM0I7Ozs7Tjs7RXJvdGltYXRpa287OzsKKzAzODQ7R1JFRUsgVE9OT1M7U2s7MDtMOzxjb21wYXQ+IDAwMjAgMDMwRDs7OztOO0dSRUVLIFNQQUNJTkcgVE9OT1M7Ozs7CiswMzg1O0dSRUVLIERJQUxZVElLQSBUT05PUztTazswO0w7MDBBOCAwMzBEOzs7O047R1JFRUsgU1BBQ0lORyBESUFFUkVTSVMgVE9OT1M7Ozs7CiswMzg2O0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggVE9OT1M7THU7MDtMOzAzOTEgMDMwRDs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFRPTk9TOzs7MDNBQzsKKzAzODc7R1JFRUsgQU5PIFRFTEVJQTtQbzswO0w7MDBCNzs7OztOOzs7OzsKKzAzODg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVBTSUxPTiBXSVRIIFRPTk9TO0x1OzA7TDswMzk1IDAzMEQ7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OIFRPTk9TOzs7MDNBRDsKKzAzODk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggVE9OT1M7THU7MDtMOzAzOTcgMDMwRDs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBUT05PUzs7OzAzQUU7CiswMzhBO0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBUT05PUztMdTswO0w7MDM5OSAwMzBEOzs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBUT05PUzs7OzAzQUY7CiswMzhDO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NSUNST04gV0lUSCBUT05PUztMdTswO0w7MDM5RiAwMzBEOzs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTiBUT05PUzs7OzAzQ0M7CiswMzhFO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gV0lUSCBUT05PUztMdTswO0w7MDNBNSAwMzBEOzs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBUT05PUzs7OzAzQ0Q7CiswMzhGO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggVE9OT1M7THU7MDtMOzAzQTkgMDMwRDs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFRPTk9TOzs7MDNDRTsKKzAzOTA7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBESUFMWVRJS0EgQU5EIFRPTk9TO0xsOzA7TDswM0I5IDAzNDQ7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBESUFFUkVTSVMgVE9OT1M7Ozs7CiswMzkxO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBO0x1OzA7TDs7Ozs7Tjs7OzswM0IxOworMDM5MjtHUkVFSyBDQVBJVEFMIExFVFRFUiBCRVRBO0x1OzA7TDs7Ozs7Tjs7OzswM0IyOworMDM5MztHUkVFSyBDQVBJVEFMIExFVFRFUiBHQU1NQTtMdTswO0w7Ozs7O047Ozs7MDNCMzsKKzAzOTQ7R1JFRUsgQ0FQSVRBTCBMRVRURVIgREVMVEE7THU7MDtMOzs7OztOOzs7OzAzQjQ7CiswMzk1O0dSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT047THU7MDtMOzs7OztOOzs7OzAzQjU7CiswMzk2O0dSRUVLIENBUElUQUwgTEVUVEVSIFpFVEE7THU7MDtMOzs7OztOOzs7OzAzQjY7CiswMzk3O0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQTtMdTswO0w7Ozs7O047Ozs7MDNCNzsKKzAzOTg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgVEhFVEE7THU7MDtMOzs7OztOOzs7OzAzQjg7CiswMzk5O0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEE7THU7MDtMOzs7OztOOzs7OzAzQjk7CiswMzlBO0dSRUVLIENBUElUQUwgTEVUVEVSIEtBUFBBO0x1OzA7TDs7Ozs7Tjs7OzswM0JBOworMDM5QjtHUkVFSyBDQVBJVEFMIExFVFRFUiBMQU1EQTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgTEFNQkRBOzs7MDNCQjsKKzAzOUM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgTVU7THU7MDtMOzs7OztOOzs7OzAzQkM7CiswMzlEO0dSRUVLIENBUElUQUwgTEVUVEVSIE5VO0x1OzA7TDs7Ozs7Tjs7OzswM0JEOworMDM5RTtHUkVFSyBDQVBJVEFMIExFVFRFUiBYSTtMdTswO0w7Ozs7O047Ozs7MDNCRTsKKzAzOUY7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTjtMdTswO0w7Ozs7O047Ozs7MDNCRjsKKzAzQTA7R1JFRUsgQ0FQSVRBTCBMRVRURVIgUEk7THU7MDtMOzs7OztOOzs7OzAzQzA7CiswM0ExO0dSRUVLIENBUElUQUwgTEVUVEVSIFJITztMdTswO0w7Ozs7O047Ozs7MDNDMTsKKzAzQTM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgU0lHTUE7THU7MDtMOzs7OztOOzs7OzAzQzM7CiswM0E0O0dSRUVLIENBUElUQUwgTEVUVEVSIFRBVTtMdTswO0w7Ozs7O047Ozs7MDNDNDsKKzAzQTU7R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTjtMdTswO0w7Ozs7O047Ozs7MDNDNTsKKzAzQTY7R1JFRUsgQ0FQSVRBTCBMRVRURVIgUEhJO0x1OzA7TDs7Ozs7Tjs7OzswM0M2OworMDNBNztHUkVFSyBDQVBJVEFMIExFVFRFUiBDSEk7THU7MDtMOzs7OztOOzs7OzAzQzc7CiswM0E4O0dSRUVLIENBUElUQUwgTEVUVEVSIFBTSTtMdTswO0w7Ozs7O047Ozs7MDNDODsKKzAzQTk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0E7THU7MDtMOzs7OztOOzs7OzAzQzk7CiswM0FBO0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBESUFMWVRJS0E7THU7MDtMOzAzOTkgMDMwODs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgRElBRVJFU0lTOzs7MDNDQTsKKzAzQUI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBXSVRIIERJQUxZVElLQTtMdTswO0w7MDNBNSAwMzA4Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBESUFFUkVTSVM7OzswM0NCOworMDNBQztHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBUT05PUztMbDswO0w7MDNCMSAwMzBEOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFRPTk9TOzswMzg2OzswMzg2CiswM0FEO0dSRUVLIFNNQUxMIExFVFRFUiBFUFNJTE9OIFdJVEggVE9OT1M7TGw7MDtMOzAzQjUgMDMwRDs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBFUFNJTE9OIFRPTk9TOzswMzg4OzswMzg4CiswM0FFO0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBUT05PUztMbDswO0w7MDNCNyAwMzBEOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBUT05PUzs7MDM4OTs7MDM4OQorMDNBRjtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIFRPTk9TO0xsOzA7TDswM0I5IDAzMEQ7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBUT05PUzs7MDM4QTs7MDM4QQorMDNCMDtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIERJQUxZVElLQSBBTkQgVE9OT1M7TGw7MDtMOzAzQzUgMDM0NDs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIERJQUVSRVNJUyBUT05PUzs7OzsKKzAzQjE7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBO0xsOzA7TDs7Ozs7Tjs7OzAzOTE7OzAzOTEKKzAzQjI7R1JFRUsgU01BTEwgTEVUVEVSIEJFVEE7TGw7MDtMOzs7OztOOzs7MDM5Mjs7MDM5MgorMDNCMztHUkVFSyBTTUFMTCBMRVRURVIgR0FNTUE7TGw7MDtMOzs7OztOOzs7MDM5Mzs7MDM5MworMDNCNDtHUkVFSyBTTUFMTCBMRVRURVIgREVMVEE7TGw7MDtMOzs7OztOOzs7MDM5NDs7MDM5NAorMDNCNTtHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTjtMbDswO0w7Ozs7O047OzswMzk1OzswMzk1CiswM0I2O0dSRUVLIFNNQUxMIExFVFRFUiBaRVRBO0xsOzA7TDs7Ozs7Tjs7OzAzOTY7OzAzOTYKKzAzQjc7R1JFRUsgU01BTEwgTEVUVEVSIEVUQTtMbDswO0w7Ozs7O047OzswMzk3OzswMzk3CiswM0I4O0dSRUVLIFNNQUxMIExFVFRFUiBUSEVUQTtMbDswO0w7Ozs7O047OzswMzk4OzswMzk4CiswM0I5O0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBO0xsOzA7TDs7Ozs7Tjs7OzAzOTk7OzAzOTkKKzAzQkE7R1JFRUsgU01BTEwgTEVUVEVSIEtBUFBBO0xsOzA7TDs7Ozs7Tjs7OzAzOUE7OzAzOUEKKzAzQkI7R1JFRUsgU01BTEwgTEVUVEVSIExBTURBO0xsOzA7TDs7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgTEFNQkRBOzswMzlCOzswMzlCCiswM0JDO0dSRUVLIFNNQUxMIExFVFRFUiBNVTtMbDswO0w7Ozs7O047OzswMzlDOzswMzlDCiswM0JEO0dSRUVLIFNNQUxMIExFVFRFUiBOVTtMbDswO0w7Ozs7O047OzswMzlEOzswMzlECiswM0JFO0dSRUVLIFNNQUxMIExFVFRFUiBYSTtMbDswO0w7Ozs7O047OzswMzlFOzswMzlFCiswM0JGO0dSRUVLIFNNQUxMIExFVFRFUiBPTUlDUk9OO0xsOzA7TDs7Ozs7Tjs7OzAzOUY7OzAzOUYKKzAzQzA7R1JFRUsgU01BTEwgTEVUVEVSIFBJO0xsOzA7TDs7Ozs7Tjs7OzAzQTA7OzAzQTAKKzAzQzE7R1JFRUsgU01BTEwgTEVUVEVSIFJITztMbDswO0w7Ozs7O047OzswM0ExOzswM0ExCiswM0MyO0dSRUVLIFNNQUxMIExFVFRFUiBGSU5BTCBTSUdNQTtMbDswO0w7Ozs7O047OzswM0EzOzswM0EzCiswM0MzO0dSRUVLIFNNQUxMIExFVFRFUiBTSUdNQTtMbDswO0w7Ozs7O047OzswM0EzOzswM0EzCiswM0M0O0dSRUVLIFNNQUxMIExFVFRFUiBUQVU7TGw7MDtMOzs7OztOOzs7MDNBNDs7MDNBNAorMDNDNTtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTjtMbDswO0w7Ozs7O047OzswM0E1OzswM0E1CiswM0M2O0dSRUVLIFNNQUxMIExFVFRFUiBQSEk7TGw7MDtMOzs7OztOOzs7MDNBNjs7MDNBNgorMDNDNztHUkVFSyBTTUFMTCBMRVRURVIgQ0hJO0xsOzA7TDs7Ozs7Tjs7OzAzQTc7OzAzQTcKKzAzQzg7R1JFRUsgU01BTEwgTEVUVEVSIFBTSTtMbDswO0w7Ozs7O047OzswM0E4OzswM0E4CiswM0M5O0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQTtMbDswO0w7Ozs7O047OzswM0E5OzswM0E5CiswM0NBO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggRElBTFlUSUtBO0xsOzA7TDswM0I5IDAzMDg7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBESUFFUkVTSVM7OzAzQUE7OzAzQUEKKzAzQ0I7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBESUFMWVRJS0E7TGw7MDtMOzAzQzUgMDMwODs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIERJQUVSRVNJUzs7MDNBQjs7MDNBQgorMDNDQztHUkVFSyBTTUFMTCBMRVRURVIgT01JQ1JPTiBXSVRIIFRPTk9TO0xsOzA7TDswM0JGIDAzMEQ7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgT01JQ1JPTiBUT05PUzs7MDM4Qzs7MDM4QworMDNDRDtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIFRPTk9TO0xsOzA7TDswM0M1IDAzMEQ7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBUT05PUzs7MDM4RTs7MDM4RQorMDNDRTtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBUT05PUztMbDswO0w7MDNDOSAwMzBEOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFRPTk9TOzswMzhGOzswMzhGCiswM0QwO0dSRUVLIEJFVEEgU1lNQk9MO0xsOzA7TDs7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgQ1VSTEVEIEJFVEE7OzAzOTI7OworMDNEMTtHUkVFSyBUSEVUQSBTWU1CT0w7TGw7MDtMOzs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBTQ1JJUFQgVEhFVEE7OzAzOTg7OworMDNEMjtHUkVFSyBVUFNJTE9OIFdJVEggSE9PSyBTWU1CT0w7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gSE9PSzs7OzsKKzAzRDM7R1JFRUsgVVBTSUxPTiBXSVRIIEFDVVRFIEFORCBIT09LIFNZTUJPTDtMdTswO0w7MDNEMiAwMzBEOzs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBIT09LIFRPTk9TOzs7OworMDNENDtHUkVFSyBVUFNJTE9OIFdJVEggRElBRVJFU0lTIEFORCBIT09LIFNZTUJPTDtMdTswO0w7MDNEMiAwMzA4Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBIT09LIERJQUVSRVNJUzs7OzsKKzAzRDU7R1JFRUsgUEhJIFNZTUJPTDtMbDswO0w7Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIFNDUklQVCBQSEk7OzAzQTY7OworMDNENjtHUkVFSyBQSSBTWU1CT0w7TGw7MDtMOzs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBQSTs7MDNBMDs7CiswM0RBO0dSRUVLIExFVFRFUiBTVElHTUE7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIFNUSUdNQTs7OzsKKzAzREM7R1JFRUsgTEVUVEVSIERJR0FNTUE7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIERJR0FNTUE7Ozs7CiswM0RFO0dSRUVLIExFVFRFUiBLT1BQQTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgS09QUEE7Ozs7CiswM0UwO0dSRUVLIExFVFRFUiBTQU1QSTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgU0FNUEk7Ozs7CiswM0UyO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBTSEVJO0x1OzA7TDs7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBTSEVJOzs7MDNFMzsKKzAzRTM7Q09QVElDIFNNQUxMIExFVFRFUiBTSEVJO0xsOzA7TDs7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgU0hFSTs7MDNFMjs7MDNFMgorMDNFNDtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgRkVJO0x1OzA7TDs7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBGRUk7OzswM0U1OworMDNFNTtDT1BUSUMgU01BTEwgTEVUVEVSIEZFSTtMbDswO0w7Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIEZFSTs7MDNFNDs7MDNFNAorMDNFNjtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgS0hFSTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgS0hFSTs7OzAzRTc7CiswM0U3O0NPUFRJQyBTTUFMTCBMRVRURVIgS0hFSTtMbDswO0w7Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIEtIRUk7OzAzRTY7OzAzRTYKKzAzRTg7Q09QVElDIENBUElUQUwgTEVUVEVSIEhPUkk7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIEhPUkk7OzswM0U5OworMDNFOTtDT1BUSUMgU01BTEwgTEVUVEVSIEhPUkk7TGw7MDtMOzs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBIT1JJOzswM0U4OzswM0U4CiswM0VBO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBHQU5HSUE7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIEdBTkdJQTs7OzAzRUI7CiswM0VCO0NPUFRJQyBTTUFMTCBMRVRURVIgR0FOR0lBO0xsOzA7TDs7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgR0FOR0lBOzswM0VBOzswM0VBCiswM0VDO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBTSElNQTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgU0hJTUE7OzswM0VEOworMDNFRDtDT1BUSUMgU01BTEwgTEVUVEVSIFNISU1BO0xsOzA7TDs7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgU0hJTUE7OzAzRUM7OzAzRUMKKzAzRUU7Q09QVElDIENBUElUQUwgTEVUVEVSIERFSTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgREVJOzs7MDNFRjsKKzAzRUY7Q09QVElDIFNNQUxMIExFVFRFUiBERUk7TGw7MDtMOzs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBERUk7OzAzRUU7OzAzRUUKKzAzRjA7R1JFRUsgS0FQUEEgU1lNQk9MO0xsOzA7TDs7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgU0NSSVBUIEtBUFBBOzswMzlBOzsKKzAzRjE7R1JFRUsgUkhPIFNZTUJPTDtMbDswO0w7Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIFRBSUxFRCBSSE87OzAzQTE7OworMDNGMjtHUkVFSyBMVU5BVEUgU0lHTUEgU1lNQk9MO0xsOzA7TDs7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgTFVOQVRFIFNJR01BOzs7OworMDNGMztHUkVFSyBMRVRURVIgWU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswNDAxO0NZUklMTElDIENBUElUQUwgTEVUVEVSIElPO0x1OzA7TDswNDE1IDAzMDg7Ozs7Tjs7OzswNDUxOworMDQwMjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBESkU7THU7MDtMOzs7OztOOztTZXJib2Nyb2F0aWFuOzswNDUyOworMDQwMztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBHSkU7THU7MDtMOzA0MTMgMDMwMTs7OztOOzs7OzA0NTM7CiswNDA0O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFVLUkFJTklBTiBJRTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRTs7OzA0NTQ7CiswNDA1O0NZUklMTElDIENBUElUQUwgTEVUVEVSIERaRTtMdTswO0w7Ozs7O047Ozs7MDQ1NTsKKzA0MDY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQllFTE9SVVNTSUFOLVVLUkFJTklBTiBJO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJOzs7MDQ1NjsKKzA0MDc7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWUk7THU7MDtMOzA0MDYgMDMwODs7OztOOztVa3JhaW5pYW47OzA0NTc7CiswNDA4O0NZUklMTElDIENBUElUQUwgTEVUVEVSIEpFO0x1OzA7TDs7Ozs7Tjs7OzswNDU4OworMDQwOTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBMSkU7THU7MDtMOzs7OztOOzs7OzA0NTk7CiswNDBBO0NZUklMTElDIENBUElUQUwgTEVUVEVSIE5KRTtMdTswO0w7Ozs7O047Ozs7MDQ1QTsKKzA0MEI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVFNIRTtMdTswO0w7Ozs7O047O1NlcmJvY3JvYXRpYW47OzA0NUI7CiswNDBDO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtKRTtMdTswO0w7MDQxQSAwMzAxOzs7O047Ozs7MDQ1QzsKKzA0MEU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0hPUlQgVTtMdTswO0w7MDQyMyAwMzA2Ozs7O047O0J5ZWxvcnVzc2lhbjs7MDQ1RTsKKzA0MEY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRFpIRTtMdTswO0w7Ozs7O047Ozs7MDQ1RjsKKzA0MTA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQTtMdTswO0w7Ozs7O047Ozs7MDQzMDsKKzA0MTE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQkU7THU7MDtMOzs7OztOOzs7OzA0MzE7CiswNDEyO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFZFO0x1OzA7TDs7Ozs7Tjs7OzswNDMyOworMDQxMztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBHSEU7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEdFOzs7MDQzMzsKKzA0MTQ7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgREU7THU7MDtMOzs7OztOOzs7OzA0MzQ7CiswNDE1O0NZUklMTElDIENBUElUQUwgTEVUVEVSIElFO0x1OzA7TDs7Ozs7Tjs7OzswNDM1OworMDQxNjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBaSEU7THU7MDtMOzs7OztOOzs7OzA0MzY7CiswNDE3O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFpFO0x1OzA7TDs7Ozs7Tjs7OzswNDM3OworMDQxODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJSTs7OzA0Mzg7CiswNDE5O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNIT1JUIEk7THU7MDtMOzA0MTggMDMwNjs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNIT1JUIElJOzs7MDQzOTsKKzA0MUE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0E7THU7MDtMOzs7OztOOzs7OzA0M0E7CiswNDFCO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVMO0x1OzA7TDs7Ozs7Tjs7OzswNDNCOworMDQxQztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFTTtMdTswO0w7Ozs7O047Ozs7MDQzQzsKKzA0MUQ7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRU47THU7MDtMOzs7OztOOzs7OzA0M0Q7CiswNDFFO0NZUklMTElDIENBUElUQUwgTEVUVEVSIE87THU7MDtMOzs7OztOOzs7OzA0M0U7CiswNDFGO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFBFO0x1OzA7TDs7Ozs7Tjs7OzswNDNGOworMDQyMDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFUjtMdTswO0w7Ozs7O047Ozs7MDQ0MDsKKzA0MjE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRVM7THU7MDtMOzs7OztOOzs7OzA0NDE7CiswNDIyO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFRFO0x1OzA7TDs7Ozs7Tjs7OzswNDQyOworMDQyMztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBVO0x1OzA7TDs7Ozs7Tjs7OzswNDQzOworMDQyNDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFRjtMdTswO0w7Ozs7O047Ozs7MDQ0NDsKKzA0MjU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSEE7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtIQTs7OzA0NDU7CiswNDI2O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFRTRTtMdTswO0w7Ozs7O047Ozs7MDQ0NjsKKzA0Mjc7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQ0hFO0x1OzA7TDs7Ozs7Tjs7OzswNDQ3OworMDQyODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTSEE7THU7MDtMOzs7OztOOzs7OzA0NDg7CiswNDI5O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNIQ0hBO0x1OzA7TDs7Ozs7Tjs7OzswNDQ5OworMDQyQTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBIQVJEIFNJR047THU7MDtMOzs7OztOOzs7OzA0NEE7CiswNDJCO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFlFUlU7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFlFUkk7OzswNDRCOworMDQyQztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTT0ZUIFNJR047THU7MDtMOzs7OztOOzs7OzA0NEM7CiswNDJEO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEU7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFJFVkVSU0VEIEU7OzswNDREOworMDQyRTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBZVTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSVU7OzswNDRFOworMDQyRjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBZQTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSUE7OzswNDRGOworMDQzMDtDWVJJTExJQyBTTUFMTCBMRVRURVIgQTtMbDswO0w7Ozs7O047OzswNDEwOzswNDEwCiswNDMxO0NZUklMTElDIFNNQUxMIExFVFRFUiBCRTtMbDswO0w7Ozs7O047OzswNDExOzswNDExCiswNDMyO0NZUklMTElDIFNNQUxMIExFVFRFUiBWRTtMbDswO0w7Ozs7O047OzswNDEyOzswNDEyCiswNDMzO0NZUklMTElDIFNNQUxMIExFVFRFUiBHSEU7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBHRTs7MDQxMzs7MDQxMworMDQzNDtDWVJJTExJQyBTTUFMTCBMRVRURVIgREU7TGw7MDtMOzs7OztOOzs7MDQxNDs7MDQxNAorMDQzNTtDWVJJTExJQyBTTUFMTCBMRVRURVIgSUU7TGw7MDtMOzs7OztOOzs7MDQxNTs7MDQxNQorMDQzNjtDWVJJTExJQyBTTUFMTCBMRVRURVIgWkhFO0xsOzA7TDs7Ozs7Tjs7OzA0MTY7OzA0MTYKKzA0Mzc7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFpFO0xsOzA7TDs7Ozs7Tjs7OzA0MTc7OzA0MTcKKzA0Mzg7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEk7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBJSTs7MDQxODs7MDQxOAorMDQzOTtDWVJJTExJQyBTTUFMTCBMRVRURVIgU0hPUlQgSTtMbDswO0w7MDQzOCAwMzA2Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNIT1JUIElJOzswNDE5OzswNDE5CiswNDNBO0NZUklMTElDIFNNQUxMIExFVFRFUiBLQTtMbDswO0w7Ozs7O047OzswNDFBOzswNDFBCiswNDNCO0NZUklMTElDIFNNQUxMIExFVFRFUiBFTDtMbDswO0w7Ozs7O047OzswNDFCOzswNDFCCiswNDNDO0NZUklMTElDIFNNQUxMIExFVFRFUiBFTTtMbDswO0w7Ozs7O047OzswNDFDOzswNDFDCiswNDNEO0NZUklMTElDIFNNQUxMIExFVFRFUiBFTjtMbDswO0w7Ozs7O047OzswNDFEOzswNDFECiswNDNFO0NZUklMTElDIFNNQUxMIExFVFRFUiBPO0xsOzA7TDs7Ozs7Tjs7OzA0MUU7OzA0MUUKKzA0M0Y7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFBFO0xsOzA7TDs7Ozs7Tjs7OzA0MUY7OzA0MUYKKzA0NDA7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVSO0xsOzA7TDs7Ozs7Tjs7OzA0MjA7OzA0MjAKKzA0NDE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVTO0xsOzA7TDs7Ozs7Tjs7OzA0MjE7OzA0MjEKKzA0NDI7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFRFO0xsOzA7TDs7Ozs7Tjs7OzA0MjI7OzA0MjIKKzA0NDM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFU7TGw7MDtMOzs7OztOOzs7MDQyMzs7MDQyMworMDQ0NDtDWVJJTExJQyBTTUFMTCBMRVRURVIgRUY7TGw7MDtMOzs7OztOOzs7MDQyNDs7MDQyNAorMDQ0NTtDWVJJTExJQyBTTUFMTCBMRVRURVIgSEE7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBLSEE7OzA0MjU7OzA0MjUKKzA0NDY7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFRTRTtMbDswO0w7Ozs7O047OzswNDI2OzswNDI2CiswNDQ3O0NZUklMTElDIFNNQUxMIExFVFRFUiBDSEU7TGw7MDtMOzs7OztOOzs7MDQyNzs7MDQyNworMDQ0ODtDWVJJTExJQyBTTUFMTCBMRVRURVIgU0hBO0xsOzA7TDs7Ozs7Tjs7OzA0Mjg7OzA0MjgKKzA0NDk7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNIQ0hBO0xsOzA7TDs7Ozs7Tjs7OzA0Mjk7OzA0MjkKKzA0NEE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEhBUkQgU0lHTjtMbDswO0w7Ozs7O047OzswNDJBOzswNDJBCiswNDRCO0NZUklMTElDIFNNQUxMIExFVFRFUiBZRVJVO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgWUVSSTs7MDQyQjs7MDQyQgorMDQ0QztDWVJJTExJQyBTTUFMTCBMRVRURVIgU09GVCBTSUdOO0xsOzA7TDs7Ozs7Tjs7OzA0MkM7OzA0MkMKKzA0NEQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEU7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBSRVZFUlNFRCBFOzswNDJEOzswNDJECiswNDRFO0NZUklMTElDIFNNQUxMIExFVFRFUiBZVTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElVOzswNDJFOzswNDJFCiswNDRGO0NZUklMTElDIFNNQUxMIExFVFRFUiBZQTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElBOzswNDJGOzswNDJGCiswNDUxO0NZUklMTElDIFNNQUxMIExFVFRFUiBJTztMbDswO0w7MDQzNSAwMzA4Ozs7O047OzswNDAxOzswNDAxCiswNDUyO0NZUklMTElDIFNNQUxMIExFVFRFUiBESkU7TGw7MDtMOzs7OztOOztTZXJib2Nyb2F0aWFuOzA0MDI7OzA0MDIKKzA0NTM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEdKRTtMbDswO0w7MDQzMyAwMzAxOzs7O047OzswNDAzOzswNDAzCiswNDU0O0NZUklMTElDIFNNQUxMIExFVFRFUiBVS1JBSU5JQU4gSUU7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBFOzswNDA0OzswNDA0CiswNDU1O0NZUklMTElDIFNNQUxMIExFVFRFUiBEWkU7TGw7MDtMOzs7OztOOzs7MDQwNTs7MDQwNQorMDQ1NjtDWVJJTExJQyBTTUFMTCBMRVRURVIgQllFTE9SVVNTSUFOLVVLUkFJTklBTiBJO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgSTs7MDQwNjs7MDQwNgorMDQ1NztDWVJJTExJQyBTTUFMTCBMRVRURVIgWUk7TGw7MDtMOzA0NTYgMDMwODs7OztOOztVa3JhaW5pYW47MDQwNzs7MDQwNworMDQ1ODtDWVJJTExJQyBTTUFMTCBMRVRURVIgSkU7TGw7MDtMOzs7OztOOzs7MDQwODs7MDQwOAorMDQ1OTtDWVJJTExJQyBTTUFMTCBMRVRURVIgTEpFO0xsOzA7TDs7Ozs7Tjs7OzA0MDk7OzA0MDkKKzA0NUE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIE5KRTtMbDswO0w7Ozs7O047OzswNDBBOzswNDBBCiswNDVCO0NZUklMTElDIFNNQUxMIExFVFRFUiBUU0hFO0xsOzA7TDs7Ozs7Tjs7U2VyYm9jcm9hdGlhbjswNDBCOzswNDBCCiswNDVDO0NZUklMTElDIFNNQUxMIExFVFRFUiBLSkU7TGw7MDtMOzA0M0EgMDMwMTs7OztOOzs7MDQwQzs7MDQwQworMDQ1RTtDWVJJTExJQyBTTUFMTCBMRVRURVIgU0hPUlQgVTtMbDswO0w7MDQ0MyAwMzA2Ozs7O047O0J5ZWxvcnVzc2lhbjswNDBFOzswNDBFCiswNDVGO0NZUklMTElDIFNNQUxMIExFVFRFUiBEWkhFO0xsOzA7TDs7Ozs7Tjs7OzA0MEY7OzA0MEYKKzA0NjA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgT01FR0E7THU7MDtMOzs7OztOOzs7OzA0NjE7CiswNDYxO0NZUklMTElDIFNNQUxMIExFVFRFUiBPTUVHQTtMbDswO0w7Ozs7O047OzswNDYwOzswNDYwCiswNDYyO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFlBVDtMdTswO0w7Ozs7O047Ozs7MDQ2MzsKKzA0NjM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFlBVDtMbDswO0w7Ozs7O047OzswNDYyOzswNDYyCiswNDY0O0NZUklMTElDIENBUElUQUwgTEVUVEVSIElPVElGSUVEIEU7THU7MDtMOzs7OztOOzs7OzA0NjU7CiswNDY1O0NZUklMTElDIFNNQUxMIExFVFRFUiBJT1RJRklFRCBFO0xsOzA7TDs7Ozs7Tjs7OzA0NjQ7OzA0NjQKKzA0NjY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgTElUVExFIFlVUztMdTswO0w7Ozs7O047Ozs7MDQ2NzsKKzA0Njc7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIExJVFRMRSBZVVM7TGw7MDtMOzs7OztOOzs7MDQ2Njs7MDQ2NgorMDQ2ODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJT1RJRklFRCBMSVRUTEUgWVVTO0x1OzA7TDs7Ozs7Tjs7OzswNDY5OworMDQ2OTtDWVJJTExJQyBTTUFMTCBMRVRURVIgSU9USUZJRUQgTElUVExFIFlVUztMbDswO0w7Ozs7O047OzswNDY4OzswNDY4CiswNDZBO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEJJRyBZVVM7THU7MDtMOzs7OztOOzs7OzA0NkI7CiswNDZCO0NZUklMTElDIFNNQUxMIExFVFRFUiBCSUcgWVVTO0xsOzA7TDs7Ozs7Tjs7OzA0NkE7OzA0NkEKKzA0NkM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSU9USUZJRUQgQklHIFlVUztMdTswO0w7Ozs7O047Ozs7MDQ2RDsKKzA0NkQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElPVElGSUVEIEJJRyBZVVM7TGw7MDtMOzs7OztOOzs7MDQ2Qzs7MDQ2QworMDQ2RTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLU0k7THU7MDtMOzs7OztOOzs7OzA0NkY7CiswNDZGO0NZUklMTElDIFNNQUxMIExFVFRFUiBLU0k7TGw7MDtMOzs7OztOOzs7MDQ2RTs7MDQ2RQorMDQ3MDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBQU0k7THU7MDtMOzs7OztOOzs7OzA0NzE7CiswNDcxO0NZUklMTElDIFNNQUxMIExFVFRFUiBQU0k7TGw7MDtMOzs7OztOOzs7MDQ3MDs7MDQ3MAorMDQ3MjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBGSVRBO0x1OzA7TDs7Ozs7Tjs7OzswNDczOworMDQ3MztDWVJJTExJQyBTTUFMTCBMRVRURVIgRklUQTtMbDswO0w7Ozs7O047OzswNDcyOzswNDcyCiswNDc0O0NZUklMTElDIENBUElUQUwgTEVUVEVSIElaSElUU0E7THU7MDtMOzs7OztOOzs7OzA0NzU7CiswNDc1O0NZUklMTElDIFNNQUxMIExFVFRFUiBJWkhJVFNBO0xsOzA7TDs7Ozs7Tjs7OzA0NzQ7OzA0NzQKKzA0NzY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSVpISVRTQSBXSVRIIERPVUJMRSBHUkFWRSBBQ0NFTlQ7THU7MDtMOzA0NzQgMDMwRjs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIElaSElUU0EgRE9VQkxFIEdSQVZFOzs7MDQ3NzsKKzA0Nzc7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElaSElUU0EgV0lUSCBET1VCTEUgR1JBVkUgQUNDRU5UO0xsOzA7TDswNDc1IDAzMEY7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgSVpISVRTQSBET1VCTEUgR1JBVkU7OzA0NzY7OzA0NzYKKzA0Nzg7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVUs7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFVLIERJR1JBUEg7OzswNDc5OworMDQ3OTtDWVJJTExJQyBTTUFMTCBMRVRURVIgVUs7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBVSyBESUdSQVBIOzswNDc4OzswNDc4CiswNDdBO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFJPVU5EIE9NRUdBO0x1OzA7TDs7Ozs7Tjs7OzswNDdCOworMDQ3QjtDWVJJTExJQyBTTUFMTCBMRVRURVIgUk9VTkQgT01FR0E7TGw7MDtMOzs7OztOOzs7MDQ3QTs7MDQ3QQorMDQ3QztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFRJVExPO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBPTUVHQSBUSVRMTzs7OzA0N0Q7CiswNDdEO0NZUklMTElDIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFRJVExPO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgT01FR0EgVElUTE87OzA0N0M7OzA0N0MKKzA0N0U7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgT1Q7THU7MDtMOzs7OztOOzs7OzA0N0Y7CiswNDdGO0NZUklMTElDIFNNQUxMIExFVFRFUiBPVDtMbDswO0w7Ozs7O047OzswNDdFOzswNDdFCiswNDgwO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtPUFBBO0x1OzA7TDs7Ozs7Tjs7OzswNDgxOworMDQ4MTtDWVJJTExJQyBTTUFMTCBMRVRURVIgS09QUEE7TGw7MDtMOzs7OztOOzs7MDQ4MDs7MDQ4MAorMDQ4MjtDWVJJTExJQyBUSE9VU0FORFMgU0lHTjtTbzswO0w7Ozs7O047Ozs7OworMDQ4MztDT01CSU5JTkcgQ1lSSUxMSUMgVElUTE87TW47MjMwO0w7Ozs7O047Q1lSSUxMSUMgTk9OLVNQQUNJTkcgVElUTE87Ozs7CiswNDg0O0NPTUJJTklORyBDWVJJTExJQyBQQUxBVEFMSVpBVElPTjtNbjsyMzA7TDs7Ozs7TjtDWVJJTExJQyBOT04tU1BBQ0lORyBQQUxBVEFMSVpBVElPTjs7OzsKKzA0ODU7Q09NQklOSU5HIENZUklMTElDIERBU0lBIFBORVVNQVRBO01uOzIzMDtMOzs7OztOO0NZUklMTElDIE5PTi1TUEFDSU5HIERBU0lBIFBORVVNQVRBOzs7OworMDQ4NjtDT01CSU5JTkcgQ1lSSUxMSUMgUFNJTEkgUE5FVU1BVEE7TW47MjMwO0w7Ozs7O047Q1lSSUxMSUMgTk9OLVNQQUNJTkcgUFNJTEkgUE5FVU1BVEE7Ozs7CiswNDkwO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEdIRSBXSVRIIFVQVFVSTjtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgR0UgV0lUSCBVUFRVUk47OzswNDkxOworMDQ5MTtDWVJJTExJQyBTTUFMTCBMRVRURVIgR0hFIFdJVEggVVBUVVJOO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgR0UgV0lUSCBVUFRVUk47OzA0OTA7OzA0OTAKKzA0OTI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgR0hFIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBHRSBCQVI7OzswNDkzOworMDQ5MztDWVJJTExJQyBTTUFMTCBMRVRURVIgR0hFIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgR0UgQkFSOzswNDkyOzswNDkyCiswNDk0O0NZUklMTElDIENBUElUQUwgTEVUVEVSIEdIRSBXSVRIIE1JRERMRSBIT09LO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBHRSBIT09LOzs7MDQ5NTsKKzA0OTU7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEdIRSBXSVRIIE1JRERMRSBIT09LO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgR0UgSE9PSzs7MDQ5NDs7MDQ5NAorMDQ5NjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBaSEUgV0lUSCBERVNDRU5ERVI7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFpIRSBXSVRIIFJJR0hUIERFU0NFTkRFUjs7OzA0OTc7CiswNDk3O0NZUklMTElDIFNNQUxMIExFVFRFUiBaSEUgV0lUSCBERVNDRU5ERVI7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBaSEUgV0lUSCBSSUdIVCBERVNDRU5ERVI7OzA0OTY7OzA0OTYKKzA0OTg7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWkUgV0lUSCBERVNDRU5ERVI7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFpFIENFRElMTEE7OzswNDk5OworMDQ5OTtDWVJJTExJQyBTTUFMTCBMRVRURVIgWkUgV0lUSCBERVNDRU5ERVI7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBaRSBDRURJTExBOzswNDk4OzswNDk4CiswNDlBO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtBIFdJVEggREVTQ0VOREVSO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLQSBXSVRIIFJJR0hUIERFU0NFTkRFUjs7OzA0OUI7CiswNDlCO0NZUklMTElDIFNNQUxMIExFVFRFUiBLQSBXSVRIIERFU0NFTkRFUjtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtBIFdJVEggUklHSFQgREVTQ0VOREVSOzswNDlBOzswNDlBCiswNDlDO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtBIFdJVEggVkVSVElDQUwgU1RST0tFO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLQSBWRVJUSUNBTCBCQVI7OzswNDlEOworMDQ5RDtDWVJJTExJQyBTTUFMTCBMRVRURVIgS0EgV0lUSCBWRVJUSUNBTCBTVFJPS0U7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBLQSBWRVJUSUNBTCBCQVI7OzA0OUM7OzA0OUMKKzA0OUU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0EgV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtBIEJBUjs7OzA0OUY7CiswNDlGO0NZUklMTElDIFNNQUxMIExFVFRFUiBLQSBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtBIEJBUjs7MDQ5RTs7MDQ5RQorMDRBMDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBCQVNIS0lSIEtBO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBSRVZFUlNFRCBHRSBLQTs7OzA0QTE7CiswNEExO0NZUklMTElDIFNNQUxMIExFVFRFUiBCQVNIS0lSIEtBO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgUkVWRVJTRUQgR0UgS0E7OzA0QTA7OzA0QTAKKzA0QTI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRU4gV0lUSCBERVNDRU5ERVI7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVOIFdJVEggUklHSFQgREVTQ0VOREVSOzs7MDRBMzsKKzA0QTM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVOIFdJVEggREVTQ0VOREVSO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgRU4gV0lUSCBSSUdIVCBERVNDRU5ERVI7OzA0QTI7OzA0QTIKKzA0QTQ7Q1lSSUxMSUMgQ0FQSVRBTCBMSUdBVFVSRSBFTiBHSEU7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVOIEdFOzs7MDRBNTsKKzA0QTU7Q1lSSUxMSUMgU01BTEwgTElHQVRVUkUgRU4gR0hFO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgRU4gR0U7OzA0QTQ7OzA0QTQKKzA0QTY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgUEUgV0lUSCBNSURETEUgSE9PSztMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgUEUgSE9PSztBYmtoYXNpYW47OzA0QTc7CiswNEE3O0NZUklMTElDIFNNQUxMIExFVFRFUiBQRSBXSVRIIE1JRERMRSBIT09LO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgUEUgSE9PSztBYmtoYXNpYW47MDRBNjs7MDRBNgorMDRBODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBBQktIQVNJQU4gSEE7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIE8gSE9PSzs7OzA0QTk7CiswNEE5O0NZUklMTElDIFNNQUxMIExFVFRFUiBBQktIQVNJQU4gSEE7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBPIEhPT0s7OzA0QTg7OzA0QTgKKzA0QUE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRVMgV0lUSCBERVNDRU5ERVI7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVTIENFRElMTEE7OzswNEFCOworMDRBQjtDWVJJTExJQyBTTUFMTCBMRVRURVIgRVMgV0lUSCBERVNDRU5ERVI7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBFUyBDRURJTExBOzswNEFBOzswNEFBCiswNEFDO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFRFIFdJVEggREVTQ0VOREVSO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBURSBXSVRIIFJJR0hUIERFU0NFTkRFUjs7OzA0QUQ7CiswNEFEO0NZUklMTElDIFNNQUxMIExFVFRFUiBURSBXSVRIIERFU0NFTkRFUjtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFRFIFdJVEggUklHSFQgREVTQ0VOREVSOzswNEFDOzswNEFDCiswNEFFO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNUUkFJR0hUIFU7THU7MDtMOzs7OztOOzs7OzA0QUY7CiswNEFGO0NZUklMTElDIFNNQUxMIExFVFRFUiBTVFJBSUdIVCBVO0xsOzA7TDs7Ozs7Tjs7OzA0QUU7OzA0QUUKKzA0QjA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU1RSQUlHSFQgVSBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU1RSQUlHSFQgVSBCQVI7OzswNEIxOworMDRCMTtDWVJJTExJQyBTTUFMTCBMRVRURVIgU1RSQUlHSFQgVSBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNUUkFJR0hUIFUgQkFSOzswNEIwOzswNEIwCiswNEIyO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEhBIFdJVEggREVTQ0VOREVSO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLSEEgV0lUSCBSSUdIVCBERVNDRU5ERVI7OzswNEIzOworMDRCMztDWVJJTExJQyBTTUFMTCBMRVRURVIgSEEgV0lUSCBERVNDRU5ERVI7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBLSEEgV0lUSCBSSUdIVCBERVNDRU5ERVI7OzA0QjI7OzA0QjIKKzA0QjQ7Q1lSSUxMSUMgQ0FQSVRBTCBMSUdBVFVSRSBURSBUU0U7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFRFIFRTRTtBYmtoYXNpYW47OzA0QjU7CiswNEI1O0NZUklMTElDIFNNQUxMIExJR0FUVVJFIFRFIFRTRTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFRFIFRTRTtBYmtoYXNpYW47MDRCNDs7MDRCNAorMDRCNjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBDSEUgV0lUSCBERVNDRU5ERVI7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIENIRSBXSVRIIFJJR0hUIERFU0NFTkRFUjs7OzA0Qjc7CiswNEI3O0NZUklMTElDIFNNQUxMIExFVFRFUiBDSEUgV0lUSCBERVNDRU5ERVI7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBDSEUgV0lUSCBSSUdIVCBERVNDRU5ERVI7OzA0QjY7OzA0QjYKKzA0Qjg7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQ0hFIFdJVEggVkVSVElDQUwgU1RST0tFO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBDSEUgVkVSVElDQUwgQkFSOzs7MDRCOTsKKzA0Qjk7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIENIRSBXSVRIIFZFUlRJQ0FMIFNUUk9LRTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIENIRSBWRVJUSUNBTCBCQVI7OzA0Qjg7OzA0QjgKKzA0QkE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0hIQTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSDs7OzA0QkI7CiswNEJCO0NZUklMTElDIFNNQUxMIExFVFRFUiBTSEhBO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgSDs7MDRCQTs7MDRCQQorMDRCQztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBBQktIQVNJQU4gQ0hFO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJRSBIT09LOzs7MDRCRDsKKzA0QkQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEFCS0hBU0lBTiBDSEU7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBJRSBIT09LOzswNEJDOzswNEJDCiswNEJFO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEFCS0hBU0lBTiBDSEUgV0lUSCBERVNDRU5ERVI7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIElFIEhPT0sgT0dPTkVLOzs7MDRCRjsKKzA0QkY7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEFCS0hBU0lBTiBDSEUgV0lUSCBERVNDRU5ERVI7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBJRSBIT09LIE9HT05FSzs7MDRCRTs7MDRCRQorMDRDMDtDWVJJTExJQyBMRVRURVIgUEFMT0NIS0E7TG87MDtMOzs7OztOO0NZUklMTElDIExFVFRFUiBJOzs7OworMDRDMTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBaSEUgV0lUSCBCUkVWRTtMdTswO0w7MDQxNiAwMzA2Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0hPUlQgWkhFOzs7MDRDMjsKKzA0QzI7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFpIRSBXSVRIIEJSRVZFO0xsOzA7TDswNDM2IDAzMDY7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgU0hPUlQgWkhFOzswNEMxOzswNEMxCiswNEMzO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtBIFdJVEggSE9PSztMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0EgSE9PSzs7OzA0QzQ7CiswNEM0O0NZUklMTElDIFNNQUxMIExFVFRFUiBLQSBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBLQSBIT09LOzswNEMzOzswNEMzCiswNEM3O0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVOIFdJVEggSE9PSztMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRU4gSE9PSzs7OzA0Qzg7CiswNEM4O0NZUklMTElDIFNNQUxMIExFVFRFUiBFTiBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBFTiBIT09LOzswNEM3OzswNEM3CiswNENCO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtIQUtBU1NJQU4gQ0hFO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBDSEUgV0lUSCBMRUZUIERFU0NFTkRFUjs7OzA0Q0M7CiswNENDO0NZUklMTElDIFNNQUxMIExFVFRFUiBLSEFLQVNTSUFOIENIRTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIENIRSBXSVRIIExFRlQgREVTQ0VOREVSOzswNENCOzswNENCCiswNEQwO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEEgV0lUSCBCUkVWRTtMdTswO0w7MDQxMCAwMzA2Ozs7O047Ozs7MDREMTsKKzA0RDE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEEgV0lUSCBCUkVWRTtMbDswO0w7MDQzMCAwMzA2Ozs7O047OzswNEQwOzswNEQwCiswNEQyO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEEgV0lUSCBESUFFUkVTSVM7THU7MDtMOzA0MTAgMDMwODs7OztOOzs7OzA0RDM7CiswNEQzO0NZUklMTElDIFNNQUxMIExFVFRFUiBBIFdJVEggRElBRVJFU0lTO0xsOzA7TDswNDMwIDAzMDg7Ozs7Tjs7OzA0RDI7OzA0RDIKKzA0RDQ7Q1lSSUxMSUMgQ0FQSVRBTCBMSUdBVFVSRSBBIElFO0x1OzA7TDswMEM2Ozs7O047Ozs7MDRENTsKKzA0RDU7Q1lSSUxMSUMgU01BTEwgTElHQVRVUkUgQSBJRTtMbDswO0w7MDBFNjs7OztOOzs7MDRENDs7MDRENAorMDRENjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJRSBXSVRIIEJSRVZFO0x1OzA7TDswNDE1IDAzMDY7Ozs7Tjs7OzswNEQ3OworMDRENztDWVJJTExJQyBTTUFMTCBMRVRURVIgSUUgV0lUSCBCUkVWRTtMbDswO0w7MDQzNSAwMzA2Ozs7O047OzswNEQ2OzswNEQ2CiswNEQ4O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNDSFdBO0x1OzA7TDswMThGOzs7O047Ozs7MDREOTsKKzA0RDk7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNDSFdBO0xsOzA7TDswMjU5Ozs7O047OzswNEQ4OzswNEQ4CiswNERBO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNDSFdBIFdJVEggRElBRVJFU0lTO0x1OzA7TDswMThGIDAzMDg7Ozs7Tjs7OzswNERCOworMDREQjtDWVJJTExJQyBTTUFMTCBMRVRURVIgU0NIV0EgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzAyNTkgMDMwODs7OztOOzs7MDREQTs7MDREQQorMDREQztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBaSEUgV0lUSCBESUFFUkVTSVM7THU7MDtMOzA0MTYgMDMwODs7OztOOzs7OzA0REQ7CiswNEREO0NZUklMTElDIFNNQUxMIExFVFRFUiBaSEUgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzA0MzYgMDMwODs7OztOOzs7MDREQzs7MDREQworMDRERTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBaRSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDQxNyAwMzA4Ozs7O047Ozs7MDRERjsKKzA0REY7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFpFIFdJVEggRElBRVJFU0lTO0xsOzA7TDswNDM3IDAzMDg7Ozs7Tjs7OzA0REU7OzA0REUKKzA0RTA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQUJLSEFTSUFOIERaRTtMdTswO0w7MDFCNzs7OztOOzs7OzA0RTE7CiswNEUxO0NZUklMTElDIFNNQUxMIExFVFRFUiBBQktIQVNJQU4gRFpFO0xsOzA7TDswMjkyOzs7O047OzswNEUwOzswNEUwCiswNEUyO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEkgV0lUSCBNQUNST047THU7MDtMOzA0MTggMDMwNDs7OztOOzs7OzA0RTM7CiswNEUzO0NZUklMTElDIFNNQUxMIExFVFRFUiBJIFdJVEggTUFDUk9OO0xsOzA7TDswNDM4IDAzMDQ7Ozs7Tjs7OzA0RTI7OzA0RTIKKzA0RTQ7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDQxOCAwMzA4Ozs7O047Ozs7MDRFNTsKKzA0RTU7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEkgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzA0MzggMDMwODs7OztOOzs7MDRFNDs7MDRFNAorMDRFNjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBPIFdJVEggRElBRVJFU0lTO0x1OzA7TDswNDFFIDAzMDg7Ozs7Tjs7OzswNEU3OworMDRFNztDWVJJTExJQyBTTUFMTCBMRVRURVIgTyBXSVRIIERJQUVSRVNJUztMbDswO0w7MDQzRSAwMzA4Ozs7O047OzswNEU2OzswNEU2CiswNEU4O0NZUklMTElDIENBUElUQUwgTEVUVEVSIEJBUlJFRCBPO0x1OzA7TDswMTlGOzs7O047Ozs7MDRFOTsKKzA0RTk7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEJBUlJFRCBPO0xsOzA7TDswMjc1Ozs7O047OzswNEU4OzswNEU4CiswNEVBO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEJBUlJFRCBPIFdJVEggRElBRVJFU0lTO0x1OzA7TDswMTlGIDAzMDg7Ozs7Tjs7OzswNEVCOworMDRFQjtDWVJJTExJQyBTTUFMTCBMRVRURVIgQkFSUkVEIE8gV0lUSCBESUFFUkVTSVM7TGw7MDtMOzAyNzUgMDMwODs7OztOOzs7MDRFQTs7MDRFQQorMDRFRTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBVIFdJVEggTUFDUk9OO0x1OzA7TDswNDIzIDAzMDQ7Ozs7Tjs7OzswNEVGOworMDRFRjtDWVJJTExJQyBTTUFMTCBMRVRURVIgVSBXSVRIIE1BQ1JPTjtMbDswO0w7MDQ0MyAwMzA0Ozs7O047OzswNEVFOzswNEVFCiswNEYwO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVM7THU7MDtMOzA0MjMgMDMwODs7OztOOzs7OzA0RjE7CiswNEYxO0NZUklMTElDIFNNQUxMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTO0xsOzA7TDswNDQzIDAzMDg7Ozs7Tjs7OzA0RjA7OzA0RjAKKzA0RjI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVSBXSVRIIERPVUJMRSBBQ1VURTtMdTswO0w7MDQyMyAwMzBCOzs7O047Ozs7MDRGMzsKKzA0RjM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFUgV0lUSCBET1VCTEUgQUNVVEU7TGw7MDtMOzA0NDMgMDMwQjs7OztOOzs7MDRGMjs7MDRGMgorMDRGNDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBDSEUgV0lUSCBESUFFUkVTSVM7THU7MDtMOzA0MjcgMDMwODs7OztOOzs7OzA0RjU7CiswNEY1O0NZUklMTElDIFNNQUxMIExFVFRFUiBDSEUgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzA0NDcgMDMwODs7OztOOzs7MDRGNDs7MDRGNAorMDRGODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBZRVJVIFdJVEggRElBRVJFU0lTO0x1OzA7TDswNDJCIDAzMDg7Ozs7Tjs7OzswNEY5OworMDRGOTtDWVJJTExJQyBTTUFMTCBMRVRURVIgWUVSVSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDQ0QiAwMzA4Ozs7O047OzswNEY4OzswNEY4CiswNTMxO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIEFZQjtMdTswO0w7Ozs7O047Ozs7MDU2MTsKKzA1MzI7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgQkVOO0x1OzA7TDs7Ozs7Tjs7OzswNTYyOworMDUzMztBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBHSU07THU7MDtMOzs7OztOOzs7OzA1NjM7CiswNTM0O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIERBO0x1OzA7TDs7Ozs7Tjs7OzswNTY0OworMDUzNTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBFQ0g7THU7MDtMOzs7OztOOzs7OzA1NjU7CiswNTM2O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFpBO0x1OzA7TDs7Ozs7Tjs7OzswNTY2OworMDUzNztBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBFSDtMdTswO0w7Ozs7O047Ozs7MDU2NzsKKzA1Mzg7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgRVQ7THU7MDtMOzs7OztOOzs7OzA1Njg7CiswNTM5O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFRPO0x1OzA7TDs7Ozs7Tjs7OzswNTY5OworMDUzQTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBaSEU7THU7MDtMOzs7OztOOzs7OzA1NkE7CiswNTNCO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIElOSTtMdTswO0w7Ozs7O047Ozs7MDU2QjsKKzA1M0M7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgTElXTjtMdTswO0w7Ozs7O047Ozs7MDU2QzsKKzA1M0Q7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgWEVIO0x1OzA7TDs7Ozs7Tjs7OzswNTZEOworMDUzRTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBDQTtMdTswO0w7Ozs7O047Ozs7MDU2RTsKKzA1M0Y7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgS0VOO0x1OzA7TDs7Ozs7Tjs7OzswNTZGOworMDU0MDtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBITztMdTswO0w7Ozs7O047Ozs7MDU3MDsKKzA1NDE7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgSkE7THU7MDtMOzs7OztOOzs7OzA1NzE7CiswNTQyO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIEdIQUQ7THU7MDtMOzs7OztOO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIExBRDs7OzA1NzI7CiswNTQzO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIENIRUg7THU7MDtMOzs7OztOOzs7OzA1NzM7CiswNTQ0O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIE1FTjtMdTswO0w7Ozs7O047Ozs7MDU3NDsKKzA1NDU7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgWUk7THU7MDtMOzs7OztOOzs7OzA1NzU7CiswNTQ2O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIE5PVztMdTswO0w7Ozs7O047Ozs7MDU3NjsKKzA1NDc7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgU0hBO0x1OzA7TDs7Ozs7Tjs7OzswNTc3OworMDU0ODtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBWTztMdTswO0w7Ozs7O047Ozs7MDU3ODsKKzA1NDk7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgQ0hBO0x1OzA7TDs7Ozs7Tjs7OzswNTc5OworMDU0QTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBQRUg7THU7MDtMOzs7OztOOzs7OzA1N0E7CiswNTRCO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIEpIRUg7THU7MDtMOzs7OztOOzs7OzA1N0I7CiswNTRDO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFJBO0x1OzA7TDs7Ozs7Tjs7OzswNTdDOworMDU0RDtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBTRUg7THU7MDtMOzs7OztOOzs7OzA1N0Q7CiswNTRFO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFZFVztMdTswO0w7Ozs7O047Ozs7MDU3RTsKKzA1NEY7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgVElXTjtMdTswO0w7Ozs7O047Ozs7MDU3RjsKKzA1NTA7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgUkVIO0x1OzA7TDs7Ozs7Tjs7OzswNTgwOworMDU1MTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBDTztMdTswO0w7Ozs7O047Ozs7MDU4MTsKKzA1NTI7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgWUlXTjtMdTswO0w7Ozs7O047Ozs7MDU4MjsKKzA1NTM7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgUElXUjtMdTswO0w7Ozs7O047Ozs7MDU4MzsKKzA1NTQ7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgS0VIO0x1OzA7TDs7Ozs7Tjs7OzswNTg0OworMDU1NTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBPSDtMdTswO0w7Ozs7O047Ozs7MDU4NTsKKzA1NTY7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgRkVIO0x1OzA7TDs7Ozs7Tjs7OzswNTg2OworMDU1OTtBUk1FTklBTiBNT0RJRklFUiBMRVRURVIgTEVGVCBIQUxGIFJJTkc7TG07MDtMOzs7OztOOzs7OzsKKzA1NUE7QVJNRU5JQU4gQVBPU1RST1BIRTtQbzswO0w7Ozs7O047QVJNRU5JQU4gTU9ESUZJRVIgTEVUVEVSIFJJR0hUIEhBTEYgUklORzs7OzsKKzA1NUI7QVJNRU5JQU4gRU1QSEFTSVMgTUFSSztQbzswO0w7Ozs7O047Ozs7OworMDU1QztBUk1FTklBTiBFWENMQU1BVElPTiBNQVJLO1BvOzA7TDs7Ozs7Tjs7Ozs7CiswNTVEO0FSTUVOSUFOIENPTU1BO1BvOzA7TDs7Ozs7Tjs7Ozs7CiswNTVFO0FSTUVOSUFOIFFVRVNUSU9OIE1BUks7UG87MDtMOzs7OztOOzs7OzsKKzA1NUY7QVJNRU5JQU4gQUJCUkVWSUFUSU9OIE1BUks7UG87MDtMOzs7OztOOzs7OzsKKzA1NjE7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEFZQjtMbDswO0w7Ozs7O047OzswNTMxOzswNTMxCiswNTYyO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBCRU47TGw7MDtMOzs7OztOOzs7MDUzMjs7MDUzMgorMDU2MztBUk1FTklBTiBTTUFMTCBMRVRURVIgR0lNO0xsOzA7TDs7Ozs7Tjs7OzA1MzM7OzA1MzMKKzA1NjQ7QVJNRU5JQU4gU01BTEwgTEVUVEVSIERBO0xsOzA7TDs7Ozs7Tjs7OzA1MzQ7OzA1MzQKKzA1NjU7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEVDSDtMbDswO0w7Ozs7O047OzswNTM1OzswNTM1CiswNTY2O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBaQTtMbDswO0w7Ozs7O047OzswNTM2OzswNTM2CiswNTY3O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBFSDtMbDswO0w7Ozs7O047OzswNTM3OzswNTM3CiswNTY4O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBFVDtMbDswO0w7Ozs7O047OzswNTM4OzswNTM4CiswNTY5O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBUTztMbDswO0w7Ozs7O047OzswNTM5OzswNTM5CiswNTZBO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBaSEU7TGw7MDtMOzs7OztOOzs7MDUzQTs7MDUzQQorMDU2QjtBUk1FTklBTiBTTUFMTCBMRVRURVIgSU5JO0xsOzA7TDs7Ozs7Tjs7OzA1M0I7OzA1M0IKKzA1NkM7QVJNRU5JQU4gU01BTEwgTEVUVEVSIExJV047TGw7MDtMOzs7OztOOzs7MDUzQzs7MDUzQworMDU2RDtBUk1FTklBTiBTTUFMTCBMRVRURVIgWEVIO0xsOzA7TDs7Ozs7Tjs7OzA1M0Q7OzA1M0QKKzA1NkU7QVJNRU5JQU4gU01BTEwgTEVUVEVSIENBO0xsOzA7TDs7Ozs7Tjs7OzA1M0U7OzA1M0UKKzA1NkY7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEtFTjtMbDswO0w7Ozs7O047OzswNTNGOzswNTNGCiswNTcwO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBITztMbDswO0w7Ozs7O047OzswNTQwOzswNTQwCiswNTcxO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBKQTtMbDswO0w7Ozs7O047OzswNTQxOzswNTQxCiswNTcyO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBHSEFEO0xsOzA7TDs7Ozs7TjtBUk1FTklBTiBTTUFMTCBMRVRURVIgTEFEOzswNTQyOzswNTQyCiswNTczO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBDSEVIO0xsOzA7TDs7Ozs7Tjs7OzA1NDM7OzA1NDMKKzA1NzQ7QVJNRU5JQU4gU01BTEwgTEVUVEVSIE1FTjtMbDswO0w7Ozs7O047OzswNTQ0OzswNTQ0CiswNTc1O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBZSTtMbDswO0w7Ozs7O047OzswNTQ1OzswNTQ1CiswNTc2O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBOT1c7TGw7MDtMOzs7OztOOzs7MDU0Njs7MDU0NgorMDU3NztBUk1FTklBTiBTTUFMTCBMRVRURVIgU0hBO0xsOzA7TDs7Ozs7Tjs7OzA1NDc7OzA1NDcKKzA1Nzg7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFZPO0xsOzA7TDs7Ozs7Tjs7OzA1NDg7OzA1NDgKKzA1Nzk7QVJNRU5JQU4gU01BTEwgTEVUVEVSIENIQTtMbDswO0w7Ozs7O047OzswNTQ5OzswNTQ5CiswNTdBO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBQRUg7TGw7MDtMOzs7OztOOzs7MDU0QTs7MDU0QQorMDU3QjtBUk1FTklBTiBTTUFMTCBMRVRURVIgSkhFSDtMbDswO0w7Ozs7O047OzswNTRCOzswNTRCCiswNTdDO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBSQTtMbDswO0w7Ozs7O047OzswNTRDOzswNTRDCiswNTdEO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBTRUg7TGw7MDtMOzs7OztOOzs7MDU0RDs7MDU0RAorMDU3RTtBUk1FTklBTiBTTUFMTCBMRVRURVIgVkVXO0xsOzA7TDs7Ozs7Tjs7OzA1NEU7OzA1NEUKKzA1N0Y7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFRJV047TGw7MDtMOzs7OztOOzs7MDU0Rjs7MDU0RgorMDU4MDtBUk1FTklBTiBTTUFMTCBMRVRURVIgUkVIO0xsOzA7TDs7Ozs7Tjs7OzA1NTA7OzA1NTAKKzA1ODE7QVJNRU5JQU4gU01BTEwgTEVUVEVSIENPO0xsOzA7TDs7Ozs7Tjs7OzA1NTE7OzA1NTEKKzA1ODI7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFlJV047TGw7MDtMOzs7OztOOzs7MDU1Mjs7MDU1MgorMDU4MztBUk1FTklBTiBTTUFMTCBMRVRURVIgUElXUjtMbDswO0w7Ozs7O047OzswNTUzOzswNTUzCiswNTg0O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBLRUg7TGw7MDtMOzs7OztOOzs7MDU1NDs7MDU1NAorMDU4NTtBUk1FTklBTiBTTUFMTCBMRVRURVIgT0g7TGw7MDtMOzs7OztOOzs7MDU1NTs7MDU1NQorMDU4NjtBUk1FTklBTiBTTUFMTCBMRVRURVIgRkVIO0xsOzA7TDs7Ozs7Tjs7OzA1NTY7OzA1NTYKKzA1ODc7QVJNRU5JQU4gU01BTEwgTElHQVRVUkUgRUNIIFlJV047TGw7MDtMOzxjb21wYXQ+IDA1NjUgMDU4Mjs7OztOOzs7OzsKKzA1ODk7QVJNRU5JQU4gRlVMTCBTVE9QO1BvOzA7TDs7Ozs7TjtBUk1FTklBTiBQRVJJT0Q7Ozs7CiswNTkxO0hFQlJFVyBBQ0NFTlQgRVROQUhUQTtNbjsyMjA7Ujs7Ozs7Tjs7Ozs7CiswNTkyO0hFQlJFVyBBQ0NFTlQgU0VHT0w7TW47MjMwO1I7Ozs7O047Ozs7OworMDU5MztIRUJSRVcgQUNDRU5UIFNIQUxTSEVMRVQ7TW47MjMwO1I7Ozs7O047Ozs7OworMDU5NDtIRUJSRVcgQUNDRU5UIFpBUUVGIFFBVEFOO01uOzIzMDtSOzs7OztOOzs7OzsKKzA1OTU7SEVCUkVXIEFDQ0VOVCBaQVFFRiBHQURPTDtNbjsyMzA7Ujs7Ozs7Tjs7Ozs7CiswNTk2O0hFQlJFVyBBQ0NFTlQgVElQRUhBO01uOzIyMDtSOzs7OztOOzs7OzsKKzA1OTc7SEVCUkVXIEFDQ0VOVCBSRVZJQTtNbjsyMzA7Ujs7Ozs7Tjs7Ozs7CiswNTk4O0hFQlJFVyBBQ0NFTlQgWkFSUUE7TW47MjMwO1I7Ozs7O047Ozs7OworMDU5OTtIRUJSRVcgQUNDRU5UIFBBU0hUQTtNbjsyMzA7Ujs7Ozs7Tjs7Ozs7CiswNTlBO0hFQlJFVyBBQ0NFTlQgWUVUSVY7TW47MjIyO1I7Ozs7O047Ozs7OworMDU5QjtIRUJSRVcgQUNDRU5UIFRFVklSO01uOzIyMDtSOzs7OztOOzs7OzsKKzA1OUM7SEVCUkVXIEFDQ0VOVCBHRVJFU0g7TW47MjMwO1I7Ozs7O047Ozs7OworMDU5RDtIRUJSRVcgQUNDRU5UIEdFUkVTSCBNVVFEQU07TW47MjMwO1I7Ozs7O047Ozs7OworMDU5RTtIRUJSRVcgQUNDRU5UIEdFUlNIQVlJTTtNbjsyMzA7Ujs7Ozs7Tjs7Ozs7CiswNTlGO0hFQlJFVyBBQ0NFTlQgUUFSTkVZIFBBUkE7TW47MjMwO1I7Ozs7O047Ozs7OworMDVBMDtIRUJSRVcgQUNDRU5UIFRFTElTSEEgR0VET0xBO01uOzIzMDtSOzs7OztOOzs7OzsKKzA1QTE7SEVCUkVXIEFDQ0VOVCBQQVpFUjtNbjsyMzA7Ujs7Ozs7Tjs7Ozs7CiswNUEzO0hFQlJFVyBBQ0NFTlQgTVVOQUg7TW47MjIwO1I7Ozs7O047Ozs7OworMDVBNDtIRUJSRVcgQUNDRU5UIE1BSEFQQUtIO01uOzIyMDtSOzs7OztOOzs7OzsKKzA1QTU7SEVCUkVXIEFDQ0VOVCBNRVJLSEE7TW47MjIwO1I7Ozs7O047Ozs7OworMDVBNjtIRUJSRVcgQUNDRU5UIE1FUktIQSBLRUZVTEE7TW47MjIwO1I7Ozs7O047Ozs7OworMDVBNztIRUJSRVcgQUNDRU5UIERBUkdBO01uOzIyMDtSOzs7OztOOzs7OzsKKzA1QTg7SEVCUkVXIEFDQ0VOVCBRQURNQTtNbjsyMzA7Ujs7Ozs7Tjs7Ozs7CiswNUE5O0hFQlJFVyBBQ0NFTlQgVEVMSVNIQSBRRVRBTkE7TW47MjMwO1I7Ozs7O047Ozs7OworMDVBQTtIRUJSRVcgQUNDRU5UIFlFUkFIIEJFTiBZT01PO01uOzIyMDtSOzs7OztOOzs7OzsKKzA1QUI7SEVCUkVXIEFDQ0VOVCBPTEU7TW47MjMwO1I7Ozs7O047Ozs7OworMDVBQztIRUJSRVcgQUNDRU5UIElMVVk7TW47MjMwO1I7Ozs7O047Ozs7OworMDVBRDtIRUJSRVcgQUNDRU5UIERFSEk7TW47MjIyO1I7Ozs7O047Ozs7OworMDVBRTtIRUJSRVcgQUNDRU5UIFpJTk9SO01uOzIzMDtSOzs7OztOOzs7OzsKKzA1QUY7SEVCUkVXIE1BUksgTUFTT1JBIENJUkNMRTtNbjsyMzA7Ujs7Ozs7Tjs7Ozs7CiswNUIwO0hFQlJFVyBQT0lOVCBTSEVWQTtNbjsxMDtSOzs7OztOOzs7OzsKKzA1QjE7SEVCUkVXIFBPSU5UIEhBVEFGIFNFR09MO01uOzExO1I7Ozs7O047Ozs7OworMDVCMjtIRUJSRVcgUE9JTlQgSEFUQUYgUEFUQUg7TW47MTI7Ujs7Ozs7Tjs7Ozs7CiswNUIzO0hFQlJFVyBQT0lOVCBIQVRBRiBRQU1BVFM7TW47MTM7Ujs7Ozs7Tjs7Ozs7CiswNUI0O0hFQlJFVyBQT0lOVCBISVJJUTtNbjsxNDtSOzs7OztOOzs7OzsKKzA1QjU7SEVCUkVXIFBPSU5UIFRTRVJFO01uOzE1O1I7Ozs7O047Ozs7OworMDVCNjtIRUJSRVcgUE9JTlQgU0VHT0w7TW47MTY7Ujs7Ozs7Tjs7Ozs7CiswNUI3O0hFQlJFVyBQT0lOVCBQQVRBSDtNbjsxNztSOzs7OztOOzs7OzsKKzA1Qjg7SEVCUkVXIFBPSU5UIFFBTUFUUztNbjsxODtSOzs7OztOOzs7OzsKKzA1Qjk7SEVCUkVXIFBPSU5UIEhPTEFNO01uOzE5O1I7Ozs7O047Ozs7OworMDVCQjtIRUJSRVcgUE9JTlQgUVVCVVRTO01uOzIwO1I7Ozs7O047Ozs7OworMDVCQztIRUJSRVcgUE9JTlQgREFHRVNIIE9SIE1BUElRO01uOzIxO1I7Ozs7O047SEVCUkVXIFBPSU5UIERBR0VTSDs7OzsKKzA1QkQ7SEVCUkVXIFBPSU5UIE1FVEVHO01uOzIyO1I7Ozs7O047Ozs7OworMDVCRTtIRUJSRVcgUFVOQ1RVQVRJT04gTUFRQUY7UG87MDtSOzs7OztOOzs7OzsKKzA1QkY7SEVCUkVXIFBPSU5UIFJBRkU7TW47MjM7Ujs7Ozs7Tjs7Ozs7CiswNUMwO0hFQlJFVyBQVU5DVFVBVElPTiBQQVNFUTtQbzswO1I7Ozs7O047SEVCUkVXIFBPSU5UIFBBU0VROzs7OworMDVDMTtIRUJSRVcgUE9JTlQgU0hJTiBET1Q7TW47MjQ7Ujs7Ozs7Tjs7Ozs7CiswNUMyO0hFQlJFVyBQT0lOVCBTSU4gRE9UO01uOzI1O1I7Ozs7O047Ozs7OworMDVDMztIRUJSRVcgUFVOQ1RVQVRJT04gU09GIFBBU1VRO1BvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUM0O0hFQlJFVyBNQVJLIFVQUEVSIERPVDtNbjsyMzA7Ujs7Ozs7Tjs7Ozs7CiswNUQwO0hFQlJFVyBMRVRURVIgQUxFRjtMbzswO1I7Ozs7O047Ozs7OworMDVEMTtIRUJSRVcgTEVUVEVSIEJFVDtMbzswO1I7Ozs7O047Ozs7OworMDVEMjtIRUJSRVcgTEVUVEVSIEdJTUVMO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUQzO0hFQlJFVyBMRVRURVIgREFMRVQ7TG87MDtSOzs7OztOOzs7OzsKKzA1RDQ7SEVCUkVXIExFVFRFUiBIRTtMbzswO1I7Ozs7O047Ozs7OworMDVENTtIRUJSRVcgTEVUVEVSIFZBVjtMbzswO1I7Ozs7O047Ozs7OworMDVENjtIRUJSRVcgTEVUVEVSIFpBWUlOO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUQ3O0hFQlJFVyBMRVRURVIgSEVUO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUQ4O0hFQlJFVyBMRVRURVIgVEVUO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUQ5O0hFQlJFVyBMRVRURVIgWU9EO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNURBO0hFQlJFVyBMRVRURVIgRklOQUwgS0FGO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNURCO0hFQlJFVyBMRVRURVIgS0FGO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNURDO0hFQlJFVyBMRVRURVIgTEFNRUQ7TG87MDtSOzs7OztOOzs7OzsKKzA1REQ7SEVCUkVXIExFVFRFUiBGSU5BTCBNRU07TG87MDtSOzs7OztOOzs7OzsKKzA1REU7SEVCUkVXIExFVFRFUiBNRU07TG87MDtSOzs7OztOOzs7OzsKKzA1REY7SEVCUkVXIExFVFRFUiBGSU5BTCBOVU47TG87MDtSOzs7OztOOzs7OzsKKzA1RTA7SEVCUkVXIExFVFRFUiBOVU47TG87MDtSOzs7OztOOzs7OzsKKzA1RTE7SEVCUkVXIExFVFRFUiBTQU1FS0g7TG87MDtSOzs7OztOOzs7OzsKKzA1RTI7SEVCUkVXIExFVFRFUiBBWUlOO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUUzO0hFQlJFVyBMRVRURVIgRklOQUwgUEU7TG87MDtSOzs7OztOOzs7OzsKKzA1RTQ7SEVCUkVXIExFVFRFUiBQRTtMbzswO1I7Ozs7O047Ozs7OworMDVFNTtIRUJSRVcgTEVUVEVSIEZJTkFMIFRTQURJO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUU2O0hFQlJFVyBMRVRURVIgVFNBREk7TG87MDtSOzs7OztOOzs7OzsKKzA1RTc7SEVCUkVXIExFVFRFUiBRT0Y7TG87MDtSOzs7OztOOzs7OzsKKzA1RTg7SEVCUkVXIExFVFRFUiBSRVNIO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUU5O0hFQlJFVyBMRVRURVIgU0hJTjtMbzswO1I7Ozs7O047Ozs7OworMDVFQTtIRUJSRVcgTEVUVEVSIFRBVjtMbzswO1I7Ozs7O047Ozs7OworMDVGMDtIRUJSRVcgTElHQVRVUkUgWUlERElTSCBET1VCTEUgVkFWO0xvOzA7Ujs7Ozs7TjtIRUJSRVcgTEVUVEVSIERPVUJMRSBWQVY7Ozs7CiswNUYxO0hFQlJFVyBMSUdBVFVSRSBZSURESVNIIFZBViBZT0Q7TG87MDtSOzs7OztOO0hFQlJFVyBMRVRURVIgVkFWIFlPRDs7OzsKKzA1RjI7SEVCUkVXIExJR0FUVVJFIFlJRERJU0ggRE9VQkxFIFlPRDtMbzswO1I7Ozs7O047SEVCUkVXIExFVFRFUiBET1VCTEUgWU9EOzs7OworMDVGMztIRUJSRVcgUFVOQ1RVQVRJT04gR0VSRVNIO1BvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUY0O0hFQlJFVyBQVU5DVFVBVElPTiBHRVJTSEFZSU07UG87MDtSOzs7OztOOzs7OzsKKzA2MEM7QVJBQklDIENPTU1BO1BvOzA7Ujs7Ozs7Tjs7Ozs7CiswNjFCO0FSQUJJQyBTRU1JQ09MT047UG87MDtSOzs7OztOOzs7OzsKKzA2MUY7QVJBQklDIFFVRVNUSU9OIE1BUks7UG87MDtSOzs7OztOOzs7OzsKKzA2MjE7QVJBQklDIExFVFRFUiBIQU1aQTtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBIQU1aQUg7Ozs7CiswNjIyO0FSQUJJQyBMRVRURVIgQUxFRiBXSVRIIE1BRERBIEFCT1ZFO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIE1BRERBSCBPTiBBTEVGOzs7OworMDYyMztBUkFCSUMgTEVUVEVSIEFMRUYgV0lUSCBIQU1aQSBBQk9WRTtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBIQU1aQUggT04gQUxFRjs7OzsKKzA2MjQ7QVJBQklDIExFVFRFUiBXQVcgV0lUSCBIQU1aQSBBQk9WRTtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBIQU1aQUggT04gV0FXOzs7OworMDYyNTtBUkFCSUMgTEVUVEVSIEFMRUYgV0lUSCBIQU1aQSBCRUxPVztMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBIQU1aQUggVU5ERVIgQUxFRjs7OzsKKzA2MjY7QVJBQklDIExFVFRFUiBZRUggV0lUSCBIQU1aQSBBQk9WRTtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBIQU1aQUggT04gWUE7Ozs7CiswNjI3O0FSQUJJQyBMRVRURVIgQUxFRjtMbzswO1I7Ozs7O047Ozs7OworMDYyODtBUkFCSUMgTEVUVEVSIEJFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBCQUE7Ozs7CiswNjI5O0FSQUJJQyBMRVRURVIgVEVIIE1BUkJVVEE7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgVEFBIE1BUkJVVEFIOzs7OworMDYyQTtBUkFCSUMgTEVUVEVSIFRFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBUQUE7Ozs7CiswNjJCO0FSQUJJQyBMRVRURVIgVEhFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBUSEFBOzs7OworMDYyQztBUkFCSUMgTEVUVEVSIEpFRU07TG87MDtSOzs7OztOOzs7OzsKKzA2MkQ7QVJBQklDIExFVFRFUiBIQUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgSEFBOzs7OworMDYyRTtBUkFCSUMgTEVUVEVSIEtIQUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgS0hBQTs7OzsKKzA2MkY7QVJBQklDIExFVFRFUiBEQUw7TG87MDtSOzs7OztOOzs7OzsKKzA2MzA7QVJBQklDIExFVFRFUiBUSEFMO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNjMxO0FSQUJJQyBMRVRURVIgUkVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFJBOzs7OworMDYzMjtBUkFCSUMgTEVUVEVSIFpBSU47TG87MDtSOzs7OztOOzs7OzsKKzA2MzM7QVJBQklDIExFVFRFUiBTRUVOO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNjM0O0FSQUJJQyBMRVRURVIgU0hFRU47TG87MDtSOzs7OztOOzs7OzsKKzA2MzU7QVJBQklDIExFVFRFUiBTQUQ7TG87MDtSOzs7OztOOzs7OzsKKzA2MzY7QVJBQklDIExFVFRFUiBEQUQ7TG87MDtSOzs7OztOOzs7OzsKKzA2Mzc7QVJBQklDIExFVFRFUiBUQUg7TG87MDtSOzs7OztOOzs7OzsKKzA2Mzg7QVJBQklDIExFVFRFUiBaQUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgREhBSDs7OzsKKzA2Mzk7QVJBQklDIExFVFRFUiBBSU47TG87MDtSOzs7OztOOzs7OzsKKzA2M0E7QVJBQklDIExFVFRFUiBHSEFJTjtMbzswO1I7Ozs7O047Ozs7OworMDY0MDtBUkFCSUMgVEFUV0VFTDtMbTswO1I7Ozs7O047Ozs7OworMDY0MTtBUkFCSUMgTEVUVEVSIEZFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBGQTs7OzsKKzA2NDI7QVJBQklDIExFVFRFUiBRQUY7TG87MDtSOzs7OztOOzs7OzsKKzA2NDM7QVJBQklDIExFVFRFUiBLQUY7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgQ0FGOzs7OworMDY0NDtBUkFCSUMgTEVUVEVSIExBTTtMbzswO1I7Ozs7O047Ozs7OworMDY0NTtBUkFCSUMgTEVUVEVSIE1FRU07TG87MDtSOzs7OztOOzs7OzsKKzA2NDY7QVJBQklDIExFVFRFUiBOT09OO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNjQ3O0FSQUJJQyBMRVRURVIgSEVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBOzs7OworMDY0ODtBUkFCSUMgTEVUVEVSIFdBVztMbzswO1I7Ozs7O047Ozs7OworMDY0OTtBUkFCSUMgTEVUVEVSIEFMRUYgTUFLU1VSQTtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBBTEVGIE1BUVNVUkFIOzs7OworMDY0QTtBUkFCSUMgTEVUVEVSIFlFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBZQTs7OzsKKzA2NEI7QVJBQklDIEZBVEhBVEFOO01uOzI3O1I7Ozs7O047Ozs7OworMDY0QztBUkFCSUMgREFNTUFUQU47TW47Mjg7Ujs7Ozs7Tjs7Ozs7CiswNjREO0FSQUJJQyBLQVNSQVRBTjtNbjsyOTtSOzs7OztOOzs7OzsKKzA2NEU7QVJBQklDIEZBVEhBO01uOzMwO1I7Ozs7O047QVJBQklDIEZBVEhBSDs7OzsKKzA2NEY7QVJBQklDIERBTU1BO01uOzMxO1I7Ozs7O047QVJBQklDIERBTU1BSDs7OzsKKzA2NTA7QVJBQklDIEtBU1JBO01uOzMyO1I7Ozs7O047QVJBQklDIEtBU1JBSDs7OzsKKzA2NTE7QVJBQklDIFNIQUREQTtNbjszMztSOzs7OztOO0FSQUJJQyBTSEFEREFIOzs7OworMDY1MjtBUkFCSUMgU1VLVU47TW47MzQ7Ujs7Ozs7Tjs7Ozs7CiswNjYwO0FSQUJJQy1JTkRJQyBESUdJVCBaRVJPO05kOzA7QU47OzA7MDswO047Ozs7OworMDY2MTtBUkFCSUMtSU5ESUMgRElHSVQgT05FO05kOzA7QU47OzE7MTsxO047Ozs7OworMDY2MjtBUkFCSUMtSU5ESUMgRElHSVQgVFdPO05kOzA7QU47OzI7MjsyO047Ozs7OworMDY2MztBUkFCSUMtSU5ESUMgRElHSVQgVEhSRUU7TmQ7MDtBTjs7MzszOzM7Tjs7Ozs7CiswNjY0O0FSQUJJQy1JTkRJQyBESUdJVCBGT1VSO05kOzA7QU47OzQ7NDs0O047Ozs7OworMDY2NTtBUkFCSUMtSU5ESUMgRElHSVQgRklWRTtOZDswO0FOOzs1OzU7NTtOOzs7OzsKKzA2NjY7QVJBQklDLUlORElDIERJR0lUIFNJWDtOZDswO0FOOzs2OzY7NjtOOzs7OzsKKzA2Njc7QVJBQklDLUlORElDIERJR0lUIFNFVkVOO05kOzA7QU47Ozc7Nzs3O047Ozs7OworMDY2ODtBUkFCSUMtSU5ESUMgRElHSVQgRUlHSFQ7TmQ7MDtBTjs7ODs4Ozg7Tjs7Ozs7CiswNjY5O0FSQUJJQy1JTkRJQyBESUdJVCBOSU5FO05kOzA7QU47Ozk7OTs5O047Ozs7OworMDY2QTtBUkFCSUMgUEVSQ0VOVCBTSUdOO1BvOzA7RVQ7Ozs7O047Ozs7OworMDY2QjtBUkFCSUMgREVDSU1BTCBTRVBBUkFUT1I7UG87MDtBTjs7Ozs7Tjs7Ozs7CiswNjZDO0FSQUJJQyBUSE9VU0FORFMgU0VQQVJBVE9SO1BvOzA7QU47Ozs7O047Ozs7OworMDY2RDtBUkFCSUMgRklWRSBQT0lOVEVEIFNUQVI7UG87MDtSOzs7OztOOzs7OzsKKzA2NzA7QVJBQklDIExFVFRFUiBTVVBFUlNDUklQVCBBTEVGO01uOzM1O1I7Ozs7O047QVJBQklDIEFMRUYgQUJPVkU7Ozs7CiswNjcxO0FSQUJJQyBMRVRURVIgQUxFRiBXQVNMQTtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBIQU1aQVQgV0FTTCBPTiBBTEVGOzs7OworMDY3MjtBUkFCSUMgTEVUVEVSIEFMRUYgV0lUSCBXQVZZIEhBTVpBIEFCT1ZFO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFdBVlkgSEFNWkFIIE9OIEFMRUY7Ozs7CiswNjczO0FSQUJJQyBMRVRURVIgQUxFRiBXSVRIIFdBVlkgSEFNWkEgQkVMT1c7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgV0FWWSBIQU1aQUggVU5ERVIgQUxFRjs7OzsKKzA2NzQ7QVJBQklDIExFVFRFUiBISUdIIEhBTVpBO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhJR0ggSEFNWkFIOzs7OworMDY3NTtBUkFCSUMgTEVUVEVSIEhJR0ggSEFNWkEgQUxFRjtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBISUdIIEhBTVpBSCBBTEVGOzs7OworMDY3NjtBUkFCSUMgTEVUVEVSIEhJR0ggSEFNWkEgV0FXO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhJR0ggSEFNWkFIIFdBVzs7OzsKKzA2Nzc7QVJBQklDIExFVFRFUiBVIFdJVEggSEFNWkEgQUJPVkU7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgSElHSCBIQU1aQUggV0FXIFdJVEggREFNTUFIOzs7OworMDY3ODtBUkFCSUMgTEVUVEVSIEhJR0ggSEFNWkEgWUVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhJR0ggSEFNWkFIIFlBOzs7OworMDY3OTtBUkFCSUMgTEVUVEVSIFRURUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgVEFBIFdJVEggU01BTEwgVEFIOzs7OworMDY3QTtBUkFCSUMgTEVUVEVSIFRURUhFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBUQUEgV0lUSCBUV08gRE9UUyBWRVJUSUNBTCBBQk9WRTs7OzsKKzA2N0I7QVJBQklDIExFVFRFUiBCRUVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEJBQSBXSVRIIFRXTyBET1RTIFZFUlRJQ0FMIEJFTE9XOzs7OworMDY3QztBUkFCSUMgTEVUVEVSIFRFSCBXSVRIIFJJTkc7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgVEFBIFdJVEggUklORzs7OzsKKzA2N0Q7QVJBQklDIExFVFRFUiBURUggV0lUSCBUSFJFRSBET1RTIEFCT1ZFIERPV05XQVJEUztMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBUQUEgV0lUSCBUSFJFRSBET1RTIEFCT1ZFIERPV05XQVJEOzs7OworMDY3RTtBUkFCSUMgTEVUVEVSIFBFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBUQUEgV0lUSCBUSFJFRSBET1RTIEJFTE9XOzs7OworMDY3RjtBUkFCSUMgTEVUVEVSIFRFSEVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRBQSBXSVRIIEZPVVIgRE9UUyBBQk9WRTs7OzsKKzA2ODA7QVJBQklDIExFVFRFUiBCRUhFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBCQUEgV0lUSCBGT1VSIERPVFMgQkVMT1c7Ozs7CiswNjgxO0FSQUJJQyBMRVRURVIgSEFIIFdJVEggSEFNWkEgQUJPVkU7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgSEFNWkFIIE9OIEhBQTs7OzsKKzA2ODI7QVJBQklDIExFVFRFUiBIQUggV0lUSCBUV08gRE9UUyBWRVJUSUNBTCBBQk9WRTtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBIQUEgV0lUSCBUV08gRE9UUyBWRVJUSUNBTCBBQk9WRTs7OzsKKzA2ODM7QVJBQklDIExFVFRFUiBOWUVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBQSBXSVRIIE1JRERMRSBUV08gRE9UUzs7OzsKKzA2ODQ7QVJBQklDIExFVFRFUiBEWUVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBQSBXSVRIIE1JRERMRSBUV08gRE9UUyBWRVJUSUNBTDs7OzsKKzA2ODU7QVJBQklDIExFVFRFUiBIQUggV0lUSCBUSFJFRSBET1RTIEFCT1ZFO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBQSBXSVRIIFRIUkVFIERPVFMgQUJPVkU7Ozs7CiswNjg2O0FSQUJJQyBMRVRURVIgVENIRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgSEFBIFdJVEggTUlERExFIFRIUkVFIERPVFMgRE9XTldBUkQ7Ozs7CiswNjg3O0FSQUJJQyBMRVRURVIgVENIRUhFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBIQUEgV0lUSCBNSURETEUgRk9VUiBET1RTOzs7OworMDY4ODtBUkFCSUMgTEVUVEVSIEREQUw7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgREFMIFdJVEggU01BTEwgVEFIOzs7OworMDY4OTtBUkFCSUMgTEVUVEVSIERBTCBXSVRIIFJJTkc7TG87MDtSOzs7OztOOzs7OzsKKzA2OEE7QVJBQklDIExFVFRFUiBEQUwgV0lUSCBET1QgQkVMT1c7TG87MDtSOzs7OztOOzs7OzsKKzA2OEI7QVJBQklDIExFVFRFUiBEQUwgV0lUSCBET1QgQkVMT1cgQU5EIFNNQUxMIFRBSDtMbzswO1I7Ozs7O047Ozs7OworMDY4QztBUkFCSUMgTEVUVEVSIERBSEFMO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIERBTCBXSVRIIFRXTyBET1RTIEFCT1ZFOzs7OworMDY4RDtBUkFCSUMgTEVUVEVSIEREQUhBTDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBEQUwgV0lUSCBUV08gRE9UUyBCRUxPVzs7OzsKKzA2OEU7QVJBQklDIExFVFRFUiBEVUw7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgREFMIFdJVEggVEhSRUUgRE9UUyBBQk9WRTs7OzsKKzA2OEY7QVJBQklDIExFVFRFUiBEQUwgV0lUSCBUSFJFRSBET1RTIEFCT1ZFIERPV05XQVJEUztMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBEQUwgV0lUSCBUSFJFRSBET1RTIEFCT1ZFIERPV05XQVJEOzs7OworMDY5MDtBUkFCSUMgTEVUVEVSIERBTCBXSVRIIEZPVVIgRE9UUyBBQk9WRTtMbzswO1I7Ozs7O047Ozs7OworMDY5MTtBUkFCSUMgTEVUVEVSIFJSRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgUkEgV0lUSCBTTUFMTCBUQUg7Ozs7CiswNjkyO0FSQUJJQyBMRVRURVIgUkVIIFdJVEggU01BTEwgVjtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBSQSBXSVRIIFNNQUxMIFY7Ozs7CiswNjkzO0FSQUJJQyBMRVRURVIgUkVIIFdJVEggUklORztMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBSQSBXSVRIIFJJTkc7Ozs7CiswNjk0O0FSQUJJQyBMRVRURVIgUkVIIFdJVEggRE9UIEJFTE9XO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFJBIFdJVEggRE9UIEJFTE9XOzs7OworMDY5NTtBUkFCSUMgTEVUVEVSIFJFSCBXSVRIIFNNQUxMIFYgQkVMT1c7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgUkEgV0lUSCBTTUFMTCBWIEJFTE9XOzs7OworMDY5NjtBUkFCSUMgTEVUVEVSIFJFSCBXSVRIIERPVCBCRUxPVyBBTkQgRE9UIEFCT1ZFO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFJBIFdJVEggRE9UIEJFTE9XIEFORCBET1QgQUJPVkU7Ozs7CiswNjk3O0FSQUJJQyBMRVRURVIgUkVIIFdJVEggVFdPIERPVFMgQUJPVkU7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgUkEgV0lUSCBUV08gRE9UUyBBQk9WRTs7OzsKKzA2OTg7QVJBQklDIExFVFRFUiBKRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgUkEgV0lUSCBUSFJFRSBET1RTIEFCT1ZFOzs7OworMDY5OTtBUkFCSUMgTEVUVEVSIFJFSCBXSVRIIEZPVVIgRE9UUyBBQk9WRTtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBSQSBXSVRIIEZPVVIgRE9UUyBBQk9WRTs7OzsKKzA2OUE7QVJBQklDIExFVFRFUiBTRUVOIFdJVEggRE9UIEJFTE9XIEFORCBET1QgQUJPVkU7TG87MDtSOzs7OztOOzs7OzsKKzA2OUI7QVJBQklDIExFVFRFUiBTRUVOIFdJVEggVEhSRUUgRE9UUyBCRUxPVztMbzswO1I7Ozs7O047Ozs7OworMDY5QztBUkFCSUMgTEVUVEVSIFNFRU4gV0lUSCBUSFJFRSBET1RTIEJFTE9XIEFORCBUSFJFRSBET1RTIEFCT1ZFO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNjlEO0FSQUJJQyBMRVRURVIgU0FEIFdJVEggVFdPIERPVFMgQkVMT1c7TG87MDtSOzs7OztOOzs7OzsKKzA2OUU7QVJBQklDIExFVFRFUiBTQUQgV0lUSCBUSFJFRSBET1RTIEFCT1ZFO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNjlGO0FSQUJJQyBMRVRURVIgVEFIIFdJVEggVEhSRUUgRE9UUyBBQk9WRTtMbzswO1I7Ozs7O047Ozs7OworMDZBMDtBUkFCSUMgTEVUVEVSIEFJTiBXSVRIIFRIUkVFIERPVFMgQUJPVkU7TG87MDtSOzs7OztOOzs7OzsKKzA2QTE7QVJBQklDIExFVFRFUiBET1RMRVNTIEZFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBET1RMRVNTIEZBOzs7OworMDZBMjtBUkFCSUMgTEVUVEVSIEZFSCBXSVRIIERPVCBNT1ZFRCBCRUxPVztMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBGQSBXSVRIIERPVCBNT1ZFRCBCRUxPVzs7OzsKKzA2QTM7QVJBQklDIExFVFRFUiBGRUggV0lUSCBET1QgQkVMT1c7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgRkEgV0lUSCBET1QgQkVMT1c7Ozs7CiswNkE0O0FSQUJJQyBMRVRURVIgVkVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEZBIFdJVEggVEhSRUUgRE9UUyBBQk9WRTs7OzsKKzA2QTU7QVJBQklDIExFVFRFUiBGRUggV0lUSCBUSFJFRSBET1RTIEJFTE9XO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEZBIFdJVEggVEhSRUUgRE9UUyBCRUxPVzs7OzsKKzA2QTY7QVJBQklDIExFVFRFUiBQRUhFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBGQSBXSVRIIEZPVVIgRE9UUyBBQk9WRTs7OzsKKzA2QTc7QVJBQklDIExFVFRFUiBRQUYgV0lUSCBET1QgQUJPVkU7TG87MDtSOzs7OztOOzs7OzsKKzA2QTg7QVJBQklDIExFVFRFUiBRQUYgV0lUSCBUSFJFRSBET1RTIEFCT1ZFO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNkE5O0FSQUJJQyBMRVRURVIgS0VIRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgT1BFTiBDQUY7Ozs7CiswNkFBO0FSQUJJQyBMRVRURVIgU1dBU0ggS0FGO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFNXQVNIIENBRjs7OzsKKzA2QUI7QVJBQklDIExFVFRFUiBLQUYgV0lUSCBSSU5HO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIENBRiBXSVRIIFJJTkc7Ozs7CiswNkFDO0FSQUJJQyBMRVRURVIgS0FGIFdJVEggRE9UIEFCT1ZFO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIENBRiBXSVRIIERPVCBBQk9WRTs7OzsKKzA2QUQ7QVJBQklDIExFVFRFUiBORztMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBDQUYgV0lUSCBUSFJFRSBET1RTIEFCT1ZFOzs7OworMDZBRTtBUkFCSUMgTEVUVEVSIEtBRiBXSVRIIFRIUkVFIERPVFMgQkVMT1c7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgQ0FGIFdJVEggVEhSRUUgRE9UUyBCRUxPVzs7OzsKKzA2QUY7QVJBQklDIExFVFRFUiBHQUY7TG87MDtSOzs7OztOOzs7OzsKKzA2QjA7QVJBQklDIExFVFRFUiBHQUYgV0lUSCBSSU5HO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNkIxO0FSQUJJQyBMRVRURVIgTkdPRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgR0FGIFdJVEggVFdPIERPVFMgQUJPVkU7Ozs7CiswNkIyO0FSQUJJQyBMRVRURVIgR0FGIFdJVEggVFdPIERPVFMgQkVMT1c7TG87MDtSOzs7OztOOzs7OzsKKzA2QjM7QVJBQklDIExFVFRFUiBHVUVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEdBRiBXSVRIIFRXTyBET1RTIFZFUlRJQ0FMIEJFTE9XOzs7OworMDZCNDtBUkFCSUMgTEVUVEVSIEdBRiBXSVRIIFRIUkVFIERPVFMgQUJPVkU7TG87MDtSOzs7OztOOzs7OzsKKzA2QjU7QVJBQklDIExFVFRFUiBMQU0gV0lUSCBTTUFMTCBWO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNkI2O0FSQUJJQyBMRVRURVIgTEFNIFdJVEggRE9UIEFCT1ZFO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNkI3O0FSQUJJQyBMRVRURVIgTEFNIFdJVEggVEhSRUUgRE9UUyBBQk9WRTtMbzswO1I7Ozs7O047Ozs7OworMDZCQTtBUkFCSUMgTEVUVEVSIE5PT04gR0hVTk5BO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIERPVExFU1MgTk9PTjs7OzsKKzA2QkI7QVJBQklDIExFVFRFUiBSTk9PTjtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBET1RMRVNTIE5PT04gV0lUSCBTTUFMTCBUQUg7Ozs7CiswNkJDO0FSQUJJQyBMRVRURVIgTk9PTiBXSVRIIFJJTkc7TG87MDtSOzs7OztOOzs7OzsKKzA2QkQ7QVJBQklDIExFVFRFUiBOT09OIFdJVEggVEhSRUUgRE9UUyBBQk9WRTtMbzswO1I7Ozs7O047Ozs7OworMDZCRTtBUkFCSUMgTEVUVEVSIEhFSCBET0FDSEFTSE1FRTtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBLTk9UVEVEIEhBOzs7OworMDZDMDtBUkFCSUMgTEVUVEVSIEhFSCBXSVRIIFlFSCBBQk9WRTtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBIQU1aQUggT04gSEE7Ozs7CiswNkMxO0FSQUJJQyBMRVRURVIgSEVIIEdPQUw7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgSEEgR09BTDs7OzsKKzA2QzI7QVJBQklDIExFVFRFUiBIRUggR09BTCBXSVRIIEhBTVpBIEFCT1ZFO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBTVpBSCBPTiBIQSBHT0FMOzs7OworMDZDMztBUkFCSUMgTEVUVEVSIFRFSCBNQVJCVVRBIEdPQUw7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgVEFBIE1BUkJVVEFIIEdPQUw7Ozs7CiswNkM0O0FSQUJJQyBMRVRURVIgV0FXIFdJVEggUklORztMbzswO1I7Ozs7O047Ozs7OworMDZDNTtBUkFCSUMgTEVUVEVSIEtJUkdISVogT0U7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgV0FXIFdJVEggQkFSOzs7OworMDZDNjtBUkFCSUMgTEVUVEVSIE9FO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFdBVyBXSVRIIFNNQUxMIFY7Ozs7CiswNkM3O0FSQUJJQyBMRVRURVIgVTtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBXQVcgV0lUSCBEQU1NQUg7Ozs7CiswNkM4O0FSQUJJQyBMRVRURVIgWVU7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgV0FXIFdJVEggQUxFRiBBQk9WRTs7OzsKKzA2Qzk7QVJBQklDIExFVFRFUiBLSVJHSElaIFlVO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFdBVyBXSVRIIElOVkVSVEVEIFNNQUxMIFY7Ozs7CiswNkNBO0FSQUJJQyBMRVRURVIgV0FXIFdJVEggVFdPIERPVFMgQUJPVkU7TG87MDtSOzs7OztOOzs7OzsKKzA2Q0I7QVJBQklDIExFVFRFUiBWRTtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBXQVcgV0lUSCBUSFJFRSBET1RTIEFCT1ZFOzs7OworMDZDQztBUkFCSUMgTEVUVEVSIEZBUlNJIFlFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBET1RMRVNTIFlBOzs7OworMDZDRDtBUkFCSUMgTEVUVEVSIFlFSCBXSVRIIFRBSUw7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgWUEgV0lUSCBUQUlMOzs7OworMDZDRTtBUkFCSUMgTEVUVEVSIFlFSCBXSVRIIFNNQUxMIFY7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgWUEgV0lUSCBTTUFMTCBWOzs7OworMDZEMDtBUkFCSUMgTEVUVEVSIEU7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgWUEgV0lUSCBUV08gRE9UUyBWRVJUSUNBTCBCRUxPVzs7OzsKKzA2RDE7QVJBQklDIExFVFRFUiBZRUggV0lUSCBUSFJFRSBET1RTIEJFTE9XO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFlBIFdJVEggVEhSRUUgRE9UUyBCRUxPVzs7OzsKKzA2RDI7QVJBQklDIExFVFRFUiBZRUggQkFSUkVFO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFlBIEJBUlJFRTs7OzsKKzA2RDM7QVJBQklDIExFVFRFUiBZRUggQkFSUkVFIFdJVEggSEFNWkEgQUJPVkU7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgSEFNWkFIIE9OIFlBIEJBUlJFRTs7OzsKKzA2RDQ7QVJBQklDIEZVTEwgU1RPUDtQbzswO1I7Ozs7O047QVJBQklDIFBFUklPRDs7OzsKKzA2RDU7QVJBQklDIExFVFRFUiBBRTtMbzswO1I7Ozs7O047Ozs7OworMDZENjtBUkFCSUMgU01BTEwgSElHSCBMSUdBVFVSRSBTQUQgV0lUSCBMQU0gV0lUSCBBTEVGIE1BS1NVUkE7TW47MjMwO1I7Ozs7O047Ozs7OworMDZENztBUkFCSUMgU01BTEwgSElHSCBMSUdBVFVSRSBRQUYgV0lUSCBMQU0gV0lUSCBBTEVGIE1BS1NVUkE7TW47MjMwO1I7Ozs7O047Ozs7OworMDZEODtBUkFCSUMgU01BTEwgSElHSCBNRUVNIElOSVRJQUwgRk9STTtNbjsyMzA7Ujs7Ozs7Tjs7Ozs7CiswNkQ5O0FSQUJJQyBTTUFMTCBISUdIIExBTSBBTEVGO01uOzIzMDtSOzs7OztOOzs7OzsKKzA2REE7QVJBQklDIFNNQUxMIEhJR0ggSkVFTTtNbjsyMzA7Ujs7Ozs7Tjs7Ozs7CiswNkRCO0FSQUJJQyBTTUFMTCBISUdIIFRIUkVFIERPVFM7TW47MjMwO1I7Ozs7O047Ozs7OworMDZEQztBUkFCSUMgU01BTEwgSElHSCBTRUVOO01uOzIzMDtSOzs7OztOOzs7OzsKKzA2REQ7QVJBQklDIEVORCBPRiBBWUFIO01lOzA7Ujs7Ozs7Tjs7Ozs7CiswNkRFO0FSQUJJQyBTVEFSVCBPRiBSVUIgRUwgSElaQjtNZTswO1I7Ozs7O047Ozs7OworMDZERjtBUkFCSUMgU01BTEwgSElHSCBST1VOREVEIFpFUk87TW47MjMwO1I7Ozs7O047Ozs7OworMDZFMDtBUkFCSUMgU01BTEwgSElHSCBVUFJJR0hUIFJFQ1RBTkdVTEFSIFpFUk87TW47MjMwO1I7Ozs7O047Ozs7OworMDZFMTtBUkFCSUMgU01BTEwgSElHSCBET1RMRVNTIEhFQUQgT0YgS0hBSDtNbjsyMzA7Ujs7Ozs7Tjs7Ozs7CiswNkUyO0FSQUJJQyBTTUFMTCBISUdIIE1FRU0gSVNPTEFURUQgRk9STTtNbjsyMzA7Ujs7Ozs7Tjs7Ozs7CiswNkUzO0FSQUJJQyBTTUFMTCBMT1cgU0VFTjtNbjsyMjA7Ujs7Ozs7Tjs7Ozs7CiswNkU0O0FSQUJJQyBTTUFMTCBISUdIIE1BRERBO01uOzIzMDtSOzs7OztOOzs7OzsKKzA2RTU7QVJBQklDIFNNQUxMIFdBVztMbTswO1I7Ozs7O047Ozs7OworMDZFNjtBUkFCSUMgU01BTEwgWUVIO0xtOzA7Ujs7Ozs7Tjs7Ozs7CiswNkU3O0FSQUJJQyBTTUFMTCBISUdIIFlFSDtNbjsyMzA7Ujs7Ozs7Tjs7Ozs7CiswNkU4O0FSQUJJQyBTTUFMTCBISUdIIE5PT047TW47MjMwO1I7Ozs7O047Ozs7OworMDZFOTtBUkFCSUMgUExBQ0UgT0YgU0FKREFIO1NvOzA7Ujs7Ozs7Tjs7Ozs7CiswNkVBO0FSQUJJQyBFTVBUWSBDRU5UUkUgTE9XIFNUT1A7TW47MjIwO1I7Ozs7O047Ozs7OworMDZFQjtBUkFCSUMgRU1QVFkgQ0VOVFJFIEhJR0ggU1RPUDtNbjsyMzA7Ujs7Ozs7Tjs7Ozs7CiswNkVDO0FSQUJJQyBST1VOREVEIEhJR0ggU1RPUCBXSVRIIEZJTExFRCBDRU5UUkU7TW47MjMwO1I7Ozs7O047Ozs7OworMDZFRDtBUkFCSUMgU01BTEwgTE9XIE1FRU07TW47MjIwO1I7Ozs7O047Ozs7OworMDZGMDtFWFRFTkRFRCBBUkFCSUMtSU5ESUMgRElHSVQgWkVSTztOZDswO0VOOzswOzA7MDtOO0VBU1RFUk4gQVJBQklDLUlORElDIERJR0lUIFpFUk87Ozs7CiswNkYxO0VYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBPTkU7TmQ7MDtFTjs7MTsxOzE7TjtFQVNURVJOIEFSQUJJQy1JTkRJQyBESUdJVCBPTkU7Ozs7CiswNkYyO0VYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBUV087TmQ7MDtFTjs7MjsyOzI7TjtFQVNURVJOIEFSQUJJQy1JTkRJQyBESUdJVCBUV087Ozs7CiswNkYzO0VYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBUSFJFRTtOZDswO0VOOzszOzM7MztOO0VBU1RFUk4gQVJBQklDLUlORElDIERJR0lUIFRIUkVFOzs7OworMDZGNDtFWFRFTkRFRCBBUkFCSUMtSU5ESUMgRElHSVQgRk9VUjtOZDswO0VOOzs0OzQ7NDtOO0VBU1RFUk4gQVJBQklDLUlORElDIERJR0lUIEZPVVI7Ozs7CiswNkY1O0VYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBGSVZFO05kOzA7RU47OzU7NTs1O047RUFTVEVSTiBBUkFCSUMtSU5ESUMgRElHSVQgRklWRTs7OzsKKzA2RjY7RVhURU5ERUQgQVJBQklDLUlORElDIERJR0lUIFNJWDtOZDswO0VOOzs2OzY7NjtOO0VBU1RFUk4gQVJBQklDLUlORElDIERJR0lUIFNJWDs7OzsKKzA2Rjc7RVhURU5ERUQgQVJBQklDLUlORElDIERJR0lUIFNFVkVOO05kOzA7RU47Ozc7Nzs3O047RUFTVEVSTiBBUkFCSUMtSU5ESUMgRElHSVQgU0VWRU47Ozs7CiswNkY4O0VYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBFSUdIVDtOZDswO0VOOzs4Ozg7ODtOO0VBU1RFUk4gQVJBQklDLUlORElDIERJR0lUIEVJR0hUOzs7OworMDZGOTtFWFRFTkRFRCBBUkFCSUMtSU5ESUMgRElHSVQgTklORTtOZDswO0VOOzs5Ozk7OTtOO0VBU1RFUk4gQVJBQklDLUlORElDIERJR0lUIE5JTkU7Ozs7CiswOTAxO0RFVkFOQUdBUkkgU0lHTiBDQU5EUkFCSU5EVTtNbjszNztMOzs7OztOOzs7OzsKKzA5MDI7REVWQU5BR0FSSSBTSUdOIEFOVVNWQVJBO01uOzM2O0w7Ozs7O047Ozs7OworMDkwMztERVZBTkFHQVJJIFNJR04gVklTQVJHQTtNYzswO0w7Ozs7O047Ozs7OworMDkwNTtERVZBTkFHQVJJIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTA2O0RFVkFOQUdBUkkgTEVUVEVSIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTA3O0RFVkFOQUdBUkkgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzA5MDg7REVWQU5BR0FSSSBMRVRURVIgSUk7TG87MDtMOzs7OztOOzs7OzsKKzA5MDk7REVWQU5BR0FSSSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMDkwQTtERVZBTkFHQVJJIExFVFRFUiBVVTtMbzswO0w7Ozs7O047Ozs7OworMDkwQjtERVZBTkFHQVJJIExFVFRFUiBWT0NBTElDIFI7TG87MDtMOzs7OztOOzs7OzsKKzA5MEM7REVWQU5BR0FSSSBMRVRURVIgVk9DQUxJQyBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTBEO0RFVkFOQUdBUkkgTEVUVEVSIENBTkRSQSBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTBFO0RFVkFOQUdBUkkgTEVUVEVSIFNIT1JUIEU7TG87MDtMOzs7OztOOzs7OzsKKzA5MEY7REVWQU5BR0FSSSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMDkxMDtERVZBTkFHQVJJIExFVFRFUiBBSTtMbzswO0w7Ozs7O047Ozs7OworMDkxMTtERVZBTkFHQVJJIExFVFRFUiBDQU5EUkEgTztMbzswO0w7Ozs7O047Ozs7OworMDkxMjtERVZBTkFHQVJJIExFVFRFUiBTSE9SVCBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTEzO0RFVkFOQUdBUkkgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzA5MTQ7REVWQU5BR0FSSSBMRVRURVIgQVU7TG87MDtMOzs7OztOOzs7OzsKKzA5MTU7REVWQU5BR0FSSSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzA5MTY7REVWQU5BR0FSSSBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTE3O0RFVkFOQUdBUkkgTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTE4O0RFVkFOQUdBUkkgTEVUVEVSIEdIQTtMbzswO0w7Ozs7O047Ozs7OworMDkxOTtERVZBTkFHQVJJIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzA5MUE7REVWQU5BR0FSSSBMRVRURVIgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzA5MUI7REVWQU5BR0FSSSBMRVRURVIgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTFDO0RFVkFOQUdBUkkgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTFEO0RFVkFOQUdBUkkgTEVUVEVSIEpIQTtMbzswO0w7Ozs7O047Ozs7OworMDkxRTtERVZBTkFHQVJJIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzA5MUY7REVWQU5BR0FSSSBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTIwO0RFVkFOQUdBUkkgTEVUVEVSIFRUSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MjE7REVWQU5BR0FSSSBMRVRURVIgRERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTIyO0RFVkFOQUdBUkkgTEVUVEVSIERESEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MjM7REVWQU5BR0FSSSBMRVRURVIgTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTI0O0RFVkFOQUdBUkkgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTI1O0RFVkFOQUdBUkkgTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMDkyNjtERVZBTkFHQVJJIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMDkyNztERVZBTkFHQVJJIExFVFRFUiBESEE7TG87MDtMOzs7OztOOzs7OzsKKzA5Mjg7REVWQU5BR0FSSSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzA5Mjk7REVWQU5BR0FSSSBMRVRURVIgTk5OQTtMbzswO0w7MDkyOCAwOTNDOzs7O047Ozs7OworMDkyQTtERVZBTkFHQVJJIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMDkyQjtERVZBTkFHQVJJIExFVFRFUiBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MkM7REVWQU5BR0FSSSBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzA5MkQ7REVWQU5BR0FSSSBMRVRURVIgQkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTJFO0RFVkFOQUdBUkkgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTJGO0RFVkFOQUdBUkkgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTMwO0RFVkFOQUdBUkkgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTMxO0RFVkFOQUdBUkkgTEVUVEVSIFJSQTtMbzswO0w7MDkzMCAwOTNDOzs7O047Ozs7OworMDkzMjtERVZBTkFHQVJJIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMDkzMztERVZBTkFHQVJJIExFVFRFUiBMTEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MzQ7REVWQU5BR0FSSSBMRVRURVIgTExMQTtMbzswO0w7MDkzMyAwOTNDOzs7O047Ozs7OworMDkzNTtERVZBTkFHQVJJIExFVFRFUiBWQTtMbzswO0w7Ozs7O047Ozs7OworMDkzNjtERVZBTkFHQVJJIExFVFRFUiBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5Mzc7REVWQU5BR0FSSSBMRVRURVIgU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTM4O0RFVkFOQUdBUkkgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTM5O0RFVkFOQUdBUkkgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTNDO0RFVkFOQUdBUkkgU0lHTiBOVUtUQTtNbjs3O0w7Ozs7O047Ozs7OworMDkzRDtERVZBTkFHQVJJIFNJR04gQVZBR1JBSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5M0U7REVWQU5BR0FSSSBWT1dFTCBTSUdOIEFBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOTNGO0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOTQwO0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBJSTtNYzswO0w7Ozs7O047Ozs7OworMDk0MTtERVZBTkFHQVJJIFZPV0VMIFNJR04gVTtNbjszODtMOzs7OztOOzs7OzsKKzA5NDI7REVWQU5BR0FSSSBWT1dFTCBTSUdOIFVVO01uOzM5O0w7Ozs7O047Ozs7OworMDk0MztERVZBTkFHQVJJIFZPV0VMIFNJR04gVk9DQUxJQyBSO01uOzQwO0w7Ozs7O047Ozs7OworMDk0NDtERVZBTkFHQVJJIFZPV0VMIFNJR04gVk9DQUxJQyBSUjtNbjs0MTtMOzs7OztOOzs7OzsKKzA5NDU7REVWQU5BR0FSSSBWT1dFTCBTSUdOIENBTkRSQSBFO01uOzQyO0w7Ozs7O047Ozs7OworMDk0NjtERVZBTkFHQVJJIFZPV0VMIFNJR04gU0hPUlQgRTtNbjs0MztMOzs7OztOOzs7OzsKKzA5NDc7REVWQU5BR0FSSSBWT1dFTCBTSUdOIEU7TW47NDQ7TDs7Ozs7Tjs7Ozs7CiswOTQ4O0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBBSTtNbjs0NTtMOzs7OztOOzs7OzsKKzA5NDk7REVWQU5BR0FSSSBWT1dFTCBTSUdOIENBTkRSQSBPO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOTRBO0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBTSE9SVCBPO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOTRCO0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBPO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOTRDO0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBBVTtNYzswO0w7Ozs7O047Ozs7OworMDk0RDtERVZBTkFHQVJJIFNJR04gVklSQU1BO01uOzk7TDs7Ozs7Tjs7Ozs7CiswOTUwO0RFVkFOQUdBUkkgT007U287MDtMOzs7OztOOzs7OzsKKzA5NTE7REVWQU5BR0FSSSBTVFJFU1MgU0lHTiBVREFUVEE7TW47NDY7TDs7Ozs7Tjs7Ozs7CiswOTUyO0RFVkFOQUdBUkkgU1RSRVNTIFNJR04gQU5VREFUVEE7TW47NDc7TDs7Ozs7Tjs7Ozs7CiswOTUzO0RFVkFOQUdBUkkgR1JBVkUgQUNDRU5UO01uOzIzMDtMOzs7OztOOzs7OzsKKzA5NTQ7REVWQU5BR0FSSSBBQ1VURSBBQ0NFTlQ7TW47MjMwO0w7Ozs7O047Ozs7OworMDk1ODtERVZBTkFHQVJJIExFVFRFUiBRQTtMbzswO0w7MDkxNSAwOTNDOzs7O047Ozs7OworMDk1OTtERVZBTkFHQVJJIExFVFRFUiBLSEhBO0xvOzA7TDswOTE2IDA5M0M7Ozs7Tjs7Ozs7CiswOTVBO0RFVkFOQUdBUkkgTEVUVEVSIEdISEE7TG87MDtMOzA5MTcgMDkzQzs7OztOOzs7OzsKKzA5NUI7REVWQU5BR0FSSSBMRVRURVIgWkE7TG87MDtMOzA5MUMgMDkzQzs7OztOOzs7OzsKKzA5NUM7REVWQU5BR0FSSSBMRVRURVIgRERESEE7TG87MDtMOzA5MjEgMDkzQzs7OztOOzs7OzsKKzA5NUQ7REVWQU5BR0FSSSBMRVRURVIgUkhBO0xvOzA7TDswOTIyIDA5M0M7Ozs7Tjs7Ozs7CiswOTVFO0RFVkFOQUdBUkkgTEVUVEVSIEZBO0xvOzA7TDswOTJCIDA5M0M7Ozs7Tjs7Ozs7CiswOTVGO0RFVkFOQUdBUkkgTEVUVEVSIFlZQTtMbzswO0w7MDkyRiAwOTNDOzs7O047Ozs7OworMDk2MDtERVZBTkFHQVJJIExFVFRFUiBWT0NBTElDIFJSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTYxO0RFVkFOQUdBUkkgTEVUVEVSIFZPQ0FMSUMgTEw7TG87MDtMOzs7OztOOzs7OzsKKzA5NjI7REVWQU5BR0FSSSBWT1dFTCBTSUdOIFZPQ0FMSUMgTDtNbjs0ODtMOzs7OztOOzs7OzsKKzA5NjM7REVWQU5BR0FSSSBWT1dFTCBTSUdOIFZPQ0FMSUMgTEw7TW47NDk7TDs7Ozs7Tjs7Ozs7CiswOTY0O0RFVkFOQUdBUkkgREFOREE7UG87MDtMOzs7OztOOzs7OzsKKzA5NjU7REVWQU5BR0FSSSBET1VCTEUgREFOREE7UG87MDtMOzs7OztOOzs7OzsKKzA5NjY7REVWQU5BR0FSSSBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CiswOTY3O0RFVkFOQUdBUkkgRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CiswOTY4O0RFVkFOQUdBUkkgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswOTY5O0RFVkFOQUdBUkkgRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzA5NkE7REVWQU5BR0FSSSBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CiswOTZCO0RFVkFOQUdBUkkgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMDk2QztERVZBTkFHQVJJIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMDk2RDtERVZBTkFHQVJJIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CiswOTZFO0RFVkFOQUdBUkkgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzA5NkY7REVWQU5BR0FSSSBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CiswOTcwO0RFVkFOQUdBUkkgQUJCUkVWSUFUSU9OIFNJR047UG87MDtMOzs7OztOOzs7OzsKKzA5ODE7QkVOR0FMSSBTSUdOIENBTkRSQUJJTkRVO01uOzUwO0w7Ozs7O047Ozs7OworMDk4MjtCRU5HQUxJIFNJR04gQU5VU1ZBUkE7TWM7MDtMOzs7OztOOzs7OzsKKzA5ODM7QkVOR0FMSSBTSUdOIFZJU0FSR0E7TWM7MDtMOzs7OztOOzs7OzsKKzA5ODU7QkVOR0FMSSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMDk4NjtCRU5HQUxJIExFVFRFUiBBQTtMbzswO0w7Ozs7O047Ozs7OworMDk4NztCRU5HQUxJIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTg4O0JFTkdBTEkgTEVUVEVSIElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTg5O0JFTkdBTEkgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzA5OEE7QkVOR0FMSSBMRVRURVIgVVU7TG87MDtMOzs7OztOOzs7OzsKKzA5OEI7QkVOR0FMSSBMRVRURVIgVk9DQUxJQyBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOThDO0JFTkdBTEkgTEVUVEVSIFZPQ0FMSUMgTDtMbzswO0w7Ozs7O047Ozs7OworMDk4RjtCRU5HQUxJIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTkwO0JFTkdBTEkgTEVUVEVSIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTkzO0JFTkdBTEkgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzA5OTQ7QkVOR0FMSSBMRVRURVIgQVU7TG87MDtMOzs7OztOOzs7OzsKKzA5OTU7QkVOR0FMSSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzA5OTY7QkVOR0FMSSBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTk3O0JFTkdBTEkgTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTk4O0JFTkdBTEkgTEVUVEVSIEdIQTtMbzswO0w7Ozs7O047Ozs7OworMDk5OTtCRU5HQUxJIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzA5OUE7QkVOR0FMSSBMRVRURVIgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzA5OUI7QkVOR0FMSSBMRVRURVIgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTlDO0JFTkdBTEkgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTlEO0JFTkdBTEkgTEVUVEVSIEpIQTtMbzswO0w7Ozs7O047Ozs7OworMDk5RTtCRU5HQUxJIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzA5OUY7QkVOR0FMSSBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUEwO0JFTkdBTEkgTEVUVEVSIFRUSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5QTE7QkVOR0FMSSBMRVRURVIgRERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUEyO0JFTkdBTEkgTEVUVEVSIERESEE7TG87MDtMOzs7OztOOzs7OzsKKzA5QTM7QkVOR0FMSSBMRVRURVIgTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUE0O0JFTkdBTEkgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUE1O0JFTkdBTEkgTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMDlBNjtCRU5HQUxJIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMDlBNztCRU5HQUxJIExFVFRFUiBESEE7TG87MDtMOzs7OztOOzs7OzsKKzA5QTg7QkVOR0FMSSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzA5QUE7QkVOR0FMSSBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzA5QUI7QkVOR0FMSSBMRVRURVIgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUFDO0JFTkdBTEkgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUFEO0JFTkdBTEkgTEVUVEVSIEJIQTtMbzswO0w7Ozs7O047Ozs7OworMDlBRTtCRU5HQUxJIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMDlBRjtCRU5HQUxJIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMDlCMDtCRU5HQUxJIExFVFRFUiBSQTtMbzswO0w7MDlBQyAwOUJDOzs7O047Ozs7OworMDlCMjtCRU5HQUxJIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMDlCNjtCRU5HQUxJIExFVFRFUiBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5Qjc7QkVOR0FMSSBMRVRURVIgU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUI4O0JFTkdBTEkgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUI5O0JFTkdBTEkgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUJDO0JFTkdBTEkgU0lHTiBOVUtUQTtNbjs3O0w7Ozs7O047Ozs7OworMDlCRTtCRU5HQUxJIFZPV0VMIFNJR04gQUE7TWM7MDtMOzs7OztOOzs7OzsKKzA5QkY7QkVOR0FMSSBWT1dFTCBTSUdOIEk7TWM7MDtMOzs7OztOOzs7OzsKKzA5QzA7QkVOR0FMSSBWT1dFTCBTSUdOIElJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOUMxO0JFTkdBTEkgVk9XRUwgU0lHTiBVO01uOzUxO0w7Ozs7O047Ozs7OworMDlDMjtCRU5HQUxJIFZPV0VMIFNJR04gVVU7TW47NTI7TDs7Ozs7Tjs7Ozs7CiswOUMzO0JFTkdBTEkgVk9XRUwgU0lHTiBWT0NBTElDIFI7TW47NTM7TDs7Ozs7Tjs7Ozs7CiswOUM0O0JFTkdBTEkgVk9XRUwgU0lHTiBWT0NBTElDIFJSO01uOzU0O0w7Ozs7O047Ozs7OworMDlDNztCRU5HQUxJIFZPV0VMIFNJR04gRTtNYzswO0w7Ozs7O047Ozs7OworMDlDODtCRU5HQUxJIFZPV0VMIFNJR04gQUk7TWM7MDtMOzs7OztOOzs7OzsKKzA5Q0I7QkVOR0FMSSBWT1dFTCBTSUdOIE87TWM7MDtMOzA5QzcgMDlCRTs7OztOOzs7OzsKKzA5Q0M7QkVOR0FMSSBWT1dFTCBTSUdOIEFVO01jOzA7TDswOUM3IDA5RDc7Ozs7Tjs7Ozs7CiswOUNEO0JFTkdBTEkgU0lHTiBWSVJBTUE7TW47OTtMOzs7OztOOzs7OzsKKzA5RDc7QkVOR0FMSSBBVSBMRU5HVEggTUFSSztNYzswO0w7Ozs7O047Ozs7OworMDlEQztCRU5HQUxJIExFVFRFUiBSUkE7TG87MDtMOzA5QTEgMDlCQzs7OztOOzs7OzsKKzA5REQ7QkVOR0FMSSBMRVRURVIgUkhBO0xvOzA7TDswOUEyIDA5QkM7Ozs7Tjs7Ozs7CiswOURGO0JFTkdBTEkgTEVUVEVSIFlZQTtMbzswO0w7MDlBRiAwOUJDOzs7O047Ozs7OworMDlFMDtCRU5HQUxJIExFVFRFUiBWT0NBTElDIFJSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUUxO0JFTkdBTEkgTEVUVEVSIFZPQ0FMSUMgTEw7TG87MDtMOzs7OztOOzs7OzsKKzA5RTI7QkVOR0FMSSBWT1dFTCBTSUdOIFZPQ0FMSUMgTDtNbjs1NTtMOzs7OztOOzs7OzsKKzA5RTM7QkVOR0FMSSBWT1dFTCBTSUdOIFZPQ0FMSUMgTEw7TW47NTY7TDs7Ozs7Tjs7Ozs7CiswOUU2O0JFTkdBTEkgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMDlFNztCRU5HQUxJIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMDlFODtCRU5HQUxJIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMDlFOTtCRU5HQUxJIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswOUVBO0JFTkdBTEkgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMDlFQjtCRU5HQUxJIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzA5RUM7QkVOR0FMSSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzA5RUQ7QkVOR0FMSSBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMDlFRTtCRU5HQUxJIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswOUVGO0JFTkdBTEkgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMDlGMDtCRU5HQUxJIExFVFRFUiBSQSBXSVRIIE1JRERMRSBESUFHT05BTDtMbzswO0w7Ozs7O047O0Fzc2FtZXNlOzs7CiswOUYxO0JFTkdBTEkgTEVUVEVSIFJBIFdJVEggTE9XRVIgRElBR09OQUw7TG87MDtMOzs7OztOO0JFTkdBTEkgTEVUVEVSIFZBIFdJVEggTE9XRVIgRElBR09OQUw7QXNzYW1lc2U7OzsKKzA5RjI7QkVOR0FMSSBSVVBFRSBNQVJLO1NjOzA7TDs7Ozs7Tjs7Ozs7CiswOUYzO0JFTkdBTEkgUlVQRUUgU0lHTjtTYzswO0w7Ozs7O047Ozs7OworMDlGNDtCRU5HQUxJIENVUlJFTkNZIE5VTUVSQVRPUiBPTkU7Tm87MDtMOzs7OzE7Tjs7Ozs7CiswOUY1O0JFTkdBTEkgQ1VSUkVOQ1kgTlVNRVJBVE9SIFRXTztObzswO0w7Ozs7MjtOOzs7OzsKKzA5RjY7QkVOR0FMSSBDVVJSRU5DWSBOVU1FUkFUT1IgVEhSRUU7Tm87MDtMOzs7OzM7Tjs7Ozs7CiswOUY3O0JFTkdBTEkgQ1VSUkVOQ1kgTlVNRVJBVE9SIEZPVVI7Tm87MDtMOzs7OzQ7Tjs7Ozs7CiswOUY4O0JFTkdBTEkgQ1VSUkVOQ1kgTlVNRVJBVE9SIE9ORSBMRVNTIFRIQU4gVEhFIERFTk9NSU5BVE9SO05vOzA7TDs7OzstMTtOOzs7OzsKKzA5Rjk7QkVOR0FMSSBDVVJSRU5DWSBERU5PTUlOQVRPUiBTSVhURUVOO05vOzA7TDs7OzsxNjtOOzs7OzsKKzA5RkE7QkVOR0FMSSBJU1NIQVI7U287MDtMOzs7OztOOzs7OzsKKzBBMDI7R1VSTVVLSEkgU0lHTiBCSU5ESTtNbjs1NztMOzs7OztOOzs7OzsKKzBBMDU7R1VSTVVLSEkgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMDY7R1VSTVVLSEkgTEVUVEVSIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTA3O0dVUk1VS0hJIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTA4O0dVUk1VS0hJIExFVFRFUiBJSTtMbzswO0w7Ozs7O047Ozs7OworMEEwOTtHVVJNVUtISSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMEEwQTtHVVJNVUtISSBMRVRURVIgVVU7TG87MDtMOzs7OztOOzs7OzsKKzBBMEY7R1VSTVVLSEkgTEVUVEVSIEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTEwO0dVUk1VS0hJIExFVFRFUiBBSTtMbzswO0w7Ozs7O047Ozs7OworMEExMztHVVJNVUtISSBMRVRURVIgT087TG87MDtMOzs7OztOOzs7OzsKKzBBMTQ7R1VSTVVLSEkgTEVUVEVSIEFVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTE1O0dVUk1VS0hJIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMEExNjtHVVJNVUtISSBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTE3O0dVUk1VS0hJIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMEExODtHVVJNVUtISSBMRVRURVIgR0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTE5O0dVUk1VS0hJIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzBBMUE7R1VSTVVLSEkgTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTFCO0dVUk1VS0hJIExFVFRFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMUM7R1VSTVVLSEkgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTFEO0dVUk1VS0hJIExFVFRFUiBKSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMUU7R1VSTVVLSEkgTEVUVEVSIE5ZQTtMbzswO0w7Ozs7O047Ozs7OworMEExRjtHVVJNVUtISSBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTIwO0dVUk1VS0hJIExFVFRFUiBUVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTIxO0dVUk1VS0hJIExFVFRFUiBEREE7TG87MDtMOzs7OztOOzs7OzsKKzBBMjI7R1VSTVVLSEkgTEVUVEVSIERESEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMjM7R1VSTVVLSEkgTEVUVEVSIE5OQTtMbzswO0w7Ozs7O047Ozs7OworMEEyNDtHVVJNVUtISSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMjU7R1VSTVVLSEkgTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEEyNjtHVVJNVUtISSBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzBBMjc7R1VSTVVLSEkgTEVUVEVSIERIQTtMbzswO0w7Ozs7O047Ozs7OworMEEyODtHVVJNVUtISSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzBBMkE7R1VSTVVLSEkgTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTJCO0dVUk1VS0hJIExFVFRFUiBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMkM7R1VSTVVLSEkgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTJEO0dVUk1VS0hJIExFVFRFUiBCSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMkU7R1VSTVVLSEkgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTJGO0dVUk1VS0hJIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMEEzMDtHVVJNVUtISSBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzBBMzI7R1VSTVVLSEkgTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTMzO0dVUk1VS0hJIExFVFRFUiBMTEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMzU7R1VSTVVLSEkgTEVUVEVSIFZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTM2O0dVUk1VS0hJIExFVFRFUiBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMzg7R1VSTVVLSEkgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTM5O0dVUk1VS0hJIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMEEzQztHVVJNVUtISSBTSUdOIE5VS1RBO01uOzc7TDs7Ozs7Tjs7Ozs7CiswQTNFO0dVUk1VS0hJIFZPV0VMIFNJR04gQUE7TWM7MDtMOzs7OztOOzs7OzsKKzBBM0Y7R1VSTVVLSEkgVk9XRUwgU0lHTiBJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQTQwO0dVUk1VS0hJIFZPV0VMIFNJR04gSUk7TWM7MDtMOzs7OztOOzs7OzsKKzBBNDE7R1VSTVVLSEkgVk9XRUwgU0lHTiBVO01uOzU4O0w7Ozs7O047Ozs7OworMEE0MjtHVVJNVUtISSBWT1dFTCBTSUdOIFVVO01uOzU5O0w7Ozs7O047Ozs7OworMEE0NztHVVJNVUtISSBWT1dFTCBTSUdOIEVFO01uOzYwO0w7Ozs7O047Ozs7OworMEE0ODtHVVJNVUtISSBWT1dFTCBTSUdOIEFJO01uOzYxO0w7Ozs7O047Ozs7OworMEE0QjtHVVJNVUtISSBWT1dFTCBTSUdOIE9PO01uOzYyO0w7Ozs7O047Ozs7OworMEE0QztHVVJNVUtISSBWT1dFTCBTSUdOIEFVO01uOzYzO0w7Ozs7O047Ozs7OworMEE0RDtHVVJNVUtISSBTSUdOIFZJUkFNQTtNbjs5O0w7Ozs7O047Ozs7OworMEE1OTtHVVJNVUtISSBMRVRURVIgS0hIQTtMbzswO0w7MEExNiAwQTNDOzs7O047Ozs7OworMEE1QTtHVVJNVUtISSBMRVRURVIgR0hIQTtMbzswO0w7MEExNyAwQTNDOzs7O047Ozs7OworMEE1QjtHVVJNVUtISSBMRVRURVIgWkE7TG87MDtMOzBBMUMgMEEzQzs7OztOOzs7OzsKKzBBNUM7R1VSTVVLSEkgTEVUVEVSIFJSQTtMbzswO0w7MEEyMSAwQTNDOzs7O047Ozs7OworMEE1RTtHVVJNVUtISSBMRVRURVIgRkE7TG87MDtMOzBBMkIgMEEzQzs7OztOOzs7OzsKKzBBNjY7R1VSTVVLSEkgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMEE2NztHVVJNVUtISSBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzBBNjg7R1VSTVVLSEkgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswQTY5O0dVUk1VS0hJIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswQTZBO0dVUk1VS0hJIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzBBNkI7R1VSTVVLSEkgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMEE2QztHVVJNVUtISSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzBBNkQ7R1VSTVVLSEkgRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzBBNkU7R1VSTVVLSEkgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzBBNkY7R1VSTVVLSEkgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMEE3MDtHVVJNVUtISSBUSVBQSTtNbjs2NDtMOzs7OztOOzs7OzsKKzBBNzE7R1VSTVVLSEkgQUREQUs7TW47NjU7TDs7Ozs7Tjs7Ozs7CiswQTcyO0dVUk1VS0hJIElSSTtMbzswO0w7Ozs7O047Ozs7OworMEE3MztHVVJNVUtISSBVUkE7TG87MDtMOzs7OztOOzs7OzsKKzBBNzQ7R1VSTVVLSEkgRUsgT05LQVI7TG87MDtMOzs7OztOOzs7OzsKKzBBODE7R1VKQVJBVEkgU0lHTiBDQU5EUkFCSU5EVTtNbjs2NztMOzs7OztOOzs7OzsKKzBBODI7R1VKQVJBVEkgU0lHTiBBTlVTVkFSQTtNbjs2NjtMOzs7OztOOzs7OzsKKzBBODM7R1VKQVJBVEkgU0lHTiBWSVNBUkdBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQTg1O0dVSkFSQVRJIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTg2O0dVSkFSQVRJIExFVFRFUiBBQTtMbzswO0w7Ozs7O047Ozs7OworMEE4NztHVUpBUkFUSSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMEE4ODtHVUpBUkFUSSBMRVRURVIgSUk7TG87MDtMOzs7OztOOzs7OzsKKzBBODk7R1VKQVJBVEkgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzBBOEE7R1VKQVJBVEkgTEVUVEVSIFVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQThCO0dVSkFSQVRJIExFVFRFUiBWT0NBTElDIFI7TG87MDtMOzs7OztOOzs7OzsKKzBBOEQ7R1VKQVJBVEkgVk9XRUwgQ0FORFJBIEU7TG87MDtMOzs7OztOOzs7OzsKKzBBOEY7R1VKQVJBVEkgTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzBBOTA7R1VKQVJBVEkgTEVUVEVSIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTkxO0dVSkFSQVRJIFZPV0VMIENBTkRSQSBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTkzO0dVSkFSQVRJIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTk0O0dVSkFSQVRJIExFVFRFUiBBVTtMbzswO0w7Ozs7O047Ozs7OworMEE5NTtHVUpBUkFUSSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzBBOTY7R1VKQVJBVEkgTEVUVEVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMEE5NztHVUpBUkFUSSBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzBBOTg7R1VKQVJBVEkgTEVUVEVSIEdIQTtMbzswO0w7Ozs7O047Ozs7OworMEE5OTtHVUpBUkFUSSBMRVRURVIgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTlBO0dVSkFSQVRJIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMEE5QjtHVUpBUkFUSSBMRVRURVIgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTlDO0dVSkFSQVRJIExFVFRFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworMEE5RDtHVUpBUkFUSSBMRVRURVIgSkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTlFO0dVSkFSQVRJIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzBBOUY7R1VKQVJBVEkgTEVUVEVSIFRUQTtMbzswO0w7Ozs7O047Ozs7OworMEFBMDtHVUpBUkFUSSBMRVRURVIgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEFBMTtHVUpBUkFUSSBMRVRURVIgRERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUEyO0dVSkFSQVRJIExFVFRFUiBEREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUEzO0dVSkFSQVRJIExFVFRFUiBOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBBQTQ7R1VKQVJBVEkgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUE1O0dVSkFSQVRJIExFVFRFUiBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQTY7R1VKQVJBVEkgTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUE3O0dVSkFSQVRJIExFVFRFUiBESEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQTg7R1VKQVJBVEkgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUFBO0dVSkFSQVRJIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMEFBQjtHVUpBUkFUSSBMRVRURVIgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUFDO0dVSkFSQVRJIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMEFBRDtHVUpBUkFUSSBMRVRURVIgQkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUFFO0dVSkFSQVRJIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMEFBRjtHVUpBUkFUSSBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzBBQjA7R1VKQVJBVEkgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUIyO0dVSkFSQVRJIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMEFCMztHVUpBUkFUSSBMRVRURVIgTExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUI1O0dVSkFSQVRJIExFVFRFUiBWQTtMbzswO0w7Ozs7O047Ozs7OworMEFCNjtHVUpBUkFUSSBMRVRURVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUI3O0dVSkFSQVRJIExFVFRFUiBTU0E7TG87MDtMOzs7OztOOzs7OzsKKzBBQjg7R1VKQVJBVEkgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUI5O0dVSkFSQVRJIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMEFCQztHVUpBUkFUSSBTSUdOIE5VS1RBO01uOzc7TDs7Ozs7Tjs7Ozs7CiswQUJEO0dVSkFSQVRJIFNJR04gQVZBR1JBSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQkU7R1VKQVJBVEkgVk9XRUwgU0lHTiBBQTtNYzswO0w7Ozs7O047Ozs7OworMEFCRjtHVUpBUkFUSSBWT1dFTCBTSUdOIEk7TWM7MDtMOzs7OztOOzs7OzsKKzBBQzA7R1VKQVJBVEkgVk9XRUwgU0lHTiBJSTtNYzswO0w7Ozs7O047Ozs7OworMEFDMTtHVUpBUkFUSSBWT1dFTCBTSUdOIFU7TW47Njg7TDs7Ozs7Tjs7Ozs7CiswQUMyO0dVSkFSQVRJIFZPV0VMIFNJR04gVVU7TW47Njk7TDs7Ozs7Tjs7Ozs7CiswQUMzO0dVSkFSQVRJIFZPV0VMIFNJR04gVk9DQUxJQyBSO01uOzcwO0w7Ozs7O047Ozs7OworMEFDNDtHVUpBUkFUSSBWT1dFTCBTSUdOIFZPQ0FMSUMgUlI7TW47NzE7TDs7Ozs7Tjs7Ozs7CiswQUM1O0dVSkFSQVRJIFZPV0VMIFNJR04gQ0FORFJBIEU7TW47NzI7TDs7Ozs7Tjs7Ozs7CiswQUM3O0dVSkFSQVRJIFZPV0VMIFNJR04gRTtNbjs3MztMOzs7OztOOzs7OzsKKzBBQzg7R1VKQVJBVEkgVk9XRUwgU0lHTiBBSTtNbjs3NDtMOzs7OztOOzs7OzsKKzBBQzk7R1VKQVJBVEkgVk9XRUwgU0lHTiBDQU5EUkEgTztNYzswO0w7Ozs7O047Ozs7OworMEFDQjtHVUpBUkFUSSBWT1dFTCBTSUdOIE87TWM7MDtMOzs7OztOOzs7OzsKKzBBQ0M7R1VKQVJBVEkgVk9XRUwgU0lHTiBBVTtNYzswO0w7Ozs7O047Ozs7OworMEFDRDtHVUpBUkFUSSBTSUdOIFZJUkFNQTtNbjs5O0w7Ozs7O047Ozs7OworMEFEMDtHVUpBUkFUSSBPTTtTbzswO0w7Ozs7O047Ozs7OworMEFFMDtHVUpBUkFUSSBMRVRURVIgVk9DQUxJQyBSUjtMbzswO0w7Ozs7O047Ozs7OworMEFFNjtHVUpBUkFUSSBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CiswQUU3O0dVSkFSQVRJIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMEFFODtHVUpBUkFUSSBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzBBRTk7R1VKQVJBVEkgRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzBBRUE7R1VKQVJBVEkgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMEFFQjtHVUpBUkFUSSBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CiswQUVDO0dVSkFSQVRJIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMEFFRDtHVUpBUkFUSSBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMEFFRTtHVUpBUkFUSSBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMEFFRjtHVUpBUkFUSSBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CiswQjAxO09SSVlBIFNJR04gQ0FORFJBQklORFU7TW47NzU7TDs7Ozs7Tjs7Ozs7CiswQjAyO09SSVlBIFNJR04gQU5VU1ZBUkE7TWM7MDtMOzs7OztOOzs7OzsKKzBCMDM7T1JJWUEgU0lHTiBWSVNBUkdBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQjA1O09SSVlBIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjA2O09SSVlBIExFVFRFUiBBQTtMbzswO0w7Ozs7O047Ozs7OworMEIwNztPUklZQSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMEIwODtPUklZQSBMRVRURVIgSUk7TG87MDtMOzs7OztOOzs7OzsKKzBCMDk7T1JJWUEgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzBCMEE7T1JJWUEgTEVUVEVSIFVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjBCO09SSVlBIExFVFRFUiBWT0NBTElDIFI7TG87MDtMOzs7OztOOzs7OzsKKzBCMEM7T1JJWUEgTEVUVEVSIFZPQ0FMSUMgTDtMbzswO0w7Ozs7O047Ozs7OworMEIwRjtPUklZQSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMEIxMDtPUklZQSBMRVRURVIgQUk7TG87MDtMOzs7OztOOzs7OzsKKzBCMTM7T1JJWUEgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzBCMTQ7T1JJWUEgTEVUVEVSIEFVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjE1O09SSVlBIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMEIxNjtPUklZQSBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjE3O09SSVlBIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMEIxODtPUklZQSBMRVRURVIgR0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjE5O09SSVlBIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzBCMUE7T1JJWUEgTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjFCO09SSVlBIExFVFRFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMUM7T1JJWUEgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjFEO09SSVlBIExFVFRFUiBKSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMUU7T1JJWUEgTEVUVEVSIE5ZQTtMbzswO0w7Ozs7O047Ozs7OworMEIxRjtPUklZQSBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjIwO09SSVlBIExFVFRFUiBUVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjIxO09SSVlBIExFVFRFUiBEREE7TG87MDtMOzs7OztOOzs7OzsKKzBCMjI7T1JJWUEgTEVUVEVSIERESEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMjM7T1JJWUEgTEVUVEVSIE5OQTtMbzswO0w7Ozs7O047Ozs7OworMEIyNDtPUklZQSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMjU7T1JJWUEgTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEIyNjtPUklZQSBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzBCMjc7T1JJWUEgTEVUVEVSIERIQTtMbzswO0w7Ozs7O047Ozs7OworMEIyODtPUklZQSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzBCMkE7T1JJWUEgTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjJCO09SSVlBIExFVFRFUiBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMkM7T1JJWUEgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjJEO09SSVlBIExFVFRFUiBCSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMkU7T1JJWUEgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjJGO09SSVlBIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMEIzMDtPUklZQSBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzBCMzI7T1JJWUEgTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjMzO09SSVlBIExFVFRFUiBMTEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMzY7T1JJWUEgTEVUVEVSIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMEIzNztPUklZQSBMRVRURVIgU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjM4O09SSVlBIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMEIzOTtPUklZQSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCM0M7T1JJWUEgU0lHTiBOVUtUQTtNbjs3O0w7Ozs7O047Ozs7OworMEIzRDtPUklZQSBTSUdOIEFWQUdSQUhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjNFO09SSVlBIFZPV0VMIFNJR04gQUE7TWM7MDtMOzs7OztOOzs7OzsKKzBCM0Y7T1JJWUEgVk9XRUwgU0lHTiBJO01uOzc2O0w7Ozs7O047Ozs7OworMEI0MDtPUklZQSBWT1dFTCBTSUdOIElJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQjQxO09SSVlBIFZPV0VMIFNJR04gVTtNbjs3NztMOzs7OztOOzs7OzsKKzBCNDI7T1JJWUEgVk9XRUwgU0lHTiBVVTtNbjs3ODtMOzs7OztOOzs7OzsKKzBCNDM7T1JJWUEgVk9XRUwgU0lHTiBWT0NBTElDIFI7TW47Nzk7TDs7Ozs7Tjs7Ozs7CiswQjQ3O09SSVlBIFZPV0VMIFNJR04gRTtNYzswO0w7Ozs7O047Ozs7OworMEI0ODtPUklZQSBWT1dFTCBTSUdOIEFJO01jOzA7TDswQjQ3IDBCNTY7Ozs7Tjs7Ozs7CiswQjRCO09SSVlBIFZPV0VMIFNJR04gTztNYzswO0w7MEI0NyAwQjNFOzs7O047Ozs7OworMEI0QztPUklZQSBWT1dFTCBTSUdOIEFVO01jOzA7TDswQjQ3IDBCNTc7Ozs7Tjs7Ozs7CiswQjREO09SSVlBIFNJR04gVklSQU1BO01uOzk7TDs7Ozs7Tjs7Ozs7CiswQjU2O09SSVlBIEFJIExFTkdUSCBNQVJLO01uOzIzMDtMOzs7OztOOzs7OzsKKzBCNTc7T1JJWUEgQVUgTEVOR1RIIE1BUks7TWM7MDtMOzs7OztOOzs7OzsKKzBCNUM7T1JJWUEgTEVUVEVSIFJSQTtMbzswO0w7MEIyMSAwQjNDOzs7O047Ozs7OworMEI1RDtPUklZQSBMRVRURVIgUkhBO0xvOzA7TDswQjIyIDBCM0M7Ozs7Tjs7Ozs7CiswQjVGO09SSVlBIExFVFRFUiBZWUE7TG87MDtMOzBCMkYgMEIzQzs7OztOOzs7OzsKKzBCNjA7T1JJWUEgTEVUVEVSIFZPQ0FMSUMgUlI7TG87MDtMOzs7OztOOzs7OzsKKzBCNjE7T1JJWUEgTEVUVEVSIFZPQ0FMSUMgTEw7TG87MDtMOzs7OztOOzs7OzsKKzBCNjY7T1JJWUEgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMEI2NztPUklZQSBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzBCNjg7T1JJWUEgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswQjY5O09SSVlBIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswQjZBO09SSVlBIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzBCNkI7T1JJWUEgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMEI2QztPUklZQSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzBCNkQ7T1JJWUEgRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzBCNkU7T1JJWUEgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzBCNkY7T1JJWUEgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMEI3MDtPUklZQSBJU1NIQVI7U287MDtMOzs7OztOOzs7OzsKKzBCODI7VEFNSUwgU0lHTiBBTlVTVkFSQTtNbjswO0w7Ozs7O047Ozs7OworMEI4MztUQU1JTCBTSUdOIFZJU0FSR0E7TWM7MDtMOzs7OztOOzs7OzsKKzBCODU7VEFNSUwgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzBCODY7VEFNSUwgTEVUVEVSIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjg3O1RBTUlMIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjg4O1RBTUlMIExFVFRFUiBJSTtMbzswO0w7Ozs7O047Ozs7OworMEI4OTtUQU1JTCBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMEI4QTtUQU1JTCBMRVRURVIgVVU7TG87MDtMOzs7OztOOzs7OzsKKzBCOEU7VEFNSUwgTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzBCOEY7VEFNSUwgTEVUVEVSIEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjkwO1RBTUlMIExFVFRFUiBBSTtMbzswO0w7Ozs7O047Ozs7OworMEI5MjtUQU1JTCBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMEI5MztUQU1JTCBMRVRURVIgT087TG87MDtMOzs7OztOOzs7OzsKKzBCOTQ7VEFNSUwgTEVUVEVSIEFVO0xvOzA7TDswQjkyIDBCRDc7Ozs7Tjs7Ozs7CiswQjk1O1RBTUlMIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMEI5OTtUQU1JTCBMRVRURVIgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjlBO1RBTUlMIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMEI5QztUQU1JTCBMRVRURVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzBCOUU7VEFNSUwgTEVUVEVSIE5ZQTtMbzswO0w7Ozs7O047Ozs7OworMEI5RjtUQU1JTCBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkEzO1RBTUlMIExFVFRFUiBOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBCQTQ7VEFNSUwgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkE4O1RBTUlMIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMEJBOTtUQU1JTCBMRVRURVIgTk5OQTtMbzswO0w7Ozs7O047Ozs7OworMEJBQTtUQU1JTCBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzBCQUU7VEFNSUwgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkFGO1RBTUlMIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMEJCMDtUQU1JTCBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzBCQjE7VEFNSUwgTEVUVEVSIFJSQTtMbzswO0w7Ozs7O047Ozs7OworMEJCMjtUQU1JTCBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzBCQjM7VEFNSUwgTEVUVEVSIExMQTtMbzswO0w7Ozs7O047Ozs7OworMEJCNDtUQU1JTCBMRVRURVIgTExMQTtMbzswO0w7Ozs7O047Ozs7OworMEJCNTtUQU1JTCBMRVRURVIgVkE7TG87MDtMOzs7OztOOzs7OzsKKzBCQjc7VEFNSUwgTEVUVEVSIFNTQTtMbzswO0w7Ozs7O047Ozs7OworMEJCODtUQU1JTCBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzBCQjk7VEFNSUwgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkJFO1RBTUlMIFZPV0VMIFNJR04gQUE7TWM7MDtMOzs7OztOOzs7OzsKKzBCQkY7VEFNSUwgVk9XRUwgU0lHTiBJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQkMwO1RBTUlMIFZPV0VMIFNJR04gSUk7TW47ODA7TDs7Ozs7Tjs7Ozs7CiswQkMxO1RBTUlMIFZPV0VMIFNJR04gVTtNYzswO0w7Ozs7O047Ozs7OworMEJDMjtUQU1JTCBWT1dFTCBTSUdOIFVVO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQkM2O1RBTUlMIFZPV0VMIFNJR04gRTtNYzswO0w7Ozs7O047Ozs7OworMEJDNztUQU1JTCBWT1dFTCBTSUdOIEVFO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQkM4O1RBTUlMIFZPV0VMIFNJR04gQUk7TWM7MDtMOzs7OztOOzs7OzsKKzBCQ0E7VEFNSUwgVk9XRUwgU0lHTiBPO01jOzA7TDswQkM2IDBCQkU7Ozs7Tjs7Ozs7CiswQkNCO1RBTUlMIFZPV0VMIFNJR04gT087TWM7MDtMOzBCQzcgMEJCRTs7OztOOzs7OzsKKzBCQ0M7VEFNSUwgVk9XRUwgU0lHTiBBVTtNYzswO0w7MEJDNiAwQkQ3Ozs7O047Ozs7OworMEJDRDtUQU1JTCBTSUdOIFZJUkFNQTtNbjs5O0w7Ozs7O047Ozs7OworMEJENztUQU1JTCBBVSBMRU5HVEggTUFSSztNYzswO0w7Ozs7O047Ozs7OworMEJFNztUQU1JTCBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzBCRTg7VEFNSUwgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswQkU5O1RBTUlMIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswQkVBO1RBTUlMIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzBCRUI7VEFNSUwgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMEJFQztUQU1JTCBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzBCRUQ7VEFNSUwgRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzBCRUU7VEFNSUwgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzBCRUY7VEFNSUwgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMEJGMDtUQU1JTCBOVU1CRVIgVEVOO05vOzA7TDs7OzsxMDtOOzs7OzsKKzBCRjE7VEFNSUwgTlVNQkVSIE9ORSBIVU5EUkVEO05vOzA7TDs7OzsxMDA7Tjs7Ozs7CiswQkYyO1RBTUlMIE5VTUJFUiBPTkUgVEhPVVNBTkQ7Tm87MDtMOzs7OzEwMDA7Tjs7Ozs7CiswQzAxO1RFTFVHVSBTSUdOIENBTkRSQUJJTkRVO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzAyO1RFTFVHVSBTSUdOIEFOVVNWQVJBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzAzO1RFTFVHVSBTSUdOIFZJU0FSR0E7TWM7MDtMOzs7OztOOzs7OzsKKzBDMDU7VEVMVUdVIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzA2O1RFTFVHVSBMRVRURVIgQUE7TG87MDtMOzs7OztOOzs7OzsKKzBDMDc7VEVMVUdVIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzA4O1RFTFVHVSBMRVRURVIgSUk7TG87MDtMOzs7OztOOzs7OzsKKzBDMDk7VEVMVUdVIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzBBO1RFTFVHVSBMRVRURVIgVVU7TG87MDtMOzs7OztOOzs7OzsKKzBDMEI7VEVMVUdVIExFVFRFUiBWT0NBTElDIFI7TG87MDtMOzs7OztOOzs7OzsKKzBDMEM7VEVMVUdVIExFVFRFUiBWT0NBTElDIEw7TG87MDtMOzs7OztOOzs7OzsKKzBDMEU7VEVMVUdVIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzBGO1RFTFVHVSBMRVRURVIgRUU7TG87MDtMOzs7OztOOzs7OzsKKzBDMTA7VEVMVUdVIExFVFRFUiBBSTtMbzswO0w7Ozs7O047Ozs7OworMEMxMjtURUxVR1UgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzBDMTM7VEVMVUdVIExFVFRFUiBPTztMbzswO0w7Ozs7O047Ozs7OworMEMxNDtURUxVR1UgTEVUVEVSIEFVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzE1O1RFTFVHVSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzBDMTY7VEVMVUdVIExFVFRFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMTc7VEVMVUdVIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMEMxODtURUxVR1UgTEVUVEVSIEdIQTtMbzswO0w7Ozs7O047Ozs7OworMEMxOTtURUxVR1UgTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMEMxQTtURUxVR1UgTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzFCO1RFTFVHVSBMRVRURVIgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzFDO1RFTFVHVSBMRVRURVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzBDMUQ7VEVMVUdVIExFVFRFUiBKSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMUU7VEVMVUdVIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzBDMUY7VEVMVUdVIExFVFRFUiBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMjA7VEVMVUdVIExFVFRFUiBUVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzIxO1RFTFVHVSBMRVRURVIgRERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzIyO1RFTFVHVSBMRVRURVIgRERIQTtMbzswO0w7Ozs7O047Ozs7OworMEMyMztURUxVR1UgTEVUVEVSIE5OQTtMbzswO0w7Ozs7O047Ozs7OworMEMyNDtURUxVR1UgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzI1O1RFTFVHVSBMRVRURVIgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzI2O1RFTFVHVSBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzBDMjc7VEVMVUdVIExFVFRFUiBESEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMjg7VEVMVUdVIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMEMyQTtURUxVR1UgTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzJCO1RFTFVHVSBMRVRURVIgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzJDO1RFTFVHVSBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzBDMkQ7VEVMVUdVIExFVFRFUiBCSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMkU7VEVMVUdVIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMEMyRjtURUxVR1UgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzMwO1RFTFVHVSBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzBDMzE7VEVMVUdVIExFVFRFUiBSUkE7TG87MDtMOzs7OztOOzs7OzsKKzBDMzI7VEVMVUdVIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMEMzMztURUxVR1UgTEVUVEVSIExMQTtMbzswO0w7Ozs7O047Ozs7OworMEMzNTtURUxVR1UgTEVUVEVSIFZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzM2O1RFTFVHVSBMRVRURVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzM3O1RFTFVHVSBMRVRURVIgU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzM4O1RFTFVHVSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzBDMzk7VEVMVUdVIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMEMzRTtURUxVR1UgVk9XRUwgU0lHTiBBQTtNbjs4MTtMOzs7OztOOzs7OzsKKzBDM0Y7VEVMVUdVIFZPV0VMIFNJR04gSTtNbjs4MjtMOzs7OztOOzs7OzsKKzBDNDA7VEVMVUdVIFZPV0VMIFNJR04gSUk7TW47ODM7TDs7Ozs7Tjs7Ozs7CiswQzQxO1RFTFVHVSBWT1dFTCBTSUdOIFU7TWM7MDtMOzs7OztOOzs7OzsKKzBDNDI7VEVMVUdVIFZPV0VMIFNJR04gVVU7TWM7MDtMOzs7OztOOzs7OzsKKzBDNDM7VEVMVUdVIFZPV0VMIFNJR04gVk9DQUxJQyBSO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzQ0O1RFTFVHVSBWT1dFTCBTSUdOIFZPQ0FMSUMgUlI7TWM7MDtMOzs7OztOOzs7OzsKKzBDNDY7VEVMVUdVIFZPV0VMIFNJR04gRTtNbjs4NDtMOzs7OztOOzs7OzsKKzBDNDc7VEVMVUdVIFZPV0VMIFNJR04gRUU7TW47ODU7TDs7Ozs7Tjs7Ozs7CiswQzQ4O1RFTFVHVSBWT1dFTCBTSUdOIEFJO01uOzg2O0w7MEM0NiAwQzU2Ozs7O047Ozs7OworMEM0QTtURUxVR1UgVk9XRUwgU0lHTiBPO01uOzg3O0w7Ozs7O047Ozs7OworMEM0QjtURUxVR1UgVk9XRUwgU0lHTiBPTztNbjs4ODtMOzs7OztOOzs7OzsKKzBDNEM7VEVMVUdVIFZPV0VMIFNJR04gQVU7TW47ODk7TDs7Ozs7Tjs7Ozs7CiswQzREO1RFTFVHVSBTSUdOIFZJUkFNQTtNbjs5O0w7Ozs7O047Ozs7OworMEM1NTtURUxVR1UgTEVOR1RIIE1BUks7TW47OTA7TDs7Ozs7Tjs7Ozs7CiswQzU2O1RFTFVHVSBBSSBMRU5HVEggTUFSSztNbjs5MTtMOzs7OztOOzs7OzsKKzBDNjA7VEVMVUdVIExFVFRFUiBWT0NBTElDIFJSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzYxO1RFTFVHVSBMRVRURVIgVk9DQUxJQyBMTDtMbzswO0w7Ozs7O047Ozs7OworMEM2NjtURUxVR1UgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMEM2NztURUxVR1UgRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CiswQzY4O1RFTFVHVSBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzBDNjk7VEVMVUdVIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswQzZBO1RFTFVHVSBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CiswQzZCO1RFTFVHVSBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CiswQzZDO1RFTFVHVSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzBDNkQ7VEVMVUdVIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CiswQzZFO1RFTFVHVSBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMEM2RjtURUxVR1UgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMEM4MjtLQU5OQURBIFNJR04gQU5VU1ZBUkE7TWM7MDtMOzs7OztOOzs7OzsKKzBDODM7S0FOTkFEQSBTSUdOIFZJU0FSR0E7TWM7MDtMOzs7OztOOzs7OzsKKzBDODU7S0FOTkFEQSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMEM4NjtLQU5OQURBIExFVFRFUiBBQTtMbzswO0w7Ozs7O047Ozs7OworMEM4NztLQU5OQURBIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzg4O0tBTk5BREEgTEVUVEVSIElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzg5O0tBTk5BREEgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzBDOEE7S0FOTkFEQSBMRVRURVIgVVU7TG87MDtMOzs7OztOOzs7OzsKKzBDOEI7S0FOTkFEQSBMRVRURVIgVk9DQUxJQyBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzhDO0tBTk5BREEgTEVUVEVSIFZPQ0FMSUMgTDtMbzswO0w7Ozs7O047Ozs7OworMEM4RTtLQU5OQURBIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzhGO0tBTk5BREEgTEVUVEVSIEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzkwO0tBTk5BREEgTEVUVEVSIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzkyO0tBTk5BREEgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzBDOTM7S0FOTkFEQSBMRVRURVIgT087TG87MDtMOzs7OztOOzs7OzsKKzBDOTQ7S0FOTkFEQSBMRVRURVIgQVU7TG87MDtMOzs7OztOOzs7OzsKKzBDOTU7S0FOTkFEQSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzBDOTY7S0FOTkFEQSBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzk3O0tBTk5BREEgTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzk4O0tBTk5BREEgTEVUVEVSIEdIQTtMbzswO0w7Ozs7O047Ozs7OworMEM5OTtLQU5OQURBIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzBDOUE7S0FOTkFEQSBMRVRURVIgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzBDOUI7S0FOTkFEQSBMRVRURVIgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzlDO0tBTk5BREEgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzlEO0tBTk5BREEgTEVUVEVSIEpIQTtMbzswO0w7Ozs7O047Ozs7OworMEM5RTtLQU5OQURBIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzBDOUY7S0FOTkFEQSBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0EwO0tBTk5BREEgTEVUVEVSIFRUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQTE7S0FOTkFEQSBMRVRURVIgRERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0EyO0tBTk5BREEgTEVUVEVSIERESEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQTM7S0FOTkFEQSBMRVRURVIgTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0E0O0tBTk5BREEgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0E1O0tBTk5BREEgTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMENBNjtLQU5OQURBIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMENBNztLQU5OQURBIExFVFRFUiBESEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQTg7S0FOTkFEQSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzBDQUE7S0FOTkFEQSBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQUI7S0FOTkFEQSBMRVRURVIgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0FDO0tBTk5BREEgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0FEO0tBTk5BREEgTEVUVEVSIEJIQTtMbzswO0w7Ozs7O047Ozs7OworMENBRTtLQU5OQURBIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMENBRjtLQU5OQURBIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMENCMDtLQU5OQURBIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMENCMTtLQU5OQURBIExFVFRFUiBSUkE7TG87MDtMOzs7OztOOzs7OzsKKzBDQjI7S0FOTkFEQSBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQjM7S0FOTkFEQSBMRVRURVIgTExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0I1O0tBTk5BREEgTEVUVEVSIFZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0I2O0tBTk5BREEgTEVUVEVSIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMENCNztLQU5OQURBIExFVFRFUiBTU0E7TG87MDtMOzs7OztOOzs7OzsKKzBDQjg7S0FOTkFEQSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzBDQjk7S0FOTkFEQSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQkU7S0FOTkFEQSBWT1dFTCBTSUdOIEFBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQ0JGO0tBTk5BREEgVk9XRUwgU0lHTiBJO01uOzkyO0w7Ozs7O047Ozs7OworMENDMDtLQU5OQURBIFZPV0VMIFNJR04gSUk7TWM7MDtMOzBDQkYgMENENTs7OztOOzs7OzsKKzBDQzE7S0FOTkFEQSBWT1dFTCBTSUdOIFU7TWM7MDtMOzs7OztOOzs7OzsKKzBDQzI7S0FOTkFEQSBWT1dFTCBTSUdOIFVVO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQ0MzO0tBTk5BREEgVk9XRUwgU0lHTiBWT0NBTElDIFI7TWM7MDtMOzs7OztOOzs7OzsKKzBDQzQ7S0FOTkFEQSBWT1dFTCBTSUdOIFZPQ0FMSUMgUlI7TWM7MDtMOzs7OztOOzs7OzsKKzBDQzY7S0FOTkFEQSBWT1dFTCBTSUdOIEU7TW47OTM7TDs7Ozs7Tjs7Ozs7CiswQ0M3O0tBTk5BREEgVk9XRUwgU0lHTiBFRTtNYzswO0w7MENDNiAwQ0Q1Ozs7O047Ozs7OworMENDODtLQU5OQURBIFZPV0VMIFNJR04gQUk7TWM7MDtMOzBDQzYgMENENjs7OztOOzs7OzsKKzBDQ0E7S0FOTkFEQSBWT1dFTCBTSUdOIE87TWM7MDtMOzBDQzYgMENDMjs7OztOOzs7OzsKKzBDQ0I7S0FOTkFEQSBWT1dFTCBTSUdOIE9PO01jOzA7TDswQ0M2IDBDQzIgMENENTs7OztOOzs7OzsKKzBDQ0M7S0FOTkFEQSBWT1dFTCBTSUdOIEFVO01uOzk0O0w7Ozs7O047Ozs7OworMENDRDtLQU5OQURBIFNJR04gVklSQU1BO01uOzk7TDs7Ozs7Tjs7Ozs7CiswQ0Q1O0tBTk5BREEgTEVOR1RIIE1BUks7TWM7MDtMOzs7OztOOzs7OzsKKzBDRDY7S0FOTkFEQSBBSSBMRU5HVEggTUFSSztNYzswO0w7Ozs7O047Ozs7OworMENERTtLQU5OQURBIExFVFRFUiBGQTtMbzswO0w7Ozs7O047Ozs7OworMENFMDtLQU5OQURBIExFVFRFUiBWT0NBTElDIFJSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0UxO0tBTk5BREEgTEVUVEVSIFZPQ0FMSUMgTEw7TG87MDtMOzs7OztOOzs7OzsKKzBDRTY7S0FOTkFEQSBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CiswQ0U3O0tBTk5BREEgRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CiswQ0U4O0tBTk5BREEgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswQ0U5O0tBTk5BREEgRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzBDRUE7S0FOTkFEQSBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CiswQ0VCO0tBTk5BREEgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMENFQztLQU5OQURBIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMENFRDtLQU5OQURBIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CiswQ0VFO0tBTk5BREEgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzBDRUY7S0FOTkFEQSBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CiswRDAyO01BTEFZQUxBTSBTSUdOIEFOVVNWQVJBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswRDAzO01BTEFZQUxBTSBTSUdOIFZJU0FSR0E7TWM7MDtMOzs7OztOOzs7OzsKKzBEMDU7TUFMQVlBTEFNIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDA2O01BTEFZQUxBTSBMRVRURVIgQUE7TG87MDtMOzs7OztOOzs7OzsKKzBEMDc7TUFMQVlBTEFNIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDA4O01BTEFZQUxBTSBMRVRURVIgSUk7TG87MDtMOzs7OztOOzs7OzsKKzBEMDk7TUFMQVlBTEFNIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDBBO01BTEFZQUxBTSBMRVRURVIgVVU7TG87MDtMOzs7OztOOzs7OzsKKzBEMEI7TUFMQVlBTEFNIExFVFRFUiBWT0NBTElDIFI7TG87MDtMOzs7OztOOzs7OzsKKzBEMEM7TUFMQVlBTEFNIExFVFRFUiBWT0NBTElDIEw7TG87MDtMOzs7OztOOzs7OzsKKzBEMEU7TUFMQVlBTEFNIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDBGO01BTEFZQUxBTSBMRVRURVIgRUU7TG87MDtMOzs7OztOOzs7OzsKKzBEMTA7TUFMQVlBTEFNIExFVFRFUiBBSTtMbzswO0w7Ozs7O047Ozs7OworMEQxMjtNQUxBWUFMQU0gTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzBEMTM7TUFMQVlBTEFNIExFVFRFUiBPTztMbzswO0w7Ozs7O047Ozs7OworMEQxNDtNQUxBWUFMQU0gTEVUVEVSIEFVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDE1O01BTEFZQUxBTSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzBEMTY7TUFMQVlBTEFNIExFVFRFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMTc7TUFMQVlBTEFNIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMEQxODtNQUxBWUFMQU0gTEVUVEVSIEdIQTtMbzswO0w7Ozs7O047Ozs7OworMEQxOTtNQUxBWUFMQU0gTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMEQxQTtNQUxBWUFMQU0gTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDFCO01BTEFZQUxBTSBMRVRURVIgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDFDO01BTEFZQUxBTSBMRVRURVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzBEMUQ7TUFMQVlBTEFNIExFVFRFUiBKSEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMUU7TUFMQVlBTEFNIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzBEMUY7TUFMQVlBTEFNIExFVFRFUiBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMjA7TUFMQVlBTEFNIExFVFRFUiBUVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDIxO01BTEFZQUxBTSBMRVRURVIgRERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDIyO01BTEFZQUxBTSBMRVRURVIgRERIQTtMbzswO0w7Ozs7O047Ozs7OworMEQyMztNQUxBWUFMQU0gTEVUVEVSIE5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQyNDtNQUxBWUFMQU0gTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDI1O01BTEFZQUxBTSBMRVRURVIgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDI2O01BTEFZQUxBTSBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzBEMjc7TUFMQVlBTEFNIExFVFRFUiBESEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMjg7TUFMQVlBTEFNIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMEQyQTtNQUxBWUFMQU0gTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDJCO01BTEFZQUxBTSBMRVRURVIgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDJDO01BTEFZQUxBTSBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzBEMkQ7TUFMQVlBTEFNIExFVFRFUiBCSEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMkU7TUFMQVlBTEFNIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMEQyRjtNQUxBWUFMQU0gTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDMwO01BTEFZQUxBTSBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzBEMzE7TUFMQVlBTEFNIExFVFRFUiBSUkE7TG87MDtMOzs7OztOOzs7OzsKKzBEMzI7TUFMQVlBTEFNIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMEQzMztNQUxBWUFMQU0gTEVUVEVSIExMQTtMbzswO0w7Ozs7O047Ozs7OworMEQzNDtNQUxBWUFMQU0gTEVUVEVSIExMTEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMzU7TUFMQVlBTEFNIExFVFRFUiBWQTtMbzswO0w7Ozs7O047Ozs7OworMEQzNjtNQUxBWUFMQU0gTEVUVEVSIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMEQzNztNQUxBWUFMQU0gTEVUVEVSIFNTQTtMbzswO0w7Ozs7O047Ozs7OworMEQzODtNQUxBWUFMQU0gTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDM5O01BTEFZQUxBTSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzBEM0U7TUFMQVlBTEFNIFZPV0VMIFNJR04gQUE7TWM7MDtMOzs7OztOOzs7OzsKKzBEM0Y7TUFMQVlBTEFNIFZPV0VMIFNJR04gSTtNYzswO0w7Ozs7O047Ozs7OworMEQ0MDtNQUxBWUFMQU0gVk9XRUwgU0lHTiBJSTtNYzswO0w7Ozs7O047Ozs7OworMEQ0MTtNQUxBWUFMQU0gVk9XRUwgU0lHTiBVO01uOzk1O0w7Ozs7O047Ozs7OworMEQ0MjtNQUxBWUFMQU0gVk9XRUwgU0lHTiBVVTtNbjs5NjtMOzs7OztOOzs7OzsKKzBENDM7TUFMQVlBTEFNIFZPV0VMIFNJR04gVk9DQUxJQyBSO01uOzk3O0w7Ozs7O047Ozs7OworMEQ0NjtNQUxBWUFMQU0gVk9XRUwgU0lHTiBFO01jOzA7TDs7Ozs7Tjs7Ozs7CiswRDQ3O01BTEFZQUxBTSBWT1dFTCBTSUdOIEVFO01jOzA7TDs7Ozs7Tjs7Ozs7CiswRDQ4O01BTEFZQUxBTSBWT1dFTCBTSUdOIEFJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswRDRBO01BTEFZQUxBTSBWT1dFTCBTSUdOIE87TWM7MDtMOzBENDYgMEQzRTs7OztOOzs7OzsKKzBENEI7TUFMQVlBTEFNIFZPV0VMIFNJR04gT087TWM7MDtMOzBENDcgMEQzRTs7OztOOzs7OzsKKzBENEM7TUFMQVlBTEFNIFZPV0VMIFNJR04gQVU7TWM7MDtMOzBENDYgMEQ1Nzs7OztOOzs7OzsKKzBENEQ7TUFMQVlBTEFNIFNJR04gVklSQU1BO01uOzk7TDs7Ozs7Tjs7Ozs7CiswRDU3O01BTEFZQUxBTSBBVSBMRU5HVEggTUFSSztNYzswO0w7Ozs7O047Ozs7OworMEQ2MDtNQUxBWUFMQU0gTEVUVEVSIFZPQ0FMSUMgUlI7TG87MDtMOzs7OztOOzs7OzsKKzBENjE7TUFMQVlBTEFNIExFVFRFUiBWT0NBTElDIExMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDY2O01BTEFZQUxBTSBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CiswRDY3O01BTEFZQUxBTSBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzBENjg7TUFMQVlBTEFNIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMEQ2OTtNQUxBWUFMQU0gRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzBENkE7TUFMQVlBTEFNIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzBENkI7TUFMQVlBTEFNIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzBENkM7TUFMQVlBTEFNIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMEQ2RDtNQUxBWUFMQU0gRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzBENkU7TUFMQVlBTEFNIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswRDZGO01BTEFZQUxBTSBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CiswRTAxO1RIQUkgQ0hBUkFDVEVSIEtPIEtBSTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgS08gS0FJOzs7OworMEUwMjtUSEFJIENIQVJBQ1RFUiBLSE8gS0hBSTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgS0hPIEtIQUk7Ozs7CiswRTAzO1RIQUkgQ0hBUkFDVEVSIEtITyBLSFVBVDtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgS0hPIEtIVUFUOzs7OworMEUwNDtUSEFJIENIQVJBQ1RFUiBLSE8gS0hXQUk7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIEtITyBLSFdBSTs7OzsKKzBFMDU7VEhBSSBDSEFSQUNURVIgS0hPIEtIT047TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIEtITyBLSE9OOzs7OworMEUwNjtUSEFJIENIQVJBQ1RFUiBLSE8gUkFLSEFORztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgS0hPIFJBS0hBTkc7Ozs7CiswRTA3O1RIQUkgQ0hBUkFDVEVSIE5HTyBOR1U7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIE5HTyBOR1U7Ozs7CiswRTA4O1RIQUkgQ0hBUkFDVEVSIENITyBDSEFOO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBDSE8gQ0hBTjs7OzsKKzBFMDk7VEhBSSBDSEFSQUNURVIgQ0hPIENISU5HO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBDSE8gQ0hJTkc7Ozs7CiswRTBBO1RIQUkgQ0hBUkFDVEVSIENITyBDSEFORztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgQ0hPIENIQU5HOzs7OworMEUwQjtUSEFJIENIQVJBQ1RFUiBTTyBTTztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgU08gU087Ozs7CiswRTBDO1RIQUkgQ0hBUkFDVEVSIENITyBDSE9FO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBDSE8gQ0hPRTs7OzsKKzBFMEQ7VEhBSSBDSEFSQUNURVIgWU8gWUlORztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgWU8gWUlORzs7OzsKKzBFMEU7VEhBSSBDSEFSQUNURVIgRE8gQ0hBREE7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIERPIENIQURBOzs7OworMEUwRjtUSEFJIENIQVJBQ1RFUiBUTyBQQVRBSztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgVE8gUEFUQUs7Ozs7CiswRTEwO1RIQUkgQ0hBUkFDVEVSIFRITyBUSEFOO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBUSE8gVEhBTjs7OzsKKzBFMTE7VEhBSSBDSEFSQUNURVIgVEhPIE5BTkdNT05USE87TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFRITyBOQU5HTU9OVEhPOzs7OworMEUxMjtUSEFJIENIQVJBQ1RFUiBUSE8gUEhVVEhBTztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgVEhPIFBIVVRIQU87Ozs7CiswRTEzO1RIQUkgQ0hBUkFDVEVSIE5PIE5FTjtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgTk8gTkVOOzs7OworMEUxNDtUSEFJIENIQVJBQ1RFUiBETyBERUs7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIERPIERFSzs7OzsKKzBFMTU7VEhBSSBDSEFSQUNURVIgVE8gVEFPO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBUTyBUQU87Ozs7CiswRTE2O1RIQUkgQ0hBUkFDVEVSIFRITyBUSFVORztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgVEhPIFRIVU5HOzs7OworMEUxNztUSEFJIENIQVJBQ1RFUiBUSE8gVEhBSEFOO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBUSE8gVEhBSEFOOzs7OworMEUxODtUSEFJIENIQVJBQ1RFUiBUSE8gVEhPTkc7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFRITyBUSE9ORzs7OzsKKzBFMTk7VEhBSSBDSEFSQUNURVIgTk8gTlU7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIE5PIE5VOzs7OworMEUxQTtUSEFJIENIQVJBQ1RFUiBCTyBCQUlNQUk7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIEJPIEJBSU1BSTs7OzsKKzBFMUI7VEhBSSBDSEFSQUNURVIgUE8gUExBO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBQTyBQTEE7Ozs7CiswRTFDO1RIQUkgQ0hBUkFDVEVSIFBITyBQSFVORztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgUEhPIFBIVU5HOzs7OworMEUxRDtUSEFJIENIQVJBQ1RFUiBGTyBGQTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgRk8gRkE7Ozs7CiswRTFFO1RIQUkgQ0hBUkFDVEVSIFBITyBQSEFOO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBQSE8gUEhBTjs7OzsKKzBFMUY7VEhBSSBDSEFSQUNURVIgRk8gRkFOO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBGTyBGQU47Ozs7CiswRTIwO1RIQUkgQ0hBUkFDVEVSIFBITyBTQU1QSEFPO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBQSE8gU0FNUEhBTzs7OzsKKzBFMjE7VEhBSSBDSEFSQUNURVIgTU8gTUE7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIE1PIE1BOzs7OworMEUyMjtUSEFJIENIQVJBQ1RFUiBZTyBZQUs7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFlPIFlBSzs7OzsKKzBFMjM7VEhBSSBDSEFSQUNURVIgUk8gUlVBO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBSTyBSVUE7Ozs7CiswRTI0O1RIQUkgQ0hBUkFDVEVSIFJVO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBSVTs7OzsKKzBFMjU7VEhBSSBDSEFSQUNURVIgTE8gTElORztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgTE8gTElORzs7OzsKKzBFMjY7VEhBSSBDSEFSQUNURVIgTFU7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIExVOzs7OworMEUyNztUSEFJIENIQVJBQ1RFUiBXTyBXQUVOO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBXTyBXQUVOOzs7OworMEUyODtUSEFJIENIQVJBQ1RFUiBTTyBTQUxBO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBTTyBTQUxBOzs7OworMEUyOTtUSEFJIENIQVJBQ1RFUiBTTyBSVVNJO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBTTyBSVVNJOzs7OworMEUyQTtUSEFJIENIQVJBQ1RFUiBTTyBTVUE7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFNPIFNVQTs7OzsKKzBFMkI7VEhBSSBDSEFSQUNURVIgSE8gSElQO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBITyBISVA7Ozs7CiswRTJDO1RIQUkgQ0hBUkFDVEVSIExPIENIVUxBO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBMTyBDSFVMQTs7OzsKKzBFMkQ7VEhBSSBDSEFSQUNURVIgTyBBTkc7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIE8gQU5HOzs7OworMEUyRTtUSEFJIENIQVJBQ1RFUiBITyBOT0tIVUs7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIEhPIE5PSyBIVUs7Ozs7CiswRTJGO1RIQUkgQ0hBUkFDVEVSIFBBSVlBTk5PSTtQbzswO0w7Ozs7O047VEhBSSBQQUkgWUFOIE5PSTs7OzsKKzBFMzA7VEhBSSBDSEFSQUNURVIgU0FSQSBBO0xvOzA7TDs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBBOzs7OworMEUzMTtUSEFJIENIQVJBQ1RFUiBNQUkgSEFOLUFLQVQ7TW47OTg7TDs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gTUFJIEhBTi1BS0FUOzs7OworMEUzMjtUSEFJIENIQVJBQ1RFUiBTQVJBIEFBO0xvOzA7TDs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBBQTs7OzsKKzBFMzM7VEhBSSBDSEFSQUNURVIgU0FSQSBBTTtMbzswO0w7MEU0RCAwRTMyOzs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgQU07Ozs7CiswRTM0O1RIQUkgQ0hBUkFDVEVSIFNBUkEgSTtNbjs5OTtMOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIEk7Ozs7CiswRTM1O1RIQUkgQ0hBUkFDVEVSIFNBUkEgSUk7TW47MTAwO0w7Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgSUk7Ozs7CiswRTM2O1RIQUkgQ0hBUkFDVEVSIFNBUkEgVUU7TW47MTAxO0w7Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgVUU7Ozs7CiswRTM3O1RIQUkgQ0hBUkFDVEVSIFNBUkEgVUVFO01uOzEwMjtMOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIFVFRTs7OzsKKzBFMzg7VEhBSSBDSEFSQUNURVIgU0FSQSBVO01uOzEwMztMOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIFU7Ozs7CiswRTM5O1RIQUkgQ0hBUkFDVEVSIFNBUkEgVVU7TW47MTA0O0w7Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgVVU7Ozs7CiswRTNBO1RIQUkgQ0hBUkFDVEVSIFBISU5USFU7TW47MTA1O0w7Ozs7O047VEhBSSBWT1dFTCBTSUdOIFBISU5USFU7Ozs7CiswRTNGO1RIQUkgQ1VSUkVOQ1kgU1lNQk9MIEJBSFQ7U2M7MDtMOzs7OztOO1RIQUkgQkFIVCBTSUdOOzs7OworMEU0MDtUSEFJIENIQVJBQ1RFUiBTQVJBIEU7TG87MDtMOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIEU7Ozs7CiswRTQxO1RIQUkgQ0hBUkFDVEVSIFNBUkEgQUU7TG87MDtMOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIEFFOzs7OworMEU0MjtUSEFJIENIQVJBQ1RFUiBTQVJBIE87TG87MDtMOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIE87Ozs7CiswRTQzO1RIQUkgQ0hBUkFDVEVSIFNBUkEgQUkgTUFJTVVBTjtMbzswO0w7Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgTUFJIE1VQU47Ozs7CiswRTQ0O1RIQUkgQ0hBUkFDVEVSIFNBUkEgQUkgTUFJTUFMQUk7TG87MDtMOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIE1BSSBNQUxBSTs7OzsKKzBFNDU7VEhBSSBDSEFSQUNURVIgTEFLS0hBTkdZQU87TG87MDtMOzs7OztOO1RIQUkgTEFLIEtIQU5HIFlBTzs7OzsKKzBFNDY7VEhBSSBDSEFSQUNURVIgTUFJWUFNT0s7TG07MDtMOzs7OztOO1RIQUkgTUFJIFlBTU9LOzs7OworMEU0NztUSEFJIENIQVJBQ1RFUiBNQUlUQUlLSFU7TW47MTA2O0w7Ozs7O047VEhBSSBWT1dFTCBTSUdOIE1BSSBUQUkgS0hVOzs7OworMEU0ODtUSEFJIENIQVJBQ1RFUiBNQUkgRUs7TW47MTA3O0w7Ozs7O047VEhBSSBUT05FIE1BSSBFSzs7OzsKKzBFNDk7VEhBSSBDSEFSQUNURVIgTUFJIFRITztNbjsxMDg7TDs7Ozs7TjtUSEFJIFRPTkUgTUFJIFRITzs7OzsKKzBFNEE7VEhBSSBDSEFSQUNURVIgTUFJIFRSSTtNbjsxMDk7TDs7Ozs7TjtUSEFJIFRPTkUgTUFJIFRSSTs7OzsKKzBFNEI7VEhBSSBDSEFSQUNURVIgTUFJIENIQVRUQVdBO01uOzExMDtMOzs7OztOO1RIQUkgVE9ORSBNQUkgQ0hBVFRBV0E7Ozs7CiswRTRDO1RIQUkgQ0hBUkFDVEVSIFRIQU5USEFLSEFUO01uOzExMTtMOzs7OztOO1RIQUkgVEhBTlRIQUtIQVQ7Ozs7CiswRTREO1RIQUkgQ0hBUkFDVEVSIE5JS0hBSElUO01uOzExMjtMOzs7OztOO1RIQUkgTklLS0hBSElUOzs7OworMEU0RTtUSEFJIENIQVJBQ1RFUiBZQU1BS0tBTjtNbjsxMjg7TDs7Ozs7TjtUSEFJIFlBTUFLS0FOOzs7OworMEU0RjtUSEFJIENIQVJBQ1RFUiBGT05HTUFOO1NvOzA7TDs7Ozs7TjtUSEFJIEZPTkdNQU47Ozs7CiswRTUwO1RIQUkgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMEU1MTtUSEFJIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMEU1MjtUSEFJIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMEU1MztUSEFJIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswRTU0O1RIQUkgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMEU1NTtUSEFJIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzBFNTY7VEhBSSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzBFNTc7VEhBSSBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMEU1ODtUSEFJIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswRTU5O1RIQUkgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMEU1QTtUSEFJIENIQVJBQ1RFUiBBTkdLSEFOS0hVO1BvOzA7TDs7Ozs7TjtUSEFJIEFOR0tIQU5LSFU7Ozs7CiswRTVCO1RIQUkgQ0hBUkFDVEVSIEtIT01VVDtQbzswO0w7Ozs7O047VEhBSSBLSE9NVVQ7Ozs7CiswRTgxO0xBTyBMRVRURVIgS087TG87MDtMOzs7OztOOzs7OzsKKzBFODI7TEFPIExFVFRFUiBLSE8gU1VORztMbzswO0w7Ozs7O047Ozs7OworMEU4NDtMQU8gTEVUVEVSIEtITyBUQU07TG87MDtMOzs7OztOOzs7OzsKKzBFODc7TEFPIExFVFRFUiBOR087TG87MDtMOzs7OztOOzs7OzsKKzBFODg7TEFPIExFVFRFUiBDTztMbzswO0w7Ozs7O047Ozs7OworMEU4QTtMQU8gTEVUVEVSIFNPIFRBTTtMbzswO0w7Ozs7O047Ozs7OworMEU4RDtMQU8gTEVUVEVSIE5ZTztMbzswO0w7Ozs7O047Ozs7OworMEU5NDtMQU8gTEVUVEVSIERPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRTk1O0xBTyBMRVRURVIgVE87TG87MDtMOzs7OztOOzs7OzsKKzBFOTY7TEFPIExFVFRFUiBUSE8gU1VORztMbzswO0w7Ozs7O047Ozs7OworMEU5NztMQU8gTEVUVEVSIFRITyBUQU07TG87MDtMOzs7OztOOzs7OzsKKzBFOTk7TEFPIExFVFRFUiBOTztMbzswO0w7Ozs7O047Ozs7OworMEU5QTtMQU8gTEVUVEVSIEJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRTlCO0xBTyBMRVRURVIgUE87TG87MDtMOzs7OztOOzs7OzsKKzBFOUM7TEFPIExFVFRFUiBQSE8gU1VORztMbzswO0w7Ozs7O047Ozs7OworMEU5RDtMQU8gTEVUVEVSIEZPIFRBTTtMbzswO0w7Ozs7O047Ozs7OworMEU5RTtMQU8gTEVUVEVSIFBITyBUQU07TG87MDtMOzs7OztOOzs7OzsKKzBFOUY7TEFPIExFVFRFUiBGTyBTVU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUExO0xBTyBMRVRURVIgTU87TG87MDtMOzs7OztOOzs7OzsKKzBFQTI7TEFPIExFVFRFUiBZTztMbzswO0w7Ozs7O047Ozs7OworMEVBMztMQU8gTEVUVEVSIExPIExJTkc7TG87MDtMOzs7OztOOzs7OzsKKzBFQTU7TEFPIExFVFRFUiBMTyBMT09UO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUE3O0xBTyBMRVRURVIgV087TG87MDtMOzs7OztOOzs7OzsKKzBFQUE7TEFPIExFVFRFUiBTTyBTVU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUFCO0xBTyBMRVRURVIgSE8gU1VORztMbzswO0w7Ozs7O047Ozs7OworMEVBRDtMQU8gTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzBFQUU7TEFPIExFVFRFUiBITyBUQU07TG87MDtMOzs7OztOOzs7OzsKKzBFQUY7TEFPIEVMTElQU0lTO1BvOzA7TDs7Ozs7Tjs7Ozs7CiswRUIwO0xBTyBWT1dFTCBTSUdOIEE7TG87MDtMOzs7OztOOzs7OzsKKzBFQjE7TEFPIFZPV0VMIFNJR04gTUFJIEtBTjtNbjsxMTM7TDs7Ozs7Tjs7Ozs7CiswRUIyO0xBTyBWT1dFTCBTSUdOIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUIzO0xBTyBWT1dFTCBTSUdOIEFNO0xvOzA7TDswRUNEIDBFQjI7Ozs7Tjs7Ozs7CiswRUI0O0xBTyBWT1dFTCBTSUdOIEk7TW47MTE0O0w7Ozs7O047Ozs7OworMEVCNTtMQU8gVk9XRUwgU0lHTiBJSTtNbjsxMTU7TDs7Ozs7Tjs7Ozs7CiswRUI2O0xBTyBWT1dFTCBTSUdOIFk7TW47MTE2O0w7Ozs7O047Ozs7OworMEVCNztMQU8gVk9XRUwgU0lHTiBZWTtNbjsxMTc7TDs7Ozs7Tjs7Ozs7CiswRUI4O0xBTyBWT1dFTCBTSUdOIFU7TW47MTE4O0w7Ozs7O047Ozs7OworMEVCOTtMQU8gVk9XRUwgU0lHTiBVVTtNbjsxMTk7TDs7Ozs7Tjs7Ozs7CiswRUJCO0xBTyBWT1dFTCBTSUdOIE1BSSBLT047TW47MTIwO0w7Ozs7O047Ozs7OworMEVCQztMQU8gU0VNSVZPV0VMIFNJR04gTE87TW47MTIxO0w7Ozs7O047Ozs7OworMEVCRDtMQU8gU0VNSVZPV0VMIFNJR04gTllPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUMwO0xBTyBWT1dFTCBTSUdOIEU7TG87MDtMOzs7OztOOzs7OzsKKzBFQzE7TEFPIFZPV0VMIFNJR04gRUk7TG87MDtMOzs7OztOOzs7OzsKKzBFQzI7TEFPIFZPV0VMIFNJR04gTztMbzswO0w7Ozs7O047Ozs7OworMEVDMztMQU8gVk9XRUwgU0lHTiBBWTtMbzswO0w7Ozs7O047Ozs7OworMEVDNDtMQU8gVk9XRUwgU0lHTiBBSTtMbzswO0w7Ozs7O047Ozs7OworMEVDNjtMQU8gS08gTEE7TG07MDtMOzs7OztOOzs7OzsKKzBFQzg7TEFPIFRPTkUgTUFJIEVLO01uOzEyMjtMOzs7OztOOzs7OzsKKzBFQzk7TEFPIFRPTkUgTUFJIFRITztNbjsxMjM7TDs7Ozs7Tjs7Ozs7CiswRUNBO0xBTyBUT05FIE1BSSBUSTtNbjsxMjQ7TDs7Ozs7Tjs7Ozs7CiswRUNCO0xBTyBUT05FIE1BSSBDQVRBV0E7TW47MTI1O0w7Ozs7O047Ozs7OworMEVDQztMQU8gQ0FOQ0VMTEFUSU9OIE1BUks7TW47MTI2O0w7Ozs7O047Ozs7OworMEVDRDtMQU8gTklHR0FISVRBO01uOzEyNztMOzs7OztOOzs7OzsKKzBFRDA7TEFPIERJR0lUIFpFUk87TmQ7MDtMOzswOzA7MDtOOzs7OzsKKzBFRDE7TEFPIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMEVEMjtMQU8gRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswRUQzO0xBTyBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMEVENDtMQU8gRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMEVENTtMQU8gRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMEVENjtMQU8gRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CiswRUQ3O0xBTyBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMEVEODtMQU8gRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzBFRDk7TEFPIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzBFREM7TEFPIEhPIE5PO0xvOzA7TDs8Y29tcGF0PiAwRUFCIDBFOTk7Ozs7Tjs7Ozs7CiswRUREO0xBTyBITyBNTztMbzswO0w7PGNvbXBhdD4gMEVBQiAwRUExOzs7O047Ozs7OworMEYwMDtUSUJFVEFOIFNZTExBQkxFIE9NO1NvOzA7TDs7Ozs7Tjs7Ozs7CiswRjAxO1RJQkVUQU4gTUFSSyBHVEVSIFlJRyBNR08gVFJVTkNBVEVEIEE7U287MDtMOzs7OztOOzt0ZXIgeWlrIGdvIGEgdGh1bmc7OzsKKzBGMDI7VElCRVRBTiBNQVJLIEdURVIgWUlHIE1HTyAtVU0gUk5BTSBCQ0FEIE1BO1NvOzA7TDs7Ozs7Tjs7dGVyIHlpayBnbyB3dW0gbmFtIGNoZXkgbWE7OzsKKzBGMDM7VElCRVRBTiBNQVJLIEdURVIgWUlHIE1HTyAtVU0gR1RFUiBUU0hFRyBNQTtTbzswO0w7Ozs7O047O3RlciB5aWsgZ28gd3VtIHRlciB0c2VrIG1hOzs7CiswRjA0O1RJQkVUQU4gTUFSSyBJTklUSUFMIFlJRyBNR08gTURVTiBNQTtQbzswO0w7Ozs7O047O3lpayBnbyBkdW4gbWE7OzsKKzBGMDU7VElCRVRBTiBNQVJLIENMT1NJTkcgWUlHIE1HTyBTR0FCIE1BO1BvOzA7TDs7Ozs7Tjs7eWlrIGdvIGthYiBtYTs7OworMEYwNjtUSUJFVEFOIE1BUksgQ0FSRVQgWUlHIE1HTyBQSFVSIFNIQUQgTUE7UG87MDtMOzs7OztOOzt5aWsgZ28gcHVyIHNoZXkgbWE7OzsKKzBGMDc7VElCRVRBTiBNQVJLIFlJRyBNR08gVFNIRUcgU0hBRCBNQTtQbzswO0w7Ozs7O047O3lpayBnbyB0c2VrIHNoZXkgbWE7OzsKKzBGMDg7VElCRVRBTiBNQVJLIFNCUlVMIFNIQUQ7UG87MDtMOzs7OztOOztkcnVsIHNoZXk7OzsKKzBGMDk7VElCRVRBTiBNQVJLIEJTS1VSIFlJRyBNR087UG87MDtMOzs7OztOOztrdXIgeWlrIGdvOzs7CiswRjBBO1RJQkVUQU4gTUFSSyBCS0EtIFNIT0cgWUlHIE1HTztQbzswO0w7Ozs7O047O2thIHNobyB5aWsgZ287OzsKKzBGMEI7VElCRVRBTiBNQVJLIElOVEVSU1lMTEFCSUMgVFNIRUc7UG87MDtMOzs7OztOOzt0c2VrOzs7CiswRjBDO1RJQkVUQU4gTUFSSyBERUxJTUlURVIgVFNIRUcgQlNUQVI7UG87MDtMOzs7OztOOzt0c2VrIHRhcjs7OworMEYwRDtUSUJFVEFOIE1BUksgU0hBRDtQbzswO0w7Ozs7O047O3NoZXk7OzsKKzBGMEU7VElCRVRBTiBNQVJLIE5ZSVMgU0hBRDtQbzswO0w7Ozs7O047O255aSBzaGV5Ozs7CiswRjBGO1RJQkVUQU4gTUFSSyBUU0hFRyBTSEFEO1BvOzA7TDs7Ozs7Tjs7dHNlayBzaGV5Ozs7CiswRjEwO1RJQkVUQU4gTUFSSyBOWUlTIFRTSEVHIFNIQUQ7UG87MDtMOzs7OztOOztueWkgdHNlayBzaGV5Ozs7CiswRjExO1RJQkVUQU4gTUFSSyBSSU4gQ0hFTiBTUFVOR1MgU0hBRDtQbzswO0w7Ozs7O047O3JpbmNoZW4gcHVuZyBzaGV5Ozs7CiswRjEyO1RJQkVUQU4gTUFSSyBSR1lBIEdSQU0gU0hBRDtQbzswO0w7Ozs7O047O2d5YSB0cmFtIHNoZXk7OzsKKzBGMTM7VElCRVRBTiBNQVJLIENBUkVUIC1EWlVEIFJUQUdTIE1FIExPTkcgQ0FOO1NvOzA7TDs7Ozs7Tjs7ZHp1IHRhIG1lIGxvbmcgY2hlbjs7OworMEYxNDtUSUJFVEFOIE1BUksgR1RFUiBUU0hFRztTbzswO0w7Ozs7O047O3RlciB0c2VrOzs7CiswRjE1O1RJQkVUQU4gTE9HT1RZUEUgU0lHTiBDSEFEIFJUQUdTO1NvOzA7TDs7Ozs7Tjs7Y2hlIHRhOzs7CiswRjE2O1RJQkVUQU4gTE9HT1RZUEUgU0lHTiBMSEFHIFJUQUdTO1NvOzA7TDs7Ozs7Tjs7aGxhayB0YTs7OworMEYxNztUSUJFVEFOIEFTVFJPTE9HSUNBTCBTSUdOIFNHUkEgR0NBTiAtQ0hBUiBSVEFHUztTbzswO0w7Ozs7O047O3RyYWNoZW4gY2hhciB0YTs7OworMEYxODtUSUJFVEFOIEFTVFJPTE9HSUNBTCBTSUdOIC1LSFlVRCBQQTtNbjsyMjA7TDs7Ozs7Tjs7a3l1IHBhOzs7CiswRjE5O1RJQkVUQU4gQVNUUk9MT0dJQ0FMIFNJR04gU0RPTkcgVFNIVUdTO01uOzIyMDtMOzs7OztOOztkb25nIHRzdTs7OworMEYxQTtUSUJFVEFOIFNJR04gUkRFTCBES0FSIEdDSUc7U287MDtMOzs7OztOOztkZWthIGNoaWc7OzsKKzBGMUI7VElCRVRBTiBTSUdOIFJERUwgREtBUiBHTllJUztTbzswO0w7Ozs7O047O2Rla2EgbnlpOzs7CiswRjFDO1RJQkVUQU4gU0lHTiBSREVMIERLQVIgR1NVTTtTbzswO0w7Ozs7O047O2Rla2Egc3VtOzs7CiswRjFEO1RJQkVUQU4gU0lHTiBSREVMIE5BRyBHQ0lHO1NvOzA7TDs7Ozs7Tjs7ZGVuYSBjaGlnOzs7CiswRjFFO1RJQkVUQU4gU0lHTiBSREVMIE5BRyBHTllJUztTbzswO0w7Ozs7O047O2RlbmEgbnlpOzs7CiswRjFGO1RJQkVUQU4gU0lHTiBSREVMIERLQVIgUkRFTCBOQUc7U287MDtMOzs7OztOOztkZWthIGRlbmE7OzsKKzBGMjA7VElCRVRBTiBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CiswRjIxO1RJQkVUQU4gRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CiswRjIyO1RJQkVUQU4gRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswRjIzO1RJQkVUQU4gRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzBGMjQ7VElCRVRBTiBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CiswRjI1O1RJQkVUQU4gRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMEYyNjtUSUJFVEFOIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMEYyNztUSUJFVEFOIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CiswRjI4O1RJQkVUQU4gRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzBGMjk7VElCRVRBTiBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CiswRjJBO1RJQkVUQU4gRElHSVQgSEFMRiBPTkU7Tm87MDtMOzs7OztOOzs7OzsKKzBGMkI7VElCRVRBTiBESUdJVCBIQUxGIFRXTztObzswO0w7Ozs7O047Ozs7OworMEYyQztUSUJFVEFOIERJR0lUIEhBTEYgVEhSRUU7Tm87MDtMOzs7OztOOzs7OzsKKzBGMkQ7VElCRVRBTiBESUdJVCBIQUxGIEZPVVI7Tm87MDtMOzs7OztOOzs7OzsKKzBGMkU7VElCRVRBTiBESUdJVCBIQUxGIEZJVkU7Tm87MDtMOzs7OztOOzs7OzsKKzBGMkY7VElCRVRBTiBESUdJVCBIQUxGIFNJWDtObzswO0w7Ozs7O047Ozs7OworMEYzMDtUSUJFVEFOIERJR0lUIEhBTEYgU0VWRU47Tm87MDtMOzs7OztOOzs7OzsKKzBGMzE7VElCRVRBTiBESUdJVCBIQUxGIEVJR0hUO05vOzA7TDs7Ozs7Tjs7Ozs7CiswRjMyO1RJQkVUQU4gRElHSVQgSEFMRiBOSU5FO05vOzA7TDs7Ozs7Tjs7Ozs7CiswRjMzO1RJQkVUQU4gRElHSVQgSEFMRiBaRVJPO05vOzA7TDs7Ozs7Tjs7Ozs7CiswRjM0O1RJQkVUQU4gTUFSSyBCU0RVUyBSVEFHUztTbzswO0w7Ozs7O047O2R1IHRhOzs7CiswRjM1O1RJQkVUQU4gTUFSSyBOR0FTIEJaVU5HIE5ZSSBaTEE7TW47MjMwO0w7Ozs7O047O25nZSB6dW5nIG55aSBkYTs7OworMEYzNjtUSUJFVEFOIE1BUksgQ0FSRVQgLURaVUQgUlRBR1MgQlpISSBNSUcgQ0FOO1NvOzA7TDs7Ozs7Tjs7ZHp1IHRhIHNoaSBtaWcgY2hlbjs7OworMEYzNztUSUJFVEFOIE1BUksgTkdBUyBCWlVORyBTR09SIFJUQUdTO01uOzIzMDtMOzs7OztOOztuZ2UgenVuZyBnb3IgdGE7OzsKKzBGMzg7VElCRVRBTiBNQVJLIENIRSBNR087U287MDtMOzs7OztOOztjaGUgZ287OzsKKzBGMzk7VElCRVRBTiBNQVJLIFRTQSAtUEhSVTtNbjsyMTY7TDs7Ozs7Tjs7dHNhIHRydTs7OworMEYzQTtUSUJFVEFOIE1BUksgR1VHIFJUQUdTIEdZT047UHM7MDtMOzs7OztOOztndWcgdGEgeXVuOzs7CiswRjNCO1RJQkVUQU4gTUFSSyBHVUcgUlRBR1MgR1lBUztQZTswO0w7Ozs7O047O2d1ZyB0YSB5ZTs7OworMEYzQztUSUJFVEFOIE1BUksgQU5HIEtIQU5HIEdZT047UHM7MDtMOzs7OztOOzthbmcga2FuZyB5dW47OzsKKzBGM0Q7VElCRVRBTiBNQVJLIEFORyBLSEFORyBHWUFTO1BlOzA7TDs7Ozs7Tjs7YW5nIGthbmcgeWU7OzsKKzBGM0U7VElCRVRBTiBTSUdOIFlBUiBUU0hFUztNYzsyMjA7TDs7Ozs7Tjs7eWFyIHRzZTs7OworMEYzRjtUSUJFVEFOIFNJR04gTUFSIFRTSEVTO01jOzIyMDtMOzs7OztOOzttYXIgdHNlOzs7CiswRjQwO1RJQkVUQU4gTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjQxO1RJQkVUQU4gTEVUVEVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMEY0MjtUSUJFVEFOIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMEY0MztUSUJFVEFOIExFVFRFUiBHSEE7TG87MDtMOzBGNDIgMEZCNzs7OztOOzs7OzsKKzBGNDQ7VElCRVRBTiBMRVRURVIgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjQ1O1RJQkVUQU4gTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjQ2O1RJQkVUQU4gTEVUVEVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMEY0NztUSUJFVEFOIExFVFRFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworMEY0OTtUSUJFVEFOIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzBGNEE7VElCRVRBTiBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjRCO1RJQkVUQU4gTEVUVEVSIFRUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNEM7VElCRVRBTiBMRVRURVIgRERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjREO1RJQkVUQU4gTEVUVEVSIERESEE7TG87MDtMOzBGNEMgMEZCNzs7OztOOzs7OzsKKzBGNEU7VElCRVRBTiBMRVRURVIgTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjRGO1RJQkVUQU4gTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjUwO1RJQkVUQU4gTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEY1MTtUSUJFVEFOIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMEY1MjtUSUJFVEFOIExFVFRFUiBESEE7TG87MDtMOzBGNTEgMEZCNzs7OztOOzs7OzsKKzBGNTM7VElCRVRBTiBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzBGNTQ7VElCRVRBTiBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNTU7VElCRVRBTiBMRVRURVIgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjU2O1RJQkVUQU4gTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjU3O1RJQkVUQU4gTEVUVEVSIEJIQTtMbzswO0w7MEY1NiAwRkI3Ozs7O047Ozs7OworMEY1ODtUSUJFVEFOIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMEY1OTtUSUJFVEFOIExFVFRFUiBUU0E7TG87MDtMOzs7OztOOzs7OzsKKzBGNUE7VElCRVRBTiBMRVRURVIgVFNIQTtMbzswO0w7Ozs7O047Ozs7OworMEY1QjtUSUJFVEFOIExFVFRFUiBEWkE7TG87MDtMOzs7OztOOzs7OzsKKzBGNUM7VElCRVRBTiBMRVRURVIgRFpIQTtMbzswO0w7MEY1QiAwRkI3Ozs7O047Ozs7OworMEY1RDtUSUJFVEFOIExFVFRFUiBXQTtMbzswO0w7Ozs7O047Ozs7OworMEY1RTtUSUJFVEFOIExFVFRFUiBaSEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNUY7VElCRVRBTiBMRVRURVIgWkE7TG87MDtMOzs7OztOOzs7OzsKKzBGNjA7VElCRVRBTiBMRVRURVIgLUE7TG87MDtMOzs7OztOOzs7OzsKKzBGNjE7VElCRVRBTiBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzBGNjI7VElCRVRBTiBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzBGNjM7VElCRVRBTiBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNjQ7VElCRVRBTiBMRVRURVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjY1O1RJQkVUQU4gTEVUVEVSIFNTQTtMbzswO0w7Ozs7O047Ozs7OworMEY2NjtUSUJFVEFOIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMEY2NztUSUJFVEFOIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMEY2ODtUSUJFVEFOIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjY5O1RJQkVUQU4gTEVUVEVSIEtTU0E7TG87MDtMOzBGNDAgMEZCNTs7OztOOzs7OzsKKzBGNzE7VElCRVRBTiBWT1dFTCBTSUdOIEFBO01uOzE0NTtMOzs7OztOOzs7OzsKKzBGNzI7VElCRVRBTiBWT1dFTCBTSUdOIEk7TW47MTMwO0w7Ozs7O047Ozs7OworMEY3MztUSUJFVEFOIFZPV0VMIFNJR04gSUk7TW47MTMxO0w7MEY3MiAwRjcxOzs7O047Ozs7OworMEY3NDtUSUJFVEFOIFZPV0VMIFNJR04gVTtNbjsxMzI7TDs7Ozs7Tjs7Ozs7CiswRjc1O1RJQkVUQU4gVk9XRUwgU0lHTiBVVTtNbjsxMzM7TDswRjc0IDBGNzE7Ozs7Tjs7Ozs7CiswRjc2O1RJQkVUQU4gVk9XRUwgU0lHTiBWT0NBTElDIFI7TW47MTM0O0w7MEZCMiAwRjgwOzs7O047Ozs7OworMEY3NztUSUJFVEFOIFZPV0VMIFNJR04gVk9DQUxJQyBSUjtNbjsxMzU7TDswRjc2IDBGNzE7Ozs7Tjs7Ozs7CiswRjc4O1RJQkVUQU4gVk9XRUwgU0lHTiBWT0NBTElDIEw7TW47MTM2O0w7MEZCMyAwRjgwOzs7O047Ozs7OworMEY3OTtUSUJFVEFOIFZPV0VMIFNJR04gVk9DQUxJQyBMTDtNbjsxMzc7TDswRjc4IDBGNzE7Ozs7Tjs7Ozs7CiswRjdBO1RJQkVUQU4gVk9XRUwgU0lHTiBFO01uOzEzODtMOzs7OztOOzs7OzsKKzBGN0I7VElCRVRBTiBWT1dFTCBTSUdOIEVFO01uOzEzOTtMOzs7OztOOzs7OzsKKzBGN0M7VElCRVRBTiBWT1dFTCBTSUdOIE87TW47MTQwO0w7Ozs7O047Ozs7OworMEY3RDtUSUJFVEFOIFZPV0VMIFNJR04gT087TW47MTQxO0w7Ozs7O047Ozs7OworMEY3RTtUSUJFVEFOIFNJR04gUkpFUyBTVSBOR0EgUk87TW47MTQyO0w7Ozs7O047O2plIHN1IG5nYSBybzs7OworMEY3RjtUSUJFVEFOIFNJR04gUk5BTSBCQ0FEO01jOzA7TDs7Ozs7Tjs7bmFtIGNoZXk7OzsKKzBGODA7VElCRVRBTiBWT1dFTCBTSUdOIFJFVkVSU0VEIEk7TW47MTQzO0w7Ozs7O047Ozs7OworMEY4MTtUSUJFVEFOIFZPV0VMIFNJR04gUkVWRVJTRUQgSUk7TW47MTQ0O0w7MEY4MCAwRjcxOzs7O047Ozs7OworMEY4MjtUSUJFVEFOIFNJR04gTllJIFpMQSBOQUEgREE7TW47MjMwO0w7Ozs7O047O255aSBkYSBuYSBkYTs7OworMEY4MztUSUJFVEFOIFNJR04gU05BIExEQU47TW47MjMwO0w7Ozs7O047O25hbiBkZTs7OworMEY4NDtUSUJFVEFOIE1BUksgSEFMQU5UQTtNbjs5O0w7Ozs7O047Ozs7OworMEY4NTtUSUJFVEFOIE1BUksgUEFMVVRBO1BvOzA7TDs7Ozs7Tjs7Ozs7CiswRjg2O1RJQkVUQU4gU0lHTiBMQ0kgUlRBR1M7TW47MjMwO0w7Ozs7O047O2ppIHRhOzs7CiswRjg3O1RJQkVUQU4gU0lHTiBZQU5HIFJUQUdTO01uOzIzMDtMOzs7OztOOzt5YW5nIHRhOzs7CiswRjg4O1RJQkVUQU4gU0lHTiBMQ0UgVFNBIENBTjtNbjsyMzA7TDs7Ozs7Tjs7Y2hlIHRzYSBjaGVuOzs7CiswRjg5O1RJQkVUQU4gU0lHTiBNQ0hVIENBTjtNbjsyMzA7TDs7Ozs7Tjs7Y2h1IGNoZW47OzsKKzBGOEE7VElCRVRBTiBTSUdOIEdSVSBDQU4gUkdZSU5HUztNbjsyMzA7TDs7Ozs7Tjs7dHJ1IGNoZW4gZ2luZzs7OworMEY4QjtUSUJFVEFOIFNJR04gR1JVIE1FRCBSR1lJTkdTO01uOzIzMDtMOzs7OztOOzt0cnUgbWUgZ2luZzs7OworMEY5MDtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgS0E7TW47NjtMOzs7OztOOzs7OzsKKzBGOTE7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEtIQTtNbjs2O0w7Ozs7O047Ozs7OworMEY5MjtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgR0E7TW47NjtMOzs7OztOOzs7OzsKKzBGOTM7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEdIQTtNbjs2O0w7MEY5MiAwRkI3Ozs7O047Ozs7OworMEY5NDtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgTkdBO01uOzY7TDs7Ozs7Tjs7Ozs7CiswRjk1O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBDQTtNbjs2O0w7Ozs7O047Ozs7OworMEY5NztUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgSkE7TW47NjtMOzs7OztOOzs7OzsKKzBGOTk7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIE5ZQTtNbjs2O0w7Ozs7O047Ozs7OworMEY5QTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgVFRBO01uOzY7TDs7Ozs7Tjs7Ozs7CiswRjlCO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBUVEhBO01uOzY7TDs7Ozs7Tjs7Ozs7CiswRjlDO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBEREE7TW47NjtMOzs7OztOOzs7OzsKKzBGOUQ7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIERESEE7TW47NjtMOzBGOUMgMEZCNzs7OztOOzs7OzsKKzBGOUU7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIE5OQTtNbjs2O0w7Ozs7O047Ozs7OworMEY5RjtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgVEE7TW47NjtMOzs7OztOOzs7OzsKKzBGQTA7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFRIQTtNbjs2O0w7Ozs7O047Ozs7OworMEZBMTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgREE7TW47NjtMOzs7OztOOzs7OzsKKzBGQTI7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIERIQTtNbjs2O0w7MEZBMSAwRkI3Ozs7O047Ozs7OworMEZBMztUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgTkE7TW47NjtMOzs7OztOOzs7OzsKKzBGQTQ7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFBBO01uOzY7TDs7Ozs7Tjs7Ozs7CiswRkE1O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBQSEE7TW47NjtMOzs7OztOOzs7OzsKKzBGQTY7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEJBO01uOzY7TDs7Ozs7Tjs7Ozs7CiswRkE3O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBCSEE7TW47NjtMOzBGQTYgMEZCNzs7OztOOzs7OzsKKzBGQTg7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIE1BO01uOzY7TDs7Ozs7Tjs7Ozs7CiswRkE5O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBUU0E7TW47NjtMOzs7OztOOzs7OzsKKzBGQUE7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFRTSEE7TW47NjtMOzs7OztOOzs7OzsKKzBGQUI7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIERaQTtNbjs2O0w7Ozs7O047Ozs7OworMEZBQztUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgRFpIQTtNbjs2O0w7MEZBQiAwRkI3Ozs7O047Ozs7OworMEZBRDtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgV0E7TW47NjtMOzs7OztOOzs7OzsKKzBGQjE7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFlBO01uOzY7TDs7Ozs7Tjs7Ozs7CiswRkIyO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBSQTtNbjs2O0w7Ozs7O047Ozs7OworMEZCMztUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgTEE7TW47NjtMOzs7OztOOzs7OzsKKzBGQjQ7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFNIQTtNbjs2O0w7Ozs7O047Ozs7OworMEZCNTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgU1NBO01uOzY7TDs7Ozs7Tjs7Ozs7CiswRkI2O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBTQTtNbjs2O0w7Ozs7O047Ozs7OworMEZCNztUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgSEE7TW47NjtMOzs7OztOOzs7OzsKKzBGQjk7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEtTU0E7TW47NjtMOzBGOTAgMEZCNTs7OztOOzs7OzsKKzEwQTA7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgQU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MTBEMDsKKzEwQTE7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgQkFOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwRDE7CisxMEEyO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEdBTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMEQyOworMTBBMztHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBET047THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MTBEMzsKKzEwQTQ7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgRU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MTBENDsKKzEwQTU7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgVklOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwRDU7CisxMEE2O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFpFTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMEQ2OworMTBBNztHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBUQU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MTBENzsKKzEwQTg7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgSU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MTBEODsKKzEwQTk7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgS0FOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwRDk7CisxMEFBO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIExBUztMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMERBOworMTBBQjtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBNQU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MTBEQjsKKzEwQUM7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgTkFSO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwREM7CisxMEFEO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIE9OO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwREQ7CisxMEFFO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFBBUjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMERFOworMTBBRjtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBaSEFSO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwREY7CisxMEIwO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFJBRTtMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMEUwOworMTBCMTtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBTQU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MTBFMTsKKzEwQjI7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgVEFSO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwRTI7CisxMEIzO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFVOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwRTM7CisxMEI0O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFBIQVI7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MTBFNDsKKzEwQjU7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgS0hBUjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMEU1OworMTBCNjtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBHSEFOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwRTY7CisxMEI3O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFFBUjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMEU3OworMTBCODtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBTSElOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwRTg7CisxMEI5O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIENISU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MTBFOTsKKzEwQkE7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgQ0FOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwRUE7CisxMEJCO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEpJTDtMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMEVCOworMTBCQztHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBDSUw7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MTBFQzsKKzEwQkQ7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgQ0hBUjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMEVEOworMTBCRTtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBYQU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MTBFRTsKKzEwQkY7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgSkhBTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMEVGOworMTBDMDtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBIQUU7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MTBGMDsKKzEwQzE7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgSEU7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MTBGMTsKKzEwQzI7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgSElFO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwRjI7CisxMEMzO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFdFO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwRjM7CisxMEM0O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEhBUjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMEY0OworMTBDNTtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBIT0U7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MTBGNTsKKzEwRDA7R0VPUkdJQU4gTEVUVEVSIEFOO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgQU47Ozs7CisxMEQxO0dFT1JHSUFOIExFVFRFUiBCQU47TGw7MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBCQU47Ozs7CisxMEQyO0dFT1JHSUFOIExFVFRFUiBHQU47TGw7MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBHQU47Ozs7CisxMEQzO0dFT1JHSUFOIExFVFRFUiBET047TGw7MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBET047Ozs7CisxMEQ0O0dFT1JHSUFOIExFVFRFUiBFTjtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEVOOzs7OworMTBENTtHRU9SR0lBTiBMRVRURVIgVklOO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgVklOOzs7OworMTBENjtHRU9SR0lBTiBMRVRURVIgWkVOO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgWkVOOzs7OworMTBENztHRU9SR0lBTiBMRVRURVIgVEFOO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgVEFOOzs7OworMTBEODtHRU9SR0lBTiBMRVRURVIgSU47TGw7MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBJTjs7OzsKKzEwRDk7R0VPUkdJQU4gTEVUVEVSIEtBTjtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEtBTjs7OzsKKzEwREE7R0VPUkdJQU4gTEVUVEVSIExBUztMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIExBUzs7OzsKKzEwREI7R0VPUkdJQU4gTEVUVEVSIE1BTjtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIE1BTjs7OzsKKzEwREM7R0VPUkdJQU4gTEVUVEVSIE5BUjtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIE5BUjs7OzsKKzEwREQ7R0VPUkdJQU4gTEVUVEVSIE9OO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgT047Ozs7CisxMERFO0dFT1JHSUFOIExFVFRFUiBQQVI7TGw7MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBQQVI7Ozs7CisxMERGO0dFT1JHSUFOIExFVFRFUiBaSEFSO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgWkhBUjs7OzsKKzEwRTA7R0VPUkdJQU4gTEVUVEVSIFJBRTtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFJBRTs7OzsKKzEwRTE7R0VPUkdJQU4gTEVUVEVSIFNBTjtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFNBTjs7OzsKKzEwRTI7R0VPUkdJQU4gTEVUVEVSIFRBUjtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFRBUjs7OzsKKzEwRTM7R0VPUkdJQU4gTEVUVEVSIFVOO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgVU47Ozs7CisxMEU0O0dFT1JHSUFOIExFVFRFUiBQSEFSO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgUEhBUjs7OzsKKzEwRTU7R0VPUkdJQU4gTEVUVEVSIEtIQVI7TGw7MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBLSEFSOzs7OworMTBFNjtHRU9SR0lBTiBMRVRURVIgR0hBTjtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEdIQU47Ozs7CisxMEU3O0dFT1JHSUFOIExFVFRFUiBRQVI7TGw7MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBRQVI7Ozs7CisxMEU4O0dFT1JHSUFOIExFVFRFUiBTSElOO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgU0hJTjs7OzsKKzEwRTk7R0VPUkdJQU4gTEVUVEVSIENISU47TGw7MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBDSElOOzs7OworMTBFQTtHRU9SR0lBTiBMRVRURVIgQ0FOO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgQ0FOOzs7OworMTBFQjtHRU9SR0lBTiBMRVRURVIgSklMO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgSklMOzs7OworMTBFQztHRU9SR0lBTiBMRVRURVIgQ0lMO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgQ0lMOzs7OworMTBFRDtHRU9SR0lBTiBMRVRURVIgQ0hBUjtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIENIQVI7Ozs7CisxMEVFO0dFT1JHSUFOIExFVFRFUiBYQU47TGw7MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBYQU47Ozs7CisxMEVGO0dFT1JHSUFOIExFVFRFUiBKSEFOO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgSkhBTjs7OzsKKzEwRjA7R0VPUkdJQU4gTEVUVEVSIEhBRTtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEhBRTs7OzsKKzEwRjE7R0VPUkdJQU4gTEVUVEVSIEhFO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgSEU7Ozs7CisxMEYyO0dFT1JHSUFOIExFVFRFUiBISUU7TGw7MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBISUU7Ozs7CisxMEYzO0dFT1JHSUFOIExFVFRFUiBXRTtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFdFOzs7OworMTBGNDtHRU9SR0lBTiBMRVRURVIgSEFSO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgSEFSOzs7OworMTBGNTtHRU9SR0lBTiBMRVRURVIgSE9FO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgSE9FOzs7OworMTBGNjtHRU9SR0lBTiBMRVRURVIgRkk7TGw7MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBGSTs7OzsKKzEwRkI7R0VPUkdJQU4gUEFSQUdSQVBIIFNFUEFSQVRPUjtQbzswO0w7Ozs7O047Ozs7OworMTEwMDtIQU5HVUwgQ0hPU0VPTkcgS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTAxO0hBTkdVTCBDSE9TRU9ORyBTU0FOR0tJWUVPSztMbzswO0w7PGNvbXBhdD4gMTEwMCAxMTAwOzs7O047Ozs7OworMTEwMjtIQU5HVUwgQ0hPU0VPTkcgTklFVU47TG87MDtMOzs7OztOOzs7OzsKKzExMDM7SEFOR1VMIENIT1NFT05HIFRJS0VVVDtMbzswO0w7Ozs7O047Ozs7OworMTEwNDtIQU5HVUwgQ0hPU0VPTkcgU1NBTkdUSUtFVVQ7TG87MDtMOzxjb21wYXQ+IDExMDMgMTEwMzs7OztOOzs7OzsKKzExMDU7SEFOR1VMIENIT1NFT05HIFJJRVVMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTA2O0hBTkdVTCBDSE9TRU9ORyBNSUVVTTtMbzswO0w7Ozs7O047Ozs7OworMTEwNztIQU5HVUwgQ0hPU0VPTkcgUElFVVA7TG87MDtMOzs7OztOOzs7OzsKKzExMDg7SEFOR1VMIENIT1NFT05HIFNTQU5HUElFVVA7TG87MDtMOzxjb21wYXQ+IDExMDcgMTEwNzs7OztOOzs7OzsKKzExMDk7SEFOR1VMIENIT1NFT05HIFNJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExMEE7SEFOR1VMIENIT1NFT05HIFNTQU5HU0lPUztMbzswO0w7PGNvbXBhdD4gMTEwOSAxMTA5Ozs7O047Ozs7OworMTEwQjtIQU5HVUwgQ0hPU0VPTkcgSUVVTkc7TG87MDtMOzs7OztOOzs7OzsKKzExMEM7SEFOR1VMIENIT1NFT05HIENJRVVDO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTBEO0hBTkdVTCBDSE9TRU9ORyBTU0FOR0NJRVVDO0xvOzA7TDs8Y29tcGF0PiAxMTBDIDExMEM7Ozs7Tjs7Ozs7CisxMTBFO0hBTkdVTCBDSE9TRU9ORyBDSElFVUNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTBGO0hBTkdVTCBDSE9TRU9ORyBLSElFVUtIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTEwO0hBTkdVTCBDSE9TRU9ORyBUSElFVVRIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTExO0hBTkdVTCBDSE9TRU9ORyBQSElFVVBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTEyO0hBTkdVTCBDSE9TRU9ORyBISUVVSDtMbzswO0w7Ozs7O047Ozs7OworMTExMztIQU5HVUwgQ0hPU0VPTkcgTklFVU4tS0lZRU9LO0xvOzA7TDs8Y29tcGF0PiAxMTAyIDExMDA7Ozs7Tjs7Ozs7CisxMTE0O0hBTkdVTCBDSE9TRU9ORyBTU0FOR05JRVVOO0xvOzA7TDs8Y29tcGF0PiAxMTAyIDExMDI7Ozs7Tjs7Ozs7CisxMTE1O0hBTkdVTCBDSE9TRU9ORyBOSUVVTi1USUtFVVQ7TG87MDtMOzxjb21wYXQ+IDExMDIgMTEwMzs7OztOOzs7OzsKKzExMTY7SEFOR1VMIENIT1NFT05HIE5JRVVOLVBJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMTAyIDExMDc7Ozs7Tjs7Ozs7CisxMTE3O0hBTkdVTCBDSE9TRU9ORyBUSUtFVVQtS0lZRU9LO0xvOzA7TDs8Y29tcGF0PiAxMTAzIDExMDA7Ozs7Tjs7Ozs7CisxMTE4O0hBTkdVTCBDSE9TRU9ORyBSSUVVTC1OSUVVTjtMbzswO0w7PGNvbXBhdD4gMTEwNSAxMTAyOzs7O047Ozs7OworMTExOTtIQU5HVUwgQ0hPU0VPTkcgU1NBTkdSSUVVTDtMbzswO0w7PGNvbXBhdD4gMTEwNSAxMTA1Ozs7O047Ozs7OworMTExQTtIQU5HVUwgQ0hPU0VPTkcgUklFVUwtSElFVUg7TG87MDtMOzxjb21wYXQ+IDExMDUgMTExMjs7OztOOzs7OzsKKzExMUI7SEFOR1VMIENIT1NFT05HIEtBUFlFT1VOUklFVUw7TG87MDtMOzxjb21wYXQ+IDExMDUgMTEwQjs7OztOOzs7OzsKKzExMUM7SEFOR1VMIENIT1NFT05HIE1JRVVNLVBJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMTA2IDExMDc7Ozs7Tjs7Ozs7CisxMTFEO0hBTkdVTCBDSE9TRU9ORyBLQVBZRU9VTk1JRVVNO0xvOzA7TDs8Y29tcGF0PiAxMTA2IDExMEI7Ozs7Tjs7Ozs7CisxMTFFO0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1LSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExMDcgMTEwMDs7OztOOzs7OzsKKzExMUY7SEFOR1VMIENIT1NFT05HIFBJRVVQLU5JRVVOO0xvOzA7TDs8Y29tcGF0PiAxMTA3IDExMDI7Ozs7Tjs7Ozs7CisxMTIwO0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1USUtFVVQ7TG87MDtMOzxjb21wYXQ+IDExMDcgMTEwMzs7OztOOzs7OzsKKzExMjE7SEFOR1VMIENIT1NFT05HIFBJRVVQLVNJT1M7TG87MDtMOzxjb21wYXQ+IDExMDcgMTEwOTs7OztOOzs7OzsKKzExMjI7SEFOR1VMIENIT1NFT05HIFBJRVVQLVNJT1MtS0lZRU9LO0xvOzA7TDs8Y29tcGF0PiAxMTA3IDExMDkgMTEwMDs7OztOOzs7OzsKKzExMjM7SEFOR1VMIENIT1NFT05HIFBJRVVQLVNJT1MtVElLRVVUO0xvOzA7TDs8Y29tcGF0PiAxMTA3IDExMDkgMTEwMzs7OztOOzs7OzsKKzExMjQ7SEFOR1VMIENIT1NFT05HIFBJRVVQLVNJT1MtUElFVVA7TG87MDtMOzxjb21wYXQ+IDExMDcgMTEwOSAxMTA3Ozs7O047Ozs7OworMTEyNTtIQU5HVUwgQ0hPU0VPTkcgUElFVVAtU1NBTkdTSU9TO0xvOzA7TDs8Y29tcGF0PiAxMTA3IDExMDkgMTEwOTs7OztOOzs7OzsKKzExMjY7SEFOR1VMIENIT1NFT05HIFBJRVVQLVNJT1MtQ0lFVUM7TG87MDtMOzxjb21wYXQ+IDExMDcgMTEwOSAxMTBDOzs7O047Ozs7OworMTEyNztIQU5HVUwgQ0hPU0VPTkcgUElFVVAtQ0lFVUM7TG87MDtMOzxjb21wYXQ+IDExMDcgMTEwQzs7OztOOzs7OzsKKzExMjg7SEFOR1VMIENIT1NFT05HIFBJRVVQLUNISUVVQ0g7TG87MDtMOzxjb21wYXQ+IDExMDcgMTEwRTs7OztOOzs7OzsKKzExMjk7SEFOR1VMIENIT1NFT05HIFBJRVVQLVRISUVVVEg7TG87MDtMOzxjb21wYXQ+IDExMDcgMTExMDs7OztOOzs7OzsKKzExMkE7SEFOR1VMIENIT1NFT05HIFBJRVVQLVBISUVVUEg7TG87MDtMOzxjb21wYXQ+IDExMDcgMTExMTs7OztOOzs7OzsKKzExMkI7SEFOR1VMIENIT1NFT05HIEtBUFlFT1VOUElFVVA7TG87MDtMOzxjb21wYXQ+IDExMDcgMTEwQjs7OztOOzs7OzsKKzExMkM7SEFOR1VMIENIT1NFT05HIEtBUFlFT1VOU1NBTkdQSUVVUDtMbzswO0w7PGNvbXBhdD4gMTEwNyAxMTA3IDExMEI7Ozs7Tjs7Ozs7CisxMTJEO0hBTkdVTCBDSE9TRU9ORyBTSU9TLUtJWUVPSztMbzswO0w7PGNvbXBhdD4gMTEwOSAxMTAwOzs7O047Ozs7OworMTEyRTtIQU5HVUwgQ0hPU0VPTkcgU0lPUy1OSUVVTjtMbzswO0w7PGNvbXBhdD4gMTEwOSAxMTAyOzs7O047Ozs7OworMTEyRjtIQU5HVUwgQ0hPU0VPTkcgU0lPUy1USUtFVVQ7TG87MDtMOzxjb21wYXQ+IDExMDkgMTEwMzs7OztOOzs7OzsKKzExMzA7SEFOR1VMIENIT1NFT05HIFNJT1MtUklFVUw7TG87MDtMOzxjb21wYXQ+IDExMDkgMTEwNTs7OztOOzs7OzsKKzExMzE7SEFOR1VMIENIT1NFT05HIFNJT1MtTUlFVU07TG87MDtMOzxjb21wYXQ+IDExMDkgMTEwNjs7OztOOzs7OzsKKzExMzI7SEFOR1VMIENIT1NFT05HIFNJT1MtUElFVVA7TG87MDtMOzxjb21wYXQ+IDExMDkgMTEwNzs7OztOOzs7OzsKKzExMzM7SEFOR1VMIENIT1NFT05HIFNJT1MtUElFVVAtS0lZRU9LO0xvOzA7TDs8Y29tcGF0PiAxMTA5IDExMDcgMTEwMDs7OztOOzs7OzsKKzExMzQ7SEFOR1VMIENIT1NFT05HIFNJT1MtU1NBTkdTSU9TO0xvOzA7TDs8Y29tcGF0PiAxMTA5IDExMDkgMTEwOTs7OztOOzs7OzsKKzExMzU7SEFOR1VMIENIT1NFT05HIFNJT1MtSUVVTkc7TG87MDtMOzxjb21wYXQ+IDExMDkgMTEwQjs7OztOOzs7OzsKKzExMzY7SEFOR1VMIENIT1NFT05HIFNJT1MtQ0lFVUM7TG87MDtMOzxjb21wYXQ+IDExMDkgMTEwQzs7OztOOzs7OzsKKzExMzc7SEFOR1VMIENIT1NFT05HIFNJT1MtQ0hJRVVDSDtMbzswO0w7PGNvbXBhdD4gMTEwOSAxMTBFOzs7O047Ozs7OworMTEzODtIQU5HVUwgQ0hPU0VPTkcgU0lPUy1LSElFVUtIO0xvOzA7TDs8Y29tcGF0PiAxMTA5IDExMEY7Ozs7Tjs7Ozs7CisxMTM5O0hBTkdVTCBDSE9TRU9ORyBTSU9TLVRISUVVVEg7TG87MDtMOzxjb21wYXQ+IDExMDkgMTExMDs7OztOOzs7OzsKKzExM0E7SEFOR1VMIENIT1NFT05HIFNJT1MtUEhJRVVQSDtMbzswO0w7PGNvbXBhdD4gMTEwOSAxMTExOzs7O047Ozs7OworMTEzQjtIQU5HVUwgQ0hPU0VPTkcgU0lPUy1ISUVVSDtMbzswO0w7PGNvbXBhdD4gMTEwOSAxMTEyOzs7O047Ozs7OworMTEzQztIQU5HVUwgQ0hPU0VPTkcgQ0hJVFVFVU1TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTNEO0hBTkdVTCBDSE9TRU9ORyBDSElUVUVVTVNTQU5HU0lPUztMbzswO0w7PGNvbXBhdD4gMTEzQyAxMTNDOzs7O047Ozs7OworMTEzRTtIQU5HVUwgQ0hPU0VPTkcgQ0VPTkdDSElFVU1TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTNGO0hBTkdVTCBDSE9TRU9ORyBDRU9OR0NISUVVTVNTQU5HU0lPUztMbzswO0w7PGNvbXBhdD4gMTEzRSAxMTNFOzs7O047Ozs7OworMTE0MDtIQU5HVUwgQ0hPU0VPTkcgUEFOU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTE0MTtIQU5HVUwgQ0hPU0VPTkcgSUVVTkctS0lZRU9LO0xvOzA7TDs8Y29tcGF0PiAxMTBCIDExMDA7Ozs7Tjs7Ozs7CisxMTQyO0hBTkdVTCBDSE9TRU9ORyBJRVVORy1USUtFVVQ7TG87MDtMOzxjb21wYXQ+IDExMEIgMTEwMzs7OztOOzs7OzsKKzExNDM7SEFOR1VMIENIT1NFT05HIElFVU5HLU1JRVVNO0xvOzA7TDs8Y29tcGF0PiAxMTBCIDExMDY7Ozs7Tjs7Ozs7CisxMTQ0O0hBTkdVTCBDSE9TRU9ORyBJRVVORy1QSUVVUDtMbzswO0w7PGNvbXBhdD4gMTEwQiAxMTA3Ozs7O047Ozs7OworMTE0NTtIQU5HVUwgQ0hPU0VPTkcgSUVVTkctU0lPUztMbzswO0w7PGNvbXBhdD4gMTEwQiAxMTA5Ozs7O047Ozs7OworMTE0NjtIQU5HVUwgQ0hPU0VPTkcgSUVVTkctUEFOU0lPUztMbzswO0w7PGNvbXBhdD4gMTEwQiAxMTQwOzs7O047Ozs7OworMTE0NztIQU5HVUwgQ0hPU0VPTkcgU1NBTkdJRVVORztMbzswO0w7PGNvbXBhdD4gMTEwQiAxMTBCOzs7O047Ozs7OworMTE0ODtIQU5HVUwgQ0hPU0VPTkcgSUVVTkctQ0lFVUM7TG87MDtMOzxjb21wYXQ+IDExMEIgMTEwQzs7OztOOzs7OzsKKzExNDk7SEFOR1VMIENIT1NFT05HIElFVU5HLUNISUVVQ0g7TG87MDtMOzxjb21wYXQ+IDExMEIgMTEwRTs7OztOOzs7OzsKKzExNEE7SEFOR1VMIENIT1NFT05HIElFVU5HLVRISUVVVEg7TG87MDtMOzxjb21wYXQ+IDExMEIgMTExMDs7OztOOzs7OzsKKzExNEI7SEFOR1VMIENIT1NFT05HIElFVU5HLVBISUVVUEg7TG87MDtMOzxjb21wYXQ+IDExMEIgMTExMTs7OztOOzs7OzsKKzExNEM7SEFOR1VMIENIT1NFT05HIFlFU0lFVU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTREO0hBTkdVTCBDSE9TRU9ORyBDSUVVQy1JRVVORztMbzswO0w7PGNvbXBhdD4gMTEwQyAxMTBCOzs7O047Ozs7OworMTE0RTtIQU5HVUwgQ0hPU0VPTkcgQ0hJVFVFVU1DSUVVQztMbzswO0w7Ozs7O047Ozs7OworMTE0RjtIQU5HVUwgQ0hPU0VPTkcgQ0hJVFVFVU1TU0FOR0NJRVVDO0xvOzA7TDs8Y29tcGF0PiAxMTRFIDExNEU7Ozs7Tjs7Ozs7CisxMTUwO0hBTkdVTCBDSE9TRU9ORyBDRU9OR0NISUVVTUNJRVVDO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTUxO0hBTkdVTCBDSE9TRU9ORyBDRU9OR0NISUVVTVNTQU5HQ0lFVUM7TG87MDtMOzxjb21wYXQ+IDExNTAgMTE1MDs7OztOOzs7OzsKKzExNTI7SEFOR1VMIENIT1NFT05HIENISUVVQ0gtS0hJRVVLSDtMbzswO0w7PGNvbXBhdD4gMTEwRSAxMTBGOzs7O047Ozs7OworMTE1MztIQU5HVUwgQ0hPU0VPTkcgQ0hJRVVDSC1ISUVVSDtMbzswO0w7PGNvbXBhdD4gMTEwRSAxMTEyOzs7O047Ozs7OworMTE1NDtIQU5HVUwgQ0hPU0VPTkcgQ0hJVFVFVU1DSElFVUNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTU1O0hBTkdVTCBDSE9TRU9ORyBDRU9OR0NISUVVTUNISUVVQ0g7TG87MDtMOzs7OztOOzs7OzsKKzExNTY7SEFOR1VMIENIT1NFT05HIFBISUVVUEgtUElFVVA7TG87MDtMOzxjb21wYXQ+IDExMTEgMTEwNzs7OztOOzs7OzsKKzExNTc7SEFOR1VMIENIT1NFT05HIEtBUFlFT1VOUEhJRVVQSDtMbzswO0w7PGNvbXBhdD4gMTExMSAxMTBCOzs7O047Ozs7OworMTE1ODtIQU5HVUwgQ0hPU0VPTkcgU1NBTkdISUVVSDtMbzswO0w7PGNvbXBhdD4gMTExMiAxMTEyOzs7O047Ozs7OworMTE1OTtIQU5HVUwgQ0hPU0VPTkcgWUVPUklOSElFVUg7TG87MDtMOzs7OztOOzs7OzsKKzExNUY7SEFOR1VMIENIT1NFT05HIEZJTExFUjtMbzswO0w7Ozs7O047Ozs7OworMTE2MDtIQU5HVUwgSlVOR1NFT05HIEZJTExFUjtMbzswO0w7Ozs7O047Ozs7OworMTE2MTtIQU5HVUwgSlVOR1NFT05HIEE7TG87MDtMOzs7OztOOzs7OzsKKzExNjI7SEFOR1VMIEpVTkdTRU9ORyBBRTtMbzswO0w7PGNvbXBhdD4gMTE2MSAxMTc1Ozs7O047Ozs7OworMTE2MztIQU5HVUwgSlVOR1NFT05HIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTY0O0hBTkdVTCBKVU5HU0VPTkcgWUFFO0xvOzA7TDs8Y29tcGF0PiAxMTYzIDExNzU7Ozs7Tjs7Ozs7CisxMTY1O0hBTkdVTCBKVU5HU0VPTkcgRU87TG87MDtMOzs7OztOOzs7OzsKKzExNjY7SEFOR1VMIEpVTkdTRU9ORyBFO0xvOzA7TDs8Y29tcGF0PiAxMTY1IDExNzU7Ozs7Tjs7Ozs7CisxMTY3O0hBTkdVTCBKVU5HU0VPTkcgWUVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTY4O0hBTkdVTCBKVU5HU0VPTkcgWUU7TG87MDtMOzxjb21wYXQ+IDExNjcgMTE3NTs7OztOOzs7OzsKKzExNjk7SEFOR1VMIEpVTkdTRU9ORyBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTZBO0hBTkdVTCBKVU5HU0VPTkcgV0E7TG87MDtMOzxjb21wYXQ+IDExNjkgMTE2MTs7OztOOzs7OzsKKzExNkI7SEFOR1VMIEpVTkdTRU9ORyBXQUU7TG87MDtMOzxjb21wYXQ+IDExNjkgMTE2MSAxMTc1Ozs7O047Ozs7OworMTE2QztIQU5HVUwgSlVOR1NFT05HIE9FO0xvOzA7TDs8Y29tcGF0PiAxMTY5IDExNzU7Ozs7Tjs7Ozs7CisxMTZEO0hBTkdVTCBKVU5HU0VPTkcgWU87TG87MDtMOzs7OztOOzs7OzsKKzExNkU7SEFOR1VMIEpVTkdTRU9ORyBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTZGO0hBTkdVTCBKVU5HU0VPTkcgV0VPO0xvOzA7TDs8Y29tcGF0PiAxMTZFIDExNjU7Ozs7Tjs7Ozs7CisxMTcwO0hBTkdVTCBKVU5HU0VPTkcgV0U7TG87MDtMOzxjb21wYXQ+IDExNkUgMTE2NSAxMTc1Ozs7O047Ozs7OworMTE3MTtIQU5HVUwgSlVOR1NFT05HIFdJO0xvOzA7TDs8Y29tcGF0PiAxMTZFIDExNzU7Ozs7Tjs7Ozs7CisxMTcyO0hBTkdVTCBKVU5HU0VPTkcgWVU7TG87MDtMOzs7OztOOzs7OzsKKzExNzM7SEFOR1VMIEpVTkdTRU9ORyBFVTtMbzswO0w7Ozs7O047Ozs7OworMTE3NDtIQU5HVUwgSlVOR1NFT05HIFlJO0xvOzA7TDs8Y29tcGF0PiAxMTczIDExNzU7Ozs7Tjs7Ozs7CisxMTc1O0hBTkdVTCBKVU5HU0VPTkcgSTtMbzswO0w7Ozs7O047Ozs7OworMTE3NjtIQU5HVUwgSlVOR1NFT05HIEEtTztMbzswO0w7PGNvbXBhdD4gMTE2MSAxMTY5Ozs7O047Ozs7OworMTE3NztIQU5HVUwgSlVOR1NFT05HIEEtVTtMbzswO0w7PGNvbXBhdD4gMTE2MSAxMTZFOzs7O047Ozs7OworMTE3ODtIQU5HVUwgSlVOR1NFT05HIFlBLU87TG87MDtMOzxjb21wYXQ+IDExNjMgMTE2OTs7OztOOzs7OzsKKzExNzk7SEFOR1VMIEpVTkdTRU9ORyBZQS1ZTztMbzswO0w7PGNvbXBhdD4gMTE2MyAxMTZEOzs7O047Ozs7OworMTE3QTtIQU5HVUwgSlVOR1NFT05HIEVPLU87TG87MDtMOzxjb21wYXQ+IDExNjUgMTE2OTs7OztOOzs7OzsKKzExN0I7SEFOR1VMIEpVTkdTRU9ORyBFTy1VO0xvOzA7TDs8Y29tcGF0PiAxMTY1IDExNkU7Ozs7Tjs7Ozs7CisxMTdDO0hBTkdVTCBKVU5HU0VPTkcgRU8tRVU7TG87MDtMOzxjb21wYXQ+IDExNjUgMTE3Mzs7OztOOzs7OzsKKzExN0Q7SEFOR1VMIEpVTkdTRU9ORyBZRU8tTztMbzswO0w7PGNvbXBhdD4gMTE2NyAxMTY5Ozs7O047Ozs7OworMTE3RTtIQU5HVUwgSlVOR1NFT05HIFlFTy1VO0xvOzA7TDs8Y29tcGF0PiAxMTY3IDExNkU7Ozs7Tjs7Ozs7CisxMTdGO0hBTkdVTCBKVU5HU0VPTkcgTy1FTztMbzswO0w7PGNvbXBhdD4gMTE2OSAxMTY1Ozs7O047Ozs7OworMTE4MDtIQU5HVUwgSlVOR1NFT05HIE8tRTtMbzswO0w7PGNvbXBhdD4gMTE2OSAxMTY2Ozs7O047Ozs7OworMTE4MTtIQU5HVUwgSlVOR1NFT05HIE8tWUU7TG87MDtMOzxjb21wYXQ+IDExNjkgMTE2ODs7OztOOzs7OzsKKzExODI7SEFOR1VMIEpVTkdTRU9ORyBPLU87TG87MDtMOzxjb21wYXQ+IDExNjkgMTE2OTs7OztOOzs7OzsKKzExODM7SEFOR1VMIEpVTkdTRU9ORyBPLVU7TG87MDtMOzxjb21wYXQ+IDExNjkgMTE2RTs7OztOOzs7OzsKKzExODQ7SEFOR1VMIEpVTkdTRU9ORyBZTy1ZQTtMbzswO0w7PGNvbXBhdD4gMTE2RCAxMTYzOzs7O047Ozs7OworMTE4NTtIQU5HVUwgSlVOR1NFT05HIFlPLVlBRTtMbzswO0w7PGNvbXBhdD4gMTE2RCAxMTY0Ozs7O047Ozs7OworMTE4NjtIQU5HVUwgSlVOR1NFT05HIFlPLVlFTztMbzswO0w7PGNvbXBhdD4gMTE2RCAxMTY3Ozs7O047Ozs7OworMTE4NztIQU5HVUwgSlVOR1NFT05HIFlPLU87TG87MDtMOzxjb21wYXQ+IDExNkQgMTE2OTs7OztOOzs7OzsKKzExODg7SEFOR1VMIEpVTkdTRU9ORyBZTy1JO0xvOzA7TDs8Y29tcGF0PiAxMTZEIDExNzU7Ozs7Tjs7Ozs7CisxMTg5O0hBTkdVTCBKVU5HU0VPTkcgVS1BO0xvOzA7TDs8Y29tcGF0PiAxMTZFIDExNjE7Ozs7Tjs7Ozs7CisxMThBO0hBTkdVTCBKVU5HU0VPTkcgVS1BRTtMbzswO0w7PGNvbXBhdD4gMTE2RSAxMTYyOzs7O047Ozs7OworMTE4QjtIQU5HVUwgSlVOR1NFT05HIFUtRU8tRVU7TG87MDtMOzxjb21wYXQ+IDExNkUgMTE2NSAxMTczOzs7O047Ozs7OworMTE4QztIQU5HVUwgSlVOR1NFT05HIFUtWUU7TG87MDtMOzxjb21wYXQ+IDExNkUgMTE2ODs7OztOOzs7OzsKKzExOEQ7SEFOR1VMIEpVTkdTRU9ORyBVLVU7TG87MDtMOzxjb21wYXQ+IDExNkUgMTE2RTs7OztOOzs7OzsKKzExOEU7SEFOR1VMIEpVTkdTRU9ORyBZVS1BO0xvOzA7TDs8Y29tcGF0PiAxMTcyIDExNjE7Ozs7Tjs7Ozs7CisxMThGO0hBTkdVTCBKVU5HU0VPTkcgWVUtRU87TG87MDtMOzxjb21wYXQ+IDExNzIgMTE2NTs7OztOOzs7OzsKKzExOTA7SEFOR1VMIEpVTkdTRU9ORyBZVS1FO0xvOzA7TDs8Y29tcGF0PiAxMTcyIDExNjY7Ozs7Tjs7Ozs7CisxMTkxO0hBTkdVTCBKVU5HU0VPTkcgWVUtWUVPO0xvOzA7TDs8Y29tcGF0PiAxMTcyIDExNjc7Ozs7Tjs7Ozs7CisxMTkyO0hBTkdVTCBKVU5HU0VPTkcgWVUtWUU7TG87MDtMOzxjb21wYXQ+IDExNzIgMTE2ODs7OztOOzs7OzsKKzExOTM7SEFOR1VMIEpVTkdTRU9ORyBZVS1VO0xvOzA7TDs8Y29tcGF0PiAxMTcyIDExNkU7Ozs7Tjs7Ozs7CisxMTk0O0hBTkdVTCBKVU5HU0VPTkcgWVUtSTtMbzswO0w7PGNvbXBhdD4gMTE3MiAxMTc1Ozs7O047Ozs7OworMTE5NTtIQU5HVUwgSlVOR1NFT05HIEVVLVU7TG87MDtMOzxjb21wYXQ+IDExNzMgMTE2RTs7OztOOzs7OzsKKzExOTY7SEFOR1VMIEpVTkdTRU9ORyBFVS1FVTtMbzswO0w7PGNvbXBhdD4gMTE3MyAxMTczOzs7O047Ozs7OworMTE5NztIQU5HVUwgSlVOR1NFT05HIFlJLVU7TG87MDtMOzxjb21wYXQ+IDExNzQgMTE2RTs7OztOOzs7OzsKKzExOTg7SEFOR1VMIEpVTkdTRU9ORyBJLUE7TG87MDtMOzxjb21wYXQ+IDExNzUgMTE2MTs7OztOOzs7OzsKKzExOTk7SEFOR1VMIEpVTkdTRU9ORyBJLVlBO0xvOzA7TDs8Y29tcGF0PiAxMTc1IDExNjM7Ozs7Tjs7Ozs7CisxMTlBO0hBTkdVTCBKVU5HU0VPTkcgSS1PO0xvOzA7TDs8Y29tcGF0PiAxMTc1IDExNjk7Ozs7Tjs7Ozs7CisxMTlCO0hBTkdVTCBKVU5HU0VPTkcgSS1VO0xvOzA7TDs8Y29tcGF0PiAxMTc1IDExNkU7Ozs7Tjs7Ozs7CisxMTlDO0hBTkdVTCBKVU5HU0VPTkcgSS1FVTtMbzswO0w7PGNvbXBhdD4gMTE3NSAxMTczOzs7O047Ozs7OworMTE5RDtIQU5HVUwgSlVOR1NFT05HIEktQVJBRUE7TG87MDtMOzxjb21wYXQ+IDExNzUgMTE5RTs7OztOOzs7OzsKKzExOUU7SEFOR1VMIEpVTkdTRU9ORyBBUkFFQTtMbzswO0w7Ozs7O047Ozs7OworMTE5RjtIQU5HVUwgSlVOR1NFT05HIEFSQUVBLUVPO0xvOzA7TDs8Y29tcGF0PiAxMTlFIDExNjU7Ozs7Tjs7Ozs7CisxMUEwO0hBTkdVTCBKVU5HU0VPTkcgQVJBRUEtVTtMbzswO0w7PGNvbXBhdD4gMTE5RSAxMTZFOzs7O047Ozs7OworMTFBMTtIQU5HVUwgSlVOR1NFT05HIEFSQUVBLUk7TG87MDtMOzxjb21wYXQ+IDExOUUgMTE3NTs7OztOOzs7OzsKKzExQTI7SEFOR1VMIEpVTkdTRU9ORyBTU0FOR0FSQUVBO0xvOzA7TDs8Y29tcGF0PiAxMTlFIDExOUU7Ozs7Tjs7Ozs7CisxMUE4O0hBTkdVTCBKT05HU0VPTkcgS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUE5O0hBTkdVTCBKT05HU0VPTkcgU1NBTkdLSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExQTggMTFBODs7OztOOzs7OzsKKzExQUE7SEFOR1VMIEpPTkdTRU9ORyBLSVlFT0stU0lPUztMbzswO0w7PGNvbXBhdD4gMTFBOCAxMUJBOzs7O047Ozs7OworMTFBQjtIQU5HVUwgSk9OR1NFT05HIE5JRVVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUFDO0hBTkdVTCBKT05HU0VPTkcgTklFVU4tQ0lFVUM7TG87MDtMOzxjb21wYXQ+IDExQUIgMTFCRDs7OztOOzs7OzsKKzExQUQ7SEFOR1VMIEpPTkdTRU9ORyBOSUVVTi1ISUVVSDtMbzswO0w7PGNvbXBhdD4gMTFBQiAxMUMyOzs7O047Ozs7OworMTFBRTtIQU5HVUwgSk9OR1NFT05HIFRJS0VVVDtMbzswO0w7Ozs7O047Ozs7OworMTFBRjtIQU5HVUwgSk9OR1NFT05HIFJJRVVMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUIwO0hBTkdVTCBKT05HU0VPTkcgUklFVUwtS0lZRU9LO0xvOzA7TDs8Y29tcGF0PiAxMUFGIDExQTg7Ozs7Tjs7Ozs7CisxMUIxO0hBTkdVTCBKT05HU0VPTkcgUklFVUwtTUlFVU07TG87MDtMOzxjb21wYXQ+IDExQUYgMTFCNzs7OztOOzs7OzsKKzExQjI7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1QSUVVUDtMbzswO0w7PGNvbXBhdD4gMTFBRiAxMUI4Ozs7O047Ozs7OworMTFCMztIQU5HVUwgSk9OR1NFT05HIFJJRVVMLVNJT1M7TG87MDtMOzxjb21wYXQ+IDExQUYgMTFCQTs7OztOOzs7OzsKKzExQjQ7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1USElFVVRIO0xvOzA7TDs8Y29tcGF0PiAxMUFGIDExQzA7Ozs7Tjs7Ozs7CisxMUI1O0hBTkdVTCBKT05HU0VPTkcgUklFVUwtUEhJRVVQSDtMbzswO0w7PGNvbXBhdD4gMTFBRiAxMUMxOzs7O047Ozs7OworMTFCNjtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLUhJRVVIO0xvOzA7TDs8Y29tcGF0PiAxMUFGIDExQzI7Ozs7Tjs7Ozs7CisxMUI3O0hBTkdVTCBKT05HU0VPTkcgTUlFVU07TG87MDtMOzs7OztOOzs7OzsKKzExQjg7SEFOR1VMIEpPTkdTRU9ORyBQSUVVUDtMbzswO0w7Ozs7O047Ozs7OworMTFCOTtIQU5HVUwgSk9OR1NFT05HIFBJRVVQLVNJT1M7TG87MDtMOzxjb21wYXQ+IDExQjggMTFCQTs7OztOOzs7OzsKKzExQkE7SEFOR1VMIEpPTkdTRU9ORyBTSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUJCO0hBTkdVTCBKT05HU0VPTkcgU1NBTkdTSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUJBIDExQkE7Ozs7Tjs7Ozs7CisxMUJDO0hBTkdVTCBKT05HU0VPTkcgSUVVTkc7TG87MDtMOzs7OztOOzs7OzsKKzExQkQ7SEFOR1VMIEpPTkdTRU9ORyBDSUVVQztMbzswO0w7Ozs7O047Ozs7OworMTFCRTtIQU5HVUwgSk9OR1NFT05HIENISUVVQ0g7TG87MDtMOzs7OztOOzs7OzsKKzExQkY7SEFOR1VMIEpPTkdTRU9ORyBLSElFVUtIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUMwO0hBTkdVTCBKT05HU0VPTkcgVEhJRVVUSDtMbzswO0w7Ozs7O047Ozs7OworMTFDMTtIQU5HVUwgSk9OR1NFT05HIFBISUVVUEg7TG87MDtMOzs7OztOOzs7OzsKKzExQzI7SEFOR1VMIEpPTkdTRU9ORyBISUVVSDtMbzswO0w7Ozs7O047Ozs7OworMTFDMztIQU5HVUwgSk9OR1NFT05HIEtJWUVPSy1SSUVVTDtMbzswO0w7PGNvbXBhdD4gMTFBOCAxMUFGOzs7O047Ozs7OworMTFDNDtIQU5HVUwgSk9OR1NFT05HIEtJWUVPSy1TSU9TLUtJWUVPSztMbzswO0w7PGNvbXBhdD4gMTFBOCAxMUJBIDExQTg7Ozs7Tjs7Ozs7CisxMUM1O0hBTkdVTCBKT05HU0VPTkcgTklFVU4tS0lZRU9LO0xvOzA7TDs8Y29tcGF0PiAxMUFCIDExQTg7Ozs7Tjs7Ozs7CisxMUM2O0hBTkdVTCBKT05HU0VPTkcgTklFVU4tVElLRVVUO0xvOzA7TDs8Y29tcGF0PiAxMUFCIDExQUU7Ozs7Tjs7Ozs7CisxMUM3O0hBTkdVTCBKT05HU0VPTkcgTklFVU4tU0lPUztMbzswO0w7PGNvbXBhdD4gMTFBQiAxMUJBOzs7O047Ozs7OworMTFDODtIQU5HVUwgSk9OR1NFT05HIE5JRVVOLVBBTlNJT1M7TG87MDtMOzxjb21wYXQ+IDExQUIgMTFFQjs7OztOOzs7OzsKKzExQzk7SEFOR1VMIEpPTkdTRU9ORyBOSUVVTi1USElFVVRIO0xvOzA7TDs8Y29tcGF0PiAxMUFCIDExQzA7Ozs7Tjs7Ozs7CisxMUNBO0hBTkdVTCBKT05HU0VPTkcgVElLRVVULUtJWUVPSztMbzswO0w7PGNvbXBhdD4gMTFBRSAxMUE4Ozs7O047Ozs7OworMTFDQjtIQU5HVUwgSk9OR1NFT05HIFRJS0VVVC1SSUVVTDtMbzswO0w7PGNvbXBhdD4gMTFBRSAxMUFGOzs7O047Ozs7OworMTFDQztIQU5HVUwgSk9OR1NFT05HIFJJRVVMLUtJWUVPSy1TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUFGIDExQTggMTFCQTs7OztOOzs7OzsKKzExQ0Q7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1OSUVVTjtMbzswO0w7PGNvbXBhdD4gMTFBRiAxMUFCOzs7O047Ozs7OworMTFDRTtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLVRJS0VVVDtMbzswO0w7PGNvbXBhdD4gMTFBRiAxMUFFOzs7O047Ozs7OworMTFDRjtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLVRJS0VVVC1ISUVVSDtMbzswO0w7PGNvbXBhdD4gMTFBRiAxMUFFIDExQzI7Ozs7Tjs7Ozs7CisxMUQwO0hBTkdVTCBKT05HU0VPTkcgU1NBTkdSSUVVTDtMbzswO0w7PGNvbXBhdD4gMTFBRiAxMUFGOzs7O047Ozs7OworMTFEMTtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLU1JRVVNLUtJWUVPSztMbzswO0w7PGNvbXBhdD4gMTFBRiAxMUI3IDExQTg7Ozs7Tjs7Ozs7CisxMUQyO0hBTkdVTCBKT05HU0VPTkcgUklFVUwtTUlFVU0tU0lPUztMbzswO0w7PGNvbXBhdD4gMTFBRiAxMUI3IDExQkE7Ozs7Tjs7Ozs7CisxMUQzO0hBTkdVTCBKT05HU0VPTkcgUklFVUwtUElFVVAtU0lPUztMbzswO0w7PGNvbXBhdD4gMTFBRiAxMUI4IDExQkE7Ozs7Tjs7Ozs7CisxMUQ0O0hBTkdVTCBKT05HU0VPTkcgUklFVUwtUElFVVAtSElFVUg7TG87MDtMOzxjb21wYXQ+IDExQUYgMTFCOCAxMUMyOzs7O047Ozs7OworMTFENTtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLUtBUFlFT1VOUElFVVA7TG87MDtMOzxjb21wYXQ+IDExQUYgMTFCOCAxMUJDOzs7O047Ozs7OworMTFENjtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLVNTQU5HU0lPUztMbzswO0w7PGNvbXBhdD4gMTFBRiAxMUJBIDExQkE7Ozs7Tjs7Ozs7CisxMUQ3O0hBTkdVTCBKT05HU0VPTkcgUklFVUwtUEFOU0lPUztMbzswO0w7PGNvbXBhdD4gMTFBRiAxMUVCOzs7O047Ozs7OworMTFEODtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLUtISUVVS0g7TG87MDtMOzxjb21wYXQ+IDExQUYgMTFCRjs7OztOOzs7OzsKKzExRDk7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1ZRU9SSU5ISUVVSDtMbzswO0w7PGNvbXBhdD4gMTFBRiAxMUY5Ozs7O047Ozs7OworMTFEQTtIQU5HVUwgSk9OR1NFT05HIE1JRVVNLUtJWUVPSztMbzswO0w7PGNvbXBhdD4gMTFCNyAxMUE4Ozs7O047Ozs7OworMTFEQjtIQU5HVUwgSk9OR1NFT05HIE1JRVVNLVJJRVVMO0xvOzA7TDs8Y29tcGF0PiAxMUI3IDExQUY7Ozs7Tjs7Ozs7CisxMURDO0hBTkdVTCBKT05HU0VPTkcgTUlFVU0tUElFVVA7TG87MDtMOzxjb21wYXQ+IDExQjcgMTFCODs7OztOOzs7OzsKKzExREQ7SEFOR1VMIEpPTkdTRU9ORyBNSUVVTS1TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUI3IDExQkE7Ozs7Tjs7Ozs7CisxMURFO0hBTkdVTCBKT05HU0VPTkcgTUlFVU0tU1NBTkdTSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUI3IDExQkEgMTFCQTs7OztOOzs7OzsKKzExREY7SEFOR1VMIEpPTkdTRU9ORyBNSUVVTS1QQU5TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUI3IDExRUI7Ozs7Tjs7Ozs7CisxMUUwO0hBTkdVTCBKT05HU0VPTkcgTUlFVU0tQ0hJRVVDSDtMbzswO0w7PGNvbXBhdD4gMTFCNyAxMUJFOzs7O047Ozs7OworMTFFMTtIQU5HVUwgSk9OR1NFT05HIE1JRVVNLUhJRVVIO0xvOzA7TDs8Y29tcGF0PiAxMUI3IDExQzI7Ozs7Tjs7Ozs7CisxMUUyO0hBTkdVTCBKT05HU0VPTkcgS0FQWUVPVU5NSUVVTTtMbzswO0w7PGNvbXBhdD4gMTFCNyAxMUJDOzs7O047Ozs7OworMTFFMztIQU5HVUwgSk9OR1NFT05HIFBJRVVQLVJJRVVMO0xvOzA7TDs8Y29tcGF0PiAxMUI4IDExQUY7Ozs7Tjs7Ozs7CisxMUU0O0hBTkdVTCBKT05HU0VPTkcgUElFVVAtUEhJRVVQSDtMbzswO0w7PGNvbXBhdD4gMTFCOCAxMUMxOzs7O047Ozs7OworMTFFNTtIQU5HVUwgSk9OR1NFT05HIFBJRVVQLUhJRVVIO0xvOzA7TDs8Y29tcGF0PiAxMUI4IDExQzI7Ozs7Tjs7Ozs7CisxMUU2O0hBTkdVTCBKT05HU0VPTkcgS0FQWUVPVU5QSUVVUDtMbzswO0w7PGNvbXBhdD4gMTFCOCAxMUJDOzs7O047Ozs7OworMTFFNztIQU5HVUwgSk9OR1NFT05HIFNJT1MtS0lZRU9LO0xvOzA7TDs8Y29tcGF0PiAxMUJBIDExQTg7Ozs7Tjs7Ozs7CisxMUU4O0hBTkdVTCBKT05HU0VPTkcgU0lPUy1USUtFVVQ7TG87MDtMOzxjb21wYXQ+IDExQkEgMTFBRTs7OztOOzs7OzsKKzExRTk7SEFOR1VMIEpPTkdTRU9ORyBTSU9TLVJJRVVMO0xvOzA7TDs8Y29tcGF0PiAxMUJBIDExQUY7Ozs7Tjs7Ozs7CisxMUVBO0hBTkdVTCBKT05HU0VPTkcgU0lPUy1QSUVVUDtMbzswO0w7PGNvbXBhdD4gMTFCQSAxMUI4Ozs7O047Ozs7OworMTFFQjtIQU5HVUwgSk9OR1NFT05HIFBBTlNJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExRUM7SEFOR1VMIEpPTkdTRU9ORyBJRVVORy1LSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExQkMgMTFBODs7OztOOzs7OzsKKzExRUQ7SEFOR1VMIEpPTkdTRU9ORyBJRVVORy1TU0FOR0tJWUVPSztMbzswO0w7PGNvbXBhdD4gMTFCQyAxMUE4IDExQTg7Ozs7Tjs7Ozs7CisxMUVFO0hBTkdVTCBKT05HU0VPTkcgU1NBTkdJRVVORztMbzswO0w7PGNvbXBhdD4gMTFCQyAxMUJDOzs7O047Ozs7OworMTFFRjtIQU5HVUwgSk9OR1NFT05HIElFVU5HLUtISUVVS0g7TG87MDtMOzxjb21wYXQ+IDExQkMgMTFCRjs7OztOOzs7OzsKKzExRjA7SEFOR1VMIEpPTkdTRU9ORyBZRVNJRVVORztMbzswO0w7Ozs7O047Ozs7OworMTFGMTtIQU5HVUwgSk9OR1NFT05HIFlFU0lFVU5HLVNJT1M7TG87MDtMOzxjb21wYXQ+IDExRjAgMTFCQTs7OztOOzs7OzsKKzExRjI7SEFOR1VMIEpPTkdTRU9ORyBZRVNJRVVORy1QQU5TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUYwIDExRUI7Ozs7Tjs7Ozs7CisxMUYzO0hBTkdVTCBKT05HU0VPTkcgUEhJRVVQSC1QSUVVUDtMbzswO0w7PGNvbXBhdD4gMTFDMSAxMUI4Ozs7O047Ozs7OworMTFGNDtIQU5HVUwgSk9OR1NFT05HIEtBUFlFT1VOUEhJRVVQSDtMbzswO0w7PGNvbXBhdD4gMTFDMSAxMUJDOzs7O047Ozs7OworMTFGNTtIQU5HVUwgSk9OR1NFT05HIEhJRVVILU5JRVVOO0xvOzA7TDs8Y29tcGF0PiAxMUMyIDExQUI7Ozs7Tjs7Ozs7CisxMUY2O0hBTkdVTCBKT05HU0VPTkcgSElFVUgtUklFVUw7TG87MDtMOzxjb21wYXQ+IDExQzIgMTFBRjs7OztOOzs7OzsKKzExRjc7SEFOR1VMIEpPTkdTRU9ORyBISUVVSC1NSUVVTTtMbzswO0w7PGNvbXBhdD4gMTFDMiAxMUI3Ozs7O047Ozs7OworMTFGODtIQU5HVUwgSk9OR1NFT05HIEhJRVVILVBJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMUMyIDExQjg7Ozs7Tjs7Ozs7CisxMUY5O0hBTkdVTCBKT05HU0VPTkcgWUVPUklOSElFVUg7TG87MDtMOzs7OztOOzs7OzsKKzFFMDA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIFJJTkcgQkVMT1c7THU7MDtMOzAwNDEgMDMyNTs7OztOOzs7OzFFMDE7CisxRTAxO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggUklORyBCRUxPVztMbDswO0w7MDA2MSAwMzI1Ozs7O047OzsxRTAwOzsxRTAwCisxRTAyO0xBVElOIENBUElUQUwgTEVUVEVSIEIgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNDIgMDMwNzs7OztOOzs7OzFFMDM7CisxRTAzO0xBVElOIFNNQUxMIExFVFRFUiBCIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDYyIDAzMDc7Ozs7Tjs7OzFFMDI7OzFFMDIKKzFFMDQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQiBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA0MiAwMzIzOzs7O047Ozs7MUUwNTsKKzFFMDU7TEFUSU4gU01BTEwgTEVUVEVSIEIgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNjIgMDMyMzs7OztOOzs7MUUwNDs7MUUwNAorMUUwNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBCIFdJVEggTElORSBCRUxPVztMdTswO0w7MDA0MiAwMzMxOzs7O047Ozs7MUUwNzsKKzFFMDc7TEFUSU4gU01BTEwgTEVUVEVSIEIgV0lUSCBMSU5FIEJFTE9XO0xsOzA7TDswMDYyIDAzMzE7Ozs7Tjs7OzFFMDY7OzFFMDYKKzFFMDg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBXSVRIIENFRElMTEEgQU5EIEFDVVRFO0x1OzA7TDswMEM3IDAzMDE7Ozs7Tjs7OzsxRTA5OworMUUwOTtMQVRJTiBTTUFMTCBMRVRURVIgQyBXSVRIIENFRElMTEEgQU5EIEFDVVRFO0xsOzA7TDswMEU3IDAzMDE7Ozs7Tjs7OzFFMDg7OzFFMDgKKzFFMEE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA0NCAwMzA3Ozs7O047Ozs7MUUwQjsKKzFFMEI7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNjQgMDMwNzs7OztOOzs7MUUwQTs7MUUwQQorMUUwQztMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDQ0IDAzMjM7Ozs7Tjs7OzsxRTBEOworMUUwRDtMQVRJTiBTTUFMTCBMRVRURVIgRCBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2NCAwMzIzOzs7O047OzsxRTBDOzsxRTBDCisxRTBFO0xBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBMSU5FIEJFTE9XO0x1OzA7TDswMDQ0IDAzMzE7Ozs7Tjs7OzsxRTBGOworMUUwRjtMQVRJTiBTTUFMTCBMRVRURVIgRCBXSVRIIExJTkUgQkVMT1c7TGw7MDtMOzAwNjQgMDMzMTs7OztOOzs7MUUwRTs7MUUwRQorMUUxMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFdJVEggQ0VESUxMQTtMdTswO0w7MDA0NCAwMzI3Ozs7O047Ozs7MUUxMTsKKzFFMTE7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBDRURJTExBO0xsOzA7TDswMDY0IDAzMjc7Ozs7Tjs7OzFFMTA7OzFFMTAKKzFFMTI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIENJUkNVTUZMRVggQkVMT1c7THU7MDtMOzAwNDQgMDMyRDs7OztOOzs7OzFFMTM7CisxRTEzO0xBVElOIFNNQUxMIExFVFRFUiBEIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMbDswO0w7MDA2NCAwMzJEOzs7O047OzsxRTEyOzsxRTEyCisxRTE0O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBNQUNST04gQU5EIEdSQVZFO0x1OzA7TDswMTEyIDAzMDA7Ozs7Tjs7OzsxRTE1OworMUUxNTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIE1BQ1JPTiBBTkQgR1JBVkU7TGw7MDtMOzAxMTMgMDMwMDs7OztOOzs7MUUxNDs7MUUxNAorMUUxNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggTUFDUk9OIEFORCBBQ1VURTtMdTswO0w7MDExMiAwMzAxOzs7O047Ozs7MUUxNzsKKzFFMTc7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBNQUNST04gQU5EIEFDVVRFO0xsOzA7TDswMTEzIDAzMDE7Ozs7Tjs7OzFFMTY7OzFFMTYKKzFFMTg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVggQkVMT1c7THU7MDtMOzAwNDUgMDMyRDs7OztOOzs7OzFFMTk7CisxRTE5O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMbDswO0w7MDA2NSAwMzJEOzs7O047OzsxRTE4OzsxRTE4CisxRTFBO0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBUSUxERSBCRUxPVztMdTswO0w7MDA0NSAwMzMwOzs7O047Ozs7MUUxQjsKKzFFMUI7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBUSUxERSBCRUxPVztMbDswO0w7MDA2NSAwMzMwOzs7O047OzsxRTFBOzsxRTFBCisxRTFDO0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBDRURJTExBIEFORCBCUkVWRTtMdTswO0w7MDExNCAwMzI3Ozs7O047Ozs7MUUxRDsKKzFFMUQ7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBDRURJTExBIEFORCBCUkVWRTtMbDswO0w7MDExNSAwMzI3Ozs7O047OzsxRTFDOzsxRTFDCisxRTFFO0xBVElOIENBUElUQUwgTEVUVEVSIEYgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNDYgMDMwNzs7OztOOzs7OzFFMUY7CisxRTFGO0xBVElOIFNNQUxMIExFVFRFUiBGIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDY2IDAzMDc7Ozs7Tjs7OzFFMUU7OzFFMUUKKzFFMjA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBXSVRIIE1BQ1JPTjtMdTswO0w7MDA0NyAwMzA0Ozs7O047Ozs7MUUyMTsKKzFFMjE7TEFUSU4gU01BTEwgTEVUVEVSIEcgV0lUSCBNQUNST047TGw7MDtMOzAwNjcgMDMwNDs7OztOOzs7MUUyMDs7MUUyMAorMUUyMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBIIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDQ4IDAzMDc7Ozs7Tjs7OzsxRTIzOworMUUyMztMQVRJTiBTTUFMTCBMRVRURVIgSCBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA2OCAwMzA3Ozs7O047OzsxRTIyOzsxRTIyCisxRTI0O0xBVElOIENBUElUQUwgTEVUVEVSIEggV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNDggMDMyMzs7OztOOzs7OzFFMjU7CisxRTI1O0xBVElOIFNNQUxMIExFVFRFUiBIIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDY4IDAzMjM7Ozs7Tjs7OzFFMjQ7OzFFMjQKKzFFMjY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSCBXSVRIIERJQUVSRVNJUztMdTswO0w7MDA0OCAwMzA4Ozs7O047Ozs7MUUyNzsKKzFFMjc7TEFUSU4gU01BTEwgTEVUVEVSIEggV0lUSCBESUFFUkVTSVM7TGw7MDtMOzAwNjggMDMwODs7OztOOzs7MUUyNjs7MUUyNgorMUUyODtMQVRJTiBDQVBJVEFMIExFVFRFUiBIIFdJVEggQ0VESUxMQTtMdTswO0w7MDA0OCAwMzI3Ozs7O047Ozs7MUUyOTsKKzFFMjk7TEFUSU4gU01BTEwgTEVUVEVSIEggV0lUSCBDRURJTExBO0xsOzA7TDswMDY4IDAzMjc7Ozs7Tjs7OzFFMjg7OzFFMjgKKzFFMkE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSCBXSVRIIEJSRVZFIEJFTE9XO0x1OzA7TDswMDQ4IDAzMkU7Ozs7Tjs7OzsxRTJCOworMUUyQjtMQVRJTiBTTUFMTCBMRVRURVIgSCBXSVRIIEJSRVZFIEJFTE9XO0xsOzA7TDswMDY4IDAzMkU7Ozs7Tjs7OzFFMkE7OzFFMkEKKzFFMkM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIFRJTERFIEJFTE9XO0x1OzA7TDswMDQ5IDAzMzA7Ozs7Tjs7OzsxRTJEOworMUUyRDtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIFRJTERFIEJFTE9XO0xsOzA7TDswMDY5IDAzMzA7Ozs7Tjs7OzFFMkM7OzFFMkMKKzFFMkU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERJQUVSRVNJUyBBTkQgQUNVVEU7THU7MDtMOzAwQ0YgMDMwMTs7OztOOzs7OzFFMkY7CisxRTJGO0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggRElBRVJFU0lTIEFORCBBQ1VURTtMbDswO0w7MDBFRiAwMzAxOzs7O047OzsxRTJFOzsxRTJFCisxRTMwO0xBVElOIENBUElUQUwgTEVUVEVSIEsgV0lUSCBBQ1VURTtMdTswO0w7MDA0QiAwMzAxOzs7O047Ozs7MUUzMTsKKzFFMzE7TEFUSU4gU01BTEwgTEVUVEVSIEsgV0lUSCBBQ1VURTtMbDswO0w7MDA2QiAwMzAxOzs7O047OzsxRTMwOzsxRTMwCisxRTMyO0xBVElOIENBUElUQUwgTEVUVEVSIEsgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNEIgMDMyMzs7OztOOzs7OzFFMzM7CisxRTMzO0xBVElOIFNNQUxMIExFVFRFUiBLIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDZCIDAzMjM7Ozs7Tjs7OzFFMzI7OzFFMzIKKzFFMzQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSyBXSVRIIExJTkUgQkVMT1c7THU7MDtMOzAwNEIgMDMzMTs7OztOOzs7OzFFMzU7CisxRTM1O0xBVElOIFNNQUxMIExFVFRFUiBLIFdJVEggTElORSBCRUxPVztMbDswO0w7MDA2QiAwMzMxOzs7O047OzsxRTM0OzsxRTM0CisxRTM2O0xBVElOIENBUElUQUwgTEVUVEVSIEwgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNEMgMDMyMzs7OztOOzs7OzFFMzc7CisxRTM3O0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDZDIDAzMjM7Ozs7Tjs7OzFFMzY7OzFFMzYKKzFFMzg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIERPVCBCRUxPVyBBTkQgTUFDUk9OO0x1OzA7TDsxRTM2IDAzMDQ7Ozs7Tjs7OzsxRTM5OworMUUzOTtMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIERPVCBCRUxPVyBBTkQgTUFDUk9OO0xsOzA7TDsxRTM3IDAzMDQ7Ozs7Tjs7OzFFMzg7OzFFMzgKKzFFM0E7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIExJTkUgQkVMT1c7THU7MDtMOzAwNEMgMDMzMTs7OztOOzs7OzFFM0I7CisxRTNCO0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggTElORSBCRUxPVztMbDswO0w7MDA2QyAwMzMxOzs7O047OzsxRTNBOzsxRTNBCisxRTNDO0xBVElOIENBUElUQUwgTEVUVEVSIEwgV0lUSCBDSVJDVU1GTEVYIEJFTE9XO0x1OzA7TDswMDRDIDAzMkQ7Ozs7Tjs7OzsxRTNEOworMUUzRDtMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIENJUkNVTUZMRVggQkVMT1c7TGw7MDtMOzAwNkMgMDMyRDs7OztOOzs7MUUzQzs7MUUzQworMUUzRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBNIFdJVEggQUNVVEU7THU7MDtMOzAwNEQgMDMwMTs7OztOOzs7OzFFM0Y7CisxRTNGO0xBVElOIFNNQUxMIExFVFRFUiBNIFdJVEggQUNVVEU7TGw7MDtMOzAwNkQgMDMwMTs7OztOOzs7MUUzRTs7MUUzRQorMUU0MDtMQVRJTiBDQVBJVEFMIExFVFRFUiBNIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDREIDAzMDc7Ozs7Tjs7OzsxRTQxOworMUU0MTtMQVRJTiBTTUFMTCBMRVRURVIgTSBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA2RCAwMzA3Ozs7O047OzsxRTQwOzsxRTQwCisxRTQyO0xBVElOIENBUElUQUwgTEVUVEVSIE0gV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNEQgMDMyMzs7OztOOzs7OzFFNDM7CisxRTQzO0xBVElOIFNNQUxMIExFVFRFUiBNIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDZEIDAzMjM7Ozs7Tjs7OzFFNDI7OzFFNDIKKzFFNDQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA0RSAwMzA3Ozs7O047Ozs7MUU0NTsKKzFFNDU7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNkUgMDMwNzs7OztOOzs7MUU0NDs7MUU0NAorMUU0NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDRFIDAzMjM7Ozs7Tjs7OzsxRTQ3OworMUU0NztMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2RSAwMzIzOzs7O047OzsxRTQ2OzsxRTQ2CisxRTQ4O0xBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBMSU5FIEJFTE9XO0x1OzA7TDswMDRFIDAzMzE7Ozs7Tjs7OzsxRTQ5OworMUU0OTtMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIExJTkUgQkVMT1c7TGw7MDtMOzAwNkUgMDMzMTs7OztOOzs7MUU0ODs7MUU0OAorMUU0QTtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMdTswO0w7MDA0RSAwMzJEOzs7O047Ozs7MUU0QjsKKzFFNEI7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBDSVJDVU1GTEVYIEJFTE9XO0xsOzA7TDswMDZFIDAzMkQ7Ozs7Tjs7OzFFNEE7OzFFNEEKKzFFNEM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIFRJTERFIEFORCBBQ1VURTtMdTswO0w7MDBENSAwMzAxOzs7O047Ozs7MUU0RDsKKzFFNEQ7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBUSUxERSBBTkQgQUNVVEU7TGw7MDtMOzAwRjUgMDMwMTs7OztOOzs7MUU0Qzs7MUU0QworMUU0RTtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggVElMREUgQU5EIERJQUVSRVNJUztMdTswO0w7MDBENSAwMzA4Ozs7O047Ozs7MUU0RjsKKzFFNEY7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBUSUxERSBBTkQgRElBRVJFU0lTO0xsOzA7TDswMEY1IDAzMDg7Ozs7Tjs7OzFFNEU7OzFFNEUKKzFFNTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIE1BQ1JPTiBBTkQgR1JBVkU7THU7MDtMOzAxNEMgMDMwMDs7OztOOzs7OzFFNTE7CisxRTUxO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggTUFDUk9OIEFORCBHUkFWRTtMbDswO0w7MDE0RCAwMzAwOzs7O047OzsxRTUwOzsxRTUwCisxRTUyO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBNQUNST04gQU5EIEFDVVRFO0x1OzA7TDswMTRDIDAzMDE7Ozs7Tjs7OzsxRTUzOworMUU1MztMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIE1BQ1JPTiBBTkQgQUNVVEU7TGw7MDtMOzAxNEQgMDMwMTs7OztOOzs7MUU1Mjs7MUU1MgorMUU1NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBQIFdJVEggQUNVVEU7THU7MDtMOzAwNTAgMDMwMTs7OztOOzs7OzFFNTU7CisxRTU1O0xBVElOIFNNQUxMIExFVFRFUiBQIFdJVEggQUNVVEU7TGw7MDtMOzAwNzAgMDMwMTs7OztOOzs7MUU1NDs7MUU1NAorMUU1NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBQIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDUwIDAzMDc7Ozs7Tjs7OzsxRTU3OworMUU1NztMQVRJTiBTTUFMTCBMRVRURVIgUCBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA3MCAwMzA3Ozs7O047OzsxRTU2OzsxRTU2CisxRTU4O0xBVElOIENBUElUQUwgTEVUVEVSIFIgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNTIgMDMwNzs7OztOOzs7OzFFNTk7CisxRTU5O0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDcyIDAzMDc7Ozs7Tjs7OzFFNTg7OzFFNTgKKzFFNUE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA1MiAwMzIzOzs7O047Ozs7MUU1QjsKKzFFNUI7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNzIgMDMyMzs7OztOOzs7MUU1QTs7MUU1QQorMUU1QztMQVRJTiBDQVBJVEFMIExFVFRFUiBSIFdJVEggRE9UIEJFTE9XIEFORCBNQUNST047THU7MDtMOzFFNUEgMDMwNDs7OztOOzs7OzFFNUQ7CisxRTVEO0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggRE9UIEJFTE9XIEFORCBNQUNST047TGw7MDtMOzFFNUIgMDMwNDs7OztOOzs7MUU1Qzs7MUU1QworMUU1RTtMQVRJTiBDQVBJVEFMIExFVFRFUiBSIFdJVEggTElORSBCRUxPVztMdTswO0w7MDA1MiAwMzMxOzs7O047Ozs7MUU1RjsKKzFFNUY7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBMSU5FIEJFTE9XO0xsOzA7TDswMDcyIDAzMzE7Ozs7Tjs7OzFFNUU7OzFFNUUKKzFFNjA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA1MyAwMzA3Ozs7O047Ozs7MUU2MTsKKzFFNjE7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNzMgMDMwNzs7OztOOzs7MUU2MDs7MUU2MAorMUU2MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDUzIDAzMjM7Ozs7Tjs7OzsxRTYzOworMUU2MztMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA3MyAwMzIzOzs7O047OzsxRTYyOzsxRTYyCisxRTY0O0xBVElOIENBUElUQUwgTEVUVEVSIFMgV0lUSCBBQ1VURSBBTkQgRE9UIEFCT1ZFO0x1OzA7TDswMTVBIDAzMDc7Ozs7Tjs7OzsxRTY1OworMUU2NTtMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIEFDVVRFIEFORCBET1QgQUJPVkU7TGw7MDtMOzAxNUIgMDMwNzs7OztOOzs7MUU2NDs7MUU2NAorMUU2NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIFdJVEggQ0FST04gQU5EIERPVCBBQk9WRTtMdTswO0w7MDE2MCAwMzA3Ozs7O047Ozs7MUU2NzsKKzFFNjc7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBDQVJPTiBBTkQgRE9UIEFCT1ZFO0xsOzA7TDswMTYxIDAzMDc7Ozs7Tjs7OzFFNjY7OzFFNjYKKzFFNjg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBXSVRIIERPVCBCRUxPVyBBTkQgRE9UIEFCT1ZFO0x1OzA7TDsxRTYyIDAzMDc7Ozs7Tjs7OzsxRTY5OworMUU2OTtMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIERPVCBCRUxPVyBBTkQgRE9UIEFCT1ZFO0xsOzA7TDsxRTYzIDAzMDc7Ozs7Tjs7OzFFNjg7OzFFNjgKKzFFNkE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA1NCAwMzA3Ozs7O047Ozs7MUU2QjsKKzFFNkI7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNzQgMDMwNzs7OztOOzs7MUU2QTs7MUU2QQorMUU2QztMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDU0IDAzMjM7Ozs7Tjs7OzsxRTZEOworMUU2RDtMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA3NCAwMzIzOzs7O047OzsxRTZDOzsxRTZDCisxRTZFO0xBVElOIENBUElUQUwgTEVUVEVSIFQgV0lUSCBMSU5FIEJFTE9XO0x1OzA7TDswMDU0IDAzMzE7Ozs7Tjs7OzsxRTZGOworMUU2RjtMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIExJTkUgQkVMT1c7TGw7MDtMOzAwNzQgMDMzMTs7OztOOzs7MUU2RTs7MUU2RQorMUU3MDtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMdTswO0w7MDA1NCAwMzJEOzs7O047Ozs7MUU3MTsKKzFFNzE7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBDSVJDVU1GTEVYIEJFTE9XO0xsOzA7TDswMDc0IDAzMkQ7Ozs7Tjs7OzFFNzA7OzFFNzAKKzFFNzI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUyBCRUxPVztMdTswO0w7MDA1NSAwMzI0Ozs7O047Ozs7MUU3MzsKKzFFNzM7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVMgQkVMT1c7TGw7MDtMOzAwNzUgMDMyNDs7OztOOzs7MUU3Mjs7MUU3MgorMUU3NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggVElMREUgQkVMT1c7THU7MDtMOzAwNTUgMDMzMDs7OztOOzs7OzFFNzU7CisxRTc1O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggVElMREUgQkVMT1c7TGw7MDtMOzAwNzUgMDMzMDs7OztOOzs7MUU3NDs7MUU3NAorMUU3NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMdTswO0w7MDA1NSAwMzJEOzs7O047Ozs7MUU3NzsKKzFFNzc7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBDSVJDVU1GTEVYIEJFTE9XO0xsOzA7TDswMDc1IDAzMkQ7Ozs7Tjs7OzFFNzY7OzFFNzYKKzFFNzg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIFRJTERFIEFORCBBQ1VURTtMdTswO0w7MDE2OCAwMzAxOzs7O047Ozs7MUU3OTsKKzFFNzk7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBUSUxERSBBTkQgQUNVVEU7TGw7MDtMOzAxNjkgMDMwMTs7OztOOzs7MUU3ODs7MUU3OAorMUU3QTtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggTUFDUk9OIEFORCBESUFFUkVTSVM7THU7MDtMOzAxNkEgMDMwODs7OztOOzs7OzFFN0I7CisxRTdCO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggTUFDUk9OIEFORCBESUFFUkVTSVM7TGw7MDtMOzAxNkIgMDMwODs7OztOOzs7MUU3QTs7MUU3QQorMUU3QztMQVRJTiBDQVBJVEFMIExFVFRFUiBWIFdJVEggVElMREU7THU7MDtMOzAwNTYgMDMwMzs7OztOOzs7OzFFN0Q7CisxRTdEO0xBVElOIFNNQUxMIExFVFRFUiBWIFdJVEggVElMREU7TGw7MDtMOzAwNzYgMDMwMzs7OztOOzs7MUU3Qzs7MUU3QworMUU3RTtMQVRJTiBDQVBJVEFMIExFVFRFUiBWIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDU2IDAzMjM7Ozs7Tjs7OzsxRTdGOworMUU3RjtMQVRJTiBTTUFMTCBMRVRURVIgViBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA3NiAwMzIzOzs7O047OzsxRTdFOzsxRTdFCisxRTgwO0xBVElOIENBUElUQUwgTEVUVEVSIFcgV0lUSCBHUkFWRTtMdTswO0w7MDA1NyAwMzAwOzs7O047Ozs7MUU4MTsKKzFFODE7TEFUSU4gU01BTEwgTEVUVEVSIFcgV0lUSCBHUkFWRTtMbDswO0w7MDA3NyAwMzAwOzs7O047OzsxRTgwOzsxRTgwCisxRTgyO0xBVElOIENBUElUQUwgTEVUVEVSIFcgV0lUSCBBQ1VURTtMdTswO0w7MDA1NyAwMzAxOzs7O047Ozs7MUU4MzsKKzFFODM7TEFUSU4gU01BTEwgTEVUVEVSIFcgV0lUSCBBQ1VURTtMbDswO0w7MDA3NyAwMzAxOzs7O047OzsxRTgyOzsxRTgyCisxRTg0O0xBVElOIENBUElUQUwgTEVUVEVSIFcgV0lUSCBESUFFUkVTSVM7THU7MDtMOzAwNTcgMDMwODs7OztOOzs7OzFFODU7CisxRTg1O0xBVElOIFNNQUxMIExFVFRFUiBXIFdJVEggRElBRVJFU0lTO0xsOzA7TDswMDc3IDAzMDg7Ozs7Tjs7OzFFODQ7OzFFODQKKzFFODY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVyBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA1NyAwMzA3Ozs7O047Ozs7MUU4NzsKKzFFODc7TEFUSU4gU01BTEwgTEVUVEVSIFcgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNzcgMDMwNzs7OztOOzs7MUU4Njs7MUU4NgorMUU4ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBXIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDU3IDAzMjM7Ozs7Tjs7OzsxRTg5OworMUU4OTtMQVRJTiBTTUFMTCBMRVRURVIgVyBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA3NyAwMzIzOzs7O047OzsxRTg4OzsxRTg4CisxRThBO0xBVElOIENBUElUQUwgTEVUVEVSIFggV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNTggMDMwNzs7OztOOzs7OzFFOEI7CisxRThCO0xBVElOIFNNQUxMIExFVFRFUiBYIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDc4IDAzMDc7Ozs7Tjs7OzFFOEE7OzFFOEEKKzFFOEM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWCBXSVRIIERJQUVSRVNJUztMdTswO0w7MDA1OCAwMzA4Ozs7O047Ozs7MUU4RDsKKzFFOEQ7TEFUSU4gU01BTEwgTEVUVEVSIFggV0lUSCBESUFFUkVTSVM7TGw7MDtMOzAwNzggMDMwODs7OztOOzs7MUU4Qzs7MUU4QworMUU4RTtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDU5IDAzMDc7Ozs7Tjs7OzsxRThGOworMUU4RjtMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA3OSAwMzA3Ozs7O047OzsxRThFOzsxRThFCisxRTkwO0xBVElOIENBUElUQUwgTEVUVEVSIFogV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDVBIDAzMDI7Ozs7Tjs7OzsxRTkxOworMUU5MTtMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwN0EgMDMwMjs7OztOOzs7MUU5MDs7MUU5MAorMUU5MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDVBIDAzMjM7Ozs7Tjs7OzsxRTkzOworMUU5MztMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA3QSAwMzIzOzs7O047OzsxRTkyOzsxRTkyCisxRTk0O0xBVElOIENBUElUQUwgTEVUVEVSIFogV0lUSCBMSU5FIEJFTE9XO0x1OzA7TDswMDVBIDAzMzE7Ozs7Tjs7OzsxRTk1OworMUU5NTtMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIExJTkUgQkVMT1c7TGw7MDtMOzAwN0EgMDMzMTs7OztOOzs7MUU5NDs7MUU5NAorMUU5NjtMQVRJTiBTTUFMTCBMRVRURVIgSCBXSVRIIExJTkUgQkVMT1c7TGw7MDtMOzAwNjggMDMzMTs7OztOOzs7OzsKKzFFOTc7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzAwNzQgMDMwODs7OztOOzs7OzsKKzFFOTg7TEFUSU4gU01BTEwgTEVUVEVSIFcgV0lUSCBSSU5HIEFCT1ZFO0xsOzA7TDswMDc3IDAzMEE7Ozs7Tjs7Ozs7CisxRTk5O0xBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggUklORyBBQk9WRTtMbDswO0w7MDA3OSAwMzBBOzs7O047Ozs7OworMUU5QTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIFJJR0hUIEhBTEYgUklORztMbDswO0w7Ozs7O047Ozs7OworMUU5QjtMQVRJTiBTTUFMTCBMRVRURVIgTE9ORyBTIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMTdGIDAzMDc7Ozs7Tjs7OzFFNjA7OzFFNjAKKzFFQTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA0MSAwMzIzOzs7O047Ozs7MUVBMTsKKzFFQTE7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNjEgMDMyMzs7OztOOzs7MUVBMDs7MUVBMAorMUVBMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggSE9PSyBBQk9WRTtMdTswO0w7MDA0MSAwMzA5Ozs7O047Ozs7MUVBMzsKKzFFQTM7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBIT09LIEFCT1ZFO0xsOzA7TDswMDYxIDAzMDk7Ozs7Tjs7OzFFQTI7OzFFQTIKKzFFQTQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVggQU5EIEFDVVRFO0x1OzA7TDswMEMyIDAzMDE7Ozs7Tjs7OzsxRUE1OworMUVBNTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVggQU5EIEFDVVRFO0xsOzA7TDswMEUyIDAzMDE7Ozs7Tjs7OzFFQTQ7OzFFQTQKKzFFQTY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVggQU5EIEdSQVZFO0x1OzA7TDswMEMyIDAzMDA7Ozs7Tjs7OzsxRUE3OworMUVBNztMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVggQU5EIEdSQVZFO0xsOzA7TDswMEUyIDAzMDA7Ozs7Tjs7OzFFQTY7OzFFQTYKKzFFQTg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVggQU5EIEhPT0sgQUJPVkU7THU7MDtMOzAwQzIgMDMwOTs7OztOOzs7OzFFQTk7CisxRUE5O0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWCBBTkQgSE9PSyBBQk9WRTtMbDswO0w7MDBFMiAwMzA5Ozs7O047OzsxRUE4OzsxRUE4CisxRUFBO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYIEFORCBUSUxERTtMdTswO0w7MDBDMiAwMzAzOzs7O047Ozs7MUVBQjsKKzFFQUI7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYIEFORCBUSUxERTtMbDswO0w7MDBFMiAwMzAzOzs7O047OzsxRUFBOzsxRUFBCisxRUFDO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYIEFORCBET1QgQkVMT1c7THU7MDtMOzAwQzIgMDMyMzs7OztOOzs7OzFFQUQ7CisxRUFEO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWCBBTkQgRE9UIEJFTE9XO0xsOzA7TDswMEUyIDAzMjM7Ozs7Tjs7OzFFQUM7OzFFQUMKKzFFQUU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEJSRVZFIEFORCBBQ1VURTtMdTswO0w7MDEwMiAwMzAxOzs7O047Ozs7MUVBRjsKKzFFQUY7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBCUkVWRSBBTkQgQUNVVEU7TGw7MDtMOzAxMDMgMDMwMTs7OztOOzs7MUVBRTs7MUVBRQorMUVCMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQlJFVkUgQU5EIEdSQVZFO0x1OzA7TDswMTAyIDAzMDA7Ozs7Tjs7OzsxRUIxOworMUVCMTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIEJSRVZFIEFORCBHUkFWRTtMbDswO0w7MDEwMyAwMzAwOzs7O047OzsxRUIwOzsxRUIwCisxRUIyO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBCUkVWRSBBTkQgSE9PSyBBQk9WRTtMdTswO0w7MDEwMiAwMzA5Ozs7O047Ozs7MUVCMzsKKzFFQjM7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBCUkVWRSBBTkQgSE9PSyBBQk9WRTtMbDswO0w7MDEwMyAwMzA5Ozs7O047OzsxRUIyOzsxRUIyCisxRUI0O0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBCUkVWRSBBTkQgVElMREU7THU7MDtMOzAxMDIgMDMwMzs7OztOOzs7OzFFQjU7CisxRUI1O0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQlJFVkUgQU5EIFRJTERFO0xsOzA7TDswMTAzIDAzMDM7Ozs7Tjs7OzFFQjQ7OzFFQjQKKzFFQjY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEJSRVZFIEFORCBET1QgQkVMT1c7THU7MDtMOzAxMDIgMDMyMzs7OztOOzs7OzFFQjc7CisxRUI3O0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQlJFVkUgQU5EIERPVCBCRUxPVztMbDswO0w7MDEwMyAwMzIzOzs7O047OzsxRUI2OzsxRUI2CisxRUI4O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNDUgMDMyMzs7OztOOzs7OzFFQjk7CisxRUI5O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDY1IDAzMjM7Ozs7Tjs7OzFFQjg7OzFFQjgKKzFFQkE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIEhPT0sgQUJPVkU7THU7MDtMOzAwNDUgMDMwOTs7OztOOzs7OzFFQkI7CisxRUJCO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggSE9PSyBBQk9WRTtMbDswO0w7MDA2NSAwMzA5Ozs7O047OzsxRUJBOzsxRUJBCisxRUJDO0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBUSUxERTtMdTswO0w7MDA0NSAwMzAzOzs7O047Ozs7MUVCRDsKKzFFQkQ7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBUSUxERTtMbDswO0w7MDA2NSAwMzAzOzs7O047OzsxRUJDOzsxRUJDCisxRUJFO0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYIEFORCBBQ1VURTtMdTswO0w7MDBDQSAwMzAxOzs7O047Ozs7MUVCRjsKKzFFQkY7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYIEFORCBBQ1VURTtMbDswO0w7MDBFQSAwMzAxOzs7O047OzsxRUJFOzsxRUJFCisxRUMwO0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYIEFORCBHUkFWRTtMdTswO0w7MDBDQSAwMzAwOzs7O047Ozs7MUVDMTsKKzFFQzE7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYIEFORCBHUkFWRTtMbDswO0w7MDBFQSAwMzAwOzs7O047OzsxRUMwOzsxRUMwCisxRUMyO0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYIEFORCBIT09LIEFCT1ZFO0x1OzA7TDswMENBIDAzMDk7Ozs7Tjs7OzsxRUMzOworMUVDMztMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVggQU5EIEhPT0sgQUJPVkU7TGw7MDtMOzAwRUEgMDMwOTs7OztOOzs7MUVDMjs7MUVDMgorMUVDNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBBTkQgVElMREU7THU7MDtMOzAwQ0EgMDMwMzs7OztOOzs7OzFFQzU7CisxRUM1O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBBTkQgVElMREU7TGw7MDtMOzAwRUEgMDMwMzs7OztOOzs7MUVDNDs7MUVDNAorMUVDNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBBTkQgRE9UIEJFTE9XO0x1OzA7TDswMENBIDAzMjM7Ozs7Tjs7OzsxRUM3OworMUVDNztMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVggQU5EIERPVCBCRUxPVztMbDswO0w7MDBFQSAwMzIzOzs7O047OzsxRUM2OzsxRUM2CisxRUM4O0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBIT09LIEFCT1ZFO0x1OzA7TDswMDQ5IDAzMDk7Ozs7Tjs7OzsxRUM5OworMUVDOTtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIEhPT0sgQUJPVkU7TGw7MDtMOzAwNjkgMDMwOTs7OztOOzs7MUVDODs7MUVDOAorMUVDQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDQ5IDAzMjM7Ozs7Tjs7OzsxRUNCOworMUVDQjtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2OSAwMzIzOzs7O047OzsxRUNBOzsxRUNBCisxRUNDO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNEYgMDMyMzs7OztOOzs7OzFFQ0Q7CisxRUNEO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDZGIDAzMjM7Ozs7Tjs7OzFFQ0M7OzFFQ0MKKzFFQ0U7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIEhPT0sgQUJPVkU7THU7MDtMOzAwNEYgMDMwOTs7OztOOzs7OzFFQ0Y7CisxRUNGO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggSE9PSyBBQk9WRTtMbDswO0w7MDA2RiAwMzA5Ozs7O047OzsxRUNFOzsxRUNFCisxRUQwO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYIEFORCBBQ1VURTtMdTswO0w7MDBENCAwMzAxOzs7O047Ozs7MUVEMTsKKzFFRDE7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYIEFORCBBQ1VURTtMbDswO0w7MDBGNCAwMzAxOzs7O047OzsxRUQwOzsxRUQwCisxRUQyO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYIEFORCBHUkFWRTtMdTswO0w7MDBENCAwMzAwOzs7O047Ozs7MUVEMzsKKzFFRDM7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYIEFORCBHUkFWRTtMbDswO0w7MDBGNCAwMzAwOzs7O047OzsxRUQyOzsxRUQyCisxRUQ0O0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYIEFORCBIT09LIEFCT1ZFO0x1OzA7TDswMEQ0IDAzMDk7Ozs7Tjs7OzsxRUQ1OworMUVENTtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVggQU5EIEhPT0sgQUJPVkU7TGw7MDtMOzAwRjQgMDMwOTs7OztOOzs7MUVENDs7MUVENAorMUVENjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWCBBTkQgVElMREU7THU7MDtMOzAwRDQgMDMwMzs7OztOOzs7OzFFRDc7CisxRUQ3O0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWCBBTkQgVElMREU7TGw7MDtMOzAwRjQgMDMwMzs7OztOOzs7MUVENjs7MUVENgorMUVEODtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWCBBTkQgRE9UIEJFTE9XO0x1OzA7TDswMEQ0IDAzMjM7Ozs7Tjs7OzsxRUQ5OworMUVEOTtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVggQU5EIERPVCBCRUxPVztMbDswO0w7MDBGNCAwMzIzOzs7O047OzsxRUQ4OzsxRUQ4CisxRURBO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBIT1JOIEFORCBBQ1VURTtMdTswO0w7MDFBMCAwMzAxOzs7O047Ozs7MUVEQjsKKzFFREI7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBIT1JOIEFORCBBQ1VURTtMbDswO0w7MDFBMSAwMzAxOzs7O047OzsxRURBOzsxRURBCisxRURDO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBIT1JOIEFORCBHUkFWRTtMdTswO0w7MDFBMCAwMzAwOzs7O047Ozs7MUVERDsKKzFFREQ7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBIT1JOIEFORCBHUkFWRTtMbDswO0w7MDFBMSAwMzAwOzs7O047OzsxRURDOzsxRURDCisxRURFO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBIT1JOIEFORCBIT09LIEFCT1ZFO0x1OzA7TDswMUEwIDAzMDk7Ozs7Tjs7OzsxRURGOworMUVERjtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIEhPUk4gQU5EIEhPT0sgQUJPVkU7TGw7MDtMOzAxQTEgMDMwOTs7OztOOzs7MUVERTs7MUVERQorMUVFMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggSE9STiBBTkQgVElMREU7THU7MDtMOzAxQTAgMDMwMzs7OztOOzs7OzFFRTE7CisxRUUxO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggSE9STiBBTkQgVElMREU7TGw7MDtMOzAxQTEgMDMwMzs7OztOOzs7MUVFMDs7MUVFMAorMUVFMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggSE9STiBBTkQgRE9UIEJFTE9XO0x1OzA7TDswMUEwIDAzMjM7Ozs7Tjs7OzsxRUUzOworMUVFMztMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIEhPUk4gQU5EIERPVCBCRUxPVztMbDswO0w7MDFBMSAwMzIzOzs7O047OzsxRUUyOzsxRUUyCisxRUU0O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNTUgMDMyMzs7OztOOzs7OzFFRTU7CisxRUU1O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDc1IDAzMjM7Ozs7Tjs7OzFFRTQ7OzFFRTQKKzFFRTY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEhPT0sgQUJPVkU7THU7MDtMOzAwNTUgMDMwOTs7OztOOzs7OzFFRTc7CisxRUU3O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggSE9PSyBBQk9WRTtMbDswO0w7MDA3NSAwMzA5Ozs7O047OzsxRUU2OzsxRUU2CisxRUU4O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBIT1JOIEFORCBBQ1VURTtMdTswO0w7MDFBRiAwMzAxOzs7O047Ozs7MUVFOTsKKzFFRTk7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBIT1JOIEFORCBBQ1VURTtMbDswO0w7MDFCMCAwMzAxOzs7O047OzsxRUU4OzsxRUU4CisxRUVBO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBIT1JOIEFORCBHUkFWRTtMdTswO0w7MDFBRiAwMzAwOzs7O047Ozs7MUVFQjsKKzFFRUI7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBIT1JOIEFORCBHUkFWRTtMbDswO0w7MDFCMCAwMzAwOzs7O047OzsxRUVBOzsxRUVBCisxRUVDO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBIT1JOIEFORCBIT09LIEFCT1ZFO0x1OzA7TDswMUFGIDAzMDk7Ozs7Tjs7OzsxRUVEOworMUVFRDtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEhPUk4gQU5EIEhPT0sgQUJPVkU7TGw7MDtMOzAxQjAgMDMwOTs7OztOOzs7MUVFQzs7MUVFQworMUVFRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggSE9STiBBTkQgVElMREU7THU7MDtMOzAxQUYgMDMwMzs7OztOOzs7OzFFRUY7CisxRUVGO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggSE9STiBBTkQgVElMREU7TGw7MDtMOzAxQjAgMDMwMzs7OztOOzs7MUVFRTs7MUVFRQorMUVGMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggSE9STiBBTkQgRE9UIEJFTE9XO0x1OzA7TDswMUFGIDAzMjM7Ozs7Tjs7OzsxRUYxOworMUVGMTtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEhPUk4gQU5EIERPVCBCRUxPVztMbDswO0w7MDFCMCAwMzIzOzs7O047OzsxRUYwOzsxRUYwCisxRUYyO0xBVElOIENBUElUQUwgTEVUVEVSIFkgV0lUSCBHUkFWRTtMdTswO0w7MDA1OSAwMzAwOzs7O047Ozs7MUVGMzsKKzFFRjM7TEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBHUkFWRTtMbDswO0w7MDA3OSAwMzAwOzs7O047OzsxRUYyOzsxRUYyCisxRUY0O0xBVElOIENBUElUQUwgTEVUVEVSIFkgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNTkgMDMyMzs7OztOOzs7OzFFRjU7CisxRUY1O0xBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDc5IDAzMjM7Ozs7Tjs7OzFFRjQ7OzFFRjQKKzFFRjY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIEhPT0sgQUJPVkU7THU7MDtMOzAwNTkgMDMwOTs7OztOOzs7OzFFRjc7CisxRUY3O0xBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggSE9PSyBBQk9WRTtMbDswO0w7MDA3OSAwMzA5Ozs7O047OzsxRUY2OzsxRUY2CisxRUY4O0xBVElOIENBUElUQUwgTEVUVEVSIFkgV0lUSCBUSUxERTtMdTswO0w7MDA1OSAwMzAzOzs7O047Ozs7MUVGOTsKKzFFRjk7TEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBUSUxERTtMbDswO0w7MDA3OSAwMzAzOzs7O047OzsxRUY4OzsxRUY4CisxRjAwO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJO0xsOzA7TDswM0IxIDAzMTM7Ozs7Tjs7OzFGMDg7OzFGMDgKKzFGMDE7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUE7TGw7MDtMOzAzQjEgMDMxNDs7OztOOzs7MUYwOTs7MUYwOQorMUYwMjtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgVkFSSUE7TGw7MDtMOzFGMDAgMDMwMDs7OztOOzs7MUYwQTs7MUYwQQorMUYwMztHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgVkFSSUE7TGw7MDtMOzFGMDEgMDMwMDs7OztOOzs7MUYwQjs7MUYwQgorMUYwNDtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgT1hJQTtMbDswO0w7MUYwMCAwMzAxOzs7O047OzsxRjBDOzsxRjBDCisxRjA1O0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBPWElBO0xsOzA7TDsxRjAxIDAzMDE7Ozs7Tjs7OzFGMEQ7OzFGMEQKKzFGMDY7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JO0xsOzA7TDsxRjAwIDAzNDI7Ozs7Tjs7OzFGMEU7OzFGMEUKKzFGMDc7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JO0xsOzA7TDsxRjAxIDAzNDI7Ozs7Tjs7OzFGMEY7OzFGMEYKKzFGMDg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSTtMdTswO0w7MDM5MSAwMzEzOzs7O047Ozs7MUYwMDsKKzFGMDk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQTtMdTswO0w7MDM5MSAwMzE0Ozs7O047Ozs7MUYwMTsKKzFGMEE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgVkFSSUE7THU7MDtMOzFGMDggMDMwMDs7OztOOzs7OzFGMDI7CisxRjBCO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFZBUklBO0x1OzA7TDsxRjA5IDAzMDA7Ozs7Tjs7OzsxRjAzOworMUYwQztHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBPWElBO0x1OzA7TDsxRjA4IDAzMDE7Ozs7Tjs7OzsxRjA0OworMUYwRDtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBPWElBO0x1OzA7TDsxRjA5IDAzMDE7Ozs7Tjs7OzsxRjA1OworMUYwRTtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSTtMdTswO0w7MUYwOCAwMzQyOzs7O047Ozs7MUYwNjsKKzFGMEY7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkk7THU7MDtMOzFGMDkgMDM0Mjs7OztOOzs7OzFGMDc7CisxRjEwO0dSRUVLIFNNQUxMIExFVFRFUiBFUFNJTE9OIFdJVEggUFNJTEk7TGw7MDtMOzAzQjUgMDMxMzs7OztOOzs7MUYxODs7MUYxOAorMUYxMTtHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTiBXSVRIIERBU0lBO0xsOzA7TDswM0I1IDAzMTQ7Ozs7Tjs7OzFGMTk7OzFGMTkKKzFGMTI7R1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT04gV0lUSCBQU0lMSSBBTkQgVkFSSUE7TGw7MDtMOzFGMTAgMDMwMDs7OztOOzs7MUYxQTs7MUYxQQorMUYxMztHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTiBXSVRIIERBU0lBIEFORCBWQVJJQTtMbDswO0w7MUYxMSAwMzAwOzs7O047OzsxRjFCOzsxRjFCCisxRjE0O0dSRUVLIFNNQUxMIExFVFRFUiBFUFNJTE9OIFdJVEggUFNJTEkgQU5EIE9YSUE7TGw7MDtMOzFGMTAgMDMwMTs7OztOOzs7MUYxQzs7MUYxQworMUYxNTtHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTiBXSVRIIERBU0lBIEFORCBPWElBO0xsOzA7TDsxRjExIDAzMDE7Ozs7Tjs7OzFGMUQ7OzFGMUQKKzFGMTg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVBTSUxPTiBXSVRIIFBTSUxJO0x1OzA7TDswMzk1IDAzMTM7Ozs7Tjs7OzsxRjEwOworMUYxOTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OIFdJVEggREFTSUE7THU7MDtMOzAzOTUgMDMxNDs7OztOOzs7OzFGMTE7CisxRjFBO0dSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gV0lUSCBQU0lMSSBBTkQgVkFSSUE7THU7MDtMOzFGMTggMDMwMDs7OztOOzs7OzFGMTI7CisxRjFCO0dSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gV0lUSCBEQVNJQSBBTkQgVkFSSUE7THU7MDtMOzFGMTkgMDMwMDs7OztOOzs7OzFGMTM7CisxRjFDO0dSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gV0lUSCBQU0lMSSBBTkQgT1hJQTtMdTswO0w7MUYxOCAwMzAxOzs7O047Ozs7MUYxNDsKKzFGMUQ7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVBTSUxPTiBXSVRIIERBU0lBIEFORCBPWElBO0x1OzA7TDsxRjE5IDAzMDE7Ozs7Tjs7OzsxRjE1OworMUYyMDtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEk7TGw7MDtMOzAzQjcgMDMxMzs7OztOOzs7MUYyODs7MUYyOAorMUYyMTtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUE7TGw7MDtMOzAzQjcgMDMxNDs7OztOOzs7MUYyOTs7MUYyOQorMUYyMjtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFZBUklBO0xsOzA7TDsxRjIwIDAzMDA7Ozs7Tjs7OzFGMkE7OzFGMkEKKzFGMjM7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBWQVJJQTtMbDswO0w7MUYyMSAwMzAwOzs7O047OzsxRjJCOzsxRjJCCisxRjI0O0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgT1hJQTtMbDswO0w7MUYyMCAwMzAxOzs7O047OzsxRjJDOzsxRjJDCisxRjI1O0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgT1hJQTtMbDswO0w7MUYyMSAwMzAxOzs7O047OzsxRjJEOzsxRjJECisxRjI2O0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkk7TGw7MDtMOzFGMjAgMDM0Mjs7OztOOzs7MUYyRTs7MUYyRQorMUYyNztHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JO0xsOzA7TDsxRjIxIDAzNDI7Ozs7Tjs7OzFGMkY7OzFGMkYKKzFGMjg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFNJTEk7THU7MDtMOzAzOTcgMDMxMzs7OztOOzs7OzFGMjA7CisxRjI5O0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIERBU0lBO0x1OzA7TDswMzk3IDAzMTQ7Ozs7Tjs7OzsxRjIxOworMUYyQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgVkFSSUE7THU7MDtMOzFGMjggMDMwMDs7OztOOzs7OzFGMjI7CisxRjJCO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBWQVJJQTtMdTswO0w7MUYyOSAwMzAwOzs7O047Ozs7MUYyMzsKKzFGMkM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIE9YSUE7THU7MDtMOzFGMjggMDMwMTs7OztOOzs7OzFGMjQ7CisxRjJEO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBPWElBO0x1OzA7TDsxRjI5IDAzMDE7Ozs7Tjs7OzsxRjI1OworMUYyRTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkk7THU7MDtMOzFGMjggMDM0Mjs7OztOOzs7OzFGMjY7CisxRjJGO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSTtMdTswO0w7MUYyOSAwMzQyOzs7O047Ozs7MUYyNzsKKzFGMzA7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBQU0lMSTtMbDswO0w7MDNCOSAwMzEzOzs7O047OzsxRjM4OzsxRjM4CisxRjMxO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggREFTSUE7TGw7MDtMOzAzQjkgMDMxNDs7OztOOzs7MUYzOTs7MUYzOQorMUYzMjtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIFBTSUxJIEFORCBWQVJJQTtMbDswO0w7MUYzMCAwMzAwOzs7O047OzsxRjNBOzsxRjNBCisxRjMzO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggREFTSUEgQU5EIFZBUklBO0xsOzA7TDsxRjMxIDAzMDA7Ozs7Tjs7OzFGM0I7OzFGM0IKKzFGMzQ7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBQU0lMSSBBTkQgT1hJQTtMbDswO0w7MUYzMCAwMzAxOzs7O047OzsxRjNDOzsxRjNDCisxRjM1O0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggREFTSUEgQU5EIE9YSUE7TGw7MDtMOzFGMzEgMDMwMTs7OztOOzs7MUYzRDs7MUYzRAorMUYzNjtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MUYzMCAwMzQyOzs7O047OzsxRjNFOzsxRjNFCisxRjM3O0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JO0xsOzA7TDsxRjMxIDAzNDI7Ozs7Tjs7OzFGM0Y7OzFGM0YKKzFGMzg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIFBTSUxJO0x1OzA7TDswMzk5IDAzMTM7Ozs7Tjs7OzsxRjMwOworMUYzOTtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggREFTSUE7THU7MDtMOzAzOTkgMDMxNDs7OztOOzs7OzFGMzE7CisxRjNBO0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBQU0lMSSBBTkQgVkFSSUE7THU7MDtMOzFGMzggMDMwMDs7OztOOzs7OzFGMzI7CisxRjNCO0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBEQVNJQSBBTkQgVkFSSUE7THU7MDtMOzFGMzkgMDMwMDs7OztOOzs7OzFGMzM7CisxRjNDO0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBQU0lMSSBBTkQgT1hJQTtMdTswO0w7MUYzOCAwMzAxOzs7O047Ozs7MUYzNDsKKzFGM0Q7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIERBU0lBIEFORCBPWElBO0x1OzA7TDsxRjM5IDAzMDE7Ozs7Tjs7OzsxRjM1OworMUYzRTtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JO0x1OzA7TDsxRjM4IDAzNDI7Ozs7Tjs7OzsxRjM2OworMUYzRjtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JO0x1OzA7TDsxRjM5IDAzNDI7Ozs7Tjs7OzsxRjM3OworMUY0MDtHUkVFSyBTTUFMTCBMRVRURVIgT01JQ1JPTiBXSVRIIFBTSUxJO0xsOzA7TDswM0JGIDAzMTM7Ozs7Tjs7OzFGNDg7OzFGNDgKKzFGNDE7R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gV0lUSCBEQVNJQTtMbDswO0w7MDNCRiAwMzE0Ozs7O047OzsxRjQ5OzsxRjQ5CisxRjQyO0dSRUVLIFNNQUxMIExFVFRFUiBPTUlDUk9OIFdJVEggUFNJTEkgQU5EIFZBUklBO0xsOzA7TDsxRjQwIDAzMDA7Ozs7Tjs7OzFGNEE7OzFGNEEKKzFGNDM7R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gV0lUSCBEQVNJQSBBTkQgVkFSSUE7TGw7MDtMOzFGNDEgMDMwMDs7OztOOzs7MUY0Qjs7MUY0QgorMUY0NDtHUkVFSyBTTUFMTCBMRVRURVIgT01JQ1JPTiBXSVRIIFBTSUxJIEFORCBPWElBO0xsOzA7TDsxRjQwIDAzMDE7Ozs7Tjs7OzFGNEM7OzFGNEMKKzFGNDU7R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gV0lUSCBEQVNJQSBBTkQgT1hJQTtMbDswO0w7MUY0MSAwMzAxOzs7O047OzsxRjREOzsxRjRECisxRjQ4O0dSRUVLIENBUElUQUwgTEVUVEVSIE9NSUNST04gV0lUSCBQU0lMSTtMdTswO0w7MDM5RiAwMzEzOzs7O047Ozs7MUY0MDsKKzFGNDk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTiBXSVRIIERBU0lBO0x1OzA7TDswMzlGIDAzMTQ7Ozs7Tjs7OzsxRjQxOworMUY0QTtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OIFdJVEggUFNJTEkgQU5EIFZBUklBO0x1OzA7TDsxRjQ4IDAzMDA7Ozs7Tjs7OzsxRjQyOworMUY0QjtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OIFdJVEggREFTSUEgQU5EIFZBUklBO0x1OzA7TDsxRjQ5IDAzMDA7Ozs7Tjs7OzsxRjQzOworMUY0QztHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OIFdJVEggUFNJTEkgQU5EIE9YSUE7THU7MDtMOzFGNDggMDMwMTs7OztOOzs7OzFGNDQ7CisxRjREO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NSUNST04gV0lUSCBEQVNJQSBBTkQgT1hJQTtMdTswO0w7MUY0OSAwMzAxOzs7O047Ozs7MUY0NTsKKzFGNTA7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBQU0lMSTtMbDswO0w7MDNDNSAwMzEzOzs7O047Ozs7OworMUY1MTtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIERBU0lBO0xsOzA7TDswM0M1IDAzMTQ7Ozs7Tjs7OzFGNTk7OzFGNTkKKzFGNTI7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBQU0lMSSBBTkQgVkFSSUE7TGw7MDtMOzFGNTAgMDMwMDs7OztOOzs7OzsKKzFGNTM7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBEQVNJQSBBTkQgVkFSSUE7TGw7MDtMOzFGNTEgMDMwMDs7OztOOzs7MUY1Qjs7MUY1QgorMUY1NDtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIFBTSUxJIEFORCBPWElBO0xsOzA7TDsxRjUwIDAzMDE7Ozs7Tjs7Ozs7CisxRjU1O0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggREFTSUEgQU5EIE9YSUE7TGw7MDtMOzFGNTEgMDMwMTs7OztOOzs7MUY1RDs7MUY1RAorMUY1NjtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MUY1MCAwMzQyOzs7O047Ozs7OworMUY1NztHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MUY1MSAwMzQyOzs7O047OzsxRjVGOzsxRjVGCisxRjU5O0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gV0lUSCBEQVNJQTtMdTswO0w7MDNBNSAwMzE0Ozs7O047Ozs7MUY1MTsKKzFGNUI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBXSVRIIERBU0lBIEFORCBWQVJJQTtMdTswO0w7MUY1OSAwMzAwOzs7O047Ozs7MUY1MzsKKzFGNUQ7R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBXSVRIIERBU0lBIEFORCBPWElBO0x1OzA7TDsxRjU5IDAzMDE7Ozs7Tjs7OzsxRjU1OworMUY1RjtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JO0x1OzA7TDsxRjU5IDAzNDI7Ozs7Tjs7OzsxRjU3OworMUY2MDtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSTtMbDswO0w7MDNDOSAwMzEzOzs7O047OzsxRjY4OzsxRjY4CisxRjYxO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBO0xsOzA7TDswM0M5IDAzMTQ7Ozs7Tjs7OzFGNjk7OzFGNjkKKzFGNjI7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFZBUklBO0xsOzA7TDsxRjYwIDAzMDA7Ozs7Tjs7OzFGNkE7OzFGNkEKKzFGNjM7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFZBUklBO0xsOzA7TDsxRjYxIDAzMDA7Ozs7Tjs7OzFGNkI7OzFGNkIKKzFGNjQ7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIE9YSUE7TGw7MDtMOzFGNjAgMDMwMTs7OztOOzs7MUY2Qzs7MUY2QworMUY2NTtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgT1hJQTtMbDswO0w7MUY2MSAwMzAxOzs7O047OzsxRjZEOzsxRjZECisxRjY2O0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MUY2MCAwMzQyOzs7O047OzsxRjZFOzsxRjZFCisxRjY3O0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MUY2MSAwMzQyOzs7O047OzsxRjZGOzsxRjZGCisxRjY4O0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEk7THU7MDtMOzAzQTkgMDMxMzs7OztOOzs7OzFGNjA7CisxRjY5O0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUE7THU7MDtMOzAzQTkgMDMxNDs7OztOOzs7OzFGNjE7CisxRjZBO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFZBUklBO0x1OzA7TDsxRjY4IDAzMDA7Ozs7Tjs7OzsxRjYyOworMUY2QjtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBWQVJJQTtMdTswO0w7MUY2OSAwMzAwOzs7O047Ozs7MUY2MzsKKzFGNkM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgT1hJQTtMdTswO0w7MUY2OCAwMzAxOzs7O047Ozs7MUY2NDsKKzFGNkQ7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgT1hJQTtMdTswO0w7MUY2OSAwMzAxOzs7O047Ozs7MUY2NTsKKzFGNkU7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkk7THU7MDtMOzFGNjggMDM0Mjs7OztOOzs7OzFGNjY7CisxRjZGO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JO0x1OzA7TDsxRjY5IDAzNDI7Ozs7Tjs7OzsxRjY3OworMUY3MDtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBWQVJJQTtMbDswO0w7MDNCMSAwMzAwOzs7O047OzsxRkJBOzsxRkJBCisxRjcxO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIE9YSUE7TGw7MDtMOzAzQjEgMDMwMTs7OztOOzs7MUZCQjs7MUZCQgorMUY3MjtHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTiBXSVRIIFZBUklBO0xsOzA7TDswM0I1IDAzMDA7Ozs7Tjs7OzFGQzg7OzFGQzgKKzFGNzM7R1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT04gV0lUSCBPWElBO0xsOzA7TDswM0I1IDAzMDE7Ozs7Tjs7OzFGQzk7OzFGQzkKKzFGNzQ7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFZBUklBO0xsOzA7TDswM0I3IDAzMDA7Ozs7Tjs7OzFGQ0E7OzFGQ0EKKzFGNzU7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIE9YSUE7TGw7MDtMOzAzQjcgMDMwMTs7OztOOzs7MUZDQjs7MUZDQgorMUY3NjtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIFZBUklBO0xsOzA7TDswM0I5IDAzMDA7Ozs7Tjs7OzFGREE7OzFGREEKKzFGNzc7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBPWElBO0xsOzA7TDswM0I5IDAzMDE7Ozs7Tjs7OzFGREI7OzFGREIKKzFGNzg7R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gV0lUSCBWQVJJQTtMbDswO0w7MDNCRiAwMzAwOzs7O047OzsxRkY4OzsxRkY4CisxRjc5O0dSRUVLIFNNQUxMIExFVFRFUiBPTUlDUk9OIFdJVEggT1hJQTtMbDswO0w7MDNCRiAwMzAxOzs7O047OzsxRkY5OzsxRkY5CisxRjdBO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggVkFSSUE7TGw7MDtMOzAzQzUgMDMwMDs7OztOOzs7MUZFQTs7MUZFQQorMUY3QjtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIE9YSUE7TGw7MDtMOzAzQzUgMDMwMTs7OztOOzs7MUZFQjs7MUZFQgorMUY3QztHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBWQVJJQTtMbDswO0w7MDNDOSAwMzAwOzs7O047OzsxRkZBOzsxRkZBCisxRjdEO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIE9YSUE7TGw7MDtMOzAzQzkgMDMwMTs7OztOOzs7MUZGQjs7MUZGQgorMUY4MDtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYwMCAwMzQ1Ozs7O047OzsxRjg4OzsxRjg4CisxRjgxO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjAxIDAzNDU7Ozs7Tjs7OzFGODk7OzFGODkKKzFGODI7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjAyIDAzNDU7Ozs7Tjs7OzFGOEE7OzFGOEEKKzFGODM7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjAzIDAzNDU7Ozs7Tjs7OzFGOEI7OzFGOEIKKzFGODQ7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMDQgMDM0NTs7OztOOzs7MUY4Qzs7MUY4QworMUY4NTtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgT1hJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYwNSAwMzQ1Ozs7O047OzsxRjhEOzsxRjhECisxRjg2O0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYwNiAwMzQ1Ozs7O047OzsxRjhFOzsxRjhFCisxRjg3O0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYwNyAwMzQ1Ozs7O047OzsxRjhGOzsxRjhGCisxRjg4O0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFBST1NHRUdSQU1NRU5JO0x1OzA7TDsxRjA4IDAzNDU7Ozs7Tjs7OzsxRjgwOworMUY4OTtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBQUk9TR0VHUkFNTUVOSTtMdTswO0w7MUYwOSAwMzQ1Ozs7O047Ozs7MUY4MTsKKzFGOEE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgVkFSSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x1OzA7TDsxRjBBIDAzNDU7Ozs7Tjs7OzsxRjgyOworMUY4QjtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBWQVJJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THU7MDtMOzFGMEIgMDM0NTs7OztOOzs7OzFGODM7CisxRjhDO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIE9YSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x1OzA7TDsxRjBDIDAzNDU7Ozs7Tjs7OzsxRjg0OworMUY4RDtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBPWElBIEFORCBQUk9TR0VHUkFNTUVOSTtMdTswO0w7MUYwRCAwMzQ1Ozs7O047Ozs7MUY4NTsKKzFGOEU7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkkgQU5EIFBST1NHRUdSQU1NRU5JO0x1OzA7TDsxRjBFIDAzNDU7Ozs7Tjs7OzsxRjg2OworMUY4RjtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSSBBTkQgUFJPU0dFR1JBTU1FTkk7THU7MDtMOzFGMEYgMDM0NTs7OztOOzs7OzFGODc7CisxRjkwO0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYyMCAwMzQ1Ozs7O047OzsxRjk4OzsxRjk4CisxRjkxO0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYyMSAwMzQ1Ozs7O047OzsxRjk5OzsxRjk5CisxRjkyO0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMjIgMDM0NTs7OztOOzs7MUY5QTs7MUY5QQorMUY5MztHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjIzIDAzNDU7Ozs7Tjs7OzFGOUI7OzFGOUIKKzFGOTQ7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBPWElBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjI0IDAzNDU7Ozs7Tjs7OzFGOUM7OzFGOUMKKzFGOTU7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBPWElBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjI1IDAzNDU7Ozs7Tjs7OzFGOUQ7OzFGOUQKKzFGOTY7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYyNiAwMzQ1Ozs7O047OzsxRjlFOzsxRjlFCisxRjk3O0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMjcgMDM0NTs7OztOOzs7MUY5Rjs7MUY5RgorMUY5ODtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgUFJPU0dFR1JBTU1FTkk7THU7MDtMOzFGMjggMDM0NTs7OztOOzs7OzFGOTA7CisxRjk5O0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBQUk9TR0VHUkFNTUVOSTtMdTswO0w7MUYyOSAwMzQ1Ozs7O047Ozs7MUY5MTsKKzFGOUE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFZBUklBIEFORCBQUk9TR0VHUkFNTUVOSTtMdTswO0w7MUYyQSAwMzQ1Ozs7O047Ozs7MUY5MjsKKzFGOUI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFZBUklBIEFORCBQUk9TR0VHUkFNTUVOSTtMdTswO0w7MUYyQiAwMzQ1Ozs7O047Ozs7MUY5MzsKKzFGOUM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIE9YSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x1OzA7TDsxRjJDIDAzNDU7Ozs7Tjs7OzsxRjk0OworMUY5RDtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgT1hJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THU7MDtMOzFGMkQgMDM0NTs7OztOOzs7OzFGOTU7CisxRjlFO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSSBBTkQgUFJPU0dFR1JBTU1FTkk7THU7MDtMOzFGMkUgMDM0NTs7OztOOzs7OzFGOTY7CisxRjlGO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSSBBTkQgUFJPU0dFR1JBTU1FTkk7THU7MDtMOzFGMkYgMDM0NTs7OztOOzs7OzFGOTc7CisxRkEwO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjYwIDAzNDU7Ozs7Tjs7OzFGQTg7OzFGQTgKKzFGQTE7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGNjEgMDM0NTs7OztOOzs7MUZBOTs7MUZBOQorMUZBMjtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGNjIgMDM0NTs7OztOOzs7MUZBQTs7MUZBQQorMUZBMztHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGNjMgMDM0NTs7OztOOzs7MUZBQjs7MUZBQgorMUZBNDtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgT1hJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUY2NCAwMzQ1Ozs7O047OzsxRkFDOzsxRkFDCisxRkE1O0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBPWElBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjY1IDAzNDU7Ozs7Tjs7OzFGQUQ7OzFGQUQKKzFGQTY7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjY2IDAzNDU7Ozs7Tjs7OzFGQUU7OzFGQUUKKzFGQTc7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjY3IDAzNDU7Ozs7Tjs7OzFGQUY7OzFGQUYKKzFGQTg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgUFJPU0dFR1JBTU1FTkk7THU7MDtMOzFGNjggMDM0NTs7OztOOzs7OzFGQTA7CisxRkE5O0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x1OzA7TDsxRjY5IDAzNDU7Ozs7Tjs7OzsxRkExOworMUZBQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBWQVJJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THU7MDtMOzFGNkEgMDM0NTs7OztOOzs7OzFGQTI7CisxRkFCO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFZBUklBIEFORCBQUk9TR0VHUkFNTUVOSTtMdTswO0w7MUY2QiAwMzQ1Ozs7O047Ozs7MUZBMzsKKzFGQUM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgT1hJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THU7MDtMOzFGNkMgMDM0NTs7OztOOzs7OzFGQTQ7CisxRkFEO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x1OzA7TDsxRjZEIDAzNDU7Ozs7Tjs7OzsxRkE1OworMUZBRTtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSSBBTkQgUFJPU0dFR1JBTU1FTkk7THU7MDtMOzFGNkUgMDM0NTs7OztOOzs7OzFGQTY7CisxRkFGO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JIEFORCBQUk9TR0VHUkFNTUVOSTtMdTswO0w7MUY2RiAwMzQ1Ozs7O047Ozs7MUZBNzsKKzFGQjA7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggVlJBQ0hZO0xsOzA7TDswM0IxIDAzMDY7Ozs7Tjs7OzFGQjg7OzFGQjgKKzFGQjE7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggTUFDUk9OO0xsOzA7TDswM0IxIDAzMDQ7Ozs7Tjs7OzFGQjk7OzFGQjkKKzFGQjI7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGNzAgMDM0NTs7OztOOzs7OzsKKzFGQjM7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggWVBPR0VHUkFNTUVOSTtMbDswO0w7MDNCMSAwMzQ1Ozs7O047OzsxRkJDOzsxRkJDCisxRkI0O0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGNzEgMDM0NTs7OztOOzs7OzsKKzFGQjY7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUEVSSVNQT01FTkk7TGw7MDtMOzAzQjEgMDM0Mjs7OztOOzs7OzsKKzFGQjc7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGQjYgMDM0NTs7OztOOzs7OzsKKzFGQjg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBWUkFDSFk7THU7MDtMOzAzOTEgMDMwNjs7OztOOzs7OzFGQjA7CisxRkI5O0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggTUFDUk9OO0x1OzA7TDswMzkxIDAzMDQ7Ozs7Tjs7OzsxRkIxOworMUZCQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFZBUklBO0x1OzA7TDswMzkxIDAzMDA7Ozs7Tjs7OzsxRjcwOworMUZCQjtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIE9YSUE7THU7MDtMOzAzOTEgMDMwMTs7OztOOzs7OzFGNzE7CisxRkJDO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFJPU0dFR1JBTU1FTkk7THU7MDtMOzAzOTEgMDM0NTs7OztOOzs7OzFGQjM7CisxRkJEO0dSRUVLIEtPUk9OSVM7U2s7MDtMOzxjb21wYXQ+IDAwMjAgMDMxMzs7OztOOzs7OzsKKzFGQkU7R1JFRUsgUFJPU0dFR1JBTU1FTkk7THU7MDtMOzAzQjk7Ozs7Tjs7Ozs7CisxRkJGO0dSRUVLIFBTSUxJO1NrOzA7TDs8Y29tcGF0PiAwMDIwIDAzMTM7Ozs7Tjs7Ozs7CisxRkMwO0dSRUVLIFBFUklTUE9NRU5JO1NrOzA7TDs8Y29tcGF0PiAwMDIwIDAzNDI7Ozs7Tjs7Ozs7CisxRkMxO0dSRUVLIERJQUxZVElLQSBBTkQgUEVSSVNQT01FTkk7U2s7MDtMOzAwQTggMDM0Mjs7OztOOzs7OzsKKzFGQzI7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjc0IDAzNDU7Ozs7Tjs7Ozs7CisxRkMzO0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBZUE9HRUdSQU1NRU5JO0xsOzA7TDswM0I3IDAzNDU7Ozs7Tjs7OzFGQ0M7OzFGQ0MKKzFGQzQ7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGNzUgMDM0NTs7OztOOzs7OzsKKzFGQzY7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBFUklTUE9NRU5JO0xsOzA7TDswM0I3IDAzNDI7Ozs7Tjs7Ozs7CisxRkM3O0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUZDNiAwMzQ1Ozs7O047Ozs7OworMUZDODtHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OIFdJVEggVkFSSUE7THU7MDtMOzAzOTUgMDMwMDs7OztOOzs7OzFGNzI7CisxRkM5O0dSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gV0lUSCBPWElBO0x1OzA7TDswMzk1IDAzMDE7Ozs7Tjs7OzsxRjczOworMUZDQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBWQVJJQTtMdTswO0w7MDM5NyAwMzAwOzs7O047Ozs7MUY3NDsKKzFGQ0I7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggT1hJQTtMdTswO0w7MDM5NyAwMzAxOzs7O047Ozs7MUY3NTsKKzFGQ0M7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFJPU0dFR1JBTU1FTkk7THU7MDtMOzAzOTcgMDM0NTs7OztOOzs7OzFGQzM7CisxRkNEO0dSRUVLIFBTSUxJIEFORCBWQVJJQTtTazswO0w7MUZCRiAwMzAwOzs7O047Ozs7OworMUZDRTtHUkVFSyBQU0lMSSBBTkQgT1hJQTtTazswO0w7MUZCRiAwMzAxOzs7O047Ozs7OworMUZDRjtHUkVFSyBQU0lMSSBBTkQgUEVSSVNQT01FTkk7U2s7MDtMOzFGQkYgMDM0Mjs7OztOOzs7OzsKKzFGRDA7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBWUkFDSFk7TGw7MDtMOzAzQjkgMDMwNjs7OztOOzs7MUZEODs7MUZEOAorMUZEMTtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIE1BQ1JPTjtMbDswO0w7MDNCOSAwMzA0Ozs7O047OzsxRkQ5OzsxRkQ5CisxRkQyO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggRElBTFlUSUtBIEFORCBWQVJJQTtMbDswO0w7MDNDQSAwMzAwOzs7O047Ozs7OworMUZEMztHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERJQUxZVElLQSBBTkQgT1hJQTtMbDswO0w7MDNDQSAwMzAxOzs7O047Ozs7OworMUZENjtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIFBFUklTUE9NRU5JO0xsOzA7TDswM0I5IDAzNDI7Ozs7Tjs7Ozs7CisxRkQ3O0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggRElBTFlUSUtBIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MDNDQSAwMzQyOzs7O047Ozs7OworMUZEODtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggVlJBQ0hZO0x1OzA7TDswMzk5IDAzMDY7Ozs7Tjs7OzsxRkQwOworMUZEOTtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggTUFDUk9OO0x1OzA7TDswMzk5IDAzMDQ7Ozs7Tjs7OzsxRkQxOworMUZEQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggVkFSSUE7THU7MDtMOzAzOTkgMDMwMDs7OztOOzs7OzFGNzY7CisxRkRCO0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBPWElBO0x1OzA7TDswMzk5IDAzMDE7Ozs7Tjs7OzsxRjc3OworMUZERDtHUkVFSyBEQVNJQSBBTkQgVkFSSUE7U2s7MDtMOzFGRkUgMDMwMDs7OztOOzs7OzsKKzFGREU7R1JFRUsgREFTSUEgQU5EIE9YSUE7U2s7MDtMOzFGRkUgMDMwMTs7OztOOzs7OzsKKzFGREY7R1JFRUsgREFTSUEgQU5EIFBFUklTUE9NRU5JO1NrOzA7TDsxRkZFIDAzNDI7Ozs7Tjs7Ozs7CisxRkUwO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggVlJBQ0hZO0xsOzA7TDswM0M1IDAzMDY7Ozs7Tjs7OzFGRTg7OzFGRTgKKzFGRTE7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBNQUNST047TGw7MDtMOzAzQzUgMDMwNDs7OztOOzs7MUZFOTs7MUZFOQorMUZFMjtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIERJQUxZVElLQSBBTkQgVkFSSUE7TGw7MDtMOzAzQ0IgMDMwMDs7OztOOzs7OzsKKzFGRTM7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBESUFMWVRJS0EgQU5EIE9YSUE7TGw7MDtMOzAzQ0IgMDMwMTs7OztOOzs7OzsKKzFGRTQ7R1JFRUsgU01BTEwgTEVUVEVSIFJITyBXSVRIIFBTSUxJO0xsOzA7TDswM0MxIDAzMTM7Ozs7Tjs7Ozs7CisxRkU1O0dSRUVLIFNNQUxMIExFVFRFUiBSSE8gV0lUSCBEQVNJQTtMbDswO0w7MDNDMSAwMzE0Ozs7O047OzsxRkVDOzsxRkVDCisxRkU2O0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggUEVSSVNQT01FTkk7TGw7MDtMOzAzQzUgMDM0Mjs7OztOOzs7OzsKKzFGRTc7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBESUFMWVRJS0EgQU5EIFBFUklTUE9NRU5JO0xsOzA7TDswM0NCIDAzNDI7Ozs7Tjs7Ozs7CisxRkU4O0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gV0lUSCBWUkFDSFk7THU7MDtMOzAzQTUgMDMwNjs7OztOOzs7OzFGRTA7CisxRkU5O0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gV0lUSCBNQUNST047THU7MDtMOzAzQTUgMDMwNDs7OztOOzs7OzFGRTE7CisxRkVBO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gV0lUSCBWQVJJQTtMdTswO0w7MDNBNSAwMzAwOzs7O047Ozs7MUY3QTsKKzFGRUI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBXSVRIIE9YSUE7THU7MDtMOzAzQTUgMDMwMTs7OztOOzs7OzFGN0I7CisxRkVDO0dSRUVLIENBUElUQUwgTEVUVEVSIFJITyBXSVRIIERBU0lBO0x1OzA7TDswM0ExIDAzMTQ7Ozs7Tjs7OzsxRkU1OworMUZFRDtHUkVFSyBESUFMWVRJS0EgQU5EIFZBUklBO1NrOzA7TDswMEE4IDAzMDA7Ozs7Tjs7Ozs7CisxRkVFO0dSRUVLIERJQUxZVElLQSBBTkQgT1hJQTtTazswO0w7MDBBOCAwMzAxOzs7O047Ozs7OworMUZFRjtHUkVFSyBWQVJJQTtTazswO0w7MDA2MDs7OztOOzs7OzsKKzFGRjI7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGN0MgMDM0NTs7OztOOzs7OzsKKzFGRjM7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggWVBPR0VHUkFNTUVOSTtMbDswO0w7MDNDOSAwMzQ1Ozs7O047OzsxRkZDOzsxRkZDCisxRkY0O0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGNzkgMDM0NTs7OztOOzs7OzsKKzFGRjY7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUEVSSVNQT01FTkk7TGw7MDtMOzAzQzkgMDM0Mjs7OztOOzs7OzsKKzFGRjc7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGRjYgMDM0NTs7OztOOzs7OzsKKzFGRjg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTiBXSVRIIFZBUklBO0x1OzA7TDswMzlGIDAzMDA7Ozs7Tjs7OzsxRjc4OworMUZGOTtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OIFdJVEggT1hJQTtMdTswO0w7MDM5RiAwMzAxOzs7O047Ozs7MUY3OTsKKzFGRkE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBWQVJJQTtMdTswO0w7MDNBOSAwMzAwOzs7O047Ozs7MUY3QzsKKzFGRkI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBPWElBO0x1OzA7TDswM0E5IDAzMDE7Ozs7Tjs7OzsxRjdEOworMUZGQztHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBST1NHRUdSQU1NRU5JO0x1OzA7TDswM0E5IDAzNDU7Ozs7Tjs7OzsxRkYzOworMUZGRDtHUkVFSyBPWElBO1NrOzA7TDswMEI0Ozs7O047Ozs7OworMUZGRTtHUkVFSyBEQVNJQTtTazswO0w7PGNvbXBhdD4gMDAyMCAwMzE0Ozs7O047Ozs7OworMjAwMDtFTiBRVUFEO1pzOzA7V1M7MjAwMjs7OztOOzs7OzsKKzIwMDE7RU0gUVVBRDtaczswO1dTOzIwMDM7Ozs7Tjs7Ozs7CisyMDAyO0VOIFNQQUNFO1pzOzA7V1M7PGNvbXBhdD4gMDAyMDs7OztOOzs7OzsKKzIwMDM7RU0gU1BBQ0U7WnM7MDtXUzs8Y29tcGF0PiAwMDIwOzs7O047Ozs7OworMjAwNDtUSFJFRS1QRVItRU0gU1BBQ0U7WnM7MDtXUzs8Y29tcGF0PiAwMDIwOzs7O047Ozs7OworMjAwNTtGT1VSLVBFUi1FTSBTUEFDRTtaczswO1dTOzxjb21wYXQ+IDAwMjA7Ozs7Tjs7Ozs7CisyMDA2O1NJWC1QRVItRU0gU1BBQ0U7WnM7MDtXUzs8Y29tcGF0PiAwMDIwOzs7O047Ozs7OworMjAwNztGSUdVUkUgU1BBQ0U7WnM7MDtDUzs8bm9CcmVhaz4gMDAyMDs7OztOOzs7OzsKKzIwMDg7UFVOQ1RVQVRJT04gU1BBQ0U7WnM7MDtXUzs8Y29tcGF0PiAwMDIwOzs7O047Ozs7OworMjAwOTtUSElOIFNQQUNFO1pzOzA7V1M7PGNvbXBhdD4gMDAyMDs7OztOOzs7OzsKKzIwMEE7SEFJUiBTUEFDRTtaczswO1dTOzxjb21wYXQ+IDAwMjA7Ozs7Tjs7Ozs7CisyMDBCO1pFUk8gV0lEVEggU1BBQ0U7WnM7MDtXUzs7Ozs7Tjs7Ozs7CisyMDBDO1pFUk8gV0lEVEggTk9OLUpPSU5FUjtDZjswO09OOzs7OztOOzs7OzsKKzIwMEQ7WkVSTyBXSURUSCBKT0lORVI7Q2Y7MDtPTjs7Ozs7Tjs7Ozs7CisyMDBFO0xFRlQtVE8tUklHSFQgTUFSSztDZjswO0w7Ozs7O047Ozs7OworMjAwRjtSSUdIVC1UTy1MRUZUIE1BUks7Q2Y7MDtSOzs7OztOOzs7OzsKKzIwMTA7SFlQSEVOO1BkOzA7T047Ozs7O047Ozs7OworMjAxMTtOT04tQlJFQUtJTkcgSFlQSEVOO1BkOzA7T047PG5vQnJlYWs+IDIwMTA7Ozs7Tjs7Ozs7CisyMDEyO0ZJR1VSRSBEQVNIO1BkOzA7T047Ozs7O047Ozs7OworMjAxMztFTiBEQVNIO1BkOzA7T047Ozs7O047Ozs7OworMjAxNDtFTSBEQVNIO1BkOzA7T047Ozs7O047Ozs7OworMjAxNTtIT1JJWk9OVEFMIEJBUjtQZDswO09OOzs7OztOO1FVT1RBVElPTiBEQVNIOzs7OworMjAxNjtET1VCTEUgVkVSVElDQUwgTElORTtQbzswO09OOzs7OztOO0RPVUJMRSBWRVJUSUNBTCBCQVI7Ozs7CisyMDE3O0RPVUJMRSBMT1cgTElORTtQbzswO09OOzxjb21wYXQ+IDAwMjAgMDMzMzs7OztOO1NQQUNJTkcgRE9VQkxFIFVOREVSU0NPUkU7Ozs7CisyMDE4O0xFRlQgU0lOR0xFIFFVT1RBVElPTiBNQVJLO1BzOzA7T047Ozs7O047U0lOR0xFIFRVUk5FRCBDT01NQSBRVU9UQVRJT04gTUFSSzs7OzsKKzIwMTk7UklHSFQgU0lOR0xFIFFVT1RBVElPTiBNQVJLO1BlOzA7T047Ozs7O047U0lOR0xFIENPTU1BIFFVT1RBVElPTiBNQVJLOzs7OworMjAxQTtTSU5HTEUgTE9XLTkgUVVPVEFUSU9OIE1BUks7UHM7MDtPTjs7Ozs7TjtMT1cgU0lOR0xFIENPTU1BIFFVT1RBVElPTiBNQVJLOzs7OworMjAxQjtTSU5HTEUgSElHSC1SRVZFUlNFRC05IFFVT1RBVElPTiBNQVJLO1BzOzA7T047Ozs7O047U0lOR0xFIFJFVkVSU0VEIENPTU1BIFFVT1RBVElPTiBNQVJLOzs7OworMjAxQztMRUZUIERPVUJMRSBRVU9UQVRJT04gTUFSSztQczswO09OOzs7OztOO0RPVUJMRSBUVVJORUQgQ09NTUEgUVVPVEFUSU9OIE1BUks7Ozs7CisyMDFEO1JJR0hUIERPVUJMRSBRVU9UQVRJT04gTUFSSztQZTswO09OOzs7OztOO0RPVUJMRSBDT01NQSBRVU9UQVRJT04gTUFSSzs7OzsKKzIwMUU7RE9VQkxFIExPVy05IFFVT1RBVElPTiBNQVJLO1BzOzA7T047Ozs7O047TE9XIERPVUJMRSBDT01NQSBRVU9UQVRJT04gTUFSSzs7OzsKKzIwMUY7RE9VQkxFIEhJR0gtUkVWRVJTRUQtOSBRVU9UQVRJT04gTUFSSztQczswO09OOzs7OztOO0RPVUJMRSBSRVZFUlNFRCBDT01NQSBRVU9UQVRJT04gTUFSSzs7OzsKKzIwMjA7REFHR0VSO1BvOzA7T047Ozs7O047Ozs7OworMjAyMTtET1VCTEUgREFHR0VSO1BvOzA7T047Ozs7O047Ozs7OworMjAyMjtCVUxMRVQ7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDIzO1RSSUFOR1VMQVIgQlVMTEVUO1BvOzA7T047Ozs7O047Ozs7OworMjAyNDtPTkUgRE9UIExFQURFUjtQbzswO09OOzxjb21wYXQ+IDAwMkU7Ozs7Tjs7Ozs7CisyMDI1O1RXTyBET1QgTEVBREVSO1BvOzA7T047PGNvbXBhdD4gMDAyRSAwMDJFOzs7O047Ozs7OworMjAyNjtIT1JJWk9OVEFMIEVMTElQU0lTO1BvOzA7T047PGNvbXBhdD4gMDAyRSAwMDJFIDAwMkU7Ozs7Tjs7Ozs7CisyMDI3O0hZUEhFTkFUSU9OIFBPSU5UO1BvOzA7T047Ozs7O047Ozs7OworMjAyODtMSU5FIFNFUEFSQVRPUjtabDswO0I7Ozs7O047Ozs7OworMjAyOTtQQVJBR1JBUEggU0VQQVJBVE9SO1pwOzA7Qjs7Ozs7Tjs7Ozs7CisyMDJBO0xFRlQtVE8tUklHSFQgRU1CRURESU5HO0NmOzA7T047Ozs7O047Ozs7OworMjAyQjtSSUdIVC1UTy1MRUZUIEVNQkVERElORztDZjswO09OOzs7OztOOzs7OzsKKzIwMkM7UE9QIERJUkVDVElPTkFMIEZPUk1BVFRJTkc7Q2Y7MDtPTjs7Ozs7Tjs7Ozs7CisyMDJEO0xFRlQtVE8tUklHSFQgT1ZFUlJJREU7Q2Y7MDtPTjs7Ozs7Tjs7Ozs7CisyMDJFO1JJR0hULVRPLUxFRlQgT1ZFUlJJREU7Q2Y7MDtPTjs7Ozs7Tjs7Ozs7CisyMDMwO1BFUiBNSUxMRSBTSUdOO1BvOzA7RVQ7Ozs7O047Ozs7OworMjAzMTtQRVIgVEVOIFRIT1VTQU5EIFNJR047UG87MDtFVDs7Ozs7Tjs7Ozs7CisyMDMyO1BSSU1FO1BvOzA7RVQ7Ozs7O047Ozs7OworMjAzMztET1VCTEUgUFJJTUU7UG87MDtFVDs8Y29tcGF0PiAyMDMyIDIwMzI7Ozs7Tjs7Ozs7CisyMDM0O1RSSVBMRSBQUklNRTtQbzswO0VUOzxjb21wYXQ+IDIwMzIgMjAzMiAyMDMyOzs7O047Ozs7OworMjAzNTtSRVZFUlNFRCBQUklNRTtQbzswO09OOzs7OztOOzs7OzsKKzIwMzY7UkVWRVJTRUQgRE9VQkxFIFBSSU1FO1BvOzA7T047PGNvbXBhdD4gMjAzNSAyMDM1Ozs7O047Ozs7OworMjAzNztSRVZFUlNFRCBUUklQTEUgUFJJTUU7UG87MDtPTjs8Y29tcGF0PiAyMDM1IDIwMzUgMjAzNTs7OztOOzs7OzsKKzIwMzg7Q0FSRVQ7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDM5O1NJTkdMRSBMRUZULVBPSU5USU5HIEFOR0xFIFFVT1RBVElPTiBNQVJLO1BzOzA7T047Ozs7O047TEVGVCBQT0lOVElORyBTSU5HTEUgR1VJTExFTUVUOzs7OworMjAzQTtTSU5HTEUgUklHSFQtUE9JTlRJTkcgQU5HTEUgUVVPVEFUSU9OIE1BUks7UGU7MDtPTjs7Ozs7TjtSSUdIVCBQT0lOVElORyBTSU5HTEUgR1VJTExFTUVUOzs7OworMjAzQjtSRUZFUkVOQ0UgTUFSSztQbzswO09OOzs7OztOOzs7OzsKKzIwM0M7RE9VQkxFIEVYQ0xBTUFUSU9OIE1BUks7UG87MDtPTjs8Y29tcGF0PiAwMDIxIDAwMjE7Ozs7Tjs7Ozs7CisyMDNEO0lOVEVSUk9CQU5HO1BvOzA7T047Ozs7O047Ozs7OworMjAzRTtPVkVSTElORTtQbzswO09OOzxjb21wYXQ+IDAwMjAgMDMwNTs7OztOO1NQQUNJTkcgT1ZFUlNDT1JFOzs7OworMjAzRjtVTkRFUlRJRTtQYzswO09OOzs7OztOOztFbm90aWtvbjs7OworMjA0MDtDSEFSQUNURVIgVElFO1BjOzA7T047Ozs7O047Ozs7OworMjA0MTtDQVJFVCBJTlNFUlRJT04gUE9JTlQ7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDQyO0FTVEVSSVNNO1BvOzA7T047Ozs7O047Ozs7OworMjA0MztIWVBIRU4gQlVMTEVUO1BvOzA7T047Ozs7O047Ozs7OworMjA0NDtGUkFDVElPTiBTTEFTSDtTbTswO09OOzs7OztOOzs7OzsKKzIwNDU7TEVGVCBTUVVBUkUgQlJBQ0tFVCBXSVRIIFFVSUxMO1BzOzA7T047Ozs7O1k7Ozs7OworMjA0NjtSSUdIVCBTUVVBUkUgQlJBQ0tFVCBXSVRIIFFVSUxMO1BlOzA7T047Ozs7O1k7Ozs7OworMjA2QTtJTkhJQklUIFNZTU1FVFJJQyBTV0FQUElORztDZjswO09OOzs7OztOOzs7OzsKKzIwNkI7QUNUSVZBVEUgU1lNTUVUUklDIFNXQVBQSU5HO0NmOzA7T047Ozs7O047Ozs7OworMjA2QztJTkhJQklUIEFSQUJJQyBGT1JNIFNIQVBJTkc7Q2Y7MDtPTjs7Ozs7Tjs7Ozs7CisyMDZEO0FDVElWQVRFIEFSQUJJQyBGT1JNIFNIQVBJTkc7Q2Y7MDtPTjs7Ozs7Tjs7Ozs7CisyMDZFO05BVElPTkFMIERJR0lUIFNIQVBFUztDZjswO09OOzs7OztOOzs7OzsKKzIwNkY7Tk9NSU5BTCBESUdJVCBTSEFQRVM7Q2Y7MDtPTjs7Ozs7Tjs7Ozs7CisyMDcwO1NVUEVSU0NSSVBUIFpFUk87Tm87MDtFTjs8c3VwZXI+IDAwMzA7MDswOzA7TjtTVVBFUlNDUklQVCBESUdJVCBaRVJPOzs7OworMjA3NDtTVVBFUlNDUklQVCBGT1VSO05vOzA7RU47PHN1cGVyPiAwMDM0OzQ7NDs0O047U1VQRVJTQ1JJUFQgRElHSVQgRk9VUjs7OzsKKzIwNzU7U1VQRVJTQ1JJUFQgRklWRTtObzswO0VOOzxzdXBlcj4gMDAzNTs1OzU7NTtOO1NVUEVSU0NSSVBUIERJR0lUIEZJVkU7Ozs7CisyMDc2O1NVUEVSU0NSSVBUIFNJWDtObzswO0VOOzxzdXBlcj4gMDAzNjs2OzY7NjtOO1NVUEVSU0NSSVBUIERJR0lUIFNJWDs7OzsKKzIwNzc7U1VQRVJTQ1JJUFQgU0VWRU47Tm87MDtFTjs8c3VwZXI+IDAwMzc7Nzs3Ozc7TjtTVVBFUlNDUklQVCBESUdJVCBTRVZFTjs7OzsKKzIwNzg7U1VQRVJTQ1JJUFQgRUlHSFQ7Tm87MDtFTjs8c3VwZXI+IDAwMzg7ODs4Ozg7TjtTVVBFUlNDUklQVCBESUdJVCBFSUdIVDs7OzsKKzIwNzk7U1VQRVJTQ1JJUFQgTklORTtObzswO0VOOzxzdXBlcj4gMDAzOTs5Ozk7OTtOO1NVUEVSU0NSSVBUIERJR0lUIE5JTkU7Ozs7CisyMDdBO1NVUEVSU0NSSVBUIFBMVVMgU0lHTjtTbTswO0VUOzxzdXBlcj4gMDAyQjs7OztOOzs7OzsKKzIwN0I7U1VQRVJTQ1JJUFQgTUlOVVM7U207MDtFVDs8c3VwZXI+IDIyMTI7Ozs7TjtTVVBFUlNDUklQVCBIWVBIRU4tTUlOVVM7Ozs7CisyMDdDO1NVUEVSU0NSSVBUIEVRVUFMUyBTSUdOO1NtOzA7T047PHN1cGVyPiAwMDNEOzs7O047Ozs7OworMjA3RDtTVVBFUlNDUklQVCBMRUZUIFBBUkVOVEhFU0lTO1BzOzA7T047PHN1cGVyPiAwMDI4Ozs7O1k7U1VQRVJTQ1JJUFQgT1BFTklORyBQQVJFTlRIRVNJUzs7OzsKKzIwN0U7U1VQRVJTQ1JJUFQgUklHSFQgUEFSRU5USEVTSVM7UGU7MDtPTjs8c3VwZXI+IDAwMjk7Ozs7WTtTVVBFUlNDUklQVCBDTE9TSU5HIFBBUkVOVEhFU0lTOzs7OworMjA3RjtTVVBFUlNDUklQVCBMQVRJTiBTTUFMTCBMRVRURVIgTjtMbDswO09OOzxzdXBlcj4gMDA2RTs7OztOOzs7OzsKKzIwODA7U1VCU0NSSVBUIFpFUk87Tm87MDtFTjs8c3ViPiAwMDMwOzA7MDswO047U1VCU0NSSVBUIERJR0lUIFpFUk87Ozs7CisyMDgxO1NVQlNDUklQVCBPTkU7Tm87MDtFTjs8c3ViPiAwMDMxOzE7MTsxO047U1VCU0NSSVBUIERJR0lUIE9ORTs7OzsKKzIwODI7U1VCU0NSSVBUIFRXTztObzswO0VOOzxzdWI+IDAwMzI7MjsyOzI7TjtTVUJTQ1JJUFQgRElHSVQgVFdPOzs7OworMjA4MztTVUJTQ1JJUFQgVEhSRUU7Tm87MDtFTjs8c3ViPiAwMDMzOzM7MzszO047U1VCU0NSSVBUIERJR0lUIFRIUkVFOzs7OworMjA4NDtTVUJTQ1JJUFQgRk9VUjtObzswO0VOOzxzdWI+IDAwMzQ7NDs0OzQ7TjtTVUJTQ1JJUFQgRElHSVQgRk9VUjs7OzsKKzIwODU7U1VCU0NSSVBUIEZJVkU7Tm87MDtFTjs8c3ViPiAwMDM1OzU7NTs1O047U1VCU0NSSVBUIERJR0lUIEZJVkU7Ozs7CisyMDg2O1NVQlNDUklQVCBTSVg7Tm87MDtFTjs8c3ViPiAwMDM2OzY7Njs2O047U1VCU0NSSVBUIERJR0lUIFNJWDs7OzsKKzIwODc7U1VCU0NSSVBUIFNFVkVOO05vOzA7RU47PHN1Yj4gMDAzNzs3Ozc7NztOO1NVQlNDUklQVCBESUdJVCBTRVZFTjs7OzsKKzIwODg7U1VCU0NSSVBUIEVJR0hUO05vOzA7RU47PHN1Yj4gMDAzODs4Ozg7ODtOO1NVQlNDUklQVCBESUdJVCBFSUdIVDs7OzsKKzIwODk7U1VCU0NSSVBUIE5JTkU7Tm87MDtFTjs8c3ViPiAwMDM5Ozk7OTs5O047U1VCU0NSSVBUIERJR0lUIE5JTkU7Ozs7CisyMDhBO1NVQlNDUklQVCBQTFVTIFNJR047U207MDtFVDs8c3ViPiAwMDJCOzs7O047Ozs7OworMjA4QjtTVUJTQ1JJUFQgTUlOVVM7U207MDtFVDs8c3ViPiAyMjEyOzs7O047U1VCU0NSSVBUIEhZUEhFTi1NSU5VUzs7OzsKKzIwOEM7U1VCU0NSSVBUIEVRVUFMUyBTSUdOO1NtOzA7T047PHN1Yj4gMDAzRDs7OztOOzs7OzsKKzIwOEQ7U1VCU0NSSVBUIExFRlQgUEFSRU5USEVTSVM7UHM7MDtPTjs8c3ViPiAwMDI4Ozs7O1k7U1VCU0NSSVBUIE9QRU5JTkcgUEFSRU5USEVTSVM7Ozs7CisyMDhFO1NVQlNDUklQVCBSSUdIVCBQQVJFTlRIRVNJUztQZTswO09OOzxzdWI+IDAwMjk7Ozs7WTtTVUJTQ1JJUFQgQ0xPU0lORyBQQVJFTlRIRVNJUzs7OzsKKzIwQTA7RVVSTy1DVVJSRU5DWSBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBBMTtDT0xPTiBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBBMjtDUlVaRUlSTyBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBBMztGUkVOQ0ggRlJBTkMgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQTQ7TElSQSBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBBNTtNSUxMIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEE2O05BSVJBIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEE3O1BFU0VUQSBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBBODtSVVBFRSBTSUdOO1NjOzA7RVQ7PGNvbXBhdD4gMDA1MiAwMDczOzs7O047Ozs7OworMjBBOTtXT04gU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQUE7TkVXIFNIRVFFTCBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBBQjtET05HIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEFDO0VVUk8gU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwRDA7Q09NQklOSU5HIExFRlQgSEFSUE9PTiBBQk9WRTtNbjsyMzA7TDs7Ozs7TjtOT04tU1BBQ0lORyBMRUZUIEhBUlBPT04gQUJPVkU7Ozs7CisyMEQxO0NPTUJJTklORyBSSUdIVCBIQVJQT09OIEFCT1ZFO01uOzIzMDtMOzs7OztOO05PTi1TUEFDSU5HIFJJR0hUIEhBUlBPT04gQUJPVkU7Ozs7CisyMEQyO0NPTUJJTklORyBMT05HIFZFUlRJQ0FMIExJTkUgT1ZFUkxBWTtNbjsxO0w7Ozs7O047Tk9OLVNQQUNJTkcgTE9ORyBWRVJUSUNBTCBCQVIgT1ZFUkxBWTs7OzsKKzIwRDM7Q09NQklOSU5HIFNIT1JUIFZFUlRJQ0FMIExJTkUgT1ZFUkxBWTtNbjsxO0w7Ozs7O047Tk9OLVNQQUNJTkcgU0hPUlQgVkVSVElDQUwgQkFSIE9WRVJMQVk7Ozs7CisyMEQ0O0NPTUJJTklORyBBTlRJQ0xPQ0tXSVNFIEFSUk9XIEFCT1ZFO01uOzIzMDtMOzs7OztOO05PTi1TUEFDSU5HIEFOVElDTE9DS1dJU0UgQVJST1cgQUJPVkU7Ozs7CisyMEQ1O0NPTUJJTklORyBDTE9DS1dJU0UgQVJST1cgQUJPVkU7TW47MjMwO0w7Ozs7O047Tk9OLVNQQUNJTkcgQ0xPQ0tXSVNFIEFSUk9XIEFCT1ZFOzs7OworMjBENjtDT01CSU5JTkcgTEVGVCBBUlJPVyBBQk9WRTtNbjsyMzA7TDs7Ozs7TjtOT04tU1BBQ0lORyBMRUZUIEFSUk9XIEFCT1ZFOzs7OworMjBENztDT01CSU5JTkcgUklHSFQgQVJST1cgQUJPVkU7TW47MjMwO0w7Ozs7O047Tk9OLVNQQUNJTkcgUklHSFQgQVJST1cgQUJPVkU7Ozs7CisyMEQ4O0NPTUJJTklORyBSSU5HIE9WRVJMQVk7TW47MTtMOzs7OztOO05PTi1TUEFDSU5HIFJJTkcgT1ZFUkxBWTs7OzsKKzIwRDk7Q09NQklOSU5HIENMT0NLV0lTRSBSSU5HIE9WRVJMQVk7TW47MTtMOzs7OztOO05PTi1TUEFDSU5HIENMT0NLV0lTRSBSSU5HIE9WRVJMQVk7Ozs7CisyMERBO0NPTUJJTklORyBBTlRJQ0xPQ0tXSVNFIFJJTkcgT1ZFUkxBWTtNbjsxO0w7Ozs7O047Tk9OLVNQQUNJTkcgQU5USUNMT0NLV0lTRSBSSU5HIE9WRVJMQVk7Ozs7CisyMERCO0NPTUJJTklORyBUSFJFRSBET1RTIEFCT1ZFO01uOzIzMDtMOzs7OztOO05PTi1TUEFDSU5HIFRIUkVFIERPVFMgQUJPVkU7Ozs7CisyMERDO0NPTUJJTklORyBGT1VSIERPVFMgQUJPVkU7TW47MjMwO0w7Ozs7O047Tk9OLVNQQUNJTkcgRk9VUiBET1RTIEFCT1ZFOzs7OworMjBERDtDT01CSU5JTkcgRU5DTE9TSU5HIENJUkNMRTtNZTswO0w7Ozs7O047RU5DTE9TSU5HIENJUkNMRTs7OzsKKzIwREU7Q09NQklOSU5HIEVOQ0xPU0lORyBTUVVBUkU7TWU7MDtMOzs7OztOO0VOQ0xPU0lORyBTUVVBUkU7Ozs7CisyMERGO0NPTUJJTklORyBFTkNMT1NJTkcgRElBTU9ORDtNZTswO0w7Ozs7O047RU5DTE9TSU5HIERJQU1PTkQ7Ozs7CisyMEUwO0NPTUJJTklORyBFTkNMT1NJTkcgQ0lSQ0xFIEJBQ0tTTEFTSDtNZTswO0w7Ozs7O047RU5DTE9TSU5HIENJUkNMRSBTTEFTSDs7OzsKKzIwRTE7Q09NQklOSU5HIExFRlQgUklHSFQgQVJST1cgQUJPVkU7TW47MTtMOzs7OztOO05PTi1TUEFDSU5HIExFRlQgUklHSFQgQVJST1cgQUJPVkU7Ozs7CisyMTAwO0FDQ09VTlQgT0Y7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMTAxO0FERFJFU1NFRCBUTyBUSEUgU1VCSkVDVDtTbzswO09OOzs7OztOOzs7OzsKKzIxMDI7RE9VQkxFLVNUUlVDSyBDQVBJVEFMIEM7THU7MDtPTjs8Zm9udD4gMDA0Mzs7OztOO0RPVUJMRS1TVFJVQ0sgQzs7OzsKKzIxMDM7REVHUkVFIENFTFNJVVM7U287MDtPTjs8Y29tcGF0PiAwMEIwIDAwNDM7Ozs7TjtERUdSRUVTIENFTlRJR1JBREU7Ozs7CisyMTA0O0NFTlRSRSBMSU5FIFNZTUJPTDtTbzswO09OOzs7OztOO0MgTCBTWU1CT0w7Ozs7CisyMTA1O0NBUkUgT0Y7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMTA2O0NBREEgVU5BO1NvOzA7T047Ozs7O047Ozs7OworMjEwNztFVUxFUiBDT05TVEFOVDtMdTswO09OOzxjb21wYXQ+IDAxOTA7Ozs7TjtFVUxFUlM7Ozs7CisyMTA4O1NDUlVQTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMTA5O0RFR1JFRSBGQUhSRU5IRUlUO1NvOzA7T047PGNvbXBhdD4gMDBCMCAwMDQ2Ozs7O047REVHUkVFUyBGQUhSRU5IRUlUOzs7OworMjEwQTtTQ1JJUFQgU01BTEwgRztMbDswO09OOzxmb250PiAwMDY3Ozs7O047Ozs7OworMjEwQjtTQ1JJUFQgQ0FQSVRBTCBIO0x1OzA7T047PGZvbnQ+IDAwNDg7Ozs7TjtTQ1JJUFQgSDs7OzsKKzIxMEM7QkxBQ0stTEVUVEVSIENBUElUQUwgSDtMdTswO09OOzxmb250PiAwMDQ4Ozs7O047QkxBQ0stTEVUVEVSIEg7Ozs7CisyMTBEO0RPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBIO0x1OzA7T047PGZvbnQ+IDAwNDg7Ozs7TjtET1VCTEUtU1RSVUNLIEg7Ozs7CisyMTBFO1BMQU5DSyBDT05TVEFOVDtMbDswO09OOzxmb250PiAwMDY4Ozs7O047Ozs7OworMjEwRjtQTEFOQ0sgQ09OU1RBTlQgT1ZFUiBUV08gUEk7TGw7MDtPTjs8Zm9udD4gMDEyNzs7OztOO1BMQU5DSyBDT05TVEFOVCBPVkVSIDIgUEk7Ozs7CisyMTEwO1NDUklQVCBDQVBJVEFMIEk7THU7MDtPTjs8Zm9udD4gMDA0OTs7OztOO1NDUklQVCBJOzs7OworMjExMTtCTEFDSy1MRVRURVIgQ0FQSVRBTCBJO0x1OzA7T047PGZvbnQ+IDAwNDk7Ozs7TjtCTEFDSy1MRVRURVIgSTs7OzsKKzIxMTI7U0NSSVBUIENBUElUQUwgTDtMdTswO09OOzxmb250PiAwMDRDOzs7O047U0NSSVBUIEw7Ozs7CisyMTEzO1NDUklQVCBTTUFMTCBMO0xsOzA7T047PGZvbnQ+IDAwNkM7Ozs7Tjs7Ozs7CisyMTE0O0wgQiBCQVIgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjExNTtET1VCTEUtU1RSVUNLIENBUElUQUwgTjtMdTswO09OOzxmb250PiAwMDRFOzs7O047RE9VQkxFLVNUUlVDSyBOOzs7OworMjExNjtOVU1FUk8gU0lHTjtTbzswO09OOzxjb21wYXQ+IDAwNEUgMDA2Rjs7OztOO05VTUVSTzs7OzsKKzIxMTc7U09VTkQgUkVDT1JESU5HIENPUFlSSUdIVDtTbzswO09OOzs7OztOOzs7OzsKKzIxMTg7U0NSSVBUIENBUElUQUwgUDtMdTswO09OOzxmb250PiAwMDUwOzs7O047U0NSSVBUIFA7Ozs7CisyMTE5O0RPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBQO0x1OzA7T047PGZvbnQ+IDAwNTA7Ozs7TjtET1VCTEUtU1RSVUNLIFA7Ozs7CisyMTFBO0RPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBRO0x1OzA7T047PGZvbnQ+IDAwNTE7Ozs7TjtET1VCTEUtU1RSVUNLIFE7Ozs7CisyMTFCO1NDUklQVCBDQVBJVEFMIFI7THU7MDtPTjs8Zm9udD4gMDA1Mjs7OztOO1NDUklQVCBSOzs7OworMjExQztCTEFDSy1MRVRURVIgQ0FQSVRBTCBSO0x1OzA7T047PGZvbnQ+IDAwNTI7Ozs7TjtCTEFDSy1MRVRURVIgUjs7OzsKKzIxMUQ7RE9VQkxFLVNUUlVDSyBDQVBJVEFMIFI7THU7MDtPTjs8Zm9udD4gMDA1Mjs7OztOO0RPVUJMRS1TVFJVQ0sgUjs7OzsKKzIxMUU7UFJFU0NSSVBUSU9OIFRBS0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMTFGO1JFU1BPTlNFO1NvOzA7T047Ozs7O047Ozs7OworMjEyMDtTRVJWSUNFIE1BUks7U287MDtPTjs8c3VwZXI+IDAwNTMgMDA0RDs7OztOOzs7OzsKKzIxMjE7VEVMRVBIT05FIFNJR047U287MDtPTjs8c3VwZXI+IDAwNTQgMDA0NSAwMDRDOzs7O047VCBFIEwgU1lNQk9MOzs7OworMjEyMjtUUkFERSBNQVJLIFNJR047U287MDtPTjs8c3VwZXI+IDAwNTQgMDA0RDs7OztOO1RSQURFTUFSSzs7OzsKKzIxMjM7VkVSU0lDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMTI0O0RPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBaO0x1OzA7T047PGZvbnQ+IDAwNUE7Ozs7TjtET1VCTEUtU1RSVUNLIFo7Ozs7CisyMTI1O09VTkNFIFNJR047U287MDtPTjs7Ozs7TjtPVU5DRTs7OzsKKzIxMjY7T0hNIFNJR047THU7MDtPTjswM0E5Ozs7O047T0hNOzs7OworMjEyNztJTlZFUlRFRCBPSE0gU0lHTjtTbzswO09OOzs7OztOO01ITzs7OzsKKzIxMjg7QkxBQ0stTEVUVEVSIENBUElUQUwgWjtMdTswO09OOzxmb250PiAwMDVBOzs7O047QkxBQ0stTEVUVEVSIFo7Ozs7CisyMTI5O1RVUk5FRCBHUkVFSyBTTUFMTCBMRVRURVIgSU9UQTtTbzswO09OOzs7OztOOzs7OzsKKzIxMkE7S0VMVklOIFNJR047THU7MDtPTjswMDRCOzs7O047REVHUkVFUyBLRUxWSU47Ozs7CisyMTJCO0FOR1NUUk9NIFNJR047THU7MDtPTjswMEM1Ozs7O047QU5HU1RST00gVU5JVDs7OzsKKzIxMkM7U0NSSVBUIENBUElUQUwgQjtMdTswO09OOzxmb250PiAwMDQyOzs7O047U0NSSVBUIEI7Ozs7CisyMTJEO0JMQUNLLUxFVFRFUiBDQVBJVEFMIEM7THU7MDtPTjs8Zm9udD4gMDA0Mzs7OztOO0JMQUNLLUxFVFRFUiBDOzs7OworMjEyRTtFU1RJTUFURUQgU1lNQk9MO0xsOzA7T047Ozs7O047Ozs7OworMjEyRjtTQ1JJUFQgU01BTEwgRTtMbDswO09OOzxmb250PiAwMDY1Ozs7O047Ozs7OworMjEzMDtTQ1JJUFQgQ0FQSVRBTCBFO0x1OzA7T047PGZvbnQ+IDAwNDU7Ozs7TjtTQ1JJUFQgRTs7OzsKKzIxMzE7U0NSSVBUIENBUElUQUwgRjtMdTswO09OOzxmb250PiAwMDQ2Ozs7O047U0NSSVBUIEY7Ozs7CisyMTMyO1RVUk5FRCBDQVBJVEFMIEY7U287MDtPTjs7Ozs7TjtUVVJORUQgRjs7OzsKKzIxMzM7U0NSSVBUIENBUElUQUwgTTtMdTswO09OOzxmb250PiAwMDREOzs7O047U0NSSVBUIE07Ozs7CisyMTM0O1NDUklQVCBTTUFMTCBPO0xsOzA7T047PGZvbnQ+IDAwNkY7Ozs7Tjs7Ozs7CisyMTM1O0FMRUYgU1lNQk9MO0xvOzA7T047PGNvbXBhdD4gMDVEMDs7OztOO0ZJUlNUIFRSQU5TRklOSVRFIENBUkRJTkFMOzs7OworMjEzNjtCRVQgU1lNQk9MO0xvOzA7T047PGNvbXBhdD4gMDVEMTs7OztOO1NFQ09ORCBUUkFOU0ZJTklURSBDQVJESU5BTDs7OzsKKzIxMzc7R0lNRUwgU1lNQk9MO0xvOzA7T047PGNvbXBhdD4gMDVEMjs7OztOO1RISVJEIFRSQU5TRklOSVRFIENBUkRJTkFMOzs7OworMjEzODtEQUxFVCBTWU1CT0w7TG87MDtPTjs8Y29tcGF0PiAwNUQzOzs7O047Rk9VUlRIIFRSQU5TRklOSVRFIENBUkRJTkFMOzs7OworMjE1MztWVUxHQVIgRlJBQ1RJT04gT05FIFRISVJEO05vOzA7T047PGZyYWN0aW9uPiAwMDMxIDIwNDQgMDAzMzs7OzEvMztOO0ZSQUNUSU9OIE9ORSBUSElSRDs7OzsKKzIxNTQ7VlVMR0FSIEZSQUNUSU9OIFRXTyBUSElSRFM7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzIgMjA0NCAwMDMzOzs7Mi8zO047RlJBQ1RJT04gVFdPIFRISVJEUzs7OzsKKzIxNTU7VlVMR0FSIEZSQUNUSU9OIE9ORSBGSUZUSDtObzswO09OOzxmcmFjdGlvbj4gMDAzMSAyMDQ0IDAwMzU7OzsxLzU7TjtGUkFDVElPTiBPTkUgRklGVEg7Ozs7CisyMTU2O1ZVTEdBUiBGUkFDVElPTiBUV08gRklGVEhTO05vOzA7T047PGZyYWN0aW9uPiAwMDMyIDIwNDQgMDAzNTs7OzIvNTtOO0ZSQUNUSU9OIFRXTyBGSUZUSFM7Ozs7CisyMTU3O1ZVTEdBUiBGUkFDVElPTiBUSFJFRSBGSUZUSFM7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzMgMjA0NCAwMDM1Ozs7My81O047RlJBQ1RJT04gVEhSRUUgRklGVEhTOzs7OworMjE1ODtWVUxHQVIgRlJBQ1RJT04gRk9VUiBGSUZUSFM7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzQgMjA0NCAwMDM1Ozs7NC81O047RlJBQ1RJT04gRk9VUiBGSUZUSFM7Ozs7CisyMTU5O1ZVTEdBUiBGUkFDVElPTiBPTkUgU0lYVEg7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzEgMjA0NCAwMDM2Ozs7MS82O047RlJBQ1RJT04gT05FIFNJWFRIOzs7OworMjE1QTtWVUxHQVIgRlJBQ1RJT04gRklWRSBTSVhUSFM7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzUgMjA0NCAwMDM2Ozs7NS82O047RlJBQ1RJT04gRklWRSBTSVhUSFM7Ozs7CisyMTVCO1ZVTEdBUiBGUkFDVElPTiBPTkUgRUlHSFRIO05vOzA7T047PGZyYWN0aW9uPiAwMDMxIDIwNDQgMDAzODs7OzEvODtOO0ZSQUNUSU9OIE9ORSBFSUdIVEg7Ozs7CisyMTVDO1ZVTEdBUiBGUkFDVElPTiBUSFJFRSBFSUdIVEhTO05vOzA7T047PGZyYWN0aW9uPiAwMDMzIDIwNDQgMDAzODs7OzMvODtOO0ZSQUNUSU9OIFRIUkVFIEVJR0hUSFM7Ozs7CisyMTVEO1ZVTEdBUiBGUkFDVElPTiBGSVZFIEVJR0hUSFM7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzUgMjA0NCAwMDM4Ozs7NS84O047RlJBQ1RJT04gRklWRSBFSUdIVEhTOzs7OworMjE1RTtWVUxHQVIgRlJBQ1RJT04gU0VWRU4gRUlHSFRIUztObzswO09OOzxmcmFjdGlvbj4gMDAzNyAyMDQ0IDAwMzg7Ozs3Lzg7TjtGUkFDVElPTiBTRVZFTiBFSUdIVEhTOzs7OworMjE1RjtGUkFDVElPTiBOVU1FUkFUT1IgT05FO05vOzA7T047PGZyYWN0aW9uPiAwMDMxIDIwNDQ7OzsxO047Ozs7OworMjE2MDtST01BTiBOVU1FUkFMIE9ORTtObDswO0w7PGNvbXBhdD4gMDA0OTs7OzE7Tjs7OzsyMTcwOworMjE2MTtST01BTiBOVU1FUkFMIFRXTztObDswO0w7PGNvbXBhdD4gMDA0OSAwMDQ5Ozs7MjtOOzs7OzIxNzE7CisyMTYyO1JPTUFOIE5VTUVSQUwgVEhSRUU7Tmw7MDtMOzxjb21wYXQ+IDAwNDkgMDA0OSAwMDQ5Ozs7MztOOzs7OzIxNzI7CisyMTYzO1JPTUFOIE5VTUVSQUwgRk9VUjtObDswO0w7PGNvbXBhdD4gMDA0OSAwMDU2Ozs7NDtOOzs7OzIxNzM7CisyMTY0O1JPTUFOIE5VTUVSQUwgRklWRTtObDswO0w7PGNvbXBhdD4gMDA1Njs7OzU7Tjs7OzsyMTc0OworMjE2NTtST01BTiBOVU1FUkFMIFNJWDtObDswO0w7PGNvbXBhdD4gMDA1NiAwMDQ5Ozs7NjtOOzs7OzIxNzU7CisyMTY2O1JPTUFOIE5VTUVSQUwgU0VWRU47Tmw7MDtMOzxjb21wYXQ+IDAwNTYgMDA0OSAwMDQ5Ozs7NztOOzs7OzIxNzY7CisyMTY3O1JPTUFOIE5VTUVSQUwgRUlHSFQ7Tmw7MDtMOzxjb21wYXQ+IDAwNTYgMDA0OSAwMDQ5IDAwNDk7Ozs4O047Ozs7MjE3NzsKKzIxNjg7Uk9NQU4gTlVNRVJBTCBOSU5FO05sOzA7TDs8Y29tcGF0PiAwMDQ5IDAwNTg7Ozs5O047Ozs7MjE3ODsKKzIxNjk7Uk9NQU4gTlVNRVJBTCBURU47Tmw7MDtMOzxjb21wYXQ+IDAwNTg7OzsxMDtOOzs7OzIxNzk7CisyMTZBO1JPTUFOIE5VTUVSQUwgRUxFVkVOO05sOzA7TDs8Y29tcGF0PiAwMDU4IDAwNDk7OzsxMTtOOzs7OzIxN0E7CisyMTZCO1JPTUFOIE5VTUVSQUwgVFdFTFZFO05sOzA7TDs8Y29tcGF0PiAwMDU4IDAwNDkgMDA0OTs7OzEyO047Ozs7MjE3QjsKKzIxNkM7Uk9NQU4gTlVNRVJBTCBGSUZUWTtObDswO0w7PGNvbXBhdD4gMDA0Qzs7OzUwO047Ozs7MjE3QzsKKzIxNkQ7Uk9NQU4gTlVNRVJBTCBPTkUgSFVORFJFRDtObDswO0w7PGNvbXBhdD4gMDA0Mzs7OzEwMDtOOzs7OzIxN0Q7CisyMTZFO1JPTUFOIE5VTUVSQUwgRklWRSBIVU5EUkVEO05sOzA7TDs8Y29tcGF0PiAwMDQ0Ozs7NTAwO047Ozs7MjE3RTsKKzIxNkY7Uk9NQU4gTlVNRVJBTCBPTkUgVEhPVVNBTkQ7Tmw7MDtMOzxjb21wYXQ+IDAwNEQ7OzsxMDAwO047Ozs7MjE3RjsKKzIxNzA7U01BTEwgUk9NQU4gTlVNRVJBTCBPTkU7Tmw7MDtMOzxjb21wYXQ+IDAwNjk7OzsxO047OzsyMTYwOzsyMTYwCisyMTcxO1NNQUxMIFJPTUFOIE5VTUVSQUwgVFdPO05sOzA7TDs8Y29tcGF0PiAwMDY5IDAwNjk7OzsyO047OzsyMTYxOzsyMTYxCisyMTcyO1NNQUxMIFJPTUFOIE5VTUVSQUwgVEhSRUU7Tmw7MDtMOzxjb21wYXQ+IDAwNjkgMDA2OSAwMDY5Ozs7MztOOzs7MjE2Mjs7MjE2MgorMjE3MztTTUFMTCBST01BTiBOVU1FUkFMIEZPVVI7Tmw7MDtMOzxjb21wYXQ+IDAwNjkgMDA3Njs7OzQ7Tjs7OzIxNjM7OzIxNjMKKzIxNzQ7U01BTEwgUk9NQU4gTlVNRVJBTCBGSVZFO05sOzA7TDs8Y29tcGF0PiAwMDc2Ozs7NTtOOzs7MjE2NDs7MjE2NAorMjE3NTtTTUFMTCBST01BTiBOVU1FUkFMIFNJWDtObDswO0w7PGNvbXBhdD4gMDA3NiAwMDY5Ozs7NjtOOzs7MjE2NTs7MjE2NQorMjE3NjtTTUFMTCBST01BTiBOVU1FUkFMIFNFVkVOO05sOzA7TDs8Y29tcGF0PiAwMDc2IDAwNjkgMDA2OTs7Ozc7Tjs7OzIxNjY7OzIxNjYKKzIxNzc7U01BTEwgUk9NQU4gTlVNRVJBTCBFSUdIVDtObDswO0w7PGNvbXBhdD4gMDA3NiAwMDY5IDAwNjkgMDA2OTs7Ozg7Tjs7OzIxNjc7OzIxNjcKKzIxNzg7U01BTEwgUk9NQU4gTlVNRVJBTCBOSU5FO05sOzA7TDs8Y29tcGF0PiAwMDY5IDAwNzg7Ozs5O047OzsyMTY4OzsyMTY4CisyMTc5O1NNQUxMIFJPTUFOIE5VTUVSQUwgVEVOO05sOzA7TDs8Y29tcGF0PiAwMDc4Ozs7MTA7Tjs7OzIxNjk7OzIxNjkKKzIxN0E7U01BTEwgUk9NQU4gTlVNRVJBTCBFTEVWRU47Tmw7MDtMOzxjb21wYXQ+IDAwNzggMDA2OTs7OzExO047OzsyMTZBOzsyMTZBCisyMTdCO1NNQUxMIFJPTUFOIE5VTUVSQUwgVFdFTFZFO05sOzA7TDs8Y29tcGF0PiAwMDc4IDAwNjkgMDA2OTs7OzEyO047OzsyMTZCOzsyMTZCCisyMTdDO1NNQUxMIFJPTUFOIE5VTUVSQUwgRklGVFk7Tmw7MDtMOzxjb21wYXQ+IDAwNkM7Ozs1MDtOOzs7MjE2Qzs7MjE2QworMjE3RDtTTUFMTCBST01BTiBOVU1FUkFMIE9ORSBIVU5EUkVEO05sOzA7TDs8Y29tcGF0PiAwMDYzOzs7MTAwO047OzsyMTZEOzsyMTZECisyMTdFO1NNQUxMIFJPTUFOIE5VTUVSQUwgRklWRSBIVU5EUkVEO05sOzA7TDs8Y29tcGF0PiAwMDY0Ozs7NTAwO047OzsyMTZFOzsyMTZFCisyMTdGO1NNQUxMIFJPTUFOIE5VTUVSQUwgT05FIFRIT1VTQU5EO05sOzA7TDs8Y29tcGF0PiAwMDZEOzs7MTAwMDtOOzs7MjE2Rjs7MjE2RgorMjE4MDtST01BTiBOVU1FUkFMIE9ORSBUSE9VU0FORCBDIEQ7Tmw7MDtMOzs7OzEwMDA7Tjs7Ozs7CisyMTgxO1JPTUFOIE5VTUVSQUwgRklWRSBUSE9VU0FORDtObDswO0w7Ozs7NTAwMDtOOzs7OzsKKzIxODI7Uk9NQU4gTlVNRVJBTCBURU4gVEhPVVNBTkQ7Tmw7MDtMOzs7OzEwMDAwO047Ozs7OworMjE5MDtMRUZUV0FSRFMgQVJST1c7U207MDtPTjs7Ozs7TjtMRUZUIEFSUk9XOzs7OworMjE5MTtVUFdBUkRTIEFSUk9XO1NtOzA7T047Ozs7O047VVAgQVJST1c7Ozs7CisyMTkyO1JJR0hUV0FSRFMgQVJST1c7U207MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVzs7OzsKKzIxOTM7RE9XTldBUkRTIEFSUk9XO1NtOzA7T047Ozs7O047RE9XTiBBUlJPVzs7OzsKKzIxOTQ7TEVGVCBSSUdIVCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzIxOTU7VVAgRE9XTiBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIxOTY7Tk9SVEggV0VTVCBBUlJPVztTbzswO09OOzs7OztOO1VQUEVSIExFRlQgQVJST1c7Ozs7CisyMTk3O05PUlRIIEVBU1QgQVJST1c7U287MDtPTjs7Ozs7TjtVUFBFUiBSSUdIVCBBUlJPVzs7OzsKKzIxOTg7U09VVEggRUFTVCBBUlJPVztTbzswO09OOzs7OztOO0xPV0VSIFJJR0hUIEFSUk9XOzs7OworMjE5OTtTT1VUSCBXRVNUIEFSUk9XO1NvOzA7T047Ozs7O047TE9XRVIgTEVGVCBBUlJPVzs7OzsKKzIxOUE7TEVGVFdBUkRTIEFSUk9XIFdJVEggU1RST0tFO1NvOzA7T047Ozs7O047TEVGVCBBUlJPVyBXSVRIIFNUUk9LRTs7OzsKKzIxOUI7UklHSFRXQVJEUyBBUlJPVyBXSVRIIFNUUk9LRTtTbzswO09OOzs7OztOO1JJR0hUIEFSUk9XIFdJVEggU1RST0tFOzs7OworMjE5QztMRUZUV0FSRFMgV0FWRSBBUlJPVztTbzswO09OOzs7OztOO0xFRlQgV0FWRSBBUlJPVzs7OzsKKzIxOUQ7UklHSFRXQVJEUyBXQVZFIEFSUk9XO1NvOzA7T047Ozs7O047UklHSFQgV0FWRSBBUlJPVzs7OzsKKzIxOUU7TEVGVFdBUkRTIFRXTyBIRUFERUQgQVJST1c7U287MDtPTjs7Ozs7TjtMRUZUIFRXTyBIRUFERUQgQVJST1c7Ozs7CisyMTlGO1VQV0FSRFMgVFdPIEhFQURFRCBBUlJPVztTbzswO09OOzs7OztOO1VQIFRXTyBIRUFERUQgQVJST1c7Ozs7CisyMUEwO1JJR0hUV0FSRFMgVFdPIEhFQURFRCBBUlJPVztTbzswO09OOzs7OztOO1JJR0hUIFRXTyBIRUFERUQgQVJST1c7Ozs7CisyMUExO0RPV05XQVJEUyBUV08gSEVBREVEIEFSUk9XO1NvOzA7T047Ozs7O047RE9XTiBUV08gSEVBREVEIEFSUk9XOzs7OworMjFBMjtMRUZUV0FSRFMgQVJST1cgV0lUSCBUQUlMO1NvOzA7T047Ozs7O047TEVGVCBBUlJPVyBXSVRIIFRBSUw7Ozs7CisyMUEzO1JJR0hUV0FSRFMgQVJST1cgV0lUSCBUQUlMO1NvOzA7T047Ozs7O047UklHSFQgQVJST1cgV0lUSCBUQUlMOzs7OworMjFBNDtMRUZUV0FSRFMgQVJST1cgRlJPTSBCQVI7U287MDtPTjs7Ozs7TjtMRUZUIEFSUk9XIEZST00gQkFSOzs7OworMjFBNTtVUFdBUkRTIEFSUk9XIEZST00gQkFSO1NvOzA7T047Ozs7O047VVAgQVJST1cgRlJPTSBCQVI7Ozs7CisyMUE2O1JJR0hUV0FSRFMgQVJST1cgRlJPTSBCQVI7U287MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVyBGUk9NIEJBUjs7OzsKKzIxQTc7RE9XTldBUkRTIEFSUk9XIEZST00gQkFSO1NvOzA7T047Ozs7O047RE9XTiBBUlJPVyBGUk9NIEJBUjs7OzsKKzIxQTg7VVAgRE9XTiBBUlJPVyBXSVRIIEJBU0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMUE5O0xFRlRXQVJEUyBBUlJPVyBXSVRIIEhPT0s7U287MDtPTjs7Ozs7TjtMRUZUIEFSUk9XIFdJVEggSE9PSzs7OzsKKzIxQUE7UklHSFRXQVJEUyBBUlJPVyBXSVRIIEhPT0s7U287MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVyBXSVRIIEhPT0s7Ozs7CisyMUFCO0xFRlRXQVJEUyBBUlJPVyBXSVRIIExPT1A7U287MDtPTjs7Ozs7TjtMRUZUIEFSUk9XIFdJVEggTE9PUDs7OzsKKzIxQUM7UklHSFRXQVJEUyBBUlJPVyBXSVRIIExPT1A7U287MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVyBXSVRIIExPT1A7Ozs7CisyMUFEO0xFRlQgUklHSFQgV0FWRSBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIxQUU7TEVGVCBSSUdIVCBBUlJPVyBXSVRIIFNUUk9LRTtTbzswO09OOzs7OztOOzs7OzsKKzIxQUY7RE9XTldBUkRTIFpJR1pBRyBBUlJPVztTbzswO09OOzs7OztOO0RPV04gWklHWkFHIEFSUk9XOzs7OworMjFCMDtVUFdBUkRTIEFSUk9XIFdJVEggVElQIExFRlRXQVJEUztTbzswO09OOzs7OztOO1VQIEFSUk9XIFdJVEggVElQIExFRlQ7Ozs7CisyMUIxO1VQV0FSRFMgQVJST1cgV0lUSCBUSVAgUklHSFRXQVJEUztTbzswO09OOzs7OztOO1VQIEFSUk9XIFdJVEggVElQIFJJR0hUOzs7OworMjFCMjtET1dOV0FSRFMgQVJST1cgV0lUSCBUSVAgTEVGVFdBUkRTO1NvOzA7T047Ozs7O047RE9XTiBBUlJPVyBXSVRIIFRJUCBMRUZUOzs7OworMjFCMztET1dOV0FSRFMgQVJST1cgV0lUSCBUSVAgUklHSFRXQVJEUztTbzswO09OOzs7OztOO0RPV04gQVJST1cgV0lUSCBUSVAgUklHSFQ7Ozs7CisyMUI0O1JJR0hUV0FSRFMgQVJST1cgV0lUSCBDT1JORVIgRE9XTldBUkRTO1NvOzA7T047Ozs7O047UklHSFQgQVJST1cgV0lUSCBDT1JORVIgRE9XTjs7OzsKKzIxQjU7RE9XTldBUkRTIEFSUk9XIFdJVEggQ09STkVSIExFRlRXQVJEUztTbzswO09OOzs7OztOO0RPV04gQVJST1cgV0lUSCBDT1JORVIgTEVGVDs7OzsKKzIxQjY7QU5USUNMT0NLV0lTRSBUT1AgU0VNSUNJUkNMRSBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIxQjc7Q0xPQ0tXSVNFIFRPUCBTRU1JQ0lSQ0xFIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMjFCODtOT1JUSCBXRVNUIEFSUk9XIFRPIExPTkcgQkFSO1NvOzA7T047Ozs7O047VVBQRVIgTEVGVCBBUlJPVyBUTyBMT05HIEJBUjs7OzsKKzIxQjk7TEVGVFdBUkRTIEFSUk9XIFRPIEJBUiBPVkVSIFJJR0hUV0FSRFMgQVJST1cgVE8gQkFSO1NvOzA7T047Ozs7O047TEVGVCBBUlJPVyBUTyBCQVIgT1ZFUiBSSUdIVCBBUlJPVyBUTyBCQVI7Ozs7CisyMUJBO0FOVElDTE9DS1dJU0UgT1BFTiBDSVJDTEUgQVJST1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMUJCO0NMT0NLV0lTRSBPUEVOIENJUkNMRSBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIxQkM7TEVGVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFVQV0FSRFM7U287MDtPTjs7Ozs7TjtMRUZUIEhBUlBPT04gV0lUSCBCQVJCIFVQOzs7OworMjFCRDtMRUZUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgRE9XTldBUkRTO1NvOzA7T047Ozs7O047TEVGVCBIQVJQT09OIFdJVEggQkFSQiBET1dOOzs7OworMjFCRTtVUFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFJJR0hUV0FSRFM7U287MDtPTjs7Ozs7TjtVUCBIQVJQT09OIFdJVEggQkFSQiBSSUdIVDs7OzsKKzIxQkY7VVBXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBMRUZUV0FSRFM7U287MDtPTjs7Ozs7TjtVUCBIQVJQT09OIFdJVEggQkFSQiBMRUZUOzs7OworMjFDMDtSSUdIVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFVQV0FSRFM7U287MDtPTjs7Ozs7TjtSSUdIVCBIQVJQT09OIFdJVEggQkFSQiBVUDs7OzsKKzIxQzE7UklHSFRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBET1dOV0FSRFM7U287MDtPTjs7Ozs7TjtSSUdIVCBIQVJQT09OIFdJVEggQkFSQiBET1dOOzs7OworMjFDMjtET1dOV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgUklHSFRXQVJEUztTbzswO09OOzs7OztOO0RPV04gSEFSUE9PTiBXSVRIIEJBUkIgUklHSFQ7Ozs7CisyMUMzO0RPV05XQVJEUyBIQVJQT09OIFdJVEggQkFSQiBMRUZUV0FSRFM7U287MDtPTjs7Ozs7TjtET1dOIEhBUlBPT04gV0lUSCBCQVJCIExFRlQ7Ozs7CisyMUM0O1JJR0hUV0FSRFMgQVJST1cgT1ZFUiBMRUZUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVyBPVkVSIExFRlQgQVJST1c7Ozs7CisyMUM1O1VQV0FSRFMgQVJST1cgTEVGVFdBUkRTIE9GIERPV05XQVJEUyBBUlJPVztTbzswO09OOzs7OztOO1VQIEFSUk9XIExFRlQgT0YgRE9XTiBBUlJPVzs7OzsKKzIxQzY7TEVGVFdBUkRTIEFSUk9XIE9WRVIgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0xFRlQgQVJST1cgT1ZFUiBSSUdIVCBBUlJPVzs7OzsKKzIxQzc7TEVGVFdBUkRTIFBBSVJFRCBBUlJPV1M7U287MDtPTjs7Ozs7TjtMRUZUIFBBSVJFRCBBUlJPV1M7Ozs7CisyMUM4O1VQV0FSRFMgUEFJUkVEIEFSUk9XUztTbzswO09OOzs7OztOO1VQIFBBSVJFRCBBUlJPV1M7Ozs7CisyMUM5O1JJR0hUV0FSRFMgUEFJUkVEIEFSUk9XUztTbzswO09OOzs7OztOO1JJR0hUIFBBSVJFRCBBUlJPV1M7Ozs7CisyMUNBO0RPV05XQVJEUyBQQUlSRUQgQVJST1dTO1NvOzA7T047Ozs7O047RE9XTiBQQUlSRUQgQVJST1dTOzs7OworMjFDQjtMRUZUV0FSRFMgSEFSUE9PTiBPVkVSIFJJR0hUV0FSRFMgSEFSUE9PTjtTbzswO09OOzs7OztOO0xFRlQgSEFSUE9PTiBPVkVSIFJJR0hUIEhBUlBPT047Ozs7CisyMUNDO1JJR0hUV0FSRFMgSEFSUE9PTiBPVkVSIExFRlRXQVJEUyBIQVJQT09OO1NvOzA7T047Ozs7O047UklHSFQgSEFSUE9PTiBPVkVSIExFRlQgSEFSUE9PTjs7OzsKKzIxQ0Q7TEVGVFdBUkRTIERPVUJMRSBBUlJPVyBXSVRIIFNUUk9LRTtTbzswO09OOzs7OztOO0xFRlQgRE9VQkxFIEFSUk9XIFdJVEggU1RST0tFOzs7OworMjFDRTtMRUZUIFJJR0hUIERPVUJMRSBBUlJPVyBXSVRIIFNUUk9LRTtTbzswO09OOzs7OztOOzs7OzsKKzIxQ0Y7UklHSFRXQVJEUyBET1VCTEUgQVJST1cgV0lUSCBTVFJPS0U7U287MDtPTjs7Ozs7TjtSSUdIVCBET1VCTEUgQVJST1cgV0lUSCBTVFJPS0U7Ozs7CisyMUQwO0xFRlRXQVJEUyBET1VCTEUgQVJST1c7U287MDtPTjs7Ozs7TjtMRUZUIERPVUJMRSBBUlJPVzs7OzsKKzIxRDE7VVBXQVJEUyBET1VCTEUgQVJST1c7U287MDtPTjs7Ozs7TjtVUCBET1VCTEUgQVJST1c7Ozs7CisyMUQyO1JJR0hUV0FSRFMgRE9VQkxFIEFSUk9XO1NtOzA7T047Ozs7O047UklHSFQgRE9VQkxFIEFSUk9XOzs7OworMjFEMztET1dOV0FSRFMgRE9VQkxFIEFSUk9XO1NvOzA7T047Ozs7O047RE9XTiBET1VCTEUgQVJST1c7Ozs7CisyMUQ0O0xFRlQgUklHSFQgRE9VQkxFIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjFENTtVUCBET1dOIERPVUJMRSBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIxRDY7Tk9SVEggV0VTVCBET1VCTEUgQVJST1c7U287MDtPTjs7Ozs7TjtVUFBFUiBMRUZUIERPVUJMRSBBUlJPVzs7OzsKKzIxRDc7Tk9SVEggRUFTVCBET1VCTEUgQVJST1c7U287MDtPTjs7Ozs7TjtVUFBFUiBSSUdIVCBET1VCTEUgQVJST1c7Ozs7CisyMUQ4O1NPVVRIIEVBU1QgRE9VQkxFIEFSUk9XO1NvOzA7T047Ozs7O047TE9XRVIgUklHSFQgRE9VQkxFIEFSUk9XOzs7OworMjFEOTtTT1VUSCBXRVNUIERPVUJMRSBBUlJPVztTbzswO09OOzs7OztOO0xPV0VSIExFRlQgRE9VQkxFIEFSUk9XOzs7OworMjFEQTtMRUZUV0FSRFMgVFJJUExFIEFSUk9XO1NvOzA7T047Ozs7O047TEVGVCBUUklQTEUgQVJST1c7Ozs7CisyMURCO1JJR0hUV0FSRFMgVFJJUExFIEFSUk9XO1NvOzA7T047Ozs7O047UklHSFQgVFJJUExFIEFSUk9XOzs7OworMjFEQztMRUZUV0FSRFMgU1FVSUdHTEUgQVJST1c7U287MDtPTjs7Ozs7TjtMRUZUIFNRVUlHR0xFIEFSUk9XOzs7OworMjFERDtSSUdIVFdBUkRTIFNRVUlHR0xFIEFSUk9XO1NvOzA7T047Ozs7O047UklHSFQgU1FVSUdHTEUgQVJST1c7Ozs7CisyMURFO1VQV0FSRFMgQVJST1cgV0lUSCBET1VCTEUgU1RST0tFO1NvOzA7T047Ozs7O047VVAgQVJST1cgV0lUSCBET1VCTEUgU1RST0tFOzs7OworMjFERjtET1dOV0FSRFMgQVJST1cgV0lUSCBET1VCTEUgU1RST0tFO1NvOzA7T047Ozs7O047RE9XTiBBUlJPVyBXSVRIIERPVUJMRSBTVFJPS0U7Ozs7CisyMUUwO0xFRlRXQVJEUyBEQVNIRUQgQVJST1c7U287MDtPTjs7Ozs7TjtMRUZUIERBU0hFRCBBUlJPVzs7OzsKKzIxRTE7VVBXQVJEUyBEQVNIRUQgQVJST1c7U287MDtPTjs7Ozs7TjtVUCBEQVNIRUQgQVJST1c7Ozs7CisyMUUyO1JJR0hUV0FSRFMgREFTSEVEIEFSUk9XO1NvOzA7T047Ozs7O047UklHSFQgREFTSEVEIEFSUk9XOzs7OworMjFFMztET1dOV0FSRFMgREFTSEVEIEFSUk9XO1NvOzA7T047Ozs7O047RE9XTiBEQVNIRUQgQVJST1c7Ozs7CisyMUU0O0xFRlRXQVJEUyBBUlJPVyBUTyBCQVI7U287MDtPTjs7Ozs7TjtMRUZUIEFSUk9XIFRPIEJBUjs7OzsKKzIxRTU7UklHSFRXQVJEUyBBUlJPVyBUTyBCQVI7U287MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVyBUTyBCQVI7Ozs7CisyMUU2O0xFRlRXQVJEUyBXSElURSBBUlJPVztTbzswO09OOzs7OztOO1dISVRFIExFRlQgQVJST1c7Ozs7CisyMUU3O1VQV0FSRFMgV0hJVEUgQVJST1c7U287MDtPTjs7Ozs7TjtXSElURSBVUCBBUlJPVzs7OzsKKzIxRTg7UklHSFRXQVJEUyBXSElURSBBUlJPVztTbzswO09OOzs7OztOO1dISVRFIFJJR0hUIEFSUk9XOzs7OworMjFFOTtET1dOV0FSRFMgV0hJVEUgQVJST1c7U287MDtPTjs7Ozs7TjtXSElURSBET1dOIEFSUk9XOzs7OworMjFFQTtVUFdBUkRTIFdISVRFIEFSUk9XIEZST00gQkFSO1NvOzA7T047Ozs7O047V0hJVEUgVVAgQVJST1cgRlJPTSBCQVI7Ozs7CisyMjAwO0ZPUiBBTEw7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjAxO0NPTVBMRU1FTlQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjAyO1BBUlRJQUwgRElGRkVSRU5USUFMO1NtOzA7T047Ozs7O1k7Ozs7OworMjIwMztUSEVSRSBFWElTVFM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjA0O1RIRVJFIERPRVMgTk9UIEVYSVNUO1NtOzA7T047MjIwMyAwMzM4Ozs7O1k7Ozs7OworMjIwNTtFTVBUWSBTRVQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjA2O0lOQ1JFTUVOVDtTbTswO09OOzs7OztOOzs7OzsKKzIyMDc7TkFCTEE7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjA4O0VMRU1FTlQgT0Y7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjA5O05PVCBBTiBFTEVNRU5UIE9GO1NtOzA7T047MjIwOCAwMzM4Ozs7O1k7Ozs7OworMjIwQTtTTUFMTCBFTEVNRU5UIE9GO1NtOzA7T047Ozs7O1k7Ozs7OworMjIwQjtDT05UQUlOUyBBUyBNRU1CRVI7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjBDO0RPRVMgTk9UIENPTlRBSU4gQVMgTUVNQkVSO1NtOzA7T047MjIwQiAwMzM4Ozs7O1k7Ozs7OworMjIwRDtTTUFMTCBDT05UQUlOUyBBUyBNRU1CRVI7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjBFO0VORCBPRiBQUk9PRjtTbTswO09OOzs7OztOOzs7OzsKKzIyMEY7Ti1BUlkgUFJPRFVDVDtTbTswO09OOzs7OztOOzs7OzsKKzIyMTA7Ti1BUlkgQ09QUk9EVUNUO1NtOzA7T047Ozs7O047Ozs7OworMjIxMTtOLUFSWSBTVU1NQVRJT047U207MDtPTjs7Ozs7WTs7Ozs7CisyMjEyO01JTlVTIFNJR047U207MDtFVDs7Ozs7Tjs7Ozs7CisyMjEzO01JTlVTLU9SLVBMVVMgU0lHTjtTbTswO0VUOzs7OztOOzs7OzsKKzIyMTQ7RE9UIFBMVVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjE1O0RJVklTSU9OIFNMQVNIO1NtOzA7T047Ozs7O1k7Ozs7OworMjIxNjtTRVQgTUlOVVM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjE3O0FTVEVSSVNLIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjIxODtSSU5HIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjIxOTtCVUxMRVQgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjFBO1NRVUFSRSBST09UO1NtOzA7T047Ozs7O1k7Ozs7OworMjIxQjtDVUJFIFJPT1Q7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjFDO0ZPVVJUSCBST09UO1NtOzA7T047Ozs7O1k7Ozs7OworMjIxRDtQUk9QT1JUSU9OQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjFFO0lORklOSVRZO1NtOzA7T047Ozs7O047Ozs7OworMjIxRjtSSUdIVCBBTkdMRTtTbTswO09OOzs7OztZOzs7OzsKKzIyMjA7QU5HTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjIxO01FQVNVUkVEIEFOR0xFO1NtOzA7T047Ozs7O1k7Ozs7OworMjIyMjtTUEhFUklDQUwgQU5HTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjIzO0RJVklERVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjI0O0RPRVMgTk9UIERJVklERTtTbTswO09OOzIyMjMgMDMzODs7OztZOzs7OzsKKzIyMjU7UEFSQUxMRUwgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjI2O05PVCBQQVJBTExFTCBUTztTbTswO09OOzIyMjUgMDMzODs7OztZOzs7OzsKKzIyMjc7TE9HSUNBTCBBTkQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjI4O0xPR0lDQUwgT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjI5O0lOVEVSU0VDVElPTjtTbTswO09OOzs7OztOOzs7OzsKKzIyMkE7VU5JT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjJCO0lOVEVHUkFMO1NtOzA7T047Ozs7O1k7Ozs7OworMjIyQztET1VCTEUgSU5URUdSQUw7U207MDtPTjs8Y29tcGF0PiAyMjJCIDIyMkI7Ozs7WTs7Ozs7CisyMjJEO1RSSVBMRSBJTlRFR1JBTDtTbTswO09OOzxjb21wYXQ+IDIyMkIgMjIyQiAyMjJCOzs7O1k7Ozs7OworMjIyRTtDT05UT1VSIElOVEVHUkFMO1NtOzA7T047Ozs7O1k7Ozs7OworMjIyRjtTVVJGQUNFIElOVEVHUkFMO1NtOzA7T047PGNvbXBhdD4gMjIyRSAyMjJFOzs7O1k7Ozs7OworMjIzMDtWT0xVTUUgSU5URUdSQUw7U207MDtPTjs8Y29tcGF0PiAyMjJFIDIyMkUgMjIyRTs7OztZOzs7OzsKKzIyMzE7Q0xPQ0tXSVNFIElOVEVHUkFMO1NtOzA7T047Ozs7O1k7Ozs7OworMjIzMjtDTE9DS1dJU0UgQ09OVE9VUiBJTlRFR1JBTDtTbTswO09OOzs7OztZOzs7OzsKKzIyMzM7QU5USUNMT0NLV0lTRSBDT05UT1VSIElOVEVHUkFMO1NtOzA7T047Ozs7O1k7Ozs7OworMjIzNDtUSEVSRUZPUkU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjM1O0JFQ0FVU0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjM2O1JBVElPO1NtOzA7T047Ozs7O047Ozs7OworMjIzNztQUk9QT1JUSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjIzODtET1QgTUlOVVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjM5O0VYQ0VTUztTbTswO09OOzs7OztZOzs7OzsKKzIyM0E7R0VPTUVUUklDIFBST1BPUlRJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjNCO0hPTU9USEVUSUM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjNDO1RJTERFIE9QRVJBVE9SO1NtOzA7T047Ozs7O1k7Ozs7OworMjIzRDtSRVZFUlNFRCBUSUxERTtTbTswO09OOzs7OztZOzs7OzsKKzIyM0U7SU5WRVJURUQgTEFaWSBTO1NtOzA7T047Ozs7O1k7Ozs7OworMjIzRjtTSU5FIFdBVkU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjQwO1dSRUFUSCBQUk9EVUNUO1NtOzA7T047Ozs7O1k7Ozs7OworMjI0MTtOT1QgVElMREU7U207MDtPTjswMDdFIDAzMzg7Ozs7WTs7Ozs7CisyMjQyO01JTlVTIFRJTERFO1NtOzA7T047Ozs7O1k7Ozs7OworMjI0MztBU1lNUFRPVElDQUxMWSBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyNDQ7Tk9UIEFTWU1QVE9USUNBTExZIEVRVUFMIFRPO1NtOzA7T047MjI0MyAwMzM4Ozs7O1k7Ozs7OworMjI0NTtBUFBST1hJTUFURUxZIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI0NjtBUFBST1hJTUFURUxZIEJVVCBOT1QgQUNUVUFMTFkgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjQ3O05FSVRIRVIgQVBQUk9YSU1BVEVMWSBOT1IgQUNUVUFMTFkgRVFVQUwgVE87U207MDtPTjsyMjQ1IDAzMzg7Ozs7WTs7Ozs7CisyMjQ4O0FMTU9TVCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyNDk7Tk9UIEFMTU9TVCBFUVVBTCBUTztTbTswO09OOzIyNDggMDMzODs7OztZOzs7OzsKKzIyNEE7QUxNT1NUIEVRVUFMIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI0QjtUUklQTEUgVElMREU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjRDO0FMTCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyNEQ7RVFVSVZBTEVOVCBUTztTbTswO09OOzs7OztOOzs7OzsKKzIyNEU7R0VPTUVUUklDQUxMWSBFUVVJVkFMRU5UIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjI0RjtESUZGRVJFTkNFIEJFVFdFRU47U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjUwO0FQUFJPQUNIRVMgVEhFIExJTUlUO1NtOzA7T047Ozs7O047Ozs7OworMjI1MTtHRU9NRVRSSUNBTExZIEVRVUFMIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjI1MjtBUFBST1hJTUFURUxZIEVRVUFMIFRPIE9SIFRIRSBJTUFHRSBPRjtTbTswO09OOzs7OztZOzs7OzsKKzIyNTM7SU1BR0UgT0YgT1IgQVBQUk9YSU1BVEVMWSBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyNTQ7Q09MT04gRVFVQUxTO1NtOzA7T047Ozs7O1k7Q09MT04gRVFVQUw7Ozs7CisyMjU1O0VRVUFMUyBDT0xPTjtTbTswO09OOzs7OztZO0VRVUFMIENPTE9OOzs7OworMjI1NjtSSU5HIElOIEVRVUFMIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjI1NztSSU5HIEVRVUFMIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjI1ODtDT1JSRVNQT05EUyBUTztTbTswO09OOzs7OztOOzs7OzsKKzIyNTk7RVNUSU1BVEVTO1NtOzA7T047Ozs7O047Ozs7OworMjI1QTtFUVVJQU5HVUxBUiBUTztTbTswO09OOzs7OztOOzs7OzsKKzIyNUI7U1RBUiBFUVVBTFM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjVDO0RFTFRBIEVRVUFMIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjI1RDtFUVVBTCBUTyBCWSBERUZJTklUSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjI1RTtNRUFTVVJFRCBCWTtTbTswO09OOzs7OztOOzs7OzsKKzIyNUY7UVVFU1RJT05FRCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyNjA7Tk9UIEVRVUFMIFRPO1NtOzA7T047MDAzRCAwMzM4Ozs7O1k7Ozs7OworMjI2MTtJREVOVElDQUwgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjYyO05PVCBJREVOVElDQUwgVE87U207MDtPTjsyMjYxIDAzMzg7Ozs7WTs7Ozs7CisyMjYzO1NUUklDVExZIEVRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjY0O0xFU1MtVEhBTiBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZO0xFU1MgVEhBTiBPUiBFUVVBTCBUTzs7OzsKKzIyNjU7R1JFQVRFUi1USEFOIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7R1JFQVRFUiBUSEFOIE9SIEVRVUFMIFRPOzs7OworMjI2NjtMRVNTLVRIQU4gT1ZFUiBFUVVBTCBUTztTbTswO09OOzs7OztZO0xFU1MgVEhBTiBPVkVSIEVRVUFMIFRPOzs7OworMjI2NztHUkVBVEVSLVRIQU4gT1ZFUiBFUVVBTCBUTztTbTswO09OOzs7OztZO0dSRUFURVIgVEhBTiBPVkVSIEVRVUFMIFRPOzs7OworMjI2ODtMRVNTLVRIQU4gQlVUIE5PVCBFUVVBTCBUTztTbTswO09OOzs7OztZO0xFU1MgVEhBTiBCVVQgTk9UIEVRVUFMIFRPOzs7OworMjI2OTtHUkVBVEVSLVRIQU4gQlVUIE5PVCBFUVVBTCBUTztTbTswO09OOzs7OztZO0dSRUFURVIgVEhBTiBCVVQgTk9UIEVRVUFMIFRPOzs7OworMjI2QTtNVUNIIExFU1MtVEhBTjtTbTswO09OOzs7OztZO01VQ0ggTEVTUyBUSEFOOzs7OworMjI2QjtNVUNIIEdSRUFURVItVEhBTjtTbTswO09OOzs7OztZO01VQ0ggR1JFQVRFUiBUSEFOOzs7OworMjI2QztCRVRXRUVOO1NtOzA7T047Ozs7O047Ozs7OworMjI2RDtOT1QgRVFVSVZBTEVOVCBUTztTbTswO09OOzIyNEQgMDMzODs7OztOOzs7OzsKKzIyNkU7Tk9UIExFU1MtVEhBTjtTbTswO09OOzAwM0MgMDMzODs7OztZO05PVCBMRVNTIFRIQU47Ozs7CisyMjZGO05PVCBHUkVBVEVSLVRIQU47U207MDtPTjswMDNFIDAzMzg7Ozs7WTtOT1QgR1JFQVRFUiBUSEFOOzs7OworMjI3MDtORUlUSEVSIExFU1MtVEhBTiBOT1IgRVFVQUwgVE87U207MDtPTjsyMjY0IDAzMzg7Ozs7WTtORUlUSEVSIExFU1MgVEhBTiBOT1IgRVFVQUwgVE87Ozs7CisyMjcxO05FSVRIRVIgR1JFQVRFUi1USEFOIE5PUiBFUVVBTCBUTztTbTswO09OOzIyNjUgMDMzODs7OztZO05FSVRIRVIgR1JFQVRFUiBUSEFOIE5PUiBFUVVBTCBUTzs7OzsKKzIyNzI7TEVTUy1USEFOIE9SIEVRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7WTtMRVNTIFRIQU4gT1IgRVFVSVZBTEVOVCBUTzs7OzsKKzIyNzM7R1JFQVRFUi1USEFOIE9SIEVRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7WTtHUkVBVEVSIFRIQU4gT1IgRVFVSVZBTEVOVCBUTzs7OzsKKzIyNzQ7TkVJVEhFUiBMRVNTLVRIQU4gTk9SIEVRVUlWQUxFTlQgVE87U207MDtPTjsyMjcyIDAzMzg7Ozs7WTtORUlUSEVSIExFU1MgVEhBTiBOT1IgRVFVSVZBTEVOVCBUTzs7OzsKKzIyNzU7TkVJVEhFUiBHUkVBVEVSLVRIQU4gTk9SIEVRVUlWQUxFTlQgVE87U207MDtPTjsyMjczIDAzMzg7Ozs7WTtORUlUSEVSIEdSRUFURVIgVEhBTiBOT1IgRVFVSVZBTEVOVCBUTzs7OzsKKzIyNzY7TEVTUy1USEFOIE9SIEdSRUFURVItVEhBTjtTbTswO09OOzs7OztZO0xFU1MgVEhBTiBPUiBHUkVBVEVSIFRIQU47Ozs7CisyMjc3O0dSRUFURVItVEhBTiBPUiBMRVNTLVRIQU47U207MDtPTjs7Ozs7WTtHUkVBVEVSIFRIQU4gT1IgTEVTUyBUSEFOOzs7OworMjI3ODtORUlUSEVSIExFU1MtVEhBTiBOT1IgR1JFQVRFUi1USEFOO1NtOzA7T047MjI3NiAwMzM4Ozs7O1k7TkVJVEhFUiBMRVNTIFRIQU4gTk9SIEdSRUFURVIgVEhBTjs7OzsKKzIyNzk7TkVJVEhFUiBHUkVBVEVSLVRIQU4gTk9SIExFU1MtVEhBTjtTbTswO09OOzIyNzcgMDMzODs7OztZO05FSVRIRVIgR1JFQVRFUiBUSEFOIE5PUiBMRVNTIFRIQU47Ozs7CisyMjdBO1BSRUNFREVTO1NtOzA7T047Ozs7O1k7Ozs7OworMjI3QjtTVUNDRUVEUztTbTswO09OOzs7OztZOzs7OzsKKzIyN0M7UFJFQ0VERVMgT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjdEO1NVQ0NFRURTIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI3RTtQUkVDRURFUyBPUiBFUVVJVkFMRU5UIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI3RjtTVUNDRUVEUyBPUiBFUVVJVkFMRU5UIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI4MDtET0VTIE5PVCBQUkVDRURFO1NtOzA7T047MjI3QSAwMzM4Ozs7O1k7Ozs7OworMjI4MTtET0VTIE5PVCBTVUNDRUVEO1NtOzA7T047MjI3QiAwMzM4Ozs7O1k7Ozs7OworMjI4MjtTVUJTRVQgT0Y7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjgzO1NVUEVSU0VUIE9GO1NtOzA7T047Ozs7O1k7Ozs7OworMjI4NDtOT1QgQSBTVUJTRVQgT0Y7U207MDtPTjsyMjgyIDAzMzg7Ozs7WTs7Ozs7CisyMjg1O05PVCBBIFNVUEVSU0VUIE9GO1NtOzA7T047MjI4MyAwMzM4Ozs7O1k7Ozs7OworMjI4NjtTVUJTRVQgT0YgT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjg3O1NVUEVSU0VUIE9GIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI4ODtORUlUSEVSIEEgU1VCU0VUIE9GIE5PUiBFUVVBTCBUTztTbTswO09OOzIyODYgMDMzODs7OztZOzs7OzsKKzIyODk7TkVJVEhFUiBBIFNVUEVSU0VUIE9GIE5PUiBFUVVBTCBUTztTbTswO09OOzIyODcgMDMzODs7OztZOzs7OzsKKzIyOEE7U1VCU0VUIE9GIFdJVEggTk9UIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7U1VCU0VUIE9GIE9SIE5PVCBFUVVBTCBUTzs7OzsKKzIyOEI7U1VQRVJTRVQgT0YgV0lUSCBOT1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTtTVVBFUlNFVCBPRiBPUiBOT1QgRVFVQUwgVE87Ozs7CisyMjhDO01VTFRJU0VUO1NtOzA7T047Ozs7O1k7Ozs7OworMjI4RDtNVUxUSVNFVCBNVUxUSVBMSUNBVElPTjtTbTswO09OOzs7OztOOzs7OzsKKzIyOEU7TVVMVElTRVQgVU5JT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjhGO1NRVUFSRSBJTUFHRSBPRjtTbTswO09OOzs7OztZOzs7OzsKKzIyOTA7U1FVQVJFIE9SSUdJTkFMIE9GO1NtOzA7T047Ozs7O1k7Ozs7OworMjI5MTtTUVVBUkUgSU1BR0UgT0YgT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjkyO1NRVUFSRSBPUklHSU5BTCBPRiBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyOTM7U1FVQVJFIENBUDtTbTswO09OOzs7OztOOzs7OzsKKzIyOTQ7U1FVQVJFIENVUDtTbTswO09OOzs7OztOOzs7OzsKKzIyOTU7Q0lSQ0xFRCBQTFVTO1NtOzA7T047Ozs7O047Ozs7OworMjI5NjtDSVJDTEVEIE1JTlVTO1NtOzA7T047Ozs7O047Ozs7OworMjI5NztDSVJDTEVEIFRJTUVTO1NtOzA7T047Ozs7O047Ozs7OworMjI5ODtDSVJDTEVEIERJVklTSU9OIFNMQVNIO1NtOzA7T047Ozs7O1k7Ozs7OworMjI5OTtDSVJDTEVEIERPVCBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzIyOUE7Q0lSQ0xFRCBSSU5HIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjI5QjtDSVJDTEVEIEFTVEVSSVNLIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjI5QztDSVJDTEVEIEVRVUFMUztTbTswO09OOzs7OztOOzs7OzsKKzIyOUQ7Q0lSQ0xFRCBEQVNIO1NtOzA7T047Ozs7O047Ozs7OworMjI5RTtTUVVBUkVEIFBMVVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjlGO1NRVUFSRUQgTUlOVVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkEwO1NRVUFSRUQgVElNRVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkExO1NRVUFSRUQgRE9UIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjJBMjtSSUdIVCBUQUNLO1NtOzA7T047Ozs7O1k7Ozs7OworMjJBMztMRUZUIFRBQ0s7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkE0O0RPV04gVEFDSztTbTswO09OOzs7OztOOzs7OzsKKzIyQTU7VVAgVEFDSztTbTswO09OOzs7OztOOzs7OzsKKzIyQTY7QVNTRVJUSU9OO1NtOzA7T047Ozs7O1k7Ozs7OworMjJBNztNT0RFTFM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkE4O1RSVUU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkE5O0ZPUkNFUztTbTswO09OOzs7OztZOzs7OzsKKzIyQUE7VFJJUExFIFZFUlRJQ0FMIEJBUiBSSUdIVCBUVVJOU1RJTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkFCO0RPVUJMRSBWRVJUSUNBTCBCQVIgRE9VQkxFIFJJR0hUIFRVUk5TVElMRTtTbTswO09OOzs7OztZOzs7OzsKKzIyQUM7RE9FUyBOT1QgUFJPVkU7U207MDtPTjsyMkEyIDAzMzg7Ozs7WTs7Ozs7CisyMkFEO05PVCBUUlVFO1NtOzA7T047MjJBOCAwMzM4Ozs7O1k7Ozs7OworMjJBRTtET0VTIE5PVCBGT1JDRTtTbTswO09OOzIyQTkgMDMzODs7OztZOzs7OzsKKzIyQUY7TkVHQVRFRCBET1VCTEUgVkVSVElDQUwgQkFSIERPVUJMRSBSSUdIVCBUVVJOU1RJTEU7U207MDtPTjsyMkFCIDAzMzg7Ozs7WTs7Ozs7CisyMkIwO1BSRUNFREVTIFVOREVSIFJFTEFUSU9OO1NtOzA7T047Ozs7O1k7Ozs7OworMjJCMTtTVUNDRUVEUyBVTkRFUiBSRUxBVElPTjtTbTswO09OOzs7OztZOzs7OzsKKzIyQjI7Tk9STUFMIFNVQkdST1VQIE9GO1NtOzA7T047Ozs7O1k7Ozs7OworMjJCMztDT05UQUlOUyBBUyBOT1JNQUwgU1VCR1JPVVA7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkI0O05PUk1BTCBTVUJHUk9VUCBPRiBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyQjU7Q09OVEFJTlMgQVMgTk9STUFMIFNVQkdST1VQIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjJCNjtPUklHSU5BTCBPRjtTbTswO09OOzs7OztZOzs7OzsKKzIyQjc7SU1BR0UgT0Y7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkI4O01VTFRJTUFQO1NtOzA7T047Ozs7O1k7Ozs7OworMjJCOTtIRVJNSVRJQU4gQ09OSlVHQVRFIE1BVFJJWDtTbTswO09OOzs7OztOOzs7OzsKKzIyQkE7SU5URVJDQUxBVEU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkJCO1hPUjtTbTswO09OOzs7OztOOzs7OzsKKzIyQkM7TkFORDtTbTswO09OOzs7OztOOzs7OzsKKzIyQkQ7Tk9SO1NtOzA7T047Ozs7O047Ozs7OworMjJCRTtSSUdIVCBBTkdMRSBXSVRIIEFSQztTbTswO09OOzs7OztZOzs7OzsKKzIyQkY7UklHSFQgVFJJQU5HTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkMwO04tQVJZIExPR0lDQUwgQU5EO1NtOzA7T047Ozs7O047Ozs7OworMjJDMTtOLUFSWSBMT0dJQ0FMIE9SO1NtOzA7T047Ozs7O047Ozs7OworMjJDMjtOLUFSWSBJTlRFUlNFQ1RJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkMzO04tQVJZIFVOSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjJDNDtESUFNT05EIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjJDNTtET1QgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkM2O1NUQVIgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkM3O0RJVklTSU9OIFRJTUVTO1NtOzA7T047Ozs7O047Ozs7OworMjJDODtCT1dUSUU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkM5O0xFRlQgTk9STUFMIEZBQ1RPUiBTRU1JRElSRUNUIFBST0RVQ1Q7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkNBO1JJR0hUIE5PUk1BTCBGQUNUT1IgU0VNSURJUkVDVCBQUk9EVUNUO1NtOzA7T047Ozs7O1k7Ozs7OworMjJDQjtMRUZUIFNFTUlESVJFQ1QgUFJPRFVDVDtTbTswO09OOzs7OztZOzs7OzsKKzIyQ0M7UklHSFQgU0VNSURJUkVDVCBQUk9EVUNUO1NtOzA7T047Ozs7O1k7Ozs7OworMjJDRDtSRVZFUlNFRCBUSUxERSBFUVVBTFM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkNFO0NVUkxZIExPR0lDQUwgT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkNGO0NVUkxZIExPR0lDQUwgQU5EO1NtOzA7T047Ozs7O047Ozs7OworMjJEMDtET1VCTEUgU1VCU0VUO1NtOzA7T047Ozs7O1k7Ozs7OworMjJEMTtET1VCTEUgU1VQRVJTRVQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkQyO0RPVUJMRSBJTlRFUlNFQ1RJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkQzO0RPVUJMRSBVTklPTjtTbTswO09OOzs7OztOOzs7OzsKKzIyRDQ7UElUQ0hGT1JLO1NtOzA7T047Ozs7O047Ozs7OworMjJENTtFUVVBTCBBTkQgUEFSQUxMRUwgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkQ2O0xFU1MtVEhBTiBXSVRIIERPVDtTbTswO09OOzs7OztZO0xFU1MgVEhBTiBXSVRIIERPVDs7OzsKKzIyRDc7R1JFQVRFUi1USEFOIFdJVEggRE9UO1NtOzA7T047Ozs7O1k7R1JFQVRFUiBUSEFOIFdJVEggRE9UOzs7OworMjJEODtWRVJZIE1VQ0ggTEVTUy1USEFOO1NtOzA7T047Ozs7O1k7VkVSWSBNVUNIIExFU1MgVEhBTjs7OzsKKzIyRDk7VkVSWSBNVUNIIEdSRUFURVItVEhBTjtTbTswO09OOzs7OztZO1ZFUlkgTVVDSCBHUkVBVEVSIFRIQU47Ozs7CisyMkRBO0xFU1MtVEhBTiBFUVVBTCBUTyBPUiBHUkVBVEVSLVRIQU47U207MDtPTjs7Ozs7WTtMRVNTIFRIQU4gRVFVQUwgVE8gT1IgR1JFQVRFUiBUSEFOOzs7OworMjJEQjtHUkVBVEVSLVRIQU4gRVFVQUwgVE8gT1IgTEVTUy1USEFOO1NtOzA7T047Ozs7O1k7R1JFQVRFUiBUSEFOIEVRVUFMIFRPIE9SIExFU1MgVEhBTjs7OzsKKzIyREM7RVFVQUwgVE8gT1IgTEVTUy1USEFOO1NtOzA7T047Ozs7O1k7RVFVQUwgVE8gT1IgTEVTUyBUSEFOOzs7OworMjJERDtFUVVBTCBUTyBPUiBHUkVBVEVSLVRIQU47U207MDtPTjs7Ozs7WTtFUVVBTCBUTyBPUiBHUkVBVEVSIFRIQU47Ozs7CisyMkRFO0VRVUFMIFRPIE9SIFBSRUNFREVTO1NtOzA7T047Ozs7O1k7Ozs7OworMjJERjtFUVVBTCBUTyBPUiBTVUNDRUVEUztTbTswO09OOzs7OztZOzs7OzsKKzIyRTA7RE9FUyBOT1QgUFJFQ0VERSBPUiBFUVVBTDtTbTswO09OOzIyN0MgMDMzODs7OztZOzs7OzsKKzIyRTE7RE9FUyBOT1QgU1VDQ0VFRCBPUiBFUVVBTDtTbTswO09OOzIyN0QgMDMzODs7OztZOzs7OzsKKzIyRTI7Tk9UIFNRVUFSRSBJTUFHRSBPRiBPUiBFUVVBTCBUTztTbTswO09OOzIyOTEgMDMzODs7OztZOzs7OzsKKzIyRTM7Tk9UIFNRVUFSRSBPUklHSU5BTCBPRiBPUiBFUVVBTCBUTztTbTswO09OOzIyOTIgMDMzODs7OztZOzs7OzsKKzIyRTQ7U1FVQVJFIElNQUdFIE9GIE9SIE5PVCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyRTU7U1FVQVJFIE9SSUdJTkFMIE9GIE9SIE5PVCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyRTY7TEVTUy1USEFOIEJVVCBOT1QgRVFVSVZBTEVOVCBUTztTbTswO09OOzs7OztZO0xFU1MgVEhBTiBCVVQgTk9UIEVRVUlWQUxFTlQgVE87Ozs7CisyMkU3O0dSRUFURVItVEhBTiBCVVQgTk9UIEVRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7WTtHUkVBVEVSIFRIQU4gQlVUIE5PVCBFUVVJVkFMRU5UIFRPOzs7OworMjJFODtQUkVDRURFUyBCVVQgTk9UIEVRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMkU5O1NVQ0NFRURTIEJVVCBOT1QgRVFVSVZBTEVOVCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyRUE7Tk9UIE5PUk1BTCBTVUJHUk9VUCBPRjtTbTswO09OOzIyQjIgMDMzODs7OztZOzs7OzsKKzIyRUI7RE9FUyBOT1QgQ09OVEFJTiBBUyBOT1JNQUwgU1VCR1JPVVA7U207MDtPTjsyMkIzIDAzMzg7Ozs7WTs7Ozs7CisyMkVDO05PVCBOT1JNQUwgU1VCR1JPVVAgT0YgT1IgRVFVQUwgVE87U207MDtPTjsyMkI0IDAzMzg7Ozs7WTs7Ozs7CisyMkVEO0RPRVMgTk9UIENPTlRBSU4gQVMgTk9STUFMIFNVQkdST1VQIE9SIEVRVUFMO1NtOzA7T047MjJCNSAwMzM4Ozs7O1k7Ozs7OworMjJFRTtWRVJUSUNBTCBFTExJUFNJUztTbTswO09OOzs7OztOOzs7OzsKKzIyRUY7TUlETElORSBIT1JJWk9OVEFMIEVMTElQU0lTO1NtOzA7T047Ozs7O047Ozs7OworMjJGMDtVUCBSSUdIVCBESUFHT05BTCBFTExJUFNJUztTbTswO09OOzs7OztZOzs7OzsKKzIyRjE7RE9XTiBSSUdIVCBESUFHT05BTCBFTExJUFNJUztTbTswO09OOzs7OztZOzs7OzsKKzIzMDA7RElBTUVURVIgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzIzMDI7SE9VU0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzAzO1VQIEFSUk9XSEVBRDtTbzswO09OOzs7OztOOzs7OzsKKzIzMDQ7RE9XTiBBUlJPV0hFQUQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzA1O1BST0pFQ1RJVkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzA2O1BFUlNQRUNUSVZFO1NvOzA7T047Ozs7O047Ozs7OworMjMwNztXQVZZIExJTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzA4O0xFRlQgQ0VJTElORztTbTswO09OOzs7OztZOzs7OzsKKzIzMDk7UklHSFQgQ0VJTElORztTbTswO09OOzs7OztZOzs7OzsKKzIzMEE7TEVGVCBGTE9PUjtTbTswO09OOzs7OztZOzs7OzsKKzIzMEI7UklHSFQgRkxPT1I7U207MDtPTjs7Ozs7WTs7Ozs7CisyMzBDO0JPVFRPTSBSSUdIVCBDUk9QO1NvOzA7T047Ozs7O047Ozs7OworMjMwRDtCT1RUT00gTEVGVCBDUk9QO1NvOzA7T047Ozs7O047Ozs7OworMjMwRTtUT1AgUklHSFQgQ1JPUDtTbzswO09OOzs7OztOOzs7OzsKKzIzMEY7VE9QIExFRlQgQ1JPUDtTbzswO09OOzs7OztOOzs7OzsKKzIzMTA7UkVWRVJTRUQgTk9UIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzExO1NRVUFSRSBMT1pFTkdFO1NvOzA7T047Ozs7O047Ozs7OworMjMxMjtBUkM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzEzO1NFR01FTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzE0O1NFQ1RPUjtTbzswO09OOzs7OztOOzs7OzsKKzIzMTU7VEVMRVBIT05FIFJFQ09SREVSO1NvOzA7T047Ozs7O047Ozs7OworMjMxNjtQT1NJVElPTiBJTkRJQ0FUT1I7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzE3O1ZJRVdEQVRBIFNRVUFSRTtTbzswO09OOzs7OztOOzs7OzsKKzIzMTg7UExBQ0UgT0YgSU5URVJFU1QgU0lHTjtTbzswO09OOzs7OztOO0NPTU1BTkQgS0VZOzs7OworMjMxOTtUVVJORUQgTk9UIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzFBO1dBVENIO1NvOzA7T047Ozs7O047Ozs7OworMjMxQjtIT1VSR0xBU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzFDO1RPUCBMRUZUIENPUk5FUjtTbzswO09OOzs7OztOOzs7OzsKKzIzMUQ7VE9QIFJJR0hUIENPUk5FUjtTbzswO09OOzs7OztOOzs7OzsKKzIzMUU7Qk9UVE9NIExFRlQgQ09STkVSO1NvOzA7T047Ozs7O047Ozs7OworMjMxRjtCT1RUT00gUklHSFQgQ09STkVSO1NvOzA7T047Ozs7O047Ozs7OworMjMyMDtUT1AgSEFMRiBJTlRFR1JBTDtTbTswO09OOzs7OztZOzs7OzsKKzIzMjE7Qk9UVE9NIEhBTEYgSU5URUdSQUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyMzIyO0ZST1dOO1NvOzA7T047Ozs7O047Ozs7OworMjMyMztTTUlMRTtTbzswO09OOzs7OztOOzs7OzsKKzIzMjQ7VVAgQVJST1dIRUFEIEJFVFdFRU4gVFdPIEhPUklaT05UQUwgQkFSUztTbzswO09OOzs7OztOO0VOVEVSIEtFWTs7OzsKKzIzMjU7T1BUSU9OIEtFWTtTbzswO09OOzs7OztOOzs7OzsKKzIzMjY7RVJBU0UgVE8gVEhFIFJJR0hUO1NvOzA7T047Ozs7O047REVMRVRFIFRPIFRIRSBSSUdIVCBLRVk7Ozs7CisyMzI3O1ggSU4gQSBSRUNUQU5HTEUgQk9YO1NvOzA7T047Ozs7O047Q0xFQVIgS0VZOzs7OworMjMyODtLRVlCT0FSRDtTbzswO09OOzs7OztOOzs7OzsKKzIzMjk7TEVGVC1QT0lOVElORyBBTkdMRSBCUkFDS0VUO1BzOzA7T047MzAwODs7OztZO0JSQTs7OzsKKzIzMkE7UklHSFQtUE9JTlRJTkcgQU5HTEUgQlJBQ0tFVDtQZTswO09OOzMwMDk7Ozs7WTtLRVQ7Ozs7CisyMzJCO0VSQVNFIFRPIFRIRSBMRUZUO1NvOzA7T047Ozs7O047REVMRVRFIFRPIFRIRSBMRUZUIEtFWTs7OzsKKzIzMkM7QkVOWkVORSBSSU5HO1NvOzA7T047Ozs7O047Ozs7OworMjMyRDtDWUxJTkRSSUNJVFk7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzJFO0FMTCBBUk9VTkQtUFJPRklMRTtTbzswO09OOzs7OztOOzs7OzsKKzIzMkY7U1lNTUVUUlk7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzMwO1RPVEFMIFJVTk9VVDtTbzswO09OOzs7OztOOzs7OzsKKzIzMzE7RElNRU5TSU9OIE9SSUdJTjtTbzswO09OOzs7OztOOzs7OzsKKzIzMzI7Q09OSUNBTCBUQVBFUjtTbzswO09OOzs7OztOOzs7OzsKKzIzMzM7U0xPUEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzM0O0NPVU5URVJCT1JFO1NvOzA7T047Ozs7O047Ozs7OworMjMzNTtDT1VOVEVSU0lOSztTbzswO09OOzs7OztOOzs7OzsKKzIzMzY7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIEktQkVBTTtTbzswO0w7Ozs7O047Ozs7OworMjMzNztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgU1FVSVNIIFFVQUQ7U287MDtMOzs7OztOOzs7OzsKKzIzMzg7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgRVFVQUw7U287MDtMOzs7OztOOzs7OzsKKzIzMzk7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgRElWSURFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzNBO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIERJQU1PTkQ7U287MDtMOzs7OztOOzs7OzsKKzIzM0I7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgSk9UO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzNDO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIENJUkNMRTtTbzswO0w7Ozs7O047Ozs7OworMjMzRDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgQ0lSQ0xFIFNUSUxFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzNFO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBDSVJDTEUgSk9UO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzNGO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBTTEFTSCBCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNDA7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIEJBQ0tTTEFTSCBCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNDE7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgU0xBU0g7U287MDtMOzs7OztOOzs7OzsKKzIzNDI7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgQkFDS1NMQVNIO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzQzO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIExFU1MtVEhBTjtTbzswO0w7Ozs7O047Ozs7OworMjM0NDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBHUkVBVEVSLVRIQU47U287MDtMOzs7OztOOzs7OzsKKzIzNDU7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIExFRlRXQVJEUyBWQU5FO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzQ2O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBSSUdIVFdBUkRTIFZBTkU7U287MDtMOzs7OztOOzs7OzsKKzIzNDc7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgTEVGVFdBUkRTIEFSUk9XO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzQ4O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIFJJR0hUV0FSRFMgQVJST1c7U287MDtMOzs7OztOOzs7OzsKKzIzNDk7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIENJUkNMRSBCQUNLU0xBU0g7U287MDtMOzs7OztOOzs7OzsKKzIzNEE7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERPV04gVEFDSyBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM0QjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgREVMVEEgU1RJTEU7U287MDtMOzs7OztOOzs7OzsKKzIzNEM7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgRE9XTiBDQVJFVDtTbzswO0w7Ozs7O047Ozs7OworMjM0RDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBERUxUQTtTbzswO0w7Ozs7O047Ozs7OworMjM0RTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgRE9XTiBUQUNLIEpPVDtTbzswO0w7Ozs7O047Ozs7OworMjM0RjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgVVBXQVJEUyBWQU5FO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzUwO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIFVQV0FSRFMgQVJST1c7U287MDtMOzs7OztOOzs7OzsKKzIzNTE7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFVQIFRBQ0sgT1ZFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM1MjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgREVMIFNUSUxFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzUzO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIFVQIENBUkVUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzU0O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIERFTDtTbzswO0w7Ozs7O047Ozs7OworMjM1NTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgVVAgVEFDSyBKT1Q7U287MDtMOzs7OztOOzs7OzsKKzIzNTY7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERPV05XQVJEUyBWQU5FO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzU3O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIERPV05XQVJEUyBBUlJPVztTbzswO0w7Ozs7O047Ozs7OworMjM1ODtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVPVEUgVU5ERVJCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNTk7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERFTFRBIFVOREVSQkFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzVBO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBESUFNT05EIFVOREVSQkFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzVCO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBKT1QgVU5ERVJCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNUM7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIENJUkNMRSBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM1RDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgVVAgU0hPRSBKT1Q7U287MDtMOzs7OztOOzs7OzsKKzIzNUU7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVT1RFIFFVQUQ7U287MDtMOzs7OztOOzs7OzsKKzIzNUY7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIENJUkNMRSBTVEFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzYwO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIENPTE9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzYxO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBVUCBUQUNLIERJQUVSRVNJUztTbzswO0w7Ozs7O047Ozs7OworMjM2MjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgREVMIERJQUVSRVNJUztTbzswO0w7Ozs7O047Ozs7OworMjM2MztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgU1RBUiBESUFFUkVTSVM7U287MDtMOzs7OztOOzs7OzsKKzIzNjQ7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIEpPVCBESUFFUkVTSVM7U287MDtMOzs7OztOOzs7OzsKKzIzNjU7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIENJUkNMRSBESUFFUkVTSVM7U287MDtMOzs7OztOOzs7OzsKKzIzNjY7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERPV04gU0hPRSBTVElMRTtTbzswO0w7Ozs7O047Ozs7OworMjM2NztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgTEVGVCBTSE9FIFNUSUxFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzY4O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBUSUxERSBESUFFUkVTSVM7U287MDtMOzs7OztOOzs7OzsKKzIzNjk7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIEdSRUFURVItVEhBTiBESUFFUkVTSVM7U287MDtMOzs7OztOOzs7OzsKKzIzNkE7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIENPTU1BIEJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM2QjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgREVMIFRJTERFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzZDO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBaSUxERTtTbzswO0w7Ozs7O047Ozs7OworMjM2RDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgU1RJTEUgVElMREU7U287MDtMOzs7OztOOzs7OzsKKzIzNkU7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFNFTUlDT0xPTiBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM2RjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBOT1QgRVFVQUw7U287MDtMOzs7OztOOzs7OzsKKzIzNzA7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgUVVFU1RJT047U287MDtMOzs7OztOOzs7OzsKKzIzNzE7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERPV04gQ0FSRVQgVElMREU7U287MDtMOzs7OztOOzs7OzsKKzIzNzI7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFVQIENBUkVUIFRJTERFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzczO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBJT1RBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzc0O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBSSE87U287MDtMOzs7OztOOzs7OzsKKzIzNzU7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIE9NRUdBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzc2O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBBTFBIQSBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM3NztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgRVBTSUxPTiBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM3ODtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgSU9UQSBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM3OTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgT01FR0EgVU5ERVJCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzN0E7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIEFMUEhBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyNDAwO1NZTUJPTCBGT1IgTlVMTDtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIE5VTEw7Ozs7CisyNDAxO1NZTUJPTCBGT1IgU1RBUlQgT0YgSEVBRElORztTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIFNUQVJUIE9GIEhFQURJTkc7Ozs7CisyNDAyO1NZTUJPTCBGT1IgU1RBUlQgT0YgVEVYVDtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIFNUQVJUIE9GIFRFWFQ7Ozs7CisyNDAzO1NZTUJPTCBGT1IgRU5EIE9GIFRFWFQ7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBFTkQgT0YgVEVYVDs7OzsKKzI0MDQ7U1lNQk9MIEZPUiBFTkQgT0YgVFJBTlNNSVNTSU9OO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgRU5EIE9GIFRSQU5TTUlTU0lPTjs7OzsKKzI0MDU7U1lNQk9MIEZPUiBFTlFVSVJZO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgRU5RVUlSWTs7OzsKKzI0MDY7U1lNQk9MIEZPUiBBQ0tOT1dMRURHRTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEFDS05PV0xFREdFOzs7OworMjQwNztTWU1CT0wgRk9SIEJFTEw7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBCRUxMOzs7OworMjQwODtTWU1CT0wgRk9SIEJBQ0tTUEFDRTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEJBQ0tTUEFDRTs7OzsKKzI0MDk7U1lNQk9MIEZPUiBIT1JJWk9OVEFMIFRBQlVMQVRJT047U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBIT1JJWk9OVEFMIFRBQlVMQVRJT047Ozs7CisyNDBBO1NZTUJPTCBGT1IgTElORSBGRUVEO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgTElORSBGRUVEOzs7OworMjQwQjtTWU1CT0wgRk9SIFZFUlRJQ0FMIFRBQlVMQVRJT047U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBWRVJUSUNBTCBUQUJVTEFUSU9OOzs7OworMjQwQztTWU1CT0wgRk9SIEZPUk0gRkVFRDtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEZPUk0gRkVFRDs7OzsKKzI0MEQ7U1lNQk9MIEZPUiBDQVJSSUFHRSBSRVRVUk47U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBDQVJSSUFHRSBSRVRVUk47Ozs7CisyNDBFO1NZTUJPTCBGT1IgU0hJRlQgT1VUO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgU0hJRlQgT1VUOzs7OworMjQwRjtTWU1CT0wgRk9SIFNISUZUIElOO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgU0hJRlQgSU47Ozs7CisyNDEwO1NZTUJPTCBGT1IgREFUQSBMSU5LIEVTQ0FQRTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIERBVEEgTElOSyBFU0NBUEU7Ozs7CisyNDExO1NZTUJPTCBGT1IgREVWSUNFIENPTlRST0wgT05FO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgREVWSUNFIENPTlRST0wgT05FOzs7OworMjQxMjtTWU1CT0wgRk9SIERFVklDRSBDT05UUk9MIFRXTztTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIERFVklDRSBDT05UUk9MIFRXTzs7OzsKKzI0MTM7U1lNQk9MIEZPUiBERVZJQ0UgQ09OVFJPTCBUSFJFRTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIERFVklDRSBDT05UUk9MIFRIUkVFOzs7OworMjQxNDtTWU1CT0wgRk9SIERFVklDRSBDT05UUk9MIEZPVVI7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBERVZJQ0UgQ09OVFJPTCBGT1VSOzs7OworMjQxNTtTWU1CT0wgRk9SIE5FR0FUSVZFIEFDS05PV0xFREdFO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgTkVHQVRJVkUgQUNLTk9XTEVER0U7Ozs7CisyNDE2O1NZTUJPTCBGT1IgU1lOQ0hST05PVVMgSURMRTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIFNZTkNIUk9OT1VTIElETEU7Ozs7CisyNDE3O1NZTUJPTCBGT1IgRU5EIE9GIFRSQU5TTUlTU0lPTiBCTE9DSztTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEVORCBPRiBUUkFOU01JU1NJT04gQkxPQ0s7Ozs7CisyNDE4O1NZTUJPTCBGT1IgQ0FOQ0VMO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgQ0FOQ0VMOzs7OworMjQxOTtTWU1CT0wgRk9SIEVORCBPRiBNRURJVU07U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBFTkQgT0YgTUVESVVNOzs7OworMjQxQTtTWU1CT0wgRk9SIFNVQlNUSVRVVEU7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBTVUJTVElUVVRFOzs7OworMjQxQjtTWU1CT0wgRk9SIEVTQ0FQRTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEVTQ0FQRTs7OzsKKzI0MUM7U1lNQk9MIEZPUiBGSUxFIFNFUEFSQVRPUjtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEZJTEUgU0VQQVJBVE9SOzs7OworMjQxRDtTWU1CT0wgRk9SIEdST1VQIFNFUEFSQVRPUjtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEdST1VQIFNFUEFSQVRPUjs7OzsKKzI0MUU7U1lNQk9MIEZPUiBSRUNPUkQgU0VQQVJBVE9SO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgUkVDT1JEIFNFUEFSQVRPUjs7OzsKKzI0MUY7U1lNQk9MIEZPUiBVTklUIFNFUEFSQVRPUjtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIFVOSVQgU0VQQVJBVE9SOzs7OworMjQyMDtTWU1CT0wgRk9SIFNQQUNFO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgU1BBQ0U7Ozs7CisyNDIxO1NZTUJPTCBGT1IgREVMRVRFO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgREVMRVRFOzs7OworMjQyMjtCTEFOSyBTWU1CT0w7U287MDtPTjs7Ozs7TjtCTEFOSzs7OzsKKzI0MjM7T1BFTiBCT1g7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNDI0O1NZTUJPTCBGT1IgTkVXTElORTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIE5FV0xJTkU7Ozs7CisyNDQwO09DUiBIT09LO1NvOzA7T047Ozs7O047Ozs7OworMjQ0MTtPQ1IgQ0hBSVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNDQyO09DUiBGT1JLO1NvOzA7T047Ozs7O047Ozs7OworMjQ0MztPQ1IgSU5WRVJURUQgRk9SSztTbzswO09OOzs7OztOOzs7OzsKKzI0NDQ7T0NSIEJFTFQgQlVDS0xFO1NvOzA7T047Ozs7O047Ozs7OworMjQ0NTtPQ1IgQk9XIFRJRTtTbzswO09OOzs7OztOOzs7OzsKKzI0NDY7T0NSIEJSQU5DSCBCQU5LIElERU5USUZJQ0FUSU9OO1NvOzA7T047Ozs7O047Ozs7OworMjQ0NztPQ1IgQU1PVU5UIE9GIENIRUNLO1NvOzA7T047Ozs7O047Ozs7OworMjQ0ODtPQ1IgREFTSDtTbzswO09OOzs7OztOOzs7OzsKKzI0NDk7T0NSIENVU1RPTUVSIEFDQ09VTlQgTlVNQkVSO1NvOzA7T047Ozs7O047Ozs7OworMjQ0QTtPQ1IgRE9VQkxFIEJBQ0tTTEFTSDtTbzswO09OOzs7OztOOzs7OzsKKzI0NjA7Q0lSQ0xFRCBESUdJVCBPTkU7Tm87MDtPTjs8Y2lyY2xlPiAwMDMxOzsxOzE7Tjs7Ozs7CisyNDYxO0NJUkNMRUQgRElHSVQgVFdPO05vOzA7T047PGNpcmNsZT4gMDAzMjs7MjsyO047Ozs7OworMjQ2MjtDSVJDTEVEIERJR0lUIFRIUkVFO05vOzA7T047PGNpcmNsZT4gMDAzMzs7MzszO047Ozs7OworMjQ2MztDSVJDTEVEIERJR0lUIEZPVVI7Tm87MDtPTjs8Y2lyY2xlPiAwMDM0Ozs0OzQ7Tjs7Ozs7CisyNDY0O0NJUkNMRUQgRElHSVQgRklWRTtObzswO09OOzxjaXJjbGU+IDAwMzU7OzU7NTtOOzs7OzsKKzI0NjU7Q0lSQ0xFRCBESUdJVCBTSVg7Tm87MDtPTjs8Y2lyY2xlPiAwMDM2Ozs2OzY7Tjs7Ozs7CisyNDY2O0NJUkNMRUQgRElHSVQgU0VWRU47Tm87MDtPTjs8Y2lyY2xlPiAwMDM3Ozs3Ozc7Tjs7Ozs7CisyNDY3O0NJUkNMRUQgRElHSVQgRUlHSFQ7Tm87MDtPTjs8Y2lyY2xlPiAwMDM4Ozs4Ozg7Tjs7Ozs7CisyNDY4O0NJUkNMRUQgRElHSVQgTklORTtObzswO09OOzxjaXJjbGU+IDAwMzk7Ozk7OTtOOzs7OzsKKzI0Njk7Q0lSQ0xFRCBOVU1CRVIgVEVOO05vOzA7T047PGNpcmNsZT4gMDAzMSAwMDMwOzs7MTA7Tjs7Ozs7CisyNDZBO0NJUkNMRUQgTlVNQkVSIEVMRVZFTjtObzswO09OOzxjaXJjbGU+IDAwMzEgMDAzMTs7OzExO047Ozs7OworMjQ2QjtDSVJDTEVEIE5VTUJFUiBUV0VMVkU7Tm87MDtPTjs8Y2lyY2xlPiAwMDMxIDAwMzI7OzsxMjtOOzs7OzsKKzI0NkM7Q0lSQ0xFRCBOVU1CRVIgVEhJUlRFRU47Tm87MDtPTjs8Y2lyY2xlPiAwMDMxIDAwMzM7OzsxMztOOzs7OzsKKzI0NkQ7Q0lSQ0xFRCBOVU1CRVIgRk9VUlRFRU47Tm87MDtPTjs8Y2lyY2xlPiAwMDMxIDAwMzQ7OzsxNDtOOzs7OzsKKzI0NkU7Q0lSQ0xFRCBOVU1CRVIgRklGVEVFTjtObzswO09OOzxjaXJjbGU+IDAwMzEgMDAzNTs7OzE1O047Ozs7OworMjQ2RjtDSVJDTEVEIE5VTUJFUiBTSVhURUVOO05vOzA7T047PGNpcmNsZT4gMDAzMSAwMDM2Ozs7MTY7Tjs7Ozs7CisyNDcwO0NJUkNMRUQgTlVNQkVSIFNFVkVOVEVFTjtObzswO09OOzxjaXJjbGU+IDAwMzEgMDAzNzs7OzE3O047Ozs7OworMjQ3MTtDSVJDTEVEIE5VTUJFUiBFSUdIVEVFTjtObzswO09OOzxjaXJjbGU+IDAwMzEgMDAzODs7OzE4O047Ozs7OworMjQ3MjtDSVJDTEVEIE5VTUJFUiBOSU5FVEVFTjtObzswO09OOzxjaXJjbGU+IDAwMzEgMDAzOTs7OzE5O047Ozs7OworMjQ3MztDSVJDTEVEIE5VTUJFUiBUV0VOVFk7Tm87MDtPTjs8Y2lyY2xlPiAwMDMyIDAwMzA7OzsyMDtOOzs7OzsKKzI0NzQ7UEFSRU5USEVTSVpFRCBESUdJVCBPTkU7Tm87MDtPTjs8Y29tcGF0PiAwMDI4IDAwMzEgMDAyOTs7MTsxO047Ozs7OworMjQ3NTtQQVJFTlRIRVNJWkVEIERJR0lUIFRXTztObzswO09OOzxjb21wYXQ+IDAwMjggMDAzMiAwMDI5OzsyOzI7Tjs7Ozs7CisyNDc2O1BBUkVOVEhFU0laRUQgRElHSVQgVEhSRUU7Tm87MDtPTjs8Y29tcGF0PiAwMDI4IDAwMzMgMDAyOTs7MzszO047Ozs7OworMjQ3NztQQVJFTlRIRVNJWkVEIERJR0lUIEZPVVI7Tm87MDtPTjs8Y29tcGF0PiAwMDI4IDAwMzQgMDAyOTs7NDs0O047Ozs7OworMjQ3ODtQQVJFTlRIRVNJWkVEIERJR0lUIEZJVkU7Tm87MDtPTjs8Y29tcGF0PiAwMDI4IDAwMzUgMDAyOTs7NTs1O047Ozs7OworMjQ3OTtQQVJFTlRIRVNJWkVEIERJR0lUIFNJWDtObzswO09OOzxjb21wYXQ+IDAwMjggMDAzNiAwMDI5Ozs2OzY7Tjs7Ozs7CisyNDdBO1BBUkVOVEhFU0laRUQgRElHSVQgU0VWRU47Tm87MDtPTjs8Y29tcGF0PiAwMDI4IDAwMzcgMDAyOTs7Nzs3O047Ozs7OworMjQ3QjtQQVJFTlRIRVNJWkVEIERJR0lUIEVJR0hUO05vOzA7T047PGNvbXBhdD4gMDAyOCAwMDM4IDAwMjk7Ozg7ODtOOzs7OzsKKzI0N0M7UEFSRU5USEVTSVpFRCBESUdJVCBOSU5FO05vOzA7T047PGNvbXBhdD4gMDAyOCAwMDM5IDAwMjk7Ozk7OTtOOzs7OzsKKzI0N0Q7UEFSRU5USEVTSVpFRCBOVU1CRVIgVEVOO05vOzA7T047PGNvbXBhdD4gMDAyOCAwMDMxIDAwMzAgMDAyOTs7OzEwO047Ozs7OworMjQ3RTtQQVJFTlRIRVNJWkVEIE5VTUJFUiBFTEVWRU47Tm87MDtPTjs8Y29tcGF0PiAwMDI4IDAwMzEgMDAzMSAwMDI5Ozs7MTE7Tjs7Ozs7CisyNDdGO1BBUkVOVEhFU0laRUQgTlVNQkVSIFRXRUxWRTtObzswO09OOzxjb21wYXQ+IDAwMjggMDAzMSAwMDMyIDAwMjk7OzsxMjtOOzs7OzsKKzI0ODA7UEFSRU5USEVTSVpFRCBOVU1CRVIgVEhJUlRFRU47Tm87MDtPTjs8Y29tcGF0PiAwMDI4IDAwMzEgMDAzMyAwMDI5Ozs7MTM7Tjs7Ozs7CisyNDgxO1BBUkVOVEhFU0laRUQgTlVNQkVSIEZPVVJURUVOO05vOzA7T047PGNvbXBhdD4gMDAyOCAwMDMxIDAwMzQgMDAyOTs7OzE0O047Ozs7OworMjQ4MjtQQVJFTlRIRVNJWkVEIE5VTUJFUiBGSUZURUVOO05vOzA7T047PGNvbXBhdD4gMDAyOCAwMDMxIDAwMzUgMDAyOTs7OzE1O047Ozs7OworMjQ4MztQQVJFTlRIRVNJWkVEIE5VTUJFUiBTSVhURUVOO05vOzA7T047PGNvbXBhdD4gMDAyOCAwMDMxIDAwMzYgMDAyOTs7OzE2O047Ozs7OworMjQ4NDtQQVJFTlRIRVNJWkVEIE5VTUJFUiBTRVZFTlRFRU47Tm87MDtPTjs8Y29tcGF0PiAwMDI4IDAwMzEgMDAzNyAwMDI5Ozs7MTc7Tjs7Ozs7CisyNDg1O1BBUkVOVEhFU0laRUQgTlVNQkVSIEVJR0hURUVOO05vOzA7T047PGNvbXBhdD4gMDAyOCAwMDMxIDAwMzggMDAyOTs7OzE4O047Ozs7OworMjQ4NjtQQVJFTlRIRVNJWkVEIE5VTUJFUiBOSU5FVEVFTjtObzswO09OOzxjb21wYXQ+IDAwMjggMDAzMSAwMDM5IDAwMjk7OzsxOTtOOzs7OzsKKzI0ODc7UEFSRU5USEVTSVpFRCBOVU1CRVIgVFdFTlRZO05vOzA7T047PGNvbXBhdD4gMDAyOCAwMDMyIDAwMzAgMDAyOTs7OzIwO047Ozs7OworMjQ4ODtESUdJVCBPTkUgRlVMTCBTVE9QO05vOzA7T047PGNvbXBhdD4gMDAzMSAwMDJFOzsxOzE7TjtESUdJVCBPTkUgUEVSSU9EOzs7OworMjQ4OTtESUdJVCBUV08gRlVMTCBTVE9QO05vOzA7T047PGNvbXBhdD4gMDAzMiAwMDJFOzsyOzI7TjtESUdJVCBUV08gUEVSSU9EOzs7OworMjQ4QTtESUdJVCBUSFJFRSBGVUxMIFNUT1A7Tm87MDtPTjs8Y29tcGF0PiAwMDMzIDAwMkU7OzM7MztOO0RJR0lUIFRIUkVFIFBFUklPRDs7OzsKKzI0OEI7RElHSVQgRk9VUiBGVUxMIFNUT1A7Tm87MDtPTjs8Y29tcGF0PiAwMDM0IDAwMkU7OzQ7NDtOO0RJR0lUIEZPVVIgUEVSSU9EOzs7OworMjQ4QztESUdJVCBGSVZFIEZVTEwgU1RPUDtObzswO09OOzxjb21wYXQ+IDAwMzUgMDAyRTs7NTs1O047RElHSVQgRklWRSBQRVJJT0Q7Ozs7CisyNDhEO0RJR0lUIFNJWCBGVUxMIFNUT1A7Tm87MDtPTjs8Y29tcGF0PiAwMDM2IDAwMkU7OzY7NjtOO0RJR0lUIFNJWCBQRVJJT0Q7Ozs7CisyNDhFO0RJR0lUIFNFVkVOIEZVTEwgU1RPUDtObzswO09OOzxjb21wYXQ+IDAwMzcgMDAyRTs7Nzs3O047RElHSVQgU0VWRU4gUEVSSU9EOzs7OworMjQ4RjtESUdJVCBFSUdIVCBGVUxMIFNUT1A7Tm87MDtPTjs8Y29tcGF0PiAwMDM4IDAwMkU7Ozg7ODtOO0RJR0lUIEVJR0hUIFBFUklPRDs7OzsKKzI0OTA7RElHSVQgTklORSBGVUxMIFNUT1A7Tm87MDtPTjs8Y29tcGF0PiAwMDM5IDAwMkU7Ozk7OTtOO0RJR0lUIE5JTkUgUEVSSU9EOzs7OworMjQ5MTtOVU1CRVIgVEVOIEZVTEwgU1RPUDtObzswO09OOzxjb21wYXQ+IDAwMzEgMDAzMCAwMDJFOzs7MTA7TjtOVU1CRVIgVEVOIFBFUklPRDs7OzsKKzI0OTI7TlVNQkVSIEVMRVZFTiBGVUxMIFNUT1A7Tm87MDtPTjs8Y29tcGF0PiAwMDMxIDAwMzEgMDAyRTs7OzExO047TlVNQkVSIEVMRVZFTiBQRVJJT0Q7Ozs7CisyNDkzO05VTUJFUiBUV0VMVkUgRlVMTCBTVE9QO05vOzA7T047PGNvbXBhdD4gMDAzMSAwMDMyIDAwMkU7OzsxMjtOO05VTUJFUiBUV0VMVkUgUEVSSU9EOzs7OworMjQ5NDtOVU1CRVIgVEhJUlRFRU4gRlVMTCBTVE9QO05vOzA7T047PGNvbXBhdD4gMDAzMSAwMDMzIDAwMkU7OzsxMztOO05VTUJFUiBUSElSVEVFTiBQRVJJT0Q7Ozs7CisyNDk1O05VTUJFUiBGT1VSVEVFTiBGVUxMIFNUT1A7Tm87MDtPTjs8Y29tcGF0PiAwMDMxIDAwMzQgMDAyRTs7OzE0O047TlVNQkVSIEZPVVJURUVOIFBFUklPRDs7OzsKKzI0OTY7TlVNQkVSIEZJRlRFRU4gRlVMTCBTVE9QO05vOzA7T047PGNvbXBhdD4gMDAzMSAwMDM1IDAwMkU7OzsxNTtOO05VTUJFUiBGSUZURUVOIFBFUklPRDs7OzsKKzI0OTc7TlVNQkVSIFNJWFRFRU4gRlVMTCBTVE9QO05vOzA7T047PGNvbXBhdD4gMDAzMSAwMDM2IDAwMkU7OzsxNjtOO05VTUJFUiBTSVhURUVOIFBFUklPRDs7OzsKKzI0OTg7TlVNQkVSIFNFVkVOVEVFTiBGVUxMIFNUT1A7Tm87MDtPTjs8Y29tcGF0PiAwMDMxIDAwMzcgMDAyRTs7OzE3O047TlVNQkVSIFNFVkVOVEVFTiBQRVJJT0Q7Ozs7CisyNDk5O05VTUJFUiBFSUdIVEVFTiBGVUxMIFNUT1A7Tm87MDtPTjs8Y29tcGF0PiAwMDMxIDAwMzggMDAyRTs7OzE4O047TlVNQkVSIEVJR0hURUVOIFBFUklPRDs7OzsKKzI0OUE7TlVNQkVSIE5JTkVURUVOIEZVTEwgU1RPUDtObzswO09OOzxjb21wYXQ+IDAwMzEgMDAzOSAwMDJFOzs7MTk7TjtOVU1CRVIgTklORVRFRU4gUEVSSU9EOzs7OworMjQ5QjtOVU1CRVIgVFdFTlRZIEZVTEwgU1RPUDtObzswO09OOzxjb21wYXQ+IDAwMzIgMDAzMCAwMDJFOzs7MjA7TjtOVU1CRVIgVFdFTlRZIFBFUklPRDs7OzsKKzI0OUM7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgQTtTbzswO09OOzxjb21wYXQ+IDAwMjggMDA2MSAwMDI5Ozs7O047Ozs7OworMjQ5RDtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBCO1NvOzA7T047PGNvbXBhdD4gMDAyOCAwMDYyIDAwMjk7Ozs7Tjs7Ozs7CisyNDlFO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIEM7U287MDtPTjs8Y29tcGF0PiAwMDI4IDAwNjMgMDAyOTs7OztOOzs7OzsKKzI0OUY7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgRDtTbzswO09OOzxjb21wYXQ+IDAwMjggMDA2NCAwMDI5Ozs7O047Ozs7OworMjRBMDtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBFO1NvOzA7T047PGNvbXBhdD4gMDAyOCAwMDY1IDAwMjk7Ozs7Tjs7Ozs7CisyNEExO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIEY7U287MDtPTjs8Y29tcGF0PiAwMDI4IDAwNjYgMDAyOTs7OztOOzs7OzsKKzI0QTI7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgRztTbzswO09OOzxjb21wYXQ+IDAwMjggMDA2NyAwMDI5Ozs7O047Ozs7OworMjRBMztQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBIO1NvOzA7T047PGNvbXBhdD4gMDAyOCAwMDY4IDAwMjk7Ozs7Tjs7Ozs7CisyNEE0O1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIEk7U287MDtPTjs8Y29tcGF0PiAwMDI4IDAwNjkgMDAyOTs7OztOOzs7OzsKKzI0QTU7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgSjtTbzswO09OOzxjb21wYXQ+IDAwMjggMDA2QSAwMDI5Ozs7O047Ozs7OworMjRBNjtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBLO1NvOzA7T047PGNvbXBhdD4gMDAyOCAwMDZCIDAwMjk7Ozs7Tjs7Ozs7CisyNEE3O1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIEw7U287MDtPTjs8Y29tcGF0PiAwMDI4IDAwNkMgMDAyOTs7OztOOzs7OzsKKzI0QTg7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgTTtTbzswO09OOzxjb21wYXQ+IDAwMjggMDA2RCAwMDI5Ozs7O047Ozs7OworMjRBOTtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBOO1NvOzA7T047PGNvbXBhdD4gMDAyOCAwMDZFIDAwMjk7Ozs7Tjs7Ozs7CisyNEFBO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIE87U287MDtPTjs8Y29tcGF0PiAwMDI4IDAwNkYgMDAyOTs7OztOOzs7OzsKKzI0QUI7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgUDtTbzswO09OOzxjb21wYXQ+IDAwMjggMDA3MCAwMDI5Ozs7O047Ozs7OworMjRBQztQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBRO1NvOzA7T047PGNvbXBhdD4gMDAyOCAwMDcxIDAwMjk7Ozs7Tjs7Ozs7CisyNEFEO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIFI7U287MDtPTjs8Y29tcGF0PiAwMDI4IDAwNzIgMDAyOTs7OztOOzs7OzsKKzI0QUU7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgUztTbzswO09OOzxjb21wYXQ+IDAwMjggMDA3MyAwMDI5Ozs7O047Ozs7OworMjRBRjtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBUO1NvOzA7T047PGNvbXBhdD4gMDAyOCAwMDc0IDAwMjk7Ozs7Tjs7Ozs7CisyNEIwO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIFU7U287MDtPTjs8Y29tcGF0PiAwMDI4IDAwNzUgMDAyOTs7OztOOzs7OzsKKzI0QjE7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgVjtTbzswO09OOzxjb21wYXQ+IDAwMjggMDA3NiAwMDI5Ozs7O047Ozs7OworMjRCMjtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBXO1NvOzA7T047PGNvbXBhdD4gMDAyOCAwMDc3IDAwMjk7Ozs7Tjs7Ozs7CisyNEIzO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIFg7U287MDtPTjs8Y29tcGF0PiAwMDI4IDAwNzggMDAyOTs7OztOOzs7OzsKKzI0QjQ7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgWTtTbzswO09OOzxjb21wYXQ+IDAwMjggMDA3OSAwMDI5Ozs7O047Ozs7OworMjRCNTtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBaO1NvOzA7T047PGNvbXBhdD4gMDAyOCAwMDdBIDAwMjk7Ozs7Tjs7Ozs7CisyNEI2O0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQTtTbzswO09OOzxjaXJjbGU+IDAwNDE7Ozs7Tjs7OzsyNEQwOworMjRCNztDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEI7U287MDtPTjs8Y2lyY2xlPiAwMDQyOzs7O047Ozs7MjREMTsKKzI0Qjg7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBDO1NvOzA7T047PGNpcmNsZT4gMDA0Mzs7OztOOzs7OzI0RDI7CisyNEI5O0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRDtTbzswO09OOzxjaXJjbGU+IDAwNDQ7Ozs7Tjs7OzsyNEQzOworMjRCQTtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEU7U287MDtPTjs8Y2lyY2xlPiAwMDQ1Ozs7O047Ozs7MjRENDsKKzI0QkI7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBGO1NvOzA7T047PGNpcmNsZT4gMDA0Njs7OztOOzs7OzI0RDU7CisyNEJDO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRztTbzswO09OOzxjaXJjbGU+IDAwNDc7Ozs7Tjs7OzsyNEQ2OworMjRCRDtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEg7U287MDtPTjs8Y2lyY2xlPiAwMDQ4Ozs7O047Ozs7MjRENzsKKzI0QkU7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBJO1NvOzA7T047PGNpcmNsZT4gMDA0OTs7OztOOzs7OzI0RDg7CisyNEJGO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSjtTbzswO09OOzxjaXJjbGU+IDAwNEE7Ozs7Tjs7OzsyNEQ5OworMjRDMDtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEs7U287MDtPTjs8Y2lyY2xlPiAwMDRCOzs7O047Ozs7MjREQTsKKzI0QzE7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBMO1NvOzA7T047PGNpcmNsZT4gMDA0Qzs7OztOOzs7OzI0REI7CisyNEMyO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgTTtTbzswO09OOzxjaXJjbGU+IDAwNEQ7Ozs7Tjs7OzsyNERDOworMjRDMztDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIE47U287MDtPTjs8Y2lyY2xlPiAwMDRFOzs7O047Ozs7MjRERDsKKzI0QzQ7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBPO1NvOzA7T047PGNpcmNsZT4gMDA0Rjs7OztOOzs7OzI0REU7CisyNEM1O0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgUDtTbzswO09OOzxjaXJjbGU+IDAwNTA7Ozs7Tjs7OzsyNERGOworMjRDNjtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFE7U287MDtPTjs8Y2lyY2xlPiAwMDUxOzs7O047Ozs7MjRFMDsKKzI0Qzc7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBSO1NvOzA7T047PGNpcmNsZT4gMDA1Mjs7OztOOzs7OzI0RTE7CisyNEM4O0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgUztTbzswO09OOzxjaXJjbGU+IDAwNTM7Ozs7Tjs7OzsyNEUyOworMjRDOTtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFQ7U287MDtPTjs8Y2lyY2xlPiAwMDU0Ozs7O047Ozs7MjRFMzsKKzI0Q0E7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBVO1NvOzA7T047PGNpcmNsZT4gMDA1NTs7OztOOzs7OzI0RTQ7CisyNENCO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVjtTbzswO09OOzxjaXJjbGU+IDAwNTY7Ozs7Tjs7OzsyNEU1OworMjRDQztDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFc7U287MDtPTjs8Y2lyY2xlPiAwMDU3Ozs7O047Ozs7MjRFNjsKKzI0Q0Q7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBYO1NvOzA7T047PGNpcmNsZT4gMDA1ODs7OztOOzs7OzI0RTc7CisyNENFO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgWTtTbzswO09OOzxjaXJjbGU+IDAwNTk7Ozs7Tjs7OzsyNEU4OworMjRDRjtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFo7U287MDtPTjs8Y2lyY2xlPiAwMDVBOzs7O047Ozs7MjRFOTsKKzI0RDA7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgQTtTbzswO09OOzxjaXJjbGU+IDAwNjE7Ozs7Tjs7OzI0QjY7OzI0QjYKKzI0RDE7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgQjtTbzswO09OOzxjaXJjbGU+IDAwNjI7Ozs7Tjs7OzI0Qjc7OzI0QjcKKzI0RDI7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgQztTbzswO09OOzxjaXJjbGU+IDAwNjM7Ozs7Tjs7OzI0Qjg7OzI0QjgKKzI0RDM7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgRDtTbzswO09OOzxjaXJjbGU+IDAwNjQ7Ozs7Tjs7OzI0Qjk7OzI0QjkKKzI0RDQ7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgRTtTbzswO09OOzxjaXJjbGU+IDAwNjU7Ozs7Tjs7OzI0QkE7OzI0QkEKKzI0RDU7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgRjtTbzswO09OOzxjaXJjbGU+IDAwNjY7Ozs7Tjs7OzI0QkI7OzI0QkIKKzI0RDY7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgRztTbzswO09OOzxjaXJjbGU+IDAwNjc7Ozs7Tjs7OzI0QkM7OzI0QkMKKzI0RDc7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgSDtTbzswO09OOzxjaXJjbGU+IDAwNjg7Ozs7Tjs7OzI0QkQ7OzI0QkQKKzI0RDg7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgSTtTbzswO09OOzxjaXJjbGU+IDAwNjk7Ozs7Tjs7OzI0QkU7OzI0QkUKKzI0RDk7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgSjtTbzswO09OOzxjaXJjbGU+IDAwNkE7Ozs7Tjs7OzI0QkY7OzI0QkYKKzI0REE7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgSztTbzswO09OOzxjaXJjbGU+IDAwNkI7Ozs7Tjs7OzI0QzA7OzI0QzAKKzI0REI7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgTDtTbzswO09OOzxjaXJjbGU+IDAwNkM7Ozs7Tjs7OzI0QzE7OzI0QzEKKzI0REM7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgTTtTbzswO09OOzxjaXJjbGU+IDAwNkQ7Ozs7Tjs7OzI0QzI7OzI0QzIKKzI0REQ7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgTjtTbzswO09OOzxjaXJjbGU+IDAwNkU7Ozs7Tjs7OzI0QzM7OzI0QzMKKzI0REU7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgTztTbzswO09OOzxjaXJjbGU+IDAwNkY7Ozs7Tjs7OzI0QzQ7OzI0QzQKKzI0REY7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgUDtTbzswO09OOzxjaXJjbGU+IDAwNzA7Ozs7Tjs7OzI0QzU7OzI0QzUKKzI0RTA7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgUTtTbzswO09OOzxjaXJjbGU+IDAwNzE7Ozs7Tjs7OzI0QzY7OzI0QzYKKzI0RTE7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgUjtTbzswO09OOzxjaXJjbGU+IDAwNzI7Ozs7Tjs7OzI0Qzc7OzI0QzcKKzI0RTI7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgUztTbzswO09OOzxjaXJjbGU+IDAwNzM7Ozs7Tjs7OzI0Qzg7OzI0QzgKKzI0RTM7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgVDtTbzswO09OOzxjaXJjbGU+IDAwNzQ7Ozs7Tjs7OzI0Qzk7OzI0QzkKKzI0RTQ7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgVTtTbzswO09OOzxjaXJjbGU+IDAwNzU7Ozs7Tjs7OzI0Q0E7OzI0Q0EKKzI0RTU7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgVjtTbzswO09OOzxjaXJjbGU+IDAwNzY7Ozs7Tjs7OzI0Q0I7OzI0Q0IKKzI0RTY7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgVztTbzswO09OOzxjaXJjbGU+IDAwNzc7Ozs7Tjs7OzI0Q0M7OzI0Q0MKKzI0RTc7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgWDtTbzswO09OOzxjaXJjbGU+IDAwNzg7Ozs7Tjs7OzI0Q0Q7OzI0Q0QKKzI0RTg7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgWTtTbzswO09OOzxjaXJjbGU+IDAwNzk7Ozs7Tjs7OzI0Q0U7OzI0Q0UKKzI0RTk7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgWjtTbzswO09OOzxjaXJjbGU+IDAwN0E7Ozs7Tjs7OzI0Q0Y7OzI0Q0YKKzI0RUE7Q0lSQ0xFRCBESUdJVCBaRVJPO05vOzA7T047PGNpcmNsZT4gMDAzMDs7MDswO047Ozs7OworMjUwMDtCT1ggRFJBV0lOR1MgTElHSFQgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIEhPUklaT05UQUw7Ozs7CisyNTAxO0JPWCBEUkFXSU5HUyBIRUFWWSBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgSE9SSVpPTlRBTDs7OzsKKzI1MDI7Qk9YIERSQVdJTkdTIExJR0hUIFZFUlRJQ0FMO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgVkVSVElDQUw7Ozs7CisyNTAzO0JPWCBEUkFXSU5HUyBIRUFWWSBWRVJUSUNBTDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFZFUlRJQ0FMOzs7OworMjUwNDtCT1ggRFJBV0lOR1MgTElHSFQgVFJJUExFIERBU0ggSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFRSSVBMRSBEQVNIIEhPUklaT05UQUw7Ozs7CisyNTA1O0JPWCBEUkFXSU5HUyBIRUFWWSBUUklQTEUgREFTSCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVFJJUExFIERBU0ggSE9SSVpPTlRBTDs7OzsKKzI1MDY7Qk9YIERSQVdJTkdTIExJR0hUIFRSSVBMRSBEQVNIIFZFUlRJQ0FMO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgVFJJUExFIERBU0ggVkVSVElDQUw7Ozs7CisyNTA3O0JPWCBEUkFXSU5HUyBIRUFWWSBUUklQTEUgREFTSCBWRVJUSUNBTDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFRSSVBMRSBEQVNIIFZFUlRJQ0FMOzs7OworMjUwODtCT1ggRFJBV0lOR1MgTElHSFQgUVVBRFJVUExFIERBU0ggSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFFVQURSVVBMRSBEQVNIIEhPUklaT05UQUw7Ozs7CisyNTA5O0JPWCBEUkFXSU5HUyBIRUFWWSBRVUFEUlVQTEUgREFTSCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgUVVBRFJVUExFIERBU0ggSE9SSVpPTlRBTDs7OzsKKzI1MEE7Qk9YIERSQVdJTkdTIExJR0hUIFFVQURSVVBMRSBEQVNIIFZFUlRJQ0FMO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgUVVBRFJVUExFIERBU0ggVkVSVElDQUw7Ozs7CisyNTBCO0JPWCBEUkFXSU5HUyBIRUFWWSBRVUFEUlVQTEUgREFTSCBWRVJUSUNBTDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFFVQURSVVBMRSBEQVNIIFZFUlRJQ0FMOzs7OworMjUwQztCT1ggRFJBV0lOR1MgTElHSFQgRE9XTiBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBET1dOIEFORCBSSUdIVDs7OzsKKzI1MEQ7Qk9YIERSQVdJTkdTIERPV04gTElHSFQgQU5EIFJJR0hUIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBMSUdIVCBBTkQgUklHSFQgSEVBVlk7Ozs7CisyNTBFO0JPWCBEUkFXSU5HUyBET1dOIEhFQVZZIEFORCBSSUdIVCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gSEVBVlkgQU5EIFJJR0hUIExJR0hUOzs7OworMjUwRjtCT1ggRFJBV0lOR1MgSEVBVlkgRE9XTiBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBET1dOIEFORCBSSUdIVDs7OzsKKzI1MTA7Qk9YIERSQVdJTkdTIExJR0hUIERPV04gQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBET1dOIEFORCBMRUZUOzs7OworMjUxMTtCT1ggRFJBV0lOR1MgRE9XTiBMSUdIVCBBTkQgTEVGVCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gTElHSFQgQU5EIExFRlQgSEVBVlk7Ozs7CisyNTEyO0JPWCBEUkFXSU5HUyBET1dOIEhFQVZZIEFORCBMRUZUIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBIRUFWWSBBTkQgTEVGVCBMSUdIVDs7OzsKKzI1MTM7Qk9YIERSQVdJTkdTIEhFQVZZIERPV04gQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBET1dOIEFORCBMRUZUOzs7OworMjUxNDtCT1ggRFJBV0lOR1MgTElHSFQgVVAgQU5EIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgVVAgQU5EIFJJR0hUOzs7OworMjUxNTtCT1ggRFJBV0lOR1MgVVAgTElHSFQgQU5EIFJJR0hUIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgVVAgTElHSFQgQU5EIFJJR0hUIEhFQVZZOzs7OworMjUxNjtCT1ggRFJBV0lOR1MgVVAgSEVBVlkgQU5EIFJJR0hUIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgVVAgSEVBVlkgQU5EIFJJR0hUIExJR0hUOzs7OworMjUxNztCT1ggRFJBV0lOR1MgSEVBVlkgVVAgQU5EIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVVAgQU5EIFJJR0hUOzs7OworMjUxODtCT1ggRFJBV0lOR1MgTElHSFQgVVAgQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBVUCBBTkQgTEVGVDs7OzsKKzI1MTk7Qk9YIERSQVdJTkdTIFVQIExJR0hUIEFORCBMRUZUIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgVVAgTElHSFQgQU5EIExFRlQgSEVBVlk7Ozs7CisyNTFBO0JPWCBEUkFXSU5HUyBVUCBIRUFWWSBBTkQgTEVGVCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFVQIEhFQVZZIEFORCBMRUZUIExJR0hUOzs7OworMjUxQjtCT1ggRFJBV0lOR1MgSEVBVlkgVVAgQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBVUCBBTkQgTEVGVDs7OzsKKzI1MUM7Qk9YIERSQVdJTkdTIExJR0hUIFZFUlRJQ0FMIEFORCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFZFUlRJQ0FMIEFORCBSSUdIVDs7OzsKKzI1MUQ7Qk9YIERSQVdJTkdTIFZFUlRJQ0FMIExJR0hUIEFORCBSSUdIVCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIExJR0hUIEFORCBSSUdIVCBIRUFWWTs7OzsKKzI1MUU7Qk9YIERSQVdJTkdTIFVQIEhFQVZZIEFORCBSSUdIVCBET1dOIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgVVAgSEVBVlkgQU5EIFJJR0hUIERPV04gTElHSFQ7Ozs7CisyNTFGO0JPWCBEUkFXSU5HUyBET1dOIEhFQVZZIEFORCBSSUdIVCBVUCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gSEVBVlkgQU5EIFJJR0hUIFVQIExJR0hUOzs7OworMjUyMDtCT1ggRFJBV0lOR1MgVkVSVElDQUwgSEVBVlkgQU5EIFJJR0hUIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgSEVBVlkgQU5EIFJJR0hUIExJR0hUOzs7OworMjUyMTtCT1ggRFJBV0lOR1MgRE9XTiBMSUdIVCBBTkQgUklHSFQgVVAgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIExJR0hUIEFORCBSSUdIVCBVUCBIRUFWWTs7OzsKKzI1MjI7Qk9YIERSQVdJTkdTIFVQIExJR0hUIEFORCBSSUdIVCBET1dOIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgVVAgTElHSFQgQU5EIFJJR0hUIERPV04gSEVBVlk7Ozs7CisyNTIzO0JPWCBEUkFXSU5HUyBIRUFWWSBWRVJUSUNBTCBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBWRVJUSUNBTCBBTkQgUklHSFQ7Ozs7CisyNTI0O0JPWCBEUkFXSU5HUyBMSUdIVCBWRVJUSUNBTCBBTkQgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFZFUlRJQ0FMIEFORCBMRUZUOzs7OworMjUyNTtCT1ggRFJBV0lOR1MgVkVSVElDQUwgTElHSFQgQU5EIExFRlQgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBWRVJUSUNBTCBMSUdIVCBBTkQgTEVGVCBIRUFWWTs7OzsKKzI1MjY7Qk9YIERSQVdJTkdTIFVQIEhFQVZZIEFORCBMRUZUIERPV04gTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBIRUFWWSBBTkQgTEVGVCBET1dOIExJR0hUOzs7OworMjUyNztCT1ggRFJBV0lOR1MgRE9XTiBIRUFWWSBBTkQgTEVGVCBVUCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gSEVBVlkgQU5EIExFRlQgVVAgTElHSFQ7Ozs7CisyNTI4O0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBIRUFWWSBBTkQgTEVGVCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIEhFQVZZIEFORCBMRUZUIExJR0hUOzs7OworMjUyOTtCT1ggRFJBV0lOR1MgRE9XTiBMSUdIVCBBTkQgTEVGVCBVUCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gTElHSFQgQU5EIExFRlQgVVAgSEVBVlk7Ozs7CisyNTJBO0JPWCBEUkFXSU5HUyBVUCBMSUdIVCBBTkQgTEVGVCBET1dOIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgVVAgTElHSFQgQU5EIExFRlQgRE9XTiBIRUFWWTs7OzsKKzI1MkI7Qk9YIERSQVdJTkdTIEhFQVZZIFZFUlRJQ0FMIEFORCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVkVSVElDQUwgQU5EIExFRlQ7Ozs7CisyNTJDO0JPWCBEUkFXSU5HUyBMSUdIVCBET1dOIEFORCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgRE9XTiBBTkQgSE9SSVpPTlRBTDs7OzsKKzI1MkQ7Qk9YIERSQVdJTkdTIExFRlQgSEVBVlkgQU5EIFJJR0hUIERPV04gTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMRUZUIEhFQVZZIEFORCBSSUdIVCBET1dOIExJR0hUOzs7OworMjUyRTtCT1ggRFJBV0lOR1MgUklHSFQgSEVBVlkgQU5EIExFRlQgRE9XTiBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFJJR0hUIEhFQVZZIEFORCBMRUZUIERPV04gTElHSFQ7Ozs7CisyNTJGO0JPWCBEUkFXSU5HUyBET1dOIExJR0hUIEFORCBIT1JJWk9OVEFMIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBMSUdIVCBBTkQgSE9SSVpPTlRBTCBIRUFWWTs7OzsKKzI1MzA7Qk9YIERSQVdJTkdTIERPV04gSEVBVlkgQU5EIEhPUklaT05UQUwgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIEhFQVZZIEFORCBIT1JJWk9OVEFMIExJR0hUOzs7OworMjUzMTtCT1ggRFJBV0lOR1MgUklHSFQgTElHSFQgQU5EIExFRlQgRE9XTiBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFJJR0hUIExJR0hUIEFORCBMRUZUIERPV04gSEVBVlk7Ozs7CisyNTMyO0JPWCBEUkFXSU5HUyBMRUZUIExJR0hUIEFORCBSSUdIVCBET1dOIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgTEVGVCBMSUdIVCBBTkQgUklHSFQgRE9XTiBIRUFWWTs7OzsKKzI1MzM7Qk9YIERSQVdJTkdTIEhFQVZZIERPV04gQU5EIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBET1dOIEFORCBIT1JJWk9OVEFMOzs7OworMjUzNDtCT1ggRFJBV0lOR1MgTElHSFQgVVAgQU5EIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBVUCBBTkQgSE9SSVpPTlRBTDs7OzsKKzI1MzU7Qk9YIERSQVdJTkdTIExFRlQgSEVBVlkgQU5EIFJJR0hUIFVQIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTEVGVCBIRUFWWSBBTkQgUklHSFQgVVAgTElHSFQ7Ozs7CisyNTM2O0JPWCBEUkFXSU5HUyBSSUdIVCBIRUFWWSBBTkQgTEVGVCBVUCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFJJR0hUIEhFQVZZIEFORCBMRUZUIFVQIExJR0hUOzs7OworMjUzNztCT1ggRFJBV0lOR1MgVVAgTElHSFQgQU5EIEhPUklaT05UQUwgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBMSUdIVCBBTkQgSE9SSVpPTlRBTCBIRUFWWTs7OzsKKzI1Mzg7Qk9YIERSQVdJTkdTIFVQIEhFQVZZIEFORCBIT1JJWk9OVEFMIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgVVAgSEVBVlkgQU5EIEhPUklaT05UQUwgTElHSFQ7Ozs7CisyNTM5O0JPWCBEUkFXSU5HUyBSSUdIVCBMSUdIVCBBTkQgTEVGVCBVUCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFJJR0hUIExJR0hUIEFORCBMRUZUIFVQIEhFQVZZOzs7OworMjUzQTtCT1ggRFJBV0lOR1MgTEVGVCBMSUdIVCBBTkQgUklHSFQgVVAgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBMRUZUIExJR0hUIEFORCBSSUdIVCBVUCBIRUFWWTs7OzsKKzI1M0I7Qk9YIERSQVdJTkdTIEhFQVZZIFVQIEFORCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVVAgQU5EIEhPUklaT05UQUw7Ozs7CisyNTNDO0JPWCBEUkFXSU5HUyBMSUdIVCBWRVJUSUNBTCBBTkQgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFZFUlRJQ0FMIEFORCBIT1JJWk9OVEFMOzs7OworMjUzRDtCT1ggRFJBV0lOR1MgTEVGVCBIRUFWWSBBTkQgUklHSFQgVkVSVElDQUwgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMRUZUIEhFQVZZIEFORCBSSUdIVCBWRVJUSUNBTCBMSUdIVDs7OzsKKzI1M0U7Qk9YIERSQVdJTkdTIFJJR0hUIEhFQVZZIEFORCBMRUZUIFZFUlRJQ0FMIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgUklHSFQgSEVBVlkgQU5EIExFRlQgVkVSVElDQUwgTElHSFQ7Ozs7CisyNTNGO0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBMSUdIVCBBTkQgSE9SSVpPTlRBTCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIExJR0hUIEFORCBIT1JJWk9OVEFMIEhFQVZZOzs7OworMjU0MDtCT1ggRFJBV0lOR1MgVVAgSEVBVlkgQU5EIERPV04gSE9SSVpPTlRBTCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFVQIEhFQVZZIEFORCBET1dOIEhPUklaT05UQUwgTElHSFQ7Ozs7CisyNTQxO0JPWCBEUkFXSU5HUyBET1dOIEhFQVZZIEFORCBVUCBIT1JJWk9OVEFMIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBIRUFWWSBBTkQgVVAgSE9SSVpPTlRBTCBMSUdIVDs7OzsKKzI1NDI7Qk9YIERSQVdJTkdTIFZFUlRJQ0FMIEhFQVZZIEFORCBIT1JJWk9OVEFMIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgSEVBVlkgQU5EIEhPUklaT05UQUwgTElHSFQ7Ozs7CisyNTQzO0JPWCBEUkFXSU5HUyBMRUZUIFVQIEhFQVZZIEFORCBSSUdIVCBET1dOIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTEVGVCBVUCBIRUFWWSBBTkQgUklHSFQgRE9XTiBMSUdIVDs7OzsKKzI1NDQ7Qk9YIERSQVdJTkdTIFJJR0hUIFVQIEhFQVZZIEFORCBMRUZUIERPV04gTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBSSUdIVCBVUCBIRUFWWSBBTkQgTEVGVCBET1dOIExJR0hUOzs7OworMjU0NTtCT1ggRFJBV0lOR1MgTEVGVCBET1dOIEhFQVZZIEFORCBSSUdIVCBVUCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExFRlQgRE9XTiBIRUFWWSBBTkQgUklHSFQgVVAgTElHSFQ7Ozs7CisyNTQ2O0JPWCBEUkFXSU5HUyBSSUdIVCBET1dOIEhFQVZZIEFORCBMRUZUIFVQIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgUklHSFQgRE9XTiBIRUFWWSBBTkQgTEVGVCBVUCBMSUdIVDs7OzsKKzI1NDc7Qk9YIERSQVdJTkdTIERPV04gTElHSFQgQU5EIFVQIEhPUklaT05UQUwgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIExJR0hUIEFORCBVUCBIT1JJWk9OVEFMIEhFQVZZOzs7OworMjU0ODtCT1ggRFJBV0lOR1MgVVAgTElHSFQgQU5EIERPV04gSE9SSVpPTlRBTCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIExJR0hUIEFORCBET1dOIEhPUklaT05UQUwgSEVBVlk7Ozs7CisyNTQ5O0JPWCBEUkFXSU5HUyBSSUdIVCBMSUdIVCBBTkQgTEVGVCBWRVJUSUNBTCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFJJR0hUIExJR0hUIEFORCBMRUZUIFZFUlRJQ0FMIEhFQVZZOzs7OworMjU0QTtCT1ggRFJBV0lOR1MgTEVGVCBMSUdIVCBBTkQgUklHSFQgVkVSVElDQUwgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBMRUZUIExJR0hUIEFORCBSSUdIVCBWRVJUSUNBTCBIRUFWWTs7OzsKKzI1NEI7Qk9YIERSQVdJTkdTIEhFQVZZIFZFUlRJQ0FMIEFORCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVkVSVElDQUwgQU5EIEhPUklaT05UQUw7Ozs7CisyNTRDO0JPWCBEUkFXSU5HUyBMSUdIVCBET1VCTEUgREFTSCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgRE9VQkxFIERBU0ggSE9SSVpPTlRBTDs7OzsKKzI1NEQ7Qk9YIERSQVdJTkdTIEhFQVZZIERPVUJMRSBEQVNIIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBET1VCTEUgREFTSCBIT1JJWk9OVEFMOzs7OworMjU0RTtCT1ggRFJBV0lOR1MgTElHSFQgRE9VQkxFIERBU0ggVkVSVElDQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBET1VCTEUgREFTSCBWRVJUSUNBTDs7OzsKKzI1NEY7Qk9YIERSQVdJTkdTIEhFQVZZIERPVUJMRSBEQVNIIFZFUlRJQ0FMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgRE9VQkxFIERBU0ggVkVSVElDQUw7Ozs7CisyNTUwO0JPWCBEUkFXSU5HUyBET1VCTEUgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIERPVUJMRSBIT1JJWk9OVEFMOzs7OworMjU1MTtCT1ggRFJBV0lOR1MgRE9VQkxFIFZFUlRJQ0FMO1NvOzA7T047Ozs7O047Rk9STVMgRE9VQkxFIFZFUlRJQ0FMOzs7OworMjU1MjtCT1ggRFJBV0lOR1MgRE9XTiBTSU5HTEUgQU5EIFJJR0hUIERPVUJMRTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gU0lOR0xFIEFORCBSSUdIVCBET1VCTEU7Ozs7CisyNTUzO0JPWCBEUkFXSU5HUyBET1dOIERPVUJMRSBBTkQgUklHSFQgU0lOR0xFO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBET1VCTEUgQU5EIFJJR0hUIFNJTkdMRTs7OzsKKzI1NTQ7Qk9YIERSQVdJTkdTIERPVUJMRSBET1dOIEFORCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIERPVUJMRSBET1dOIEFORCBSSUdIVDs7OzsKKzI1NTU7Qk9YIERSQVdJTkdTIERPV04gU0lOR0xFIEFORCBMRUZUIERPVUJMRTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gU0lOR0xFIEFORCBMRUZUIERPVUJMRTs7OzsKKzI1NTY7Qk9YIERSQVdJTkdTIERPV04gRE9VQkxFIEFORCBMRUZUIFNJTkdMRTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gRE9VQkxFIEFORCBMRUZUIFNJTkdMRTs7OzsKKzI1NTc7Qk9YIERSQVdJTkdTIERPVUJMRSBET1dOIEFORCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgRE9VQkxFIERPV04gQU5EIExFRlQ7Ozs7CisyNTU4O0JPWCBEUkFXSU5HUyBVUCBTSU5HTEUgQU5EIFJJR0hUIERPVUJMRTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIFNJTkdMRSBBTkQgUklHSFQgRE9VQkxFOzs7OworMjU1OTtCT1ggRFJBV0lOR1MgVVAgRE9VQkxFIEFORCBSSUdIVCBTSU5HTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBET1VCTEUgQU5EIFJJR0hUIFNJTkdMRTs7OzsKKzI1NUE7Qk9YIERSQVdJTkdTIERPVUJMRSBVUCBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBET1VCTEUgVVAgQU5EIFJJR0hUOzs7OworMjU1QjtCT1ggRFJBV0lOR1MgVVAgU0lOR0xFIEFORCBMRUZUIERPVUJMRTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIFNJTkdMRSBBTkQgTEVGVCBET1VCTEU7Ozs7CisyNTVDO0JPWCBEUkFXSU5HUyBVUCBET1VCTEUgQU5EIExFRlQgU0lOR0xFO1NvOzA7T047Ozs7O047Rk9STVMgVVAgRE9VQkxFIEFORCBMRUZUIFNJTkdMRTs7OzsKKzI1NUQ7Qk9YIERSQVdJTkdTIERPVUJMRSBVUCBBTkQgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIERPVUJMRSBVUCBBTkQgTEVGVDs7OzsKKzI1NUU7Qk9YIERSQVdJTkdTIFZFUlRJQ0FMIFNJTkdMRSBBTkQgUklHSFQgRE9VQkxFO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgU0lOR0xFIEFORCBSSUdIVCBET1VCTEU7Ozs7CisyNTVGO0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBET1VCTEUgQU5EIFJJR0hUIFNJTkdMRTtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIERPVUJMRSBBTkQgUklHSFQgU0lOR0xFOzs7OworMjU2MDtCT1ggRFJBV0lOR1MgRE9VQkxFIFZFUlRJQ0FMIEFORCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIERPVUJMRSBWRVJUSUNBTCBBTkQgUklHSFQ7Ozs7CisyNTYxO0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBTSU5HTEUgQU5EIExFRlQgRE9VQkxFO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgU0lOR0xFIEFORCBMRUZUIERPVUJMRTs7OzsKKzI1NjI7Qk9YIERSQVdJTkdTIFZFUlRJQ0FMIERPVUJMRSBBTkQgTEVGVCBTSU5HTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBWRVJUSUNBTCBET1VCTEUgQU5EIExFRlQgU0lOR0xFOzs7OworMjU2MztCT1ggRFJBV0lOR1MgRE9VQkxFIFZFUlRJQ0FMIEFORCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgRE9VQkxFIFZFUlRJQ0FMIEFORCBMRUZUOzs7OworMjU2NDtCT1ggRFJBV0lOR1MgRE9XTiBTSU5HTEUgQU5EIEhPUklaT05UQUwgRE9VQkxFO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBTSU5HTEUgQU5EIEhPUklaT05UQUwgRE9VQkxFOzs7OworMjU2NTtCT1ggRFJBV0lOR1MgRE9XTiBET1VCTEUgQU5EIEhPUklaT05UQUwgU0lOR0xFO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBET1VCTEUgQU5EIEhPUklaT05UQUwgU0lOR0xFOzs7OworMjU2NjtCT1ggRFJBV0lOR1MgRE9VQkxFIERPV04gQU5EIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBET1VCTEUgRE9XTiBBTkQgSE9SSVpPTlRBTDs7OzsKKzI1Njc7Qk9YIERSQVdJTkdTIFVQIFNJTkdMRSBBTkQgSE9SSVpPTlRBTCBET1VCTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBTSU5HTEUgQU5EIEhPUklaT05UQUwgRE9VQkxFOzs7OworMjU2ODtCT1ggRFJBV0lOR1MgVVAgRE9VQkxFIEFORCBIT1JJWk9OVEFMIFNJTkdMRTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIERPVUJMRSBBTkQgSE9SSVpPTlRBTCBTSU5HTEU7Ozs7CisyNTY5O0JPWCBEUkFXSU5HUyBET1VCTEUgVVAgQU5EIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBET1VCTEUgVVAgQU5EIEhPUklaT05UQUw7Ozs7CisyNTZBO0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBTSU5HTEUgQU5EIEhPUklaT05UQUwgRE9VQkxFO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgU0lOR0xFIEFORCBIT1JJWk9OVEFMIERPVUJMRTs7OzsKKzI1NkI7Qk9YIERSQVdJTkdTIFZFUlRJQ0FMIERPVUJMRSBBTkQgSE9SSVpPTlRBTCBTSU5HTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBWRVJUSUNBTCBET1VCTEUgQU5EIEhPUklaT05UQUwgU0lOR0xFOzs7OworMjU2QztCT1ggRFJBV0lOR1MgRE9VQkxFIFZFUlRJQ0FMIEFORCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgRE9VQkxFIFZFUlRJQ0FMIEFORCBIT1JJWk9OVEFMOzs7OworMjU2RDtCT1ggRFJBV0lOR1MgTElHSFQgQVJDIERPV04gQU5EIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgQVJDIERPV04gQU5EIFJJR0hUOzs7OworMjU2RTtCT1ggRFJBV0lOR1MgTElHSFQgQVJDIERPV04gQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBBUkMgRE9XTiBBTkQgTEVGVDs7OzsKKzI1NkY7Qk9YIERSQVdJTkdTIExJR0hUIEFSQyBVUCBBTkQgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIEFSQyBVUCBBTkQgTEVGVDs7OzsKKzI1NzA7Qk9YIERSQVdJTkdTIExJR0hUIEFSQyBVUCBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBBUkMgVVAgQU5EIFJJR0hUOzs7OworMjU3MTtCT1ggRFJBV0lOR1MgTElHSFQgRElBR09OQUwgVVBQRVIgUklHSFQgVE8gTE9XRVIgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIERJQUdPTkFMIFVQUEVSIFJJR0hUIFRPIExPV0VSIExFRlQ7Ozs7CisyNTcyO0JPWCBEUkFXSU5HUyBMSUdIVCBESUFHT05BTCBVUFBFUiBMRUZUIFRPIExPV0VSIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgRElBR09OQUwgVVBQRVIgTEVGVCBUTyBMT1dFUiBSSUdIVDs7OzsKKzI1NzM7Qk9YIERSQVdJTkdTIExJR0hUIERJQUdPTkFMIENST1NTO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgRElBR09OQUwgQ1JPU1M7Ozs7CisyNTc0O0JPWCBEUkFXSU5HUyBMSUdIVCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgTEVGVDs7OzsKKzI1NzU7Qk9YIERSQVdJTkdTIExJR0hUIFVQO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgVVA7Ozs7CisyNTc2O0JPWCBEUkFXSU5HUyBMSUdIVCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFJJR0hUOzs7OworMjU3NztCT1ggRFJBV0lOR1MgTElHSFQgRE9XTjtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIERPV047Ozs7CisyNTc4O0JPWCBEUkFXSU5HUyBIRUFWWSBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgTEVGVDs7OzsKKzI1Nzk7Qk9YIERSQVdJTkdTIEhFQVZZIFVQO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVVA7Ozs7CisyNTdBO0JPWCBEUkFXSU5HUyBIRUFWWSBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFJJR0hUOzs7OworMjU3QjtCT1ggRFJBV0lOR1MgSEVBVlkgRE9XTjtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIERPV047Ozs7CisyNTdDO0JPWCBEUkFXSU5HUyBMSUdIVCBMRUZUIEFORCBIRUFWWSBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIExFRlQgQU5EIEhFQVZZIFJJR0hUOzs7OworMjU3RDtCT1ggRFJBV0lOR1MgTElHSFQgVVAgQU5EIEhFQVZZIERPV047U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBVUCBBTkQgSEVBVlkgRE9XTjs7OzsKKzI1N0U7Qk9YIERSQVdJTkdTIEhFQVZZIExFRlQgQU5EIExJR0hUIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgTEVGVCBBTkQgTElHSFQgUklHSFQ7Ozs7CisyNTdGO0JPWCBEUkFXSU5HUyBIRUFWWSBVUCBBTkQgTElHSFQgRE9XTjtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFVQIEFORCBMSUdIVCBET1dOOzs7OworMjU4MDtVUFBFUiBIQUxGIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4MTtMT1dFUiBPTkUgRUlHSFRIIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4MjtMT1dFUiBPTkUgUVVBUlRFUiBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1ODM7TE9XRVIgVEhSRUUgRUlHSFRIUyBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1ODQ7TE9XRVIgSEFMRiBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1ODU7TE9XRVIgRklWRSBFSUdIVEhTIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4NjtMT1dFUiBUSFJFRSBRVUFSVEVSUyBCTE9DSztTbzswO09OOzs7OztOO0xPV0VSIFRIUkVFIFFVQVJURVIgQkxPQ0s7Ozs7CisyNTg3O0xPV0VSIFNFVkVOIEVJR0hUSFMgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTg4O0ZVTEwgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTg5O0xFRlQgU0VWRU4gRUlHSFRIUyBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1OEE7TEVGVCBUSFJFRSBRVUFSVEVSUyBCTE9DSztTbzswO09OOzs7OztOO0xFRlQgVEhSRUUgUVVBUlRFUiBCTE9DSzs7OzsKKzI1OEI7TEVGVCBGSVZFIEVJR0hUSFMgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNThDO0xFRlQgSEFMRiBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1OEQ7TEVGVCBUSFJFRSBFSUdIVEhTIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4RTtMRUZUIE9ORSBRVUFSVEVSIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4RjtMRUZUIE9ORSBFSUdIVEggQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTkwO1JJR0hUIEhBTEYgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTkxO0xJR0hUIFNIQURFO1NvOzA7T047Ozs7O047Ozs7OworMjU5MjtNRURJVU0gU0hBREU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTkzO0RBUksgU0hBREU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTk0O1VQUEVSIE9ORSBFSUdIVEggQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTk1O1JJR0hUIE9ORSBFSUdIVEggQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUEwO0JMQUNLIFNRVUFSRTtTbzswO09OOzs7OztOOzs7OzsKKzI1QTE7V0hJVEUgU1FVQVJFO1NvOzA7T047Ozs7O047Ozs7OworMjVBMjtXSElURSBTUVVBUkUgV0lUSCBST1VOREVEIENPUk5FUlM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUEzO1dISVRFIFNRVUFSRSBDT05UQUlOSU5HIEJMQUNLIFNNQUxMIFNRVUFSRTtTbzswO09OOzs7OztOOzs7OzsKKzI1QTQ7U1FVQVJFIFdJVEggSE9SSVpPTlRBTCBGSUxMO1NvOzA7T047Ozs7O047Ozs7OworMjVBNTtTUVVBUkUgV0lUSCBWRVJUSUNBTCBGSUxMO1NvOzA7T047Ozs7O047Ozs7OworMjVBNjtTUVVBUkUgV0lUSCBPUlRIT0dPTkFMIENST1NTSEFUQ0ggRklMTDtTbzswO09OOzs7OztOOzs7OzsKKzI1QTc7U1FVQVJFIFdJVEggVVBQRVIgTEVGVCBUTyBMT1dFUiBSSUdIVCBGSUxMO1NvOzA7T047Ozs7O047Ozs7OworMjVBODtTUVVBUkUgV0lUSCBVUFBFUiBSSUdIVCBUTyBMT1dFUiBMRUZUIEZJTEw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUE5O1NRVUFSRSBXSVRIIERJQUdPTkFMIENST1NTSEFUQ0ggRklMTDtTbzswO09OOzs7OztOOzs7OzsKKzI1QUE7QkxBQ0sgU01BTEwgU1FVQVJFO1NvOzA7T047Ozs7O047Ozs7OworMjVBQjtXSElURSBTTUFMTCBTUVVBUkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUFDO0JMQUNLIFJFQ1RBTkdMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1QUQ7V0hJVEUgUkVDVEFOR0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVBRTtCTEFDSyBWRVJUSUNBTCBSRUNUQU5HTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUFGO1dISVRFIFZFUlRJQ0FMIFJFQ1RBTkdMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1QjA7QkxBQ0sgUEFSQUxMRUxPR1JBTTtTbzswO09OOzs7OztOOzs7OzsKKzI1QjE7V0hJVEUgUEFSQUxMRUxPR1JBTTtTbzswO09OOzs7OztOOzs7OzsKKzI1QjI7QkxBQ0sgVVAtUE9JTlRJTkcgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtCTEFDSyBVUCBQT0lOVElORyBUUklBTkdMRTs7OzsKKzI1QjM7V0hJVEUgVVAtUE9JTlRJTkcgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtXSElURSBVUCBQT0lOVElORyBUUklBTkdMRTs7OzsKKzI1QjQ7QkxBQ0sgVVAtUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtCTEFDSyBVUCBQT0lOVElORyBTTUFMTCBUUklBTkdMRTs7OzsKKzI1QjU7V0hJVEUgVVAtUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtXSElURSBVUCBQT0lOVElORyBTTUFMTCBUUklBTkdMRTs7OzsKKzI1QjY7QkxBQ0sgUklHSFQtUE9JTlRJTkcgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtCTEFDSyBSSUdIVCBQT0lOVElORyBUUklBTkdMRTs7OzsKKzI1Qjc7V0hJVEUgUklHSFQtUE9JTlRJTkcgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtXSElURSBSSUdIVCBQT0lOVElORyBUUklBTkdMRTs7OzsKKzI1Qjg7QkxBQ0sgUklHSFQtUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtCTEFDSyBSSUdIVCBQT0lOVElORyBTTUFMTCBUUklBTkdMRTs7OzsKKzI1Qjk7V0hJVEUgUklHSFQtUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtXSElURSBSSUdIVCBQT0lOVElORyBTTUFMTCBUUklBTkdMRTs7OzsKKzI1QkE7QkxBQ0sgUklHSFQtUE9JTlRJTkcgUE9JTlRFUjtTbzswO09OOzs7OztOO0JMQUNLIFJJR0hUIFBPSU5USU5HIFBPSU5URVI7Ozs7CisyNUJCO1dISVRFIFJJR0hULVBPSU5USU5HIFBPSU5URVI7U287MDtPTjs7Ozs7TjtXSElURSBSSUdIVCBQT0lOVElORyBQT0lOVEVSOzs7OworMjVCQztCTEFDSyBET1dOLVBPSU5USU5HIFRSSUFOR0xFO1NvOzA7T047Ozs7O047QkxBQ0sgRE9XTiBQT0lOVElORyBUUklBTkdMRTs7OzsKKzI1QkQ7V0hJVEUgRE9XTi1QT0lOVElORyBUUklBTkdMRTtTbzswO09OOzs7OztOO1dISVRFIERPV04gUE9JTlRJTkcgVFJJQU5HTEU7Ozs7CisyNUJFO0JMQUNLIERPV04tUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtCTEFDSyBET1dOIFBPSU5USU5HIFNNQUxMIFRSSUFOR0xFOzs7OworMjVCRjtXSElURSBET1dOLVBPSU5USU5HIFNNQUxMIFRSSUFOR0xFO1NvOzA7T047Ozs7O047V0hJVEUgRE9XTiBQT0lOVElORyBTTUFMTCBUUklBTkdMRTs7OzsKKzI1QzA7QkxBQ0sgTEVGVC1QT0lOVElORyBUUklBTkdMRTtTbzswO09OOzs7OztOO0JMQUNLIExFRlQgUE9JTlRJTkcgVFJJQU5HTEU7Ozs7CisyNUMxO1dISVRFIExFRlQtUE9JTlRJTkcgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtXSElURSBMRUZUIFBPSU5USU5HIFRSSUFOR0xFOzs7OworMjVDMjtCTEFDSyBMRUZULVBPSU5USU5HIFNNQUxMIFRSSUFOR0xFO1NvOzA7T047Ozs7O047QkxBQ0sgTEVGVCBQT0lOVElORyBTTUFMTCBUUklBTkdMRTs7OzsKKzI1QzM7V0hJVEUgTEVGVC1QT0lOVElORyBTTUFMTCBUUklBTkdMRTtTbzswO09OOzs7OztOO1dISVRFIExFRlQgUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7Ozs7CisyNUM0O0JMQUNLIExFRlQtUE9JTlRJTkcgUE9JTlRFUjtTbzswO09OOzs7OztOO0JMQUNLIExFRlQgUE9JTlRJTkcgUE9JTlRFUjs7OzsKKzI1QzU7V0hJVEUgTEVGVC1QT0lOVElORyBQT0lOVEVSO1NvOzA7T047Ozs7O047V0hJVEUgTEVGVCBQT0lOVElORyBQT0lOVEVSOzs7OworMjVDNjtCTEFDSyBESUFNT05EO1NvOzA7T047Ozs7O047Ozs7OworMjVDNztXSElURSBESUFNT05EO1NvOzA7T047Ozs7O047Ozs7OworMjVDODtXSElURSBESUFNT05EIENPTlRBSU5JTkcgQkxBQ0sgU01BTEwgRElBTU9ORDtTbzswO09OOzs7OztOOzs7OzsKKzI1Qzk7RklTSEVZRTtTbzswO09OOzs7OztOOzs7OzsKKzI1Q0E7TE9aRU5HRTtTbzswO09OOzs7OztOOzs7OzsKKzI1Q0I7V0hJVEUgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVDQztET1RURUQgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVDRDtDSVJDTEUgV0lUSCBWRVJUSUNBTCBGSUxMO1NvOzA7T047Ozs7O047Ozs7OworMjVDRTtCVUxMU0VZRTtTbzswO09OOzs7OztOOzs7OzsKKzI1Q0Y7QkxBQ0sgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVEMDtDSVJDTEUgV0lUSCBMRUZUIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUQxO0NJUkNMRSBXSVRIIFJJR0hUIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUQyO0NJUkNMRSBXSVRIIExPV0VSIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUQzO0NJUkNMRSBXSVRIIFVQUEVSIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUQ0O0NJUkNMRSBXSVRIIFVQUEVSIFJJR0hUIFFVQURSQU5UIEJMQUNLO1NvOzA7T047Ozs7O047Ozs7OworMjVENTtDSVJDTEUgV0lUSCBBTEwgQlVUIFVQUEVSIExFRlQgUVVBRFJBTlQgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUQ2O0xFRlQgSEFMRiBCTEFDSyBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUQ3O1JJR0hUIEhBTEYgQkxBQ0sgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVEODtJTlZFUlNFIEJVTExFVDtTbzswO09OOzs7OztOOzs7OzsKKzI1RDk7SU5WRVJTRSBXSElURSBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNURBO1VQUEVSIEhBTEYgSU5WRVJTRSBXSElURSBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNURCO0xPV0VSIEhBTEYgSU5WRVJTRSBXSElURSBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNURDO1VQUEVSIExFRlQgUVVBRFJBTlQgQ0lSQ1VMQVIgQVJDO1NvOzA7T047Ozs7O047Ozs7OworMjVERDtVUFBFUiBSSUdIVCBRVUFEUkFOVCBDSVJDVUxBUiBBUkM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNURFO0xPV0VSIFJJR0hUIFFVQURSQU5UIENJUkNVTEFSIEFSQztTbzswO09OOzs7OztOOzs7OzsKKzI1REY7TE9XRVIgTEVGVCBRVUFEUkFOVCBDSVJDVUxBUiBBUkM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUUwO1VQUEVSIEhBTEYgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVFMTtMT1dFUiBIQUxGIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1RTI7QkxBQ0sgTE9XRVIgUklHSFQgVFJJQU5HTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUUzO0JMQUNLIExPV0VSIExFRlQgVFJJQU5HTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUU0O0JMQUNLIFVQUEVSIExFRlQgVFJJQU5HTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUU1O0JMQUNLIFVQUEVSIFJJR0hUIFRSSUFOR0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVFNjtXSElURSBCVUxMRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUU3O1NRVUFSRSBXSVRIIExFRlQgSEFMRiBCTEFDSztTbzswO09OOzs7OztOOzs7OzsKKzI1RTg7U1FVQVJFIFdJVEggUklHSFQgSEFMRiBCTEFDSztTbzswO09OOzs7OztOOzs7OzsKKzI1RTk7U1FVQVJFIFdJVEggVVBQRVIgTEVGVCBESUFHT05BTCBIQUxGIEJMQUNLO1NvOzA7T047Ozs7O047Ozs7OworMjVFQTtTUVVBUkUgV0lUSCBMT1dFUiBSSUdIVCBESUFHT05BTCBIQUxGIEJMQUNLO1NvOzA7T047Ozs7O047Ozs7OworMjVFQjtXSElURSBTUVVBUkUgV0lUSCBWRVJUSUNBTCBCSVNFQ1RJTkcgTElORTtTbzswO09OOzs7OztOOzs7OzsKKzI1RUM7V0hJVEUgVVAtUE9JTlRJTkcgVFJJQU5HTEUgV0lUSCBET1Q7U287MDtPTjs7Ozs7TjtXSElURSBVUCBQT0lOVElORyBUUklBTkdMRSBXSVRIIERPVDs7OzsKKzI1RUQ7VVAtUE9JTlRJTkcgVFJJQU5HTEUgV0lUSCBMRUZUIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7TjtVUCBQT0lOVElORyBUUklBTkdMRSBXSVRIIExFRlQgSEFMRiBCTEFDSzs7OzsKKzI1RUU7VVAtUE9JTlRJTkcgVFJJQU5HTEUgV0lUSCBSSUdIVCBIQUxGIEJMQUNLO1NvOzA7T047Ozs7O047VVAgUE9JTlRJTkcgVFJJQU5HTEUgV0lUSCBSSUdIVCBIQUxGIEJMQUNLOzs7OworMjVFRjtMQVJHRSBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjAwO0JMQUNLIFNVTiBXSVRIIFJBWVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjAxO0NMT1VEO1NvOzA7T047Ozs7O047Ozs7OworMjYwMjtVTUJSRUxMQTtTbzswO09OOzs7OztOOzs7OzsKKzI2MDM7U05PV01BTjtTbzswO09OOzs7OztOOzs7OzsKKzI2MDQ7Q09NRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjA1O0JMQUNLIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjA2O1dISVRFIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjA3O0xJR0hUTklORztTbzswO09OOzs7OztOOzs7OzsKKzI2MDg7VEhVTkRFUlNUT1JNO1NvOzA7T047Ozs7O047Ozs7OworMjYwOTtTVU47U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjBBO0FTQ0VORElORyBOT0RFO1NvOzA7T047Ozs7O047Ozs7OworMjYwQjtERVNDRU5ESU5HIE5PREU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjBDO0NPTkpVTkNUSU9OO1NvOzA7T047Ozs7O047Ozs7OworMjYwRDtPUFBPU0lUSU9OO1NvOzA7T047Ozs7O047Ozs7OworMjYwRTtCTEFDSyBURUxFUEhPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjBGO1dISVRFIFRFTEVQSE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzI2MTA7QkFMTE9UIEJPWDtTbzswO09OOzs7OztOOzs7OzsKKzI2MTE7QkFMTE9UIEJPWCBXSVRIIENIRUNLO1NvOzA7T047Ozs7O047Ozs7OworMjYxMjtCQUxMT1QgQk9YIFdJVEggWDtTbzswO09OOzs7OztOOzs7OzsKKzI2MTM7U0FMVElSRTtTbzswO09OOzs7OztOOzs7OzsKKzI2MUE7QkxBQ0sgTEVGVCBQT0lOVElORyBJTkRFWDtTbzswO09OOzs7OztOOzs7OzsKKzI2MUI7QkxBQ0sgUklHSFQgUE9JTlRJTkcgSU5ERVg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjFDO1dISVRFIExFRlQgUE9JTlRJTkcgSU5ERVg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjFEO1dISVRFIFVQIFBPSU5USU5HIElOREVYO1NvOzA7T047Ozs7O047Ozs7OworMjYxRTtXSElURSBSSUdIVCBQT0lOVElORyBJTkRFWDtTbzswO09OOzs7OztOOzs7OzsKKzI2MUY7V0hJVEUgRE9XTiBQT0lOVElORyBJTkRFWDtTbzswO09OOzs7OztOOzs7OzsKKzI2MjA7U0tVTEwgQU5EIENST1NTQk9ORVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjIxO0NBVVRJT04gU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzI2MjI7UkFESU9BQ1RJVkUgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzI2MjM7QklPSEFaQVJEIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjI0O0NBRFVDRVVTO1NvOzA7T047Ozs7O047Ozs7OworMjYyNTtBTktIO1NvOzA7T047Ozs7O047Ozs7OworMjYyNjtPUlRIT0RPWCBDUk9TUztTbzswO09OOzs7OztOOzs7OzsKKzI2Mjc7Q0hJIFJITztTbzswO09OOzs7OztOOzs7OzsKKzI2Mjg7Q1JPU1MgT0YgTE9SUkFJTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjI5O0NST1NTIE9GIEpFUlVTQUxFTTtTbzswO09OOzs7OztOOzs7OzsKKzI2MkE7U1RBUiBBTkQgQ1JFU0NFTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjJCO0ZBUlNJIFNZTUJPTDtTbzswO09OOzs7OztOO1NZTUJPTCBPRiBJUkFOOzs7OworMjYyQztBREkgU0hBS1RJO1NvOzA7T047Ozs7O047Ozs7OworMjYyRDtIQU1NRVIgQU5EIFNJQ0tMRTtTbzswO09OOzs7OztOOzs7OzsKKzI2MkU7UEVBQ0UgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjYyRjtZSU4gWUFORztTbzswO09OOzs7OztOOzs7OzsKKzI2MzA7VFJJR1JBTSBGT1IgSEVBVkVOO1NvOzA7T047Ozs7O047Ozs7OworMjYzMTtUUklHUkFNIEZPUiBMQUtFO1NvOzA7T047Ozs7O047Ozs7OworMjYzMjtUUklHUkFNIEZPUiBGSVJFO1NvOzA7T047Ozs7O047Ozs7OworMjYzMztUUklHUkFNIEZPUiBUSFVOREVSO1NvOzA7T047Ozs7O047Ozs7OworMjYzNDtUUklHUkFNIEZPUiBXSU5EO1NvOzA7T047Ozs7O047Ozs7OworMjYzNTtUUklHUkFNIEZPUiBXQVRFUjtTbzswO09OOzs7OztOOzs7OzsKKzI2MzY7VFJJR1JBTSBGT1IgTU9VTlRBSU47U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjM3O1RSSUdSQU0gRk9SIEVBUlRIO1NvOzA7T047Ozs7O047Ozs7OworMjYzODtXSEVFTCBPRiBESEFSTUE7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjM5O1dISVRFIEZST1dOSU5HIEZBQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjNBO1dISVRFIFNNSUxJTkcgRkFDRTtTbzswO09OOzs7OztOOzs7OzsKKzI2M0I7QkxBQ0sgU01JTElORyBGQUNFO1NvOzA7T047Ozs7O047Ozs7OworMjYzQztXSElURSBTVU4gV0lUSCBSQVlTO1NvOzA7T047Ozs7O047Ozs7OworMjYzRDtGSVJTVCBRVUFSVEVSIE1PT047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjNFO0xBU1QgUVVBUlRFUiBNT09OO1NvOzA7T047Ozs7O047Ozs7OworMjYzRjtNRVJDVVJZO1NvOzA7T047Ozs7O047Ozs7OworMjY0MDtGRU1BTEUgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzI2NDE7RUFSVEg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjQyO01BTEUgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzI2NDM7SlVQSVRFUjtTbzswO09OOzs7OztOOzs7OzsKKzI2NDQ7U0FUVVJOO1NvOzA7T047Ozs7O047Ozs7OworMjY0NTtVUkFOVVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjQ2O05FUFRVTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjQ3O1BMVVRPO1NvOzA7T047Ozs7O047Ozs7OworMjY0ODtBUklFUztTbzswO09OOzs7OztOOzs7OzsKKzI2NDk7VEFVUlVTO1NvOzA7T047Ozs7O047Ozs7OworMjY0QTtHRU1JTkk7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjRCO0NBTkNFUjtTbzswO09OOzs7OztOOzs7OzsKKzI2NEM7TEVPO1NvOzA7T047Ozs7O047Ozs7OworMjY0RDtWSVJHTztTbzswO09OOzs7OztOOzs7OzsKKzI2NEU7TElCUkE7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjRGO1NDT1JQSVVTO1NvOzA7T047Ozs7O047Ozs7OworMjY1MDtTQUdJVFRBUklVUztTbzswO09OOzs7OztOOzs7OzsKKzI2NTE7Q0FQUklDT1JOO1NvOzA7T047Ozs7O047Ozs7OworMjY1MjtBUVVBUklVUztTbzswO09OOzs7OztOOzs7OzsKKzI2NTM7UElTQ0VTO1NvOzA7T047Ozs7O047Ozs7OworMjY1NDtXSElURSBDSEVTUyBLSU5HO1NvOzA7T047Ozs7O047Ozs7OworMjY1NTtXSElURSBDSEVTUyBRVUVFTjtTbzswO09OOzs7OztOOzs7OzsKKzI2NTY7V0hJVEUgQ0hFU1MgUk9PSztTbzswO09OOzs7OztOOzs7OzsKKzI2NTc7V0hJVEUgQ0hFU1MgQklTSE9QO1NvOzA7T047Ozs7O047Ozs7OworMjY1ODtXSElURSBDSEVTUyBLTklHSFQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjU5O1dISVRFIENIRVNTIFBBV047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjVBO0JMQUNLIENIRVNTIEtJTkc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjVCO0JMQUNLIENIRVNTIFFVRUVOO1NvOzA7T047Ozs7O047Ozs7OworMjY1QztCTEFDSyBDSEVTUyBST09LO1NvOzA7T047Ozs7O047Ozs7OworMjY1RDtCTEFDSyBDSEVTUyBCSVNIT1A7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjVFO0JMQUNLIENIRVNTIEtOSUdIVDtTbzswO09OOzs7OztOOzs7OzsKKzI2NUY7QkxBQ0sgQ0hFU1MgUEFXTjtTbzswO09OOzs7OztOOzs7OzsKKzI2NjA7QkxBQ0sgU1BBREUgU1VJVDtTbzswO09OOzs7OztOOzs7OzsKKzI2NjE7V0hJVEUgSEVBUlQgU1VJVDtTbzswO09OOzs7OztOOzs7OzsKKzI2NjI7V0hJVEUgRElBTU9ORCBTVUlUO1NvOzA7T047Ozs7O047Ozs7OworMjY2MztCTEFDSyBDTFVCIFNVSVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjY0O1dISVRFIFNQQURFIFNVSVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjY1O0JMQUNLIEhFQVJUIFNVSVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjY2O0JMQUNLIERJQU1PTkQgU1VJVDtTbzswO09OOzs7OztOOzs7OzsKKzI2Njc7V0hJVEUgQ0xVQiBTVUlUO1NvOzA7T047Ozs7O047Ozs7OworMjY2ODtIT1QgU1BSSU5HUztTbzswO09OOzs7OztOOzs7OzsKKzI2Njk7UVVBUlRFUiBOT1RFO1NvOzA7T047Ozs7O047Ozs7OworMjY2QTtFSUdIVEggTk9URTtTbzswO09OOzs7OztOOzs7OzsKKzI2NkI7QkVBTUVEIEVJR0hUSCBOT1RFUztTbzswO09OOzs7OztOO0JBUlJFRCBFSUdIVEggTk9URVM7Ozs7CisyNjZDO0JFQU1FRCBTSVhURUVOVEggTk9URVM7U287MDtPTjs7Ozs7TjtCQVJSRUQgU0lYVEVFTlRIIE5PVEVTOzs7OworMjY2RDtNVVNJQyBGTEFUIFNJR047U287MDtPTjs7Ozs7TjtGTEFUOzs7OworMjY2RTtNVVNJQyBOQVRVUkFMIFNJR047U287MDtPTjs7Ozs7TjtOQVRVUkFMOzs7OworMjY2RjtNVVNJQyBTSEFSUCBTSUdOO1NvOzA7T047Ozs7O047U0hBUlA7Ozs7CisyNzAxO1VQUEVSIEJMQURFIFNDSVNTT1JTO1NvOzA7T047Ozs7O047Ozs7OworMjcwMjtCTEFDSyBTQ0lTU09SUztTbzswO09OOzs7OztOOzs7OzsKKzI3MDM7TE9XRVIgQkxBREUgU0NJU1NPUlM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzA0O1dISVRFIFNDSVNTT1JTO1NvOzA7T047Ozs7O047Ozs7OworMjcwNjtURUxFUEhPTkUgTE9DQVRJT04gU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzI3MDc7VEFQRSBEUklWRTtTbzswO09OOzs7OztOOzs7OzsKKzI3MDg7QUlSUExBTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzA5O0VOVkVMT1BFO1NvOzA7T047Ozs7O047Ozs7OworMjcwQztWSUNUT1JZIEhBTkQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzBEO1dSSVRJTkcgSEFORDtTbzswO09OOzs7OztOOzs7OzsKKzI3MEU7TE9XRVIgUklHSFQgUEVOQ0lMO1NvOzA7T047Ozs7O047Ozs7OworMjcwRjtQRU5DSUw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzEwO1VQUEVSIFJJR0hUIFBFTkNJTDtTbzswO09OOzs7OztOOzs7OzsKKzI3MTE7V0hJVEUgTklCO1NvOzA7T047Ozs7O047Ozs7OworMjcxMjtCTEFDSyBOSUI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzEzO0NIRUNLIE1BUks7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzE0O0hFQVZZIENIRUNLIE1BUks7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzE1O01VTFRJUExJQ0FUSU9OIFg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzE2O0hFQVZZIE1VTFRJUExJQ0FUSU9OIFg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzE3O0JBTExPVCBYO1NvOzA7T047Ozs7O047Ozs7OworMjcxODtIRUFWWSBCQUxMT1QgWDtTbzswO09OOzs7OztOOzs7OzsKKzI3MTk7T1VUTElORUQgR1JFRUsgQ1JPU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzFBO0hFQVZZIEdSRUVLIENST1NTO1NvOzA7T047Ozs7O047Ozs7OworMjcxQjtPUEVOIENFTlRSRSBDUk9TUztTbzswO09OOzs7OztOO09QRU4gQ0VOVEVSIENST1NTOzs7OworMjcxQztIRUFWWSBPUEVOIENFTlRSRSBDUk9TUztTbzswO09OOzs7OztOO0hFQVZZIE9QRU4gQ0VOVEVSIENST1NTOzs7OworMjcxRDtMQVRJTiBDUk9TUztTbzswO09OOzs7OztOOzs7OzsKKzI3MUU7U0hBRE9XRUQgV0hJVEUgTEFUSU4gQ1JPU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzFGO09VVExJTkVEIExBVElOIENST1NTO1NvOzA7T047Ozs7O047Ozs7OworMjcyMDtNQUxURVNFIENST1NTO1NvOzA7T047Ozs7O047Ozs7OworMjcyMTtTVEFSIE9GIERBVklEO1NvOzA7T047Ozs7O047Ozs7OworMjcyMjtGT1VSIFRFQVJEUk9QLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3MjM7Rk9VUiBCQUxMT09OLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3MjQ7SEVBVlkgRk9VUiBCQUxMT09OLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3MjU7Rk9VUiBDTFVCLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3MjY7QkxBQ0sgRk9VUiBQT0lOVEVEIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzI3O1dISVRFIEZPVVIgUE9JTlRFRCBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjcyOTtTVFJFU1MgT1VUTElORUQgV0hJVEUgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MkE7Q0lSQ0xFRCBXSElURSBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjcyQjtPUEVOIENFTlRSRSBCTEFDSyBTVEFSO1NvOzA7T047Ozs7O047T1BFTiBDRU5URVIgQkxBQ0sgU1RBUjs7OzsKKzI3MkM7QkxBQ0sgQ0VOVFJFIFdISVRFIFNUQVI7U287MDtPTjs7Ozs7TjtCTEFDSyBDRU5URVIgV0hJVEUgU1RBUjs7OzsKKzI3MkQ7T1VUTElORUQgQkxBQ0sgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MkU7SEVBVlkgT1VUTElORUQgQkxBQ0sgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MkY7UElOV0hFRUwgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MzA7U0hBRE9XRUQgV0hJVEUgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MzE7SEVBVlkgQVNURVJJU0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzMyO09QRU4gQ0VOVFJFIEFTVEVSSVNLO1NvOzA7T047Ozs7O047T1BFTiBDRU5URVIgQVNURVJJU0s7Ozs7CisyNzMzO0VJR0hUIFNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3MzQ7RUlHSFQgUE9JTlRFRCBCTEFDSyBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjczNTtFSUdIVCBQT0lOVEVEIFBJTldIRUVMIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzM2O1NJWCBQT0lOVEVEIEJMQUNLIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzM3O0VJR0hUIFBPSU5URUQgUkVDVElMSU5FQVIgQkxBQ0sgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3Mzg7SEVBVlkgRUlHSFQgUE9JTlRFRCBSRUNUSUxJTkVBUiBCTEFDSyBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjczOTtUV0VMVkUgUE9JTlRFRCBCTEFDSyBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjczQTtTSVhURUVOIFBPSU5URUQgQVNURVJJU0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzNCO1RFQVJEUk9QLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3M0M7T1BFTiBDRU5UUkUgVEVBUkRST1AtU1BPS0VEIEFTVEVSSVNLO1NvOzA7T047Ozs7O047T1BFTiBDRU5URVIgVEVBUkRST1AtU1BPS0VEIEFTVEVSSVNLOzs7OworMjczRDtIRUFWWSBURUFSRFJPUC1TUE9LRUQgQVNURVJJU0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzNFO1NJWCBQRVRBTExFRCBCTEFDSyBBTkQgV0hJVEUgRkxPUkVUVEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzNGO0JMQUNLIEZMT1JFVFRFO1NvOzA7T047Ozs7O047Ozs7OworMjc0MDtXSElURSBGTE9SRVRURTtTbzswO09OOzs7OztOOzs7OzsKKzI3NDE7RUlHSFQgUEVUQUxMRUQgT1VUTElORUQgQkxBQ0sgRkxPUkVUVEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzQyO0NJUkNMRUQgT1BFTiBDRU5UUkUgRUlHSFQgUE9JTlRFRCBTVEFSO1NvOzA7T047Ozs7O047Q0lSQ0xFRCBPUEVOIENFTlRFUiBFSUdIVCBQT0lOVEVEIFNUQVI7Ozs7CisyNzQzO0hFQVZZIFRFQVJEUk9QLVNQT0tFRCBQSU5XSEVFTCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3NDQ7U05PV0ZMQUtFO1NvOzA7T047Ozs7O047Ozs7OworMjc0NTtUSUdIVCBUUklGT0xJQVRFIFNOT1dGTEFLRTtTbzswO09OOzs7OztOOzs7OzsKKzI3NDY7SEVBVlkgQ0hFVlJPTiBTTk9XRkxBS0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzQ3O1NQQVJLTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzQ4O0hFQVZZIFNQQVJLTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzQ5O0JBTExPT04tU1BPS0VEIEFTVEVSSVNLO1NvOzA7T047Ozs7O047Ozs7OworMjc0QTtFSUdIVCBURUFSRFJPUC1TUE9LRUQgUFJPUEVMTEVSIEFTVEVSSVNLO1NvOzA7T047Ozs7O047Ozs7OworMjc0QjtIRUFWWSBFSUdIVCBURUFSRFJPUC1TUE9LRUQgUFJPUEVMTEVSIEFTVEVSSVNLO1NvOzA7T047Ozs7O047Ozs7OworMjc0RDtTSEFET1dFRCBXSElURSBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzRGO0xPV0VSIFJJR0hUIERST1AtU0hBRE9XRUQgV0hJVEUgU1FVQVJFO1NvOzA7T047Ozs7O047Ozs7OworMjc1MDtVUFBFUiBSSUdIVCBEUk9QLVNIQURPV0VEIFdISVRFIFNRVUFSRTtTbzswO09OOzs7OztOOzs7OzsKKzI3NTE7TE9XRVIgUklHSFQgU0hBRE9XRUQgV0hJVEUgU1FVQVJFO1NvOzA7T047Ozs7O047Ozs7OworMjc1MjtVUFBFUiBSSUdIVCBTSEFET1dFRCBXSElURSBTUVVBUkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzU2O0JMQUNLIERJQU1PTkQgTUlOVVMgV0hJVEUgWDtTbzswO09OOzs7OztOOzs7OzsKKzI3NTg7TElHSFQgVkVSVElDQUwgQkFSO1NvOzA7T047Ozs7O047Ozs7OworMjc1OTtNRURJVU0gVkVSVElDQUwgQkFSO1NvOzA7T047Ozs7O047Ozs7OworMjc1QTtIRUFWWSBWRVJUSUNBTCBCQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzVCO0hFQVZZIFNJTkdMRSBUVVJORUQgQ09NTUEgUVVPVEFUSU9OIE1BUksgT1JOQU1FTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzVDO0hFQVZZIFNJTkdMRSBDT01NQSBRVU9UQVRJT04gTUFSSyBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NUQ7SEVBVlkgRE9VQkxFIFRVUk5FRCBDT01NQSBRVU9UQVRJT04gTUFSSyBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NUU7SEVBVlkgRE9VQkxFIENPTU1BIFFVT1RBVElPTiBNQVJLIE9STkFNRU5UO1NvOzA7T047Ozs7O047Ozs7OworMjc2MTtDVVJWRUQgU1RFTSBQQVJBR1JBUEggU0lHTiBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NjI7SEVBVlkgRVhDTEFNQVRJT04gTUFSSyBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NjM7SEVBVlkgSEVBUlQgRVhDTEFNQVRJT04gTUFSSyBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NjQ7SEVBVlkgQkxBQ0sgSEVBUlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzY1O1JPVEFURUQgSEVBVlkgQkxBQ0sgSEVBUlQgQlVMTEVUO1NvOzA7T047Ozs7O047Ozs7OworMjc2NjtGTE9SQUwgSEVBUlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzY3O1JPVEFURUQgRkxPUkFMIEhFQVJUIEJVTExFVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NzY7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIE9ORTtObzswO09OOzs7MTsxO047SU5WRVJTRSBDSVJDTEVEIERJR0lUIE9ORTs7OzsKKzI3Nzc7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIFRXTztObzswO09OOzs7MjsyO047SU5WRVJTRSBDSVJDTEVEIERJR0lUIFRXTzs7OzsKKzI3Nzg7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIFRIUkVFO05vOzA7T047OzszOzM7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgVEhSRUU7Ozs7CisyNzc5O0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBESUdJVCBGT1VSO05vOzA7T047Ozs0OzQ7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgRk9VUjs7OzsKKzI3N0E7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIEZJVkU7Tm87MDtPTjs7OzU7NTtOO0lOVkVSU0UgQ0lSQ0xFRCBESUdJVCBGSVZFOzs7OworMjc3QjtESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgRElHSVQgU0lYO05vOzA7T047Ozs2OzY7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgU0lYOzs7OworMjc3QztESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgRElHSVQgU0VWRU47Tm87MDtPTjs7Ozc7NztOO0lOVkVSU0UgQ0lSQ0xFRCBESUdJVCBTRVZFTjs7OzsKKzI3N0Q7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIEVJR0hUO05vOzA7T047Ozs4Ozg7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgRUlHSFQ7Ozs7CisyNzdFO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBESUdJVCBOSU5FO05vOzA7T047Ozs5Ozk7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgTklORTs7OzsKKzI3N0Y7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIE5VTUJFUiBURU47Tm87MDtPTjs7OzsxMDtOO0lOVkVSU0UgQ0lSQ0xFRCBOVU1CRVIgVEVOOzs7OworMjc4MDtESU5HQkFUIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBPTkU7Tm87MDtPTjs7OzE7MTtOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBPTkU7Ozs7CisyNzgxO0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFRXTztObzswO09OOzs7MjsyO047Q0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFRXTzs7OzsKKzI3ODI7RElOR0JBVCBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgVEhSRUU7Tm87MDtPTjs7OzM7MztOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBUSFJFRTs7OzsKKzI3ODM7RElOR0JBVCBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgRk9VUjtObzswO09OOzs7NDs0O047Q0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZPVVI7Ozs7CisyNzg0O0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZJVkU7Tm87MDtPTjs7OzU7NTtOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBGSVZFOzs7OworMjc4NTtESU5HQkFUIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBTSVg7Tm87MDtPTjs7OzY7NjtOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBTSVg7Ozs7CisyNzg2O0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFNFVkVOO05vOzA7T047Ozs3Ozc7TjtDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgU0VWRU47Ozs7CisyNzg3O0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEVJR0hUO05vOzA7T047Ozs4Ozg7TjtDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgRUlHSFQ7Ozs7CisyNzg4O0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIE5JTkU7Tm87MDtPTjs7Ozk7OTtOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBOSU5FOzs7OworMjc4OTtESU5HQkFUIENJUkNMRUQgU0FOUy1TRVJJRiBOVU1CRVIgVEVOO05vOzA7T047Ozs7MTA7TjtDSVJDTEVEIFNBTlMtU0VSSUYgTlVNQkVSIFRFTjs7OzsKKzI3OEE7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgT05FO05vOzA7T047OzsxOzE7TjtJTlZFUlNFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBPTkU7Ozs7CisyNzhCO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFRXTztObzswO09OOzs7MjsyO047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgVFdPOzs7OworMjc4QztESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBUSFJFRTtObzswO09OOzs7MzszO047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgVEhSRUU7Ozs7CisyNzhEO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZPVVI7Tm87MDtPTjs7OzQ7NDtOO0lOVkVSU0UgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZPVVI7Ozs7CisyNzhFO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZJVkU7Tm87MDtPTjs7OzU7NTtOO0lOVkVSU0UgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZJVkU7Ozs7CisyNzhGO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFNJWDtObzswO09OOzs7Njs2O047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgU0lYOzs7OworMjc5MDtESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBTRVZFTjtObzswO09OOzs7Nzs3O047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgU0VWRU47Ozs7CisyNzkxO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEVJR0hUO05vOzA7T047Ozs4Ozg7TjtJTlZFUlNFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBFSUdIVDs7OzsKKzI3OTI7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgTklORTtObzswO09OOzs7OTs5O047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgTklORTs7OzsKKzI3OTM7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIFNBTlMtU0VSSUYgTlVNQkVSIFRFTjtObzswO09OOzs7OzEwO047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgTlVNQkVSIFRFTjs7OzsKKzI3OTQ7SEVBVlkgV0lERS1IRUFERUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFdJREUtSEVBREVEIFJJR0hUIEFSUk9XOzs7OworMjc5ODtIRUFWWSBTT1VUSCBFQVNUIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgTE9XRVIgUklHSFQgQVJST1c7Ozs7CisyNzk5O0hFQVZZIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBSSUdIVCBBUlJPVzs7OzsKKzI3OUE7SEVBVlkgTk9SVEggRUFTVCBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFVQUEVSIFJJR0hUIEFSUk9XOzs7OworMjc5QjtEUkFGVElORyBQT0lOVCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047RFJBRlRJTkcgUE9JTlQgUklHSFQgQVJST1c7Ozs7CisyNzlDO0hFQVZZIFJPVU5ELVRJUFBFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgUk9VTkQtVElQUEVEIFJJR0hUIEFSUk9XOzs7OworMjc5RDtUUklBTkdMRS1IRUFERUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO1RSSUFOR0xFLUhFQURFRCBSSUdIVCBBUlJPVzs7OzsKKzI3OUU7SEVBVlkgVFJJQU5HTEUtSEVBREVEIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBUUklBTkdMRS1IRUFERUQgUklHSFQgQVJST1c7Ozs7CisyNzlGO0RBU0hFRCBUUklBTkdMRS1IRUFERUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0RBU0hFRCBUUklBTkdMRS1IRUFERUQgUklHSFQgQVJST1c7Ozs7CisyN0EwO0hFQVZZIERBU0hFRCBUUklBTkdMRS1IRUFERUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIERBU0hFRCBUUklBTkdMRS1IRUFERUQgUklHSFQgQVJST1c7Ozs7CisyN0ExO0JMQUNLIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtCTEFDSyBSSUdIVCBBUlJPVzs7OzsKKzI3QTI7VEhSRUUtRCBUT1AtTElHSFRFRCBSSUdIVFdBUkRTIEFSUk9XSEVBRDtTbzswO09OOzs7OztOO1RIUkVFLUQgVE9QLUxJR0hURUQgUklHSFQgQVJST1dIRUFEOzs7OworMjdBMztUSFJFRS1EIEJPVFRPTS1MSUdIVEVEIFJJR0hUV0FSRFMgQVJST1dIRUFEO1NvOzA7T047Ozs7O047VEhSRUUtRCBCT1RUT00tTElHSFRFRCBSSUdIVCBBUlJPV0hFQUQ7Ozs7CisyN0E0O0JMQUNLIFJJR0hUV0FSRFMgQVJST1dIRUFEO1NvOzA7T047Ozs7O047QkxBQ0sgUklHSFQgQVJST1dIRUFEOzs7OworMjdBNTtIRUFWWSBCTEFDSyBDVVJWRUQgRE9XTldBUkRTIEFORCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgQkxBQ0sgQ1VSVkVEIERPV04gQU5EIFJJR0hUIEFSUk9XOzs7OworMjdBNjtIRUFWWSBCTEFDSyBDVVJWRUQgVVBXQVJEUyBBTkQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIEJMQUNLIENVUlZFRCBVUCBBTkQgUklHSFQgQVJST1c7Ozs7CisyN0E3O1NRVUFUIEJMQUNLIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtTUVVBVCBCTEFDSyBSSUdIVCBBUlJPVzs7OzsKKzI3QTg7SEVBVlkgQ09OQ0FWRS1QT0lOVEVEIEJMQUNLIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBDT05DQVZFLVBPSU5URUQgQkxBQ0sgUklHSFQgQVJST1c7Ozs7CisyN0E5O1JJR0hULVNIQURFRCBXSElURSBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047UklHSFQtU0hBREVEIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdBQTtMRUZULVNIQURFRCBXSElURSBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047TEVGVC1TSEFERUQgV0hJVEUgUklHSFQgQVJST1c7Ozs7CisyN0FCO0JBQ0stVElMVEVEIFNIQURPV0VEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtCQUNLLVRJTFRFRCBTSEFET1dFRCBXSElURSBSSUdIVCBBUlJPVzs7OzsKKzI3QUM7RlJPTlQtVElMVEVEIFNIQURPV0VEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtGUk9OVC1USUxURUQgU0hBRE9XRUQgV0hJVEUgUklHSFQgQVJST1c7Ozs7CisyN0FEO0hFQVZZIExPV0VSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBMT1dFUiBSSUdIVC1TSEFET1dFRCBXSElURSBSSUdIVCBBUlJPVzs7OzsKKzI3QUU7SEVBVlkgVVBQRVIgUklHSFQtU0hBRE9XRUQgV0hJVEUgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFVQUEVSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdBRjtOT1RDSEVEIExPV0VSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtOT1RDSEVEIExPV0VSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdCMTtOT1RDSEVEIFVQUEVSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtOT1RDSEVEIFVQUEVSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdCMjtDSVJDTEVEIEhFQVZZIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtDSVJDTEVEIEhFQVZZIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdCMztXSElURS1GRUFUSEVSRUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO1dISVRFLUZFQVRIRVJFRCBSSUdIVCBBUlJPVzs7OzsKKzI3QjQ7QkxBQ0stRkVBVEhFUkVEIFNPVVRIIEVBU1QgQVJST1c7U287MDtPTjs7Ozs7TjtCTEFDSy1GRUFUSEVSRUQgTE9XRVIgUklHSFQgQVJST1c7Ozs7CisyN0I1O0JMQUNLLUZFQVRIRVJFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047QkxBQ0stRkVBVEhFUkVEIFJJR0hUIEFSUk9XOzs7OworMjdCNjtCTEFDSy1GRUFUSEVSRUQgTk9SVEggRUFTVCBBUlJPVztTbzswO09OOzs7OztOO0JMQUNLLUZFQVRIRVJFRCBVUFBFUiBSSUdIVCBBUlJPVzs7OzsKKzI3Qjc7SEVBVlkgQkxBQ0stRkVBVEhFUkVEIFNPVVRIIEVBU1QgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBCTEFDSy1GRUFUSEVSRUQgTE9XRVIgUklHSFQgQVJST1c7Ozs7CisyN0I4O0hFQVZZIEJMQUNLLUZFQVRIRVJFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgQkxBQ0stRkVBVEhFUkVEIFJJR0hUIEFSUk9XOzs7OworMjdCOTtIRUFWWSBCTEFDSy1GRUFUSEVSRUQgTk9SVEggRUFTVCBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIEJMQUNLLUZFQVRIRVJFRCBVUFBFUiBSSUdIVCBBUlJPVzs7OzsKKzI3QkE7VEVBUkRST1AtQkFSQkVEIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtURUFSRFJPUC1CQVJCRUQgUklHSFQgQVJST1c7Ozs7CisyN0JCO0hFQVZZIFRFQVJEUk9QLVNIQU5LRUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFRFQVJEUk9QLVNIQU5LRUQgUklHSFQgQVJST1c7Ozs7CisyN0JDO1dFREdFLVRBSUxFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047V0VER0UtVEFJTEVEIFJJR0hUIEFSUk9XOzs7OworMjdCRDtIRUFWWSBXRURHRS1UQUlMRUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFdFREdFLVRBSUxFRCBSSUdIVCBBUlJPVzs7OzsKKzI3QkU7T1BFTi1PVVRMSU5FRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047T1BFTi1PVVRMSU5FRCBSSUdIVCBBUlJPVzs7OzsKKzMwMDA7SURFT0dSQVBISUMgU1BBQ0U7WnM7MDtXUzs8d2lkZT4gMDAyMDs7OztOOzs7OzsKKzMwMDE7SURFT0dSQVBISUMgQ09NTUE7UG87MDtPTjs7Ozs7Tjs7Ozs7CiszMDAyO0lERU9HUkFQSElDIEZVTEwgU1RPUDtQbzswO09OOzs7OztOO0lERU9HUkFQSElDIFBFUklPRDs7OzsKKzMwMDM7RElUVE8gTUFSSztQbzswO09OOzs7OztOOzs7OzsKKzMwMDQ7SkFQQU5FU0UgSU5EVVNUUklBTCBTVEFOREFSRCBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMDA1O0lERU9HUkFQSElDIElURVJBVElPTiBNQVJLO0xtOzA7T047Ozs7O047Ozs7OworMzAwNjtJREVPR1JBUEhJQyBDTE9TSU5HIE1BUks7UG87MDtPTjs7Ozs7Tjs7Ozs7CiszMDA3O0lERU9HUkFQSElDIE5VTUJFUiBaRVJPO05sOzA7T047Ozs7MDtOOzs7OzsKKzMwMDg7TEVGVCBBTkdMRSBCUkFDS0VUO1BzOzA7T047Ozs7O1k7T1BFTklORyBBTkdMRSBCUkFDS0VUOzs7OworMzAwOTtSSUdIVCBBTkdMRSBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Q0xPU0lORyBBTkdMRSBCUkFDS0VUOzs7OworMzAwQTtMRUZUIERPVUJMRSBBTkdMRSBCUkFDS0VUO1BzOzA7T047Ozs7O1k7T1BFTklORyBET1VCTEUgQU5HTEUgQlJBQ0tFVDs7OzsKKzMwMEI7UklHSFQgRE9VQkxFIEFOR0xFIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTtDTE9TSU5HIERPVUJMRSBBTkdMRSBCUkFDS0VUOzs7OworMzAwQztMRUZUIENPUk5FUiBCUkFDS0VUO1BzOzA7T047Ozs7O1k7T1BFTklORyBDT1JORVIgQlJBQ0tFVDs7OzsKKzMwMEQ7UklHSFQgQ09STkVSIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTtDTE9TSU5HIENPUk5FUiBCUkFDS0VUOzs7OworMzAwRTtMRUZUIFdISVRFIENPUk5FUiBCUkFDS0VUO1BzOzA7T047Ozs7O1k7T1BFTklORyBXSElURSBDT1JORVIgQlJBQ0tFVDs7OzsKKzMwMEY7UklHSFQgV0hJVEUgQ09STkVSIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTtDTE9TSU5HIFdISVRFIENPUk5FUiBCUkFDS0VUOzs7OworMzAxMDtMRUZUIEJMQUNLIExFTlRJQ1VMQVIgQlJBQ0tFVDtQczswO09OOzs7OztZO09QRU5JTkcgQkxBQ0sgTEVOVElDVUxBUiBCUkFDS0VUOzs7OworMzAxMTtSSUdIVCBCTEFDSyBMRU5USUNVTEFSIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTtDTE9TSU5HIEJMQUNLIExFTlRJQ1VMQVIgQlJBQ0tFVDs7OzsKKzMwMTI7UE9TVEFMIE1BUks7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMDEzO0dFVEEgTUFSSztTbzswO09OOzs7OztOOzs7OzsKKzMwMTQ7TEVGVCBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUO1BzOzA7T047Ozs7O1k7T1BFTklORyBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUOzs7OworMzAxNTtSSUdIVCBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Q0xPU0lORyBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUOzs7OworMzAxNjtMRUZUIFdISVRFIExFTlRJQ1VMQVIgQlJBQ0tFVDtQczswO09OOzs7OztZO09QRU5JTkcgV0hJVEUgTEVOVElDVUxBUiBCUkFDS0VUOzs7OworMzAxNztSSUdIVCBXSElURSBMRU5USUNVTEFSIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTtDTE9TSU5HIFdISVRFIExFTlRJQ1VMQVIgQlJBQ0tFVDs7OzsKKzMwMTg7TEVGVCBXSElURSBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUO1BzOzA7T047Ozs7O1k7T1BFTklORyBXSElURSBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUOzs7OworMzAxOTtSSUdIVCBXSElURSBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Q0xPU0lORyBXSElURSBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUOzs7OworMzAxQTtMRUZUIFdISVRFIFNRVUFSRSBCUkFDS0VUO1BzOzA7T047Ozs7O1k7T1BFTklORyBXSElURSBTUVVBUkUgQlJBQ0tFVDs7OzsKKzMwMUI7UklHSFQgV0hJVEUgU1FVQVJFIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTtDTE9TSU5HIFdISVRFIFNRVUFSRSBCUkFDS0VUOzs7OworMzAxQztXQVZFIERBU0g7UGQ7MDtPTjs7Ozs7Tjs7Ozs7CiszMDFEO1JFVkVSU0VEIERPVUJMRSBQUklNRSBRVU9UQVRJT04gTUFSSztQczswO09OOzs7OztOOzs7OzsKKzMwMUU7RE9VQkxFIFBSSU1FIFFVT1RBVElPTiBNQVJLO1BlOzA7T047Ozs7O047Ozs7OworMzAxRjtMT1cgRE9VQkxFIFBSSU1FIFFVT1RBVElPTiBNQVJLO1BlOzA7T047Ozs7O047Ozs7OworMzAyMDtQT1NUQUwgTUFSSyBGQUNFO1NvOzA7T047Ozs7O047Ozs7OworMzAyMTtIQU5HWkhPVSBOVU1FUkFMIE9ORTtObDswO0w7Ozs7MTtOOzs7OzsKKzMwMjI7SEFOR1pIT1UgTlVNRVJBTCBUV087Tmw7MDtMOzs7OzI7Tjs7Ozs7CiszMDIzO0hBTkdaSE9VIE5VTUVSQUwgVEhSRUU7Tmw7MDtMOzs7OzM7Tjs7Ozs7CiszMDI0O0hBTkdaSE9VIE5VTUVSQUwgRk9VUjtObDswO0w7Ozs7NDtOOzs7OzsKKzMwMjU7SEFOR1pIT1UgTlVNRVJBTCBGSVZFO05sOzA7TDs7Ozs1O047Ozs7OworMzAyNjtIQU5HWkhPVSBOVU1FUkFMIFNJWDtObDswO0w7Ozs7NjtOOzs7OzsKKzMwMjc7SEFOR1pIT1UgTlVNRVJBTCBTRVZFTjtObDswO0w7Ozs7NztOOzs7OzsKKzMwMjg7SEFOR1pIT1UgTlVNRVJBTCBFSUdIVDtObDswO0w7Ozs7ODtOOzs7OzsKKzMwMjk7SEFOR1pIT1UgTlVNRVJBTCBOSU5FO05sOzA7TDs7Ozs5O047Ozs7OworMzAyQTtJREVPR1JBUEhJQyBMRVZFTCBUT05FIE1BUks7TW47MjE4O0w7Ozs7O047Ozs7OworMzAyQjtJREVPR1JBUEhJQyBSSVNJTkcgVE9ORSBNQVJLO01uOzIyODtMOzs7OztOOzs7OzsKKzMwMkM7SURFT0dSQVBISUMgREVQQVJUSU5HIFRPTkUgTUFSSztNbjsyMzI7TDs7Ozs7Tjs7Ozs7CiszMDJEO0lERU9HUkFQSElDIEVOVEVSSU5HIFRPTkUgTUFSSztNbjsyMjI7TDs7Ozs7Tjs7Ozs7CiszMDJFO0hBTkdVTCBTSU5HTEUgRE9UIFRPTkUgTUFSSztNbjsyMjQ7TDs7Ozs7Tjs7Ozs7CiszMDJGO0hBTkdVTCBET1VCTEUgRE9UIFRPTkUgTUFSSztNbjsyMjQ7TDs7Ozs7Tjs7Ozs7CiszMDMwO1dBVlkgREFTSDtQZDswO09OOzs7OztOOzs7OzsKKzMwMzE7VkVSVElDQUwgS0FOQSBSRVBFQVQgTUFSSztMbTswO09OOzs7OztOOzs7OzsKKzMwMzI7VkVSVElDQUwgS0FOQSBSRVBFQVQgV0lUSCBWT0lDRUQgU09VTkQgTUFSSztMbTswO09OOzs7OztOOzs7OzsKKzMwMzM7VkVSVElDQUwgS0FOQSBSRVBFQVQgTUFSSyBVUFBFUiBIQUxGO0xtOzA7T047Ozs7O047Ozs7OworMzAzNDtWRVJUSUNBTCBLQU5BIFJFUEVBVCBXSVRIIFZPSUNFRCBTT1VORCBNQVJLIFVQUEVSIEhBTEY7TG07MDtPTjs7Ozs7Tjs7Ozs7CiszMDM1O1ZFUlRJQ0FMIEtBTkEgUkVQRUFUIE1BUksgTE9XRVIgSEFMRjtMbTswO09OOzs7OztOOzs7OzsKKzMwMzY7Q0lSQ0xFRCBQT1NUQUwgTUFSSztTbzswO09OOzxjb21wYXQ+IDMwMTI7Ozs7Tjs7Ozs7CiszMDM3O0lERU9HUkFQSElDIFRFTEVHUkFQSCBMSU5FIEZFRUQgU0VQQVJBVE9SIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzMwM0Y7SURFT0dSQVBISUMgSEFMRiBGSUxMIFNQQUNFO1NvOzA7T047Ozs7O047Ozs7OworMzA0MTtISVJBR0FOQSBMRVRURVIgU01BTEwgQTtMbzswO0w7Ozs7O047Ozs7OworMzA0MjtISVJBR0FOQSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMzA0MztISVJBR0FOQSBMRVRURVIgU01BTEwgSTtMbzswO0w7Ozs7O047Ozs7OworMzA0NDtISVJBR0FOQSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMzA0NTtISVJBR0FOQSBMRVRURVIgU01BTEwgVTtMbzswO0w7Ozs7O047Ozs7OworMzA0NjtISVJBR0FOQSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMzA0NztISVJBR0FOQSBMRVRURVIgU01BTEwgRTtMbzswO0w7Ozs7O047Ozs7OworMzA0ODtISVJBR0FOQSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMzA0OTtISVJBR0FOQSBMRVRURVIgU01BTEwgTztMbzswO0w7Ozs7O047Ozs7OworMzA0QTtISVJBR0FOQSBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMzA0QjtISVJBR0FOQSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzMwNEM7SElSQUdBTkEgTEVUVEVSIEdBO0xvOzA7TDszMDRCIDMwOTk7Ozs7Tjs7Ozs7CiszMDREO0hJUkFHQU5BIExFVFRFUiBLSTtMbzswO0w7Ozs7O047Ozs7OworMzA0RTtISVJBR0FOQSBMRVRURVIgR0k7TG87MDtMOzMwNEQgMzA5OTs7OztOOzs7OzsKKzMwNEY7SElSQUdBTkEgTEVUVEVSIEtVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDUwO0hJUkFHQU5BIExFVFRFUiBHVTtMbzswO0w7MzA0RiAzMDk5Ozs7O047Ozs7OworMzA1MTtISVJBR0FOQSBMRVRURVIgS0U7TG87MDtMOzs7OztOOzs7OzsKKzMwNTI7SElSQUdBTkEgTEVUVEVSIEdFO0xvOzA7TDszMDUxIDMwOTk7Ozs7Tjs7Ozs7CiszMDUzO0hJUkFHQU5BIExFVFRFUiBLTztMbzswO0w7Ozs7O047Ozs7OworMzA1NDtISVJBR0FOQSBMRVRURVIgR087TG87MDtMOzMwNTMgMzA5OTs7OztOOzs7OzsKKzMwNTU7SElSQUdBTkEgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDU2O0hJUkFHQU5BIExFVFRFUiBaQTtMbzswO0w7MzA1NSAzMDk5Ozs7O047Ozs7OworMzA1NztISVJBR0FOQSBMRVRURVIgU0k7TG87MDtMOzs7OztOOzs7OzsKKzMwNTg7SElSQUdBTkEgTEVUVEVSIFpJO0xvOzA7TDszMDU3IDMwOTk7Ozs7Tjs7Ozs7CiszMDU5O0hJUkFHQU5BIExFVFRFUiBTVTtMbzswO0w7Ozs7O047Ozs7OworMzA1QTtISVJBR0FOQSBMRVRURVIgWlU7TG87MDtMOzMwNTkgMzA5OTs7OztOOzs7OzsKKzMwNUI7SElSQUdBTkEgTEVUVEVSIFNFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDVDO0hJUkFHQU5BIExFVFRFUiBaRTtMbzswO0w7MzA1QiAzMDk5Ozs7O047Ozs7OworMzA1RDtISVJBR0FOQSBMRVRURVIgU087TG87MDtMOzs7OztOOzs7OzsKKzMwNUU7SElSQUdBTkEgTEVUVEVSIFpPO0xvOzA7TDszMDVEIDMwOTk7Ozs7Tjs7Ozs7CiszMDVGO0hJUkFHQU5BIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMzA2MDtISVJBR0FOQSBMRVRURVIgREE7TG87MDtMOzMwNUYgMzA5OTs7OztOOzs7OzsKKzMwNjE7SElSQUdBTkEgTEVUVEVSIFRJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDYyO0hJUkFHQU5BIExFVFRFUiBESTtMbzswO0w7MzA2MSAzMDk5Ozs7O047Ozs7OworMzA2MztISVJBR0FOQSBMRVRURVIgU01BTEwgVFU7TG87MDtMOzs7OztOOzs7OzsKKzMwNjQ7SElSQUdBTkEgTEVUVEVSIFRVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDY1O0hJUkFHQU5BIExFVFRFUiBEVTtMbzswO0w7MzA2NCAzMDk5Ozs7O047Ozs7OworMzA2NjtISVJBR0FOQSBMRVRURVIgVEU7TG87MDtMOzs7OztOOzs7OzsKKzMwNjc7SElSQUdBTkEgTEVUVEVSIERFO0xvOzA7TDszMDY2IDMwOTk7Ozs7Tjs7Ozs7CiszMDY4O0hJUkFHQU5BIExFVFRFUiBUTztMbzswO0w7Ozs7O047Ozs7OworMzA2OTtISVJBR0FOQSBMRVRURVIgRE87TG87MDtMOzMwNjggMzA5OTs7OztOOzs7OzsKKzMwNkE7SElSQUdBTkEgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDZCO0hJUkFHQU5BIExFVFRFUiBOSTtMbzswO0w7Ozs7O047Ozs7OworMzA2QztISVJBR0FOQSBMRVRURVIgTlU7TG87MDtMOzs7OztOOzs7OzsKKzMwNkQ7SElSQUdBTkEgTEVUVEVSIE5FO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDZFO0hJUkFHQU5BIExFVFRFUiBOTztMbzswO0w7Ozs7O047Ozs7OworMzA2RjtISVJBR0FOQSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzMwNzA7SElSQUdBTkEgTEVUVEVSIEJBO0xvOzA7TDszMDZGIDMwOTk7Ozs7Tjs7Ozs7CiszMDcxO0hJUkFHQU5BIExFVFRFUiBQQTtMbzswO0w7MzA2RiAzMDlBOzs7O047Ozs7OworMzA3MjtISVJBR0FOQSBMRVRURVIgSEk7TG87MDtMOzs7OztOOzs7OzsKKzMwNzM7SElSQUdBTkEgTEVUVEVSIEJJO0xvOzA7TDszMDcyIDMwOTk7Ozs7Tjs7Ozs7CiszMDc0O0hJUkFHQU5BIExFVFRFUiBQSTtMbzswO0w7MzA3MiAzMDlBOzs7O047Ozs7OworMzA3NTtISVJBR0FOQSBMRVRURVIgSFU7TG87MDtMOzs7OztOOzs7OzsKKzMwNzY7SElSQUdBTkEgTEVUVEVSIEJVO0xvOzA7TDszMDc1IDMwOTk7Ozs7Tjs7Ozs7CiszMDc3O0hJUkFHQU5BIExFVFRFUiBQVTtMbzswO0w7MzA3NSAzMDlBOzs7O047Ozs7OworMzA3ODtISVJBR0FOQSBMRVRURVIgSEU7TG87MDtMOzs7OztOOzs7OzsKKzMwNzk7SElSQUdBTkEgTEVUVEVSIEJFO0xvOzA7TDszMDc4IDMwOTk7Ozs7Tjs7Ozs7CiszMDdBO0hJUkFHQU5BIExFVFRFUiBQRTtMbzswO0w7MzA3OCAzMDlBOzs7O047Ozs7OworMzA3QjtISVJBR0FOQSBMRVRURVIgSE87TG87MDtMOzs7OztOOzs7OzsKKzMwN0M7SElSQUdBTkEgTEVUVEVSIEJPO0xvOzA7TDszMDdCIDMwOTk7Ozs7Tjs7Ozs7CiszMDdEO0hJUkFHQU5BIExFVFRFUiBQTztMbzswO0w7MzA3QiAzMDlBOzs7O047Ozs7OworMzA3RTtISVJBR0FOQSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzMwN0Y7SElSQUdBTkEgTEVUVEVSIE1JO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDgwO0hJUkFHQU5BIExFVFRFUiBNVTtMbzswO0w7Ozs7O047Ozs7OworMzA4MTtISVJBR0FOQSBMRVRURVIgTUU7TG87MDtMOzs7OztOOzs7OzsKKzMwODI7SElSQUdBTkEgTEVUVEVSIE1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDgzO0hJUkFHQU5BIExFVFRFUiBTTUFMTCBZQTtMbzswO0w7Ozs7O047Ozs7OworMzA4NDtISVJBR0FOQSBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzMwODU7SElSQUdBTkEgTEVUVEVSIFNNQUxMIFlVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDg2O0hJUkFHQU5BIExFVFRFUiBZVTtMbzswO0w7Ozs7O047Ozs7OworMzA4NztISVJBR0FOQSBMRVRURVIgU01BTEwgWU87TG87MDtMOzs7OztOOzs7OzsKKzMwODg7SElSQUdBTkEgTEVUVEVSIFlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDg5O0hJUkFHQU5BIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMzA4QTtISVJBR0FOQSBMRVRURVIgUkk7TG87MDtMOzs7OztOOzs7OzsKKzMwOEI7SElSQUdBTkEgTEVUVEVSIFJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDhDO0hJUkFHQU5BIExFVFRFUiBSRTtMbzswO0w7Ozs7O047Ozs7OworMzA4RDtISVJBR0FOQSBMRVRURVIgUk87TG87MDtMOzs7OztOOzs7OzsKKzMwOEU7SElSQUdBTkEgTEVUVEVSIFNNQUxMIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDhGO0hJUkFHQU5BIExFVFRFUiBXQTtMbzswO0w7Ozs7O047Ozs7OworMzA5MDtISVJBR0FOQSBMRVRURVIgV0k7TG87MDtMOzs7OztOOzs7OzsKKzMwOTE7SElSQUdBTkEgTEVUVEVSIFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDkyO0hJUkFHQU5BIExFVFRFUiBXTztMbzswO0w7Ozs7O047Ozs7OworMzA5MztISVJBR0FOQSBMRVRURVIgTjtMbzswO0w7Ozs7O047Ozs7OworMzA5NDtISVJBR0FOQSBMRVRURVIgVlU7TG87MDtMOzMwNDYgMzA5OTs7OztOOzs7OzsKKzMwOTk7Q09NQklOSU5HIEtBVEFLQU5BLUhJUkFHQU5BIFZPSUNFRCBTT1VORCBNQVJLO01uOzg7TDs7Ozs7TjtOT04tU1BBQ0lORyBLQVRBS0FOQS1ISVJBR0FOQSBWT0lDRUQgU09VTkQgTUFSSzs7OzsKKzMwOUE7Q09NQklOSU5HIEtBVEFLQU5BLUhJUkFHQU5BIFNFTUktVk9JQ0VEIFNPVU5EIE1BUks7TW47ODtMOzs7OztOO05PTi1TUEFDSU5HIEtBVEFLQU5BLUhJUkFHQU5BIFNFTUktVk9JQ0VEIFNPVU5EIE1BUks7Ozs7CiszMDlCO0tBVEFLQU5BLUhJUkFHQU5BIFZPSUNFRCBTT1VORCBNQVJLO0xtOzA7TDs8Y29tcGF0PiAwMDIwIDMwOTk7Ozs7Tjs7Ozs7CiszMDlDO0tBVEFLQU5BLUhJUkFHQU5BIFNFTUktVk9JQ0VEIFNPVU5EIE1BUks7TG07MDtMOzxjb21wYXQ+IDAwMjAgMzA5QTs7OztOOzs7OzsKKzMwOUQ7SElSQUdBTkEgSVRFUkFUSU9OIE1BUks7TG07MDtMOzs7OztOOzs7OzsKKzMwOUU7SElSQUdBTkEgVk9JQ0VEIElURVJBVElPTiBNQVJLO0xtOzA7TDszMDlEIDMwOTk7Ozs7Tjs7Ozs7CiszMEExO0tBVEFLQU5BIExFVFRFUiBTTUFMTCBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEEyO0tBVEFLQU5BIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEEzO0tBVEFLQU5BIExFVFRFUiBTTUFMTCBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEE0O0tBVEFLQU5BIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEE1O0tBVEFLQU5BIExFVFRFUiBTTUFMTCBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEE2O0tBVEFLQU5BIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEE3O0tBVEFLQU5BIExFVFRFUiBTTUFMTCBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEE4O0tBVEFLQU5BIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEE5O0tBVEFLQU5BIExFVFRFUiBTTUFMTCBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEFBO0tBVEFLQU5BIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEFCO0tBVEFLQU5BIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMzBBQztLQVRBS0FOQSBMRVRURVIgR0E7TG87MDtMOzMwQUIgMzA5OTs7OztOOzs7OzsKKzMwQUQ7S0FUQUtBTkEgTEVUVEVSIEtJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEFFO0tBVEFLQU5BIExFVFRFUiBHSTtMbzswO0w7MzBBRCAzMDk5Ozs7O047Ozs7OworMzBBRjtLQVRBS0FOQSBMRVRURVIgS1U7TG87MDtMOzs7OztOOzs7OzsKKzMwQjA7S0FUQUtBTkEgTEVUVEVSIEdVO0xvOzA7TDszMEFGIDMwOTk7Ozs7Tjs7Ozs7CiszMEIxO0tBVEFLQU5BIExFVFRFUiBLRTtMbzswO0w7Ozs7O047Ozs7OworMzBCMjtLQVRBS0FOQSBMRVRURVIgR0U7TG87MDtMOzMwQjEgMzA5OTs7OztOOzs7OzsKKzMwQjM7S0FUQUtBTkEgTEVUVEVSIEtPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEI0O0tBVEFLQU5BIExFVFRFUiBHTztMbzswO0w7MzBCMyAzMDk5Ozs7O047Ozs7OworMzBCNTtLQVRBS0FOQSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzMwQjY7S0FUQUtBTkEgTEVUVEVSIFpBO0xvOzA7TDszMEI1IDMwOTk7Ozs7Tjs7Ozs7CiszMEI3O0tBVEFLQU5BIExFVFRFUiBTSTtMbzswO0w7Ozs7O047Ozs7OworMzBCODtLQVRBS0FOQSBMRVRURVIgWkk7TG87MDtMOzMwQjcgMzA5OTs7OztOOzs7OzsKKzMwQjk7S0FUQUtBTkEgTEVUVEVSIFNVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEJBO0tBVEFLQU5BIExFVFRFUiBaVTtMbzswO0w7MzBCOSAzMDk5Ozs7O047Ozs7OworMzBCQjtLQVRBS0FOQSBMRVRURVIgU0U7TG87MDtMOzs7OztOOzs7OzsKKzMwQkM7S0FUQUtBTkEgTEVUVEVSIFpFO0xvOzA7TDszMEJCIDMwOTk7Ozs7Tjs7Ozs7CiszMEJEO0tBVEFLQU5BIExFVFRFUiBTTztMbzswO0w7Ozs7O047Ozs7OworMzBCRTtLQVRBS0FOQSBMRVRURVIgWk87TG87MDtMOzMwQkQgMzA5OTs7OztOOzs7OzsKKzMwQkY7S0FUQUtBTkEgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEMwO0tBVEFLQU5BIExFVFRFUiBEQTtMbzswO0w7MzBCRiAzMDk5Ozs7O047Ozs7OworMzBDMTtLQVRBS0FOQSBMRVRURVIgVEk7TG87MDtMOzs7OztOOzs7OzsKKzMwQzI7S0FUQUtBTkEgTEVUVEVSIERJO0xvOzA7TDszMEMxIDMwOTk7Ozs7Tjs7Ozs7CiszMEMzO0tBVEFLQU5BIExFVFRFUiBTTUFMTCBUVTtMbzswO0w7Ozs7O047Ozs7OworMzBDNDtLQVRBS0FOQSBMRVRURVIgVFU7TG87MDtMOzs7OztOOzs7OzsKKzMwQzU7S0FUQUtBTkEgTEVUVEVSIERVO0xvOzA7TDszMEM0IDMwOTk7Ozs7Tjs7Ozs7CiszMEM2O0tBVEFLQU5BIExFVFRFUiBURTtMbzswO0w7Ozs7O047Ozs7OworMzBDNztLQVRBS0FOQSBMRVRURVIgREU7TG87MDtMOzMwQzYgMzA5OTs7OztOOzs7OzsKKzMwQzg7S0FUQUtBTkEgTEVUVEVSIFRPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEM5O0tBVEFLQU5BIExFVFRFUiBETztMbzswO0w7MzBDOCAzMDk5Ozs7O047Ozs7OworMzBDQTtLQVRBS0FOQSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzMwQ0I7S0FUQUtBTkEgTEVUVEVSIE5JO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMENDO0tBVEFLQU5BIExFVFRFUiBOVTtMbzswO0w7Ozs7O047Ozs7OworMzBDRDtLQVRBS0FOQSBMRVRURVIgTkU7TG87MDtMOzs7OztOOzs7OzsKKzMwQ0U7S0FUQUtBTkEgTEVUVEVSIE5PO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMENGO0tBVEFLQU5BIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMzBEMDtLQVRBS0FOQSBMRVRURVIgQkE7TG87MDtMOzMwQ0YgMzA5OTs7OztOOzs7OzsKKzMwRDE7S0FUQUtBTkEgTEVUVEVSIFBBO0xvOzA7TDszMENGIDMwOUE7Ozs7Tjs7Ozs7CiszMEQyO0tBVEFLQU5BIExFVFRFUiBISTtMbzswO0w7Ozs7O047Ozs7OworMzBEMztLQVRBS0FOQSBMRVRURVIgQkk7TG87MDtMOzMwRDIgMzA5OTs7OztOOzs7OzsKKzMwRDQ7S0FUQUtBTkEgTEVUVEVSIFBJO0xvOzA7TDszMEQyIDMwOUE7Ozs7Tjs7Ozs7CiszMEQ1O0tBVEFLQU5BIExFVFRFUiBIVTtMbzswO0w7Ozs7O047Ozs7OworMzBENjtLQVRBS0FOQSBMRVRURVIgQlU7TG87MDtMOzMwRDUgMzA5OTs7OztOOzs7OzsKKzMwRDc7S0FUQUtBTkEgTEVUVEVSIFBVO0xvOzA7TDszMEQ1IDMwOUE7Ozs7Tjs7Ozs7CiszMEQ4O0tBVEFLQU5BIExFVFRFUiBIRTtMbzswO0w7Ozs7O047Ozs7OworMzBEOTtLQVRBS0FOQSBMRVRURVIgQkU7TG87MDtMOzMwRDggMzA5OTs7OztOOzs7OzsKKzMwREE7S0FUQUtBTkEgTEVUVEVSIFBFO0xvOzA7TDszMEQ4IDMwOUE7Ozs7Tjs7Ozs7CiszMERCO0tBVEFLQU5BIExFVFRFUiBITztMbzswO0w7Ozs7O047Ozs7OworMzBEQztLQVRBS0FOQSBMRVRURVIgQk87TG87MDtMOzMwREIgMzA5OTs7OztOOzs7OzsKKzMwREQ7S0FUQUtBTkEgTEVUVEVSIFBPO0xvOzA7TDszMERCIDMwOUE7Ozs7Tjs7Ozs7CiszMERFO0tBVEFLQU5BIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMzBERjtLQVRBS0FOQSBMRVRURVIgTUk7TG87MDtMOzs7OztOOzs7OzsKKzMwRTA7S0FUQUtBTkEgTEVUVEVSIE1VO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEUxO0tBVEFLQU5BIExFVFRFUiBNRTtMbzswO0w7Ozs7O047Ozs7OworMzBFMjtLQVRBS0FOQSBMRVRURVIgTU87TG87MDtMOzs7OztOOzs7OzsKKzMwRTM7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEU0O0tBVEFLQU5BIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMzBFNTtLQVRBS0FOQSBMRVRURVIgU01BTEwgWVU7TG87MDtMOzs7OztOOzs7OzsKKzMwRTY7S0FUQUtBTkEgTEVUVEVSIFlVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEU3O0tBVEFLQU5BIExFVFRFUiBTTUFMTCBZTztMbzswO0w7Ozs7O047Ozs7OworMzBFODtLQVRBS0FOQSBMRVRURVIgWU87TG87MDtMOzs7OztOOzs7OzsKKzMwRTk7S0FUQUtBTkEgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEVBO0tBVEFLQU5BIExFVFRFUiBSSTtMbzswO0w7Ozs7O047Ozs7OworMzBFQjtLQVRBS0FOQSBMRVRURVIgUlU7TG87MDtMOzs7OztOOzs7OzsKKzMwRUM7S0FUQUtBTkEgTEVUVEVSIFJFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEVEO0tBVEFLQU5BIExFVFRFUiBSTztMbzswO0w7Ozs7O047Ozs7OworMzBFRTtLQVRBS0FOQSBMRVRURVIgU01BTEwgV0E7TG87MDtMOzs7OztOOzs7OzsKKzMwRUY7S0FUQUtBTkEgTEVUVEVSIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEYwO0tBVEFLQU5BIExFVFRFUiBXSTtMbzswO0w7Ozs7O047Ozs7OworMzBGMTtLQVRBS0FOQSBMRVRURVIgV0U7TG87MDtMOzs7OztOOzs7OzsKKzMwRjI7S0FUQUtBTkEgTEVUVEVSIFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEYzO0tBVEFLQU5BIExFVFRFUiBOO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEY0O0tBVEFLQU5BIExFVFRFUiBWVTtMbzswO0w7MzBBNiAzMDk5Ozs7O047Ozs7OworMzBGNTtLQVRBS0FOQSBMRVRURVIgU01BTEwgS0E7TG87MDtMOzs7OztOOzs7OzsKKzMwRjY7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIEtFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEY3O0tBVEFLQU5BIExFVFRFUiBWQTtMbzswO0w7MzBFRiAzMDk5Ozs7O047Ozs7OworMzBGODtLQVRBS0FOQSBMRVRURVIgVkk7TG87MDtMOzMwRjAgMzA5OTs7OztOOzs7OzsKKzMwRjk7S0FUQUtBTkEgTEVUVEVSIFZFO0xvOzA7TDszMEYxIDMwOTk7Ozs7Tjs7Ozs7CiszMEZBO0tBVEFLQU5BIExFVFRFUiBWTztMbzswO0w7MzBGMiAzMDk5Ozs7O047Ozs7OworMzBGQjtLQVRBS0FOQSBNSURETEUgRE9UO1BvOzA7TDs7Ozs7Tjs7Ozs7CiszMEZDO0tBVEFLQU5BLUhJUkFHQU5BIFBST0xPTkdFRCBTT1VORCBNQVJLO0xtOzA7TDs7Ozs7Tjs7Ozs7CiszMEZEO0tBVEFLQU5BIElURVJBVElPTiBNQVJLO0xtOzA7TDs7Ozs7Tjs7Ozs7CiszMEZFO0tBVEFLQU5BIFZPSUNFRCBJVEVSQVRJT04gTUFSSztMbTswO0w7MzBGRCAzMDk5Ozs7O047Ozs7OworMzEwNTtCT1BPTU9GTyBMRVRURVIgQjtMbzswO0w7Ozs7O047Ozs7OworMzEwNjtCT1BPTU9GTyBMRVRURVIgUDtMbzswO0w7Ozs7O047Ozs7OworMzEwNztCT1BPTU9GTyBMRVRURVIgTTtMbzswO0w7Ozs7O047Ozs7OworMzEwODtCT1BPTU9GTyBMRVRURVIgRjtMbzswO0w7Ozs7O047Ozs7OworMzEwOTtCT1BPTU9GTyBMRVRURVIgRDtMbzswO0w7Ozs7O047Ozs7OworMzEwQTtCT1BPTU9GTyBMRVRURVIgVDtMbzswO0w7Ozs7O047Ozs7OworMzEwQjtCT1BPTU9GTyBMRVRURVIgTjtMbzswO0w7Ozs7O047Ozs7OworMzEwQztCT1BPTU9GTyBMRVRURVIgTDtMbzswO0w7Ozs7O047Ozs7OworMzEwRDtCT1BPTU9GTyBMRVRURVIgRztMbzswO0w7Ozs7O047Ozs7OworMzEwRTtCT1BPTU9GTyBMRVRURVIgSztMbzswO0w7Ozs7O047Ozs7OworMzEwRjtCT1BPTU9GTyBMRVRURVIgSDtMbzswO0w7Ozs7O047Ozs7OworMzExMDtCT1BPTU9GTyBMRVRURVIgSjtMbzswO0w7Ozs7O047Ozs7OworMzExMTtCT1BPTU9GTyBMRVRURVIgUTtMbzswO0w7Ozs7O047Ozs7OworMzExMjtCT1BPTU9GTyBMRVRURVIgWDtMbzswO0w7Ozs7O047Ozs7OworMzExMztCT1BPTU9GTyBMRVRURVIgWkg7TG87MDtMOzs7OztOOzs7OzsKKzMxMTQ7Qk9QT01PRk8gTEVUVEVSIENIO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTE1O0JPUE9NT0ZPIExFVFRFUiBTSDtMbzswO0w7Ozs7O047Ozs7OworMzExNjtCT1BPTU9GTyBMRVRURVIgUjtMbzswO0w7Ozs7O047Ozs7OworMzExNztCT1BPTU9GTyBMRVRURVIgWjtMbzswO0w7Ozs7O047Ozs7OworMzExODtCT1BPTU9GTyBMRVRURVIgQztMbzswO0w7Ozs7O047Ozs7OworMzExOTtCT1BPTU9GTyBMRVRURVIgUztMbzswO0w7Ozs7O047Ozs7OworMzExQTtCT1BPTU9GTyBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMzExQjtCT1BPTU9GTyBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMzExQztCT1BPTU9GTyBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMzExRDtCT1BPTU9GTyBMRVRURVIgRUg7TG87MDtMOzs7OztOOzs7OzsKKzMxMUU7Qk9QT01PRk8gTEVUVEVSIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTFGO0JPUE9NT0ZPIExFVFRFUiBFSTtMbzswO0w7Ozs7O047Ozs7OworMzEyMDtCT1BPTU9GTyBMRVRURVIgQVU7TG87MDtMOzs7OztOOzs7OzsKKzMxMjE7Qk9QT01PRk8gTEVUVEVSIE9VO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTIyO0JPUE9NT0ZPIExFVFRFUiBBTjtMbzswO0w7Ozs7O047Ozs7OworMzEyMztCT1BPTU9GTyBMRVRURVIgRU47TG87MDtMOzs7OztOOzs7OzsKKzMxMjQ7Qk9QT01PRk8gTEVUVEVSIEFORztMbzswO0w7Ozs7O047Ozs7OworMzEyNTtCT1BPTU9GTyBMRVRURVIgRU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTI2O0JPUE9NT0ZPIExFVFRFUiBFUjtMbzswO0w7Ozs7O047Ozs7OworMzEyNztCT1BPTU9GTyBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMzEyODtCT1BPTU9GTyBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMzEyOTtCT1BPTU9GTyBMRVRURVIgSVU7TG87MDtMOzs7OztOOzs7OzsKKzMxMkE7Qk9QT01PRk8gTEVUVEVSIFY7TG87MDtMOzs7OztOOzs7OzsKKzMxMkI7Qk9QT01PRk8gTEVUVEVSIE5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTJDO0JPUE9NT0ZPIExFVFRFUiBHTjtMbzswO0w7Ozs7O047Ozs7OworMzEzMTtIQU5HVUwgTEVUVEVSIEtJWUVPSztMbzswO0w7PGNvbXBhdD4gMTEwMDs7OztOO0hBTkdVTCBMRVRURVIgR0lZRU9HOzs7OworMzEzMjtIQU5HVUwgTEVUVEVSIFNTQU5HS0lZRU9LO0xvOzA7TDs8Y29tcGF0PiAxMTAxOzs7O047SEFOR1VMIExFVFRFUiBTU0FORyBHSVlFT0c7Ozs7CiszMTMzO0hBTkdVTCBMRVRURVIgS0lZRU9LLVNJT1M7TG87MDtMOzxjb21wYXQ+IDExQUE7Ozs7TjtIQU5HVUwgTEVUVEVSIEdJWUVPRyBTSU9TOzs7OworMzEzNDtIQU5HVUwgTEVUVEVSIE5JRVVOO0xvOzA7TDs8Y29tcGF0PiAxMTAyOzs7O047Ozs7OworMzEzNTtIQU5HVUwgTEVUVEVSIE5JRVVOLUNJRVVDO0xvOzA7TDs8Y29tcGF0PiAxMUFDOzs7O047SEFOR1VMIExFVFRFUiBOSUVVTiBKSUVVSjs7OzsKKzMxMzY7SEFOR1VMIExFVFRFUiBOSUVVTi1ISUVVSDtMbzswO0w7PGNvbXBhdD4gMTFBRDs7OztOO0hBTkdVTCBMRVRURVIgTklFVU4gSElFVUg7Ozs7CiszMTM3O0hBTkdVTCBMRVRURVIgVElLRVVUO0xvOzA7TDs8Y29tcGF0PiAxMTAzOzs7O047SEFOR1VMIExFVFRFUiBESUdFVUQ7Ozs7CiszMTM4O0hBTkdVTCBMRVRURVIgU1NBTkdUSUtFVVQ7TG87MDtMOzxjb21wYXQ+IDExMDQ7Ozs7TjtIQU5HVUwgTEVUVEVSIFNTQU5HIERJR0VVRDs7OzsKKzMxMzk7SEFOR1VMIExFVFRFUiBSSUVVTDtMbzswO0w7PGNvbXBhdD4gMTEwNTs7OztOO0hBTkdVTCBMRVRURVIgTElFVUw7Ozs7CiszMTNBO0hBTkdVTCBMRVRURVIgUklFVUwtS0lZRU9LO0xvOzA7TDs8Y29tcGF0PiAxMUIwOzs7O047SEFOR1VMIExFVFRFUiBMSUVVTCBHSVlFT0c7Ozs7CiszMTNCO0hBTkdVTCBMRVRURVIgUklFVUwtTUlFVU07TG87MDtMOzxjb21wYXQ+IDExQjE7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIE1JRVVNOzs7OworMzEzQztIQU5HVUwgTEVUVEVSIFJJRVVMLVBJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMUIyOzs7O047SEFOR1VMIExFVFRFUiBMSUVVTCBCSUVVQjs7OzsKKzMxM0Q7SEFOR1VMIExFVFRFUiBSSUVVTC1TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUIzOzs7O047SEFOR1VMIExFVFRFUiBMSUVVTCBTSU9TOzs7OworMzEzRTtIQU5HVUwgTEVUVEVSIFJJRVVMLVRISUVVVEg7TG87MDtMOzxjb21wYXQ+IDExQjQ7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIFRJRVVUOzs7OworMzEzRjtIQU5HVUwgTEVUVEVSIFJJRVVMLVBISUVVUEg7TG87MDtMOzxjb21wYXQ+IDExQjU7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIFBJRVVQOzs7OworMzE0MDtIQU5HVUwgTEVUVEVSIFJJRVVMLUhJRVVIO0xvOzA7TDs8Y29tcGF0PiAxMTFBOzs7O047SEFOR1VMIExFVFRFUiBMSUVVTCBISUVVSDs7OzsKKzMxNDE7SEFOR1VMIExFVFRFUiBNSUVVTTtMbzswO0w7PGNvbXBhdD4gMTEwNjs7OztOOzs7OzsKKzMxNDI7SEFOR1VMIExFVFRFUiBQSUVVUDtMbzswO0w7PGNvbXBhdD4gMTEwNzs7OztOO0hBTkdVTCBMRVRURVIgQklFVUI7Ozs7CiszMTQzO0hBTkdVTCBMRVRURVIgU1NBTkdQSUVVUDtMbzswO0w7PGNvbXBhdD4gMTEwODs7OztOO0hBTkdVTCBMRVRURVIgU1NBTkcgQklFVUI7Ozs7CiszMTQ0O0hBTkdVTCBMRVRURVIgUElFVVAtU0lPUztMbzswO0w7PGNvbXBhdD4gMTEyMTs7OztOO0hBTkdVTCBMRVRURVIgQklFVUIgU0lPUzs7OzsKKzMxNDU7SEFOR1VMIExFVFRFUiBTSU9TO0xvOzA7TDs8Y29tcGF0PiAxMTA5Ozs7O047Ozs7OworMzE0NjtIQU5HVUwgTEVUVEVSIFNTQU5HU0lPUztMbzswO0w7PGNvbXBhdD4gMTEwQTs7OztOO0hBTkdVTCBMRVRURVIgU1NBTkcgU0lPUzs7OzsKKzMxNDc7SEFOR1VMIExFVFRFUiBJRVVORztMbzswO0w7PGNvbXBhdD4gMTEwQjs7OztOOzs7OzsKKzMxNDg7SEFOR1VMIExFVFRFUiBDSUVVQztMbzswO0w7PGNvbXBhdD4gMTEwQzs7OztOO0hBTkdVTCBMRVRURVIgSklFVUo7Ozs7CiszMTQ5O0hBTkdVTCBMRVRURVIgU1NBTkdDSUVVQztMbzswO0w7PGNvbXBhdD4gMTEwRDs7OztOO0hBTkdVTCBMRVRURVIgU1NBTkcgSklFVUo7Ozs7CiszMTRBO0hBTkdVTCBMRVRURVIgQ0hJRVVDSDtMbzswO0w7PGNvbXBhdD4gMTEwRTs7OztOO0hBTkdVTCBMRVRURVIgQ0lFVUM7Ozs7CiszMTRCO0hBTkdVTCBMRVRURVIgS0hJRVVLSDtMbzswO0w7PGNvbXBhdD4gMTEwRjs7OztOO0hBTkdVTCBMRVRURVIgS0lZRU9LOzs7OworMzE0QztIQU5HVUwgTEVUVEVSIFRISUVVVEg7TG87MDtMOzxjb21wYXQ+IDExMTA7Ozs7TjtIQU5HVUwgTEVUVEVSIFRJRVVUOzs7OworMzE0RDtIQU5HVUwgTEVUVEVSIFBISUVVUEg7TG87MDtMOzxjb21wYXQ+IDExMTE7Ozs7TjtIQU5HVUwgTEVUVEVSIFBJRVVQOzs7OworMzE0RTtIQU5HVUwgTEVUVEVSIEhJRVVIO0xvOzA7TDs8Y29tcGF0PiAxMTEyOzs7O047Ozs7OworMzE0RjtIQU5HVUwgTEVUVEVSIEE7TG87MDtMOzxjb21wYXQ+IDExNjE7Ozs7Tjs7Ozs7CiszMTUwO0hBTkdVTCBMRVRURVIgQUU7TG87MDtMOzxjb21wYXQ+IDExNjI7Ozs7Tjs7Ozs7CiszMTUxO0hBTkdVTCBMRVRURVIgWUE7TG87MDtMOzxjb21wYXQ+IDExNjM7Ozs7Tjs7Ozs7CiszMTUyO0hBTkdVTCBMRVRURVIgWUFFO0xvOzA7TDs8Y29tcGF0PiAxMTY0Ozs7O047Ozs7OworMzE1MztIQU5HVUwgTEVUVEVSIEVPO0xvOzA7TDs8Y29tcGF0PiAxMTY1Ozs7O047Ozs7OworMzE1NDtIQU5HVUwgTEVUVEVSIEU7TG87MDtMOzxjb21wYXQ+IDExNjY7Ozs7Tjs7Ozs7CiszMTU1O0hBTkdVTCBMRVRURVIgWUVPO0xvOzA7TDs8Y29tcGF0PiAxMTY3Ozs7O047Ozs7OworMzE1NjtIQU5HVUwgTEVUVEVSIFlFO0xvOzA7TDs8Y29tcGF0PiAxMTY4Ozs7O047Ozs7OworMzE1NztIQU5HVUwgTEVUVEVSIE87TG87MDtMOzxjb21wYXQ+IDExNjk7Ozs7Tjs7Ozs7CiszMTU4O0hBTkdVTCBMRVRURVIgV0E7TG87MDtMOzxjb21wYXQ+IDExNkE7Ozs7Tjs7Ozs7CiszMTU5O0hBTkdVTCBMRVRURVIgV0FFO0xvOzA7TDs8Y29tcGF0PiAxMTZCOzs7O047Ozs7OworMzE1QTtIQU5HVUwgTEVUVEVSIE9FO0xvOzA7TDs8Y29tcGF0PiAxMTZDOzs7O047Ozs7OworMzE1QjtIQU5HVUwgTEVUVEVSIFlPO0xvOzA7TDs8Y29tcGF0PiAxMTZEOzs7O047Ozs7OworMzE1QztIQU5HVUwgTEVUVEVSIFU7TG87MDtMOzxjb21wYXQ+IDExNkU7Ozs7Tjs7Ozs7CiszMTVEO0hBTkdVTCBMRVRURVIgV0VPO0xvOzA7TDs8Y29tcGF0PiAxMTZGOzs7O047Ozs7OworMzE1RTtIQU5HVUwgTEVUVEVSIFdFO0xvOzA7TDs8Y29tcGF0PiAxMTcwOzs7O047Ozs7OworMzE1RjtIQU5HVUwgTEVUVEVSIFdJO0xvOzA7TDs8Y29tcGF0PiAxMTcxOzs7O047Ozs7OworMzE2MDtIQU5HVUwgTEVUVEVSIFlVO0xvOzA7TDs8Y29tcGF0PiAxMTcyOzs7O047Ozs7OworMzE2MTtIQU5HVUwgTEVUVEVSIEVVO0xvOzA7TDs8Y29tcGF0PiAxMTczOzs7O047Ozs7OworMzE2MjtIQU5HVUwgTEVUVEVSIFlJO0xvOzA7TDs8Y29tcGF0PiAxMTc0Ozs7O047Ozs7OworMzE2MztIQU5HVUwgTEVUVEVSIEk7TG87MDtMOzxjb21wYXQ+IDExNzU7Ozs7Tjs7Ozs7CiszMTY0O0hBTkdVTCBGSUxMRVI7TG87MDtMOzxjb21wYXQ+IDExNjA7Ozs7TjtIQU5HVUwgQ0FFIE9NOzs7OworMzE2NTtIQU5HVUwgTEVUVEVSIFNTQU5HTklFVU47TG87MDtMOzxjb21wYXQ+IDExMTQ7Ozs7TjtIQU5HVUwgTEVUVEVSIFNTQU5HIE5JRVVOOzs7OworMzE2NjtIQU5HVUwgTEVUVEVSIE5JRVVOLVRJS0VVVDtMbzswO0w7PGNvbXBhdD4gMTExNTs7OztOO0hBTkdVTCBMRVRURVIgTklFVU4gRElHRVVEOzs7OworMzE2NztIQU5HVUwgTEVUVEVSIE5JRVVOLVNJT1M7TG87MDtMOzxjb21wYXQ+IDExQzc7Ozs7TjtIQU5HVUwgTEVUVEVSIE5JRVVOIFNJT1M7Ozs7CiszMTY4O0hBTkdVTCBMRVRURVIgTklFVU4tUEFOU0lPUztMbzswO0w7PGNvbXBhdD4gMTFDODs7OztOO0hBTkdVTCBMRVRURVIgTklFVU4gQkFOIENISSBFVU07Ozs7CiszMTY5O0hBTkdVTCBMRVRURVIgUklFVUwtS0lZRU9LLVNJT1M7TG87MDtMOzxjb21wYXQ+IDExQ0M7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIEdJWUVPRyBTSU9TOzs7OworMzE2QTtIQU5HVUwgTEVUVEVSIFJJRVVMLVRJS0VVVDtMbzswO0w7PGNvbXBhdD4gMTFDRTs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgRElHRVVEOzs7OworMzE2QjtIQU5HVUwgTEVUVEVSIFJJRVVMLVBJRVVQLVNJT1M7TG87MDtMOzxjb21wYXQ+IDExRDM7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIEJJRVVCIFNJT1M7Ozs7CiszMTZDO0hBTkdVTCBMRVRURVIgUklFVUwtUEFOU0lPUztMbzswO0w7PGNvbXBhdD4gMTFENzs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgQkFOIENISSBFVU07Ozs7CiszMTZEO0hBTkdVTCBMRVRURVIgUklFVUwtWUVPUklOSElFVUg7TG87MDtMOzxjb21wYXQ+IDExRDk7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIFlFT0xJTiBISUVVSDs7OzsKKzMxNkU7SEFOR1VMIExFVFRFUiBNSUVVTS1QSUVVUDtMbzswO0w7PGNvbXBhdD4gMTExQzs7OztOO0hBTkdVTCBMRVRURVIgTUlFVU0gQklFVUI7Ozs7CiszMTZGO0hBTkdVTCBMRVRURVIgTUlFVU0tU0lPUztMbzswO0w7PGNvbXBhdD4gMTFERDs7OztOO0hBTkdVTCBMRVRURVIgTUlFVU0gU0lPUzs7OzsKKzMxNzA7SEFOR1VMIExFVFRFUiBNSUVVTS1QQU5TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMURGOzs7O047SEFOR1VMIExFVFRFUiBCSUVVQiBCQU4gQ0hJIEVVTTs7OzsKKzMxNzE7SEFOR1VMIExFVFRFUiBLQVBZRU9VTk1JRVVNO0xvOzA7TDs8Y29tcGF0PiAxMTFEOzs7O047SEFOR1VMIExFVFRFUiBNSUVVTSBTVU4gR1lFT05HIEVVTTs7OzsKKzMxNzI7SEFOR1VMIExFVFRFUiBQSUVVUC1LSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExMUU7Ozs7TjtIQU5HVUwgTEVUVEVSIEJJRVVCIEdJWUVPRzs7OzsKKzMxNzM7SEFOR1VMIExFVFRFUiBQSUVVUC1USUtFVVQ7TG87MDtMOzxjb21wYXQ+IDExMjA7Ozs7TjtIQU5HVUwgTEVUVEVSIEJJRVVCIERJR0VVRDs7OzsKKzMxNzQ7SEFOR1VMIExFVFRFUiBQSUVVUC1TSU9TLUtJWUVPSztMbzswO0w7PGNvbXBhdD4gMTEyMjs7OztOO0hBTkdVTCBMRVRURVIgQklFVUIgU0lPUyBHSVlFT0c7Ozs7CiszMTc1O0hBTkdVTCBMRVRURVIgUElFVVAtU0lPUy1USUtFVVQ7TG87MDtMOzxjb21wYXQ+IDExMjM7Ozs7TjtIQU5HVUwgTEVUVEVSIEJJRVVCIFNJT1MgRElHRVVEOzs7OworMzE3NjtIQU5HVUwgTEVUVEVSIFBJRVVQLUNJRVVDO0xvOzA7TDs8Y29tcGF0PiAxMTI3Ozs7O047SEFOR1VMIExFVFRFUiBCSUVVQiBKSUVVSjs7OzsKKzMxNzc7SEFOR1VMIExFVFRFUiBQSUVVUC1USElFVVRIO0xvOzA7TDs8Y29tcGF0PiAxMTI5Ozs7O047SEFOR1VMIExFVFRFUiBCSUVVQiBUSUVVVDs7OzsKKzMxNzg7SEFOR1VMIExFVFRFUiBLQVBZRU9VTlBJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMTJCOzs7O047SEFOR1VMIExFVFRFUiBCSUVVQiBTVU4gR1lFT05HIEVVTTs7OzsKKzMxNzk7SEFOR1VMIExFVFRFUiBLQVBZRU9VTlNTQU5HUElFVVA7TG87MDtMOzxjb21wYXQ+IDExMkM7Ozs7TjtIQU5HVUwgTEVUVEVSIFNTQU5HIEJJRVVCIFNVTiBHWUVPTkcgRVVNOzs7OworMzE3QTtIQU5HVUwgTEVUVEVSIFNJT1MtS0lZRU9LO0xvOzA7TDs8Y29tcGF0PiAxMTJEOzs7O047SEFOR1VMIExFVFRFUiBTSU9TIEdJWUVPRzs7OzsKKzMxN0I7SEFOR1VMIExFVFRFUiBTSU9TLU5JRVVOO0xvOzA7TDs8Y29tcGF0PiAxMTJFOzs7O047SEFOR1VMIExFVFRFUiBTSU9TIE5JRVVOOzs7OworMzE3QztIQU5HVUwgTEVUVEVSIFNJT1MtVElLRVVUO0xvOzA7TDs8Y29tcGF0PiAxMTJGOzs7O047SEFOR1VMIExFVFRFUiBTSU9TIERJR0VVRDs7OzsKKzMxN0Q7SEFOR1VMIExFVFRFUiBTSU9TLVBJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMTMyOzs7O047SEFOR1VMIExFVFRFUiBTSU9TIEJJRVVCOzs7OworMzE3RTtIQU5HVUwgTEVUVEVSIFNJT1MtQ0lFVUM7TG87MDtMOzxjb21wYXQ+IDExMzY7Ozs7TjtIQU5HVUwgTEVUVEVSIFNJT1MgSklFVUo7Ozs7CiszMTdGO0hBTkdVTCBMRVRURVIgUEFOU0lPUztMbzswO0w7PGNvbXBhdD4gMTE0MDs7OztOO0hBTkdVTCBMRVRURVIgQkFOIENISSBFVU07Ozs7CiszMTgwO0hBTkdVTCBMRVRURVIgU1NBTkdJRVVORztMbzswO0w7PGNvbXBhdD4gMTE0Nzs7OztOO0hBTkdVTCBMRVRURVIgU1NBTkcgSUVVTkc7Ozs7CiszMTgxO0hBTkdVTCBMRVRURVIgWUVTSUVVTkc7TG87MDtMOzxjb21wYXQ+IDExNEM7Ozs7TjtIQU5HVUwgTEVUVEVSIE5HSUVVTkc7Ozs7CiszMTgyO0hBTkdVTCBMRVRURVIgWUVTSUVVTkctU0lPUztMbzswO0w7PGNvbXBhdD4gMTFGMTs7OztOO0hBTkdVTCBMRVRURVIgTkdJRVVORyBTSU9TOzs7OworMzE4MztIQU5HVUwgTEVUVEVSIFlFU0lFVU5HLVBBTlNJT1M7TG87MDtMOzxjb21wYXQ+IDExRjI7Ozs7TjtIQU5HVUwgTEVUVEVSIE5HSUVVTkcgQkFOIENISSBFVU07Ozs7CiszMTg0O0hBTkdVTCBMRVRURVIgS0FQWUVPVU5QSElFVVBIO0xvOzA7TDs8Y29tcGF0PiAxMTU3Ozs7O047SEFOR1VMIExFVFRFUiBQSUVVUCBTVU4gR1lFT05HIEVVTTs7OzsKKzMxODU7SEFOR1VMIExFVFRFUiBTU0FOR0hJRVVIO0xvOzA7TDs8Y29tcGF0PiAxMTU4Ozs7O047SEFOR1VMIExFVFRFUiBTU0FORyBISUVVSDs7OzsKKzMxODY7SEFOR1VMIExFVFRFUiBZRU9SSU5ISUVVSDtMbzswO0w7PGNvbXBhdD4gMTE1OTs7OztOO0hBTkdVTCBMRVRURVIgWUVPTElOIEhJRVVIOzs7OworMzE4NztIQU5HVUwgTEVUVEVSIFlPLVlBO0xvOzA7TDs8Y29tcGF0PiAxMTg0Ozs7O047SEFOR1VMIExFVFRFUiBZT1lBOzs7OworMzE4ODtIQU5HVUwgTEVUVEVSIFlPLVlBRTtMbzswO0w7PGNvbXBhdD4gMTE4NTs7OztOO0hBTkdVTCBMRVRURVIgWU9ZQUU7Ozs7CiszMTg5O0hBTkdVTCBMRVRURVIgWU8tSTtMbzswO0w7PGNvbXBhdD4gMTE4ODs7OztOO0hBTkdVTCBMRVRURVIgWU9JOzs7OworMzE4QTtIQU5HVUwgTEVUVEVSIFlVLVlFTztMbzswO0w7PGNvbXBhdD4gMTE5MTs7OztOO0hBTkdVTCBMRVRURVIgWVVZRU87Ozs7CiszMThCO0hBTkdVTCBMRVRURVIgWVUtWUU7TG87MDtMOzxjb21wYXQ+IDExOTI7Ozs7TjtIQU5HVUwgTEVUVEVSIFlVWUU7Ozs7CiszMThDO0hBTkdVTCBMRVRURVIgWVUtSTtMbzswO0w7PGNvbXBhdD4gMTE5NDs7OztOO0hBTkdVTCBMRVRURVIgWVVJOzs7OworMzE4RDtIQU5HVUwgTEVUVEVSIEFSQUVBO0xvOzA7TDs8Y29tcGF0PiAxMTlFOzs7O047SEFOR1VMIExFVFRFUiBBTEFFIEE7Ozs7CiszMThFO0hBTkdVTCBMRVRURVIgQVJBRUFFO0xvOzA7TDs8Y29tcGF0PiAxMUExOzs7O047SEFOR1VMIExFVFRFUiBBTEFFIEFFOzs7OworMzE5MDtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIExJTktJTkcgTUFSSztTbzswO0w7Ozs7O047S0FOQlVOIFRBVEVURU47S2FuYnVuIFRhdGV0ZW47OzsKKzMxOTE7SURFT0dSQVBISUMgQU5OT1RBVElPTiBSRVZFUlNFIE1BUks7U287MDtMOzs7OztOO0tBRVJJVEVOIFJFO0thZXJpdGVuOzs7CiszMTkyO0lERU9HUkFQSElDIEFOTk9UQVRJT04gT05FIE1BUks7Tm87MDtMOzxzdXBlcj4gNEUwMDs7OztOO0tBRVJJVEVOIElUSTtLYWVyaXRlbjs7OworMzE5MztJREVPR1JBUEhJQyBBTk5PVEFUSU9OIFRXTyBNQVJLO05vOzA7TDs8c3VwZXI+IDRFOEM7Ozs7TjtLQUVSSVRFTiBOSTtLYWVyaXRlbjs7OworMzE5NDtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIFRIUkVFIE1BUks7Tm87MDtMOzxzdXBlcj4gNEUwOTs7OztOO0tBRVJJVEVOIFNBTjtLYWVyaXRlbjs7OworMzE5NTtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIEZPVVIgTUFSSztObzswO0w7PHN1cGVyPiA1NkRCOzs7O047S0FFUklURU4gU0k7S2Flcml0ZW47OzsKKzMxOTY7SURFT0dSQVBISUMgQU5OT1RBVElPTiBUT1AgTUFSSztTbzswO0w7PHN1cGVyPiA0RTBBOzs7O047S0FFUklURU4gWllPVTtLYWVyaXRlbjs7OworMzE5NztJREVPR1JBUEhJQyBBTk5PVEFUSU9OIE1JRERMRSBNQVJLO1NvOzA7TDs8c3VwZXI+IDRFMkQ7Ozs7TjtLQUVSSVRFTiBUWVVVO0thZXJpdGVuOzs7CiszMTk4O0lERU9HUkFQSElDIEFOTk9UQVRJT04gQk9UVE9NIE1BUks7U287MDtMOzxzdXBlcj4gNEUwQjs7OztOO0tBRVJJVEVOIEdFO0thZXJpdGVuOzs7CiszMTk5O0lERU9HUkFQSElDIEFOTk9UQVRJT04gRklSU1QgTUFSSztTbzswO0w7PHN1cGVyPiA3NTMyOzs7O047S0FFUklURU4gS09VO0thZXJpdGVuOzs7CiszMTlBO0lERU9HUkFQSElDIEFOTk9UQVRJT04gU0VDT05EIE1BUks7U287MDtMOzxzdXBlcj4gNEU1OTs7OztOO0tBRVJJVEVOIE9UVTtLYWVyaXRlbjs7OworMzE5QjtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIFRISVJEIE1BUks7U287MDtMOzxzdXBlcj4gNEUxOTs7OztOO0tBRVJJVEVOIEhFSTtLYWVyaXRlbjs7OworMzE5QztJREVPR1JBUEhJQyBBTk5PVEFUSU9OIEZPVVJUSCBNQVJLO1NvOzA7TDs8c3VwZXI+IDRFMDE7Ozs7TjtLQUVSSVRFTiBURUk7S2Flcml0ZW47OzsKKzMxOUQ7SURFT0dSQVBISUMgQU5OT1RBVElPTiBIRUFWRU4gTUFSSztTbzswO0w7PHN1cGVyPiA1OTI5Ozs7O047S0FFUklURU4gVEVOO0thZXJpdGVuOzs7CiszMTlFO0lERU9HUkFQSElDIEFOTk9UQVRJT04gRUFSVEggTUFSSztTbzswO0w7PHN1cGVyPiA1NzMwOzs7O047S0FFUklURU4gVEk7S2Flcml0ZW47OzsKKzMxOUY7SURFT0dSQVBISUMgQU5OT1RBVElPTiBNQU4gTUFSSztTbzswO0w7PHN1cGVyPiA0RUJBOzs7O047S0FFUklURU4gWklOO0thZXJpdGVuOzs7CiszMjAwO1BBUkVOVEhFU0laRUQgSEFOR1VMIEtJWUVPSztTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTAwIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBHSVlFT0c7Ozs7CiszMjAxO1BBUkVOVEhFU0laRUQgSEFOR1VMIE5JRVVOO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDIgMDAyOTs7OztOOzs7OzsKKzMyMDI7UEFSRU5USEVTSVpFRCBIQU5HVUwgVElLRVVUO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDMgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIERJR0VVRDs7OzsKKzMyMDM7UEFSRU5USEVTSVpFRCBIQU5HVUwgUklFVUw7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwNSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgTElFVUw7Ozs7CiszMjA0O1BBUkVOVEhFU0laRUQgSEFOR1VMIE1JRVVNO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDYgMDAyOTs7OztOOzs7OzsKKzMyMDU7UEFSRU5USEVTSVpFRCBIQU5HVUwgUElFVVA7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwNyAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgQklFVUI7Ozs7CiszMjA2O1BBUkVOVEhFU0laRUQgSEFOR1VMIFNJT1M7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwOSAwMDI5Ozs7O047Ozs7OworMzIwNztQQVJFTlRIRVNJWkVEIEhBTkdVTCBJRVVORztTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTBCIDAwMjk7Ozs7Tjs7Ozs7CiszMjA4O1BBUkVOVEhFU0laRUQgSEFOR1VMIENJRVVDO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMEMgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIEpJRVVKOzs7OworMzIwOTtQQVJFTlRIRVNJWkVEIEhBTkdVTCBDSElFVUNIO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMEUgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIENJRVVDOzs7OworMzIwQTtQQVJFTlRIRVNJWkVEIEhBTkdVTCBLSElFVUtIO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMEYgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIEtJWUVPSzs7OzsKKzMyMEI7UEFSRU5USEVTSVpFRCBIQU5HVUwgVEhJRVVUSDtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTEwIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBUSUVVVDs7OzsKKzMyMEM7UEFSRU5USEVTSVpFRCBIQU5HVUwgUEhJRVVQSDtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTExIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBQSUVVUDs7OzsKKzMyMEQ7UEFSRU5USEVTSVpFRCBIQU5HVUwgSElFVUg7U287MDtMOzxjb21wYXQ+IDAwMjggMTExMiAwMDI5Ozs7O047Ozs7OworMzIwRTtQQVJFTlRIRVNJWkVEIEhBTkdVTCBLSVlFT0sgQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTAwIDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIEdBOzs7OworMzIwRjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBOSUVVTiBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDIgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgTkE7Ozs7CiszMjEwO1BBUkVOVEhFU0laRUQgSEFOR1VMIFRJS0VVVCBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDMgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgREE7Ozs7CiszMjExO1BBUkVOVEhFU0laRUQgSEFOR1VMIFJJRVVMIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwNSAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBMQTs7OzsKKzMyMTI7UEFSRU5USEVTSVpFRCBIQU5HVUwgTUlFVU0gQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTA2IDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIE1BOzs7OworMzIxMztQQVJFTlRIRVNJWkVEIEhBTkdVTCBQSUVVUCBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDcgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgQkE7Ozs7CiszMjE0O1BBUkVOVEhFU0laRUQgSEFOR1VMIFNJT1MgQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTA5IDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIFNBOzs7OworMzIxNTtQQVJFTlRIRVNJWkVEIEhBTkdVTCBJRVVORyBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMEIgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgQTs7OzsKKzMyMTY7UEFSRU5USEVTSVpFRCBIQU5HVUwgQ0lFVUMgQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTBDIDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIEpBOzs7OworMzIxNztQQVJFTlRIRVNJWkVEIEhBTkdVTCBDSElFVUNIIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwRSAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBDQTs7OzsKKzMyMTg7UEFSRU5USEVTSVpFRCBIQU5HVUwgS0hJRVVLSCBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMEYgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgS0E7Ozs7CiszMjE5O1BBUkVOVEhFU0laRUQgSEFOR1VMIFRISUVVVEggQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTEwIDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIFRBOzs7OworMzIxQTtQQVJFTlRIRVNJWkVEIEhBTkdVTCBQSElFVVBIIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTExMSAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBQQTs7OzsKKzMyMUI7UEFSRU5USEVTSVpFRCBIQU5HVUwgSElFVUggQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTEyIDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIEhBOzs7OworMzIxQztQQVJFTlRIRVNJWkVEIEhBTkdVTCBDSUVVQyBVO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMEMgMTE2RSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgSlU7Ozs7CiszMjIwO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIE9ORTtObzswO0w7PGNvbXBhdD4gMDAyOCA0RTAwIDAwMjk7Ozs7Tjs7Ozs7CiszMjIxO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFRXTztObzswO0w7PGNvbXBhdD4gMDAyOCA0RThDIDAwMjk7Ozs7Tjs7Ozs7CiszMjIyO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFRIUkVFO05vOzA7TDs8Y29tcGF0PiAwMDI4IDRFMDkgMDAyOTs7OztOOzs7OzsKKzMyMjM7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggRk9VUjtObzswO0w7PGNvbXBhdD4gMDAyOCA1NkRCIDAwMjk7Ozs7Tjs7Ozs7CiszMjI0O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIEZJVkU7Tm87MDtMOzxjb21wYXQ+IDAwMjggNEU5NCAwMDI5Ozs7O047Ozs7OworMzIyNTtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBTSVg7Tm87MDtMOzxjb21wYXQ+IDAwMjggNTE2RCAwMDI5Ozs7O047Ozs7OworMzIyNjtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBTRVZFTjtObzswO0w7PGNvbXBhdD4gMDAyOCA0RTAzIDAwMjk7Ozs7Tjs7Ozs7CiszMjI3O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIEVJR0hUO05vOzA7TDs8Y29tcGF0PiAwMDI4IDUxNkIgMDAyOTs7OztOOzs7OzsKKzMyMjg7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggTklORTtObzswO0w7PGNvbXBhdD4gMDAyOCA0RTVEIDAwMjk7Ozs7Tjs7Ozs7CiszMjI5O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFRFTjtObzswO0w7PGNvbXBhdD4gMDAyOCA1MzQxIDAwMjk7Ozs7Tjs7Ozs7CiszMjJBO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIE1PT047U287MDtMOzxjb21wYXQ+IDAwMjggNjcwOCAwMDI5Ozs7O047Ozs7OworMzIyQjtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBGSVJFO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDcwNkIgMDAyOTs7OztOOzs7OzsKKzMyMkM7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggV0FURVI7U287MDtMOzxjb21wYXQ+IDAwMjggNkMzNCAwMDI5Ozs7O047Ozs7OworMzIyRDtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBXT09EO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDY3MjggMDAyOTs7OztOOzs7OzsKKzMyMkU7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggTUVUQUw7U287MDtMOzxjb21wYXQ+IDAwMjggOTFEMSAwMDI5Ozs7O047Ozs7OworMzIyRjtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBFQVJUSDtTbzswO0w7PGNvbXBhdD4gMDAyOCA1NzFGIDAwMjk7Ozs7Tjs7Ozs7CiszMjMwO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFNVTjtTbzswO0w7PGNvbXBhdD4gMDAyOCA2NUU1IDAwMjk7Ozs7Tjs7Ozs7CiszMjMxO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFNUT0NLO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDY4MkEgMDAyOTs7OztOOzs7OzsKKzMyMzI7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggSEFWRTtTbzswO0w7PGNvbXBhdD4gMDAyOCA2NzA5IDAwMjk7Ozs7Tjs7Ozs7CiszMjMzO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFNPQ0lFVFk7U287MDtMOzxjb21wYXQ+IDAwMjggNzkzRSAwMDI5Ozs7O047Ozs7OworMzIzNDtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBOQU1FO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDU0MEQgMDAyOTs7OztOOzs7OzsKKzMyMzU7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggU1BFQ0lBTDtTbzswO0w7PGNvbXBhdD4gMDAyOCA3Mjc5IDAwMjk7Ozs7Tjs7Ozs7CiszMjM2O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIEZJTkFOQ0lBTDtTbzswO0w7PGNvbXBhdD4gMDAyOCA4Q0ExIDAwMjk7Ozs7Tjs7Ozs7CiszMjM3O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIENPTkdSQVRVTEFUSU9OO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDc5NUQgMDAyOTs7OztOOzs7OzsKKzMyMzg7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggTEFCT1I7U287MDtMOzxjb21wYXQ+IDAwMjggNTJCNCAwMDI5Ozs7O047Ozs7OworMzIzOTtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBSRVBSRVNFTlQ7U287MDtMOzxjb21wYXQ+IDAwMjggNEVFMyAwMDI5Ozs7O047Ozs7OworMzIzQTtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBDQUxMO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDU0N0MgMDAyOTs7OztOOzs7OzsKKzMyM0I7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggU1RVRFk7U287MDtMOzxjb21wYXQ+IDAwMjggNUI2NiAwMDI5Ozs7O047Ozs7OworMzIzQztQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBTVVBFUlZJU0U7U287MDtMOzxjb21wYXQ+IDAwMjggNzZFMyAwMDI5Ozs7O047Ozs7OworMzIzRDtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBFTlRFUlBSSVNFO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDRGMDEgMDAyOTs7OztOOzs7OzsKKzMyM0U7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggUkVTT1VSQ0U7U287MDtMOzxjb21wYXQ+IDAwMjggOENDNyAwMDI5Ozs7O047Ozs7OworMzIzRjtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBBTExJQU5DRTtTbzswO0w7PGNvbXBhdD4gMDAyOCA1MzU0IDAwMjk7Ozs7Tjs7Ozs7CiszMjQwO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIEZFU1RJVkFMO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDc5NkQgMDAyOTs7OztOOzs7OzsKKzMyNDE7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggUkVTVDtTbzswO0w7PGNvbXBhdD4gMDAyOCA0RjExIDAwMjk7Ozs7Tjs7Ozs7CiszMjQyO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFNFTEY7U287MDtMOzxjb21wYXQ+IDAwMjggODFFQSAwMDI5Ozs7O047Ozs7OworMzI0MztQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBSRUFDSDtTbzswO0w7PGNvbXBhdD4gMDAyOCA4MUYzIDAwMjk7Ozs7Tjs7Ozs7CiszMjYwO0NJUkNMRUQgSEFOR1VMIEtJWUVPSztTbzswO0w7PGNpcmNsZT4gMTEwMDs7OztOO0NJUkNMRUQgSEFOR1VMIEdJWUVPRzs7OzsKKzMyNjE7Q0lSQ0xFRCBIQU5HVUwgTklFVU47U287MDtMOzxjaXJjbGU+IDExMDI7Ozs7Tjs7Ozs7CiszMjYyO0NJUkNMRUQgSEFOR1VMIFRJS0VVVDtTbzswO0w7PGNpcmNsZT4gMTEwMzs7OztOO0NJUkNMRUQgSEFOR1VMIERJR0VVRDs7OzsKKzMyNjM7Q0lSQ0xFRCBIQU5HVUwgUklFVUw7U287MDtMOzxjaXJjbGU+IDExMDU7Ozs7TjtDSVJDTEVEIEhBTkdVTCBMSUVVTDs7OzsKKzMyNjQ7Q0lSQ0xFRCBIQU5HVUwgTUlFVU07U287MDtMOzxjaXJjbGU+IDExMDY7Ozs7Tjs7Ozs7CiszMjY1O0NJUkNMRUQgSEFOR1VMIFBJRVVQO1NvOzA7TDs8Y2lyY2xlPiAxMTA3Ozs7O047Q0lSQ0xFRCBIQU5HVUwgQklFVUI7Ozs7CiszMjY2O0NJUkNMRUQgSEFOR1VMIFNJT1M7U287MDtMOzxjaXJjbGU+IDExMDk7Ozs7Tjs7Ozs7CiszMjY3O0NJUkNMRUQgSEFOR1VMIElFVU5HO1NvOzA7TDs8Y2lyY2xlPiAxMTBCOzs7O047Ozs7OworMzI2ODtDSVJDTEVEIEhBTkdVTCBDSUVVQztTbzswO0w7PGNpcmNsZT4gMTEwQzs7OztOO0NJUkNMRUQgSEFOR1VMIEpJRVVKOzs7OworMzI2OTtDSVJDTEVEIEhBTkdVTCBDSElFVUNIO1NvOzA7TDs8Y2lyY2xlPiAxMTBFOzs7O047Q0lSQ0xFRCBIQU5HVUwgQ0lFVUM7Ozs7CiszMjZBO0NJUkNMRUQgSEFOR1VMIEtISUVVS0g7U287MDtMOzxjaXJjbGU+IDExMEY7Ozs7TjtDSVJDTEVEIEhBTkdVTCBLSVlFT0s7Ozs7CiszMjZCO0NJUkNMRUQgSEFOR1VMIFRISUVVVEg7U287MDtMOzxjaXJjbGU+IDExMTA7Ozs7TjtDSVJDTEVEIEhBTkdVTCBUSUVVVDs7OzsKKzMyNkM7Q0lSQ0xFRCBIQU5HVUwgUEhJRVVQSDtTbzswO0w7PGNpcmNsZT4gMTExMTs7OztOO0NJUkNMRUQgSEFOR1VMIFBJRVVQOzs7OworMzI2RDtDSVJDTEVEIEhBTkdVTCBISUVVSDtTbzswO0w7PGNpcmNsZT4gMTExMjs7OztOOzs7OzsKKzMyNkU7Q0lSQ0xFRCBIQU5HVUwgS0lZRU9LIEE7U287MDtMOzxjaXJjbGU+IDExMDAgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIEdBOzs7OworMzI2RjtDSVJDTEVEIEhBTkdVTCBOSUVVTiBBO1NvOzA7TDs8Y2lyY2xlPiAxMTAyIDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBOQTs7OzsKKzMyNzA7Q0lSQ0xFRCBIQU5HVUwgVElLRVVUIEE7U287MDtMOzxjaXJjbGU+IDExMDMgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIERBOzs7OworMzI3MTtDSVJDTEVEIEhBTkdVTCBSSUVVTCBBO1NvOzA7TDs8Y2lyY2xlPiAxMTA1IDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBMQTs7OzsKKzMyNzI7Q0lSQ0xFRCBIQU5HVUwgTUlFVU0gQTtTbzswO0w7PGNpcmNsZT4gMTEwNiAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgTUE7Ozs7CiszMjczO0NJUkNMRUQgSEFOR1VMIFBJRVVQIEE7U287MDtMOzxjaXJjbGU+IDExMDcgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIEJBOzs7OworMzI3NDtDSVJDTEVEIEhBTkdVTCBTSU9TIEE7U287MDtMOzxjaXJjbGU+IDExMDkgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIFNBOzs7OworMzI3NTtDSVJDTEVEIEhBTkdVTCBJRVVORyBBO1NvOzA7TDs8Y2lyY2xlPiAxMTBCIDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBBOzs7OworMzI3NjtDSVJDTEVEIEhBTkdVTCBDSUVVQyBBO1NvOzA7TDs8Y2lyY2xlPiAxMTBDIDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBKQTs7OzsKKzMyNzc7Q0lSQ0xFRCBIQU5HVUwgQ0hJRVVDSCBBO1NvOzA7TDs8Y2lyY2xlPiAxMTBFIDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBDQTs7OzsKKzMyNzg7Q0lSQ0xFRCBIQU5HVUwgS0hJRVVLSCBBO1NvOzA7TDs8Y2lyY2xlPiAxMTBGIDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBLQTs7OzsKKzMyNzk7Q0lSQ0xFRCBIQU5HVUwgVEhJRVVUSCBBO1NvOzA7TDs8Y2lyY2xlPiAxMTEwIDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBUQTs7OzsKKzMyN0E7Q0lSQ0xFRCBIQU5HVUwgUEhJRVVQSCBBO1NvOzA7TDs8Y2lyY2xlPiAxMTExIDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBQQTs7OzsKKzMyN0I7Q0lSQ0xFRCBIQU5HVUwgSElFVUggQTtTbzswO0w7PGNpcmNsZT4gMTExMiAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgSEE7Ozs7CiszMjdGO0tPUkVBTiBTVEFOREFSRCBTWU1CT0w7U287MDtMOzs7OztOOzs7OzsKKzMyODA7Q0lSQ0xFRCBJREVPR1JBUEggT05FO05vOzA7TDs8Y2lyY2xlPiA0RTAwOzs7MTtOOzs7OzsKKzMyODE7Q0lSQ0xFRCBJREVPR1JBUEggVFdPO05vOzA7TDs8Y2lyY2xlPiA0RThDOzs7MjtOOzs7OzsKKzMyODI7Q0lSQ0xFRCBJREVPR1JBUEggVEhSRUU7Tm87MDtMOzxjaXJjbGU+IDRFMDk7OzszO047Ozs7OworMzI4MztDSVJDTEVEIElERU9HUkFQSCBGT1VSO05vOzA7TDs8Y2lyY2xlPiA1NkRCOzs7NDtOOzs7OzsKKzMyODQ7Q0lSQ0xFRCBJREVPR1JBUEggRklWRTtObzswO0w7PGNpcmNsZT4gNEU5NDs7OzU7Tjs7Ozs7CiszMjg1O0NJUkNMRUQgSURFT0dSQVBIIFNJWDtObzswO0w7PGNpcmNsZT4gNTE2RDs7OzY7Tjs7Ozs7CiszMjg2O0NJUkNMRUQgSURFT0dSQVBIIFNFVkVOO05vOzA7TDs8Y2lyY2xlPiA0RTAzOzs7NztOOzs7OzsKKzMyODc7Q0lSQ0xFRCBJREVPR1JBUEggRUlHSFQ7Tm87MDtMOzxjaXJjbGU+IDUxNkI7Ozs4O047Ozs7OworMzI4ODtDSVJDTEVEIElERU9HUkFQSCBOSU5FO05vOzA7TDs8Y2lyY2xlPiA0RTVEOzs7OTtOOzs7OzsKKzMyODk7Q0lSQ0xFRCBJREVPR1JBUEggVEVOO05vOzA7TDs8Y2lyY2xlPiA1MzQxOzs7MTA7Tjs7Ozs7CiszMjhBO0NJUkNMRUQgSURFT0dSQVBIIE1PT047U287MDtMOzxjaXJjbGU+IDY3MDg7Ozs7Tjs7Ozs7CiszMjhCO0NJUkNMRUQgSURFT0dSQVBIIEZJUkU7U287MDtMOzxjaXJjbGU+IDcwNkI7Ozs7Tjs7Ozs7CiszMjhDO0NJUkNMRUQgSURFT0dSQVBIIFdBVEVSO1NvOzA7TDs8Y2lyY2xlPiA2QzM0Ozs7O047Ozs7OworMzI4RDtDSVJDTEVEIElERU9HUkFQSCBXT09EO1NvOzA7TDs8Y2lyY2xlPiA2NzI4Ozs7O047Ozs7OworMzI4RTtDSVJDTEVEIElERU9HUkFQSCBNRVRBTDtTbzswO0w7PGNpcmNsZT4gOTFEMTs7OztOOzs7OzsKKzMyOEY7Q0lSQ0xFRCBJREVPR1JBUEggRUFSVEg7U287MDtMOzxjaXJjbGU+IDU3MUY7Ozs7Tjs7Ozs7CiszMjkwO0NJUkNMRUQgSURFT0dSQVBIIFNVTjtTbzswO0w7PGNpcmNsZT4gNjVFNTs7OztOOzs7OzsKKzMyOTE7Q0lSQ0xFRCBJREVPR1JBUEggU1RPQ0s7U287MDtMOzxjaXJjbGU+IDY4MkE7Ozs7Tjs7Ozs7CiszMjkyO0NJUkNMRUQgSURFT0dSQVBIIEhBVkU7U287MDtMOzxjaXJjbGU+IDY3MDk7Ozs7Tjs7Ozs7CiszMjkzO0NJUkNMRUQgSURFT0dSQVBIIFNPQ0lFVFk7U287MDtMOzxjaXJjbGU+IDc5M0U7Ozs7Tjs7Ozs7CiszMjk0O0NJUkNMRUQgSURFT0dSQVBIIE5BTUU7U287MDtMOzxjaXJjbGU+IDU0MEQ7Ozs7Tjs7Ozs7CiszMjk1O0NJUkNMRUQgSURFT0dSQVBIIFNQRUNJQUw7U287MDtMOzxjaXJjbGU+IDcyNzk7Ozs7Tjs7Ozs7CiszMjk2O0NJUkNMRUQgSURFT0dSQVBIIEZJTkFOQ0lBTDtTbzswO0w7PGNpcmNsZT4gOENBMTs7OztOOzs7OzsKKzMyOTc7Q0lSQ0xFRCBJREVPR1JBUEggQ09OR1JBVFVMQVRJT047U287MDtMOzxjaXJjbGU+IDc5NUQ7Ozs7Tjs7Ozs7CiszMjk4O0NJUkNMRUQgSURFT0dSQVBIIExBQk9SO1NvOzA7TDs8Y2lyY2xlPiA1MkI0Ozs7O047Ozs7OworMzI5OTtDSVJDTEVEIElERU9HUkFQSCBTRUNSRVQ7U287MDtMOzxjaXJjbGU+IDc5RDg7Ozs7Tjs7Ozs7CiszMjlBO0NJUkNMRUQgSURFT0dSQVBIIE1BTEU7U287MDtMOzxjaXJjbGU+IDc1Mzc7Ozs7Tjs7Ozs7CiszMjlCO0NJUkNMRUQgSURFT0dSQVBIIEZFTUFMRTtTbzswO0w7PGNpcmNsZT4gNTk3Mzs7OztOOzs7OzsKKzMyOUM7Q0lSQ0xFRCBJREVPR1JBUEggU1VJVEFCTEU7U287MDtMOzxjaXJjbGU+IDkwNjk7Ozs7Tjs7Ozs7CiszMjlEO0NJUkNMRUQgSURFT0dSQVBIIEVYQ0VMTEVOVDtTbzswO0w7PGNpcmNsZT4gNTEyQTs7OztOOzs7OzsKKzMyOUU7Q0lSQ0xFRCBJREVPR1JBUEggUFJJTlQ7U287MDtMOzxjaXJjbGU+IDUzNzA7Ozs7Tjs7Ozs7CiszMjlGO0NJUkNMRUQgSURFT0dSQVBIIEFUVEVOVElPTjtTbzswO0w7PGNpcmNsZT4gNkNFODs7OztOOzs7OzsKKzMyQTA7Q0lSQ0xFRCBJREVPR1JBUEggSVRFTTtTbzswO0w7PGNpcmNsZT4gOTgwNTs7OztOOzs7OzsKKzMyQTE7Q0lSQ0xFRCBJREVPR1JBUEggUkVTVDtTbzswO0w7PGNpcmNsZT4gNEYxMTs7OztOOzs7OzsKKzMyQTI7Q0lSQ0xFRCBJREVPR1JBUEggQ09QWTtTbzswO0w7PGNpcmNsZT4gNTE5OTs7OztOOzs7OzsKKzMyQTM7Q0lSQ0xFRCBJREVPR1JBUEggQ09SUkVDVDtTbzswO0w7PGNpcmNsZT4gNkI2Mzs7OztOOzs7OzsKKzMyQTQ7Q0lSQ0xFRCBJREVPR1JBUEggSElHSDtTbzswO0w7PGNpcmNsZT4gNEUwQTs7OztOOzs7OzsKKzMyQTU7Q0lSQ0xFRCBJREVPR1JBUEggQ0VOVFJFO1NvOzA7TDs8Y2lyY2xlPiA0RTJEOzs7O047Q0lSQ0xFRCBJREVPR1JBUEggQ0VOVEVSOzs7OworMzJBNjtDSVJDTEVEIElERU9HUkFQSCBMT1c7U287MDtMOzxjaXJjbGU+IDRFMEI7Ozs7Tjs7Ozs7CiszMkE3O0NJUkNMRUQgSURFT0dSQVBIIExFRlQ7U287MDtMOzxjaXJjbGU+IDVERTY7Ozs7Tjs7Ozs7CiszMkE4O0NJUkNMRUQgSURFT0dSQVBIIFJJR0hUO1NvOzA7TDs8Y2lyY2xlPiA1M0YzOzs7O047Ozs7OworMzJBOTtDSVJDTEVEIElERU9HUkFQSCBNRURJQ0lORTtTbzswO0w7PGNpcmNsZT4gNTMzQjs7OztOOzs7OzsKKzMyQUE7Q0lSQ0xFRCBJREVPR1JBUEggUkVMSUdJT047U287MDtMOzxjaXJjbGU+IDVCOTc7Ozs7Tjs7Ozs7CiszMkFCO0NJUkNMRUQgSURFT0dSQVBIIFNUVURZO1NvOzA7TDs8Y2lyY2xlPiA1QjY2Ozs7O047Ozs7OworMzJBQztDSVJDTEVEIElERU9HUkFQSCBTVVBFUlZJU0U7U287MDtMOzxjaXJjbGU+IDc2RTM7Ozs7Tjs7Ozs7CiszMkFEO0NJUkNMRUQgSURFT0dSQVBIIEVOVEVSUFJJU0U7U287MDtMOzxjaXJjbGU+IDRGMDE7Ozs7Tjs7Ozs7CiszMkFFO0NJUkNMRUQgSURFT0dSQVBIIFJFU09VUkNFO1NvOzA7TDs8Y2lyY2xlPiA4Q0M3Ozs7O047Ozs7OworMzJBRjtDSVJDTEVEIElERU9HUkFQSCBBTExJQU5DRTtTbzswO0w7PGNpcmNsZT4gNTM1NDs7OztOOzs7OzsKKzMyQjA7Q0lSQ0xFRCBJREVPR1JBUEggTklHSFQ7U287MDtMOzxjaXJjbGU+IDU5MUM7Ozs7Tjs7Ozs7CiszMkMwO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEpBTlVBUlk7U287MDtMOzxjb21wYXQ+IDAwMzEgNjcwODs7OztOOzs7OzsKKzMyQzE7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgRkVCUlVBUlk7U287MDtMOzxjb21wYXQ+IDAwMzIgNjcwODs7OztOOzs7OzsKKzMyQzI7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgTUFSQ0g7U287MDtMOzxjb21wYXQ+IDAwMzMgNjcwODs7OztOOzs7OzsKKzMyQzM7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgQVBSSUw7U287MDtMOzxjb21wYXQ+IDAwMzQgNjcwODs7OztOOzs7OzsKKzMyQzQ7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgTUFZO1NvOzA7TDs8Y29tcGF0PiAwMDM1IDY3MDg7Ozs7Tjs7Ozs7CiszMkM1O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEpVTkU7U287MDtMOzxjb21wYXQ+IDAwMzYgNjcwODs7OztOOzs7OzsKKzMyQzY7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSlVMWTtTbzswO0w7PGNvbXBhdD4gMDAzNyA2NzA4Ozs7O047Ozs7OworMzJDNztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBBVUdVU1Q7U287MDtMOzxjb21wYXQ+IDAwMzggNjcwODs7OztOOzs7OzsKKzMyQzg7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgU0VQVEVNQkVSO1NvOzA7TDs8Y29tcGF0PiAwMDM5IDY3MDg7Ozs7Tjs7Ozs7CiszMkM5O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIE9DVE9CRVI7U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzMCA2NzA4Ozs7O047Ozs7OworMzJDQTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBOT1ZFTUJFUjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDMxIDY3MDg7Ozs7Tjs7Ozs7CiszMkNCO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERFQ0VNQkVSO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzIgNjcwODs7OztOOzs7OzsKKzMyRDA7Q0lSQ0xFRCBLQVRBS0FOQSBBO1NvOzA7TDs8Y2lyY2xlPiAzMEEyOzs7O047Ozs7OworMzJEMTtDSVJDTEVEIEtBVEFLQU5BIEk7U287MDtMOzxjaXJjbGU+IDMwQTQ7Ozs7Tjs7Ozs7CiszMkQyO0NJUkNMRUQgS0FUQUtBTkEgVTtTbzswO0w7PGNpcmNsZT4gMzBBNjs7OztOOzs7OzsKKzMyRDM7Q0lSQ0xFRCBLQVRBS0FOQSBFO1NvOzA7TDs8Y2lyY2xlPiAzMEE4Ozs7O047Ozs7OworMzJENDtDSVJDTEVEIEtBVEFLQU5BIE87U287MDtMOzxjaXJjbGU+IDMwQUE7Ozs7Tjs7Ozs7CiszMkQ1O0NJUkNMRUQgS0FUQUtBTkEgS0E7U287MDtMOzxjaXJjbGU+IDMwQUI7Ozs7Tjs7Ozs7CiszMkQ2O0NJUkNMRUQgS0FUQUtBTkEgS0k7U287MDtMOzxjaXJjbGU+IDMwQUQ7Ozs7Tjs7Ozs7CiszMkQ3O0NJUkNMRUQgS0FUQUtBTkEgS1U7U287MDtMOzxjaXJjbGU+IDMwQUY7Ozs7Tjs7Ozs7CiszMkQ4O0NJUkNMRUQgS0FUQUtBTkEgS0U7U287MDtMOzxjaXJjbGU+IDMwQjE7Ozs7Tjs7Ozs7CiszMkQ5O0NJUkNMRUQgS0FUQUtBTkEgS087U287MDtMOzxjaXJjbGU+IDMwQjM7Ozs7Tjs7Ozs7CiszMkRBO0NJUkNMRUQgS0FUQUtBTkEgU0E7U287MDtMOzxjaXJjbGU+IDMwQjU7Ozs7Tjs7Ozs7CiszMkRCO0NJUkNMRUQgS0FUQUtBTkEgU0k7U287MDtMOzxjaXJjbGU+IDMwQjc7Ozs7Tjs7Ozs7CiszMkRDO0NJUkNMRUQgS0FUQUtBTkEgU1U7U287MDtMOzxjaXJjbGU+IDMwQjk7Ozs7Tjs7Ozs7CiszMkREO0NJUkNMRUQgS0FUQUtBTkEgU0U7U287MDtMOzxjaXJjbGU+IDMwQkI7Ozs7Tjs7Ozs7CiszMkRFO0NJUkNMRUQgS0FUQUtBTkEgU087U287MDtMOzxjaXJjbGU+IDMwQkQ7Ozs7Tjs7Ozs7CiszMkRGO0NJUkNMRUQgS0FUQUtBTkEgVEE7U287MDtMOzxjaXJjbGU+IDMwQkY7Ozs7Tjs7Ozs7CiszMkUwO0NJUkNMRUQgS0FUQUtBTkEgVEk7U287MDtMOzxjaXJjbGU+IDMwQzE7Ozs7Tjs7Ozs7CiszMkUxO0NJUkNMRUQgS0FUQUtBTkEgVFU7U287MDtMOzxjaXJjbGU+IDMwQzQ7Ozs7Tjs7Ozs7CiszMkUyO0NJUkNMRUQgS0FUQUtBTkEgVEU7U287MDtMOzxjaXJjbGU+IDMwQzY7Ozs7Tjs7Ozs7CiszMkUzO0NJUkNMRUQgS0FUQUtBTkEgVE87U287MDtMOzxjaXJjbGU+IDMwQzg7Ozs7Tjs7Ozs7CiszMkU0O0NJUkNMRUQgS0FUQUtBTkEgTkE7U287MDtMOzxjaXJjbGU+IDMwQ0E7Ozs7Tjs7Ozs7CiszMkU1O0NJUkNMRUQgS0FUQUtBTkEgTkk7U287MDtMOzxjaXJjbGU+IDMwQ0I7Ozs7Tjs7Ozs7CiszMkU2O0NJUkNMRUQgS0FUQUtBTkEgTlU7U287MDtMOzxjaXJjbGU+IDMwQ0M7Ozs7Tjs7Ozs7CiszMkU3O0NJUkNMRUQgS0FUQUtBTkEgTkU7U287MDtMOzxjaXJjbGU+IDMwQ0Q7Ozs7Tjs7Ozs7CiszMkU4O0NJUkNMRUQgS0FUQUtBTkEgTk87U287MDtMOzxjaXJjbGU+IDMwQ0U7Ozs7Tjs7Ozs7CiszMkU5O0NJUkNMRUQgS0FUQUtBTkEgSEE7U287MDtMOzxjaXJjbGU+IDMwQ0Y7Ozs7Tjs7Ozs7CiszMkVBO0NJUkNMRUQgS0FUQUtBTkEgSEk7U287MDtMOzxjaXJjbGU+IDMwRDI7Ozs7Tjs7Ozs7CiszMkVCO0NJUkNMRUQgS0FUQUtBTkEgSFU7U287MDtMOzxjaXJjbGU+IDMwRDU7Ozs7Tjs7Ozs7CiszMkVDO0NJUkNMRUQgS0FUQUtBTkEgSEU7U287MDtMOzxjaXJjbGU+IDMwRDg7Ozs7Tjs7Ozs7CiszMkVEO0NJUkNMRUQgS0FUQUtBTkEgSE87U287MDtMOzxjaXJjbGU+IDMwREI7Ozs7Tjs7Ozs7CiszMkVFO0NJUkNMRUQgS0FUQUtBTkEgTUE7U287MDtMOzxjaXJjbGU+IDMwREU7Ozs7Tjs7Ozs7CiszMkVGO0NJUkNMRUQgS0FUQUtBTkEgTUk7U287MDtMOzxjaXJjbGU+IDMwREY7Ozs7Tjs7Ozs7CiszMkYwO0NJUkNMRUQgS0FUQUtBTkEgTVU7U287MDtMOzxjaXJjbGU+IDMwRTA7Ozs7Tjs7Ozs7CiszMkYxO0NJUkNMRUQgS0FUQUtBTkEgTUU7U287MDtMOzxjaXJjbGU+IDMwRTE7Ozs7Tjs7Ozs7CiszMkYyO0NJUkNMRUQgS0FUQUtBTkEgTU87U287MDtMOzxjaXJjbGU+IDMwRTI7Ozs7Tjs7Ozs7CiszMkYzO0NJUkNMRUQgS0FUQUtBTkEgWUE7U287MDtMOzxjaXJjbGU+IDMwRTQ7Ozs7Tjs7Ozs7CiszMkY0O0NJUkNMRUQgS0FUQUtBTkEgWVU7U287MDtMOzxjaXJjbGU+IDMwRTY7Ozs7Tjs7Ozs7CiszMkY1O0NJUkNMRUQgS0FUQUtBTkEgWU87U287MDtMOzxjaXJjbGU+IDMwRTg7Ozs7Tjs7Ozs7CiszMkY2O0NJUkNMRUQgS0FUQUtBTkEgUkE7U287MDtMOzxjaXJjbGU+IDMwRTk7Ozs7Tjs7Ozs7CiszMkY3O0NJUkNMRUQgS0FUQUtBTkEgUkk7U287MDtMOzxjaXJjbGU+IDMwRUE7Ozs7Tjs7Ozs7CiszMkY4O0NJUkNMRUQgS0FUQUtBTkEgUlU7U287MDtMOzxjaXJjbGU+IDMwRUI7Ozs7Tjs7Ozs7CiszMkY5O0NJUkNMRUQgS0FUQUtBTkEgUkU7U287MDtMOzxjaXJjbGU+IDMwRUM7Ozs7Tjs7Ozs7CiszMkZBO0NJUkNMRUQgS0FUQUtBTkEgUk87U287MDtMOzxjaXJjbGU+IDMwRUQ7Ozs7Tjs7Ozs7CiszMkZCO0NJUkNMRUQgS0FUQUtBTkEgV0E7U287MDtMOzxjaXJjbGU+IDMwRUY7Ozs7Tjs7Ozs7CiszMkZDO0NJUkNMRUQgS0FUQUtBTkEgV0k7U287MDtMOzxjaXJjbGU+IDMwRjA7Ozs7Tjs7Ozs7CiszMkZEO0NJUkNMRUQgS0FUQUtBTkEgV0U7U287MDtMOzxjaXJjbGU+IDMwRjE7Ozs7Tjs7Ozs7CiszMkZFO0NJUkNMRUQgS0FUQUtBTkEgV087U287MDtMOzxjaXJjbGU+IDMwRjI7Ozs7Tjs7Ozs7CiszMzAwO1NRVUFSRSBBUEFBVE87U287MDtMOzxzcXVhcmU+IDMwQTIgMzBEMSAzMEZDIDMwQzg7Ozs7TjtTUVVBUkVEIEFQQUFUTzs7OzsKKzMzMDE7U1FVQVJFIEFSVUhVQTtTbzswO0w7PHNxdWFyZT4gMzBBMiAzMEVCIDMwRDUgMzBBMTs7OztOO1NRVUFSRUQgQVJVSFVBOzs7OworMzMwMjtTUVVBUkUgQU5QRUE7U287MDtMOzxzcXVhcmU+IDMwQTIgMzBGMyAzMERBIDMwQTI7Ozs7TjtTUVVBUkVEIEFOUEVBOzs7OworMzMwMztTUVVBUkUgQUFSVTtTbzswO0w7PHNxdWFyZT4gMzBBMiAzMEZDIDMwRUI7Ozs7TjtTUVVBUkVEIEFBUlU7Ozs7CiszMzA0O1NRVUFSRSBJTklOR1U7U287MDtMOzxzcXVhcmU+IDMwQTQgMzBDQiAzMEYzIDMwQjA7Ozs7TjtTUVVBUkVEIElOSU5HVTs7OzsKKzMzMDU7U1FVQVJFIElOVEk7U287MDtMOzxzcXVhcmU+IDMwQTQgMzBGMyAzMEMxOzs7O047U1FVQVJFRCBJTlRJOzs7OworMzMwNjtTUVVBUkUgVU9OO1NvOzA7TDs8c3F1YXJlPiAzMEE2IDMwQTkgMzBGMzs7OztOO1NRVUFSRUQgVU9OOzs7OworMzMwNztTUVVBUkUgRVNVS1VVRE87U287MDtMOzxzcXVhcmU+IDMwQTggMzBCOSAzMEFGIDMwRkMgMzBDOTs7OztOO1NRVUFSRUQgRVNVS1VVRE87Ozs7CiszMzA4O1NRVUFSRSBFRUtBQTtTbzswO0w7PHNxdWFyZT4gMzBBOCAzMEZDIDMwQUIgMzBGQzs7OztOO1NRVUFSRUQgRUVLQUE7Ozs7CiszMzA5O1NRVUFSRSBPTlNVO1NvOzA7TDs8c3F1YXJlPiAzMEFBIDMwRjMgMzBCOTs7OztOO1NRVUFSRUQgT05TVTs7OzsKKzMzMEE7U1FVQVJFIE9PTVU7U287MDtMOzxzcXVhcmU+IDMwQUEgMzBGQyAzMEUwOzs7O047U1FVQVJFRCBPT01VOzs7OworMzMwQjtTUVVBUkUgS0FJUkk7U287MDtMOzxzcXVhcmU+IDMwQUIgMzBBNCAzMEVBOzs7O047U1FVQVJFRCBLQUlSSTs7OzsKKzMzMEM7U1FVQVJFIEtBUkFUVE87U287MDtMOzxzcXVhcmU+IDMwQUIgMzBFOSAzMEMzIDMwQzg7Ozs7TjtTUVVBUkVEIEtBUkFUVE87Ozs7CiszMzBEO1NRVUFSRSBLQVJPUklJO1NvOzA7TDs8c3F1YXJlPiAzMEFCIDMwRUQgMzBFQSAzMEZDOzs7O047U1FVQVJFRCBLQVJPUklJOzs7OworMzMwRTtTUVVBUkUgR0FST047U287MDtMOzxzcXVhcmU+IDMwQUMgMzBFRCAzMEYzOzs7O047U1FVQVJFRCBHQVJPTjs7OzsKKzMzMEY7U1FVQVJFIEdBTk1BO1NvOzA7TDs8c3F1YXJlPiAzMEFDIDMwRjMgMzBERTs7OztOO1NRVUFSRUQgR0FOTUE7Ozs7CiszMzEwO1NRVUFSRSBHSUdBO1NvOzA7TDs8c3F1YXJlPiAzMEFFIDMwQUM7Ozs7TjtTUVVBUkVEIEdJR0E7Ozs7CiszMzExO1NRVUFSRSBHSU5JSTtTbzswO0w7PHNxdWFyZT4gMzBBRSAzMENCIDMwRkM7Ozs7TjtTUVVBUkVEIEdJTklJOzs7OworMzMxMjtTUVVBUkUgS1lVUklJO1NvOzA7TDs8c3F1YXJlPiAzMEFEIDMwRTUgMzBFQSAzMEZDOzs7O047U1FVQVJFRCBLWVVSSUk7Ozs7CiszMzEzO1NRVUFSRSBHSVJVREFBO1NvOzA7TDs8c3F1YXJlPiAzMEFFIDMwRUIgMzBDMCAzMEZDOzs7O047U1FVQVJFRCBHSVJVREFBOzs7OworMzMxNDtTUVVBUkUgS0lSTztTbzswO0w7PHNxdWFyZT4gMzBBRCAzMEVEOzs7O047U1FVQVJFRCBLSVJPOzs7OworMzMxNTtTUVVBUkUgS0lST0dVUkFNVTtTbzswO0w7PHNxdWFyZT4gMzBBRCAzMEVEIDMwQjAgMzBFOSAzMEUwOzs7O047U1FVQVJFRCBLSVJPR1VSQU1VOzs7OworMzMxNjtTUVVBUkUgS0lST01FRVRPUlU7U287MDtMOzxzcXVhcmU+IDMwQUQgMzBFRCAzMEUxIDMwRkMgMzBDOCAzMEVCOzs7O047U1FVQVJFRCBLSVJPTUVFVE9SVTs7OzsKKzMzMTc7U1FVQVJFIEtJUk9XQVRUTztTbzswO0w7PHNxdWFyZT4gMzBBRCAzMEVEIDMwRUYgMzBDMyAzMEM4Ozs7O047U1FVQVJFRCBLSVJPV0FUVE87Ozs7CiszMzE4O1NRVUFSRSBHVVJBTVU7U287MDtMOzxzcXVhcmU+IDMwQjAgMzBFOSAzMEUwOzs7O047U1FVQVJFRCBHVVJBTVU7Ozs7CiszMzE5O1NRVUFSRSBHVVJBTVVUT047U287MDtMOzxzcXVhcmU+IDMwQjAgMzBFOSAzMEUwIDMwQzggMzBGMzs7OztOO1NRVUFSRUQgR1VSQU1VVE9OOzs7OworMzMxQTtTUVVBUkUgS1VSVVpFSVJPO1NvOzA7TDs8c3F1YXJlPiAzMEFGIDMwRUIgMzBCQyAzMEE0IDMwRUQ7Ozs7TjtTUVVBUkVEIEtVUlVaRUlSTzs7OzsKKzMzMUI7U1FVQVJFIEtVUk9PTkU7U287MDtMOzxzcXVhcmU+IDMwQUYgMzBFRCAzMEZDIDMwQ0Q7Ozs7TjtTUVVBUkVEIEtVUk9PTkU7Ozs7CiszMzFDO1NRVUFSRSBLRUVTVTtTbzswO0w7PHNxdWFyZT4gMzBCMSAzMEZDIDMwQjk7Ozs7TjtTUVVBUkVEIEtFRVNVOzs7OworMzMxRDtTUVVBUkUgS09SVU5BO1NvOzA7TDs8c3F1YXJlPiAzMEIzIDMwRUIgMzBDQTs7OztOO1NRVUFSRUQgS09SVU5BOzs7OworMzMxRTtTUVVBUkUgS09PUE87U287MDtMOzxzcXVhcmU+IDMwQjMgMzBGQyAzMEREOzs7O047U1FVQVJFRCBLT09QTzs7OzsKKzMzMUY7U1FVQVJFIFNBSUtVUlU7U287MDtMOzxzcXVhcmU+IDMwQjUgMzBBNCAzMEFGIDMwRUI7Ozs7TjtTUVVBUkVEIFNBSUtVUlU7Ozs7CiszMzIwO1NRVUFSRSBTQU5USUlNVTtTbzswO0w7PHNxdWFyZT4gMzBCNSAzMEYzIDMwQzEgMzBGQyAzMEUwOzs7O047U1FVQVJFRCBTQU5USUlNVTs7OzsKKzMzMjE7U1FVQVJFIFNJUklOR1U7U287MDtMOzxzcXVhcmU+IDMwQjcgMzBFQSAzMEYzIDMwQjA7Ozs7TjtTUVVBUkVEIFNJUklOR1U7Ozs7CiszMzIyO1NRVUFSRSBTRU5USTtTbzswO0w7PHNxdWFyZT4gMzBCQiAzMEYzIDMwQzE7Ozs7TjtTUVVBUkVEIFNFTlRJOzs7OworMzMyMztTUVVBUkUgU0VOVE87U287MDtMOzxzcXVhcmU+IDMwQkIgMzBGMyAzMEM4Ozs7O047U1FVQVJFRCBTRU5UTzs7OzsKKzMzMjQ7U1FVQVJFIERBQVNVO1NvOzA7TDs8c3F1YXJlPiAzMEMwIDMwRkMgMzBCOTs7OztOO1NRVUFSRUQgREFBU1U7Ozs7CiszMzI1O1NRVUFSRSBERVNJO1NvOzA7TDs8c3F1YXJlPiAzMEM3IDMwQjc7Ozs7TjtTUVVBUkVEIERFU0k7Ozs7CiszMzI2O1NRVUFSRSBET1JVO1NvOzA7TDs8c3F1YXJlPiAzMEM5IDMwRUI7Ozs7TjtTUVVBUkVEIERPUlU7Ozs7CiszMzI3O1NRVUFSRSBUT047U287MDtMOzxzcXVhcmU+IDMwQzggMzBGMzs7OztOO1NRVUFSRUQgVE9OOzs7OworMzMyODtTUVVBUkUgTkFOTztTbzswO0w7PHNxdWFyZT4gMzBDQSAzMENFOzs7O047U1FVQVJFRCBOQU5POzs7OworMzMyOTtTUVVBUkUgTk9UVE87U287MDtMOzxzcXVhcmU+IDMwQ0UgMzBDMyAzMEM4Ozs7O047U1FVQVJFRCBOT1RUTzs7OzsKKzMzMkE7U1FVQVJFIEhBSVRVO1NvOzA7TDs8c3F1YXJlPiAzMENGIDMwQTQgMzBDNDs7OztOO1NRVUFSRUQgSEFJVFU7Ozs7CiszMzJCO1NRVUFSRSBQQUFTRU5UTztTbzswO0w7PHNxdWFyZT4gMzBEMSAzMEZDIDMwQkIgMzBGMyAzMEM4Ozs7O047U1FVQVJFRCBQQUFTRU5UTzs7OzsKKzMzMkM7U1FVQVJFIFBBQVRVO1NvOzA7TDs8c3F1YXJlPiAzMEQxIDMwRkMgMzBDNDs7OztOO1NRVUFSRUQgUEFBVFU7Ozs7CiszMzJEO1NRVUFSRSBCQUFSRVJVO1NvOzA7TDs8c3F1YXJlPiAzMEQwIDMwRkMgMzBFQyAzMEVCOzs7O047U1FVQVJFRCBCQUFSRVJVOzs7OworMzMyRTtTUVVBUkUgUElBU1VUT1JVO1NvOzA7TDs8c3F1YXJlPiAzMEQ0IDMwQTIgMzBCOSAzMEM4IDMwRUI7Ozs7TjtTUVVBUkVEIFBJQVNVVE9SVTs7OzsKKzMzMkY7U1FVQVJFIFBJS1VSVTtTbzswO0w7PHNxdWFyZT4gMzBENCAzMEFGIDMwRUI7Ozs7TjtTUVVBUkVEIFBJS1VSVTs7OzsKKzMzMzA7U1FVQVJFIFBJS087U287MDtMOzxzcXVhcmU+IDMwRDQgMzBCMzs7OztOO1NRVUFSRUQgUElLTzs7OzsKKzMzMzE7U1FVQVJFIEJJUlU7U287MDtMOzxzcXVhcmU+IDMwRDMgMzBFQjs7OztOO1NRVUFSRUQgQklSVTs7OzsKKzMzMzI7U1FVQVJFIEhVQVJBRERPO1NvOzA7TDs8c3F1YXJlPiAzMEQ1IDMwQTEgMzBFOSAzMEMzIDMwQzk7Ozs7TjtTUVVBUkVEIEhVQVJBRERPOzs7OworMzMzMztTUVVBUkUgSFVJSVRPO1NvOzA7TDs8c3F1YXJlPiAzMEQ1IDMwQTMgMzBGQyAzMEM4Ozs7O047U1FVQVJFRCBIVUlJVE87Ozs7CiszMzM0O1NRVUFSRSBCVVNTWUVSVTtTbzswO0w7PHNxdWFyZT4gMzBENiAzMEMzIDMwQjcgMzBBNyAzMEVCOzs7O047U1FVQVJFRCBCVVNTWUVSVTs7OzsKKzMzMzU7U1FVQVJFIEhVUkFOO1NvOzA7TDs8c3F1YXJlPiAzMEQ1IDMwRTkgMzBGMzs7OztOO1NRVUFSRUQgSFVSQU47Ozs7CiszMzM2O1NRVUFSRSBIRUtVVEFBUlU7U287MDtMOzxzcXVhcmU+IDMwRDggMzBBRiAzMEJGIDMwRkMgMzBFQjs7OztOO1NRVUFSRUQgSEVLVVRBQVJVOzs7OworMzMzNztTUVVBUkUgUEVTTztTbzswO0w7PHNxdWFyZT4gMzBEQSAzMEJEOzs7O047U1FVQVJFRCBQRVNPOzs7OworMzMzODtTUVVBUkUgUEVOSUhJO1NvOzA7TDs8c3F1YXJlPiAzMERBIDMwQ0IgMzBEMjs7OztOO1NRVUFSRUQgUEVOSUhJOzs7OworMzMzOTtTUVVBUkUgSEVSVVRVO1NvOzA7TDs8c3F1YXJlPiAzMEQ4IDMwRUIgMzBDNDs7OztOO1NRVUFSRUQgSEVSVVRVOzs7OworMzMzQTtTUVVBUkUgUEVOU1U7U287MDtMOzxzcXVhcmU+IDMwREEgMzBGMyAzMEI5Ozs7O047U1FVQVJFRCBQRU5TVTs7OzsKKzMzM0I7U1FVQVJFIFBFRVpJO1NvOzA7TDs8c3F1YXJlPiAzMERBIDMwRkMgMzBCODs7OztOO1NRVUFSRUQgUEVFWkk7Ozs7CiszMzNDO1NRVUFSRSBCRUVUQTtTbzswO0w7PHNxdWFyZT4gMzBEOSAzMEZDIDMwQkY7Ozs7TjtTUVVBUkVEIEJFRVRBOzs7OworMzMzRDtTUVVBUkUgUE9JTlRPO1NvOzA7TDs8c3F1YXJlPiAzMEREIDMwQTQgMzBGMyAzMEM4Ozs7O047U1FVQVJFRCBQT0lOVE87Ozs7CiszMzNFO1NRVUFSRSBCT1JVVE87U287MDtMOzxzcXVhcmU+IDMwREMgMzBFQiAzMEM4Ozs7O047U1FVQVJFRCBCT1JVVE87Ozs7CiszMzNGO1NRVUFSRSBIT047U287MDtMOzxzcXVhcmU+IDMwREIgMzBGMzs7OztOO1NRVUFSRUQgSE9OOzs7OworMzM0MDtTUVVBUkUgUE9ORE87U287MDtMOzxzcXVhcmU+IDMwREQgMzBGMyAzMEM5Ozs7O047U1FVQVJFRCBQT05ETzs7OzsKKzMzNDE7U1FVQVJFIEhPT1JVO1NvOzA7TDs8c3F1YXJlPiAzMERCIDMwRkMgMzBFQjs7OztOO1NRVUFSRUQgSE9PUlU7Ozs7CiszMzQyO1NRVUFSRSBIT09OO1NvOzA7TDs8c3F1YXJlPiAzMERCIDMwRkMgMzBGMzs7OztOO1NRVUFSRUQgSE9PTjs7OzsKKzMzNDM7U1FVQVJFIE1BSUtVUk87U287MDtMOzxzcXVhcmU+IDMwREUgMzBBNCAzMEFGIDMwRUQ7Ozs7TjtTUVVBUkVEIE1BSUtVUk87Ozs7CiszMzQ0O1NRVUFSRSBNQUlSVTtTbzswO0w7PHNxdWFyZT4gMzBERSAzMEE0IDMwRUI7Ozs7TjtTUVVBUkVEIE1BSVJVOzs7OworMzM0NTtTUVVBUkUgTUFISEE7U287MDtMOzxzcXVhcmU+IDMwREUgMzBDMyAzMENGOzs7O047U1FVQVJFRCBNQUhIQTs7OzsKKzMzNDY7U1FVQVJFIE1BUlVLVTtTbzswO0w7PHNxdWFyZT4gMzBERSAzMEVCIDMwQUY7Ozs7TjtTUVVBUkVEIE1BUlVLVTs7OzsKKzMzNDc7U1FVQVJFIE1BTlNZT047U287MDtMOzxzcXVhcmU+IDMwREUgMzBGMyAzMEI3IDMwRTcgMzBGMzs7OztOO1NRVUFSRUQgTUFOU1lPTjs7OzsKKzMzNDg7U1FVQVJFIE1JS1VST047U287MDtMOzxzcXVhcmU+IDMwREYgMzBBRiAzMEVEIDMwRjM7Ozs7TjtTUVVBUkVEIE1JS1VST047Ozs7CiszMzQ5O1NRVUFSRSBNSVJJO1NvOzA7TDs8c3F1YXJlPiAzMERGIDMwRUE7Ozs7TjtTUVVBUkVEIE1JUkk7Ozs7CiszMzRBO1NRVUFSRSBNSVJJQkFBUlU7U287MDtMOzxzcXVhcmU+IDMwREYgMzBFQSAzMEQwIDMwRkMgMzBFQjs7OztOO1NRVUFSRUQgTUlSSUJBQVJVOzs7OworMzM0QjtTUVVBUkUgTUVHQTtTbzswO0w7PHNxdWFyZT4gMzBFMSAzMEFDOzs7O047U1FVQVJFRCBNRUdBOzs7OworMzM0QztTUVVBUkUgTUVHQVRPTjtTbzswO0w7PHNxdWFyZT4gMzBFMSAzMEFDIDMwQzggMzBGMzs7OztOO1NRVUFSRUQgTUVHQVRPTjs7OzsKKzMzNEQ7U1FVQVJFIE1FRVRPUlU7U287MDtMOzxzcXVhcmU+IDMwRTEgMzBGQyAzMEM4IDMwRUI7Ozs7TjtTUVVBUkVEIE1FRVRPUlU7Ozs7CiszMzRFO1NRVUFSRSBZQUFETztTbzswO0w7PHNxdWFyZT4gMzBFNCAzMEZDIDMwQzk7Ozs7TjtTUVVBUkVEIFlBQURPOzs7OworMzM0RjtTUVVBUkUgWUFBUlU7U287MDtMOzxzcXVhcmU+IDMwRTQgMzBGQyAzMEVCOzs7O047U1FVQVJFRCBZQUFSVTs7OzsKKzMzNTA7U1FVQVJFIFlVQU47U287MDtMOzxzcXVhcmU+IDMwRTYgMzBBMiAzMEYzOzs7O047U1FVQVJFRCBZVUFOOzs7OworMzM1MTtTUVVBUkUgUklUVE9SVTtTbzswO0w7PHNxdWFyZT4gMzBFQSAzMEMzIDMwQzggMzBFQjs7OztOO1NRVUFSRUQgUklUVE9SVTs7OzsKKzMzNTI7U1FVQVJFIFJJUkE7U287MDtMOzxzcXVhcmU+IDMwRUEgMzBFOTs7OztOO1NRVUFSRUQgUklSQTs7OzsKKzMzNTM7U1FVQVJFIFJVUElJO1NvOzA7TDs8c3F1YXJlPiAzMEVCIDMwRDQgMzBGQzs7OztOO1NRVUFSRUQgUlVQSUk7Ozs7CiszMzU0O1NRVUFSRSBSVVVCVVJVO1NvOzA7TDs8c3F1YXJlPiAzMEVCIDMwRkMgMzBENiAzMEVCOzs7O047U1FVQVJFRCBSVVVCVVJVOzs7OworMzM1NTtTUVVBUkUgUkVNVTtTbzswO0w7PHNxdWFyZT4gMzBFQyAzMEUwOzs7O047U1FVQVJFRCBSRU1VOzs7OworMzM1NjtTUVVBUkUgUkVOVE9HRU47U287MDtMOzxzcXVhcmU+IDMwRUMgMzBGMyAzMEM4IDMwQjIgMzBGMzs7OztOO1NRVUFSRUQgUkVOVE9HRU47Ozs7CiszMzU3O1NRVUFSRSBXQVRUTztTbzswO0w7PHNxdWFyZT4gMzBFRiAzMEMzIDMwQzg7Ozs7TjtTUVVBUkVEIFdBVFRPOzs7OworMzM1ODtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFpFUk87U287MDtMOzxjb21wYXQ+IDAwMzAgNzBCOTs7OztOOzs7OzsKKzMzNTk7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBPTkU7U287MDtMOzxjb21wYXQ+IDAwMzEgNzBCOTs7OztOOzs7OzsKKzMzNUE7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBUV087U287MDtMOzxjb21wYXQ+IDAwMzIgNzBCOTs7OztOOzs7OzsKKzMzNUI7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBUSFJFRTtTbzswO0w7PGNvbXBhdD4gMDAzMyA3MEI5Ozs7O047Ozs7OworMzM1QztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIEZPVVI7U287MDtMOzxjb21wYXQ+IDAwMzQgNzBCOTs7OztOOzs7OzsKKzMzNUQ7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBGSVZFO1NvOzA7TDs8Y29tcGF0PiAwMDM1IDcwQjk7Ozs7Tjs7Ozs7CiszMzVFO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgU0lYO1NvOzA7TDs8Y29tcGF0PiAwMDM2IDcwQjk7Ozs7Tjs7Ozs7CiszMzVGO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgU0VWRU47U287MDtMOzxjb21wYXQ+IDAwMzcgNzBCOTs7OztOOzs7OzsKKzMzNjA7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBFSUdIVDtTbzswO0w7PGNvbXBhdD4gMDAzOCA3MEI5Ozs7O047Ozs7OworMzM2MTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIE5JTkU7U287MDtMOzxjb21wYXQ+IDAwMzkgNzBCOTs7OztOOzs7OzsKKzMzNjI7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBURU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzMCA3MEI5Ozs7O047Ozs7OworMzM2MztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIEVMRVZFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDMxIDcwQjk7Ozs7Tjs7Ozs7CiszMzY0O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgVFdFTFZFO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzIgNzBCOTs7OztOOzs7OzsKKzMzNjU7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBUSElSVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDMzIDcwQjk7Ozs7Tjs7Ozs7CiszMzY2O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgRk9VUlRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzNCA3MEI5Ozs7O047Ozs7OworMzM2NztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIEZJRlRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzNSA3MEI5Ozs7O047Ozs7OworMzM2ODtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFNJWFRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzNiA3MEI5Ozs7O047Ozs7OworMzM2OTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFNFVkVOVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDM3IDcwQjk7Ozs7Tjs7Ozs7CiszMzZBO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgRUlHSFRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzOCA3MEI5Ozs7O047Ozs7OworMzM2QjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIE5JTkVURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzkgNzBCOTs7OztOOzs7OzsKKzMzNkM7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBUV0VOVFk7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzMCA3MEI5Ozs7O047Ozs7OworMzM2RDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFRXRU5UWS1PTkU7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzMSA3MEI5Ozs7O047Ozs7OworMzM2RTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFRXRU5UWS1UV087U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzMiA3MEI5Ozs7O047Ozs7OworMzM2RjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFRXRU5UWS1USFJFRTtTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDMzIDcwQjk7Ozs7Tjs7Ozs7CiszMzcwO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgVFdFTlRZLUZPVVI7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzNCA3MEI5Ozs7O047Ozs7OworMzM3MTtTUVVBUkUgSFBBO1NvOzA7TDs8c3F1YXJlPiAwMDY4IDAwNTAgMDA2MTs7OztOOzs7OzsKKzMzNzI7U1FVQVJFIERBO1NvOzA7TDs8c3F1YXJlPiAwMDY0IDAwNjE7Ozs7Tjs7Ozs7CiszMzczO1NRVUFSRSBBVTtTbzswO0w7PHNxdWFyZT4gMDA0MSAwMDU1Ozs7O047Ozs7OworMzM3NDtTUVVBUkUgQkFSO1NvOzA7TDs8c3F1YXJlPiAwMDYyIDAwNjEgMDA3Mjs7OztOOzs7OzsKKzMzNzU7U1FVQVJFIE9WO1NvOzA7TDs8c3F1YXJlPiAwMDZGIDAwNTY7Ozs7Tjs7Ozs7CiszMzc2O1NRVUFSRSBQQztTbzswO0w7PHNxdWFyZT4gMDA3MCAwMDYzOzs7O047Ozs7OworMzM3QjtTUVVBUkUgRVJBIE5BTUUgSEVJU0VJO1NvOzA7TDs8c3F1YXJlPiA1RTczIDYyMTA7Ozs7TjtTUVVBUkVEIFRXTyBJREVPR1JBUEhTIEVSQSBOQU1FIEhFSVNFSTs7OzsKKzMzN0M7U1FVQVJFIEVSQSBOQU1FIFNZT1VXQTtTbzswO0w7PHNxdWFyZT4gNjYyRCA1NDhDOzs7O047U1FVQVJFRCBUV08gSURFT0dSQVBIUyBFUkEgTkFNRSBTWU9VV0E7Ozs7CiszMzdEO1NRVUFSRSBFUkEgTkFNRSBUQUlTWU9VO1NvOzA7TDs8c3F1YXJlPiA1OTI3IDZCNjM7Ozs7TjtTUVVBUkVEIFRXTyBJREVPR1JBUEhTIEVSQSBOQU1FIFRBSVNZT1U7Ozs7CiszMzdFO1NRVUFSRSBFUkEgTkFNRSBNRUlaSTtTbzswO0w7PHNxdWFyZT4gNjYwRSA2Q0JCOzs7O047U1FVQVJFRCBUV08gSURFT0dSQVBIUyBFUkEgTkFNRSBNRUlaSTs7OzsKKzMzN0Y7U1FVQVJFIENPUlBPUkFUSU9OO1NvOzA7TDs8c3F1YXJlPiA2ODJBIDVGMEYgNEYxQSA3OTNFOzs7O047U1FVQVJFRCBGT1VSIElERU9HUkFQSFMgQ09SUE9SQVRJT047Ozs7CiszMzgwO1NRVUFSRSBQQSBBTVBTO1NvOzA7TDs8c3F1YXJlPiAwMDcwIDAwNDE7Ozs7TjtTUVVBUkVEIFBBIEFNUFM7Ozs7CiszMzgxO1NRVUFSRSBOQTtTbzswO0w7PHNxdWFyZT4gMDA2RSAwMDQxOzs7O047U1FVQVJFRCBOQTs7OzsKKzMzODI7U1FVQVJFIE1VIEE7U287MDtMOzxzcXVhcmU+IDAzQkMgMDA0MTs7OztOO1NRVUFSRUQgTVUgQTs7OzsKKzMzODM7U1FVQVJFIE1BO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNDE7Ozs7TjtTUVVBUkVEIE1BOzs7OworMzM4NDtTUVVBUkUgS0E7U287MDtMOzxzcXVhcmU+IDAwNkIgMDA0MTs7OztOO1NRVUFSRUQgS0E7Ozs7CiszMzg1O1NRVUFSRSBLQjtTbzswO0w7PHNxdWFyZT4gMDA0QiAwMDQyOzs7O047U1FVQVJFRCBLQjs7OzsKKzMzODY7U1FVQVJFIE1CO1NvOzA7TDs8c3F1YXJlPiAwMDREIDAwNDI7Ozs7TjtTUVVBUkVEIE1COzs7OworMzM4NztTUVVBUkUgR0I7U287MDtMOzxzcXVhcmU+IDAwNDcgMDA0Mjs7OztOO1NRVUFSRUQgR0I7Ozs7CiszMzg4O1NRVUFSRSBDQUw7U287MDtMOzxzcXVhcmU+IDAwNjMgMDA2MSAwMDZDOzs7O047U1FVQVJFRCBDQUw7Ozs7CiszMzg5O1NRVUFSRSBLQ0FMO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDAwNjMgMDA2MSAwMDZDOzs7O047U1FVQVJFRCBLQ0FMOzs7OworMzM4QTtTUVVBUkUgUEY7U287MDtMOzxzcXVhcmU+IDAwNzAgMDA0Njs7OztOO1NRVUFSRUQgUEY7Ozs7CiszMzhCO1NRVUFSRSBORjtTbzswO0w7PHNxdWFyZT4gMDA2RSAwMDQ2Ozs7O047U1FVQVJFRCBORjs7OzsKKzMzOEM7U1FVQVJFIE1VIEY7U287MDtMOzxzcXVhcmU+IDAzQkMgMDA0Njs7OztOO1NRVUFSRUQgTVUgRjs7OzsKKzMzOEQ7U1FVQVJFIE1VIEc7U287MDtMOzxzcXVhcmU+IDAzQkMgMDA2Nzs7OztOO1NRVUFSRUQgTVUgRzs7OzsKKzMzOEU7U1FVQVJFIE1HO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNjc7Ozs7TjtTUVVBUkVEIE1HOzs7OworMzM4RjtTUVVBUkUgS0c7U287MDtMOzxzcXVhcmU+IDAwNkIgMDA2Nzs7OztOO1NRVUFSRUQgS0c7Ozs7CiszMzkwO1NRVUFSRSBIWjtTbzswO0w7PHNxdWFyZT4gMDA0OCAwMDdBOzs7O047U1FVQVJFRCBIWjs7OzsKKzMzOTE7U1FVQVJFIEtIWjtTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDQ4IDAwN0E7Ozs7TjtTUVVBUkVEIEtIWjs7OzsKKzMzOTI7U1FVQVJFIE1IWjtTbzswO0w7PHNxdWFyZT4gMDA0RCAwMDQ4IDAwN0E7Ozs7TjtTUVVBUkVEIE1IWjs7OzsKKzMzOTM7U1FVQVJFIEdIWjtTbzswO0w7PHNxdWFyZT4gMDA0NyAwMDQ4IDAwN0E7Ozs7TjtTUVVBUkVEIEdIWjs7OzsKKzMzOTQ7U1FVQVJFIFRIWjtTbzswO0w7PHNxdWFyZT4gMDA1NCAwMDQ4IDAwN0E7Ozs7TjtTUVVBUkVEIFRIWjs7OzsKKzMzOTU7U1FVQVJFIE1VIEw7U287MDtMOzxzcXVhcmU+IDAzQkMgMjExMzs7OztOO1NRVUFSRUQgTVUgTDs7OzsKKzMzOTY7U1FVQVJFIE1MO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDIxMTM7Ozs7TjtTUVVBUkVEIE1MOzs7OworMzM5NztTUVVBUkUgREw7U287MDtMOzxzcXVhcmU+IDAwNjQgMjExMzs7OztOO1NRVUFSRUQgREw7Ozs7CiszMzk4O1NRVUFSRSBLTDtTbzswO0w7PHNxdWFyZT4gMDA2QiAyMTEzOzs7O047U1FVQVJFRCBLTDs7OzsKKzMzOTk7U1FVQVJFIEZNO1NvOzA7TDs8c3F1YXJlPiAwMDY2IDAwNkQ7Ozs7TjtTUVVBUkVEIEZNOzs7OworMzM5QTtTUVVBUkUgTk07U287MDtMOzxzcXVhcmU+IDAwNkUgMDA2RDs7OztOO1NRVUFSRUQgTk07Ozs7CiszMzlCO1NRVUFSRSBNVSBNO1NvOzA7TDs8c3F1YXJlPiAwM0JDIDAwNkQ7Ozs7TjtTUVVBUkVEIE1VIE07Ozs7CiszMzlDO1NRVUFSRSBNTTtTbzswO0w7PHNxdWFyZT4gMDA2RCAwMDZEOzs7O047U1FVQVJFRCBNTTs7OzsKKzMzOUQ7U1FVQVJFIENNO1NvOzA7TDs8c3F1YXJlPiAwMDYzIDAwNkQ7Ozs7TjtTUVVBUkVEIENNOzs7OworMzM5RTtTUVVBUkUgS007U287MDtMOzxzcXVhcmU+IDAwNkIgMDA2RDs7OztOO1NRVUFSRUQgS007Ozs7CiszMzlGO1NRVUFSRSBNTSBTUVVBUkVEO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNkQgMDBCMjs7OztOO1NRVUFSRUQgTU0gU1FVQVJFRDs7OzsKKzMzQTA7U1FVQVJFIENNIFNRVUFSRUQ7U287MDtMOzxzcXVhcmU+IDAwNjMgMDA2RCAwMEIyOzs7O047U1FVQVJFRCBDTSBTUVVBUkVEOzs7OworMzNBMTtTUVVBUkUgTSBTUVVBUkVEO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwQjI7Ozs7TjtTUVVBUkVEIE0gU1FVQVJFRDs7OzsKKzMzQTI7U1FVQVJFIEtNIFNRVUFSRUQ7U287MDtMOzxzcXVhcmU+IDAwNkIgMDA2RCAwMEIyOzs7O047U1FVQVJFRCBLTSBTUVVBUkVEOzs7OworMzNBMztTUVVBUkUgTU0gQ1VCRUQ7U287MDtMOzxzcXVhcmU+IDAwNkQgMDA2RCAwMEIzOzs7O047U1FVQVJFRCBNTSBDVUJFRDs7OzsKKzMzQTQ7U1FVQVJFIENNIENVQkVEO1NvOzA7TDs8c3F1YXJlPiAwMDYzIDAwNkQgMDBCMzs7OztOO1NRVUFSRUQgQ00gQ1VCRUQ7Ozs7CiszM0E1O1NRVUFSRSBNIENVQkVEO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwQjM7Ozs7TjtTUVVBUkVEIE0gQ1VCRUQ7Ozs7CiszM0E2O1NRVUFSRSBLTSBDVUJFRDtTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDZEIDAwQjM7Ozs7TjtTUVVBUkVEIEtNIENVQkVEOzs7OworMzNBNztTUVVBUkUgTSBPVkVSIFM7U287MDtMOzxzcXVhcmU+IDAwNkQgMjIxNSAwMDczOzs7O047U1FVQVJFRCBNIE9WRVIgUzs7OzsKKzMzQTg7U1FVQVJFIE0gT1ZFUiBTIFNRVUFSRUQ7U287MDtMOzxzcXVhcmU+IDAwNkQgMjIxNSAwMDczIDAwQjI7Ozs7TjtTUVVBUkVEIE0gT1ZFUiBTIFNRVUFSRUQ7Ozs7CiszM0E5O1NRVUFSRSBQQTtTbzswO0w7PHNxdWFyZT4gMDA1MCAwMDYxOzs7O047U1FVQVJFRCBQQTs7OzsKKzMzQUE7U1FVQVJFIEtQQTtTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDUwIDAwNjE7Ozs7TjtTUVVBUkVEIEtQQTs7OzsKKzMzQUI7U1FVQVJFIE1QQTtTbzswO0w7PHNxdWFyZT4gMDA0RCAwMDUwIDAwNjE7Ozs7TjtTUVVBUkVEIE1QQTs7OzsKKzMzQUM7U1FVQVJFIEdQQTtTbzswO0w7PHNxdWFyZT4gMDA0NyAwMDUwIDAwNjE7Ozs7TjtTUVVBUkVEIEdQQTs7OzsKKzMzQUQ7U1FVQVJFIFJBRDtTbzswO0w7PHNxdWFyZT4gMDA3MiAwMDYxIDAwNjQ7Ozs7TjtTUVVBUkVEIFJBRDs7OzsKKzMzQUU7U1FVQVJFIFJBRCBPVkVSIFM7U287MDtMOzxzcXVhcmU+IDAwNzIgMDA2MSAwMDY0IDIyMTUgMDA3Mzs7OztOO1NRVUFSRUQgUkFEIE9WRVIgUzs7OzsKKzMzQUY7U1FVQVJFIFJBRCBPVkVSIFMgU1FVQVJFRDtTbzswO0w7PHNxdWFyZT4gMDA3MiAwMDYxIDAwNjQgMjIxNSAwMDczIDAwQjI7Ozs7TjtTUVVBUkVEIFJBRCBPVkVSIFMgU1FVQVJFRDs7OzsKKzMzQjA7U1FVQVJFIFBTO1NvOzA7TDs8c3F1YXJlPiAwMDcwIDAwNzM7Ozs7TjtTUVVBUkVEIFBTOzs7OworMzNCMTtTUVVBUkUgTlM7U287MDtMOzxzcXVhcmU+IDAwNkUgMDA3Mzs7OztOO1NRVUFSRUQgTlM7Ozs7CiszM0IyO1NRVUFSRSBNVSBTO1NvOzA7TDs8c3F1YXJlPiAwM0JDIDAwNzM7Ozs7TjtTUVVBUkVEIE1VIFM7Ozs7CiszM0IzO1NRVUFSRSBNUztTbzswO0w7PHNxdWFyZT4gMDA2RCAwMDczOzs7O047U1FVQVJFRCBNUzs7OzsKKzMzQjQ7U1FVQVJFIFBWO1NvOzA7TDs8c3F1YXJlPiAwMDcwIDAwNTY7Ozs7TjtTUVVBUkVEIFBWOzs7OworMzNCNTtTUVVBUkUgTlY7U287MDtMOzxzcXVhcmU+IDAwNkUgMDA1Njs7OztOO1NRVUFSRUQgTlY7Ozs7CiszM0I2O1NRVUFSRSBNVSBWO1NvOzA7TDs8c3F1YXJlPiAwM0JDIDAwNTY7Ozs7TjtTUVVBUkVEIE1VIFY7Ozs7CiszM0I3O1NRVUFSRSBNVjtTbzswO0w7PHNxdWFyZT4gMDA2RCAwMDU2Ozs7O047U1FVQVJFRCBNVjs7OzsKKzMzQjg7U1FVQVJFIEtWO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDAwNTY7Ozs7TjtTUVVBUkVEIEtWOzs7OworMzNCOTtTUVVBUkUgTVYgTUVHQTtTbzswO0w7PHNxdWFyZT4gMDA0RCAwMDU2Ozs7O047U1FVQVJFRCBNViBNRUdBOzs7OworMzNCQTtTUVVBUkUgUFc7U287MDtMOzxzcXVhcmU+IDAwNzAgMDA1Nzs7OztOO1NRVUFSRUQgUFc7Ozs7CiszM0JCO1NRVUFSRSBOVztTbzswO0w7PHNxdWFyZT4gMDA2RSAwMDU3Ozs7O047U1FVQVJFRCBOVzs7OzsKKzMzQkM7U1FVQVJFIE1VIFc7U287MDtMOzxzcXVhcmU+IDAzQkMgMDA1Nzs7OztOO1NRVUFSRUQgTVUgVzs7OzsKKzMzQkQ7U1FVQVJFIE1XO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNTc7Ozs7TjtTUVVBUkVEIE1XOzs7OworMzNCRTtTUVVBUkUgS1c7U287MDtMOzxzcXVhcmU+IDAwNkIgMDA1Nzs7OztOO1NRVUFSRUQgS1c7Ozs7CiszM0JGO1NRVUFSRSBNVyBNRUdBO1NvOzA7TDs8c3F1YXJlPiAwMDREIDAwNTc7Ozs7TjtTUVVBUkVEIE1XIE1FR0E7Ozs7CiszM0MwO1NRVUFSRSBLIE9ITTtTbzswO0w7PHNxdWFyZT4gMDA2QiAwM0E5Ozs7O047U1FVQVJFRCBLIE9ITTs7OzsKKzMzQzE7U1FVQVJFIE0gT0hNO1NvOzA7TDs8c3F1YXJlPiAwMDREIDAzQTk7Ozs7TjtTUVVBUkVEIE0gT0hNOzs7OworMzNDMjtTUVVBUkUgQU07U287MDtMOzxzcXVhcmU+IDAwNjEgMDAyRSAwMDZEIDAwMkU7Ozs7TjtTUVVBUkVEIEFNOzs7OworMzNDMztTUVVBUkUgQlE7U287MDtMOzxzcXVhcmU+IDAwNDIgMDA3MTs7OztOO1NRVUFSRUQgQlE7Ozs7CiszM0M0O1NRVUFSRSBDQztTbzswO0w7PHNxdWFyZT4gMDA2MyAwMDYzOzs7O047U1FVQVJFRCBDQzs7OzsKKzMzQzU7U1FVQVJFIENEO1NvOzA7TDs8c3F1YXJlPiAwMDYzIDAwNjQ7Ozs7TjtTUVVBUkVEIENEOzs7OworMzNDNjtTUVVBUkUgQyBPVkVSIEtHO1NvOzA7TDs8c3F1YXJlPiAwMDQzIDIyMTUgMDA2QiAwMDY3Ozs7O047U1FVQVJFRCBDIE9WRVIgS0c7Ozs7CiszM0M3O1NRVUFSRSBDTztTbzswO0w7PHNxdWFyZT4gMDA0MyAwMDZGIDAwMkU7Ozs7TjtTUVVBUkVEIENPOzs7OworMzNDODtTUVVBUkUgREI7U287MDtMOzxzcXVhcmU+IDAwNjQgMDA0Mjs7OztOO1NRVUFSRUQgREI7Ozs7CiszM0M5O1NRVUFSRSBHWTtTbzswO0w7PHNxdWFyZT4gMDA0NyAwMDc5Ozs7O047U1FVQVJFRCBHWTs7OzsKKzMzQ0E7U1FVQVJFIEhBO1NvOzA7TDs8c3F1YXJlPiAwMDY4IDAwNjE7Ozs7TjtTUVVBUkVEIEhBOzs7OworMzNDQjtTUVVBUkUgSFA7U287MDtMOzxzcXVhcmU+IDAwNDggMDA1MDs7OztOO1NRVUFSRUQgSFA7Ozs7CiszM0NDO1NRVUFSRSBJTjtTbzswO0w7PHNxdWFyZT4gMDA2OSAwMDZFOzs7O047U1FVQVJFRCBJTjs7OzsKKzMzQ0Q7U1FVQVJFIEtLO1NvOzA7TDs8c3F1YXJlPiAwMDRCIDAwNEI7Ozs7TjtTUVVBUkVEIEtLOzs7OworMzNDRTtTUVVBUkUgS00gQ0FQSVRBTDtTbzswO0w7PHNxdWFyZT4gMDA0QiAwMDREOzs7O047U1FVQVJFRCBLTSBDQVBJVEFMOzs7OworMzNDRjtTUVVBUkUgS1Q7U287MDtMOzxzcXVhcmU+IDAwNkIgMDA3NDs7OztOO1NRVUFSRUQgS1Q7Ozs7CiszM0QwO1NRVUFSRSBMTTtTbzswO0w7PHNxdWFyZT4gMDA2QyAwMDZEOzs7O047U1FVQVJFRCBMTTs7OzsKKzMzRDE7U1FVQVJFIExOO1NvOzA7TDs8c3F1YXJlPiAwMDZDIDAwNkU7Ozs7TjtTUVVBUkVEIExOOzs7OworMzNEMjtTUVVBUkUgTE9HO1NvOzA7TDs8c3F1YXJlPiAwMDZDIDAwNkYgMDA2Nzs7OztOO1NRVUFSRUQgTE9HOzs7OworMzNEMztTUVVBUkUgTFg7U287MDtMOzxzcXVhcmU+IDAwNkMgMDA3ODs7OztOO1NRVUFSRUQgTFg7Ozs7CiszM0Q0O1NRVUFSRSBNQiBTTUFMTDtTbzswO0w7PHNxdWFyZT4gMDA2RCAwMDYyOzs7O047U1FVQVJFRCBNQiBTTUFMTDs7OzsKKzMzRDU7U1FVQVJFIE1JTDtTbzswO0w7PHNxdWFyZT4gMDA2RCAwMDY5IDAwNkM7Ozs7TjtTUVVBUkVEIE1JTDs7OzsKKzMzRDY7U1FVQVJFIE1PTDtTbzswO0w7PHNxdWFyZT4gMDA2RCAwMDZGIDAwNkM7Ozs7TjtTUVVBUkVEIE1PTDs7OzsKKzMzRDc7U1FVQVJFIFBIO1NvOzA7TDs8c3F1YXJlPiAwMDUwIDAwNDg7Ozs7TjtTUVVBUkVEIFBIOzs7OworMzNEODtTUVVBUkUgUE07U287MDtMOzxzcXVhcmU+IDAwNzAgMDAyRSAwMDZEIDAwMkU7Ozs7TjtTUVVBUkVEIFBNOzs7OworMzNEOTtTUVVBUkUgUFBNO1NvOzA7TDs8c3F1YXJlPiAwMDUwIDAwNTAgMDA0RDs7OztOO1NRVUFSRUQgUFBNOzs7OworMzNEQTtTUVVBUkUgUFI7U287MDtMOzxzcXVhcmU+IDAwNTAgMDA1Mjs7OztOO1NRVUFSRUQgUFI7Ozs7CiszM0RCO1NRVUFSRSBTUjtTbzswO0w7PHNxdWFyZT4gMDA3MyAwMDcyOzs7O047U1FVQVJFRCBTUjs7OzsKKzMzREM7U1FVQVJFIFNWO1NvOzA7TDs8c3F1YXJlPiAwMDUzIDAwNzY7Ozs7TjtTUVVBUkVEIFNWOzs7OworMzNERDtTUVVBUkUgV0I7U287MDtMOzxzcXVhcmU+IDAwNTcgMDA2Mjs7OztOO1NRVUFSRUQgV0I7Ozs7CiszM0UwO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBPTkU7U287MDtMOzxjb21wYXQ+IDAwMzEgNjVFNTs7OztOOzs7OzsKKzMzRTE7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRXTztTbzswO0w7PGNvbXBhdD4gMDAzMiA2NUU1Ozs7O047Ozs7OworMzNFMjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVEhSRUU7U287MDtMOzxjb21wYXQ+IDAwMzMgNjVFNTs7OztOOzs7OzsKKzMzRTM7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIEZPVVI7U287MDtMOzxjb21wYXQ+IDAwMzQgNjVFNTs7OztOOzs7OzsKKzMzRTQ7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIEZJVkU7U287MDtMOzxjb21wYXQ+IDAwMzUgNjVFNTs7OztOOzs7OzsKKzMzRTU7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFNJWDtTbzswO0w7PGNvbXBhdD4gMDAzNiA2NUU1Ozs7O047Ozs7OworMzNFNjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgU0VWRU47U287MDtMOzxjb21wYXQ+IDAwMzcgNjVFNTs7OztOOzs7OzsKKzMzRTc7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIEVJR0hUO1NvOzA7TDs8Y29tcGF0PiAwMDM4IDY1RTU7Ozs7Tjs7Ozs7CiszM0U4O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBOSU5FO1NvOzA7TDs8Y29tcGF0PiAwMDM5IDY1RTU7Ozs7Tjs7Ozs7CiszM0U5O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBURU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzMCA2NUU1Ozs7O047Ozs7OworMzNFQTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgRUxFVkVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzEgNjVFNTs7OztOOzs7OzsKKzMzRUI7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRXRUxWRTtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDMyIDY1RTU7Ozs7Tjs7Ozs7CiszM0VDO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUSElSVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDMzIDY1RTU7Ozs7Tjs7Ozs7CiszM0VEO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBGT1VSVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDM0IDY1RTU7Ozs7Tjs7Ozs7CiszM0VFO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBGSUZURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzUgNjVFNTs7OztOOzs7OzsKKzMzRUY7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFNJWFRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzNiA2NUU1Ozs7O047Ozs7OworMzNGMDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgU0VWRU5URUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzcgNjVFNTs7OztOOzs7OzsKKzMzRjE7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIEVJR0hURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzggNjVFNTs7OztOOzs7OzsKKzMzRjI7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIE5JTkVURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzkgNjVFNTs7OztOOzs7OzsKKzMzRjM7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRXRU5UWTtTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDMwIDY1RTU7Ozs7Tjs7Ozs7CiszM0Y0O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUV0VOVFktT05FO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzEgNjVFNTs7OztOOzs7OzsKKzMzRjU7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRXRU5UWS1UV087U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzMiA2NUU1Ozs7O047Ozs7OworMzNGNjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZLVRIUkVFO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzMgNjVFNTs7OztOOzs7OzsKKzMzRjc7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRXRU5UWS1GT1VSO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzQgNjVFNTs7OztOOzs7OzsKKzMzRjg7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRXRU5UWS1GSVZFO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzUgNjVFNTs7OztOOzs7OzsKKzMzRjk7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRXRU5UWS1TSVg7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzNiA2NUU1Ozs7O047Ozs7OworMzNGQTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZLVNFVkVOO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzcgNjVFNTs7OztOOzs7OzsKKzMzRkI7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRXRU5UWS1FSUdIVDtTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDM4IDY1RTU7Ozs7Tjs7Ozs7CiszM0ZDO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUV0VOVFktTklORTtTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDM5IDY1RTU7Ozs7Tjs7Ozs7CiszM0ZEO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUSElSVFk7U287MDtMOzxjb21wYXQ+IDAwMzMgMDAzMCA2NUU1Ozs7O047Ozs7OworMzNGRTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVEhJUlRZLU9ORTtTbzswO0w7PGNvbXBhdD4gMDAzMyAwMDMxIDY1RTU7Ozs7Tjs7Ozs7Cis0RTAwOzxDSksgSWRlb2dyYXBoLCBGaXJzdD47TG87MDtMOzs7OztOOzs7OzsKKzlGQTU7PENKSyBJZGVvZ3JhcGgsIExhc3Q+O0xvOzA7TDs7Ozs7Tjs7Ozs7CitBQzAwOzxIYW5ndWwgU3lsbGFibGUsIEZpcnN0PjtMbzswO0w7Ozs7O047Ozs7OworRDdBMzs8SGFuZ3VsIFN5bGxhYmxlLCBMYXN0PjtMbzswO0w7Ozs7O047Ozs7OworRDgwMDs8VW5hc3NpZ25lZCBIaWdoIFN1cnJvZ2F0ZSwgRmlyc3Q+O0NzOzA7TDs7Ozs7Tjs7Ozs7CitEQjdGOzxVbmFzc2lnbmVkIEhpZ2ggU3Vycm9nYXRlLCBMYXN0PjtDczswO0w7Ozs7O047Ozs7OworREI4MDs8UHJpdmF0ZSBVc2UgSGlnaCBTdXJyb2dhdGUsIEZpcnN0PjtDczswO0w7Ozs7O047Ozs7OworREJGRjs8UHJpdmF0ZSBVc2UgSGlnaCBTdXJyb2dhdGUsIExhc3Q+O0NzOzA7TDs7Ozs7Tjs7Ozs7CitEQzAwOzxMb3cgU3Vycm9nYXRlLCBGaXJzdD47Q3M7MDtMOzs7OztOOzs7OzsKK0RGRkY7PExvdyBTdXJyb2dhdGUsIExhc3Q+O0NzOzA7TDs7Ozs7Tjs7Ozs7CitFMDAwOzxQcml2YXRlIFVzZSwgRmlyc3Q+O0NvOzA7TDs7Ozs7Tjs7Ozs7CitGOEZGOzxQcml2YXRlIFVzZSwgTGFzdD47Q287MDtMOzs7OztOOzs7OzsKK0Y5MDA7PENKSyBDb21wYXRpYmlsaXR5IElkZW9ncmFwaCwgRmlyc3Q+O0xvOzA7TDs7Ozs7Tjs7Ozs7CitGQTJEOzxDSksgQ29tcGF0aWJpbGl0eSBJZGVvZ3JhcGgsIExhc3Q+O0xvOzA7TDs7Ozs7Tjs7Ozs7CitGQjAwO0xBVElOIFNNQUxMIExJR0FUVVJFIEZGO0xsOzA7TDs8Y29tcGF0PiAwMDY2IDAwNjY7Ozs7Tjs7Ozs7CitGQjAxO0xBVElOIFNNQUxMIExJR0FUVVJFIEZJO0xsOzA7TDs8Y29tcGF0PiAwMDY2IDAwNjk7Ozs7Tjs7Ozs7CitGQjAyO0xBVElOIFNNQUxMIExJR0FUVVJFIEZMO0xsOzA7TDs8Y29tcGF0PiAwMDY2IDAwNkM7Ozs7Tjs7Ozs7CitGQjAzO0xBVElOIFNNQUxMIExJR0FUVVJFIEZGSTtMbDswO0w7PGNvbXBhdD4gMDA2NiAwMDY2IDAwNjk7Ozs7Tjs7Ozs7CitGQjA0O0xBVElOIFNNQUxMIExJR0FUVVJFIEZGTDtMbDswO0w7PGNvbXBhdD4gMDA2NiAwMDY2IDAwNkM7Ozs7Tjs7Ozs7CitGQjA1O0xBVElOIFNNQUxMIExJR0FUVVJFIExPTkcgUyBUO0xsOzA7TDs8Y29tcGF0PiAwMTdGIDAwNzQ7Ozs7Tjs7Ozs7CitGQjA2O0xBVElOIFNNQUxMIExJR0FUVVJFIFNUO0xsOzA7TDs8Y29tcGF0PiAwMDczIDAwNzQ7Ozs7Tjs7Ozs7CitGQjEzO0FSTUVOSUFOIFNNQUxMIExJR0FUVVJFIE1FTiBOT1c7TGw7MDtMOzxjb21wYXQ+IDA1NzQgMDU3Njs7OztOOzs7OzsKK0ZCMTQ7QVJNRU5JQU4gU01BTEwgTElHQVRVUkUgTUVOIEVDSDtMbDswO0w7PGNvbXBhdD4gMDU3NCAwNTY1Ozs7O047Ozs7OworRkIxNTtBUk1FTklBTiBTTUFMTCBMSUdBVFVSRSBNRU4gSU5JO0xsOzA7TDs8Y29tcGF0PiAwNTc0IDA1NkI7Ozs7Tjs7Ozs7CitGQjE2O0FSTUVOSUFOIFNNQUxMIExJR0FUVVJFIFZFVyBOT1c7TGw7MDtMOzxjb21wYXQ+IDA1N0UgMDU3Njs7OztOOzs7OzsKK0ZCMTc7QVJNRU5JQU4gU01BTEwgTElHQVRVUkUgTUVOIFhFSDtMbDswO0w7PGNvbXBhdD4gMDU3NCAwNTZEOzs7O047Ozs7OworRkIxRTtIRUJSRVcgUE9JTlQgSlVERU8tU1BBTklTSCBWQVJJS0E7TW47MjY7Ujs7Ozs7TjtIRUJSRVcgUE9JTlQgVkFSSUtBOzs7OworRkIxRjtIRUJSRVcgTElHQVRVUkUgWUlERElTSCBZT0QgWU9EIFBBVEFIO0xvOzA7UjswNUYyIDA1Qjc7Ozs7Tjs7Ozs7CitGQjIwO0hFQlJFVyBMRVRURVIgQUxURVJOQVRJVkUgQVlJTjtMbzswO1I7PGZvbnQ+IDA1RTI7Ozs7Tjs7Ozs7CitGQjIxO0hFQlJFVyBMRVRURVIgV0lERSBBTEVGO0xvOzA7Ujs8Zm9udD4gMDVEMDs7OztOOzs7OzsKK0ZCMjI7SEVCUkVXIExFVFRFUiBXSURFIERBTEVUO0xvOzA7Ujs8Zm9udD4gMDVEMzs7OztOOzs7OzsKK0ZCMjM7SEVCUkVXIExFVFRFUiBXSURFIEhFO0xvOzA7Ujs8Zm9udD4gMDVENDs7OztOOzs7OzsKK0ZCMjQ7SEVCUkVXIExFVFRFUiBXSURFIEtBRjtMbzswO1I7PGZvbnQ+IDA1REI7Ozs7Tjs7Ozs7CitGQjI1O0hFQlJFVyBMRVRURVIgV0lERSBMQU1FRDtMbzswO1I7PGZvbnQ+IDA1REM7Ozs7Tjs7Ozs7CitGQjI2O0hFQlJFVyBMRVRURVIgV0lERSBGSU5BTCBNRU07TG87MDtSOzxmb250PiAwNUREOzs7O047Ozs7OworRkIyNztIRUJSRVcgTEVUVEVSIFdJREUgUkVTSDtMbzswO1I7PGZvbnQ+IDA1RTg7Ozs7Tjs7Ozs7CitGQjI4O0hFQlJFVyBMRVRURVIgV0lERSBUQVY7TG87MDtSOzxmb250PiAwNUVBOzs7O047Ozs7OworRkIyOTtIRUJSRVcgTEVUVEVSIEFMVEVSTkFUSVZFIFBMVVMgU0lHTjtTbTswO1I7PGZvbnQ+IDAwMkI7Ozs7Tjs7Ozs7CitGQjJBO0hFQlJFVyBMRVRURVIgU0hJTiBXSVRIIFNISU4gRE9UO0xvOzA7UjswNUU5IDA1QzE7Ozs7Tjs7Ozs7CitGQjJCO0hFQlJFVyBMRVRURVIgU0hJTiBXSVRIIFNJTiBET1Q7TG87MDtSOzA1RTkgMDVDMjs7OztOOzs7OzsKK0ZCMkM7SEVCUkVXIExFVFRFUiBTSElOIFdJVEggREFHRVNIIEFORCBTSElOIERPVDtMbzswO1I7MDVFOSAwNUJDIDA1QzE7Ozs7Tjs7Ozs7CitGQjJEO0hFQlJFVyBMRVRURVIgU0hJTiBXSVRIIERBR0VTSCBBTkQgU0lOIERPVDtMbzswO1I7MDVFOSAwNUJDIDA1QzI7Ozs7Tjs7Ozs7CitGQjJFO0hFQlJFVyBMRVRURVIgQUxFRiBXSVRIIFBBVEFIO0xvOzA7UjswNUQwIDA1Qjc7Ozs7Tjs7Ozs7CitGQjJGO0hFQlJFVyBMRVRURVIgQUxFRiBXSVRIIFFBTUFUUztMbzswO1I7MDVEMCAwNUI4Ozs7O047Ozs7OworRkIzMDtIRUJSRVcgTEVUVEVSIEFMRUYgV0lUSCBNQVBJUTtMbzswO1I7MDVEMCAwNUJDOzs7O047Ozs7OworRkIzMTtIRUJSRVcgTEVUVEVSIEJFVCBXSVRIIERBR0VTSDtMbzswO1I7MDVEMSAwNUJDOzs7O047Ozs7OworRkIzMjtIRUJSRVcgTEVUVEVSIEdJTUVMIFdJVEggREFHRVNIO0xvOzA7UjswNUQyIDA1QkM7Ozs7Tjs7Ozs7CitGQjMzO0hFQlJFVyBMRVRURVIgREFMRVQgV0lUSCBEQUdFU0g7TG87MDtSOzA1RDMgMDVCQzs7OztOOzs7OzsKK0ZCMzQ7SEVCUkVXIExFVFRFUiBIRSBXSVRIIE1BUElRO0xvOzA7UjswNUQ0IDA1QkM7Ozs7Tjs7Ozs7CitGQjM1O0hFQlJFVyBMRVRURVIgVkFWIFdJVEggREFHRVNIO0xvOzA7UjswNUQ1IDA1QkM7Ozs7Tjs7Ozs7CitGQjM2O0hFQlJFVyBMRVRURVIgWkFZSU4gV0lUSCBEQUdFU0g7TG87MDtSOzA1RDYgMDVCQzs7OztOOzs7OzsKK0ZCMzg7SEVCUkVXIExFVFRFUiBURVQgV0lUSCBEQUdFU0g7TG87MDtSOzA1RDggMDVCQzs7OztOOzs7OzsKK0ZCMzk7SEVCUkVXIExFVFRFUiBZT0QgV0lUSCBEQUdFU0g7TG87MDtSOzA1RDkgMDVCQzs7OztOOzs7OzsKK0ZCM0E7SEVCUkVXIExFVFRFUiBGSU5BTCBLQUYgV0lUSCBEQUdFU0g7TG87MDtSOzA1REEgMDVCQzs7OztOOzs7OzsKK0ZCM0I7SEVCUkVXIExFVFRFUiBLQUYgV0lUSCBEQUdFU0g7TG87MDtSOzA1REIgMDVCQzs7OztOOzs7OzsKK0ZCM0M7SEVCUkVXIExFVFRFUiBMQU1FRCBXSVRIIERBR0VTSDtMbzswO1I7MDVEQyAwNUJDOzs7O047Ozs7OworRkIzRTtIRUJSRVcgTEVUVEVSIE1FTSBXSVRIIERBR0VTSDtMbzswO1I7MDVERSAwNUJDOzs7O047Ozs7OworRkI0MDtIRUJSRVcgTEVUVEVSIE5VTiBXSVRIIERBR0VTSDtMbzswO1I7MDVFMCAwNUJDOzs7O047Ozs7OworRkI0MTtIRUJSRVcgTEVUVEVSIFNBTUVLSCBXSVRIIERBR0VTSDtMbzswO1I7MDVFMSAwNUJDOzs7O047Ozs7OworRkI0MztIRUJSRVcgTEVUVEVSIEZJTkFMIFBFIFdJVEggREFHRVNIO0xvOzA7UjswNUUzIDA1QkM7Ozs7Tjs7Ozs7CitGQjQ0O0hFQlJFVyBMRVRURVIgUEUgV0lUSCBEQUdFU0g7TG87MDtSOzA1RTQgMDVCQzs7OztOOzs7OzsKK0ZCNDY7SEVCUkVXIExFVFRFUiBUU0FESSBXSVRIIERBR0VTSDtMbzswO1I7MDVFNiAwNUJDOzs7O047Ozs7OworRkI0NztIRUJSRVcgTEVUVEVSIFFPRiBXSVRIIERBR0VTSDtMbzswO1I7MDVFNyAwNUJDOzs7O047Ozs7OworRkI0ODtIRUJSRVcgTEVUVEVSIFJFU0ggV0lUSCBEQUdFU0g7TG87MDtSOzA1RTggMDVCQzs7OztOOzs7OzsKK0ZCNDk7SEVCUkVXIExFVFRFUiBTSElOIFdJVEggREFHRVNIO0xvOzA7UjswNUU5IDA1QkM7Ozs7Tjs7Ozs7CitGQjRBO0hFQlJFVyBMRVRURVIgVEFWIFdJVEggREFHRVNIO0xvOzA7UjswNUVBIDA1QkM7Ozs7Tjs7Ozs7CitGQjRCO0hFQlJFVyBMRVRURVIgVkFWIFdJVEggSE9MQU07TG87MDtSOzA1RDUgMDVCOTs7OztOOzs7OzsKK0ZCNEM7SEVCUkVXIExFVFRFUiBCRVQgV0lUSCBSQUZFO0xvOzA7UjswNUQxIDA1QkY7Ozs7Tjs7Ozs7CitGQjREO0hFQlJFVyBMRVRURVIgS0FGIFdJVEggUkFGRTtMbzswO1I7MDVEQiAwNUJGOzs7O047Ozs7OworRkI0RTtIRUJSRVcgTEVUVEVSIFBFIFdJVEggUkFGRTtMbzswO1I7MDVFNCAwNUJGOzs7O047Ozs7OworRkI0RjtIRUJSRVcgTElHQVRVUkUgQUxFRiBMQU1FRDtMbzswO1I7PGNvbXBhdD4gMDVEMCAwNURDOzs7O047Ozs7OworRkI1MDtBUkFCSUMgTEVUVEVSIEFMRUYgV0FTTEEgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjcxOzs7O047Ozs7OworRkI1MTtBUkFCSUMgTEVUVEVSIEFMRUYgV0FTTEEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjcxOzs7O047Ozs7OworRkI1MjtBUkFCSUMgTEVUVEVSIEJFRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjdCOzs7O047Ozs7OworRkI1MztBUkFCSUMgTEVUVEVSIEJFRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjdCOzs7O047Ozs7OworRkI1NDtBUkFCSUMgTEVUVEVSIEJFRUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY3Qjs7OztOOzs7OzsKK0ZCNTU7QVJBQklDIExFVFRFUiBCRUVIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjdCOzs7O047Ozs7OworRkI1NjtBUkFCSUMgTEVUVEVSIFBFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2N0U7Ozs7Tjs7Ozs7CitGQjU3O0FSQUJJQyBMRVRURVIgUEVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY3RTs7OztOOzs7OzsKK0ZCNTg7QVJBQklDIExFVFRFUiBQRUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY3RTs7OztOOzs7OzsKK0ZCNTk7QVJBQklDIExFVFRFUiBQRUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2N0U7Ozs7Tjs7Ozs7CitGQjVBO0FSQUJJQyBMRVRURVIgQkVIRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjgwOzs7O047Ozs7OworRkI1QjtBUkFCSUMgTEVUVEVSIEJFSEVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY4MDs7OztOOzs7OzsKK0ZCNUM7QVJBQklDIExFVFRFUiBCRUhFSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjgwOzs7O047Ozs7OworRkI1RDtBUkFCSUMgTEVUVEVSIEJFSEVIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjgwOzs7O047Ozs7OworRkI1RTtBUkFCSUMgTEVUVEVSIFRURUhFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2N0E7Ozs7Tjs7Ozs7CitGQjVGO0FSQUJJQyBMRVRURVIgVFRFSEVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY3QTs7OztOOzs7OzsKK0ZCNjA7QVJBQklDIExFVFRFUiBUVEVIRUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY3QTs7OztOOzs7OzsKK0ZCNjE7QVJBQklDIExFVFRFUiBUVEVIRUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2N0E7Ozs7Tjs7Ozs7CitGQjYyO0FSQUJJQyBMRVRURVIgVEVIRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjdGOzs7O047Ozs7OworRkI2MztBUkFCSUMgTEVUVEVSIFRFSEVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY3Rjs7OztOOzs7OzsKK0ZCNjQ7QVJBQklDIExFVFRFUiBURUhFSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjdGOzs7O047Ozs7OworRkI2NTtBUkFCSUMgTEVUVEVSIFRFSEVIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjdGOzs7O047Ozs7OworRkI2NjtBUkFCSUMgTEVUVEVSIFRURUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjc5Ozs7O047Ozs7OworRkI2NztBUkFCSUMgTEVUVEVSIFRURUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjc5Ozs7O047Ozs7OworRkI2ODtBUkFCSUMgTEVUVEVSIFRURUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY3OTs7OztOOzs7OzsKK0ZCNjk7QVJBQklDIExFVFRFUiBUVEVIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjc5Ozs7O047Ozs7OworRkI2QTtBUkFCSUMgTEVUVEVSIFZFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2QTQ7Ozs7Tjs7Ozs7CitGQjZCO0FSQUJJQyBMRVRURVIgVkVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDZBNDs7OztOOzs7OzsKK0ZCNkM7QVJBQklDIExFVFRFUiBWRUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDZBNDs7OztOOzs7OzsKK0ZCNkQ7QVJBQklDIExFVFRFUiBWRUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2QTQ7Ozs7Tjs7Ozs7CitGQjZFO0FSQUJJQyBMRVRURVIgUEVIRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNkE2Ozs7O047Ozs7OworRkI2RjtBUkFCSUMgTEVUVEVSIFBFSEVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDZBNjs7OztOOzs7OzsKK0ZCNzA7QVJBQklDIExFVFRFUiBQRUhFSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNkE2Ozs7O047Ozs7OworRkI3MTtBUkFCSUMgTEVUVEVSIFBFSEVIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNkE2Ozs7O047Ozs7OworRkI3MjtBUkFCSUMgTEVUVEVSIERZRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjg0Ozs7O047Ozs7OworRkI3MztBUkFCSUMgTEVUVEVSIERZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjg0Ozs7O047Ozs7OworRkI3NDtBUkFCSUMgTEVUVEVSIERZRUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY4NDs7OztOOzs7OzsKK0ZCNzU7QVJBQklDIExFVFRFUiBEWUVIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjg0Ozs7O047Ozs7OworRkI3NjtBUkFCSUMgTEVUVEVSIE5ZRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjgzOzs7O047Ozs7OworRkI3NztBUkFCSUMgTEVUVEVSIE5ZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjgzOzs7O047Ozs7OworRkI3ODtBUkFCSUMgTEVUVEVSIE5ZRUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY4Mzs7OztOOzs7OzsKK0ZCNzk7QVJBQklDIExFVFRFUiBOWUVIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjgzOzs7O047Ozs7OworRkI3QTtBUkFCSUMgTEVUVEVSIFRDSEVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY4Njs7OztOOzs7OzsKK0ZCN0I7QVJBQklDIExFVFRFUiBUQ0hFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2ODY7Ozs7Tjs7Ozs7CitGQjdDO0FSQUJJQyBMRVRURVIgVENIRUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY4Njs7OztOOzs7OzsKK0ZCN0Q7QVJBQklDIExFVFRFUiBUQ0hFSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDY4Njs7OztOOzs7OzsKK0ZCN0U7QVJBQklDIExFVFRFUiBUQ0hFSEVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY4Nzs7OztOOzs7OzsKK0ZCN0Y7QVJBQklDIExFVFRFUiBUQ0hFSEVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY4Nzs7OztOOzs7OzsKK0ZCODA7QVJBQklDIExFVFRFUiBUQ0hFSEVIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2ODc7Ozs7Tjs7Ozs7CitGQjgxO0FSQUJJQyBMRVRURVIgVENIRUhFSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDY4Nzs7OztOOzs7OzsKK0ZCODI7QVJBQklDIExFVFRFUiBEREFIQUwgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjhEOzs7O047Ozs7OworRkI4MztBUkFCSUMgTEVUVEVSIEREQUhBTCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2OEQ7Ozs7Tjs7Ozs7CitGQjg0O0FSQUJJQyBMRVRURVIgREFIQUwgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjhDOzs7O047Ozs7OworRkI4NTtBUkFCSUMgTEVUVEVSIERBSEFMIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY4Qzs7OztOOzs7OzsKK0ZCODY7QVJBQklDIExFVFRFUiBEVUwgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjhFOzs7O047Ozs7OworRkI4NztBUkFCSUMgTEVUVEVSIERVTCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2OEU7Ozs7Tjs7Ozs7CitGQjg4O0FSQUJJQyBMRVRURVIgRERBTCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2ODg7Ozs7Tjs7Ozs7CitGQjg5O0FSQUJJQyBMRVRURVIgRERBTCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2ODg7Ozs7Tjs7Ozs7CitGQjhBO0FSQUJJQyBMRVRURVIgSkVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY5ODs7OztOOzs7OzsKK0ZCOEI7QVJBQklDIExFVFRFUiBKRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjk4Ozs7O047Ozs7OworRkI4QztBUkFCSUMgTEVUVEVSIFJSRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjkxOzs7O047Ozs7OworRkI4RDtBUkFCSUMgTEVUVEVSIFJSRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjkxOzs7O047Ozs7OworRkI4RTtBUkFCSUMgTEVUVEVSIEtFSEVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDZBOTs7OztOOzs7OzsKK0ZCOEY7QVJBQklDIExFVFRFUiBLRUhFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2QTk7Ozs7Tjs7Ozs7CitGQjkwO0FSQUJJQyBMRVRURVIgS0VIRUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDZBOTs7OztOOzs7OzsKK0ZCOTE7QVJBQklDIExFVFRFUiBLRUhFSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDZBOTs7OztOOzs7OzsKK0ZCOTI7QVJBQklDIExFVFRFUiBHQUYgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNkFGOzs7O047Ozs7OworRkI5MztBUkFCSUMgTEVUVEVSIEdBRiBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2QUY7Ozs7Tjs7Ozs7CitGQjk0O0FSQUJJQyBMRVRURVIgR0FGIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2QUY7Ozs7Tjs7Ozs7CitGQjk1O0FSQUJJQyBMRVRURVIgR0FGIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNkFGOzs7O047Ozs7OworRkI5NjtBUkFCSUMgTEVUVEVSIEdVRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNkIzOzs7O047Ozs7OworRkI5NztBUkFCSUMgTEVUVEVSIEdVRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNkIzOzs7O047Ozs7OworRkI5ODtBUkFCSUMgTEVUVEVSIEdVRUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDZCMzs7OztOOzs7OzsKK0ZCOTk7QVJBQklDIExFVFRFUiBHVUVIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNkIzOzs7O047Ozs7OworRkI5QTtBUkFCSUMgTEVUVEVSIE5HT0VIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDZCMTs7OztOOzs7OzsKK0ZCOUI7QVJBQklDIExFVFRFUiBOR09FSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2QjE7Ozs7Tjs7Ozs7CitGQjlDO0FSQUJJQyBMRVRURVIgTkdPRUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDZCMTs7OztOOzs7OzsKK0ZCOUQ7QVJBQklDIExFVFRFUiBOR09FSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDZCMTs7OztOOzs7OzsKK0ZCOUU7QVJBQklDIExFVFRFUiBOT09OIEdIVU5OQSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2QkE7Ozs7Tjs7Ozs7CitGQjlGO0FSQUJJQyBMRVRURVIgTk9PTiBHSFVOTkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNkJBOzs7O047Ozs7OworRkJBMDtBUkFCSUMgTEVUVEVSIFJOT09OIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDZCQjs7OztOOzs7OzsKK0ZCQTE7QVJBQklDIExFVFRFUiBSTk9PTiBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2QkI7Ozs7Tjs7Ozs7CitGQkEyO0FSQUJJQyBMRVRURVIgUk5PT04gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDZCQjs7OztOOzs7OzsKK0ZCQTM7QVJBQklDIExFVFRFUiBSTk9PTiBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDZCQjs7OztOOzs7OzsKK0ZCQTQ7QVJBQklDIExFVFRFUiBIRUggV0lUSCBZRUggQUJPVkUgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNkMwOzs7O047Ozs7OworRkJBNTtBUkFCSUMgTEVUVEVSIEhFSCBXSVRIIFlFSCBBQk9WRSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2QzA7Ozs7Tjs7Ozs7CitGQkE2O0FSQUJJQyBMRVRURVIgSEVIIEdPQUwgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNkMxOzs7O047Ozs7OworRkJBNztBUkFCSUMgTEVUVEVSIEhFSCBHT0FMIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDZDMTs7OztOOzs7OzsKK0ZCQTg7QVJBQklDIExFVFRFUiBIRUggR09BTCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNkMxOzs7O047Ozs7OworRkJBOTtBUkFCSUMgTEVUVEVSIEhFSCBHT0FMIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNkMxOzs7O047Ozs7OworRkJBQTtBUkFCSUMgTEVUVEVSIEhFSCBET0FDSEFTSE1FRSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2QkU7Ozs7Tjs7Ozs7CitGQkFCO0FSQUJJQyBMRVRURVIgSEVIIERPQUNIQVNITUVFIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDZCRTs7OztOOzs7OzsKK0ZCQUM7QVJBQklDIExFVFRFUiBIRUggRE9BQ0hBU0hNRUUgSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDZCRTs7OztOOzs7OzsKK0ZCQUQ7QVJBQklDIExFVFRFUiBIRUggRE9BQ0hBU0hNRUUgTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2QkU7Ozs7Tjs7Ozs7CitGQkFFO0FSQUJJQyBMRVRURVIgWUVIIEJBUlJFRSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2RDI7Ozs7Tjs7Ozs7CitGQkFGO0FSQUJJQyBMRVRURVIgWUVIIEJBUlJFRSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2RDI7Ozs7Tjs7Ozs7CitGQkIwO0FSQUJJQyBMRVRURVIgWUVIIEJBUlJFRSBXSVRIIEhBTVpBIEFCT1ZFIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDZEMzs7OztOOzs7OzsKK0ZCQjE7QVJBQklDIExFVFRFUiBZRUggQkFSUkVFIFdJVEggSEFNWkEgQUJPVkUgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNkQzOzs7O047Ozs7OworRkJEMztBUkFCSUMgTEVUVEVSIE5HIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDZBRDs7OztOOzs7OzsKK0ZCRDQ7QVJBQklDIExFVFRFUiBORyBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2QUQ7Ozs7Tjs7Ozs7CitGQkQ1O0FSQUJJQyBMRVRURVIgTkcgSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDZBRDs7OztOOzs7OzsKK0ZCRDY7QVJBQklDIExFVFRFUiBORyBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDZBRDs7OztOOzs7OzsKK0ZCRDc7QVJBQklDIExFVFRFUiBVIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDZDNzs7OztOOzs7OzsKK0ZCRDg7QVJBQklDIExFVFRFUiBVIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDZDNzs7OztOOzs7OzsKK0ZCRDk7QVJBQklDIExFVFRFUiBPRSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2QzY7Ozs7Tjs7Ozs7CitGQkRBO0FSQUJJQyBMRVRURVIgT0UgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNkM2Ozs7O047Ozs7OworRkJEQjtBUkFCSUMgTEVUVEVSIFlVIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDZDODs7OztOOzs7OzsKK0ZCREM7QVJBQklDIExFVFRFUiBZVSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2Qzg7Ozs7Tjs7Ozs7CitGQkREO0FSQUJJQyBMRVRURVIgVSBXSVRIIEhBTVpBIEFCT1ZFIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY3Nzs7OztOOzs7OzsKK0ZCREU7QVJBQklDIExFVFRFUiBWRSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2Q0I7Ozs7Tjs7Ozs7CitGQkRGO0FSQUJJQyBMRVRURVIgVkUgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNkNCOzs7O047Ozs7OworRkJFMDtBUkFCSUMgTEVUVEVSIEtJUkdISVogT0UgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNkM1Ozs7O047Ozs7OworRkJFMTtBUkFCSUMgTEVUVEVSIEtJUkdISVogT0UgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNkM1Ozs7O047Ozs7OworRkJFMjtBUkFCSUMgTEVUVEVSIEtJUkdISVogWVUgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNkM5Ozs7O047Ozs7OworRkJFMztBUkFCSUMgTEVUVEVSIEtJUkdISVogWVUgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNkM5Ozs7O047Ozs7OworRkJFNDtBUkFCSUMgTEVUVEVSIEUgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNkQwOzs7O047Ozs7OworRkJFNTtBUkFCSUMgTEVUVEVSIEUgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNkQwOzs7O047Ozs7OworRkJFNjtBUkFCSUMgTEVUVEVSIEUgSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDZEMDs7OztOOzs7OzsKK0ZCRTc7QVJBQklDIExFVFRFUiBFIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNkQwOzs7O047Ozs7OworRkJFODtBUkFCSUMgTEVUVEVSIFVJR0hVUiBLQVpBS0ggS0lSR0hJWiBBTEVGIE1BS1NVUkEgSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0OTs7OztOOzs7OzsKK0ZCRTk7QVJBQklDIExFVFRFUiBVSUdIVVIgS0FaQUtIIEtJUkdISVogQUxFRiBNQUtTVVJBIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjQ5Ozs7O047Ozs7OworRkJFQTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBBTEVGIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyNiAwNjI3Ozs7O047Ozs7OworRkJFQjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBBTEVGIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyNiAwNjI3Ozs7O047Ozs7OworRkJFQztBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBBRSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MjYgMDZENTs7OztOOzs7OzsKK0ZCRUQ7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggQUUgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjI2IDA2RDU7Ozs7Tjs7Ozs7CitGQkVFO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIFdBVyBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MjYgMDY0ODs7OztOOzs7OzsKK0ZCRUY7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggV0FXIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyNiAwNjQ4Ozs7O047Ozs7OworRkJGMDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBVIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyNiAwNkM3Ozs7O047Ozs7OworRkJGMTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBVIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyNiAwNkM3Ozs7O047Ozs7OworRkJGMjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBPRSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MjYgMDZDNjs7OztOOzs7OzsKK0ZCRjM7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggT0UgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjI2IDA2QzY7Ozs7Tjs7Ozs7CitGQkY0O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIFlVIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyNiAwNkM4Ozs7O047Ozs7OworRkJGNTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBZVSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MjYgMDZDODs7OztOOzs7OzsKK0ZCRjY7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggRSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MjYgMDZEMDs7OztOOzs7OzsKK0ZCRjc7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggRSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MjYgMDZEMDs7OztOOzs7OzsKK0ZCRjg7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggRSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjI2IDA2RDA7Ozs7Tjs7Ozs7CitGQkY5O0FSQUJJQyBMSUdBVFVSRSBVSUdIVVIgS0lSR0hJWiBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MjYgMDY0OTs7OztOOzs7OzsKK0ZCRkE7QVJBQklDIExJR0FUVVJFIFVJR0hVUiBLSVJHSElaIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyNiAwNjQ5Ozs7O047Ozs7OworRkJGQjtBUkFCSUMgTElHQVRVUkUgVUlHSFVSIEtJUkdISVogWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBBTEVGIE1BS1NVUkEgSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyNiAwNjQ5Ozs7O047Ozs7OworRkJGQztBUkFCSUMgTEVUVEVSIEZBUlNJIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2Q0M7Ozs7Tjs7Ozs7CitGQkZEO0FSQUJJQyBMRVRURVIgRkFSU0kgWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDZDQzs7OztOOzs7OzsKK0ZCRkU7QVJBQklDIExFVFRFUiBGQVJTSSBZRUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDZDQzs7OztOOzs7OzsKK0ZCRkY7QVJBQklDIExFVFRFUiBGQVJTSSBZRUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2Q0M7Ozs7Tjs7Ozs7CitGQzAwO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjI2IDA2MkM7Ozs7Tjs7Ozs7CitGQzAxO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MjYgMDYyRDs7OztOOzs7OzsKK0ZDMDI7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MjYgMDY0NTs7OztOOzs7OzsKK0ZDMDM7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyNiAwNjQ5Ozs7O047Ozs7OworRkMwNDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjI2IDA2NEE7Ozs7Tjs7Ozs7CitGQzA1O0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyOCAwNjJDOzs7O047Ozs7OworRkMwNjtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyOCAwNjJEOzs7O047Ozs7OworRkMwNztBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MjggMDYyRTs7OztOOzs7OzsKK0ZDMDg7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjI4IDA2NDU7Ozs7Tjs7Ozs7CitGQzA5O0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjI4IDA2NDk7Ozs7Tjs7Ozs7CitGQzBBO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjI4IDA2NEE7Ozs7Tjs7Ozs7CitGQzBCO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyQSAwNjJDOzs7O047Ozs7OworRkMwQztBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyQSAwNjJEOzs7O047Ozs7OworRkMwRDtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MkEgMDYyRTs7OztOOzs7OzsKK0ZDMEU7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjJBIDA2NDU7Ozs7Tjs7Ozs7CitGQzBGO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjJBIDA2NDk7Ozs7Tjs7Ozs7CitGQzEwO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjJBIDA2NEE7Ozs7Tjs7Ozs7CitGQzExO0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MkIgMDYyQzs7OztOOzs7OzsKK0ZDMTI7QVJBQklDIExJR0FUVVJFIFRIRUggV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyQiAwNjQ1Ozs7O047Ozs7OworRkMxMztBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MkIgMDY0OTs7OztOOzs7OzsKK0ZDMTQ7QVJBQklDIExJR0FUVVJFIFRIRUggV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjJCIDA2NEE7Ozs7Tjs7Ozs7CitGQzE1O0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyQyAwNjJEOzs7O047Ozs7OworRkMxNjtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjJDIDA2NDU7Ozs7Tjs7Ozs7CitGQzE3O0FSQUJJQyBMSUdBVFVSRSBIQUggV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyRCAwNjJDOzs7O047Ozs7OworRkMxODtBUkFCSUMgTElHQVRVUkUgSEFIIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MkQgMDY0NTs7OztOOzs7OzsKK0ZDMTk7QVJBQklDIExJR0FUVVJFIEtIQUggV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyRSAwNjJDOzs7O047Ozs7OworRkMxQTtBUkFCSUMgTElHQVRVUkUgS0hBSCBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MkUgMDYyRDs7OztOOzs7OzsKK0ZDMUI7QVJBQklDIExJR0FUVVJFIEtIQUggV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyRSAwNjQ1Ozs7O047Ozs7OworRkMxQztBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjMzIDA2MkM7Ozs7Tjs7Ozs7CitGQzFEO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzMyAwNjJEOzs7O047Ozs7OworRkMxRTtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEtIQUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjMzIDA2MkU7Ozs7Tjs7Ozs7CitGQzFGO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzMgMDY0NTs7OztOOzs7OzsKK0ZDMjA7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzUgMDYyRDs7OztOOzs7OzsKK0ZDMjE7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM1IDA2NDU7Ozs7Tjs7Ozs7CitGQzIyO0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzNiAwNjJDOzs7O047Ozs7OworRkMyMztBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzNiAwNjJEOzs7O047Ozs7OworRkMyNDtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzYgMDYyRTs7OztOOzs7OzsKK0ZDMjU7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM2IDA2NDU7Ozs7Tjs7Ozs7CitGQzI2O0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM3IDA2MkQ7Ozs7Tjs7Ozs7CitGQzI3O0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzNyAwNjQ1Ozs7O047Ozs7OworRkMyODtBUkFCSUMgTElHQVRVUkUgWkFIIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzggMDY0NTs7OztOOzs7OzsKK0ZDMjk7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM5IDA2MkM7Ozs7Tjs7Ozs7CitGQzJBO0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzOSAwNjQ1Ozs7O047Ozs7OworRkMyQjtBUkFCSUMgTElHQVRVUkUgR0hBSU4gV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzQSAwNjJDOzs7O047Ozs7OworRkMyQztBUkFCSUMgTElHQVRVUkUgR0hBSU4gV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzQSAwNjQ1Ozs7O047Ozs7OworRkMyRDtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDEgMDYyQzs7OztOOzs7OzsKK0ZDMkU7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDEgMDYyRDs7OztOOzs7OzsKK0ZDMkY7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIEtIQUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQxIDA2MkU7Ozs7Tjs7Ozs7CitGQzMwO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0MSAwNjQ1Ozs7O047Ozs7OworRkMzMTtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0MSAwNjQ5Ozs7O047Ozs7OworRkMzMjtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0MSAwNjRBOzs7O047Ozs7OworRkMzMztBUkFCSUMgTElHQVRVUkUgUUFGIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0MiAwNjJEOzs7O047Ozs7OworRkMzNDtBUkFCSUMgTElHQVRVUkUgUUFGIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDIgMDY0NTs7OztOOzs7OzsKK0ZDMzU7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDIgMDY0OTs7OztOOzs7OzsKK0ZDMzY7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDIgMDY0QTs7OztOOzs7OzsKK0ZDMzc7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIEFMRUYgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQzIDA2Mjc7Ozs7Tjs7Ozs7CitGQzM4O0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0MyAwNjJDOzs7O047Ozs7OworRkMzOTtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0MyAwNjJEOzs7O047Ozs7OworRkMzQTtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDMgMDYyRTs7OztOOzs7OzsKK0ZDM0I7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIExBTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDMgMDY0NDs7OztOOzs7OzsKK0ZDM0M7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQzIDA2NDU7Ozs7Tjs7Ozs7CitGQzNEO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQzIDA2NDk7Ozs7Tjs7Ozs7CitGQzNFO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQzIDA2NEE7Ozs7Tjs7Ozs7CitGQzNGO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0NCAwNjJDOzs7O047Ozs7OworRkM0MDtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0NCAwNjJEOzs7O047Ozs7OworRkM0MTtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDQgMDYyRTs7OztOOzs7OzsKK0ZDNDI7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQ0IDA2NDU7Ozs7Tjs7Ozs7CitGQzQzO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQ0IDA2NDk7Ozs7Tjs7Ozs7CitGQzQ0O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQ0IDA2NEE7Ozs7Tjs7Ozs7CitGQzQ1O0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDUgMDYyQzs7OztOOzs7OzsKK0ZDNDY7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGQzQ3O0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDUgMDYyRTs7OztOOzs7OzsKK0ZDNDg7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0NSAwNjQ1Ozs7O047Ozs7OworRkM0OTtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDUgMDY0OTs7OztOOzs7OzsKK0ZDNEE7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGQzRCO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDYgMDYyQzs7OztOOzs7OzsKK0ZDNEM7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQ2IDA2MkQ7Ozs7Tjs7Ozs7CitGQzREO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDYgMDYyRTs7OztOOzs7OzsKK0ZDNEU7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0NiAwNjQ1Ozs7O047Ozs7OworRkM0RjtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDYgMDY0OTs7OztOOzs7OzsKK0ZDNTA7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQ2IDA2NEE7Ozs7Tjs7Ozs7CitGQzUxO0FSQUJJQyBMSUdBVFVSRSBIRUggV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0NyAwNjJDOzs7O047Ozs7OworRkM1MjtBUkFCSUMgTElHQVRVUkUgSEVIIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDcgMDY0NTs7OztOOzs7OzsKK0ZDNTM7QVJBQklDIExJR0FUVVJFIEhFSCBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDcgMDY0OTs7OztOOzs7OzsKK0ZDNTQ7QVJBQklDIExJR0FUVVJFIEhFSCBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDcgMDY0QTs7OztOOzs7OzsKK0ZDNTU7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjRBIDA2MkM7Ozs7Tjs7Ozs7CitGQzU2O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjRBIDA2MkQ7Ozs7Tjs7Ozs7CitGQzU3O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBLSEFIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0QSAwNjJFOzs7O047Ozs7OworRkM1ODtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NEEgMDY0NTs7OztOOzs7OzsKK0ZDNTk7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NEEgMDY0OTs7OztOOzs7OzsKK0ZDNUE7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NEEgMDY0QTs7OztOOzs7OzsKK0ZDNUI7QVJBQklDIExJR0FUVVJFIFRIQUwgV0lUSCBTVVBFUlNDUklQVCBBTEVGIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzMCAwNjcwOzs7O047Ozs7OworRkM1QztBUkFCSUMgTElHQVRVUkUgUkVIIFdJVEggU1VQRVJTQ1JJUFQgQUxFRiBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzEgMDY3MDs7OztOOzs7OzsKK0ZDNUQ7QVJBQklDIExJR0FUVVJFIEFMRUYgTUFLU1VSQSBXSVRIIFNVUEVSU0NSSVBUIEFMRUYgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQ5IDA2NzA7Ozs7Tjs7Ozs7CitGQzVFO0FSQUJJQyBMSUdBVFVSRSBTSEFEREEgV0lUSCBEQU1NQVRBTiBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDAwMjAgMDY1MSAwNjRDOzs7O047Ozs7OworRkM1RjtBUkFCSUMgTElHQVRVUkUgU0hBRERBIFdJVEggS0FTUkFUQU4gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwMDIwIDA2NTEgMDY0RDs7OztOOzs7OzsKK0ZDNjA7QVJBQklDIExJR0FUVVJFIFNIQUREQSBXSVRIIEZBVEhBIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDAyMCAwNjUxIDA2NEU7Ozs7Tjs7Ozs7CitGQzYxO0FSQUJJQyBMSUdBVFVSRSBTSEFEREEgV0lUSCBEQU1NQSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDAwMjAgMDY1MSAwNjRGOzs7O047Ozs7OworRkM2MjtBUkFCSUMgTElHQVRVUkUgU0hBRERBIFdJVEggS0FTUkEgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwMDIwIDA2NTEgMDY1MDs7OztOOzs7OzsKK0ZDNjM7QVJBQklDIExJR0FUVVJFIFNIQUREQSBXSVRIIFNVUEVSU0NSSVBUIEFMRUYgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwMDIwIDA2NTEgMDY3MDs7OztOOzs7OzsKK0ZDNjQ7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggUkVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyNiAwNjMxOzs7O047Ozs7OworRkM2NTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBaQUlOIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyNiAwNjMyOzs7O047Ozs7OworRkM2NjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyNiAwNjQ1Ozs7O047Ozs7OworRkM2NztBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBOT09OIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyNiAwNjQ2Ozs7O047Ozs7OworRkM2ODtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjI2IDA2NDk7Ozs7Tjs7Ozs7CitGQzY5O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MjYgMDY0QTs7OztOOzs7OzsKK0ZDNkE7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIFJFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MjggMDYzMTs7OztOOzs7OzsKK0ZDNkI7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIFpBSU4gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjI4IDA2MzI7Ozs7Tjs7Ozs7CitGQzZDO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyOCAwNjQ1Ozs7O047Ozs7OworRkM2RDtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggTk9PTiBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MjggMDY0Njs7OztOOzs7OzsKK0ZDNkU7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MjggMDY0OTs7OztOOzs7OzsKK0ZDNkY7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MjggMDY0QTs7OztOOzs7OzsKK0ZDNzA7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIFJFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkEgMDYzMTs7OztOOzs7OzsKK0ZDNzE7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIFpBSU4gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJBIDA2MzI7Ozs7Tjs7Ozs7CitGQzcyO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyQSAwNjQ1Ozs7O047Ozs7OworRkM3MztBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggTk9PTiBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkEgMDY0Njs7OztOOzs7OzsKK0ZDNzQ7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkEgMDY0OTs7OztOOzs7OzsKK0ZDNzU7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkEgMDY0QTs7OztOOzs7OzsKK0ZDNzY7QVJBQklDIExJR0FUVVJFIFRIRUggV0lUSCBSRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJCIDA2MzE7Ozs7Tjs7Ozs7CitGQzc3O0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggWkFJTiBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkIgMDYzMjs7OztOOzs7OzsKK0ZDNzg7QVJBQklDIExJR0FUVVJFIFRIRUggV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyQiAwNjQ1Ozs7O047Ozs7OworRkM3OTtBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIE5PT04gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJCIDA2NDY7Ozs7Tjs7Ozs7CitGQzdBO0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyQiAwNjQ5Ozs7O047Ozs7OworRkM3QjtBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkIgMDY0QTs7OztOOzs7OzsKK0ZDN0M7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDEgMDY0OTs7OztOOzs7OzsKK0ZDN0Q7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDEgMDY0QTs7OztOOzs7OzsKK0ZDN0U7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDIgMDY0OTs7OztOOzs7OzsKK0ZDN0Y7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDIgMDY0QTs7OztOOzs7OzsKK0ZDODA7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIEFMRUYgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQzIDA2Mjc7Ozs7Tjs7Ozs7CitGQzgxO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBMQU0gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQzIDA2NDQ7Ozs7Tjs7Ozs7CitGQzgyO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0MyAwNjQ1Ozs7O047Ozs7OworRkM4MztBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0MyAwNjQ5Ozs7O047Ozs7OworRkM4NDtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0MyAwNjRBOzs7O047Ozs7OworRkM4NTtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDQgMDY0NTs7OztOOzs7OzsKK0ZDODY7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDQgMDY0OTs7OztOOzs7OzsKK0ZDODc7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDQgMDY0QTs7OztOOzs7OzsKK0ZDODg7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBBTEVGIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NSAwNjI3Ozs7O047Ozs7OworRkM4OTtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGQzhBO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggUkVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NiAwNjMxOzs7O047Ozs7OworRkM4QjtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIFpBSU4gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ2IDA2MzI7Ozs7Tjs7Ozs7CitGQzhDO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDYgMDY0NTs7OztOOzs7OzsKK0ZDOEQ7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBOT09OIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NiAwNjQ2Ozs7O047Ozs7OworRkM4RTtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDYgMDY0OTs7OztOOzs7OzsKK0ZDOEY7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ2IDA2NEE7Ozs7Tjs7Ozs7CitGQzkwO0FSQUJJQyBMSUdBVFVSRSBBTEVGIE1BS1NVUkEgV0lUSCBTVVBFUlNDUklQVCBBTEVGIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0OSAwNjcwOzs7O047Ozs7OworRkM5MTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggUkVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0QSAwNjMxOzs7O047Ozs7OworRkM5MjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggWkFJTiBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NEEgMDYzMjs7OztOOzs7OzsKK0ZDOTM7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjRBIDA2NDU7Ozs7Tjs7Ozs7CitGQzk0O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBOT09OIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0QSAwNjQ2Ozs7O047Ozs7OworRkM5NTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0QSAwNjQ5Ozs7O047Ozs7OworRkM5NjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0QSAwNjRBOzs7O047Ozs7OworRkM5NztBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MjYgMDYyQzs7OztOOzs7OzsKK0ZDOTg7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MjYgMDYyRDs7OztOOzs7OzsKK0ZDOTk7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjI2IDA2MkU7Ozs7Tjs7Ozs7CitGQzlBO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyNiAwNjQ1Ozs7O047Ozs7OworRkM5QjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBIRUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyNiAwNjQ3Ozs7O047Ozs7OworRkM5QztBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjI4IDA2MkM7Ozs7Tjs7Ozs7CitGQzlEO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyOCAwNjJEOzs7O047Ozs7OworRkM5RTtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjI4IDA2MkU7Ozs7Tjs7Ozs7CitGQzlGO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MjggMDY0NTs7OztOOzs7OzsKK0ZDQTA7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEhFSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjI4IDA2NDc7Ozs7Tjs7Ozs7CitGQ0ExO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MkEgMDYyQzs7OztOOzs7OzsKK0ZDQTI7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjJBIDA2MkQ7Ozs7Tjs7Ozs7CitGQ0EzO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MkEgMDYyRTs7OztOOzs7OzsKK0ZDQTQ7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyQSAwNjQ1Ozs7O047Ozs7OworRkNBNTtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggSEVIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MkEgMDY0Nzs7OztOOzs7OzsKK0ZDQTY7QVJBQklDIExJR0FUVVJFIFRIRUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MkIgMDY0NTs7OztOOzs7OzsKK0ZDQTc7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyQyAwNjJEOzs7O047Ozs7OworRkNBODtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyQyAwNjQ1Ozs7O047Ozs7OworRkNBOTtBUkFCSUMgTElHQVRVUkUgSEFIIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjJEIDA2MkM7Ozs7Tjs7Ozs7CitGQ0FBO0FSQUJJQyBMSUdBVFVSRSBIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MkQgMDY0NTs7OztOOzs7OzsKK0ZDQUI7QVJBQklDIExJR0FUVVJFIEtIQUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MkUgMDYyQzs7OztOOzs7OzsKK0ZDQUM7QVJBQklDIExJR0FUVVJFIEtIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MkUgMDY0NTs7OztOOzs7OzsKK0ZDQUQ7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzMgMDYyQzs7OztOOzs7OzsKK0ZDQUU7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzMyAwNjJEOzs7O047Ozs7OworRkNBRjtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzMyAwNjJFOzs7O047Ozs7OworRkNCMDtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzMyAwNjQ1Ozs7O047Ozs7OworRkNCMTtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzUgMDYyRDs7OztOOzs7OzsKK0ZDQjI7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzNSAwNjJFOzs7O047Ozs7OworRkNCMztBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjM1IDA2NDU7Ozs7Tjs7Ozs7CitGQ0I0O0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzYgMDYyQzs7OztOOzs7OzsKK0ZDQjU7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjM2IDA2MkQ7Ozs7Tjs7Ozs7CitGQ0I2O0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzYgMDYyRTs7OztOOzs7OzsKK0ZDQjc7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzNiAwNjQ1Ozs7O047Ozs7OworRkNCODtBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzcgMDYyRDs7OztOOzs7OzsKK0ZDQjk7QVJBQklDIExJR0FUVVJFIFpBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzOCAwNjQ1Ozs7O047Ozs7OworRkNCQTtBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjM5IDA2MkM7Ozs7Tjs7Ozs7CitGQ0JCO0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzkgMDY0NTs7OztOOzs7OzsKK0ZDQkM7QVJBQklDIExJR0FUVVJFIEdIQUlOIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjNBIDA2MkM7Ozs7Tjs7Ozs7CitGQ0JEO0FSQUJJQyBMSUdBVFVSRSBHSEFJTiBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzQSAwNjQ1Ozs7O047Ozs7OworRkNCRTtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQxIDA2MkM7Ozs7Tjs7Ozs7CitGQ0JGO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0MSAwNjJEOzs7O047Ozs7OworRkNDMDtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQxIDA2MkU7Ozs7Tjs7Ozs7CitGQ0MxO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDEgMDY0NTs7OztOOzs7OzsKK0ZDQzI7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQyIDA2MkQ7Ozs7Tjs7Ozs7CitGQ0MzO0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDIgMDY0NTs7OztOOzs7OzsKK0ZDQzQ7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0MyAwNjJDOzs7O047Ozs7OworRkNDNTtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDMgMDYyRDs7OztOOzs7OzsKK0ZDQzY7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0MyAwNjJFOzs7O047Ozs7OworRkNDNztBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggTEFNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDMgMDY0NDs7OztOOzs7OzsKK0ZDQzg7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0MyAwNjQ1Ozs7O047Ozs7OworRkNDOTtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ0IDA2MkM7Ozs7Tjs7Ozs7CitGQ0NBO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0NCAwNjJEOzs7O047Ozs7OworRkNDQjtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ0IDA2MkU7Ozs7Tjs7Ozs7CitGQ0NDO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDQgMDY0NTs7OztOOzs7OzsKK0ZDQ0Q7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEhFSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ0IDA2NDc7Ozs7Tjs7Ozs7CitGQ0NFO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ1IDA2MkM7Ozs7Tjs7Ozs7CitGQ0NGO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDUgMDYyRDs7OztOOzs7OzsKK0ZDRDA7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDUgMDYyRTs7OztOOzs7OzsKK0ZDRDE7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZDRDI7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDYgMDYyQzs7OztOOzs7OzsKK0ZDRDM7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0NiAwNjJEOzs7O047Ozs7OworRkNENDtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0NiAwNjJFOzs7O047Ozs7OworRkNENTtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0NiAwNjQ1Ozs7O047Ozs7OworRkNENjtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEhFSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ2IDA2NDc7Ozs7Tjs7Ozs7CitGQ0Q3O0FSQUJJQyBMSUdBVFVSRSBIRUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDcgMDYyQzs7OztOOzs7OzsKK0ZDRDg7QVJBQklDIExJR0FUVVJFIEhFSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0NyAwNjQ1Ozs7O047Ozs7OworRkNEOTtBUkFCSUMgTElHQVRVUkUgSEVIIFdJVEggU1VQRVJTQ1JJUFQgQUxFRiBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ3IDA2NzA7Ozs7Tjs7Ozs7CitGQ0RBO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NEEgMDYyQzs7OztOOzs7OzsKK0ZDREI7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjRBIDA2MkQ7Ozs7Tjs7Ozs7CitGQ0RDO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NEEgMDYyRTs7OztOOzs7OzsKK0ZDREQ7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0QSAwNjQ1Ozs7O047Ozs7OworRkNERTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEVIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NEEgMDY0Nzs7OztOOzs7OzsKK0ZDREY7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDYyNiAwNjQ1Ozs7O047Ozs7OworRkNFMDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBIRUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2MjYgMDY0Nzs7OztOOzs7OzsKK0ZDRTE7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIE1FRU0gTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2MjggMDY0NTs7OztOOzs7OzsKK0ZDRTI7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEhFSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDYyOCAwNjQ3Ozs7O047Ozs7OworRkNFMztBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDYyQSAwNjQ1Ozs7O047Ozs7OworRkNFNDtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggSEVIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjJBIDA2NDc7Ozs7Tjs7Ozs7CitGQ0U1O0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDYyQiAwNjQ1Ozs7O047Ozs7OworRkNFNjtBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIEhFSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDYyQiAwNjQ3Ozs7O047Ozs7OworRkNFNztBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIE1FRU0gTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2MzMgMDY0NTs7OztOOzs7OzsKK0ZDRTg7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBIRUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2MzMgMDY0Nzs7OztOOzs7OzsKK0ZDRTk7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDYzNCAwNjQ1Ozs7O047Ozs7OworRkNFQTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBIRUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2MzQgMDY0Nzs7OztOOzs7OzsKK0ZDRUI7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIExBTSBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDY0MyAwNjQ0Ozs7O047Ozs7OworRkNFQztBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDY0MyAwNjQ1Ozs7O047Ozs7OworRkNFRDtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDY0NCAwNjQ1Ozs7O047Ozs7OworRkNFRTtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIE1FRU0gTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2NDYgMDY0NTs7OztOOzs7OzsKK0ZDRUY7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBIRUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2NDYgMDY0Nzs7OztOOzs7OzsKK0ZDRjA7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIE1FRU0gTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2NEEgMDY0NTs7OztOOzs7OzsKK0ZDRjE7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhFSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDY0QSAwNjQ3Ozs7O047Ozs7OworRkNGMjtBUkFCSUMgTElHQVRVUkUgU0hBRERBIFdJVEggRkFUSEEgTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2NDAgMDY1MSAwNjRFOzs7O047Ozs7OworRkNGMztBUkFCSUMgTElHQVRVUkUgU0hBRERBIFdJVEggREFNTUEgTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2NDAgMDY1MSAwNjRGOzs7O047Ozs7OworRkNGNDtBUkFCSUMgTElHQVRVUkUgU0hBRERBIFdJVEggS0FTUkEgTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2NDAgMDY1MSAwNjUwOzs7O047Ozs7OworRkNGNTtBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzNyAwNjQ5Ozs7O047Ozs7OworRkNGNjtBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzNyAwNjRBOzs7O047Ozs7OworRkNGNztBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzOSAwNjQ5Ozs7O047Ozs7OworRkNGODtBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzOSAwNjRBOzs7O047Ozs7OworRkNGOTtBUkFCSUMgTElHQVRVUkUgR0hBSU4gV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjNBIDA2NDk7Ozs7Tjs7Ozs7CitGQ0ZBO0FSQUJJQyBMSUdBVFVSRSBHSEFJTiBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2M0EgMDY0QTs7OztOOzs7OzsKK0ZDRkI7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjMzIDA2NDk7Ozs7Tjs7Ozs7CitGQ0ZDO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzMyAwNjRBOzs7O047Ozs7OworRkNGRDtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM0IDA2NDk7Ozs7Tjs7Ozs7CitGQ0ZFO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzQgMDY0QTs7OztOOzs7OzsKK0ZDRkY7QVJBQklDIExJR0FUVVJFIEhBSCBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MkQgMDY0OTs7OztOOzs7OzsKK0ZEMDA7QVJBQklDIExJR0FUVVJFIEhBSCBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MkQgMDY0QTs7OztOOzs7OzsKK0ZEMDE7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjJDIDA2NDk7Ozs7Tjs7Ozs7CitGRDAyO0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyQyAwNjRBOzs7O047Ozs7OworRkQwMztBUkFCSUMgTElHQVRVUkUgS0hBSCBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MkUgMDY0OTs7OztOOzs7OzsKK0ZEMDQ7QVJBQklDIExJR0FUVVJFIEtIQUggV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjJFIDA2NEE7Ozs7Tjs7Ozs7CitGRDA1O0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM1IDA2NDk7Ozs7Tjs7Ozs7CitGRDA2O0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM1IDA2NEE7Ozs7Tjs7Ozs7CitGRDA3O0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM2IDA2NDk7Ozs7Tjs7Ozs7CitGRDA4O0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM2IDA2NEE7Ozs7Tjs7Ozs7CitGRDA5O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM0IDA2MkM7Ozs7Tjs7Ozs7CitGRDBBO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzQgMDYyRDs7OztOOzs7OzsKK0ZEMEI7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzQgMDYyRTs7OztOOzs7OzsKK0ZEMEM7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzQgMDY0NTs7OztOOzs7OzsKK0ZEMEQ7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggUkVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzNCAwNjMxOzs7O047Ozs7OworRkQwRTtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIFJFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzMgMDYzMTs7OztOOzs7OzsKK0ZEMEY7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIFJFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzUgMDYzMTs7OztOOzs7OzsKK0ZEMTA7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIFJFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzYgMDYzMTs7OztOOzs7OzsKK0ZEMTE7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzcgMDY0OTs7OztOOzs7OzsKK0ZEMTI7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzcgMDY0QTs7OztOOzs7OzsKK0ZEMTM7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzkgMDY0OTs7OztOOzs7OzsKK0ZEMTQ7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzkgMDY0QTs7OztOOzs7OzsKK0ZEMTU7QVJBQklDIExJR0FUVVJFIEdIQUlOIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzQSAwNjQ5Ozs7O047Ozs7OworRkQxNjtBUkFCSUMgTElHQVRVUkUgR0hBSU4gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjNBIDA2NEE7Ozs7Tjs7Ozs7CitGRDE3O0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzMyAwNjQ5Ozs7O047Ozs7OworRkQxODtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzMgMDY0QTs7OztOOzs7OzsKK0ZEMTk7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzNCAwNjQ5Ozs7O047Ozs7OworRkQxQTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM0IDA2NEE7Ozs7Tjs7Ozs7CitGRDFCO0FSQUJJQyBMSUdBVFVSRSBIQUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJEIDA2NDk7Ozs7Tjs7Ozs7CitGRDFDO0FSQUJJQyBMSUdBVFVSRSBIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJEIDA2NEE7Ozs7Tjs7Ozs7CitGRDFEO0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyQyAwNjQ5Ozs7O047Ozs7OworRkQxRTtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkMgMDY0QTs7OztOOzs7OzsKK0ZEMUY7QVJBQklDIExJR0FUVVJFIEtIQUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJFIDA2NDk7Ozs7Tjs7Ozs7CitGRDIwO0FSQUJJQyBMSUdBVFVSRSBLSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyRSAwNjRBOzs7O047Ozs7OworRkQyMTtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzNSAwNjQ5Ozs7O047Ozs7OworRkQyMjtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzNSAwNjRBOzs7O047Ozs7OworRkQyMztBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzNiAwNjQ5Ozs7O047Ozs7OworRkQyNDtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzNiAwNjRBOzs7O047Ozs7OworRkQyNTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBKRUVNIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzNCAwNjJDOzs7O047Ozs7OworRkQyNjtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBIQUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM0IDA2MkQ7Ozs7Tjs7Ozs7CitGRDI3O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEtIQUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM0IDA2MkU7Ozs7Tjs7Ozs7CitGRDI4O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM0IDA2NDU7Ozs7Tjs7Ozs7CitGRDI5O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIFJFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzQgMDYzMTs7OztOOzs7OzsKK0ZEMkE7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBSRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjMzIDA2MzE7Ozs7Tjs7Ozs7CitGRDJCO0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBSRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM1IDA2MzE7Ozs7Tjs7Ozs7CitGRDJDO0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBSRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM2IDA2MzE7Ozs7Tjs7Ozs7CitGRDJEO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzNCAwNjJDOzs7O047Ozs7OworRkQyRTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzNCAwNjJEOzs7O047Ozs7OworRkQyRjtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzQgMDYyRTs7OztOOzs7OzsKK0ZEMzA7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjM0IDA2NDU7Ozs7Tjs7Ozs7CitGRDMxO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggSEVIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzMgMDY0Nzs7OztOOzs7OzsKK0ZEMzI7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSEVIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzQgMDY0Nzs7OztOOzs7OzsKK0ZEMzM7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzNyAwNjQ1Ozs7O047Ozs7OworRkQzNDtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEpFRU0gTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2MzMgMDYyQzs7OztOOzs7OzsKK0ZEMzU7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBIQUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2MzMgMDYyRDs7OztOOzs7OzsKK0ZEMzY7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBLSEFIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjMzIDA2MkU7Ozs7Tjs7Ozs7CitGRDM3O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEpFRU0gTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2MzQgMDYyQzs7OztOOzs7OzsKK0ZEMzg7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSEFIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjM0IDA2MkQ7Ozs7Tjs7Ozs7CitGRDM5O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEtIQUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2MzQgMDYyRTs7OztOOzs7OzsKK0ZEM0E7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIE1FRU0gTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2MzcgMDY0NTs7OztOOzs7OzsKK0ZEM0I7QVJBQklDIExJR0FUVVJFIFpBSCBXSVRIIE1FRU0gTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2MzggMDY0NTs7OztOOzs7OzsKK0ZEM0M7QVJBQklDIExJR0FUVVJFIEFMRUYgV0lUSCBGQVRIQVRBTiBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MjcgMDY0Qjs7OztOOzs7OzsKK0ZEM0Q7QVJBQklDIExJR0FUVVJFIEFMRUYgV0lUSCBGQVRIQVRBTiBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MjcgMDY0Qjs7OztOOzs7OzsKK0ZEM0U7T1JOQVRFIExFRlQgUEFSRU5USEVTSVM7UHM7MDtPTjs7Ozs7Tjs7Ozs7CitGRDNGO09STkFURSBSSUdIVCBQQVJFTlRIRVNJUztQZTswO09OOzs7OztOOzs7OzsKK0ZENTA7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEpFRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MkEgMDYyQyAwNjQ1Ozs7O047Ozs7OworRkQ1MTtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggSEFIIFdJVEggSkVFTSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkEgMDYyRCAwNjJDOzs7O047Ozs7OworRkQ1MjtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggSEFIIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjJBIDA2MkQgMDYyQzs7OztOOzs7OzsKK0ZENTM7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEhBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyQSAwNjJEIDA2NDU7Ozs7Tjs7Ozs7CitGRDU0O0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBLSEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjJBIDA2MkUgMDY0NTs7OztOOzs7OzsKK0ZENTU7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIE1FRU0gV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MkEgMDY0NSAwNjJDOzs7O047Ozs7OworRkQ1NjtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggTUVFTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjJBIDA2NDUgMDYyRDs7OztOOzs7OzsKK0ZENTc7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIE1FRU0gV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MkEgMDY0NSAwNjJFOzs7O047Ozs7OworRkQ1ODtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIE1FRU0gV0lUSCBIQUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJDIDA2NDUgMDYyRDs7OztOOzs7OzsKK0ZENTk7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBNRUVNIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MkMgMDY0NSAwNjJEOzs7O047Ozs7OworRkQ1QTtBUkFCSUMgTElHQVRVUkUgSEFIIFdJVEggTUVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkQgMDY0NSAwNjRBOzs7O047Ozs7OworRkQ1QjtBUkFCSUMgTElHQVRVUkUgSEFIIFdJVEggTUVFTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkQgMDY0NSAwNjQ5Ozs7O047Ozs7OworRkQ1QztBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEhBSCBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzMyAwNjJEIDA2MkM7Ozs7Tjs7Ozs7CitGRDVEO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggSkVFTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjMzIDA2MkMgMDYyRDs7OztOOzs7OzsKK0ZENUU7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBKRUVNIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzMyAwNjJDIDA2NDk7Ozs7Tjs7Ozs7CitGRDVGO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggTUVFTSBXSVRIIEhBSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzMgMDY0NSAwNjJEOzs7O047Ozs7OworRkQ2MDtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIE1FRU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzMyAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGRDYxO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggTUVFTSBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzMyAwNjQ1IDA2MkM7Ozs7Tjs7Ozs7CitGRDYyO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggTUVFTSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjMzIDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZENjM7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBNRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjMzIDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZENjQ7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIEhBSCBXSVRIIEhBSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzUgMDYyRCAwNjJEOzs7O047Ozs7OworRkQ2NTtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggSEFIIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzUgMDYyRCAwNjJEOzs7O047Ozs7OworRkQ2NjtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggTUVFTSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM1IDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZENjc7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSEFIIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzQgMDYyRCAwNjQ1Ozs7O047Ozs7OworRkQ2ODtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzQgMDYyRCAwNjQ1Ozs7O047Ozs7OworRkQ2OTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBKRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzNCAwNjJDIDA2NEE7Ozs7Tjs7Ozs7CitGRDZBO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIE1FRU0gV0lUSCBLSEFIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzNCAwNjQ1IDA2MkU7Ozs7Tjs7Ozs7CitGRDZCO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIE1FRU0gV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzQgMDY0NSAwNjJFOzs7O047Ozs7OworRkQ2QztBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBNRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzQgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ2RDtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBNRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjM0IDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZENkU7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEhBSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzYgMDYyRCAwNjQ5Ozs7O047Ozs7OworRkQ2RjtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggS0hBSCBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM2IDA2MkUgMDY0NTs7OztOOzs7OzsKK0ZENzA7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEtIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzYgMDYyRSAwNjQ1Ozs7O047Ozs7OworRkQ3MTtBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggTUVFTSBXSVRIIEhBSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzcgMDY0NSAwNjJEOzs7O047Ozs7OworRkQ3MjtBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggTUVFTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjM3IDA2NDUgMDYyRDs7OztOOzs7OzsKK0ZENzM7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIE1FRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzcgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ3NDtBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggTUVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzcgMDY0NSAwNjRBOzs7O047Ozs7OworRkQ3NTtBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggSkVFTSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM5IDA2MkMgMDY0NTs7OztOOzs7OzsKK0ZENzY7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIE1FRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzOSAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGRDc3O0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBNRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjM5IDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZENzg7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIE1FRU0gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM5IDA2NDUgMDY0OTs7OztOOzs7OzsKK0ZENzk7QVJBQklDIExJR0FUVVJFIEdIQUlOIFdJVEggTUVFTSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjNBIDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZEN0E7QVJBQklDIExJR0FUVVJFIEdIQUlOIFdJVEggTUVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2M0EgMDY0NSAwNjRBOzs7O047Ozs7OworRkQ3QjtBUkFCSUMgTElHQVRVUkUgR0hBSU4gV0lUSCBNRUVNIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzQSAwNjQ1IDA2NDk7Ozs7Tjs7Ozs7CitGRDdDO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBLSEFIIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDEgMDYyRSAwNjQ1Ozs7O047Ozs7OworRkQ3RDtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggS0hBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0MSAwNjJFIDA2NDU7Ozs7Tjs7Ozs7CitGRDdFO0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBNRUVNIFdJVEggSEFIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0MiAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGRDdGO0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBNRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDIgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ4MDtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSEFIIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDQgMDYyRCAwNjQ1Ozs7O047Ozs7OworRkQ4MTtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NCAwNjJEIDA2NEE7Ozs7Tjs7Ozs7CitGRDgyO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBIQUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ0IDA2MkQgMDY0OTs7OztOOzs7OzsKK0ZEODM7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEpFRU0gV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDQgMDYyQyAwNjJDOzs7O047Ozs7OworRkQ4NDtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSkVFTSBXSVRIIEpFRU0gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ0IDA2MkMgMDYyQzs7OztOOzs7OzsKK0ZEODU7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEtIQUggV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NCAwNjJFIDA2NDU7Ozs7Tjs7Ozs7CitGRDg2O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBLSEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ0IDA2MkUgMDY0NTs7OztOOzs7OzsKK0ZEODc7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIE1FRU0gV0lUSCBIQUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ0IDA2NDUgMDYyRDs7OztOOzs7OzsKK0ZEODg7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIE1FRU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0NCAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGRDg5O0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggSEFIIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ1IDA2MkQgMDYyQzs7OztOOzs7OzsKK0ZEOEE7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDUgMDYyRCAwNjQ1Ozs7O047Ozs7OworRkQ4QjtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEhBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDUgMDYyRCAwNjRBOzs7O047Ozs7OworRkQ4QztBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEpFRU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0NSAwNjJDIDA2MkQ7Ozs7Tjs7Ozs7CitGRDhEO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggSkVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0NSAwNjJDIDA2NDU7Ozs7Tjs7Ozs7CitGRDhFO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggS0hBSCBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0NSAwNjJFIDA2MkM7Ozs7Tjs7Ozs7CitGRDhGO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggS0hBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0NSAwNjJFIDA2NDU7Ozs7Tjs7Ozs7CitGRDkyO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggSkVFTSBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0NSAwNjJDIDA2MkU7Ozs7Tjs7Ozs7CitGRDkzO0FSQUJJQyBMSUdBVFVSRSBIRUggV0lUSCBNRUVNIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ3IDA2NDUgMDYyQzs7OztOOzs7OzsKK0ZEOTQ7QVJBQklDIExJR0FUVVJFIEhFSCBXSVRIIE1FRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDcgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ5NTtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEhBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0NiAwNjJEIDA2NDU7Ozs7Tjs7Ozs7CitGRDk2O0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSEFIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NiAwNjJEIDA2NDk7Ozs7Tjs7Ozs7CitGRDk3O0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSkVFTSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ2IDA2MkMgMDY0NTs7OztOOzs7OzsKK0ZEOTg7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBKRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ2IDA2MkMgMDY0NTs7OztOOzs7OzsKK0ZEOTk7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBKRUVNIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NiAwNjJDIDA2NDk7Ozs7Tjs7Ozs7CitGRDlBO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggTUVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDYgMDY0NSAwNjRBOzs7O047Ozs7OworRkQ5QjtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIE1FRU0gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ2IDA2NDUgMDY0OTs7OztOOzs7OzsKK0ZEOUM7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIE1FRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0QSAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGRDlEO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBNRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjRBIDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZEOUU7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEtIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjI4IDA2MkUgMDY0QTs7OztOOzs7OzsKK0ZEOUY7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEpFRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJBIDA2MkMgMDY0QTs7OztOOzs7OzsKK0ZEQTA7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEpFRU0gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJBIDA2MkMgMDY0OTs7OztOOzs7OzsKK0ZEQTE7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEtIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJBIDA2MkUgMDY0QTs7OztOOzs7OzsKK0ZEQTI7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEtIQUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJBIDA2MkUgMDY0OTs7OztOOzs7OzsKK0ZEQTM7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJBIDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZEQTQ7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIE1FRU0gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJBIDA2NDUgMDY0OTs7OztOOzs7OzsKK0ZEQTU7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyQyAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGREE2O0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggSEFIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyQyAwNjJEIDA2NDk7Ozs7Tjs7Ozs7CitGREE3O0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggTUVFTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkMgMDY0NSAwNjQ5Ozs7O047Ozs7OworRkRBODtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEtIQUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjMzIDA2MkUgMDY0OTs7OztOOzs7OzsKK0ZEQTk7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIEhBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzUgMDYyRCAwNjRBOzs7O047Ozs7OworRkRBQTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM0IDA2MkQgMDY0QTs7OztOOzs7OzsKK0ZEQUI7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEhBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzYgMDYyRCAwNjRBOzs7O047Ozs7OworRkRBQztBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSkVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDQgMDYyQyAwNjRBOzs7O047Ozs7OworRkRBRDtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggTUVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDQgMDY0NSAwNjRBOzs7O047Ozs7OworRkRBRTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0QSAwNjJEIDA2NEE7Ozs7Tjs7Ozs7CitGREFGO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBKRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0QSAwNjJDIDA2NEE7Ozs7Tjs7Ozs7CitGREIwO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0QSAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGREIxO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggTUVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDUgMDY0NSAwNjRBOzs7O047Ozs7OworRkRCMjtBUkFCSUMgTElHQVRVUkUgUUFGIFdJVEggTUVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDIgMDY0NSAwNjRBOzs7O047Ozs7OworRkRCMztBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEhBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDYgMDYyRCAwNjRBOzs7O047Ozs7OworRkRCNDtBUkFCSUMgTElHQVRVUkUgUUFGIFdJVEggTUVFTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQyIDA2NDUgMDYyRDs7OztOOzs7OzsKK0ZEQjU7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEhBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0NCAwNjJEIDA2NDU7Ozs7Tjs7Ozs7CitGREI2O0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzOSAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGREI3O0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0MyAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGREI4O0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSkVFTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ2IDA2MkMgMDYyRDs7OztOOzs7OzsKK0ZEQjk7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBLSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NSAwNjJFIDA2NEE7Ozs7Tjs7Ozs7CitGREJBO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBKRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ0IDA2MkMgMDY0NTs7OztOOzs7OzsKK0ZEQkI7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIE1FRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0MyAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGREJDO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBKRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDQgMDYyQyAwNjQ1Ozs7O047Ozs7OworRkRCRDtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEpFRU0gV0lUSCBIQUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ2IDA2MkMgMDYyRDs7OztOOzs7OzsKK0ZEQkU7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJDIDA2MkQgMDY0QTs7OztOOzs7OzsKK0ZEQkY7QVJBQklDIExJR0FUVVJFIEhBSCBXSVRIIEpFRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJEIDA2MkMgMDY0QTs7OztOOzs7OzsKK0ZEQzA7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBKRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NSAwNjJDIDA2NEE7Ozs7Tjs7Ozs7CitGREMxO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0MSAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGREMyO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjI4IDA2MkQgMDY0QTs7OztOOzs7OzsKK0ZEQzM7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIE1FRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDMgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkRDNDtBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggSkVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzOSAwNjJDIDA2NDU7Ozs7Tjs7Ozs7CitGREM1O0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBNRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjM1IDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZEQzY7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBLSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzMyAwNjJFIDA2NEE7Ozs7Tjs7Ozs7CitGREM3O0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSkVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDYgMDYyQyAwNjRBOzs7O047Ozs7OworRkRGMDtBUkFCSUMgTElHQVRVUkUgU0FMTEEgVVNFRCBBUyBLT1JBTklDIFNUT1AgU0lHTiBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzUgMDY0NCAwNkQyOzs7O047Ozs7OworRkRGMTtBUkFCSUMgTElHQVRVUkUgUUFMQSBVU0VEIEFTIEtPUkFOSUMgU1RPUCBTSUdOIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0MiAwNjQ0IDA2RDI7Ozs7Tjs7Ozs7CitGREYyO0FSQUJJQyBMSUdBVFVSRSBBTExBSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MjcgMDY0NCAwNjQ0IDA2NDc7Ozs7Tjs7Ozs7CitGREYzO0FSQUJJQyBMSUdBVFVSRSBBS0JBUiBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MjcgMDY0MyAwNjI4IDA2MzE7Ozs7Tjs7Ozs7CitGREY0O0FSQUJJQyBMSUdBVFVSRSBNT0hBTU1BRCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDUgMDYyRCAwNjQ1IDA2MkY7Ozs7Tjs7Ozs7CitGREY1O0FSQUJJQyBMSUdBVFVSRSBTQUxBTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzUgMDY0NCAwNjM5IDA2NDU7Ozs7Tjs7Ozs7CitGREY2O0FSQUJJQyBMSUdBVFVSRSBSQVNPVUwgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjMxIDA2MzMgMDY0OCAwNjQ0Ozs7O047Ozs7OworRkRGNztBUkFCSUMgTElHQVRVUkUgQUxBWUhFIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzOSAwNjQ0IDA2NEEgMDY0Nzs7OztOOzs7OzsKK0ZERjg7QVJBQklDIExJR0FUVVJFIFdBU0FMTEFNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0OCAwNjMzIDA2NDQgMDY0NTs7OztOOzs7OzsKK0ZERjk7QVJBQklDIExJR0FUVVJFIFNBTExBIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzNSAwNjQ0IDA2NDk7Ozs7Tjs7Ozs7CitGREZBO0FSQUJJQyBMSUdBVFVSRSBTQUxMQUxMQUhPVSBBTEFZSEUgV0FTQUxMQU07TG87MDtSOzxpc29sYXRlZD4gMDYzNSAwNjQ0IDA2NDkgMDAyMCAwNjI3IDA2NDQgMDY0NCAwNjQ3IDAwMjAgMDYzOSAwNjQ0IDA2NEEgMDY0NyAwMDIwIDA2NDggMDYzMyAwNjQ0IDA2NDU7Ozs7TjtBUkFCSUMgTEVUVEVSIFNBTExBTExBSE9VIEFMQVlIRSBXQVNBTExBTTs7OzsKK0ZERkI7QVJBQklDIExJR0FUVVJFIEpBTExBSkFMQUxPVUhPVTtMbzswO1I7PGlzb2xhdGVkPiAwNjJDIDA2NDQgMDAyMCAwNjJDIDA2NDQgMDYyNyAwNjQ0IDA2NDc7Ozs7TjtBUkFCSUMgTEVUVEVSIEpBTExBSkFMQUxPVUhPVTs7OzsKK0ZFMjA7Q09NQklOSU5HIExJR0FUVVJFIExFRlQgSEFMRjtNbjsyMzA7T047Ozs7O047Ozs7OworRkUyMTtDT01CSU5JTkcgTElHQVRVUkUgUklHSFQgSEFMRjtNbjsyMzA7T047Ozs7O047Ozs7OworRkUyMjtDT01CSU5JTkcgRE9VQkxFIFRJTERFIExFRlQgSEFMRjtNbjsyMzA7T047Ozs7O047Ozs7OworRkUyMztDT01CSU5JTkcgRE9VQkxFIFRJTERFIFJJR0hUIEhBTEY7TW47MjMwO09OOzs7OztOOzs7OzsKK0ZFMzA7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIFRXTyBET1QgTEVBREVSO1BvOzA7T047PHZlcnRpY2FsPiAyMDI1Ozs7O047R0xZUEggRk9SIFZFUlRJQ0FMIFRXTyBET1QgTEVBREVSOzs7OworRkUzMTtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgRU0gREFTSDtQZDswO09OOzx2ZXJ0aWNhbD4gMjAxNDs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBFTSBEQVNIOzs7OworRkUzMjtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgRU4gREFTSDtQZDswO09OOzx2ZXJ0aWNhbD4gMjAxMzs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBFTiBEQVNIOzs7OworRkUzMztQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgTE9XIExJTkU7UGM7MDtPTjs8dmVydGljYWw+IDAwNUY7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgU1BBQ0lORyBVTkRFUlNDT1JFOzs7OworRkUzNDtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgV0FWWSBMT1cgTElORTtQYzswO09OOzx2ZXJ0aWNhbD4gMDA1Rjs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBTUEFDSU5HIFdBVlkgVU5ERVJTQ09SRTs7OzsKK0ZFMzU7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIExFRlQgUEFSRU5USEVTSVM7UHM7MDtPTjs8dmVydGljYWw+IDAwMjg7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgT1BFTklORyBQQVJFTlRIRVNJUzs7OzsKK0ZFMzY7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIFJJR0hUIFBBUkVOVEhFU0lTO1BlOzA7T047PHZlcnRpY2FsPiAwMDI5Ozs7O047R0xZUEggRk9SIFZFUlRJQ0FMIENMT1NJTkcgUEFSRU5USEVTSVM7Ozs7CitGRTM3O1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBMRUZUIENVUkxZIEJSQUNLRVQ7UHM7MDtPTjs8dmVydGljYWw+IDAwN0I7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgT1BFTklORyBDVVJMWSBCUkFDS0VUOzs7OworRkUzODtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgUklHSFQgQ1VSTFkgQlJBQ0tFVDtQZTswO09OOzx2ZXJ0aWNhbD4gMDA3RDs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBDTE9TSU5HIENVUkxZIEJSQUNLRVQ7Ozs7CitGRTM5O1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBMRUZUIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7UHM7MDtPTjs8dmVydGljYWw+IDMwMTQ7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgT1BFTklORyBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUOzs7OworRkUzQTtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgUklHSFQgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDtQZTswO09OOzx2ZXJ0aWNhbD4gMzAxNTs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBDTE9TSU5HIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7Ozs7CitGRTNCO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBMRUZUIEJMQUNLIExFTlRJQ1VMQVIgQlJBQ0tFVDtQczswO09OOzx2ZXJ0aWNhbD4gMzAxMDs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBPUEVOSU5HIEJMQUNLIExFTlRJQ1VMQVIgQlJBQ0tFVDs7OzsKK0ZFM0M7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIFJJR0hUIEJMQUNLIExFTlRJQ1VMQVIgQlJBQ0tFVDtQZTswO09OOzx2ZXJ0aWNhbD4gMzAxMTs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBDTE9TSU5HIEJMQUNLIExFTlRJQ1VMQVIgQlJBQ0tFVDs7OzsKK0ZFM0Q7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIExFRlQgRE9VQkxFIEFOR0xFIEJSQUNLRVQ7UHM7MDtPTjs8dmVydGljYWw+IDMwMEE7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgT1BFTklORyBET1VCTEUgQU5HTEUgQlJBQ0tFVDs7OzsKK0ZFM0U7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIFJJR0hUIERPVUJMRSBBTkdMRSBCUkFDS0VUO1BlOzA7T047PHZlcnRpY2FsPiAzMDBCOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIENMT1NJTkcgRE9VQkxFIEFOR0xFIEJSQUNLRVQ7Ozs7CitGRTNGO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBMRUZUIEFOR0xFIEJSQUNLRVQ7UHM7MDtPTjs8dmVydGljYWw+IDMwMDg7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgT1BFTklORyBBTkdMRSBCUkFDS0VUOzs7OworRkU0MDtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgUklHSFQgQU5HTEUgQlJBQ0tFVDtQZTswO09OOzx2ZXJ0aWNhbD4gMzAwOTs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBDTE9TSU5HIEFOR0xFIEJSQUNLRVQ7Ozs7CitGRTQxO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBMRUZUIENPUk5FUiBCUkFDS0VUO1BzOzA7T047PHZlcnRpY2FsPiAzMDBDOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIE9QRU5JTkcgQ09STkVSIEJSQUNLRVQ7Ozs7CitGRTQyO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBSSUdIVCBDT1JORVIgQlJBQ0tFVDtQZTswO09OOzx2ZXJ0aWNhbD4gMzAwRDs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBDTE9TSU5HIENPUk5FUiBCUkFDS0VUOzs7OworRkU0MztQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgTEVGVCBXSElURSBDT1JORVIgQlJBQ0tFVDtQczswO09OOzx2ZXJ0aWNhbD4gMzAwRTs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBPUEVOSU5HIFdISVRFIENPUk5FUiBCUkFDS0VUOzs7OworRkU0NDtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgUklHSFQgV0hJVEUgQ09STkVSIEJSQUNLRVQ7UGU7MDtPTjs8dmVydGljYWw+IDMwMEY7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgQ0xPU0lORyBXSElURSBDT1JORVIgQlJBQ0tFVDs7OzsKK0ZFNDk7REFTSEVEIE9WRVJMSU5FO1BvOzA7T047PGNvbXBhdD4gMjAzRTs7OztOO1NQQUNJTkcgREFTSEVEIE9WRVJTQ09SRTs7OzsKK0ZFNEE7Q0VOVFJFTElORSBPVkVSTElORTtQbzswO09OOzxjb21wYXQ+IDIwM0U7Ozs7TjtTUEFDSU5HIENFTlRFUkxJTkUgT1ZFUlNDT1JFOzs7OworRkU0QjtXQVZZIE9WRVJMSU5FO1BvOzA7T047PGNvbXBhdD4gMjAzRTs7OztOO1NQQUNJTkcgV0FWWSBPVkVSU0NPUkU7Ozs7CitGRTRDO0RPVUJMRSBXQVZZIE9WRVJMSU5FO1BvOzA7T047PGNvbXBhdD4gMjAzRTs7OztOO1NQQUNJTkcgRE9VQkxFIFdBVlkgT1ZFUlNDT1JFOzs7OworRkU0RDtEQVNIRUQgTE9XIExJTkU7UGM7MDtPTjs8Y29tcGF0PiAwMDVGOzs7O047U1BBQ0lORyBEQVNIRUQgVU5ERVJTQ09SRTs7OzsKK0ZFNEU7Q0VOVFJFTElORSBMT1cgTElORTtQYzswO09OOzxjb21wYXQ+IDAwNUY7Ozs7TjtTUEFDSU5HIENFTlRFUkxJTkUgVU5ERVJTQ09SRTs7OzsKK0ZFNEY7V0FWWSBMT1cgTElORTtQYzswO09OOzxjb21wYXQ+IDAwNUY7Ozs7TjtTUEFDSU5HIFdBVlkgVU5ERVJTQ09SRTs7OzsKK0ZFNTA7U01BTEwgQ09NTUE7UG87MDtPTjs8c21hbGw+IDAwMkM7Ozs7Tjs7Ozs7CitGRTUxO1NNQUxMIElERU9HUkFQSElDIENPTU1BO1BvOzA7T047PHNtYWxsPiAzMDAxOzs7O047Ozs7OworRkU1MjtTTUFMTCBGVUxMIFNUT1A7UG87MDtPTjs8c21hbGw+IDAwMkU7Ozs7TjtTTUFMTCBQRVJJT0Q7Ozs7CitGRTU0O1NNQUxMIFNFTUlDT0xPTjtQbzswO09OOzxzbWFsbD4gMDAzQjs7OztOOzs7OzsKK0ZFNTU7U01BTEwgQ09MT047UG87MDtPTjs8c21hbGw+IDAwM0E7Ozs7Tjs7Ozs7CitGRTU2O1NNQUxMIFFVRVNUSU9OIE1BUks7UG87MDtPTjs8c21hbGw+IDAwM0Y7Ozs7Tjs7Ozs7CitGRTU3O1NNQUxMIEVYQ0xBTUFUSU9OIE1BUks7UG87MDtPTjs8c21hbGw+IDAwMjE7Ozs7Tjs7Ozs7CitGRTU4O1NNQUxMIEVNIERBU0g7UGQ7MDtPTjs8c21hbGw+IDIwMTQ7Ozs7Tjs7Ozs7CitGRTU5O1NNQUxMIExFRlQgUEFSRU5USEVTSVM7UHM7MDtPTjs8c21hbGw+IDAwMjg7Ozs7TjtTTUFMTCBPUEVOSU5HIFBBUkVOVEhFU0lTOzs7OworRkU1QTtTTUFMTCBSSUdIVCBQQVJFTlRIRVNJUztQZTswO09OOzxzbWFsbD4gMDAyOTs7OztOO1NNQUxMIENMT1NJTkcgUEFSRU5USEVTSVM7Ozs7CitGRTVCO1NNQUxMIExFRlQgQ1VSTFkgQlJBQ0tFVDtQczswO09OOzxzbWFsbD4gMDA3Qjs7OztOO1NNQUxMIE9QRU5JTkcgQ1VSTFkgQlJBQ0tFVDs7OzsKK0ZFNUM7U01BTEwgUklHSFQgQ1VSTFkgQlJBQ0tFVDtQZTswO09OOzxzbWFsbD4gMDA3RDs7OztOO1NNQUxMIENMT1NJTkcgQ1VSTFkgQlJBQ0tFVDs7OzsKK0ZFNUQ7U01BTEwgTEVGVCBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUO1BzOzA7T047PHNtYWxsPiAzMDE0Ozs7O047U01BTEwgT1BFTklORyBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUOzs7OworRkU1RTtTTUFMTCBSSUdIVCBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUO1BlOzA7T047PHNtYWxsPiAzMDE1Ozs7O047U01BTEwgQ0xPU0lORyBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUOzs7OworRkU1RjtTTUFMTCBOVU1CRVIgU0lHTjtQbzswO09OOzxzbWFsbD4gMDAyMzs7OztOOzs7OzsKK0ZFNjA7U01BTEwgQU1QRVJTQU5EO1BvOzA7T047PHNtYWxsPiAwMDI2Ozs7O047Ozs7OworRkU2MTtTTUFMTCBBU1RFUklTSztQbzswO09OOzxzbWFsbD4gMDAyQTs7OztOOzs7OzsKK0ZFNjI7U01BTEwgUExVUyBTSUdOO1NtOzA7T047PHNtYWxsPiAwMDJCOzs7O047Ozs7OworRkU2MztTTUFMTCBIWVBIRU4tTUlOVVM7UGQ7MDtPTjs8c21hbGw+IDAwMkQ7Ozs7Tjs7Ozs7CitGRTY0O1NNQUxMIExFU1MtVEhBTiBTSUdOO1NtOzA7T047PHNtYWxsPiAwMDNDOzs7O047Ozs7OworRkU2NTtTTUFMTCBHUkVBVEVSLVRIQU4gU0lHTjtTbTswO09OOzxzbWFsbD4gMDAzRTs7OztOOzs7OzsKK0ZFNjY7U01BTEwgRVFVQUxTIFNJR047U207MDtPTjs8c21hbGw+IDAwM0Q7Ozs7Tjs7Ozs7CitGRTY4O1NNQUxMIFJFVkVSU0UgU09MSURVUztQbzswO09OOzxzbWFsbD4gMDA1Qzs7OztOO1NNQUxMIEJBQ0tTTEFTSDs7OzsKK0ZFNjk7U01BTEwgRE9MTEFSIFNJR047U2M7MDtPTjs8c21hbGw+IDAwMjQ7Ozs7Tjs7Ozs7CitGRTZBO1NNQUxMIFBFUkNFTlQgU0lHTjtQbzswO09OOzxzbWFsbD4gMDAyNTs7OztOOzs7OzsKK0ZFNkI7U01BTEwgQ09NTUVSQ0lBTCBBVDtQbzswO09OOzxzbWFsbD4gMDA0MDs7OztOOzs7OzsKK0ZFNzA7QVJBQklDIEZBVEhBVEFOIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDAyMCAwNjRCOzs7O047QVJBQklDIFNQQUNJTkcgRkFUSEFUQU47Ozs7CitGRTcxO0FSQUJJQyBUQVRXRUVMIFdJVEggRkFUSEFUQU4gQUJPVkU7TG87MDtSOzxtZWRpYWw+IDA2NDAgMDY0Qjs7OztOO0FSQUJJQyBGQVRIQVRBTiBPTiBUQVRXRUVMOzs7OworRkU3MjtBUkFCSUMgREFNTUFUQU4gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwMDIwIDA2NEM7Ozs7TjtBUkFCSUMgU1BBQ0lORyBEQU1NQVRBTjs7OzsKK0ZFNzQ7QVJBQklDIEtBU1JBVEFOIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDAyMCAwNjREOzs7O047QVJBQklDIFNQQUNJTkcgS0FTUkFUQU47Ozs7CitGRTc2O0FSQUJJQyBGQVRIQSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDAwMjAgMDY0RTs7OztOO0FSQUJJQyBTUEFDSU5HIEZBVEhBSDs7OzsKK0ZFNzc7QVJBQklDIEZBVEhBIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjQwIDA2NEU7Ozs7TjtBUkFCSUMgRkFUSEFIIE9OIFRBVFdFRUw7Ozs7CitGRTc4O0FSQUJJQyBEQU1NQSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDAwMjAgMDY0Rjs7OztOO0FSQUJJQyBTUEFDSU5HIERBTU1BSDs7OzsKK0ZFNzk7QVJBQklDIERBTU1BIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjQwIDA2NEY7Ozs7TjtBUkFCSUMgREFNTUFIIE9OIFRBVFdFRUw7Ozs7CitGRTdBO0FSQUJJQyBLQVNSQSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDAwMjAgMDY1MDs7OztOO0FSQUJJQyBTUEFDSU5HIEtBU1JBSDs7OzsKK0ZFN0I7QVJBQklDIEtBU1JBIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjQwIDA2NTA7Ozs7TjtBUkFCSUMgS0FTUkFIIE9OIFRBVFdFRUw7Ozs7CitGRTdDO0FSQUJJQyBTSEFEREEgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwMDIwIDA2NTE7Ozs7TjtBUkFCSUMgU1BBQ0lORyBTSEFEREFIOzs7OworRkU3RDtBUkFCSUMgU0hBRERBIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjQwIDA2NTE7Ozs7TjtBUkFCSUMgU0hBRERBSCBPTiBUQVRXRUVMOzs7OworRkU3RTtBUkFCSUMgU1VLVU4gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwMDIwIDA2NTI7Ozs7TjtBUkFCSUMgU1BBQ0lORyBTVUtVTjs7OzsKK0ZFN0Y7QVJBQklDIFNVS1VOIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjQwIDA2NTI7Ozs7TjtBUkFCSUMgU1VLVU4gT04gVEFUV0VFTDs7OzsKK0ZFODA7QVJBQklDIExFVFRFUiBIQU1aQSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MjE7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgSEFNWkFIOzs7OworRkU4MTtBUkFCSUMgTEVUVEVSIEFMRUYgV0lUSCBNQUREQSBBQk9WRSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MjI7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgTUFEREFIIE9OIEFMRUY7Ozs7CitGRTgyO0FSQUJJQyBMRVRURVIgQUxFRiBXSVRIIE1BRERBIEFCT1ZFIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyMjs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgTUFEREFIIE9OIEFMRUY7Ozs7CitGRTgzO0FSQUJJQyBMRVRURVIgQUxFRiBXSVRIIEhBTVpBIEFCT1ZFIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyMzs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBIQU1aQUggT04gQUxFRjs7OzsKK0ZFODQ7QVJBQklDIExFVFRFUiBBTEVGIFdJVEggSEFNWkEgQUJPVkUgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjIzOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBIQU1aQUggT04gQUxFRjs7OzsKK0ZFODU7QVJBQklDIExFVFRFUiBXQVcgV0lUSCBIQU1aQSBBQk9WRSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MjQ7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgSEFNWkFIIE9OIFdBVzs7OzsKK0ZFODY7QVJBQklDIExFVFRFUiBXQVcgV0lUSCBIQU1aQSBBQk9WRSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MjQ7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEhBTVpBSCBPTiBXQVc7Ozs7CitGRTg3O0FSQUJJQyBMRVRURVIgQUxFRiBXSVRIIEhBTVpBIEJFTE9XIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyNTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBIQU1aQUggVU5ERVIgQUxFRjs7OzsKK0ZFODg7QVJBQklDIExFVFRFUiBBTEVGIFdJVEggSEFNWkEgQkVMT1cgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjI1Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBIQU1aQUggVU5ERVIgQUxFRjs7OzsKK0ZFODk7QVJBQklDIExFVFRFUiBZRUggV0lUSCBIQU1aQSBBQk9WRSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MjY7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgSEFNWkFIIE9OIFlBOzs7OworRkU4QTtBUkFCSUMgTEVUVEVSIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyNjs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgSEFNWkFIIE9OIFlBOzs7OworRkU4QjtBUkFCSUMgTEVUVEVSIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MjY7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgSEFNWkFIIE9OIFlBOzs7OworRkU4QztBUkFCSUMgTEVUVEVSIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjI2Ozs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgSEFNWkFIIE9OIFlBOzs7OworRkU4RDtBUkFCSUMgTEVUVEVSIEFMRUYgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjI3Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEFMRUY7Ozs7CitGRThFO0FSQUJJQyBMRVRURVIgQUxFRiBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2Mjc7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEFMRUY7Ozs7CitGRThGO0FSQUJJQyBMRVRURVIgQkVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyODs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBCQUE7Ozs7CitGRTkwO0FSQUJJQyBMRVRURVIgQkVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyODs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgQkFBOzs7OworRkU5MTtBUkFCSUMgTEVUVEVSIEJFSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjI4Ozs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIEJBQTs7OzsKK0ZFOTI7QVJBQklDIExFVFRFUiBCRUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2Mjg7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBCQUE7Ozs7CitGRTkzO0FSQUJJQyBMRVRURVIgVEVIIE1BUkJVVEEgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjI5Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFRBQSBNQVJCVVRBSDs7OzsKK0ZFOTQ7QVJBQklDIExFVFRFUiBURUggTUFSQlVUQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2Mjk7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFRBQSBNQVJCVVRBSDs7OzsKK0ZFOTU7QVJBQklDIExFVFRFUiBURUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjJBOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFRBQTs7OzsKK0ZFOTY7QVJBQklDIExFVFRFUiBURUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJBOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBUQUE7Ozs7CitGRTk3O0FSQUJJQyBMRVRURVIgVEVIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MkE7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgVEFBOzs7OworRkU5ODtBUkFCSUMgTEVUVEVSIFRFSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDYyQTs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIFRBQTs7OzsKK0ZFOTk7QVJBQklDIExFVFRFUiBUSEVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyQjs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBUSEFBOzs7OworRkU5QTtBUkFCSUMgTEVUVEVSIFRIRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJCOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBUSEFBOzs7OworRkU5QjtBUkFCSUMgTEVUVEVSIFRIRUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyQjs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBUSEFBOzs7OworRkU5QztBUkFCSUMgTEVUVEVSIFRIRUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2MkI7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBUSEFBOzs7OworRkU5RDtBUkFCSUMgTEVUVEVSIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjJDOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEpFRU07Ozs7CitGRTlFO0FSQUJJQyBMRVRURVIgSkVFTSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkM7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEpFRU07Ozs7CitGRTlGO0FSQUJJQyBMRVRURVIgSkVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjJDOzs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIEpFRU07Ozs7CitGRUEwO0FSQUJJQyBMRVRURVIgSkVFTSBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDYyQzs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIEpFRU07Ozs7CitGRUExO0FSQUJJQyBMRVRURVIgSEFIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyRDs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBIQUE7Ozs7CitGRUEyO0FSQUJJQyBMRVRURVIgSEFIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyRDs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgSEFBOzs7OworRkVBMztBUkFCSUMgTEVUVEVSIEhBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjJEOzs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIEhBQTs7OzsKK0ZFQTQ7QVJBQklDIExFVFRFUiBIQUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2MkQ7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBIQUE7Ozs7CitGRUE1O0FSQUJJQyBMRVRURVIgS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MkU7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgS0hBQTs7OzsKK0ZFQTY7QVJBQklDIExFVFRFUiBLSEFIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyRTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgS0hBQTs7OzsKK0ZFQTc7QVJBQklDIExFVFRFUiBLSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MkU7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgS0hBQTs7OzsKK0ZFQTg7QVJBQklDIExFVFRFUiBLSEFIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjJFOzs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgS0hBQTs7OzsKK0ZFQTk7QVJBQklDIExFVFRFUiBEQUwgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjJGOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIERBTDs7OzsKK0ZFQUE7QVJBQklDIExFVFRFUiBEQUwgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJGOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBEQUw7Ozs7CitGRUFCO0FSQUJJQyBMRVRURVIgVEhBTCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzA7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgVEhBTDs7OzsKK0ZFQUM7QVJBQklDIExFVFRFUiBUSEFMIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzMDs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgVEhBTDs7OzsKK0ZFQUQ7QVJBQklDIExFVFRFUiBSRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjMxOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFJBOzs7OworRkVBRTtBUkFCSUMgTEVUVEVSIFJFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzE7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFJBOzs7OworRkVBRjtBUkFCSUMgTEVUVEVSIFpBSU4gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjMyOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFpBSU47Ozs7CitGRUIwO0FSQUJJQyBMRVRURVIgWkFJTiBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzI7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFpBSU47Ozs7CitGRUIxO0FSQUJJQyBMRVRURVIgU0VFTiBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzM7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgU0VFTjs7OzsKK0ZFQjI7QVJBQklDIExFVFRFUiBTRUVOIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzMzs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgU0VFTjs7OzsKK0ZFQjM7QVJBQklDIExFVFRFUiBTRUVOIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzM7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgU0VFTjs7OzsKK0ZFQjQ7QVJBQklDIExFVFRFUiBTRUVOIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjMzOzs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgU0VFTjs7OzsKK0ZFQjU7QVJBQklDIExFVFRFUiBTSEVFTiBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzQ7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgU0hFRU47Ozs7CitGRUI2O0FSQUJJQyBMRVRURVIgU0hFRU4gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM0Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBTSEVFTjs7OzsKK0ZFQjc7QVJBQklDIExFVFRFUiBTSEVFTiBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjM0Ozs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIFNIRUVOOzs7OworRkVCODtBUkFCSUMgTEVUVEVSIFNIRUVOIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjM0Ozs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgU0hFRU47Ozs7CitGRUI5O0FSQUJJQyBMRVRURVIgU0FEIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzNTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBTQUQ7Ozs7CitGRUJBO0FSQUJJQyBMRVRURVIgU0FEIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzNTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgU0FEOzs7OworRkVCQjtBUkFCSUMgTEVUVEVSIFNBRCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjM1Ozs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIFNBRDs7OzsKK0ZFQkM7QVJBQklDIExFVFRFUiBTQUQgTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2MzU7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBTQUQ7Ozs7CitGRUJEO0FSQUJJQyBMRVRURVIgREFEIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzNjs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBEQUQ7Ozs7CitGRUJFO0FSQUJJQyBMRVRURVIgREFEIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzNjs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgREFEOzs7OworRkVCRjtBUkFCSUMgTEVUVEVSIERBRCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjM2Ozs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIERBRDs7OzsKK0ZFQzA7QVJBQklDIExFVFRFUiBEQUQgTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2MzY7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBEQUQ7Ozs7CitGRUMxO0FSQUJJQyBMRVRURVIgVEFIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzNzs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBUQUg7Ozs7CitGRUMyO0FSQUJJQyBMRVRURVIgVEFIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzNzs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgVEFIOzs7OworRkVDMztBUkFCSUMgTEVUVEVSIFRBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjM3Ozs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIFRBSDs7OzsKK0ZFQzQ7QVJBQklDIExFVFRFUiBUQUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2Mzc7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBUQUg7Ozs7CitGRUM1O0FSQUJJQyBMRVRURVIgWkFIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzODs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBESEFIOzs7OworRkVDNjtBUkFCSUMgTEVUVEVSIFpBSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2Mzg7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIERIQUg7Ozs7CitGRUM3O0FSQUJJQyBMRVRURVIgWkFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2Mzg7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgREhBSDs7OzsKK0ZFQzg7QVJBQklDIExFVFRFUiBaQUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2Mzg7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBESEFIOzs7OworRkVDOTtBUkFCSUMgTEVUVEVSIEFJTiBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2Mzk7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgQUlOOzs7OworRkVDQTtBUkFCSUMgTEVUVEVSIEFJTiBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2Mzk7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEFJTjs7OzsKK0ZFQ0I7QVJBQklDIExFVFRFUiBBSU4gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzOTs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBBSU47Ozs7CitGRUNDO0FSQUJJQyBMRVRURVIgQUlOIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjM5Ozs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgQUlOOzs7OworRkVDRDtBUkFCSUMgTEVUVEVSIEdIQUlOIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzQTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBHSEFJTjs7OzsKK0ZFQ0U7QVJBQklDIExFVFRFUiBHSEFJTiBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2M0E7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEdIQUlOOzs7OworRkVDRjtBUkFCSUMgTEVUVEVSIEdIQUlOIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2M0E7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgR0hBSU47Ozs7CitGRUQwO0FSQUJJQyBMRVRURVIgR0hBSU4gTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2M0E7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBHSEFJTjs7OzsKK0ZFRDE7QVJBQklDIExFVFRFUiBGRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQxOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEZBOzs7OworRkVEMjtBUkFCSUMgTEVUVEVSIEZFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDE7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEZBOzs7OworRkVEMztBUkFCSUMgTEVUVEVSIEZFSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQxOzs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIEZBOzs7OworRkVENDtBUkFCSUMgTEVUVEVSIEZFSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDY0MTs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIEZBOzs7OworRkVENTtBUkFCSUMgTEVUVEVSIFFBRiBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDI7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgUUFGOzs7OworRkVENjtBUkFCSUMgTEVUVEVSIFFBRiBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDI7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFFBRjs7OzsKK0ZFRDc7QVJBQklDIExFVFRFUiBRQUYgSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0Mjs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBRQUY7Ozs7CitGRUQ4O0FSQUJJQyBMRVRURVIgUUFGIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjQyOzs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgUUFGOzs7OworRkVEOTtBUkFCSUMgTEVUVEVSIEtBRiBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDM7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgQ0FGOzs7OworRkVEQTtBUkFCSUMgTEVUVEVSIEtBRiBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDM7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIENBRjs7OzsKK0ZFREI7QVJBQklDIExFVFRFUiBLQUYgSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0Mzs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBDQUY7Ozs7CitGRURDO0FSQUJJQyBMRVRURVIgS0FGIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjQzOzs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgQ0FGOzs7OworRkVERDtBUkFCSUMgTEVUVEVSIExBTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDQ7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgTEFNOzs7OworRkVERTtBUkFCSUMgTEVUVEVSIExBTSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDQ7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIExBTTs7OzsKK0ZFREY7QVJBQklDIExFVFRFUiBMQU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0NDs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBMQU07Ozs7CitGRUUwO0FSQUJJQyBMRVRURVIgTEFNIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjQ0Ozs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgTEFNOzs7OworRkVFMTtBUkFCSUMgTEVUVEVSIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQ1Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIE1FRU07Ozs7CitGRUUyO0FSQUJJQyBMRVRURVIgTUVFTSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDU7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIE1FRU07Ozs7CitGRUUzO0FSQUJJQyBMRVRURVIgTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ1Ozs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIE1FRU07Ozs7CitGRUU0O0FSQUJJQyBMRVRURVIgTUVFTSBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDY0NTs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIE1FRU07Ozs7CitGRUU1O0FSQUJJQyBMRVRURVIgTk9PTiBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDY7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgTk9PTjs7OzsKK0ZFRTY7QVJBQklDIExFVFRFUiBOT09OIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0Njs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgTk9PTjs7OzsKK0ZFRTc7QVJBQklDIExFVFRFUiBOT09OIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDY7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgTk9PTjs7OzsKK0ZFRTg7QVJBQklDIExFVFRFUiBOT09OIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjQ2Ozs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgTk9PTjs7OzsKK0ZFRTk7QVJBQklDIExFVFRFUiBIRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQ3Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEhBOzs7OworRkVFQTtBUkFCSUMgTEVUVEVSIEhFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDc7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEhBOzs7OworRkVFQjtBUkFCSUMgTEVUVEVSIEhFSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ3Ozs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIEhBOzs7OworRkVFQztBUkFCSUMgTEVUVEVSIEhFSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDY0Nzs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIEhBOzs7OworRkVFRDtBUkFCSUMgTEVUVEVSIFdBVyBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDg7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgV0FXOzs7OworRkVFRTtBUkFCSUMgTEVUVEVSIFdBVyBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDg7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFdBVzs7OzsKK0ZFRUY7QVJBQklDIExFVFRFUiBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQ5Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEFMRUYgTUFRU1VSQUg7Ozs7CitGRUYwO0FSQUJJQyBMRVRURVIgQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0OTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgQUxFRiBNQVFTVVJBSDs7OzsKK0ZFRjE7QVJBQklDIExFVFRFUiBZRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjRBOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFlBOzs7OworRkVGMjtBUkFCSUMgTEVUVEVSIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NEE7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFlBOzs7OworRkVGMztBUkFCSUMgTEVUVEVSIFlFSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjRBOzs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIFlBOzs7OworRkVGNDtBUkFCSUMgTEVUVEVSIFlFSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDY0QTs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIFlBOzs7OworRkVGNTtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggQUxFRiBXSVRIIE1BRERBIEFCT1ZFIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0NCAwNjIyOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIE1BRERBSCBPTiBMSUdBVFVSRSBMQU0gQUxFRjs7OzsKK0ZFRjY7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEFMRUYgV0lUSCBNQUREQSBBQk9WRSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDQgMDYyMjs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgTUFEREFIIE9OIExJR0FUVVJFIExBTSBBTEVGOzs7OworRkVGNztBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggQUxFRiBXSVRIIEhBTVpBIEFCT1ZFIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0NCAwNjIzOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEhBTVpBSCBPTiBMSUdBVFVSRSBMQU0gQUxFRjs7OzsKK0ZFRjg7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEFMRUYgV0lUSCBIQU1aQSBBQk9WRSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDQgMDYyMzs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgSEFNWkFIIE9OIExJR0FUVVJFIExBTSBBTEVGOzs7OworRkVGOTtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggQUxFRiBXSVRIIEhBTVpBIEJFTE9XIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0NCAwNjI1Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEhBTVpBSCBVTkRFUiBMSUdBVFVSRSBMQU0gQUxFRjs7OzsKK0ZFRkE7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEFMRUYgV0lUSCBIQU1aQSBCRUxPVyBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDQgMDYyNTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgSEFNWkFIIFVOREVSIExJR0FUVVJFIExBTSBBTEVGOzs7OworRkVGQjtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggQUxFRiBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDQgMDYyNzs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBMSUdBVFVSRSBMQU0gQUxFRjs7OzsKK0ZFRkM7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEFMRUYgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ0IDA2Mjc7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIExJR0FUVVJFIExBTSBBTEVGOzs7OworRkVGRjtaRVJPIFdJRFRIIE5PLUJSRUFLIFNQQUNFO0NmOzA7T047Ozs7O047QllURSBPUkRFUiBNQVJLOzs7OworRkYwMTtGVUxMV0lEVEggRVhDTEFNQVRJT04gTUFSSztQbzswO09OOzx3aWRlPiAwMDIxOzs7O047Ozs7OworRkYwMjtGVUxMV0lEVEggUVVPVEFUSU9OIE1BUks7UG87MDtPTjs8d2lkZT4gMDAyMjs7OztOOzs7OzsKK0ZGMDM7RlVMTFdJRFRIIE5VTUJFUiBTSUdOO1BvOzA7T047PHdpZGU+IDAwMjM7Ozs7Tjs7Ozs7CitGRjA0O0ZVTExXSURUSCBET0xMQVIgU0lHTjtTYzswO09OOzx3aWRlPiAwMDI0Ozs7O047Ozs7OworRkYwNTtGVUxMV0lEVEggUEVSQ0VOVCBTSUdOO1BvOzA7T047PHdpZGU+IDAwMjU7Ozs7Tjs7Ozs7CitGRjA2O0ZVTExXSURUSCBBTVBFUlNBTkQ7UG87MDtPTjs8d2lkZT4gMDAyNjs7OztOOzs7OzsKK0ZGMDc7RlVMTFdJRFRIIEFQT1NUUk9QSEU7UG87MDtPTjs8d2lkZT4gMDAyNzs7OztOOzs7OzsKK0ZGMDg7RlVMTFdJRFRIIExFRlQgUEFSRU5USEVTSVM7UHM7MDtPTjs8d2lkZT4gMDAyODs7OztOO0ZVTExXSURUSCBPUEVOSU5HIFBBUkVOVEhFU0lTOzs7OworRkYwOTtGVUxMV0lEVEggUklHSFQgUEFSRU5USEVTSVM7UGU7MDtPTjs8d2lkZT4gMDAyOTs7OztOO0ZVTExXSURUSCBDTE9TSU5HIFBBUkVOVEhFU0lTOzs7OworRkYwQTtGVUxMV0lEVEggQVNURVJJU0s7UG87MDtPTjs8d2lkZT4gMDAyQTs7OztOOzs7OzsKK0ZGMEI7RlVMTFdJRFRIIFBMVVMgU0lHTjtTbTswO09OOzx3aWRlPiAwMDJCOzs7O047Ozs7OworRkYwQztGVUxMV0lEVEggQ09NTUE7UG87MDtPTjs8d2lkZT4gMDAyQzs7OztOOzs7OzsKK0ZGMEQ7RlVMTFdJRFRIIEhZUEhFTi1NSU5VUztQZDswO09OOzx3aWRlPiAwMDJEOzs7O047Ozs7OworRkYwRTtGVUxMV0lEVEggRlVMTCBTVE9QO1BvOzA7T047PHdpZGU+IDAwMkU7Ozs7TjtGVUxMV0lEVEggUEVSSU9EOzs7OworRkYwRjtGVUxMV0lEVEggU09MSURVUztQbzswO09OOzx3aWRlPiAwMDJGOzs7O047RlVMTFdJRFRIIFNMQVNIOzs7OworRkYxMDtGVUxMV0lEVEggRElHSVQgWkVSTztOZDswO0VOOzx3aWRlPiAwMDMwOzA7MDswO047Ozs7OworRkYxMTtGVUxMV0lEVEggRElHSVQgT05FO05kOzA7RU47PHdpZGU+IDAwMzE7MTsxOzE7Tjs7Ozs7CitGRjEyO0ZVTExXSURUSCBESUdJVCBUV087TmQ7MDtFTjs8d2lkZT4gMDAzMjsyOzI7MjtOOzs7OzsKK0ZGMTM7RlVMTFdJRFRIIERJR0lUIFRIUkVFO05kOzA7RU47PHdpZGU+IDAwMzM7MzszOzM7Tjs7Ozs7CitGRjE0O0ZVTExXSURUSCBESUdJVCBGT1VSO05kOzA7RU47PHdpZGU+IDAwMzQ7NDs0OzQ7Tjs7Ozs7CitGRjE1O0ZVTExXSURUSCBESUdJVCBGSVZFO05kOzA7RU47PHdpZGU+IDAwMzU7NTs1OzU7Tjs7Ozs7CitGRjE2O0ZVTExXSURUSCBESUdJVCBTSVg7TmQ7MDtFTjs8d2lkZT4gMDAzNjs2OzY7NjtOOzs7OzsKK0ZGMTc7RlVMTFdJRFRIIERJR0lUIFNFVkVOO05kOzA7RU47PHdpZGU+IDAwMzc7Nzs3Ozc7Tjs7Ozs7CitGRjE4O0ZVTExXSURUSCBESUdJVCBFSUdIVDtOZDswO0VOOzx3aWRlPiAwMDM4Ozg7ODs4O047Ozs7OworRkYxOTtGVUxMV0lEVEggRElHSVQgTklORTtOZDswO0VOOzx3aWRlPiAwMDM5Ozk7OTs5O047Ozs7OworRkYxQTtGVUxMV0lEVEggQ09MT047UG87MDtPTjs8d2lkZT4gMDAzQTs7OztOOzs7OzsKK0ZGMUI7RlVMTFdJRFRIIFNFTUlDT0xPTjtQbzswO09OOzx3aWRlPiAwMDNCOzs7O047Ozs7OworRkYxQztGVUxMV0lEVEggTEVTUy1USEFOIFNJR047U207MDtPTjs8d2lkZT4gMDAzQzs7OztOOzs7OzsKK0ZGMUQ7RlVMTFdJRFRIIEVRVUFMUyBTSUdOO1NtOzA7T047PHdpZGU+IDAwM0Q7Ozs7Tjs7Ozs7CitGRjFFO0ZVTExXSURUSCBHUkVBVEVSLVRIQU4gU0lHTjtTbTswO09OOzx3aWRlPiAwMDNFOzs7O047Ozs7OworRkYxRjtGVUxMV0lEVEggUVVFU1RJT04gTUFSSztQbzswO09OOzx3aWRlPiAwMDNGOzs7O047Ozs7OworRkYyMDtGVUxMV0lEVEggQ09NTUVSQ0lBTCBBVDtQbzswO09OOzx3aWRlPiAwMDQwOzs7O047Ozs7OworRkYyMTtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgQTtMdTswO0w7PHdpZGU+IDAwNDE7Ozs7Tjs7OztGRjQxOworRkYyMjtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgQjtMdTswO0w7PHdpZGU+IDAwNDI7Ozs7Tjs7OztGRjQyOworRkYyMztGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgQztMdTswO0w7PHdpZGU+IDAwNDM7Ozs7Tjs7OztGRjQzOworRkYyNDtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgRDtMdTswO0w7PHdpZGU+IDAwNDQ7Ozs7Tjs7OztGRjQ0OworRkYyNTtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgRTtMdTswO0w7PHdpZGU+IDAwNDU7Ozs7Tjs7OztGRjQ1OworRkYyNjtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgRjtMdTswO0w7PHdpZGU+IDAwNDY7Ozs7Tjs7OztGRjQ2OworRkYyNztGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgRztMdTswO0w7PHdpZGU+IDAwNDc7Ozs7Tjs7OztGRjQ3OworRkYyODtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgSDtMdTswO0w7PHdpZGU+IDAwNDg7Ozs7Tjs7OztGRjQ4OworRkYyOTtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgSTtMdTswO0w7PHdpZGU+IDAwNDk7Ozs7Tjs7OztGRjQ5OworRkYyQTtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgSjtMdTswO0w7PHdpZGU+IDAwNEE7Ozs7Tjs7OztGRjRBOworRkYyQjtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgSztMdTswO0w7PHdpZGU+IDAwNEI7Ozs7Tjs7OztGRjRCOworRkYyQztGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgTDtMdTswO0w7PHdpZGU+IDAwNEM7Ozs7Tjs7OztGRjRDOworRkYyRDtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgTTtMdTswO0w7PHdpZGU+IDAwNEQ7Ozs7Tjs7OztGRjREOworRkYyRTtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgTjtMdTswO0w7PHdpZGU+IDAwNEU7Ozs7Tjs7OztGRjRFOworRkYyRjtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgTztMdTswO0w7PHdpZGU+IDAwNEY7Ozs7Tjs7OztGRjRGOworRkYzMDtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgUDtMdTswO0w7PHdpZGU+IDAwNTA7Ozs7Tjs7OztGRjUwOworRkYzMTtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgUTtMdTswO0w7PHdpZGU+IDAwNTE7Ozs7Tjs7OztGRjUxOworRkYzMjtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgUjtMdTswO0w7PHdpZGU+IDAwNTI7Ozs7Tjs7OztGRjUyOworRkYzMztGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgUztMdTswO0w7PHdpZGU+IDAwNTM7Ozs7Tjs7OztGRjUzOworRkYzNDtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgVDtMdTswO0w7PHdpZGU+IDAwNTQ7Ozs7Tjs7OztGRjU0OworRkYzNTtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgVTtMdTswO0w7PHdpZGU+IDAwNTU7Ozs7Tjs7OztGRjU1OworRkYzNjtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgVjtMdTswO0w7PHdpZGU+IDAwNTY7Ozs7Tjs7OztGRjU2OworRkYzNztGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgVztMdTswO0w7PHdpZGU+IDAwNTc7Ozs7Tjs7OztGRjU3OworRkYzODtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgWDtMdTswO0w7PHdpZGU+IDAwNTg7Ozs7Tjs7OztGRjU4OworRkYzOTtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgWTtMdTswO0w7PHdpZGU+IDAwNTk7Ozs7Tjs7OztGRjU5OworRkYzQTtGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgWjtMdTswO0w7PHdpZGU+IDAwNUE7Ozs7Tjs7OztGRjVBOworRkYzQjtGVUxMV0lEVEggTEVGVCBTUVVBUkUgQlJBQ0tFVDtQczswO09OOzx3aWRlPiAwMDVCOzs7O047RlVMTFdJRFRIIE9QRU5JTkcgU1FVQVJFIEJSQUNLRVQ7Ozs7CitGRjNDO0ZVTExXSURUSCBSRVZFUlNFIFNPTElEVVM7UG87MDtPTjs8d2lkZT4gMDA1Qzs7OztOO0ZVTExXSURUSCBCQUNLU0xBU0g7Ozs7CitGRjNEO0ZVTExXSURUSCBSSUdIVCBTUVVBUkUgQlJBQ0tFVDtQZTswO09OOzx3aWRlPiAwMDVEOzs7O047RlVMTFdJRFRIIENMT1NJTkcgU1FVQVJFIEJSQUNLRVQ7Ozs7CitGRjNFO0ZVTExXSURUSCBDSVJDVU1GTEVYIEFDQ0VOVDtTazswO09OOzx3aWRlPiAwMDVFOzs7O047RlVMTFdJRFRIIFNQQUNJTkcgQ0lSQ1VNRkxFWDs7OzsKK0ZGM0Y7RlVMTFdJRFRIIExPVyBMSU5FO1BjOzA7T047PHdpZGU+IDAwNUY7Ozs7TjtGVUxMV0lEVEggU1BBQ0lORyBVTkRFUlNDT1JFOzs7OworRkY0MDtGVUxMV0lEVEggR1JBVkUgQUNDRU5UO1NrOzA7T047PHdpZGU+IDAwNjA7Ozs7TjtGVUxMV0lEVEggU1BBQ0lORyBHUkFWRTs7OzsKK0ZGNDE7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBBO0xsOzA7TDs8d2lkZT4gMDA2MTs7OztOOzs7RkYyMTs7RkYyMQorRkY0MjtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEI7TGw7MDtMOzx3aWRlPiAwMDYyOzs7O047OztGRjIyOztGRjIyCitGRjQzO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgQztMbDswO0w7PHdpZGU+IDAwNjM7Ozs7Tjs7O0ZGMjM7O0ZGMjMKK0ZGNDQ7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBEO0xsOzA7TDs8d2lkZT4gMDA2NDs7OztOOzs7RkYyNDs7RkYyNAorRkY0NTtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEU7TGw7MDtMOzx3aWRlPiAwMDY1Ozs7O047OztGRjI1OztGRjI1CitGRjQ2O0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgRjtMbDswO0w7PHdpZGU+IDAwNjY7Ozs7Tjs7O0ZGMjY7O0ZGMjYKK0ZGNDc7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBHO0xsOzA7TDs8d2lkZT4gMDA2Nzs7OztOOzs7RkYyNzs7RkYyNworRkY0ODtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEg7TGw7MDtMOzx3aWRlPiAwMDY4Ozs7O047OztGRjI4OztGRjI4CitGRjQ5O0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgSTtMbDswO0w7PHdpZGU+IDAwNjk7Ozs7Tjs7O0ZGMjk7O0ZGMjkKK0ZGNEE7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBKO0xsOzA7TDs8d2lkZT4gMDA2QTs7OztOOzs7RkYyQTs7RkYyQQorRkY0QjtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEs7TGw7MDtMOzx3aWRlPiAwMDZCOzs7O047OztGRjJCOztGRjJCCitGRjRDO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgTDtMbDswO0w7PHdpZGU+IDAwNkM7Ozs7Tjs7O0ZGMkM7O0ZGMkMKK0ZGNEQ7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBNO0xsOzA7TDs8d2lkZT4gMDA2RDs7OztOOzs7RkYyRDs7RkYyRAorRkY0RTtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIE47TGw7MDtMOzx3aWRlPiAwMDZFOzs7O047OztGRjJFOztGRjJFCitGRjRGO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgTztMbDswO0w7PHdpZGU+IDAwNkY7Ozs7Tjs7O0ZGMkY7O0ZGMkYKK0ZGNTA7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBQO0xsOzA7TDs8d2lkZT4gMDA3MDs7OztOOzs7RkYzMDs7RkYzMAorRkY1MTtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIFE7TGw7MDtMOzx3aWRlPiAwMDcxOzs7O047OztGRjMxOztGRjMxCitGRjUyO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgUjtMbDswO0w7PHdpZGU+IDAwNzI7Ozs7Tjs7O0ZGMzI7O0ZGMzIKK0ZGNTM7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBTO0xsOzA7TDs8d2lkZT4gMDA3Mzs7OztOOzs7RkYzMzs7RkYzMworRkY1NDtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIFQ7TGw7MDtMOzx3aWRlPiAwMDc0Ozs7O047OztGRjM0OztGRjM0CitGRjU1O0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgVTtMbDswO0w7PHdpZGU+IDAwNzU7Ozs7Tjs7O0ZGMzU7O0ZGMzUKK0ZGNTY7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBWO0xsOzA7TDs8d2lkZT4gMDA3Njs7OztOOzs7RkYzNjs7RkYzNgorRkY1NztGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIFc7TGw7MDtMOzx3aWRlPiAwMDc3Ozs7O047OztGRjM3OztGRjM3CitGRjU4O0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgWDtMbDswO0w7PHdpZGU+IDAwNzg7Ozs7Tjs7O0ZGMzg7O0ZGMzgKK0ZGNTk7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBZO0xsOzA7TDs8d2lkZT4gMDA3OTs7OztOOzs7RkYzOTs7RkYzOQorRkY1QTtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIFo7TGw7MDtMOzx3aWRlPiAwMDdBOzs7O047OztGRjNBOztGRjNBCitGRjVCO0ZVTExXSURUSCBMRUZUIENVUkxZIEJSQUNLRVQ7UHM7MDtPTjs8d2lkZT4gMDA3Qjs7OztOO0ZVTExXSURUSCBPUEVOSU5HIENVUkxZIEJSQUNLRVQ7Ozs7CitGRjVDO0ZVTExXSURUSCBWRVJUSUNBTCBMSU5FO1NtOzA7T047PHdpZGU+IDAwN0M7Ozs7TjtGVUxMV0lEVEggVkVSVElDQUwgQkFSOzs7OworRkY1RDtGVUxMV0lEVEggUklHSFQgQ1VSTFkgQlJBQ0tFVDtQZTswO09OOzx3aWRlPiAwMDdEOzs7O047RlVMTFdJRFRIIENMT1NJTkcgQ1VSTFkgQlJBQ0tFVDs7OzsKK0ZGNUU7RlVMTFdJRFRIIFRJTERFO1NtOzA7T047PHdpZGU+IDAwN0U7Ozs7TjtGVUxMV0lEVEggU1BBQ0lORyBUSUxERTs7OzsKK0ZGNjE7SEFMRldJRFRIIElERU9HUkFQSElDIEZVTEwgU1RPUDtQbzswO09OOzxuYXJyb3c+IDMwMDI7Ozs7TjtIQUxGV0lEVEggSURFT0dSQVBISUMgUEVSSU9EOzs7OworRkY2MjtIQUxGV0lEVEggTEVGVCBDT1JORVIgQlJBQ0tFVDtQczswO09OOzxuYXJyb3c+IDMwMEM7Ozs7TjtIQUxGV0lEVEggT1BFTklORyBDT1JORVIgQlJBQ0tFVDs7OzsKK0ZGNjM7SEFMRldJRFRIIFJJR0hUIENPUk5FUiBCUkFDS0VUO1BlOzA7T047PG5hcnJvdz4gMzAwRDs7OztOO0hBTEZXSURUSCBDTE9TSU5HIENPUk5FUiBCUkFDS0VUOzs7OworRkY2NDtIQUxGV0lEVEggSURFT0dSQVBISUMgQ09NTUE7UG87MDtPTjs8bmFycm93PiAzMDAxOzs7O047Ozs7OworRkY2NTtIQUxGV0lEVEggS0FUQUtBTkEgTUlERExFIERPVDtQbzswO0w7PG5hcnJvdz4gMzBGQjs7OztOOzs7OzsKK0ZGNjY7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBXTztMbzswO0w7PG5hcnJvdz4gMzBGMjs7OztOOzs7OzsKK0ZGNjc7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTUFMTCBBO0xvOzA7TDs8bmFycm93PiAzMEExOzs7O047Ozs7OworRkY2ODtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFNNQUxMIEk7TG87MDtMOzxuYXJyb3c+IDMwQTM7Ozs7Tjs7Ozs7CitGRjY5O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU01BTEwgVTtMbzswO0w7PG5hcnJvdz4gMzBBNTs7OztOOzs7OzsKK0ZGNkE7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTUFMTCBFO0xvOzA7TDs8bmFycm93PiAzMEE3Ozs7O047Ozs7OworRkY2QjtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFNNQUxMIE87TG87MDtMOzxuYXJyb3c+IDMwQTk7Ozs7Tjs7Ozs7CitGRjZDO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU01BTEwgWUE7TG87MDtMOzxuYXJyb3c+IDMwRTM7Ozs7Tjs7Ozs7CitGRjZEO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU01BTEwgWVU7TG87MDtMOzxuYXJyb3c+IDMwRTU7Ozs7Tjs7Ozs7CitGRjZFO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU01BTEwgWU87TG87MDtMOzxuYXJyb3c+IDMwRTc7Ozs7Tjs7Ozs7CitGRjZGO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU01BTEwgVFU7TG87MDtMOzxuYXJyb3c+IDMwQzM7Ozs7Tjs7Ozs7CitGRjcwO0hBTEZXSURUSCBLQVRBS0FOQS1ISVJBR0FOQSBQUk9MT05HRUQgU09VTkQgTUFSSztMbTswO0w7PG5hcnJvdz4gMzBGQzs7OztOOzs7OzsKK0ZGNzE7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBBO0xvOzA7TDs8bmFycm93PiAzMEEyOzs7O047Ozs7OworRkY3MjtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIEk7TG87MDtMOzxuYXJyb3c+IDMwQTQ7Ozs7Tjs7Ozs7CitGRjczO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgVTtMbzswO0w7PG5hcnJvdz4gMzBBNjs7OztOOzs7OzsKK0ZGNzQ7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBFO0xvOzA7TDs8bmFycm93PiAzMEE4Ozs7O047Ozs7OworRkY3NTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIE87TG87MDtMOzxuYXJyb3c+IDMwQUE7Ozs7Tjs7Ozs7CitGRjc2O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgS0E7TG87MDtMOzxuYXJyb3c+IDMwQUI7Ozs7Tjs7Ozs7CitGRjc3O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgS0k7TG87MDtMOzxuYXJyb3c+IDMwQUQ7Ozs7Tjs7Ozs7CitGRjc4O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgS1U7TG87MDtMOzxuYXJyb3c+IDMwQUY7Ozs7Tjs7Ozs7CitGRjc5O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgS0U7TG87MDtMOzxuYXJyb3c+IDMwQjE7Ozs7Tjs7Ozs7CitGRjdBO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgS087TG87MDtMOzxuYXJyb3c+IDMwQjM7Ozs7Tjs7Ozs7CitGRjdCO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU0E7TG87MDtMOzxuYXJyb3c+IDMwQjU7Ozs7Tjs7Ozs7CitGRjdDO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU0k7TG87MDtMOzxuYXJyb3c+IDMwQjc7Ozs7Tjs7Ozs7CitGRjdEO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU1U7TG87MDtMOzxuYXJyb3c+IDMwQjk7Ozs7Tjs7Ozs7CitGRjdFO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU0U7TG87MDtMOzxuYXJyb3c+IDMwQkI7Ozs7Tjs7Ozs7CitGRjdGO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU087TG87MDtMOzxuYXJyb3c+IDMwQkQ7Ozs7Tjs7Ozs7CitGRjgwO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgVEE7TG87MDtMOzxuYXJyb3c+IDMwQkY7Ozs7Tjs7Ozs7CitGRjgxO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgVEk7TG87MDtMOzxuYXJyb3c+IDMwQzE7Ozs7Tjs7Ozs7CitGRjgyO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgVFU7TG87MDtMOzxuYXJyb3c+IDMwQzQ7Ozs7Tjs7Ozs7CitGRjgzO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgVEU7TG87MDtMOzxuYXJyb3c+IDMwQzY7Ozs7Tjs7Ozs7CitGRjg0O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgVE87TG87MDtMOzxuYXJyb3c+IDMwQzg7Ozs7Tjs7Ozs7CitGRjg1O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTkE7TG87MDtMOzxuYXJyb3c+IDMwQ0E7Ozs7Tjs7Ozs7CitGRjg2O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTkk7TG87MDtMOzxuYXJyb3c+IDMwQ0I7Ozs7Tjs7Ozs7CitGRjg3O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTlU7TG87MDtMOzxuYXJyb3c+IDMwQ0M7Ozs7Tjs7Ozs7CitGRjg4O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTkU7TG87MDtMOzxuYXJyb3c+IDMwQ0Q7Ozs7Tjs7Ozs7CitGRjg5O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTk87TG87MDtMOzxuYXJyb3c+IDMwQ0U7Ozs7Tjs7Ozs7CitGRjhBO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgSEE7TG87MDtMOzxuYXJyb3c+IDMwQ0Y7Ozs7Tjs7Ozs7CitGRjhCO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgSEk7TG87MDtMOzxuYXJyb3c+IDMwRDI7Ozs7Tjs7Ozs7CitGRjhDO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgSFU7TG87MDtMOzxuYXJyb3c+IDMwRDU7Ozs7Tjs7Ozs7CitGRjhEO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgSEU7TG87MDtMOzxuYXJyb3c+IDMwRDg7Ozs7Tjs7Ozs7CitGRjhFO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgSE87TG87MDtMOzxuYXJyb3c+IDMwREI7Ozs7Tjs7Ozs7CitGRjhGO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTUE7TG87MDtMOzxuYXJyb3c+IDMwREU7Ozs7Tjs7Ozs7CitGRjkwO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTUk7TG87MDtMOzxuYXJyb3c+IDMwREY7Ozs7Tjs7Ozs7CitGRjkxO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTVU7TG87MDtMOzxuYXJyb3c+IDMwRTA7Ozs7Tjs7Ozs7CitGRjkyO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTUU7TG87MDtMOzxuYXJyb3c+IDMwRTE7Ozs7Tjs7Ozs7CitGRjkzO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTU87TG87MDtMOzxuYXJyb3c+IDMwRTI7Ozs7Tjs7Ozs7CitGRjk0O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgWUE7TG87MDtMOzxuYXJyb3c+IDMwRTQ7Ozs7Tjs7Ozs7CitGRjk1O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgWVU7TG87MDtMOzxuYXJyb3c+IDMwRTY7Ozs7Tjs7Ozs7CitGRjk2O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgWU87TG87MDtMOzxuYXJyb3c+IDMwRTg7Ozs7Tjs7Ozs7CitGRjk3O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgUkE7TG87MDtMOzxuYXJyb3c+IDMwRTk7Ozs7Tjs7Ozs7CitGRjk4O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgUkk7TG87MDtMOzxuYXJyb3c+IDMwRUE7Ozs7Tjs7Ozs7CitGRjk5O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgUlU7TG87MDtMOzxuYXJyb3c+IDMwRUI7Ozs7Tjs7Ozs7CitGRjlBO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgUkU7TG87MDtMOzxuYXJyb3c+IDMwRUM7Ozs7Tjs7Ozs7CitGRjlCO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgUk87TG87MDtMOzxuYXJyb3c+IDMwRUQ7Ozs7Tjs7Ozs7CitGRjlDO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgV0E7TG87MDtMOzxuYXJyb3c+IDMwRUY7Ozs7Tjs7Ozs7CitGRjlEO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTjtMbzswO0w7PG5hcnJvdz4gMzBGMzs7OztOOzs7OzsKK0ZGOUU7SEFMRldJRFRIIEtBVEFLQU5BIFZPSUNFRCBTT1VORCBNQVJLO0xtOzA7TDs8bmFycm93PiAzMDlCOzs7O047Ozs7OworRkY5RjtIQUxGV0lEVEggS0FUQUtBTkEgU0VNSS1WT0lDRUQgU09VTkQgTUFSSztMbTswO0w7PG5hcnJvdz4gMzA5Qzs7OztOOzs7OzsKK0ZGQTA7SEFMRldJRFRIIEhBTkdVTCBGSUxMRVI7TG87MDtMOzxuYXJyb3c+IDMxNjQ7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIENBRSBPTTs7OzsKK0ZGQTE7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgS0lZRU9LO0xvOzA7TDs8bmFycm93PiAzMTMxOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgR0lZRU9HOzs7OworRkZBMjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBTU0FOR0tJWUVPSztMbzswO0w7PG5hcnJvdz4gMzEzMjs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFNTQU5HIEdJWUVPRzs7OzsKK0ZGQTM7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgS0lZRU9LLVNJT1M7TG87MDtMOzxuYXJyb3c+IDMxMzM7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBHSVlFT0cgU0lPUzs7OzsKK0ZGQTQ7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTklFVU47TG87MDtMOzxuYXJyb3c+IDMxMzQ7Ozs7Tjs7Ozs7CitGRkE1O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIE5JRVVOLUNJRVVDO0xvOzA7TDs8bmFycm93PiAzMTM1Ozs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTklFVU4gSklFVUo7Ozs7CitGRkE2O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIE5JRVVOLUhJRVVIO0xvOzA7TDs8bmFycm93PiAzMTM2Ozs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTklFVU4gSElFVUg7Ozs7CitGRkE3O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFRJS0VVVDtMbzswO0w7PG5hcnJvdz4gMzEzNzs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIERJR0VVRDs7OzsKK0ZGQTg7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU1NBTkdUSUtFVVQ7TG87MDtMOzxuYXJyb3c+IDMxMzg7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBTU0FORyBESUdFVUQ7Ozs7CitGRkE5O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFJJRVVMO0xvOzA7TDs8bmFycm93PiAzMTM5Ozs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTElFVUw7Ozs7CitGRkFBO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFJJRVVMLUtJWUVPSztMbzswO0w7PG5hcnJvdz4gMzEzQTs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIExJRVVMIEdJWUVPRzs7OzsKK0ZGQUI7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUklFVUwtTUlFVU07TG87MDtMOzxuYXJyb3c+IDMxM0I7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBMSUVVTCBNSUVVTTs7OzsKK0ZGQUM7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUklFVUwtUElFVVA7TG87MDtMOzxuYXJyb3c+IDMxM0M7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBMSUVVTCBCSUVVQjs7OzsKK0ZGQUQ7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUklFVUwtU0lPUztMbzswO0w7PG5hcnJvdz4gMzEzRDs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIExJRVVMIFNJT1M7Ozs7CitGRkFFO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFJJRVVMLVRISUVVVEg7TG87MDtMOzxuYXJyb3c+IDMxM0U7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBMSUVVTCBUSUVVVDs7OzsKK0ZGQUY7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUklFVUwtUEhJRVVQSDtMbzswO0w7PG5hcnJvdz4gMzEzRjs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIExJRVVMIFBJRVVQOzs7OworRkZCMDtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBSSUVVTC1ISUVVSDtMbzswO0w7PG5hcnJvdz4gMzE0MDs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIExJRVVMIEhJRVVIOzs7OworRkZCMTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBNSUVVTTtMbzswO0w7PG5hcnJvdz4gMzE0MTs7OztOOzs7OzsKK0ZGQjI7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUElFVVA7TG87MDtMOzxuYXJyb3c+IDMxNDI7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBCSUVVQjs7OzsKK0ZGQjM7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU1NBTkdQSUVVUDtMbzswO0w7PG5hcnJvdz4gMzE0Mzs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFNTQU5HIEJJRVVCOzs7OworRkZCNDtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBQSUVVUC1TSU9TO0xvOzA7TDs8bmFycm93PiAzMTQ0Ozs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgQklFVUIgU0lPUzs7OzsKK0ZGQjU7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU0lPUztMbzswO0w7PG5hcnJvdz4gMzE0NTs7OztOOzs7OzsKK0ZGQjY7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU1NBTkdTSU9TO0xvOzA7TDs8bmFycm93PiAzMTQ2Ozs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU1NBTkcgU0lPUzs7OzsKK0ZGQjc7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgSUVVTkc7TG87MDtMOzxuYXJyb3c+IDMxNDc7Ozs7Tjs7Ozs7CitGRkI4O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIENJRVVDO0xvOzA7TDs8bmFycm93PiAzMTQ4Ozs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgSklFVUo7Ozs7CitGRkI5O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFNTQU5HQ0lFVUM7TG87MDtMOzxuYXJyb3c+IDMxNDk7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBTU0FORyBKSUVVSjs7OzsKK0ZGQkE7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgQ0hJRVVDSDtMbzswO0w7PG5hcnJvdz4gMzE0QTs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIENJRVVDOzs7OworRkZCQjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBLSElFVUtIO0xvOzA7TDs8bmFycm93PiAzMTRCOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgS0lZRU9LOzs7OworRkZCQztIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBUSElFVVRIO0xvOzA7TDs8bmFycm93PiAzMTRDOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgVElFVVQ7Ozs7CitGRkJEO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFBISUVVUEg7TG87MDtMOzxuYXJyb3c+IDMxNEQ7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBQSUVVUDs7OzsKK0ZGQkU7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgSElFVUg7TG87MDtMOzxuYXJyb3c+IDMxNEU7Ozs7Tjs7Ozs7CitGRkMyO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEE7TG87MDtMOzxuYXJyb3c+IDMxNEY7Ozs7Tjs7Ozs7CitGRkMzO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEFFO0xvOzA7TDs8bmFycm93PiAzMTUwOzs7O047Ozs7OworRkZDNDtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBZQTtMbzswO0w7PG5hcnJvdz4gMzE1MTs7OztOOzs7OzsKK0ZGQzU7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgWUFFO0xvOzA7TDs8bmFycm93PiAzMTUyOzs7O047Ozs7OworRkZDNjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBFTztMbzswO0w7PG5hcnJvdz4gMzE1Mzs7OztOOzs7OzsKK0ZGQzc7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgRTtMbzswO0w7PG5hcnJvdz4gMzE1NDs7OztOOzs7OzsKK0ZGQ0E7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgWUVPO0xvOzA7TDs8bmFycm93PiAzMTU1Ozs7O047Ozs7OworRkZDQjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBZRTtMbzswO0w7PG5hcnJvdz4gMzE1Njs7OztOOzs7OzsKK0ZGQ0M7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTztMbzswO0w7PG5hcnJvdz4gMzE1Nzs7OztOOzs7OzsKK0ZGQ0Q7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgV0E7TG87MDtMOzxuYXJyb3c+IDMxNTg7Ozs7Tjs7Ozs7CitGRkNFO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFdBRTtMbzswO0w7PG5hcnJvdz4gMzE1OTs7OztOOzs7OzsKK0ZGQ0Y7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgT0U7TG87MDtMOzxuYXJyb3c+IDMxNUE7Ozs7Tjs7Ozs7CitGRkQyO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFlPO0xvOzA7TDs8bmFycm93PiAzMTVCOzs7O047Ozs7OworRkZEMztIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBVO0xvOzA7TDs8bmFycm93PiAzMTVDOzs7O047Ozs7OworRkZENDtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBXRU87TG87MDtMOzxuYXJyb3c+IDMxNUQ7Ozs7Tjs7Ozs7CitGRkQ1O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFdFO0xvOzA7TDs8bmFycm93PiAzMTVFOzs7O047Ozs7OworRkZENjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBXSTtMbzswO0w7PG5hcnJvdz4gMzE1Rjs7OztOOzs7OzsKK0ZGRDc7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgWVU7TG87MDtMOzxuYXJyb3c+IDMxNjA7Ozs7Tjs7Ozs7CitGRkRBO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEVVO0xvOzA7TDs8bmFycm93PiAzMTYxOzs7O047Ozs7OworRkZEQjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBZSTtMbzswO0w7PG5hcnJvdz4gMzE2Mjs7OztOOzs7OzsKK0ZGREM7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgSTtMbzswO0w7PG5hcnJvdz4gMzE2Mzs7OztOOzs7OzsKK0ZGRTA7RlVMTFdJRFRIIENFTlQgU0lHTjtTYzswO09OOzx3aWRlPiAwMEEyOzs7O047Ozs7OworRkZFMTtGVUxMV0lEVEggUE9VTkQgU0lHTjtTYzswO09OOzx3aWRlPiAwMEEzOzs7O047Ozs7OworRkZFMjtGVUxMV0lEVEggTk9UIFNJR047U207MDtPTjs8d2lkZT4gMDBBQzs7OztOOzs7OzsKK0ZGRTM7RlVMTFdJRFRIIE1BQ1JPTjtTazswO09OOzx3aWRlPiAwMEFGOzs7O047RlVMTFdJRFRIIFNQQUNJTkcgTUFDUk9OOzs7OworRkZFNDtGVUxMV0lEVEggQlJPS0VOIEJBUjtTbzswO09OOzx3aWRlPiAwMEE2Ozs7O047RlVMTFdJRFRIIEJST0tFTiBWRVJUSUNBTCBCQVI7Ozs7CitGRkU1O0ZVTExXSURUSCBZRU4gU0lHTjtTYzswO09OOzx3aWRlPiAwMEE1Ozs7O047Ozs7OworRkZFNjtGVUxMV0lEVEggV09OIFNJR047U2M7MDtPTjs8d2lkZT4gMjBBOTs7OztOOzs7OzsKK0ZGRTg7SEFMRldJRFRIIEZPUk1TIExJR0hUIFZFUlRJQ0FMO1NtOzA7T047PG5hcnJvdz4gMjUwMjs7OztOOzs7OzsKK0ZGRTk7SEFMRldJRFRIIExFRlRXQVJEUyBBUlJPVztTbTswO09OOzxuYXJyb3c+IDIxOTA7Ozs7Tjs7Ozs7CitGRkVBO0hBTEZXSURUSCBVUFdBUkRTIEFSUk9XO1NtOzA7T047PG5hcnJvdz4gMjE5MTs7OztOOzs7OzsKK0ZGRUI7SEFMRldJRFRIIFJJR0hUV0FSRFMgQVJST1c7U207MDtPTjs8bmFycm93PiAyMTkyOzs7O047Ozs7OworRkZFQztIQUxGV0lEVEggRE9XTldBUkRTIEFSUk9XO1NtOzA7T047PG5hcnJvdz4gMjE5Mzs7OztOOzs7OzsKK0ZGRUQ7SEFMRldJRFRIIEJMQUNLIFNRVUFSRTtTbzswO09OOzxuYXJyb3c+IDI1QTA7Ozs7Tjs7Ozs7CitGRkVFO0hBTEZXSURUSCBXSElURSBDSVJDTEU7U287MDtPTjs8bmFycm93PiAyNUNCOzs7O047Ozs7OworRkZGQztPQkpFQ1QgUkVQTEFDRU1FTlQgQ0hBUkFDVEVSO1NvOzA7T047Ozs7O047Ozs7OworRkZGRDtSRVBMQUNFTUVOVCBDSEFSQUNURVI7U287MDtPTjs7Ozs7Tjs7Ozs7CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9Vbmljb2RlRGF0YS0yLjEuNS50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9Vbmljb2RlRGF0YS0yLjEuNS50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGU0ZTYyOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL1VuaWNvZGVEYXRhLTIuMS41LnR4dApAQCAtMCwwICsxLDY4OTAgQEAKKzAwMDA7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047TlVMTDs7OzsKKzAwMDE7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047U1RBUlQgT0YgSEVBRElORzs7OzsKKzAwMDI7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047U1RBUlQgT0YgVEVYVDs7OzsKKzAwMDM7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047RU5EIE9GIFRFWFQ7Ozs7CiswMDA0Ozxjb250cm9sPjtDYzswO09OOzs7OztOO0VORCBPRiBUUkFOU01JU1NJT047Ozs7CiswMDA1Ozxjb250cm9sPjtDYzswO09OOzs7OztOO0VOUVVJUlk7Ozs7CiswMDA2Ozxjb250cm9sPjtDYzswO09OOzs7OztOO0FDS05PV0xFREdFOzs7OworMDAwNzs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7TjtCRUxMOzs7OworMDAwODs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7TjtCQUNLU1BBQ0U7Ozs7CiswMDA5Ozxjb250cm9sPjtDYzswO1M7Ozs7O047SE9SSVpPTlRBTCBUQUJVTEFUSU9OOzs7OworMDAwQTs8Y29udHJvbD47Q2M7MDtCOzs7OztOO0xJTkUgRkVFRDs7OzsKKzAwMEI7PGNvbnRyb2w+O0NjOzA7Uzs7Ozs7TjtWRVJUSUNBTCBUQUJVTEFUSU9OOzs7OworMDAwQzs8Y29udHJvbD47Q2M7MDtCOzs7OztOO0ZPUk0gRkVFRDs7OzsKKzAwMEQ7PGNvbnRyb2w+O0NjOzA7Qjs7Ozs7TjtDQVJSSUFHRSBSRVRVUk47Ozs7CiswMDBFOzxjb250cm9sPjtDYzswO09OOzs7OztOO1NISUZUIE9VVDs7OzsKKzAwMEY7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047U0hJRlQgSU47Ozs7CiswMDEwOzxjb250cm9sPjtDYzswO09OOzs7OztOO0RBVEEgTElOSyBFU0NBUEU7Ozs7CiswMDExOzxjb250cm9sPjtDYzswO09OOzs7OztOO0RFVklDRSBDT05UUk9MIE9ORTs7OzsKKzAwMTI7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047REVWSUNFIENPTlRST0wgVFdPOzs7OworMDAxMzs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7TjtERVZJQ0UgQ09OVFJPTCBUSFJFRTs7OzsKKzAwMTQ7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047REVWSUNFIENPTlRST0wgRk9VUjs7OzsKKzAwMTU7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047TkVHQVRJVkUgQUNLTk9XTEVER0U7Ozs7CiswMDE2Ozxjb250cm9sPjtDYzswO09OOzs7OztOO1NZTkNIUk9OT1VTIElETEU7Ozs7CiswMDE3Ozxjb250cm9sPjtDYzswO09OOzs7OztOO0VORCBPRiBUUkFOU01JU1NJT04gQkxPQ0s7Ozs7CiswMDE4Ozxjb250cm9sPjtDYzswO09OOzs7OztOO0NBTkNFTDs7OzsKKzAwMTk7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047RU5EIE9GIE1FRElVTTs7OzsKKzAwMUE7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047U1VCU1RJVFVURTs7OzsKKzAwMUI7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047RVNDQVBFOzs7OworMDAxQzs8Y29udHJvbD47Q2M7MDtCOzs7OztOO0ZJTEUgU0VQQVJBVE9SOzs7OworMDAxRDs8Y29udHJvbD47Q2M7MDtCOzs7OztOO0dST1VQIFNFUEFSQVRPUjs7OzsKKzAwMUU7PGNvbnRyb2w+O0NjOzA7Qjs7Ozs7TjtSRUNPUkQgU0VQQVJBVE9SOzs7OworMDAxRjs8Y29udHJvbD47Q2M7MDtTOzs7OztOO1VOSVQgU0VQQVJBVE9SOzs7OworMDAyMDtTUEFDRTtaczswO1dTOzs7OztOOzs7OzsKKzAwMjE7RVhDTEFNQVRJT04gTUFSSztQbzswO09OOzs7OztOOzs7OzsKKzAwMjI7UVVPVEFUSU9OIE1BUks7UG87MDtPTjs7Ozs7Tjs7Ozs7CiswMDIzO05VTUJFUiBTSUdOO1BvOzA7RVQ7Ozs7O047Ozs7OworMDAyNDtET0xMQVIgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzAwMjU7UEVSQ0VOVCBTSUdOO1BvOzA7RVQ7Ozs7O047Ozs7OworMDAyNjtBTVBFUlNBTkQ7UG87MDtPTjs7Ozs7Tjs7Ozs7CiswMDI3O0FQT1NUUk9QSEU7UG87MDtPTjs7Ozs7TjtBUE9TVFJPUEhFLVFVT1RFOzs7OworMDAyODtMRUZUIFBBUkVOVEhFU0lTO1BzOzA7T047Ozs7O1k7T1BFTklORyBQQVJFTlRIRVNJUzs7OzsKKzAwMjk7UklHSFQgUEFSRU5USEVTSVM7UGU7MDtPTjs7Ozs7WTtDTE9TSU5HIFBBUkVOVEhFU0lTOzs7OworMDAyQTtBU1RFUklTSztQbzswO09OOzs7OztOOzs7OzsKKzAwMkI7UExVUyBTSUdOO1NtOzA7RVQ7Ozs7O047Ozs7OworMDAyQztDT01NQTtQbzswO0NTOzs7OztOOzs7OzsKKzAwMkQ7SFlQSEVOLU1JTlVTO1BkOzA7RVQ7Ozs7O047Ozs7OworMDAyRTtGVUxMIFNUT1A7UG87MDtDUzs7Ozs7TjtQRVJJT0Q7Ozs7CiswMDJGO1NPTElEVVM7UG87MDtFUzs7Ozs7TjtTTEFTSDs7OzsKKzAwMzA7RElHSVQgWkVSTztOZDswO0VOOzswOzA7MDtOOzs7OzsKKzAwMzE7RElHSVQgT05FO05kOzA7RU47OzE7MTsxO047Ozs7OworMDAzMjtESUdJVCBUV087TmQ7MDtFTjs7MjsyOzI7Tjs7Ozs7CiswMDMzO0RJR0lUIFRIUkVFO05kOzA7RU47OzM7MzszO047Ozs7OworMDAzNDtESUdJVCBGT1VSO05kOzA7RU47OzQ7NDs0O047Ozs7OworMDAzNTtESUdJVCBGSVZFO05kOzA7RU47OzU7NTs1O047Ozs7OworMDAzNjtESUdJVCBTSVg7TmQ7MDtFTjs7Njs2OzY7Tjs7Ozs7CiswMDM3O0RJR0lUIFNFVkVOO05kOzA7RU47Ozc7Nzs3O047Ozs7OworMDAzODtESUdJVCBFSUdIVDtOZDswO0VOOzs4Ozg7ODtOOzs7OzsKKzAwMzk7RElHSVQgTklORTtOZDswO0VOOzs5Ozk7OTtOOzs7OzsKKzAwM0E7Q09MT047UG87MDtDUzs7Ozs7Tjs7Ozs7CiswMDNCO1NFTUlDT0xPTjtQbzswO09OOzs7OztOOzs7OzsKKzAwM0M7TEVTUy1USEFOIFNJR047U207MDtPTjs7Ozs7WTs7Ozs7CiswMDNEO0VRVUFMUyBTSUdOO1NtOzA7T047Ozs7O047Ozs7OworMDAzRTtHUkVBVEVSLVRIQU4gU0lHTjtTbTswO09OOzs7OztZOzs7OzsKKzAwM0Y7UVVFU1RJT04gTUFSSztQbzswO09OOzs7OztOOzs7OzsKKzAwNDA7Q09NTUVSQ0lBTCBBVDtQbzswO09OOzs7OztOOzs7OzsKKzAwNDE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQTtMdTswO0w7Ozs7O047Ozs7MDA2MTsKKzAwNDI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQjtMdTswO0w7Ozs7O047Ozs7MDA2MjsKKzAwNDM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQztMdTswO0w7Ozs7O047Ozs7MDA2MzsKKzAwNDQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRDtMdTswO0w7Ozs7O047Ozs7MDA2NDsKKzAwNDU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRTtMdTswO0w7Ozs7O047Ozs7MDA2NTsKKzAwNDY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRjtMdTswO0w7Ozs7O047Ozs7MDA2NjsKKzAwNDc7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRztMdTswO0w7Ozs7O047Ozs7MDA2NzsKKzAwNDg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSDtMdTswO0w7Ozs7O047Ozs7MDA2ODsKKzAwNDk7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSTtMdTswO0w7Ozs7O047Ozs7MDA2OTsKKzAwNEE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSjtMdTswO0w7Ozs7O047Ozs7MDA2QTsKKzAwNEI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSztMdTswO0w7Ozs7O047Ozs7MDA2QjsKKzAwNEM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTDtMdTswO0w7Ozs7O047Ozs7MDA2QzsKKzAwNEQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTTtMdTswO0w7Ozs7O047Ozs7MDA2RDsKKzAwNEU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTjtMdTswO0w7Ozs7O047Ozs7MDA2RTsKKzAwNEY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTztMdTswO0w7Ozs7O047Ozs7MDA2RjsKKzAwNTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUDtMdTswO0w7Ozs7O047Ozs7MDA3MDsKKzAwNTE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUTtMdTswO0w7Ozs7O047Ozs7MDA3MTsKKzAwNTI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUjtMdTswO0w7Ozs7O047Ozs7MDA3MjsKKzAwNTM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUztMdTswO0w7Ozs7O047Ozs7MDA3MzsKKzAwNTQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVDtMdTswO0w7Ozs7O047Ozs7MDA3NDsKKzAwNTU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVTtMdTswO0w7Ozs7O047Ozs7MDA3NTsKKzAwNTY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVjtMdTswO0w7Ozs7O047Ozs7MDA3NjsKKzAwNTc7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVztMdTswO0w7Ozs7O047Ozs7MDA3NzsKKzAwNTg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWDtMdTswO0w7Ozs7O047Ozs7MDA3ODsKKzAwNTk7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWTtMdTswO0w7Ozs7O047Ozs7MDA3OTsKKzAwNUE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWjtMdTswO0w7Ozs7O047Ozs7MDA3QTsKKzAwNUI7TEVGVCBTUVVBUkUgQlJBQ0tFVDtQczswO09OOzs7OztZO09QRU5JTkcgU1FVQVJFIEJSQUNLRVQ7Ozs7CiswMDVDO1JFVkVSU0UgU09MSURVUztQbzswO09OOzs7OztOO0JBQ0tTTEFTSDs7OzsKKzAwNUQ7UklHSFQgU1FVQVJFIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTtDTE9TSU5HIFNRVUFSRSBCUkFDS0VUOzs7OworMDA1RTtDSVJDVU1GTEVYIEFDQ0VOVDtTazswO09OOzxjb21wYXQ+IDAwMjAgMDMwMjs7OztOO1NQQUNJTkcgQ0lSQ1VNRkxFWDs7OzsKKzAwNUY7TE9XIExJTkU7UGM7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMzI7Ozs7TjtTUEFDSU5HIFVOREVSU0NPUkU7Ozs7CiswMDYwO0dSQVZFIEFDQ0VOVDtTazswO09OOzxjb21wYXQ+IDAwMjAgMDMwMDs7OztOO1NQQUNJTkcgR1JBVkU7Ozs7CiswMDYxO0xBVElOIFNNQUxMIExFVFRFUiBBO0xsOzA7TDs7Ozs7Tjs7OzAwNDE7OzAwNDEKKzAwNjI7TEFUSU4gU01BTEwgTEVUVEVSIEI7TGw7MDtMOzs7OztOOzs7MDA0Mjs7MDA0MgorMDA2MztMQVRJTiBTTUFMTCBMRVRURVIgQztMbDswO0w7Ozs7O047OzswMDQzOzswMDQzCiswMDY0O0xBVElOIFNNQUxMIExFVFRFUiBEO0xsOzA7TDs7Ozs7Tjs7OzAwNDQ7OzAwNDQKKzAwNjU7TEFUSU4gU01BTEwgTEVUVEVSIEU7TGw7MDtMOzs7OztOOzs7MDA0NTs7MDA0NQorMDA2NjtMQVRJTiBTTUFMTCBMRVRURVIgRjtMbDswO0w7Ozs7O047OzswMDQ2OzswMDQ2CiswMDY3O0xBVElOIFNNQUxMIExFVFRFUiBHO0xsOzA7TDs7Ozs7Tjs7OzAwNDc7OzAwNDcKKzAwNjg7TEFUSU4gU01BTEwgTEVUVEVSIEg7TGw7MDtMOzs7OztOOzs7MDA0ODs7MDA0OAorMDA2OTtMQVRJTiBTTUFMTCBMRVRURVIgSTtMbDswO0w7Ozs7O047OzswMDQ5OzswMDQ5CiswMDZBO0xBVElOIFNNQUxMIExFVFRFUiBKO0xsOzA7TDs7Ozs7Tjs7OzAwNEE7OzAwNEEKKzAwNkI7TEFUSU4gU01BTEwgTEVUVEVSIEs7TGw7MDtMOzs7OztOOzs7MDA0Qjs7MDA0QgorMDA2QztMQVRJTiBTTUFMTCBMRVRURVIgTDtMbDswO0w7Ozs7O047OzswMDRDOzswMDRDCiswMDZEO0xBVElOIFNNQUxMIExFVFRFUiBNO0xsOzA7TDs7Ozs7Tjs7OzAwNEQ7OzAwNEQKKzAwNkU7TEFUSU4gU01BTEwgTEVUVEVSIE47TGw7MDtMOzs7OztOOzs7MDA0RTs7MDA0RQorMDA2RjtMQVRJTiBTTUFMTCBMRVRURVIgTztMbDswO0w7Ozs7O047OzswMDRGOzswMDRGCiswMDcwO0xBVElOIFNNQUxMIExFVFRFUiBQO0xsOzA7TDs7Ozs7Tjs7OzAwNTA7OzAwNTAKKzAwNzE7TEFUSU4gU01BTEwgTEVUVEVSIFE7TGw7MDtMOzs7OztOOzs7MDA1MTs7MDA1MQorMDA3MjtMQVRJTiBTTUFMTCBMRVRURVIgUjtMbDswO0w7Ozs7O047OzswMDUyOzswMDUyCiswMDczO0xBVElOIFNNQUxMIExFVFRFUiBTO0xsOzA7TDs7Ozs7Tjs7OzAwNTM7OzAwNTMKKzAwNzQ7TEFUSU4gU01BTEwgTEVUVEVSIFQ7TGw7MDtMOzs7OztOOzs7MDA1NDs7MDA1NAorMDA3NTtMQVRJTiBTTUFMTCBMRVRURVIgVTtMbDswO0w7Ozs7O047OzswMDU1OzswMDU1CiswMDc2O0xBVElOIFNNQUxMIExFVFRFUiBWO0xsOzA7TDs7Ozs7Tjs7OzAwNTY7OzAwNTYKKzAwNzc7TEFUSU4gU01BTEwgTEVUVEVSIFc7TGw7MDtMOzs7OztOOzs7MDA1Nzs7MDA1NworMDA3ODtMQVRJTiBTTUFMTCBMRVRURVIgWDtMbDswO0w7Ozs7O047OzswMDU4OzswMDU4CiswMDc5O0xBVElOIFNNQUxMIExFVFRFUiBZO0xsOzA7TDs7Ozs7Tjs7OzAwNTk7OzAwNTkKKzAwN0E7TEFUSU4gU01BTEwgTEVUVEVSIFo7TGw7MDtMOzs7OztOOzs7MDA1QTs7MDA1QQorMDA3QjtMRUZUIENVUkxZIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTtPUEVOSU5HIENVUkxZIEJSQUNLRVQ7Ozs7CiswMDdDO1ZFUlRJQ0FMIExJTkU7U207MDtPTjs7Ozs7TjtWRVJUSUNBTCBCQVI7Ozs7CiswMDdEO1JJR0hUIENVUkxZIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTtDTE9TSU5HIENVUkxZIEJSQUNLRVQ7Ozs7CiswMDdFO1RJTERFO1NtOzA7T047Ozs7O047Ozs7OworMDA3Rjs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7TjtERUxFVEU7Ozs7CiswMDgwOzxjb250cm9sPjtDYzswO09OOzs7OztOOzs7OzsKKzAwODE7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047Ozs7OworMDA4Mjs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7Tjs7Ozs7CiswMDgzOzxjb250cm9sPjtDYzswO09OOzs7OztOOzs7OzsKKzAwODQ7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047Ozs7OworMDA4NTs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7Tjs7Ozs7CiswMDg2Ozxjb250cm9sPjtDYzswO09OOzs7OztOOzs7OzsKKzAwODc7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047Ozs7OworMDA4ODs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7Tjs7Ozs7CiswMDg5Ozxjb250cm9sPjtDYzswO09OOzs7OztOOzs7OzsKKzAwOEE7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047Ozs7OworMDA4Qjs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7Tjs7Ozs7CiswMDhDOzxjb250cm9sPjtDYzswO09OOzs7OztOOzs7OzsKKzAwOEQ7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047Ozs7OworMDA4RTs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7Tjs7Ozs7CiswMDhGOzxjb250cm9sPjtDYzswO09OOzs7OztOOzs7OzsKKzAwOTA7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047Ozs7OworMDA5MTs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7Tjs7Ozs7CiswMDkyOzxjb250cm9sPjtDYzswO09OOzs7OztOOzs7OzsKKzAwOTM7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047Ozs7OworMDA5NDs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7Tjs7Ozs7CiswMDk1Ozxjb250cm9sPjtDYzswO09OOzs7OztOOzs7OzsKKzAwOTY7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047Ozs7OworMDA5Nzs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7Tjs7Ozs7CiswMDk4Ozxjb250cm9sPjtDYzswO09OOzs7OztOOzs7OzsKKzAwOTk7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047Ozs7OworMDA5QTs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7Tjs7Ozs7CiswMDlCOzxjb250cm9sPjtDYzswO09OOzs7OztOOzs7OzsKKzAwOUM7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047Ozs7OworMDA5RDs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7Tjs7Ozs7CiswMDlFOzxjb250cm9sPjtDYzswO09OOzs7OztOOzs7OzsKKzAwOUY7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047Ozs7OworMDBBMDtOTy1CUkVBSyBTUEFDRTtaczswO1dTOzxub0JyZWFrPiAwMDIwOzs7O047Tk9OLUJSRUFLSU5HIFNQQUNFOzs7OworMDBBMTtJTlZFUlRFRCBFWENMQU1BVElPTiBNQVJLO1BvOzA7T047Ozs7O047Ozs7OworMDBBMjtDRU5UIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CiswMEEzO1BPVU5EIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CiswMEE0O0NVUlJFTkNZIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CiswMEE1O1lFTiBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMDBBNjtCUk9LRU4gQkFSO1NvOzA7T047Ozs7O047QlJPS0VOIFZFUlRJQ0FMIEJBUjs7OzsKKzAwQTc7U0VDVElPTiBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMDBBODtESUFFUkVTSVM7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMDg7Ozs7TjtTUEFDSU5HIERJQUVSRVNJUzs7OzsKKzAwQTk7Q09QWVJJR0hUIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CiswMEFBO0ZFTUlOSU5FIE9SRElOQUwgSU5ESUNBVE9SO0xsOzA7TDs8c3VwZXI+IDAwNjE7Ozs7Tjs7Ozs7CiswMEFCO0xFRlQtUE9JTlRJTkcgRE9VQkxFIEFOR0xFIFFVT1RBVElPTiBNQVJLO1BpOzA7T047Ozs7O047TEVGVCBQT0lOVElORyBHVUlMTEVNRVQ7Ozs7CiswMEFDO05PVCBTSUdOO1NtOzA7T047Ozs7O047Ozs7OworMDBBRDtTT0ZUIEhZUEhFTjtQZDswO09OOzs7OztOOzs7OzsKKzAwQUU7UkVHSVNURVJFRCBTSUdOO1NvOzA7T047Ozs7O047UkVHSVNURVJFRCBUUkFERSBNQVJLIFNJR047Ozs7CiswMEFGO01BQ1JPTjtTazswO09OOzxjb21wYXQ+IDAwMjAgMDMwNDs7OztOO1NQQUNJTkcgTUFDUk9OOzs7OworMDBCMDtERUdSRUUgU0lHTjtTbzswO0VUOzs7OztOOzs7OzsKKzAwQjE7UExVUy1NSU5VUyBTSUdOO1NtOzA7RVQ7Ozs7O047UExVUy1PUi1NSU5VUyBTSUdOOzs7OworMDBCMjtTVVBFUlNDUklQVCBUV087Tm87MDtFTjs8c3VwZXI+IDAwMzI7MjsyOzI7TjtTVVBFUlNDUklQVCBESUdJVCBUV087Ozs7CiswMEIzO1NVUEVSU0NSSVBUIFRIUkVFO05vOzA7RU47PHN1cGVyPiAwMDMzOzM7MzszO047U1VQRVJTQ1JJUFQgRElHSVQgVEhSRUU7Ozs7CiswMEI0O0FDVVRFIEFDQ0VOVDtTazswO09OOzxjb21wYXQ+IDAwMjAgMDMwMTs7OztOO1NQQUNJTkcgQUNVVEU7Ozs7CiswMEI1O01JQ1JPIFNJR047TGw7MDtMOzxjb21wYXQ+IDAzQkM7Ozs7Tjs7Ozs7CiswMEI2O1BJTENST1cgU0lHTjtTbzswO09OOzs7OztOO1BBUkFHUkFQSCBTSUdOOzs7OworMDBCNztNSURETEUgRE9UO1BvOzA7T047Ozs7O047Ozs7OworMDBCODtDRURJTExBO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzI3Ozs7O047U1BBQ0lORyBDRURJTExBOzs7OworMDBCOTtTVVBFUlNDUklQVCBPTkU7Tm87MDtFTjs8c3VwZXI+IDAwMzE7MTsxOzE7TjtTVVBFUlNDUklQVCBESUdJVCBPTkU7Ozs7CiswMEJBO01BU0NVTElORSBPUkRJTkFMIElORElDQVRPUjtMbDswO0w7PHN1cGVyPiAwMDZGOzs7O047Ozs7OworMDBCQjtSSUdIVC1QT0lOVElORyBET1VCTEUgQU5HTEUgUVVPVEFUSU9OIE1BUks7UGY7MDtPTjs7Ozs7TjtSSUdIVCBQT0lOVElORyBHVUlMTEVNRVQ7Ozs7CiswMEJDO1ZVTEdBUiBGUkFDVElPTiBPTkUgUVVBUlRFUjtObzswO09OOzxmcmFjdGlvbj4gMDAzMSAyMDQ0IDAwMzQ7OzsxLzQ7TjtGUkFDVElPTiBPTkUgUVVBUlRFUjs7OzsKKzAwQkQ7VlVMR0FSIEZSQUNUSU9OIE9ORSBIQUxGO05vOzA7T047PGZyYWN0aW9uPiAwMDMxIDIwNDQgMDAzMjs7OzEvMjtOO0ZSQUNUSU9OIE9ORSBIQUxGOzs7OworMDBCRTtWVUxHQVIgRlJBQ1RJT04gVEhSRUUgUVVBUlRFUlM7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzMgMjA0NCAwMDM0Ozs7My80O047RlJBQ1RJT04gVEhSRUUgUVVBUlRFUlM7Ozs7CiswMEJGO0lOVkVSVEVEIFFVRVNUSU9OIE1BUks7UG87MDtPTjs7Ozs7Tjs7Ozs7CiswMEMwO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBHUkFWRTtMdTswO0w7MDA0MSAwMzAwOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBHUkFWRTs7OzAwRTA7CiswMEMxO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBBQ1VURTtMdTswO0w7MDA0MSAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBBQ1VURTs7OzAwRTE7CiswMEMyO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDQxIDAzMDI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIENJUkNVTUZMRVg7OzswMEUyOworMDBDMztMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggVElMREU7THU7MDtMOzAwNDEgMDMwMzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgVElMREU7OzswMEUzOworMDBDNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggRElBRVJFU0lTO0x1OzA7TDswMDQxIDAzMDg7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIERJQUVSRVNJUzs7OzAwRTQ7CiswMEM1O0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBSSU5HIEFCT1ZFO0x1OzA7TDswMDQxIDAzMEE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFJJTkc7OzswMEU1OworMDBDNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBFOzs7MDBFNjsKKzAwQzc7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBXSVRIIENFRElMTEE7THU7MDtMOzAwNDMgMDMyNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEMgQ0VESUxMQTs7OzAwRTc7CiswMEM4O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBHUkFWRTtMdTswO0w7MDA0NSAwMzAwOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBHUkFWRTs7OzAwRTg7CiswMEM5O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBBQ1VURTtMdTswO0w7MDA0NSAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBBQ1VURTs7OzAwRTk7CiswMENBO0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDQ1IDAzMDI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIENJUkNVTUZMRVg7OzswMEVBOworMDBDQjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggRElBRVJFU0lTO0x1OzA7TDswMDQ1IDAzMDg7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIERJQUVSRVNJUzs7OzAwRUI7CiswMENDO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBHUkFWRTtMdTswO0w7MDA0OSAwMzAwOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBHUkFWRTs7OzAwRUM7CiswMENEO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBBQ1VURTtMdTswO0w7MDA0OSAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBBQ1VURTs7OzAwRUQ7CiswMENFO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDQ5IDAzMDI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIENJUkNVTUZMRVg7OzswMEVFOworMDBDRjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRElBRVJFU0lTO0x1OzA7TDswMDQ5IDAzMDg7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIERJQUVSRVNJUzs7OzAwRUY7CiswMEQwO0xBVElOIENBUElUQUwgTEVUVEVSIEVUSDtMdTswO0w7Ozs7O047O0ljZWxhbmRpYzs7MDBGMDsKKzAwRDE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIFRJTERFO0x1OzA7TDswMDRFIDAzMDM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFRJTERFOzs7MDBGMTsKKzAwRDI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIEdSQVZFO0x1OzA7TDswMDRGIDAzMDA7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIEdSQVZFOzs7MDBGMjsKKzAwRDM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIEFDVVRFO0x1OzA7TDswMDRGIDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIEFDVVRFOzs7MDBGMzsKKzAwRDQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNEYgMDMwMjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gQ0lSQ1VNRkxFWDs7OzAwRjQ7CiswMEQ1O0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBUSUxERTtMdTswO0w7MDA0RiAwMzAzOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBUSUxERTs7OzAwRjU7CiswMEQ2O0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBESUFFUkVTSVM7THU7MDtMOzAwNEYgMDMwODs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gRElBRVJFU0lTOzs7MDBGNjsKKzAwRDc7TVVMVElQTElDQVRJT04gU0lHTjtTbTswO09OOzs7OztOOzs7OzsKKzAwRDg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBTTEFTSDs7OzAwRjg7CiswMEQ5O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBHUkFWRTtMdTswO0w7MDA1NSAwMzAwOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBHUkFWRTs7OzAwRjk7CiswMERBO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBBQ1VURTtMdTswO0w7MDA1NSAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBBQ1VURTs7OzAwRkE7CiswMERCO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDU1IDAzMDI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIENJUkNVTUZMRVg7OzswMEZCOworMDBEQztMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTO0x1OzA7TDswMDU1IDAzMDg7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIERJQUVSRVNJUzs7OzAwRkM7CiswMEREO0xBVElOIENBUElUQUwgTEVUVEVSIFkgV0lUSCBBQ1VURTtMdTswO0w7MDA1OSAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBBQ1VURTs7OzAwRkQ7CiswMERFO0xBVElOIENBUElUQUwgTEVUVEVSIFRIT1JOO0x1OzA7TDs7Ozs7Tjs7SWNlbGFuZGljOzswMEZFOworMDBERjtMQVRJTiBTTUFMTCBMRVRURVIgU0hBUlAgUztMbDswO0w7Ozs7O047O0dlcm1hbjs7OworMDBFMDtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIEdSQVZFO0xsOzA7TDswMDYxIDAzMDA7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBHUkFWRTs7MDBDMDs7MDBDMAorMDBFMTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIEFDVVRFO0xsOzA7TDswMDYxIDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBBQ1VURTs7MDBDMTs7MDBDMQorMDBFMjtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwNjEgMDMwMjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIENJUkNVTUZMRVg7OzAwQzI7OzAwQzIKKzAwRTM7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBUSUxERTtMbDswO0w7MDA2MSAwMzAzOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgVElMREU7OzAwQzM7OzAwQzMKKzAwRTQ7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzAwNjEgMDMwODs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIERJQUVSRVNJUzs7MDBDNDs7MDBDNAorMDBFNTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIFJJTkcgQUJPVkU7TGw7MDtMOzAwNjEgMDMwQTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIFJJTkc7OzAwQzU7OzAwQzUKKzAwRTY7TEFUSU4gU01BTEwgTEVUVEVSIEFFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBFOzswMEM2OzswMEM2CiswMEU3O0xBVElOIFNNQUxMIExFVFRFUiBDIFdJVEggQ0VESUxMQTtMbDswO0w7MDA2MyAwMzI3Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEMgQ0VESUxMQTs7MDBDNzs7MDBDNworMDBFODtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIEdSQVZFO0xsOzA7TDswMDY1IDAzMDA7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRSBHUkFWRTs7MDBDODs7MDBDOAorMDBFOTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIEFDVVRFO0xsOzA7TDswMDY1IDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRSBBQ1VURTs7MDBDOTs7MDBDOQorMDBFQTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwNjUgMDMwMjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBFIENJUkNVTUZMRVg7OzAwQ0E7OzAwQ0EKKzAwRUI7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzAwNjUgMDMwODs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBFIERJQUVSRVNJUzs7MDBDQjs7MDBDQgorMDBFQztMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIEdSQVZFO0xsOzA7TDswMDY5IDAzMDA7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSSBHUkFWRTs7MDBDQzs7MDBDQworMDBFRDtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIEFDVVRFO0xsOzA7TDswMDY5IDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSSBBQ1VURTs7MDBDRDs7MDBDRAorMDBFRTtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwNjkgMDMwMjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBJIENJUkNVTUZMRVg7OzAwQ0U7OzAwQ0UKKzAwRUY7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzAwNjkgMDMwODs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBJIERJQUVSRVNJUzs7MDBDRjs7MDBDRgorMDBGMDtMQVRJTiBTTUFMTCBMRVRURVIgRVRIO0xsOzA7TDs7Ozs7Tjs7SWNlbGFuZGljOzAwRDA7OzAwRDAKKzAwRjE7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBUSUxERTtMbDswO0w7MDA2RSAwMzAzOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIE4gVElMREU7OzAwRDE7OzAwRDEKKzAwRjI7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBHUkFWRTtMbDswO0w7MDA2RiAwMzAwOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gR1JBVkU7OzAwRDI7OzAwRDIKKzAwRjM7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBBQ1VURTtMbDswO0w7MDA2RiAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gQUNVVEU7OzAwRDM7OzAwRDMKKzAwRjQ7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDZGIDAzMDI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBDSVJDVU1GTEVYOzswMEQ0OzswMEQ0CiswMEY1O0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggVElMREU7TGw7MDtMOzAwNkYgMDMwMzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIFRJTERFOzswMEQ1OzswMEQ1CiswMEY2O0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggRElBRVJFU0lTO0xsOzA7TDswMDZGIDAzMDg7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBESUFFUkVTSVM7OzAwRDY7OzAwRDYKKzAwRjc7RElWSVNJT04gU0lHTjtTbTswO09OOzs7OztOOzs7OzsKKzAwRjg7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIFNMQVNIOzswMEQ4OzswMEQ4CiswMEY5O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggR1JBVkU7TGw7MDtMOzAwNzUgMDMwMDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIEdSQVZFOzswMEQ5OzswMEQ5CiswMEZBO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggQUNVVEU7TGw7MDtMOzAwNzUgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIEFDVVRFOzswMERBOzswMERBCiswMEZCO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA3NSAwMzAyOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgQ0lSQ1VNRkxFWDs7MDBEQjs7MDBEQgorMDBGQztMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDA3NSAwMzA4Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgRElBRVJFU0lTOzswMERDOzswMERDCiswMEZEO0xBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggQUNVVEU7TGw7MDtMOzAwNzkgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBZIEFDVVRFOzswMEREOzswMERECiswMEZFO0xBVElOIFNNQUxMIExFVFRFUiBUSE9STjtMbDswO0w7Ozs7O047O0ljZWxhbmRpYzswMERFOzswMERFCiswMEZGO0xBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggRElBRVJFU0lTO0xsOzA7TDswMDc5IDAzMDg7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWSBESUFFUkVTSVM7OzAxNzg7OzAxNzgKKzAxMDA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIE1BQ1JPTjtMdTswO0w7MDA0MSAwMzA0Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBNQUNST047OzswMTAxOworMDEwMTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIE1BQ1JPTjtMbDswO0w7MDA2MSAwMzA0Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgTUFDUk9OOzswMTAwOzswMTAwCiswMTAyO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBCUkVWRTtMdTswO0w7MDA0MSAwMzA2Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBCUkVWRTs7OzAxMDM7CiswMTAzO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQlJFVkU7TGw7MDtMOzAwNjEgMDMwNjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIEJSRVZFOzswMTAyOzswMTAyCiswMTA0O0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBPR09ORUs7THU7MDtMOzAwNDEgMDMyODs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgT0dPTkVLOzs7MDEwNTsKKzAxMDU7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBPR09ORUs7TGw7MDtMOzAwNjEgMDMyODs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIE9HT05FSzs7MDEwNDs7MDEwNAorMDEwNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBDIFdJVEggQUNVVEU7THU7MDtMOzAwNDMgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEMgQUNVVEU7OzswMTA3OworMDEwNztMQVRJTiBTTUFMTCBMRVRURVIgQyBXSVRIIEFDVVRFO0xsOzA7TDswMDYzIDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQyBBQ1VURTs7MDEwNjs7MDEwNgorMDEwODtMQVRJTiBDQVBJVEFMIExFVFRFUiBDIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA0MyAwMzAyOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBDSVJDVU1GTEVYOzs7MDEwOTsKKzAxMDk7TEFUSU4gU01BTEwgTEVUVEVSIEMgV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDYzIDAzMDI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQyBDSVJDVU1GTEVYOzswMTA4OzswMTA4CiswMTBBO0xBVElOIENBUElUQUwgTEVUVEVSIEMgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNDMgMDMwNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEMgRE9UOzs7MDEwQjsKKzAxMEI7TEFUSU4gU01BTEwgTEVUVEVSIEMgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNjMgMDMwNzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBDIERPVDs7MDEwQTs7MDEwQQorMDEwQztMQVRJTiBDQVBJVEFMIExFVFRFUiBDIFdJVEggQ0FST047THU7MDtMOzAwNDMgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEMgSEFDRUs7OzswMTBEOworMDEwRDtMQVRJTiBTTUFMTCBMRVRURVIgQyBXSVRIIENBUk9OO0xsOzA7TDswMDYzIDAzMEM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQyBIQUNFSzs7MDEwQzs7MDEwQworMDEwRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFdJVEggQ0FST047THU7MDtMOzAwNDQgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEQgSEFDRUs7OzswMTBGOworMDEwRjtMQVRJTiBTTUFMTCBMRVRURVIgRCBXSVRIIENBUk9OO0xsOzA7TDswMDY0IDAzMEM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRCBIQUNFSzs7MDEwRTs7MDEwRQorMDExMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIEJBUjs7OzAxMTE7CiswMTExO0xBVElOIFNNQUxMIExFVFRFUiBEIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRCBCQVI7OzAxMTA7OzAxMTAKKzAxMTI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIE1BQ1JPTjtMdTswO0w7MDA0NSAwMzA0Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBNQUNST047OzswMTEzOworMDExMztMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIE1BQ1JPTjtMbDswO0w7MDA2NSAwMzA0Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEUgTUFDUk9OOzswMTEyOzswMTEyCiswMTE0O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBCUkVWRTtMdTswO0w7MDA0NSAwMzA2Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBCUkVWRTs7OzAxMTU7CiswMTE1O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQlJFVkU7TGw7MDtMOzAwNjUgMDMwNjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBFIEJSRVZFOzswMTE0OzswMTE0CiswMTE2O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNDUgMDMwNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEUgRE9UOzs7MDExNzsKKzAxMTc7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNjUgMDMwNzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBFIERPVDs7MDExNjs7MDExNgorMDExODtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggT0dPTkVLO0x1OzA7TDswMDQ1IDAzMjg7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIE9HT05FSzs7OzAxMTk7CiswMTE5O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggT0dPTkVLO0xsOzA7TDswMDY1IDAzMjg7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRSBPR09ORUs7OzAxMTg7OzAxMTgKKzAxMUE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIENBUk9OO0x1OzA7TDswMDQ1IDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIEhBQ0VLOzs7MDExQjsKKzAxMUI7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBDQVJPTjtMbDswO0w7MDA2NSAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEUgSEFDRUs7OzAxMUE7OzAxMUEKKzAxMUM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNDcgMDMwMjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEcgQ0lSQ1VNRkxFWDs7OzAxMUQ7CiswMTFEO0xBVElOIFNNQUxMIExFVFRFUiBHIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA2NyAwMzAyOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEcgQ0lSQ1VNRkxFWDs7MDExQzs7MDExQworMDExRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIFdJVEggQlJFVkU7THU7MDtMOzAwNDcgMDMwNjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEcgQlJFVkU7OzswMTFGOworMDExRjtMQVRJTiBTTUFMTCBMRVRURVIgRyBXSVRIIEJSRVZFO0xsOzA7TDswMDY3IDAzMDY7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRyBCUkVWRTs7MDExRTs7MDExRQorMDEyMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDQ3IDAzMDc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIERPVDs7OzAxMjE7CiswMTIxO0xBVElOIFNNQUxMIExFVFRFUiBHIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDY3IDAzMDc7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRyBET1Q7OzAxMjA7OzAxMjAKKzAxMjI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBXSVRIIENFRElMTEE7THU7MDtMOzAwNDcgMDMyNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEcgQ0VESUxMQTs7OzAxMjM7CiswMTIzO0xBVElOIFNNQUxMIExFVFRFUiBHIFdJVEggQ0VESUxMQTtMbDswO0w7MDA2NyAwMzI3Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEcgQ0VESUxMQTs7MDEyMjs7MDEyMgorMDEyNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBIIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA0OCAwMzAyOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSCBDSVJDVU1GTEVYOzs7MDEyNTsKKzAxMjU7TEFUSU4gU01BTEwgTEVUVEVSIEggV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDY4IDAzMDI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSCBDSVJDVU1GTEVYOzswMTI0OzswMTI0CiswMTI2O0xBVElOIENBUElUQUwgTEVUVEVSIEggV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEggQkFSOzs7MDEyNzsKKzAxMjc7TEFUSU4gU01BTEwgTEVUVEVSIEggV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBIIEJBUjs7MDEyNjs7MDEyNgorMDEyODtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggVElMREU7THU7MDtMOzAwNDkgMDMwMzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEkgVElMREU7OzswMTI5OworMDEyOTtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIFRJTERFO0xsOzA7TDswMDY5IDAzMDM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSSBUSUxERTs7MDEyODs7MDEyOAorMDEyQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggTUFDUk9OO0x1OzA7TDswMDQ5IDAzMDQ7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIE1BQ1JPTjs7OzAxMkI7CiswMTJCO0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggTUFDUk9OO0xsOzA7TDswMDY5IDAzMDQ7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSSBNQUNST047OzAxMkE7OzAxMkEKKzAxMkM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIEJSRVZFO0x1OzA7TDswMDQ5IDAzMDY7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIEJSRVZFOzs7MDEyRDsKKzAxMkQ7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBCUkVWRTtMbDswO0w7MDA2OSAwMzA2Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEkgQlJFVkU7OzAxMkM7OzAxMkMKKzAxMkU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIE9HT05FSztMdTswO0w7MDA0OSAwMzI4Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBPR09ORUs7OzswMTJGOworMDEyRjtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIE9HT05FSztMbDswO0w7MDA2OSAwMzI4Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEkgT0dPTkVLOzswMTJFOzswMTJFCiswMTMwO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNDkgMDMwNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEkgRE9UOzs7MDA2OTsKKzAxMzE7TEFUSU4gU01BTEwgTEVUVEVSIERPVExFU1MgSTtMbDswO0w7Ozs7O047OzswMDQ5OzswMDQ5CiswMTMyO0xBVElOIENBUElUQUwgTElHQVRVUkUgSUo7THU7MDtMOzxjb21wYXQ+IDAwNDkgMDA0QTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEkgSjs7OzAxMzM7CiswMTMzO0xBVElOIFNNQUxMIExJR0FUVVJFIElKO0xsOzA7TDs8Y29tcGF0PiAwMDY5IDAwNkE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSSBKOzswMTMyOzswMTMyCiswMTM0O0xBVElOIENBUElUQUwgTEVUVEVSIEogV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDRBIDAzMDI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBKIENJUkNVTUZMRVg7OzswMTM1OworMDEzNTtMQVRJTiBTTUFMTCBMRVRURVIgSiBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwNkEgMDMwMjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBKIENJUkNVTUZMRVg7OzAxMzQ7OzAxMzQKKzAxMzY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSyBXSVRIIENFRElMTEE7THU7MDtMOzAwNEIgMDMyNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEsgQ0VESUxMQTs7OzAxMzc7CiswMTM3O0xBVElOIFNNQUxMIExFVFRFUiBLIFdJVEggQ0VESUxMQTtMbDswO0w7MDA2QiAwMzI3Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEsgQ0VESUxMQTs7MDEzNjs7MDEzNgorMDEzODtMQVRJTiBTTUFMTCBMRVRURVIgS1JBO0xsOzA7TDs7Ozs7Tjs7R3JlZW5sYW5kaWM7OzsKKzAxMzk7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIEFDVVRFO0x1OzA7TDswMDRDIDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIEFDVVRFOzs7MDEzQTsKKzAxM0E7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBBQ1VURTtMbDswO0w7MDA2QyAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEwgQUNVVEU7OzAxMzk7OzAxMzkKKzAxM0I7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIENFRElMTEE7THU7MDtMOzAwNEMgMDMyNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEwgQ0VESUxMQTs7OzAxM0M7CiswMTNDO0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggQ0VESUxMQTtMbDswO0w7MDA2QyAwMzI3Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEwgQ0VESUxMQTs7MDEzQjs7MDEzQgorMDEzRDtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggQ0FST047THU7MDtMOzAwNEMgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEwgSEFDRUs7OzswMTNFOworMDEzRTtMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIENBUk9OO0xsOzA7TDswMDZDIDAzMEM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTCBIQUNFSzs7MDEzRDs7MDEzRAorMDEzRjtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggTUlERExFIERPVDtMdTswO0w7PGNvbXBhdD4gMDA0QyAwMEI3Ozs7O047Ozs7MDE0MDsKKzAxNDA7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBNSURETEUgRE9UO0xsOzA7TDs8Y29tcGF0PiAwMDZDIDAwQjc7Ozs7Tjs7OzAxM0Y7OzAxM0YKKzAxNDE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBTTEFTSDs7OzAxNDI7CiswMTQyO0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTCBTTEFTSDs7MDE0MTs7MDE0MQorMDE0MztMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggQUNVVEU7THU7MDtMOzAwNEUgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE4gQUNVVEU7OzswMTQ0OworMDE0NDtMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIEFDVVRFO0xsOzA7TDswMDZFIDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTiBBQ1VURTs7MDE0Mzs7MDE0MworMDE0NTtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggQ0VESUxMQTtMdTswO0w7MDA0RSAwMzI3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBDRURJTExBOzs7MDE0NjsKKzAxNDY7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBDRURJTExBO0xsOzA7TDswMDZFIDAzMjc7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTiBDRURJTExBOzswMTQ1OzswMTQ1CiswMTQ3O0xBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBDQVJPTjtMdTswO0w7MDA0RSAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBIQUNFSzs7OzAxNDg7CiswMTQ4O0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggQ0FST047TGw7MDtMOzAwNkUgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBOIEhBQ0VLOzswMTQ3OzswMTQ3CiswMTQ5O0xBVElOIFNNQUxMIExFVFRFUiBOIFBSRUNFREVEIEJZIEFQT1NUUk9QSEU7TGw7MDtMOzxjb21wYXQ+IDAyQkMgMDA2RTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBUE9TVFJPUEhFIE47Ozs7CiswMTRBO0xBVElOIENBUElUQUwgTEVUVEVSIEVORztMdTswO0w7Ozs7O047O1NhbWk7OzAxNEI7CiswMTRCO0xBVElOIFNNQUxMIExFVFRFUiBFTkc7TGw7MDtMOzs7OztOOztTYW1pOzAxNEE7OzAxNEEKKzAxNEM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIE1BQ1JPTjtMdTswO0w7MDA0RiAwMzA0Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBNQUNST047OzswMTREOworMDE0RDtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIE1BQ1JPTjtMbDswO0w7MDA2RiAwMzA0Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gTUFDUk9OOzswMTRDOzswMTRDCiswMTRFO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBCUkVWRTtMdTswO0w7MDA0RiAwMzA2Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBCUkVWRTs7OzAxNEY7CiswMTRGO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQlJFVkU7TGw7MDtMOzAwNkYgMDMwNjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIEJSRVZFOzswMTRFOzswMTRFCiswMTUwO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBET1VCTEUgQUNVVEU7THU7MDtMOzAwNEYgMDMwQjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gRE9VQkxFIEFDVVRFOzs7MDE1MTsKKzAxNTE7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBET1VCTEUgQUNVVEU7TGw7MDtMOzAwNkYgMDMwQjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIERPVUJMRSBBQ1VURTs7MDE1MDs7MDE1MAorMDE1MjtMQVRJTiBDQVBJVEFMIExJR0FUVVJFIE9FO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIEU7OzswMTUzOworMDE1MztMQVRJTiBTTUFMTCBMSUdBVFVSRSBPRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gRTs7MDE1Mjs7MDE1MgorMDE1NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBSIFdJVEggQUNVVEU7THU7MDtMOzAwNTIgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFIgQUNVVEU7OzswMTU1OworMDE1NTtMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIEFDVVRFO0xsOzA7TDswMDcyIDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUiBBQ1VURTs7MDE1NDs7MDE1NAorMDE1NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBSIFdJVEggQ0VESUxMQTtMdTswO0w7MDA1MiAwMzI3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBDRURJTExBOzs7MDE1NzsKKzAxNTc7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBDRURJTExBO0xsOzA7TDswMDcyIDAzMjc7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUiBDRURJTExBOzswMTU2OzswMTU2CiswMTU4O0xBVElOIENBUElUQUwgTEVUVEVSIFIgV0lUSCBDQVJPTjtMdTswO0w7MDA1MiAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBIQUNFSzs7OzAxNTk7CiswMTU5O0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggQ0FST047TGw7MDtMOzAwNzIgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBSIEhBQ0VLOzswMTU4OzswMTU4CiswMTVBO0xBVElOIENBUElUQUwgTEVUVEVSIFMgV0lUSCBBQ1VURTtMdTswO0w7MDA1MyAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBBQ1VURTs7OzAxNUI7CiswMTVCO0xBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggQUNVVEU7TGw7MDtMOzAwNzMgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBTIEFDVVRFOzswMTVBOzswMTVBCiswMTVDO0xBVElOIENBUElUQUwgTEVUVEVSIFMgV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDUzIDAzMDI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIENJUkNVTUZMRVg7OzswMTVEOworMDE1RDtMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwNzMgMDMwMjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBTIENJUkNVTUZMRVg7OzAxNUM7OzAxNUMKKzAxNUU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBXSVRIIENFRElMTEE7THU7MDtMOzAwNTMgMDMyNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFMgQ0VESUxMQTs7OzAxNUY7CiswMTVGO0xBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggQ0VESUxMQTtMbDswO0w7MDA3MyAwMzI3Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFMgQ0VESUxMQTs7MDE1RTs7MDE1RQorMDE2MDtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIFdJVEggQ0FST047THU7MDtMOzAwNTMgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFMgSEFDRUs7OzswMTYxOworMDE2MTtMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIENBUk9OO0xsOzA7TDswMDczIDAzMEM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUyBIQUNFSzs7MDE2MDs7MDE2MAorMDE2MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFdJVEggQ0VESUxMQTtMdTswO0w7MDA1NCAwMzI3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBDRURJTExBOzs7MDE2MzsKKzAxNjM7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBDRURJTExBO0xsOzA7TDswMDc0IDAzMjc7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVCBDRURJTExBOzswMTYyOzswMTYyCiswMTY0O0xBVElOIENBUElUQUwgTEVUVEVSIFQgV0lUSCBDQVJPTjtMdTswO0w7MDA1NCAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBIQUNFSzs7OzAxNjU7CiswMTY1O0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggQ0FST047TGw7MDtMOzAwNzQgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBUIEhBQ0VLOzswMTY0OzswMTY0CiswMTY2O0xBVElOIENBUElUQUwgTEVUVEVSIFQgV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFQgQkFSOzs7MDE2NzsKKzAxNjc7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBUIEJBUjs7MDE2Njs7MDE2NgorMDE2ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggVElMREU7THU7MDtMOzAwNTUgMDMwMzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgVElMREU7OzswMTY5OworMDE2OTtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIFRJTERFO0xsOzA7TDswMDc1IDAzMDM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBUSUxERTs7MDE2ODs7MDE2OAorMDE2QTtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggTUFDUk9OO0x1OzA7TDswMDU1IDAzMDQ7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIE1BQ1JPTjs7OzAxNkI7CiswMTZCO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggTUFDUk9OO0xsOzA7TDswMDc1IDAzMDQ7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBNQUNST047OzAxNkE7OzAxNkEKKzAxNkM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEJSRVZFO0x1OzA7TDswMDU1IDAzMDY7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIEJSRVZFOzs7MDE2RDsKKzAxNkQ7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBCUkVWRTtMbDswO0w7MDA3NSAwMzA2Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgQlJFVkU7OzAxNkM7OzAxNkMKKzAxNkU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIFJJTkcgQUJPVkU7THU7MDtMOzAwNTUgMDMwQTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgUklORzs7OzAxNkY7CiswMTZGO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggUklORyBBQk9WRTtMbDswO0w7MDA3NSAwMzBBOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgUklORzs7MDE2RTs7MDE2RQorMDE3MDtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggRE9VQkxFIEFDVVRFO0x1OzA7TDswMDU1IDAzMEI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIERPVUJMRSBBQ1VURTs7OzAxNzE7CiswMTcxO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRE9VQkxFIEFDVVRFO0xsOzA7TDswMDc1IDAzMEI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBET1VCTEUgQUNVVEU7OzAxNzA7OzAxNzAKKzAxNzI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIE9HT05FSztMdTswO0w7MDA1NSAwMzI4Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBPR09ORUs7OzswMTczOworMDE3MztMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIE9HT05FSztMbDswO0w7MDA3NSAwMzI4Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgT0dPTkVLOzswMTcyOzswMTcyCiswMTc0O0xBVElOIENBUElUQUwgTEVUVEVSIFcgV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDU3IDAzMDI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBXIENJUkNVTUZMRVg7OzswMTc1OworMDE3NTtMQVRJTiBTTUFMTCBMRVRURVIgVyBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwNzcgMDMwMjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBXIENJUkNVTUZMRVg7OzAxNzQ7OzAxNzQKKzAxNzY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNTkgMDMwMjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFkgQ0lSQ1VNRkxFWDs7OzAxNzc7CiswMTc3O0xBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA3OSAwMzAyOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFkgQ0lSQ1VNRkxFWDs7MDE3Njs7MDE3NgorMDE3ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggRElBRVJFU0lTO0x1OzA7TDswMDU5IDAzMDg7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIERJQUVSRVNJUzs7OzAwRkY7CiswMTc5O0xBVElOIENBUElUQUwgTEVUVEVSIFogV0lUSCBBQ1VURTtMdTswO0w7MDA1QSAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBBQ1VURTs7OzAxN0E7CiswMTdBO0xBVElOIFNNQUxMIExFVFRFUiBaIFdJVEggQUNVVEU7TGw7MDtMOzAwN0EgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBaIEFDVVRFOzswMTc5OzswMTc5CiswMTdCO0xBVElOIENBUElUQUwgTEVUVEVSIFogV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNUEgMDMwNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFogRE9UOzs7MDE3QzsKKzAxN0M7TEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwN0EgMDMwNzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBaIERPVDs7MDE3Qjs7MDE3QgorMDE3RDtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIFdJVEggQ0FST047THU7MDtMOzAwNUEgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFogSEFDRUs7OzswMTdFOworMDE3RTtMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIENBUk9OO0xsOzA7TDswMDdBIDAzMEM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWiBIQUNFSzs7MDE3RDs7MDE3RAorMDE3RjtMQVRJTiBTTUFMTCBMRVRURVIgTE9ORyBTO0xsOzA7TDs8Y29tcGF0PiAwMDczOzs7O047OzswMDUzOzswMDUzCiswMTgwO0xBVElOIFNNQUxMIExFVFRFUiBCIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQiBCQVI7Ozs7CiswMTgxO0xBVElOIENBUElUQUwgTEVUVEVSIEIgV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBCIEhPT0s7OzswMjUzOworMDE4MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBCIFdJVEggVE9QQkFSO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBCIFRPUEJBUjs7OzAxODM7CiswMTgzO0xBVElOIFNNQUxMIExFVFRFUiBCIFdJVEggVE9QQkFSO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQiBUT1BCQVI7OzAxODI7OzAxODIKKzAxODQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVE9ORSBTSVg7THU7MDtMOzs7OztOOzs7OzAxODU7CiswMTg1O0xBVElOIFNNQUxMIExFVFRFUiBUT05FIFNJWDtMbDswO0w7Ozs7O047OzswMTg0OzswMTg0CiswMTg2O0xBVElOIENBUElUQUwgTEVUVEVSIE9QRU4gTztMdTswO0w7Ozs7O047Ozs7MDI1NDsKKzAxODc7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBXSVRIIEhPT0s7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEMgSE9PSzs7OzAxODg7CiswMTg4O0xBVElOIFNNQUxMIExFVFRFUiBDIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEMgSE9PSzs7MDE4Nzs7MDE4NworMDE4OTtMQVRJTiBDQVBJVEFMIExFVFRFUiBBRlJJQ0FOIEQ7THU7MDtMOzs7OztOOzs7OzAyNTY7CiswMThBO0xBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIEhPT0s7OzswMjU3OworMDE4QjtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFdJVEggVE9QQkFSO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFRPUEJBUjs7OzAxOEM7CiswMThDO0xBVElOIFNNQUxMIExFVFRFUiBEIFdJVEggVE9QQkFSO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRCBUT1BCQVI7OzAxOEI7OzAxOEIKKzAxOEQ7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBERUxUQTtMbDswO0w7Ozs7O047Ozs7OworMDE4RTtMQVRJTiBDQVBJVEFMIExFVFRFUiBSRVZFUlNFRCBFO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBUVVJORUQgRTs7OzAxREQ7CiswMThGO0xBVElOIENBUElUQUwgTEVUVEVSIFNDSFdBO0x1OzA7TDs7Ozs7Tjs7OzswMjU5OworMDE5MDtMQVRJTiBDQVBJVEFMIExFVFRFUiBPUEVOIEU7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEVQU0lMT047OzswMjVCOworMDE5MTtMQVRJTiBDQVBJVEFMIExFVFRFUiBGIFdJVEggSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRiBIT09LOzs7MDE5MjsKKzAxOTI7TEFUSU4gU01BTEwgTEVUVEVSIEYgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgU0NSSVBUIEY7OzAxOTE7OzAxOTEKKzAxOTM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBXSVRIIEhPT0s7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEcgSE9PSzs7OzAyNjA7CiswMTk0O0xBVElOIENBUElUQUwgTEVUVEVSIEdBTU1BO0x1OzA7TDs7Ozs7Tjs7OzswMjYzOworMDE5NTtMQVRJTiBTTUFMTCBMRVRURVIgSFY7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBIIFY7Ozs7CiswMTk2O0xBVElOIENBUElUQUwgTEVUVEVSIElPVEE7THU7MDtMOzs7OztOOzs7OzAyNjk7CiswMTk3O0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEJBUlJFRCBJOzs7MDI2ODsKKzAxOTg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSyBXSVRIIEhPT0s7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEsgSE9PSzs7OzAxOTk7CiswMTk5O0xBVElOIFNNQUxMIExFVFRFUiBLIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEsgSE9PSzs7MDE5ODs7MDE5OAorMDE5QTtMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIEJBUjtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEJBUlJFRCBMOzs7OworMDE5QjtMQVRJTiBTTUFMTCBMRVRURVIgTEFNQkRBIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQkFSUkVEIExBTUJEQTs7OzsKKzAxOUM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVFVSTkVEIE07THU7MDtMOzs7OztOOzs7OzAyNkY7CiswMTlEO0xBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBMRUZUIEhPT0s7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE4gSE9PSzs7OzAyNzI7CiswMTlFO0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggTE9ORyBSSUdIVCBMRUc7TGw7MDtMOzs7OztOOzs7OzsKKzAxOUY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIE1JRERMRSBUSUxERTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQkFSUkVEIE87OzswMjc1OworMDFBMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggSE9STjtMdTswO0w7MDA0RiAwMzFCOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBIT1JOOzs7MDFBMTsKKzAxQTE7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBIT1JOO0xsOzA7TDswMDZGIDAzMUI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBIT1JOOzswMUEwOzswMUEwCiswMUEyO0xBVElOIENBUElUQUwgTEVUVEVSIE9JO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIEk7OzswMUEzOworMDFBMztMQVRJTiBTTUFMTCBMRVRURVIgT0k7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIEk7OzAxQTI7OzAxQTIKKzAxQTQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUCBXSVRIIEhPT0s7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFAgSE9PSzs7OzAxQTU7CiswMUE1O0xBVElOIFNNQUxMIExFVFRFUiBQIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFAgSE9PSzs7MDFBNDs7MDFBNAorMDFBNjtMQVRJTiBMRVRURVIgWVI7THU7MDtMOzs7OztOO0xBVElOIExFVFRFUiBZIFI7Ozs7CiswMUE3O0xBVElOIENBUElUQUwgTEVUVEVSIFRPTkUgVFdPO0x1OzA7TDs7Ozs7Tjs7OzswMUE4OworMDFBODtMQVRJTiBTTUFMTCBMRVRURVIgVE9ORSBUV087TGw7MDtMOzs7OztOOzs7MDFBNzs7MDFBNworMDFBOTtMQVRJTiBDQVBJVEFMIExFVFRFUiBFU0g7THU7MDtMOzs7OztOOzs7OzAyODM7CiswMUFBO0xBVElOIExFVFRFUiBSRVZFUlNFRCBFU0ggTE9PUDtMbzswO0w7Ozs7O047Ozs7OworMDFBQjtMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIFBBTEFUQUwgSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFQgUEFMQVRBTCBIT09LOzs7OworMDFBQztMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFdJVEggSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBIT09LOzs7MDFBRDsKKzAxQUQ7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVCBIT09LOzswMUFDOzswMUFDCiswMUFFO0xBVElOIENBUElUQUwgTEVUVEVSIFQgV0lUSCBSRVRST0ZMRVggSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBSRVRST0ZMRVggSE9PSzs7OzAyODg7CiswMUFGO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBIT1JOO0x1OzA7TDswMDU1IDAzMUI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIEhPUk47OzswMUIwOworMDFCMDtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEhPUk47TGw7MDtMOzAwNzUgMDMxQjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIEhPUk47OzAxQUY7OzAxQUYKKzAxQjE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVVBTSUxPTjtMdTswO0w7Ozs7O047Ozs7MDI4QTsKKzAxQjI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgViBXSVRIIEhPT0s7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFNDUklQVCBWOzs7MDI4QjsKKzAxQjM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIEhPT0s7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFkgSE9PSzs7OzAxQjQ7CiswMUI0O0xBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFkgSE9PSzs7MDFCMzs7MDFCMworMDFCNTtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIEJBUjs7OzAxQjY7CiswMUI2O0xBVElOIFNNQUxMIExFVFRFUiBaIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWiBCQVI7OzAxQjU7OzAxQjUKKzAxQjc7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRVpIO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBZT0dIOzs7MDI5MjsKKzAxQjg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRVpIIFJFVkVSU0VEO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBSRVZFUlNFRCBZT0dIOzs7MDFCOTsKKzAxQjk7TEFUSU4gU01BTEwgTEVUVEVSIEVaSCBSRVZFUlNFRDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFJFVkVSU0VEIFlPR0g7OzAxQjg7OzAxQjgKKzAxQkE7TEFUSU4gU01BTEwgTEVUVEVSIEVaSCBXSVRIIFRBSUw7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBZT0dIIFdJVEggVEFJTDs7OzsKKzAxQkI7TEFUSU4gTEVUVEVSIFRXTyBXSVRIIFNUUk9LRTtMbzswO0w7Ozs7O047TEFUSU4gTEVUVEVSIFRXTyBCQVI7Ozs7CiswMUJDO0xBVElOIENBUElUQUwgTEVUVEVSIFRPTkUgRklWRTtMdTswO0w7Ozs7O047Ozs7MDFCRDsKKzAxQkQ7TEFUSU4gU01BTEwgTEVUVEVSIFRPTkUgRklWRTtMbDswO0w7Ozs7O047OzswMUJDOzswMUJDCiswMUJFO0xBVElOIExFVFRFUiBJTlZFUlRFRCBHTE9UVEFMIFNUT1AgV0lUSCBTVFJPS0U7TG87MDtMOzs7OztOO0xBVElOIExFVFRFUiBJTlZFUlRFRCBHTE9UVEFMIFNUT1AgQkFSOzs7OworMDFCRjtMQVRJTiBMRVRURVIgV1lOTjtMbzswO0w7Ozs7O047Ozs7OworMDFDMDtMQVRJTiBMRVRURVIgREVOVEFMIENMSUNLO0xvOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgUElQRTs7OzsKKzAxQzE7TEFUSU4gTEVUVEVSIExBVEVSQUwgQ0xJQ0s7TG87MDtMOzs7OztOO0xBVElOIExFVFRFUiBET1VCTEUgUElQRTs7OzsKKzAxQzI7TEFUSU4gTEVUVEVSIEFMVkVPTEFSIENMSUNLO0xvOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgUElQRSBET1VCTEUgQkFSOzs7OworMDFDMztMQVRJTiBMRVRURVIgUkVUUk9GTEVYIENMSUNLO0xvOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgRVhDTEFNQVRJT04gTUFSSzs7OzsKKzAxQzQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRFogV0lUSCBDQVJPTjtMdTswO0w7PGNvbXBhdD4gMDA0NCAwMTdEOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBaIEhBQ0VLOzs7MDFDNjswMUM1CiswMUM1O0xBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBTTUFMTCBMRVRURVIgWiBXSVRIIENBUk9OO0x0OzA7TDs8Y29tcGF0PiAwMDQ0IDAxN0U7Ozs7TjtMQVRJTiBMRVRURVIgQ0FQSVRBTCBEIFNNQUxMIFogSEFDRUs7OzAxQzQ7MDFDNjsKKzAxQzY7TEFUSU4gU01BTEwgTEVUVEVSIERaIFdJVEggQ0FST047TGw7MDtMOzxjb21wYXQ+IDAwNjQgMDE3RTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBEIFogSEFDRUs7OzAxQzQ7OzAxQzUKKzAxQzc7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTEo7THU7MDtMOzxjb21wYXQ+IDAwNEMgMDA0QTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEwgSjs7OzAxQzk7MDFDOAorMDFDODtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggU01BTEwgTEVUVEVSIEo7THQ7MDtMOzxjb21wYXQ+IDAwNEMgMDA2QTs7OztOO0xBVElOIExFVFRFUiBDQVBJVEFMIEwgU01BTEwgSjs7MDFDNzswMUM5OworMDFDOTtMQVRJTiBTTUFMTCBMRVRURVIgTEo7TGw7MDtMOzxjb21wYXQ+IDAwNkMgMDA2QTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBMIEo7OzAxQzc7OzAxQzgKKzAxQ0E7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTko7THU7MDtMOzxjb21wYXQ+IDAwNEUgMDA0QTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE4gSjs7OzAxQ0M7MDFDQgorMDFDQjtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggU01BTEwgTEVUVEVSIEo7THQ7MDtMOzxjb21wYXQ+IDAwNEUgMDA2QTs7OztOO0xBVElOIExFVFRFUiBDQVBJVEFMIE4gU01BTEwgSjs7MDFDQTswMUNDOworMDFDQztMQVRJTiBTTUFMTCBMRVRURVIgTko7TGw7MDtMOzxjb21wYXQ+IDAwNkUgMDA2QTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBOIEo7OzAxQ0E7OzAxQ0IKKzAxQ0Q7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIENBUk9OO0x1OzA7TDswMDQxIDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIEhBQ0VLOzs7MDFDRTsKKzAxQ0U7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBDQVJPTjtMbDswO0w7MDA2MSAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgSEFDRUs7OzAxQ0Q7OzAxQ0QKKzAxQ0Y7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIENBUk9OO0x1OzA7TDswMDQ5IDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIEhBQ0VLOzs7MDFEMDsKKzAxRDA7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBDQVJPTjtMbDswO0w7MDA2OSAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEkgSEFDRUs7OzAxQ0Y7OzAxQ0YKKzAxRDE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIENBUk9OO0x1OzA7TDswMDRGIDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIEhBQ0VLOzs7MDFEMjsKKzAxRDI7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBDQVJPTjtMbDswO0w7MDA2RiAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gSEFDRUs7OzAxRDE7OzAxRDEKKzAxRDM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIENBUk9OO0x1OzA7TDswMDU1IDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIEhBQ0VLOzs7MDFENDsKKzAxRDQ7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBDQVJPTjtMbDswO0w7MDA3NSAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgSEFDRUs7OzAxRDM7OzAxRDMKKzAxRDU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUyBBTkQgTUFDUk9OO0x1OzA7TDswMERDIDAzMDQ7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIERJQUVSRVNJUyBNQUNST047OzswMUQ2OworMDFENjtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUyBBTkQgTUFDUk9OO0xsOzA7TDswMEZDIDAzMDQ7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBESUFFUkVTSVMgTUFDUk9OOzswMUQ1OzswMUQ1CiswMUQ3O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVMgQU5EIEFDVVRFO0x1OzA7TDswMERDIDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIERJQUVSRVNJUyBBQ1VURTs7OzAxRDg7CiswMUQ4O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTIEFORCBBQ1VURTtMbDswO0w7MDBGQyAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgRElBRVJFU0lTIEFDVVRFOzswMUQ3OzswMUQ3CiswMUQ5O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVMgQU5EIENBUk9OO0x1OzA7TDswMERDIDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIERJQUVSRVNJUyBIQUNFSzs7OzAxREE7CiswMURBO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTIEFORCBDQVJPTjtMbDswO0w7MDBGQyAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgRElBRVJFU0lTIEhBQ0VLOzswMUQ5OzswMUQ5CiswMURCO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVMgQU5EIEdSQVZFO0x1OzA7TDswMERDIDAzMDA7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIERJQUVSRVNJUyBHUkFWRTs7OzAxREM7CiswMURDO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTIEFORCBHUkFWRTtMbDswO0w7MDBGQyAwMzAwOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgRElBRVJFU0lTIEdSQVZFOzswMURCOzswMURCCiswMUREO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgRTtMbDswO0w7Ozs7O047OzswMThFOzswMThFCiswMURFO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBESUFFUkVTSVMgQU5EIE1BQ1JPTjtMdTswO0w7MDBDNCAwMzA0Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBESUFFUkVTSVMgTUFDUk9OOzs7MDFERjsKKzAxREY7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBESUFFUkVTSVMgQU5EIE1BQ1JPTjtMbDswO0w7MDBFNCAwMzA0Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgRElBRVJFU0lTIE1BQ1JPTjs7MDFERTs7MDFERQorMDFFMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggRE9UIEFCT1ZFIEFORCBNQUNST047THU7MDtMOzAwNDEgMDMwNyAwMzA0Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBET1QgTUFDUk9OOzs7MDFFMTsKKzAxRTE7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBET1QgQUJPVkUgQU5EIE1BQ1JPTjtMbDswO0w7MDA2MSAwMzA3IDAzMDQ7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBET1QgTUFDUk9OOzswMUUwOzswMUUwCiswMUUyO0xBVElOIENBUElUQUwgTEVUVEVSIEFFIFdJVEggTUFDUk9OO0x1OzA7TDswMEM2IDAzMDQ7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIEUgTUFDUk9OOzs7MDFFMzsKKzAxRTM7TEFUSU4gU01BTEwgTEVUVEVSIEFFIFdJVEggTUFDUk9OO0xsOzA7TDswMEU2IDAzMDQ7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBFIE1BQ1JPTjs7MDFFMjs7MDFFMgorMDFFNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIEJBUjs7OzAxRTU7CiswMUU1O0xBVElOIFNNQUxMIExFVFRFUiBHIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRyBCQVI7OzAxRTQ7OzAxRTQKKzAxRTY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBXSVRIIENBUk9OO0x1OzA7TDswMDQ3IDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIEhBQ0VLOzs7MDFFNzsKKzAxRTc7TEFUSU4gU01BTEwgTEVUVEVSIEcgV0lUSCBDQVJPTjtMbDswO0w7MDA2NyAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEcgSEFDRUs7OzAxRTY7OzAxRTYKKzAxRTg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSyBXSVRIIENBUk9OO0x1OzA7TDswMDRCIDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBLIEhBQ0VLOzs7MDFFOTsKKzAxRTk7TEFUSU4gU01BTEwgTEVUVEVSIEsgV0lUSCBDQVJPTjtMbDswO0w7MDA2QiAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEsgSEFDRUs7OzAxRTg7OzAxRTgKKzAxRUE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIE9HT05FSztMdTswO0w7MDA0RiAwMzI4Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBPR09ORUs7OzswMUVCOworMDFFQjtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIE9HT05FSztMbDswO0w7MDA2RiAwMzI4Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gT0dPTkVLOzswMUVBOzswMUVBCiswMUVDO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBPR09ORUsgQU5EIE1BQ1JPTjtMdTswO0w7MDFFQSAwMzA0Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBPR09ORUsgTUFDUk9OOzs7MDFFRDsKKzAxRUQ7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBPR09ORUsgQU5EIE1BQ1JPTjtMbDswO0w7MDFFQiAwMzA0Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gT0dPTkVLIE1BQ1JPTjs7MDFFQzs7MDFFQworMDFFRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBFWkggV0lUSCBDQVJPTjtMdTswO0w7MDFCNyAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgWU9HSCBIQUNFSzs7OzAxRUY7CiswMUVGO0xBVElOIFNNQUxMIExFVFRFUiBFWkggV0lUSCBDQVJPTjtMbDswO0w7MDI5MiAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFlPR0ggSEFDRUs7OzAxRUU7OzAxRUUKKzAxRjA7TEFUSU4gU01BTEwgTEVUVEVSIEogV0lUSCBDQVJPTjtMbDswO0w7MDA2QSAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEogSEFDRUs7Ozs7CiswMUYxO0xBVElOIENBUElUQUwgTEVUVEVSIERaO0x1OzA7TDs8Y29tcGF0PiAwMDQ0IDAwNUE7Ozs7Tjs7OzswMUYzOzAxRjIKKzAxRjI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIFNNQUxMIExFVFRFUiBaO0x0OzA7TDs8Y29tcGF0PiAwMDQ0IDAwN0E7Ozs7Tjs7OzAxRjE7MDFGMzsKKzAxRjM7TEFUSU4gU01BTEwgTEVUVEVSIERaO0xsOzA7TDs8Y29tcGF0PiAwMDY0IDAwN0E7Ozs7Tjs7OzAxRjE7OzAxRjIKKzAxRjQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBXSVRIIEFDVVRFO0x1OzA7TDswMDQ3IDAzMDE7Ozs7Tjs7OzswMUY1OworMDFGNTtMQVRJTiBTTUFMTCBMRVRURVIgRyBXSVRIIEFDVVRFO0xsOzA7TDswMDY3IDAzMDE7Ozs7Tjs7OzAxRjQ7OzAxRjQKKzAxRkE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIFJJTkcgQUJPVkUgQU5EIEFDVVRFO0x1OzA7TDswMEM1IDAzMDE7Ozs7Tjs7OzswMUZCOworMDFGQjtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIFJJTkcgQUJPVkUgQU5EIEFDVVRFO0xsOzA7TDswMEU1IDAzMDE7Ozs7Tjs7OzAxRkE7OzAxRkEKKzAxRkM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQUUgV0lUSCBBQ1VURTtMdTswO0w7MDBDNiAwMzAxOzs7O047Ozs7MDFGRDsKKzAxRkQ7TEFUSU4gU01BTEwgTEVUVEVSIEFFIFdJVEggQUNVVEU7TGw7MDtMOzAwRTYgMDMwMTs7OztOOzs7MDFGQzs7MDFGQworMDFGRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggU1RST0tFIEFORCBBQ1VURTtMdTswO0w7MDBEOCAwMzAxOzs7O047Ozs7MDFGRjsKKzAxRkY7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBTVFJPS0UgQU5EIEFDVVRFO0xsOzA7TDswMEY4IDAzMDE7Ozs7Tjs7OzAxRkU7OzAxRkUKKzAyMDA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIERPVUJMRSBHUkFWRTtMdTswO0w7MDA0MSAwMzBGOzs7O047Ozs7MDIwMTsKKzAyMDE7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBET1VCTEUgR1JBVkU7TGw7MDtMOzAwNjEgMDMwRjs7OztOOzs7MDIwMDs7MDIwMAorMDIwMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggSU5WRVJURUQgQlJFVkU7THU7MDtMOzAwNDEgMDMxMTs7OztOOzs7OzAyMDM7CiswMjAzO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggSU5WRVJURUQgQlJFVkU7TGw7MDtMOzAwNjEgMDMxMTs7OztOOzs7MDIwMjs7MDIwMgorMDIwNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggRE9VQkxFIEdSQVZFO0x1OzA7TDswMDQ1IDAzMEY7Ozs7Tjs7OzswMjA1OworMDIwNTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIERPVUJMRSBHUkFWRTtMbDswO0w7MDA2NSAwMzBGOzs7O047OzswMjA0OzswMjA0CiswMjA2O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBJTlZFUlRFRCBCUkVWRTtMdTswO0w7MDA0NSAwMzExOzs7O047Ozs7MDIwNzsKKzAyMDc7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBJTlZFUlRFRCBCUkVWRTtMbDswO0w7MDA2NSAwMzExOzs7O047OzswMjA2OzswMjA2CiswMjA4O0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBET1VCTEUgR1JBVkU7THU7MDtMOzAwNDkgMDMwRjs7OztOOzs7OzAyMDk7CiswMjA5O0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggRE9VQkxFIEdSQVZFO0xsOzA7TDswMDY5IDAzMEY7Ozs7Tjs7OzAyMDg7OzAyMDgKKzAyMEE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIElOVkVSVEVEIEJSRVZFO0x1OzA7TDswMDQ5IDAzMTE7Ozs7Tjs7OzswMjBCOworMDIwQjtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIElOVkVSVEVEIEJSRVZFO0xsOzA7TDswMDY5IDAzMTE7Ozs7Tjs7OzAyMEE7OzAyMEEKKzAyMEM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIERPVUJMRSBHUkFWRTtMdTswO0w7MDA0RiAwMzBGOzs7O047Ozs7MDIwRDsKKzAyMEQ7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBET1VCTEUgR1JBVkU7TGw7MDtMOzAwNkYgMDMwRjs7OztOOzs7MDIwQzs7MDIwQworMDIwRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggSU5WRVJURUQgQlJFVkU7THU7MDtMOzAwNEYgMDMxMTs7OztOOzs7OzAyMEY7CiswMjBGO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggSU5WRVJURUQgQlJFVkU7TGw7MDtMOzAwNkYgMDMxMTs7OztOOzs7MDIwRTs7MDIwRQorMDIxMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBSIFdJVEggRE9VQkxFIEdSQVZFO0x1OzA7TDswMDUyIDAzMEY7Ozs7Tjs7OzswMjExOworMDIxMTtMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIERPVUJMRSBHUkFWRTtMbDswO0w7MDA3MiAwMzBGOzs7O047OzswMjEwOzswMjEwCiswMjEyO0xBVElOIENBUElUQUwgTEVUVEVSIFIgV0lUSCBJTlZFUlRFRCBCUkVWRTtMdTswO0w7MDA1MiAwMzExOzs7O047Ozs7MDIxMzsKKzAyMTM7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBJTlZFUlRFRCBCUkVWRTtMbDswO0w7MDA3MiAwMzExOzs7O047OzswMjEyOzswMjEyCiswMjE0O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBET1VCTEUgR1JBVkU7THU7MDtMOzAwNTUgMDMwRjs7OztOOzs7OzAyMTU7CiswMjE1O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRE9VQkxFIEdSQVZFO0xsOzA7TDswMDc1IDAzMEY7Ozs7Tjs7OzAyMTQ7OzAyMTQKKzAyMTY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIElOVkVSVEVEIEJSRVZFO0x1OzA7TDswMDU1IDAzMTE7Ozs7Tjs7OzswMjE3OworMDIxNztMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIElOVkVSVEVEIEJSRVZFO0xsOzA7TDswMDc1IDAzMTE7Ozs7Tjs7OzAyMTY7OzAyMTYKKzAyNTA7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBBO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjUxO0xBVElOIFNNQUxMIExFVFRFUiBBTFBIQTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFNDUklQVCBBOzs7OworMDI1MjtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIEFMUEhBO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIFNDUklQVCBBOzs7OworMDI1MztMQVRJTiBTTUFMTCBMRVRURVIgQiBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBCIEhPT0s7OzAxODE7OzAxODEKKzAyNTQ7TEFUSU4gU01BTEwgTEVUVEVSIE9QRU4gTztMbDswO0w7Ozs7O047OzswMTg2OzswMTg2CiswMjU1O0xBVElOIFNNQUxMIExFVFRFUiBDIFdJVEggQ1VSTDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEMgQ1VSTDs7OzsKKzAyNTY7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBUQUlMO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRCBSRVRST0ZMRVggSE9PSzs7MDE4OTs7MDE4OQorMDI1NztMQVRJTiBTTUFMTCBMRVRURVIgRCBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBEIEhPT0s7OzAxOEE7OzAxOEEKKzAyNTg7TEFUSU4gU01BTEwgTEVUVEVSIFJFVkVSU0VEIEU7TGw7MDtMOzs7OztOOzs7OzsKKzAyNTk7TEFUSU4gU01BTEwgTEVUVEVSIFNDSFdBO0xsOzA7TDs7Ozs7Tjs7OzAxOEY7OzAxOEYKKzAyNUE7TEFUSU4gU01BTEwgTEVUVEVSIFNDSFdBIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFNDSFdBIEhPT0s7Ozs7CiswMjVCO0xBVElOIFNNQUxMIExFVFRFUiBPUEVOIEU7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBFUFNJTE9OOzswMTkwOzswMTkwCiswMjVDO0xBVElOIFNNQUxMIExFVFRFUiBSRVZFUlNFRCBPUEVOIEU7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBSRVZFUlNFRCBFUFNJTE9OOzs7OworMDI1RDtMQVRJTiBTTUFMTCBMRVRURVIgUkVWRVJTRUQgT1BFTiBFIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFJFVkVSU0VEIEVQU0lMT04gSE9PSzs7OzsKKzAyNUU7TEFUSU4gU01BTEwgTEVUVEVSIENMT1NFRCBSRVZFUlNFRCBPUEVOIEU7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBDTE9TRUQgUkVWRVJTRUQgRVBTSUxPTjs7OzsKKzAyNUY7TEFUSU4gU01BTEwgTEVUVEVSIERPVExFU1MgSiBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIERPVExFU1MgSiBCQVI7Ozs7CiswMjYwO0xBVElOIFNNQUxMIExFVFRFUiBHIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEcgSE9PSzs7MDE5Mzs7MDE5MworMDI2MTtMQVRJTiBTTUFMTCBMRVRURVIgU0NSSVBUIEc7TGw7MDtMOzs7OztOOzs7OzsKKzAyNjI7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgRztMbDswO0w7Ozs7O047Ozs7OworMDI2MztMQVRJTiBTTUFMTCBMRVRURVIgR0FNTUE7TGw7MDtMOzs7OztOOzs7MDE5NDs7MDE5NAorMDI2NDtMQVRJTiBTTUFMTCBMRVRURVIgUkFNUyBIT1JOO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQkFCWSBHQU1NQTs7OzsKKzAyNjU7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBIO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjY2O0xBVElOIFNNQUxMIExFVFRFUiBIIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEggSE9PSzs7OzsKKzAyNjc7TEFUSU4gU01BTEwgTEVUVEVSIEhFTkcgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSEVORyBIT09LOzs7OworMDI2ODtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEJBUlJFRCBJOzswMTk3OzswMTk3CiswMjY5O0xBVElOIFNNQUxMIExFVFRFUiBJT1RBO0xsOzA7TDs7Ozs7Tjs7OzAxOTY7OzAxOTYKKzAyNkE7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgSTtMbDswO0w7Ozs7O047Ozs7OworMDI2QjtMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIE1JRERMRSBUSUxERTtMbDswO0w7Ozs7O047Ozs7OworMDI2QztMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIEJFTFQ7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBMIEJFTFQ7Ozs7CiswMjZEO0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggUkVUUk9GTEVYIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBMIFJFVFJPRkxFWCBIT09LOzs7OworMDI2RTtMQVRJTiBTTUFMTCBMRVRURVIgTEVaSDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEwgWU9HSDs7OzsKKzAyNkY7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBNO0xsOzA7TDs7Ozs7Tjs7OzAxOUM7OzAxOUMKKzAyNzA7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBNIFdJVEggTE9ORyBMRUc7TGw7MDtMOzs7OztOOzs7OzsKKzAyNzE7TEFUSU4gU01BTEwgTEVUVEVSIE0gV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTSBIT09LOzs7OworMDI3MjtMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIExFRlQgSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE4gSE9PSzs7MDE5RDs7MDE5RAorMDI3MztMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIFJFVFJPRkxFWCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTiBSRVRST0ZMRVggSE9PSzs7OzsKKzAyNzQ7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgTjtMbDswO0w7Ozs7O047Ozs7OworMDI3NTtMQVRJTiBTTUFMTCBMRVRURVIgQkFSUkVEIE87TGw7MDtMOzs7OztOOzs7MDE5Rjs7MDE5RgorMDI3NjtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBPRTtMbDswO0w7Ozs7O047TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgTyBFOzs7OworMDI3NztMQVRJTiBTTUFMTCBMRVRURVIgQ0xPU0VEIE9NRUdBO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjc4O0xBVElOIFNNQUxMIExFVFRFUiBQSEk7TGw7MDtMOzs7OztOOzs7OzsKKzAyNzk7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBSO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjdBO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgUiBXSVRIIExPTkcgTEVHO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjdCO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgUiBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgUiBIT09LOzs7OworMDI3QztMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIExPTkcgTEVHO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjdEO0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggVEFJTDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFIgSE9PSzs7OzsKKzAyN0U7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBGSVNISE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEZJU0hIT09LIFI7Ozs7CiswMjdGO0xBVElOIFNNQUxMIExFVFRFUiBSRVZFUlNFRCBSIFdJVEggRklTSEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBSRVZFUlNFRCBGSVNISE9PSyBSOzs7OworMDI4MDtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBSO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjgxO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIElOVkVSVEVEIFI7TGw7MDtMOzs7OztOOzs7OzsKKzAyODI7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUyBIT09LOzs7OworMDI4MztMQVRJTiBTTUFMTCBMRVRURVIgRVNIO0xsOzA7TDs7Ozs7Tjs7OzAxQTk7OzAxQTkKKzAyODQ7TEFUSU4gU01BTEwgTEVUVEVSIERPVExFU1MgSiBXSVRIIFNUUk9LRSBBTkQgSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIERPVExFU1MgSiBCQVIgSE9PSzs7OzsKKzAyODU7TEFUSU4gU01BTEwgTEVUVEVSIFNRVUFUIFJFVkVSU0VEIEVTSDtMbDswO0w7Ozs7O047Ozs7OworMDI4NjtMQVRJTiBTTUFMTCBMRVRURVIgRVNIIFdJVEggQ1VSTDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEVTSCBDVVJMOzs7OworMDI4NztMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIFQ7TGw7MDtMOzs7OztOOzs7OzsKKzAyODg7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBSRVRST0ZMRVggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFQgUkVUUk9GTEVYIEhPT0s7OzAxQUU7OzAxQUUKKzAyODk7TEFUSU4gU01BTEwgTEVUVEVSIFUgQkFSO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjhBO0xBVElOIFNNQUxMIExFVFRFUiBVUFNJTE9OO0xsOzA7TDs7Ozs7Tjs7OzAxQjE7OzAxQjEKKzAyOEI7TEFUSU4gU01BTEwgTEVUVEVSIFYgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgU0NSSVBUIFY7OzAxQjI7OzAxQjIKKzAyOEM7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBWO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjhEO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgVztMbDswO0w7Ozs7O047Ozs7OworMDI4RTtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIFk7TGw7MDtMOzs7OztOOzs7OzsKKzAyOEY7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgWTtMbDswO0w7Ozs7O047Ozs7OworMDI5MDtMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIFJFVFJPRkxFWCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWiBSRVRST0ZMRVggSE9PSzs7OzsKKzAyOTE7TEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBDVVJMO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWiBDVVJMOzs7OworMDI5MjtMQVRJTiBTTUFMTCBMRVRURVIgRVpIO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWU9HSDs7MDFCNzs7MDFCNworMDI5MztMQVRJTiBTTUFMTCBMRVRURVIgRVpIIFdJVEggQ1VSTDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFlPR0ggQ1VSTDs7OzsKKzAyOTQ7TEFUSU4gTEVUVEVSIEdMT1RUQUwgU1RPUDtMbDswO0w7Ozs7O047Ozs7OworMDI5NTtMQVRJTiBMRVRURVIgUEhBUllOR0VBTCBWT0lDRUQgRlJJQ0FUSVZFO0xsOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgUkVWRVJTRUQgR0xPVFRBTCBTVE9QOzs7OworMDI5NjtMQVRJTiBMRVRURVIgSU5WRVJURUQgR0xPVFRBTCBTVE9QO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjk3O0xBVElOIExFVFRFUiBTVFJFVENIRUQgQztMbDswO0w7Ozs7O047Ozs7OworMDI5ODtMQVRJTiBMRVRURVIgQklMQUJJQUwgQ0xJQ0s7TGw7MDtMOzs7OztOO0xBVElOIExFVFRFUiBCVUxMU0VZRTs7OzsKKzAyOTk7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgQjtMbDswO0w7Ozs7O047Ozs7OworMDI5QTtMQVRJTiBTTUFMTCBMRVRURVIgQ0xPU0VEIE9QRU4gRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIENMT1NFRCBFUFNJTE9OOzs7OworMDI5QjtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBHIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgRyBIT09LOzs7OworMDI5QztMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBIO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjlEO0xBVElOIFNNQUxMIExFVFRFUiBKIFdJVEggQ1JPU1NFRC1UQUlMO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQ1JPU1NFRC1UQUlMIEo7Ozs7CiswMjlFO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgSztMbDswO0w7Ozs7O047Ozs7OworMDI5RjtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBMO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMkEwO0xBVElOIFNNQUxMIExFVFRFUiBRIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFEgSE9PSzs7OzsKKzAyQTE7TEFUSU4gTEVUVEVSIEdMT1RUQUwgU1RPUCBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gTEVUVEVSIEdMT1RUQUwgU1RPUCBCQVI7Ozs7CiswMkEyO0xBVElOIExFVFRFUiBSRVZFUlNFRCBHTE9UVEFMIFNUT1AgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIExFVFRFUiBSRVZFUlNFRCBHTE9UVEFMIFNUT1AgQkFSOzs7OworMDJBMztMQVRJTiBTTUFMTCBMRVRURVIgRFogRElHUkFQSDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEQgWjs7OzsKKzAyQTQ7TEFUSU4gU01BTEwgTEVUVEVSIERFWkggRElHUkFQSDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEQgWU9HSDs7OzsKKzAyQTU7TEFUSU4gU01BTEwgTEVUVEVSIERaIERJR1JBUEggV0lUSCBDVVJMO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRCBaIENVUkw7Ozs7CiswMkE2O0xBVElOIFNNQUxMIExFVFRFUiBUUyBESUdSQVBIO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVCBTOzs7OworMDJBNztMQVRJTiBTTUFMTCBMRVRURVIgVEVTSCBESUdSQVBIO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVCBFU0g7Ozs7CiswMkE4O0xBVElOIFNNQUxMIExFVFRFUiBUQyBESUdSQVBIIFdJVEggQ1VSTDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFQgQyBDVVJMOzs7OworMDJCMDtNT0RJRklFUiBMRVRURVIgU01BTEwgSDtMbTswO0w7PHN1cGVyPiAwMDY4Ozs7O047Ozs7OworMDJCMTtNT0RJRklFUiBMRVRURVIgU01BTEwgSCBXSVRIIEhPT0s7TG07MDtMOzxzdXBlcj4gMDI2Njs7OztOO01PRElGSUVSIExFVFRFUiBTTUFMTCBIIEhPT0s7Ozs7CiswMkIyO01PRElGSUVSIExFVFRFUiBTTUFMTCBKO0xtOzA7TDs8c3VwZXI+IDAwNkE7Ozs7Tjs7Ozs7CiswMkIzO01PRElGSUVSIExFVFRFUiBTTUFMTCBSO0xtOzA7TDs8c3VwZXI+IDAwNzI7Ozs7Tjs7Ozs7CiswMkI0O01PRElGSUVSIExFVFRFUiBTTUFMTCBUVVJORUQgUjtMbTswO0w7PHN1cGVyPiAwMjc5Ozs7O047Ozs7OworMDJCNTtNT0RJRklFUiBMRVRURVIgU01BTEwgVFVSTkVEIFIgV0lUSCBIT09LO0xtOzA7TDs8c3VwZXI+IDAyN0I7Ozs7TjtNT0RJRklFUiBMRVRURVIgU01BTEwgVFVSTkVEIFIgSE9PSzs7OzsKKzAyQjY7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIENBUElUQUwgSU5WRVJURUQgUjtMbTswO0w7PHN1cGVyPiAwMjgxOzs7O047Ozs7OworMDJCNztNT0RJRklFUiBMRVRURVIgU01BTEwgVztMbTswO0w7PHN1cGVyPiAwMDc3Ozs7O047Ozs7OworMDJCODtNT0RJRklFUiBMRVRURVIgU01BTEwgWTtMbTswO0w7PHN1cGVyPiAwMDc5Ozs7O047Ozs7OworMDJCOTtNT0RJRklFUiBMRVRURVIgUFJJTUU7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkJBO01PRElGSUVSIExFVFRFUiBET1VCTEUgUFJJTUU7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkJCO01PRElGSUVSIExFVFRFUiBUVVJORUQgQ09NTUE7TG07MDtMOzs7OztOOzs7OzsKKzAyQkM7TU9ESUZJRVIgTEVUVEVSIEFQT1NUUk9QSEU7TG07MDtMOzs7OztOOzs7OzsKKzAyQkQ7TU9ESUZJRVIgTEVUVEVSIFJFVkVSU0VEIENPTU1BO0xtOzA7TDs7Ozs7Tjs7Ozs7CiswMkJFO01PRElGSUVSIExFVFRFUiBSSUdIVCBIQUxGIFJJTkc7TG07MDtMOzs7OztOOzs7OzsKKzAyQkY7TU9ESUZJRVIgTEVUVEVSIExFRlQgSEFMRiBSSU5HO0xtOzA7TDs7Ozs7Tjs7Ozs7CiswMkMwO01PRElGSUVSIExFVFRFUiBHTE9UVEFMIFNUT1A7TG07MDtMOzs7OztOOzs7OzsKKzAyQzE7TU9ESUZJRVIgTEVUVEVSIFJFVkVSU0VEIEdMT1RUQUwgU1RPUDtMbTswO0w7Ozs7O047Ozs7OworMDJDMjtNT0RJRklFUiBMRVRURVIgTEVGVCBBUlJPV0hFQUQ7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkMzO01PRElGSUVSIExFVFRFUiBSSUdIVCBBUlJPV0hFQUQ7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkM0O01PRElGSUVSIExFVFRFUiBVUCBBUlJPV0hFQUQ7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkM1O01PRElGSUVSIExFVFRFUiBET1dOIEFSUk9XSEVBRDtTazswO09OOzs7OztOOzs7OzsKKzAyQzY7TU9ESUZJRVIgTEVUVEVSIENJUkNVTUZMRVggQUNDRU5UO1NrOzA7T047Ozs7O047TU9ESUZJRVIgTEVUVEVSIENJUkNVTUZMRVg7Ozs7CiswMkM3O0NBUk9OO1NrOzA7T047Ozs7O047TU9ESUZJRVIgTEVUVEVSIEhBQ0VLO01hbmRhcmluIENoaW5lc2UgdGhpcmQgdG9uZTs7OworMDJDODtNT0RJRklFUiBMRVRURVIgVkVSVElDQUwgTElORTtTazswO09OOzs7OztOOzs7OzsKKzAyQzk7TU9ESUZJRVIgTEVUVEVSIE1BQ1JPTjtTazswO09OOzs7OztOOztNYW5kYXJpbiBDaGluZXNlIGZpcnN0IHRvbmU7OzsKKzAyQ0E7TU9ESUZJRVIgTEVUVEVSIEFDVVRFIEFDQ0VOVDtTazswO09OOzs7OztOO01PRElGSUVSIExFVFRFUiBBQ1VURTtNYW5kYXJpbiBDaGluZXNlIHNlY29uZCB0b25lOzs7CiswMkNCO01PRElGSUVSIExFVFRFUiBHUkFWRSBBQ0NFTlQ7U2s7MDtPTjs7Ozs7TjtNT0RJRklFUiBMRVRURVIgR1JBVkU7TWFuZGFyaW4gQ2hpbmVzZSBmb3VydGggdG9uZTs7OworMDJDQztNT0RJRklFUiBMRVRURVIgTE9XIFZFUlRJQ0FMIExJTkU7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkNEO01PRElGSUVSIExFVFRFUiBMT1cgTUFDUk9OO1NrOzA7T047Ozs7O047Ozs7OworMDJDRTtNT0RJRklFUiBMRVRURVIgTE9XIEdSQVZFIEFDQ0VOVDtTazswO09OOzs7OztOO01PRElGSUVSIExFVFRFUiBMT1cgR1JBVkU7Ozs7CiswMkNGO01PRElGSUVSIExFVFRFUiBMT1cgQUNVVEUgQUNDRU5UO1NrOzA7T047Ozs7O047TU9ESUZJRVIgTEVUVEVSIExPVyBBQ1VURTs7OzsKKzAyRDA7TU9ESUZJRVIgTEVUVEVSIFRSSUFOR1VMQVIgQ09MT047TG07MDtPTjs7Ozs7Tjs7Ozs7CiswMkQxO01PRElGSUVSIExFVFRFUiBIQUxGIFRSSUFOR1VMQVIgQ09MT047TG07MDtPTjs7Ozs7Tjs7Ozs7CiswMkQyO01PRElGSUVSIExFVFRFUiBDRU5UUkVEIFJJR0hUIEhBTEYgUklORztTazswO09OOzs7OztOO01PRElGSUVSIExFVFRFUiBDRU5URVJFRCBSSUdIVCBIQUxGIFJJTkc7Ozs7CiswMkQzO01PRElGSUVSIExFVFRFUiBDRU5UUkVEIExFRlQgSEFMRiBSSU5HO1NrOzA7T047Ozs7O047TU9ESUZJRVIgTEVUVEVSIENFTlRFUkVEIExFRlQgSEFMRiBSSU5HOzs7OworMDJENDtNT0RJRklFUiBMRVRURVIgVVAgVEFDSztTazswO09OOzs7OztOOzs7OzsKKzAyRDU7TU9ESUZJRVIgTEVUVEVSIERPV04gVEFDSztTazswO09OOzs7OztOOzs7OzsKKzAyRDY7TU9ESUZJRVIgTEVUVEVSIFBMVVMgU0lHTjtTazswO09OOzs7OztOOzs7OzsKKzAyRDc7TU9ESUZJRVIgTEVUVEVSIE1JTlVTIFNJR047U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkQ4O0JSRVZFO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzA2Ozs7O047U1BBQ0lORyBCUkVWRTs7OzsKKzAyRDk7RE9UIEFCT1ZFO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzA3Ozs7O047U1BBQ0lORyBET1QgQUJPVkU7TWFuZGFyaW4gQ2hpbmVzZSBsaWdodCB0b25lOzs7CiswMkRBO1JJTkcgQUJPVkU7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMEE7Ozs7TjtTUEFDSU5HIFJJTkcgQUJPVkU7Ozs7CiswMkRCO09HT05FSztTazswO09OOzxjb21wYXQ+IDAwMjAgMDMyODs7OztOO1NQQUNJTkcgT0dPTkVLOzs7OworMDJEQztTTUFMTCBUSUxERTtTazswO09OOzxjb21wYXQ+IDAwMjAgMDMwMzs7OztOO1NQQUNJTkcgVElMREU7Ozs7CiswMkREO0RPVUJMRSBBQ1VURSBBQ0NFTlQ7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMEI7Ozs7TjtTUEFDSU5HIERPVUJMRSBBQ1VURTs7OzsKKzAyREU7TU9ESUZJRVIgTEVUVEVSIFJIT1RJQyBIT09LO1NrOzA7T047Ozs7O047Ozs7OworMDJFMDtNT0RJRklFUiBMRVRURVIgU01BTEwgR0FNTUE7TG07MDtMOzxzdXBlcj4gMDI2Mzs7OztOOzs7OzsKKzAyRTE7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIEw7TG07MDtMOzxzdXBlcj4gMDA2Qzs7OztOOzs7OzsKKzAyRTI7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFM7TG07MDtMOzxzdXBlcj4gMDA3Mzs7OztOOzs7OzsKKzAyRTM7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFg7TG07MDtMOzxzdXBlcj4gMDA3ODs7OztOOzs7OzsKKzAyRTQ7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFJFVkVSU0VEIEdMT1RUQUwgU1RPUDtMbTswO0w7PHN1cGVyPiAwMjk1Ozs7O047Ozs7OworMDJFNTtNT0RJRklFUiBMRVRURVIgRVhUUkEtSElHSCBUT05FIEJBUjtTazswO09OOzs7OztOOzs7OzsKKzAyRTY7TU9ESUZJRVIgTEVUVEVSIEhJR0ggVE9ORSBCQVI7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkU3O01PRElGSUVSIExFVFRFUiBNSUQgVE9ORSBCQVI7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkU4O01PRElGSUVSIExFVFRFUiBMT1cgVE9ORSBCQVI7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkU5O01PRElGSUVSIExFVFRFUiBFWFRSQS1MT1cgVE9ORSBCQVI7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMzAwO0NPTUJJTklORyBHUkFWRSBBQ0NFTlQ7TW47MjMwO09OOzs7OztOO05PTi1TUEFDSU5HIEdSQVZFO1ZhcmlhOzs7CiswMzAxO0NPTUJJTklORyBBQ1VURSBBQ0NFTlQ7TW47MjMwO09OOzs7OztOO05PTi1TUEFDSU5HIEFDVVRFO094aWE7OzsKKzAzMDI7Q09NQklOSU5HIENJUkNVTUZMRVggQUNDRU5UO01uOzIzMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBDSVJDVU1GTEVYOzs7OworMDMwMztDT01CSU5JTkcgVElMREU7TW47MjMwO09OOzs7OztOO05PTi1TUEFDSU5HIFRJTERFOzs7OworMDMwNDtDT01CSU5JTkcgTUFDUk9OO01uOzIzMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBNQUNST047Ozs7CiswMzA1O0NPTUJJTklORyBPVkVSTElORTtNbjsyMzA7T047Ozs7O047Tk9OLVNQQUNJTkcgT1ZFUlNDT1JFOzs7OworMDMwNjtDT01CSU5JTkcgQlJFVkU7TW47MjMwO09OOzs7OztOO05PTi1TUEFDSU5HIEJSRVZFO1ZyYWNoeTs7OworMDMwNztDT01CSU5JTkcgRE9UIEFCT1ZFO01uOzIzMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBET1QgQUJPVkU7Ozs7CiswMzA4O0NPTUJJTklORyBESUFFUkVTSVM7TW47MjMwO09OOzs7OztOO05PTi1TUEFDSU5HIERJQUVSRVNJUztEaWFseXRpa2E7OzsKKzAzMDk7Q09NQklOSU5HIEhPT0sgQUJPVkU7TW47MjMwO09OOzs7OztOO05PTi1TUEFDSU5HIEhPT0sgQUJPVkU7Ozs7CiswMzBBO0NPTUJJTklORyBSSU5HIEFCT1ZFO01uOzIzMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBSSU5HIEFCT1ZFOzs7OworMDMwQjtDT01CSU5JTkcgRE9VQkxFIEFDVVRFIEFDQ0VOVDtNbjsyMzA7T047Ozs7O047Tk9OLVNQQUNJTkcgRE9VQkxFIEFDVVRFOzs7OworMDMwQztDT01CSU5JTkcgQ0FST047TW47MjMwO09OOzs7OztOO05PTi1TUEFDSU5HIEhBQ0VLOzs7OworMDMwRDtDT01CSU5JTkcgVkVSVElDQUwgTElORSBBQk9WRTtNbjsyMzA7T047Ozs7O047Tk9OLVNQQUNJTkcgVkVSVElDQUwgTElORSBBQk9WRTtUb25vczs7OworMDMwRTtDT01CSU5JTkcgRE9VQkxFIFZFUlRJQ0FMIExJTkUgQUJPVkU7TW47MjMwO09OOzs7OztOO05PTi1TUEFDSU5HIERPVUJMRSBWRVJUSUNBTCBMSU5FIEFCT1ZFOzs7OworMDMwRjtDT01CSU5JTkcgRE9VQkxFIEdSQVZFIEFDQ0VOVDtNbjsyMzA7T047Ozs7O047Tk9OLVNQQUNJTkcgRE9VQkxFIEdSQVZFOzs7OworMDMxMDtDT01CSU5JTkcgQ0FORFJBQklORFU7TW47MjMwO09OOzAzMDYgMDMwNzs7OztOO05PTi1TUEFDSU5HIENBTkRSQUJJTkRVOzs7OworMDMxMTtDT01CSU5JTkcgSU5WRVJURUQgQlJFVkU7TW47MjMwO09OOzs7OztOO05PTi1TUEFDSU5HIElOVkVSVEVEIEJSRVZFOzs7OworMDMxMjtDT01CSU5JTkcgVFVSTkVEIENPTU1BIEFCT1ZFO01uOzIzMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBUVVJORUQgQ09NTUEgQUJPVkU7Ozs7CiswMzEzO0NPTUJJTklORyBDT01NQSBBQk9WRTtNbjsyMzA7T047Ozs7O047Tk9OLVNQQUNJTkcgQ09NTUEgQUJPVkU7UHNpbGk7OzsKKzAzMTQ7Q09NQklOSU5HIFJFVkVSU0VEIENPTU1BIEFCT1ZFO01uOzIzMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBSRVZFUlNFRCBDT01NQSBBQk9WRTtEYXNpYTs7OworMDMxNTtDT01CSU5JTkcgQ09NTUEgQUJPVkUgUklHSFQ7TW47MjMyO09OOzs7OztOO05PTi1TUEFDSU5HIENPTU1BIEFCT1ZFIFJJR0hUOzs7OworMDMxNjtDT01CSU5JTkcgR1JBVkUgQUNDRU5UIEJFTE9XO01uOzIyMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBHUkFWRSBCRUxPVzs7OzsKKzAzMTc7Q09NQklOSU5HIEFDVVRFIEFDQ0VOVCBCRUxPVztNbjsyMjA7T047Ozs7O047Tk9OLVNQQUNJTkcgQUNVVEUgQkVMT1c7Ozs7CiswMzE4O0NPTUJJTklORyBMRUZUIFRBQ0sgQkVMT1c7TW47MjIwO09OOzs7OztOO05PTi1TUEFDSU5HIExFRlQgVEFDSyBCRUxPVzs7OzsKKzAzMTk7Q09NQklOSU5HIFJJR0hUIFRBQ0sgQkVMT1c7TW47MjIwO09OOzs7OztOO05PTi1TUEFDSU5HIFJJR0hUIFRBQ0sgQkVMT1c7Ozs7CiswMzFBO0NPTUJJTklORyBMRUZUIEFOR0xFIEFCT1ZFO01uOzIzMjtPTjs7Ozs7TjtOT04tU1BBQ0lORyBMRUZUIEFOR0xFIEFCT1ZFOzs7OworMDMxQjtDT01CSU5JTkcgSE9STjtNbjsyMTY7T047Ozs7O047Tk9OLVNQQUNJTkcgSE9STjs7OzsKKzAzMUM7Q09NQklOSU5HIExFRlQgSEFMRiBSSU5HIEJFTE9XO01uOzIyMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBMRUZUIEhBTEYgUklORyBCRUxPVzs7OzsKKzAzMUQ7Q09NQklOSU5HIFVQIFRBQ0sgQkVMT1c7TW47MjIwO09OOzs7OztOO05PTi1TUEFDSU5HIFVQIFRBQ0sgQkVMT1c7Ozs7CiswMzFFO0NPTUJJTklORyBET1dOIFRBQ0sgQkVMT1c7TW47MjIwO09OOzs7OztOO05PTi1TUEFDSU5HIERPV04gVEFDSyBCRUxPVzs7OzsKKzAzMUY7Q09NQklOSU5HIFBMVVMgU0lHTiBCRUxPVztNbjsyMjA7T047Ozs7O047Tk9OLVNQQUNJTkcgUExVUyBTSUdOIEJFTE9XOzs7OworMDMyMDtDT01CSU5JTkcgTUlOVVMgU0lHTiBCRUxPVztNbjsyMjA7T047Ozs7O047Tk9OLVNQQUNJTkcgTUlOVVMgU0lHTiBCRUxPVzs7OzsKKzAzMjE7Q09NQklOSU5HIFBBTEFUQUxJWkVEIEhPT0sgQkVMT1c7TW47MjAyO09OOzs7OztOO05PTi1TUEFDSU5HIFBBTEFUQUxJWkVEIEhPT0sgQkVMT1c7Ozs7CiswMzIyO0NPTUJJTklORyBSRVRST0ZMRVggSE9PSyBCRUxPVztNbjsyMDI7T047Ozs7O047Tk9OLVNQQUNJTkcgUkVUUk9GTEVYIEhPT0sgQkVMT1c7Ozs7CiswMzIzO0NPTUJJTklORyBET1QgQkVMT1c7TW47MjIwO09OOzs7OztOO05PTi1TUEFDSU5HIERPVCBCRUxPVzs7OzsKKzAzMjQ7Q09NQklOSU5HIERJQUVSRVNJUyBCRUxPVztNbjsyMjA7T047Ozs7O047Tk9OLVNQQUNJTkcgRE9VQkxFIERPVCBCRUxPVzs7OzsKKzAzMjU7Q09NQklOSU5HIFJJTkcgQkVMT1c7TW47MjIwO09OOzs7OztOO05PTi1TUEFDSU5HIFJJTkcgQkVMT1c7Ozs7CiswMzI2O0NPTUJJTklORyBDT01NQSBCRUxPVztNbjsyMjA7T047Ozs7O047Tk9OLVNQQUNJTkcgQ09NTUEgQkVMT1c7Ozs7CiswMzI3O0NPTUJJTklORyBDRURJTExBO01uOzIwMjtPTjs7Ozs7TjtOT04tU1BBQ0lORyBDRURJTExBOzs7OworMDMyODtDT01CSU5JTkcgT0dPTkVLO01uOzIwMjtPTjs7Ozs7TjtOT04tU1BBQ0lORyBPR09ORUs7Ozs7CiswMzI5O0NPTUJJTklORyBWRVJUSUNBTCBMSU5FIEJFTE9XO01uOzIyMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBWRVJUSUNBTCBMSU5FIEJFTE9XOzs7OworMDMyQTtDT01CSU5JTkcgQlJJREdFIEJFTE9XO01uOzIyMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBCUklER0UgQkVMT1c7Ozs7CiswMzJCO0NPTUJJTklORyBJTlZFUlRFRCBET1VCTEUgQVJDSCBCRUxPVztNbjsyMjA7T047Ozs7O047Tk9OLVNQQUNJTkcgSU5WRVJURUQgRE9VQkxFIEFSQ0ggQkVMT1c7Ozs7CiswMzJDO0NPTUJJTklORyBDQVJPTiBCRUxPVztNbjsyMjA7T047Ozs7O047Tk9OLVNQQUNJTkcgSEFDRUsgQkVMT1c7Ozs7CiswMzJEO0NPTUJJTklORyBDSVJDVU1GTEVYIEFDQ0VOVCBCRUxPVztNbjsyMjA7T047Ozs7O047Tk9OLVNQQUNJTkcgQ0lSQ1VNRkxFWCBCRUxPVzs7OzsKKzAzMkU7Q09NQklOSU5HIEJSRVZFIEJFTE9XO01uOzIyMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBCUkVWRSBCRUxPVzs7OzsKKzAzMkY7Q09NQklOSU5HIElOVkVSVEVEIEJSRVZFIEJFTE9XO01uOzIyMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBJTlZFUlRFRCBCUkVWRSBCRUxPVzs7OzsKKzAzMzA7Q09NQklOSU5HIFRJTERFIEJFTE9XO01uOzIyMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBUSUxERSBCRUxPVzs7OzsKKzAzMzE7Q09NQklOSU5HIE1BQ1JPTiBCRUxPVztNbjsyMjA7T047Ozs7O047Tk9OLVNQQUNJTkcgTUFDUk9OIEJFTE9XOzs7OworMDMzMjtDT01CSU5JTkcgTE9XIExJTkU7TW47MjIwO09OOzs7OztOO05PTi1TUEFDSU5HIFVOREVSU0NPUkU7Ozs7CiswMzMzO0NPTUJJTklORyBET1VCTEUgTE9XIExJTkU7TW47MjIwO09OOzs7OztOO05PTi1TUEFDSU5HIERPVUJMRSBVTkRFUlNDT1JFOzs7OworMDMzNDtDT01CSU5JTkcgVElMREUgT1ZFUkxBWTtNbjsxO09OOzs7OztOO05PTi1TUEFDSU5HIFRJTERFIE9WRVJMQVk7Ozs7CiswMzM1O0NPTUJJTklORyBTSE9SVCBTVFJPS0UgT1ZFUkxBWTtNbjsxO09OOzs7OztOO05PTi1TUEFDSU5HIFNIT1JUIEJBUiBPVkVSTEFZOzs7OworMDMzNjtDT01CSU5JTkcgTE9ORyBTVFJPS0UgT1ZFUkxBWTtNbjsxO09OOzs7OztOO05PTi1TUEFDSU5HIExPTkcgQkFSIE9WRVJMQVk7Ozs7CiswMzM3O0NPTUJJTklORyBTSE9SVCBTT0xJRFVTIE9WRVJMQVk7TW47MTtPTjs7Ozs7TjtOT04tU1BBQ0lORyBTSE9SVCBTTEFTSCBPVkVSTEFZOzs7OworMDMzODtDT01CSU5JTkcgTE9ORyBTT0xJRFVTIE9WRVJMQVk7TW47MTtPTjs7Ozs7TjtOT04tU1BBQ0lORyBMT05HIFNMQVNIIE9WRVJMQVk7Ozs7CiswMzM5O0NPTUJJTklORyBSSUdIVCBIQUxGIFJJTkcgQkVMT1c7TW47MjIwO09OOzs7OztOO05PTi1TUEFDSU5HIFJJR0hUIEhBTEYgUklORyBCRUxPVzs7OzsKKzAzM0E7Q09NQklOSU5HIElOVkVSVEVEIEJSSURHRSBCRUxPVztNbjsyMjA7T047Ozs7O047Tk9OLVNQQUNJTkcgSU5WRVJURUQgQlJJREdFIEJFTE9XOzs7OworMDMzQjtDT01CSU5JTkcgU1FVQVJFIEJFTE9XO01uOzIyMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBTUVVBUkUgQkVMT1c7Ozs7CiswMzNDO0NPTUJJTklORyBTRUFHVUxMIEJFTE9XO01uOzIyMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBTRUFHVUxMIEJFTE9XOzs7OworMDMzRDtDT01CSU5JTkcgWCBBQk9WRTtNbjsyMzA7T047Ozs7O047Tk9OLVNQQUNJTkcgWCBBQk9WRTs7OzsKKzAzM0U7Q09NQklOSU5HIFZFUlRJQ0FMIFRJTERFO01uOzIzMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBWRVJUSUNBTCBUSUxERTs7OzsKKzAzM0Y7Q09NQklOSU5HIERPVUJMRSBPVkVSTElORTtNbjsyMzA7T047Ozs7O047Tk9OLVNQQUNJTkcgRE9VQkxFIE9WRVJTQ09SRTs7OzsKKzAzNDA7Q09NQklOSU5HIEdSQVZFIFRPTkUgTUFSSztNbjsyMzA7T047MDMwMDs7OztOO05PTi1TUEFDSU5HIEdSQVZFIFRPTkUgTUFSSztWaWV0bmFtZXNlOzs7CiswMzQxO0NPTUJJTklORyBBQ1VURSBUT05FIE1BUks7TW47MjMwO09OOzAzMDE7Ozs7TjtOT04tU1BBQ0lORyBBQ1VURSBUT05FIE1BUks7VmlldG5hbWVzZTs7OworMDM0MjtDT01CSU5JTkcgR1JFRUsgUEVSSVNQT01FTkk7TW47MjMwO09OOzs7OztOOzs7OzsKKzAzNDM7Q09NQklOSU5HIEdSRUVLIEtPUk9OSVM7TW47MjMwO09OOzAzMTM7Ozs7Tjs7Ozs7CiswMzQ0O0NPTUJJTklORyBHUkVFSyBESUFMWVRJS0EgVE9OT1M7TW47MjMwO09OOzAzMDggMDMwRDs7OztOO0dSRUVLIE5PTi1TUEFDSU5HIERJQUVSRVNJUyBUT05PUzs7OzsKKzAzNDU7Q09NQklOSU5HIEdSRUVLIFlQT0dFR1JBTU1FTkk7TW47MjIwO09OOzs7OztOO0dSRUVLIE5PTi1TUEFDSU5HIElPVEEgQkVMT1c7Ozs7CiswMzYwO0NPTUJJTklORyBET1VCTEUgVElMREU7TW47MjM0O09OOzs7OztOOzs7OzsKKzAzNjE7Q09NQklOSU5HIERPVUJMRSBJTlZFUlRFRCBCUkVWRTtNbjsyMzQ7T047Ozs7O047Ozs7OworMDM3NDtHUkVFSyBOVU1FUkFMIFNJR047UG87MDtMOzAyQjk7Ozs7TjtHUkVFSyBVUFBFUiBOVU1FUkFMIFNJR047RGV4aWEga2VyYWlhOzs7CiswMzc1O0dSRUVLIExPV0VSIE5VTUVSQUwgU0lHTjtQbzswO0w7Ozs7O047O0FyaXN0ZXJpIGtlcmFpYTs7OworMDM3QTtHUkVFSyBZUE9HRUdSQU1NRU5JO0xtOzA7TDs8Y29tcGF0PiAwMDIwIDAzNDU7Ozs7TjtHUkVFSyBTUEFDSU5HIElPVEEgQkVMT1c7Ozs7CiswMzdFO0dSRUVLIFFVRVNUSU9OIE1BUks7UG87MDtMOzAwM0I7Ozs7Tjs7RXJvdGltYXRpa287OzsKKzAzODQ7R1JFRUsgVE9OT1M7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMEQ7Ozs7TjtHUkVFSyBTUEFDSU5HIFRPTk9TOzs7OworMDM4NTtHUkVFSyBESUFMWVRJS0EgVE9OT1M7U2s7MDtPTjswMEE4IDAzMEQ7Ozs7TjtHUkVFSyBTUEFDSU5HIERJQUVSRVNJUyBUT05PUzs7OzsKKzAzODY7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBUT05PUztMdTswO0w7MDM5MSAwMzBEOzs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgVE9OT1M7OzswM0FDOworMDM4NztHUkVFSyBBTk8gVEVMRUlBO1BvOzA7TDswMEI3Ozs7O047Ozs7OworMDM4ODtHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OIFdJVEggVE9OT1M7THU7MDtMOzAzOTUgMDMwRDs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gVE9OT1M7OzswM0FEOworMDM4OTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBUT05PUztMdTswO0w7MDM5NyAwMzBEOzs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFRPTk9TOzs7MDNBRTsKKzAzOEE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIFRPTk9TO0x1OzA7TDswMzk5IDAzMEQ7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFRPTk9TOzs7MDNBRjsKKzAzOEM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTiBXSVRIIFRPTk9TO0x1OzA7TDswMzlGIDAzMEQ7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OIFRPTk9TOzs7MDNDQzsKKzAzOEU7R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBXSVRIIFRPTk9TO0x1OzA7TDswM0E1IDAzMEQ7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIFRPTk9TOzs7MDNDRDsKKzAzOEY7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBUT05PUztMdTswO0w7MDNBOSAwMzBEOzs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgVE9OT1M7OzswM0NFOworMDM5MDtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERJQUxZVElLQSBBTkQgVE9OT1M7TGw7MDtMOzAzQjkgMDM0NDs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIERJQUVSRVNJUyBUT05PUzs7OzsKKzAzOTE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEE7THU7MDtMOzs7OztOOzs7OzAzQjE7CiswMzkyO0dSRUVLIENBUElUQUwgTEVUVEVSIEJFVEE7THU7MDtMOzs7OztOOzs7OzAzQjI7CiswMzkzO0dSRUVLIENBUElUQUwgTEVUVEVSIEdBTU1BO0x1OzA7TDs7Ozs7Tjs7OzswM0IzOworMDM5NDtHUkVFSyBDQVBJVEFMIExFVFRFUiBERUxUQTtMdTswO0w7Ozs7O047Ozs7MDNCNDsKKzAzOTU7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVBTSUxPTjtMdTswO0w7Ozs7O047Ozs7MDNCNTsKKzAzOTY7R1JFRUsgQ0FQSVRBTCBMRVRURVIgWkVUQTtMdTswO0w7Ozs7O047Ozs7MDNCNjsKKzAzOTc7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBO0x1OzA7TDs7Ozs7Tjs7OzswM0I3OworMDM5ODtHUkVFSyBDQVBJVEFMIExFVFRFUiBUSEVUQTtMdTswO0w7Ozs7O047Ozs7MDNCODsKKzAzOTk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQTtMdTswO0w7Ozs7O047Ozs7MDNCOTsKKzAzOUE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgS0FQUEE7THU7MDtMOzs7OztOOzs7OzAzQkE7CiswMzlCO0dSRUVLIENBUElUQUwgTEVUVEVSIExBTURBO0x1OzA7TDs7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBMQU1CREE7OzswM0JCOworMDM5QztHUkVFSyBDQVBJVEFMIExFVFRFUiBNVTtMdTswO0w7Ozs7O047Ozs7MDNCQzsKKzAzOUQ7R1JFRUsgQ0FQSVRBTCBMRVRURVIgTlU7THU7MDtMOzs7OztOOzs7OzAzQkQ7CiswMzlFO0dSRUVLIENBUElUQUwgTEVUVEVSIFhJO0x1OzA7TDs7Ozs7Tjs7OzswM0JFOworMDM5RjtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OO0x1OzA7TDs7Ozs7Tjs7OzswM0JGOworMDNBMDtHUkVFSyBDQVBJVEFMIExFVFRFUiBQSTtMdTswO0w7Ozs7O047Ozs7MDNDMDsKKzAzQTE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgUkhPO0x1OzA7TDs7Ozs7Tjs7OzswM0MxOworMDNBMztHUkVFSyBDQVBJVEFMIExFVFRFUiBTSUdNQTtMdTswO0w7Ozs7O047Ozs7MDNDMzsKKzAzQTQ7R1JFRUsgQ0FQSVRBTCBMRVRURVIgVEFVO0x1OzA7TDs7Ozs7Tjs7OzswM0M0OworMDNBNTtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OO0x1OzA7TDs7Ozs7Tjs7OzswM0M1OworMDNBNjtHUkVFSyBDQVBJVEFMIExFVFRFUiBQSEk7THU7MDtMOzs7OztOOzs7OzAzQzY7CiswM0E3O0dSRUVLIENBUElUQUwgTEVUVEVSIENISTtMdTswO0w7Ozs7O047Ozs7MDNDNzsKKzAzQTg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgUFNJO0x1OzA7TDs7Ozs7Tjs7OzswM0M4OworMDNBOTtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQTtMdTswO0w7Ozs7O047Ozs7MDNDOTsKKzAzQUE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIERJQUxZVElLQTtMdTswO0w7MDM5OSAwMzA4Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBESUFFUkVTSVM7OzswM0NBOworMDNBQjtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIFdJVEggRElBTFlUSUtBO0x1OzA7TDswM0E1IDAzMDg7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIERJQUVSRVNJUzs7OzAzQ0I7CiswM0FDO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFRPTk9TO0xsOzA7TDswM0IxIDAzMEQ7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgVE9OT1M7OzAzODY7OzAzODYKKzAzQUQ7R1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT04gV0lUSCBUT05PUztMbDswO0w7MDNCNSAwMzBEOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT04gVE9OT1M7OzAzODg7OzAzODgKKzAzQUU7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFRPTk9TO0xsOzA7TDswM0I3IDAzMEQ7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFRPTk9TOzswMzg5OzswMzg5CiswM0FGO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggVE9OT1M7TGw7MDtMOzAzQjkgMDMwRDs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFRPTk9TOzswMzhBOzswMzhBCiswM0IwO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggRElBTFlUSUtBIEFORCBUT05PUztMbDswO0w7MDNDNSAwMzQ0Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gRElBRVJFU0lTIFRPTk9TOzs7OworMDNCMTtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEE7TGw7MDtMOzs7OztOOzs7MDM5MTs7MDM5MQorMDNCMjtHUkVFSyBTTUFMTCBMRVRURVIgQkVUQTtMbDswO0w7Ozs7O047OzswMzkyOzswMzkyCiswM0IzO0dSRUVLIFNNQUxMIExFVFRFUiBHQU1NQTtMbDswO0w7Ozs7O047OzswMzkzOzswMzkzCiswM0I0O0dSRUVLIFNNQUxMIExFVFRFUiBERUxUQTtMbDswO0w7Ozs7O047OzswMzk0OzswMzk0CiswM0I1O0dSRUVLIFNNQUxMIExFVFRFUiBFUFNJTE9OO0xsOzA7TDs7Ozs7Tjs7OzAzOTU7OzAzOTUKKzAzQjY7R1JFRUsgU01BTEwgTEVUVEVSIFpFVEE7TGw7MDtMOzs7OztOOzs7MDM5Njs7MDM5NgorMDNCNztHUkVFSyBTTUFMTCBMRVRURVIgRVRBO0xsOzA7TDs7Ozs7Tjs7OzAzOTc7OzAzOTcKKzAzQjg7R1JFRUsgU01BTEwgTEVUVEVSIFRIRVRBO0xsOzA7TDs7Ozs7Tjs7OzAzOTg7OzAzOTgKKzAzQjk7R1JFRUsgU01BTEwgTEVUVEVSIElPVEE7TGw7MDtMOzs7OztOOzs7MDM5OTs7MDM5OQorMDNCQTtHUkVFSyBTTUFMTCBMRVRURVIgS0FQUEE7TGw7MDtMOzs7OztOOzs7MDM5QTs7MDM5QQorMDNCQjtHUkVFSyBTTUFMTCBMRVRURVIgTEFNREE7TGw7MDtMOzs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBMQU1CREE7OzAzOUI7OzAzOUIKKzAzQkM7R1JFRUsgU01BTEwgTEVUVEVSIE1VO0xsOzA7TDs7Ozs7Tjs7OzAzOUM7OzAzOUMKKzAzQkQ7R1JFRUsgU01BTEwgTEVUVEVSIE5VO0xsOzA7TDs7Ozs7Tjs7OzAzOUQ7OzAzOUQKKzAzQkU7R1JFRUsgU01BTEwgTEVUVEVSIFhJO0xsOzA7TDs7Ozs7Tjs7OzAzOUU7OzAzOUUKKzAzQkY7R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST047TGw7MDtMOzs7OztOOzs7MDM5Rjs7MDM5RgorMDNDMDtHUkVFSyBTTUFMTCBMRVRURVIgUEk7TGw7MDtMOzs7OztOOzs7MDNBMDs7MDNBMAorMDNDMTtHUkVFSyBTTUFMTCBMRVRURVIgUkhPO0xsOzA7TDs7Ozs7Tjs7OzAzQTE7OzAzQTEKKzAzQzI7R1JFRUsgU01BTEwgTEVUVEVSIEZJTkFMIFNJR01BO0xsOzA7TDs7Ozs7Tjs7OzAzQTM7OzAzQTMKKzAzQzM7R1JFRUsgU01BTEwgTEVUVEVSIFNJR01BO0xsOzA7TDs7Ozs7Tjs7OzAzQTM7OzAzQTMKKzAzQzQ7R1JFRUsgU01BTEwgTEVUVEVSIFRBVTtMbDswO0w7Ozs7O047OzswM0E0OzswM0E0CiswM0M1O0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OO0xsOzA7TDs7Ozs7Tjs7OzAzQTU7OzAzQTUKKzAzQzY7R1JFRUsgU01BTEwgTEVUVEVSIFBISTtMbDswO0w7Ozs7O047OzswM0E2OzswM0E2CiswM0M3O0dSRUVLIFNNQUxMIExFVFRFUiBDSEk7TGw7MDtMOzs7OztOOzs7MDNBNzs7MDNBNworMDNDODtHUkVFSyBTTUFMTCBMRVRURVIgUFNJO0xsOzA7TDs7Ozs7Tjs7OzAzQTg7OzAzQTgKKzAzQzk7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBO0xsOzA7TDs7Ozs7Tjs7OzAzQTk7OzAzQTkKKzAzQ0E7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBESUFMWVRJS0E7TGw7MDtMOzAzQjkgMDMwODs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIERJQUVSRVNJUzs7MDNBQTs7MDNBQQorMDNDQjtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIERJQUxZVElLQTtMbDswO0w7MDNDNSAwMzA4Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gRElBRVJFU0lTOzswM0FCOzswM0FCCiswM0NDO0dSRUVLIFNNQUxMIExFVFRFUiBPTUlDUk9OIFdJVEggVE9OT1M7TGw7MDtMOzAzQkYgMDMwRDs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBPTUlDUk9OIFRPTk9TOzswMzhDOzswMzhDCiswM0NEO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggVE9OT1M7TGw7MDtMOzAzQzUgMDMwRDs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFRPTk9TOzswMzhFOzswMzhFCiswM0NFO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFRPTk9TO0xsOzA7TDswM0M5IDAzMEQ7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgVE9OT1M7OzAzOEY7OzAzOEYKKzAzRDA7R1JFRUsgQkVUQSBTWU1CT0w7TGw7MDtMOzs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBDVVJMRUQgQkVUQTs7MDM5Mjs7MDM5MgorMDNEMTtHUkVFSyBUSEVUQSBTWU1CT0w7TGw7MDtMOzs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBTQ1JJUFQgVEhFVEE7OzAzOTg7OzAzOTgKKzAzRDI7R1JFRUsgVVBTSUxPTiBXSVRIIEhPT0sgU1lNQk9MO0x1OzA7TDs7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIEhPT0s7Ozs7CiswM0QzO0dSRUVLIFVQU0lMT04gV0lUSCBBQ1VURSBBTkQgSE9PSyBTWU1CT0w7THU7MDtMOzAzRDIgMDMwRDs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gSE9PSyBUT05PUzs7OzsKKzAzRDQ7R1JFRUsgVVBTSUxPTiBXSVRIIERJQUVSRVNJUyBBTkQgSE9PSyBTWU1CT0w7THU7MDtMOzAzRDIgMDMwODs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gSE9PSyBESUFFUkVTSVM7Ozs7CiswM0Q1O0dSRUVLIFBISSBTWU1CT0w7TGw7MDtMOzs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBTQ1JJUFQgUEhJOzswM0E2OzswM0E2CiswM0Q2O0dSRUVLIFBJIFNZTUJPTDtMbDswO0w7Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFBJOzswM0EwOzswM0EwCiswM0RBO0dSRUVLIExFVFRFUiBTVElHTUE7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIFNUSUdNQTs7OzsKKzAzREM7R1JFRUsgTEVUVEVSIERJR0FNTUE7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIERJR0FNTUE7Ozs7CiswM0RFO0dSRUVLIExFVFRFUiBLT1BQQTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgS09QUEE7Ozs7CiswM0UwO0dSRUVLIExFVFRFUiBTQU1QSTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgU0FNUEk7Ozs7CiswM0UyO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBTSEVJO0x1OzA7TDs7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBTSEVJOzs7MDNFMzsKKzAzRTM7Q09QVElDIFNNQUxMIExFVFRFUiBTSEVJO0xsOzA7TDs7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgU0hFSTs7MDNFMjs7MDNFMgorMDNFNDtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgRkVJO0x1OzA7TDs7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBGRUk7OzswM0U1OworMDNFNTtDT1BUSUMgU01BTEwgTEVUVEVSIEZFSTtMbDswO0w7Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIEZFSTs7MDNFNDs7MDNFNAorMDNFNjtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgS0hFSTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgS0hFSTs7OzAzRTc7CiswM0U3O0NPUFRJQyBTTUFMTCBMRVRURVIgS0hFSTtMbDswO0w7Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIEtIRUk7OzAzRTY7OzAzRTYKKzAzRTg7Q09QVElDIENBUElUQUwgTEVUVEVSIEhPUkk7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIEhPUkk7OzswM0U5OworMDNFOTtDT1BUSUMgU01BTEwgTEVUVEVSIEhPUkk7TGw7MDtMOzs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBIT1JJOzswM0U4OzswM0U4CiswM0VBO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBHQU5HSUE7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIEdBTkdJQTs7OzAzRUI7CiswM0VCO0NPUFRJQyBTTUFMTCBMRVRURVIgR0FOR0lBO0xsOzA7TDs7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgR0FOR0lBOzswM0VBOzswM0VBCiswM0VDO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBTSElNQTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgU0hJTUE7OzswM0VEOworMDNFRDtDT1BUSUMgU01BTEwgTEVUVEVSIFNISU1BO0xsOzA7TDs7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgU0hJTUE7OzAzRUM7OzAzRUMKKzAzRUU7Q09QVElDIENBUElUQUwgTEVUVEVSIERFSTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgREVJOzs7MDNFRjsKKzAzRUY7Q09QVElDIFNNQUxMIExFVFRFUiBERUk7TGw7MDtMOzs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBERUk7OzAzRUU7OzAzRUUKKzAzRjA7R1JFRUsgS0FQUEEgU1lNQk9MO0xsOzA7TDs7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgU0NSSVBUIEtBUFBBOzswMzlBOzswMzlBCiswM0YxO0dSRUVLIFJITyBTWU1CT0w7TGw7MDtMOzs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBUQUlMRUQgUkhPOzswM0ExOzswM0ExCiswM0YyO0dSRUVLIExVTkFURSBTSUdNQSBTWU1CT0w7TGw7MDtMOzs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBMVU5BVEUgU0lHTUE7OzAzQTM7OzAzQTMKKzAzRjM7R1JFRUsgTEVUVEVSIFlPVDtMbzswO0w7Ozs7O047Ozs7OworMDQwMTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJTztMdTswO0w7MDQxNSAwMzA4Ozs7O047Ozs7MDQ1MTsKKzA0MDI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgREpFO0x1OzA7TDs7Ozs7Tjs7U2VyYm9jcm9hdGlhbjs7MDQ1MjsKKzA0MDM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgR0pFO0x1OzA7TDswNDEzIDAzMDE7Ozs7Tjs7OzswNDUzOworMDQwNDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBVS1JBSU5JQU4gSUU7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEU7OzswNDU0OworMDQwNTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBEWkU7THU7MDtMOzs7OztOOzs7OzA0NTU7CiswNDA2O0NZUklMTElDIENBUElUQUwgTEVUVEVSIEJZRUxPUlVTU0lBTi1VS1JBSU5JQU4gSTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSTs7OzA0NTY7CiswNDA3O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFlJO0x1OzA7TDswNDA2IDAzMDg7Ozs7Tjs7VWtyYWluaWFuOzswNDU3OworMDQwODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBKRTtMdTswO0w7Ozs7O047Ozs7MDQ1ODsKKzA0MDk7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgTEpFO0x1OzA7TDs7Ozs7Tjs7OzswNDU5OworMDQwQTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBOSkU7THU7MDtMOzs7OztOOzs7OzA0NUE7CiswNDBCO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFRTSEU7THU7MDtMOzs7OztOOztTZXJib2Nyb2F0aWFuOzswNDVCOworMDQwQztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLSkU7THU7MDtMOzA0MUEgMDMwMTs7OztOOzs7OzA0NUM7CiswNDBFO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNIT1JUIFU7THU7MDtMOzA0MjMgMDMwNjs7OztOOztCeWVsb3J1c3NpYW47OzA0NUU7CiswNDBGO0NZUklMTElDIENBUElUQUwgTEVUVEVSIERaSEU7THU7MDtMOzs7OztOOzs7OzA0NUY7CiswNDEwO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEE7THU7MDtMOzs7OztOOzs7OzA0MzA7CiswNDExO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEJFO0x1OzA7TDs7Ozs7Tjs7OzswNDMxOworMDQxMjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBWRTtMdTswO0w7Ozs7O047Ozs7MDQzMjsKKzA0MTM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgR0hFO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBHRTs7OzA0MzM7CiswNDE0O0NZUklMTElDIENBUElUQUwgTEVUVEVSIERFO0x1OzA7TDs7Ozs7Tjs7OzswNDM0OworMDQxNTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJRTtMdTswO0w7Ozs7O047Ozs7MDQzNTsKKzA0MTY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWkhFO0x1OzA7TDs7Ozs7Tjs7OzswNDM2OworMDQxNztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBaRTtMdTswO0w7Ozs7O047Ozs7MDQzNzsKKzA0MTg7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSUk7OzswNDM4OworMDQxOTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTSE9SVCBJO0x1OzA7TDswNDE4IDAzMDY7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTSE9SVCBJSTs7OzA0Mzk7CiswNDFBO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtBO0x1OzA7TDs7Ozs7Tjs7OzswNDNBOworMDQxQjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFTDtMdTswO0w7Ozs7O047Ozs7MDQzQjsKKzA0MUM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRU07THU7MDtMOzs7OztOOzs7OzA0M0M7CiswNDFEO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVOO0x1OzA7TDs7Ozs7Tjs7OzswNDNEOworMDQxRTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBPO0x1OzA7TDs7Ozs7Tjs7OzswNDNFOworMDQxRjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBQRTtMdTswO0w7Ozs7O047Ozs7MDQzRjsKKzA0MjA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRVI7THU7MDtMOzs7OztOOzs7OzA0NDA7CiswNDIxO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVTO0x1OzA7TDs7Ozs7Tjs7OzswNDQxOworMDQyMjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBURTtMdTswO0w7Ozs7O047Ozs7MDQ0MjsKKzA0MjM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVTtMdTswO0w7Ozs7O047Ozs7MDQ0MzsKKzA0MjQ7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRUY7THU7MDtMOzs7OztOOzs7OzA0NDQ7CiswNDI1O0NZUklMTElDIENBUElUQUwgTEVUVEVSIEhBO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLSEE7OzswNDQ1OworMDQyNjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBUU0U7THU7MDtMOzs7OztOOzs7OzA0NDY7CiswNDI3O0NZUklMTElDIENBUElUQUwgTEVUVEVSIENIRTtMdTswO0w7Ozs7O047Ozs7MDQ0NzsKKzA0Mjg7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0hBO0x1OzA7TDs7Ozs7Tjs7OzswNDQ4OworMDQyOTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTSENIQTtMdTswO0w7Ozs7O047Ozs7MDQ0OTsKKzA0MkE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSEFSRCBTSUdOO0x1OzA7TDs7Ozs7Tjs7OzswNDRBOworMDQyQjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBZRVJVO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBZRVJJOzs7MDQ0QjsKKzA0MkM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU09GVCBTSUdOO0x1OzA7TDs7Ozs7Tjs7OzswNDRDOworMDQyRDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBSRVZFUlNFRCBFOzs7MDQ0RDsKKzA0MkU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWVU7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIElVOzs7MDQ0RTsKKzA0MkY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWUE7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIElBOzs7MDQ0RjsKKzA0MzA7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEE7TGw7MDtMOzs7OztOOzs7MDQxMDs7MDQxMAorMDQzMTtDWVJJTExJQyBTTUFMTCBMRVRURVIgQkU7TGw7MDtMOzs7OztOOzs7MDQxMTs7MDQxMQorMDQzMjtDWVJJTExJQyBTTUFMTCBMRVRURVIgVkU7TGw7MDtMOzs7OztOOzs7MDQxMjs7MDQxMgorMDQzMztDWVJJTExJQyBTTUFMTCBMRVRURVIgR0hFO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgR0U7OzA0MTM7OzA0MTMKKzA0MzQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIERFO0xsOzA7TDs7Ozs7Tjs7OzA0MTQ7OzA0MTQKKzA0MzU7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElFO0xsOzA7TDs7Ozs7Tjs7OzA0MTU7OzA0MTUKKzA0MzY7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFpIRTtMbDswO0w7Ozs7O047OzswNDE2OzswNDE2CiswNDM3O0NZUklMTElDIFNNQUxMIExFVFRFUiBaRTtMbDswO0w7Ozs7O047OzswNDE3OzswNDE3CiswNDM4O0NZUklMTElDIFNNQUxMIExFVFRFUiBJO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgSUk7OzA0MTg7OzA0MTgKKzA0Mzk7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNIT1JUIEk7TGw7MDtMOzA0MzggMDMwNjs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBTSE9SVCBJSTs7MDQxOTs7MDQxOQorMDQzQTtDWVJJTExJQyBTTUFMTCBMRVRURVIgS0E7TGw7MDtMOzs7OztOOzs7MDQxQTs7MDQxQQorMDQzQjtDWVJJTExJQyBTTUFMTCBMRVRURVIgRUw7TGw7MDtMOzs7OztOOzs7MDQxQjs7MDQxQgorMDQzQztDWVJJTExJQyBTTUFMTCBMRVRURVIgRU07TGw7MDtMOzs7OztOOzs7MDQxQzs7MDQxQworMDQzRDtDWVJJTExJQyBTTUFMTCBMRVRURVIgRU47TGw7MDtMOzs7OztOOzs7MDQxRDs7MDQxRAorMDQzRTtDWVJJTExJQyBTTUFMTCBMRVRURVIgTztMbDswO0w7Ozs7O047OzswNDFFOzswNDFFCiswNDNGO0NZUklMTElDIFNNQUxMIExFVFRFUiBQRTtMbDswO0w7Ozs7O047OzswNDFGOzswNDFGCiswNDQwO0NZUklMTElDIFNNQUxMIExFVFRFUiBFUjtMbDswO0w7Ozs7O047OzswNDIwOzswNDIwCiswNDQxO0NZUklMTElDIFNNQUxMIExFVFRFUiBFUztMbDswO0w7Ozs7O047OzswNDIxOzswNDIxCiswNDQyO0NZUklMTElDIFNNQUxMIExFVFRFUiBURTtMbDswO0w7Ozs7O047OzswNDIyOzswNDIyCiswNDQzO0NZUklMTElDIFNNQUxMIExFVFRFUiBVO0xsOzA7TDs7Ozs7Tjs7OzA0MjM7OzA0MjMKKzA0NDQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVGO0xsOzA7TDs7Ozs7Tjs7OzA0MjQ7OzA0MjQKKzA0NDU7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEhBO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgS0hBOzswNDI1OzswNDI1CiswNDQ2O0NZUklMTElDIFNNQUxMIExFVFRFUiBUU0U7TGw7MDtMOzs7OztOOzs7MDQyNjs7MDQyNgorMDQ0NztDWVJJTExJQyBTTUFMTCBMRVRURVIgQ0hFO0xsOzA7TDs7Ozs7Tjs7OzA0Mjc7OzA0MjcKKzA0NDg7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNIQTtMbDswO0w7Ozs7O047OzswNDI4OzswNDI4CiswNDQ5O0NZUklMTElDIFNNQUxMIExFVFRFUiBTSENIQTtMbDswO0w7Ozs7O047OzswNDI5OzswNDI5CiswNDRBO0NZUklMTElDIFNNQUxMIExFVFRFUiBIQVJEIFNJR047TGw7MDtMOzs7OztOOzs7MDQyQTs7MDQyQQorMDQ0QjtDWVJJTExJQyBTTUFMTCBMRVRURVIgWUVSVTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFlFUkk7OzA0MkI7OzA0MkIKKzA0NEM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNPRlQgU0lHTjtMbDswO0w7Ozs7O047OzswNDJDOzswNDJDCiswNDREO0NZUklMTElDIFNNQUxMIExFVFRFUiBFO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgUkVWRVJTRUQgRTs7MDQyRDs7MDQyRAorMDQ0RTtDWVJJTExJQyBTTUFMTCBMRVRURVIgWVU7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBJVTs7MDQyRTs7MDQyRQorMDQ0RjtDWVJJTExJQyBTTUFMTCBMRVRURVIgWUE7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBJQTs7MDQyRjs7MDQyRgorMDQ1MTtDWVJJTExJQyBTTUFMTCBMRVRURVIgSU87TGw7MDtMOzA0MzUgMDMwODs7OztOOzs7MDQwMTs7MDQwMQorMDQ1MjtDWVJJTExJQyBTTUFMTCBMRVRURVIgREpFO0xsOzA7TDs7Ozs7Tjs7U2VyYm9jcm9hdGlhbjswNDAyOzswNDAyCiswNDUzO0NZUklMTElDIFNNQUxMIExFVFRFUiBHSkU7TGw7MDtMOzA0MzMgMDMwMTs7OztOOzs7MDQwMzs7MDQwMworMDQ1NDtDWVJJTExJQyBTTUFMTCBMRVRURVIgVUtSQUlOSUFOIElFO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgRTs7MDQwNDs7MDQwNAorMDQ1NTtDWVJJTExJQyBTTUFMTCBMRVRURVIgRFpFO0xsOzA7TDs7Ozs7Tjs7OzA0MDU7OzA0MDUKKzA0NTY7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEJZRUxPUlVTU0lBTi1VS1JBSU5JQU4gSTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEk7OzA0MDY7OzA0MDYKKzA0NTc7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFlJO0xsOzA7TDswNDU2IDAzMDg7Ozs7Tjs7VWtyYWluaWFuOzA0MDc7OzA0MDcKKzA0NTg7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEpFO0xsOzA7TDs7Ozs7Tjs7OzA0MDg7OzA0MDgKKzA0NTk7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIExKRTtMbDswO0w7Ozs7O047OzswNDA5OzswNDA5CiswNDVBO0NZUklMTElDIFNNQUxMIExFVFRFUiBOSkU7TGw7MDtMOzs7OztOOzs7MDQwQTs7MDQwQQorMDQ1QjtDWVJJTExJQyBTTUFMTCBMRVRURVIgVFNIRTtMbDswO0w7Ozs7O047O1NlcmJvY3JvYXRpYW47MDQwQjs7MDQwQgorMDQ1QztDWVJJTExJQyBTTUFMTCBMRVRURVIgS0pFO0xsOzA7TDswNDNBIDAzMDE7Ozs7Tjs7OzA0MEM7OzA0MEMKKzA0NUU7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNIT1JUIFU7TGw7MDtMOzA0NDMgMDMwNjs7OztOOztCeWVsb3J1c3NpYW47MDQwRTs7MDQwRQorMDQ1RjtDWVJJTExJQyBTTUFMTCBMRVRURVIgRFpIRTtMbDswO0w7Ozs7O047OzswNDBGOzswNDBGCiswNDYwO0NZUklMTElDIENBUElUQUwgTEVUVEVSIE9NRUdBO0x1OzA7TDs7Ozs7Tjs7OzswNDYxOworMDQ2MTtDWVJJTExJQyBTTUFMTCBMRVRURVIgT01FR0E7TGw7MDtMOzs7OztOOzs7MDQ2MDs7MDQ2MAorMDQ2MjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBZQVQ7THU7MDtMOzs7OztOOzs7OzA0NjM7CiswNDYzO0NZUklMTElDIFNNQUxMIExFVFRFUiBZQVQ7TGw7MDtMOzs7OztOOzs7MDQ2Mjs7MDQ2MgorMDQ2NDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJT1RJRklFRCBFO0x1OzA7TDs7Ozs7Tjs7OzswNDY1OworMDQ2NTtDWVJJTExJQyBTTUFMTCBMRVRURVIgSU9USUZJRUQgRTtMbDswO0w7Ozs7O047OzswNDY0OzswNDY0CiswNDY2O0NZUklMTElDIENBUElUQUwgTEVUVEVSIExJVFRMRSBZVVM7THU7MDtMOzs7OztOOzs7OzA0Njc7CiswNDY3O0NZUklMTElDIFNNQUxMIExFVFRFUiBMSVRUTEUgWVVTO0xsOzA7TDs7Ozs7Tjs7OzA0NjY7OzA0NjYKKzA0Njg7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSU9USUZJRUQgTElUVExFIFlVUztMdTswO0w7Ozs7O047Ozs7MDQ2OTsKKzA0Njk7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElPVElGSUVEIExJVFRMRSBZVVM7TGw7MDtMOzs7OztOOzs7MDQ2ODs7MDQ2OAorMDQ2QTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBCSUcgWVVTO0x1OzA7TDs7Ozs7Tjs7OzswNDZCOworMDQ2QjtDWVJJTExJQyBTTUFMTCBMRVRURVIgQklHIFlVUztMbDswO0w7Ozs7O047OzswNDZBOzswNDZBCiswNDZDO0NZUklMTElDIENBUElUQUwgTEVUVEVSIElPVElGSUVEIEJJRyBZVVM7THU7MDtMOzs7OztOOzs7OzA0NkQ7CiswNDZEO0NZUklMTElDIFNNQUxMIExFVFRFUiBJT1RJRklFRCBCSUcgWVVTO0xsOzA7TDs7Ozs7Tjs7OzA0NkM7OzA0NkMKKzA0NkU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS1NJO0x1OzA7TDs7Ozs7Tjs7OzswNDZGOworMDQ2RjtDWVJJTExJQyBTTUFMTCBMRVRURVIgS1NJO0xsOzA7TDs7Ozs7Tjs7OzA0NkU7OzA0NkUKKzA0NzA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgUFNJO0x1OzA7TDs7Ozs7Tjs7OzswNDcxOworMDQ3MTtDWVJJTExJQyBTTUFMTCBMRVRURVIgUFNJO0xsOzA7TDs7Ozs7Tjs7OzA0NzA7OzA0NzAKKzA0NzI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRklUQTtMdTswO0w7Ozs7O047Ozs7MDQ3MzsKKzA0NzM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEZJVEE7TGw7MDtMOzs7OztOOzs7MDQ3Mjs7MDQ3MgorMDQ3NDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJWkhJVFNBO0x1OzA7TDs7Ozs7Tjs7OzswNDc1OworMDQ3NTtDWVJJTExJQyBTTUFMTCBMRVRURVIgSVpISVRTQTtMbDswO0w7Ozs7O047OzswNDc0OzswNDc0CiswNDc2O0NZUklMTElDIENBUElUQUwgTEVUVEVSIElaSElUU0EgV0lUSCBET1VCTEUgR1JBVkUgQUNDRU5UO0x1OzA7TDswNDc0IDAzMEY7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJWkhJVFNBIERPVUJMRSBHUkFWRTs7OzA0Nzc7CiswNDc3O0NZUklMTElDIFNNQUxMIExFVFRFUiBJWkhJVFNBIFdJVEggRE9VQkxFIEdSQVZFIEFDQ0VOVDtMbDswO0w7MDQ3NSAwMzBGOzs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElaSElUU0EgRE9VQkxFIEdSQVZFOzswNDc2OzswNDc2CiswNDc4O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFVLO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBVSyBESUdSQVBIOzs7MDQ3OTsKKzA0Nzk7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFVLO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgVUsgRElHUkFQSDs7MDQ3ODs7MDQ3OAorMDQ3QTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBST1VORCBPTUVHQTtMdTswO0w7Ozs7O047Ozs7MDQ3QjsKKzA0N0I7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFJPVU5EIE9NRUdBO0xsOzA7TDs7Ozs7Tjs7OzA0N0E7OzA0N0EKKzA0N0M7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBUSVRMTztMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgT01FR0EgVElUTE87OzswNDdEOworMDQ3RDtDWVJJTExJQyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBUSVRMTztMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIE9NRUdBIFRJVExPOzswNDdDOzswNDdDCiswNDdFO0NZUklMTElDIENBUElUQUwgTEVUVEVSIE9UO0x1OzA7TDs7Ozs7Tjs7OzswNDdGOworMDQ3RjtDWVJJTExJQyBTTUFMTCBMRVRURVIgT1Q7TGw7MDtMOzs7OztOOzs7MDQ3RTs7MDQ3RQorMDQ4MDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLT1BQQTtMdTswO0w7Ozs7O047Ozs7MDQ4MTsKKzA0ODE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtPUFBBO0xsOzA7TDs7Ozs7Tjs7OzA0ODA7OzA0ODAKKzA0ODI7Q1lSSUxMSUMgVEhPVVNBTkRTIFNJR047U287MDtMOzs7OztOOzs7OzsKKzA0ODM7Q09NQklOSU5HIENZUklMTElDIFRJVExPO01uOzIzMDtPTjs7Ozs7TjtDWVJJTExJQyBOT04tU1BBQ0lORyBUSVRMTzs7OzsKKzA0ODQ7Q09NQklOSU5HIENZUklMTElDIFBBTEFUQUxJWkFUSU9OO01uOzIzMDtPTjs7Ozs7TjtDWVJJTExJQyBOT04tU1BBQ0lORyBQQUxBVEFMSVpBVElPTjs7OzsKKzA0ODU7Q09NQklOSU5HIENZUklMTElDIERBU0lBIFBORVVNQVRBO01uOzIzMDtPTjs7Ozs7TjtDWVJJTExJQyBOT04tU1BBQ0lORyBEQVNJQSBQTkVVTUFUQTs7OzsKKzA0ODY7Q09NQklOSU5HIENZUklMTElDIFBTSUxJIFBORVVNQVRBO01uOzIzMDtPTjs7Ozs7TjtDWVJJTExJQyBOT04tU1BBQ0lORyBQU0lMSSBQTkVVTUFUQTs7OzsKKzA0OTA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgR0hFIFdJVEggVVBUVVJOO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBHRSBXSVRIIFVQVFVSTjs7OzA0OTE7CiswNDkxO0NZUklMTElDIFNNQUxMIExFVFRFUiBHSEUgV0lUSCBVUFRVUk47TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBHRSBXSVRIIFVQVFVSTjs7MDQ5MDs7MDQ5MAorMDQ5MjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBHSEUgV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEdFIEJBUjs7OzA0OTM7CiswNDkzO0NZUklMTElDIFNNQUxMIExFVFRFUiBHSEUgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBHRSBCQVI7OzA0OTI7OzA0OTIKKzA0OTQ7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgR0hFIFdJVEggTUlERExFIEhPT0s7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEdFIEhPT0s7OzswNDk1OworMDQ5NTtDWVJJTExJQyBTTUFMTCBMRVRURVIgR0hFIFdJVEggTUlERExFIEhPT0s7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBHRSBIT09LOzswNDk0OzswNDk0CiswNDk2O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFpIRSBXSVRIIERFU0NFTkRFUjtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWkhFIFdJVEggUklHSFQgREVTQ0VOREVSOzs7MDQ5NzsKKzA0OTc7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFpIRSBXSVRIIERFU0NFTkRFUjtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFpIRSBXSVRIIFJJR0hUIERFU0NFTkRFUjs7MDQ5Njs7MDQ5NgorMDQ5ODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBaRSBXSVRIIERFU0NFTkRFUjtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWkUgQ0VESUxMQTs7OzA0OTk7CiswNDk5O0NZUklMTElDIFNNQUxMIExFVFRFUiBaRSBXSVRIIERFU0NFTkRFUjtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFpFIENFRElMTEE7OzA0OTg7OzA0OTgKKzA0OUE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0EgV0lUSCBERVNDRU5ERVI7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtBIFdJVEggUklHSFQgREVTQ0VOREVSOzs7MDQ5QjsKKzA0OUI7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtBIFdJVEggREVTQ0VOREVSO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgS0EgV0lUSCBSSUdIVCBERVNDRU5ERVI7OzA0OUE7OzA0OUEKKzA0OUM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0EgV0lUSCBWRVJUSUNBTCBTVFJPS0U7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtBIFZFUlRJQ0FMIEJBUjs7OzA0OUQ7CiswNDlEO0NZUklMTElDIFNNQUxMIExFVFRFUiBLQSBXSVRIIFZFUlRJQ0FMIFNUUk9LRTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtBIFZFUlRJQ0FMIEJBUjs7MDQ5Qzs7MDQ5QworMDQ5RTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLQSBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0EgQkFSOzs7MDQ5RjsKKzA0OUY7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtBIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgS0EgQkFSOzswNDlFOzswNDlFCiswNEEwO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEJBU0hLSVIgS0E7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFJFVkVSU0VEIEdFIEtBOzs7MDRBMTsKKzA0QTE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEJBU0hLSVIgS0E7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBSRVZFUlNFRCBHRSBLQTs7MDRBMDs7MDRBMAorMDRBMjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFTiBXSVRIIERFU0NFTkRFUjtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRU4gV0lUSCBSSUdIVCBERVNDRU5ERVI7OzswNEEzOworMDRBMztDWVJJTExJQyBTTUFMTCBMRVRURVIgRU4gV0lUSCBERVNDRU5ERVI7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBFTiBXSVRIIFJJR0hUIERFU0NFTkRFUjs7MDRBMjs7MDRBMgorMDRBNDtDWVJJTExJQyBDQVBJVEFMIExJR0FUVVJFIEVOIEdIRTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRU4gR0U7OzswNEE1OworMDRBNTtDWVJJTExJQyBTTUFMTCBMSUdBVFVSRSBFTiBHSEU7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBFTiBHRTs7MDRBNDs7MDRBNAorMDRBNjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBQRSBXSVRIIE1JRERMRSBIT09LO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBQRSBIT09LO0Fia2hhc2lhbjs7MDRBNzsKKzA0QTc7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFBFIFdJVEggTUlERExFIEhPT0s7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBQRSBIT09LO0Fia2hhc2lhbjswNEE2OzswNEE2CiswNEE4O0NZUklMTElDIENBUElUQUwgTEVUVEVSIEFCS0hBU0lBTiBIQTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgTyBIT09LOzs7MDRBOTsKKzA0QTk7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEFCS0hBU0lBTiBIQTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIE8gSE9PSzs7MDRBODs7MDRBOAorMDRBQTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFUyBXSVRIIERFU0NFTkRFUjtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRVMgQ0VESUxMQTs7OzA0QUI7CiswNEFCO0NZUklMTElDIFNNQUxMIExFVFRFUiBFUyBXSVRIIERFU0NFTkRFUjtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVTIENFRElMTEE7OzA0QUE7OzA0QUEKKzA0QUM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVEUgV0lUSCBERVNDRU5ERVI7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFRFIFdJVEggUklHSFQgREVTQ0VOREVSOzs7MDRBRDsKKzA0QUQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFRFIFdJVEggREVTQ0VOREVSO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgVEUgV0lUSCBSSUdIVCBERVNDRU5ERVI7OzA0QUM7OzA0QUMKKzA0QUU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU1RSQUlHSFQgVTtMdTswO0w7Ozs7O047Ozs7MDRBRjsKKzA0QUY7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNUUkFJR0hUIFU7TGw7MDtMOzs7OztOOzs7MDRBRTs7MDRBRQorMDRCMDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTVFJBSUdIVCBVIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTVFJBSUdIVCBVIEJBUjs7OzA0QjE7CiswNEIxO0NZUklMTElDIFNNQUxMIExFVFRFUiBTVFJBSUdIVCBVIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgU1RSQUlHSFQgVSBCQVI7OzA0QjA7OzA0QjAKKzA0QjI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSEEgV0lUSCBERVNDRU5ERVI7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtIQSBXSVRIIFJJR0hUIERFU0NFTkRFUjs7OzA0QjM7CiswNEIzO0NZUklMTElDIFNNQUxMIExFVFRFUiBIQSBXSVRIIERFU0NFTkRFUjtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtIQSBXSVRIIFJJR0hUIERFU0NFTkRFUjs7MDRCMjs7MDRCMgorMDRCNDtDWVJJTExJQyBDQVBJVEFMIExJR0FUVVJFIFRFIFRTRTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVEUgVFNFO0Fia2hhc2lhbjs7MDRCNTsKKzA0QjU7Q1lSSUxMSUMgU01BTEwgTElHQVRVUkUgVEUgVFNFO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgVEUgVFNFO0Fia2hhc2lhbjswNEI0OzswNEI0CiswNEI2O0NZUklMTElDIENBUElUQUwgTEVUVEVSIENIRSBXSVRIIERFU0NFTkRFUjtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQ0hFIFdJVEggUklHSFQgREVTQ0VOREVSOzs7MDRCNzsKKzA0Qjc7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIENIRSBXSVRIIERFU0NFTkRFUjtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIENIRSBXSVRIIFJJR0hUIERFU0NFTkRFUjs7MDRCNjs7MDRCNgorMDRCODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBDSEUgV0lUSCBWRVJUSUNBTCBTVFJPS0U7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIENIRSBWRVJUSUNBTCBCQVI7OzswNEI5OworMDRCOTtDWVJJTExJQyBTTUFMTCBMRVRURVIgQ0hFIFdJVEggVkVSVElDQUwgU1RST0tFO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgQ0hFIFZFUlRJQ0FMIEJBUjs7MDRCODs7MDRCOAorMDRCQTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTSEhBO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBIOzs7MDRCQjsKKzA0QkI7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNISEE7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBIOzswNEJBOzswNEJBCiswNEJDO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEFCS0hBU0lBTiBDSEU7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIElFIEhPT0s7OzswNEJEOworMDRCRDtDWVJJTExJQyBTTUFMTCBMRVRURVIgQUJLSEFTSUFOIENIRTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElFIEhPT0s7OzA0QkM7OzA0QkMKKzA0QkU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQUJLSEFTSUFOIENIRSBXSVRIIERFU0NFTkRFUjtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSUUgSE9PSyBPR09ORUs7OzswNEJGOworMDRCRjtDWVJJTExJQyBTTUFMTCBMRVRURVIgQUJLSEFTSUFOIENIRSBXSVRIIERFU0NFTkRFUjtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElFIEhPT0sgT0dPTkVLOzswNEJFOzswNEJFCiswNEMwO0NZUklMTElDIExFVFRFUiBQQUxPQ0hLQTtMbzswO0w7Ozs7O047Q1lSSUxMSUMgTEVUVEVSIEk7Ozs7CiswNEMxO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFpIRSBXSVRIIEJSRVZFO0x1OzA7TDswNDE2IDAzMDY7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTSE9SVCBaSEU7OzswNEMyOworMDRDMjtDWVJJTExJQyBTTUFMTCBMRVRURVIgWkhFIFdJVEggQlJFVkU7TGw7MDtMOzA0MzYgMDMwNjs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBTSE9SVCBaSEU7OzA0QzE7OzA0QzEKKzA0QzM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0EgV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLQSBIT09LOzs7MDRDNDsKKzA0QzQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtBIFdJVEggSE9PSztMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtBIEhPT0s7OzA0QzM7OzA0QzMKKzA0Qzc7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRU4gV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFTiBIT09LOzs7MDRDODsKKzA0Qzg7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVOIFdJVEggSE9PSztMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVOIEhPT0s7OzA0Qzc7OzA0QzcKKzA0Q0I7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0hBS0FTU0lBTiBDSEU7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIENIRSBXSVRIIExFRlQgREVTQ0VOREVSOzs7MDRDQzsKKzA0Q0M7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtIQUtBU1NJQU4gQ0hFO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgQ0hFIFdJVEggTEVGVCBERVNDRU5ERVI7OzA0Q0I7OzA0Q0IKKzA0RDA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEJSRVZFO0x1OzA7TDswNDEwIDAzMDY7Ozs7Tjs7OzswNEQxOworMDREMTtDWVJJTExJQyBTTUFMTCBMRVRURVIgQSBXSVRIIEJSRVZFO0xsOzA7TDswNDMwIDAzMDY7Ozs7Tjs7OzA0RDA7OzA0RDAKKzA0RDI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDQxMCAwMzA4Ozs7O047Ozs7MDREMzsKKzA0RDM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEEgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzA0MzAgMDMwODs7OztOOzs7MDREMjs7MDREMgorMDRENDtDWVJJTExJQyBDQVBJVEFMIExJR0FUVVJFIEEgSUU7THU7MDtMOzs7OztOOzs7OzA0RDU7CiswNEQ1O0NZUklMTElDIFNNQUxMIExJR0FUVVJFIEEgSUU7TGw7MDtMOzs7OztOOzs7MDRENDs7MDRENAorMDRENjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJRSBXSVRIIEJSRVZFO0x1OzA7TDswNDE1IDAzMDY7Ozs7Tjs7OzswNEQ3OworMDRENztDWVJJTExJQyBTTUFMTCBMRVRURVIgSUUgV0lUSCBCUkVWRTtMbDswO0w7MDQzNSAwMzA2Ozs7O047OzswNEQ2OzswNEQ2CiswNEQ4O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNDSFdBO0x1OzA7TDs7Ozs7Tjs7OzswNEQ5OworMDREOTtDWVJJTExJQyBTTUFMTCBMRVRURVIgU0NIV0E7TGw7MDtMOzs7OztOOzs7MDREODs7MDREOAorMDREQTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTQ0hXQSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDREOCAwMzA4Ozs7O047Ozs7MDREQjsKKzA0REI7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNDSFdBIFdJVEggRElBRVJFU0lTO0xsOzA7TDswNEQ5IDAzMDg7Ozs7Tjs7OzA0REE7OzA0REEKKzA0REM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWkhFIFdJVEggRElBRVJFU0lTO0x1OzA7TDswNDE2IDAzMDg7Ozs7Tjs7OzswNEREOworMDRERDtDWVJJTExJQyBTTUFMTCBMRVRURVIgWkhFIFdJVEggRElBRVJFU0lTO0xsOzA7TDswNDM2IDAzMDg7Ozs7Tjs7OzA0REM7OzA0REMKKzA0REU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWkUgV0lUSCBESUFFUkVTSVM7THU7MDtMOzA0MTcgMDMwODs7OztOOzs7OzA0REY7CiswNERGO0NZUklMTElDIFNNQUxMIExFVFRFUiBaRSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDQzNyAwMzA4Ozs7O047OzswNERFOzswNERFCiswNEUwO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEFCS0hBU0lBTiBEWkU7THU7MDtMOzs7OztOOzs7OzA0RTE7CiswNEUxO0NZUklMTElDIFNNQUxMIExFVFRFUiBBQktIQVNJQU4gRFpFO0xsOzA7TDs7Ozs7Tjs7OzA0RTA7OzA0RTAKKzA0RTI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSSBXSVRIIE1BQ1JPTjtMdTswO0w7MDQxOCAwMzA0Ozs7O047Ozs7MDRFMzsKKzA0RTM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEkgV0lUSCBNQUNST047TGw7MDtMOzA0MzggMDMwNDs7OztOOzs7MDRFMjs7MDRFMgorMDRFNDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJIFdJVEggRElBRVJFU0lTO0x1OzA7TDswNDE4IDAzMDg7Ozs7Tjs7OzswNEU1OworMDRFNTtDWVJJTExJQyBTTUFMTCBMRVRURVIgSSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDQzOCAwMzA4Ozs7O047OzswNEU0OzswNEU0CiswNEU2O0NZUklMTElDIENBUElUQUwgTEVUVEVSIE8gV0lUSCBESUFFUkVTSVM7THU7MDtMOzA0MUUgMDMwODs7OztOOzs7OzA0RTc7CiswNEU3O0NZUklMTElDIFNNQUxMIExFVFRFUiBPIFdJVEggRElBRVJFU0lTO0xsOzA7TDswNDNFIDAzMDg7Ozs7Tjs7OzA0RTY7OzA0RTYKKzA0RTg7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQkFSUkVEIE87THU7MDtMOzs7OztOOzs7OzA0RTk7CiswNEU5O0NZUklMTElDIFNNQUxMIExFVFRFUiBCQVJSRUQgTztMbDswO0w7Ozs7O047OzswNEU4OzswNEU4CiswNEVBO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEJBUlJFRCBPIFdJVEggRElBRVJFU0lTO0x1OzA7TDswNEU4IDAzMDg7Ozs7Tjs7OzswNEVCOworMDRFQjtDWVJJTExJQyBTTUFMTCBMRVRURVIgQkFSUkVEIE8gV0lUSCBESUFFUkVTSVM7TGw7MDtMOzA0RTkgMDMwODs7OztOOzs7MDRFQTs7MDRFQQorMDRFRTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBVIFdJVEggTUFDUk9OO0x1OzA7TDswNDIzIDAzMDQ7Ozs7Tjs7OzswNEVGOworMDRFRjtDWVJJTExJQyBTTUFMTCBMRVRURVIgVSBXSVRIIE1BQ1JPTjtMbDswO0w7MDQ0MyAwMzA0Ozs7O047OzswNEVFOzswNEVFCiswNEYwO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVM7THU7MDtMOzA0MjMgMDMwODs7OztOOzs7OzA0RjE7CiswNEYxO0NZUklMTElDIFNNQUxMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTO0xsOzA7TDswNDQzIDAzMDg7Ozs7Tjs7OzA0RjA7OzA0RjAKKzA0RjI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVSBXSVRIIERPVUJMRSBBQ1VURTtMdTswO0w7MDQyMyAwMzBCOzs7O047Ozs7MDRGMzsKKzA0RjM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFUgV0lUSCBET1VCTEUgQUNVVEU7TGw7MDtMOzA0NDMgMDMwQjs7OztOOzs7MDRGMjs7MDRGMgorMDRGNDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBDSEUgV0lUSCBESUFFUkVTSVM7THU7MDtMOzA0MjcgMDMwODs7OztOOzs7OzA0RjU7CiswNEY1O0NZUklMTElDIFNNQUxMIExFVFRFUiBDSEUgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzA0NDcgMDMwODs7OztOOzs7MDRGNDs7MDRGNAorMDRGODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBZRVJVIFdJVEggRElBRVJFU0lTO0x1OzA7TDswNDJCIDAzMDg7Ozs7Tjs7OzswNEY5OworMDRGOTtDWVJJTExJQyBTTUFMTCBMRVRURVIgWUVSVSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDQ0QiAwMzA4Ozs7O047OzswNEY4OzswNEY4CiswNTMxO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIEFZQjtMdTswO0w7Ozs7O047Ozs7MDU2MTsKKzA1MzI7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgQkVOO0x1OzA7TDs7Ozs7Tjs7OzswNTYyOworMDUzMztBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBHSU07THU7MDtMOzs7OztOOzs7OzA1NjM7CiswNTM0O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIERBO0x1OzA7TDs7Ozs7Tjs7OzswNTY0OworMDUzNTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBFQ0g7THU7MDtMOzs7OztOOzs7OzA1NjU7CiswNTM2O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFpBO0x1OzA7TDs7Ozs7Tjs7OzswNTY2OworMDUzNztBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBFSDtMdTswO0w7Ozs7O047Ozs7MDU2NzsKKzA1Mzg7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgRVQ7THU7MDtMOzs7OztOOzs7OzA1Njg7CiswNTM5O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFRPO0x1OzA7TDs7Ozs7Tjs7OzswNTY5OworMDUzQTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBaSEU7THU7MDtMOzs7OztOOzs7OzA1NkE7CiswNTNCO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIElOSTtMdTswO0w7Ozs7O047Ozs7MDU2QjsKKzA1M0M7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgTElXTjtMdTswO0w7Ozs7O047Ozs7MDU2QzsKKzA1M0Q7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgWEVIO0x1OzA7TDs7Ozs7Tjs7OzswNTZEOworMDUzRTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBDQTtMdTswO0w7Ozs7O047Ozs7MDU2RTsKKzA1M0Y7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgS0VOO0x1OzA7TDs7Ozs7Tjs7OzswNTZGOworMDU0MDtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBITztMdTswO0w7Ozs7O047Ozs7MDU3MDsKKzA1NDE7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgSkE7THU7MDtMOzs7OztOOzs7OzA1NzE7CiswNTQyO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIEdIQUQ7THU7MDtMOzs7OztOO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIExBRDs7OzA1NzI7CiswNTQzO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIENIRUg7THU7MDtMOzs7OztOOzs7OzA1NzM7CiswNTQ0O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIE1FTjtMdTswO0w7Ozs7O047Ozs7MDU3NDsKKzA1NDU7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgWUk7THU7MDtMOzs7OztOOzs7OzA1NzU7CiswNTQ2O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIE5PVztMdTswO0w7Ozs7O047Ozs7MDU3NjsKKzA1NDc7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgU0hBO0x1OzA7TDs7Ozs7Tjs7OzswNTc3OworMDU0ODtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBWTztMdTswO0w7Ozs7O047Ozs7MDU3ODsKKzA1NDk7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgQ0hBO0x1OzA7TDs7Ozs7Tjs7OzswNTc5OworMDU0QTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBQRUg7THU7MDtMOzs7OztOOzs7OzA1N0E7CiswNTRCO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIEpIRUg7THU7MDtMOzs7OztOOzs7OzA1N0I7CiswNTRDO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFJBO0x1OzA7TDs7Ozs7Tjs7OzswNTdDOworMDU0RDtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBTRUg7THU7MDtMOzs7OztOOzs7OzA1N0Q7CiswNTRFO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFZFVztMdTswO0w7Ozs7O047Ozs7MDU3RTsKKzA1NEY7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgVElXTjtMdTswO0w7Ozs7O047Ozs7MDU3RjsKKzA1NTA7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgUkVIO0x1OzA7TDs7Ozs7Tjs7OzswNTgwOworMDU1MTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBDTztMdTswO0w7Ozs7O047Ozs7MDU4MTsKKzA1NTI7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgWUlXTjtMdTswO0w7Ozs7O047Ozs7MDU4MjsKKzA1NTM7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgUElXUjtMdTswO0w7Ozs7O047Ozs7MDU4MzsKKzA1NTQ7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgS0VIO0x1OzA7TDs7Ozs7Tjs7OzswNTg0OworMDU1NTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBPSDtMdTswO0w7Ozs7O047Ozs7MDU4NTsKKzA1NTY7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgRkVIO0x1OzA7TDs7Ozs7Tjs7OzswNTg2OworMDU1OTtBUk1FTklBTiBNT0RJRklFUiBMRVRURVIgTEVGVCBIQUxGIFJJTkc7TG07MDtMOzs7OztOOzs7OzsKKzA1NUE7QVJNRU5JQU4gQVBPU1RST1BIRTtQbzswO0w7Ozs7O047QVJNRU5JQU4gTU9ESUZJRVIgTEVUVEVSIFJJR0hUIEhBTEYgUklORzs7OzsKKzA1NUI7QVJNRU5JQU4gRU1QSEFTSVMgTUFSSztQbzswO0w7Ozs7O047Ozs7OworMDU1QztBUk1FTklBTiBFWENMQU1BVElPTiBNQVJLO1BvOzA7TDs7Ozs7Tjs7Ozs7CiswNTVEO0FSTUVOSUFOIENPTU1BO1BvOzA7TDs7Ozs7Tjs7Ozs7CiswNTVFO0FSTUVOSUFOIFFVRVNUSU9OIE1BUks7UG87MDtMOzs7OztOOzs7OzsKKzA1NUY7QVJNRU5JQU4gQUJCUkVWSUFUSU9OIE1BUks7UG87MDtMOzs7OztOOzs7OzsKKzA1NjE7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEFZQjtMbDswO0w7Ozs7O047OzswNTMxOzswNTMxCiswNTYyO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBCRU47TGw7MDtMOzs7OztOOzs7MDUzMjs7MDUzMgorMDU2MztBUk1FTklBTiBTTUFMTCBMRVRURVIgR0lNO0xsOzA7TDs7Ozs7Tjs7OzA1MzM7OzA1MzMKKzA1NjQ7QVJNRU5JQU4gU01BTEwgTEVUVEVSIERBO0xsOzA7TDs7Ozs7Tjs7OzA1MzQ7OzA1MzQKKzA1NjU7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEVDSDtMbDswO0w7Ozs7O047OzswNTM1OzswNTM1CiswNTY2O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBaQTtMbDswO0w7Ozs7O047OzswNTM2OzswNTM2CiswNTY3O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBFSDtMbDswO0w7Ozs7O047OzswNTM3OzswNTM3CiswNTY4O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBFVDtMbDswO0w7Ozs7O047OzswNTM4OzswNTM4CiswNTY5O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBUTztMbDswO0w7Ozs7O047OzswNTM5OzswNTM5CiswNTZBO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBaSEU7TGw7MDtMOzs7OztOOzs7MDUzQTs7MDUzQQorMDU2QjtBUk1FTklBTiBTTUFMTCBMRVRURVIgSU5JO0xsOzA7TDs7Ozs7Tjs7OzA1M0I7OzA1M0IKKzA1NkM7QVJNRU5JQU4gU01BTEwgTEVUVEVSIExJV047TGw7MDtMOzs7OztOOzs7MDUzQzs7MDUzQworMDU2RDtBUk1FTklBTiBTTUFMTCBMRVRURVIgWEVIO0xsOzA7TDs7Ozs7Tjs7OzA1M0Q7OzA1M0QKKzA1NkU7QVJNRU5JQU4gU01BTEwgTEVUVEVSIENBO0xsOzA7TDs7Ozs7Tjs7OzA1M0U7OzA1M0UKKzA1NkY7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEtFTjtMbDswO0w7Ozs7O047OzswNTNGOzswNTNGCiswNTcwO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBITztMbDswO0w7Ozs7O047OzswNTQwOzswNTQwCiswNTcxO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBKQTtMbDswO0w7Ozs7O047OzswNTQxOzswNTQxCiswNTcyO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBHSEFEO0xsOzA7TDs7Ozs7TjtBUk1FTklBTiBTTUFMTCBMRVRURVIgTEFEOzswNTQyOzswNTQyCiswNTczO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBDSEVIO0xsOzA7TDs7Ozs7Tjs7OzA1NDM7OzA1NDMKKzA1NzQ7QVJNRU5JQU4gU01BTEwgTEVUVEVSIE1FTjtMbDswO0w7Ozs7O047OzswNTQ0OzswNTQ0CiswNTc1O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBZSTtMbDswO0w7Ozs7O047OzswNTQ1OzswNTQ1CiswNTc2O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBOT1c7TGw7MDtMOzs7OztOOzs7MDU0Njs7MDU0NgorMDU3NztBUk1FTklBTiBTTUFMTCBMRVRURVIgU0hBO0xsOzA7TDs7Ozs7Tjs7OzA1NDc7OzA1NDcKKzA1Nzg7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFZPO0xsOzA7TDs7Ozs7Tjs7OzA1NDg7OzA1NDgKKzA1Nzk7QVJNRU5JQU4gU01BTEwgTEVUVEVSIENIQTtMbDswO0w7Ozs7O047OzswNTQ5OzswNTQ5CiswNTdBO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBQRUg7TGw7MDtMOzs7OztOOzs7MDU0QTs7MDU0QQorMDU3QjtBUk1FTklBTiBTTUFMTCBMRVRURVIgSkhFSDtMbDswO0w7Ozs7O047OzswNTRCOzswNTRCCiswNTdDO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBSQTtMbDswO0w7Ozs7O047OzswNTRDOzswNTRDCiswNTdEO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBTRUg7TGw7MDtMOzs7OztOOzs7MDU0RDs7MDU0RAorMDU3RTtBUk1FTklBTiBTTUFMTCBMRVRURVIgVkVXO0xsOzA7TDs7Ozs7Tjs7OzA1NEU7OzA1NEUKKzA1N0Y7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFRJV047TGw7MDtMOzs7OztOOzs7MDU0Rjs7MDU0RgorMDU4MDtBUk1FTklBTiBTTUFMTCBMRVRURVIgUkVIO0xsOzA7TDs7Ozs7Tjs7OzA1NTA7OzA1NTAKKzA1ODE7QVJNRU5JQU4gU01BTEwgTEVUVEVSIENPO0xsOzA7TDs7Ozs7Tjs7OzA1NTE7OzA1NTEKKzA1ODI7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFlJV047TGw7MDtMOzs7OztOOzs7MDU1Mjs7MDU1MgorMDU4MztBUk1FTklBTiBTTUFMTCBMRVRURVIgUElXUjtMbDswO0w7Ozs7O047OzswNTUzOzswNTUzCiswNTg0O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBLRUg7TGw7MDtMOzs7OztOOzs7MDU1NDs7MDU1NAorMDU4NTtBUk1FTklBTiBTTUFMTCBMRVRURVIgT0g7TGw7MDtMOzs7OztOOzs7MDU1NTs7MDU1NQorMDU4NjtBUk1FTklBTiBTTUFMTCBMRVRURVIgRkVIO0xsOzA7TDs7Ozs7Tjs7OzA1NTY7OzA1NTYKKzA1ODc7QVJNRU5JQU4gU01BTEwgTElHQVRVUkUgRUNIIFlJV047TGw7MDtMOzxjb21wYXQ+IDA1NjUgMDU4Mjs7OztOOzs7OzsKKzA1ODk7QVJNRU5JQU4gRlVMTCBTVE9QO1BvOzA7TDs7Ozs7TjtBUk1FTklBTiBQRVJJT0Q7Ozs7CiswNTkxO0hFQlJFVyBBQ0NFTlQgRVROQUhUQTtNbjsyMjA7T047Ozs7O047Ozs7OworMDU5MjtIRUJSRVcgQUNDRU5UIFNFR09MO01uOzIzMDtPTjs7Ozs7Tjs7Ozs7CiswNTkzO0hFQlJFVyBBQ0NFTlQgU0hBTFNIRUxFVDtNbjsyMzA7T047Ozs7O047Ozs7OworMDU5NDtIRUJSRVcgQUNDRU5UIFpBUUVGIFFBVEFOO01uOzIzMDtPTjs7Ozs7Tjs7Ozs7CiswNTk1O0hFQlJFVyBBQ0NFTlQgWkFRRUYgR0FET0w7TW47MjMwO09OOzs7OztOOzs7OzsKKzA1OTY7SEVCUkVXIEFDQ0VOVCBUSVBFSEE7TW47MjIwO09OOzs7OztOOzs7OzsKKzA1OTc7SEVCUkVXIEFDQ0VOVCBSRVZJQTtNbjsyMzA7T047Ozs7O047Ozs7OworMDU5ODtIRUJSRVcgQUNDRU5UIFpBUlFBO01uOzIzMDtPTjs7Ozs7Tjs7Ozs7CiswNTk5O0hFQlJFVyBBQ0NFTlQgUEFTSFRBO01uOzIzMDtPTjs7Ozs7Tjs7Ozs7CiswNTlBO0hFQlJFVyBBQ0NFTlQgWUVUSVY7TW47MjIyO09OOzs7OztOOzs7OzsKKzA1OUI7SEVCUkVXIEFDQ0VOVCBURVZJUjtNbjsyMjA7T047Ozs7O047Ozs7OworMDU5QztIRUJSRVcgQUNDRU5UIEdFUkVTSDtNbjsyMzA7T047Ozs7O047Ozs7OworMDU5RDtIRUJSRVcgQUNDRU5UIEdFUkVTSCBNVVFEQU07TW47MjMwO09OOzs7OztOOzs7OzsKKzA1OUU7SEVCUkVXIEFDQ0VOVCBHRVJTSEFZSU07TW47MjMwO09OOzs7OztOOzs7OzsKKzA1OUY7SEVCUkVXIEFDQ0VOVCBRQVJORVkgUEFSQTtNbjsyMzA7T047Ozs7O047Ozs7OworMDVBMDtIRUJSRVcgQUNDRU5UIFRFTElTSEEgR0VET0xBO01uOzIzMDtPTjs7Ozs7Tjs7Ozs7CiswNUExO0hFQlJFVyBBQ0NFTlQgUEFaRVI7TW47MjMwO09OOzs7OztOOzs7OzsKKzA1QTM7SEVCUkVXIEFDQ0VOVCBNVU5BSDtNbjsyMjA7T047Ozs7O047Ozs7OworMDVBNDtIRUJSRVcgQUNDRU5UIE1BSEFQQUtIO01uOzIyMDtPTjs7Ozs7Tjs7Ozs7CiswNUE1O0hFQlJFVyBBQ0NFTlQgTUVSS0hBO01uOzIyMDtPTjs7Ozs7Tjs7Ozs7CiswNUE2O0hFQlJFVyBBQ0NFTlQgTUVSS0hBIEtFRlVMQTtNbjsyMjA7T047Ozs7O047Ozs7OworMDVBNztIRUJSRVcgQUNDRU5UIERBUkdBO01uOzIyMDtPTjs7Ozs7Tjs7Ozs7CiswNUE4O0hFQlJFVyBBQ0NFTlQgUUFETUE7TW47MjMwO09OOzs7OztOOzs7OzsKKzA1QTk7SEVCUkVXIEFDQ0VOVCBURUxJU0hBIFFFVEFOQTtNbjsyMzA7T047Ozs7O047Ozs7OworMDVBQTtIRUJSRVcgQUNDRU5UIFlFUkFIIEJFTiBZT01PO01uOzIyMDtPTjs7Ozs7Tjs7Ozs7CiswNUFCO0hFQlJFVyBBQ0NFTlQgT0xFO01uOzIzMDtPTjs7Ozs7Tjs7Ozs7CiswNUFDO0hFQlJFVyBBQ0NFTlQgSUxVWTtNbjsyMzA7T047Ozs7O047Ozs7OworMDVBRDtIRUJSRVcgQUNDRU5UIERFSEk7TW47MjIyO09OOzs7OztOOzs7OzsKKzA1QUU7SEVCUkVXIEFDQ0VOVCBaSU5PUjtNbjsyMzA7T047Ozs7O047Ozs7OworMDVBRjtIRUJSRVcgTUFSSyBNQVNPUkEgQ0lSQ0xFO01uOzIzMDtPTjs7Ozs7Tjs7Ozs7CiswNUIwO0hFQlJFVyBQT0lOVCBTSEVWQTtNbjsxMDtPTjs7Ozs7Tjs7Ozs7CiswNUIxO0hFQlJFVyBQT0lOVCBIQVRBRiBTRUdPTDtNbjsxMTtPTjs7Ozs7Tjs7Ozs7CiswNUIyO0hFQlJFVyBQT0lOVCBIQVRBRiBQQVRBSDtNbjsxMjtPTjs7Ozs7Tjs7Ozs7CiswNUIzO0hFQlJFVyBQT0lOVCBIQVRBRiBRQU1BVFM7TW47MTM7T047Ozs7O047Ozs7OworMDVCNDtIRUJSRVcgUE9JTlQgSElSSVE7TW47MTQ7T047Ozs7O047Ozs7OworMDVCNTtIRUJSRVcgUE9JTlQgVFNFUkU7TW47MTU7T047Ozs7O047Ozs7OworMDVCNjtIRUJSRVcgUE9JTlQgU0VHT0w7TW47MTY7T047Ozs7O047Ozs7OworMDVCNztIRUJSRVcgUE9JTlQgUEFUQUg7TW47MTc7T047Ozs7O047Ozs7OworMDVCODtIRUJSRVcgUE9JTlQgUUFNQVRTO01uOzE4O09OOzs7OztOOzs7OzsKKzA1Qjk7SEVCUkVXIFBPSU5UIEhPTEFNO01uOzE5O09OOzs7OztOOzs7OzsKKzA1QkI7SEVCUkVXIFBPSU5UIFFVQlVUUztNbjsyMDtPTjs7Ozs7Tjs7Ozs7CiswNUJDO0hFQlJFVyBQT0lOVCBEQUdFU0ggT1IgTUFQSVE7TW47MjE7T047Ozs7O047SEVCUkVXIFBPSU5UIERBR0VTSDs7OzsKKzA1QkQ7SEVCUkVXIFBPSU5UIE1FVEVHO01uOzIyO09OOzs7OztOOzs7OzsKKzA1QkU7SEVCUkVXIFBVTkNUVUFUSU9OIE1BUUFGO1BvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUJGO0hFQlJFVyBQT0lOVCBSQUZFO01uOzIzO09OOzs7OztOOzs7OzsKKzA1QzA7SEVCUkVXIFBVTkNUVUFUSU9OIFBBU0VRO1BvOzA7Ujs7Ozs7TjtIRUJSRVcgUE9JTlQgUEFTRVE7Ozs7CiswNUMxO0hFQlJFVyBQT0lOVCBTSElOIERPVDtNbjsyNDtPTjs7Ozs7Tjs7Ozs7CiswNUMyO0hFQlJFVyBQT0lOVCBTSU4gRE9UO01uOzI1O09OOzs7OztOOzs7OzsKKzA1QzM7SEVCUkVXIFBVTkNUVUFUSU9OIFNPRiBQQVNVUTtQbzswO1I7Ozs7O047Ozs7OworMDVDNDtIRUJSRVcgTUFSSyBVUFBFUiBET1Q7TW47MjMwO09OOzs7OztOOzs7OzsKKzA1RDA7SEVCUkVXIExFVFRFUiBBTEVGO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUQxO0hFQlJFVyBMRVRURVIgQkVUO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUQyO0hFQlJFVyBMRVRURVIgR0lNRUw7TG87MDtSOzs7OztOOzs7OzsKKzA1RDM7SEVCUkVXIExFVFRFUiBEQUxFVDtMbzswO1I7Ozs7O047Ozs7OworMDVENDtIRUJSRVcgTEVUVEVSIEhFO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUQ1O0hFQlJFVyBMRVRURVIgVkFWO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUQ2O0hFQlJFVyBMRVRURVIgWkFZSU47TG87MDtSOzs7OztOOzs7OzsKKzA1RDc7SEVCUkVXIExFVFRFUiBIRVQ7TG87MDtSOzs7OztOOzs7OzsKKzA1RDg7SEVCUkVXIExFVFRFUiBURVQ7TG87MDtSOzs7OztOOzs7OzsKKzA1RDk7SEVCUkVXIExFVFRFUiBZT0Q7TG87MDtSOzs7OztOOzs7OzsKKzA1REE7SEVCUkVXIExFVFRFUiBGSU5BTCBLQUY7TG87MDtSOzs7OztOOzs7OzsKKzA1REI7SEVCUkVXIExFVFRFUiBLQUY7TG87MDtSOzs7OztOOzs7OzsKKzA1REM7SEVCUkVXIExFVFRFUiBMQU1FRDtMbzswO1I7Ozs7O047Ozs7OworMDVERDtIRUJSRVcgTEVUVEVSIEZJTkFMIE1FTTtMbzswO1I7Ozs7O047Ozs7OworMDVERTtIRUJSRVcgTEVUVEVSIE1FTTtMbzswO1I7Ozs7O047Ozs7OworMDVERjtIRUJSRVcgTEVUVEVSIEZJTkFMIE5VTjtMbzswO1I7Ozs7O047Ozs7OworMDVFMDtIRUJSRVcgTEVUVEVSIE5VTjtMbzswO1I7Ozs7O047Ozs7OworMDVFMTtIRUJSRVcgTEVUVEVSIFNBTUVLSDtMbzswO1I7Ozs7O047Ozs7OworMDVFMjtIRUJSRVcgTEVUVEVSIEFZSU47TG87MDtSOzs7OztOOzs7OzsKKzA1RTM7SEVCUkVXIExFVFRFUiBGSU5BTCBQRTtMbzswO1I7Ozs7O047Ozs7OworMDVFNDtIRUJSRVcgTEVUVEVSIFBFO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUU1O0hFQlJFVyBMRVRURVIgRklOQUwgVFNBREk7TG87MDtSOzs7OztOOzs7OzsKKzA1RTY7SEVCUkVXIExFVFRFUiBUU0FESTtMbzswO1I7Ozs7O047Ozs7OworMDVFNztIRUJSRVcgTEVUVEVSIFFPRjtMbzswO1I7Ozs7O047Ozs7OworMDVFODtIRUJSRVcgTEVUVEVSIFJFU0g7TG87MDtSOzs7OztOOzs7OzsKKzA1RTk7SEVCUkVXIExFVFRFUiBTSElOO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUVBO0hFQlJFVyBMRVRURVIgVEFWO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUYwO0hFQlJFVyBMSUdBVFVSRSBZSURESVNIIERPVUJMRSBWQVY7TG87MDtSOzs7OztOO0hFQlJFVyBMRVRURVIgRE9VQkxFIFZBVjs7OzsKKzA1RjE7SEVCUkVXIExJR0FUVVJFIFlJRERJU0ggVkFWIFlPRDtMbzswO1I7Ozs7O047SEVCUkVXIExFVFRFUiBWQVYgWU9EOzs7OworMDVGMjtIRUJSRVcgTElHQVRVUkUgWUlERElTSCBET1VCTEUgWU9EO0xvOzA7Ujs7Ozs7TjtIRUJSRVcgTEVUVEVSIERPVUJMRSBZT0Q7Ozs7CiswNUYzO0hFQlJFVyBQVU5DVFVBVElPTiBHRVJFU0g7UG87MDtSOzs7OztOOzs7OzsKKzA1RjQ7SEVCUkVXIFBVTkNUVUFUSU9OIEdFUlNIQVlJTTtQbzswO1I7Ozs7O047Ozs7OworMDYwQztBUkFCSUMgQ09NTUE7UG87MDtDUzs7Ozs7Tjs7Ozs7CiswNjFCO0FSQUJJQyBTRU1JQ09MT047UG87MDtSOzs7OztOOzs7OzsKKzA2MUY7QVJBQklDIFFVRVNUSU9OIE1BUks7UG87MDtSOzs7OztOOzs7OzsKKzA2MjE7QVJBQklDIExFVFRFUiBIQU1aQTtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBIQU1aQUg7Ozs7CiswNjIyO0FSQUJJQyBMRVRURVIgQUxFRiBXSVRIIE1BRERBIEFCT1ZFO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIE1BRERBSCBPTiBBTEVGOzs7OworMDYyMztBUkFCSUMgTEVUVEVSIEFMRUYgV0lUSCBIQU1aQSBBQk9WRTtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBIQU1aQUggT04gQUxFRjs7OzsKKzA2MjQ7QVJBQklDIExFVFRFUiBXQVcgV0lUSCBIQU1aQSBBQk9WRTtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBIQU1aQUggT04gV0FXOzs7OworMDYyNTtBUkFCSUMgTEVUVEVSIEFMRUYgV0lUSCBIQU1aQSBCRUxPVztMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBIQU1aQUggVU5ERVIgQUxFRjs7OzsKKzA2MjY7QVJBQklDIExFVFRFUiBZRUggV0lUSCBIQU1aQSBBQk9WRTtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBIQU1aQUggT04gWUE7Ozs7CiswNjI3O0FSQUJJQyBMRVRURVIgQUxFRjtMbzswO1I7Ozs7O047Ozs7OworMDYyODtBUkFCSUMgTEVUVEVSIEJFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBCQUE7Ozs7CiswNjI5O0FSQUJJQyBMRVRURVIgVEVIIE1BUkJVVEE7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgVEFBIE1BUkJVVEFIOzs7OworMDYyQTtBUkFCSUMgTEVUVEVSIFRFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBUQUE7Ozs7CiswNjJCO0FSQUJJQyBMRVRURVIgVEhFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBUSEFBOzs7OworMDYyQztBUkFCSUMgTEVUVEVSIEpFRU07TG87MDtSOzs7OztOOzs7OzsKKzA2MkQ7QVJBQklDIExFVFRFUiBIQUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgSEFBOzs7OworMDYyRTtBUkFCSUMgTEVUVEVSIEtIQUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgS0hBQTs7OzsKKzA2MkY7QVJBQklDIExFVFRFUiBEQUw7TG87MDtSOzs7OztOOzs7OzsKKzA2MzA7QVJBQklDIExFVFRFUiBUSEFMO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNjMxO0FSQUJJQyBMRVRURVIgUkVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFJBOzs7OworMDYzMjtBUkFCSUMgTEVUVEVSIFpBSU47TG87MDtSOzs7OztOOzs7OzsKKzA2MzM7QVJBQklDIExFVFRFUiBTRUVOO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNjM0O0FSQUJJQyBMRVRURVIgU0hFRU47TG87MDtSOzs7OztOOzs7OzsKKzA2MzU7QVJBQklDIExFVFRFUiBTQUQ7TG87MDtSOzs7OztOOzs7OzsKKzA2MzY7QVJBQklDIExFVFRFUiBEQUQ7TG87MDtSOzs7OztOOzs7OzsKKzA2Mzc7QVJBQklDIExFVFRFUiBUQUg7TG87MDtSOzs7OztOOzs7OzsKKzA2Mzg7QVJBQklDIExFVFRFUiBaQUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgREhBSDs7OzsKKzA2Mzk7QVJBQklDIExFVFRFUiBBSU47TG87MDtSOzs7OztOOzs7OzsKKzA2M0E7QVJBQklDIExFVFRFUiBHSEFJTjtMbzswO1I7Ozs7O047Ozs7OworMDY0MDtBUkFCSUMgVEFUV0VFTDtMbTswO1I7Ozs7O047Ozs7OworMDY0MTtBUkFCSUMgTEVUVEVSIEZFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBGQTs7OzsKKzA2NDI7QVJBQklDIExFVFRFUiBRQUY7TG87MDtSOzs7OztOOzs7OzsKKzA2NDM7QVJBQklDIExFVFRFUiBLQUY7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgQ0FGOzs7OworMDY0NDtBUkFCSUMgTEVUVEVSIExBTTtMbzswO1I7Ozs7O047Ozs7OworMDY0NTtBUkFCSUMgTEVUVEVSIE1FRU07TG87MDtSOzs7OztOOzs7OzsKKzA2NDY7QVJBQklDIExFVFRFUiBOT09OO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNjQ3O0FSQUJJQyBMRVRURVIgSEVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBOzs7OworMDY0ODtBUkFCSUMgTEVUVEVSIFdBVztMbzswO1I7Ozs7O047Ozs7OworMDY0OTtBUkFCSUMgTEVUVEVSIEFMRUYgTUFLU1VSQTtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBBTEVGIE1BUVNVUkFIOzs7OworMDY0QTtBUkFCSUMgTEVUVEVSIFlFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBZQTs7OzsKKzA2NEI7QVJBQklDIEZBVEhBVEFOO01uOzI3O09OOzs7OztOOzs7OzsKKzA2NEM7QVJBQklDIERBTU1BVEFOO01uOzI4O09OOzs7OztOOzs7OzsKKzA2NEQ7QVJBQklDIEtBU1JBVEFOO01uOzI5O09OOzs7OztOOzs7OzsKKzA2NEU7QVJBQklDIEZBVEhBO01uOzMwO09OOzs7OztOO0FSQUJJQyBGQVRIQUg7Ozs7CiswNjRGO0FSQUJJQyBEQU1NQTtNbjszMTtPTjs7Ozs7TjtBUkFCSUMgREFNTUFIOzs7OworMDY1MDtBUkFCSUMgS0FTUkE7TW47MzI7T047Ozs7O047QVJBQklDIEtBU1JBSDs7OzsKKzA2NTE7QVJBQklDIFNIQUREQTtNbjszMztPTjs7Ozs7TjtBUkFCSUMgU0hBRERBSDs7OzsKKzA2NTI7QVJBQklDIFNVS1VOO01uOzM0O09OOzs7OztOOzs7OzsKKzA2NjA7QVJBQklDLUlORElDIERJR0lUIFpFUk87TmQ7MDtBTjs7MDswOzA7Tjs7Ozs7CiswNjYxO0FSQUJJQy1JTkRJQyBESUdJVCBPTkU7TmQ7MDtBTjs7MTsxOzE7Tjs7Ozs7CiswNjYyO0FSQUJJQy1JTkRJQyBESUdJVCBUV087TmQ7MDtBTjs7MjsyOzI7Tjs7Ozs7CiswNjYzO0FSQUJJQy1JTkRJQyBESUdJVCBUSFJFRTtOZDswO0FOOzszOzM7MztOOzs7OzsKKzA2NjQ7QVJBQklDLUlORElDIERJR0lUIEZPVVI7TmQ7MDtBTjs7NDs0OzQ7Tjs7Ozs7CiswNjY1O0FSQUJJQy1JTkRJQyBESUdJVCBGSVZFO05kOzA7QU47OzU7NTs1O047Ozs7OworMDY2NjtBUkFCSUMtSU5ESUMgRElHSVQgU0lYO05kOzA7QU47OzY7Njs2O047Ozs7OworMDY2NztBUkFCSUMtSU5ESUMgRElHSVQgU0VWRU47TmQ7MDtBTjs7Nzs3Ozc7Tjs7Ozs7CiswNjY4O0FSQUJJQy1JTkRJQyBESUdJVCBFSUdIVDtOZDswO0FOOzs4Ozg7ODtOOzs7OzsKKzA2Njk7QVJBQklDLUlORElDIERJR0lUIE5JTkU7TmQ7MDtBTjs7OTs5Ozk7Tjs7Ozs7CiswNjZBO0FSQUJJQyBQRVJDRU5UIFNJR047UG87MDtFVDs7Ozs7Tjs7Ozs7CiswNjZCO0FSQUJJQyBERUNJTUFMIFNFUEFSQVRPUjtQbzswO0FOOzs7OztOOzs7OzsKKzA2NkM7QVJBQklDIFRIT1VTQU5EUyBTRVBBUkFUT1I7UG87MDtBTjs7Ozs7Tjs7Ozs7CiswNjZEO0FSQUJJQyBGSVZFIFBPSU5URUQgU1RBUjtQbzswO1I7Ozs7O047Ozs7OworMDY3MDtBUkFCSUMgTEVUVEVSIFNVUEVSU0NSSVBUIEFMRUY7TW47MzU7T047Ozs7O047QVJBQklDIEFMRUYgQUJPVkU7Ozs7CiswNjcxO0FSQUJJQyBMRVRURVIgQUxFRiBXQVNMQTtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBIQU1aQVQgV0FTTCBPTiBBTEVGOzs7OworMDY3MjtBUkFCSUMgTEVUVEVSIEFMRUYgV0lUSCBXQVZZIEhBTVpBIEFCT1ZFO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFdBVlkgSEFNWkFIIE9OIEFMRUY7Ozs7CiswNjczO0FSQUJJQyBMRVRURVIgQUxFRiBXSVRIIFdBVlkgSEFNWkEgQkVMT1c7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgV0FWWSBIQU1aQUggVU5ERVIgQUxFRjs7OzsKKzA2NzQ7QVJBQklDIExFVFRFUiBISUdIIEhBTVpBO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhJR0ggSEFNWkFIOzs7OworMDY3NTtBUkFCSUMgTEVUVEVSIEhJR0ggSEFNWkEgQUxFRjtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBISUdIIEhBTVpBSCBBTEVGOzs7OworMDY3NjtBUkFCSUMgTEVUVEVSIEhJR0ggSEFNWkEgV0FXO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhJR0ggSEFNWkFIIFdBVzs7OzsKKzA2Nzc7QVJBQklDIExFVFRFUiBVIFdJVEggSEFNWkEgQUJPVkU7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgSElHSCBIQU1aQUggV0FXIFdJVEggREFNTUFIOzs7OworMDY3ODtBUkFCSUMgTEVUVEVSIEhJR0ggSEFNWkEgWUVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhJR0ggSEFNWkFIIFlBOzs7OworMDY3OTtBUkFCSUMgTEVUVEVSIFRURUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgVEFBIFdJVEggU01BTEwgVEFIOzs7OworMDY3QTtBUkFCSUMgTEVUVEVSIFRURUhFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBUQUEgV0lUSCBUV08gRE9UUyBWRVJUSUNBTCBBQk9WRTs7OzsKKzA2N0I7QVJBQklDIExFVFRFUiBCRUVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEJBQSBXSVRIIFRXTyBET1RTIFZFUlRJQ0FMIEJFTE9XOzs7OworMDY3QztBUkFCSUMgTEVUVEVSIFRFSCBXSVRIIFJJTkc7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgVEFBIFdJVEggUklORzs7OzsKKzA2N0Q7QVJBQklDIExFVFRFUiBURUggV0lUSCBUSFJFRSBET1RTIEFCT1ZFIERPV05XQVJEUztMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBUQUEgV0lUSCBUSFJFRSBET1RTIEFCT1ZFIERPV05XQVJEOzs7OworMDY3RTtBUkFCSUMgTEVUVEVSIFBFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBUQUEgV0lUSCBUSFJFRSBET1RTIEJFTE9XOzs7OworMDY3RjtBUkFCSUMgTEVUVEVSIFRFSEVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRBQSBXSVRIIEZPVVIgRE9UUyBBQk9WRTs7OzsKKzA2ODA7QVJBQklDIExFVFRFUiBCRUhFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBCQUEgV0lUSCBGT1VSIERPVFMgQkVMT1c7Ozs7CiswNjgxO0FSQUJJQyBMRVRURVIgSEFIIFdJVEggSEFNWkEgQUJPVkU7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgSEFNWkFIIE9OIEhBQTs7OzsKKzA2ODI7QVJBQklDIExFVFRFUiBIQUggV0lUSCBUV08gRE9UUyBWRVJUSUNBTCBBQk9WRTtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBIQUEgV0lUSCBUV08gRE9UUyBWRVJUSUNBTCBBQk9WRTs7OzsKKzA2ODM7QVJBQklDIExFVFRFUiBOWUVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBQSBXSVRIIE1JRERMRSBUV08gRE9UUzs7OzsKKzA2ODQ7QVJBQklDIExFVFRFUiBEWUVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBQSBXSVRIIE1JRERMRSBUV08gRE9UUyBWRVJUSUNBTDs7OzsKKzA2ODU7QVJBQklDIExFVFRFUiBIQUggV0lUSCBUSFJFRSBET1RTIEFCT1ZFO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBQSBXSVRIIFRIUkVFIERPVFMgQUJPVkU7Ozs7CiswNjg2O0FSQUJJQyBMRVRURVIgVENIRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgSEFBIFdJVEggTUlERExFIFRIUkVFIERPVFMgRE9XTldBUkQ7Ozs7CiswNjg3O0FSQUJJQyBMRVRURVIgVENIRUhFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBIQUEgV0lUSCBNSURETEUgRk9VUiBET1RTOzs7OworMDY4ODtBUkFCSUMgTEVUVEVSIEREQUw7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgREFMIFdJVEggU01BTEwgVEFIOzs7OworMDY4OTtBUkFCSUMgTEVUVEVSIERBTCBXSVRIIFJJTkc7TG87MDtSOzs7OztOOzs7OzsKKzA2OEE7QVJBQklDIExFVFRFUiBEQUwgV0lUSCBET1QgQkVMT1c7TG87MDtSOzs7OztOOzs7OzsKKzA2OEI7QVJBQklDIExFVFRFUiBEQUwgV0lUSCBET1QgQkVMT1cgQU5EIFNNQUxMIFRBSDtMbzswO1I7Ozs7O047Ozs7OworMDY4QztBUkFCSUMgTEVUVEVSIERBSEFMO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIERBTCBXSVRIIFRXTyBET1RTIEFCT1ZFOzs7OworMDY4RDtBUkFCSUMgTEVUVEVSIEREQUhBTDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBEQUwgV0lUSCBUV08gRE9UUyBCRUxPVzs7OzsKKzA2OEU7QVJBQklDIExFVFRFUiBEVUw7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgREFMIFdJVEggVEhSRUUgRE9UUyBBQk9WRTs7OzsKKzA2OEY7QVJBQklDIExFVFRFUiBEQUwgV0lUSCBUSFJFRSBET1RTIEFCT1ZFIERPV05XQVJEUztMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBEQUwgV0lUSCBUSFJFRSBET1RTIEFCT1ZFIERPV05XQVJEOzs7OworMDY5MDtBUkFCSUMgTEVUVEVSIERBTCBXSVRIIEZPVVIgRE9UUyBBQk9WRTtMbzswO1I7Ozs7O047Ozs7OworMDY5MTtBUkFCSUMgTEVUVEVSIFJSRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgUkEgV0lUSCBTTUFMTCBUQUg7Ozs7CiswNjkyO0FSQUJJQyBMRVRURVIgUkVIIFdJVEggU01BTEwgVjtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBSQSBXSVRIIFNNQUxMIFY7Ozs7CiswNjkzO0FSQUJJQyBMRVRURVIgUkVIIFdJVEggUklORztMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBSQSBXSVRIIFJJTkc7Ozs7CiswNjk0O0FSQUJJQyBMRVRURVIgUkVIIFdJVEggRE9UIEJFTE9XO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFJBIFdJVEggRE9UIEJFTE9XOzs7OworMDY5NTtBUkFCSUMgTEVUVEVSIFJFSCBXSVRIIFNNQUxMIFYgQkVMT1c7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgUkEgV0lUSCBTTUFMTCBWIEJFTE9XOzs7OworMDY5NjtBUkFCSUMgTEVUVEVSIFJFSCBXSVRIIERPVCBCRUxPVyBBTkQgRE9UIEFCT1ZFO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFJBIFdJVEggRE9UIEJFTE9XIEFORCBET1QgQUJPVkU7Ozs7CiswNjk3O0FSQUJJQyBMRVRURVIgUkVIIFdJVEggVFdPIERPVFMgQUJPVkU7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgUkEgV0lUSCBUV08gRE9UUyBBQk9WRTs7OzsKKzA2OTg7QVJBQklDIExFVFRFUiBKRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgUkEgV0lUSCBUSFJFRSBET1RTIEFCT1ZFOzs7OworMDY5OTtBUkFCSUMgTEVUVEVSIFJFSCBXSVRIIEZPVVIgRE9UUyBBQk9WRTtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBSQSBXSVRIIEZPVVIgRE9UUyBBQk9WRTs7OzsKKzA2OUE7QVJBQklDIExFVFRFUiBTRUVOIFdJVEggRE9UIEJFTE9XIEFORCBET1QgQUJPVkU7TG87MDtSOzs7OztOOzs7OzsKKzA2OUI7QVJBQklDIExFVFRFUiBTRUVOIFdJVEggVEhSRUUgRE9UUyBCRUxPVztMbzswO1I7Ozs7O047Ozs7OworMDY5QztBUkFCSUMgTEVUVEVSIFNFRU4gV0lUSCBUSFJFRSBET1RTIEJFTE9XIEFORCBUSFJFRSBET1RTIEFCT1ZFO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNjlEO0FSQUJJQyBMRVRURVIgU0FEIFdJVEggVFdPIERPVFMgQkVMT1c7TG87MDtSOzs7OztOOzs7OzsKKzA2OUU7QVJBQklDIExFVFRFUiBTQUQgV0lUSCBUSFJFRSBET1RTIEFCT1ZFO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNjlGO0FSQUJJQyBMRVRURVIgVEFIIFdJVEggVEhSRUUgRE9UUyBBQk9WRTtMbzswO1I7Ozs7O047Ozs7OworMDZBMDtBUkFCSUMgTEVUVEVSIEFJTiBXSVRIIFRIUkVFIERPVFMgQUJPVkU7TG87MDtSOzs7OztOOzs7OzsKKzA2QTE7QVJBQklDIExFVFRFUiBET1RMRVNTIEZFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBET1RMRVNTIEZBOzs7OworMDZBMjtBUkFCSUMgTEVUVEVSIEZFSCBXSVRIIERPVCBNT1ZFRCBCRUxPVztMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBGQSBXSVRIIERPVCBNT1ZFRCBCRUxPVzs7OzsKKzA2QTM7QVJBQklDIExFVFRFUiBGRUggV0lUSCBET1QgQkVMT1c7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgRkEgV0lUSCBET1QgQkVMT1c7Ozs7CiswNkE0O0FSQUJJQyBMRVRURVIgVkVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEZBIFdJVEggVEhSRUUgRE9UUyBBQk9WRTs7OzsKKzA2QTU7QVJBQklDIExFVFRFUiBGRUggV0lUSCBUSFJFRSBET1RTIEJFTE9XO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEZBIFdJVEggVEhSRUUgRE9UUyBCRUxPVzs7OzsKKzA2QTY7QVJBQklDIExFVFRFUiBQRUhFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBGQSBXSVRIIEZPVVIgRE9UUyBBQk9WRTs7OzsKKzA2QTc7QVJBQklDIExFVFRFUiBRQUYgV0lUSCBET1QgQUJPVkU7TG87MDtSOzs7OztOOzs7OzsKKzA2QTg7QVJBQklDIExFVFRFUiBRQUYgV0lUSCBUSFJFRSBET1RTIEFCT1ZFO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNkE5O0FSQUJJQyBMRVRURVIgS0VIRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgT1BFTiBDQUY7Ozs7CiswNkFBO0FSQUJJQyBMRVRURVIgU1dBU0ggS0FGO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFNXQVNIIENBRjs7OzsKKzA2QUI7QVJBQklDIExFVFRFUiBLQUYgV0lUSCBSSU5HO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIENBRiBXSVRIIFJJTkc7Ozs7CiswNkFDO0FSQUJJQyBMRVRURVIgS0FGIFdJVEggRE9UIEFCT1ZFO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIENBRiBXSVRIIERPVCBBQk9WRTs7OzsKKzA2QUQ7QVJBQklDIExFVFRFUiBORztMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBDQUYgV0lUSCBUSFJFRSBET1RTIEFCT1ZFOzs7OworMDZBRTtBUkFCSUMgTEVUVEVSIEtBRiBXSVRIIFRIUkVFIERPVFMgQkVMT1c7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgQ0FGIFdJVEggVEhSRUUgRE9UUyBCRUxPVzs7OzsKKzA2QUY7QVJBQklDIExFVFRFUiBHQUY7TG87MDtSOzs7OztOOzs7OzsKKzA2QjA7QVJBQklDIExFVFRFUiBHQUYgV0lUSCBSSU5HO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNkIxO0FSQUJJQyBMRVRURVIgTkdPRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgR0FGIFdJVEggVFdPIERPVFMgQUJPVkU7Ozs7CiswNkIyO0FSQUJJQyBMRVRURVIgR0FGIFdJVEggVFdPIERPVFMgQkVMT1c7TG87MDtSOzs7OztOOzs7OzsKKzA2QjM7QVJBQklDIExFVFRFUiBHVUVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEdBRiBXSVRIIFRXTyBET1RTIFZFUlRJQ0FMIEJFTE9XOzs7OworMDZCNDtBUkFCSUMgTEVUVEVSIEdBRiBXSVRIIFRIUkVFIERPVFMgQUJPVkU7TG87MDtSOzs7OztOOzs7OzsKKzA2QjU7QVJBQklDIExFVFRFUiBMQU0gV0lUSCBTTUFMTCBWO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNkI2O0FSQUJJQyBMRVRURVIgTEFNIFdJVEggRE9UIEFCT1ZFO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNkI3O0FSQUJJQyBMRVRURVIgTEFNIFdJVEggVEhSRUUgRE9UUyBBQk9WRTtMbzswO1I7Ozs7O047Ozs7OworMDZCQTtBUkFCSUMgTEVUVEVSIE5PT04gR0hVTk5BO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIERPVExFU1MgTk9PTjs7OzsKKzA2QkI7QVJBQklDIExFVFRFUiBSTk9PTjtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBET1RMRVNTIE5PT04gV0lUSCBTTUFMTCBUQUg7Ozs7CiswNkJDO0FSQUJJQyBMRVRURVIgTk9PTiBXSVRIIFJJTkc7TG87MDtSOzs7OztOOzs7OzsKKzA2QkQ7QVJBQklDIExFVFRFUiBOT09OIFdJVEggVEhSRUUgRE9UUyBBQk9WRTtMbzswO1I7Ozs7O047Ozs7OworMDZCRTtBUkFCSUMgTEVUVEVSIEhFSCBET0FDSEFTSE1FRTtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBLTk9UVEVEIEhBOzs7OworMDZDMDtBUkFCSUMgTEVUVEVSIEhFSCBXSVRIIFlFSCBBQk9WRTtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBIQU1aQUggT04gSEE7Ozs7CiswNkMxO0FSQUJJQyBMRVRURVIgSEVIIEdPQUw7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgSEEgR09BTDs7OzsKKzA2QzI7QVJBQklDIExFVFRFUiBIRUggR09BTCBXSVRIIEhBTVpBIEFCT1ZFO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBTVpBSCBPTiBIQSBHT0FMOzs7OworMDZDMztBUkFCSUMgTEVUVEVSIFRFSCBNQVJCVVRBIEdPQUw7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgVEFBIE1BUkJVVEFIIEdPQUw7Ozs7CiswNkM0O0FSQUJJQyBMRVRURVIgV0FXIFdJVEggUklORztMbzswO1I7Ozs7O047Ozs7OworMDZDNTtBUkFCSUMgTEVUVEVSIEtJUkdISVogT0U7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgV0FXIFdJVEggQkFSOzs7OworMDZDNjtBUkFCSUMgTEVUVEVSIE9FO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFdBVyBXSVRIIFNNQUxMIFY7Ozs7CiswNkM3O0FSQUJJQyBMRVRURVIgVTtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBXQVcgV0lUSCBEQU1NQUg7Ozs7CiswNkM4O0FSQUJJQyBMRVRURVIgWVU7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgV0FXIFdJVEggQUxFRiBBQk9WRTs7OzsKKzA2Qzk7QVJBQklDIExFVFRFUiBLSVJHSElaIFlVO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFdBVyBXSVRIIElOVkVSVEVEIFNNQUxMIFY7Ozs7CiswNkNBO0FSQUJJQyBMRVRURVIgV0FXIFdJVEggVFdPIERPVFMgQUJPVkU7TG87MDtSOzs7OztOOzs7OzsKKzA2Q0I7QVJBQklDIExFVFRFUiBWRTtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBXQVcgV0lUSCBUSFJFRSBET1RTIEFCT1ZFOzs7OworMDZDQztBUkFCSUMgTEVUVEVSIEZBUlNJIFlFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBET1RMRVNTIFlBOzs7OworMDZDRDtBUkFCSUMgTEVUVEVSIFlFSCBXSVRIIFRBSUw7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgWUEgV0lUSCBUQUlMOzs7OworMDZDRTtBUkFCSUMgTEVUVEVSIFlFSCBXSVRIIFNNQUxMIFY7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgWUEgV0lUSCBTTUFMTCBWOzs7OworMDZEMDtBUkFCSUMgTEVUVEVSIEU7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgWUEgV0lUSCBUV08gRE9UUyBWRVJUSUNBTCBCRUxPVzs7OzsKKzA2RDE7QVJBQklDIExFVFRFUiBZRUggV0lUSCBUSFJFRSBET1RTIEJFTE9XO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFlBIFdJVEggVEhSRUUgRE9UUyBCRUxPVzs7OzsKKzA2RDI7QVJBQklDIExFVFRFUiBZRUggQkFSUkVFO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFlBIEJBUlJFRTs7OzsKKzA2RDM7QVJBQklDIExFVFRFUiBZRUggQkFSUkVFIFdJVEggSEFNWkEgQUJPVkU7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgSEFNWkFIIE9OIFlBIEJBUlJFRTs7OzsKKzA2RDQ7QVJBQklDIEZVTEwgU1RPUDtQbzswO1I7Ozs7O047QVJBQklDIFBFUklPRDs7OzsKKzA2RDU7QVJBQklDIExFVFRFUiBBRTtMbzswO1I7Ozs7O047Ozs7OworMDZENjtBUkFCSUMgU01BTEwgSElHSCBMSUdBVFVSRSBTQUQgV0lUSCBMQU0gV0lUSCBBTEVGIE1BS1NVUkE7TW47MjMwO09OOzs7OztOOzs7OzsKKzA2RDc7QVJBQklDIFNNQUxMIEhJR0ggTElHQVRVUkUgUUFGIFdJVEggTEFNIFdJVEggQUxFRiBNQUtTVVJBO01uOzIzMDtPTjs7Ozs7Tjs7Ozs7CiswNkQ4O0FSQUJJQyBTTUFMTCBISUdIIE1FRU0gSU5JVElBTCBGT1JNO01uOzIzMDtPTjs7Ozs7Tjs7Ozs7CiswNkQ5O0FSQUJJQyBTTUFMTCBISUdIIExBTSBBTEVGO01uOzIzMDtPTjs7Ozs7Tjs7Ozs7CiswNkRBO0FSQUJJQyBTTUFMTCBISUdIIEpFRU07TW47MjMwO09OOzs7OztOOzs7OzsKKzA2REI7QVJBQklDIFNNQUxMIEhJR0ggVEhSRUUgRE9UUztNbjsyMzA7T047Ozs7O047Ozs7OworMDZEQztBUkFCSUMgU01BTEwgSElHSCBTRUVOO01uOzIzMDtPTjs7Ozs7Tjs7Ozs7CiswNkREO0FSQUJJQyBFTkQgT0YgQVlBSDtNZTswO09OOzs7OztOOzs7OzsKKzA2REU7QVJBQklDIFNUQVJUIE9GIFJVQiBFTCBISVpCO01lOzA7T047Ozs7O047Ozs7OworMDZERjtBUkFCSUMgU01BTEwgSElHSCBST1VOREVEIFpFUk87TW47MjMwO09OOzs7OztOOzs7OzsKKzA2RTA7QVJBQklDIFNNQUxMIEhJR0ggVVBSSUdIVCBSRUNUQU5HVUxBUiBaRVJPO01uOzIzMDtPTjs7Ozs7Tjs7Ozs7CiswNkUxO0FSQUJJQyBTTUFMTCBISUdIIERPVExFU1MgSEVBRCBPRiBLSEFIO01uOzIzMDtPTjs7Ozs7Tjs7Ozs7CiswNkUyO0FSQUJJQyBTTUFMTCBISUdIIE1FRU0gSVNPTEFURUQgRk9STTtNbjsyMzA7T047Ozs7O047Ozs7OworMDZFMztBUkFCSUMgU01BTEwgTE9XIFNFRU47TW47MjIwO09OOzs7OztOOzs7OzsKKzA2RTQ7QVJBQklDIFNNQUxMIEhJR0ggTUFEREE7TW47MjMwO09OOzs7OztOOzs7OzsKKzA2RTU7QVJBQklDIFNNQUxMIFdBVztMbTswO1I7Ozs7O047Ozs7OworMDZFNjtBUkFCSUMgU01BTEwgWUVIO0xtOzA7Ujs7Ozs7Tjs7Ozs7CiswNkU3O0FSQUJJQyBTTUFMTCBISUdIIFlFSDtNbjsyMzA7T047Ozs7O047Ozs7OworMDZFODtBUkFCSUMgU01BTEwgSElHSCBOT09OO01uOzIzMDtPTjs7Ozs7Tjs7Ozs7CiswNkU5O0FSQUJJQyBQTEFDRSBPRiBTQUpEQUg7U287MDtPTjs7Ozs7Tjs7Ozs7CiswNkVBO0FSQUJJQyBFTVBUWSBDRU5UUkUgTE9XIFNUT1A7TW47MjIwO09OOzs7OztOOzs7OzsKKzA2RUI7QVJBQklDIEVNUFRZIENFTlRSRSBISUdIIFNUT1A7TW47MjMwO09OOzs7OztOOzs7OzsKKzA2RUM7QVJBQklDIFJPVU5ERUQgSElHSCBTVE9QIFdJVEggRklMTEVEIENFTlRSRTtNbjsyMzA7T047Ozs7O047Ozs7OworMDZFRDtBUkFCSUMgU01BTEwgTE9XIE1FRU07TW47MjIwO09OOzs7OztOOzs7OzsKKzA2RjA7RVhURU5ERUQgQVJBQklDLUlORElDIERJR0lUIFpFUk87TmQ7MDtFTjs7MDswOzA7TjtFQVNURVJOIEFSQUJJQy1JTkRJQyBESUdJVCBaRVJPOzs7OworMDZGMTtFWFRFTkRFRCBBUkFCSUMtSU5ESUMgRElHSVQgT05FO05kOzA7RU47OzE7MTsxO047RUFTVEVSTiBBUkFCSUMtSU5ESUMgRElHSVQgT05FOzs7OworMDZGMjtFWFRFTkRFRCBBUkFCSUMtSU5ESUMgRElHSVQgVFdPO05kOzA7RU47OzI7MjsyO047RUFTVEVSTiBBUkFCSUMtSU5ESUMgRElHSVQgVFdPOzs7OworMDZGMztFWFRFTkRFRCBBUkFCSUMtSU5ESUMgRElHSVQgVEhSRUU7TmQ7MDtFTjs7MzszOzM7TjtFQVNURVJOIEFSQUJJQy1JTkRJQyBESUdJVCBUSFJFRTs7OzsKKzA2RjQ7RVhURU5ERUQgQVJBQklDLUlORElDIERJR0lUIEZPVVI7TmQ7MDtFTjs7NDs0OzQ7TjtFQVNURVJOIEFSQUJJQy1JTkRJQyBESUdJVCBGT1VSOzs7OworMDZGNTtFWFRFTkRFRCBBUkFCSUMtSU5ESUMgRElHSVQgRklWRTtOZDswO0VOOzs1OzU7NTtOO0VBU1RFUk4gQVJBQklDLUlORElDIERJR0lUIEZJVkU7Ozs7CiswNkY2O0VYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBTSVg7TmQ7MDtFTjs7Njs2OzY7TjtFQVNURVJOIEFSQUJJQy1JTkRJQyBESUdJVCBTSVg7Ozs7CiswNkY3O0VYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBTRVZFTjtOZDswO0VOOzs3Ozc7NztOO0VBU1RFUk4gQVJBQklDLUlORElDIERJR0lUIFNFVkVOOzs7OworMDZGODtFWFRFTkRFRCBBUkFCSUMtSU5ESUMgRElHSVQgRUlHSFQ7TmQ7MDtFTjs7ODs4Ozg7TjtFQVNURVJOIEFSQUJJQy1JTkRJQyBESUdJVCBFSUdIVDs7OzsKKzA2Rjk7RVhURU5ERUQgQVJBQklDLUlORElDIERJR0lUIE5JTkU7TmQ7MDtFTjs7OTs5Ozk7TjtFQVNURVJOIEFSQUJJQy1JTkRJQyBESUdJVCBOSU5FOzs7OworMDkwMTtERVZBTkFHQVJJIFNJR04gQ0FORFJBQklORFU7TW47Mzc7T047Ozs7O047Ozs7OworMDkwMjtERVZBTkFHQVJJIFNJR04gQU5VU1ZBUkE7TW47MzY7T047Ozs7O047Ozs7OworMDkwMztERVZBTkFHQVJJIFNJR04gVklTQVJHQTtNYzswO0w7Ozs7O047Ozs7OworMDkwNTtERVZBTkFHQVJJIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTA2O0RFVkFOQUdBUkkgTEVUVEVSIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTA3O0RFVkFOQUdBUkkgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzA5MDg7REVWQU5BR0FSSSBMRVRURVIgSUk7TG87MDtMOzs7OztOOzs7OzsKKzA5MDk7REVWQU5BR0FSSSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMDkwQTtERVZBTkFHQVJJIExFVFRFUiBVVTtMbzswO0w7Ozs7O047Ozs7OworMDkwQjtERVZBTkFHQVJJIExFVFRFUiBWT0NBTElDIFI7TG87MDtMOzs7OztOOzs7OzsKKzA5MEM7REVWQU5BR0FSSSBMRVRURVIgVk9DQUxJQyBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTBEO0RFVkFOQUdBUkkgTEVUVEVSIENBTkRSQSBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTBFO0RFVkFOQUdBUkkgTEVUVEVSIFNIT1JUIEU7TG87MDtMOzs7OztOOzs7OzsKKzA5MEY7REVWQU5BR0FSSSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMDkxMDtERVZBTkFHQVJJIExFVFRFUiBBSTtMbzswO0w7Ozs7O047Ozs7OworMDkxMTtERVZBTkFHQVJJIExFVFRFUiBDQU5EUkEgTztMbzswO0w7Ozs7O047Ozs7OworMDkxMjtERVZBTkFHQVJJIExFVFRFUiBTSE9SVCBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTEzO0RFVkFOQUdBUkkgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzA5MTQ7REVWQU5BR0FSSSBMRVRURVIgQVU7TG87MDtMOzs7OztOOzs7OzsKKzA5MTU7REVWQU5BR0FSSSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzA5MTY7REVWQU5BR0FSSSBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTE3O0RFVkFOQUdBUkkgTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTE4O0RFVkFOQUdBUkkgTEVUVEVSIEdIQTtMbzswO0w7Ozs7O047Ozs7OworMDkxOTtERVZBTkFHQVJJIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzA5MUE7REVWQU5BR0FSSSBMRVRURVIgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzA5MUI7REVWQU5BR0FSSSBMRVRURVIgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTFDO0RFVkFOQUdBUkkgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTFEO0RFVkFOQUdBUkkgTEVUVEVSIEpIQTtMbzswO0w7Ozs7O047Ozs7OworMDkxRTtERVZBTkFHQVJJIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzA5MUY7REVWQU5BR0FSSSBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTIwO0RFVkFOQUdBUkkgTEVUVEVSIFRUSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MjE7REVWQU5BR0FSSSBMRVRURVIgRERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTIyO0RFVkFOQUdBUkkgTEVUVEVSIERESEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MjM7REVWQU5BR0FSSSBMRVRURVIgTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTI0O0RFVkFOQUdBUkkgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTI1O0RFVkFOQUdBUkkgTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMDkyNjtERVZBTkFHQVJJIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMDkyNztERVZBTkFHQVJJIExFVFRFUiBESEE7TG87MDtMOzs7OztOOzs7OzsKKzA5Mjg7REVWQU5BR0FSSSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzA5Mjk7REVWQU5BR0FSSSBMRVRURVIgTk5OQTtMbzswO0w7MDkyOCAwOTNDOzs7O047Ozs7OworMDkyQTtERVZBTkFHQVJJIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMDkyQjtERVZBTkFHQVJJIExFVFRFUiBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MkM7REVWQU5BR0FSSSBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzA5MkQ7REVWQU5BR0FSSSBMRVRURVIgQkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTJFO0RFVkFOQUdBUkkgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTJGO0RFVkFOQUdBUkkgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTMwO0RFVkFOQUdBUkkgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTMxO0RFVkFOQUdBUkkgTEVUVEVSIFJSQTtMbzswO0w7MDkzMCAwOTNDOzs7O047Ozs7OworMDkzMjtERVZBTkFHQVJJIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMDkzMztERVZBTkFHQVJJIExFVFRFUiBMTEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MzQ7REVWQU5BR0FSSSBMRVRURVIgTExMQTtMbzswO0w7MDkzMyAwOTNDOzs7O047Ozs7OworMDkzNTtERVZBTkFHQVJJIExFVFRFUiBWQTtMbzswO0w7Ozs7O047Ozs7OworMDkzNjtERVZBTkFHQVJJIExFVFRFUiBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5Mzc7REVWQU5BR0FSSSBMRVRURVIgU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTM4O0RFVkFOQUdBUkkgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTM5O0RFVkFOQUdBUkkgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTNDO0RFVkFOQUdBUkkgU0lHTiBOVUtUQTtNbjs3O09OOzs7OztOOzs7OzsKKzA5M0Q7REVWQU5BR0FSSSBTSUdOIEFWQUdSQUhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTNFO0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBBQTtNYzswO0w7Ozs7O047Ozs7OworMDkzRjtERVZBTkFHQVJJIFZPV0VMIFNJR04gSTtNYzswO0w7Ozs7O047Ozs7OworMDk0MDtERVZBTkFHQVJJIFZPV0VMIFNJR04gSUk7TWM7MDtMOzs7OztOOzs7OzsKKzA5NDE7REVWQU5BR0FSSSBWT1dFTCBTSUdOIFU7TW47Mzg7T047Ozs7O047Ozs7OworMDk0MjtERVZBTkFHQVJJIFZPV0VMIFNJR04gVVU7TW47Mzk7T047Ozs7O047Ozs7OworMDk0MztERVZBTkFHQVJJIFZPV0VMIFNJR04gVk9DQUxJQyBSO01uOzQwO09OOzs7OztOOzs7OzsKKzA5NDQ7REVWQU5BR0FSSSBWT1dFTCBTSUdOIFZPQ0FMSUMgUlI7TW47NDE7T047Ozs7O047Ozs7OworMDk0NTtERVZBTkFHQVJJIFZPV0VMIFNJR04gQ0FORFJBIEU7TW47NDI7T047Ozs7O047Ozs7OworMDk0NjtERVZBTkFHQVJJIFZPV0VMIFNJR04gU0hPUlQgRTtNbjs0MztPTjs7Ozs7Tjs7Ozs7CiswOTQ3O0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBFO01uOzQ0O09OOzs7OztOOzs7OzsKKzA5NDg7REVWQU5BR0FSSSBWT1dFTCBTSUdOIEFJO01uOzQ1O09OOzs7OztOOzs7OzsKKzA5NDk7REVWQU5BR0FSSSBWT1dFTCBTSUdOIENBTkRSQSBPO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOTRBO0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBTSE9SVCBPO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOTRCO0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBPO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOTRDO0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBBVTtNYzswO0w7Ozs7O047Ozs7OworMDk0RDtERVZBTkFHQVJJIFNJR04gVklSQU1BO01uOzk7T047Ozs7O047Ozs7OworMDk1MDtERVZBTkFHQVJJIE9NO1NvOzA7TDs7Ozs7Tjs7Ozs7CiswOTUxO0RFVkFOQUdBUkkgU1RSRVNTIFNJR04gVURBVFRBO01uOzQ2O09OOzs7OztOOzs7OzsKKzA5NTI7REVWQU5BR0FSSSBTVFJFU1MgU0lHTiBBTlVEQVRUQTtNbjs0NztPTjs7Ozs7Tjs7Ozs7CiswOTUzO0RFVkFOQUdBUkkgR1JBVkUgQUNDRU5UO01uOzIzMDtPTjs7Ozs7Tjs7Ozs7CiswOTU0O0RFVkFOQUdBUkkgQUNVVEUgQUNDRU5UO01uOzIzMDtPTjs7Ozs7Tjs7Ozs7CiswOTU4O0RFVkFOQUdBUkkgTEVUVEVSIFFBO0xvOzA7TDswOTE1IDA5M0M7Ozs7Tjs7Ozs7CiswOTU5O0RFVkFOQUdBUkkgTEVUVEVSIEtISEE7TG87MDtMOzA5MTYgMDkzQzs7OztOOzs7OzsKKzA5NUE7REVWQU5BR0FSSSBMRVRURVIgR0hIQTtMbzswO0w7MDkxNyAwOTNDOzs7O047Ozs7OworMDk1QjtERVZBTkFHQVJJIExFVFRFUiBaQTtMbzswO0w7MDkxQyAwOTNDOzs7O047Ozs7OworMDk1QztERVZBTkFHQVJJIExFVFRFUiBERERIQTtMbzswO0w7MDkyMSAwOTNDOzs7O047Ozs7OworMDk1RDtERVZBTkFHQVJJIExFVFRFUiBSSEE7TG87MDtMOzA5MjIgMDkzQzs7OztOOzs7OzsKKzA5NUU7REVWQU5BR0FSSSBMRVRURVIgRkE7TG87MDtMOzA5MkIgMDkzQzs7OztOOzs7OzsKKzA5NUY7REVWQU5BR0FSSSBMRVRURVIgWVlBO0xvOzA7TDswOTJGIDA5M0M7Ozs7Tjs7Ozs7CiswOTYwO0RFVkFOQUdBUkkgTEVUVEVSIFZPQ0FMSUMgUlI7TG87MDtMOzs7OztOOzs7OzsKKzA5NjE7REVWQU5BR0FSSSBMRVRURVIgVk9DQUxJQyBMTDtMbzswO0w7Ozs7O047Ozs7OworMDk2MjtERVZBTkFHQVJJIFZPV0VMIFNJR04gVk9DQUxJQyBMO01uOzQ4O09OOzs7OztOOzs7OzsKKzA5NjM7REVWQU5BR0FSSSBWT1dFTCBTSUdOIFZPQ0FMSUMgTEw7TW47NDk7T047Ozs7O047Ozs7OworMDk2NDtERVZBTkFHQVJJIERBTkRBO1BvOzA7TDs7Ozs7Tjs7Ozs7CiswOTY1O0RFVkFOQUdBUkkgRE9VQkxFIERBTkRBO1BvOzA7TDs7Ozs7Tjs7Ozs7CiswOTY2O0RFVkFOQUdBUkkgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMDk2NztERVZBTkFHQVJJIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMDk2ODtERVZBTkFHQVJJIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMDk2OTtERVZBTkFHQVJJIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswOTZBO0RFVkFOQUdBUkkgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMDk2QjtERVZBTkFHQVJJIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzA5NkM7REVWQU5BR0FSSSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzA5NkQ7REVWQU5BR0FSSSBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMDk2RTtERVZBTkFHQVJJIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswOTZGO0RFVkFOQUdBUkkgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMDk3MDtERVZBTkFHQVJJIEFCQlJFVklBVElPTiBTSUdOO1BvOzA7TDs7Ozs7Tjs7Ozs7CiswOTgxO0JFTkdBTEkgU0lHTiBDQU5EUkFCSU5EVTtNbjs1MDtPTjs7Ozs7Tjs7Ozs7CiswOTgyO0JFTkdBTEkgU0lHTiBBTlVTVkFSQTtNYzswO0w7Ozs7O047Ozs7OworMDk4MztCRU5HQUxJIFNJR04gVklTQVJHQTtNYzswO0w7Ozs7O047Ozs7OworMDk4NTtCRU5HQUxJIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTg2O0JFTkdBTEkgTEVUVEVSIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTg3O0JFTkdBTEkgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzA5ODg7QkVOR0FMSSBMRVRURVIgSUk7TG87MDtMOzs7OztOOzs7OzsKKzA5ODk7QkVOR0FMSSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMDk4QTtCRU5HQUxJIExFVFRFUiBVVTtMbzswO0w7Ozs7O047Ozs7OworMDk4QjtCRU5HQUxJIExFVFRFUiBWT0NBTElDIFI7TG87MDtMOzs7OztOOzs7OzsKKzA5OEM7QkVOR0FMSSBMRVRURVIgVk9DQUxJQyBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOThGO0JFTkdBTEkgTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzA5OTA7QkVOR0FMSSBMRVRURVIgQUk7TG87MDtMOzs7OztOOzs7OzsKKzA5OTM7QkVOR0FMSSBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMDk5NDtCRU5HQUxJIExFVFRFUiBBVTtMbzswO0w7Ozs7O047Ozs7OworMDk5NTtCRU5HQUxJIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMDk5NjtCRU5HQUxJIExFVFRFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5OTc7QkVOR0FMSSBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzA5OTg7QkVOR0FMSSBMRVRURVIgR0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTk5O0JFTkdBTEkgTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMDk5QTtCRU5HQUxJIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMDk5QjtCRU5HQUxJIExFVFRFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5OUM7QkVOR0FMSSBMRVRURVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzA5OUQ7QkVOR0FMSSBMRVRURVIgSkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTlFO0JFTkdBTEkgTEVUVEVSIE5ZQTtMbzswO0w7Ozs7O047Ozs7OworMDk5RjtCRU5HQUxJIExFVFRFUiBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzA5QTA7QkVOR0FMSSBMRVRURVIgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMDlBMTtCRU5HQUxJIExFVFRFUiBEREE7TG87MDtMOzs7OztOOzs7OzsKKzA5QTI7QkVOR0FMSSBMRVRURVIgRERIQTtMbzswO0w7Ozs7O047Ozs7OworMDlBMztCRU5HQUxJIExFVFRFUiBOTkE7TG87MDtMOzs7OztOOzs7OzsKKzA5QTQ7QkVOR0FMSSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzA5QTU7QkVOR0FMSSBMRVRURVIgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUE2O0JFTkdBTEkgTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUE3O0JFTkdBTEkgTEVUVEVSIERIQTtMbzswO0w7Ozs7O047Ozs7OworMDlBODtCRU5HQUxJIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMDlBQTtCRU5HQUxJIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMDlBQjtCRU5HQUxJIExFVFRFUiBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5QUM7QkVOR0FMSSBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzA5QUQ7QkVOR0FMSSBMRVRURVIgQkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUFFO0JFTkdBTEkgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUFGO0JFTkdBTEkgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUIwO0JFTkdBTEkgTEVUVEVSIFJBO0xvOzA7TDswOUFDIDA5QkM7Ozs7Tjs7Ozs7CiswOUIyO0JFTkdBTEkgTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUI2O0JFTkdBTEkgTEVUVEVSIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMDlCNztCRU5HQUxJIExFVFRFUiBTU0E7TG87MDtMOzs7OztOOzs7OzsKKzA5Qjg7QkVOR0FMSSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzA5Qjk7QkVOR0FMSSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5QkM7QkVOR0FMSSBTSUdOIE5VS1RBO01uOzc7T047Ozs7O047Ozs7OworMDlCRTtCRU5HQUxJIFZPV0VMIFNJR04gQUE7TWM7MDtMOzs7OztOOzs7OzsKKzA5QkY7QkVOR0FMSSBWT1dFTCBTSUdOIEk7TWM7MDtMOzs7OztOOzs7OzsKKzA5QzA7QkVOR0FMSSBWT1dFTCBTSUdOIElJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOUMxO0JFTkdBTEkgVk9XRUwgU0lHTiBVO01uOzUxO09OOzs7OztOOzs7OzsKKzA5QzI7QkVOR0FMSSBWT1dFTCBTSUdOIFVVO01uOzUyO09OOzs7OztOOzs7OzsKKzA5QzM7QkVOR0FMSSBWT1dFTCBTSUdOIFZPQ0FMSUMgUjtNbjs1MztPTjs7Ozs7Tjs7Ozs7CiswOUM0O0JFTkdBTEkgVk9XRUwgU0lHTiBWT0NBTElDIFJSO01uOzU0O09OOzs7OztOOzs7OzsKKzA5Qzc7QkVOR0FMSSBWT1dFTCBTSUdOIEU7TWM7MDtMOzs7OztOOzs7OzsKKzA5Qzg7QkVOR0FMSSBWT1dFTCBTSUdOIEFJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOUNCO0JFTkdBTEkgVk9XRUwgU0lHTiBPO01jOzA7TDswOUM3IDA5QkU7Ozs7Tjs7Ozs7CiswOUNDO0JFTkdBTEkgVk9XRUwgU0lHTiBBVTtNYzswO0w7MDlDNyAwOUQ3Ozs7O047Ozs7OworMDlDRDtCRU5HQUxJIFNJR04gVklSQU1BO01uOzk7T047Ozs7O047Ozs7OworMDlENztCRU5HQUxJIEFVIExFTkdUSCBNQVJLO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOURDO0JFTkdBTEkgTEVUVEVSIFJSQTtMbzswO0w7MDlBMSAwOUJDOzs7O047Ozs7OworMDlERDtCRU5HQUxJIExFVFRFUiBSSEE7TG87MDtMOzA5QTIgMDlCQzs7OztOOzs7OzsKKzA5REY7QkVOR0FMSSBMRVRURVIgWVlBO0xvOzA7TDswOUFGIDA5QkM7Ozs7Tjs7Ozs7CiswOUUwO0JFTkdBTEkgTEVUVEVSIFZPQ0FMSUMgUlI7TG87MDtMOzs7OztOOzs7OzsKKzA5RTE7QkVOR0FMSSBMRVRURVIgVk9DQUxJQyBMTDtMbzswO0w7Ozs7O047Ozs7OworMDlFMjtCRU5HQUxJIFZPV0VMIFNJR04gVk9DQUxJQyBMO01uOzU1O09OOzs7OztOOzs7OzsKKzA5RTM7QkVOR0FMSSBWT1dFTCBTSUdOIFZPQ0FMSUMgTEw7TW47NTY7T047Ozs7O047Ozs7OworMDlFNjtCRU5HQUxJIERJR0lUIFpFUk87TmQ7MDtMOzswOzA7MDtOOzs7OzsKKzA5RTc7QkVOR0FMSSBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzA5RTg7QkVOR0FMSSBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzA5RTk7QkVOR0FMSSBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMDlFQTtCRU5HQUxJIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzA5RUI7QkVOR0FMSSBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CiswOUVDO0JFTkdBTEkgRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CiswOUVEO0JFTkdBTEkgRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzA5RUU7QkVOR0FMSSBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMDlFRjtCRU5HQUxJIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzA5RjA7QkVOR0FMSSBMRVRURVIgUkEgV0lUSCBNSURETEUgRElBR09OQUw7TG87MDtMOzs7OztOOztBc3NhbWVzZTs7OworMDlGMTtCRU5HQUxJIExFVFRFUiBSQSBXSVRIIExPV0VSIERJQUdPTkFMO0xvOzA7TDs7Ozs7TjtCRU5HQUxJIExFVFRFUiBWQSBXSVRIIExPV0VSIERJQUdPTkFMO0Fzc2FtZXNlOzs7CiswOUYyO0JFTkdBTEkgUlVQRUUgTUFSSztTYzswO0w7Ozs7O047Ozs7OworMDlGMztCRU5HQUxJIFJVUEVFIFNJR047U2M7MDtMOzs7OztOOzs7OzsKKzA5RjQ7QkVOR0FMSSBDVVJSRU5DWSBOVU1FUkFUT1IgT05FO05vOzA7TDs7OzsxO047Ozs7OworMDlGNTtCRU5HQUxJIENVUlJFTkNZIE5VTUVSQVRPUiBUV087Tm87MDtMOzs7OzI7Tjs7Ozs7CiswOUY2O0JFTkdBTEkgQ1VSUkVOQ1kgTlVNRVJBVE9SIFRIUkVFO05vOzA7TDs7OzszO047Ozs7OworMDlGNztCRU5HQUxJIENVUlJFTkNZIE5VTUVSQVRPUiBGT1VSO05vOzA7TDs7Ozs0O047Ozs7OworMDlGODtCRU5HQUxJIENVUlJFTkNZIE5VTUVSQVRPUiBPTkUgTEVTUyBUSEFOIFRIRSBERU5PTUlOQVRPUjtObzswO0w7Ozs7LTE7Tjs7Ozs7CiswOUY5O0JFTkdBTEkgQ1VSUkVOQ1kgREVOT01JTkFUT1IgU0lYVEVFTjtObzswO0w7Ozs7MTY7Tjs7Ozs7CiswOUZBO0JFTkdBTEkgSVNTSEFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CiswQTAyO0dVUk1VS0hJIFNJR04gQklOREk7TW47NTc7T047Ozs7O047Ozs7OworMEEwNTtHVVJNVUtISSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMEEwNjtHVVJNVUtISSBMRVRURVIgQUE7TG87MDtMOzs7OztOOzs7OzsKKzBBMDc7R1VSTVVLSEkgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzBBMDg7R1VSTVVLSEkgTEVUVEVSIElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTA5O0dVUk1VS0hJIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTBBO0dVUk1VS0hJIExFVFRFUiBVVTtMbzswO0w7Ozs7O047Ozs7OworMEEwRjtHVVJNVUtISSBMRVRURVIgRUU7TG87MDtMOzs7OztOOzs7OzsKKzBBMTA7R1VSTVVLSEkgTEVUVEVSIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTEzO0dVUk1VS0hJIExFVFRFUiBPTztMbzswO0w7Ozs7O047Ozs7OworMEExNDtHVVJNVUtISSBMRVRURVIgQVU7TG87MDtMOzs7OztOOzs7OzsKKzBBMTU7R1VSTVVLSEkgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTE2O0dVUk1VS0hJIExFVFRFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMTc7R1VSTVVLSEkgTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTE4O0dVUk1VS0hJIExFVFRFUiBHSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMTk7R1VSTVVLSEkgTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMEExQTtHVVJNVUtISSBMRVRURVIgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzBBMUI7R1VSTVVLSEkgTEVUVEVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMEExQztHVVJNVUtISSBMRVRURVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzBBMUQ7R1VSTVVLSEkgTEVUVEVSIEpIQTtMbzswO0w7Ozs7O047Ozs7OworMEExRTtHVVJNVUtISSBMRVRURVIgTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTFGO0dVUk1VS0hJIExFVFRFUiBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMjA7R1VSTVVLSEkgTEVUVEVSIFRUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMjE7R1VSTVVLSEkgTEVUVEVSIEREQTtMbzswO0w7Ozs7O047Ozs7OworMEEyMjtHVVJNVUtISSBMRVRURVIgRERIQTtMbzswO0w7Ozs7O047Ozs7OworMEEyMztHVVJNVUtISSBMRVRURVIgTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTI0O0dVUk1VS0hJIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMEEyNTtHVVJNVUtISSBMRVRURVIgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTI2O0dVUk1VS0hJIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMEEyNztHVVJNVUtISSBMRVRURVIgREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTI4O0dVUk1VS0hJIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMEEyQTtHVVJNVUtISSBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMkI7R1VSTVVLSEkgTEVUVEVSIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMEEyQztHVVJNVUtISSBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzBBMkQ7R1VSTVVLSEkgTEVUVEVSIEJIQTtMbzswO0w7Ozs7O047Ozs7OworMEEyRTtHVVJNVUtISSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzBBMkY7R1VSTVVLSEkgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTMwO0dVUk1VS0hJIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMEEzMjtHVVJNVUtISSBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMzM7R1VSTVVLSEkgTEVUVEVSIExMQTtMbzswO0w7Ozs7O047Ozs7OworMEEzNTtHVVJNVUtISSBMRVRURVIgVkE7TG87MDtMOzs7OztOOzs7OzsKKzBBMzY7R1VSTVVLSEkgTEVUVEVSIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMEEzODtHVVJNVUtISSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzBBMzk7R1VSTVVLSEkgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTNDO0dVUk1VS0hJIFNJR04gTlVLVEE7TW47NztPTjs7Ozs7Tjs7Ozs7CiswQTNFO0dVUk1VS0hJIFZPV0VMIFNJR04gQUE7TWM7MDtMOzs7OztOOzs7OzsKKzBBM0Y7R1VSTVVLSEkgVk9XRUwgU0lHTiBJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQTQwO0dVUk1VS0hJIFZPV0VMIFNJR04gSUk7TWM7MDtMOzs7OztOOzs7OzsKKzBBNDE7R1VSTVVLSEkgVk9XRUwgU0lHTiBVO01uOzU4O09OOzs7OztOOzs7OzsKKzBBNDI7R1VSTVVLSEkgVk9XRUwgU0lHTiBVVTtNbjs1OTtPTjs7Ozs7Tjs7Ozs7CiswQTQ3O0dVUk1VS0hJIFZPV0VMIFNJR04gRUU7TW47NjA7T047Ozs7O047Ozs7OworMEE0ODtHVVJNVUtISSBWT1dFTCBTSUdOIEFJO01uOzYxO09OOzs7OztOOzs7OzsKKzBBNEI7R1VSTVVLSEkgVk9XRUwgU0lHTiBPTztNbjs2MjtPTjs7Ozs7Tjs7Ozs7CiswQTRDO0dVUk1VS0hJIFZPV0VMIFNJR04gQVU7TW47NjM7T047Ozs7O047Ozs7OworMEE0RDtHVVJNVUtISSBTSUdOIFZJUkFNQTtNbjs5O09OOzs7OztOOzs7OzsKKzBBNTk7R1VSTVVLSEkgTEVUVEVSIEtISEE7TG87MDtMOzBBMTYgMEEzQzs7OztOOzs7OzsKKzBBNUE7R1VSTVVLSEkgTEVUVEVSIEdISEE7TG87MDtMOzBBMTcgMEEzQzs7OztOOzs7OzsKKzBBNUI7R1VSTVVLSEkgTEVUVEVSIFpBO0xvOzA7TDswQTFDIDBBM0M7Ozs7Tjs7Ozs7CiswQTVDO0dVUk1VS0hJIExFVFRFUiBSUkE7TG87MDtMOzBBMjEgMEEzQzs7OztOOzs7OzsKKzBBNUU7R1VSTVVLSEkgTEVUVEVSIEZBO0xvOzA7TDswQTJCIDBBM0M7Ozs7Tjs7Ozs7CiswQTY2O0dVUk1VS0hJIERJR0lUIFpFUk87TmQ7MDtMOzswOzA7MDtOOzs7OzsKKzBBNjc7R1VSTVVLSEkgRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CiswQTY4O0dVUk1VS0hJIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMEE2OTtHVVJNVUtISSBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMEE2QTtHVVJNVUtISSBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CiswQTZCO0dVUk1VS0hJIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzBBNkM7R1VSTVVLSEkgRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CiswQTZEO0dVUk1VS0hJIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CiswQTZFO0dVUk1VS0hJIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswQTZGO0dVUk1VS0hJIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzBBNzA7R1VSTVVLSEkgVElQUEk7TW47NjQ7T047Ozs7O047Ozs7OworMEE3MTtHVVJNVUtISSBBRERBSztNbjs2NTtPTjs7Ozs7Tjs7Ozs7CiswQTcyO0dVUk1VS0hJIElSSTtMbzswO0w7Ozs7O047Ozs7OworMEE3MztHVVJNVUtISSBVUkE7TG87MDtMOzs7OztOOzs7OzsKKzBBNzQ7R1VSTVVLSEkgRUsgT05LQVI7TG87MDtMOzs7OztOOzs7OzsKKzBBODE7R1VKQVJBVEkgU0lHTiBDQU5EUkFCSU5EVTtNbjs2NztPTjs7Ozs7Tjs7Ozs7CiswQTgyO0dVSkFSQVRJIFNJR04gQU5VU1ZBUkE7TW47NjY7T047Ozs7O047Ozs7OworMEE4MztHVUpBUkFUSSBTSUdOIFZJU0FSR0E7TWM7MDtMOzs7OztOOzs7OzsKKzBBODU7R1VKQVJBVEkgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzBBODY7R1VKQVJBVEkgTEVUVEVSIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTg3O0dVSkFSQVRJIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTg4O0dVSkFSQVRJIExFVFRFUiBJSTtMbzswO0w7Ozs7O047Ozs7OworMEE4OTtHVUpBUkFUSSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMEE4QTtHVUpBUkFUSSBMRVRURVIgVVU7TG87MDtMOzs7OztOOzs7OzsKKzBBOEI7R1VKQVJBVEkgTEVUVEVSIFZPQ0FMSUMgUjtMbzswO0w7Ozs7O047Ozs7OworMEE4RDtHVUpBUkFUSSBWT1dFTCBDQU5EUkEgRTtMbzswO0w7Ozs7O047Ozs7OworMEE4RjtHVUpBUkFUSSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMEE5MDtHVUpBUkFUSSBMRVRURVIgQUk7TG87MDtMOzs7OztOOzs7OzsKKzBBOTE7R1VKQVJBVEkgVk9XRUwgQ0FORFJBIE87TG87MDtMOzs7OztOOzs7OzsKKzBBOTM7R1VKQVJBVEkgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzBBOTQ7R1VKQVJBVEkgTEVUVEVSIEFVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTk1O0dVSkFSQVRJIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMEE5NjtHVUpBUkFUSSBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTk3O0dVSkFSQVRJIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMEE5ODtHVUpBUkFUSSBMRVRURVIgR0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTk5O0dVSkFSQVRJIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzBBOUE7R1VKQVJBVEkgTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTlCO0dVSkFSQVRJIExFVFRFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBOUM7R1VKQVJBVEkgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTlEO0dVSkFSQVRJIExFVFRFUiBKSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBOUU7R1VKQVJBVEkgTEVUVEVSIE5ZQTtMbzswO0w7Ozs7O047Ozs7OworMEE5RjtHVUpBUkFUSSBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUEwO0dVSkFSQVRJIExFVFRFUiBUVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUExO0dVSkFSQVRJIExFVFRFUiBEREE7TG87MDtMOzs7OztOOzs7OzsKKzBBQTI7R1VKQVJBVEkgTEVUVEVSIERESEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQTM7R1VKQVJBVEkgTEVUVEVSIE5OQTtMbzswO0w7Ozs7O047Ozs7OworMEFBNDtHVUpBUkFUSSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQTU7R1VKQVJBVEkgTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEFBNjtHVUpBUkFUSSBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzBBQTc7R1VKQVJBVEkgTEVUVEVSIERIQTtMbzswO0w7Ozs7O047Ozs7OworMEFBODtHVUpBUkFUSSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzBBQUE7R1VKQVJBVEkgTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUFCO0dVSkFSQVRJIExFVFRFUiBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQUM7R1VKQVJBVEkgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUFEO0dVSkFSQVRJIExFVFRFUiBCSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQUU7R1VKQVJBVEkgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUFGO0dVSkFSQVRJIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMEFCMDtHVUpBUkFUSSBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzBBQjI7R1VKQVJBVEkgTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUIzO0dVSkFSQVRJIExFVFRFUiBMTEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQjU7R1VKQVJBVEkgTEVUVEVSIFZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUI2O0dVSkFSQVRJIExFVFRFUiBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQjc7R1VKQVJBVEkgTEVUVEVSIFNTQTtMbzswO0w7Ozs7O047Ozs7OworMEFCODtHVUpBUkFUSSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzBBQjk7R1VKQVJBVEkgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUJDO0dVSkFSQVRJIFNJR04gTlVLVEE7TW47NztPTjs7Ozs7Tjs7Ozs7CiswQUJEO0dVSkFSQVRJIFNJR04gQVZBR1JBSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQkU7R1VKQVJBVEkgVk9XRUwgU0lHTiBBQTtNYzswO0w7Ozs7O047Ozs7OworMEFCRjtHVUpBUkFUSSBWT1dFTCBTSUdOIEk7TWM7MDtMOzs7OztOOzs7OzsKKzBBQzA7R1VKQVJBVEkgVk9XRUwgU0lHTiBJSTtNYzswO0w7Ozs7O047Ozs7OworMEFDMTtHVUpBUkFUSSBWT1dFTCBTSUdOIFU7TW47Njg7T047Ozs7O047Ozs7OworMEFDMjtHVUpBUkFUSSBWT1dFTCBTSUdOIFVVO01uOzY5O09OOzs7OztOOzs7OzsKKzBBQzM7R1VKQVJBVEkgVk9XRUwgU0lHTiBWT0NBTElDIFI7TW47NzA7T047Ozs7O047Ozs7OworMEFDNDtHVUpBUkFUSSBWT1dFTCBTSUdOIFZPQ0FMSUMgUlI7TW47NzE7T047Ozs7O047Ozs7OworMEFDNTtHVUpBUkFUSSBWT1dFTCBTSUdOIENBTkRSQSBFO01uOzcyO09OOzs7OztOOzs7OzsKKzBBQzc7R1VKQVJBVEkgVk9XRUwgU0lHTiBFO01uOzczO09OOzs7OztOOzs7OzsKKzBBQzg7R1VKQVJBVEkgVk9XRUwgU0lHTiBBSTtNbjs3NDtPTjs7Ozs7Tjs7Ozs7CiswQUM5O0dVSkFSQVRJIFZPV0VMIFNJR04gQ0FORFJBIE87TWM7MDtMOzs7OztOOzs7OzsKKzBBQ0I7R1VKQVJBVEkgVk9XRUwgU0lHTiBPO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQUNDO0dVSkFSQVRJIFZPV0VMIFNJR04gQVU7TWM7MDtMOzs7OztOOzs7OzsKKzBBQ0Q7R1VKQVJBVEkgU0lHTiBWSVJBTUE7TW47OTtPTjs7Ozs7Tjs7Ozs7CiswQUQwO0dVSkFSQVRJIE9NO1NvOzA7TDs7Ozs7Tjs7Ozs7CiswQUUwO0dVSkFSQVRJIExFVFRFUiBWT0NBTElDIFJSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUU2O0dVSkFSQVRJIERJR0lUIFpFUk87TmQ7MDtMOzswOzA7MDtOOzs7OzsKKzBBRTc7R1VKQVJBVEkgRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CiswQUU4O0dVSkFSQVRJIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMEFFOTtHVUpBUkFUSSBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMEFFQTtHVUpBUkFUSSBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CiswQUVCO0dVSkFSQVRJIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzBBRUM7R1VKQVJBVEkgRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CiswQUVEO0dVSkFSQVRJIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CiswQUVFO0dVSkFSQVRJIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswQUVGO0dVSkFSQVRJIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzBCMDE7T1JJWUEgU0lHTiBDQU5EUkFCSU5EVTtNbjs3NTtPTjs7Ozs7Tjs7Ozs7CiswQjAyO09SSVlBIFNJR04gQU5VU1ZBUkE7TWM7MDtMOzs7OztOOzs7OzsKKzBCMDM7T1JJWUEgU0lHTiBWSVNBUkdBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQjA1O09SSVlBIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjA2O09SSVlBIExFVFRFUiBBQTtMbzswO0w7Ozs7O047Ozs7OworMEIwNztPUklZQSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMEIwODtPUklZQSBMRVRURVIgSUk7TG87MDtMOzs7OztOOzs7OzsKKzBCMDk7T1JJWUEgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzBCMEE7T1JJWUEgTEVUVEVSIFVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjBCO09SSVlBIExFVFRFUiBWT0NBTElDIFI7TG87MDtMOzs7OztOOzs7OzsKKzBCMEM7T1JJWUEgTEVUVEVSIFZPQ0FMSUMgTDtMbzswO0w7Ozs7O047Ozs7OworMEIwRjtPUklZQSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMEIxMDtPUklZQSBMRVRURVIgQUk7TG87MDtMOzs7OztOOzs7OzsKKzBCMTM7T1JJWUEgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzBCMTQ7T1JJWUEgTEVUVEVSIEFVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjE1O09SSVlBIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMEIxNjtPUklZQSBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjE3O09SSVlBIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMEIxODtPUklZQSBMRVRURVIgR0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjE5O09SSVlBIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzBCMUE7T1JJWUEgTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjFCO09SSVlBIExFVFRFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMUM7T1JJWUEgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjFEO09SSVlBIExFVFRFUiBKSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMUU7T1JJWUEgTEVUVEVSIE5ZQTtMbzswO0w7Ozs7O047Ozs7OworMEIxRjtPUklZQSBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjIwO09SSVlBIExFVFRFUiBUVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjIxO09SSVlBIExFVFRFUiBEREE7TG87MDtMOzs7OztOOzs7OzsKKzBCMjI7T1JJWUEgTEVUVEVSIERESEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMjM7T1JJWUEgTEVUVEVSIE5OQTtMbzswO0w7Ozs7O047Ozs7OworMEIyNDtPUklZQSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMjU7T1JJWUEgTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEIyNjtPUklZQSBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzBCMjc7T1JJWUEgTEVUVEVSIERIQTtMbzswO0w7Ozs7O047Ozs7OworMEIyODtPUklZQSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzBCMkE7T1JJWUEgTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjJCO09SSVlBIExFVFRFUiBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMkM7T1JJWUEgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjJEO09SSVlBIExFVFRFUiBCSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMkU7T1JJWUEgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjJGO09SSVlBIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMEIzMDtPUklZQSBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzBCMzI7T1JJWUEgTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjMzO09SSVlBIExFVFRFUiBMTEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMzY7T1JJWUEgTEVUVEVSIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMEIzNztPUklZQSBMRVRURVIgU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjM4O09SSVlBIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMEIzOTtPUklZQSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCM0M7T1JJWUEgU0lHTiBOVUtUQTtNbjs3O09OOzs7OztOOzs7OzsKKzBCM0Q7T1JJWUEgU0lHTiBBVkFHUkFIQTtMbzswO0w7Ozs7O047Ozs7OworMEIzRTtPUklZQSBWT1dFTCBTSUdOIEFBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQjNGO09SSVlBIFZPV0VMIFNJR04gSTtNbjs3NjtPTjs7Ozs7Tjs7Ozs7CiswQjQwO09SSVlBIFZPV0VMIFNJR04gSUk7TWM7MDtMOzs7OztOOzs7OzsKKzBCNDE7T1JJWUEgVk9XRUwgU0lHTiBVO01uOzc3O09OOzs7OztOOzs7OzsKKzBCNDI7T1JJWUEgVk9XRUwgU0lHTiBVVTtNbjs3ODtPTjs7Ozs7Tjs7Ozs7CiswQjQzO09SSVlBIFZPV0VMIFNJR04gVk9DQUxJQyBSO01uOzc5O09OOzs7OztOOzs7OzsKKzBCNDc7T1JJWUEgVk9XRUwgU0lHTiBFO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQjQ4O09SSVlBIFZPV0VMIFNJR04gQUk7TWM7MDtMOzBCNDcgMEI1Njs7OztOOzs7OzsKKzBCNEI7T1JJWUEgVk9XRUwgU0lHTiBPO01jOzA7TDswQjQ3IDBCM0U7Ozs7Tjs7Ozs7CiswQjRDO09SSVlBIFZPV0VMIFNJR04gQVU7TWM7MDtMOzBCNDcgMEI1Nzs7OztOOzs7OzsKKzBCNEQ7T1JJWUEgU0lHTiBWSVJBTUE7TW47OTtPTjs7Ozs7Tjs7Ozs7CiswQjU2O09SSVlBIEFJIExFTkdUSCBNQVJLO01uOzIzMDtPTjs7Ozs7Tjs7Ozs7CiswQjU3O09SSVlBIEFVIExFTkdUSCBNQVJLO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQjVDO09SSVlBIExFVFRFUiBSUkE7TG87MDtMOzBCMjEgMEIzQzs7OztOOzs7OzsKKzBCNUQ7T1JJWUEgTEVUVEVSIFJIQTtMbzswO0w7MEIyMiAwQjNDOzs7O047Ozs7OworMEI1RjtPUklZQSBMRVRURVIgWVlBO0xvOzA7TDswQjJGIDBCM0M7Ozs7Tjs7Ozs7CiswQjYwO09SSVlBIExFVFRFUiBWT0NBTElDIFJSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjYxO09SSVlBIExFVFRFUiBWT0NBTElDIExMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjY2O09SSVlBIERJR0lUIFpFUk87TmQ7MDtMOzswOzA7MDtOOzs7OzsKKzBCNjc7T1JJWUEgRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CiswQjY4O09SSVlBIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMEI2OTtPUklZQSBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMEI2QTtPUklZQSBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CiswQjZCO09SSVlBIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzBCNkM7T1JJWUEgRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CiswQjZEO09SSVlBIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CiswQjZFO09SSVlBIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswQjZGO09SSVlBIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzBCNzA7T1JJWUEgSVNTSEFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CiswQjgyO1RBTUlMIFNJR04gQU5VU1ZBUkE7TW47MDtPTjs7Ozs7Tjs7Ozs7CiswQjgzO1RBTUlMIFNJR04gVklTQVJHQTtNYzswO0w7Ozs7O047Ozs7OworMEI4NTtUQU1JTCBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMEI4NjtUQU1JTCBMRVRURVIgQUE7TG87MDtMOzs7OztOOzs7OzsKKzBCODc7VEFNSUwgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzBCODg7VEFNSUwgTEVUVEVSIElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjg5O1RBTUlMIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjhBO1RBTUlMIExFVFRFUiBVVTtMbzswO0w7Ozs7O047Ozs7OworMEI4RTtUQU1JTCBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMEI4RjtUQU1JTCBMRVRURVIgRUU7TG87MDtMOzs7OztOOzs7OzsKKzBCOTA7VEFNSUwgTEVUVEVSIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjkyO1RBTUlMIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjkzO1RBTUlMIExFVFRFUiBPTztMbzswO0w7Ozs7O047Ozs7OworMEI5NDtUQU1JTCBMRVRURVIgQVU7TG87MDtMOzBCOTIgMEJENzs7OztOOzs7OzsKKzBCOTU7VEFNSUwgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjk5O1RBTUlMIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzBCOUE7VEFNSUwgTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjlDO1RBTUlMIExFVFRFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworMEI5RTtUQU1JTCBMRVRURVIgTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjlGO1RBTUlMIExFVFRFUiBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzBCQTM7VEFNSUwgTEVUVEVSIE5OQTtMbzswO0w7Ozs7O047Ozs7OworMEJBNDtUQU1JTCBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzBCQTg7VEFNSUwgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkE5O1RBTUlMIExFVFRFUiBOTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkFBO1RBTUlMIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMEJBRTtUQU1JTCBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzBCQUY7VEFNSUwgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkIwO1RBTUlMIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMEJCMTtUQU1JTCBMRVRURVIgUlJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkIyO1RBTUlMIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMEJCMztUQU1JTCBMRVRURVIgTExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkI0O1RBTUlMIExFVFRFUiBMTExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkI1O1RBTUlMIExFVFRFUiBWQTtMbzswO0w7Ozs7O047Ozs7OworMEJCNztUQU1JTCBMRVRURVIgU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkI4O1RBTUlMIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMEJCOTtUQU1JTCBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCQkU7VEFNSUwgVk9XRUwgU0lHTiBBQTtNYzswO0w7Ozs7O047Ozs7OworMEJCRjtUQU1JTCBWT1dFTCBTSUdOIEk7TWM7MDtMOzs7OztOOzs7OzsKKzBCQzA7VEFNSUwgVk9XRUwgU0lHTiBJSTtNbjs4MDtPTjs7Ozs7Tjs7Ozs7CiswQkMxO1RBTUlMIFZPV0VMIFNJR04gVTtNYzswO0w7Ozs7O047Ozs7OworMEJDMjtUQU1JTCBWT1dFTCBTSUdOIFVVO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQkM2O1RBTUlMIFZPV0VMIFNJR04gRTtNYzswO0w7Ozs7O047Ozs7OworMEJDNztUQU1JTCBWT1dFTCBTSUdOIEVFO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQkM4O1RBTUlMIFZPV0VMIFNJR04gQUk7TWM7MDtMOzs7OztOOzs7OzsKKzBCQ0E7VEFNSUwgVk9XRUwgU0lHTiBPO01jOzA7TDswQkM2IDBCQkU7Ozs7Tjs7Ozs7CiswQkNCO1RBTUlMIFZPV0VMIFNJR04gT087TWM7MDtMOzBCQzcgMEJCRTs7OztOOzs7OzsKKzBCQ0M7VEFNSUwgVk9XRUwgU0lHTiBBVTtNYzswO0w7MEJDNiAwQkQ3Ozs7O047Ozs7OworMEJDRDtUQU1JTCBTSUdOIFZJUkFNQTtNbjs5O09OOzs7OztOOzs7OzsKKzBCRDc7VEFNSUwgQVUgTEVOR1RIIE1BUks7TWM7MDtMOzs7OztOOzs7OzsKKzBCRTc7VEFNSUwgRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CiswQkU4O1RBTUlMIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMEJFOTtUQU1JTCBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMEJFQTtUQU1JTCBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CiswQkVCO1RBTUlMIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzBCRUM7VEFNSUwgRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CiswQkVEO1RBTUlMIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CiswQkVFO1RBTUlMIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswQkVGO1RBTUlMIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzBCRjA7VEFNSUwgTlVNQkVSIFRFTjtObzswO0w7Ozs7MTA7Tjs7Ozs7CiswQkYxO1RBTUlMIE5VTUJFUiBPTkUgSFVORFJFRDtObzswO0w7Ozs7MTAwO047Ozs7OworMEJGMjtUQU1JTCBOVU1CRVIgT05FIFRIT1VTQU5EO05vOzA7TDs7OzsxMDAwO047Ozs7OworMEMwMTtURUxVR1UgU0lHTiBDQU5EUkFCSU5EVTtNYzswO0w7Ozs7O047Ozs7OworMEMwMjtURUxVR1UgU0lHTiBBTlVTVkFSQTtNYzswO0w7Ozs7O047Ozs7OworMEMwMztURUxVR1UgU0lHTiBWSVNBUkdBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzA1O1RFTFVHVSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMEMwNjtURUxVR1UgTEVUVEVSIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzA3O1RFTFVHVSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMEMwODtURUxVR1UgTEVUVEVSIElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzA5O1RFTFVHVSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMEMwQTtURUxVR1UgTEVUVEVSIFVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzBCO1RFTFVHVSBMRVRURVIgVk9DQUxJQyBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzBDO1RFTFVHVSBMRVRURVIgVk9DQUxJQyBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzBFO1RFTFVHVSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMEMwRjtURUxVR1UgTEVUVEVSIEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzEwO1RFTFVHVSBMRVRURVIgQUk7TG87MDtMOzs7OztOOzs7OzsKKzBDMTI7VEVMVUdVIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzEzO1RFTFVHVSBMRVRURVIgT087TG87MDtMOzs7OztOOzs7OzsKKzBDMTQ7VEVMVUdVIExFVFRFUiBBVTtMbzswO0w7Ozs7O047Ozs7OworMEMxNTtURUxVR1UgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzE2O1RFTFVHVSBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzE3O1RFTFVHVSBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzBDMTg7VEVMVUdVIExFVFRFUiBHSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMTk7VEVMVUdVIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzBDMUE7VEVMVUdVIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMEMxQjtURUxVR1UgTEVUVEVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMEMxQztURUxVR1UgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzFEO1RFTFVHVSBMRVRURVIgSkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzFFO1RFTFVHVSBMRVRURVIgTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzFGO1RFTFVHVSBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzIwO1RFTFVHVSBMRVRURVIgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEMyMTtURUxVR1UgTEVUVEVSIEREQTtMbzswO0w7Ozs7O047Ozs7OworMEMyMjtURUxVR1UgTEVUVEVSIERESEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMjM7VEVMVUdVIExFVFRFUiBOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBDMjQ7VEVMVUdVIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMEMyNTtURUxVR1UgTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEMyNjtURUxVR1UgTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzI3O1RFTFVHVSBMRVRURVIgREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzI4O1RFTFVHVSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzBDMkE7VEVMVUdVIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMEMyQjtURUxVR1UgTEVUVEVSIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMEMyQztURUxVR1UgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzJEO1RFTFVHVSBMRVRURVIgQkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzJFO1RFTFVHVSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzBDMkY7VEVMVUdVIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMEMzMDtURUxVR1UgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzMxO1RFTFVHVSBMRVRURVIgUlJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzMyO1RFTFVHVSBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMzM7VEVMVUdVIExFVFRFUiBMTEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMzU7VEVMVUdVIExFVFRFUiBWQTtMbzswO0w7Ozs7O047Ozs7OworMEMzNjtURUxVR1UgTEVUVEVSIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMEMzNztURUxVR1UgTEVUVEVSIFNTQTtMbzswO0w7Ozs7O047Ozs7OworMEMzODtURUxVR1UgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzM5O1RFTFVHVSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDM0U7VEVMVUdVIFZPV0VMIFNJR04gQUE7TW47ODE7T047Ozs7O047Ozs7OworMEMzRjtURUxVR1UgVk9XRUwgU0lHTiBJO01uOzgyO09OOzs7OztOOzs7OzsKKzBDNDA7VEVMVUdVIFZPV0VMIFNJR04gSUk7TW47ODM7T047Ozs7O047Ozs7OworMEM0MTtURUxVR1UgVk9XRUwgU0lHTiBVO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzQyO1RFTFVHVSBWT1dFTCBTSUdOIFVVO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzQzO1RFTFVHVSBWT1dFTCBTSUdOIFZPQ0FMSUMgUjtNYzswO0w7Ozs7O047Ozs7OworMEM0NDtURUxVR1UgVk9XRUwgU0lHTiBWT0NBTElDIFJSO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzQ2O1RFTFVHVSBWT1dFTCBTSUdOIEU7TW47ODQ7T047Ozs7O047Ozs7OworMEM0NztURUxVR1UgVk9XRUwgU0lHTiBFRTtNbjs4NTtPTjs7Ozs7Tjs7Ozs7CiswQzQ4O1RFTFVHVSBWT1dFTCBTSUdOIEFJO01uOzg2O09OOzBDNDYgMEM1Njs7OztOOzs7OzsKKzBDNEE7VEVMVUdVIFZPV0VMIFNJR04gTztNbjs4NztPTjs7Ozs7Tjs7Ozs7CiswQzRCO1RFTFVHVSBWT1dFTCBTSUdOIE9PO01uOzg4O09OOzs7OztOOzs7OzsKKzBDNEM7VEVMVUdVIFZPV0VMIFNJR04gQVU7TW47ODk7T047Ozs7O047Ozs7OworMEM0RDtURUxVR1UgU0lHTiBWSVJBTUE7TW47OTtPTjs7Ozs7Tjs7Ozs7CiswQzU1O1RFTFVHVSBMRU5HVEggTUFSSztNbjs5MDtPTjs7Ozs7Tjs7Ozs7CiswQzU2O1RFTFVHVSBBSSBMRU5HVEggTUFSSztNbjs5MTtPTjs7Ozs7Tjs7Ozs7CiswQzYwO1RFTFVHVSBMRVRURVIgVk9DQUxJQyBSUjtMbzswO0w7Ozs7O047Ozs7OworMEM2MTtURUxVR1UgTEVUVEVSIFZPQ0FMSUMgTEw7TG87MDtMOzs7OztOOzs7OzsKKzBDNjY7VEVMVUdVIERJR0lUIFpFUk87TmQ7MDtMOzswOzA7MDtOOzs7OzsKKzBDNjc7VEVMVUdVIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMEM2ODtURUxVR1UgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswQzY5O1RFTFVHVSBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMEM2QTtURUxVR1UgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMEM2QjtURUxVR1UgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMEM2QztURUxVR1UgRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CiswQzZEO1RFTFVHVSBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMEM2RTtURUxVR1UgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzBDNkY7VEVMVUdVIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzBDODI7S0FOTkFEQSBTSUdOIEFOVVNWQVJBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzgzO0tBTk5BREEgU0lHTiBWSVNBUkdBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzg1O0tBTk5BREEgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzBDODY7S0FOTkFEQSBMRVRURVIgQUE7TG87MDtMOzs7OztOOzs7OzsKKzBDODc7S0FOTkFEQSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMEM4ODtLQU5OQURBIExFVFRFUiBJSTtMbzswO0w7Ozs7O047Ozs7OworMEM4OTtLQU5OQURBIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzhBO0tBTk5BREEgTEVUVEVSIFVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzhCO0tBTk5BREEgTEVUVEVSIFZPQ0FMSUMgUjtMbzswO0w7Ozs7O047Ozs7OworMEM4QztLQU5OQURBIExFVFRFUiBWT0NBTElDIEw7TG87MDtMOzs7OztOOzs7OzsKKzBDOEU7S0FOTkFEQSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMEM4RjtLQU5OQURBIExFVFRFUiBFRTtMbzswO0w7Ozs7O047Ozs7OworMEM5MDtLQU5OQURBIExFVFRFUiBBSTtMbzswO0w7Ozs7O047Ozs7OworMEM5MjtLQU5OQURBIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzkzO0tBTk5BREEgTEVUVEVSIE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzk0O0tBTk5BREEgTEVUVEVSIEFVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzk1O0tBTk5BREEgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzk2O0tBTk5BREEgTEVUVEVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMEM5NztLQU5OQURBIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMEM5ODtLQU5OQURBIExFVFRFUiBHSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDOTk7S0FOTkFEQSBMRVRURVIgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzlBO0tBTk5BREEgTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzlCO0tBTk5BREEgTEVUVEVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMEM5QztLQU5OQURBIExFVFRFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworMEM5RDtLQU5OQURBIExFVFRFUiBKSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDOUU7S0FOTkFEQSBMRVRURVIgTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzlGO0tBTk5BREEgTEVUVEVSIFRUQTtMbzswO0w7Ozs7O047Ozs7OworMENBMDtLQU5OQURBIExFVFRFUiBUVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0ExO0tBTk5BREEgTEVUVEVSIEREQTtMbzswO0w7Ozs7O047Ozs7OworMENBMjtLQU5OQURBIExFVFRFUiBEREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0EzO0tBTk5BREEgTEVUVEVSIE5OQTtMbzswO0w7Ozs7O047Ozs7OworMENBNDtLQU5OQURBIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMENBNTtLQU5OQURBIExFVFRFUiBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQTY7S0FOTkFEQSBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzBDQTc7S0FOTkFEQSBMRVRURVIgREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0E4O0tBTk5BREEgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0FBO0tBTk5BREEgTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0FCO0tBTk5BREEgTEVUVEVSIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMENBQztLQU5OQURBIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMENBRDtLQU5OQURBIExFVFRFUiBCSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQUU7S0FOTkFEQSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzBDQUY7S0FOTkFEQSBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzBDQjA7S0FOTkFEQSBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzBDQjE7S0FOTkFEQSBMRVRURVIgUlJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0IyO0tBTk5BREEgTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0IzO0tBTk5BREEgTEVUVEVSIExMQTtMbzswO0w7Ozs7O047Ozs7OworMENCNTtLQU5OQURBIExFVFRFUiBWQTtMbzswO0w7Ozs7O047Ozs7OworMENCNjtLQU5OQURBIExFVFRFUiBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQjc7S0FOTkFEQSBMRVRURVIgU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0I4O0tBTk5BREEgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0I5O0tBTk5BREEgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0JFO0tBTk5BREEgVk9XRUwgU0lHTiBBQTtNYzswO0w7Ozs7O047Ozs7OworMENCRjtLQU5OQURBIFZPV0VMIFNJR04gSTtNbjs5MjtPTjs7Ozs7Tjs7Ozs7CiswQ0MwO0tBTk5BREEgVk9XRUwgU0lHTiBJSTtNYzswO0w7MENCRiAwQ0Q1Ozs7O047Ozs7OworMENDMTtLQU5OQURBIFZPV0VMIFNJR04gVTtNYzswO0w7Ozs7O047Ozs7OworMENDMjtLQU5OQURBIFZPV0VMIFNJR04gVVU7TWM7MDtMOzs7OztOOzs7OzsKKzBDQzM7S0FOTkFEQSBWT1dFTCBTSUdOIFZPQ0FMSUMgUjtNYzswO0w7Ozs7O047Ozs7OworMENDNDtLQU5OQURBIFZPV0VMIFNJR04gVk9DQUxJQyBSUjtNYzswO0w7Ozs7O047Ozs7OworMENDNjtLQU5OQURBIFZPV0VMIFNJR04gRTtNbjs5MztPTjs7Ozs7Tjs7Ozs7CiswQ0M3O0tBTk5BREEgVk9XRUwgU0lHTiBFRTtNYzswO0w7MENDNiAwQ0Q1Ozs7O047Ozs7OworMENDODtLQU5OQURBIFZPV0VMIFNJR04gQUk7TWM7MDtMOzBDQzYgMENENjs7OztOOzs7OzsKKzBDQ0E7S0FOTkFEQSBWT1dFTCBTSUdOIE87TWM7MDtMOzBDQzYgMENDMjs7OztOOzs7OzsKKzBDQ0I7S0FOTkFEQSBWT1dFTCBTSUdOIE9PO01jOzA7TDswQ0M2IDBDQzIgMENENTs7OztOOzs7OzsKKzBDQ0M7S0FOTkFEQSBWT1dFTCBTSUdOIEFVO01uOzk0O09OOzs7OztOOzs7OzsKKzBDQ0Q7S0FOTkFEQSBTSUdOIFZJUkFNQTtNbjs5O09OOzs7OztOOzs7OzsKKzBDRDU7S0FOTkFEQSBMRU5HVEggTUFSSztNYzswO0w7Ozs7O047Ozs7OworMENENjtLQU5OQURBIEFJIExFTkdUSCBNQVJLO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQ0RFO0tBTk5BREEgTEVUVEVSIEZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0UwO0tBTk5BREEgTEVUVEVSIFZPQ0FMSUMgUlI7TG87MDtMOzs7OztOOzs7OzsKKzBDRTE7S0FOTkFEQSBMRVRURVIgVk9DQUxJQyBMTDtMbzswO0w7Ozs7O047Ozs7OworMENFNjtLQU5OQURBIERJR0lUIFpFUk87TmQ7MDtMOzswOzA7MDtOOzs7OzsKKzBDRTc7S0FOTkFEQSBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzBDRTg7S0FOTkFEQSBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzBDRTk7S0FOTkFEQSBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMENFQTtLQU5OQURBIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzBDRUI7S0FOTkFEQSBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CiswQ0VDO0tBTk5BREEgRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CiswQ0VEO0tBTk5BREEgRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzBDRUU7S0FOTkFEQSBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMENFRjtLQU5OQURBIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzBEMDI7TUFMQVlBTEFNIFNJR04gQU5VU1ZBUkE7TWM7MDtMOzs7OztOOzs7OzsKKzBEMDM7TUFMQVlBTEFNIFNJR04gVklTQVJHQTtNYzswO0w7Ozs7O047Ozs7OworMEQwNTtNQUxBWUFMQU0gTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMDY7TUFMQVlBTEFNIExFVFRFUiBBQTtMbzswO0w7Ozs7O047Ozs7OworMEQwNztNQUxBWUFMQU0gTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzBEMDg7TUFMQVlBTEFNIExFVFRFUiBJSTtMbzswO0w7Ozs7O047Ozs7OworMEQwOTtNQUxBWUFMQU0gTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzBEMEE7TUFMQVlBTEFNIExFVFRFUiBVVTtMbzswO0w7Ozs7O047Ozs7OworMEQwQjtNQUxBWUFMQU0gTEVUVEVSIFZPQ0FMSUMgUjtMbzswO0w7Ozs7O047Ozs7OworMEQwQztNQUxBWUFMQU0gTEVUVEVSIFZPQ0FMSUMgTDtMbzswO0w7Ozs7O047Ozs7OworMEQwRTtNQUxBWUFMQU0gTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzBEMEY7TUFMQVlBTEFNIExFVFRFUiBFRTtMbzswO0w7Ozs7O047Ozs7OworMEQxMDtNQUxBWUFMQU0gTEVUVEVSIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDEyO01BTEFZQUxBTSBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMEQxMztNQUxBWUFMQU0gTEVUVEVSIE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDE0O01BTEFZQUxBTSBMRVRURVIgQVU7TG87MDtMOzs7OztOOzs7OzsKKzBEMTU7TUFMQVlBTEFNIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMEQxNjtNQUxBWUFMQU0gTEVUVEVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMEQxNztNQUxBWUFMQU0gTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDE4O01BTEFZQUxBTSBMRVRURVIgR0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDE5O01BTEFZQUxBTSBMRVRURVIgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDFBO01BTEFZQUxBTSBMRVRURVIgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzBEMUI7TUFMQVlBTEFNIExFVFRFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMUM7TUFMQVlBTEFNIExFVFRFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworMEQxRDtNQUxBWUFMQU0gTEVUVEVSIEpIQTtMbzswO0w7Ozs7O047Ozs7OworMEQxRTtNQUxBWUFMQU0gTEVUVEVSIE5ZQTtMbzswO0w7Ozs7O047Ozs7OworMEQxRjtNQUxBWUFMQU0gTEVUVEVSIFRUQTtMbzswO0w7Ozs7O047Ozs7OworMEQyMDtNQUxBWUFMQU0gTEVUVEVSIFRUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMjE7TUFMQVlBTEFNIExFVFRFUiBEREE7TG87MDtMOzs7OztOOzs7OzsKKzBEMjI7TUFMQVlBTEFNIExFVFRFUiBEREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDIzO01BTEFZQUxBTSBMRVRURVIgTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDI0O01BTEFZQUxBTSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMjU7TUFMQVlBTEFNIExFVFRFUiBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMjY7TUFMQVlBTEFNIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMEQyNztNQUxBWUFMQU0gTEVUVEVSIERIQTtMbzswO0w7Ozs7O047Ozs7OworMEQyODtNQUxBWUFMQU0gTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDJBO01BTEFZQUxBTSBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMkI7TUFMQVlBTEFNIExFVFRFUiBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMkM7TUFMQVlBTEFNIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMEQyRDtNQUxBWUFMQU0gTEVUVEVSIEJIQTtMbzswO0w7Ozs7O047Ozs7OworMEQyRTtNQUxBWUFMQU0gTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDJGO01BTEFZQUxBTSBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzBEMzA7TUFMQVlBTEFNIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMEQzMTtNQUxBWUFMQU0gTEVUVEVSIFJSQTtMbzswO0w7Ozs7O047Ozs7OworMEQzMjtNQUxBWUFMQU0gTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDMzO01BTEFZQUxBTSBMRVRURVIgTExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDM0O01BTEFZQUxBTSBMRVRURVIgTExMQTtMbzswO0w7Ozs7O047Ozs7OworMEQzNTtNQUxBWUFMQU0gTEVUVEVSIFZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDM2O01BTEFZQUxBTSBMRVRURVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDM3O01BTEFZQUxBTSBMRVRURVIgU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDM4O01BTEFZQUxBTSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzBEMzk7TUFMQVlBTEFNIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMEQzRTtNQUxBWUFMQU0gVk9XRUwgU0lHTiBBQTtNYzswO0w7Ozs7O047Ozs7OworMEQzRjtNQUxBWUFMQU0gVk9XRUwgU0lHTiBJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswRDQwO01BTEFZQUxBTSBWT1dFTCBTSUdOIElJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswRDQxO01BTEFZQUxBTSBWT1dFTCBTSUdOIFU7TW47OTU7T047Ozs7O047Ozs7OworMEQ0MjtNQUxBWUFMQU0gVk9XRUwgU0lHTiBVVTtNbjs5NjtPTjs7Ozs7Tjs7Ozs7CiswRDQzO01BTEFZQUxBTSBWT1dFTCBTSUdOIFZPQ0FMSUMgUjtNbjs5NztPTjs7Ozs7Tjs7Ozs7CiswRDQ2O01BTEFZQUxBTSBWT1dFTCBTSUdOIEU7TWM7MDtMOzs7OztOOzs7OzsKKzBENDc7TUFMQVlBTEFNIFZPV0VMIFNJR04gRUU7TWM7MDtMOzs7OztOOzs7OzsKKzBENDg7TUFMQVlBTEFNIFZPV0VMIFNJR04gQUk7TWM7MDtMOzs7OztOOzs7OzsKKzBENEE7TUFMQVlBTEFNIFZPV0VMIFNJR04gTztNYzswO0w7MEQ0NiAwRDNFOzs7O047Ozs7OworMEQ0QjtNQUxBWUFMQU0gVk9XRUwgU0lHTiBPTztNYzswO0w7MEQ0NyAwRDNFOzs7O047Ozs7OworMEQ0QztNQUxBWUFMQU0gVk9XRUwgU0lHTiBBVTtNYzswO0w7MEQ0NiAwRDU3Ozs7O047Ozs7OworMEQ0RDtNQUxBWUFMQU0gU0lHTiBWSVJBTUE7TW47OTtPTjs7Ozs7Tjs7Ozs7CiswRDU3O01BTEFZQUxBTSBBVSBMRU5HVEggTUFSSztNYzswO0w7Ozs7O047Ozs7OworMEQ2MDtNQUxBWUFMQU0gTEVUVEVSIFZPQ0FMSUMgUlI7TG87MDtMOzs7OztOOzs7OzsKKzBENjE7TUFMQVlBTEFNIExFVFRFUiBWT0NBTElDIExMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDY2O01BTEFZQUxBTSBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CiswRDY3O01BTEFZQUxBTSBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzBENjg7TUFMQVlBTEFNIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMEQ2OTtNQUxBWUFMQU0gRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzBENkE7TUFMQVlBTEFNIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzBENkI7TUFMQVlBTEFNIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzBENkM7TUFMQVlBTEFNIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMEQ2RDtNQUxBWUFMQU0gRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzBENkU7TUFMQVlBTEFNIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswRDZGO01BTEFZQUxBTSBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CiswRTAxO1RIQUkgQ0hBUkFDVEVSIEtPIEtBSTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgS08gS0FJOzs7OworMEUwMjtUSEFJIENIQVJBQ1RFUiBLSE8gS0hBSTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgS0hPIEtIQUk7Ozs7CiswRTAzO1RIQUkgQ0hBUkFDVEVSIEtITyBLSFVBVDtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgS0hPIEtIVUFUOzs7OworMEUwNDtUSEFJIENIQVJBQ1RFUiBLSE8gS0hXQUk7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIEtITyBLSFdBSTs7OzsKKzBFMDU7VEhBSSBDSEFSQUNURVIgS0hPIEtIT047TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIEtITyBLSE9OOzs7OworMEUwNjtUSEFJIENIQVJBQ1RFUiBLSE8gUkFLSEFORztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgS0hPIFJBS0hBTkc7Ozs7CiswRTA3O1RIQUkgQ0hBUkFDVEVSIE5HTyBOR1U7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIE5HTyBOR1U7Ozs7CiswRTA4O1RIQUkgQ0hBUkFDVEVSIENITyBDSEFOO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBDSE8gQ0hBTjs7OzsKKzBFMDk7VEhBSSBDSEFSQUNURVIgQ0hPIENISU5HO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBDSE8gQ0hJTkc7Ozs7CiswRTBBO1RIQUkgQ0hBUkFDVEVSIENITyBDSEFORztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgQ0hPIENIQU5HOzs7OworMEUwQjtUSEFJIENIQVJBQ1RFUiBTTyBTTztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgU08gU087Ozs7CiswRTBDO1RIQUkgQ0hBUkFDVEVSIENITyBDSE9FO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBDSE8gQ0hPRTs7OzsKKzBFMEQ7VEhBSSBDSEFSQUNURVIgWU8gWUlORztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgWU8gWUlORzs7OzsKKzBFMEU7VEhBSSBDSEFSQUNURVIgRE8gQ0hBREE7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIERPIENIQURBOzs7OworMEUwRjtUSEFJIENIQVJBQ1RFUiBUTyBQQVRBSztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgVE8gUEFUQUs7Ozs7CiswRTEwO1RIQUkgQ0hBUkFDVEVSIFRITyBUSEFOO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBUSE8gVEhBTjs7OzsKKzBFMTE7VEhBSSBDSEFSQUNURVIgVEhPIE5BTkdNT05USE87TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFRITyBOQU5HTU9OVEhPOzs7OworMEUxMjtUSEFJIENIQVJBQ1RFUiBUSE8gUEhVVEhBTztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgVEhPIFBIVVRIQU87Ozs7CiswRTEzO1RIQUkgQ0hBUkFDVEVSIE5PIE5FTjtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgTk8gTkVOOzs7OworMEUxNDtUSEFJIENIQVJBQ1RFUiBETyBERUs7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIERPIERFSzs7OzsKKzBFMTU7VEhBSSBDSEFSQUNURVIgVE8gVEFPO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBUTyBUQU87Ozs7CiswRTE2O1RIQUkgQ0hBUkFDVEVSIFRITyBUSFVORztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgVEhPIFRIVU5HOzs7OworMEUxNztUSEFJIENIQVJBQ1RFUiBUSE8gVEhBSEFOO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBUSE8gVEhBSEFOOzs7OworMEUxODtUSEFJIENIQVJBQ1RFUiBUSE8gVEhPTkc7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFRITyBUSE9ORzs7OzsKKzBFMTk7VEhBSSBDSEFSQUNURVIgTk8gTlU7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIE5PIE5VOzs7OworMEUxQTtUSEFJIENIQVJBQ1RFUiBCTyBCQUlNQUk7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIEJPIEJBSU1BSTs7OzsKKzBFMUI7VEhBSSBDSEFSQUNURVIgUE8gUExBO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBQTyBQTEE7Ozs7CiswRTFDO1RIQUkgQ0hBUkFDVEVSIFBITyBQSFVORztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgUEhPIFBIVU5HOzs7OworMEUxRDtUSEFJIENIQVJBQ1RFUiBGTyBGQTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgRk8gRkE7Ozs7CiswRTFFO1RIQUkgQ0hBUkFDVEVSIFBITyBQSEFOO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBQSE8gUEhBTjs7OzsKKzBFMUY7VEhBSSBDSEFSQUNURVIgRk8gRkFOO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBGTyBGQU47Ozs7CiswRTIwO1RIQUkgQ0hBUkFDVEVSIFBITyBTQU1QSEFPO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBQSE8gU0FNUEhBTzs7OzsKKzBFMjE7VEhBSSBDSEFSQUNURVIgTU8gTUE7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIE1PIE1BOzs7OworMEUyMjtUSEFJIENIQVJBQ1RFUiBZTyBZQUs7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFlPIFlBSzs7OzsKKzBFMjM7VEhBSSBDSEFSQUNURVIgUk8gUlVBO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBSTyBSVUE7Ozs7CiswRTI0O1RIQUkgQ0hBUkFDVEVSIFJVO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBSVTs7OzsKKzBFMjU7VEhBSSBDSEFSQUNURVIgTE8gTElORztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgTE8gTElORzs7OzsKKzBFMjY7VEhBSSBDSEFSQUNURVIgTFU7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIExVOzs7OworMEUyNztUSEFJIENIQVJBQ1RFUiBXTyBXQUVOO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBXTyBXQUVOOzs7OworMEUyODtUSEFJIENIQVJBQ1RFUiBTTyBTQUxBO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBTTyBTQUxBOzs7OworMEUyOTtUSEFJIENIQVJBQ1RFUiBTTyBSVVNJO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBTTyBSVVNJOzs7OworMEUyQTtUSEFJIENIQVJBQ1RFUiBTTyBTVUE7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFNPIFNVQTs7OzsKKzBFMkI7VEhBSSBDSEFSQUNURVIgSE8gSElQO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBITyBISVA7Ozs7CiswRTJDO1RIQUkgQ0hBUkFDVEVSIExPIENIVUxBO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBMTyBDSFVMQTs7OzsKKzBFMkQ7VEhBSSBDSEFSQUNURVIgTyBBTkc7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIE8gQU5HOzs7OworMEUyRTtUSEFJIENIQVJBQ1RFUiBITyBOT0tIVUs7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIEhPIE5PSyBIVUs7Ozs7CiswRTJGO1RIQUkgQ0hBUkFDVEVSIFBBSVlBTk5PSTtQbzswO0w7Ozs7O047VEhBSSBQQUkgWUFOIE5PSTs7OzsKKzBFMzA7VEhBSSBDSEFSQUNURVIgU0FSQSBBO0xvOzA7TDs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBBOzs7OworMEUzMTtUSEFJIENIQVJBQ1RFUiBNQUkgSEFOLUFLQVQ7TW47OTg7T047Ozs7O047VEhBSSBWT1dFTCBTSUdOIE1BSSBIQU4tQUtBVDs7OzsKKzBFMzI7VEhBSSBDSEFSQUNURVIgU0FSQSBBQTtMbzswO0w7Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgQUE7Ozs7CiswRTMzO1RIQUkgQ0hBUkFDVEVSIFNBUkEgQU07TG87MDtMOzBFNEQgMEUzMjs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIEFNOzs7OworMEUzNDtUSEFJIENIQVJBQ1RFUiBTQVJBIEk7TW47OTk7T047Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgSTs7OzsKKzBFMzU7VEhBSSBDSEFSQUNURVIgU0FSQSBJSTtNbjsxMDA7T047Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgSUk7Ozs7CiswRTM2O1RIQUkgQ0hBUkFDVEVSIFNBUkEgVUU7TW47MTAxO09OOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIFVFOzs7OworMEUzNztUSEFJIENIQVJBQ1RFUiBTQVJBIFVFRTtNbjsxMDI7T047Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgVUVFOzs7OworMEUzODtUSEFJIENIQVJBQ1RFUiBTQVJBIFU7TW47MTAzO09OOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIFU7Ozs7CiswRTM5O1RIQUkgQ0hBUkFDVEVSIFNBUkEgVVU7TW47MTA0O09OOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIFVVOzs7OworMEUzQTtUSEFJIENIQVJBQ1RFUiBQSElOVEhVO01uOzEwNTtPTjs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gUEhJTlRIVTs7OzsKKzBFM0Y7VEhBSSBDVVJSRU5DWSBTWU1CT0wgQkFIVDtTYzswO0VUOzs7OztOO1RIQUkgQkFIVCBTSUdOOzs7OworMEU0MDtUSEFJIENIQVJBQ1RFUiBTQVJBIEU7TG87MDtMOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIEU7Ozs7CiswRTQxO1RIQUkgQ0hBUkFDVEVSIFNBUkEgQUU7TG87MDtMOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIEFFOzs7OworMEU0MjtUSEFJIENIQVJBQ1RFUiBTQVJBIE87TG87MDtMOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIE87Ozs7CiswRTQzO1RIQUkgQ0hBUkFDVEVSIFNBUkEgQUkgTUFJTVVBTjtMbzswO0w7Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgTUFJIE1VQU47Ozs7CiswRTQ0O1RIQUkgQ0hBUkFDVEVSIFNBUkEgQUkgTUFJTUFMQUk7TG87MDtMOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIE1BSSBNQUxBSTs7OzsKKzBFNDU7VEhBSSBDSEFSQUNURVIgTEFLS0hBTkdZQU87TG87MDtMOzs7OztOO1RIQUkgTEFLIEtIQU5HIFlBTzs7OzsKKzBFNDY7VEhBSSBDSEFSQUNURVIgTUFJWUFNT0s7TG07MDtMOzs7OztOO1RIQUkgTUFJIFlBTU9LOzs7OworMEU0NztUSEFJIENIQVJBQ1RFUiBNQUlUQUlLSFU7TW47MTA2O09OOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBNQUkgVEFJIEtIVTs7OzsKKzBFNDg7VEhBSSBDSEFSQUNURVIgTUFJIEVLO01uOzEwNztPTjs7Ozs7TjtUSEFJIFRPTkUgTUFJIEVLOzs7OworMEU0OTtUSEFJIENIQVJBQ1RFUiBNQUkgVEhPO01uOzEwODtPTjs7Ozs7TjtUSEFJIFRPTkUgTUFJIFRITzs7OzsKKzBFNEE7VEhBSSBDSEFSQUNURVIgTUFJIFRSSTtNbjsxMDk7T047Ozs7O047VEhBSSBUT05FIE1BSSBUUkk7Ozs7CiswRTRCO1RIQUkgQ0hBUkFDVEVSIE1BSSBDSEFUVEFXQTtNbjsxMTA7T047Ozs7O047VEhBSSBUT05FIE1BSSBDSEFUVEFXQTs7OzsKKzBFNEM7VEhBSSBDSEFSQUNURVIgVEhBTlRIQUtIQVQ7TW47MTExO09OOzs7OztOO1RIQUkgVEhBTlRIQUtIQVQ7Ozs7CiswRTREO1RIQUkgQ0hBUkFDVEVSIE5JS0hBSElUO01uOzExMjtPTjs7Ozs7TjtUSEFJIE5JS0tIQUhJVDs7OzsKKzBFNEU7VEhBSSBDSEFSQUNURVIgWUFNQUtLQU47TW47MTI4O09OOzs7OztOO1RIQUkgWUFNQUtLQU47Ozs7CiswRTRGO1RIQUkgQ0hBUkFDVEVSIEZPTkdNQU47U287MDtMOzs7OztOO1RIQUkgRk9OR01BTjs7OzsKKzBFNTA7VEhBSSBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CiswRTUxO1RIQUkgRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CiswRTUyO1RIQUkgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswRTUzO1RIQUkgRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzBFNTQ7VEhBSSBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CiswRTU1O1RIQUkgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMEU1NjtUSEFJIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMEU1NztUSEFJIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CiswRTU4O1RIQUkgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzBFNTk7VEhBSSBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CiswRTVBO1RIQUkgQ0hBUkFDVEVSIEFOR0tIQU5LSFU7UG87MDtMOzs7OztOO1RIQUkgQU5HS0hBTktIVTs7OzsKKzBFNUI7VEhBSSBDSEFSQUNURVIgS0hPTVVUO1BvOzA7TDs7Ozs7TjtUSEFJIEtIT01VVDs7OzsKKzBFODE7TEFPIExFVFRFUiBLTztMbzswO0w7Ozs7O047Ozs7OworMEU4MjtMQU8gTEVUVEVSIEtITyBTVU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRTg0O0xBTyBMRVRURVIgS0hPIFRBTTtMbzswO0w7Ozs7O047Ozs7OworMEU4NztMQU8gTEVUVEVSIE5HTztMbzswO0w7Ozs7O047Ozs7OworMEU4ODtMQU8gTEVUVEVSIENPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRThBO0xBTyBMRVRURVIgU08gVEFNO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRThEO0xBTyBMRVRURVIgTllPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRTk0O0xBTyBMRVRURVIgRE87TG87MDtMOzs7OztOOzs7OzsKKzBFOTU7TEFPIExFVFRFUiBUTztMbzswO0w7Ozs7O047Ozs7OworMEU5NjtMQU8gTEVUVEVSIFRITyBTVU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRTk3O0xBTyBMRVRURVIgVEhPIFRBTTtMbzswO0w7Ozs7O047Ozs7OworMEU5OTtMQU8gTEVUVEVSIE5PO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRTlBO0xBTyBMRVRURVIgQk87TG87MDtMOzs7OztOOzs7OzsKKzBFOUI7TEFPIExFVFRFUiBQTztMbzswO0w7Ozs7O047Ozs7OworMEU5QztMQU8gTEVUVEVSIFBITyBTVU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRTlEO0xBTyBMRVRURVIgRk8gVEFNO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRTlFO0xBTyBMRVRURVIgUEhPIFRBTTtMbzswO0w7Ozs7O047Ozs7OworMEU5RjtMQU8gTEVUVEVSIEZPIFNVTkc7TG87MDtMOzs7OztOOzs7OzsKKzBFQTE7TEFPIExFVFRFUiBNTztMbzswO0w7Ozs7O047Ozs7OworMEVBMjtMQU8gTEVUVEVSIFlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUEzO0xBTyBMRVRURVIgTE8gTElORztMbzswO0w7Ozs7O047Ozs7OworMEVBNTtMQU8gTEVUVEVSIExPIExPT1Q7TG87MDtMOzs7OztOOzs7OzsKKzBFQTc7TEFPIExFVFRFUiBXTztMbzswO0w7Ozs7O047Ozs7OworMEVBQTtMQU8gTEVUVEVSIFNPIFNVTkc7TG87MDtMOzs7OztOOzs7OzsKKzBFQUI7TEFPIExFVFRFUiBITyBTVU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUFEO0xBTyBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMEVBRTtMQU8gTEVUVEVSIEhPIFRBTTtMbzswO0w7Ozs7O047Ozs7OworMEVBRjtMQU8gRUxMSVBTSVM7UG87MDtMOzs7OztOOzs7OzsKKzBFQjA7TEFPIFZPV0VMIFNJR04gQTtMbzswO0w7Ozs7O047Ozs7OworMEVCMTtMQU8gVk9XRUwgU0lHTiBNQUkgS0FOO01uOzExMztPTjs7Ozs7Tjs7Ozs7CiswRUIyO0xBTyBWT1dFTCBTSUdOIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUIzO0xBTyBWT1dFTCBTSUdOIEFNO0xvOzA7TDswRUNEIDBFQjI7Ozs7Tjs7Ozs7CiswRUI0O0xBTyBWT1dFTCBTSUdOIEk7TW47MTE0O09OOzs7OztOOzs7OzsKKzBFQjU7TEFPIFZPV0VMIFNJR04gSUk7TW47MTE1O09OOzs7OztOOzs7OzsKKzBFQjY7TEFPIFZPV0VMIFNJR04gWTtNbjsxMTY7T047Ozs7O047Ozs7OworMEVCNztMQU8gVk9XRUwgU0lHTiBZWTtNbjsxMTc7T047Ozs7O047Ozs7OworMEVCODtMQU8gVk9XRUwgU0lHTiBVO01uOzExODtPTjs7Ozs7Tjs7Ozs7CiswRUI5O0xBTyBWT1dFTCBTSUdOIFVVO01uOzExOTtPTjs7Ozs7Tjs7Ozs7CiswRUJCO0xBTyBWT1dFTCBTSUdOIE1BSSBLT047TW47MTIwO09OOzs7OztOOzs7OzsKKzBFQkM7TEFPIFNFTUlWT1dFTCBTSUdOIExPO01uOzEyMTtPTjs7Ozs7Tjs7Ozs7CiswRUJEO0xBTyBTRU1JVk9XRUwgU0lHTiBOWU87TG87MDtMOzs7OztOOzs7OzsKKzBFQzA7TEFPIFZPV0VMIFNJR04gRTtMbzswO0w7Ozs7O047Ozs7OworMEVDMTtMQU8gVk9XRUwgU0lHTiBFSTtMbzswO0w7Ozs7O047Ozs7OworMEVDMjtMQU8gVk9XRUwgU0lHTiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUMzO0xBTyBWT1dFTCBTSUdOIEFZO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUM0O0xBTyBWT1dFTCBTSUdOIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUM2O0xBTyBLTyBMQTtMbTswO0w7Ozs7O047Ozs7OworMEVDODtMQU8gVE9ORSBNQUkgRUs7TW47MTIyO09OOzs7OztOOzs7OzsKKzBFQzk7TEFPIFRPTkUgTUFJIFRITztNbjsxMjM7T047Ozs7O047Ozs7OworMEVDQTtMQU8gVE9ORSBNQUkgVEk7TW47MTI0O09OOzs7OztOOzs7OzsKKzBFQ0I7TEFPIFRPTkUgTUFJIENBVEFXQTtNbjsxMjU7T047Ozs7O047Ozs7OworMEVDQztMQU8gQ0FOQ0VMTEFUSU9OIE1BUks7TW47MTI2O09OOzs7OztOOzs7OzsKKzBFQ0Q7TEFPIE5JR0dBSElUQTtNbjsxMjc7T047Ozs7O047Ozs7OworMEVEMDtMQU8gRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMEVEMTtMQU8gRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CiswRUQyO0xBTyBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzBFRDM7TEFPIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswRUQ0O0xBTyBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CiswRUQ1O0xBTyBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CiswRUQ2O0xBTyBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzBFRDc7TEFPIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CiswRUQ4O0xBTyBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMEVEOTtMQU8gRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMEVEQztMQU8gSE8gTk87TG87MDtMOzxjb21wYXQ+IDBFQUIgMEU5OTs7OztOOzs7OzsKKzBFREQ7TEFPIEhPIE1PO0xvOzA7TDs8Y29tcGF0PiAwRUFCIDBFQTE7Ozs7Tjs7Ozs7CiswRjAwO1RJQkVUQU4gU1lMTEFCTEUgT007U287MDtMOzs7OztOOzs7OzsKKzBGMDE7VElCRVRBTiBNQVJLIEdURVIgWUlHIE1HTyBUUlVOQ0FURUQgQTtTbzswO0w7Ozs7O047O3RlciB5aWsgZ28gYSB0aHVuZzs7OworMEYwMjtUSUJFVEFOIE1BUksgR1RFUiBZSUcgTUdPIC1VTSBSTkFNIEJDQUQgTUE7U287MDtMOzs7OztOOzt0ZXIgeWlrIGdvIHd1bSBuYW0gY2hleSBtYTs7OworMEYwMztUSUJFVEFOIE1BUksgR1RFUiBZSUcgTUdPIC1VTSBHVEVSIFRTSEVHIE1BO1NvOzA7TDs7Ozs7Tjs7dGVyIHlpayBnbyB3dW0gdGVyIHRzZWsgbWE7OzsKKzBGMDQ7VElCRVRBTiBNQVJLIElOSVRJQUwgWUlHIE1HTyBNRFVOIE1BO1BvOzA7TDs7Ozs7Tjs7eWlrIGdvIGR1biBtYTs7OworMEYwNTtUSUJFVEFOIE1BUksgQ0xPU0lORyBZSUcgTUdPIFNHQUIgTUE7UG87MDtMOzs7OztOOzt5aWsgZ28ga2FiIG1hOzs7CiswRjA2O1RJQkVUQU4gTUFSSyBDQVJFVCBZSUcgTUdPIFBIVVIgU0hBRCBNQTtQbzswO0w7Ozs7O047O3lpayBnbyBwdXIgc2hleSBtYTs7OworMEYwNztUSUJFVEFOIE1BUksgWUlHIE1HTyBUU0hFRyBTSEFEIE1BO1BvOzA7TDs7Ozs7Tjs7eWlrIGdvIHRzZWsgc2hleSBtYTs7OworMEYwODtUSUJFVEFOIE1BUksgU0JSVUwgU0hBRDtQbzswO0w7Ozs7O047O2RydWwgc2hleTs7OworMEYwOTtUSUJFVEFOIE1BUksgQlNLVVIgWUlHIE1HTztQbzswO0w7Ozs7O047O2t1ciB5aWsgZ287OzsKKzBGMEE7VElCRVRBTiBNQVJLIEJLQS0gU0hPRyBZSUcgTUdPO1BvOzA7TDs7Ozs7Tjs7a2Egc2hvIHlpayBnbzs7OworMEYwQjtUSUJFVEFOIE1BUksgSU5URVJTWUxMQUJJQyBUU0hFRztQbzswO0w7Ozs7O047O3RzZWs7OzsKKzBGMEM7VElCRVRBTiBNQVJLIERFTElNSVRFUiBUU0hFRyBCU1RBUjtQbzswO0w7Ozs7O047O3RzZWsgdGFyOzs7CiswRjBEO1RJQkVUQU4gTUFSSyBTSEFEO1BvOzA7TDs7Ozs7Tjs7c2hleTs7OworMEYwRTtUSUJFVEFOIE1BUksgTllJUyBTSEFEO1BvOzA7TDs7Ozs7Tjs7bnlpIHNoZXk7OzsKKzBGMEY7VElCRVRBTiBNQVJLIFRTSEVHIFNIQUQ7UG87MDtMOzs7OztOOzt0c2VrIHNoZXk7OzsKKzBGMTA7VElCRVRBTiBNQVJLIE5ZSVMgVFNIRUcgU0hBRDtQbzswO0w7Ozs7O047O255aSB0c2VrIHNoZXk7OzsKKzBGMTE7VElCRVRBTiBNQVJLIFJJTiBDSEVOIFNQVU5HUyBTSEFEO1BvOzA7TDs7Ozs7Tjs7cmluY2hlbiBwdW5nIHNoZXk7OzsKKzBGMTI7VElCRVRBTiBNQVJLIFJHWUEgR1JBTSBTSEFEO1BvOzA7TDs7Ozs7Tjs7Z3lhIHRyYW0gc2hleTs7OworMEYxMztUSUJFVEFOIE1BUksgQ0FSRVQgLURaVUQgUlRBR1MgTUUgTE9ORyBDQU47U287MDtMOzs7OztOOztkenUgdGEgbWUgbG9uZyBjaGVuOzs7CiswRjE0O1RJQkVUQU4gTUFSSyBHVEVSIFRTSEVHO1NvOzA7TDs7Ozs7Tjs7dGVyIHRzZWs7OzsKKzBGMTU7VElCRVRBTiBMT0dPVFlQRSBTSUdOIENIQUQgUlRBR1M7U287MDtMOzs7OztOOztjaGUgdGE7OzsKKzBGMTY7VElCRVRBTiBMT0dPVFlQRSBTSUdOIExIQUcgUlRBR1M7U287MDtMOzs7OztOOztobGFrIHRhOzs7CiswRjE3O1RJQkVUQU4gQVNUUk9MT0dJQ0FMIFNJR04gU0dSQSBHQ0FOIC1DSEFSIFJUQUdTO1NvOzA7TDs7Ozs7Tjs7dHJhY2hlbiBjaGFyIHRhOzs7CiswRjE4O1RJQkVUQU4gQVNUUk9MT0dJQ0FMIFNJR04gLUtIWVVEIFBBO01uOzIyMDtPTjs7Ozs7Tjs7a3l1IHBhOzs7CiswRjE5O1RJQkVUQU4gQVNUUk9MT0dJQ0FMIFNJR04gU0RPTkcgVFNIVUdTO01uOzIyMDtPTjs7Ozs7Tjs7ZG9uZyB0c3U7OzsKKzBGMUE7VElCRVRBTiBTSUdOIFJERUwgREtBUiBHQ0lHO1NvOzA7TDs7Ozs7Tjs7ZGVrYSBjaGlnOzs7CiswRjFCO1RJQkVUQU4gU0lHTiBSREVMIERLQVIgR05ZSVM7U287MDtMOzs7OztOOztkZWthIG55aTs7OworMEYxQztUSUJFVEFOIFNJR04gUkRFTCBES0FSIEdTVU07U287MDtMOzs7OztOOztkZWthIHN1bTs7OworMEYxRDtUSUJFVEFOIFNJR04gUkRFTCBOQUcgR0NJRztTbzswO0w7Ozs7O047O2RlbmEgY2hpZzs7OworMEYxRTtUSUJFVEFOIFNJR04gUkRFTCBOQUcgR05ZSVM7U287MDtMOzs7OztOOztkZW5hIG55aTs7OworMEYxRjtUSUJFVEFOIFNJR04gUkRFTCBES0FSIFJERUwgTkFHO1NvOzA7TDs7Ozs7Tjs7ZGVrYSBkZW5hOzs7CiswRjIwO1RJQkVUQU4gRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMEYyMTtUSUJFVEFOIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMEYyMjtUSUJFVEFOIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMEYyMztUSUJFVEFOIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswRjI0O1RJQkVUQU4gRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMEYyNTtUSUJFVEFOIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzBGMjY7VElCRVRBTiBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzBGMjc7VElCRVRBTiBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMEYyODtUSUJFVEFOIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswRjI5O1RJQkVUQU4gRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMEYyQTtUSUJFVEFOIERJR0lUIEhBTEYgT05FO05vOzA7TDs7Ozs7Tjs7Ozs7CiswRjJCO1RJQkVUQU4gRElHSVQgSEFMRiBUV087Tm87MDtMOzs7OztOOzs7OzsKKzBGMkM7VElCRVRBTiBESUdJVCBIQUxGIFRIUkVFO05vOzA7TDs7Ozs7Tjs7Ozs7CiswRjJEO1RJQkVUQU4gRElHSVQgSEFMRiBGT1VSO05vOzA7TDs7Ozs7Tjs7Ozs7CiswRjJFO1RJQkVUQU4gRElHSVQgSEFMRiBGSVZFO05vOzA7TDs7Ozs7Tjs7Ozs7CiswRjJGO1RJQkVUQU4gRElHSVQgSEFMRiBTSVg7Tm87MDtMOzs7OztOOzs7OzsKKzBGMzA7VElCRVRBTiBESUdJVCBIQUxGIFNFVkVOO05vOzA7TDs7Ozs7Tjs7Ozs7CiswRjMxO1RJQkVUQU4gRElHSVQgSEFMRiBFSUdIVDtObzswO0w7Ozs7O047Ozs7OworMEYzMjtUSUJFVEFOIERJR0lUIEhBTEYgTklORTtObzswO0w7Ozs7O047Ozs7OworMEYzMztUSUJFVEFOIERJR0lUIEhBTEYgWkVSTztObzswO0w7Ozs7O047Ozs7OworMEYzNDtUSUJFVEFOIE1BUksgQlNEVVMgUlRBR1M7U287MDtMOzs7OztOOztkdSB0YTs7OworMEYzNTtUSUJFVEFOIE1BUksgTkdBUyBCWlVORyBOWUkgWkxBO01uOzIzMDtPTjs7Ozs7Tjs7bmdlIHp1bmcgbnlpIGRhOzs7CiswRjM2O1RJQkVUQU4gTUFSSyBDQVJFVCAtRFpVRCBSVEFHUyBCWkhJIE1JRyBDQU47U287MDtMOzs7OztOOztkenUgdGEgc2hpIG1pZyBjaGVuOzs7CiswRjM3O1RJQkVUQU4gTUFSSyBOR0FTIEJaVU5HIFNHT1IgUlRBR1M7TW47MjMwO09OOzs7OztOOztuZ2UgenVuZyBnb3IgdGE7OzsKKzBGMzg7VElCRVRBTiBNQVJLIENIRSBNR087U287MDtMOzs7OztOOztjaGUgZ287OzsKKzBGMzk7VElCRVRBTiBNQVJLIFRTQSAtUEhSVTtNbjsyMTY7T047Ozs7O047O3RzYSB0cnU7OzsKKzBGM0E7VElCRVRBTiBNQVJLIEdVRyBSVEFHUyBHWU9OO1BzOzA7TDs7Ozs7Tjs7Z3VnIHRhIHl1bjs7OworMEYzQjtUSUJFVEFOIE1BUksgR1VHIFJUQUdTIEdZQVM7UGU7MDtMOzs7OztOOztndWcgdGEgeWU7OzsKKzBGM0M7VElCRVRBTiBNQVJLIEFORyBLSEFORyBHWU9OO1BzOzA7TDs7Ozs7Tjs7YW5nIGthbmcgeXVuOzs7CiswRjNEO1RJQkVUQU4gTUFSSyBBTkcgS0hBTkcgR1lBUztQZTswO0w7Ozs7O047O2FuZyBrYW5nIHllOzs7CiswRjNFO1RJQkVUQU4gU0lHTiBZQVIgVFNIRVM7UHM7MDtMOzs7OztOOzt5YXIgdHNlOzs7CiswRjNGO1RJQkVUQU4gU0lHTiBNQVIgVFNIRVM7UGU7MDtMOzs7OztOOzttYXIgdHNlOzs7CiswRjQwO1RJQkVUQU4gTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjQxO1RJQkVUQU4gTEVUVEVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMEY0MjtUSUJFVEFOIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMEY0MztUSUJFVEFOIExFVFRFUiBHSEE7TG87MDtMOzBGNDIgMEZCNzs7OztOOzs7OzsKKzBGNDQ7VElCRVRBTiBMRVRURVIgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjQ1O1RJQkVUQU4gTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjQ2O1RJQkVUQU4gTEVUVEVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMEY0NztUSUJFVEFOIExFVFRFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworMEY0OTtUSUJFVEFOIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzBGNEE7VElCRVRBTiBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjRCO1RJQkVUQU4gTEVUVEVSIFRUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNEM7VElCRVRBTiBMRVRURVIgRERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjREO1RJQkVUQU4gTEVUVEVSIERESEE7TG87MDtMOzBGNEMgMEZCNzs7OztOOzs7OzsKKzBGNEU7VElCRVRBTiBMRVRURVIgTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjRGO1RJQkVUQU4gTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjUwO1RJQkVUQU4gTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEY1MTtUSUJFVEFOIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMEY1MjtUSUJFVEFOIExFVFRFUiBESEE7TG87MDtMOzBGNTEgMEZCNzs7OztOOzs7OzsKKzBGNTM7VElCRVRBTiBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzBGNTQ7VElCRVRBTiBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNTU7VElCRVRBTiBMRVRURVIgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjU2O1RJQkVUQU4gTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjU3O1RJQkVUQU4gTEVUVEVSIEJIQTtMbzswO0w7MEY1NiAwRkI3Ozs7O047Ozs7OworMEY1ODtUSUJFVEFOIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMEY1OTtUSUJFVEFOIExFVFRFUiBUU0E7TG87MDtMOzs7OztOOzs7OzsKKzBGNUE7VElCRVRBTiBMRVRURVIgVFNIQTtMbzswO0w7Ozs7O047Ozs7OworMEY1QjtUSUJFVEFOIExFVFRFUiBEWkE7TG87MDtMOzs7OztOOzs7OzsKKzBGNUM7VElCRVRBTiBMRVRURVIgRFpIQTtMbzswO0w7MEY1QiAwRkI3Ozs7O047Ozs7OworMEY1RDtUSUJFVEFOIExFVFRFUiBXQTtMbzswO0w7Ozs7O047Ozs7OworMEY1RTtUSUJFVEFOIExFVFRFUiBaSEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNUY7VElCRVRBTiBMRVRURVIgWkE7TG87MDtMOzs7OztOOzs7OzsKKzBGNjA7VElCRVRBTiBMRVRURVIgLUE7TG87MDtMOzs7OztOOzs7OzsKKzBGNjE7VElCRVRBTiBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzBGNjI7VElCRVRBTiBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzBGNjM7VElCRVRBTiBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNjQ7VElCRVRBTiBMRVRURVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjY1O1RJQkVUQU4gTEVUVEVSIFNTQTtMbzswO0w7Ozs7O047Ozs7OworMEY2NjtUSUJFVEFOIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMEY2NztUSUJFVEFOIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMEY2ODtUSUJFVEFOIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjY5O1RJQkVUQU4gTEVUVEVSIEtTU0E7TG87MDtMOzBGNDAgMEZCNTs7OztOOzs7OzsKKzBGNzE7VElCRVRBTiBWT1dFTCBTSUdOIEFBO01uOzE0NTtPTjs7Ozs7Tjs7Ozs7CiswRjcyO1RJQkVUQU4gVk9XRUwgU0lHTiBJO01uOzEzMDtPTjs7Ozs7Tjs7Ozs7CiswRjczO1RJQkVUQU4gVk9XRUwgU0lHTiBJSTtNbjsxMzE7T047MEY3MiAwRjcxOzs7O047Ozs7OworMEY3NDtUSUJFVEFOIFZPV0VMIFNJR04gVTtNbjsxMzI7T047Ozs7O047Ozs7OworMEY3NTtUSUJFVEFOIFZPV0VMIFNJR04gVVU7TW47MTMzO09OOzBGNzEgMEY3NDs7OztOOzs7OzsKKzBGNzY7VElCRVRBTiBWT1dFTCBTSUdOIFZPQ0FMSUMgUjtNbjsxMzQ7T047MEZCMiAwRjgwOzs7O047Ozs7OworMEY3NztUSUJFVEFOIFZPV0VMIFNJR04gVk9DQUxJQyBSUjtNbjsxMzU7T047MEY3NiAwRjcxOzs7O047Ozs7OworMEY3ODtUSUJFVEFOIFZPV0VMIFNJR04gVk9DQUxJQyBMO01uOzEzNjtPTjswRkIzIDBGODA7Ozs7Tjs7Ozs7CiswRjc5O1RJQkVUQU4gVk9XRUwgU0lHTiBWT0NBTElDIExMO01uOzEzNztPTjswRjc4IDBGNzE7Ozs7Tjs7Ozs7CiswRjdBO1RJQkVUQU4gVk9XRUwgU0lHTiBFO01uOzEzODtPTjs7Ozs7Tjs7Ozs7CiswRjdCO1RJQkVUQU4gVk9XRUwgU0lHTiBFRTtNbjsxMzk7T047Ozs7O047Ozs7OworMEY3QztUSUJFVEFOIFZPV0VMIFNJR04gTztNbjsxNDA7T047Ozs7O047Ozs7OworMEY3RDtUSUJFVEFOIFZPV0VMIFNJR04gT087TW47MTQxO09OOzs7OztOOzs7OzsKKzBGN0U7VElCRVRBTiBTSUdOIFJKRVMgU1UgTkdBIFJPO01uOzE0MjtPTjs7Ozs7Tjs7amUgc3UgbmdhIHJvOzs7CiswRjdGO1RJQkVUQU4gU0lHTiBSTkFNIEJDQUQ7TWM7MDtMOzs7OztOOztuYW0gY2hleTs7OworMEY4MDtUSUJFVEFOIFZPV0VMIFNJR04gUkVWRVJTRUQgSTtNbjsxNDM7T047Ozs7O047Ozs7OworMEY4MTtUSUJFVEFOIFZPV0VMIFNJR04gUkVWRVJTRUQgSUk7TW47MTQ0O09OOzBGODAgMEY3MTs7OztOOzs7OzsKKzBGODI7VElCRVRBTiBTSUdOIE5ZSSBaTEEgTkFBIERBO01uOzIzMDtPTjs7Ozs7Tjs7bnlpIGRhIG5hIGRhOzs7CiswRjgzO1RJQkVUQU4gU0lHTiBTTkEgTERBTjtNbjsyMzA7T047Ozs7O047O25hbiBkZTs7OworMEY4NDtUSUJFVEFOIE1BUksgSEFMQU5UQTtNbjs5O09OOzs7OztOOzs7OzsKKzBGODU7VElCRVRBTiBNQVJLIFBBTFVUQTtQbzswO0w7Ozs7O047Ozs7OworMEY4NjtUSUJFVEFOIFNJR04gTENJIFJUQUdTO01uOzIzMDtPTjs7Ozs7Tjs7amkgdGE7OzsKKzBGODc7VElCRVRBTiBTSUdOIFlBTkcgUlRBR1M7TW47MjMwO09OOzs7OztOOzt5YW5nIHRhOzs7CiswRjg4O1RJQkVUQU4gU0lHTiBMQ0UgVFNBIENBTjtTbzswO0w7Ozs7O047O2NoZSB0c2EgY2hlbjs7OworMEY4OTtUSUJFVEFOIFNJR04gTUNIVSBDQU47U287MDtMOzs7OztOOztjaHUgY2hlbjs7OworMEY4QTtUSUJFVEFOIFNJR04gR1JVIENBTiBSR1lJTkdTO1NvOzA7TDs7Ozs7Tjs7dHJ1IGNoZW4gZ2luZzs7OworMEY4QjtUSUJFVEFOIFNJR04gR1JVIE1FRCBSR1lJTkdTO1NvOzA7TDs7Ozs7Tjs7dHJ1IG1lIGdpbmc7OzsKKzBGOTA7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEtBO01uOzY7T047Ozs7O047Ozs7OworMEY5MTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgS0hBO01uOzY7T047Ozs7O047Ozs7OworMEY5MjtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgR0E7TW47NjtPTjs7Ozs7Tjs7Ozs7CiswRjkzO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBHSEE7TW47NjtPTjswRjkyIDBGQjc7Ozs7Tjs7Ozs7CiswRjk0O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBOR0E7TW47NjtPTjs7Ozs7Tjs7Ozs7CiswRjk1O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBDQTtNbjs2O09OOzs7OztOOzs7OzsKKzBGOTc7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEpBO01uOzY7T047Ozs7O047Ozs7OworMEY5OTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgTllBO01uOzY7T047Ozs7O047Ozs7OworMEY5QTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgVFRBO01uOzY7T047Ozs7O047Ozs7OworMEY5QjtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgVFRIQTtNbjs2O09OOzs7OztOOzs7OzsKKzBGOUM7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEREQTtNbjs2O09OOzs7OztOOzs7OzsKKzBGOUQ7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIERESEE7TW47NjtPTjswRjlDIDBGQjc7Ozs7Tjs7Ozs7CiswRjlFO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBOTkE7TW47NjtPTjs7Ozs7Tjs7Ozs7CiswRjlGO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBUQTtNbjs2O09OOzs7OztOOzs7OzsKKzBGQTA7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFRIQTtNbjs2O09OOzs7OztOOzs7OzsKKzBGQTE7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIERBO01uOzY7T047Ozs7O047Ozs7OworMEZBMjtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgREhBO01uOzY7T047MEZBMSAwRkI3Ozs7O047Ozs7OworMEZBMztUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgTkE7TW47NjtPTjs7Ozs7Tjs7Ozs7CiswRkE0O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBQQTtNbjs2O09OOzs7OztOOzs7OzsKKzBGQTU7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFBIQTtNbjs2O09OOzs7OztOOzs7OzsKKzBGQTY7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEJBO01uOzY7T047Ozs7O047Ozs7OworMEZBNztUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgQkhBO01uOzY7T047MEZBNiAwRkI3Ozs7O047Ozs7OworMEZBODtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgTUE7TW47NjtPTjs7Ozs7Tjs7Ozs7CiswRkE5O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBUU0E7TW47NjtPTjs7Ozs7Tjs7Ozs7CiswRkFBO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBUU0hBO01uOzY7T047Ozs7O047Ozs7OworMEZBQjtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgRFpBO01uOzY7T047Ozs7O047Ozs7OworMEZBQztUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgRFpIQTtNbjs2O09OOzBGQUIgMEZCNzs7OztOOzs7OzsKKzBGQUQ7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFdBO01uOzY7T047Ozs7O047Ozs7OworMEZCMTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgWUE7TW47NjtPTjs7Ozs7Tjs7Ozs7CiswRkIyO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBSQTtNbjs2O09OOzs7OztOOzs7OzsKKzBGQjM7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIExBO01uOzY7T047Ozs7O047Ozs7OworMEZCNDtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgU0hBO01uOzY7T047Ozs7O047Ozs7OworMEZCNTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgU1NBO01uOzY7T047Ozs7O047Ozs7OworMEZCNjtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgU0E7TW47NjtPTjs7Ozs7Tjs7Ozs7CiswRkI3O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBIQTtNbjs2O09OOzs7OztOOzs7OzsKKzBGQjk7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEtTU0E7TW47NjtPTjswRjkwIDBGQjU7Ozs7Tjs7Ozs7CisxMEEwO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEFOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwRDA7CisxMEExO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEJBTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMEQxOworMTBBMjtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBHQU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MTBEMjsKKzEwQTM7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgRE9OO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwRDM7CisxMEE0O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEVOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwRDQ7CisxMEE1O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFZJTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMEQ1OworMTBBNjtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBaRU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MTBENjsKKzEwQTc7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgVEFOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwRDc7CisxMEE4O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIElOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwRDg7CisxMEE5O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEtBTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMEQ5OworMTBBQTtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBMQVM7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MTBEQTsKKzEwQUI7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgTUFOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwREI7CisxMEFDO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIE5BUjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMERDOworMTBBRDtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBPTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMEREOworMTBBRTtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBQQVI7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MTBERTsKKzEwQUY7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgWkhBUjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMERGOworMTBCMDtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBSQUU7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MTBFMDsKKzEwQjE7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgU0FOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwRTE7CisxMEIyO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFRBUjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMEUyOworMTBCMztHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBVTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMEUzOworMTBCNDtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBQSEFSO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwRTQ7CisxMEI1O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEtIQVI7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MTBFNTsKKzEwQjY7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgR0hBTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMEU2OworMTBCNztHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBRQVI7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MTBFNzsKKzEwQjg7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgU0hJTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMEU4OworMTBCOTtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBDSElOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwRTk7CisxMEJBO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIENBTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMEVBOworMTBCQjtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBKSUw7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MTBFQjsKKzEwQkM7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgQ0lMO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwRUM7CisxMEJEO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIENIQVI7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MTBFRDsKKzEwQkU7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgWEFOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwRUU7CisxMEJGO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEpIQU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MTBFRjsKKzEwQzA7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgSEFFO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwRjA7CisxMEMxO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEhFO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwRjE7CisxMEMyO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEhJRTtMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMEYyOworMTBDMztHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBXRTtMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMEYzOworMTBDNDtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBIQVI7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MTBGNDsKKzEwQzU7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgSE9FO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwRjU7CisxMEQwO0dFT1JHSUFOIExFVFRFUiBBTjtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEFOOzs7OworMTBEMTtHRU9SR0lBTiBMRVRURVIgQkFOO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgQkFOOzs7OworMTBEMjtHRU9SR0lBTiBMRVRURVIgR0FOO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgR0FOOzs7OworMTBEMztHRU9SR0lBTiBMRVRURVIgRE9OO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgRE9OOzs7OworMTBENDtHRU9SR0lBTiBMRVRURVIgRU47TGw7MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBFTjs7OzsKKzEwRDU7R0VPUkdJQU4gTEVUVEVSIFZJTjtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFZJTjs7OzsKKzEwRDY7R0VPUkdJQU4gTEVUVEVSIFpFTjtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFpFTjs7OzsKKzEwRDc7R0VPUkdJQU4gTEVUVEVSIFRBTjtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFRBTjs7OzsKKzEwRDg7R0VPUkdJQU4gTEVUVEVSIElOO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgSU47Ozs7CisxMEQ5O0dFT1JHSUFOIExFVFRFUiBLQU47TGw7MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBLQU47Ozs7CisxMERBO0dFT1JHSUFOIExFVFRFUiBMQVM7TGw7MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBMQVM7Ozs7CisxMERCO0dFT1JHSUFOIExFVFRFUiBNQU47TGw7MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBNQU47Ozs7CisxMERDO0dFT1JHSUFOIExFVFRFUiBOQVI7TGw7MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBOQVI7Ozs7CisxMEREO0dFT1JHSUFOIExFVFRFUiBPTjtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIE9OOzs7OworMTBERTtHRU9SR0lBTiBMRVRURVIgUEFSO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgUEFSOzs7OworMTBERjtHRU9SR0lBTiBMRVRURVIgWkhBUjtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFpIQVI7Ozs7CisxMEUwO0dFT1JHSUFOIExFVFRFUiBSQUU7TGw7MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBSQUU7Ozs7CisxMEUxO0dFT1JHSUFOIExFVFRFUiBTQU47TGw7MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBTQU47Ozs7CisxMEUyO0dFT1JHSUFOIExFVFRFUiBUQVI7TGw7MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBUQVI7Ozs7CisxMEUzO0dFT1JHSUFOIExFVFRFUiBVTjtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFVOOzs7OworMTBFNDtHRU9SR0lBTiBMRVRURVIgUEhBUjtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFBIQVI7Ozs7CisxMEU1O0dFT1JHSUFOIExFVFRFUiBLSEFSO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgS0hBUjs7OzsKKzEwRTY7R0VPUkdJQU4gTEVUVEVSIEdIQU47TGw7MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBHSEFOOzs7OworMTBFNztHRU9SR0lBTiBMRVRURVIgUUFSO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgUUFSOzs7OworMTBFODtHRU9SR0lBTiBMRVRURVIgU0hJTjtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFNISU47Ozs7CisxMEU5O0dFT1JHSUFOIExFVFRFUiBDSElOO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgQ0hJTjs7OzsKKzEwRUE7R0VPUkdJQU4gTEVUVEVSIENBTjtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIENBTjs7OzsKKzEwRUI7R0VPUkdJQU4gTEVUVEVSIEpJTDtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEpJTDs7OzsKKzEwRUM7R0VPUkdJQU4gTEVUVEVSIENJTDtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIENJTDs7OzsKKzEwRUQ7R0VPUkdJQU4gTEVUVEVSIENIQVI7TGw7MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBDSEFSOzs7OworMTBFRTtHRU9SR0lBTiBMRVRURVIgWEFOO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgWEFOOzs7OworMTBFRjtHRU9SR0lBTiBMRVRURVIgSkhBTjtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEpIQU47Ozs7CisxMEYwO0dFT1JHSUFOIExFVFRFUiBIQUU7TGw7MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBIQUU7Ozs7CisxMEYxO0dFT1JHSUFOIExFVFRFUiBIRTtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEhFOzs7OworMTBGMjtHRU9SR0lBTiBMRVRURVIgSElFO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgSElFOzs7OworMTBGMztHRU9SR0lBTiBMRVRURVIgV0U7TGw7MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBXRTs7OzsKKzEwRjQ7R0VPUkdJQU4gTEVUVEVSIEhBUjtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEhBUjs7OzsKKzEwRjU7R0VPUkdJQU4gTEVUVEVSIEhPRTtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEhPRTs7OzsKKzEwRjY7R0VPUkdJQU4gTEVUVEVSIEZJO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgRkk7Ozs7CisxMEZCO0dFT1JHSUFOIFBBUkFHUkFQSCBTRVBBUkFUT1I7UG87MDtMOzs7OztOOzs7OzsKKzExMDA7SEFOR1VMIENIT1NFT05HIEtJWUVPSztMbzswO0w7Ozs7O047Ozs7OworMTEwMTtIQU5HVUwgQ0hPU0VPTkcgU1NBTkdLSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExMDAgMTEwMDs7OztOOzs7OzsKKzExMDI7SEFOR1VMIENIT1NFT05HIE5JRVVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTAzO0hBTkdVTCBDSE9TRU9ORyBUSUtFVVQ7TG87MDtMOzs7OztOOzs7OzsKKzExMDQ7SEFOR1VMIENIT1NFT05HIFNTQU5HVElLRVVUO0xvOzA7TDs8Y29tcGF0PiAxMTAzIDExMDM7Ozs7Tjs7Ozs7CisxMTA1O0hBTkdVTCBDSE9TRU9ORyBSSUVVTDtMbzswO0w7Ozs7O047Ozs7OworMTEwNjtIQU5HVUwgQ0hPU0VPTkcgTUlFVU07TG87MDtMOzs7OztOOzs7OzsKKzExMDc7SEFOR1VMIENIT1NFT05HIFBJRVVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTA4O0hBTkdVTCBDSE9TRU9ORyBTU0FOR1BJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMTA3IDExMDc7Ozs7Tjs7Ozs7CisxMTA5O0hBTkdVTCBDSE9TRU9ORyBTSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTBBO0hBTkdVTCBDSE9TRU9ORyBTU0FOR1NJT1M7TG87MDtMOzxjb21wYXQ+IDExMDkgMTEwOTs7OztOOzs7OzsKKzExMEI7SEFOR1VMIENIT1NFT05HIElFVU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTBDO0hBTkdVTCBDSE9TRU9ORyBDSUVVQztMbzswO0w7Ozs7O047Ozs7OworMTEwRDtIQU5HVUwgQ0hPU0VPTkcgU1NBTkdDSUVVQztMbzswO0w7PGNvbXBhdD4gMTEwQyAxMTBDOzs7O047Ozs7OworMTEwRTtIQU5HVUwgQ0hPU0VPTkcgQ0hJRVVDSDtMbzswO0w7Ozs7O047Ozs7OworMTEwRjtIQU5HVUwgQ0hPU0VPTkcgS0hJRVVLSDtMbzswO0w7Ozs7O047Ozs7OworMTExMDtIQU5HVUwgQ0hPU0VPTkcgVEhJRVVUSDtMbzswO0w7Ozs7O047Ozs7OworMTExMTtIQU5HVUwgQ0hPU0VPTkcgUEhJRVVQSDtMbzswO0w7Ozs7O047Ozs7OworMTExMjtIQU5HVUwgQ0hPU0VPTkcgSElFVUg7TG87MDtMOzs7OztOOzs7OzsKKzExMTM7SEFOR1VMIENIT1NFT05HIE5JRVVOLUtJWUVPSztMbzswO0w7PGNvbXBhdD4gMTEwMiAxMTAwOzs7O047Ozs7OworMTExNDtIQU5HVUwgQ0hPU0VPTkcgU1NBTkdOSUVVTjtMbzswO0w7PGNvbXBhdD4gMTEwMiAxMTAyOzs7O047Ozs7OworMTExNTtIQU5HVUwgQ0hPU0VPTkcgTklFVU4tVElLRVVUO0xvOzA7TDs8Y29tcGF0PiAxMTAyIDExMDM7Ozs7Tjs7Ozs7CisxMTE2O0hBTkdVTCBDSE9TRU9ORyBOSUVVTi1QSUVVUDtMbzswO0w7PGNvbXBhdD4gMTEwMiAxMTA3Ozs7O047Ozs7OworMTExNztIQU5HVUwgQ0hPU0VPTkcgVElLRVVULUtJWUVPSztMbzswO0w7PGNvbXBhdD4gMTEwMyAxMTAwOzs7O047Ozs7OworMTExODtIQU5HVUwgQ0hPU0VPTkcgUklFVUwtTklFVU47TG87MDtMOzxjb21wYXQ+IDExMDUgMTEwMjs7OztOOzs7OzsKKzExMTk7SEFOR1VMIENIT1NFT05HIFNTQU5HUklFVUw7TG87MDtMOzxjb21wYXQ+IDExMDUgMTEwNTs7OztOOzs7OzsKKzExMUE7SEFOR1VMIENIT1NFT05HIFJJRVVMLUhJRVVIO0xvOzA7TDs8Y29tcGF0PiAxMTA1IDExMTI7Ozs7Tjs7Ozs7CisxMTFCO0hBTkdVTCBDSE9TRU9ORyBLQVBZRU9VTlJJRVVMO0xvOzA7TDs8Y29tcGF0PiAxMTA1IDExMEI7Ozs7Tjs7Ozs7CisxMTFDO0hBTkdVTCBDSE9TRU9ORyBNSUVVTS1QSUVVUDtMbzswO0w7PGNvbXBhdD4gMTEwNiAxMTA3Ozs7O047Ozs7OworMTExRDtIQU5HVUwgQ0hPU0VPTkcgS0FQWUVPVU5NSUVVTTtMbzswO0w7PGNvbXBhdD4gMTEwNiAxMTBCOzs7O047Ozs7OworMTExRTtIQU5HVUwgQ0hPU0VPTkcgUElFVVAtS0lZRU9LO0xvOzA7TDs8Y29tcGF0PiAxMTA3IDExMDA7Ozs7Tjs7Ozs7CisxMTFGO0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1OSUVVTjtMbzswO0w7PGNvbXBhdD4gMTEwNyAxMTAyOzs7O047Ozs7OworMTEyMDtIQU5HVUwgQ0hPU0VPTkcgUElFVVAtVElLRVVUO0xvOzA7TDs8Y29tcGF0PiAxMTA3IDExMDM7Ozs7Tjs7Ozs7CisxMTIxO0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMTA3IDExMDk7Ozs7Tjs7Ozs7CisxMTIyO0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1TSU9TLUtJWUVPSztMbzswO0w7PGNvbXBhdD4gMTEwNyAxMTA5IDExMDA7Ozs7Tjs7Ozs7CisxMTIzO0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1TSU9TLVRJS0VVVDtMbzswO0w7PGNvbXBhdD4gMTEwNyAxMTA5IDExMDM7Ozs7Tjs7Ozs7CisxMTI0O0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1TSU9TLVBJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMTA3IDExMDkgMTEwNzs7OztOOzs7OzsKKzExMjU7SEFOR1VMIENIT1NFT05HIFBJRVVQLVNTQU5HU0lPUztMbzswO0w7PGNvbXBhdD4gMTEwNyAxMTA5IDExMDk7Ozs7Tjs7Ozs7CisxMTI2O0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1TSU9TLUNJRVVDO0xvOzA7TDs8Y29tcGF0PiAxMTA3IDExMDkgMTEwQzs7OztOOzs7OzsKKzExMjc7SEFOR1VMIENIT1NFT05HIFBJRVVQLUNJRVVDO0xvOzA7TDs8Y29tcGF0PiAxMTA3IDExMEM7Ozs7Tjs7Ozs7CisxMTI4O0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1DSElFVUNIO0xvOzA7TDs8Y29tcGF0PiAxMTA3IDExMEU7Ozs7Tjs7Ozs7CisxMTI5O0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1USElFVVRIO0xvOzA7TDs8Y29tcGF0PiAxMTA3IDExMTA7Ozs7Tjs7Ozs7CisxMTJBO0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1QSElFVVBIO0xvOzA7TDs8Y29tcGF0PiAxMTA3IDExMTE7Ozs7Tjs7Ozs7CisxMTJCO0hBTkdVTCBDSE9TRU9ORyBLQVBZRU9VTlBJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMTA3IDExMEI7Ozs7Tjs7Ozs7CisxMTJDO0hBTkdVTCBDSE9TRU9ORyBLQVBZRU9VTlNTQU5HUElFVVA7TG87MDtMOzxjb21wYXQ+IDExMDcgMTEwNyAxMTBCOzs7O047Ozs7OworMTEyRDtIQU5HVUwgQ0hPU0VPTkcgU0lPUy1LSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExMDkgMTEwMDs7OztOOzs7OzsKKzExMkU7SEFOR1VMIENIT1NFT05HIFNJT1MtTklFVU47TG87MDtMOzxjb21wYXQ+IDExMDkgMTEwMjs7OztOOzs7OzsKKzExMkY7SEFOR1VMIENIT1NFT05HIFNJT1MtVElLRVVUO0xvOzA7TDs8Y29tcGF0PiAxMTA5IDExMDM7Ozs7Tjs7Ozs7CisxMTMwO0hBTkdVTCBDSE9TRU9ORyBTSU9TLVJJRVVMO0xvOzA7TDs8Y29tcGF0PiAxMTA5IDExMDU7Ozs7Tjs7Ozs7CisxMTMxO0hBTkdVTCBDSE9TRU9ORyBTSU9TLU1JRVVNO0xvOzA7TDs8Y29tcGF0PiAxMTA5IDExMDY7Ozs7Tjs7Ozs7CisxMTMyO0hBTkdVTCBDSE9TRU9ORyBTSU9TLVBJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMTA5IDExMDc7Ozs7Tjs7Ozs7CisxMTMzO0hBTkdVTCBDSE9TRU9ORyBTSU9TLVBJRVVQLUtJWUVPSztMbzswO0w7PGNvbXBhdD4gMTEwOSAxMTA3IDExMDA7Ozs7Tjs7Ozs7CisxMTM0O0hBTkdVTCBDSE9TRU9ORyBTSU9TLVNTQU5HU0lPUztMbzswO0w7PGNvbXBhdD4gMTEwOSAxMTA5IDExMDk7Ozs7Tjs7Ozs7CisxMTM1O0hBTkdVTCBDSE9TRU9ORyBTSU9TLUlFVU5HO0xvOzA7TDs8Y29tcGF0PiAxMTA5IDExMEI7Ozs7Tjs7Ozs7CisxMTM2O0hBTkdVTCBDSE9TRU9ORyBTSU9TLUNJRVVDO0xvOzA7TDs8Y29tcGF0PiAxMTA5IDExMEM7Ozs7Tjs7Ozs7CisxMTM3O0hBTkdVTCBDSE9TRU9ORyBTSU9TLUNISUVVQ0g7TG87MDtMOzxjb21wYXQ+IDExMDkgMTEwRTs7OztOOzs7OzsKKzExMzg7SEFOR1VMIENIT1NFT05HIFNJT1MtS0hJRVVLSDtMbzswO0w7PGNvbXBhdD4gMTEwOSAxMTBGOzs7O047Ozs7OworMTEzOTtIQU5HVUwgQ0hPU0VPTkcgU0lPUy1USElFVVRIO0xvOzA7TDs8Y29tcGF0PiAxMTA5IDExMTA7Ozs7Tjs7Ozs7CisxMTNBO0hBTkdVTCBDSE9TRU9ORyBTSU9TLVBISUVVUEg7TG87MDtMOzxjb21wYXQ+IDExMDkgMTExMTs7OztOOzs7OzsKKzExM0I7SEFOR1VMIENIT1NFT05HIFNJT1MtSElFVUg7TG87MDtMOzxjb21wYXQ+IDExMDkgMTExMjs7OztOOzs7OzsKKzExM0M7SEFOR1VMIENIT1NFT05HIENISVRVRVVNU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTEzRDtIQU5HVUwgQ0hPU0VPTkcgQ0hJVFVFVU1TU0FOR1NJT1M7TG87MDtMOzxjb21wYXQ+IDExM0MgMTEzQzs7OztOOzs7OzsKKzExM0U7SEFOR1VMIENIT1NFT05HIENFT05HQ0hJRVVNU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTEzRjtIQU5HVUwgQ0hPU0VPTkcgQ0VPTkdDSElFVU1TU0FOR1NJT1M7TG87MDtMOzxjb21wYXQ+IDExM0UgMTEzRTs7OztOOzs7OzsKKzExNDA7SEFOR1VMIENIT1NFT05HIFBBTlNJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExNDE7SEFOR1VMIENIT1NFT05HIElFVU5HLUtJWUVPSztMbzswO0w7PGNvbXBhdD4gMTEwQiAxMTAwOzs7O047Ozs7OworMTE0MjtIQU5HVUwgQ0hPU0VPTkcgSUVVTkctVElLRVVUO0xvOzA7TDs8Y29tcGF0PiAxMTBCIDExMDM7Ozs7Tjs7Ozs7CisxMTQzO0hBTkdVTCBDSE9TRU9ORyBJRVVORy1NSUVVTTtMbzswO0w7PGNvbXBhdD4gMTEwQiAxMTA2Ozs7O047Ozs7OworMTE0NDtIQU5HVUwgQ0hPU0VPTkcgSUVVTkctUElFVVA7TG87MDtMOzxjb21wYXQ+IDExMEIgMTEwNzs7OztOOzs7OzsKKzExNDU7SEFOR1VMIENIT1NFT05HIElFVU5HLVNJT1M7TG87MDtMOzxjb21wYXQ+IDExMEIgMTEwOTs7OztOOzs7OzsKKzExNDY7SEFOR1VMIENIT1NFT05HIElFVU5HLVBBTlNJT1M7TG87MDtMOzxjb21wYXQ+IDExMEIgMTE0MDs7OztOOzs7OzsKKzExNDc7SEFOR1VMIENIT1NFT05HIFNTQU5HSUVVTkc7TG87MDtMOzxjb21wYXQ+IDExMEIgMTEwQjs7OztOOzs7OzsKKzExNDg7SEFOR1VMIENIT1NFT05HIElFVU5HLUNJRVVDO0xvOzA7TDs8Y29tcGF0PiAxMTBCIDExMEM7Ozs7Tjs7Ozs7CisxMTQ5O0hBTkdVTCBDSE9TRU9ORyBJRVVORy1DSElFVUNIO0xvOzA7TDs8Y29tcGF0PiAxMTBCIDExMEU7Ozs7Tjs7Ozs7CisxMTRBO0hBTkdVTCBDSE9TRU9ORyBJRVVORy1USElFVVRIO0xvOzA7TDs8Y29tcGF0PiAxMTBCIDExMTA7Ozs7Tjs7Ozs7CisxMTRCO0hBTkdVTCBDSE9TRU9ORyBJRVVORy1QSElFVVBIO0xvOzA7TDs8Y29tcGF0PiAxMTBCIDExMTE7Ozs7Tjs7Ozs7CisxMTRDO0hBTkdVTCBDSE9TRU9ORyBZRVNJRVVORztMbzswO0w7Ozs7O047Ozs7OworMTE0RDtIQU5HVUwgQ0hPU0VPTkcgQ0lFVUMtSUVVTkc7TG87MDtMOzxjb21wYXQ+IDExMEMgMTEwQjs7OztOOzs7OzsKKzExNEU7SEFOR1VMIENIT1NFT05HIENISVRVRVVNQ0lFVUM7TG87MDtMOzs7OztOOzs7OzsKKzExNEY7SEFOR1VMIENIT1NFT05HIENISVRVRVVNU1NBTkdDSUVVQztMbzswO0w7PGNvbXBhdD4gMTE0RSAxMTRFOzs7O047Ozs7OworMTE1MDtIQU5HVUwgQ0hPU0VPTkcgQ0VPTkdDSElFVU1DSUVVQztMbzswO0w7Ozs7O047Ozs7OworMTE1MTtIQU5HVUwgQ0hPU0VPTkcgQ0VPTkdDSElFVU1TU0FOR0NJRVVDO0xvOzA7TDs8Y29tcGF0PiAxMTUwIDExNTA7Ozs7Tjs7Ozs7CisxMTUyO0hBTkdVTCBDSE9TRU9ORyBDSElFVUNILUtISUVVS0g7TG87MDtMOzxjb21wYXQ+IDExMEUgMTEwRjs7OztOOzs7OzsKKzExNTM7SEFOR1VMIENIT1NFT05HIENISUVVQ0gtSElFVUg7TG87MDtMOzxjb21wYXQ+IDExMEUgMTExMjs7OztOOzs7OzsKKzExNTQ7SEFOR1VMIENIT1NFT05HIENISVRVRVVNQ0hJRVVDSDtMbzswO0w7Ozs7O047Ozs7OworMTE1NTtIQU5HVUwgQ0hPU0VPTkcgQ0VPTkdDSElFVU1DSElFVUNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTU2O0hBTkdVTCBDSE9TRU9ORyBQSElFVVBILVBJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMTExIDExMDc7Ozs7Tjs7Ozs7CisxMTU3O0hBTkdVTCBDSE9TRU9ORyBLQVBZRU9VTlBISUVVUEg7TG87MDtMOzxjb21wYXQ+IDExMTEgMTEwQjs7OztOOzs7OzsKKzExNTg7SEFOR1VMIENIT1NFT05HIFNTQU5HSElFVUg7TG87MDtMOzxjb21wYXQ+IDExMTIgMTExMjs7OztOOzs7OzsKKzExNTk7SEFOR1VMIENIT1NFT05HIFlFT1JJTkhJRVVIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTVGO0hBTkdVTCBDSE9TRU9ORyBGSUxMRVI7TG87MDtMOzs7OztOOzs7OzsKKzExNjA7SEFOR1VMIEpVTkdTRU9ORyBGSUxMRVI7TG87MDtMOzs7OztOOzs7OzsKKzExNjE7SEFOR1VMIEpVTkdTRU9ORyBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTYyO0hBTkdVTCBKVU5HU0VPTkcgQUU7TG87MDtMOzxjb21wYXQ+IDExNjEgMTE3NTs7OztOOzs7OzsKKzExNjM7SEFOR1VMIEpVTkdTRU9ORyBZQTtMbzswO0w7Ozs7O047Ozs7OworMTE2NDtIQU5HVUwgSlVOR1NFT05HIFlBRTtMbzswO0w7PGNvbXBhdD4gMTE2MyAxMTc1Ozs7O047Ozs7OworMTE2NTtIQU5HVUwgSlVOR1NFT05HIEVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTY2O0hBTkdVTCBKVU5HU0VPTkcgRTtMbzswO0w7PGNvbXBhdD4gMTE2NSAxMTc1Ozs7O047Ozs7OworMTE2NztIQU5HVUwgSlVOR1NFT05HIFlFTztMbzswO0w7Ozs7O047Ozs7OworMTE2ODtIQU5HVUwgSlVOR1NFT05HIFlFO0xvOzA7TDs8Y29tcGF0PiAxMTY3IDExNzU7Ozs7Tjs7Ozs7CisxMTY5O0hBTkdVTCBKVU5HU0VPTkcgTztMbzswO0w7Ozs7O047Ozs7OworMTE2QTtIQU5HVUwgSlVOR1NFT05HIFdBO0xvOzA7TDs8Y29tcGF0PiAxMTY5IDExNjE7Ozs7Tjs7Ozs7CisxMTZCO0hBTkdVTCBKVU5HU0VPTkcgV0FFO0xvOzA7TDs8Y29tcGF0PiAxMTY5IDExNjEgMTE3NTs7OztOOzs7OzsKKzExNkM7SEFOR1VMIEpVTkdTRU9ORyBPRTtMbzswO0w7PGNvbXBhdD4gMTE2OSAxMTc1Ozs7O047Ozs7OworMTE2RDtIQU5HVUwgSlVOR1NFT05HIFlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTZFO0hBTkdVTCBKVU5HU0VPTkcgVTtMbzswO0w7Ozs7O047Ozs7OworMTE2RjtIQU5HVUwgSlVOR1NFT05HIFdFTztMbzswO0w7PGNvbXBhdD4gMTE2RSAxMTY1Ozs7O047Ozs7OworMTE3MDtIQU5HVUwgSlVOR1NFT05HIFdFO0xvOzA7TDs8Y29tcGF0PiAxMTZFIDExNjUgMTE3NTs7OztOOzs7OzsKKzExNzE7SEFOR1VMIEpVTkdTRU9ORyBXSTtMbzswO0w7PGNvbXBhdD4gMTE2RSAxMTc1Ozs7O047Ozs7OworMTE3MjtIQU5HVUwgSlVOR1NFT05HIFlVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTczO0hBTkdVTCBKVU5HU0VPTkcgRVU7TG87MDtMOzs7OztOOzs7OzsKKzExNzQ7SEFOR1VMIEpVTkdTRU9ORyBZSTtMbzswO0w7PGNvbXBhdD4gMTE3MyAxMTc1Ozs7O047Ozs7OworMTE3NTtIQU5HVUwgSlVOR1NFT05HIEk7TG87MDtMOzs7OztOOzs7OzsKKzExNzY7SEFOR1VMIEpVTkdTRU9ORyBBLU87TG87MDtMOzxjb21wYXQ+IDExNjEgMTE2OTs7OztOOzs7OzsKKzExNzc7SEFOR1VMIEpVTkdTRU9ORyBBLVU7TG87MDtMOzxjb21wYXQ+IDExNjEgMTE2RTs7OztOOzs7OzsKKzExNzg7SEFOR1VMIEpVTkdTRU9ORyBZQS1PO0xvOzA7TDs8Y29tcGF0PiAxMTYzIDExNjk7Ozs7Tjs7Ozs7CisxMTc5O0hBTkdVTCBKVU5HU0VPTkcgWUEtWU87TG87MDtMOzxjb21wYXQ+IDExNjMgMTE2RDs7OztOOzs7OzsKKzExN0E7SEFOR1VMIEpVTkdTRU9ORyBFTy1PO0xvOzA7TDs8Y29tcGF0PiAxMTY1IDExNjk7Ozs7Tjs7Ozs7CisxMTdCO0hBTkdVTCBKVU5HU0VPTkcgRU8tVTtMbzswO0w7PGNvbXBhdD4gMTE2NSAxMTZFOzs7O047Ozs7OworMTE3QztIQU5HVUwgSlVOR1NFT05HIEVPLUVVO0xvOzA7TDs8Y29tcGF0PiAxMTY1IDExNzM7Ozs7Tjs7Ozs7CisxMTdEO0hBTkdVTCBKVU5HU0VPTkcgWUVPLU87TG87MDtMOzxjb21wYXQ+IDExNjcgMTE2OTs7OztOOzs7OzsKKzExN0U7SEFOR1VMIEpVTkdTRU9ORyBZRU8tVTtMbzswO0w7PGNvbXBhdD4gMTE2NyAxMTZFOzs7O047Ozs7OworMTE3RjtIQU5HVUwgSlVOR1NFT05HIE8tRU87TG87MDtMOzxjb21wYXQ+IDExNjkgMTE2NTs7OztOOzs7OzsKKzExODA7SEFOR1VMIEpVTkdTRU9ORyBPLUU7TG87MDtMOzxjb21wYXQ+IDExNjkgMTE2Njs7OztOOzs7OzsKKzExODE7SEFOR1VMIEpVTkdTRU9ORyBPLVlFO0xvOzA7TDs8Y29tcGF0PiAxMTY5IDExNjg7Ozs7Tjs7Ozs7CisxMTgyO0hBTkdVTCBKVU5HU0VPTkcgTy1PO0xvOzA7TDs8Y29tcGF0PiAxMTY5IDExNjk7Ozs7Tjs7Ozs7CisxMTgzO0hBTkdVTCBKVU5HU0VPTkcgTy1VO0xvOzA7TDs8Y29tcGF0PiAxMTY5IDExNkU7Ozs7Tjs7Ozs7CisxMTg0O0hBTkdVTCBKVU5HU0VPTkcgWU8tWUE7TG87MDtMOzxjb21wYXQ+IDExNkQgMTE2Mzs7OztOOzs7OzsKKzExODU7SEFOR1VMIEpVTkdTRU9ORyBZTy1ZQUU7TG87MDtMOzxjb21wYXQ+IDExNkQgMTE2NDs7OztOOzs7OzsKKzExODY7SEFOR1VMIEpVTkdTRU9ORyBZTy1ZRU87TG87MDtMOzxjb21wYXQ+IDExNkQgMTE2Nzs7OztOOzs7OzsKKzExODc7SEFOR1VMIEpVTkdTRU9ORyBZTy1PO0xvOzA7TDs8Y29tcGF0PiAxMTZEIDExNjk7Ozs7Tjs7Ozs7CisxMTg4O0hBTkdVTCBKVU5HU0VPTkcgWU8tSTtMbzswO0w7PGNvbXBhdD4gMTE2RCAxMTc1Ozs7O047Ozs7OworMTE4OTtIQU5HVUwgSlVOR1NFT05HIFUtQTtMbzswO0w7PGNvbXBhdD4gMTE2RSAxMTYxOzs7O047Ozs7OworMTE4QTtIQU5HVUwgSlVOR1NFT05HIFUtQUU7TG87MDtMOzxjb21wYXQ+IDExNkUgMTE2Mjs7OztOOzs7OzsKKzExOEI7SEFOR1VMIEpVTkdTRU9ORyBVLUVPLUVVO0xvOzA7TDs8Y29tcGF0PiAxMTZFIDExNjUgMTE3Mzs7OztOOzs7OzsKKzExOEM7SEFOR1VMIEpVTkdTRU9ORyBVLVlFO0xvOzA7TDs8Y29tcGF0PiAxMTZFIDExNjg7Ozs7Tjs7Ozs7CisxMThEO0hBTkdVTCBKVU5HU0VPTkcgVS1VO0xvOzA7TDs8Y29tcGF0PiAxMTZFIDExNkU7Ozs7Tjs7Ozs7CisxMThFO0hBTkdVTCBKVU5HU0VPTkcgWVUtQTtMbzswO0w7PGNvbXBhdD4gMTE3MiAxMTYxOzs7O047Ozs7OworMTE4RjtIQU5HVUwgSlVOR1NFT05HIFlVLUVPO0xvOzA7TDs8Y29tcGF0PiAxMTcyIDExNjU7Ozs7Tjs7Ozs7CisxMTkwO0hBTkdVTCBKVU5HU0VPTkcgWVUtRTtMbzswO0w7PGNvbXBhdD4gMTE3MiAxMTY2Ozs7O047Ozs7OworMTE5MTtIQU5HVUwgSlVOR1NFT05HIFlVLVlFTztMbzswO0w7PGNvbXBhdD4gMTE3MiAxMTY3Ozs7O047Ozs7OworMTE5MjtIQU5HVUwgSlVOR1NFT05HIFlVLVlFO0xvOzA7TDs8Y29tcGF0PiAxMTcyIDExNjg7Ozs7Tjs7Ozs7CisxMTkzO0hBTkdVTCBKVU5HU0VPTkcgWVUtVTtMbzswO0w7PGNvbXBhdD4gMTE3MiAxMTZFOzs7O047Ozs7OworMTE5NDtIQU5HVUwgSlVOR1NFT05HIFlVLUk7TG87MDtMOzxjb21wYXQ+IDExNzIgMTE3NTs7OztOOzs7OzsKKzExOTU7SEFOR1VMIEpVTkdTRU9ORyBFVS1VO0xvOzA7TDs8Y29tcGF0PiAxMTczIDExNkU7Ozs7Tjs7Ozs7CisxMTk2O0hBTkdVTCBKVU5HU0VPTkcgRVUtRVU7TG87MDtMOzxjb21wYXQ+IDExNzMgMTE3Mzs7OztOOzs7OzsKKzExOTc7SEFOR1VMIEpVTkdTRU9ORyBZSS1VO0xvOzA7TDs8Y29tcGF0PiAxMTc0IDExNkU7Ozs7Tjs7Ozs7CisxMTk4O0hBTkdVTCBKVU5HU0VPTkcgSS1BO0xvOzA7TDs8Y29tcGF0PiAxMTc1IDExNjE7Ozs7Tjs7Ozs7CisxMTk5O0hBTkdVTCBKVU5HU0VPTkcgSS1ZQTtMbzswO0w7PGNvbXBhdD4gMTE3NSAxMTYzOzs7O047Ozs7OworMTE5QTtIQU5HVUwgSlVOR1NFT05HIEktTztMbzswO0w7PGNvbXBhdD4gMTE3NSAxMTY5Ozs7O047Ozs7OworMTE5QjtIQU5HVUwgSlVOR1NFT05HIEktVTtMbzswO0w7PGNvbXBhdD4gMTE3NSAxMTZFOzs7O047Ozs7OworMTE5QztIQU5HVUwgSlVOR1NFT05HIEktRVU7TG87MDtMOzxjb21wYXQ+IDExNzUgMTE3Mzs7OztOOzs7OzsKKzExOUQ7SEFOR1VMIEpVTkdTRU9ORyBJLUFSQUVBO0xvOzA7TDs8Y29tcGF0PiAxMTc1IDExOUU7Ozs7Tjs7Ozs7CisxMTlFO0hBTkdVTCBKVU5HU0VPTkcgQVJBRUE7TG87MDtMOzs7OztOOzs7OzsKKzExOUY7SEFOR1VMIEpVTkdTRU9ORyBBUkFFQS1FTztMbzswO0w7PGNvbXBhdD4gMTE5RSAxMTY1Ozs7O047Ozs7OworMTFBMDtIQU5HVUwgSlVOR1NFT05HIEFSQUVBLVU7TG87MDtMOzxjb21wYXQ+IDExOUUgMTE2RTs7OztOOzs7OzsKKzExQTE7SEFOR1VMIEpVTkdTRU9ORyBBUkFFQS1JO0xvOzA7TDs8Y29tcGF0PiAxMTlFIDExNzU7Ozs7Tjs7Ozs7CisxMUEyO0hBTkdVTCBKVU5HU0VPTkcgU1NBTkdBUkFFQTtMbzswO0w7PGNvbXBhdD4gMTE5RSAxMTlFOzs7O047Ozs7OworMTFBODtIQU5HVUwgSk9OR1NFT05HIEtJWUVPSztMbzswO0w7Ozs7O047Ozs7OworMTFBOTtIQU5HVUwgSk9OR1NFT05HIFNTQU5HS0lZRU9LO0xvOzA7TDs8Y29tcGF0PiAxMUE4IDExQTg7Ozs7Tjs7Ozs7CisxMUFBO0hBTkdVTCBKT05HU0VPTkcgS0lZRU9LLVNJT1M7TG87MDtMOzxjb21wYXQ+IDExQTggMTFCQTs7OztOOzs7OzsKKzExQUI7SEFOR1VMIEpPTkdTRU9ORyBOSUVVTjtMbzswO0w7Ozs7O047Ozs7OworMTFBQztIQU5HVUwgSk9OR1NFT05HIE5JRVVOLUNJRVVDO0xvOzA7TDs8Y29tcGF0PiAxMUFCIDExQkQ7Ozs7Tjs7Ozs7CisxMUFEO0hBTkdVTCBKT05HU0VPTkcgTklFVU4tSElFVUg7TG87MDtMOzxjb21wYXQ+IDExQUIgMTFDMjs7OztOOzs7OzsKKzExQUU7SEFOR1VMIEpPTkdTRU9ORyBUSUtFVVQ7TG87MDtMOzs7OztOOzs7OzsKKzExQUY7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTDtMbzswO0w7Ozs7O047Ozs7OworMTFCMDtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLUtJWUVPSztMbzswO0w7PGNvbXBhdD4gMTFBRiAxMUE4Ozs7O047Ozs7OworMTFCMTtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLU1JRVVNO0xvOzA7TDs8Y29tcGF0PiAxMUFGIDExQjc7Ozs7Tjs7Ozs7CisxMUIyO0hBTkdVTCBKT05HU0VPTkcgUklFVUwtUElFVVA7TG87MDtMOzxjb21wYXQ+IDExQUYgMTFCODs7OztOOzs7OzsKKzExQjM7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUFGIDExQkE7Ozs7Tjs7Ozs7CisxMUI0O0hBTkdVTCBKT05HU0VPTkcgUklFVUwtVEhJRVVUSDtMbzswO0w7PGNvbXBhdD4gMTFBRiAxMUMwOzs7O047Ozs7OworMTFCNTtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLVBISUVVUEg7TG87MDtMOzxjb21wYXQ+IDExQUYgMTFDMTs7OztOOzs7OzsKKzExQjY7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1ISUVVSDtMbzswO0w7PGNvbXBhdD4gMTFBRiAxMUMyOzs7O047Ozs7OworMTFCNztIQU5HVUwgSk9OR1NFT05HIE1JRVVNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUI4O0hBTkdVTCBKT05HU0VPTkcgUElFVVA7TG87MDtMOzs7OztOOzs7OzsKKzExQjk7SEFOR1VMIEpPTkdTRU9ORyBQSUVVUC1TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUI4IDExQkE7Ozs7Tjs7Ozs7CisxMUJBO0hBTkdVTCBKT05HU0VPTkcgU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTFCQjtIQU5HVUwgSk9OR1NFT05HIFNTQU5HU0lPUztMbzswO0w7PGNvbXBhdD4gMTFCQSAxMUJBOzs7O047Ozs7OworMTFCQztIQU5HVUwgSk9OR1NFT05HIElFVU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUJEO0hBTkdVTCBKT05HU0VPTkcgQ0lFVUM7TG87MDtMOzs7OztOOzs7OzsKKzExQkU7SEFOR1VMIEpPTkdTRU9ORyBDSElFVUNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUJGO0hBTkdVTCBKT05HU0VPTkcgS0hJRVVLSDtMbzswO0w7Ozs7O047Ozs7OworMTFDMDtIQU5HVUwgSk9OR1NFT05HIFRISUVVVEg7TG87MDtMOzs7OztOOzs7OzsKKzExQzE7SEFOR1VMIEpPTkdTRU9ORyBQSElFVVBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUMyO0hBTkdVTCBKT05HU0VPTkcgSElFVUg7TG87MDtMOzs7OztOOzs7OzsKKzExQzM7SEFOR1VMIEpPTkdTRU9ORyBLSVlFT0stUklFVUw7TG87MDtMOzxjb21wYXQ+IDExQTggMTFBRjs7OztOOzs7OzsKKzExQzQ7SEFOR1VMIEpPTkdTRU9ORyBLSVlFT0stU0lPUy1LSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExQTggMTFCQSAxMUE4Ozs7O047Ozs7OworMTFDNTtIQU5HVUwgSk9OR1NFT05HIE5JRVVOLUtJWUVPSztMbzswO0w7PGNvbXBhdD4gMTFBQiAxMUE4Ozs7O047Ozs7OworMTFDNjtIQU5HVUwgSk9OR1NFT05HIE5JRVVOLVRJS0VVVDtMbzswO0w7PGNvbXBhdD4gMTFBQiAxMUFFOzs7O047Ozs7OworMTFDNztIQU5HVUwgSk9OR1NFT05HIE5JRVVOLVNJT1M7TG87MDtMOzxjb21wYXQ+IDExQUIgMTFCQTs7OztOOzs7OzsKKzExQzg7SEFOR1VMIEpPTkdTRU9ORyBOSUVVTi1QQU5TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUFCIDExRUI7Ozs7Tjs7Ozs7CisxMUM5O0hBTkdVTCBKT05HU0VPTkcgTklFVU4tVEhJRVVUSDtMbzswO0w7PGNvbXBhdD4gMTFBQiAxMUMwOzs7O047Ozs7OworMTFDQTtIQU5HVUwgSk9OR1NFT05HIFRJS0VVVC1LSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExQUUgMTFBODs7OztOOzs7OzsKKzExQ0I7SEFOR1VMIEpPTkdTRU9ORyBUSUtFVVQtUklFVUw7TG87MDtMOzxjb21wYXQ+IDExQUUgMTFBRjs7OztOOzs7OzsKKzExQ0M7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1LSVlFT0stU0lPUztMbzswO0w7PGNvbXBhdD4gMTFBRiAxMUE4IDExQkE7Ozs7Tjs7Ozs7CisxMUNEO0hBTkdVTCBKT05HU0VPTkcgUklFVUwtTklFVU47TG87MDtMOzxjb21wYXQ+IDExQUYgMTFBQjs7OztOOzs7OzsKKzExQ0U7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1USUtFVVQ7TG87MDtMOzxjb21wYXQ+IDExQUYgMTFBRTs7OztOOzs7OzsKKzExQ0Y7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1USUtFVVQtSElFVUg7TG87MDtMOzxjb21wYXQ+IDExQUYgMTFBRSAxMUMyOzs7O047Ozs7OworMTFEMDtIQU5HVUwgSk9OR1NFT05HIFNTQU5HUklFVUw7TG87MDtMOzxjb21wYXQ+IDExQUYgMTFBRjs7OztOOzs7OzsKKzExRDE7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1NSUVVTS1LSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExQUYgMTFCNyAxMUE4Ozs7O047Ozs7OworMTFEMjtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLU1JRVVNLVNJT1M7TG87MDtMOzxjb21wYXQ+IDExQUYgMTFCNyAxMUJBOzs7O047Ozs7OworMTFEMztIQU5HVUwgSk9OR1NFT05HIFJJRVVMLVBJRVVQLVNJT1M7TG87MDtMOzxjb21wYXQ+IDExQUYgMTFCOCAxMUJBOzs7O047Ozs7OworMTFENDtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLVBJRVVQLUhJRVVIO0xvOzA7TDs8Y29tcGF0PiAxMUFGIDExQjggMTFDMjs7OztOOzs7OzsKKzExRDU7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1LQVBZRU9VTlBJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMUFGIDExQjggMTFCQzs7OztOOzs7OzsKKzExRDY7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1TU0FOR1NJT1M7TG87MDtMOzxjb21wYXQ+IDExQUYgMTFCQSAxMUJBOzs7O047Ozs7OworMTFENztIQU5HVUwgSk9OR1NFT05HIFJJRVVMLVBBTlNJT1M7TG87MDtMOzxjb21wYXQ+IDExQUYgMTFFQjs7OztOOzs7OzsKKzExRDg7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1LSElFVUtIO0xvOzA7TDs8Y29tcGF0PiAxMUFGIDExQkY7Ozs7Tjs7Ozs7CisxMUQ5O0hBTkdVTCBKT05HU0VPTkcgUklFVUwtWUVPUklOSElFVUg7TG87MDtMOzxjb21wYXQ+IDExQUYgMTFGOTs7OztOOzs7OzsKKzExREE7SEFOR1VMIEpPTkdTRU9ORyBNSUVVTS1LSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExQjcgMTFBODs7OztOOzs7OzsKKzExREI7SEFOR1VMIEpPTkdTRU9ORyBNSUVVTS1SSUVVTDtMbzswO0w7PGNvbXBhdD4gMTFCNyAxMUFGOzs7O047Ozs7OworMTFEQztIQU5HVUwgSk9OR1NFT05HIE1JRVVNLVBJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMUI3IDExQjg7Ozs7Tjs7Ozs7CisxMUREO0hBTkdVTCBKT05HU0VPTkcgTUlFVU0tU0lPUztMbzswO0w7PGNvbXBhdD4gMTFCNyAxMUJBOzs7O047Ozs7OworMTFERTtIQU5HVUwgSk9OR1NFT05HIE1JRVVNLVNTQU5HU0lPUztMbzswO0w7PGNvbXBhdD4gMTFCNyAxMUJBIDExQkE7Ozs7Tjs7Ozs7CisxMURGO0hBTkdVTCBKT05HU0VPTkcgTUlFVU0tUEFOU0lPUztMbzswO0w7PGNvbXBhdD4gMTFCNyAxMUVCOzs7O047Ozs7OworMTFFMDtIQU5HVUwgSk9OR1NFT05HIE1JRVVNLUNISUVVQ0g7TG87MDtMOzxjb21wYXQ+IDExQjcgMTFCRTs7OztOOzs7OzsKKzExRTE7SEFOR1VMIEpPTkdTRU9ORyBNSUVVTS1ISUVVSDtMbzswO0w7PGNvbXBhdD4gMTFCNyAxMUMyOzs7O047Ozs7OworMTFFMjtIQU5HVUwgSk9OR1NFT05HIEtBUFlFT1VOTUlFVU07TG87MDtMOzxjb21wYXQ+IDExQjcgMTFCQzs7OztOOzs7OzsKKzExRTM7SEFOR1VMIEpPTkdTRU9ORyBQSUVVUC1SSUVVTDtMbzswO0w7PGNvbXBhdD4gMTFCOCAxMUFGOzs7O047Ozs7OworMTFFNDtIQU5HVUwgSk9OR1NFT05HIFBJRVVQLVBISUVVUEg7TG87MDtMOzxjb21wYXQ+IDExQjggMTFDMTs7OztOOzs7OzsKKzExRTU7SEFOR1VMIEpPTkdTRU9ORyBQSUVVUC1ISUVVSDtMbzswO0w7PGNvbXBhdD4gMTFCOCAxMUMyOzs7O047Ozs7OworMTFFNjtIQU5HVUwgSk9OR1NFT05HIEtBUFlFT1VOUElFVVA7TG87MDtMOzxjb21wYXQ+IDExQjggMTFCQzs7OztOOzs7OzsKKzExRTc7SEFOR1VMIEpPTkdTRU9ORyBTSU9TLUtJWUVPSztMbzswO0w7PGNvbXBhdD4gMTFCQSAxMUE4Ozs7O047Ozs7OworMTFFODtIQU5HVUwgSk9OR1NFT05HIFNJT1MtVElLRVVUO0xvOzA7TDs8Y29tcGF0PiAxMUJBIDExQUU7Ozs7Tjs7Ozs7CisxMUU5O0hBTkdVTCBKT05HU0VPTkcgU0lPUy1SSUVVTDtMbzswO0w7PGNvbXBhdD4gMTFCQSAxMUFGOzs7O047Ozs7OworMTFFQTtIQU5HVUwgSk9OR1NFT05HIFNJT1MtUElFVVA7TG87MDtMOzxjb21wYXQ+IDExQkEgMTFCODs7OztOOzs7OzsKKzExRUI7SEFOR1VMIEpPTkdTRU9ORyBQQU5TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUVDO0hBTkdVTCBKT05HU0VPTkcgSUVVTkctS0lZRU9LO0xvOzA7TDs8Y29tcGF0PiAxMUJDIDExQTg7Ozs7Tjs7Ozs7CisxMUVEO0hBTkdVTCBKT05HU0VPTkcgSUVVTkctU1NBTkdLSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExQkMgMTFBOCAxMUE4Ozs7O047Ozs7OworMTFFRTtIQU5HVUwgSk9OR1NFT05HIFNTQU5HSUVVTkc7TG87MDtMOzxjb21wYXQ+IDExQkMgMTFCQzs7OztOOzs7OzsKKzExRUY7SEFOR1VMIEpPTkdTRU9ORyBJRVVORy1LSElFVUtIO0xvOzA7TDs8Y29tcGF0PiAxMUJDIDExQkY7Ozs7Tjs7Ozs7CisxMUYwO0hBTkdVTCBKT05HU0VPTkcgWUVTSUVVTkc7TG87MDtMOzs7OztOOzs7OzsKKzExRjE7SEFOR1VMIEpPTkdTRU9ORyBZRVNJRVVORy1TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUYwIDExQkE7Ozs7Tjs7Ozs7CisxMUYyO0hBTkdVTCBKT05HU0VPTkcgWUVTSUVVTkctUEFOU0lPUztMbzswO0w7PGNvbXBhdD4gMTFGMCAxMUVCOzs7O047Ozs7OworMTFGMztIQU5HVUwgSk9OR1NFT05HIFBISUVVUEgtUElFVVA7TG87MDtMOzxjb21wYXQ+IDExQzEgMTFCODs7OztOOzs7OzsKKzExRjQ7SEFOR1VMIEpPTkdTRU9ORyBLQVBZRU9VTlBISUVVUEg7TG87MDtMOzxjb21wYXQ+IDExQzEgMTFCQzs7OztOOzs7OzsKKzExRjU7SEFOR1VMIEpPTkdTRU9ORyBISUVVSC1OSUVVTjtMbzswO0w7PGNvbXBhdD4gMTFDMiAxMUFCOzs7O047Ozs7OworMTFGNjtIQU5HVUwgSk9OR1NFT05HIEhJRVVILVJJRVVMO0xvOzA7TDs8Y29tcGF0PiAxMUMyIDExQUY7Ozs7Tjs7Ozs7CisxMUY3O0hBTkdVTCBKT05HU0VPTkcgSElFVUgtTUlFVU07TG87MDtMOzxjb21wYXQ+IDExQzIgMTFCNzs7OztOOzs7OzsKKzExRjg7SEFOR1VMIEpPTkdTRU9ORyBISUVVSC1QSUVVUDtMbzswO0w7PGNvbXBhdD4gMTFDMiAxMUI4Ozs7O047Ozs7OworMTFGOTtIQU5HVUwgSk9OR1NFT05HIFlFT1JJTkhJRVVIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxRTAwO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBSSU5HIEJFTE9XO0x1OzA7TDswMDQxIDAzMjU7Ozs7Tjs7OzsxRTAxOworMUUwMTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIFJJTkcgQkVMT1c7TGw7MDtMOzAwNjEgMDMyNTs7OztOOzs7MUUwMDs7MUUwMAorMUUwMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBCIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDQyIDAzMDc7Ozs7Tjs7OzsxRTAzOworMUUwMztMQVRJTiBTTUFMTCBMRVRURVIgQiBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA2MiAwMzA3Ozs7O047OzsxRTAyOzsxRTAyCisxRTA0O0xBVElOIENBUElUQUwgTEVUVEVSIEIgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNDIgMDMyMzs7OztOOzs7OzFFMDU7CisxRTA1O0xBVElOIFNNQUxMIExFVFRFUiBCIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDYyIDAzMjM7Ozs7Tjs7OzFFMDQ7OzFFMDQKKzFFMDY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQiBXSVRIIExJTkUgQkVMT1c7THU7MDtMOzAwNDIgMDMzMTs7OztOOzs7OzFFMDc7CisxRTA3O0xBVElOIFNNQUxMIExFVFRFUiBCIFdJVEggTElORSBCRUxPVztMbDswO0w7MDA2MiAwMzMxOzs7O047OzsxRTA2OzsxRTA2CisxRTA4O0xBVElOIENBUElUQUwgTEVUVEVSIEMgV0lUSCBDRURJTExBIEFORCBBQ1VURTtMdTswO0w7MDBDNyAwMzAxOzs7O047Ozs7MUUwOTsKKzFFMDk7TEFUSU4gU01BTEwgTEVUVEVSIEMgV0lUSCBDRURJTExBIEFORCBBQ1VURTtMbDswO0w7MDBFNyAwMzAxOzs7O047OzsxRTA4OzsxRTA4CisxRTBBO0xBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNDQgMDMwNzs7OztOOzs7OzFFMEI7CisxRTBCO0xBVElOIFNNQUxMIExFVFRFUiBEIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDY0IDAzMDc7Ozs7Tjs7OzFFMEE7OzFFMEEKKzFFMEM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA0NCAwMzIzOzs7O047Ozs7MUUwRDsKKzFFMEQ7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNjQgMDMyMzs7OztOOzs7MUUwQzs7MUUwQworMUUwRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFdJVEggTElORSBCRUxPVztMdTswO0w7MDA0NCAwMzMxOzs7O047Ozs7MUUwRjsKKzFFMEY7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBMSU5FIEJFTE9XO0xsOzA7TDswMDY0IDAzMzE7Ozs7Tjs7OzFFMEU7OzFFMEUKKzFFMTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIENFRElMTEE7THU7MDtMOzAwNDQgMDMyNzs7OztOOzs7OzFFMTE7CisxRTExO0xBVElOIFNNQUxMIExFVFRFUiBEIFdJVEggQ0VESUxMQTtMbDswO0w7MDA2NCAwMzI3Ozs7O047OzsxRTEwOzsxRTEwCisxRTEyO0xBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBDSVJDVU1GTEVYIEJFTE9XO0x1OzA7TDswMDQ0IDAzMkQ7Ozs7Tjs7OzsxRTEzOworMUUxMztMQVRJTiBTTUFMTCBMRVRURVIgRCBXSVRIIENJUkNVTUZMRVggQkVMT1c7TGw7MDtMOzAwNjQgMDMyRDs7OztOOzs7MUUxMjs7MUUxMgorMUUxNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggTUFDUk9OIEFORCBHUkFWRTtMdTswO0w7MDExMiAwMzAwOzs7O047Ozs7MUUxNTsKKzFFMTU7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBNQUNST04gQU5EIEdSQVZFO0xsOzA7TDswMTEzIDAzMDA7Ozs7Tjs7OzFFMTQ7OzFFMTQKKzFFMTY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIE1BQ1JPTiBBTkQgQUNVVEU7THU7MDtMOzAxMTIgMDMwMTs7OztOOzs7OzFFMTc7CisxRTE3O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggTUFDUk9OIEFORCBBQ1VURTtMbDswO0w7MDExMyAwMzAxOzs7O047OzsxRTE2OzsxRTE2CisxRTE4O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYIEJFTE9XO0x1OzA7TDswMDQ1IDAzMkQ7Ozs7Tjs7OzsxRTE5OworMUUxOTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVggQkVMT1c7TGw7MDtMOzAwNjUgMDMyRDs7OztOOzs7MUUxODs7MUUxOAorMUUxQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggVElMREUgQkVMT1c7THU7MDtMOzAwNDUgMDMzMDs7OztOOzs7OzFFMUI7CisxRTFCO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggVElMREUgQkVMT1c7TGw7MDtMOzAwNjUgMDMzMDs7OztOOzs7MUUxQTs7MUUxQQorMUUxQztMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0VESUxMQSBBTkQgQlJFVkU7THU7MDtMOzAxMTQgMDMyNzs7OztOOzs7OzFFMUQ7CisxRTFEO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQ0VESUxMQSBBTkQgQlJFVkU7TGw7MDtMOzAxMTUgMDMyNzs7OztOOzs7MUUxQzs7MUUxQworMUUxRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBGIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDQ2IDAzMDc7Ozs7Tjs7OzsxRTFGOworMUUxRjtMQVRJTiBTTUFMTCBMRVRURVIgRiBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA2NiAwMzA3Ozs7O047OzsxRTFFOzsxRTFFCisxRTIwO0xBVElOIENBUElUQUwgTEVUVEVSIEcgV0lUSCBNQUNST047THU7MDtMOzAwNDcgMDMwNDs7OztOOzs7OzFFMjE7CisxRTIxO0xBVElOIFNNQUxMIExFVFRFUiBHIFdJVEggTUFDUk9OO0xsOzA7TDswMDY3IDAzMDQ7Ozs7Tjs7OzFFMjA7OzFFMjAKKzFFMjI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSCBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA0OCAwMzA3Ozs7O047Ozs7MUUyMzsKKzFFMjM7TEFUSU4gU01BTEwgTEVUVEVSIEggV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNjggMDMwNzs7OztOOzs7MUUyMjs7MUUyMgorMUUyNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBIIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDQ4IDAzMjM7Ozs7Tjs7OzsxRTI1OworMUUyNTtMQVRJTiBTTUFMTCBMRVRURVIgSCBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2OCAwMzIzOzs7O047OzsxRTI0OzsxRTI0CisxRTI2O0xBVElOIENBUElUQUwgTEVUVEVSIEggV0lUSCBESUFFUkVTSVM7THU7MDtMOzAwNDggMDMwODs7OztOOzs7OzFFMjc7CisxRTI3O0xBVElOIFNNQUxMIExFVFRFUiBIIFdJVEggRElBRVJFU0lTO0xsOzA7TDswMDY4IDAzMDg7Ozs7Tjs7OzFFMjY7OzFFMjYKKzFFMjg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSCBXSVRIIENFRElMTEE7THU7MDtMOzAwNDggMDMyNzs7OztOOzs7OzFFMjk7CisxRTI5O0xBVElOIFNNQUxMIExFVFRFUiBIIFdJVEggQ0VESUxMQTtMbDswO0w7MDA2OCAwMzI3Ozs7O047OzsxRTI4OzsxRTI4CisxRTJBO0xBVElOIENBUElUQUwgTEVUVEVSIEggV0lUSCBCUkVWRSBCRUxPVztMdTswO0w7MDA0OCAwMzJFOzs7O047Ozs7MUUyQjsKKzFFMkI7TEFUSU4gU01BTEwgTEVUVEVSIEggV0lUSCBCUkVWRSBCRUxPVztMbDswO0w7MDA2OCAwMzJFOzs7O047OzsxRTJBOzsxRTJBCisxRTJDO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBUSUxERSBCRUxPVztMdTswO0w7MDA0OSAwMzMwOzs7O047Ozs7MUUyRDsKKzFFMkQ7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBUSUxERSBCRUxPVztMbDswO0w7MDA2OSAwMzMwOzs7O047OzsxRTJDOzsxRTJDCisxRTJFO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBESUFFUkVTSVMgQU5EIEFDVVRFO0x1OzA7TDswMENGIDAzMDE7Ozs7Tjs7OzsxRTJGOworMUUyRjtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIERJQUVSRVNJUyBBTkQgQUNVVEU7TGw7MDtMOzAwRUYgMDMwMTs7OztOOzs7MUUyRTs7MUUyRQorMUUzMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBLIFdJVEggQUNVVEU7THU7MDtMOzAwNEIgMDMwMTs7OztOOzs7OzFFMzE7CisxRTMxO0xBVElOIFNNQUxMIExFVFRFUiBLIFdJVEggQUNVVEU7TGw7MDtMOzAwNkIgMDMwMTs7OztOOzs7MUUzMDs7MUUzMAorMUUzMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBLIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDRCIDAzMjM7Ozs7Tjs7OzsxRTMzOworMUUzMztMQVRJTiBTTUFMTCBMRVRURVIgSyBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2QiAwMzIzOzs7O047OzsxRTMyOzsxRTMyCisxRTM0O0xBVElOIENBUElUQUwgTEVUVEVSIEsgV0lUSCBMSU5FIEJFTE9XO0x1OzA7TDswMDRCIDAzMzE7Ozs7Tjs7OzsxRTM1OworMUUzNTtMQVRJTiBTTUFMTCBMRVRURVIgSyBXSVRIIExJTkUgQkVMT1c7TGw7MDtMOzAwNkIgMDMzMTs7OztOOzs7MUUzNDs7MUUzNAorMUUzNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDRDIDAzMjM7Ozs7Tjs7OzsxRTM3OworMUUzNztMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2QyAwMzIzOzs7O047OzsxRTM2OzsxRTM2CisxRTM4O0xBVElOIENBUElUQUwgTEVUVEVSIEwgV0lUSCBET1QgQkVMT1cgQU5EIE1BQ1JPTjtMdTswO0w7MUUzNiAwMzA0Ozs7O047Ozs7MUUzOTsKKzFFMzk7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBET1QgQkVMT1cgQU5EIE1BQ1JPTjtMbDswO0w7MUUzNyAwMzA0Ozs7O047OzsxRTM4OzsxRTM4CisxRTNBO0xBVElOIENBUElUQUwgTEVUVEVSIEwgV0lUSCBMSU5FIEJFTE9XO0x1OzA7TDswMDRDIDAzMzE7Ozs7Tjs7OzsxRTNCOworMUUzQjtMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIExJTkUgQkVMT1c7TGw7MDtMOzAwNkMgMDMzMTs7OztOOzs7MUUzQTs7MUUzQQorMUUzQztMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMdTswO0w7MDA0QyAwMzJEOzs7O047Ozs7MUUzRDsKKzFFM0Q7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBDSVJDVU1GTEVYIEJFTE9XO0xsOzA7TDswMDZDIDAzMkQ7Ozs7Tjs7OzFFM0M7OzFFM0MKKzFFM0U7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTSBXSVRIIEFDVVRFO0x1OzA7TDswMDREIDAzMDE7Ozs7Tjs7OzsxRTNGOworMUUzRjtMQVRJTiBTTUFMTCBMRVRURVIgTSBXSVRIIEFDVVRFO0xsOzA7TDswMDZEIDAzMDE7Ozs7Tjs7OzFFM0U7OzFFM0UKKzFFNDA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTSBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA0RCAwMzA3Ozs7O047Ozs7MUU0MTsKKzFFNDE7TEFUSU4gU01BTEwgTEVUVEVSIE0gV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNkQgMDMwNzs7OztOOzs7MUU0MDs7MUU0MAorMUU0MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBNIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDREIDAzMjM7Ozs7Tjs7OzsxRTQzOworMUU0MztMQVRJTiBTTUFMTCBMRVRURVIgTSBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2RCAwMzIzOzs7O047OzsxRTQyOzsxRTQyCisxRTQ0O0xBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNEUgMDMwNzs7OztOOzs7OzFFNDU7CisxRTQ1O0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDZFIDAzMDc7Ozs7Tjs7OzFFNDQ7OzFFNDQKKzFFNDY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA0RSAwMzIzOzs7O047Ozs7MUU0NzsKKzFFNDc7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNkUgMDMyMzs7OztOOzs7MUU0Njs7MUU0NgorMUU0ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggTElORSBCRUxPVztMdTswO0w7MDA0RSAwMzMxOzs7O047Ozs7MUU0OTsKKzFFNDk7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBMSU5FIEJFTE9XO0xsOzA7TDswMDZFIDAzMzE7Ozs7Tjs7OzFFNDg7OzFFNDgKKzFFNEE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIENJUkNVTUZMRVggQkVMT1c7THU7MDtMOzAwNEUgMDMyRDs7OztOOzs7OzFFNEI7CisxRTRCO0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMbDswO0w7MDA2RSAwMzJEOzs7O047OzsxRTRBOzsxRTRBCisxRTRDO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBUSUxERSBBTkQgQUNVVEU7THU7MDtMOzAwRDUgMDMwMTs7OztOOzs7OzFFNEQ7CisxRTREO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggVElMREUgQU5EIEFDVVRFO0xsOzA7TDswMEY1IDAzMDE7Ozs7Tjs7OzFFNEM7OzFFNEMKKzFFNEU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIFRJTERFIEFORCBESUFFUkVTSVM7THU7MDtMOzAwRDUgMDMwODs7OztOOzs7OzFFNEY7CisxRTRGO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggVElMREUgQU5EIERJQUVSRVNJUztMbDswO0w7MDBGNSAwMzA4Ozs7O047OzsxRTRFOzsxRTRFCisxRTUwO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBNQUNST04gQU5EIEdSQVZFO0x1OzA7TDswMTRDIDAzMDA7Ozs7Tjs7OzsxRTUxOworMUU1MTtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIE1BQ1JPTiBBTkQgR1JBVkU7TGw7MDtMOzAxNEQgMDMwMDs7OztOOzs7MUU1MDs7MUU1MAorMUU1MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggTUFDUk9OIEFORCBBQ1VURTtMdTswO0w7MDE0QyAwMzAxOzs7O047Ozs7MUU1MzsKKzFFNTM7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBNQUNST04gQU5EIEFDVVRFO0xsOzA7TDswMTREIDAzMDE7Ozs7Tjs7OzFFNTI7OzFFNTIKKzFFNTQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUCBXSVRIIEFDVVRFO0x1OzA7TDswMDUwIDAzMDE7Ozs7Tjs7OzsxRTU1OworMUU1NTtMQVRJTiBTTUFMTCBMRVRURVIgUCBXSVRIIEFDVVRFO0xsOzA7TDswMDcwIDAzMDE7Ozs7Tjs7OzFFNTQ7OzFFNTQKKzFFNTY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUCBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA1MCAwMzA3Ozs7O047Ozs7MUU1NzsKKzFFNTc7TEFUSU4gU01BTEwgTEVUVEVSIFAgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNzAgMDMwNzs7OztOOzs7MUU1Njs7MUU1NgorMUU1ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBSIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDUyIDAzMDc7Ozs7Tjs7OzsxRTU5OworMUU1OTtMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA3MiAwMzA3Ozs7O047OzsxRTU4OzsxRTU4CisxRTVBO0xBVElOIENBUElUQUwgTEVUVEVSIFIgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNTIgMDMyMzs7OztOOzs7OzFFNUI7CisxRTVCO0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDcyIDAzMjM7Ozs7Tjs7OzFFNUE7OzFFNUEKKzFFNUM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBXSVRIIERPVCBCRUxPVyBBTkQgTUFDUk9OO0x1OzA7TDsxRTVBIDAzMDQ7Ozs7Tjs7OzsxRTVEOworMUU1RDtMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIERPVCBCRUxPVyBBTkQgTUFDUk9OO0xsOzA7TDsxRTVCIDAzMDQ7Ozs7Tjs7OzFFNUM7OzFFNUMKKzFFNUU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBXSVRIIExJTkUgQkVMT1c7THU7MDtMOzAwNTIgMDMzMTs7OztOOzs7OzFFNUY7CisxRTVGO0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggTElORSBCRUxPVztMbDswO0w7MDA3MiAwMzMxOzs7O047OzsxRTVFOzsxRTVFCisxRTYwO0xBVElOIENBUElUQUwgTEVUVEVSIFMgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNTMgMDMwNzs7OztOOzs7OzFFNjE7CisxRTYxO0xBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDczIDAzMDc7Ozs7Tjs7OzFFNjA7OzFFNjAKKzFFNjI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA1MyAwMzIzOzs7O047Ozs7MUU2MzsKKzFFNjM7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNzMgMDMyMzs7OztOOzs7MUU2Mjs7MUU2MgorMUU2NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIFdJVEggQUNVVEUgQU5EIERPVCBBQk9WRTtMdTswO0w7MDE1QSAwMzA3Ozs7O047Ozs7MUU2NTsKKzFFNjU7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBBQ1VURSBBTkQgRE9UIEFCT1ZFO0xsOzA7TDswMTVCIDAzMDc7Ozs7Tjs7OzFFNjQ7OzFFNjQKKzFFNjY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBXSVRIIENBUk9OIEFORCBET1QgQUJPVkU7THU7MDtMOzAxNjAgMDMwNzs7OztOOzs7OzFFNjc7CisxRTY3O0xBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggQ0FST04gQU5EIERPVCBBQk9WRTtMbDswO0w7MDE2MSAwMzA3Ozs7O047OzsxRTY2OzsxRTY2CisxRTY4O0xBVElOIENBUElUQUwgTEVUVEVSIFMgV0lUSCBET1QgQkVMT1cgQU5EIERPVCBBQk9WRTtMdTswO0w7MUU2MiAwMzA3Ozs7O047Ozs7MUU2OTsKKzFFNjk7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBET1QgQkVMT1cgQU5EIERPVCBBQk9WRTtMbDswO0w7MUU2MyAwMzA3Ozs7O047OzsxRTY4OzsxRTY4CisxRTZBO0xBVElOIENBUElUQUwgTEVUVEVSIFQgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNTQgMDMwNzs7OztOOzs7OzFFNkI7CisxRTZCO0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDc0IDAzMDc7Ozs7Tjs7OzFFNkE7OzFFNkEKKzFFNkM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA1NCAwMzIzOzs7O047Ozs7MUU2RDsKKzFFNkQ7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNzQgMDMyMzs7OztOOzs7MUU2Qzs7MUU2QworMUU2RTtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFdJVEggTElORSBCRUxPVztMdTswO0w7MDA1NCAwMzMxOzs7O047Ozs7MUU2RjsKKzFFNkY7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBMSU5FIEJFTE9XO0xsOzA7TDswMDc0IDAzMzE7Ozs7Tjs7OzFFNkU7OzFFNkUKKzFFNzA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBXSVRIIENJUkNVTUZMRVggQkVMT1c7THU7MDtMOzAwNTQgMDMyRDs7OztOOzs7OzFFNzE7CisxRTcxO0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMbDswO0w7MDA3NCAwMzJEOzs7O047OzsxRTcwOzsxRTcwCisxRTcyO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVMgQkVMT1c7THU7MDtMOzAwNTUgMDMyNDs7OztOOzs7OzFFNzM7CisxRTczO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTIEJFTE9XO0xsOzA7TDswMDc1IDAzMjQ7Ozs7Tjs7OzFFNzI7OzFFNzIKKzFFNzQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIFRJTERFIEJFTE9XO0x1OzA7TDswMDU1IDAzMzA7Ozs7Tjs7OzsxRTc1OworMUU3NTtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIFRJTERFIEJFTE9XO0xsOzA7TDswMDc1IDAzMzA7Ozs7Tjs7OzFFNzQ7OzFFNzQKKzFFNzY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIENJUkNVTUZMRVggQkVMT1c7THU7MDtMOzAwNTUgMDMyRDs7OztOOzs7OzFFNzc7CisxRTc3O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMbDswO0w7MDA3NSAwMzJEOzs7O047OzsxRTc2OzsxRTc2CisxRTc4O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBUSUxERSBBTkQgQUNVVEU7THU7MDtMOzAxNjggMDMwMTs7OztOOzs7OzFFNzk7CisxRTc5O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggVElMREUgQU5EIEFDVVRFO0xsOzA7TDswMTY5IDAzMDE7Ozs7Tjs7OzFFNzg7OzFFNzgKKzFFN0E7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIE1BQ1JPTiBBTkQgRElBRVJFU0lTO0x1OzA7TDswMTZBIDAzMDg7Ozs7Tjs7OzsxRTdCOworMUU3QjtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIE1BQ1JPTiBBTkQgRElBRVJFU0lTO0xsOzA7TDswMTZCIDAzMDg7Ozs7Tjs7OzFFN0E7OzFFN0EKKzFFN0M7TEFUSU4gQ0FQSVRBTCBMRVRURVIgViBXSVRIIFRJTERFO0x1OzA7TDswMDU2IDAzMDM7Ozs7Tjs7OzsxRTdEOworMUU3RDtMQVRJTiBTTUFMTCBMRVRURVIgViBXSVRIIFRJTERFO0xsOzA7TDswMDc2IDAzMDM7Ozs7Tjs7OzFFN0M7OzFFN0MKKzFFN0U7TEFUSU4gQ0FQSVRBTCBMRVRURVIgViBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA1NiAwMzIzOzs7O047Ozs7MUU3RjsKKzFFN0Y7TEFUSU4gU01BTEwgTEVUVEVSIFYgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNzYgMDMyMzs7OztOOzs7MUU3RTs7MUU3RQorMUU4MDtMQVRJTiBDQVBJVEFMIExFVFRFUiBXIFdJVEggR1JBVkU7THU7MDtMOzAwNTcgMDMwMDs7OztOOzs7OzFFODE7CisxRTgxO0xBVElOIFNNQUxMIExFVFRFUiBXIFdJVEggR1JBVkU7TGw7MDtMOzAwNzcgMDMwMDs7OztOOzs7MUU4MDs7MUU4MAorMUU4MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBXIFdJVEggQUNVVEU7THU7MDtMOzAwNTcgMDMwMTs7OztOOzs7OzFFODM7CisxRTgzO0xBVElOIFNNQUxMIExFVFRFUiBXIFdJVEggQUNVVEU7TGw7MDtMOzAwNzcgMDMwMTs7OztOOzs7MUU4Mjs7MUU4MgorMUU4NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBXIFdJVEggRElBRVJFU0lTO0x1OzA7TDswMDU3IDAzMDg7Ozs7Tjs7OzsxRTg1OworMUU4NTtMQVRJTiBTTUFMTCBMRVRURVIgVyBXSVRIIERJQUVSRVNJUztMbDswO0w7MDA3NyAwMzA4Ozs7O047OzsxRTg0OzsxRTg0CisxRTg2O0xBVElOIENBUElUQUwgTEVUVEVSIFcgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNTcgMDMwNzs7OztOOzs7OzFFODc7CisxRTg3O0xBVElOIFNNQUxMIExFVFRFUiBXIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDc3IDAzMDc7Ozs7Tjs7OzFFODY7OzFFODYKKzFFODg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVyBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA1NyAwMzIzOzs7O047Ozs7MUU4OTsKKzFFODk7TEFUSU4gU01BTEwgTEVUVEVSIFcgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNzcgMDMyMzs7OztOOzs7MUU4ODs7MUU4OAorMUU4QTtMQVRJTiBDQVBJVEFMIExFVFRFUiBYIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDU4IDAzMDc7Ozs7Tjs7OzsxRThCOworMUU4QjtMQVRJTiBTTUFMTCBMRVRURVIgWCBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA3OCAwMzA3Ozs7O047OzsxRThBOzsxRThBCisxRThDO0xBVElOIENBUElUQUwgTEVUVEVSIFggV0lUSCBESUFFUkVTSVM7THU7MDtMOzAwNTggMDMwODs7OztOOzs7OzFFOEQ7CisxRThEO0xBVElOIFNNQUxMIExFVFRFUiBYIFdJVEggRElBRVJFU0lTO0xsOzA7TDswMDc4IDAzMDg7Ozs7Tjs7OzFFOEM7OzFFOEMKKzFFOEU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA1OSAwMzA3Ozs7O047Ozs7MUU4RjsKKzFFOEY7TEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNzkgMDMwNzs7OztOOzs7MUU4RTs7MUU4RQorMUU5MDtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA1QSAwMzAyOzs7O047Ozs7MUU5MTsKKzFFOTE7TEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDdBIDAzMDI7Ozs7Tjs7OzFFOTA7OzFFOTAKKzFFOTI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA1QSAwMzIzOzs7O047Ozs7MUU5MzsKKzFFOTM7TEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwN0EgMDMyMzs7OztOOzs7MUU5Mjs7MUU5MgorMUU5NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIFdJVEggTElORSBCRUxPVztMdTswO0w7MDA1QSAwMzMxOzs7O047Ozs7MUU5NTsKKzFFOTU7TEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBMSU5FIEJFTE9XO0xsOzA7TDswMDdBIDAzMzE7Ozs7Tjs7OzFFOTQ7OzFFOTQKKzFFOTY7TEFUSU4gU01BTEwgTEVUVEVSIEggV0lUSCBMSU5FIEJFTE9XO0xsOzA7TDswMDY4IDAzMzE7Ozs7Tjs7Ozs7CisxRTk3O0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggRElBRVJFU0lTO0xsOzA7TDswMDc0IDAzMDg7Ozs7Tjs7Ozs7CisxRTk4O0xBVElOIFNNQUxMIExFVFRFUiBXIFdJVEggUklORyBBQk9WRTtMbDswO0w7MDA3NyAwMzBBOzs7O047Ozs7OworMUU5OTtMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIFJJTkcgQUJPVkU7TGw7MDtMOzAwNzkgMDMwQTs7OztOOzs7OzsKKzFFOUE7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBSSUdIVCBIQUxGIFJJTkc7TGw7MDtMOzs7OztOOzs7OzsKKzFFOUI7TEFUSU4gU01BTEwgTEVUVEVSIExPTkcgUyBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDE3RiAwMzA3Ozs7O047OzsxRTYwOzsxRTYwCisxRUEwO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNDEgMDMyMzs7OztOOzs7OzFFQTE7CisxRUExO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDYxIDAzMjM7Ozs7Tjs7OzFFQTA7OzFFQTAKKzFFQTI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEhPT0sgQUJPVkU7THU7MDtMOzAwNDEgMDMwOTs7OztOOzs7OzFFQTM7CisxRUEzO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggSE9PSyBBQk9WRTtMbDswO0w7MDA2MSAwMzA5Ozs7O047OzsxRUEyOzsxRUEyCisxRUE0O0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYIEFORCBBQ1VURTtMdTswO0w7MDBDMiAwMzAxOzs7O047Ozs7MUVBNTsKKzFFQTU7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYIEFORCBBQ1VURTtMbDswO0w7MDBFMiAwMzAxOzs7O047OzsxRUE0OzsxRUE0CisxRUE2O0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYIEFORCBHUkFWRTtMdTswO0w7MDBDMiAwMzAwOzs7O047Ozs7MUVBNzsKKzFFQTc7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYIEFORCBHUkFWRTtMbDswO0w7MDBFMiAwMzAwOzs7O047OzsxRUE2OzsxRUE2CisxRUE4O0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYIEFORCBIT09LIEFCT1ZFO0x1OzA7TDswMEMyIDAzMDk7Ozs7Tjs7OzsxRUE5OworMUVBOTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVggQU5EIEhPT0sgQUJPVkU7TGw7MDtMOzAwRTIgMDMwOTs7OztOOzs7MUVBODs7MUVBOAorMUVBQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWCBBTkQgVElMREU7THU7MDtMOzAwQzIgMDMwMzs7OztOOzs7OzFFQUI7CisxRUFCO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWCBBTkQgVElMREU7TGw7MDtMOzAwRTIgMDMwMzs7OztOOzs7MUVBQTs7MUVBQQorMUVBQztMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWCBBTkQgRE9UIEJFTE9XO0x1OzA7TDswMEMyIDAzMjM7Ozs7Tjs7OzsxRUFEOworMUVBRDtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVggQU5EIERPVCBCRUxPVztMbDswO0w7MDBFMiAwMzIzOzs7O047OzsxRUFDOzsxRUFDCisxRUFFO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBCUkVWRSBBTkQgQUNVVEU7THU7MDtMOzAxMDIgMDMwMTs7OztOOzs7OzFFQUY7CisxRUFGO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQlJFVkUgQU5EIEFDVVRFO0xsOzA7TDswMTAzIDAzMDE7Ozs7Tjs7OzFFQUU7OzFFQUUKKzFFQjA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEJSRVZFIEFORCBHUkFWRTtMdTswO0w7MDEwMiAwMzAwOzs7O047Ozs7MUVCMTsKKzFFQjE7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBCUkVWRSBBTkQgR1JBVkU7TGw7MDtMOzAxMDMgMDMwMDs7OztOOzs7MUVCMDs7MUVCMAorMUVCMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQlJFVkUgQU5EIEhPT0sgQUJPVkU7THU7MDtMOzAxMDIgMDMwOTs7OztOOzs7OzFFQjM7CisxRUIzO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQlJFVkUgQU5EIEhPT0sgQUJPVkU7TGw7MDtMOzAxMDMgMDMwOTs7OztOOzs7MUVCMjs7MUVCMgorMUVCNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQlJFVkUgQU5EIFRJTERFO0x1OzA7TDswMTAyIDAzMDM7Ozs7Tjs7OzsxRUI1OworMUVCNTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIEJSRVZFIEFORCBUSUxERTtMbDswO0w7MDEwMyAwMzAzOzs7O047OzsxRUI0OzsxRUI0CisxRUI2O0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBCUkVWRSBBTkQgRE9UIEJFTE9XO0x1OzA7TDswMTAyIDAzMjM7Ozs7Tjs7OzsxRUI3OworMUVCNztMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIEJSRVZFIEFORCBET1QgQkVMT1c7TGw7MDtMOzAxMDMgMDMyMzs7OztOOzs7MUVCNjs7MUVCNgorMUVCODtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDQ1IDAzMjM7Ozs7Tjs7OzsxRUI5OworMUVCOTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2NSAwMzIzOzs7O047OzsxRUI4OzsxRUI4CisxRUJBO0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBIT09LIEFCT1ZFO0x1OzA7TDswMDQ1IDAzMDk7Ozs7Tjs7OzsxRUJCOworMUVCQjtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIEhPT0sgQUJPVkU7TGw7MDtMOzAwNjUgMDMwOTs7OztOOzs7MUVCQTs7MUVCQQorMUVCQztMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggVElMREU7THU7MDtMOzAwNDUgMDMwMzs7OztOOzs7OzFFQkQ7CisxRUJEO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggVElMREU7TGw7MDtMOzAwNjUgMDMwMzs7OztOOzs7MUVCQzs7MUVCQworMUVCRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBBTkQgQUNVVEU7THU7MDtMOzAwQ0EgMDMwMTs7OztOOzs7OzFFQkY7CisxRUJGO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBBTkQgQUNVVEU7TGw7MDtMOzAwRUEgMDMwMTs7OztOOzs7MUVCRTs7MUVCRQorMUVDMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBBTkQgR1JBVkU7THU7MDtMOzAwQ0EgMDMwMDs7OztOOzs7OzFFQzE7CisxRUMxO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBBTkQgR1JBVkU7TGw7MDtMOzAwRUEgMDMwMDs7OztOOzs7MUVDMDs7MUVDMAorMUVDMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBBTkQgSE9PSyBBQk9WRTtMdTswO0w7MDBDQSAwMzA5Ozs7O047Ozs7MUVDMzsKKzFFQzM7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYIEFORCBIT09LIEFCT1ZFO0xsOzA7TDswMEVBIDAzMDk7Ozs7Tjs7OzFFQzI7OzFFQzIKKzFFQzQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVggQU5EIFRJTERFO0x1OzA7TDswMENBIDAzMDM7Ozs7Tjs7OzsxRUM1OworMUVDNTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVggQU5EIFRJTERFO0xsOzA7TDswMEVBIDAzMDM7Ozs7Tjs7OzFFQzQ7OzFFQzQKKzFFQzY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVggQU5EIERPVCBCRUxPVztMdTswO0w7MDBDQSAwMzIzOzs7O047Ozs7MUVDNzsKKzFFQzc7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYIEFORCBET1QgQkVMT1c7TGw7MDtMOzAwRUEgMDMyMzs7OztOOzs7MUVDNjs7MUVDNgorMUVDODtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggSE9PSyBBQk9WRTtMdTswO0w7MDA0OSAwMzA5Ozs7O047Ozs7MUVDOTsKKzFFQzk7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBIT09LIEFCT1ZFO0xsOzA7TDswMDY5IDAzMDk7Ozs7Tjs7OzFFQzg7OzFFQzgKKzFFQ0E7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA0OSAwMzIzOzs7O047Ozs7MUVDQjsKKzFFQ0I7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNjkgMDMyMzs7OztOOzs7MUVDQTs7MUVDQQorMUVDQztMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDRGIDAzMjM7Ozs7Tjs7OzsxRUNEOworMUVDRDtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2RiAwMzIzOzs7O047OzsxRUNDOzsxRUNDCisxRUNFO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBIT09LIEFCT1ZFO0x1OzA7TDswMDRGIDAzMDk7Ozs7Tjs7OzsxRUNGOworMUVDRjtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIEhPT0sgQUJPVkU7TGw7MDtMOzAwNkYgMDMwOTs7OztOOzs7MUVDRTs7MUVDRQorMUVEMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWCBBTkQgQUNVVEU7THU7MDtMOzAwRDQgMDMwMTs7OztOOzs7OzFFRDE7CisxRUQxO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWCBBTkQgQUNVVEU7TGw7MDtMOzAwRjQgMDMwMTs7OztOOzs7MUVEMDs7MUVEMAorMUVEMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWCBBTkQgR1JBVkU7THU7MDtMOzAwRDQgMDMwMDs7OztOOzs7OzFFRDM7CisxRUQzO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWCBBTkQgR1JBVkU7TGw7MDtMOzAwRjQgMDMwMDs7OztOOzs7MUVEMjs7MUVEMgorMUVENDtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWCBBTkQgSE9PSyBBQk9WRTtMdTswO0w7MDBENCAwMzA5Ozs7O047Ozs7MUVENTsKKzFFRDU7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYIEFORCBIT09LIEFCT1ZFO0xsOzA7TDswMEY0IDAzMDk7Ozs7Tjs7OzFFRDQ7OzFFRDQKKzFFRDY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVggQU5EIFRJTERFO0x1OzA7TDswMEQ0IDAzMDM7Ozs7Tjs7OzsxRUQ3OworMUVENztMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVggQU5EIFRJTERFO0xsOzA7TDswMEY0IDAzMDM7Ozs7Tjs7OzFFRDY7OzFFRDYKKzFFRDg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVggQU5EIERPVCBCRUxPVztMdTswO0w7MDBENCAwMzIzOzs7O047Ozs7MUVEOTsKKzFFRDk7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYIEFORCBET1QgQkVMT1c7TGw7MDtMOzAwRjQgMDMyMzs7OztOOzs7MUVEODs7MUVEOAorMUVEQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggSE9STiBBTkQgQUNVVEU7THU7MDtMOzAxQTAgMDMwMTs7OztOOzs7OzFFREI7CisxRURCO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggSE9STiBBTkQgQUNVVEU7TGw7MDtMOzAxQTEgMDMwMTs7OztOOzs7MUVEQTs7MUVEQQorMUVEQztMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggSE9STiBBTkQgR1JBVkU7THU7MDtMOzAxQTAgMDMwMDs7OztOOzs7OzFFREQ7CisxRUREO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggSE9STiBBTkQgR1JBVkU7TGw7MDtMOzAxQTEgMDMwMDs7OztOOzs7MUVEQzs7MUVEQworMUVERTtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggSE9STiBBTkQgSE9PSyBBQk9WRTtMdTswO0w7MDFBMCAwMzA5Ozs7O047Ozs7MUVERjsKKzFFREY7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBIT1JOIEFORCBIT09LIEFCT1ZFO0xsOzA7TDswMUExIDAzMDk7Ozs7Tjs7OzFFREU7OzFFREUKKzFFRTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIEhPUk4gQU5EIFRJTERFO0x1OzA7TDswMUEwIDAzMDM7Ozs7Tjs7OzsxRUUxOworMUVFMTtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIEhPUk4gQU5EIFRJTERFO0xsOzA7TDswMUExIDAzMDM7Ozs7Tjs7OzFFRTA7OzFFRTAKKzFFRTI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIEhPUk4gQU5EIERPVCBCRUxPVztMdTswO0w7MDFBMCAwMzIzOzs7O047Ozs7MUVFMzsKKzFFRTM7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBIT1JOIEFORCBET1QgQkVMT1c7TGw7MDtMOzAxQTEgMDMyMzs7OztOOzs7MUVFMjs7MUVFMgorMUVFNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDU1IDAzMjM7Ozs7Tjs7OzsxRUU1OworMUVFNTtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA3NSAwMzIzOzs7O047OzsxRUU0OzsxRUU0CisxRUU2O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBIT09LIEFCT1ZFO0x1OzA7TDswMDU1IDAzMDk7Ozs7Tjs7OzsxRUU3OworMUVFNztMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEhPT0sgQUJPVkU7TGw7MDtMOzAwNzUgMDMwOTs7OztOOzs7MUVFNjs7MUVFNgorMUVFODtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggSE9STiBBTkQgQUNVVEU7THU7MDtMOzAxQUYgMDMwMTs7OztOOzs7OzFFRTk7CisxRUU5O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggSE9STiBBTkQgQUNVVEU7TGw7MDtMOzAxQjAgMDMwMTs7OztOOzs7MUVFODs7MUVFOAorMUVFQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggSE9STiBBTkQgR1JBVkU7THU7MDtMOzAxQUYgMDMwMDs7OztOOzs7OzFFRUI7CisxRUVCO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggSE9STiBBTkQgR1JBVkU7TGw7MDtMOzAxQjAgMDMwMDs7OztOOzs7MUVFQTs7MUVFQQorMUVFQztMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggSE9STiBBTkQgSE9PSyBBQk9WRTtMdTswO0w7MDFBRiAwMzA5Ozs7O047Ozs7MUVFRDsKKzFFRUQ7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBIT1JOIEFORCBIT09LIEFCT1ZFO0xsOzA7TDswMUIwIDAzMDk7Ozs7Tjs7OzFFRUM7OzFFRUMKKzFFRUU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEhPUk4gQU5EIFRJTERFO0x1OzA7TDswMUFGIDAzMDM7Ozs7Tjs7OzsxRUVGOworMUVFRjtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEhPUk4gQU5EIFRJTERFO0xsOzA7TDswMUIwIDAzMDM7Ozs7Tjs7OzFFRUU7OzFFRUUKKzFFRjA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEhPUk4gQU5EIERPVCBCRUxPVztMdTswO0w7MDFBRiAwMzIzOzs7O047Ozs7MUVGMTsKKzFFRjE7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBIT1JOIEFORCBET1QgQkVMT1c7TGw7MDtMOzAxQjAgMDMyMzs7OztOOzs7MUVGMDs7MUVGMAorMUVGMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggR1JBVkU7THU7MDtMOzAwNTkgMDMwMDs7OztOOzs7OzFFRjM7CisxRUYzO0xBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggR1JBVkU7TGw7MDtMOzAwNzkgMDMwMDs7OztOOzs7MUVGMjs7MUVGMgorMUVGNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDU5IDAzMjM7Ozs7Tjs7OzsxRUY1OworMUVGNTtMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA3OSAwMzIzOzs7O047OzsxRUY0OzsxRUY0CisxRUY2O0xBVElOIENBUElUQUwgTEVUVEVSIFkgV0lUSCBIT09LIEFCT1ZFO0x1OzA7TDswMDU5IDAzMDk7Ozs7Tjs7OzsxRUY3OworMUVGNztMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIEhPT0sgQUJPVkU7TGw7MDtMOzAwNzkgMDMwOTs7OztOOzs7MUVGNjs7MUVGNgorMUVGODtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggVElMREU7THU7MDtMOzAwNTkgMDMwMzs7OztOOzs7OzFFRjk7CisxRUY5O0xBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggVElMREU7TGw7MDtMOzAwNzkgMDMwMzs7OztOOzs7MUVGODs7MUVGOAorMUYwMDtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSTtMbDswO0w7MDNCMSAwMzEzOzs7O047OzsxRjA4OzsxRjA4CisxRjAxO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBO0xsOzA7TDswM0IxIDAzMTQ7Ozs7Tjs7OzFGMDk7OzFGMDkKKzFGMDI7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFZBUklBO0xsOzA7TDsxRjAwIDAzMDA7Ozs7Tjs7OzFGMEE7OzFGMEEKKzFGMDM7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFZBUklBO0xsOzA7TDsxRjAxIDAzMDA7Ozs7Tjs7OzFGMEI7OzFGMEIKKzFGMDQ7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIE9YSUE7TGw7MDtMOzFGMDAgMDMwMTs7OztOOzs7MUYwQzs7MUYwQworMUYwNTtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgT1hJQTtMbDswO0w7MUYwMSAwMzAxOzs7O047OzsxRjBEOzsxRjBECisxRjA2O0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MUYwMCAwMzQyOzs7O047OzsxRjBFOzsxRjBFCisxRjA3O0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MUYwMSAwMzQyOzs7O047OzsxRjBGOzsxRjBGCisxRjA4O0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEk7THU7MDtMOzAzOTEgMDMxMzs7OztOOzs7OzFGMDA7CisxRjA5O0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUE7THU7MDtMOzAzOTEgMDMxNDs7OztOOzs7OzFGMDE7CisxRjBBO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFZBUklBO0x1OzA7TDsxRjA4IDAzMDA7Ozs7Tjs7OzsxRjAyOworMUYwQjtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBWQVJJQTtMdTswO0w7MUYwOSAwMzAwOzs7O047Ozs7MUYwMzsKKzFGMEM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgT1hJQTtMdTswO0w7MUYwOCAwMzAxOzs7O047Ozs7MUYwNDsKKzFGMEQ7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgT1hJQTtMdTswO0w7MUYwOSAwMzAxOzs7O047Ozs7MUYwNTsKKzFGMEU7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkk7THU7MDtMOzFGMDggMDM0Mjs7OztOOzs7OzFGMDY7CisxRjBGO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JO0x1OzA7TDsxRjA5IDAzNDI7Ozs7Tjs7OzsxRjA3OworMUYxMDtHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTiBXSVRIIFBTSUxJO0xsOzA7TDswM0I1IDAzMTM7Ozs7Tjs7OzFGMTg7OzFGMTgKKzFGMTE7R1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT04gV0lUSCBEQVNJQTtMbDswO0w7MDNCNSAwMzE0Ozs7O047OzsxRjE5OzsxRjE5CisxRjEyO0dSRUVLIFNNQUxMIExFVFRFUiBFUFNJTE9OIFdJVEggUFNJTEkgQU5EIFZBUklBO0xsOzA7TDsxRjEwIDAzMDA7Ozs7Tjs7OzFGMUE7OzFGMUEKKzFGMTM7R1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT04gV0lUSCBEQVNJQSBBTkQgVkFSSUE7TGw7MDtMOzFGMTEgMDMwMDs7OztOOzs7MUYxQjs7MUYxQgorMUYxNDtHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTiBXSVRIIFBTSUxJIEFORCBPWElBO0xsOzA7TDsxRjEwIDAzMDE7Ozs7Tjs7OzFGMUM7OzFGMUMKKzFGMTU7R1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT04gV0lUSCBEQVNJQSBBTkQgT1hJQTtMbDswO0w7MUYxMSAwMzAxOzs7O047OzsxRjFEOzsxRjFECisxRjE4O0dSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gV0lUSCBQU0lMSTtMdTswO0w7MDM5NSAwMzEzOzs7O047Ozs7MUYxMDsKKzFGMTk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVBTSUxPTiBXSVRIIERBU0lBO0x1OzA7TDswMzk1IDAzMTQ7Ozs7Tjs7OzsxRjExOworMUYxQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OIFdJVEggUFNJTEkgQU5EIFZBUklBO0x1OzA7TDsxRjE4IDAzMDA7Ozs7Tjs7OzsxRjEyOworMUYxQjtHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OIFdJVEggREFTSUEgQU5EIFZBUklBO0x1OzA7TDsxRjE5IDAzMDA7Ozs7Tjs7OzsxRjEzOworMUYxQztHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OIFdJVEggUFNJTEkgQU5EIE9YSUE7THU7MDtMOzFGMTggMDMwMTs7OztOOzs7OzFGMTQ7CisxRjFEO0dSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gV0lUSCBEQVNJQSBBTkQgT1hJQTtMdTswO0w7MUYxOSAwMzAxOzs7O047Ozs7MUYxNTsKKzFGMjA7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJO0xsOzA7TDswM0I3IDAzMTM7Ozs7Tjs7OzFGMjg7OzFGMjgKKzFGMjE7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBO0xsOzA7TDswM0I3IDAzMTQ7Ozs7Tjs7OzFGMjk7OzFGMjkKKzFGMjI7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBWQVJJQTtMbDswO0w7MUYyMCAwMzAwOzs7O047OzsxRjJBOzsxRjJBCisxRjIzO0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgVkFSSUE7TGw7MDtMOzFGMjEgMDMwMDs7OztOOzs7MUYyQjs7MUYyQgorMUYyNDtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIE9YSUE7TGw7MDtMOzFGMjAgMDMwMTs7OztOOzs7MUYyQzs7MUYyQworMUYyNTtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIE9YSUE7TGw7MDtMOzFGMjEgMDMwMTs7OztOOzs7MUYyRDs7MUYyRAorMUYyNjtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JO0xsOzA7TDsxRjIwIDAzNDI7Ozs7Tjs7OzFGMkU7OzFGMkUKKzFGMjc7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MUYyMSAwMzQyOzs7O047OzsxRjJGOzsxRjJGCisxRjI4O0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJO0x1OzA7TDswMzk3IDAzMTM7Ozs7Tjs7OzsxRjIwOworMUYyOTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQTtMdTswO0w7MDM5NyAwMzE0Ozs7O047Ozs7MUYyMTsKKzFGMkE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFZBUklBO0x1OzA7TDsxRjI4IDAzMDA7Ozs7Tjs7OzsxRjIyOworMUYyQjtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgVkFSSUE7THU7MDtMOzFGMjkgMDMwMDs7OztOOzs7OzFGMjM7CisxRjJDO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBPWElBO0x1OzA7TDsxRjI4IDAzMDE7Ozs7Tjs7OzsxRjI0OworMUYyRDtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgT1hJQTtMdTswO0w7MUYyOSAwMzAxOzs7O047Ozs7MUYyNTsKKzFGMkU7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JO0x1OzA7TDsxRjI4IDAzNDI7Ozs7Tjs7OzsxRjI2OworMUYyRjtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkk7THU7MDtMOzFGMjkgMDM0Mjs7OztOOzs7OzFGMjc7CisxRjMwO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggUFNJTEk7TGw7MDtMOzAzQjkgMDMxMzs7OztOOzs7MUYzODs7MUYzOAorMUYzMTtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERBU0lBO0xsOzA7TDswM0I5IDAzMTQ7Ozs7Tjs7OzFGMzk7OzFGMzkKKzFGMzI7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBQU0lMSSBBTkQgVkFSSUE7TGw7MDtMOzFGMzAgMDMwMDs7OztOOzs7MUYzQTs7MUYzQQorMUYzMztHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERBU0lBIEFORCBWQVJJQTtMbDswO0w7MUYzMSAwMzAwOzs7O047OzsxRjNCOzsxRjNCCisxRjM0O0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggUFNJTEkgQU5EIE9YSUE7TGw7MDtMOzFGMzAgMDMwMTs7OztOOzs7MUYzQzs7MUYzQworMUYzNTtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERBU0lBIEFORCBPWElBO0xsOzA7TDsxRjMxIDAzMDE7Ozs7Tjs7OzFGM0Q7OzFGM0QKKzFGMzY7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkk7TGw7MDtMOzFGMzAgMDM0Mjs7OztOOzs7MUYzRTs7MUYzRQorMUYzNztHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MUYzMSAwMzQyOzs7O047OzsxRjNGOzsxRjNGCisxRjM4O0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBQU0lMSTtMdTswO0w7MDM5OSAwMzEzOzs7O047Ozs7MUYzMDsKKzFGMzk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIERBU0lBO0x1OzA7TDswMzk5IDAzMTQ7Ozs7Tjs7OzsxRjMxOworMUYzQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggUFNJTEkgQU5EIFZBUklBO0x1OzA7TDsxRjM4IDAzMDA7Ozs7Tjs7OzsxRjMyOworMUYzQjtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggREFTSUEgQU5EIFZBUklBO0x1OzA7TDsxRjM5IDAzMDA7Ozs7Tjs7OzsxRjMzOworMUYzQztHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggUFNJTEkgQU5EIE9YSUE7THU7MDtMOzFGMzggMDMwMTs7OztOOzs7OzFGMzQ7CisxRjNEO0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBEQVNJQSBBTkQgT1hJQTtMdTswO0w7MUYzOSAwMzAxOzs7O047Ozs7MUYzNTsKKzFGM0U7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSTtMdTswO0w7MUYzOCAwMzQyOzs7O047Ozs7MUYzNjsKKzFGM0Y7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSTtMdTswO0w7MUYzOSAwMzQyOzs7O047Ozs7MUYzNzsKKzFGNDA7R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gV0lUSCBQU0lMSTtMbDswO0w7MDNCRiAwMzEzOzs7O047OzsxRjQ4OzsxRjQ4CisxRjQxO0dSRUVLIFNNQUxMIExFVFRFUiBPTUlDUk9OIFdJVEggREFTSUE7TGw7MDtMOzAzQkYgMDMxNDs7OztOOzs7MUY0OTs7MUY0OQorMUY0MjtHUkVFSyBTTUFMTCBMRVRURVIgT01JQ1JPTiBXSVRIIFBTSUxJIEFORCBWQVJJQTtMbDswO0w7MUY0MCAwMzAwOzs7O047OzsxRjRBOzsxRjRBCisxRjQzO0dSRUVLIFNNQUxMIExFVFRFUiBPTUlDUk9OIFdJVEggREFTSUEgQU5EIFZBUklBO0xsOzA7TDsxRjQxIDAzMDA7Ozs7Tjs7OzFGNEI7OzFGNEIKKzFGNDQ7R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gV0lUSCBQU0lMSSBBTkQgT1hJQTtMbDswO0w7MUY0MCAwMzAxOzs7O047OzsxRjRDOzsxRjRDCisxRjQ1O0dSRUVLIFNNQUxMIExFVFRFUiBPTUlDUk9OIFdJVEggREFTSUEgQU5EIE9YSUE7TGw7MDtMOzFGNDEgMDMwMTs7OztOOzs7MUY0RDs7MUY0RAorMUY0ODtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OIFdJVEggUFNJTEk7THU7MDtMOzAzOUYgMDMxMzs7OztOOzs7OzFGNDA7CisxRjQ5O0dSRUVLIENBUElUQUwgTEVUVEVSIE9NSUNST04gV0lUSCBEQVNJQTtMdTswO0w7MDM5RiAwMzE0Ozs7O047Ozs7MUY0MTsKKzFGNEE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTiBXSVRIIFBTSUxJIEFORCBWQVJJQTtMdTswO0w7MUY0OCAwMzAwOzs7O047Ozs7MUY0MjsKKzFGNEI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTiBXSVRIIERBU0lBIEFORCBWQVJJQTtMdTswO0w7MUY0OSAwMzAwOzs7O047Ozs7MUY0MzsKKzFGNEM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTiBXSVRIIFBTSUxJIEFORCBPWElBO0x1OzA7TDsxRjQ4IDAzMDE7Ozs7Tjs7OzsxRjQ0OworMUY0RDtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OIFdJVEggREFTSUEgQU5EIE9YSUE7THU7MDtMOzFGNDkgMDMwMTs7OztOOzs7OzFGNDU7CisxRjUwO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggUFNJTEk7TGw7MDtMOzAzQzUgMDMxMzs7OztOOzs7OzsKKzFGNTE7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBEQVNJQTtMbDswO0w7MDNDNSAwMzE0Ozs7O047OzsxRjU5OzsxRjU5CisxRjUyO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggUFNJTEkgQU5EIFZBUklBO0xsOzA7TDsxRjUwIDAzMDA7Ozs7Tjs7Ozs7CisxRjUzO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggREFTSUEgQU5EIFZBUklBO0xsOzA7TDsxRjUxIDAzMDA7Ozs7Tjs7OzFGNUI7OzFGNUIKKzFGNTQ7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBQU0lMSSBBTkQgT1hJQTtMbDswO0w7MUY1MCAwMzAxOzs7O047Ozs7OworMUY1NTtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIERBU0lBIEFORCBPWElBO0xsOzA7TDsxRjUxIDAzMDE7Ozs7Tjs7OzFGNUQ7OzFGNUQKKzFGNTY7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkk7TGw7MDtMOzFGNTAgMDM0Mjs7OztOOzs7OzsKKzFGNTc7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkk7TGw7MDtMOzFGNTEgMDM0Mjs7OztOOzs7MUY1Rjs7MUY1RgorMUY1OTtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIFdJVEggREFTSUE7THU7MDtMOzAzQTUgMDMxNDs7OztOOzs7OzFGNTE7CisxRjVCO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gV0lUSCBEQVNJQSBBTkQgVkFSSUE7THU7MDtMOzFGNTkgMDMwMDs7OztOOzs7OzFGNTM7CisxRjVEO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gV0lUSCBEQVNJQSBBTkQgT1hJQTtMdTswO0w7MUY1OSAwMzAxOzs7O047Ozs7MUY1NTsKKzFGNUY7R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSTtMdTswO0w7MUY1OSAwMzQyOzs7O047Ozs7MUY1NzsKKzFGNjA7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEk7TGw7MDtMOzAzQzkgMDMxMzs7OztOOzs7MUY2ODs7MUY2OAorMUY2MTtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQTtMbDswO0w7MDNDOSAwMzE0Ozs7O047OzsxRjY5OzsxRjY5CisxRjYyO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBWQVJJQTtMbDswO0w7MUY2MCAwMzAwOzs7O047OzsxRjZBOzsxRjZBCisxRjYzO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBWQVJJQTtMbDswO0w7MUY2MSAwMzAwOzs7O047OzsxRjZCOzsxRjZCCisxRjY0O0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBPWElBO0xsOzA7TDsxRjYwIDAzMDE7Ozs7Tjs7OzFGNkM7OzFGNkMKKzFGNjU7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIE9YSUE7TGw7MDtMOzFGNjEgMDMwMTs7OztOOzs7MUY2RDs7MUY2RAorMUY2NjtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkk7TGw7MDtMOzFGNjAgMDM0Mjs7OztOOzs7MUY2RTs7MUY2RQorMUY2NztHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkk7TGw7MDtMOzFGNjEgMDM0Mjs7OztOOzs7MUY2Rjs7MUY2RgorMUY2ODtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJO0x1OzA7TDswM0E5IDAzMTM7Ozs7Tjs7OzsxRjYwOworMUY2OTtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBO0x1OzA7TDswM0E5IDAzMTQ7Ozs7Tjs7OzsxRjYxOworMUY2QTtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBWQVJJQTtMdTswO0w7MUY2OCAwMzAwOzs7O047Ozs7MUY2MjsKKzFGNkI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgVkFSSUE7THU7MDtMOzFGNjkgMDMwMDs7OztOOzs7OzFGNjM7CisxRjZDO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIE9YSUE7THU7MDtMOzFGNjggMDMwMTs7OztOOzs7OzFGNjQ7CisxRjZEO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIE9YSUE7THU7MDtMOzFGNjkgMDMwMTs7OztOOzs7OzFGNjU7CisxRjZFO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JO0x1OzA7TDsxRjY4IDAzNDI7Ozs7Tjs7OzsxRjY2OworMUY2RjtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSTtMdTswO0w7MUY2OSAwMzQyOzs7O047Ozs7MUY2NzsKKzFGNzA7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggVkFSSUE7TGw7MDtMOzAzQjEgMDMwMDs7OztOOzs7MUZCQTs7MUZCQQorMUY3MTtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBPWElBO0xsOzA7TDswM0IxIDAzMDE7Ozs7Tjs7OzFGQkI7OzFGQkIKKzFGNzI7R1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT04gV0lUSCBWQVJJQTtMbDswO0w7MDNCNSAwMzAwOzs7O047OzsxRkM4OzsxRkM4CisxRjczO0dSRUVLIFNNQUxMIExFVFRFUiBFUFNJTE9OIFdJVEggT1hJQTtMbDswO0w7MDNCNSAwMzAxOzs7O047OzsxRkM5OzsxRkM5CisxRjc0O0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBWQVJJQTtMbDswO0w7MDNCNyAwMzAwOzs7O047OzsxRkNBOzsxRkNBCisxRjc1O0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBPWElBO0xsOzA7TDswM0I3IDAzMDE7Ozs7Tjs7OzFGQ0I7OzFGQ0IKKzFGNzY7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBWQVJJQTtMbDswO0w7MDNCOSAwMzAwOzs7O047OzsxRkRBOzsxRkRBCisxRjc3O0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggT1hJQTtMbDswO0w7MDNCOSAwMzAxOzs7O047OzsxRkRCOzsxRkRCCisxRjc4O0dSRUVLIFNNQUxMIExFVFRFUiBPTUlDUk9OIFdJVEggVkFSSUE7TGw7MDtMOzAzQkYgMDMwMDs7OztOOzs7MUZGODs7MUZGOAorMUY3OTtHUkVFSyBTTUFMTCBMRVRURVIgT01JQ1JPTiBXSVRIIE9YSUE7TGw7MDtMOzAzQkYgMDMwMTs7OztOOzs7MUZGOTs7MUZGOQorMUY3QTtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIFZBUklBO0xsOzA7TDswM0M1IDAzMDA7Ozs7Tjs7OzFGRUE7OzFGRUEKKzFGN0I7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBPWElBO0xsOzA7TDswM0M1IDAzMDE7Ozs7Tjs7OzFGRUI7OzFGRUIKKzFGN0M7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggVkFSSUE7TGw7MDtMOzAzQzkgMDMwMDs7OztOOzs7MUZGQTs7MUZGQQorMUY3RDtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBPWElBO0xsOzA7TDswM0M5IDAzMDE7Ozs7Tjs7OzFGRkI7OzFGRkIKKzFGODA7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMDAgMDM0NTs7OztOOzs7MUY4ODs7MUY4OAorMUY4MTtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYwMSAwMzQ1Ozs7O047OzsxRjg5OzsxRjg5CisxRjgyO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYwMiAwMzQ1Ozs7O047OzsxRjhBOzsxRjhBCisxRjgzO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYwMyAwMzQ1Ozs7O047OzsxRjhCOzsxRjhCCisxRjg0O0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBPWElBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjA0IDAzNDU7Ozs7Tjs7OzFGOEM7OzFGOEMKKzFGODU7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMDUgMDM0NTs7OztOOzs7MUY4RDs7MUY4RAorMUY4NjtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMDYgMDM0NTs7OztOOzs7MUY4RTs7MUY4RQorMUY4NztHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMDcgMDM0NTs7OztOOzs7MUY4Rjs7MUY4RgorMUY4ODtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBQUk9TR0VHUkFNTUVOSTtMdTswO0w7MUYwOCAwMzQ1Ozs7O047Ozs7MUY4MDsKKzFGODk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THU7MDtMOzFGMDkgMDM0NTs7OztOOzs7OzFGODE7CisxRjhBO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFZBUklBIEFORCBQUk9TR0VHUkFNTUVOSTtMdTswO0w7MUYwQSAwMzQ1Ozs7O047Ozs7MUY4MjsKKzFGOEI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgVkFSSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x1OzA7TDsxRjBCIDAzNDU7Ozs7Tjs7OzsxRjgzOworMUY4QztHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBPWElBIEFORCBQUk9TR0VHUkFNTUVOSTtMdTswO0w7MUYwQyAwMzQ1Ozs7O047Ozs7MUY4NDsKKzFGOEQ7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgT1hJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THU7MDtMOzFGMEQgMDM0NTs7OztOOzs7OzFGODU7CisxRjhFO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JIEFORCBQUk9TR0VHUkFNTUVOSTtMdTswO0w7MUYwRSAwMzQ1Ozs7O047Ozs7MUY4NjsKKzFGOEY7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkkgQU5EIFBST1NHRUdSQU1NRU5JO0x1OzA7TDsxRjBGIDAzNDU7Ozs7Tjs7OzsxRjg3OworMUY5MDtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMjAgMDM0NTs7OztOOzs7MUY5ODs7MUY5OAorMUY5MTtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMjEgMDM0NTs7OztOOzs7MUY5OTs7MUY5OQorMUY5MjtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjIyIDAzNDU7Ozs7Tjs7OzFGOUE7OzFGOUEKKzFGOTM7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYyMyAwMzQ1Ozs7O047OzsxRjlCOzsxRjlCCisxRjk0O0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgT1hJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYyNCAwMzQ1Ozs7O047OzsxRjlDOzsxRjlDCisxRjk1O0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgT1hJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYyNSAwMzQ1Ozs7O047OzsxRjlEOzsxRjlECisxRjk2O0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMjYgMDM0NTs7OztOOzs7MUY5RTs7MUY5RQorMUY5NztHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjI3IDAzNDU7Ozs7Tjs7OzFGOUY7OzFGOUYKKzFGOTg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFBST1NHRUdSQU1NRU5JO0x1OzA7TDsxRjI4IDAzNDU7Ozs7Tjs7OzsxRjkwOworMUY5OTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THU7MDtMOzFGMjkgMDM0NTs7OztOOzs7OzFGOTE7CisxRjlBO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBWQVJJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THU7MDtMOzFGMkEgMDM0NTs7OztOOzs7OzFGOTI7CisxRjlCO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBWQVJJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THU7MDtMOzFGMkIgMDM0NTs7OztOOzs7OzFGOTM7CisxRjlDO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBPWElBIEFORCBQUk9TR0VHUkFNTUVOSTtMdTswO0w7MUYyQyAwMzQ1Ozs7O047Ozs7MUY5NDsKKzFGOUQ7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x1OzA7TDsxRjJEIDAzNDU7Ozs7Tjs7OzsxRjk1OworMUY5RTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkkgQU5EIFBST1NHRUdSQU1NRU5JO0x1OzA7TDsxRjJFIDAzNDU7Ozs7Tjs7OzsxRjk2OworMUY5RjtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkkgQU5EIFBST1NHRUdSQU1NRU5JO0x1OzA7TDsxRjJGIDAzNDU7Ozs7Tjs7OzsxRjk3OworMUZBMDtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUY2MCAwMzQ1Ozs7O047OzsxRkE4OzsxRkE4CisxRkExO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjYxIDAzNDU7Ozs7Tjs7OzFGQTk7OzFGQTkKKzFGQTI7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjYyIDAzNDU7Ozs7Tjs7OzFGQUE7OzFGQUEKKzFGQTM7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjYzIDAzNDU7Ozs7Tjs7OzFGQUI7OzFGQUIKKzFGQTQ7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGNjQgMDM0NTs7OztOOzs7MUZBQzs7MUZBQworMUZBNTtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgT1hJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUY2NSAwMzQ1Ozs7O047OzsxRkFEOzsxRkFECisxRkE2O0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUY2NiAwMzQ1Ozs7O047OzsxRkFFOzsxRkFFCisxRkE3O0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUY2NyAwMzQ1Ozs7O047OzsxRkFGOzsxRkFGCisxRkE4O0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFBST1NHRUdSQU1NRU5JO0x1OzA7TDsxRjY4IDAzNDU7Ozs7Tjs7OzsxRkEwOworMUZBOTtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBQUk9TR0VHUkFNTUVOSTtMdTswO0w7MUY2OSAwMzQ1Ozs7O047Ozs7MUZBMTsKKzFGQUE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgVkFSSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x1OzA7TDsxRjZBIDAzNDU7Ozs7Tjs7OzsxRkEyOworMUZBQjtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBWQVJJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THU7MDtMOzFGNkIgMDM0NTs7OztOOzs7OzFGQTM7CisxRkFDO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIE9YSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x1OzA7TDsxRjZDIDAzNDU7Ozs7Tjs7OzsxRkE0OworMUZBRDtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBPWElBIEFORCBQUk9TR0VHUkFNTUVOSTtMdTswO0w7MUY2RCAwMzQ1Ozs7O047Ozs7MUZBNTsKKzFGQUU7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkkgQU5EIFBST1NHRUdSQU1NRU5JO0x1OzA7TDsxRjZFIDAzNDU7Ozs7Tjs7OzsxRkE2OworMUZBRjtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSSBBTkQgUFJPU0dFR1JBTU1FTkk7THU7MDtMOzFGNkYgMDM0NTs7OztOOzs7OzFGQTc7CisxRkIwO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFZSQUNIWTtMbDswO0w7MDNCMSAwMzA2Ozs7O047OzsxRkI4OzsxRkI4CisxRkIxO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIE1BQ1JPTjtMbDswO0w7MDNCMSAwMzA0Ozs7O047OzsxRkI5OzsxRkI5CisxRkIyO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjcwIDAzNDU7Ozs7Tjs7Ozs7CisxRkIzO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzAzQjEgMDM0NTs7OztOOzs7MUZCQzs7MUZCQworMUZCNDtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBPWElBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjcxIDAzNDU7Ozs7Tjs7Ozs7CisxRkI2O0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBFUklTUE9NRU5JO0xsOzA7TDswM0IxIDAzNDI7Ozs7Tjs7Ozs7CisxRkI3O0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRkI2IDAzNDU7Ozs7Tjs7Ozs7CisxRkI4O0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggVlJBQ0hZO0x1OzA7TDswMzkxIDAzMDY7Ozs7Tjs7OzsxRkIwOworMUZCOTtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIE1BQ1JPTjtMdTswO0w7MDM5MSAwMzA0Ozs7O047Ozs7MUZCMTsKKzFGQkE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBWQVJJQTtMdTswO0w7MDM5MSAwMzAwOzs7O047Ozs7MUY3MDsKKzFGQkI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBPWElBO0x1OzA7TDswMzkxIDAzMDE7Ozs7Tjs7OzsxRjcxOworMUZCQztHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFBST1NHRUdSQU1NRU5JO0x1OzA7TDswMzkxIDAzNDU7Ozs7Tjs7OzsxRkIzOworMUZCRDtHUkVFSyBLT1JPTklTO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzEzOzs7O047Ozs7OworMUZCRTtHUkVFSyBQUk9TR0VHUkFNTUVOSTtMdTswO0w7MDNCOTs7OztOOzs7OzsKKzFGQkY7R1JFRUsgUFNJTEk7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMTM7Ozs7Tjs7Ozs7CisxRkMwO0dSRUVLIFBFUklTUE9NRU5JO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzQyOzs7O047Ozs7OworMUZDMTtHUkVFSyBESUFMWVRJS0EgQU5EIFBFUklTUE9NRU5JO1NrOzA7T047MDBBOCAwMzQyOzs7O047Ozs7OworMUZDMjtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGNzQgMDM0NTs7OztOOzs7OzsKKzFGQzM7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzAzQjcgMDM0NTs7OztOOzs7MUZDQzs7MUZDQworMUZDNDtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggT1hJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUY3NSAwMzQ1Ozs7O047Ozs7OworMUZDNjtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUEVSSVNQT01FTkk7TGw7MDtMOzAzQjcgMDM0Mjs7OztOOzs7OzsKKzFGQzc7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRkM2IDAzNDU7Ozs7Tjs7Ozs7CisxRkM4O0dSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gV0lUSCBWQVJJQTtMdTswO0w7MDM5NSAwMzAwOzs7O047Ozs7MUY3MjsKKzFGQzk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVBTSUxPTiBXSVRIIE9YSUE7THU7MDtMOzAzOTUgMDMwMTs7OztOOzs7OzFGNzM7CisxRkNBO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFZBUklBO0x1OzA7TDswMzk3IDAzMDA7Ozs7Tjs7OzsxRjc0OworMUZDQjtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBPWElBO0x1OzA7TDswMzk3IDAzMDE7Ozs7Tjs7OzsxRjc1OworMUZDQztHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQUk9TR0VHUkFNTUVOSTtMdTswO0w7MDM5NyAwMzQ1Ozs7O047Ozs7MUZDMzsKKzFGQ0Q7R1JFRUsgUFNJTEkgQU5EIFZBUklBO1NrOzA7T047MUZCRiAwMzAwOzs7O047Ozs7OworMUZDRTtHUkVFSyBQU0lMSSBBTkQgT1hJQTtTazswO09OOzFGQkYgMDMwMTs7OztOOzs7OzsKKzFGQ0Y7R1JFRUsgUFNJTEkgQU5EIFBFUklTUE9NRU5JO1NrOzA7T047MUZCRiAwMzQyOzs7O047Ozs7OworMUZEMDtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIFZSQUNIWTtMbDswO0w7MDNCOSAwMzA2Ozs7O047OzsxRkQ4OzsxRkQ4CisxRkQxO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggTUFDUk9OO0xsOzA7TDswM0I5IDAzMDQ7Ozs7Tjs7OzFGRDk7OzFGRDkKKzFGRDI7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBESUFMWVRJS0EgQU5EIFZBUklBO0xsOzA7TDswM0NBIDAzMDA7Ozs7Tjs7Ozs7CisxRkQzO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggRElBTFlUSUtBIEFORCBPWElBO0xsOzA7TDswM0NBIDAzMDE7Ozs7Tjs7Ozs7CisxRkQ2O0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggUEVSSVNQT01FTkk7TGw7MDtMOzAzQjkgMDM0Mjs7OztOOzs7OzsKKzFGRDc7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBESUFMWVRJS0EgQU5EIFBFUklTUE9NRU5JO0xsOzA7TDswM0NBIDAzNDI7Ozs7Tjs7Ozs7CisxRkQ4O0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBWUkFDSFk7THU7MDtMOzAzOTkgMDMwNjs7OztOOzs7OzFGRDA7CisxRkQ5O0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBNQUNST047THU7MDtMOzAzOTkgMDMwNDs7OztOOzs7OzFGRDE7CisxRkRBO0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBWQVJJQTtMdTswO0w7MDM5OSAwMzAwOzs7O047Ozs7MUY3NjsKKzFGREI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIE9YSUE7THU7MDtMOzAzOTkgMDMwMTs7OztOOzs7OzFGNzc7CisxRkREO0dSRUVLIERBU0lBIEFORCBWQVJJQTtTazswO09OOzFGRkUgMDMwMDs7OztOOzs7OzsKKzFGREU7R1JFRUsgREFTSUEgQU5EIE9YSUE7U2s7MDtPTjsxRkZFIDAzMDE7Ozs7Tjs7Ozs7CisxRkRGO0dSRUVLIERBU0lBIEFORCBQRVJJU1BPTUVOSTtTazswO09OOzFGRkUgMDM0Mjs7OztOOzs7OzsKKzFGRTA7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBWUkFDSFk7TGw7MDtMOzAzQzUgMDMwNjs7OztOOzs7MUZFODs7MUZFOAorMUZFMTtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIE1BQ1JPTjtMbDswO0w7MDNDNSAwMzA0Ozs7O047OzsxRkU5OzsxRkU5CisxRkUyO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggRElBTFlUSUtBIEFORCBWQVJJQTtMbDswO0w7MDNDQiAwMzAwOzs7O047Ozs7OworMUZFMztHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIERJQUxZVElLQSBBTkQgT1hJQTtMbDswO0w7MDNDQiAwMzAxOzs7O047Ozs7OworMUZFNDtHUkVFSyBTTUFMTCBMRVRURVIgUkhPIFdJVEggUFNJTEk7TGw7MDtMOzAzQzEgMDMxMzs7OztOOzs7OzsKKzFGRTU7R1JFRUsgU01BTEwgTEVUVEVSIFJITyBXSVRIIERBU0lBO0xsOzA7TDswM0MxIDAzMTQ7Ozs7Tjs7OzFGRUM7OzFGRUMKKzFGRTY7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBQRVJJU1BPTUVOSTtMbDswO0w7MDNDNSAwMzQyOzs7O047Ozs7OworMUZFNztHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIERJQUxZVElLQSBBTkQgUEVSSVNQT01FTkk7TGw7MDtMOzAzQ0IgMDM0Mjs7OztOOzs7OzsKKzFGRTg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBXSVRIIFZSQUNIWTtMdTswO0w7MDNBNSAwMzA2Ozs7O047Ozs7MUZFMDsKKzFGRTk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBXSVRIIE1BQ1JPTjtMdTswO0w7MDNBNSAwMzA0Ozs7O047Ozs7MUZFMTsKKzFGRUE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBXSVRIIFZBUklBO0x1OzA7TDswM0E1IDAzMDA7Ozs7Tjs7OzsxRjdBOworMUZFQjtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIFdJVEggT1hJQTtMdTswO0w7MDNBNSAwMzAxOzs7O047Ozs7MUY3QjsKKzFGRUM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgUkhPIFdJVEggREFTSUE7THU7MDtMOzAzQTEgMDMxNDs7OztOOzs7OzFGRTU7CisxRkVEO0dSRUVLIERJQUxZVElLQSBBTkQgVkFSSUE7U2s7MDtPTjswMEE4IDAzMDA7Ozs7Tjs7Ozs7CisxRkVFO0dSRUVLIERJQUxZVElLQSBBTkQgT1hJQTtTazswO09OOzAwQTggMDMwMTs7OztOOzs7OzsKKzFGRUY7R1JFRUsgVkFSSUE7U2s7MDtPTjswMDYwOzs7O047Ozs7OworMUZGMjtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUY3QyAwMzQ1Ozs7O047Ozs7OworMUZGMztHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBZUE9HRUdSQU1NRU5JO0xsOzA7TDswM0M5IDAzNDU7Ozs7Tjs7OzFGRkM7OzFGRkMKKzFGRjQ7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggT1hJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUY3OSAwMzQ1Ozs7O047Ozs7OworMUZGNjtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQRVJJU1BPTUVOSTtMbDswO0w7MDNDOSAwMzQyOzs7O047Ozs7OworMUZGNztHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUZGNiAwMzQ1Ozs7O047Ozs7OworMUZGODtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OIFdJVEggVkFSSUE7THU7MDtMOzAzOUYgMDMwMDs7OztOOzs7OzFGNzg7CisxRkY5O0dSRUVLIENBUElUQUwgTEVUVEVSIE9NSUNST04gV0lUSCBPWElBO0x1OzA7TDswMzlGIDAzMDE7Ozs7Tjs7OzsxRjc5OworMUZGQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFZBUklBO0x1OzA7TDswM0E5IDAzMDA7Ozs7Tjs7OzsxRjdDOworMUZGQjtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIE9YSUE7THU7MDtMOzAzQTkgMDMwMTs7OztOOzs7OzFGN0Q7CisxRkZDO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFJPU0dFR1JBTU1FTkk7THU7MDtMOzAzQTkgMDM0NTs7OztOOzs7OzFGRjM7CisxRkZEO0dSRUVLIE9YSUE7U2s7MDtPTjswMEI0Ozs7O047Ozs7OworMUZGRTtHUkVFSyBEQVNJQTtTazswO09OOzxjb21wYXQ+IDAwMjAgMDMxNDs7OztOOzs7OzsKKzIwMDA7RU4gUVVBRDtaczswO1dTOzIwMDI7Ozs7Tjs7Ozs7CisyMDAxO0VNIFFVQUQ7WnM7MDtXUzsyMDAzOzs7O047Ozs7OworMjAwMjtFTiBTUEFDRTtaczswO1dTOzxjb21wYXQ+IDAwMjA7Ozs7Tjs7Ozs7CisyMDAzO0VNIFNQQUNFO1pzOzA7V1M7PGNvbXBhdD4gMDAyMDs7OztOOzs7OzsKKzIwMDQ7VEhSRUUtUEVSLUVNIFNQQUNFO1pzOzA7V1M7PGNvbXBhdD4gMDAyMDs7OztOOzs7OzsKKzIwMDU7Rk9VUi1QRVItRU0gU1BBQ0U7WnM7MDtXUzs8Y29tcGF0PiAwMDIwOzs7O047Ozs7OworMjAwNjtTSVgtUEVSLUVNIFNQQUNFO1pzOzA7V1M7PGNvbXBhdD4gMDAyMDs7OztOOzs7OzsKKzIwMDc7RklHVVJFIFNQQUNFO1pzOzA7Q1M7PG5vQnJlYWs+IDAwMjA7Ozs7Tjs7Ozs7CisyMDA4O1BVTkNUVUFUSU9OIFNQQUNFO1pzOzA7V1M7PGNvbXBhdD4gMDAyMDs7OztOOzs7OzsKKzIwMDk7VEhJTiBTUEFDRTtaczswO1dTOzxjb21wYXQ+IDAwMjA7Ozs7Tjs7Ozs7CisyMDBBO0hBSVIgU1BBQ0U7WnM7MDtXUzs8Y29tcGF0PiAwMDIwOzs7O047Ozs7OworMjAwQjtaRVJPIFdJRFRIIFNQQUNFO1pzOzA7V1M7Ozs7O047Ozs7OworMjAwQztaRVJPIFdJRFRIIE5PTi1KT0lORVI7Q2Y7MDtPTjs7Ozs7Tjs7Ozs7CisyMDBEO1pFUk8gV0lEVEggSk9JTkVSO0NmOzA7T047Ozs7O047Ozs7OworMjAwRTtMRUZULVRPLVJJR0hUIE1BUks7Q2Y7MDtMOzs7OztOOzs7OzsKKzIwMEY7UklHSFQtVE8tTEVGVCBNQVJLO0NmOzA7Ujs7Ozs7Tjs7Ozs7CisyMDEwO0hZUEhFTjtQZDswO09OOzs7OztOOzs7OzsKKzIwMTE7Tk9OLUJSRUFLSU5HIEhZUEhFTjtQZDswO09OOzxub0JyZWFrPiAyMDEwOzs7O047Ozs7OworMjAxMjtGSUdVUkUgREFTSDtQZDswO09OOzs7OztOOzs7OzsKKzIwMTM7RU4gREFTSDtQZDswO09OOzs7OztOOzs7OzsKKzIwMTQ7RU0gREFTSDtQZDswO09OOzs7OztOOzs7OzsKKzIwMTU7SE9SSVpPTlRBTCBCQVI7UGQ7MDtPTjs7Ozs7TjtRVU9UQVRJT04gREFTSDs7OzsKKzIwMTY7RE9VQkxFIFZFUlRJQ0FMIExJTkU7UG87MDtPTjs7Ozs7TjtET1VCTEUgVkVSVElDQUwgQkFSOzs7OworMjAxNztET1VCTEUgTE9XIExJTkU7UG87MDtPTjs8Y29tcGF0PiAwMDIwIDAzMzM7Ozs7TjtTUEFDSU5HIERPVUJMRSBVTkRFUlNDT1JFOzs7OworMjAxODtMRUZUIFNJTkdMRSBRVU9UQVRJT04gTUFSSztQaTswO09OOzs7OztOO1NJTkdMRSBUVVJORUQgQ09NTUEgUVVPVEFUSU9OIE1BUks7Ozs7CisyMDE5O1JJR0hUIFNJTkdMRSBRVU9UQVRJT04gTUFSSztQZjswO09OOzs7OztOO1NJTkdMRSBDT01NQSBRVU9UQVRJT04gTUFSSzs7OzsKKzIwMUE7U0lOR0xFIExPVy05IFFVT1RBVElPTiBNQVJLO1BzOzA7T047Ozs7O047TE9XIFNJTkdMRSBDT01NQSBRVU9UQVRJT04gTUFSSzs7OzsKKzIwMUI7U0lOR0xFIEhJR0gtUkVWRVJTRUQtOSBRVU9UQVRJT04gTUFSSztQaTswO09OOzs7OztOO1NJTkdMRSBSRVZFUlNFRCBDT01NQSBRVU9UQVRJT04gTUFSSzs7OzsKKzIwMUM7TEVGVCBET1VCTEUgUVVPVEFUSU9OIE1BUks7UGk7MDtPTjs7Ozs7TjtET1VCTEUgVFVSTkVEIENPTU1BIFFVT1RBVElPTiBNQVJLOzs7OworMjAxRDtSSUdIVCBET1VCTEUgUVVPVEFUSU9OIE1BUks7UGY7MDtPTjs7Ozs7TjtET1VCTEUgQ09NTUEgUVVPVEFUSU9OIE1BUks7Ozs7CisyMDFFO0RPVUJMRSBMT1ctOSBRVU9UQVRJT04gTUFSSztQczswO09OOzs7OztOO0xPVyBET1VCTEUgQ09NTUEgUVVPVEFUSU9OIE1BUks7Ozs7CisyMDFGO0RPVUJMRSBISUdILVJFVkVSU0VELTkgUVVPVEFUSU9OIE1BUks7UGk7MDtPTjs7Ozs7TjtET1VCTEUgUkVWRVJTRUQgQ09NTUEgUVVPVEFUSU9OIE1BUks7Ozs7CisyMDIwO0RBR0dFUjtQbzswO09OOzs7OztOOzs7OzsKKzIwMjE7RE9VQkxFIERBR0dFUjtQbzswO09OOzs7OztOOzs7OzsKKzIwMjI7QlVMTEVUO1BvOzA7T047Ozs7O047Ozs7OworMjAyMztUUklBTkdVTEFSIEJVTExFVDtQbzswO09OOzs7OztOOzs7OzsKKzIwMjQ7T05FIERPVCBMRUFERVI7UG87MDtPTjs8Y29tcGF0PiAwMDJFOzs7O047Ozs7OworMjAyNTtUV08gRE9UIExFQURFUjtQbzswO09OOzxjb21wYXQ+IDAwMkUgMDAyRTs7OztOOzs7OzsKKzIwMjY7SE9SSVpPTlRBTCBFTExJUFNJUztQbzswO09OOzxjb21wYXQ+IDAwMkUgMDAyRSAwMDJFOzs7O047Ozs7OworMjAyNztIWVBIRU5BVElPTiBQT0lOVDtQbzswO09OOzs7OztOOzs7OzsKKzIwMjg7TElORSBTRVBBUkFUT1I7Wmw7MDtCOzs7OztOOzs7OzsKKzIwMjk7UEFSQUdSQVBIIFNFUEFSQVRPUjtacDswO0I7Ozs7O047Ozs7OworMjAyQTtMRUZULVRPLVJJR0hUIEVNQkVERElORztDZjswO0w7Ozs7O047Ozs7OworMjAyQjtSSUdIVC1UTy1MRUZUIEVNQkVERElORztDZjswO1I7Ozs7O047Ozs7OworMjAyQztQT1AgRElSRUNUSU9OQUwgRk9STUFUVElORztDZjswO09OOzs7OztOOzs7OzsKKzIwMkQ7TEVGVC1UTy1SSUdIVCBPVkVSUklERTtDZjswO0w7Ozs7O047Ozs7OworMjAyRTtSSUdIVC1UTy1MRUZUIE9WRVJSSURFO0NmOzA7Ujs7Ozs7Tjs7Ozs7CisyMDMwO1BFUiBNSUxMRSBTSUdOO1BvOzA7RVQ7Ozs7O047Ozs7OworMjAzMTtQRVIgVEVOIFRIT1VTQU5EIFNJR047UG87MDtFVDs7Ozs7Tjs7Ozs7CisyMDMyO1BSSU1FO1BvOzA7RVQ7Ozs7O047Ozs7OworMjAzMztET1VCTEUgUFJJTUU7UG87MDtFVDs8Y29tcGF0PiAyMDMyIDIwMzI7Ozs7Tjs7Ozs7CisyMDM0O1RSSVBMRSBQUklNRTtQbzswO0VUOzxjb21wYXQ+IDIwMzIgMjAzMiAyMDMyOzs7O047Ozs7OworMjAzNTtSRVZFUlNFRCBQUklNRTtQbzswO09OOzs7OztOOzs7OzsKKzIwMzY7UkVWRVJTRUQgRE9VQkxFIFBSSU1FO1BvOzA7T047PGNvbXBhdD4gMjAzNSAyMDM1Ozs7O047Ozs7OworMjAzNztSRVZFUlNFRCBUUklQTEUgUFJJTUU7UG87MDtPTjs8Y29tcGF0PiAyMDM1IDIwMzUgMjAzNTs7OztOOzs7OzsKKzIwMzg7Q0FSRVQ7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDM5O1NJTkdMRSBMRUZULVBPSU5USU5HIEFOR0xFIFFVT1RBVElPTiBNQVJLO1BpOzA7T047Ozs7O047TEVGVCBQT0lOVElORyBTSU5HTEUgR1VJTExFTUVUOzs7OworMjAzQTtTSU5HTEUgUklHSFQtUE9JTlRJTkcgQU5HTEUgUVVPVEFUSU9OIE1BUks7UGY7MDtPTjs7Ozs7TjtSSUdIVCBQT0lOVElORyBTSU5HTEUgR1VJTExFTUVUOzs7OworMjAzQjtSRUZFUkVOQ0UgTUFSSztQbzswO09OOzs7OztOOzs7OzsKKzIwM0M7RE9VQkxFIEVYQ0xBTUFUSU9OIE1BUks7UG87MDtPTjs8Y29tcGF0PiAwMDIxIDAwMjE7Ozs7Tjs7Ozs7CisyMDNEO0lOVEVSUk9CQU5HO1BvOzA7T047Ozs7O047Ozs7OworMjAzRTtPVkVSTElORTtQbzswO09OOzxjb21wYXQ+IDAwMjAgMDMwNTs7OztOO1NQQUNJTkcgT1ZFUlNDT1JFOzs7OworMjAzRjtVTkRFUlRJRTtQYzswO09OOzs7OztOOztFbm90aWtvbjs7OworMjA0MDtDSEFSQUNURVIgVElFO1BjOzA7T047Ozs7O047Ozs7OworMjA0MTtDQVJFVCBJTlNFUlRJT04gUE9JTlQ7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDQyO0FTVEVSSVNNO1BvOzA7T047Ozs7O047Ozs7OworMjA0MztIWVBIRU4gQlVMTEVUO1BvOzA7T047Ozs7O047Ozs7OworMjA0NDtGUkFDVElPTiBTTEFTSDtTbTswO09OOzs7OztOOzs7OzsKKzIwNDU7TEVGVCBTUVVBUkUgQlJBQ0tFVCBXSVRIIFFVSUxMO1BzOzA7T047Ozs7O1k7Ozs7OworMjA0NjtSSUdIVCBTUVVBUkUgQlJBQ0tFVCBXSVRIIFFVSUxMO1BlOzA7T047Ozs7O1k7Ozs7OworMjA2QTtJTkhJQklUIFNZTU1FVFJJQyBTV0FQUElORztDZjswO09OOzs7OztOOzs7OzsKKzIwNkI7QUNUSVZBVEUgU1lNTUVUUklDIFNXQVBQSU5HO0NmOzA7T047Ozs7O047Ozs7OworMjA2QztJTkhJQklUIEFSQUJJQyBGT1JNIFNIQVBJTkc7Q2Y7MDtPTjs7Ozs7Tjs7Ozs7CisyMDZEO0FDVElWQVRFIEFSQUJJQyBGT1JNIFNIQVBJTkc7Q2Y7MDtPTjs7Ozs7Tjs7Ozs7CisyMDZFO05BVElPTkFMIERJR0lUIFNIQVBFUztDZjswO09OOzs7OztOOzs7OzsKKzIwNkY7Tk9NSU5BTCBESUdJVCBTSEFQRVM7Q2Y7MDtPTjs7Ozs7Tjs7Ozs7CisyMDcwO1NVUEVSU0NSSVBUIFpFUk87Tm87MDtFTjs8c3VwZXI+IDAwMzA7MDswOzA7TjtTVVBFUlNDUklQVCBESUdJVCBaRVJPOzs7OworMjA3NDtTVVBFUlNDUklQVCBGT1VSO05vOzA7RU47PHN1cGVyPiAwMDM0OzQ7NDs0O047U1VQRVJTQ1JJUFQgRElHSVQgRk9VUjs7OzsKKzIwNzU7U1VQRVJTQ1JJUFQgRklWRTtObzswO0VOOzxzdXBlcj4gMDAzNTs1OzU7NTtOO1NVUEVSU0NSSVBUIERJR0lUIEZJVkU7Ozs7CisyMDc2O1NVUEVSU0NSSVBUIFNJWDtObzswO0VOOzxzdXBlcj4gMDAzNjs2OzY7NjtOO1NVUEVSU0NSSVBUIERJR0lUIFNJWDs7OzsKKzIwNzc7U1VQRVJTQ1JJUFQgU0VWRU47Tm87MDtFTjs8c3VwZXI+IDAwMzc7Nzs3Ozc7TjtTVVBFUlNDUklQVCBESUdJVCBTRVZFTjs7OzsKKzIwNzg7U1VQRVJTQ1JJUFQgRUlHSFQ7Tm87MDtFTjs8c3VwZXI+IDAwMzg7ODs4Ozg7TjtTVVBFUlNDUklQVCBESUdJVCBFSUdIVDs7OzsKKzIwNzk7U1VQRVJTQ1JJUFQgTklORTtObzswO0VOOzxzdXBlcj4gMDAzOTs5Ozk7OTtOO1NVUEVSU0NSSVBUIERJR0lUIE5JTkU7Ozs7CisyMDdBO1NVUEVSU0NSSVBUIFBMVVMgU0lHTjtTbTswO0VUOzxzdXBlcj4gMDAyQjs7OztOOzs7OzsKKzIwN0I7U1VQRVJTQ1JJUFQgTUlOVVM7U207MDtFVDs8c3VwZXI+IDIyMTI7Ozs7TjtTVVBFUlNDUklQVCBIWVBIRU4tTUlOVVM7Ozs7CisyMDdDO1NVUEVSU0NSSVBUIEVRVUFMUyBTSUdOO1NtOzA7T047PHN1cGVyPiAwMDNEOzs7O047Ozs7OworMjA3RDtTVVBFUlNDUklQVCBMRUZUIFBBUkVOVEhFU0lTO1BzOzA7T047PHN1cGVyPiAwMDI4Ozs7O1k7U1VQRVJTQ1JJUFQgT1BFTklORyBQQVJFTlRIRVNJUzs7OzsKKzIwN0U7U1VQRVJTQ1JJUFQgUklHSFQgUEFSRU5USEVTSVM7UGU7MDtPTjs8c3VwZXI+IDAwMjk7Ozs7WTtTVVBFUlNDUklQVCBDTE9TSU5HIFBBUkVOVEhFU0lTOzs7OworMjA3RjtTVVBFUlNDUklQVCBMQVRJTiBTTUFMTCBMRVRURVIgTjtMbDswO0w7PHN1cGVyPiAwMDZFOzs7O047Ozs7OworMjA4MDtTVUJTQ1JJUFQgWkVSTztObzswO0VOOzxzdWI+IDAwMzA7MDswOzA7TjtTVUJTQ1JJUFQgRElHSVQgWkVSTzs7OzsKKzIwODE7U1VCU0NSSVBUIE9ORTtObzswO0VOOzxzdWI+IDAwMzE7MTsxOzE7TjtTVUJTQ1JJUFQgRElHSVQgT05FOzs7OworMjA4MjtTVUJTQ1JJUFQgVFdPO05vOzA7RU47PHN1Yj4gMDAzMjsyOzI7MjtOO1NVQlNDUklQVCBESUdJVCBUV087Ozs7CisyMDgzO1NVQlNDUklQVCBUSFJFRTtObzswO0VOOzxzdWI+IDAwMzM7MzszOzM7TjtTVUJTQ1JJUFQgRElHSVQgVEhSRUU7Ozs7CisyMDg0O1NVQlNDUklQVCBGT1VSO05vOzA7RU47PHN1Yj4gMDAzNDs0OzQ7NDtOO1NVQlNDUklQVCBESUdJVCBGT1VSOzs7OworMjA4NTtTVUJTQ1JJUFQgRklWRTtObzswO0VOOzxzdWI+IDAwMzU7NTs1OzU7TjtTVUJTQ1JJUFQgRElHSVQgRklWRTs7OzsKKzIwODY7U1VCU0NSSVBUIFNJWDtObzswO0VOOzxzdWI+IDAwMzY7Njs2OzY7TjtTVUJTQ1JJUFQgRElHSVQgU0lYOzs7OworMjA4NztTVUJTQ1JJUFQgU0VWRU47Tm87MDtFTjs8c3ViPiAwMDM3Ozc7Nzs3O047U1VCU0NSSVBUIERJR0lUIFNFVkVOOzs7OworMjA4ODtTVUJTQ1JJUFQgRUlHSFQ7Tm87MDtFTjs8c3ViPiAwMDM4Ozg7ODs4O047U1VCU0NSSVBUIERJR0lUIEVJR0hUOzs7OworMjA4OTtTVUJTQ1JJUFQgTklORTtObzswO0VOOzxzdWI+IDAwMzk7OTs5Ozk7TjtTVUJTQ1JJUFQgRElHSVQgTklORTs7OzsKKzIwOEE7U1VCU0NSSVBUIFBMVVMgU0lHTjtTbTswO0VUOzxzdWI+IDAwMkI7Ozs7Tjs7Ozs7CisyMDhCO1NVQlNDUklQVCBNSU5VUztTbTswO0VUOzxzdWI+IDIyMTI7Ozs7TjtTVUJTQ1JJUFQgSFlQSEVOLU1JTlVTOzs7OworMjA4QztTVUJTQ1JJUFQgRVFVQUxTIFNJR047U207MDtPTjs8c3ViPiAwMDNEOzs7O047Ozs7OworMjA4RDtTVUJTQ1JJUFQgTEVGVCBQQVJFTlRIRVNJUztQczswO09OOzxzdWI+IDAwMjg7Ozs7WTtTVUJTQ1JJUFQgT1BFTklORyBQQVJFTlRIRVNJUzs7OzsKKzIwOEU7U1VCU0NSSVBUIFJJR0hUIFBBUkVOVEhFU0lTO1BlOzA7T047PHN1Yj4gMDAyOTs7OztZO1NVQlNDUklQVCBDTE9TSU5HIFBBUkVOVEhFU0lTOzs7OworMjBBMDtFVVJPLUNVUlJFTkNZIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEExO0NPTE9OIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEEyO0NSVVpFSVJPIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEEzO0ZSRU5DSCBGUkFOQyBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBBNDtMSVJBIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEE1O01JTEwgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQTY7TkFJUkEgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQTc7UEVTRVRBIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEE4O1JVUEVFIFNJR047U2M7MDtFVDs8Y29tcGF0PiAwMDUyIDAwNzM7Ozs7Tjs7Ozs7CisyMEE5O1dPTiBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBBQTtORVcgU0hFUUVMIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEFCO0RPTkcgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQUM7RVVSTyBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBEMDtDT01CSU5JTkcgTEVGVCBIQVJQT09OIEFCT1ZFO01uOzIzMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBMRUZUIEhBUlBPT04gQUJPVkU7Ozs7CisyMEQxO0NPTUJJTklORyBSSUdIVCBIQVJQT09OIEFCT1ZFO01uOzIzMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBSSUdIVCBIQVJQT09OIEFCT1ZFOzs7OworMjBEMjtDT01CSU5JTkcgTE9ORyBWRVJUSUNBTCBMSU5FIE9WRVJMQVk7TW47MTtPTjs7Ozs7TjtOT04tU1BBQ0lORyBMT05HIFZFUlRJQ0FMIEJBUiBPVkVSTEFZOzs7OworMjBEMztDT01CSU5JTkcgU0hPUlQgVkVSVElDQUwgTElORSBPVkVSTEFZO01uOzE7T047Ozs7O047Tk9OLVNQQUNJTkcgU0hPUlQgVkVSVElDQUwgQkFSIE9WRVJMQVk7Ozs7CisyMEQ0O0NPTUJJTklORyBBTlRJQ0xPQ0tXSVNFIEFSUk9XIEFCT1ZFO01uOzIzMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBBTlRJQ0xPQ0tXSVNFIEFSUk9XIEFCT1ZFOzs7OworMjBENTtDT01CSU5JTkcgQ0xPQ0tXSVNFIEFSUk9XIEFCT1ZFO01uOzIzMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBDTE9DS1dJU0UgQVJST1cgQUJPVkU7Ozs7CisyMEQ2O0NPTUJJTklORyBMRUZUIEFSUk9XIEFCT1ZFO01uOzIzMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBMRUZUIEFSUk9XIEFCT1ZFOzs7OworMjBENztDT01CSU5JTkcgUklHSFQgQVJST1cgQUJPVkU7TW47MjMwO09OOzs7OztOO05PTi1TUEFDSU5HIFJJR0hUIEFSUk9XIEFCT1ZFOzs7OworMjBEODtDT01CSU5JTkcgUklORyBPVkVSTEFZO01uOzE7T047Ozs7O047Tk9OLVNQQUNJTkcgUklORyBPVkVSTEFZOzs7OworMjBEOTtDT01CSU5JTkcgQ0xPQ0tXSVNFIFJJTkcgT1ZFUkxBWTtNbjsxO09OOzs7OztOO05PTi1TUEFDSU5HIENMT0NLV0lTRSBSSU5HIE9WRVJMQVk7Ozs7CisyMERBO0NPTUJJTklORyBBTlRJQ0xPQ0tXSVNFIFJJTkcgT1ZFUkxBWTtNbjsxO09OOzs7OztOO05PTi1TUEFDSU5HIEFOVElDTE9DS1dJU0UgUklORyBPVkVSTEFZOzs7OworMjBEQjtDT01CSU5JTkcgVEhSRUUgRE9UUyBBQk9WRTtNbjsyMzA7T047Ozs7O047Tk9OLVNQQUNJTkcgVEhSRUUgRE9UUyBBQk9WRTs7OzsKKzIwREM7Q09NQklOSU5HIEZPVVIgRE9UUyBBQk9WRTtNbjsyMzA7T047Ozs7O047Tk9OLVNQQUNJTkcgRk9VUiBET1RTIEFCT1ZFOzs7OworMjBERDtDT01CSU5JTkcgRU5DTE9TSU5HIENJUkNMRTtNZTswO09OOzs7OztOO0VOQ0xPU0lORyBDSVJDTEU7Ozs7CisyMERFO0NPTUJJTklORyBFTkNMT1NJTkcgU1FVQVJFO01lOzA7T047Ozs7O047RU5DTE9TSU5HIFNRVUFSRTs7OzsKKzIwREY7Q09NQklOSU5HIEVOQ0xPU0lORyBESUFNT05EO01lOzA7T047Ozs7O047RU5DTE9TSU5HIERJQU1PTkQ7Ozs7CisyMEUwO0NPTUJJTklORyBFTkNMT1NJTkcgQ0lSQ0xFIEJBQ0tTTEFTSDtNZTswO09OOzs7OztOO0VOQ0xPU0lORyBDSVJDTEUgU0xBU0g7Ozs7CisyMEUxO0NPTUJJTklORyBMRUZUIFJJR0hUIEFSUk9XIEFCT1ZFO01uOzE7T047Ozs7O047Tk9OLVNQQUNJTkcgTEVGVCBSSUdIVCBBUlJPVyBBQk9WRTs7OzsKKzIxMDA7QUNDT1VOVCBPRjtTbzswO09OOzs7OztOOzs7OzsKKzIxMDE7QUREUkVTU0VEIFRPIFRIRSBTVUJKRUNUO1NvOzA7T047Ozs7O047Ozs7OworMjEwMjtET1VCTEUtU1RSVUNLIENBUElUQUwgQztMdTswO0w7PGZvbnQ+IDAwNDM7Ozs7TjtET1VCTEUtU1RSVUNLIEM7Ozs7CisyMTAzO0RFR1JFRSBDRUxTSVVTO1NvOzA7T047PGNvbXBhdD4gMDBCMCAwMDQzOzs7O047REVHUkVFUyBDRU5USUdSQURFOzs7OworMjEwNDtDRU5UUkUgTElORSBTWU1CT0w7U287MDtPTjs7Ozs7TjtDIEwgU1lNQk9MOzs7OworMjEwNTtDQVJFIE9GO1NvOzA7T047Ozs7O047Ozs7OworMjEwNjtDQURBIFVOQTtTbzswO09OOzs7OztOOzs7OzsKKzIxMDc7RVVMRVIgQ09OU1RBTlQ7THU7MDtMOzxjb21wYXQ+IDAxOTA7Ozs7TjtFVUxFUlM7Ozs7CisyMTA4O1NDUlVQTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMTA5O0RFR1JFRSBGQUhSRU5IRUlUO1NvOzA7T047PGNvbXBhdD4gMDBCMCAwMDQ2Ozs7O047REVHUkVFUyBGQUhSRU5IRUlUOzs7OworMjEwQTtTQ1JJUFQgU01BTEwgRztMbDswO0w7PGZvbnQ+IDAwNjc7Ozs7Tjs7Ozs7CisyMTBCO1NDUklQVCBDQVBJVEFMIEg7THU7MDtMOzxmb250PiAwMDQ4Ozs7O047U0NSSVBUIEg7Ozs7CisyMTBDO0JMQUNLLUxFVFRFUiBDQVBJVEFMIEg7THU7MDtMOzxmb250PiAwMDQ4Ozs7O047QkxBQ0stTEVUVEVSIEg7Ozs7CisyMTBEO0RPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBIO0x1OzA7TDs8Zm9udD4gMDA0ODs7OztOO0RPVUJMRS1TVFJVQ0sgSDs7OzsKKzIxMEU7UExBTkNLIENPTlNUQU5UO0xsOzA7TDs8Zm9udD4gMDA2ODs7OztOOzs7OzsKKzIxMEY7UExBTkNLIENPTlNUQU5UIE9WRVIgVFdPIFBJO0xsOzA7TDs8Zm9udD4gMDEyNzs7OztOO1BMQU5DSyBDT05TVEFOVCBPVkVSIDIgUEk7Ozs7CisyMTEwO1NDUklQVCBDQVBJVEFMIEk7THU7MDtMOzxmb250PiAwMDQ5Ozs7O047U0NSSVBUIEk7Ozs7CisyMTExO0JMQUNLLUxFVFRFUiBDQVBJVEFMIEk7THU7MDtMOzxmb250PiAwMDQ5Ozs7O047QkxBQ0stTEVUVEVSIEk7Ozs7CisyMTEyO1NDUklQVCBDQVBJVEFMIEw7THU7MDtMOzxmb250PiAwMDRDOzs7O047U0NSSVBUIEw7Ozs7CisyMTEzO1NDUklQVCBTTUFMTCBMO0xsOzA7TDs8Zm9udD4gMDA2Qzs7OztOOzs7OzsKKzIxMTQ7TCBCIEJBUiBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMTE1O0RPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBOO0x1OzA7TDs8Zm9udD4gMDA0RTs7OztOO0RPVUJMRS1TVFJVQ0sgTjs7OzsKKzIxMTY7TlVNRVJPIFNJR047U287MDtPTjs8Y29tcGF0PiAwMDRFIDAwNkY7Ozs7TjtOVU1FUk87Ozs7CisyMTE3O1NPVU5EIFJFQ09SRElORyBDT1BZUklHSFQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMTE4O1NDUklQVCBDQVBJVEFMIFA7THU7MDtMOzxmb250PiAwMDUwOzs7O047U0NSSVBUIFA7Ozs7CisyMTE5O0RPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBQO0x1OzA7TDs8Zm9udD4gMDA1MDs7OztOO0RPVUJMRS1TVFJVQ0sgUDs7OzsKKzIxMUE7RE9VQkxFLVNUUlVDSyBDQVBJVEFMIFE7THU7MDtMOzxmb250PiAwMDUxOzs7O047RE9VQkxFLVNUUlVDSyBROzs7OworMjExQjtTQ1JJUFQgQ0FQSVRBTCBSO0x1OzA7TDs8Zm9udD4gMDA1Mjs7OztOO1NDUklQVCBSOzs7OworMjExQztCTEFDSy1MRVRURVIgQ0FQSVRBTCBSO0x1OzA7TDs8Zm9udD4gMDA1Mjs7OztOO0JMQUNLLUxFVFRFUiBSOzs7OworMjExRDtET1VCTEUtU1RSVUNLIENBUElUQUwgUjtMdTswO0w7PGZvbnQ+IDAwNTI7Ozs7TjtET1VCTEUtU1RSVUNLIFI7Ozs7CisyMTFFO1BSRVNDUklQVElPTiBUQUtFO1NvOzA7T047Ozs7O047Ozs7OworMjExRjtSRVNQT05TRTtTbzswO09OOzs7OztOOzs7OzsKKzIxMjA7U0VSVklDRSBNQVJLO1NvOzA7T047PHN1cGVyPiAwMDUzIDAwNEQ7Ozs7Tjs7Ozs7CisyMTIxO1RFTEVQSE9ORSBTSUdOO1NvOzA7T047PGNvbXBhdD4gMDA1NCAwMDQ1IDAwNEM7Ozs7TjtUIEUgTCBTWU1CT0w7Ozs7CisyMTIyO1RSQURFIE1BUksgU0lHTjtTbzswO09OOzxzdXBlcj4gMDA1NCAwMDREOzs7O047VFJBREVNQVJLOzs7OworMjEyMztWRVJTSUNMRTtTbzswO09OOzs7OztOOzs7OzsKKzIxMjQ7RE9VQkxFLVNUUlVDSyBDQVBJVEFMIFo7THU7MDtMOzxmb250PiAwMDVBOzs7O047RE9VQkxFLVNUUlVDSyBaOzs7OworMjEyNTtPVU5DRSBTSUdOO1NvOzA7T047Ozs7O047T1VOQ0U7Ozs7CisyMTI2O09ITSBTSUdOO0x1OzA7TDswM0E5Ozs7O047T0hNOzs7OworMjEyNztJTlZFUlRFRCBPSE0gU0lHTjtTbzswO09OOzs7OztOO01ITzs7OzsKKzIxMjg7QkxBQ0stTEVUVEVSIENBUElUQUwgWjtMdTswO0w7PGZvbnQ+IDAwNUE7Ozs7TjtCTEFDSy1MRVRURVIgWjs7OzsKKzIxMjk7VFVSTkVEIEdSRUVLIFNNQUxMIExFVFRFUiBJT1RBO1NvOzA7T047Ozs7O047Ozs7OworMjEyQTtLRUxWSU4gU0lHTjtMdTswO0w7MDA0Qjs7OztOO0RFR1JFRVMgS0VMVklOOzs7OworMjEyQjtBTkdTVFJPTSBTSUdOO0x1OzA7TDswMEM1Ozs7O047QU5HU1RST00gVU5JVDs7OzsKKzIxMkM7U0NSSVBUIENBUElUQUwgQjtMdTswO0w7PGZvbnQ+IDAwNDI7Ozs7TjtTQ1JJUFQgQjs7OzsKKzIxMkQ7QkxBQ0stTEVUVEVSIENBUElUQUwgQztMdTswO0w7PGZvbnQ+IDAwNDM7Ozs7TjtCTEFDSy1MRVRURVIgQzs7OzsKKzIxMkU7RVNUSU1BVEVEIFNZTUJPTDtMbDswO0w7Ozs7O047Ozs7OworMjEyRjtTQ1JJUFQgU01BTEwgRTtMbDswO0w7PGZvbnQ+IDAwNjU7Ozs7Tjs7Ozs7CisyMTMwO1NDUklQVCBDQVBJVEFMIEU7THU7MDtMOzxmb250PiAwMDQ1Ozs7O047U0NSSVBUIEU7Ozs7CisyMTMxO1NDUklQVCBDQVBJVEFMIEY7THU7MDtMOzxmb250PiAwMDQ2Ozs7O047U0NSSVBUIEY7Ozs7CisyMTMyO1RVUk5FRCBDQVBJVEFMIEY7U287MDtPTjs7Ozs7TjtUVVJORUQgRjs7OzsKKzIxMzM7U0NSSVBUIENBUElUQUwgTTtMdTswO0w7PGZvbnQ+IDAwNEQ7Ozs7TjtTQ1JJUFQgTTs7OzsKKzIxMzQ7U0NSSVBUIFNNQUxMIE87TGw7MDtMOzxmb250PiAwMDZGOzs7O047Ozs7OworMjEzNTtBTEVGIFNZTUJPTDtMbzswO0w7PGNvbXBhdD4gMDVEMDs7OztOO0ZJUlNUIFRSQU5TRklOSVRFIENBUkRJTkFMOzs7OworMjEzNjtCRVQgU1lNQk9MO0xvOzA7TDs8Y29tcGF0PiAwNUQxOzs7O047U0VDT05EIFRSQU5TRklOSVRFIENBUkRJTkFMOzs7OworMjEzNztHSU1FTCBTWU1CT0w7TG87MDtMOzxjb21wYXQ+IDA1RDI7Ozs7TjtUSElSRCBUUkFOU0ZJTklURSBDQVJESU5BTDs7OzsKKzIxMzg7REFMRVQgU1lNQk9MO0xvOzA7TDs8Y29tcGF0PiAwNUQzOzs7O047Rk9VUlRIIFRSQU5TRklOSVRFIENBUkRJTkFMOzs7OworMjE1MztWVUxHQVIgRlJBQ1RJT04gT05FIFRISVJEO05vOzA7T047PGZyYWN0aW9uPiAwMDMxIDIwNDQgMDAzMzs7OzEvMztOO0ZSQUNUSU9OIE9ORSBUSElSRDs7OzsKKzIxNTQ7VlVMR0FSIEZSQUNUSU9OIFRXTyBUSElSRFM7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzIgMjA0NCAwMDMzOzs7Mi8zO047RlJBQ1RJT04gVFdPIFRISVJEUzs7OzsKKzIxNTU7VlVMR0FSIEZSQUNUSU9OIE9ORSBGSUZUSDtObzswO09OOzxmcmFjdGlvbj4gMDAzMSAyMDQ0IDAwMzU7OzsxLzU7TjtGUkFDVElPTiBPTkUgRklGVEg7Ozs7CisyMTU2O1ZVTEdBUiBGUkFDVElPTiBUV08gRklGVEhTO05vOzA7T047PGZyYWN0aW9uPiAwMDMyIDIwNDQgMDAzNTs7OzIvNTtOO0ZSQUNUSU9OIFRXTyBGSUZUSFM7Ozs7CisyMTU3O1ZVTEdBUiBGUkFDVElPTiBUSFJFRSBGSUZUSFM7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzMgMjA0NCAwMDM1Ozs7My81O047RlJBQ1RJT04gVEhSRUUgRklGVEhTOzs7OworMjE1ODtWVUxHQVIgRlJBQ1RJT04gRk9VUiBGSUZUSFM7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzQgMjA0NCAwMDM1Ozs7NC81O047RlJBQ1RJT04gRk9VUiBGSUZUSFM7Ozs7CisyMTU5O1ZVTEdBUiBGUkFDVElPTiBPTkUgU0lYVEg7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzEgMjA0NCAwMDM2Ozs7MS82O047RlJBQ1RJT04gT05FIFNJWFRIOzs7OworMjE1QTtWVUxHQVIgRlJBQ1RJT04gRklWRSBTSVhUSFM7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzUgMjA0NCAwMDM2Ozs7NS82O047RlJBQ1RJT04gRklWRSBTSVhUSFM7Ozs7CisyMTVCO1ZVTEdBUiBGUkFDVElPTiBPTkUgRUlHSFRIO05vOzA7T047PGZyYWN0aW9uPiAwMDMxIDIwNDQgMDAzODs7OzEvODtOO0ZSQUNUSU9OIE9ORSBFSUdIVEg7Ozs7CisyMTVDO1ZVTEdBUiBGUkFDVElPTiBUSFJFRSBFSUdIVEhTO05vOzA7T047PGZyYWN0aW9uPiAwMDMzIDIwNDQgMDAzODs7OzMvODtOO0ZSQUNUSU9OIFRIUkVFIEVJR0hUSFM7Ozs7CisyMTVEO1ZVTEdBUiBGUkFDVElPTiBGSVZFIEVJR0hUSFM7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzUgMjA0NCAwMDM4Ozs7NS84O047RlJBQ1RJT04gRklWRSBFSUdIVEhTOzs7OworMjE1RTtWVUxHQVIgRlJBQ1RJT04gU0VWRU4gRUlHSFRIUztObzswO09OOzxmcmFjdGlvbj4gMDAzNyAyMDQ0IDAwMzg7Ozs3Lzg7TjtGUkFDVElPTiBTRVZFTiBFSUdIVEhTOzs7OworMjE1RjtGUkFDVElPTiBOVU1FUkFUT1IgT05FO05vOzA7T047PGZyYWN0aW9uPiAwMDMxIDIwNDQ7OzsxO047Ozs7OworMjE2MDtST01BTiBOVU1FUkFMIE9ORTtObDswO0w7PGNvbXBhdD4gMDA0OTs7OzE7Tjs7OzsyMTcwOworMjE2MTtST01BTiBOVU1FUkFMIFRXTztObDswO0w7PGNvbXBhdD4gMDA0OSAwMDQ5Ozs7MjtOOzs7OzIxNzE7CisyMTYyO1JPTUFOIE5VTUVSQUwgVEhSRUU7Tmw7MDtMOzxjb21wYXQ+IDAwNDkgMDA0OSAwMDQ5Ozs7MztOOzs7OzIxNzI7CisyMTYzO1JPTUFOIE5VTUVSQUwgRk9VUjtObDswO0w7PGNvbXBhdD4gMDA0OSAwMDU2Ozs7NDtOOzs7OzIxNzM7CisyMTY0O1JPTUFOIE5VTUVSQUwgRklWRTtObDswO0w7PGNvbXBhdD4gMDA1Njs7OzU7Tjs7OzsyMTc0OworMjE2NTtST01BTiBOVU1FUkFMIFNJWDtObDswO0w7PGNvbXBhdD4gMDA1NiAwMDQ5Ozs7NjtOOzs7OzIxNzU7CisyMTY2O1JPTUFOIE5VTUVSQUwgU0VWRU47Tmw7MDtMOzxjb21wYXQ+IDAwNTYgMDA0OSAwMDQ5Ozs7NztOOzs7OzIxNzY7CisyMTY3O1JPTUFOIE5VTUVSQUwgRUlHSFQ7Tmw7MDtMOzxjb21wYXQ+IDAwNTYgMDA0OSAwMDQ5IDAwNDk7Ozs4O047Ozs7MjE3NzsKKzIxNjg7Uk9NQU4gTlVNRVJBTCBOSU5FO05sOzA7TDs8Y29tcGF0PiAwMDQ5IDAwNTg7Ozs5O047Ozs7MjE3ODsKKzIxNjk7Uk9NQU4gTlVNRVJBTCBURU47Tmw7MDtMOzxjb21wYXQ+IDAwNTg7OzsxMDtOOzs7OzIxNzk7CisyMTZBO1JPTUFOIE5VTUVSQUwgRUxFVkVOO05sOzA7TDs8Y29tcGF0PiAwMDU4IDAwNDk7OzsxMTtOOzs7OzIxN0E7CisyMTZCO1JPTUFOIE5VTUVSQUwgVFdFTFZFO05sOzA7TDs8Y29tcGF0PiAwMDU4IDAwNDkgMDA0OTs7OzEyO047Ozs7MjE3QjsKKzIxNkM7Uk9NQU4gTlVNRVJBTCBGSUZUWTtObDswO0w7PGNvbXBhdD4gMDA0Qzs7OzUwO047Ozs7MjE3QzsKKzIxNkQ7Uk9NQU4gTlVNRVJBTCBPTkUgSFVORFJFRDtObDswO0w7PGNvbXBhdD4gMDA0Mzs7OzEwMDtOOzs7OzIxN0Q7CisyMTZFO1JPTUFOIE5VTUVSQUwgRklWRSBIVU5EUkVEO05sOzA7TDs8Y29tcGF0PiAwMDQ0Ozs7NTAwO047Ozs7MjE3RTsKKzIxNkY7Uk9NQU4gTlVNRVJBTCBPTkUgVEhPVVNBTkQ7Tmw7MDtMOzxjb21wYXQ+IDAwNEQ7OzsxMDAwO047Ozs7MjE3RjsKKzIxNzA7U01BTEwgUk9NQU4gTlVNRVJBTCBPTkU7Tmw7MDtMOzxjb21wYXQ+IDAwNjk7OzsxO047OzsyMTYwOzsyMTYwCisyMTcxO1NNQUxMIFJPTUFOIE5VTUVSQUwgVFdPO05sOzA7TDs8Y29tcGF0PiAwMDY5IDAwNjk7OzsyO047OzsyMTYxOzsyMTYxCisyMTcyO1NNQUxMIFJPTUFOIE5VTUVSQUwgVEhSRUU7Tmw7MDtMOzxjb21wYXQ+IDAwNjkgMDA2OSAwMDY5Ozs7MztOOzs7MjE2Mjs7MjE2MgorMjE3MztTTUFMTCBST01BTiBOVU1FUkFMIEZPVVI7Tmw7MDtMOzxjb21wYXQ+IDAwNjkgMDA3Njs7OzQ7Tjs7OzIxNjM7OzIxNjMKKzIxNzQ7U01BTEwgUk9NQU4gTlVNRVJBTCBGSVZFO05sOzA7TDs8Y29tcGF0PiAwMDc2Ozs7NTtOOzs7MjE2NDs7MjE2NAorMjE3NTtTTUFMTCBST01BTiBOVU1FUkFMIFNJWDtObDswO0w7PGNvbXBhdD4gMDA3NiAwMDY5Ozs7NjtOOzs7MjE2NTs7MjE2NQorMjE3NjtTTUFMTCBST01BTiBOVU1FUkFMIFNFVkVOO05sOzA7TDs8Y29tcGF0PiAwMDc2IDAwNjkgMDA2OTs7Ozc7Tjs7OzIxNjY7OzIxNjYKKzIxNzc7U01BTEwgUk9NQU4gTlVNRVJBTCBFSUdIVDtObDswO0w7PGNvbXBhdD4gMDA3NiAwMDY5IDAwNjkgMDA2OTs7Ozg7Tjs7OzIxNjc7OzIxNjcKKzIxNzg7U01BTEwgUk9NQU4gTlVNRVJBTCBOSU5FO05sOzA7TDs8Y29tcGF0PiAwMDY5IDAwNzg7Ozs5O047OzsyMTY4OzsyMTY4CisyMTc5O1NNQUxMIFJPTUFOIE5VTUVSQUwgVEVOO05sOzA7TDs8Y29tcGF0PiAwMDc4Ozs7MTA7Tjs7OzIxNjk7OzIxNjkKKzIxN0E7U01BTEwgUk9NQU4gTlVNRVJBTCBFTEVWRU47Tmw7MDtMOzxjb21wYXQ+IDAwNzggMDA2OTs7OzExO047OzsyMTZBOzsyMTZBCisyMTdCO1NNQUxMIFJPTUFOIE5VTUVSQUwgVFdFTFZFO05sOzA7TDs8Y29tcGF0PiAwMDc4IDAwNjkgMDA2OTs7OzEyO047OzsyMTZCOzsyMTZCCisyMTdDO1NNQUxMIFJPTUFOIE5VTUVSQUwgRklGVFk7Tmw7MDtMOzxjb21wYXQ+IDAwNkM7Ozs1MDtOOzs7MjE2Qzs7MjE2QworMjE3RDtTTUFMTCBST01BTiBOVU1FUkFMIE9ORSBIVU5EUkVEO05sOzA7TDs8Y29tcGF0PiAwMDYzOzs7MTAwO047OzsyMTZEOzsyMTZECisyMTdFO1NNQUxMIFJPTUFOIE5VTUVSQUwgRklWRSBIVU5EUkVEO05sOzA7TDs8Y29tcGF0PiAwMDY0Ozs7NTAwO047OzsyMTZFOzsyMTZFCisyMTdGO1NNQUxMIFJPTUFOIE5VTUVSQUwgT05FIFRIT1VTQU5EO05sOzA7TDs8Y29tcGF0PiAwMDZEOzs7MTAwMDtOOzs7MjE2Rjs7MjE2RgorMjE4MDtST01BTiBOVU1FUkFMIE9ORSBUSE9VU0FORCBDIEQ7Tmw7MDtMOzs7OzEwMDA7Tjs7Ozs7CisyMTgxO1JPTUFOIE5VTUVSQUwgRklWRSBUSE9VU0FORDtObDswO0w7Ozs7NTAwMDtOOzs7OzsKKzIxODI7Uk9NQU4gTlVNRVJBTCBURU4gVEhPVVNBTkQ7Tmw7MDtMOzs7OzEwMDAwO047Ozs7OworMjE5MDtMRUZUV0FSRFMgQVJST1c7U207MDtPTjs7Ozs7TjtMRUZUIEFSUk9XOzs7OworMjE5MTtVUFdBUkRTIEFSUk9XO1NtOzA7T047Ozs7O047VVAgQVJST1c7Ozs7CisyMTkyO1JJR0hUV0FSRFMgQVJST1c7U207MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVzs7OzsKKzIxOTM7RE9XTldBUkRTIEFSUk9XO1NtOzA7T047Ozs7O047RE9XTiBBUlJPVzs7OzsKKzIxOTQ7TEVGVCBSSUdIVCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzIxOTU7VVAgRE9XTiBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIxOTY7Tk9SVEggV0VTVCBBUlJPVztTbzswO09OOzs7OztOO1VQUEVSIExFRlQgQVJST1c7Ozs7CisyMTk3O05PUlRIIEVBU1QgQVJST1c7U287MDtPTjs7Ozs7TjtVUFBFUiBSSUdIVCBBUlJPVzs7OzsKKzIxOTg7U09VVEggRUFTVCBBUlJPVztTbzswO09OOzs7OztOO0xPV0VSIFJJR0hUIEFSUk9XOzs7OworMjE5OTtTT1VUSCBXRVNUIEFSUk9XO1NvOzA7T047Ozs7O047TE9XRVIgTEVGVCBBUlJPVzs7OzsKKzIxOUE7TEVGVFdBUkRTIEFSUk9XIFdJVEggU1RST0tFO1NvOzA7T047Ozs7O047TEVGVCBBUlJPVyBXSVRIIFNUUk9LRTs7OzsKKzIxOUI7UklHSFRXQVJEUyBBUlJPVyBXSVRIIFNUUk9LRTtTbzswO09OOzs7OztOO1JJR0hUIEFSUk9XIFdJVEggU1RST0tFOzs7OworMjE5QztMRUZUV0FSRFMgV0FWRSBBUlJPVztTbzswO09OOzs7OztOO0xFRlQgV0FWRSBBUlJPVzs7OzsKKzIxOUQ7UklHSFRXQVJEUyBXQVZFIEFSUk9XO1NvOzA7T047Ozs7O047UklHSFQgV0FWRSBBUlJPVzs7OzsKKzIxOUU7TEVGVFdBUkRTIFRXTyBIRUFERUQgQVJST1c7U287MDtPTjs7Ozs7TjtMRUZUIFRXTyBIRUFERUQgQVJST1c7Ozs7CisyMTlGO1VQV0FSRFMgVFdPIEhFQURFRCBBUlJPVztTbzswO09OOzs7OztOO1VQIFRXTyBIRUFERUQgQVJST1c7Ozs7CisyMUEwO1JJR0hUV0FSRFMgVFdPIEhFQURFRCBBUlJPVztTbzswO09OOzs7OztOO1JJR0hUIFRXTyBIRUFERUQgQVJST1c7Ozs7CisyMUExO0RPV05XQVJEUyBUV08gSEVBREVEIEFSUk9XO1NvOzA7T047Ozs7O047RE9XTiBUV08gSEVBREVEIEFSUk9XOzs7OworMjFBMjtMRUZUV0FSRFMgQVJST1cgV0lUSCBUQUlMO1NvOzA7T047Ozs7O047TEVGVCBBUlJPVyBXSVRIIFRBSUw7Ozs7CisyMUEzO1JJR0hUV0FSRFMgQVJST1cgV0lUSCBUQUlMO1NvOzA7T047Ozs7O047UklHSFQgQVJST1cgV0lUSCBUQUlMOzs7OworMjFBNDtMRUZUV0FSRFMgQVJST1cgRlJPTSBCQVI7U287MDtPTjs7Ozs7TjtMRUZUIEFSUk9XIEZST00gQkFSOzs7OworMjFBNTtVUFdBUkRTIEFSUk9XIEZST00gQkFSO1NvOzA7T047Ozs7O047VVAgQVJST1cgRlJPTSBCQVI7Ozs7CisyMUE2O1JJR0hUV0FSRFMgQVJST1cgRlJPTSBCQVI7U287MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVyBGUk9NIEJBUjs7OzsKKzIxQTc7RE9XTldBUkRTIEFSUk9XIEZST00gQkFSO1NvOzA7T047Ozs7O047RE9XTiBBUlJPVyBGUk9NIEJBUjs7OzsKKzIxQTg7VVAgRE9XTiBBUlJPVyBXSVRIIEJBU0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMUE5O0xFRlRXQVJEUyBBUlJPVyBXSVRIIEhPT0s7U287MDtPTjs7Ozs7TjtMRUZUIEFSUk9XIFdJVEggSE9PSzs7OzsKKzIxQUE7UklHSFRXQVJEUyBBUlJPVyBXSVRIIEhPT0s7U287MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVyBXSVRIIEhPT0s7Ozs7CisyMUFCO0xFRlRXQVJEUyBBUlJPVyBXSVRIIExPT1A7U287MDtPTjs7Ozs7TjtMRUZUIEFSUk9XIFdJVEggTE9PUDs7OzsKKzIxQUM7UklHSFRXQVJEUyBBUlJPVyBXSVRIIExPT1A7U287MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVyBXSVRIIExPT1A7Ozs7CisyMUFEO0xFRlQgUklHSFQgV0FWRSBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIxQUU7TEVGVCBSSUdIVCBBUlJPVyBXSVRIIFNUUk9LRTtTbzswO09OOzs7OztOOzs7OzsKKzIxQUY7RE9XTldBUkRTIFpJR1pBRyBBUlJPVztTbzswO09OOzs7OztOO0RPV04gWklHWkFHIEFSUk9XOzs7OworMjFCMDtVUFdBUkRTIEFSUk9XIFdJVEggVElQIExFRlRXQVJEUztTbzswO09OOzs7OztOO1VQIEFSUk9XIFdJVEggVElQIExFRlQ7Ozs7CisyMUIxO1VQV0FSRFMgQVJST1cgV0lUSCBUSVAgUklHSFRXQVJEUztTbzswO09OOzs7OztOO1VQIEFSUk9XIFdJVEggVElQIFJJR0hUOzs7OworMjFCMjtET1dOV0FSRFMgQVJST1cgV0lUSCBUSVAgTEVGVFdBUkRTO1NvOzA7T047Ozs7O047RE9XTiBBUlJPVyBXSVRIIFRJUCBMRUZUOzs7OworMjFCMztET1dOV0FSRFMgQVJST1cgV0lUSCBUSVAgUklHSFRXQVJEUztTbzswO09OOzs7OztOO0RPV04gQVJST1cgV0lUSCBUSVAgUklHSFQ7Ozs7CisyMUI0O1JJR0hUV0FSRFMgQVJST1cgV0lUSCBDT1JORVIgRE9XTldBUkRTO1NvOzA7T047Ozs7O047UklHSFQgQVJST1cgV0lUSCBDT1JORVIgRE9XTjs7OzsKKzIxQjU7RE9XTldBUkRTIEFSUk9XIFdJVEggQ09STkVSIExFRlRXQVJEUztTbzswO09OOzs7OztOO0RPV04gQVJST1cgV0lUSCBDT1JORVIgTEVGVDs7OzsKKzIxQjY7QU5USUNMT0NLV0lTRSBUT1AgU0VNSUNJUkNMRSBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIxQjc7Q0xPQ0tXSVNFIFRPUCBTRU1JQ0lSQ0xFIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMjFCODtOT1JUSCBXRVNUIEFSUk9XIFRPIExPTkcgQkFSO1NvOzA7T047Ozs7O047VVBQRVIgTEVGVCBBUlJPVyBUTyBMT05HIEJBUjs7OzsKKzIxQjk7TEVGVFdBUkRTIEFSUk9XIFRPIEJBUiBPVkVSIFJJR0hUV0FSRFMgQVJST1cgVE8gQkFSO1NvOzA7T047Ozs7O047TEVGVCBBUlJPVyBUTyBCQVIgT1ZFUiBSSUdIVCBBUlJPVyBUTyBCQVI7Ozs7CisyMUJBO0FOVElDTE9DS1dJU0UgT1BFTiBDSVJDTEUgQVJST1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMUJCO0NMT0NLV0lTRSBPUEVOIENJUkNMRSBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIxQkM7TEVGVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFVQV0FSRFM7U287MDtPTjs7Ozs7TjtMRUZUIEhBUlBPT04gV0lUSCBCQVJCIFVQOzs7OworMjFCRDtMRUZUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgRE9XTldBUkRTO1NvOzA7T047Ozs7O047TEVGVCBIQVJQT09OIFdJVEggQkFSQiBET1dOOzs7OworMjFCRTtVUFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFJJR0hUV0FSRFM7U287MDtPTjs7Ozs7TjtVUCBIQVJQT09OIFdJVEggQkFSQiBSSUdIVDs7OzsKKzIxQkY7VVBXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBMRUZUV0FSRFM7U287MDtPTjs7Ozs7TjtVUCBIQVJQT09OIFdJVEggQkFSQiBMRUZUOzs7OworMjFDMDtSSUdIVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFVQV0FSRFM7U287MDtPTjs7Ozs7TjtSSUdIVCBIQVJQT09OIFdJVEggQkFSQiBVUDs7OzsKKzIxQzE7UklHSFRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBET1dOV0FSRFM7U287MDtPTjs7Ozs7TjtSSUdIVCBIQVJQT09OIFdJVEggQkFSQiBET1dOOzs7OworMjFDMjtET1dOV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgUklHSFRXQVJEUztTbzswO09OOzs7OztOO0RPV04gSEFSUE9PTiBXSVRIIEJBUkIgUklHSFQ7Ozs7CisyMUMzO0RPV05XQVJEUyBIQVJQT09OIFdJVEggQkFSQiBMRUZUV0FSRFM7U287MDtPTjs7Ozs7TjtET1dOIEhBUlBPT04gV0lUSCBCQVJCIExFRlQ7Ozs7CisyMUM0O1JJR0hUV0FSRFMgQVJST1cgT1ZFUiBMRUZUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVyBPVkVSIExFRlQgQVJST1c7Ozs7CisyMUM1O1VQV0FSRFMgQVJST1cgTEVGVFdBUkRTIE9GIERPV05XQVJEUyBBUlJPVztTbzswO09OOzs7OztOO1VQIEFSUk9XIExFRlQgT0YgRE9XTiBBUlJPVzs7OzsKKzIxQzY7TEVGVFdBUkRTIEFSUk9XIE9WRVIgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0xFRlQgQVJST1cgT1ZFUiBSSUdIVCBBUlJPVzs7OzsKKzIxQzc7TEVGVFdBUkRTIFBBSVJFRCBBUlJPV1M7U287MDtPTjs7Ozs7TjtMRUZUIFBBSVJFRCBBUlJPV1M7Ozs7CisyMUM4O1VQV0FSRFMgUEFJUkVEIEFSUk9XUztTbzswO09OOzs7OztOO1VQIFBBSVJFRCBBUlJPV1M7Ozs7CisyMUM5O1JJR0hUV0FSRFMgUEFJUkVEIEFSUk9XUztTbzswO09OOzs7OztOO1JJR0hUIFBBSVJFRCBBUlJPV1M7Ozs7CisyMUNBO0RPV05XQVJEUyBQQUlSRUQgQVJST1dTO1NvOzA7T047Ozs7O047RE9XTiBQQUlSRUQgQVJST1dTOzs7OworMjFDQjtMRUZUV0FSRFMgSEFSUE9PTiBPVkVSIFJJR0hUV0FSRFMgSEFSUE9PTjtTbzswO09OOzs7OztOO0xFRlQgSEFSUE9PTiBPVkVSIFJJR0hUIEhBUlBPT047Ozs7CisyMUNDO1JJR0hUV0FSRFMgSEFSUE9PTiBPVkVSIExFRlRXQVJEUyBIQVJQT09OO1NvOzA7T047Ozs7O047UklHSFQgSEFSUE9PTiBPVkVSIExFRlQgSEFSUE9PTjs7OzsKKzIxQ0Q7TEVGVFdBUkRTIERPVUJMRSBBUlJPVyBXSVRIIFNUUk9LRTtTbzswO09OOzs7OztOO0xFRlQgRE9VQkxFIEFSUk9XIFdJVEggU1RST0tFOzs7OworMjFDRTtMRUZUIFJJR0hUIERPVUJMRSBBUlJPVyBXSVRIIFNUUk9LRTtTbzswO09OOzs7OztOOzs7OzsKKzIxQ0Y7UklHSFRXQVJEUyBET1VCTEUgQVJST1cgV0lUSCBTVFJPS0U7U287MDtPTjs7Ozs7TjtSSUdIVCBET1VCTEUgQVJST1cgV0lUSCBTVFJPS0U7Ozs7CisyMUQwO0xFRlRXQVJEUyBET1VCTEUgQVJST1c7U287MDtPTjs7Ozs7TjtMRUZUIERPVUJMRSBBUlJPVzs7OzsKKzIxRDE7VVBXQVJEUyBET1VCTEUgQVJST1c7U287MDtPTjs7Ozs7TjtVUCBET1VCTEUgQVJST1c7Ozs7CisyMUQyO1JJR0hUV0FSRFMgRE9VQkxFIEFSUk9XO1NtOzA7T047Ozs7O047UklHSFQgRE9VQkxFIEFSUk9XOzs7OworMjFEMztET1dOV0FSRFMgRE9VQkxFIEFSUk9XO1NvOzA7T047Ozs7O047RE9XTiBET1VCTEUgQVJST1c7Ozs7CisyMUQ0O0xFRlQgUklHSFQgRE9VQkxFIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjFENTtVUCBET1dOIERPVUJMRSBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIxRDY7Tk9SVEggV0VTVCBET1VCTEUgQVJST1c7U287MDtPTjs7Ozs7TjtVUFBFUiBMRUZUIERPVUJMRSBBUlJPVzs7OzsKKzIxRDc7Tk9SVEggRUFTVCBET1VCTEUgQVJST1c7U287MDtPTjs7Ozs7TjtVUFBFUiBSSUdIVCBET1VCTEUgQVJST1c7Ozs7CisyMUQ4O1NPVVRIIEVBU1QgRE9VQkxFIEFSUk9XO1NvOzA7T047Ozs7O047TE9XRVIgUklHSFQgRE9VQkxFIEFSUk9XOzs7OworMjFEOTtTT1VUSCBXRVNUIERPVUJMRSBBUlJPVztTbzswO09OOzs7OztOO0xPV0VSIExFRlQgRE9VQkxFIEFSUk9XOzs7OworMjFEQTtMRUZUV0FSRFMgVFJJUExFIEFSUk9XO1NvOzA7T047Ozs7O047TEVGVCBUUklQTEUgQVJST1c7Ozs7CisyMURCO1JJR0hUV0FSRFMgVFJJUExFIEFSUk9XO1NvOzA7T047Ozs7O047UklHSFQgVFJJUExFIEFSUk9XOzs7OworMjFEQztMRUZUV0FSRFMgU1FVSUdHTEUgQVJST1c7U287MDtPTjs7Ozs7TjtMRUZUIFNRVUlHR0xFIEFSUk9XOzs7OworMjFERDtSSUdIVFdBUkRTIFNRVUlHR0xFIEFSUk9XO1NvOzA7T047Ozs7O047UklHSFQgU1FVSUdHTEUgQVJST1c7Ozs7CisyMURFO1VQV0FSRFMgQVJST1cgV0lUSCBET1VCTEUgU1RST0tFO1NvOzA7T047Ozs7O047VVAgQVJST1cgV0lUSCBET1VCTEUgU1RST0tFOzs7OworMjFERjtET1dOV0FSRFMgQVJST1cgV0lUSCBET1VCTEUgU1RST0tFO1NvOzA7T047Ozs7O047RE9XTiBBUlJPVyBXSVRIIERPVUJMRSBTVFJPS0U7Ozs7CisyMUUwO0xFRlRXQVJEUyBEQVNIRUQgQVJST1c7U287MDtPTjs7Ozs7TjtMRUZUIERBU0hFRCBBUlJPVzs7OzsKKzIxRTE7VVBXQVJEUyBEQVNIRUQgQVJST1c7U287MDtPTjs7Ozs7TjtVUCBEQVNIRUQgQVJST1c7Ozs7CisyMUUyO1JJR0hUV0FSRFMgREFTSEVEIEFSUk9XO1NvOzA7T047Ozs7O047UklHSFQgREFTSEVEIEFSUk9XOzs7OworMjFFMztET1dOV0FSRFMgREFTSEVEIEFSUk9XO1NvOzA7T047Ozs7O047RE9XTiBEQVNIRUQgQVJST1c7Ozs7CisyMUU0O0xFRlRXQVJEUyBBUlJPVyBUTyBCQVI7U287MDtPTjs7Ozs7TjtMRUZUIEFSUk9XIFRPIEJBUjs7OzsKKzIxRTU7UklHSFRXQVJEUyBBUlJPVyBUTyBCQVI7U287MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVyBUTyBCQVI7Ozs7CisyMUU2O0xFRlRXQVJEUyBXSElURSBBUlJPVztTbzswO09OOzs7OztOO1dISVRFIExFRlQgQVJST1c7Ozs7CisyMUU3O1VQV0FSRFMgV0hJVEUgQVJST1c7U287MDtPTjs7Ozs7TjtXSElURSBVUCBBUlJPVzs7OzsKKzIxRTg7UklHSFRXQVJEUyBXSElURSBBUlJPVztTbzswO09OOzs7OztOO1dISVRFIFJJR0hUIEFSUk9XOzs7OworMjFFOTtET1dOV0FSRFMgV0hJVEUgQVJST1c7U287MDtPTjs7Ozs7TjtXSElURSBET1dOIEFSUk9XOzs7OworMjFFQTtVUFdBUkRTIFdISVRFIEFSUk9XIEZST00gQkFSO1NvOzA7T047Ozs7O047V0hJVEUgVVAgQVJST1cgRlJPTSBCQVI7Ozs7CisyMjAwO0ZPUiBBTEw7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjAxO0NPTVBMRU1FTlQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjAyO1BBUlRJQUwgRElGRkVSRU5USUFMO1NtOzA7T047Ozs7O1k7Ozs7OworMjIwMztUSEVSRSBFWElTVFM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjA0O1RIRVJFIERPRVMgTk9UIEVYSVNUO1NtOzA7T047MjIwMyAwMzM4Ozs7O1k7Ozs7OworMjIwNTtFTVBUWSBTRVQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjA2O0lOQ1JFTUVOVDtTbTswO09OOzs7OztOOzs7OzsKKzIyMDc7TkFCTEE7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjA4O0VMRU1FTlQgT0Y7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjA5O05PVCBBTiBFTEVNRU5UIE9GO1NtOzA7T047MjIwOCAwMzM4Ozs7O1k7Ozs7OworMjIwQTtTTUFMTCBFTEVNRU5UIE9GO1NtOzA7T047Ozs7O1k7Ozs7OworMjIwQjtDT05UQUlOUyBBUyBNRU1CRVI7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjBDO0RPRVMgTk9UIENPTlRBSU4gQVMgTUVNQkVSO1NtOzA7T047MjIwQiAwMzM4Ozs7O1k7Ozs7OworMjIwRDtTTUFMTCBDT05UQUlOUyBBUyBNRU1CRVI7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjBFO0VORCBPRiBQUk9PRjtTbTswO09OOzs7OztOOzs7OzsKKzIyMEY7Ti1BUlkgUFJPRFVDVDtTbTswO09OOzs7OztOOzs7OzsKKzIyMTA7Ti1BUlkgQ09QUk9EVUNUO1NtOzA7T047Ozs7O047Ozs7OworMjIxMTtOLUFSWSBTVU1NQVRJT047U207MDtPTjs7Ozs7WTs7Ozs7CisyMjEyO01JTlVTIFNJR047U207MDtFVDs7Ozs7Tjs7Ozs7CisyMjEzO01JTlVTLU9SLVBMVVMgU0lHTjtTbTswO0VUOzs7OztOOzs7OzsKKzIyMTQ7RE9UIFBMVVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjE1O0RJVklTSU9OIFNMQVNIO1NtOzA7T047Ozs7O1k7Ozs7OworMjIxNjtTRVQgTUlOVVM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjE3O0FTVEVSSVNLIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjIxODtSSU5HIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjIxOTtCVUxMRVQgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjFBO1NRVUFSRSBST09UO1NtOzA7T047Ozs7O1k7Ozs7OworMjIxQjtDVUJFIFJPT1Q7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjFDO0ZPVVJUSCBST09UO1NtOzA7T047Ozs7O1k7Ozs7OworMjIxRDtQUk9QT1JUSU9OQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjFFO0lORklOSVRZO1NtOzA7T047Ozs7O047Ozs7OworMjIxRjtSSUdIVCBBTkdMRTtTbTswO09OOzs7OztZOzs7OzsKKzIyMjA7QU5HTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjIxO01FQVNVUkVEIEFOR0xFO1NtOzA7T047Ozs7O1k7Ozs7OworMjIyMjtTUEhFUklDQUwgQU5HTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjIzO0RJVklERVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjI0O0RPRVMgTk9UIERJVklERTtTbTswO09OOzIyMjMgMDMzODs7OztZOzs7OzsKKzIyMjU7UEFSQUxMRUwgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjI2O05PVCBQQVJBTExFTCBUTztTbTswO09OOzIyMjUgMDMzODs7OztZOzs7OzsKKzIyMjc7TE9HSUNBTCBBTkQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjI4O0xPR0lDQUwgT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjI5O0lOVEVSU0VDVElPTjtTbTswO09OOzs7OztOOzs7OzsKKzIyMkE7VU5JT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjJCO0lOVEVHUkFMO1NtOzA7T047Ozs7O1k7Ozs7OworMjIyQztET1VCTEUgSU5URUdSQUw7U207MDtPTjs8Y29tcGF0PiAyMjJCIDIyMkI7Ozs7WTs7Ozs7CisyMjJEO1RSSVBMRSBJTlRFR1JBTDtTbTswO09OOzxjb21wYXQ+IDIyMkIgMjIyQiAyMjJCOzs7O1k7Ozs7OworMjIyRTtDT05UT1VSIElOVEVHUkFMO1NtOzA7T047Ozs7O1k7Ozs7OworMjIyRjtTVVJGQUNFIElOVEVHUkFMO1NtOzA7T047PGNvbXBhdD4gMjIyRSAyMjJFOzs7O1k7Ozs7OworMjIzMDtWT0xVTUUgSU5URUdSQUw7U207MDtPTjs8Y29tcGF0PiAyMjJFIDIyMkUgMjIyRTs7OztZOzs7OzsKKzIyMzE7Q0xPQ0tXSVNFIElOVEVHUkFMO1NtOzA7T047Ozs7O1k7Ozs7OworMjIzMjtDTE9DS1dJU0UgQ09OVE9VUiBJTlRFR1JBTDtTbTswO09OOzs7OztZOzs7OzsKKzIyMzM7QU5USUNMT0NLV0lTRSBDT05UT1VSIElOVEVHUkFMO1NtOzA7T047Ozs7O1k7Ozs7OworMjIzNDtUSEVSRUZPUkU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjM1O0JFQ0FVU0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjM2O1JBVElPO1NtOzA7T047Ozs7O047Ozs7OworMjIzNztQUk9QT1JUSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjIzODtET1QgTUlOVVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjM5O0VYQ0VTUztTbTswO09OOzs7OztZOzs7OzsKKzIyM0E7R0VPTUVUUklDIFBST1BPUlRJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjNCO0hPTU9USEVUSUM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjNDO1RJTERFIE9QRVJBVE9SO1NtOzA7T047Ozs7O1k7Ozs7OworMjIzRDtSRVZFUlNFRCBUSUxERTtTbTswO09OOzs7OztZOzs7OzsKKzIyM0U7SU5WRVJURUQgTEFaWSBTO1NtOzA7T047Ozs7O1k7Ozs7OworMjIzRjtTSU5FIFdBVkU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjQwO1dSRUFUSCBQUk9EVUNUO1NtOzA7T047Ozs7O1k7Ozs7OworMjI0MTtOT1QgVElMREU7U207MDtPTjswMDdFIDAzMzg7Ozs7WTs7Ozs7CisyMjQyO01JTlVTIFRJTERFO1NtOzA7T047Ozs7O1k7Ozs7OworMjI0MztBU1lNUFRPVElDQUxMWSBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyNDQ7Tk9UIEFTWU1QVE9USUNBTExZIEVRVUFMIFRPO1NtOzA7T047MjI0MyAwMzM4Ozs7O1k7Ozs7OworMjI0NTtBUFBST1hJTUFURUxZIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI0NjtBUFBST1hJTUFURUxZIEJVVCBOT1QgQUNUVUFMTFkgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjQ3O05FSVRIRVIgQVBQUk9YSU1BVEVMWSBOT1IgQUNUVUFMTFkgRVFVQUwgVE87U207MDtPTjsyMjQ1IDAzMzg7Ozs7WTs7Ozs7CisyMjQ4O0FMTU9TVCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyNDk7Tk9UIEFMTU9TVCBFUVVBTCBUTztTbTswO09OOzIyNDggMDMzODs7OztZOzs7OzsKKzIyNEE7QUxNT1NUIEVRVUFMIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI0QjtUUklQTEUgVElMREU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjRDO0FMTCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyNEQ7RVFVSVZBTEVOVCBUTztTbTswO09OOzs7OztOOzs7OzsKKzIyNEU7R0VPTUVUUklDQUxMWSBFUVVJVkFMRU5UIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjI0RjtESUZGRVJFTkNFIEJFVFdFRU47U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjUwO0FQUFJPQUNIRVMgVEhFIExJTUlUO1NtOzA7T047Ozs7O047Ozs7OworMjI1MTtHRU9NRVRSSUNBTExZIEVRVUFMIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjI1MjtBUFBST1hJTUFURUxZIEVRVUFMIFRPIE9SIFRIRSBJTUFHRSBPRjtTbTswO09OOzs7OztZOzs7OzsKKzIyNTM7SU1BR0UgT0YgT1IgQVBQUk9YSU1BVEVMWSBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyNTQ7Q09MT04gRVFVQUxTO1NtOzA7T047Ozs7O1k7Q09MT04gRVFVQUw7Ozs7CisyMjU1O0VRVUFMUyBDT0xPTjtTbTswO09OOzs7OztZO0VRVUFMIENPTE9OOzs7OworMjI1NjtSSU5HIElOIEVRVUFMIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjI1NztSSU5HIEVRVUFMIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjI1ODtDT1JSRVNQT05EUyBUTztTbTswO09OOzs7OztOOzs7OzsKKzIyNTk7RVNUSU1BVEVTO1NtOzA7T047Ozs7O047Ozs7OworMjI1QTtFUVVJQU5HVUxBUiBUTztTbTswO09OOzs7OztOOzs7OzsKKzIyNUI7U1RBUiBFUVVBTFM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjVDO0RFTFRBIEVRVUFMIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjI1RDtFUVVBTCBUTyBCWSBERUZJTklUSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjI1RTtNRUFTVVJFRCBCWTtTbTswO09OOzs7OztOOzs7OzsKKzIyNUY7UVVFU1RJT05FRCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyNjA7Tk9UIEVRVUFMIFRPO1NtOzA7T047MDAzRCAwMzM4Ozs7O1k7Ozs7OworMjI2MTtJREVOVElDQUwgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjYyO05PVCBJREVOVElDQUwgVE87U207MDtPTjsyMjYxIDAzMzg7Ozs7WTs7Ozs7CisyMjYzO1NUUklDVExZIEVRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjY0O0xFU1MtVEhBTiBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZO0xFU1MgVEhBTiBPUiBFUVVBTCBUTzs7OzsKKzIyNjU7R1JFQVRFUi1USEFOIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7R1JFQVRFUiBUSEFOIE9SIEVRVUFMIFRPOzs7OworMjI2NjtMRVNTLVRIQU4gT1ZFUiBFUVVBTCBUTztTbTswO09OOzs7OztZO0xFU1MgVEhBTiBPVkVSIEVRVUFMIFRPOzs7OworMjI2NztHUkVBVEVSLVRIQU4gT1ZFUiBFUVVBTCBUTztTbTswO09OOzs7OztZO0dSRUFURVIgVEhBTiBPVkVSIEVRVUFMIFRPOzs7OworMjI2ODtMRVNTLVRIQU4gQlVUIE5PVCBFUVVBTCBUTztTbTswO09OOzs7OztZO0xFU1MgVEhBTiBCVVQgTk9UIEVRVUFMIFRPOzs7OworMjI2OTtHUkVBVEVSLVRIQU4gQlVUIE5PVCBFUVVBTCBUTztTbTswO09OOzs7OztZO0dSRUFURVIgVEhBTiBCVVQgTk9UIEVRVUFMIFRPOzs7OworMjI2QTtNVUNIIExFU1MtVEhBTjtTbTswO09OOzs7OztZO01VQ0ggTEVTUyBUSEFOOzs7OworMjI2QjtNVUNIIEdSRUFURVItVEhBTjtTbTswO09OOzs7OztZO01VQ0ggR1JFQVRFUiBUSEFOOzs7OworMjI2QztCRVRXRUVOO1NtOzA7T047Ozs7O047Ozs7OworMjI2RDtOT1QgRVFVSVZBTEVOVCBUTztTbTswO09OOzIyNEQgMDMzODs7OztOOzs7OzsKKzIyNkU7Tk9UIExFU1MtVEhBTjtTbTswO09OOzAwM0MgMDMzODs7OztZO05PVCBMRVNTIFRIQU47Ozs7CisyMjZGO05PVCBHUkVBVEVSLVRIQU47U207MDtPTjswMDNFIDAzMzg7Ozs7WTtOT1QgR1JFQVRFUiBUSEFOOzs7OworMjI3MDtORUlUSEVSIExFU1MtVEhBTiBOT1IgRVFVQUwgVE87U207MDtPTjsyMjY0IDAzMzg7Ozs7WTtORUlUSEVSIExFU1MgVEhBTiBOT1IgRVFVQUwgVE87Ozs7CisyMjcxO05FSVRIRVIgR1JFQVRFUi1USEFOIE5PUiBFUVVBTCBUTztTbTswO09OOzIyNjUgMDMzODs7OztZO05FSVRIRVIgR1JFQVRFUiBUSEFOIE5PUiBFUVVBTCBUTzs7OzsKKzIyNzI7TEVTUy1USEFOIE9SIEVRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7WTtMRVNTIFRIQU4gT1IgRVFVSVZBTEVOVCBUTzs7OzsKKzIyNzM7R1JFQVRFUi1USEFOIE9SIEVRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7WTtHUkVBVEVSIFRIQU4gT1IgRVFVSVZBTEVOVCBUTzs7OzsKKzIyNzQ7TkVJVEhFUiBMRVNTLVRIQU4gTk9SIEVRVUlWQUxFTlQgVE87U207MDtPTjsyMjcyIDAzMzg7Ozs7WTtORUlUSEVSIExFU1MgVEhBTiBOT1IgRVFVSVZBTEVOVCBUTzs7OzsKKzIyNzU7TkVJVEhFUiBHUkVBVEVSLVRIQU4gTk9SIEVRVUlWQUxFTlQgVE87U207MDtPTjsyMjczIDAzMzg7Ozs7WTtORUlUSEVSIEdSRUFURVIgVEhBTiBOT1IgRVFVSVZBTEVOVCBUTzs7OzsKKzIyNzY7TEVTUy1USEFOIE9SIEdSRUFURVItVEhBTjtTbTswO09OOzs7OztZO0xFU1MgVEhBTiBPUiBHUkVBVEVSIFRIQU47Ozs7CisyMjc3O0dSRUFURVItVEhBTiBPUiBMRVNTLVRIQU47U207MDtPTjs7Ozs7WTtHUkVBVEVSIFRIQU4gT1IgTEVTUyBUSEFOOzs7OworMjI3ODtORUlUSEVSIExFU1MtVEhBTiBOT1IgR1JFQVRFUi1USEFOO1NtOzA7T047MjI3NiAwMzM4Ozs7O1k7TkVJVEhFUiBMRVNTIFRIQU4gTk9SIEdSRUFURVIgVEhBTjs7OzsKKzIyNzk7TkVJVEhFUiBHUkVBVEVSLVRIQU4gTk9SIExFU1MtVEhBTjtTbTswO09OOzIyNzcgMDMzODs7OztZO05FSVRIRVIgR1JFQVRFUiBUSEFOIE5PUiBMRVNTIFRIQU47Ozs7CisyMjdBO1BSRUNFREVTO1NtOzA7T047Ozs7O1k7Ozs7OworMjI3QjtTVUNDRUVEUztTbTswO09OOzs7OztZOzs7OzsKKzIyN0M7UFJFQ0VERVMgT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjdEO1NVQ0NFRURTIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI3RTtQUkVDRURFUyBPUiBFUVVJVkFMRU5UIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI3RjtTVUNDRUVEUyBPUiBFUVVJVkFMRU5UIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI4MDtET0VTIE5PVCBQUkVDRURFO1NtOzA7T047MjI3QSAwMzM4Ozs7O1k7Ozs7OworMjI4MTtET0VTIE5PVCBTVUNDRUVEO1NtOzA7T047MjI3QiAwMzM4Ozs7O1k7Ozs7OworMjI4MjtTVUJTRVQgT0Y7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjgzO1NVUEVSU0VUIE9GO1NtOzA7T047Ozs7O1k7Ozs7OworMjI4NDtOT1QgQSBTVUJTRVQgT0Y7U207MDtPTjsyMjgyIDAzMzg7Ozs7WTs7Ozs7CisyMjg1O05PVCBBIFNVUEVSU0VUIE9GO1NtOzA7T047MjI4MyAwMzM4Ozs7O1k7Ozs7OworMjI4NjtTVUJTRVQgT0YgT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjg3O1NVUEVSU0VUIE9GIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI4ODtORUlUSEVSIEEgU1VCU0VUIE9GIE5PUiBFUVVBTCBUTztTbTswO09OOzIyODYgMDMzODs7OztZOzs7OzsKKzIyODk7TkVJVEhFUiBBIFNVUEVSU0VUIE9GIE5PUiBFUVVBTCBUTztTbTswO09OOzIyODcgMDMzODs7OztZOzs7OzsKKzIyOEE7U1VCU0VUIE9GIFdJVEggTk9UIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7U1VCU0VUIE9GIE9SIE5PVCBFUVVBTCBUTzs7OzsKKzIyOEI7U1VQRVJTRVQgT0YgV0lUSCBOT1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTtTVVBFUlNFVCBPRiBPUiBOT1QgRVFVQUwgVE87Ozs7CisyMjhDO01VTFRJU0VUO1NtOzA7T047Ozs7O1k7Ozs7OworMjI4RDtNVUxUSVNFVCBNVUxUSVBMSUNBVElPTjtTbTswO09OOzs7OztOOzs7OzsKKzIyOEU7TVVMVElTRVQgVU5JT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjhGO1NRVUFSRSBJTUFHRSBPRjtTbTswO09OOzs7OztZOzs7OzsKKzIyOTA7U1FVQVJFIE9SSUdJTkFMIE9GO1NtOzA7T047Ozs7O1k7Ozs7OworMjI5MTtTUVVBUkUgSU1BR0UgT0YgT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjkyO1NRVUFSRSBPUklHSU5BTCBPRiBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyOTM7U1FVQVJFIENBUDtTbTswO09OOzs7OztOOzs7OzsKKzIyOTQ7U1FVQVJFIENVUDtTbTswO09OOzs7OztOOzs7OzsKKzIyOTU7Q0lSQ0xFRCBQTFVTO1NtOzA7T047Ozs7O047Ozs7OworMjI5NjtDSVJDTEVEIE1JTlVTO1NtOzA7T047Ozs7O047Ozs7OworMjI5NztDSVJDTEVEIFRJTUVTO1NtOzA7T047Ozs7O047Ozs7OworMjI5ODtDSVJDTEVEIERJVklTSU9OIFNMQVNIO1NtOzA7T047Ozs7O1k7Ozs7OworMjI5OTtDSVJDTEVEIERPVCBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzIyOUE7Q0lSQ0xFRCBSSU5HIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjI5QjtDSVJDTEVEIEFTVEVSSVNLIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjI5QztDSVJDTEVEIEVRVUFMUztTbTswO09OOzs7OztOOzs7OzsKKzIyOUQ7Q0lSQ0xFRCBEQVNIO1NtOzA7T047Ozs7O047Ozs7OworMjI5RTtTUVVBUkVEIFBMVVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjlGO1NRVUFSRUQgTUlOVVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkEwO1NRVUFSRUQgVElNRVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkExO1NRVUFSRUQgRE9UIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjJBMjtSSUdIVCBUQUNLO1NtOzA7T047Ozs7O1k7Ozs7OworMjJBMztMRUZUIFRBQ0s7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkE0O0RPV04gVEFDSztTbTswO09OOzs7OztOOzs7OzsKKzIyQTU7VVAgVEFDSztTbTswO09OOzs7OztOOzs7OzsKKzIyQTY7QVNTRVJUSU9OO1NtOzA7T047Ozs7O1k7Ozs7OworMjJBNztNT0RFTFM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkE4O1RSVUU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkE5O0ZPUkNFUztTbTswO09OOzs7OztZOzs7OzsKKzIyQUE7VFJJUExFIFZFUlRJQ0FMIEJBUiBSSUdIVCBUVVJOU1RJTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkFCO0RPVUJMRSBWRVJUSUNBTCBCQVIgRE9VQkxFIFJJR0hUIFRVUk5TVElMRTtTbTswO09OOzs7OztZOzs7OzsKKzIyQUM7RE9FUyBOT1QgUFJPVkU7U207MDtPTjsyMkEyIDAzMzg7Ozs7WTs7Ozs7CisyMkFEO05PVCBUUlVFO1NtOzA7T047MjJBOCAwMzM4Ozs7O1k7Ozs7OworMjJBRTtET0VTIE5PVCBGT1JDRTtTbTswO09OOzIyQTkgMDMzODs7OztZOzs7OzsKKzIyQUY7TkVHQVRFRCBET1VCTEUgVkVSVElDQUwgQkFSIERPVUJMRSBSSUdIVCBUVVJOU1RJTEU7U207MDtPTjsyMkFCIDAzMzg7Ozs7WTs7Ozs7CisyMkIwO1BSRUNFREVTIFVOREVSIFJFTEFUSU9OO1NtOzA7T047Ozs7O1k7Ozs7OworMjJCMTtTVUNDRUVEUyBVTkRFUiBSRUxBVElPTjtTbTswO09OOzs7OztZOzs7OzsKKzIyQjI7Tk9STUFMIFNVQkdST1VQIE9GO1NtOzA7T047Ozs7O1k7Ozs7OworMjJCMztDT05UQUlOUyBBUyBOT1JNQUwgU1VCR1JPVVA7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkI0O05PUk1BTCBTVUJHUk9VUCBPRiBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyQjU7Q09OVEFJTlMgQVMgTk9STUFMIFNVQkdST1VQIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjJCNjtPUklHSU5BTCBPRjtTbTswO09OOzs7OztZOzs7OzsKKzIyQjc7SU1BR0UgT0Y7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkI4O01VTFRJTUFQO1NtOzA7T047Ozs7O1k7Ozs7OworMjJCOTtIRVJNSVRJQU4gQ09OSlVHQVRFIE1BVFJJWDtTbTswO09OOzs7OztOOzs7OzsKKzIyQkE7SU5URVJDQUxBVEU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkJCO1hPUjtTbTswO09OOzs7OztOOzs7OzsKKzIyQkM7TkFORDtTbTswO09OOzs7OztOOzs7OzsKKzIyQkQ7Tk9SO1NtOzA7T047Ozs7O047Ozs7OworMjJCRTtSSUdIVCBBTkdMRSBXSVRIIEFSQztTbTswO09OOzs7OztZOzs7OzsKKzIyQkY7UklHSFQgVFJJQU5HTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkMwO04tQVJZIExPR0lDQUwgQU5EO1NtOzA7T047Ozs7O047Ozs7OworMjJDMTtOLUFSWSBMT0dJQ0FMIE9SO1NtOzA7T047Ozs7O047Ozs7OworMjJDMjtOLUFSWSBJTlRFUlNFQ1RJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkMzO04tQVJZIFVOSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjJDNDtESUFNT05EIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjJDNTtET1QgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkM2O1NUQVIgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkM3O0RJVklTSU9OIFRJTUVTO1NtOzA7T047Ozs7O047Ozs7OworMjJDODtCT1dUSUU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkM5O0xFRlQgTk9STUFMIEZBQ1RPUiBTRU1JRElSRUNUIFBST0RVQ1Q7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkNBO1JJR0hUIE5PUk1BTCBGQUNUT1IgU0VNSURJUkVDVCBQUk9EVUNUO1NtOzA7T047Ozs7O1k7Ozs7OworMjJDQjtMRUZUIFNFTUlESVJFQ1QgUFJPRFVDVDtTbTswO09OOzs7OztZOzs7OzsKKzIyQ0M7UklHSFQgU0VNSURJUkVDVCBQUk9EVUNUO1NtOzA7T047Ozs7O1k7Ozs7OworMjJDRDtSRVZFUlNFRCBUSUxERSBFUVVBTFM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkNFO0NVUkxZIExPR0lDQUwgT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkNGO0NVUkxZIExPR0lDQUwgQU5EO1NtOzA7T047Ozs7O047Ozs7OworMjJEMDtET1VCTEUgU1VCU0VUO1NtOzA7T047Ozs7O1k7Ozs7OworMjJEMTtET1VCTEUgU1VQRVJTRVQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkQyO0RPVUJMRSBJTlRFUlNFQ1RJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkQzO0RPVUJMRSBVTklPTjtTbTswO09OOzs7OztOOzs7OzsKKzIyRDQ7UElUQ0hGT1JLO1NtOzA7T047Ozs7O047Ozs7OworMjJENTtFUVVBTCBBTkQgUEFSQUxMRUwgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkQ2O0xFU1MtVEhBTiBXSVRIIERPVDtTbTswO09OOzs7OztZO0xFU1MgVEhBTiBXSVRIIERPVDs7OzsKKzIyRDc7R1JFQVRFUi1USEFOIFdJVEggRE9UO1NtOzA7T047Ozs7O1k7R1JFQVRFUiBUSEFOIFdJVEggRE9UOzs7OworMjJEODtWRVJZIE1VQ0ggTEVTUy1USEFOO1NtOzA7T047Ozs7O1k7VkVSWSBNVUNIIExFU1MgVEhBTjs7OzsKKzIyRDk7VkVSWSBNVUNIIEdSRUFURVItVEhBTjtTbTswO09OOzs7OztZO1ZFUlkgTVVDSCBHUkVBVEVSIFRIQU47Ozs7CisyMkRBO0xFU1MtVEhBTiBFUVVBTCBUTyBPUiBHUkVBVEVSLVRIQU47U207MDtPTjs7Ozs7WTtMRVNTIFRIQU4gRVFVQUwgVE8gT1IgR1JFQVRFUiBUSEFOOzs7OworMjJEQjtHUkVBVEVSLVRIQU4gRVFVQUwgVE8gT1IgTEVTUy1USEFOO1NtOzA7T047Ozs7O1k7R1JFQVRFUiBUSEFOIEVRVUFMIFRPIE9SIExFU1MgVEhBTjs7OzsKKzIyREM7RVFVQUwgVE8gT1IgTEVTUy1USEFOO1NtOzA7T047Ozs7O1k7RVFVQUwgVE8gT1IgTEVTUyBUSEFOOzs7OworMjJERDtFUVVBTCBUTyBPUiBHUkVBVEVSLVRIQU47U207MDtPTjs7Ozs7WTtFUVVBTCBUTyBPUiBHUkVBVEVSIFRIQU47Ozs7CisyMkRFO0VRVUFMIFRPIE9SIFBSRUNFREVTO1NtOzA7T047Ozs7O1k7Ozs7OworMjJERjtFUVVBTCBUTyBPUiBTVUNDRUVEUztTbTswO09OOzs7OztZOzs7OzsKKzIyRTA7RE9FUyBOT1QgUFJFQ0VERSBPUiBFUVVBTDtTbTswO09OOzIyN0MgMDMzODs7OztZOzs7OzsKKzIyRTE7RE9FUyBOT1QgU1VDQ0VFRCBPUiBFUVVBTDtTbTswO09OOzIyN0QgMDMzODs7OztZOzs7OzsKKzIyRTI7Tk9UIFNRVUFSRSBJTUFHRSBPRiBPUiBFUVVBTCBUTztTbTswO09OOzIyOTEgMDMzODs7OztZOzs7OzsKKzIyRTM7Tk9UIFNRVUFSRSBPUklHSU5BTCBPRiBPUiBFUVVBTCBUTztTbTswO09OOzIyOTIgMDMzODs7OztZOzs7OzsKKzIyRTQ7U1FVQVJFIElNQUdFIE9GIE9SIE5PVCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyRTU7U1FVQVJFIE9SSUdJTkFMIE9GIE9SIE5PVCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyRTY7TEVTUy1USEFOIEJVVCBOT1QgRVFVSVZBTEVOVCBUTztTbTswO09OOzs7OztZO0xFU1MgVEhBTiBCVVQgTk9UIEVRVUlWQUxFTlQgVE87Ozs7CisyMkU3O0dSRUFURVItVEhBTiBCVVQgTk9UIEVRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7WTtHUkVBVEVSIFRIQU4gQlVUIE5PVCBFUVVJVkFMRU5UIFRPOzs7OworMjJFODtQUkVDRURFUyBCVVQgTk9UIEVRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMkU5O1NVQ0NFRURTIEJVVCBOT1QgRVFVSVZBTEVOVCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyRUE7Tk9UIE5PUk1BTCBTVUJHUk9VUCBPRjtTbTswO09OOzIyQjIgMDMzODs7OztZOzs7OzsKKzIyRUI7RE9FUyBOT1QgQ09OVEFJTiBBUyBOT1JNQUwgU1VCR1JPVVA7U207MDtPTjsyMkIzIDAzMzg7Ozs7WTs7Ozs7CisyMkVDO05PVCBOT1JNQUwgU1VCR1JPVVAgT0YgT1IgRVFVQUwgVE87U207MDtPTjsyMkI0IDAzMzg7Ozs7WTs7Ozs7CisyMkVEO0RPRVMgTk9UIENPTlRBSU4gQVMgTk9STUFMIFNVQkdST1VQIE9SIEVRVUFMO1NtOzA7T047MjJCNSAwMzM4Ozs7O1k7Ozs7OworMjJFRTtWRVJUSUNBTCBFTExJUFNJUztTbTswO09OOzs7OztOOzs7OzsKKzIyRUY7TUlETElORSBIT1JJWk9OVEFMIEVMTElQU0lTO1NtOzA7T047Ozs7O047Ozs7OworMjJGMDtVUCBSSUdIVCBESUFHT05BTCBFTExJUFNJUztTbTswO09OOzs7OztZOzs7OzsKKzIyRjE7RE9XTiBSSUdIVCBESUFHT05BTCBFTExJUFNJUztTbTswO09OOzs7OztZOzs7OzsKKzIzMDA7RElBTUVURVIgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzIzMDI7SE9VU0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzAzO1VQIEFSUk9XSEVBRDtTbzswO09OOzs7OztOOzs7OzsKKzIzMDQ7RE9XTiBBUlJPV0hFQUQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzA1O1BST0pFQ1RJVkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzA2O1BFUlNQRUNUSVZFO1NvOzA7T047Ozs7O047Ozs7OworMjMwNztXQVZZIExJTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzA4O0xFRlQgQ0VJTElORztTbTswO09OOzs7OztZOzs7OzsKKzIzMDk7UklHSFQgQ0VJTElORztTbTswO09OOzs7OztZOzs7OzsKKzIzMEE7TEVGVCBGTE9PUjtTbTswO09OOzs7OztZOzs7OzsKKzIzMEI7UklHSFQgRkxPT1I7U207MDtPTjs7Ozs7WTs7Ozs7CisyMzBDO0JPVFRPTSBSSUdIVCBDUk9QO1NvOzA7T047Ozs7O047Ozs7OworMjMwRDtCT1RUT00gTEVGVCBDUk9QO1NvOzA7T047Ozs7O047Ozs7OworMjMwRTtUT1AgUklHSFQgQ1JPUDtTbzswO09OOzs7OztOOzs7OzsKKzIzMEY7VE9QIExFRlQgQ1JPUDtTbzswO09OOzs7OztOOzs7OzsKKzIzMTA7UkVWRVJTRUQgTk9UIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzExO1NRVUFSRSBMT1pFTkdFO1NvOzA7T047Ozs7O047Ozs7OworMjMxMjtBUkM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzEzO1NFR01FTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzE0O1NFQ1RPUjtTbzswO09OOzs7OztOOzs7OzsKKzIzMTU7VEVMRVBIT05FIFJFQ09SREVSO1NvOzA7T047Ozs7O047Ozs7OworMjMxNjtQT1NJVElPTiBJTkRJQ0FUT1I7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzE3O1ZJRVdEQVRBIFNRVUFSRTtTbzswO09OOzs7OztOOzs7OzsKKzIzMTg7UExBQ0UgT0YgSU5URVJFU1QgU0lHTjtTbzswO09OOzs7OztOO0NPTU1BTkQgS0VZOzs7OworMjMxOTtUVVJORUQgTk9UIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzFBO1dBVENIO1NvOzA7T047Ozs7O047Ozs7OworMjMxQjtIT1VSR0xBU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzFDO1RPUCBMRUZUIENPUk5FUjtTbzswO09OOzs7OztOOzs7OzsKKzIzMUQ7VE9QIFJJR0hUIENPUk5FUjtTbzswO09OOzs7OztOOzs7OzsKKzIzMUU7Qk9UVE9NIExFRlQgQ09STkVSO1NvOzA7T047Ozs7O047Ozs7OworMjMxRjtCT1RUT00gUklHSFQgQ09STkVSO1NvOzA7T047Ozs7O047Ozs7OworMjMyMDtUT1AgSEFMRiBJTlRFR1JBTDtTbTswO09OOzs7OztZOzs7OzsKKzIzMjE7Qk9UVE9NIEhBTEYgSU5URUdSQUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyMzIyO0ZST1dOO1NvOzA7T047Ozs7O047Ozs7OworMjMyMztTTUlMRTtTbzswO09OOzs7OztOOzs7OzsKKzIzMjQ7VVAgQVJST1dIRUFEIEJFVFdFRU4gVFdPIEhPUklaT05UQUwgQkFSUztTbzswO09OOzs7OztOO0VOVEVSIEtFWTs7OzsKKzIzMjU7T1BUSU9OIEtFWTtTbzswO09OOzs7OztOOzs7OzsKKzIzMjY7RVJBU0UgVE8gVEhFIFJJR0hUO1NvOzA7T047Ozs7O047REVMRVRFIFRPIFRIRSBSSUdIVCBLRVk7Ozs7CisyMzI3O1ggSU4gQSBSRUNUQU5HTEUgQk9YO1NvOzA7T047Ozs7O047Q0xFQVIgS0VZOzs7OworMjMyODtLRVlCT0FSRDtTbzswO09OOzs7OztOOzs7OzsKKzIzMjk7TEVGVC1QT0lOVElORyBBTkdMRSBCUkFDS0VUO1BzOzA7T047MzAwODs7OztZO0JSQTs7OzsKKzIzMkE7UklHSFQtUE9JTlRJTkcgQU5HTEUgQlJBQ0tFVDtQZTswO09OOzMwMDk7Ozs7WTtLRVQ7Ozs7CisyMzJCO0VSQVNFIFRPIFRIRSBMRUZUO1NvOzA7T047Ozs7O047REVMRVRFIFRPIFRIRSBMRUZUIEtFWTs7OzsKKzIzMkM7QkVOWkVORSBSSU5HO1NvOzA7T047Ozs7O047Ozs7OworMjMyRDtDWUxJTkRSSUNJVFk7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzJFO0FMTCBBUk9VTkQtUFJPRklMRTtTbzswO09OOzs7OztOOzs7OzsKKzIzMkY7U1lNTUVUUlk7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzMwO1RPVEFMIFJVTk9VVDtTbzswO09OOzs7OztOOzs7OzsKKzIzMzE7RElNRU5TSU9OIE9SSUdJTjtTbzswO09OOzs7OztOOzs7OzsKKzIzMzI7Q09OSUNBTCBUQVBFUjtTbzswO09OOzs7OztOOzs7OzsKKzIzMzM7U0xPUEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzM0O0NPVU5URVJCT1JFO1NvOzA7T047Ozs7O047Ozs7OworMjMzNTtDT1VOVEVSU0lOSztTbzswO09OOzs7OztOOzs7OzsKKzIzMzY7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIEktQkVBTTtTbzswO0w7Ozs7O047Ozs7OworMjMzNztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgU1FVSVNIIFFVQUQ7U287MDtMOzs7OztOOzs7OzsKKzIzMzg7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgRVFVQUw7U287MDtMOzs7OztOOzs7OzsKKzIzMzk7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgRElWSURFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzNBO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIERJQU1PTkQ7U287MDtMOzs7OztOOzs7OzsKKzIzM0I7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgSk9UO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzNDO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIENJUkNMRTtTbzswO0w7Ozs7O047Ozs7OworMjMzRDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgQ0lSQ0xFIFNUSUxFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzNFO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBDSVJDTEUgSk9UO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzNGO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBTTEFTSCBCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNDA7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIEJBQ0tTTEFTSCBCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNDE7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgU0xBU0g7U287MDtMOzs7OztOOzs7OzsKKzIzNDI7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgQkFDS1NMQVNIO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzQzO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIExFU1MtVEhBTjtTbzswO0w7Ozs7O047Ozs7OworMjM0NDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBHUkVBVEVSLVRIQU47U287MDtMOzs7OztOOzs7OzsKKzIzNDU7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIExFRlRXQVJEUyBWQU5FO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzQ2O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBSSUdIVFdBUkRTIFZBTkU7U287MDtMOzs7OztOOzs7OzsKKzIzNDc7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgTEVGVFdBUkRTIEFSUk9XO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzQ4O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIFJJR0hUV0FSRFMgQVJST1c7U287MDtMOzs7OztOOzs7OzsKKzIzNDk7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIENJUkNMRSBCQUNLU0xBU0g7U287MDtMOzs7OztOOzs7OzsKKzIzNEE7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERPV04gVEFDSyBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM0QjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgREVMVEEgU1RJTEU7U287MDtMOzs7OztOOzs7OzsKKzIzNEM7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgRE9XTiBDQVJFVDtTbzswO0w7Ozs7O047Ozs7OworMjM0RDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBERUxUQTtTbzswO0w7Ozs7O047Ozs7OworMjM0RTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgRE9XTiBUQUNLIEpPVDtTbzswO0w7Ozs7O047Ozs7OworMjM0RjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgVVBXQVJEUyBWQU5FO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzUwO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIFVQV0FSRFMgQVJST1c7U287MDtMOzs7OztOOzs7OzsKKzIzNTE7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFVQIFRBQ0sgT1ZFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM1MjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgREVMIFNUSUxFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzUzO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIFVQIENBUkVUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzU0O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIERFTDtTbzswO0w7Ozs7O047Ozs7OworMjM1NTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgVVAgVEFDSyBKT1Q7U287MDtMOzs7OztOOzs7OzsKKzIzNTY7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERPV05XQVJEUyBWQU5FO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzU3O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIERPV05XQVJEUyBBUlJPVztTbzswO0w7Ozs7O047Ozs7OworMjM1ODtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVPVEUgVU5ERVJCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNTk7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERFTFRBIFVOREVSQkFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzVBO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBESUFNT05EIFVOREVSQkFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzVCO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBKT1QgVU5ERVJCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNUM7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIENJUkNMRSBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM1RDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgVVAgU0hPRSBKT1Q7U287MDtMOzs7OztOOzs7OzsKKzIzNUU7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVT1RFIFFVQUQ7U287MDtMOzs7OztOOzs7OzsKKzIzNUY7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIENJUkNMRSBTVEFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzYwO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIENPTE9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzYxO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBVUCBUQUNLIERJQUVSRVNJUztTbzswO0w7Ozs7O047Ozs7OworMjM2MjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgREVMIERJQUVSRVNJUztTbzswO0w7Ozs7O047Ozs7OworMjM2MztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgU1RBUiBESUFFUkVTSVM7U287MDtMOzs7OztOOzs7OzsKKzIzNjQ7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIEpPVCBESUFFUkVTSVM7U287MDtMOzs7OztOOzs7OzsKKzIzNjU7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIENJUkNMRSBESUFFUkVTSVM7U287MDtMOzs7OztOOzs7OzsKKzIzNjY7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERPV04gU0hPRSBTVElMRTtTbzswO0w7Ozs7O047Ozs7OworMjM2NztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgTEVGVCBTSE9FIFNUSUxFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzY4O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBUSUxERSBESUFFUkVTSVM7U287MDtMOzs7OztOOzs7OzsKKzIzNjk7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIEdSRUFURVItVEhBTiBESUFFUkVTSVM7U287MDtMOzs7OztOOzs7OzsKKzIzNkE7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIENPTU1BIEJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM2QjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgREVMIFRJTERFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzZDO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBaSUxERTtTbzswO0w7Ozs7O047Ozs7OworMjM2RDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgU1RJTEUgVElMREU7U287MDtMOzs7OztOOzs7OzsKKzIzNkU7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFNFTUlDT0xPTiBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM2RjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBOT1QgRVFVQUw7U287MDtMOzs7OztOOzs7OzsKKzIzNzA7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgUVVFU1RJT047U287MDtMOzs7OztOOzs7OzsKKzIzNzE7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERPV04gQ0FSRVQgVElMREU7U287MDtMOzs7OztOOzs7OzsKKzIzNzI7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFVQIENBUkVUIFRJTERFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzczO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBJT1RBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzc0O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBSSE87U287MDtMOzs7OztOOzs7OzsKKzIzNzU7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIE9NRUdBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzc2O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBBTFBIQSBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM3NztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgRVBTSUxPTiBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM3ODtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgSU9UQSBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM3OTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgT01FR0EgVU5ERVJCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzN0E7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIEFMUEhBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyNDAwO1NZTUJPTCBGT1IgTlVMTDtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIE5VTEw7Ozs7CisyNDAxO1NZTUJPTCBGT1IgU1RBUlQgT0YgSEVBRElORztTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIFNUQVJUIE9GIEhFQURJTkc7Ozs7CisyNDAyO1NZTUJPTCBGT1IgU1RBUlQgT0YgVEVYVDtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIFNUQVJUIE9GIFRFWFQ7Ozs7CisyNDAzO1NZTUJPTCBGT1IgRU5EIE9GIFRFWFQ7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBFTkQgT0YgVEVYVDs7OzsKKzI0MDQ7U1lNQk9MIEZPUiBFTkQgT0YgVFJBTlNNSVNTSU9OO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgRU5EIE9GIFRSQU5TTUlTU0lPTjs7OzsKKzI0MDU7U1lNQk9MIEZPUiBFTlFVSVJZO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgRU5RVUlSWTs7OzsKKzI0MDY7U1lNQk9MIEZPUiBBQ0tOT1dMRURHRTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEFDS05PV0xFREdFOzs7OworMjQwNztTWU1CT0wgRk9SIEJFTEw7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBCRUxMOzs7OworMjQwODtTWU1CT0wgRk9SIEJBQ0tTUEFDRTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEJBQ0tTUEFDRTs7OzsKKzI0MDk7U1lNQk9MIEZPUiBIT1JJWk9OVEFMIFRBQlVMQVRJT047U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBIT1JJWk9OVEFMIFRBQlVMQVRJT047Ozs7CisyNDBBO1NZTUJPTCBGT1IgTElORSBGRUVEO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgTElORSBGRUVEOzs7OworMjQwQjtTWU1CT0wgRk9SIFZFUlRJQ0FMIFRBQlVMQVRJT047U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBWRVJUSUNBTCBUQUJVTEFUSU9OOzs7OworMjQwQztTWU1CT0wgRk9SIEZPUk0gRkVFRDtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEZPUk0gRkVFRDs7OzsKKzI0MEQ7U1lNQk9MIEZPUiBDQVJSSUFHRSBSRVRVUk47U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBDQVJSSUFHRSBSRVRVUk47Ozs7CisyNDBFO1NZTUJPTCBGT1IgU0hJRlQgT1VUO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgU0hJRlQgT1VUOzs7OworMjQwRjtTWU1CT0wgRk9SIFNISUZUIElOO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgU0hJRlQgSU47Ozs7CisyNDEwO1NZTUJPTCBGT1IgREFUQSBMSU5LIEVTQ0FQRTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIERBVEEgTElOSyBFU0NBUEU7Ozs7CisyNDExO1NZTUJPTCBGT1IgREVWSUNFIENPTlRST0wgT05FO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgREVWSUNFIENPTlRST0wgT05FOzs7OworMjQxMjtTWU1CT0wgRk9SIERFVklDRSBDT05UUk9MIFRXTztTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIERFVklDRSBDT05UUk9MIFRXTzs7OzsKKzI0MTM7U1lNQk9MIEZPUiBERVZJQ0UgQ09OVFJPTCBUSFJFRTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIERFVklDRSBDT05UUk9MIFRIUkVFOzs7OworMjQxNDtTWU1CT0wgRk9SIERFVklDRSBDT05UUk9MIEZPVVI7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBERVZJQ0UgQ09OVFJPTCBGT1VSOzs7OworMjQxNTtTWU1CT0wgRk9SIE5FR0FUSVZFIEFDS05PV0xFREdFO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgTkVHQVRJVkUgQUNLTk9XTEVER0U7Ozs7CisyNDE2O1NZTUJPTCBGT1IgU1lOQ0hST05PVVMgSURMRTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIFNZTkNIUk9OT1VTIElETEU7Ozs7CisyNDE3O1NZTUJPTCBGT1IgRU5EIE9GIFRSQU5TTUlTU0lPTiBCTE9DSztTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEVORCBPRiBUUkFOU01JU1NJT04gQkxPQ0s7Ozs7CisyNDE4O1NZTUJPTCBGT1IgQ0FOQ0VMO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgQ0FOQ0VMOzs7OworMjQxOTtTWU1CT0wgRk9SIEVORCBPRiBNRURJVU07U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBFTkQgT0YgTUVESVVNOzs7OworMjQxQTtTWU1CT0wgRk9SIFNVQlNUSVRVVEU7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBTVUJTVElUVVRFOzs7OworMjQxQjtTWU1CT0wgRk9SIEVTQ0FQRTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEVTQ0FQRTs7OzsKKzI0MUM7U1lNQk9MIEZPUiBGSUxFIFNFUEFSQVRPUjtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEZJTEUgU0VQQVJBVE9SOzs7OworMjQxRDtTWU1CT0wgRk9SIEdST1VQIFNFUEFSQVRPUjtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEdST1VQIFNFUEFSQVRPUjs7OzsKKzI0MUU7U1lNQk9MIEZPUiBSRUNPUkQgU0VQQVJBVE9SO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgUkVDT1JEIFNFUEFSQVRPUjs7OzsKKzI0MUY7U1lNQk9MIEZPUiBVTklUIFNFUEFSQVRPUjtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIFVOSVQgU0VQQVJBVE9SOzs7OworMjQyMDtTWU1CT0wgRk9SIFNQQUNFO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgU1BBQ0U7Ozs7CisyNDIxO1NZTUJPTCBGT1IgREVMRVRFO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgREVMRVRFOzs7OworMjQyMjtCTEFOSyBTWU1CT0w7U287MDtPTjs7Ozs7TjtCTEFOSzs7OzsKKzI0MjM7T1BFTiBCT1g7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNDI0O1NZTUJPTCBGT1IgTkVXTElORTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIE5FV0xJTkU7Ozs7CisyNDQwO09DUiBIT09LO1NvOzA7T047Ozs7O047Ozs7OworMjQ0MTtPQ1IgQ0hBSVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNDQyO09DUiBGT1JLO1NvOzA7T047Ozs7O047Ozs7OworMjQ0MztPQ1IgSU5WRVJURUQgRk9SSztTbzswO09OOzs7OztOOzs7OzsKKzI0NDQ7T0NSIEJFTFQgQlVDS0xFO1NvOzA7T047Ozs7O047Ozs7OworMjQ0NTtPQ1IgQk9XIFRJRTtTbzswO09OOzs7OztOOzs7OzsKKzI0NDY7T0NSIEJSQU5DSCBCQU5LIElERU5USUZJQ0FUSU9OO1NvOzA7T047Ozs7O047Ozs7OworMjQ0NztPQ1IgQU1PVU5UIE9GIENIRUNLO1NvOzA7T047Ozs7O047Ozs7OworMjQ0ODtPQ1IgREFTSDtTbzswO09OOzs7OztOOzs7OzsKKzI0NDk7T0NSIENVU1RPTUVSIEFDQ09VTlQgTlVNQkVSO1NvOzA7T047Ozs7O047Ozs7OworMjQ0QTtPQ1IgRE9VQkxFIEJBQ0tTTEFTSDtTbzswO09OOzs7OztOOzs7OzsKKzI0NjA7Q0lSQ0xFRCBESUdJVCBPTkU7Tm87MDtFTjs8Y2lyY2xlPiAwMDMxOzsxOzE7Tjs7Ozs7CisyNDYxO0NJUkNMRUQgRElHSVQgVFdPO05vOzA7RU47PGNpcmNsZT4gMDAzMjs7MjsyO047Ozs7OworMjQ2MjtDSVJDTEVEIERJR0lUIFRIUkVFO05vOzA7RU47PGNpcmNsZT4gMDAzMzs7MzszO047Ozs7OworMjQ2MztDSVJDTEVEIERJR0lUIEZPVVI7Tm87MDtFTjs8Y2lyY2xlPiAwMDM0Ozs0OzQ7Tjs7Ozs7CisyNDY0O0NJUkNMRUQgRElHSVQgRklWRTtObzswO0VOOzxjaXJjbGU+IDAwMzU7OzU7NTtOOzs7OzsKKzI0NjU7Q0lSQ0xFRCBESUdJVCBTSVg7Tm87MDtFTjs8Y2lyY2xlPiAwMDM2Ozs2OzY7Tjs7Ozs7CisyNDY2O0NJUkNMRUQgRElHSVQgU0VWRU47Tm87MDtFTjs8Y2lyY2xlPiAwMDM3Ozs3Ozc7Tjs7Ozs7CisyNDY3O0NJUkNMRUQgRElHSVQgRUlHSFQ7Tm87MDtFTjs8Y2lyY2xlPiAwMDM4Ozs4Ozg7Tjs7Ozs7CisyNDY4O0NJUkNMRUQgRElHSVQgTklORTtObzswO0VOOzxjaXJjbGU+IDAwMzk7Ozk7OTtOOzs7OzsKKzI0Njk7Q0lSQ0xFRCBOVU1CRVIgVEVOO05vOzA7RU47PGNpcmNsZT4gMDAzMSAwMDMwOzs7MTA7Tjs7Ozs7CisyNDZBO0NJUkNMRUQgTlVNQkVSIEVMRVZFTjtObzswO0VOOzxjaXJjbGU+IDAwMzEgMDAzMTs7OzExO047Ozs7OworMjQ2QjtDSVJDTEVEIE5VTUJFUiBUV0VMVkU7Tm87MDtFTjs8Y2lyY2xlPiAwMDMxIDAwMzI7OzsxMjtOOzs7OzsKKzI0NkM7Q0lSQ0xFRCBOVU1CRVIgVEhJUlRFRU47Tm87MDtFTjs8Y2lyY2xlPiAwMDMxIDAwMzM7OzsxMztOOzs7OzsKKzI0NkQ7Q0lSQ0xFRCBOVU1CRVIgRk9VUlRFRU47Tm87MDtFTjs8Y2lyY2xlPiAwMDMxIDAwMzQ7OzsxNDtOOzs7OzsKKzI0NkU7Q0lSQ0xFRCBOVU1CRVIgRklGVEVFTjtObzswO0VOOzxjaXJjbGU+IDAwMzEgMDAzNTs7OzE1O047Ozs7OworMjQ2RjtDSVJDTEVEIE5VTUJFUiBTSVhURUVOO05vOzA7RU47PGNpcmNsZT4gMDAzMSAwMDM2Ozs7MTY7Tjs7Ozs7CisyNDcwO0NJUkNMRUQgTlVNQkVSIFNFVkVOVEVFTjtObzswO0VOOzxjaXJjbGU+IDAwMzEgMDAzNzs7OzE3O047Ozs7OworMjQ3MTtDSVJDTEVEIE5VTUJFUiBFSUdIVEVFTjtObzswO0VOOzxjaXJjbGU+IDAwMzEgMDAzODs7OzE4O047Ozs7OworMjQ3MjtDSVJDTEVEIE5VTUJFUiBOSU5FVEVFTjtObzswO0VOOzxjaXJjbGU+IDAwMzEgMDAzOTs7OzE5O047Ozs7OworMjQ3MztDSVJDTEVEIE5VTUJFUiBUV0VOVFk7Tm87MDtFTjs8Y2lyY2xlPiAwMDMyIDAwMzA7OzsyMDtOOzs7OzsKKzI0NzQ7UEFSRU5USEVTSVpFRCBESUdJVCBPTkU7Tm87MDtFTjs8Y29tcGF0PiAwMDI4IDAwMzEgMDAyOTs7MTsxO047Ozs7OworMjQ3NTtQQVJFTlRIRVNJWkVEIERJR0lUIFRXTztObzswO0VOOzxjb21wYXQ+IDAwMjggMDAzMiAwMDI5OzsyOzI7Tjs7Ozs7CisyNDc2O1BBUkVOVEhFU0laRUQgRElHSVQgVEhSRUU7Tm87MDtFTjs8Y29tcGF0PiAwMDI4IDAwMzMgMDAyOTs7MzszO047Ozs7OworMjQ3NztQQVJFTlRIRVNJWkVEIERJR0lUIEZPVVI7Tm87MDtFTjs8Y29tcGF0PiAwMDI4IDAwMzQgMDAyOTs7NDs0O047Ozs7OworMjQ3ODtQQVJFTlRIRVNJWkVEIERJR0lUIEZJVkU7Tm87MDtFTjs8Y29tcGF0PiAwMDI4IDAwMzUgMDAyOTs7NTs1O047Ozs7OworMjQ3OTtQQVJFTlRIRVNJWkVEIERJR0lUIFNJWDtObzswO0VOOzxjb21wYXQ+IDAwMjggMDAzNiAwMDI5Ozs2OzY7Tjs7Ozs7CisyNDdBO1BBUkVOVEhFU0laRUQgRElHSVQgU0VWRU47Tm87MDtFTjs8Y29tcGF0PiAwMDI4IDAwMzcgMDAyOTs7Nzs3O047Ozs7OworMjQ3QjtQQVJFTlRIRVNJWkVEIERJR0lUIEVJR0hUO05vOzA7RU47PGNvbXBhdD4gMDAyOCAwMDM4IDAwMjk7Ozg7ODtOOzs7OzsKKzI0N0M7UEFSRU5USEVTSVpFRCBESUdJVCBOSU5FO05vOzA7RU47PGNvbXBhdD4gMDAyOCAwMDM5IDAwMjk7Ozk7OTtOOzs7OzsKKzI0N0Q7UEFSRU5USEVTSVpFRCBOVU1CRVIgVEVOO05vOzA7RU47PGNvbXBhdD4gMDAyOCAwMDMxIDAwMzAgMDAyOTs7OzEwO047Ozs7OworMjQ3RTtQQVJFTlRIRVNJWkVEIE5VTUJFUiBFTEVWRU47Tm87MDtFTjs8Y29tcGF0PiAwMDI4IDAwMzEgMDAzMSAwMDI5Ozs7MTE7Tjs7Ozs7CisyNDdGO1BBUkVOVEhFU0laRUQgTlVNQkVSIFRXRUxWRTtObzswO0VOOzxjb21wYXQ+IDAwMjggMDAzMSAwMDMyIDAwMjk7OzsxMjtOOzs7OzsKKzI0ODA7UEFSRU5USEVTSVpFRCBOVU1CRVIgVEhJUlRFRU47Tm87MDtFTjs8Y29tcGF0PiAwMDI4IDAwMzEgMDAzMyAwMDI5Ozs7MTM7Tjs7Ozs7CisyNDgxO1BBUkVOVEhFU0laRUQgTlVNQkVSIEZPVVJURUVOO05vOzA7RU47PGNvbXBhdD4gMDAyOCAwMDMxIDAwMzQgMDAyOTs7OzE0O047Ozs7OworMjQ4MjtQQVJFTlRIRVNJWkVEIE5VTUJFUiBGSUZURUVOO05vOzA7RU47PGNvbXBhdD4gMDAyOCAwMDMxIDAwMzUgMDAyOTs7OzE1O047Ozs7OworMjQ4MztQQVJFTlRIRVNJWkVEIE5VTUJFUiBTSVhURUVOO05vOzA7RU47PGNvbXBhdD4gMDAyOCAwMDMxIDAwMzYgMDAyOTs7OzE2O047Ozs7OworMjQ4NDtQQVJFTlRIRVNJWkVEIE5VTUJFUiBTRVZFTlRFRU47Tm87MDtFTjs8Y29tcGF0PiAwMDI4IDAwMzEgMDAzNyAwMDI5Ozs7MTc7Tjs7Ozs7CisyNDg1O1BBUkVOVEhFU0laRUQgTlVNQkVSIEVJR0hURUVOO05vOzA7RU47PGNvbXBhdD4gMDAyOCAwMDMxIDAwMzggMDAyOTs7OzE4O047Ozs7OworMjQ4NjtQQVJFTlRIRVNJWkVEIE5VTUJFUiBOSU5FVEVFTjtObzswO0VOOzxjb21wYXQ+IDAwMjggMDAzMSAwMDM5IDAwMjk7OzsxOTtOOzs7OzsKKzI0ODc7UEFSRU5USEVTSVpFRCBOVU1CRVIgVFdFTlRZO05vOzA7RU47PGNvbXBhdD4gMDAyOCAwMDMyIDAwMzAgMDAyOTs7OzIwO047Ozs7OworMjQ4ODtESUdJVCBPTkUgRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMSAwMDJFOzsxOzE7TjtESUdJVCBPTkUgUEVSSU9EOzs7OworMjQ4OTtESUdJVCBUV08gRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMiAwMDJFOzsyOzI7TjtESUdJVCBUV08gUEVSSU9EOzs7OworMjQ4QTtESUdJVCBUSFJFRSBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDMzIDAwMkU7OzM7MztOO0RJR0lUIFRIUkVFIFBFUklPRDs7OzsKKzI0OEI7RElHSVQgRk9VUiBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDM0IDAwMkU7OzQ7NDtOO0RJR0lUIEZPVVIgUEVSSU9EOzs7OworMjQ4QztESUdJVCBGSVZFIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzUgMDAyRTs7NTs1O047RElHSVQgRklWRSBQRVJJT0Q7Ozs7CisyNDhEO0RJR0lUIFNJWCBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDM2IDAwMkU7OzY7NjtOO0RJR0lUIFNJWCBQRVJJT0Q7Ozs7CisyNDhFO0RJR0lUIFNFVkVOIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzcgMDAyRTs7Nzs3O047RElHSVQgU0VWRU4gUEVSSU9EOzs7OworMjQ4RjtESUdJVCBFSUdIVCBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDM4IDAwMkU7Ozg7ODtOO0RJR0lUIEVJR0hUIFBFUklPRDs7OzsKKzI0OTA7RElHSVQgTklORSBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDM5IDAwMkU7Ozk7OTtOO0RJR0lUIE5JTkUgUEVSSU9EOzs7OworMjQ5MTtOVU1CRVIgVEVOIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzEgMDAzMCAwMDJFOzs7MTA7TjtOVU1CRVIgVEVOIFBFUklPRDs7OzsKKzI0OTI7TlVNQkVSIEVMRVZFTiBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDMxIDAwMzEgMDAyRTs7OzExO047TlVNQkVSIEVMRVZFTiBQRVJJT0Q7Ozs7CisyNDkzO05VTUJFUiBUV0VMVkUgRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMSAwMDMyIDAwMkU7OzsxMjtOO05VTUJFUiBUV0VMVkUgUEVSSU9EOzs7OworMjQ5NDtOVU1CRVIgVEhJUlRFRU4gRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMSAwMDMzIDAwMkU7OzsxMztOO05VTUJFUiBUSElSVEVFTiBQRVJJT0Q7Ozs7CisyNDk1O05VTUJFUiBGT1VSVEVFTiBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDMxIDAwMzQgMDAyRTs7OzE0O047TlVNQkVSIEZPVVJURUVOIFBFUklPRDs7OzsKKzI0OTY7TlVNQkVSIEZJRlRFRU4gRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMSAwMDM1IDAwMkU7OzsxNTtOO05VTUJFUiBGSUZURUVOIFBFUklPRDs7OzsKKzI0OTc7TlVNQkVSIFNJWFRFRU4gRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMSAwMDM2IDAwMkU7OzsxNjtOO05VTUJFUiBTSVhURUVOIFBFUklPRDs7OzsKKzI0OTg7TlVNQkVSIFNFVkVOVEVFTiBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDMxIDAwMzcgMDAyRTs7OzE3O047TlVNQkVSIFNFVkVOVEVFTiBQRVJJT0Q7Ozs7CisyNDk5O05VTUJFUiBFSUdIVEVFTiBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDMxIDAwMzggMDAyRTs7OzE4O047TlVNQkVSIEVJR0hURUVOIFBFUklPRDs7OzsKKzI0OUE7TlVNQkVSIE5JTkVURUVOIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzEgMDAzOSAwMDJFOzs7MTk7TjtOVU1CRVIgTklORVRFRU4gUEVSSU9EOzs7OworMjQ5QjtOVU1CRVIgVFdFTlRZIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzIgMDAzMCAwMDJFOzs7MjA7TjtOVU1CRVIgVFdFTlRZIFBFUklPRDs7OzsKKzI0OUM7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDYxIDAwMjk7Ozs7Tjs7Ozs7CisyNDlEO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIEI7U287MDtMOzxjb21wYXQ+IDAwMjggMDA2MiAwMDI5Ozs7O047Ozs7OworMjQ5RTtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBDO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNjMgMDAyOTs7OztOOzs7OzsKKzI0OUY7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgRDtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDY0IDAwMjk7Ozs7Tjs7Ozs7CisyNEEwO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIEU7U287MDtMOzxjb21wYXQ+IDAwMjggMDA2NSAwMDI5Ozs7O047Ozs7OworMjRBMTtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBGO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNjYgMDAyOTs7OztOOzs7OzsKKzI0QTI7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgRztTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDY3IDAwMjk7Ozs7Tjs7Ozs7CisyNEEzO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIEg7U287MDtMOzxjb21wYXQ+IDAwMjggMDA2OCAwMDI5Ozs7O047Ozs7OworMjRBNDtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBJO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNjkgMDAyOTs7OztOOzs7OzsKKzI0QTU7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgSjtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDZBIDAwMjk7Ozs7Tjs7Ozs7CisyNEE2O1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIEs7U287MDtMOzxjb21wYXQ+IDAwMjggMDA2QiAwMDI5Ozs7O047Ozs7OworMjRBNztQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBMO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNkMgMDAyOTs7OztOOzs7OzsKKzI0QTg7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgTTtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDZEIDAwMjk7Ozs7Tjs7Ozs7CisyNEE5O1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIE47U287MDtMOzxjb21wYXQ+IDAwMjggMDA2RSAwMDI5Ozs7O047Ozs7OworMjRBQTtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBPO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNkYgMDAyOTs7OztOOzs7OzsKKzI0QUI7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgUDtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDcwIDAwMjk7Ozs7Tjs7Ozs7CisyNEFDO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIFE7U287MDtMOzxjb21wYXQ+IDAwMjggMDA3MSAwMDI5Ozs7O047Ozs7OworMjRBRDtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBSO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNzIgMDAyOTs7OztOOzs7OzsKKzI0QUU7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgUztTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDczIDAwMjk7Ozs7Tjs7Ozs7CisyNEFGO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIFQ7U287MDtMOzxjb21wYXQ+IDAwMjggMDA3NCAwMDI5Ozs7O047Ozs7OworMjRCMDtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBVO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNzUgMDAyOTs7OztOOzs7OzsKKzI0QjE7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgVjtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDc2IDAwMjk7Ozs7Tjs7Ozs7CisyNEIyO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIFc7U287MDtMOzxjb21wYXQ+IDAwMjggMDA3NyAwMDI5Ozs7O047Ozs7OworMjRCMztQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBYO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNzggMDAyOTs7OztOOzs7OzsKKzI0QjQ7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgWTtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDc5IDAwMjk7Ozs7Tjs7Ozs7CisyNEI1O1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIFo7U287MDtMOzxjb21wYXQ+IDAwMjggMDA3QSAwMDI5Ozs7O047Ozs7OworMjRCNjtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEE7U287MDtMOzxjaXJjbGU+IDAwNDE7Ozs7Tjs7OzsyNEQwOworMjRCNztDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEI7U287MDtMOzxjaXJjbGU+IDAwNDI7Ozs7Tjs7OzsyNEQxOworMjRCODtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEM7U287MDtMOzxjaXJjbGU+IDAwNDM7Ozs7Tjs7OzsyNEQyOworMjRCOTtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEQ7U287MDtMOzxjaXJjbGU+IDAwNDQ7Ozs7Tjs7OzsyNEQzOworMjRCQTtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEU7U287MDtMOzxjaXJjbGU+IDAwNDU7Ozs7Tjs7OzsyNEQ0OworMjRCQjtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEY7U287MDtMOzxjaXJjbGU+IDAwNDY7Ozs7Tjs7OzsyNEQ1OworMjRCQztDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEc7U287MDtMOzxjaXJjbGU+IDAwNDc7Ozs7Tjs7OzsyNEQ2OworMjRCRDtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEg7U287MDtMOzxjaXJjbGU+IDAwNDg7Ozs7Tjs7OzsyNEQ3OworMjRCRTtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEk7U287MDtMOzxjaXJjbGU+IDAwNDk7Ozs7Tjs7OzsyNEQ4OworMjRCRjtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEo7U287MDtMOzxjaXJjbGU+IDAwNEE7Ozs7Tjs7OzsyNEQ5OworMjRDMDtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEs7U287MDtMOzxjaXJjbGU+IDAwNEI7Ozs7Tjs7OzsyNERBOworMjRDMTtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEw7U287MDtMOzxjaXJjbGU+IDAwNEM7Ozs7Tjs7OzsyNERCOworMjRDMjtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIE07U287MDtMOzxjaXJjbGU+IDAwNEQ7Ozs7Tjs7OzsyNERDOworMjRDMztDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIE47U287MDtMOzxjaXJjbGU+IDAwNEU7Ozs7Tjs7OzsyNEREOworMjRDNDtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIE87U287MDtMOzxjaXJjbGU+IDAwNEY7Ozs7Tjs7OzsyNERFOworMjRDNTtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFA7U287MDtMOzxjaXJjbGU+IDAwNTA7Ozs7Tjs7OzsyNERGOworMjRDNjtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFE7U287MDtMOzxjaXJjbGU+IDAwNTE7Ozs7Tjs7OzsyNEUwOworMjRDNztDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFI7U287MDtMOzxjaXJjbGU+IDAwNTI7Ozs7Tjs7OzsyNEUxOworMjRDODtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFM7U287MDtMOzxjaXJjbGU+IDAwNTM7Ozs7Tjs7OzsyNEUyOworMjRDOTtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFQ7U287MDtMOzxjaXJjbGU+IDAwNTQ7Ozs7Tjs7OzsyNEUzOworMjRDQTtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFU7U287MDtMOzxjaXJjbGU+IDAwNTU7Ozs7Tjs7OzsyNEU0OworMjRDQjtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFY7U287MDtMOzxjaXJjbGU+IDAwNTY7Ozs7Tjs7OzsyNEU1OworMjRDQztDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFc7U287MDtMOzxjaXJjbGU+IDAwNTc7Ozs7Tjs7OzsyNEU2OworMjRDRDtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFg7U287MDtMOzxjaXJjbGU+IDAwNTg7Ozs7Tjs7OzsyNEU3OworMjRDRTtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFk7U287MDtMOzxjaXJjbGU+IDAwNTk7Ozs7Tjs7OzsyNEU4OworMjRDRjtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFo7U287MDtMOzxjaXJjbGU+IDAwNUE7Ozs7Tjs7OzsyNEU5OworMjREMDtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBBO1NvOzA7TDs8Y2lyY2xlPiAwMDYxOzs7O047OzsyNEI2OzsyNEI2CisyNEQxO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIEI7U287MDtMOzxjaXJjbGU+IDAwNjI7Ozs7Tjs7OzI0Qjc7OzI0QjcKKzI0RDI7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgQztTbzswO0w7PGNpcmNsZT4gMDA2Mzs7OztOOzs7MjRCODs7MjRCOAorMjREMztDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBEO1NvOzA7TDs8Y2lyY2xlPiAwMDY0Ozs7O047OzsyNEI5OzsyNEI5CisyNEQ0O0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIEU7U287MDtMOzxjaXJjbGU+IDAwNjU7Ozs7Tjs7OzI0QkE7OzI0QkEKKzI0RDU7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgRjtTbzswO0w7PGNpcmNsZT4gMDA2Njs7OztOOzs7MjRCQjs7MjRCQgorMjRENjtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBHO1NvOzA7TDs8Y2lyY2xlPiAwMDY3Ozs7O047OzsyNEJDOzsyNEJDCisyNEQ3O0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIEg7U287MDtMOzxjaXJjbGU+IDAwNjg7Ozs7Tjs7OzI0QkQ7OzI0QkQKKzI0RDg7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgSTtTbzswO0w7PGNpcmNsZT4gMDA2OTs7OztOOzs7MjRCRTs7MjRCRQorMjREOTtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBKO1NvOzA7TDs8Y2lyY2xlPiAwMDZBOzs7O047OzsyNEJGOzsyNEJGCisyNERBO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIEs7U287MDtMOzxjaXJjbGU+IDAwNkI7Ozs7Tjs7OzI0QzA7OzI0QzAKKzI0REI7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgTDtTbzswO0w7PGNpcmNsZT4gMDA2Qzs7OztOOzs7MjRDMTs7MjRDMQorMjREQztDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBNO1NvOzA7TDs8Y2lyY2xlPiAwMDZEOzs7O047OzsyNEMyOzsyNEMyCisyNEREO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIE47U287MDtMOzxjaXJjbGU+IDAwNkU7Ozs7Tjs7OzI0QzM7OzI0QzMKKzI0REU7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgTztTbzswO0w7PGNpcmNsZT4gMDA2Rjs7OztOOzs7MjRDNDs7MjRDNAorMjRERjtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBQO1NvOzA7TDs8Y2lyY2xlPiAwMDcwOzs7O047OzsyNEM1OzsyNEM1CisyNEUwO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIFE7U287MDtMOzxjaXJjbGU+IDAwNzE7Ozs7Tjs7OzI0QzY7OzI0QzYKKzI0RTE7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgUjtTbzswO0w7PGNpcmNsZT4gMDA3Mjs7OztOOzs7MjRDNzs7MjRDNworMjRFMjtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBTO1NvOzA7TDs8Y2lyY2xlPiAwMDczOzs7O047OzsyNEM4OzsyNEM4CisyNEUzO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIFQ7U287MDtMOzxjaXJjbGU+IDAwNzQ7Ozs7Tjs7OzI0Qzk7OzI0QzkKKzI0RTQ7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgVTtTbzswO0w7PGNpcmNsZT4gMDA3NTs7OztOOzs7MjRDQTs7MjRDQQorMjRFNTtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBWO1NvOzA7TDs8Y2lyY2xlPiAwMDc2Ozs7O047OzsyNENCOzsyNENCCisyNEU2O0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIFc7U287MDtMOzxjaXJjbGU+IDAwNzc7Ozs7Tjs7OzI0Q0M7OzI0Q0MKKzI0RTc7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgWDtTbzswO0w7PGNpcmNsZT4gMDA3ODs7OztOOzs7MjRDRDs7MjRDRAorMjRFODtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBZO1NvOzA7TDs8Y2lyY2xlPiAwMDc5Ozs7O047OzsyNENFOzsyNENFCisyNEU5O0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIFo7U287MDtMOzxjaXJjbGU+IDAwN0E7Ozs7Tjs7OzI0Q0Y7OzI0Q0YKKzI0RUE7Q0lSQ0xFRCBESUdJVCBaRVJPO05vOzA7RU47PGNpcmNsZT4gMDAzMDs7MDswO047Ozs7OworMjUwMDtCT1ggRFJBV0lOR1MgTElHSFQgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIEhPUklaT05UQUw7Ozs7CisyNTAxO0JPWCBEUkFXSU5HUyBIRUFWWSBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgSE9SSVpPTlRBTDs7OzsKKzI1MDI7Qk9YIERSQVdJTkdTIExJR0hUIFZFUlRJQ0FMO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgVkVSVElDQUw7Ozs7CisyNTAzO0JPWCBEUkFXSU5HUyBIRUFWWSBWRVJUSUNBTDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFZFUlRJQ0FMOzs7OworMjUwNDtCT1ggRFJBV0lOR1MgTElHSFQgVFJJUExFIERBU0ggSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFRSSVBMRSBEQVNIIEhPUklaT05UQUw7Ozs7CisyNTA1O0JPWCBEUkFXSU5HUyBIRUFWWSBUUklQTEUgREFTSCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVFJJUExFIERBU0ggSE9SSVpPTlRBTDs7OzsKKzI1MDY7Qk9YIERSQVdJTkdTIExJR0hUIFRSSVBMRSBEQVNIIFZFUlRJQ0FMO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgVFJJUExFIERBU0ggVkVSVElDQUw7Ozs7CisyNTA3O0JPWCBEUkFXSU5HUyBIRUFWWSBUUklQTEUgREFTSCBWRVJUSUNBTDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFRSSVBMRSBEQVNIIFZFUlRJQ0FMOzs7OworMjUwODtCT1ggRFJBV0lOR1MgTElHSFQgUVVBRFJVUExFIERBU0ggSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFFVQURSVVBMRSBEQVNIIEhPUklaT05UQUw7Ozs7CisyNTA5O0JPWCBEUkFXSU5HUyBIRUFWWSBRVUFEUlVQTEUgREFTSCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgUVVBRFJVUExFIERBU0ggSE9SSVpPTlRBTDs7OzsKKzI1MEE7Qk9YIERSQVdJTkdTIExJR0hUIFFVQURSVVBMRSBEQVNIIFZFUlRJQ0FMO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgUVVBRFJVUExFIERBU0ggVkVSVElDQUw7Ozs7CisyNTBCO0JPWCBEUkFXSU5HUyBIRUFWWSBRVUFEUlVQTEUgREFTSCBWRVJUSUNBTDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFFVQURSVVBMRSBEQVNIIFZFUlRJQ0FMOzs7OworMjUwQztCT1ggRFJBV0lOR1MgTElHSFQgRE9XTiBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBET1dOIEFORCBSSUdIVDs7OzsKKzI1MEQ7Qk9YIERSQVdJTkdTIERPV04gTElHSFQgQU5EIFJJR0hUIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBMSUdIVCBBTkQgUklHSFQgSEVBVlk7Ozs7CisyNTBFO0JPWCBEUkFXSU5HUyBET1dOIEhFQVZZIEFORCBSSUdIVCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gSEVBVlkgQU5EIFJJR0hUIExJR0hUOzs7OworMjUwRjtCT1ggRFJBV0lOR1MgSEVBVlkgRE9XTiBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBET1dOIEFORCBSSUdIVDs7OzsKKzI1MTA7Qk9YIERSQVdJTkdTIExJR0hUIERPV04gQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBET1dOIEFORCBMRUZUOzs7OworMjUxMTtCT1ggRFJBV0lOR1MgRE9XTiBMSUdIVCBBTkQgTEVGVCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gTElHSFQgQU5EIExFRlQgSEVBVlk7Ozs7CisyNTEyO0JPWCBEUkFXSU5HUyBET1dOIEhFQVZZIEFORCBMRUZUIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBIRUFWWSBBTkQgTEVGVCBMSUdIVDs7OzsKKzI1MTM7Qk9YIERSQVdJTkdTIEhFQVZZIERPV04gQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBET1dOIEFORCBMRUZUOzs7OworMjUxNDtCT1ggRFJBV0lOR1MgTElHSFQgVVAgQU5EIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgVVAgQU5EIFJJR0hUOzs7OworMjUxNTtCT1ggRFJBV0lOR1MgVVAgTElHSFQgQU5EIFJJR0hUIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgVVAgTElHSFQgQU5EIFJJR0hUIEhFQVZZOzs7OworMjUxNjtCT1ggRFJBV0lOR1MgVVAgSEVBVlkgQU5EIFJJR0hUIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgVVAgSEVBVlkgQU5EIFJJR0hUIExJR0hUOzs7OworMjUxNztCT1ggRFJBV0lOR1MgSEVBVlkgVVAgQU5EIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVVAgQU5EIFJJR0hUOzs7OworMjUxODtCT1ggRFJBV0lOR1MgTElHSFQgVVAgQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBVUCBBTkQgTEVGVDs7OzsKKzI1MTk7Qk9YIERSQVdJTkdTIFVQIExJR0hUIEFORCBMRUZUIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgVVAgTElHSFQgQU5EIExFRlQgSEVBVlk7Ozs7CisyNTFBO0JPWCBEUkFXSU5HUyBVUCBIRUFWWSBBTkQgTEVGVCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFVQIEhFQVZZIEFORCBMRUZUIExJR0hUOzs7OworMjUxQjtCT1ggRFJBV0lOR1MgSEVBVlkgVVAgQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBVUCBBTkQgTEVGVDs7OzsKKzI1MUM7Qk9YIERSQVdJTkdTIExJR0hUIFZFUlRJQ0FMIEFORCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFZFUlRJQ0FMIEFORCBSSUdIVDs7OzsKKzI1MUQ7Qk9YIERSQVdJTkdTIFZFUlRJQ0FMIExJR0hUIEFORCBSSUdIVCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIExJR0hUIEFORCBSSUdIVCBIRUFWWTs7OzsKKzI1MUU7Qk9YIERSQVdJTkdTIFVQIEhFQVZZIEFORCBSSUdIVCBET1dOIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgVVAgSEVBVlkgQU5EIFJJR0hUIERPV04gTElHSFQ7Ozs7CisyNTFGO0JPWCBEUkFXSU5HUyBET1dOIEhFQVZZIEFORCBSSUdIVCBVUCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gSEVBVlkgQU5EIFJJR0hUIFVQIExJR0hUOzs7OworMjUyMDtCT1ggRFJBV0lOR1MgVkVSVElDQUwgSEVBVlkgQU5EIFJJR0hUIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgSEVBVlkgQU5EIFJJR0hUIExJR0hUOzs7OworMjUyMTtCT1ggRFJBV0lOR1MgRE9XTiBMSUdIVCBBTkQgUklHSFQgVVAgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIExJR0hUIEFORCBSSUdIVCBVUCBIRUFWWTs7OzsKKzI1MjI7Qk9YIERSQVdJTkdTIFVQIExJR0hUIEFORCBSSUdIVCBET1dOIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgVVAgTElHSFQgQU5EIFJJR0hUIERPV04gSEVBVlk7Ozs7CisyNTIzO0JPWCBEUkFXSU5HUyBIRUFWWSBWRVJUSUNBTCBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBWRVJUSUNBTCBBTkQgUklHSFQ7Ozs7CisyNTI0O0JPWCBEUkFXSU5HUyBMSUdIVCBWRVJUSUNBTCBBTkQgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFZFUlRJQ0FMIEFORCBMRUZUOzs7OworMjUyNTtCT1ggRFJBV0lOR1MgVkVSVElDQUwgTElHSFQgQU5EIExFRlQgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBWRVJUSUNBTCBMSUdIVCBBTkQgTEVGVCBIRUFWWTs7OzsKKzI1MjY7Qk9YIERSQVdJTkdTIFVQIEhFQVZZIEFORCBMRUZUIERPV04gTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBIRUFWWSBBTkQgTEVGVCBET1dOIExJR0hUOzs7OworMjUyNztCT1ggRFJBV0lOR1MgRE9XTiBIRUFWWSBBTkQgTEVGVCBVUCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gSEVBVlkgQU5EIExFRlQgVVAgTElHSFQ7Ozs7CisyNTI4O0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBIRUFWWSBBTkQgTEVGVCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIEhFQVZZIEFORCBMRUZUIExJR0hUOzs7OworMjUyOTtCT1ggRFJBV0lOR1MgRE9XTiBMSUdIVCBBTkQgTEVGVCBVUCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gTElHSFQgQU5EIExFRlQgVVAgSEVBVlk7Ozs7CisyNTJBO0JPWCBEUkFXSU5HUyBVUCBMSUdIVCBBTkQgTEVGVCBET1dOIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgVVAgTElHSFQgQU5EIExFRlQgRE9XTiBIRUFWWTs7OzsKKzI1MkI7Qk9YIERSQVdJTkdTIEhFQVZZIFZFUlRJQ0FMIEFORCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVkVSVElDQUwgQU5EIExFRlQ7Ozs7CisyNTJDO0JPWCBEUkFXSU5HUyBMSUdIVCBET1dOIEFORCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgRE9XTiBBTkQgSE9SSVpPTlRBTDs7OzsKKzI1MkQ7Qk9YIERSQVdJTkdTIExFRlQgSEVBVlkgQU5EIFJJR0hUIERPV04gTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMRUZUIEhFQVZZIEFORCBSSUdIVCBET1dOIExJR0hUOzs7OworMjUyRTtCT1ggRFJBV0lOR1MgUklHSFQgSEVBVlkgQU5EIExFRlQgRE9XTiBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFJJR0hUIEhFQVZZIEFORCBMRUZUIERPV04gTElHSFQ7Ozs7CisyNTJGO0JPWCBEUkFXSU5HUyBET1dOIExJR0hUIEFORCBIT1JJWk9OVEFMIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBMSUdIVCBBTkQgSE9SSVpPTlRBTCBIRUFWWTs7OzsKKzI1MzA7Qk9YIERSQVdJTkdTIERPV04gSEVBVlkgQU5EIEhPUklaT05UQUwgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIEhFQVZZIEFORCBIT1JJWk9OVEFMIExJR0hUOzs7OworMjUzMTtCT1ggRFJBV0lOR1MgUklHSFQgTElHSFQgQU5EIExFRlQgRE9XTiBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFJJR0hUIExJR0hUIEFORCBMRUZUIERPV04gSEVBVlk7Ozs7CisyNTMyO0JPWCBEUkFXSU5HUyBMRUZUIExJR0hUIEFORCBSSUdIVCBET1dOIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgTEVGVCBMSUdIVCBBTkQgUklHSFQgRE9XTiBIRUFWWTs7OzsKKzI1MzM7Qk9YIERSQVdJTkdTIEhFQVZZIERPV04gQU5EIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBET1dOIEFORCBIT1JJWk9OVEFMOzs7OworMjUzNDtCT1ggRFJBV0lOR1MgTElHSFQgVVAgQU5EIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBVUCBBTkQgSE9SSVpPTlRBTDs7OzsKKzI1MzU7Qk9YIERSQVdJTkdTIExFRlQgSEVBVlkgQU5EIFJJR0hUIFVQIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTEVGVCBIRUFWWSBBTkQgUklHSFQgVVAgTElHSFQ7Ozs7CisyNTM2O0JPWCBEUkFXSU5HUyBSSUdIVCBIRUFWWSBBTkQgTEVGVCBVUCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFJJR0hUIEhFQVZZIEFORCBMRUZUIFVQIExJR0hUOzs7OworMjUzNztCT1ggRFJBV0lOR1MgVVAgTElHSFQgQU5EIEhPUklaT05UQUwgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBMSUdIVCBBTkQgSE9SSVpPTlRBTCBIRUFWWTs7OzsKKzI1Mzg7Qk9YIERSQVdJTkdTIFVQIEhFQVZZIEFORCBIT1JJWk9OVEFMIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgVVAgSEVBVlkgQU5EIEhPUklaT05UQUwgTElHSFQ7Ozs7CisyNTM5O0JPWCBEUkFXSU5HUyBSSUdIVCBMSUdIVCBBTkQgTEVGVCBVUCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFJJR0hUIExJR0hUIEFORCBMRUZUIFVQIEhFQVZZOzs7OworMjUzQTtCT1ggRFJBV0lOR1MgTEVGVCBMSUdIVCBBTkQgUklHSFQgVVAgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBMRUZUIExJR0hUIEFORCBSSUdIVCBVUCBIRUFWWTs7OzsKKzI1M0I7Qk9YIERSQVdJTkdTIEhFQVZZIFVQIEFORCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVVAgQU5EIEhPUklaT05UQUw7Ozs7CisyNTNDO0JPWCBEUkFXSU5HUyBMSUdIVCBWRVJUSUNBTCBBTkQgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFZFUlRJQ0FMIEFORCBIT1JJWk9OVEFMOzs7OworMjUzRDtCT1ggRFJBV0lOR1MgTEVGVCBIRUFWWSBBTkQgUklHSFQgVkVSVElDQUwgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMRUZUIEhFQVZZIEFORCBSSUdIVCBWRVJUSUNBTCBMSUdIVDs7OzsKKzI1M0U7Qk9YIERSQVdJTkdTIFJJR0hUIEhFQVZZIEFORCBMRUZUIFZFUlRJQ0FMIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgUklHSFQgSEVBVlkgQU5EIExFRlQgVkVSVElDQUwgTElHSFQ7Ozs7CisyNTNGO0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBMSUdIVCBBTkQgSE9SSVpPTlRBTCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIExJR0hUIEFORCBIT1JJWk9OVEFMIEhFQVZZOzs7OworMjU0MDtCT1ggRFJBV0lOR1MgVVAgSEVBVlkgQU5EIERPV04gSE9SSVpPTlRBTCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFVQIEhFQVZZIEFORCBET1dOIEhPUklaT05UQUwgTElHSFQ7Ozs7CisyNTQxO0JPWCBEUkFXSU5HUyBET1dOIEhFQVZZIEFORCBVUCBIT1JJWk9OVEFMIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBIRUFWWSBBTkQgVVAgSE9SSVpPTlRBTCBMSUdIVDs7OzsKKzI1NDI7Qk9YIERSQVdJTkdTIFZFUlRJQ0FMIEhFQVZZIEFORCBIT1JJWk9OVEFMIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgSEVBVlkgQU5EIEhPUklaT05UQUwgTElHSFQ7Ozs7CisyNTQzO0JPWCBEUkFXSU5HUyBMRUZUIFVQIEhFQVZZIEFORCBSSUdIVCBET1dOIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTEVGVCBVUCBIRUFWWSBBTkQgUklHSFQgRE9XTiBMSUdIVDs7OzsKKzI1NDQ7Qk9YIERSQVdJTkdTIFJJR0hUIFVQIEhFQVZZIEFORCBMRUZUIERPV04gTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBSSUdIVCBVUCBIRUFWWSBBTkQgTEVGVCBET1dOIExJR0hUOzs7OworMjU0NTtCT1ggRFJBV0lOR1MgTEVGVCBET1dOIEhFQVZZIEFORCBSSUdIVCBVUCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExFRlQgRE9XTiBIRUFWWSBBTkQgUklHSFQgVVAgTElHSFQ7Ozs7CisyNTQ2O0JPWCBEUkFXSU5HUyBSSUdIVCBET1dOIEhFQVZZIEFORCBMRUZUIFVQIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgUklHSFQgRE9XTiBIRUFWWSBBTkQgTEVGVCBVUCBMSUdIVDs7OzsKKzI1NDc7Qk9YIERSQVdJTkdTIERPV04gTElHSFQgQU5EIFVQIEhPUklaT05UQUwgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIExJR0hUIEFORCBVUCBIT1JJWk9OVEFMIEhFQVZZOzs7OworMjU0ODtCT1ggRFJBV0lOR1MgVVAgTElHSFQgQU5EIERPV04gSE9SSVpPTlRBTCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIExJR0hUIEFORCBET1dOIEhPUklaT05UQUwgSEVBVlk7Ozs7CisyNTQ5O0JPWCBEUkFXSU5HUyBSSUdIVCBMSUdIVCBBTkQgTEVGVCBWRVJUSUNBTCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFJJR0hUIExJR0hUIEFORCBMRUZUIFZFUlRJQ0FMIEhFQVZZOzs7OworMjU0QTtCT1ggRFJBV0lOR1MgTEVGVCBMSUdIVCBBTkQgUklHSFQgVkVSVElDQUwgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBMRUZUIExJR0hUIEFORCBSSUdIVCBWRVJUSUNBTCBIRUFWWTs7OzsKKzI1NEI7Qk9YIERSQVdJTkdTIEhFQVZZIFZFUlRJQ0FMIEFORCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVkVSVElDQUwgQU5EIEhPUklaT05UQUw7Ozs7CisyNTRDO0JPWCBEUkFXSU5HUyBMSUdIVCBET1VCTEUgREFTSCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgRE9VQkxFIERBU0ggSE9SSVpPTlRBTDs7OzsKKzI1NEQ7Qk9YIERSQVdJTkdTIEhFQVZZIERPVUJMRSBEQVNIIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBET1VCTEUgREFTSCBIT1JJWk9OVEFMOzs7OworMjU0RTtCT1ggRFJBV0lOR1MgTElHSFQgRE9VQkxFIERBU0ggVkVSVElDQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBET1VCTEUgREFTSCBWRVJUSUNBTDs7OzsKKzI1NEY7Qk9YIERSQVdJTkdTIEhFQVZZIERPVUJMRSBEQVNIIFZFUlRJQ0FMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgRE9VQkxFIERBU0ggVkVSVElDQUw7Ozs7CisyNTUwO0JPWCBEUkFXSU5HUyBET1VCTEUgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIERPVUJMRSBIT1JJWk9OVEFMOzs7OworMjU1MTtCT1ggRFJBV0lOR1MgRE9VQkxFIFZFUlRJQ0FMO1NvOzA7T047Ozs7O047Rk9STVMgRE9VQkxFIFZFUlRJQ0FMOzs7OworMjU1MjtCT1ggRFJBV0lOR1MgRE9XTiBTSU5HTEUgQU5EIFJJR0hUIERPVUJMRTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gU0lOR0xFIEFORCBSSUdIVCBET1VCTEU7Ozs7CisyNTUzO0JPWCBEUkFXSU5HUyBET1dOIERPVUJMRSBBTkQgUklHSFQgU0lOR0xFO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBET1VCTEUgQU5EIFJJR0hUIFNJTkdMRTs7OzsKKzI1NTQ7Qk9YIERSQVdJTkdTIERPVUJMRSBET1dOIEFORCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIERPVUJMRSBET1dOIEFORCBSSUdIVDs7OzsKKzI1NTU7Qk9YIERSQVdJTkdTIERPV04gU0lOR0xFIEFORCBMRUZUIERPVUJMRTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gU0lOR0xFIEFORCBMRUZUIERPVUJMRTs7OzsKKzI1NTY7Qk9YIERSQVdJTkdTIERPV04gRE9VQkxFIEFORCBMRUZUIFNJTkdMRTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gRE9VQkxFIEFORCBMRUZUIFNJTkdMRTs7OzsKKzI1NTc7Qk9YIERSQVdJTkdTIERPVUJMRSBET1dOIEFORCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgRE9VQkxFIERPV04gQU5EIExFRlQ7Ozs7CisyNTU4O0JPWCBEUkFXSU5HUyBVUCBTSU5HTEUgQU5EIFJJR0hUIERPVUJMRTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIFNJTkdMRSBBTkQgUklHSFQgRE9VQkxFOzs7OworMjU1OTtCT1ggRFJBV0lOR1MgVVAgRE9VQkxFIEFORCBSSUdIVCBTSU5HTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBET1VCTEUgQU5EIFJJR0hUIFNJTkdMRTs7OzsKKzI1NUE7Qk9YIERSQVdJTkdTIERPVUJMRSBVUCBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBET1VCTEUgVVAgQU5EIFJJR0hUOzs7OworMjU1QjtCT1ggRFJBV0lOR1MgVVAgU0lOR0xFIEFORCBMRUZUIERPVUJMRTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIFNJTkdMRSBBTkQgTEVGVCBET1VCTEU7Ozs7CisyNTVDO0JPWCBEUkFXSU5HUyBVUCBET1VCTEUgQU5EIExFRlQgU0lOR0xFO1NvOzA7T047Ozs7O047Rk9STVMgVVAgRE9VQkxFIEFORCBMRUZUIFNJTkdMRTs7OzsKKzI1NUQ7Qk9YIERSQVdJTkdTIERPVUJMRSBVUCBBTkQgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIERPVUJMRSBVUCBBTkQgTEVGVDs7OzsKKzI1NUU7Qk9YIERSQVdJTkdTIFZFUlRJQ0FMIFNJTkdMRSBBTkQgUklHSFQgRE9VQkxFO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgU0lOR0xFIEFORCBSSUdIVCBET1VCTEU7Ozs7CisyNTVGO0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBET1VCTEUgQU5EIFJJR0hUIFNJTkdMRTtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIERPVUJMRSBBTkQgUklHSFQgU0lOR0xFOzs7OworMjU2MDtCT1ggRFJBV0lOR1MgRE9VQkxFIFZFUlRJQ0FMIEFORCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIERPVUJMRSBWRVJUSUNBTCBBTkQgUklHSFQ7Ozs7CisyNTYxO0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBTSU5HTEUgQU5EIExFRlQgRE9VQkxFO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgU0lOR0xFIEFORCBMRUZUIERPVUJMRTs7OzsKKzI1NjI7Qk9YIERSQVdJTkdTIFZFUlRJQ0FMIERPVUJMRSBBTkQgTEVGVCBTSU5HTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBWRVJUSUNBTCBET1VCTEUgQU5EIExFRlQgU0lOR0xFOzs7OworMjU2MztCT1ggRFJBV0lOR1MgRE9VQkxFIFZFUlRJQ0FMIEFORCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgRE9VQkxFIFZFUlRJQ0FMIEFORCBMRUZUOzs7OworMjU2NDtCT1ggRFJBV0lOR1MgRE9XTiBTSU5HTEUgQU5EIEhPUklaT05UQUwgRE9VQkxFO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBTSU5HTEUgQU5EIEhPUklaT05UQUwgRE9VQkxFOzs7OworMjU2NTtCT1ggRFJBV0lOR1MgRE9XTiBET1VCTEUgQU5EIEhPUklaT05UQUwgU0lOR0xFO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBET1VCTEUgQU5EIEhPUklaT05UQUwgU0lOR0xFOzs7OworMjU2NjtCT1ggRFJBV0lOR1MgRE9VQkxFIERPV04gQU5EIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBET1VCTEUgRE9XTiBBTkQgSE9SSVpPTlRBTDs7OzsKKzI1Njc7Qk9YIERSQVdJTkdTIFVQIFNJTkdMRSBBTkQgSE9SSVpPTlRBTCBET1VCTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBTSU5HTEUgQU5EIEhPUklaT05UQUwgRE9VQkxFOzs7OworMjU2ODtCT1ggRFJBV0lOR1MgVVAgRE9VQkxFIEFORCBIT1JJWk9OVEFMIFNJTkdMRTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIERPVUJMRSBBTkQgSE9SSVpPTlRBTCBTSU5HTEU7Ozs7CisyNTY5O0JPWCBEUkFXSU5HUyBET1VCTEUgVVAgQU5EIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBET1VCTEUgVVAgQU5EIEhPUklaT05UQUw7Ozs7CisyNTZBO0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBTSU5HTEUgQU5EIEhPUklaT05UQUwgRE9VQkxFO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgU0lOR0xFIEFORCBIT1JJWk9OVEFMIERPVUJMRTs7OzsKKzI1NkI7Qk9YIERSQVdJTkdTIFZFUlRJQ0FMIERPVUJMRSBBTkQgSE9SSVpPTlRBTCBTSU5HTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBWRVJUSUNBTCBET1VCTEUgQU5EIEhPUklaT05UQUwgU0lOR0xFOzs7OworMjU2QztCT1ggRFJBV0lOR1MgRE9VQkxFIFZFUlRJQ0FMIEFORCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgRE9VQkxFIFZFUlRJQ0FMIEFORCBIT1JJWk9OVEFMOzs7OworMjU2RDtCT1ggRFJBV0lOR1MgTElHSFQgQVJDIERPV04gQU5EIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgQVJDIERPV04gQU5EIFJJR0hUOzs7OworMjU2RTtCT1ggRFJBV0lOR1MgTElHSFQgQVJDIERPV04gQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBBUkMgRE9XTiBBTkQgTEVGVDs7OzsKKzI1NkY7Qk9YIERSQVdJTkdTIExJR0hUIEFSQyBVUCBBTkQgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIEFSQyBVUCBBTkQgTEVGVDs7OzsKKzI1NzA7Qk9YIERSQVdJTkdTIExJR0hUIEFSQyBVUCBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBBUkMgVVAgQU5EIFJJR0hUOzs7OworMjU3MTtCT1ggRFJBV0lOR1MgTElHSFQgRElBR09OQUwgVVBQRVIgUklHSFQgVE8gTE9XRVIgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIERJQUdPTkFMIFVQUEVSIFJJR0hUIFRPIExPV0VSIExFRlQ7Ozs7CisyNTcyO0JPWCBEUkFXSU5HUyBMSUdIVCBESUFHT05BTCBVUFBFUiBMRUZUIFRPIExPV0VSIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgRElBR09OQUwgVVBQRVIgTEVGVCBUTyBMT1dFUiBSSUdIVDs7OzsKKzI1NzM7Qk9YIERSQVdJTkdTIExJR0hUIERJQUdPTkFMIENST1NTO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgRElBR09OQUwgQ1JPU1M7Ozs7CisyNTc0O0JPWCBEUkFXSU5HUyBMSUdIVCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgTEVGVDs7OzsKKzI1NzU7Qk9YIERSQVdJTkdTIExJR0hUIFVQO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgVVA7Ozs7CisyNTc2O0JPWCBEUkFXSU5HUyBMSUdIVCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFJJR0hUOzs7OworMjU3NztCT1ggRFJBV0lOR1MgTElHSFQgRE9XTjtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIERPV047Ozs7CisyNTc4O0JPWCBEUkFXSU5HUyBIRUFWWSBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgTEVGVDs7OzsKKzI1Nzk7Qk9YIERSQVdJTkdTIEhFQVZZIFVQO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVVA7Ozs7CisyNTdBO0JPWCBEUkFXSU5HUyBIRUFWWSBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFJJR0hUOzs7OworMjU3QjtCT1ggRFJBV0lOR1MgSEVBVlkgRE9XTjtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIERPV047Ozs7CisyNTdDO0JPWCBEUkFXSU5HUyBMSUdIVCBMRUZUIEFORCBIRUFWWSBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIExFRlQgQU5EIEhFQVZZIFJJR0hUOzs7OworMjU3RDtCT1ggRFJBV0lOR1MgTElHSFQgVVAgQU5EIEhFQVZZIERPV047U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBVUCBBTkQgSEVBVlkgRE9XTjs7OzsKKzI1N0U7Qk9YIERSQVdJTkdTIEhFQVZZIExFRlQgQU5EIExJR0hUIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgTEVGVCBBTkQgTElHSFQgUklHSFQ7Ozs7CisyNTdGO0JPWCBEUkFXSU5HUyBIRUFWWSBVUCBBTkQgTElHSFQgRE9XTjtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFVQIEFORCBMSUdIVCBET1dOOzs7OworMjU4MDtVUFBFUiBIQUxGIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4MTtMT1dFUiBPTkUgRUlHSFRIIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4MjtMT1dFUiBPTkUgUVVBUlRFUiBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1ODM7TE9XRVIgVEhSRUUgRUlHSFRIUyBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1ODQ7TE9XRVIgSEFMRiBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1ODU7TE9XRVIgRklWRSBFSUdIVEhTIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4NjtMT1dFUiBUSFJFRSBRVUFSVEVSUyBCTE9DSztTbzswO09OOzs7OztOO0xPV0VSIFRIUkVFIFFVQVJURVIgQkxPQ0s7Ozs7CisyNTg3O0xPV0VSIFNFVkVOIEVJR0hUSFMgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTg4O0ZVTEwgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTg5O0xFRlQgU0VWRU4gRUlHSFRIUyBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1OEE7TEVGVCBUSFJFRSBRVUFSVEVSUyBCTE9DSztTbzswO09OOzs7OztOO0xFRlQgVEhSRUUgUVVBUlRFUiBCTE9DSzs7OzsKKzI1OEI7TEVGVCBGSVZFIEVJR0hUSFMgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNThDO0xFRlQgSEFMRiBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1OEQ7TEVGVCBUSFJFRSBFSUdIVEhTIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4RTtMRUZUIE9ORSBRVUFSVEVSIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4RjtMRUZUIE9ORSBFSUdIVEggQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTkwO1JJR0hUIEhBTEYgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTkxO0xJR0hUIFNIQURFO1NvOzA7T047Ozs7O047Ozs7OworMjU5MjtNRURJVU0gU0hBREU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTkzO0RBUksgU0hBREU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTk0O1VQUEVSIE9ORSBFSUdIVEggQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTk1O1JJR0hUIE9ORSBFSUdIVEggQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUEwO0JMQUNLIFNRVUFSRTtTbzswO09OOzs7OztOOzs7OzsKKzI1QTE7V0hJVEUgU1FVQVJFO1NvOzA7T047Ozs7O047Ozs7OworMjVBMjtXSElURSBTUVVBUkUgV0lUSCBST1VOREVEIENPUk5FUlM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUEzO1dISVRFIFNRVUFSRSBDT05UQUlOSU5HIEJMQUNLIFNNQUxMIFNRVUFSRTtTbzswO09OOzs7OztOOzs7OzsKKzI1QTQ7U1FVQVJFIFdJVEggSE9SSVpPTlRBTCBGSUxMO1NvOzA7T047Ozs7O047Ozs7OworMjVBNTtTUVVBUkUgV0lUSCBWRVJUSUNBTCBGSUxMO1NvOzA7T047Ozs7O047Ozs7OworMjVBNjtTUVVBUkUgV0lUSCBPUlRIT0dPTkFMIENST1NTSEFUQ0ggRklMTDtTbzswO09OOzs7OztOOzs7OzsKKzI1QTc7U1FVQVJFIFdJVEggVVBQRVIgTEVGVCBUTyBMT1dFUiBSSUdIVCBGSUxMO1NvOzA7T047Ozs7O047Ozs7OworMjVBODtTUVVBUkUgV0lUSCBVUFBFUiBSSUdIVCBUTyBMT1dFUiBMRUZUIEZJTEw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUE5O1NRVUFSRSBXSVRIIERJQUdPTkFMIENST1NTSEFUQ0ggRklMTDtTbzswO09OOzs7OztOOzs7OzsKKzI1QUE7QkxBQ0sgU01BTEwgU1FVQVJFO1NvOzA7T047Ozs7O047Ozs7OworMjVBQjtXSElURSBTTUFMTCBTUVVBUkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUFDO0JMQUNLIFJFQ1RBTkdMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1QUQ7V0hJVEUgUkVDVEFOR0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVBRTtCTEFDSyBWRVJUSUNBTCBSRUNUQU5HTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUFGO1dISVRFIFZFUlRJQ0FMIFJFQ1RBTkdMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1QjA7QkxBQ0sgUEFSQUxMRUxPR1JBTTtTbzswO09OOzs7OztOOzs7OzsKKzI1QjE7V0hJVEUgUEFSQUxMRUxPR1JBTTtTbzswO09OOzs7OztOOzs7OzsKKzI1QjI7QkxBQ0sgVVAtUE9JTlRJTkcgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtCTEFDSyBVUCBQT0lOVElORyBUUklBTkdMRTs7OzsKKzI1QjM7V0hJVEUgVVAtUE9JTlRJTkcgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtXSElURSBVUCBQT0lOVElORyBUUklBTkdMRTs7OzsKKzI1QjQ7QkxBQ0sgVVAtUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtCTEFDSyBVUCBQT0lOVElORyBTTUFMTCBUUklBTkdMRTs7OzsKKzI1QjU7V0hJVEUgVVAtUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtXSElURSBVUCBQT0lOVElORyBTTUFMTCBUUklBTkdMRTs7OzsKKzI1QjY7QkxBQ0sgUklHSFQtUE9JTlRJTkcgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtCTEFDSyBSSUdIVCBQT0lOVElORyBUUklBTkdMRTs7OzsKKzI1Qjc7V0hJVEUgUklHSFQtUE9JTlRJTkcgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtXSElURSBSSUdIVCBQT0lOVElORyBUUklBTkdMRTs7OzsKKzI1Qjg7QkxBQ0sgUklHSFQtUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtCTEFDSyBSSUdIVCBQT0lOVElORyBTTUFMTCBUUklBTkdMRTs7OzsKKzI1Qjk7V0hJVEUgUklHSFQtUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtXSElURSBSSUdIVCBQT0lOVElORyBTTUFMTCBUUklBTkdMRTs7OzsKKzI1QkE7QkxBQ0sgUklHSFQtUE9JTlRJTkcgUE9JTlRFUjtTbzswO09OOzs7OztOO0JMQUNLIFJJR0hUIFBPSU5USU5HIFBPSU5URVI7Ozs7CisyNUJCO1dISVRFIFJJR0hULVBPSU5USU5HIFBPSU5URVI7U287MDtPTjs7Ozs7TjtXSElURSBSSUdIVCBQT0lOVElORyBQT0lOVEVSOzs7OworMjVCQztCTEFDSyBET1dOLVBPSU5USU5HIFRSSUFOR0xFO1NvOzA7T047Ozs7O047QkxBQ0sgRE9XTiBQT0lOVElORyBUUklBTkdMRTs7OzsKKzI1QkQ7V0hJVEUgRE9XTi1QT0lOVElORyBUUklBTkdMRTtTbzswO09OOzs7OztOO1dISVRFIERPV04gUE9JTlRJTkcgVFJJQU5HTEU7Ozs7CisyNUJFO0JMQUNLIERPV04tUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtCTEFDSyBET1dOIFBPSU5USU5HIFNNQUxMIFRSSUFOR0xFOzs7OworMjVCRjtXSElURSBET1dOLVBPSU5USU5HIFNNQUxMIFRSSUFOR0xFO1NvOzA7T047Ozs7O047V0hJVEUgRE9XTiBQT0lOVElORyBTTUFMTCBUUklBTkdMRTs7OzsKKzI1QzA7QkxBQ0sgTEVGVC1QT0lOVElORyBUUklBTkdMRTtTbzswO09OOzs7OztOO0JMQUNLIExFRlQgUE9JTlRJTkcgVFJJQU5HTEU7Ozs7CisyNUMxO1dISVRFIExFRlQtUE9JTlRJTkcgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtXSElURSBMRUZUIFBPSU5USU5HIFRSSUFOR0xFOzs7OworMjVDMjtCTEFDSyBMRUZULVBPSU5USU5HIFNNQUxMIFRSSUFOR0xFO1NvOzA7T047Ozs7O047QkxBQ0sgTEVGVCBQT0lOVElORyBTTUFMTCBUUklBTkdMRTs7OzsKKzI1QzM7V0hJVEUgTEVGVC1QT0lOVElORyBTTUFMTCBUUklBTkdMRTtTbzswO09OOzs7OztOO1dISVRFIExFRlQgUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7Ozs7CisyNUM0O0JMQUNLIExFRlQtUE9JTlRJTkcgUE9JTlRFUjtTbzswO09OOzs7OztOO0JMQUNLIExFRlQgUE9JTlRJTkcgUE9JTlRFUjs7OzsKKzI1QzU7V0hJVEUgTEVGVC1QT0lOVElORyBQT0lOVEVSO1NvOzA7T047Ozs7O047V0hJVEUgTEVGVCBQT0lOVElORyBQT0lOVEVSOzs7OworMjVDNjtCTEFDSyBESUFNT05EO1NvOzA7T047Ozs7O047Ozs7OworMjVDNztXSElURSBESUFNT05EO1NvOzA7T047Ozs7O047Ozs7OworMjVDODtXSElURSBESUFNT05EIENPTlRBSU5JTkcgQkxBQ0sgU01BTEwgRElBTU9ORDtTbzswO09OOzs7OztOOzs7OzsKKzI1Qzk7RklTSEVZRTtTbzswO09OOzs7OztOOzs7OzsKKzI1Q0E7TE9aRU5HRTtTbzswO09OOzs7OztOOzs7OzsKKzI1Q0I7V0hJVEUgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVDQztET1RURUQgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVDRDtDSVJDTEUgV0lUSCBWRVJUSUNBTCBGSUxMO1NvOzA7T047Ozs7O047Ozs7OworMjVDRTtCVUxMU0VZRTtTbzswO09OOzs7OztOOzs7OzsKKzI1Q0Y7QkxBQ0sgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVEMDtDSVJDTEUgV0lUSCBMRUZUIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUQxO0NJUkNMRSBXSVRIIFJJR0hUIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUQyO0NJUkNMRSBXSVRIIExPV0VSIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUQzO0NJUkNMRSBXSVRIIFVQUEVSIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUQ0O0NJUkNMRSBXSVRIIFVQUEVSIFJJR0hUIFFVQURSQU5UIEJMQUNLO1NvOzA7T047Ozs7O047Ozs7OworMjVENTtDSVJDTEUgV0lUSCBBTEwgQlVUIFVQUEVSIExFRlQgUVVBRFJBTlQgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUQ2O0xFRlQgSEFMRiBCTEFDSyBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUQ3O1JJR0hUIEhBTEYgQkxBQ0sgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVEODtJTlZFUlNFIEJVTExFVDtTbzswO09OOzs7OztOOzs7OzsKKzI1RDk7SU5WRVJTRSBXSElURSBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNURBO1VQUEVSIEhBTEYgSU5WRVJTRSBXSElURSBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNURCO0xPV0VSIEhBTEYgSU5WRVJTRSBXSElURSBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNURDO1VQUEVSIExFRlQgUVVBRFJBTlQgQ0lSQ1VMQVIgQVJDO1NvOzA7T047Ozs7O047Ozs7OworMjVERDtVUFBFUiBSSUdIVCBRVUFEUkFOVCBDSVJDVUxBUiBBUkM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNURFO0xPV0VSIFJJR0hUIFFVQURSQU5UIENJUkNVTEFSIEFSQztTbzswO09OOzs7OztOOzs7OzsKKzI1REY7TE9XRVIgTEVGVCBRVUFEUkFOVCBDSVJDVUxBUiBBUkM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUUwO1VQUEVSIEhBTEYgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVFMTtMT1dFUiBIQUxGIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1RTI7QkxBQ0sgTE9XRVIgUklHSFQgVFJJQU5HTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUUzO0JMQUNLIExPV0VSIExFRlQgVFJJQU5HTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUU0O0JMQUNLIFVQUEVSIExFRlQgVFJJQU5HTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUU1O0JMQUNLIFVQUEVSIFJJR0hUIFRSSUFOR0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVFNjtXSElURSBCVUxMRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUU3O1NRVUFSRSBXSVRIIExFRlQgSEFMRiBCTEFDSztTbzswO09OOzs7OztOOzs7OzsKKzI1RTg7U1FVQVJFIFdJVEggUklHSFQgSEFMRiBCTEFDSztTbzswO09OOzs7OztOOzs7OzsKKzI1RTk7U1FVQVJFIFdJVEggVVBQRVIgTEVGVCBESUFHT05BTCBIQUxGIEJMQUNLO1NvOzA7T047Ozs7O047Ozs7OworMjVFQTtTUVVBUkUgV0lUSCBMT1dFUiBSSUdIVCBESUFHT05BTCBIQUxGIEJMQUNLO1NvOzA7T047Ozs7O047Ozs7OworMjVFQjtXSElURSBTUVVBUkUgV0lUSCBWRVJUSUNBTCBCSVNFQ1RJTkcgTElORTtTbzswO09OOzs7OztOOzs7OzsKKzI1RUM7V0hJVEUgVVAtUE9JTlRJTkcgVFJJQU5HTEUgV0lUSCBET1Q7U287MDtPTjs7Ozs7TjtXSElURSBVUCBQT0lOVElORyBUUklBTkdMRSBXSVRIIERPVDs7OzsKKzI1RUQ7VVAtUE9JTlRJTkcgVFJJQU5HTEUgV0lUSCBMRUZUIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7TjtVUCBQT0lOVElORyBUUklBTkdMRSBXSVRIIExFRlQgSEFMRiBCTEFDSzs7OzsKKzI1RUU7VVAtUE9JTlRJTkcgVFJJQU5HTEUgV0lUSCBSSUdIVCBIQUxGIEJMQUNLO1NvOzA7T047Ozs7O047VVAgUE9JTlRJTkcgVFJJQU5HTEUgV0lUSCBSSUdIVCBIQUxGIEJMQUNLOzs7OworMjVFRjtMQVJHRSBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjAwO0JMQUNLIFNVTiBXSVRIIFJBWVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjAxO0NMT1VEO1NvOzA7T047Ozs7O047Ozs7OworMjYwMjtVTUJSRUxMQTtTbzswO09OOzs7OztOOzs7OzsKKzI2MDM7U05PV01BTjtTbzswO09OOzs7OztOOzs7OzsKKzI2MDQ7Q09NRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjA1O0JMQUNLIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjA2O1dISVRFIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjA3O0xJR0hUTklORztTbzswO09OOzs7OztOOzs7OzsKKzI2MDg7VEhVTkRFUlNUT1JNO1NvOzA7T047Ozs7O047Ozs7OworMjYwOTtTVU47U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjBBO0FTQ0VORElORyBOT0RFO1NvOzA7T047Ozs7O047Ozs7OworMjYwQjtERVNDRU5ESU5HIE5PREU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjBDO0NPTkpVTkNUSU9OO1NvOzA7T047Ozs7O047Ozs7OworMjYwRDtPUFBPU0lUSU9OO1NvOzA7T047Ozs7O047Ozs7OworMjYwRTtCTEFDSyBURUxFUEhPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjBGO1dISVRFIFRFTEVQSE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzI2MTA7QkFMTE9UIEJPWDtTbzswO09OOzs7OztOOzs7OzsKKzI2MTE7QkFMTE9UIEJPWCBXSVRIIENIRUNLO1NvOzA7T047Ozs7O047Ozs7OworMjYxMjtCQUxMT1QgQk9YIFdJVEggWDtTbzswO09OOzs7OztOOzs7OzsKKzI2MTM7U0FMVElSRTtTbzswO09OOzs7OztOOzs7OzsKKzI2MUE7QkxBQ0sgTEVGVCBQT0lOVElORyBJTkRFWDtTbzswO09OOzs7OztOOzs7OzsKKzI2MUI7QkxBQ0sgUklHSFQgUE9JTlRJTkcgSU5ERVg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjFDO1dISVRFIExFRlQgUE9JTlRJTkcgSU5ERVg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjFEO1dISVRFIFVQIFBPSU5USU5HIElOREVYO1NvOzA7T047Ozs7O047Ozs7OworMjYxRTtXSElURSBSSUdIVCBQT0lOVElORyBJTkRFWDtTbzswO09OOzs7OztOOzs7OzsKKzI2MUY7V0hJVEUgRE9XTiBQT0lOVElORyBJTkRFWDtTbzswO09OOzs7OztOOzs7OzsKKzI2MjA7U0tVTEwgQU5EIENST1NTQk9ORVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjIxO0NBVVRJT04gU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzI2MjI7UkFESU9BQ1RJVkUgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzI2MjM7QklPSEFaQVJEIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjI0O0NBRFVDRVVTO1NvOzA7T047Ozs7O047Ozs7OworMjYyNTtBTktIO1NvOzA7T047Ozs7O047Ozs7OworMjYyNjtPUlRIT0RPWCBDUk9TUztTbzswO09OOzs7OztOOzs7OzsKKzI2Mjc7Q0hJIFJITztTbzswO09OOzs7OztOOzs7OzsKKzI2Mjg7Q1JPU1MgT0YgTE9SUkFJTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjI5O0NST1NTIE9GIEpFUlVTQUxFTTtTbzswO09OOzs7OztOOzs7OzsKKzI2MkE7U1RBUiBBTkQgQ1JFU0NFTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjJCO0ZBUlNJIFNZTUJPTDtTbzswO09OOzs7OztOO1NZTUJPTCBPRiBJUkFOOzs7OworMjYyQztBREkgU0hBS1RJO1NvOzA7T047Ozs7O047Ozs7OworMjYyRDtIQU1NRVIgQU5EIFNJQ0tMRTtTbzswO09OOzs7OztOOzs7OzsKKzI2MkU7UEVBQ0UgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjYyRjtZSU4gWUFORztTbzswO09OOzs7OztOOzs7OzsKKzI2MzA7VFJJR1JBTSBGT1IgSEVBVkVOO1NvOzA7T047Ozs7O047Ozs7OworMjYzMTtUUklHUkFNIEZPUiBMQUtFO1NvOzA7T047Ozs7O047Ozs7OworMjYzMjtUUklHUkFNIEZPUiBGSVJFO1NvOzA7T047Ozs7O047Ozs7OworMjYzMztUUklHUkFNIEZPUiBUSFVOREVSO1NvOzA7T047Ozs7O047Ozs7OworMjYzNDtUUklHUkFNIEZPUiBXSU5EO1NvOzA7T047Ozs7O047Ozs7OworMjYzNTtUUklHUkFNIEZPUiBXQVRFUjtTbzswO09OOzs7OztOOzs7OzsKKzI2MzY7VFJJR1JBTSBGT1IgTU9VTlRBSU47U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjM3O1RSSUdSQU0gRk9SIEVBUlRIO1NvOzA7T047Ozs7O047Ozs7OworMjYzODtXSEVFTCBPRiBESEFSTUE7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjM5O1dISVRFIEZST1dOSU5HIEZBQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjNBO1dISVRFIFNNSUxJTkcgRkFDRTtTbzswO09OOzs7OztOOzs7OzsKKzI2M0I7QkxBQ0sgU01JTElORyBGQUNFO1NvOzA7T047Ozs7O047Ozs7OworMjYzQztXSElURSBTVU4gV0lUSCBSQVlTO1NvOzA7T047Ozs7O047Ozs7OworMjYzRDtGSVJTVCBRVUFSVEVSIE1PT047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjNFO0xBU1QgUVVBUlRFUiBNT09OO1NvOzA7T047Ozs7O047Ozs7OworMjYzRjtNRVJDVVJZO1NvOzA7T047Ozs7O047Ozs7OworMjY0MDtGRU1BTEUgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzI2NDE7RUFSVEg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjQyO01BTEUgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzI2NDM7SlVQSVRFUjtTbzswO09OOzs7OztOOzs7OzsKKzI2NDQ7U0FUVVJOO1NvOzA7T047Ozs7O047Ozs7OworMjY0NTtVUkFOVVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjQ2O05FUFRVTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjQ3O1BMVVRPO1NvOzA7T047Ozs7O047Ozs7OworMjY0ODtBUklFUztTbzswO09OOzs7OztOOzs7OzsKKzI2NDk7VEFVUlVTO1NvOzA7T047Ozs7O047Ozs7OworMjY0QTtHRU1JTkk7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjRCO0NBTkNFUjtTbzswO09OOzs7OztOOzs7OzsKKzI2NEM7TEVPO1NvOzA7T047Ozs7O047Ozs7OworMjY0RDtWSVJHTztTbzswO09OOzs7OztOOzs7OzsKKzI2NEU7TElCUkE7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjRGO1NDT1JQSVVTO1NvOzA7T047Ozs7O047Ozs7OworMjY1MDtTQUdJVFRBUklVUztTbzswO09OOzs7OztOOzs7OzsKKzI2NTE7Q0FQUklDT1JOO1NvOzA7T047Ozs7O047Ozs7OworMjY1MjtBUVVBUklVUztTbzswO09OOzs7OztOOzs7OzsKKzI2NTM7UElTQ0VTO1NvOzA7T047Ozs7O047Ozs7OworMjY1NDtXSElURSBDSEVTUyBLSU5HO1NvOzA7T047Ozs7O047Ozs7OworMjY1NTtXSElURSBDSEVTUyBRVUVFTjtTbzswO09OOzs7OztOOzs7OzsKKzI2NTY7V0hJVEUgQ0hFU1MgUk9PSztTbzswO09OOzs7OztOOzs7OzsKKzI2NTc7V0hJVEUgQ0hFU1MgQklTSE9QO1NvOzA7T047Ozs7O047Ozs7OworMjY1ODtXSElURSBDSEVTUyBLTklHSFQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjU5O1dISVRFIENIRVNTIFBBV047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjVBO0JMQUNLIENIRVNTIEtJTkc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjVCO0JMQUNLIENIRVNTIFFVRUVOO1NvOzA7T047Ozs7O047Ozs7OworMjY1QztCTEFDSyBDSEVTUyBST09LO1NvOzA7T047Ozs7O047Ozs7OworMjY1RDtCTEFDSyBDSEVTUyBCSVNIT1A7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjVFO0JMQUNLIENIRVNTIEtOSUdIVDtTbzswO09OOzs7OztOOzs7OzsKKzI2NUY7QkxBQ0sgQ0hFU1MgUEFXTjtTbzswO09OOzs7OztOOzs7OzsKKzI2NjA7QkxBQ0sgU1BBREUgU1VJVDtTbzswO09OOzs7OztOOzs7OzsKKzI2NjE7V0hJVEUgSEVBUlQgU1VJVDtTbzswO09OOzs7OztOOzs7OzsKKzI2NjI7V0hJVEUgRElBTU9ORCBTVUlUO1NvOzA7T047Ozs7O047Ozs7OworMjY2MztCTEFDSyBDTFVCIFNVSVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjY0O1dISVRFIFNQQURFIFNVSVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjY1O0JMQUNLIEhFQVJUIFNVSVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjY2O0JMQUNLIERJQU1PTkQgU1VJVDtTbzswO09OOzs7OztOOzs7OzsKKzI2Njc7V0hJVEUgQ0xVQiBTVUlUO1NvOzA7T047Ozs7O047Ozs7OworMjY2ODtIT1QgU1BSSU5HUztTbzswO09OOzs7OztOOzs7OzsKKzI2Njk7UVVBUlRFUiBOT1RFO1NvOzA7T047Ozs7O047Ozs7OworMjY2QTtFSUdIVEggTk9URTtTbzswO09OOzs7OztOOzs7OzsKKzI2NkI7QkVBTUVEIEVJR0hUSCBOT1RFUztTbzswO09OOzs7OztOO0JBUlJFRCBFSUdIVEggTk9URVM7Ozs7CisyNjZDO0JFQU1FRCBTSVhURUVOVEggTk9URVM7U287MDtPTjs7Ozs7TjtCQVJSRUQgU0lYVEVFTlRIIE5PVEVTOzs7OworMjY2RDtNVVNJQyBGTEFUIFNJR047U287MDtPTjs7Ozs7TjtGTEFUOzs7OworMjY2RTtNVVNJQyBOQVRVUkFMIFNJR047U287MDtPTjs7Ozs7TjtOQVRVUkFMOzs7OworMjY2RjtNVVNJQyBTSEFSUCBTSUdOO1NvOzA7T047Ozs7O047U0hBUlA7Ozs7CisyNzAxO1VQUEVSIEJMQURFIFNDSVNTT1JTO1NvOzA7T047Ozs7O047Ozs7OworMjcwMjtCTEFDSyBTQ0lTU09SUztTbzswO09OOzs7OztOOzs7OzsKKzI3MDM7TE9XRVIgQkxBREUgU0NJU1NPUlM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzA0O1dISVRFIFNDSVNTT1JTO1NvOzA7T047Ozs7O047Ozs7OworMjcwNjtURUxFUEhPTkUgTE9DQVRJT04gU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzI3MDc7VEFQRSBEUklWRTtTbzswO09OOzs7OztOOzs7OzsKKzI3MDg7QUlSUExBTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzA5O0VOVkVMT1BFO1NvOzA7T047Ozs7O047Ozs7OworMjcwQztWSUNUT1JZIEhBTkQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzBEO1dSSVRJTkcgSEFORDtTbzswO09OOzs7OztOOzs7OzsKKzI3MEU7TE9XRVIgUklHSFQgUEVOQ0lMO1NvOzA7T047Ozs7O047Ozs7OworMjcwRjtQRU5DSUw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzEwO1VQUEVSIFJJR0hUIFBFTkNJTDtTbzswO09OOzs7OztOOzs7OzsKKzI3MTE7V0hJVEUgTklCO1NvOzA7T047Ozs7O047Ozs7OworMjcxMjtCTEFDSyBOSUI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzEzO0NIRUNLIE1BUks7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzE0O0hFQVZZIENIRUNLIE1BUks7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzE1O01VTFRJUExJQ0FUSU9OIFg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzE2O0hFQVZZIE1VTFRJUExJQ0FUSU9OIFg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzE3O0JBTExPVCBYO1NvOzA7T047Ozs7O047Ozs7OworMjcxODtIRUFWWSBCQUxMT1QgWDtTbzswO09OOzs7OztOOzs7OzsKKzI3MTk7T1VUTElORUQgR1JFRUsgQ1JPU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzFBO0hFQVZZIEdSRUVLIENST1NTO1NvOzA7T047Ozs7O047Ozs7OworMjcxQjtPUEVOIENFTlRSRSBDUk9TUztTbzswO09OOzs7OztOO09QRU4gQ0VOVEVSIENST1NTOzs7OworMjcxQztIRUFWWSBPUEVOIENFTlRSRSBDUk9TUztTbzswO09OOzs7OztOO0hFQVZZIE9QRU4gQ0VOVEVSIENST1NTOzs7OworMjcxRDtMQVRJTiBDUk9TUztTbzswO09OOzs7OztOOzs7OzsKKzI3MUU7U0hBRE9XRUQgV0hJVEUgTEFUSU4gQ1JPU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzFGO09VVExJTkVEIExBVElOIENST1NTO1NvOzA7T047Ozs7O047Ozs7OworMjcyMDtNQUxURVNFIENST1NTO1NvOzA7T047Ozs7O047Ozs7OworMjcyMTtTVEFSIE9GIERBVklEO1NvOzA7T047Ozs7O047Ozs7OworMjcyMjtGT1VSIFRFQVJEUk9QLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3MjM7Rk9VUiBCQUxMT09OLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3MjQ7SEVBVlkgRk9VUiBCQUxMT09OLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3MjU7Rk9VUiBDTFVCLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3MjY7QkxBQ0sgRk9VUiBQT0lOVEVEIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzI3O1dISVRFIEZPVVIgUE9JTlRFRCBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjcyOTtTVFJFU1MgT1VUTElORUQgV0hJVEUgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MkE7Q0lSQ0xFRCBXSElURSBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjcyQjtPUEVOIENFTlRSRSBCTEFDSyBTVEFSO1NvOzA7T047Ozs7O047T1BFTiBDRU5URVIgQkxBQ0sgU1RBUjs7OzsKKzI3MkM7QkxBQ0sgQ0VOVFJFIFdISVRFIFNUQVI7U287MDtPTjs7Ozs7TjtCTEFDSyBDRU5URVIgV0hJVEUgU1RBUjs7OzsKKzI3MkQ7T1VUTElORUQgQkxBQ0sgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MkU7SEVBVlkgT1VUTElORUQgQkxBQ0sgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MkY7UElOV0hFRUwgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MzA7U0hBRE9XRUQgV0hJVEUgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MzE7SEVBVlkgQVNURVJJU0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzMyO09QRU4gQ0VOVFJFIEFTVEVSSVNLO1NvOzA7T047Ozs7O047T1BFTiBDRU5URVIgQVNURVJJU0s7Ozs7CisyNzMzO0VJR0hUIFNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3MzQ7RUlHSFQgUE9JTlRFRCBCTEFDSyBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjczNTtFSUdIVCBQT0lOVEVEIFBJTldIRUVMIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzM2O1NJWCBQT0lOVEVEIEJMQUNLIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzM3O0VJR0hUIFBPSU5URUQgUkVDVElMSU5FQVIgQkxBQ0sgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3Mzg7SEVBVlkgRUlHSFQgUE9JTlRFRCBSRUNUSUxJTkVBUiBCTEFDSyBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjczOTtUV0VMVkUgUE9JTlRFRCBCTEFDSyBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjczQTtTSVhURUVOIFBPSU5URUQgQVNURVJJU0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzNCO1RFQVJEUk9QLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3M0M7T1BFTiBDRU5UUkUgVEVBUkRST1AtU1BPS0VEIEFTVEVSSVNLO1NvOzA7T047Ozs7O047T1BFTiBDRU5URVIgVEVBUkRST1AtU1BPS0VEIEFTVEVSSVNLOzs7OworMjczRDtIRUFWWSBURUFSRFJPUC1TUE9LRUQgQVNURVJJU0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzNFO1NJWCBQRVRBTExFRCBCTEFDSyBBTkQgV0hJVEUgRkxPUkVUVEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzNGO0JMQUNLIEZMT1JFVFRFO1NvOzA7T047Ozs7O047Ozs7OworMjc0MDtXSElURSBGTE9SRVRURTtTbzswO09OOzs7OztOOzs7OzsKKzI3NDE7RUlHSFQgUEVUQUxMRUQgT1VUTElORUQgQkxBQ0sgRkxPUkVUVEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzQyO0NJUkNMRUQgT1BFTiBDRU5UUkUgRUlHSFQgUE9JTlRFRCBTVEFSO1NvOzA7T047Ozs7O047Q0lSQ0xFRCBPUEVOIENFTlRFUiBFSUdIVCBQT0lOVEVEIFNUQVI7Ozs7CisyNzQzO0hFQVZZIFRFQVJEUk9QLVNQT0tFRCBQSU5XSEVFTCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3NDQ7U05PV0ZMQUtFO1NvOzA7T047Ozs7O047Ozs7OworMjc0NTtUSUdIVCBUUklGT0xJQVRFIFNOT1dGTEFLRTtTbzswO09OOzs7OztOOzs7OzsKKzI3NDY7SEVBVlkgQ0hFVlJPTiBTTk9XRkxBS0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzQ3O1NQQVJLTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzQ4O0hFQVZZIFNQQVJLTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzQ5O0JBTExPT04tU1BPS0VEIEFTVEVSSVNLO1NvOzA7T047Ozs7O047Ozs7OworMjc0QTtFSUdIVCBURUFSRFJPUC1TUE9LRUQgUFJPUEVMTEVSIEFTVEVSSVNLO1NvOzA7T047Ozs7O047Ozs7OworMjc0QjtIRUFWWSBFSUdIVCBURUFSRFJPUC1TUE9LRUQgUFJPUEVMTEVSIEFTVEVSSVNLO1NvOzA7T047Ozs7O047Ozs7OworMjc0RDtTSEFET1dFRCBXSElURSBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzRGO0xPV0VSIFJJR0hUIERST1AtU0hBRE9XRUQgV0hJVEUgU1FVQVJFO1NvOzA7T047Ozs7O047Ozs7OworMjc1MDtVUFBFUiBSSUdIVCBEUk9QLVNIQURPV0VEIFdISVRFIFNRVUFSRTtTbzswO09OOzs7OztOOzs7OzsKKzI3NTE7TE9XRVIgUklHSFQgU0hBRE9XRUQgV0hJVEUgU1FVQVJFO1NvOzA7T047Ozs7O047Ozs7OworMjc1MjtVUFBFUiBSSUdIVCBTSEFET1dFRCBXSElURSBTUVVBUkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzU2O0JMQUNLIERJQU1PTkQgTUlOVVMgV0hJVEUgWDtTbzswO09OOzs7OztOOzs7OzsKKzI3NTg7TElHSFQgVkVSVElDQUwgQkFSO1NvOzA7T047Ozs7O047Ozs7OworMjc1OTtNRURJVU0gVkVSVElDQUwgQkFSO1NvOzA7T047Ozs7O047Ozs7OworMjc1QTtIRUFWWSBWRVJUSUNBTCBCQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzVCO0hFQVZZIFNJTkdMRSBUVVJORUQgQ09NTUEgUVVPVEFUSU9OIE1BUksgT1JOQU1FTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzVDO0hFQVZZIFNJTkdMRSBDT01NQSBRVU9UQVRJT04gTUFSSyBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NUQ7SEVBVlkgRE9VQkxFIFRVUk5FRCBDT01NQSBRVU9UQVRJT04gTUFSSyBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NUU7SEVBVlkgRE9VQkxFIENPTU1BIFFVT1RBVElPTiBNQVJLIE9STkFNRU5UO1NvOzA7T047Ozs7O047Ozs7OworMjc2MTtDVVJWRUQgU1RFTSBQQVJBR1JBUEggU0lHTiBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NjI7SEVBVlkgRVhDTEFNQVRJT04gTUFSSyBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NjM7SEVBVlkgSEVBUlQgRVhDTEFNQVRJT04gTUFSSyBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NjQ7SEVBVlkgQkxBQ0sgSEVBUlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzY1O1JPVEFURUQgSEVBVlkgQkxBQ0sgSEVBUlQgQlVMTEVUO1NvOzA7T047Ozs7O047Ozs7OworMjc2NjtGTE9SQUwgSEVBUlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzY3O1JPVEFURUQgRkxPUkFMIEhFQVJUIEJVTExFVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NzY7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIE9ORTtObzswO09OOzs7MTsxO047SU5WRVJTRSBDSVJDTEVEIERJR0lUIE9ORTs7OzsKKzI3Nzc7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIFRXTztObzswO09OOzs7MjsyO047SU5WRVJTRSBDSVJDTEVEIERJR0lUIFRXTzs7OzsKKzI3Nzg7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIFRIUkVFO05vOzA7T047OzszOzM7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgVEhSRUU7Ozs7CisyNzc5O0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBESUdJVCBGT1VSO05vOzA7T047Ozs0OzQ7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgRk9VUjs7OzsKKzI3N0E7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIEZJVkU7Tm87MDtPTjs7OzU7NTtOO0lOVkVSU0UgQ0lSQ0xFRCBESUdJVCBGSVZFOzs7OworMjc3QjtESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgRElHSVQgU0lYO05vOzA7T047Ozs2OzY7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgU0lYOzs7OworMjc3QztESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgRElHSVQgU0VWRU47Tm87MDtPTjs7Ozc7NztOO0lOVkVSU0UgQ0lSQ0xFRCBESUdJVCBTRVZFTjs7OzsKKzI3N0Q7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIEVJR0hUO05vOzA7T047Ozs4Ozg7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgRUlHSFQ7Ozs7CisyNzdFO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBESUdJVCBOSU5FO05vOzA7T047Ozs5Ozk7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgTklORTs7OzsKKzI3N0Y7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIE5VTUJFUiBURU47Tm87MDtPTjs7OzsxMDtOO0lOVkVSU0UgQ0lSQ0xFRCBOVU1CRVIgVEVOOzs7OworMjc4MDtESU5HQkFUIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBPTkU7Tm87MDtPTjs7OzE7MTtOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBPTkU7Ozs7CisyNzgxO0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFRXTztObzswO09OOzs7MjsyO047Q0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFRXTzs7OzsKKzI3ODI7RElOR0JBVCBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgVEhSRUU7Tm87MDtPTjs7OzM7MztOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBUSFJFRTs7OzsKKzI3ODM7RElOR0JBVCBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgRk9VUjtObzswO09OOzs7NDs0O047Q0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZPVVI7Ozs7CisyNzg0O0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZJVkU7Tm87MDtPTjs7OzU7NTtOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBGSVZFOzs7OworMjc4NTtESU5HQkFUIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBTSVg7Tm87MDtPTjs7OzY7NjtOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBTSVg7Ozs7CisyNzg2O0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFNFVkVOO05vOzA7T047Ozs3Ozc7TjtDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgU0VWRU47Ozs7CisyNzg3O0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEVJR0hUO05vOzA7T047Ozs4Ozg7TjtDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgRUlHSFQ7Ozs7CisyNzg4O0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIE5JTkU7Tm87MDtPTjs7Ozk7OTtOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBOSU5FOzs7OworMjc4OTtESU5HQkFUIENJUkNMRUQgU0FOUy1TRVJJRiBOVU1CRVIgVEVOO05vOzA7T047Ozs7MTA7TjtDSVJDTEVEIFNBTlMtU0VSSUYgTlVNQkVSIFRFTjs7OzsKKzI3OEE7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgT05FO05vOzA7T047OzsxOzE7TjtJTlZFUlNFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBPTkU7Ozs7CisyNzhCO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFRXTztObzswO09OOzs7MjsyO047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgVFdPOzs7OworMjc4QztESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBUSFJFRTtObzswO09OOzs7MzszO047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgVEhSRUU7Ozs7CisyNzhEO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZPVVI7Tm87MDtPTjs7OzQ7NDtOO0lOVkVSU0UgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZPVVI7Ozs7CisyNzhFO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZJVkU7Tm87MDtPTjs7OzU7NTtOO0lOVkVSU0UgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZJVkU7Ozs7CisyNzhGO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFNJWDtObzswO09OOzs7Njs2O047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgU0lYOzs7OworMjc5MDtESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBTRVZFTjtObzswO09OOzs7Nzs3O047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgU0VWRU47Ozs7CisyNzkxO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEVJR0hUO05vOzA7T047Ozs4Ozg7TjtJTlZFUlNFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBFSUdIVDs7OzsKKzI3OTI7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgTklORTtObzswO09OOzs7OTs5O047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgTklORTs7OzsKKzI3OTM7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIFNBTlMtU0VSSUYgTlVNQkVSIFRFTjtObzswO09OOzs7OzEwO047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgTlVNQkVSIFRFTjs7OzsKKzI3OTQ7SEVBVlkgV0lERS1IRUFERUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFdJREUtSEVBREVEIFJJR0hUIEFSUk9XOzs7OworMjc5ODtIRUFWWSBTT1VUSCBFQVNUIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgTE9XRVIgUklHSFQgQVJST1c7Ozs7CisyNzk5O0hFQVZZIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBSSUdIVCBBUlJPVzs7OzsKKzI3OUE7SEVBVlkgTk9SVEggRUFTVCBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFVQUEVSIFJJR0hUIEFSUk9XOzs7OworMjc5QjtEUkFGVElORyBQT0lOVCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047RFJBRlRJTkcgUE9JTlQgUklHSFQgQVJST1c7Ozs7CisyNzlDO0hFQVZZIFJPVU5ELVRJUFBFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgUk9VTkQtVElQUEVEIFJJR0hUIEFSUk9XOzs7OworMjc5RDtUUklBTkdMRS1IRUFERUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO1RSSUFOR0xFLUhFQURFRCBSSUdIVCBBUlJPVzs7OzsKKzI3OUU7SEVBVlkgVFJJQU5HTEUtSEVBREVEIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBUUklBTkdMRS1IRUFERUQgUklHSFQgQVJST1c7Ozs7CisyNzlGO0RBU0hFRCBUUklBTkdMRS1IRUFERUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0RBU0hFRCBUUklBTkdMRS1IRUFERUQgUklHSFQgQVJST1c7Ozs7CisyN0EwO0hFQVZZIERBU0hFRCBUUklBTkdMRS1IRUFERUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIERBU0hFRCBUUklBTkdMRS1IRUFERUQgUklHSFQgQVJST1c7Ozs7CisyN0ExO0JMQUNLIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtCTEFDSyBSSUdIVCBBUlJPVzs7OzsKKzI3QTI7VEhSRUUtRCBUT1AtTElHSFRFRCBSSUdIVFdBUkRTIEFSUk9XSEVBRDtTbzswO09OOzs7OztOO1RIUkVFLUQgVE9QLUxJR0hURUQgUklHSFQgQVJST1dIRUFEOzs7OworMjdBMztUSFJFRS1EIEJPVFRPTS1MSUdIVEVEIFJJR0hUV0FSRFMgQVJST1dIRUFEO1NvOzA7T047Ozs7O047VEhSRUUtRCBCT1RUT00tTElHSFRFRCBSSUdIVCBBUlJPV0hFQUQ7Ozs7CisyN0E0O0JMQUNLIFJJR0hUV0FSRFMgQVJST1dIRUFEO1NvOzA7T047Ozs7O047QkxBQ0sgUklHSFQgQVJST1dIRUFEOzs7OworMjdBNTtIRUFWWSBCTEFDSyBDVVJWRUQgRE9XTldBUkRTIEFORCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgQkxBQ0sgQ1VSVkVEIERPV04gQU5EIFJJR0hUIEFSUk9XOzs7OworMjdBNjtIRUFWWSBCTEFDSyBDVVJWRUQgVVBXQVJEUyBBTkQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIEJMQUNLIENVUlZFRCBVUCBBTkQgUklHSFQgQVJST1c7Ozs7CisyN0E3O1NRVUFUIEJMQUNLIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtTUVVBVCBCTEFDSyBSSUdIVCBBUlJPVzs7OzsKKzI3QTg7SEVBVlkgQ09OQ0FWRS1QT0lOVEVEIEJMQUNLIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBDT05DQVZFLVBPSU5URUQgQkxBQ0sgUklHSFQgQVJST1c7Ozs7CisyN0E5O1JJR0hULVNIQURFRCBXSElURSBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047UklHSFQtU0hBREVEIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdBQTtMRUZULVNIQURFRCBXSElURSBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047TEVGVC1TSEFERUQgV0hJVEUgUklHSFQgQVJST1c7Ozs7CisyN0FCO0JBQ0stVElMVEVEIFNIQURPV0VEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtCQUNLLVRJTFRFRCBTSEFET1dFRCBXSElURSBSSUdIVCBBUlJPVzs7OzsKKzI3QUM7RlJPTlQtVElMVEVEIFNIQURPV0VEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtGUk9OVC1USUxURUQgU0hBRE9XRUQgV0hJVEUgUklHSFQgQVJST1c7Ozs7CisyN0FEO0hFQVZZIExPV0VSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBMT1dFUiBSSUdIVC1TSEFET1dFRCBXSElURSBSSUdIVCBBUlJPVzs7OzsKKzI3QUU7SEVBVlkgVVBQRVIgUklHSFQtU0hBRE9XRUQgV0hJVEUgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFVQUEVSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdBRjtOT1RDSEVEIExPV0VSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtOT1RDSEVEIExPV0VSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdCMTtOT1RDSEVEIFVQUEVSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtOT1RDSEVEIFVQUEVSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdCMjtDSVJDTEVEIEhFQVZZIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtDSVJDTEVEIEhFQVZZIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdCMztXSElURS1GRUFUSEVSRUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO1dISVRFLUZFQVRIRVJFRCBSSUdIVCBBUlJPVzs7OzsKKzI3QjQ7QkxBQ0stRkVBVEhFUkVEIFNPVVRIIEVBU1QgQVJST1c7U287MDtPTjs7Ozs7TjtCTEFDSy1GRUFUSEVSRUQgTE9XRVIgUklHSFQgQVJST1c7Ozs7CisyN0I1O0JMQUNLLUZFQVRIRVJFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047QkxBQ0stRkVBVEhFUkVEIFJJR0hUIEFSUk9XOzs7OworMjdCNjtCTEFDSy1GRUFUSEVSRUQgTk9SVEggRUFTVCBBUlJPVztTbzswO09OOzs7OztOO0JMQUNLLUZFQVRIRVJFRCBVUFBFUiBSSUdIVCBBUlJPVzs7OzsKKzI3Qjc7SEVBVlkgQkxBQ0stRkVBVEhFUkVEIFNPVVRIIEVBU1QgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBCTEFDSy1GRUFUSEVSRUQgTE9XRVIgUklHSFQgQVJST1c7Ozs7CisyN0I4O0hFQVZZIEJMQUNLLUZFQVRIRVJFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgQkxBQ0stRkVBVEhFUkVEIFJJR0hUIEFSUk9XOzs7OworMjdCOTtIRUFWWSBCTEFDSy1GRUFUSEVSRUQgTk9SVEggRUFTVCBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIEJMQUNLLUZFQVRIRVJFRCBVUFBFUiBSSUdIVCBBUlJPVzs7OzsKKzI3QkE7VEVBUkRST1AtQkFSQkVEIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtURUFSRFJPUC1CQVJCRUQgUklHSFQgQVJST1c7Ozs7CisyN0JCO0hFQVZZIFRFQVJEUk9QLVNIQU5LRUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFRFQVJEUk9QLVNIQU5LRUQgUklHSFQgQVJST1c7Ozs7CisyN0JDO1dFREdFLVRBSUxFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047V0VER0UtVEFJTEVEIFJJR0hUIEFSUk9XOzs7OworMjdCRDtIRUFWWSBXRURHRS1UQUlMRUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFdFREdFLVRBSUxFRCBSSUdIVCBBUlJPVzs7OzsKKzI3QkU7T1BFTi1PVVRMSU5FRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047T1BFTi1PVVRMSU5FRCBSSUdIVCBBUlJPVzs7OzsKKzMwMDA7SURFT0dSQVBISUMgU1BBQ0U7WnM7MDtXUzs8d2lkZT4gMDAyMDs7OztOOzs7OzsKKzMwMDE7SURFT0dSQVBISUMgQ09NTUE7UG87MDtPTjs7Ozs7Tjs7Ozs7CiszMDAyO0lERU9HUkFQSElDIEZVTEwgU1RPUDtQbzswO09OOzs7OztOO0lERU9HUkFQSElDIFBFUklPRDs7OzsKKzMwMDM7RElUVE8gTUFSSztQbzswO09OOzs7OztOOzs7OzsKKzMwMDQ7SkFQQU5FU0UgSU5EVVNUUklBTCBTVEFOREFSRCBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMDA1O0lERU9HUkFQSElDIElURVJBVElPTiBNQVJLO0xtOzA7T047Ozs7O047Ozs7OworMzAwNjtJREVPR1JBUEhJQyBDTE9TSU5HIE1BUks7UG87MDtPTjs7Ozs7Tjs7Ozs7CiszMDA3O0lERU9HUkFQSElDIE5VTUJFUiBaRVJPO05sOzA7T047Ozs7MDtOOzs7OzsKKzMwMDg7TEVGVCBBTkdMRSBCUkFDS0VUO1BzOzA7T047Ozs7O1k7T1BFTklORyBBTkdMRSBCUkFDS0VUOzs7OworMzAwOTtSSUdIVCBBTkdMRSBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Q0xPU0lORyBBTkdMRSBCUkFDS0VUOzs7OworMzAwQTtMRUZUIERPVUJMRSBBTkdMRSBCUkFDS0VUO1BzOzA7T047Ozs7O1k7T1BFTklORyBET1VCTEUgQU5HTEUgQlJBQ0tFVDs7OzsKKzMwMEI7UklHSFQgRE9VQkxFIEFOR0xFIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTtDTE9TSU5HIERPVUJMRSBBTkdMRSBCUkFDS0VUOzs7OworMzAwQztMRUZUIENPUk5FUiBCUkFDS0VUO1BzOzA7T047Ozs7O1k7T1BFTklORyBDT1JORVIgQlJBQ0tFVDs7OzsKKzMwMEQ7UklHSFQgQ09STkVSIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTtDTE9TSU5HIENPUk5FUiBCUkFDS0VUOzs7OworMzAwRTtMRUZUIFdISVRFIENPUk5FUiBCUkFDS0VUO1BzOzA7T047Ozs7O1k7T1BFTklORyBXSElURSBDT1JORVIgQlJBQ0tFVDs7OzsKKzMwMEY7UklHSFQgV0hJVEUgQ09STkVSIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTtDTE9TSU5HIFdISVRFIENPUk5FUiBCUkFDS0VUOzs7OworMzAxMDtMRUZUIEJMQUNLIExFTlRJQ1VMQVIgQlJBQ0tFVDtQczswO09OOzs7OztZO09QRU5JTkcgQkxBQ0sgTEVOVElDVUxBUiBCUkFDS0VUOzs7OworMzAxMTtSSUdIVCBCTEFDSyBMRU5USUNVTEFSIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTtDTE9TSU5HIEJMQUNLIExFTlRJQ1VMQVIgQlJBQ0tFVDs7OzsKKzMwMTI7UE9TVEFMIE1BUks7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMDEzO0dFVEEgTUFSSztTbzswO09OOzs7OztOOzs7OzsKKzMwMTQ7TEVGVCBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUO1BzOzA7T047Ozs7O1k7T1BFTklORyBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUOzs7OworMzAxNTtSSUdIVCBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Q0xPU0lORyBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUOzs7OworMzAxNjtMRUZUIFdISVRFIExFTlRJQ1VMQVIgQlJBQ0tFVDtQczswO09OOzs7OztZO09QRU5JTkcgV0hJVEUgTEVOVElDVUxBUiBCUkFDS0VUOzs7OworMzAxNztSSUdIVCBXSElURSBMRU5USUNVTEFSIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTtDTE9TSU5HIFdISVRFIExFTlRJQ1VMQVIgQlJBQ0tFVDs7OzsKKzMwMTg7TEVGVCBXSElURSBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUO1BzOzA7T047Ozs7O1k7T1BFTklORyBXSElURSBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUOzs7OworMzAxOTtSSUdIVCBXSElURSBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Q0xPU0lORyBXSElURSBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUOzs7OworMzAxQTtMRUZUIFdISVRFIFNRVUFSRSBCUkFDS0VUO1BzOzA7T047Ozs7O1k7T1BFTklORyBXSElURSBTUVVBUkUgQlJBQ0tFVDs7OzsKKzMwMUI7UklHSFQgV0hJVEUgU1FVQVJFIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTtDTE9TSU5HIFdISVRFIFNRVUFSRSBCUkFDS0VUOzs7OworMzAxQztXQVZFIERBU0g7UGQ7MDtPTjs7Ozs7Tjs7Ozs7CiszMDFEO1JFVkVSU0VEIERPVUJMRSBQUklNRSBRVU9UQVRJT04gTUFSSztQczswO09OOzs7OztOOzs7OzsKKzMwMUU7RE9VQkxFIFBSSU1FIFFVT1RBVElPTiBNQVJLO1BlOzA7T047Ozs7O047Ozs7OworMzAxRjtMT1cgRE9VQkxFIFBSSU1FIFFVT1RBVElPTiBNQVJLO1BlOzA7T047Ozs7O047Ozs7OworMzAyMDtQT1NUQUwgTUFSSyBGQUNFO1NvOzA7T047Ozs7O047Ozs7OworMzAyMTtIQU5HWkhPVSBOVU1FUkFMIE9ORTtObDswO0w7Ozs7MTtOOzs7OzsKKzMwMjI7SEFOR1pIT1UgTlVNRVJBTCBUV087Tmw7MDtMOzs7OzI7Tjs7Ozs7CiszMDIzO0hBTkdaSE9VIE5VTUVSQUwgVEhSRUU7Tmw7MDtMOzs7OzM7Tjs7Ozs7CiszMDI0O0hBTkdaSE9VIE5VTUVSQUwgRk9VUjtObDswO0w7Ozs7NDtOOzs7OzsKKzMwMjU7SEFOR1pIT1UgTlVNRVJBTCBGSVZFO05sOzA7TDs7Ozs1O047Ozs7OworMzAyNjtIQU5HWkhPVSBOVU1FUkFMIFNJWDtObDswO0w7Ozs7NjtOOzs7OzsKKzMwMjc7SEFOR1pIT1UgTlVNRVJBTCBTRVZFTjtObDswO0w7Ozs7NztOOzs7OzsKKzMwMjg7SEFOR1pIT1UgTlVNRVJBTCBFSUdIVDtObDswO0w7Ozs7ODtOOzs7OzsKKzMwMjk7SEFOR1pIT1UgTlVNRVJBTCBOSU5FO05sOzA7TDs7Ozs5O047Ozs7OworMzAyQTtJREVPR1JBUEhJQyBMRVZFTCBUT05FIE1BUks7TW47MjE4O09OOzs7OztOOzs7OzsKKzMwMkI7SURFT0dSQVBISUMgUklTSU5HIFRPTkUgTUFSSztNbjsyMjg7T047Ozs7O047Ozs7OworMzAyQztJREVPR1JBUEhJQyBERVBBUlRJTkcgVE9ORSBNQVJLO01uOzIzMjtPTjs7Ozs7Tjs7Ozs7CiszMDJEO0lERU9HUkFQSElDIEVOVEVSSU5HIFRPTkUgTUFSSztNbjsyMjI7T047Ozs7O047Ozs7OworMzAyRTtIQU5HVUwgU0lOR0xFIERPVCBUT05FIE1BUks7TW47MjI0O09OOzs7OztOOzs7OzsKKzMwMkY7SEFOR1VMIERPVUJMRSBET1QgVE9ORSBNQVJLO01uOzIyNDtPTjs7Ozs7Tjs7Ozs7CiszMDMwO1dBVlkgREFTSDtQZDswO09OOzs7OztOOzs7OzsKKzMwMzE7VkVSVElDQUwgS0FOQSBSRVBFQVQgTUFSSztMbTswO09OOzs7OztOOzs7OzsKKzMwMzI7VkVSVElDQUwgS0FOQSBSRVBFQVQgV0lUSCBWT0lDRUQgU09VTkQgTUFSSztMbTswO09OOzs7OztOOzs7OzsKKzMwMzM7VkVSVElDQUwgS0FOQSBSRVBFQVQgTUFSSyBVUFBFUiBIQUxGO0xtOzA7T047Ozs7O047Ozs7OworMzAzNDtWRVJUSUNBTCBLQU5BIFJFUEVBVCBXSVRIIFZPSUNFRCBTT1VORCBNQVJLIFVQUEVSIEhBTEY7TG07MDtPTjs7Ozs7Tjs7Ozs7CiszMDM1O1ZFUlRJQ0FMIEtBTkEgUkVQRUFUIE1BUksgTE9XRVIgSEFMRjtMbTswO09OOzs7OztOOzs7OzsKKzMwMzY7Q0lSQ0xFRCBQT1NUQUwgTUFSSztTbzswO09OOzxjb21wYXQ+IDMwMTI7Ozs7Tjs7Ozs7CiszMDM3O0lERU9HUkFQSElDIFRFTEVHUkFQSCBMSU5FIEZFRUQgU0VQQVJBVE9SIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzMwM0Y7SURFT0dSQVBISUMgSEFMRiBGSUxMIFNQQUNFO1NvOzA7T047Ozs7O047Ozs7OworMzA0MTtISVJBR0FOQSBMRVRURVIgU01BTEwgQTtMbzswO0w7Ozs7O047Ozs7OworMzA0MjtISVJBR0FOQSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMzA0MztISVJBR0FOQSBMRVRURVIgU01BTEwgSTtMbzswO0w7Ozs7O047Ozs7OworMzA0NDtISVJBR0FOQSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMzA0NTtISVJBR0FOQSBMRVRURVIgU01BTEwgVTtMbzswO0w7Ozs7O047Ozs7OworMzA0NjtISVJBR0FOQSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMzA0NztISVJBR0FOQSBMRVRURVIgU01BTEwgRTtMbzswO0w7Ozs7O047Ozs7OworMzA0ODtISVJBR0FOQSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMzA0OTtISVJBR0FOQSBMRVRURVIgU01BTEwgTztMbzswO0w7Ozs7O047Ozs7OworMzA0QTtISVJBR0FOQSBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMzA0QjtISVJBR0FOQSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzMwNEM7SElSQUdBTkEgTEVUVEVSIEdBO0xvOzA7TDszMDRCIDMwOTk7Ozs7Tjs7Ozs7CiszMDREO0hJUkFHQU5BIExFVFRFUiBLSTtMbzswO0w7Ozs7O047Ozs7OworMzA0RTtISVJBR0FOQSBMRVRURVIgR0k7TG87MDtMOzMwNEQgMzA5OTs7OztOOzs7OzsKKzMwNEY7SElSQUdBTkEgTEVUVEVSIEtVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDUwO0hJUkFHQU5BIExFVFRFUiBHVTtMbzswO0w7MzA0RiAzMDk5Ozs7O047Ozs7OworMzA1MTtISVJBR0FOQSBMRVRURVIgS0U7TG87MDtMOzs7OztOOzs7OzsKKzMwNTI7SElSQUdBTkEgTEVUVEVSIEdFO0xvOzA7TDszMDUxIDMwOTk7Ozs7Tjs7Ozs7CiszMDUzO0hJUkFHQU5BIExFVFRFUiBLTztMbzswO0w7Ozs7O047Ozs7OworMzA1NDtISVJBR0FOQSBMRVRURVIgR087TG87MDtMOzMwNTMgMzA5OTs7OztOOzs7OzsKKzMwNTU7SElSQUdBTkEgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDU2O0hJUkFHQU5BIExFVFRFUiBaQTtMbzswO0w7MzA1NSAzMDk5Ozs7O047Ozs7OworMzA1NztISVJBR0FOQSBMRVRURVIgU0k7TG87MDtMOzs7OztOOzs7OzsKKzMwNTg7SElSQUdBTkEgTEVUVEVSIFpJO0xvOzA7TDszMDU3IDMwOTk7Ozs7Tjs7Ozs7CiszMDU5O0hJUkFHQU5BIExFVFRFUiBTVTtMbzswO0w7Ozs7O047Ozs7OworMzA1QTtISVJBR0FOQSBMRVRURVIgWlU7TG87MDtMOzMwNTkgMzA5OTs7OztOOzs7OzsKKzMwNUI7SElSQUdBTkEgTEVUVEVSIFNFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDVDO0hJUkFHQU5BIExFVFRFUiBaRTtMbzswO0w7MzA1QiAzMDk5Ozs7O047Ozs7OworMzA1RDtISVJBR0FOQSBMRVRURVIgU087TG87MDtMOzs7OztOOzs7OzsKKzMwNUU7SElSQUdBTkEgTEVUVEVSIFpPO0xvOzA7TDszMDVEIDMwOTk7Ozs7Tjs7Ozs7CiszMDVGO0hJUkFHQU5BIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMzA2MDtISVJBR0FOQSBMRVRURVIgREE7TG87MDtMOzMwNUYgMzA5OTs7OztOOzs7OzsKKzMwNjE7SElSQUdBTkEgTEVUVEVSIFRJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDYyO0hJUkFHQU5BIExFVFRFUiBESTtMbzswO0w7MzA2MSAzMDk5Ozs7O047Ozs7OworMzA2MztISVJBR0FOQSBMRVRURVIgU01BTEwgVFU7TG87MDtMOzs7OztOOzs7OzsKKzMwNjQ7SElSQUdBTkEgTEVUVEVSIFRVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDY1O0hJUkFHQU5BIExFVFRFUiBEVTtMbzswO0w7MzA2NCAzMDk5Ozs7O047Ozs7OworMzA2NjtISVJBR0FOQSBMRVRURVIgVEU7TG87MDtMOzs7OztOOzs7OzsKKzMwNjc7SElSQUdBTkEgTEVUVEVSIERFO0xvOzA7TDszMDY2IDMwOTk7Ozs7Tjs7Ozs7CiszMDY4O0hJUkFHQU5BIExFVFRFUiBUTztMbzswO0w7Ozs7O047Ozs7OworMzA2OTtISVJBR0FOQSBMRVRURVIgRE87TG87MDtMOzMwNjggMzA5OTs7OztOOzs7OzsKKzMwNkE7SElSQUdBTkEgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDZCO0hJUkFHQU5BIExFVFRFUiBOSTtMbzswO0w7Ozs7O047Ozs7OworMzA2QztISVJBR0FOQSBMRVRURVIgTlU7TG87MDtMOzs7OztOOzs7OzsKKzMwNkQ7SElSQUdBTkEgTEVUVEVSIE5FO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDZFO0hJUkFHQU5BIExFVFRFUiBOTztMbzswO0w7Ozs7O047Ozs7OworMzA2RjtISVJBR0FOQSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzMwNzA7SElSQUdBTkEgTEVUVEVSIEJBO0xvOzA7TDszMDZGIDMwOTk7Ozs7Tjs7Ozs7CiszMDcxO0hJUkFHQU5BIExFVFRFUiBQQTtMbzswO0w7MzA2RiAzMDlBOzs7O047Ozs7OworMzA3MjtISVJBR0FOQSBMRVRURVIgSEk7TG87MDtMOzs7OztOOzs7OzsKKzMwNzM7SElSQUdBTkEgTEVUVEVSIEJJO0xvOzA7TDszMDcyIDMwOTk7Ozs7Tjs7Ozs7CiszMDc0O0hJUkFHQU5BIExFVFRFUiBQSTtMbzswO0w7MzA3MiAzMDlBOzs7O047Ozs7OworMzA3NTtISVJBR0FOQSBMRVRURVIgSFU7TG87MDtMOzs7OztOOzs7OzsKKzMwNzY7SElSQUdBTkEgTEVUVEVSIEJVO0xvOzA7TDszMDc1IDMwOTk7Ozs7Tjs7Ozs7CiszMDc3O0hJUkFHQU5BIExFVFRFUiBQVTtMbzswO0w7MzA3NSAzMDlBOzs7O047Ozs7OworMzA3ODtISVJBR0FOQSBMRVRURVIgSEU7TG87MDtMOzs7OztOOzs7OzsKKzMwNzk7SElSQUdBTkEgTEVUVEVSIEJFO0xvOzA7TDszMDc4IDMwOTk7Ozs7Tjs7Ozs7CiszMDdBO0hJUkFHQU5BIExFVFRFUiBQRTtMbzswO0w7MzA3OCAzMDlBOzs7O047Ozs7OworMzA3QjtISVJBR0FOQSBMRVRURVIgSE87TG87MDtMOzs7OztOOzs7OzsKKzMwN0M7SElSQUdBTkEgTEVUVEVSIEJPO0xvOzA7TDszMDdCIDMwOTk7Ozs7Tjs7Ozs7CiszMDdEO0hJUkFHQU5BIExFVFRFUiBQTztMbzswO0w7MzA3QiAzMDlBOzs7O047Ozs7OworMzA3RTtISVJBR0FOQSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzMwN0Y7SElSQUdBTkEgTEVUVEVSIE1JO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDgwO0hJUkFHQU5BIExFVFRFUiBNVTtMbzswO0w7Ozs7O047Ozs7OworMzA4MTtISVJBR0FOQSBMRVRURVIgTUU7TG87MDtMOzs7OztOOzs7OzsKKzMwODI7SElSQUdBTkEgTEVUVEVSIE1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDgzO0hJUkFHQU5BIExFVFRFUiBTTUFMTCBZQTtMbzswO0w7Ozs7O047Ozs7OworMzA4NDtISVJBR0FOQSBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzMwODU7SElSQUdBTkEgTEVUVEVSIFNNQUxMIFlVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDg2O0hJUkFHQU5BIExFVFRFUiBZVTtMbzswO0w7Ozs7O047Ozs7OworMzA4NztISVJBR0FOQSBMRVRURVIgU01BTEwgWU87TG87MDtMOzs7OztOOzs7OzsKKzMwODg7SElSQUdBTkEgTEVUVEVSIFlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDg5O0hJUkFHQU5BIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMzA4QTtISVJBR0FOQSBMRVRURVIgUkk7TG87MDtMOzs7OztOOzs7OzsKKzMwOEI7SElSQUdBTkEgTEVUVEVSIFJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDhDO0hJUkFHQU5BIExFVFRFUiBSRTtMbzswO0w7Ozs7O047Ozs7OworMzA4RDtISVJBR0FOQSBMRVRURVIgUk87TG87MDtMOzs7OztOOzs7OzsKKzMwOEU7SElSQUdBTkEgTEVUVEVSIFNNQUxMIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDhGO0hJUkFHQU5BIExFVFRFUiBXQTtMbzswO0w7Ozs7O047Ozs7OworMzA5MDtISVJBR0FOQSBMRVRURVIgV0k7TG87MDtMOzs7OztOOzs7OzsKKzMwOTE7SElSQUdBTkEgTEVUVEVSIFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDkyO0hJUkFHQU5BIExFVFRFUiBXTztMbzswO0w7Ozs7O047Ozs7OworMzA5MztISVJBR0FOQSBMRVRURVIgTjtMbzswO0w7Ozs7O047Ozs7OworMzA5NDtISVJBR0FOQSBMRVRURVIgVlU7TG87MDtMOzMwNDYgMzA5OTs7OztOOzs7OzsKKzMwOTk7Q09NQklOSU5HIEtBVEFLQU5BLUhJUkFHQU5BIFZPSUNFRCBTT1VORCBNQVJLO01uOzg7T047Ozs7O047Tk9OLVNQQUNJTkcgS0FUQUtBTkEtSElSQUdBTkEgVk9JQ0VEIFNPVU5EIE1BUks7Ozs7CiszMDlBO0NPTUJJTklORyBLQVRBS0FOQS1ISVJBR0FOQSBTRU1JLVZPSUNFRCBTT1VORCBNQVJLO01uOzg7T047Ozs7O047Tk9OLVNQQUNJTkcgS0FUQUtBTkEtSElSQUdBTkEgU0VNSS1WT0lDRUQgU09VTkQgTUFSSzs7OzsKKzMwOUI7S0FUQUtBTkEtSElSQUdBTkEgVk9JQ0VEIFNPVU5EIE1BUks7TG07MDtMOzxjb21wYXQ+IDAwMjAgMzA5OTs7OztOOzs7OzsKKzMwOUM7S0FUQUtBTkEtSElSQUdBTkEgU0VNSS1WT0lDRUQgU09VTkQgTUFSSztMbTswO0w7PGNvbXBhdD4gMDAyMCAzMDlBOzs7O047Ozs7OworMzA5RDtISVJBR0FOQSBJVEVSQVRJT04gTUFSSztMbTswO0w7Ozs7O047Ozs7OworMzA5RTtISVJBR0FOQSBWT0lDRUQgSVRFUkFUSU9OIE1BUks7TG07MDtMOzMwOUQgMzA5OTs7OztOOzs7OzsKKzMwQTE7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIEE7TG87MDtMOzs7OztOOzs7OzsKKzMwQTI7S0FUQUtBTkEgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzMwQTM7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIEk7TG87MDtMOzs7OztOOzs7OzsKKzMwQTQ7S0FUQUtBTkEgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzMwQTU7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIFU7TG87MDtMOzs7OztOOzs7OzsKKzMwQTY7S0FUQUtBTkEgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzMwQTc7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIEU7TG87MDtMOzs7OztOOzs7OzsKKzMwQTg7S0FUQUtBTkEgTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzMwQTk7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIE87TG87MDtMOzs7OztOOzs7OzsKKzMwQUE7S0FUQUtBTkEgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzMwQUI7S0FUQUtBTkEgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEFDO0tBVEFLQU5BIExFVFRFUiBHQTtMbzswO0w7MzBBQiAzMDk5Ozs7O047Ozs7OworMzBBRDtLQVRBS0FOQSBMRVRURVIgS0k7TG87MDtMOzs7OztOOzs7OzsKKzMwQUU7S0FUQUtBTkEgTEVUVEVSIEdJO0xvOzA7TDszMEFEIDMwOTk7Ozs7Tjs7Ozs7CiszMEFGO0tBVEFLQU5BIExFVFRFUiBLVTtMbzswO0w7Ozs7O047Ozs7OworMzBCMDtLQVRBS0FOQSBMRVRURVIgR1U7TG87MDtMOzMwQUYgMzA5OTs7OztOOzs7OzsKKzMwQjE7S0FUQUtBTkEgTEVUVEVSIEtFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEIyO0tBVEFLQU5BIExFVFRFUiBHRTtMbzswO0w7MzBCMSAzMDk5Ozs7O047Ozs7OworMzBCMztLQVRBS0FOQSBMRVRURVIgS087TG87MDtMOzs7OztOOzs7OzsKKzMwQjQ7S0FUQUtBTkEgTEVUVEVSIEdPO0xvOzA7TDszMEIzIDMwOTk7Ozs7Tjs7Ozs7CiszMEI1O0tBVEFLQU5BIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMzBCNjtLQVRBS0FOQSBMRVRURVIgWkE7TG87MDtMOzMwQjUgMzA5OTs7OztOOzs7OzsKKzMwQjc7S0FUQUtBTkEgTEVUVEVSIFNJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEI4O0tBVEFLQU5BIExFVFRFUiBaSTtMbzswO0w7MzBCNyAzMDk5Ozs7O047Ozs7OworMzBCOTtLQVRBS0FOQSBMRVRURVIgU1U7TG87MDtMOzs7OztOOzs7OzsKKzMwQkE7S0FUQUtBTkEgTEVUVEVSIFpVO0xvOzA7TDszMEI5IDMwOTk7Ozs7Tjs7Ozs7CiszMEJCO0tBVEFLQU5BIExFVFRFUiBTRTtMbzswO0w7Ozs7O047Ozs7OworMzBCQztLQVRBS0FOQSBMRVRURVIgWkU7TG87MDtMOzMwQkIgMzA5OTs7OztOOzs7OzsKKzMwQkQ7S0FUQUtBTkEgTEVUVEVSIFNPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEJFO0tBVEFLQU5BIExFVFRFUiBaTztMbzswO0w7MzBCRCAzMDk5Ozs7O047Ozs7OworMzBCRjtLQVRBS0FOQSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzMwQzA7S0FUQUtBTkEgTEVUVEVSIERBO0xvOzA7TDszMEJGIDMwOTk7Ozs7Tjs7Ozs7CiszMEMxO0tBVEFLQU5BIExFVFRFUiBUSTtMbzswO0w7Ozs7O047Ozs7OworMzBDMjtLQVRBS0FOQSBMRVRURVIgREk7TG87MDtMOzMwQzEgMzA5OTs7OztOOzs7OzsKKzMwQzM7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIFRVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEM0O0tBVEFLQU5BIExFVFRFUiBUVTtMbzswO0w7Ozs7O047Ozs7OworMzBDNTtLQVRBS0FOQSBMRVRURVIgRFU7TG87MDtMOzMwQzQgMzA5OTs7OztOOzs7OzsKKzMwQzY7S0FUQUtBTkEgTEVUVEVSIFRFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEM3O0tBVEFLQU5BIExFVFRFUiBERTtMbzswO0w7MzBDNiAzMDk5Ozs7O047Ozs7OworMzBDODtLQVRBS0FOQSBMRVRURVIgVE87TG87MDtMOzs7OztOOzs7OzsKKzMwQzk7S0FUQUtBTkEgTEVUVEVSIERPO0xvOzA7TDszMEM4IDMwOTk7Ozs7Tjs7Ozs7CiszMENBO0tBVEFLQU5BIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMzBDQjtLQVRBS0FOQSBMRVRURVIgTkk7TG87MDtMOzs7OztOOzs7OzsKKzMwQ0M7S0FUQUtBTkEgTEVUVEVSIE5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMENEO0tBVEFLQU5BIExFVFRFUiBORTtMbzswO0w7Ozs7O047Ozs7OworMzBDRTtLQVRBS0FOQSBMRVRURVIgTk87TG87MDtMOzs7OztOOzs7OzsKKzMwQ0Y7S0FUQUtBTkEgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEQwO0tBVEFLQU5BIExFVFRFUiBCQTtMbzswO0w7MzBDRiAzMDk5Ozs7O047Ozs7OworMzBEMTtLQVRBS0FOQSBMRVRURVIgUEE7TG87MDtMOzMwQ0YgMzA5QTs7OztOOzs7OzsKKzMwRDI7S0FUQUtBTkEgTEVUVEVSIEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEQzO0tBVEFLQU5BIExFVFRFUiBCSTtMbzswO0w7MzBEMiAzMDk5Ozs7O047Ozs7OworMzBENDtLQVRBS0FOQSBMRVRURVIgUEk7TG87MDtMOzMwRDIgMzA5QTs7OztOOzs7OzsKKzMwRDU7S0FUQUtBTkEgTEVUVEVSIEhVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEQ2O0tBVEFLQU5BIExFVFRFUiBCVTtMbzswO0w7MzBENSAzMDk5Ozs7O047Ozs7OworMzBENztLQVRBS0FOQSBMRVRURVIgUFU7TG87MDtMOzMwRDUgMzA5QTs7OztOOzs7OzsKKzMwRDg7S0FUQUtBTkEgTEVUVEVSIEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEQ5O0tBVEFLQU5BIExFVFRFUiBCRTtMbzswO0w7MzBEOCAzMDk5Ozs7O047Ozs7OworMzBEQTtLQVRBS0FOQSBMRVRURVIgUEU7TG87MDtMOzMwRDggMzA5QTs7OztOOzs7OzsKKzMwREI7S0FUQUtBTkEgTEVUVEVSIEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMERDO0tBVEFLQU5BIExFVFRFUiBCTztMbzswO0w7MzBEQiAzMDk5Ozs7O047Ozs7OworMzBERDtLQVRBS0FOQSBMRVRURVIgUE87TG87MDtMOzMwREIgMzA5QTs7OztOOzs7OzsKKzMwREU7S0FUQUtBTkEgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMERGO0tBVEFLQU5BIExFVFRFUiBNSTtMbzswO0w7Ozs7O047Ozs7OworMzBFMDtLQVRBS0FOQSBMRVRURVIgTVU7TG87MDtMOzs7OztOOzs7OzsKKzMwRTE7S0FUQUtBTkEgTEVUVEVSIE1FO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEUyO0tBVEFLQU5BIExFVFRFUiBNTztMbzswO0w7Ozs7O047Ozs7OworMzBFMztLQVRBS0FOQSBMRVRURVIgU01BTEwgWUE7TG87MDtMOzs7OztOOzs7OzsKKzMwRTQ7S0FUQUtBTkEgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEU1O0tBVEFLQU5BIExFVFRFUiBTTUFMTCBZVTtMbzswO0w7Ozs7O047Ozs7OworMzBFNjtLQVRBS0FOQSBMRVRURVIgWVU7TG87MDtMOzs7OztOOzs7OzsKKzMwRTc7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIFlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEU4O0tBVEFLQU5BIExFVFRFUiBZTztMbzswO0w7Ozs7O047Ozs7OworMzBFOTtLQVRBS0FOQSBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzMwRUE7S0FUQUtBTkEgTEVUVEVSIFJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEVCO0tBVEFLQU5BIExFVFRFUiBSVTtMbzswO0w7Ozs7O047Ozs7OworMzBFQztLQVRBS0FOQSBMRVRURVIgUkU7TG87MDtMOzs7OztOOzs7OzsKKzMwRUQ7S0FUQUtBTkEgTEVUVEVSIFJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEVFO0tBVEFLQU5BIExFVFRFUiBTTUFMTCBXQTtMbzswO0w7Ozs7O047Ozs7OworMzBFRjtLQVRBS0FOQSBMRVRURVIgV0E7TG87MDtMOzs7OztOOzs7OzsKKzMwRjA7S0FUQUtBTkEgTEVUVEVSIFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEYxO0tBVEFLQU5BIExFVFRFUiBXRTtMbzswO0w7Ozs7O047Ozs7OworMzBGMjtLQVRBS0FOQSBMRVRURVIgV087TG87MDtMOzs7OztOOzs7OzsKKzMwRjM7S0FUQUtBTkEgTEVUVEVSIE47TG87MDtMOzs7OztOOzs7OzsKKzMwRjQ7S0FUQUtBTkEgTEVUVEVSIFZVO0xvOzA7TDszMEE2IDMwOTk7Ozs7Tjs7Ozs7CiszMEY1O0tBVEFLQU5BIExFVFRFUiBTTUFMTCBLQTtMbzswO0w7Ozs7O047Ozs7OworMzBGNjtLQVRBS0FOQSBMRVRURVIgU01BTEwgS0U7TG87MDtMOzs7OztOOzs7OzsKKzMwRjc7S0FUQUtBTkEgTEVUVEVSIFZBO0xvOzA7TDszMEVGIDMwOTk7Ozs7Tjs7Ozs7CiszMEY4O0tBVEFLQU5BIExFVFRFUiBWSTtMbzswO0w7MzBGMCAzMDk5Ozs7O047Ozs7OworMzBGOTtLQVRBS0FOQSBMRVRURVIgVkU7TG87MDtMOzMwRjEgMzA5OTs7OztOOzs7OzsKKzMwRkE7S0FUQUtBTkEgTEVUVEVSIFZPO0xvOzA7TDszMEYyIDMwOTk7Ozs7Tjs7Ozs7CiszMEZCO0tBVEFLQU5BIE1JRERMRSBET1Q7UG87MDtMOzs7OztOOzs7OzsKKzMwRkM7S0FUQUtBTkEtSElSQUdBTkEgUFJPTE9OR0VEIFNPVU5EIE1BUks7TG07MDtMOzs7OztOOzs7OzsKKzMwRkQ7S0FUQUtBTkEgSVRFUkFUSU9OIE1BUks7TG07MDtMOzs7OztOOzs7OzsKKzMwRkU7S0FUQUtBTkEgVk9JQ0VEIElURVJBVElPTiBNQVJLO0xtOzA7TDszMEZEIDMwOTk7Ozs7Tjs7Ozs7CiszMTA1O0JPUE9NT0ZPIExFVFRFUiBCO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTA2O0JPUE9NT0ZPIExFVFRFUiBQO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTA3O0JPUE9NT0ZPIExFVFRFUiBNO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTA4O0JPUE9NT0ZPIExFVFRFUiBGO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTA5O0JPUE9NT0ZPIExFVFRFUiBEO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTBBO0JPUE9NT0ZPIExFVFRFUiBUO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTBCO0JPUE9NT0ZPIExFVFRFUiBOO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTBDO0JPUE9NT0ZPIExFVFRFUiBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTBEO0JPUE9NT0ZPIExFVFRFUiBHO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTBFO0JPUE9NT0ZPIExFVFRFUiBLO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTBGO0JPUE9NT0ZPIExFVFRFUiBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTEwO0JPUE9NT0ZPIExFVFRFUiBKO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTExO0JPUE9NT0ZPIExFVFRFUiBRO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTEyO0JPUE9NT0ZPIExFVFRFUiBYO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTEzO0JPUE9NT0ZPIExFVFRFUiBaSDtMbzswO0w7Ozs7O047Ozs7OworMzExNDtCT1BPTU9GTyBMRVRURVIgQ0g7TG87MDtMOzs7OztOOzs7OzsKKzMxMTU7Qk9QT01PRk8gTEVUVEVSIFNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTE2O0JPUE9NT0ZPIExFVFRFUiBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTE3O0JPUE9NT0ZPIExFVFRFUiBaO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTE4O0JPUE9NT0ZPIExFVFRFUiBDO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTE5O0JPUE9NT0ZPIExFVFRFUiBTO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTFBO0JPUE9NT0ZPIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTFCO0JPUE9NT0ZPIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTFDO0JPUE9NT0ZPIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTFEO0JPUE9NT0ZPIExFVFRFUiBFSDtMbzswO0w7Ozs7O047Ozs7OworMzExRTtCT1BPTU9GTyBMRVRURVIgQUk7TG87MDtMOzs7OztOOzs7OzsKKzMxMUY7Qk9QT01PRk8gTEVUVEVSIEVJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTIwO0JPUE9NT0ZPIExFVFRFUiBBVTtMbzswO0w7Ozs7O047Ozs7OworMzEyMTtCT1BPTU9GTyBMRVRURVIgT1U7TG87MDtMOzs7OztOOzs7OzsKKzMxMjI7Qk9QT01PRk8gTEVUVEVSIEFOO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTIzO0JPUE9NT0ZPIExFVFRFUiBFTjtMbzswO0w7Ozs7O047Ozs7OworMzEyNDtCT1BPTU9GTyBMRVRURVIgQU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTI1O0JPUE9NT0ZPIExFVFRFUiBFTkc7TG87MDtMOzs7OztOOzs7OzsKKzMxMjY7Qk9QT01PRk8gTEVUVEVSIEVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTI3O0JPUE9NT0ZPIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTI4O0JPUE9NT0ZPIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTI5O0JPUE9NT0ZPIExFVFRFUiBJVTtMbzswO0w7Ozs7O047Ozs7OworMzEyQTtCT1BPTU9GTyBMRVRURVIgVjtMbzswO0w7Ozs7O047Ozs7OworMzEyQjtCT1BPTU9GTyBMRVRURVIgTkc7TG87MDtMOzs7OztOOzs7OzsKKzMxMkM7Qk9QT01PRk8gTEVUVEVSIEdOO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTMxO0hBTkdVTCBMRVRURVIgS0lZRU9LO0xvOzA7TDs8Y29tcGF0PiAxMTAwOzs7O047SEFOR1VMIExFVFRFUiBHSVlFT0c7Ozs7CiszMTMyO0hBTkdVTCBMRVRURVIgU1NBTkdLSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExMDE7Ozs7TjtIQU5HVUwgTEVUVEVSIFNTQU5HIEdJWUVPRzs7OzsKKzMxMzM7SEFOR1VMIExFVFRFUiBLSVlFT0stU0lPUztMbzswO0w7PGNvbXBhdD4gMTFBQTs7OztOO0hBTkdVTCBMRVRURVIgR0lZRU9HIFNJT1M7Ozs7CiszMTM0O0hBTkdVTCBMRVRURVIgTklFVU47TG87MDtMOzxjb21wYXQ+IDExMDI7Ozs7Tjs7Ozs7CiszMTM1O0hBTkdVTCBMRVRURVIgTklFVU4tQ0lFVUM7TG87MDtMOzxjb21wYXQ+IDExQUM7Ozs7TjtIQU5HVUwgTEVUVEVSIE5JRVVOIEpJRVVKOzs7OworMzEzNjtIQU5HVUwgTEVUVEVSIE5JRVVOLUhJRVVIO0xvOzA7TDs8Y29tcGF0PiAxMUFEOzs7O047SEFOR1VMIExFVFRFUiBOSUVVTiBISUVVSDs7OzsKKzMxMzc7SEFOR1VMIExFVFRFUiBUSUtFVVQ7TG87MDtMOzxjb21wYXQ+IDExMDM7Ozs7TjtIQU5HVUwgTEVUVEVSIERJR0VVRDs7OzsKKzMxMzg7SEFOR1VMIExFVFRFUiBTU0FOR1RJS0VVVDtMbzswO0w7PGNvbXBhdD4gMTEwNDs7OztOO0hBTkdVTCBMRVRURVIgU1NBTkcgRElHRVVEOzs7OworMzEzOTtIQU5HVUwgTEVUVEVSIFJJRVVMO0xvOzA7TDs8Y29tcGF0PiAxMTA1Ozs7O047SEFOR1VMIExFVFRFUiBMSUVVTDs7OzsKKzMxM0E7SEFOR1VMIExFVFRFUiBSSUVVTC1LSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExQjA7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIEdJWUVPRzs7OzsKKzMxM0I7SEFOR1VMIExFVFRFUiBSSUVVTC1NSUVVTTtMbzswO0w7PGNvbXBhdD4gMTFCMTs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgTUlFVU07Ozs7CiszMTNDO0hBTkdVTCBMRVRURVIgUklFVUwtUElFVVA7TG87MDtMOzxjb21wYXQ+IDExQjI7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIEJJRVVCOzs7OworMzEzRDtIQU5HVUwgTEVUVEVSIFJJRVVMLVNJT1M7TG87MDtMOzxjb21wYXQ+IDExQjM7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIFNJT1M7Ozs7CiszMTNFO0hBTkdVTCBMRVRURVIgUklFVUwtVEhJRVVUSDtMbzswO0w7PGNvbXBhdD4gMTFCNDs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgVElFVVQ7Ozs7CiszMTNGO0hBTkdVTCBMRVRURVIgUklFVUwtUEhJRVVQSDtMbzswO0w7PGNvbXBhdD4gMTFCNTs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgUElFVVA7Ozs7CiszMTQwO0hBTkdVTCBMRVRURVIgUklFVUwtSElFVUg7TG87MDtMOzxjb21wYXQ+IDExMUE7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIEhJRVVIOzs7OworMzE0MTtIQU5HVUwgTEVUVEVSIE1JRVVNO0xvOzA7TDs8Y29tcGF0PiAxMTA2Ozs7O047Ozs7OworMzE0MjtIQU5HVUwgTEVUVEVSIFBJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMTA3Ozs7O047SEFOR1VMIExFVFRFUiBCSUVVQjs7OzsKKzMxNDM7SEFOR1VMIExFVFRFUiBTU0FOR1BJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMTA4Ozs7O047SEFOR1VMIExFVFRFUiBTU0FORyBCSUVVQjs7OzsKKzMxNDQ7SEFOR1VMIExFVFRFUiBQSUVVUC1TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMTIxOzs7O047SEFOR1VMIExFVFRFUiBCSUVVQiBTSU9TOzs7OworMzE0NTtIQU5HVUwgTEVUVEVSIFNJT1M7TG87MDtMOzxjb21wYXQ+IDExMDk7Ozs7Tjs7Ozs7CiszMTQ2O0hBTkdVTCBMRVRURVIgU1NBTkdTSU9TO0xvOzA7TDs8Y29tcGF0PiAxMTBBOzs7O047SEFOR1VMIExFVFRFUiBTU0FORyBTSU9TOzs7OworMzE0NztIQU5HVUwgTEVUVEVSIElFVU5HO0xvOzA7TDs8Y29tcGF0PiAxMTBCOzs7O047Ozs7OworMzE0ODtIQU5HVUwgTEVUVEVSIENJRVVDO0xvOzA7TDs8Y29tcGF0PiAxMTBDOzs7O047SEFOR1VMIExFVFRFUiBKSUVVSjs7OzsKKzMxNDk7SEFOR1VMIExFVFRFUiBTU0FOR0NJRVVDO0xvOzA7TDs8Y29tcGF0PiAxMTBEOzs7O047SEFOR1VMIExFVFRFUiBTU0FORyBKSUVVSjs7OzsKKzMxNEE7SEFOR1VMIExFVFRFUiBDSElFVUNIO0xvOzA7TDs8Y29tcGF0PiAxMTBFOzs7O047SEFOR1VMIExFVFRFUiBDSUVVQzs7OzsKKzMxNEI7SEFOR1VMIExFVFRFUiBLSElFVUtIO0xvOzA7TDs8Y29tcGF0PiAxMTBGOzs7O047SEFOR1VMIExFVFRFUiBLSVlFT0s7Ozs7CiszMTRDO0hBTkdVTCBMRVRURVIgVEhJRVVUSDtMbzswO0w7PGNvbXBhdD4gMTExMDs7OztOO0hBTkdVTCBMRVRURVIgVElFVVQ7Ozs7CiszMTREO0hBTkdVTCBMRVRURVIgUEhJRVVQSDtMbzswO0w7PGNvbXBhdD4gMTExMTs7OztOO0hBTkdVTCBMRVRURVIgUElFVVA7Ozs7CiszMTRFO0hBTkdVTCBMRVRURVIgSElFVUg7TG87MDtMOzxjb21wYXQ+IDExMTI7Ozs7Tjs7Ozs7CiszMTRGO0hBTkdVTCBMRVRURVIgQTtMbzswO0w7PGNvbXBhdD4gMTE2MTs7OztOOzs7OzsKKzMxNTA7SEFOR1VMIExFVFRFUiBBRTtMbzswO0w7PGNvbXBhdD4gMTE2Mjs7OztOOzs7OzsKKzMxNTE7SEFOR1VMIExFVFRFUiBZQTtMbzswO0w7PGNvbXBhdD4gMTE2Mzs7OztOOzs7OzsKKzMxNTI7SEFOR1VMIExFVFRFUiBZQUU7TG87MDtMOzxjb21wYXQ+IDExNjQ7Ozs7Tjs7Ozs7CiszMTUzO0hBTkdVTCBMRVRURVIgRU87TG87MDtMOzxjb21wYXQ+IDExNjU7Ozs7Tjs7Ozs7CiszMTU0O0hBTkdVTCBMRVRURVIgRTtMbzswO0w7PGNvbXBhdD4gMTE2Njs7OztOOzs7OzsKKzMxNTU7SEFOR1VMIExFVFRFUiBZRU87TG87MDtMOzxjb21wYXQ+IDExNjc7Ozs7Tjs7Ozs7CiszMTU2O0hBTkdVTCBMRVRURVIgWUU7TG87MDtMOzxjb21wYXQ+IDExNjg7Ozs7Tjs7Ozs7CiszMTU3O0hBTkdVTCBMRVRURVIgTztMbzswO0w7PGNvbXBhdD4gMTE2OTs7OztOOzs7OzsKKzMxNTg7SEFOR1VMIExFVFRFUiBXQTtMbzswO0w7PGNvbXBhdD4gMTE2QTs7OztOOzs7OzsKKzMxNTk7SEFOR1VMIExFVFRFUiBXQUU7TG87MDtMOzxjb21wYXQ+IDExNkI7Ozs7Tjs7Ozs7CiszMTVBO0hBTkdVTCBMRVRURVIgT0U7TG87MDtMOzxjb21wYXQ+IDExNkM7Ozs7Tjs7Ozs7CiszMTVCO0hBTkdVTCBMRVRURVIgWU87TG87MDtMOzxjb21wYXQ+IDExNkQ7Ozs7Tjs7Ozs7CiszMTVDO0hBTkdVTCBMRVRURVIgVTtMbzswO0w7PGNvbXBhdD4gMTE2RTs7OztOOzs7OzsKKzMxNUQ7SEFOR1VMIExFVFRFUiBXRU87TG87MDtMOzxjb21wYXQ+IDExNkY7Ozs7Tjs7Ozs7CiszMTVFO0hBTkdVTCBMRVRURVIgV0U7TG87MDtMOzxjb21wYXQ+IDExNzA7Ozs7Tjs7Ozs7CiszMTVGO0hBTkdVTCBMRVRURVIgV0k7TG87MDtMOzxjb21wYXQ+IDExNzE7Ozs7Tjs7Ozs7CiszMTYwO0hBTkdVTCBMRVRURVIgWVU7TG87MDtMOzxjb21wYXQ+IDExNzI7Ozs7Tjs7Ozs7CiszMTYxO0hBTkdVTCBMRVRURVIgRVU7TG87MDtMOzxjb21wYXQ+IDExNzM7Ozs7Tjs7Ozs7CiszMTYyO0hBTkdVTCBMRVRURVIgWUk7TG87MDtMOzxjb21wYXQ+IDExNzQ7Ozs7Tjs7Ozs7CiszMTYzO0hBTkdVTCBMRVRURVIgSTtMbzswO0w7PGNvbXBhdD4gMTE3NTs7OztOOzs7OzsKKzMxNjQ7SEFOR1VMIEZJTExFUjtMbzswO0w7PGNvbXBhdD4gMTE2MDs7OztOO0hBTkdVTCBDQUUgT007Ozs7CiszMTY1O0hBTkdVTCBMRVRURVIgU1NBTkdOSUVVTjtMbzswO0w7PGNvbXBhdD4gMTExNDs7OztOO0hBTkdVTCBMRVRURVIgU1NBTkcgTklFVU47Ozs7CiszMTY2O0hBTkdVTCBMRVRURVIgTklFVU4tVElLRVVUO0xvOzA7TDs8Y29tcGF0PiAxMTE1Ozs7O047SEFOR1VMIExFVFRFUiBOSUVVTiBESUdFVUQ7Ozs7CiszMTY3O0hBTkdVTCBMRVRURVIgTklFVU4tU0lPUztMbzswO0w7PGNvbXBhdD4gMTFDNzs7OztOO0hBTkdVTCBMRVRURVIgTklFVU4gU0lPUzs7OzsKKzMxNjg7SEFOR1VMIExFVFRFUiBOSUVVTi1QQU5TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUM4Ozs7O047SEFOR1VMIExFVFRFUiBOSUVVTiBCQU4gQ0hJIEVVTTs7OzsKKzMxNjk7SEFOR1VMIExFVFRFUiBSSUVVTC1LSVlFT0stU0lPUztMbzswO0w7PGNvbXBhdD4gMTFDQzs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgR0lZRU9HIFNJT1M7Ozs7CiszMTZBO0hBTkdVTCBMRVRURVIgUklFVUwtVElLRVVUO0xvOzA7TDs8Y29tcGF0PiAxMUNFOzs7O047SEFOR1VMIExFVFRFUiBMSUVVTCBESUdFVUQ7Ozs7CiszMTZCO0hBTkdVTCBMRVRURVIgUklFVUwtUElFVVAtU0lPUztMbzswO0w7PGNvbXBhdD4gMTFEMzs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgQklFVUIgU0lPUzs7OzsKKzMxNkM7SEFOR1VMIExFVFRFUiBSSUVVTC1QQU5TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUQ3Ozs7O047SEFOR1VMIExFVFRFUiBMSUVVTCBCQU4gQ0hJIEVVTTs7OzsKKzMxNkQ7SEFOR1VMIExFVFRFUiBSSUVVTC1ZRU9SSU5ISUVVSDtMbzswO0w7PGNvbXBhdD4gMTFEOTs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgWUVPTElOIEhJRVVIOzs7OworMzE2RTtIQU5HVUwgTEVUVEVSIE1JRVVNLVBJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMTFDOzs7O047SEFOR1VMIExFVFRFUiBNSUVVTSBCSUVVQjs7OzsKKzMxNkY7SEFOR1VMIExFVFRFUiBNSUVVTS1TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUREOzs7O047SEFOR1VMIExFVFRFUiBNSUVVTSBTSU9TOzs7OworMzE3MDtIQU5HVUwgTEVUVEVSIE1JRVVNLVBBTlNJT1M7TG87MDtMOzxjb21wYXQ+IDExREY7Ozs7TjtIQU5HVUwgTEVUVEVSIEJJRVVCIEJBTiBDSEkgRVVNOzs7OworMzE3MTtIQU5HVUwgTEVUVEVSIEtBUFlFT1VOTUlFVU07TG87MDtMOzxjb21wYXQ+IDExMUQ7Ozs7TjtIQU5HVUwgTEVUVEVSIE1JRVVNIFNVTiBHWUVPTkcgRVVNOzs7OworMzE3MjtIQU5HVUwgTEVUVEVSIFBJRVVQLUtJWUVPSztMbzswO0w7PGNvbXBhdD4gMTExRTs7OztOO0hBTkdVTCBMRVRURVIgQklFVUIgR0lZRU9HOzs7OworMzE3MztIQU5HVUwgTEVUVEVSIFBJRVVQLVRJS0VVVDtMbzswO0w7PGNvbXBhdD4gMTEyMDs7OztOO0hBTkdVTCBMRVRURVIgQklFVUIgRElHRVVEOzs7OworMzE3NDtIQU5HVUwgTEVUVEVSIFBJRVVQLVNJT1MtS0lZRU9LO0xvOzA7TDs8Y29tcGF0PiAxMTIyOzs7O047SEFOR1VMIExFVFRFUiBCSUVVQiBTSU9TIEdJWUVPRzs7OzsKKzMxNzU7SEFOR1VMIExFVFRFUiBQSUVVUC1TSU9TLVRJS0VVVDtMbzswO0w7PGNvbXBhdD4gMTEyMzs7OztOO0hBTkdVTCBMRVRURVIgQklFVUIgU0lPUyBESUdFVUQ7Ozs7CiszMTc2O0hBTkdVTCBMRVRURVIgUElFVVAtQ0lFVUM7TG87MDtMOzxjb21wYXQ+IDExMjc7Ozs7TjtIQU5HVUwgTEVUVEVSIEJJRVVCIEpJRVVKOzs7OworMzE3NztIQU5HVUwgTEVUVEVSIFBJRVVQLVRISUVVVEg7TG87MDtMOzxjb21wYXQ+IDExMjk7Ozs7TjtIQU5HVUwgTEVUVEVSIEJJRVVCIFRJRVVUOzs7OworMzE3ODtIQU5HVUwgTEVUVEVSIEtBUFlFT1VOUElFVVA7TG87MDtMOzxjb21wYXQ+IDExMkI7Ozs7TjtIQU5HVUwgTEVUVEVSIEJJRVVCIFNVTiBHWUVPTkcgRVVNOzs7OworMzE3OTtIQU5HVUwgTEVUVEVSIEtBUFlFT1VOU1NBTkdQSUVVUDtMbzswO0w7PGNvbXBhdD4gMTEyQzs7OztOO0hBTkdVTCBMRVRURVIgU1NBTkcgQklFVUIgU1VOIEdZRU9ORyBFVU07Ozs7CiszMTdBO0hBTkdVTCBMRVRURVIgU0lPUy1LSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExMkQ7Ozs7TjtIQU5HVUwgTEVUVEVSIFNJT1MgR0lZRU9HOzs7OworMzE3QjtIQU5HVUwgTEVUVEVSIFNJT1MtTklFVU47TG87MDtMOzxjb21wYXQ+IDExMkU7Ozs7TjtIQU5HVUwgTEVUVEVSIFNJT1MgTklFVU47Ozs7CiszMTdDO0hBTkdVTCBMRVRURVIgU0lPUy1USUtFVVQ7TG87MDtMOzxjb21wYXQ+IDExMkY7Ozs7TjtIQU5HVUwgTEVUVEVSIFNJT1MgRElHRVVEOzs7OworMzE3RDtIQU5HVUwgTEVUVEVSIFNJT1MtUElFVVA7TG87MDtMOzxjb21wYXQ+IDExMzI7Ozs7TjtIQU5HVUwgTEVUVEVSIFNJT1MgQklFVUI7Ozs7CiszMTdFO0hBTkdVTCBMRVRURVIgU0lPUy1DSUVVQztMbzswO0w7PGNvbXBhdD4gMTEzNjs7OztOO0hBTkdVTCBMRVRURVIgU0lPUyBKSUVVSjs7OzsKKzMxN0Y7SEFOR1VMIExFVFRFUiBQQU5TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMTQwOzs7O047SEFOR1VMIExFVFRFUiBCQU4gQ0hJIEVVTTs7OzsKKzMxODA7SEFOR1VMIExFVFRFUiBTU0FOR0lFVU5HO0xvOzA7TDs8Y29tcGF0PiAxMTQ3Ozs7O047SEFOR1VMIExFVFRFUiBTU0FORyBJRVVORzs7OzsKKzMxODE7SEFOR1VMIExFVFRFUiBZRVNJRVVORztMbzswO0w7PGNvbXBhdD4gMTE0Qzs7OztOO0hBTkdVTCBMRVRURVIgTkdJRVVORzs7OzsKKzMxODI7SEFOR1VMIExFVFRFUiBZRVNJRVVORy1TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUYxOzs7O047SEFOR1VMIExFVFRFUiBOR0lFVU5HIFNJT1M7Ozs7CiszMTgzO0hBTkdVTCBMRVRURVIgWUVTSUVVTkctUEFOU0lPUztMbzswO0w7PGNvbXBhdD4gMTFGMjs7OztOO0hBTkdVTCBMRVRURVIgTkdJRVVORyBCQU4gQ0hJIEVVTTs7OzsKKzMxODQ7SEFOR1VMIExFVFRFUiBLQVBZRU9VTlBISUVVUEg7TG87MDtMOzxjb21wYXQ+IDExNTc7Ozs7TjtIQU5HVUwgTEVUVEVSIFBJRVVQIFNVTiBHWUVPTkcgRVVNOzs7OworMzE4NTtIQU5HVUwgTEVUVEVSIFNTQU5HSElFVUg7TG87MDtMOzxjb21wYXQ+IDExNTg7Ozs7TjtIQU5HVUwgTEVUVEVSIFNTQU5HIEhJRVVIOzs7OworMzE4NjtIQU5HVUwgTEVUVEVSIFlFT1JJTkhJRVVIO0xvOzA7TDs8Y29tcGF0PiAxMTU5Ozs7O047SEFOR1VMIExFVFRFUiBZRU9MSU4gSElFVUg7Ozs7CiszMTg3O0hBTkdVTCBMRVRURVIgWU8tWUE7TG87MDtMOzxjb21wYXQ+IDExODQ7Ozs7TjtIQU5HVUwgTEVUVEVSIFlPWUE7Ozs7CiszMTg4O0hBTkdVTCBMRVRURVIgWU8tWUFFO0xvOzA7TDs8Y29tcGF0PiAxMTg1Ozs7O047SEFOR1VMIExFVFRFUiBZT1lBRTs7OzsKKzMxODk7SEFOR1VMIExFVFRFUiBZTy1JO0xvOzA7TDs8Y29tcGF0PiAxMTg4Ozs7O047SEFOR1VMIExFVFRFUiBZT0k7Ozs7CiszMThBO0hBTkdVTCBMRVRURVIgWVUtWUVPO0xvOzA7TDs8Y29tcGF0PiAxMTkxOzs7O047SEFOR1VMIExFVFRFUiBZVVlFTzs7OzsKKzMxOEI7SEFOR1VMIExFVFRFUiBZVS1ZRTtMbzswO0w7PGNvbXBhdD4gMTE5Mjs7OztOO0hBTkdVTCBMRVRURVIgWVVZRTs7OzsKKzMxOEM7SEFOR1VMIExFVFRFUiBZVS1JO0xvOzA7TDs8Y29tcGF0PiAxMTk0Ozs7O047SEFOR1VMIExFVFRFUiBZVUk7Ozs7CiszMThEO0hBTkdVTCBMRVRURVIgQVJBRUE7TG87MDtMOzxjb21wYXQ+IDExOUU7Ozs7TjtIQU5HVUwgTEVUVEVSIEFMQUUgQTs7OzsKKzMxOEU7SEFOR1VMIExFVFRFUiBBUkFFQUU7TG87MDtMOzxjb21wYXQ+IDExQTE7Ozs7TjtIQU5HVUwgTEVUVEVSIEFMQUUgQUU7Ozs7CiszMTkwO0lERU9HUkFQSElDIEFOTk9UQVRJT04gTElOS0lORyBNQVJLO1NvOzA7TDs7Ozs7TjtLQU5CVU4gVEFURVRFTjtLYW5idW4gVGF0ZXRlbjs7OworMzE5MTtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIFJFVkVSU0UgTUFSSztTbzswO0w7Ozs7O047S0FFUklURU4gUkU7S2Flcml0ZW47OzsKKzMxOTI7SURFT0dSQVBISUMgQU5OT1RBVElPTiBPTkUgTUFSSztObzswO0w7PHN1cGVyPiA0RTAwOzs7O047S0FFUklURU4gSVRJO0thZXJpdGVuOzs7CiszMTkzO0lERU9HUkFQSElDIEFOTk9UQVRJT04gVFdPIE1BUks7Tm87MDtMOzxzdXBlcj4gNEU4Qzs7OztOO0tBRVJJVEVOIE5JO0thZXJpdGVuOzs7CiszMTk0O0lERU9HUkFQSElDIEFOTk9UQVRJT04gVEhSRUUgTUFSSztObzswO0w7PHN1cGVyPiA0RTA5Ozs7O047S0FFUklURU4gU0FOO0thZXJpdGVuOzs7CiszMTk1O0lERU9HUkFQSElDIEFOTk9UQVRJT04gRk9VUiBNQVJLO05vOzA7TDs8c3VwZXI+IDU2REI7Ozs7TjtLQUVSSVRFTiBTSTtLYWVyaXRlbjs7OworMzE5NjtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIFRPUCBNQVJLO1NvOzA7TDs8c3VwZXI+IDRFMEE7Ozs7TjtLQUVSSVRFTiBaWU9VO0thZXJpdGVuOzs7CiszMTk3O0lERU9HUkFQSElDIEFOTk9UQVRJT04gTUlERExFIE1BUks7U287MDtMOzxzdXBlcj4gNEUyRDs7OztOO0tBRVJJVEVOIFRZVVU7S2Flcml0ZW47OzsKKzMxOTg7SURFT0dSQVBISUMgQU5OT1RBVElPTiBCT1RUT00gTUFSSztTbzswO0w7PHN1cGVyPiA0RTBCOzs7O047S0FFUklURU4gR0U7S2Flcml0ZW47OzsKKzMxOTk7SURFT0dSQVBISUMgQU5OT1RBVElPTiBGSVJTVCBNQVJLO1NvOzA7TDs8c3VwZXI+IDc1MzI7Ozs7TjtLQUVSSVRFTiBLT1U7S2Flcml0ZW47OzsKKzMxOUE7SURFT0dSQVBISUMgQU5OT1RBVElPTiBTRUNPTkQgTUFSSztTbzswO0w7PHN1cGVyPiA0RTU5Ozs7O047S0FFUklURU4gT1RVO0thZXJpdGVuOzs7CiszMTlCO0lERU9HUkFQSElDIEFOTk9UQVRJT04gVEhJUkQgTUFSSztTbzswO0w7PHN1cGVyPiA0RTE5Ozs7O047S0FFUklURU4gSEVJO0thZXJpdGVuOzs7CiszMTlDO0lERU9HUkFQSElDIEFOTk9UQVRJT04gRk9VUlRIIE1BUks7U287MDtMOzxzdXBlcj4gNEUwMTs7OztOO0tBRVJJVEVOIFRFSTtLYWVyaXRlbjs7OworMzE5RDtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIEhFQVZFTiBNQVJLO1NvOzA7TDs8c3VwZXI+IDU5Mjk7Ozs7TjtLQUVSSVRFTiBURU47S2Flcml0ZW47OzsKKzMxOUU7SURFT0dSQVBISUMgQU5OT1RBVElPTiBFQVJUSCBNQVJLO1NvOzA7TDs8c3VwZXI+IDU3MzA7Ozs7TjtLQUVSSVRFTiBUSTtLYWVyaXRlbjs7OworMzE5RjtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIE1BTiBNQVJLO1NvOzA7TDs8c3VwZXI+IDRFQkE7Ozs7TjtLQUVSSVRFTiBaSU47S2Flcml0ZW47OzsKKzMyMDA7UEFSRU5USEVTSVpFRCBIQU5HVUwgS0lZRU9LO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDAgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIEdJWUVPRzs7OzsKKzMyMDE7UEFSRU5USEVTSVpFRCBIQU5HVUwgTklFVU47U287MDtMOzxjb21wYXQ+IDAwMjggMTEwMiAwMDI5Ozs7O047Ozs7OworMzIwMjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBUSUtFVVQ7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwMyAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgRElHRVVEOzs7OworMzIwMztQQVJFTlRIRVNJWkVEIEhBTkdVTCBSSUVVTDtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTA1IDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBMSUVVTDs7OzsKKzMyMDQ7UEFSRU5USEVTSVpFRCBIQU5HVUwgTUlFVU07U287MDtMOzxjb21wYXQ+IDAwMjggMTEwNiAwMDI5Ozs7O047Ozs7OworMzIwNTtQQVJFTlRIRVNJWkVEIEhBTkdVTCBQSUVVUDtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTA3IDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBCSUVVQjs7OzsKKzMyMDY7UEFSRU5USEVTSVpFRCBIQU5HVUwgU0lPUztTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTA5IDAwMjk7Ozs7Tjs7Ozs7CiszMjA3O1BBUkVOVEhFU0laRUQgSEFOR1VMIElFVU5HO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMEIgMDAyOTs7OztOOzs7OzsKKzMyMDg7UEFSRU5USEVTSVpFRCBIQU5HVUwgQ0lFVUM7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwQyAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgSklFVUo7Ozs7CiszMjA5O1BBUkVOVEhFU0laRUQgSEFOR1VMIENISUVVQ0g7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwRSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgQ0lFVUM7Ozs7CiszMjBBO1BBUkVOVEhFU0laRUQgSEFOR1VMIEtISUVVS0g7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwRiAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgS0lZRU9LOzs7OworMzIwQjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBUSElFVVRIO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMTAgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIFRJRVVUOzs7OworMzIwQztQQVJFTlRIRVNJWkVEIEhBTkdVTCBQSElFVVBIO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMTEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIFBJRVVQOzs7OworMzIwRDtQQVJFTlRIRVNJWkVEIEhBTkdVTCBISUVVSDtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTEyIDAwMjk7Ozs7Tjs7Ozs7CiszMjBFO1BBUkVOVEhFU0laRUQgSEFOR1VMIEtJWUVPSyBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDAgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgR0E7Ozs7CiszMjBGO1BBUkVOVEhFU0laRUQgSEFOR1VMIE5JRVVOIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwMiAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBOQTs7OzsKKzMyMTA7UEFSRU5USEVTSVpFRCBIQU5HVUwgVElLRVVUIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwMyAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBEQTs7OzsKKzMyMTE7UEFSRU5USEVTSVpFRCBIQU5HVUwgUklFVUwgQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTA1IDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIExBOzs7OworMzIxMjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBNSUVVTSBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDYgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgTUE7Ozs7CiszMjEzO1BBUkVOVEhFU0laRUQgSEFOR1VMIFBJRVVQIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwNyAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBCQTs7OzsKKzMyMTQ7UEFSRU5USEVTSVpFRCBIQU5HVUwgU0lPUyBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDkgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgU0E7Ozs7CiszMjE1O1BBUkVOVEhFU0laRUQgSEFOR1VMIElFVU5HIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwQiAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBBOzs7OworMzIxNjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBDSUVVQyBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMEMgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgSkE7Ozs7CiszMjE3O1BBUkVOVEhFU0laRUQgSEFOR1VMIENISUVVQ0ggQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTBFIDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIENBOzs7OworMzIxODtQQVJFTlRIRVNJWkVEIEhBTkdVTCBLSElFVUtIIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwRiAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBLQTs7OzsKKzMyMTk7UEFSRU5USEVTSVpFRCBIQU5HVUwgVEhJRVVUSCBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMTAgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgVEE7Ozs7CiszMjFBO1BBUkVOVEhFU0laRUQgSEFOR1VMIFBISUVVUEggQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTExIDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIFBBOzs7OworMzIxQjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBISUVVSCBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMTIgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgSEE7Ozs7CiszMjFDO1BBUkVOVEhFU0laRUQgSEFOR1VMIENJRVVDIFU7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwQyAxMTZFIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBKVTs7OzsKKzMyMjA7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggT05FO05vOzA7TDs8Y29tcGF0PiAwMDI4IDRFMDAgMDAyOTs7OztOOzs7OzsKKzMyMjE7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggVFdPO05vOzA7TDs8Y29tcGF0PiAwMDI4IDRFOEMgMDAyOTs7OztOOzs7OzsKKzMyMjI7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggVEhSRUU7Tm87MDtMOzxjb21wYXQ+IDAwMjggNEUwOSAwMDI5Ozs7O047Ozs7OworMzIyMztQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBGT1VSO05vOzA7TDs8Y29tcGF0PiAwMDI4IDU2REIgMDAyOTs7OztOOzs7OzsKKzMyMjQ7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggRklWRTtObzswO0w7PGNvbXBhdD4gMDAyOCA0RTk0IDAwMjk7Ozs7Tjs7Ozs7CiszMjI1O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFNJWDtObzswO0w7PGNvbXBhdD4gMDAyOCA1MTZEIDAwMjk7Ozs7Tjs7Ozs7CiszMjI2O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFNFVkVOO05vOzA7TDs8Y29tcGF0PiAwMDI4IDRFMDMgMDAyOTs7OztOOzs7OzsKKzMyMjc7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggRUlHSFQ7Tm87MDtMOzxjb21wYXQ+IDAwMjggNTE2QiAwMDI5Ozs7O047Ozs7OworMzIyODtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBOSU5FO05vOzA7TDs8Y29tcGF0PiAwMDI4IDRFNUQgMDAyOTs7OztOOzs7OzsKKzMyMjk7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggVEVOO05vOzA7TDs8Y29tcGF0PiAwMDI4IDUzNDEgMDAyOTs7OztOOzs7OzsKKzMyMkE7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggTU9PTjtTbzswO0w7PGNvbXBhdD4gMDAyOCA2NzA4IDAwMjk7Ozs7Tjs7Ozs7CiszMjJCO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIEZJUkU7U287MDtMOzxjb21wYXQ+IDAwMjggNzA2QiAwMDI5Ozs7O047Ozs7OworMzIyQztQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBXQVRFUjtTbzswO0w7PGNvbXBhdD4gMDAyOCA2QzM0IDAwMjk7Ozs7Tjs7Ozs7CiszMjJEO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFdPT0Q7U287MDtMOzxjb21wYXQ+IDAwMjggNjcyOCAwMDI5Ozs7O047Ozs7OworMzIyRTtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBNRVRBTDtTbzswO0w7PGNvbXBhdD4gMDAyOCA5MUQxIDAwMjk7Ozs7Tjs7Ozs7CiszMjJGO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIEVBUlRIO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDU3MUYgMDAyOTs7OztOOzs7OzsKKzMyMzA7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggU1VOO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDY1RTUgMDAyOTs7OztOOzs7OzsKKzMyMzE7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggU1RPQ0s7U287MDtMOzxjb21wYXQ+IDAwMjggNjgyQSAwMDI5Ozs7O047Ozs7OworMzIzMjtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBIQVZFO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDY3MDkgMDAyOTs7OztOOzs7OzsKKzMyMzM7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggU09DSUVUWTtTbzswO0w7PGNvbXBhdD4gMDAyOCA3OTNFIDAwMjk7Ozs7Tjs7Ozs7CiszMjM0O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIE5BTUU7U287MDtMOzxjb21wYXQ+IDAwMjggNTQwRCAwMDI5Ozs7O047Ozs7OworMzIzNTtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBTUEVDSUFMO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDcyNzkgMDAyOTs7OztOOzs7OzsKKzMyMzY7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggRklOQU5DSUFMO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDhDQTEgMDAyOTs7OztOOzs7OzsKKzMyMzc7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggQ09OR1JBVFVMQVRJT047U287MDtMOzxjb21wYXQ+IDAwMjggNzk1RCAwMDI5Ozs7O047Ozs7OworMzIzODtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBMQUJPUjtTbzswO0w7PGNvbXBhdD4gMDAyOCA1MkI0IDAwMjk7Ozs7Tjs7Ozs7CiszMjM5O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFJFUFJFU0VOVDtTbzswO0w7PGNvbXBhdD4gMDAyOCA0RUUzIDAwMjk7Ozs7Tjs7Ozs7CiszMjNBO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIENBTEw7U287MDtMOzxjb21wYXQ+IDAwMjggNTQ3QyAwMDI5Ozs7O047Ozs7OworMzIzQjtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBTVFVEWTtTbzswO0w7PGNvbXBhdD4gMDAyOCA1QjY2IDAwMjk7Ozs7Tjs7Ozs7CiszMjNDO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFNVUEVSVklTRTtTbzswO0w7PGNvbXBhdD4gMDAyOCA3NkUzIDAwMjk7Ozs7Tjs7Ozs7CiszMjNEO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIEVOVEVSUFJJU0U7U287MDtMOzxjb21wYXQ+IDAwMjggNEYwMSAwMDI5Ozs7O047Ozs7OworMzIzRTtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBSRVNPVVJDRTtTbzswO0w7PGNvbXBhdD4gMDAyOCA4Q0M3IDAwMjk7Ozs7Tjs7Ozs7CiszMjNGO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIEFMTElBTkNFO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDUzNTQgMDAyOTs7OztOOzs7OzsKKzMyNDA7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggRkVTVElWQUw7U287MDtMOzxjb21wYXQ+IDAwMjggNzk2RCAwMDI5Ozs7O047Ozs7OworMzI0MTtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBSRVNUO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDRGMTEgMDAyOTs7OztOOzs7OzsKKzMyNDI7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggU0VMRjtTbzswO0w7PGNvbXBhdD4gMDAyOCA4MUVBIDAwMjk7Ozs7Tjs7Ozs7CiszMjQzO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFJFQUNIO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDgxRjMgMDAyOTs7OztOOzs7OzsKKzMyNjA7Q0lSQ0xFRCBIQU5HVUwgS0lZRU9LO1NvOzA7TDs8Y2lyY2xlPiAxMTAwOzs7O047Q0lSQ0xFRCBIQU5HVUwgR0lZRU9HOzs7OworMzI2MTtDSVJDTEVEIEhBTkdVTCBOSUVVTjtTbzswO0w7PGNpcmNsZT4gMTEwMjs7OztOOzs7OzsKKzMyNjI7Q0lSQ0xFRCBIQU5HVUwgVElLRVVUO1NvOzA7TDs8Y2lyY2xlPiAxMTAzOzs7O047Q0lSQ0xFRCBIQU5HVUwgRElHRVVEOzs7OworMzI2MztDSVJDTEVEIEhBTkdVTCBSSUVVTDtTbzswO0w7PGNpcmNsZT4gMTEwNTs7OztOO0NJUkNMRUQgSEFOR1VMIExJRVVMOzs7OworMzI2NDtDSVJDTEVEIEhBTkdVTCBNSUVVTTtTbzswO0w7PGNpcmNsZT4gMTEwNjs7OztOOzs7OzsKKzMyNjU7Q0lSQ0xFRCBIQU5HVUwgUElFVVA7U287MDtMOzxjaXJjbGU+IDExMDc7Ozs7TjtDSVJDTEVEIEhBTkdVTCBCSUVVQjs7OzsKKzMyNjY7Q0lSQ0xFRCBIQU5HVUwgU0lPUztTbzswO0w7PGNpcmNsZT4gMTEwOTs7OztOOzs7OzsKKzMyNjc7Q0lSQ0xFRCBIQU5HVUwgSUVVTkc7U287MDtMOzxjaXJjbGU+IDExMEI7Ozs7Tjs7Ozs7CiszMjY4O0NJUkNMRUQgSEFOR1VMIENJRVVDO1NvOzA7TDs8Y2lyY2xlPiAxMTBDOzs7O047Q0lSQ0xFRCBIQU5HVUwgSklFVUo7Ozs7CiszMjY5O0NJUkNMRUQgSEFOR1VMIENISUVVQ0g7U287MDtMOzxjaXJjbGU+IDExMEU7Ozs7TjtDSVJDTEVEIEhBTkdVTCBDSUVVQzs7OzsKKzMyNkE7Q0lSQ0xFRCBIQU5HVUwgS0hJRVVLSDtTbzswO0w7PGNpcmNsZT4gMTEwRjs7OztOO0NJUkNMRUQgSEFOR1VMIEtJWUVPSzs7OzsKKzMyNkI7Q0lSQ0xFRCBIQU5HVUwgVEhJRVVUSDtTbzswO0w7PGNpcmNsZT4gMTExMDs7OztOO0NJUkNMRUQgSEFOR1VMIFRJRVVUOzs7OworMzI2QztDSVJDTEVEIEhBTkdVTCBQSElFVVBIO1NvOzA7TDs8Y2lyY2xlPiAxMTExOzs7O047Q0lSQ0xFRCBIQU5HVUwgUElFVVA7Ozs7CiszMjZEO0NJUkNMRUQgSEFOR1VMIEhJRVVIO1NvOzA7TDs8Y2lyY2xlPiAxMTEyOzs7O047Ozs7OworMzI2RTtDSVJDTEVEIEhBTkdVTCBLSVlFT0sgQTtTbzswO0w7PGNpcmNsZT4gMTEwMCAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgR0E7Ozs7CiszMjZGO0NJUkNMRUQgSEFOR1VMIE5JRVVOIEE7U287MDtMOzxjaXJjbGU+IDExMDIgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIE5BOzs7OworMzI3MDtDSVJDTEVEIEhBTkdVTCBUSUtFVVQgQTtTbzswO0w7PGNpcmNsZT4gMTEwMyAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgREE7Ozs7CiszMjcxO0NJUkNMRUQgSEFOR1VMIFJJRVVMIEE7U287MDtMOzxjaXJjbGU+IDExMDUgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIExBOzs7OworMzI3MjtDSVJDTEVEIEhBTkdVTCBNSUVVTSBBO1NvOzA7TDs8Y2lyY2xlPiAxMTA2IDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBNQTs7OzsKKzMyNzM7Q0lSQ0xFRCBIQU5HVUwgUElFVVAgQTtTbzswO0w7PGNpcmNsZT4gMTEwNyAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgQkE7Ozs7CiszMjc0O0NJUkNMRUQgSEFOR1VMIFNJT1MgQTtTbzswO0w7PGNpcmNsZT4gMTEwOSAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgU0E7Ozs7CiszMjc1O0NJUkNMRUQgSEFOR1VMIElFVU5HIEE7U287MDtMOzxjaXJjbGU+IDExMEIgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIEE7Ozs7CiszMjc2O0NJUkNMRUQgSEFOR1VMIENJRVVDIEE7U287MDtMOzxjaXJjbGU+IDExMEMgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIEpBOzs7OworMzI3NztDSVJDTEVEIEhBTkdVTCBDSElFVUNIIEE7U287MDtMOzxjaXJjbGU+IDExMEUgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIENBOzs7OworMzI3ODtDSVJDTEVEIEhBTkdVTCBLSElFVUtIIEE7U287MDtMOzxjaXJjbGU+IDExMEYgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIEtBOzs7OworMzI3OTtDSVJDTEVEIEhBTkdVTCBUSElFVVRIIEE7U287MDtMOzxjaXJjbGU+IDExMTAgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIFRBOzs7OworMzI3QTtDSVJDTEVEIEhBTkdVTCBQSElFVVBIIEE7U287MDtMOzxjaXJjbGU+IDExMTEgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIFBBOzs7OworMzI3QjtDSVJDTEVEIEhBTkdVTCBISUVVSCBBO1NvOzA7TDs8Y2lyY2xlPiAxMTEyIDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBIQTs7OzsKKzMyN0Y7S09SRUFOIFNUQU5EQVJEIFNZTUJPTDtTbzswO0w7Ozs7O047Ozs7OworMzI4MDtDSVJDTEVEIElERU9HUkFQSCBPTkU7Tm87MDtMOzxjaXJjbGU+IDRFMDA7OzsxO047Ozs7OworMzI4MTtDSVJDTEVEIElERU9HUkFQSCBUV087Tm87MDtMOzxjaXJjbGU+IDRFOEM7OzsyO047Ozs7OworMzI4MjtDSVJDTEVEIElERU9HUkFQSCBUSFJFRTtObzswO0w7PGNpcmNsZT4gNEUwOTs7OzM7Tjs7Ozs7CiszMjgzO0NJUkNMRUQgSURFT0dSQVBIIEZPVVI7Tm87MDtMOzxjaXJjbGU+IDU2REI7Ozs0O047Ozs7OworMzI4NDtDSVJDTEVEIElERU9HUkFQSCBGSVZFO05vOzA7TDs8Y2lyY2xlPiA0RTk0Ozs7NTtOOzs7OzsKKzMyODU7Q0lSQ0xFRCBJREVPR1JBUEggU0lYO05vOzA7TDs8Y2lyY2xlPiA1MTZEOzs7NjtOOzs7OzsKKzMyODY7Q0lSQ0xFRCBJREVPR1JBUEggU0VWRU47Tm87MDtMOzxjaXJjbGU+IDRFMDM7Ozs3O047Ozs7OworMzI4NztDSVJDTEVEIElERU9HUkFQSCBFSUdIVDtObzswO0w7PGNpcmNsZT4gNTE2Qjs7Ozg7Tjs7Ozs7CiszMjg4O0NJUkNMRUQgSURFT0dSQVBIIE5JTkU7Tm87MDtMOzxjaXJjbGU+IDRFNUQ7Ozs5O047Ozs7OworMzI4OTtDSVJDTEVEIElERU9HUkFQSCBURU47Tm87MDtMOzxjaXJjbGU+IDUzNDE7OzsxMDtOOzs7OzsKKzMyOEE7Q0lSQ0xFRCBJREVPR1JBUEggTU9PTjtTbzswO0w7PGNpcmNsZT4gNjcwODs7OztOOzs7OzsKKzMyOEI7Q0lSQ0xFRCBJREVPR1JBUEggRklSRTtTbzswO0w7PGNpcmNsZT4gNzA2Qjs7OztOOzs7OzsKKzMyOEM7Q0lSQ0xFRCBJREVPR1JBUEggV0FURVI7U287MDtMOzxjaXJjbGU+IDZDMzQ7Ozs7Tjs7Ozs7CiszMjhEO0NJUkNMRUQgSURFT0dSQVBIIFdPT0Q7U287MDtMOzxjaXJjbGU+IDY3Mjg7Ozs7Tjs7Ozs7CiszMjhFO0NJUkNMRUQgSURFT0dSQVBIIE1FVEFMO1NvOzA7TDs8Y2lyY2xlPiA5MUQxOzs7O047Ozs7OworMzI4RjtDSVJDTEVEIElERU9HUkFQSCBFQVJUSDtTbzswO0w7PGNpcmNsZT4gNTcxRjs7OztOOzs7OzsKKzMyOTA7Q0lSQ0xFRCBJREVPR1JBUEggU1VOO1NvOzA7TDs8Y2lyY2xlPiA2NUU1Ozs7O047Ozs7OworMzI5MTtDSVJDTEVEIElERU9HUkFQSCBTVE9DSztTbzswO0w7PGNpcmNsZT4gNjgyQTs7OztOOzs7OzsKKzMyOTI7Q0lSQ0xFRCBJREVPR1JBUEggSEFWRTtTbzswO0w7PGNpcmNsZT4gNjcwOTs7OztOOzs7OzsKKzMyOTM7Q0lSQ0xFRCBJREVPR1JBUEggU09DSUVUWTtTbzswO0w7PGNpcmNsZT4gNzkzRTs7OztOOzs7OzsKKzMyOTQ7Q0lSQ0xFRCBJREVPR1JBUEggTkFNRTtTbzswO0w7PGNpcmNsZT4gNTQwRDs7OztOOzs7OzsKKzMyOTU7Q0lSQ0xFRCBJREVPR1JBUEggU1BFQ0lBTDtTbzswO0w7PGNpcmNsZT4gNzI3OTs7OztOOzs7OzsKKzMyOTY7Q0lSQ0xFRCBJREVPR1JBUEggRklOQU5DSUFMO1NvOzA7TDs8Y2lyY2xlPiA4Q0ExOzs7O047Ozs7OworMzI5NztDSVJDTEVEIElERU9HUkFQSCBDT05HUkFUVUxBVElPTjtTbzswO0w7PGNpcmNsZT4gNzk1RDs7OztOOzs7OzsKKzMyOTg7Q0lSQ0xFRCBJREVPR1JBUEggTEFCT1I7U287MDtMOzxjaXJjbGU+IDUyQjQ7Ozs7Tjs7Ozs7CiszMjk5O0NJUkNMRUQgSURFT0dSQVBIIFNFQ1JFVDtTbzswO0w7PGNpcmNsZT4gNzlEODs7OztOOzs7OzsKKzMyOUE7Q0lSQ0xFRCBJREVPR1JBUEggTUFMRTtTbzswO0w7PGNpcmNsZT4gNzUzNzs7OztOOzs7OzsKKzMyOUI7Q0lSQ0xFRCBJREVPR1JBUEggRkVNQUxFO1NvOzA7TDs8Y2lyY2xlPiA1OTczOzs7O047Ozs7OworMzI5QztDSVJDTEVEIElERU9HUkFQSCBTVUlUQUJMRTtTbzswO0w7PGNpcmNsZT4gOTA2OTs7OztOOzs7OzsKKzMyOUQ7Q0lSQ0xFRCBJREVPR1JBUEggRVhDRUxMRU5UO1NvOzA7TDs8Y2lyY2xlPiA1MTJBOzs7O047Ozs7OworMzI5RTtDSVJDTEVEIElERU9HUkFQSCBQUklOVDtTbzswO0w7PGNpcmNsZT4gNTM3MDs7OztOOzs7OzsKKzMyOUY7Q0lSQ0xFRCBJREVPR1JBUEggQVRURU5USU9OO1NvOzA7TDs8Y2lyY2xlPiA2Q0U4Ozs7O047Ozs7OworMzJBMDtDSVJDTEVEIElERU9HUkFQSCBJVEVNO1NvOzA7TDs8Y2lyY2xlPiA5ODA1Ozs7O047Ozs7OworMzJBMTtDSVJDTEVEIElERU9HUkFQSCBSRVNUO1NvOzA7TDs8Y2lyY2xlPiA0RjExOzs7O047Ozs7OworMzJBMjtDSVJDTEVEIElERU9HUkFQSCBDT1BZO1NvOzA7TDs8Y2lyY2xlPiA1MTk5Ozs7O047Ozs7OworMzJBMztDSVJDTEVEIElERU9HUkFQSCBDT1JSRUNUO1NvOzA7TDs8Y2lyY2xlPiA2QjYzOzs7O047Ozs7OworMzJBNDtDSVJDTEVEIElERU9HUkFQSCBISUdIO1NvOzA7TDs8Y2lyY2xlPiA0RTBBOzs7O047Ozs7OworMzJBNTtDSVJDTEVEIElERU9HUkFQSCBDRU5UUkU7U287MDtMOzxjaXJjbGU+IDRFMkQ7Ozs7TjtDSVJDTEVEIElERU9HUkFQSCBDRU5URVI7Ozs7CiszMkE2O0NJUkNMRUQgSURFT0dSQVBIIExPVztTbzswO0w7PGNpcmNsZT4gNEUwQjs7OztOOzs7OzsKKzMyQTc7Q0lSQ0xFRCBJREVPR1JBUEggTEVGVDtTbzswO0w7PGNpcmNsZT4gNURFNjs7OztOOzs7OzsKKzMyQTg7Q0lSQ0xFRCBJREVPR1JBUEggUklHSFQ7U287MDtMOzxjaXJjbGU+IDUzRjM7Ozs7Tjs7Ozs7CiszMkE5O0NJUkNMRUQgSURFT0dSQVBIIE1FRElDSU5FO1NvOzA7TDs8Y2lyY2xlPiA1MzNCOzs7O047Ozs7OworMzJBQTtDSVJDTEVEIElERU9HUkFQSCBSRUxJR0lPTjtTbzswO0w7PGNpcmNsZT4gNUI5Nzs7OztOOzs7OzsKKzMyQUI7Q0lSQ0xFRCBJREVPR1JBUEggU1RVRFk7U287MDtMOzxjaXJjbGU+IDVCNjY7Ozs7Tjs7Ozs7CiszMkFDO0NJUkNMRUQgSURFT0dSQVBIIFNVUEVSVklTRTtTbzswO0w7PGNpcmNsZT4gNzZFMzs7OztOOzs7OzsKKzMyQUQ7Q0lSQ0xFRCBJREVPR1JBUEggRU5URVJQUklTRTtTbzswO0w7PGNpcmNsZT4gNEYwMTs7OztOOzs7OzsKKzMyQUU7Q0lSQ0xFRCBJREVPR1JBUEggUkVTT1VSQ0U7U287MDtMOzxjaXJjbGU+IDhDQzc7Ozs7Tjs7Ozs7CiszMkFGO0NJUkNMRUQgSURFT0dSQVBIIEFMTElBTkNFO1NvOzA7TDs8Y2lyY2xlPiA1MzU0Ozs7O047Ozs7OworMzJCMDtDSVJDTEVEIElERU9HUkFQSCBOSUdIVDtTbzswO0w7PGNpcmNsZT4gNTkxQzs7OztOOzs7OzsKKzMyQzA7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSkFOVUFSWTtTbzswO0w7PGNvbXBhdD4gMDAzMSA2NzA4Ozs7O047Ozs7OworMzJDMTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBGRUJSVUFSWTtTbzswO0w7PGNvbXBhdD4gMDAzMiA2NzA4Ozs7O047Ozs7OworMzJDMjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBNQVJDSDtTbzswO0w7PGNvbXBhdD4gMDAzMyA2NzA4Ozs7O047Ozs7OworMzJDMztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBBUFJJTDtTbzswO0w7PGNvbXBhdD4gMDAzNCA2NzA4Ozs7O047Ozs7OworMzJDNDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBNQVk7U287MDtMOzxjb21wYXQ+IDAwMzUgNjcwODs7OztOOzs7OzsKKzMyQzU7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSlVORTtTbzswO0w7PGNvbXBhdD4gMDAzNiA2NzA4Ozs7O047Ozs7OworMzJDNjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBKVUxZO1NvOzA7TDs8Y29tcGF0PiAwMDM3IDY3MDg7Ozs7Tjs7Ozs7CiszMkM3O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEFVR1VTVDtTbzswO0w7PGNvbXBhdD4gMDAzOCA2NzA4Ozs7O047Ozs7OworMzJDODtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBTRVBURU1CRVI7U287MDtMOzxjb21wYXQ+IDAwMzkgNjcwODs7OztOOzs7OzsKKzMyQzk7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgT0NUT0JFUjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDMwIDY3MDg7Ozs7Tjs7Ozs7CiszMkNBO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIE5PVkVNQkVSO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzEgNjcwODs7OztOOzs7OzsKKzMyQ0I7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREVDRU1CRVI7U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzMiA2NzA4Ozs7O047Ozs7OworMzJEMDtDSVJDTEVEIEtBVEFLQU5BIEE7U287MDtMOzxjaXJjbGU+IDMwQTI7Ozs7Tjs7Ozs7CiszMkQxO0NJUkNMRUQgS0FUQUtBTkEgSTtTbzswO0w7PGNpcmNsZT4gMzBBNDs7OztOOzs7OzsKKzMyRDI7Q0lSQ0xFRCBLQVRBS0FOQSBVO1NvOzA7TDs8Y2lyY2xlPiAzMEE2Ozs7O047Ozs7OworMzJEMztDSVJDTEVEIEtBVEFLQU5BIEU7U287MDtMOzxjaXJjbGU+IDMwQTg7Ozs7Tjs7Ozs7CiszMkQ0O0NJUkNMRUQgS0FUQUtBTkEgTztTbzswO0w7PGNpcmNsZT4gMzBBQTs7OztOOzs7OzsKKzMyRDU7Q0lSQ0xFRCBLQVRBS0FOQSBLQTtTbzswO0w7PGNpcmNsZT4gMzBBQjs7OztOOzs7OzsKKzMyRDY7Q0lSQ0xFRCBLQVRBS0FOQSBLSTtTbzswO0w7PGNpcmNsZT4gMzBBRDs7OztOOzs7OzsKKzMyRDc7Q0lSQ0xFRCBLQVRBS0FOQSBLVTtTbzswO0w7PGNpcmNsZT4gMzBBRjs7OztOOzs7OzsKKzMyRDg7Q0lSQ0xFRCBLQVRBS0FOQSBLRTtTbzswO0w7PGNpcmNsZT4gMzBCMTs7OztOOzs7OzsKKzMyRDk7Q0lSQ0xFRCBLQVRBS0FOQSBLTztTbzswO0w7PGNpcmNsZT4gMzBCMzs7OztOOzs7OzsKKzMyREE7Q0lSQ0xFRCBLQVRBS0FOQSBTQTtTbzswO0w7PGNpcmNsZT4gMzBCNTs7OztOOzs7OzsKKzMyREI7Q0lSQ0xFRCBLQVRBS0FOQSBTSTtTbzswO0w7PGNpcmNsZT4gMzBCNzs7OztOOzs7OzsKKzMyREM7Q0lSQ0xFRCBLQVRBS0FOQSBTVTtTbzswO0w7PGNpcmNsZT4gMzBCOTs7OztOOzs7OzsKKzMyREQ7Q0lSQ0xFRCBLQVRBS0FOQSBTRTtTbzswO0w7PGNpcmNsZT4gMzBCQjs7OztOOzs7OzsKKzMyREU7Q0lSQ0xFRCBLQVRBS0FOQSBTTztTbzswO0w7PGNpcmNsZT4gMzBCRDs7OztOOzs7OzsKKzMyREY7Q0lSQ0xFRCBLQVRBS0FOQSBUQTtTbzswO0w7PGNpcmNsZT4gMzBCRjs7OztOOzs7OzsKKzMyRTA7Q0lSQ0xFRCBLQVRBS0FOQSBUSTtTbzswO0w7PGNpcmNsZT4gMzBDMTs7OztOOzs7OzsKKzMyRTE7Q0lSQ0xFRCBLQVRBS0FOQSBUVTtTbzswO0w7PGNpcmNsZT4gMzBDNDs7OztOOzs7OzsKKzMyRTI7Q0lSQ0xFRCBLQVRBS0FOQSBURTtTbzswO0w7PGNpcmNsZT4gMzBDNjs7OztOOzs7OzsKKzMyRTM7Q0lSQ0xFRCBLQVRBS0FOQSBUTztTbzswO0w7PGNpcmNsZT4gMzBDODs7OztOOzs7OzsKKzMyRTQ7Q0lSQ0xFRCBLQVRBS0FOQSBOQTtTbzswO0w7PGNpcmNsZT4gMzBDQTs7OztOOzs7OzsKKzMyRTU7Q0lSQ0xFRCBLQVRBS0FOQSBOSTtTbzswO0w7PGNpcmNsZT4gMzBDQjs7OztOOzs7OzsKKzMyRTY7Q0lSQ0xFRCBLQVRBS0FOQSBOVTtTbzswO0w7PGNpcmNsZT4gMzBDQzs7OztOOzs7OzsKKzMyRTc7Q0lSQ0xFRCBLQVRBS0FOQSBORTtTbzswO0w7PGNpcmNsZT4gMzBDRDs7OztOOzs7OzsKKzMyRTg7Q0lSQ0xFRCBLQVRBS0FOQSBOTztTbzswO0w7PGNpcmNsZT4gMzBDRTs7OztOOzs7OzsKKzMyRTk7Q0lSQ0xFRCBLQVRBS0FOQSBIQTtTbzswO0w7PGNpcmNsZT4gMzBDRjs7OztOOzs7OzsKKzMyRUE7Q0lSQ0xFRCBLQVRBS0FOQSBISTtTbzswO0w7PGNpcmNsZT4gMzBEMjs7OztOOzs7OzsKKzMyRUI7Q0lSQ0xFRCBLQVRBS0FOQSBIVTtTbzswO0w7PGNpcmNsZT4gMzBENTs7OztOOzs7OzsKKzMyRUM7Q0lSQ0xFRCBLQVRBS0FOQSBIRTtTbzswO0w7PGNpcmNsZT4gMzBEODs7OztOOzs7OzsKKzMyRUQ7Q0lSQ0xFRCBLQVRBS0FOQSBITztTbzswO0w7PGNpcmNsZT4gMzBEQjs7OztOOzs7OzsKKzMyRUU7Q0lSQ0xFRCBLQVRBS0FOQSBNQTtTbzswO0w7PGNpcmNsZT4gMzBERTs7OztOOzs7OzsKKzMyRUY7Q0lSQ0xFRCBLQVRBS0FOQSBNSTtTbzswO0w7PGNpcmNsZT4gMzBERjs7OztOOzs7OzsKKzMyRjA7Q0lSQ0xFRCBLQVRBS0FOQSBNVTtTbzswO0w7PGNpcmNsZT4gMzBFMDs7OztOOzs7OzsKKzMyRjE7Q0lSQ0xFRCBLQVRBS0FOQSBNRTtTbzswO0w7PGNpcmNsZT4gMzBFMTs7OztOOzs7OzsKKzMyRjI7Q0lSQ0xFRCBLQVRBS0FOQSBNTztTbzswO0w7PGNpcmNsZT4gMzBFMjs7OztOOzs7OzsKKzMyRjM7Q0lSQ0xFRCBLQVRBS0FOQSBZQTtTbzswO0w7PGNpcmNsZT4gMzBFNDs7OztOOzs7OzsKKzMyRjQ7Q0lSQ0xFRCBLQVRBS0FOQSBZVTtTbzswO0w7PGNpcmNsZT4gMzBFNjs7OztOOzs7OzsKKzMyRjU7Q0lSQ0xFRCBLQVRBS0FOQSBZTztTbzswO0w7PGNpcmNsZT4gMzBFODs7OztOOzs7OzsKKzMyRjY7Q0lSQ0xFRCBLQVRBS0FOQSBSQTtTbzswO0w7PGNpcmNsZT4gMzBFOTs7OztOOzs7OzsKKzMyRjc7Q0lSQ0xFRCBLQVRBS0FOQSBSSTtTbzswO0w7PGNpcmNsZT4gMzBFQTs7OztOOzs7OzsKKzMyRjg7Q0lSQ0xFRCBLQVRBS0FOQSBSVTtTbzswO0w7PGNpcmNsZT4gMzBFQjs7OztOOzs7OzsKKzMyRjk7Q0lSQ0xFRCBLQVRBS0FOQSBSRTtTbzswO0w7PGNpcmNsZT4gMzBFQzs7OztOOzs7OzsKKzMyRkE7Q0lSQ0xFRCBLQVRBS0FOQSBSTztTbzswO0w7PGNpcmNsZT4gMzBFRDs7OztOOzs7OzsKKzMyRkI7Q0lSQ0xFRCBLQVRBS0FOQSBXQTtTbzswO0w7PGNpcmNsZT4gMzBFRjs7OztOOzs7OzsKKzMyRkM7Q0lSQ0xFRCBLQVRBS0FOQSBXSTtTbzswO0w7PGNpcmNsZT4gMzBGMDs7OztOOzs7OzsKKzMyRkQ7Q0lSQ0xFRCBLQVRBS0FOQSBXRTtTbzswO0w7PGNpcmNsZT4gMzBGMTs7OztOOzs7OzsKKzMyRkU7Q0lSQ0xFRCBLQVRBS0FOQSBXTztTbzswO0w7PGNpcmNsZT4gMzBGMjs7OztOOzs7OzsKKzMzMDA7U1FVQVJFIEFQQUFUTztTbzswO0w7PHNxdWFyZT4gMzBBMiAzMEQxIDMwRkMgMzBDODs7OztOO1NRVUFSRUQgQVBBQVRPOzs7OworMzMwMTtTUVVBUkUgQVJVSFVBO1NvOzA7TDs8c3F1YXJlPiAzMEEyIDMwRUIgMzBENSAzMEExOzs7O047U1FVQVJFRCBBUlVIVUE7Ozs7CiszMzAyO1NRVUFSRSBBTlBFQTtTbzswO0w7PHNxdWFyZT4gMzBBMiAzMEYzIDMwREEgMzBBMjs7OztOO1NRVUFSRUQgQU5QRUE7Ozs7CiszMzAzO1NRVUFSRSBBQVJVO1NvOzA7TDs8c3F1YXJlPiAzMEEyIDMwRkMgMzBFQjs7OztOO1NRVUFSRUQgQUFSVTs7OzsKKzMzMDQ7U1FVQVJFIElOSU5HVTtTbzswO0w7PHNxdWFyZT4gMzBBNCAzMENCIDMwRjMgMzBCMDs7OztOO1NRVUFSRUQgSU5JTkdVOzs7OworMzMwNTtTUVVBUkUgSU5USTtTbzswO0w7PHNxdWFyZT4gMzBBNCAzMEYzIDMwQzE7Ozs7TjtTUVVBUkVEIElOVEk7Ozs7CiszMzA2O1NRVUFSRSBVT047U287MDtMOzxzcXVhcmU+IDMwQTYgMzBBOSAzMEYzOzs7O047U1FVQVJFRCBVT047Ozs7CiszMzA3O1NRVUFSRSBFU1VLVVVETztTbzswO0w7PHNxdWFyZT4gMzBBOCAzMEI5IDMwQUYgMzBGQyAzMEM5Ozs7O047U1FVQVJFRCBFU1VLVVVETzs7OzsKKzMzMDg7U1FVQVJFIEVFS0FBO1NvOzA7TDs8c3F1YXJlPiAzMEE4IDMwRkMgMzBBQiAzMEZDOzs7O047U1FVQVJFRCBFRUtBQTs7OzsKKzMzMDk7U1FVQVJFIE9OU1U7U287MDtMOzxzcXVhcmU+IDMwQUEgMzBGMyAzMEI5Ozs7O047U1FVQVJFRCBPTlNVOzs7OworMzMwQTtTUVVBUkUgT09NVTtTbzswO0w7PHNxdWFyZT4gMzBBQSAzMEZDIDMwRTA7Ozs7TjtTUVVBUkVEIE9PTVU7Ozs7CiszMzBCO1NRVUFSRSBLQUlSSTtTbzswO0w7PHNxdWFyZT4gMzBBQiAzMEE0IDMwRUE7Ozs7TjtTUVVBUkVEIEtBSVJJOzs7OworMzMwQztTUVVBUkUgS0FSQVRUTztTbzswO0w7PHNxdWFyZT4gMzBBQiAzMEU5IDMwQzMgMzBDODs7OztOO1NRVUFSRUQgS0FSQVRUTzs7OzsKKzMzMEQ7U1FVQVJFIEtBUk9SSUk7U287MDtMOzxzcXVhcmU+IDMwQUIgMzBFRCAzMEVBIDMwRkM7Ozs7TjtTUVVBUkVEIEtBUk9SSUk7Ozs7CiszMzBFO1NRVUFSRSBHQVJPTjtTbzswO0w7PHNxdWFyZT4gMzBBQyAzMEVEIDMwRjM7Ozs7TjtTUVVBUkVEIEdBUk9OOzs7OworMzMwRjtTUVVBUkUgR0FOTUE7U287MDtMOzxzcXVhcmU+IDMwQUMgMzBGMyAzMERFOzs7O047U1FVQVJFRCBHQU5NQTs7OzsKKzMzMTA7U1FVQVJFIEdJR0E7U287MDtMOzxzcXVhcmU+IDMwQUUgMzBBQzs7OztOO1NRVUFSRUQgR0lHQTs7OzsKKzMzMTE7U1FVQVJFIEdJTklJO1NvOzA7TDs8c3F1YXJlPiAzMEFFIDMwQ0IgMzBGQzs7OztOO1NRVUFSRUQgR0lOSUk7Ozs7CiszMzEyO1NRVUFSRSBLWVVSSUk7U287MDtMOzxzcXVhcmU+IDMwQUQgMzBFNSAzMEVBIDMwRkM7Ozs7TjtTUVVBUkVEIEtZVVJJSTs7OzsKKzMzMTM7U1FVQVJFIEdJUlVEQUE7U287MDtMOzxzcXVhcmU+IDMwQUUgMzBFQiAzMEMwIDMwRkM7Ozs7TjtTUVVBUkVEIEdJUlVEQUE7Ozs7CiszMzE0O1NRVUFSRSBLSVJPO1NvOzA7TDs8c3F1YXJlPiAzMEFEIDMwRUQ7Ozs7TjtTUVVBUkVEIEtJUk87Ozs7CiszMzE1O1NRVUFSRSBLSVJPR1VSQU1VO1NvOzA7TDs8c3F1YXJlPiAzMEFEIDMwRUQgMzBCMCAzMEU5IDMwRTA7Ozs7TjtTUVVBUkVEIEtJUk9HVVJBTVU7Ozs7CiszMzE2O1NRVUFSRSBLSVJPTUVFVE9SVTtTbzswO0w7PHNxdWFyZT4gMzBBRCAzMEVEIDMwRTEgMzBGQyAzMEM4IDMwRUI7Ozs7TjtTUVVBUkVEIEtJUk9NRUVUT1JVOzs7OworMzMxNztTUVVBUkUgS0lST1dBVFRPO1NvOzA7TDs8c3F1YXJlPiAzMEFEIDMwRUQgMzBFRiAzMEMzIDMwQzg7Ozs7TjtTUVVBUkVEIEtJUk9XQVRUTzs7OzsKKzMzMTg7U1FVQVJFIEdVUkFNVTtTbzswO0w7PHNxdWFyZT4gMzBCMCAzMEU5IDMwRTA7Ozs7TjtTUVVBUkVEIEdVUkFNVTs7OzsKKzMzMTk7U1FVQVJFIEdVUkFNVVRPTjtTbzswO0w7PHNxdWFyZT4gMzBCMCAzMEU5IDMwRTAgMzBDOCAzMEYzOzs7O047U1FVQVJFRCBHVVJBTVVUT047Ozs7CiszMzFBO1NRVUFSRSBLVVJVWkVJUk87U287MDtMOzxzcXVhcmU+IDMwQUYgMzBFQiAzMEJDIDMwQTQgMzBFRDs7OztOO1NRVUFSRUQgS1VSVVpFSVJPOzs7OworMzMxQjtTUVVBUkUgS1VST09ORTtTbzswO0w7PHNxdWFyZT4gMzBBRiAzMEVEIDMwRkMgMzBDRDs7OztOO1NRVUFSRUQgS1VST09ORTs7OzsKKzMzMUM7U1FVQVJFIEtFRVNVO1NvOzA7TDs8c3F1YXJlPiAzMEIxIDMwRkMgMzBCOTs7OztOO1NRVUFSRUQgS0VFU1U7Ozs7CiszMzFEO1NRVUFSRSBLT1JVTkE7U287MDtMOzxzcXVhcmU+IDMwQjMgMzBFQiAzMENBOzs7O047U1FVQVJFRCBLT1JVTkE7Ozs7CiszMzFFO1NRVUFSRSBLT09QTztTbzswO0w7PHNxdWFyZT4gMzBCMyAzMEZDIDMwREQ7Ozs7TjtTUVVBUkVEIEtPT1BPOzs7OworMzMxRjtTUVVBUkUgU0FJS1VSVTtTbzswO0w7PHNxdWFyZT4gMzBCNSAzMEE0IDMwQUYgMzBFQjs7OztOO1NRVUFSRUQgU0FJS1VSVTs7OzsKKzMzMjA7U1FVQVJFIFNBTlRJSU1VO1NvOzA7TDs8c3F1YXJlPiAzMEI1IDMwRjMgMzBDMSAzMEZDIDMwRTA7Ozs7TjtTUVVBUkVEIFNBTlRJSU1VOzs7OworMzMyMTtTUVVBUkUgU0lSSU5HVTtTbzswO0w7PHNxdWFyZT4gMzBCNyAzMEVBIDMwRjMgMzBCMDs7OztOO1NRVUFSRUQgU0lSSU5HVTs7OzsKKzMzMjI7U1FVQVJFIFNFTlRJO1NvOzA7TDs8c3F1YXJlPiAzMEJCIDMwRjMgMzBDMTs7OztOO1NRVUFSRUQgU0VOVEk7Ozs7CiszMzIzO1NRVUFSRSBTRU5UTztTbzswO0w7PHNxdWFyZT4gMzBCQiAzMEYzIDMwQzg7Ozs7TjtTUVVBUkVEIFNFTlRPOzs7OworMzMyNDtTUVVBUkUgREFBU1U7U287MDtMOzxzcXVhcmU+IDMwQzAgMzBGQyAzMEI5Ozs7O047U1FVQVJFRCBEQUFTVTs7OzsKKzMzMjU7U1FVQVJFIERFU0k7U287MDtMOzxzcXVhcmU+IDMwQzcgMzBCNzs7OztOO1NRVUFSRUQgREVTSTs7OzsKKzMzMjY7U1FVQVJFIERPUlU7U287MDtMOzxzcXVhcmU+IDMwQzkgMzBFQjs7OztOO1NRVUFSRUQgRE9SVTs7OzsKKzMzMjc7U1FVQVJFIFRPTjtTbzswO0w7PHNxdWFyZT4gMzBDOCAzMEYzOzs7O047U1FVQVJFRCBUT047Ozs7CiszMzI4O1NRVUFSRSBOQU5PO1NvOzA7TDs8c3F1YXJlPiAzMENBIDMwQ0U7Ozs7TjtTUVVBUkVEIE5BTk87Ozs7CiszMzI5O1NRVUFSRSBOT1RUTztTbzswO0w7PHNxdWFyZT4gMzBDRSAzMEMzIDMwQzg7Ozs7TjtTUVVBUkVEIE5PVFRPOzs7OworMzMyQTtTUVVBUkUgSEFJVFU7U287MDtMOzxzcXVhcmU+IDMwQ0YgMzBBNCAzMEM0Ozs7O047U1FVQVJFRCBIQUlUVTs7OzsKKzMzMkI7U1FVQVJFIFBBQVNFTlRPO1NvOzA7TDs8c3F1YXJlPiAzMEQxIDMwRkMgMzBCQiAzMEYzIDMwQzg7Ozs7TjtTUVVBUkVEIFBBQVNFTlRPOzs7OworMzMyQztTUVVBUkUgUEFBVFU7U287MDtMOzxzcXVhcmU+IDMwRDEgMzBGQyAzMEM0Ozs7O047U1FVQVJFRCBQQUFUVTs7OzsKKzMzMkQ7U1FVQVJFIEJBQVJFUlU7U287MDtMOzxzcXVhcmU+IDMwRDAgMzBGQyAzMEVDIDMwRUI7Ozs7TjtTUVVBUkVEIEJBQVJFUlU7Ozs7CiszMzJFO1NRVUFSRSBQSUFTVVRPUlU7U287MDtMOzxzcXVhcmU+IDMwRDQgMzBBMiAzMEI5IDMwQzggMzBFQjs7OztOO1NRVUFSRUQgUElBU1VUT1JVOzs7OworMzMyRjtTUVVBUkUgUElLVVJVO1NvOzA7TDs8c3F1YXJlPiAzMEQ0IDMwQUYgMzBFQjs7OztOO1NRVUFSRUQgUElLVVJVOzs7OworMzMzMDtTUVVBUkUgUElLTztTbzswO0w7PHNxdWFyZT4gMzBENCAzMEIzOzs7O047U1FVQVJFRCBQSUtPOzs7OworMzMzMTtTUVVBUkUgQklSVTtTbzswO0w7PHNxdWFyZT4gMzBEMyAzMEVCOzs7O047U1FVQVJFRCBCSVJVOzs7OworMzMzMjtTUVVBUkUgSFVBUkFERE87U287MDtMOzxzcXVhcmU+IDMwRDUgMzBBMSAzMEU5IDMwQzMgMzBDOTs7OztOO1NRVUFSRUQgSFVBUkFERE87Ozs7CiszMzMzO1NRVUFSRSBIVUlJVE87U287MDtMOzxzcXVhcmU+IDMwRDUgMzBBMyAzMEZDIDMwQzg7Ozs7TjtTUVVBUkVEIEhVSUlUTzs7OzsKKzMzMzQ7U1FVQVJFIEJVU1NZRVJVO1NvOzA7TDs8c3F1YXJlPiAzMEQ2IDMwQzMgMzBCNyAzMEE3IDMwRUI7Ozs7TjtTUVVBUkVEIEJVU1NZRVJVOzs7OworMzMzNTtTUVVBUkUgSFVSQU47U287MDtMOzxzcXVhcmU+IDMwRDUgMzBFOSAzMEYzOzs7O047U1FVQVJFRCBIVVJBTjs7OzsKKzMzMzY7U1FVQVJFIEhFS1VUQUFSVTtTbzswO0w7PHNxdWFyZT4gMzBEOCAzMEFGIDMwQkYgMzBGQyAzMEVCOzs7O047U1FVQVJFRCBIRUtVVEFBUlU7Ozs7CiszMzM3O1NRVUFSRSBQRVNPO1NvOzA7TDs8c3F1YXJlPiAzMERBIDMwQkQ7Ozs7TjtTUVVBUkVEIFBFU087Ozs7CiszMzM4O1NRVUFSRSBQRU5JSEk7U287MDtMOzxzcXVhcmU+IDMwREEgMzBDQiAzMEQyOzs7O047U1FVQVJFRCBQRU5JSEk7Ozs7CiszMzM5O1NRVUFSRSBIRVJVVFU7U287MDtMOzxzcXVhcmU+IDMwRDggMzBFQiAzMEM0Ozs7O047U1FVQVJFRCBIRVJVVFU7Ozs7CiszMzNBO1NRVUFSRSBQRU5TVTtTbzswO0w7PHNxdWFyZT4gMzBEQSAzMEYzIDMwQjk7Ozs7TjtTUVVBUkVEIFBFTlNVOzs7OworMzMzQjtTUVVBUkUgUEVFWkk7U287MDtMOzxzcXVhcmU+IDMwREEgMzBGQyAzMEI4Ozs7O047U1FVQVJFRCBQRUVaSTs7OzsKKzMzM0M7U1FVQVJFIEJFRVRBO1NvOzA7TDs8c3F1YXJlPiAzMEQ5IDMwRkMgMzBCRjs7OztOO1NRVUFSRUQgQkVFVEE7Ozs7CiszMzNEO1NRVUFSRSBQT0lOVE87U287MDtMOzxzcXVhcmU+IDMwREQgMzBBNCAzMEYzIDMwQzg7Ozs7TjtTUVVBUkVEIFBPSU5UTzs7OzsKKzMzM0U7U1FVQVJFIEJPUlVUTztTbzswO0w7PHNxdWFyZT4gMzBEQyAzMEVCIDMwQzg7Ozs7TjtTUVVBUkVEIEJPUlVUTzs7OzsKKzMzM0Y7U1FVQVJFIEhPTjtTbzswO0w7PHNxdWFyZT4gMzBEQiAzMEYzOzs7O047U1FVQVJFRCBIT047Ozs7CiszMzQwO1NRVUFSRSBQT05ETztTbzswO0w7PHNxdWFyZT4gMzBERCAzMEYzIDMwQzk7Ozs7TjtTUVVBUkVEIFBPTkRPOzs7OworMzM0MTtTUVVBUkUgSE9PUlU7U287MDtMOzxzcXVhcmU+IDMwREIgMzBGQyAzMEVCOzs7O047U1FVQVJFRCBIT09SVTs7OzsKKzMzNDI7U1FVQVJFIEhPT047U287MDtMOzxzcXVhcmU+IDMwREIgMzBGQyAzMEYzOzs7O047U1FVQVJFRCBIT09OOzs7OworMzM0MztTUVVBUkUgTUFJS1VSTztTbzswO0w7PHNxdWFyZT4gMzBERSAzMEE0IDMwQUYgMzBFRDs7OztOO1NRVUFSRUQgTUFJS1VSTzs7OzsKKzMzNDQ7U1FVQVJFIE1BSVJVO1NvOzA7TDs8c3F1YXJlPiAzMERFIDMwQTQgMzBFQjs7OztOO1NRVUFSRUQgTUFJUlU7Ozs7CiszMzQ1O1NRVUFSRSBNQUhIQTtTbzswO0w7PHNxdWFyZT4gMzBERSAzMEMzIDMwQ0Y7Ozs7TjtTUVVBUkVEIE1BSEhBOzs7OworMzM0NjtTUVVBUkUgTUFSVUtVO1NvOzA7TDs8c3F1YXJlPiAzMERFIDMwRUIgMzBBRjs7OztOO1NRVUFSRUQgTUFSVUtVOzs7OworMzM0NztTUVVBUkUgTUFOU1lPTjtTbzswO0w7PHNxdWFyZT4gMzBERSAzMEYzIDMwQjcgMzBFNyAzMEYzOzs7O047U1FVQVJFRCBNQU5TWU9OOzs7OworMzM0ODtTUVVBUkUgTUlLVVJPTjtTbzswO0w7PHNxdWFyZT4gMzBERiAzMEFGIDMwRUQgMzBGMzs7OztOO1NRVUFSRUQgTUlLVVJPTjs7OzsKKzMzNDk7U1FVQVJFIE1JUkk7U287MDtMOzxzcXVhcmU+IDMwREYgMzBFQTs7OztOO1NRVUFSRUQgTUlSSTs7OzsKKzMzNEE7U1FVQVJFIE1JUklCQUFSVTtTbzswO0w7PHNxdWFyZT4gMzBERiAzMEVBIDMwRDAgMzBGQyAzMEVCOzs7O047U1FVQVJFRCBNSVJJQkFBUlU7Ozs7CiszMzRCO1NRVUFSRSBNRUdBO1NvOzA7TDs8c3F1YXJlPiAzMEUxIDMwQUM7Ozs7TjtTUVVBUkVEIE1FR0E7Ozs7CiszMzRDO1NRVUFSRSBNRUdBVE9OO1NvOzA7TDs8c3F1YXJlPiAzMEUxIDMwQUMgMzBDOCAzMEYzOzs7O047U1FVQVJFRCBNRUdBVE9OOzs7OworMzM0RDtTUVVBUkUgTUVFVE9SVTtTbzswO0w7PHNxdWFyZT4gMzBFMSAzMEZDIDMwQzggMzBFQjs7OztOO1NRVUFSRUQgTUVFVE9SVTs7OzsKKzMzNEU7U1FVQVJFIFlBQURPO1NvOzA7TDs8c3F1YXJlPiAzMEU0IDMwRkMgMzBDOTs7OztOO1NRVUFSRUQgWUFBRE87Ozs7CiszMzRGO1NRVUFSRSBZQUFSVTtTbzswO0w7PHNxdWFyZT4gMzBFNCAzMEZDIDMwRUI7Ozs7TjtTUVVBUkVEIFlBQVJVOzs7OworMzM1MDtTUVVBUkUgWVVBTjtTbzswO0w7PHNxdWFyZT4gMzBFNiAzMEEyIDMwRjM7Ozs7TjtTUVVBUkVEIFlVQU47Ozs7CiszMzUxO1NRVUFSRSBSSVRUT1JVO1NvOzA7TDs8c3F1YXJlPiAzMEVBIDMwQzMgMzBDOCAzMEVCOzs7O047U1FVQVJFRCBSSVRUT1JVOzs7OworMzM1MjtTUVVBUkUgUklSQTtTbzswO0w7PHNxdWFyZT4gMzBFQSAzMEU5Ozs7O047U1FVQVJFRCBSSVJBOzs7OworMzM1MztTUVVBUkUgUlVQSUk7U287MDtMOzxzcXVhcmU+IDMwRUIgMzBENCAzMEZDOzs7O047U1FVQVJFRCBSVVBJSTs7OzsKKzMzNTQ7U1FVQVJFIFJVVUJVUlU7U287MDtMOzxzcXVhcmU+IDMwRUIgMzBGQyAzMEQ2IDMwRUI7Ozs7TjtTUVVBUkVEIFJVVUJVUlU7Ozs7CiszMzU1O1NRVUFSRSBSRU1VO1NvOzA7TDs8c3F1YXJlPiAzMEVDIDMwRTA7Ozs7TjtTUVVBUkVEIFJFTVU7Ozs7CiszMzU2O1NRVUFSRSBSRU5UT0dFTjtTbzswO0w7PHNxdWFyZT4gMzBFQyAzMEYzIDMwQzggMzBCMiAzMEYzOzs7O047U1FVQVJFRCBSRU5UT0dFTjs7OzsKKzMzNTc7U1FVQVJFIFdBVFRPO1NvOzA7TDs8c3F1YXJlPiAzMEVGIDMwQzMgMzBDODs7OztOO1NRVUFSRUQgV0FUVE87Ozs7CiszMzU4O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgWkVSTztTbzswO0w7PGNvbXBhdD4gMDAzMCA3MEI5Ozs7O047Ozs7OworMzM1OTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIE9ORTtTbzswO0w7PGNvbXBhdD4gMDAzMSA3MEI5Ozs7O047Ozs7OworMzM1QTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFRXTztTbzswO0w7PGNvbXBhdD4gMDAzMiA3MEI5Ozs7O047Ozs7OworMzM1QjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFRIUkVFO1NvOzA7TDs8Y29tcGF0PiAwMDMzIDcwQjk7Ozs7Tjs7Ozs7CiszMzVDO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgRk9VUjtTbzswO0w7PGNvbXBhdD4gMDAzNCA3MEI5Ozs7O047Ozs7OworMzM1RDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIEZJVkU7U287MDtMOzxjb21wYXQ+IDAwMzUgNzBCOTs7OztOOzs7OzsKKzMzNUU7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBTSVg7U287MDtMOzxjb21wYXQ+IDAwMzYgNzBCOTs7OztOOzs7OzsKKzMzNUY7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBTRVZFTjtTbzswO0w7PGNvbXBhdD4gMDAzNyA3MEI5Ozs7O047Ozs7OworMzM2MDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIEVJR0hUO1NvOzA7TDs8Y29tcGF0PiAwMDM4IDcwQjk7Ozs7Tjs7Ozs7CiszMzYxO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgTklORTtTbzswO0w7PGNvbXBhdD4gMDAzOSA3MEI5Ozs7O047Ozs7OworMzM2MjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFRFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDMwIDcwQjk7Ozs7Tjs7Ozs7CiszMzYzO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgRUxFVkVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzEgNzBCOTs7OztOOzs7OzsKKzMzNjQ7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBUV0VMVkU7U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzMiA3MEI5Ozs7O047Ozs7OworMzM2NTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFRISVJURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzMgNzBCOTs7OztOOzs7OzsKKzMzNjY7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBGT1VSVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDM0IDcwQjk7Ozs7Tjs7Ozs7CiszMzY3O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgRklGVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDM1IDcwQjk7Ozs7Tjs7Ozs7CiszMzY4O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgU0lYVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDM2IDcwQjk7Ozs7Tjs7Ozs7CiszMzY5O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgU0VWRU5URUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzcgNzBCOTs7OztOOzs7OzsKKzMzNkE7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBFSUdIVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDM4IDcwQjk7Ozs7Tjs7Ozs7CiszMzZCO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgTklORVRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzOSA3MEI5Ozs7O047Ozs7OworMzM2QztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFRXRU5UWTtTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDMwIDcwQjk7Ozs7Tjs7Ozs7CiszMzZEO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgVFdFTlRZLU9ORTtTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDMxIDcwQjk7Ozs7Tjs7Ozs7CiszMzZFO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgVFdFTlRZLVRXTztTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDMyIDcwQjk7Ozs7Tjs7Ozs7CiszMzZGO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgVFdFTlRZLVRIUkVFO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzMgNzBCOTs7OztOOzs7OzsKKzMzNzA7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBUV0VOVFktRk9VUjtTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDM0IDcwQjk7Ozs7Tjs7Ozs7CiszMzcxO1NRVUFSRSBIUEE7U287MDtMOzxzcXVhcmU+IDAwNjggMDA1MCAwMDYxOzs7O047Ozs7OworMzM3MjtTUVVBUkUgREE7U287MDtMOzxzcXVhcmU+IDAwNjQgMDA2MTs7OztOOzs7OzsKKzMzNzM7U1FVQVJFIEFVO1NvOzA7TDs8c3F1YXJlPiAwMDQxIDAwNTU7Ozs7Tjs7Ozs7CiszMzc0O1NRVUFSRSBCQVI7U287MDtMOzxzcXVhcmU+IDAwNjIgMDA2MSAwMDcyOzs7O047Ozs7OworMzM3NTtTUVVBUkUgT1Y7U287MDtMOzxzcXVhcmU+IDAwNkYgMDA1Njs7OztOOzs7OzsKKzMzNzY7U1FVQVJFIFBDO1NvOzA7TDs8c3F1YXJlPiAwMDcwIDAwNjM7Ozs7Tjs7Ozs7CiszMzdCO1NRVUFSRSBFUkEgTkFNRSBIRUlTRUk7U287MDtMOzxzcXVhcmU+IDVFNzMgNjIxMDs7OztOO1NRVUFSRUQgVFdPIElERU9HUkFQSFMgRVJBIE5BTUUgSEVJU0VJOzs7OworMzM3QztTUVVBUkUgRVJBIE5BTUUgU1lPVVdBO1NvOzA7TDs8c3F1YXJlPiA2NjJEIDU0OEM7Ozs7TjtTUVVBUkVEIFRXTyBJREVPR1JBUEhTIEVSQSBOQU1FIFNZT1VXQTs7OzsKKzMzN0Q7U1FVQVJFIEVSQSBOQU1FIFRBSVNZT1U7U287MDtMOzxzcXVhcmU+IDU5MjcgNkI2Mzs7OztOO1NRVUFSRUQgVFdPIElERU9HUkFQSFMgRVJBIE5BTUUgVEFJU1lPVTs7OzsKKzMzN0U7U1FVQVJFIEVSQSBOQU1FIE1FSVpJO1NvOzA7TDs8c3F1YXJlPiA2NjBFIDZDQkI7Ozs7TjtTUVVBUkVEIFRXTyBJREVPR1JBUEhTIEVSQSBOQU1FIE1FSVpJOzs7OworMzM3RjtTUVVBUkUgQ09SUE9SQVRJT047U287MDtMOzxzcXVhcmU+IDY4MkEgNUYwRiA0RjFBIDc5M0U7Ozs7TjtTUVVBUkVEIEZPVVIgSURFT0dSQVBIUyBDT1JQT1JBVElPTjs7OzsKKzMzODA7U1FVQVJFIFBBIEFNUFM7U287MDtMOzxzcXVhcmU+IDAwNzAgMDA0MTs7OztOO1NRVUFSRUQgUEEgQU1QUzs7OzsKKzMzODE7U1FVQVJFIE5BO1NvOzA7TDs8c3F1YXJlPiAwMDZFIDAwNDE7Ozs7TjtTUVVBUkVEIE5BOzs7OworMzM4MjtTUVVBUkUgTVUgQTtTbzswO0w7PHNxdWFyZT4gMDNCQyAwMDQxOzs7O047U1FVQVJFRCBNVSBBOzs7OworMzM4MztTUVVBUkUgTUE7U287MDtMOzxzcXVhcmU+IDAwNkQgMDA0MTs7OztOO1NRVUFSRUQgTUE7Ozs7CiszMzg0O1NRVUFSRSBLQTtTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDQxOzs7O047U1FVQVJFRCBLQTs7OzsKKzMzODU7U1FVQVJFIEtCO1NvOzA7TDs8c3F1YXJlPiAwMDRCIDAwNDI7Ozs7TjtTUVVBUkVEIEtCOzs7OworMzM4NjtTUVVBUkUgTUI7U287MDtMOzxzcXVhcmU+IDAwNEQgMDA0Mjs7OztOO1NRVUFSRUQgTUI7Ozs7CiszMzg3O1NRVUFSRSBHQjtTbzswO0w7PHNxdWFyZT4gMDA0NyAwMDQyOzs7O047U1FVQVJFRCBHQjs7OzsKKzMzODg7U1FVQVJFIENBTDtTbzswO0w7PHNxdWFyZT4gMDA2MyAwMDYxIDAwNkM7Ozs7TjtTUVVBUkVEIENBTDs7OzsKKzMzODk7U1FVQVJFIEtDQUw7U287MDtMOzxzcXVhcmU+IDAwNkIgMDA2MyAwMDYxIDAwNkM7Ozs7TjtTUVVBUkVEIEtDQUw7Ozs7CiszMzhBO1NRVUFSRSBQRjtTbzswO0w7PHNxdWFyZT4gMDA3MCAwMDQ2Ozs7O047U1FVQVJFRCBQRjs7OzsKKzMzOEI7U1FVQVJFIE5GO1NvOzA7TDs8c3F1YXJlPiAwMDZFIDAwNDY7Ozs7TjtTUVVBUkVEIE5GOzs7OworMzM4QztTUVVBUkUgTVUgRjtTbzswO0w7PHNxdWFyZT4gMDNCQyAwMDQ2Ozs7O047U1FVQVJFRCBNVSBGOzs7OworMzM4RDtTUVVBUkUgTVUgRztTbzswO0w7PHNxdWFyZT4gMDNCQyAwMDY3Ozs7O047U1FVQVJFRCBNVSBHOzs7OworMzM4RTtTUVVBUkUgTUc7U287MDtMOzxzcXVhcmU+IDAwNkQgMDA2Nzs7OztOO1NRVUFSRUQgTUc7Ozs7CiszMzhGO1NRVUFSRSBLRztTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDY3Ozs7O047U1FVQVJFRCBLRzs7OzsKKzMzOTA7U1FVQVJFIEhaO1NvOzA7TDs8c3F1YXJlPiAwMDQ4IDAwN0E7Ozs7TjtTUVVBUkVEIEhaOzs7OworMzM5MTtTUVVBUkUgS0haO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDAwNDggMDA3QTs7OztOO1NRVUFSRUQgS0haOzs7OworMzM5MjtTUVVBUkUgTUhaO1NvOzA7TDs8c3F1YXJlPiAwMDREIDAwNDggMDA3QTs7OztOO1NRVUFSRUQgTUhaOzs7OworMzM5MztTUVVBUkUgR0haO1NvOzA7TDs8c3F1YXJlPiAwMDQ3IDAwNDggMDA3QTs7OztOO1NRVUFSRUQgR0haOzs7OworMzM5NDtTUVVBUkUgVEhaO1NvOzA7TDs8c3F1YXJlPiAwMDU0IDAwNDggMDA3QTs7OztOO1NRVUFSRUQgVEhaOzs7OworMzM5NTtTUVVBUkUgTVUgTDtTbzswO0w7PHNxdWFyZT4gMDNCQyAyMTEzOzs7O047U1FVQVJFRCBNVSBMOzs7OworMzM5NjtTUVVBUkUgTUw7U287MDtMOzxzcXVhcmU+IDAwNkQgMjExMzs7OztOO1NRVUFSRUQgTUw7Ozs7CiszMzk3O1NRVUFSRSBETDtTbzswO0w7PHNxdWFyZT4gMDA2NCAyMTEzOzs7O047U1FVQVJFRCBETDs7OzsKKzMzOTg7U1FVQVJFIEtMO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDIxMTM7Ozs7TjtTUVVBUkVEIEtMOzs7OworMzM5OTtTUVVBUkUgRk07U287MDtMOzxzcXVhcmU+IDAwNjYgMDA2RDs7OztOO1NRVUFSRUQgRk07Ozs7CiszMzlBO1NRVUFSRSBOTTtTbzswO0w7PHNxdWFyZT4gMDA2RSAwMDZEOzs7O047U1FVQVJFRCBOTTs7OzsKKzMzOUI7U1FVQVJFIE1VIE07U287MDtMOzxzcXVhcmU+IDAzQkMgMDA2RDs7OztOO1NRVUFSRUQgTVUgTTs7OzsKKzMzOUM7U1FVQVJFIE1NO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNkQ7Ozs7TjtTUVVBUkVEIE1NOzs7OworMzM5RDtTUVVBUkUgQ007U287MDtMOzxzcXVhcmU+IDAwNjMgMDA2RDs7OztOO1NRVUFSRUQgQ007Ozs7CiszMzlFO1NRVUFSRSBLTTtTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDZEOzs7O047U1FVQVJFRCBLTTs7OzsKKzMzOUY7U1FVQVJFIE1NIFNRVUFSRUQ7U287MDtMOzxzcXVhcmU+IDAwNkQgMDA2RCAwMEIyOzs7O047U1FVQVJFRCBNTSBTUVVBUkVEOzs7OworMzNBMDtTUVVBUkUgQ00gU1FVQVJFRDtTbzswO0w7PHNxdWFyZT4gMDA2MyAwMDZEIDAwQjI7Ozs7TjtTUVVBUkVEIENNIFNRVUFSRUQ7Ozs7CiszM0ExO1NRVUFSRSBNIFNRVUFSRUQ7U287MDtMOzxzcXVhcmU+IDAwNkQgMDBCMjs7OztOO1NRVUFSRUQgTSBTUVVBUkVEOzs7OworMzNBMjtTUVVBUkUgS00gU1FVQVJFRDtTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDZEIDAwQjI7Ozs7TjtTUVVBUkVEIEtNIFNRVUFSRUQ7Ozs7CiszM0EzO1NRVUFSRSBNTSBDVUJFRDtTbzswO0w7PHNxdWFyZT4gMDA2RCAwMDZEIDAwQjM7Ozs7TjtTUVVBUkVEIE1NIENVQkVEOzs7OworMzNBNDtTUVVBUkUgQ00gQ1VCRUQ7U287MDtMOzxzcXVhcmU+IDAwNjMgMDA2RCAwMEIzOzs7O047U1FVQVJFRCBDTSBDVUJFRDs7OzsKKzMzQTU7U1FVQVJFIE0gQ1VCRUQ7U287MDtMOzxzcXVhcmU+IDAwNkQgMDBCMzs7OztOO1NRVUFSRUQgTSBDVUJFRDs7OzsKKzMzQTY7U1FVQVJFIEtNIENVQkVEO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDAwNkQgMDBCMzs7OztOO1NRVUFSRUQgS00gQ1VCRUQ7Ozs7CiszM0E3O1NRVUFSRSBNIE9WRVIgUztTbzswO0w7PHNxdWFyZT4gMDA2RCAyMjE1IDAwNzM7Ozs7TjtTUVVBUkVEIE0gT1ZFUiBTOzs7OworMzNBODtTUVVBUkUgTSBPVkVSIFMgU1FVQVJFRDtTbzswO0w7PHNxdWFyZT4gMDA2RCAyMjE1IDAwNzMgMDBCMjs7OztOO1NRVUFSRUQgTSBPVkVSIFMgU1FVQVJFRDs7OzsKKzMzQTk7U1FVQVJFIFBBO1NvOzA7TDs8c3F1YXJlPiAwMDUwIDAwNjE7Ozs7TjtTUVVBUkVEIFBBOzs7OworMzNBQTtTUVVBUkUgS1BBO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDAwNTAgMDA2MTs7OztOO1NRVUFSRUQgS1BBOzs7OworMzNBQjtTUVVBUkUgTVBBO1NvOzA7TDs8c3F1YXJlPiAwMDREIDAwNTAgMDA2MTs7OztOO1NRVUFSRUQgTVBBOzs7OworMzNBQztTUVVBUkUgR1BBO1NvOzA7TDs8c3F1YXJlPiAwMDQ3IDAwNTAgMDA2MTs7OztOO1NRVUFSRUQgR1BBOzs7OworMzNBRDtTUVVBUkUgUkFEO1NvOzA7TDs8c3F1YXJlPiAwMDcyIDAwNjEgMDA2NDs7OztOO1NRVUFSRUQgUkFEOzs7OworMzNBRTtTUVVBUkUgUkFEIE9WRVIgUztTbzswO0w7PHNxdWFyZT4gMDA3MiAwMDYxIDAwNjQgMjIxNSAwMDczOzs7O047U1FVQVJFRCBSQUQgT1ZFUiBTOzs7OworMzNBRjtTUVVBUkUgUkFEIE9WRVIgUyBTUVVBUkVEO1NvOzA7TDs8c3F1YXJlPiAwMDcyIDAwNjEgMDA2NCAyMjE1IDAwNzMgMDBCMjs7OztOO1NRVUFSRUQgUkFEIE9WRVIgUyBTUVVBUkVEOzs7OworMzNCMDtTUVVBUkUgUFM7U287MDtMOzxzcXVhcmU+IDAwNzAgMDA3Mzs7OztOO1NRVUFSRUQgUFM7Ozs7CiszM0IxO1NRVUFSRSBOUztTbzswO0w7PHNxdWFyZT4gMDA2RSAwMDczOzs7O047U1FVQVJFRCBOUzs7OzsKKzMzQjI7U1FVQVJFIE1VIFM7U287MDtMOzxzcXVhcmU+IDAzQkMgMDA3Mzs7OztOO1NRVUFSRUQgTVUgUzs7OzsKKzMzQjM7U1FVQVJFIE1TO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNzM7Ozs7TjtTUVVBUkVEIE1TOzs7OworMzNCNDtTUVVBUkUgUFY7U287MDtMOzxzcXVhcmU+IDAwNzAgMDA1Njs7OztOO1NRVUFSRUQgUFY7Ozs7CiszM0I1O1NRVUFSRSBOVjtTbzswO0w7PHNxdWFyZT4gMDA2RSAwMDU2Ozs7O047U1FVQVJFRCBOVjs7OzsKKzMzQjY7U1FVQVJFIE1VIFY7U287MDtMOzxzcXVhcmU+IDAzQkMgMDA1Njs7OztOO1NRVUFSRUQgTVUgVjs7OzsKKzMzQjc7U1FVQVJFIE1WO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNTY7Ozs7TjtTUVVBUkVEIE1WOzs7OworMzNCODtTUVVBUkUgS1Y7U287MDtMOzxzcXVhcmU+IDAwNkIgMDA1Njs7OztOO1NRVUFSRUQgS1Y7Ozs7CiszM0I5O1NRVUFSRSBNViBNRUdBO1NvOzA7TDs8c3F1YXJlPiAwMDREIDAwNTY7Ozs7TjtTUVVBUkVEIE1WIE1FR0E7Ozs7CiszM0JBO1NRVUFSRSBQVztTbzswO0w7PHNxdWFyZT4gMDA3MCAwMDU3Ozs7O047U1FVQVJFRCBQVzs7OzsKKzMzQkI7U1FVQVJFIE5XO1NvOzA7TDs8c3F1YXJlPiAwMDZFIDAwNTc7Ozs7TjtTUVVBUkVEIE5XOzs7OworMzNCQztTUVVBUkUgTVUgVztTbzswO0w7PHNxdWFyZT4gMDNCQyAwMDU3Ozs7O047U1FVQVJFRCBNVSBXOzs7OworMzNCRDtTUVVBUkUgTVc7U287MDtMOzxzcXVhcmU+IDAwNkQgMDA1Nzs7OztOO1NRVUFSRUQgTVc7Ozs7CiszM0JFO1NRVUFSRSBLVztTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDU3Ozs7O047U1FVQVJFRCBLVzs7OzsKKzMzQkY7U1FVQVJFIE1XIE1FR0E7U287MDtMOzxzcXVhcmU+IDAwNEQgMDA1Nzs7OztOO1NRVUFSRUQgTVcgTUVHQTs7OzsKKzMzQzA7U1FVQVJFIEsgT0hNO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDAzQTk7Ozs7TjtTUVVBUkVEIEsgT0hNOzs7OworMzNDMTtTUVVBUkUgTSBPSE07U287MDtMOzxzcXVhcmU+IDAwNEQgMDNBOTs7OztOO1NRVUFSRUQgTSBPSE07Ozs7CiszM0MyO1NRVUFSRSBBTTtTbzswO0w7PHNxdWFyZT4gMDA2MSAwMDJFIDAwNkQgMDAyRTs7OztOO1NRVUFSRUQgQU07Ozs7CiszM0MzO1NRVUFSRSBCUTtTbzswO0w7PHNxdWFyZT4gMDA0MiAwMDcxOzs7O047U1FVQVJFRCBCUTs7OzsKKzMzQzQ7U1FVQVJFIENDO1NvOzA7TDs8c3F1YXJlPiAwMDYzIDAwNjM7Ozs7TjtTUVVBUkVEIENDOzs7OworMzNDNTtTUVVBUkUgQ0Q7U287MDtMOzxzcXVhcmU+IDAwNjMgMDA2NDs7OztOO1NRVUFSRUQgQ0Q7Ozs7CiszM0M2O1NRVUFSRSBDIE9WRVIgS0c7U287MDtMOzxzcXVhcmU+IDAwNDMgMjIxNSAwMDZCIDAwNjc7Ozs7TjtTUVVBUkVEIEMgT1ZFUiBLRzs7OzsKKzMzQzc7U1FVQVJFIENPO1NvOzA7TDs8c3F1YXJlPiAwMDQzIDAwNkYgMDAyRTs7OztOO1NRVUFSRUQgQ087Ozs7CiszM0M4O1NRVUFSRSBEQjtTbzswO0w7PHNxdWFyZT4gMDA2NCAwMDQyOzs7O047U1FVQVJFRCBEQjs7OzsKKzMzQzk7U1FVQVJFIEdZO1NvOzA7TDs8c3F1YXJlPiAwMDQ3IDAwNzk7Ozs7TjtTUVVBUkVEIEdZOzs7OworMzNDQTtTUVVBUkUgSEE7U287MDtMOzxzcXVhcmU+IDAwNjggMDA2MTs7OztOO1NRVUFSRUQgSEE7Ozs7CiszM0NCO1NRVUFSRSBIUDtTbzswO0w7PHNxdWFyZT4gMDA0OCAwMDUwOzs7O047U1FVQVJFRCBIUDs7OzsKKzMzQ0M7U1FVQVJFIElOO1NvOzA7TDs8c3F1YXJlPiAwMDY5IDAwNkU7Ozs7TjtTUVVBUkVEIElOOzs7OworMzNDRDtTUVVBUkUgS0s7U287MDtMOzxzcXVhcmU+IDAwNEIgMDA0Qjs7OztOO1NRVUFSRUQgS0s7Ozs7CiszM0NFO1NRVUFSRSBLTSBDQVBJVEFMO1NvOzA7TDs8c3F1YXJlPiAwMDRCIDAwNEQ7Ozs7TjtTUVVBUkVEIEtNIENBUElUQUw7Ozs7CiszM0NGO1NRVUFSRSBLVDtTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDc0Ozs7O047U1FVQVJFRCBLVDs7OzsKKzMzRDA7U1FVQVJFIExNO1NvOzA7TDs8c3F1YXJlPiAwMDZDIDAwNkQ7Ozs7TjtTUVVBUkVEIExNOzs7OworMzNEMTtTUVVBUkUgTE47U287MDtMOzxzcXVhcmU+IDAwNkMgMDA2RTs7OztOO1NRVUFSRUQgTE47Ozs7CiszM0QyO1NRVUFSRSBMT0c7U287MDtMOzxzcXVhcmU+IDAwNkMgMDA2RiAwMDY3Ozs7O047U1FVQVJFRCBMT0c7Ozs7CiszM0QzO1NRVUFSRSBMWDtTbzswO0w7PHNxdWFyZT4gMDA2QyAwMDc4Ozs7O047U1FVQVJFRCBMWDs7OzsKKzMzRDQ7U1FVQVJFIE1CIFNNQUxMO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNjI7Ozs7TjtTUVVBUkVEIE1CIFNNQUxMOzs7OworMzNENTtTUVVBUkUgTUlMO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNjkgMDA2Qzs7OztOO1NRVUFSRUQgTUlMOzs7OworMzNENjtTUVVBUkUgTU9MO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNkYgMDA2Qzs7OztOO1NRVUFSRUQgTU9MOzs7OworMzNENztTUVVBUkUgUEg7U287MDtMOzxzcXVhcmU+IDAwNTAgMDA0ODs7OztOO1NRVUFSRUQgUEg7Ozs7CiszM0Q4O1NRVUFSRSBQTTtTbzswO0w7PHNxdWFyZT4gMDA3MCAwMDJFIDAwNkQgMDAyRTs7OztOO1NRVUFSRUQgUE07Ozs7CiszM0Q5O1NRVUFSRSBQUE07U287MDtMOzxzcXVhcmU+IDAwNTAgMDA1MCAwMDREOzs7O047U1FVQVJFRCBQUE07Ozs7CiszM0RBO1NRVUFSRSBQUjtTbzswO0w7PHNxdWFyZT4gMDA1MCAwMDUyOzs7O047U1FVQVJFRCBQUjs7OzsKKzMzREI7U1FVQVJFIFNSO1NvOzA7TDs8c3F1YXJlPiAwMDczIDAwNzI7Ozs7TjtTUVVBUkVEIFNSOzs7OworMzNEQztTUVVBUkUgU1Y7U287MDtMOzxzcXVhcmU+IDAwNTMgMDA3Njs7OztOO1NRVUFSRUQgU1Y7Ozs7CiszM0REO1NRVUFSRSBXQjtTbzswO0w7PHNxdWFyZT4gMDA1NyAwMDYyOzs7O047U1FVQVJFRCBXQjs7OzsKKzMzRTA7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIE9ORTtTbzswO0w7PGNvbXBhdD4gMDAzMSA2NUU1Ozs7O047Ozs7OworMzNFMTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdPO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDY1RTU7Ozs7Tjs7Ozs7CiszM0UyO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUSFJFRTtTbzswO0w7PGNvbXBhdD4gMDAzMyA2NUU1Ozs7O047Ozs7OworMzNFMztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgRk9VUjtTbzswO0w7PGNvbXBhdD4gMDAzNCA2NUU1Ozs7O047Ozs7OworMzNFNDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgRklWRTtTbzswO0w7PGNvbXBhdD4gMDAzNSA2NUU1Ozs7O047Ozs7OworMzNFNTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgU0lYO1NvOzA7TDs8Y29tcGF0PiAwMDM2IDY1RTU7Ozs7Tjs7Ozs7CiszM0U2O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBTRVZFTjtTbzswO0w7PGNvbXBhdD4gMDAzNyA2NUU1Ozs7O047Ozs7OworMzNFNztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgRUlHSFQ7U287MDtMOzxjb21wYXQ+IDAwMzggNjVFNTs7OztOOzs7OzsKKzMzRTg7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIE5JTkU7U287MDtMOzxjb21wYXQ+IDAwMzkgNjVFNTs7OztOOzs7OzsKKzMzRTk7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDMwIDY1RTU7Ozs7Tjs7Ozs7CiszM0VBO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBFTEVWRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzMSA2NUU1Ozs7O047Ozs7OworMzNFQjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTFZFO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzIgNjVFNTs7OztOOzs7OzsKKzMzRUM7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRISVJURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzMgNjVFNTs7OztOOzs7OzsKKzMzRUQ7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIEZPVVJURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzQgNjVFNTs7OztOOzs7OzsKKzMzRUU7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIEZJRlRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzNSA2NUU1Ozs7O047Ozs7OworMzNFRjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgU0lYVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDM2IDY1RTU7Ozs7Tjs7Ozs7CiszM0YwO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBTRVZFTlRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzNyA2NUU1Ozs7O047Ozs7OworMzNGMTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgRUlHSFRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzOCA2NUU1Ozs7O047Ozs7OworMzNGMjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgTklORVRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzOSA2NUU1Ozs7O047Ozs7OworMzNGMztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzAgNjVFNTs7OztOOzs7OzsKKzMzRjQ7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRXRU5UWS1PTkU7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzMSA2NUU1Ozs7O047Ozs7OworMzNGNTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZLVRXTztTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDMyIDY1RTU7Ozs7Tjs7Ozs7CiszM0Y2O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUV0VOVFktVEhSRUU7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzMyA2NUU1Ozs7O047Ozs7OworMzNGNztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZLUZPVVI7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzNCA2NUU1Ozs7O047Ozs7OworMzNGODtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZLUZJVkU7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzNSA2NUU1Ozs7O047Ozs7OworMzNGOTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZLVNJWDtTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDM2IDY1RTU7Ozs7Tjs7Ozs7CiszM0ZBO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUV0VOVFktU0VWRU47U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzNyA2NUU1Ozs7O047Ozs7OworMzNGQjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZLUVJR0hUO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzggNjVFNTs7OztOOzs7OzsKKzMzRkM7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRXRU5UWS1OSU5FO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzkgNjVFNTs7OztOOzs7OzsKKzMzRkQ7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRISVJUWTtTbzswO0w7PGNvbXBhdD4gMDAzMyAwMDMwIDY1RTU7Ozs7Tjs7Ozs7CiszM0ZFO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUSElSVFktT05FO1NvOzA7TDs8Y29tcGF0PiAwMDMzIDAwMzEgNjVFNTs7OztOOzs7OzsKKzRFMDA7PENKSyBJZGVvZ3JhcGgsIEZpcnN0PjtMbzswO0w7Ozs7O047Ozs7OworOUZBNTs8Q0pLIElkZW9ncmFwaCwgTGFzdD47TG87MDtMOzs7OztOOzs7OzsKK0FDMDA7PEhhbmd1bCBTeWxsYWJsZSwgRmlyc3Q+O0xvOzA7TDs7Ozs7Tjs7Ozs7CitEN0EzOzxIYW5ndWwgU3lsbGFibGUsIExhc3Q+O0xvOzA7TDs7Ozs7Tjs7Ozs7CitEODAwOzxVbmFzc2lnbmVkIEhpZ2ggU3Vycm9nYXRlLCBGaXJzdD47Q3M7MDtMOzs7OztOOzs7OzsKK0RCN0Y7PFVuYXNzaWduZWQgSGlnaCBTdXJyb2dhdGUsIExhc3Q+O0NzOzA7TDs7Ozs7Tjs7Ozs7CitEQjgwOzxQcml2YXRlIFVzZSBIaWdoIFN1cnJvZ2F0ZSwgRmlyc3Q+O0NzOzA7TDs7Ozs7Tjs7Ozs7CitEQkZGOzxQcml2YXRlIFVzZSBIaWdoIFN1cnJvZ2F0ZSwgTGFzdD47Q3M7MDtMOzs7OztOOzs7OzsKK0RDMDA7PExvdyBTdXJyb2dhdGUsIEZpcnN0PjtDczswO0w7Ozs7O047Ozs7OworREZGRjs8TG93IFN1cnJvZ2F0ZSwgTGFzdD47Q3M7MDtMOzs7OztOOzs7OzsKK0UwMDA7PFByaXZhdGUgVXNlLCBGaXJzdD47Q287MDtMOzs7OztOOzs7OzsKK0Y4RkY7PFByaXZhdGUgVXNlLCBMYXN0PjtDbzswO0w7Ozs7O047Ozs7OworRjkwMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwMDtMbzswO0w7OEM0ODs7OztOOzs7OzsKK0Y5MDE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MDE7TG87MDtMOzY2RjQ7Ozs7Tjs7Ozs7CitGOTAyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTAyO0xvOzA7TDs4RUNBOzs7O047Ozs7OworRjkwMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwMztMbzswO0w7OENDODs7OztOOzs7OzsKK0Y5MDQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MDQ7TG87MDtMOzZFRDE7Ozs7Tjs7Ozs7CitGOTA1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTA1O0xvOzA7TDs0RTMyOzs7O047Ozs7OworRjkwNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwNjtMbzswO0w7NTNFNTs7OztOOzs7OzsKK0Y5MDc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MDc7TG87MDtMOzlGOUM7Ozs7Tjs7Ozs7CitGOTA4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTA4O0xvOzA7TDs5RjlDOzs7O047Ozs7OworRjkwOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwOTtMbzswO0w7NTk1MTs7OztOOzs7OzsKK0Y5MEE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MEE7TG87MDtMOzkxRDE7Ozs7Tjs7Ozs7CitGOTBCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTBCO0xvOzA7TDs1NTg3Ozs7O047Ozs7OworRjkwQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwQztMbzswO0w7NTk0ODs7OztOOzs7OzsKK0Y5MEQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MEQ7TG87MDtMOzYxRjY7Ozs7Tjs7Ozs7CitGOTBFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTBFO0xvOzA7TDs3NjY5Ozs7O047Ozs7OworRjkwRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwRjtMbzswO0w7N0Y4NTs7OztOOzs7OzsKK0Y5MTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MTA7TG87MDtMOzg2M0Y7Ozs7Tjs7Ozs7CitGOTExO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTExO0xvOzA7TDs4N0JBOzs7O047Ozs7OworRjkxMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxMjtMbzswO0w7ODhGODs7OztOOzs7OzsKK0Y5MTM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MTM7TG87MDtMOzkwOEY7Ozs7Tjs7Ozs7CitGOTE0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTE0O0xvOzA7TDs2QTAyOzs7O047Ozs7OworRjkxNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxNTtMbzswO0w7NkQxQjs7OztOOzs7OzsKK0Y5MTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MTY7TG87MDtMOzcwRDk7Ozs7Tjs7Ozs7CitGOTE3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTE3O0xvOzA7TDs3M0RFOzs7O047Ozs7OworRjkxODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxODtMbzswO0w7ODQzRDs7OztOOzs7OzsKK0Y5MTk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MTk7TG87MDtMOzkxNkE7Ozs7Tjs7Ozs7CitGOTFBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTFBO0xvOzA7TDs5OUYxOzs7O047Ozs7OworRjkxQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxQjtMbzswO0w7NEU4Mjs7OztOOzs7OzsKK0Y5MUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MUM7TG87MDtMOzUzNzU7Ozs7Tjs7Ozs7CitGOTFEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTFEO0xvOzA7TDs2QjA0Ozs7O047Ozs7OworRjkxRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxRTtMbzswO0w7NzIxQjs7OztOOzs7OzsKK0Y5MUY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MUY7TG87MDtMOzg2MkQ7Ozs7Tjs7Ozs7CitGOTIwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTIwO0xvOzA7TDs5RTFFOzs7O047Ozs7OworRjkyMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyMTtMbzswO0w7NUQ1MDs7OztOOzs7OzsKK0Y5MjI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MjI7TG87MDtMOzZGRUI7Ozs7Tjs7Ozs7CitGOTIzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTIzO0xvOzA7TDs4NUNEOzs7O047Ozs7OworRjkyNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyNDtMbzswO0w7ODk2NDs7OztOOzs7OzsKK0Y5MjU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MjU7TG87MDtMOzYyQzk7Ozs7Tjs7Ozs7CitGOTI2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTI2O0xvOzA7TDs4MUQ4Ozs7O047Ozs7OworRjkyNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyNztMbzswO0w7ODgxRjs7OztOOzs7OzsKK0Y5Mjg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Mjg7TG87MDtMOzVFQ0E7Ozs7Tjs7Ozs7CitGOTI5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTI5O0xvOzA7TDs2NzE3Ozs7O047Ozs7OworRjkyQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyQTtMbzswO0w7NkQ2QTs7OztOOzs7OzsKK0Y5MkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MkI7TG87MDtMOzcyRkM7Ozs7Tjs7Ozs7CitGOTJDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTJDO0xvOzA7TDs5MENFOzs7O047Ozs7OworRjkyRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyRDtMbzswO0w7NEY4Njs7OztOOzs7OzsKK0Y5MkU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MkU7TG87MDtMOzUxQjc7Ozs7Tjs7Ozs7CitGOTJGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTJGO0xvOzA7TDs1MkRFOzs7O047Ozs7OworRjkzMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzMDtMbzswO0w7NjRDNDs7OztOOzs7OzsKK0Y5MzE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MzE7TG87MDtMOzZBRDM7Ozs7Tjs7Ozs7CitGOTMyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTMyO0xvOzA7TDs3MjEwOzs7O047Ozs7OworRjkzMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzMztMbzswO0w7NzZFNzs7OztOOzs7OzsKK0Y5MzQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MzQ7TG87MDtMOzgwMDE7Ozs7Tjs7Ozs7CitGOTM1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTM1O0xvOzA7TDs4NjA2Ozs7O047Ozs7OworRjkzNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzNjtMbzswO0w7ODY1Qzs7OztOOzs7OzsKK0Y5Mzc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Mzc7TG87MDtMOzhERUY7Ozs7Tjs7Ozs7CitGOTM4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTM4O0xvOzA7TDs5NzMyOzs7O047Ozs7OworRjkzOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzOTtMbzswO0w7OUI2Rjs7OztOOzs7OzsKK0Y5M0E7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5M0E7TG87MDtMOzlERkE7Ozs7Tjs7Ozs7CitGOTNCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTNCO0xvOzA7TDs3ODhDOzs7O047Ozs7OworRjkzQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzQztMbzswO0w7Nzk3Rjs7OztOOzs7OzsKK0Y5M0Q7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5M0Q7TG87MDtMOzdEQTA7Ozs7Tjs7Ozs7CitGOTNFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTNFO0xvOzA7TDs4M0M5Ozs7O047Ozs7OworRjkzRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzRjtMbzswO0w7OTMwNDs7OztOOzs7OzsKK0Y5NDA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NDA7TG87MDtMOzlFN0Y7Ozs7Tjs7Ozs7CitGOTQxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTQxO0xvOzA7TDs4QUQ2Ozs7O047Ozs7OworRjk0MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0MjtMbzswO0w7NThERjs7OztOOzs7OzsKK0Y5NDM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NDM7TG87MDtMOzVGMDQ7Ozs7Tjs7Ozs7CitGOTQ0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTQ0O0xvOzA7TDs3QzYwOzs7O047Ozs7OworRjk0NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0NTtMbzswO0w7ODA3RTs7OztOOzs7OzsKK0Y5NDY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NDY7TG87MDtMOzcyNjI7Ozs7Tjs7Ozs7CitGOTQ3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTQ3O0xvOzA7TDs3OENBOzs7O047Ozs7OworRjk0ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0ODtMbzswO0w7OENDMjs7OztOOzs7OzsKK0Y5NDk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NDk7TG87MDtMOzk2Rjc7Ozs7Tjs7Ozs7CitGOTRBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTRBO0xvOzA7TDs1OEQ4Ozs7O047Ozs7OworRjk0QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0QjtMbzswO0w7NUM2Mjs7OztOOzs7OzsKK0Y5NEM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NEM7TG87MDtMOzZBMTM7Ozs7Tjs7Ozs7CitGOTREO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTREO0xvOzA7TDs2RERBOzs7O047Ozs7OworRjk0RTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0RTtMbzswO0w7NkYwRjs7OztOOzs7OzsKK0Y5NEY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NEY7TG87MDtMOzdEMkY7Ozs7Tjs7Ozs7CitGOTUwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTUwO0xvOzA7TDs3RTM3Ozs7O047Ozs7OworRjk1MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1MTtMbzswO0w7OTZGQjs7OztOOzs7OzsKK0Y5NTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NTI7TG87MDtMOzUyRDI7Ozs7Tjs7Ozs7CitGOTUzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTUzO0xvOzA7TDs4MDhCOzs7O047Ozs7OworRjk1NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1NDtMbzswO0w7NTFEQzs7OztOOzs7OzsKK0Y5NTU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NTU7TG87MDtMOzUxQ0M7Ozs7Tjs7Ozs7CitGOTU2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTU2O0xvOzA7TDs3QTFDOzs7O047Ozs7OworRjk1NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1NztMbzswO0w7N0RCRTs7OztOOzs7OzsKK0Y5NTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NTg7TG87MDtMOzgzRjE7Ozs7Tjs7Ozs7CitGOTU5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTU5O0xvOzA7TDs5Njc1Ozs7O047Ozs7OworRjk1QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1QTtMbzswO0w7OEI4MDs7OztOOzs7OzsKK0Y5NUI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NUI7TG87MDtMOzYyQ0Y7Ozs7Tjs7Ozs7CitGOTVDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTVDO0xvOzA7TDs2QTAyOzs7O047Ozs7OworRjk1RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1RDtMbzswO0w7OEFGRTs7OztOOzs7OzsKK0Y5NUU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NUU7TG87MDtMOzRFMzk7Ozs7Tjs7Ozs7CitGOTVGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTVGO0xvOzA7TDs1QkU3Ozs7O047Ozs7OworRjk2MDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2MDtMbzswO0w7NjAxMjs7OztOOzs7OzsKK0Y5NjE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NjE7TG87MDtMOzczODc7Ozs7Tjs7Ozs7CitGOTYyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTYyO0xvOzA7TDs3NTcwOzs7O047Ozs7OworRjk2MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2MztMbzswO0w7NTMxNzs7OztOOzs7OzsKK0Y5NjQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NjQ7TG87MDtMOzc4RkI7Ozs7Tjs7Ozs7CitGOTY1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTY1O0xvOzA7TDs0RkJGOzs7O047Ozs7OworRjk2NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2NjtMbzswO0w7NUZBOTs7OztOOzs7OzsKK0Y5Njc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Njc7TG87MDtMOzRFMEQ7Ozs7Tjs7Ozs7CitGOTY4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTY4O0xvOzA7TDs2Q0NDOzs7O047Ozs7OworRjk2OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2OTtMbzswO0w7NjU3ODs7OztOOzs7OzsKK0Y5NkE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NkE7TG87MDtMOzdEMjI7Ozs7Tjs7Ozs7CitGOTZCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTZCO0xvOzA7TDs1M0MzOzs7O047Ozs7OworRjk2QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2QztMbzswO0w7NTg1RTs7OztOOzs7OzsKK0Y5NkQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NkQ7TG87MDtMOzc3MDE7Ozs7Tjs7Ozs7CitGOTZFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTZFO0xvOzA7TDs4NDQ5Ozs7O047Ozs7OworRjk2RjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2RjtMbzswO0w7OEFBQTs7OztOOzs7OzsKK0Y5NzA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NzA7TG87MDtMOzZCQkE7Ozs7Tjs7Ozs7CitGOTcxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTcxO0xvOzA7TDs4RkIwOzs7O047Ozs7OworRjk3MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3MjtMbzswO0w7NkM4ODs7OztOOzs7OzsKK0Y5NzM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NzM7TG87MDtMOzYyRkU7Ozs7Tjs7Ozs7CitGOTc0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTc0O0xvOzA7TDs4MkU1Ozs7O047Ozs7OworRjk3NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3NTtMbzswO0w7NjNBMDs7OztOOzs7OzsKK0Y5NzY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NzY7TG87MDtMOzc1NjU7Ozs7Tjs7Ozs7CitGOTc3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTc3O0xvOzA7TDs0RUFFOzs7O047Ozs7OworRjk3ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3ODtMbzswO0w7NTE2OTs7OztOOzs7OzsKK0Y5Nzk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Nzk7TG87MDtMOzUxQzk7Ozs7Tjs7Ozs7CitGOTdBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTdBO0xvOzA7TDs2ODgxOzs7O047Ozs7OworRjk3QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3QjtMbzswO0w7N0NFNzs7OztOOzs7OzsKK0Y5N0M7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5N0M7TG87MDtMOzgyNkY7Ozs7Tjs7Ozs7CitGOTdEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTdEO0xvOzA7TDs4QUQyOzs7O047Ozs7OworRjk3RTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3RTtMbzswO0w7OTFDRjs7OztOOzs7OzsKK0Y5N0Y7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5N0Y7TG87MDtMOzUyRjU7Ozs7Tjs7Ozs7CitGOTgwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTgwO0xvOzA7TDs1NDQyOzs7O047Ozs7OworRjk4MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4MTtMbzswO0w7NTk3Mzs7OztOOzs7OzsKK0Y5ODI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5ODI7TG87MDtMOzVFRUM7Ozs7Tjs7Ozs7CitGOTgzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTgzO0xvOzA7TDs2NUM1Ozs7O047Ozs7OworRjk4NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4NDtMbzswO0w7NkZGRTs7OztOOzs7OzsKK0Y5ODU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5ODU7TG87MDtMOzc5MkE7Ozs7Tjs7Ozs7CitGOTg2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTg2O0xvOzA7TDs5NUFEOzs7O047Ozs7OworRjk4NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4NztMbzswO0w7OUE2QTs7OztOOzs7OzsKK0Y5ODg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5ODg7TG87MDtMOzlFOTc7Ozs7Tjs7Ozs7CitGOTg5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTg5O0xvOzA7TDs5RUNFOzs7O047Ozs7OworRjk4QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4QTtMbzswO0w7NTI5Qjs7OztOOzs7OzsKK0Y5OEI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OEI7TG87MDtMOzY2QzY7Ozs7Tjs7Ozs7CitGOThDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOThDO0xvOzA7TDs2Qjc3Ozs7O047Ozs7OworRjk4RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4RDtMbzswO0w7OEY2Mjs7OztOOzs7OzsKK0Y5OEU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OEU7TG87MDtMOzVFNzQ7Ozs7Tjs7Ozs7CitGOThGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOThGO0xvOzA7TDs2MTkwOzs7O047Ozs7OworRjk5MDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5MDtMbzswO0w7NjIwMDs7OztOOzs7OzsKK0Y5OTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OTE7TG87MDtMOzY0OUE7Ozs7Tjs7Ozs7CitGOTkyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTkyO0xvOzA7TDs2RjIzOzs7O047Ozs7OworRjk5MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5MztMbzswO0w7NzE0OTs7OztOOzs7OzsKK0Y5OTQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OTQ7TG87MDtMOzc0ODk7Ozs7Tjs7Ozs7CitGOTk1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTk1O0xvOzA7TDs3OUNBOzs7O047Ozs7OworRjk5NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5NjtMbzswO0w7N0RGNDs7OztOOzs7OzsKK0Y5OTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OTc7TG87MDtMOzgwNkY7Ozs7Tjs7Ozs7CitGOTk4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTk4O0xvOzA7TDs4RjI2Ozs7O047Ozs7OworRjk5OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5OTtMbzswO0w7ODRFRTs7OztOOzs7OzsKK0Y5OUE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OUE7TG87MDtMOzkwMjM7Ozs7Tjs7Ozs7CitGOTlCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTlCO0xvOzA7TDs5MzRBOzs7O047Ozs7OworRjk5QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5QztMbzswO0w7NTIxNzs7OztOOzs7OzsKK0Y5OUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OUQ7TG87MDtMOzUyQTM7Ozs7Tjs7Ozs7CitGOTlFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTlFO0xvOzA7TDs1NEJEOzs7O047Ozs7OworRjk5RjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5RjtMbzswO0w7NzBDODs7OztOOzs7OzsKK0Y5QTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QTA7TG87MDtMOzg4QzI7Ozs7Tjs7Ozs7CitGOUExO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUExO0xvOzA7TDs4QUFBOzs7O047Ozs7OworRjlBMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBMjtMbzswO0w7NUVDOTs7OztOOzs7OzsKK0Y5QTM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QTM7TG87MDtMOzVGRjU7Ozs7Tjs7Ozs7CitGOUE0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUE0O0xvOzA7TDs2MzdCOzs7O047Ozs7OworRjlBNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBNTtMbzswO0w7NkJBRTs7OztOOzs7OzsKK0Y5QTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QTY7TG87MDtMOzdDM0U7Ozs7Tjs7Ozs7CitGOUE3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUE3O0xvOzA7TDs3Mzc1Ozs7O047Ozs7OworRjlBODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBODtMbzswO0w7NEVFNDs7OztOOzs7OzsKK0Y5QTk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QTk7TG87MDtMOzU2Rjk7Ozs7Tjs7Ozs7CitGOUFBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUFBO0xvOzA7TDs1QkU3Ozs7O047Ozs7OworRjlBQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBQjtMbzswO0w7NURCQTs7OztOOzs7OzsKK0Y5QUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QUM7TG87MDtMOzYwMUM7Ozs7Tjs7Ozs7CitGOUFEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUFEO0xvOzA7TDs3M0IyOzs7O047Ozs7OworRjlBRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBRTtMbzswO0w7NzQ2OTs7OztOOzs7OzsKK0Y5QUY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QUY7TG87MDtMOzdGOUE7Ozs7Tjs7Ozs7CitGOUIwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUIwO0xvOzA7TDs4MDQ2Ozs7O047Ozs7OworRjlCMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCMTtMbzswO0w7OTIzNDs7OztOOzs7OzsKK0Y5QjI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QjI7TG87MDtMOzk2RjY7Ozs7Tjs7Ozs7CitGOUIzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUIzO0xvOzA7TDs5NzQ4Ozs7O047Ozs7OworRjlCNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCNDtMbzswO0w7OTgxODs7OztOOzs7OzsKK0Y5QjU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QjU7TG87MDtMOzRGOEI7Ozs7Tjs7Ozs7CitGOUI2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUI2O0xvOzA7TDs3OUFFOzs7O047Ozs7OworRjlCNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCNztMbzswO0w7OTFCNDs7OztOOzs7OzsKK0Y5Qjg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Qjg7TG87MDtMOzk2Qjg7Ozs7Tjs7Ozs7CitGOUI5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUI5O0xvOzA7TDs2MEUxOzs7O047Ozs7OworRjlCQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCQTtMbzswO0w7NEU4Njs7OztOOzs7OzsKK0Y5QkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QkI7TG87MDtMOzUwREE7Ozs7Tjs7Ozs7CitGOUJDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUJDO0xvOzA7TDs1QkVFOzs7O047Ozs7OworRjlCRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCRDtMbzswO0w7NUMzRjs7OztOOzs7OzsKK0Y5QkU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QkU7TG87MDtMOzY1OTk7Ozs7Tjs7Ozs7CitGOUJGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUJGO0xvOzA7TDs2QTAyOzs7O047Ozs7OworRjlDMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDMDtMbzswO0w7NzFDRTs7OztOOzs7OzsKK0Y5QzE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QzE7TG87MDtMOzc2NDI7Ozs7Tjs7Ozs7CitGOUMyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUMyO0xvOzA7TDs4NEZDOzs7O047Ozs7OworRjlDMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDMztMbzswO0w7OTA3Qzs7OztOOzs7OzsKK0Y5QzQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QzQ7TG87MDtMOzlGOEQ7Ozs7Tjs7Ozs7CitGOUM1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUM1O0xvOzA7TDs2Njg4Ozs7O047Ozs7OworRjlDNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDNjtMbzswO0w7OTYyRTs7OztOOzs7OzsKK0Y5Qzc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Qzc7TG87MDtMOzUyODk7Ozs7Tjs7Ozs7CitGOUM4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUM4O0xvOzA7TDs2NzdCOzs7O047Ozs7OworRjlDOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDOTtMbzswO0w7NjdGMzs7OztOOzs7OzsKK0Y5Q0E7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Q0E7TG87MDtMOzZENDE7Ozs7Tjs7Ozs7CitGOUNCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUNCO0xvOzA7TDs2RTlDOzs7O047Ozs7OworRjlDQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDQztMbzswO0w7NzQwOTs7OztOOzs7OzsKK0Y5Q0Q7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Q0Q7TG87MDtMOzc1NTk7Ozs7Tjs7Ozs7CitGOUNFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUNFO0xvOzA7TDs3ODZCOzs7O047Ozs7OworRjlDRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDRjtMbzswO0w7N0QxMDs7OztOOzs7OzsKK0Y5RDA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RDA7TG87MDtMOzk4NUU7Ozs7Tjs7Ozs7CitGOUQxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUQxO0xvOzA7TDs1MTZEOzs7O047Ozs7OworRjlEMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlEMjtMbzswO0w7NjIyRTs7OztOOzs7OzsKK0Y5RDM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RDM7TG87MDtMOzk2Nzg7Ozs7Tjs7Ozs7CitGOUQ0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUQ0O0xvOzA7TDs1MDJCOzs7O047Ozs7OworRjlENTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlENTtMbzswO0w7NUQxOTs7OztOOzs7OzsKK0Y5RDY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RDY7TG87MDtMOzZERUE7Ozs7Tjs7Ozs7CitGOUQ3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUQ3O0xvOzA7TDs4RjJBOzs7O047Ozs7OworRjlEODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlEODtMbzswO0w7NUY4Qjs7OztOOzs7OzsKK0Y5RDk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RDk7TG87MDtMOzYxNDQ7Ozs7Tjs7Ozs7CitGOURBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOURBO0xvOzA7TDs2ODE3Ozs7O047Ozs7OworRjlEQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlEQjtMbzswO0w7NzM4Nzs7OztOOzs7OzsKK0Y5REM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5REM7TG87MDtMOzk2ODY7Ozs7Tjs7Ozs7CitGOUREO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUREO0xvOzA7TDs1MjI5Ozs7O047Ozs7OworRjlERTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlERTtMbzswO0w7NTQwRjs7OztOOzs7OzsKK0Y5REY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5REY7TG87MDtMOzVDNjU7Ozs7Tjs7Ozs7CitGOUUwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUUwO0xvOzA7TDs2NjEzOzs7O047Ozs7OworRjlFMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFMTtMbzswO0w7Njc0RTs7OztOOzs7OzsKK0Y5RTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RTI7TG87MDtMOzY4QTg7Ozs7Tjs7Ozs7CitGOUUzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUUzO0xvOzA7TDs2Q0U1Ozs7O047Ozs7OworRjlFNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFNDtMbzswO0w7NzQwNjs7OztOOzs7OzsKK0Y5RTU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RTU7TG87MDtMOzc1RTI7Ozs7Tjs7Ozs7CitGOUU2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUU2O0xvOzA7TDs3Rjc5Ozs7O047Ozs7OworRjlFNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFNztMbzswO0w7ODhDRjs7OztOOzs7OzsKK0Y5RTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RTg7TG87MDtMOzg4RTE7Ozs7Tjs7Ozs7CitGOUU5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUU5O0xvOzA7TDs5MUNDOzs7O047Ozs7OworRjlFQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFQTtMbzswO0w7OTZFMjs7OztOOzs7OzsKK0Y5RUI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RUI7TG87MDtMOzUzM0Y7Ozs7Tjs7Ozs7CitGOUVDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUVDO0xvOzA7TDs2RUJBOzs7O047Ozs7OworRjlFRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFRDtMbzswO0w7NTQxRDs7OztOOzs7OzsKK0Y5RUU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RUU7TG87MDtMOzcxRDA7Ozs7Tjs7Ozs7CitGOUVGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUVGO0xvOzA7TDs3NDk4Ozs7O047Ozs7OworRjlGMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGMDtMbzswO0w7ODVGQTs7OztOOzs7OzsKK0Y5RjE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RjE7TG87MDtMOzk2QTM7Ozs7Tjs7Ozs7CitGOUYyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUYyO0xvOzA7TDs5QzU3Ozs7O047Ozs7OworRjlGMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGMztMbzswO0w7OUU5Rjs7OztOOzs7OzsKK0Y5RjQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RjQ7TG87MDtMOzY3OTc7Ozs7Tjs7Ozs7CitGOUY1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUY1O0xvOzA7TDs2RENCOzs7O047Ozs7OworRjlGNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGNjtMbzswO0w7ODFFODs7OztOOzs7OzsKK0Y5Rjc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Rjc7TG87MDtMOzdBQ0I7Ozs7Tjs7Ozs7CitGOUY4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUY4O0xvOzA7TDs3QjIwOzs7O047Ozs7OworRjlGOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGOTtMbzswO0w7N0M5Mjs7OztOOzs7OzsKK0Y5RkE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RkE7TG87MDtMOzcyQzA7Ozs7Tjs7Ozs7CitGOUZCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUZCO0xvOzA7TDs3MDk5Ozs7O047Ozs7OworRjlGQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGQztMbzswO0w7OEI1ODs7OztOOzs7OzsKK0Y5RkQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RkQ7TG87MDtMOzRFQzA7Ozs7Tjs7Ozs7CitGOUZFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUZFO0xvOzA7TDs4MzM2Ozs7O047Ozs7OworRjlGRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGRjtMbzswO0w7NTIzQTs7OztOOzs7OzsKK0ZBMDA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMDA7TG87MDtMOzUyMDc7Ozs7Tjs7Ozs7CitGQTAxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTAxO0xvOzA7TDs1RUE2Ozs7O047Ozs7OworRkEwMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwMjtMbzswO0w7NjJEMzs7OztOOzs7OzsKK0ZBMDM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMDM7TG87MDtMOzdDRDY7Ozs7Tjs7Ozs7CitGQTA0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTA0O0xvOzA7TDs1Qjg1Ozs7O047Ozs7OworRkEwNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwNTtMbzswO0w7NkQxRTs7OztOOzs7OzsKK0ZBMDY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMDY7TG87MDtMOzY2QjQ7Ozs7Tjs7Ozs7CitGQTA3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTA3O0xvOzA7TDs4RjNCOzs7O047Ozs7OworRkEwODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwODtMbzswO0w7ODg0Qzs7OztOOzs7OzsKK0ZBMDk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMDk7TG87MDtMOzk2NEQ7Ozs7Tjs7Ozs7CitGQTBBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTBBO0xvOzA7TDs4OThCOzs7O047Ozs7OworRkEwQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwQjtMbzswO0w7NUVEMzs7OztOOzs7OzsKK0ZBMEM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMEM7TG87MDtMOzUxNDA7Ozs7Tjs7Ozs7CitGQTBEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTBEO0xvOzA7TDs1NUMwOzs7O047Ozs7OworRkEwRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwRTtMbzswO0w7Ozs7O047Ozs7OworRkEwRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwRjtMbzswO0w7Ozs7O047Ozs7OworRkExMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExMDtMbzswO0w7NTg1QTs7OztOOzs7OzsKK0ZBMTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMTE7TG87MDtMOzs7OztOOzs7OzsKK0ZBMTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMTI7TG87MDtMOzY2NzQ7Ozs7Tjs7Ozs7CitGQTEzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTEzO0xvOzA7TDs7Ozs7Tjs7Ozs7CitGQTE0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTE0O0xvOzA7TDs7Ozs7Tjs7Ozs7CitGQTE1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTE1O0xvOzA7TDs1MURFOzs7O047Ozs7OworRkExNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExNjtMbzswO0w7NzMyQTs7OztOOzs7OzsKK0ZBMTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMTc7TG87MDtMOzc2Q0E7Ozs7Tjs7Ozs7CitGQTE4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTE4O0xvOzA7TDs3OTNDOzs7O047Ozs7OworRkExOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExOTtMbzswO0w7Nzk1RTs7OztOOzs7OzsKK0ZBMUE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMUE7TG87MDtMOzc5NjU7Ozs7Tjs7Ozs7CitGQTFCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTFCO0xvOzA7TDs3OThGOzs7O047Ozs7OworRkExQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExQztMbzswO0w7OTc1Njs7OztOOzs7OzsKK0ZBMUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMUQ7TG87MDtMOzdDQkU7Ozs7Tjs7Ozs7CitGQTFFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTFFO0xvOzA7TDs3RkJEOzs7O047Ozs7OworRkExRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExRjtMbzswO0w7Ozs7O047Ozs7OworRkEyMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyMDtMbzswO0w7ODYxMjs7OztOOzs7OzsKK0ZBMjE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMjE7TG87MDtMOzs7OztOOzs7OzsKK0ZBMjI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMjI7TG87MDtMOzhBRjg7Ozs7Tjs7Ozs7CitGQTIzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTIzO0xvOzA7TDs7Ozs7Tjs7Ozs7CitGQTI0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTI0O0xvOzA7TDs7Ozs7Tjs7Ozs7CitGQTI1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTI1O0xvOzA7TDs5MDM4Ozs7O047Ozs7OworRkEyNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyNjtMbzswO0w7OTBGRDs7OztOOzs7OzsKK0ZBMjc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMjc7TG87MDtMOzs7OztOOzs7OzsKK0ZBMjg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMjg7TG87MDtMOzs7OztOOzs7OzsKK0ZBMjk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMjk7TG87MDtMOzs7OztOOzs7OzsKK0ZBMkE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMkE7TG87MDtMOzk4RUY7Ozs7Tjs7Ozs7CitGQTJCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTJCO0xvOzA7TDs5OEZDOzs7O047Ozs7OworRkEyQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyQztMbzswO0w7OTkyODs7OztOOzs7OzsKK0ZBMkQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMkQ7TG87MDtMOzlEQjQ7Ozs7Tjs7Ozs7CitGQjAwO0xBVElOIFNNQUxMIExJR0FUVVJFIEZGO0xsOzA7TDs8Y29tcGF0PiAwMDY2IDAwNjY7Ozs7Tjs7Ozs7CitGQjAxO0xBVElOIFNNQUxMIExJR0FUVVJFIEZJO0xsOzA7TDs8Y29tcGF0PiAwMDY2IDAwNjk7Ozs7Tjs7Ozs7CitGQjAyO0xBVElOIFNNQUxMIExJR0FUVVJFIEZMO0xsOzA7TDs8Y29tcGF0PiAwMDY2IDAwNkM7Ozs7Tjs7Ozs7CitGQjAzO0xBVElOIFNNQUxMIExJR0FUVVJFIEZGSTtMbDswO0w7PGNvbXBhdD4gMDA2NiAwMDY2IDAwNjk7Ozs7Tjs7Ozs7CitGQjA0O0xBVElOIFNNQUxMIExJR0FUVVJFIEZGTDtMbDswO0w7PGNvbXBhdD4gMDA2NiAwMDY2IDAwNkM7Ozs7Tjs7Ozs7CitGQjA1O0xBVElOIFNNQUxMIExJR0FUVVJFIExPTkcgUyBUO0xsOzA7TDs8Y29tcGF0PiAwMTdGIDAwNzQ7Ozs7Tjs7Ozs7CitGQjA2O0xBVElOIFNNQUxMIExJR0FUVVJFIFNUO0xsOzA7TDs8Y29tcGF0PiAwMDczIDAwNzQ7Ozs7Tjs7Ozs7CitGQjEzO0FSTUVOSUFOIFNNQUxMIExJR0FUVVJFIE1FTiBOT1c7TGw7MDtMOzxjb21wYXQ+IDA1NzQgMDU3Njs7OztOOzs7OzsKK0ZCMTQ7QVJNRU5JQU4gU01BTEwgTElHQVRVUkUgTUVOIEVDSDtMbDswO0w7PGNvbXBhdD4gMDU3NCAwNTY1Ozs7O047Ozs7OworRkIxNTtBUk1FTklBTiBTTUFMTCBMSUdBVFVSRSBNRU4gSU5JO0xsOzA7TDs8Y29tcGF0PiAwNTc0IDA1NkI7Ozs7Tjs7Ozs7CitGQjE2O0FSTUVOSUFOIFNNQUxMIExJR0FUVVJFIFZFVyBOT1c7TGw7MDtMOzxjb21wYXQ+IDA1N0UgMDU3Njs7OztOOzs7OzsKK0ZCMTc7QVJNRU5JQU4gU01BTEwgTElHQVRVUkUgTUVOIFhFSDtMbDswO0w7PGNvbXBhdD4gMDU3NCAwNTZEOzs7O047Ozs7OworRkIxRTtIRUJSRVcgUE9JTlQgSlVERU8tU1BBTklTSCBWQVJJS0E7TW47MjY7T047Ozs7O047SEVCUkVXIFBPSU5UIFZBUklLQTs7OzsKK0ZCMUY7SEVCUkVXIExJR0FUVVJFIFlJRERJU0ggWU9EIFlPRCBQQVRBSDtMbzswO1I7MDVGMiAwNUI3Ozs7O047Ozs7OworRkIyMDtIRUJSRVcgTEVUVEVSIEFMVEVSTkFUSVZFIEFZSU47TG87MDtSOzxmb250PiAwNUUyOzs7O047Ozs7OworRkIyMTtIRUJSRVcgTEVUVEVSIFdJREUgQUxFRjtMbzswO1I7PGZvbnQ+IDA1RDA7Ozs7Tjs7Ozs7CitGQjIyO0hFQlJFVyBMRVRURVIgV0lERSBEQUxFVDtMbzswO1I7PGZvbnQ+IDA1RDM7Ozs7Tjs7Ozs7CitGQjIzO0hFQlJFVyBMRVRURVIgV0lERSBIRTtMbzswO1I7PGZvbnQ+IDA1RDQ7Ozs7Tjs7Ozs7CitGQjI0O0hFQlJFVyBMRVRURVIgV0lERSBLQUY7TG87MDtSOzxmb250PiAwNURCOzs7O047Ozs7OworRkIyNTtIRUJSRVcgTEVUVEVSIFdJREUgTEFNRUQ7TG87MDtSOzxmb250PiAwNURDOzs7O047Ozs7OworRkIyNjtIRUJSRVcgTEVUVEVSIFdJREUgRklOQUwgTUVNO0xvOzA7Ujs8Zm9udD4gMDVERDs7OztOOzs7OzsKK0ZCMjc7SEVCUkVXIExFVFRFUiBXSURFIFJFU0g7TG87MDtSOzxmb250PiAwNUU4Ozs7O047Ozs7OworRkIyODtIRUJSRVcgTEVUVEVSIFdJREUgVEFWO0xvOzA7Ujs8Zm9udD4gMDVFQTs7OztOOzs7OzsKK0ZCMjk7SEVCUkVXIExFVFRFUiBBTFRFUk5BVElWRSBQTFVTIFNJR047U207MDtFVDs8Zm9udD4gMDAyQjs7OztOOzs7OzsKK0ZCMkE7SEVCUkVXIExFVFRFUiBTSElOIFdJVEggU0hJTiBET1Q7TG87MDtSOzA1RTkgMDVDMTs7OztOOzs7OzsKK0ZCMkI7SEVCUkVXIExFVFRFUiBTSElOIFdJVEggU0lOIERPVDtMbzswO1I7MDVFOSAwNUMyOzs7O047Ozs7OworRkIyQztIRUJSRVcgTEVUVEVSIFNISU4gV0lUSCBEQUdFU0ggQU5EIFNISU4gRE9UO0xvOzA7UjswNUU5IDA1QkMgMDVDMTs7OztOOzs7OzsKK0ZCMkQ7SEVCUkVXIExFVFRFUiBTSElOIFdJVEggREFHRVNIIEFORCBTSU4gRE9UO0xvOzA7UjswNUU5IDA1QkMgMDVDMjs7OztOOzs7OzsKK0ZCMkU7SEVCUkVXIExFVFRFUiBBTEVGIFdJVEggUEFUQUg7TG87MDtSOzA1RDAgMDVCNzs7OztOOzs7OzsKK0ZCMkY7SEVCUkVXIExFVFRFUiBBTEVGIFdJVEggUUFNQVRTO0xvOzA7UjswNUQwIDA1Qjg7Ozs7Tjs7Ozs7CitGQjMwO0hFQlJFVyBMRVRURVIgQUxFRiBXSVRIIE1BUElRO0xvOzA7UjswNUQwIDA1QkM7Ozs7Tjs7Ozs7CitGQjMxO0hFQlJFVyBMRVRURVIgQkVUIFdJVEggREFHRVNIO0xvOzA7UjswNUQxIDA1QkM7Ozs7Tjs7Ozs7CitGQjMyO0hFQlJFVyBMRVRURVIgR0lNRUwgV0lUSCBEQUdFU0g7TG87MDtSOzA1RDIgMDVCQzs7OztOOzs7OzsKK0ZCMzM7SEVCUkVXIExFVFRFUiBEQUxFVCBXSVRIIERBR0VTSDtMbzswO1I7MDVEMyAwNUJDOzs7O047Ozs7OworRkIzNDtIRUJSRVcgTEVUVEVSIEhFIFdJVEggTUFQSVE7TG87MDtSOzA1RDQgMDVCQzs7OztOOzs7OzsKK0ZCMzU7SEVCUkVXIExFVFRFUiBWQVYgV0lUSCBEQUdFU0g7TG87MDtSOzA1RDUgMDVCQzs7OztOOzs7OzsKK0ZCMzY7SEVCUkVXIExFVFRFUiBaQVlJTiBXSVRIIERBR0VTSDtMbzswO1I7MDVENiAwNUJDOzs7O047Ozs7OworRkIzODtIRUJSRVcgTEVUVEVSIFRFVCBXSVRIIERBR0VTSDtMbzswO1I7MDVEOCAwNUJDOzs7O047Ozs7OworRkIzOTtIRUJSRVcgTEVUVEVSIFlPRCBXSVRIIERBR0VTSDtMbzswO1I7MDVEOSAwNUJDOzs7O047Ozs7OworRkIzQTtIRUJSRVcgTEVUVEVSIEZJTkFMIEtBRiBXSVRIIERBR0VTSDtMbzswO1I7MDVEQSAwNUJDOzs7O047Ozs7OworRkIzQjtIRUJSRVcgTEVUVEVSIEtBRiBXSVRIIERBR0VTSDtMbzswO1I7MDVEQiAwNUJDOzs7O047Ozs7OworRkIzQztIRUJSRVcgTEVUVEVSIExBTUVEIFdJVEggREFHRVNIO0xvOzA7UjswNURDIDA1QkM7Ozs7Tjs7Ozs7CitGQjNFO0hFQlJFVyBMRVRURVIgTUVNIFdJVEggREFHRVNIO0xvOzA7UjswNURFIDA1QkM7Ozs7Tjs7Ozs7CitGQjQwO0hFQlJFVyBMRVRURVIgTlVOIFdJVEggREFHRVNIO0xvOzA7UjswNUUwIDA1QkM7Ozs7Tjs7Ozs7CitGQjQxO0hFQlJFVyBMRVRURVIgU0FNRUtIIFdJVEggREFHRVNIO0xvOzA7UjswNUUxIDA1QkM7Ozs7Tjs7Ozs7CitGQjQzO0hFQlJFVyBMRVRURVIgRklOQUwgUEUgV0lUSCBEQUdFU0g7TG87MDtSOzA1RTMgMDVCQzs7OztOOzs7OzsKK0ZCNDQ7SEVCUkVXIExFVFRFUiBQRSBXSVRIIERBR0VTSDtMbzswO1I7MDVFNCAwNUJDOzs7O047Ozs7OworRkI0NjtIRUJSRVcgTEVUVEVSIFRTQURJIFdJVEggREFHRVNIO0xvOzA7UjswNUU2IDA1QkM7Ozs7Tjs7Ozs7CitGQjQ3O0hFQlJFVyBMRVRURVIgUU9GIFdJVEggREFHRVNIO0xvOzA7UjswNUU3IDA1QkM7Ozs7Tjs7Ozs7CitGQjQ4O0hFQlJFVyBMRVRURVIgUkVTSCBXSVRIIERBR0VTSDtMbzswO1I7MDVFOCAwNUJDOzs7O047Ozs7OworRkI0OTtIRUJSRVcgTEVUVEVSIFNISU4gV0lUSCBEQUdFU0g7TG87MDtSOzA1RTkgMDVCQzs7OztOOzs7OzsKK0ZCNEE7SEVCUkVXIExFVFRFUiBUQVYgV0lUSCBEQUdFU0g7TG87MDtSOzA1RUEgMDVCQzs7OztOOzs7OzsKK0ZCNEI7SEVCUkVXIExFVFRFUiBWQVYgV0lUSCBIT0xBTTtMbzswO1I7MDVENSAwNUI5Ozs7O047Ozs7OworRkI0QztIRUJSRVcgTEVUVEVSIEJFVCBXSVRIIFJBRkU7TG87MDtSOzA1RDEgMDVCRjs7OztOOzs7OzsKK0ZCNEQ7SEVCUkVXIExFVFRFUiBLQUYgV0lUSCBSQUZFO0xvOzA7UjswNURCIDA1QkY7Ozs7Tjs7Ozs7CitGQjRFO0hFQlJFVyBMRVRURVIgUEUgV0lUSCBSQUZFO0xvOzA7UjswNUU0IDA1QkY7Ozs7Tjs7Ozs7CitGQjRGO0hFQlJFVyBMSUdBVFVSRSBBTEVGIExBTUVEO0xvOzA7Ujs8Y29tcGF0PiAwNUQwIDA1REM7Ozs7Tjs7Ozs7CitGQjUwO0FSQUJJQyBMRVRURVIgQUxFRiBXQVNMQSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NzE7Ozs7Tjs7Ozs7CitGQjUxO0FSQUJJQyBMRVRURVIgQUxFRiBXQVNMQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NzE7Ozs7Tjs7Ozs7CitGQjUyO0FSQUJJQyBMRVRURVIgQkVFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2N0I7Ozs7Tjs7Ozs7CitGQjUzO0FSQUJJQyBMRVRURVIgQkVFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2N0I7Ozs7Tjs7Ozs7CitGQjU0O0FSQUJJQyBMRVRURVIgQkVFSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjdCOzs7O047Ozs7OworRkI1NTtBUkFCSUMgTEVUVEVSIEJFRUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2N0I7Ozs7Tjs7Ozs7CitGQjU2O0FSQUJJQyBMRVRURVIgUEVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY3RTs7OztOOzs7OzsKK0ZCNTc7QVJBQklDIExFVFRFUiBQRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjdFOzs7O047Ozs7OworRkI1ODtBUkFCSUMgTEVUVEVSIFBFSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjdFOzs7O047Ozs7OworRkI1OTtBUkFCSUMgTEVUVEVSIFBFSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDY3RTs7OztOOzs7OzsKK0ZCNUE7QVJBQklDIExFVFRFUiBCRUhFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2ODA7Ozs7Tjs7Ozs7CitGQjVCO0FSQUJJQyBMRVRURVIgQkVIRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjgwOzs7O047Ozs7OworRkI1QztBUkFCSUMgTEVUVEVSIEJFSEVIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2ODA7Ozs7Tjs7Ozs7CitGQjVEO0FSQUJJQyBMRVRURVIgQkVIRUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2ODA7Ozs7Tjs7Ozs7CitGQjVFO0FSQUJJQyBMRVRURVIgVFRFSEVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY3QTs7OztOOzs7OzsKK0ZCNUY7QVJBQklDIExFVFRFUiBUVEVIRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjdBOzs7O047Ozs7OworRkI2MDtBUkFCSUMgTEVUVEVSIFRURUhFSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjdBOzs7O047Ozs7OworRkI2MTtBUkFCSUMgTEVUVEVSIFRURUhFSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDY3QTs7OztOOzs7OzsKK0ZCNjI7QVJBQklDIExFVFRFUiBURUhFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2N0Y7Ozs7Tjs7Ozs7CitGQjYzO0FSQUJJQyBMRVRURVIgVEVIRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjdGOzs7O047Ozs7OworRkI2NDtBUkFCSUMgTEVUVEVSIFRFSEVIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2N0Y7Ozs7Tjs7Ozs7CitGQjY1O0FSQUJJQyBMRVRURVIgVEVIRUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2N0Y7Ozs7Tjs7Ozs7CitGQjY2O0FSQUJJQyBMRVRURVIgVFRFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2Nzk7Ozs7Tjs7Ozs7CitGQjY3O0FSQUJJQyBMRVRURVIgVFRFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2Nzk7Ozs7Tjs7Ozs7CitGQjY4O0FSQUJJQyBMRVRURVIgVFRFSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjc5Ozs7O047Ozs7OworRkI2OTtBUkFCSUMgTEVUVEVSIFRURUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2Nzk7Ozs7Tjs7Ozs7CitGQjZBO0FSQUJJQyBMRVRURVIgVkVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDZBNDs7OztOOzs7OzsKK0ZCNkI7QVJBQklDIExFVFRFUiBWRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNkE0Ozs7O047Ozs7OworRkI2QztBUkFCSUMgTEVUVEVSIFZFSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNkE0Ozs7O047Ozs7OworRkI2RDtBUkFCSUMgTEVUVEVSIFZFSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDZBNDs7OztOOzs7OzsKK0ZCNkU7QVJBQklDIExFVFRFUiBQRUhFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2QTY7Ozs7Tjs7Ozs7CitGQjZGO0FSQUJJQyBMRVRURVIgUEVIRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNkE2Ozs7O047Ozs7OworRkI3MDtBUkFCSUMgTEVUVEVSIFBFSEVIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2QTY7Ozs7Tjs7Ozs7CitGQjcxO0FSQUJJQyBMRVRURVIgUEVIRUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2QTY7Ozs7Tjs7Ozs7CitGQjcyO0FSQUJJQyBMRVRURVIgRFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2ODQ7Ozs7Tjs7Ozs7CitGQjczO0FSQUJJQyBMRVRURVIgRFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2ODQ7Ozs7Tjs7Ozs7CitGQjc0O0FSQUJJQyBMRVRURVIgRFlFSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjg0Ozs7O047Ozs7OworRkI3NTtBUkFCSUMgTEVUVEVSIERZRUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2ODQ7Ozs7Tjs7Ozs7CitGQjc2O0FSQUJJQyBMRVRURVIgTllFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2ODM7Ozs7Tjs7Ozs7CitGQjc3O0FSQUJJQyBMRVRURVIgTllFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2ODM7Ozs7Tjs7Ozs7CitGQjc4O0FSQUJJQyBMRVRURVIgTllFSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjgzOzs7O047Ozs7OworRkI3OTtBUkFCSUMgTEVUVEVSIE5ZRUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2ODM7Ozs7Tjs7Ozs7CitGQjdBO0FSQUJJQyBMRVRURVIgVENIRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjg2Ozs7O047Ozs7OworRkI3QjtBUkFCSUMgTEVUVEVSIFRDSEVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY4Njs7OztOOzs7OzsKK0ZCN0M7QVJBQklDIExFVFRFUiBUQ0hFSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjg2Ozs7O047Ozs7OworRkI3RDtBUkFCSUMgTEVUVEVSIFRDSEVIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjg2Ozs7O047Ozs7OworRkI3RTtBUkFCSUMgTEVUVEVSIFRDSEVIRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjg3Ozs7O047Ozs7OworRkI3RjtBUkFCSUMgTEVUVEVSIFRDSEVIRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjg3Ozs7O047Ozs7OworRkI4MDtBUkFCSUMgTEVUVEVSIFRDSEVIRUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY4Nzs7OztOOzs7OzsKK0ZCODE7QVJBQklDIExFVFRFUiBUQ0hFSEVIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjg3Ozs7O047Ozs7OworRkI4MjtBUkFCSUMgTEVUVEVSIEREQUhBTCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2OEQ7Ozs7Tjs7Ozs7CitGQjgzO0FSQUJJQyBMRVRURVIgRERBSEFMIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY4RDs7OztOOzs7OzsKK0ZCODQ7QVJBQklDIExFVFRFUiBEQUhBTCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2OEM7Ozs7Tjs7Ozs7CitGQjg1O0FSQUJJQyBMRVRURVIgREFIQUwgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjhDOzs7O047Ozs7OworRkI4NjtBUkFCSUMgTEVUVEVSIERVTCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2OEU7Ozs7Tjs7Ozs7CitGQjg3O0FSQUJJQyBMRVRURVIgRFVMIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY4RTs7OztOOzs7OzsKK0ZCODg7QVJBQklDIExFVFRFUiBEREFMIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY4ODs7OztOOzs7OzsKK0ZCODk7QVJBQklDIExFVFRFUiBEREFMIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY4ODs7OztOOzs7OzsKK0ZCOEE7QVJBQklDIExFVFRFUiBKRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjk4Ozs7O047Ozs7OworRkI4QjtBUkFCSUMgTEVUVEVSIEpFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2OTg7Ozs7Tjs7Ozs7CitGQjhDO0FSQUJJQyBMRVRURVIgUlJFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2OTE7Ozs7Tjs7Ozs7CitGQjhEO0FSQUJJQyBMRVRURVIgUlJFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2OTE7Ozs7Tjs7Ozs7CitGQjhFO0FSQUJJQyBMRVRURVIgS0VIRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNkE5Ozs7O047Ozs7OworRkI4RjtBUkFCSUMgTEVUVEVSIEtFSEVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDZBOTs7OztOOzs7OzsKK0ZCOTA7QVJBQklDIExFVFRFUiBLRUhFSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNkE5Ozs7O047Ozs7OworRkI5MTtBUkFCSUMgTEVUVEVSIEtFSEVIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNkE5Ozs7O047Ozs7OworRkI5MjtBUkFCSUMgTEVUVEVSIEdBRiBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2QUY7Ozs7Tjs7Ozs7CitGQjkzO0FSQUJJQyBMRVRURVIgR0FGIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDZBRjs7OztOOzs7OzsKK0ZCOTQ7QVJBQklDIExFVFRFUiBHQUYgSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDZBRjs7OztOOzs7OzsKK0ZCOTU7QVJBQklDIExFVFRFUiBHQUYgTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2QUY7Ozs7Tjs7Ozs7CitGQjk2O0FSQUJJQyBMRVRURVIgR1VFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2QjM7Ozs7Tjs7Ozs7CitGQjk3O0FSQUJJQyBMRVRURVIgR1VFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2QjM7Ozs7Tjs7Ozs7CitGQjk4O0FSQUJJQyBMRVRURVIgR1VFSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNkIzOzs7O047Ozs7OworRkI5OTtBUkFCSUMgTEVUVEVSIEdVRUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2QjM7Ozs7Tjs7Ozs7CitGQjlBO0FSQUJJQyBMRVRURVIgTkdPRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNkIxOzs7O047Ozs7OworRkI5QjtBUkFCSUMgTEVUVEVSIE5HT0VIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDZCMTs7OztOOzs7OzsKK0ZCOUM7QVJBQklDIExFVFRFUiBOR09FSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNkIxOzs7O047Ozs7OworRkI5RDtBUkFCSUMgTEVUVEVSIE5HT0VIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNkIxOzs7O047Ozs7OworRkI5RTtBUkFCSUMgTEVUVEVSIE5PT04gR0hVTk5BIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDZCQTs7OztOOzs7OzsKK0ZCOUY7QVJBQklDIExFVFRFUiBOT09OIEdIVU5OQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2QkE7Ozs7Tjs7Ozs7CitGQkEwO0FSQUJJQyBMRVRURVIgUk5PT04gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNkJCOzs7O047Ozs7OworRkJBMTtBUkFCSUMgTEVUVEVSIFJOT09OIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDZCQjs7OztOOzs7OzsKK0ZCQTI7QVJBQklDIExFVFRFUiBSTk9PTiBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNkJCOzs7O047Ozs7OworRkJBMztBUkFCSUMgTEVUVEVSIFJOT09OIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNkJCOzs7O047Ozs7OworRkJBNDtBUkFCSUMgTEVUVEVSIEhFSCBXSVRIIFlFSCBBQk9WRSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2QzA7Ozs7Tjs7Ozs7CitGQkE1O0FSQUJJQyBMRVRURVIgSEVIIFdJVEggWUVIIEFCT1ZFIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDZDMDs7OztOOzs7OzsKK0ZCQTY7QVJBQklDIExFVFRFUiBIRUggR09BTCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2QzE7Ozs7Tjs7Ozs7CitGQkE3O0FSQUJJQyBMRVRURVIgSEVIIEdPQUwgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNkMxOzs7O047Ozs7OworRkJBODtBUkFCSUMgTEVUVEVSIEhFSCBHT0FMIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2QzE7Ozs7Tjs7Ozs7CitGQkE5O0FSQUJJQyBMRVRURVIgSEVIIEdPQUwgTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2QzE7Ozs7Tjs7Ozs7CitGQkFBO0FSQUJJQyBMRVRURVIgSEVIIERPQUNIQVNITUVFIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDZCRTs7OztOOzs7OzsKK0ZCQUI7QVJBQklDIExFVFRFUiBIRUggRE9BQ0hBU0hNRUUgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNkJFOzs7O047Ozs7OworRkJBQztBUkFCSUMgTEVUVEVSIEhFSCBET0FDSEFTSE1FRSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNkJFOzs7O047Ozs7OworRkJBRDtBUkFCSUMgTEVUVEVSIEhFSCBET0FDSEFTSE1FRSBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDZCRTs7OztOOzs7OzsKK0ZCQUU7QVJBQklDIExFVFRFUiBZRUggQkFSUkVFIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDZEMjs7OztOOzs7OzsKK0ZCQUY7QVJBQklDIExFVFRFUiBZRUggQkFSUkVFIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDZEMjs7OztOOzs7OzsKK0ZCQjA7QVJBQklDIExFVFRFUiBZRUggQkFSUkVFIFdJVEggSEFNWkEgQUJPVkUgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNkQzOzs7O047Ozs7OworRkJCMTtBUkFCSUMgTEVUVEVSIFlFSCBCQVJSRUUgV0lUSCBIQU1aQSBBQk9WRSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2RDM7Ozs7Tjs7Ozs7CitGQkQzO0FSQUJJQyBMRVRURVIgTkcgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNkFEOzs7O047Ozs7OworRkJENDtBUkFCSUMgTEVUVEVSIE5HIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDZBRDs7OztOOzs7OzsKK0ZCRDU7QVJBQklDIExFVFRFUiBORyBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNkFEOzs7O047Ozs7OworRkJENjtBUkFCSUMgTEVUVEVSIE5HIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNkFEOzs7O047Ozs7OworRkJENztBUkFCSUMgTEVUVEVSIFUgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNkM3Ozs7O047Ozs7OworRkJEODtBUkFCSUMgTEVUVEVSIFUgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNkM3Ozs7O047Ozs7OworRkJEOTtBUkFCSUMgTEVUVEVSIE9FIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDZDNjs7OztOOzs7OzsKK0ZCREE7QVJBQklDIExFVFRFUiBPRSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2QzY7Ozs7Tjs7Ozs7CitGQkRCO0FSQUJJQyBMRVRURVIgWVUgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNkM4Ozs7O047Ozs7OworRkJEQztBUkFCSUMgTEVUVEVSIFlVIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDZDODs7OztOOzs7OzsKK0ZCREQ7QVJBQklDIExFVFRFUiBVIFdJVEggSEFNWkEgQUJPVkUgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjc3Ozs7O047Ozs7OworRkJERTtBUkFCSUMgTEVUVEVSIFZFIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDZDQjs7OztOOzs7OzsKK0ZCREY7QVJBQklDIExFVFRFUiBWRSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2Q0I7Ozs7Tjs7Ozs7CitGQkUwO0FSQUJJQyBMRVRURVIgS0lSR0hJWiBPRSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2QzU7Ozs7Tjs7Ozs7CitGQkUxO0FSQUJJQyBMRVRURVIgS0lSR0hJWiBPRSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2QzU7Ozs7Tjs7Ozs7CitGQkUyO0FSQUJJQyBMRVRURVIgS0lSR0hJWiBZVSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2Qzk7Ozs7Tjs7Ozs7CitGQkUzO0FSQUJJQyBMRVRURVIgS0lSR0hJWiBZVSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2Qzk7Ozs7Tjs7Ozs7CitGQkU0O0FSQUJJQyBMRVRURVIgRSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2RDA7Ozs7Tjs7Ozs7CitGQkU1O0FSQUJJQyBMRVRURVIgRSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2RDA7Ozs7Tjs7Ozs7CitGQkU2O0FSQUJJQyBMRVRURVIgRSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNkQwOzs7O047Ozs7OworRkJFNztBUkFCSUMgTEVUVEVSIEUgTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2RDA7Ozs7Tjs7Ozs7CitGQkU4O0FSQUJJQyBMRVRURVIgVUlHSFVSIEtBWkFLSCBLSVJHSElaIEFMRUYgTUFLU1VSQSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ5Ozs7O047Ozs7OworRkJFOTtBUkFCSUMgTEVUVEVSIFVJR0hVUiBLQVpBS0ggS0lSR0hJWiBBTEVGIE1BS1NVUkEgTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2NDk7Ozs7Tjs7Ozs7CitGQkVBO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEFMRUYgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjI2IDA2Mjc7Ozs7Tjs7Ozs7CitGQkVCO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEFMRUYgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjI2IDA2Mjc7Ozs7Tjs7Ozs7CitGQkVDO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEFFIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyNiAwNkQ1Ozs7O047Ozs7OworRkJFRDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBBRSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MjYgMDZENTs7OztOOzs7OzsKK0ZCRUU7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggV0FXIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyNiAwNjQ4Ozs7O047Ozs7OworRkJFRjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBXQVcgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjI2IDA2NDg7Ozs7Tjs7Ozs7CitGQkYwO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIFUgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjI2IDA2Qzc7Ozs7Tjs7Ozs7CitGQkYxO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIFUgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjI2IDA2Qzc7Ozs7Tjs7Ozs7CitGQkYyO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIE9FIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyNiAwNkM2Ozs7O047Ozs7OworRkJGMztBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBPRSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MjYgMDZDNjs7OztOOzs7OzsKK0ZCRjQ7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggWVUgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjI2IDA2Qzg7Ozs7Tjs7Ozs7CitGQkY1O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIFlVIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyNiAwNkM4Ozs7O047Ozs7OworRkJGNjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBFIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyNiAwNkQwOzs7O047Ozs7OworRkJGNztBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBFIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyNiAwNkQwOzs7O047Ozs7OworRkJGODtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBFIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MjYgMDZEMDs7OztOOzs7OzsKK0ZCRjk7QVJBQklDIExJR0FUVVJFIFVJR0hVUiBLSVJHSElaIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyNiAwNjQ5Ozs7O047Ozs7OworRkJGQTtBUkFCSUMgTElHQVRVUkUgVUlHSFVSIEtJUkdISVogWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjI2IDA2NDk7Ozs7Tjs7Ozs7CitGQkZCO0FSQUJJQyBMSUdBVFVSRSBVSUdIVVIgS0lSR0hJWiBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEFMRUYgTUFLU1VSQSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjI2IDA2NDk7Ozs7Tjs7Ozs7CitGQkZDO0FSQUJJQyBMRVRURVIgRkFSU0kgWUVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDZDQzs7OztOOzs7OzsKK0ZCRkQ7QVJBQklDIExFVFRFUiBGQVJTSSBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNkNDOzs7O047Ozs7OworRkJGRTtBUkFCSUMgTEVUVEVSIEZBUlNJIFlFSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNkNDOzs7O047Ozs7OworRkJGRjtBUkFCSUMgTEVUVEVSIEZBUlNJIFlFSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDZDQzs7OztOOzs7OzsKK0ZDMDA7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MjYgMDYyQzs7OztOOzs7OzsKK0ZDMDE7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyNiAwNjJEOzs7O047Ozs7OworRkMwMjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyNiAwNjQ1Ozs7O047Ozs7OworRkMwMztBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjI2IDA2NDk7Ozs7Tjs7Ozs7CitGQzA0O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MjYgMDY0QTs7OztOOzs7OzsKK0ZDMDU7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjI4IDA2MkM7Ozs7Tjs7Ozs7CitGQzA2O0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjI4IDA2MkQ7Ozs7Tjs7Ozs7CitGQzA3O0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBLSEFIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyOCAwNjJFOzs7O047Ozs7OworRkMwODtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MjggMDY0NTs7OztOOzs7OzsKK0ZDMDk7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MjggMDY0OTs7OztOOzs7OzsKK0ZDMEE7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MjggMDY0QTs7OztOOzs7OzsKK0ZDMEI7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjJBIDA2MkM7Ozs7Tjs7Ozs7CitGQzBDO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjJBIDA2MkQ7Ozs7Tjs7Ozs7CitGQzBEO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBLSEFIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyQSAwNjJFOzs7O047Ozs7OworRkMwRTtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MkEgMDY0NTs7OztOOzs7OzsKK0ZDMEY7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MkEgMDY0OTs7OztOOzs7OzsKK0ZDMTA7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MkEgMDY0QTs7OztOOzs7OzsKK0ZDMTE7QVJBQklDIExJR0FUVVJFIFRIRUggV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyQiAwNjJDOzs7O047Ozs7OworRkMxMjtBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjJCIDA2NDU7Ozs7Tjs7Ozs7CitGQzEzO0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyQiAwNjQ5Ozs7O047Ozs7OworRkMxNDtBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MkIgMDY0QTs7OztOOzs7OzsKK0ZDMTU7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjJDIDA2MkQ7Ozs7Tjs7Ozs7CitGQzE2O0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MkMgMDY0NTs7OztOOzs7OzsKK0ZDMTc7QVJBQklDIExJR0FUVVJFIEhBSCBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjJEIDA2MkM7Ozs7Tjs7Ozs7CitGQzE4O0FSQUJJQyBMSUdBVFVSRSBIQUggV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyRCAwNjQ1Ozs7O047Ozs7OworRkMxOTtBUkFCSUMgTElHQVRVUkUgS0hBSCBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjJFIDA2MkM7Ozs7Tjs7Ozs7CitGQzFBO0FSQUJJQyBMSUdBVFVSRSBLSEFIIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyRSAwNjJEOzs7O047Ozs7OworRkMxQjtBUkFCSUMgTElHQVRVUkUgS0hBSCBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjJFIDA2NDU7Ozs7Tjs7Ozs7CitGQzFDO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzMgMDYyQzs7OztOOzs7OzsKK0ZDMUQ7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjMzIDA2MkQ7Ozs7Tjs7Ozs7CitGQzFFO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzMgMDYyRTs7OztOOzs7OzsKK0ZDMUY7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzMyAwNjQ1Ozs7O047Ozs7OworRkMyMDtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzNSAwNjJEOzs7O047Ozs7OworRkMyMTtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzUgMDY0NTs7OztOOzs7OzsKK0ZDMjI7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM2IDA2MkM7Ozs7Tjs7Ozs7CitGQzIzO0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM2IDA2MkQ7Ozs7Tjs7Ozs7CitGQzI0O0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBLSEFIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzNiAwNjJFOzs7O047Ozs7OworRkMyNTtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzYgMDY0NTs7OztOOzs7OzsKK0ZDMjY7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzcgMDYyRDs7OztOOzs7OzsKK0ZDMjc7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM3IDA2NDU7Ozs7Tjs7Ozs7CitGQzI4O0FSQUJJQyBMSUdBVFVSRSBaQUggV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzOCAwNjQ1Ozs7O047Ozs7OworRkMyOTtBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzkgMDYyQzs7OztOOzs7OzsKK0ZDMkE7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM5IDA2NDU7Ozs7Tjs7Ozs7CitGQzJCO0FSQUJJQyBMSUdBVFVSRSBHSEFJTiBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjNBIDA2MkM7Ozs7Tjs7Ozs7CitGQzJDO0FSQUJJQyBMSUdBVFVSRSBHSEFJTiBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjNBIDA2NDU7Ozs7Tjs7Ozs7CitGQzJEO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0MSAwNjJDOzs7O047Ozs7OworRkMyRTtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0MSAwNjJEOzs7O047Ozs7OworRkMyRjtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDEgMDYyRTs7OztOOzs7OzsKK0ZDMzA7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQxIDA2NDU7Ozs7Tjs7Ozs7CitGQzMxO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQxIDA2NDk7Ozs7Tjs7Ozs7CitGQzMyO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQxIDA2NEE7Ozs7Tjs7Ozs7CitGQzMzO0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQyIDA2MkQ7Ozs7Tjs7Ozs7CitGQzM0O0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0MiAwNjQ1Ozs7O047Ozs7OworRkMzNTtBUkFCSUMgTElHQVRVUkUgUUFGIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0MiAwNjQ5Ozs7O047Ozs7OworRkMzNjtBUkFCSUMgTElHQVRVUkUgUUFGIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0MiAwNjRBOzs7O047Ozs7OworRkMzNztBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggQUxFRiBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDMgMDYyNzs7OztOOzs7OzsKK0ZDMzg7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQzIDA2MkM7Ozs7Tjs7Ozs7CitGQzM5O0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQzIDA2MkQ7Ozs7Tjs7Ozs7CitGQzNBO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBLSEFIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0MyAwNjJFOzs7O047Ozs7OworRkMzQjtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggTEFNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0MyAwNjQ0Ozs7O047Ozs7OworRkMzQztBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDMgMDY0NTs7OztOOzs7OzsKK0ZDM0Q7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDMgMDY0OTs7OztOOzs7OzsKK0ZDM0U7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDMgMDY0QTs7OztOOzs7OzsKK0ZDM0Y7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQ0IDA2MkM7Ozs7Tjs7Ozs7CitGQzQwO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQ0IDA2MkQ7Ozs7Tjs7Ozs7CitGQzQxO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBLSEFIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0NCAwNjJFOzs7O047Ozs7OworRkM0MjtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDQgMDY0NTs7OztOOzs7OzsKK0ZDNDM7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDQgMDY0OTs7OztOOzs7OzsKK0ZDNDQ7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDQgMDY0QTs7OztOOzs7OzsKK0ZDNDU7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0NSAwNjJDOzs7O047Ozs7OworRkM0NjtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDUgMDYyRDs7OztOOzs7OzsKK0ZDNDc7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBLSEFIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0NSAwNjJFOzs7O047Ozs7OworRkM0ODtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGQzQ5O0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0NSAwNjQ5Ozs7O047Ozs7OworRkM0QTtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZDNEI7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0NiAwNjJDOzs7O047Ozs7OworRkM0QztBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDYgMDYyRDs7OztOOzs7OzsKK0ZDNEQ7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBLSEFIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0NiAwNjJFOzs7O047Ozs7OworRkM0RTtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQ2IDA2NDU7Ozs7Tjs7Ozs7CitGQzRGO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0NiAwNjQ5Ozs7O047Ozs7OworRkM1MDtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDYgMDY0QTs7OztOOzs7OzsKK0ZDNTE7QVJBQklDIExJR0FUVVJFIEhFSCBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQ3IDA2MkM7Ozs7Tjs7Ozs7CitGQzUyO0FSQUJJQyBMSUdBVFVSRSBIRUggV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0NyAwNjQ1Ozs7O047Ozs7OworRkM1MztBUkFCSUMgTElHQVRVUkUgSEVIIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0NyAwNjQ5Ozs7O047Ozs7OworRkM1NDtBUkFCSUMgTElHQVRVUkUgSEVIIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0NyAwNjRBOzs7O047Ozs7OworRkM1NTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NEEgMDYyQzs7OztOOzs7OzsKK0ZDNTY7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NEEgMDYyRDs7OztOOzs7OzsKK0ZDNTc7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEtIQUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjRBIDA2MkU7Ozs7Tjs7Ozs7CitGQzU4O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0QSAwNjQ1Ozs7O047Ozs7OworRkM1OTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0QSAwNjQ5Ozs7O047Ozs7OworRkM1QTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0QSAwNjRBOzs7O047Ozs7OworRkM1QjtBUkFCSUMgTElHQVRVUkUgVEhBTCBXSVRIIFNVUEVSU0NSSVBUIEFMRUYgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjMwIDA2NzA7Ozs7Tjs7Ozs7CitGQzVDO0FSQUJJQyBMSUdBVFVSRSBSRUggV0lUSCBTVVBFUlNDUklQVCBBTEVGIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzMSAwNjcwOzs7O047Ozs7OworRkM1RDtBUkFCSUMgTElHQVRVUkUgQUxFRiBNQUtTVVJBIFdJVEggU1VQRVJTQ1JJUFQgQUxFRiBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDkgMDY3MDs7OztOOzs7OzsKK0ZDNUU7QVJBQklDIExJR0FUVVJFIFNIQUREQSBXSVRIIERBTU1BVEFOIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDAyMCAwNjUxIDA2NEM7Ozs7Tjs7Ozs7CitGQzVGO0FSQUJJQyBMSUdBVFVSRSBTSEFEREEgV0lUSCBLQVNSQVRBTiBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDAwMjAgMDY1MSAwNjREOzs7O047Ozs7OworRkM2MDtBUkFCSUMgTElHQVRVUkUgU0hBRERBIFdJVEggRkFUSEEgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwMDIwIDA2NTEgMDY0RTs7OztOOzs7OzsKK0ZDNjE7QVJBQklDIExJR0FUVVJFIFNIQUREQSBXSVRIIERBTU1BIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDAyMCAwNjUxIDA2NEY7Ozs7Tjs7Ozs7CitGQzYyO0FSQUJJQyBMSUdBVFVSRSBTSEFEREEgV0lUSCBLQVNSQSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDAwMjAgMDY1MSAwNjUwOzs7O047Ozs7OworRkM2MztBUkFCSUMgTElHQVRVUkUgU0hBRERBIFdJVEggU1VQRVJTQ1JJUFQgQUxFRiBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDAwMjAgMDY1MSAwNjcwOzs7O047Ozs7OworRkM2NDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBSRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjI2IDA2MzE7Ozs7Tjs7Ozs7CitGQzY1O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIFpBSU4gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjI2IDA2MzI7Ozs7Tjs7Ozs7CitGQzY2O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjI2IDA2NDU7Ozs7Tjs7Ozs7CitGQzY3O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIE5PT04gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjI2IDA2NDY7Ozs7Tjs7Ozs7CitGQzY4O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MjYgMDY0OTs7OztOOzs7OzsKK0ZDNjk7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyNiAwNjRBOzs7O047Ozs7OworRkM2QTtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggUkVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyOCAwNjMxOzs7O047Ozs7OworRkM2QjtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggWkFJTiBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MjggMDYzMjs7OztOOzs7OzsKK0ZDNkM7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjI4IDA2NDU7Ozs7Tjs7Ozs7CitGQzZEO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBOT09OIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyOCAwNjQ2Ozs7O047Ozs7OworRkM2RTtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyOCAwNjQ5Ozs7O047Ozs7OworRkM2RjtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyOCAwNjRBOzs7O047Ozs7OworRkM3MDtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggUkVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyQSAwNjMxOzs7O047Ozs7OworRkM3MTtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggWkFJTiBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkEgMDYzMjs7OztOOzs7OzsKK0ZDNzI7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJBIDA2NDU7Ozs7Tjs7Ozs7CitGQzczO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBOT09OIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyQSAwNjQ2Ozs7O047Ozs7OworRkM3NDtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyQSAwNjQ5Ozs7O047Ozs7OworRkM3NTtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyQSAwNjRBOzs7O047Ozs7OworRkM3NjtBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIFJFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkIgMDYzMTs7OztOOzs7OzsKK0ZDNzc7QVJBQklDIExJR0FUVVJFIFRIRUggV0lUSCBaQUlOIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyQiAwNjMyOzs7O047Ozs7OworRkM3ODtBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJCIDA2NDU7Ozs7Tjs7Ozs7CitGQzc5O0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggTk9PTiBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkIgMDY0Njs7OztOOzs7OzsKK0ZDN0E7QVJBQklDIExJR0FUVVJFIFRIRUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJCIDA2NDk7Ozs7Tjs7Ozs7CitGQzdCO0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyQiAwNjRBOzs7O047Ozs7OworRkM3QztBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0MSAwNjQ5Ozs7O047Ozs7OworRkM3RDtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0MSAwNjRBOzs7O047Ozs7OworRkM3RTtBUkFCSUMgTElHQVRVUkUgUUFGIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0MiAwNjQ5Ozs7O047Ozs7OworRkM3RjtBUkFCSUMgTElHQVRVUkUgUUFGIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0MiAwNjRBOzs7O047Ozs7OworRkM4MDtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggQUxFRiBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDMgMDYyNzs7OztOOzs7OzsKK0ZDODE7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIExBTSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDMgMDY0NDs7OztOOzs7OzsKK0ZDODI7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQzIDA2NDU7Ozs7Tjs7Ozs7CitGQzgzO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQzIDA2NDk7Ozs7Tjs7Ozs7CitGQzg0O0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQzIDA2NEE7Ozs7Tjs7Ozs7CitGQzg1O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NCAwNjQ1Ozs7O047Ozs7OworRkM4NjtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NCAwNjQ5Ozs7O047Ozs7OworRkM4NztBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NCAwNjRBOzs7O047Ozs7OworRkM4ODtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEFMRUYgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ1IDA2Mjc7Ozs7Tjs7Ozs7CitGQzg5O0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZDOEE7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBSRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ2IDA2MzE7Ozs7Tjs7Ozs7CitGQzhCO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggWkFJTiBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDYgMDYzMjs7OztOOzs7OzsKK0ZDOEM7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NiAwNjQ1Ozs7O047Ozs7OworRkM4RDtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIE5PT04gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ2IDA2NDY7Ozs7Tjs7Ozs7CitGQzhFO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NiAwNjQ5Ozs7O047Ozs7OworRkM4RjtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDYgMDY0QTs7OztOOzs7OzsKK0ZDOTA7QVJBQklDIExJR0FUVVJFIEFMRUYgTUFLU1VSQSBXSVRIIFNVUEVSU0NSSVBUIEFMRUYgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ5IDA2NzA7Ozs7Tjs7Ozs7CitGQzkxO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBSRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjRBIDA2MzE7Ozs7Tjs7Ozs7CitGQzkyO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBaQUlOIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0QSAwNjMyOzs7O047Ozs7OworRkM5MztBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NEEgMDY0NTs7OztOOzs7OzsKK0ZDOTQ7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIE5PT04gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjRBIDA2NDY7Ozs7Tjs7Ozs7CitGQzk1O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjRBIDA2NDk7Ozs7Tjs7Ozs7CitGQzk2O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjRBIDA2NEE7Ozs7Tjs7Ozs7CitGQzk3O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyNiAwNjJDOzs7O047Ozs7OworRkM5ODtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyNiAwNjJEOzs7O047Ozs7OworRkM5OTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MjYgMDYyRTs7OztOOzs7OzsKK0ZDOUE7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjI2IDA2NDU7Ozs7Tjs7Ozs7CitGQzlCO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEhFSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjI2IDA2NDc7Ozs7Tjs7Ozs7CitGQzlDO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MjggMDYyQzs7OztOOzs7OzsKK0ZDOUQ7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjI4IDA2MkQ7Ozs7Tjs7Ozs7CitGQzlFO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MjggMDYyRTs7OztOOzs7OzsKK0ZDOUY7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyOCAwNjQ1Ozs7O047Ozs7OworRkNBMDtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggSEVIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MjggMDY0Nzs7OztOOzs7OzsKK0ZDQTE7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyQSAwNjJDOzs7O047Ozs7OworRkNBMjtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MkEgMDYyRDs7OztOOzs7OzsKK0ZDQTM7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyQSAwNjJFOzs7O047Ozs7OworRkNBNDtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjJBIDA2NDU7Ozs7Tjs7Ozs7CitGQ0E1O0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBIRUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyQSAwNjQ3Ozs7O047Ozs7OworRkNBNjtBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyQiAwNjQ1Ozs7O047Ozs7OworRkNBNztBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjJDIDA2MkQ7Ozs7Tjs7Ozs7CitGQ0E4O0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjJDIDA2NDU7Ozs7Tjs7Ozs7CitGQ0E5O0FSQUJJQyBMSUdBVFVSRSBIQUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MkQgMDYyQzs7OztOOzs7OzsKK0ZDQUE7QVJBQklDIExJR0FUVVJFIEhBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyRCAwNjQ1Ozs7O047Ozs7OworRkNBQjtBUkFCSUMgTElHQVRVUkUgS0hBSCBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyRSAwNjJDOzs7O047Ozs7OworRkNBQztBUkFCSUMgTElHQVRVUkUgS0hBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyRSAwNjQ1Ozs7O047Ozs7OworRkNBRDtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzMyAwNjJDOzs7O047Ozs7OworRkNBRTtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjMzIDA2MkQ7Ozs7Tjs7Ozs7CitGQ0FGO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjMzIDA2MkU7Ozs7Tjs7Ozs7CitGQ0IwO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjMzIDA2NDU7Ozs7Tjs7Ozs7CitGQ0IxO0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzNSAwNjJEOzs7O047Ozs7OworRkNCMjtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjM1IDA2MkU7Ozs7Tjs7Ozs7CitGQ0IzO0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzUgMDY0NTs7OztOOzs7OzsKK0ZDQjQ7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzNiAwNjJDOzs7O047Ozs7OworRkNCNTtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzYgMDYyRDs7OztOOzs7OzsKK0ZDQjY7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzNiAwNjJFOzs7O047Ozs7OworRkNCNztBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjM2IDA2NDU7Ozs7Tjs7Ozs7CitGQ0I4O0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzNyAwNjJEOzs7O047Ozs7OworRkNCOTtBUkFCSUMgTElHQVRVUkUgWkFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjM4IDA2NDU7Ozs7Tjs7Ozs7CitGQ0JBO0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzkgMDYyQzs7OztOOzs7OzsKK0ZDQkI7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzOSAwNjQ1Ozs7O047Ozs7OworRkNCQztBUkFCSUMgTElHQVRVUkUgR0hBSU4gV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2M0EgMDYyQzs7OztOOzs7OzsKK0ZDQkQ7QVJBQklDIExJR0FUVVJFIEdIQUlOIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjNBIDA2NDU7Ozs7Tjs7Ozs7CitGQ0JFO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDEgMDYyQzs7OztOOzs7OzsKK0ZDQkY7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQxIDA2MkQ7Ozs7Tjs7Ozs7CitGQ0MwO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDEgMDYyRTs7OztOOzs7OzsKK0ZDQzE7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0MSAwNjQ1Ozs7O047Ozs7OworRkNDMjtBUkFCSUMgTElHQVRVUkUgUUFGIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDIgMDYyRDs7OztOOzs7OzsKK0ZDQzM7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0MiAwNjQ1Ozs7O047Ozs7OworRkNDNDtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQzIDA2MkM7Ozs7Tjs7Ozs7CitGQ0M1O0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0MyAwNjJEOzs7O047Ozs7OworRkNDNjtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQzIDA2MkU7Ozs7Tjs7Ozs7CitGQ0M3O0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBMQU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0MyAwNjQ0Ozs7O047Ozs7OworRkNDODtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQzIDA2NDU7Ozs7Tjs7Ozs7CitGQ0M5O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDQgMDYyQzs7OztOOzs7OzsKK0ZDQ0E7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ0IDA2MkQ7Ozs7Tjs7Ozs7CitGQ0NCO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDQgMDYyRTs7OztOOzs7OzsKK0ZDQ0M7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0NCAwNjQ1Ozs7O047Ozs7OworRkNDRDtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSEVIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDQgMDY0Nzs7OztOOzs7OzsKK0ZDQ0U7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDUgMDYyQzs7OztOOzs7OzsKK0ZDQ0Y7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0NSAwNjJEOzs7O047Ozs7OworRkNEMDtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0NSAwNjJFOzs7O047Ozs7OworRkNEMTtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0NSAwNjQ1Ozs7O047Ozs7OworRkNEMjtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0NiAwNjJDOzs7O047Ozs7OworRkNEMztBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ2IDA2MkQ7Ozs7Tjs7Ozs7CitGQ0Q0O0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ2IDA2MkU7Ozs7Tjs7Ozs7CitGQ0Q1O0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ2IDA2NDU7Ozs7Tjs7Ozs7CitGQ0Q2O0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSEVIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDYgMDY0Nzs7OztOOzs7OzsKK0ZDRDc7QVJBQklDIExJR0FUVVJFIEhFSCBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0NyAwNjJDOzs7O047Ozs7OworRkNEODtBUkFCSUMgTElHQVRVUkUgSEVIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ3IDA2NDU7Ozs7Tjs7Ozs7CitGQ0Q5O0FSQUJJQyBMSUdBVFVSRSBIRUggV0lUSCBTVVBFUlNDUklQVCBBTEVGIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDcgMDY3MDs7OztOOzs7OzsKK0ZDREE7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0QSAwNjJDOzs7O047Ozs7OworRkNEQjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NEEgMDYyRDs7OztOOzs7OzsKK0ZDREM7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0QSAwNjJFOzs7O047Ozs7OworRkNERDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjRBIDA2NDU7Ozs7Tjs7Ozs7CitGQ0RFO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIRUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0QSAwNjQ3Ozs7O047Ozs7OworRkNERjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjI2IDA2NDU7Ozs7Tjs7Ozs7CitGQ0UwO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEhFSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDYyNiAwNjQ3Ozs7O047Ozs7OworRkNFMTtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDYyOCAwNjQ1Ozs7O047Ozs7OworRkNFMjtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggSEVIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjI4IDA2NDc7Ozs7Tjs7Ozs7CitGQ0UzO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjJBIDA2NDU7Ozs7Tjs7Ozs7CitGQ0U0O0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBIRUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2MkEgMDY0Nzs7OztOOzs7OzsKK0ZDRTU7QVJBQklDIExJR0FUVVJFIFRIRUggV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjJCIDA2NDU7Ozs7Tjs7Ozs7CitGQ0U2O0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggSEVIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjJCIDA2NDc7Ozs7Tjs7Ozs7CitGQ0U3O0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDYzMyAwNjQ1Ozs7O047Ozs7OworRkNFODtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEhFSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDYzMyAwNjQ3Ozs7O047Ozs7OworRkNFOTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjM0IDA2NDU7Ozs7Tjs7Ozs7CitGQ0VBO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEhFSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDYzNCAwNjQ3Ozs7O047Ozs7OworRkNFQjtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggTEFNIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjQzIDA2NDQ7Ozs7Tjs7Ozs7CitGQ0VDO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjQzIDA2NDU7Ozs7Tjs7Ozs7CitGQ0VEO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjQ0IDA2NDU7Ozs7Tjs7Ozs7CitGQ0VFO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDY0NiAwNjQ1Ozs7O047Ozs7OworRkNFRjtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEhFSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDY0NiAwNjQ3Ozs7O047Ozs7OworRkNGMDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDY0QSAwNjQ1Ozs7O047Ozs7OworRkNGMTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEVIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjRBIDA2NDc7Ozs7Tjs7Ozs7CitGQ0YyO0FSQUJJQyBMSUdBVFVSRSBTSEFEREEgV0lUSCBGQVRIQSBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDY0MCAwNjUxIDA2NEU7Ozs7Tjs7Ozs7CitGQ0YzO0FSQUJJQyBMSUdBVFVSRSBTSEFEREEgV0lUSCBEQU1NQSBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDY0MCAwNjUxIDA2NEY7Ozs7Tjs7Ozs7CitGQ0Y0O0FSQUJJQyBMSUdBVFVSRSBTSEFEREEgV0lUSCBLQVNSQSBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDY0MCAwNjUxIDA2NTA7Ozs7Tjs7Ozs7CitGQ0Y1O0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM3IDA2NDk7Ozs7Tjs7Ozs7CitGQ0Y2O0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM3IDA2NEE7Ozs7Tjs7Ozs7CitGQ0Y3O0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM5IDA2NDk7Ozs7Tjs7Ozs7CitGQ0Y4O0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM5IDA2NEE7Ozs7Tjs7Ozs7CitGQ0Y5O0FSQUJJQyBMSUdBVFVSRSBHSEFJTiBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2M0EgMDY0OTs7OztOOzs7OzsKK0ZDRkE7QVJBQklDIExJR0FUVVJFIEdIQUlOIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzQSAwNjRBOzs7O047Ozs7OworRkNGQjtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzMgMDY0OTs7OztOOzs7OzsKK0ZDRkM7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjMzIDA2NEE7Ozs7Tjs7Ozs7CitGQ0ZEO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzQgMDY0OTs7OztOOzs7OzsKK0ZDRkU7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzNCAwNjRBOzs7O047Ozs7OworRkNGRjtBUkFCSUMgTElHQVRVUkUgSEFIIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyRCAwNjQ5Ozs7O047Ozs7OworRkQwMDtBUkFCSUMgTElHQVRVUkUgSEFIIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyRCAwNjRBOzs7O047Ozs7OworRkQwMTtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MkMgMDY0OTs7OztOOzs7OzsKK0ZEMDI7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjJDIDA2NEE7Ozs7Tjs7Ozs7CitGRDAzO0FSQUJJQyBMSUdBVFVSRSBLSEFIIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyRSAwNjQ5Ozs7O047Ozs7OworRkQwNDtBUkFCSUMgTElHQVRVUkUgS0hBSCBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MkUgMDY0QTs7OztOOzs7OzsKK0ZEMDU7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzUgMDY0OTs7OztOOzs7OzsKK0ZEMDY7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzUgMDY0QTs7OztOOzs7OzsKK0ZEMDc7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzYgMDY0OTs7OztOOzs7OzsKK0ZEMDg7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzYgMDY0QTs7OztOOzs7OzsKK0ZEMDk7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzQgMDYyQzs7OztOOzs7OzsKK0ZEMEE7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzNCAwNjJEOzs7O047Ozs7OworRkQwQjtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBLSEFIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzNCAwNjJFOzs7O047Ozs7OworRkQwQztBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzNCAwNjQ1Ozs7O047Ozs7OworRkQwRDtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBSRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM0IDA2MzE7Ozs7Tjs7Ozs7CitGRDBFO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggUkVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzMyAwNjMxOzs7O047Ozs7OworRkQwRjtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggUkVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzNSAwNjMxOzs7O047Ozs7OworRkQxMDtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggUkVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzNiAwNjMxOzs7O047Ozs7OworRkQxMTtBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzNyAwNjQ5Ozs7O047Ozs7OworRkQxMjtBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzNyAwNjRBOzs7O047Ozs7OworRkQxMztBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzOSAwNjQ5Ozs7O047Ozs7OworRkQxNDtBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzOSAwNjRBOzs7O047Ozs7OworRkQxNTtBUkFCSUMgTElHQVRVUkUgR0hBSU4gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjNBIDA2NDk7Ozs7Tjs7Ozs7CitGRDE2O0FSQUJJQyBMSUdBVFVSRSBHSEFJTiBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2M0EgMDY0QTs7OztOOzs7OzsKK0ZEMTc7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjMzIDA2NDk7Ozs7Tjs7Ozs7CitGRDE4O0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzMyAwNjRBOzs7O047Ozs7OworRkQxOTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM0IDA2NDk7Ozs7Tjs7Ozs7CitGRDFBO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzQgMDY0QTs7OztOOzs7OzsKK0ZEMUI7QVJBQklDIExJR0FUVVJFIEhBSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkQgMDY0OTs7OztOOzs7OzsKK0ZEMUM7QVJBQklDIExJR0FUVVJFIEhBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkQgMDY0QTs7OztOOzs7OzsKK0ZEMUQ7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJDIDA2NDk7Ozs7Tjs7Ozs7CitGRDFFO0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyQyAwNjRBOzs7O047Ozs7OworRkQxRjtBUkFCSUMgTElHQVRVUkUgS0hBSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkUgMDY0OTs7OztOOzs7OzsKK0ZEMjA7QVJBQklDIExJR0FUVVJFIEtIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJFIDA2NEE7Ozs7Tjs7Ozs7CitGRDIxO0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM1IDA2NDk7Ozs7Tjs7Ozs7CitGRDIyO0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM1IDA2NEE7Ozs7Tjs7Ozs7CitGRDIzO0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM2IDA2NDk7Ozs7Tjs7Ozs7CitGRDI0O0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM2IDA2NEE7Ozs7Tjs7Ozs7CitGRDI1O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEpFRU0gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM0IDA2MkM7Ozs7Tjs7Ozs7CitGRDI2O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEhBSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzQgMDYyRDs7OztOOzs7OzsKK0ZEMjc7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggS0hBSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzQgMDYyRTs7OztOOzs7OzsKK0ZEMjg7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzQgMDY0NTs7OztOOzs7OzsKK0ZEMjk7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggUkVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzNCAwNjMxOzs7O047Ozs7OworRkQyQTtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIFJFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzMgMDYzMTs7OztOOzs7OzsKK0ZEMkI7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIFJFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzUgMDYzMTs7OztOOzs7OzsKK0ZEMkM7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIFJFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzYgMDYzMTs7OztOOzs7OzsKK0ZEMkQ7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjM0IDA2MkM7Ozs7Tjs7Ozs7CitGRDJFO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjM0IDA2MkQ7Ozs7Tjs7Ozs7CitGRDJGO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzNCAwNjJFOzs7O047Ozs7OworRkQzMDtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzQgMDY0NTs7OztOOzs7OzsKK0ZEMzE7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBIRUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzMyAwNjQ3Ozs7O047Ozs7OworRkQzMjtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBIRUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzNCAwNjQ3Ozs7O047Ozs7OworRkQzMztBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjM3IDA2NDU7Ozs7Tjs7Ozs7CitGRDM0O0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggSkVFTSBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDYzMyAwNjJDOzs7O047Ozs7OworRkQzNTtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEhBSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDYzMyAwNjJEOzs7O047Ozs7OworRkQzNjtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEtIQUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2MzMgMDYyRTs7OztOOzs7OzsKK0ZEMzc7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSkVFTSBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDYzNCAwNjJDOzs7O047Ozs7OworRkQzODtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBIQUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2MzQgMDYyRDs7OztOOzs7OzsKK0ZEMzk7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggS0hBSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDYzNCAwNjJFOzs7O047Ozs7OworRkQzQTtBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDYzNyAwNjQ1Ozs7O047Ozs7OworRkQzQjtBUkFCSUMgTElHQVRVUkUgWkFIIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDYzOCAwNjQ1Ozs7O047Ozs7OworRkQzQztBUkFCSUMgTElHQVRVUkUgQUxFRiBXSVRIIEZBVEhBVEFOIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyNyAwNjRCOzs7O047Ozs7OworRkQzRDtBUkFCSUMgTElHQVRVUkUgQUxFRiBXSVRIIEZBVEhBVEFOIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyNyAwNjRCOzs7O047Ozs7OworRkQzRTtPUk5BVEUgTEVGVCBQQVJFTlRIRVNJUztQczswO09OOzs7OztOOzs7OzsKK0ZEM0Y7T1JOQVRFIFJJR0hUIFBBUkVOVEhFU0lTO1BlOzA7T047Ozs7O047Ozs7OworRkQ1MDtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggSkVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyQSAwNjJDIDA2NDU7Ozs7Tjs7Ozs7CitGRDUxO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBIQUggV0lUSCBKRUVNIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyQSAwNjJEIDA2MkM7Ozs7Tjs7Ozs7CitGRDUyO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBIQUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MkEgMDYyRCAwNjJDOzs7O047Ozs7OworRkQ1MztBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggSEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjJBIDA2MkQgMDY0NTs7OztOOzs7OzsKK0ZENTQ7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEtIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MkEgMDYyRSAwNjQ1Ozs7O047Ozs7OworRkQ1NTtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggTUVFTSBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyQSAwNjQ1IDA2MkM7Ozs7Tjs7Ozs7CitGRDU2O0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBNRUVNIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MkEgMDY0NSAwNjJEOzs7O047Ozs7OworRkQ1NztBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggTUVFTSBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyQSAwNjQ1IDA2MkU7Ozs7Tjs7Ozs7CitGRDU4O0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggTUVFTSBXSVRIIEhBSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkMgMDY0NSAwNjJEOzs7O047Ozs7OworRkQ1OTtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIE1FRU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyQyAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGRDVBO0FSQUJJQyBMSUdBVFVSRSBIQUggV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyRCAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGRDVCO0FSQUJJQyBMSUdBVFVSRSBIQUggV0lUSCBNRUVNIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyRCAwNjQ1IDA2NDk7Ozs7Tjs7Ozs7CitGRDVDO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggSEFIIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjMzIDA2MkQgMDYyQzs7OztOOzs7OzsKK0ZENUQ7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBKRUVNIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzMgMDYyQyAwNjJEOzs7O047Ozs7OworRkQ1RTtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEpFRU0gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjMzIDA2MkMgMDY0OTs7OztOOzs7OzsKK0ZENUY7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBNRUVNIFdJVEggSEFIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzMyAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGRDYwO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggTUVFTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjMzIDA2NDUgMDYyRDs7OztOOzs7OzsKK0ZENjE7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBNRUVNIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjMzIDA2NDUgMDYyQzs7OztOOzs7OzsKK0ZENjI7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBNRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzMgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ2MztBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIE1FRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzMgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ2NDtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggSEFIIFdJVEggSEFIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzNSAwNjJEIDA2MkQ7Ozs7Tjs7Ozs7CitGRDY1O0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBIQUggV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzNSAwNjJEIDA2MkQ7Ozs7Tjs7Ozs7CitGRDY2O0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBNRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzUgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ2NztBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBIQUggV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzNCAwNjJEIDA2NDU7Ozs7Tjs7Ozs7CitGRDY4O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEhBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzNCAwNjJEIDA2NDU7Ozs7Tjs7Ozs7CitGRDY5O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEpFRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM0IDA2MkMgMDY0QTs7OztOOzs7OzsKK0ZENkE7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggTUVFTSBXSVRIIEtIQUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM0IDA2NDUgMDYyRTs7OztOOzs7OzsKK0ZENkI7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggTUVFTSBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzNCAwNjQ1IDA2MkU7Ozs7Tjs7Ozs7CitGRDZDO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIE1FRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzNCAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGRDZEO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIE1FRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzQgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ2RTtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggSEFIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzNiAwNjJEIDA2NDk7Ozs7Tjs7Ozs7CitGRDZGO0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBLSEFIIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzYgMDYyRSAwNjQ1Ozs7O047Ozs7OworRkQ3MDtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggS0hBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzNiAwNjJFIDA2NDU7Ozs7Tjs7Ozs7CitGRDcxO0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBNRUVNIFdJVEggSEFIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzNyAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGRDcyO0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBNRUVNIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzcgMDY0NSAwNjJEOzs7O047Ozs7OworRkQ3MztBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggTUVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzNyAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGRDc0O0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzNyAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGRDc1O0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBKRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzkgMDYyQyAwNjQ1Ozs7O047Ozs7OworRkQ3NjtBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggTUVFTSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM5IDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZENzc7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIE1FRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzkgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ3ODtBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggTUVFTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzkgMDY0NSAwNjQ5Ozs7O047Ozs7OworRkQ3OTtBUkFCSUMgTElHQVRVUkUgR0hBSU4gV0lUSCBNRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2M0EgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ3QTtBUkFCSUMgTElHQVRVUkUgR0hBSU4gV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzQSAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGRDdCO0FSQUJJQyBMSUdBVFVSRSBHSEFJTiBXSVRIIE1FRU0gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjNBIDA2NDUgMDY0OTs7OztOOzs7OzsKK0ZEN0M7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIEtIQUggV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0MSAwNjJFIDA2NDU7Ozs7Tjs7Ozs7CitGRDdEO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBLSEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQxIDA2MkUgMDY0NTs7OztOOzs7OzsKK0ZEN0U7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIE1FRU0gV0lUSCBIQUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQyIDA2NDUgMDYyRDs7OztOOzs7OzsKK0ZEN0Y7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIE1FRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0MiAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGRDgwO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBIQUggV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NCAwNjJEIDA2NDU7Ozs7Tjs7Ozs7CitGRDgxO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ0IDA2MkQgMDY0QTs7OztOOzs7OzsKK0ZEODI7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEhBSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDQgMDYyRCAwNjQ5Ozs7O047Ozs7OworRkQ4MztBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSkVFTSBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0NCAwNjJDIDA2MkM7Ozs7Tjs7Ozs7CitGRDg0O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBKRUVNIFdJVEggSkVFTSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDQgMDYyQyAwNjJDOzs7O047Ozs7OworRkQ4NTtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggS0hBSCBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ0IDA2MkUgMDY0NTs7OztOOzs7OzsKK0ZEODY7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEtIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDQgMDYyRSAwNjQ1Ozs7O047Ozs7OworRkQ4NztBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggTUVFTSBXSVRIIEhBSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDQgMDY0NSAwNjJEOzs7O047Ozs7OworRkQ4ODtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggTUVFTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ0IDA2NDUgMDYyRDs7OztOOzs7OzsKK0ZEODk7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBIQUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDUgMDYyRCAwNjJDOzs7O047Ozs7OworRkQ4QTtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEhBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0NSAwNjJEIDA2NDU7Ozs7Tjs7Ozs7CitGRDhCO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NSAwNjJEIDA2NEE7Ozs7Tjs7Ozs7CitGRDhDO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggSkVFTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ1IDA2MkMgMDYyRDs7OztOOzs7OzsKK0ZEOEQ7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBKRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ1IDA2MkMgMDY0NTs7OztOOzs7OzsKK0ZEOEU7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBLSEFIIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ1IDA2MkUgMDYyQzs7OztOOzs7OzsKK0ZEOEY7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBLSEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ1IDA2MkUgMDY0NTs7OztOOzs7OzsKK0ZEOTI7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBKRUVNIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ1IDA2MkMgMDYyRTs7OztOOzs7OzsKK0ZEOTM7QVJBQklDIExJR0FUVVJFIEhFSCBXSVRIIE1FRU0gV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDcgMDY0NSAwNjJDOzs7O047Ozs7OworRkQ5NDtBUkFCSUMgTElHQVRVUkUgSEVIIFdJVEggTUVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0NyAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGRDk1O0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ2IDA2MkQgMDY0NTs7OztOOzs7OzsKK0ZEOTY7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBIQUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ2IDA2MkQgMDY0OTs7OztOOzs7OzsKK0ZEOTc7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBKRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDYgMDYyQyAwNjQ1Ozs7O047Ozs7OworRkQ5ODtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEpFRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDYgMDYyQyAwNjQ1Ozs7O047Ozs7OworRkQ5OTtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEpFRU0gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ2IDA2MkMgMDY0OTs7OztOOzs7OzsKK0ZEOUE7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NiAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGRDlCO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggTUVFTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDYgMDY0NSAwNjQ5Ozs7O047Ozs7OworRkQ5QztBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggTUVFTSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjRBIDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZEOUQ7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIE1FRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NEEgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ5RTtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggS0hBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MjggMDYyRSAwNjRBOzs7O047Ozs7OworRkQ5RjtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggSkVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkEgMDYyQyAwNjRBOzs7O047Ozs7OworRkRBMDtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggSkVFTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkEgMDYyQyAwNjQ5Ozs7O047Ozs7OworRkRBMTtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggS0hBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkEgMDYyRSAwNjRBOzs7O047Ozs7OworRkRBMjtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggS0hBSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkEgMDYyRSAwNjQ5Ozs7O047Ozs7OworRkRBMztBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggTUVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkEgMDY0NSAwNjRBOzs7O047Ozs7OworRkRBNDtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggTUVFTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkEgMDY0NSAwNjQ5Ozs7O047Ozs7OworRkRBNTtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJDIDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZEQTY7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBIQUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJDIDA2MkQgMDY0OTs7OztOOzs7OzsKK0ZEQTc7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBNRUVNIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyQyAwNjQ1IDA2NDk7Ozs7Tjs7Ozs7CitGREE4O0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggS0hBSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzMgMDYyRSAwNjQ5Ozs7O047Ozs7OworRkRBOTtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzNSAwNjJEIDA2NEE7Ozs7Tjs7Ozs7CitGREFBO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEhBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzQgMDYyRCAwNjRBOzs7O047Ozs7OworRkRBQjtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzNiAwNjJEIDA2NEE7Ozs7Tjs7Ozs7CitGREFDO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBKRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NCAwNjJDIDA2NEE7Ozs7Tjs7Ozs7CitGREFEO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NCAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGREFFO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjRBIDA2MkQgMDY0QTs7OztOOzs7OzsKK0ZEQUY7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEpFRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjRBIDA2MkMgMDY0QTs7OztOOzs7OzsKK0ZEQjA7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjRBIDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZEQjE7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NSAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGREIyO0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0MiAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGREIzO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NiAwNjJEIDA2NEE7Ozs7Tjs7Ozs7CitGREI0O0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBNRUVNIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDIgMDY0NSAwNjJEOzs7O047Ozs7OworRkRCNTtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ0IDA2MkQgMDY0NTs7OztOOzs7OzsKK0ZEQjY7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM5IDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZEQjc7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQzIDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZEQjg7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBKRUVNIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDYgMDYyQyAwNjJEOzs7O047Ozs7OworRkRCOTtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEtIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ1IDA2MkUgMDY0QTs7OztOOzs7OzsKK0ZEQkE7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEpFRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDQgMDYyQyAwNjQ1Ozs7O047Ozs7OworRkRCQjtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggTUVFTSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQzIDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZEQkM7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEpFRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NCAwNjJDIDA2NDU7Ozs7Tjs7Ozs7CitGREJEO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSkVFTSBXSVRIIEhBSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDYgMDYyQyAwNjJEOzs7O047Ozs7OworRkRCRTtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIEhBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkMgMDYyRCAwNjRBOzs7O047Ozs7OworRkRCRjtBUkFCSUMgTElHQVRVUkUgSEFIIFdJVEggSkVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkQgMDYyQyAwNjRBOzs7O047Ozs7OworRkRDMDtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEpFRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ1IDA2MkMgMDY0QTs7OztOOzs7OzsKK0ZEQzE7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQxIDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZEQzI7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEhBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MjggMDYyRCAwNjRBOzs7O047Ozs7OworRkRDMztBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggTUVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0MyAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGREM0O0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBKRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjM5IDA2MkMgMDY0NTs7OztOOzs7OzsKK0ZEQzU7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIE1FRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzUgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkRDNjtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEtIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjMzIDA2MkUgMDY0QTs7OztOOzs7OzsKK0ZEQzc7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBKRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NiAwNjJDIDA2NEE7Ozs7Tjs7Ozs7CitGREYwO0FSQUJJQyBMSUdBVFVSRSBTQUxMQSBVU0VEIEFTIEtPUkFOSUMgU1RPUCBTSUdOIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzNSAwNjQ0IDA2RDI7Ozs7Tjs7Ozs7CitGREYxO0FSQUJJQyBMSUdBVFVSRSBRQUxBIFVTRUQgQVMgS09SQU5JQyBTVE9QIFNJR04gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQyIDA2NDQgMDZEMjs7OztOOzs7OzsKK0ZERjI7QVJBQklDIExJR0FUVVJFIEFMTEFIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyNyAwNjQ0IDA2NDQgMDY0Nzs7OztOOzs7OzsKK0ZERjM7QVJBQklDIExJR0FUVVJFIEFLQkFSIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyNyAwNjQzIDA2MjggMDYzMTs7OztOOzs7OzsKK0ZERjQ7QVJBQklDIExJR0FUVVJFIE1PSEFNTUFEIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0NSAwNjJEIDA2NDUgMDYyRjs7OztOOzs7OzsKK0ZERjU7QVJBQklDIExJR0FUVVJFIFNBTEFNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzNSAwNjQ0IDA2MzkgMDY0NTs7OztOOzs7OzsKK0ZERjY7QVJBQklDIExJR0FUVVJFIFJBU09VTCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzEgMDYzMyAwNjQ4IDA2NDQ7Ozs7Tjs7Ozs7CitGREY3O0FSQUJJQyBMSUdBVFVSRSBBTEFZSEUgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM5IDA2NDQgMDY0QSAwNjQ3Ozs7O047Ozs7OworRkRGODtBUkFCSUMgTElHQVRVUkUgV0FTQUxMQU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQ4IDA2MzMgMDY0NCAwNjQ1Ozs7O047Ozs7OworRkRGOTtBUkFCSUMgTElHQVRVUkUgU0FMTEEgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM1IDA2NDQgMDY0OTs7OztOOzs7OzsKK0ZERkE7QVJBQklDIExJR0FUVVJFIFNBTExBTExBSE9VIEFMQVlIRSBXQVNBTExBTTtMbzswO1I7PGlzb2xhdGVkPiAwNjM1IDA2NDQgMDY0OSAwMDIwIDA2MjcgMDY0NCAwNjQ0IDA2NDcgMDAyMCAwNjM5IDA2NDQgMDY0QSAwNjQ3IDAwMjAgMDY0OCAwNjMzIDA2NDQgMDY0NTs7OztOO0FSQUJJQyBMRVRURVIgU0FMTEFMTEFIT1UgQUxBWUhFIFdBU0FMTEFNOzs7OworRkRGQjtBUkFCSUMgTElHQVRVUkUgSkFMTEFKQUxBTE9VSE9VO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MkMgMDY0NCAwMDIwIDA2MkMgMDY0NCAwNjI3IDA2NDQgMDY0Nzs7OztOO0FSQUJJQyBMRVRURVIgSkFMTEFKQUxBTE9VSE9VOzs7OworRkUyMDtDT01CSU5JTkcgTElHQVRVUkUgTEVGVCBIQUxGO01uOzIzMDtPTjs7Ozs7Tjs7Ozs7CitGRTIxO0NPTUJJTklORyBMSUdBVFVSRSBSSUdIVCBIQUxGO01uOzIzMDtPTjs7Ozs7Tjs7Ozs7CitGRTIyO0NPTUJJTklORyBET1VCTEUgVElMREUgTEVGVCBIQUxGO01uOzIzMDtPTjs7Ozs7Tjs7Ozs7CitGRTIzO0NPTUJJTklORyBET1VCTEUgVElMREUgUklHSFQgSEFMRjtNbjsyMzA7T047Ozs7O047Ozs7OworRkUzMDtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgVFdPIERPVCBMRUFERVI7UG87MDtPTjs8dmVydGljYWw+IDIwMjU7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgVFdPIERPVCBMRUFERVI7Ozs7CitGRTMxO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBFTSBEQVNIO1BkOzA7T047PHZlcnRpY2FsPiAyMDE0Ozs7O047R0xZUEggRk9SIFZFUlRJQ0FMIEVNIERBU0g7Ozs7CitGRTMyO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBFTiBEQVNIO1BkOzA7T047PHZlcnRpY2FsPiAyMDEzOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIEVOIERBU0g7Ozs7CitGRTMzO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBMT1cgTElORTtQYzswO09OOzx2ZXJ0aWNhbD4gMDA1Rjs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBTUEFDSU5HIFVOREVSU0NPUkU7Ozs7CitGRTM0O1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBXQVZZIExPVyBMSU5FO1BjOzA7T047PHZlcnRpY2FsPiAwMDVGOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIFNQQUNJTkcgV0FWWSBVTkRFUlNDT1JFOzs7OworRkUzNTtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgTEVGVCBQQVJFTlRIRVNJUztQczswO09OOzx2ZXJ0aWNhbD4gMDAyODs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBPUEVOSU5HIFBBUkVOVEhFU0lTOzs7OworRkUzNjtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgUklHSFQgUEFSRU5USEVTSVM7UGU7MDtPTjs8dmVydGljYWw+IDAwMjk7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgQ0xPU0lORyBQQVJFTlRIRVNJUzs7OzsKK0ZFMzc7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIExFRlQgQ1VSTFkgQlJBQ0tFVDtQczswO09OOzx2ZXJ0aWNhbD4gMDA3Qjs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBPUEVOSU5HIENVUkxZIEJSQUNLRVQ7Ozs7CitGRTM4O1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBSSUdIVCBDVVJMWSBCUkFDS0VUO1BlOzA7T047PHZlcnRpY2FsPiAwMDdEOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIENMT1NJTkcgQ1VSTFkgQlJBQ0tFVDs7OzsKK0ZFMzk7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIExFRlQgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDtQczswO09OOzx2ZXJ0aWNhbD4gMzAxNDs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBPUEVOSU5HIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7Ozs7CitGRTNBO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBSSUdIVCBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUO1BlOzA7T047PHZlcnRpY2FsPiAzMDE1Ozs7O047R0xZUEggRk9SIFZFUlRJQ0FMIENMT1NJTkcgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDs7OzsKK0ZFM0I7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIExFRlQgQkxBQ0sgTEVOVElDVUxBUiBCUkFDS0VUO1BzOzA7T047PHZlcnRpY2FsPiAzMDEwOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIE9QRU5JTkcgQkxBQ0sgTEVOVElDVUxBUiBCUkFDS0VUOzs7OworRkUzQztQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgUklHSFQgQkxBQ0sgTEVOVElDVUxBUiBCUkFDS0VUO1BlOzA7T047PHZlcnRpY2FsPiAzMDExOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIENMT1NJTkcgQkxBQ0sgTEVOVElDVUxBUiBCUkFDS0VUOzs7OworRkUzRDtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgTEVGVCBET1VCTEUgQU5HTEUgQlJBQ0tFVDtQczswO09OOzx2ZXJ0aWNhbD4gMzAwQTs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBPUEVOSU5HIERPVUJMRSBBTkdMRSBCUkFDS0VUOzs7OworRkUzRTtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgUklHSFQgRE9VQkxFIEFOR0xFIEJSQUNLRVQ7UGU7MDtPTjs8dmVydGljYWw+IDMwMEI7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgQ0xPU0lORyBET1VCTEUgQU5HTEUgQlJBQ0tFVDs7OzsKK0ZFM0Y7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIExFRlQgQU5HTEUgQlJBQ0tFVDtQczswO09OOzx2ZXJ0aWNhbD4gMzAwODs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBPUEVOSU5HIEFOR0xFIEJSQUNLRVQ7Ozs7CitGRTQwO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBSSUdIVCBBTkdMRSBCUkFDS0VUO1BlOzA7T047PHZlcnRpY2FsPiAzMDA5Ozs7O047R0xZUEggRk9SIFZFUlRJQ0FMIENMT1NJTkcgQU5HTEUgQlJBQ0tFVDs7OzsKK0ZFNDE7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIExFRlQgQ09STkVSIEJSQUNLRVQ7UHM7MDtPTjs8dmVydGljYWw+IDMwMEM7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgT1BFTklORyBDT1JORVIgQlJBQ0tFVDs7OzsKK0ZFNDI7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIFJJR0hUIENPUk5FUiBCUkFDS0VUO1BlOzA7T047PHZlcnRpY2FsPiAzMDBEOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIENMT1NJTkcgQ09STkVSIEJSQUNLRVQ7Ozs7CitGRTQzO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBMRUZUIFdISVRFIENPUk5FUiBCUkFDS0VUO1BzOzA7T047PHZlcnRpY2FsPiAzMDBFOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIE9QRU5JTkcgV0hJVEUgQ09STkVSIEJSQUNLRVQ7Ozs7CitGRTQ0O1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBSSUdIVCBXSElURSBDT1JORVIgQlJBQ0tFVDtQZTswO09OOzx2ZXJ0aWNhbD4gMzAwRjs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBDTE9TSU5HIFdISVRFIENPUk5FUiBCUkFDS0VUOzs7OworRkU0OTtEQVNIRUQgT1ZFUkxJTkU7UG87MDtPTjs8Y29tcGF0PiAyMDNFOzs7O047U1BBQ0lORyBEQVNIRUQgT1ZFUlNDT1JFOzs7OworRkU0QTtDRU5UUkVMSU5FIE9WRVJMSU5FO1BvOzA7T047PGNvbXBhdD4gMjAzRTs7OztOO1NQQUNJTkcgQ0VOVEVSTElORSBPVkVSU0NPUkU7Ozs7CitGRTRCO1dBVlkgT1ZFUkxJTkU7UG87MDtPTjs8Y29tcGF0PiAyMDNFOzs7O047U1BBQ0lORyBXQVZZIE9WRVJTQ09SRTs7OzsKK0ZFNEM7RE9VQkxFIFdBVlkgT1ZFUkxJTkU7UG87MDtPTjs8Y29tcGF0PiAyMDNFOzs7O047U1BBQ0lORyBET1VCTEUgV0FWWSBPVkVSU0NPUkU7Ozs7CitGRTREO0RBU0hFRCBMT1cgTElORTtQYzswO09OOzxjb21wYXQ+IDAwNUY7Ozs7TjtTUEFDSU5HIERBU0hFRCBVTkRFUlNDT1JFOzs7OworRkU0RTtDRU5UUkVMSU5FIExPVyBMSU5FO1BjOzA7T047PGNvbXBhdD4gMDA1Rjs7OztOO1NQQUNJTkcgQ0VOVEVSTElORSBVTkRFUlNDT1JFOzs7OworRkU0RjtXQVZZIExPVyBMSU5FO1BjOzA7T047PGNvbXBhdD4gMDA1Rjs7OztOO1NQQUNJTkcgV0FWWSBVTkRFUlNDT1JFOzs7OworRkU1MDtTTUFMTCBDT01NQTtQbzswO0NTOzxzbWFsbD4gMDAyQzs7OztOOzs7OzsKK0ZFNTE7U01BTEwgSURFT0dSQVBISUMgQ09NTUE7UG87MDtPTjs8c21hbGw+IDMwMDE7Ozs7Tjs7Ozs7CitGRTUyO1NNQUxMIEZVTEwgU1RPUDtQbzswO0NTOzxzbWFsbD4gMDAyRTs7OztOO1NNQUxMIFBFUklPRDs7OzsKK0ZFNTQ7U01BTEwgU0VNSUNPTE9OO1BvOzA7T047PHNtYWxsPiAwMDNCOzs7O047Ozs7OworRkU1NTtTTUFMTCBDT0xPTjtQbzswO0NTOzxzbWFsbD4gMDAzQTs7OztOOzs7OzsKK0ZFNTY7U01BTEwgUVVFU1RJT04gTUFSSztQbzswO09OOzxzbWFsbD4gMDAzRjs7OztOOzs7OzsKK0ZFNTc7U01BTEwgRVhDTEFNQVRJT04gTUFSSztQbzswO09OOzxzbWFsbD4gMDAyMTs7OztOOzs7OzsKK0ZFNTg7U01BTEwgRU0gREFTSDtQZDswO09OOzxzbWFsbD4gMjAxNDs7OztOOzs7OzsKK0ZFNTk7U01BTEwgTEVGVCBQQVJFTlRIRVNJUztQczswO09OOzxzbWFsbD4gMDAyODs7OztOO1NNQUxMIE9QRU5JTkcgUEFSRU5USEVTSVM7Ozs7CitGRTVBO1NNQUxMIFJJR0hUIFBBUkVOVEhFU0lTO1BlOzA7T047PHNtYWxsPiAwMDI5Ozs7O047U01BTEwgQ0xPU0lORyBQQVJFTlRIRVNJUzs7OzsKK0ZFNUI7U01BTEwgTEVGVCBDVVJMWSBCUkFDS0VUO1BzOzA7T047PHNtYWxsPiAwMDdCOzs7O047U01BTEwgT1BFTklORyBDVVJMWSBCUkFDS0VUOzs7OworRkU1QztTTUFMTCBSSUdIVCBDVVJMWSBCUkFDS0VUO1BlOzA7T047PHNtYWxsPiAwMDdEOzs7O047U01BTEwgQ0xPU0lORyBDVVJMWSBCUkFDS0VUOzs7OworRkU1RDtTTUFMTCBMRUZUIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7UHM7MDtPTjs8c21hbGw+IDMwMTQ7Ozs7TjtTTUFMTCBPUEVOSU5HIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7Ozs7CitGRTVFO1NNQUxMIFJJR0hUIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7UGU7MDtPTjs8c21hbGw+IDMwMTU7Ozs7TjtTTUFMTCBDTE9TSU5HIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7Ozs7CitGRTVGO1NNQUxMIE5VTUJFUiBTSUdOO1BvOzA7RVQ7PHNtYWxsPiAwMDIzOzs7O047Ozs7OworRkU2MDtTTUFMTCBBTVBFUlNBTkQ7UG87MDtPTjs8c21hbGw+IDAwMjY7Ozs7Tjs7Ozs7CitGRTYxO1NNQUxMIEFTVEVSSVNLO1BvOzA7T047PHNtYWxsPiAwMDJBOzs7O047Ozs7OworRkU2MjtTTUFMTCBQTFVTIFNJR047U207MDtFVDs8c21hbGw+IDAwMkI7Ozs7Tjs7Ozs7CitGRTYzO1NNQUxMIEhZUEhFTi1NSU5VUztQZDswO0VUOzxzbWFsbD4gMDAyRDs7OztOOzs7OzsKK0ZFNjQ7U01BTEwgTEVTUy1USEFOIFNJR047U207MDtPTjs8c21hbGw+IDAwM0M7Ozs7Tjs7Ozs7CitGRTY1O1NNQUxMIEdSRUFURVItVEhBTiBTSUdOO1NtOzA7T047PHNtYWxsPiAwMDNFOzs7O047Ozs7OworRkU2NjtTTUFMTCBFUVVBTFMgU0lHTjtTbTswO09OOzxzbWFsbD4gMDAzRDs7OztOOzs7OzsKK0ZFNjg7U01BTEwgUkVWRVJTRSBTT0xJRFVTO1BvOzA7T047PHNtYWxsPiAwMDVDOzs7O047U01BTEwgQkFDS1NMQVNIOzs7OworRkU2OTtTTUFMTCBET0xMQVIgU0lHTjtTYzswO0VUOzxzbWFsbD4gMDAyNDs7OztOOzs7OzsKK0ZFNkE7U01BTEwgUEVSQ0VOVCBTSUdOO1BvOzA7RVQ7PHNtYWxsPiAwMDI1Ozs7O047Ozs7OworRkU2QjtTTUFMTCBDT01NRVJDSUFMIEFUO1BvOzA7T047PHNtYWxsPiAwMDQwOzs7O047Ozs7OworRkU3MDtBUkFCSUMgRkFUSEFUQU4gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwMDIwIDA2NEI7Ozs7TjtBUkFCSUMgU1BBQ0lORyBGQVRIQVRBTjs7OzsKK0ZFNzE7QVJBQklDIFRBVFdFRUwgV0lUSCBGQVRIQVRBTiBBQk9WRTtMbzswO1I7PG1lZGlhbD4gMDY0MCAwNjRCOzs7O047QVJBQklDIEZBVEhBVEFOIE9OIFRBVFdFRUw7Ozs7CitGRTcyO0FSQUJJQyBEQU1NQVRBTiBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDAwMjAgMDY0Qzs7OztOO0FSQUJJQyBTUEFDSU5HIERBTU1BVEFOOzs7OworRkU3NDtBUkFCSUMgS0FTUkFUQU4gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwMDIwIDA2NEQ7Ozs7TjtBUkFCSUMgU1BBQ0lORyBLQVNSQVRBTjs7OzsKK0ZFNzY7QVJBQklDIEZBVEhBIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDAyMCAwNjRFOzs7O047QVJBQklDIFNQQUNJTkcgRkFUSEFIOzs7OworRkU3NztBUkFCSUMgRkFUSEEgTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2NDAgMDY0RTs7OztOO0FSQUJJQyBGQVRIQUggT04gVEFUV0VFTDs7OzsKK0ZFNzg7QVJBQklDIERBTU1BIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDAyMCAwNjRGOzs7O047QVJBQklDIFNQQUNJTkcgREFNTUFIOzs7OworRkU3OTtBUkFCSUMgREFNTUEgTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2NDAgMDY0Rjs7OztOO0FSQUJJQyBEQU1NQUggT04gVEFUV0VFTDs7OzsKK0ZFN0E7QVJBQklDIEtBU1JBIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDAyMCAwNjUwOzs7O047QVJBQklDIFNQQUNJTkcgS0FTUkFIOzs7OworRkU3QjtBUkFCSUMgS0FTUkEgTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2NDAgMDY1MDs7OztOO0FSQUJJQyBLQVNSQUggT04gVEFUV0VFTDs7OzsKK0ZFN0M7QVJBQklDIFNIQUREQSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDAwMjAgMDY1MTs7OztOO0FSQUJJQyBTUEFDSU5HIFNIQUREQUg7Ozs7CitGRTdEO0FSQUJJQyBTSEFEREEgTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2NDAgMDY1MTs7OztOO0FSQUJJQyBTSEFEREFIIE9OIFRBVFdFRUw7Ozs7CitGRTdFO0FSQUJJQyBTVUtVTiBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDAwMjAgMDY1Mjs7OztOO0FSQUJJQyBTUEFDSU5HIFNVS1VOOzs7OworRkU3RjtBUkFCSUMgU1VLVU4gTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2NDAgMDY1Mjs7OztOO0FSQUJJQyBTVUtVTiBPTiBUQVRXRUVMOzs7OworRkU4MDtBUkFCSUMgTEVUVEVSIEhBTVpBIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyMTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBIQU1aQUg7Ozs7CitGRTgxO0FSQUJJQyBMRVRURVIgQUxFRiBXSVRIIE1BRERBIEFCT1ZFIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyMjs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBNQUREQUggT04gQUxFRjs7OzsKK0ZFODI7QVJBQklDIExFVFRFUiBBTEVGIFdJVEggTUFEREEgQUJPVkUgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjIyOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBNQUREQUggT04gQUxFRjs7OzsKK0ZFODM7QVJBQklDIExFVFRFUiBBTEVGIFdJVEggSEFNWkEgQUJPVkUgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjIzOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEhBTVpBSCBPTiBBTEVGOzs7OworRkU4NDtBUkFCSUMgTEVUVEVSIEFMRUYgV0lUSCBIQU1aQSBBQk9WRSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MjM7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEhBTVpBSCBPTiBBTEVGOzs7OworRkU4NTtBUkFCSUMgTEVUVEVSIFdBVyBXSVRIIEhBTVpBIEFCT1ZFIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyNDs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBIQU1aQUggT04gV0FXOzs7OworRkU4NjtBUkFCSUMgTEVUVEVSIFdBVyBXSVRIIEhBTVpBIEFCT1ZFIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyNDs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgSEFNWkFIIE9OIFdBVzs7OzsKK0ZFODc7QVJBQklDIExFVFRFUiBBTEVGIFdJVEggSEFNWkEgQkVMT1cgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjI1Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEhBTVpBSCBVTkRFUiBBTEVGOzs7OworRkU4ODtBUkFCSUMgTEVUVEVSIEFMRUYgV0lUSCBIQU1aQSBCRUxPVyBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MjU7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEhBTVpBSCBVTkRFUiBBTEVGOzs7OworRkU4OTtBUkFCSUMgTEVUVEVSIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyNjs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBIQU1aQUggT04gWUE7Ozs7CitGRThBO0FSQUJJQyBMRVRURVIgWUVIIFdJVEggSEFNWkEgQUJPVkUgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjI2Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBIQU1aQUggT04gWUE7Ozs7CitGRThCO0FSQUJJQyBMRVRURVIgWUVIIFdJVEggSEFNWkEgQUJPVkUgSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyNjs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBIQU1aQUggT04gWUE7Ozs7CitGRThDO0FSQUJJQyBMRVRURVIgWUVIIFdJVEggSEFNWkEgQUJPVkUgTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2MjY7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBIQU1aQUggT04gWUE7Ozs7CitGRThEO0FSQUJJQyBMRVRURVIgQUxFRiBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2Mjc7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgQUxFRjs7OzsKK0ZFOEU7QVJBQklDIExFVFRFUiBBTEVGIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyNzs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgQUxFRjs7OzsKK0ZFOEY7QVJBQklDIExFVFRFUiBCRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjI4Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEJBQTs7OzsKK0ZFOTA7QVJBQklDIExFVFRFUiBCRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjI4Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBCQUE7Ozs7CitGRTkxO0FSQUJJQyBMRVRURVIgQkVIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2Mjg7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgQkFBOzs7OworRkU5MjtBUkFCSUMgTEVUVEVSIEJFSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDYyODs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIEJBQTs7OzsKK0ZFOTM7QVJBQklDIExFVFRFUiBURUggTUFSQlVUQSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2Mjk7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgVEFBIE1BUkJVVEFIOzs7OworRkU5NDtBUkFCSUMgTEVUVEVSIFRFSCBNQVJCVVRBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyOTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgVEFBIE1BUkJVVEFIOzs7OworRkU5NTtBUkFCSUMgTEVUVEVSIFRFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MkE7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgVEFBOzs7OworRkU5NjtBUkFCSUMgTEVUVEVSIFRFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkE7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFRBQTs7OzsKK0ZFOTc7QVJBQklDIExFVFRFUiBURUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyQTs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBUQUE7Ozs7CitGRTk4O0FSQUJJQyBMRVRURVIgVEVIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjJBOzs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgVEFBOzs7OworRkU5OTtBUkFCSUMgTEVUVEVSIFRIRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjJCOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFRIQUE7Ozs7CitGRTlBO0FSQUJJQyBMRVRURVIgVEhFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkI7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFRIQUE7Ozs7CitGRTlCO0FSQUJJQyBMRVRURVIgVEhFSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjJCOzs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIFRIQUE7Ozs7CitGRTlDO0FSQUJJQyBMRVRURVIgVEhFSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDYyQjs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIFRIQUE7Ozs7CitGRTlEO0FSQUJJQyBMRVRURVIgSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MkM7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgSkVFTTs7OzsKK0ZFOUU7QVJBQklDIExFVFRFUiBKRUVNIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyQzs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgSkVFTTs7OzsKK0ZFOUY7QVJBQklDIExFVFRFUiBKRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MkM7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgSkVFTTs7OzsKK0ZFQTA7QVJBQklDIExFVFRFUiBKRUVNIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjJDOzs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgSkVFTTs7OzsKK0ZFQTE7QVJBQklDIExFVFRFUiBIQUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjJEOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEhBQTs7OzsKK0ZFQTI7QVJBQklDIExFVFRFUiBIQUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJEOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBIQUE7Ozs7CitGRUEzO0FSQUJJQyBMRVRURVIgSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MkQ7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgSEFBOzs7OworRkVBNDtBUkFCSUMgTEVUVEVSIEhBSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDYyRDs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIEhBQTs7OzsKK0ZFQTU7QVJBQklDIExFVFRFUiBLSEFIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyRTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBLSEFBOzs7OworRkVBNjtBUkFCSUMgTEVUVEVSIEtIQUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJFOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBLSEFBOzs7OworRkVBNztBUkFCSUMgTEVUVEVSIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyRTs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBLSEFBOzs7OworRkVBODtBUkFCSUMgTEVUVEVSIEtIQUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2MkU7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBLSEFBOzs7OworRkVBOTtBUkFCSUMgTEVUVEVSIERBTCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MkY7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgREFMOzs7OworRkVBQTtBUkFCSUMgTEVUVEVSIERBTCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkY7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIERBTDs7OzsKK0ZFQUI7QVJBQklDIExFVFRFUiBUSEFMIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzMDs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBUSEFMOzs7OworRkVBQztBUkFCSUMgTEVUVEVSIFRIQUwgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjMwOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBUSEFMOzs7OworRkVBRDtBUkFCSUMgTEVUVEVSIFJFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzE7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgUkE7Ozs7CitGRUFFO0FSQUJJQyBMRVRURVIgUkVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzMTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgUkE7Ozs7CitGRUFGO0FSQUJJQyBMRVRURVIgWkFJTiBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzI7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgWkFJTjs7OzsKK0ZFQjA7QVJBQklDIExFVFRFUiBaQUlOIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzMjs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgWkFJTjs7OzsKK0ZFQjE7QVJBQklDIExFVFRFUiBTRUVOIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzMzs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBTRUVOOzs7OworRkVCMjtBUkFCSUMgTEVUVEVSIFNFRU4gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjMzOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBTRUVOOzs7OworRkVCMztBUkFCSUMgTEVUVEVSIFNFRU4gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzMzs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBTRUVOOzs7OworRkVCNDtBUkFCSUMgTEVUVEVSIFNFRU4gTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2MzM7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBTRUVOOzs7OworRkVCNTtBUkFCSUMgTEVUVEVSIFNIRUVOIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzNDs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBTSEVFTjs7OzsKK0ZFQjY7QVJBQklDIExFVFRFUiBTSEVFTiBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzQ7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFNIRUVOOzs7OworRkVCNztBUkFCSUMgTEVUVEVSIFNIRUVOIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzQ7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgU0hFRU47Ozs7CitGRUI4O0FSQUJJQyBMRVRURVIgU0hFRU4gTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2MzQ7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBTSEVFTjs7OzsKK0ZFQjk7QVJBQklDIExFVFRFUiBTQUQgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM1Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFNBRDs7OzsKK0ZFQkE7QVJBQklDIExFVFRFUiBTQUQgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM1Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBTQUQ7Ozs7CitGRUJCO0FSQUJJQyBMRVRURVIgU0FEIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzU7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgU0FEOzs7OworRkVCQztBUkFCSUMgTEVUVEVSIFNBRCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDYzNTs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIFNBRDs7OzsKK0ZFQkQ7QVJBQklDIExFVFRFUiBEQUQgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM2Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIERBRDs7OzsKK0ZFQkU7QVJBQklDIExFVFRFUiBEQUQgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM2Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBEQUQ7Ozs7CitGRUJGO0FSQUJJQyBMRVRURVIgREFEIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzY7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgREFEOzs7OworRkVDMDtBUkFCSUMgTEVUVEVSIERBRCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDYzNjs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIERBRDs7OzsKK0ZFQzE7QVJBQklDIExFVFRFUiBUQUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM3Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFRBSDs7OzsKK0ZFQzI7QVJBQklDIExFVFRFUiBUQUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM3Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBUQUg7Ozs7CitGRUMzO0FSQUJJQyBMRVRURVIgVEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2Mzc7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgVEFIOzs7OworRkVDNDtBUkFCSUMgTEVUVEVSIFRBSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDYzNzs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIFRBSDs7OzsKK0ZFQzU7QVJBQklDIExFVFRFUiBaQUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM4Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIERIQUg7Ozs7CitGRUM2O0FSQUJJQyBMRVRURVIgWkFIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzODs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgREhBSDs7OzsKK0ZFQzc7QVJBQklDIExFVFRFUiBaQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzODs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBESEFIOzs7OworRkVDODtBUkFCSUMgTEVUVEVSIFpBSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDYzODs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIERIQUg7Ozs7CitGRUM5O0FSQUJJQyBMRVRURVIgQUlOIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzOTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBBSU47Ozs7CitGRUNBO0FSQUJJQyBMRVRURVIgQUlOIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzOTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgQUlOOzs7OworRkVDQjtBUkFCSUMgTEVUVEVSIEFJTiBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjM5Ozs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIEFJTjs7OzsKK0ZFQ0M7QVJBQklDIExFVFRFUiBBSU4gTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2Mzk7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBBSU47Ozs7CitGRUNEO0FSQUJJQyBMRVRURVIgR0hBSU4gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjNBOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEdIQUlOOzs7OworRkVDRTtBUkFCSUMgTEVUVEVSIEdIQUlOIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzQTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgR0hBSU47Ozs7CitGRUNGO0FSQUJJQyBMRVRURVIgR0hBSU4gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzQTs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBHSEFJTjs7OzsKK0ZFRDA7QVJBQklDIExFVFRFUiBHSEFJTiBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDYzQTs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIEdIQUlOOzs7OworRkVEMTtBUkFCSUMgTEVUVEVSIEZFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDE7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgRkE7Ozs7CitGRUQyO0FSQUJJQyBMRVRURVIgRkVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0MTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgRkE7Ozs7CitGRUQzO0FSQUJJQyBMRVRURVIgRkVIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDE7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgRkE7Ozs7CitGRUQ0O0FSQUJJQyBMRVRURVIgRkVIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjQxOzs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgRkE7Ozs7CitGRUQ1O0FSQUJJQyBMRVRURVIgUUFGIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0Mjs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBRQUY7Ozs7CitGRUQ2O0FSQUJJQyBMRVRURVIgUUFGIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0Mjs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgUUFGOzs7OworRkVENztBUkFCSUMgTEVUVEVSIFFBRiBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQyOzs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIFFBRjs7OzsKK0ZFRDg7QVJBQklDIExFVFRFUiBRQUYgTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2NDI7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBRQUY7Ozs7CitGRUQ5O0FSQUJJQyBMRVRURVIgS0FGIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0Mzs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBDQUY7Ozs7CitGRURBO0FSQUJJQyBMRVRURVIgS0FGIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0Mzs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgQ0FGOzs7OworRkVEQjtBUkFCSUMgTEVUVEVSIEtBRiBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQzOzs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIENBRjs7OzsKK0ZFREM7QVJBQklDIExFVFRFUiBLQUYgTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2NDM7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBDQUY7Ozs7CitGRUREO0FSQUJJQyBMRVRURVIgTEFNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0NDs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBMQU07Ozs7CitGRURFO0FSQUJJQyBMRVRURVIgTEFNIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NDs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgTEFNOzs7OworRkVERjtBUkFCSUMgTEVUVEVSIExBTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ0Ozs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIExBTTs7OzsKK0ZFRTA7QVJBQklDIExFVFRFUiBMQU0gTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2NDQ7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBMQU07Ozs7CitGRUUxO0FSQUJJQyBMRVRURVIgTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDU7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgTUVFTTs7OzsKK0ZFRTI7QVJBQklDIExFVFRFUiBNRUVNIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgTUVFTTs7OzsKK0ZFRTM7QVJBQklDIExFVFRFUiBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDU7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgTUVFTTs7OzsKK0ZFRTQ7QVJBQklDIExFVFRFUiBNRUVNIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjQ1Ozs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgTUVFTTs7OzsKK0ZFRTU7QVJBQklDIExFVFRFUiBOT09OIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0Njs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBOT09OOzs7OworRkVFNjtBUkFCSUMgTEVUVEVSIE5PT04gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ2Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBOT09OOzs7OworRkVFNztBUkFCSUMgTEVUVEVSIE5PT04gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0Njs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBOT09OOzs7OworRkVFODtBUkFCSUMgTEVUVEVSIE5PT04gTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2NDY7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBOT09OOzs7OworRkVFOTtBUkFCSUMgTEVUVEVSIEhFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDc7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgSEE7Ozs7CitGRUVBO0FSQUJJQyBMRVRURVIgSEVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0Nzs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgSEE7Ozs7CitGRUVCO0FSQUJJQyBMRVRURVIgSEVIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDc7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgSEE7Ozs7CitGRUVDO0FSQUJJQyBMRVRURVIgSEVIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjQ3Ozs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgSEE7Ozs7CitGRUVEO0FSQUJJQyBMRVRURVIgV0FXIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0ODs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBXQVc7Ozs7CitGRUVFO0FSQUJJQyBMRVRURVIgV0FXIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0ODs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgV0FXOzs7OworRkVFRjtBUkFCSUMgTEVUVEVSIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDk7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgQUxFRiBNQVFTVVJBSDs7OzsKK0ZFRjA7QVJBQklDIExFVFRFUiBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ5Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBBTEVGIE1BUVNVUkFIOzs7OworRkVGMTtBUkFCSUMgTEVUVEVSIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NEE7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgWUE7Ozs7CitGRUYyO0FSQUJJQyBMRVRURVIgWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0QTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgWUE7Ozs7CitGRUYzO0FSQUJJQyBMRVRURVIgWUVIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NEE7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgWUE7Ozs7CitGRUY0O0FSQUJJQyBMRVRURVIgWUVIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjRBOzs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgWUE7Ozs7CitGRUY1O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBBTEVGIFdJVEggTUFEREEgQUJPVkUgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQ0IDA2MjI7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgTUFEREFIIE9OIExJR0FUVVJFIExBTSBBTEVGOzs7OworRkVGNjtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggQUxFRiBXSVRIIE1BRERBIEFCT1ZFIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NCAwNjIyOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBNQUREQUggT04gTElHQVRVUkUgTEFNIEFMRUY7Ozs7CitGRUY3O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBBTEVGIFdJVEggSEFNWkEgQUJPVkUgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQ0IDA2MjM7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgSEFNWkFIIE9OIExJR0FUVVJFIExBTSBBTEVGOzs7OworRkVGODtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggQUxFRiBXSVRIIEhBTVpBIEFCT1ZFIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NCAwNjIzOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBIQU1aQUggT04gTElHQVRVUkUgTEFNIEFMRUY7Ozs7CitGRUY5O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBBTEVGIFdJVEggSEFNWkEgQkVMT1cgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQ0IDA2MjU7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgSEFNWkFIIFVOREVSIExJR0FUVVJFIExBTSBBTEVGOzs7OworRkVGQTtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggQUxFRiBXSVRIIEhBTVpBIEJFTE9XIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NCAwNjI1Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBIQU1aQUggVU5ERVIgTElHQVRVUkUgTEFNIEFMRUY7Ozs7CitGRUZCO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBBTEVGIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0NCAwNjI3Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIExJR0FUVVJFIExBTSBBTEVGOzs7OworRkVGQztBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggQUxFRiBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDQgMDYyNzs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgTElHQVRVUkUgTEFNIEFMRUY7Ozs7CitGRUZGO1pFUk8gV0lEVEggTk8tQlJFQUsgU1BBQ0U7Q2Y7MDtPTjs7Ozs7TjtCWVRFIE9SREVSIE1BUks7Ozs7CitGRjAxO0ZVTExXSURUSCBFWENMQU1BVElPTiBNQVJLO1BvOzA7T047PHdpZGU+IDAwMjE7Ozs7Tjs7Ozs7CitGRjAyO0ZVTExXSURUSCBRVU9UQVRJT04gTUFSSztQbzswO09OOzx3aWRlPiAwMDIyOzs7O047Ozs7OworRkYwMztGVUxMV0lEVEggTlVNQkVSIFNJR047UG87MDtFVDs8d2lkZT4gMDAyMzs7OztOOzs7OzsKK0ZGMDQ7RlVMTFdJRFRIIERPTExBUiBTSUdOO1NjOzA7RVQ7PHdpZGU+IDAwMjQ7Ozs7Tjs7Ozs7CitGRjA1O0ZVTExXSURUSCBQRVJDRU5UIFNJR047UG87MDtFVDs8d2lkZT4gMDAyNTs7OztOOzs7OzsKK0ZGMDY7RlVMTFdJRFRIIEFNUEVSU0FORDtQbzswO09OOzx3aWRlPiAwMDI2Ozs7O047Ozs7OworRkYwNztGVUxMV0lEVEggQVBPU1RST1BIRTtQbzswO09OOzx3aWRlPiAwMDI3Ozs7O047Ozs7OworRkYwODtGVUxMV0lEVEggTEVGVCBQQVJFTlRIRVNJUztQczswO09OOzx3aWRlPiAwMDI4Ozs7O047RlVMTFdJRFRIIE9QRU5JTkcgUEFSRU5USEVTSVM7Ozs7CitGRjA5O0ZVTExXSURUSCBSSUdIVCBQQVJFTlRIRVNJUztQZTswO09OOzx3aWRlPiAwMDI5Ozs7O047RlVMTFdJRFRIIENMT1NJTkcgUEFSRU5USEVTSVM7Ozs7CitGRjBBO0ZVTExXSURUSCBBU1RFUklTSztQbzswO09OOzx3aWRlPiAwMDJBOzs7O047Ozs7OworRkYwQjtGVUxMV0lEVEggUExVUyBTSUdOO1NtOzA7RVQ7PHdpZGU+IDAwMkI7Ozs7Tjs7Ozs7CitGRjBDO0ZVTExXSURUSCBDT01NQTtQbzswO0NTOzx3aWRlPiAwMDJDOzs7O047Ozs7OworRkYwRDtGVUxMV0lEVEggSFlQSEVOLU1JTlVTO1BkOzA7RVQ7PHdpZGU+IDAwMkQ7Ozs7Tjs7Ozs7CitGRjBFO0ZVTExXSURUSCBGVUxMIFNUT1A7UG87MDtDUzs8d2lkZT4gMDAyRTs7OztOO0ZVTExXSURUSCBQRVJJT0Q7Ozs7CitGRjBGO0ZVTExXSURUSCBTT0xJRFVTO1BvOzA7RVM7PHdpZGU+IDAwMkY7Ozs7TjtGVUxMV0lEVEggU0xBU0g7Ozs7CitGRjEwO0ZVTExXSURUSCBESUdJVCBaRVJPO05kOzA7RU47PHdpZGU+IDAwMzA7MDswOzA7Tjs7Ozs7CitGRjExO0ZVTExXSURUSCBESUdJVCBPTkU7TmQ7MDtFTjs8d2lkZT4gMDAzMTsxOzE7MTtOOzs7OzsKK0ZGMTI7RlVMTFdJRFRIIERJR0lUIFRXTztOZDswO0VOOzx3aWRlPiAwMDMyOzI7MjsyO047Ozs7OworRkYxMztGVUxMV0lEVEggRElHSVQgVEhSRUU7TmQ7MDtFTjs8d2lkZT4gMDAzMzszOzM7MztOOzs7OzsKK0ZGMTQ7RlVMTFdJRFRIIERJR0lUIEZPVVI7TmQ7MDtFTjs8d2lkZT4gMDAzNDs0OzQ7NDtOOzs7OzsKK0ZGMTU7RlVMTFdJRFRIIERJR0lUIEZJVkU7TmQ7MDtFTjs8d2lkZT4gMDAzNTs1OzU7NTtOOzs7OzsKK0ZGMTY7RlVMTFdJRFRIIERJR0lUIFNJWDtOZDswO0VOOzx3aWRlPiAwMDM2OzY7Njs2O047Ozs7OworRkYxNztGVUxMV0lEVEggRElHSVQgU0VWRU47TmQ7MDtFTjs8d2lkZT4gMDAzNzs3Ozc7NztOOzs7OzsKK0ZGMTg7RlVMTFdJRFRIIERJR0lUIEVJR0hUO05kOzA7RU47PHdpZGU+IDAwMzg7ODs4Ozg7Tjs7Ozs7CitGRjE5O0ZVTExXSURUSCBESUdJVCBOSU5FO05kOzA7RU47PHdpZGU+IDAwMzk7OTs5Ozk7Tjs7Ozs7CitGRjFBO0ZVTExXSURUSCBDT0xPTjtQbzswO0NTOzx3aWRlPiAwMDNBOzs7O047Ozs7OworRkYxQjtGVUxMV0lEVEggU0VNSUNPTE9OO1BvOzA7T047PHdpZGU+IDAwM0I7Ozs7Tjs7Ozs7CitGRjFDO0ZVTExXSURUSCBMRVNTLVRIQU4gU0lHTjtTbTswO09OOzx3aWRlPiAwMDNDOzs7O047Ozs7OworRkYxRDtGVUxMV0lEVEggRVFVQUxTIFNJR047U207MDtPTjs8d2lkZT4gMDAzRDs7OztOOzs7OzsKK0ZGMUU7RlVMTFdJRFRIIEdSRUFURVItVEhBTiBTSUdOO1NtOzA7T047PHdpZGU+IDAwM0U7Ozs7Tjs7Ozs7CitGRjFGO0ZVTExXSURUSCBRVUVTVElPTiBNQVJLO1BvOzA7T047PHdpZGU+IDAwM0Y7Ozs7Tjs7Ozs7CitGRjIwO0ZVTExXSURUSCBDT01NRVJDSUFMIEFUO1BvOzA7T047PHdpZGU+IDAwNDA7Ozs7Tjs7Ozs7CitGRjIxO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBBO0x1OzA7TDs8d2lkZT4gMDA0MTs7OztOOzs7O0ZGNDE7CitGRjIyO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBCO0x1OzA7TDs8d2lkZT4gMDA0Mjs7OztOOzs7O0ZGNDI7CitGRjIzO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBDO0x1OzA7TDs8d2lkZT4gMDA0Mzs7OztOOzs7O0ZGNDM7CitGRjI0O0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBEO0x1OzA7TDs8d2lkZT4gMDA0NDs7OztOOzs7O0ZGNDQ7CitGRjI1O0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBFO0x1OzA7TDs8d2lkZT4gMDA0NTs7OztOOzs7O0ZGNDU7CitGRjI2O0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBGO0x1OzA7TDs8d2lkZT4gMDA0Njs7OztOOzs7O0ZGNDY7CitGRjI3O0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBHO0x1OzA7TDs8d2lkZT4gMDA0Nzs7OztOOzs7O0ZGNDc7CitGRjI4O0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBIO0x1OzA7TDs8d2lkZT4gMDA0ODs7OztOOzs7O0ZGNDg7CitGRjI5O0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBJO0x1OzA7TDs8d2lkZT4gMDA0OTs7OztOOzs7O0ZGNDk7CitGRjJBO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBKO0x1OzA7TDs8d2lkZT4gMDA0QTs7OztOOzs7O0ZGNEE7CitGRjJCO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBLO0x1OzA7TDs8d2lkZT4gMDA0Qjs7OztOOzs7O0ZGNEI7CitGRjJDO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBMO0x1OzA7TDs8d2lkZT4gMDA0Qzs7OztOOzs7O0ZGNEM7CitGRjJEO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBNO0x1OzA7TDs8d2lkZT4gMDA0RDs7OztOOzs7O0ZGNEQ7CitGRjJFO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBOO0x1OzA7TDs8d2lkZT4gMDA0RTs7OztOOzs7O0ZGNEU7CitGRjJGO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBPO0x1OzA7TDs8d2lkZT4gMDA0Rjs7OztOOzs7O0ZGNEY7CitGRjMwO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBQO0x1OzA7TDs8d2lkZT4gMDA1MDs7OztOOzs7O0ZGNTA7CitGRjMxO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBRO0x1OzA7TDs8d2lkZT4gMDA1MTs7OztOOzs7O0ZGNTE7CitGRjMyO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBSO0x1OzA7TDs8d2lkZT4gMDA1Mjs7OztOOzs7O0ZGNTI7CitGRjMzO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBTO0x1OzA7TDs8d2lkZT4gMDA1Mzs7OztOOzs7O0ZGNTM7CitGRjM0O0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBUO0x1OzA7TDs8d2lkZT4gMDA1NDs7OztOOzs7O0ZGNTQ7CitGRjM1O0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBVO0x1OzA7TDs8d2lkZT4gMDA1NTs7OztOOzs7O0ZGNTU7CitGRjM2O0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBWO0x1OzA7TDs8d2lkZT4gMDA1Njs7OztOOzs7O0ZGNTY7CitGRjM3O0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBXO0x1OzA7TDs8d2lkZT4gMDA1Nzs7OztOOzs7O0ZGNTc7CitGRjM4O0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBYO0x1OzA7TDs8d2lkZT4gMDA1ODs7OztOOzs7O0ZGNTg7CitGRjM5O0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBZO0x1OzA7TDs8d2lkZT4gMDA1OTs7OztOOzs7O0ZGNTk7CitGRjNBO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBaO0x1OzA7TDs8d2lkZT4gMDA1QTs7OztOOzs7O0ZGNUE7CitGRjNCO0ZVTExXSURUSCBMRUZUIFNRVUFSRSBCUkFDS0VUO1BzOzA7T047PHdpZGU+IDAwNUI7Ozs7TjtGVUxMV0lEVEggT1BFTklORyBTUVVBUkUgQlJBQ0tFVDs7OzsKK0ZGM0M7RlVMTFdJRFRIIFJFVkVSU0UgU09MSURVUztQbzswO09OOzx3aWRlPiAwMDVDOzs7O047RlVMTFdJRFRIIEJBQ0tTTEFTSDs7OzsKK0ZGM0Q7RlVMTFdJRFRIIFJJR0hUIFNRVUFSRSBCUkFDS0VUO1BlOzA7T047PHdpZGU+IDAwNUQ7Ozs7TjtGVUxMV0lEVEggQ0xPU0lORyBTUVVBUkUgQlJBQ0tFVDs7OzsKK0ZGM0U7RlVMTFdJRFRIIENJUkNVTUZMRVggQUNDRU5UO1NrOzA7T047PHdpZGU+IDAwNUU7Ozs7TjtGVUxMV0lEVEggU1BBQ0lORyBDSVJDVU1GTEVYOzs7OworRkYzRjtGVUxMV0lEVEggTE9XIExJTkU7UGM7MDtPTjs8d2lkZT4gMDA1Rjs7OztOO0ZVTExXSURUSCBTUEFDSU5HIFVOREVSU0NPUkU7Ozs7CitGRjQwO0ZVTExXSURUSCBHUkFWRSBBQ0NFTlQ7U2s7MDtPTjs8d2lkZT4gMDA2MDs7OztOO0ZVTExXSURUSCBTUEFDSU5HIEdSQVZFOzs7OworRkY0MTtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEE7TGw7MDtMOzx3aWRlPiAwMDYxOzs7O047OztGRjIxOztGRjIxCitGRjQyO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgQjtMbDswO0w7PHdpZGU+IDAwNjI7Ozs7Tjs7O0ZGMjI7O0ZGMjIKK0ZGNDM7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBDO0xsOzA7TDs8d2lkZT4gMDA2Mzs7OztOOzs7RkYyMzs7RkYyMworRkY0NDtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEQ7TGw7MDtMOzx3aWRlPiAwMDY0Ozs7O047OztGRjI0OztGRjI0CitGRjQ1O0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgRTtMbDswO0w7PHdpZGU+IDAwNjU7Ozs7Tjs7O0ZGMjU7O0ZGMjUKK0ZGNDY7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBGO0xsOzA7TDs8d2lkZT4gMDA2Njs7OztOOzs7RkYyNjs7RkYyNgorRkY0NztGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEc7TGw7MDtMOzx3aWRlPiAwMDY3Ozs7O047OztGRjI3OztGRjI3CitGRjQ4O0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgSDtMbDswO0w7PHdpZGU+IDAwNjg7Ozs7Tjs7O0ZGMjg7O0ZGMjgKK0ZGNDk7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBJO0xsOzA7TDs8d2lkZT4gMDA2OTs7OztOOzs7RkYyOTs7RkYyOQorRkY0QTtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEo7TGw7MDtMOzx3aWRlPiAwMDZBOzs7O047OztGRjJBOztGRjJBCitGRjRCO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgSztMbDswO0w7PHdpZGU+IDAwNkI7Ozs7Tjs7O0ZGMkI7O0ZGMkIKK0ZGNEM7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBMO0xsOzA7TDs8d2lkZT4gMDA2Qzs7OztOOzs7RkYyQzs7RkYyQworRkY0RDtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIE07TGw7MDtMOzx3aWRlPiAwMDZEOzs7O047OztGRjJEOztGRjJECitGRjRFO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgTjtMbDswO0w7PHdpZGU+IDAwNkU7Ozs7Tjs7O0ZGMkU7O0ZGMkUKK0ZGNEY7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBPO0xsOzA7TDs8d2lkZT4gMDA2Rjs7OztOOzs7RkYyRjs7RkYyRgorRkY1MDtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIFA7TGw7MDtMOzx3aWRlPiAwMDcwOzs7O047OztGRjMwOztGRjMwCitGRjUxO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgUTtMbDswO0w7PHdpZGU+IDAwNzE7Ozs7Tjs7O0ZGMzE7O0ZGMzEKK0ZGNTI7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBSO0xsOzA7TDs8d2lkZT4gMDA3Mjs7OztOOzs7RkYzMjs7RkYzMgorRkY1MztGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIFM7TGw7MDtMOzx3aWRlPiAwMDczOzs7O047OztGRjMzOztGRjMzCitGRjU0O0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgVDtMbDswO0w7PHdpZGU+IDAwNzQ7Ozs7Tjs7O0ZGMzQ7O0ZGMzQKK0ZGNTU7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBVO0xsOzA7TDs8d2lkZT4gMDA3NTs7OztOOzs7RkYzNTs7RkYzNQorRkY1NjtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIFY7TGw7MDtMOzx3aWRlPiAwMDc2Ozs7O047OztGRjM2OztGRjM2CitGRjU3O0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgVztMbDswO0w7PHdpZGU+IDAwNzc7Ozs7Tjs7O0ZGMzc7O0ZGMzcKK0ZGNTg7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBYO0xsOzA7TDs8d2lkZT4gMDA3ODs7OztOOzs7RkYzODs7RkYzOAorRkY1OTtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIFk7TGw7MDtMOzx3aWRlPiAwMDc5Ozs7O047OztGRjM5OztGRjM5CitGRjVBO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgWjtMbDswO0w7PHdpZGU+IDAwN0E7Ozs7Tjs7O0ZGM0E7O0ZGM0EKK0ZGNUI7RlVMTFdJRFRIIExFRlQgQ1VSTFkgQlJBQ0tFVDtQczswO09OOzx3aWRlPiAwMDdCOzs7O047RlVMTFdJRFRIIE9QRU5JTkcgQ1VSTFkgQlJBQ0tFVDs7OzsKK0ZGNUM7RlVMTFdJRFRIIFZFUlRJQ0FMIExJTkU7U207MDtPTjs8d2lkZT4gMDA3Qzs7OztOO0ZVTExXSURUSCBWRVJUSUNBTCBCQVI7Ozs7CitGRjVEO0ZVTExXSURUSCBSSUdIVCBDVVJMWSBCUkFDS0VUO1BlOzA7T047PHdpZGU+IDAwN0Q7Ozs7TjtGVUxMV0lEVEggQ0xPU0lORyBDVVJMWSBCUkFDS0VUOzs7OworRkY1RTtGVUxMV0lEVEggVElMREU7U207MDtPTjs8d2lkZT4gMDA3RTs7OztOO0ZVTExXSURUSCBTUEFDSU5HIFRJTERFOzs7OworRkY2MTtIQUxGV0lEVEggSURFT0dSQVBISUMgRlVMTCBTVE9QO1BvOzA7T047PG5hcnJvdz4gMzAwMjs7OztOO0hBTEZXSURUSCBJREVPR1JBUEhJQyBQRVJJT0Q7Ozs7CitGRjYyO0hBTEZXSURUSCBMRUZUIENPUk5FUiBCUkFDS0VUO1BzOzA7T047PG5hcnJvdz4gMzAwQzs7OztOO0hBTEZXSURUSCBPUEVOSU5HIENPUk5FUiBCUkFDS0VUOzs7OworRkY2MztIQUxGV0lEVEggUklHSFQgQ09STkVSIEJSQUNLRVQ7UGU7MDtPTjs8bmFycm93PiAzMDBEOzs7O047SEFMRldJRFRIIENMT1NJTkcgQ09STkVSIEJSQUNLRVQ7Ozs7CitGRjY0O0hBTEZXSURUSCBJREVPR1JBUEhJQyBDT01NQTtQbzswO09OOzxuYXJyb3c+IDMwMDE7Ozs7Tjs7Ozs7CitGRjY1O0hBTEZXSURUSCBLQVRBS0FOQSBNSURETEUgRE9UO1BvOzA7TDs8bmFycm93PiAzMEZCOzs7O047Ozs7OworRkY2NjtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFdPO0xvOzA7TDs8bmFycm93PiAzMEYyOzs7O047Ozs7OworRkY2NztIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFNNQUxMIEE7TG87MDtMOzxuYXJyb3c+IDMwQTE7Ozs7Tjs7Ozs7CitGRjY4O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU01BTEwgSTtMbzswO0w7PG5hcnJvdz4gMzBBMzs7OztOOzs7OzsKK0ZGNjk7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTUFMTCBVO0xvOzA7TDs8bmFycm93PiAzMEE1Ozs7O047Ozs7OworRkY2QTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFNNQUxMIEU7TG87MDtMOzxuYXJyb3c+IDMwQTc7Ozs7Tjs7Ozs7CitGRjZCO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU01BTEwgTztMbzswO0w7PG5hcnJvdz4gMzBBOTs7OztOOzs7OzsKK0ZGNkM7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTUFMTCBZQTtMbzswO0w7PG5hcnJvdz4gMzBFMzs7OztOOzs7OzsKK0ZGNkQ7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTUFMTCBZVTtMbzswO0w7PG5hcnJvdz4gMzBFNTs7OztOOzs7OzsKK0ZGNkU7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTUFMTCBZTztMbzswO0w7PG5hcnJvdz4gMzBFNzs7OztOOzs7OzsKK0ZGNkY7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTUFMTCBUVTtMbzswO0w7PG5hcnJvdz4gMzBDMzs7OztOOzs7OzsKK0ZGNzA7SEFMRldJRFRIIEtBVEFLQU5BLUhJUkFHQU5BIFBST0xPTkdFRCBTT1VORCBNQVJLO0xtOzA7TDs8bmFycm93PiAzMEZDOzs7O047Ozs7OworRkY3MTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIEE7TG87MDtMOzxuYXJyb3c+IDMwQTI7Ozs7Tjs7Ozs7CitGRjcyO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgSTtMbzswO0w7PG5hcnJvdz4gMzBBNDs7OztOOzs7OzsKK0ZGNzM7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBVO0xvOzA7TDs8bmFycm93PiAzMEE2Ozs7O047Ozs7OworRkY3NDtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIEU7TG87MDtMOzxuYXJyb3c+IDMwQTg7Ozs7Tjs7Ozs7CitGRjc1O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTztMbzswO0w7PG5hcnJvdz4gMzBBQTs7OztOOzs7OzsKK0ZGNzY7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBLQTtMbzswO0w7PG5hcnJvdz4gMzBBQjs7OztOOzs7OzsKK0ZGNzc7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBLSTtMbzswO0w7PG5hcnJvdz4gMzBBRDs7OztOOzs7OzsKK0ZGNzg7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBLVTtMbzswO0w7PG5hcnJvdz4gMzBBRjs7OztOOzs7OzsKK0ZGNzk7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBLRTtMbzswO0w7PG5hcnJvdz4gMzBCMTs7OztOOzs7OzsKK0ZGN0E7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBLTztMbzswO0w7PG5hcnJvdz4gMzBCMzs7OztOOzs7OzsKK0ZGN0I7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTQTtMbzswO0w7PG5hcnJvdz4gMzBCNTs7OztOOzs7OzsKK0ZGN0M7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTSTtMbzswO0w7PG5hcnJvdz4gMzBCNzs7OztOOzs7OzsKK0ZGN0Q7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTVTtMbzswO0w7PG5hcnJvdz4gMzBCOTs7OztOOzs7OzsKK0ZGN0U7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTRTtMbzswO0w7PG5hcnJvdz4gMzBCQjs7OztOOzs7OzsKK0ZGN0Y7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTztMbzswO0w7PG5hcnJvdz4gMzBCRDs7OztOOzs7OzsKK0ZGODA7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBUQTtMbzswO0w7PG5hcnJvdz4gMzBCRjs7OztOOzs7OzsKK0ZGODE7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBUSTtMbzswO0w7PG5hcnJvdz4gMzBDMTs7OztOOzs7OzsKK0ZGODI7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBUVTtMbzswO0w7PG5hcnJvdz4gMzBDNDs7OztOOzs7OzsKK0ZGODM7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBURTtMbzswO0w7PG5hcnJvdz4gMzBDNjs7OztOOzs7OzsKK0ZGODQ7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBUTztMbzswO0w7PG5hcnJvdz4gMzBDODs7OztOOzs7OzsKK0ZGODU7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBOQTtMbzswO0w7PG5hcnJvdz4gMzBDQTs7OztOOzs7OzsKK0ZGODY7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBOSTtMbzswO0w7PG5hcnJvdz4gMzBDQjs7OztOOzs7OzsKK0ZGODc7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBOVTtMbzswO0w7PG5hcnJvdz4gMzBDQzs7OztOOzs7OzsKK0ZGODg7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBORTtMbzswO0w7PG5hcnJvdz4gMzBDRDs7OztOOzs7OzsKK0ZGODk7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBOTztMbzswO0w7PG5hcnJvdz4gMzBDRTs7OztOOzs7OzsKK0ZGOEE7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBIQTtMbzswO0w7PG5hcnJvdz4gMzBDRjs7OztOOzs7OzsKK0ZGOEI7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBISTtMbzswO0w7PG5hcnJvdz4gMzBEMjs7OztOOzs7OzsKK0ZGOEM7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBIVTtMbzswO0w7PG5hcnJvdz4gMzBENTs7OztOOzs7OzsKK0ZGOEQ7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBIRTtMbzswO0w7PG5hcnJvdz4gMzBEODs7OztOOzs7OzsKK0ZGOEU7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBITztMbzswO0w7PG5hcnJvdz4gMzBEQjs7OztOOzs7OzsKK0ZGOEY7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBNQTtMbzswO0w7PG5hcnJvdz4gMzBERTs7OztOOzs7OzsKK0ZGOTA7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBNSTtMbzswO0w7PG5hcnJvdz4gMzBERjs7OztOOzs7OzsKK0ZGOTE7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBNVTtMbzswO0w7PG5hcnJvdz4gMzBFMDs7OztOOzs7OzsKK0ZGOTI7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBNRTtMbzswO0w7PG5hcnJvdz4gMzBFMTs7OztOOzs7OzsKK0ZGOTM7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBNTztMbzswO0w7PG5hcnJvdz4gMzBFMjs7OztOOzs7OzsKK0ZGOTQ7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBZQTtMbzswO0w7PG5hcnJvdz4gMzBFNDs7OztOOzs7OzsKK0ZGOTU7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBZVTtMbzswO0w7PG5hcnJvdz4gMzBFNjs7OztOOzs7OzsKK0ZGOTY7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBZTztMbzswO0w7PG5hcnJvdz4gMzBFODs7OztOOzs7OzsKK0ZGOTc7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBSQTtMbzswO0w7PG5hcnJvdz4gMzBFOTs7OztOOzs7OzsKK0ZGOTg7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBSSTtMbzswO0w7PG5hcnJvdz4gMzBFQTs7OztOOzs7OzsKK0ZGOTk7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBSVTtMbzswO0w7PG5hcnJvdz4gMzBFQjs7OztOOzs7OzsKK0ZGOUE7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBSRTtMbzswO0w7PG5hcnJvdz4gMzBFQzs7OztOOzs7OzsKK0ZGOUI7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBSTztMbzswO0w7PG5hcnJvdz4gMzBFRDs7OztOOzs7OzsKK0ZGOUM7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBXQTtMbzswO0w7PG5hcnJvdz4gMzBFRjs7OztOOzs7OzsKK0ZGOUQ7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBOO0xvOzA7TDs8bmFycm93PiAzMEYzOzs7O047Ozs7OworRkY5RTtIQUxGV0lEVEggS0FUQUtBTkEgVk9JQ0VEIFNPVU5EIE1BUks7TG07MDtMOzxuYXJyb3c+IDMwOTk7Ozs7Tjs7Ozs7CitGRjlGO0hBTEZXSURUSCBLQVRBS0FOQSBTRU1JLVZPSUNFRCBTT1VORCBNQVJLO0xtOzA7TDs8bmFycm93PiAzMDlBOzs7O047Ozs7OworRkZBMDtIQUxGV0lEVEggSEFOR1VMIEZJTExFUjtMbzswO0w7PG5hcnJvdz4gMzE2NDs7OztOO0hBTEZXSURUSCBIQU5HVUwgQ0FFIE9NOzs7OworRkZBMTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBLSVlFT0s7TG87MDtMOzxuYXJyb3c+IDMxMzE7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBHSVlFT0c7Ozs7CitGRkEyO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFNTQU5HS0lZRU9LO0xvOzA7TDs8bmFycm93PiAzMTMyOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU1NBTkcgR0lZRU9HOzs7OworRkZBMztIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBLSVlFT0stU0lPUztMbzswO0w7PG5hcnJvdz4gMzEzMzs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEdJWUVPRyBTSU9TOzs7OworRkZBNDtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBOSUVVTjtMbzswO0w7PG5hcnJvdz4gMzEzNDs7OztOOzs7OzsKK0ZGQTU7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTklFVU4tQ0lFVUM7TG87MDtMOzxuYXJyb3c+IDMxMzU7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBOSUVVTiBKSUVVSjs7OzsKK0ZGQTY7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTklFVU4tSElFVUg7TG87MDtMOzxuYXJyb3c+IDMxMzY7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBOSUVVTiBISUVVSDs7OzsKK0ZGQTc7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgVElLRVVUO0xvOzA7TDs8bmFycm93PiAzMTM3Ozs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgRElHRVVEOzs7OworRkZBODtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBTU0FOR1RJS0VVVDtMbzswO0w7PG5hcnJvdz4gMzEzODs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFNTQU5HIERJR0VVRDs7OzsKK0ZGQTk7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUklFVUw7TG87MDtMOzxuYXJyb3c+IDMxMzk7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBMSUVVTDs7OzsKK0ZGQUE7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUklFVUwtS0lZRU9LO0xvOzA7TDs8bmFycm93PiAzMTNBOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTElFVUwgR0lZRU9HOzs7OworRkZBQjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBSSUVVTC1NSUVVTTtMbzswO0w7PG5hcnJvdz4gMzEzQjs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIExJRVVMIE1JRVVNOzs7OworRkZBQztIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBSSUVVTC1QSUVVUDtMbzswO0w7PG5hcnJvdz4gMzEzQzs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIExJRVVMIEJJRVVCOzs7OworRkZBRDtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBSSUVVTC1TSU9TO0xvOzA7TDs8bmFycm93PiAzMTNEOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTElFVUwgU0lPUzs7OzsKK0ZGQUU7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUklFVUwtVEhJRVVUSDtMbzswO0w7PG5hcnJvdz4gMzEzRTs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIExJRVVMIFRJRVVUOzs7OworRkZBRjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBSSUVVTC1QSElFVVBIO0xvOzA7TDs8bmFycm93PiAzMTNGOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTElFVUwgUElFVVA7Ozs7CitGRkIwO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFJJRVVMLUhJRVVIO0xvOzA7TDs8bmFycm93PiAzMTQwOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTElFVUwgSElFVUg7Ozs7CitGRkIxO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIE1JRVVNO0xvOzA7TDs8bmFycm93PiAzMTQxOzs7O047Ozs7OworRkZCMjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBQSUVVUDtMbzswO0w7PG5hcnJvdz4gMzE0Mjs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEJJRVVCOzs7OworRkZCMztIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBTU0FOR1BJRVVQO0xvOzA7TDs8bmFycm93PiAzMTQzOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU1NBTkcgQklFVUI7Ozs7CitGRkI0O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFBJRVVQLVNJT1M7TG87MDtMOzxuYXJyb3c+IDMxNDQ7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBCSUVVQiBTSU9TOzs7OworRkZCNTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBTSU9TO0xvOzA7TDs8bmFycm93PiAzMTQ1Ozs7O047Ozs7OworRkZCNjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBTU0FOR1NJT1M7TG87MDtMOzxuYXJyb3c+IDMxNDY7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBTU0FORyBTSU9TOzs7OworRkZCNztIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBJRVVORztMbzswO0w7PG5hcnJvdz4gMzE0Nzs7OztOOzs7OzsKK0ZGQjg7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgQ0lFVUM7TG87MDtMOzxuYXJyb3c+IDMxNDg7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBKSUVVSjs7OzsKK0ZGQjk7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU1NBTkdDSUVVQztMbzswO0w7PG5hcnJvdz4gMzE0OTs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFNTQU5HIEpJRVVKOzs7OworRkZCQTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBDSElFVUNIO0xvOzA7TDs8bmFycm93PiAzMTRBOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgQ0lFVUM7Ozs7CitGRkJCO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEtISUVVS0g7TG87MDtMOzxuYXJyb3c+IDMxNEI7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBLSVlFT0s7Ozs7CitGRkJDO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFRISUVVVEg7TG87MDtMOzxuYXJyb3c+IDMxNEM7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBUSUVVVDs7OzsKK0ZGQkQ7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUEhJRVVQSDtMbzswO0w7PG5hcnJvdz4gMzE0RDs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFBJRVVQOzs7OworRkZCRTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBISUVVSDtMbzswO0w7PG5hcnJvdz4gMzE0RTs7OztOOzs7OzsKK0ZGQzI7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgQTtMbzswO0w7PG5hcnJvdz4gMzE0Rjs7OztOOzs7OzsKK0ZGQzM7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgQUU7TG87MDtMOzxuYXJyb3c+IDMxNTA7Ozs7Tjs7Ozs7CitGRkM0O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFlBO0xvOzA7TDs8bmFycm93PiAzMTUxOzs7O047Ozs7OworRkZDNTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBZQUU7TG87MDtMOzxuYXJyb3c+IDMxNTI7Ozs7Tjs7Ozs7CitGRkM2O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEVPO0xvOzA7TDs8bmFycm93PiAzMTUzOzs7O047Ozs7OworRkZDNztIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBFO0xvOzA7TDs8bmFycm93PiAzMTU0Ozs7O047Ozs7OworRkZDQTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBZRU87TG87MDtMOzxuYXJyb3c+IDMxNTU7Ozs7Tjs7Ozs7CitGRkNCO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFlFO0xvOzA7TDs8bmFycm93PiAzMTU2Ozs7O047Ozs7OworRkZDQztIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBPO0xvOzA7TDs8bmFycm93PiAzMTU3Ozs7O047Ozs7OworRkZDRDtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBXQTtMbzswO0w7PG5hcnJvdz4gMzE1ODs7OztOOzs7OzsKK0ZGQ0U7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgV0FFO0xvOzA7TDs8bmFycm93PiAzMTU5Ozs7O047Ozs7OworRkZDRjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBPRTtMbzswO0w7PG5hcnJvdz4gMzE1QTs7OztOOzs7OzsKK0ZGRDI7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgWU87TG87MDtMOzxuYXJyb3c+IDMxNUI7Ozs7Tjs7Ozs7CitGRkQzO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFU7TG87MDtMOzxuYXJyb3c+IDMxNUM7Ozs7Tjs7Ozs7CitGRkQ0O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFdFTztMbzswO0w7PG5hcnJvdz4gMzE1RDs7OztOOzs7OzsKK0ZGRDU7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgV0U7TG87MDtMOzxuYXJyb3c+IDMxNUU7Ozs7Tjs7Ozs7CitGRkQ2O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFdJO0xvOzA7TDs8bmFycm93PiAzMTVGOzs7O047Ozs7OworRkZENztIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBZVTtMbzswO0w7PG5hcnJvdz4gMzE2MDs7OztOOzs7OzsKK0ZGREE7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgRVU7TG87MDtMOzxuYXJyb3c+IDMxNjE7Ozs7Tjs7Ozs7CitGRkRCO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFlJO0xvOzA7TDs8bmFycm93PiAzMTYyOzs7O047Ozs7OworRkZEQztIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBJO0xvOzA7TDs8bmFycm93PiAzMTYzOzs7O047Ozs7OworRkZFMDtGVUxMV0lEVEggQ0VOVCBTSUdOO1NjOzA7RVQ7PHdpZGU+IDAwQTI7Ozs7Tjs7Ozs7CitGRkUxO0ZVTExXSURUSCBQT1VORCBTSUdOO1NjOzA7RVQ7PHdpZGU+IDAwQTM7Ozs7Tjs7Ozs7CitGRkUyO0ZVTExXSURUSCBOT1QgU0lHTjtTbTswO09OOzx3aWRlPiAwMEFDOzs7O047Ozs7OworRkZFMztGVUxMV0lEVEggTUFDUk9OO1NrOzA7T047PHdpZGU+IDAwQUY7Ozs7TjtGVUxMV0lEVEggU1BBQ0lORyBNQUNST047Ozs7CitGRkU0O0ZVTExXSURUSCBCUk9LRU4gQkFSO1NvOzA7T047PHdpZGU+IDAwQTY7Ozs7TjtGVUxMV0lEVEggQlJPS0VOIFZFUlRJQ0FMIEJBUjs7OzsKK0ZGRTU7RlVMTFdJRFRIIFlFTiBTSUdOO1NjOzA7RVQ7PHdpZGU+IDAwQTU7Ozs7Tjs7Ozs7CitGRkU2O0ZVTExXSURUSCBXT04gU0lHTjtTYzswO0VUOzx3aWRlPiAyMEE5Ozs7O047Ozs7OworRkZFODtIQUxGV0lEVEggRk9STVMgTElHSFQgVkVSVElDQUw7U207MDtPTjs8bmFycm93PiAyNTAyOzs7O047Ozs7OworRkZFOTtIQUxGV0lEVEggTEVGVFdBUkRTIEFSUk9XO1NtOzA7T047PG5hcnJvdz4gMjE5MDs7OztOOzs7OzsKK0ZGRUE7SEFMRldJRFRIIFVQV0FSRFMgQVJST1c7U207MDtPTjs8bmFycm93PiAyMTkxOzs7O047Ozs7OworRkZFQjtIQUxGV0lEVEggUklHSFRXQVJEUyBBUlJPVztTbTswO09OOzxuYXJyb3c+IDIxOTI7Ozs7Tjs7Ozs7CitGRkVDO0hBTEZXSURUSCBET1dOV0FSRFMgQVJST1c7U207MDtPTjs8bmFycm93PiAyMTkzOzs7O047Ozs7OworRkZFRDtIQUxGV0lEVEggQkxBQ0sgU1FVQVJFO1NvOzA7T047PG5hcnJvdz4gMjVBMDs7OztOOzs7OzsKK0ZGRUU7SEFMRldJRFRIIFdISVRFIENJUkNMRTtTbzswO09OOzxuYXJyb3c+IDI1Q0I7Ozs7Tjs7Ozs7CitGRkZDO09CSkVDVCBSRVBMQUNFTUVOVCBDSEFSQUNURVI7U287MDtPTjs7Ozs7Tjs7Ozs7CitGRkZEO1JFUExBQ0VNRU5UIENIQVJBQ1RFUjtTbzswO09OOzs7OztOOzs7OzsKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL1VuaWNvZGVEYXRhLTIuMS44LnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL1VuaWNvZGVEYXRhLTIuMS44LnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42YzJmNjkzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvVW5pY29kZURhdGEtMi4xLjgudHh0CkBAIC0wLDAgKzEsNjg5MCBAQAorMDAwMDs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7TjtOVUxMOzs7OworMDAwMTs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7TjtTVEFSVCBPRiBIRUFESU5HOzs7OworMDAwMjs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7TjtTVEFSVCBPRiBURVhUOzs7OworMDAwMzs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7TjtFTkQgT0YgVEVYVDs7OzsKKzAwMDQ7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047RU5EIE9GIFRSQU5TTUlTU0lPTjs7OzsKKzAwMDU7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047RU5RVUlSWTs7OzsKKzAwMDY7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047QUNLTk9XTEVER0U7Ozs7CiswMDA3Ozxjb250cm9sPjtDYzswO09OOzs7OztOO0JFTEw7Ozs7CiswMDA4Ozxjb250cm9sPjtDYzswO09OOzs7OztOO0JBQ0tTUEFDRTs7OzsKKzAwMDk7PGNvbnRyb2w+O0NjOzA7Uzs7Ozs7TjtIT1JJWk9OVEFMIFRBQlVMQVRJT047Ozs7CiswMDBBOzxjb250cm9sPjtDYzswO0I7Ozs7O047TElORSBGRUVEOzs7OworMDAwQjs8Y29udHJvbD47Q2M7MDtTOzs7OztOO1ZFUlRJQ0FMIFRBQlVMQVRJT047Ozs7CiswMDBDOzxjb250cm9sPjtDYzswO0I7Ozs7O047Rk9STSBGRUVEOzs7OworMDAwRDs8Y29udHJvbD47Q2M7MDtCOzs7OztOO0NBUlJJQUdFIFJFVFVSTjs7OzsKKzAwMEU7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047U0hJRlQgT1VUOzs7OworMDAwRjs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7TjtTSElGVCBJTjs7OzsKKzAwMTA7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047REFUQSBMSU5LIEVTQ0FQRTs7OzsKKzAwMTE7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047REVWSUNFIENPTlRST0wgT05FOzs7OworMDAxMjs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7TjtERVZJQ0UgQ09OVFJPTCBUV087Ozs7CiswMDEzOzxjb250cm9sPjtDYzswO09OOzs7OztOO0RFVklDRSBDT05UUk9MIFRIUkVFOzs7OworMDAxNDs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7TjtERVZJQ0UgQ09OVFJPTCBGT1VSOzs7OworMDAxNTs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7TjtORUdBVElWRSBBQ0tOT1dMRURHRTs7OzsKKzAwMTY7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047U1lOQ0hST05PVVMgSURMRTs7OzsKKzAwMTc7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047RU5EIE9GIFRSQU5TTUlTU0lPTiBCTE9DSzs7OzsKKzAwMTg7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047Q0FOQ0VMOzs7OworMDAxOTs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7TjtFTkQgT0YgTUVESVVNOzs7OworMDAxQTs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7TjtTVUJTVElUVVRFOzs7OworMDAxQjs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7TjtFU0NBUEU7Ozs7CiswMDFDOzxjb250cm9sPjtDYzswO0I7Ozs7O047RklMRSBTRVBBUkFUT1I7Ozs7CiswMDFEOzxjb250cm9sPjtDYzswO0I7Ozs7O047R1JPVVAgU0VQQVJBVE9SOzs7OworMDAxRTs8Y29udHJvbD47Q2M7MDtCOzs7OztOO1JFQ09SRCBTRVBBUkFUT1I7Ozs7CiswMDFGOzxjb250cm9sPjtDYzswO1M7Ozs7O047VU5JVCBTRVBBUkFUT1I7Ozs7CiswMDIwO1NQQUNFO1pzOzA7V1M7Ozs7O047Ozs7OworMDAyMTtFWENMQU1BVElPTiBNQVJLO1BvOzA7T047Ozs7O047Ozs7OworMDAyMjtRVU9UQVRJT04gTUFSSztQbzswO09OOzs7OztOOzs7OzsKKzAwMjM7TlVNQkVSIFNJR047UG87MDtFVDs7Ozs7Tjs7Ozs7CiswMDI0O0RPTExBUiBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMDAyNTtQRVJDRU5UIFNJR047UG87MDtFVDs7Ozs7Tjs7Ozs7CiswMDI2O0FNUEVSU0FORDtQbzswO09OOzs7OztOOzs7OzsKKzAwMjc7QVBPU1RST1BIRTtQbzswO09OOzs7OztOO0FQT1NUUk9QSEUtUVVPVEU7Ozs7CiswMDI4O0xFRlQgUEFSRU5USEVTSVM7UHM7MDtPTjs7Ozs7WTtPUEVOSU5HIFBBUkVOVEhFU0lTOzs7OworMDAyOTtSSUdIVCBQQVJFTlRIRVNJUztQZTswO09OOzs7OztZO0NMT1NJTkcgUEFSRU5USEVTSVM7Ozs7CiswMDJBO0FTVEVSSVNLO1BvOzA7T047Ozs7O047Ozs7OworMDAyQjtQTFVTIFNJR047U207MDtFVDs7Ozs7Tjs7Ozs7CiswMDJDO0NPTU1BO1BvOzA7Q1M7Ozs7O047Ozs7OworMDAyRDtIWVBIRU4tTUlOVVM7UGQ7MDtFVDs7Ozs7Tjs7Ozs7CiswMDJFO0ZVTEwgU1RPUDtQbzswO0NTOzs7OztOO1BFUklPRDs7OzsKKzAwMkY7U09MSURVUztQbzswO0VTOzs7OztOO1NMQVNIOzs7OworMDAzMDtESUdJVCBaRVJPO05kOzA7RU47OzA7MDswO047Ozs7OworMDAzMTtESUdJVCBPTkU7TmQ7MDtFTjs7MTsxOzE7Tjs7Ozs7CiswMDMyO0RJR0lUIFRXTztOZDswO0VOOzsyOzI7MjtOOzs7OzsKKzAwMzM7RElHSVQgVEhSRUU7TmQ7MDtFTjs7MzszOzM7Tjs7Ozs7CiswMDM0O0RJR0lUIEZPVVI7TmQ7MDtFTjs7NDs0OzQ7Tjs7Ozs7CiswMDM1O0RJR0lUIEZJVkU7TmQ7MDtFTjs7NTs1OzU7Tjs7Ozs7CiswMDM2O0RJR0lUIFNJWDtOZDswO0VOOzs2OzY7NjtOOzs7OzsKKzAwMzc7RElHSVQgU0VWRU47TmQ7MDtFTjs7Nzs3Ozc7Tjs7Ozs7CiswMDM4O0RJR0lUIEVJR0hUO05kOzA7RU47Ozg7ODs4O047Ozs7OworMDAzOTtESUdJVCBOSU5FO05kOzA7RU47Ozk7OTs5O047Ozs7OworMDAzQTtDT0xPTjtQbzswO0NTOzs7OztOOzs7OzsKKzAwM0I7U0VNSUNPTE9OO1BvOzA7T047Ozs7O047Ozs7OworMDAzQztMRVNTLVRIQU4gU0lHTjtTbTswO09OOzs7OztZOzs7OzsKKzAwM0Q7RVFVQUxTIFNJR047U207MDtPTjs7Ozs7Tjs7Ozs7CiswMDNFO0dSRUFURVItVEhBTiBTSUdOO1NtOzA7T047Ozs7O1k7Ozs7OworMDAzRjtRVUVTVElPTiBNQVJLO1BvOzA7T047Ozs7O047Ozs7OworMDA0MDtDT01NRVJDSUFMIEFUO1BvOzA7T047Ozs7O047Ozs7OworMDA0MTtMQVRJTiBDQVBJVEFMIExFVFRFUiBBO0x1OzA7TDs7Ozs7Tjs7OzswMDYxOworMDA0MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBCO0x1OzA7TDs7Ozs7Tjs7OzswMDYyOworMDA0MztMQVRJTiBDQVBJVEFMIExFVFRFUiBDO0x1OzA7TDs7Ozs7Tjs7OzswMDYzOworMDA0NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBEO0x1OzA7TDs7Ozs7Tjs7OzswMDY0OworMDA0NTtMQVRJTiBDQVBJVEFMIExFVFRFUiBFO0x1OzA7TDs7Ozs7Tjs7OzswMDY1OworMDA0NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBGO0x1OzA7TDs7Ozs7Tjs7OzswMDY2OworMDA0NztMQVRJTiBDQVBJVEFMIExFVFRFUiBHO0x1OzA7TDs7Ozs7Tjs7OzswMDY3OworMDA0ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBIO0x1OzA7TDs7Ozs7Tjs7OzswMDY4OworMDA0OTtMQVRJTiBDQVBJVEFMIExFVFRFUiBJO0x1OzA7TDs7Ozs7Tjs7OzswMDY5OworMDA0QTtMQVRJTiBDQVBJVEFMIExFVFRFUiBKO0x1OzA7TDs7Ozs7Tjs7OzswMDZBOworMDA0QjtMQVRJTiBDQVBJVEFMIExFVFRFUiBLO0x1OzA7TDs7Ozs7Tjs7OzswMDZCOworMDA0QztMQVRJTiBDQVBJVEFMIExFVFRFUiBMO0x1OzA7TDs7Ozs7Tjs7OzswMDZDOworMDA0RDtMQVRJTiBDQVBJVEFMIExFVFRFUiBNO0x1OzA7TDs7Ozs7Tjs7OzswMDZEOworMDA0RTtMQVRJTiBDQVBJVEFMIExFVFRFUiBOO0x1OzA7TDs7Ozs7Tjs7OzswMDZFOworMDA0RjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPO0x1OzA7TDs7Ozs7Tjs7OzswMDZGOworMDA1MDtMQVRJTiBDQVBJVEFMIExFVFRFUiBQO0x1OzA7TDs7Ozs7Tjs7OzswMDcwOworMDA1MTtMQVRJTiBDQVBJVEFMIExFVFRFUiBRO0x1OzA7TDs7Ozs7Tjs7OzswMDcxOworMDA1MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBSO0x1OzA7TDs7Ozs7Tjs7OzswMDcyOworMDA1MztMQVRJTiBDQVBJVEFMIExFVFRFUiBTO0x1OzA7TDs7Ozs7Tjs7OzswMDczOworMDA1NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBUO0x1OzA7TDs7Ozs7Tjs7OzswMDc0OworMDA1NTtMQVRJTiBDQVBJVEFMIExFVFRFUiBVO0x1OzA7TDs7Ozs7Tjs7OzswMDc1OworMDA1NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBWO0x1OzA7TDs7Ozs7Tjs7OzswMDc2OworMDA1NztMQVRJTiBDQVBJVEFMIExFVFRFUiBXO0x1OzA7TDs7Ozs7Tjs7OzswMDc3OworMDA1ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBYO0x1OzA7TDs7Ozs7Tjs7OzswMDc4OworMDA1OTtMQVRJTiBDQVBJVEFMIExFVFRFUiBZO0x1OzA7TDs7Ozs7Tjs7OzswMDc5OworMDA1QTtMQVRJTiBDQVBJVEFMIExFVFRFUiBaO0x1OzA7TDs7Ozs7Tjs7OzswMDdBOworMDA1QjtMRUZUIFNRVUFSRSBCUkFDS0VUO1BzOzA7T047Ozs7O1k7T1BFTklORyBTUVVBUkUgQlJBQ0tFVDs7OzsKKzAwNUM7UkVWRVJTRSBTT0xJRFVTO1BvOzA7T047Ozs7O047QkFDS1NMQVNIOzs7OworMDA1RDtSSUdIVCBTUVVBUkUgQlJBQ0tFVDtQZTswO09OOzs7OztZO0NMT1NJTkcgU1FVQVJFIEJSQUNLRVQ7Ozs7CiswMDVFO0NJUkNVTUZMRVggQUNDRU5UO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzAyOzs7O047U1BBQ0lORyBDSVJDVU1GTEVYOzs7OworMDA1RjtMT1cgTElORTtQYzswO09OOzxjb21wYXQ+IDAwMjAgMDMzMjs7OztOO1NQQUNJTkcgVU5ERVJTQ09SRTs7OzsKKzAwNjA7R1JBVkUgQUNDRU5UO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzAwOzs7O047U1BBQ0lORyBHUkFWRTs7OzsKKzAwNjE7TEFUSU4gU01BTEwgTEVUVEVSIEE7TGw7MDtMOzs7OztOOzs7MDA0MTs7MDA0MQorMDA2MjtMQVRJTiBTTUFMTCBMRVRURVIgQjtMbDswO0w7Ozs7O047OzswMDQyOzswMDQyCiswMDYzO0xBVElOIFNNQUxMIExFVFRFUiBDO0xsOzA7TDs7Ozs7Tjs7OzAwNDM7OzAwNDMKKzAwNjQ7TEFUSU4gU01BTEwgTEVUVEVSIEQ7TGw7MDtMOzs7OztOOzs7MDA0NDs7MDA0NAorMDA2NTtMQVRJTiBTTUFMTCBMRVRURVIgRTtMbDswO0w7Ozs7O047OzswMDQ1OzswMDQ1CiswMDY2O0xBVElOIFNNQUxMIExFVFRFUiBGO0xsOzA7TDs7Ozs7Tjs7OzAwNDY7OzAwNDYKKzAwNjc7TEFUSU4gU01BTEwgTEVUVEVSIEc7TGw7MDtMOzs7OztOOzs7MDA0Nzs7MDA0NworMDA2ODtMQVRJTiBTTUFMTCBMRVRURVIgSDtMbDswO0w7Ozs7O047OzswMDQ4OzswMDQ4CiswMDY5O0xBVElOIFNNQUxMIExFVFRFUiBJO0xsOzA7TDs7Ozs7Tjs7OzAwNDk7OzAwNDkKKzAwNkE7TEFUSU4gU01BTEwgTEVUVEVSIEo7TGw7MDtMOzs7OztOOzs7MDA0QTs7MDA0QQorMDA2QjtMQVRJTiBTTUFMTCBMRVRURVIgSztMbDswO0w7Ozs7O047OzswMDRCOzswMDRCCiswMDZDO0xBVElOIFNNQUxMIExFVFRFUiBMO0xsOzA7TDs7Ozs7Tjs7OzAwNEM7OzAwNEMKKzAwNkQ7TEFUSU4gU01BTEwgTEVUVEVSIE07TGw7MDtMOzs7OztOOzs7MDA0RDs7MDA0RAorMDA2RTtMQVRJTiBTTUFMTCBMRVRURVIgTjtMbDswO0w7Ozs7O047OzswMDRFOzswMDRFCiswMDZGO0xBVElOIFNNQUxMIExFVFRFUiBPO0xsOzA7TDs7Ozs7Tjs7OzAwNEY7OzAwNEYKKzAwNzA7TEFUSU4gU01BTEwgTEVUVEVSIFA7TGw7MDtMOzs7OztOOzs7MDA1MDs7MDA1MAorMDA3MTtMQVRJTiBTTUFMTCBMRVRURVIgUTtMbDswO0w7Ozs7O047OzswMDUxOzswMDUxCiswMDcyO0xBVElOIFNNQUxMIExFVFRFUiBSO0xsOzA7TDs7Ozs7Tjs7OzAwNTI7OzAwNTIKKzAwNzM7TEFUSU4gU01BTEwgTEVUVEVSIFM7TGw7MDtMOzs7OztOOzs7MDA1Mzs7MDA1MworMDA3NDtMQVRJTiBTTUFMTCBMRVRURVIgVDtMbDswO0w7Ozs7O047OzswMDU0OzswMDU0CiswMDc1O0xBVElOIFNNQUxMIExFVFRFUiBVO0xsOzA7TDs7Ozs7Tjs7OzAwNTU7OzAwNTUKKzAwNzY7TEFUSU4gU01BTEwgTEVUVEVSIFY7TGw7MDtMOzs7OztOOzs7MDA1Njs7MDA1NgorMDA3NztMQVRJTiBTTUFMTCBMRVRURVIgVztMbDswO0w7Ozs7O047OzswMDU3OzswMDU3CiswMDc4O0xBVElOIFNNQUxMIExFVFRFUiBYO0xsOzA7TDs7Ozs7Tjs7OzAwNTg7OzAwNTgKKzAwNzk7TEFUSU4gU01BTEwgTEVUVEVSIFk7TGw7MDtMOzs7OztOOzs7MDA1OTs7MDA1OQorMDA3QTtMQVRJTiBTTUFMTCBMRVRURVIgWjtMbDswO0w7Ozs7O047OzswMDVBOzswMDVBCiswMDdCO0xFRlQgQ1VSTFkgQlJBQ0tFVDtQczswO09OOzs7OztZO09QRU5JTkcgQ1VSTFkgQlJBQ0tFVDs7OzsKKzAwN0M7VkVSVElDQUwgTElORTtTbTswO09OOzs7OztOO1ZFUlRJQ0FMIEJBUjs7OzsKKzAwN0Q7UklHSFQgQ1VSTFkgQlJBQ0tFVDtQZTswO09OOzs7OztZO0NMT1NJTkcgQ1VSTFkgQlJBQ0tFVDs7OzsKKzAwN0U7VElMREU7U207MDtPTjs7Ozs7Tjs7Ozs7CiswMDdGOzxjb250cm9sPjtDYzswO09OOzs7OztOO0RFTEVURTs7OzsKKzAwODA7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047Ozs7OworMDA4MTs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7Tjs7Ozs7CiswMDgyOzxjb250cm9sPjtDYzswO09OOzs7OztOOzs7OzsKKzAwODM7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047Ozs7OworMDA4NDs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7Tjs7Ozs7CiswMDg1Ozxjb250cm9sPjtDYzswO09OOzs7OztOOzs7OzsKKzAwODY7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047Ozs7OworMDA4Nzs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7Tjs7Ozs7CiswMDg4Ozxjb250cm9sPjtDYzswO09OOzs7OztOOzs7OzsKKzAwODk7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047Ozs7OworMDA4QTs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7Tjs7Ozs7CiswMDhCOzxjb250cm9sPjtDYzswO09OOzs7OztOOzs7OzsKKzAwOEM7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047Ozs7OworMDA4RDs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7Tjs7Ozs7CiswMDhFOzxjb250cm9sPjtDYzswO09OOzs7OztOOzs7OzsKKzAwOEY7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047Ozs7OworMDA5MDs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7Tjs7Ozs7CiswMDkxOzxjb250cm9sPjtDYzswO09OOzs7OztOOzs7OzsKKzAwOTI7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047Ozs7OworMDA5Mzs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7Tjs7Ozs7CiswMDk0Ozxjb250cm9sPjtDYzswO09OOzs7OztOOzs7OzsKKzAwOTU7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047Ozs7OworMDA5Njs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7Tjs7Ozs7CiswMDk3Ozxjb250cm9sPjtDYzswO09OOzs7OztOOzs7OzsKKzAwOTg7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047Ozs7OworMDA5OTs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7Tjs7Ozs7CiswMDlBOzxjb250cm9sPjtDYzswO09OOzs7OztOOzs7OzsKKzAwOUI7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047Ozs7OworMDA5Qzs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7Tjs7Ozs7CiswMDlEOzxjb250cm9sPjtDYzswO09OOzs7OztOOzs7OzsKKzAwOUU7PGNvbnRyb2w+O0NjOzA7T047Ozs7O047Ozs7OworMDA5Rjs8Y29udHJvbD47Q2M7MDtPTjs7Ozs7Tjs7Ozs7CiswMEEwO05PLUJSRUFLIFNQQUNFO1pzOzA7V1M7PG5vQnJlYWs+IDAwMjA7Ozs7TjtOT04tQlJFQUtJTkcgU1BBQ0U7Ozs7CiswMEExO0lOVkVSVEVEIEVYQ0xBTUFUSU9OIE1BUks7UG87MDtPTjs7Ozs7Tjs7Ozs7CiswMEEyO0NFTlQgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzAwQTM7UE9VTkQgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzAwQTQ7Q1VSUkVOQ1kgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzAwQTU7WUVOIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CiswMEE2O0JST0tFTiBCQVI7U287MDtPTjs7Ozs7TjtCUk9LRU4gVkVSVElDQUwgQkFSOzs7OworMDBBNztTRUNUSU9OIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CiswMEE4O0RJQUVSRVNJUztTazswO09OOzxjb21wYXQ+IDAwMjAgMDMwODs7OztOO1NQQUNJTkcgRElBRVJFU0lTOzs7OworMDBBOTtDT1BZUklHSFQgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzAwQUE7RkVNSU5JTkUgT1JESU5BTCBJTkRJQ0FUT1I7TGw7MDtMOzxzdXBlcj4gMDA2MTs7OztOOzs7OzsKKzAwQUI7TEVGVC1QT0lOVElORyBET1VCTEUgQU5HTEUgUVVPVEFUSU9OIE1BUks7UGk7MDtPTjs7Ozs7WTtMRUZUIFBPSU5USU5HIEdVSUxMRU1FVDs7OzsKKzAwQUM7Tk9UIFNJR047U207MDtPTjs7Ozs7Tjs7Ozs7CiswMEFEO1NPRlQgSFlQSEVOO1BkOzA7T047Ozs7O047Ozs7OworMDBBRTtSRUdJU1RFUkVEIFNJR047U287MDtPTjs7Ozs7TjtSRUdJU1RFUkVEIFRSQURFIE1BUksgU0lHTjs7OzsKKzAwQUY7TUFDUk9OO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzA0Ozs7O047U1BBQ0lORyBNQUNST047Ozs7CiswMEIwO0RFR1JFRSBTSUdOO1NvOzA7RVQ7Ozs7O047Ozs7OworMDBCMTtQTFVTLU1JTlVTIFNJR047U207MDtFVDs7Ozs7TjtQTFVTLU9SLU1JTlVTIFNJR047Ozs7CiswMEIyO1NVUEVSU0NSSVBUIFRXTztObzswO0VOOzxzdXBlcj4gMDAzMjsyOzI7MjtOO1NVUEVSU0NSSVBUIERJR0lUIFRXTzs7OzsKKzAwQjM7U1VQRVJTQ1JJUFQgVEhSRUU7Tm87MDtFTjs8c3VwZXI+IDAwMzM7MzszOzM7TjtTVVBFUlNDUklQVCBESUdJVCBUSFJFRTs7OzsKKzAwQjQ7QUNVVEUgQUNDRU5UO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzAxOzs7O047U1BBQ0lORyBBQ1VURTs7OzsKKzAwQjU7TUlDUk8gU0lHTjtMbDswO0w7PGNvbXBhdD4gMDNCQzs7OztOOzs7OzsKKzAwQjY7UElMQ1JPVyBTSUdOO1NvOzA7T047Ozs7O047UEFSQUdSQVBIIFNJR047Ozs7CiswMEI3O01JRERMRSBET1Q7UG87MDtPTjs7Ozs7Tjs7Ozs7CiswMEI4O0NFRElMTEE7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMjc7Ozs7TjtTUEFDSU5HIENFRElMTEE7Ozs7CiswMEI5O1NVUEVSU0NSSVBUIE9ORTtObzswO0VOOzxzdXBlcj4gMDAzMTsxOzE7MTtOO1NVUEVSU0NSSVBUIERJR0lUIE9ORTs7OzsKKzAwQkE7TUFTQ1VMSU5FIE9SRElOQUwgSU5ESUNBVE9SO0xsOzA7TDs8c3VwZXI+IDAwNkY7Ozs7Tjs7Ozs7CiswMEJCO1JJR0hULVBPSU5USU5HIERPVUJMRSBBTkdMRSBRVU9UQVRJT04gTUFSSztQZjswO09OOzs7OztZO1JJR0hUIFBPSU5USU5HIEdVSUxMRU1FVDs7OzsKKzAwQkM7VlVMR0FSIEZSQUNUSU9OIE9ORSBRVUFSVEVSO05vOzA7T047PGZyYWN0aW9uPiAwMDMxIDIwNDQgMDAzNDs7OzEvNDtOO0ZSQUNUSU9OIE9ORSBRVUFSVEVSOzs7OworMDBCRDtWVUxHQVIgRlJBQ1RJT04gT05FIEhBTEY7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzEgMjA0NCAwMDMyOzs7MS8yO047RlJBQ1RJT04gT05FIEhBTEY7Ozs7CiswMEJFO1ZVTEdBUiBGUkFDVElPTiBUSFJFRSBRVUFSVEVSUztObzswO09OOzxmcmFjdGlvbj4gMDAzMyAyMDQ0IDAwMzQ7OzszLzQ7TjtGUkFDVElPTiBUSFJFRSBRVUFSVEVSUzs7OzsKKzAwQkY7SU5WRVJURUQgUVVFU1RJT04gTUFSSztQbzswO09OOzs7OztOOzs7OzsKKzAwQzA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEdSQVZFO0x1OzA7TDswMDQxIDAzMDA7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIEdSQVZFOzs7MDBFMDsKKzAwQzE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEFDVVRFO0x1OzA7TDswMDQxIDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIEFDVVRFOzs7MDBFMTsKKzAwQzI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNDEgMDMwMjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgQ0lSQ1VNRkxFWDs7OzAwRTI7CiswMEMzO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBUSUxERTtMdTswO0w7MDA0MSAwMzAzOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBUSUxERTs7OzAwRTM7CiswMEM0O0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBESUFFUkVTSVM7THU7MDtMOzAwNDEgMDMwODs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgRElBRVJFU0lTOzs7MDBFNDsKKzAwQzU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIFJJTkcgQUJPVkU7THU7MDtMOzAwNDEgMDMwQTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgUklORzs7OzAwRTU7CiswMEM2O0xBVElOIENBUElUQUwgTEVUVEVSIEFFO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIEU7OzswMEU2OworMDBDNztMQVRJTiBDQVBJVEFMIExFVFRFUiBDIFdJVEggQ0VESUxMQTtMdTswO0w7MDA0MyAwMzI3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBDRURJTExBOzs7MDBFNzsKKzAwQzg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIEdSQVZFO0x1OzA7TDswMDQ1IDAzMDA7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIEdSQVZFOzs7MDBFODsKKzAwQzk7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIEFDVVRFO0x1OzA7TDswMDQ1IDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIEFDVVRFOzs7MDBFOTsKKzAwQ0E7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNDUgMDMwMjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEUgQ0lSQ1VNRkxFWDs7OzAwRUE7CiswMENCO0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBESUFFUkVTSVM7THU7MDtMOzAwNDUgMDMwODs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEUgRElBRVJFU0lTOzs7MDBFQjsKKzAwQ0M7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIEdSQVZFO0x1OzA7TDswMDQ5IDAzMDA7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIEdSQVZFOzs7MDBFQzsKKzAwQ0Q7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIEFDVVRFO0x1OzA7TDswMDQ5IDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIEFDVVRFOzs7MDBFRDsKKzAwQ0U7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNDkgMDMwMjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEkgQ0lSQ1VNRkxFWDs7OzAwRUU7CiswMENGO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBESUFFUkVTSVM7THU7MDtMOzAwNDkgMDMwODs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEkgRElBRVJFU0lTOzs7MDBFRjsKKzAwRDA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRVRIO0x1OzA7TDs7Ozs7Tjs7SWNlbGFuZGljOzswMEYwOworMDBEMTtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggVElMREU7THU7MDtMOzAwNEUgMDMwMzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE4gVElMREU7OzswMEYxOworMDBEMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggR1JBVkU7THU7MDtMOzAwNEYgMDMwMDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gR1JBVkU7OzswMEYyOworMDBEMztMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggQUNVVEU7THU7MDtMOzAwNEYgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gQUNVVEU7OzswMEYzOworMDBENDtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA0RiAwMzAyOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBDSVJDVU1GTEVYOzs7MDBGNDsKKzAwRDU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIFRJTERFO0x1OzA7TDswMDRGIDAzMDM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFRJTERFOzs7MDBGNTsKKzAwRDY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIERJQUVSRVNJUztMdTswO0w7MDA0RiAwMzA4Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBESUFFUkVTSVM7OzswMEY2OworMDBENztNVUxUSVBMSUNBVElPTiBTSUdOO1NtOzA7T047Ozs7O047Ozs7OworMDBEODtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFNMQVNIOzs7MDBGODsKKzAwRDk7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEdSQVZFO0x1OzA7TDswMDU1IDAzMDA7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIEdSQVZFOzs7MDBGOTsKKzAwREE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEFDVVRFO0x1OzA7TDswMDU1IDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIEFDVVRFOzs7MDBGQTsKKzAwREI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNTUgMDMwMjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgQ0lSQ1VNRkxFWDs7OzAwRkI7CiswMERDO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVM7THU7MDtMOzAwNTUgMDMwODs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgRElBRVJFU0lTOzs7MDBGQzsKKzAwREQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIEFDVVRFO0x1OzA7TDswMDU5IDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIEFDVVRFOzs7MDBGRDsKKzAwREU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVEhPUk47THU7MDtMOzs7OztOOztJY2VsYW5kaWM7OzAwRkU7CiswMERGO0xBVElOIFNNQUxMIExFVFRFUiBTSEFSUCBTO0xsOzA7TDs7Ozs7Tjs7R2VybWFuOzs7CiswMEUwO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggR1JBVkU7TGw7MDtMOzAwNjEgMDMwMDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIEdSQVZFOzswMEMwOzswMEMwCiswMEUxO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQUNVVEU7TGw7MDtMOzAwNjEgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIEFDVVRFOzswMEMxOzswMEMxCiswMEUyO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA2MSAwMzAyOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgQ0lSQ1VNRkxFWDs7MDBDMjs7MDBDMgorMDBFMztMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIFRJTERFO0xsOzA7TDswMDYxIDAzMDM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBUSUxERTs7MDBDMzs7MDBDMworMDBFNDtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDA2MSAwMzA4Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgRElBRVJFU0lTOzswMEM0OzswMEM0CiswMEU1O0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggUklORyBBQk9WRTtMbDswO0w7MDA2MSAwMzBBOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgUklORzs7MDBDNTs7MDBDNQorMDBFNjtMQVRJTiBTTUFMTCBMRVRURVIgQUU7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIEU7OzAwQzY7OzAwQzYKKzAwRTc7TEFUSU4gU01BTEwgTEVUVEVSIEMgV0lUSCBDRURJTExBO0xsOzA7TDswMDYzIDAzMjc7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQyBDRURJTExBOzswMEM3OzswMEM3CiswMEU4O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggR1JBVkU7TGw7MDtMOzAwNjUgMDMwMDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBFIEdSQVZFOzswMEM4OzswMEM4CiswMEU5O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQUNVVEU7TGw7MDtMOzAwNjUgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBFIEFDVVRFOzswMEM5OzswMEM5CiswMEVBO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA2NSAwMzAyOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEUgQ0lSQ1VNRkxFWDs7MDBDQTs7MDBDQQorMDBFQjtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDA2NSAwMzA4Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEUgRElBRVJFU0lTOzswMENCOzswMENCCiswMEVDO0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggR1JBVkU7TGw7MDtMOzAwNjkgMDMwMDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBJIEdSQVZFOzswMENDOzswMENDCiswMEVEO0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggQUNVVEU7TGw7MDtMOzAwNjkgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBJIEFDVVRFOzswMENEOzswMENECiswMEVFO0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA2OSAwMzAyOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEkgQ0lSQ1VNRkxFWDs7MDBDRTs7MDBDRQorMDBFRjtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDA2OSAwMzA4Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEkgRElBRVJFU0lTOzswMENGOzswMENGCiswMEYwO0xBVElOIFNNQUxMIExFVFRFUiBFVEg7TGw7MDtMOzs7OztOOztJY2VsYW5kaWM7MDBEMDs7MDBEMAorMDBGMTtMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIFRJTERFO0xsOzA7TDswMDZFIDAzMDM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTiBUSUxERTs7MDBEMTs7MDBEMQorMDBGMjtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIEdSQVZFO0xsOzA7TDswMDZGIDAzMDA7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBHUkFWRTs7MDBEMjs7MDBEMgorMDBGMztMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIEFDVVRFO0xsOzA7TDswMDZGIDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBBQ1VURTs7MDBEMzs7MDBEMworMDBGNDtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwNkYgMDMwMjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIENJUkNVTUZMRVg7OzAwRDQ7OzAwRDQKKzAwRjU7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBUSUxERTtMbDswO0w7MDA2RiAwMzAzOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gVElMREU7OzAwRDU7OzAwRDUKKzAwRjY7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBESUFFUkVTSVM7TGw7MDtMOzAwNkYgMDMwODs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIERJQUVSRVNJUzs7MDBENjs7MDBENgorMDBGNztESVZJU0lPTiBTSUdOO1NtOzA7T047Ozs7O047Ozs7OworMDBGODtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gU0xBU0g7OzAwRDg7OzAwRDgKKzAwRjk7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBHUkFWRTtMbDswO0w7MDA3NSAwMzAwOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgR1JBVkU7OzAwRDk7OzAwRDkKKzAwRkE7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBBQ1VURTtMbDswO0w7MDA3NSAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgQUNVVEU7OzAwREE7OzAwREEKKzAwRkI7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDc1IDAzMDI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBDSVJDVU1GTEVYOzswMERCOzswMERCCiswMEZDO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTO0xsOzA7TDswMDc1IDAzMDg7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBESUFFUkVTSVM7OzAwREM7OzAwREMKKzAwRkQ7TEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBBQ1VURTtMbDswO0w7MDA3OSAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFkgQUNVVEU7OzAwREQ7OzAwREQKKzAwRkU7TEFUSU4gU01BTEwgTEVUVEVSIFRIT1JOO0xsOzA7TDs7Ozs7Tjs7SWNlbGFuZGljOzAwREU7OzAwREUKKzAwRkY7TEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzAwNzkgMDMwODs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBZIERJQUVSRVNJUzs7MDE3ODs7MDE3OAorMDEwMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggTUFDUk9OO0x1OzA7TDswMDQxIDAzMDQ7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIE1BQ1JPTjs7OzAxMDE7CiswMTAxO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggTUFDUk9OO0xsOzA7TDswMDYxIDAzMDQ7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBNQUNST047OzAxMDA7OzAxMDAKKzAxMDI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEJSRVZFO0x1OzA7TDswMDQxIDAzMDY7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIEJSRVZFOzs7MDEwMzsKKzAxMDM7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBCUkVWRTtMbDswO0w7MDA2MSAwMzA2Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgQlJFVkU7OzAxMDI7OzAxMDIKKzAxMDQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIE9HT05FSztMdTswO0w7MDA0MSAwMzI4Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBPR09ORUs7OzswMTA1OworMDEwNTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIE9HT05FSztMbDswO0w7MDA2MSAwMzI4Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgT0dPTkVLOzswMTA0OzswMTA0CiswMTA2O0xBVElOIENBUElUQUwgTEVUVEVSIEMgV0lUSCBBQ1VURTtMdTswO0w7MDA0MyAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBBQ1VURTs7OzAxMDc7CiswMTA3O0xBVElOIFNNQUxMIExFVFRFUiBDIFdJVEggQUNVVEU7TGw7MDtMOzAwNjMgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBDIEFDVVRFOzswMTA2OzswMTA2CiswMTA4O0xBVElOIENBUElUQUwgTEVUVEVSIEMgV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDQzIDAzMDI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBDIENJUkNVTUZMRVg7OzswMTA5OworMDEwOTtMQVRJTiBTTUFMTCBMRVRURVIgQyBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwNjMgMDMwMjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBDIENJUkNVTUZMRVg7OzAxMDg7OzAxMDgKKzAxMEE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA0MyAwMzA3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBET1Q7OzswMTBCOworMDEwQjtMQVRJTiBTTUFMTCBMRVRURVIgQyBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA2MyAwMzA3Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEMgRE9UOzswMTBBOzswMTBBCiswMTBDO0xBVElOIENBUElUQUwgTEVUVEVSIEMgV0lUSCBDQVJPTjtMdTswO0w7MDA0MyAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBIQUNFSzs7OzAxMEQ7CiswMTBEO0xBVElOIFNNQUxMIExFVFRFUiBDIFdJVEggQ0FST047TGw7MDtMOzAwNjMgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBDIEhBQ0VLOzswMTBDOzswMTBDCiswMTBFO0xBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBDQVJPTjtMdTswO0w7MDA0NCAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBIQUNFSzs7OzAxMEY7CiswMTBGO0xBVElOIFNNQUxMIExFVFRFUiBEIFdJVEggQ0FST047TGw7MDtMOzAwNjQgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBEIEhBQ0VLOzswMTBFOzswMTBFCiswMTEwO0xBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEQgQkFSOzs7MDExMTsKKzAxMTE7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBEIEJBUjs7MDExMDs7MDExMAorMDExMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggTUFDUk9OO0x1OzA7TDswMDQ1IDAzMDQ7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIE1BQ1JPTjs7OzAxMTM7CiswMTEzO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggTUFDUk9OO0xsOzA7TDswMDY1IDAzMDQ7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRSBNQUNST047OzAxMTI7OzAxMTIKKzAxMTQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIEJSRVZFO0x1OzA7TDswMDQ1IDAzMDY7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIEJSRVZFOzs7MDExNTsKKzAxMTU7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBCUkVWRTtMbDswO0w7MDA2NSAwMzA2Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEUgQlJFVkU7OzAxMTQ7OzAxMTQKKzAxMTY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA0NSAwMzA3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBET1Q7OzswMTE3OworMDExNztMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA2NSAwMzA3Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEUgRE9UOzswMTE2OzswMTE2CiswMTE4O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBPR09ORUs7THU7MDtMOzAwNDUgMDMyODs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEUgT0dPTkVLOzs7MDExOTsKKzAxMTk7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBPR09ORUs7TGw7MDtMOzAwNjUgMDMyODs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBFIE9HT05FSzs7MDExODs7MDExOAorMDExQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0FST047THU7MDtMOzAwNDUgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEUgSEFDRUs7OzswMTFCOworMDExQjtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIENBUk9OO0xsOzA7TDswMDY1IDAzMEM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRSBIQUNFSzs7MDExQTs7MDExQQorMDExQztMQVRJTiBDQVBJVEFMIExFVFRFUiBHIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA0NyAwMzAyOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBDSVJDVU1GTEVYOzs7MDExRDsKKzAxMUQ7TEFUSU4gU01BTEwgTEVUVEVSIEcgV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDY3IDAzMDI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRyBDSVJDVU1GTEVYOzswMTFDOzswMTFDCiswMTFFO0xBVElOIENBUElUQUwgTEVUVEVSIEcgV0lUSCBCUkVWRTtMdTswO0w7MDA0NyAwMzA2Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBCUkVWRTs7OzAxMUY7CiswMTFGO0xBVElOIFNNQUxMIExFVFRFUiBHIFdJVEggQlJFVkU7TGw7MDtMOzAwNjcgMDMwNjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBHIEJSRVZFOzswMTFFOzswMTFFCiswMTIwO0xBVElOIENBUElUQUwgTEVUVEVSIEcgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNDcgMDMwNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEcgRE9UOzs7MDEyMTsKKzAxMjE7TEFUSU4gU01BTEwgTEVUVEVSIEcgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNjcgMDMwNzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBHIERPVDs7MDEyMDs7MDEyMAorMDEyMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIFdJVEggQ0VESUxMQTtMdTswO0w7MDA0NyAwMzI3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBDRURJTExBOzs7MDEyMzsKKzAxMjM7TEFUSU4gU01BTEwgTEVUVEVSIEcgV0lUSCBDRURJTExBO0xsOzA7TDswMDY3IDAzMjc7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRyBDRURJTExBOzswMTIyOzswMTIyCiswMTI0O0xBVElOIENBUElUQUwgTEVUVEVSIEggV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDQ4IDAzMDI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBIIENJUkNVTUZMRVg7OzswMTI1OworMDEyNTtMQVRJTiBTTUFMTCBMRVRURVIgSCBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwNjggMDMwMjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBIIENJUkNVTUZMRVg7OzAxMjQ7OzAxMjQKKzAxMjY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSCBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSCBCQVI7OzswMTI3OworMDEyNztMQVRJTiBTTUFMTCBMRVRURVIgSCBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEggQkFSOzswMTI2OzswMTI2CiswMTI4O0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBUSUxERTtMdTswO0w7MDA0OSAwMzAzOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBUSUxERTs7OzAxMjk7CiswMTI5O0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggVElMREU7TGw7MDtMOzAwNjkgMDMwMzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBJIFRJTERFOzswMTI4OzswMTI4CiswMTJBO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBNQUNST047THU7MDtMOzAwNDkgMDMwNDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEkgTUFDUk9OOzs7MDEyQjsKKzAxMkI7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBNQUNST047TGw7MDtMOzAwNjkgMDMwNDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBJIE1BQ1JPTjs7MDEyQTs7MDEyQQorMDEyQztMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggQlJFVkU7THU7MDtMOzAwNDkgMDMwNjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEkgQlJFVkU7OzswMTJEOworMDEyRDtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIEJSRVZFO0xsOzA7TDswMDY5IDAzMDY7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSSBCUkVWRTs7MDEyQzs7MDEyQworMDEyRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggT0dPTkVLO0x1OzA7TDswMDQ5IDAzMjg7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIE9HT05FSzs7OzAxMkY7CiswMTJGO0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggT0dPTkVLO0xsOzA7TDswMDY5IDAzMjg7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSSBPR09ORUs7OzAxMkU7OzAxMkUKKzAxMzA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA0OSAwMzA3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBET1Q7OzswMDY5OworMDEzMTtMQVRJTiBTTUFMTCBMRVRURVIgRE9UTEVTUyBJO0xsOzA7TDs7Ozs7Tjs7OzAwNDk7OzAwNDkKKzAxMzI7TEFUSU4gQ0FQSVRBTCBMSUdBVFVSRSBJSjtMdTswO0w7PGNvbXBhdD4gMDA0OSAwMDRBOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBKOzs7MDEzMzsKKzAxMzM7TEFUSU4gU01BTEwgTElHQVRVUkUgSUo7TGw7MDtMOzxjb21wYXQ+IDAwNjkgMDA2QTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBJIEo7OzAxMzI7OzAxMzIKKzAxMzQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSiBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNEEgMDMwMjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEogQ0lSQ1VNRkxFWDs7OzAxMzU7CiswMTM1O0xBVElOIFNNQUxMIExFVFRFUiBKIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA2QSAwMzAyOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEogQ0lSQ1VNRkxFWDs7MDEzNDs7MDEzNAorMDEzNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBLIFdJVEggQ0VESUxMQTtMdTswO0w7MDA0QiAwMzI3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSyBDRURJTExBOzs7MDEzNzsKKzAxMzc7TEFUSU4gU01BTEwgTEVUVEVSIEsgV0lUSCBDRURJTExBO0xsOzA7TDswMDZCIDAzMjc7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSyBDRURJTExBOzswMTM2OzswMTM2CiswMTM4O0xBVElOIFNNQUxMIExFVFRFUiBLUkE7TGw7MDtMOzs7OztOOztHcmVlbmxhbmRpYzs7OworMDEzOTtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggQUNVVEU7THU7MDtMOzAwNEMgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEwgQUNVVEU7OzswMTNBOworMDEzQTtMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIEFDVVRFO0xsOzA7TDswMDZDIDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTCBBQ1VURTs7MDEzOTs7MDEzOQorMDEzQjtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggQ0VESUxMQTtMdTswO0w7MDA0QyAwMzI3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBDRURJTExBOzs7MDEzQzsKKzAxM0M7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBDRURJTExBO0xsOzA7TDswMDZDIDAzMjc7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTCBDRURJTExBOzswMTNCOzswMTNCCiswMTNEO0xBVElOIENBUElUQUwgTEVUVEVSIEwgV0lUSCBDQVJPTjtMdTswO0w7MDA0QyAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBIQUNFSzs7OzAxM0U7CiswMTNFO0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggQ0FST047TGw7MDtMOzAwNkMgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBMIEhBQ0VLOzswMTNEOzswMTNECiswMTNGO0xBVElOIENBUElUQUwgTEVUVEVSIEwgV0lUSCBNSURETEUgRE9UO0x1OzA7TDs8Y29tcGF0PiAwMDRDIDAwQjc7Ozs7Tjs7OzswMTQwOworMDE0MDtMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIE1JRERMRSBET1Q7TGw7MDtMOzxjb21wYXQ+IDAwNkMgMDBCNzs7OztOOzs7MDEzRjs7MDEzRgorMDE0MTtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFNMQVNIOzs7MDE0MjsKKzAxNDI7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBMIFNMQVNIOzswMTQxOzswMTQxCiswMTQzO0xBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBBQ1VURTtMdTswO0w7MDA0RSAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBBQ1VURTs7OzAxNDQ7CiswMTQ0O0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggQUNVVEU7TGw7MDtMOzAwNkUgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBOIEFDVVRFOzswMTQzOzswMTQzCiswMTQ1O0xBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBDRURJTExBO0x1OzA7TDswMDRFIDAzMjc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIENFRElMTEE7OzswMTQ2OworMDE0NjtMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIENFRElMTEE7TGw7MDtMOzAwNkUgMDMyNzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBOIENFRElMTEE7OzAxNDU7OzAxNDUKKzAxNDc7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIENBUk9OO0x1OzA7TDswMDRFIDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIEhBQ0VLOzs7MDE0ODsKKzAxNDg7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBDQVJPTjtMbDswO0w7MDA2RSAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIE4gSEFDRUs7OzAxNDc7OzAxNDcKKzAxNDk7TEFUSU4gU01BTEwgTEVUVEVSIE4gUFJFQ0VERUQgQlkgQVBPU1RST1BIRTtMbDswO0w7PGNvbXBhdD4gMDJCQyAwMDZFOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEFQT1NUUk9QSEUgTjs7OzsKKzAxNEE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRU5HO0x1OzA7TDs7Ozs7Tjs7U2FtaTs7MDE0QjsKKzAxNEI7TEFUSU4gU01BTEwgTEVUVEVSIEVORztMbDswO0w7Ozs7O047O1NhbWk7MDE0QTs7MDE0QQorMDE0QztMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggTUFDUk9OO0x1OzA7TDswMDRGIDAzMDQ7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIE1BQ1JPTjs7OzAxNEQ7CiswMTREO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggTUFDUk9OO0xsOzA7TDswMDZGIDAzMDQ7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBNQUNST047OzAxNEM7OzAxNEMKKzAxNEU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIEJSRVZFO0x1OzA7TDswMDRGIDAzMDY7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIEJSRVZFOzs7MDE0RjsKKzAxNEY7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBCUkVWRTtMbDswO0w7MDA2RiAwMzA2Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gQlJFVkU7OzAxNEU7OzAxNEUKKzAxNTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIERPVUJMRSBBQ1VURTtMdTswO0w7MDA0RiAwMzBCOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBET1VCTEUgQUNVVEU7OzswMTUxOworMDE1MTtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIERPVUJMRSBBQ1VURTtMbDswO0w7MDA2RiAwMzBCOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gRE9VQkxFIEFDVVRFOzswMTUwOzswMTUwCiswMTUyO0xBVElOIENBUElUQUwgTElHQVRVUkUgT0U7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gRTs7OzAxNTM7CiswMTUzO0xBVElOIFNNQUxMIExJR0FUVVJFIE9FO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBFOzswMTUyOzswMTUyCiswMTU0O0xBVElOIENBUElUQUwgTEVUVEVSIFIgV0lUSCBBQ1VURTtMdTswO0w7MDA1MiAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBBQ1VURTs7OzAxNTU7CiswMTU1O0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggQUNVVEU7TGw7MDtMOzAwNzIgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBSIEFDVVRFOzswMTU0OzswMTU0CiswMTU2O0xBVElOIENBUElUQUwgTEVUVEVSIFIgV0lUSCBDRURJTExBO0x1OzA7TDswMDUyIDAzMjc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBSIENFRElMTEE7OzswMTU3OworMDE1NztMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIENFRElMTEE7TGw7MDtMOzAwNzIgMDMyNzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBSIENFRElMTEE7OzAxNTY7OzAxNTYKKzAxNTg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBXSVRIIENBUk9OO0x1OzA7TDswMDUyIDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBSIEhBQ0VLOzs7MDE1OTsKKzAxNTk7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBDQVJPTjtMbDswO0w7MDA3MiAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFIgSEFDRUs7OzAxNTg7OzAxNTgKKzAxNUE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBXSVRIIEFDVVRFO0x1OzA7TDswMDUzIDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIEFDVVRFOzs7MDE1QjsKKzAxNUI7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBBQ1VURTtMbDswO0w7MDA3MyAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFMgQUNVVEU7OzAxNUE7OzAxNUEKKzAxNUM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNTMgMDMwMjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFMgQ0lSQ1VNRkxFWDs7OzAxNUQ7CiswMTVEO0xBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA3MyAwMzAyOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFMgQ0lSQ1VNRkxFWDs7MDE1Qzs7MDE1QworMDE1RTtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIFdJVEggQ0VESUxMQTtMdTswO0w7MDA1MyAwMzI3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBDRURJTExBOzs7MDE1RjsKKzAxNUY7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBDRURJTExBO0xsOzA7TDswMDczIDAzMjc7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUyBDRURJTExBOzswMTVFOzswMTVFCiswMTYwO0xBVElOIENBUElUQUwgTEVUVEVSIFMgV0lUSCBDQVJPTjtMdTswO0w7MDA1MyAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBIQUNFSzs7OzAxNjE7CiswMTYxO0xBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggQ0FST047TGw7MDtMOzAwNzMgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBTIEhBQ0VLOzswMTYwOzswMTYwCiswMTYyO0xBVElOIENBUElUQUwgTEVUVEVSIFQgV0lUSCBDRURJTExBO0x1OzA7TDswMDU0IDAzMjc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIENFRElMTEE7OzswMTYzOworMDE2MztMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIENFRElMTEE7TGw7MDtMOzAwNzQgMDMyNzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBUIENFRElMTEE7OzAxNjI7OzAxNjIKKzAxNjQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBXSVRIIENBUk9OO0x1OzA7TDswMDU0IDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIEhBQ0VLOzs7MDE2NTsKKzAxNjU7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBDQVJPTjtMbDswO0w7MDA3NCAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFQgSEFDRUs7OzAxNjQ7OzAxNjQKKzAxNjY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBCQVI7OzswMTY3OworMDE2NztMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFQgQkFSOzswMTY2OzswMTY2CiswMTY4O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBUSUxERTtMdTswO0w7MDA1NSAwMzAzOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBUSUxERTs7OzAxNjk7CiswMTY5O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggVElMREU7TGw7MDtMOzAwNzUgMDMwMzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIFRJTERFOzswMTY4OzswMTY4CiswMTZBO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBNQUNST047THU7MDtMOzAwNTUgMDMwNDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgTUFDUk9OOzs7MDE2QjsKKzAxNkI7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBNQUNST047TGw7MDtMOzAwNzUgMDMwNDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIE1BQ1JPTjs7MDE2QTs7MDE2QQorMDE2QztMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggQlJFVkU7THU7MDtMOzAwNTUgMDMwNjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgQlJFVkU7OzswMTZEOworMDE2RDtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEJSRVZFO0xsOzA7TDswMDc1IDAzMDY7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBCUkVWRTs7MDE2Qzs7MDE2QworMDE2RTtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggUklORyBBQk9WRTtMdTswO0w7MDA1NSAwMzBBOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBSSU5HOzs7MDE2RjsKKzAxNkY7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBSSU5HIEFCT1ZFO0xsOzA7TDswMDc1IDAzMEE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBSSU5HOzswMTZFOzswMTZFCiswMTcwO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBET1VCTEUgQUNVVEU7THU7MDtMOzAwNTUgMDMwQjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgRE9VQkxFIEFDVVRFOzs7MDE3MTsKKzAxNzE7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBET1VCTEUgQUNVVEU7TGw7MDtMOzAwNzUgMDMwQjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIERPVUJMRSBBQ1VURTs7MDE3MDs7MDE3MAorMDE3MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggT0dPTkVLO0x1OzA7TDswMDU1IDAzMjg7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIE9HT05FSzs7OzAxNzM7CiswMTczO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggT0dPTkVLO0xsOzA7TDswMDc1IDAzMjg7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBPR09ORUs7OzAxNzI7OzAxNzIKKzAxNzQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVyBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNTcgMDMwMjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFcgQ0lSQ1VNRkxFWDs7OzAxNzU7CiswMTc1O0xBVElOIFNNQUxMIExFVFRFUiBXIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA3NyAwMzAyOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFcgQ0lSQ1VNRkxFWDs7MDE3NDs7MDE3NAorMDE3NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA1OSAwMzAyOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBDSVJDVU1GTEVYOzs7MDE3NzsKKzAxNzc7TEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDc5IDAzMDI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWSBDSVJDVU1GTEVYOzswMTc2OzswMTc2CiswMTc4O0xBVElOIENBUElUQUwgTEVUVEVSIFkgV0lUSCBESUFFUkVTSVM7THU7MDtMOzAwNTkgMDMwODs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFkgRElBRVJFU0lTOzs7MDBGRjsKKzAxNzk7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBXSVRIIEFDVVRFO0x1OzA7TDswMDVBIDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIEFDVVRFOzs7MDE3QTsKKzAxN0E7TEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBBQ1VURTtMbDswO0w7MDA3QSAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFogQUNVVEU7OzAxNzk7OzAxNzkKKzAxN0I7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA1QSAwMzA3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBET1Q7OzswMTdDOworMDE3QztMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA3QSAwMzA3Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFogRE9UOzswMTdCOzswMTdCCiswMTdEO0xBVElOIENBUElUQUwgTEVUVEVSIFogV0lUSCBDQVJPTjtMdTswO0w7MDA1QSAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBIQUNFSzs7OzAxN0U7CiswMTdFO0xBVElOIFNNQUxMIExFVFRFUiBaIFdJVEggQ0FST047TGw7MDtMOzAwN0EgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBaIEhBQ0VLOzswMTdEOzswMTdECiswMTdGO0xBVElOIFNNQUxMIExFVFRFUiBMT05HIFM7TGw7MDtMOzxjb21wYXQ+IDAwNzM7Ozs7Tjs7OzAwNTM7OzAwNTMKKzAxODA7TEFUSU4gU01BTEwgTEVUVEVSIEIgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBCIEJBUjs7OzsKKzAxODE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQiBXSVRIIEhPT0s7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEIgSE9PSzs7OzAyNTM7CiswMTgyO0xBVElOIENBUElUQUwgTEVUVEVSIEIgV0lUSCBUT1BCQVI7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEIgVE9QQkFSOzs7MDE4MzsKKzAxODM7TEFUSU4gU01BTEwgTEVUVEVSIEIgV0lUSCBUT1BCQVI7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBCIFRPUEJBUjs7MDE4Mjs7MDE4MgorMDE4NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBUT05FIFNJWDtMdTswO0w7Ozs7O047Ozs7MDE4NTsKKzAxODU7TEFUSU4gU01BTEwgTEVUVEVSIFRPTkUgU0lYO0xsOzA7TDs7Ozs7Tjs7OzAxODQ7OzAxODQKKzAxODY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgT1BFTiBPO0x1OzA7TDs7Ozs7Tjs7OzswMjU0OworMDE4NztMQVRJTiBDQVBJVEFMIExFVFRFUiBDIFdJVEggSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBIT09LOzs7MDE4ODsKKzAxODg7TEFUSU4gU01BTEwgTEVUVEVSIEMgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQyBIT09LOzswMTg3OzswMTg3CiswMTg5O0xBVElOIENBUElUQUwgTEVUVEVSIEFGUklDQU4gRDtMdTswO0w7Ozs7O047Ozs7MDI1NjsKKzAxOEE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIEhPT0s7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEQgSE9PSzs7OzAyNTc7CiswMThCO0xBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBUT1BCQVI7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEQgVE9QQkFSOzs7MDE4QzsKKzAxOEM7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBUT1BCQVI7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBEIFRPUEJBUjs7MDE4Qjs7MDE4QgorMDE4RDtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIERFTFRBO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMThFO0xBVElOIENBUElUQUwgTEVUVEVSIFJFVkVSU0VEIEU7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFRVUk5FRCBFOzs7MDFERDsKKzAxOEY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgU0NIV0E7THU7MDtMOzs7OztOOzs7OzAyNTk7CiswMTkwO0xBVElOIENBUElUQUwgTEVUVEVSIE9QRU4gRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRVBTSUxPTjs7OzAyNUI7CiswMTkxO0xBVElOIENBUElUQUwgTEVUVEVSIEYgV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBGIEhPT0s7OzswMTkyOworMDE5MjtMQVRJTiBTTUFMTCBMRVRURVIgRiBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBTQ1JJUFQgRjs7MDE5MTs7MDE5MQorMDE5MztMQVRJTiBDQVBJVEFMIExFVFRFUiBHIFdJVEggSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBIT09LOzs7MDI2MDsKKzAxOTQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgR0FNTUE7THU7MDtMOzs7OztOOzs7OzAyNjM7CiswMTk1O0xBVElOIFNNQUxMIExFVFRFUiBIVjtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEggVjs7OzsKKzAxOTY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSU9UQTtMdTswO0w7Ozs7O047Ozs7MDI2OTsKKzAxOTc7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQkFSUkVEIEk7OzswMjY4OworMDE5ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBLIFdJVEggSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSyBIT09LOzs7MDE5OTsKKzAxOTk7TEFUSU4gU01BTEwgTEVUVEVSIEsgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSyBIT09LOzswMTk4OzswMTk4CiswMTlBO0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggQkFSO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQkFSUkVEIEw7Ozs7CiswMTlCO0xBVElOIFNNQUxMIExFVFRFUiBMQU1CREEgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBCQVJSRUQgTEFNQkRBOzs7OworMDE5QztMQVRJTiBDQVBJVEFMIExFVFRFUiBUVVJORUQgTTtMdTswO0w7Ozs7O047Ozs7MDI2RjsKKzAxOUQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIExFRlQgSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBIT09LOzs7MDI3MjsKKzAxOUU7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBMT05HIFJJR0hUIExFRztMbDswO0w7Ozs7O047Ozs7OworMDE5RjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggTUlERExFIFRJTERFO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBCQVJSRUQgTzs7OzAyNzU7CiswMUEwO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBIT1JOO0x1OzA7TDswMDRGIDAzMUI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIEhPUk47OzswMUExOworMDFBMTtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIEhPUk47TGw7MDtMOzAwNkYgMDMxQjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIEhPUk47OzAxQTA7OzAxQTAKKzAxQTI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgT0k7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gSTs7OzAxQTM7CiswMUEzO0xBVElOIFNNQUxMIExFVFRFUiBPSTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gSTs7MDFBMjs7MDFBMgorMDFBNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBQIFdJVEggSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgUCBIT09LOzs7MDFBNTsKKzAxQTU7TEFUSU4gU01BTEwgTEVUVEVSIFAgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUCBIT09LOzswMUE0OzswMUE0CiswMUE2O0xBVElOIExFVFRFUiBZUjtMdTswO0w7Ozs7O047TEFUSU4gTEVUVEVSIFkgUjs7OzAyODA7CiswMUE3O0xBVElOIENBUElUQUwgTEVUVEVSIFRPTkUgVFdPO0x1OzA7TDs7Ozs7Tjs7OzswMUE4OworMDFBODtMQVRJTiBTTUFMTCBMRVRURVIgVE9ORSBUV087TGw7MDtMOzs7OztOOzs7MDFBNzs7MDFBNworMDFBOTtMQVRJTiBDQVBJVEFMIExFVFRFUiBFU0g7THU7MDtMOzs7OztOOzs7OzAyODM7CiswMUFBO0xBVElOIExFVFRFUiBSRVZFUlNFRCBFU0ggTE9PUDtMbzswO0w7Ozs7O047Ozs7OworMDFBQjtMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIFBBTEFUQUwgSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFQgUEFMQVRBTCBIT09LOzs7OworMDFBQztMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFdJVEggSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBIT09LOzs7MDFBRDsKKzAxQUQ7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVCBIT09LOzswMUFDOzswMUFDCiswMUFFO0xBVElOIENBUElUQUwgTEVUVEVSIFQgV0lUSCBSRVRST0ZMRVggSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBSRVRST0ZMRVggSE9PSzs7OzAyODg7CiswMUFGO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBIT1JOO0x1OzA7TDswMDU1IDAzMUI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIEhPUk47OzswMUIwOworMDFCMDtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEhPUk47TGw7MDtMOzAwNzUgMDMxQjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIEhPUk47OzAxQUY7OzAxQUYKKzAxQjE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVVBTSUxPTjtMdTswO0w7Ozs7O047Ozs7MDI4QTsKKzAxQjI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgViBXSVRIIEhPT0s7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFNDUklQVCBWOzs7MDI4QjsKKzAxQjM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIEhPT0s7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFkgSE9PSzs7OzAxQjQ7CiswMUI0O0xBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFkgSE9PSzs7MDFCMzs7MDFCMworMDFCNTtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIEJBUjs7OzAxQjY7CiswMUI2O0xBVElOIFNNQUxMIExFVFRFUiBaIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWiBCQVI7OzAxQjU7OzAxQjUKKzAxQjc7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRVpIO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBZT0dIOzs7MDI5MjsKKzAxQjg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRVpIIFJFVkVSU0VEO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBSRVZFUlNFRCBZT0dIOzs7MDFCOTsKKzAxQjk7TEFUSU4gU01BTEwgTEVUVEVSIEVaSCBSRVZFUlNFRDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFJFVkVSU0VEIFlPR0g7OzAxQjg7OzAxQjgKKzAxQkE7TEFUSU4gU01BTEwgTEVUVEVSIEVaSCBXSVRIIFRBSUw7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBZT0dIIFdJVEggVEFJTDs7OzsKKzAxQkI7TEFUSU4gTEVUVEVSIFRXTyBXSVRIIFNUUk9LRTtMbzswO0w7Ozs7O047TEFUSU4gTEVUVEVSIFRXTyBCQVI7Ozs7CiswMUJDO0xBVElOIENBUElUQUwgTEVUVEVSIFRPTkUgRklWRTtMdTswO0w7Ozs7O047Ozs7MDFCRDsKKzAxQkQ7TEFUSU4gU01BTEwgTEVUVEVSIFRPTkUgRklWRTtMbDswO0w7Ozs7O047OzswMUJDOzswMUJDCiswMUJFO0xBVElOIExFVFRFUiBJTlZFUlRFRCBHTE9UVEFMIFNUT1AgV0lUSCBTVFJPS0U7TG87MDtMOzs7OztOO0xBVElOIExFVFRFUiBJTlZFUlRFRCBHTE9UVEFMIFNUT1AgQkFSOzs7OworMDFCRjtMQVRJTiBMRVRURVIgV1lOTjtMbzswO0w7Ozs7O047Ozs7OworMDFDMDtMQVRJTiBMRVRURVIgREVOVEFMIENMSUNLO0xvOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgUElQRTs7OzsKKzAxQzE7TEFUSU4gTEVUVEVSIExBVEVSQUwgQ0xJQ0s7TG87MDtMOzs7OztOO0xBVElOIExFVFRFUiBET1VCTEUgUElQRTs7OzsKKzAxQzI7TEFUSU4gTEVUVEVSIEFMVkVPTEFSIENMSUNLO0xvOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgUElQRSBET1VCTEUgQkFSOzs7OworMDFDMztMQVRJTiBMRVRURVIgUkVUUk9GTEVYIENMSUNLO0xvOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgRVhDTEFNQVRJT04gTUFSSzs7OzsKKzAxQzQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRFogV0lUSCBDQVJPTjtMdTswO0w7PGNvbXBhdD4gMDA0NCAwMTdEOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBaIEhBQ0VLOzs7MDFDNjswMUM1CiswMUM1O0xBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBTTUFMTCBMRVRURVIgWiBXSVRIIENBUk9OO0x0OzA7TDs8Y29tcGF0PiAwMDQ0IDAxN0U7Ozs7TjtMQVRJTiBMRVRURVIgQ0FQSVRBTCBEIFNNQUxMIFogSEFDRUs7OzAxQzQ7MDFDNjsKKzAxQzY7TEFUSU4gU01BTEwgTEVUVEVSIERaIFdJVEggQ0FST047TGw7MDtMOzxjb21wYXQ+IDAwNjQgMDE3RTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBEIFogSEFDRUs7OzAxQzQ7OzAxQzUKKzAxQzc7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTEo7THU7MDtMOzxjb21wYXQ+IDAwNEMgMDA0QTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEwgSjs7OzAxQzk7MDFDOAorMDFDODtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggU01BTEwgTEVUVEVSIEo7THQ7MDtMOzxjb21wYXQ+IDAwNEMgMDA2QTs7OztOO0xBVElOIExFVFRFUiBDQVBJVEFMIEwgU01BTEwgSjs7MDFDNzswMUM5OworMDFDOTtMQVRJTiBTTUFMTCBMRVRURVIgTEo7TGw7MDtMOzxjb21wYXQ+IDAwNkMgMDA2QTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBMIEo7OzAxQzc7OzAxQzgKKzAxQ0E7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTko7THU7MDtMOzxjb21wYXQ+IDAwNEUgMDA0QTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE4gSjs7OzAxQ0M7MDFDQgorMDFDQjtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggU01BTEwgTEVUVEVSIEo7THQ7MDtMOzxjb21wYXQ+IDAwNEUgMDA2QTs7OztOO0xBVElOIExFVFRFUiBDQVBJVEFMIE4gU01BTEwgSjs7MDFDQTswMUNDOworMDFDQztMQVRJTiBTTUFMTCBMRVRURVIgTko7TGw7MDtMOzxjb21wYXQ+IDAwNkUgMDA2QTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBOIEo7OzAxQ0E7OzAxQ0IKKzAxQ0Q7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIENBUk9OO0x1OzA7TDswMDQxIDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIEhBQ0VLOzs7MDFDRTsKKzAxQ0U7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBDQVJPTjtMbDswO0w7MDA2MSAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgSEFDRUs7OzAxQ0Q7OzAxQ0QKKzAxQ0Y7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIENBUk9OO0x1OzA7TDswMDQ5IDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIEhBQ0VLOzs7MDFEMDsKKzAxRDA7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBDQVJPTjtMbDswO0w7MDA2OSAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEkgSEFDRUs7OzAxQ0Y7OzAxQ0YKKzAxRDE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIENBUk9OO0x1OzA7TDswMDRGIDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIEhBQ0VLOzs7MDFEMjsKKzAxRDI7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBDQVJPTjtMbDswO0w7MDA2RiAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gSEFDRUs7OzAxRDE7OzAxRDEKKzAxRDM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIENBUk9OO0x1OzA7TDswMDU1IDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIEhBQ0VLOzs7MDFENDsKKzAxRDQ7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBDQVJPTjtMbDswO0w7MDA3NSAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgSEFDRUs7OzAxRDM7OzAxRDMKKzAxRDU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUyBBTkQgTUFDUk9OO0x1OzA7TDswMERDIDAzMDQ7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIERJQUVSRVNJUyBNQUNST047OzswMUQ2OworMDFENjtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUyBBTkQgTUFDUk9OO0xsOzA7TDswMEZDIDAzMDQ7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBESUFFUkVTSVMgTUFDUk9OOzswMUQ1OzswMUQ1CiswMUQ3O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVMgQU5EIEFDVVRFO0x1OzA7TDswMERDIDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIERJQUVSRVNJUyBBQ1VURTs7OzAxRDg7CiswMUQ4O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTIEFORCBBQ1VURTtMbDswO0w7MDBGQyAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgRElBRVJFU0lTIEFDVVRFOzswMUQ3OzswMUQ3CiswMUQ5O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVMgQU5EIENBUk9OO0x1OzA7TDswMERDIDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIERJQUVSRVNJUyBIQUNFSzs7OzAxREE7CiswMURBO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTIEFORCBDQVJPTjtMbDswO0w7MDBGQyAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgRElBRVJFU0lTIEhBQ0VLOzswMUQ5OzswMUQ5CiswMURCO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVMgQU5EIEdSQVZFO0x1OzA7TDswMERDIDAzMDA7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIERJQUVSRVNJUyBHUkFWRTs7OzAxREM7CiswMURDO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTIEFORCBHUkFWRTtMbDswO0w7MDBGQyAwMzAwOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgRElBRVJFU0lTIEdSQVZFOzswMURCOzswMURCCiswMUREO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgRTtMbDswO0w7Ozs7O047OzswMThFOzswMThFCiswMURFO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBESUFFUkVTSVMgQU5EIE1BQ1JPTjtMdTswO0w7MDBDNCAwMzA0Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBESUFFUkVTSVMgTUFDUk9OOzs7MDFERjsKKzAxREY7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBESUFFUkVTSVMgQU5EIE1BQ1JPTjtMbDswO0w7MDBFNCAwMzA0Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgRElBRVJFU0lTIE1BQ1JPTjs7MDFERTs7MDFERQorMDFFMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggRE9UIEFCT1ZFIEFORCBNQUNST047THU7MDtMOzAwNDEgMDMwNyAwMzA0Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBET1QgTUFDUk9OOzs7MDFFMTsKKzAxRTE7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBET1QgQUJPVkUgQU5EIE1BQ1JPTjtMbDswO0w7MDA2MSAwMzA3IDAzMDQ7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBET1QgTUFDUk9OOzswMUUwOzswMUUwCiswMUUyO0xBVElOIENBUElUQUwgTEVUVEVSIEFFIFdJVEggTUFDUk9OO0x1OzA7TDswMEM2IDAzMDQ7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIEUgTUFDUk9OOzs7MDFFMzsKKzAxRTM7TEFUSU4gU01BTEwgTEVUVEVSIEFFIFdJVEggTUFDUk9OO0xsOzA7TDswMEU2IDAzMDQ7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBFIE1BQ1JPTjs7MDFFMjs7MDFFMgorMDFFNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIEJBUjs7OzAxRTU7CiswMUU1O0xBVElOIFNNQUxMIExFVFRFUiBHIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRyBCQVI7OzAxRTQ7OzAxRTQKKzAxRTY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBXSVRIIENBUk9OO0x1OzA7TDswMDQ3IDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIEhBQ0VLOzs7MDFFNzsKKzAxRTc7TEFUSU4gU01BTEwgTEVUVEVSIEcgV0lUSCBDQVJPTjtMbDswO0w7MDA2NyAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEcgSEFDRUs7OzAxRTY7OzAxRTYKKzAxRTg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSyBXSVRIIENBUk9OO0x1OzA7TDswMDRCIDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBLIEhBQ0VLOzs7MDFFOTsKKzAxRTk7TEFUSU4gU01BTEwgTEVUVEVSIEsgV0lUSCBDQVJPTjtMbDswO0w7MDA2QiAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEsgSEFDRUs7OzAxRTg7OzAxRTgKKzAxRUE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIE9HT05FSztMdTswO0w7MDA0RiAwMzI4Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBPR09ORUs7OzswMUVCOworMDFFQjtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIE9HT05FSztMbDswO0w7MDA2RiAwMzI4Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gT0dPTkVLOzswMUVBOzswMUVBCiswMUVDO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBPR09ORUsgQU5EIE1BQ1JPTjtMdTswO0w7MDFFQSAwMzA0Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBPR09ORUsgTUFDUk9OOzs7MDFFRDsKKzAxRUQ7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBPR09ORUsgQU5EIE1BQ1JPTjtMbDswO0w7MDFFQiAwMzA0Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gT0dPTkVLIE1BQ1JPTjs7MDFFQzs7MDFFQworMDFFRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBFWkggV0lUSCBDQVJPTjtMdTswO0w7MDFCNyAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgWU9HSCBIQUNFSzs7OzAxRUY7CiswMUVGO0xBVElOIFNNQUxMIExFVFRFUiBFWkggV0lUSCBDQVJPTjtMbDswO0w7MDI5MiAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFlPR0ggSEFDRUs7OzAxRUU7OzAxRUUKKzAxRjA7TEFUSU4gU01BTEwgTEVUVEVSIEogV0lUSCBDQVJPTjtMbDswO0w7MDA2QSAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEogSEFDRUs7Ozs7CiswMUYxO0xBVElOIENBUElUQUwgTEVUVEVSIERaO0x1OzA7TDs8Y29tcGF0PiAwMDQ0IDAwNUE7Ozs7Tjs7OzswMUYzOzAxRjIKKzAxRjI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIFNNQUxMIExFVFRFUiBaO0x0OzA7TDs8Y29tcGF0PiAwMDQ0IDAwN0E7Ozs7Tjs7OzAxRjE7MDFGMzsKKzAxRjM7TEFUSU4gU01BTEwgTEVUVEVSIERaO0xsOzA7TDs8Y29tcGF0PiAwMDY0IDAwN0E7Ozs7Tjs7OzAxRjE7OzAxRjIKKzAxRjQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBXSVRIIEFDVVRFO0x1OzA7TDswMDQ3IDAzMDE7Ozs7Tjs7OzswMUY1OworMDFGNTtMQVRJTiBTTUFMTCBMRVRURVIgRyBXSVRIIEFDVVRFO0xsOzA7TDswMDY3IDAzMDE7Ozs7Tjs7OzAxRjQ7OzAxRjQKKzAxRkE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIFJJTkcgQUJPVkUgQU5EIEFDVVRFO0x1OzA7TDswMEM1IDAzMDE7Ozs7Tjs7OzswMUZCOworMDFGQjtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIFJJTkcgQUJPVkUgQU5EIEFDVVRFO0xsOzA7TDswMEU1IDAzMDE7Ozs7Tjs7OzAxRkE7OzAxRkEKKzAxRkM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQUUgV0lUSCBBQ1VURTtMdTswO0w7MDBDNiAwMzAxOzs7O047Ozs7MDFGRDsKKzAxRkQ7TEFUSU4gU01BTEwgTEVUVEVSIEFFIFdJVEggQUNVVEU7TGw7MDtMOzAwRTYgMDMwMTs7OztOOzs7MDFGQzs7MDFGQworMDFGRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggU1RST0tFIEFORCBBQ1VURTtMdTswO0w7MDBEOCAwMzAxOzs7O047Ozs7MDFGRjsKKzAxRkY7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBTVFJPS0UgQU5EIEFDVVRFO0xsOzA7TDswMEY4IDAzMDE7Ozs7Tjs7OzAxRkU7OzAxRkUKKzAyMDA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIERPVUJMRSBHUkFWRTtMdTswO0w7MDA0MSAwMzBGOzs7O047Ozs7MDIwMTsKKzAyMDE7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBET1VCTEUgR1JBVkU7TGw7MDtMOzAwNjEgMDMwRjs7OztOOzs7MDIwMDs7MDIwMAorMDIwMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggSU5WRVJURUQgQlJFVkU7THU7MDtMOzAwNDEgMDMxMTs7OztOOzs7OzAyMDM7CiswMjAzO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggSU5WRVJURUQgQlJFVkU7TGw7MDtMOzAwNjEgMDMxMTs7OztOOzs7MDIwMjs7MDIwMgorMDIwNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggRE9VQkxFIEdSQVZFO0x1OzA7TDswMDQ1IDAzMEY7Ozs7Tjs7OzswMjA1OworMDIwNTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIERPVUJMRSBHUkFWRTtMbDswO0w7MDA2NSAwMzBGOzs7O047OzswMjA0OzswMjA0CiswMjA2O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBJTlZFUlRFRCBCUkVWRTtMdTswO0w7MDA0NSAwMzExOzs7O047Ozs7MDIwNzsKKzAyMDc7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBJTlZFUlRFRCBCUkVWRTtMbDswO0w7MDA2NSAwMzExOzs7O047OzswMjA2OzswMjA2CiswMjA4O0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBET1VCTEUgR1JBVkU7THU7MDtMOzAwNDkgMDMwRjs7OztOOzs7OzAyMDk7CiswMjA5O0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggRE9VQkxFIEdSQVZFO0xsOzA7TDswMDY5IDAzMEY7Ozs7Tjs7OzAyMDg7OzAyMDgKKzAyMEE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIElOVkVSVEVEIEJSRVZFO0x1OzA7TDswMDQ5IDAzMTE7Ozs7Tjs7OzswMjBCOworMDIwQjtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIElOVkVSVEVEIEJSRVZFO0xsOzA7TDswMDY5IDAzMTE7Ozs7Tjs7OzAyMEE7OzAyMEEKKzAyMEM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIERPVUJMRSBHUkFWRTtMdTswO0w7MDA0RiAwMzBGOzs7O047Ozs7MDIwRDsKKzAyMEQ7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBET1VCTEUgR1JBVkU7TGw7MDtMOzAwNkYgMDMwRjs7OztOOzs7MDIwQzs7MDIwQworMDIwRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggSU5WRVJURUQgQlJFVkU7THU7MDtMOzAwNEYgMDMxMTs7OztOOzs7OzAyMEY7CiswMjBGO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggSU5WRVJURUQgQlJFVkU7TGw7MDtMOzAwNkYgMDMxMTs7OztOOzs7MDIwRTs7MDIwRQorMDIxMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBSIFdJVEggRE9VQkxFIEdSQVZFO0x1OzA7TDswMDUyIDAzMEY7Ozs7Tjs7OzswMjExOworMDIxMTtMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIERPVUJMRSBHUkFWRTtMbDswO0w7MDA3MiAwMzBGOzs7O047OzswMjEwOzswMjEwCiswMjEyO0xBVElOIENBUElUQUwgTEVUVEVSIFIgV0lUSCBJTlZFUlRFRCBCUkVWRTtMdTswO0w7MDA1MiAwMzExOzs7O047Ozs7MDIxMzsKKzAyMTM7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBJTlZFUlRFRCBCUkVWRTtMbDswO0w7MDA3MiAwMzExOzs7O047OzswMjEyOzswMjEyCiswMjE0O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBET1VCTEUgR1JBVkU7THU7MDtMOzAwNTUgMDMwRjs7OztOOzs7OzAyMTU7CiswMjE1O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRE9VQkxFIEdSQVZFO0xsOzA7TDswMDc1IDAzMEY7Ozs7Tjs7OzAyMTQ7OzAyMTQKKzAyMTY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIElOVkVSVEVEIEJSRVZFO0x1OzA7TDswMDU1IDAzMTE7Ozs7Tjs7OzswMjE3OworMDIxNztMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIElOVkVSVEVEIEJSRVZFO0xsOzA7TDswMDc1IDAzMTE7Ozs7Tjs7OzAyMTY7OzAyMTYKKzAyNTA7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBBO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjUxO0xBVElOIFNNQUxMIExFVFRFUiBBTFBIQTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFNDUklQVCBBOzs7OworMDI1MjtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIEFMUEhBO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIFNDUklQVCBBOzs7OworMDI1MztMQVRJTiBTTUFMTCBMRVRURVIgQiBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBCIEhPT0s7OzAxODE7OzAxODEKKzAyNTQ7TEFUSU4gU01BTEwgTEVUVEVSIE9QRU4gTztMbDswO0w7Ozs7O047OzswMTg2OzswMTg2CiswMjU1O0xBVElOIFNNQUxMIExFVFRFUiBDIFdJVEggQ1VSTDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEMgQ1VSTDs7OzsKKzAyNTY7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBUQUlMO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRCBSRVRST0ZMRVggSE9PSzs7MDE4OTs7MDE4OQorMDI1NztMQVRJTiBTTUFMTCBMRVRURVIgRCBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBEIEhPT0s7OzAxOEE7OzAxOEEKKzAyNTg7TEFUSU4gU01BTEwgTEVUVEVSIFJFVkVSU0VEIEU7TGw7MDtMOzs7OztOOzs7OzsKKzAyNTk7TEFUSU4gU01BTEwgTEVUVEVSIFNDSFdBO0xsOzA7TDs7Ozs7Tjs7OzAxOEY7OzAxOEYKKzAyNUE7TEFUSU4gU01BTEwgTEVUVEVSIFNDSFdBIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFNDSFdBIEhPT0s7Ozs7CiswMjVCO0xBVElOIFNNQUxMIExFVFRFUiBPUEVOIEU7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBFUFNJTE9OOzswMTkwOzswMTkwCiswMjVDO0xBVElOIFNNQUxMIExFVFRFUiBSRVZFUlNFRCBPUEVOIEU7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBSRVZFUlNFRCBFUFNJTE9OOzs7OworMDI1RDtMQVRJTiBTTUFMTCBMRVRURVIgUkVWRVJTRUQgT1BFTiBFIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFJFVkVSU0VEIEVQU0lMT04gSE9PSzs7OzsKKzAyNUU7TEFUSU4gU01BTEwgTEVUVEVSIENMT1NFRCBSRVZFUlNFRCBPUEVOIEU7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBDTE9TRUQgUkVWRVJTRUQgRVBTSUxPTjs7OzsKKzAyNUY7TEFUSU4gU01BTEwgTEVUVEVSIERPVExFU1MgSiBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIERPVExFU1MgSiBCQVI7Ozs7CiswMjYwO0xBVElOIFNNQUxMIExFVFRFUiBHIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEcgSE9PSzs7MDE5Mzs7MDE5MworMDI2MTtMQVRJTiBTTUFMTCBMRVRURVIgU0NSSVBUIEc7TGw7MDtMOzs7OztOOzs7OzsKKzAyNjI7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgRztMbDswO0w7Ozs7O047Ozs7OworMDI2MztMQVRJTiBTTUFMTCBMRVRURVIgR0FNTUE7TGw7MDtMOzs7OztOOzs7MDE5NDs7MDE5NAorMDI2NDtMQVRJTiBTTUFMTCBMRVRURVIgUkFNUyBIT1JOO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQkFCWSBHQU1NQTs7OzsKKzAyNjU7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBIO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjY2O0xBVElOIFNNQUxMIExFVFRFUiBIIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEggSE9PSzs7OzsKKzAyNjc7TEFUSU4gU01BTEwgTEVUVEVSIEhFTkcgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSEVORyBIT09LOzs7OworMDI2ODtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEJBUlJFRCBJOzswMTk3OzswMTk3CiswMjY5O0xBVElOIFNNQUxMIExFVFRFUiBJT1RBO0xsOzA7TDs7Ozs7Tjs7OzAxOTY7OzAxOTYKKzAyNkE7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgSTtMbDswO0w7Ozs7O047Ozs7OworMDI2QjtMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIE1JRERMRSBUSUxERTtMbDswO0w7Ozs7O047Ozs7OworMDI2QztMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIEJFTFQ7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBMIEJFTFQ7Ozs7CiswMjZEO0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggUkVUUk9GTEVYIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBMIFJFVFJPRkxFWCBIT09LOzs7OworMDI2RTtMQVRJTiBTTUFMTCBMRVRURVIgTEVaSDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEwgWU9HSDs7OzsKKzAyNkY7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBNO0xsOzA7TDs7Ozs7Tjs7OzAxOUM7OzAxOUMKKzAyNzA7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBNIFdJVEggTE9ORyBMRUc7TGw7MDtMOzs7OztOOzs7OzsKKzAyNzE7TEFUSU4gU01BTEwgTEVUVEVSIE0gV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTSBIT09LOzs7OworMDI3MjtMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIExFRlQgSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE4gSE9PSzs7MDE5RDs7MDE5RAorMDI3MztMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIFJFVFJPRkxFWCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTiBSRVRST0ZMRVggSE9PSzs7OzsKKzAyNzQ7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgTjtMbDswO0w7Ozs7O047Ozs7OworMDI3NTtMQVRJTiBTTUFMTCBMRVRURVIgQkFSUkVEIE87TGw7MDtMOzs7OztOOzs7MDE5Rjs7MDE5RgorMDI3NjtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBPRTtMbDswO0w7Ozs7O047TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgTyBFOzs7OworMDI3NztMQVRJTiBTTUFMTCBMRVRURVIgQ0xPU0VEIE9NRUdBO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjc4O0xBVElOIFNNQUxMIExFVFRFUiBQSEk7TGw7MDtMOzs7OztOOzs7OzsKKzAyNzk7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBSO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjdBO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgUiBXSVRIIExPTkcgTEVHO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjdCO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgUiBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgUiBIT09LOzs7OworMDI3QztMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIExPTkcgTEVHO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjdEO0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggVEFJTDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFIgSE9PSzs7OzsKKzAyN0U7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBGSVNISE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEZJU0hIT09LIFI7Ozs7CiswMjdGO0xBVElOIFNNQUxMIExFVFRFUiBSRVZFUlNFRCBSIFdJVEggRklTSEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBSRVZFUlNFRCBGSVNISE9PSyBSOzs7OworMDI4MDtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBSO0xsOzA7TDs7Ozs7Tjs7OzAxQTY7OzAxQTYKKzAyODE7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgSU5WRVJURUQgUjtMbDswO0w7Ozs7O047Ozs7OworMDI4MjtMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBTIEhPT0s7Ozs7CiswMjgzO0xBVElOIFNNQUxMIExFVFRFUiBFU0g7TGw7MDtMOzs7OztOOzs7MDFBOTs7MDFBOQorMDI4NDtMQVRJTiBTTUFMTCBMRVRURVIgRE9UTEVTUyBKIFdJVEggU1RST0tFIEFORCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRE9UTEVTUyBKIEJBUiBIT09LOzs7OworMDI4NTtMQVRJTiBTTUFMTCBMRVRURVIgU1FVQVQgUkVWRVJTRUQgRVNIO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjg2O0xBVElOIFNNQUxMIExFVFRFUiBFU0ggV0lUSCBDVVJMO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRVNIIENVUkw7Ozs7CiswMjg3O0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgVDtMbDswO0w7Ozs7O047Ozs7OworMDI4ODtMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIFJFVFJPRkxFWCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVCBSRVRST0ZMRVggSE9PSzs7MDFBRTs7MDFBRQorMDI4OTtMQVRJTiBTTUFMTCBMRVRURVIgVSBCQVI7TGw7MDtMOzs7OztOOzs7OzsKKzAyOEE7TEFUSU4gU01BTEwgTEVUVEVSIFVQU0lMT047TGw7MDtMOzs7OztOOzs7MDFCMTs7MDFCMQorMDI4QjtMQVRJTiBTTUFMTCBMRVRURVIgViBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBTQ1JJUFQgVjs7MDFCMjs7MDFCMgorMDI4QztMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIFY7TGw7MDtMOzs7OztOOzs7OzsKKzAyOEQ7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBXO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjhFO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgWTtMbDswO0w7Ozs7O047Ozs7OworMDI4RjtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBZO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjkwO0xBVElOIFNNQUxMIExFVFRFUiBaIFdJVEggUkVUUk9GTEVYIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBaIFJFVFJPRkxFWCBIT09LOzs7OworMDI5MTtMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIENVUkw7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBaIENVUkw7Ozs7CiswMjkyO0xBVElOIFNNQUxMIExFVFRFUiBFWkg7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBZT0dIOzswMUI3OzswMUI3CiswMjkzO0xBVElOIFNNQUxMIExFVFRFUiBFWkggV0lUSCBDVVJMO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWU9HSCBDVVJMOzs7OworMDI5NDtMQVRJTiBMRVRURVIgR0xPVFRBTCBTVE9QO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjk1O0xBVElOIExFVFRFUiBQSEFSWU5HRUFMIFZPSUNFRCBGUklDQVRJVkU7TGw7MDtMOzs7OztOO0xBVElOIExFVFRFUiBSRVZFUlNFRCBHTE9UVEFMIFNUT1A7Ozs7CiswMjk2O0xBVElOIExFVFRFUiBJTlZFUlRFRCBHTE9UVEFMIFNUT1A7TGw7MDtMOzs7OztOOzs7OzsKKzAyOTc7TEFUSU4gTEVUVEVSIFNUUkVUQ0hFRCBDO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjk4O0xBVElOIExFVFRFUiBCSUxBQklBTCBDTElDSztMbDswO0w7Ozs7O047TEFUSU4gTEVUVEVSIEJVTExTRVlFOzs7OworMDI5OTtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBCO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjlBO0xBVElOIFNNQUxMIExFVFRFUiBDTE9TRUQgT1BFTiBFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQ0xPU0VEIEVQU0lMT047Ozs7CiswMjlCO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIEcgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBHIEhPT0s7Ozs7CiswMjlDO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIEg7TGw7MDtMOzs7OztOOzs7OzsKKzAyOUQ7TEFUSU4gU01BTEwgTEVUVEVSIEogV0lUSCBDUk9TU0VELVRBSUw7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBDUk9TU0VELVRBSUwgSjs7OzsKKzAyOUU7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBLO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjlGO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIEw7TGw7MDtMOzs7OztOOzs7OzsKKzAyQTA7TEFUSU4gU01BTEwgTEVUVEVSIFEgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUSBIT09LOzs7OworMDJBMTtMQVRJTiBMRVRURVIgR0xPVFRBTCBTVE9QIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgR0xPVFRBTCBTVE9QIEJBUjs7OzsKKzAyQTI7TEFUSU4gTEVUVEVSIFJFVkVSU0VEIEdMT1RUQUwgU1RPUCBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gTEVUVEVSIFJFVkVSU0VEIEdMT1RUQUwgU1RPUCBCQVI7Ozs7CiswMkEzO0xBVElOIFNNQUxMIExFVFRFUiBEWiBESUdSQVBIO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRCBaOzs7OworMDJBNDtMQVRJTiBTTUFMTCBMRVRURVIgREVaSCBESUdSQVBIO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRCBZT0dIOzs7OworMDJBNTtMQVRJTiBTTUFMTCBMRVRURVIgRFogRElHUkFQSCBXSVRIIENVUkw7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBEIFogQ1VSTDs7OzsKKzAyQTY7TEFUSU4gU01BTEwgTEVUVEVSIFRTIERJR1JBUEg7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBUIFM7Ozs7CiswMkE3O0xBVElOIFNNQUxMIExFVFRFUiBURVNIIERJR1JBUEg7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBUIEVTSDs7OzsKKzAyQTg7TEFUSU4gU01BTEwgTEVUVEVSIFRDIERJR1JBUEggV0lUSCBDVVJMO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVCBDIENVUkw7Ozs7CiswMkIwO01PRElGSUVSIExFVFRFUiBTTUFMTCBIO0xtOzA7TDs8c3VwZXI+IDAwNjg7Ozs7Tjs7Ozs7CiswMkIxO01PRElGSUVSIExFVFRFUiBTTUFMTCBIIFdJVEggSE9PSztMbTswO0w7PHN1cGVyPiAwMjY2Ozs7O047TU9ESUZJRVIgTEVUVEVSIFNNQUxMIEggSE9PSzs7OzsKKzAyQjI7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIEo7TG07MDtMOzxzdXBlcj4gMDA2QTs7OztOOzs7OzsKKzAyQjM7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFI7TG07MDtMOzxzdXBlcj4gMDA3Mjs7OztOOzs7OzsKKzAyQjQ7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFRVUk5FRCBSO0xtOzA7TDs8c3VwZXI+IDAyNzk7Ozs7Tjs7Ozs7CiswMkI1O01PRElGSUVSIExFVFRFUiBTTUFMTCBUVVJORUQgUiBXSVRIIEhPT0s7TG07MDtMOzxzdXBlcj4gMDI3Qjs7OztOO01PRElGSUVSIExFVFRFUiBTTUFMTCBUVVJORUQgUiBIT09LOzs7OworMDJCNjtNT0RJRklFUiBMRVRURVIgU01BTEwgQ0FQSVRBTCBJTlZFUlRFRCBSO0xtOzA7TDs8c3VwZXI+IDAyODE7Ozs7Tjs7Ozs7CiswMkI3O01PRElGSUVSIExFVFRFUiBTTUFMTCBXO0xtOzA7TDs8c3VwZXI+IDAwNzc7Ozs7Tjs7Ozs7CiswMkI4O01PRElGSUVSIExFVFRFUiBTTUFMTCBZO0xtOzA7TDs8c3VwZXI+IDAwNzk7Ozs7Tjs7Ozs7CiswMkI5O01PRElGSUVSIExFVFRFUiBQUklNRTtTazswO09OOzs7OztOOzs7OzsKKzAyQkE7TU9ESUZJRVIgTEVUVEVSIERPVUJMRSBQUklNRTtTazswO09OOzs7OztOOzs7OzsKKzAyQkI7TU9ESUZJRVIgTEVUVEVSIFRVUk5FRCBDT01NQTtMbTswO0w7Ozs7O047Ozs7OworMDJCQztNT0RJRklFUiBMRVRURVIgQVBPU1RST1BIRTtMbTswO0w7Ozs7O047Ozs7OworMDJCRDtNT0RJRklFUiBMRVRURVIgUkVWRVJTRUQgQ09NTUE7TG07MDtMOzs7OztOOzs7OzsKKzAyQkU7TU9ESUZJRVIgTEVUVEVSIFJJR0hUIEhBTEYgUklORztMbTswO0w7Ozs7O047Ozs7OworMDJCRjtNT0RJRklFUiBMRVRURVIgTEVGVCBIQUxGIFJJTkc7TG07MDtMOzs7OztOOzs7OzsKKzAyQzA7TU9ESUZJRVIgTEVUVEVSIEdMT1RUQUwgU1RPUDtMbTswO0w7Ozs7O047Ozs7OworMDJDMTtNT0RJRklFUiBMRVRURVIgUkVWRVJTRUQgR0xPVFRBTCBTVE9QO0xtOzA7TDs7Ozs7Tjs7Ozs7CiswMkMyO01PRElGSUVSIExFVFRFUiBMRUZUIEFSUk9XSEVBRDtTazswO09OOzs7OztOOzs7OzsKKzAyQzM7TU9ESUZJRVIgTEVUVEVSIFJJR0hUIEFSUk9XSEVBRDtTazswO09OOzs7OztOOzs7OzsKKzAyQzQ7TU9ESUZJRVIgTEVUVEVSIFVQIEFSUk9XSEVBRDtTazswO09OOzs7OztOOzs7OzsKKzAyQzU7TU9ESUZJRVIgTEVUVEVSIERPV04gQVJST1dIRUFEO1NrOzA7T047Ozs7O047Ozs7OworMDJDNjtNT0RJRklFUiBMRVRURVIgQ0lSQ1VNRkxFWCBBQ0NFTlQ7U2s7MDtPTjs7Ozs7TjtNT0RJRklFUiBMRVRURVIgQ0lSQ1VNRkxFWDs7OzsKKzAyQzc7Q0FST047U2s7MDtPTjs7Ozs7TjtNT0RJRklFUiBMRVRURVIgSEFDRUs7TWFuZGFyaW4gQ2hpbmVzZSB0aGlyZCB0b25lOzs7CiswMkM4O01PRElGSUVSIExFVFRFUiBWRVJUSUNBTCBMSU5FO1NrOzA7T047Ozs7O047Ozs7OworMDJDOTtNT0RJRklFUiBMRVRURVIgTUFDUk9OO1NrOzA7T047Ozs7O047O01hbmRhcmluIENoaW5lc2UgZmlyc3QgdG9uZTs7OworMDJDQTtNT0RJRklFUiBMRVRURVIgQUNVVEUgQUNDRU5UO1NrOzA7T047Ozs7O047TU9ESUZJRVIgTEVUVEVSIEFDVVRFO01hbmRhcmluIENoaW5lc2Ugc2Vjb25kIHRvbmU7OzsKKzAyQ0I7TU9ESUZJRVIgTEVUVEVSIEdSQVZFIEFDQ0VOVDtTazswO09OOzs7OztOO01PRElGSUVSIExFVFRFUiBHUkFWRTtNYW5kYXJpbiBDaGluZXNlIGZvdXJ0aCB0b25lOzs7CiswMkNDO01PRElGSUVSIExFVFRFUiBMT1cgVkVSVElDQUwgTElORTtTazswO09OOzs7OztOOzs7OzsKKzAyQ0Q7TU9ESUZJRVIgTEVUVEVSIExPVyBNQUNST047U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkNFO01PRElGSUVSIExFVFRFUiBMT1cgR1JBVkUgQUNDRU5UO1NrOzA7T047Ozs7O047TU9ESUZJRVIgTEVUVEVSIExPVyBHUkFWRTs7OzsKKzAyQ0Y7TU9ESUZJRVIgTEVUVEVSIExPVyBBQ1VURSBBQ0NFTlQ7U2s7MDtPTjs7Ozs7TjtNT0RJRklFUiBMRVRURVIgTE9XIEFDVVRFOzs7OworMDJEMDtNT0RJRklFUiBMRVRURVIgVFJJQU5HVUxBUiBDT0xPTjtMbTswO09OOzs7OztOOzs7OzsKKzAyRDE7TU9ESUZJRVIgTEVUVEVSIEhBTEYgVFJJQU5HVUxBUiBDT0xPTjtMbTswO09OOzs7OztOOzs7OzsKKzAyRDI7TU9ESUZJRVIgTEVUVEVSIENFTlRSRUQgUklHSFQgSEFMRiBSSU5HO1NrOzA7T047Ozs7O047TU9ESUZJRVIgTEVUVEVSIENFTlRFUkVEIFJJR0hUIEhBTEYgUklORzs7OzsKKzAyRDM7TU9ESUZJRVIgTEVUVEVSIENFTlRSRUQgTEVGVCBIQUxGIFJJTkc7U2s7MDtPTjs7Ozs7TjtNT0RJRklFUiBMRVRURVIgQ0VOVEVSRUQgTEVGVCBIQUxGIFJJTkc7Ozs7CiswMkQ0O01PRElGSUVSIExFVFRFUiBVUCBUQUNLO1NrOzA7T047Ozs7O047Ozs7OworMDJENTtNT0RJRklFUiBMRVRURVIgRE9XTiBUQUNLO1NrOzA7T047Ozs7O047Ozs7OworMDJENjtNT0RJRklFUiBMRVRURVIgUExVUyBTSUdOO1NrOzA7T047Ozs7O047Ozs7OworMDJENztNT0RJRklFUiBMRVRURVIgTUlOVVMgU0lHTjtTazswO09OOzs7OztOOzs7OzsKKzAyRDg7QlJFVkU7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMDY7Ozs7TjtTUEFDSU5HIEJSRVZFOzs7OworMDJEOTtET1QgQUJPVkU7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMDc7Ozs7TjtTUEFDSU5HIERPVCBBQk9WRTtNYW5kYXJpbiBDaGluZXNlIGxpZ2h0IHRvbmU7OzsKKzAyREE7UklORyBBQk9WRTtTazswO09OOzxjb21wYXQ+IDAwMjAgMDMwQTs7OztOO1NQQUNJTkcgUklORyBBQk9WRTs7OzsKKzAyREI7T0dPTkVLO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzI4Ozs7O047U1BBQ0lORyBPR09ORUs7Ozs7CiswMkRDO1NNQUxMIFRJTERFO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzAzOzs7O047U1BBQ0lORyBUSUxERTs7OzsKKzAyREQ7RE9VQkxFIEFDVVRFIEFDQ0VOVDtTazswO09OOzxjb21wYXQ+IDAwMjAgMDMwQjs7OztOO1NQQUNJTkcgRE9VQkxFIEFDVVRFOzs7OworMDJERTtNT0RJRklFUiBMRVRURVIgUkhPVElDIEhPT0s7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkUwO01PRElGSUVSIExFVFRFUiBTTUFMTCBHQU1NQTtMbTswO0w7PHN1cGVyPiAwMjYzOzs7O047Ozs7OworMDJFMTtNT0RJRklFUiBMRVRURVIgU01BTEwgTDtMbTswO0w7PHN1cGVyPiAwMDZDOzs7O047Ozs7OworMDJFMjtNT0RJRklFUiBMRVRURVIgU01BTEwgUztMbTswO0w7PHN1cGVyPiAwMDczOzs7O047Ozs7OworMDJFMztNT0RJRklFUiBMRVRURVIgU01BTEwgWDtMbTswO0w7PHN1cGVyPiAwMDc4Ozs7O047Ozs7OworMDJFNDtNT0RJRklFUiBMRVRURVIgU01BTEwgUkVWRVJTRUQgR0xPVFRBTCBTVE9QO0xtOzA7TDs8c3VwZXI+IDAyOTU7Ozs7Tjs7Ozs7CiswMkU1O01PRElGSUVSIExFVFRFUiBFWFRSQS1ISUdIIFRPTkUgQkFSO1NrOzA7T047Ozs7O047Ozs7OworMDJFNjtNT0RJRklFUiBMRVRURVIgSElHSCBUT05FIEJBUjtTazswO09OOzs7OztOOzs7OzsKKzAyRTc7TU9ESUZJRVIgTEVUVEVSIE1JRCBUT05FIEJBUjtTazswO09OOzs7OztOOzs7OzsKKzAyRTg7TU9ESUZJRVIgTEVUVEVSIExPVyBUT05FIEJBUjtTazswO09OOzs7OztOOzs7OzsKKzAyRTk7TU9ESUZJRVIgTEVUVEVSIEVYVFJBLUxPVyBUT05FIEJBUjtTazswO09OOzs7OztOOzs7OzsKKzAzMDA7Q09NQklOSU5HIEdSQVZFIEFDQ0VOVDtNbjsyMzA7T047Ozs7O047Tk9OLVNQQUNJTkcgR1JBVkU7VmFyaWE7OzsKKzAzMDE7Q09NQklOSU5HIEFDVVRFIEFDQ0VOVDtNbjsyMzA7T047Ozs7O047Tk9OLVNQQUNJTkcgQUNVVEU7T3hpYTs7OworMDMwMjtDT01CSU5JTkcgQ0lSQ1VNRkxFWCBBQ0NFTlQ7TW47MjMwO09OOzs7OztOO05PTi1TUEFDSU5HIENJUkNVTUZMRVg7Ozs7CiswMzAzO0NPTUJJTklORyBUSUxERTtNbjsyMzA7T047Ozs7O047Tk9OLVNQQUNJTkcgVElMREU7Ozs7CiswMzA0O0NPTUJJTklORyBNQUNST047TW47MjMwO09OOzs7OztOO05PTi1TUEFDSU5HIE1BQ1JPTjs7OzsKKzAzMDU7Q09NQklOSU5HIE9WRVJMSU5FO01uOzIzMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBPVkVSU0NPUkU7Ozs7CiswMzA2O0NPTUJJTklORyBCUkVWRTtNbjsyMzA7T047Ozs7O047Tk9OLVNQQUNJTkcgQlJFVkU7VnJhY2h5Ozs7CiswMzA3O0NPTUJJTklORyBET1QgQUJPVkU7TW47MjMwO09OOzs7OztOO05PTi1TUEFDSU5HIERPVCBBQk9WRTs7OzsKKzAzMDg7Q09NQklOSU5HIERJQUVSRVNJUztNbjsyMzA7T047Ozs7O047Tk9OLVNQQUNJTkcgRElBRVJFU0lTO0RpYWx5dGlrYTs7OworMDMwOTtDT01CSU5JTkcgSE9PSyBBQk9WRTtNbjsyMzA7T047Ozs7O047Tk9OLVNQQUNJTkcgSE9PSyBBQk9WRTs7OzsKKzAzMEE7Q09NQklOSU5HIFJJTkcgQUJPVkU7TW47MjMwO09OOzs7OztOO05PTi1TUEFDSU5HIFJJTkcgQUJPVkU7Ozs7CiswMzBCO0NPTUJJTklORyBET1VCTEUgQUNVVEUgQUNDRU5UO01uOzIzMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBET1VCTEUgQUNVVEU7Ozs7CiswMzBDO0NPTUJJTklORyBDQVJPTjtNbjsyMzA7T047Ozs7O047Tk9OLVNQQUNJTkcgSEFDRUs7Ozs7CiswMzBEO0NPTUJJTklORyBWRVJUSUNBTCBMSU5FIEFCT1ZFO01uOzIzMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBWRVJUSUNBTCBMSU5FIEFCT1ZFO1Rvbm9zOzs7CiswMzBFO0NPTUJJTklORyBET1VCTEUgVkVSVElDQUwgTElORSBBQk9WRTtNbjsyMzA7T047Ozs7O047Tk9OLVNQQUNJTkcgRE9VQkxFIFZFUlRJQ0FMIExJTkUgQUJPVkU7Ozs7CiswMzBGO0NPTUJJTklORyBET1VCTEUgR1JBVkUgQUNDRU5UO01uOzIzMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBET1VCTEUgR1JBVkU7Ozs7CiswMzEwO0NPTUJJTklORyBDQU5EUkFCSU5EVTtNbjsyMzA7T047Ozs7O047Tk9OLVNQQUNJTkcgQ0FORFJBQklORFU7Ozs7CiswMzExO0NPTUJJTklORyBJTlZFUlRFRCBCUkVWRTtNbjsyMzA7T047Ozs7O047Tk9OLVNQQUNJTkcgSU5WRVJURUQgQlJFVkU7Ozs7CiswMzEyO0NPTUJJTklORyBUVVJORUQgQ09NTUEgQUJPVkU7TW47MjMwO09OOzs7OztOO05PTi1TUEFDSU5HIFRVUk5FRCBDT01NQSBBQk9WRTs7OzsKKzAzMTM7Q09NQklOSU5HIENPTU1BIEFCT1ZFO01uOzIzMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBDT01NQSBBQk9WRTtQc2lsaTs7OworMDMxNDtDT01CSU5JTkcgUkVWRVJTRUQgQ09NTUEgQUJPVkU7TW47MjMwO09OOzs7OztOO05PTi1TUEFDSU5HIFJFVkVSU0VEIENPTU1BIEFCT1ZFO0Rhc2lhOzs7CiswMzE1O0NPTUJJTklORyBDT01NQSBBQk9WRSBSSUdIVDtNbjsyMzI7T047Ozs7O047Tk9OLVNQQUNJTkcgQ09NTUEgQUJPVkUgUklHSFQ7Ozs7CiswMzE2O0NPTUJJTklORyBHUkFWRSBBQ0NFTlQgQkVMT1c7TW47MjIwO09OOzs7OztOO05PTi1TUEFDSU5HIEdSQVZFIEJFTE9XOzs7OworMDMxNztDT01CSU5JTkcgQUNVVEUgQUNDRU5UIEJFTE9XO01uOzIyMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBBQ1VURSBCRUxPVzs7OzsKKzAzMTg7Q09NQklOSU5HIExFRlQgVEFDSyBCRUxPVztNbjsyMjA7T047Ozs7O047Tk9OLVNQQUNJTkcgTEVGVCBUQUNLIEJFTE9XOzs7OworMDMxOTtDT01CSU5JTkcgUklHSFQgVEFDSyBCRUxPVztNbjsyMjA7T047Ozs7O047Tk9OLVNQQUNJTkcgUklHSFQgVEFDSyBCRUxPVzs7OzsKKzAzMUE7Q09NQklOSU5HIExFRlQgQU5HTEUgQUJPVkU7TW47MjMyO09OOzs7OztOO05PTi1TUEFDSU5HIExFRlQgQU5HTEUgQUJPVkU7Ozs7CiswMzFCO0NPTUJJTklORyBIT1JOO01uOzIxNjtPTjs7Ozs7TjtOT04tU1BBQ0lORyBIT1JOOzs7OworMDMxQztDT01CSU5JTkcgTEVGVCBIQUxGIFJJTkcgQkVMT1c7TW47MjIwO09OOzs7OztOO05PTi1TUEFDSU5HIExFRlQgSEFMRiBSSU5HIEJFTE9XOzs7OworMDMxRDtDT01CSU5JTkcgVVAgVEFDSyBCRUxPVztNbjsyMjA7T047Ozs7O047Tk9OLVNQQUNJTkcgVVAgVEFDSyBCRUxPVzs7OzsKKzAzMUU7Q09NQklOSU5HIERPV04gVEFDSyBCRUxPVztNbjsyMjA7T047Ozs7O047Tk9OLVNQQUNJTkcgRE9XTiBUQUNLIEJFTE9XOzs7OworMDMxRjtDT01CSU5JTkcgUExVUyBTSUdOIEJFTE9XO01uOzIyMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBQTFVTIFNJR04gQkVMT1c7Ozs7CiswMzIwO0NPTUJJTklORyBNSU5VUyBTSUdOIEJFTE9XO01uOzIyMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBNSU5VUyBTSUdOIEJFTE9XOzs7OworMDMyMTtDT01CSU5JTkcgUEFMQVRBTElaRUQgSE9PSyBCRUxPVztNbjsyMDI7T047Ozs7O047Tk9OLVNQQUNJTkcgUEFMQVRBTElaRUQgSE9PSyBCRUxPVzs7OzsKKzAzMjI7Q09NQklOSU5HIFJFVFJPRkxFWCBIT09LIEJFTE9XO01uOzIwMjtPTjs7Ozs7TjtOT04tU1BBQ0lORyBSRVRST0ZMRVggSE9PSyBCRUxPVzs7OzsKKzAzMjM7Q09NQklOSU5HIERPVCBCRUxPVztNbjsyMjA7T047Ozs7O047Tk9OLVNQQUNJTkcgRE9UIEJFTE9XOzs7OworMDMyNDtDT01CSU5JTkcgRElBRVJFU0lTIEJFTE9XO01uOzIyMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBET1VCTEUgRE9UIEJFTE9XOzs7OworMDMyNTtDT01CSU5JTkcgUklORyBCRUxPVztNbjsyMjA7T047Ozs7O047Tk9OLVNQQUNJTkcgUklORyBCRUxPVzs7OzsKKzAzMjY7Q09NQklOSU5HIENPTU1BIEJFTE9XO01uOzIyMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBDT01NQSBCRUxPVzs7OzsKKzAzMjc7Q09NQklOSU5HIENFRElMTEE7TW47MjAyO09OOzs7OztOO05PTi1TUEFDSU5HIENFRElMTEE7Ozs7CiswMzI4O0NPTUJJTklORyBPR09ORUs7TW47MjAyO09OOzs7OztOO05PTi1TUEFDSU5HIE9HT05FSzs7OzsKKzAzMjk7Q09NQklOSU5HIFZFUlRJQ0FMIExJTkUgQkVMT1c7TW47MjIwO09OOzs7OztOO05PTi1TUEFDSU5HIFZFUlRJQ0FMIExJTkUgQkVMT1c7Ozs7CiswMzJBO0NPTUJJTklORyBCUklER0UgQkVMT1c7TW47MjIwO09OOzs7OztOO05PTi1TUEFDSU5HIEJSSURHRSBCRUxPVzs7OzsKKzAzMkI7Q09NQklOSU5HIElOVkVSVEVEIERPVUJMRSBBUkNIIEJFTE9XO01uOzIyMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBJTlZFUlRFRCBET1VCTEUgQVJDSCBCRUxPVzs7OzsKKzAzMkM7Q09NQklOSU5HIENBUk9OIEJFTE9XO01uOzIyMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBIQUNFSyBCRUxPVzs7OzsKKzAzMkQ7Q09NQklOSU5HIENJUkNVTUZMRVggQUNDRU5UIEJFTE9XO01uOzIyMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBDSVJDVU1GTEVYIEJFTE9XOzs7OworMDMyRTtDT01CSU5JTkcgQlJFVkUgQkVMT1c7TW47MjIwO09OOzs7OztOO05PTi1TUEFDSU5HIEJSRVZFIEJFTE9XOzs7OworMDMyRjtDT01CSU5JTkcgSU5WRVJURUQgQlJFVkUgQkVMT1c7TW47MjIwO09OOzs7OztOO05PTi1TUEFDSU5HIElOVkVSVEVEIEJSRVZFIEJFTE9XOzs7OworMDMzMDtDT01CSU5JTkcgVElMREUgQkVMT1c7TW47MjIwO09OOzs7OztOO05PTi1TUEFDSU5HIFRJTERFIEJFTE9XOzs7OworMDMzMTtDT01CSU5JTkcgTUFDUk9OIEJFTE9XO01uOzIyMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBNQUNST04gQkVMT1c7Ozs7CiswMzMyO0NPTUJJTklORyBMT1cgTElORTtNbjsyMjA7T047Ozs7O047Tk9OLVNQQUNJTkcgVU5ERVJTQ09SRTs7OzsKKzAzMzM7Q09NQklOSU5HIERPVUJMRSBMT1cgTElORTtNbjsyMjA7T047Ozs7O047Tk9OLVNQQUNJTkcgRE9VQkxFIFVOREVSU0NPUkU7Ozs7CiswMzM0O0NPTUJJTklORyBUSUxERSBPVkVSTEFZO01uOzE7T047Ozs7O047Tk9OLVNQQUNJTkcgVElMREUgT1ZFUkxBWTs7OzsKKzAzMzU7Q09NQklOSU5HIFNIT1JUIFNUUk9LRSBPVkVSTEFZO01uOzE7T047Ozs7O047Tk9OLVNQQUNJTkcgU0hPUlQgQkFSIE9WRVJMQVk7Ozs7CiswMzM2O0NPTUJJTklORyBMT05HIFNUUk9LRSBPVkVSTEFZO01uOzE7T047Ozs7O047Tk9OLVNQQUNJTkcgTE9ORyBCQVIgT1ZFUkxBWTs7OzsKKzAzMzc7Q09NQklOSU5HIFNIT1JUIFNPTElEVVMgT1ZFUkxBWTtNbjsxO09OOzs7OztOO05PTi1TUEFDSU5HIFNIT1JUIFNMQVNIIE9WRVJMQVk7Ozs7CiswMzM4O0NPTUJJTklORyBMT05HIFNPTElEVVMgT1ZFUkxBWTtNbjsxO09OOzs7OztOO05PTi1TUEFDSU5HIExPTkcgU0xBU0ggT1ZFUkxBWTs7OzsKKzAzMzk7Q09NQklOSU5HIFJJR0hUIEhBTEYgUklORyBCRUxPVztNbjsyMjA7T047Ozs7O047Tk9OLVNQQUNJTkcgUklHSFQgSEFMRiBSSU5HIEJFTE9XOzs7OworMDMzQTtDT01CSU5JTkcgSU5WRVJURUQgQlJJREdFIEJFTE9XO01uOzIyMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBJTlZFUlRFRCBCUklER0UgQkVMT1c7Ozs7CiswMzNCO0NPTUJJTklORyBTUVVBUkUgQkVMT1c7TW47MjIwO09OOzs7OztOO05PTi1TUEFDSU5HIFNRVUFSRSBCRUxPVzs7OzsKKzAzM0M7Q09NQklOSU5HIFNFQUdVTEwgQkVMT1c7TW47MjIwO09OOzs7OztOO05PTi1TUEFDSU5HIFNFQUdVTEwgQkVMT1c7Ozs7CiswMzNEO0NPTUJJTklORyBYIEFCT1ZFO01uOzIzMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBYIEFCT1ZFOzs7OworMDMzRTtDT01CSU5JTkcgVkVSVElDQUwgVElMREU7TW47MjMwO09OOzs7OztOO05PTi1TUEFDSU5HIFZFUlRJQ0FMIFRJTERFOzs7OworMDMzRjtDT01CSU5JTkcgRE9VQkxFIE9WRVJMSU5FO01uOzIzMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBET1VCTEUgT1ZFUlNDT1JFOzs7OworMDM0MDtDT01CSU5JTkcgR1JBVkUgVE9ORSBNQVJLO01uOzIzMDtPTjswMzAwOzs7O047Tk9OLVNQQUNJTkcgR1JBVkUgVE9ORSBNQVJLO1ZpZXRuYW1lc2U7OzsKKzAzNDE7Q09NQklOSU5HIEFDVVRFIFRPTkUgTUFSSztNbjsyMzA7T047MDMwMTs7OztOO05PTi1TUEFDSU5HIEFDVVRFIFRPTkUgTUFSSztWaWV0bmFtZXNlOzs7CiswMzQyO0NPTUJJTklORyBHUkVFSyBQRVJJU1BPTUVOSTtNbjsyMzA7T047Ozs7O047Ozs7OworMDM0MztDT01CSU5JTkcgR1JFRUsgS09ST05JUztNbjsyMzA7T047MDMxMzs7OztOOzs7OzsKKzAzNDQ7Q09NQklOSU5HIEdSRUVLIERJQUxZVElLQSBUT05PUztNbjsyMzA7T047MDMwOCAwMzAxOzs7O047R1JFRUsgTk9OLVNQQUNJTkcgRElBRVJFU0lTIFRPTk9TOzs7OworMDM0NTtDT01CSU5JTkcgR1JFRUsgWVBPR0VHUkFNTUVOSTtNbjsyNDA7T047Ozs7O047R1JFRUsgTk9OLVNQQUNJTkcgSU9UQSBCRUxPVzs7MDM5OTs7CiswMzYwO0NPTUJJTklORyBET1VCTEUgVElMREU7TW47MjM0O09OOzs7OztOOzs7OzsKKzAzNjE7Q09NQklOSU5HIERPVUJMRSBJTlZFUlRFRCBCUkVWRTtNbjsyMzQ7T047Ozs7O047Ozs7OworMDM3NDtHUkVFSyBOVU1FUkFMIFNJR047UG87MDtMOzAyQjk7Ozs7TjtHUkVFSyBVUFBFUiBOVU1FUkFMIFNJR047RGV4aWEga2VyYWlhOzs7CiswMzc1O0dSRUVLIExPV0VSIE5VTUVSQUwgU0lHTjtQbzswO0w7Ozs7O047O0FyaXN0ZXJpIGtlcmFpYTs7OworMDM3QTtHUkVFSyBZUE9HRUdSQU1NRU5JO0xtOzA7TDs8Y29tcGF0PiAwMDIwIDAzNDU7Ozs7TjtHUkVFSyBTUEFDSU5HIElPVEEgQkVMT1c7Ozs7CiswMzdFO0dSRUVLIFFVRVNUSU9OIE1BUks7UG87MDtPTjswMDNCOzs7O047O0Vyb3RpbWF0aWtvOzs7CiswMzg0O0dSRUVLIFRPTk9TO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzAxOzs7O047R1JFRUsgU1BBQ0lORyBUT05PUzs7OzsKKzAzODU7R1JFRUsgRElBTFlUSUtBIFRPTk9TO1NrOzA7T047MDBBOCAwMzAxOzs7O047R1JFRUsgU1BBQ0lORyBESUFFUkVTSVMgVE9OT1M7Ozs7CiswMzg2O0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggVE9OT1M7THU7MDtMOzAzOTEgMDMwMTs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFRPTk9TOzs7MDNBQzsKKzAzODc7R1JFRUsgQU5PIFRFTEVJQTtQbzswO09OOzAwQjc7Ozs7Tjs7Ozs7CiswMzg4O0dSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gV0lUSCBUT05PUztMdTswO0w7MDM5NSAwMzAxOzs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVBTSUxPTiBUT05PUzs7OzAzQUQ7CiswMzg5O0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFRPTk9TO0x1OzA7TDswMzk3IDAzMDE7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgVE9OT1M7OzswM0FFOworMDM4QTtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggVE9OT1M7THU7MDtMOzAzOTkgMDMwMTs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgVE9OT1M7OzswM0FGOworMDM4QztHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OIFdJVEggVE9OT1M7THU7MDtMOzAzOUYgMDMwMTs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NSUNST04gVE9OT1M7OzswM0NDOworMDM4RTtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIFdJVEggVE9OT1M7THU7MDtMOzAzQTUgMDMwMTs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gVE9OT1M7OzswM0NEOworMDM4RjtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFRPTk9TO0x1OzA7TDswM0E5IDAzMDE7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBUT05PUzs7OzAzQ0U7CiswMzkwO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggRElBTFlUSUtBIEFORCBUT05PUztMbDswO0w7MDNDQSAwMzAxOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgRElBRVJFU0lTIFRPTk9TOzs7OworMDM5MTtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQTtMdTswO0w7Ozs7O047Ozs7MDNCMTsKKzAzOTI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQkVUQTtMdTswO0w7Ozs7O047Ozs7MDNCMjsKKzAzOTM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgR0FNTUE7THU7MDtMOzs7OztOOzs7OzAzQjM7CiswMzk0O0dSRUVLIENBUElUQUwgTEVUVEVSIERFTFRBO0x1OzA7TDs7Ozs7Tjs7OzswM0I0OworMDM5NTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OO0x1OzA7TDs7Ozs7Tjs7OzswM0I1OworMDM5NjtHUkVFSyBDQVBJVEFMIExFVFRFUiBaRVRBO0x1OzA7TDs7Ozs7Tjs7OzswM0I2OworMDM5NztHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEE7THU7MDtMOzs7OztOOzs7OzAzQjc7CiswMzk4O0dSRUVLIENBUElUQUwgTEVUVEVSIFRIRVRBO0x1OzA7TDs7Ozs7Tjs7OzswM0I4OworMDM5OTtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBO0x1OzA7TDs7Ozs7Tjs7OzswM0I5OworMDM5QTtHUkVFSyBDQVBJVEFMIExFVFRFUiBLQVBQQTtMdTswO0w7Ozs7O047Ozs7MDNCQTsKKzAzOUI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgTEFNREE7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIExBTUJEQTs7OzAzQkI7CiswMzlDO0dSRUVLIENBUElUQUwgTEVUVEVSIE1VO0x1OzA7TDs7Ozs7Tjs7OzswM0JDOworMDM5RDtHUkVFSyBDQVBJVEFMIExFVFRFUiBOVTtMdTswO0w7Ozs7O047Ozs7MDNCRDsKKzAzOUU7R1JFRUsgQ0FQSVRBTCBMRVRURVIgWEk7THU7MDtMOzs7OztOOzs7OzAzQkU7CiswMzlGO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NSUNST047THU7MDtMOzs7OztOOzs7OzAzQkY7CiswM0EwO0dSRUVLIENBUElUQUwgTEVUVEVSIFBJO0x1OzA7TDs7Ozs7Tjs7OzswM0MwOworMDNBMTtHUkVFSyBDQVBJVEFMIExFVFRFUiBSSE87THU7MDtMOzs7OztOOzs7OzAzQzE7CiswM0EzO0dSRUVLIENBUElUQUwgTEVUVEVSIFNJR01BO0x1OzA7TDs7Ozs7Tjs7OzswM0MzOworMDNBNDtHUkVFSyBDQVBJVEFMIExFVFRFUiBUQVU7THU7MDtMOzs7OztOOzs7OzAzQzQ7CiswM0E1O0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT047THU7MDtMOzs7OztOOzs7OzAzQzU7CiswM0E2O0dSRUVLIENBUElUQUwgTEVUVEVSIFBISTtMdTswO0w7Ozs7O047Ozs7MDNDNjsKKzAzQTc7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQ0hJO0x1OzA7TDs7Ozs7Tjs7OzswM0M3OworMDNBODtHUkVFSyBDQVBJVEFMIExFVFRFUiBQU0k7THU7MDtMOzs7OztOOzs7OzAzQzg7CiswM0E5O0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBO0x1OzA7TDs7Ozs7Tjs7OzswM0M5OworMDNBQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggRElBTFlUSUtBO0x1OzA7TDswMzk5IDAzMDg7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIERJQUVSRVNJUzs7OzAzQ0E7CiswM0FCO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gV0lUSCBESUFMWVRJS0E7THU7MDtMOzAzQTUgMDMwODs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gRElBRVJFU0lTOzs7MDNDQjsKKzAzQUM7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggVE9OT1M7TGw7MDtMOzAzQjEgMDMwMTs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBUT05PUzs7MDM4Njs7MDM4NgorMDNBRDtHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTiBXSVRIIFRPTk9TO0xsOzA7TDswM0I1IDAzMDE7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTiBUT05PUzs7MDM4ODs7MDM4OAorMDNBRTtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggVE9OT1M7TGw7MDtMOzAzQjcgMDMwMTs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgVE9OT1M7OzAzODk7OzAzODkKKzAzQUY7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBUT05PUztMbDswO0w7MDNCOSAwMzAxOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgVE9OT1M7OzAzOEE7OzAzOEEKKzAzQjA7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBESUFMWVRJS0EgQU5EIFRPTk9TO0xsOzA7TDswM0NCIDAzMDE7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBESUFFUkVTSVMgVE9OT1M7Ozs7CiswM0IxO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQTtMbDswO0w7Ozs7O047OzswMzkxOzswMzkxCiswM0IyO0dSRUVLIFNNQUxMIExFVFRFUiBCRVRBO0xsOzA7TDs7Ozs7Tjs7OzAzOTI7OzAzOTIKKzAzQjM7R1JFRUsgU01BTEwgTEVUVEVSIEdBTU1BO0xsOzA7TDs7Ozs7Tjs7OzAzOTM7OzAzOTMKKzAzQjQ7R1JFRUsgU01BTEwgTEVUVEVSIERFTFRBO0xsOzA7TDs7Ozs7Tjs7OzAzOTQ7OzAzOTQKKzAzQjU7R1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT047TGw7MDtMOzs7OztOOzs7MDM5NTs7MDM5NQorMDNCNjtHUkVFSyBTTUFMTCBMRVRURVIgWkVUQTtMbDswO0w7Ozs7O047OzswMzk2OzswMzk2CiswM0I3O0dSRUVLIFNNQUxMIExFVFRFUiBFVEE7TGw7MDtMOzs7OztOOzs7MDM5Nzs7MDM5NworMDNCODtHUkVFSyBTTUFMTCBMRVRURVIgVEhFVEE7TGw7MDtMOzs7OztOOzs7MDM5ODs7MDM5OAorMDNCOTtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQTtMbDswO0w7Ozs7O047OzswMzk5OzswMzk5CiswM0JBO0dSRUVLIFNNQUxMIExFVFRFUiBLQVBQQTtMbDswO0w7Ozs7O047OzswMzlBOzswMzlBCiswM0JCO0dSRUVLIFNNQUxMIExFVFRFUiBMQU1EQTtMbDswO0w7Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIExBTUJEQTs7MDM5Qjs7MDM5QgorMDNCQztHUkVFSyBTTUFMTCBMRVRURVIgTVU7TGw7MDtMOzs7OztOOzs7MDM5Qzs7MDM5QworMDNCRDtHUkVFSyBTTUFMTCBMRVRURVIgTlU7TGw7MDtMOzs7OztOOzs7MDM5RDs7MDM5RAorMDNCRTtHUkVFSyBTTUFMTCBMRVRURVIgWEk7TGw7MDtMOzs7OztOOzs7MDM5RTs7MDM5RQorMDNCRjtHUkVFSyBTTUFMTCBMRVRURVIgT01JQ1JPTjtMbDswO0w7Ozs7O047OzswMzlGOzswMzlGCiswM0MwO0dSRUVLIFNNQUxMIExFVFRFUiBQSTtMbDswO0w7Ozs7O047OzswM0EwOzswM0EwCiswM0MxO0dSRUVLIFNNQUxMIExFVFRFUiBSSE87TGw7MDtMOzs7OztOOzs7MDNBMTs7MDNBMQorMDNDMjtHUkVFSyBTTUFMTCBMRVRURVIgRklOQUwgU0lHTUE7TGw7MDtMOzs7OztOOzs7MDNBMzs7MDNBMworMDNDMztHUkVFSyBTTUFMTCBMRVRURVIgU0lHTUE7TGw7MDtMOzs7OztOOzs7MDNBMzs7MDNBMworMDNDNDtHUkVFSyBTTUFMTCBMRVRURVIgVEFVO0xsOzA7TDs7Ozs7Tjs7OzAzQTQ7OzAzQTQKKzAzQzU7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT047TGw7MDtMOzs7OztOOzs7MDNBNTs7MDNBNQorMDNDNjtHUkVFSyBTTUFMTCBMRVRURVIgUEhJO0xsOzA7TDs7Ozs7Tjs7OzAzQTY7OzAzQTYKKzAzQzc7R1JFRUsgU01BTEwgTEVUVEVSIENISTtMbDswO0w7Ozs7O047OzswM0E3OzswM0E3CiswM0M4O0dSRUVLIFNNQUxMIExFVFRFUiBQU0k7TGw7MDtMOzs7OztOOzs7MDNBODs7MDNBOAorMDNDOTtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0E7TGw7MDtMOzs7OztOOzs7MDNBOTs7MDNBOQorMDNDQTtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERJQUxZVElLQTtMbDswO0w7MDNCOSAwMzA4Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgRElBRVJFU0lTOzswM0FBOzswM0FBCiswM0NCO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggRElBTFlUSUtBO0xsOzA7TDswM0M1IDAzMDg7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBESUFFUkVTSVM7OzAzQUI7OzAzQUIKKzAzQ0M7R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gV0lUSCBUT05PUztMbDswO0w7MDNCRiAwMzAxOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gVE9OT1M7OzAzOEM7OzAzOEMKKzAzQ0Q7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBUT05PUztMbDswO0w7MDNDNSAwMzAxOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gVE9OT1M7OzAzOEU7OzAzOEUKKzAzQ0U7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggVE9OT1M7TGw7MDtMOzAzQzkgMDMwMTs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBUT05PUzs7MDM4Rjs7MDM4RgorMDNEMDtHUkVFSyBCRVRBIFNZTUJPTDtMbDswO0w7Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIENVUkxFRCBCRVRBOzswMzkyOzswMzkyCiswM0QxO0dSRUVLIFRIRVRBIFNZTUJPTDtMbDswO0w7Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIFNDUklQVCBUSEVUQTs7MDM5ODs7MDM5OAorMDNEMjtHUkVFSyBVUFNJTE9OIFdJVEggSE9PSyBTWU1CT0w7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gSE9PSzs7OzsKKzAzRDM7R1JFRUsgVVBTSUxPTiBXSVRIIEFDVVRFIEFORCBIT09LIFNZTUJPTDtMdTswO0w7MDNEMiAwMzAxOzs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBIT09LIFRPTk9TOzs7OworMDNENDtHUkVFSyBVUFNJTE9OIFdJVEggRElBRVJFU0lTIEFORCBIT09LIFNZTUJPTDtMdTswO0w7MDNEMiAwMzA4Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBIT09LIERJQUVSRVNJUzs7OzsKKzAzRDU7R1JFRUsgUEhJIFNZTUJPTDtMbDswO0w7Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIFNDUklQVCBQSEk7OzAzQTY7OzAzQTYKKzAzRDY7R1JFRUsgUEkgU1lNQk9MO0xsOzA7TDs7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgUEk7OzAzQTA7OzAzQTAKKzAzREE7R1JFRUsgTEVUVEVSIFNUSUdNQTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgU1RJR01BOzs7OworMDNEQztHUkVFSyBMRVRURVIgRElHQU1NQTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgRElHQU1NQTs7OzsKKzAzREU7R1JFRUsgTEVUVEVSIEtPUFBBO0x1OzA7TDs7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBLT1BQQTs7OzsKKzAzRTA7R1JFRUsgTEVUVEVSIFNBTVBJO0x1OzA7TDs7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBTQU1QSTs7OzsKKzAzRTI7Q09QVElDIENBUElUQUwgTEVUVEVSIFNIRUk7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIFNIRUk7OzswM0UzOworMDNFMztDT1BUSUMgU01BTEwgTEVUVEVSIFNIRUk7TGw7MDtMOzs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBTSEVJOzswM0UyOzswM0UyCiswM0U0O0NPUFRJQyBDQVBJVEFMIExFVFRFUiBGRUk7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIEZFSTs7OzAzRTU7CiswM0U1O0NPUFRJQyBTTUFMTCBMRVRURVIgRkVJO0xsOzA7TDs7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgRkVJOzswM0U0OzswM0U0CiswM0U2O0NPUFRJQyBDQVBJVEFMIExFVFRFUiBLSEVJO0x1OzA7TDs7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBLSEVJOzs7MDNFNzsKKzAzRTc7Q09QVElDIFNNQUxMIExFVFRFUiBLSEVJO0xsOzA7TDs7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgS0hFSTs7MDNFNjs7MDNFNgorMDNFODtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgSE9SSTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgSE9SSTs7OzAzRTk7CiswM0U5O0NPUFRJQyBTTUFMTCBMRVRURVIgSE9SSTtMbDswO0w7Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIEhPUkk7OzAzRTg7OzAzRTgKKzAzRUE7Q09QVElDIENBUElUQUwgTEVUVEVSIEdBTkdJQTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgR0FOR0lBOzs7MDNFQjsKKzAzRUI7Q09QVElDIFNNQUxMIExFVFRFUiBHQU5HSUE7TGw7MDtMOzs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBHQU5HSUE7OzAzRUE7OzAzRUEKKzAzRUM7Q09QVElDIENBUElUQUwgTEVUVEVSIFNISU1BO0x1OzA7TDs7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBTSElNQTs7OzAzRUQ7CiswM0VEO0NPUFRJQyBTTUFMTCBMRVRURVIgU0hJTUE7TGw7MDtMOzs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBTSElNQTs7MDNFQzs7MDNFQworMDNFRTtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgREVJO0x1OzA7TDs7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBERUk7OzswM0VGOworMDNFRjtDT1BUSUMgU01BTEwgTEVUVEVSIERFSTtMbDswO0w7Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIERFSTs7MDNFRTs7MDNFRQorMDNGMDtHUkVFSyBLQVBQQSBTWU1CT0w7TGw7MDtMOzs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBTQ1JJUFQgS0FQUEE7OzAzOUE7OzAzOUEKKzAzRjE7R1JFRUsgUkhPIFNZTUJPTDtMbDswO0w7Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIFRBSUxFRCBSSE87OzAzQTE7OzAzQTEKKzAzRjI7R1JFRUsgTFVOQVRFIFNJR01BIFNZTUJPTDtMbDswO0w7Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIExVTkFURSBTSUdNQTs7MDNBMzs7MDNBMworMDNGMztHUkVFSyBMRVRURVIgWU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswNDAxO0NZUklMTElDIENBUElUQUwgTEVUVEVSIElPO0x1OzA7TDswNDE1IDAzMDg7Ozs7Tjs7OzswNDUxOworMDQwMjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBESkU7THU7MDtMOzs7OztOOztTZXJib2Nyb2F0aWFuOzswNDUyOworMDQwMztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBHSkU7THU7MDtMOzA0MTMgMDMwMTs7OztOOzs7OzA0NTM7CiswNDA0O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFVLUkFJTklBTiBJRTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRTs7OzA0NTQ7CiswNDA1O0NZUklMTElDIENBUElUQUwgTEVUVEVSIERaRTtMdTswO0w7Ozs7O047Ozs7MDQ1NTsKKzA0MDY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQllFTE9SVVNTSUFOLVVLUkFJTklBTiBJO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJOzs7MDQ1NjsKKzA0MDc7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWUk7THU7MDtMOzA0MDYgMDMwODs7OztOOztVa3JhaW5pYW47OzA0NTc7CiswNDA4O0NZUklMTElDIENBUElUQUwgTEVUVEVSIEpFO0x1OzA7TDs7Ozs7Tjs7OzswNDU4OworMDQwOTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBMSkU7THU7MDtMOzs7OztOOzs7OzA0NTk7CiswNDBBO0NZUklMTElDIENBUElUQUwgTEVUVEVSIE5KRTtMdTswO0w7Ozs7O047Ozs7MDQ1QTsKKzA0MEI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVFNIRTtMdTswO0w7Ozs7O047O1NlcmJvY3JvYXRpYW47OzA0NUI7CiswNDBDO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtKRTtMdTswO0w7MDQxQSAwMzAxOzs7O047Ozs7MDQ1QzsKKzA0MEU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0hPUlQgVTtMdTswO0w7MDQyMyAwMzA2Ozs7O047O0J5ZWxvcnVzc2lhbjs7MDQ1RTsKKzA0MEY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRFpIRTtMdTswO0w7Ozs7O047Ozs7MDQ1RjsKKzA0MTA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQTtMdTswO0w7Ozs7O047Ozs7MDQzMDsKKzA0MTE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQkU7THU7MDtMOzs7OztOOzs7OzA0MzE7CiswNDEyO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFZFO0x1OzA7TDs7Ozs7Tjs7OzswNDMyOworMDQxMztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBHSEU7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEdFOzs7MDQzMzsKKzA0MTQ7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgREU7THU7MDtMOzs7OztOOzs7OzA0MzQ7CiswNDE1O0NZUklMTElDIENBUElUQUwgTEVUVEVSIElFO0x1OzA7TDs7Ozs7Tjs7OzswNDM1OworMDQxNjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBaSEU7THU7MDtMOzs7OztOOzs7OzA0MzY7CiswNDE3O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFpFO0x1OzA7TDs7Ozs7Tjs7OzswNDM3OworMDQxODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJSTs7OzA0Mzg7CiswNDE5O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNIT1JUIEk7THU7MDtMOzA0MTggMDMwNjs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNIT1JUIElJOzs7MDQzOTsKKzA0MUE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0E7THU7MDtMOzs7OztOOzs7OzA0M0E7CiswNDFCO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVMO0x1OzA7TDs7Ozs7Tjs7OzswNDNCOworMDQxQztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFTTtMdTswO0w7Ozs7O047Ozs7MDQzQzsKKzA0MUQ7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRU47THU7MDtMOzs7OztOOzs7OzA0M0Q7CiswNDFFO0NZUklMTElDIENBUElUQUwgTEVUVEVSIE87THU7MDtMOzs7OztOOzs7OzA0M0U7CiswNDFGO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFBFO0x1OzA7TDs7Ozs7Tjs7OzswNDNGOworMDQyMDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFUjtMdTswO0w7Ozs7O047Ozs7MDQ0MDsKKzA0MjE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRVM7THU7MDtMOzs7OztOOzs7OzA0NDE7CiswNDIyO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFRFO0x1OzA7TDs7Ozs7Tjs7OzswNDQyOworMDQyMztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBVO0x1OzA7TDs7Ozs7Tjs7OzswNDQzOworMDQyNDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFRjtMdTswO0w7Ozs7O047Ozs7MDQ0NDsKKzA0MjU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSEE7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtIQTs7OzA0NDU7CiswNDI2O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFRTRTtMdTswO0w7Ozs7O047Ozs7MDQ0NjsKKzA0Mjc7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQ0hFO0x1OzA7TDs7Ozs7Tjs7OzswNDQ3OworMDQyODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTSEE7THU7MDtMOzs7OztOOzs7OzA0NDg7CiswNDI5O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNIQ0hBO0x1OzA7TDs7Ozs7Tjs7OzswNDQ5OworMDQyQTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBIQVJEIFNJR047THU7MDtMOzs7OztOOzs7OzA0NEE7CiswNDJCO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFlFUlU7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFlFUkk7OzswNDRCOworMDQyQztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTT0ZUIFNJR047THU7MDtMOzs7OztOOzs7OzA0NEM7CiswNDJEO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEU7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFJFVkVSU0VEIEU7OzswNDREOworMDQyRTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBZVTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSVU7OzswNDRFOworMDQyRjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBZQTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSUE7OzswNDRGOworMDQzMDtDWVJJTExJQyBTTUFMTCBMRVRURVIgQTtMbDswO0w7Ozs7O047OzswNDEwOzswNDEwCiswNDMxO0NZUklMTElDIFNNQUxMIExFVFRFUiBCRTtMbDswO0w7Ozs7O047OzswNDExOzswNDExCiswNDMyO0NZUklMTElDIFNNQUxMIExFVFRFUiBWRTtMbDswO0w7Ozs7O047OzswNDEyOzswNDEyCiswNDMzO0NZUklMTElDIFNNQUxMIExFVFRFUiBHSEU7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBHRTs7MDQxMzs7MDQxMworMDQzNDtDWVJJTExJQyBTTUFMTCBMRVRURVIgREU7TGw7MDtMOzs7OztOOzs7MDQxNDs7MDQxNAorMDQzNTtDWVJJTExJQyBTTUFMTCBMRVRURVIgSUU7TGw7MDtMOzs7OztOOzs7MDQxNTs7MDQxNQorMDQzNjtDWVJJTExJQyBTTUFMTCBMRVRURVIgWkhFO0xsOzA7TDs7Ozs7Tjs7OzA0MTY7OzA0MTYKKzA0Mzc7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFpFO0xsOzA7TDs7Ozs7Tjs7OzA0MTc7OzA0MTcKKzA0Mzg7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEk7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBJSTs7MDQxODs7MDQxOAorMDQzOTtDWVJJTExJQyBTTUFMTCBMRVRURVIgU0hPUlQgSTtMbDswO0w7MDQzOCAwMzA2Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNIT1JUIElJOzswNDE5OzswNDE5CiswNDNBO0NZUklMTElDIFNNQUxMIExFVFRFUiBLQTtMbDswO0w7Ozs7O047OzswNDFBOzswNDFBCiswNDNCO0NZUklMTElDIFNNQUxMIExFVFRFUiBFTDtMbDswO0w7Ozs7O047OzswNDFCOzswNDFCCiswNDNDO0NZUklMTElDIFNNQUxMIExFVFRFUiBFTTtMbDswO0w7Ozs7O047OzswNDFDOzswNDFDCiswNDNEO0NZUklMTElDIFNNQUxMIExFVFRFUiBFTjtMbDswO0w7Ozs7O047OzswNDFEOzswNDFECiswNDNFO0NZUklMTElDIFNNQUxMIExFVFRFUiBPO0xsOzA7TDs7Ozs7Tjs7OzA0MUU7OzA0MUUKKzA0M0Y7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFBFO0xsOzA7TDs7Ozs7Tjs7OzA0MUY7OzA0MUYKKzA0NDA7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVSO0xsOzA7TDs7Ozs7Tjs7OzA0MjA7OzA0MjAKKzA0NDE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVTO0xsOzA7TDs7Ozs7Tjs7OzA0MjE7OzA0MjEKKzA0NDI7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFRFO0xsOzA7TDs7Ozs7Tjs7OzA0MjI7OzA0MjIKKzA0NDM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFU7TGw7MDtMOzs7OztOOzs7MDQyMzs7MDQyMworMDQ0NDtDWVJJTExJQyBTTUFMTCBMRVRURVIgRUY7TGw7MDtMOzs7OztOOzs7MDQyNDs7MDQyNAorMDQ0NTtDWVJJTExJQyBTTUFMTCBMRVRURVIgSEE7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBLSEE7OzA0MjU7OzA0MjUKKzA0NDY7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFRTRTtMbDswO0w7Ozs7O047OzswNDI2OzswNDI2CiswNDQ3O0NZUklMTElDIFNNQUxMIExFVFRFUiBDSEU7TGw7MDtMOzs7OztOOzs7MDQyNzs7MDQyNworMDQ0ODtDWVJJTExJQyBTTUFMTCBMRVRURVIgU0hBO0xsOzA7TDs7Ozs7Tjs7OzA0Mjg7OzA0MjgKKzA0NDk7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNIQ0hBO0xsOzA7TDs7Ozs7Tjs7OzA0Mjk7OzA0MjkKKzA0NEE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEhBUkQgU0lHTjtMbDswO0w7Ozs7O047OzswNDJBOzswNDJBCiswNDRCO0NZUklMTElDIFNNQUxMIExFVFRFUiBZRVJVO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgWUVSSTs7MDQyQjs7MDQyQgorMDQ0QztDWVJJTExJQyBTTUFMTCBMRVRURVIgU09GVCBTSUdOO0xsOzA7TDs7Ozs7Tjs7OzA0MkM7OzA0MkMKKzA0NEQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEU7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBSRVZFUlNFRCBFOzswNDJEOzswNDJECiswNDRFO0NZUklMTElDIFNNQUxMIExFVFRFUiBZVTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElVOzswNDJFOzswNDJFCiswNDRGO0NZUklMTElDIFNNQUxMIExFVFRFUiBZQTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElBOzswNDJGOzswNDJGCiswNDUxO0NZUklMTElDIFNNQUxMIExFVFRFUiBJTztMbDswO0w7MDQzNSAwMzA4Ozs7O047OzswNDAxOzswNDAxCiswNDUyO0NZUklMTElDIFNNQUxMIExFVFRFUiBESkU7TGw7MDtMOzs7OztOOztTZXJib2Nyb2F0aWFuOzA0MDI7OzA0MDIKKzA0NTM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEdKRTtMbDswO0w7MDQzMyAwMzAxOzs7O047OzswNDAzOzswNDAzCiswNDU0O0NZUklMTElDIFNNQUxMIExFVFRFUiBVS1JBSU5JQU4gSUU7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBFOzswNDA0OzswNDA0CiswNDU1O0NZUklMTElDIFNNQUxMIExFVFRFUiBEWkU7TGw7MDtMOzs7OztOOzs7MDQwNTs7MDQwNQorMDQ1NjtDWVJJTExJQyBTTUFMTCBMRVRURVIgQllFTE9SVVNTSUFOLVVLUkFJTklBTiBJO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgSTs7MDQwNjs7MDQwNgorMDQ1NztDWVJJTExJQyBTTUFMTCBMRVRURVIgWUk7TGw7MDtMOzA0NTYgMDMwODs7OztOOztVa3JhaW5pYW47MDQwNzs7MDQwNworMDQ1ODtDWVJJTExJQyBTTUFMTCBMRVRURVIgSkU7TGw7MDtMOzs7OztOOzs7MDQwODs7MDQwOAorMDQ1OTtDWVJJTExJQyBTTUFMTCBMRVRURVIgTEpFO0xsOzA7TDs7Ozs7Tjs7OzA0MDk7OzA0MDkKKzA0NUE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIE5KRTtMbDswO0w7Ozs7O047OzswNDBBOzswNDBBCiswNDVCO0NZUklMTElDIFNNQUxMIExFVFRFUiBUU0hFO0xsOzA7TDs7Ozs7Tjs7U2VyYm9jcm9hdGlhbjswNDBCOzswNDBCCiswNDVDO0NZUklMTElDIFNNQUxMIExFVFRFUiBLSkU7TGw7MDtMOzA0M0EgMDMwMTs7OztOOzs7MDQwQzs7MDQwQworMDQ1RTtDWVJJTExJQyBTTUFMTCBMRVRURVIgU0hPUlQgVTtMbDswO0w7MDQ0MyAwMzA2Ozs7O047O0J5ZWxvcnVzc2lhbjswNDBFOzswNDBFCiswNDVGO0NZUklMTElDIFNNQUxMIExFVFRFUiBEWkhFO0xsOzA7TDs7Ozs7Tjs7OzA0MEY7OzA0MEYKKzA0NjA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgT01FR0E7THU7MDtMOzs7OztOOzs7OzA0NjE7CiswNDYxO0NZUklMTElDIFNNQUxMIExFVFRFUiBPTUVHQTtMbDswO0w7Ozs7O047OzswNDYwOzswNDYwCiswNDYyO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFlBVDtMdTswO0w7Ozs7O047Ozs7MDQ2MzsKKzA0NjM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFlBVDtMbDswO0w7Ozs7O047OzswNDYyOzswNDYyCiswNDY0O0NZUklMTElDIENBUElUQUwgTEVUVEVSIElPVElGSUVEIEU7THU7MDtMOzs7OztOOzs7OzA0NjU7CiswNDY1O0NZUklMTElDIFNNQUxMIExFVFRFUiBJT1RJRklFRCBFO0xsOzA7TDs7Ozs7Tjs7OzA0NjQ7OzA0NjQKKzA0NjY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgTElUVExFIFlVUztMdTswO0w7Ozs7O047Ozs7MDQ2NzsKKzA0Njc7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIExJVFRMRSBZVVM7TGw7MDtMOzs7OztOOzs7MDQ2Njs7MDQ2NgorMDQ2ODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJT1RJRklFRCBMSVRUTEUgWVVTO0x1OzA7TDs7Ozs7Tjs7OzswNDY5OworMDQ2OTtDWVJJTExJQyBTTUFMTCBMRVRURVIgSU9USUZJRUQgTElUVExFIFlVUztMbDswO0w7Ozs7O047OzswNDY4OzswNDY4CiswNDZBO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEJJRyBZVVM7THU7MDtMOzs7OztOOzs7OzA0NkI7CiswNDZCO0NZUklMTElDIFNNQUxMIExFVFRFUiBCSUcgWVVTO0xsOzA7TDs7Ozs7Tjs7OzA0NkE7OzA0NkEKKzA0NkM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSU9USUZJRUQgQklHIFlVUztMdTswO0w7Ozs7O047Ozs7MDQ2RDsKKzA0NkQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElPVElGSUVEIEJJRyBZVVM7TGw7MDtMOzs7OztOOzs7MDQ2Qzs7MDQ2QworMDQ2RTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLU0k7THU7MDtMOzs7OztOOzs7OzA0NkY7CiswNDZGO0NZUklMTElDIFNNQUxMIExFVFRFUiBLU0k7TGw7MDtMOzs7OztOOzs7MDQ2RTs7MDQ2RQorMDQ3MDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBQU0k7THU7MDtMOzs7OztOOzs7OzA0NzE7CiswNDcxO0NZUklMTElDIFNNQUxMIExFVFRFUiBQU0k7TGw7MDtMOzs7OztOOzs7MDQ3MDs7MDQ3MAorMDQ3MjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBGSVRBO0x1OzA7TDs7Ozs7Tjs7OzswNDczOworMDQ3MztDWVJJTExJQyBTTUFMTCBMRVRURVIgRklUQTtMbDswO0w7Ozs7O047OzswNDcyOzswNDcyCiswNDc0O0NZUklMTElDIENBUElUQUwgTEVUVEVSIElaSElUU0E7THU7MDtMOzs7OztOOzs7OzA0NzU7CiswNDc1O0NZUklMTElDIFNNQUxMIExFVFRFUiBJWkhJVFNBO0xsOzA7TDs7Ozs7Tjs7OzA0NzQ7OzA0NzQKKzA0NzY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSVpISVRTQSBXSVRIIERPVUJMRSBHUkFWRSBBQ0NFTlQ7THU7MDtMOzA0NzQgMDMwRjs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIElaSElUU0EgRE9VQkxFIEdSQVZFOzs7MDQ3NzsKKzA0Nzc7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElaSElUU0EgV0lUSCBET1VCTEUgR1JBVkUgQUNDRU5UO0xsOzA7TDswNDc1IDAzMEY7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgSVpISVRTQSBET1VCTEUgR1JBVkU7OzA0NzY7OzA0NzYKKzA0Nzg7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVUs7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFVLIERJR1JBUEg7OzswNDc5OworMDQ3OTtDWVJJTExJQyBTTUFMTCBMRVRURVIgVUs7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBVSyBESUdSQVBIOzswNDc4OzswNDc4CiswNDdBO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFJPVU5EIE9NRUdBO0x1OzA7TDs7Ozs7Tjs7OzswNDdCOworMDQ3QjtDWVJJTExJQyBTTUFMTCBMRVRURVIgUk9VTkQgT01FR0E7TGw7MDtMOzs7OztOOzs7MDQ3QTs7MDQ3QQorMDQ3QztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFRJVExPO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBPTUVHQSBUSVRMTzs7OzA0N0Q7CiswNDdEO0NZUklMTElDIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFRJVExPO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgT01FR0EgVElUTE87OzA0N0M7OzA0N0MKKzA0N0U7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgT1Q7THU7MDtMOzs7OztOOzs7OzA0N0Y7CiswNDdGO0NZUklMTElDIFNNQUxMIExFVFRFUiBPVDtMbDswO0w7Ozs7O047OzswNDdFOzswNDdFCiswNDgwO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtPUFBBO0x1OzA7TDs7Ozs7Tjs7OzswNDgxOworMDQ4MTtDWVJJTExJQyBTTUFMTCBMRVRURVIgS09QUEE7TGw7MDtMOzs7OztOOzs7MDQ4MDs7MDQ4MAorMDQ4MjtDWVJJTExJQyBUSE9VU0FORFMgU0lHTjtTbzswO0w7Ozs7O047Ozs7OworMDQ4MztDT01CSU5JTkcgQ1lSSUxMSUMgVElUTE87TW47MjMwO09OOzs7OztOO0NZUklMTElDIE5PTi1TUEFDSU5HIFRJVExPOzs7OworMDQ4NDtDT01CSU5JTkcgQ1lSSUxMSUMgUEFMQVRBTElaQVRJT047TW47MjMwO09OOzs7OztOO0NZUklMTElDIE5PTi1TUEFDSU5HIFBBTEFUQUxJWkFUSU9OOzs7OworMDQ4NTtDT01CSU5JTkcgQ1lSSUxMSUMgREFTSUEgUE5FVU1BVEE7TW47MjMwO09OOzs7OztOO0NZUklMTElDIE5PTi1TUEFDSU5HIERBU0lBIFBORVVNQVRBOzs7OworMDQ4NjtDT01CSU5JTkcgQ1lSSUxMSUMgUFNJTEkgUE5FVU1BVEE7TW47MjMwO09OOzs7OztOO0NZUklMTElDIE5PTi1TUEFDSU5HIFBTSUxJIFBORVVNQVRBOzs7OworMDQ5MDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBHSEUgV0lUSCBVUFRVUk47THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEdFIFdJVEggVVBUVVJOOzs7MDQ5MTsKKzA0OTE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEdIRSBXSVRIIFVQVFVSTjtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEdFIFdJVEggVVBUVVJOOzswNDkwOzswNDkwCiswNDkyO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEdIRSBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgR0UgQkFSOzs7MDQ5MzsKKzA0OTM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEdIRSBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEdFIEJBUjs7MDQ5Mjs7MDQ5MgorMDQ5NDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBHSEUgV0lUSCBNSURETEUgSE9PSztMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgR0UgSE9PSzs7OzA0OTU7CiswNDk1O0NZUklMTElDIFNNQUxMIExFVFRFUiBHSEUgV0lUSCBNSURETEUgSE9PSztMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEdFIEhPT0s7OzA0OTQ7OzA0OTQKKzA0OTY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWkhFIFdJVEggREVTQ0VOREVSO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBaSEUgV0lUSCBSSUdIVCBERVNDRU5ERVI7OzswNDk3OworMDQ5NztDWVJJTExJQyBTTUFMTCBMRVRURVIgWkhFIFdJVEggREVTQ0VOREVSO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgWkhFIFdJVEggUklHSFQgREVTQ0VOREVSOzswNDk2OzswNDk2CiswNDk4O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFpFIFdJVEggREVTQ0VOREVSO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBaRSBDRURJTExBOzs7MDQ5OTsKKzA0OTk7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFpFIFdJVEggREVTQ0VOREVSO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgWkUgQ0VESUxMQTs7MDQ5ODs7MDQ5OAorMDQ5QTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLQSBXSVRIIERFU0NFTkRFUjtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0EgV0lUSCBSSUdIVCBERVNDRU5ERVI7OzswNDlCOworMDQ5QjtDWVJJTExJQyBTTUFMTCBMRVRURVIgS0EgV0lUSCBERVNDRU5ERVI7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBLQSBXSVRIIFJJR0hUIERFU0NFTkRFUjs7MDQ5QTs7MDQ5QQorMDQ5QztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLQSBXSVRIIFZFUlRJQ0FMIFNUUk9LRTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0EgVkVSVElDQUwgQkFSOzs7MDQ5RDsKKzA0OUQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtBIFdJVEggVkVSVElDQUwgU1RST0tFO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgS0EgVkVSVElDQUwgQkFSOzswNDlDOzswNDlDCiswNDlFO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtBIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLQSBCQVI7OzswNDlGOworMDQ5RjtDWVJJTExJQyBTTUFMTCBMRVRURVIgS0EgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBLQSBCQVI7OzA0OUU7OzA0OUUKKzA0QTA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQkFTSEtJUiBLQTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgUkVWRVJTRUQgR0UgS0E7OzswNEExOworMDRBMTtDWVJJTExJQyBTTUFMTCBMRVRURVIgQkFTSEtJUiBLQTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFJFVkVSU0VEIEdFIEtBOzswNEEwOzswNEEwCiswNEEyO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVOIFdJVEggREVTQ0VOREVSO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFTiBXSVRIIFJJR0hUIERFU0NFTkRFUjs7OzA0QTM7CiswNEEzO0NZUklMTElDIFNNQUxMIExFVFRFUiBFTiBXSVRIIERFU0NFTkRFUjtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVOIFdJVEggUklHSFQgREVTQ0VOREVSOzswNEEyOzswNEEyCiswNEE0O0NZUklMTElDIENBUElUQUwgTElHQVRVUkUgRU4gR0hFO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFTiBHRTs7OzA0QTU7CiswNEE1O0NZUklMTElDIFNNQUxMIExJR0FUVVJFIEVOIEdIRTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVOIEdFOzswNEE0OzswNEE0CiswNEE2O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFBFIFdJVEggTUlERExFIEhPT0s7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFBFIEhPT0s7QWJraGFzaWFuOzswNEE3OworMDRBNztDWVJJTExJQyBTTUFMTCBMRVRURVIgUEUgV0lUSCBNSURETEUgSE9PSztMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFBFIEhPT0s7QWJraGFzaWFuOzA0QTY7OzA0QTYKKzA0QTg7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQUJLSEFTSUFOIEhBO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBPIEhPT0s7OzswNEE5OworMDRBOTtDWVJJTExJQyBTTUFMTCBMRVRURVIgQUJLSEFTSUFOIEhBO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgTyBIT09LOzswNEE4OzswNEE4CiswNEFBO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVTIFdJVEggREVTQ0VOREVSO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFUyBDRURJTExBOzs7MDRBQjsKKzA0QUI7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVTIFdJVEggREVTQ0VOREVSO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgRVMgQ0VESUxMQTs7MDRBQTs7MDRBQQorMDRBQztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBURSBXSVRIIERFU0NFTkRFUjtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVEUgV0lUSCBSSUdIVCBERVNDRU5ERVI7OzswNEFEOworMDRBRDtDWVJJTExJQyBTTUFMTCBMRVRURVIgVEUgV0lUSCBERVNDRU5ERVI7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBURSBXSVRIIFJJR0hUIERFU0NFTkRFUjs7MDRBQzs7MDRBQworMDRBRTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTVFJBSUdIVCBVO0x1OzA7TDs7Ozs7Tjs7OzswNEFGOworMDRBRjtDWVJJTExJQyBTTUFMTCBMRVRURVIgU1RSQUlHSFQgVTtMbDswO0w7Ozs7O047OzswNEFFOzswNEFFCiswNEIwO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNUUkFJR0hUIFUgV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNUUkFJR0hUIFUgQkFSOzs7MDRCMTsKKzA0QjE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNUUkFJR0hUIFUgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBTVFJBSUdIVCBVIEJBUjs7MDRCMDs7MDRCMAorMDRCMjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBIQSBXSVRIIERFU0NFTkRFUjtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0hBIFdJVEggUklHSFQgREVTQ0VOREVSOzs7MDRCMzsKKzA0QjM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEhBIFdJVEggREVTQ0VOREVSO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgS0hBIFdJVEggUklHSFQgREVTQ0VOREVSOzswNEIyOzswNEIyCiswNEI0O0NZUklMTElDIENBUElUQUwgTElHQVRVUkUgVEUgVFNFO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBURSBUU0U7QWJraGFzaWFuOzswNEI1OworMDRCNTtDWVJJTExJQyBTTUFMTCBMSUdBVFVSRSBURSBUU0U7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBURSBUU0U7QWJraGFzaWFuOzA0QjQ7OzA0QjQKKzA0QjY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQ0hFIFdJVEggREVTQ0VOREVSO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBDSEUgV0lUSCBSSUdIVCBERVNDRU5ERVI7OzswNEI3OworMDRCNztDWVJJTExJQyBTTUFMTCBMRVRURVIgQ0hFIFdJVEggREVTQ0VOREVSO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgQ0hFIFdJVEggUklHSFQgREVTQ0VOREVSOzswNEI2OzswNEI2CiswNEI4O0NZUklMTElDIENBUElUQUwgTEVUVEVSIENIRSBXSVRIIFZFUlRJQ0FMIFNUUk9LRTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQ0hFIFZFUlRJQ0FMIEJBUjs7OzA0Qjk7CiswNEI5O0NZUklMTElDIFNNQUxMIExFVFRFUiBDSEUgV0lUSCBWRVJUSUNBTCBTVFJPS0U7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBDSEUgVkVSVElDQUwgQkFSOzswNEI4OzswNEI4CiswNEJBO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNISEE7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEg7OzswNEJCOworMDRCQjtDWVJJTExJQyBTTUFMTCBMRVRURVIgU0hIQTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEg7OzA0QkE7OzA0QkEKKzA0QkM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQUJLSEFTSUFOIENIRTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSUUgSE9PSzs7OzA0QkQ7CiswNEJEO0NZUklMTElDIFNNQUxMIExFVFRFUiBBQktIQVNJQU4gQ0hFO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgSUUgSE9PSzs7MDRCQzs7MDRCQworMDRCRTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBBQktIQVNJQU4gQ0hFIFdJVEggREVTQ0VOREVSO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJRSBIT09LIE9HT05FSzs7OzA0QkY7CiswNEJGO0NZUklMTElDIFNNQUxMIExFVFRFUiBBQktIQVNJQU4gQ0hFIFdJVEggREVTQ0VOREVSO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgSUUgSE9PSyBPR09ORUs7OzA0QkU7OzA0QkUKKzA0QzA7Q1lSSUxMSUMgTEVUVEVSIFBBTE9DSEtBO0xvOzA7TDs7Ozs7TjtDWVJJTExJQyBMRVRURVIgSTs7OzsKKzA0QzE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWkhFIFdJVEggQlJFVkU7THU7MDtMOzA0MTYgMDMwNjs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNIT1JUIFpIRTs7OzA0QzI7CiswNEMyO0NZUklMTElDIFNNQUxMIExFVFRFUiBaSEUgV0lUSCBCUkVWRTtMbDswO0w7MDQzNiAwMzA2Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNIT1JUIFpIRTs7MDRDMTs7MDRDMQorMDRDMztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLQSBXSVRIIEhPT0s7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtBIEhPT0s7OzswNEM0OworMDRDNDtDWVJJTExJQyBTTUFMTCBMRVRURVIgS0EgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgS0EgSE9PSzs7MDRDMzs7MDRDMworMDRDNztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFTiBXSVRIIEhPT0s7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVOIEhPT0s7OzswNEM4OworMDRDODtDWVJJTExJQyBTTUFMTCBMRVRURVIgRU4gV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgRU4gSE9PSzs7MDRDNzs7MDRDNworMDRDQjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLSEFLQVNTSUFOIENIRTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQ0hFIFdJVEggTEVGVCBERVNDRU5ERVI7OzswNENDOworMDRDQztDWVJJTExJQyBTTUFMTCBMRVRURVIgS0hBS0FTU0lBTiBDSEU7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBDSEUgV0lUSCBMRUZUIERFU0NFTkRFUjs7MDRDQjs7MDRDQgorMDREMDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBBIFdJVEggQlJFVkU7THU7MDtMOzA0MTAgMDMwNjs7OztOOzs7OzA0RDE7CiswNEQxO0NZUklMTElDIFNNQUxMIExFVFRFUiBBIFdJVEggQlJFVkU7TGw7MDtMOzA0MzAgMDMwNjs7OztOOzs7MDREMDs7MDREMAorMDREMjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBBIFdJVEggRElBRVJFU0lTO0x1OzA7TDswNDEwIDAzMDg7Ozs7Tjs7OzswNEQzOworMDREMztDWVJJTExJQyBTTUFMTCBMRVRURVIgQSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDQzMCAwMzA4Ozs7O047OzswNEQyOzswNEQyCiswNEQ0O0NZUklMTElDIENBUElUQUwgTElHQVRVUkUgQSBJRTtMdTswO0w7Ozs7O047Ozs7MDRENTsKKzA0RDU7Q1lSSUxMSUMgU01BTEwgTElHQVRVUkUgQSBJRTtMbDswO0w7Ozs7O047OzswNEQ0OzswNEQ0CiswNEQ2O0NZUklMTElDIENBUElUQUwgTEVUVEVSIElFIFdJVEggQlJFVkU7THU7MDtMOzA0MTUgMDMwNjs7OztOOzs7OzA0RDc7CiswNEQ3O0NZUklMTElDIFNNQUxMIExFVFRFUiBJRSBXSVRIIEJSRVZFO0xsOzA7TDswNDM1IDAzMDY7Ozs7Tjs7OzA0RDY7OzA0RDYKKzA0RDg7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0NIV0E7THU7MDtMOzs7OztOOzs7OzA0RDk7CiswNEQ5O0NZUklMTElDIFNNQUxMIExFVFRFUiBTQ0hXQTtMbDswO0w7Ozs7O047OzswNEQ4OzswNEQ4CiswNERBO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNDSFdBIFdJVEggRElBRVJFU0lTO0x1OzA7TDswNEQ4IDAzMDg7Ozs7Tjs7OzswNERCOworMDREQjtDWVJJTExJQyBTTUFMTCBMRVRURVIgU0NIV0EgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzA0RDkgMDMwODs7OztOOzs7MDREQTs7MDREQQorMDREQztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBaSEUgV0lUSCBESUFFUkVTSVM7THU7MDtMOzA0MTYgMDMwODs7OztOOzs7OzA0REQ7CiswNEREO0NZUklMTElDIFNNQUxMIExFVFRFUiBaSEUgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzA0MzYgMDMwODs7OztOOzs7MDREQzs7MDREQworMDRERTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBaRSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDQxNyAwMzA4Ozs7O047Ozs7MDRERjsKKzA0REY7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFpFIFdJVEggRElBRVJFU0lTO0xsOzA7TDswNDM3IDAzMDg7Ozs7Tjs7OzA0REU7OzA0REUKKzA0RTA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQUJLSEFTSUFOIERaRTtMdTswO0w7Ozs7O047Ozs7MDRFMTsKKzA0RTE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEFCS0hBU0lBTiBEWkU7TGw7MDtMOzs7OztOOzs7MDRFMDs7MDRFMAorMDRFMjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJIFdJVEggTUFDUk9OO0x1OzA7TDswNDE4IDAzMDQ7Ozs7Tjs7OzswNEUzOworMDRFMztDWVJJTExJQyBTTUFMTCBMRVRURVIgSSBXSVRIIE1BQ1JPTjtMbDswO0w7MDQzOCAwMzA0Ozs7O047OzswNEUyOzswNEUyCiswNEU0O0NZUklMTElDIENBUElUQUwgTEVUVEVSIEkgV0lUSCBESUFFUkVTSVM7THU7MDtMOzA0MTggMDMwODs7OztOOzs7OzA0RTU7CiswNEU1O0NZUklMTElDIFNNQUxMIExFVFRFUiBJIFdJVEggRElBRVJFU0lTO0xsOzA7TDswNDM4IDAzMDg7Ozs7Tjs7OzA0RTQ7OzA0RTQKKzA0RTY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgTyBXSVRIIERJQUVSRVNJUztMdTswO0w7MDQxRSAwMzA4Ozs7O047Ozs7MDRFNzsKKzA0RTc7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIE8gV0lUSCBESUFFUkVTSVM7TGw7MDtMOzA0M0UgMDMwODs7OztOOzs7MDRFNjs7MDRFNgorMDRFODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBCQVJSRUQgTztMdTswO0w7Ozs7O047Ozs7MDRFOTsKKzA0RTk7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEJBUlJFRCBPO0xsOzA7TDs7Ozs7Tjs7OzA0RTg7OzA0RTgKKzA0RUE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQkFSUkVEIE8gV0lUSCBESUFFUkVTSVM7THU7MDtMOzA0RTggMDMwODs7OztOOzs7OzA0RUI7CiswNEVCO0NZUklMTElDIFNNQUxMIExFVFRFUiBCQVJSRUQgTyBXSVRIIERJQUVSRVNJUztMbDswO0w7MDRFOSAwMzA4Ozs7O047OzswNEVBOzswNEVBCiswNEVFO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFUgV0lUSCBNQUNST047THU7MDtMOzA0MjMgMDMwNDs7OztOOzs7OzA0RUY7CiswNEVGO0NZUklMTElDIFNNQUxMIExFVFRFUiBVIFdJVEggTUFDUk9OO0xsOzA7TDswNDQzIDAzMDQ7Ozs7Tjs7OzA0RUU7OzA0RUUKKzA0RjA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDQyMyAwMzA4Ozs7O047Ozs7MDRGMTsKKzA0RjE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzA0NDMgMDMwODs7OztOOzs7MDRGMDs7MDRGMAorMDRGMjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBVIFdJVEggRE9VQkxFIEFDVVRFO0x1OzA7TDswNDIzIDAzMEI7Ozs7Tjs7OzswNEYzOworMDRGMztDWVJJTExJQyBTTUFMTCBMRVRURVIgVSBXSVRIIERPVUJMRSBBQ1VURTtMbDswO0w7MDQ0MyAwMzBCOzs7O047OzswNEYyOzswNEYyCiswNEY0O0NZUklMTElDIENBUElUQUwgTEVUVEVSIENIRSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDQyNyAwMzA4Ozs7O047Ozs7MDRGNTsKKzA0RjU7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIENIRSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDQ0NyAwMzA4Ozs7O047OzswNEY0OzswNEY0CiswNEY4O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFlFUlUgV0lUSCBESUFFUkVTSVM7THU7MDtMOzA0MkIgMDMwODs7OztOOzs7OzA0Rjk7CiswNEY5O0NZUklMTElDIFNNQUxMIExFVFRFUiBZRVJVIFdJVEggRElBRVJFU0lTO0xsOzA7TDswNDRCIDAzMDg7Ozs7Tjs7OzA0Rjg7OzA0RjgKKzA1MzE7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgQVlCO0x1OzA7TDs7Ozs7Tjs7OzswNTYxOworMDUzMjtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBCRU47THU7MDtMOzs7OztOOzs7OzA1NjI7CiswNTMzO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIEdJTTtMdTswO0w7Ozs7O047Ozs7MDU2MzsKKzA1MzQ7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgREE7THU7MDtMOzs7OztOOzs7OzA1NjQ7CiswNTM1O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIEVDSDtMdTswO0w7Ozs7O047Ozs7MDU2NTsKKzA1MzY7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgWkE7THU7MDtMOzs7OztOOzs7OzA1NjY7CiswNTM3O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIEVIO0x1OzA7TDs7Ozs7Tjs7OzswNTY3OworMDUzODtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBFVDtMdTswO0w7Ozs7O047Ozs7MDU2ODsKKzA1Mzk7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgVE87THU7MDtMOzs7OztOOzs7OzA1Njk7CiswNTNBO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFpIRTtMdTswO0w7Ozs7O047Ozs7MDU2QTsKKzA1M0I7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgSU5JO0x1OzA7TDs7Ozs7Tjs7OzswNTZCOworMDUzQztBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBMSVdOO0x1OzA7TDs7Ozs7Tjs7OzswNTZDOworMDUzRDtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBYRUg7THU7MDtMOzs7OztOOzs7OzA1NkQ7CiswNTNFO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIENBO0x1OzA7TDs7Ozs7Tjs7OzswNTZFOworMDUzRjtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBLRU47THU7MDtMOzs7OztOOzs7OzA1NkY7CiswNTQwO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIEhPO0x1OzA7TDs7Ozs7Tjs7OzswNTcwOworMDU0MTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBKQTtMdTswO0w7Ozs7O047Ozs7MDU3MTsKKzA1NDI7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgR0hBRDtMdTswO0w7Ozs7O047QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgTEFEOzs7MDU3MjsKKzA1NDM7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgQ0hFSDtMdTswO0w7Ozs7O047Ozs7MDU3MzsKKzA1NDQ7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgTUVOO0x1OzA7TDs7Ozs7Tjs7OzswNTc0OworMDU0NTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBZSTtMdTswO0w7Ozs7O047Ozs7MDU3NTsKKzA1NDY7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgTk9XO0x1OzA7TDs7Ozs7Tjs7OzswNTc2OworMDU0NztBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBTSEE7THU7MDtMOzs7OztOOzs7OzA1Nzc7CiswNTQ4O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFZPO0x1OzA7TDs7Ozs7Tjs7OzswNTc4OworMDU0OTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBDSEE7THU7MDtMOzs7OztOOzs7OzA1Nzk7CiswNTRBO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFBFSDtMdTswO0w7Ozs7O047Ozs7MDU3QTsKKzA1NEI7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgSkhFSDtMdTswO0w7Ozs7O047Ozs7MDU3QjsKKzA1NEM7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgUkE7THU7MDtMOzs7OztOOzs7OzA1N0M7CiswNTREO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFNFSDtMdTswO0w7Ozs7O047Ozs7MDU3RDsKKzA1NEU7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgVkVXO0x1OzA7TDs7Ozs7Tjs7OzswNTdFOworMDU0RjtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBUSVdOO0x1OzA7TDs7Ozs7Tjs7OzswNTdGOworMDU1MDtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBSRUg7THU7MDtMOzs7OztOOzs7OzA1ODA7CiswNTUxO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIENPO0x1OzA7TDs7Ozs7Tjs7OzswNTgxOworMDU1MjtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBZSVdOO0x1OzA7TDs7Ozs7Tjs7OzswNTgyOworMDU1MztBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBQSVdSO0x1OzA7TDs7Ozs7Tjs7OzswNTgzOworMDU1NDtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBLRUg7THU7MDtMOzs7OztOOzs7OzA1ODQ7CiswNTU1O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIE9IO0x1OzA7TDs7Ozs7Tjs7OzswNTg1OworMDU1NjtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBGRUg7THU7MDtMOzs7OztOOzs7OzA1ODY7CiswNTU5O0FSTUVOSUFOIE1PRElGSUVSIExFVFRFUiBMRUZUIEhBTEYgUklORztMbTswO0w7Ozs7O047Ozs7OworMDU1QTtBUk1FTklBTiBBUE9TVFJPUEhFO1BvOzA7TDs7Ozs7TjtBUk1FTklBTiBNT0RJRklFUiBMRVRURVIgUklHSFQgSEFMRiBSSU5HOzs7OworMDU1QjtBUk1FTklBTiBFTVBIQVNJUyBNQVJLO1BvOzA7TDs7Ozs7Tjs7Ozs7CiswNTVDO0FSTUVOSUFOIEVYQ0xBTUFUSU9OIE1BUks7UG87MDtMOzs7OztOOzs7OzsKKzA1NUQ7QVJNRU5JQU4gQ09NTUE7UG87MDtMOzs7OztOOzs7OzsKKzA1NUU7QVJNRU5JQU4gUVVFU1RJT04gTUFSSztQbzswO0w7Ozs7O047Ozs7OworMDU1RjtBUk1FTklBTiBBQkJSRVZJQVRJT04gTUFSSztQbzswO0w7Ozs7O047Ozs7OworMDU2MTtBUk1FTklBTiBTTUFMTCBMRVRURVIgQVlCO0xsOzA7TDs7Ozs7Tjs7OzA1MzE7OzA1MzEKKzA1NjI7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEJFTjtMbDswO0w7Ozs7O047OzswNTMyOzswNTMyCiswNTYzO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBHSU07TGw7MDtMOzs7OztOOzs7MDUzMzs7MDUzMworMDU2NDtBUk1FTklBTiBTTUFMTCBMRVRURVIgREE7TGw7MDtMOzs7OztOOzs7MDUzNDs7MDUzNAorMDU2NTtBUk1FTklBTiBTTUFMTCBMRVRURVIgRUNIO0xsOzA7TDs7Ozs7Tjs7OzA1MzU7OzA1MzUKKzA1NjY7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFpBO0xsOzA7TDs7Ozs7Tjs7OzA1MzY7OzA1MzYKKzA1Njc7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEVIO0xsOzA7TDs7Ozs7Tjs7OzA1Mzc7OzA1MzcKKzA1Njg7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEVUO0xsOzA7TDs7Ozs7Tjs7OzA1Mzg7OzA1MzgKKzA1Njk7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFRPO0xsOzA7TDs7Ozs7Tjs7OzA1Mzk7OzA1MzkKKzA1NkE7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFpIRTtMbDswO0w7Ozs7O047OzswNTNBOzswNTNBCiswNTZCO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBJTkk7TGw7MDtMOzs7OztOOzs7MDUzQjs7MDUzQgorMDU2QztBUk1FTklBTiBTTUFMTCBMRVRURVIgTElXTjtMbDswO0w7Ozs7O047OzswNTNDOzswNTNDCiswNTZEO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBYRUg7TGw7MDtMOzs7OztOOzs7MDUzRDs7MDUzRAorMDU2RTtBUk1FTklBTiBTTUFMTCBMRVRURVIgQ0E7TGw7MDtMOzs7OztOOzs7MDUzRTs7MDUzRQorMDU2RjtBUk1FTklBTiBTTUFMTCBMRVRURVIgS0VOO0xsOzA7TDs7Ozs7Tjs7OzA1M0Y7OzA1M0YKKzA1NzA7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEhPO0xsOzA7TDs7Ozs7Tjs7OzA1NDA7OzA1NDAKKzA1NzE7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEpBO0xsOzA7TDs7Ozs7Tjs7OzA1NDE7OzA1NDEKKzA1NzI7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEdIQUQ7TGw7MDtMOzs7OztOO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBMQUQ7OzA1NDI7OzA1NDIKKzA1NzM7QVJNRU5JQU4gU01BTEwgTEVUVEVSIENIRUg7TGw7MDtMOzs7OztOOzs7MDU0Mzs7MDU0MworMDU3NDtBUk1FTklBTiBTTUFMTCBMRVRURVIgTUVOO0xsOzA7TDs7Ozs7Tjs7OzA1NDQ7OzA1NDQKKzA1NzU7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFlJO0xsOzA7TDs7Ozs7Tjs7OzA1NDU7OzA1NDUKKzA1NzY7QVJNRU5JQU4gU01BTEwgTEVUVEVSIE5PVztMbDswO0w7Ozs7O047OzswNTQ2OzswNTQ2CiswNTc3O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBTSEE7TGw7MDtMOzs7OztOOzs7MDU0Nzs7MDU0NworMDU3ODtBUk1FTklBTiBTTUFMTCBMRVRURVIgVk87TGw7MDtMOzs7OztOOzs7MDU0ODs7MDU0OAorMDU3OTtBUk1FTklBTiBTTUFMTCBMRVRURVIgQ0hBO0xsOzA7TDs7Ozs7Tjs7OzA1NDk7OzA1NDkKKzA1N0E7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFBFSDtMbDswO0w7Ozs7O047OzswNTRBOzswNTRBCiswNTdCO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBKSEVIO0xsOzA7TDs7Ozs7Tjs7OzA1NEI7OzA1NEIKKzA1N0M7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFJBO0xsOzA7TDs7Ozs7Tjs7OzA1NEM7OzA1NEMKKzA1N0Q7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFNFSDtMbDswO0w7Ozs7O047OzswNTREOzswNTRECiswNTdFO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBWRVc7TGw7MDtMOzs7OztOOzs7MDU0RTs7MDU0RQorMDU3RjtBUk1FTklBTiBTTUFMTCBMRVRURVIgVElXTjtMbDswO0w7Ozs7O047OzswNTRGOzswNTRGCiswNTgwO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBSRUg7TGw7MDtMOzs7OztOOzs7MDU1MDs7MDU1MAorMDU4MTtBUk1FTklBTiBTTUFMTCBMRVRURVIgQ087TGw7MDtMOzs7OztOOzs7MDU1MTs7MDU1MQorMDU4MjtBUk1FTklBTiBTTUFMTCBMRVRURVIgWUlXTjtMbDswO0w7Ozs7O047OzswNTUyOzswNTUyCiswNTgzO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBQSVdSO0xsOzA7TDs7Ozs7Tjs7OzA1NTM7OzA1NTMKKzA1ODQ7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEtFSDtMbDswO0w7Ozs7O047OzswNTU0OzswNTU0CiswNTg1O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBPSDtMbDswO0w7Ozs7O047OzswNTU1OzswNTU1CiswNTg2O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBGRUg7TGw7MDtMOzs7OztOOzs7MDU1Njs7MDU1NgorMDU4NztBUk1FTklBTiBTTUFMTCBMSUdBVFVSRSBFQ0ggWUlXTjtMbDswO0w7PGNvbXBhdD4gMDU2NSAwNTgyOzs7O047Ozs7OworMDU4OTtBUk1FTklBTiBGVUxMIFNUT1A7UG87MDtMOzs7OztOO0FSTUVOSUFOIFBFUklPRDs7OzsKKzA1OTE7SEVCUkVXIEFDQ0VOVCBFVE5BSFRBO01uOzIyMDtPTjs7Ozs7Tjs7Ozs7CiswNTkyO0hFQlJFVyBBQ0NFTlQgU0VHT0w7TW47MjMwO09OOzs7OztOOzs7OzsKKzA1OTM7SEVCUkVXIEFDQ0VOVCBTSEFMU0hFTEVUO01uOzIzMDtPTjs7Ozs7Tjs7Ozs7CiswNTk0O0hFQlJFVyBBQ0NFTlQgWkFRRUYgUUFUQU47TW47MjMwO09OOzs7OztOOzs7OzsKKzA1OTU7SEVCUkVXIEFDQ0VOVCBaQVFFRiBHQURPTDtNbjsyMzA7T047Ozs7O047Ozs7OworMDU5NjtIRUJSRVcgQUNDRU5UIFRJUEVIQTtNbjsyMjA7T047Ozs7O047Ozs7OworMDU5NztIRUJSRVcgQUNDRU5UIFJFVklBO01uOzIzMDtPTjs7Ozs7Tjs7Ozs7CiswNTk4O0hFQlJFVyBBQ0NFTlQgWkFSUUE7TW47MjMwO09OOzs7OztOOzs7OzsKKzA1OTk7SEVCUkVXIEFDQ0VOVCBQQVNIVEE7TW47MjMwO09OOzs7OztOOzs7OzsKKzA1OUE7SEVCUkVXIEFDQ0VOVCBZRVRJVjtNbjsyMjI7T047Ozs7O047Ozs7OworMDU5QjtIRUJSRVcgQUNDRU5UIFRFVklSO01uOzIyMDtPTjs7Ozs7Tjs7Ozs7CiswNTlDO0hFQlJFVyBBQ0NFTlQgR0VSRVNIO01uOzIzMDtPTjs7Ozs7Tjs7Ozs7CiswNTlEO0hFQlJFVyBBQ0NFTlQgR0VSRVNIIE1VUURBTTtNbjsyMzA7T047Ozs7O047Ozs7OworMDU5RTtIRUJSRVcgQUNDRU5UIEdFUlNIQVlJTTtNbjsyMzA7T047Ozs7O047Ozs7OworMDU5RjtIRUJSRVcgQUNDRU5UIFFBUk5FWSBQQVJBO01uOzIzMDtPTjs7Ozs7Tjs7Ozs7CiswNUEwO0hFQlJFVyBBQ0NFTlQgVEVMSVNIQSBHRURPTEE7TW47MjMwO09OOzs7OztOOzs7OzsKKzA1QTE7SEVCUkVXIEFDQ0VOVCBQQVpFUjtNbjsyMzA7T047Ozs7O047Ozs7OworMDVBMztIRUJSRVcgQUNDRU5UIE1VTkFIO01uOzIyMDtPTjs7Ozs7Tjs7Ozs7CiswNUE0O0hFQlJFVyBBQ0NFTlQgTUFIQVBBS0g7TW47MjIwO09OOzs7OztOOzs7OzsKKzA1QTU7SEVCUkVXIEFDQ0VOVCBNRVJLSEE7TW47MjIwO09OOzs7OztOOzs7OzsKKzA1QTY7SEVCUkVXIEFDQ0VOVCBNRVJLSEEgS0VGVUxBO01uOzIyMDtPTjs7Ozs7Tjs7Ozs7CiswNUE3O0hFQlJFVyBBQ0NFTlQgREFSR0E7TW47MjIwO09OOzs7OztOOzs7OzsKKzA1QTg7SEVCUkVXIEFDQ0VOVCBRQURNQTtNbjsyMzA7T047Ozs7O047Ozs7OworMDVBOTtIRUJSRVcgQUNDRU5UIFRFTElTSEEgUUVUQU5BO01uOzIzMDtPTjs7Ozs7Tjs7Ozs7CiswNUFBO0hFQlJFVyBBQ0NFTlQgWUVSQUggQkVOIFlPTU87TW47MjIwO09OOzs7OztOOzs7OzsKKzA1QUI7SEVCUkVXIEFDQ0VOVCBPTEU7TW47MjMwO09OOzs7OztOOzs7OzsKKzA1QUM7SEVCUkVXIEFDQ0VOVCBJTFVZO01uOzIzMDtPTjs7Ozs7Tjs7Ozs7CiswNUFEO0hFQlJFVyBBQ0NFTlQgREVISTtNbjsyMjI7T047Ozs7O047Ozs7OworMDVBRTtIRUJSRVcgQUNDRU5UIFpJTk9SO01uOzIzMDtPTjs7Ozs7Tjs7Ozs7CiswNUFGO0hFQlJFVyBNQVJLIE1BU09SQSBDSVJDTEU7TW47MjMwO09OOzs7OztOOzs7OzsKKzA1QjA7SEVCUkVXIFBPSU5UIFNIRVZBO01uOzEwO09OOzs7OztOOzs7OzsKKzA1QjE7SEVCUkVXIFBPSU5UIEhBVEFGIFNFR09MO01uOzExO09OOzs7OztOOzs7OzsKKzA1QjI7SEVCUkVXIFBPSU5UIEhBVEFGIFBBVEFIO01uOzEyO09OOzs7OztOOzs7OzsKKzA1QjM7SEVCUkVXIFBPSU5UIEhBVEFGIFFBTUFUUztNbjsxMztPTjs7Ozs7Tjs7Ozs7CiswNUI0O0hFQlJFVyBQT0lOVCBISVJJUTtNbjsxNDtPTjs7Ozs7Tjs7Ozs7CiswNUI1O0hFQlJFVyBQT0lOVCBUU0VSRTtNbjsxNTtPTjs7Ozs7Tjs7Ozs7CiswNUI2O0hFQlJFVyBQT0lOVCBTRUdPTDtNbjsxNjtPTjs7Ozs7Tjs7Ozs7CiswNUI3O0hFQlJFVyBQT0lOVCBQQVRBSDtNbjsxNztPTjs7Ozs7Tjs7Ozs7CiswNUI4O0hFQlJFVyBQT0lOVCBRQU1BVFM7TW47MTg7T047Ozs7O047Ozs7OworMDVCOTtIRUJSRVcgUE9JTlQgSE9MQU07TW47MTk7T047Ozs7O047Ozs7OworMDVCQjtIRUJSRVcgUE9JTlQgUVVCVVRTO01uOzIwO09OOzs7OztOOzs7OzsKKzA1QkM7SEVCUkVXIFBPSU5UIERBR0VTSCBPUiBNQVBJUTtNbjsyMTtPTjs7Ozs7TjtIRUJSRVcgUE9JTlQgREFHRVNIOzs7OworMDVCRDtIRUJSRVcgUE9JTlQgTUVURUc7TW47MjI7T047Ozs7O047Ozs7OworMDVCRTtIRUJSRVcgUFVOQ1RVQVRJT04gTUFRQUY7UG87MDtSOzs7OztOOzs7OzsKKzA1QkY7SEVCUkVXIFBPSU5UIFJBRkU7TW47MjM7T047Ozs7O047Ozs7OworMDVDMDtIRUJSRVcgUFVOQ1RVQVRJT04gUEFTRVE7UG87MDtSOzs7OztOO0hFQlJFVyBQT0lOVCBQQVNFUTs7OzsKKzA1QzE7SEVCUkVXIFBPSU5UIFNISU4gRE9UO01uOzI0O09OOzs7OztOOzs7OzsKKzA1QzI7SEVCUkVXIFBPSU5UIFNJTiBET1Q7TW47MjU7T047Ozs7O047Ozs7OworMDVDMztIRUJSRVcgUFVOQ1RVQVRJT04gU09GIFBBU1VRO1BvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUM0O0hFQlJFVyBNQVJLIFVQUEVSIERPVDtNbjsyMzA7T047Ozs7O047Ozs7OworMDVEMDtIRUJSRVcgTEVUVEVSIEFMRUY7TG87MDtSOzs7OztOOzs7OzsKKzA1RDE7SEVCUkVXIExFVFRFUiBCRVQ7TG87MDtSOzs7OztOOzs7OzsKKzA1RDI7SEVCUkVXIExFVFRFUiBHSU1FTDtMbzswO1I7Ozs7O047Ozs7OworMDVEMztIRUJSRVcgTEVUVEVSIERBTEVUO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUQ0O0hFQlJFVyBMRVRURVIgSEU7TG87MDtSOzs7OztOOzs7OzsKKzA1RDU7SEVCUkVXIExFVFRFUiBWQVY7TG87MDtSOzs7OztOOzs7OzsKKzA1RDY7SEVCUkVXIExFVFRFUiBaQVlJTjtMbzswO1I7Ozs7O047Ozs7OworMDVENztIRUJSRVcgTEVUVEVSIEhFVDtMbzswO1I7Ozs7O047Ozs7OworMDVEODtIRUJSRVcgTEVUVEVSIFRFVDtMbzswO1I7Ozs7O047Ozs7OworMDVEOTtIRUJSRVcgTEVUVEVSIFlPRDtMbzswO1I7Ozs7O047Ozs7OworMDVEQTtIRUJSRVcgTEVUVEVSIEZJTkFMIEtBRjtMbzswO1I7Ozs7O047Ozs7OworMDVEQjtIRUJSRVcgTEVUVEVSIEtBRjtMbzswO1I7Ozs7O047Ozs7OworMDVEQztIRUJSRVcgTEVUVEVSIExBTUVEO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUREO0hFQlJFVyBMRVRURVIgRklOQUwgTUVNO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNURFO0hFQlJFVyBMRVRURVIgTUVNO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNURGO0hFQlJFVyBMRVRURVIgRklOQUwgTlVOO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUUwO0hFQlJFVyBMRVRURVIgTlVOO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUUxO0hFQlJFVyBMRVRURVIgU0FNRUtIO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUUyO0hFQlJFVyBMRVRURVIgQVlJTjtMbzswO1I7Ozs7O047Ozs7OworMDVFMztIRUJSRVcgTEVUVEVSIEZJTkFMIFBFO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUU0O0hFQlJFVyBMRVRURVIgUEU7TG87MDtSOzs7OztOOzs7OzsKKzA1RTU7SEVCUkVXIExFVFRFUiBGSU5BTCBUU0FESTtMbzswO1I7Ozs7O047Ozs7OworMDVFNjtIRUJSRVcgTEVUVEVSIFRTQURJO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUU3O0hFQlJFVyBMRVRURVIgUU9GO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUU4O0hFQlJFVyBMRVRURVIgUkVTSDtMbzswO1I7Ozs7O047Ozs7OworMDVFOTtIRUJSRVcgTEVUVEVSIFNISU47TG87MDtSOzs7OztOOzs7OzsKKzA1RUE7SEVCUkVXIExFVFRFUiBUQVY7TG87MDtSOzs7OztOOzs7OzsKKzA1RjA7SEVCUkVXIExJR0FUVVJFIFlJRERJU0ggRE9VQkxFIFZBVjtMbzswO1I7Ozs7O047SEVCUkVXIExFVFRFUiBET1VCTEUgVkFWOzs7OworMDVGMTtIRUJSRVcgTElHQVRVUkUgWUlERElTSCBWQVYgWU9EO0xvOzA7Ujs7Ozs7TjtIRUJSRVcgTEVUVEVSIFZBViBZT0Q7Ozs7CiswNUYyO0hFQlJFVyBMSUdBVFVSRSBZSURESVNIIERPVUJMRSBZT0Q7TG87MDtSOzs7OztOO0hFQlJFVyBMRVRURVIgRE9VQkxFIFlPRDs7OzsKKzA1RjM7SEVCUkVXIFBVTkNUVUFUSU9OIEdFUkVTSDtQbzswO1I7Ozs7O047Ozs7OworMDVGNDtIRUJSRVcgUFVOQ1RVQVRJT04gR0VSU0hBWUlNO1BvOzA7Ujs7Ozs7Tjs7Ozs7CiswNjBDO0FSQUJJQyBDT01NQTtQbzswO0NTOzs7OztOOzs7OzsKKzA2MUI7QVJBQklDIFNFTUlDT0xPTjtQbzswO1I7Ozs7O047Ozs7OworMDYxRjtBUkFCSUMgUVVFU1RJT04gTUFSSztQbzswO1I7Ozs7O047Ozs7OworMDYyMTtBUkFCSUMgTEVUVEVSIEhBTVpBO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBTVpBSDs7OzsKKzA2MjI7QVJBQklDIExFVFRFUiBBTEVGIFdJVEggTUFEREEgQUJPVkU7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgTUFEREFIIE9OIEFMRUY7Ozs7CiswNjIzO0FSQUJJQyBMRVRURVIgQUxFRiBXSVRIIEhBTVpBIEFCT1ZFO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBTVpBSCBPTiBBTEVGOzs7OworMDYyNDtBUkFCSUMgTEVUVEVSIFdBVyBXSVRIIEhBTVpBIEFCT1ZFO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBTVpBSCBPTiBXQVc7Ozs7CiswNjI1O0FSQUJJQyBMRVRURVIgQUxFRiBXSVRIIEhBTVpBIEJFTE9XO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBTVpBSCBVTkRFUiBBTEVGOzs7OworMDYyNjtBUkFCSUMgTEVUVEVSIFlFSCBXSVRIIEhBTVpBIEFCT1ZFO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBTVpBSCBPTiBZQTs7OzsKKzA2Mjc7QVJBQklDIExFVFRFUiBBTEVGO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNjI4O0FSQUJJQyBMRVRURVIgQkVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEJBQTs7OzsKKzA2Mjk7QVJBQklDIExFVFRFUiBURUggTUFSQlVUQTtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBUQUEgTUFSQlVUQUg7Ozs7CiswNjJBO0FSQUJJQyBMRVRURVIgVEVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRBQTs7OzsKKzA2MkI7QVJBQklDIExFVFRFUiBUSEVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRIQUE7Ozs7CiswNjJDO0FSQUJJQyBMRVRURVIgSkVFTTtMbzswO1I7Ozs7O047Ozs7OworMDYyRDtBUkFCSUMgTEVUVEVSIEhBSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBIQUE7Ozs7CiswNjJFO0FSQUJJQyBMRVRURVIgS0hBSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBLSEFBOzs7OworMDYyRjtBUkFCSUMgTEVUVEVSIERBTDtMbzswO1I7Ozs7O047Ozs7OworMDYzMDtBUkFCSUMgTEVUVEVSIFRIQUw7TG87MDtSOzs7OztOOzs7OzsKKzA2MzE7QVJBQklDIExFVFRFUiBSRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgUkE7Ozs7CiswNjMyO0FSQUJJQyBMRVRURVIgWkFJTjtMbzswO1I7Ozs7O047Ozs7OworMDYzMztBUkFCSUMgTEVUVEVSIFNFRU47TG87MDtSOzs7OztOOzs7OzsKKzA2MzQ7QVJBQklDIExFVFRFUiBTSEVFTjtMbzswO1I7Ozs7O047Ozs7OworMDYzNTtBUkFCSUMgTEVUVEVSIFNBRDtMbzswO1I7Ozs7O047Ozs7OworMDYzNjtBUkFCSUMgTEVUVEVSIERBRDtMbzswO1I7Ozs7O047Ozs7OworMDYzNztBUkFCSUMgTEVUVEVSIFRBSDtMbzswO1I7Ozs7O047Ozs7OworMDYzODtBUkFCSUMgTEVUVEVSIFpBSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBESEFIOzs7OworMDYzOTtBUkFCSUMgTEVUVEVSIEFJTjtMbzswO1I7Ozs7O047Ozs7OworMDYzQTtBUkFCSUMgTEVUVEVSIEdIQUlOO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNjQwO0FSQUJJQyBUQVRXRUVMO0xtOzA7Ujs7Ozs7Tjs7Ozs7CiswNjQxO0FSQUJJQyBMRVRURVIgRkVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEZBOzs7OworMDY0MjtBUkFCSUMgTEVUVEVSIFFBRjtMbzswO1I7Ozs7O047Ozs7OworMDY0MztBUkFCSUMgTEVUVEVSIEtBRjtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBDQUY7Ozs7CiswNjQ0O0FSQUJJQyBMRVRURVIgTEFNO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNjQ1O0FSQUJJQyBMRVRURVIgTUVFTTtMbzswO1I7Ozs7O047Ozs7OworMDY0NjtBUkFCSUMgTEVUVEVSIE5PT047TG87MDtSOzs7OztOOzs7OzsKKzA2NDc7QVJBQklDIExFVFRFUiBIRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgSEE7Ozs7CiswNjQ4O0FSQUJJQyBMRVRURVIgV0FXO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNjQ5O0FSQUJJQyBMRVRURVIgQUxFRiBNQUtTVVJBO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEFMRUYgTUFRU1VSQUg7Ozs7CiswNjRBO0FSQUJJQyBMRVRURVIgWUVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFlBOzs7OworMDY0QjtBUkFCSUMgRkFUSEFUQU47TW47Mjc7T047Ozs7O047Ozs7OworMDY0QztBUkFCSUMgREFNTUFUQU47TW47Mjg7T047Ozs7O047Ozs7OworMDY0RDtBUkFCSUMgS0FTUkFUQU47TW47Mjk7T047Ozs7O047Ozs7OworMDY0RTtBUkFCSUMgRkFUSEE7TW47MzA7T047Ozs7O047QVJBQklDIEZBVEhBSDs7OzsKKzA2NEY7QVJBQklDIERBTU1BO01uOzMxO09OOzs7OztOO0FSQUJJQyBEQU1NQUg7Ozs7CiswNjUwO0FSQUJJQyBLQVNSQTtNbjszMjtPTjs7Ozs7TjtBUkFCSUMgS0FTUkFIOzs7OworMDY1MTtBUkFCSUMgU0hBRERBO01uOzMzO09OOzs7OztOO0FSQUJJQyBTSEFEREFIOzs7OworMDY1MjtBUkFCSUMgU1VLVU47TW47MzQ7T047Ozs7O047Ozs7OworMDY2MDtBUkFCSUMtSU5ESUMgRElHSVQgWkVSTztOZDswO0FOOzswOzA7MDtOOzs7OzsKKzA2NjE7QVJBQklDLUlORElDIERJR0lUIE9ORTtOZDswO0FOOzsxOzE7MTtOOzs7OzsKKzA2NjI7QVJBQklDLUlORElDIERJR0lUIFRXTztOZDswO0FOOzsyOzI7MjtOOzs7OzsKKzA2NjM7QVJBQklDLUlORElDIERJR0lUIFRIUkVFO05kOzA7QU47OzM7MzszO047Ozs7OworMDY2NDtBUkFCSUMtSU5ESUMgRElHSVQgRk9VUjtOZDswO0FOOzs0OzQ7NDtOOzs7OzsKKzA2NjU7QVJBQklDLUlORElDIERJR0lUIEZJVkU7TmQ7MDtBTjs7NTs1OzU7Tjs7Ozs7CiswNjY2O0FSQUJJQy1JTkRJQyBESUdJVCBTSVg7TmQ7MDtBTjs7Njs2OzY7Tjs7Ozs7CiswNjY3O0FSQUJJQy1JTkRJQyBESUdJVCBTRVZFTjtOZDswO0FOOzs3Ozc7NztOOzs7OzsKKzA2Njg7QVJBQklDLUlORElDIERJR0lUIEVJR0hUO05kOzA7QU47Ozg7ODs4O047Ozs7OworMDY2OTtBUkFCSUMtSU5ESUMgRElHSVQgTklORTtOZDswO0FOOzs5Ozk7OTtOOzs7OzsKKzA2NkE7QVJBQklDIFBFUkNFTlQgU0lHTjtQbzswO0VUOzs7OztOOzs7OzsKKzA2NkI7QVJBQklDIERFQ0lNQUwgU0VQQVJBVE9SO1BvOzA7QU47Ozs7O047Ozs7OworMDY2QztBUkFCSUMgVEhPVVNBTkRTIFNFUEFSQVRPUjtQbzswO0FOOzs7OztOOzs7OzsKKzA2NkQ7QVJBQklDIEZJVkUgUE9JTlRFRCBTVEFSO1BvOzA7Ujs7Ozs7Tjs7Ozs7CiswNjcwO0FSQUJJQyBMRVRURVIgU1VQRVJTQ1JJUFQgQUxFRjtNbjszNTtPTjs7Ozs7TjtBUkFCSUMgQUxFRiBBQk9WRTs7OzsKKzA2NzE7QVJBQklDIExFVFRFUiBBTEVGIFdBU0xBO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBTVpBVCBXQVNMIE9OIEFMRUY7Ozs7CiswNjcyO0FSQUJJQyBMRVRURVIgQUxFRiBXSVRIIFdBVlkgSEFNWkEgQUJPVkU7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgV0FWWSBIQU1aQUggT04gQUxFRjs7OzsKKzA2NzM7QVJBQklDIExFVFRFUiBBTEVGIFdJVEggV0FWWSBIQU1aQSBCRUxPVztMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBXQVZZIEhBTVpBSCBVTkRFUiBBTEVGOzs7OworMDY3NDtBUkFCSUMgTEVUVEVSIEhJR0ggSEFNWkE7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgSElHSCBIQU1aQUg7Ozs7CiswNjc1O0FSQUJJQyBMRVRURVIgSElHSCBIQU1aQSBBTEVGO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhJR0ggSEFNWkFIIEFMRUY7Ozs7CiswNjc2O0FSQUJJQyBMRVRURVIgSElHSCBIQU1aQSBXQVc7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgSElHSCBIQU1aQUggV0FXOzs7OworMDY3NztBUkFCSUMgTEVUVEVSIFUgV0lUSCBIQU1aQSBBQk9WRTtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBISUdIIEhBTVpBSCBXQVcgV0lUSCBEQU1NQUg7Ozs7CiswNjc4O0FSQUJJQyBMRVRURVIgSElHSCBIQU1aQSBZRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgSElHSCBIQU1aQUggWUE7Ozs7CiswNjc5O0FSQUJJQyBMRVRURVIgVFRFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBUQUEgV0lUSCBTTUFMTCBUQUg7Ozs7CiswNjdBO0FSQUJJQyBMRVRURVIgVFRFSEVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRBQSBXSVRIIFRXTyBET1RTIFZFUlRJQ0FMIEFCT1ZFOzs7OworMDY3QjtBUkFCSUMgTEVUVEVSIEJFRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgQkFBIFdJVEggVFdPIERPVFMgVkVSVElDQUwgQkVMT1c7Ozs7CiswNjdDO0FSQUJJQyBMRVRURVIgVEVIIFdJVEggUklORztMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBUQUEgV0lUSCBSSU5HOzs7OworMDY3RDtBUkFCSUMgTEVUVEVSIFRFSCBXSVRIIFRIUkVFIERPVFMgQUJPVkUgRE9XTldBUkRTO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRBQSBXSVRIIFRIUkVFIERPVFMgQUJPVkUgRE9XTldBUkQ7Ozs7CiswNjdFO0FSQUJJQyBMRVRURVIgUEVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRBQSBXSVRIIFRIUkVFIERPVFMgQkVMT1c7Ozs7CiswNjdGO0FSQUJJQyBMRVRURVIgVEVIRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgVEFBIFdJVEggRk9VUiBET1RTIEFCT1ZFOzs7OworMDY4MDtBUkFCSUMgTEVUVEVSIEJFSEVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEJBQSBXSVRIIEZPVVIgRE9UUyBCRUxPVzs7OzsKKzA2ODE7QVJBQklDIExFVFRFUiBIQUggV0lUSCBIQU1aQSBBQk9WRTtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBIQU1aQUggT04gSEFBOzs7OworMDY4MjtBUkFCSUMgTEVUVEVSIEhBSCBXSVRIIFRXTyBET1RTIFZFUlRJQ0FMIEFCT1ZFO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBQSBXSVRIIFRXTyBET1RTIFZFUlRJQ0FMIEFCT1ZFOzs7OworMDY4MztBUkFCSUMgTEVUVEVSIE5ZRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgSEFBIFdJVEggTUlERExFIFRXTyBET1RTOzs7OworMDY4NDtBUkFCSUMgTEVUVEVSIERZRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgSEFBIFdJVEggTUlERExFIFRXTyBET1RTIFZFUlRJQ0FMOzs7OworMDY4NTtBUkFCSUMgTEVUVEVSIEhBSCBXSVRIIFRIUkVFIERPVFMgQUJPVkU7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgSEFBIFdJVEggVEhSRUUgRE9UUyBBQk9WRTs7OzsKKzA2ODY7QVJBQklDIExFVFRFUiBUQ0hFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBIQUEgV0lUSCBNSURETEUgVEhSRUUgRE9UUyBET1dOV0FSRDs7OzsKKzA2ODc7QVJBQklDIExFVFRFUiBUQ0hFSEVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBQSBXSVRIIE1JRERMRSBGT1VSIERPVFM7Ozs7CiswNjg4O0FSQUJJQyBMRVRURVIgRERBTDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBEQUwgV0lUSCBTTUFMTCBUQUg7Ozs7CiswNjg5O0FSQUJJQyBMRVRURVIgREFMIFdJVEggUklORztMbzswO1I7Ozs7O047Ozs7OworMDY4QTtBUkFCSUMgTEVUVEVSIERBTCBXSVRIIERPVCBCRUxPVztMbzswO1I7Ozs7O047Ozs7OworMDY4QjtBUkFCSUMgTEVUVEVSIERBTCBXSVRIIERPVCBCRUxPVyBBTkQgU01BTEwgVEFIO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNjhDO0FSQUJJQyBMRVRURVIgREFIQUw7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgREFMIFdJVEggVFdPIERPVFMgQUJPVkU7Ozs7CiswNjhEO0FSQUJJQyBMRVRURVIgRERBSEFMO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIERBTCBXSVRIIFRXTyBET1RTIEJFTE9XOzs7OworMDY4RTtBUkFCSUMgTEVUVEVSIERVTDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBEQUwgV0lUSCBUSFJFRSBET1RTIEFCT1ZFOzs7OworMDY4RjtBUkFCSUMgTEVUVEVSIERBTCBXSVRIIFRIUkVFIERPVFMgQUJPVkUgRE9XTldBUkRTO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIERBTCBXSVRIIFRIUkVFIERPVFMgQUJPVkUgRE9XTldBUkQ7Ozs7CiswNjkwO0FSQUJJQyBMRVRURVIgREFMIFdJVEggRk9VUiBET1RTIEFCT1ZFO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNjkxO0FSQUJJQyBMRVRURVIgUlJFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBSQSBXSVRIIFNNQUxMIFRBSDs7OzsKKzA2OTI7QVJBQklDIExFVFRFUiBSRUggV0lUSCBTTUFMTCBWO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFJBIFdJVEggU01BTEwgVjs7OzsKKzA2OTM7QVJBQklDIExFVFRFUiBSRUggV0lUSCBSSU5HO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFJBIFdJVEggUklORzs7OzsKKzA2OTQ7QVJBQklDIExFVFRFUiBSRUggV0lUSCBET1QgQkVMT1c7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgUkEgV0lUSCBET1QgQkVMT1c7Ozs7CiswNjk1O0FSQUJJQyBMRVRURVIgUkVIIFdJVEggU01BTEwgViBCRUxPVztMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBSQSBXSVRIIFNNQUxMIFYgQkVMT1c7Ozs7CiswNjk2O0FSQUJJQyBMRVRURVIgUkVIIFdJVEggRE9UIEJFTE9XIEFORCBET1QgQUJPVkU7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgUkEgV0lUSCBET1QgQkVMT1cgQU5EIERPVCBBQk9WRTs7OzsKKzA2OTc7QVJBQklDIExFVFRFUiBSRUggV0lUSCBUV08gRE9UUyBBQk9WRTtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBSQSBXSVRIIFRXTyBET1RTIEFCT1ZFOzs7OworMDY5ODtBUkFCSUMgTEVUVEVSIEpFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBSQSBXSVRIIFRIUkVFIERPVFMgQUJPVkU7Ozs7CiswNjk5O0FSQUJJQyBMRVRURVIgUkVIIFdJVEggRk9VUiBET1RTIEFCT1ZFO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFJBIFdJVEggRk9VUiBET1RTIEFCT1ZFOzs7OworMDY5QTtBUkFCSUMgTEVUVEVSIFNFRU4gV0lUSCBET1QgQkVMT1cgQU5EIERPVCBBQk9WRTtMbzswO1I7Ozs7O047Ozs7OworMDY5QjtBUkFCSUMgTEVUVEVSIFNFRU4gV0lUSCBUSFJFRSBET1RTIEJFTE9XO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNjlDO0FSQUJJQyBMRVRURVIgU0VFTiBXSVRIIFRIUkVFIERPVFMgQkVMT1cgQU5EIFRIUkVFIERPVFMgQUJPVkU7TG87MDtSOzs7OztOOzs7OzsKKzA2OUQ7QVJBQklDIExFVFRFUiBTQUQgV0lUSCBUV08gRE9UUyBCRUxPVztMbzswO1I7Ozs7O047Ozs7OworMDY5RTtBUkFCSUMgTEVUVEVSIFNBRCBXSVRIIFRIUkVFIERPVFMgQUJPVkU7TG87MDtSOzs7OztOOzs7OzsKKzA2OUY7QVJBQklDIExFVFRFUiBUQUggV0lUSCBUSFJFRSBET1RTIEFCT1ZFO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNkEwO0FSQUJJQyBMRVRURVIgQUlOIFdJVEggVEhSRUUgRE9UUyBBQk9WRTtMbzswO1I7Ozs7O047Ozs7OworMDZBMTtBUkFCSUMgTEVUVEVSIERPVExFU1MgRkVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIERPVExFU1MgRkE7Ozs7CiswNkEyO0FSQUJJQyBMRVRURVIgRkVIIFdJVEggRE9UIE1PVkVEIEJFTE9XO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEZBIFdJVEggRE9UIE1PVkVEIEJFTE9XOzs7OworMDZBMztBUkFCSUMgTEVUVEVSIEZFSCBXSVRIIERPVCBCRUxPVztMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBGQSBXSVRIIERPVCBCRUxPVzs7OzsKKzA2QTQ7QVJBQklDIExFVFRFUiBWRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgRkEgV0lUSCBUSFJFRSBET1RTIEFCT1ZFOzs7OworMDZBNTtBUkFCSUMgTEVUVEVSIEZFSCBXSVRIIFRIUkVFIERPVFMgQkVMT1c7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgRkEgV0lUSCBUSFJFRSBET1RTIEJFTE9XOzs7OworMDZBNjtBUkFCSUMgTEVUVEVSIFBFSEVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEZBIFdJVEggRk9VUiBET1RTIEFCT1ZFOzs7OworMDZBNztBUkFCSUMgTEVUVEVSIFFBRiBXSVRIIERPVCBBQk9WRTtMbzswO1I7Ozs7O047Ozs7OworMDZBODtBUkFCSUMgTEVUVEVSIFFBRiBXSVRIIFRIUkVFIERPVFMgQUJPVkU7TG87MDtSOzs7OztOOzs7OzsKKzA2QTk7QVJBQklDIExFVFRFUiBLRUhFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBPUEVOIENBRjs7OzsKKzA2QUE7QVJBQklDIExFVFRFUiBTV0FTSCBLQUY7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgU1dBU0ggQ0FGOzs7OworMDZBQjtBUkFCSUMgTEVUVEVSIEtBRiBXSVRIIFJJTkc7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgQ0FGIFdJVEggUklORzs7OzsKKzA2QUM7QVJBQklDIExFVFRFUiBLQUYgV0lUSCBET1QgQUJPVkU7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgQ0FGIFdJVEggRE9UIEFCT1ZFOzs7OworMDZBRDtBUkFCSUMgTEVUVEVSIE5HO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIENBRiBXSVRIIFRIUkVFIERPVFMgQUJPVkU7Ozs7CiswNkFFO0FSQUJJQyBMRVRURVIgS0FGIFdJVEggVEhSRUUgRE9UUyBCRUxPVztMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBDQUYgV0lUSCBUSFJFRSBET1RTIEJFTE9XOzs7OworMDZBRjtBUkFCSUMgTEVUVEVSIEdBRjtMbzswO1I7Ozs7O047Ozs7OworMDZCMDtBUkFCSUMgTEVUVEVSIEdBRiBXSVRIIFJJTkc7TG87MDtSOzs7OztOOzs7OzsKKzA2QjE7QVJBQklDIExFVFRFUiBOR09FSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBHQUYgV0lUSCBUV08gRE9UUyBBQk9WRTs7OzsKKzA2QjI7QVJBQklDIExFVFRFUiBHQUYgV0lUSCBUV08gRE9UUyBCRUxPVztMbzswO1I7Ozs7O047Ozs7OworMDZCMztBUkFCSUMgTEVUVEVSIEdVRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgR0FGIFdJVEggVFdPIERPVFMgVkVSVElDQUwgQkVMT1c7Ozs7CiswNkI0O0FSQUJJQyBMRVRURVIgR0FGIFdJVEggVEhSRUUgRE9UUyBBQk9WRTtMbzswO1I7Ozs7O047Ozs7OworMDZCNTtBUkFCSUMgTEVUVEVSIExBTSBXSVRIIFNNQUxMIFY7TG87MDtSOzs7OztOOzs7OzsKKzA2QjY7QVJBQklDIExFVFRFUiBMQU0gV0lUSCBET1QgQUJPVkU7TG87MDtSOzs7OztOOzs7OzsKKzA2Qjc7QVJBQklDIExFVFRFUiBMQU0gV0lUSCBUSFJFRSBET1RTIEFCT1ZFO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNkJBO0FSQUJJQyBMRVRURVIgTk9PTiBHSFVOTkE7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgRE9UTEVTUyBOT09OOzs7OworMDZCQjtBUkFCSUMgTEVUVEVSIFJOT09OO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIERPVExFU1MgTk9PTiBXSVRIIFNNQUxMIFRBSDs7OzsKKzA2QkM7QVJBQklDIExFVFRFUiBOT09OIFdJVEggUklORztMbzswO1I7Ozs7O047Ozs7OworMDZCRDtBUkFCSUMgTEVUVEVSIE5PT04gV0lUSCBUSFJFRSBET1RTIEFCT1ZFO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNkJFO0FSQUJJQyBMRVRURVIgSEVIIERPQUNIQVNITUVFO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEtOT1RURUQgSEE7Ozs7CiswNkMwO0FSQUJJQyBMRVRURVIgSEVIIFdJVEggWUVIIEFCT1ZFO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBTVpBSCBPTiBIQTs7OzsKKzA2QzE7QVJBQklDIExFVFRFUiBIRUggR09BTDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBIQSBHT0FMOzs7OworMDZDMjtBUkFCSUMgTEVUVEVSIEhFSCBHT0FMIFdJVEggSEFNWkEgQUJPVkU7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgSEFNWkFIIE9OIEhBIEdPQUw7Ozs7CiswNkMzO0FSQUJJQyBMRVRURVIgVEVIIE1BUkJVVEEgR09BTDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBUQUEgTUFSQlVUQUggR09BTDs7OzsKKzA2QzQ7QVJBQklDIExFVFRFUiBXQVcgV0lUSCBSSU5HO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNkM1O0FSQUJJQyBMRVRURVIgS0lSR0hJWiBPRTtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBXQVcgV0lUSCBCQVI7Ozs7CiswNkM2O0FSQUJJQyBMRVRURVIgT0U7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgV0FXIFdJVEggU01BTEwgVjs7OzsKKzA2Qzc7QVJBQklDIExFVFRFUiBVO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFdBVyBXSVRIIERBTU1BSDs7OzsKKzA2Qzg7QVJBQklDIExFVFRFUiBZVTtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBXQVcgV0lUSCBBTEVGIEFCT1ZFOzs7OworMDZDOTtBUkFCSUMgTEVUVEVSIEtJUkdISVogWVU7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgV0FXIFdJVEggSU5WRVJURUQgU01BTEwgVjs7OzsKKzA2Q0E7QVJBQklDIExFVFRFUiBXQVcgV0lUSCBUV08gRE9UUyBBQk9WRTtMbzswO1I7Ozs7O047Ozs7OworMDZDQjtBUkFCSUMgTEVUVEVSIFZFO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFdBVyBXSVRIIFRIUkVFIERPVFMgQUJPVkU7Ozs7CiswNkNDO0FSQUJJQyBMRVRURVIgRkFSU0kgWUVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIERPVExFU1MgWUE7Ozs7CiswNkNEO0FSQUJJQyBMRVRURVIgWUVIIFdJVEggVEFJTDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBZQSBXSVRIIFRBSUw7Ozs7CiswNkNFO0FSQUJJQyBMRVRURVIgWUVIIFdJVEggU01BTEwgVjtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBZQSBXSVRIIFNNQUxMIFY7Ozs7CiswNkQwO0FSQUJJQyBMRVRURVIgRTtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBZQSBXSVRIIFRXTyBET1RTIFZFUlRJQ0FMIEJFTE9XOzs7OworMDZEMTtBUkFCSUMgTEVUVEVSIFlFSCBXSVRIIFRIUkVFIERPVFMgQkVMT1c7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgWUEgV0lUSCBUSFJFRSBET1RTIEJFTE9XOzs7OworMDZEMjtBUkFCSUMgTEVUVEVSIFlFSCBCQVJSRUU7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgWUEgQkFSUkVFOzs7OworMDZEMztBUkFCSUMgTEVUVEVSIFlFSCBCQVJSRUUgV0lUSCBIQU1aQSBBQk9WRTtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBIQU1aQUggT04gWUEgQkFSUkVFOzs7OworMDZENDtBUkFCSUMgRlVMTCBTVE9QO1BvOzA7Ujs7Ozs7TjtBUkFCSUMgUEVSSU9EOzs7OworMDZENTtBUkFCSUMgTEVUVEVSIEFFO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNkQ2O0FSQUJJQyBTTUFMTCBISUdIIExJR0FUVVJFIFNBRCBXSVRIIExBTSBXSVRIIEFMRUYgTUFLU1VSQTtNbjsyMzA7T047Ozs7O047Ozs7OworMDZENztBUkFCSUMgU01BTEwgSElHSCBMSUdBVFVSRSBRQUYgV0lUSCBMQU0gV0lUSCBBTEVGIE1BS1NVUkE7TW47MjMwO09OOzs7OztOOzs7OzsKKzA2RDg7QVJBQklDIFNNQUxMIEhJR0ggTUVFTSBJTklUSUFMIEZPUk07TW47MjMwO09OOzs7OztOOzs7OzsKKzA2RDk7QVJBQklDIFNNQUxMIEhJR0ggTEFNIEFMRUY7TW47MjMwO09OOzs7OztOOzs7OzsKKzA2REE7QVJBQklDIFNNQUxMIEhJR0ggSkVFTTtNbjsyMzA7T047Ozs7O047Ozs7OworMDZEQjtBUkFCSUMgU01BTEwgSElHSCBUSFJFRSBET1RTO01uOzIzMDtPTjs7Ozs7Tjs7Ozs7CiswNkRDO0FSQUJJQyBTTUFMTCBISUdIIFNFRU47TW47MjMwO09OOzs7OztOOzs7OzsKKzA2REQ7QVJBQklDIEVORCBPRiBBWUFIO01lOzA7T047Ozs7O047Ozs7OworMDZERTtBUkFCSUMgU1RBUlQgT0YgUlVCIEVMIEhJWkI7TWU7MDtPTjs7Ozs7Tjs7Ozs7CiswNkRGO0FSQUJJQyBTTUFMTCBISUdIIFJPVU5ERUQgWkVSTztNbjsyMzA7T047Ozs7O047Ozs7OworMDZFMDtBUkFCSUMgU01BTEwgSElHSCBVUFJJR0hUIFJFQ1RBTkdVTEFSIFpFUk87TW47MjMwO09OOzs7OztOOzs7OzsKKzA2RTE7QVJBQklDIFNNQUxMIEhJR0ggRE9UTEVTUyBIRUFEIE9GIEtIQUg7TW47MjMwO09OOzs7OztOOzs7OzsKKzA2RTI7QVJBQklDIFNNQUxMIEhJR0ggTUVFTSBJU09MQVRFRCBGT1JNO01uOzIzMDtPTjs7Ozs7Tjs7Ozs7CiswNkUzO0FSQUJJQyBTTUFMTCBMT1cgU0VFTjtNbjsyMjA7T047Ozs7O047Ozs7OworMDZFNDtBUkFCSUMgU01BTEwgSElHSCBNQUREQTtNbjsyMzA7T047Ozs7O047Ozs7OworMDZFNTtBUkFCSUMgU01BTEwgV0FXO0xtOzA7Ujs7Ozs7Tjs7Ozs7CiswNkU2O0FSQUJJQyBTTUFMTCBZRUg7TG07MDtSOzs7OztOOzs7OzsKKzA2RTc7QVJBQklDIFNNQUxMIEhJR0ggWUVIO01uOzIzMDtPTjs7Ozs7Tjs7Ozs7CiswNkU4O0FSQUJJQyBTTUFMTCBISUdIIE5PT047TW47MjMwO09OOzs7OztOOzs7OzsKKzA2RTk7QVJBQklDIFBMQUNFIE9GIFNBSkRBSDtTbzswO09OOzs7OztOOzs7OzsKKzA2RUE7QVJBQklDIEVNUFRZIENFTlRSRSBMT1cgU1RPUDtNbjsyMjA7T047Ozs7O047Ozs7OworMDZFQjtBUkFCSUMgRU1QVFkgQ0VOVFJFIEhJR0ggU1RPUDtNbjsyMzA7T047Ozs7O047Ozs7OworMDZFQztBUkFCSUMgUk9VTkRFRCBISUdIIFNUT1AgV0lUSCBGSUxMRUQgQ0VOVFJFO01uOzIzMDtPTjs7Ozs7Tjs7Ozs7CiswNkVEO0FSQUJJQyBTTUFMTCBMT1cgTUVFTTtNbjsyMjA7T047Ozs7O047Ozs7OworMDZGMDtFWFRFTkRFRCBBUkFCSUMtSU5ESUMgRElHSVQgWkVSTztOZDswO0VOOzswOzA7MDtOO0VBU1RFUk4gQVJBQklDLUlORElDIERJR0lUIFpFUk87Ozs7CiswNkYxO0VYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBPTkU7TmQ7MDtFTjs7MTsxOzE7TjtFQVNURVJOIEFSQUJJQy1JTkRJQyBESUdJVCBPTkU7Ozs7CiswNkYyO0VYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBUV087TmQ7MDtFTjs7MjsyOzI7TjtFQVNURVJOIEFSQUJJQy1JTkRJQyBESUdJVCBUV087Ozs7CiswNkYzO0VYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBUSFJFRTtOZDswO0VOOzszOzM7MztOO0VBU1RFUk4gQVJBQklDLUlORElDIERJR0lUIFRIUkVFOzs7OworMDZGNDtFWFRFTkRFRCBBUkFCSUMtSU5ESUMgRElHSVQgRk9VUjtOZDswO0VOOzs0OzQ7NDtOO0VBU1RFUk4gQVJBQklDLUlORElDIERJR0lUIEZPVVI7Ozs7CiswNkY1O0VYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBGSVZFO05kOzA7RU47OzU7NTs1O047RUFTVEVSTiBBUkFCSUMtSU5ESUMgRElHSVQgRklWRTs7OzsKKzA2RjY7RVhURU5ERUQgQVJBQklDLUlORElDIERJR0lUIFNJWDtOZDswO0VOOzs2OzY7NjtOO0VBU1RFUk4gQVJBQklDLUlORElDIERJR0lUIFNJWDs7OzsKKzA2Rjc7RVhURU5ERUQgQVJBQklDLUlORElDIERJR0lUIFNFVkVOO05kOzA7RU47Ozc7Nzs3O047RUFTVEVSTiBBUkFCSUMtSU5ESUMgRElHSVQgU0VWRU47Ozs7CiswNkY4O0VYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBFSUdIVDtOZDswO0VOOzs4Ozg7ODtOO0VBU1RFUk4gQVJBQklDLUlORElDIERJR0lUIEVJR0hUOzs7OworMDZGOTtFWFRFTkRFRCBBUkFCSUMtSU5ESUMgRElHSVQgTklORTtOZDswO0VOOzs5Ozk7OTtOO0VBU1RFUk4gQVJBQklDLUlORElDIERJR0lUIE5JTkU7Ozs7CiswOTAxO0RFVkFOQUdBUkkgU0lHTiBDQU5EUkFCSU5EVTtNbjswO09OOzs7OztOOzs7OzsKKzA5MDI7REVWQU5BR0FSSSBTSUdOIEFOVVNWQVJBO01uOzA7T047Ozs7O047Ozs7OworMDkwMztERVZBTkFHQVJJIFNJR04gVklTQVJHQTtNYzswO0w7Ozs7O047Ozs7OworMDkwNTtERVZBTkFHQVJJIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTA2O0RFVkFOQUdBUkkgTEVUVEVSIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTA3O0RFVkFOQUdBUkkgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzA5MDg7REVWQU5BR0FSSSBMRVRURVIgSUk7TG87MDtMOzs7OztOOzs7OzsKKzA5MDk7REVWQU5BR0FSSSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMDkwQTtERVZBTkFHQVJJIExFVFRFUiBVVTtMbzswO0w7Ozs7O047Ozs7OworMDkwQjtERVZBTkFHQVJJIExFVFRFUiBWT0NBTElDIFI7TG87MDtMOzs7OztOOzs7OzsKKzA5MEM7REVWQU5BR0FSSSBMRVRURVIgVk9DQUxJQyBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTBEO0RFVkFOQUdBUkkgTEVUVEVSIENBTkRSQSBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTBFO0RFVkFOQUdBUkkgTEVUVEVSIFNIT1JUIEU7TG87MDtMOzs7OztOOzs7OzsKKzA5MEY7REVWQU5BR0FSSSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMDkxMDtERVZBTkFHQVJJIExFVFRFUiBBSTtMbzswO0w7Ozs7O047Ozs7OworMDkxMTtERVZBTkFHQVJJIExFVFRFUiBDQU5EUkEgTztMbzswO0w7Ozs7O047Ozs7OworMDkxMjtERVZBTkFHQVJJIExFVFRFUiBTSE9SVCBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTEzO0RFVkFOQUdBUkkgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzA5MTQ7REVWQU5BR0FSSSBMRVRURVIgQVU7TG87MDtMOzs7OztOOzs7OzsKKzA5MTU7REVWQU5BR0FSSSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzA5MTY7REVWQU5BR0FSSSBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTE3O0RFVkFOQUdBUkkgTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTE4O0RFVkFOQUdBUkkgTEVUVEVSIEdIQTtMbzswO0w7Ozs7O047Ozs7OworMDkxOTtERVZBTkFHQVJJIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzA5MUE7REVWQU5BR0FSSSBMRVRURVIgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzA5MUI7REVWQU5BR0FSSSBMRVRURVIgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTFDO0RFVkFOQUdBUkkgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTFEO0RFVkFOQUdBUkkgTEVUVEVSIEpIQTtMbzswO0w7Ozs7O047Ozs7OworMDkxRTtERVZBTkFHQVJJIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzA5MUY7REVWQU5BR0FSSSBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTIwO0RFVkFOQUdBUkkgTEVUVEVSIFRUSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MjE7REVWQU5BR0FSSSBMRVRURVIgRERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTIyO0RFVkFOQUdBUkkgTEVUVEVSIERESEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MjM7REVWQU5BR0FSSSBMRVRURVIgTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTI0O0RFVkFOQUdBUkkgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTI1O0RFVkFOQUdBUkkgTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMDkyNjtERVZBTkFHQVJJIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMDkyNztERVZBTkFHQVJJIExFVFRFUiBESEE7TG87MDtMOzs7OztOOzs7OzsKKzA5Mjg7REVWQU5BR0FSSSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzA5Mjk7REVWQU5BR0FSSSBMRVRURVIgTk5OQTtMbzswO0w7MDkyOCAwOTNDOzs7O047Ozs7OworMDkyQTtERVZBTkFHQVJJIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMDkyQjtERVZBTkFHQVJJIExFVFRFUiBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MkM7REVWQU5BR0FSSSBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzA5MkQ7REVWQU5BR0FSSSBMRVRURVIgQkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTJFO0RFVkFOQUdBUkkgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTJGO0RFVkFOQUdBUkkgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTMwO0RFVkFOQUdBUkkgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTMxO0RFVkFOQUdBUkkgTEVUVEVSIFJSQTtMbzswO0w7MDkzMCAwOTNDOzs7O047Ozs7OworMDkzMjtERVZBTkFHQVJJIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMDkzMztERVZBTkFHQVJJIExFVFRFUiBMTEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MzQ7REVWQU5BR0FSSSBMRVRURVIgTExMQTtMbzswO0w7MDkzMyAwOTNDOzs7O047Ozs7OworMDkzNTtERVZBTkFHQVJJIExFVFRFUiBWQTtMbzswO0w7Ozs7O047Ozs7OworMDkzNjtERVZBTkFHQVJJIExFVFRFUiBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5Mzc7REVWQU5BR0FSSSBMRVRURVIgU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTM4O0RFVkFOQUdBUkkgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTM5O0RFVkFOQUdBUkkgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTNDO0RFVkFOQUdBUkkgU0lHTiBOVUtUQTtNbjs3O09OOzs7OztOOzs7OzsKKzA5M0Q7REVWQU5BR0FSSSBTSUdOIEFWQUdSQUhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTNFO0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBBQTtNYzswO0w7Ozs7O047Ozs7OworMDkzRjtERVZBTkFHQVJJIFZPV0VMIFNJR04gSTtNYzswO0w7Ozs7O047Ozs7OworMDk0MDtERVZBTkFHQVJJIFZPV0VMIFNJR04gSUk7TWM7MDtMOzs7OztOOzs7OzsKKzA5NDE7REVWQU5BR0FSSSBWT1dFTCBTSUdOIFU7TW47MDtPTjs7Ozs7Tjs7Ozs7CiswOTQyO0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBVVTtNbjswO09OOzs7OztOOzs7OzsKKzA5NDM7REVWQU5BR0FSSSBWT1dFTCBTSUdOIFZPQ0FMSUMgUjtNbjswO09OOzs7OztOOzs7OzsKKzA5NDQ7REVWQU5BR0FSSSBWT1dFTCBTSUdOIFZPQ0FMSUMgUlI7TW47MDtPTjs7Ozs7Tjs7Ozs7CiswOTQ1O0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBDQU5EUkEgRTtNbjswO09OOzs7OztOOzs7OzsKKzA5NDY7REVWQU5BR0FSSSBWT1dFTCBTSUdOIFNIT1JUIEU7TW47MDtPTjs7Ozs7Tjs7Ozs7CiswOTQ3O0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBFO01uOzA7T047Ozs7O047Ozs7OworMDk0ODtERVZBTkFHQVJJIFZPV0VMIFNJR04gQUk7TW47MDtPTjs7Ozs7Tjs7Ozs7CiswOTQ5O0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBDQU5EUkEgTztNYzswO0w7Ozs7O047Ozs7OworMDk0QTtERVZBTkFHQVJJIFZPV0VMIFNJR04gU0hPUlQgTztNYzswO0w7Ozs7O047Ozs7OworMDk0QjtERVZBTkFHQVJJIFZPV0VMIFNJR04gTztNYzswO0w7Ozs7O047Ozs7OworMDk0QztERVZBTkFHQVJJIFZPV0VMIFNJR04gQVU7TWM7MDtMOzs7OztOOzs7OzsKKzA5NEQ7REVWQU5BR0FSSSBTSUdOIFZJUkFNQTtNbjs5O09OOzs7OztOOzs7OzsKKzA5NTA7REVWQU5BR0FSSSBPTTtMbzswO0w7Ozs7O047Ozs7OworMDk1MTtERVZBTkFHQVJJIFNUUkVTUyBTSUdOIFVEQVRUQTtNbjsyMzA7T047Ozs7O047Ozs7OworMDk1MjtERVZBTkFHQVJJIFNUUkVTUyBTSUdOIEFOVURBVFRBO01uOzIyMDtPTjs7Ozs7Tjs7Ozs7CiswOTUzO0RFVkFOQUdBUkkgR1JBVkUgQUNDRU5UO01uOzIzMDtPTjs7Ozs7Tjs7Ozs7CiswOTU0O0RFVkFOQUdBUkkgQUNVVEUgQUNDRU5UO01uOzIzMDtPTjs7Ozs7Tjs7Ozs7CiswOTU4O0RFVkFOQUdBUkkgTEVUVEVSIFFBO0xvOzA7TDswOTE1IDA5M0M7Ozs7Tjs7Ozs7CiswOTU5O0RFVkFOQUdBUkkgTEVUVEVSIEtISEE7TG87MDtMOzA5MTYgMDkzQzs7OztOOzs7OzsKKzA5NUE7REVWQU5BR0FSSSBMRVRURVIgR0hIQTtMbzswO0w7MDkxNyAwOTNDOzs7O047Ozs7OworMDk1QjtERVZBTkFHQVJJIExFVFRFUiBaQTtMbzswO0w7MDkxQyAwOTNDOzs7O047Ozs7OworMDk1QztERVZBTkFHQVJJIExFVFRFUiBERERIQTtMbzswO0w7MDkyMSAwOTNDOzs7O047Ozs7OworMDk1RDtERVZBTkFHQVJJIExFVFRFUiBSSEE7TG87MDtMOzA5MjIgMDkzQzs7OztOOzs7OzsKKzA5NUU7REVWQU5BR0FSSSBMRVRURVIgRkE7TG87MDtMOzA5MkIgMDkzQzs7OztOOzs7OzsKKzA5NUY7REVWQU5BR0FSSSBMRVRURVIgWVlBO0xvOzA7TDswOTJGIDA5M0M7Ozs7Tjs7Ozs7CiswOTYwO0RFVkFOQUdBUkkgTEVUVEVSIFZPQ0FMSUMgUlI7TG87MDtMOzs7OztOOzs7OzsKKzA5NjE7REVWQU5BR0FSSSBMRVRURVIgVk9DQUxJQyBMTDtMbzswO0w7Ozs7O047Ozs7OworMDk2MjtERVZBTkFHQVJJIFZPV0VMIFNJR04gVk9DQUxJQyBMO01uOzA7T047Ozs7O047Ozs7OworMDk2MztERVZBTkFHQVJJIFZPV0VMIFNJR04gVk9DQUxJQyBMTDtNbjswO09OOzs7OztOOzs7OzsKKzA5NjQ7REVWQU5BR0FSSSBEQU5EQTtQbzswO0w7Ozs7O047Ozs7OworMDk2NTtERVZBTkFHQVJJIERPVUJMRSBEQU5EQTtQbzswO0w7Ozs7O047Ozs7OworMDk2NjtERVZBTkFHQVJJIERJR0lUIFpFUk87TmQ7MDtMOzswOzA7MDtOOzs7OzsKKzA5Njc7REVWQU5BR0FSSSBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzA5Njg7REVWQU5BR0FSSSBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzA5Njk7REVWQU5BR0FSSSBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMDk2QTtERVZBTkFHQVJJIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzA5NkI7REVWQU5BR0FSSSBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CiswOTZDO0RFVkFOQUdBUkkgRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CiswOTZEO0RFVkFOQUdBUkkgRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzA5NkU7REVWQU5BR0FSSSBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMDk2RjtERVZBTkFHQVJJIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzA5NzA7REVWQU5BR0FSSSBBQkJSRVZJQVRJT04gU0lHTjtQbzswO0w7Ozs7O047Ozs7OworMDk4MTtCRU5HQUxJIFNJR04gQ0FORFJBQklORFU7TW47MDtPTjs7Ozs7Tjs7Ozs7CiswOTgyO0JFTkdBTEkgU0lHTiBBTlVTVkFSQTtNYzswO0w7Ozs7O047Ozs7OworMDk4MztCRU5HQUxJIFNJR04gVklTQVJHQTtNYzswO0w7Ozs7O047Ozs7OworMDk4NTtCRU5HQUxJIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTg2O0JFTkdBTEkgTEVUVEVSIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTg3O0JFTkdBTEkgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzA5ODg7QkVOR0FMSSBMRVRURVIgSUk7TG87MDtMOzs7OztOOzs7OzsKKzA5ODk7QkVOR0FMSSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMDk4QTtCRU5HQUxJIExFVFRFUiBVVTtMbzswO0w7Ozs7O047Ozs7OworMDk4QjtCRU5HQUxJIExFVFRFUiBWT0NBTElDIFI7TG87MDtMOzs7OztOOzs7OzsKKzA5OEM7QkVOR0FMSSBMRVRURVIgVk9DQUxJQyBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOThGO0JFTkdBTEkgTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzA5OTA7QkVOR0FMSSBMRVRURVIgQUk7TG87MDtMOzs7OztOOzs7OzsKKzA5OTM7QkVOR0FMSSBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMDk5NDtCRU5HQUxJIExFVFRFUiBBVTtMbzswO0w7Ozs7O047Ozs7OworMDk5NTtCRU5HQUxJIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMDk5NjtCRU5HQUxJIExFVFRFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5OTc7QkVOR0FMSSBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzA5OTg7QkVOR0FMSSBMRVRURVIgR0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTk5O0JFTkdBTEkgTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMDk5QTtCRU5HQUxJIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMDk5QjtCRU5HQUxJIExFVFRFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5OUM7QkVOR0FMSSBMRVRURVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzA5OUQ7QkVOR0FMSSBMRVRURVIgSkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTlFO0JFTkdBTEkgTEVUVEVSIE5ZQTtMbzswO0w7Ozs7O047Ozs7OworMDk5RjtCRU5HQUxJIExFVFRFUiBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzA5QTA7QkVOR0FMSSBMRVRURVIgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMDlBMTtCRU5HQUxJIExFVFRFUiBEREE7TG87MDtMOzs7OztOOzs7OzsKKzA5QTI7QkVOR0FMSSBMRVRURVIgRERIQTtMbzswO0w7Ozs7O047Ozs7OworMDlBMztCRU5HQUxJIExFVFRFUiBOTkE7TG87MDtMOzs7OztOOzs7OzsKKzA5QTQ7QkVOR0FMSSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzA5QTU7QkVOR0FMSSBMRVRURVIgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUE2O0JFTkdBTEkgTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUE3O0JFTkdBTEkgTEVUVEVSIERIQTtMbzswO0w7Ozs7O047Ozs7OworMDlBODtCRU5HQUxJIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMDlBQTtCRU5HQUxJIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMDlBQjtCRU5HQUxJIExFVFRFUiBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5QUM7QkVOR0FMSSBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzA5QUQ7QkVOR0FMSSBMRVRURVIgQkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUFFO0JFTkdBTEkgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUFGO0JFTkdBTEkgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUIwO0JFTkdBTEkgTEVUVEVSIFJBO0xvOzA7TDswOUFDIDA5QkM7Ozs7Tjs7Ozs7CiswOUIyO0JFTkdBTEkgTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUI2O0JFTkdBTEkgTEVUVEVSIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMDlCNztCRU5HQUxJIExFVFRFUiBTU0E7TG87MDtMOzs7OztOOzs7OzsKKzA5Qjg7QkVOR0FMSSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzA5Qjk7QkVOR0FMSSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5QkM7QkVOR0FMSSBTSUdOIE5VS1RBO01uOzc7T047Ozs7O047Ozs7OworMDlCRTtCRU5HQUxJIFZPV0VMIFNJR04gQUE7TWM7MDtMOzs7OztOOzs7OzsKKzA5QkY7QkVOR0FMSSBWT1dFTCBTSUdOIEk7TWM7MDtMOzs7OztOOzs7OzsKKzA5QzA7QkVOR0FMSSBWT1dFTCBTSUdOIElJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOUMxO0JFTkdBTEkgVk9XRUwgU0lHTiBVO01uOzA7T047Ozs7O047Ozs7OworMDlDMjtCRU5HQUxJIFZPV0VMIFNJR04gVVU7TW47MDtPTjs7Ozs7Tjs7Ozs7CiswOUMzO0JFTkdBTEkgVk9XRUwgU0lHTiBWT0NBTElDIFI7TW47MDtPTjs7Ozs7Tjs7Ozs7CiswOUM0O0JFTkdBTEkgVk9XRUwgU0lHTiBWT0NBTElDIFJSO01uOzA7T047Ozs7O047Ozs7OworMDlDNztCRU5HQUxJIFZPV0VMIFNJR04gRTtNYzswO0w7Ozs7O047Ozs7OworMDlDODtCRU5HQUxJIFZPV0VMIFNJR04gQUk7TWM7MDtMOzs7OztOOzs7OzsKKzA5Q0I7QkVOR0FMSSBWT1dFTCBTSUdOIE87TWM7MDtMOzA5QzcgMDlCRTs7OztOOzs7OzsKKzA5Q0M7QkVOR0FMSSBWT1dFTCBTSUdOIEFVO01jOzA7TDswOUM3IDA5RDc7Ozs7Tjs7Ozs7CiswOUNEO0JFTkdBTEkgU0lHTiBWSVJBTUE7TW47OTtPTjs7Ozs7Tjs7Ozs7CiswOUQ3O0JFTkdBTEkgQVUgTEVOR1RIIE1BUks7TWM7MDtMOzs7OztOOzs7OzsKKzA5REM7QkVOR0FMSSBMRVRURVIgUlJBO0xvOzA7TDswOUExIDA5QkM7Ozs7Tjs7Ozs7CiswOUREO0JFTkdBTEkgTEVUVEVSIFJIQTtMbzswO0w7MDlBMiAwOUJDOzs7O047Ozs7OworMDlERjtCRU5HQUxJIExFVFRFUiBZWUE7TG87MDtMOzA5QUYgMDlCQzs7OztOOzs7OzsKKzA5RTA7QkVOR0FMSSBMRVRURVIgVk9DQUxJQyBSUjtMbzswO0w7Ozs7O047Ozs7OworMDlFMTtCRU5HQUxJIExFVFRFUiBWT0NBTElDIExMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUUyO0JFTkdBTEkgVk9XRUwgU0lHTiBWT0NBTElDIEw7TW47MDtPTjs7Ozs7Tjs7Ozs7CiswOUUzO0JFTkdBTEkgVk9XRUwgU0lHTiBWT0NBTElDIExMO01uOzA7T047Ozs7O047Ozs7OworMDlFNjtCRU5HQUxJIERJR0lUIFpFUk87TmQ7MDtMOzswOzA7MDtOOzs7OzsKKzA5RTc7QkVOR0FMSSBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzA5RTg7QkVOR0FMSSBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzA5RTk7QkVOR0FMSSBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMDlFQTtCRU5HQUxJIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzA5RUI7QkVOR0FMSSBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CiswOUVDO0JFTkdBTEkgRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CiswOUVEO0JFTkdBTEkgRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzA5RUU7QkVOR0FMSSBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMDlFRjtCRU5HQUxJIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzA5RjA7QkVOR0FMSSBMRVRURVIgUkEgV0lUSCBNSURETEUgRElBR09OQUw7TG87MDtMOzs7OztOOztBc3NhbWVzZTs7OworMDlGMTtCRU5HQUxJIExFVFRFUiBSQSBXSVRIIExPV0VSIERJQUdPTkFMO0xvOzA7TDs7Ozs7TjtCRU5HQUxJIExFVFRFUiBWQSBXSVRIIExPV0VSIERJQUdPTkFMO0Fzc2FtZXNlOzs7CiswOUYyO0JFTkdBTEkgUlVQRUUgTUFSSztTYzswO0VUOzs7OztOOzs7OzsKKzA5RjM7QkVOR0FMSSBSVVBFRSBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMDlGNDtCRU5HQUxJIENVUlJFTkNZIE5VTUVSQVRPUiBPTkU7Tm87MDtMOzs7OzE7Tjs7Ozs7CiswOUY1O0JFTkdBTEkgQ1VSUkVOQ1kgTlVNRVJBVE9SIFRXTztObzswO0w7Ozs7MjtOOzs7OzsKKzA5RjY7QkVOR0FMSSBDVVJSRU5DWSBOVU1FUkFUT1IgVEhSRUU7Tm87MDtMOzs7OzM7Tjs7Ozs7CiswOUY3O0JFTkdBTEkgQ1VSUkVOQ1kgTlVNRVJBVE9SIEZPVVI7Tm87MDtMOzs7OzQ7Tjs7Ozs7CiswOUY4O0JFTkdBTEkgQ1VSUkVOQ1kgTlVNRVJBVE9SIE9ORSBMRVNTIFRIQU4gVEhFIERFTk9NSU5BVE9SO05vOzA7TDs7OzstMTtOOzs7OzsKKzA5Rjk7QkVOR0FMSSBDVVJSRU5DWSBERU5PTUlOQVRPUiBTSVhURUVOO05vOzA7TDs7OzsxNjtOOzs7OzsKKzA5RkE7QkVOR0FMSSBJU1NIQVI7U287MDtMOzs7OztOOzs7OzsKKzBBMDI7R1VSTVVLSEkgU0lHTiBCSU5ESTtNbjswO09OOzs7OztOOzs7OzsKKzBBMDU7R1VSTVVLSEkgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMDY7R1VSTVVLSEkgTEVUVEVSIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTA3O0dVUk1VS0hJIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTA4O0dVUk1VS0hJIExFVFRFUiBJSTtMbzswO0w7Ozs7O047Ozs7OworMEEwOTtHVVJNVUtISSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMEEwQTtHVVJNVUtISSBMRVRURVIgVVU7TG87MDtMOzs7OztOOzs7OzsKKzBBMEY7R1VSTVVLSEkgTEVUVEVSIEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTEwO0dVUk1VS0hJIExFVFRFUiBBSTtMbzswO0w7Ozs7O047Ozs7OworMEExMztHVVJNVUtISSBMRVRURVIgT087TG87MDtMOzs7OztOOzs7OzsKKzBBMTQ7R1VSTVVLSEkgTEVUVEVSIEFVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTE1O0dVUk1VS0hJIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMEExNjtHVVJNVUtISSBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTE3O0dVUk1VS0hJIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMEExODtHVVJNVUtISSBMRVRURVIgR0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTE5O0dVUk1VS0hJIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzBBMUE7R1VSTVVLSEkgTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTFCO0dVUk1VS0hJIExFVFRFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMUM7R1VSTVVLSEkgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTFEO0dVUk1VS0hJIExFVFRFUiBKSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMUU7R1VSTVVLSEkgTEVUVEVSIE5ZQTtMbzswO0w7Ozs7O047Ozs7OworMEExRjtHVVJNVUtISSBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTIwO0dVUk1VS0hJIExFVFRFUiBUVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTIxO0dVUk1VS0hJIExFVFRFUiBEREE7TG87MDtMOzs7OztOOzs7OzsKKzBBMjI7R1VSTVVLSEkgTEVUVEVSIERESEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMjM7R1VSTVVLSEkgTEVUVEVSIE5OQTtMbzswO0w7Ozs7O047Ozs7OworMEEyNDtHVVJNVUtISSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMjU7R1VSTVVLSEkgTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEEyNjtHVVJNVUtISSBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzBBMjc7R1VSTVVLSEkgTEVUVEVSIERIQTtMbzswO0w7Ozs7O047Ozs7OworMEEyODtHVVJNVUtISSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzBBMkE7R1VSTVVLSEkgTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTJCO0dVUk1VS0hJIExFVFRFUiBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMkM7R1VSTVVLSEkgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTJEO0dVUk1VS0hJIExFVFRFUiBCSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMkU7R1VSTVVLSEkgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTJGO0dVUk1VS0hJIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMEEzMDtHVVJNVUtISSBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzBBMzI7R1VSTVVLSEkgTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTMzO0dVUk1VS0hJIExFVFRFUiBMTEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMzU7R1VSTVVLSEkgTEVUVEVSIFZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTM2O0dVUk1VS0hJIExFVFRFUiBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMzg7R1VSTVVLSEkgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTM5O0dVUk1VS0hJIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMEEzQztHVVJNVUtISSBTSUdOIE5VS1RBO01uOzc7T047Ozs7O047Ozs7OworMEEzRTtHVVJNVUtISSBWT1dFTCBTSUdOIEFBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQTNGO0dVUk1VS0hJIFZPV0VMIFNJR04gSTtNYzswO0w7Ozs7O047Ozs7OworMEE0MDtHVVJNVUtISSBWT1dFTCBTSUdOIElJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQTQxO0dVUk1VS0hJIFZPV0VMIFNJR04gVTtNbjswO09OOzs7OztOOzs7OzsKKzBBNDI7R1VSTVVLSEkgVk9XRUwgU0lHTiBVVTtNbjswO09OOzs7OztOOzs7OzsKKzBBNDc7R1VSTVVLSEkgVk9XRUwgU0lHTiBFRTtNbjswO09OOzs7OztOOzs7OzsKKzBBNDg7R1VSTVVLSEkgVk9XRUwgU0lHTiBBSTtNbjswO09OOzs7OztOOzs7OzsKKzBBNEI7R1VSTVVLSEkgVk9XRUwgU0lHTiBPTztNbjswO09OOzs7OztOOzs7OzsKKzBBNEM7R1VSTVVLSEkgVk9XRUwgU0lHTiBBVTtNbjswO09OOzs7OztOOzs7OzsKKzBBNEQ7R1VSTVVLSEkgU0lHTiBWSVJBTUE7TW47OTtPTjs7Ozs7Tjs7Ozs7CiswQTU5O0dVUk1VS0hJIExFVFRFUiBLSEhBO0xvOzA7TDswQTE2IDBBM0M7Ozs7Tjs7Ozs7CiswQTVBO0dVUk1VS0hJIExFVFRFUiBHSEhBO0xvOzA7TDswQTE3IDBBM0M7Ozs7Tjs7Ozs7CiswQTVCO0dVUk1VS0hJIExFVFRFUiBaQTtMbzswO0w7MEExQyAwQTNDOzs7O047Ozs7OworMEE1QztHVVJNVUtISSBMRVRURVIgUlJBO0xvOzA7TDswQTIxIDBBM0M7Ozs7Tjs7Ozs7CiswQTVFO0dVUk1VS0hJIExFVFRFUiBGQTtMbzswO0w7MEEyQiAwQTNDOzs7O047Ozs7OworMEE2NjtHVVJNVUtISSBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CiswQTY3O0dVUk1VS0hJIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMEE2ODtHVVJNVUtISSBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzBBNjk7R1VSTVVLSEkgRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzBBNkE7R1VSTVVLSEkgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMEE2QjtHVVJNVUtISSBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CiswQTZDO0dVUk1VS0hJIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMEE2RDtHVVJNVUtISSBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMEE2RTtHVVJNVUtISSBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMEE2RjtHVVJNVUtISSBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CiswQTcwO0dVUk1VS0hJIFRJUFBJO01uOzA7T047Ozs7O047Ozs7OworMEE3MTtHVVJNVUtISSBBRERBSztNbjswO09OOzs7OztOOzs7OzsKKzBBNzI7R1VSTVVLSEkgSVJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTczO0dVUk1VS0hJIFVSQTtMbzswO0w7Ozs7O047Ozs7OworMEE3NDtHVVJNVUtISSBFSyBPTktBUjtMbzswO0w7Ozs7O047Ozs7OworMEE4MTtHVUpBUkFUSSBTSUdOIENBTkRSQUJJTkRVO01uOzA7T047Ozs7O047Ozs7OworMEE4MjtHVUpBUkFUSSBTSUdOIEFOVVNWQVJBO01uOzA7T047Ozs7O047Ozs7OworMEE4MztHVUpBUkFUSSBTSUdOIFZJU0FSR0E7TWM7MDtMOzs7OztOOzs7OzsKKzBBODU7R1VKQVJBVEkgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzBBODY7R1VKQVJBVEkgTEVUVEVSIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTg3O0dVSkFSQVRJIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTg4O0dVSkFSQVRJIExFVFRFUiBJSTtMbzswO0w7Ozs7O047Ozs7OworMEE4OTtHVUpBUkFUSSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMEE4QTtHVUpBUkFUSSBMRVRURVIgVVU7TG87MDtMOzs7OztOOzs7OzsKKzBBOEI7R1VKQVJBVEkgTEVUVEVSIFZPQ0FMSUMgUjtMbzswO0w7Ozs7O047Ozs7OworMEE4RDtHVUpBUkFUSSBWT1dFTCBDQU5EUkEgRTtMbzswO0w7Ozs7O047Ozs7OworMEE4RjtHVUpBUkFUSSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMEE5MDtHVUpBUkFUSSBMRVRURVIgQUk7TG87MDtMOzs7OztOOzs7OzsKKzBBOTE7R1VKQVJBVEkgVk9XRUwgQ0FORFJBIE87TG87MDtMOzs7OztOOzs7OzsKKzBBOTM7R1VKQVJBVEkgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzBBOTQ7R1VKQVJBVEkgTEVUVEVSIEFVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTk1O0dVSkFSQVRJIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMEE5NjtHVUpBUkFUSSBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTk3O0dVSkFSQVRJIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMEE5ODtHVUpBUkFUSSBMRVRURVIgR0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTk5O0dVSkFSQVRJIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzBBOUE7R1VKQVJBVEkgTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTlCO0dVSkFSQVRJIExFVFRFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBOUM7R1VKQVJBVEkgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTlEO0dVSkFSQVRJIExFVFRFUiBKSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBOUU7R1VKQVJBVEkgTEVUVEVSIE5ZQTtMbzswO0w7Ozs7O047Ozs7OworMEE5RjtHVUpBUkFUSSBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUEwO0dVSkFSQVRJIExFVFRFUiBUVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUExO0dVSkFSQVRJIExFVFRFUiBEREE7TG87MDtMOzs7OztOOzs7OzsKKzBBQTI7R1VKQVJBVEkgTEVUVEVSIERESEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQTM7R1VKQVJBVEkgTEVUVEVSIE5OQTtMbzswO0w7Ozs7O047Ozs7OworMEFBNDtHVUpBUkFUSSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQTU7R1VKQVJBVEkgTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEFBNjtHVUpBUkFUSSBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzBBQTc7R1VKQVJBVEkgTEVUVEVSIERIQTtMbzswO0w7Ozs7O047Ozs7OworMEFBODtHVUpBUkFUSSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzBBQUE7R1VKQVJBVEkgTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUFCO0dVSkFSQVRJIExFVFRFUiBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQUM7R1VKQVJBVEkgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUFEO0dVSkFSQVRJIExFVFRFUiBCSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQUU7R1VKQVJBVEkgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUFGO0dVSkFSQVRJIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMEFCMDtHVUpBUkFUSSBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzBBQjI7R1VKQVJBVEkgTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUIzO0dVSkFSQVRJIExFVFRFUiBMTEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQjU7R1VKQVJBVEkgTEVUVEVSIFZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUI2O0dVSkFSQVRJIExFVFRFUiBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQjc7R1VKQVJBVEkgTEVUVEVSIFNTQTtMbzswO0w7Ozs7O047Ozs7OworMEFCODtHVUpBUkFUSSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzBBQjk7R1VKQVJBVEkgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUJDO0dVSkFSQVRJIFNJR04gTlVLVEE7TW47NztPTjs7Ozs7Tjs7Ozs7CiswQUJEO0dVSkFSQVRJIFNJR04gQVZBR1JBSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQkU7R1VKQVJBVEkgVk9XRUwgU0lHTiBBQTtNYzswO0w7Ozs7O047Ozs7OworMEFCRjtHVUpBUkFUSSBWT1dFTCBTSUdOIEk7TWM7MDtMOzs7OztOOzs7OzsKKzBBQzA7R1VKQVJBVEkgVk9XRUwgU0lHTiBJSTtNYzswO0w7Ozs7O047Ozs7OworMEFDMTtHVUpBUkFUSSBWT1dFTCBTSUdOIFU7TW47MDtPTjs7Ozs7Tjs7Ozs7CiswQUMyO0dVSkFSQVRJIFZPV0VMIFNJR04gVVU7TW47MDtPTjs7Ozs7Tjs7Ozs7CiswQUMzO0dVSkFSQVRJIFZPV0VMIFNJR04gVk9DQUxJQyBSO01uOzA7T047Ozs7O047Ozs7OworMEFDNDtHVUpBUkFUSSBWT1dFTCBTSUdOIFZPQ0FMSUMgUlI7TW47MDtPTjs7Ozs7Tjs7Ozs7CiswQUM1O0dVSkFSQVRJIFZPV0VMIFNJR04gQ0FORFJBIEU7TW47MDtPTjs7Ozs7Tjs7Ozs7CiswQUM3O0dVSkFSQVRJIFZPV0VMIFNJR04gRTtNbjswO09OOzs7OztOOzs7OzsKKzBBQzg7R1VKQVJBVEkgVk9XRUwgU0lHTiBBSTtNbjswO09OOzs7OztOOzs7OzsKKzBBQzk7R1VKQVJBVEkgVk9XRUwgU0lHTiBDQU5EUkEgTztNYzswO0w7Ozs7O047Ozs7OworMEFDQjtHVUpBUkFUSSBWT1dFTCBTSUdOIE87TWM7MDtMOzs7OztOOzs7OzsKKzBBQ0M7R1VKQVJBVEkgVk9XRUwgU0lHTiBBVTtNYzswO0w7Ozs7O047Ozs7OworMEFDRDtHVUpBUkFUSSBTSUdOIFZJUkFNQTtNbjs5O09OOzs7OztOOzs7OzsKKzBBRDA7R1VKQVJBVEkgT007TG87MDtMOzs7OztOOzs7OzsKKzBBRTA7R1VKQVJBVEkgTEVUVEVSIFZPQ0FMSUMgUlI7TG87MDtMOzs7OztOOzs7OzsKKzBBRTY7R1VKQVJBVEkgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMEFFNztHVUpBUkFUSSBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzBBRTg7R1VKQVJBVEkgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswQUU5O0dVSkFSQVRJIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswQUVBO0dVSkFSQVRJIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzBBRUI7R1VKQVJBVEkgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMEFFQztHVUpBUkFUSSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzBBRUQ7R1VKQVJBVEkgRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzBBRUU7R1VKQVJBVEkgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzBBRUY7R1VKQVJBVEkgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMEIwMTtPUklZQSBTSUdOIENBTkRSQUJJTkRVO01uOzA7T047Ozs7O047Ozs7OworMEIwMjtPUklZQSBTSUdOIEFOVVNWQVJBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQjAzO09SSVlBIFNJR04gVklTQVJHQTtNYzswO0w7Ozs7O047Ozs7OworMEIwNTtPUklZQSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMEIwNjtPUklZQSBMRVRURVIgQUE7TG87MDtMOzs7OztOOzs7OzsKKzBCMDc7T1JJWUEgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzBCMDg7T1JJWUEgTEVUVEVSIElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjA5O09SSVlBIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjBBO09SSVlBIExFVFRFUiBVVTtMbzswO0w7Ozs7O047Ozs7OworMEIwQjtPUklZQSBMRVRURVIgVk9DQUxJQyBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjBDO09SSVlBIExFVFRFUiBWT0NBTElDIEw7TG87MDtMOzs7OztOOzs7OzsKKzBCMEY7T1JJWUEgTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzBCMTA7T1JJWUEgTEVUVEVSIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjEzO09SSVlBIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjE0O09SSVlBIExFVFRFUiBBVTtMbzswO0w7Ozs7O047Ozs7OworMEIxNTtPUklZQSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzBCMTY7T1JJWUEgTEVUVEVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMEIxNztPUklZQSBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzBCMTg7T1JJWUEgTEVUVEVSIEdIQTtMbzswO0w7Ozs7O047Ozs7OworMEIxOTtPUklZQSBMRVRURVIgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjFBO09SSVlBIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMEIxQjtPUklZQSBMRVRURVIgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjFDO09SSVlBIExFVFRFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworMEIxRDtPUklZQSBMRVRURVIgSkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjFFO09SSVlBIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzBCMUY7T1JJWUEgTEVUVEVSIFRUQTtMbzswO0w7Ozs7O047Ozs7OworMEIyMDtPUklZQSBMRVRURVIgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEIyMTtPUklZQSBMRVRURVIgRERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjIyO09SSVlBIExFVFRFUiBEREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjIzO09SSVlBIExFVFRFUiBOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBCMjQ7T1JJWUEgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjI1O09SSVlBIExFVFRFUiBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMjY7T1JJWUEgTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjI3O09SSVlBIExFVFRFUiBESEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMjg7T1JJWUEgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjJBO09SSVlBIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMEIyQjtPUklZQSBMRVRURVIgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjJDO09SSVlBIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMEIyRDtPUklZQSBMRVRURVIgQkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjJFO09SSVlBIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMEIyRjtPUklZQSBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzBCMzA7T1JJWUEgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjMyO09SSVlBIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMEIzMztPUklZQSBMRVRURVIgTExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjM2O09SSVlBIExFVFRFUiBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMzc7T1JJWUEgTEVUVEVSIFNTQTtMbzswO0w7Ozs7O047Ozs7OworMEIzODtPUklZQSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzBCMzk7T1JJWUEgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjNDO09SSVlBIFNJR04gTlVLVEE7TW47NztPTjs7Ozs7Tjs7Ozs7CiswQjNEO09SSVlBIFNJR04gQVZBR1JBSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCM0U7T1JJWUEgVk9XRUwgU0lHTiBBQTtNYzswO0w7Ozs7O047Ozs7OworMEIzRjtPUklZQSBWT1dFTCBTSUdOIEk7TW47MDtPTjs7Ozs7Tjs7Ozs7CiswQjQwO09SSVlBIFZPV0VMIFNJR04gSUk7TWM7MDtMOzs7OztOOzs7OzsKKzBCNDE7T1JJWUEgVk9XRUwgU0lHTiBVO01uOzA7T047Ozs7O047Ozs7OworMEI0MjtPUklZQSBWT1dFTCBTSUdOIFVVO01uOzA7T047Ozs7O047Ozs7OworMEI0MztPUklZQSBWT1dFTCBTSUdOIFZPQ0FMSUMgUjtNbjswO09OOzs7OztOOzs7OzsKKzBCNDc7T1JJWUEgVk9XRUwgU0lHTiBFO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQjQ4O09SSVlBIFZPV0VMIFNJR04gQUk7TWM7MDtMOzBCNDcgMEI1Njs7OztOOzs7OzsKKzBCNEI7T1JJWUEgVk9XRUwgU0lHTiBPO01jOzA7TDswQjQ3IDBCM0U7Ozs7Tjs7Ozs7CiswQjRDO09SSVlBIFZPV0VMIFNJR04gQVU7TWM7MDtMOzBCNDcgMEI1Nzs7OztOOzs7OzsKKzBCNEQ7T1JJWUEgU0lHTiBWSVJBTUE7TW47OTtPTjs7Ozs7Tjs7Ozs7CiswQjU2O09SSVlBIEFJIExFTkdUSCBNQVJLO01uOzA7T047Ozs7O047Ozs7OworMEI1NztPUklZQSBBVSBMRU5HVEggTUFSSztNYzswO0w7Ozs7O047Ozs7OworMEI1QztPUklZQSBMRVRURVIgUlJBO0xvOzA7TDswQjIxIDBCM0M7Ozs7Tjs7Ozs7CiswQjVEO09SSVlBIExFVFRFUiBSSEE7TG87MDtMOzBCMjIgMEIzQzs7OztOOzs7OzsKKzBCNUY7T1JJWUEgTEVUVEVSIFlZQTtMbzswO0w7MEIyRiAwQjNDOzs7O047Ozs7OworMEI2MDtPUklZQSBMRVRURVIgVk9DQUxJQyBSUjtMbzswO0w7Ozs7O047Ozs7OworMEI2MTtPUklZQSBMRVRURVIgVk9DQUxJQyBMTDtMbzswO0w7Ozs7O047Ozs7OworMEI2NjtPUklZQSBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CiswQjY3O09SSVlBIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMEI2ODtPUklZQSBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzBCNjk7T1JJWUEgRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzBCNkE7T1JJWUEgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMEI2QjtPUklZQSBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CiswQjZDO09SSVlBIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMEI2RDtPUklZQSBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMEI2RTtPUklZQSBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMEI2RjtPUklZQSBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CiswQjcwO09SSVlBIElTU0hBUjtTbzswO0w7Ozs7O047Ozs7OworMEI4MjtUQU1JTCBTSUdOIEFOVVNWQVJBO01uOzA7T047Ozs7O047Ozs7OworMEI4MztUQU1JTCBTSUdOIFZJU0FSR0E7TWM7MDtMOzs7OztOOzs7OzsKKzBCODU7VEFNSUwgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzBCODY7VEFNSUwgTEVUVEVSIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjg3O1RBTUlMIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjg4O1RBTUlMIExFVFRFUiBJSTtMbzswO0w7Ozs7O047Ozs7OworMEI4OTtUQU1JTCBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMEI4QTtUQU1JTCBMRVRURVIgVVU7TG87MDtMOzs7OztOOzs7OzsKKzBCOEU7VEFNSUwgTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzBCOEY7VEFNSUwgTEVUVEVSIEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjkwO1RBTUlMIExFVFRFUiBBSTtMbzswO0w7Ozs7O047Ozs7OworMEI5MjtUQU1JTCBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMEI5MztUQU1JTCBMRVRURVIgT087TG87MDtMOzs7OztOOzs7OzsKKzBCOTQ7VEFNSUwgTEVUVEVSIEFVO0xvOzA7TDswQjkyIDBCRDc7Ozs7Tjs7Ozs7CiswQjk1O1RBTUlMIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMEI5OTtUQU1JTCBMRVRURVIgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjlBO1RBTUlMIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMEI5QztUQU1JTCBMRVRURVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzBCOUU7VEFNSUwgTEVUVEVSIE5ZQTtMbzswO0w7Ozs7O047Ozs7OworMEI5RjtUQU1JTCBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkEzO1RBTUlMIExFVFRFUiBOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBCQTQ7VEFNSUwgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkE4O1RBTUlMIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMEJBOTtUQU1JTCBMRVRURVIgTk5OQTtMbzswO0w7Ozs7O047Ozs7OworMEJBQTtUQU1JTCBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzBCQUU7VEFNSUwgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkFGO1RBTUlMIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMEJCMDtUQU1JTCBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzBCQjE7VEFNSUwgTEVUVEVSIFJSQTtMbzswO0w7Ozs7O047Ozs7OworMEJCMjtUQU1JTCBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzBCQjM7VEFNSUwgTEVUVEVSIExMQTtMbzswO0w7Ozs7O047Ozs7OworMEJCNDtUQU1JTCBMRVRURVIgTExMQTtMbzswO0w7Ozs7O047Ozs7OworMEJCNTtUQU1JTCBMRVRURVIgVkE7TG87MDtMOzs7OztOOzs7OzsKKzBCQjc7VEFNSUwgTEVUVEVSIFNTQTtMbzswO0w7Ozs7O047Ozs7OworMEJCODtUQU1JTCBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzBCQjk7VEFNSUwgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkJFO1RBTUlMIFZPV0VMIFNJR04gQUE7TWM7MDtMOzs7OztOOzs7OzsKKzBCQkY7VEFNSUwgVk9XRUwgU0lHTiBJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQkMwO1RBTUlMIFZPV0VMIFNJR04gSUk7TW47MDtPTjs7Ozs7Tjs7Ozs7CiswQkMxO1RBTUlMIFZPV0VMIFNJR04gVTtNYzswO0w7Ozs7O047Ozs7OworMEJDMjtUQU1JTCBWT1dFTCBTSUdOIFVVO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQkM2O1RBTUlMIFZPV0VMIFNJR04gRTtNYzswO0w7Ozs7O047Ozs7OworMEJDNztUQU1JTCBWT1dFTCBTSUdOIEVFO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQkM4O1RBTUlMIFZPV0VMIFNJR04gQUk7TWM7MDtMOzs7OztOOzs7OzsKKzBCQ0E7VEFNSUwgVk9XRUwgU0lHTiBPO01jOzA7TDswQkM2IDBCQkU7Ozs7Tjs7Ozs7CiswQkNCO1RBTUlMIFZPV0VMIFNJR04gT087TWM7MDtMOzBCQzcgMEJCRTs7OztOOzs7OzsKKzBCQ0M7VEFNSUwgVk9XRUwgU0lHTiBBVTtNYzswO0w7MEJDNiAwQkQ3Ozs7O047Ozs7OworMEJDRDtUQU1JTCBTSUdOIFZJUkFNQTtNbjs5O09OOzs7OztOOzs7OzsKKzBCRDc7VEFNSUwgQVUgTEVOR1RIIE1BUks7TWM7MDtMOzs7OztOOzs7OzsKKzBCRTc7VEFNSUwgRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CiswQkU4O1RBTUlMIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMEJFOTtUQU1JTCBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMEJFQTtUQU1JTCBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CiswQkVCO1RBTUlMIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzBCRUM7VEFNSUwgRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CiswQkVEO1RBTUlMIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CiswQkVFO1RBTUlMIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswQkVGO1RBTUlMIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzBCRjA7VEFNSUwgTlVNQkVSIFRFTjtObzswO0w7Ozs7MTA7Tjs7Ozs7CiswQkYxO1RBTUlMIE5VTUJFUiBPTkUgSFVORFJFRDtObzswO0w7Ozs7MTAwO047Ozs7OworMEJGMjtUQU1JTCBOVU1CRVIgT05FIFRIT1VTQU5EO05vOzA7TDs7OzsxMDAwO047Ozs7OworMEMwMTtURUxVR1UgU0lHTiBDQU5EUkFCSU5EVTtNYzswO0w7Ozs7O047Ozs7OworMEMwMjtURUxVR1UgU0lHTiBBTlVTVkFSQTtNYzswO0w7Ozs7O047Ozs7OworMEMwMztURUxVR1UgU0lHTiBWSVNBUkdBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzA1O1RFTFVHVSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMEMwNjtURUxVR1UgTEVUVEVSIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzA3O1RFTFVHVSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMEMwODtURUxVR1UgTEVUVEVSIElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzA5O1RFTFVHVSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMEMwQTtURUxVR1UgTEVUVEVSIFVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzBCO1RFTFVHVSBMRVRURVIgVk9DQUxJQyBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzBDO1RFTFVHVSBMRVRURVIgVk9DQUxJQyBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzBFO1RFTFVHVSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMEMwRjtURUxVR1UgTEVUVEVSIEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzEwO1RFTFVHVSBMRVRURVIgQUk7TG87MDtMOzs7OztOOzs7OzsKKzBDMTI7VEVMVUdVIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzEzO1RFTFVHVSBMRVRURVIgT087TG87MDtMOzs7OztOOzs7OzsKKzBDMTQ7VEVMVUdVIExFVFRFUiBBVTtMbzswO0w7Ozs7O047Ozs7OworMEMxNTtURUxVR1UgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzE2O1RFTFVHVSBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzE3O1RFTFVHVSBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzBDMTg7VEVMVUdVIExFVFRFUiBHSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMTk7VEVMVUdVIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzBDMUE7VEVMVUdVIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMEMxQjtURUxVR1UgTEVUVEVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMEMxQztURUxVR1UgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzFEO1RFTFVHVSBMRVRURVIgSkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzFFO1RFTFVHVSBMRVRURVIgTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzFGO1RFTFVHVSBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzIwO1RFTFVHVSBMRVRURVIgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEMyMTtURUxVR1UgTEVUVEVSIEREQTtMbzswO0w7Ozs7O047Ozs7OworMEMyMjtURUxVR1UgTEVUVEVSIERESEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMjM7VEVMVUdVIExFVFRFUiBOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBDMjQ7VEVMVUdVIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMEMyNTtURUxVR1UgTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEMyNjtURUxVR1UgTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzI3O1RFTFVHVSBMRVRURVIgREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzI4O1RFTFVHVSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzBDMkE7VEVMVUdVIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMEMyQjtURUxVR1UgTEVUVEVSIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMEMyQztURUxVR1UgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzJEO1RFTFVHVSBMRVRURVIgQkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzJFO1RFTFVHVSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzBDMkY7VEVMVUdVIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMEMzMDtURUxVR1UgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzMxO1RFTFVHVSBMRVRURVIgUlJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzMyO1RFTFVHVSBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMzM7VEVMVUdVIExFVFRFUiBMTEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMzU7VEVMVUdVIExFVFRFUiBWQTtMbzswO0w7Ozs7O047Ozs7OworMEMzNjtURUxVR1UgTEVUVEVSIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMEMzNztURUxVR1UgTEVUVEVSIFNTQTtMbzswO0w7Ozs7O047Ozs7OworMEMzODtURUxVR1UgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzM5O1RFTFVHVSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDM0U7VEVMVUdVIFZPV0VMIFNJR04gQUE7TW47MDtPTjs7Ozs7Tjs7Ozs7CiswQzNGO1RFTFVHVSBWT1dFTCBTSUdOIEk7TW47MDtPTjs7Ozs7Tjs7Ozs7CiswQzQwO1RFTFVHVSBWT1dFTCBTSUdOIElJO01uOzA7T047Ozs7O047Ozs7OworMEM0MTtURUxVR1UgVk9XRUwgU0lHTiBVO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzQyO1RFTFVHVSBWT1dFTCBTSUdOIFVVO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzQzO1RFTFVHVSBWT1dFTCBTSUdOIFZPQ0FMSUMgUjtNYzswO0w7Ozs7O047Ozs7OworMEM0NDtURUxVR1UgVk9XRUwgU0lHTiBWT0NBTElDIFJSO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzQ2O1RFTFVHVSBWT1dFTCBTSUdOIEU7TW47ODQ7T047Ozs7O047Ozs7OworMEM0NztURUxVR1UgVk9XRUwgU0lHTiBFRTtNbjswO09OOzs7OztOOzs7OzsKKzBDNDg7VEVMVUdVIFZPV0VMIFNJR04gQUk7TW47MDtPTjswQzQ2IDBDNTY7Ozs7Tjs7Ozs7CiswQzRBO1RFTFVHVSBWT1dFTCBTSUdOIE87TW47MDtPTjs7Ozs7Tjs7Ozs7CiswQzRCO1RFTFVHVSBWT1dFTCBTSUdOIE9PO01uOzA7T047Ozs7O047Ozs7OworMEM0QztURUxVR1UgVk9XRUwgU0lHTiBBVTtNbjswO09OOzs7OztOOzs7OzsKKzBDNEQ7VEVMVUdVIFNJR04gVklSQU1BO01uOzk7T047Ozs7O047Ozs7OworMEM1NTtURUxVR1UgTEVOR1RIIE1BUks7TW47ODQ7T047Ozs7O047Ozs7OworMEM1NjtURUxVR1UgQUkgTEVOR1RIIE1BUks7TW47OTE7T047Ozs7O047Ozs7OworMEM2MDtURUxVR1UgTEVUVEVSIFZPQ0FMSUMgUlI7TG87MDtMOzs7OztOOzs7OzsKKzBDNjE7VEVMVUdVIExFVFRFUiBWT0NBTElDIExMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzY2O1RFTFVHVSBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CiswQzY3O1RFTFVHVSBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzBDNjg7VEVMVUdVIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMEM2OTtURUxVR1UgRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzBDNkE7VEVMVUdVIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzBDNkI7VEVMVUdVIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzBDNkM7VEVMVUdVIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMEM2RDtURUxVR1UgRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzBDNkU7VEVMVUdVIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswQzZGO1RFTFVHVSBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CiswQzgyO0tBTk5BREEgU0lHTiBBTlVTVkFSQTtNYzswO0w7Ozs7O047Ozs7OworMEM4MztLQU5OQURBIFNJR04gVklTQVJHQTtNYzswO0w7Ozs7O047Ozs7OworMEM4NTtLQU5OQURBIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzg2O0tBTk5BREEgTEVUVEVSIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzg3O0tBTk5BREEgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzBDODg7S0FOTkFEQSBMRVRURVIgSUk7TG87MDtMOzs7OztOOzs7OzsKKzBDODk7S0FOTkFEQSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMEM4QTtLQU5OQURBIExFVFRFUiBVVTtMbzswO0w7Ozs7O047Ozs7OworMEM4QjtLQU5OQURBIExFVFRFUiBWT0NBTElDIFI7TG87MDtMOzs7OztOOzs7OzsKKzBDOEM7S0FOTkFEQSBMRVRURVIgVk9DQUxJQyBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzhFO0tBTk5BREEgTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzBDOEY7S0FOTkFEQSBMRVRURVIgRUU7TG87MDtMOzs7OztOOzs7OzsKKzBDOTA7S0FOTkFEQSBMRVRURVIgQUk7TG87MDtMOzs7OztOOzs7OzsKKzBDOTI7S0FOTkFEQSBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMEM5MztLQU5OQURBIExFVFRFUiBPTztMbzswO0w7Ozs7O047Ozs7OworMEM5NDtLQU5OQURBIExFVFRFUiBBVTtMbzswO0w7Ozs7O047Ozs7OworMEM5NTtLQU5OQURBIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMEM5NjtLQU5OQURBIExFVFRFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDOTc7S0FOTkFEQSBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzBDOTg7S0FOTkFEQSBMRVRURVIgR0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzk5O0tBTk5BREEgTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMEM5QTtLQU5OQURBIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMEM5QjtLQU5OQURBIExFVFRFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDOUM7S0FOTkFEQSBMRVRURVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzBDOUQ7S0FOTkFEQSBMRVRURVIgSkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzlFO0tBTk5BREEgTEVUVEVSIE5ZQTtMbzswO0w7Ozs7O047Ozs7OworMEM5RjtLQU5OQURBIExFVFRFUiBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQTA7S0FOTkFEQSBMRVRURVIgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMENBMTtLQU5OQURBIExFVFRFUiBEREE7TG87MDtMOzs7OztOOzs7OzsKKzBDQTI7S0FOTkFEQSBMRVRURVIgRERIQTtMbzswO0w7Ozs7O047Ozs7OworMENBMztLQU5OQURBIExFVFRFUiBOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBDQTQ7S0FOTkFEQSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQTU7S0FOTkFEQSBMRVRURVIgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0E2O0tBTk5BREEgTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0E3O0tBTk5BREEgTEVUVEVSIERIQTtMbzswO0w7Ozs7O047Ozs7OworMENBODtLQU5OQURBIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMENBQTtLQU5OQURBIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMENBQjtLQU5OQURBIExFVFRFUiBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQUM7S0FOTkFEQSBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzBDQUQ7S0FOTkFEQSBMRVRURVIgQkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0FFO0tBTk5BREEgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0FGO0tBTk5BREEgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0IwO0tBTk5BREEgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0IxO0tBTk5BREEgTEVUVEVSIFJSQTtMbzswO0w7Ozs7O047Ozs7OworMENCMjtLQU5OQURBIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMENCMztLQU5OQURBIExFVFRFUiBMTEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQjU7S0FOTkFEQSBMRVRURVIgVkE7TG87MDtMOzs7OztOOzs7OzsKKzBDQjY7S0FOTkFEQSBMRVRURVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0I3O0tBTk5BREEgTEVUVEVSIFNTQTtMbzswO0w7Ozs7O047Ozs7OworMENCODtLQU5OQURBIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMENCOTtLQU5OQURBIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMENCRTtLQU5OQURBIFZPV0VMIFNJR04gQUE7TWM7MDtMOzs7OztOOzs7OzsKKzBDQkY7S0FOTkFEQSBWT1dFTCBTSUdOIEk7TW47MDtPTjs7Ozs7Tjs7Ozs7CiswQ0MwO0tBTk5BREEgVk9XRUwgU0lHTiBJSTtNYzswO0w7MENCRiAwQ0Q1Ozs7O047Ozs7OworMENDMTtLQU5OQURBIFZPV0VMIFNJR04gVTtNYzswO0w7Ozs7O047Ozs7OworMENDMjtLQU5OQURBIFZPV0VMIFNJR04gVVU7TWM7MDtMOzs7OztOOzs7OzsKKzBDQzM7S0FOTkFEQSBWT1dFTCBTSUdOIFZPQ0FMSUMgUjtNYzswO0w7Ozs7O047Ozs7OworMENDNDtLQU5OQURBIFZPV0VMIFNJR04gVk9DQUxJQyBSUjtNYzswO0w7Ozs7O047Ozs7OworMENDNjtLQU5OQURBIFZPV0VMIFNJR04gRTtNbjswO09OOzs7OztOOzs7OzsKKzBDQzc7S0FOTkFEQSBWT1dFTCBTSUdOIEVFO01jOzA7TDswQ0M2IDBDRDU7Ozs7Tjs7Ozs7CiswQ0M4O0tBTk5BREEgVk9XRUwgU0lHTiBBSTtNYzswO0w7MENDNiAwQ0Q2Ozs7O047Ozs7OworMENDQTtLQU5OQURBIFZPV0VMIFNJR04gTztNYzswO0w7MENDNiAwQ0MyOzs7O047Ozs7OworMENDQjtLQU5OQURBIFZPV0VMIFNJR04gT087TWM7MDtMOzBDQ0EgMENENTs7OztOOzs7OzsKKzBDQ0M7S0FOTkFEQSBWT1dFTCBTSUdOIEFVO01uOzA7T047Ozs7O047Ozs7OworMENDRDtLQU5OQURBIFNJR04gVklSQU1BO01uOzk7T047Ozs7O047Ozs7OworMENENTtLQU5OQURBIExFTkdUSCBNQVJLO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQ0Q2O0tBTk5BREEgQUkgTEVOR1RIIE1BUks7TWM7MDtMOzs7OztOOzs7OzsKKzBDREU7S0FOTkFEQSBMRVRURVIgRkE7TG87MDtMOzs7OztOOzs7OzsKKzBDRTA7S0FOTkFEQSBMRVRURVIgVk9DQUxJQyBSUjtMbzswO0w7Ozs7O047Ozs7OworMENFMTtLQU5OQURBIExFVFRFUiBWT0NBTElDIExMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0U2O0tBTk5BREEgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMENFNztLQU5OQURBIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMENFODtLQU5OQURBIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMENFOTtLQU5OQURBIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswQ0VBO0tBTk5BREEgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMENFQjtLQU5OQURBIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzBDRUM7S0FOTkFEQSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzBDRUQ7S0FOTkFEQSBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMENFRTtLQU5OQURBIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswQ0VGO0tBTk5BREEgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMEQwMjtNQUxBWUFMQU0gU0lHTiBBTlVTVkFSQTtNYzswO0w7Ozs7O047Ozs7OworMEQwMztNQUxBWUFMQU0gU0lHTiBWSVNBUkdBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswRDA1O01BTEFZQUxBTSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMEQwNjtNQUxBWUFMQU0gTEVUVEVSIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDA3O01BTEFZQUxBTSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMEQwODtNQUxBWUFMQU0gTEVUVEVSIElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDA5O01BTEFZQUxBTSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMEQwQTtNQUxBWUFMQU0gTEVUVEVSIFVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDBCO01BTEFZQUxBTSBMRVRURVIgVk9DQUxJQyBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDBDO01BTEFZQUxBTSBMRVRURVIgVk9DQUxJQyBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDBFO01BTEFZQUxBTSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMEQwRjtNQUxBWUFMQU0gTEVUVEVSIEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDEwO01BTEFZQUxBTSBMRVRURVIgQUk7TG87MDtMOzs7OztOOzs7OzsKKzBEMTI7TUFMQVlBTEFNIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDEzO01BTEFZQUxBTSBMRVRURVIgT087TG87MDtMOzs7OztOOzs7OzsKKzBEMTQ7TUFMQVlBTEFNIExFVFRFUiBBVTtMbzswO0w7Ozs7O047Ozs7OworMEQxNTtNQUxBWUFMQU0gTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDE2O01BTEFZQUxBTSBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDE3O01BTEFZQUxBTSBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzBEMTg7TUFMQVlBTEFNIExFVFRFUiBHSEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMTk7TUFMQVlBTEFNIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzBEMUE7TUFMQVlBTEFNIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMEQxQjtNQUxBWUFMQU0gTEVUVEVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMEQxQztNQUxBWUFMQU0gTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDFEO01BTEFZQUxBTSBMRVRURVIgSkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDFFO01BTEFZQUxBTSBMRVRURVIgTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDFGO01BTEFZQUxBTSBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDIwO01BTEFZQUxBTSBMRVRURVIgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEQyMTtNQUxBWUFMQU0gTEVUVEVSIEREQTtMbzswO0w7Ozs7O047Ozs7OworMEQyMjtNQUxBWUFMQU0gTEVUVEVSIERESEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMjM7TUFMQVlBTEFNIExFVFRFUiBOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEMjQ7TUFMQVlBTEFNIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMEQyNTtNQUxBWUFMQU0gTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEQyNjtNQUxBWUFMQU0gTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDI3O01BTEFZQUxBTSBMRVRURVIgREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDI4O01BTEFZQUxBTSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEMkE7TUFMQVlBTEFNIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMEQyQjtNQUxBWUFMQU0gTEVUVEVSIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMEQyQztNQUxBWUFMQU0gTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDJEO01BTEFZQUxBTSBMRVRURVIgQkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDJFO01BTEFZQUxBTSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzBEMkY7TUFMQVlBTEFNIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMEQzMDtNQUxBWUFMQU0gTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDMxO01BTEFZQUxBTSBMRVRURVIgUlJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDMyO01BTEFZQUxBTSBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMzM7TUFMQVlBTEFNIExFVFRFUiBMTEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMzQ7TUFMQVlBTEFNIExFVFRFUiBMTExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDM1O01BTEFZQUxBTSBMRVRURVIgVkE7TG87MDtMOzs7OztOOzs7OzsKKzBEMzY7TUFMQVlBTEFNIExFVFRFUiBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMzc7TUFMQVlBTEFNIExFVFRFUiBTU0E7TG87MDtMOzs7OztOOzs7OzsKKzBEMzg7TUFMQVlBTEFNIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMEQzOTtNQUxBWUFMQU0gTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDNFO01BTEFZQUxBTSBWT1dFTCBTSUdOIEFBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswRDNGO01BTEFZQUxBTSBWT1dFTCBTSUdOIEk7TWM7MDtMOzs7OztOOzs7OzsKKzBENDA7TUFMQVlBTEFNIFZPV0VMIFNJR04gSUk7TWM7MDtMOzs7OztOOzs7OzsKKzBENDE7TUFMQVlBTEFNIFZPV0VMIFNJR04gVTtNbjswO09OOzs7OztOOzs7OzsKKzBENDI7TUFMQVlBTEFNIFZPV0VMIFNJR04gVVU7TW47MDtPTjs7Ozs7Tjs7Ozs7CiswRDQzO01BTEFZQUxBTSBWT1dFTCBTSUdOIFZPQ0FMSUMgUjtNbjswO09OOzs7OztOOzs7OzsKKzBENDY7TUFMQVlBTEFNIFZPV0VMIFNJR04gRTtNYzswO0w7Ozs7O047Ozs7OworMEQ0NztNQUxBWUFMQU0gVk9XRUwgU0lHTiBFRTtNYzswO0w7Ozs7O047Ozs7OworMEQ0ODtNQUxBWUFMQU0gVk9XRUwgU0lHTiBBSTtNYzswO0w7Ozs7O047Ozs7OworMEQ0QTtNQUxBWUFMQU0gVk9XRUwgU0lHTiBPO01jOzA7TDswRDQ2IDBEM0U7Ozs7Tjs7Ozs7CiswRDRCO01BTEFZQUxBTSBWT1dFTCBTSUdOIE9PO01jOzA7TDswRDQ3IDBEM0U7Ozs7Tjs7Ozs7CiswRDRDO01BTEFZQUxBTSBWT1dFTCBTSUdOIEFVO01jOzA7TDswRDQ2IDBENTc7Ozs7Tjs7Ozs7CiswRDREO01BTEFZQUxBTSBTSUdOIFZJUkFNQTtNbjs5O09OOzs7OztOOzs7OzsKKzBENTc7TUFMQVlBTEFNIEFVIExFTkdUSCBNQVJLO01jOzA7TDs7Ozs7Tjs7Ozs7CiswRDYwO01BTEFZQUxBTSBMRVRURVIgVk9DQUxJQyBSUjtMbzswO0w7Ozs7O047Ozs7OworMEQ2MTtNQUxBWUFMQU0gTEVUVEVSIFZPQ0FMSUMgTEw7TG87MDtMOzs7OztOOzs7OzsKKzBENjY7TUFMQVlBTEFNIERJR0lUIFpFUk87TmQ7MDtMOzswOzA7MDtOOzs7OzsKKzBENjc7TUFMQVlBTEFNIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMEQ2ODtNQUxBWUFMQU0gRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswRDY5O01BTEFZQUxBTSBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMEQ2QTtNQUxBWUFMQU0gRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMEQ2QjtNQUxBWUFMQU0gRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMEQ2QztNQUxBWUFMQU0gRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CiswRDZEO01BTEFZQUxBTSBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMEQ2RTtNQUxBWUFMQU0gRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzBENkY7TUFMQVlBTEFNIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzBFMDE7VEhBSSBDSEFSQUNURVIgS08gS0FJO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBLTyBLQUk7Ozs7CiswRTAyO1RIQUkgQ0hBUkFDVEVSIEtITyBLSEFJO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBLSE8gS0hBSTs7OzsKKzBFMDM7VEhBSSBDSEFSQUNURVIgS0hPIEtIVUFUO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBLSE8gS0hVQVQ7Ozs7CiswRTA0O1RIQUkgQ0hBUkFDVEVSIEtITyBLSFdBSTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgS0hPIEtIV0FJOzs7OworMEUwNTtUSEFJIENIQVJBQ1RFUiBLSE8gS0hPTjtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgS0hPIEtIT047Ozs7CiswRTA2O1RIQUkgQ0hBUkFDVEVSIEtITyBSQUtIQU5HO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBLSE8gUkFLSEFORzs7OzsKKzBFMDc7VEhBSSBDSEFSQUNURVIgTkdPIE5HVTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgTkdPIE5HVTs7OzsKKzBFMDg7VEhBSSBDSEFSQUNURVIgQ0hPIENIQU47TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIENITyBDSEFOOzs7OworMEUwOTtUSEFJIENIQVJBQ1RFUiBDSE8gQ0hJTkc7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIENITyBDSElORzs7OzsKKzBFMEE7VEhBSSBDSEFSQUNURVIgQ0hPIENIQU5HO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBDSE8gQ0hBTkc7Ozs7CiswRTBCO1RIQUkgQ0hBUkFDVEVSIFNPIFNPO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBTTyBTTzs7OzsKKzBFMEM7VEhBSSBDSEFSQUNURVIgQ0hPIENIT0U7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIENITyBDSE9FOzs7OworMEUwRDtUSEFJIENIQVJBQ1RFUiBZTyBZSU5HO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBZTyBZSU5HOzs7OworMEUwRTtUSEFJIENIQVJBQ1RFUiBETyBDSEFEQTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgRE8gQ0hBREE7Ozs7CiswRTBGO1RIQUkgQ0hBUkFDVEVSIFRPIFBBVEFLO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBUTyBQQVRBSzs7OzsKKzBFMTA7VEhBSSBDSEFSQUNURVIgVEhPIFRIQU47TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFRITyBUSEFOOzs7OworMEUxMTtUSEFJIENIQVJBQ1RFUiBUSE8gTkFOR01PTlRITztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgVEhPIE5BTkdNT05USE87Ozs7CiswRTEyO1RIQUkgQ0hBUkFDVEVSIFRITyBQSFVUSEFPO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBUSE8gUEhVVEhBTzs7OzsKKzBFMTM7VEhBSSBDSEFSQUNURVIgTk8gTkVOO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBOTyBORU47Ozs7CiswRTE0O1RIQUkgQ0hBUkFDVEVSIERPIERFSztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgRE8gREVLOzs7OworMEUxNTtUSEFJIENIQVJBQ1RFUiBUTyBUQU87TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFRPIFRBTzs7OzsKKzBFMTY7VEhBSSBDSEFSQUNURVIgVEhPIFRIVU5HO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBUSE8gVEhVTkc7Ozs7CiswRTE3O1RIQUkgQ0hBUkFDVEVSIFRITyBUSEFIQU47TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFRITyBUSEFIQU47Ozs7CiswRTE4O1RIQUkgQ0hBUkFDVEVSIFRITyBUSE9ORztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgVEhPIFRIT05HOzs7OworMEUxOTtUSEFJIENIQVJBQ1RFUiBOTyBOVTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgTk8gTlU7Ozs7CiswRTFBO1RIQUkgQ0hBUkFDVEVSIEJPIEJBSU1BSTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgQk8gQkFJTUFJOzs7OworMEUxQjtUSEFJIENIQVJBQ1RFUiBQTyBQTEE7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFBPIFBMQTs7OzsKKzBFMUM7VEhBSSBDSEFSQUNURVIgUEhPIFBIVU5HO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBQSE8gUEhVTkc7Ozs7CiswRTFEO1RIQUkgQ0hBUkFDVEVSIEZPIEZBO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBGTyBGQTs7OzsKKzBFMUU7VEhBSSBDSEFSQUNURVIgUEhPIFBIQU47TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFBITyBQSEFOOzs7OworMEUxRjtUSEFJIENIQVJBQ1RFUiBGTyBGQU47TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIEZPIEZBTjs7OzsKKzBFMjA7VEhBSSBDSEFSQUNURVIgUEhPIFNBTVBIQU87TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFBITyBTQU1QSEFPOzs7OworMEUyMTtUSEFJIENIQVJBQ1RFUiBNTyBNQTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgTU8gTUE7Ozs7CiswRTIyO1RIQUkgQ0hBUkFDVEVSIFlPIFlBSztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgWU8gWUFLOzs7OworMEUyMztUSEFJIENIQVJBQ1RFUiBSTyBSVUE7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFJPIFJVQTs7OzsKKzBFMjQ7VEhBSSBDSEFSQUNURVIgUlU7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFJVOzs7OworMEUyNTtUSEFJIENIQVJBQ1RFUiBMTyBMSU5HO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBMTyBMSU5HOzs7OworMEUyNjtUSEFJIENIQVJBQ1RFUiBMVTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgTFU7Ozs7CiswRTI3O1RIQUkgQ0hBUkFDVEVSIFdPIFdBRU47TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFdPIFdBRU47Ozs7CiswRTI4O1RIQUkgQ0hBUkFDVEVSIFNPIFNBTEE7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFNPIFNBTEE7Ozs7CiswRTI5O1RIQUkgQ0hBUkFDVEVSIFNPIFJVU0k7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFNPIFJVU0k7Ozs7CiswRTJBO1RIQUkgQ0hBUkFDVEVSIFNPIFNVQTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgU08gU1VBOzs7OworMEUyQjtUSEFJIENIQVJBQ1RFUiBITyBISVA7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIEhPIEhJUDs7OzsKKzBFMkM7VEhBSSBDSEFSQUNURVIgTE8gQ0hVTEE7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIExPIENIVUxBOzs7OworMEUyRDtUSEFJIENIQVJBQ1RFUiBPIEFORztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgTyBBTkc7Ozs7CiswRTJFO1RIQUkgQ0hBUkFDVEVSIEhPIE5PS0hVSztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgSE8gTk9LIEhVSzs7OzsKKzBFMkY7VEhBSSBDSEFSQUNURVIgUEFJWUFOTk9JO0xvOzA7TDs7Ozs7TjtUSEFJIFBBSSBZQU4gTk9JOzs7OworMEUzMDtUSEFJIENIQVJBQ1RFUiBTQVJBIEE7TG87MDtMOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIEE7Ozs7CiswRTMxO1RIQUkgQ0hBUkFDVEVSIE1BSSBIQU4tQUtBVDtNbjswO09OOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBNQUkgSEFOLUFLQVQ7Ozs7CiswRTMyO1RIQUkgQ0hBUkFDVEVSIFNBUkEgQUE7TG87MDtMOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIEFBOzs7OworMEUzMztUSEFJIENIQVJBQ1RFUiBTQVJBIEFNO0xvOzA7TDswRTREIDBFMzI7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBBTTs7OzsKKzBFMzQ7VEhBSSBDSEFSQUNURVIgU0FSQSBJO01uOzA7T047Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgSTs7OzsKKzBFMzU7VEhBSSBDSEFSQUNURVIgU0FSQSBJSTtNbjswO09OOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIElJOzs7OworMEUzNjtUSEFJIENIQVJBQ1RFUiBTQVJBIFVFO01uOzA7T047Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgVUU7Ozs7CiswRTM3O1RIQUkgQ0hBUkFDVEVSIFNBUkEgVUVFO01uOzA7T047Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgVUVFOzs7OworMEUzODtUSEFJIENIQVJBQ1RFUiBTQVJBIFU7TW47MTAzO09OOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIFU7Ozs7CiswRTM5O1RIQUkgQ0hBUkFDVEVSIFNBUkEgVVU7TW47MTAzO09OOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIFVVOzs7OworMEUzQTtUSEFJIENIQVJBQ1RFUiBQSElOVEhVO01uOzk7T047Ozs7O047VEhBSSBWT1dFTCBTSUdOIFBISU5USFU7Ozs7CiswRTNGO1RIQUkgQ1VSUkVOQ1kgU1lNQk9MIEJBSFQ7U2M7MDtFVDs7Ozs7TjtUSEFJIEJBSFQgU0lHTjs7OzsKKzBFNDA7VEhBSSBDSEFSQUNURVIgU0FSQSBFO0xvOzA7TDs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBFOzs7OworMEU0MTtUSEFJIENIQVJBQ1RFUiBTQVJBIEFFO0xvOzA7TDs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBBRTs7OzsKKzBFNDI7VEhBSSBDSEFSQUNURVIgU0FSQSBPO0xvOzA7TDs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBPOzs7OworMEU0MztUSEFJIENIQVJBQ1RFUiBTQVJBIEFJIE1BSU1VQU47TG87MDtMOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIE1BSSBNVUFOOzs7OworMEU0NDtUSEFJIENIQVJBQ1RFUiBTQVJBIEFJIE1BSU1BTEFJO0xvOzA7TDs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBNQUkgTUFMQUk7Ozs7CiswRTQ1O1RIQUkgQ0hBUkFDVEVSIExBS0tIQU5HWUFPO0xvOzA7TDs7Ozs7TjtUSEFJIExBSyBLSEFORyBZQU87Ozs7CiswRTQ2O1RIQUkgQ0hBUkFDVEVSIE1BSVlBTU9LO0xtOzA7TDs7Ozs7TjtUSEFJIE1BSSBZQU1PSzs7OzsKKzBFNDc7VEhBSSBDSEFSQUNURVIgTUFJVEFJS0hVO01uOzA7T047Ozs7O047VEhBSSBWT1dFTCBTSUdOIE1BSSBUQUkgS0hVOzs7OworMEU0ODtUSEFJIENIQVJBQ1RFUiBNQUkgRUs7TW47MTA3O09OOzs7OztOO1RIQUkgVE9ORSBNQUkgRUs7Ozs7CiswRTQ5O1RIQUkgQ0hBUkFDVEVSIE1BSSBUSE87TW47MTA3O09OOzs7OztOO1RIQUkgVE9ORSBNQUkgVEhPOzs7OworMEU0QTtUSEFJIENIQVJBQ1RFUiBNQUkgVFJJO01uOzEwNztPTjs7Ozs7TjtUSEFJIFRPTkUgTUFJIFRSSTs7OzsKKzBFNEI7VEhBSSBDSEFSQUNURVIgTUFJIENIQVRUQVdBO01uOzEwNztPTjs7Ozs7TjtUSEFJIFRPTkUgTUFJIENIQVRUQVdBOzs7OworMEU0QztUSEFJIENIQVJBQ1RFUiBUSEFOVEhBS0hBVDtNbjswO09OOzs7OztOO1RIQUkgVEhBTlRIQUtIQVQ7Ozs7CiswRTREO1RIQUkgQ0hBUkFDVEVSIE5JS0hBSElUO01uOzEwNztPTjs7Ozs7TjtUSEFJIE5JS0tIQUhJVDs7OzsKKzBFNEU7VEhBSSBDSEFSQUNURVIgWUFNQUtLQU47TW47MDtPTjs7Ozs7TjtUSEFJIFlBTUFLS0FOOzs7OworMEU0RjtUSEFJIENIQVJBQ1RFUiBGT05HTUFOO1NvOzA7TDs7Ozs7TjtUSEFJIEZPTkdNQU47Ozs7CiswRTUwO1RIQUkgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMEU1MTtUSEFJIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMEU1MjtUSEFJIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMEU1MztUSEFJIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswRTU0O1RIQUkgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMEU1NTtUSEFJIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzBFNTY7VEhBSSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzBFNTc7VEhBSSBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMEU1ODtUSEFJIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswRTU5O1RIQUkgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMEU1QTtUSEFJIENIQVJBQ1RFUiBBTkdLSEFOS0hVO1BvOzA7TDs7Ozs7TjtUSEFJIEFOR0tIQU5LSFU7Ozs7CiswRTVCO1RIQUkgQ0hBUkFDVEVSIEtIT01VVDtQbzswO0w7Ozs7O047VEhBSSBLSE9NVVQ7Ozs7CiswRTgxO0xBTyBMRVRURVIgS087TG87MDtMOzs7OztOOzs7OzsKKzBFODI7TEFPIExFVFRFUiBLSE8gU1VORztMbzswO0w7Ozs7O047Ozs7OworMEU4NDtMQU8gTEVUVEVSIEtITyBUQU07TG87MDtMOzs7OztOOzs7OzsKKzBFODc7TEFPIExFVFRFUiBOR087TG87MDtMOzs7OztOOzs7OzsKKzBFODg7TEFPIExFVFRFUiBDTztMbzswO0w7Ozs7O047Ozs7OworMEU4QTtMQU8gTEVUVEVSIFNPIFRBTTtMbzswO0w7Ozs7O047Ozs7OworMEU4RDtMQU8gTEVUVEVSIE5ZTztMbzswO0w7Ozs7O047Ozs7OworMEU5NDtMQU8gTEVUVEVSIERPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRTk1O0xBTyBMRVRURVIgVE87TG87MDtMOzs7OztOOzs7OzsKKzBFOTY7TEFPIExFVFRFUiBUSE8gU1VORztMbzswO0w7Ozs7O047Ozs7OworMEU5NztMQU8gTEVUVEVSIFRITyBUQU07TG87MDtMOzs7OztOOzs7OzsKKzBFOTk7TEFPIExFVFRFUiBOTztMbzswO0w7Ozs7O047Ozs7OworMEU5QTtMQU8gTEVUVEVSIEJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRTlCO0xBTyBMRVRURVIgUE87TG87MDtMOzs7OztOOzs7OzsKKzBFOUM7TEFPIExFVFRFUiBQSE8gU1VORztMbzswO0w7Ozs7O047Ozs7OworMEU5RDtMQU8gTEVUVEVSIEZPIFRBTTtMbzswO0w7Ozs7O047Ozs7OworMEU5RTtMQU8gTEVUVEVSIFBITyBUQU07TG87MDtMOzs7OztOOzs7OzsKKzBFOUY7TEFPIExFVFRFUiBGTyBTVU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUExO0xBTyBMRVRURVIgTU87TG87MDtMOzs7OztOOzs7OzsKKzBFQTI7TEFPIExFVFRFUiBZTztMbzswO0w7Ozs7O047Ozs7OworMEVBMztMQU8gTEVUVEVSIExPIExJTkc7TG87MDtMOzs7OztOOzs7OzsKKzBFQTU7TEFPIExFVFRFUiBMTyBMT09UO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUE3O0xBTyBMRVRURVIgV087TG87MDtMOzs7OztOOzs7OzsKKzBFQUE7TEFPIExFVFRFUiBTTyBTVU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUFCO0xBTyBMRVRURVIgSE8gU1VORztMbzswO0w7Ozs7O047Ozs7OworMEVBRDtMQU8gTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzBFQUU7TEFPIExFVFRFUiBITyBUQU07TG87MDtMOzs7OztOOzs7OzsKKzBFQUY7TEFPIEVMTElQU0lTO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUIwO0xBTyBWT1dFTCBTSUdOIEE7TG87MDtMOzs7OztOOzs7OzsKKzBFQjE7TEFPIFZPV0VMIFNJR04gTUFJIEtBTjtNbjswO09OOzs7OztOOzs7OzsKKzBFQjI7TEFPIFZPV0VMIFNJR04gQUE7TG87MDtMOzs7OztOOzs7OzsKKzBFQjM7TEFPIFZPV0VMIFNJR04gQU07TG87MDtMOzBFQ0QgMEVCMjs7OztOOzs7OzsKKzBFQjQ7TEFPIFZPV0VMIFNJR04gSTtNbjswO09OOzs7OztOOzs7OzsKKzBFQjU7TEFPIFZPV0VMIFNJR04gSUk7TW47MDtPTjs7Ozs7Tjs7Ozs7CiswRUI2O0xBTyBWT1dFTCBTSUdOIFk7TW47MDtPTjs7Ozs7Tjs7Ozs7CiswRUI3O0xBTyBWT1dFTCBTSUdOIFlZO01uOzA7T047Ozs7O047Ozs7OworMEVCODtMQU8gVk9XRUwgU0lHTiBVO01uOzExODtPTjs7Ozs7Tjs7Ozs7CiswRUI5O0xBTyBWT1dFTCBTSUdOIFVVO01uOzExODtPTjs7Ozs7Tjs7Ozs7CiswRUJCO0xBTyBWT1dFTCBTSUdOIE1BSSBLT047TW47MDtPTjs7Ozs7Tjs7Ozs7CiswRUJDO0xBTyBTRU1JVk9XRUwgU0lHTiBMTztNbjswO09OOzs7OztOOzs7OzsKKzBFQkQ7TEFPIFNFTUlWT1dFTCBTSUdOIE5ZTztMbzswO0w7Ozs7O047Ozs7OworMEVDMDtMQU8gVk9XRUwgU0lHTiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUMxO0xBTyBWT1dFTCBTSUdOIEVJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUMyO0xBTyBWT1dFTCBTSUdOIE87TG87MDtMOzs7OztOOzs7OzsKKzBFQzM7TEFPIFZPV0VMIFNJR04gQVk7TG87MDtMOzs7OztOOzs7OzsKKzBFQzQ7TEFPIFZPV0VMIFNJR04gQUk7TG87MDtMOzs7OztOOzs7OzsKKzBFQzY7TEFPIEtPIExBO0xtOzA7TDs7Ozs7Tjs7Ozs7CiswRUM4O0xBTyBUT05FIE1BSSBFSztNbjsxMjI7T047Ozs7O047Ozs7OworMEVDOTtMQU8gVE9ORSBNQUkgVEhPO01uOzEyMjtPTjs7Ozs7Tjs7Ozs7CiswRUNBO0xBTyBUT05FIE1BSSBUSTtNbjsxMjI7T047Ozs7O047Ozs7OworMEVDQjtMQU8gVE9ORSBNQUkgQ0FUQVdBO01uOzEyMjtPTjs7Ozs7Tjs7Ozs7CiswRUNDO0xBTyBDQU5DRUxMQVRJT04gTUFSSztNbjswO09OOzs7OztOOzs7OzsKKzBFQ0Q7TEFPIE5JR0dBSElUQTtNbjsxMjI7T047Ozs7O047Ozs7OworMEVEMDtMQU8gRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMEVEMTtMQU8gRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CiswRUQyO0xBTyBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzBFRDM7TEFPIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswRUQ0O0xBTyBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CiswRUQ1O0xBTyBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CiswRUQ2O0xBTyBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzBFRDc7TEFPIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CiswRUQ4O0xBTyBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMEVEOTtMQU8gRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMEVEQztMQU8gSE8gTk87TG87MDtMOzxjb21wYXQ+IDBFQUIgMEU5OTs7OztOOzs7OzsKKzBFREQ7TEFPIEhPIE1PO0xvOzA7TDs8Y29tcGF0PiAwRUFCIDBFQTE7Ozs7Tjs7Ozs7CiswRjAwO1RJQkVUQU4gU1lMTEFCTEUgT007TG87MDtMOzs7OztOOzs7OzsKKzBGMDE7VElCRVRBTiBNQVJLIEdURVIgWUlHIE1HTyBUUlVOQ0FURUQgQTtTbzswO0w7Ozs7O047O3RlciB5aWsgZ28gYSB0aHVuZzs7OworMEYwMjtUSUJFVEFOIE1BUksgR1RFUiBZSUcgTUdPIC1VTSBSTkFNIEJDQUQgTUE7U287MDtMOzs7OztOOzt0ZXIgeWlrIGdvIHd1bSBuYW0gY2hleSBtYTs7OworMEYwMztUSUJFVEFOIE1BUksgR1RFUiBZSUcgTUdPIC1VTSBHVEVSIFRTSEVHIE1BO1NvOzA7TDs7Ozs7Tjs7dGVyIHlpayBnbyB3dW0gdGVyIHRzZWsgbWE7OzsKKzBGMDQ7VElCRVRBTiBNQVJLIElOSVRJQUwgWUlHIE1HTyBNRFVOIE1BO1BvOzA7TDs7Ozs7Tjs7eWlrIGdvIGR1biBtYTs7OworMEYwNTtUSUJFVEFOIE1BUksgQ0xPU0lORyBZSUcgTUdPIFNHQUIgTUE7UG87MDtMOzs7OztOOzt5aWsgZ28ga2FiIG1hOzs7CiswRjA2O1RJQkVUQU4gTUFSSyBDQVJFVCBZSUcgTUdPIFBIVVIgU0hBRCBNQTtQbzswO0w7Ozs7O047O3lpayBnbyBwdXIgc2hleSBtYTs7OworMEYwNztUSUJFVEFOIE1BUksgWUlHIE1HTyBUU0hFRyBTSEFEIE1BO1BvOzA7TDs7Ozs7Tjs7eWlrIGdvIHRzZWsgc2hleSBtYTs7OworMEYwODtUSUJFVEFOIE1BUksgU0JSVUwgU0hBRDtQbzswO0w7Ozs7O047O2RydWwgc2hleTs7OworMEYwOTtUSUJFVEFOIE1BUksgQlNLVVIgWUlHIE1HTztQbzswO0w7Ozs7O047O2t1ciB5aWsgZ287OzsKKzBGMEE7VElCRVRBTiBNQVJLIEJLQS0gU0hPRyBZSUcgTUdPO1BvOzA7TDs7Ozs7Tjs7a2Egc2hvIHlpayBnbzs7OworMEYwQjtUSUJFVEFOIE1BUksgSU5URVJTWUxMQUJJQyBUU0hFRztQbzswO0w7Ozs7O047O3RzZWs7OzsKKzBGMEM7VElCRVRBTiBNQVJLIERFTElNSVRFUiBUU0hFRyBCU1RBUjtQbzswO0w7Ozs7O047O3RzZWsgdGFyOzs7CiswRjBEO1RJQkVUQU4gTUFSSyBTSEFEO1BvOzA7TDs7Ozs7Tjs7c2hleTs7OworMEYwRTtUSUJFVEFOIE1BUksgTllJUyBTSEFEO1BvOzA7TDs7Ozs7Tjs7bnlpIHNoZXk7OzsKKzBGMEY7VElCRVRBTiBNQVJLIFRTSEVHIFNIQUQ7UG87MDtMOzs7OztOOzt0c2VrIHNoZXk7OzsKKzBGMTA7VElCRVRBTiBNQVJLIE5ZSVMgVFNIRUcgU0hBRDtQbzswO0w7Ozs7O047O255aSB0c2VrIHNoZXk7OzsKKzBGMTE7VElCRVRBTiBNQVJLIFJJTiBDSEVOIFNQVU5HUyBTSEFEO1BvOzA7TDs7Ozs7Tjs7cmluY2hlbiBwdW5nIHNoZXk7OzsKKzBGMTI7VElCRVRBTiBNQVJLIFJHWUEgR1JBTSBTSEFEO1BvOzA7TDs7Ozs7Tjs7Z3lhIHRyYW0gc2hleTs7OworMEYxMztUSUJFVEFOIE1BUksgQ0FSRVQgLURaVUQgUlRBR1MgTUUgTE9ORyBDQU47U287MDtMOzs7OztOOztkenUgdGEgbWUgbG9uZyBjaGVuOzs7CiswRjE0O1RJQkVUQU4gTUFSSyBHVEVSIFRTSEVHO1NvOzA7TDs7Ozs7Tjs7dGVyIHRzZWs7OzsKKzBGMTU7VElCRVRBTiBMT0dPVFlQRSBTSUdOIENIQUQgUlRBR1M7U287MDtMOzs7OztOOztjaGUgdGE7OzsKKzBGMTY7VElCRVRBTiBMT0dPVFlQRSBTSUdOIExIQUcgUlRBR1M7U287MDtMOzs7OztOOztobGFrIHRhOzs7CiswRjE3O1RJQkVUQU4gQVNUUk9MT0dJQ0FMIFNJR04gU0dSQSBHQ0FOIC1DSEFSIFJUQUdTO1NvOzA7TDs7Ozs7Tjs7dHJhY2hlbiBjaGFyIHRhOzs7CiswRjE4O1RJQkVUQU4gQVNUUk9MT0dJQ0FMIFNJR04gLUtIWVVEIFBBO01uOzIyMDtPTjs7Ozs7Tjs7a3l1IHBhOzs7CiswRjE5O1RJQkVUQU4gQVNUUk9MT0dJQ0FMIFNJR04gU0RPTkcgVFNIVUdTO01uOzIyMDtPTjs7Ozs7Tjs7ZG9uZyB0c3U7OzsKKzBGMUE7VElCRVRBTiBTSUdOIFJERUwgREtBUiBHQ0lHO1NvOzA7TDs7Ozs7Tjs7ZGVrYSBjaGlnOzs7CiswRjFCO1RJQkVUQU4gU0lHTiBSREVMIERLQVIgR05ZSVM7U287MDtMOzs7OztOOztkZWthIG55aTs7OworMEYxQztUSUJFVEFOIFNJR04gUkRFTCBES0FSIEdTVU07U287MDtMOzs7OztOOztkZWthIHN1bTs7OworMEYxRDtUSUJFVEFOIFNJR04gUkRFTCBOQUcgR0NJRztTbzswO0w7Ozs7O047O2RlbmEgY2hpZzs7OworMEYxRTtUSUJFVEFOIFNJR04gUkRFTCBOQUcgR05ZSVM7U287MDtMOzs7OztOOztkZW5hIG55aTs7OworMEYxRjtUSUJFVEFOIFNJR04gUkRFTCBES0FSIFJERUwgTkFHO1NvOzA7TDs7Ozs7Tjs7ZGVrYSBkZW5hOzs7CiswRjIwO1RJQkVUQU4gRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMEYyMTtUSUJFVEFOIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMEYyMjtUSUJFVEFOIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMEYyMztUSUJFVEFOIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswRjI0O1RJQkVUQU4gRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMEYyNTtUSUJFVEFOIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzBGMjY7VElCRVRBTiBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzBGMjc7VElCRVRBTiBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMEYyODtUSUJFVEFOIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswRjI5O1RJQkVUQU4gRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMEYyQTtUSUJFVEFOIERJR0lUIEhBTEYgT05FO05vOzA7TDs7Ozs7Tjs7Ozs7CiswRjJCO1RJQkVUQU4gRElHSVQgSEFMRiBUV087Tm87MDtMOzs7OztOOzs7OzsKKzBGMkM7VElCRVRBTiBESUdJVCBIQUxGIFRIUkVFO05vOzA7TDs7Ozs7Tjs7Ozs7CiswRjJEO1RJQkVUQU4gRElHSVQgSEFMRiBGT1VSO05vOzA7TDs7Ozs7Tjs7Ozs7CiswRjJFO1RJQkVUQU4gRElHSVQgSEFMRiBGSVZFO05vOzA7TDs7Ozs7Tjs7Ozs7CiswRjJGO1RJQkVUQU4gRElHSVQgSEFMRiBTSVg7Tm87MDtMOzs7OztOOzs7OzsKKzBGMzA7VElCRVRBTiBESUdJVCBIQUxGIFNFVkVOO05vOzA7TDs7Ozs7Tjs7Ozs7CiswRjMxO1RJQkVUQU4gRElHSVQgSEFMRiBFSUdIVDtObzswO0w7Ozs7O047Ozs7OworMEYzMjtUSUJFVEFOIERJR0lUIEhBTEYgTklORTtObzswO0w7Ozs7O047Ozs7OworMEYzMztUSUJFVEFOIERJR0lUIEhBTEYgWkVSTztObzswO0w7Ozs7O047Ozs7OworMEYzNDtUSUJFVEFOIE1BUksgQlNEVVMgUlRBR1M7U287MDtMOzs7OztOOztkdSB0YTs7OworMEYzNTtUSUJFVEFOIE1BUksgTkdBUyBCWlVORyBOWUkgWkxBO01uOzIzMDtPTjs7Ozs7Tjs7bmdlIHp1bmcgbnlpIGRhOzs7CiswRjM2O1RJQkVUQU4gTUFSSyBDQVJFVCAtRFpVRCBSVEFHUyBCWkhJIE1JRyBDQU47U287MDtMOzs7OztOOztkenUgdGEgc2hpIG1pZyBjaGVuOzs7CiswRjM3O1RJQkVUQU4gTUFSSyBOR0FTIEJaVU5HIFNHT1IgUlRBR1M7TW47MjMwO09OOzs7OztOOztuZ2UgenVuZyBnb3IgdGE7OzsKKzBGMzg7VElCRVRBTiBNQVJLIENIRSBNR087U287MDtMOzs7OztOOztjaGUgZ287OzsKKzBGMzk7VElCRVRBTiBNQVJLIFRTQSAtUEhSVTtNbjsyMTY7T047Ozs7O047O3RzYSB0cnU7OzsKKzBGM0E7VElCRVRBTiBNQVJLIEdVRyBSVEFHUyBHWU9OO1BzOzA7T047Ozs7O047O2d1ZyB0YSB5dW47OzsKKzBGM0I7VElCRVRBTiBNQVJLIEdVRyBSVEFHUyBHWUFTO1BlOzA7T047Ozs7O047O2d1ZyB0YSB5ZTs7OworMEYzQztUSUJFVEFOIE1BUksgQU5HIEtIQU5HIEdZT047UHM7MDtPTjs7Ozs7Tjs7YW5nIGthbmcgeXVuOzs7CiswRjNEO1RJQkVUQU4gTUFSSyBBTkcgS0hBTkcgR1lBUztQZTswO09OOzs7OztOOzthbmcga2FuZyB5ZTs7OworMEYzRTtUSUJFVEFOIFNJR04gWUFSIFRTSEVTO01jOzA7T047Ozs7O047O3lhciB0c2U7OzsKKzBGM0Y7VElCRVRBTiBTSUdOIE1BUiBUU0hFUztNYzswO09OOzs7OztOOzttYXIgdHNlOzs7CiswRjQwO1RJQkVUQU4gTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjQxO1RJQkVUQU4gTEVUVEVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMEY0MjtUSUJFVEFOIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMEY0MztUSUJFVEFOIExFVFRFUiBHSEE7TG87MDtMOzBGNDIgMEZCNzs7OztOOzs7OzsKKzBGNDQ7VElCRVRBTiBMRVRURVIgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjQ1O1RJQkVUQU4gTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjQ2O1RJQkVUQU4gTEVUVEVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMEY0NztUSUJFVEFOIExFVFRFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworMEY0OTtUSUJFVEFOIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzBGNEE7VElCRVRBTiBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjRCO1RJQkVUQU4gTEVUVEVSIFRUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNEM7VElCRVRBTiBMRVRURVIgRERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjREO1RJQkVUQU4gTEVUVEVSIERESEE7TG87MDtMOzBGNEMgMEZCNzs7OztOOzs7OzsKKzBGNEU7VElCRVRBTiBMRVRURVIgTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjRGO1RJQkVUQU4gTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjUwO1RJQkVUQU4gTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEY1MTtUSUJFVEFOIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMEY1MjtUSUJFVEFOIExFVFRFUiBESEE7TG87MDtMOzBGNTEgMEZCNzs7OztOOzs7OzsKKzBGNTM7VElCRVRBTiBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzBGNTQ7VElCRVRBTiBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNTU7VElCRVRBTiBMRVRURVIgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjU2O1RJQkVUQU4gTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjU3O1RJQkVUQU4gTEVUVEVSIEJIQTtMbzswO0w7MEY1NiAwRkI3Ozs7O047Ozs7OworMEY1ODtUSUJFVEFOIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMEY1OTtUSUJFVEFOIExFVFRFUiBUU0E7TG87MDtMOzs7OztOOzs7OzsKKzBGNUE7VElCRVRBTiBMRVRURVIgVFNIQTtMbzswO0w7Ozs7O047Ozs7OworMEY1QjtUSUJFVEFOIExFVFRFUiBEWkE7TG87MDtMOzs7OztOOzs7OzsKKzBGNUM7VElCRVRBTiBMRVRURVIgRFpIQTtMbzswO0w7MEY1QiAwRkI3Ozs7O047Ozs7OworMEY1RDtUSUJFVEFOIExFVFRFUiBXQTtMbzswO0w7Ozs7O047Ozs7OworMEY1RTtUSUJFVEFOIExFVFRFUiBaSEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNUY7VElCRVRBTiBMRVRURVIgWkE7TG87MDtMOzs7OztOOzs7OzsKKzBGNjA7VElCRVRBTiBMRVRURVIgLUE7TG87MDtMOzs7OztOOzs7OzsKKzBGNjE7VElCRVRBTiBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzBGNjI7VElCRVRBTiBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzBGNjM7VElCRVRBTiBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNjQ7VElCRVRBTiBMRVRURVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjY1O1RJQkVUQU4gTEVUVEVSIFNTQTtMbzswO0w7Ozs7O047Ozs7OworMEY2NjtUSUJFVEFOIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMEY2NztUSUJFVEFOIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMEY2ODtUSUJFVEFOIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjY5O1RJQkVUQU4gTEVUVEVSIEtTU0E7TG87MDtMOzBGNDAgMEZCNTs7OztOOzs7OzsKKzBGNzE7VElCRVRBTiBWT1dFTCBTSUdOIEFBO01uOzA7T047Ozs7O047Ozs7OworMEY3MjtUSUJFVEFOIFZPV0VMIFNJR04gSTtNbjsxMzA7T047Ozs7O047Ozs7OworMEY3MztUSUJFVEFOIFZPV0VMIFNJR04gSUk7TW47MDtPTjswRjcyIDBGNzE7Ozs7Tjs7Ozs7CiswRjc0O1RJQkVUQU4gVk9XRUwgU0lHTiBVO01uOzEzMjtPTjs7Ozs7Tjs7Ozs7CiswRjc1O1RJQkVUQU4gVk9XRUwgU0lHTiBVVTtNbjswO09OOzBGNzEgMEY3NDs7OztOOzs7OzsKKzBGNzY7VElCRVRBTiBWT1dFTCBTSUdOIFZPQ0FMSUMgUjtNbjswO09OOzBGQjIgMEY4MDs7OztOOzs7OzsKKzBGNzc7VElCRVRBTiBWT1dFTCBTSUdOIFZPQ0FMSUMgUlI7TW47MDtPTjswRjc2IDBGNzE7Ozs7Tjs7Ozs7CiswRjc4O1RJQkVUQU4gVk9XRUwgU0lHTiBWT0NBTElDIEw7TW47MDtPTjswRkIzIDBGODA7Ozs7Tjs7Ozs7CiswRjc5O1RJQkVUQU4gVk9XRUwgU0lHTiBWT0NBTElDIExMO01uOzA7T047MEY3OCAwRjcxOzs7O047Ozs7OworMEY3QTtUSUJFVEFOIFZPV0VMIFNJR04gRTtNbjsxMzA7T047Ozs7O047Ozs7OworMEY3QjtUSUJFVEFOIFZPV0VMIFNJR04gRUU7TW47MTMwO09OOzs7OztOOzs7OzsKKzBGN0M7VElCRVRBTiBWT1dFTCBTSUdOIE87TW47MTMwO09OOzs7OztOOzs7OzsKKzBGN0Q7VElCRVRBTiBWT1dFTCBTSUdOIE9PO01uOzEzMDtPTjs7Ozs7Tjs7Ozs7CiswRjdFO1RJQkVUQU4gU0lHTiBSSkVTIFNVIE5HQSBSTztNbjswO09OOzs7OztOOztqZSBzdSBuZ2Egcm87OzsKKzBGN0Y7VElCRVRBTiBTSUdOIFJOQU0gQkNBRDtNYzswO0w7Ozs7O047O25hbSBjaGV5Ozs7CiswRjgwO1RJQkVUQU4gVk9XRUwgU0lHTiBSRVZFUlNFRCBJO01uOzEzMDtPTjs7Ozs7Tjs7Ozs7CiswRjgxO1RJQkVUQU4gVk9XRUwgU0lHTiBSRVZFUlNFRCBJSTtNbjswO09OOzBGODAgMEY3MTs7OztOOzs7OzsKKzBGODI7VElCRVRBTiBTSUdOIE5ZSSBaTEEgTkFBIERBO01uOzIzMDtPTjs7Ozs7Tjs7bnlpIGRhIG5hIGRhOzs7CiswRjgzO1RJQkVUQU4gU0lHTiBTTkEgTERBTjtNbjsyMzA7T047Ozs7O047O25hbiBkZTs7OworMEY4NDtUSUJFVEFOIE1BUksgSEFMQU5UQTtNbjs5O09OOzs7OztOOzs7OzsKKzBGODU7VElCRVRBTiBNQVJLIFBBTFVUQTtQbzswO0w7Ozs7O047Ozs7OworMEY4NjtUSUJFVEFOIFNJR04gTENJIFJUQUdTO01uOzIzMDtPTjs7Ozs7Tjs7amkgdGE7OzsKKzBGODc7VElCRVRBTiBTSUdOIFlBTkcgUlRBR1M7TW47MjMwO09OOzs7OztOOzt5YW5nIHRhOzs7CiswRjg4O1RJQkVUQU4gU0lHTiBMQ0UgVFNBIENBTjtMbzswO0w7Ozs7O047O2NoZSB0c2EgY2hlbjs7OworMEY4OTtUSUJFVEFOIFNJR04gTUNIVSBDQU47TG87MDtMOzs7OztOOztjaHUgY2hlbjs7OworMEY4QTtUSUJFVEFOIFNJR04gR1JVIENBTiBSR1lJTkdTO0xvOzA7TDs7Ozs7Tjs7dHJ1IGNoZW4gZ2luZzs7OworMEY4QjtUSUJFVEFOIFNJR04gR1JVIE1FRCBSR1lJTkdTO0xvOzA7TDs7Ozs7Tjs7dHJ1IG1lIGdpbmc7OzsKKzBGOTA7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEtBO01uOzA7T047Ozs7O047Ozs7OworMEY5MTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgS0hBO01uOzA7T047Ozs7O047Ozs7OworMEY5MjtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgR0E7TW47MDtPTjs7Ozs7Tjs7Ozs7CiswRjkzO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBHSEE7TW47MDtPTjswRjkyIDBGQjc7Ozs7Tjs7Ozs7CiswRjk0O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBOR0E7TW47MDtPTjs7Ozs7Tjs7Ozs7CiswRjk1O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBDQTtNbjswO09OOzs7OztOOzs7OzsKKzBGOTc7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEpBO01uOzA7T047Ozs7O047Ozs7OworMEY5OTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgTllBO01uOzA7T047Ozs7O047Ozs7OworMEY5QTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgVFRBO01uOzA7T047Ozs7O047Ozs7OworMEY5QjtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgVFRIQTtNbjswO09OOzs7OztOOzs7OzsKKzBGOUM7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEREQTtNbjswO09OOzs7OztOOzs7OzsKKzBGOUQ7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIERESEE7TW47MDtPTjswRjlDIDBGQjc7Ozs7Tjs7Ozs7CiswRjlFO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBOTkE7TW47MDtPTjs7Ozs7Tjs7Ozs7CiswRjlGO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBUQTtNbjswO09OOzs7OztOOzs7OzsKKzBGQTA7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFRIQTtNbjswO09OOzs7OztOOzs7OzsKKzBGQTE7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIERBO01uOzA7T047Ozs7O047Ozs7OworMEZBMjtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgREhBO01uOzA7T047MEZBMSAwRkI3Ozs7O047Ozs7OworMEZBMztUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgTkE7TW47MDtPTjs7Ozs7Tjs7Ozs7CiswRkE0O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBQQTtNbjswO09OOzs7OztOOzs7OzsKKzBGQTU7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFBIQTtNbjswO09OOzs7OztOOzs7OzsKKzBGQTY7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEJBO01uOzA7T047Ozs7O047Ozs7OworMEZBNztUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgQkhBO01uOzA7T047MEZBNiAwRkI3Ozs7O047Ozs7OworMEZBODtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgTUE7TW47MDtPTjs7Ozs7Tjs7Ozs7CiswRkE5O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBUU0E7TW47MDtPTjs7Ozs7Tjs7Ozs7CiswRkFBO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBUU0hBO01uOzA7T047Ozs7O047Ozs7OworMEZBQjtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgRFpBO01uOzA7T047Ozs7O047Ozs7OworMEZBQztUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgRFpIQTtNbjswO09OOzBGQUIgMEZCNzs7OztOOzs7OzsKKzBGQUQ7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFdBO01uOzA7T047Ozs7O047Ozs7OworMEZCMTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgWUE7TW47MDtPTjs7Ozs7Tjs7Ozs7CiswRkIyO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBSQTtNbjswO09OOzs7OztOOzs7OzsKKzBGQjM7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIExBO01uOzA7T047Ozs7O047Ozs7OworMEZCNDtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgU0hBO01uOzA7T047Ozs7O047Ozs7OworMEZCNTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgU1NBO01uOzA7T047Ozs7O047Ozs7OworMEZCNjtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgU0E7TW47MDtPTjs7Ozs7Tjs7Ozs7CiswRkI3O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBIQTtNbjswO09OOzs7OztOOzs7OzsKKzBGQjk7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEtTU0E7TW47MDtPTjswRjkwIDBGQjU7Ozs7Tjs7Ozs7CisxMEEwO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEFOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwRDA7CisxMEExO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEJBTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMEQxOworMTBBMjtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBHQU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MTBEMjsKKzEwQTM7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgRE9OO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwRDM7CisxMEE0O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEVOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwRDQ7CisxMEE1O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFZJTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMEQ1OworMTBBNjtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBaRU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MTBENjsKKzEwQTc7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgVEFOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwRDc7CisxMEE4O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIElOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwRDg7CisxMEE5O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEtBTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMEQ5OworMTBBQTtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBMQVM7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MTBEQTsKKzEwQUI7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgTUFOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwREI7CisxMEFDO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIE5BUjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMERDOworMTBBRDtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBPTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMEREOworMTBBRTtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBQQVI7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MTBERTsKKzEwQUY7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgWkhBUjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMERGOworMTBCMDtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBSQUU7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MTBFMDsKKzEwQjE7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgU0FOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwRTE7CisxMEIyO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFRBUjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMEUyOworMTBCMztHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBVTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMEUzOworMTBCNDtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBQSEFSO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwRTQ7CisxMEI1O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEtIQVI7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MTBFNTsKKzEwQjY7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgR0hBTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMEU2OworMTBCNztHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBRQVI7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MTBFNzsKKzEwQjg7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgU0hJTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMEU4OworMTBCOTtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBDSElOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwRTk7CisxMEJBO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIENBTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMEVBOworMTBCQjtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBKSUw7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MTBFQjsKKzEwQkM7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgQ0lMO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwRUM7CisxMEJEO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIENIQVI7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MTBFRDsKKzEwQkU7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgWEFOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwRUU7CisxMEJGO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEpIQU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MTBFRjsKKzEwQzA7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgSEFFO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwRjA7CisxMEMxO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEhFO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwRjE7CisxMEMyO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEhJRTtMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMEYyOworMTBDMztHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBXRTtMdTswO0w7Ozs7O047O0todXRzdXJpOzsxMEYzOworMTBDNDtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBIQVI7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MTBGNDsKKzEwQzU7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgSE9FO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzEwRjU7CisxMEQwO0dFT1JHSUFOIExFVFRFUiBBTjtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEFOOzs7OworMTBEMTtHRU9SR0lBTiBMRVRURVIgQkFOO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgQkFOOzs7OworMTBEMjtHRU9SR0lBTiBMRVRURVIgR0FOO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgR0FOOzs7OworMTBEMztHRU9SR0lBTiBMRVRURVIgRE9OO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgRE9OOzs7OworMTBENDtHRU9SR0lBTiBMRVRURVIgRU47TGw7MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBFTjs7OzsKKzEwRDU7R0VPUkdJQU4gTEVUVEVSIFZJTjtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFZJTjs7OzsKKzEwRDY7R0VPUkdJQU4gTEVUVEVSIFpFTjtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFpFTjs7OzsKKzEwRDc7R0VPUkdJQU4gTEVUVEVSIFRBTjtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFRBTjs7OzsKKzEwRDg7R0VPUkdJQU4gTEVUVEVSIElOO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgSU47Ozs7CisxMEQ5O0dFT1JHSUFOIExFVFRFUiBLQU47TGw7MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBLQU47Ozs7CisxMERBO0dFT1JHSUFOIExFVFRFUiBMQVM7TGw7MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBMQVM7Ozs7CisxMERCO0dFT1JHSUFOIExFVFRFUiBNQU47TGw7MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBNQU47Ozs7CisxMERDO0dFT1JHSUFOIExFVFRFUiBOQVI7TGw7MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBOQVI7Ozs7CisxMEREO0dFT1JHSUFOIExFVFRFUiBPTjtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIE9OOzs7OworMTBERTtHRU9SR0lBTiBMRVRURVIgUEFSO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgUEFSOzs7OworMTBERjtHRU9SR0lBTiBMRVRURVIgWkhBUjtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFpIQVI7Ozs7CisxMEUwO0dFT1JHSUFOIExFVFRFUiBSQUU7TGw7MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBSQUU7Ozs7CisxMEUxO0dFT1JHSUFOIExFVFRFUiBTQU47TGw7MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBTQU47Ozs7CisxMEUyO0dFT1JHSUFOIExFVFRFUiBUQVI7TGw7MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBUQVI7Ozs7CisxMEUzO0dFT1JHSUFOIExFVFRFUiBVTjtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFVOOzs7OworMTBFNDtHRU9SR0lBTiBMRVRURVIgUEhBUjtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFBIQVI7Ozs7CisxMEU1O0dFT1JHSUFOIExFVFRFUiBLSEFSO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgS0hBUjs7OzsKKzEwRTY7R0VPUkdJQU4gTEVUVEVSIEdIQU47TGw7MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBHSEFOOzs7OworMTBFNztHRU9SR0lBTiBMRVRURVIgUUFSO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgUUFSOzs7OworMTBFODtHRU9SR0lBTiBMRVRURVIgU0hJTjtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFNISU47Ozs7CisxMEU5O0dFT1JHSUFOIExFVFRFUiBDSElOO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgQ0hJTjs7OzsKKzEwRUE7R0VPUkdJQU4gTEVUVEVSIENBTjtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIENBTjs7OzsKKzEwRUI7R0VPUkdJQU4gTEVUVEVSIEpJTDtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEpJTDs7OzsKKzEwRUM7R0VPUkdJQU4gTEVUVEVSIENJTDtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIENJTDs7OzsKKzEwRUQ7R0VPUkdJQU4gTEVUVEVSIENIQVI7TGw7MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBDSEFSOzs7OworMTBFRTtHRU9SR0lBTiBMRVRURVIgWEFOO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgWEFOOzs7OworMTBFRjtHRU9SR0lBTiBMRVRURVIgSkhBTjtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEpIQU47Ozs7CisxMEYwO0dFT1JHSUFOIExFVFRFUiBIQUU7TGw7MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBIQUU7Ozs7CisxMEYxO0dFT1JHSUFOIExFVFRFUiBIRTtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEhFOzs7OworMTBGMjtHRU9SR0lBTiBMRVRURVIgSElFO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgSElFOzs7OworMTBGMztHRU9SR0lBTiBMRVRURVIgV0U7TGw7MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBXRTs7OzsKKzEwRjQ7R0VPUkdJQU4gTEVUVEVSIEhBUjtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEhBUjs7OzsKKzEwRjU7R0VPUkdJQU4gTEVUVEVSIEhPRTtMbDswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEhPRTs7OzsKKzEwRjY7R0VPUkdJQU4gTEVUVEVSIEZJO0xsOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgRkk7Ozs7CisxMEZCO0dFT1JHSUFOIFBBUkFHUkFQSCBTRVBBUkFUT1I7UG87MDtMOzs7OztOOzs7OzsKKzExMDA7SEFOR1VMIENIT1NFT05HIEtJWUVPSztMbzswO0w7Ozs7O047Ozs7OworMTEwMTtIQU5HVUwgQ0hPU0VPTkcgU1NBTkdLSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExMDAgMTEwMDs7OztOOzs7OzsKKzExMDI7SEFOR1VMIENIT1NFT05HIE5JRVVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTAzO0hBTkdVTCBDSE9TRU9ORyBUSUtFVVQ7TG87MDtMOzs7OztOOzs7OzsKKzExMDQ7SEFOR1VMIENIT1NFT05HIFNTQU5HVElLRVVUO0xvOzA7TDs8Y29tcGF0PiAxMTAzIDExMDM7Ozs7Tjs7Ozs7CisxMTA1O0hBTkdVTCBDSE9TRU9ORyBSSUVVTDtMbzswO0w7Ozs7O047Ozs7OworMTEwNjtIQU5HVUwgQ0hPU0VPTkcgTUlFVU07TG87MDtMOzs7OztOOzs7OzsKKzExMDc7SEFOR1VMIENIT1NFT05HIFBJRVVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTA4O0hBTkdVTCBDSE9TRU9ORyBTU0FOR1BJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMTA3IDExMDc7Ozs7Tjs7Ozs7CisxMTA5O0hBTkdVTCBDSE9TRU9ORyBTSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTBBO0hBTkdVTCBDSE9TRU9ORyBTU0FOR1NJT1M7TG87MDtMOzxjb21wYXQ+IDExMDkgMTEwOTs7OztOOzs7OzsKKzExMEI7SEFOR1VMIENIT1NFT05HIElFVU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTBDO0hBTkdVTCBDSE9TRU9ORyBDSUVVQztMbzswO0w7Ozs7O047Ozs7OworMTEwRDtIQU5HVUwgQ0hPU0VPTkcgU1NBTkdDSUVVQztMbzswO0w7PGNvbXBhdD4gMTEwQyAxMTBDOzs7O047Ozs7OworMTEwRTtIQU5HVUwgQ0hPU0VPTkcgQ0hJRVVDSDtMbzswO0w7Ozs7O047Ozs7OworMTEwRjtIQU5HVUwgQ0hPU0VPTkcgS0hJRVVLSDtMbzswO0w7Ozs7O047Ozs7OworMTExMDtIQU5HVUwgQ0hPU0VPTkcgVEhJRVVUSDtMbzswO0w7Ozs7O047Ozs7OworMTExMTtIQU5HVUwgQ0hPU0VPTkcgUEhJRVVQSDtMbzswO0w7Ozs7O047Ozs7OworMTExMjtIQU5HVUwgQ0hPU0VPTkcgSElFVUg7TG87MDtMOzs7OztOOzs7OzsKKzExMTM7SEFOR1VMIENIT1NFT05HIE5JRVVOLUtJWUVPSztMbzswO0w7PGNvbXBhdD4gMTEwMiAxMTAwOzs7O047Ozs7OworMTExNDtIQU5HVUwgQ0hPU0VPTkcgU1NBTkdOSUVVTjtMbzswO0w7PGNvbXBhdD4gMTEwMiAxMTAyOzs7O047Ozs7OworMTExNTtIQU5HVUwgQ0hPU0VPTkcgTklFVU4tVElLRVVUO0xvOzA7TDs8Y29tcGF0PiAxMTAyIDExMDM7Ozs7Tjs7Ozs7CisxMTE2O0hBTkdVTCBDSE9TRU9ORyBOSUVVTi1QSUVVUDtMbzswO0w7PGNvbXBhdD4gMTEwMiAxMTA3Ozs7O047Ozs7OworMTExNztIQU5HVUwgQ0hPU0VPTkcgVElLRVVULUtJWUVPSztMbzswO0w7PGNvbXBhdD4gMTEwMyAxMTAwOzs7O047Ozs7OworMTExODtIQU5HVUwgQ0hPU0VPTkcgUklFVUwtTklFVU47TG87MDtMOzxjb21wYXQ+IDExMDUgMTEwMjs7OztOOzs7OzsKKzExMTk7SEFOR1VMIENIT1NFT05HIFNTQU5HUklFVUw7TG87MDtMOzxjb21wYXQ+IDExMDUgMTEwNTs7OztOOzs7OzsKKzExMUE7SEFOR1VMIENIT1NFT05HIFJJRVVMLUhJRVVIO0xvOzA7TDs8Y29tcGF0PiAxMTA1IDExMTI7Ozs7Tjs7Ozs7CisxMTFCO0hBTkdVTCBDSE9TRU9ORyBLQVBZRU9VTlJJRVVMO0xvOzA7TDs8Y29tcGF0PiAxMTA1IDExMEI7Ozs7Tjs7Ozs7CisxMTFDO0hBTkdVTCBDSE9TRU9ORyBNSUVVTS1QSUVVUDtMbzswO0w7PGNvbXBhdD4gMTEwNiAxMTA3Ozs7O047Ozs7OworMTExRDtIQU5HVUwgQ0hPU0VPTkcgS0FQWUVPVU5NSUVVTTtMbzswO0w7PGNvbXBhdD4gMTEwNiAxMTBCOzs7O047Ozs7OworMTExRTtIQU5HVUwgQ0hPU0VPTkcgUElFVVAtS0lZRU9LO0xvOzA7TDs8Y29tcGF0PiAxMTA3IDExMDA7Ozs7Tjs7Ozs7CisxMTFGO0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1OSUVVTjtMbzswO0w7PGNvbXBhdD4gMTEwNyAxMTAyOzs7O047Ozs7OworMTEyMDtIQU5HVUwgQ0hPU0VPTkcgUElFVVAtVElLRVVUO0xvOzA7TDs8Y29tcGF0PiAxMTA3IDExMDM7Ozs7Tjs7Ozs7CisxMTIxO0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMTA3IDExMDk7Ozs7Tjs7Ozs7CisxMTIyO0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1TSU9TLUtJWUVPSztMbzswO0w7PGNvbXBhdD4gMTEwNyAxMTA5IDExMDA7Ozs7Tjs7Ozs7CisxMTIzO0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1TSU9TLVRJS0VVVDtMbzswO0w7PGNvbXBhdD4gMTEwNyAxMTA5IDExMDM7Ozs7Tjs7Ozs7CisxMTI0O0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1TSU9TLVBJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMTA3IDExMDkgMTEwNzs7OztOOzs7OzsKKzExMjU7SEFOR1VMIENIT1NFT05HIFBJRVVQLVNTQU5HU0lPUztMbzswO0w7PGNvbXBhdD4gMTEwNyAxMTA5IDExMDk7Ozs7Tjs7Ozs7CisxMTI2O0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1TSU9TLUNJRVVDO0xvOzA7TDs8Y29tcGF0PiAxMTA3IDExMDkgMTEwQzs7OztOOzs7OzsKKzExMjc7SEFOR1VMIENIT1NFT05HIFBJRVVQLUNJRVVDO0xvOzA7TDs8Y29tcGF0PiAxMTA3IDExMEM7Ozs7Tjs7Ozs7CisxMTI4O0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1DSElFVUNIO0xvOzA7TDs8Y29tcGF0PiAxMTA3IDExMEU7Ozs7Tjs7Ozs7CisxMTI5O0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1USElFVVRIO0xvOzA7TDs8Y29tcGF0PiAxMTA3IDExMTA7Ozs7Tjs7Ozs7CisxMTJBO0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1QSElFVVBIO0xvOzA7TDs8Y29tcGF0PiAxMTA3IDExMTE7Ozs7Tjs7Ozs7CisxMTJCO0hBTkdVTCBDSE9TRU9ORyBLQVBZRU9VTlBJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMTA3IDExMEI7Ozs7Tjs7Ozs7CisxMTJDO0hBTkdVTCBDSE9TRU9ORyBLQVBZRU9VTlNTQU5HUElFVVA7TG87MDtMOzxjb21wYXQ+IDExMDcgMTEwNyAxMTBCOzs7O047Ozs7OworMTEyRDtIQU5HVUwgQ0hPU0VPTkcgU0lPUy1LSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExMDkgMTEwMDs7OztOOzs7OzsKKzExMkU7SEFOR1VMIENIT1NFT05HIFNJT1MtTklFVU47TG87MDtMOzxjb21wYXQ+IDExMDkgMTEwMjs7OztOOzs7OzsKKzExMkY7SEFOR1VMIENIT1NFT05HIFNJT1MtVElLRVVUO0xvOzA7TDs8Y29tcGF0PiAxMTA5IDExMDM7Ozs7Tjs7Ozs7CisxMTMwO0hBTkdVTCBDSE9TRU9ORyBTSU9TLVJJRVVMO0xvOzA7TDs8Y29tcGF0PiAxMTA5IDExMDU7Ozs7Tjs7Ozs7CisxMTMxO0hBTkdVTCBDSE9TRU9ORyBTSU9TLU1JRVVNO0xvOzA7TDs8Y29tcGF0PiAxMTA5IDExMDY7Ozs7Tjs7Ozs7CisxMTMyO0hBTkdVTCBDSE9TRU9ORyBTSU9TLVBJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMTA5IDExMDc7Ozs7Tjs7Ozs7CisxMTMzO0hBTkdVTCBDSE9TRU9ORyBTSU9TLVBJRVVQLUtJWUVPSztMbzswO0w7PGNvbXBhdD4gMTEwOSAxMTA3IDExMDA7Ozs7Tjs7Ozs7CisxMTM0O0hBTkdVTCBDSE9TRU9ORyBTSU9TLVNTQU5HU0lPUztMbzswO0w7PGNvbXBhdD4gMTEwOSAxMTA5IDExMDk7Ozs7Tjs7Ozs7CisxMTM1O0hBTkdVTCBDSE9TRU9ORyBTSU9TLUlFVU5HO0xvOzA7TDs8Y29tcGF0PiAxMTA5IDExMEI7Ozs7Tjs7Ozs7CisxMTM2O0hBTkdVTCBDSE9TRU9ORyBTSU9TLUNJRVVDO0xvOzA7TDs8Y29tcGF0PiAxMTA5IDExMEM7Ozs7Tjs7Ozs7CisxMTM3O0hBTkdVTCBDSE9TRU9ORyBTSU9TLUNISUVVQ0g7TG87MDtMOzxjb21wYXQ+IDExMDkgMTEwRTs7OztOOzs7OzsKKzExMzg7SEFOR1VMIENIT1NFT05HIFNJT1MtS0hJRVVLSDtMbzswO0w7PGNvbXBhdD4gMTEwOSAxMTBGOzs7O047Ozs7OworMTEzOTtIQU5HVUwgQ0hPU0VPTkcgU0lPUy1USElFVVRIO0xvOzA7TDs8Y29tcGF0PiAxMTA5IDExMTA7Ozs7Tjs7Ozs7CisxMTNBO0hBTkdVTCBDSE9TRU9ORyBTSU9TLVBISUVVUEg7TG87MDtMOzxjb21wYXQ+IDExMDkgMTExMTs7OztOOzs7OzsKKzExM0I7SEFOR1VMIENIT1NFT05HIFNJT1MtSElFVUg7TG87MDtMOzxjb21wYXQ+IDExMDkgMTExMjs7OztOOzs7OzsKKzExM0M7SEFOR1VMIENIT1NFT05HIENISVRVRVVNU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTEzRDtIQU5HVUwgQ0hPU0VPTkcgQ0hJVFVFVU1TU0FOR1NJT1M7TG87MDtMOzxjb21wYXQ+IDExM0MgMTEzQzs7OztOOzs7OzsKKzExM0U7SEFOR1VMIENIT1NFT05HIENFT05HQ0hJRVVNU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTEzRjtIQU5HVUwgQ0hPU0VPTkcgQ0VPTkdDSElFVU1TU0FOR1NJT1M7TG87MDtMOzxjb21wYXQ+IDExM0UgMTEzRTs7OztOOzs7OzsKKzExNDA7SEFOR1VMIENIT1NFT05HIFBBTlNJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExNDE7SEFOR1VMIENIT1NFT05HIElFVU5HLUtJWUVPSztMbzswO0w7PGNvbXBhdD4gMTEwQiAxMTAwOzs7O047Ozs7OworMTE0MjtIQU5HVUwgQ0hPU0VPTkcgSUVVTkctVElLRVVUO0xvOzA7TDs8Y29tcGF0PiAxMTBCIDExMDM7Ozs7Tjs7Ozs7CisxMTQzO0hBTkdVTCBDSE9TRU9ORyBJRVVORy1NSUVVTTtMbzswO0w7PGNvbXBhdD4gMTEwQiAxMTA2Ozs7O047Ozs7OworMTE0NDtIQU5HVUwgQ0hPU0VPTkcgSUVVTkctUElFVVA7TG87MDtMOzxjb21wYXQ+IDExMEIgMTEwNzs7OztOOzs7OzsKKzExNDU7SEFOR1VMIENIT1NFT05HIElFVU5HLVNJT1M7TG87MDtMOzxjb21wYXQ+IDExMEIgMTEwOTs7OztOOzs7OzsKKzExNDY7SEFOR1VMIENIT1NFT05HIElFVU5HLVBBTlNJT1M7TG87MDtMOzxjb21wYXQ+IDExMEIgMTE0MDs7OztOOzs7OzsKKzExNDc7SEFOR1VMIENIT1NFT05HIFNTQU5HSUVVTkc7TG87MDtMOzxjb21wYXQ+IDExMEIgMTEwQjs7OztOOzs7OzsKKzExNDg7SEFOR1VMIENIT1NFT05HIElFVU5HLUNJRVVDO0xvOzA7TDs8Y29tcGF0PiAxMTBCIDExMEM7Ozs7Tjs7Ozs7CisxMTQ5O0hBTkdVTCBDSE9TRU9ORyBJRVVORy1DSElFVUNIO0xvOzA7TDs8Y29tcGF0PiAxMTBCIDExMEU7Ozs7Tjs7Ozs7CisxMTRBO0hBTkdVTCBDSE9TRU9ORyBJRVVORy1USElFVVRIO0xvOzA7TDs8Y29tcGF0PiAxMTBCIDExMTA7Ozs7Tjs7Ozs7CisxMTRCO0hBTkdVTCBDSE9TRU9ORyBJRVVORy1QSElFVVBIO0xvOzA7TDs8Y29tcGF0PiAxMTBCIDExMTE7Ozs7Tjs7Ozs7CisxMTRDO0hBTkdVTCBDSE9TRU9ORyBZRVNJRVVORztMbzswO0w7Ozs7O047Ozs7OworMTE0RDtIQU5HVUwgQ0hPU0VPTkcgQ0lFVUMtSUVVTkc7TG87MDtMOzxjb21wYXQ+IDExMEMgMTEwQjs7OztOOzs7OzsKKzExNEU7SEFOR1VMIENIT1NFT05HIENISVRVRVVNQ0lFVUM7TG87MDtMOzs7OztOOzs7OzsKKzExNEY7SEFOR1VMIENIT1NFT05HIENISVRVRVVNU1NBTkdDSUVVQztMbzswO0w7PGNvbXBhdD4gMTE0RSAxMTRFOzs7O047Ozs7OworMTE1MDtIQU5HVUwgQ0hPU0VPTkcgQ0VPTkdDSElFVU1DSUVVQztMbzswO0w7Ozs7O047Ozs7OworMTE1MTtIQU5HVUwgQ0hPU0VPTkcgQ0VPTkdDSElFVU1TU0FOR0NJRVVDO0xvOzA7TDs8Y29tcGF0PiAxMTUwIDExNTA7Ozs7Tjs7Ozs7CisxMTUyO0hBTkdVTCBDSE9TRU9ORyBDSElFVUNILUtISUVVS0g7TG87MDtMOzxjb21wYXQ+IDExMEUgMTEwRjs7OztOOzs7OzsKKzExNTM7SEFOR1VMIENIT1NFT05HIENISUVVQ0gtSElFVUg7TG87MDtMOzxjb21wYXQ+IDExMEUgMTExMjs7OztOOzs7OzsKKzExNTQ7SEFOR1VMIENIT1NFT05HIENISVRVRVVNQ0hJRVVDSDtMbzswO0w7Ozs7O047Ozs7OworMTE1NTtIQU5HVUwgQ0hPU0VPTkcgQ0VPTkdDSElFVU1DSElFVUNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTU2O0hBTkdVTCBDSE9TRU9ORyBQSElFVVBILVBJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMTExIDExMDc7Ozs7Tjs7Ozs7CisxMTU3O0hBTkdVTCBDSE9TRU9ORyBLQVBZRU9VTlBISUVVUEg7TG87MDtMOzxjb21wYXQ+IDExMTEgMTEwQjs7OztOOzs7OzsKKzExNTg7SEFOR1VMIENIT1NFT05HIFNTQU5HSElFVUg7TG87MDtMOzxjb21wYXQ+IDExMTIgMTExMjs7OztOOzs7OzsKKzExNTk7SEFOR1VMIENIT1NFT05HIFlFT1JJTkhJRVVIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTVGO0hBTkdVTCBDSE9TRU9ORyBGSUxMRVI7TG87MDtMOzs7OztOOzs7OzsKKzExNjA7SEFOR1VMIEpVTkdTRU9ORyBGSUxMRVI7TG87MDtMOzs7OztOOzs7OzsKKzExNjE7SEFOR1VMIEpVTkdTRU9ORyBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTYyO0hBTkdVTCBKVU5HU0VPTkcgQUU7TG87MDtMOzxjb21wYXQ+IDExNjEgMTE3NTs7OztOOzs7OzsKKzExNjM7SEFOR1VMIEpVTkdTRU9ORyBZQTtMbzswO0w7Ozs7O047Ozs7OworMTE2NDtIQU5HVUwgSlVOR1NFT05HIFlBRTtMbzswO0w7PGNvbXBhdD4gMTE2MyAxMTc1Ozs7O047Ozs7OworMTE2NTtIQU5HVUwgSlVOR1NFT05HIEVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTY2O0hBTkdVTCBKVU5HU0VPTkcgRTtMbzswO0w7PGNvbXBhdD4gMTE2NSAxMTc1Ozs7O047Ozs7OworMTE2NztIQU5HVUwgSlVOR1NFT05HIFlFTztMbzswO0w7Ozs7O047Ozs7OworMTE2ODtIQU5HVUwgSlVOR1NFT05HIFlFO0xvOzA7TDs8Y29tcGF0PiAxMTY3IDExNzU7Ozs7Tjs7Ozs7CisxMTY5O0hBTkdVTCBKVU5HU0VPTkcgTztMbzswO0w7Ozs7O047Ozs7OworMTE2QTtIQU5HVUwgSlVOR1NFT05HIFdBO0xvOzA7TDs8Y29tcGF0PiAxMTY5IDExNjE7Ozs7Tjs7Ozs7CisxMTZCO0hBTkdVTCBKVU5HU0VPTkcgV0FFO0xvOzA7TDs8Y29tcGF0PiAxMTY5IDExNjEgMTE3NTs7OztOOzs7OzsKKzExNkM7SEFOR1VMIEpVTkdTRU9ORyBPRTtMbzswO0w7PGNvbXBhdD4gMTE2OSAxMTc1Ozs7O047Ozs7OworMTE2RDtIQU5HVUwgSlVOR1NFT05HIFlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTZFO0hBTkdVTCBKVU5HU0VPTkcgVTtMbzswO0w7Ozs7O047Ozs7OworMTE2RjtIQU5HVUwgSlVOR1NFT05HIFdFTztMbzswO0w7PGNvbXBhdD4gMTE2RSAxMTY1Ozs7O047Ozs7OworMTE3MDtIQU5HVUwgSlVOR1NFT05HIFdFO0xvOzA7TDs8Y29tcGF0PiAxMTZFIDExNjUgMTE3NTs7OztOOzs7OzsKKzExNzE7SEFOR1VMIEpVTkdTRU9ORyBXSTtMbzswO0w7PGNvbXBhdD4gMTE2RSAxMTc1Ozs7O047Ozs7OworMTE3MjtIQU5HVUwgSlVOR1NFT05HIFlVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTczO0hBTkdVTCBKVU5HU0VPTkcgRVU7TG87MDtMOzs7OztOOzs7OzsKKzExNzQ7SEFOR1VMIEpVTkdTRU9ORyBZSTtMbzswO0w7PGNvbXBhdD4gMTE3MyAxMTc1Ozs7O047Ozs7OworMTE3NTtIQU5HVUwgSlVOR1NFT05HIEk7TG87MDtMOzs7OztOOzs7OzsKKzExNzY7SEFOR1VMIEpVTkdTRU9ORyBBLU87TG87MDtMOzxjb21wYXQ+IDExNjEgMTE2OTs7OztOOzs7OzsKKzExNzc7SEFOR1VMIEpVTkdTRU9ORyBBLVU7TG87MDtMOzxjb21wYXQ+IDExNjEgMTE2RTs7OztOOzs7OzsKKzExNzg7SEFOR1VMIEpVTkdTRU9ORyBZQS1PO0xvOzA7TDs8Y29tcGF0PiAxMTYzIDExNjk7Ozs7Tjs7Ozs7CisxMTc5O0hBTkdVTCBKVU5HU0VPTkcgWUEtWU87TG87MDtMOzxjb21wYXQ+IDExNjMgMTE2RDs7OztOOzs7OzsKKzExN0E7SEFOR1VMIEpVTkdTRU9ORyBFTy1PO0xvOzA7TDs8Y29tcGF0PiAxMTY1IDExNjk7Ozs7Tjs7Ozs7CisxMTdCO0hBTkdVTCBKVU5HU0VPTkcgRU8tVTtMbzswO0w7PGNvbXBhdD4gMTE2NSAxMTZFOzs7O047Ozs7OworMTE3QztIQU5HVUwgSlVOR1NFT05HIEVPLUVVO0xvOzA7TDs8Y29tcGF0PiAxMTY1IDExNzM7Ozs7Tjs7Ozs7CisxMTdEO0hBTkdVTCBKVU5HU0VPTkcgWUVPLU87TG87MDtMOzxjb21wYXQ+IDExNjcgMTE2OTs7OztOOzs7OzsKKzExN0U7SEFOR1VMIEpVTkdTRU9ORyBZRU8tVTtMbzswO0w7PGNvbXBhdD4gMTE2NyAxMTZFOzs7O047Ozs7OworMTE3RjtIQU5HVUwgSlVOR1NFT05HIE8tRU87TG87MDtMOzxjb21wYXQ+IDExNjkgMTE2NTs7OztOOzs7OzsKKzExODA7SEFOR1VMIEpVTkdTRU9ORyBPLUU7TG87MDtMOzxjb21wYXQ+IDExNjkgMTE2Njs7OztOOzs7OzsKKzExODE7SEFOR1VMIEpVTkdTRU9ORyBPLVlFO0xvOzA7TDs8Y29tcGF0PiAxMTY5IDExNjg7Ozs7Tjs7Ozs7CisxMTgyO0hBTkdVTCBKVU5HU0VPTkcgTy1PO0xvOzA7TDs8Y29tcGF0PiAxMTY5IDExNjk7Ozs7Tjs7Ozs7CisxMTgzO0hBTkdVTCBKVU5HU0VPTkcgTy1VO0xvOzA7TDs8Y29tcGF0PiAxMTY5IDExNkU7Ozs7Tjs7Ozs7CisxMTg0O0hBTkdVTCBKVU5HU0VPTkcgWU8tWUE7TG87MDtMOzxjb21wYXQ+IDExNkQgMTE2Mzs7OztOOzs7OzsKKzExODU7SEFOR1VMIEpVTkdTRU9ORyBZTy1ZQUU7TG87MDtMOzxjb21wYXQ+IDExNkQgMTE2NDs7OztOOzs7OzsKKzExODY7SEFOR1VMIEpVTkdTRU9ORyBZTy1ZRU87TG87MDtMOzxjb21wYXQ+IDExNkQgMTE2Nzs7OztOOzs7OzsKKzExODc7SEFOR1VMIEpVTkdTRU9ORyBZTy1PO0xvOzA7TDs8Y29tcGF0PiAxMTZEIDExNjk7Ozs7Tjs7Ozs7CisxMTg4O0hBTkdVTCBKVU5HU0VPTkcgWU8tSTtMbzswO0w7PGNvbXBhdD4gMTE2RCAxMTc1Ozs7O047Ozs7OworMTE4OTtIQU5HVUwgSlVOR1NFT05HIFUtQTtMbzswO0w7PGNvbXBhdD4gMTE2RSAxMTYxOzs7O047Ozs7OworMTE4QTtIQU5HVUwgSlVOR1NFT05HIFUtQUU7TG87MDtMOzxjb21wYXQ+IDExNkUgMTE2Mjs7OztOOzs7OzsKKzExOEI7SEFOR1VMIEpVTkdTRU9ORyBVLUVPLUVVO0xvOzA7TDs8Y29tcGF0PiAxMTZFIDExNjUgMTE3Mzs7OztOOzs7OzsKKzExOEM7SEFOR1VMIEpVTkdTRU9ORyBVLVlFO0xvOzA7TDs8Y29tcGF0PiAxMTZFIDExNjg7Ozs7Tjs7Ozs7CisxMThEO0hBTkdVTCBKVU5HU0VPTkcgVS1VO0xvOzA7TDs8Y29tcGF0PiAxMTZFIDExNkU7Ozs7Tjs7Ozs7CisxMThFO0hBTkdVTCBKVU5HU0VPTkcgWVUtQTtMbzswO0w7PGNvbXBhdD4gMTE3MiAxMTYxOzs7O047Ozs7OworMTE4RjtIQU5HVUwgSlVOR1NFT05HIFlVLUVPO0xvOzA7TDs8Y29tcGF0PiAxMTcyIDExNjU7Ozs7Tjs7Ozs7CisxMTkwO0hBTkdVTCBKVU5HU0VPTkcgWVUtRTtMbzswO0w7PGNvbXBhdD4gMTE3MiAxMTY2Ozs7O047Ozs7OworMTE5MTtIQU5HVUwgSlVOR1NFT05HIFlVLVlFTztMbzswO0w7PGNvbXBhdD4gMTE3MiAxMTY3Ozs7O047Ozs7OworMTE5MjtIQU5HVUwgSlVOR1NFT05HIFlVLVlFO0xvOzA7TDs8Y29tcGF0PiAxMTcyIDExNjg7Ozs7Tjs7Ozs7CisxMTkzO0hBTkdVTCBKVU5HU0VPTkcgWVUtVTtMbzswO0w7PGNvbXBhdD4gMTE3MiAxMTZFOzs7O047Ozs7OworMTE5NDtIQU5HVUwgSlVOR1NFT05HIFlVLUk7TG87MDtMOzxjb21wYXQ+IDExNzIgMTE3NTs7OztOOzs7OzsKKzExOTU7SEFOR1VMIEpVTkdTRU9ORyBFVS1VO0xvOzA7TDs8Y29tcGF0PiAxMTczIDExNkU7Ozs7Tjs7Ozs7CisxMTk2O0hBTkdVTCBKVU5HU0VPTkcgRVUtRVU7TG87MDtMOzxjb21wYXQ+IDExNzMgMTE3Mzs7OztOOzs7OzsKKzExOTc7SEFOR1VMIEpVTkdTRU9ORyBZSS1VO0xvOzA7TDs8Y29tcGF0PiAxMTc0IDExNkU7Ozs7Tjs7Ozs7CisxMTk4O0hBTkdVTCBKVU5HU0VPTkcgSS1BO0xvOzA7TDs8Y29tcGF0PiAxMTc1IDExNjE7Ozs7Tjs7Ozs7CisxMTk5O0hBTkdVTCBKVU5HU0VPTkcgSS1ZQTtMbzswO0w7PGNvbXBhdD4gMTE3NSAxMTYzOzs7O047Ozs7OworMTE5QTtIQU5HVUwgSlVOR1NFT05HIEktTztMbzswO0w7PGNvbXBhdD4gMTE3NSAxMTY5Ozs7O047Ozs7OworMTE5QjtIQU5HVUwgSlVOR1NFT05HIEktVTtMbzswO0w7PGNvbXBhdD4gMTE3NSAxMTZFOzs7O047Ozs7OworMTE5QztIQU5HVUwgSlVOR1NFT05HIEktRVU7TG87MDtMOzxjb21wYXQ+IDExNzUgMTE3Mzs7OztOOzs7OzsKKzExOUQ7SEFOR1VMIEpVTkdTRU9ORyBJLUFSQUVBO0xvOzA7TDs8Y29tcGF0PiAxMTc1IDExOUU7Ozs7Tjs7Ozs7CisxMTlFO0hBTkdVTCBKVU5HU0VPTkcgQVJBRUE7TG87MDtMOzs7OztOOzs7OzsKKzExOUY7SEFOR1VMIEpVTkdTRU9ORyBBUkFFQS1FTztMbzswO0w7PGNvbXBhdD4gMTE5RSAxMTY1Ozs7O047Ozs7OworMTFBMDtIQU5HVUwgSlVOR1NFT05HIEFSQUVBLVU7TG87MDtMOzxjb21wYXQ+IDExOUUgMTE2RTs7OztOOzs7OzsKKzExQTE7SEFOR1VMIEpVTkdTRU9ORyBBUkFFQS1JO0xvOzA7TDs8Y29tcGF0PiAxMTlFIDExNzU7Ozs7Tjs7Ozs7CisxMUEyO0hBTkdVTCBKVU5HU0VPTkcgU1NBTkdBUkFFQTtMbzswO0w7PGNvbXBhdD4gMTE5RSAxMTlFOzs7O047Ozs7OworMTFBODtIQU5HVUwgSk9OR1NFT05HIEtJWUVPSztMbzswO0w7Ozs7O047Ozs7OworMTFBOTtIQU5HVUwgSk9OR1NFT05HIFNTQU5HS0lZRU9LO0xvOzA7TDs8Y29tcGF0PiAxMUE4IDExQTg7Ozs7Tjs7Ozs7CisxMUFBO0hBTkdVTCBKT05HU0VPTkcgS0lZRU9LLVNJT1M7TG87MDtMOzxjb21wYXQ+IDExQTggMTFCQTs7OztOOzs7OzsKKzExQUI7SEFOR1VMIEpPTkdTRU9ORyBOSUVVTjtMbzswO0w7Ozs7O047Ozs7OworMTFBQztIQU5HVUwgSk9OR1NFT05HIE5JRVVOLUNJRVVDO0xvOzA7TDs8Y29tcGF0PiAxMUFCIDExQkQ7Ozs7Tjs7Ozs7CisxMUFEO0hBTkdVTCBKT05HU0VPTkcgTklFVU4tSElFVUg7TG87MDtMOzxjb21wYXQ+IDExQUIgMTFDMjs7OztOOzs7OzsKKzExQUU7SEFOR1VMIEpPTkdTRU9ORyBUSUtFVVQ7TG87MDtMOzs7OztOOzs7OzsKKzExQUY7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTDtMbzswO0w7Ozs7O047Ozs7OworMTFCMDtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLUtJWUVPSztMbzswO0w7PGNvbXBhdD4gMTFBRiAxMUE4Ozs7O047Ozs7OworMTFCMTtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLU1JRVVNO0xvOzA7TDs8Y29tcGF0PiAxMUFGIDExQjc7Ozs7Tjs7Ozs7CisxMUIyO0hBTkdVTCBKT05HU0VPTkcgUklFVUwtUElFVVA7TG87MDtMOzxjb21wYXQ+IDExQUYgMTFCODs7OztOOzs7OzsKKzExQjM7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUFGIDExQkE7Ozs7Tjs7Ozs7CisxMUI0O0hBTkdVTCBKT05HU0VPTkcgUklFVUwtVEhJRVVUSDtMbzswO0w7PGNvbXBhdD4gMTFBRiAxMUMwOzs7O047Ozs7OworMTFCNTtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLVBISUVVUEg7TG87MDtMOzxjb21wYXQ+IDExQUYgMTFDMTs7OztOOzs7OzsKKzExQjY7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1ISUVVSDtMbzswO0w7PGNvbXBhdD4gMTFBRiAxMUMyOzs7O047Ozs7OworMTFCNztIQU5HVUwgSk9OR1NFT05HIE1JRVVNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUI4O0hBTkdVTCBKT05HU0VPTkcgUElFVVA7TG87MDtMOzs7OztOOzs7OzsKKzExQjk7SEFOR1VMIEpPTkdTRU9ORyBQSUVVUC1TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUI4IDExQkE7Ozs7Tjs7Ozs7CisxMUJBO0hBTkdVTCBKT05HU0VPTkcgU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTFCQjtIQU5HVUwgSk9OR1NFT05HIFNTQU5HU0lPUztMbzswO0w7PGNvbXBhdD4gMTFCQSAxMUJBOzs7O047Ozs7OworMTFCQztIQU5HVUwgSk9OR1NFT05HIElFVU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUJEO0hBTkdVTCBKT05HU0VPTkcgQ0lFVUM7TG87MDtMOzs7OztOOzs7OzsKKzExQkU7SEFOR1VMIEpPTkdTRU9ORyBDSElFVUNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUJGO0hBTkdVTCBKT05HU0VPTkcgS0hJRVVLSDtMbzswO0w7Ozs7O047Ozs7OworMTFDMDtIQU5HVUwgSk9OR1NFT05HIFRISUVVVEg7TG87MDtMOzs7OztOOzs7OzsKKzExQzE7SEFOR1VMIEpPTkdTRU9ORyBQSElFVVBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUMyO0hBTkdVTCBKT05HU0VPTkcgSElFVUg7TG87MDtMOzs7OztOOzs7OzsKKzExQzM7SEFOR1VMIEpPTkdTRU9ORyBLSVlFT0stUklFVUw7TG87MDtMOzxjb21wYXQ+IDExQTggMTFBRjs7OztOOzs7OzsKKzExQzQ7SEFOR1VMIEpPTkdTRU9ORyBLSVlFT0stU0lPUy1LSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExQTggMTFCQSAxMUE4Ozs7O047Ozs7OworMTFDNTtIQU5HVUwgSk9OR1NFT05HIE5JRVVOLUtJWUVPSztMbzswO0w7PGNvbXBhdD4gMTFBQiAxMUE4Ozs7O047Ozs7OworMTFDNjtIQU5HVUwgSk9OR1NFT05HIE5JRVVOLVRJS0VVVDtMbzswO0w7PGNvbXBhdD4gMTFBQiAxMUFFOzs7O047Ozs7OworMTFDNztIQU5HVUwgSk9OR1NFT05HIE5JRVVOLVNJT1M7TG87MDtMOzxjb21wYXQ+IDExQUIgMTFCQTs7OztOOzs7OzsKKzExQzg7SEFOR1VMIEpPTkdTRU9ORyBOSUVVTi1QQU5TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUFCIDExRUI7Ozs7Tjs7Ozs7CisxMUM5O0hBTkdVTCBKT05HU0VPTkcgTklFVU4tVEhJRVVUSDtMbzswO0w7PGNvbXBhdD4gMTFBQiAxMUMwOzs7O047Ozs7OworMTFDQTtIQU5HVUwgSk9OR1NFT05HIFRJS0VVVC1LSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExQUUgMTFBODs7OztOOzs7OzsKKzExQ0I7SEFOR1VMIEpPTkdTRU9ORyBUSUtFVVQtUklFVUw7TG87MDtMOzxjb21wYXQ+IDExQUUgMTFBRjs7OztOOzs7OzsKKzExQ0M7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1LSVlFT0stU0lPUztMbzswO0w7PGNvbXBhdD4gMTFBRiAxMUE4IDExQkE7Ozs7Tjs7Ozs7CisxMUNEO0hBTkdVTCBKT05HU0VPTkcgUklFVUwtTklFVU47TG87MDtMOzxjb21wYXQ+IDExQUYgMTFBQjs7OztOOzs7OzsKKzExQ0U7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1USUtFVVQ7TG87MDtMOzxjb21wYXQ+IDExQUYgMTFBRTs7OztOOzs7OzsKKzExQ0Y7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1USUtFVVQtSElFVUg7TG87MDtMOzxjb21wYXQ+IDExQUYgMTFBRSAxMUMyOzs7O047Ozs7OworMTFEMDtIQU5HVUwgSk9OR1NFT05HIFNTQU5HUklFVUw7TG87MDtMOzxjb21wYXQ+IDExQUYgMTFBRjs7OztOOzs7OzsKKzExRDE7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1NSUVVTS1LSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExQUYgMTFCNyAxMUE4Ozs7O047Ozs7OworMTFEMjtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLU1JRVVNLVNJT1M7TG87MDtMOzxjb21wYXQ+IDExQUYgMTFCNyAxMUJBOzs7O047Ozs7OworMTFEMztIQU5HVUwgSk9OR1NFT05HIFJJRVVMLVBJRVVQLVNJT1M7TG87MDtMOzxjb21wYXQ+IDExQUYgMTFCOCAxMUJBOzs7O047Ozs7OworMTFENDtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLVBJRVVQLUhJRVVIO0xvOzA7TDs8Y29tcGF0PiAxMUFGIDExQjggMTFDMjs7OztOOzs7OzsKKzExRDU7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1LQVBZRU9VTlBJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMUFGIDExQjggMTFCQzs7OztOOzs7OzsKKzExRDY7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1TU0FOR1NJT1M7TG87MDtMOzxjb21wYXQ+IDExQUYgMTFCQSAxMUJBOzs7O047Ozs7OworMTFENztIQU5HVUwgSk9OR1NFT05HIFJJRVVMLVBBTlNJT1M7TG87MDtMOzxjb21wYXQ+IDExQUYgMTFFQjs7OztOOzs7OzsKKzExRDg7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1LSElFVUtIO0xvOzA7TDs8Y29tcGF0PiAxMUFGIDExQkY7Ozs7Tjs7Ozs7CisxMUQ5O0hBTkdVTCBKT05HU0VPTkcgUklFVUwtWUVPUklOSElFVUg7TG87MDtMOzxjb21wYXQ+IDExQUYgMTFGOTs7OztOOzs7OzsKKzExREE7SEFOR1VMIEpPTkdTRU9ORyBNSUVVTS1LSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExQjcgMTFBODs7OztOOzs7OzsKKzExREI7SEFOR1VMIEpPTkdTRU9ORyBNSUVVTS1SSUVVTDtMbzswO0w7PGNvbXBhdD4gMTFCNyAxMUFGOzs7O047Ozs7OworMTFEQztIQU5HVUwgSk9OR1NFT05HIE1JRVVNLVBJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMUI3IDExQjg7Ozs7Tjs7Ozs7CisxMUREO0hBTkdVTCBKT05HU0VPTkcgTUlFVU0tU0lPUztMbzswO0w7PGNvbXBhdD4gMTFCNyAxMUJBOzs7O047Ozs7OworMTFERTtIQU5HVUwgSk9OR1NFT05HIE1JRVVNLVNTQU5HU0lPUztMbzswO0w7PGNvbXBhdD4gMTFCNyAxMUJBIDExQkE7Ozs7Tjs7Ozs7CisxMURGO0hBTkdVTCBKT05HU0VPTkcgTUlFVU0tUEFOU0lPUztMbzswO0w7PGNvbXBhdD4gMTFCNyAxMUVCOzs7O047Ozs7OworMTFFMDtIQU5HVUwgSk9OR1NFT05HIE1JRVVNLUNISUVVQ0g7TG87MDtMOzxjb21wYXQ+IDExQjcgMTFCRTs7OztOOzs7OzsKKzExRTE7SEFOR1VMIEpPTkdTRU9ORyBNSUVVTS1ISUVVSDtMbzswO0w7PGNvbXBhdD4gMTFCNyAxMUMyOzs7O047Ozs7OworMTFFMjtIQU5HVUwgSk9OR1NFT05HIEtBUFlFT1VOTUlFVU07TG87MDtMOzxjb21wYXQ+IDExQjcgMTFCQzs7OztOOzs7OzsKKzExRTM7SEFOR1VMIEpPTkdTRU9ORyBQSUVVUC1SSUVVTDtMbzswO0w7PGNvbXBhdD4gMTFCOCAxMUFGOzs7O047Ozs7OworMTFFNDtIQU5HVUwgSk9OR1NFT05HIFBJRVVQLVBISUVVUEg7TG87MDtMOzxjb21wYXQ+IDExQjggMTFDMTs7OztOOzs7OzsKKzExRTU7SEFOR1VMIEpPTkdTRU9ORyBQSUVVUC1ISUVVSDtMbzswO0w7PGNvbXBhdD4gMTFCOCAxMUMyOzs7O047Ozs7OworMTFFNjtIQU5HVUwgSk9OR1NFT05HIEtBUFlFT1VOUElFVVA7TG87MDtMOzxjb21wYXQ+IDExQjggMTFCQzs7OztOOzs7OzsKKzExRTc7SEFOR1VMIEpPTkdTRU9ORyBTSU9TLUtJWUVPSztMbzswO0w7PGNvbXBhdD4gMTFCQSAxMUE4Ozs7O047Ozs7OworMTFFODtIQU5HVUwgSk9OR1NFT05HIFNJT1MtVElLRVVUO0xvOzA7TDs8Y29tcGF0PiAxMUJBIDExQUU7Ozs7Tjs7Ozs7CisxMUU5O0hBTkdVTCBKT05HU0VPTkcgU0lPUy1SSUVVTDtMbzswO0w7PGNvbXBhdD4gMTFCQSAxMUFGOzs7O047Ozs7OworMTFFQTtIQU5HVUwgSk9OR1NFT05HIFNJT1MtUElFVVA7TG87MDtMOzxjb21wYXQ+IDExQkEgMTFCODs7OztOOzs7OzsKKzExRUI7SEFOR1VMIEpPTkdTRU9ORyBQQU5TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUVDO0hBTkdVTCBKT05HU0VPTkcgSUVVTkctS0lZRU9LO0xvOzA7TDs8Y29tcGF0PiAxMUJDIDExQTg7Ozs7Tjs7Ozs7CisxMUVEO0hBTkdVTCBKT05HU0VPTkcgSUVVTkctU1NBTkdLSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExQkMgMTFBOCAxMUE4Ozs7O047Ozs7OworMTFFRTtIQU5HVUwgSk9OR1NFT05HIFNTQU5HSUVVTkc7TG87MDtMOzxjb21wYXQ+IDExQkMgMTFCQzs7OztOOzs7OzsKKzExRUY7SEFOR1VMIEpPTkdTRU9ORyBJRVVORy1LSElFVUtIO0xvOzA7TDs8Y29tcGF0PiAxMUJDIDExQkY7Ozs7Tjs7Ozs7CisxMUYwO0hBTkdVTCBKT05HU0VPTkcgWUVTSUVVTkc7TG87MDtMOzs7OztOOzs7OzsKKzExRjE7SEFOR1VMIEpPTkdTRU9ORyBZRVNJRVVORy1TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUYwIDExQkE7Ozs7Tjs7Ozs7CisxMUYyO0hBTkdVTCBKT05HU0VPTkcgWUVTSUVVTkctUEFOU0lPUztMbzswO0w7PGNvbXBhdD4gMTFGMCAxMUVCOzs7O047Ozs7OworMTFGMztIQU5HVUwgSk9OR1NFT05HIFBISUVVUEgtUElFVVA7TG87MDtMOzxjb21wYXQ+IDExQzEgMTFCODs7OztOOzs7OzsKKzExRjQ7SEFOR1VMIEpPTkdTRU9ORyBLQVBZRU9VTlBISUVVUEg7TG87MDtMOzxjb21wYXQ+IDExQzEgMTFCQzs7OztOOzs7OzsKKzExRjU7SEFOR1VMIEpPTkdTRU9ORyBISUVVSC1OSUVVTjtMbzswO0w7PGNvbXBhdD4gMTFDMiAxMUFCOzs7O047Ozs7OworMTFGNjtIQU5HVUwgSk9OR1NFT05HIEhJRVVILVJJRVVMO0xvOzA7TDs8Y29tcGF0PiAxMUMyIDExQUY7Ozs7Tjs7Ozs7CisxMUY3O0hBTkdVTCBKT05HU0VPTkcgSElFVUgtTUlFVU07TG87MDtMOzxjb21wYXQ+IDExQzIgMTFCNzs7OztOOzs7OzsKKzExRjg7SEFOR1VMIEpPTkdTRU9ORyBISUVVSC1QSUVVUDtMbzswO0w7PGNvbXBhdD4gMTFDMiAxMUI4Ozs7O047Ozs7OworMTFGOTtIQU5HVUwgSk9OR1NFT05HIFlFT1JJTkhJRVVIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxRTAwO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBSSU5HIEJFTE9XO0x1OzA7TDswMDQxIDAzMjU7Ozs7Tjs7OzsxRTAxOworMUUwMTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIFJJTkcgQkVMT1c7TGw7MDtMOzAwNjEgMDMyNTs7OztOOzs7MUUwMDs7MUUwMAorMUUwMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBCIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDQyIDAzMDc7Ozs7Tjs7OzsxRTAzOworMUUwMztMQVRJTiBTTUFMTCBMRVRURVIgQiBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA2MiAwMzA3Ozs7O047OzsxRTAyOzsxRTAyCisxRTA0O0xBVElOIENBUElUQUwgTEVUVEVSIEIgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNDIgMDMyMzs7OztOOzs7OzFFMDU7CisxRTA1O0xBVElOIFNNQUxMIExFVFRFUiBCIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDYyIDAzMjM7Ozs7Tjs7OzFFMDQ7OzFFMDQKKzFFMDY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQiBXSVRIIExJTkUgQkVMT1c7THU7MDtMOzAwNDIgMDMzMTs7OztOOzs7OzFFMDc7CisxRTA3O0xBVElOIFNNQUxMIExFVFRFUiBCIFdJVEggTElORSBCRUxPVztMbDswO0w7MDA2MiAwMzMxOzs7O047OzsxRTA2OzsxRTA2CisxRTA4O0xBVElOIENBUElUQUwgTEVUVEVSIEMgV0lUSCBDRURJTExBIEFORCBBQ1VURTtMdTswO0w7MDBDNyAwMzAxOzs7O047Ozs7MUUwOTsKKzFFMDk7TEFUSU4gU01BTEwgTEVUVEVSIEMgV0lUSCBDRURJTExBIEFORCBBQ1VURTtMbDswO0w7MDBFNyAwMzAxOzs7O047OzsxRTA4OzsxRTA4CisxRTBBO0xBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNDQgMDMwNzs7OztOOzs7OzFFMEI7CisxRTBCO0xBVElOIFNNQUxMIExFVFRFUiBEIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDY0IDAzMDc7Ozs7Tjs7OzFFMEE7OzFFMEEKKzFFMEM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA0NCAwMzIzOzs7O047Ozs7MUUwRDsKKzFFMEQ7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNjQgMDMyMzs7OztOOzs7MUUwQzs7MUUwQworMUUwRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFdJVEggTElORSBCRUxPVztMdTswO0w7MDA0NCAwMzMxOzs7O047Ozs7MUUwRjsKKzFFMEY7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBMSU5FIEJFTE9XO0xsOzA7TDswMDY0IDAzMzE7Ozs7Tjs7OzFFMEU7OzFFMEUKKzFFMTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIENFRElMTEE7THU7MDtMOzAwNDQgMDMyNzs7OztOOzs7OzFFMTE7CisxRTExO0xBVElOIFNNQUxMIExFVFRFUiBEIFdJVEggQ0VESUxMQTtMbDswO0w7MDA2NCAwMzI3Ozs7O047OzsxRTEwOzsxRTEwCisxRTEyO0xBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBDSVJDVU1GTEVYIEJFTE9XO0x1OzA7TDswMDQ0IDAzMkQ7Ozs7Tjs7OzsxRTEzOworMUUxMztMQVRJTiBTTUFMTCBMRVRURVIgRCBXSVRIIENJUkNVTUZMRVggQkVMT1c7TGw7MDtMOzAwNjQgMDMyRDs7OztOOzs7MUUxMjs7MUUxMgorMUUxNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggTUFDUk9OIEFORCBHUkFWRTtMdTswO0w7MDExMiAwMzAwOzs7O047Ozs7MUUxNTsKKzFFMTU7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBNQUNST04gQU5EIEdSQVZFO0xsOzA7TDswMTEzIDAzMDA7Ozs7Tjs7OzFFMTQ7OzFFMTQKKzFFMTY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIE1BQ1JPTiBBTkQgQUNVVEU7THU7MDtMOzAxMTIgMDMwMTs7OztOOzs7OzFFMTc7CisxRTE3O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggTUFDUk9OIEFORCBBQ1VURTtMbDswO0w7MDExMyAwMzAxOzs7O047OzsxRTE2OzsxRTE2CisxRTE4O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYIEJFTE9XO0x1OzA7TDswMDQ1IDAzMkQ7Ozs7Tjs7OzsxRTE5OworMUUxOTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVggQkVMT1c7TGw7MDtMOzAwNjUgMDMyRDs7OztOOzs7MUUxODs7MUUxOAorMUUxQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggVElMREUgQkVMT1c7THU7MDtMOzAwNDUgMDMzMDs7OztOOzs7OzFFMUI7CisxRTFCO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggVElMREUgQkVMT1c7TGw7MDtMOzAwNjUgMDMzMDs7OztOOzs7MUUxQTs7MUUxQQorMUUxQztMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0VESUxMQSBBTkQgQlJFVkU7THU7MDtMOzAxMTQgMDMyNzs7OztOOzs7OzFFMUQ7CisxRTFEO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQ0VESUxMQSBBTkQgQlJFVkU7TGw7MDtMOzAxMTUgMDMyNzs7OztOOzs7MUUxQzs7MUUxQworMUUxRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBGIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDQ2IDAzMDc7Ozs7Tjs7OzsxRTFGOworMUUxRjtMQVRJTiBTTUFMTCBMRVRURVIgRiBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA2NiAwMzA3Ozs7O047OzsxRTFFOzsxRTFFCisxRTIwO0xBVElOIENBUElUQUwgTEVUVEVSIEcgV0lUSCBNQUNST047THU7MDtMOzAwNDcgMDMwNDs7OztOOzs7OzFFMjE7CisxRTIxO0xBVElOIFNNQUxMIExFVFRFUiBHIFdJVEggTUFDUk9OO0xsOzA7TDswMDY3IDAzMDQ7Ozs7Tjs7OzFFMjA7OzFFMjAKKzFFMjI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSCBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA0OCAwMzA3Ozs7O047Ozs7MUUyMzsKKzFFMjM7TEFUSU4gU01BTEwgTEVUVEVSIEggV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNjggMDMwNzs7OztOOzs7MUUyMjs7MUUyMgorMUUyNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBIIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDQ4IDAzMjM7Ozs7Tjs7OzsxRTI1OworMUUyNTtMQVRJTiBTTUFMTCBMRVRURVIgSCBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2OCAwMzIzOzs7O047OzsxRTI0OzsxRTI0CisxRTI2O0xBVElOIENBUElUQUwgTEVUVEVSIEggV0lUSCBESUFFUkVTSVM7THU7MDtMOzAwNDggMDMwODs7OztOOzs7OzFFMjc7CisxRTI3O0xBVElOIFNNQUxMIExFVFRFUiBIIFdJVEggRElBRVJFU0lTO0xsOzA7TDswMDY4IDAzMDg7Ozs7Tjs7OzFFMjY7OzFFMjYKKzFFMjg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSCBXSVRIIENFRElMTEE7THU7MDtMOzAwNDggMDMyNzs7OztOOzs7OzFFMjk7CisxRTI5O0xBVElOIFNNQUxMIExFVFRFUiBIIFdJVEggQ0VESUxMQTtMbDswO0w7MDA2OCAwMzI3Ozs7O047OzsxRTI4OzsxRTI4CisxRTJBO0xBVElOIENBUElUQUwgTEVUVEVSIEggV0lUSCBCUkVWRSBCRUxPVztMdTswO0w7MDA0OCAwMzJFOzs7O047Ozs7MUUyQjsKKzFFMkI7TEFUSU4gU01BTEwgTEVUVEVSIEggV0lUSCBCUkVWRSBCRUxPVztMbDswO0w7MDA2OCAwMzJFOzs7O047OzsxRTJBOzsxRTJBCisxRTJDO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBUSUxERSBCRUxPVztMdTswO0w7MDA0OSAwMzMwOzs7O047Ozs7MUUyRDsKKzFFMkQ7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBUSUxERSBCRUxPVztMbDswO0w7MDA2OSAwMzMwOzs7O047OzsxRTJDOzsxRTJDCisxRTJFO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBESUFFUkVTSVMgQU5EIEFDVVRFO0x1OzA7TDswMENGIDAzMDE7Ozs7Tjs7OzsxRTJGOworMUUyRjtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIERJQUVSRVNJUyBBTkQgQUNVVEU7TGw7MDtMOzAwRUYgMDMwMTs7OztOOzs7MUUyRTs7MUUyRQorMUUzMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBLIFdJVEggQUNVVEU7THU7MDtMOzAwNEIgMDMwMTs7OztOOzs7OzFFMzE7CisxRTMxO0xBVElOIFNNQUxMIExFVFRFUiBLIFdJVEggQUNVVEU7TGw7MDtMOzAwNkIgMDMwMTs7OztOOzs7MUUzMDs7MUUzMAorMUUzMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBLIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDRCIDAzMjM7Ozs7Tjs7OzsxRTMzOworMUUzMztMQVRJTiBTTUFMTCBMRVRURVIgSyBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2QiAwMzIzOzs7O047OzsxRTMyOzsxRTMyCisxRTM0O0xBVElOIENBUElUQUwgTEVUVEVSIEsgV0lUSCBMSU5FIEJFTE9XO0x1OzA7TDswMDRCIDAzMzE7Ozs7Tjs7OzsxRTM1OworMUUzNTtMQVRJTiBTTUFMTCBMRVRURVIgSyBXSVRIIExJTkUgQkVMT1c7TGw7MDtMOzAwNkIgMDMzMTs7OztOOzs7MUUzNDs7MUUzNAorMUUzNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDRDIDAzMjM7Ozs7Tjs7OzsxRTM3OworMUUzNztMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2QyAwMzIzOzs7O047OzsxRTM2OzsxRTM2CisxRTM4O0xBVElOIENBUElUQUwgTEVUVEVSIEwgV0lUSCBET1QgQkVMT1cgQU5EIE1BQ1JPTjtMdTswO0w7MUUzNiAwMzA0Ozs7O047Ozs7MUUzOTsKKzFFMzk7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBET1QgQkVMT1cgQU5EIE1BQ1JPTjtMbDswO0w7MUUzNyAwMzA0Ozs7O047OzsxRTM4OzsxRTM4CisxRTNBO0xBVElOIENBUElUQUwgTEVUVEVSIEwgV0lUSCBMSU5FIEJFTE9XO0x1OzA7TDswMDRDIDAzMzE7Ozs7Tjs7OzsxRTNCOworMUUzQjtMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIExJTkUgQkVMT1c7TGw7MDtMOzAwNkMgMDMzMTs7OztOOzs7MUUzQTs7MUUzQQorMUUzQztMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMdTswO0w7MDA0QyAwMzJEOzs7O047Ozs7MUUzRDsKKzFFM0Q7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBDSVJDVU1GTEVYIEJFTE9XO0xsOzA7TDswMDZDIDAzMkQ7Ozs7Tjs7OzFFM0M7OzFFM0MKKzFFM0U7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTSBXSVRIIEFDVVRFO0x1OzA7TDswMDREIDAzMDE7Ozs7Tjs7OzsxRTNGOworMUUzRjtMQVRJTiBTTUFMTCBMRVRURVIgTSBXSVRIIEFDVVRFO0xsOzA7TDswMDZEIDAzMDE7Ozs7Tjs7OzFFM0U7OzFFM0UKKzFFNDA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTSBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA0RCAwMzA3Ozs7O047Ozs7MUU0MTsKKzFFNDE7TEFUSU4gU01BTEwgTEVUVEVSIE0gV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNkQgMDMwNzs7OztOOzs7MUU0MDs7MUU0MAorMUU0MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBNIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDREIDAzMjM7Ozs7Tjs7OzsxRTQzOworMUU0MztMQVRJTiBTTUFMTCBMRVRURVIgTSBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2RCAwMzIzOzs7O047OzsxRTQyOzsxRTQyCisxRTQ0O0xBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNEUgMDMwNzs7OztOOzs7OzFFNDU7CisxRTQ1O0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDZFIDAzMDc7Ozs7Tjs7OzFFNDQ7OzFFNDQKKzFFNDY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA0RSAwMzIzOzs7O047Ozs7MUU0NzsKKzFFNDc7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNkUgMDMyMzs7OztOOzs7MUU0Njs7MUU0NgorMUU0ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggTElORSBCRUxPVztMdTswO0w7MDA0RSAwMzMxOzs7O047Ozs7MUU0OTsKKzFFNDk7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBMSU5FIEJFTE9XO0xsOzA7TDswMDZFIDAzMzE7Ozs7Tjs7OzFFNDg7OzFFNDgKKzFFNEE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIENJUkNVTUZMRVggQkVMT1c7THU7MDtMOzAwNEUgMDMyRDs7OztOOzs7OzFFNEI7CisxRTRCO0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMbDswO0w7MDA2RSAwMzJEOzs7O047OzsxRTRBOzsxRTRBCisxRTRDO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBUSUxERSBBTkQgQUNVVEU7THU7MDtMOzAwRDUgMDMwMTs7OztOOzs7OzFFNEQ7CisxRTREO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggVElMREUgQU5EIEFDVVRFO0xsOzA7TDswMEY1IDAzMDE7Ozs7Tjs7OzFFNEM7OzFFNEMKKzFFNEU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIFRJTERFIEFORCBESUFFUkVTSVM7THU7MDtMOzAwRDUgMDMwODs7OztOOzs7OzFFNEY7CisxRTRGO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggVElMREUgQU5EIERJQUVSRVNJUztMbDswO0w7MDBGNSAwMzA4Ozs7O047OzsxRTRFOzsxRTRFCisxRTUwO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBNQUNST04gQU5EIEdSQVZFO0x1OzA7TDswMTRDIDAzMDA7Ozs7Tjs7OzsxRTUxOworMUU1MTtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIE1BQ1JPTiBBTkQgR1JBVkU7TGw7MDtMOzAxNEQgMDMwMDs7OztOOzs7MUU1MDs7MUU1MAorMUU1MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggTUFDUk9OIEFORCBBQ1VURTtMdTswO0w7MDE0QyAwMzAxOzs7O047Ozs7MUU1MzsKKzFFNTM7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBNQUNST04gQU5EIEFDVVRFO0xsOzA7TDswMTREIDAzMDE7Ozs7Tjs7OzFFNTI7OzFFNTIKKzFFNTQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUCBXSVRIIEFDVVRFO0x1OzA7TDswMDUwIDAzMDE7Ozs7Tjs7OzsxRTU1OworMUU1NTtMQVRJTiBTTUFMTCBMRVRURVIgUCBXSVRIIEFDVVRFO0xsOzA7TDswMDcwIDAzMDE7Ozs7Tjs7OzFFNTQ7OzFFNTQKKzFFNTY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUCBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA1MCAwMzA3Ozs7O047Ozs7MUU1NzsKKzFFNTc7TEFUSU4gU01BTEwgTEVUVEVSIFAgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNzAgMDMwNzs7OztOOzs7MUU1Njs7MUU1NgorMUU1ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBSIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDUyIDAzMDc7Ozs7Tjs7OzsxRTU5OworMUU1OTtMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA3MiAwMzA3Ozs7O047OzsxRTU4OzsxRTU4CisxRTVBO0xBVElOIENBUElUQUwgTEVUVEVSIFIgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNTIgMDMyMzs7OztOOzs7OzFFNUI7CisxRTVCO0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDcyIDAzMjM7Ozs7Tjs7OzFFNUE7OzFFNUEKKzFFNUM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBXSVRIIERPVCBCRUxPVyBBTkQgTUFDUk9OO0x1OzA7TDsxRTVBIDAzMDQ7Ozs7Tjs7OzsxRTVEOworMUU1RDtMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIERPVCBCRUxPVyBBTkQgTUFDUk9OO0xsOzA7TDsxRTVCIDAzMDQ7Ozs7Tjs7OzFFNUM7OzFFNUMKKzFFNUU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBXSVRIIExJTkUgQkVMT1c7THU7MDtMOzAwNTIgMDMzMTs7OztOOzs7OzFFNUY7CisxRTVGO0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggTElORSBCRUxPVztMbDswO0w7MDA3MiAwMzMxOzs7O047OzsxRTVFOzsxRTVFCisxRTYwO0xBVElOIENBUElUQUwgTEVUVEVSIFMgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNTMgMDMwNzs7OztOOzs7OzFFNjE7CisxRTYxO0xBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDczIDAzMDc7Ozs7Tjs7OzFFNjA7OzFFNjAKKzFFNjI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA1MyAwMzIzOzs7O047Ozs7MUU2MzsKKzFFNjM7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNzMgMDMyMzs7OztOOzs7MUU2Mjs7MUU2MgorMUU2NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIFdJVEggQUNVVEUgQU5EIERPVCBBQk9WRTtMdTswO0w7MDE1QSAwMzA3Ozs7O047Ozs7MUU2NTsKKzFFNjU7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBBQ1VURSBBTkQgRE9UIEFCT1ZFO0xsOzA7TDswMTVCIDAzMDc7Ozs7Tjs7OzFFNjQ7OzFFNjQKKzFFNjY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBXSVRIIENBUk9OIEFORCBET1QgQUJPVkU7THU7MDtMOzAxNjAgMDMwNzs7OztOOzs7OzFFNjc7CisxRTY3O0xBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggQ0FST04gQU5EIERPVCBBQk9WRTtMbDswO0w7MDE2MSAwMzA3Ozs7O047OzsxRTY2OzsxRTY2CisxRTY4O0xBVElOIENBUElUQUwgTEVUVEVSIFMgV0lUSCBET1QgQkVMT1cgQU5EIERPVCBBQk9WRTtMdTswO0w7MUU2MiAwMzA3Ozs7O047Ozs7MUU2OTsKKzFFNjk7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBET1QgQkVMT1cgQU5EIERPVCBBQk9WRTtMbDswO0w7MUU2MyAwMzA3Ozs7O047OzsxRTY4OzsxRTY4CisxRTZBO0xBVElOIENBUElUQUwgTEVUVEVSIFQgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNTQgMDMwNzs7OztOOzs7OzFFNkI7CisxRTZCO0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDc0IDAzMDc7Ozs7Tjs7OzFFNkE7OzFFNkEKKzFFNkM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA1NCAwMzIzOzs7O047Ozs7MUU2RDsKKzFFNkQ7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNzQgMDMyMzs7OztOOzs7MUU2Qzs7MUU2QworMUU2RTtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFdJVEggTElORSBCRUxPVztMdTswO0w7MDA1NCAwMzMxOzs7O047Ozs7MUU2RjsKKzFFNkY7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBMSU5FIEJFTE9XO0xsOzA7TDswMDc0IDAzMzE7Ozs7Tjs7OzFFNkU7OzFFNkUKKzFFNzA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBXSVRIIENJUkNVTUZMRVggQkVMT1c7THU7MDtMOzAwNTQgMDMyRDs7OztOOzs7OzFFNzE7CisxRTcxO0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMbDswO0w7MDA3NCAwMzJEOzs7O047OzsxRTcwOzsxRTcwCisxRTcyO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVMgQkVMT1c7THU7MDtMOzAwNTUgMDMyNDs7OztOOzs7OzFFNzM7CisxRTczO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTIEJFTE9XO0xsOzA7TDswMDc1IDAzMjQ7Ozs7Tjs7OzFFNzI7OzFFNzIKKzFFNzQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIFRJTERFIEJFTE9XO0x1OzA7TDswMDU1IDAzMzA7Ozs7Tjs7OzsxRTc1OworMUU3NTtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIFRJTERFIEJFTE9XO0xsOzA7TDswMDc1IDAzMzA7Ozs7Tjs7OzFFNzQ7OzFFNzQKKzFFNzY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIENJUkNVTUZMRVggQkVMT1c7THU7MDtMOzAwNTUgMDMyRDs7OztOOzs7OzFFNzc7CisxRTc3O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMbDswO0w7MDA3NSAwMzJEOzs7O047OzsxRTc2OzsxRTc2CisxRTc4O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBUSUxERSBBTkQgQUNVVEU7THU7MDtMOzAxNjggMDMwMTs7OztOOzs7OzFFNzk7CisxRTc5O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggVElMREUgQU5EIEFDVVRFO0xsOzA7TDswMTY5IDAzMDE7Ozs7Tjs7OzFFNzg7OzFFNzgKKzFFN0E7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIE1BQ1JPTiBBTkQgRElBRVJFU0lTO0x1OzA7TDswMTZBIDAzMDg7Ozs7Tjs7OzsxRTdCOworMUU3QjtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIE1BQ1JPTiBBTkQgRElBRVJFU0lTO0xsOzA7TDswMTZCIDAzMDg7Ozs7Tjs7OzFFN0E7OzFFN0EKKzFFN0M7TEFUSU4gQ0FQSVRBTCBMRVRURVIgViBXSVRIIFRJTERFO0x1OzA7TDswMDU2IDAzMDM7Ozs7Tjs7OzsxRTdEOworMUU3RDtMQVRJTiBTTUFMTCBMRVRURVIgViBXSVRIIFRJTERFO0xsOzA7TDswMDc2IDAzMDM7Ozs7Tjs7OzFFN0M7OzFFN0MKKzFFN0U7TEFUSU4gQ0FQSVRBTCBMRVRURVIgViBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA1NiAwMzIzOzs7O047Ozs7MUU3RjsKKzFFN0Y7TEFUSU4gU01BTEwgTEVUVEVSIFYgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNzYgMDMyMzs7OztOOzs7MUU3RTs7MUU3RQorMUU4MDtMQVRJTiBDQVBJVEFMIExFVFRFUiBXIFdJVEggR1JBVkU7THU7MDtMOzAwNTcgMDMwMDs7OztOOzs7OzFFODE7CisxRTgxO0xBVElOIFNNQUxMIExFVFRFUiBXIFdJVEggR1JBVkU7TGw7MDtMOzAwNzcgMDMwMDs7OztOOzs7MUU4MDs7MUU4MAorMUU4MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBXIFdJVEggQUNVVEU7THU7MDtMOzAwNTcgMDMwMTs7OztOOzs7OzFFODM7CisxRTgzO0xBVElOIFNNQUxMIExFVFRFUiBXIFdJVEggQUNVVEU7TGw7MDtMOzAwNzcgMDMwMTs7OztOOzs7MUU4Mjs7MUU4MgorMUU4NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBXIFdJVEggRElBRVJFU0lTO0x1OzA7TDswMDU3IDAzMDg7Ozs7Tjs7OzsxRTg1OworMUU4NTtMQVRJTiBTTUFMTCBMRVRURVIgVyBXSVRIIERJQUVSRVNJUztMbDswO0w7MDA3NyAwMzA4Ozs7O047OzsxRTg0OzsxRTg0CisxRTg2O0xBVElOIENBUElUQUwgTEVUVEVSIFcgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNTcgMDMwNzs7OztOOzs7OzFFODc7CisxRTg3O0xBVElOIFNNQUxMIExFVFRFUiBXIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDc3IDAzMDc7Ozs7Tjs7OzFFODY7OzFFODYKKzFFODg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVyBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA1NyAwMzIzOzs7O047Ozs7MUU4OTsKKzFFODk7TEFUSU4gU01BTEwgTEVUVEVSIFcgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNzcgMDMyMzs7OztOOzs7MUU4ODs7MUU4OAorMUU4QTtMQVRJTiBDQVBJVEFMIExFVFRFUiBYIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDU4IDAzMDc7Ozs7Tjs7OzsxRThCOworMUU4QjtMQVRJTiBTTUFMTCBMRVRURVIgWCBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA3OCAwMzA3Ozs7O047OzsxRThBOzsxRThBCisxRThDO0xBVElOIENBUElUQUwgTEVUVEVSIFggV0lUSCBESUFFUkVTSVM7THU7MDtMOzAwNTggMDMwODs7OztOOzs7OzFFOEQ7CisxRThEO0xBVElOIFNNQUxMIExFVFRFUiBYIFdJVEggRElBRVJFU0lTO0xsOzA7TDswMDc4IDAzMDg7Ozs7Tjs7OzFFOEM7OzFFOEMKKzFFOEU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA1OSAwMzA3Ozs7O047Ozs7MUU4RjsKKzFFOEY7TEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNzkgMDMwNzs7OztOOzs7MUU4RTs7MUU4RQorMUU5MDtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA1QSAwMzAyOzs7O047Ozs7MUU5MTsKKzFFOTE7TEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDdBIDAzMDI7Ozs7Tjs7OzFFOTA7OzFFOTAKKzFFOTI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA1QSAwMzIzOzs7O047Ozs7MUU5MzsKKzFFOTM7TEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwN0EgMDMyMzs7OztOOzs7MUU5Mjs7MUU5MgorMUU5NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIFdJVEggTElORSBCRUxPVztMdTswO0w7MDA1QSAwMzMxOzs7O047Ozs7MUU5NTsKKzFFOTU7TEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBMSU5FIEJFTE9XO0xsOzA7TDswMDdBIDAzMzE7Ozs7Tjs7OzFFOTQ7OzFFOTQKKzFFOTY7TEFUSU4gU01BTEwgTEVUVEVSIEggV0lUSCBMSU5FIEJFTE9XO0xsOzA7TDswMDY4IDAzMzE7Ozs7Tjs7Ozs7CisxRTk3O0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggRElBRVJFU0lTO0xsOzA7TDswMDc0IDAzMDg7Ozs7Tjs7Ozs7CisxRTk4O0xBVElOIFNNQUxMIExFVFRFUiBXIFdJVEggUklORyBBQk9WRTtMbDswO0w7MDA3NyAwMzBBOzs7O047Ozs7OworMUU5OTtMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIFJJTkcgQUJPVkU7TGw7MDtMOzAwNzkgMDMwQTs7OztOOzs7OzsKKzFFOUE7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBSSUdIVCBIQUxGIFJJTkc7TGw7MDtMOzxjb21wYXQ+IDAwNjEgMDJCRTs7OztOOzs7OzsKKzFFOUI7TEFUSU4gU01BTEwgTEVUVEVSIExPTkcgUyBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDE3RiAwMzA3Ozs7O047OzsxRTYwOzsxRTYwCisxRUEwO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNDEgMDMyMzs7OztOOzs7OzFFQTE7CisxRUExO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDYxIDAzMjM7Ozs7Tjs7OzFFQTA7OzFFQTAKKzFFQTI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEhPT0sgQUJPVkU7THU7MDtMOzAwNDEgMDMwOTs7OztOOzs7OzFFQTM7CisxRUEzO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggSE9PSyBBQk9WRTtMbDswO0w7MDA2MSAwMzA5Ozs7O047OzsxRUEyOzsxRUEyCisxRUE0O0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYIEFORCBBQ1VURTtMdTswO0w7MDBDMiAwMzAxOzs7O047Ozs7MUVBNTsKKzFFQTU7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYIEFORCBBQ1VURTtMbDswO0w7MDBFMiAwMzAxOzs7O047OzsxRUE0OzsxRUE0CisxRUE2O0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYIEFORCBHUkFWRTtMdTswO0w7MDBDMiAwMzAwOzs7O047Ozs7MUVBNzsKKzFFQTc7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYIEFORCBHUkFWRTtMbDswO0w7MDBFMiAwMzAwOzs7O047OzsxRUE2OzsxRUE2CisxRUE4O0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYIEFORCBIT09LIEFCT1ZFO0x1OzA7TDswMEMyIDAzMDk7Ozs7Tjs7OzsxRUE5OworMUVBOTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVggQU5EIEhPT0sgQUJPVkU7TGw7MDtMOzAwRTIgMDMwOTs7OztOOzs7MUVBODs7MUVBOAorMUVBQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWCBBTkQgVElMREU7THU7MDtMOzAwQzIgMDMwMzs7OztOOzs7OzFFQUI7CisxRUFCO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWCBBTkQgVElMREU7TGw7MDtMOzAwRTIgMDMwMzs7OztOOzs7MUVBQTs7MUVBQQorMUVBQztMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWCBBTkQgRE9UIEJFTE9XO0x1OzA7TDswMEMyIDAzMjM7Ozs7Tjs7OzsxRUFEOworMUVBRDtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVggQU5EIERPVCBCRUxPVztMbDswO0w7MDBFMiAwMzIzOzs7O047OzsxRUFDOzsxRUFDCisxRUFFO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBCUkVWRSBBTkQgQUNVVEU7THU7MDtMOzAxMDIgMDMwMTs7OztOOzs7OzFFQUY7CisxRUFGO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQlJFVkUgQU5EIEFDVVRFO0xsOzA7TDswMTAzIDAzMDE7Ozs7Tjs7OzFFQUU7OzFFQUUKKzFFQjA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEJSRVZFIEFORCBHUkFWRTtMdTswO0w7MDEwMiAwMzAwOzs7O047Ozs7MUVCMTsKKzFFQjE7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBCUkVWRSBBTkQgR1JBVkU7TGw7MDtMOzAxMDMgMDMwMDs7OztOOzs7MUVCMDs7MUVCMAorMUVCMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQlJFVkUgQU5EIEhPT0sgQUJPVkU7THU7MDtMOzAxMDIgMDMwOTs7OztOOzs7OzFFQjM7CisxRUIzO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQlJFVkUgQU5EIEhPT0sgQUJPVkU7TGw7MDtMOzAxMDMgMDMwOTs7OztOOzs7MUVCMjs7MUVCMgorMUVCNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQlJFVkUgQU5EIFRJTERFO0x1OzA7TDswMTAyIDAzMDM7Ozs7Tjs7OzsxRUI1OworMUVCNTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIEJSRVZFIEFORCBUSUxERTtMbDswO0w7MDEwMyAwMzAzOzs7O047OzsxRUI0OzsxRUI0CisxRUI2O0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBCUkVWRSBBTkQgRE9UIEJFTE9XO0x1OzA7TDswMTAyIDAzMjM7Ozs7Tjs7OzsxRUI3OworMUVCNztMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIEJSRVZFIEFORCBET1QgQkVMT1c7TGw7MDtMOzAxMDMgMDMyMzs7OztOOzs7MUVCNjs7MUVCNgorMUVCODtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDQ1IDAzMjM7Ozs7Tjs7OzsxRUI5OworMUVCOTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2NSAwMzIzOzs7O047OzsxRUI4OzsxRUI4CisxRUJBO0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBIT09LIEFCT1ZFO0x1OzA7TDswMDQ1IDAzMDk7Ozs7Tjs7OzsxRUJCOworMUVCQjtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIEhPT0sgQUJPVkU7TGw7MDtMOzAwNjUgMDMwOTs7OztOOzs7MUVCQTs7MUVCQQorMUVCQztMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggVElMREU7THU7MDtMOzAwNDUgMDMwMzs7OztOOzs7OzFFQkQ7CisxRUJEO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggVElMREU7TGw7MDtMOzAwNjUgMDMwMzs7OztOOzs7MUVCQzs7MUVCQworMUVCRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBBTkQgQUNVVEU7THU7MDtMOzAwQ0EgMDMwMTs7OztOOzs7OzFFQkY7CisxRUJGO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBBTkQgQUNVVEU7TGw7MDtMOzAwRUEgMDMwMTs7OztOOzs7MUVCRTs7MUVCRQorMUVDMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBBTkQgR1JBVkU7THU7MDtMOzAwQ0EgMDMwMDs7OztOOzs7OzFFQzE7CisxRUMxO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBBTkQgR1JBVkU7TGw7MDtMOzAwRUEgMDMwMDs7OztOOzs7MUVDMDs7MUVDMAorMUVDMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBBTkQgSE9PSyBBQk9WRTtMdTswO0w7MDBDQSAwMzA5Ozs7O047Ozs7MUVDMzsKKzFFQzM7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYIEFORCBIT09LIEFCT1ZFO0xsOzA7TDswMEVBIDAzMDk7Ozs7Tjs7OzFFQzI7OzFFQzIKKzFFQzQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVggQU5EIFRJTERFO0x1OzA7TDswMENBIDAzMDM7Ozs7Tjs7OzsxRUM1OworMUVDNTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVggQU5EIFRJTERFO0xsOzA7TDswMEVBIDAzMDM7Ozs7Tjs7OzFFQzQ7OzFFQzQKKzFFQzY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVggQU5EIERPVCBCRUxPVztMdTswO0w7MDBDQSAwMzIzOzs7O047Ozs7MUVDNzsKKzFFQzc7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYIEFORCBET1QgQkVMT1c7TGw7MDtMOzAwRUEgMDMyMzs7OztOOzs7MUVDNjs7MUVDNgorMUVDODtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggSE9PSyBBQk9WRTtMdTswO0w7MDA0OSAwMzA5Ozs7O047Ozs7MUVDOTsKKzFFQzk7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBIT09LIEFCT1ZFO0xsOzA7TDswMDY5IDAzMDk7Ozs7Tjs7OzFFQzg7OzFFQzgKKzFFQ0E7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA0OSAwMzIzOzs7O047Ozs7MUVDQjsKKzFFQ0I7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNjkgMDMyMzs7OztOOzs7MUVDQTs7MUVDQQorMUVDQztMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDRGIDAzMjM7Ozs7Tjs7OzsxRUNEOworMUVDRDtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2RiAwMzIzOzs7O047OzsxRUNDOzsxRUNDCisxRUNFO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBIT09LIEFCT1ZFO0x1OzA7TDswMDRGIDAzMDk7Ozs7Tjs7OzsxRUNGOworMUVDRjtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIEhPT0sgQUJPVkU7TGw7MDtMOzAwNkYgMDMwOTs7OztOOzs7MUVDRTs7MUVDRQorMUVEMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWCBBTkQgQUNVVEU7THU7MDtMOzAwRDQgMDMwMTs7OztOOzs7OzFFRDE7CisxRUQxO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWCBBTkQgQUNVVEU7TGw7MDtMOzAwRjQgMDMwMTs7OztOOzs7MUVEMDs7MUVEMAorMUVEMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWCBBTkQgR1JBVkU7THU7MDtMOzAwRDQgMDMwMDs7OztOOzs7OzFFRDM7CisxRUQzO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWCBBTkQgR1JBVkU7TGw7MDtMOzAwRjQgMDMwMDs7OztOOzs7MUVEMjs7MUVEMgorMUVENDtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWCBBTkQgSE9PSyBBQk9WRTtMdTswO0w7MDBENCAwMzA5Ozs7O047Ozs7MUVENTsKKzFFRDU7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYIEFORCBIT09LIEFCT1ZFO0xsOzA7TDswMEY0IDAzMDk7Ozs7Tjs7OzFFRDQ7OzFFRDQKKzFFRDY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVggQU5EIFRJTERFO0x1OzA7TDswMEQ0IDAzMDM7Ozs7Tjs7OzsxRUQ3OworMUVENztMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVggQU5EIFRJTERFO0xsOzA7TDswMEY0IDAzMDM7Ozs7Tjs7OzFFRDY7OzFFRDYKKzFFRDg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVggQU5EIERPVCBCRUxPVztMdTswO0w7MDBENCAwMzIzOzs7O047Ozs7MUVEOTsKKzFFRDk7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYIEFORCBET1QgQkVMT1c7TGw7MDtMOzAwRjQgMDMyMzs7OztOOzs7MUVEODs7MUVEOAorMUVEQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggSE9STiBBTkQgQUNVVEU7THU7MDtMOzAxQTAgMDMwMTs7OztOOzs7OzFFREI7CisxRURCO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggSE9STiBBTkQgQUNVVEU7TGw7MDtMOzAxQTEgMDMwMTs7OztOOzs7MUVEQTs7MUVEQQorMUVEQztMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggSE9STiBBTkQgR1JBVkU7THU7MDtMOzAxQTAgMDMwMDs7OztOOzs7OzFFREQ7CisxRUREO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggSE9STiBBTkQgR1JBVkU7TGw7MDtMOzAxQTEgMDMwMDs7OztOOzs7MUVEQzs7MUVEQworMUVERTtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggSE9STiBBTkQgSE9PSyBBQk9WRTtMdTswO0w7MDFBMCAwMzA5Ozs7O047Ozs7MUVERjsKKzFFREY7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBIT1JOIEFORCBIT09LIEFCT1ZFO0xsOzA7TDswMUExIDAzMDk7Ozs7Tjs7OzFFREU7OzFFREUKKzFFRTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIEhPUk4gQU5EIFRJTERFO0x1OzA7TDswMUEwIDAzMDM7Ozs7Tjs7OzsxRUUxOworMUVFMTtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIEhPUk4gQU5EIFRJTERFO0xsOzA7TDswMUExIDAzMDM7Ozs7Tjs7OzFFRTA7OzFFRTAKKzFFRTI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIEhPUk4gQU5EIERPVCBCRUxPVztMdTswO0w7MDFBMCAwMzIzOzs7O047Ozs7MUVFMzsKKzFFRTM7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBIT1JOIEFORCBET1QgQkVMT1c7TGw7MDtMOzAxQTEgMDMyMzs7OztOOzs7MUVFMjs7MUVFMgorMUVFNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDU1IDAzMjM7Ozs7Tjs7OzsxRUU1OworMUVFNTtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA3NSAwMzIzOzs7O047OzsxRUU0OzsxRUU0CisxRUU2O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBIT09LIEFCT1ZFO0x1OzA7TDswMDU1IDAzMDk7Ozs7Tjs7OzsxRUU3OworMUVFNztMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEhPT0sgQUJPVkU7TGw7MDtMOzAwNzUgMDMwOTs7OztOOzs7MUVFNjs7MUVFNgorMUVFODtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggSE9STiBBTkQgQUNVVEU7THU7MDtMOzAxQUYgMDMwMTs7OztOOzs7OzFFRTk7CisxRUU5O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggSE9STiBBTkQgQUNVVEU7TGw7MDtMOzAxQjAgMDMwMTs7OztOOzs7MUVFODs7MUVFOAorMUVFQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggSE9STiBBTkQgR1JBVkU7THU7MDtMOzAxQUYgMDMwMDs7OztOOzs7OzFFRUI7CisxRUVCO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggSE9STiBBTkQgR1JBVkU7TGw7MDtMOzAxQjAgMDMwMDs7OztOOzs7MUVFQTs7MUVFQQorMUVFQztMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggSE9STiBBTkQgSE9PSyBBQk9WRTtMdTswO0w7MDFBRiAwMzA5Ozs7O047Ozs7MUVFRDsKKzFFRUQ7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBIT1JOIEFORCBIT09LIEFCT1ZFO0xsOzA7TDswMUIwIDAzMDk7Ozs7Tjs7OzFFRUM7OzFFRUMKKzFFRUU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEhPUk4gQU5EIFRJTERFO0x1OzA7TDswMUFGIDAzMDM7Ozs7Tjs7OzsxRUVGOworMUVFRjtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEhPUk4gQU5EIFRJTERFO0xsOzA7TDswMUIwIDAzMDM7Ozs7Tjs7OzFFRUU7OzFFRUUKKzFFRjA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEhPUk4gQU5EIERPVCBCRUxPVztMdTswO0w7MDFBRiAwMzIzOzs7O047Ozs7MUVGMTsKKzFFRjE7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBIT1JOIEFORCBET1QgQkVMT1c7TGw7MDtMOzAxQjAgMDMyMzs7OztOOzs7MUVGMDs7MUVGMAorMUVGMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggR1JBVkU7THU7MDtMOzAwNTkgMDMwMDs7OztOOzs7OzFFRjM7CisxRUYzO0xBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggR1JBVkU7TGw7MDtMOzAwNzkgMDMwMDs7OztOOzs7MUVGMjs7MUVGMgorMUVGNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDU5IDAzMjM7Ozs7Tjs7OzsxRUY1OworMUVGNTtMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA3OSAwMzIzOzs7O047OzsxRUY0OzsxRUY0CisxRUY2O0xBVElOIENBUElUQUwgTEVUVEVSIFkgV0lUSCBIT09LIEFCT1ZFO0x1OzA7TDswMDU5IDAzMDk7Ozs7Tjs7OzsxRUY3OworMUVGNztMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIEhPT0sgQUJPVkU7TGw7MDtMOzAwNzkgMDMwOTs7OztOOzs7MUVGNjs7MUVGNgorMUVGODtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggVElMREU7THU7MDtMOzAwNTkgMDMwMzs7OztOOzs7OzFFRjk7CisxRUY5O0xBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggVElMREU7TGw7MDtMOzAwNzkgMDMwMzs7OztOOzs7MUVGODs7MUVGOAorMUYwMDtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSTtMbDswO0w7MDNCMSAwMzEzOzs7O047OzsxRjA4OzsxRjA4CisxRjAxO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBO0xsOzA7TDswM0IxIDAzMTQ7Ozs7Tjs7OzFGMDk7OzFGMDkKKzFGMDI7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFZBUklBO0xsOzA7TDsxRjAwIDAzMDA7Ozs7Tjs7OzFGMEE7OzFGMEEKKzFGMDM7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFZBUklBO0xsOzA7TDsxRjAxIDAzMDA7Ozs7Tjs7OzFGMEI7OzFGMEIKKzFGMDQ7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIE9YSUE7TGw7MDtMOzFGMDAgMDMwMTs7OztOOzs7MUYwQzs7MUYwQworMUYwNTtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgT1hJQTtMbDswO0w7MUYwMSAwMzAxOzs7O047OzsxRjBEOzsxRjBECisxRjA2O0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MUYwMCAwMzQyOzs7O047OzsxRjBFOzsxRjBFCisxRjA3O0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MUYwMSAwMzQyOzs7O047OzsxRjBGOzsxRjBGCisxRjA4O0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEk7THU7MDtMOzAzOTEgMDMxMzs7OztOOzs7OzFGMDA7CisxRjA5O0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUE7THU7MDtMOzAzOTEgMDMxNDs7OztOOzs7OzFGMDE7CisxRjBBO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFZBUklBO0x1OzA7TDsxRjA4IDAzMDA7Ozs7Tjs7OzsxRjAyOworMUYwQjtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBWQVJJQTtMdTswO0w7MUYwOSAwMzAwOzs7O047Ozs7MUYwMzsKKzFGMEM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgT1hJQTtMdTswO0w7MUYwOCAwMzAxOzs7O047Ozs7MUYwNDsKKzFGMEQ7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgT1hJQTtMdTswO0w7MUYwOSAwMzAxOzs7O047Ozs7MUYwNTsKKzFGMEU7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkk7THU7MDtMOzFGMDggMDM0Mjs7OztOOzs7OzFGMDY7CisxRjBGO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JO0x1OzA7TDsxRjA5IDAzNDI7Ozs7Tjs7OzsxRjA3OworMUYxMDtHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTiBXSVRIIFBTSUxJO0xsOzA7TDswM0I1IDAzMTM7Ozs7Tjs7OzFGMTg7OzFGMTgKKzFGMTE7R1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT04gV0lUSCBEQVNJQTtMbDswO0w7MDNCNSAwMzE0Ozs7O047OzsxRjE5OzsxRjE5CisxRjEyO0dSRUVLIFNNQUxMIExFVFRFUiBFUFNJTE9OIFdJVEggUFNJTEkgQU5EIFZBUklBO0xsOzA7TDsxRjEwIDAzMDA7Ozs7Tjs7OzFGMUE7OzFGMUEKKzFGMTM7R1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT04gV0lUSCBEQVNJQSBBTkQgVkFSSUE7TGw7MDtMOzFGMTEgMDMwMDs7OztOOzs7MUYxQjs7MUYxQgorMUYxNDtHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTiBXSVRIIFBTSUxJIEFORCBPWElBO0xsOzA7TDsxRjEwIDAzMDE7Ozs7Tjs7OzFGMUM7OzFGMUMKKzFGMTU7R1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT04gV0lUSCBEQVNJQSBBTkQgT1hJQTtMbDswO0w7MUYxMSAwMzAxOzs7O047OzsxRjFEOzsxRjFECisxRjE4O0dSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gV0lUSCBQU0lMSTtMdTswO0w7MDM5NSAwMzEzOzs7O047Ozs7MUYxMDsKKzFGMTk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVBTSUxPTiBXSVRIIERBU0lBO0x1OzA7TDswMzk1IDAzMTQ7Ozs7Tjs7OzsxRjExOworMUYxQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OIFdJVEggUFNJTEkgQU5EIFZBUklBO0x1OzA7TDsxRjE4IDAzMDA7Ozs7Tjs7OzsxRjEyOworMUYxQjtHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OIFdJVEggREFTSUEgQU5EIFZBUklBO0x1OzA7TDsxRjE5IDAzMDA7Ozs7Tjs7OzsxRjEzOworMUYxQztHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OIFdJVEggUFNJTEkgQU5EIE9YSUE7THU7MDtMOzFGMTggMDMwMTs7OztOOzs7OzFGMTQ7CisxRjFEO0dSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gV0lUSCBEQVNJQSBBTkQgT1hJQTtMdTswO0w7MUYxOSAwMzAxOzs7O047Ozs7MUYxNTsKKzFGMjA7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJO0xsOzA7TDswM0I3IDAzMTM7Ozs7Tjs7OzFGMjg7OzFGMjgKKzFGMjE7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBO0xsOzA7TDswM0I3IDAzMTQ7Ozs7Tjs7OzFGMjk7OzFGMjkKKzFGMjI7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBWQVJJQTtMbDswO0w7MUYyMCAwMzAwOzs7O047OzsxRjJBOzsxRjJBCisxRjIzO0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgVkFSSUE7TGw7MDtMOzFGMjEgMDMwMDs7OztOOzs7MUYyQjs7MUYyQgorMUYyNDtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIE9YSUE7TGw7MDtMOzFGMjAgMDMwMTs7OztOOzs7MUYyQzs7MUYyQworMUYyNTtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIE9YSUE7TGw7MDtMOzFGMjEgMDMwMTs7OztOOzs7MUYyRDs7MUYyRAorMUYyNjtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JO0xsOzA7TDsxRjIwIDAzNDI7Ozs7Tjs7OzFGMkU7OzFGMkUKKzFGMjc7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MUYyMSAwMzQyOzs7O047OzsxRjJGOzsxRjJGCisxRjI4O0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJO0x1OzA7TDswMzk3IDAzMTM7Ozs7Tjs7OzsxRjIwOworMUYyOTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQTtMdTswO0w7MDM5NyAwMzE0Ozs7O047Ozs7MUYyMTsKKzFGMkE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFZBUklBO0x1OzA7TDsxRjI4IDAzMDA7Ozs7Tjs7OzsxRjIyOworMUYyQjtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgVkFSSUE7THU7MDtMOzFGMjkgMDMwMDs7OztOOzs7OzFGMjM7CisxRjJDO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBPWElBO0x1OzA7TDsxRjI4IDAzMDE7Ozs7Tjs7OzsxRjI0OworMUYyRDtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgT1hJQTtMdTswO0w7MUYyOSAwMzAxOzs7O047Ozs7MUYyNTsKKzFGMkU7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JO0x1OzA7TDsxRjI4IDAzNDI7Ozs7Tjs7OzsxRjI2OworMUYyRjtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkk7THU7MDtMOzFGMjkgMDM0Mjs7OztOOzs7OzFGMjc7CisxRjMwO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggUFNJTEk7TGw7MDtMOzAzQjkgMDMxMzs7OztOOzs7MUYzODs7MUYzOAorMUYzMTtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERBU0lBO0xsOzA7TDswM0I5IDAzMTQ7Ozs7Tjs7OzFGMzk7OzFGMzkKKzFGMzI7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBQU0lMSSBBTkQgVkFSSUE7TGw7MDtMOzFGMzAgMDMwMDs7OztOOzs7MUYzQTs7MUYzQQorMUYzMztHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERBU0lBIEFORCBWQVJJQTtMbDswO0w7MUYzMSAwMzAwOzs7O047OzsxRjNCOzsxRjNCCisxRjM0O0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggUFNJTEkgQU5EIE9YSUE7TGw7MDtMOzFGMzAgMDMwMTs7OztOOzs7MUYzQzs7MUYzQworMUYzNTtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERBU0lBIEFORCBPWElBO0xsOzA7TDsxRjMxIDAzMDE7Ozs7Tjs7OzFGM0Q7OzFGM0QKKzFGMzY7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkk7TGw7MDtMOzFGMzAgMDM0Mjs7OztOOzs7MUYzRTs7MUYzRQorMUYzNztHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MUYzMSAwMzQyOzs7O047OzsxRjNGOzsxRjNGCisxRjM4O0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBQU0lMSTtMdTswO0w7MDM5OSAwMzEzOzs7O047Ozs7MUYzMDsKKzFGMzk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIERBU0lBO0x1OzA7TDswMzk5IDAzMTQ7Ozs7Tjs7OzsxRjMxOworMUYzQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggUFNJTEkgQU5EIFZBUklBO0x1OzA7TDsxRjM4IDAzMDA7Ozs7Tjs7OzsxRjMyOworMUYzQjtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggREFTSUEgQU5EIFZBUklBO0x1OzA7TDsxRjM5IDAzMDA7Ozs7Tjs7OzsxRjMzOworMUYzQztHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggUFNJTEkgQU5EIE9YSUE7THU7MDtMOzFGMzggMDMwMTs7OztOOzs7OzFGMzQ7CisxRjNEO0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBEQVNJQSBBTkQgT1hJQTtMdTswO0w7MUYzOSAwMzAxOzs7O047Ozs7MUYzNTsKKzFGM0U7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSTtMdTswO0w7MUYzOCAwMzQyOzs7O047Ozs7MUYzNjsKKzFGM0Y7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSTtMdTswO0w7MUYzOSAwMzQyOzs7O047Ozs7MUYzNzsKKzFGNDA7R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gV0lUSCBQU0lMSTtMbDswO0w7MDNCRiAwMzEzOzs7O047OzsxRjQ4OzsxRjQ4CisxRjQxO0dSRUVLIFNNQUxMIExFVFRFUiBPTUlDUk9OIFdJVEggREFTSUE7TGw7MDtMOzAzQkYgMDMxNDs7OztOOzs7MUY0OTs7MUY0OQorMUY0MjtHUkVFSyBTTUFMTCBMRVRURVIgT01JQ1JPTiBXSVRIIFBTSUxJIEFORCBWQVJJQTtMbDswO0w7MUY0MCAwMzAwOzs7O047OzsxRjRBOzsxRjRBCisxRjQzO0dSRUVLIFNNQUxMIExFVFRFUiBPTUlDUk9OIFdJVEggREFTSUEgQU5EIFZBUklBO0xsOzA7TDsxRjQxIDAzMDA7Ozs7Tjs7OzFGNEI7OzFGNEIKKzFGNDQ7R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gV0lUSCBQU0lMSSBBTkQgT1hJQTtMbDswO0w7MUY0MCAwMzAxOzs7O047OzsxRjRDOzsxRjRDCisxRjQ1O0dSRUVLIFNNQUxMIExFVFRFUiBPTUlDUk9OIFdJVEggREFTSUEgQU5EIE9YSUE7TGw7MDtMOzFGNDEgMDMwMTs7OztOOzs7MUY0RDs7MUY0RAorMUY0ODtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OIFdJVEggUFNJTEk7THU7MDtMOzAzOUYgMDMxMzs7OztOOzs7OzFGNDA7CisxRjQ5O0dSRUVLIENBUElUQUwgTEVUVEVSIE9NSUNST04gV0lUSCBEQVNJQTtMdTswO0w7MDM5RiAwMzE0Ozs7O047Ozs7MUY0MTsKKzFGNEE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTiBXSVRIIFBTSUxJIEFORCBWQVJJQTtMdTswO0w7MUY0OCAwMzAwOzs7O047Ozs7MUY0MjsKKzFGNEI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTiBXSVRIIERBU0lBIEFORCBWQVJJQTtMdTswO0w7MUY0OSAwMzAwOzs7O047Ozs7MUY0MzsKKzFGNEM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTiBXSVRIIFBTSUxJIEFORCBPWElBO0x1OzA7TDsxRjQ4IDAzMDE7Ozs7Tjs7OzsxRjQ0OworMUY0RDtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OIFdJVEggREFTSUEgQU5EIE9YSUE7THU7MDtMOzFGNDkgMDMwMTs7OztOOzs7OzFGNDU7CisxRjUwO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggUFNJTEk7TGw7MDtMOzAzQzUgMDMxMzs7OztOOzs7OzsKKzFGNTE7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBEQVNJQTtMbDswO0w7MDNDNSAwMzE0Ozs7O047OzsxRjU5OzsxRjU5CisxRjUyO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggUFNJTEkgQU5EIFZBUklBO0xsOzA7TDsxRjUwIDAzMDA7Ozs7Tjs7Ozs7CisxRjUzO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggREFTSUEgQU5EIFZBUklBO0xsOzA7TDsxRjUxIDAzMDA7Ozs7Tjs7OzFGNUI7OzFGNUIKKzFGNTQ7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBQU0lMSSBBTkQgT1hJQTtMbDswO0w7MUY1MCAwMzAxOzs7O047Ozs7OworMUY1NTtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIERBU0lBIEFORCBPWElBO0xsOzA7TDsxRjUxIDAzMDE7Ozs7Tjs7OzFGNUQ7OzFGNUQKKzFGNTY7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkk7TGw7MDtMOzFGNTAgMDM0Mjs7OztOOzs7OzsKKzFGNTc7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkk7TGw7MDtMOzFGNTEgMDM0Mjs7OztOOzs7MUY1Rjs7MUY1RgorMUY1OTtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIFdJVEggREFTSUE7THU7MDtMOzAzQTUgMDMxNDs7OztOOzs7OzFGNTE7CisxRjVCO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gV0lUSCBEQVNJQSBBTkQgVkFSSUE7THU7MDtMOzFGNTkgMDMwMDs7OztOOzs7OzFGNTM7CisxRjVEO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gV0lUSCBEQVNJQSBBTkQgT1hJQTtMdTswO0w7MUY1OSAwMzAxOzs7O047Ozs7MUY1NTsKKzFGNUY7R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSTtMdTswO0w7MUY1OSAwMzQyOzs7O047Ozs7MUY1NzsKKzFGNjA7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEk7TGw7MDtMOzAzQzkgMDMxMzs7OztOOzs7MUY2ODs7MUY2OAorMUY2MTtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQTtMbDswO0w7MDNDOSAwMzE0Ozs7O047OzsxRjY5OzsxRjY5CisxRjYyO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBWQVJJQTtMbDswO0w7MUY2MCAwMzAwOzs7O047OzsxRjZBOzsxRjZBCisxRjYzO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBWQVJJQTtMbDswO0w7MUY2MSAwMzAwOzs7O047OzsxRjZCOzsxRjZCCisxRjY0O0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBPWElBO0xsOzA7TDsxRjYwIDAzMDE7Ozs7Tjs7OzFGNkM7OzFGNkMKKzFGNjU7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIE9YSUE7TGw7MDtMOzFGNjEgMDMwMTs7OztOOzs7MUY2RDs7MUY2RAorMUY2NjtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkk7TGw7MDtMOzFGNjAgMDM0Mjs7OztOOzs7MUY2RTs7MUY2RQorMUY2NztHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkk7TGw7MDtMOzFGNjEgMDM0Mjs7OztOOzs7MUY2Rjs7MUY2RgorMUY2ODtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJO0x1OzA7TDswM0E5IDAzMTM7Ozs7Tjs7OzsxRjYwOworMUY2OTtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBO0x1OzA7TDswM0E5IDAzMTQ7Ozs7Tjs7OzsxRjYxOworMUY2QTtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBWQVJJQTtMdTswO0w7MUY2OCAwMzAwOzs7O047Ozs7MUY2MjsKKzFGNkI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgVkFSSUE7THU7MDtMOzFGNjkgMDMwMDs7OztOOzs7OzFGNjM7CisxRjZDO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIE9YSUE7THU7MDtMOzFGNjggMDMwMTs7OztOOzs7OzFGNjQ7CisxRjZEO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIE9YSUE7THU7MDtMOzFGNjkgMDMwMTs7OztOOzs7OzFGNjU7CisxRjZFO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JO0x1OzA7TDsxRjY4IDAzNDI7Ozs7Tjs7OzsxRjY2OworMUY2RjtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSTtMdTswO0w7MUY2OSAwMzQyOzs7O047Ozs7MUY2NzsKKzFGNzA7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggVkFSSUE7TGw7MDtMOzAzQjEgMDMwMDs7OztOOzs7MUZCQTs7MUZCQQorMUY3MTtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBPWElBO0xsOzA7TDswM0FDOzs7O047OzsxRkJCOzsxRkJCCisxRjcyO0dSRUVLIFNNQUxMIExFVFRFUiBFUFNJTE9OIFdJVEggVkFSSUE7TGw7MDtMOzAzQjUgMDMwMDs7OztOOzs7MUZDODs7MUZDOAorMUY3MztHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTiBXSVRIIE9YSUE7TGw7MDtMOzAzQUQ7Ozs7Tjs7OzFGQzk7OzFGQzkKKzFGNzQ7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFZBUklBO0xsOzA7TDswM0I3IDAzMDA7Ozs7Tjs7OzFGQ0E7OzFGQ0EKKzFGNzU7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIE9YSUE7TGw7MDtMOzAzQUU7Ozs7Tjs7OzFGQ0I7OzFGQ0IKKzFGNzY7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBWQVJJQTtMbDswO0w7MDNCOSAwMzAwOzs7O047OzsxRkRBOzsxRkRBCisxRjc3O0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggT1hJQTtMbDswO0w7MDNBRjs7OztOOzs7MUZEQjs7MUZEQgorMUY3ODtHUkVFSyBTTUFMTCBMRVRURVIgT01JQ1JPTiBXSVRIIFZBUklBO0xsOzA7TDswM0JGIDAzMDA7Ozs7Tjs7OzFGRjg7OzFGRjgKKzFGNzk7R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gV0lUSCBPWElBO0xsOzA7TDswM0NDOzs7O047OzsxRkY5OzsxRkY5CisxRjdBO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggVkFSSUE7TGw7MDtMOzAzQzUgMDMwMDs7OztOOzs7MUZFQTs7MUZFQQorMUY3QjtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIE9YSUE7TGw7MDtMOzAzQ0Q7Ozs7Tjs7OzFGRUI7OzFGRUIKKzFGN0M7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggVkFSSUE7TGw7MDtMOzAzQzkgMDMwMDs7OztOOzs7MUZGQTs7MUZGQQorMUY3RDtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBPWElBO0xsOzA7TDswM0NFOzs7O047OzsxRkZCOzsxRkZCCisxRjgwO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjAwIDAzNDU7Ozs7Tjs7OzFGODg7OzFGODgKKzFGODE7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMDEgMDM0NTs7OztOOzs7MUY4OTs7MUY4OQorMUY4MjtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMDIgMDM0NTs7OztOOzs7MUY4QTs7MUY4QQorMUY4MztHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMDMgMDM0NTs7OztOOzs7MUY4Qjs7MUY4QgorMUY4NDtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgT1hJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYwNCAwMzQ1Ozs7O047OzsxRjhDOzsxRjhDCisxRjg1O0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBPWElBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjA1IDAzNDU7Ozs7Tjs7OzFGOEQ7OzFGOEQKKzFGODY7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjA2IDAzNDU7Ozs7Tjs7OzFGOEU7OzFGOEUKKzFGODc7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjA3IDAzNDU7Ozs7Tjs7OzFGOEY7OzFGOEYKKzFGODg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgUFJPU0dFR1JBTU1FTkk7THU7MDtMOzFGMDggMDM0NTs7OztOOzs7OzFGODA7CisxRjg5O0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x1OzA7TDsxRjA5IDAzNDU7Ozs7Tjs7OzsxRjgxOworMUY4QTtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBWQVJJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THU7MDtMOzFGMEEgMDM0NTs7OztOOzs7OzFGODI7CisxRjhCO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFZBUklBIEFORCBQUk9TR0VHUkFNTUVOSTtMdTswO0w7MUYwQiAwMzQ1Ozs7O047Ozs7MUY4MzsKKzFGOEM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgT1hJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THU7MDtMOzFGMEMgMDM0NTs7OztOOzs7OzFGODQ7CisxRjhEO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x1OzA7TDsxRjBEIDAzNDU7Ozs7Tjs7OzsxRjg1OworMUY4RTtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSSBBTkQgUFJPU0dFR1JBTU1FTkk7THU7MDtMOzFGMEUgMDM0NTs7OztOOzs7OzFGODY7CisxRjhGO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JIEFORCBQUk9TR0VHUkFNTUVOSTtMdTswO0w7MUYwRiAwMzQ1Ozs7O047Ozs7MUY4NzsKKzFGOTA7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjIwIDAzNDU7Ozs7Tjs7OzFGOTg7OzFGOTgKKzFGOTE7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjIxIDAzNDU7Ozs7Tjs7OzFGOTk7OzFGOTkKKzFGOTI7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYyMiAwMzQ1Ozs7O047OzsxRjlBOzsxRjlBCisxRjkzO0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMjMgMDM0NTs7OztOOzs7MUY5Qjs7MUY5QgorMUY5NDtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMjQgMDM0NTs7OztOOzs7MUY5Qzs7MUY5QworMUY5NTtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMjUgMDM0NTs7OztOOzs7MUY5RDs7MUY5RAorMUY5NjtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjI2IDAzNDU7Ozs7Tjs7OzFGOUU7OzFGOUUKKzFGOTc7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYyNyAwMzQ1Ozs7O047OzsxRjlGOzsxRjlGCisxRjk4O0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBQUk9TR0VHUkFNTUVOSTtMdTswO0w7MUYyOCAwMzQ1Ozs7O047Ozs7MUY5MDsKKzFGOTk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x1OzA7TDsxRjI5IDAzNDU7Ozs7Tjs7OzsxRjkxOworMUY5QTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgVkFSSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x1OzA7TDsxRjJBIDAzNDU7Ozs7Tjs7OzsxRjkyOworMUY5QjtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgVkFSSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x1OzA7TDsxRjJCIDAzNDU7Ozs7Tjs7OzsxRjkzOworMUY5QztHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgT1hJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THU7MDtMOzFGMkMgMDM0NTs7OztOOzs7OzFGOTQ7CisxRjlEO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBPWElBIEFORCBQUk9TR0VHUkFNTUVOSTtMdTswO0w7MUYyRCAwMzQ1Ozs7O047Ozs7MUY5NTsKKzFGOUU7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JIEFORCBQUk9TR0VHUkFNTUVOSTtMdTswO0w7MUYyRSAwMzQ1Ozs7O047Ozs7MUY5NjsKKzFGOUY7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JIEFORCBQUk9TR0VHUkFNTUVOSTtMdTswO0w7MUYyRiAwMzQ1Ozs7O047Ozs7MUY5NzsKKzFGQTA7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGNjAgMDM0NTs7OztOOzs7MUZBODs7MUZBOAorMUZBMTtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUY2MSAwMzQ1Ozs7O047OzsxRkE5OzsxRkE5CisxRkEyO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUY2MiAwMzQ1Ozs7O047OzsxRkFBOzsxRkFBCisxRkEzO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUY2MyAwMzQ1Ozs7O047OzsxRkFCOzsxRkFCCisxRkE0O0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBPWElBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjY0IDAzNDU7Ozs7Tjs7OzFGQUM7OzFGQUMKKzFGQTU7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGNjUgMDM0NTs7OztOOzs7MUZBRDs7MUZBRAorMUZBNjtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGNjYgMDM0NTs7OztOOzs7MUZBRTs7MUZBRQorMUZBNztHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGNjcgMDM0NTs7OztOOzs7MUZBRjs7MUZBRgorMUZBODtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBQUk9TR0VHUkFNTUVOSTtMdTswO0w7MUY2OCAwMzQ1Ozs7O047Ozs7MUZBMDsKKzFGQTk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THU7MDtMOzFGNjkgMDM0NTs7OztOOzs7OzFGQTE7CisxRkFBO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFZBUklBIEFORCBQUk9TR0VHUkFNTUVOSTtMdTswO0w7MUY2QSAwMzQ1Ozs7O047Ozs7MUZBMjsKKzFGQUI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgVkFSSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x1OzA7TDsxRjZCIDAzNDU7Ozs7Tjs7OzsxRkEzOworMUZBQztHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBPWElBIEFORCBQUk9TR0VHUkFNTUVOSTtMdTswO0w7MUY2QyAwMzQ1Ozs7O047Ozs7MUZBNDsKKzFGQUQ7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgT1hJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THU7MDtMOzFGNkQgMDM0NTs7OztOOzs7OzFGQTU7CisxRkFFO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JIEFORCBQUk9TR0VHUkFNTUVOSTtMdTswO0w7MUY2RSAwMzQ1Ozs7O047Ozs7MUZBNjsKKzFGQUY7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkkgQU5EIFBST1NHRUdSQU1NRU5JO0x1OzA7TDsxRjZGIDAzNDU7Ozs7Tjs7OzsxRkE3OworMUZCMDtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBWUkFDSFk7TGw7MDtMOzAzQjEgMDMwNjs7OztOOzs7MUZCODs7MUZCOAorMUZCMTtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBNQUNST047TGw7MDtMOzAzQjEgMDMwNDs7OztOOzs7MUZCOTs7MUZCOQorMUZCMjtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUY3MCAwMzQ1Ozs7O047Ozs7OworMUZCMztHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBZUE9HRUdSQU1NRU5JO0xsOzA7TDswM0IxIDAzNDU7Ozs7Tjs7OzFGQkM7OzFGQkMKKzFGQjQ7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggT1hJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MDNBQyAwMzQ1Ozs7O047Ozs7OworMUZCNjtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQRVJJU1BPTUVOSTtMbDswO0w7MDNCMSAwMzQyOzs7O047Ozs7OworMUZCNztHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUZCNiAwMzQ1Ozs7O047Ozs7OworMUZCODtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFZSQUNIWTtMdTswO0w7MDM5MSAwMzA2Ozs7O047Ozs7MUZCMDsKKzFGQjk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBNQUNST047THU7MDtMOzAzOTEgMDMwNDs7OztOOzs7OzFGQjE7CisxRkJBO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggVkFSSUE7THU7MDtMOzAzOTEgMDMwMDs7OztOOzs7OzFGNzA7CisxRkJCO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggT1hJQTtMdTswO0w7MDM4Njs7OztOOzs7OzFGNzE7CisxRkJDO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFJPU0dFR1JBTU1FTkk7THU7MDtMOzAzOTEgMDM0NTs7OztOOzs7OzFGQjM7CisxRkJEO0dSRUVLIEtPUk9OSVM7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMTM7Ozs7Tjs7Ozs7CisxRkJFO0dSRUVLIFBST1NHRUdSQU1NRU5JO0xsOzA7TDswM0I5Ozs7O047OzswMzk5OzsKKzFGQkY7R1JFRUsgUFNJTEk7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMTM7Ozs7Tjs7Ozs7CisxRkMwO0dSRUVLIFBFUklTUE9NRU5JO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzQyOzs7O047Ozs7OworMUZDMTtHUkVFSyBESUFMWVRJS0EgQU5EIFBFUklTUE9NRU5JO1NrOzA7T047MDBBOCAwMzQyOzs7O047Ozs7OworMUZDMjtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGNzQgMDM0NTs7OztOOzs7OzsKKzFGQzM7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzAzQjcgMDM0NTs7OztOOzs7MUZDQzs7MUZDQworMUZDNDtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggT1hJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MDNBRSAwMzQ1Ozs7O047Ozs7OworMUZDNjtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUEVSSVNQT01FTkk7TGw7MDtMOzAzQjcgMDM0Mjs7OztOOzs7OzsKKzFGQzc7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRkM2IDAzNDU7Ozs7Tjs7Ozs7CisxRkM4O0dSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gV0lUSCBWQVJJQTtMdTswO0w7MDM5NSAwMzAwOzs7O047Ozs7MUY3MjsKKzFGQzk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVBTSUxPTiBXSVRIIE9YSUE7THU7MDtMOzAzODg7Ozs7Tjs7OzsxRjczOworMUZDQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBWQVJJQTtMdTswO0w7MDM5NyAwMzAwOzs7O047Ozs7MUY3NDsKKzFGQ0I7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggT1hJQTtMdTswO0w7MDM4OTs7OztOOzs7OzFGNzU7CisxRkNDO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBST1NHRUdSQU1NRU5JO0x1OzA7TDswMzk3IDAzNDU7Ozs7Tjs7OzsxRkMzOworMUZDRDtHUkVFSyBQU0lMSSBBTkQgVkFSSUE7U2s7MDtPTjsxRkJGIDAzMDA7Ozs7Tjs7Ozs7CisxRkNFO0dSRUVLIFBTSUxJIEFORCBPWElBO1NrOzA7T047MUZCRiAwMzAxOzs7O047Ozs7OworMUZDRjtHUkVFSyBQU0lMSSBBTkQgUEVSSVNQT01FTkk7U2s7MDtPTjsxRkJGIDAzNDI7Ozs7Tjs7Ozs7CisxRkQwO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggVlJBQ0hZO0xsOzA7TDswM0I5IDAzMDY7Ozs7Tjs7OzFGRDg7OzFGRDgKKzFGRDE7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBNQUNST047TGw7MDtMOzAzQjkgMDMwNDs7OztOOzs7MUZEOTs7MUZEOQorMUZEMjtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERJQUxZVElLQSBBTkQgVkFSSUE7TGw7MDtMOzAzQ0EgMDMwMDs7OztOOzs7OzsKKzFGRDM7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBESUFMWVRJS0EgQU5EIE9YSUE7TGw7MDtMOzAzOTA7Ozs7Tjs7Ozs7CisxRkQ2O0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggUEVSSVNQT01FTkk7TGw7MDtMOzAzQjkgMDM0Mjs7OztOOzs7OzsKKzFGRDc7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBESUFMWVRJS0EgQU5EIFBFUklTUE9NRU5JO0xsOzA7TDswM0NBIDAzNDI7Ozs7Tjs7Ozs7CisxRkQ4O0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBWUkFDSFk7THU7MDtMOzAzOTkgMDMwNjs7OztOOzs7OzFGRDA7CisxRkQ5O0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBNQUNST047THU7MDtMOzAzOTkgMDMwNDs7OztOOzs7OzFGRDE7CisxRkRBO0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBWQVJJQTtMdTswO0w7MDM5OSAwMzAwOzs7O047Ozs7MUY3NjsKKzFGREI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIE9YSUE7THU7MDtMOzAzOEE7Ozs7Tjs7OzsxRjc3OworMUZERDtHUkVFSyBEQVNJQSBBTkQgVkFSSUE7U2s7MDtPTjsxRkZFIDAzMDA7Ozs7Tjs7Ozs7CisxRkRFO0dSRUVLIERBU0lBIEFORCBPWElBO1NrOzA7T047MUZGRSAwMzAxOzs7O047Ozs7OworMUZERjtHUkVFSyBEQVNJQSBBTkQgUEVSSVNQT01FTkk7U2s7MDtPTjsxRkZFIDAzNDI7Ozs7Tjs7Ozs7CisxRkUwO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggVlJBQ0hZO0xsOzA7TDswM0M1IDAzMDY7Ozs7Tjs7OzFGRTg7OzFGRTgKKzFGRTE7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBNQUNST047TGw7MDtMOzAzQzUgMDMwNDs7OztOOzs7MUZFOTs7MUZFOQorMUZFMjtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIERJQUxZVElLQSBBTkQgVkFSSUE7TGw7MDtMOzAzQ0IgMDMwMDs7OztOOzs7OzsKKzFGRTM7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBESUFMWVRJS0EgQU5EIE9YSUE7TGw7MDtMOzAzQjA7Ozs7Tjs7Ozs7CisxRkU0O0dSRUVLIFNNQUxMIExFVFRFUiBSSE8gV0lUSCBQU0lMSTtMbDswO0w7MDNDMSAwMzEzOzs7O047Ozs7OworMUZFNTtHUkVFSyBTTUFMTCBMRVRURVIgUkhPIFdJVEggREFTSUE7TGw7MDtMOzAzQzEgMDMxNDs7OztOOzs7MUZFQzs7MUZFQworMUZFNjtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIFBFUklTUE9NRU5JO0xsOzA7TDswM0M1IDAzNDI7Ozs7Tjs7Ozs7CisxRkU3O0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggRElBTFlUSUtBIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MDNDQiAwMzQyOzs7O047Ozs7OworMUZFODtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIFdJVEggVlJBQ0hZO0x1OzA7TDswM0E1IDAzMDY7Ozs7Tjs7OzsxRkUwOworMUZFOTtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIFdJVEggTUFDUk9OO0x1OzA7TDswM0E1IDAzMDQ7Ozs7Tjs7OzsxRkUxOworMUZFQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIFdJVEggVkFSSUE7THU7MDtMOzAzQTUgMDMwMDs7OztOOzs7OzFGN0E7CisxRkVCO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gV0lUSCBPWElBO0x1OzA7TDswMzhFOzs7O047Ozs7MUY3QjsKKzFGRUM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgUkhPIFdJVEggREFTSUE7THU7MDtMOzAzQTEgMDMxNDs7OztOOzs7OzFGRTU7CisxRkVEO0dSRUVLIERJQUxZVElLQSBBTkQgVkFSSUE7U2s7MDtPTjswMEE4IDAzMDA7Ozs7Tjs7Ozs7CisxRkVFO0dSRUVLIERJQUxZVElLQSBBTkQgT1hJQTtTazswO09OOzAzODU7Ozs7Tjs7Ozs7CisxRkVGO0dSRUVLIFZBUklBO1NrOzA7T047MDA2MDs7OztOOzs7OzsKKzFGRjI7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGN0MgMDM0NTs7OztOOzs7OzsKKzFGRjM7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggWVBPR0VHUkFNTUVOSTtMbDswO0w7MDNDOSAwMzQ1Ozs7O047OzsxRkZDOzsxRkZDCisxRkY0O0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzAzQ0UgMDM0NTs7OztOOzs7OzsKKzFGRjY7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUEVSSVNQT01FTkk7TGw7MDtMOzAzQzkgMDM0Mjs7OztOOzs7OzsKKzFGRjc7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGRjYgMDM0NTs7OztOOzs7OzsKKzFGRjg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTiBXSVRIIFZBUklBO0x1OzA7TDswMzlGIDAzMDA7Ozs7Tjs7OzsxRjc4OworMUZGOTtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OIFdJVEggT1hJQTtMdTswO0w7MDM4Qzs7OztOOzs7OzFGNzk7CisxRkZBO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggVkFSSUE7THU7MDtMOzAzQTkgMDMwMDs7OztOOzs7OzFGN0M7CisxRkZCO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggT1hJQTtMdTswO0w7MDM4Rjs7OztOOzs7OzFGN0Q7CisxRkZDO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFJPU0dFR1JBTU1FTkk7THU7MDtMOzAzQTkgMDM0NTs7OztOOzs7OzFGRjM7CisxRkZEO0dSRUVLIE9YSUE7U2s7MDtPTjswMEI0Ozs7O047Ozs7OworMUZGRTtHUkVFSyBEQVNJQTtTazswO09OOzxjb21wYXQ+IDAwMjAgMDMxNDs7OztOOzs7OzsKKzIwMDA7RU4gUVVBRDtaczswO1dTOzIwMDI7Ozs7Tjs7Ozs7CisyMDAxO0VNIFFVQUQ7WnM7MDtXUzsyMDAzOzs7O047Ozs7OworMjAwMjtFTiBTUEFDRTtaczswO1dTOzxjb21wYXQ+IDAwMjA7Ozs7Tjs7Ozs7CisyMDAzO0VNIFNQQUNFO1pzOzA7V1M7PGNvbXBhdD4gMDAyMDs7OztOOzs7OzsKKzIwMDQ7VEhSRUUtUEVSLUVNIFNQQUNFO1pzOzA7V1M7PGNvbXBhdD4gMDAyMDs7OztOOzs7OzsKKzIwMDU7Rk9VUi1QRVItRU0gU1BBQ0U7WnM7MDtXUzs8Y29tcGF0PiAwMDIwOzs7O047Ozs7OworMjAwNjtTSVgtUEVSLUVNIFNQQUNFO1pzOzA7V1M7PGNvbXBhdD4gMDAyMDs7OztOOzs7OzsKKzIwMDc7RklHVVJFIFNQQUNFO1pzOzA7Q1M7PG5vQnJlYWs+IDAwMjA7Ozs7Tjs7Ozs7CisyMDA4O1BVTkNUVUFUSU9OIFNQQUNFO1pzOzA7V1M7PGNvbXBhdD4gMDAyMDs7OztOOzs7OzsKKzIwMDk7VEhJTiBTUEFDRTtaczswO1dTOzxjb21wYXQ+IDAwMjA7Ozs7Tjs7Ozs7CisyMDBBO0hBSVIgU1BBQ0U7WnM7MDtXUzs8Y29tcGF0PiAwMDIwOzs7O047Ozs7OworMjAwQjtaRVJPIFdJRFRIIFNQQUNFO1pzOzA7V1M7Ozs7O047Ozs7OworMjAwQztaRVJPIFdJRFRIIE5PTi1KT0lORVI7Q2Y7MDtPTjs7Ozs7Tjs7Ozs7CisyMDBEO1pFUk8gV0lEVEggSk9JTkVSO0NmOzA7T047Ozs7O047Ozs7OworMjAwRTtMRUZULVRPLVJJR0hUIE1BUks7Q2Y7MDtMOzs7OztOOzs7OzsKKzIwMEY7UklHSFQtVE8tTEVGVCBNQVJLO0NmOzA7Ujs7Ozs7Tjs7Ozs7CisyMDEwO0hZUEhFTjtQZDswO09OOzs7OztOOzs7OzsKKzIwMTE7Tk9OLUJSRUFLSU5HIEhZUEhFTjtQZDswO09OOzxub0JyZWFrPiAyMDEwOzs7O047Ozs7OworMjAxMjtGSUdVUkUgREFTSDtQZDswO09OOzs7OztOOzs7OzsKKzIwMTM7RU4gREFTSDtQZDswO09OOzs7OztOOzs7OzsKKzIwMTQ7RU0gREFTSDtQZDswO09OOzs7OztOOzs7OzsKKzIwMTU7SE9SSVpPTlRBTCBCQVI7UGQ7MDtPTjs7Ozs7TjtRVU9UQVRJT04gREFTSDs7OzsKKzIwMTY7RE9VQkxFIFZFUlRJQ0FMIExJTkU7UG87MDtPTjs7Ozs7TjtET1VCTEUgVkVSVElDQUwgQkFSOzs7OworMjAxNztET1VCTEUgTE9XIExJTkU7UG87MDtPTjs8Y29tcGF0PiAwMDIwIDAzMzM7Ozs7TjtTUEFDSU5HIERPVUJMRSBVTkRFUlNDT1JFOzs7OworMjAxODtMRUZUIFNJTkdMRSBRVU9UQVRJT04gTUFSSztQaTswO09OOzs7OztOO1NJTkdMRSBUVVJORUQgQ09NTUEgUVVPVEFUSU9OIE1BUks7Ozs7CisyMDE5O1JJR0hUIFNJTkdMRSBRVU9UQVRJT04gTUFSSztQZjswO09OOzs7OztOO1NJTkdMRSBDT01NQSBRVU9UQVRJT04gTUFSSzs7OzsKKzIwMUE7U0lOR0xFIExPVy05IFFVT1RBVElPTiBNQVJLO1BzOzA7T047Ozs7O047TE9XIFNJTkdMRSBDT01NQSBRVU9UQVRJT04gTUFSSzs7OzsKKzIwMUI7U0lOR0xFIEhJR0gtUkVWRVJTRUQtOSBRVU9UQVRJT04gTUFSSztQaTswO09OOzs7OztOO1NJTkdMRSBSRVZFUlNFRCBDT01NQSBRVU9UQVRJT04gTUFSSzs7OzsKKzIwMUM7TEVGVCBET1VCTEUgUVVPVEFUSU9OIE1BUks7UGk7MDtPTjs7Ozs7TjtET1VCTEUgVFVSTkVEIENPTU1BIFFVT1RBVElPTiBNQVJLOzs7OworMjAxRDtSSUdIVCBET1VCTEUgUVVPVEFUSU9OIE1BUks7UGY7MDtPTjs7Ozs7TjtET1VCTEUgQ09NTUEgUVVPVEFUSU9OIE1BUks7Ozs7CisyMDFFO0RPVUJMRSBMT1ctOSBRVU9UQVRJT04gTUFSSztQczswO09OOzs7OztOO0xPVyBET1VCTEUgQ09NTUEgUVVPVEFUSU9OIE1BUks7Ozs7CisyMDFGO0RPVUJMRSBISUdILVJFVkVSU0VELTkgUVVPVEFUSU9OIE1BUks7UGk7MDtPTjs7Ozs7TjtET1VCTEUgUkVWRVJTRUQgQ09NTUEgUVVPVEFUSU9OIE1BUks7Ozs7CisyMDIwO0RBR0dFUjtQbzswO09OOzs7OztOOzs7OzsKKzIwMjE7RE9VQkxFIERBR0dFUjtQbzswO09OOzs7OztOOzs7OzsKKzIwMjI7QlVMTEVUO1BvOzA7T047Ozs7O047Ozs7OworMjAyMztUUklBTkdVTEFSIEJVTExFVDtQbzswO09OOzs7OztOOzs7OzsKKzIwMjQ7T05FIERPVCBMRUFERVI7UG87MDtPTjs8Y29tcGF0PiAwMDJFOzs7O047Ozs7OworMjAyNTtUV08gRE9UIExFQURFUjtQbzswO09OOzxjb21wYXQ+IDAwMkUgMDAyRTs7OztOOzs7OzsKKzIwMjY7SE9SSVpPTlRBTCBFTExJUFNJUztQbzswO09OOzxjb21wYXQ+IDAwMkUgMDAyRSAwMDJFOzs7O047Ozs7OworMjAyNztIWVBIRU5BVElPTiBQT0lOVDtQbzswO09OOzs7OztOOzs7OzsKKzIwMjg7TElORSBTRVBBUkFUT1I7Wmw7MDtCOzs7OztOOzs7OzsKKzIwMjk7UEFSQUdSQVBIIFNFUEFSQVRPUjtacDswO0I7Ozs7O047Ozs7OworMjAyQTtMRUZULVRPLVJJR0hUIEVNQkVERElORztDZjswO0w7Ozs7O047Ozs7OworMjAyQjtSSUdIVC1UTy1MRUZUIEVNQkVERElORztDZjswO1I7Ozs7O047Ozs7OworMjAyQztQT1AgRElSRUNUSU9OQUwgRk9STUFUVElORztDZjswO09OOzs7OztOOzs7OzsKKzIwMkQ7TEVGVC1UTy1SSUdIVCBPVkVSUklERTtDZjswO0w7Ozs7O047Ozs7OworMjAyRTtSSUdIVC1UTy1MRUZUIE9WRVJSSURFO0NmOzA7Ujs7Ozs7Tjs7Ozs7CisyMDMwO1BFUiBNSUxMRSBTSUdOO1BvOzA7RVQ7Ozs7O047Ozs7OworMjAzMTtQRVIgVEVOIFRIT1VTQU5EIFNJR047UG87MDtFVDs7Ozs7Tjs7Ozs7CisyMDMyO1BSSU1FO1BvOzA7RVQ7Ozs7O047Ozs7OworMjAzMztET1VCTEUgUFJJTUU7UG87MDtFVDs8Y29tcGF0PiAyMDMyIDIwMzI7Ozs7Tjs7Ozs7CisyMDM0O1RSSVBMRSBQUklNRTtQbzswO0VUOzxjb21wYXQ+IDIwMzIgMjAzMiAyMDMyOzs7O047Ozs7OworMjAzNTtSRVZFUlNFRCBQUklNRTtQbzswO09OOzs7OztOOzs7OzsKKzIwMzY7UkVWRVJTRUQgRE9VQkxFIFBSSU1FO1BvOzA7T047PGNvbXBhdD4gMjAzNSAyMDM1Ozs7O047Ozs7OworMjAzNztSRVZFUlNFRCBUUklQTEUgUFJJTUU7UG87MDtPTjs8Y29tcGF0PiAyMDM1IDIwMzUgMjAzNTs7OztOOzs7OzsKKzIwMzg7Q0FSRVQ7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDM5O1NJTkdMRSBMRUZULVBPSU5USU5HIEFOR0xFIFFVT1RBVElPTiBNQVJLO1BpOzA7T047Ozs7O1k7TEVGVCBQT0lOVElORyBTSU5HTEUgR1VJTExFTUVUOzs7OworMjAzQTtTSU5HTEUgUklHSFQtUE9JTlRJTkcgQU5HTEUgUVVPVEFUSU9OIE1BUks7UGY7MDtPTjs7Ozs7WTtSSUdIVCBQT0lOVElORyBTSU5HTEUgR1VJTExFTUVUOzs7OworMjAzQjtSRUZFUkVOQ0UgTUFSSztQbzswO09OOzs7OztOOzs7OzsKKzIwM0M7RE9VQkxFIEVYQ0xBTUFUSU9OIE1BUks7UG87MDtPTjs8Y29tcGF0PiAwMDIxIDAwMjE7Ozs7Tjs7Ozs7CisyMDNEO0lOVEVSUk9CQU5HO1BvOzA7T047Ozs7O047Ozs7OworMjAzRTtPVkVSTElORTtQbzswO09OOzxjb21wYXQ+IDAwMjAgMDMwNTs7OztOO1NQQUNJTkcgT1ZFUlNDT1JFOzs7OworMjAzRjtVTkRFUlRJRTtQYzswO09OOzs7OztOOztFbm90aWtvbjs7OworMjA0MDtDSEFSQUNURVIgVElFO1BjOzA7T047Ozs7O047Ozs7OworMjA0MTtDQVJFVCBJTlNFUlRJT04gUE9JTlQ7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDQyO0FTVEVSSVNNO1BvOzA7T047Ozs7O047Ozs7OworMjA0MztIWVBIRU4gQlVMTEVUO1BvOzA7T047Ozs7O047Ozs7OworMjA0NDtGUkFDVElPTiBTTEFTSDtTbTswO09OOzs7OztOOzs7OzsKKzIwNDU7TEVGVCBTUVVBUkUgQlJBQ0tFVCBXSVRIIFFVSUxMO1BzOzA7T047Ozs7O1k7Ozs7OworMjA0NjtSSUdIVCBTUVVBUkUgQlJBQ0tFVCBXSVRIIFFVSUxMO1BlOzA7T047Ozs7O1k7Ozs7OworMjA2QTtJTkhJQklUIFNZTU1FVFJJQyBTV0FQUElORztDZjswO09OOzs7OztOOzs7OzsKKzIwNkI7QUNUSVZBVEUgU1lNTUVUUklDIFNXQVBQSU5HO0NmOzA7T047Ozs7O047Ozs7OworMjA2QztJTkhJQklUIEFSQUJJQyBGT1JNIFNIQVBJTkc7Q2Y7MDtPTjs7Ozs7Tjs7Ozs7CisyMDZEO0FDVElWQVRFIEFSQUJJQyBGT1JNIFNIQVBJTkc7Q2Y7MDtPTjs7Ozs7Tjs7Ozs7CisyMDZFO05BVElPTkFMIERJR0lUIFNIQVBFUztDZjswO09OOzs7OztOOzs7OzsKKzIwNkY7Tk9NSU5BTCBESUdJVCBTSEFQRVM7Q2Y7MDtPTjs7Ozs7Tjs7Ozs7CisyMDcwO1NVUEVSU0NSSVBUIFpFUk87Tm87MDtFTjs8c3VwZXI+IDAwMzA7MDswOzA7TjtTVVBFUlNDUklQVCBESUdJVCBaRVJPOzs7OworMjA3NDtTVVBFUlNDUklQVCBGT1VSO05vOzA7RU47PHN1cGVyPiAwMDM0OzQ7NDs0O047U1VQRVJTQ1JJUFQgRElHSVQgRk9VUjs7OzsKKzIwNzU7U1VQRVJTQ1JJUFQgRklWRTtObzswO0VOOzxzdXBlcj4gMDAzNTs1OzU7NTtOO1NVUEVSU0NSSVBUIERJR0lUIEZJVkU7Ozs7CisyMDc2O1NVUEVSU0NSSVBUIFNJWDtObzswO0VOOzxzdXBlcj4gMDAzNjs2OzY7NjtOO1NVUEVSU0NSSVBUIERJR0lUIFNJWDs7OzsKKzIwNzc7U1VQRVJTQ1JJUFQgU0VWRU47Tm87MDtFTjs8c3VwZXI+IDAwMzc7Nzs3Ozc7TjtTVVBFUlNDUklQVCBESUdJVCBTRVZFTjs7OzsKKzIwNzg7U1VQRVJTQ1JJUFQgRUlHSFQ7Tm87MDtFTjs8c3VwZXI+IDAwMzg7ODs4Ozg7TjtTVVBFUlNDUklQVCBESUdJVCBFSUdIVDs7OzsKKzIwNzk7U1VQRVJTQ1JJUFQgTklORTtObzswO0VOOzxzdXBlcj4gMDAzOTs5Ozk7OTtOO1NVUEVSU0NSSVBUIERJR0lUIE5JTkU7Ozs7CisyMDdBO1NVUEVSU0NSSVBUIFBMVVMgU0lHTjtTbTswO0VUOzxzdXBlcj4gMDAyQjs7OztOOzs7OzsKKzIwN0I7U1VQRVJTQ1JJUFQgTUlOVVM7U207MDtFVDs8c3VwZXI+IDIyMTI7Ozs7TjtTVVBFUlNDUklQVCBIWVBIRU4tTUlOVVM7Ozs7CisyMDdDO1NVUEVSU0NSSVBUIEVRVUFMUyBTSUdOO1NtOzA7T047PHN1cGVyPiAwMDNEOzs7O047Ozs7OworMjA3RDtTVVBFUlNDUklQVCBMRUZUIFBBUkVOVEhFU0lTO1BzOzA7T047PHN1cGVyPiAwMDI4Ozs7O1k7U1VQRVJTQ1JJUFQgT1BFTklORyBQQVJFTlRIRVNJUzs7OzsKKzIwN0U7U1VQRVJTQ1JJUFQgUklHSFQgUEFSRU5USEVTSVM7UGU7MDtPTjs8c3VwZXI+IDAwMjk7Ozs7WTtTVVBFUlNDUklQVCBDTE9TSU5HIFBBUkVOVEhFU0lTOzs7OworMjA3RjtTVVBFUlNDUklQVCBMQVRJTiBTTUFMTCBMRVRURVIgTjtMbDswO0w7PHN1cGVyPiAwMDZFOzs7O047Ozs7OworMjA4MDtTVUJTQ1JJUFQgWkVSTztObzswO0VOOzxzdWI+IDAwMzA7MDswOzA7TjtTVUJTQ1JJUFQgRElHSVQgWkVSTzs7OzsKKzIwODE7U1VCU0NSSVBUIE9ORTtObzswO0VOOzxzdWI+IDAwMzE7MTsxOzE7TjtTVUJTQ1JJUFQgRElHSVQgT05FOzs7OworMjA4MjtTVUJTQ1JJUFQgVFdPO05vOzA7RU47PHN1Yj4gMDAzMjsyOzI7MjtOO1NVQlNDUklQVCBESUdJVCBUV087Ozs7CisyMDgzO1NVQlNDUklQVCBUSFJFRTtObzswO0VOOzxzdWI+IDAwMzM7MzszOzM7TjtTVUJTQ1JJUFQgRElHSVQgVEhSRUU7Ozs7CisyMDg0O1NVQlNDUklQVCBGT1VSO05vOzA7RU47PHN1Yj4gMDAzNDs0OzQ7NDtOO1NVQlNDUklQVCBESUdJVCBGT1VSOzs7OworMjA4NTtTVUJTQ1JJUFQgRklWRTtObzswO0VOOzxzdWI+IDAwMzU7NTs1OzU7TjtTVUJTQ1JJUFQgRElHSVQgRklWRTs7OzsKKzIwODY7U1VCU0NSSVBUIFNJWDtObzswO0VOOzxzdWI+IDAwMzY7Njs2OzY7TjtTVUJTQ1JJUFQgRElHSVQgU0lYOzs7OworMjA4NztTVUJTQ1JJUFQgU0VWRU47Tm87MDtFTjs8c3ViPiAwMDM3Ozc7Nzs3O047U1VCU0NSSVBUIERJR0lUIFNFVkVOOzs7OworMjA4ODtTVUJTQ1JJUFQgRUlHSFQ7Tm87MDtFTjs8c3ViPiAwMDM4Ozg7ODs4O047U1VCU0NSSVBUIERJR0lUIEVJR0hUOzs7OworMjA4OTtTVUJTQ1JJUFQgTklORTtObzswO0VOOzxzdWI+IDAwMzk7OTs5Ozk7TjtTVUJTQ1JJUFQgRElHSVQgTklORTs7OzsKKzIwOEE7U1VCU0NSSVBUIFBMVVMgU0lHTjtTbTswO0VUOzxzdWI+IDAwMkI7Ozs7Tjs7Ozs7CisyMDhCO1NVQlNDUklQVCBNSU5VUztTbTswO0VUOzxzdWI+IDIyMTI7Ozs7TjtTVUJTQ1JJUFQgSFlQSEVOLU1JTlVTOzs7OworMjA4QztTVUJTQ1JJUFQgRVFVQUxTIFNJR047U207MDtPTjs8c3ViPiAwMDNEOzs7O047Ozs7OworMjA4RDtTVUJTQ1JJUFQgTEVGVCBQQVJFTlRIRVNJUztQczswO09OOzxzdWI+IDAwMjg7Ozs7WTtTVUJTQ1JJUFQgT1BFTklORyBQQVJFTlRIRVNJUzs7OzsKKzIwOEU7U1VCU0NSSVBUIFJJR0hUIFBBUkVOVEhFU0lTO1BlOzA7T047PHN1Yj4gMDAyOTs7OztZO1NVQlNDUklQVCBDTE9TSU5HIFBBUkVOVEhFU0lTOzs7OworMjBBMDtFVVJPLUNVUlJFTkNZIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEExO0NPTE9OIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEEyO0NSVVpFSVJPIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEEzO0ZSRU5DSCBGUkFOQyBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBBNDtMSVJBIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEE1O01JTEwgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQTY7TkFJUkEgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQTc7UEVTRVRBIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEE4O1JVUEVFIFNJR047U2M7MDtFVDs8Y29tcGF0PiAwMDUyIDAwNzM7Ozs7Tjs7Ozs7CisyMEE5O1dPTiBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBBQTtORVcgU0hFUUVMIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEFCO0RPTkcgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQUM7RVVSTyBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBEMDtDT01CSU5JTkcgTEVGVCBIQVJQT09OIEFCT1ZFO01uOzIzMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBMRUZUIEhBUlBPT04gQUJPVkU7Ozs7CisyMEQxO0NPTUJJTklORyBSSUdIVCBIQVJQT09OIEFCT1ZFO01uOzIzMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBSSUdIVCBIQVJQT09OIEFCT1ZFOzs7OworMjBEMjtDT01CSU5JTkcgTE9ORyBWRVJUSUNBTCBMSU5FIE9WRVJMQVk7TW47MTtPTjs7Ozs7TjtOT04tU1BBQ0lORyBMT05HIFZFUlRJQ0FMIEJBUiBPVkVSTEFZOzs7OworMjBEMztDT01CSU5JTkcgU0hPUlQgVkVSVElDQUwgTElORSBPVkVSTEFZO01uOzE7T047Ozs7O047Tk9OLVNQQUNJTkcgU0hPUlQgVkVSVElDQUwgQkFSIE9WRVJMQVk7Ozs7CisyMEQ0O0NPTUJJTklORyBBTlRJQ0xPQ0tXSVNFIEFSUk9XIEFCT1ZFO01uOzIzMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBBTlRJQ0xPQ0tXSVNFIEFSUk9XIEFCT1ZFOzs7OworMjBENTtDT01CSU5JTkcgQ0xPQ0tXSVNFIEFSUk9XIEFCT1ZFO01uOzIzMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBDTE9DS1dJU0UgQVJST1cgQUJPVkU7Ozs7CisyMEQ2O0NPTUJJTklORyBMRUZUIEFSUk9XIEFCT1ZFO01uOzIzMDtPTjs7Ozs7TjtOT04tU1BBQ0lORyBMRUZUIEFSUk9XIEFCT1ZFOzs7OworMjBENztDT01CSU5JTkcgUklHSFQgQVJST1cgQUJPVkU7TW47MjMwO09OOzs7OztOO05PTi1TUEFDSU5HIFJJR0hUIEFSUk9XIEFCT1ZFOzs7OworMjBEODtDT01CSU5JTkcgUklORyBPVkVSTEFZO01uOzE7T047Ozs7O047Tk9OLVNQQUNJTkcgUklORyBPVkVSTEFZOzs7OworMjBEOTtDT01CSU5JTkcgQ0xPQ0tXSVNFIFJJTkcgT1ZFUkxBWTtNbjsxO09OOzs7OztOO05PTi1TUEFDSU5HIENMT0NLV0lTRSBSSU5HIE9WRVJMQVk7Ozs7CisyMERBO0NPTUJJTklORyBBTlRJQ0xPQ0tXSVNFIFJJTkcgT1ZFUkxBWTtNbjsxO09OOzs7OztOO05PTi1TUEFDSU5HIEFOVElDTE9DS1dJU0UgUklORyBPVkVSTEFZOzs7OworMjBEQjtDT01CSU5JTkcgVEhSRUUgRE9UUyBBQk9WRTtNbjsyMzA7T047Ozs7O047Tk9OLVNQQUNJTkcgVEhSRUUgRE9UUyBBQk9WRTs7OzsKKzIwREM7Q09NQklOSU5HIEZPVVIgRE9UUyBBQk9WRTtNbjsyMzA7T047Ozs7O047Tk9OLVNQQUNJTkcgRk9VUiBET1RTIEFCT1ZFOzs7OworMjBERDtDT01CSU5JTkcgRU5DTE9TSU5HIENJUkNMRTtNZTswO09OOzs7OztOO0VOQ0xPU0lORyBDSVJDTEU7Ozs7CisyMERFO0NPTUJJTklORyBFTkNMT1NJTkcgU1FVQVJFO01lOzA7T047Ozs7O047RU5DTE9TSU5HIFNRVUFSRTs7OzsKKzIwREY7Q09NQklOSU5HIEVOQ0xPU0lORyBESUFNT05EO01lOzA7T047Ozs7O047RU5DTE9TSU5HIERJQU1PTkQ7Ozs7CisyMEUwO0NPTUJJTklORyBFTkNMT1NJTkcgQ0lSQ0xFIEJBQ0tTTEFTSDtNZTswO09OOzs7OztOO0VOQ0xPU0lORyBDSVJDTEUgU0xBU0g7Ozs7CisyMEUxO0NPTUJJTklORyBMRUZUIFJJR0hUIEFSUk9XIEFCT1ZFO01uOzE7T047Ozs7O047Tk9OLVNQQUNJTkcgTEVGVCBSSUdIVCBBUlJPVyBBQk9WRTs7OzsKKzIxMDA7QUNDT1VOVCBPRjtTbzswO09OOzxjb21wYXQ+IDAwNjEgMDAyRiAwMDYzOzs7O047Ozs7OworMjEwMTtBRERSRVNTRUQgVE8gVEhFIFNVQkpFQ1Q7U287MDtPTjs8Y29tcGF0PiAwMDYxIDAwMkYgMDA3Mzs7OztOOzs7OzsKKzIxMDI7RE9VQkxFLVNUUlVDSyBDQVBJVEFMIEM7THU7MDtMOzxmb250PiAwMDQzOzs7O047RE9VQkxFLVNUUlVDSyBDOzs7OworMjEwMztERUdSRUUgQ0VMU0lVUztTbzswO09OOzxjb21wYXQ+IDAwQjAgMDA0Mzs7OztOO0RFR1JFRVMgQ0VOVElHUkFERTs7OzsKKzIxMDQ7Q0VOVFJFIExJTkUgU1lNQk9MO1NvOzA7T047Ozs7O047QyBMIFNZTUJPTDs7OzsKKzIxMDU7Q0FSRSBPRjtTbzswO09OOzxjb21wYXQ+IDAwNjMgMDAyRiAwMDZGOzs7O047Ozs7OworMjEwNjtDQURBIFVOQTtTbzswO09OOzxjb21wYXQ+IDAwNjMgMDAyRiAwMDc1Ozs7O047Ozs7OworMjEwNztFVUxFUiBDT05TVEFOVDtMdTswO0w7PGNvbXBhdD4gMDE5MDs7OztOO0VVTEVSUzs7OzsKKzIxMDg7U0NSVVBMRTtTbzswO09OOzs7OztOOzs7OzsKKzIxMDk7REVHUkVFIEZBSFJFTkhFSVQ7U287MDtPTjs8Y29tcGF0PiAwMEIwIDAwNDY7Ozs7TjtERUdSRUVTIEZBSFJFTkhFSVQ7Ozs7CisyMTBBO1NDUklQVCBTTUFMTCBHO0xsOzA7TDs8Zm9udD4gMDA2Nzs7OztOOzs7OzsKKzIxMEI7U0NSSVBUIENBUElUQUwgSDtMdTswO0w7PGZvbnQ+IDAwNDg7Ozs7TjtTQ1JJUFQgSDs7OzsKKzIxMEM7QkxBQ0stTEVUVEVSIENBUElUQUwgSDtMdTswO0w7PGZvbnQ+IDAwNDg7Ozs7TjtCTEFDSy1MRVRURVIgSDs7OzsKKzIxMEQ7RE9VQkxFLVNUUlVDSyBDQVBJVEFMIEg7THU7MDtMOzxmb250PiAwMDQ4Ozs7O047RE9VQkxFLVNUUlVDSyBIOzs7OworMjEwRTtQTEFOQ0sgQ09OU1RBTlQ7TGw7MDtMOzxmb250PiAwMDY4Ozs7O047Ozs7OworMjEwRjtQTEFOQ0sgQ09OU1RBTlQgT1ZFUiBUV08gUEk7TGw7MDtMOzxmb250PiAwMTI3Ozs7O047UExBTkNLIENPTlNUQU5UIE9WRVIgMiBQSTs7OzsKKzIxMTA7U0NSSVBUIENBUElUQUwgSTtMdTswO0w7PGZvbnQ+IDAwNDk7Ozs7TjtTQ1JJUFQgSTs7OzsKKzIxMTE7QkxBQ0stTEVUVEVSIENBUElUQUwgSTtMdTswO0w7PGZvbnQ+IDAwNDk7Ozs7TjtCTEFDSy1MRVRURVIgSTs7OzsKKzIxMTI7U0NSSVBUIENBUElUQUwgTDtMdTswO0w7PGZvbnQ+IDAwNEM7Ozs7TjtTQ1JJUFQgTDs7OzsKKzIxMTM7U0NSSVBUIFNNQUxMIEw7TGw7MDtMOzxmb250PiAwMDZDOzs7O047Ozs7OworMjExNDtMIEIgQkFSIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIxMTU7RE9VQkxFLVNUUlVDSyBDQVBJVEFMIE47THU7MDtMOzxmb250PiAwMDRFOzs7O047RE9VQkxFLVNUUlVDSyBOOzs7OworMjExNjtOVU1FUk8gU0lHTjtTbzswO09OOzxjb21wYXQ+IDAwNEUgMDA2Rjs7OztOO05VTUVSTzs7OzsKKzIxMTc7U09VTkQgUkVDT1JESU5HIENPUFlSSUdIVDtTbzswO09OOzs7OztOOzs7OzsKKzIxMTg7U0NSSVBUIENBUElUQUwgUDtMbDswO0w7Ozs7O047U0NSSVBUIFA7Ozs7CisyMTE5O0RPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBQO0x1OzA7TDs8Zm9udD4gMDA1MDs7OztOO0RPVUJMRS1TVFJVQ0sgUDs7OzsKKzIxMUE7RE9VQkxFLVNUUlVDSyBDQVBJVEFMIFE7THU7MDtMOzxmb250PiAwMDUxOzs7O047RE9VQkxFLVNUUlVDSyBROzs7OworMjExQjtTQ1JJUFQgQ0FQSVRBTCBSO0x1OzA7TDs8Zm9udD4gMDA1Mjs7OztOO1NDUklQVCBSOzs7OworMjExQztCTEFDSy1MRVRURVIgQ0FQSVRBTCBSO0x1OzA7TDs8Zm9udD4gMDA1Mjs7OztOO0JMQUNLLUxFVFRFUiBSOzs7OworMjExRDtET1VCTEUtU1RSVUNLIENBUElUQUwgUjtMdTswO0w7PGZvbnQ+IDAwNTI7Ozs7TjtET1VCTEUtU1RSVUNLIFI7Ozs7CisyMTFFO1BSRVNDUklQVElPTiBUQUtFO1NvOzA7T047Ozs7O047Ozs7OworMjExRjtSRVNQT05TRTtTbzswO09OOzs7OztOOzs7OzsKKzIxMjA7U0VSVklDRSBNQVJLO1NvOzA7T047PHN1cGVyPiAwMDUzIDAwNEQ7Ozs7Tjs7Ozs7CisyMTIxO1RFTEVQSE9ORSBTSUdOO1NvOzA7T047PGNvbXBhdD4gMDA1NCAwMDQ1IDAwNEM7Ozs7TjtUIEUgTCBTWU1CT0w7Ozs7CisyMTIyO1RSQURFIE1BUksgU0lHTjtTbzswO09OOzxzdXBlcj4gMDA1NCAwMDREOzs7O047VFJBREVNQVJLOzs7OworMjEyMztWRVJTSUNMRTtTbzswO09OOzs7OztOOzs7OzsKKzIxMjQ7RE9VQkxFLVNUUlVDSyBDQVBJVEFMIFo7THU7MDtMOzxmb250PiAwMDVBOzs7O047RE9VQkxFLVNUUlVDSyBaOzs7OworMjEyNTtPVU5DRSBTSUdOO1NvOzA7T047Ozs7O047T1VOQ0U7Ozs7CisyMTI2O09ITSBTSUdOO0x1OzA7TDswM0E5Ozs7O047T0hNOzs7OworMjEyNztJTlZFUlRFRCBPSE0gU0lHTjtTbzswO09OOzs7OztOO01ITzs7OzsKKzIxMjg7QkxBQ0stTEVUVEVSIENBUElUQUwgWjtMdTswO0w7PGZvbnQ+IDAwNUE7Ozs7TjtCTEFDSy1MRVRURVIgWjs7OzsKKzIxMjk7VFVSTkVEIEdSRUVLIFNNQUxMIExFVFRFUiBJT1RBO1NvOzA7T047Ozs7O047Ozs7OworMjEyQTtLRUxWSU4gU0lHTjtMdTswO0w7MDA0Qjs7OztOO0RFR1JFRVMgS0VMVklOOzs7OworMjEyQjtBTkdTVFJPTSBTSUdOO0x1OzA7TDswMEM1Ozs7O047QU5HU1RST00gVU5JVDs7OzsKKzIxMkM7U0NSSVBUIENBUElUQUwgQjtMdTswO0w7PGZvbnQ+IDAwNDI7Ozs7TjtTQ1JJUFQgQjs7OzsKKzIxMkQ7QkxBQ0stTEVUVEVSIENBUElUQUwgQztMdTswO0w7PGZvbnQ+IDAwNDM7Ozs7TjtCTEFDSy1MRVRURVIgQzs7OzsKKzIxMkU7RVNUSU1BVEVEIFNZTUJPTDtMbDswO0w7Ozs7O047Ozs7OworMjEyRjtTQ1JJUFQgU01BTEwgRTtMbDswO0w7PGZvbnQ+IDAwNjU7Ozs7Tjs7Ozs7CisyMTMwO1NDUklQVCBDQVBJVEFMIEU7THU7MDtMOzxmb250PiAwMDQ1Ozs7O047U0NSSVBUIEU7Ozs7CisyMTMxO1NDUklQVCBDQVBJVEFMIEY7THU7MDtMOzxmb250PiAwMDQ2Ozs7O047U0NSSVBUIEY7Ozs7CisyMTMyO1RVUk5FRCBDQVBJVEFMIEY7U287MDtPTjs7Ozs7TjtUVVJORUQgRjs7OzsKKzIxMzM7U0NSSVBUIENBUElUQUwgTTtMdTswO0w7PGZvbnQ+IDAwNEQ7Ozs7TjtTQ1JJUFQgTTs7OzsKKzIxMzQ7U0NSSVBUIFNNQUxMIE87TGw7MDtMOzxmb250PiAwMDZGOzs7O047Ozs7OworMjEzNTtBTEVGIFNZTUJPTDtMbzswO0w7PGNvbXBhdD4gMDVEMDs7OztOO0ZJUlNUIFRSQU5TRklOSVRFIENBUkRJTkFMOzs7OworMjEzNjtCRVQgU1lNQk9MO0xvOzA7TDs8Y29tcGF0PiAwNUQxOzs7O047U0VDT05EIFRSQU5TRklOSVRFIENBUkRJTkFMOzs7OworMjEzNztHSU1FTCBTWU1CT0w7TG87MDtMOzxjb21wYXQ+IDA1RDI7Ozs7TjtUSElSRCBUUkFOU0ZJTklURSBDQVJESU5BTDs7OzsKKzIxMzg7REFMRVQgU1lNQk9MO0xvOzA7TDs8Y29tcGF0PiAwNUQzOzs7O047Rk9VUlRIIFRSQU5TRklOSVRFIENBUkRJTkFMOzs7OworMjE1MztWVUxHQVIgRlJBQ1RJT04gT05FIFRISVJEO05vOzA7T047PGZyYWN0aW9uPiAwMDMxIDIwNDQgMDAzMzs7OzEvMztOO0ZSQUNUSU9OIE9ORSBUSElSRDs7OzsKKzIxNTQ7VlVMR0FSIEZSQUNUSU9OIFRXTyBUSElSRFM7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzIgMjA0NCAwMDMzOzs7Mi8zO047RlJBQ1RJT04gVFdPIFRISVJEUzs7OzsKKzIxNTU7VlVMR0FSIEZSQUNUSU9OIE9ORSBGSUZUSDtObzswO09OOzxmcmFjdGlvbj4gMDAzMSAyMDQ0IDAwMzU7OzsxLzU7TjtGUkFDVElPTiBPTkUgRklGVEg7Ozs7CisyMTU2O1ZVTEdBUiBGUkFDVElPTiBUV08gRklGVEhTO05vOzA7T047PGZyYWN0aW9uPiAwMDMyIDIwNDQgMDAzNTs7OzIvNTtOO0ZSQUNUSU9OIFRXTyBGSUZUSFM7Ozs7CisyMTU3O1ZVTEdBUiBGUkFDVElPTiBUSFJFRSBGSUZUSFM7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzMgMjA0NCAwMDM1Ozs7My81O047RlJBQ1RJT04gVEhSRUUgRklGVEhTOzs7OworMjE1ODtWVUxHQVIgRlJBQ1RJT04gRk9VUiBGSUZUSFM7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzQgMjA0NCAwMDM1Ozs7NC81O047RlJBQ1RJT04gRk9VUiBGSUZUSFM7Ozs7CisyMTU5O1ZVTEdBUiBGUkFDVElPTiBPTkUgU0lYVEg7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzEgMjA0NCAwMDM2Ozs7MS82O047RlJBQ1RJT04gT05FIFNJWFRIOzs7OworMjE1QTtWVUxHQVIgRlJBQ1RJT04gRklWRSBTSVhUSFM7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzUgMjA0NCAwMDM2Ozs7NS82O047RlJBQ1RJT04gRklWRSBTSVhUSFM7Ozs7CisyMTVCO1ZVTEdBUiBGUkFDVElPTiBPTkUgRUlHSFRIO05vOzA7T047PGZyYWN0aW9uPiAwMDMxIDIwNDQgMDAzODs7OzEvODtOO0ZSQUNUSU9OIE9ORSBFSUdIVEg7Ozs7CisyMTVDO1ZVTEdBUiBGUkFDVElPTiBUSFJFRSBFSUdIVEhTO05vOzA7T047PGZyYWN0aW9uPiAwMDMzIDIwNDQgMDAzODs7OzMvODtOO0ZSQUNUSU9OIFRIUkVFIEVJR0hUSFM7Ozs7CisyMTVEO1ZVTEdBUiBGUkFDVElPTiBGSVZFIEVJR0hUSFM7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzUgMjA0NCAwMDM4Ozs7NS84O047RlJBQ1RJT04gRklWRSBFSUdIVEhTOzs7OworMjE1RTtWVUxHQVIgRlJBQ1RJT04gU0VWRU4gRUlHSFRIUztObzswO09OOzxmcmFjdGlvbj4gMDAzNyAyMDQ0IDAwMzg7Ozs3Lzg7TjtGUkFDVElPTiBTRVZFTiBFSUdIVEhTOzs7OworMjE1RjtGUkFDVElPTiBOVU1FUkFUT1IgT05FO05vOzA7T047PGZyYWN0aW9uPiAwMDMxIDIwNDQ7OzsxO047Ozs7OworMjE2MDtST01BTiBOVU1FUkFMIE9ORTtObDswO0w7PGNvbXBhdD4gMDA0OTs7OzE7Tjs7OzsyMTcwOworMjE2MTtST01BTiBOVU1FUkFMIFRXTztObDswO0w7PGNvbXBhdD4gMDA0OSAwMDQ5Ozs7MjtOOzs7OzIxNzE7CisyMTYyO1JPTUFOIE5VTUVSQUwgVEhSRUU7Tmw7MDtMOzxjb21wYXQ+IDAwNDkgMDA0OSAwMDQ5Ozs7MztOOzs7OzIxNzI7CisyMTYzO1JPTUFOIE5VTUVSQUwgRk9VUjtObDswO0w7PGNvbXBhdD4gMDA0OSAwMDU2Ozs7NDtOOzs7OzIxNzM7CisyMTY0O1JPTUFOIE5VTUVSQUwgRklWRTtObDswO0w7PGNvbXBhdD4gMDA1Njs7OzU7Tjs7OzsyMTc0OworMjE2NTtST01BTiBOVU1FUkFMIFNJWDtObDswO0w7PGNvbXBhdD4gMDA1NiAwMDQ5Ozs7NjtOOzs7OzIxNzU7CisyMTY2O1JPTUFOIE5VTUVSQUwgU0VWRU47Tmw7MDtMOzxjb21wYXQ+IDAwNTYgMDA0OSAwMDQ5Ozs7NztOOzs7OzIxNzY7CisyMTY3O1JPTUFOIE5VTUVSQUwgRUlHSFQ7Tmw7MDtMOzxjb21wYXQ+IDAwNTYgMDA0OSAwMDQ5IDAwNDk7Ozs4O047Ozs7MjE3NzsKKzIxNjg7Uk9NQU4gTlVNRVJBTCBOSU5FO05sOzA7TDs8Y29tcGF0PiAwMDQ5IDAwNTg7Ozs5O047Ozs7MjE3ODsKKzIxNjk7Uk9NQU4gTlVNRVJBTCBURU47Tmw7MDtMOzxjb21wYXQ+IDAwNTg7OzsxMDtOOzs7OzIxNzk7CisyMTZBO1JPTUFOIE5VTUVSQUwgRUxFVkVOO05sOzA7TDs8Y29tcGF0PiAwMDU4IDAwNDk7OzsxMTtOOzs7OzIxN0E7CisyMTZCO1JPTUFOIE5VTUVSQUwgVFdFTFZFO05sOzA7TDs8Y29tcGF0PiAwMDU4IDAwNDkgMDA0OTs7OzEyO047Ozs7MjE3QjsKKzIxNkM7Uk9NQU4gTlVNRVJBTCBGSUZUWTtObDswO0w7PGNvbXBhdD4gMDA0Qzs7OzUwO047Ozs7MjE3QzsKKzIxNkQ7Uk9NQU4gTlVNRVJBTCBPTkUgSFVORFJFRDtObDswO0w7PGNvbXBhdD4gMDA0Mzs7OzEwMDtOOzs7OzIxN0Q7CisyMTZFO1JPTUFOIE5VTUVSQUwgRklWRSBIVU5EUkVEO05sOzA7TDs8Y29tcGF0PiAwMDQ0Ozs7NTAwO047Ozs7MjE3RTsKKzIxNkY7Uk9NQU4gTlVNRVJBTCBPTkUgVEhPVVNBTkQ7Tmw7MDtMOzxjb21wYXQ+IDAwNEQ7OzsxMDAwO047Ozs7MjE3RjsKKzIxNzA7U01BTEwgUk9NQU4gTlVNRVJBTCBPTkU7Tmw7MDtMOzxjb21wYXQ+IDAwNjk7OzsxO047OzsyMTYwOzsyMTYwCisyMTcxO1NNQUxMIFJPTUFOIE5VTUVSQUwgVFdPO05sOzA7TDs8Y29tcGF0PiAwMDY5IDAwNjk7OzsyO047OzsyMTYxOzsyMTYxCisyMTcyO1NNQUxMIFJPTUFOIE5VTUVSQUwgVEhSRUU7Tmw7MDtMOzxjb21wYXQ+IDAwNjkgMDA2OSAwMDY5Ozs7MztOOzs7MjE2Mjs7MjE2MgorMjE3MztTTUFMTCBST01BTiBOVU1FUkFMIEZPVVI7Tmw7MDtMOzxjb21wYXQ+IDAwNjkgMDA3Njs7OzQ7Tjs7OzIxNjM7OzIxNjMKKzIxNzQ7U01BTEwgUk9NQU4gTlVNRVJBTCBGSVZFO05sOzA7TDs8Y29tcGF0PiAwMDc2Ozs7NTtOOzs7MjE2NDs7MjE2NAorMjE3NTtTTUFMTCBST01BTiBOVU1FUkFMIFNJWDtObDswO0w7PGNvbXBhdD4gMDA3NiAwMDY5Ozs7NjtOOzs7MjE2NTs7MjE2NQorMjE3NjtTTUFMTCBST01BTiBOVU1FUkFMIFNFVkVOO05sOzA7TDs8Y29tcGF0PiAwMDc2IDAwNjkgMDA2OTs7Ozc7Tjs7OzIxNjY7OzIxNjYKKzIxNzc7U01BTEwgUk9NQU4gTlVNRVJBTCBFSUdIVDtObDswO0w7PGNvbXBhdD4gMDA3NiAwMDY5IDAwNjkgMDA2OTs7Ozg7Tjs7OzIxNjc7OzIxNjcKKzIxNzg7U01BTEwgUk9NQU4gTlVNRVJBTCBOSU5FO05sOzA7TDs8Y29tcGF0PiAwMDY5IDAwNzg7Ozs5O047OzsyMTY4OzsyMTY4CisyMTc5O1NNQUxMIFJPTUFOIE5VTUVSQUwgVEVOO05sOzA7TDs8Y29tcGF0PiAwMDc4Ozs7MTA7Tjs7OzIxNjk7OzIxNjkKKzIxN0E7U01BTEwgUk9NQU4gTlVNRVJBTCBFTEVWRU47Tmw7MDtMOzxjb21wYXQ+IDAwNzggMDA2OTs7OzExO047OzsyMTZBOzsyMTZBCisyMTdCO1NNQUxMIFJPTUFOIE5VTUVSQUwgVFdFTFZFO05sOzA7TDs8Y29tcGF0PiAwMDc4IDAwNjkgMDA2OTs7OzEyO047OzsyMTZCOzsyMTZCCisyMTdDO1NNQUxMIFJPTUFOIE5VTUVSQUwgRklGVFk7Tmw7MDtMOzxjb21wYXQ+IDAwNkM7Ozs1MDtOOzs7MjE2Qzs7MjE2QworMjE3RDtTTUFMTCBST01BTiBOVU1FUkFMIE9ORSBIVU5EUkVEO05sOzA7TDs8Y29tcGF0PiAwMDYzOzs7MTAwO047OzsyMTZEOzsyMTZECisyMTdFO1NNQUxMIFJPTUFOIE5VTUVSQUwgRklWRSBIVU5EUkVEO05sOzA7TDs8Y29tcGF0PiAwMDY0Ozs7NTAwO047OzsyMTZFOzsyMTZFCisyMTdGO1NNQUxMIFJPTUFOIE5VTUVSQUwgT05FIFRIT1VTQU5EO05sOzA7TDs8Y29tcGF0PiAwMDZEOzs7MTAwMDtOOzs7MjE2Rjs7MjE2RgorMjE4MDtST01BTiBOVU1FUkFMIE9ORSBUSE9VU0FORCBDIEQ7Tmw7MDtMOzs7OzEwMDA7Tjs7Ozs7CisyMTgxO1JPTUFOIE5VTUVSQUwgRklWRSBUSE9VU0FORDtObDswO0w7Ozs7NTAwMDtOOzs7OzsKKzIxODI7Uk9NQU4gTlVNRVJBTCBURU4gVEhPVVNBTkQ7Tmw7MDtMOzs7OzEwMDAwO047Ozs7OworMjE5MDtMRUZUV0FSRFMgQVJST1c7U207MDtPTjs7Ozs7TjtMRUZUIEFSUk9XOzs7OworMjE5MTtVUFdBUkRTIEFSUk9XO1NtOzA7T047Ozs7O047VVAgQVJST1c7Ozs7CisyMTkyO1JJR0hUV0FSRFMgQVJST1c7U207MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVzs7OzsKKzIxOTM7RE9XTldBUkRTIEFSUk9XO1NtOzA7T047Ozs7O047RE9XTiBBUlJPVzs7OzsKKzIxOTQ7TEVGVCBSSUdIVCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzIxOTU7VVAgRE9XTiBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIxOTY7Tk9SVEggV0VTVCBBUlJPVztTbzswO09OOzs7OztOO1VQUEVSIExFRlQgQVJST1c7Ozs7CisyMTk3O05PUlRIIEVBU1QgQVJST1c7U287MDtPTjs7Ozs7TjtVUFBFUiBSSUdIVCBBUlJPVzs7OzsKKzIxOTg7U09VVEggRUFTVCBBUlJPVztTbzswO09OOzs7OztOO0xPV0VSIFJJR0hUIEFSUk9XOzs7OworMjE5OTtTT1VUSCBXRVNUIEFSUk9XO1NvOzA7T047Ozs7O047TE9XRVIgTEVGVCBBUlJPVzs7OzsKKzIxOUE7TEVGVFdBUkRTIEFSUk9XIFdJVEggU1RST0tFO1NvOzA7T047Ozs7O047TEVGVCBBUlJPVyBXSVRIIFNUUk9LRTs7OzsKKzIxOUI7UklHSFRXQVJEUyBBUlJPVyBXSVRIIFNUUk9LRTtTbzswO09OOzs7OztOO1JJR0hUIEFSUk9XIFdJVEggU1RST0tFOzs7OworMjE5QztMRUZUV0FSRFMgV0FWRSBBUlJPVztTbzswO09OOzs7OztOO0xFRlQgV0FWRSBBUlJPVzs7OzsKKzIxOUQ7UklHSFRXQVJEUyBXQVZFIEFSUk9XO1NvOzA7T047Ozs7O047UklHSFQgV0FWRSBBUlJPVzs7OzsKKzIxOUU7TEVGVFdBUkRTIFRXTyBIRUFERUQgQVJST1c7U287MDtPTjs7Ozs7TjtMRUZUIFRXTyBIRUFERUQgQVJST1c7Ozs7CisyMTlGO1VQV0FSRFMgVFdPIEhFQURFRCBBUlJPVztTbzswO09OOzs7OztOO1VQIFRXTyBIRUFERUQgQVJST1c7Ozs7CisyMUEwO1JJR0hUV0FSRFMgVFdPIEhFQURFRCBBUlJPVztTbzswO09OOzs7OztOO1JJR0hUIFRXTyBIRUFERUQgQVJST1c7Ozs7CisyMUExO0RPV05XQVJEUyBUV08gSEVBREVEIEFSUk9XO1NvOzA7T047Ozs7O047RE9XTiBUV08gSEVBREVEIEFSUk9XOzs7OworMjFBMjtMRUZUV0FSRFMgQVJST1cgV0lUSCBUQUlMO1NvOzA7T047Ozs7O047TEVGVCBBUlJPVyBXSVRIIFRBSUw7Ozs7CisyMUEzO1JJR0hUV0FSRFMgQVJST1cgV0lUSCBUQUlMO1NvOzA7T047Ozs7O047UklHSFQgQVJST1cgV0lUSCBUQUlMOzs7OworMjFBNDtMRUZUV0FSRFMgQVJST1cgRlJPTSBCQVI7U287MDtPTjs7Ozs7TjtMRUZUIEFSUk9XIEZST00gQkFSOzs7OworMjFBNTtVUFdBUkRTIEFSUk9XIEZST00gQkFSO1NvOzA7T047Ozs7O047VVAgQVJST1cgRlJPTSBCQVI7Ozs7CisyMUE2O1JJR0hUV0FSRFMgQVJST1cgRlJPTSBCQVI7U287MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVyBGUk9NIEJBUjs7OzsKKzIxQTc7RE9XTldBUkRTIEFSUk9XIEZST00gQkFSO1NvOzA7T047Ozs7O047RE9XTiBBUlJPVyBGUk9NIEJBUjs7OzsKKzIxQTg7VVAgRE9XTiBBUlJPVyBXSVRIIEJBU0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMUE5O0xFRlRXQVJEUyBBUlJPVyBXSVRIIEhPT0s7U287MDtPTjs7Ozs7TjtMRUZUIEFSUk9XIFdJVEggSE9PSzs7OzsKKzIxQUE7UklHSFRXQVJEUyBBUlJPVyBXSVRIIEhPT0s7U287MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVyBXSVRIIEhPT0s7Ozs7CisyMUFCO0xFRlRXQVJEUyBBUlJPVyBXSVRIIExPT1A7U287MDtPTjs7Ozs7TjtMRUZUIEFSUk9XIFdJVEggTE9PUDs7OzsKKzIxQUM7UklHSFRXQVJEUyBBUlJPVyBXSVRIIExPT1A7U287MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVyBXSVRIIExPT1A7Ozs7CisyMUFEO0xFRlQgUklHSFQgV0FWRSBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIxQUU7TEVGVCBSSUdIVCBBUlJPVyBXSVRIIFNUUk9LRTtTbzswO09OOzs7OztOOzs7OzsKKzIxQUY7RE9XTldBUkRTIFpJR1pBRyBBUlJPVztTbzswO09OOzs7OztOO0RPV04gWklHWkFHIEFSUk9XOzs7OworMjFCMDtVUFdBUkRTIEFSUk9XIFdJVEggVElQIExFRlRXQVJEUztTbzswO09OOzs7OztOO1VQIEFSUk9XIFdJVEggVElQIExFRlQ7Ozs7CisyMUIxO1VQV0FSRFMgQVJST1cgV0lUSCBUSVAgUklHSFRXQVJEUztTbzswO09OOzs7OztOO1VQIEFSUk9XIFdJVEggVElQIFJJR0hUOzs7OworMjFCMjtET1dOV0FSRFMgQVJST1cgV0lUSCBUSVAgTEVGVFdBUkRTO1NvOzA7T047Ozs7O047RE9XTiBBUlJPVyBXSVRIIFRJUCBMRUZUOzs7OworMjFCMztET1dOV0FSRFMgQVJST1cgV0lUSCBUSVAgUklHSFRXQVJEUztTbzswO09OOzs7OztOO0RPV04gQVJST1cgV0lUSCBUSVAgUklHSFQ7Ozs7CisyMUI0O1JJR0hUV0FSRFMgQVJST1cgV0lUSCBDT1JORVIgRE9XTldBUkRTO1NvOzA7T047Ozs7O047UklHSFQgQVJST1cgV0lUSCBDT1JORVIgRE9XTjs7OzsKKzIxQjU7RE9XTldBUkRTIEFSUk9XIFdJVEggQ09STkVSIExFRlRXQVJEUztTbzswO09OOzs7OztOO0RPV04gQVJST1cgV0lUSCBDT1JORVIgTEVGVDs7OzsKKzIxQjY7QU5USUNMT0NLV0lTRSBUT1AgU0VNSUNJUkNMRSBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIxQjc7Q0xPQ0tXSVNFIFRPUCBTRU1JQ0lSQ0xFIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMjFCODtOT1JUSCBXRVNUIEFSUk9XIFRPIExPTkcgQkFSO1NvOzA7T047Ozs7O047VVBQRVIgTEVGVCBBUlJPVyBUTyBMT05HIEJBUjs7OzsKKzIxQjk7TEVGVFdBUkRTIEFSUk9XIFRPIEJBUiBPVkVSIFJJR0hUV0FSRFMgQVJST1cgVE8gQkFSO1NvOzA7T047Ozs7O047TEVGVCBBUlJPVyBUTyBCQVIgT1ZFUiBSSUdIVCBBUlJPVyBUTyBCQVI7Ozs7CisyMUJBO0FOVElDTE9DS1dJU0UgT1BFTiBDSVJDTEUgQVJST1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMUJCO0NMT0NLV0lTRSBPUEVOIENJUkNMRSBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIxQkM7TEVGVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFVQV0FSRFM7U287MDtPTjs7Ozs7TjtMRUZUIEhBUlBPT04gV0lUSCBCQVJCIFVQOzs7OworMjFCRDtMRUZUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgRE9XTldBUkRTO1NvOzA7T047Ozs7O047TEVGVCBIQVJQT09OIFdJVEggQkFSQiBET1dOOzs7OworMjFCRTtVUFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFJJR0hUV0FSRFM7U287MDtPTjs7Ozs7TjtVUCBIQVJQT09OIFdJVEggQkFSQiBSSUdIVDs7OzsKKzIxQkY7VVBXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBMRUZUV0FSRFM7U287MDtPTjs7Ozs7TjtVUCBIQVJQT09OIFdJVEggQkFSQiBMRUZUOzs7OworMjFDMDtSSUdIVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFVQV0FSRFM7U287MDtPTjs7Ozs7TjtSSUdIVCBIQVJQT09OIFdJVEggQkFSQiBVUDs7OzsKKzIxQzE7UklHSFRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBET1dOV0FSRFM7U287MDtPTjs7Ozs7TjtSSUdIVCBIQVJQT09OIFdJVEggQkFSQiBET1dOOzs7OworMjFDMjtET1dOV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgUklHSFRXQVJEUztTbzswO09OOzs7OztOO0RPV04gSEFSUE9PTiBXSVRIIEJBUkIgUklHSFQ7Ozs7CisyMUMzO0RPV05XQVJEUyBIQVJQT09OIFdJVEggQkFSQiBMRUZUV0FSRFM7U287MDtPTjs7Ozs7TjtET1dOIEhBUlBPT04gV0lUSCBCQVJCIExFRlQ7Ozs7CisyMUM0O1JJR0hUV0FSRFMgQVJST1cgT1ZFUiBMRUZUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVyBPVkVSIExFRlQgQVJST1c7Ozs7CisyMUM1O1VQV0FSRFMgQVJST1cgTEVGVFdBUkRTIE9GIERPV05XQVJEUyBBUlJPVztTbzswO09OOzs7OztOO1VQIEFSUk9XIExFRlQgT0YgRE9XTiBBUlJPVzs7OzsKKzIxQzY7TEVGVFdBUkRTIEFSUk9XIE9WRVIgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0xFRlQgQVJST1cgT1ZFUiBSSUdIVCBBUlJPVzs7OzsKKzIxQzc7TEVGVFdBUkRTIFBBSVJFRCBBUlJPV1M7U287MDtPTjs7Ozs7TjtMRUZUIFBBSVJFRCBBUlJPV1M7Ozs7CisyMUM4O1VQV0FSRFMgUEFJUkVEIEFSUk9XUztTbzswO09OOzs7OztOO1VQIFBBSVJFRCBBUlJPV1M7Ozs7CisyMUM5O1JJR0hUV0FSRFMgUEFJUkVEIEFSUk9XUztTbzswO09OOzs7OztOO1JJR0hUIFBBSVJFRCBBUlJPV1M7Ozs7CisyMUNBO0RPV05XQVJEUyBQQUlSRUQgQVJST1dTO1NvOzA7T047Ozs7O047RE9XTiBQQUlSRUQgQVJST1dTOzs7OworMjFDQjtMRUZUV0FSRFMgSEFSUE9PTiBPVkVSIFJJR0hUV0FSRFMgSEFSUE9PTjtTbzswO09OOzs7OztOO0xFRlQgSEFSUE9PTiBPVkVSIFJJR0hUIEhBUlBPT047Ozs7CisyMUNDO1JJR0hUV0FSRFMgSEFSUE9PTiBPVkVSIExFRlRXQVJEUyBIQVJQT09OO1NvOzA7T047Ozs7O047UklHSFQgSEFSUE9PTiBPVkVSIExFRlQgSEFSUE9PTjs7OzsKKzIxQ0Q7TEVGVFdBUkRTIERPVUJMRSBBUlJPVyBXSVRIIFNUUk9LRTtTbzswO09OOzs7OztOO0xFRlQgRE9VQkxFIEFSUk9XIFdJVEggU1RST0tFOzs7OworMjFDRTtMRUZUIFJJR0hUIERPVUJMRSBBUlJPVyBXSVRIIFNUUk9LRTtTbzswO09OOzs7OztOOzs7OzsKKzIxQ0Y7UklHSFRXQVJEUyBET1VCTEUgQVJST1cgV0lUSCBTVFJPS0U7U287MDtPTjs7Ozs7TjtSSUdIVCBET1VCTEUgQVJST1cgV0lUSCBTVFJPS0U7Ozs7CisyMUQwO0xFRlRXQVJEUyBET1VCTEUgQVJST1c7U287MDtPTjs7Ozs7TjtMRUZUIERPVUJMRSBBUlJPVzs7OzsKKzIxRDE7VVBXQVJEUyBET1VCTEUgQVJST1c7U287MDtPTjs7Ozs7TjtVUCBET1VCTEUgQVJST1c7Ozs7CisyMUQyO1JJR0hUV0FSRFMgRE9VQkxFIEFSUk9XO1NtOzA7T047Ozs7O047UklHSFQgRE9VQkxFIEFSUk9XOzs7OworMjFEMztET1dOV0FSRFMgRE9VQkxFIEFSUk9XO1NvOzA7T047Ozs7O047RE9XTiBET1VCTEUgQVJST1c7Ozs7CisyMUQ0O0xFRlQgUklHSFQgRE9VQkxFIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjFENTtVUCBET1dOIERPVUJMRSBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIxRDY7Tk9SVEggV0VTVCBET1VCTEUgQVJST1c7U287MDtPTjs7Ozs7TjtVUFBFUiBMRUZUIERPVUJMRSBBUlJPVzs7OzsKKzIxRDc7Tk9SVEggRUFTVCBET1VCTEUgQVJST1c7U287MDtPTjs7Ozs7TjtVUFBFUiBSSUdIVCBET1VCTEUgQVJST1c7Ozs7CisyMUQ4O1NPVVRIIEVBU1QgRE9VQkxFIEFSUk9XO1NvOzA7T047Ozs7O047TE9XRVIgUklHSFQgRE9VQkxFIEFSUk9XOzs7OworMjFEOTtTT1VUSCBXRVNUIERPVUJMRSBBUlJPVztTbzswO09OOzs7OztOO0xPV0VSIExFRlQgRE9VQkxFIEFSUk9XOzs7OworMjFEQTtMRUZUV0FSRFMgVFJJUExFIEFSUk9XO1NvOzA7T047Ozs7O047TEVGVCBUUklQTEUgQVJST1c7Ozs7CisyMURCO1JJR0hUV0FSRFMgVFJJUExFIEFSUk9XO1NvOzA7T047Ozs7O047UklHSFQgVFJJUExFIEFSUk9XOzs7OworMjFEQztMRUZUV0FSRFMgU1FVSUdHTEUgQVJST1c7U287MDtPTjs7Ozs7TjtMRUZUIFNRVUlHR0xFIEFSUk9XOzs7OworMjFERDtSSUdIVFdBUkRTIFNRVUlHR0xFIEFSUk9XO1NvOzA7T047Ozs7O047UklHSFQgU1FVSUdHTEUgQVJST1c7Ozs7CisyMURFO1VQV0FSRFMgQVJST1cgV0lUSCBET1VCTEUgU1RST0tFO1NvOzA7T047Ozs7O047VVAgQVJST1cgV0lUSCBET1VCTEUgU1RST0tFOzs7OworMjFERjtET1dOV0FSRFMgQVJST1cgV0lUSCBET1VCTEUgU1RST0tFO1NvOzA7T047Ozs7O047RE9XTiBBUlJPVyBXSVRIIERPVUJMRSBTVFJPS0U7Ozs7CisyMUUwO0xFRlRXQVJEUyBEQVNIRUQgQVJST1c7U287MDtPTjs7Ozs7TjtMRUZUIERBU0hFRCBBUlJPVzs7OzsKKzIxRTE7VVBXQVJEUyBEQVNIRUQgQVJST1c7U287MDtPTjs7Ozs7TjtVUCBEQVNIRUQgQVJST1c7Ozs7CisyMUUyO1JJR0hUV0FSRFMgREFTSEVEIEFSUk9XO1NvOzA7T047Ozs7O047UklHSFQgREFTSEVEIEFSUk9XOzs7OworMjFFMztET1dOV0FSRFMgREFTSEVEIEFSUk9XO1NvOzA7T047Ozs7O047RE9XTiBEQVNIRUQgQVJST1c7Ozs7CisyMUU0O0xFRlRXQVJEUyBBUlJPVyBUTyBCQVI7U287MDtPTjs7Ozs7TjtMRUZUIEFSUk9XIFRPIEJBUjs7OzsKKzIxRTU7UklHSFRXQVJEUyBBUlJPVyBUTyBCQVI7U287MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVyBUTyBCQVI7Ozs7CisyMUU2O0xFRlRXQVJEUyBXSElURSBBUlJPVztTbzswO09OOzs7OztOO1dISVRFIExFRlQgQVJST1c7Ozs7CisyMUU3O1VQV0FSRFMgV0hJVEUgQVJST1c7U287MDtPTjs7Ozs7TjtXSElURSBVUCBBUlJPVzs7OzsKKzIxRTg7UklHSFRXQVJEUyBXSElURSBBUlJPVztTbzswO09OOzs7OztOO1dISVRFIFJJR0hUIEFSUk9XOzs7OworMjFFOTtET1dOV0FSRFMgV0hJVEUgQVJST1c7U287MDtPTjs7Ozs7TjtXSElURSBET1dOIEFSUk9XOzs7OworMjFFQTtVUFdBUkRTIFdISVRFIEFSUk9XIEZST00gQkFSO1NvOzA7T047Ozs7O047V0hJVEUgVVAgQVJST1cgRlJPTSBCQVI7Ozs7CisyMjAwO0ZPUiBBTEw7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjAxO0NPTVBMRU1FTlQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjAyO1BBUlRJQUwgRElGRkVSRU5USUFMO1NtOzA7T047Ozs7O1k7Ozs7OworMjIwMztUSEVSRSBFWElTVFM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjA0O1RIRVJFIERPRVMgTk9UIEVYSVNUO1NtOzA7T047MjIwMyAwMzM4Ozs7O1k7Ozs7OworMjIwNTtFTVBUWSBTRVQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjA2O0lOQ1JFTUVOVDtTbTswO09OOzs7OztOOzs7OzsKKzIyMDc7TkFCTEE7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjA4O0VMRU1FTlQgT0Y7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjA5O05PVCBBTiBFTEVNRU5UIE9GO1NtOzA7T047MjIwOCAwMzM4Ozs7O1k7Ozs7OworMjIwQTtTTUFMTCBFTEVNRU5UIE9GO1NtOzA7T047Ozs7O1k7Ozs7OworMjIwQjtDT05UQUlOUyBBUyBNRU1CRVI7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjBDO0RPRVMgTk9UIENPTlRBSU4gQVMgTUVNQkVSO1NtOzA7T047MjIwQiAwMzM4Ozs7O1k7Ozs7OworMjIwRDtTTUFMTCBDT05UQUlOUyBBUyBNRU1CRVI7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjBFO0VORCBPRiBQUk9PRjtTbTswO09OOzs7OztOOzs7OzsKKzIyMEY7Ti1BUlkgUFJPRFVDVDtTbTswO09OOzs7OztOOzs7OzsKKzIyMTA7Ti1BUlkgQ09QUk9EVUNUO1NtOzA7T047Ozs7O047Ozs7OworMjIxMTtOLUFSWSBTVU1NQVRJT047U207MDtPTjs7Ozs7WTs7Ozs7CisyMjEyO01JTlVTIFNJR047U207MDtFVDs7Ozs7Tjs7Ozs7CisyMjEzO01JTlVTLU9SLVBMVVMgU0lHTjtTbTswO0VUOzs7OztOOzs7OzsKKzIyMTQ7RE9UIFBMVVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjE1O0RJVklTSU9OIFNMQVNIO1NtOzA7T047Ozs7O1k7Ozs7OworMjIxNjtTRVQgTUlOVVM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjE3O0FTVEVSSVNLIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjIxODtSSU5HIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjIxOTtCVUxMRVQgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjFBO1NRVUFSRSBST09UO1NtOzA7T047Ozs7O1k7Ozs7OworMjIxQjtDVUJFIFJPT1Q7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjFDO0ZPVVJUSCBST09UO1NtOzA7T047Ozs7O1k7Ozs7OworMjIxRDtQUk9QT1JUSU9OQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjFFO0lORklOSVRZO1NtOzA7T047Ozs7O047Ozs7OworMjIxRjtSSUdIVCBBTkdMRTtTbTswO09OOzs7OztZOzs7OzsKKzIyMjA7QU5HTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjIxO01FQVNVUkVEIEFOR0xFO1NtOzA7T047Ozs7O1k7Ozs7OworMjIyMjtTUEhFUklDQUwgQU5HTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjIzO0RJVklERVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjI0O0RPRVMgTk9UIERJVklERTtTbTswO09OOzIyMjMgMDMzODs7OztZOzs7OzsKKzIyMjU7UEFSQUxMRUwgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjI2O05PVCBQQVJBTExFTCBUTztTbTswO09OOzIyMjUgMDMzODs7OztZOzs7OzsKKzIyMjc7TE9HSUNBTCBBTkQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjI4O0xPR0lDQUwgT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjI5O0lOVEVSU0VDVElPTjtTbTswO09OOzs7OztOOzs7OzsKKzIyMkE7VU5JT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjJCO0lOVEVHUkFMO1NtOzA7T047Ozs7O1k7Ozs7OworMjIyQztET1VCTEUgSU5URUdSQUw7U207MDtPTjs8Y29tcGF0PiAyMjJCIDIyMkI7Ozs7WTs7Ozs7CisyMjJEO1RSSVBMRSBJTlRFR1JBTDtTbTswO09OOzxjb21wYXQ+IDIyMkIgMjIyQiAyMjJCOzs7O1k7Ozs7OworMjIyRTtDT05UT1VSIElOVEVHUkFMO1NtOzA7T047Ozs7O1k7Ozs7OworMjIyRjtTVVJGQUNFIElOVEVHUkFMO1NtOzA7T047PGNvbXBhdD4gMjIyRSAyMjJFOzs7O1k7Ozs7OworMjIzMDtWT0xVTUUgSU5URUdSQUw7U207MDtPTjs8Y29tcGF0PiAyMjJFIDIyMkUgMjIyRTs7OztZOzs7OzsKKzIyMzE7Q0xPQ0tXSVNFIElOVEVHUkFMO1NtOzA7T047Ozs7O1k7Ozs7OworMjIzMjtDTE9DS1dJU0UgQ09OVE9VUiBJTlRFR1JBTDtTbTswO09OOzs7OztZOzs7OzsKKzIyMzM7QU5USUNMT0NLV0lTRSBDT05UT1VSIElOVEVHUkFMO1NtOzA7T047Ozs7O1k7Ozs7OworMjIzNDtUSEVSRUZPUkU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjM1O0JFQ0FVU0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjM2O1JBVElPO1NtOzA7T047Ozs7O047Ozs7OworMjIzNztQUk9QT1JUSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjIzODtET1QgTUlOVVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjM5O0VYQ0VTUztTbTswO09OOzs7OztZOzs7OzsKKzIyM0E7R0VPTUVUUklDIFBST1BPUlRJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjNCO0hPTU9USEVUSUM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjNDO1RJTERFIE9QRVJBVE9SO1NtOzA7T047Ozs7O1k7Ozs7OworMjIzRDtSRVZFUlNFRCBUSUxERTtTbTswO09OOzs7OztZOzs7OzsKKzIyM0U7SU5WRVJURUQgTEFaWSBTO1NtOzA7T047Ozs7O1k7Ozs7OworMjIzRjtTSU5FIFdBVkU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjQwO1dSRUFUSCBQUk9EVUNUO1NtOzA7T047Ozs7O1k7Ozs7OworMjI0MTtOT1QgVElMREU7U207MDtPTjswMDdFIDAzMzg7Ozs7WTs7Ozs7CisyMjQyO01JTlVTIFRJTERFO1NtOzA7T047Ozs7O1k7Ozs7OworMjI0MztBU1lNUFRPVElDQUxMWSBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyNDQ7Tk9UIEFTWU1QVE9USUNBTExZIEVRVUFMIFRPO1NtOzA7T047MjI0MyAwMzM4Ozs7O1k7Ozs7OworMjI0NTtBUFBST1hJTUFURUxZIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI0NjtBUFBST1hJTUFURUxZIEJVVCBOT1QgQUNUVUFMTFkgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjQ3O05FSVRIRVIgQVBQUk9YSU1BVEVMWSBOT1IgQUNUVUFMTFkgRVFVQUwgVE87U207MDtPTjsyMjQ1IDAzMzg7Ozs7WTs7Ozs7CisyMjQ4O0FMTU9TVCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyNDk7Tk9UIEFMTU9TVCBFUVVBTCBUTztTbTswO09OOzIyNDggMDMzODs7OztZOzs7OzsKKzIyNEE7QUxNT1NUIEVRVUFMIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI0QjtUUklQTEUgVElMREU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjRDO0FMTCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyNEQ7RVFVSVZBTEVOVCBUTztTbTswO09OOzs7OztOOzs7OzsKKzIyNEU7R0VPTUVUUklDQUxMWSBFUVVJVkFMRU5UIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjI0RjtESUZGRVJFTkNFIEJFVFdFRU47U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjUwO0FQUFJPQUNIRVMgVEhFIExJTUlUO1NtOzA7T047Ozs7O047Ozs7OworMjI1MTtHRU9NRVRSSUNBTExZIEVRVUFMIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjI1MjtBUFBST1hJTUFURUxZIEVRVUFMIFRPIE9SIFRIRSBJTUFHRSBPRjtTbTswO09OOzs7OztZOzs7OzsKKzIyNTM7SU1BR0UgT0YgT1IgQVBQUk9YSU1BVEVMWSBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyNTQ7Q09MT04gRVFVQUxTO1NtOzA7T047Ozs7O1k7Q09MT04gRVFVQUw7Ozs7CisyMjU1O0VRVUFMUyBDT0xPTjtTbTswO09OOzs7OztZO0VRVUFMIENPTE9OOzs7OworMjI1NjtSSU5HIElOIEVRVUFMIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjI1NztSSU5HIEVRVUFMIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjI1ODtDT1JSRVNQT05EUyBUTztTbTswO09OOzs7OztOOzs7OzsKKzIyNTk7RVNUSU1BVEVTO1NtOzA7T047Ozs7O047Ozs7OworMjI1QTtFUVVJQU5HVUxBUiBUTztTbTswO09OOzs7OztOOzs7OzsKKzIyNUI7U1RBUiBFUVVBTFM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjVDO0RFTFRBIEVRVUFMIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjI1RDtFUVVBTCBUTyBCWSBERUZJTklUSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjI1RTtNRUFTVVJFRCBCWTtTbTswO09OOzs7OztOOzs7OzsKKzIyNUY7UVVFU1RJT05FRCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyNjA7Tk9UIEVRVUFMIFRPO1NtOzA7T047MDAzRCAwMzM4Ozs7O1k7Ozs7OworMjI2MTtJREVOVElDQUwgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjYyO05PVCBJREVOVElDQUwgVE87U207MDtPTjsyMjYxIDAzMzg7Ozs7WTs7Ozs7CisyMjYzO1NUUklDVExZIEVRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjY0O0xFU1MtVEhBTiBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZO0xFU1MgVEhBTiBPUiBFUVVBTCBUTzs7OzsKKzIyNjU7R1JFQVRFUi1USEFOIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7R1JFQVRFUiBUSEFOIE9SIEVRVUFMIFRPOzs7OworMjI2NjtMRVNTLVRIQU4gT1ZFUiBFUVVBTCBUTztTbTswO09OOzs7OztZO0xFU1MgVEhBTiBPVkVSIEVRVUFMIFRPOzs7OworMjI2NztHUkVBVEVSLVRIQU4gT1ZFUiBFUVVBTCBUTztTbTswO09OOzs7OztZO0dSRUFURVIgVEhBTiBPVkVSIEVRVUFMIFRPOzs7OworMjI2ODtMRVNTLVRIQU4gQlVUIE5PVCBFUVVBTCBUTztTbTswO09OOzs7OztZO0xFU1MgVEhBTiBCVVQgTk9UIEVRVUFMIFRPOzs7OworMjI2OTtHUkVBVEVSLVRIQU4gQlVUIE5PVCBFUVVBTCBUTztTbTswO09OOzs7OztZO0dSRUFURVIgVEhBTiBCVVQgTk9UIEVRVUFMIFRPOzs7OworMjI2QTtNVUNIIExFU1MtVEhBTjtTbTswO09OOzs7OztZO01VQ0ggTEVTUyBUSEFOOzs7OworMjI2QjtNVUNIIEdSRUFURVItVEhBTjtTbTswO09OOzs7OztZO01VQ0ggR1JFQVRFUiBUSEFOOzs7OworMjI2QztCRVRXRUVOO1NtOzA7T047Ozs7O047Ozs7OworMjI2RDtOT1QgRVFVSVZBTEVOVCBUTztTbTswO09OOzIyNEQgMDMzODs7OztOOzs7OzsKKzIyNkU7Tk9UIExFU1MtVEhBTjtTbTswO09OOzAwM0MgMDMzODs7OztZO05PVCBMRVNTIFRIQU47Ozs7CisyMjZGO05PVCBHUkVBVEVSLVRIQU47U207MDtPTjswMDNFIDAzMzg7Ozs7WTtOT1QgR1JFQVRFUiBUSEFOOzs7OworMjI3MDtORUlUSEVSIExFU1MtVEhBTiBOT1IgRVFVQUwgVE87U207MDtPTjsyMjY0IDAzMzg7Ozs7WTtORUlUSEVSIExFU1MgVEhBTiBOT1IgRVFVQUwgVE87Ozs7CisyMjcxO05FSVRIRVIgR1JFQVRFUi1USEFOIE5PUiBFUVVBTCBUTztTbTswO09OOzIyNjUgMDMzODs7OztZO05FSVRIRVIgR1JFQVRFUiBUSEFOIE5PUiBFUVVBTCBUTzs7OzsKKzIyNzI7TEVTUy1USEFOIE9SIEVRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7WTtMRVNTIFRIQU4gT1IgRVFVSVZBTEVOVCBUTzs7OzsKKzIyNzM7R1JFQVRFUi1USEFOIE9SIEVRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7WTtHUkVBVEVSIFRIQU4gT1IgRVFVSVZBTEVOVCBUTzs7OzsKKzIyNzQ7TkVJVEhFUiBMRVNTLVRIQU4gTk9SIEVRVUlWQUxFTlQgVE87U207MDtPTjsyMjcyIDAzMzg7Ozs7WTtORUlUSEVSIExFU1MgVEhBTiBOT1IgRVFVSVZBTEVOVCBUTzs7OzsKKzIyNzU7TkVJVEhFUiBHUkVBVEVSLVRIQU4gTk9SIEVRVUlWQUxFTlQgVE87U207MDtPTjsyMjczIDAzMzg7Ozs7WTtORUlUSEVSIEdSRUFURVIgVEhBTiBOT1IgRVFVSVZBTEVOVCBUTzs7OzsKKzIyNzY7TEVTUy1USEFOIE9SIEdSRUFURVItVEhBTjtTbTswO09OOzs7OztZO0xFU1MgVEhBTiBPUiBHUkVBVEVSIFRIQU47Ozs7CisyMjc3O0dSRUFURVItVEhBTiBPUiBMRVNTLVRIQU47U207MDtPTjs7Ozs7WTtHUkVBVEVSIFRIQU4gT1IgTEVTUyBUSEFOOzs7OworMjI3ODtORUlUSEVSIExFU1MtVEhBTiBOT1IgR1JFQVRFUi1USEFOO1NtOzA7T047MjI3NiAwMzM4Ozs7O1k7TkVJVEhFUiBMRVNTIFRIQU4gTk9SIEdSRUFURVIgVEhBTjs7OzsKKzIyNzk7TkVJVEhFUiBHUkVBVEVSLVRIQU4gTk9SIExFU1MtVEhBTjtTbTswO09OOzIyNzcgMDMzODs7OztZO05FSVRIRVIgR1JFQVRFUiBUSEFOIE5PUiBMRVNTIFRIQU47Ozs7CisyMjdBO1BSRUNFREVTO1NtOzA7T047Ozs7O1k7Ozs7OworMjI3QjtTVUNDRUVEUztTbTswO09OOzs7OztZOzs7OzsKKzIyN0M7UFJFQ0VERVMgT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjdEO1NVQ0NFRURTIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI3RTtQUkVDRURFUyBPUiBFUVVJVkFMRU5UIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI3RjtTVUNDRUVEUyBPUiBFUVVJVkFMRU5UIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI4MDtET0VTIE5PVCBQUkVDRURFO1NtOzA7T047MjI3QSAwMzM4Ozs7O1k7Ozs7OworMjI4MTtET0VTIE5PVCBTVUNDRUVEO1NtOzA7T047MjI3QiAwMzM4Ozs7O1k7Ozs7OworMjI4MjtTVUJTRVQgT0Y7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjgzO1NVUEVSU0VUIE9GO1NtOzA7T047Ozs7O1k7Ozs7OworMjI4NDtOT1QgQSBTVUJTRVQgT0Y7U207MDtPTjsyMjgyIDAzMzg7Ozs7WTs7Ozs7CisyMjg1O05PVCBBIFNVUEVSU0VUIE9GO1NtOzA7T047MjI4MyAwMzM4Ozs7O1k7Ozs7OworMjI4NjtTVUJTRVQgT0YgT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjg3O1NVUEVSU0VUIE9GIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI4ODtORUlUSEVSIEEgU1VCU0VUIE9GIE5PUiBFUVVBTCBUTztTbTswO09OOzIyODYgMDMzODs7OztZOzs7OzsKKzIyODk7TkVJVEhFUiBBIFNVUEVSU0VUIE9GIE5PUiBFUVVBTCBUTztTbTswO09OOzIyODcgMDMzODs7OztZOzs7OzsKKzIyOEE7U1VCU0VUIE9GIFdJVEggTk9UIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7U1VCU0VUIE9GIE9SIE5PVCBFUVVBTCBUTzs7OzsKKzIyOEI7U1VQRVJTRVQgT0YgV0lUSCBOT1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTtTVVBFUlNFVCBPRiBPUiBOT1QgRVFVQUwgVE87Ozs7CisyMjhDO01VTFRJU0VUO1NtOzA7T047Ozs7O1k7Ozs7OworMjI4RDtNVUxUSVNFVCBNVUxUSVBMSUNBVElPTjtTbTswO09OOzs7OztOOzs7OzsKKzIyOEU7TVVMVElTRVQgVU5JT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjhGO1NRVUFSRSBJTUFHRSBPRjtTbTswO09OOzs7OztZOzs7OzsKKzIyOTA7U1FVQVJFIE9SSUdJTkFMIE9GO1NtOzA7T047Ozs7O1k7Ozs7OworMjI5MTtTUVVBUkUgSU1BR0UgT0YgT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjkyO1NRVUFSRSBPUklHSU5BTCBPRiBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyOTM7U1FVQVJFIENBUDtTbTswO09OOzs7OztOOzs7OzsKKzIyOTQ7U1FVQVJFIENVUDtTbTswO09OOzs7OztOOzs7OzsKKzIyOTU7Q0lSQ0xFRCBQTFVTO1NtOzA7T047Ozs7O047Ozs7OworMjI5NjtDSVJDTEVEIE1JTlVTO1NtOzA7T047Ozs7O047Ozs7OworMjI5NztDSVJDTEVEIFRJTUVTO1NtOzA7T047Ozs7O047Ozs7OworMjI5ODtDSVJDTEVEIERJVklTSU9OIFNMQVNIO1NtOzA7T047Ozs7O1k7Ozs7OworMjI5OTtDSVJDTEVEIERPVCBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzIyOUE7Q0lSQ0xFRCBSSU5HIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjI5QjtDSVJDTEVEIEFTVEVSSVNLIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjI5QztDSVJDTEVEIEVRVUFMUztTbTswO09OOzs7OztOOzs7OzsKKzIyOUQ7Q0lSQ0xFRCBEQVNIO1NtOzA7T047Ozs7O047Ozs7OworMjI5RTtTUVVBUkVEIFBMVVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjlGO1NRVUFSRUQgTUlOVVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkEwO1NRVUFSRUQgVElNRVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkExO1NRVUFSRUQgRE9UIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjJBMjtSSUdIVCBUQUNLO1NtOzA7T047Ozs7O1k7Ozs7OworMjJBMztMRUZUIFRBQ0s7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkE0O0RPV04gVEFDSztTbTswO09OOzs7OztOOzs7OzsKKzIyQTU7VVAgVEFDSztTbTswO09OOzs7OztOOzs7OzsKKzIyQTY7QVNTRVJUSU9OO1NtOzA7T047Ozs7O1k7Ozs7OworMjJBNztNT0RFTFM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkE4O1RSVUU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkE5O0ZPUkNFUztTbTswO09OOzs7OztZOzs7OzsKKzIyQUE7VFJJUExFIFZFUlRJQ0FMIEJBUiBSSUdIVCBUVVJOU1RJTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkFCO0RPVUJMRSBWRVJUSUNBTCBCQVIgRE9VQkxFIFJJR0hUIFRVUk5TVElMRTtTbTswO09OOzs7OztZOzs7OzsKKzIyQUM7RE9FUyBOT1QgUFJPVkU7U207MDtPTjsyMkEyIDAzMzg7Ozs7WTs7Ozs7CisyMkFEO05PVCBUUlVFO1NtOzA7T047MjJBOCAwMzM4Ozs7O1k7Ozs7OworMjJBRTtET0VTIE5PVCBGT1JDRTtTbTswO09OOzIyQTkgMDMzODs7OztZOzs7OzsKKzIyQUY7TkVHQVRFRCBET1VCTEUgVkVSVElDQUwgQkFSIERPVUJMRSBSSUdIVCBUVVJOU1RJTEU7U207MDtPTjsyMkFCIDAzMzg7Ozs7WTs7Ozs7CisyMkIwO1BSRUNFREVTIFVOREVSIFJFTEFUSU9OO1NtOzA7T047Ozs7O1k7Ozs7OworMjJCMTtTVUNDRUVEUyBVTkRFUiBSRUxBVElPTjtTbTswO09OOzs7OztZOzs7OzsKKzIyQjI7Tk9STUFMIFNVQkdST1VQIE9GO1NtOzA7T047Ozs7O1k7Ozs7OworMjJCMztDT05UQUlOUyBBUyBOT1JNQUwgU1VCR1JPVVA7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkI0O05PUk1BTCBTVUJHUk9VUCBPRiBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyQjU7Q09OVEFJTlMgQVMgTk9STUFMIFNVQkdST1VQIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjJCNjtPUklHSU5BTCBPRjtTbTswO09OOzs7OztZOzs7OzsKKzIyQjc7SU1BR0UgT0Y7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkI4O01VTFRJTUFQO1NtOzA7T047Ozs7O1k7Ozs7OworMjJCOTtIRVJNSVRJQU4gQ09OSlVHQVRFIE1BVFJJWDtTbTswO09OOzs7OztOOzs7OzsKKzIyQkE7SU5URVJDQUxBVEU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkJCO1hPUjtTbTswO09OOzs7OztOOzs7OzsKKzIyQkM7TkFORDtTbTswO09OOzs7OztOOzs7OzsKKzIyQkQ7Tk9SO1NtOzA7T047Ozs7O047Ozs7OworMjJCRTtSSUdIVCBBTkdMRSBXSVRIIEFSQztTbTswO09OOzs7OztZOzs7OzsKKzIyQkY7UklHSFQgVFJJQU5HTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkMwO04tQVJZIExPR0lDQUwgQU5EO1NtOzA7T047Ozs7O047Ozs7OworMjJDMTtOLUFSWSBMT0dJQ0FMIE9SO1NtOzA7T047Ozs7O047Ozs7OworMjJDMjtOLUFSWSBJTlRFUlNFQ1RJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkMzO04tQVJZIFVOSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjJDNDtESUFNT05EIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjJDNTtET1QgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkM2O1NUQVIgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkM3O0RJVklTSU9OIFRJTUVTO1NtOzA7T047Ozs7O047Ozs7OworMjJDODtCT1dUSUU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkM5O0xFRlQgTk9STUFMIEZBQ1RPUiBTRU1JRElSRUNUIFBST0RVQ1Q7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkNBO1JJR0hUIE5PUk1BTCBGQUNUT1IgU0VNSURJUkVDVCBQUk9EVUNUO1NtOzA7T047Ozs7O1k7Ozs7OworMjJDQjtMRUZUIFNFTUlESVJFQ1QgUFJPRFVDVDtTbTswO09OOzs7OztZOzs7OzsKKzIyQ0M7UklHSFQgU0VNSURJUkVDVCBQUk9EVUNUO1NtOzA7T047Ozs7O1k7Ozs7OworMjJDRDtSRVZFUlNFRCBUSUxERSBFUVVBTFM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkNFO0NVUkxZIExPR0lDQUwgT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkNGO0NVUkxZIExPR0lDQUwgQU5EO1NtOzA7T047Ozs7O047Ozs7OworMjJEMDtET1VCTEUgU1VCU0VUO1NtOzA7T047Ozs7O1k7Ozs7OworMjJEMTtET1VCTEUgU1VQRVJTRVQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkQyO0RPVUJMRSBJTlRFUlNFQ1RJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkQzO0RPVUJMRSBVTklPTjtTbTswO09OOzs7OztOOzs7OzsKKzIyRDQ7UElUQ0hGT1JLO1NtOzA7T047Ozs7O047Ozs7OworMjJENTtFUVVBTCBBTkQgUEFSQUxMRUwgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkQ2O0xFU1MtVEhBTiBXSVRIIERPVDtTbTswO09OOzs7OztZO0xFU1MgVEhBTiBXSVRIIERPVDs7OzsKKzIyRDc7R1JFQVRFUi1USEFOIFdJVEggRE9UO1NtOzA7T047Ozs7O1k7R1JFQVRFUiBUSEFOIFdJVEggRE9UOzs7OworMjJEODtWRVJZIE1VQ0ggTEVTUy1USEFOO1NtOzA7T047Ozs7O1k7VkVSWSBNVUNIIExFU1MgVEhBTjs7OzsKKzIyRDk7VkVSWSBNVUNIIEdSRUFURVItVEhBTjtTbTswO09OOzs7OztZO1ZFUlkgTVVDSCBHUkVBVEVSIFRIQU47Ozs7CisyMkRBO0xFU1MtVEhBTiBFUVVBTCBUTyBPUiBHUkVBVEVSLVRIQU47U207MDtPTjs7Ozs7WTtMRVNTIFRIQU4gRVFVQUwgVE8gT1IgR1JFQVRFUiBUSEFOOzs7OworMjJEQjtHUkVBVEVSLVRIQU4gRVFVQUwgVE8gT1IgTEVTUy1USEFOO1NtOzA7T047Ozs7O1k7R1JFQVRFUiBUSEFOIEVRVUFMIFRPIE9SIExFU1MgVEhBTjs7OzsKKzIyREM7RVFVQUwgVE8gT1IgTEVTUy1USEFOO1NtOzA7T047Ozs7O1k7RVFVQUwgVE8gT1IgTEVTUyBUSEFOOzs7OworMjJERDtFUVVBTCBUTyBPUiBHUkVBVEVSLVRIQU47U207MDtPTjs7Ozs7WTtFUVVBTCBUTyBPUiBHUkVBVEVSIFRIQU47Ozs7CisyMkRFO0VRVUFMIFRPIE9SIFBSRUNFREVTO1NtOzA7T047Ozs7O1k7Ozs7OworMjJERjtFUVVBTCBUTyBPUiBTVUNDRUVEUztTbTswO09OOzs7OztZOzs7OzsKKzIyRTA7RE9FUyBOT1QgUFJFQ0VERSBPUiBFUVVBTDtTbTswO09OOzIyN0MgMDMzODs7OztZOzs7OzsKKzIyRTE7RE9FUyBOT1QgU1VDQ0VFRCBPUiBFUVVBTDtTbTswO09OOzIyN0QgMDMzODs7OztZOzs7OzsKKzIyRTI7Tk9UIFNRVUFSRSBJTUFHRSBPRiBPUiBFUVVBTCBUTztTbTswO09OOzIyOTEgMDMzODs7OztZOzs7OzsKKzIyRTM7Tk9UIFNRVUFSRSBPUklHSU5BTCBPRiBPUiBFUVVBTCBUTztTbTswO09OOzIyOTIgMDMzODs7OztZOzs7OzsKKzIyRTQ7U1FVQVJFIElNQUdFIE9GIE9SIE5PVCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyRTU7U1FVQVJFIE9SSUdJTkFMIE9GIE9SIE5PVCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyRTY7TEVTUy1USEFOIEJVVCBOT1QgRVFVSVZBTEVOVCBUTztTbTswO09OOzs7OztZO0xFU1MgVEhBTiBCVVQgTk9UIEVRVUlWQUxFTlQgVE87Ozs7CisyMkU3O0dSRUFURVItVEhBTiBCVVQgTk9UIEVRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7WTtHUkVBVEVSIFRIQU4gQlVUIE5PVCBFUVVJVkFMRU5UIFRPOzs7OworMjJFODtQUkVDRURFUyBCVVQgTk9UIEVRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMkU5O1NVQ0NFRURTIEJVVCBOT1QgRVFVSVZBTEVOVCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyRUE7Tk9UIE5PUk1BTCBTVUJHUk9VUCBPRjtTbTswO09OOzIyQjIgMDMzODs7OztZOzs7OzsKKzIyRUI7RE9FUyBOT1QgQ09OVEFJTiBBUyBOT1JNQUwgU1VCR1JPVVA7U207MDtPTjsyMkIzIDAzMzg7Ozs7WTs7Ozs7CisyMkVDO05PVCBOT1JNQUwgU1VCR1JPVVAgT0YgT1IgRVFVQUwgVE87U207MDtPTjsyMkI0IDAzMzg7Ozs7WTs7Ozs7CisyMkVEO0RPRVMgTk9UIENPTlRBSU4gQVMgTk9STUFMIFNVQkdST1VQIE9SIEVRVUFMO1NtOzA7T047MjJCNSAwMzM4Ozs7O1k7Ozs7OworMjJFRTtWRVJUSUNBTCBFTExJUFNJUztTbTswO09OOzs7OztOOzs7OzsKKzIyRUY7TUlETElORSBIT1JJWk9OVEFMIEVMTElQU0lTO1NtOzA7T047Ozs7O047Ozs7OworMjJGMDtVUCBSSUdIVCBESUFHT05BTCBFTExJUFNJUztTbTswO09OOzs7OztZOzs7OzsKKzIyRjE7RE9XTiBSSUdIVCBESUFHT05BTCBFTExJUFNJUztTbTswO09OOzs7OztZOzs7OzsKKzIzMDA7RElBTUVURVIgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzIzMDI7SE9VU0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzAzO1VQIEFSUk9XSEVBRDtTbzswO09OOzs7OztOOzs7OzsKKzIzMDQ7RE9XTiBBUlJPV0hFQUQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzA1O1BST0pFQ1RJVkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzA2O1BFUlNQRUNUSVZFO1NvOzA7T047Ozs7O047Ozs7OworMjMwNztXQVZZIExJTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzA4O0xFRlQgQ0VJTElORztTbTswO09OOzs7OztZOzs7OzsKKzIzMDk7UklHSFQgQ0VJTElORztTbTswO09OOzs7OztZOzs7OzsKKzIzMEE7TEVGVCBGTE9PUjtTbTswO09OOzs7OztZOzs7OzsKKzIzMEI7UklHSFQgRkxPT1I7U207MDtPTjs7Ozs7WTs7Ozs7CisyMzBDO0JPVFRPTSBSSUdIVCBDUk9QO1NvOzA7T047Ozs7O047Ozs7OworMjMwRDtCT1RUT00gTEVGVCBDUk9QO1NvOzA7T047Ozs7O047Ozs7OworMjMwRTtUT1AgUklHSFQgQ1JPUDtTbzswO09OOzs7OztOOzs7OzsKKzIzMEY7VE9QIExFRlQgQ1JPUDtTbzswO09OOzs7OztOOzs7OzsKKzIzMTA7UkVWRVJTRUQgTk9UIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzExO1NRVUFSRSBMT1pFTkdFO1NvOzA7T047Ozs7O047Ozs7OworMjMxMjtBUkM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzEzO1NFR01FTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzE0O1NFQ1RPUjtTbzswO09OOzs7OztOOzs7OzsKKzIzMTU7VEVMRVBIT05FIFJFQ09SREVSO1NvOzA7T047Ozs7O047Ozs7OworMjMxNjtQT1NJVElPTiBJTkRJQ0FUT1I7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzE3O1ZJRVdEQVRBIFNRVUFSRTtTbzswO09OOzs7OztOOzs7OzsKKzIzMTg7UExBQ0UgT0YgSU5URVJFU1QgU0lHTjtTbzswO09OOzs7OztOO0NPTU1BTkQgS0VZOzs7OworMjMxOTtUVVJORUQgTk9UIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzFBO1dBVENIO1NvOzA7T047Ozs7O047Ozs7OworMjMxQjtIT1VSR0xBU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzFDO1RPUCBMRUZUIENPUk5FUjtTbzswO09OOzs7OztOOzs7OzsKKzIzMUQ7VE9QIFJJR0hUIENPUk5FUjtTbzswO09OOzs7OztOOzs7OzsKKzIzMUU7Qk9UVE9NIExFRlQgQ09STkVSO1NvOzA7T047Ozs7O047Ozs7OworMjMxRjtCT1RUT00gUklHSFQgQ09STkVSO1NvOzA7T047Ozs7O047Ozs7OworMjMyMDtUT1AgSEFMRiBJTlRFR1JBTDtTbTswO09OOzs7OztZOzs7OzsKKzIzMjE7Qk9UVE9NIEhBTEYgSU5URUdSQUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyMzIyO0ZST1dOO1NvOzA7T047Ozs7O047Ozs7OworMjMyMztTTUlMRTtTbzswO09OOzs7OztOOzs7OzsKKzIzMjQ7VVAgQVJST1dIRUFEIEJFVFdFRU4gVFdPIEhPUklaT05UQUwgQkFSUztTbzswO09OOzs7OztOO0VOVEVSIEtFWTs7OzsKKzIzMjU7T1BUSU9OIEtFWTtTbzswO09OOzs7OztOOzs7OzsKKzIzMjY7RVJBU0UgVE8gVEhFIFJJR0hUO1NvOzA7T047Ozs7O047REVMRVRFIFRPIFRIRSBSSUdIVCBLRVk7Ozs7CisyMzI3O1ggSU4gQSBSRUNUQU5HTEUgQk9YO1NvOzA7T047Ozs7O047Q0xFQVIgS0VZOzs7OworMjMyODtLRVlCT0FSRDtTbzswO09OOzs7OztOOzs7OzsKKzIzMjk7TEVGVC1QT0lOVElORyBBTkdMRSBCUkFDS0VUO1BzOzA7T047MzAwODs7OztZO0JSQTs7OzsKKzIzMkE7UklHSFQtUE9JTlRJTkcgQU5HTEUgQlJBQ0tFVDtQZTswO09OOzMwMDk7Ozs7WTtLRVQ7Ozs7CisyMzJCO0VSQVNFIFRPIFRIRSBMRUZUO1NvOzA7T047Ozs7O047REVMRVRFIFRPIFRIRSBMRUZUIEtFWTs7OzsKKzIzMkM7QkVOWkVORSBSSU5HO1NvOzA7T047Ozs7O047Ozs7OworMjMyRDtDWUxJTkRSSUNJVFk7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzJFO0FMTCBBUk9VTkQtUFJPRklMRTtTbzswO09OOzs7OztOOzs7OzsKKzIzMkY7U1lNTUVUUlk7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzMwO1RPVEFMIFJVTk9VVDtTbzswO09OOzs7OztOOzs7OzsKKzIzMzE7RElNRU5TSU9OIE9SSUdJTjtTbzswO09OOzs7OztOOzs7OzsKKzIzMzI7Q09OSUNBTCBUQVBFUjtTbzswO09OOzs7OztOOzs7OzsKKzIzMzM7U0xPUEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzM0O0NPVU5URVJCT1JFO1NvOzA7T047Ozs7O047Ozs7OworMjMzNTtDT1VOVEVSU0lOSztTbzswO09OOzs7OztOOzs7OzsKKzIzMzY7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIEktQkVBTTtTbzswO0w7Ozs7O047Ozs7OworMjMzNztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgU1FVSVNIIFFVQUQ7U287MDtMOzs7OztOOzs7OzsKKzIzMzg7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgRVFVQUw7U287MDtMOzs7OztOOzs7OzsKKzIzMzk7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgRElWSURFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzNBO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIERJQU1PTkQ7U287MDtMOzs7OztOOzs7OzsKKzIzM0I7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgSk9UO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzNDO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIENJUkNMRTtTbzswO0w7Ozs7O047Ozs7OworMjMzRDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgQ0lSQ0xFIFNUSUxFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzNFO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBDSVJDTEUgSk9UO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzNGO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBTTEFTSCBCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNDA7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIEJBQ0tTTEFTSCBCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNDE7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgU0xBU0g7U287MDtMOzs7OztOOzs7OzsKKzIzNDI7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgQkFDS1NMQVNIO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzQzO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIExFU1MtVEhBTjtTbzswO0w7Ozs7O047Ozs7OworMjM0NDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBHUkVBVEVSLVRIQU47U287MDtMOzs7OztOOzs7OzsKKzIzNDU7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIExFRlRXQVJEUyBWQU5FO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzQ2O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBSSUdIVFdBUkRTIFZBTkU7U287MDtMOzs7OztOOzs7OzsKKzIzNDc7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgTEVGVFdBUkRTIEFSUk9XO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzQ4O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIFJJR0hUV0FSRFMgQVJST1c7U287MDtMOzs7OztOOzs7OzsKKzIzNDk7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIENJUkNMRSBCQUNLU0xBU0g7U287MDtMOzs7OztOOzs7OzsKKzIzNEE7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERPV04gVEFDSyBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM0QjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgREVMVEEgU1RJTEU7U287MDtMOzs7OztOOzs7OzsKKzIzNEM7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgRE9XTiBDQVJFVDtTbzswO0w7Ozs7O047Ozs7OworMjM0RDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBERUxUQTtTbzswO0w7Ozs7O047Ozs7OworMjM0RTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgRE9XTiBUQUNLIEpPVDtTbzswO0w7Ozs7O047Ozs7OworMjM0RjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgVVBXQVJEUyBWQU5FO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzUwO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIFVQV0FSRFMgQVJST1c7U287MDtMOzs7OztOOzs7OzsKKzIzNTE7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFVQIFRBQ0sgT1ZFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM1MjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgREVMIFNUSUxFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzUzO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIFVQIENBUkVUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzU0O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIERFTDtTbzswO0w7Ozs7O047Ozs7OworMjM1NTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgVVAgVEFDSyBKT1Q7U287MDtMOzs7OztOOzs7OzsKKzIzNTY7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERPV05XQVJEUyBWQU5FO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzU3O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIERPV05XQVJEUyBBUlJPVztTbzswO0w7Ozs7O047Ozs7OworMjM1ODtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVPVEUgVU5ERVJCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNTk7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERFTFRBIFVOREVSQkFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzVBO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBESUFNT05EIFVOREVSQkFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzVCO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBKT1QgVU5ERVJCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNUM7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIENJUkNMRSBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM1RDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgVVAgU0hPRSBKT1Q7U287MDtMOzs7OztOOzs7OzsKKzIzNUU7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVT1RFIFFVQUQ7U287MDtMOzs7OztOOzs7OzsKKzIzNUY7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIENJUkNMRSBTVEFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzYwO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIENPTE9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzYxO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBVUCBUQUNLIERJQUVSRVNJUztTbzswO0w7Ozs7O047Ozs7OworMjM2MjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgREVMIERJQUVSRVNJUztTbzswO0w7Ozs7O047Ozs7OworMjM2MztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgU1RBUiBESUFFUkVTSVM7U287MDtMOzs7OztOOzs7OzsKKzIzNjQ7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIEpPVCBESUFFUkVTSVM7U287MDtMOzs7OztOOzs7OzsKKzIzNjU7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIENJUkNMRSBESUFFUkVTSVM7U287MDtMOzs7OztOOzs7OzsKKzIzNjY7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERPV04gU0hPRSBTVElMRTtTbzswO0w7Ozs7O047Ozs7OworMjM2NztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgTEVGVCBTSE9FIFNUSUxFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzY4O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBUSUxERSBESUFFUkVTSVM7U287MDtMOzs7OztOOzs7OzsKKzIzNjk7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIEdSRUFURVItVEhBTiBESUFFUkVTSVM7U287MDtMOzs7OztOOzs7OzsKKzIzNkE7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIENPTU1BIEJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM2QjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgREVMIFRJTERFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzZDO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBaSUxERTtTbzswO0w7Ozs7O047Ozs7OworMjM2RDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgU1RJTEUgVElMREU7U287MDtMOzs7OztOOzs7OzsKKzIzNkU7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFNFTUlDT0xPTiBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM2RjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBOT1QgRVFVQUw7U287MDtMOzs7OztOOzs7OzsKKzIzNzA7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgUVVFU1RJT047U287MDtMOzs7OztOOzs7OzsKKzIzNzE7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERPV04gQ0FSRVQgVElMREU7U287MDtMOzs7OztOOzs7OzsKKzIzNzI7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFVQIENBUkVUIFRJTERFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzczO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBJT1RBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzc0O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBSSE87U287MDtMOzs7OztOOzs7OzsKKzIzNzU7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIE9NRUdBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzc2O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBBTFBIQSBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM3NztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgRVBTSUxPTiBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM3ODtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgSU9UQSBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM3OTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgT01FR0EgVU5ERVJCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzN0E7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIEFMUEhBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyNDAwO1NZTUJPTCBGT1IgTlVMTDtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIE5VTEw7Ozs7CisyNDAxO1NZTUJPTCBGT1IgU1RBUlQgT0YgSEVBRElORztTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIFNUQVJUIE9GIEhFQURJTkc7Ozs7CisyNDAyO1NZTUJPTCBGT1IgU1RBUlQgT0YgVEVYVDtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIFNUQVJUIE9GIFRFWFQ7Ozs7CisyNDAzO1NZTUJPTCBGT1IgRU5EIE9GIFRFWFQ7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBFTkQgT0YgVEVYVDs7OzsKKzI0MDQ7U1lNQk9MIEZPUiBFTkQgT0YgVFJBTlNNSVNTSU9OO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgRU5EIE9GIFRSQU5TTUlTU0lPTjs7OzsKKzI0MDU7U1lNQk9MIEZPUiBFTlFVSVJZO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgRU5RVUlSWTs7OzsKKzI0MDY7U1lNQk9MIEZPUiBBQ0tOT1dMRURHRTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEFDS05PV0xFREdFOzs7OworMjQwNztTWU1CT0wgRk9SIEJFTEw7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBCRUxMOzs7OworMjQwODtTWU1CT0wgRk9SIEJBQ0tTUEFDRTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEJBQ0tTUEFDRTs7OzsKKzI0MDk7U1lNQk9MIEZPUiBIT1JJWk9OVEFMIFRBQlVMQVRJT047U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBIT1JJWk9OVEFMIFRBQlVMQVRJT047Ozs7CisyNDBBO1NZTUJPTCBGT1IgTElORSBGRUVEO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgTElORSBGRUVEOzs7OworMjQwQjtTWU1CT0wgRk9SIFZFUlRJQ0FMIFRBQlVMQVRJT047U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBWRVJUSUNBTCBUQUJVTEFUSU9OOzs7OworMjQwQztTWU1CT0wgRk9SIEZPUk0gRkVFRDtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEZPUk0gRkVFRDs7OzsKKzI0MEQ7U1lNQk9MIEZPUiBDQVJSSUFHRSBSRVRVUk47U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBDQVJSSUFHRSBSRVRVUk47Ozs7CisyNDBFO1NZTUJPTCBGT1IgU0hJRlQgT1VUO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgU0hJRlQgT1VUOzs7OworMjQwRjtTWU1CT0wgRk9SIFNISUZUIElOO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgU0hJRlQgSU47Ozs7CisyNDEwO1NZTUJPTCBGT1IgREFUQSBMSU5LIEVTQ0FQRTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIERBVEEgTElOSyBFU0NBUEU7Ozs7CisyNDExO1NZTUJPTCBGT1IgREVWSUNFIENPTlRST0wgT05FO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgREVWSUNFIENPTlRST0wgT05FOzs7OworMjQxMjtTWU1CT0wgRk9SIERFVklDRSBDT05UUk9MIFRXTztTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIERFVklDRSBDT05UUk9MIFRXTzs7OzsKKzI0MTM7U1lNQk9MIEZPUiBERVZJQ0UgQ09OVFJPTCBUSFJFRTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIERFVklDRSBDT05UUk9MIFRIUkVFOzs7OworMjQxNDtTWU1CT0wgRk9SIERFVklDRSBDT05UUk9MIEZPVVI7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBERVZJQ0UgQ09OVFJPTCBGT1VSOzs7OworMjQxNTtTWU1CT0wgRk9SIE5FR0FUSVZFIEFDS05PV0xFREdFO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgTkVHQVRJVkUgQUNLTk9XTEVER0U7Ozs7CisyNDE2O1NZTUJPTCBGT1IgU1lOQ0hST05PVVMgSURMRTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIFNZTkNIUk9OT1VTIElETEU7Ozs7CisyNDE3O1NZTUJPTCBGT1IgRU5EIE9GIFRSQU5TTUlTU0lPTiBCTE9DSztTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEVORCBPRiBUUkFOU01JU1NJT04gQkxPQ0s7Ozs7CisyNDE4O1NZTUJPTCBGT1IgQ0FOQ0VMO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgQ0FOQ0VMOzs7OworMjQxOTtTWU1CT0wgRk9SIEVORCBPRiBNRURJVU07U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBFTkQgT0YgTUVESVVNOzs7OworMjQxQTtTWU1CT0wgRk9SIFNVQlNUSVRVVEU7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBTVUJTVElUVVRFOzs7OworMjQxQjtTWU1CT0wgRk9SIEVTQ0FQRTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEVTQ0FQRTs7OzsKKzI0MUM7U1lNQk9MIEZPUiBGSUxFIFNFUEFSQVRPUjtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEZJTEUgU0VQQVJBVE9SOzs7OworMjQxRDtTWU1CT0wgRk9SIEdST1VQIFNFUEFSQVRPUjtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEdST1VQIFNFUEFSQVRPUjs7OzsKKzI0MUU7U1lNQk9MIEZPUiBSRUNPUkQgU0VQQVJBVE9SO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgUkVDT1JEIFNFUEFSQVRPUjs7OzsKKzI0MUY7U1lNQk9MIEZPUiBVTklUIFNFUEFSQVRPUjtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIFVOSVQgU0VQQVJBVE9SOzs7OworMjQyMDtTWU1CT0wgRk9SIFNQQUNFO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgU1BBQ0U7Ozs7CisyNDIxO1NZTUJPTCBGT1IgREVMRVRFO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgREVMRVRFOzs7OworMjQyMjtCTEFOSyBTWU1CT0w7U287MDtPTjs7Ozs7TjtCTEFOSzs7OzsKKzI0MjM7T1BFTiBCT1g7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNDI0O1NZTUJPTCBGT1IgTkVXTElORTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIE5FV0xJTkU7Ozs7CisyNDQwO09DUiBIT09LO1NvOzA7T047Ozs7O047Ozs7OworMjQ0MTtPQ1IgQ0hBSVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNDQyO09DUiBGT1JLO1NvOzA7T047Ozs7O047Ozs7OworMjQ0MztPQ1IgSU5WRVJURUQgRk9SSztTbzswO09OOzs7OztOOzs7OzsKKzI0NDQ7T0NSIEJFTFQgQlVDS0xFO1NvOzA7T047Ozs7O047Ozs7OworMjQ0NTtPQ1IgQk9XIFRJRTtTbzswO09OOzs7OztOOzs7OzsKKzI0NDY7T0NSIEJSQU5DSCBCQU5LIElERU5USUZJQ0FUSU9OO1NvOzA7T047Ozs7O047Ozs7OworMjQ0NztPQ1IgQU1PVU5UIE9GIENIRUNLO1NvOzA7T047Ozs7O047Ozs7OworMjQ0ODtPQ1IgREFTSDtTbzswO09OOzs7OztOOzs7OzsKKzI0NDk7T0NSIENVU1RPTUVSIEFDQ09VTlQgTlVNQkVSO1NvOzA7T047Ozs7O047Ozs7OworMjQ0QTtPQ1IgRE9VQkxFIEJBQ0tTTEFTSDtTbzswO09OOzs7OztOOzs7OzsKKzI0NjA7Q0lSQ0xFRCBESUdJVCBPTkU7Tm87MDtFTjs8Y2lyY2xlPiAwMDMxOzsxOzE7Tjs7Ozs7CisyNDYxO0NJUkNMRUQgRElHSVQgVFdPO05vOzA7RU47PGNpcmNsZT4gMDAzMjs7MjsyO047Ozs7OworMjQ2MjtDSVJDTEVEIERJR0lUIFRIUkVFO05vOzA7RU47PGNpcmNsZT4gMDAzMzs7MzszO047Ozs7OworMjQ2MztDSVJDTEVEIERJR0lUIEZPVVI7Tm87MDtFTjs8Y2lyY2xlPiAwMDM0Ozs0OzQ7Tjs7Ozs7CisyNDY0O0NJUkNMRUQgRElHSVQgRklWRTtObzswO0VOOzxjaXJjbGU+IDAwMzU7OzU7NTtOOzs7OzsKKzI0NjU7Q0lSQ0xFRCBESUdJVCBTSVg7Tm87MDtFTjs8Y2lyY2xlPiAwMDM2Ozs2OzY7Tjs7Ozs7CisyNDY2O0NJUkNMRUQgRElHSVQgU0VWRU47Tm87MDtFTjs8Y2lyY2xlPiAwMDM3Ozs3Ozc7Tjs7Ozs7CisyNDY3O0NJUkNMRUQgRElHSVQgRUlHSFQ7Tm87MDtFTjs8Y2lyY2xlPiAwMDM4Ozs4Ozg7Tjs7Ozs7CisyNDY4O0NJUkNMRUQgRElHSVQgTklORTtObzswO0VOOzxjaXJjbGU+IDAwMzk7Ozk7OTtOOzs7OzsKKzI0Njk7Q0lSQ0xFRCBOVU1CRVIgVEVOO05vOzA7RU47PGNpcmNsZT4gMDAzMSAwMDMwOzs7MTA7Tjs7Ozs7CisyNDZBO0NJUkNMRUQgTlVNQkVSIEVMRVZFTjtObzswO0VOOzxjaXJjbGU+IDAwMzEgMDAzMTs7OzExO047Ozs7OworMjQ2QjtDSVJDTEVEIE5VTUJFUiBUV0VMVkU7Tm87MDtFTjs8Y2lyY2xlPiAwMDMxIDAwMzI7OzsxMjtOOzs7OzsKKzI0NkM7Q0lSQ0xFRCBOVU1CRVIgVEhJUlRFRU47Tm87MDtFTjs8Y2lyY2xlPiAwMDMxIDAwMzM7OzsxMztOOzs7OzsKKzI0NkQ7Q0lSQ0xFRCBOVU1CRVIgRk9VUlRFRU47Tm87MDtFTjs8Y2lyY2xlPiAwMDMxIDAwMzQ7OzsxNDtOOzs7OzsKKzI0NkU7Q0lSQ0xFRCBOVU1CRVIgRklGVEVFTjtObzswO0VOOzxjaXJjbGU+IDAwMzEgMDAzNTs7OzE1O047Ozs7OworMjQ2RjtDSVJDTEVEIE5VTUJFUiBTSVhURUVOO05vOzA7RU47PGNpcmNsZT4gMDAzMSAwMDM2Ozs7MTY7Tjs7Ozs7CisyNDcwO0NJUkNMRUQgTlVNQkVSIFNFVkVOVEVFTjtObzswO0VOOzxjaXJjbGU+IDAwMzEgMDAzNzs7OzE3O047Ozs7OworMjQ3MTtDSVJDTEVEIE5VTUJFUiBFSUdIVEVFTjtObzswO0VOOzxjaXJjbGU+IDAwMzEgMDAzODs7OzE4O047Ozs7OworMjQ3MjtDSVJDTEVEIE5VTUJFUiBOSU5FVEVFTjtObzswO0VOOzxjaXJjbGU+IDAwMzEgMDAzOTs7OzE5O047Ozs7OworMjQ3MztDSVJDTEVEIE5VTUJFUiBUV0VOVFk7Tm87MDtFTjs8Y2lyY2xlPiAwMDMyIDAwMzA7OzsyMDtOOzs7OzsKKzI0NzQ7UEFSRU5USEVTSVpFRCBESUdJVCBPTkU7Tm87MDtFTjs8Y29tcGF0PiAwMDI4IDAwMzEgMDAyOTs7MTsxO047Ozs7OworMjQ3NTtQQVJFTlRIRVNJWkVEIERJR0lUIFRXTztObzswO0VOOzxjb21wYXQ+IDAwMjggMDAzMiAwMDI5OzsyOzI7Tjs7Ozs7CisyNDc2O1BBUkVOVEhFU0laRUQgRElHSVQgVEhSRUU7Tm87MDtFTjs8Y29tcGF0PiAwMDI4IDAwMzMgMDAyOTs7MzszO047Ozs7OworMjQ3NztQQVJFTlRIRVNJWkVEIERJR0lUIEZPVVI7Tm87MDtFTjs8Y29tcGF0PiAwMDI4IDAwMzQgMDAyOTs7NDs0O047Ozs7OworMjQ3ODtQQVJFTlRIRVNJWkVEIERJR0lUIEZJVkU7Tm87MDtFTjs8Y29tcGF0PiAwMDI4IDAwMzUgMDAyOTs7NTs1O047Ozs7OworMjQ3OTtQQVJFTlRIRVNJWkVEIERJR0lUIFNJWDtObzswO0VOOzxjb21wYXQ+IDAwMjggMDAzNiAwMDI5Ozs2OzY7Tjs7Ozs7CisyNDdBO1BBUkVOVEhFU0laRUQgRElHSVQgU0VWRU47Tm87MDtFTjs8Y29tcGF0PiAwMDI4IDAwMzcgMDAyOTs7Nzs3O047Ozs7OworMjQ3QjtQQVJFTlRIRVNJWkVEIERJR0lUIEVJR0hUO05vOzA7RU47PGNvbXBhdD4gMDAyOCAwMDM4IDAwMjk7Ozg7ODtOOzs7OzsKKzI0N0M7UEFSRU5USEVTSVpFRCBESUdJVCBOSU5FO05vOzA7RU47PGNvbXBhdD4gMDAyOCAwMDM5IDAwMjk7Ozk7OTtOOzs7OzsKKzI0N0Q7UEFSRU5USEVTSVpFRCBOVU1CRVIgVEVOO05vOzA7RU47PGNvbXBhdD4gMDAyOCAwMDMxIDAwMzAgMDAyOTs7OzEwO047Ozs7OworMjQ3RTtQQVJFTlRIRVNJWkVEIE5VTUJFUiBFTEVWRU47Tm87MDtFTjs8Y29tcGF0PiAwMDI4IDAwMzEgMDAzMSAwMDI5Ozs7MTE7Tjs7Ozs7CisyNDdGO1BBUkVOVEhFU0laRUQgTlVNQkVSIFRXRUxWRTtObzswO0VOOzxjb21wYXQ+IDAwMjggMDAzMSAwMDMyIDAwMjk7OzsxMjtOOzs7OzsKKzI0ODA7UEFSRU5USEVTSVpFRCBOVU1CRVIgVEhJUlRFRU47Tm87MDtFTjs8Y29tcGF0PiAwMDI4IDAwMzEgMDAzMyAwMDI5Ozs7MTM7Tjs7Ozs7CisyNDgxO1BBUkVOVEhFU0laRUQgTlVNQkVSIEZPVVJURUVOO05vOzA7RU47PGNvbXBhdD4gMDAyOCAwMDMxIDAwMzQgMDAyOTs7OzE0O047Ozs7OworMjQ4MjtQQVJFTlRIRVNJWkVEIE5VTUJFUiBGSUZURUVOO05vOzA7RU47PGNvbXBhdD4gMDAyOCAwMDMxIDAwMzUgMDAyOTs7OzE1O047Ozs7OworMjQ4MztQQVJFTlRIRVNJWkVEIE5VTUJFUiBTSVhURUVOO05vOzA7RU47PGNvbXBhdD4gMDAyOCAwMDMxIDAwMzYgMDAyOTs7OzE2O047Ozs7OworMjQ4NDtQQVJFTlRIRVNJWkVEIE5VTUJFUiBTRVZFTlRFRU47Tm87MDtFTjs8Y29tcGF0PiAwMDI4IDAwMzEgMDAzNyAwMDI5Ozs7MTc7Tjs7Ozs7CisyNDg1O1BBUkVOVEhFU0laRUQgTlVNQkVSIEVJR0hURUVOO05vOzA7RU47PGNvbXBhdD4gMDAyOCAwMDMxIDAwMzggMDAyOTs7OzE4O047Ozs7OworMjQ4NjtQQVJFTlRIRVNJWkVEIE5VTUJFUiBOSU5FVEVFTjtObzswO0VOOzxjb21wYXQ+IDAwMjggMDAzMSAwMDM5IDAwMjk7OzsxOTtOOzs7OzsKKzI0ODc7UEFSRU5USEVTSVpFRCBOVU1CRVIgVFdFTlRZO05vOzA7RU47PGNvbXBhdD4gMDAyOCAwMDMyIDAwMzAgMDAyOTs7OzIwO047Ozs7OworMjQ4ODtESUdJVCBPTkUgRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMSAwMDJFOzsxOzE7TjtESUdJVCBPTkUgUEVSSU9EOzs7OworMjQ4OTtESUdJVCBUV08gRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMiAwMDJFOzsyOzI7TjtESUdJVCBUV08gUEVSSU9EOzs7OworMjQ4QTtESUdJVCBUSFJFRSBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDMzIDAwMkU7OzM7MztOO0RJR0lUIFRIUkVFIFBFUklPRDs7OzsKKzI0OEI7RElHSVQgRk9VUiBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDM0IDAwMkU7OzQ7NDtOO0RJR0lUIEZPVVIgUEVSSU9EOzs7OworMjQ4QztESUdJVCBGSVZFIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzUgMDAyRTs7NTs1O047RElHSVQgRklWRSBQRVJJT0Q7Ozs7CisyNDhEO0RJR0lUIFNJWCBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDM2IDAwMkU7OzY7NjtOO0RJR0lUIFNJWCBQRVJJT0Q7Ozs7CisyNDhFO0RJR0lUIFNFVkVOIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzcgMDAyRTs7Nzs3O047RElHSVQgU0VWRU4gUEVSSU9EOzs7OworMjQ4RjtESUdJVCBFSUdIVCBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDM4IDAwMkU7Ozg7ODtOO0RJR0lUIEVJR0hUIFBFUklPRDs7OzsKKzI0OTA7RElHSVQgTklORSBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDM5IDAwMkU7Ozk7OTtOO0RJR0lUIE5JTkUgUEVSSU9EOzs7OworMjQ5MTtOVU1CRVIgVEVOIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzEgMDAzMCAwMDJFOzs7MTA7TjtOVU1CRVIgVEVOIFBFUklPRDs7OzsKKzI0OTI7TlVNQkVSIEVMRVZFTiBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDMxIDAwMzEgMDAyRTs7OzExO047TlVNQkVSIEVMRVZFTiBQRVJJT0Q7Ozs7CisyNDkzO05VTUJFUiBUV0VMVkUgRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMSAwMDMyIDAwMkU7OzsxMjtOO05VTUJFUiBUV0VMVkUgUEVSSU9EOzs7OworMjQ5NDtOVU1CRVIgVEhJUlRFRU4gRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMSAwMDMzIDAwMkU7OzsxMztOO05VTUJFUiBUSElSVEVFTiBQRVJJT0Q7Ozs7CisyNDk1O05VTUJFUiBGT1VSVEVFTiBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDMxIDAwMzQgMDAyRTs7OzE0O047TlVNQkVSIEZPVVJURUVOIFBFUklPRDs7OzsKKzI0OTY7TlVNQkVSIEZJRlRFRU4gRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMSAwMDM1IDAwMkU7OzsxNTtOO05VTUJFUiBGSUZURUVOIFBFUklPRDs7OzsKKzI0OTc7TlVNQkVSIFNJWFRFRU4gRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMSAwMDM2IDAwMkU7OzsxNjtOO05VTUJFUiBTSVhURUVOIFBFUklPRDs7OzsKKzI0OTg7TlVNQkVSIFNFVkVOVEVFTiBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDMxIDAwMzcgMDAyRTs7OzE3O047TlVNQkVSIFNFVkVOVEVFTiBQRVJJT0Q7Ozs7CisyNDk5O05VTUJFUiBFSUdIVEVFTiBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDMxIDAwMzggMDAyRTs7OzE4O047TlVNQkVSIEVJR0hURUVOIFBFUklPRDs7OzsKKzI0OUE7TlVNQkVSIE5JTkVURUVOIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzEgMDAzOSAwMDJFOzs7MTk7TjtOVU1CRVIgTklORVRFRU4gUEVSSU9EOzs7OworMjQ5QjtOVU1CRVIgVFdFTlRZIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzIgMDAzMCAwMDJFOzs7MjA7TjtOVU1CRVIgVFdFTlRZIFBFUklPRDs7OzsKKzI0OUM7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDYxIDAwMjk7Ozs7Tjs7Ozs7CisyNDlEO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIEI7U287MDtMOzxjb21wYXQ+IDAwMjggMDA2MiAwMDI5Ozs7O047Ozs7OworMjQ5RTtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBDO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNjMgMDAyOTs7OztOOzs7OzsKKzI0OUY7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgRDtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDY0IDAwMjk7Ozs7Tjs7Ozs7CisyNEEwO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIEU7U287MDtMOzxjb21wYXQ+IDAwMjggMDA2NSAwMDI5Ozs7O047Ozs7OworMjRBMTtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBGO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNjYgMDAyOTs7OztOOzs7OzsKKzI0QTI7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgRztTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDY3IDAwMjk7Ozs7Tjs7Ozs7CisyNEEzO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIEg7U287MDtMOzxjb21wYXQ+IDAwMjggMDA2OCAwMDI5Ozs7O047Ozs7OworMjRBNDtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBJO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNjkgMDAyOTs7OztOOzs7OzsKKzI0QTU7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgSjtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDZBIDAwMjk7Ozs7Tjs7Ozs7CisyNEE2O1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIEs7U287MDtMOzxjb21wYXQ+IDAwMjggMDA2QiAwMDI5Ozs7O047Ozs7OworMjRBNztQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBMO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNkMgMDAyOTs7OztOOzs7OzsKKzI0QTg7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgTTtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDZEIDAwMjk7Ozs7Tjs7Ozs7CisyNEE5O1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIE47U287MDtMOzxjb21wYXQ+IDAwMjggMDA2RSAwMDI5Ozs7O047Ozs7OworMjRBQTtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBPO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNkYgMDAyOTs7OztOOzs7OzsKKzI0QUI7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgUDtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDcwIDAwMjk7Ozs7Tjs7Ozs7CisyNEFDO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIFE7U287MDtMOzxjb21wYXQ+IDAwMjggMDA3MSAwMDI5Ozs7O047Ozs7OworMjRBRDtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBSO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNzIgMDAyOTs7OztOOzs7OzsKKzI0QUU7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgUztTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDczIDAwMjk7Ozs7Tjs7Ozs7CisyNEFGO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIFQ7U287MDtMOzxjb21wYXQ+IDAwMjggMDA3NCAwMDI5Ozs7O047Ozs7OworMjRCMDtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBVO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNzUgMDAyOTs7OztOOzs7OzsKKzI0QjE7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgVjtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDc2IDAwMjk7Ozs7Tjs7Ozs7CisyNEIyO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIFc7U287MDtMOzxjb21wYXQ+IDAwMjggMDA3NyAwMDI5Ozs7O047Ozs7OworMjRCMztQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBYO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNzggMDAyOTs7OztOOzs7OzsKKzI0QjQ7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgWTtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDc5IDAwMjk7Ozs7Tjs7Ozs7CisyNEI1O1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIFo7U287MDtMOzxjb21wYXQ+IDAwMjggMDA3QSAwMDI5Ozs7O047Ozs7OworMjRCNjtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEE7U287MDtMOzxjaXJjbGU+IDAwNDE7Ozs7Tjs7OzsyNEQwOworMjRCNztDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEI7U287MDtMOzxjaXJjbGU+IDAwNDI7Ozs7Tjs7OzsyNEQxOworMjRCODtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEM7U287MDtMOzxjaXJjbGU+IDAwNDM7Ozs7Tjs7OzsyNEQyOworMjRCOTtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEQ7U287MDtMOzxjaXJjbGU+IDAwNDQ7Ozs7Tjs7OzsyNEQzOworMjRCQTtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEU7U287MDtMOzxjaXJjbGU+IDAwNDU7Ozs7Tjs7OzsyNEQ0OworMjRCQjtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEY7U287MDtMOzxjaXJjbGU+IDAwNDY7Ozs7Tjs7OzsyNEQ1OworMjRCQztDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEc7U287MDtMOzxjaXJjbGU+IDAwNDc7Ozs7Tjs7OzsyNEQ2OworMjRCRDtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEg7U287MDtMOzxjaXJjbGU+IDAwNDg7Ozs7Tjs7OzsyNEQ3OworMjRCRTtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEk7U287MDtMOzxjaXJjbGU+IDAwNDk7Ozs7Tjs7OzsyNEQ4OworMjRCRjtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEo7U287MDtMOzxjaXJjbGU+IDAwNEE7Ozs7Tjs7OzsyNEQ5OworMjRDMDtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEs7U287MDtMOzxjaXJjbGU+IDAwNEI7Ozs7Tjs7OzsyNERBOworMjRDMTtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEw7U287MDtMOzxjaXJjbGU+IDAwNEM7Ozs7Tjs7OzsyNERCOworMjRDMjtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIE07U287MDtMOzxjaXJjbGU+IDAwNEQ7Ozs7Tjs7OzsyNERDOworMjRDMztDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIE47U287MDtMOzxjaXJjbGU+IDAwNEU7Ozs7Tjs7OzsyNEREOworMjRDNDtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIE87U287MDtMOzxjaXJjbGU+IDAwNEY7Ozs7Tjs7OzsyNERFOworMjRDNTtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFA7U287MDtMOzxjaXJjbGU+IDAwNTA7Ozs7Tjs7OzsyNERGOworMjRDNjtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFE7U287MDtMOzxjaXJjbGU+IDAwNTE7Ozs7Tjs7OzsyNEUwOworMjRDNztDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFI7U287MDtMOzxjaXJjbGU+IDAwNTI7Ozs7Tjs7OzsyNEUxOworMjRDODtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFM7U287MDtMOzxjaXJjbGU+IDAwNTM7Ozs7Tjs7OzsyNEUyOworMjRDOTtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFQ7U287MDtMOzxjaXJjbGU+IDAwNTQ7Ozs7Tjs7OzsyNEUzOworMjRDQTtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFU7U287MDtMOzxjaXJjbGU+IDAwNTU7Ozs7Tjs7OzsyNEU0OworMjRDQjtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFY7U287MDtMOzxjaXJjbGU+IDAwNTY7Ozs7Tjs7OzsyNEU1OworMjRDQztDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFc7U287MDtMOzxjaXJjbGU+IDAwNTc7Ozs7Tjs7OzsyNEU2OworMjRDRDtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFg7U287MDtMOzxjaXJjbGU+IDAwNTg7Ozs7Tjs7OzsyNEU3OworMjRDRTtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFk7U287MDtMOzxjaXJjbGU+IDAwNTk7Ozs7Tjs7OzsyNEU4OworMjRDRjtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFo7U287MDtMOzxjaXJjbGU+IDAwNUE7Ozs7Tjs7OzsyNEU5OworMjREMDtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBBO1NvOzA7TDs8Y2lyY2xlPiAwMDYxOzs7O047OzsyNEI2OzsyNEI2CisyNEQxO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIEI7U287MDtMOzxjaXJjbGU+IDAwNjI7Ozs7Tjs7OzI0Qjc7OzI0QjcKKzI0RDI7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgQztTbzswO0w7PGNpcmNsZT4gMDA2Mzs7OztOOzs7MjRCODs7MjRCOAorMjREMztDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBEO1NvOzA7TDs8Y2lyY2xlPiAwMDY0Ozs7O047OzsyNEI5OzsyNEI5CisyNEQ0O0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIEU7U287MDtMOzxjaXJjbGU+IDAwNjU7Ozs7Tjs7OzI0QkE7OzI0QkEKKzI0RDU7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgRjtTbzswO0w7PGNpcmNsZT4gMDA2Njs7OztOOzs7MjRCQjs7MjRCQgorMjRENjtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBHO1NvOzA7TDs8Y2lyY2xlPiAwMDY3Ozs7O047OzsyNEJDOzsyNEJDCisyNEQ3O0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIEg7U287MDtMOzxjaXJjbGU+IDAwNjg7Ozs7Tjs7OzI0QkQ7OzI0QkQKKzI0RDg7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgSTtTbzswO0w7PGNpcmNsZT4gMDA2OTs7OztOOzs7MjRCRTs7MjRCRQorMjREOTtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBKO1NvOzA7TDs8Y2lyY2xlPiAwMDZBOzs7O047OzsyNEJGOzsyNEJGCisyNERBO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIEs7U287MDtMOzxjaXJjbGU+IDAwNkI7Ozs7Tjs7OzI0QzA7OzI0QzAKKzI0REI7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgTDtTbzswO0w7PGNpcmNsZT4gMDA2Qzs7OztOOzs7MjRDMTs7MjRDMQorMjREQztDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBNO1NvOzA7TDs8Y2lyY2xlPiAwMDZEOzs7O047OzsyNEMyOzsyNEMyCisyNEREO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIE47U287MDtMOzxjaXJjbGU+IDAwNkU7Ozs7Tjs7OzI0QzM7OzI0QzMKKzI0REU7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgTztTbzswO0w7PGNpcmNsZT4gMDA2Rjs7OztOOzs7MjRDNDs7MjRDNAorMjRERjtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBQO1NvOzA7TDs8Y2lyY2xlPiAwMDcwOzs7O047OzsyNEM1OzsyNEM1CisyNEUwO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIFE7U287MDtMOzxjaXJjbGU+IDAwNzE7Ozs7Tjs7OzI0QzY7OzI0QzYKKzI0RTE7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgUjtTbzswO0w7PGNpcmNsZT4gMDA3Mjs7OztOOzs7MjRDNzs7MjRDNworMjRFMjtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBTO1NvOzA7TDs8Y2lyY2xlPiAwMDczOzs7O047OzsyNEM4OzsyNEM4CisyNEUzO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIFQ7U287MDtMOzxjaXJjbGU+IDAwNzQ7Ozs7Tjs7OzI0Qzk7OzI0QzkKKzI0RTQ7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgVTtTbzswO0w7PGNpcmNsZT4gMDA3NTs7OztOOzs7MjRDQTs7MjRDQQorMjRFNTtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBWO1NvOzA7TDs8Y2lyY2xlPiAwMDc2Ozs7O047OzsyNENCOzsyNENCCisyNEU2O0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIFc7U287MDtMOzxjaXJjbGU+IDAwNzc7Ozs7Tjs7OzI0Q0M7OzI0Q0MKKzI0RTc7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgWDtTbzswO0w7PGNpcmNsZT4gMDA3ODs7OztOOzs7MjRDRDs7MjRDRAorMjRFODtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBZO1NvOzA7TDs8Y2lyY2xlPiAwMDc5Ozs7O047OzsyNENFOzsyNENFCisyNEU5O0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIFo7U287MDtMOzxjaXJjbGU+IDAwN0E7Ozs7Tjs7OzI0Q0Y7OzI0Q0YKKzI0RUE7Q0lSQ0xFRCBESUdJVCBaRVJPO05vOzA7RU47PGNpcmNsZT4gMDAzMDs7MDswO047Ozs7OworMjUwMDtCT1ggRFJBV0lOR1MgTElHSFQgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIEhPUklaT05UQUw7Ozs7CisyNTAxO0JPWCBEUkFXSU5HUyBIRUFWWSBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgSE9SSVpPTlRBTDs7OzsKKzI1MDI7Qk9YIERSQVdJTkdTIExJR0hUIFZFUlRJQ0FMO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgVkVSVElDQUw7Ozs7CisyNTAzO0JPWCBEUkFXSU5HUyBIRUFWWSBWRVJUSUNBTDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFZFUlRJQ0FMOzs7OworMjUwNDtCT1ggRFJBV0lOR1MgTElHSFQgVFJJUExFIERBU0ggSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFRSSVBMRSBEQVNIIEhPUklaT05UQUw7Ozs7CisyNTA1O0JPWCBEUkFXSU5HUyBIRUFWWSBUUklQTEUgREFTSCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVFJJUExFIERBU0ggSE9SSVpPTlRBTDs7OzsKKzI1MDY7Qk9YIERSQVdJTkdTIExJR0hUIFRSSVBMRSBEQVNIIFZFUlRJQ0FMO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgVFJJUExFIERBU0ggVkVSVElDQUw7Ozs7CisyNTA3O0JPWCBEUkFXSU5HUyBIRUFWWSBUUklQTEUgREFTSCBWRVJUSUNBTDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFRSSVBMRSBEQVNIIFZFUlRJQ0FMOzs7OworMjUwODtCT1ggRFJBV0lOR1MgTElHSFQgUVVBRFJVUExFIERBU0ggSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFFVQURSVVBMRSBEQVNIIEhPUklaT05UQUw7Ozs7CisyNTA5O0JPWCBEUkFXSU5HUyBIRUFWWSBRVUFEUlVQTEUgREFTSCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgUVVBRFJVUExFIERBU0ggSE9SSVpPTlRBTDs7OzsKKzI1MEE7Qk9YIERSQVdJTkdTIExJR0hUIFFVQURSVVBMRSBEQVNIIFZFUlRJQ0FMO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgUVVBRFJVUExFIERBU0ggVkVSVElDQUw7Ozs7CisyNTBCO0JPWCBEUkFXSU5HUyBIRUFWWSBRVUFEUlVQTEUgREFTSCBWRVJUSUNBTDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFFVQURSVVBMRSBEQVNIIFZFUlRJQ0FMOzs7OworMjUwQztCT1ggRFJBV0lOR1MgTElHSFQgRE9XTiBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBET1dOIEFORCBSSUdIVDs7OzsKKzI1MEQ7Qk9YIERSQVdJTkdTIERPV04gTElHSFQgQU5EIFJJR0hUIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBMSUdIVCBBTkQgUklHSFQgSEVBVlk7Ozs7CisyNTBFO0JPWCBEUkFXSU5HUyBET1dOIEhFQVZZIEFORCBSSUdIVCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gSEVBVlkgQU5EIFJJR0hUIExJR0hUOzs7OworMjUwRjtCT1ggRFJBV0lOR1MgSEVBVlkgRE9XTiBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBET1dOIEFORCBSSUdIVDs7OzsKKzI1MTA7Qk9YIERSQVdJTkdTIExJR0hUIERPV04gQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBET1dOIEFORCBMRUZUOzs7OworMjUxMTtCT1ggRFJBV0lOR1MgRE9XTiBMSUdIVCBBTkQgTEVGVCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gTElHSFQgQU5EIExFRlQgSEVBVlk7Ozs7CisyNTEyO0JPWCBEUkFXSU5HUyBET1dOIEhFQVZZIEFORCBMRUZUIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBIRUFWWSBBTkQgTEVGVCBMSUdIVDs7OzsKKzI1MTM7Qk9YIERSQVdJTkdTIEhFQVZZIERPV04gQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBET1dOIEFORCBMRUZUOzs7OworMjUxNDtCT1ggRFJBV0lOR1MgTElHSFQgVVAgQU5EIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgVVAgQU5EIFJJR0hUOzs7OworMjUxNTtCT1ggRFJBV0lOR1MgVVAgTElHSFQgQU5EIFJJR0hUIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgVVAgTElHSFQgQU5EIFJJR0hUIEhFQVZZOzs7OworMjUxNjtCT1ggRFJBV0lOR1MgVVAgSEVBVlkgQU5EIFJJR0hUIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgVVAgSEVBVlkgQU5EIFJJR0hUIExJR0hUOzs7OworMjUxNztCT1ggRFJBV0lOR1MgSEVBVlkgVVAgQU5EIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVVAgQU5EIFJJR0hUOzs7OworMjUxODtCT1ggRFJBV0lOR1MgTElHSFQgVVAgQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBVUCBBTkQgTEVGVDs7OzsKKzI1MTk7Qk9YIERSQVdJTkdTIFVQIExJR0hUIEFORCBMRUZUIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgVVAgTElHSFQgQU5EIExFRlQgSEVBVlk7Ozs7CisyNTFBO0JPWCBEUkFXSU5HUyBVUCBIRUFWWSBBTkQgTEVGVCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFVQIEhFQVZZIEFORCBMRUZUIExJR0hUOzs7OworMjUxQjtCT1ggRFJBV0lOR1MgSEVBVlkgVVAgQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBVUCBBTkQgTEVGVDs7OzsKKzI1MUM7Qk9YIERSQVdJTkdTIExJR0hUIFZFUlRJQ0FMIEFORCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFZFUlRJQ0FMIEFORCBSSUdIVDs7OzsKKzI1MUQ7Qk9YIERSQVdJTkdTIFZFUlRJQ0FMIExJR0hUIEFORCBSSUdIVCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIExJR0hUIEFORCBSSUdIVCBIRUFWWTs7OzsKKzI1MUU7Qk9YIERSQVdJTkdTIFVQIEhFQVZZIEFORCBSSUdIVCBET1dOIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgVVAgSEVBVlkgQU5EIFJJR0hUIERPV04gTElHSFQ7Ozs7CisyNTFGO0JPWCBEUkFXSU5HUyBET1dOIEhFQVZZIEFORCBSSUdIVCBVUCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gSEVBVlkgQU5EIFJJR0hUIFVQIExJR0hUOzs7OworMjUyMDtCT1ggRFJBV0lOR1MgVkVSVElDQUwgSEVBVlkgQU5EIFJJR0hUIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgSEVBVlkgQU5EIFJJR0hUIExJR0hUOzs7OworMjUyMTtCT1ggRFJBV0lOR1MgRE9XTiBMSUdIVCBBTkQgUklHSFQgVVAgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIExJR0hUIEFORCBSSUdIVCBVUCBIRUFWWTs7OzsKKzI1MjI7Qk9YIERSQVdJTkdTIFVQIExJR0hUIEFORCBSSUdIVCBET1dOIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgVVAgTElHSFQgQU5EIFJJR0hUIERPV04gSEVBVlk7Ozs7CisyNTIzO0JPWCBEUkFXSU5HUyBIRUFWWSBWRVJUSUNBTCBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBWRVJUSUNBTCBBTkQgUklHSFQ7Ozs7CisyNTI0O0JPWCBEUkFXSU5HUyBMSUdIVCBWRVJUSUNBTCBBTkQgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFZFUlRJQ0FMIEFORCBMRUZUOzs7OworMjUyNTtCT1ggRFJBV0lOR1MgVkVSVElDQUwgTElHSFQgQU5EIExFRlQgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBWRVJUSUNBTCBMSUdIVCBBTkQgTEVGVCBIRUFWWTs7OzsKKzI1MjY7Qk9YIERSQVdJTkdTIFVQIEhFQVZZIEFORCBMRUZUIERPV04gTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBIRUFWWSBBTkQgTEVGVCBET1dOIExJR0hUOzs7OworMjUyNztCT1ggRFJBV0lOR1MgRE9XTiBIRUFWWSBBTkQgTEVGVCBVUCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gSEVBVlkgQU5EIExFRlQgVVAgTElHSFQ7Ozs7CisyNTI4O0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBIRUFWWSBBTkQgTEVGVCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIEhFQVZZIEFORCBMRUZUIExJR0hUOzs7OworMjUyOTtCT1ggRFJBV0lOR1MgRE9XTiBMSUdIVCBBTkQgTEVGVCBVUCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gTElHSFQgQU5EIExFRlQgVVAgSEVBVlk7Ozs7CisyNTJBO0JPWCBEUkFXSU5HUyBVUCBMSUdIVCBBTkQgTEVGVCBET1dOIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgVVAgTElHSFQgQU5EIExFRlQgRE9XTiBIRUFWWTs7OzsKKzI1MkI7Qk9YIERSQVdJTkdTIEhFQVZZIFZFUlRJQ0FMIEFORCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVkVSVElDQUwgQU5EIExFRlQ7Ozs7CisyNTJDO0JPWCBEUkFXSU5HUyBMSUdIVCBET1dOIEFORCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgRE9XTiBBTkQgSE9SSVpPTlRBTDs7OzsKKzI1MkQ7Qk9YIERSQVdJTkdTIExFRlQgSEVBVlkgQU5EIFJJR0hUIERPV04gTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMRUZUIEhFQVZZIEFORCBSSUdIVCBET1dOIExJR0hUOzs7OworMjUyRTtCT1ggRFJBV0lOR1MgUklHSFQgSEVBVlkgQU5EIExFRlQgRE9XTiBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFJJR0hUIEhFQVZZIEFORCBMRUZUIERPV04gTElHSFQ7Ozs7CisyNTJGO0JPWCBEUkFXSU5HUyBET1dOIExJR0hUIEFORCBIT1JJWk9OVEFMIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBMSUdIVCBBTkQgSE9SSVpPTlRBTCBIRUFWWTs7OzsKKzI1MzA7Qk9YIERSQVdJTkdTIERPV04gSEVBVlkgQU5EIEhPUklaT05UQUwgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIEhFQVZZIEFORCBIT1JJWk9OVEFMIExJR0hUOzs7OworMjUzMTtCT1ggRFJBV0lOR1MgUklHSFQgTElHSFQgQU5EIExFRlQgRE9XTiBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFJJR0hUIExJR0hUIEFORCBMRUZUIERPV04gSEVBVlk7Ozs7CisyNTMyO0JPWCBEUkFXSU5HUyBMRUZUIExJR0hUIEFORCBSSUdIVCBET1dOIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgTEVGVCBMSUdIVCBBTkQgUklHSFQgRE9XTiBIRUFWWTs7OzsKKzI1MzM7Qk9YIERSQVdJTkdTIEhFQVZZIERPV04gQU5EIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBET1dOIEFORCBIT1JJWk9OVEFMOzs7OworMjUzNDtCT1ggRFJBV0lOR1MgTElHSFQgVVAgQU5EIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBVUCBBTkQgSE9SSVpPTlRBTDs7OzsKKzI1MzU7Qk9YIERSQVdJTkdTIExFRlQgSEVBVlkgQU5EIFJJR0hUIFVQIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTEVGVCBIRUFWWSBBTkQgUklHSFQgVVAgTElHSFQ7Ozs7CisyNTM2O0JPWCBEUkFXSU5HUyBSSUdIVCBIRUFWWSBBTkQgTEVGVCBVUCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFJJR0hUIEhFQVZZIEFORCBMRUZUIFVQIExJR0hUOzs7OworMjUzNztCT1ggRFJBV0lOR1MgVVAgTElHSFQgQU5EIEhPUklaT05UQUwgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBMSUdIVCBBTkQgSE9SSVpPTlRBTCBIRUFWWTs7OzsKKzI1Mzg7Qk9YIERSQVdJTkdTIFVQIEhFQVZZIEFORCBIT1JJWk9OVEFMIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgVVAgSEVBVlkgQU5EIEhPUklaT05UQUwgTElHSFQ7Ozs7CisyNTM5O0JPWCBEUkFXSU5HUyBSSUdIVCBMSUdIVCBBTkQgTEVGVCBVUCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFJJR0hUIExJR0hUIEFORCBMRUZUIFVQIEhFQVZZOzs7OworMjUzQTtCT1ggRFJBV0lOR1MgTEVGVCBMSUdIVCBBTkQgUklHSFQgVVAgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBMRUZUIExJR0hUIEFORCBSSUdIVCBVUCBIRUFWWTs7OzsKKzI1M0I7Qk9YIERSQVdJTkdTIEhFQVZZIFVQIEFORCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVVAgQU5EIEhPUklaT05UQUw7Ozs7CisyNTNDO0JPWCBEUkFXSU5HUyBMSUdIVCBWRVJUSUNBTCBBTkQgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFZFUlRJQ0FMIEFORCBIT1JJWk9OVEFMOzs7OworMjUzRDtCT1ggRFJBV0lOR1MgTEVGVCBIRUFWWSBBTkQgUklHSFQgVkVSVElDQUwgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMRUZUIEhFQVZZIEFORCBSSUdIVCBWRVJUSUNBTCBMSUdIVDs7OzsKKzI1M0U7Qk9YIERSQVdJTkdTIFJJR0hUIEhFQVZZIEFORCBMRUZUIFZFUlRJQ0FMIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgUklHSFQgSEVBVlkgQU5EIExFRlQgVkVSVElDQUwgTElHSFQ7Ozs7CisyNTNGO0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBMSUdIVCBBTkQgSE9SSVpPTlRBTCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIExJR0hUIEFORCBIT1JJWk9OVEFMIEhFQVZZOzs7OworMjU0MDtCT1ggRFJBV0lOR1MgVVAgSEVBVlkgQU5EIERPV04gSE9SSVpPTlRBTCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFVQIEhFQVZZIEFORCBET1dOIEhPUklaT05UQUwgTElHSFQ7Ozs7CisyNTQxO0JPWCBEUkFXSU5HUyBET1dOIEhFQVZZIEFORCBVUCBIT1JJWk9OVEFMIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBIRUFWWSBBTkQgVVAgSE9SSVpPTlRBTCBMSUdIVDs7OzsKKzI1NDI7Qk9YIERSQVdJTkdTIFZFUlRJQ0FMIEhFQVZZIEFORCBIT1JJWk9OVEFMIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgSEVBVlkgQU5EIEhPUklaT05UQUwgTElHSFQ7Ozs7CisyNTQzO0JPWCBEUkFXSU5HUyBMRUZUIFVQIEhFQVZZIEFORCBSSUdIVCBET1dOIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTEVGVCBVUCBIRUFWWSBBTkQgUklHSFQgRE9XTiBMSUdIVDs7OzsKKzI1NDQ7Qk9YIERSQVdJTkdTIFJJR0hUIFVQIEhFQVZZIEFORCBMRUZUIERPV04gTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBSSUdIVCBVUCBIRUFWWSBBTkQgTEVGVCBET1dOIExJR0hUOzs7OworMjU0NTtCT1ggRFJBV0lOR1MgTEVGVCBET1dOIEhFQVZZIEFORCBSSUdIVCBVUCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExFRlQgRE9XTiBIRUFWWSBBTkQgUklHSFQgVVAgTElHSFQ7Ozs7CisyNTQ2O0JPWCBEUkFXSU5HUyBSSUdIVCBET1dOIEhFQVZZIEFORCBMRUZUIFVQIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgUklHSFQgRE9XTiBIRUFWWSBBTkQgTEVGVCBVUCBMSUdIVDs7OzsKKzI1NDc7Qk9YIERSQVdJTkdTIERPV04gTElHSFQgQU5EIFVQIEhPUklaT05UQUwgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIExJR0hUIEFORCBVUCBIT1JJWk9OVEFMIEhFQVZZOzs7OworMjU0ODtCT1ggRFJBV0lOR1MgVVAgTElHSFQgQU5EIERPV04gSE9SSVpPTlRBTCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIExJR0hUIEFORCBET1dOIEhPUklaT05UQUwgSEVBVlk7Ozs7CisyNTQ5O0JPWCBEUkFXSU5HUyBSSUdIVCBMSUdIVCBBTkQgTEVGVCBWRVJUSUNBTCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFJJR0hUIExJR0hUIEFORCBMRUZUIFZFUlRJQ0FMIEhFQVZZOzs7OworMjU0QTtCT1ggRFJBV0lOR1MgTEVGVCBMSUdIVCBBTkQgUklHSFQgVkVSVElDQUwgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBMRUZUIExJR0hUIEFORCBSSUdIVCBWRVJUSUNBTCBIRUFWWTs7OzsKKzI1NEI7Qk9YIERSQVdJTkdTIEhFQVZZIFZFUlRJQ0FMIEFORCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVkVSVElDQUwgQU5EIEhPUklaT05UQUw7Ozs7CisyNTRDO0JPWCBEUkFXSU5HUyBMSUdIVCBET1VCTEUgREFTSCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgRE9VQkxFIERBU0ggSE9SSVpPTlRBTDs7OzsKKzI1NEQ7Qk9YIERSQVdJTkdTIEhFQVZZIERPVUJMRSBEQVNIIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBET1VCTEUgREFTSCBIT1JJWk9OVEFMOzs7OworMjU0RTtCT1ggRFJBV0lOR1MgTElHSFQgRE9VQkxFIERBU0ggVkVSVElDQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBET1VCTEUgREFTSCBWRVJUSUNBTDs7OzsKKzI1NEY7Qk9YIERSQVdJTkdTIEhFQVZZIERPVUJMRSBEQVNIIFZFUlRJQ0FMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgRE9VQkxFIERBU0ggVkVSVElDQUw7Ozs7CisyNTUwO0JPWCBEUkFXSU5HUyBET1VCTEUgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIERPVUJMRSBIT1JJWk9OVEFMOzs7OworMjU1MTtCT1ggRFJBV0lOR1MgRE9VQkxFIFZFUlRJQ0FMO1NvOzA7T047Ozs7O047Rk9STVMgRE9VQkxFIFZFUlRJQ0FMOzs7OworMjU1MjtCT1ggRFJBV0lOR1MgRE9XTiBTSU5HTEUgQU5EIFJJR0hUIERPVUJMRTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gU0lOR0xFIEFORCBSSUdIVCBET1VCTEU7Ozs7CisyNTUzO0JPWCBEUkFXSU5HUyBET1dOIERPVUJMRSBBTkQgUklHSFQgU0lOR0xFO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBET1VCTEUgQU5EIFJJR0hUIFNJTkdMRTs7OzsKKzI1NTQ7Qk9YIERSQVdJTkdTIERPVUJMRSBET1dOIEFORCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIERPVUJMRSBET1dOIEFORCBSSUdIVDs7OzsKKzI1NTU7Qk9YIERSQVdJTkdTIERPV04gU0lOR0xFIEFORCBMRUZUIERPVUJMRTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gU0lOR0xFIEFORCBMRUZUIERPVUJMRTs7OzsKKzI1NTY7Qk9YIERSQVdJTkdTIERPV04gRE9VQkxFIEFORCBMRUZUIFNJTkdMRTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gRE9VQkxFIEFORCBMRUZUIFNJTkdMRTs7OzsKKzI1NTc7Qk9YIERSQVdJTkdTIERPVUJMRSBET1dOIEFORCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgRE9VQkxFIERPV04gQU5EIExFRlQ7Ozs7CisyNTU4O0JPWCBEUkFXSU5HUyBVUCBTSU5HTEUgQU5EIFJJR0hUIERPVUJMRTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIFNJTkdMRSBBTkQgUklHSFQgRE9VQkxFOzs7OworMjU1OTtCT1ggRFJBV0lOR1MgVVAgRE9VQkxFIEFORCBSSUdIVCBTSU5HTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBET1VCTEUgQU5EIFJJR0hUIFNJTkdMRTs7OzsKKzI1NUE7Qk9YIERSQVdJTkdTIERPVUJMRSBVUCBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBET1VCTEUgVVAgQU5EIFJJR0hUOzs7OworMjU1QjtCT1ggRFJBV0lOR1MgVVAgU0lOR0xFIEFORCBMRUZUIERPVUJMRTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIFNJTkdMRSBBTkQgTEVGVCBET1VCTEU7Ozs7CisyNTVDO0JPWCBEUkFXSU5HUyBVUCBET1VCTEUgQU5EIExFRlQgU0lOR0xFO1NvOzA7T047Ozs7O047Rk9STVMgVVAgRE9VQkxFIEFORCBMRUZUIFNJTkdMRTs7OzsKKzI1NUQ7Qk9YIERSQVdJTkdTIERPVUJMRSBVUCBBTkQgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIERPVUJMRSBVUCBBTkQgTEVGVDs7OzsKKzI1NUU7Qk9YIERSQVdJTkdTIFZFUlRJQ0FMIFNJTkdMRSBBTkQgUklHSFQgRE9VQkxFO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgU0lOR0xFIEFORCBSSUdIVCBET1VCTEU7Ozs7CisyNTVGO0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBET1VCTEUgQU5EIFJJR0hUIFNJTkdMRTtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIERPVUJMRSBBTkQgUklHSFQgU0lOR0xFOzs7OworMjU2MDtCT1ggRFJBV0lOR1MgRE9VQkxFIFZFUlRJQ0FMIEFORCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIERPVUJMRSBWRVJUSUNBTCBBTkQgUklHSFQ7Ozs7CisyNTYxO0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBTSU5HTEUgQU5EIExFRlQgRE9VQkxFO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgU0lOR0xFIEFORCBMRUZUIERPVUJMRTs7OzsKKzI1NjI7Qk9YIERSQVdJTkdTIFZFUlRJQ0FMIERPVUJMRSBBTkQgTEVGVCBTSU5HTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBWRVJUSUNBTCBET1VCTEUgQU5EIExFRlQgU0lOR0xFOzs7OworMjU2MztCT1ggRFJBV0lOR1MgRE9VQkxFIFZFUlRJQ0FMIEFORCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgRE9VQkxFIFZFUlRJQ0FMIEFORCBMRUZUOzs7OworMjU2NDtCT1ggRFJBV0lOR1MgRE9XTiBTSU5HTEUgQU5EIEhPUklaT05UQUwgRE9VQkxFO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBTSU5HTEUgQU5EIEhPUklaT05UQUwgRE9VQkxFOzs7OworMjU2NTtCT1ggRFJBV0lOR1MgRE9XTiBET1VCTEUgQU5EIEhPUklaT05UQUwgU0lOR0xFO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBET1VCTEUgQU5EIEhPUklaT05UQUwgU0lOR0xFOzs7OworMjU2NjtCT1ggRFJBV0lOR1MgRE9VQkxFIERPV04gQU5EIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBET1VCTEUgRE9XTiBBTkQgSE9SSVpPTlRBTDs7OzsKKzI1Njc7Qk9YIERSQVdJTkdTIFVQIFNJTkdMRSBBTkQgSE9SSVpPTlRBTCBET1VCTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBTSU5HTEUgQU5EIEhPUklaT05UQUwgRE9VQkxFOzs7OworMjU2ODtCT1ggRFJBV0lOR1MgVVAgRE9VQkxFIEFORCBIT1JJWk9OVEFMIFNJTkdMRTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIERPVUJMRSBBTkQgSE9SSVpPTlRBTCBTSU5HTEU7Ozs7CisyNTY5O0JPWCBEUkFXSU5HUyBET1VCTEUgVVAgQU5EIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBET1VCTEUgVVAgQU5EIEhPUklaT05UQUw7Ozs7CisyNTZBO0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBTSU5HTEUgQU5EIEhPUklaT05UQUwgRE9VQkxFO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgU0lOR0xFIEFORCBIT1JJWk9OVEFMIERPVUJMRTs7OzsKKzI1NkI7Qk9YIERSQVdJTkdTIFZFUlRJQ0FMIERPVUJMRSBBTkQgSE9SSVpPTlRBTCBTSU5HTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBWRVJUSUNBTCBET1VCTEUgQU5EIEhPUklaT05UQUwgU0lOR0xFOzs7OworMjU2QztCT1ggRFJBV0lOR1MgRE9VQkxFIFZFUlRJQ0FMIEFORCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgRE9VQkxFIFZFUlRJQ0FMIEFORCBIT1JJWk9OVEFMOzs7OworMjU2RDtCT1ggRFJBV0lOR1MgTElHSFQgQVJDIERPV04gQU5EIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgQVJDIERPV04gQU5EIFJJR0hUOzs7OworMjU2RTtCT1ggRFJBV0lOR1MgTElHSFQgQVJDIERPV04gQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBBUkMgRE9XTiBBTkQgTEVGVDs7OzsKKzI1NkY7Qk9YIERSQVdJTkdTIExJR0hUIEFSQyBVUCBBTkQgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIEFSQyBVUCBBTkQgTEVGVDs7OzsKKzI1NzA7Qk9YIERSQVdJTkdTIExJR0hUIEFSQyBVUCBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBBUkMgVVAgQU5EIFJJR0hUOzs7OworMjU3MTtCT1ggRFJBV0lOR1MgTElHSFQgRElBR09OQUwgVVBQRVIgUklHSFQgVE8gTE9XRVIgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIERJQUdPTkFMIFVQUEVSIFJJR0hUIFRPIExPV0VSIExFRlQ7Ozs7CisyNTcyO0JPWCBEUkFXSU5HUyBMSUdIVCBESUFHT05BTCBVUFBFUiBMRUZUIFRPIExPV0VSIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgRElBR09OQUwgVVBQRVIgTEVGVCBUTyBMT1dFUiBSSUdIVDs7OzsKKzI1NzM7Qk9YIERSQVdJTkdTIExJR0hUIERJQUdPTkFMIENST1NTO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgRElBR09OQUwgQ1JPU1M7Ozs7CisyNTc0O0JPWCBEUkFXSU5HUyBMSUdIVCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgTEVGVDs7OzsKKzI1NzU7Qk9YIERSQVdJTkdTIExJR0hUIFVQO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgVVA7Ozs7CisyNTc2O0JPWCBEUkFXSU5HUyBMSUdIVCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFJJR0hUOzs7OworMjU3NztCT1ggRFJBV0lOR1MgTElHSFQgRE9XTjtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIERPV047Ozs7CisyNTc4O0JPWCBEUkFXSU5HUyBIRUFWWSBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgTEVGVDs7OzsKKzI1Nzk7Qk9YIERSQVdJTkdTIEhFQVZZIFVQO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVVA7Ozs7CisyNTdBO0JPWCBEUkFXSU5HUyBIRUFWWSBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFJJR0hUOzs7OworMjU3QjtCT1ggRFJBV0lOR1MgSEVBVlkgRE9XTjtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIERPV047Ozs7CisyNTdDO0JPWCBEUkFXSU5HUyBMSUdIVCBMRUZUIEFORCBIRUFWWSBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIExFRlQgQU5EIEhFQVZZIFJJR0hUOzs7OworMjU3RDtCT1ggRFJBV0lOR1MgTElHSFQgVVAgQU5EIEhFQVZZIERPV047U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBVUCBBTkQgSEVBVlkgRE9XTjs7OzsKKzI1N0U7Qk9YIERSQVdJTkdTIEhFQVZZIExFRlQgQU5EIExJR0hUIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgTEVGVCBBTkQgTElHSFQgUklHSFQ7Ozs7CisyNTdGO0JPWCBEUkFXSU5HUyBIRUFWWSBVUCBBTkQgTElHSFQgRE9XTjtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFVQIEFORCBMSUdIVCBET1dOOzs7OworMjU4MDtVUFBFUiBIQUxGIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4MTtMT1dFUiBPTkUgRUlHSFRIIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4MjtMT1dFUiBPTkUgUVVBUlRFUiBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1ODM7TE9XRVIgVEhSRUUgRUlHSFRIUyBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1ODQ7TE9XRVIgSEFMRiBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1ODU7TE9XRVIgRklWRSBFSUdIVEhTIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4NjtMT1dFUiBUSFJFRSBRVUFSVEVSUyBCTE9DSztTbzswO09OOzs7OztOO0xPV0VSIFRIUkVFIFFVQVJURVIgQkxPQ0s7Ozs7CisyNTg3O0xPV0VSIFNFVkVOIEVJR0hUSFMgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTg4O0ZVTEwgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTg5O0xFRlQgU0VWRU4gRUlHSFRIUyBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1OEE7TEVGVCBUSFJFRSBRVUFSVEVSUyBCTE9DSztTbzswO09OOzs7OztOO0xFRlQgVEhSRUUgUVVBUlRFUiBCTE9DSzs7OzsKKzI1OEI7TEVGVCBGSVZFIEVJR0hUSFMgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNThDO0xFRlQgSEFMRiBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1OEQ7TEVGVCBUSFJFRSBFSUdIVEhTIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4RTtMRUZUIE9ORSBRVUFSVEVSIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4RjtMRUZUIE9ORSBFSUdIVEggQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTkwO1JJR0hUIEhBTEYgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTkxO0xJR0hUIFNIQURFO1NvOzA7T047Ozs7O047Ozs7OworMjU5MjtNRURJVU0gU0hBREU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTkzO0RBUksgU0hBREU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTk0O1VQUEVSIE9ORSBFSUdIVEggQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTk1O1JJR0hUIE9ORSBFSUdIVEggQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUEwO0JMQUNLIFNRVUFSRTtTbzswO09OOzs7OztOOzs7OzsKKzI1QTE7V0hJVEUgU1FVQVJFO1NvOzA7T047Ozs7O047Ozs7OworMjVBMjtXSElURSBTUVVBUkUgV0lUSCBST1VOREVEIENPUk5FUlM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUEzO1dISVRFIFNRVUFSRSBDT05UQUlOSU5HIEJMQUNLIFNNQUxMIFNRVUFSRTtTbzswO09OOzs7OztOOzs7OzsKKzI1QTQ7U1FVQVJFIFdJVEggSE9SSVpPTlRBTCBGSUxMO1NvOzA7T047Ozs7O047Ozs7OworMjVBNTtTUVVBUkUgV0lUSCBWRVJUSUNBTCBGSUxMO1NvOzA7T047Ozs7O047Ozs7OworMjVBNjtTUVVBUkUgV0lUSCBPUlRIT0dPTkFMIENST1NTSEFUQ0ggRklMTDtTbzswO09OOzs7OztOOzs7OzsKKzI1QTc7U1FVQVJFIFdJVEggVVBQRVIgTEVGVCBUTyBMT1dFUiBSSUdIVCBGSUxMO1NvOzA7T047Ozs7O047Ozs7OworMjVBODtTUVVBUkUgV0lUSCBVUFBFUiBSSUdIVCBUTyBMT1dFUiBMRUZUIEZJTEw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUE5O1NRVUFSRSBXSVRIIERJQUdPTkFMIENST1NTSEFUQ0ggRklMTDtTbzswO09OOzs7OztOOzs7OzsKKzI1QUE7QkxBQ0sgU01BTEwgU1FVQVJFO1NvOzA7T047Ozs7O047Ozs7OworMjVBQjtXSElURSBTTUFMTCBTUVVBUkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUFDO0JMQUNLIFJFQ1RBTkdMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1QUQ7V0hJVEUgUkVDVEFOR0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVBRTtCTEFDSyBWRVJUSUNBTCBSRUNUQU5HTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUFGO1dISVRFIFZFUlRJQ0FMIFJFQ1RBTkdMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1QjA7QkxBQ0sgUEFSQUxMRUxPR1JBTTtTbzswO09OOzs7OztOOzs7OzsKKzI1QjE7V0hJVEUgUEFSQUxMRUxPR1JBTTtTbzswO09OOzs7OztOOzs7OzsKKzI1QjI7QkxBQ0sgVVAtUE9JTlRJTkcgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtCTEFDSyBVUCBQT0lOVElORyBUUklBTkdMRTs7OzsKKzI1QjM7V0hJVEUgVVAtUE9JTlRJTkcgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtXSElURSBVUCBQT0lOVElORyBUUklBTkdMRTs7OzsKKzI1QjQ7QkxBQ0sgVVAtUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtCTEFDSyBVUCBQT0lOVElORyBTTUFMTCBUUklBTkdMRTs7OzsKKzI1QjU7V0hJVEUgVVAtUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtXSElURSBVUCBQT0lOVElORyBTTUFMTCBUUklBTkdMRTs7OzsKKzI1QjY7QkxBQ0sgUklHSFQtUE9JTlRJTkcgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtCTEFDSyBSSUdIVCBQT0lOVElORyBUUklBTkdMRTs7OzsKKzI1Qjc7V0hJVEUgUklHSFQtUE9JTlRJTkcgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtXSElURSBSSUdIVCBQT0lOVElORyBUUklBTkdMRTs7OzsKKzI1Qjg7QkxBQ0sgUklHSFQtUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtCTEFDSyBSSUdIVCBQT0lOVElORyBTTUFMTCBUUklBTkdMRTs7OzsKKzI1Qjk7V0hJVEUgUklHSFQtUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtXSElURSBSSUdIVCBQT0lOVElORyBTTUFMTCBUUklBTkdMRTs7OzsKKzI1QkE7QkxBQ0sgUklHSFQtUE9JTlRJTkcgUE9JTlRFUjtTbzswO09OOzs7OztOO0JMQUNLIFJJR0hUIFBPSU5USU5HIFBPSU5URVI7Ozs7CisyNUJCO1dISVRFIFJJR0hULVBPSU5USU5HIFBPSU5URVI7U287MDtPTjs7Ozs7TjtXSElURSBSSUdIVCBQT0lOVElORyBQT0lOVEVSOzs7OworMjVCQztCTEFDSyBET1dOLVBPSU5USU5HIFRSSUFOR0xFO1NvOzA7T047Ozs7O047QkxBQ0sgRE9XTiBQT0lOVElORyBUUklBTkdMRTs7OzsKKzI1QkQ7V0hJVEUgRE9XTi1QT0lOVElORyBUUklBTkdMRTtTbzswO09OOzs7OztOO1dISVRFIERPV04gUE9JTlRJTkcgVFJJQU5HTEU7Ozs7CisyNUJFO0JMQUNLIERPV04tUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtCTEFDSyBET1dOIFBPSU5USU5HIFNNQUxMIFRSSUFOR0xFOzs7OworMjVCRjtXSElURSBET1dOLVBPSU5USU5HIFNNQUxMIFRSSUFOR0xFO1NvOzA7T047Ozs7O047V0hJVEUgRE9XTiBQT0lOVElORyBTTUFMTCBUUklBTkdMRTs7OzsKKzI1QzA7QkxBQ0sgTEVGVC1QT0lOVElORyBUUklBTkdMRTtTbzswO09OOzs7OztOO0JMQUNLIExFRlQgUE9JTlRJTkcgVFJJQU5HTEU7Ozs7CisyNUMxO1dISVRFIExFRlQtUE9JTlRJTkcgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtXSElURSBMRUZUIFBPSU5USU5HIFRSSUFOR0xFOzs7OworMjVDMjtCTEFDSyBMRUZULVBPSU5USU5HIFNNQUxMIFRSSUFOR0xFO1NvOzA7T047Ozs7O047QkxBQ0sgTEVGVCBQT0lOVElORyBTTUFMTCBUUklBTkdMRTs7OzsKKzI1QzM7V0hJVEUgTEVGVC1QT0lOVElORyBTTUFMTCBUUklBTkdMRTtTbzswO09OOzs7OztOO1dISVRFIExFRlQgUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7Ozs7CisyNUM0O0JMQUNLIExFRlQtUE9JTlRJTkcgUE9JTlRFUjtTbzswO09OOzs7OztOO0JMQUNLIExFRlQgUE9JTlRJTkcgUE9JTlRFUjs7OzsKKzI1QzU7V0hJVEUgTEVGVC1QT0lOVElORyBQT0lOVEVSO1NvOzA7T047Ozs7O047V0hJVEUgTEVGVCBQT0lOVElORyBQT0lOVEVSOzs7OworMjVDNjtCTEFDSyBESUFNT05EO1NvOzA7T047Ozs7O047Ozs7OworMjVDNztXSElURSBESUFNT05EO1NvOzA7T047Ozs7O047Ozs7OworMjVDODtXSElURSBESUFNT05EIENPTlRBSU5JTkcgQkxBQ0sgU01BTEwgRElBTU9ORDtTbzswO09OOzs7OztOOzs7OzsKKzI1Qzk7RklTSEVZRTtTbzswO09OOzs7OztOOzs7OzsKKzI1Q0E7TE9aRU5HRTtTbzswO09OOzs7OztOOzs7OzsKKzI1Q0I7V0hJVEUgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVDQztET1RURUQgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVDRDtDSVJDTEUgV0lUSCBWRVJUSUNBTCBGSUxMO1NvOzA7T047Ozs7O047Ozs7OworMjVDRTtCVUxMU0VZRTtTbzswO09OOzs7OztOOzs7OzsKKzI1Q0Y7QkxBQ0sgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVEMDtDSVJDTEUgV0lUSCBMRUZUIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUQxO0NJUkNMRSBXSVRIIFJJR0hUIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUQyO0NJUkNMRSBXSVRIIExPV0VSIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUQzO0NJUkNMRSBXSVRIIFVQUEVSIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUQ0O0NJUkNMRSBXSVRIIFVQUEVSIFJJR0hUIFFVQURSQU5UIEJMQUNLO1NvOzA7T047Ozs7O047Ozs7OworMjVENTtDSVJDTEUgV0lUSCBBTEwgQlVUIFVQUEVSIExFRlQgUVVBRFJBTlQgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUQ2O0xFRlQgSEFMRiBCTEFDSyBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUQ3O1JJR0hUIEhBTEYgQkxBQ0sgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVEODtJTlZFUlNFIEJVTExFVDtTbzswO09OOzs7OztOOzs7OzsKKzI1RDk7SU5WRVJTRSBXSElURSBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNURBO1VQUEVSIEhBTEYgSU5WRVJTRSBXSElURSBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNURCO0xPV0VSIEhBTEYgSU5WRVJTRSBXSElURSBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNURDO1VQUEVSIExFRlQgUVVBRFJBTlQgQ0lSQ1VMQVIgQVJDO1NvOzA7T047Ozs7O047Ozs7OworMjVERDtVUFBFUiBSSUdIVCBRVUFEUkFOVCBDSVJDVUxBUiBBUkM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNURFO0xPV0VSIFJJR0hUIFFVQURSQU5UIENJUkNVTEFSIEFSQztTbzswO09OOzs7OztOOzs7OzsKKzI1REY7TE9XRVIgTEVGVCBRVUFEUkFOVCBDSVJDVUxBUiBBUkM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUUwO1VQUEVSIEhBTEYgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVFMTtMT1dFUiBIQUxGIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1RTI7QkxBQ0sgTE9XRVIgUklHSFQgVFJJQU5HTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUUzO0JMQUNLIExPV0VSIExFRlQgVFJJQU5HTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUU0O0JMQUNLIFVQUEVSIExFRlQgVFJJQU5HTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUU1O0JMQUNLIFVQUEVSIFJJR0hUIFRSSUFOR0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVFNjtXSElURSBCVUxMRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUU3O1NRVUFSRSBXSVRIIExFRlQgSEFMRiBCTEFDSztTbzswO09OOzs7OztOOzs7OzsKKzI1RTg7U1FVQVJFIFdJVEggUklHSFQgSEFMRiBCTEFDSztTbzswO09OOzs7OztOOzs7OzsKKzI1RTk7U1FVQVJFIFdJVEggVVBQRVIgTEVGVCBESUFHT05BTCBIQUxGIEJMQUNLO1NvOzA7T047Ozs7O047Ozs7OworMjVFQTtTUVVBUkUgV0lUSCBMT1dFUiBSSUdIVCBESUFHT05BTCBIQUxGIEJMQUNLO1NvOzA7T047Ozs7O047Ozs7OworMjVFQjtXSElURSBTUVVBUkUgV0lUSCBWRVJUSUNBTCBCSVNFQ1RJTkcgTElORTtTbzswO09OOzs7OztOOzs7OzsKKzI1RUM7V0hJVEUgVVAtUE9JTlRJTkcgVFJJQU5HTEUgV0lUSCBET1Q7U287MDtPTjs7Ozs7TjtXSElURSBVUCBQT0lOVElORyBUUklBTkdMRSBXSVRIIERPVDs7OzsKKzI1RUQ7VVAtUE9JTlRJTkcgVFJJQU5HTEUgV0lUSCBMRUZUIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7TjtVUCBQT0lOVElORyBUUklBTkdMRSBXSVRIIExFRlQgSEFMRiBCTEFDSzs7OzsKKzI1RUU7VVAtUE9JTlRJTkcgVFJJQU5HTEUgV0lUSCBSSUdIVCBIQUxGIEJMQUNLO1NvOzA7T047Ozs7O047VVAgUE9JTlRJTkcgVFJJQU5HTEUgV0lUSCBSSUdIVCBIQUxGIEJMQUNLOzs7OworMjVFRjtMQVJHRSBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjAwO0JMQUNLIFNVTiBXSVRIIFJBWVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjAxO0NMT1VEO1NvOzA7T047Ozs7O047Ozs7OworMjYwMjtVTUJSRUxMQTtTbzswO09OOzs7OztOOzs7OzsKKzI2MDM7U05PV01BTjtTbzswO09OOzs7OztOOzs7OzsKKzI2MDQ7Q09NRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjA1O0JMQUNLIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjA2O1dISVRFIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjA3O0xJR0hUTklORztTbzswO09OOzs7OztOOzs7OzsKKzI2MDg7VEhVTkRFUlNUT1JNO1NvOzA7T047Ozs7O047Ozs7OworMjYwOTtTVU47U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjBBO0FTQ0VORElORyBOT0RFO1NvOzA7T047Ozs7O047Ozs7OworMjYwQjtERVNDRU5ESU5HIE5PREU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjBDO0NPTkpVTkNUSU9OO1NvOzA7T047Ozs7O047Ozs7OworMjYwRDtPUFBPU0lUSU9OO1NvOzA7T047Ozs7O047Ozs7OworMjYwRTtCTEFDSyBURUxFUEhPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjBGO1dISVRFIFRFTEVQSE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzI2MTA7QkFMTE9UIEJPWDtTbzswO09OOzs7OztOOzs7OzsKKzI2MTE7QkFMTE9UIEJPWCBXSVRIIENIRUNLO1NvOzA7T047Ozs7O047Ozs7OworMjYxMjtCQUxMT1QgQk9YIFdJVEggWDtTbzswO09OOzs7OztOOzs7OzsKKzI2MTM7U0FMVElSRTtTbzswO09OOzs7OztOOzs7OzsKKzI2MUE7QkxBQ0sgTEVGVCBQT0lOVElORyBJTkRFWDtTbzswO09OOzs7OztOOzs7OzsKKzI2MUI7QkxBQ0sgUklHSFQgUE9JTlRJTkcgSU5ERVg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjFDO1dISVRFIExFRlQgUE9JTlRJTkcgSU5ERVg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjFEO1dISVRFIFVQIFBPSU5USU5HIElOREVYO1NvOzA7T047Ozs7O047Ozs7OworMjYxRTtXSElURSBSSUdIVCBQT0lOVElORyBJTkRFWDtTbzswO09OOzs7OztOOzs7OzsKKzI2MUY7V0hJVEUgRE9XTiBQT0lOVElORyBJTkRFWDtTbzswO09OOzs7OztOOzs7OzsKKzI2MjA7U0tVTEwgQU5EIENST1NTQk9ORVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjIxO0NBVVRJT04gU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzI2MjI7UkFESU9BQ1RJVkUgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzI2MjM7QklPSEFaQVJEIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjI0O0NBRFVDRVVTO1NvOzA7T047Ozs7O047Ozs7OworMjYyNTtBTktIO1NvOzA7T047Ozs7O047Ozs7OworMjYyNjtPUlRIT0RPWCBDUk9TUztTbzswO09OOzs7OztOOzs7OzsKKzI2Mjc7Q0hJIFJITztTbzswO09OOzs7OztOOzs7OzsKKzI2Mjg7Q1JPU1MgT0YgTE9SUkFJTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjI5O0NST1NTIE9GIEpFUlVTQUxFTTtTbzswO09OOzs7OztOOzs7OzsKKzI2MkE7U1RBUiBBTkQgQ1JFU0NFTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjJCO0ZBUlNJIFNZTUJPTDtTbzswO09OOzs7OztOO1NZTUJPTCBPRiBJUkFOOzs7OworMjYyQztBREkgU0hBS1RJO1NvOzA7T047Ozs7O047Ozs7OworMjYyRDtIQU1NRVIgQU5EIFNJQ0tMRTtTbzswO09OOzs7OztOOzs7OzsKKzI2MkU7UEVBQ0UgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjYyRjtZSU4gWUFORztTbzswO09OOzs7OztOOzs7OzsKKzI2MzA7VFJJR1JBTSBGT1IgSEVBVkVOO1NvOzA7T047Ozs7O047Ozs7OworMjYzMTtUUklHUkFNIEZPUiBMQUtFO1NvOzA7T047Ozs7O047Ozs7OworMjYzMjtUUklHUkFNIEZPUiBGSVJFO1NvOzA7T047Ozs7O047Ozs7OworMjYzMztUUklHUkFNIEZPUiBUSFVOREVSO1NvOzA7T047Ozs7O047Ozs7OworMjYzNDtUUklHUkFNIEZPUiBXSU5EO1NvOzA7T047Ozs7O047Ozs7OworMjYzNTtUUklHUkFNIEZPUiBXQVRFUjtTbzswO09OOzs7OztOOzs7OzsKKzI2MzY7VFJJR1JBTSBGT1IgTU9VTlRBSU47U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjM3O1RSSUdSQU0gRk9SIEVBUlRIO1NvOzA7T047Ozs7O047Ozs7OworMjYzODtXSEVFTCBPRiBESEFSTUE7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjM5O1dISVRFIEZST1dOSU5HIEZBQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjNBO1dISVRFIFNNSUxJTkcgRkFDRTtTbzswO09OOzs7OztOOzs7OzsKKzI2M0I7QkxBQ0sgU01JTElORyBGQUNFO1NvOzA7T047Ozs7O047Ozs7OworMjYzQztXSElURSBTVU4gV0lUSCBSQVlTO1NvOzA7T047Ozs7O047Ozs7OworMjYzRDtGSVJTVCBRVUFSVEVSIE1PT047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjNFO0xBU1QgUVVBUlRFUiBNT09OO1NvOzA7T047Ozs7O047Ozs7OworMjYzRjtNRVJDVVJZO1NvOzA7T047Ozs7O047Ozs7OworMjY0MDtGRU1BTEUgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzI2NDE7RUFSVEg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjQyO01BTEUgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzI2NDM7SlVQSVRFUjtTbzswO09OOzs7OztOOzs7OzsKKzI2NDQ7U0FUVVJOO1NvOzA7T047Ozs7O047Ozs7OworMjY0NTtVUkFOVVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjQ2O05FUFRVTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjQ3O1BMVVRPO1NvOzA7T047Ozs7O047Ozs7OworMjY0ODtBUklFUztTbzswO09OOzs7OztOOzs7OzsKKzI2NDk7VEFVUlVTO1NvOzA7T047Ozs7O047Ozs7OworMjY0QTtHRU1JTkk7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjRCO0NBTkNFUjtTbzswO09OOzs7OztOOzs7OzsKKzI2NEM7TEVPO1NvOzA7T047Ozs7O047Ozs7OworMjY0RDtWSVJHTztTbzswO09OOzs7OztOOzs7OzsKKzI2NEU7TElCUkE7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjRGO1NDT1JQSVVTO1NvOzA7T047Ozs7O047Ozs7OworMjY1MDtTQUdJVFRBUklVUztTbzswO09OOzs7OztOOzs7OzsKKzI2NTE7Q0FQUklDT1JOO1NvOzA7T047Ozs7O047Ozs7OworMjY1MjtBUVVBUklVUztTbzswO09OOzs7OztOOzs7OzsKKzI2NTM7UElTQ0VTO1NvOzA7T047Ozs7O047Ozs7OworMjY1NDtXSElURSBDSEVTUyBLSU5HO1NvOzA7T047Ozs7O047Ozs7OworMjY1NTtXSElURSBDSEVTUyBRVUVFTjtTbzswO09OOzs7OztOOzs7OzsKKzI2NTY7V0hJVEUgQ0hFU1MgUk9PSztTbzswO09OOzs7OztOOzs7OzsKKzI2NTc7V0hJVEUgQ0hFU1MgQklTSE9QO1NvOzA7T047Ozs7O047Ozs7OworMjY1ODtXSElURSBDSEVTUyBLTklHSFQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjU5O1dISVRFIENIRVNTIFBBV047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjVBO0JMQUNLIENIRVNTIEtJTkc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjVCO0JMQUNLIENIRVNTIFFVRUVOO1NvOzA7T047Ozs7O047Ozs7OworMjY1QztCTEFDSyBDSEVTUyBST09LO1NvOzA7T047Ozs7O047Ozs7OworMjY1RDtCTEFDSyBDSEVTUyBCSVNIT1A7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjVFO0JMQUNLIENIRVNTIEtOSUdIVDtTbzswO09OOzs7OztOOzs7OzsKKzI2NUY7QkxBQ0sgQ0hFU1MgUEFXTjtTbzswO09OOzs7OztOOzs7OzsKKzI2NjA7QkxBQ0sgU1BBREUgU1VJVDtTbzswO09OOzs7OztOOzs7OzsKKzI2NjE7V0hJVEUgSEVBUlQgU1VJVDtTbzswO09OOzs7OztOOzs7OzsKKzI2NjI7V0hJVEUgRElBTU9ORCBTVUlUO1NvOzA7T047Ozs7O047Ozs7OworMjY2MztCTEFDSyBDTFVCIFNVSVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjY0O1dISVRFIFNQQURFIFNVSVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjY1O0JMQUNLIEhFQVJUIFNVSVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjY2O0JMQUNLIERJQU1PTkQgU1VJVDtTbzswO09OOzs7OztOOzs7OzsKKzI2Njc7V0hJVEUgQ0xVQiBTVUlUO1NvOzA7T047Ozs7O047Ozs7OworMjY2ODtIT1QgU1BSSU5HUztTbzswO09OOzs7OztOOzs7OzsKKzI2Njk7UVVBUlRFUiBOT1RFO1NvOzA7T047Ozs7O047Ozs7OworMjY2QTtFSUdIVEggTk9URTtTbzswO09OOzs7OztOOzs7OzsKKzI2NkI7QkVBTUVEIEVJR0hUSCBOT1RFUztTbzswO09OOzs7OztOO0JBUlJFRCBFSUdIVEggTk9URVM7Ozs7CisyNjZDO0JFQU1FRCBTSVhURUVOVEggTk9URVM7U287MDtPTjs7Ozs7TjtCQVJSRUQgU0lYVEVFTlRIIE5PVEVTOzs7OworMjY2RDtNVVNJQyBGTEFUIFNJR047U287MDtPTjs7Ozs7TjtGTEFUOzs7OworMjY2RTtNVVNJQyBOQVRVUkFMIFNJR047U287MDtPTjs7Ozs7TjtOQVRVUkFMOzs7OworMjY2RjtNVVNJQyBTSEFSUCBTSUdOO1NvOzA7T047Ozs7O047U0hBUlA7Ozs7CisyNzAxO1VQUEVSIEJMQURFIFNDSVNTT1JTO1NvOzA7T047Ozs7O047Ozs7OworMjcwMjtCTEFDSyBTQ0lTU09SUztTbzswO09OOzs7OztOOzs7OzsKKzI3MDM7TE9XRVIgQkxBREUgU0NJU1NPUlM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzA0O1dISVRFIFNDSVNTT1JTO1NvOzA7T047Ozs7O047Ozs7OworMjcwNjtURUxFUEhPTkUgTE9DQVRJT04gU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzI3MDc7VEFQRSBEUklWRTtTbzswO09OOzs7OztOOzs7OzsKKzI3MDg7QUlSUExBTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzA5O0VOVkVMT1BFO1NvOzA7T047Ozs7O047Ozs7OworMjcwQztWSUNUT1JZIEhBTkQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzBEO1dSSVRJTkcgSEFORDtTbzswO09OOzs7OztOOzs7OzsKKzI3MEU7TE9XRVIgUklHSFQgUEVOQ0lMO1NvOzA7T047Ozs7O047Ozs7OworMjcwRjtQRU5DSUw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzEwO1VQUEVSIFJJR0hUIFBFTkNJTDtTbzswO09OOzs7OztOOzs7OzsKKzI3MTE7V0hJVEUgTklCO1NvOzA7T047Ozs7O047Ozs7OworMjcxMjtCTEFDSyBOSUI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzEzO0NIRUNLIE1BUks7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzE0O0hFQVZZIENIRUNLIE1BUks7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzE1O01VTFRJUExJQ0FUSU9OIFg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzE2O0hFQVZZIE1VTFRJUExJQ0FUSU9OIFg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzE3O0JBTExPVCBYO1NvOzA7T047Ozs7O047Ozs7OworMjcxODtIRUFWWSBCQUxMT1QgWDtTbzswO09OOzs7OztOOzs7OzsKKzI3MTk7T1VUTElORUQgR1JFRUsgQ1JPU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzFBO0hFQVZZIEdSRUVLIENST1NTO1NvOzA7T047Ozs7O047Ozs7OworMjcxQjtPUEVOIENFTlRSRSBDUk9TUztTbzswO09OOzs7OztOO09QRU4gQ0VOVEVSIENST1NTOzs7OworMjcxQztIRUFWWSBPUEVOIENFTlRSRSBDUk9TUztTbzswO09OOzs7OztOO0hFQVZZIE9QRU4gQ0VOVEVSIENST1NTOzs7OworMjcxRDtMQVRJTiBDUk9TUztTbzswO09OOzs7OztOOzs7OzsKKzI3MUU7U0hBRE9XRUQgV0hJVEUgTEFUSU4gQ1JPU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzFGO09VVExJTkVEIExBVElOIENST1NTO1NvOzA7T047Ozs7O047Ozs7OworMjcyMDtNQUxURVNFIENST1NTO1NvOzA7T047Ozs7O047Ozs7OworMjcyMTtTVEFSIE9GIERBVklEO1NvOzA7T047Ozs7O047Ozs7OworMjcyMjtGT1VSIFRFQVJEUk9QLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3MjM7Rk9VUiBCQUxMT09OLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3MjQ7SEVBVlkgRk9VUiBCQUxMT09OLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3MjU7Rk9VUiBDTFVCLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3MjY7QkxBQ0sgRk9VUiBQT0lOVEVEIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzI3O1dISVRFIEZPVVIgUE9JTlRFRCBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjcyOTtTVFJFU1MgT1VUTElORUQgV0hJVEUgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MkE7Q0lSQ0xFRCBXSElURSBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjcyQjtPUEVOIENFTlRSRSBCTEFDSyBTVEFSO1NvOzA7T047Ozs7O047T1BFTiBDRU5URVIgQkxBQ0sgU1RBUjs7OzsKKzI3MkM7QkxBQ0sgQ0VOVFJFIFdISVRFIFNUQVI7U287MDtPTjs7Ozs7TjtCTEFDSyBDRU5URVIgV0hJVEUgU1RBUjs7OzsKKzI3MkQ7T1VUTElORUQgQkxBQ0sgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MkU7SEVBVlkgT1VUTElORUQgQkxBQ0sgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MkY7UElOV0hFRUwgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MzA7U0hBRE9XRUQgV0hJVEUgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MzE7SEVBVlkgQVNURVJJU0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzMyO09QRU4gQ0VOVFJFIEFTVEVSSVNLO1NvOzA7T047Ozs7O047T1BFTiBDRU5URVIgQVNURVJJU0s7Ozs7CisyNzMzO0VJR0hUIFNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3MzQ7RUlHSFQgUE9JTlRFRCBCTEFDSyBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjczNTtFSUdIVCBQT0lOVEVEIFBJTldIRUVMIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzM2O1NJWCBQT0lOVEVEIEJMQUNLIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzM3O0VJR0hUIFBPSU5URUQgUkVDVElMSU5FQVIgQkxBQ0sgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3Mzg7SEVBVlkgRUlHSFQgUE9JTlRFRCBSRUNUSUxJTkVBUiBCTEFDSyBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjczOTtUV0VMVkUgUE9JTlRFRCBCTEFDSyBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjczQTtTSVhURUVOIFBPSU5URUQgQVNURVJJU0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzNCO1RFQVJEUk9QLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3M0M7T1BFTiBDRU5UUkUgVEVBUkRST1AtU1BPS0VEIEFTVEVSSVNLO1NvOzA7T047Ozs7O047T1BFTiBDRU5URVIgVEVBUkRST1AtU1BPS0VEIEFTVEVSSVNLOzs7OworMjczRDtIRUFWWSBURUFSRFJPUC1TUE9LRUQgQVNURVJJU0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzNFO1NJWCBQRVRBTExFRCBCTEFDSyBBTkQgV0hJVEUgRkxPUkVUVEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzNGO0JMQUNLIEZMT1JFVFRFO1NvOzA7T047Ozs7O047Ozs7OworMjc0MDtXSElURSBGTE9SRVRURTtTbzswO09OOzs7OztOOzs7OzsKKzI3NDE7RUlHSFQgUEVUQUxMRUQgT1VUTElORUQgQkxBQ0sgRkxPUkVUVEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzQyO0NJUkNMRUQgT1BFTiBDRU5UUkUgRUlHSFQgUE9JTlRFRCBTVEFSO1NvOzA7T047Ozs7O047Q0lSQ0xFRCBPUEVOIENFTlRFUiBFSUdIVCBQT0lOVEVEIFNUQVI7Ozs7CisyNzQzO0hFQVZZIFRFQVJEUk9QLVNQT0tFRCBQSU5XSEVFTCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3NDQ7U05PV0ZMQUtFO1NvOzA7T047Ozs7O047Ozs7OworMjc0NTtUSUdIVCBUUklGT0xJQVRFIFNOT1dGTEFLRTtTbzswO09OOzs7OztOOzs7OzsKKzI3NDY7SEVBVlkgQ0hFVlJPTiBTTk9XRkxBS0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzQ3O1NQQVJLTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzQ4O0hFQVZZIFNQQVJLTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzQ5O0JBTExPT04tU1BPS0VEIEFTVEVSSVNLO1NvOzA7T047Ozs7O047Ozs7OworMjc0QTtFSUdIVCBURUFSRFJPUC1TUE9LRUQgUFJPUEVMTEVSIEFTVEVSSVNLO1NvOzA7T047Ozs7O047Ozs7OworMjc0QjtIRUFWWSBFSUdIVCBURUFSRFJPUC1TUE9LRUQgUFJPUEVMTEVSIEFTVEVSSVNLO1NvOzA7T047Ozs7O047Ozs7OworMjc0RDtTSEFET1dFRCBXSElURSBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzRGO0xPV0VSIFJJR0hUIERST1AtU0hBRE9XRUQgV0hJVEUgU1FVQVJFO1NvOzA7T047Ozs7O047Ozs7OworMjc1MDtVUFBFUiBSSUdIVCBEUk9QLVNIQURPV0VEIFdISVRFIFNRVUFSRTtTbzswO09OOzs7OztOOzs7OzsKKzI3NTE7TE9XRVIgUklHSFQgU0hBRE9XRUQgV0hJVEUgU1FVQVJFO1NvOzA7T047Ozs7O047Ozs7OworMjc1MjtVUFBFUiBSSUdIVCBTSEFET1dFRCBXSElURSBTUVVBUkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzU2O0JMQUNLIERJQU1PTkQgTUlOVVMgV0hJVEUgWDtTbzswO09OOzs7OztOOzs7OzsKKzI3NTg7TElHSFQgVkVSVElDQUwgQkFSO1NvOzA7T047Ozs7O047Ozs7OworMjc1OTtNRURJVU0gVkVSVElDQUwgQkFSO1NvOzA7T047Ozs7O047Ozs7OworMjc1QTtIRUFWWSBWRVJUSUNBTCBCQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzVCO0hFQVZZIFNJTkdMRSBUVVJORUQgQ09NTUEgUVVPVEFUSU9OIE1BUksgT1JOQU1FTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzVDO0hFQVZZIFNJTkdMRSBDT01NQSBRVU9UQVRJT04gTUFSSyBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NUQ7SEVBVlkgRE9VQkxFIFRVUk5FRCBDT01NQSBRVU9UQVRJT04gTUFSSyBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NUU7SEVBVlkgRE9VQkxFIENPTU1BIFFVT1RBVElPTiBNQVJLIE9STkFNRU5UO1NvOzA7T047Ozs7O047Ozs7OworMjc2MTtDVVJWRUQgU1RFTSBQQVJBR1JBUEggU0lHTiBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NjI7SEVBVlkgRVhDTEFNQVRJT04gTUFSSyBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NjM7SEVBVlkgSEVBUlQgRVhDTEFNQVRJT04gTUFSSyBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NjQ7SEVBVlkgQkxBQ0sgSEVBUlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzY1O1JPVEFURUQgSEVBVlkgQkxBQ0sgSEVBUlQgQlVMTEVUO1NvOzA7T047Ozs7O047Ozs7OworMjc2NjtGTE9SQUwgSEVBUlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzY3O1JPVEFURUQgRkxPUkFMIEhFQVJUIEJVTExFVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NzY7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIE9ORTtObzswO09OOzs7MTsxO047SU5WRVJTRSBDSVJDTEVEIERJR0lUIE9ORTs7OzsKKzI3Nzc7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIFRXTztObzswO09OOzs7MjsyO047SU5WRVJTRSBDSVJDTEVEIERJR0lUIFRXTzs7OzsKKzI3Nzg7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIFRIUkVFO05vOzA7T047OzszOzM7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgVEhSRUU7Ozs7CisyNzc5O0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBESUdJVCBGT1VSO05vOzA7T047Ozs0OzQ7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgRk9VUjs7OzsKKzI3N0E7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIEZJVkU7Tm87MDtPTjs7OzU7NTtOO0lOVkVSU0UgQ0lSQ0xFRCBESUdJVCBGSVZFOzs7OworMjc3QjtESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgRElHSVQgU0lYO05vOzA7T047Ozs2OzY7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgU0lYOzs7OworMjc3QztESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgRElHSVQgU0VWRU47Tm87MDtPTjs7Ozc7NztOO0lOVkVSU0UgQ0lSQ0xFRCBESUdJVCBTRVZFTjs7OzsKKzI3N0Q7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIEVJR0hUO05vOzA7T047Ozs4Ozg7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgRUlHSFQ7Ozs7CisyNzdFO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBESUdJVCBOSU5FO05vOzA7T047Ozs5Ozk7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgTklORTs7OzsKKzI3N0Y7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIE5VTUJFUiBURU47Tm87MDtPTjs7OzsxMDtOO0lOVkVSU0UgQ0lSQ0xFRCBOVU1CRVIgVEVOOzs7OworMjc4MDtESU5HQkFUIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBPTkU7Tm87MDtPTjs7OzE7MTtOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBPTkU7Ozs7CisyNzgxO0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFRXTztObzswO09OOzs7MjsyO047Q0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFRXTzs7OzsKKzI3ODI7RElOR0JBVCBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgVEhSRUU7Tm87MDtPTjs7OzM7MztOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBUSFJFRTs7OzsKKzI3ODM7RElOR0JBVCBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgRk9VUjtObzswO09OOzs7NDs0O047Q0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZPVVI7Ozs7CisyNzg0O0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZJVkU7Tm87MDtPTjs7OzU7NTtOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBGSVZFOzs7OworMjc4NTtESU5HQkFUIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBTSVg7Tm87MDtPTjs7OzY7NjtOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBTSVg7Ozs7CisyNzg2O0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFNFVkVOO05vOzA7T047Ozs3Ozc7TjtDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgU0VWRU47Ozs7CisyNzg3O0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEVJR0hUO05vOzA7T047Ozs4Ozg7TjtDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgRUlHSFQ7Ozs7CisyNzg4O0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIE5JTkU7Tm87MDtPTjs7Ozk7OTtOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBOSU5FOzs7OworMjc4OTtESU5HQkFUIENJUkNMRUQgU0FOUy1TRVJJRiBOVU1CRVIgVEVOO05vOzA7T047Ozs7MTA7TjtDSVJDTEVEIFNBTlMtU0VSSUYgTlVNQkVSIFRFTjs7OzsKKzI3OEE7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgT05FO05vOzA7T047OzsxOzE7TjtJTlZFUlNFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBPTkU7Ozs7CisyNzhCO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFRXTztObzswO09OOzs7MjsyO047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgVFdPOzs7OworMjc4QztESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBUSFJFRTtObzswO09OOzs7MzszO047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgVEhSRUU7Ozs7CisyNzhEO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZPVVI7Tm87MDtPTjs7OzQ7NDtOO0lOVkVSU0UgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZPVVI7Ozs7CisyNzhFO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZJVkU7Tm87MDtPTjs7OzU7NTtOO0lOVkVSU0UgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZJVkU7Ozs7CisyNzhGO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFNJWDtObzswO09OOzs7Njs2O047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgU0lYOzs7OworMjc5MDtESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBTRVZFTjtObzswO09OOzs7Nzs3O047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgU0VWRU47Ozs7CisyNzkxO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEVJR0hUO05vOzA7T047Ozs4Ozg7TjtJTlZFUlNFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBFSUdIVDs7OzsKKzI3OTI7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgTklORTtObzswO09OOzs7OTs5O047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgTklORTs7OzsKKzI3OTM7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIFNBTlMtU0VSSUYgTlVNQkVSIFRFTjtObzswO09OOzs7OzEwO047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgTlVNQkVSIFRFTjs7OzsKKzI3OTQ7SEVBVlkgV0lERS1IRUFERUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFdJREUtSEVBREVEIFJJR0hUIEFSUk9XOzs7OworMjc5ODtIRUFWWSBTT1VUSCBFQVNUIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgTE9XRVIgUklHSFQgQVJST1c7Ozs7CisyNzk5O0hFQVZZIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBSSUdIVCBBUlJPVzs7OzsKKzI3OUE7SEVBVlkgTk9SVEggRUFTVCBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFVQUEVSIFJJR0hUIEFSUk9XOzs7OworMjc5QjtEUkFGVElORyBQT0lOVCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047RFJBRlRJTkcgUE9JTlQgUklHSFQgQVJST1c7Ozs7CisyNzlDO0hFQVZZIFJPVU5ELVRJUFBFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgUk9VTkQtVElQUEVEIFJJR0hUIEFSUk9XOzs7OworMjc5RDtUUklBTkdMRS1IRUFERUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO1RSSUFOR0xFLUhFQURFRCBSSUdIVCBBUlJPVzs7OzsKKzI3OUU7SEVBVlkgVFJJQU5HTEUtSEVBREVEIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBUUklBTkdMRS1IRUFERUQgUklHSFQgQVJST1c7Ozs7CisyNzlGO0RBU0hFRCBUUklBTkdMRS1IRUFERUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0RBU0hFRCBUUklBTkdMRS1IRUFERUQgUklHSFQgQVJST1c7Ozs7CisyN0EwO0hFQVZZIERBU0hFRCBUUklBTkdMRS1IRUFERUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIERBU0hFRCBUUklBTkdMRS1IRUFERUQgUklHSFQgQVJST1c7Ozs7CisyN0ExO0JMQUNLIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtCTEFDSyBSSUdIVCBBUlJPVzs7OzsKKzI3QTI7VEhSRUUtRCBUT1AtTElHSFRFRCBSSUdIVFdBUkRTIEFSUk9XSEVBRDtTbzswO09OOzs7OztOO1RIUkVFLUQgVE9QLUxJR0hURUQgUklHSFQgQVJST1dIRUFEOzs7OworMjdBMztUSFJFRS1EIEJPVFRPTS1MSUdIVEVEIFJJR0hUV0FSRFMgQVJST1dIRUFEO1NvOzA7T047Ozs7O047VEhSRUUtRCBCT1RUT00tTElHSFRFRCBSSUdIVCBBUlJPV0hFQUQ7Ozs7CisyN0E0O0JMQUNLIFJJR0hUV0FSRFMgQVJST1dIRUFEO1NvOzA7T047Ozs7O047QkxBQ0sgUklHSFQgQVJST1dIRUFEOzs7OworMjdBNTtIRUFWWSBCTEFDSyBDVVJWRUQgRE9XTldBUkRTIEFORCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgQkxBQ0sgQ1VSVkVEIERPV04gQU5EIFJJR0hUIEFSUk9XOzs7OworMjdBNjtIRUFWWSBCTEFDSyBDVVJWRUQgVVBXQVJEUyBBTkQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIEJMQUNLIENVUlZFRCBVUCBBTkQgUklHSFQgQVJST1c7Ozs7CisyN0E3O1NRVUFUIEJMQUNLIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtTUVVBVCBCTEFDSyBSSUdIVCBBUlJPVzs7OzsKKzI3QTg7SEVBVlkgQ09OQ0FWRS1QT0lOVEVEIEJMQUNLIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBDT05DQVZFLVBPSU5URUQgQkxBQ0sgUklHSFQgQVJST1c7Ozs7CisyN0E5O1JJR0hULVNIQURFRCBXSElURSBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047UklHSFQtU0hBREVEIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdBQTtMRUZULVNIQURFRCBXSElURSBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047TEVGVC1TSEFERUQgV0hJVEUgUklHSFQgQVJST1c7Ozs7CisyN0FCO0JBQ0stVElMVEVEIFNIQURPV0VEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtCQUNLLVRJTFRFRCBTSEFET1dFRCBXSElURSBSSUdIVCBBUlJPVzs7OzsKKzI3QUM7RlJPTlQtVElMVEVEIFNIQURPV0VEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtGUk9OVC1USUxURUQgU0hBRE9XRUQgV0hJVEUgUklHSFQgQVJST1c7Ozs7CisyN0FEO0hFQVZZIExPV0VSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBMT1dFUiBSSUdIVC1TSEFET1dFRCBXSElURSBSSUdIVCBBUlJPVzs7OzsKKzI3QUU7SEVBVlkgVVBQRVIgUklHSFQtU0hBRE9XRUQgV0hJVEUgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFVQUEVSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdBRjtOT1RDSEVEIExPV0VSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtOT1RDSEVEIExPV0VSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdCMTtOT1RDSEVEIFVQUEVSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtOT1RDSEVEIFVQUEVSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdCMjtDSVJDTEVEIEhFQVZZIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtDSVJDTEVEIEhFQVZZIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdCMztXSElURS1GRUFUSEVSRUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO1dISVRFLUZFQVRIRVJFRCBSSUdIVCBBUlJPVzs7OzsKKzI3QjQ7QkxBQ0stRkVBVEhFUkVEIFNPVVRIIEVBU1QgQVJST1c7U287MDtPTjs7Ozs7TjtCTEFDSy1GRUFUSEVSRUQgTE9XRVIgUklHSFQgQVJST1c7Ozs7CisyN0I1O0JMQUNLLUZFQVRIRVJFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047QkxBQ0stRkVBVEhFUkVEIFJJR0hUIEFSUk9XOzs7OworMjdCNjtCTEFDSy1GRUFUSEVSRUQgTk9SVEggRUFTVCBBUlJPVztTbzswO09OOzs7OztOO0JMQUNLLUZFQVRIRVJFRCBVUFBFUiBSSUdIVCBBUlJPVzs7OzsKKzI3Qjc7SEVBVlkgQkxBQ0stRkVBVEhFUkVEIFNPVVRIIEVBU1QgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBCTEFDSy1GRUFUSEVSRUQgTE9XRVIgUklHSFQgQVJST1c7Ozs7CisyN0I4O0hFQVZZIEJMQUNLLUZFQVRIRVJFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgQkxBQ0stRkVBVEhFUkVEIFJJR0hUIEFSUk9XOzs7OworMjdCOTtIRUFWWSBCTEFDSy1GRUFUSEVSRUQgTk9SVEggRUFTVCBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIEJMQUNLLUZFQVRIRVJFRCBVUFBFUiBSSUdIVCBBUlJPVzs7OzsKKzI3QkE7VEVBUkRST1AtQkFSQkVEIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtURUFSRFJPUC1CQVJCRUQgUklHSFQgQVJST1c7Ozs7CisyN0JCO0hFQVZZIFRFQVJEUk9QLVNIQU5LRUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFRFQVJEUk9QLVNIQU5LRUQgUklHSFQgQVJST1c7Ozs7CisyN0JDO1dFREdFLVRBSUxFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047V0VER0UtVEFJTEVEIFJJR0hUIEFSUk9XOzs7OworMjdCRDtIRUFWWSBXRURHRS1UQUlMRUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFdFREdFLVRBSUxFRCBSSUdIVCBBUlJPVzs7OzsKKzI3QkU7T1BFTi1PVVRMSU5FRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047T1BFTi1PVVRMSU5FRCBSSUdIVCBBUlJPVzs7OzsKKzMwMDA7SURFT0dSQVBISUMgU1BBQ0U7WnM7MDtXUzs8d2lkZT4gMDAyMDs7OztOOzs7OzsKKzMwMDE7SURFT0dSQVBISUMgQ09NTUE7UG87MDtPTjs7Ozs7Tjs7Ozs7CiszMDAyO0lERU9HUkFQSElDIEZVTEwgU1RPUDtQbzswO09OOzs7OztOO0lERU9HUkFQSElDIFBFUklPRDs7OzsKKzMwMDM7RElUVE8gTUFSSztQbzswO09OOzs7OztOOzs7OzsKKzMwMDQ7SkFQQU5FU0UgSU5EVVNUUklBTCBTVEFOREFSRCBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMDA1O0lERU9HUkFQSElDIElURVJBVElPTiBNQVJLO0xtOzA7T047Ozs7O047Ozs7OworMzAwNjtJREVPR1JBUEhJQyBDTE9TSU5HIE1BUks7TG87MDtMOzs7OztOOzs7OzsKKzMwMDc7SURFT0dSQVBISUMgTlVNQkVSIFpFUk87Tmw7MDtMOzs7OzA7Tjs7Ozs7CiszMDA4O0xFRlQgQU5HTEUgQlJBQ0tFVDtQczswO09OOzs7OztZO09QRU5JTkcgQU5HTEUgQlJBQ0tFVDs7OzsKKzMwMDk7UklHSFQgQU5HTEUgQlJBQ0tFVDtQZTswO09OOzs7OztZO0NMT1NJTkcgQU5HTEUgQlJBQ0tFVDs7OzsKKzMwMEE7TEVGVCBET1VCTEUgQU5HTEUgQlJBQ0tFVDtQczswO09OOzs7OztZO09QRU5JTkcgRE9VQkxFIEFOR0xFIEJSQUNLRVQ7Ozs7CiszMDBCO1JJR0hUIERPVUJMRSBBTkdMRSBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Q0xPU0lORyBET1VCTEUgQU5HTEUgQlJBQ0tFVDs7OzsKKzMwMEM7TEVGVCBDT1JORVIgQlJBQ0tFVDtQczswO09OOzs7OztZO09QRU5JTkcgQ09STkVSIEJSQUNLRVQ7Ozs7CiszMDBEO1JJR0hUIENPUk5FUiBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Q0xPU0lORyBDT1JORVIgQlJBQ0tFVDs7OzsKKzMwMEU7TEVGVCBXSElURSBDT1JORVIgQlJBQ0tFVDtQczswO09OOzs7OztZO09QRU5JTkcgV0hJVEUgQ09STkVSIEJSQUNLRVQ7Ozs7CiszMDBGO1JJR0hUIFdISVRFIENPUk5FUiBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Q0xPU0lORyBXSElURSBDT1JORVIgQlJBQ0tFVDs7OzsKKzMwMTA7TEVGVCBCTEFDSyBMRU5USUNVTEFSIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTtPUEVOSU5HIEJMQUNLIExFTlRJQ1VMQVIgQlJBQ0tFVDs7OzsKKzMwMTE7UklHSFQgQkxBQ0sgTEVOVElDVUxBUiBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Q0xPU0lORyBCTEFDSyBMRU5USUNVTEFSIEJSQUNLRVQ7Ozs7CiszMDEyO1BPU1RBTCBNQVJLO1NvOzA7T047Ozs7O047Ozs7OworMzAxMztHRVRBIE1BUks7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMDE0O0xFRlQgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDtQczswO09OOzs7OztZO09QRU5JTkcgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDs7OzsKKzMwMTU7UklHSFQgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDtQZTswO09OOzs7OztZO0NMT1NJTkcgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDs7OzsKKzMwMTY7TEVGVCBXSElURSBMRU5USUNVTEFSIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTtPUEVOSU5HIFdISVRFIExFTlRJQ1VMQVIgQlJBQ0tFVDs7OzsKKzMwMTc7UklHSFQgV0hJVEUgTEVOVElDVUxBUiBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Q0xPU0lORyBXSElURSBMRU5USUNVTEFSIEJSQUNLRVQ7Ozs7CiszMDE4O0xFRlQgV0hJVEUgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDtQczswO09OOzs7OztZO09QRU5JTkcgV0hJVEUgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDs7OzsKKzMwMTk7UklHSFQgV0hJVEUgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDtQZTswO09OOzs7OztZO0NMT1NJTkcgV0hJVEUgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDs7OzsKKzMwMUE7TEVGVCBXSElURSBTUVVBUkUgQlJBQ0tFVDtQczswO09OOzs7OztZO09QRU5JTkcgV0hJVEUgU1FVQVJFIEJSQUNLRVQ7Ozs7CiszMDFCO1JJR0hUIFdISVRFIFNRVUFSRSBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Q0xPU0lORyBXSElURSBTUVVBUkUgQlJBQ0tFVDs7OzsKKzMwMUM7V0FWRSBEQVNIO1BkOzA7T047Ozs7O047Ozs7OworMzAxRDtSRVZFUlNFRCBET1VCTEUgUFJJTUUgUVVPVEFUSU9OIE1BUks7UHM7MDtPTjs7Ozs7Tjs7Ozs7CiszMDFFO0RPVUJMRSBQUklNRSBRVU9UQVRJT04gTUFSSztQZTswO09OOzs7OztOOzs7OzsKKzMwMUY7TE9XIERPVUJMRSBQUklNRSBRVU9UQVRJT04gTUFSSztQZTswO09OOzs7OztOOzs7OzsKKzMwMjA7UE9TVEFMIE1BUksgRkFDRTtTbzswO09OOzs7OztOOzs7OzsKKzMwMjE7SEFOR1pIT1UgTlVNRVJBTCBPTkU7Tmw7MDtMOzs7OzE7Tjs7Ozs7CiszMDIyO0hBTkdaSE9VIE5VTUVSQUwgVFdPO05sOzA7TDs7OzsyO047Ozs7OworMzAyMztIQU5HWkhPVSBOVU1FUkFMIFRIUkVFO05sOzA7TDs7OzszO047Ozs7OworMzAyNDtIQU5HWkhPVSBOVU1FUkFMIEZPVVI7Tmw7MDtMOzs7OzQ7Tjs7Ozs7CiszMDI1O0hBTkdaSE9VIE5VTUVSQUwgRklWRTtObDswO0w7Ozs7NTtOOzs7OzsKKzMwMjY7SEFOR1pIT1UgTlVNRVJBTCBTSVg7Tmw7MDtMOzs7OzY7Tjs7Ozs7CiszMDI3O0hBTkdaSE9VIE5VTUVSQUwgU0VWRU47Tmw7MDtMOzs7Ozc7Tjs7Ozs7CiszMDI4O0hBTkdaSE9VIE5VTUVSQUwgRUlHSFQ7Tmw7MDtMOzs7Ozg7Tjs7Ozs7CiszMDI5O0hBTkdaSE9VIE5VTUVSQUwgTklORTtObDswO0w7Ozs7OTtOOzs7OzsKKzMwMkE7SURFT0dSQVBISUMgTEVWRUwgVE9ORSBNQVJLO01uOzIxODtPTjs7Ozs7Tjs7Ozs7CiszMDJCO0lERU9HUkFQSElDIFJJU0lORyBUT05FIE1BUks7TW47MjI4O09OOzs7OztOOzs7OzsKKzMwMkM7SURFT0dSQVBISUMgREVQQVJUSU5HIFRPTkUgTUFSSztNbjsyMzI7T047Ozs7O047Ozs7OworMzAyRDtJREVPR1JBUEhJQyBFTlRFUklORyBUT05FIE1BUks7TW47MjIyO09OOzs7OztOOzs7OzsKKzMwMkU7SEFOR1VMIFNJTkdMRSBET1QgVE9ORSBNQVJLO01uOzIyNDtPTjs7Ozs7Tjs7Ozs7CiszMDJGO0hBTkdVTCBET1VCTEUgRE9UIFRPTkUgTUFSSztNbjsyMjQ7T047Ozs7O047Ozs7OworMzAzMDtXQVZZIERBU0g7UGQ7MDtPTjs7Ozs7Tjs7Ozs7CiszMDMxO1ZFUlRJQ0FMIEtBTkEgUkVQRUFUIE1BUks7TG07MDtPTjs7Ozs7Tjs7Ozs7CiszMDMyO1ZFUlRJQ0FMIEtBTkEgUkVQRUFUIFdJVEggVk9JQ0VEIFNPVU5EIE1BUks7TG07MDtPTjs7Ozs7Tjs7Ozs7CiszMDMzO1ZFUlRJQ0FMIEtBTkEgUkVQRUFUIE1BUksgVVBQRVIgSEFMRjtMbTswO09OOzs7OztOOzs7OzsKKzMwMzQ7VkVSVElDQUwgS0FOQSBSRVBFQVQgV0lUSCBWT0lDRUQgU09VTkQgTUFSSyBVUFBFUiBIQUxGO0xtOzA7T047Ozs7O047Ozs7OworMzAzNTtWRVJUSUNBTCBLQU5BIFJFUEVBVCBNQVJLIExPV0VSIEhBTEY7TG07MDtPTjs7Ozs7Tjs7Ozs7CiszMDM2O0NJUkNMRUQgUE9TVEFMIE1BUks7U287MDtPTjs8Y29tcGF0PiAzMDEyOzs7O047Ozs7OworMzAzNztJREVPR1JBUEhJQyBURUxFR1JBUEggTElORSBGRUVEIFNFUEFSQVRPUiBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMDNGO0lERU9HUkFQSElDIEhBTEYgRklMTCBTUEFDRTtTbzswO09OOzs7OztOOzs7OzsKKzMwNDE7SElSQUdBTkEgTEVUVEVSIFNNQUxMIEE7TG87MDtMOzs7OztOOzs7OzsKKzMwNDI7SElSQUdBTkEgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzMwNDM7SElSQUdBTkEgTEVUVEVSIFNNQUxMIEk7TG87MDtMOzs7OztOOzs7OzsKKzMwNDQ7SElSQUdBTkEgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzMwNDU7SElSQUdBTkEgTEVUVEVSIFNNQUxMIFU7TG87MDtMOzs7OztOOzs7OzsKKzMwNDY7SElSQUdBTkEgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzMwNDc7SElSQUdBTkEgTEVUVEVSIFNNQUxMIEU7TG87MDtMOzs7OztOOzs7OzsKKzMwNDg7SElSQUdBTkEgTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzMwNDk7SElSQUdBTkEgTEVUVEVSIFNNQUxMIE87TG87MDtMOzs7OztOOzs7OzsKKzMwNEE7SElSQUdBTkEgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzMwNEI7SElSQUdBTkEgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDRDO0hJUkFHQU5BIExFVFRFUiBHQTtMbzswO0w7MzA0QiAzMDk5Ozs7O047Ozs7OworMzA0RDtISVJBR0FOQSBMRVRURVIgS0k7TG87MDtMOzs7OztOOzs7OzsKKzMwNEU7SElSQUdBTkEgTEVUVEVSIEdJO0xvOzA7TDszMDREIDMwOTk7Ozs7Tjs7Ozs7CiszMDRGO0hJUkFHQU5BIExFVFRFUiBLVTtMbzswO0w7Ozs7O047Ozs7OworMzA1MDtISVJBR0FOQSBMRVRURVIgR1U7TG87MDtMOzMwNEYgMzA5OTs7OztOOzs7OzsKKzMwNTE7SElSQUdBTkEgTEVUVEVSIEtFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDUyO0hJUkFHQU5BIExFVFRFUiBHRTtMbzswO0w7MzA1MSAzMDk5Ozs7O047Ozs7OworMzA1MztISVJBR0FOQSBMRVRURVIgS087TG87MDtMOzs7OztOOzs7OzsKKzMwNTQ7SElSQUdBTkEgTEVUVEVSIEdPO0xvOzA7TDszMDUzIDMwOTk7Ozs7Tjs7Ozs7CiszMDU1O0hJUkFHQU5BIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMzA1NjtISVJBR0FOQSBMRVRURVIgWkE7TG87MDtMOzMwNTUgMzA5OTs7OztOOzs7OzsKKzMwNTc7SElSQUdBTkEgTEVUVEVSIFNJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDU4O0hJUkFHQU5BIExFVFRFUiBaSTtMbzswO0w7MzA1NyAzMDk5Ozs7O047Ozs7OworMzA1OTtISVJBR0FOQSBMRVRURVIgU1U7TG87MDtMOzs7OztOOzs7OzsKKzMwNUE7SElSQUdBTkEgTEVUVEVSIFpVO0xvOzA7TDszMDU5IDMwOTk7Ozs7Tjs7Ozs7CiszMDVCO0hJUkFHQU5BIExFVFRFUiBTRTtMbzswO0w7Ozs7O047Ozs7OworMzA1QztISVJBR0FOQSBMRVRURVIgWkU7TG87MDtMOzMwNUIgMzA5OTs7OztOOzs7OzsKKzMwNUQ7SElSQUdBTkEgTEVUVEVSIFNPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDVFO0hJUkFHQU5BIExFVFRFUiBaTztMbzswO0w7MzA1RCAzMDk5Ozs7O047Ozs7OworMzA1RjtISVJBR0FOQSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzMwNjA7SElSQUdBTkEgTEVUVEVSIERBO0xvOzA7TDszMDVGIDMwOTk7Ozs7Tjs7Ozs7CiszMDYxO0hJUkFHQU5BIExFVFRFUiBUSTtMbzswO0w7Ozs7O047Ozs7OworMzA2MjtISVJBR0FOQSBMRVRURVIgREk7TG87MDtMOzMwNjEgMzA5OTs7OztOOzs7OzsKKzMwNjM7SElSQUdBTkEgTEVUVEVSIFNNQUxMIFRVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDY0O0hJUkFHQU5BIExFVFRFUiBUVTtMbzswO0w7Ozs7O047Ozs7OworMzA2NTtISVJBR0FOQSBMRVRURVIgRFU7TG87MDtMOzMwNjQgMzA5OTs7OztOOzs7OzsKKzMwNjY7SElSQUdBTkEgTEVUVEVSIFRFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDY3O0hJUkFHQU5BIExFVFRFUiBERTtMbzswO0w7MzA2NiAzMDk5Ozs7O047Ozs7OworMzA2ODtISVJBR0FOQSBMRVRURVIgVE87TG87MDtMOzs7OztOOzs7OzsKKzMwNjk7SElSQUdBTkEgTEVUVEVSIERPO0xvOzA7TDszMDY4IDMwOTk7Ozs7Tjs7Ozs7CiszMDZBO0hJUkFHQU5BIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMzA2QjtISVJBR0FOQSBMRVRURVIgTkk7TG87MDtMOzs7OztOOzs7OzsKKzMwNkM7SElSQUdBTkEgTEVUVEVSIE5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDZEO0hJUkFHQU5BIExFVFRFUiBORTtMbzswO0w7Ozs7O047Ozs7OworMzA2RTtISVJBR0FOQSBMRVRURVIgTk87TG87MDtMOzs7OztOOzs7OzsKKzMwNkY7SElSQUdBTkEgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDcwO0hJUkFHQU5BIExFVFRFUiBCQTtMbzswO0w7MzA2RiAzMDk5Ozs7O047Ozs7OworMzA3MTtISVJBR0FOQSBMRVRURVIgUEE7TG87MDtMOzMwNkYgMzA5QTs7OztOOzs7OzsKKzMwNzI7SElSQUdBTkEgTEVUVEVSIEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDczO0hJUkFHQU5BIExFVFRFUiBCSTtMbzswO0w7MzA3MiAzMDk5Ozs7O047Ozs7OworMzA3NDtISVJBR0FOQSBMRVRURVIgUEk7TG87MDtMOzMwNzIgMzA5QTs7OztOOzs7OzsKKzMwNzU7SElSQUdBTkEgTEVUVEVSIEhVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDc2O0hJUkFHQU5BIExFVFRFUiBCVTtMbzswO0w7MzA3NSAzMDk5Ozs7O047Ozs7OworMzA3NztISVJBR0FOQSBMRVRURVIgUFU7TG87MDtMOzMwNzUgMzA5QTs7OztOOzs7OzsKKzMwNzg7SElSQUdBTkEgTEVUVEVSIEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDc5O0hJUkFHQU5BIExFVFRFUiBCRTtMbzswO0w7MzA3OCAzMDk5Ozs7O047Ozs7OworMzA3QTtISVJBR0FOQSBMRVRURVIgUEU7TG87MDtMOzMwNzggMzA5QTs7OztOOzs7OzsKKzMwN0I7SElSQUdBTkEgTEVUVEVSIEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDdDO0hJUkFHQU5BIExFVFRFUiBCTztMbzswO0w7MzA3QiAzMDk5Ozs7O047Ozs7OworMzA3RDtISVJBR0FOQSBMRVRURVIgUE87TG87MDtMOzMwN0IgMzA5QTs7OztOOzs7OzsKKzMwN0U7SElSQUdBTkEgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDdGO0hJUkFHQU5BIExFVFRFUiBNSTtMbzswO0w7Ozs7O047Ozs7OworMzA4MDtISVJBR0FOQSBMRVRURVIgTVU7TG87MDtMOzs7OztOOzs7OzsKKzMwODE7SElSQUdBTkEgTEVUVEVSIE1FO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDgyO0hJUkFHQU5BIExFVFRFUiBNTztMbzswO0w7Ozs7O047Ozs7OworMzA4MztISVJBR0FOQSBMRVRURVIgU01BTEwgWUE7TG87MDtMOzs7OztOOzs7OzsKKzMwODQ7SElSQUdBTkEgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDg1O0hJUkFHQU5BIExFVFRFUiBTTUFMTCBZVTtMbzswO0w7Ozs7O047Ozs7OworMzA4NjtISVJBR0FOQSBMRVRURVIgWVU7TG87MDtMOzs7OztOOzs7OzsKKzMwODc7SElSQUdBTkEgTEVUVEVSIFNNQUxMIFlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDg4O0hJUkFHQU5BIExFVFRFUiBZTztMbzswO0w7Ozs7O047Ozs7OworMzA4OTtISVJBR0FOQSBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzMwOEE7SElSQUdBTkEgTEVUVEVSIFJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDhCO0hJUkFHQU5BIExFVFRFUiBSVTtMbzswO0w7Ozs7O047Ozs7OworMzA4QztISVJBR0FOQSBMRVRURVIgUkU7TG87MDtMOzs7OztOOzs7OzsKKzMwOEQ7SElSQUdBTkEgTEVUVEVSIFJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDhFO0hJUkFHQU5BIExFVFRFUiBTTUFMTCBXQTtMbzswO0w7Ozs7O047Ozs7OworMzA4RjtISVJBR0FOQSBMRVRURVIgV0E7TG87MDtMOzs7OztOOzs7OzsKKzMwOTA7SElSQUdBTkEgTEVUVEVSIFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDkxO0hJUkFHQU5BIExFVFRFUiBXRTtMbzswO0w7Ozs7O047Ozs7OworMzA5MjtISVJBR0FOQSBMRVRURVIgV087TG87MDtMOzs7OztOOzs7OzsKKzMwOTM7SElSQUdBTkEgTEVUVEVSIE47TG87MDtMOzs7OztOOzs7OzsKKzMwOTQ7SElSQUdBTkEgTEVUVEVSIFZVO0xvOzA7TDszMDQ2IDMwOTk7Ozs7Tjs7Ozs7CiszMDk5O0NPTUJJTklORyBLQVRBS0FOQS1ISVJBR0FOQSBWT0lDRUQgU09VTkQgTUFSSztNbjs4O09OOzs7OztOO05PTi1TUEFDSU5HIEtBVEFLQU5BLUhJUkFHQU5BIFZPSUNFRCBTT1VORCBNQVJLOzs7OworMzA5QTtDT01CSU5JTkcgS0FUQUtBTkEtSElSQUdBTkEgU0VNSS1WT0lDRUQgU09VTkQgTUFSSztNbjs4O09OOzs7OztOO05PTi1TUEFDSU5HIEtBVEFLQU5BLUhJUkFHQU5BIFNFTUktVk9JQ0VEIFNPVU5EIE1BUks7Ozs7CiszMDlCO0tBVEFLQU5BLUhJUkFHQU5BIFZPSUNFRCBTT1VORCBNQVJLO1NrOzA7T047PGNvbXBhdD4gMDAyMCAzMDk5Ozs7O047Ozs7OworMzA5QztLQVRBS0FOQS1ISVJBR0FOQSBTRU1JLVZPSUNFRCBTT1VORCBNQVJLO1NrOzA7T047PGNvbXBhdD4gMDAyMCAzMDlBOzs7O047Ozs7OworMzA5RDtISVJBR0FOQSBJVEVSQVRJT04gTUFSSztMbTswO0w7Ozs7O047Ozs7OworMzA5RTtISVJBR0FOQSBWT0lDRUQgSVRFUkFUSU9OIE1BUks7TG07MDtMOzMwOUQgMzA5OTs7OztOOzs7OzsKKzMwQTE7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIEE7TG87MDtMOzs7OztOOzs7OzsKKzMwQTI7S0FUQUtBTkEgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzMwQTM7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIEk7TG87MDtMOzs7OztOOzs7OzsKKzMwQTQ7S0FUQUtBTkEgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzMwQTU7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIFU7TG87MDtMOzs7OztOOzs7OzsKKzMwQTY7S0FUQUtBTkEgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzMwQTc7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIEU7TG87MDtMOzs7OztOOzs7OzsKKzMwQTg7S0FUQUtBTkEgTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzMwQTk7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIE87TG87MDtMOzs7OztOOzs7OzsKKzMwQUE7S0FUQUtBTkEgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzMwQUI7S0FUQUtBTkEgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEFDO0tBVEFLQU5BIExFVFRFUiBHQTtMbzswO0w7MzBBQiAzMDk5Ozs7O047Ozs7OworMzBBRDtLQVRBS0FOQSBMRVRURVIgS0k7TG87MDtMOzs7OztOOzs7OzsKKzMwQUU7S0FUQUtBTkEgTEVUVEVSIEdJO0xvOzA7TDszMEFEIDMwOTk7Ozs7Tjs7Ozs7CiszMEFGO0tBVEFLQU5BIExFVFRFUiBLVTtMbzswO0w7Ozs7O047Ozs7OworMzBCMDtLQVRBS0FOQSBMRVRURVIgR1U7TG87MDtMOzMwQUYgMzA5OTs7OztOOzs7OzsKKzMwQjE7S0FUQUtBTkEgTEVUVEVSIEtFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEIyO0tBVEFLQU5BIExFVFRFUiBHRTtMbzswO0w7MzBCMSAzMDk5Ozs7O047Ozs7OworMzBCMztLQVRBS0FOQSBMRVRURVIgS087TG87MDtMOzs7OztOOzs7OzsKKzMwQjQ7S0FUQUtBTkEgTEVUVEVSIEdPO0xvOzA7TDszMEIzIDMwOTk7Ozs7Tjs7Ozs7CiszMEI1O0tBVEFLQU5BIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMzBCNjtLQVRBS0FOQSBMRVRURVIgWkE7TG87MDtMOzMwQjUgMzA5OTs7OztOOzs7OzsKKzMwQjc7S0FUQUtBTkEgTEVUVEVSIFNJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEI4O0tBVEFLQU5BIExFVFRFUiBaSTtMbzswO0w7MzBCNyAzMDk5Ozs7O047Ozs7OworMzBCOTtLQVRBS0FOQSBMRVRURVIgU1U7TG87MDtMOzs7OztOOzs7OzsKKzMwQkE7S0FUQUtBTkEgTEVUVEVSIFpVO0xvOzA7TDszMEI5IDMwOTk7Ozs7Tjs7Ozs7CiszMEJCO0tBVEFLQU5BIExFVFRFUiBTRTtMbzswO0w7Ozs7O047Ozs7OworMzBCQztLQVRBS0FOQSBMRVRURVIgWkU7TG87MDtMOzMwQkIgMzA5OTs7OztOOzs7OzsKKzMwQkQ7S0FUQUtBTkEgTEVUVEVSIFNPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEJFO0tBVEFLQU5BIExFVFRFUiBaTztMbzswO0w7MzBCRCAzMDk5Ozs7O047Ozs7OworMzBCRjtLQVRBS0FOQSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzMwQzA7S0FUQUtBTkEgTEVUVEVSIERBO0xvOzA7TDszMEJGIDMwOTk7Ozs7Tjs7Ozs7CiszMEMxO0tBVEFLQU5BIExFVFRFUiBUSTtMbzswO0w7Ozs7O047Ozs7OworMzBDMjtLQVRBS0FOQSBMRVRURVIgREk7TG87MDtMOzMwQzEgMzA5OTs7OztOOzs7OzsKKzMwQzM7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIFRVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEM0O0tBVEFLQU5BIExFVFRFUiBUVTtMbzswO0w7Ozs7O047Ozs7OworMzBDNTtLQVRBS0FOQSBMRVRURVIgRFU7TG87MDtMOzMwQzQgMzA5OTs7OztOOzs7OzsKKzMwQzY7S0FUQUtBTkEgTEVUVEVSIFRFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEM3O0tBVEFLQU5BIExFVFRFUiBERTtMbzswO0w7MzBDNiAzMDk5Ozs7O047Ozs7OworMzBDODtLQVRBS0FOQSBMRVRURVIgVE87TG87MDtMOzs7OztOOzs7OzsKKzMwQzk7S0FUQUtBTkEgTEVUVEVSIERPO0xvOzA7TDszMEM4IDMwOTk7Ozs7Tjs7Ozs7CiszMENBO0tBVEFLQU5BIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMzBDQjtLQVRBS0FOQSBMRVRURVIgTkk7TG87MDtMOzs7OztOOzs7OzsKKzMwQ0M7S0FUQUtBTkEgTEVUVEVSIE5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMENEO0tBVEFLQU5BIExFVFRFUiBORTtMbzswO0w7Ozs7O047Ozs7OworMzBDRTtLQVRBS0FOQSBMRVRURVIgTk87TG87MDtMOzs7OztOOzs7OzsKKzMwQ0Y7S0FUQUtBTkEgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEQwO0tBVEFLQU5BIExFVFRFUiBCQTtMbzswO0w7MzBDRiAzMDk5Ozs7O047Ozs7OworMzBEMTtLQVRBS0FOQSBMRVRURVIgUEE7TG87MDtMOzMwQ0YgMzA5QTs7OztOOzs7OzsKKzMwRDI7S0FUQUtBTkEgTEVUVEVSIEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEQzO0tBVEFLQU5BIExFVFRFUiBCSTtMbzswO0w7MzBEMiAzMDk5Ozs7O047Ozs7OworMzBENDtLQVRBS0FOQSBMRVRURVIgUEk7TG87MDtMOzMwRDIgMzA5QTs7OztOOzs7OzsKKzMwRDU7S0FUQUtBTkEgTEVUVEVSIEhVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEQ2O0tBVEFLQU5BIExFVFRFUiBCVTtMbzswO0w7MzBENSAzMDk5Ozs7O047Ozs7OworMzBENztLQVRBS0FOQSBMRVRURVIgUFU7TG87MDtMOzMwRDUgMzA5QTs7OztOOzs7OzsKKzMwRDg7S0FUQUtBTkEgTEVUVEVSIEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEQ5O0tBVEFLQU5BIExFVFRFUiBCRTtMbzswO0w7MzBEOCAzMDk5Ozs7O047Ozs7OworMzBEQTtLQVRBS0FOQSBMRVRURVIgUEU7TG87MDtMOzMwRDggMzA5QTs7OztOOzs7OzsKKzMwREI7S0FUQUtBTkEgTEVUVEVSIEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMERDO0tBVEFLQU5BIExFVFRFUiBCTztMbzswO0w7MzBEQiAzMDk5Ozs7O047Ozs7OworMzBERDtLQVRBS0FOQSBMRVRURVIgUE87TG87MDtMOzMwREIgMzA5QTs7OztOOzs7OzsKKzMwREU7S0FUQUtBTkEgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMERGO0tBVEFLQU5BIExFVFRFUiBNSTtMbzswO0w7Ozs7O047Ozs7OworMzBFMDtLQVRBS0FOQSBMRVRURVIgTVU7TG87MDtMOzs7OztOOzs7OzsKKzMwRTE7S0FUQUtBTkEgTEVUVEVSIE1FO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEUyO0tBVEFLQU5BIExFVFRFUiBNTztMbzswO0w7Ozs7O047Ozs7OworMzBFMztLQVRBS0FOQSBMRVRURVIgU01BTEwgWUE7TG87MDtMOzs7OztOOzs7OzsKKzMwRTQ7S0FUQUtBTkEgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEU1O0tBVEFLQU5BIExFVFRFUiBTTUFMTCBZVTtMbzswO0w7Ozs7O047Ozs7OworMzBFNjtLQVRBS0FOQSBMRVRURVIgWVU7TG87MDtMOzs7OztOOzs7OzsKKzMwRTc7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIFlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEU4O0tBVEFLQU5BIExFVFRFUiBZTztMbzswO0w7Ozs7O047Ozs7OworMzBFOTtLQVRBS0FOQSBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzMwRUE7S0FUQUtBTkEgTEVUVEVSIFJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEVCO0tBVEFLQU5BIExFVFRFUiBSVTtMbzswO0w7Ozs7O047Ozs7OworMzBFQztLQVRBS0FOQSBMRVRURVIgUkU7TG87MDtMOzs7OztOOzs7OzsKKzMwRUQ7S0FUQUtBTkEgTEVUVEVSIFJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEVFO0tBVEFLQU5BIExFVFRFUiBTTUFMTCBXQTtMbzswO0w7Ozs7O047Ozs7OworMzBFRjtLQVRBS0FOQSBMRVRURVIgV0E7TG87MDtMOzs7OztOOzs7OzsKKzMwRjA7S0FUQUtBTkEgTEVUVEVSIFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEYxO0tBVEFLQU5BIExFVFRFUiBXRTtMbzswO0w7Ozs7O047Ozs7OworMzBGMjtLQVRBS0FOQSBMRVRURVIgV087TG87MDtMOzs7OztOOzs7OzsKKzMwRjM7S0FUQUtBTkEgTEVUVEVSIE47TG87MDtMOzs7OztOOzs7OzsKKzMwRjQ7S0FUQUtBTkEgTEVUVEVSIFZVO0xvOzA7TDszMEE2IDMwOTk7Ozs7Tjs7Ozs7CiszMEY1O0tBVEFLQU5BIExFVFRFUiBTTUFMTCBLQTtMbzswO0w7Ozs7O047Ozs7OworMzBGNjtLQVRBS0FOQSBMRVRURVIgU01BTEwgS0U7TG87MDtMOzs7OztOOzs7OzsKKzMwRjc7S0FUQUtBTkEgTEVUVEVSIFZBO0xvOzA7TDszMEVGIDMwOTk7Ozs7Tjs7Ozs7CiszMEY4O0tBVEFLQU5BIExFVFRFUiBWSTtMbzswO0w7MzBGMCAzMDk5Ozs7O047Ozs7OworMzBGOTtLQVRBS0FOQSBMRVRURVIgVkU7TG87MDtMOzMwRjEgMzA5OTs7OztOOzs7OzsKKzMwRkE7S0FUQUtBTkEgTEVUVEVSIFZPO0xvOzA7TDszMEYyIDMwOTk7Ozs7Tjs7Ozs7CiszMEZCO0tBVEFLQU5BIE1JRERMRSBET1Q7UGM7MDtMOzs7OztOOzs7OzsKKzMwRkM7S0FUQUtBTkEtSElSQUdBTkEgUFJPTE9OR0VEIFNPVU5EIE1BUks7TG07MDtMOzs7OztOOzs7OzsKKzMwRkQ7S0FUQUtBTkEgSVRFUkFUSU9OIE1BUks7TG07MDtMOzs7OztOOzs7OzsKKzMwRkU7S0FUQUtBTkEgVk9JQ0VEIElURVJBVElPTiBNQVJLO0xtOzA7TDszMEZEIDMwOTk7Ozs7Tjs7Ozs7CiszMTA1O0JPUE9NT0ZPIExFVFRFUiBCO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTA2O0JPUE9NT0ZPIExFVFRFUiBQO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTA3O0JPUE9NT0ZPIExFVFRFUiBNO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTA4O0JPUE9NT0ZPIExFVFRFUiBGO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTA5O0JPUE9NT0ZPIExFVFRFUiBEO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTBBO0JPUE9NT0ZPIExFVFRFUiBUO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTBCO0JPUE9NT0ZPIExFVFRFUiBOO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTBDO0JPUE9NT0ZPIExFVFRFUiBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTBEO0JPUE9NT0ZPIExFVFRFUiBHO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTBFO0JPUE9NT0ZPIExFVFRFUiBLO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTBGO0JPUE9NT0ZPIExFVFRFUiBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTEwO0JPUE9NT0ZPIExFVFRFUiBKO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTExO0JPUE9NT0ZPIExFVFRFUiBRO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTEyO0JPUE9NT0ZPIExFVFRFUiBYO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTEzO0JPUE9NT0ZPIExFVFRFUiBaSDtMbzswO0w7Ozs7O047Ozs7OworMzExNDtCT1BPTU9GTyBMRVRURVIgQ0g7TG87MDtMOzs7OztOOzs7OzsKKzMxMTU7Qk9QT01PRk8gTEVUVEVSIFNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTE2O0JPUE9NT0ZPIExFVFRFUiBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTE3O0JPUE9NT0ZPIExFVFRFUiBaO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTE4O0JPUE9NT0ZPIExFVFRFUiBDO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTE5O0JPUE9NT0ZPIExFVFRFUiBTO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTFBO0JPUE9NT0ZPIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTFCO0JPUE9NT0ZPIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTFDO0JPUE9NT0ZPIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTFEO0JPUE9NT0ZPIExFVFRFUiBFSDtMbzswO0w7Ozs7O047Ozs7OworMzExRTtCT1BPTU9GTyBMRVRURVIgQUk7TG87MDtMOzs7OztOOzs7OzsKKzMxMUY7Qk9QT01PRk8gTEVUVEVSIEVJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTIwO0JPUE9NT0ZPIExFVFRFUiBBVTtMbzswO0w7Ozs7O047Ozs7OworMzEyMTtCT1BPTU9GTyBMRVRURVIgT1U7TG87MDtMOzs7OztOOzs7OzsKKzMxMjI7Qk9QT01PRk8gTEVUVEVSIEFOO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTIzO0JPUE9NT0ZPIExFVFRFUiBFTjtMbzswO0w7Ozs7O047Ozs7OworMzEyNDtCT1BPTU9GTyBMRVRURVIgQU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTI1O0JPUE9NT0ZPIExFVFRFUiBFTkc7TG87MDtMOzs7OztOOzs7OzsKKzMxMjY7Qk9QT01PRk8gTEVUVEVSIEVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTI3O0JPUE9NT0ZPIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTI4O0JPUE9NT0ZPIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTI5O0JPUE9NT0ZPIExFVFRFUiBJVTtMbzswO0w7Ozs7O047Ozs7OworMzEyQTtCT1BPTU9GTyBMRVRURVIgVjtMbzswO0w7Ozs7O047Ozs7OworMzEyQjtCT1BPTU9GTyBMRVRURVIgTkc7TG87MDtMOzs7OztOOzs7OzsKKzMxMkM7Qk9QT01PRk8gTEVUVEVSIEdOO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTMxO0hBTkdVTCBMRVRURVIgS0lZRU9LO0xvOzA7TDs8Y29tcGF0PiAxMTAwOzs7O047SEFOR1VMIExFVFRFUiBHSVlFT0c7Ozs7CiszMTMyO0hBTkdVTCBMRVRURVIgU1NBTkdLSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExMDE7Ozs7TjtIQU5HVUwgTEVUVEVSIFNTQU5HIEdJWUVPRzs7OzsKKzMxMzM7SEFOR1VMIExFVFRFUiBLSVlFT0stU0lPUztMbzswO0w7PGNvbXBhdD4gMTFBQTs7OztOO0hBTkdVTCBMRVRURVIgR0lZRU9HIFNJT1M7Ozs7CiszMTM0O0hBTkdVTCBMRVRURVIgTklFVU47TG87MDtMOzxjb21wYXQ+IDExMDI7Ozs7Tjs7Ozs7CiszMTM1O0hBTkdVTCBMRVRURVIgTklFVU4tQ0lFVUM7TG87MDtMOzxjb21wYXQ+IDExQUM7Ozs7TjtIQU5HVUwgTEVUVEVSIE5JRVVOIEpJRVVKOzs7OworMzEzNjtIQU5HVUwgTEVUVEVSIE5JRVVOLUhJRVVIO0xvOzA7TDs8Y29tcGF0PiAxMUFEOzs7O047SEFOR1VMIExFVFRFUiBOSUVVTiBISUVVSDs7OzsKKzMxMzc7SEFOR1VMIExFVFRFUiBUSUtFVVQ7TG87MDtMOzxjb21wYXQ+IDExMDM7Ozs7TjtIQU5HVUwgTEVUVEVSIERJR0VVRDs7OzsKKzMxMzg7SEFOR1VMIExFVFRFUiBTU0FOR1RJS0VVVDtMbzswO0w7PGNvbXBhdD4gMTEwNDs7OztOO0hBTkdVTCBMRVRURVIgU1NBTkcgRElHRVVEOzs7OworMzEzOTtIQU5HVUwgTEVUVEVSIFJJRVVMO0xvOzA7TDs8Y29tcGF0PiAxMTA1Ozs7O047SEFOR1VMIExFVFRFUiBMSUVVTDs7OzsKKzMxM0E7SEFOR1VMIExFVFRFUiBSSUVVTC1LSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExQjA7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIEdJWUVPRzs7OzsKKzMxM0I7SEFOR1VMIExFVFRFUiBSSUVVTC1NSUVVTTtMbzswO0w7PGNvbXBhdD4gMTFCMTs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgTUlFVU07Ozs7CiszMTNDO0hBTkdVTCBMRVRURVIgUklFVUwtUElFVVA7TG87MDtMOzxjb21wYXQ+IDExQjI7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIEJJRVVCOzs7OworMzEzRDtIQU5HVUwgTEVUVEVSIFJJRVVMLVNJT1M7TG87MDtMOzxjb21wYXQ+IDExQjM7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIFNJT1M7Ozs7CiszMTNFO0hBTkdVTCBMRVRURVIgUklFVUwtVEhJRVVUSDtMbzswO0w7PGNvbXBhdD4gMTFCNDs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgVElFVVQ7Ozs7CiszMTNGO0hBTkdVTCBMRVRURVIgUklFVUwtUEhJRVVQSDtMbzswO0w7PGNvbXBhdD4gMTFCNTs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgUElFVVA7Ozs7CiszMTQwO0hBTkdVTCBMRVRURVIgUklFVUwtSElFVUg7TG87MDtMOzxjb21wYXQ+IDExMUE7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIEhJRVVIOzs7OworMzE0MTtIQU5HVUwgTEVUVEVSIE1JRVVNO0xvOzA7TDs8Y29tcGF0PiAxMTA2Ozs7O047Ozs7OworMzE0MjtIQU5HVUwgTEVUVEVSIFBJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMTA3Ozs7O047SEFOR1VMIExFVFRFUiBCSUVVQjs7OzsKKzMxNDM7SEFOR1VMIExFVFRFUiBTU0FOR1BJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMTA4Ozs7O047SEFOR1VMIExFVFRFUiBTU0FORyBCSUVVQjs7OzsKKzMxNDQ7SEFOR1VMIExFVFRFUiBQSUVVUC1TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMTIxOzs7O047SEFOR1VMIExFVFRFUiBCSUVVQiBTSU9TOzs7OworMzE0NTtIQU5HVUwgTEVUVEVSIFNJT1M7TG87MDtMOzxjb21wYXQ+IDExMDk7Ozs7Tjs7Ozs7CiszMTQ2O0hBTkdVTCBMRVRURVIgU1NBTkdTSU9TO0xvOzA7TDs8Y29tcGF0PiAxMTBBOzs7O047SEFOR1VMIExFVFRFUiBTU0FORyBTSU9TOzs7OworMzE0NztIQU5HVUwgTEVUVEVSIElFVU5HO0xvOzA7TDs8Y29tcGF0PiAxMTBCOzs7O047Ozs7OworMzE0ODtIQU5HVUwgTEVUVEVSIENJRVVDO0xvOzA7TDs8Y29tcGF0PiAxMTBDOzs7O047SEFOR1VMIExFVFRFUiBKSUVVSjs7OzsKKzMxNDk7SEFOR1VMIExFVFRFUiBTU0FOR0NJRVVDO0xvOzA7TDs8Y29tcGF0PiAxMTBEOzs7O047SEFOR1VMIExFVFRFUiBTU0FORyBKSUVVSjs7OzsKKzMxNEE7SEFOR1VMIExFVFRFUiBDSElFVUNIO0xvOzA7TDs8Y29tcGF0PiAxMTBFOzs7O047SEFOR1VMIExFVFRFUiBDSUVVQzs7OzsKKzMxNEI7SEFOR1VMIExFVFRFUiBLSElFVUtIO0xvOzA7TDs8Y29tcGF0PiAxMTBGOzs7O047SEFOR1VMIExFVFRFUiBLSVlFT0s7Ozs7CiszMTRDO0hBTkdVTCBMRVRURVIgVEhJRVVUSDtMbzswO0w7PGNvbXBhdD4gMTExMDs7OztOO0hBTkdVTCBMRVRURVIgVElFVVQ7Ozs7CiszMTREO0hBTkdVTCBMRVRURVIgUEhJRVVQSDtMbzswO0w7PGNvbXBhdD4gMTExMTs7OztOO0hBTkdVTCBMRVRURVIgUElFVVA7Ozs7CiszMTRFO0hBTkdVTCBMRVRURVIgSElFVUg7TG87MDtMOzxjb21wYXQ+IDExMTI7Ozs7Tjs7Ozs7CiszMTRGO0hBTkdVTCBMRVRURVIgQTtMbzswO0w7PGNvbXBhdD4gMTE2MTs7OztOOzs7OzsKKzMxNTA7SEFOR1VMIExFVFRFUiBBRTtMbzswO0w7PGNvbXBhdD4gMTE2Mjs7OztOOzs7OzsKKzMxNTE7SEFOR1VMIExFVFRFUiBZQTtMbzswO0w7PGNvbXBhdD4gMTE2Mzs7OztOOzs7OzsKKzMxNTI7SEFOR1VMIExFVFRFUiBZQUU7TG87MDtMOzxjb21wYXQ+IDExNjQ7Ozs7Tjs7Ozs7CiszMTUzO0hBTkdVTCBMRVRURVIgRU87TG87MDtMOzxjb21wYXQ+IDExNjU7Ozs7Tjs7Ozs7CiszMTU0O0hBTkdVTCBMRVRURVIgRTtMbzswO0w7PGNvbXBhdD4gMTE2Njs7OztOOzs7OzsKKzMxNTU7SEFOR1VMIExFVFRFUiBZRU87TG87MDtMOzxjb21wYXQ+IDExNjc7Ozs7Tjs7Ozs7CiszMTU2O0hBTkdVTCBMRVRURVIgWUU7TG87MDtMOzxjb21wYXQ+IDExNjg7Ozs7Tjs7Ozs7CiszMTU3O0hBTkdVTCBMRVRURVIgTztMbzswO0w7PGNvbXBhdD4gMTE2OTs7OztOOzs7OzsKKzMxNTg7SEFOR1VMIExFVFRFUiBXQTtMbzswO0w7PGNvbXBhdD4gMTE2QTs7OztOOzs7OzsKKzMxNTk7SEFOR1VMIExFVFRFUiBXQUU7TG87MDtMOzxjb21wYXQ+IDExNkI7Ozs7Tjs7Ozs7CiszMTVBO0hBTkdVTCBMRVRURVIgT0U7TG87MDtMOzxjb21wYXQ+IDExNkM7Ozs7Tjs7Ozs7CiszMTVCO0hBTkdVTCBMRVRURVIgWU87TG87MDtMOzxjb21wYXQ+IDExNkQ7Ozs7Tjs7Ozs7CiszMTVDO0hBTkdVTCBMRVRURVIgVTtMbzswO0w7PGNvbXBhdD4gMTE2RTs7OztOOzs7OzsKKzMxNUQ7SEFOR1VMIExFVFRFUiBXRU87TG87MDtMOzxjb21wYXQ+IDExNkY7Ozs7Tjs7Ozs7CiszMTVFO0hBTkdVTCBMRVRURVIgV0U7TG87MDtMOzxjb21wYXQ+IDExNzA7Ozs7Tjs7Ozs7CiszMTVGO0hBTkdVTCBMRVRURVIgV0k7TG87MDtMOzxjb21wYXQ+IDExNzE7Ozs7Tjs7Ozs7CiszMTYwO0hBTkdVTCBMRVRURVIgWVU7TG87MDtMOzxjb21wYXQ+IDExNzI7Ozs7Tjs7Ozs7CiszMTYxO0hBTkdVTCBMRVRURVIgRVU7TG87MDtMOzxjb21wYXQ+IDExNzM7Ozs7Tjs7Ozs7CiszMTYyO0hBTkdVTCBMRVRURVIgWUk7TG87MDtMOzxjb21wYXQ+IDExNzQ7Ozs7Tjs7Ozs7CiszMTYzO0hBTkdVTCBMRVRURVIgSTtMbzswO0w7PGNvbXBhdD4gMTE3NTs7OztOOzs7OzsKKzMxNjQ7SEFOR1VMIEZJTExFUjtMbzswO0w7PGNvbXBhdD4gMTE2MDs7OztOO0hBTkdVTCBDQUUgT007Ozs7CiszMTY1O0hBTkdVTCBMRVRURVIgU1NBTkdOSUVVTjtMbzswO0w7PGNvbXBhdD4gMTExNDs7OztOO0hBTkdVTCBMRVRURVIgU1NBTkcgTklFVU47Ozs7CiszMTY2O0hBTkdVTCBMRVRURVIgTklFVU4tVElLRVVUO0xvOzA7TDs8Y29tcGF0PiAxMTE1Ozs7O047SEFOR1VMIExFVFRFUiBOSUVVTiBESUdFVUQ7Ozs7CiszMTY3O0hBTkdVTCBMRVRURVIgTklFVU4tU0lPUztMbzswO0w7PGNvbXBhdD4gMTFDNzs7OztOO0hBTkdVTCBMRVRURVIgTklFVU4gU0lPUzs7OzsKKzMxNjg7SEFOR1VMIExFVFRFUiBOSUVVTi1QQU5TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUM4Ozs7O047SEFOR1VMIExFVFRFUiBOSUVVTiBCQU4gQ0hJIEVVTTs7OzsKKzMxNjk7SEFOR1VMIExFVFRFUiBSSUVVTC1LSVlFT0stU0lPUztMbzswO0w7PGNvbXBhdD4gMTFDQzs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgR0lZRU9HIFNJT1M7Ozs7CiszMTZBO0hBTkdVTCBMRVRURVIgUklFVUwtVElLRVVUO0xvOzA7TDs8Y29tcGF0PiAxMUNFOzs7O047SEFOR1VMIExFVFRFUiBMSUVVTCBESUdFVUQ7Ozs7CiszMTZCO0hBTkdVTCBMRVRURVIgUklFVUwtUElFVVAtU0lPUztMbzswO0w7PGNvbXBhdD4gMTFEMzs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgQklFVUIgU0lPUzs7OzsKKzMxNkM7SEFOR1VMIExFVFRFUiBSSUVVTC1QQU5TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUQ3Ozs7O047SEFOR1VMIExFVFRFUiBMSUVVTCBCQU4gQ0hJIEVVTTs7OzsKKzMxNkQ7SEFOR1VMIExFVFRFUiBSSUVVTC1ZRU9SSU5ISUVVSDtMbzswO0w7PGNvbXBhdD4gMTFEOTs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgWUVPTElOIEhJRVVIOzs7OworMzE2RTtIQU5HVUwgTEVUVEVSIE1JRVVNLVBJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMTFDOzs7O047SEFOR1VMIExFVFRFUiBNSUVVTSBCSUVVQjs7OzsKKzMxNkY7SEFOR1VMIExFVFRFUiBNSUVVTS1TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUREOzs7O047SEFOR1VMIExFVFRFUiBNSUVVTSBTSU9TOzs7OworMzE3MDtIQU5HVUwgTEVUVEVSIE1JRVVNLVBBTlNJT1M7TG87MDtMOzxjb21wYXQ+IDExREY7Ozs7TjtIQU5HVUwgTEVUVEVSIEJJRVVCIEJBTiBDSEkgRVVNOzs7OworMzE3MTtIQU5HVUwgTEVUVEVSIEtBUFlFT1VOTUlFVU07TG87MDtMOzxjb21wYXQ+IDExMUQ7Ozs7TjtIQU5HVUwgTEVUVEVSIE1JRVVNIFNVTiBHWUVPTkcgRVVNOzs7OworMzE3MjtIQU5HVUwgTEVUVEVSIFBJRVVQLUtJWUVPSztMbzswO0w7PGNvbXBhdD4gMTExRTs7OztOO0hBTkdVTCBMRVRURVIgQklFVUIgR0lZRU9HOzs7OworMzE3MztIQU5HVUwgTEVUVEVSIFBJRVVQLVRJS0VVVDtMbzswO0w7PGNvbXBhdD4gMTEyMDs7OztOO0hBTkdVTCBMRVRURVIgQklFVUIgRElHRVVEOzs7OworMzE3NDtIQU5HVUwgTEVUVEVSIFBJRVVQLVNJT1MtS0lZRU9LO0xvOzA7TDs8Y29tcGF0PiAxMTIyOzs7O047SEFOR1VMIExFVFRFUiBCSUVVQiBTSU9TIEdJWUVPRzs7OzsKKzMxNzU7SEFOR1VMIExFVFRFUiBQSUVVUC1TSU9TLVRJS0VVVDtMbzswO0w7PGNvbXBhdD4gMTEyMzs7OztOO0hBTkdVTCBMRVRURVIgQklFVUIgU0lPUyBESUdFVUQ7Ozs7CiszMTc2O0hBTkdVTCBMRVRURVIgUElFVVAtQ0lFVUM7TG87MDtMOzxjb21wYXQ+IDExMjc7Ozs7TjtIQU5HVUwgTEVUVEVSIEJJRVVCIEpJRVVKOzs7OworMzE3NztIQU5HVUwgTEVUVEVSIFBJRVVQLVRISUVVVEg7TG87MDtMOzxjb21wYXQ+IDExMjk7Ozs7TjtIQU5HVUwgTEVUVEVSIEJJRVVCIFRJRVVUOzs7OworMzE3ODtIQU5HVUwgTEVUVEVSIEtBUFlFT1VOUElFVVA7TG87MDtMOzxjb21wYXQ+IDExMkI7Ozs7TjtIQU5HVUwgTEVUVEVSIEJJRVVCIFNVTiBHWUVPTkcgRVVNOzs7OworMzE3OTtIQU5HVUwgTEVUVEVSIEtBUFlFT1VOU1NBTkdQSUVVUDtMbzswO0w7PGNvbXBhdD4gMTEyQzs7OztOO0hBTkdVTCBMRVRURVIgU1NBTkcgQklFVUIgU1VOIEdZRU9ORyBFVU07Ozs7CiszMTdBO0hBTkdVTCBMRVRURVIgU0lPUy1LSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExMkQ7Ozs7TjtIQU5HVUwgTEVUVEVSIFNJT1MgR0lZRU9HOzs7OworMzE3QjtIQU5HVUwgTEVUVEVSIFNJT1MtTklFVU47TG87MDtMOzxjb21wYXQ+IDExMkU7Ozs7TjtIQU5HVUwgTEVUVEVSIFNJT1MgTklFVU47Ozs7CiszMTdDO0hBTkdVTCBMRVRURVIgU0lPUy1USUtFVVQ7TG87MDtMOzxjb21wYXQ+IDExMkY7Ozs7TjtIQU5HVUwgTEVUVEVSIFNJT1MgRElHRVVEOzs7OworMzE3RDtIQU5HVUwgTEVUVEVSIFNJT1MtUElFVVA7TG87MDtMOzxjb21wYXQ+IDExMzI7Ozs7TjtIQU5HVUwgTEVUVEVSIFNJT1MgQklFVUI7Ozs7CiszMTdFO0hBTkdVTCBMRVRURVIgU0lPUy1DSUVVQztMbzswO0w7PGNvbXBhdD4gMTEzNjs7OztOO0hBTkdVTCBMRVRURVIgU0lPUyBKSUVVSjs7OzsKKzMxN0Y7SEFOR1VMIExFVFRFUiBQQU5TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMTQwOzs7O047SEFOR1VMIExFVFRFUiBCQU4gQ0hJIEVVTTs7OzsKKzMxODA7SEFOR1VMIExFVFRFUiBTU0FOR0lFVU5HO0xvOzA7TDs8Y29tcGF0PiAxMTQ3Ozs7O047SEFOR1VMIExFVFRFUiBTU0FORyBJRVVORzs7OzsKKzMxODE7SEFOR1VMIExFVFRFUiBZRVNJRVVORztMbzswO0w7PGNvbXBhdD4gMTE0Qzs7OztOO0hBTkdVTCBMRVRURVIgTkdJRVVORzs7OzsKKzMxODI7SEFOR1VMIExFVFRFUiBZRVNJRVVORy1TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUYxOzs7O047SEFOR1VMIExFVFRFUiBOR0lFVU5HIFNJT1M7Ozs7CiszMTgzO0hBTkdVTCBMRVRURVIgWUVTSUVVTkctUEFOU0lPUztMbzswO0w7PGNvbXBhdD4gMTFGMjs7OztOO0hBTkdVTCBMRVRURVIgTkdJRVVORyBCQU4gQ0hJIEVVTTs7OzsKKzMxODQ7SEFOR1VMIExFVFRFUiBLQVBZRU9VTlBISUVVUEg7TG87MDtMOzxjb21wYXQ+IDExNTc7Ozs7TjtIQU5HVUwgTEVUVEVSIFBJRVVQIFNVTiBHWUVPTkcgRVVNOzs7OworMzE4NTtIQU5HVUwgTEVUVEVSIFNTQU5HSElFVUg7TG87MDtMOzxjb21wYXQ+IDExNTg7Ozs7TjtIQU5HVUwgTEVUVEVSIFNTQU5HIEhJRVVIOzs7OworMzE4NjtIQU5HVUwgTEVUVEVSIFlFT1JJTkhJRVVIO0xvOzA7TDs8Y29tcGF0PiAxMTU5Ozs7O047SEFOR1VMIExFVFRFUiBZRU9MSU4gSElFVUg7Ozs7CiszMTg3O0hBTkdVTCBMRVRURVIgWU8tWUE7TG87MDtMOzxjb21wYXQ+IDExODQ7Ozs7TjtIQU5HVUwgTEVUVEVSIFlPWUE7Ozs7CiszMTg4O0hBTkdVTCBMRVRURVIgWU8tWUFFO0xvOzA7TDs8Y29tcGF0PiAxMTg1Ozs7O047SEFOR1VMIExFVFRFUiBZT1lBRTs7OzsKKzMxODk7SEFOR1VMIExFVFRFUiBZTy1JO0xvOzA7TDs8Y29tcGF0PiAxMTg4Ozs7O047SEFOR1VMIExFVFRFUiBZT0k7Ozs7CiszMThBO0hBTkdVTCBMRVRURVIgWVUtWUVPO0xvOzA7TDs8Y29tcGF0PiAxMTkxOzs7O047SEFOR1VMIExFVFRFUiBZVVlFTzs7OzsKKzMxOEI7SEFOR1VMIExFVFRFUiBZVS1ZRTtMbzswO0w7PGNvbXBhdD4gMTE5Mjs7OztOO0hBTkdVTCBMRVRURVIgWVVZRTs7OzsKKzMxOEM7SEFOR1VMIExFVFRFUiBZVS1JO0xvOzA7TDs8Y29tcGF0PiAxMTk0Ozs7O047SEFOR1VMIExFVFRFUiBZVUk7Ozs7CiszMThEO0hBTkdVTCBMRVRURVIgQVJBRUE7TG87MDtMOzxjb21wYXQ+IDExOUU7Ozs7TjtIQU5HVUwgTEVUVEVSIEFMQUUgQTs7OzsKKzMxOEU7SEFOR1VMIExFVFRFUiBBUkFFQUU7TG87MDtMOzxjb21wYXQ+IDExQTE7Ozs7TjtIQU5HVUwgTEVUVEVSIEFMQUUgQUU7Ozs7CiszMTkwO0lERU9HUkFQSElDIEFOTk9UQVRJT04gTElOS0lORyBNQVJLO1NvOzA7TDs7Ozs7TjtLQU5CVU4gVEFURVRFTjtLYW5idW4gVGF0ZXRlbjs7OworMzE5MTtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIFJFVkVSU0UgTUFSSztTbzswO0w7Ozs7O047S0FFUklURU4gUkU7S2Flcml0ZW47OzsKKzMxOTI7SURFT0dSQVBISUMgQU5OT1RBVElPTiBPTkUgTUFSSztObzswO0w7PHN1cGVyPiA0RTAwOzs7O047S0FFUklURU4gSVRJO0thZXJpdGVuOzs7CiszMTkzO0lERU9HUkFQSElDIEFOTk9UQVRJT04gVFdPIE1BUks7Tm87MDtMOzxzdXBlcj4gNEU4Qzs7OztOO0tBRVJJVEVOIE5JO0thZXJpdGVuOzs7CiszMTk0O0lERU9HUkFQSElDIEFOTk9UQVRJT04gVEhSRUUgTUFSSztObzswO0w7PHN1cGVyPiA0RTA5Ozs7O047S0FFUklURU4gU0FOO0thZXJpdGVuOzs7CiszMTk1O0lERU9HUkFQSElDIEFOTk9UQVRJT04gRk9VUiBNQVJLO05vOzA7TDs8c3VwZXI+IDU2REI7Ozs7TjtLQUVSSVRFTiBTSTtLYWVyaXRlbjs7OworMzE5NjtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIFRPUCBNQVJLO1NvOzA7TDs8c3VwZXI+IDRFMEE7Ozs7TjtLQUVSSVRFTiBaWU9VO0thZXJpdGVuOzs7CiszMTk3O0lERU9HUkFQSElDIEFOTk9UQVRJT04gTUlERExFIE1BUks7U287MDtMOzxzdXBlcj4gNEUyRDs7OztOO0tBRVJJVEVOIFRZVVU7S2Flcml0ZW47OzsKKzMxOTg7SURFT0dSQVBISUMgQU5OT1RBVElPTiBCT1RUT00gTUFSSztTbzswO0w7PHN1cGVyPiA0RTBCOzs7O047S0FFUklURU4gR0U7S2Flcml0ZW47OzsKKzMxOTk7SURFT0dSQVBISUMgQU5OT1RBVElPTiBGSVJTVCBNQVJLO1NvOzA7TDs8c3VwZXI+IDc1MzI7Ozs7TjtLQUVSSVRFTiBLT1U7S2Flcml0ZW47OzsKKzMxOUE7SURFT0dSQVBISUMgQU5OT1RBVElPTiBTRUNPTkQgTUFSSztTbzswO0w7PHN1cGVyPiA0RTU5Ozs7O047S0FFUklURU4gT1RVO0thZXJpdGVuOzs7CiszMTlCO0lERU9HUkFQSElDIEFOTk9UQVRJT04gVEhJUkQgTUFSSztTbzswO0w7PHN1cGVyPiA0RTE5Ozs7O047S0FFUklURU4gSEVJO0thZXJpdGVuOzs7CiszMTlDO0lERU9HUkFQSElDIEFOTk9UQVRJT04gRk9VUlRIIE1BUks7U287MDtMOzxzdXBlcj4gNEUwMTs7OztOO0tBRVJJVEVOIFRFSTtLYWVyaXRlbjs7OworMzE5RDtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIEhFQVZFTiBNQVJLO1NvOzA7TDs8c3VwZXI+IDU5Mjk7Ozs7TjtLQUVSSVRFTiBURU47S2Flcml0ZW47OzsKKzMxOUU7SURFT0dSQVBISUMgQU5OT1RBVElPTiBFQVJUSCBNQVJLO1NvOzA7TDs8c3VwZXI+IDU3MzA7Ozs7TjtLQUVSSVRFTiBUSTtLYWVyaXRlbjs7OworMzE5RjtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIE1BTiBNQVJLO1NvOzA7TDs8c3VwZXI+IDRFQkE7Ozs7TjtLQUVSSVRFTiBaSU47S2Flcml0ZW47OzsKKzMyMDA7UEFSRU5USEVTSVpFRCBIQU5HVUwgS0lZRU9LO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDAgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIEdJWUVPRzs7OzsKKzMyMDE7UEFSRU5USEVTSVpFRCBIQU5HVUwgTklFVU47U287MDtMOzxjb21wYXQ+IDAwMjggMTEwMiAwMDI5Ozs7O047Ozs7OworMzIwMjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBUSUtFVVQ7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwMyAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgRElHRVVEOzs7OworMzIwMztQQVJFTlRIRVNJWkVEIEhBTkdVTCBSSUVVTDtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTA1IDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBMSUVVTDs7OzsKKzMyMDQ7UEFSRU5USEVTSVpFRCBIQU5HVUwgTUlFVU07U287MDtMOzxjb21wYXQ+IDAwMjggMTEwNiAwMDI5Ozs7O047Ozs7OworMzIwNTtQQVJFTlRIRVNJWkVEIEhBTkdVTCBQSUVVUDtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTA3IDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBCSUVVQjs7OzsKKzMyMDY7UEFSRU5USEVTSVpFRCBIQU5HVUwgU0lPUztTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTA5IDAwMjk7Ozs7Tjs7Ozs7CiszMjA3O1BBUkVOVEhFU0laRUQgSEFOR1VMIElFVU5HO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMEIgMDAyOTs7OztOOzs7OzsKKzMyMDg7UEFSRU5USEVTSVpFRCBIQU5HVUwgQ0lFVUM7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwQyAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgSklFVUo7Ozs7CiszMjA5O1BBUkVOVEhFU0laRUQgSEFOR1VMIENISUVVQ0g7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwRSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgQ0lFVUM7Ozs7CiszMjBBO1BBUkVOVEhFU0laRUQgSEFOR1VMIEtISUVVS0g7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwRiAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgS0lZRU9LOzs7OworMzIwQjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBUSElFVVRIO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMTAgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIFRJRVVUOzs7OworMzIwQztQQVJFTlRIRVNJWkVEIEhBTkdVTCBQSElFVVBIO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMTEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIFBJRVVQOzs7OworMzIwRDtQQVJFTlRIRVNJWkVEIEhBTkdVTCBISUVVSDtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTEyIDAwMjk7Ozs7Tjs7Ozs7CiszMjBFO1BBUkVOVEhFU0laRUQgSEFOR1VMIEtJWUVPSyBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDAgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgR0E7Ozs7CiszMjBGO1BBUkVOVEhFU0laRUQgSEFOR1VMIE5JRVVOIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwMiAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBOQTs7OzsKKzMyMTA7UEFSRU5USEVTSVpFRCBIQU5HVUwgVElLRVVUIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwMyAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBEQTs7OzsKKzMyMTE7UEFSRU5USEVTSVpFRCBIQU5HVUwgUklFVUwgQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTA1IDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIExBOzs7OworMzIxMjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBNSUVVTSBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDYgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgTUE7Ozs7CiszMjEzO1BBUkVOVEhFU0laRUQgSEFOR1VMIFBJRVVQIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwNyAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBCQTs7OzsKKzMyMTQ7UEFSRU5USEVTSVpFRCBIQU5HVUwgU0lPUyBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDkgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgU0E7Ozs7CiszMjE1O1BBUkVOVEhFU0laRUQgSEFOR1VMIElFVU5HIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwQiAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBBOzs7OworMzIxNjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBDSUVVQyBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMEMgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgSkE7Ozs7CiszMjE3O1BBUkVOVEhFU0laRUQgSEFOR1VMIENISUVVQ0ggQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTBFIDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIENBOzs7OworMzIxODtQQVJFTlRIRVNJWkVEIEhBTkdVTCBLSElFVUtIIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwRiAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBLQTs7OzsKKzMyMTk7UEFSRU5USEVTSVpFRCBIQU5HVUwgVEhJRVVUSCBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMTAgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgVEE7Ozs7CiszMjFBO1BBUkVOVEhFU0laRUQgSEFOR1VMIFBISUVVUEggQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTExIDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIFBBOzs7OworMzIxQjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBISUVVSCBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMTIgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgSEE7Ozs7CiszMjFDO1BBUkVOVEhFU0laRUQgSEFOR1VMIENJRVVDIFU7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwQyAxMTZFIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBKVTs7OzsKKzMyMjA7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggT05FO05vOzA7TDs8Y29tcGF0PiAwMDI4IDRFMDAgMDAyOTs7OztOOzs7OzsKKzMyMjE7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggVFdPO05vOzA7TDs8Y29tcGF0PiAwMDI4IDRFOEMgMDAyOTs7OztOOzs7OzsKKzMyMjI7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggVEhSRUU7Tm87MDtMOzxjb21wYXQ+IDAwMjggNEUwOSAwMDI5Ozs7O047Ozs7OworMzIyMztQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBGT1VSO05vOzA7TDs8Y29tcGF0PiAwMDI4IDU2REIgMDAyOTs7OztOOzs7OzsKKzMyMjQ7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggRklWRTtObzswO0w7PGNvbXBhdD4gMDAyOCA0RTk0IDAwMjk7Ozs7Tjs7Ozs7CiszMjI1O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFNJWDtObzswO0w7PGNvbXBhdD4gMDAyOCA1MTZEIDAwMjk7Ozs7Tjs7Ozs7CiszMjI2O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFNFVkVOO05vOzA7TDs8Y29tcGF0PiAwMDI4IDRFMDMgMDAyOTs7OztOOzs7OzsKKzMyMjc7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggRUlHSFQ7Tm87MDtMOzxjb21wYXQ+IDAwMjggNTE2QiAwMDI5Ozs7O047Ozs7OworMzIyODtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBOSU5FO05vOzA7TDs8Y29tcGF0PiAwMDI4IDRFNUQgMDAyOTs7OztOOzs7OzsKKzMyMjk7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggVEVOO05vOzA7TDs8Y29tcGF0PiAwMDI4IDUzNDEgMDAyOTs7OztOOzs7OzsKKzMyMkE7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggTU9PTjtTbzswO0w7PGNvbXBhdD4gMDAyOCA2NzA4IDAwMjk7Ozs7Tjs7Ozs7CiszMjJCO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIEZJUkU7U287MDtMOzxjb21wYXQ+IDAwMjggNzA2QiAwMDI5Ozs7O047Ozs7OworMzIyQztQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBXQVRFUjtTbzswO0w7PGNvbXBhdD4gMDAyOCA2QzM0IDAwMjk7Ozs7Tjs7Ozs7CiszMjJEO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFdPT0Q7U287MDtMOzxjb21wYXQ+IDAwMjggNjcyOCAwMDI5Ozs7O047Ozs7OworMzIyRTtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBNRVRBTDtTbzswO0w7PGNvbXBhdD4gMDAyOCA5MUQxIDAwMjk7Ozs7Tjs7Ozs7CiszMjJGO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIEVBUlRIO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDU3MUYgMDAyOTs7OztOOzs7OzsKKzMyMzA7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggU1VOO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDY1RTUgMDAyOTs7OztOOzs7OzsKKzMyMzE7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggU1RPQ0s7U287MDtMOzxjb21wYXQ+IDAwMjggNjgyQSAwMDI5Ozs7O047Ozs7OworMzIzMjtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBIQVZFO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDY3MDkgMDAyOTs7OztOOzs7OzsKKzMyMzM7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggU09DSUVUWTtTbzswO0w7PGNvbXBhdD4gMDAyOCA3OTNFIDAwMjk7Ozs7Tjs7Ozs7CiszMjM0O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIE5BTUU7U287MDtMOzxjb21wYXQ+IDAwMjggNTQwRCAwMDI5Ozs7O047Ozs7OworMzIzNTtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBTUEVDSUFMO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDcyNzkgMDAyOTs7OztOOzs7OzsKKzMyMzY7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggRklOQU5DSUFMO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDhDQTEgMDAyOTs7OztOOzs7OzsKKzMyMzc7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggQ09OR1JBVFVMQVRJT047U287MDtMOzxjb21wYXQ+IDAwMjggNzk1RCAwMDI5Ozs7O047Ozs7OworMzIzODtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBMQUJPUjtTbzswO0w7PGNvbXBhdD4gMDAyOCA1MkI0IDAwMjk7Ozs7Tjs7Ozs7CiszMjM5O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFJFUFJFU0VOVDtTbzswO0w7PGNvbXBhdD4gMDAyOCA0RUUzIDAwMjk7Ozs7Tjs7Ozs7CiszMjNBO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIENBTEw7U287MDtMOzxjb21wYXQ+IDAwMjggNTQ3QyAwMDI5Ozs7O047Ozs7OworMzIzQjtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBTVFVEWTtTbzswO0w7PGNvbXBhdD4gMDAyOCA1QjY2IDAwMjk7Ozs7Tjs7Ozs7CiszMjNDO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFNVUEVSVklTRTtTbzswO0w7PGNvbXBhdD4gMDAyOCA3NkUzIDAwMjk7Ozs7Tjs7Ozs7CiszMjNEO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIEVOVEVSUFJJU0U7U287MDtMOzxjb21wYXQ+IDAwMjggNEYwMSAwMDI5Ozs7O047Ozs7OworMzIzRTtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBSRVNPVVJDRTtTbzswO0w7PGNvbXBhdD4gMDAyOCA4Q0M3IDAwMjk7Ozs7Tjs7Ozs7CiszMjNGO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIEFMTElBTkNFO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDUzNTQgMDAyOTs7OztOOzs7OzsKKzMyNDA7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggRkVTVElWQUw7U287MDtMOzxjb21wYXQ+IDAwMjggNzk2RCAwMDI5Ozs7O047Ozs7OworMzI0MTtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBSRVNUO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDRGMTEgMDAyOTs7OztOOzs7OzsKKzMyNDI7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggU0VMRjtTbzswO0w7PGNvbXBhdD4gMDAyOCA4MUVBIDAwMjk7Ozs7Tjs7Ozs7CiszMjQzO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFJFQUNIO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDgxRjMgMDAyOTs7OztOOzs7OzsKKzMyNjA7Q0lSQ0xFRCBIQU5HVUwgS0lZRU9LO1NvOzA7TDs8Y2lyY2xlPiAxMTAwOzs7O047Q0lSQ0xFRCBIQU5HVUwgR0lZRU9HOzs7OworMzI2MTtDSVJDTEVEIEhBTkdVTCBOSUVVTjtTbzswO0w7PGNpcmNsZT4gMTEwMjs7OztOOzs7OzsKKzMyNjI7Q0lSQ0xFRCBIQU5HVUwgVElLRVVUO1NvOzA7TDs8Y2lyY2xlPiAxMTAzOzs7O047Q0lSQ0xFRCBIQU5HVUwgRElHRVVEOzs7OworMzI2MztDSVJDTEVEIEhBTkdVTCBSSUVVTDtTbzswO0w7PGNpcmNsZT4gMTEwNTs7OztOO0NJUkNMRUQgSEFOR1VMIExJRVVMOzs7OworMzI2NDtDSVJDTEVEIEhBTkdVTCBNSUVVTTtTbzswO0w7PGNpcmNsZT4gMTEwNjs7OztOOzs7OzsKKzMyNjU7Q0lSQ0xFRCBIQU5HVUwgUElFVVA7U287MDtMOzxjaXJjbGU+IDExMDc7Ozs7TjtDSVJDTEVEIEhBTkdVTCBCSUVVQjs7OzsKKzMyNjY7Q0lSQ0xFRCBIQU5HVUwgU0lPUztTbzswO0w7PGNpcmNsZT4gMTEwOTs7OztOOzs7OzsKKzMyNjc7Q0lSQ0xFRCBIQU5HVUwgSUVVTkc7U287MDtMOzxjaXJjbGU+IDExMEI7Ozs7Tjs7Ozs7CiszMjY4O0NJUkNMRUQgSEFOR1VMIENJRVVDO1NvOzA7TDs8Y2lyY2xlPiAxMTBDOzs7O047Q0lSQ0xFRCBIQU5HVUwgSklFVUo7Ozs7CiszMjY5O0NJUkNMRUQgSEFOR1VMIENISUVVQ0g7U287MDtMOzxjaXJjbGU+IDExMEU7Ozs7TjtDSVJDTEVEIEhBTkdVTCBDSUVVQzs7OzsKKzMyNkE7Q0lSQ0xFRCBIQU5HVUwgS0hJRVVLSDtTbzswO0w7PGNpcmNsZT4gMTEwRjs7OztOO0NJUkNMRUQgSEFOR1VMIEtJWUVPSzs7OzsKKzMyNkI7Q0lSQ0xFRCBIQU5HVUwgVEhJRVVUSDtTbzswO0w7PGNpcmNsZT4gMTExMDs7OztOO0NJUkNMRUQgSEFOR1VMIFRJRVVUOzs7OworMzI2QztDSVJDTEVEIEhBTkdVTCBQSElFVVBIO1NvOzA7TDs8Y2lyY2xlPiAxMTExOzs7O047Q0lSQ0xFRCBIQU5HVUwgUElFVVA7Ozs7CiszMjZEO0NJUkNMRUQgSEFOR1VMIEhJRVVIO1NvOzA7TDs8Y2lyY2xlPiAxMTEyOzs7O047Ozs7OworMzI2RTtDSVJDTEVEIEhBTkdVTCBLSVlFT0sgQTtTbzswO0w7PGNpcmNsZT4gMTEwMCAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgR0E7Ozs7CiszMjZGO0NJUkNMRUQgSEFOR1VMIE5JRVVOIEE7U287MDtMOzxjaXJjbGU+IDExMDIgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIE5BOzs7OworMzI3MDtDSVJDTEVEIEhBTkdVTCBUSUtFVVQgQTtTbzswO0w7PGNpcmNsZT4gMTEwMyAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgREE7Ozs7CiszMjcxO0NJUkNMRUQgSEFOR1VMIFJJRVVMIEE7U287MDtMOzxjaXJjbGU+IDExMDUgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIExBOzs7OworMzI3MjtDSVJDTEVEIEhBTkdVTCBNSUVVTSBBO1NvOzA7TDs8Y2lyY2xlPiAxMTA2IDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBNQTs7OzsKKzMyNzM7Q0lSQ0xFRCBIQU5HVUwgUElFVVAgQTtTbzswO0w7PGNpcmNsZT4gMTEwNyAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgQkE7Ozs7CiszMjc0O0NJUkNMRUQgSEFOR1VMIFNJT1MgQTtTbzswO0w7PGNpcmNsZT4gMTEwOSAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgU0E7Ozs7CiszMjc1O0NJUkNMRUQgSEFOR1VMIElFVU5HIEE7U287MDtMOzxjaXJjbGU+IDExMEIgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIEE7Ozs7CiszMjc2O0NJUkNMRUQgSEFOR1VMIENJRVVDIEE7U287MDtMOzxjaXJjbGU+IDExMEMgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIEpBOzs7OworMzI3NztDSVJDTEVEIEhBTkdVTCBDSElFVUNIIEE7U287MDtMOzxjaXJjbGU+IDExMEUgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIENBOzs7OworMzI3ODtDSVJDTEVEIEhBTkdVTCBLSElFVUtIIEE7U287MDtMOzxjaXJjbGU+IDExMEYgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIEtBOzs7OworMzI3OTtDSVJDTEVEIEhBTkdVTCBUSElFVVRIIEE7U287MDtMOzxjaXJjbGU+IDExMTAgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIFRBOzs7OworMzI3QTtDSVJDTEVEIEhBTkdVTCBQSElFVVBIIEE7U287MDtMOzxjaXJjbGU+IDExMTEgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIFBBOzs7OworMzI3QjtDSVJDTEVEIEhBTkdVTCBISUVVSCBBO1NvOzA7TDs8Y2lyY2xlPiAxMTEyIDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBIQTs7OzsKKzMyN0Y7S09SRUFOIFNUQU5EQVJEIFNZTUJPTDtTbzswO0w7Ozs7O047Ozs7OworMzI4MDtDSVJDTEVEIElERU9HUkFQSCBPTkU7Tm87MDtMOzxjaXJjbGU+IDRFMDA7OzsxO047Ozs7OworMzI4MTtDSVJDTEVEIElERU9HUkFQSCBUV087Tm87MDtMOzxjaXJjbGU+IDRFOEM7OzsyO047Ozs7OworMzI4MjtDSVJDTEVEIElERU9HUkFQSCBUSFJFRTtObzswO0w7PGNpcmNsZT4gNEUwOTs7OzM7Tjs7Ozs7CiszMjgzO0NJUkNMRUQgSURFT0dSQVBIIEZPVVI7Tm87MDtMOzxjaXJjbGU+IDU2REI7Ozs0O047Ozs7OworMzI4NDtDSVJDTEVEIElERU9HUkFQSCBGSVZFO05vOzA7TDs8Y2lyY2xlPiA0RTk0Ozs7NTtOOzs7OzsKKzMyODU7Q0lSQ0xFRCBJREVPR1JBUEggU0lYO05vOzA7TDs8Y2lyY2xlPiA1MTZEOzs7NjtOOzs7OzsKKzMyODY7Q0lSQ0xFRCBJREVPR1JBUEggU0VWRU47Tm87MDtMOzxjaXJjbGU+IDRFMDM7Ozs3O047Ozs7OworMzI4NztDSVJDTEVEIElERU9HUkFQSCBFSUdIVDtObzswO0w7PGNpcmNsZT4gNTE2Qjs7Ozg7Tjs7Ozs7CiszMjg4O0NJUkNMRUQgSURFT0dSQVBIIE5JTkU7Tm87MDtMOzxjaXJjbGU+IDRFNUQ7Ozs5O047Ozs7OworMzI4OTtDSVJDTEVEIElERU9HUkFQSCBURU47Tm87MDtMOzxjaXJjbGU+IDUzNDE7OzsxMDtOOzs7OzsKKzMyOEE7Q0lSQ0xFRCBJREVPR1JBUEggTU9PTjtTbzswO0w7PGNpcmNsZT4gNjcwODs7OztOOzs7OzsKKzMyOEI7Q0lSQ0xFRCBJREVPR1JBUEggRklSRTtTbzswO0w7PGNpcmNsZT4gNzA2Qjs7OztOOzs7OzsKKzMyOEM7Q0lSQ0xFRCBJREVPR1JBUEggV0FURVI7U287MDtMOzxjaXJjbGU+IDZDMzQ7Ozs7Tjs7Ozs7CiszMjhEO0NJUkNMRUQgSURFT0dSQVBIIFdPT0Q7U287MDtMOzxjaXJjbGU+IDY3Mjg7Ozs7Tjs7Ozs7CiszMjhFO0NJUkNMRUQgSURFT0dSQVBIIE1FVEFMO1NvOzA7TDs8Y2lyY2xlPiA5MUQxOzs7O047Ozs7OworMzI4RjtDSVJDTEVEIElERU9HUkFQSCBFQVJUSDtTbzswO0w7PGNpcmNsZT4gNTcxRjs7OztOOzs7OzsKKzMyOTA7Q0lSQ0xFRCBJREVPR1JBUEggU1VOO1NvOzA7TDs8Y2lyY2xlPiA2NUU1Ozs7O047Ozs7OworMzI5MTtDSVJDTEVEIElERU9HUkFQSCBTVE9DSztTbzswO0w7PGNpcmNsZT4gNjgyQTs7OztOOzs7OzsKKzMyOTI7Q0lSQ0xFRCBJREVPR1JBUEggSEFWRTtTbzswO0w7PGNpcmNsZT4gNjcwOTs7OztOOzs7OzsKKzMyOTM7Q0lSQ0xFRCBJREVPR1JBUEggU09DSUVUWTtTbzswO0w7PGNpcmNsZT4gNzkzRTs7OztOOzs7OzsKKzMyOTQ7Q0lSQ0xFRCBJREVPR1JBUEggTkFNRTtTbzswO0w7PGNpcmNsZT4gNTQwRDs7OztOOzs7OzsKKzMyOTU7Q0lSQ0xFRCBJREVPR1JBUEggU1BFQ0lBTDtTbzswO0w7PGNpcmNsZT4gNzI3OTs7OztOOzs7OzsKKzMyOTY7Q0lSQ0xFRCBJREVPR1JBUEggRklOQU5DSUFMO1NvOzA7TDs8Y2lyY2xlPiA4Q0ExOzs7O047Ozs7OworMzI5NztDSVJDTEVEIElERU9HUkFQSCBDT05HUkFUVUxBVElPTjtTbzswO0w7PGNpcmNsZT4gNzk1RDs7OztOOzs7OzsKKzMyOTg7Q0lSQ0xFRCBJREVPR1JBUEggTEFCT1I7U287MDtMOzxjaXJjbGU+IDUyQjQ7Ozs7Tjs7Ozs7CiszMjk5O0NJUkNMRUQgSURFT0dSQVBIIFNFQ1JFVDtTbzswO0w7PGNpcmNsZT4gNzlEODs7OztOOzs7OzsKKzMyOUE7Q0lSQ0xFRCBJREVPR1JBUEggTUFMRTtTbzswO0w7PGNpcmNsZT4gNzUzNzs7OztOOzs7OzsKKzMyOUI7Q0lSQ0xFRCBJREVPR1JBUEggRkVNQUxFO1NvOzA7TDs8Y2lyY2xlPiA1OTczOzs7O047Ozs7OworMzI5QztDSVJDTEVEIElERU9HUkFQSCBTVUlUQUJMRTtTbzswO0w7PGNpcmNsZT4gOTA2OTs7OztOOzs7OzsKKzMyOUQ7Q0lSQ0xFRCBJREVPR1JBUEggRVhDRUxMRU5UO1NvOzA7TDs8Y2lyY2xlPiA1MTJBOzs7O047Ozs7OworMzI5RTtDSVJDTEVEIElERU9HUkFQSCBQUklOVDtTbzswO0w7PGNpcmNsZT4gNTM3MDs7OztOOzs7OzsKKzMyOUY7Q0lSQ0xFRCBJREVPR1JBUEggQVRURU5USU9OO1NvOzA7TDs8Y2lyY2xlPiA2Q0U4Ozs7O047Ozs7OworMzJBMDtDSVJDTEVEIElERU9HUkFQSCBJVEVNO1NvOzA7TDs8Y2lyY2xlPiA5ODA1Ozs7O047Ozs7OworMzJBMTtDSVJDTEVEIElERU9HUkFQSCBSRVNUO1NvOzA7TDs8Y2lyY2xlPiA0RjExOzs7O047Ozs7OworMzJBMjtDSVJDTEVEIElERU9HUkFQSCBDT1BZO1NvOzA7TDs8Y2lyY2xlPiA1MTk5Ozs7O047Ozs7OworMzJBMztDSVJDTEVEIElERU9HUkFQSCBDT1JSRUNUO1NvOzA7TDs8Y2lyY2xlPiA2QjYzOzs7O047Ozs7OworMzJBNDtDSVJDTEVEIElERU9HUkFQSCBISUdIO1NvOzA7TDs8Y2lyY2xlPiA0RTBBOzs7O047Ozs7OworMzJBNTtDSVJDTEVEIElERU9HUkFQSCBDRU5UUkU7U287MDtMOzxjaXJjbGU+IDRFMkQ7Ozs7TjtDSVJDTEVEIElERU9HUkFQSCBDRU5URVI7Ozs7CiszMkE2O0NJUkNMRUQgSURFT0dSQVBIIExPVztTbzswO0w7PGNpcmNsZT4gNEUwQjs7OztOOzs7OzsKKzMyQTc7Q0lSQ0xFRCBJREVPR1JBUEggTEVGVDtTbzswO0w7PGNpcmNsZT4gNURFNjs7OztOOzs7OzsKKzMyQTg7Q0lSQ0xFRCBJREVPR1JBUEggUklHSFQ7U287MDtMOzxjaXJjbGU+IDUzRjM7Ozs7Tjs7Ozs7CiszMkE5O0NJUkNMRUQgSURFT0dSQVBIIE1FRElDSU5FO1NvOzA7TDs8Y2lyY2xlPiA1MzNCOzs7O047Ozs7OworMzJBQTtDSVJDTEVEIElERU9HUkFQSCBSRUxJR0lPTjtTbzswO0w7PGNpcmNsZT4gNUI5Nzs7OztOOzs7OzsKKzMyQUI7Q0lSQ0xFRCBJREVPR1JBUEggU1RVRFk7U287MDtMOzxjaXJjbGU+IDVCNjY7Ozs7Tjs7Ozs7CiszMkFDO0NJUkNMRUQgSURFT0dSQVBIIFNVUEVSVklTRTtTbzswO0w7PGNpcmNsZT4gNzZFMzs7OztOOzs7OzsKKzMyQUQ7Q0lSQ0xFRCBJREVPR1JBUEggRU5URVJQUklTRTtTbzswO0w7PGNpcmNsZT4gNEYwMTs7OztOOzs7OzsKKzMyQUU7Q0lSQ0xFRCBJREVPR1JBUEggUkVTT1VSQ0U7U287MDtMOzxjaXJjbGU+IDhDQzc7Ozs7Tjs7Ozs7CiszMkFGO0NJUkNMRUQgSURFT0dSQVBIIEFMTElBTkNFO1NvOzA7TDs8Y2lyY2xlPiA1MzU0Ozs7O047Ozs7OworMzJCMDtDSVJDTEVEIElERU9HUkFQSCBOSUdIVDtTbzswO0w7PGNpcmNsZT4gNTkxQzs7OztOOzs7OzsKKzMyQzA7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSkFOVUFSWTtTbzswO0w7PGNvbXBhdD4gMDAzMSA2NzA4Ozs7O047Ozs7OworMzJDMTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBGRUJSVUFSWTtTbzswO0w7PGNvbXBhdD4gMDAzMiA2NzA4Ozs7O047Ozs7OworMzJDMjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBNQVJDSDtTbzswO0w7PGNvbXBhdD4gMDAzMyA2NzA4Ozs7O047Ozs7OworMzJDMztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBBUFJJTDtTbzswO0w7PGNvbXBhdD4gMDAzNCA2NzA4Ozs7O047Ozs7OworMzJDNDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBNQVk7U287MDtMOzxjb21wYXQ+IDAwMzUgNjcwODs7OztOOzs7OzsKKzMyQzU7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSlVORTtTbzswO0w7PGNvbXBhdD4gMDAzNiA2NzA4Ozs7O047Ozs7OworMzJDNjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBKVUxZO1NvOzA7TDs8Y29tcGF0PiAwMDM3IDY3MDg7Ozs7Tjs7Ozs7CiszMkM3O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEFVR1VTVDtTbzswO0w7PGNvbXBhdD4gMDAzOCA2NzA4Ozs7O047Ozs7OworMzJDODtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBTRVBURU1CRVI7U287MDtMOzxjb21wYXQ+IDAwMzkgNjcwODs7OztOOzs7OzsKKzMyQzk7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgT0NUT0JFUjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDMwIDY3MDg7Ozs7Tjs7Ozs7CiszMkNBO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIE5PVkVNQkVSO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzEgNjcwODs7OztOOzs7OzsKKzMyQ0I7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREVDRU1CRVI7U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzMiA2NzA4Ozs7O047Ozs7OworMzJEMDtDSVJDTEVEIEtBVEFLQU5BIEE7U287MDtMOzxjaXJjbGU+IDMwQTI7Ozs7Tjs7Ozs7CiszMkQxO0NJUkNMRUQgS0FUQUtBTkEgSTtTbzswO0w7PGNpcmNsZT4gMzBBNDs7OztOOzs7OzsKKzMyRDI7Q0lSQ0xFRCBLQVRBS0FOQSBVO1NvOzA7TDs8Y2lyY2xlPiAzMEE2Ozs7O047Ozs7OworMzJEMztDSVJDTEVEIEtBVEFLQU5BIEU7U287MDtMOzxjaXJjbGU+IDMwQTg7Ozs7Tjs7Ozs7CiszMkQ0O0NJUkNMRUQgS0FUQUtBTkEgTztTbzswO0w7PGNpcmNsZT4gMzBBQTs7OztOOzs7OzsKKzMyRDU7Q0lSQ0xFRCBLQVRBS0FOQSBLQTtTbzswO0w7PGNpcmNsZT4gMzBBQjs7OztOOzs7OzsKKzMyRDY7Q0lSQ0xFRCBLQVRBS0FOQSBLSTtTbzswO0w7PGNpcmNsZT4gMzBBRDs7OztOOzs7OzsKKzMyRDc7Q0lSQ0xFRCBLQVRBS0FOQSBLVTtTbzswO0w7PGNpcmNsZT4gMzBBRjs7OztOOzs7OzsKKzMyRDg7Q0lSQ0xFRCBLQVRBS0FOQSBLRTtTbzswO0w7PGNpcmNsZT4gMzBCMTs7OztOOzs7OzsKKzMyRDk7Q0lSQ0xFRCBLQVRBS0FOQSBLTztTbzswO0w7PGNpcmNsZT4gMzBCMzs7OztOOzs7OzsKKzMyREE7Q0lSQ0xFRCBLQVRBS0FOQSBTQTtTbzswO0w7PGNpcmNsZT4gMzBCNTs7OztOOzs7OzsKKzMyREI7Q0lSQ0xFRCBLQVRBS0FOQSBTSTtTbzswO0w7PGNpcmNsZT4gMzBCNzs7OztOOzs7OzsKKzMyREM7Q0lSQ0xFRCBLQVRBS0FOQSBTVTtTbzswO0w7PGNpcmNsZT4gMzBCOTs7OztOOzs7OzsKKzMyREQ7Q0lSQ0xFRCBLQVRBS0FOQSBTRTtTbzswO0w7PGNpcmNsZT4gMzBCQjs7OztOOzs7OzsKKzMyREU7Q0lSQ0xFRCBLQVRBS0FOQSBTTztTbzswO0w7PGNpcmNsZT4gMzBCRDs7OztOOzs7OzsKKzMyREY7Q0lSQ0xFRCBLQVRBS0FOQSBUQTtTbzswO0w7PGNpcmNsZT4gMzBCRjs7OztOOzs7OzsKKzMyRTA7Q0lSQ0xFRCBLQVRBS0FOQSBUSTtTbzswO0w7PGNpcmNsZT4gMzBDMTs7OztOOzs7OzsKKzMyRTE7Q0lSQ0xFRCBLQVRBS0FOQSBUVTtTbzswO0w7PGNpcmNsZT4gMzBDNDs7OztOOzs7OzsKKzMyRTI7Q0lSQ0xFRCBLQVRBS0FOQSBURTtTbzswO0w7PGNpcmNsZT4gMzBDNjs7OztOOzs7OzsKKzMyRTM7Q0lSQ0xFRCBLQVRBS0FOQSBUTztTbzswO0w7PGNpcmNsZT4gMzBDODs7OztOOzs7OzsKKzMyRTQ7Q0lSQ0xFRCBLQVRBS0FOQSBOQTtTbzswO0w7PGNpcmNsZT4gMzBDQTs7OztOOzs7OzsKKzMyRTU7Q0lSQ0xFRCBLQVRBS0FOQSBOSTtTbzswO0w7PGNpcmNsZT4gMzBDQjs7OztOOzs7OzsKKzMyRTY7Q0lSQ0xFRCBLQVRBS0FOQSBOVTtTbzswO0w7PGNpcmNsZT4gMzBDQzs7OztOOzs7OzsKKzMyRTc7Q0lSQ0xFRCBLQVRBS0FOQSBORTtTbzswO0w7PGNpcmNsZT4gMzBDRDs7OztOOzs7OzsKKzMyRTg7Q0lSQ0xFRCBLQVRBS0FOQSBOTztTbzswO0w7PGNpcmNsZT4gMzBDRTs7OztOOzs7OzsKKzMyRTk7Q0lSQ0xFRCBLQVRBS0FOQSBIQTtTbzswO0w7PGNpcmNsZT4gMzBDRjs7OztOOzs7OzsKKzMyRUE7Q0lSQ0xFRCBLQVRBS0FOQSBISTtTbzswO0w7PGNpcmNsZT4gMzBEMjs7OztOOzs7OzsKKzMyRUI7Q0lSQ0xFRCBLQVRBS0FOQSBIVTtTbzswO0w7PGNpcmNsZT4gMzBENTs7OztOOzs7OzsKKzMyRUM7Q0lSQ0xFRCBLQVRBS0FOQSBIRTtTbzswO0w7PGNpcmNsZT4gMzBEODs7OztOOzs7OzsKKzMyRUQ7Q0lSQ0xFRCBLQVRBS0FOQSBITztTbzswO0w7PGNpcmNsZT4gMzBEQjs7OztOOzs7OzsKKzMyRUU7Q0lSQ0xFRCBLQVRBS0FOQSBNQTtTbzswO0w7PGNpcmNsZT4gMzBERTs7OztOOzs7OzsKKzMyRUY7Q0lSQ0xFRCBLQVRBS0FOQSBNSTtTbzswO0w7PGNpcmNsZT4gMzBERjs7OztOOzs7OzsKKzMyRjA7Q0lSQ0xFRCBLQVRBS0FOQSBNVTtTbzswO0w7PGNpcmNsZT4gMzBFMDs7OztOOzs7OzsKKzMyRjE7Q0lSQ0xFRCBLQVRBS0FOQSBNRTtTbzswO0w7PGNpcmNsZT4gMzBFMTs7OztOOzs7OzsKKzMyRjI7Q0lSQ0xFRCBLQVRBS0FOQSBNTztTbzswO0w7PGNpcmNsZT4gMzBFMjs7OztOOzs7OzsKKzMyRjM7Q0lSQ0xFRCBLQVRBS0FOQSBZQTtTbzswO0w7PGNpcmNsZT4gMzBFNDs7OztOOzs7OzsKKzMyRjQ7Q0lSQ0xFRCBLQVRBS0FOQSBZVTtTbzswO0w7PGNpcmNsZT4gMzBFNjs7OztOOzs7OzsKKzMyRjU7Q0lSQ0xFRCBLQVRBS0FOQSBZTztTbzswO0w7PGNpcmNsZT4gMzBFODs7OztOOzs7OzsKKzMyRjY7Q0lSQ0xFRCBLQVRBS0FOQSBSQTtTbzswO0w7PGNpcmNsZT4gMzBFOTs7OztOOzs7OzsKKzMyRjc7Q0lSQ0xFRCBLQVRBS0FOQSBSSTtTbzswO0w7PGNpcmNsZT4gMzBFQTs7OztOOzs7OzsKKzMyRjg7Q0lSQ0xFRCBLQVRBS0FOQSBSVTtTbzswO0w7PGNpcmNsZT4gMzBFQjs7OztOOzs7OzsKKzMyRjk7Q0lSQ0xFRCBLQVRBS0FOQSBSRTtTbzswO0w7PGNpcmNsZT4gMzBFQzs7OztOOzs7OzsKKzMyRkE7Q0lSQ0xFRCBLQVRBS0FOQSBSTztTbzswO0w7PGNpcmNsZT4gMzBFRDs7OztOOzs7OzsKKzMyRkI7Q0lSQ0xFRCBLQVRBS0FOQSBXQTtTbzswO0w7PGNpcmNsZT4gMzBFRjs7OztOOzs7OzsKKzMyRkM7Q0lSQ0xFRCBLQVRBS0FOQSBXSTtTbzswO0w7PGNpcmNsZT4gMzBGMDs7OztOOzs7OzsKKzMyRkQ7Q0lSQ0xFRCBLQVRBS0FOQSBXRTtTbzswO0w7PGNpcmNsZT4gMzBGMTs7OztOOzs7OzsKKzMyRkU7Q0lSQ0xFRCBLQVRBS0FOQSBXTztTbzswO0w7PGNpcmNsZT4gMzBGMjs7OztOOzs7OzsKKzMzMDA7U1FVQVJFIEFQQUFUTztTbzswO0w7PHNxdWFyZT4gMzBBMiAzMEQxIDMwRkMgMzBDODs7OztOO1NRVUFSRUQgQVBBQVRPOzs7OworMzMwMTtTUVVBUkUgQVJVSFVBO1NvOzA7TDs8c3F1YXJlPiAzMEEyIDMwRUIgMzBENSAzMEExOzs7O047U1FVQVJFRCBBUlVIVUE7Ozs7CiszMzAyO1NRVUFSRSBBTlBFQTtTbzswO0w7PHNxdWFyZT4gMzBBMiAzMEYzIDMwREEgMzBBMjs7OztOO1NRVUFSRUQgQU5QRUE7Ozs7CiszMzAzO1NRVUFSRSBBQVJVO1NvOzA7TDs8c3F1YXJlPiAzMEEyIDMwRkMgMzBFQjs7OztOO1NRVUFSRUQgQUFSVTs7OzsKKzMzMDQ7U1FVQVJFIElOSU5HVTtTbzswO0w7PHNxdWFyZT4gMzBBNCAzMENCIDMwRjMgMzBCMDs7OztOO1NRVUFSRUQgSU5JTkdVOzs7OworMzMwNTtTUVVBUkUgSU5USTtTbzswO0w7PHNxdWFyZT4gMzBBNCAzMEYzIDMwQzE7Ozs7TjtTUVVBUkVEIElOVEk7Ozs7CiszMzA2O1NRVUFSRSBVT047U287MDtMOzxzcXVhcmU+IDMwQTYgMzBBOSAzMEYzOzs7O047U1FVQVJFRCBVT047Ozs7CiszMzA3O1NRVUFSRSBFU1VLVVVETztTbzswO0w7PHNxdWFyZT4gMzBBOCAzMEI5IDMwQUYgMzBGQyAzMEM5Ozs7O047U1FVQVJFRCBFU1VLVVVETzs7OzsKKzMzMDg7U1FVQVJFIEVFS0FBO1NvOzA7TDs8c3F1YXJlPiAzMEE4IDMwRkMgMzBBQiAzMEZDOzs7O047U1FVQVJFRCBFRUtBQTs7OzsKKzMzMDk7U1FVQVJFIE9OU1U7U287MDtMOzxzcXVhcmU+IDMwQUEgMzBGMyAzMEI5Ozs7O047U1FVQVJFRCBPTlNVOzs7OworMzMwQTtTUVVBUkUgT09NVTtTbzswO0w7PHNxdWFyZT4gMzBBQSAzMEZDIDMwRTA7Ozs7TjtTUVVBUkVEIE9PTVU7Ozs7CiszMzBCO1NRVUFSRSBLQUlSSTtTbzswO0w7PHNxdWFyZT4gMzBBQiAzMEE0IDMwRUE7Ozs7TjtTUVVBUkVEIEtBSVJJOzs7OworMzMwQztTUVVBUkUgS0FSQVRUTztTbzswO0w7PHNxdWFyZT4gMzBBQiAzMEU5IDMwQzMgMzBDODs7OztOO1NRVUFSRUQgS0FSQVRUTzs7OzsKKzMzMEQ7U1FVQVJFIEtBUk9SSUk7U287MDtMOzxzcXVhcmU+IDMwQUIgMzBFRCAzMEVBIDMwRkM7Ozs7TjtTUVVBUkVEIEtBUk9SSUk7Ozs7CiszMzBFO1NRVUFSRSBHQVJPTjtTbzswO0w7PHNxdWFyZT4gMzBBQyAzMEVEIDMwRjM7Ozs7TjtTUVVBUkVEIEdBUk9OOzs7OworMzMwRjtTUVVBUkUgR0FOTUE7U287MDtMOzxzcXVhcmU+IDMwQUMgMzBGMyAzMERFOzs7O047U1FVQVJFRCBHQU5NQTs7OzsKKzMzMTA7U1FVQVJFIEdJR0E7U287MDtMOzxzcXVhcmU+IDMwQUUgMzBBQzs7OztOO1NRVUFSRUQgR0lHQTs7OzsKKzMzMTE7U1FVQVJFIEdJTklJO1NvOzA7TDs8c3F1YXJlPiAzMEFFIDMwQ0IgMzBGQzs7OztOO1NRVUFSRUQgR0lOSUk7Ozs7CiszMzEyO1NRVUFSRSBLWVVSSUk7U287MDtMOzxzcXVhcmU+IDMwQUQgMzBFNSAzMEVBIDMwRkM7Ozs7TjtTUVVBUkVEIEtZVVJJSTs7OzsKKzMzMTM7U1FVQVJFIEdJUlVEQUE7U287MDtMOzxzcXVhcmU+IDMwQUUgMzBFQiAzMEMwIDMwRkM7Ozs7TjtTUVVBUkVEIEdJUlVEQUE7Ozs7CiszMzE0O1NRVUFSRSBLSVJPO1NvOzA7TDs8c3F1YXJlPiAzMEFEIDMwRUQ7Ozs7TjtTUVVBUkVEIEtJUk87Ozs7CiszMzE1O1NRVUFSRSBLSVJPR1VSQU1VO1NvOzA7TDs8c3F1YXJlPiAzMEFEIDMwRUQgMzBCMCAzMEU5IDMwRTA7Ozs7TjtTUVVBUkVEIEtJUk9HVVJBTVU7Ozs7CiszMzE2O1NRVUFSRSBLSVJPTUVFVE9SVTtTbzswO0w7PHNxdWFyZT4gMzBBRCAzMEVEIDMwRTEgMzBGQyAzMEM4IDMwRUI7Ozs7TjtTUVVBUkVEIEtJUk9NRUVUT1JVOzs7OworMzMxNztTUVVBUkUgS0lST1dBVFRPO1NvOzA7TDs8c3F1YXJlPiAzMEFEIDMwRUQgMzBFRiAzMEMzIDMwQzg7Ozs7TjtTUVVBUkVEIEtJUk9XQVRUTzs7OzsKKzMzMTg7U1FVQVJFIEdVUkFNVTtTbzswO0w7PHNxdWFyZT4gMzBCMCAzMEU5IDMwRTA7Ozs7TjtTUVVBUkVEIEdVUkFNVTs7OzsKKzMzMTk7U1FVQVJFIEdVUkFNVVRPTjtTbzswO0w7PHNxdWFyZT4gMzBCMCAzMEU5IDMwRTAgMzBDOCAzMEYzOzs7O047U1FVQVJFRCBHVVJBTVVUT047Ozs7CiszMzFBO1NRVUFSRSBLVVJVWkVJUk87U287MDtMOzxzcXVhcmU+IDMwQUYgMzBFQiAzMEJDIDMwQTQgMzBFRDs7OztOO1NRVUFSRUQgS1VSVVpFSVJPOzs7OworMzMxQjtTUVVBUkUgS1VST09ORTtTbzswO0w7PHNxdWFyZT4gMzBBRiAzMEVEIDMwRkMgMzBDRDs7OztOO1NRVUFSRUQgS1VST09ORTs7OzsKKzMzMUM7U1FVQVJFIEtFRVNVO1NvOzA7TDs8c3F1YXJlPiAzMEIxIDMwRkMgMzBCOTs7OztOO1NRVUFSRUQgS0VFU1U7Ozs7CiszMzFEO1NRVUFSRSBLT1JVTkE7U287MDtMOzxzcXVhcmU+IDMwQjMgMzBFQiAzMENBOzs7O047U1FVQVJFRCBLT1JVTkE7Ozs7CiszMzFFO1NRVUFSRSBLT09QTztTbzswO0w7PHNxdWFyZT4gMzBCMyAzMEZDIDMwREQ7Ozs7TjtTUVVBUkVEIEtPT1BPOzs7OworMzMxRjtTUVVBUkUgU0FJS1VSVTtTbzswO0w7PHNxdWFyZT4gMzBCNSAzMEE0IDMwQUYgMzBFQjs7OztOO1NRVUFSRUQgU0FJS1VSVTs7OzsKKzMzMjA7U1FVQVJFIFNBTlRJSU1VO1NvOzA7TDs8c3F1YXJlPiAzMEI1IDMwRjMgMzBDMSAzMEZDIDMwRTA7Ozs7TjtTUVVBUkVEIFNBTlRJSU1VOzs7OworMzMyMTtTUVVBUkUgU0lSSU5HVTtTbzswO0w7PHNxdWFyZT4gMzBCNyAzMEVBIDMwRjMgMzBCMDs7OztOO1NRVUFSRUQgU0lSSU5HVTs7OzsKKzMzMjI7U1FVQVJFIFNFTlRJO1NvOzA7TDs8c3F1YXJlPiAzMEJCIDMwRjMgMzBDMTs7OztOO1NRVUFSRUQgU0VOVEk7Ozs7CiszMzIzO1NRVUFSRSBTRU5UTztTbzswO0w7PHNxdWFyZT4gMzBCQiAzMEYzIDMwQzg7Ozs7TjtTUVVBUkVEIFNFTlRPOzs7OworMzMyNDtTUVVBUkUgREFBU1U7U287MDtMOzxzcXVhcmU+IDMwQzAgMzBGQyAzMEI5Ozs7O047U1FVQVJFRCBEQUFTVTs7OzsKKzMzMjU7U1FVQVJFIERFU0k7U287MDtMOzxzcXVhcmU+IDMwQzcgMzBCNzs7OztOO1NRVUFSRUQgREVTSTs7OzsKKzMzMjY7U1FVQVJFIERPUlU7U287MDtMOzxzcXVhcmU+IDMwQzkgMzBFQjs7OztOO1NRVUFSRUQgRE9SVTs7OzsKKzMzMjc7U1FVQVJFIFRPTjtTbzswO0w7PHNxdWFyZT4gMzBDOCAzMEYzOzs7O047U1FVQVJFRCBUT047Ozs7CiszMzI4O1NRVUFSRSBOQU5PO1NvOzA7TDs8c3F1YXJlPiAzMENBIDMwQ0U7Ozs7TjtTUVVBUkVEIE5BTk87Ozs7CiszMzI5O1NRVUFSRSBOT1RUTztTbzswO0w7PHNxdWFyZT4gMzBDRSAzMEMzIDMwQzg7Ozs7TjtTUVVBUkVEIE5PVFRPOzs7OworMzMyQTtTUVVBUkUgSEFJVFU7U287MDtMOzxzcXVhcmU+IDMwQ0YgMzBBNCAzMEM0Ozs7O047U1FVQVJFRCBIQUlUVTs7OzsKKzMzMkI7U1FVQVJFIFBBQVNFTlRPO1NvOzA7TDs8c3F1YXJlPiAzMEQxIDMwRkMgMzBCQiAzMEYzIDMwQzg7Ozs7TjtTUVVBUkVEIFBBQVNFTlRPOzs7OworMzMyQztTUVVBUkUgUEFBVFU7U287MDtMOzxzcXVhcmU+IDMwRDEgMzBGQyAzMEM0Ozs7O047U1FVQVJFRCBQQUFUVTs7OzsKKzMzMkQ7U1FVQVJFIEJBQVJFUlU7U287MDtMOzxzcXVhcmU+IDMwRDAgMzBGQyAzMEVDIDMwRUI7Ozs7TjtTUVVBUkVEIEJBQVJFUlU7Ozs7CiszMzJFO1NRVUFSRSBQSUFTVVRPUlU7U287MDtMOzxzcXVhcmU+IDMwRDQgMzBBMiAzMEI5IDMwQzggMzBFQjs7OztOO1NRVUFSRUQgUElBU1VUT1JVOzs7OworMzMyRjtTUVVBUkUgUElLVVJVO1NvOzA7TDs8c3F1YXJlPiAzMEQ0IDMwQUYgMzBFQjs7OztOO1NRVUFSRUQgUElLVVJVOzs7OworMzMzMDtTUVVBUkUgUElLTztTbzswO0w7PHNxdWFyZT4gMzBENCAzMEIzOzs7O047U1FVQVJFRCBQSUtPOzs7OworMzMzMTtTUVVBUkUgQklSVTtTbzswO0w7PHNxdWFyZT4gMzBEMyAzMEVCOzs7O047U1FVQVJFRCBCSVJVOzs7OworMzMzMjtTUVVBUkUgSFVBUkFERE87U287MDtMOzxzcXVhcmU+IDMwRDUgMzBBMSAzMEU5IDMwQzMgMzBDOTs7OztOO1NRVUFSRUQgSFVBUkFERE87Ozs7CiszMzMzO1NRVUFSRSBIVUlJVE87U287MDtMOzxzcXVhcmU+IDMwRDUgMzBBMyAzMEZDIDMwQzg7Ozs7TjtTUVVBUkVEIEhVSUlUTzs7OzsKKzMzMzQ7U1FVQVJFIEJVU1NZRVJVO1NvOzA7TDs8c3F1YXJlPiAzMEQ2IDMwQzMgMzBCNyAzMEE3IDMwRUI7Ozs7TjtTUVVBUkVEIEJVU1NZRVJVOzs7OworMzMzNTtTUVVBUkUgSFVSQU47U287MDtMOzxzcXVhcmU+IDMwRDUgMzBFOSAzMEYzOzs7O047U1FVQVJFRCBIVVJBTjs7OzsKKzMzMzY7U1FVQVJFIEhFS1VUQUFSVTtTbzswO0w7PHNxdWFyZT4gMzBEOCAzMEFGIDMwQkYgMzBGQyAzMEVCOzs7O047U1FVQVJFRCBIRUtVVEFBUlU7Ozs7CiszMzM3O1NRVUFSRSBQRVNPO1NvOzA7TDs8c3F1YXJlPiAzMERBIDMwQkQ7Ozs7TjtTUVVBUkVEIFBFU087Ozs7CiszMzM4O1NRVUFSRSBQRU5JSEk7U287MDtMOzxzcXVhcmU+IDMwREEgMzBDQiAzMEQyOzs7O047U1FVQVJFRCBQRU5JSEk7Ozs7CiszMzM5O1NRVUFSRSBIRVJVVFU7U287MDtMOzxzcXVhcmU+IDMwRDggMzBFQiAzMEM0Ozs7O047U1FVQVJFRCBIRVJVVFU7Ozs7CiszMzNBO1NRVUFSRSBQRU5TVTtTbzswO0w7PHNxdWFyZT4gMzBEQSAzMEYzIDMwQjk7Ozs7TjtTUVVBUkVEIFBFTlNVOzs7OworMzMzQjtTUVVBUkUgUEVFWkk7U287MDtMOzxzcXVhcmU+IDMwREEgMzBGQyAzMEI4Ozs7O047U1FVQVJFRCBQRUVaSTs7OzsKKzMzM0M7U1FVQVJFIEJFRVRBO1NvOzA7TDs8c3F1YXJlPiAzMEQ5IDMwRkMgMzBCRjs7OztOO1NRVUFSRUQgQkVFVEE7Ozs7CiszMzNEO1NRVUFSRSBQT0lOVE87U287MDtMOzxzcXVhcmU+IDMwREQgMzBBNCAzMEYzIDMwQzg7Ozs7TjtTUVVBUkVEIFBPSU5UTzs7OzsKKzMzM0U7U1FVQVJFIEJPUlVUTztTbzswO0w7PHNxdWFyZT4gMzBEQyAzMEVCIDMwQzg7Ozs7TjtTUVVBUkVEIEJPUlVUTzs7OzsKKzMzM0Y7U1FVQVJFIEhPTjtTbzswO0w7PHNxdWFyZT4gMzBEQiAzMEYzOzs7O047U1FVQVJFRCBIT047Ozs7CiszMzQwO1NRVUFSRSBQT05ETztTbzswO0w7PHNxdWFyZT4gMzBERCAzMEYzIDMwQzk7Ozs7TjtTUVVBUkVEIFBPTkRPOzs7OworMzM0MTtTUVVBUkUgSE9PUlU7U287MDtMOzxzcXVhcmU+IDMwREIgMzBGQyAzMEVCOzs7O047U1FVQVJFRCBIT09SVTs7OzsKKzMzNDI7U1FVQVJFIEhPT047U287MDtMOzxzcXVhcmU+IDMwREIgMzBGQyAzMEYzOzs7O047U1FVQVJFRCBIT09OOzs7OworMzM0MztTUVVBUkUgTUFJS1VSTztTbzswO0w7PHNxdWFyZT4gMzBERSAzMEE0IDMwQUYgMzBFRDs7OztOO1NRVUFSRUQgTUFJS1VSTzs7OzsKKzMzNDQ7U1FVQVJFIE1BSVJVO1NvOzA7TDs8c3F1YXJlPiAzMERFIDMwQTQgMzBFQjs7OztOO1NRVUFSRUQgTUFJUlU7Ozs7CiszMzQ1O1NRVUFSRSBNQUhIQTtTbzswO0w7PHNxdWFyZT4gMzBERSAzMEMzIDMwQ0Y7Ozs7TjtTUVVBUkVEIE1BSEhBOzs7OworMzM0NjtTUVVBUkUgTUFSVUtVO1NvOzA7TDs8c3F1YXJlPiAzMERFIDMwRUIgMzBBRjs7OztOO1NRVUFSRUQgTUFSVUtVOzs7OworMzM0NztTUVVBUkUgTUFOU1lPTjtTbzswO0w7PHNxdWFyZT4gMzBERSAzMEYzIDMwQjcgMzBFNyAzMEYzOzs7O047U1FVQVJFRCBNQU5TWU9OOzs7OworMzM0ODtTUVVBUkUgTUlLVVJPTjtTbzswO0w7PHNxdWFyZT4gMzBERiAzMEFGIDMwRUQgMzBGMzs7OztOO1NRVUFSRUQgTUlLVVJPTjs7OzsKKzMzNDk7U1FVQVJFIE1JUkk7U287MDtMOzxzcXVhcmU+IDMwREYgMzBFQTs7OztOO1NRVUFSRUQgTUlSSTs7OzsKKzMzNEE7U1FVQVJFIE1JUklCQUFSVTtTbzswO0w7PHNxdWFyZT4gMzBERiAzMEVBIDMwRDAgMzBGQyAzMEVCOzs7O047U1FVQVJFRCBNSVJJQkFBUlU7Ozs7CiszMzRCO1NRVUFSRSBNRUdBO1NvOzA7TDs8c3F1YXJlPiAzMEUxIDMwQUM7Ozs7TjtTUVVBUkVEIE1FR0E7Ozs7CiszMzRDO1NRVUFSRSBNRUdBVE9OO1NvOzA7TDs8c3F1YXJlPiAzMEUxIDMwQUMgMzBDOCAzMEYzOzs7O047U1FVQVJFRCBNRUdBVE9OOzs7OworMzM0RDtTUVVBUkUgTUVFVE9SVTtTbzswO0w7PHNxdWFyZT4gMzBFMSAzMEZDIDMwQzggMzBFQjs7OztOO1NRVUFSRUQgTUVFVE9SVTs7OzsKKzMzNEU7U1FVQVJFIFlBQURPO1NvOzA7TDs8c3F1YXJlPiAzMEU0IDMwRkMgMzBDOTs7OztOO1NRVUFSRUQgWUFBRE87Ozs7CiszMzRGO1NRVUFSRSBZQUFSVTtTbzswO0w7PHNxdWFyZT4gMzBFNCAzMEZDIDMwRUI7Ozs7TjtTUVVBUkVEIFlBQVJVOzs7OworMzM1MDtTUVVBUkUgWVVBTjtTbzswO0w7PHNxdWFyZT4gMzBFNiAzMEEyIDMwRjM7Ozs7TjtTUVVBUkVEIFlVQU47Ozs7CiszMzUxO1NRVUFSRSBSSVRUT1JVO1NvOzA7TDs8c3F1YXJlPiAzMEVBIDMwQzMgMzBDOCAzMEVCOzs7O047U1FVQVJFRCBSSVRUT1JVOzs7OworMzM1MjtTUVVBUkUgUklSQTtTbzswO0w7PHNxdWFyZT4gMzBFQSAzMEU5Ozs7O047U1FVQVJFRCBSSVJBOzs7OworMzM1MztTUVVBUkUgUlVQSUk7U287MDtMOzxzcXVhcmU+IDMwRUIgMzBENCAzMEZDOzs7O047U1FVQVJFRCBSVVBJSTs7OzsKKzMzNTQ7U1FVQVJFIFJVVUJVUlU7U287MDtMOzxzcXVhcmU+IDMwRUIgMzBGQyAzMEQ2IDMwRUI7Ozs7TjtTUVVBUkVEIFJVVUJVUlU7Ozs7CiszMzU1O1NRVUFSRSBSRU1VO1NvOzA7TDs8c3F1YXJlPiAzMEVDIDMwRTA7Ozs7TjtTUVVBUkVEIFJFTVU7Ozs7CiszMzU2O1NRVUFSRSBSRU5UT0dFTjtTbzswO0w7PHNxdWFyZT4gMzBFQyAzMEYzIDMwQzggMzBCMiAzMEYzOzs7O047U1FVQVJFRCBSRU5UT0dFTjs7OzsKKzMzNTc7U1FVQVJFIFdBVFRPO1NvOzA7TDs8c3F1YXJlPiAzMEVGIDMwQzMgMzBDODs7OztOO1NRVUFSRUQgV0FUVE87Ozs7CiszMzU4O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgWkVSTztTbzswO0w7PGNvbXBhdD4gMDAzMCA3MEI5Ozs7O047Ozs7OworMzM1OTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIE9ORTtTbzswO0w7PGNvbXBhdD4gMDAzMSA3MEI5Ozs7O047Ozs7OworMzM1QTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFRXTztTbzswO0w7PGNvbXBhdD4gMDAzMiA3MEI5Ozs7O047Ozs7OworMzM1QjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFRIUkVFO1NvOzA7TDs8Y29tcGF0PiAwMDMzIDcwQjk7Ozs7Tjs7Ozs7CiszMzVDO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgRk9VUjtTbzswO0w7PGNvbXBhdD4gMDAzNCA3MEI5Ozs7O047Ozs7OworMzM1RDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIEZJVkU7U287MDtMOzxjb21wYXQ+IDAwMzUgNzBCOTs7OztOOzs7OzsKKzMzNUU7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBTSVg7U287MDtMOzxjb21wYXQ+IDAwMzYgNzBCOTs7OztOOzs7OzsKKzMzNUY7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBTRVZFTjtTbzswO0w7PGNvbXBhdD4gMDAzNyA3MEI5Ozs7O047Ozs7OworMzM2MDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIEVJR0hUO1NvOzA7TDs8Y29tcGF0PiAwMDM4IDcwQjk7Ozs7Tjs7Ozs7CiszMzYxO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgTklORTtTbzswO0w7PGNvbXBhdD4gMDAzOSA3MEI5Ozs7O047Ozs7OworMzM2MjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFRFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDMwIDcwQjk7Ozs7Tjs7Ozs7CiszMzYzO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgRUxFVkVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzEgNzBCOTs7OztOOzs7OzsKKzMzNjQ7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBUV0VMVkU7U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzMiA3MEI5Ozs7O047Ozs7OworMzM2NTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFRISVJURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzMgNzBCOTs7OztOOzs7OzsKKzMzNjY7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBGT1VSVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDM0IDcwQjk7Ozs7Tjs7Ozs7CiszMzY3O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgRklGVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDM1IDcwQjk7Ozs7Tjs7Ozs7CiszMzY4O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgU0lYVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDM2IDcwQjk7Ozs7Tjs7Ozs7CiszMzY5O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgU0VWRU5URUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzcgNzBCOTs7OztOOzs7OzsKKzMzNkE7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBFSUdIVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDM4IDcwQjk7Ozs7Tjs7Ozs7CiszMzZCO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgTklORVRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzOSA3MEI5Ozs7O047Ozs7OworMzM2QztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFRXRU5UWTtTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDMwIDcwQjk7Ozs7Tjs7Ozs7CiszMzZEO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgVFdFTlRZLU9ORTtTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDMxIDcwQjk7Ozs7Tjs7Ozs7CiszMzZFO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgVFdFTlRZLVRXTztTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDMyIDcwQjk7Ozs7Tjs7Ozs7CiszMzZGO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgVFdFTlRZLVRIUkVFO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzMgNzBCOTs7OztOOzs7OzsKKzMzNzA7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBUV0VOVFktRk9VUjtTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDM0IDcwQjk7Ozs7Tjs7Ozs7CiszMzcxO1NRVUFSRSBIUEE7U287MDtMOzxzcXVhcmU+IDAwNjggMDA1MCAwMDYxOzs7O047Ozs7OworMzM3MjtTUVVBUkUgREE7U287MDtMOzxzcXVhcmU+IDAwNjQgMDA2MTs7OztOOzs7OzsKKzMzNzM7U1FVQVJFIEFVO1NvOzA7TDs8c3F1YXJlPiAwMDQxIDAwNTU7Ozs7Tjs7Ozs7CiszMzc0O1NRVUFSRSBCQVI7U287MDtMOzxzcXVhcmU+IDAwNjIgMDA2MSAwMDcyOzs7O047Ozs7OworMzM3NTtTUVVBUkUgT1Y7U287MDtMOzxzcXVhcmU+IDAwNkYgMDA1Njs7OztOOzs7OzsKKzMzNzY7U1FVQVJFIFBDO1NvOzA7TDs8c3F1YXJlPiAwMDcwIDAwNjM7Ozs7Tjs7Ozs7CiszMzdCO1NRVUFSRSBFUkEgTkFNRSBIRUlTRUk7U287MDtMOzxzcXVhcmU+IDVFNzMgNjIxMDs7OztOO1NRVUFSRUQgVFdPIElERU9HUkFQSFMgRVJBIE5BTUUgSEVJU0VJOzs7OworMzM3QztTUVVBUkUgRVJBIE5BTUUgU1lPVVdBO1NvOzA7TDs8c3F1YXJlPiA2NjJEIDU0OEM7Ozs7TjtTUVVBUkVEIFRXTyBJREVPR1JBUEhTIEVSQSBOQU1FIFNZT1VXQTs7OzsKKzMzN0Q7U1FVQVJFIEVSQSBOQU1FIFRBSVNZT1U7U287MDtMOzxzcXVhcmU+IDU5MjcgNkI2Mzs7OztOO1NRVUFSRUQgVFdPIElERU9HUkFQSFMgRVJBIE5BTUUgVEFJU1lPVTs7OzsKKzMzN0U7U1FVQVJFIEVSQSBOQU1FIE1FSVpJO1NvOzA7TDs8c3F1YXJlPiA2NjBFIDZDQkI7Ozs7TjtTUVVBUkVEIFRXTyBJREVPR1JBUEhTIEVSQSBOQU1FIE1FSVpJOzs7OworMzM3RjtTUVVBUkUgQ09SUE9SQVRJT047U287MDtMOzxzcXVhcmU+IDY4MkEgNUYwRiA0RjFBIDc5M0U7Ozs7TjtTUVVBUkVEIEZPVVIgSURFT0dSQVBIUyBDT1JQT1JBVElPTjs7OzsKKzMzODA7U1FVQVJFIFBBIEFNUFM7U287MDtMOzxzcXVhcmU+IDAwNzAgMDA0MTs7OztOO1NRVUFSRUQgUEEgQU1QUzs7OzsKKzMzODE7U1FVQVJFIE5BO1NvOzA7TDs8c3F1YXJlPiAwMDZFIDAwNDE7Ozs7TjtTUVVBUkVEIE5BOzs7OworMzM4MjtTUVVBUkUgTVUgQTtTbzswO0w7PHNxdWFyZT4gMDNCQyAwMDQxOzs7O047U1FVQVJFRCBNVSBBOzs7OworMzM4MztTUVVBUkUgTUE7U287MDtMOzxzcXVhcmU+IDAwNkQgMDA0MTs7OztOO1NRVUFSRUQgTUE7Ozs7CiszMzg0O1NRVUFSRSBLQTtTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDQxOzs7O047U1FVQVJFRCBLQTs7OzsKKzMzODU7U1FVQVJFIEtCO1NvOzA7TDs8c3F1YXJlPiAwMDRCIDAwNDI7Ozs7TjtTUVVBUkVEIEtCOzs7OworMzM4NjtTUVVBUkUgTUI7U287MDtMOzxzcXVhcmU+IDAwNEQgMDA0Mjs7OztOO1NRVUFSRUQgTUI7Ozs7CiszMzg3O1NRVUFSRSBHQjtTbzswO0w7PHNxdWFyZT4gMDA0NyAwMDQyOzs7O047U1FVQVJFRCBHQjs7OzsKKzMzODg7U1FVQVJFIENBTDtTbzswO0w7PHNxdWFyZT4gMDA2MyAwMDYxIDAwNkM7Ozs7TjtTUVVBUkVEIENBTDs7OzsKKzMzODk7U1FVQVJFIEtDQUw7U287MDtMOzxzcXVhcmU+IDAwNkIgMDA2MyAwMDYxIDAwNkM7Ozs7TjtTUVVBUkVEIEtDQUw7Ozs7CiszMzhBO1NRVUFSRSBQRjtTbzswO0w7PHNxdWFyZT4gMDA3MCAwMDQ2Ozs7O047U1FVQVJFRCBQRjs7OzsKKzMzOEI7U1FVQVJFIE5GO1NvOzA7TDs8c3F1YXJlPiAwMDZFIDAwNDY7Ozs7TjtTUVVBUkVEIE5GOzs7OworMzM4QztTUVVBUkUgTVUgRjtTbzswO0w7PHNxdWFyZT4gMDNCQyAwMDQ2Ozs7O047U1FVQVJFRCBNVSBGOzs7OworMzM4RDtTUVVBUkUgTVUgRztTbzswO0w7PHNxdWFyZT4gMDNCQyAwMDY3Ozs7O047U1FVQVJFRCBNVSBHOzs7OworMzM4RTtTUVVBUkUgTUc7U287MDtMOzxzcXVhcmU+IDAwNkQgMDA2Nzs7OztOO1NRVUFSRUQgTUc7Ozs7CiszMzhGO1NRVUFSRSBLRztTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDY3Ozs7O047U1FVQVJFRCBLRzs7OzsKKzMzOTA7U1FVQVJFIEhaO1NvOzA7TDs8c3F1YXJlPiAwMDQ4IDAwN0E7Ozs7TjtTUVVBUkVEIEhaOzs7OworMzM5MTtTUVVBUkUgS0haO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDAwNDggMDA3QTs7OztOO1NRVUFSRUQgS0haOzs7OworMzM5MjtTUVVBUkUgTUhaO1NvOzA7TDs8c3F1YXJlPiAwMDREIDAwNDggMDA3QTs7OztOO1NRVUFSRUQgTUhaOzs7OworMzM5MztTUVVBUkUgR0haO1NvOzA7TDs8c3F1YXJlPiAwMDQ3IDAwNDggMDA3QTs7OztOO1NRVUFSRUQgR0haOzs7OworMzM5NDtTUVVBUkUgVEhaO1NvOzA7TDs8c3F1YXJlPiAwMDU0IDAwNDggMDA3QTs7OztOO1NRVUFSRUQgVEhaOzs7OworMzM5NTtTUVVBUkUgTVUgTDtTbzswO0w7PHNxdWFyZT4gMDNCQyAyMTEzOzs7O047U1FVQVJFRCBNVSBMOzs7OworMzM5NjtTUVVBUkUgTUw7U287MDtMOzxzcXVhcmU+IDAwNkQgMjExMzs7OztOO1NRVUFSRUQgTUw7Ozs7CiszMzk3O1NRVUFSRSBETDtTbzswO0w7PHNxdWFyZT4gMDA2NCAyMTEzOzs7O047U1FVQVJFRCBETDs7OzsKKzMzOTg7U1FVQVJFIEtMO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDIxMTM7Ozs7TjtTUVVBUkVEIEtMOzs7OworMzM5OTtTUVVBUkUgRk07U287MDtMOzxzcXVhcmU+IDAwNjYgMDA2RDs7OztOO1NRVUFSRUQgRk07Ozs7CiszMzlBO1NRVUFSRSBOTTtTbzswO0w7PHNxdWFyZT4gMDA2RSAwMDZEOzs7O047U1FVQVJFRCBOTTs7OzsKKzMzOUI7U1FVQVJFIE1VIE07U287MDtMOzxzcXVhcmU+IDAzQkMgMDA2RDs7OztOO1NRVUFSRUQgTVUgTTs7OzsKKzMzOUM7U1FVQVJFIE1NO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNkQ7Ozs7TjtTUVVBUkVEIE1NOzs7OworMzM5RDtTUVVBUkUgQ007U287MDtMOzxzcXVhcmU+IDAwNjMgMDA2RDs7OztOO1NRVUFSRUQgQ007Ozs7CiszMzlFO1NRVUFSRSBLTTtTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDZEOzs7O047U1FVQVJFRCBLTTs7OzsKKzMzOUY7U1FVQVJFIE1NIFNRVUFSRUQ7U287MDtMOzxzcXVhcmU+IDAwNkQgMDA2RCAwMEIyOzs7O047U1FVQVJFRCBNTSBTUVVBUkVEOzs7OworMzNBMDtTUVVBUkUgQ00gU1FVQVJFRDtTbzswO0w7PHNxdWFyZT4gMDA2MyAwMDZEIDAwQjI7Ozs7TjtTUVVBUkVEIENNIFNRVUFSRUQ7Ozs7CiszM0ExO1NRVUFSRSBNIFNRVUFSRUQ7U287MDtMOzxzcXVhcmU+IDAwNkQgMDBCMjs7OztOO1NRVUFSRUQgTSBTUVVBUkVEOzs7OworMzNBMjtTUVVBUkUgS00gU1FVQVJFRDtTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDZEIDAwQjI7Ozs7TjtTUVVBUkVEIEtNIFNRVUFSRUQ7Ozs7CiszM0EzO1NRVUFSRSBNTSBDVUJFRDtTbzswO0w7PHNxdWFyZT4gMDA2RCAwMDZEIDAwQjM7Ozs7TjtTUVVBUkVEIE1NIENVQkVEOzs7OworMzNBNDtTUVVBUkUgQ00gQ1VCRUQ7U287MDtMOzxzcXVhcmU+IDAwNjMgMDA2RCAwMEIzOzs7O047U1FVQVJFRCBDTSBDVUJFRDs7OzsKKzMzQTU7U1FVQVJFIE0gQ1VCRUQ7U287MDtMOzxzcXVhcmU+IDAwNkQgMDBCMzs7OztOO1NRVUFSRUQgTSBDVUJFRDs7OzsKKzMzQTY7U1FVQVJFIEtNIENVQkVEO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDAwNkQgMDBCMzs7OztOO1NRVUFSRUQgS00gQ1VCRUQ7Ozs7CiszM0E3O1NRVUFSRSBNIE9WRVIgUztTbzswO0w7PHNxdWFyZT4gMDA2RCAyMjE1IDAwNzM7Ozs7TjtTUVVBUkVEIE0gT1ZFUiBTOzs7OworMzNBODtTUVVBUkUgTSBPVkVSIFMgU1FVQVJFRDtTbzswO0w7PHNxdWFyZT4gMDA2RCAyMjE1IDAwNzMgMDBCMjs7OztOO1NRVUFSRUQgTSBPVkVSIFMgU1FVQVJFRDs7OzsKKzMzQTk7U1FVQVJFIFBBO1NvOzA7TDs8c3F1YXJlPiAwMDUwIDAwNjE7Ozs7TjtTUVVBUkVEIFBBOzs7OworMzNBQTtTUVVBUkUgS1BBO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDAwNTAgMDA2MTs7OztOO1NRVUFSRUQgS1BBOzs7OworMzNBQjtTUVVBUkUgTVBBO1NvOzA7TDs8c3F1YXJlPiAwMDREIDAwNTAgMDA2MTs7OztOO1NRVUFSRUQgTVBBOzs7OworMzNBQztTUVVBUkUgR1BBO1NvOzA7TDs8c3F1YXJlPiAwMDQ3IDAwNTAgMDA2MTs7OztOO1NRVUFSRUQgR1BBOzs7OworMzNBRDtTUVVBUkUgUkFEO1NvOzA7TDs8c3F1YXJlPiAwMDcyIDAwNjEgMDA2NDs7OztOO1NRVUFSRUQgUkFEOzs7OworMzNBRTtTUVVBUkUgUkFEIE9WRVIgUztTbzswO0w7PHNxdWFyZT4gMDA3MiAwMDYxIDAwNjQgMjIxNSAwMDczOzs7O047U1FVQVJFRCBSQUQgT1ZFUiBTOzs7OworMzNBRjtTUVVBUkUgUkFEIE9WRVIgUyBTUVVBUkVEO1NvOzA7TDs8c3F1YXJlPiAwMDcyIDAwNjEgMDA2NCAyMjE1IDAwNzMgMDBCMjs7OztOO1NRVUFSRUQgUkFEIE9WRVIgUyBTUVVBUkVEOzs7OworMzNCMDtTUVVBUkUgUFM7U287MDtMOzxzcXVhcmU+IDAwNzAgMDA3Mzs7OztOO1NRVUFSRUQgUFM7Ozs7CiszM0IxO1NRVUFSRSBOUztTbzswO0w7PHNxdWFyZT4gMDA2RSAwMDczOzs7O047U1FVQVJFRCBOUzs7OzsKKzMzQjI7U1FVQVJFIE1VIFM7U287MDtMOzxzcXVhcmU+IDAzQkMgMDA3Mzs7OztOO1NRVUFSRUQgTVUgUzs7OzsKKzMzQjM7U1FVQVJFIE1TO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNzM7Ozs7TjtTUVVBUkVEIE1TOzs7OworMzNCNDtTUVVBUkUgUFY7U287MDtMOzxzcXVhcmU+IDAwNzAgMDA1Njs7OztOO1NRVUFSRUQgUFY7Ozs7CiszM0I1O1NRVUFSRSBOVjtTbzswO0w7PHNxdWFyZT4gMDA2RSAwMDU2Ozs7O047U1FVQVJFRCBOVjs7OzsKKzMzQjY7U1FVQVJFIE1VIFY7U287MDtMOzxzcXVhcmU+IDAzQkMgMDA1Njs7OztOO1NRVUFSRUQgTVUgVjs7OzsKKzMzQjc7U1FVQVJFIE1WO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNTY7Ozs7TjtTUVVBUkVEIE1WOzs7OworMzNCODtTUVVBUkUgS1Y7U287MDtMOzxzcXVhcmU+IDAwNkIgMDA1Njs7OztOO1NRVUFSRUQgS1Y7Ozs7CiszM0I5O1NRVUFSRSBNViBNRUdBO1NvOzA7TDs8c3F1YXJlPiAwMDREIDAwNTY7Ozs7TjtTUVVBUkVEIE1WIE1FR0E7Ozs7CiszM0JBO1NRVUFSRSBQVztTbzswO0w7PHNxdWFyZT4gMDA3MCAwMDU3Ozs7O047U1FVQVJFRCBQVzs7OzsKKzMzQkI7U1FVQVJFIE5XO1NvOzA7TDs8c3F1YXJlPiAwMDZFIDAwNTc7Ozs7TjtTUVVBUkVEIE5XOzs7OworMzNCQztTUVVBUkUgTVUgVztTbzswO0w7PHNxdWFyZT4gMDNCQyAwMDU3Ozs7O047U1FVQVJFRCBNVSBXOzs7OworMzNCRDtTUVVBUkUgTVc7U287MDtMOzxzcXVhcmU+IDAwNkQgMDA1Nzs7OztOO1NRVUFSRUQgTVc7Ozs7CiszM0JFO1NRVUFSRSBLVztTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDU3Ozs7O047U1FVQVJFRCBLVzs7OzsKKzMzQkY7U1FVQVJFIE1XIE1FR0E7U287MDtMOzxzcXVhcmU+IDAwNEQgMDA1Nzs7OztOO1NRVUFSRUQgTVcgTUVHQTs7OzsKKzMzQzA7U1FVQVJFIEsgT0hNO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDAzQTk7Ozs7TjtTUVVBUkVEIEsgT0hNOzs7OworMzNDMTtTUVVBUkUgTSBPSE07U287MDtMOzxzcXVhcmU+IDAwNEQgMDNBOTs7OztOO1NRVUFSRUQgTSBPSE07Ozs7CiszM0MyO1NRVUFSRSBBTTtTbzswO0w7PHNxdWFyZT4gMDA2MSAwMDJFIDAwNkQgMDAyRTs7OztOO1NRVUFSRUQgQU07Ozs7CiszM0MzO1NRVUFSRSBCUTtTbzswO0w7PHNxdWFyZT4gMDA0MiAwMDcxOzs7O047U1FVQVJFRCBCUTs7OzsKKzMzQzQ7U1FVQVJFIENDO1NvOzA7TDs8c3F1YXJlPiAwMDYzIDAwNjM7Ozs7TjtTUVVBUkVEIENDOzs7OworMzNDNTtTUVVBUkUgQ0Q7U287MDtMOzxzcXVhcmU+IDAwNjMgMDA2NDs7OztOO1NRVUFSRUQgQ0Q7Ozs7CiszM0M2O1NRVUFSRSBDIE9WRVIgS0c7U287MDtMOzxzcXVhcmU+IDAwNDMgMjIxNSAwMDZCIDAwNjc7Ozs7TjtTUVVBUkVEIEMgT1ZFUiBLRzs7OzsKKzMzQzc7U1FVQVJFIENPO1NvOzA7TDs8c3F1YXJlPiAwMDQzIDAwNkYgMDAyRTs7OztOO1NRVUFSRUQgQ087Ozs7CiszM0M4O1NRVUFSRSBEQjtTbzswO0w7PHNxdWFyZT4gMDA2NCAwMDQyOzs7O047U1FVQVJFRCBEQjs7OzsKKzMzQzk7U1FVQVJFIEdZO1NvOzA7TDs8c3F1YXJlPiAwMDQ3IDAwNzk7Ozs7TjtTUVVBUkVEIEdZOzs7OworMzNDQTtTUVVBUkUgSEE7U287MDtMOzxzcXVhcmU+IDAwNjggMDA2MTs7OztOO1NRVUFSRUQgSEE7Ozs7CiszM0NCO1NRVUFSRSBIUDtTbzswO0w7PHNxdWFyZT4gMDA0OCAwMDUwOzs7O047U1FVQVJFRCBIUDs7OzsKKzMzQ0M7U1FVQVJFIElOO1NvOzA7TDs8c3F1YXJlPiAwMDY5IDAwNkU7Ozs7TjtTUVVBUkVEIElOOzs7OworMzNDRDtTUVVBUkUgS0s7U287MDtMOzxzcXVhcmU+IDAwNEIgMDA0Qjs7OztOO1NRVUFSRUQgS0s7Ozs7CiszM0NFO1NRVUFSRSBLTSBDQVBJVEFMO1NvOzA7TDs8c3F1YXJlPiAwMDRCIDAwNEQ7Ozs7TjtTUVVBUkVEIEtNIENBUElUQUw7Ozs7CiszM0NGO1NRVUFSRSBLVDtTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDc0Ozs7O047U1FVQVJFRCBLVDs7OzsKKzMzRDA7U1FVQVJFIExNO1NvOzA7TDs8c3F1YXJlPiAwMDZDIDAwNkQ7Ozs7TjtTUVVBUkVEIExNOzs7OworMzNEMTtTUVVBUkUgTE47U287MDtMOzxzcXVhcmU+IDAwNkMgMDA2RTs7OztOO1NRVUFSRUQgTE47Ozs7CiszM0QyO1NRVUFSRSBMT0c7U287MDtMOzxzcXVhcmU+IDAwNkMgMDA2RiAwMDY3Ozs7O047U1FVQVJFRCBMT0c7Ozs7CiszM0QzO1NRVUFSRSBMWDtTbzswO0w7PHNxdWFyZT4gMDA2QyAwMDc4Ozs7O047U1FVQVJFRCBMWDs7OzsKKzMzRDQ7U1FVQVJFIE1CIFNNQUxMO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNjI7Ozs7TjtTUVVBUkVEIE1CIFNNQUxMOzs7OworMzNENTtTUVVBUkUgTUlMO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNjkgMDA2Qzs7OztOO1NRVUFSRUQgTUlMOzs7OworMzNENjtTUVVBUkUgTU9MO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNkYgMDA2Qzs7OztOO1NRVUFSRUQgTU9MOzs7OworMzNENztTUVVBUkUgUEg7U287MDtMOzxzcXVhcmU+IDAwNTAgMDA0ODs7OztOO1NRVUFSRUQgUEg7Ozs7CiszM0Q4O1NRVUFSRSBQTTtTbzswO0w7PHNxdWFyZT4gMDA3MCAwMDJFIDAwNkQgMDAyRTs7OztOO1NRVUFSRUQgUE07Ozs7CiszM0Q5O1NRVUFSRSBQUE07U287MDtMOzxzcXVhcmU+IDAwNTAgMDA1MCAwMDREOzs7O047U1FVQVJFRCBQUE07Ozs7CiszM0RBO1NRVUFSRSBQUjtTbzswO0w7PHNxdWFyZT4gMDA1MCAwMDUyOzs7O047U1FVQVJFRCBQUjs7OzsKKzMzREI7U1FVQVJFIFNSO1NvOzA7TDs8c3F1YXJlPiAwMDczIDAwNzI7Ozs7TjtTUVVBUkVEIFNSOzs7OworMzNEQztTUVVBUkUgU1Y7U287MDtMOzxzcXVhcmU+IDAwNTMgMDA3Njs7OztOO1NRVUFSRUQgU1Y7Ozs7CiszM0REO1NRVUFSRSBXQjtTbzswO0w7PHNxdWFyZT4gMDA1NyAwMDYyOzs7O047U1FVQVJFRCBXQjs7OzsKKzMzRTA7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIE9ORTtTbzswO0w7PGNvbXBhdD4gMDAzMSA2NUU1Ozs7O047Ozs7OworMzNFMTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdPO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDY1RTU7Ozs7Tjs7Ozs7CiszM0UyO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUSFJFRTtTbzswO0w7PGNvbXBhdD4gMDAzMyA2NUU1Ozs7O047Ozs7OworMzNFMztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgRk9VUjtTbzswO0w7PGNvbXBhdD4gMDAzNCA2NUU1Ozs7O047Ozs7OworMzNFNDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgRklWRTtTbzswO0w7PGNvbXBhdD4gMDAzNSA2NUU1Ozs7O047Ozs7OworMzNFNTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgU0lYO1NvOzA7TDs8Y29tcGF0PiAwMDM2IDY1RTU7Ozs7Tjs7Ozs7CiszM0U2O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBTRVZFTjtTbzswO0w7PGNvbXBhdD4gMDAzNyA2NUU1Ozs7O047Ozs7OworMzNFNztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgRUlHSFQ7U287MDtMOzxjb21wYXQ+IDAwMzggNjVFNTs7OztOOzs7OzsKKzMzRTg7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIE5JTkU7U287MDtMOzxjb21wYXQ+IDAwMzkgNjVFNTs7OztOOzs7OzsKKzMzRTk7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDMwIDY1RTU7Ozs7Tjs7Ozs7CiszM0VBO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBFTEVWRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzMSA2NUU1Ozs7O047Ozs7OworMzNFQjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTFZFO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzIgNjVFNTs7OztOOzs7OzsKKzMzRUM7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRISVJURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzMgNjVFNTs7OztOOzs7OzsKKzMzRUQ7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIEZPVVJURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzQgNjVFNTs7OztOOzs7OzsKKzMzRUU7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIEZJRlRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzNSA2NUU1Ozs7O047Ozs7OworMzNFRjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgU0lYVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDM2IDY1RTU7Ozs7Tjs7Ozs7CiszM0YwO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBTRVZFTlRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzNyA2NUU1Ozs7O047Ozs7OworMzNGMTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgRUlHSFRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzOCA2NUU1Ozs7O047Ozs7OworMzNGMjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgTklORVRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzOSA2NUU1Ozs7O047Ozs7OworMzNGMztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzAgNjVFNTs7OztOOzs7OzsKKzMzRjQ7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRXRU5UWS1PTkU7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzMSA2NUU1Ozs7O047Ozs7OworMzNGNTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZLVRXTztTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDMyIDY1RTU7Ozs7Tjs7Ozs7CiszM0Y2O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUV0VOVFktVEhSRUU7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzMyA2NUU1Ozs7O047Ozs7OworMzNGNztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZLUZPVVI7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzNCA2NUU1Ozs7O047Ozs7OworMzNGODtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZLUZJVkU7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzNSA2NUU1Ozs7O047Ozs7OworMzNGOTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZLVNJWDtTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDM2IDY1RTU7Ozs7Tjs7Ozs7CiszM0ZBO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUV0VOVFktU0VWRU47U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzNyA2NUU1Ozs7O047Ozs7OworMzNGQjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZLUVJR0hUO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzggNjVFNTs7OztOOzs7OzsKKzMzRkM7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRXRU5UWS1OSU5FO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzkgNjVFNTs7OztOOzs7OzsKKzMzRkQ7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRISVJUWTtTbzswO0w7PGNvbXBhdD4gMDAzMyAwMDMwIDY1RTU7Ozs7Tjs7Ozs7CiszM0ZFO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUSElSVFktT05FO1NvOzA7TDs8Y29tcGF0PiAwMDMzIDAwMzEgNjVFNTs7OztOOzs7OzsKKzRFMDA7PENKSyBJZGVvZ3JhcGgsIEZpcnN0PjtMbzswO0w7Ozs7O047Ozs7OworOUZBNTs8Q0pLIElkZW9ncmFwaCwgTGFzdD47TG87MDtMOzs7OztOOzs7OzsKK0FDMDA7PEhhbmd1bCBTeWxsYWJsZSwgRmlyc3Q+O0xvOzA7TDs7Ozs7Tjs7Ozs7CitEN0EzOzxIYW5ndWwgU3lsbGFibGUsIExhc3Q+O0xvOzA7TDs7Ozs7Tjs7Ozs7CitEODAwOzxVbmFzc2lnbmVkIEhpZ2ggU3Vycm9nYXRlLCBGaXJzdD47Q3M7MDtMOzs7OztOOzs7OzsKK0RCN0Y7PFVuYXNzaWduZWQgSGlnaCBTdXJyb2dhdGUsIExhc3Q+O0NzOzA7TDs7Ozs7Tjs7Ozs7CitEQjgwOzxQcml2YXRlIFVzZSBIaWdoIFN1cnJvZ2F0ZSwgRmlyc3Q+O0NzOzA7TDs7Ozs7Tjs7Ozs7CitEQkZGOzxQcml2YXRlIFVzZSBIaWdoIFN1cnJvZ2F0ZSwgTGFzdD47Q3M7MDtMOzs7OztOOzs7OzsKK0RDMDA7PExvdyBTdXJyb2dhdGUsIEZpcnN0PjtDczswO0w7Ozs7O047Ozs7OworREZGRjs8TG93IFN1cnJvZ2F0ZSwgTGFzdD47Q3M7MDtMOzs7OztOOzs7OzsKK0UwMDA7PFByaXZhdGUgVXNlLCBGaXJzdD47Q287MDtMOzs7OztOOzs7OzsKK0Y4RkY7PFByaXZhdGUgVXNlLCBMYXN0PjtDbzswO0w7Ozs7O047Ozs7OworRjkwMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwMDtMbzswO0w7OEM0ODs7OztOOzs7OzsKK0Y5MDE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MDE7TG87MDtMOzY2RjQ7Ozs7Tjs7Ozs7CitGOTAyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTAyO0xvOzA7TDs4RUNBOzs7O047Ozs7OworRjkwMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwMztMbzswO0w7OENDODs7OztOOzs7OzsKK0Y5MDQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MDQ7TG87MDtMOzZFRDE7Ozs7Tjs7Ozs7CitGOTA1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTA1O0xvOzA7TDs0RTMyOzs7O047Ozs7OworRjkwNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwNjtMbzswO0w7NTNFNTs7OztOOzs7OzsKK0Y5MDc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MDc7TG87MDtMOzlGOUM7Ozs7Tjs7Ozs7CitGOTA4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTA4O0xvOzA7TDs5RjlDOzs7O047Ozs7OworRjkwOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwOTtMbzswO0w7NTk1MTs7OztOOzs7OzsKK0Y5MEE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MEE7TG87MDtMOzkxRDE7Ozs7Tjs7Ozs7CitGOTBCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTBCO0xvOzA7TDs1NTg3Ozs7O047Ozs7OworRjkwQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwQztMbzswO0w7NTk0ODs7OztOOzs7OzsKK0Y5MEQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MEQ7TG87MDtMOzYxRjY7Ozs7Tjs7Ozs7CitGOTBFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTBFO0xvOzA7TDs3NjY5Ozs7O047Ozs7OworRjkwRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwRjtMbzswO0w7N0Y4NTs7OztOOzs7OzsKK0Y5MTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MTA7TG87MDtMOzg2M0Y7Ozs7Tjs7Ozs7CitGOTExO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTExO0xvOzA7TDs4N0JBOzs7O047Ozs7OworRjkxMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxMjtMbzswO0w7ODhGODs7OztOOzs7OzsKK0Y5MTM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MTM7TG87MDtMOzkwOEY7Ozs7Tjs7Ozs7CitGOTE0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTE0O0xvOzA7TDs2QTAyOzs7O047Ozs7OworRjkxNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxNTtMbzswO0w7NkQxQjs7OztOOzs7OzsKK0Y5MTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MTY7TG87MDtMOzcwRDk7Ozs7Tjs7Ozs7CitGOTE3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTE3O0xvOzA7TDs3M0RFOzs7O047Ozs7OworRjkxODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxODtMbzswO0w7ODQzRDs7OztOOzs7OzsKK0Y5MTk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MTk7TG87MDtMOzkxNkE7Ozs7Tjs7Ozs7CitGOTFBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTFBO0xvOzA7TDs5OUYxOzs7O047Ozs7OworRjkxQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxQjtMbzswO0w7NEU4Mjs7OztOOzs7OzsKK0Y5MUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MUM7TG87MDtMOzUzNzU7Ozs7Tjs7Ozs7CitGOTFEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTFEO0xvOzA7TDs2QjA0Ozs7O047Ozs7OworRjkxRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxRTtMbzswO0w7NzIxQjs7OztOOzs7OzsKK0Y5MUY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MUY7TG87MDtMOzg2MkQ7Ozs7Tjs7Ozs7CitGOTIwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTIwO0xvOzA7TDs5RTFFOzs7O047Ozs7OworRjkyMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyMTtMbzswO0w7NUQ1MDs7OztOOzs7OzsKK0Y5MjI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MjI7TG87MDtMOzZGRUI7Ozs7Tjs7Ozs7CitGOTIzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTIzO0xvOzA7TDs4NUNEOzs7O047Ozs7OworRjkyNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyNDtMbzswO0w7ODk2NDs7OztOOzs7OzsKK0Y5MjU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MjU7TG87MDtMOzYyQzk7Ozs7Tjs7Ozs7CitGOTI2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTI2O0xvOzA7TDs4MUQ4Ozs7O047Ozs7OworRjkyNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyNztMbzswO0w7ODgxRjs7OztOOzs7OzsKK0Y5Mjg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Mjg7TG87MDtMOzVFQ0E7Ozs7Tjs7Ozs7CitGOTI5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTI5O0xvOzA7TDs2NzE3Ozs7O047Ozs7OworRjkyQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyQTtMbzswO0w7NkQ2QTs7OztOOzs7OzsKK0Y5MkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MkI7TG87MDtMOzcyRkM7Ozs7Tjs7Ozs7CitGOTJDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTJDO0xvOzA7TDs5MENFOzs7O047Ozs7OworRjkyRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyRDtMbzswO0w7NEY4Njs7OztOOzs7OzsKK0Y5MkU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MkU7TG87MDtMOzUxQjc7Ozs7Tjs7Ozs7CitGOTJGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTJGO0xvOzA7TDs1MkRFOzs7O047Ozs7OworRjkzMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzMDtMbzswO0w7NjRDNDs7OztOOzs7OzsKK0Y5MzE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MzE7TG87MDtMOzZBRDM7Ozs7Tjs7Ozs7CitGOTMyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTMyO0xvOzA7TDs3MjEwOzs7O047Ozs7OworRjkzMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzMztMbzswO0w7NzZFNzs7OztOOzs7OzsKK0Y5MzQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MzQ7TG87MDtMOzgwMDE7Ozs7Tjs7Ozs7CitGOTM1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTM1O0xvOzA7TDs4NjA2Ozs7O047Ozs7OworRjkzNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzNjtMbzswO0w7ODY1Qzs7OztOOzs7OzsKK0Y5Mzc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Mzc7TG87MDtMOzhERUY7Ozs7Tjs7Ozs7CitGOTM4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTM4O0xvOzA7TDs5NzMyOzs7O047Ozs7OworRjkzOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzOTtMbzswO0w7OUI2Rjs7OztOOzs7OzsKK0Y5M0E7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5M0E7TG87MDtMOzlERkE7Ozs7Tjs7Ozs7CitGOTNCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTNCO0xvOzA7TDs3ODhDOzs7O047Ozs7OworRjkzQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzQztMbzswO0w7Nzk3Rjs7OztOOzs7OzsKK0Y5M0Q7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5M0Q7TG87MDtMOzdEQTA7Ozs7Tjs7Ozs7CitGOTNFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTNFO0xvOzA7TDs4M0M5Ozs7O047Ozs7OworRjkzRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzRjtMbzswO0w7OTMwNDs7OztOOzs7OzsKK0Y5NDA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NDA7TG87MDtMOzlFN0Y7Ozs7Tjs7Ozs7CitGOTQxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTQxO0xvOzA7TDs4QUQ2Ozs7O047Ozs7OworRjk0MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0MjtMbzswO0w7NThERjs7OztOOzs7OzsKK0Y5NDM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NDM7TG87MDtMOzVGMDQ7Ozs7Tjs7Ozs7CitGOTQ0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTQ0O0xvOzA7TDs3QzYwOzs7O047Ozs7OworRjk0NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0NTtMbzswO0w7ODA3RTs7OztOOzs7OzsKK0Y5NDY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NDY7TG87MDtMOzcyNjI7Ozs7Tjs7Ozs7CitGOTQ3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTQ3O0xvOzA7TDs3OENBOzs7O047Ozs7OworRjk0ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0ODtMbzswO0w7OENDMjs7OztOOzs7OzsKK0Y5NDk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NDk7TG87MDtMOzk2Rjc7Ozs7Tjs7Ozs7CitGOTRBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTRBO0xvOzA7TDs1OEQ4Ozs7O047Ozs7OworRjk0QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0QjtMbzswO0w7NUM2Mjs7OztOOzs7OzsKK0Y5NEM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NEM7TG87MDtMOzZBMTM7Ozs7Tjs7Ozs7CitGOTREO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTREO0xvOzA7TDs2RERBOzs7O047Ozs7OworRjk0RTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0RTtMbzswO0w7NkYwRjs7OztOOzs7OzsKK0Y5NEY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NEY7TG87MDtMOzdEMkY7Ozs7Tjs7Ozs7CitGOTUwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTUwO0xvOzA7TDs3RTM3Ozs7O047Ozs7OworRjk1MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1MTtMbzswO0w7OTZGQjs7OztOOzs7OzsKK0Y5NTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NTI7TG87MDtMOzUyRDI7Ozs7Tjs7Ozs7CitGOTUzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTUzO0xvOzA7TDs4MDhCOzs7O047Ozs7OworRjk1NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1NDtMbzswO0w7NTFEQzs7OztOOzs7OzsKK0Y5NTU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NTU7TG87MDtMOzUxQ0M7Ozs7Tjs7Ozs7CitGOTU2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTU2O0xvOzA7TDs3QTFDOzs7O047Ozs7OworRjk1NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1NztMbzswO0w7N0RCRTs7OztOOzs7OzsKK0Y5NTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NTg7TG87MDtMOzgzRjE7Ozs7Tjs7Ozs7CitGOTU5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTU5O0xvOzA7TDs5Njc1Ozs7O047Ozs7OworRjk1QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1QTtMbzswO0w7OEI4MDs7OztOOzs7OzsKK0Y5NUI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NUI7TG87MDtMOzYyQ0Y7Ozs7Tjs7Ozs7CitGOTVDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTVDO0xvOzA7TDs2QTAyOzs7O047Ozs7OworRjk1RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1RDtMbzswO0w7OEFGRTs7OztOOzs7OzsKK0Y5NUU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NUU7TG87MDtMOzRFMzk7Ozs7Tjs7Ozs7CitGOTVGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTVGO0xvOzA7TDs1QkU3Ozs7O047Ozs7OworRjk2MDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2MDtMbzswO0w7NjAxMjs7OztOOzs7OzsKK0Y5NjE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NjE7TG87MDtMOzczODc7Ozs7Tjs7Ozs7CitGOTYyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTYyO0xvOzA7TDs3NTcwOzs7O047Ozs7OworRjk2MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2MztMbzswO0w7NTMxNzs7OztOOzs7OzsKK0Y5NjQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NjQ7TG87MDtMOzc4RkI7Ozs7Tjs7Ozs7CitGOTY1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTY1O0xvOzA7TDs0RkJGOzs7O047Ozs7OworRjk2NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2NjtMbzswO0w7NUZBOTs7OztOOzs7OzsKK0Y5Njc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Njc7TG87MDtMOzRFMEQ7Ozs7Tjs7Ozs7CitGOTY4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTY4O0xvOzA7TDs2Q0NDOzs7O047Ozs7OworRjk2OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2OTtMbzswO0w7NjU3ODs7OztOOzs7OzsKK0Y5NkE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NkE7TG87MDtMOzdEMjI7Ozs7Tjs7Ozs7CitGOTZCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTZCO0xvOzA7TDs1M0MzOzs7O047Ozs7OworRjk2QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2QztMbzswO0w7NTg1RTs7OztOOzs7OzsKK0Y5NkQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NkQ7TG87MDtMOzc3MDE7Ozs7Tjs7Ozs7CitGOTZFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTZFO0xvOzA7TDs4NDQ5Ozs7O047Ozs7OworRjk2RjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2RjtMbzswO0w7OEFBQTs7OztOOzs7OzsKK0Y5NzA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NzA7TG87MDtMOzZCQkE7Ozs7Tjs7Ozs7CitGOTcxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTcxO0xvOzA7TDs4RkIwOzs7O047Ozs7OworRjk3MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3MjtMbzswO0w7NkM4ODs7OztOOzs7OzsKK0Y5NzM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NzM7TG87MDtMOzYyRkU7Ozs7Tjs7Ozs7CitGOTc0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTc0O0xvOzA7TDs4MkU1Ozs7O047Ozs7OworRjk3NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3NTtMbzswO0w7NjNBMDs7OztOOzs7OzsKK0Y5NzY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NzY7TG87MDtMOzc1NjU7Ozs7Tjs7Ozs7CitGOTc3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTc3O0xvOzA7TDs0RUFFOzs7O047Ozs7OworRjk3ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3ODtMbzswO0w7NTE2OTs7OztOOzs7OzsKK0Y5Nzk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Nzk7TG87MDtMOzUxQzk7Ozs7Tjs7Ozs7CitGOTdBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTdBO0xvOzA7TDs2ODgxOzs7O047Ozs7OworRjk3QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3QjtMbzswO0w7N0NFNzs7OztOOzs7OzsKK0Y5N0M7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5N0M7TG87MDtMOzgyNkY7Ozs7Tjs7Ozs7CitGOTdEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTdEO0xvOzA7TDs4QUQyOzs7O047Ozs7OworRjk3RTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3RTtMbzswO0w7OTFDRjs7OztOOzs7OzsKK0Y5N0Y7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5N0Y7TG87MDtMOzUyRjU7Ozs7Tjs7Ozs7CitGOTgwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTgwO0xvOzA7TDs1NDQyOzs7O047Ozs7OworRjk4MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4MTtMbzswO0w7NTk3Mzs7OztOOzs7OzsKK0Y5ODI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5ODI7TG87MDtMOzVFRUM7Ozs7Tjs7Ozs7CitGOTgzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTgzO0xvOzA7TDs2NUM1Ozs7O047Ozs7OworRjk4NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4NDtMbzswO0w7NkZGRTs7OztOOzs7OzsKK0Y5ODU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5ODU7TG87MDtMOzc5MkE7Ozs7Tjs7Ozs7CitGOTg2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTg2O0xvOzA7TDs5NUFEOzs7O047Ozs7OworRjk4NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4NztMbzswO0w7OUE2QTs7OztOOzs7OzsKK0Y5ODg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5ODg7TG87MDtMOzlFOTc7Ozs7Tjs7Ozs7CitGOTg5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTg5O0xvOzA7TDs5RUNFOzs7O047Ozs7OworRjk4QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4QTtMbzswO0w7NTI5Qjs7OztOOzs7OzsKK0Y5OEI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OEI7TG87MDtMOzY2QzY7Ozs7Tjs7Ozs7CitGOThDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOThDO0xvOzA7TDs2Qjc3Ozs7O047Ozs7OworRjk4RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4RDtMbzswO0w7OEY2Mjs7OztOOzs7OzsKK0Y5OEU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OEU7TG87MDtMOzVFNzQ7Ozs7Tjs7Ozs7CitGOThGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOThGO0xvOzA7TDs2MTkwOzs7O047Ozs7OworRjk5MDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5MDtMbzswO0w7NjIwMDs7OztOOzs7OzsKK0Y5OTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OTE7TG87MDtMOzY0OUE7Ozs7Tjs7Ozs7CitGOTkyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTkyO0xvOzA7TDs2RjIzOzs7O047Ozs7OworRjk5MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5MztMbzswO0w7NzE0OTs7OztOOzs7OzsKK0Y5OTQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OTQ7TG87MDtMOzc0ODk7Ozs7Tjs7Ozs7CitGOTk1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTk1O0xvOzA7TDs3OUNBOzs7O047Ozs7OworRjk5NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5NjtMbzswO0w7N0RGNDs7OztOOzs7OzsKK0Y5OTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OTc7TG87MDtMOzgwNkY7Ozs7Tjs7Ozs7CitGOTk4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTk4O0xvOzA7TDs4RjI2Ozs7O047Ozs7OworRjk5OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5OTtMbzswO0w7ODRFRTs7OztOOzs7OzsKK0Y5OUE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OUE7TG87MDtMOzkwMjM7Ozs7Tjs7Ozs7CitGOTlCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTlCO0xvOzA7TDs5MzRBOzs7O047Ozs7OworRjk5QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5QztMbzswO0w7NTIxNzs7OztOOzs7OzsKK0Y5OUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OUQ7TG87MDtMOzUyQTM7Ozs7Tjs7Ozs7CitGOTlFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTlFO0xvOzA7TDs1NEJEOzs7O047Ozs7OworRjk5RjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5RjtMbzswO0w7NzBDODs7OztOOzs7OzsKK0Y5QTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QTA7TG87MDtMOzg4QzI7Ozs7Tjs7Ozs7CitGOUExO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUExO0xvOzA7TDs4QUFBOzs7O047Ozs7OworRjlBMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBMjtMbzswO0w7NUVDOTs7OztOOzs7OzsKK0Y5QTM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QTM7TG87MDtMOzVGRjU7Ozs7Tjs7Ozs7CitGOUE0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUE0O0xvOzA7TDs2MzdCOzs7O047Ozs7OworRjlBNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBNTtMbzswO0w7NkJBRTs7OztOOzs7OzsKK0Y5QTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QTY7TG87MDtMOzdDM0U7Ozs7Tjs7Ozs7CitGOUE3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUE3O0xvOzA7TDs3Mzc1Ozs7O047Ozs7OworRjlBODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBODtMbzswO0w7NEVFNDs7OztOOzs7OzsKK0Y5QTk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QTk7TG87MDtMOzU2Rjk7Ozs7Tjs7Ozs7CitGOUFBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUFBO0xvOzA7TDs1QkU3Ozs7O047Ozs7OworRjlBQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBQjtMbzswO0w7NURCQTs7OztOOzs7OzsKK0Y5QUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QUM7TG87MDtMOzYwMUM7Ozs7Tjs7Ozs7CitGOUFEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUFEO0xvOzA7TDs3M0IyOzs7O047Ozs7OworRjlBRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBRTtMbzswO0w7NzQ2OTs7OztOOzs7OzsKK0Y5QUY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QUY7TG87MDtMOzdGOUE7Ozs7Tjs7Ozs7CitGOUIwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUIwO0xvOzA7TDs4MDQ2Ozs7O047Ozs7OworRjlCMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCMTtMbzswO0w7OTIzNDs7OztOOzs7OzsKK0Y5QjI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QjI7TG87MDtMOzk2RjY7Ozs7Tjs7Ozs7CitGOUIzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUIzO0xvOzA7TDs5NzQ4Ozs7O047Ozs7OworRjlCNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCNDtMbzswO0w7OTgxODs7OztOOzs7OzsKK0Y5QjU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QjU7TG87MDtMOzRGOEI7Ozs7Tjs7Ozs7CitGOUI2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUI2O0xvOzA7TDs3OUFFOzs7O047Ozs7OworRjlCNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCNztMbzswO0w7OTFCNDs7OztOOzs7OzsKK0Y5Qjg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Qjg7TG87MDtMOzk2Qjg7Ozs7Tjs7Ozs7CitGOUI5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUI5O0xvOzA7TDs2MEUxOzs7O047Ozs7OworRjlCQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCQTtMbzswO0w7NEU4Njs7OztOOzs7OzsKK0Y5QkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QkI7TG87MDtMOzUwREE7Ozs7Tjs7Ozs7CitGOUJDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUJDO0xvOzA7TDs1QkVFOzs7O047Ozs7OworRjlCRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCRDtMbzswO0w7NUMzRjs7OztOOzs7OzsKK0Y5QkU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QkU7TG87MDtMOzY1OTk7Ozs7Tjs7Ozs7CitGOUJGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUJGO0xvOzA7TDs2QTAyOzs7O047Ozs7OworRjlDMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDMDtMbzswO0w7NzFDRTs7OztOOzs7OzsKK0Y5QzE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QzE7TG87MDtMOzc2NDI7Ozs7Tjs7Ozs7CitGOUMyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUMyO0xvOzA7TDs4NEZDOzs7O047Ozs7OworRjlDMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDMztMbzswO0w7OTA3Qzs7OztOOzs7OzsKK0Y5QzQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QzQ7TG87MDtMOzlGOEQ7Ozs7Tjs7Ozs7CitGOUM1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUM1O0xvOzA7TDs2Njg4Ozs7O047Ozs7OworRjlDNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDNjtMbzswO0w7OTYyRTs7OztOOzs7OzsKK0Y5Qzc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Qzc7TG87MDtMOzUyODk7Ozs7Tjs7Ozs7CitGOUM4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUM4O0xvOzA7TDs2NzdCOzs7O047Ozs7OworRjlDOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDOTtMbzswO0w7NjdGMzs7OztOOzs7OzsKK0Y5Q0E7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Q0E7TG87MDtMOzZENDE7Ozs7Tjs7Ozs7CitGOUNCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUNCO0xvOzA7TDs2RTlDOzs7O047Ozs7OworRjlDQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDQztMbzswO0w7NzQwOTs7OztOOzs7OzsKK0Y5Q0Q7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Q0Q7TG87MDtMOzc1NTk7Ozs7Tjs7Ozs7CitGOUNFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUNFO0xvOzA7TDs3ODZCOzs7O047Ozs7OworRjlDRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDRjtMbzswO0w7N0QxMDs7OztOOzs7OzsKK0Y5RDA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RDA7TG87MDtMOzk4NUU7Ozs7Tjs7Ozs7CitGOUQxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUQxO0xvOzA7TDs1MTZEOzs7O047Ozs7OworRjlEMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlEMjtMbzswO0w7NjIyRTs7OztOOzs7OzsKK0Y5RDM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RDM7TG87MDtMOzk2Nzg7Ozs7Tjs7Ozs7CitGOUQ0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUQ0O0xvOzA7TDs1MDJCOzs7O047Ozs7OworRjlENTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlENTtMbzswO0w7NUQxOTs7OztOOzs7OzsKK0Y5RDY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RDY7TG87MDtMOzZERUE7Ozs7Tjs7Ozs7CitGOUQ3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUQ3O0xvOzA7TDs4RjJBOzs7O047Ozs7OworRjlEODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlEODtMbzswO0w7NUY4Qjs7OztOOzs7OzsKK0Y5RDk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RDk7TG87MDtMOzYxNDQ7Ozs7Tjs7Ozs7CitGOURBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOURBO0xvOzA7TDs2ODE3Ozs7O047Ozs7OworRjlEQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlEQjtMbzswO0w7NzM4Nzs7OztOOzs7OzsKK0Y5REM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5REM7TG87MDtMOzk2ODY7Ozs7Tjs7Ozs7CitGOUREO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUREO0xvOzA7TDs1MjI5Ozs7O047Ozs7OworRjlERTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlERTtMbzswO0w7NTQwRjs7OztOOzs7OzsKK0Y5REY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5REY7TG87MDtMOzVDNjU7Ozs7Tjs7Ozs7CitGOUUwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUUwO0xvOzA7TDs2NjEzOzs7O047Ozs7OworRjlFMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFMTtMbzswO0w7Njc0RTs7OztOOzs7OzsKK0Y5RTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RTI7TG87MDtMOzY4QTg7Ozs7Tjs7Ozs7CitGOUUzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUUzO0xvOzA7TDs2Q0U1Ozs7O047Ozs7OworRjlFNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFNDtMbzswO0w7NzQwNjs7OztOOzs7OzsKK0Y5RTU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RTU7TG87MDtMOzc1RTI7Ozs7Tjs7Ozs7CitGOUU2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUU2O0xvOzA7TDs3Rjc5Ozs7O047Ozs7OworRjlFNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFNztMbzswO0w7ODhDRjs7OztOOzs7OzsKK0Y5RTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RTg7TG87MDtMOzg4RTE7Ozs7Tjs7Ozs7CitGOUU5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUU5O0xvOzA7TDs5MUNDOzs7O047Ozs7OworRjlFQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFQTtMbzswO0w7OTZFMjs7OztOOzs7OzsKK0Y5RUI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RUI7TG87MDtMOzUzM0Y7Ozs7Tjs7Ozs7CitGOUVDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUVDO0xvOzA7TDs2RUJBOzs7O047Ozs7OworRjlFRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFRDtMbzswO0w7NTQxRDs7OztOOzs7OzsKK0Y5RUU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RUU7TG87MDtMOzcxRDA7Ozs7Tjs7Ozs7CitGOUVGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUVGO0xvOzA7TDs3NDk4Ozs7O047Ozs7OworRjlGMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGMDtMbzswO0w7ODVGQTs7OztOOzs7OzsKK0Y5RjE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RjE7TG87MDtMOzk2QTM7Ozs7Tjs7Ozs7CitGOUYyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUYyO0xvOzA7TDs5QzU3Ozs7O047Ozs7OworRjlGMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGMztMbzswO0w7OUU5Rjs7OztOOzs7OzsKK0Y5RjQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RjQ7TG87MDtMOzY3OTc7Ozs7Tjs7Ozs7CitGOUY1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUY1O0xvOzA7TDs2RENCOzs7O047Ozs7OworRjlGNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGNjtMbzswO0w7ODFFODs7OztOOzs7OzsKK0Y5Rjc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Rjc7TG87MDtMOzdBQ0I7Ozs7Tjs7Ozs7CitGOUY4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUY4O0xvOzA7TDs3QjIwOzs7O047Ozs7OworRjlGOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGOTtMbzswO0w7N0M5Mjs7OztOOzs7OzsKK0Y5RkE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RkE7TG87MDtMOzcyQzA7Ozs7Tjs7Ozs7CitGOUZCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUZCO0xvOzA7TDs3MDk5Ozs7O047Ozs7OworRjlGQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGQztMbzswO0w7OEI1ODs7OztOOzs7OzsKK0Y5RkQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RkQ7TG87MDtMOzRFQzA7Ozs7Tjs7Ozs7CitGOUZFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUZFO0xvOzA7TDs4MzM2Ozs7O047Ozs7OworRjlGRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGRjtMbzswO0w7NTIzQTs7OztOOzs7OzsKK0ZBMDA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMDA7TG87MDtMOzUyMDc7Ozs7Tjs7Ozs7CitGQTAxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTAxO0xvOzA7TDs1RUE2Ozs7O047Ozs7OworRkEwMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwMjtMbzswO0w7NjJEMzs7OztOOzs7OzsKK0ZBMDM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMDM7TG87MDtMOzdDRDY7Ozs7Tjs7Ozs7CitGQTA0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTA0O0xvOzA7TDs1Qjg1Ozs7O047Ozs7OworRkEwNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwNTtMbzswO0w7NkQxRTs7OztOOzs7OzsKK0ZBMDY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMDY7TG87MDtMOzY2QjQ7Ozs7Tjs7Ozs7CitGQTA3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTA3O0xvOzA7TDs4RjNCOzs7O047Ozs7OworRkEwODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwODtMbzswO0w7ODg0Qzs7OztOOzs7OzsKK0ZBMDk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMDk7TG87MDtMOzk2NEQ7Ozs7Tjs7Ozs7CitGQTBBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTBBO0xvOzA7TDs4OThCOzs7O047Ozs7OworRkEwQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwQjtMbzswO0w7NUVEMzs7OztOOzs7OzsKK0ZBMEM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMEM7TG87MDtMOzUxNDA7Ozs7Tjs7Ozs7CitGQTBEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTBEO0xvOzA7TDs1NUMwOzs7O047Ozs7OworRkEwRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwRTtMbzswO0w7Ozs7O047Ozs7OworRkEwRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwRjtMbzswO0w7Ozs7O047Ozs7OworRkExMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExMDtMbzswO0w7NTg1QTs7OztOOzs7OzsKK0ZBMTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMTE7TG87MDtMOzs7OztOOzs7OzsKK0ZBMTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMTI7TG87MDtMOzY2NzQ7Ozs7Tjs7Ozs7CitGQTEzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTEzO0xvOzA7TDs7Ozs7Tjs7Ozs7CitGQTE0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTE0O0xvOzA7TDs7Ozs7Tjs7Ozs7CitGQTE1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTE1O0xvOzA7TDs1MURFOzs7O047Ozs7OworRkExNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExNjtMbzswO0w7NzMyQTs7OztOOzs7OzsKK0ZBMTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMTc7TG87MDtMOzc2Q0E7Ozs7Tjs7Ozs7CitGQTE4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTE4O0xvOzA7TDs3OTNDOzs7O047Ozs7OworRkExOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExOTtMbzswO0w7Nzk1RTs7OztOOzs7OzsKK0ZBMUE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMUE7TG87MDtMOzc5NjU7Ozs7Tjs7Ozs7CitGQTFCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTFCO0xvOzA7TDs3OThGOzs7O047Ozs7OworRkExQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExQztMbzswO0w7OTc1Njs7OztOOzs7OzsKK0ZBMUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMUQ7TG87MDtMOzdDQkU7Ozs7Tjs7Ozs7CitGQTFFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTFFO0xvOzA7TDs3RkJEOzs7O047Ozs7OworRkExRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExRjtMbzswO0w7Ozs7O047Ozs7OworRkEyMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyMDtMbzswO0w7ODYxMjs7OztOOzs7OzsKK0ZBMjE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMjE7TG87MDtMOzs7OztOOzs7OzsKK0ZBMjI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMjI7TG87MDtMOzhBRjg7Ozs7Tjs7Ozs7CitGQTIzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTIzO0xvOzA7TDs7Ozs7Tjs7Ozs7CitGQTI0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTI0O0xvOzA7TDs7Ozs7Tjs7Ozs7CitGQTI1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTI1O0xvOzA7TDs5MDM4Ozs7O047Ozs7OworRkEyNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyNjtMbzswO0w7OTBGRDs7OztOOzs7OzsKK0ZBMjc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMjc7TG87MDtMOzs7OztOOzs7OzsKK0ZBMjg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMjg7TG87MDtMOzs7OztOOzs7OzsKK0ZBMjk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMjk7TG87MDtMOzs7OztOOzs7OzsKK0ZBMkE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMkE7TG87MDtMOzk4RUY7Ozs7Tjs7Ozs7CitGQTJCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTJCO0xvOzA7TDs5OEZDOzs7O047Ozs7OworRkEyQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyQztMbzswO0w7OTkyODs7OztOOzs7OzsKK0ZBMkQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMkQ7TG87MDtMOzlEQjQ7Ozs7Tjs7Ozs7CitGQjAwO0xBVElOIFNNQUxMIExJR0FUVVJFIEZGO0xsOzA7TDs8Y29tcGF0PiAwMDY2IDAwNjY7Ozs7Tjs7Ozs7CitGQjAxO0xBVElOIFNNQUxMIExJR0FUVVJFIEZJO0xsOzA7TDs8Y29tcGF0PiAwMDY2IDAwNjk7Ozs7Tjs7Ozs7CitGQjAyO0xBVElOIFNNQUxMIExJR0FUVVJFIEZMO0xsOzA7TDs8Y29tcGF0PiAwMDY2IDAwNkM7Ozs7Tjs7Ozs7CitGQjAzO0xBVElOIFNNQUxMIExJR0FUVVJFIEZGSTtMbDswO0w7PGNvbXBhdD4gMDA2NiAwMDY2IDAwNjk7Ozs7Tjs7Ozs7CitGQjA0O0xBVElOIFNNQUxMIExJR0FUVVJFIEZGTDtMbDswO0w7PGNvbXBhdD4gMDA2NiAwMDY2IDAwNkM7Ozs7Tjs7Ozs7CitGQjA1O0xBVElOIFNNQUxMIExJR0FUVVJFIExPTkcgUyBUO0xsOzA7TDs8Y29tcGF0PiAwMTdGIDAwNzQ7Ozs7Tjs7Ozs7CitGQjA2O0xBVElOIFNNQUxMIExJR0FUVVJFIFNUO0xsOzA7TDs8Y29tcGF0PiAwMDczIDAwNzQ7Ozs7Tjs7Ozs7CitGQjEzO0FSTUVOSUFOIFNNQUxMIExJR0FUVVJFIE1FTiBOT1c7TGw7MDtMOzxjb21wYXQ+IDA1NzQgMDU3Njs7OztOOzs7OzsKK0ZCMTQ7QVJNRU5JQU4gU01BTEwgTElHQVRVUkUgTUVOIEVDSDtMbDswO0w7PGNvbXBhdD4gMDU3NCAwNTY1Ozs7O047Ozs7OworRkIxNTtBUk1FTklBTiBTTUFMTCBMSUdBVFVSRSBNRU4gSU5JO0xsOzA7TDs8Y29tcGF0PiAwNTc0IDA1NkI7Ozs7Tjs7Ozs7CitGQjE2O0FSTUVOSUFOIFNNQUxMIExJR0FUVVJFIFZFVyBOT1c7TGw7MDtMOzxjb21wYXQ+IDA1N0UgMDU3Njs7OztOOzs7OzsKK0ZCMTc7QVJNRU5JQU4gU01BTEwgTElHQVRVUkUgTUVOIFhFSDtMbDswO0w7PGNvbXBhdD4gMDU3NCAwNTZEOzs7O047Ozs7OworRkIxRTtIRUJSRVcgUE9JTlQgSlVERU8tU1BBTklTSCBWQVJJS0E7TW47MjY7T047Ozs7O047SEVCUkVXIFBPSU5UIFZBUklLQTs7OzsKK0ZCMUY7SEVCUkVXIExJR0FUVVJFIFlJRERJU0ggWU9EIFlPRCBQQVRBSDtMbzswO1I7MDVGMiAwNUI3Ozs7O047Ozs7OworRkIyMDtIRUJSRVcgTEVUVEVSIEFMVEVSTkFUSVZFIEFZSU47TG87MDtSOzxmb250PiAwNUUyOzs7O047Ozs7OworRkIyMTtIRUJSRVcgTEVUVEVSIFdJREUgQUxFRjtMbzswO1I7PGZvbnQ+IDA1RDA7Ozs7Tjs7Ozs7CitGQjIyO0hFQlJFVyBMRVRURVIgV0lERSBEQUxFVDtMbzswO1I7PGZvbnQ+IDA1RDM7Ozs7Tjs7Ozs7CitGQjIzO0hFQlJFVyBMRVRURVIgV0lERSBIRTtMbzswO1I7PGZvbnQ+IDA1RDQ7Ozs7Tjs7Ozs7CitGQjI0O0hFQlJFVyBMRVRURVIgV0lERSBLQUY7TG87MDtSOzxmb250PiAwNURCOzs7O047Ozs7OworRkIyNTtIRUJSRVcgTEVUVEVSIFdJREUgTEFNRUQ7TG87MDtSOzxmb250PiAwNURDOzs7O047Ozs7OworRkIyNjtIRUJSRVcgTEVUVEVSIFdJREUgRklOQUwgTUVNO0xvOzA7Ujs8Zm9udD4gMDVERDs7OztOOzs7OzsKK0ZCMjc7SEVCUkVXIExFVFRFUiBXSURFIFJFU0g7TG87MDtSOzxmb250PiAwNUU4Ozs7O047Ozs7OworRkIyODtIRUJSRVcgTEVUVEVSIFdJREUgVEFWO0xvOzA7Ujs8Zm9udD4gMDVFQTs7OztOOzs7OzsKK0ZCMjk7SEVCUkVXIExFVFRFUiBBTFRFUk5BVElWRSBQTFVTIFNJR047U207MDtFVDs8Zm9udD4gMDAyQjs7OztOOzs7OzsKK0ZCMkE7SEVCUkVXIExFVFRFUiBTSElOIFdJVEggU0hJTiBET1Q7TG87MDtSOzA1RTkgMDVDMTs7OztOOzs7OzsKK0ZCMkI7SEVCUkVXIExFVFRFUiBTSElOIFdJVEggU0lOIERPVDtMbzswO1I7MDVFOSAwNUMyOzs7O047Ozs7OworRkIyQztIRUJSRVcgTEVUVEVSIFNISU4gV0lUSCBEQUdFU0ggQU5EIFNISU4gRE9UO0xvOzA7UjtGQjQ5IDA1QzE7Ozs7Tjs7Ozs7CitGQjJEO0hFQlJFVyBMRVRURVIgU0hJTiBXSVRIIERBR0VTSCBBTkQgU0lOIERPVDtMbzswO1I7RkI0OSAwNUMyOzs7O047Ozs7OworRkIyRTtIRUJSRVcgTEVUVEVSIEFMRUYgV0lUSCBQQVRBSDtMbzswO1I7MDVEMCAwNUI3Ozs7O047Ozs7OworRkIyRjtIRUJSRVcgTEVUVEVSIEFMRUYgV0lUSCBRQU1BVFM7TG87MDtSOzA1RDAgMDVCODs7OztOOzs7OzsKK0ZCMzA7SEVCUkVXIExFVFRFUiBBTEVGIFdJVEggTUFQSVE7TG87MDtSOzA1RDAgMDVCQzs7OztOOzs7OzsKK0ZCMzE7SEVCUkVXIExFVFRFUiBCRVQgV0lUSCBEQUdFU0g7TG87MDtSOzA1RDEgMDVCQzs7OztOOzs7OzsKK0ZCMzI7SEVCUkVXIExFVFRFUiBHSU1FTCBXSVRIIERBR0VTSDtMbzswO1I7MDVEMiAwNUJDOzs7O047Ozs7OworRkIzMztIRUJSRVcgTEVUVEVSIERBTEVUIFdJVEggREFHRVNIO0xvOzA7UjswNUQzIDA1QkM7Ozs7Tjs7Ozs7CitGQjM0O0hFQlJFVyBMRVRURVIgSEUgV0lUSCBNQVBJUTtMbzswO1I7MDVENCAwNUJDOzs7O047Ozs7OworRkIzNTtIRUJSRVcgTEVUVEVSIFZBViBXSVRIIERBR0VTSDtMbzswO1I7MDVENSAwNUJDOzs7O047Ozs7OworRkIzNjtIRUJSRVcgTEVUVEVSIFpBWUlOIFdJVEggREFHRVNIO0xvOzA7UjswNUQ2IDA1QkM7Ozs7Tjs7Ozs7CitGQjM4O0hFQlJFVyBMRVRURVIgVEVUIFdJVEggREFHRVNIO0xvOzA7UjswNUQ4IDA1QkM7Ozs7Tjs7Ozs7CitGQjM5O0hFQlJFVyBMRVRURVIgWU9EIFdJVEggREFHRVNIO0xvOzA7UjswNUQ5IDA1QkM7Ozs7Tjs7Ozs7CitGQjNBO0hFQlJFVyBMRVRURVIgRklOQUwgS0FGIFdJVEggREFHRVNIO0xvOzA7UjswNURBIDA1QkM7Ozs7Tjs7Ozs7CitGQjNCO0hFQlJFVyBMRVRURVIgS0FGIFdJVEggREFHRVNIO0xvOzA7UjswNURCIDA1QkM7Ozs7Tjs7Ozs7CitGQjNDO0hFQlJFVyBMRVRURVIgTEFNRUQgV0lUSCBEQUdFU0g7TG87MDtSOzA1REMgMDVCQzs7OztOOzs7OzsKK0ZCM0U7SEVCUkVXIExFVFRFUiBNRU0gV0lUSCBEQUdFU0g7TG87MDtSOzA1REUgMDVCQzs7OztOOzs7OzsKK0ZCNDA7SEVCUkVXIExFVFRFUiBOVU4gV0lUSCBEQUdFU0g7TG87MDtSOzA1RTAgMDVCQzs7OztOOzs7OzsKK0ZCNDE7SEVCUkVXIExFVFRFUiBTQU1FS0ggV0lUSCBEQUdFU0g7TG87MDtSOzA1RTEgMDVCQzs7OztOOzs7OzsKK0ZCNDM7SEVCUkVXIExFVFRFUiBGSU5BTCBQRSBXSVRIIERBR0VTSDtMbzswO1I7MDVFMyAwNUJDOzs7O047Ozs7OworRkI0NDtIRUJSRVcgTEVUVEVSIFBFIFdJVEggREFHRVNIO0xvOzA7UjswNUU0IDA1QkM7Ozs7Tjs7Ozs7CitGQjQ2O0hFQlJFVyBMRVRURVIgVFNBREkgV0lUSCBEQUdFU0g7TG87MDtSOzA1RTYgMDVCQzs7OztOOzs7OzsKK0ZCNDc7SEVCUkVXIExFVFRFUiBRT0YgV0lUSCBEQUdFU0g7TG87MDtSOzA1RTcgMDVCQzs7OztOOzs7OzsKK0ZCNDg7SEVCUkVXIExFVFRFUiBSRVNIIFdJVEggREFHRVNIO0xvOzA7UjswNUU4IDA1QkM7Ozs7Tjs7Ozs7CitGQjQ5O0hFQlJFVyBMRVRURVIgU0hJTiBXSVRIIERBR0VTSDtMbzswO1I7MDVFOSAwNUJDOzs7O047Ozs7OworRkI0QTtIRUJSRVcgTEVUVEVSIFRBViBXSVRIIERBR0VTSDtMbzswO1I7MDVFQSAwNUJDOzs7O047Ozs7OworRkI0QjtIRUJSRVcgTEVUVEVSIFZBViBXSVRIIEhPTEFNO0xvOzA7UjswNUQ1IDA1Qjk7Ozs7Tjs7Ozs7CitGQjRDO0hFQlJFVyBMRVRURVIgQkVUIFdJVEggUkFGRTtMbzswO1I7MDVEMSAwNUJGOzs7O047Ozs7OworRkI0RDtIRUJSRVcgTEVUVEVSIEtBRiBXSVRIIFJBRkU7TG87MDtSOzA1REIgMDVCRjs7OztOOzs7OzsKK0ZCNEU7SEVCUkVXIExFVFRFUiBQRSBXSVRIIFJBRkU7TG87MDtSOzA1RTQgMDVCRjs7OztOOzs7OzsKK0ZCNEY7SEVCUkVXIExJR0FUVVJFIEFMRUYgTEFNRUQ7TG87MDtSOzxjb21wYXQ+IDA1RDAgMDVEQzs7OztOOzs7OzsKK0ZCNTA7QVJBQklDIExFVFRFUiBBTEVGIFdBU0xBIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY3MTs7OztOOzs7OzsKK0ZCNTE7QVJBQklDIExFVFRFUiBBTEVGIFdBU0xBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY3MTs7OztOOzs7OzsKK0ZCNTI7QVJBQklDIExFVFRFUiBCRUVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY3Qjs7OztOOzs7OzsKK0ZCNTM7QVJBQklDIExFVFRFUiBCRUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY3Qjs7OztOOzs7OzsKK0ZCNTQ7QVJBQklDIExFVFRFUiBCRUVIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2N0I7Ozs7Tjs7Ozs7CitGQjU1O0FSQUJJQyBMRVRURVIgQkVFSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDY3Qjs7OztOOzs7OzsKK0ZCNTY7QVJBQklDIExFVFRFUiBQRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjdFOzs7O047Ozs7OworRkI1NztBUkFCSUMgTEVUVEVSIFBFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2N0U7Ozs7Tjs7Ozs7CitGQjU4O0FSQUJJQyBMRVRURVIgUEVIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2N0U7Ozs7Tjs7Ozs7CitGQjU5O0FSQUJJQyBMRVRURVIgUEVIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjdFOzs7O047Ozs7OworRkI1QTtBUkFCSUMgTEVUVEVSIEJFSEVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY4MDs7OztOOzs7OzsKK0ZCNUI7QVJBQklDIExFVFRFUiBCRUhFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2ODA7Ozs7Tjs7Ozs7CitGQjVDO0FSQUJJQyBMRVRURVIgQkVIRUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY4MDs7OztOOzs7OzsKK0ZCNUQ7QVJBQklDIExFVFRFUiBCRUhFSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDY4MDs7OztOOzs7OzsKK0ZCNUU7QVJBQklDIExFVFRFUiBUVEVIRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjdBOzs7O047Ozs7OworRkI1RjtBUkFCSUMgTEVUVEVSIFRURUhFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2N0E7Ozs7Tjs7Ozs7CitGQjYwO0FSQUJJQyBMRVRURVIgVFRFSEVIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2N0E7Ozs7Tjs7Ozs7CitGQjYxO0FSQUJJQyBMRVRURVIgVFRFSEVIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjdBOzs7O047Ozs7OworRkI2MjtBUkFCSUMgTEVUVEVSIFRFSEVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY3Rjs7OztOOzs7OzsKK0ZCNjM7QVJBQklDIExFVFRFUiBURUhFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2N0Y7Ozs7Tjs7Ozs7CitGQjY0O0FSQUJJQyBMRVRURVIgVEVIRUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY3Rjs7OztOOzs7OzsKK0ZCNjU7QVJBQklDIExFVFRFUiBURUhFSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDY3Rjs7OztOOzs7OzsKK0ZCNjY7QVJBQklDIExFVFRFUiBUVEVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY3OTs7OztOOzs7OzsKK0ZCNjc7QVJBQklDIExFVFRFUiBUVEVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY3OTs7OztOOzs7OzsKK0ZCNjg7QVJBQklDIExFVFRFUiBUVEVIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2Nzk7Ozs7Tjs7Ozs7CitGQjY5O0FSQUJJQyBMRVRURVIgVFRFSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDY3OTs7OztOOzs7OzsKK0ZCNkE7QVJBQklDIExFVFRFUiBWRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNkE0Ozs7O047Ozs7OworRkI2QjtBUkFCSUMgTEVUVEVSIFZFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2QTQ7Ozs7Tjs7Ozs7CitGQjZDO0FSQUJJQyBMRVRURVIgVkVIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2QTQ7Ozs7Tjs7Ozs7CitGQjZEO0FSQUJJQyBMRVRURVIgVkVIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNkE0Ozs7O047Ozs7OworRkI2RTtBUkFCSUMgTEVUVEVSIFBFSEVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDZBNjs7OztOOzs7OzsKK0ZCNkY7QVJBQklDIExFVFRFUiBQRUhFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2QTY7Ozs7Tjs7Ozs7CitGQjcwO0FSQUJJQyBMRVRURVIgUEVIRUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDZBNjs7OztOOzs7OzsKK0ZCNzE7QVJBQklDIExFVFRFUiBQRUhFSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDZBNjs7OztOOzs7OzsKK0ZCNzI7QVJBQklDIExFVFRFUiBEWUVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY4NDs7OztOOzs7OzsKK0ZCNzM7QVJBQklDIExFVFRFUiBEWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY4NDs7OztOOzs7OzsKK0ZCNzQ7QVJBQklDIExFVFRFUiBEWUVIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2ODQ7Ozs7Tjs7Ozs7CitGQjc1O0FSQUJJQyBMRVRURVIgRFlFSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDY4NDs7OztOOzs7OzsKK0ZCNzY7QVJBQklDIExFVFRFUiBOWUVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY4Mzs7OztOOzs7OzsKK0ZCNzc7QVJBQklDIExFVFRFUiBOWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY4Mzs7OztOOzs7OzsKK0ZCNzg7QVJBQklDIExFVFRFUiBOWUVIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2ODM7Ozs7Tjs7Ozs7CitGQjc5O0FSQUJJQyBMRVRURVIgTllFSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDY4Mzs7OztOOzs7OzsKK0ZCN0E7QVJBQklDIExFVFRFUiBUQ0hFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2ODY7Ozs7Tjs7Ozs7CitGQjdCO0FSQUJJQyBMRVRURVIgVENIRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjg2Ozs7O047Ozs7OworRkI3QztBUkFCSUMgTEVUVEVSIFRDSEVIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2ODY7Ozs7Tjs7Ozs7CitGQjdEO0FSQUJJQyBMRVRURVIgVENIRUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2ODY7Ozs7Tjs7Ozs7CitGQjdFO0FSQUJJQyBMRVRURVIgVENIRUhFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2ODc7Ozs7Tjs7Ozs7CitGQjdGO0FSQUJJQyBMRVRURVIgVENIRUhFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2ODc7Ozs7Tjs7Ozs7CitGQjgwO0FSQUJJQyBMRVRURVIgVENIRUhFSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjg3Ozs7O047Ozs7OworRkI4MTtBUkFCSUMgTEVUVEVSIFRDSEVIRUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2ODc7Ozs7Tjs7Ozs7CitGQjgyO0FSQUJJQyBMRVRURVIgRERBSEFMIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY4RDs7OztOOzs7OzsKK0ZCODM7QVJBQklDIExFVFRFUiBEREFIQUwgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjhEOzs7O047Ozs7OworRkI4NDtBUkFCSUMgTEVUVEVSIERBSEFMIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY4Qzs7OztOOzs7OzsKK0ZCODU7QVJBQklDIExFVFRFUiBEQUhBTCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2OEM7Ozs7Tjs7Ozs7CitGQjg2O0FSQUJJQyBMRVRURVIgRFVMIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY4RTs7OztOOzs7OzsKK0ZCODc7QVJBQklDIExFVFRFUiBEVUwgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjhFOzs7O047Ozs7OworRkI4ODtBUkFCSUMgTEVUVEVSIEREQUwgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjg4Ozs7O047Ozs7OworRkI4OTtBUkFCSUMgTEVUVEVSIEREQUwgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjg4Ozs7O047Ozs7OworRkI4QTtBUkFCSUMgTEVUVEVSIEpFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2OTg7Ozs7Tjs7Ozs7CitGQjhCO0FSQUJJQyBMRVRURVIgSkVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY5ODs7OztOOzs7OzsKK0ZCOEM7QVJBQklDIExFVFRFUiBSUkVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY5MTs7OztOOzs7OzsKK0ZCOEQ7QVJBQklDIExFVFRFUiBSUkVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY5MTs7OztOOzs7OzsKK0ZCOEU7QVJBQklDIExFVFRFUiBLRUhFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2QTk7Ozs7Tjs7Ozs7CitGQjhGO0FSQUJJQyBMRVRURVIgS0VIRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNkE5Ozs7O047Ozs7OworRkI5MDtBUkFCSUMgTEVUVEVSIEtFSEVIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2QTk7Ozs7Tjs7Ozs7CitGQjkxO0FSQUJJQyBMRVRURVIgS0VIRUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2QTk7Ozs7Tjs7Ozs7CitGQjkyO0FSQUJJQyBMRVRURVIgR0FGIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDZBRjs7OztOOzs7OzsKK0ZCOTM7QVJBQklDIExFVFRFUiBHQUYgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNkFGOzs7O047Ozs7OworRkI5NDtBUkFCSUMgTEVUVEVSIEdBRiBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNkFGOzs7O047Ozs7OworRkI5NTtBUkFCSUMgTEVUVEVSIEdBRiBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDZBRjs7OztOOzs7OzsKK0ZCOTY7QVJBQklDIExFVFRFUiBHVUVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDZCMzs7OztOOzs7OzsKK0ZCOTc7QVJBQklDIExFVFRFUiBHVUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDZCMzs7OztOOzs7OzsKK0ZCOTg7QVJBQklDIExFVFRFUiBHVUVIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2QjM7Ozs7Tjs7Ozs7CitGQjk5O0FSQUJJQyBMRVRURVIgR1VFSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDZCMzs7OztOOzs7OzsKK0ZCOUE7QVJBQklDIExFVFRFUiBOR09FSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2QjE7Ozs7Tjs7Ozs7CitGQjlCO0FSQUJJQyBMRVRURVIgTkdPRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNkIxOzs7O047Ozs7OworRkI5QztBUkFCSUMgTEVUVEVSIE5HT0VIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2QjE7Ozs7Tjs7Ozs7CitGQjlEO0FSQUJJQyBMRVRURVIgTkdPRUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2QjE7Ozs7Tjs7Ozs7CitGQjlFO0FSQUJJQyBMRVRURVIgTk9PTiBHSFVOTkEgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNkJBOzs7O047Ozs7OworRkI5RjtBUkFCSUMgTEVUVEVSIE5PT04gR0hVTk5BIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDZCQTs7OztOOzs7OzsKK0ZCQTA7QVJBQklDIExFVFRFUiBSTk9PTiBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2QkI7Ozs7Tjs7Ozs7CitGQkExO0FSQUJJQyBMRVRURVIgUk5PT04gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNkJCOzs7O047Ozs7OworRkJBMjtBUkFCSUMgTEVUVEVSIFJOT09OIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2QkI7Ozs7Tjs7Ozs7CitGQkEzO0FSQUJJQyBMRVRURVIgUk5PT04gTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2QkI7Ozs7Tjs7Ozs7CitGQkE0O0FSQUJJQyBMRVRURVIgSEVIIFdJVEggWUVIIEFCT1ZFIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDZDMDs7OztOOzs7OzsKK0ZCQTU7QVJBQklDIExFVFRFUiBIRUggV0lUSCBZRUggQUJPVkUgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNkMwOzs7O047Ozs7OworRkJBNjtBUkFCSUMgTEVUVEVSIEhFSCBHT0FMIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDZDMTs7OztOOzs7OzsKK0ZCQTc7QVJBQklDIExFVFRFUiBIRUggR09BTCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2QzE7Ozs7Tjs7Ozs7CitGQkE4O0FSQUJJQyBMRVRURVIgSEVIIEdPQUwgSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDZDMTs7OztOOzs7OzsKK0ZCQTk7QVJBQklDIExFVFRFUiBIRUggR09BTCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDZDMTs7OztOOzs7OzsKK0ZCQUE7QVJBQklDIExFVFRFUiBIRUggRE9BQ0hBU0hNRUUgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNkJFOzs7O047Ozs7OworRkJBQjtBUkFCSUMgTEVUVEVSIEhFSCBET0FDSEFTSE1FRSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2QkU7Ozs7Tjs7Ozs7CitGQkFDO0FSQUJJQyBMRVRURVIgSEVIIERPQUNIQVNITUVFIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2QkU7Ozs7Tjs7Ozs7CitGQkFEO0FSQUJJQyBMRVRURVIgSEVIIERPQUNIQVNITUVFIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNkJFOzs7O047Ozs7OworRkJBRTtBUkFCSUMgTEVUVEVSIFlFSCBCQVJSRUUgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNkQyOzs7O047Ozs7OworRkJBRjtBUkFCSUMgTEVUVEVSIFlFSCBCQVJSRUUgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNkQyOzs7O047Ozs7OworRkJCMDtBUkFCSUMgTEVUVEVSIFlFSCBCQVJSRUUgV0lUSCBIQU1aQSBBQk9WRSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2RDM7Ozs7Tjs7Ozs7CitGQkIxO0FSQUJJQyBMRVRURVIgWUVIIEJBUlJFRSBXSVRIIEhBTVpBIEFCT1ZFIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDZEMzs7OztOOzs7OzsKK0ZCRDM7QVJBQklDIExFVFRFUiBORyBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2QUQ7Ozs7Tjs7Ozs7CitGQkQ0O0FSQUJJQyBMRVRURVIgTkcgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNkFEOzs7O047Ozs7OworRkJENTtBUkFCSUMgTEVUVEVSIE5HIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2QUQ7Ozs7Tjs7Ozs7CitGQkQ2O0FSQUJJQyBMRVRURVIgTkcgTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2QUQ7Ozs7Tjs7Ozs7CitGQkQ3O0FSQUJJQyBMRVRURVIgVSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2Qzc7Ozs7Tjs7Ozs7CitGQkQ4O0FSQUJJQyBMRVRURVIgVSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2Qzc7Ozs7Tjs7Ozs7CitGQkQ5O0FSQUJJQyBMRVRURVIgT0UgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNkM2Ozs7O047Ozs7OworRkJEQTtBUkFCSUMgTEVUVEVSIE9FIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDZDNjs7OztOOzs7OzsKK0ZCREI7QVJBQklDIExFVFRFUiBZVSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2Qzg7Ozs7Tjs7Ozs7CitGQkRDO0FSQUJJQyBMRVRURVIgWVUgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNkM4Ozs7O047Ozs7OworRkJERDtBUkFCSUMgTEVUVEVSIFUgV0lUSCBIQU1aQSBBQk9WRSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2Nzc7Ozs7Tjs7Ozs7CitGQkRFO0FSQUJJQyBMRVRURVIgVkUgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNkNCOzs7O047Ozs7OworRkJERjtBUkFCSUMgTEVUVEVSIFZFIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDZDQjs7OztOOzs7OzsKK0ZCRTA7QVJBQklDIExFVFRFUiBLSVJHSElaIE9FIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDZDNTs7OztOOzs7OzsKK0ZCRTE7QVJBQklDIExFVFRFUiBLSVJHSElaIE9FIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDZDNTs7OztOOzs7OzsKK0ZCRTI7QVJBQklDIExFVFRFUiBLSVJHSElaIFlVIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDZDOTs7OztOOzs7OzsKK0ZCRTM7QVJBQklDIExFVFRFUiBLSVJHSElaIFlVIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDZDOTs7OztOOzs7OzsKK0ZCRTQ7QVJBQklDIExFVFRFUiBFIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDZEMDs7OztOOzs7OzsKK0ZCRTU7QVJBQklDIExFVFRFUiBFIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDZEMDs7OztOOzs7OzsKK0ZCRTY7QVJBQklDIExFVFRFUiBFIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2RDA7Ozs7Tjs7Ozs7CitGQkU3O0FSQUJJQyBMRVRURVIgRSBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDZEMDs7OztOOzs7OzsKK0ZCRTg7QVJBQklDIExFVFRFUiBVSUdIVVIgS0FaQUtIIEtJUkdISVogQUxFRiBNQUtTVVJBIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDk7Ozs7Tjs7Ozs7CitGQkU5O0FSQUJJQyBMRVRURVIgVUlHSFVSIEtBWkFLSCBLSVJHSElaIEFMRUYgTUFLU1VSQSBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDY0OTs7OztOOzs7OzsKK0ZCRUE7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggQUxFRiBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MjYgMDYyNzs7OztOOzs7OzsKK0ZCRUI7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggQUxFRiBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MjYgMDYyNzs7OztOOzs7OzsKK0ZCRUM7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggQUUgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjI2IDA2RDU7Ozs7Tjs7Ozs7CitGQkVEO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEFFIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyNiAwNkQ1Ozs7O047Ozs7OworRkJFRTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBXQVcgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjI2IDA2NDg7Ozs7Tjs7Ozs7CitGQkVGO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIFdBVyBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MjYgMDY0ODs7OztOOzs7OzsKK0ZCRjA7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggVSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MjYgMDZDNzs7OztOOzs7OzsKK0ZCRjE7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggVSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MjYgMDZDNzs7OztOOzs7OzsKK0ZCRjI7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggT0UgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjI2IDA2QzY7Ozs7Tjs7Ozs7CitGQkYzO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIE9FIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyNiAwNkM2Ozs7O047Ozs7OworRkJGNDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBZVSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MjYgMDZDODs7OztOOzs7OzsKK0ZCRjU7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggWVUgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjI2IDA2Qzg7Ozs7Tjs7Ozs7CitGQkY2O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEUgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjI2IDA2RDA7Ozs7Tjs7Ozs7CitGQkY3O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEUgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjI2IDA2RDA7Ozs7Tjs7Ozs7CitGQkY4O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEUgSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyNiAwNkQwOzs7O047Ozs7OworRkJGOTtBUkFCSUMgTElHQVRVUkUgVUlHSFVSIEtJUkdISVogWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjI2IDA2NDk7Ozs7Tjs7Ozs7CitGQkZBO0FSQUJJQyBMSUdBVFVSRSBVSUdIVVIgS0lSR0hJWiBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MjYgMDY0OTs7OztOOzs7OzsKK0ZCRkI7QVJBQklDIExJR0FUVVJFIFVJR0hVUiBLSVJHSElaIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggQUxFRiBNQUtTVVJBIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MjYgMDY0OTs7OztOOzs7OzsKK0ZCRkM7QVJBQklDIExFVFRFUiBGQVJTSSBZRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNkNDOzs7O047Ozs7OworRkJGRDtBUkFCSUMgTEVUVEVSIEZBUlNJIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2Q0M7Ozs7Tjs7Ozs7CitGQkZFO0FSQUJJQyBMRVRURVIgRkFSU0kgWUVIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2Q0M7Ozs7Tjs7Ozs7CitGQkZGO0FSQUJJQyBMRVRURVIgRkFSU0kgWUVIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNkNDOzs7O047Ozs7OworRkMwMDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyNiAwNjJDOzs7O047Ozs7OworRkMwMTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjI2IDA2MkQ7Ozs7Tjs7Ozs7CitGQzAyO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjI2IDA2NDU7Ozs7Tjs7Ozs7CitGQzAzO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MjYgMDY0OTs7OztOOzs7OzsKK0ZDMDQ7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyNiAwNjRBOzs7O047Ozs7OworRkMwNTtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MjggMDYyQzs7OztOOzs7OzsKK0ZDMDY7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MjggMDYyRDs7OztOOzs7OzsKK0ZDMDc7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEtIQUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjI4IDA2MkU7Ozs7Tjs7Ozs7CitGQzA4O0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyOCAwNjQ1Ozs7O047Ozs7OworRkMwOTtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyOCAwNjQ5Ozs7O047Ozs7OworRkMwQTtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyOCAwNjRBOzs7O047Ozs7OworRkMwQjtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MkEgMDYyQzs7OztOOzs7OzsKK0ZDMEM7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MkEgMDYyRDs7OztOOzs7OzsKK0ZDMEQ7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEtIQUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjJBIDA2MkU7Ozs7Tjs7Ozs7CitGQzBFO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyQSAwNjQ1Ozs7O047Ozs7OworRkMwRjtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyQSAwNjQ5Ozs7O047Ozs7OworRkMxMDtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyQSAwNjRBOzs7O047Ozs7OworRkMxMTtBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjJCIDA2MkM7Ozs7Tjs7Ozs7CitGQzEyO0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MkIgMDY0NTs7OztOOzs7OzsKK0ZDMTM7QVJBQklDIExJR0FUVVJFIFRIRUggV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjJCIDA2NDk7Ozs7Tjs7Ozs7CitGQzE0O0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyQiAwNjRBOzs7O047Ozs7OworRkMxNTtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MkMgMDYyRDs7OztOOzs7OzsKK0ZDMTY7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyQyAwNjQ1Ozs7O047Ozs7OworRkMxNztBUkFCSUMgTElHQVRVUkUgSEFIIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MkQgMDYyQzs7OztOOzs7OzsKK0ZDMTg7QVJBQklDIExJR0FUVVJFIEhBSCBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjJEIDA2NDU7Ozs7Tjs7Ozs7CitGQzE5O0FSQUJJQyBMSUdBVFVSRSBLSEFIIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MkUgMDYyQzs7OztOOzs7OzsKK0ZDMUE7QVJBQklDIExJR0FUVVJFIEtIQUggV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjJFIDA2MkQ7Ozs7Tjs7Ozs7CitGQzFCO0FSQUJJQyBMSUdBVFVSRSBLSEFIIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MkUgMDY0NTs7OztOOzs7OzsKK0ZDMUM7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzMyAwNjJDOzs7O047Ozs7OworRkMxRDtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzMgMDYyRDs7OztOOzs7OzsKK0ZDMUU7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBLSEFIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzMyAwNjJFOzs7O047Ozs7OworRkMxRjtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjMzIDA2NDU7Ozs7Tjs7Ozs7CitGQzIwO0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM1IDA2MkQ7Ozs7Tjs7Ozs7CitGQzIxO0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzNSAwNjQ1Ozs7O047Ozs7OworRkMyMjtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzYgMDYyQzs7OztOOzs7OzsKK0ZDMjM7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzYgMDYyRDs7OztOOzs7OzsKK0ZDMjQ7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEtIQUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM2IDA2MkU7Ozs7Tjs7Ozs7CitGQzI1O0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzNiAwNjQ1Ozs7O047Ozs7OworRkMyNjtBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzNyAwNjJEOzs7O047Ozs7OworRkMyNztBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzcgMDY0NTs7OztOOzs7OzsKK0ZDMjg7QVJBQklDIExJR0FUVVJFIFpBSCBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM4IDA2NDU7Ozs7Tjs7Ozs7CitGQzI5O0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzOSAwNjJDOzs7O047Ozs7OworRkMyQTtBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzkgMDY0NTs7OztOOzs7OzsKK0ZDMkI7QVJBQklDIExJR0FUVVJFIEdIQUlOIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2M0EgMDYyQzs7OztOOzs7OzsKK0ZDMkM7QVJBQklDIExJR0FUVVJFIEdIQUlOIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2M0EgMDY0NTs7OztOOzs7OzsKK0ZDMkQ7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQxIDA2MkM7Ozs7Tjs7Ozs7CitGQzJFO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQxIDA2MkQ7Ozs7Tjs7Ozs7CitGQzJGO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBLSEFIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0MSAwNjJFOzs7O047Ozs7OworRkMzMDtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDEgMDY0NTs7OztOOzs7OzsKK0ZDMzE7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDEgMDY0OTs7OztOOzs7OzsKK0ZDMzI7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDEgMDY0QTs7OztOOzs7OzsKK0ZDMzM7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDIgMDYyRDs7OztOOzs7OzsKK0ZDMzQ7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQyIDA2NDU7Ozs7Tjs7Ozs7CitGQzM1O0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQyIDA2NDk7Ozs7Tjs7Ozs7CitGQzM2O0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQyIDA2NEE7Ozs7Tjs7Ozs7CitGQzM3O0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBBTEVGIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0MyAwNjI3Ozs7O047Ozs7OworRkMzODtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDMgMDYyQzs7OztOOzs7OzsKK0ZDMzk7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDMgMDYyRDs7OztOOzs7OzsKK0ZDM0E7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIEtIQUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQzIDA2MkU7Ozs7Tjs7Ozs7CitGQzNCO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBMQU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQzIDA2NDQ7Ozs7Tjs7Ozs7CitGQzNDO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0MyAwNjQ1Ozs7O047Ozs7OworRkMzRDtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0MyAwNjQ5Ozs7O047Ozs7OworRkMzRTtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0MyAwNjRBOzs7O047Ozs7OworRkMzRjtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDQgMDYyQzs7OztOOzs7OzsKK0ZDNDA7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDQgMDYyRDs7OztOOzs7OzsKK0ZDNDE7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEtIQUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQ0IDA2MkU7Ozs7Tjs7Ozs7CitGQzQyO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0NCAwNjQ1Ozs7O047Ozs7OworRkM0MztBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0NCAwNjQ5Ozs7O047Ozs7OworRkM0NDtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0NCAwNjRBOzs7O047Ozs7OworRkM0NTtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQ1IDA2MkM7Ozs7Tjs7Ozs7CitGQzQ2O0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0NSAwNjJEOzs7O047Ozs7OworRkM0NztBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEtIQUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQ1IDA2MkU7Ozs7Tjs7Ozs7CitGQzQ4O0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZDNDk7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQ1IDA2NDk7Ozs7Tjs7Ozs7CitGQzRBO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0NSAwNjRBOzs7O047Ozs7OworRkM0QjtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQ2IDA2MkM7Ozs7Tjs7Ozs7CitGQzRDO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0NiAwNjJEOzs7O047Ozs7OworRkM0RDtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEtIQUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQ2IDA2MkU7Ozs7Tjs7Ozs7CitGQzRFO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDYgMDY0NTs7OztOOzs7OzsKK0ZDNEY7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQ2IDA2NDk7Ozs7Tjs7Ozs7CitGQzUwO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0NiAwNjRBOzs7O047Ozs7OworRkM1MTtBUkFCSUMgTElHQVRVUkUgSEVIIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDcgMDYyQzs7OztOOzs7OzsKK0ZDNTI7QVJBQklDIExJR0FUVVJFIEhFSCBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQ3IDA2NDU7Ozs7Tjs7Ozs7CitGQzUzO0FSQUJJQyBMSUdBVFVSRSBIRUggV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQ3IDA2NDk7Ozs7Tjs7Ozs7CitGQzU0O0FSQUJJQyBMSUdBVFVSRSBIRUggV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQ3IDA2NEE7Ozs7Tjs7Ozs7CitGQzU1O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0QSAwNjJDOzs7O047Ozs7OworRkM1NjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0QSAwNjJEOzs7O047Ozs7OworRkM1NztBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NEEgMDYyRTs7OztOOzs7OzsKK0ZDNTg7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjRBIDA2NDU7Ozs7Tjs7Ozs7CitGQzU5O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjRBIDA2NDk7Ozs7Tjs7Ozs7CitGQzVBO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjRBIDA2NEE7Ozs7Tjs7Ozs7CitGQzVCO0FSQUJJQyBMSUdBVFVSRSBUSEFMIFdJVEggU1VQRVJTQ1JJUFQgQUxFRiBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzAgMDY3MDs7OztOOzs7OzsKK0ZDNUM7QVJBQklDIExJR0FUVVJFIFJFSCBXSVRIIFNVUEVSU0NSSVBUIEFMRUYgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjMxIDA2NzA7Ozs7Tjs7Ozs7CitGQzVEO0FSQUJJQyBMSUdBVFVSRSBBTEVGIE1BS1NVUkEgV0lUSCBTVVBFUlNDUklQVCBBTEVGIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0OSAwNjcwOzs7O047Ozs7OworRkM1RTtBUkFCSUMgTElHQVRVUkUgU0hBRERBIFdJVEggREFNTUFUQU4gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwMDIwIDA2NTEgMDY0Qzs7OztOOzs7OzsKK0ZDNUY7QVJBQklDIExJR0FUVVJFIFNIQUREQSBXSVRIIEtBU1JBVEFOIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDAyMCAwNjUxIDA2NEQ7Ozs7Tjs7Ozs7CitGQzYwO0FSQUJJQyBMSUdBVFVSRSBTSEFEREEgV0lUSCBGQVRIQSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDAwMjAgMDY1MSAwNjRFOzs7O047Ozs7OworRkM2MTtBUkFCSUMgTElHQVRVUkUgU0hBRERBIFdJVEggREFNTUEgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwMDIwIDA2NTEgMDY0Rjs7OztOOzs7OzsKK0ZDNjI7QVJBQklDIExJR0FUVVJFIFNIQUREQSBXSVRIIEtBU1JBIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDAyMCAwNjUxIDA2NTA7Ozs7Tjs7Ozs7CitGQzYzO0FSQUJJQyBMSUdBVFVSRSBTSEFEREEgV0lUSCBTVVBFUlNDUklQVCBBTEVGIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDAyMCAwNjUxIDA2NzA7Ozs7Tjs7Ozs7CitGQzY0O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIFJFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MjYgMDYzMTs7OztOOzs7OzsKK0ZDNjU7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggWkFJTiBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MjYgMDYzMjs7OztOOzs7OzsKK0ZDNjY7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MjYgMDY0NTs7OztOOzs7OzsKK0ZDNjc7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggTk9PTiBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MjYgMDY0Njs7OztOOzs7OzsKK0ZDNjg7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyNiAwNjQ5Ozs7O047Ozs7OworRkM2OTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjI2IDA2NEE7Ozs7Tjs7Ozs7CitGQzZBO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBSRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjI4IDA2MzE7Ozs7Tjs7Ozs7CitGQzZCO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBaQUlOIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyOCAwNjMyOzs7O047Ozs7OworRkM2QztBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MjggMDY0NTs7OztOOzs7OzsKK0ZDNkQ7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIE5PT04gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjI4IDA2NDY7Ozs7Tjs7Ozs7CitGQzZFO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjI4IDA2NDk7Ozs7Tjs7Ozs7CitGQzZGO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjI4IDA2NEE7Ozs7Tjs7Ozs7CitGQzcwO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBSRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJBIDA2MzE7Ozs7Tjs7Ozs7CitGQzcxO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBaQUlOIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyQSAwNjMyOzs7O047Ozs7OworRkM3MjtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkEgMDY0NTs7OztOOzs7OzsKK0ZDNzM7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIE5PT04gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJBIDA2NDY7Ozs7Tjs7Ozs7CitGQzc0O0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJBIDA2NDk7Ozs7Tjs7Ozs7CitGQzc1O0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJBIDA2NEE7Ozs7Tjs7Ozs7CitGQzc2O0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggUkVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyQiAwNjMxOzs7O047Ozs7OworRkM3NztBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIFpBSU4gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJCIDA2MzI7Ozs7Tjs7Ozs7CitGQzc4O0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkIgMDY0NTs7OztOOzs7OzsKK0ZDNzk7QVJBQklDIExJR0FUVVJFIFRIRUggV0lUSCBOT09OIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyQiAwNjQ2Ozs7O047Ozs7OworRkM3QTtBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkIgMDY0OTs7OztOOzs7OzsKK0ZDN0I7QVJBQklDIExJR0FUVVJFIFRIRUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJCIDA2NEE7Ozs7Tjs7Ozs7CitGQzdDO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQxIDA2NDk7Ozs7Tjs7Ozs7CitGQzdEO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQxIDA2NEE7Ozs7Tjs7Ozs7CitGQzdFO0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQyIDA2NDk7Ozs7Tjs7Ozs7CitGQzdGO0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQyIDA2NEE7Ozs7Tjs7Ozs7CitGQzgwO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBBTEVGIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0MyAwNjI3Ozs7O047Ozs7OworRkM4MTtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggTEFNIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0MyAwNjQ0Ozs7O047Ozs7OworRkM4MjtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDMgMDY0NTs7OztOOzs7OzsKK0ZDODM7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDMgMDY0OTs7OztOOzs7OzsKK0ZDODQ7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDMgMDY0QTs7OztOOzs7OzsKK0ZDODU7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ0IDA2NDU7Ozs7Tjs7Ozs7CitGQzg2O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ0IDA2NDk7Ozs7Tjs7Ozs7CitGQzg3O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ0IDA2NEE7Ozs7Tjs7Ozs7CitGQzg4O0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggQUxFRiBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDUgMDYyNzs7OztOOzs7OzsKK0ZDODk7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NSAwNjQ1Ozs7O047Ozs7OworRkM4QTtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIFJFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDYgMDYzMTs7OztOOzs7OzsKK0ZDOEI7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBaQUlOIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NiAwNjMyOzs7O047Ozs7OworRkM4QztBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ2IDA2NDU7Ozs7Tjs7Ozs7CitGQzhEO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggTk9PTiBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDYgMDY0Njs7OztOOzs7OzsKK0ZDOEU7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ2IDA2NDk7Ozs7Tjs7Ozs7CitGQzhGO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NiAwNjRBOzs7O047Ozs7OworRkM5MDtBUkFCSUMgTElHQVRVUkUgQUxFRiBNQUtTVVJBIFdJVEggU1VQRVJTQ1JJUFQgQUxFRiBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDkgMDY3MDs7OztOOzs7OzsKK0ZDOTE7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIFJFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NEEgMDYzMTs7OztOOzs7OzsKK0ZDOTI7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIFpBSU4gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjRBIDA2MzI7Ozs7Tjs7Ozs7CitGQzkzO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0QSAwNjQ1Ozs7O047Ozs7OworRkM5NDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggTk9PTiBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NEEgMDY0Njs7OztOOzs7OzsKK0ZDOTU7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NEEgMDY0OTs7OztOOzs7OzsKK0ZDOTY7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NEEgMDY0QTs7OztOOzs7OzsKK0ZDOTc7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjI2IDA2MkM7Ozs7Tjs7Ozs7CitGQzk4O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjI2IDA2MkQ7Ozs7Tjs7Ozs7CitGQzk5O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyNiAwNjJFOzs7O047Ozs7OworRkM5QTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MjYgMDY0NTs7OztOOzs7OzsKK0ZDOUI7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggSEVIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MjYgMDY0Nzs7OztOOzs7OzsKK0ZDOUM7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyOCAwNjJDOzs7O047Ozs7OworRkM5RDtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MjggMDYyRDs7OztOOzs7OzsKK0ZDOUU7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyOCAwNjJFOzs7O047Ozs7OworRkM5RjtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjI4IDA2NDU7Ozs7Tjs7Ozs7CitGQ0EwO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBIRUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyOCAwNjQ3Ozs7O047Ozs7OworRkNBMTtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjJBIDA2MkM7Ozs7Tjs7Ozs7CitGQ0EyO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyQSAwNjJEOzs7O047Ozs7OworRkNBMztBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjJBIDA2MkU7Ozs7Tjs7Ozs7CitGQ0E0O0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MkEgMDY0NTs7OztOOzs7OzsKK0ZDQTU7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEhFSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjJBIDA2NDc7Ozs7Tjs7Ozs7CitGQ0E2O0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjJCIDA2NDU7Ozs7Tjs7Ozs7CitGQ0E3O0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MkMgMDYyRDs7OztOOzs7OzsKK0ZDQTg7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MkMgMDY0NTs7OztOOzs7OzsKK0ZDQTk7QVJBQklDIExJR0FUVVJFIEhBSCBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyRCAwNjJDOzs7O047Ozs7OworRkNBQTtBUkFCSUMgTElHQVRVUkUgSEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjJEIDA2NDU7Ozs7Tjs7Ozs7CitGQ0FCO0FSQUJJQyBMSUdBVFVSRSBLSEFIIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjJFIDA2MkM7Ozs7Tjs7Ozs7CitGQ0FDO0FSQUJJQyBMSUdBVFVSRSBLSEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjJFIDA2NDU7Ozs7Tjs7Ozs7CitGQ0FEO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjMzIDA2MkM7Ozs7Tjs7Ozs7CitGQ0FFO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzMgMDYyRDs7OztOOzs7OzsKK0ZDQUY7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzMgMDYyRTs7OztOOzs7OzsKK0ZDQjA7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzMgMDY0NTs7OztOOzs7OzsKK0ZDQjE7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjM1IDA2MkQ7Ozs7Tjs7Ozs7CitGQ0IyO0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzUgMDYyRTs7OztOOzs7OzsKK0ZDQjM7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzNSAwNjQ1Ozs7O047Ozs7OworRkNCNDtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjM2IDA2MkM7Ozs7Tjs7Ozs7CitGQ0I1O0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzNiAwNjJEOzs7O047Ozs7OworRkNCNjtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjM2IDA2MkU7Ozs7Tjs7Ozs7CitGQ0I3O0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzYgMDY0NTs7OztOOzs7OzsKK0ZDQjg7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjM3IDA2MkQ7Ozs7Tjs7Ozs7CitGQ0I5O0FSQUJJQyBMSUdBVFVSRSBaQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzggMDY0NTs7OztOOzs7OzsKK0ZDQkE7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzOSAwNjJDOzs7O047Ozs7OworRkNCQjtBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjM5IDA2NDU7Ozs7Tjs7Ozs7CitGQ0JDO0FSQUJJQyBMSUdBVFVSRSBHSEFJTiBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzQSAwNjJDOzs7O047Ozs7OworRkNCRDtBUkFCSUMgTElHQVRVUkUgR0hBSU4gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2M0EgMDY0NTs7OztOOzs7OzsKK0ZDQkU7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0MSAwNjJDOzs7O047Ozs7OworRkNCRjtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDEgMDYyRDs7OztOOzs7OzsKK0ZDQzA7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0MSAwNjJFOzs7O047Ozs7OworRkNDMTtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQxIDA2NDU7Ozs7Tjs7Ozs7CitGQ0MyO0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0MiAwNjJEOzs7O047Ozs7OworRkNDMztBUkFCSUMgTElHQVRVUkUgUUFGIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQyIDA2NDU7Ozs7Tjs7Ozs7CitGQ0M0O0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDMgMDYyQzs7OztOOzs7OzsKK0ZDQzU7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQzIDA2MkQ7Ozs7Tjs7Ozs7CitGQ0M2O0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDMgMDYyRTs7OztOOzs7OzsKK0ZDQzc7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIExBTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQzIDA2NDQ7Ozs7Tjs7Ozs7CitGQ0M4O0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDMgMDY0NTs7OztOOzs7OzsKK0ZDQzk7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0NCAwNjJDOzs7O047Ozs7OworRkNDQTtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDQgMDYyRDs7OztOOzs7OzsKK0ZDQ0I7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0NCAwNjJFOzs7O047Ozs7OworRkNDQztBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ0IDA2NDU7Ozs7Tjs7Ozs7CitGQ0NEO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBIRUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0NCAwNjQ3Ozs7O047Ozs7OworRkNDRTtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0NSAwNjJDOzs7O047Ozs7OworRkNDRjtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGQ0QwO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ1IDA2MkU7Ozs7Tjs7Ozs7CitGQ0QxO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGQ0QyO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ2IDA2MkM7Ozs7Tjs7Ozs7CitGQ0QzO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDYgMDYyRDs7OztOOzs7OzsKK0ZDRDQ7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDYgMDYyRTs7OztOOzs7OzsKK0ZDRDU7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDYgMDY0NTs7OztOOzs7OzsKK0ZDRDY7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBIRUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0NiAwNjQ3Ozs7O047Ozs7OworRkNENztBUkFCSUMgTElHQVRVUkUgSEVIIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ3IDA2MkM7Ozs7Tjs7Ozs7CitGQ0Q4O0FSQUJJQyBMSUdBVFVSRSBIRUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDcgMDY0NTs7OztOOzs7OzsKK0ZDRDk7QVJBQklDIExJR0FUVVJFIEhFSCBXSVRIIFNVUEVSU0NSSVBUIEFMRUYgSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0NyAwNjcwOzs7O047Ozs7OworRkNEQTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjRBIDA2MkM7Ozs7Tjs7Ozs7CitGQ0RCO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0QSAwNjJEOzs7O047Ozs7OworRkNEQztBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjRBIDA2MkU7Ozs7Tjs7Ozs7CitGQ0REO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NEEgMDY0NTs7OztOOzs7OzsKK0ZDREU7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhFSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjRBIDA2NDc7Ozs7Tjs7Ozs7CitGQ0RGO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIE1FRU0gTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2MjYgMDY0NTs7OztOOzs7OzsKK0ZDRTA7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggSEVIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjI2IDA2NDc7Ozs7Tjs7Ozs7CitGQ0UxO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjI4IDA2NDU7Ozs7Tjs7Ozs7CitGQ0UyO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBIRUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2MjggMDY0Nzs7OztOOzs7OzsKK0ZDRTM7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIE1FRU0gTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2MkEgMDY0NTs7OztOOzs7OzsKK0ZDRTQ7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEhFSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDYyQSAwNjQ3Ozs7O047Ozs7OworRkNFNTtBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIE1FRU0gTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2MkIgMDY0NTs7OztOOzs7OzsKK0ZDRTY7QVJBQklDIExJR0FUVVJFIFRIRUggV0lUSCBIRUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2MkIgMDY0Nzs7OztOOzs7OzsKK0ZDRTc7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjMzIDA2NDU7Ozs7Tjs7Ozs7CitGQ0U4O0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggSEVIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjMzIDA2NDc7Ozs7Tjs7Ozs7CitGQ0U5O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIE1FRU0gTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2MzQgMDY0NTs7OztOOzs7OzsKK0ZDRUE7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSEVIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjM0IDA2NDc7Ozs7Tjs7Ozs7CitGQ0VCO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBMQU0gTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2NDMgMDY0NDs7OztOOzs7OzsKK0ZDRUM7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIE1FRU0gTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2NDMgMDY0NTs7OztOOzs7OzsKK0ZDRUQ7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIE1FRU0gTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2NDQgMDY0NTs7OztOOzs7OzsKK0ZDRUU7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjQ2IDA2NDU7Ozs7Tjs7Ozs7CitGQ0VGO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSEVIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjQ2IDA2NDc7Ozs7Tjs7Ozs7CitGQ0YwO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjRBIDA2NDU7Ozs7Tjs7Ozs7CitGQ0YxO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIRUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2NEEgMDY0Nzs7OztOOzs7OzsKK0ZDRjI7QVJBQklDIExJR0FUVVJFIFNIQUREQSBXSVRIIEZBVEhBIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjQwIDA2NTEgMDY0RTs7OztOOzs7OzsKK0ZDRjM7QVJBQklDIExJR0FUVVJFIFNIQUREQSBXSVRIIERBTU1BIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjQwIDA2NTEgMDY0Rjs7OztOOzs7OzsKK0ZDRjQ7QVJBQklDIExJR0FUVVJFIFNIQUREQSBXSVRIIEtBU1JBIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjQwIDA2NTEgMDY1MDs7OztOOzs7OzsKK0ZDRjU7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzcgMDY0OTs7OztOOzs7OzsKK0ZDRjY7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzcgMDY0QTs7OztOOzs7OzsKK0ZDRjc7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzkgMDY0OTs7OztOOzs7OzsKK0ZDRjg7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzkgMDY0QTs7OztOOzs7OzsKK0ZDRjk7QVJBQklDIExJR0FUVVJFIEdIQUlOIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzQSAwNjQ5Ozs7O047Ozs7OworRkNGQTtBUkFCSUMgTElHQVRVUkUgR0hBSU4gV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjNBIDA2NEE7Ozs7Tjs7Ozs7CitGQ0ZCO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzMyAwNjQ5Ozs7O047Ozs7OworRkNGQztBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzMgMDY0QTs7OztOOzs7OzsKK0ZDRkQ7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzNCAwNjQ5Ozs7O047Ozs7OworRkNGRTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM0IDA2NEE7Ozs7Tjs7Ozs7CitGQ0ZGO0FSQUJJQyBMSUdBVFVSRSBIQUggV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjJEIDA2NDk7Ozs7Tjs7Ozs7CitGRDAwO0FSQUJJQyBMSUdBVFVSRSBIQUggV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjJEIDA2NEE7Ozs7Tjs7Ozs7CitGRDAxO0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyQyAwNjQ5Ozs7O047Ozs7OworRkQwMjtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MkMgMDY0QTs7OztOOzs7OzsKK0ZEMDM7QVJBQklDIExJR0FUVVJFIEtIQUggV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjJFIDA2NDk7Ozs7Tjs7Ozs7CitGRDA0O0FSQUJJQyBMSUdBVFVSRSBLSEFIIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyRSAwNjRBOzs7O047Ozs7OworRkQwNTtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzNSAwNjQ5Ozs7O047Ozs7OworRkQwNjtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzNSAwNjRBOzs7O047Ozs7OworRkQwNztBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzNiAwNjQ5Ozs7O047Ozs7OworRkQwODtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzNiAwNjRBOzs7O047Ozs7OworRkQwOTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzNCAwNjJDOzs7O047Ozs7OworRkQwQTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM0IDA2MkQ7Ozs7Tjs7Ozs7CitGRDBCO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEtIQUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM0IDA2MkU7Ozs7Tjs7Ozs7CitGRDBDO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM0IDA2NDU7Ozs7Tjs7Ozs7CitGRDBEO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIFJFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzQgMDYzMTs7OztOOzs7OzsKK0ZEMEU7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBSRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjMzIDA2MzE7Ozs7Tjs7Ozs7CitGRDBGO0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBSRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM1IDA2MzE7Ozs7Tjs7Ozs7CitGRDEwO0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBSRUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM2IDA2MzE7Ozs7Tjs7Ozs7CitGRDExO0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM3IDA2NDk7Ozs7Tjs7Ozs7CitGRDEyO0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM3IDA2NEE7Ozs7Tjs7Ozs7CitGRDEzO0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM5IDA2NDk7Ozs7Tjs7Ozs7CitGRDE0O0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM5IDA2NEE7Ozs7Tjs7Ozs7CitGRDE1O0FSQUJJQyBMSUdBVFVSRSBHSEFJTiBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2M0EgMDY0OTs7OztOOzs7OzsKK0ZEMTY7QVJBQklDIExJR0FUVVJFIEdIQUlOIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzQSAwNjRBOzs7O047Ozs7OworRkQxNztBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzMgMDY0OTs7OztOOzs7OzsKK0ZEMTg7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjMzIDA2NEE7Ozs7Tjs7Ozs7CitGRDE5O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzQgMDY0OTs7OztOOzs7OzsKK0ZEMUE7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzNCAwNjRBOzs7O047Ozs7OworRkQxQjtBUkFCSUMgTElHQVRVUkUgSEFIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyRCAwNjQ5Ozs7O047Ozs7OworRkQxQztBUkFCSUMgTElHQVRVUkUgSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyRCAwNjRBOzs7O047Ozs7OworRkQxRDtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkMgMDY0OTs7OztOOzs7OzsKK0ZEMUU7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJDIDA2NEE7Ozs7Tjs7Ozs7CitGRDFGO0FSQUJJQyBMSUdBVFVSRSBLSEFIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyRSAwNjQ5Ozs7O047Ozs7OworRkQyMDtBUkFCSUMgTElHQVRVUkUgS0hBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkUgMDY0QTs7OztOOzs7OzsKK0ZEMjE7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzUgMDY0OTs7OztOOzs7OzsKK0ZEMjI7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzUgMDY0QTs7OztOOzs7OzsKK0ZEMjM7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzYgMDY0OTs7OztOOzs7OzsKK0ZEMjQ7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzYgMDY0QTs7OztOOzs7OzsKK0ZEMjU7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSkVFTSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzQgMDYyQzs7OztOOzs7OzsKK0ZEMjY7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSEFIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzNCAwNjJEOzs7O047Ozs7OworRkQyNztBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBLSEFIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzNCAwNjJFOzs7O047Ozs7OworRkQyODtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzNCAwNjQ1Ozs7O047Ozs7OworRkQyOTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBSRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM0IDA2MzE7Ozs7Tjs7Ozs7CitGRDJBO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggUkVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzMyAwNjMxOzs7O047Ozs7OworRkQyQjtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggUkVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzNSAwNjMxOzs7O047Ozs7OworRkQyQztBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggUkVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzNiAwNjMxOzs7O047Ozs7OworRkQyRDtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzQgMDYyQzs7OztOOzs7OzsKK0ZEMkU7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzQgMDYyRDs7OztOOzs7OzsKK0ZEMkY7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjM0IDA2MkU7Ozs7Tjs7Ozs7CitGRDMwO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzNCAwNjQ1Ozs7O047Ozs7OworRkQzMTtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEhFSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjMzIDA2NDc7Ozs7Tjs7Ozs7CitGRDMyO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEhFSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjM0IDA2NDc7Ozs7Tjs7Ozs7CitGRDMzO0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzcgMDY0NTs7OztOOzs7OzsKK0ZEMzQ7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBKRUVNIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjMzIDA2MkM7Ozs7Tjs7Ozs7CitGRDM1O0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggSEFIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjMzIDA2MkQ7Ozs7Tjs7Ozs7CitGRDM2O0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggS0hBSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDYzMyAwNjJFOzs7O047Ozs7OworRkQzNztBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBKRUVNIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjM0IDA2MkM7Ozs7Tjs7Ozs7CitGRDM4O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEhBSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDYzNCAwNjJEOzs7O047Ozs7OworRkQzOTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBLSEFIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjM0IDA2MkU7Ozs7Tjs7Ozs7CitGRDNBO0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjM3IDA2NDU7Ozs7Tjs7Ozs7CitGRDNCO0FSQUJJQyBMSUdBVFVSRSBaQUggV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjM4IDA2NDU7Ozs7Tjs7Ozs7CitGRDNDO0FSQUJJQyBMSUdBVFVSRSBBTEVGIFdJVEggRkFUSEFUQU4gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjI3IDA2NEI7Ozs7Tjs7Ozs7CitGRDNEO0FSQUJJQyBMSUdBVFVSRSBBTEVGIFdJVEggRkFUSEFUQU4gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjI3IDA2NEI7Ozs7Tjs7Ozs7CitGRDNFO09STkFURSBMRUZUIFBBUkVOVEhFU0lTO1BzOzA7T047Ozs7O047Ozs7OworRkQzRjtPUk5BVEUgUklHSFQgUEFSRU5USEVTSVM7UGU7MDtPTjs7Ozs7Tjs7Ozs7CitGRDUwO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBKRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjJBIDA2MkMgMDY0NTs7OztOOzs7OzsKK0ZENTE7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEhBSCBXSVRIIEpFRU0gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJBIDA2MkQgMDYyQzs7OztOOzs7OzsKK0ZENTI7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEhBSCBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyQSAwNjJEIDA2MkM7Ozs7Tjs7Ozs7CitGRDUzO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MkEgMDYyRCAwNjQ1Ozs7O047Ozs7OworRkQ1NDtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggS0hBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyQSAwNjJFIDA2NDU7Ozs7Tjs7Ozs7CitGRDU1O0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBNRUVNIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjJBIDA2NDUgMDYyQzs7OztOOzs7OzsKK0ZENTY7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIE1FRU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyQSAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGRDU3O0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBNRUVNIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjJBIDA2NDUgMDYyRTs7OztOOzs7OzsKK0ZENTg7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBNRUVNIFdJVEggSEFIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyQyAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGRDU5O0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggTUVFTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjJDIDA2NDUgMDYyRDs7OztOOzs7OzsKK0ZENUE7QVJBQklDIExJR0FUVVJFIEhBSCBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJEIDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZENUI7QVJBQklDIExJR0FUVVJFIEhBSCBXSVRIIE1FRU0gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJEIDA2NDUgMDY0OTs7OztOOzs7OzsKK0ZENUM7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBIQUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzMgMDYyRCAwNjJDOzs7O047Ozs7OworRkQ1RDtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEpFRU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzMyAwNjJDIDA2MkQ7Ozs7Tjs7Ozs7CitGRDVFO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggSkVFTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzMgMDYyQyAwNjQ5Ozs7O047Ozs7OworRkQ1RjtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIE1FRU0gV0lUSCBIQUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjMzIDA2NDUgMDYyRDs7OztOOzs7OzsKK0ZENjA7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBNRUVNIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzMgMDY0NSAwNjJEOzs7O047Ozs7OworRkQ2MTtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIE1FRU0gV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzMgMDY0NSAwNjJDOzs7O047Ozs7OworRkQ2MjtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIE1FRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzMyAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGRDYzO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggTUVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzMyAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGRDY0O0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBIQUggV0lUSCBIQUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM1IDA2MkQgMDYyRDs7OztOOzs7OzsKK0ZENjU7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIEhBSCBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjM1IDA2MkQgMDYyRDs7OztOOzs7OzsKK0ZENjY7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIE1FRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzNSAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGRDY3O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEhBSCBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM0IDA2MkQgMDY0NTs7OztOOzs7OzsKK0ZENjg7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjM0IDA2MkQgMDY0NTs7OztOOzs7OzsKK0ZENjk7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSkVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzQgMDYyQyAwNjRBOzs7O047Ozs7OworRkQ2QTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBNRUVNIFdJVEggS0hBSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzQgMDY0NSAwNjJFOzs7O047Ozs7OworRkQ2QjtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBNRUVNIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjM0IDA2NDUgMDYyRTs7OztOOzs7OzsKK0ZENkM7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggTUVFTSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM0IDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZENkQ7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggTUVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzNCAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGRDZFO0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBIQUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM2IDA2MkQgMDY0OTs7OztOOzs7OzsKK0ZENkY7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEtIQUggV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzNiAwNjJFIDA2NDU7Ozs7Tjs7Ozs7CitGRDcwO0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBLSEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjM2IDA2MkUgMDY0NTs7OztOOzs7OzsKK0ZENzE7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIE1FRU0gV0lUSCBIQUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM3IDA2NDUgMDYyRDs7OztOOzs7OzsKK0ZENzI7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIE1FRU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzNyAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGRDczO0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBNRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjM3IDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZENzQ7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM3IDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZENzU7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIEpFRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzOSAwNjJDIDA2NDU7Ozs7Tjs7Ozs7CitGRDc2O0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBNRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzkgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ3NztBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggTUVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzOSAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGRDc4O0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBNRUVNIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzOSAwNjQ1IDA2NDk7Ozs7Tjs7Ozs7CitGRDc5O0FSQUJJQyBMSUdBVFVSRSBHSEFJTiBXSVRIIE1FRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzQSAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGRDdBO0FSQUJJQyBMSUdBVFVSRSBHSEFJTiBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjNBIDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZEN0I7QVJBQklDIExJR0FUVVJFIEdIQUlOIFdJVEggTUVFTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2M0EgMDY0NSAwNjQ5Ozs7O047Ozs7OworRkQ3QztBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggS0hBSCBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQxIDA2MkUgMDY0NTs7OztOOzs7OzsKK0ZEN0Q7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIEtIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDEgMDYyRSAwNjQ1Ozs7O047Ozs7OworRkQ3RTtBUkFCSUMgTElHQVRVUkUgUUFGIFdJVEggTUVFTSBXSVRIIEhBSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDIgMDY0NSAwNjJEOzs7O047Ozs7OworRkQ3RjtBUkFCSUMgTElHQVRVUkUgUUFGIFdJVEggTUVFTSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQyIDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZEODA7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEhBSCBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ0IDA2MkQgMDY0NTs7OztOOzs7OzsKK0ZEODE7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEhBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDQgMDYyRCAwNjRBOzs7O047Ozs7OworRkQ4MjtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSEFIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NCAwNjJEIDA2NDk7Ozs7Tjs7Ozs7CitGRDgzO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBKRUVNIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ0IDA2MkMgMDYyQzs7OztOOzs7OzsKK0ZEODQ7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEpFRU0gV0lUSCBKRUVNIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NCAwNjJDIDA2MkM7Ozs7Tjs7Ozs7CitGRDg1O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBLSEFIIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDQgMDYyRSAwNjQ1Ozs7O047Ozs7OworRkQ4NjtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggS0hBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0NCAwNjJFIDA2NDU7Ozs7Tjs7Ozs7CitGRDg3O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBNRUVNIFdJVEggSEFIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NCAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGRDg4O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBNRUVNIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDQgMDY0NSAwNjJEOzs7O047Ozs7OworRkQ4OTtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEhBSCBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0NSAwNjJEIDA2MkM7Ozs7Tjs7Ozs7CitGRDhBO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggSEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ1IDA2MkQgMDY0NTs7OztOOzs7OzsKK0ZEOEI7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ1IDA2MkQgMDY0QTs7OztOOzs7OzsKK0ZEOEM7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBKRUVNIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDUgMDYyQyAwNjJEOzs7O047Ozs7OworRkQ4RDtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEpFRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDUgMDYyQyAwNjQ1Ozs7O047Ozs7OworRkQ4RTtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEtIQUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDUgMDYyRSAwNjJDOzs7O047Ozs7OworRkQ4RjtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEtIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDUgMDYyRSAwNjQ1Ozs7O047Ozs7OworRkQ5MjtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEpFRU0gV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDUgMDYyQyAwNjJFOzs7O047Ozs7OworRkQ5MztBUkFCSUMgTElHQVRVUkUgSEVIIFdJVEggTUVFTSBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0NyAwNjQ1IDA2MkM7Ozs7Tjs7Ozs7CitGRDk0O0FSQUJJQyBMSUdBVFVSRSBIRUggV0lUSCBNRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ3IDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZEOTU7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDYgMDYyRCAwNjQ1Ozs7O047Ozs7OworRkQ5NjtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEhBSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDYgMDYyRCAwNjQ5Ozs7O047Ozs7OworRkQ5NztBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEpFRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NiAwNjJDIDA2NDU7Ozs7Tjs7Ozs7CitGRDk4O0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSkVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0NiAwNjJDIDA2NDU7Ozs7Tjs7Ozs7CitGRDk5O0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSkVFTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDYgMDYyQyAwNjQ5Ozs7O047Ozs7OworRkQ5QTtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ2IDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZEOUI7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBNRUVNIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NiAwNjQ1IDA2NDk7Ozs7Tjs7Ozs7CitGRDlDO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBNRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NEEgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ5RDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggTUVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0QSAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGRDlFO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBLSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyOCAwNjJFIDA2NEE7Ozs7Tjs7Ozs7CitGRDlGO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBKRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyQSAwNjJDIDA2NEE7Ozs7Tjs7Ozs7CitGREEwO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBKRUVNIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyQSAwNjJDIDA2NDk7Ozs7Tjs7Ozs7CitGREExO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBLSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyQSAwNjJFIDA2NEE7Ozs7Tjs7Ozs7CitGREEyO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBLSEFIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyQSAwNjJFIDA2NDk7Ozs7Tjs7Ozs7CitGREEzO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyQSAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGREE0O0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBNRUVNIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyQSAwNjQ1IDA2NDk7Ozs7Tjs7Ozs7CitGREE1O0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggTUVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkMgMDY0NSAwNjRBOzs7O047Ozs7OworRkRBNjtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIEhBSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkMgMDYyRCAwNjQ5Ozs7O047Ozs7OworRkRBNztBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIE1FRU0gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJDIDA2NDUgMDY0OTs7OztOOzs7OzsKK0ZEQTg7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBLSEFIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzMyAwNjJFIDA2NDk7Ozs7Tjs7Ozs7CitGREE5O0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM1IDA2MkQgMDY0QTs7OztOOzs7OzsKK0ZEQUE7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzNCAwNjJEIDA2NEE7Ozs7Tjs7Ozs7CitGREFCO0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM2IDA2MkQgMDY0QTs7OztOOzs7OzsKK0ZEQUM7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEpFRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ0IDA2MkMgMDY0QTs7OztOOzs7OzsKK0ZEQUQ7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ0IDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZEQUU7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NEEgMDYyRCAwNjRBOzs7O047Ozs7OworRkRBRjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSkVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NEEgMDYyQyAwNjRBOzs7O047Ozs7OworRkRCMDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggTUVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NEEgMDY0NSAwNjRBOzs7O047Ozs7OworRkRCMTtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ1IDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZEQjI7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQyIDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZEQjM7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ2IDA2MkQgMDY0QTs7OztOOzs7OzsKK0ZEQjQ7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIE1FRU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0MiAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGREI1O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDQgMDYyRCAwNjQ1Ozs7O047Ozs7OworRkRCNjtBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggTUVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzkgMDY0NSAwNjRBOzs7O047Ozs7OworRkRCNztBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggTUVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDMgMDY0NSAwNjRBOzs7O047Ozs7OworRkRCODtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEpFRU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0NiAwNjJDIDA2MkQ7Ozs7Tjs7Ozs7CitGREI5O0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggS0hBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDUgMDYyRSAwNjRBOzs7O047Ozs7OworRkRCQTtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSkVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0NCAwNjJDIDA2NDU7Ozs7Tjs7Ozs7CitGREJCO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBNRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDMgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkRCQztBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSkVFTSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ0IDA2MkMgMDY0NTs7OztOOzs7OzsKK0ZEQkQ7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBKRUVNIFdJVEggSEFIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NiAwNjJDIDA2MkQ7Ozs7Tjs7Ozs7CitGREJFO0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyQyAwNjJEIDA2NEE7Ozs7Tjs7Ozs7CitGREJGO0FSQUJJQyBMSUdBVFVSRSBIQUggV0lUSCBKRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyRCAwNjJDIDA2NEE7Ozs7Tjs7Ozs7CitGREMwO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggSkVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDUgMDYyQyAwNjRBOzs7O047Ozs7OworRkRDMTtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggTUVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDEgMDY0NSAwNjRBOzs7O047Ozs7OworRkRDMjtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyOCAwNjJEIDA2NEE7Ozs7Tjs7Ozs7CitGREMzO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBNRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQzIDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZEQzQ7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIEpFRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MzkgMDYyQyAwNjQ1Ozs7O047Ozs7OworRkRDNTtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggTUVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzNSAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGREM2O0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggS0hBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzMgMDYyRSAwNjRBOzs7O047Ozs7OworRkRDNztBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEpFRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ2IDA2MkMgMDY0QTs7OztOOzs7OzsKK0ZERjA7QVJBQklDIExJR0FUVVJFIFNBTExBIFVTRUQgQVMgS09SQU5JQyBTVE9QIFNJR04gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM1IDA2NDQgMDZEMjs7OztOOzs7OzsKK0ZERjE7QVJBQklDIExJR0FUVVJFIFFBTEEgVVNFRCBBUyBLT1JBTklDIFNUT1AgU0lHTiBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDIgMDY0NCAwNkQyOzs7O047Ozs7OworRkRGMjtBUkFCSUMgTElHQVRVUkUgQUxMQUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjI3IDA2NDQgMDY0NCAwNjQ3Ozs7O047Ozs7OworRkRGMztBUkFCSUMgTElHQVRVUkUgQUtCQVIgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjI3IDA2NDMgMDYyOCAwNjMxOzs7O047Ozs7OworRkRGNDtBUkFCSUMgTElHQVRVUkUgTU9IQU1NQUQgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQ1IDA2MkQgMDY0NSAwNjJGOzs7O047Ozs7OworRkRGNTtBUkFCSUMgTElHQVRVUkUgU0FMQU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM1IDA2NDQgMDYzOSAwNjQ1Ozs7O047Ozs7OworRkRGNjtBUkFCSUMgTElHQVRVUkUgUkFTT1VMIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzMSAwNjMzIDA2NDggMDY0NDs7OztOOzs7OzsKK0ZERjc7QVJBQklDIExJR0FUVVJFIEFMQVlIRSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzkgMDY0NCAwNjRBIDA2NDc7Ozs7Tjs7Ozs7CitGREY4O0FSQUJJQyBMSUdBVFVSRSBXQVNBTExBTSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDggMDYzMyAwNjQ0IDA2NDU7Ozs7Tjs7Ozs7CitGREY5O0FSQUJJQyBMSUdBVFVSRSBTQUxMQSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzUgMDY0NCAwNjQ5Ozs7O047Ozs7OworRkRGQTtBUkFCSUMgTElHQVRVUkUgU0FMTEFMTEFIT1UgQUxBWUhFIFdBU0FMTEFNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzUgMDY0NCAwNjQ5IDAwMjAgMDYyNyAwNjQ0IDA2NDQgMDY0NyAwMDIwIDA2MzkgMDY0NCAwNjRBIDA2NDcgMDAyMCAwNjQ4IDA2MzMgMDY0NCAwNjQ1Ozs7O047QVJBQklDIExFVFRFUiBTQUxMQUxMQUhPVSBBTEFZSEUgV0FTQUxMQU07Ozs7CitGREZCO0FSQUJJQyBMSUdBVFVSRSBKQUxMQUpBTEFMT1VIT1U7TG87MDtSOzxpc29sYXRlZD4gMDYyQyAwNjQ0IDAwMjAgMDYyQyAwNjQ0IDA2MjcgMDY0NCAwNjQ3Ozs7O047QVJBQklDIExFVFRFUiBKQUxMQUpBTEFMT1VIT1U7Ozs7CitGRTIwO0NPTUJJTklORyBMSUdBVFVSRSBMRUZUIEhBTEY7TW47MjMwO09OOzs7OztOOzs7OzsKK0ZFMjE7Q09NQklOSU5HIExJR0FUVVJFIFJJR0hUIEhBTEY7TW47MjMwO09OOzs7OztOOzs7OzsKK0ZFMjI7Q09NQklOSU5HIERPVUJMRSBUSUxERSBMRUZUIEhBTEY7TW47MjMwO09OOzs7OztOOzs7OzsKK0ZFMjM7Q09NQklOSU5HIERPVUJMRSBUSUxERSBSSUdIVCBIQUxGO01uOzIzMDtPTjs7Ozs7Tjs7Ozs7CitGRTMwO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBUV08gRE9UIExFQURFUjtQbzswO09OOzx2ZXJ0aWNhbD4gMjAyNTs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBUV08gRE9UIExFQURFUjs7OzsKK0ZFMzE7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIEVNIERBU0g7UGQ7MDtPTjs8dmVydGljYWw+IDIwMTQ7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgRU0gREFTSDs7OzsKK0ZFMzI7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIEVOIERBU0g7UGQ7MDtPTjs8dmVydGljYWw+IDIwMTM7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgRU4gREFTSDs7OzsKK0ZFMzM7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIExPVyBMSU5FO1BjOzA7T047PHZlcnRpY2FsPiAwMDVGOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIFNQQUNJTkcgVU5ERVJTQ09SRTs7OzsKK0ZFMzQ7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIFdBVlkgTE9XIExJTkU7UGM7MDtPTjs8dmVydGljYWw+IDAwNUY7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgU1BBQ0lORyBXQVZZIFVOREVSU0NPUkU7Ozs7CitGRTM1O1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBMRUZUIFBBUkVOVEhFU0lTO1BzOzA7T047PHZlcnRpY2FsPiAwMDI4Ozs7O047R0xZUEggRk9SIFZFUlRJQ0FMIE9QRU5JTkcgUEFSRU5USEVTSVM7Ozs7CitGRTM2O1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBSSUdIVCBQQVJFTlRIRVNJUztQZTswO09OOzx2ZXJ0aWNhbD4gMDAyOTs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBDTE9TSU5HIFBBUkVOVEhFU0lTOzs7OworRkUzNztQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgTEVGVCBDVVJMWSBCUkFDS0VUO1BzOzA7T047PHZlcnRpY2FsPiAwMDdCOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIE9QRU5JTkcgQ1VSTFkgQlJBQ0tFVDs7OzsKK0ZFMzg7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIFJJR0hUIENVUkxZIEJSQUNLRVQ7UGU7MDtPTjs8dmVydGljYWw+IDAwN0Q7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgQ0xPU0lORyBDVVJMWSBCUkFDS0VUOzs7OworRkUzOTtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgTEVGVCBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUO1BzOzA7T047PHZlcnRpY2FsPiAzMDE0Ozs7O047R0xZUEggRk9SIFZFUlRJQ0FMIE9QRU5JTkcgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDs7OzsKK0ZFM0E7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIFJJR0hUIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7UGU7MDtPTjs8dmVydGljYWw+IDMwMTU7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgQ0xPU0lORyBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUOzs7OworRkUzQjtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgTEVGVCBCTEFDSyBMRU5USUNVTEFSIEJSQUNLRVQ7UHM7MDtPTjs8dmVydGljYWw+IDMwMTA7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgT1BFTklORyBCTEFDSyBMRU5USUNVTEFSIEJSQUNLRVQ7Ozs7CitGRTNDO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBSSUdIVCBCTEFDSyBMRU5USUNVTEFSIEJSQUNLRVQ7UGU7MDtPTjs8dmVydGljYWw+IDMwMTE7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgQ0xPU0lORyBCTEFDSyBMRU5USUNVTEFSIEJSQUNLRVQ7Ozs7CitGRTNEO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBMRUZUIERPVUJMRSBBTkdMRSBCUkFDS0VUO1BzOzA7T047PHZlcnRpY2FsPiAzMDBBOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIE9QRU5JTkcgRE9VQkxFIEFOR0xFIEJSQUNLRVQ7Ozs7CitGRTNFO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBSSUdIVCBET1VCTEUgQU5HTEUgQlJBQ0tFVDtQZTswO09OOzx2ZXJ0aWNhbD4gMzAwQjs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBDTE9TSU5HIERPVUJMRSBBTkdMRSBCUkFDS0VUOzs7OworRkUzRjtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgTEVGVCBBTkdMRSBCUkFDS0VUO1BzOzA7T047PHZlcnRpY2FsPiAzMDA4Ozs7O047R0xZUEggRk9SIFZFUlRJQ0FMIE9QRU5JTkcgQU5HTEUgQlJBQ0tFVDs7OzsKK0ZFNDA7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIFJJR0hUIEFOR0xFIEJSQUNLRVQ7UGU7MDtPTjs8dmVydGljYWw+IDMwMDk7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgQ0xPU0lORyBBTkdMRSBCUkFDS0VUOzs7OworRkU0MTtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgTEVGVCBDT1JORVIgQlJBQ0tFVDtQczswO09OOzx2ZXJ0aWNhbD4gMzAwQzs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBPUEVOSU5HIENPUk5FUiBCUkFDS0VUOzs7OworRkU0MjtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgUklHSFQgQ09STkVSIEJSQUNLRVQ7UGU7MDtPTjs8dmVydGljYWw+IDMwMEQ7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgQ0xPU0lORyBDT1JORVIgQlJBQ0tFVDs7OzsKK0ZFNDM7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIExFRlQgV0hJVEUgQ09STkVSIEJSQUNLRVQ7UHM7MDtPTjs8dmVydGljYWw+IDMwMEU7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgT1BFTklORyBXSElURSBDT1JORVIgQlJBQ0tFVDs7OzsKK0ZFNDQ7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIFJJR0hUIFdISVRFIENPUk5FUiBCUkFDS0VUO1BlOzA7T047PHZlcnRpY2FsPiAzMDBGOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIENMT1NJTkcgV0hJVEUgQ09STkVSIEJSQUNLRVQ7Ozs7CitGRTQ5O0RBU0hFRCBPVkVSTElORTtQbzswO09OOzxjb21wYXQ+IDIwM0U7Ozs7TjtTUEFDSU5HIERBU0hFRCBPVkVSU0NPUkU7Ozs7CitGRTRBO0NFTlRSRUxJTkUgT1ZFUkxJTkU7UG87MDtPTjs8Y29tcGF0PiAyMDNFOzs7O047U1BBQ0lORyBDRU5URVJMSU5FIE9WRVJTQ09SRTs7OzsKK0ZFNEI7V0FWWSBPVkVSTElORTtQbzswO09OOzxjb21wYXQ+IDIwM0U7Ozs7TjtTUEFDSU5HIFdBVlkgT1ZFUlNDT1JFOzs7OworRkU0QztET1VCTEUgV0FWWSBPVkVSTElORTtQbzswO09OOzxjb21wYXQ+IDIwM0U7Ozs7TjtTUEFDSU5HIERPVUJMRSBXQVZZIE9WRVJTQ09SRTs7OzsKK0ZFNEQ7REFTSEVEIExPVyBMSU5FO1BjOzA7T047PGNvbXBhdD4gMDA1Rjs7OztOO1NQQUNJTkcgREFTSEVEIFVOREVSU0NPUkU7Ozs7CitGRTRFO0NFTlRSRUxJTkUgTE9XIExJTkU7UGM7MDtPTjs8Y29tcGF0PiAwMDVGOzs7O047U1BBQ0lORyBDRU5URVJMSU5FIFVOREVSU0NPUkU7Ozs7CitGRTRGO1dBVlkgTE9XIExJTkU7UGM7MDtPTjs8Y29tcGF0PiAwMDVGOzs7O047U1BBQ0lORyBXQVZZIFVOREVSU0NPUkU7Ozs7CitGRTUwO1NNQUxMIENPTU1BO1BvOzA7Q1M7PHNtYWxsPiAwMDJDOzs7O047Ozs7OworRkU1MTtTTUFMTCBJREVPR1JBUEhJQyBDT01NQTtQbzswO09OOzxzbWFsbD4gMzAwMTs7OztOOzs7OzsKK0ZFNTI7U01BTEwgRlVMTCBTVE9QO1BvOzA7Q1M7PHNtYWxsPiAwMDJFOzs7O047U01BTEwgUEVSSU9EOzs7OworRkU1NDtTTUFMTCBTRU1JQ09MT047UG87MDtPTjs8c21hbGw+IDAwM0I7Ozs7Tjs7Ozs7CitGRTU1O1NNQUxMIENPTE9OO1BvOzA7Q1M7PHNtYWxsPiAwMDNBOzs7O047Ozs7OworRkU1NjtTTUFMTCBRVUVTVElPTiBNQVJLO1BvOzA7T047PHNtYWxsPiAwMDNGOzs7O047Ozs7OworRkU1NztTTUFMTCBFWENMQU1BVElPTiBNQVJLO1BvOzA7T047PHNtYWxsPiAwMDIxOzs7O047Ozs7OworRkU1ODtTTUFMTCBFTSBEQVNIO1BkOzA7T047PHNtYWxsPiAyMDE0Ozs7O047Ozs7OworRkU1OTtTTUFMTCBMRUZUIFBBUkVOVEhFU0lTO1BzOzA7T047PHNtYWxsPiAwMDI4Ozs7O047U01BTEwgT1BFTklORyBQQVJFTlRIRVNJUzs7OzsKK0ZFNUE7U01BTEwgUklHSFQgUEFSRU5USEVTSVM7UGU7MDtPTjs8c21hbGw+IDAwMjk7Ozs7TjtTTUFMTCBDTE9TSU5HIFBBUkVOVEhFU0lTOzs7OworRkU1QjtTTUFMTCBMRUZUIENVUkxZIEJSQUNLRVQ7UHM7MDtPTjs8c21hbGw+IDAwN0I7Ozs7TjtTTUFMTCBPUEVOSU5HIENVUkxZIEJSQUNLRVQ7Ozs7CitGRTVDO1NNQUxMIFJJR0hUIENVUkxZIEJSQUNLRVQ7UGU7MDtPTjs8c21hbGw+IDAwN0Q7Ozs7TjtTTUFMTCBDTE9TSU5HIENVUkxZIEJSQUNLRVQ7Ozs7CitGRTVEO1NNQUxMIExFRlQgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDtQczswO09OOzxzbWFsbD4gMzAxNDs7OztOO1NNQUxMIE9QRU5JTkcgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDs7OzsKK0ZFNUU7U01BTEwgUklHSFQgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDtQZTswO09OOzxzbWFsbD4gMzAxNTs7OztOO1NNQUxMIENMT1NJTkcgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDs7OzsKK0ZFNUY7U01BTEwgTlVNQkVSIFNJR047UG87MDtFVDs8c21hbGw+IDAwMjM7Ozs7Tjs7Ozs7CitGRTYwO1NNQUxMIEFNUEVSU0FORDtQbzswO09OOzxzbWFsbD4gMDAyNjs7OztOOzs7OzsKK0ZFNjE7U01BTEwgQVNURVJJU0s7UG87MDtPTjs8c21hbGw+IDAwMkE7Ozs7Tjs7Ozs7CitGRTYyO1NNQUxMIFBMVVMgU0lHTjtTbTswO0VUOzxzbWFsbD4gMDAyQjs7OztOOzs7OzsKK0ZFNjM7U01BTEwgSFlQSEVOLU1JTlVTO1BkOzA7RVQ7PHNtYWxsPiAwMDJEOzs7O047Ozs7OworRkU2NDtTTUFMTCBMRVNTLVRIQU4gU0lHTjtTbTswO09OOzxzbWFsbD4gMDAzQzs7OztOOzs7OzsKK0ZFNjU7U01BTEwgR1JFQVRFUi1USEFOIFNJR047U207MDtPTjs8c21hbGw+IDAwM0U7Ozs7Tjs7Ozs7CitGRTY2O1NNQUxMIEVRVUFMUyBTSUdOO1NtOzA7T047PHNtYWxsPiAwMDNEOzs7O047Ozs7OworRkU2ODtTTUFMTCBSRVZFUlNFIFNPTElEVVM7UG87MDtPTjs8c21hbGw+IDAwNUM7Ozs7TjtTTUFMTCBCQUNLU0xBU0g7Ozs7CitGRTY5O1NNQUxMIERPTExBUiBTSUdOO1NjOzA7RVQ7PHNtYWxsPiAwMDI0Ozs7O047Ozs7OworRkU2QTtTTUFMTCBQRVJDRU5UIFNJR047UG87MDtFVDs8c21hbGw+IDAwMjU7Ozs7Tjs7Ozs7CitGRTZCO1NNQUxMIENPTU1FUkNJQUwgQVQ7UG87MDtPTjs8c21hbGw+IDAwNDA7Ozs7Tjs7Ozs7CitGRTcwO0FSQUJJQyBGQVRIQVRBTiBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDAwMjAgMDY0Qjs7OztOO0FSQUJJQyBTUEFDSU5HIEZBVEhBVEFOOzs7OworRkU3MTtBUkFCSUMgVEFUV0VFTCBXSVRIIEZBVEhBVEFOIEFCT1ZFO0xvOzA7Ujs8bWVkaWFsPiAwNjQwIDA2NEI7Ozs7TjtBUkFCSUMgRkFUSEFUQU4gT04gVEFUV0VFTDs7OzsKK0ZFNzI7QVJBQklDIERBTU1BVEFOIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDAyMCAwNjRDOzs7O047QVJBQklDIFNQQUNJTkcgREFNTUFUQU47Ozs7CitGRTc0O0FSQUJJQyBLQVNSQVRBTiBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDAwMjAgMDY0RDs7OztOO0FSQUJJQyBTUEFDSU5HIEtBU1JBVEFOOzs7OworRkU3NjtBUkFCSUMgRkFUSEEgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwMDIwIDA2NEU7Ozs7TjtBUkFCSUMgU1BBQ0lORyBGQVRIQUg7Ozs7CitGRTc3O0FSQUJJQyBGQVRIQSBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDY0MCAwNjRFOzs7O047QVJBQklDIEZBVEhBSCBPTiBUQVRXRUVMOzs7OworRkU3ODtBUkFCSUMgREFNTUEgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwMDIwIDA2NEY7Ozs7TjtBUkFCSUMgU1BBQ0lORyBEQU1NQUg7Ozs7CitGRTc5O0FSQUJJQyBEQU1NQSBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDY0MCAwNjRGOzs7O047QVJBQklDIERBTU1BSCBPTiBUQVRXRUVMOzs7OworRkU3QTtBUkFCSUMgS0FTUkEgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwMDIwIDA2NTA7Ozs7TjtBUkFCSUMgU1BBQ0lORyBLQVNSQUg7Ozs7CitGRTdCO0FSQUJJQyBLQVNSQSBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDY0MCAwNjUwOzs7O047QVJBQklDIEtBU1JBSCBPTiBUQVRXRUVMOzs7OworRkU3QztBUkFCSUMgU0hBRERBIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDAyMCAwNjUxOzs7O047QVJBQklDIFNQQUNJTkcgU0hBRERBSDs7OzsKK0ZFN0Q7QVJBQklDIFNIQUREQSBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDY0MCAwNjUxOzs7O047QVJBQklDIFNIQUREQUggT04gVEFUV0VFTDs7OzsKK0ZFN0U7QVJBQklDIFNVS1VOIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDAyMCAwNjUyOzs7O047QVJBQklDIFNQQUNJTkcgU1VLVU47Ozs7CitGRTdGO0FSQUJJQyBTVUtVTiBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDY0MCAwNjUyOzs7O047QVJBQklDIFNVS1VOIE9OIFRBVFdFRUw7Ozs7CitGRTgwO0FSQUJJQyBMRVRURVIgSEFNWkEgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjIxOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEhBTVpBSDs7OzsKK0ZFODE7QVJBQklDIExFVFRFUiBBTEVGIFdJVEggTUFEREEgQUJPVkUgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjIyOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIE1BRERBSCBPTiBBTEVGOzs7OworRkU4MjtBUkFCSUMgTEVUVEVSIEFMRUYgV0lUSCBNQUREQSBBQk9WRSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MjI7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIE1BRERBSCBPTiBBTEVGOzs7OworRkU4MztBUkFCSUMgTEVUVEVSIEFMRUYgV0lUSCBIQU1aQSBBQk9WRSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MjM7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgSEFNWkFIIE9OIEFMRUY7Ozs7CitGRTg0O0FSQUJJQyBMRVRURVIgQUxFRiBXSVRIIEhBTVpBIEFCT1ZFIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyMzs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgSEFNWkFIIE9OIEFMRUY7Ozs7CitGRTg1O0FSQUJJQyBMRVRURVIgV0FXIFdJVEggSEFNWkEgQUJPVkUgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjI0Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEhBTVpBSCBPTiBXQVc7Ozs7CitGRTg2O0FSQUJJQyBMRVRURVIgV0FXIFdJVEggSEFNWkEgQUJPVkUgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjI0Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBIQU1aQUggT04gV0FXOzs7OworRkU4NztBUkFCSUMgTEVUVEVSIEFMRUYgV0lUSCBIQU1aQSBCRUxPVyBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MjU7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgSEFNWkFIIFVOREVSIEFMRUY7Ozs7CitGRTg4O0FSQUJJQyBMRVRURVIgQUxFRiBXSVRIIEhBTVpBIEJFTE9XIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyNTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgSEFNWkFIIFVOREVSIEFMRUY7Ozs7CitGRTg5O0FSQUJJQyBMRVRURVIgWUVIIFdJVEggSEFNWkEgQUJPVkUgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjI2Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEhBTVpBSCBPTiBZQTs7OzsKK0ZFOEE7QVJBQklDIExFVFRFUiBZRUggV0lUSCBIQU1aQSBBQk9WRSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MjY7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEhBTVpBSCBPTiBZQTs7OzsKK0ZFOEI7QVJBQklDIExFVFRFUiBZRUggV0lUSCBIQU1aQSBBQk9WRSBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjI2Ozs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIEhBTVpBSCBPTiBZQTs7OzsKK0ZFOEM7QVJBQklDIExFVFRFUiBZRUggV0lUSCBIQU1aQSBBQk9WRSBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDYyNjs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIEhBTVpBSCBPTiBZQTs7OzsKK0ZFOEQ7QVJBQklDIExFVFRFUiBBTEVGIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyNzs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBBTEVGOzs7OworRkU4RTtBUkFCSUMgTEVUVEVSIEFMRUYgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjI3Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBBTEVGOzs7OworRkU4RjtBUkFCSUMgTEVUVEVSIEJFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2Mjg7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgQkFBOzs7OworRkU5MDtBUkFCSUMgTEVUVEVSIEJFSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2Mjg7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEJBQTs7OzsKK0ZFOTE7QVJBQklDIExFVFRFUiBCRUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyODs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBCQUE7Ozs7CitGRTkyO0FSQUJJQyBMRVRURVIgQkVIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjI4Ozs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgQkFBOzs7OworRkU5MztBUkFCSUMgTEVUVEVSIFRFSCBNQVJCVVRBIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyOTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBUQUEgTUFSQlVUQUg7Ozs7CitGRTk0O0FSQUJJQyBMRVRURVIgVEVIIE1BUkJVVEEgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjI5Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBUQUEgTUFSQlVUQUg7Ozs7CitGRTk1O0FSQUJJQyBMRVRURVIgVEVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyQTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBUQUE7Ozs7CitGRTk2O0FSQUJJQyBMRVRURVIgVEVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyQTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgVEFBOzs7OworRkU5NztBUkFCSUMgTEVUVEVSIFRFSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjJBOzs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIFRBQTs7OzsKK0ZFOTg7QVJBQklDIExFVFRFUiBURUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2MkE7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBUQUE7Ozs7CitGRTk5O0FSQUJJQyBMRVRURVIgVEhFSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MkI7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgVEhBQTs7OzsKK0ZFOUE7QVJBQklDIExFVFRFUiBUSEVIIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyQjs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgVEhBQTs7OzsKK0ZFOUI7QVJBQklDIExFVFRFUiBUSEVIIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2MkI7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgVEhBQTs7OzsKK0ZFOUM7QVJBQklDIExFVFRFUiBUSEVIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjJCOzs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgVEhBQTs7OzsKK0ZFOUQ7QVJBQklDIExFVFRFUiBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyQzs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBKRUVNOzs7OworRkU5RTtBUkFCSUMgTEVUVEVSIEpFRU0gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjJDOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBKRUVNOzs7OworRkU5RjtBUkFCSUMgTEVUVEVSIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyQzs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBKRUVNOzs7OworRkVBMDtBUkFCSUMgTEVUVEVSIEpFRU0gTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2MkM7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBKRUVNOzs7OworRkVBMTtBUkFCSUMgTEVUVEVSIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MkQ7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgSEFBOzs7OworRkVBMjtBUkFCSUMgTEVUVEVSIEhBSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkQ7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEhBQTs7OzsKK0ZFQTM7QVJBQklDIExFVFRFUiBIQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYyRDs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBIQUE7Ozs7CitGRUE0O0FSQUJJQyBMRVRURVIgSEFIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjJEOzs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgSEFBOzs7OworRkVBNTtBUkFCSUMgTEVUVEVSIEtIQUggSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjJFOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEtIQUE7Ozs7CitGRUE2O0FSQUJJQyBMRVRURVIgS0hBSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MkU7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEtIQUE7Ozs7CitGRUE3O0FSQUJJQyBMRVRURVIgS0hBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjJFOzs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIEtIQUE7Ozs7CitGRUE4O0FSQUJJQyBMRVRURVIgS0hBSCBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDYyRTs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIEtIQUE7Ozs7CitGRUE5O0FSQUJJQyBMRVRURVIgREFMIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYyRjs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBEQUw7Ozs7CitGRUFBO0FSQUJJQyBMRVRURVIgREFMIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYyRjs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgREFMOzs7OworRkVBQjtBUkFCSUMgTEVUVEVSIFRIQUwgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjMwOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFRIQUw7Ozs7CitGRUFDO0FSQUJJQyBMRVRURVIgVEhBTCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzA7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFRIQUw7Ozs7CitGRUFEO0FSQUJJQyBMRVRURVIgUkVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzMTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBSQTs7OzsKK0ZFQUU7QVJBQklDIExFVFRFUiBSRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjMxOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBSQTs7OzsKK0ZFQUY7QVJBQklDIExFVFRFUiBaQUlOIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDYzMjs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBaQUlOOzs7OworRkVCMDtBUkFCSUMgTEVUVEVSIFpBSU4gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjMyOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBaQUlOOzs7OworRkVCMTtBUkFCSUMgTEVUVEVSIFNFRU4gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjMzOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFNFRU47Ozs7CitGRUIyO0FSQUJJQyBMRVRURVIgU0VFTiBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzM7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFNFRU47Ozs7CitGRUIzO0FSQUJJQyBMRVRURVIgU0VFTiBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjMzOzs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIFNFRU47Ozs7CitGRUI0O0FSQUJJQyBMRVRURVIgU0VFTiBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDYzMzs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIFNFRU47Ozs7CitGRUI1O0FSQUJJQyBMRVRURVIgU0hFRU4gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM0Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFNIRUVOOzs7OworRkVCNjtBUkFCSUMgTEVUVEVSIFNIRUVOIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDYzNDs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgU0hFRU47Ozs7CitGRUI3O0FSQUJJQyBMRVRURVIgU0hFRU4gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzNDs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBTSEVFTjs7OzsKK0ZFQjg7QVJBQklDIExFVFRFUiBTSEVFTiBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDYzNDs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIFNIRUVOOzs7OworRkVCOTtBUkFCSUMgTEVUVEVSIFNBRCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzU7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgU0FEOzs7OworRkVCQTtBUkFCSUMgTEVUVEVSIFNBRCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzU7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFNBRDs7OzsKK0ZFQkI7QVJBQklDIExFVFRFUiBTQUQgSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzNTs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBTQUQ7Ozs7CitGRUJDO0FSQUJJQyBMRVRURVIgU0FEIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjM1Ozs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgU0FEOzs7OworRkVCRDtBUkFCSUMgTEVUVEVSIERBRCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2MzY7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgREFEOzs7OworRkVCRTtBUkFCSUMgTEVUVEVSIERBRCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2MzY7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIERBRDs7OzsKK0ZFQkY7QVJBQklDIExFVFRFUiBEQUQgSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzNjs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBEQUQ7Ozs7CitGRUMwO0FSQUJJQyBMRVRURVIgREFEIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjM2Ozs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgREFEOzs7OworRkVDMTtBUkFCSUMgTEVUVEVSIFRBSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2Mzc7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgVEFIOzs7OworRkVDMjtBUkFCSUMgTEVUVEVSIFRBSCBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2Mzc7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFRBSDs7OzsKK0ZFQzM7QVJBQklDIExFVFRFUiBUQUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDYzNzs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBUQUg7Ozs7CitGRUM0O0FSQUJJQyBMRVRURVIgVEFIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjM3Ozs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgVEFIOzs7OworRkVDNTtBUkFCSUMgTEVUVEVSIFpBSCBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2Mzg7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgREhBSDs7OzsKK0ZFQzY7QVJBQklDIExFVFRFUiBaQUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM4Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBESEFIOzs7OworRkVDNztBUkFCSUMgTEVUVEVSIFpBSCBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjM4Ozs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIERIQUg7Ozs7CitGRUM4O0FSQUJJQyBMRVRURVIgWkFIIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjM4Ozs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgREhBSDs7OzsKK0ZFQzk7QVJBQklDIExFVFRFUiBBSU4gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjM5Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEFJTjs7OzsKK0ZFQ0E7QVJBQklDIExFVFRFUiBBSU4gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjM5Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBBSU47Ozs7CitGRUNCO0FSQUJJQyBMRVRURVIgQUlOIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2Mzk7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgQUlOOzs7OworRkVDQztBUkFCSUMgTEVUVEVSIEFJTiBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDYzOTs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIEFJTjs7OzsKK0ZFQ0Q7QVJBQklDIExFVFRFUiBHSEFJTiBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2M0E7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgR0hBSU47Ozs7CitGRUNFO0FSQUJJQyBMRVRURVIgR0hBSU4gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjNBOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBHSEFJTjs7OzsKK0ZFQ0Y7QVJBQklDIExFVFRFUiBHSEFJTiBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjNBOzs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIEdIQUlOOzs7OworRkVEMDtBUkFCSUMgTEVUVEVSIEdIQUlOIE1FRElBTCBGT1JNO0xvOzA7Ujs8bWVkaWFsPiAwNjNBOzs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgR0hBSU47Ozs7CitGRUQxO0FSQUJJQyBMRVRURVIgRkVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0MTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBGQTs7OzsKK0ZFRDI7QVJBQklDIExFVFRFUiBGRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQxOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBGQTs7OzsKK0ZFRDM7QVJBQklDIExFVFRFUiBGRUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0MTs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBGQTs7OzsKK0ZFRDQ7QVJBQklDIExFVFRFUiBGRUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2NDE7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBGQTs7OzsKK0ZFRDU7QVJBQklDIExFVFRFUiBRQUYgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQyOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFFBRjs7OzsKK0ZFRDY7QVJBQklDIExFVFRFUiBRQUYgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQyOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBRQUY7Ozs7CitGRUQ3O0FSQUJJQyBMRVRURVIgUUFGIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDI7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgUUFGOzs7OworRkVEODtBUkFCSUMgTEVUVEVSIFFBRiBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDY0Mjs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIFFBRjs7OzsKK0ZFRDk7QVJBQklDIExFVFRFUiBLQUYgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQzOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIENBRjs7OzsKK0ZFREE7QVJBQklDIExFVFRFUiBLQUYgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQzOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBDQUY7Ozs7CitGRURCO0FSQUJJQyBMRVRURVIgS0FGIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDM7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgQ0FGOzs7OworRkVEQztBUkFCSUMgTEVUVEVSIEtBRiBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDY0Mzs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIENBRjs7OzsKK0ZFREQ7QVJBQklDIExFVFRFUiBMQU0gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQ0Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIExBTTs7OzsKK0ZFREU7QVJBQklDIExFVFRFUiBMQU0gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ0Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBMQU07Ozs7CitGRURGO0FSQUJJQyBMRVRURVIgTEFNIElOSVRJQUwgRk9STTtMbzswO1I7PGluaXRpYWw+IDA2NDQ7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgTEFNOzs7OworRkVFMDtBUkFCSUMgTEVUVEVSIExBTSBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDY0NDs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIExBTTs7OzsKK0ZFRTE7QVJBQklDIExFVFRFUiBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0NTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBNRUVNOzs7OworRkVFMjtBUkFCSUMgTEVUVEVSIE1FRU0gRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ1Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBNRUVNOzs7OworRkVFMztBUkFCSUMgTEVUVEVSIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0NTs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBNRUVNOzs7OworRkVFNDtBUkFCSUMgTEVUVEVSIE1FRU0gTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2NDU7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBNRUVNOzs7OworRkVFNTtBUkFCSUMgTEVUVEVSIE5PT04gSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQ2Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIE5PT047Ozs7CitGRUU2O0FSQUJJQyBMRVRURVIgTk9PTiBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDY7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIE5PT047Ozs7CitGRUU3O0FSQUJJQyBMRVRURVIgTk9PTiBJTklUSUFMIEZPUk07TG87MDtSOzxpbml0aWFsPiAwNjQ2Ozs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIE5PT047Ozs7CitGRUU4O0FSQUJJQyBMRVRURVIgTk9PTiBNRURJQUwgRk9STTtMbzswO1I7PG1lZGlhbD4gMDY0Njs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIE5PT047Ozs7CitGRUU5O0FSQUJJQyBMRVRURVIgSEVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0Nzs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBIQTs7OzsKK0ZFRUE7QVJBQklDIExFVFRFUiBIRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ3Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBIQTs7OzsKK0ZFRUI7QVJBQklDIExFVFRFUiBIRUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0Nzs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBIQTs7OzsKK0ZFRUM7QVJBQklDIExFVFRFUiBIRUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2NDc7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBIQTs7OzsKK0ZFRUQ7QVJBQklDIExFVFRFUiBXQVcgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQ4Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFdBVzs7OzsKK0ZFRUU7QVJBQklDIExFVFRFUiBXQVcgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ4Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBXQVc7Ozs7CitGRUVGO0FSQUJJQyBMRVRURVIgQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0OTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBBTEVGIE1BUVNVUkFIOzs7OworRkVGMDtBUkFCSUMgTEVUVEVSIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7Ujs8ZmluYWw+IDA2NDk7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEFMRUYgTUFRU1VSQUg7Ozs7CitGRUYxO0FSQUJJQyBMRVRURVIgWUVIIElTT0xBVEVEIEZPUk07TG87MDtSOzxpc29sYXRlZD4gMDY0QTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBZQTs7OzsKK0ZFRjI7QVJBQklDIExFVFRFUiBZRUggRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjRBOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBZQTs7OzsKK0ZFRjM7QVJBQklDIExFVFRFUiBZRUggSU5JVElBTCBGT1JNO0xvOzA7Ujs8aW5pdGlhbD4gMDY0QTs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBZQTs7OzsKK0ZFRjQ7QVJBQklDIExFVFRFUiBZRUggTUVESUFMIEZPUk07TG87MDtSOzxtZWRpYWw+IDA2NEE7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBZQTs7OzsKK0ZFRjU7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEFMRUYgV0lUSCBNQUREQSBBQk9WRSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDQgMDYyMjs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBNQUREQUggT04gTElHQVRVUkUgTEFNIEFMRUY7Ozs7CitGRUY2O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBBTEVGIFdJVEggTUFEREEgQUJPVkUgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ0IDA2MjI7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIE1BRERBSCBPTiBMSUdBVFVSRSBMQU0gQUxFRjs7OzsKK0ZFRjc7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEFMRUYgV0lUSCBIQU1aQSBBQk9WRSBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDQgMDYyMzs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBIQU1aQUggT04gTElHQVRVUkUgTEFNIEFMRUY7Ozs7CitGRUY4O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBBTEVGIFdJVEggSEFNWkEgQUJPVkUgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ0IDA2MjM7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEhBTVpBSCBPTiBMSUdBVFVSRSBMQU0gQUxFRjs7OzsKK0ZFRjk7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEFMRUYgV0lUSCBIQU1aQSBCRUxPVyBJU09MQVRFRCBGT1JNO0xvOzA7Ujs8aXNvbGF0ZWQ+IDA2NDQgMDYyNTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBIQU1aQUggVU5ERVIgTElHQVRVUkUgTEFNIEFMRUY7Ozs7CitGRUZBO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBBTEVGIFdJVEggSEFNWkEgQkVMT1cgRklOQUwgRk9STTtMbzswO1I7PGZpbmFsPiAwNjQ0IDA2MjU7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEhBTVpBSCBVTkRFUiBMSUdBVFVSRSBMQU0gQUxFRjs7OzsKK0ZFRkI7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEFMRUYgSVNPTEFURUQgRk9STTtMbzswO1I7PGlzb2xhdGVkPiAwNjQ0IDA2Mjc7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgTElHQVRVUkUgTEFNIEFMRUY7Ozs7CitGRUZDO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBBTEVGIEZJTkFMIEZPUk07TG87MDtSOzxmaW5hbD4gMDY0NCAwNjI3Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBMSUdBVFVSRSBMQU0gQUxFRjs7OzsKK0ZFRkY7WkVSTyBXSURUSCBOTy1CUkVBSyBTUEFDRTtDZjswO09OOzs7OztOO0JZVEUgT1JERVIgTUFSSzs7OzsKK0ZGMDE7RlVMTFdJRFRIIEVYQ0xBTUFUSU9OIE1BUks7UG87MDtPTjs8d2lkZT4gMDAyMTs7OztOOzs7OzsKK0ZGMDI7RlVMTFdJRFRIIFFVT1RBVElPTiBNQVJLO1BvOzA7T047PHdpZGU+IDAwMjI7Ozs7Tjs7Ozs7CitGRjAzO0ZVTExXSURUSCBOVU1CRVIgU0lHTjtQbzswO0VUOzx3aWRlPiAwMDIzOzs7O047Ozs7OworRkYwNDtGVUxMV0lEVEggRE9MTEFSIFNJR047U2M7MDtFVDs8d2lkZT4gMDAyNDs7OztOOzs7OzsKK0ZGMDU7RlVMTFdJRFRIIFBFUkNFTlQgU0lHTjtQbzswO0VUOzx3aWRlPiAwMDI1Ozs7O047Ozs7OworRkYwNjtGVUxMV0lEVEggQU1QRVJTQU5EO1BvOzA7T047PHdpZGU+IDAwMjY7Ozs7Tjs7Ozs7CitGRjA3O0ZVTExXSURUSCBBUE9TVFJPUEhFO1BvOzA7T047PHdpZGU+IDAwMjc7Ozs7Tjs7Ozs7CitGRjA4O0ZVTExXSURUSCBMRUZUIFBBUkVOVEhFU0lTO1BzOzA7T047PHdpZGU+IDAwMjg7Ozs7TjtGVUxMV0lEVEggT1BFTklORyBQQVJFTlRIRVNJUzs7OzsKK0ZGMDk7RlVMTFdJRFRIIFJJR0hUIFBBUkVOVEhFU0lTO1BlOzA7T047PHdpZGU+IDAwMjk7Ozs7TjtGVUxMV0lEVEggQ0xPU0lORyBQQVJFTlRIRVNJUzs7OzsKK0ZGMEE7RlVMTFdJRFRIIEFTVEVSSVNLO1BvOzA7T047PHdpZGU+IDAwMkE7Ozs7Tjs7Ozs7CitGRjBCO0ZVTExXSURUSCBQTFVTIFNJR047U207MDtFVDs8d2lkZT4gMDAyQjs7OztOOzs7OzsKK0ZGMEM7RlVMTFdJRFRIIENPTU1BO1BvOzA7Q1M7PHdpZGU+IDAwMkM7Ozs7Tjs7Ozs7CitGRjBEO0ZVTExXSURUSCBIWVBIRU4tTUlOVVM7UGQ7MDtFVDs8d2lkZT4gMDAyRDs7OztOOzs7OzsKK0ZGMEU7RlVMTFdJRFRIIEZVTEwgU1RPUDtQbzswO0NTOzx3aWRlPiAwMDJFOzs7O047RlVMTFdJRFRIIFBFUklPRDs7OzsKK0ZGMEY7RlVMTFdJRFRIIFNPTElEVVM7UG87MDtFUzs8d2lkZT4gMDAyRjs7OztOO0ZVTExXSURUSCBTTEFTSDs7OzsKK0ZGMTA7RlVMTFdJRFRIIERJR0lUIFpFUk87TmQ7MDtFTjs8d2lkZT4gMDAzMDswOzA7MDtOOzs7OzsKK0ZGMTE7RlVMTFdJRFRIIERJR0lUIE9ORTtOZDswO0VOOzx3aWRlPiAwMDMxOzE7MTsxO047Ozs7OworRkYxMjtGVUxMV0lEVEggRElHSVQgVFdPO05kOzA7RU47PHdpZGU+IDAwMzI7MjsyOzI7Tjs7Ozs7CitGRjEzO0ZVTExXSURUSCBESUdJVCBUSFJFRTtOZDswO0VOOzx3aWRlPiAwMDMzOzM7MzszO047Ozs7OworRkYxNDtGVUxMV0lEVEggRElHSVQgRk9VUjtOZDswO0VOOzx3aWRlPiAwMDM0OzQ7NDs0O047Ozs7OworRkYxNTtGVUxMV0lEVEggRElHSVQgRklWRTtOZDswO0VOOzx3aWRlPiAwMDM1OzU7NTs1O047Ozs7OworRkYxNjtGVUxMV0lEVEggRElHSVQgU0lYO05kOzA7RU47PHdpZGU+IDAwMzY7Njs2OzY7Tjs7Ozs7CitGRjE3O0ZVTExXSURUSCBESUdJVCBTRVZFTjtOZDswO0VOOzx3aWRlPiAwMDM3Ozc7Nzs3O047Ozs7OworRkYxODtGVUxMV0lEVEggRElHSVQgRUlHSFQ7TmQ7MDtFTjs8d2lkZT4gMDAzODs4Ozg7ODtOOzs7OzsKK0ZGMTk7RlVMTFdJRFRIIERJR0lUIE5JTkU7TmQ7MDtFTjs8d2lkZT4gMDAzOTs5Ozk7OTtOOzs7OzsKK0ZGMUE7RlVMTFdJRFRIIENPTE9OO1BvOzA7Q1M7PHdpZGU+IDAwM0E7Ozs7Tjs7Ozs7CitGRjFCO0ZVTExXSURUSCBTRU1JQ09MT047UG87MDtPTjs8d2lkZT4gMDAzQjs7OztOOzs7OzsKK0ZGMUM7RlVMTFdJRFRIIExFU1MtVEhBTiBTSUdOO1NtOzA7T047PHdpZGU+IDAwM0M7Ozs7Tjs7Ozs7CitGRjFEO0ZVTExXSURUSCBFUVVBTFMgU0lHTjtTbTswO09OOzx3aWRlPiAwMDNEOzs7O047Ozs7OworRkYxRTtGVUxMV0lEVEggR1JFQVRFUi1USEFOIFNJR047U207MDtPTjs8d2lkZT4gMDAzRTs7OztOOzs7OzsKK0ZGMUY7RlVMTFdJRFRIIFFVRVNUSU9OIE1BUks7UG87MDtPTjs8d2lkZT4gMDAzRjs7OztOOzs7OzsKK0ZGMjA7RlVMTFdJRFRIIENPTU1FUkNJQUwgQVQ7UG87MDtPTjs8d2lkZT4gMDA0MDs7OztOOzs7OzsKK0ZGMjE7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEE7THU7MDtMOzx3aWRlPiAwMDQxOzs7O047Ozs7RkY0MTsKK0ZGMjI7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEI7THU7MDtMOzx3aWRlPiAwMDQyOzs7O047Ozs7RkY0MjsKK0ZGMjM7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEM7THU7MDtMOzx3aWRlPiAwMDQzOzs7O047Ozs7RkY0MzsKK0ZGMjQ7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEQ7THU7MDtMOzx3aWRlPiAwMDQ0Ozs7O047Ozs7RkY0NDsKK0ZGMjU7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEU7THU7MDtMOzx3aWRlPiAwMDQ1Ozs7O047Ozs7RkY0NTsKK0ZGMjY7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEY7THU7MDtMOzx3aWRlPiAwMDQ2Ozs7O047Ozs7RkY0NjsKK0ZGMjc7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEc7THU7MDtMOzx3aWRlPiAwMDQ3Ozs7O047Ozs7RkY0NzsKK0ZGMjg7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEg7THU7MDtMOzx3aWRlPiAwMDQ4Ozs7O047Ozs7RkY0ODsKK0ZGMjk7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEk7THU7MDtMOzx3aWRlPiAwMDQ5Ozs7O047Ozs7RkY0OTsKK0ZGMkE7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEo7THU7MDtMOzx3aWRlPiAwMDRBOzs7O047Ozs7RkY0QTsKK0ZGMkI7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEs7THU7MDtMOzx3aWRlPiAwMDRCOzs7O047Ozs7RkY0QjsKK0ZGMkM7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEw7THU7MDtMOzx3aWRlPiAwMDRDOzs7O047Ozs7RkY0QzsKK0ZGMkQ7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIE07THU7MDtMOzx3aWRlPiAwMDREOzs7O047Ozs7RkY0RDsKK0ZGMkU7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIE47THU7MDtMOzx3aWRlPiAwMDRFOzs7O047Ozs7RkY0RTsKK0ZGMkY7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIE87THU7MDtMOzx3aWRlPiAwMDRGOzs7O047Ozs7RkY0RjsKK0ZGMzA7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFA7THU7MDtMOzx3aWRlPiAwMDUwOzs7O047Ozs7RkY1MDsKK0ZGMzE7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFE7THU7MDtMOzx3aWRlPiAwMDUxOzs7O047Ozs7RkY1MTsKK0ZGMzI7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFI7THU7MDtMOzx3aWRlPiAwMDUyOzs7O047Ozs7RkY1MjsKK0ZGMzM7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFM7THU7MDtMOzx3aWRlPiAwMDUzOzs7O047Ozs7RkY1MzsKK0ZGMzQ7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFQ7THU7MDtMOzx3aWRlPiAwMDU0Ozs7O047Ozs7RkY1NDsKK0ZGMzU7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFU7THU7MDtMOzx3aWRlPiAwMDU1Ozs7O047Ozs7RkY1NTsKK0ZGMzY7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFY7THU7MDtMOzx3aWRlPiAwMDU2Ozs7O047Ozs7RkY1NjsKK0ZGMzc7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFc7THU7MDtMOzx3aWRlPiAwMDU3Ozs7O047Ozs7RkY1NzsKK0ZGMzg7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFg7THU7MDtMOzx3aWRlPiAwMDU4Ozs7O047Ozs7RkY1ODsKK0ZGMzk7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFk7THU7MDtMOzx3aWRlPiAwMDU5Ozs7O047Ozs7RkY1OTsKK0ZGM0E7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFo7THU7MDtMOzx3aWRlPiAwMDVBOzs7O047Ozs7RkY1QTsKK0ZGM0I7RlVMTFdJRFRIIExFRlQgU1FVQVJFIEJSQUNLRVQ7UHM7MDtPTjs8d2lkZT4gMDA1Qjs7OztOO0ZVTExXSURUSCBPUEVOSU5HIFNRVUFSRSBCUkFDS0VUOzs7OworRkYzQztGVUxMV0lEVEggUkVWRVJTRSBTT0xJRFVTO1BvOzA7T047PHdpZGU+IDAwNUM7Ozs7TjtGVUxMV0lEVEggQkFDS1NMQVNIOzs7OworRkYzRDtGVUxMV0lEVEggUklHSFQgU1FVQVJFIEJSQUNLRVQ7UGU7MDtPTjs8d2lkZT4gMDA1RDs7OztOO0ZVTExXSURUSCBDTE9TSU5HIFNRVUFSRSBCUkFDS0VUOzs7OworRkYzRTtGVUxMV0lEVEggQ0lSQ1VNRkxFWCBBQ0NFTlQ7U2s7MDtPTjs8d2lkZT4gMDA1RTs7OztOO0ZVTExXSURUSCBTUEFDSU5HIENJUkNVTUZMRVg7Ozs7CitGRjNGO0ZVTExXSURUSCBMT1cgTElORTtQYzswO09OOzx3aWRlPiAwMDVGOzs7O047RlVMTFdJRFRIIFNQQUNJTkcgVU5ERVJTQ09SRTs7OzsKK0ZGNDA7RlVMTFdJRFRIIEdSQVZFIEFDQ0VOVDtTazswO09OOzx3aWRlPiAwMDYwOzs7O047RlVMTFdJRFRIIFNQQUNJTkcgR1JBVkU7Ozs7CitGRjQxO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgQTtMbDswO0w7PHdpZGU+IDAwNjE7Ozs7Tjs7O0ZGMjE7O0ZGMjEKK0ZGNDI7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBCO0xsOzA7TDs8d2lkZT4gMDA2Mjs7OztOOzs7RkYyMjs7RkYyMgorRkY0MztGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEM7TGw7MDtMOzx3aWRlPiAwMDYzOzs7O047OztGRjIzOztGRjIzCitGRjQ0O0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgRDtMbDswO0w7PHdpZGU+IDAwNjQ7Ozs7Tjs7O0ZGMjQ7O0ZGMjQKK0ZGNDU7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBFO0xsOzA7TDs8d2lkZT4gMDA2NTs7OztOOzs7RkYyNTs7RkYyNQorRkY0NjtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEY7TGw7MDtMOzx3aWRlPiAwMDY2Ozs7O047OztGRjI2OztGRjI2CitGRjQ3O0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgRztMbDswO0w7PHdpZGU+IDAwNjc7Ozs7Tjs7O0ZGMjc7O0ZGMjcKK0ZGNDg7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBIO0xsOzA7TDs8d2lkZT4gMDA2ODs7OztOOzs7RkYyODs7RkYyOAorRkY0OTtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEk7TGw7MDtMOzx3aWRlPiAwMDY5Ozs7O047OztGRjI5OztGRjI5CitGRjRBO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgSjtMbDswO0w7PHdpZGU+IDAwNkE7Ozs7Tjs7O0ZGMkE7O0ZGMkEKK0ZGNEI7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBLO0xsOzA7TDs8d2lkZT4gMDA2Qjs7OztOOzs7RkYyQjs7RkYyQgorRkY0QztGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEw7TGw7MDtMOzx3aWRlPiAwMDZDOzs7O047OztGRjJDOztGRjJDCitGRjREO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgTTtMbDswO0w7PHdpZGU+IDAwNkQ7Ozs7Tjs7O0ZGMkQ7O0ZGMkQKK0ZGNEU7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBOO0xsOzA7TDs8d2lkZT4gMDA2RTs7OztOOzs7RkYyRTs7RkYyRQorRkY0RjtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIE87TGw7MDtMOzx3aWRlPiAwMDZGOzs7O047OztGRjJGOztGRjJGCitGRjUwO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgUDtMbDswO0w7PHdpZGU+IDAwNzA7Ozs7Tjs7O0ZGMzA7O0ZGMzAKK0ZGNTE7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBRO0xsOzA7TDs8d2lkZT4gMDA3MTs7OztOOzs7RkYzMTs7RkYzMQorRkY1MjtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIFI7TGw7MDtMOzx3aWRlPiAwMDcyOzs7O047OztGRjMyOztGRjMyCitGRjUzO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgUztMbDswO0w7PHdpZGU+IDAwNzM7Ozs7Tjs7O0ZGMzM7O0ZGMzMKK0ZGNTQ7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBUO0xsOzA7TDs8d2lkZT4gMDA3NDs7OztOOzs7RkYzNDs7RkYzNAorRkY1NTtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIFU7TGw7MDtMOzx3aWRlPiAwMDc1Ozs7O047OztGRjM1OztGRjM1CitGRjU2O0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgVjtMbDswO0w7PHdpZGU+IDAwNzY7Ozs7Tjs7O0ZGMzY7O0ZGMzYKK0ZGNTc7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBXO0xsOzA7TDs8d2lkZT4gMDA3Nzs7OztOOzs7RkYzNzs7RkYzNworRkY1ODtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIFg7TGw7MDtMOzx3aWRlPiAwMDc4Ozs7O047OztGRjM4OztGRjM4CitGRjU5O0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgWTtMbDswO0w7PHdpZGU+IDAwNzk7Ozs7Tjs7O0ZGMzk7O0ZGMzkKK0ZGNUE7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBaO0xsOzA7TDs8d2lkZT4gMDA3QTs7OztOOzs7RkYzQTs7RkYzQQorRkY1QjtGVUxMV0lEVEggTEVGVCBDVVJMWSBCUkFDS0VUO1BzOzA7T047PHdpZGU+IDAwN0I7Ozs7TjtGVUxMV0lEVEggT1BFTklORyBDVVJMWSBCUkFDS0VUOzs7OworRkY1QztGVUxMV0lEVEggVkVSVElDQUwgTElORTtTbTswO09OOzx3aWRlPiAwMDdDOzs7O047RlVMTFdJRFRIIFZFUlRJQ0FMIEJBUjs7OzsKK0ZGNUQ7RlVMTFdJRFRIIFJJR0hUIENVUkxZIEJSQUNLRVQ7UGU7MDtPTjs8d2lkZT4gMDA3RDs7OztOO0ZVTExXSURUSCBDTE9TSU5HIENVUkxZIEJSQUNLRVQ7Ozs7CitGRjVFO0ZVTExXSURUSCBUSUxERTtTbTswO09OOzx3aWRlPiAwMDdFOzs7O047RlVMTFdJRFRIIFNQQUNJTkcgVElMREU7Ozs7CitGRjYxO0hBTEZXSURUSCBJREVPR1JBUEhJQyBGVUxMIFNUT1A7UG87MDtPTjs8bmFycm93PiAzMDAyOzs7O047SEFMRldJRFRIIElERU9HUkFQSElDIFBFUklPRDs7OzsKK0ZGNjI7SEFMRldJRFRIIExFRlQgQ09STkVSIEJSQUNLRVQ7UHM7MDtPTjs8bmFycm93PiAzMDBDOzs7O047SEFMRldJRFRIIE9QRU5JTkcgQ09STkVSIEJSQUNLRVQ7Ozs7CitGRjYzO0hBTEZXSURUSCBSSUdIVCBDT1JORVIgQlJBQ0tFVDtQZTswO09OOzxuYXJyb3c+IDMwMEQ7Ozs7TjtIQUxGV0lEVEggQ0xPU0lORyBDT1JORVIgQlJBQ0tFVDs7OzsKK0ZGNjQ7SEFMRldJRFRIIElERU9HUkFQSElDIENPTU1BO1BvOzA7T047PG5hcnJvdz4gMzAwMTs7OztOOzs7OzsKK0ZGNjU7SEFMRldJRFRIIEtBVEFLQU5BIE1JRERMRSBET1Q7UGM7MDtMOzxuYXJyb3c+IDMwRkI7Ozs7Tjs7Ozs7CitGRjY2O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgV087TG87MDtMOzxuYXJyb3c+IDMwRjI7Ozs7Tjs7Ozs7CitGRjY3O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU01BTEwgQTtMbzswO0w7PG5hcnJvdz4gMzBBMTs7OztOOzs7OzsKK0ZGNjg7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTUFMTCBJO0xvOzA7TDs8bmFycm93PiAzMEEzOzs7O047Ozs7OworRkY2OTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFNNQUxMIFU7TG87MDtMOzxuYXJyb3c+IDMwQTU7Ozs7Tjs7Ozs7CitGRjZBO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU01BTEwgRTtMbzswO0w7PG5hcnJvdz4gMzBBNzs7OztOOzs7OzsKK0ZGNkI7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTUFMTCBPO0xvOzA7TDs8bmFycm93PiAzMEE5Ozs7O047Ozs7OworRkY2QztIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFNNQUxMIFlBO0xvOzA7TDs8bmFycm93PiAzMEUzOzs7O047Ozs7OworRkY2RDtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFNNQUxMIFlVO0xvOzA7TDs8bmFycm93PiAzMEU1Ozs7O047Ozs7OworRkY2RTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFNNQUxMIFlPO0xvOzA7TDs8bmFycm93PiAzMEU3Ozs7O047Ozs7OworRkY2RjtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFNNQUxMIFRVO0xvOzA7TDs8bmFycm93PiAzMEMzOzs7O047Ozs7OworRkY3MDtIQUxGV0lEVEggS0FUQUtBTkEtSElSQUdBTkEgUFJPTE9OR0VEIFNPVU5EIE1BUks7TG07MDtMOzxuYXJyb3c+IDMwRkM7Ozs7Tjs7Ozs7CitGRjcxO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgQTtMbzswO0w7PG5hcnJvdz4gMzBBMjs7OztOOzs7OzsKK0ZGNzI7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBJO0xvOzA7TDs8bmFycm93PiAzMEE0Ozs7O047Ozs7OworRkY3MztIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFU7TG87MDtMOzxuYXJyb3c+IDMwQTY7Ozs7Tjs7Ozs7CitGRjc0O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgRTtMbzswO0w7PG5hcnJvdz4gMzBBODs7OztOOzs7OzsKK0ZGNzU7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBPO0xvOzA7TDs8bmFycm93PiAzMEFBOzs7O047Ozs7OworRkY3NjtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIEtBO0xvOzA7TDs8bmFycm93PiAzMEFCOzs7O047Ozs7OworRkY3NztIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIEtJO0xvOzA7TDs8bmFycm93PiAzMEFEOzs7O047Ozs7OworRkY3ODtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIEtVO0xvOzA7TDs8bmFycm93PiAzMEFGOzs7O047Ozs7OworRkY3OTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIEtFO0xvOzA7TDs8bmFycm93PiAzMEIxOzs7O047Ozs7OworRkY3QTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIEtPO0xvOzA7TDs8bmFycm93PiAzMEIzOzs7O047Ozs7OworRkY3QjtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFNBO0xvOzA7TDs8bmFycm93PiAzMEI1Ozs7O047Ozs7OworRkY3QztIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFNJO0xvOzA7TDs8bmFycm93PiAzMEI3Ozs7O047Ozs7OworRkY3RDtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFNVO0xvOzA7TDs8bmFycm93PiAzMEI5Ozs7O047Ozs7OworRkY3RTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFNFO0xvOzA7TDs8bmFycm93PiAzMEJCOzs7O047Ozs7OworRkY3RjtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFNPO0xvOzA7TDs8bmFycm93PiAzMEJEOzs7O047Ozs7OworRkY4MDtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFRBO0xvOzA7TDs8bmFycm93PiAzMEJGOzs7O047Ozs7OworRkY4MTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFRJO0xvOzA7TDs8bmFycm93PiAzMEMxOzs7O047Ozs7OworRkY4MjtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFRVO0xvOzA7TDs8bmFycm93PiAzMEM0Ozs7O047Ozs7OworRkY4MztIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFRFO0xvOzA7TDs8bmFycm93PiAzMEM2Ozs7O047Ozs7OworRkY4NDtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFRPO0xvOzA7TDs8bmFycm93PiAzMEM4Ozs7O047Ozs7OworRkY4NTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIE5BO0xvOzA7TDs8bmFycm93PiAzMENBOzs7O047Ozs7OworRkY4NjtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIE5JO0xvOzA7TDs8bmFycm93PiAzMENCOzs7O047Ozs7OworRkY4NztIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIE5VO0xvOzA7TDs8bmFycm93PiAzMENDOzs7O047Ozs7OworRkY4ODtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIE5FO0xvOzA7TDs8bmFycm93PiAzMENEOzs7O047Ozs7OworRkY4OTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIE5PO0xvOzA7TDs8bmFycm93PiAzMENFOzs7O047Ozs7OworRkY4QTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIEhBO0xvOzA7TDs8bmFycm93PiAzMENGOzs7O047Ozs7OworRkY4QjtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIEhJO0xvOzA7TDs8bmFycm93PiAzMEQyOzs7O047Ozs7OworRkY4QztIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIEhVO0xvOzA7TDs8bmFycm93PiAzMEQ1Ozs7O047Ozs7OworRkY4RDtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIEhFO0xvOzA7TDs8bmFycm93PiAzMEQ4Ozs7O047Ozs7OworRkY4RTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIEhPO0xvOzA7TDs8bmFycm93PiAzMERCOzs7O047Ozs7OworRkY4RjtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIE1BO0xvOzA7TDs8bmFycm93PiAzMERFOzs7O047Ozs7OworRkY5MDtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIE1JO0xvOzA7TDs8bmFycm93PiAzMERGOzs7O047Ozs7OworRkY5MTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIE1VO0xvOzA7TDs8bmFycm93PiAzMEUwOzs7O047Ozs7OworRkY5MjtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIE1FO0xvOzA7TDs8bmFycm93PiAzMEUxOzs7O047Ozs7OworRkY5MztIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIE1PO0xvOzA7TDs8bmFycm93PiAzMEUyOzs7O047Ozs7OworRkY5NDtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFlBO0xvOzA7TDs8bmFycm93PiAzMEU0Ozs7O047Ozs7OworRkY5NTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFlVO0xvOzA7TDs8bmFycm93PiAzMEU2Ozs7O047Ozs7OworRkY5NjtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFlPO0xvOzA7TDs8bmFycm93PiAzMEU4Ozs7O047Ozs7OworRkY5NztIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFJBO0xvOzA7TDs8bmFycm93PiAzMEU5Ozs7O047Ozs7OworRkY5ODtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFJJO0xvOzA7TDs8bmFycm93PiAzMEVBOzs7O047Ozs7OworRkY5OTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFJVO0xvOzA7TDs8bmFycm93PiAzMEVCOzs7O047Ozs7OworRkY5QTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFJFO0xvOzA7TDs8bmFycm93PiAzMEVDOzs7O047Ozs7OworRkY5QjtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFJPO0xvOzA7TDs8bmFycm93PiAzMEVEOzs7O047Ozs7OworRkY5QztIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFdBO0xvOzA7TDs8bmFycm93PiAzMEVGOzs7O047Ozs7OworRkY5RDtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIE47TG87MDtMOzxuYXJyb3c+IDMwRjM7Ozs7Tjs7Ozs7CitGRjlFO0hBTEZXSURUSCBLQVRBS0FOQSBWT0lDRUQgU09VTkQgTUFSSztMbTswO09OOzxuYXJyb3c+IDMwOTk7Ozs7Tjs7Ozs7CitGRjlGO0hBTEZXSURUSCBLQVRBS0FOQSBTRU1JLVZPSUNFRCBTT1VORCBNQVJLO0xtOzA7T047PG5hcnJvdz4gMzA5QTs7OztOOzs7OzsKK0ZGQTA7SEFMRldJRFRIIEhBTkdVTCBGSUxMRVI7TG87MDtMOzxuYXJyb3c+IDMxNjQ7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIENBRSBPTTs7OzsKK0ZGQTE7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgS0lZRU9LO0xvOzA7TDs8bmFycm93PiAzMTMxOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgR0lZRU9HOzs7OworRkZBMjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBTU0FOR0tJWUVPSztMbzswO0w7PG5hcnJvdz4gMzEzMjs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFNTQU5HIEdJWUVPRzs7OzsKK0ZGQTM7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgS0lZRU9LLVNJT1M7TG87MDtMOzxuYXJyb3c+IDMxMzM7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBHSVlFT0cgU0lPUzs7OzsKK0ZGQTQ7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTklFVU47TG87MDtMOzxuYXJyb3c+IDMxMzQ7Ozs7Tjs7Ozs7CitGRkE1O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIE5JRVVOLUNJRVVDO0xvOzA7TDs8bmFycm93PiAzMTM1Ozs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTklFVU4gSklFVUo7Ozs7CitGRkE2O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIE5JRVVOLUhJRVVIO0xvOzA7TDs8bmFycm93PiAzMTM2Ozs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTklFVU4gSElFVUg7Ozs7CitGRkE3O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFRJS0VVVDtMbzswO0w7PG5hcnJvdz4gMzEzNzs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIERJR0VVRDs7OzsKK0ZGQTg7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU1NBTkdUSUtFVVQ7TG87MDtMOzxuYXJyb3c+IDMxMzg7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBTU0FORyBESUdFVUQ7Ozs7CitGRkE5O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFJJRVVMO0xvOzA7TDs8bmFycm93PiAzMTM5Ozs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTElFVUw7Ozs7CitGRkFBO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFJJRVVMLUtJWUVPSztMbzswO0w7PG5hcnJvdz4gMzEzQTs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIExJRVVMIEdJWUVPRzs7OzsKK0ZGQUI7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUklFVUwtTUlFVU07TG87MDtMOzxuYXJyb3c+IDMxM0I7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBMSUVVTCBNSUVVTTs7OzsKK0ZGQUM7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUklFVUwtUElFVVA7TG87MDtMOzxuYXJyb3c+IDMxM0M7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBMSUVVTCBCSUVVQjs7OzsKK0ZGQUQ7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUklFVUwtU0lPUztMbzswO0w7PG5hcnJvdz4gMzEzRDs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIExJRVVMIFNJT1M7Ozs7CitGRkFFO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFJJRVVMLVRISUVVVEg7TG87MDtMOzxuYXJyb3c+IDMxM0U7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBMSUVVTCBUSUVVVDs7OzsKK0ZGQUY7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUklFVUwtUEhJRVVQSDtMbzswO0w7PG5hcnJvdz4gMzEzRjs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIExJRVVMIFBJRVVQOzs7OworRkZCMDtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBSSUVVTC1ISUVVSDtMbzswO0w7PG5hcnJvdz4gMzE0MDs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIExJRVVMIEhJRVVIOzs7OworRkZCMTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBNSUVVTTtMbzswO0w7PG5hcnJvdz4gMzE0MTs7OztOOzs7OzsKK0ZGQjI7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUElFVVA7TG87MDtMOzxuYXJyb3c+IDMxNDI7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBCSUVVQjs7OzsKK0ZGQjM7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU1NBTkdQSUVVUDtMbzswO0w7PG5hcnJvdz4gMzE0Mzs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFNTQU5HIEJJRVVCOzs7OworRkZCNDtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBQSUVVUC1TSU9TO0xvOzA7TDs8bmFycm93PiAzMTQ0Ozs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgQklFVUIgU0lPUzs7OzsKK0ZGQjU7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU0lPUztMbzswO0w7PG5hcnJvdz4gMzE0NTs7OztOOzs7OzsKK0ZGQjY7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU1NBTkdTSU9TO0xvOzA7TDs8bmFycm93PiAzMTQ2Ozs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU1NBTkcgU0lPUzs7OzsKK0ZGQjc7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgSUVVTkc7TG87MDtMOzxuYXJyb3c+IDMxNDc7Ozs7Tjs7Ozs7CitGRkI4O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIENJRVVDO0xvOzA7TDs8bmFycm93PiAzMTQ4Ozs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgSklFVUo7Ozs7CitGRkI5O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFNTQU5HQ0lFVUM7TG87MDtMOzxuYXJyb3c+IDMxNDk7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBTU0FORyBKSUVVSjs7OzsKK0ZGQkE7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgQ0hJRVVDSDtMbzswO0w7PG5hcnJvdz4gMzE0QTs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIENJRVVDOzs7OworRkZCQjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBLSElFVUtIO0xvOzA7TDs8bmFycm93PiAzMTRCOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgS0lZRU9LOzs7OworRkZCQztIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBUSElFVVRIO0xvOzA7TDs8bmFycm93PiAzMTRDOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgVElFVVQ7Ozs7CitGRkJEO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFBISUVVUEg7TG87MDtMOzxuYXJyb3c+IDMxNEQ7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBQSUVVUDs7OzsKK0ZGQkU7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgSElFVUg7TG87MDtMOzxuYXJyb3c+IDMxNEU7Ozs7Tjs7Ozs7CitGRkMyO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEE7TG87MDtMOzxuYXJyb3c+IDMxNEY7Ozs7Tjs7Ozs7CitGRkMzO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEFFO0xvOzA7TDs8bmFycm93PiAzMTUwOzs7O047Ozs7OworRkZDNDtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBZQTtMbzswO0w7PG5hcnJvdz4gMzE1MTs7OztOOzs7OzsKK0ZGQzU7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgWUFFO0xvOzA7TDs8bmFycm93PiAzMTUyOzs7O047Ozs7OworRkZDNjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBFTztMbzswO0w7PG5hcnJvdz4gMzE1Mzs7OztOOzs7OzsKK0ZGQzc7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgRTtMbzswO0w7PG5hcnJvdz4gMzE1NDs7OztOOzs7OzsKK0ZGQ0E7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgWUVPO0xvOzA7TDs8bmFycm93PiAzMTU1Ozs7O047Ozs7OworRkZDQjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBZRTtMbzswO0w7PG5hcnJvdz4gMzE1Njs7OztOOzs7OzsKK0ZGQ0M7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTztMbzswO0w7PG5hcnJvdz4gMzE1Nzs7OztOOzs7OzsKK0ZGQ0Q7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgV0E7TG87MDtMOzxuYXJyb3c+IDMxNTg7Ozs7Tjs7Ozs7CitGRkNFO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFdBRTtMbzswO0w7PG5hcnJvdz4gMzE1OTs7OztOOzs7OzsKK0ZGQ0Y7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgT0U7TG87MDtMOzxuYXJyb3c+IDMxNUE7Ozs7Tjs7Ozs7CitGRkQyO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFlPO0xvOzA7TDs8bmFycm93PiAzMTVCOzs7O047Ozs7OworRkZEMztIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBVO0xvOzA7TDs8bmFycm93PiAzMTVDOzs7O047Ozs7OworRkZENDtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBXRU87TG87MDtMOzxuYXJyb3c+IDMxNUQ7Ozs7Tjs7Ozs7CitGRkQ1O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFdFO0xvOzA7TDs8bmFycm93PiAzMTVFOzs7O047Ozs7OworRkZENjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBXSTtMbzswO0w7PG5hcnJvdz4gMzE1Rjs7OztOOzs7OzsKK0ZGRDc7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgWVU7TG87MDtMOzxuYXJyb3c+IDMxNjA7Ozs7Tjs7Ozs7CitGRkRBO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEVVO0xvOzA7TDs8bmFycm93PiAzMTYxOzs7O047Ozs7OworRkZEQjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBZSTtMbzswO0w7PG5hcnJvdz4gMzE2Mjs7OztOOzs7OzsKK0ZGREM7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgSTtMbzswO0w7PG5hcnJvdz4gMzE2Mzs7OztOOzs7OzsKK0ZGRTA7RlVMTFdJRFRIIENFTlQgU0lHTjtTYzswO0VUOzx3aWRlPiAwMEEyOzs7O047Ozs7OworRkZFMTtGVUxMV0lEVEggUE9VTkQgU0lHTjtTYzswO0VUOzx3aWRlPiAwMEEzOzs7O047Ozs7OworRkZFMjtGVUxMV0lEVEggTk9UIFNJR047U207MDtPTjs8d2lkZT4gMDBBQzs7OztOOzs7OzsKK0ZGRTM7RlVMTFdJRFRIIE1BQ1JPTjtTazswO09OOzx3aWRlPiAwMEFGOzs7O047RlVMTFdJRFRIIFNQQUNJTkcgTUFDUk9OOzs7OworRkZFNDtGVUxMV0lEVEggQlJPS0VOIEJBUjtTbzswO09OOzx3aWRlPiAwMEE2Ozs7O047RlVMTFdJRFRIIEJST0tFTiBWRVJUSUNBTCBCQVI7Ozs7CitGRkU1O0ZVTExXSURUSCBZRU4gU0lHTjtTYzswO0VUOzx3aWRlPiAwMEE1Ozs7O047Ozs7OworRkZFNjtGVUxMV0lEVEggV09OIFNJR047U2M7MDtFVDs8d2lkZT4gMjBBOTs7OztOOzs7OzsKK0ZGRTg7SEFMRldJRFRIIEZPUk1TIExJR0hUIFZFUlRJQ0FMO1NtOzA7T047PG5hcnJvdz4gMjUwMjs7OztOOzs7OzsKK0ZGRTk7SEFMRldJRFRIIExFRlRXQVJEUyBBUlJPVztTbTswO09OOzxuYXJyb3c+IDIxOTA7Ozs7Tjs7Ozs7CitGRkVBO0hBTEZXSURUSCBVUFdBUkRTIEFSUk9XO1NtOzA7T047PG5hcnJvdz4gMjE5MTs7OztOOzs7OzsKK0ZGRUI7SEFMRldJRFRIIFJJR0hUV0FSRFMgQVJST1c7U207MDtPTjs8bmFycm93PiAyMTkyOzs7O047Ozs7OworRkZFQztIQUxGV0lEVEggRE9XTldBUkRTIEFSUk9XO1NtOzA7T047PG5hcnJvdz4gMjE5Mzs7OztOOzs7OzsKK0ZGRUQ7SEFMRldJRFRIIEJMQUNLIFNRVUFSRTtTbzswO09OOzxuYXJyb3c+IDI1QTA7Ozs7Tjs7Ozs7CitGRkVFO0hBTEZXSURUSCBXSElURSBDSVJDTEU7U287MDtPTjs8bmFycm93PiAyNUNCOzs7O047Ozs7OworRkZGQztPQkpFQ1QgUkVQTEFDRU1FTlQgQ0hBUkFDVEVSO1NvOzA7T047Ozs7O047Ozs7OworRkZGRDtSRVBMQUNFTUVOVCBDSEFSQUNURVI7U287MDtPTjs7Ozs7Tjs7Ozs7CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9Vbmljb2RlRGF0YS0zLjAuMC50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9Vbmljb2RlRGF0YS0zLjAuMC50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmE1NGQzZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL1VuaWNvZGVEYXRhLTMuMC4wLnR4dApAQCAtMCwwICsxLDEwNjE3IEBACiswMDAwOzxjb250cm9sPjtDYzswO0JOOzs7OztOO05VTEw7Ozs7CiswMDAxOzxjb250cm9sPjtDYzswO0JOOzs7OztOO1NUQVJUIE9GIEhFQURJTkc7Ozs7CiswMDAyOzxjb250cm9sPjtDYzswO0JOOzs7OztOO1NUQVJUIE9GIFRFWFQ7Ozs7CiswMDAzOzxjb250cm9sPjtDYzswO0JOOzs7OztOO0VORCBPRiBURVhUOzs7OworMDAwNDs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtFTkQgT0YgVFJBTlNNSVNTSU9OOzs7OworMDAwNTs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtFTlFVSVJZOzs7OworMDAwNjs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtBQ0tOT1dMRURHRTs7OzsKKzAwMDc7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047QkVMTDs7OzsKKzAwMDg7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047QkFDS1NQQUNFOzs7OworMDAwOTs8Y29udHJvbD47Q2M7MDtTOzs7OztOO0hPUklaT05UQUwgVEFCVUxBVElPTjs7OzsKKzAwMEE7PGNvbnRyb2w+O0NjOzA7Qjs7Ozs7TjtMSU5FIEZFRUQ7Ozs7CiswMDBCOzxjb250cm9sPjtDYzswO1M7Ozs7O047VkVSVElDQUwgVEFCVUxBVElPTjs7OzsKKzAwMEM7PGNvbnRyb2w+O0NjOzA7V1M7Ozs7O047Rk9STSBGRUVEOzs7OworMDAwRDs8Y29udHJvbD47Q2M7MDtCOzs7OztOO0NBUlJJQUdFIFJFVFVSTjs7OzsKKzAwMEU7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047U0hJRlQgT1VUOzs7OworMDAwRjs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtTSElGVCBJTjs7OzsKKzAwMTA7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047REFUQSBMSU5LIEVTQ0FQRTs7OzsKKzAwMTE7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047REVWSUNFIENPTlRST0wgT05FOzs7OworMDAxMjs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtERVZJQ0UgQ09OVFJPTCBUV087Ozs7CiswMDEzOzxjb250cm9sPjtDYzswO0JOOzs7OztOO0RFVklDRSBDT05UUk9MIFRIUkVFOzs7OworMDAxNDs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtERVZJQ0UgQ09OVFJPTCBGT1VSOzs7OworMDAxNTs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtORUdBVElWRSBBQ0tOT1dMRURHRTs7OzsKKzAwMTY7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047U1lOQ0hST05PVVMgSURMRTs7OzsKKzAwMTc7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047RU5EIE9GIFRSQU5TTUlTU0lPTiBCTE9DSzs7OzsKKzAwMTg7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047Q0FOQ0VMOzs7OworMDAxOTs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtFTkQgT0YgTUVESVVNOzs7OworMDAxQTs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtTVUJTVElUVVRFOzs7OworMDAxQjs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtFU0NBUEU7Ozs7CiswMDFDOzxjb250cm9sPjtDYzswO0I7Ozs7O047RklMRSBTRVBBUkFUT1I7Ozs7CiswMDFEOzxjb250cm9sPjtDYzswO0I7Ozs7O047R1JPVVAgU0VQQVJBVE9SOzs7OworMDAxRTs8Y29udHJvbD47Q2M7MDtCOzs7OztOO1JFQ09SRCBTRVBBUkFUT1I7Ozs7CiswMDFGOzxjb250cm9sPjtDYzswO1M7Ozs7O047VU5JVCBTRVBBUkFUT1I7Ozs7CiswMDIwO1NQQUNFO1pzOzA7V1M7Ozs7O047Ozs7OworMDAyMTtFWENMQU1BVElPTiBNQVJLO1BvOzA7T047Ozs7O047Ozs7OworMDAyMjtRVU9UQVRJT04gTUFSSztQbzswO09OOzs7OztOOzs7OzsKKzAwMjM7TlVNQkVSIFNJR047UG87MDtFVDs7Ozs7Tjs7Ozs7CiswMDI0O0RPTExBUiBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMDAyNTtQRVJDRU5UIFNJR047UG87MDtFVDs7Ozs7Tjs7Ozs7CiswMDI2O0FNUEVSU0FORDtQbzswO09OOzs7OztOOzs7OzsKKzAwMjc7QVBPU1RST1BIRTtQbzswO09OOzs7OztOO0FQT1NUUk9QSEUtUVVPVEU7Ozs7CiswMDI4O0xFRlQgUEFSRU5USEVTSVM7UHM7MDtPTjs7Ozs7WTtPUEVOSU5HIFBBUkVOVEhFU0lTOzs7OworMDAyOTtSSUdIVCBQQVJFTlRIRVNJUztQZTswO09OOzs7OztZO0NMT1NJTkcgUEFSRU5USEVTSVM7Ozs7CiswMDJBO0FTVEVSSVNLO1BvOzA7T047Ozs7O047Ozs7OworMDAyQjtQTFVTIFNJR047U207MDtFVDs7Ozs7Tjs7Ozs7CiswMDJDO0NPTU1BO1BvOzA7Q1M7Ozs7O047Ozs7OworMDAyRDtIWVBIRU4tTUlOVVM7UGQ7MDtFVDs7Ozs7Tjs7Ozs7CiswMDJFO0ZVTEwgU1RPUDtQbzswO0NTOzs7OztOO1BFUklPRDs7OzsKKzAwMkY7U09MSURVUztQbzswO0VTOzs7OztOO1NMQVNIOzs7OworMDAzMDtESUdJVCBaRVJPO05kOzA7RU47OzA7MDswO047Ozs7OworMDAzMTtESUdJVCBPTkU7TmQ7MDtFTjs7MTsxOzE7Tjs7Ozs7CiswMDMyO0RJR0lUIFRXTztOZDswO0VOOzsyOzI7MjtOOzs7OzsKKzAwMzM7RElHSVQgVEhSRUU7TmQ7MDtFTjs7MzszOzM7Tjs7Ozs7CiswMDM0O0RJR0lUIEZPVVI7TmQ7MDtFTjs7NDs0OzQ7Tjs7Ozs7CiswMDM1O0RJR0lUIEZJVkU7TmQ7MDtFTjs7NTs1OzU7Tjs7Ozs7CiswMDM2O0RJR0lUIFNJWDtOZDswO0VOOzs2OzY7NjtOOzs7OzsKKzAwMzc7RElHSVQgU0VWRU47TmQ7MDtFTjs7Nzs3Ozc7Tjs7Ozs7CiswMDM4O0RJR0lUIEVJR0hUO05kOzA7RU47Ozg7ODs4O047Ozs7OworMDAzOTtESUdJVCBOSU5FO05kOzA7RU47Ozk7OTs5O047Ozs7OworMDAzQTtDT0xPTjtQbzswO0NTOzs7OztOOzs7OzsKKzAwM0I7U0VNSUNPTE9OO1BvOzA7T047Ozs7O047Ozs7OworMDAzQztMRVNTLVRIQU4gU0lHTjtTbTswO09OOzs7OztZOzs7OzsKKzAwM0Q7RVFVQUxTIFNJR047U207MDtPTjs7Ozs7Tjs7Ozs7CiswMDNFO0dSRUFURVItVEhBTiBTSUdOO1NtOzA7T047Ozs7O1k7Ozs7OworMDAzRjtRVUVTVElPTiBNQVJLO1BvOzA7T047Ozs7O047Ozs7OworMDA0MDtDT01NRVJDSUFMIEFUO1BvOzA7T047Ozs7O047Ozs7OworMDA0MTtMQVRJTiBDQVBJVEFMIExFVFRFUiBBO0x1OzA7TDs7Ozs7Tjs7OzswMDYxOworMDA0MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBCO0x1OzA7TDs7Ozs7Tjs7OzswMDYyOworMDA0MztMQVRJTiBDQVBJVEFMIExFVFRFUiBDO0x1OzA7TDs7Ozs7Tjs7OzswMDYzOworMDA0NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBEO0x1OzA7TDs7Ozs7Tjs7OzswMDY0OworMDA0NTtMQVRJTiBDQVBJVEFMIExFVFRFUiBFO0x1OzA7TDs7Ozs7Tjs7OzswMDY1OworMDA0NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBGO0x1OzA7TDs7Ozs7Tjs7OzswMDY2OworMDA0NztMQVRJTiBDQVBJVEFMIExFVFRFUiBHO0x1OzA7TDs7Ozs7Tjs7OzswMDY3OworMDA0ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBIO0x1OzA7TDs7Ozs7Tjs7OzswMDY4OworMDA0OTtMQVRJTiBDQVBJVEFMIExFVFRFUiBJO0x1OzA7TDs7Ozs7Tjs7OzswMDY5OworMDA0QTtMQVRJTiBDQVBJVEFMIExFVFRFUiBKO0x1OzA7TDs7Ozs7Tjs7OzswMDZBOworMDA0QjtMQVRJTiBDQVBJVEFMIExFVFRFUiBLO0x1OzA7TDs7Ozs7Tjs7OzswMDZCOworMDA0QztMQVRJTiBDQVBJVEFMIExFVFRFUiBMO0x1OzA7TDs7Ozs7Tjs7OzswMDZDOworMDA0RDtMQVRJTiBDQVBJVEFMIExFVFRFUiBNO0x1OzA7TDs7Ozs7Tjs7OzswMDZEOworMDA0RTtMQVRJTiBDQVBJVEFMIExFVFRFUiBOO0x1OzA7TDs7Ozs7Tjs7OzswMDZFOworMDA0RjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPO0x1OzA7TDs7Ozs7Tjs7OzswMDZGOworMDA1MDtMQVRJTiBDQVBJVEFMIExFVFRFUiBQO0x1OzA7TDs7Ozs7Tjs7OzswMDcwOworMDA1MTtMQVRJTiBDQVBJVEFMIExFVFRFUiBRO0x1OzA7TDs7Ozs7Tjs7OzswMDcxOworMDA1MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBSO0x1OzA7TDs7Ozs7Tjs7OzswMDcyOworMDA1MztMQVRJTiBDQVBJVEFMIExFVFRFUiBTO0x1OzA7TDs7Ozs7Tjs7OzswMDczOworMDA1NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBUO0x1OzA7TDs7Ozs7Tjs7OzswMDc0OworMDA1NTtMQVRJTiBDQVBJVEFMIExFVFRFUiBVO0x1OzA7TDs7Ozs7Tjs7OzswMDc1OworMDA1NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBWO0x1OzA7TDs7Ozs7Tjs7OzswMDc2OworMDA1NztMQVRJTiBDQVBJVEFMIExFVFRFUiBXO0x1OzA7TDs7Ozs7Tjs7OzswMDc3OworMDA1ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBYO0x1OzA7TDs7Ozs7Tjs7OzswMDc4OworMDA1OTtMQVRJTiBDQVBJVEFMIExFVFRFUiBZO0x1OzA7TDs7Ozs7Tjs7OzswMDc5OworMDA1QTtMQVRJTiBDQVBJVEFMIExFVFRFUiBaO0x1OzA7TDs7Ozs7Tjs7OzswMDdBOworMDA1QjtMRUZUIFNRVUFSRSBCUkFDS0VUO1BzOzA7T047Ozs7O1k7T1BFTklORyBTUVVBUkUgQlJBQ0tFVDs7OzsKKzAwNUM7UkVWRVJTRSBTT0xJRFVTO1BvOzA7T047Ozs7O047QkFDS1NMQVNIOzs7OworMDA1RDtSSUdIVCBTUVVBUkUgQlJBQ0tFVDtQZTswO09OOzs7OztZO0NMT1NJTkcgU1FVQVJFIEJSQUNLRVQ7Ozs7CiswMDVFO0NJUkNVTUZMRVggQUNDRU5UO1NrOzA7T047Ozs7O047U1BBQ0lORyBDSVJDVU1GTEVYOzs7OworMDA1RjtMT1cgTElORTtQYzswO09OOzs7OztOO1NQQUNJTkcgVU5ERVJTQ09SRTs7OzsKKzAwNjA7R1JBVkUgQUNDRU5UO1NrOzA7T047Ozs7O047U1BBQ0lORyBHUkFWRTs7OzsKKzAwNjE7TEFUSU4gU01BTEwgTEVUVEVSIEE7TGw7MDtMOzs7OztOOzs7MDA0MTs7MDA0MQorMDA2MjtMQVRJTiBTTUFMTCBMRVRURVIgQjtMbDswO0w7Ozs7O047OzswMDQyOzswMDQyCiswMDYzO0xBVElOIFNNQUxMIExFVFRFUiBDO0xsOzA7TDs7Ozs7Tjs7OzAwNDM7OzAwNDMKKzAwNjQ7TEFUSU4gU01BTEwgTEVUVEVSIEQ7TGw7MDtMOzs7OztOOzs7MDA0NDs7MDA0NAorMDA2NTtMQVRJTiBTTUFMTCBMRVRURVIgRTtMbDswO0w7Ozs7O047OzswMDQ1OzswMDQ1CiswMDY2O0xBVElOIFNNQUxMIExFVFRFUiBGO0xsOzA7TDs7Ozs7Tjs7OzAwNDY7OzAwNDYKKzAwNjc7TEFUSU4gU01BTEwgTEVUVEVSIEc7TGw7MDtMOzs7OztOOzs7MDA0Nzs7MDA0NworMDA2ODtMQVRJTiBTTUFMTCBMRVRURVIgSDtMbDswO0w7Ozs7O047OzswMDQ4OzswMDQ4CiswMDY5O0xBVElOIFNNQUxMIExFVFRFUiBJO0xsOzA7TDs7Ozs7Tjs7OzAwNDk7OzAwNDkKKzAwNkE7TEFUSU4gU01BTEwgTEVUVEVSIEo7TGw7MDtMOzs7OztOOzs7MDA0QTs7MDA0QQorMDA2QjtMQVRJTiBTTUFMTCBMRVRURVIgSztMbDswO0w7Ozs7O047OzswMDRCOzswMDRCCiswMDZDO0xBVElOIFNNQUxMIExFVFRFUiBMO0xsOzA7TDs7Ozs7Tjs7OzAwNEM7OzAwNEMKKzAwNkQ7TEFUSU4gU01BTEwgTEVUVEVSIE07TGw7MDtMOzs7OztOOzs7MDA0RDs7MDA0RAorMDA2RTtMQVRJTiBTTUFMTCBMRVRURVIgTjtMbDswO0w7Ozs7O047OzswMDRFOzswMDRFCiswMDZGO0xBVElOIFNNQUxMIExFVFRFUiBPO0xsOzA7TDs7Ozs7Tjs7OzAwNEY7OzAwNEYKKzAwNzA7TEFUSU4gU01BTEwgTEVUVEVSIFA7TGw7MDtMOzs7OztOOzs7MDA1MDs7MDA1MAorMDA3MTtMQVRJTiBTTUFMTCBMRVRURVIgUTtMbDswO0w7Ozs7O047OzswMDUxOzswMDUxCiswMDcyO0xBVElOIFNNQUxMIExFVFRFUiBSO0xsOzA7TDs7Ozs7Tjs7OzAwNTI7OzAwNTIKKzAwNzM7TEFUSU4gU01BTEwgTEVUVEVSIFM7TGw7MDtMOzs7OztOOzs7MDA1Mzs7MDA1MworMDA3NDtMQVRJTiBTTUFMTCBMRVRURVIgVDtMbDswO0w7Ozs7O047OzswMDU0OzswMDU0CiswMDc1O0xBVElOIFNNQUxMIExFVFRFUiBVO0xsOzA7TDs7Ozs7Tjs7OzAwNTU7OzAwNTUKKzAwNzY7TEFUSU4gU01BTEwgTEVUVEVSIFY7TGw7MDtMOzs7OztOOzs7MDA1Njs7MDA1NgorMDA3NztMQVRJTiBTTUFMTCBMRVRURVIgVztMbDswO0w7Ozs7O047OzswMDU3OzswMDU3CiswMDc4O0xBVElOIFNNQUxMIExFVFRFUiBYO0xsOzA7TDs7Ozs7Tjs7OzAwNTg7OzAwNTgKKzAwNzk7TEFUSU4gU01BTEwgTEVUVEVSIFk7TGw7MDtMOzs7OztOOzs7MDA1OTs7MDA1OQorMDA3QTtMQVRJTiBTTUFMTCBMRVRURVIgWjtMbDswO0w7Ozs7O047OzswMDVBOzswMDVBCiswMDdCO0xFRlQgQ1VSTFkgQlJBQ0tFVDtQczswO09OOzs7OztZO09QRU5JTkcgQ1VSTFkgQlJBQ0tFVDs7OzsKKzAwN0M7VkVSVElDQUwgTElORTtTbTswO09OOzs7OztOO1ZFUlRJQ0FMIEJBUjs7OzsKKzAwN0Q7UklHSFQgQ1VSTFkgQlJBQ0tFVDtQZTswO09OOzs7OztZO0NMT1NJTkcgQ1VSTFkgQlJBQ0tFVDs7OzsKKzAwN0U7VElMREU7U207MDtPTjs7Ozs7Tjs7Ozs7CiswMDdGOzxjb250cm9sPjtDYzswO0JOOzs7OztOO0RFTEVURTs7OzsKKzAwODA7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047Ozs7OworMDA4MTs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7Tjs7Ozs7CiswMDgyOzxjb250cm9sPjtDYzswO0JOOzs7OztOO0JSRUFLIFBFUk1JVFRFRCBIRVJFOzs7OworMDA4Mzs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtOTyBCUkVBSyBIRVJFOzs7OworMDA4NDs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtJTkRFWDs7OzsKKzAwODU7PGNvbnRyb2w+O0NjOzA7Qjs7Ozs7TjtORVhUIExJTkU7Ozs7CiswMDg2Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO1NUQVJUIE9GIFNFTEVDVEVEIEFSRUE7Ozs7CiswMDg3Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO0VORCBPRiBTRUxFQ1RFRCBBUkVBOzs7OworMDA4ODs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtDSEFSQUNURVIgVEFCVUxBVElPTiBTRVQ7Ozs7CiswMDg5Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO0NIQVJBQ1RFUiBUQUJVTEFUSU9OIFdJVEggSlVTVElGSUNBVElPTjs7OzsKKzAwOEE7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047TElORSBUQUJVTEFUSU9OIFNFVDs7OzsKKzAwOEI7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047UEFSVElBTCBMSU5FIERPV047Ozs7CiswMDhDOzxjb250cm9sPjtDYzswO0JOOzs7OztOO1BBUlRJQUwgTElORSBVUDs7OzsKKzAwOEQ7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047UkVWRVJTRSBMSU5FIEZFRUQ7Ozs7CiswMDhFOzxjb250cm9sPjtDYzswO0JOOzs7OztOO1NJTkdMRSBTSElGVCBUV087Ozs7CiswMDhGOzxjb250cm9sPjtDYzswO0JOOzs7OztOO1NJTkdMRSBTSElGVCBUSFJFRTs7OzsKKzAwOTA7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047REVWSUNFIENPTlRST0wgU1RSSU5HOzs7OworMDA5MTs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtQUklWQVRFIFVTRSBPTkU7Ozs7CiswMDkyOzxjb250cm9sPjtDYzswO0JOOzs7OztOO1BSSVZBVEUgVVNFIFRXTzs7OzsKKzAwOTM7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047U0VUIFRSQU5TTUlUIFNUQVRFOzs7OworMDA5NDs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtDQU5DRUwgQ0hBUkFDVEVSOzs7OworMDA5NTs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtNRVNTQUdFIFdBSVRJTkc7Ozs7CiswMDk2Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO1NUQVJUIE9GIEdVQVJERUQgQVJFQTs7OzsKKzAwOTc7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047RU5EIE9GIEdVQVJERUQgQVJFQTs7OzsKKzAwOTg7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047U1RBUlQgT0YgU1RSSU5HOzs7OworMDA5OTs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7Tjs7Ozs7CiswMDlBOzxjb250cm9sPjtDYzswO0JOOzs7OztOO1NJTkdMRSBDSEFSQUNURVIgSU5UUk9EVUNFUjs7OzsKKzAwOUI7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047Q09OVFJPTCBTRVFVRU5DRSBJTlRST0RVQ0VSOzs7OworMDA5Qzs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtTVFJJTkcgVEVSTUlOQVRPUjs7OzsKKzAwOUQ7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047T1BFUkFUSU5HIFNZU1RFTSBDT01NQU5EOzs7OworMDA5RTs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtQUklWQUNZIE1FU1NBR0U7Ozs7CiswMDlGOzxjb250cm9sPjtDYzswO0JOOzs7OztOO0FQUExJQ0FUSU9OIFBST0dSQU0gQ09NTUFORDs7OzsKKzAwQTA7Tk8tQlJFQUsgU1BBQ0U7WnM7MDtDUzs8bm9CcmVhaz4gMDAyMDs7OztOO05PTi1CUkVBS0lORyBTUEFDRTs7OzsKKzAwQTE7SU5WRVJURUQgRVhDTEFNQVRJT04gTUFSSztQbzswO09OOzs7OztOOzs7OzsKKzAwQTI7Q0VOVCBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMDBBMztQT1VORCBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMDBBNDtDVVJSRU5DWSBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMDBBNTtZRU4gU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzAwQTY7QlJPS0VOIEJBUjtTbzswO09OOzs7OztOO0JST0tFTiBWRVJUSUNBTCBCQVI7Ozs7CiswMEE3O1NFQ1RJT04gU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzAwQTg7RElBRVJFU0lTO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzA4Ozs7O047U1BBQ0lORyBESUFFUkVTSVM7Ozs7CiswMEE5O0NPUFlSSUdIVCBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMDBBQTtGRU1JTklORSBPUkRJTkFMIElORElDQVRPUjtMbDswO0w7PHN1cGVyPiAwMDYxOzs7O047Ozs7OworMDBBQjtMRUZULVBPSU5USU5HIERPVUJMRSBBTkdMRSBRVU9UQVRJT04gTUFSSztQaTswO09OOzs7OztZO0xFRlQgUE9JTlRJTkcgR1VJTExFTUVUOyo7OzsKKzAwQUM7Tk9UIFNJR047U207MDtPTjs7Ozs7Tjs7Ozs7CiswMEFEO1NPRlQgSFlQSEVOO1BkOzA7T047Ozs7O047Ozs7OworMDBBRTtSRUdJU1RFUkVEIFNJR047U287MDtPTjs7Ozs7TjtSRUdJU1RFUkVEIFRSQURFIE1BUksgU0lHTjs7OzsKKzAwQUY7TUFDUk9OO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzA0Ozs7O047U1BBQ0lORyBNQUNST047Ozs7CiswMEIwO0RFR1JFRSBTSUdOO1NvOzA7RVQ7Ozs7O047Ozs7OworMDBCMTtQTFVTLU1JTlVTIFNJR047U207MDtFVDs7Ozs7TjtQTFVTLU9SLU1JTlVTIFNJR047Ozs7CiswMEIyO1NVUEVSU0NSSVBUIFRXTztObzswO0VOOzxzdXBlcj4gMDAzMjsyOzI7MjtOO1NVUEVSU0NSSVBUIERJR0lUIFRXTzs7OzsKKzAwQjM7U1VQRVJTQ1JJUFQgVEhSRUU7Tm87MDtFTjs8c3VwZXI+IDAwMzM7MzszOzM7TjtTVVBFUlNDUklQVCBESUdJVCBUSFJFRTs7OzsKKzAwQjQ7QUNVVEUgQUNDRU5UO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzAxOzs7O047U1BBQ0lORyBBQ1VURTs7OzsKKzAwQjU7TUlDUk8gU0lHTjtMbDswO0w7PGNvbXBhdD4gMDNCQzs7OztOOzs7MDM5Qzs7MDM5QworMDBCNjtQSUxDUk9XIFNJR047U287MDtPTjs7Ozs7TjtQQVJBR1JBUEggU0lHTjs7OzsKKzAwQjc7TUlERExFIERPVDtQbzswO09OOzs7OztOOzs7OzsKKzAwQjg7Q0VESUxMQTtTazswO09OOzxjb21wYXQ+IDAwMjAgMDMyNzs7OztOO1NQQUNJTkcgQ0VESUxMQTs7OzsKKzAwQjk7U1VQRVJTQ1JJUFQgT05FO05vOzA7RU47PHN1cGVyPiAwMDMxOzE7MTsxO047U1VQRVJTQ1JJUFQgRElHSVQgT05FOzs7OworMDBCQTtNQVNDVUxJTkUgT1JESU5BTCBJTkRJQ0FUT1I7TGw7MDtMOzxzdXBlcj4gMDA2Rjs7OztOOzs7OzsKKzAwQkI7UklHSFQtUE9JTlRJTkcgRE9VQkxFIEFOR0xFIFFVT1RBVElPTiBNQVJLO1BmOzA7T047Ozs7O1k7UklHSFQgUE9JTlRJTkcgR1VJTExFTUVUOyo7OzsKKzAwQkM7VlVMR0FSIEZSQUNUSU9OIE9ORSBRVUFSVEVSO05vOzA7T047PGZyYWN0aW9uPiAwMDMxIDIwNDQgMDAzNDs7OzEvNDtOO0ZSQUNUSU9OIE9ORSBRVUFSVEVSOzs7OworMDBCRDtWVUxHQVIgRlJBQ1RJT04gT05FIEhBTEY7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzEgMjA0NCAwMDMyOzs7MS8yO047RlJBQ1RJT04gT05FIEhBTEY7Ozs7CiswMEJFO1ZVTEdBUiBGUkFDVElPTiBUSFJFRSBRVUFSVEVSUztObzswO09OOzxmcmFjdGlvbj4gMDAzMyAyMDQ0IDAwMzQ7OzszLzQ7TjtGUkFDVElPTiBUSFJFRSBRVUFSVEVSUzs7OzsKKzAwQkY7SU5WRVJURUQgUVVFU1RJT04gTUFSSztQbzswO09OOzs7OztOOzs7OzsKKzAwQzA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEdSQVZFO0x1OzA7TDswMDQxIDAzMDA7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIEdSQVZFOzs7MDBFMDsKKzAwQzE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEFDVVRFO0x1OzA7TDswMDQxIDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIEFDVVRFOzs7MDBFMTsKKzAwQzI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNDEgMDMwMjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgQ0lSQ1VNRkxFWDs7OzAwRTI7CiswMEMzO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBUSUxERTtMdTswO0w7MDA0MSAwMzAzOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBUSUxERTs7OzAwRTM7CiswMEM0O0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBESUFFUkVTSVM7THU7MDtMOzAwNDEgMDMwODs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgRElBRVJFU0lTOzs7MDBFNDsKKzAwQzU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIFJJTkcgQUJPVkU7THU7MDtMOzAwNDEgMDMwQTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgUklORzs7OzAwRTU7CiswMEM2O0xBVElOIENBUElUQUwgTEVUVEVSIEFFO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIEU7YXNoICo7OzAwRTY7CiswMEM3O0xBVElOIENBUElUQUwgTEVUVEVSIEMgV0lUSCBDRURJTExBO0x1OzA7TDswMDQzIDAzMjc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBDIENFRElMTEE7OzswMEU3OworMDBDODtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggR1JBVkU7THU7MDtMOzAwNDUgMDMwMDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEUgR1JBVkU7OzswMEU4OworMDBDOTtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQUNVVEU7THU7MDtMOzAwNDUgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEUgQUNVVEU7OzswMEU5OworMDBDQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA0NSAwMzAyOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBDSVJDVU1GTEVYOzs7MDBFQTsKKzAwQ0I7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDA0NSAwMzA4Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBESUFFUkVTSVM7OzswMEVCOworMDBDQztMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggR1JBVkU7THU7MDtMOzAwNDkgMDMwMDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEkgR1JBVkU7OzswMEVDOworMDBDRDtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggQUNVVEU7THU7MDtMOzAwNDkgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEkgQUNVVEU7OzswMEVEOworMDBDRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA0OSAwMzAyOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBDSVJDVU1GTEVYOzs7MDBFRTsKKzAwQ0Y7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDA0OSAwMzA4Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBESUFFUkVTSVM7OzswMEVGOworMDBEMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBFVEg7THU7MDtMOzs7OztOOztJY2VsYW5kaWM7OzAwRjA7CiswMEQxO0xBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBUSUxERTtMdTswO0w7MDA0RSAwMzAzOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBUSUxERTs7OzAwRjE7CiswMEQyO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBHUkFWRTtMdTswO0w7MDA0RiAwMzAwOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBHUkFWRTs7OzAwRjI7CiswMEQzO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBBQ1VURTtMdTswO0w7MDA0RiAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBBQ1VURTs7OzAwRjM7CiswMEQ0O0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDRGIDAzMDI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIENJUkNVTUZMRVg7OzswMEY0OworMDBENTtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggVElMREU7THU7MDtMOzAwNEYgMDMwMzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gVElMREU7OzswMEY1OworMDBENjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggRElBRVJFU0lTO0x1OzA7TDswMDRGIDAzMDg7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIERJQUVSRVNJUzs7OzAwRjY7CiswMEQ3O01VTFRJUExJQ0FUSU9OIFNJR047U207MDtPTjs7Ozs7Tjs7Ozs7CiswMEQ4O0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gU0xBU0g7OzswMEY4OworMDBEOTtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggR1JBVkU7THU7MDtMOzAwNTUgMDMwMDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgR1JBVkU7OzswMEY5OworMDBEQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggQUNVVEU7THU7MDtMOzAwNTUgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgQUNVVEU7OzswMEZBOworMDBEQjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA1NSAwMzAyOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBDSVJDVU1GTEVYOzs7MDBGQjsKKzAwREM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDA1NSAwMzA4Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBESUFFUkVTSVM7OzswMEZDOworMDBERDtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggQUNVVEU7THU7MDtMOzAwNTkgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFkgQUNVVEU7OzswMEZEOworMDBERTtMQVRJTiBDQVBJVEFMIExFVFRFUiBUSE9STjtMdTswO0w7Ozs7O047O0ljZWxhbmRpYzs7MDBGRTsKKzAwREY7TEFUSU4gU01BTEwgTEVUVEVSIFNIQVJQIFM7TGw7MDtMOzs7OztOOztHZXJtYW47OzsKKzAwRTA7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBHUkFWRTtMbDswO0w7MDA2MSAwMzAwOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgR1JBVkU7OzAwQzA7OzAwQzAKKzAwRTE7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBBQ1VURTtMbDswO0w7MDA2MSAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgQUNVVEU7OzAwQzE7OzAwQzEKKzAwRTI7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDYxIDAzMDI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBDSVJDVU1GTEVYOzswMEMyOzswMEMyCiswMEUzO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggVElMREU7TGw7MDtMOzAwNjEgMDMwMzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIFRJTERFOzswMEMzOzswMEMzCiswMEU0O0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggRElBRVJFU0lTO0xsOzA7TDswMDYxIDAzMDg7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBESUFFUkVTSVM7OzAwQzQ7OzAwQzQKKzAwRTU7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBSSU5HIEFCT1ZFO0xsOzA7TDswMDYxIDAzMEE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBSSU5HOzswMEM1OzswMEM1CiswMEU2O0xBVElOIFNNQUxMIExFVFRFUiBBRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgRTthc2ggKjswMEM2OzswMEM2CiswMEU3O0xBVElOIFNNQUxMIExFVFRFUiBDIFdJVEggQ0VESUxMQTtMbDswO0w7MDA2MyAwMzI3Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEMgQ0VESUxMQTs7MDBDNzs7MDBDNworMDBFODtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIEdSQVZFO0xsOzA7TDswMDY1IDAzMDA7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRSBHUkFWRTs7MDBDODs7MDBDOAorMDBFOTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIEFDVVRFO0xsOzA7TDswMDY1IDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRSBBQ1VURTs7MDBDOTs7MDBDOQorMDBFQTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwNjUgMDMwMjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBFIENJUkNVTUZMRVg7OzAwQ0E7OzAwQ0EKKzAwRUI7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzAwNjUgMDMwODs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBFIERJQUVSRVNJUzs7MDBDQjs7MDBDQgorMDBFQztMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIEdSQVZFO0xsOzA7TDswMDY5IDAzMDA7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSSBHUkFWRTs7MDBDQzs7MDBDQworMDBFRDtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIEFDVVRFO0xsOzA7TDswMDY5IDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSSBBQ1VURTs7MDBDRDs7MDBDRAorMDBFRTtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwNjkgMDMwMjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBJIENJUkNVTUZMRVg7OzAwQ0U7OzAwQ0UKKzAwRUY7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzAwNjkgMDMwODs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBJIERJQUVSRVNJUzs7MDBDRjs7MDBDRgorMDBGMDtMQVRJTiBTTUFMTCBMRVRURVIgRVRIO0xsOzA7TDs7Ozs7Tjs7SWNlbGFuZGljOzAwRDA7OzAwRDAKKzAwRjE7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBUSUxERTtMbDswO0w7MDA2RSAwMzAzOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIE4gVElMREU7OzAwRDE7OzAwRDEKKzAwRjI7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBHUkFWRTtMbDswO0w7MDA2RiAwMzAwOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gR1JBVkU7OzAwRDI7OzAwRDIKKzAwRjM7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBBQ1VURTtMbDswO0w7MDA2RiAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gQUNVVEU7OzAwRDM7OzAwRDMKKzAwRjQ7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDZGIDAzMDI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBDSVJDVU1GTEVYOzswMEQ0OzswMEQ0CiswMEY1O0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggVElMREU7TGw7MDtMOzAwNkYgMDMwMzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIFRJTERFOzswMEQ1OzswMEQ1CiswMEY2O0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggRElBRVJFU0lTO0xsOzA7TDswMDZGIDAzMDg7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBESUFFUkVTSVM7OzAwRDY7OzAwRDYKKzAwRjc7RElWSVNJT04gU0lHTjtTbTswO09OOzs7OztOOzs7OzsKKzAwRjg7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIFNMQVNIOzswMEQ4OzswMEQ4CiswMEY5O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggR1JBVkU7TGw7MDtMOzAwNzUgMDMwMDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIEdSQVZFOzswMEQ5OzswMEQ5CiswMEZBO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggQUNVVEU7TGw7MDtMOzAwNzUgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIEFDVVRFOzswMERBOzswMERBCiswMEZCO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA3NSAwMzAyOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgQ0lSQ1VNRkxFWDs7MDBEQjs7MDBEQgorMDBGQztMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDA3NSAwMzA4Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgRElBRVJFU0lTOzswMERDOzswMERDCiswMEZEO0xBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggQUNVVEU7TGw7MDtMOzAwNzkgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBZIEFDVVRFOzswMEREOzswMERECiswMEZFO0xBVElOIFNNQUxMIExFVFRFUiBUSE9STjtMbDswO0w7Ozs7O047O0ljZWxhbmRpYzswMERFOzswMERFCiswMEZGO0xBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggRElBRVJFU0lTO0xsOzA7TDswMDc5IDAzMDg7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWSBESUFFUkVTSVM7OzAxNzg7OzAxNzgKKzAxMDA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIE1BQ1JPTjtMdTswO0w7MDA0MSAwMzA0Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBNQUNST047OzswMTAxOworMDEwMTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIE1BQ1JPTjtMbDswO0w7MDA2MSAwMzA0Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgTUFDUk9OOzswMTAwOzswMTAwCiswMTAyO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBCUkVWRTtMdTswO0w7MDA0MSAwMzA2Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBCUkVWRTs7OzAxMDM7CiswMTAzO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQlJFVkU7TGw7MDtMOzAwNjEgMDMwNjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIEJSRVZFOzswMTAyOzswMTAyCiswMTA0O0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBPR09ORUs7THU7MDtMOzAwNDEgMDMyODs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgT0dPTkVLOzs7MDEwNTsKKzAxMDU7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBPR09ORUs7TGw7MDtMOzAwNjEgMDMyODs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIE9HT05FSzs7MDEwNDs7MDEwNAorMDEwNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBDIFdJVEggQUNVVEU7THU7MDtMOzAwNDMgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEMgQUNVVEU7OzswMTA3OworMDEwNztMQVRJTiBTTUFMTCBMRVRURVIgQyBXSVRIIEFDVVRFO0xsOzA7TDswMDYzIDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQyBBQ1VURTs7MDEwNjs7MDEwNgorMDEwODtMQVRJTiBDQVBJVEFMIExFVFRFUiBDIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA0MyAwMzAyOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBDSVJDVU1GTEVYOzs7MDEwOTsKKzAxMDk7TEFUSU4gU01BTEwgTEVUVEVSIEMgV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDYzIDAzMDI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQyBDSVJDVU1GTEVYOzswMTA4OzswMTA4CiswMTBBO0xBVElOIENBUElUQUwgTEVUVEVSIEMgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNDMgMDMwNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEMgRE9UOzs7MDEwQjsKKzAxMEI7TEFUSU4gU01BTEwgTEVUVEVSIEMgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNjMgMDMwNzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBDIERPVDs7MDEwQTs7MDEwQQorMDEwQztMQVRJTiBDQVBJVEFMIExFVFRFUiBDIFdJVEggQ0FST047THU7MDtMOzAwNDMgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEMgSEFDRUs7OzswMTBEOworMDEwRDtMQVRJTiBTTUFMTCBMRVRURVIgQyBXSVRIIENBUk9OO0xsOzA7TDswMDYzIDAzMEM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQyBIQUNFSzs7MDEwQzs7MDEwQworMDEwRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFdJVEggQ0FST047THU7MDtMOzAwNDQgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEQgSEFDRUs7OzswMTBGOworMDEwRjtMQVRJTiBTTUFMTCBMRVRURVIgRCBXSVRIIENBUk9OO0xsOzA7TDswMDY0IDAzMEM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRCBIQUNFSzs7MDEwRTs7MDEwRQorMDExMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIEJBUjs7OzAxMTE7CiswMTExO0xBVElOIFNNQUxMIExFVFRFUiBEIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRCBCQVI7OzAxMTA7OzAxMTAKKzAxMTI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIE1BQ1JPTjtMdTswO0w7MDA0NSAwMzA0Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBNQUNST047OzswMTEzOworMDExMztMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIE1BQ1JPTjtMbDswO0w7MDA2NSAwMzA0Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEUgTUFDUk9OOzswMTEyOzswMTEyCiswMTE0O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBCUkVWRTtMdTswO0w7MDA0NSAwMzA2Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBCUkVWRTs7OzAxMTU7CiswMTE1O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQlJFVkU7TGw7MDtMOzAwNjUgMDMwNjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBFIEJSRVZFOzswMTE0OzswMTE0CiswMTE2O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNDUgMDMwNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEUgRE9UOzs7MDExNzsKKzAxMTc7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNjUgMDMwNzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBFIERPVDs7MDExNjs7MDExNgorMDExODtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggT0dPTkVLO0x1OzA7TDswMDQ1IDAzMjg7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIE9HT05FSzs7OzAxMTk7CiswMTE5O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggT0dPTkVLO0xsOzA7TDswMDY1IDAzMjg7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRSBPR09ORUs7OzAxMTg7OzAxMTgKKzAxMUE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIENBUk9OO0x1OzA7TDswMDQ1IDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIEhBQ0VLOzs7MDExQjsKKzAxMUI7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBDQVJPTjtMbDswO0w7MDA2NSAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEUgSEFDRUs7OzAxMUE7OzAxMUEKKzAxMUM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNDcgMDMwMjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEcgQ0lSQ1VNRkxFWDs7OzAxMUQ7CiswMTFEO0xBVElOIFNNQUxMIExFVFRFUiBHIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA2NyAwMzAyOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEcgQ0lSQ1VNRkxFWDs7MDExQzs7MDExQworMDExRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIFdJVEggQlJFVkU7THU7MDtMOzAwNDcgMDMwNjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEcgQlJFVkU7OzswMTFGOworMDExRjtMQVRJTiBTTUFMTCBMRVRURVIgRyBXSVRIIEJSRVZFO0xsOzA7TDswMDY3IDAzMDY7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRyBCUkVWRTs7MDExRTs7MDExRQorMDEyMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDQ3IDAzMDc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIERPVDs7OzAxMjE7CiswMTIxO0xBVElOIFNNQUxMIExFVFRFUiBHIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDY3IDAzMDc7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRyBET1Q7OzAxMjA7OzAxMjAKKzAxMjI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBXSVRIIENFRElMTEE7THU7MDtMOzAwNDcgMDMyNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEcgQ0VESUxMQTs7OzAxMjM7CiswMTIzO0xBVElOIFNNQUxMIExFVFRFUiBHIFdJVEggQ0VESUxMQTtMbDswO0w7MDA2NyAwMzI3Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEcgQ0VESUxMQTs7MDEyMjs7MDEyMgorMDEyNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBIIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA0OCAwMzAyOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSCBDSVJDVU1GTEVYOzs7MDEyNTsKKzAxMjU7TEFUSU4gU01BTEwgTEVUVEVSIEggV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDY4IDAzMDI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSCBDSVJDVU1GTEVYOzswMTI0OzswMTI0CiswMTI2O0xBVElOIENBUElUQUwgTEVUVEVSIEggV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEggQkFSOzs7MDEyNzsKKzAxMjc7TEFUSU4gU01BTEwgTEVUVEVSIEggV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBIIEJBUjs7MDEyNjs7MDEyNgorMDEyODtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggVElMREU7THU7MDtMOzAwNDkgMDMwMzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEkgVElMREU7OzswMTI5OworMDEyOTtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIFRJTERFO0xsOzA7TDswMDY5IDAzMDM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSSBUSUxERTs7MDEyODs7MDEyOAorMDEyQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggTUFDUk9OO0x1OzA7TDswMDQ5IDAzMDQ7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIE1BQ1JPTjs7OzAxMkI7CiswMTJCO0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggTUFDUk9OO0xsOzA7TDswMDY5IDAzMDQ7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSSBNQUNST047OzAxMkE7OzAxMkEKKzAxMkM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIEJSRVZFO0x1OzA7TDswMDQ5IDAzMDY7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIEJSRVZFOzs7MDEyRDsKKzAxMkQ7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBCUkVWRTtMbDswO0w7MDA2OSAwMzA2Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEkgQlJFVkU7OzAxMkM7OzAxMkMKKzAxMkU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIE9HT05FSztMdTswO0w7MDA0OSAwMzI4Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBPR09ORUs7OzswMTJGOworMDEyRjtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIE9HT05FSztMbDswO0w7MDA2OSAwMzI4Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEkgT0dPTkVLOzswMTJFOzswMTJFCiswMTMwO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNDkgMDMwNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEkgRE9UOzs7MDA2OTsKKzAxMzE7TEFUSU4gU01BTEwgTEVUVEVSIERPVExFU1MgSTtMbDswO0w7Ozs7O047OzswMDQ5OzswMDQ5CiswMTMyO0xBVElOIENBUElUQUwgTElHQVRVUkUgSUo7THU7MDtMOzxjb21wYXQ+IDAwNDkgMDA0QTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEkgSjs7OzAxMzM7CiswMTMzO0xBVElOIFNNQUxMIExJR0FUVVJFIElKO0xsOzA7TDs8Y29tcGF0PiAwMDY5IDAwNkE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSSBKOzswMTMyOzswMTMyCiswMTM0O0xBVElOIENBUElUQUwgTEVUVEVSIEogV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDRBIDAzMDI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBKIENJUkNVTUZMRVg7OzswMTM1OworMDEzNTtMQVRJTiBTTUFMTCBMRVRURVIgSiBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwNkEgMDMwMjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBKIENJUkNVTUZMRVg7OzAxMzQ7OzAxMzQKKzAxMzY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSyBXSVRIIENFRElMTEE7THU7MDtMOzAwNEIgMDMyNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEsgQ0VESUxMQTs7OzAxMzc7CiswMTM3O0xBVElOIFNNQUxMIExFVFRFUiBLIFdJVEggQ0VESUxMQTtMbDswO0w7MDA2QiAwMzI3Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEsgQ0VESUxMQTs7MDEzNjs7MDEzNgorMDEzODtMQVRJTiBTTUFMTCBMRVRURVIgS1JBO0xsOzA7TDs7Ozs7Tjs7R3JlZW5sYW5kaWM7OzsKKzAxMzk7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIEFDVVRFO0x1OzA7TDswMDRDIDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIEFDVVRFOzs7MDEzQTsKKzAxM0E7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBBQ1VURTtMbDswO0w7MDA2QyAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEwgQUNVVEU7OzAxMzk7OzAxMzkKKzAxM0I7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIENFRElMTEE7THU7MDtMOzAwNEMgMDMyNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEwgQ0VESUxMQTs7OzAxM0M7CiswMTNDO0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggQ0VESUxMQTtMbDswO0w7MDA2QyAwMzI3Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEwgQ0VESUxMQTs7MDEzQjs7MDEzQgorMDEzRDtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggQ0FST047THU7MDtMOzAwNEMgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEwgSEFDRUs7OzswMTNFOworMDEzRTtMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIENBUk9OO0xsOzA7TDswMDZDIDAzMEM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTCBIQUNFSzs7MDEzRDs7MDEzRAorMDEzRjtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggTUlERExFIERPVDtMdTswO0w7PGNvbXBhdD4gMDA0QyAwMEI3Ozs7O047Ozs7MDE0MDsKKzAxNDA7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBNSURETEUgRE9UO0xsOzA7TDs8Y29tcGF0PiAwMDZDIDAwQjc7Ozs7Tjs7OzAxM0Y7OzAxM0YKKzAxNDE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBTTEFTSDs7OzAxNDI7CiswMTQyO0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTCBTTEFTSDs7MDE0MTs7MDE0MQorMDE0MztMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggQUNVVEU7THU7MDtMOzAwNEUgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE4gQUNVVEU7OzswMTQ0OworMDE0NDtMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIEFDVVRFO0xsOzA7TDswMDZFIDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTiBBQ1VURTs7MDE0Mzs7MDE0MworMDE0NTtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggQ0VESUxMQTtMdTswO0w7MDA0RSAwMzI3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBDRURJTExBOzs7MDE0NjsKKzAxNDY7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBDRURJTExBO0xsOzA7TDswMDZFIDAzMjc7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTiBDRURJTExBOzswMTQ1OzswMTQ1CiswMTQ3O0xBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBDQVJPTjtMdTswO0w7MDA0RSAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBIQUNFSzs7OzAxNDg7CiswMTQ4O0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggQ0FST047TGw7MDtMOzAwNkUgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBOIEhBQ0VLOzswMTQ3OzswMTQ3CiswMTQ5O0xBVElOIFNNQUxMIExFVFRFUiBOIFBSRUNFREVEIEJZIEFQT1NUUk9QSEU7TGw7MDtMOzxjb21wYXQ+IDAyQkMgMDA2RTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBUE9TVFJPUEhFIE47Ozs7CiswMTRBO0xBVElOIENBUElUQUwgTEVUVEVSIEVORztMdTswO0w7Ozs7O047O1NhbWk7OzAxNEI7CiswMTRCO0xBVElOIFNNQUxMIExFVFRFUiBFTkc7TGw7MDtMOzs7OztOOztTYW1pOzAxNEE7OzAxNEEKKzAxNEM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIE1BQ1JPTjtMdTswO0w7MDA0RiAwMzA0Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBNQUNST047OzswMTREOworMDE0RDtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIE1BQ1JPTjtMbDswO0w7MDA2RiAwMzA0Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gTUFDUk9OOzswMTRDOzswMTRDCiswMTRFO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBCUkVWRTtMdTswO0w7MDA0RiAwMzA2Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBCUkVWRTs7OzAxNEY7CiswMTRGO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQlJFVkU7TGw7MDtMOzAwNkYgMDMwNjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIEJSRVZFOzswMTRFOzswMTRFCiswMTUwO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBET1VCTEUgQUNVVEU7THU7MDtMOzAwNEYgMDMwQjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gRE9VQkxFIEFDVVRFOzs7MDE1MTsKKzAxNTE7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBET1VCTEUgQUNVVEU7TGw7MDtMOzAwNkYgMDMwQjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIERPVUJMRSBBQ1VURTs7MDE1MDs7MDE1MAorMDE1MjtMQVRJTiBDQVBJVEFMIExJR0FUVVJFIE9FO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIEU7OzswMTUzOworMDE1MztMQVRJTiBTTUFMTCBMSUdBVFVSRSBPRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gRTs7MDE1Mjs7MDE1MgorMDE1NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBSIFdJVEggQUNVVEU7THU7MDtMOzAwNTIgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFIgQUNVVEU7OzswMTU1OworMDE1NTtMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIEFDVVRFO0xsOzA7TDswMDcyIDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUiBBQ1VURTs7MDE1NDs7MDE1NAorMDE1NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBSIFdJVEggQ0VESUxMQTtMdTswO0w7MDA1MiAwMzI3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBDRURJTExBOzs7MDE1NzsKKzAxNTc7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBDRURJTExBO0xsOzA7TDswMDcyIDAzMjc7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUiBDRURJTExBOzswMTU2OzswMTU2CiswMTU4O0xBVElOIENBUElUQUwgTEVUVEVSIFIgV0lUSCBDQVJPTjtMdTswO0w7MDA1MiAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBIQUNFSzs7OzAxNTk7CiswMTU5O0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggQ0FST047TGw7MDtMOzAwNzIgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBSIEhBQ0VLOzswMTU4OzswMTU4CiswMTVBO0xBVElOIENBUElUQUwgTEVUVEVSIFMgV0lUSCBBQ1VURTtMdTswO0w7MDA1MyAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBBQ1VURTs7OzAxNUI7CiswMTVCO0xBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggQUNVVEU7TGw7MDtMOzAwNzMgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBTIEFDVVRFOzswMTVBOzswMTVBCiswMTVDO0xBVElOIENBUElUQUwgTEVUVEVSIFMgV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDUzIDAzMDI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIENJUkNVTUZMRVg7OzswMTVEOworMDE1RDtMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwNzMgMDMwMjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBTIENJUkNVTUZMRVg7OzAxNUM7OzAxNUMKKzAxNUU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBXSVRIIENFRElMTEE7THU7MDtMOzAwNTMgMDMyNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFMgQ0VESUxMQTsqOzswMTVGOworMDE1RjtMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIENFRElMTEE7TGw7MDtMOzAwNzMgMDMyNzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBTIENFRElMTEE7KjswMTVFOzswMTVFCiswMTYwO0xBVElOIENBUElUQUwgTEVUVEVSIFMgV0lUSCBDQVJPTjtMdTswO0w7MDA1MyAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBIQUNFSzs7OzAxNjE7CiswMTYxO0xBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggQ0FST047TGw7MDtMOzAwNzMgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBTIEhBQ0VLOzswMTYwOzswMTYwCiswMTYyO0xBVElOIENBUElUQUwgTEVUVEVSIFQgV0lUSCBDRURJTExBO0x1OzA7TDswMDU0IDAzMjc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIENFRElMTEE7Kjs7MDE2MzsKKzAxNjM7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBDRURJTExBO0xsOzA7TDswMDc0IDAzMjc7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVCBDRURJTExBOyo7MDE2Mjs7MDE2MgorMDE2NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFdJVEggQ0FST047THU7MDtMOzAwNTQgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFQgSEFDRUs7OzswMTY1OworMDE2NTtMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIENBUk9OO0xsOzA7TDswMDc0IDAzMEM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVCBIQUNFSzs7MDE2NDs7MDE2NAorMDE2NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIEJBUjs7OzAxNjc7CiswMTY3O0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVCBCQVI7OzAxNjY7OzAxNjYKKzAxNjg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIFRJTERFO0x1OzA7TDswMDU1IDAzMDM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFRJTERFOzs7MDE2OTsKKzAxNjk7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBUSUxERTtMbDswO0w7MDA3NSAwMzAzOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgVElMREU7OzAxNjg7OzAxNjgKKzAxNkE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIE1BQ1JPTjtMdTswO0w7MDA1NSAwMzA0Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBNQUNST047OzswMTZCOworMDE2QjtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIE1BQ1JPTjtMbDswO0w7MDA3NSAwMzA0Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgTUFDUk9OOzswMTZBOzswMTZBCiswMTZDO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBCUkVWRTtMdTswO0w7MDA1NSAwMzA2Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBCUkVWRTs7OzAxNkQ7CiswMTZEO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggQlJFVkU7TGw7MDtMOzAwNzUgMDMwNjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIEJSRVZFOzswMTZDOzswMTZDCiswMTZFO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBSSU5HIEFCT1ZFO0x1OzA7TDswMDU1IDAzMEE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFJJTkc7OzswMTZGOworMDE2RjtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIFJJTkcgQUJPVkU7TGw7MDtMOzAwNzUgMDMwQTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIFJJTkc7OzAxNkU7OzAxNkUKKzAxNzA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIERPVUJMRSBBQ1VURTtMdTswO0w7MDA1NSAwMzBCOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBET1VCTEUgQUNVVEU7OzswMTcxOworMDE3MTtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIERPVUJMRSBBQ1VURTtMbDswO0w7MDA3NSAwMzBCOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgRE9VQkxFIEFDVVRFOzswMTcwOzswMTcwCiswMTcyO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBPR09ORUs7THU7MDtMOzAwNTUgMDMyODs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgT0dPTkVLOzs7MDE3MzsKKzAxNzM7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBPR09ORUs7TGw7MDtMOzAwNzUgMDMyODs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIE9HT05FSzs7MDE3Mjs7MDE3MgorMDE3NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBXIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA1NyAwMzAyOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVyBDSVJDVU1GTEVYOzs7MDE3NTsKKzAxNzU7TEFUSU4gU01BTEwgTEVUVEVSIFcgV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDc3IDAzMDI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVyBDSVJDVU1GTEVYOzswMTc0OzswMTc0CiswMTc2O0xBVElOIENBUElUQUwgTEVUVEVSIFkgV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDU5IDAzMDI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIENJUkNVTUZMRVg7OzswMTc3OworMDE3NztMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwNzkgMDMwMjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBZIENJUkNVTUZMRVg7OzAxNzY7OzAxNzYKKzAxNzg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDA1OSAwMzA4Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBESUFFUkVTSVM7OzswMEZGOworMDE3OTtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIFdJVEggQUNVVEU7THU7MDtMOzAwNUEgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFogQUNVVEU7OzswMTdBOworMDE3QTtMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIEFDVVRFO0xsOzA7TDswMDdBIDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWiBBQ1VURTs7MDE3OTs7MDE3OQorMDE3QjtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDVBIDAzMDc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIERPVDs7OzAxN0M7CiswMTdDO0xBVElOIFNNQUxMIExFVFRFUiBaIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDdBIDAzMDc7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWiBET1Q7OzAxN0I7OzAxN0IKKzAxN0Q7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBXSVRIIENBUk9OO0x1OzA7TDswMDVBIDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIEhBQ0VLOzs7MDE3RTsKKzAxN0U7TEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBDQVJPTjtMbDswO0w7MDA3QSAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFogSEFDRUs7OzAxN0Q7OzAxN0QKKzAxN0Y7TEFUSU4gU01BTEwgTEVUVEVSIExPTkcgUztMbDswO0w7PGNvbXBhdD4gMDA3Mzs7OztOOzs7MDA1Mzs7MDA1MworMDE4MDtMQVRJTiBTTUFMTCBMRVRURVIgQiBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEIgQkFSOzs7OworMDE4MTtMQVRJTiBDQVBJVEFMIExFVFRFUiBCIFdJVEggSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQiBIT09LOzs7MDI1MzsKKzAxODI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQiBXSVRIIFRPUEJBUjtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQiBUT1BCQVI7OzswMTgzOworMDE4MztMQVRJTiBTTUFMTCBMRVRURVIgQiBXSVRIIFRPUEJBUjtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEIgVE9QQkFSOzswMTgyOzswMTgyCiswMTg0O0xBVElOIENBUElUQUwgTEVUVEVSIFRPTkUgU0lYO0x1OzA7TDs7Ozs7Tjs7OzswMTg1OworMDE4NTtMQVRJTiBTTUFMTCBMRVRURVIgVE9ORSBTSVg7TGw7MDtMOzs7OztOOzs7MDE4NDs7MDE4NAorMDE4NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPUEVOIE87THU7MDtMOzs7OztOOzs7OzAyNTQ7CiswMTg3O0xBVElOIENBUElUQUwgTEVUVEVSIEMgV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBDIEhPT0s7OzswMTg4OworMDE4ODtMQVRJTiBTTUFMTCBMRVRURVIgQyBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBDIEhPT0s7OzAxODc7OzAxODcKKzAxODk7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQUZSSUNBTiBEO0x1OzA7TDs7Ozs7Tjs7Kjs7MDI1NjsKKzAxOEE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIEhPT0s7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEQgSE9PSzs7OzAyNTc7CiswMThCO0xBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBUT1BCQVI7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEQgVE9QQkFSOzs7MDE4QzsKKzAxOEM7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBUT1BCQVI7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBEIFRPUEJBUjs7MDE4Qjs7MDE4QgorMDE4RDtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIERFTFRBO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMThFO0xBVElOIENBUElUQUwgTEVUVEVSIFJFVkVSU0VEIEU7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFRVUk5FRCBFOzs7MDFERDsKKzAxOEY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgU0NIV0E7THU7MDtMOzs7OztOOzs7OzAyNTk7CiswMTkwO0xBVElOIENBUElUQUwgTEVUVEVSIE9QRU4gRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRVBTSUxPTjs7OzAyNUI7CiswMTkxO0xBVElOIENBUElUQUwgTEVUVEVSIEYgV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBGIEhPT0s7OzswMTkyOworMDE5MjtMQVRJTiBTTUFMTCBMRVRURVIgRiBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBTQ1JJUFQgRjs7MDE5MTs7MDE5MQorMDE5MztMQVRJTiBDQVBJVEFMIExFVFRFUiBHIFdJVEggSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBIT09LOzs7MDI2MDsKKzAxOTQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgR0FNTUE7THU7MDtMOzs7OztOOzs7OzAyNjM7CiswMTk1O0xBVElOIFNNQUxMIExFVFRFUiBIVjtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEggVjtod2FpcjswMUY2OzswMUY2CiswMTk2O0xBVElOIENBUElUQUwgTEVUVEVSIElPVEE7THU7MDtMOzs7OztOOzs7OzAyNjk7CiswMTk3O0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEJBUlJFRCBJOzs7MDI2ODsKKzAxOTg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSyBXSVRIIEhPT0s7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEsgSE9PSzs7OzAxOTk7CiswMTk5O0xBVElOIFNNQUxMIExFVFRFUiBLIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEsgSE9PSzs7MDE5ODs7MDE5OAorMDE5QTtMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIEJBUjtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEJBUlJFRCBMOzs7OworMDE5QjtMQVRJTiBTTUFMTCBMRVRURVIgTEFNQkRBIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQkFSUkVEIExBTUJEQTs7OzsKKzAxOUM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVFVSTkVEIE07THU7MDtMOzs7OztOOzs7OzAyNkY7CiswMTlEO0xBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBMRUZUIEhPT0s7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE4gSE9PSzs7OzAyNzI7CiswMTlFO0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggTE9ORyBSSUdIVCBMRUc7TGw7MDtMOzs7OztOOzs7OzsKKzAxOUY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIE1JRERMRSBUSUxERTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQkFSUkVEIE87Kjs7MDI3NTsKKzAxQTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIEhPUk47THU7MDtMOzAwNEYgMDMxQjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gSE9STjs7OzAxQTE7CiswMUExO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggSE9STjtMbDswO0w7MDA2RiAwMzFCOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gSE9STjs7MDFBMDs7MDFBMAorMDFBMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPSTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBJO2doYTs7MDFBMzsKKzAxQTM7TEFUSU4gU01BTEwgTEVUVEVSIE9JO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBJO2doYTswMUEyOzswMUEyCiswMUE0O0xBVElOIENBUElUQUwgTEVUVEVSIFAgV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBQIEhPT0s7OzswMUE1OworMDFBNTtMQVRJTiBTTUFMTCBMRVRURVIgUCBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBQIEhPT0s7OzAxQTQ7OzAxQTQKKzAxQTY7TEFUSU4gTEVUVEVSIFlSO0x1OzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgWSBSOzs7MDI4MDsKKzAxQTc7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVE9ORSBUV087THU7MDtMOzs7OztOOzs7OzAxQTg7CiswMUE4O0xBVElOIFNNQUxMIExFVFRFUiBUT05FIFRXTztMbDswO0w7Ozs7O047OzswMUE3OzswMUE3CiswMUE5O0xBVElOIENBUElUQUwgTEVUVEVSIEVTSDtMdTswO0w7Ozs7O047Ozs7MDI4MzsKKzAxQUE7TEFUSU4gTEVUVEVSIFJFVkVSU0VEIEVTSCBMT09QO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMUFCO0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggUEFMQVRBTCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVCBQQUxBVEFMIEhPT0s7Ozs7CiswMUFDO0xBVElOIENBUElUQUwgTEVUVEVSIFQgV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIEhPT0s7OzswMUFEOworMDFBRDtMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBUIEhPT0s7OzAxQUM7OzAxQUMKKzAxQUU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBXSVRIIFJFVFJPRkxFWCBIT09LO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFJFVFJPRkxFWCBIT09LOzs7MDI4ODsKKzAxQUY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEhPUk47THU7MDtMOzAwNTUgMDMxQjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgSE9STjs7OzAxQjA7CiswMUIwO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggSE9STjtMbDswO0w7MDA3NSAwMzFCOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgSE9STjs7MDFBRjs7MDFBRgorMDFCMTtMQVRJTiBDQVBJVEFMIExFVFRFUiBVUFNJTE9OO0x1OzA7TDs7Ozs7Tjs7OzswMjhBOworMDFCMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBWIFdJVEggSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgU0NSSVBUIFY7OzswMjhCOworMDFCMztMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBIT09LOzs7MDFCNDsKKzAxQjQ7TEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWSBIT09LOzswMUIzOzswMUIzCiswMUI1O0xBVElOIENBUElUQUwgTEVUVEVSIFogV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFogQkFSOzs7MDFCNjsKKzAxQjY7TEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBaIEJBUjs7MDFCNTs7MDFCNQorMDFCNztMQVRJTiBDQVBJVEFMIExFVFRFUiBFWkg7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFlPR0g7OzswMjkyOworMDFCODtMQVRJTiBDQVBJVEFMIExFVFRFUiBFWkggUkVWRVJTRUQ7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFJFVkVSU0VEIFlPR0g7OzswMUI5OworMDFCOTtMQVRJTiBTTUFMTCBMRVRURVIgRVpIIFJFVkVSU0VEO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUkVWRVJTRUQgWU9HSDs7MDFCODs7MDFCOAorMDFCQTtMQVRJTiBTTUFMTCBMRVRURVIgRVpIIFdJVEggVEFJTDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFlPR0ggV0lUSCBUQUlMOzs7OworMDFCQjtMQVRJTiBMRVRURVIgVFdPIFdJVEggU1RST0tFO0xvOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgVFdPIEJBUjs7OzsKKzAxQkM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVE9ORSBGSVZFO0x1OzA7TDs7Ozs7Tjs7OzswMUJEOworMDFCRDtMQVRJTiBTTUFMTCBMRVRURVIgVE9ORSBGSVZFO0xsOzA7TDs7Ozs7Tjs7OzAxQkM7OzAxQkMKKzAxQkU7TEFUSU4gTEVUVEVSIElOVkVSVEVEIEdMT1RUQUwgU1RPUCBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gTEVUVEVSIElOVkVSVEVEIEdMT1RUQUwgU1RPUCBCQVI7Ozs7CiswMUJGO0xBVElOIExFVFRFUiBXWU5OO0xsOzA7TDs7Ozs7Tjs7OzAxRjc7OzAxRjcKKzAxQzA7TEFUSU4gTEVUVEVSIERFTlRBTCBDTElDSztMbzswO0w7Ozs7O047TEFUSU4gTEVUVEVSIFBJUEU7Ozs7CiswMUMxO0xBVElOIExFVFRFUiBMQVRFUkFMIENMSUNLO0xvOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgRE9VQkxFIFBJUEU7Ozs7CiswMUMyO0xBVElOIExFVFRFUiBBTFZFT0xBUiBDTElDSztMbzswO0w7Ozs7O047TEFUSU4gTEVUVEVSIFBJUEUgRE9VQkxFIEJBUjs7OzsKKzAxQzM7TEFUSU4gTEVUVEVSIFJFVFJPRkxFWCBDTElDSztMbzswO0w7Ozs7O047TEFUSU4gTEVUVEVSIEVYQ0xBTUFUSU9OIE1BUks7Ozs7CiswMUM0O0xBVElOIENBUElUQUwgTEVUVEVSIERaIFdJVEggQ0FST047THU7MDtMOzxjb21wYXQ+IDAwNDQgMDE3RDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEQgWiBIQUNFSzs7OzAxQzY7MDFDNQorMDFDNTtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFdJVEggU01BTEwgTEVUVEVSIFogV0lUSCBDQVJPTjtMdDswO0w7PGNvbXBhdD4gMDA0NCAwMTdFOzs7O047TEFUSU4gTEVUVEVSIENBUElUQUwgRCBTTUFMTCBaIEhBQ0VLOzswMUM0OzAxQzY7CiswMUM2O0xBVElOIFNNQUxMIExFVFRFUiBEWiBXSVRIIENBUk9OO0xsOzA7TDs8Y29tcGF0PiAwMDY0IDAxN0U7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRCBaIEhBQ0VLOzswMUM0OzswMUM1CiswMUM3O0xBVElOIENBUElUQUwgTEVUVEVSIExKO0x1OzA7TDs8Y29tcGF0PiAwMDRDIDAwNEE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIEo7OzswMUM5OzAxQzgKKzAxQzg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIFNNQUxMIExFVFRFUiBKO0x0OzA7TDs8Y29tcGF0PiAwMDRDIDAwNkE7Ozs7TjtMQVRJTiBMRVRURVIgQ0FQSVRBTCBMIFNNQUxMIEo7OzAxQzc7MDFDOTsKKzAxQzk7TEFUSU4gU01BTEwgTEVUVEVSIExKO0xsOzA7TDs8Y29tcGF0PiAwMDZDIDAwNkE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTCBKOzswMUM3OzswMUM4CiswMUNBO0xBVElOIENBUElUQUwgTEVUVEVSIE5KO0x1OzA7TDs8Y29tcGF0PiAwMDRFIDAwNEE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIEo7OzswMUNDOzAxQ0IKKzAxQ0I7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIFNNQUxMIExFVFRFUiBKO0x0OzA7TDs8Y29tcGF0PiAwMDRFIDAwNkE7Ozs7TjtMQVRJTiBMRVRURVIgQ0FQSVRBTCBOIFNNQUxMIEo7OzAxQ0E7MDFDQzsKKzAxQ0M7TEFUSU4gU01BTEwgTEVUVEVSIE5KO0xsOzA7TDs8Y29tcGF0PiAwMDZFIDAwNkE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTiBKOzswMUNBOzswMUNCCiswMUNEO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBDQVJPTjtMdTswO0w7MDA0MSAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBIQUNFSzs7OzAxQ0U7CiswMUNFO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQ0FST047TGw7MDtMOzAwNjEgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIEhBQ0VLOzswMUNEOzswMUNECiswMUNGO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBDQVJPTjtMdTswO0w7MDA0OSAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBIQUNFSzs7OzAxRDA7CiswMUQwO0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggQ0FST047TGw7MDtMOzAwNjkgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBJIEhBQ0VLOzswMUNGOzswMUNGCiswMUQxO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBDQVJPTjtMdTswO0w7MDA0RiAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBIQUNFSzs7OzAxRDI7CiswMUQyO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQ0FST047TGw7MDtMOzAwNkYgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIEhBQ0VLOzswMUQxOzswMUQxCiswMUQzO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBDQVJPTjtMdTswO0w7MDA1NSAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBIQUNFSzs7OzAxRDQ7CiswMUQ0O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggQ0FST047TGw7MDtMOzAwNzUgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIEhBQ0VLOzswMUQzOzswMUQzCiswMUQ1O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVMgQU5EIE1BQ1JPTjtMdTswO0w7MDBEQyAwMzA0Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBESUFFUkVTSVMgTUFDUk9OOzs7MDFENjsKKzAxRDY7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVMgQU5EIE1BQ1JPTjtMbDswO0w7MDBGQyAwMzA0Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgRElBRVJFU0lTIE1BQ1JPTjs7MDFENTs7MDFENQorMDFENztMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTIEFORCBBQ1VURTtMdTswO0w7MDBEQyAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBESUFFUkVTSVMgQUNVVEU7OzswMUQ4OworMDFEODtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUyBBTkQgQUNVVEU7TGw7MDtMOzAwRkMgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIERJQUVSRVNJUyBBQ1VURTs7MDFENzs7MDFENworMDFEOTtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTIEFORCBDQVJPTjtMdTswO0w7MDBEQyAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBESUFFUkVTSVMgSEFDRUs7OzswMURBOworMDFEQTtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUyBBTkQgQ0FST047TGw7MDtMOzAwRkMgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIERJQUVSRVNJUyBIQUNFSzs7MDFEOTs7MDFEOQorMDFEQjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTIEFORCBHUkFWRTtMdTswO0w7MDBEQyAwMzAwOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBESUFFUkVTSVMgR1JBVkU7OzswMURDOworMDFEQztMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUyBBTkQgR1JBVkU7TGw7MDtMOzAwRkMgMDMwMDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIERJQUVSRVNJUyBHUkFWRTs7MDFEQjs7MDFEQgorMDFERDtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIEU7TGw7MDtMOzs7OztOOzs7MDE4RTs7MDE4RQorMDFERTtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggRElBRVJFU0lTIEFORCBNQUNST047THU7MDtMOzAwQzQgMDMwNDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgRElBRVJFU0lTIE1BQ1JPTjs7OzAxREY7CiswMURGO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggRElBRVJFU0lTIEFORCBNQUNST047TGw7MDtMOzAwRTQgMDMwNDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIERJQUVSRVNJUyBNQUNST047OzAxREU7OzAxREUKKzAxRTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIERPVCBBQk9WRSBBTkQgTUFDUk9OO0x1OzA7TDswMjI2IDAzMDQ7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIERPVCBNQUNST047OzswMUUxOworMDFFMTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIERPVCBBQk9WRSBBTkQgTUFDUk9OO0xsOzA7TDswMjI3IDAzMDQ7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBET1QgTUFDUk9OOzswMUUwOzswMUUwCiswMUUyO0xBVElOIENBUElUQUwgTEVUVEVSIEFFIFdJVEggTUFDUk9OO0x1OzA7TDswMEM2IDAzMDQ7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIEUgTUFDUk9OO2FzaCAqOzswMUUzOworMDFFMztMQVRJTiBTTUFMTCBMRVRURVIgQUUgV0lUSCBNQUNST047TGw7MDtMOzAwRTYgMDMwNDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIEUgTUFDUk9OO2FzaCAqOzAxRTI7OzAxRTIKKzAxRTQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBCQVI7OzswMUU1OworMDFFNTtMQVRJTiBTTUFMTCBMRVRURVIgRyBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEcgQkFSOzswMUU0OzswMUU0CiswMUU2O0xBVElOIENBUElUQUwgTEVUVEVSIEcgV0lUSCBDQVJPTjtMdTswO0w7MDA0NyAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBIQUNFSzs7OzAxRTc7CiswMUU3O0xBVElOIFNNQUxMIExFVFRFUiBHIFdJVEggQ0FST047TGw7MDtMOzAwNjcgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBHIEhBQ0VLOzswMUU2OzswMUU2CiswMUU4O0xBVElOIENBUElUQUwgTEVUVEVSIEsgV0lUSCBDQVJPTjtMdTswO0w7MDA0QiAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSyBIQUNFSzs7OzAxRTk7CiswMUU5O0xBVElOIFNNQUxMIExFVFRFUiBLIFdJVEggQ0FST047TGw7MDtMOzAwNkIgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBLIEhBQ0VLOzswMUU4OzswMUU4CiswMUVBO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBPR09ORUs7THU7MDtMOzAwNEYgMDMyODs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gT0dPTkVLOzs7MDFFQjsKKzAxRUI7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBPR09ORUs7TGw7MDtMOzAwNkYgMDMyODs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIE9HT05FSzs7MDFFQTs7MDFFQQorMDFFQztMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggT0dPTkVLIEFORCBNQUNST047THU7MDtMOzAxRUEgMDMwNDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gT0dPTkVLIE1BQ1JPTjs7OzAxRUQ7CiswMUVEO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggT0dPTkVLIEFORCBNQUNST047TGw7MDtMOzAxRUIgMDMwNDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIE9HT05FSyBNQUNST047OzAxRUM7OzAxRUMKKzAxRUU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRVpIIFdJVEggQ0FST047THU7MDtMOzAxQjcgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFlPR0ggSEFDRUs7OzswMUVGOworMDFFRjtMQVRJTiBTTUFMTCBMRVRURVIgRVpIIFdJVEggQ0FST047TGw7MDtMOzAyOTIgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBZT0dIIEhBQ0VLOzswMUVFOzswMUVFCiswMUYwO0xBVElOIFNNQUxMIExFVFRFUiBKIFdJVEggQ0FST047TGw7MDtMOzAwNkEgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBKIEhBQ0VLOzs7OworMDFGMTtMQVRJTiBDQVBJVEFMIExFVFRFUiBEWjtMdTswO0w7PGNvbXBhdD4gMDA0NCAwMDVBOzs7O047Ozs7MDFGMzswMUYyCiswMUYyO0xBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBTTUFMTCBMRVRURVIgWjtMdDswO0w7PGNvbXBhdD4gMDA0NCAwMDdBOzs7O047OzswMUYxOzAxRjM7CiswMUYzO0xBVElOIFNNQUxMIExFVFRFUiBEWjtMbDswO0w7PGNvbXBhdD4gMDA2NCAwMDdBOzs7O047OzswMUYxOzswMUYyCiswMUY0O0xBVElOIENBUElUQUwgTEVUVEVSIEcgV0lUSCBBQ1VURTtMdTswO0w7MDA0NyAwMzAxOzs7O047Ozs7MDFGNTsKKzAxRjU7TEFUSU4gU01BTEwgTEVUVEVSIEcgV0lUSCBBQ1VURTtMbDswO0w7MDA2NyAwMzAxOzs7O047OzswMUY0OzswMUY0CiswMUY2O0xBVElOIENBUElUQUwgTEVUVEVSIEhXQUlSO0x1OzA7TDs7Ozs7Tjs7OzswMTk1OworMDFGNztMQVRJTiBDQVBJVEFMIExFVFRFUiBXWU5OO0x1OzA7TDs7Ozs7Tjs7OzswMUJGOworMDFGODtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggR1JBVkU7THU7MDtMOzAwNEUgMDMwMDs7OztOOzs7OzAxRjk7CiswMUY5O0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggR1JBVkU7TGw7MDtMOzAwNkUgMDMwMDs7OztOOzs7MDFGODs7MDFGOAorMDFGQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggUklORyBBQk9WRSBBTkQgQUNVVEU7THU7MDtMOzAwQzUgMDMwMTs7OztOOzs7OzAxRkI7CiswMUZCO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggUklORyBBQk9WRSBBTkQgQUNVVEU7TGw7MDtMOzAwRTUgMDMwMTs7OztOOzs7MDFGQTs7MDFGQQorMDFGQztMQVRJTiBDQVBJVEFMIExFVFRFUiBBRSBXSVRIIEFDVVRFO0x1OzA7TDswMEM2IDAzMDE7Ozs7Tjs7YXNoICo7OzAxRkQ7CiswMUZEO0xBVElOIFNNQUxMIExFVFRFUiBBRSBXSVRIIEFDVVRFO0xsOzA7TDswMEU2IDAzMDE7Ozs7Tjs7YXNoICo7MDFGQzs7MDFGQworMDFGRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggU1RST0tFIEFORCBBQ1VURTtMdTswO0w7MDBEOCAwMzAxOzs7O047Ozs7MDFGRjsKKzAxRkY7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBTVFJPS0UgQU5EIEFDVVRFO0xsOzA7TDswMEY4IDAzMDE7Ozs7Tjs7OzAxRkU7OzAxRkUKKzAyMDA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIERPVUJMRSBHUkFWRTtMdTswO0w7MDA0MSAwMzBGOzs7O047Ozs7MDIwMTsKKzAyMDE7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBET1VCTEUgR1JBVkU7TGw7MDtMOzAwNjEgMDMwRjs7OztOOzs7MDIwMDs7MDIwMAorMDIwMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggSU5WRVJURUQgQlJFVkU7THU7MDtMOzAwNDEgMDMxMTs7OztOOzs7OzAyMDM7CiswMjAzO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggSU5WRVJURUQgQlJFVkU7TGw7MDtMOzAwNjEgMDMxMTs7OztOOzs7MDIwMjs7MDIwMgorMDIwNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggRE9VQkxFIEdSQVZFO0x1OzA7TDswMDQ1IDAzMEY7Ozs7Tjs7OzswMjA1OworMDIwNTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIERPVUJMRSBHUkFWRTtMbDswO0w7MDA2NSAwMzBGOzs7O047OzswMjA0OzswMjA0CiswMjA2O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBJTlZFUlRFRCBCUkVWRTtMdTswO0w7MDA0NSAwMzExOzs7O047Ozs7MDIwNzsKKzAyMDc7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBJTlZFUlRFRCBCUkVWRTtMbDswO0w7MDA2NSAwMzExOzs7O047OzswMjA2OzswMjA2CiswMjA4O0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBET1VCTEUgR1JBVkU7THU7MDtMOzAwNDkgMDMwRjs7OztOOzs7OzAyMDk7CiswMjA5O0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggRE9VQkxFIEdSQVZFO0xsOzA7TDswMDY5IDAzMEY7Ozs7Tjs7OzAyMDg7OzAyMDgKKzAyMEE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIElOVkVSVEVEIEJSRVZFO0x1OzA7TDswMDQ5IDAzMTE7Ozs7Tjs7OzswMjBCOworMDIwQjtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIElOVkVSVEVEIEJSRVZFO0xsOzA7TDswMDY5IDAzMTE7Ozs7Tjs7OzAyMEE7OzAyMEEKKzAyMEM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIERPVUJMRSBHUkFWRTtMdTswO0w7MDA0RiAwMzBGOzs7O047Ozs7MDIwRDsKKzAyMEQ7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBET1VCTEUgR1JBVkU7TGw7MDtMOzAwNkYgMDMwRjs7OztOOzs7MDIwQzs7MDIwQworMDIwRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggSU5WRVJURUQgQlJFVkU7THU7MDtMOzAwNEYgMDMxMTs7OztOOzs7OzAyMEY7CiswMjBGO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggSU5WRVJURUQgQlJFVkU7TGw7MDtMOzAwNkYgMDMxMTs7OztOOzs7MDIwRTs7MDIwRQorMDIxMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBSIFdJVEggRE9VQkxFIEdSQVZFO0x1OzA7TDswMDUyIDAzMEY7Ozs7Tjs7OzswMjExOworMDIxMTtMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIERPVUJMRSBHUkFWRTtMbDswO0w7MDA3MiAwMzBGOzs7O047OzswMjEwOzswMjEwCiswMjEyO0xBVElOIENBUElUQUwgTEVUVEVSIFIgV0lUSCBJTlZFUlRFRCBCUkVWRTtMdTswO0w7MDA1MiAwMzExOzs7O047Ozs7MDIxMzsKKzAyMTM7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBJTlZFUlRFRCBCUkVWRTtMbDswO0w7MDA3MiAwMzExOzs7O047OzswMjEyOzswMjEyCiswMjE0O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBET1VCTEUgR1JBVkU7THU7MDtMOzAwNTUgMDMwRjs7OztOOzs7OzAyMTU7CiswMjE1O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRE9VQkxFIEdSQVZFO0xsOzA7TDswMDc1IDAzMEY7Ozs7Tjs7OzAyMTQ7OzAyMTQKKzAyMTY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIElOVkVSVEVEIEJSRVZFO0x1OzA7TDswMDU1IDAzMTE7Ozs7Tjs7OzswMjE3OworMDIxNztMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIElOVkVSVEVEIEJSRVZFO0xsOzA7TDswMDc1IDAzMTE7Ozs7Tjs7OzAyMTY7OzAyMTYKKzAyMTg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBXSVRIIENPTU1BIEJFTE9XO0x1OzA7TDswMDUzIDAzMjY7Ozs7Tjs7Kjs7MDIxOTsKKzAyMTk7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBDT01NQSBCRUxPVztMbDswO0w7MDA3MyAwMzI2Ozs7O047Oyo7MDIxODs7MDIxOAorMDIxQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFdJVEggQ09NTUEgQkVMT1c7THU7MDtMOzAwNTQgMDMyNjs7OztOOzsqOzswMjFCOworMDIxQjtMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIENPTU1BIEJFTE9XO0xsOzA7TDswMDc0IDAzMjY7Ozs7Tjs7KjswMjFBOzswMjFBCiswMjFDO0xBVElOIENBUElUQUwgTEVUVEVSIFlPR0g7THU7MDtMOzs7OztOOzs7OzAyMUQ7CiswMjFEO0xBVElOIFNNQUxMIExFVFRFUiBZT0dIO0xsOzA7TDs7Ozs7Tjs7OzAyMUM7OzAyMUMKKzAyMUU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSCBXSVRIIENBUk9OO0x1OzA7TDswMDQ4IDAzMEM7Ozs7Tjs7OzswMjFGOworMDIxRjtMQVRJTiBTTUFMTCBMRVRURVIgSCBXSVRIIENBUk9OO0xsOzA7TDswMDY4IDAzMEM7Ozs7Tjs7OzAyMUU7OzAyMUUKKzAyMjI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgT1U7THU7MDtMOzs7OztOOzs7OzAyMjM7CiswMjIzO0xBVElOIFNNQUxMIExFVFRFUiBPVTtMbDswO0w7Ozs7O047OzswMjIyOzswMjIyCiswMjI0O0xBVElOIENBUElUQUwgTEVUVEVSIFogV0lUSCBIT09LO0x1OzA7TDs7Ozs7Tjs7OzswMjI1OworMDIyNTtMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIEhPT0s7TGw7MDtMOzs7OztOOzs7MDIyNDs7MDIyNAorMDIyNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDQxIDAzMDc7Ozs7Tjs7OzswMjI3OworMDIyNztMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA2MSAwMzA3Ozs7O047OzswMjI2OzswMjI2CiswMjI4O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBDRURJTExBO0x1OzA7TDswMDQ1IDAzMjc7Ozs7Tjs7OzswMjI5OworMDIyOTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIENFRElMTEE7TGw7MDtMOzAwNjUgMDMyNzs7OztOOzs7MDIyODs7MDIyOAorMDIyQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggRElBRVJFU0lTIEFORCBNQUNST047THU7MDtMOzAwRDYgMDMwNDs7OztOOzs7OzAyMkI7CiswMjJCO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggRElBRVJFU0lTIEFORCBNQUNST047TGw7MDtMOzAwRjYgMDMwNDs7OztOOzs7MDIyQTs7MDIyQQorMDIyQztMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggVElMREUgQU5EIE1BQ1JPTjtMdTswO0w7MDBENSAwMzA0Ozs7O047Ozs7MDIyRDsKKzAyMkQ7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBUSUxERSBBTkQgTUFDUk9OO0xsOzA7TDswMEY1IDAzMDQ7Ozs7Tjs7OzAyMkM7OzAyMkMKKzAyMkU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA0RiAwMzA3Ozs7O047Ozs7MDIyRjsKKzAyMkY7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNkYgMDMwNzs7OztOOzs7MDIyRTs7MDIyRQorMDIzMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggRE9UIEFCT1ZFIEFORCBNQUNST047THU7MDtMOzAyMkUgMDMwNDs7OztOOzs7OzAyMzE7CiswMjMxO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggRE9UIEFCT1ZFIEFORCBNQUNST047TGw7MDtMOzAyMkYgMDMwNDs7OztOOzs7MDIzMDs7MDIzMAorMDIzMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggTUFDUk9OO0x1OzA7TDswMDU5IDAzMDQ7Ozs7Tjs7OzswMjMzOworMDIzMztMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIE1BQ1JPTjtMbDswO0w7MDA3OSAwMzA0Ozs7O047OzswMjMyOzswMjMyCiswMjUwO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgQTtMbDswO0w7Ozs7O047Ozs7OworMDI1MTtMQVRJTiBTTUFMTCBMRVRURVIgQUxQSEE7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBTQ1JJUFQgQTs7OzsKKzAyNTI7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBBTFBIQTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBTQ1JJUFQgQTs7OzsKKzAyNTM7TEFUSU4gU01BTEwgTEVUVEVSIEIgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQiBIT09LOzswMTgxOzswMTgxCiswMjU0O0xBVElOIFNNQUxMIExFVFRFUiBPUEVOIE87TGw7MDtMOzs7OztOOzs7MDE4Njs7MDE4NgorMDI1NTtMQVRJTiBTTUFMTCBMRVRURVIgQyBXSVRIIENVUkw7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBDIENVUkw7Ozs7CiswMjU2O0xBVElOIFNNQUxMIExFVFRFUiBEIFdJVEggVEFJTDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEQgUkVUUk9GTEVYIEhPT0s7OzAxODk7OzAxODkKKzAyNTc7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRCBIT09LOzswMThBOzswMThBCiswMjU4O0xBVElOIFNNQUxMIExFVFRFUiBSRVZFUlNFRCBFO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjU5O0xBVElOIFNNQUxMIExFVFRFUiBTQ0hXQTtMbDswO0w7Ozs7O047OzswMThGOzswMThGCiswMjVBO0xBVElOIFNNQUxMIExFVFRFUiBTQ0hXQSBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBTQ0hXQSBIT09LOzs7OworMDI1QjtMQVRJTiBTTUFMTCBMRVRURVIgT1BFTiBFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRVBTSUxPTjs7MDE5MDs7MDE5MAorMDI1QztMQVRJTiBTTUFMTCBMRVRURVIgUkVWRVJTRUQgT1BFTiBFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUkVWRVJTRUQgRVBTSUxPTjs7OzsKKzAyNUQ7TEFUSU4gU01BTEwgTEVUVEVSIFJFVkVSU0VEIE9QRU4gRSBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBSRVZFUlNFRCBFUFNJTE9OIEhPT0s7Ozs7CiswMjVFO0xBVElOIFNNQUxMIExFVFRFUiBDTE9TRUQgUkVWRVJTRUQgT1BFTiBFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQ0xPU0VEIFJFVkVSU0VEIEVQU0lMT047Ozs7CiswMjVGO0xBVElOIFNNQUxMIExFVFRFUiBET1RMRVNTIEogV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBET1RMRVNTIEogQkFSOzs7OworMDI2MDtMQVRJTiBTTUFMTCBMRVRURVIgRyBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBHIEhPT0s7OzAxOTM7OzAxOTMKKzAyNjE7TEFUSU4gU01BTEwgTEVUVEVSIFNDUklQVCBHO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjYyO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIEc7TGw7MDtMOzs7OztOOzs7OzsKKzAyNjM7TEFUSU4gU01BTEwgTEVUVEVSIEdBTU1BO0xsOzA7TDs7Ozs7Tjs7OzAxOTQ7OzAxOTQKKzAyNjQ7TEFUSU4gU01BTEwgTEVUVEVSIFJBTVMgSE9STjtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEJBQlkgR0FNTUE7Ozs7CiswMjY1O0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgSDtMbDswO0w7Ozs7O047Ozs7OworMDI2NjtMQVRJTiBTTUFMTCBMRVRURVIgSCBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBIIEhPT0s7Ozs7CiswMjY3O0xBVElOIFNNQUxMIExFVFRFUiBIRU5HIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEhFTkcgSE9PSzs7OzsKKzAyNjg7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBCQVJSRUQgSTs7MDE5Nzs7MDE5NworMDI2OTtMQVRJTiBTTUFMTCBMRVRURVIgSU9UQTtMbDswO0w7Ozs7O047OzswMTk2OzswMTk2CiswMjZBO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIEk7TGw7MDtMOzs7OztOOzs7OzsKKzAyNkI7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBNSURETEUgVElMREU7TGw7MDtMOzs7OztOOzs7OzsKKzAyNkM7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBCRUxUO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTCBCRUxUOzs7OworMDI2RDtMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIFJFVFJPRkxFWCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTCBSRVRST0ZMRVggSE9PSzs7OzsKKzAyNkU7TEFUSU4gU01BTEwgTEVUVEVSIExFWkg7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBMIFlPR0g7Ozs7CiswMjZGO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgTTtMbDswO0w7Ozs7O047OzswMTlDOzswMTlDCiswMjcwO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgTSBXSVRIIExPTkcgTEVHO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjcxO0xBVElOIFNNQUxMIExFVFRFUiBNIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE0gSE9PSzs7OzsKKzAyNzI7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBMRUZUIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBOIEhPT0s7OzAxOUQ7OzAxOUQKKzAyNzM7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBSRVRST0ZMRVggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE4gUkVUUk9GTEVYIEhPT0s7Ozs7CiswMjc0O0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIE47TGw7MDtMOzs7OztOOzs7OzsKKzAyNzU7TEFUSU4gU01BTEwgTEVUVEVSIEJBUlJFRCBPO0xsOzA7TDs7Ozs7Tjs7OzAxOUY7OzAxOUYKKzAyNzY7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgT0U7TGw7MDtMOzs7OztOO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIE8gRTs7OzsKKzAyNzc7TEFUSU4gU01BTEwgTEVUVEVSIENMT1NFRCBPTUVHQTtMbDswO0w7Ozs7O047Ozs7OworMDI3ODtMQVRJTiBTTUFMTCBMRVRURVIgUEhJO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjc5O0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgUjtMbDswO0w7Ozs7O047Ozs7OworMDI3QTtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIFIgV0lUSCBMT05HIExFRztMbDswO0w7Ozs7O047Ozs7OworMDI3QjtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIFIgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIFIgSE9PSzs7OzsKKzAyN0M7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBMT05HIExFRztMbDswO0w7Ozs7O047Ozs7OworMDI3RDtMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIFRBSUw7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBSIEhPT0s7Ozs7CiswMjdFO0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggRklTSEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBGSVNISE9PSyBSOzs7OworMDI3RjtMQVRJTiBTTUFMTCBMRVRURVIgUkVWRVJTRUQgUiBXSVRIIEZJU0hIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUkVWRVJTRUQgRklTSEhPT0sgUjs7OzsKKzAyODA7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgUjtMbDswO0w7Ozs7O047OzswMUE2OzswMUE2CiswMjgxO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIElOVkVSVEVEIFI7TGw7MDtMOzs7OztOOzs7OzsKKzAyODI7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUyBIT09LOzs7OworMDI4MztMQVRJTiBTTUFMTCBMRVRURVIgRVNIO0xsOzA7TDs7Ozs7Tjs7OzAxQTk7OzAxQTkKKzAyODQ7TEFUSU4gU01BTEwgTEVUVEVSIERPVExFU1MgSiBXSVRIIFNUUk9LRSBBTkQgSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIERPVExFU1MgSiBCQVIgSE9PSzs7OzsKKzAyODU7TEFUSU4gU01BTEwgTEVUVEVSIFNRVUFUIFJFVkVSU0VEIEVTSDtMbDswO0w7Ozs7O047Ozs7OworMDI4NjtMQVRJTiBTTUFMTCBMRVRURVIgRVNIIFdJVEggQ1VSTDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEVTSCBDVVJMOzs7OworMDI4NztMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIFQ7TGw7MDtMOzs7OztOOzs7OzsKKzAyODg7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBSRVRST0ZMRVggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFQgUkVUUk9GTEVYIEhPT0s7OzAxQUU7OzAxQUUKKzAyODk7TEFUSU4gU01BTEwgTEVUVEVSIFUgQkFSO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjhBO0xBVElOIFNNQUxMIExFVFRFUiBVUFNJTE9OO0xsOzA7TDs7Ozs7Tjs7OzAxQjE7OzAxQjEKKzAyOEI7TEFUSU4gU01BTEwgTEVUVEVSIFYgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgU0NSSVBUIFY7OzAxQjI7OzAxQjIKKzAyOEM7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBWO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjhEO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgVztMbDswO0w7Ozs7O047Ozs7OworMDI4RTtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIFk7TGw7MDtMOzs7OztOOzs7OzsKKzAyOEY7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgWTtMbDswO0w7Ozs7O047Ozs7OworMDI5MDtMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIFJFVFJPRkxFWCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWiBSRVRST0ZMRVggSE9PSzs7OzsKKzAyOTE7TEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBDVVJMO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWiBDVVJMOzs7OworMDI5MjtMQVRJTiBTTUFMTCBMRVRURVIgRVpIO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWU9HSDs7MDFCNzs7MDFCNworMDI5MztMQVRJTiBTTUFMTCBMRVRURVIgRVpIIFdJVEggQ1VSTDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFlPR0ggQ1VSTDs7OzsKKzAyOTQ7TEFUSU4gTEVUVEVSIEdMT1RUQUwgU1RPUDtMbDswO0w7Ozs7O047Ozs7OworMDI5NTtMQVRJTiBMRVRURVIgUEhBUllOR0VBTCBWT0lDRUQgRlJJQ0FUSVZFO0xsOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgUkVWRVJTRUQgR0xPVFRBTCBTVE9QOzs7OworMDI5NjtMQVRJTiBMRVRURVIgSU5WRVJURUQgR0xPVFRBTCBTVE9QO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjk3O0xBVElOIExFVFRFUiBTVFJFVENIRUQgQztMbDswO0w7Ozs7O047Ozs7OworMDI5ODtMQVRJTiBMRVRURVIgQklMQUJJQUwgQ0xJQ0s7TGw7MDtMOzs7OztOO0xBVElOIExFVFRFUiBCVUxMU0VZRTs7OzsKKzAyOTk7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgQjtMbDswO0w7Ozs7O047Ozs7OworMDI5QTtMQVRJTiBTTUFMTCBMRVRURVIgQ0xPU0VEIE9QRU4gRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIENMT1NFRCBFUFNJTE9OOzs7OworMDI5QjtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBHIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgRyBIT09LOzs7OworMDI5QztMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBIO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjlEO0xBVElOIFNNQUxMIExFVFRFUiBKIFdJVEggQ1JPU1NFRC1UQUlMO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQ1JPU1NFRC1UQUlMIEo7Ozs7CiswMjlFO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgSztMbDswO0w7Ozs7O047Ozs7OworMDI5RjtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBMO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMkEwO0xBVElOIFNNQUxMIExFVFRFUiBRIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFEgSE9PSzs7OzsKKzAyQTE7TEFUSU4gTEVUVEVSIEdMT1RUQUwgU1RPUCBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gTEVUVEVSIEdMT1RUQUwgU1RPUCBCQVI7Ozs7CiswMkEyO0xBVElOIExFVFRFUiBSRVZFUlNFRCBHTE9UVEFMIFNUT1AgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIExFVFRFUiBSRVZFUlNFRCBHTE9UVEFMIFNUT1AgQkFSOzs7OworMDJBMztMQVRJTiBTTUFMTCBMRVRURVIgRFogRElHUkFQSDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEQgWjs7OzsKKzAyQTQ7TEFUSU4gU01BTEwgTEVUVEVSIERFWkggRElHUkFQSDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEQgWU9HSDs7OzsKKzAyQTU7TEFUSU4gU01BTEwgTEVUVEVSIERaIERJR1JBUEggV0lUSCBDVVJMO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRCBaIENVUkw7Ozs7CiswMkE2O0xBVElOIFNNQUxMIExFVFRFUiBUUyBESUdSQVBIO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVCBTOzs7OworMDJBNztMQVRJTiBTTUFMTCBMRVRURVIgVEVTSCBESUdSQVBIO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVCBFU0g7Ozs7CiswMkE4O0xBVElOIFNNQUxMIExFVFRFUiBUQyBESUdSQVBIIFdJVEggQ1VSTDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFQgQyBDVVJMOzs7OworMDJBOTtMQVRJTiBTTUFMTCBMRVRURVIgRkVORyBESUdSQVBIO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMkFBO0xBVElOIFNNQUxMIExFVFRFUiBMUyBESUdSQVBIO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMkFCO0xBVElOIFNNQUxMIExFVFRFUiBMWiBESUdSQVBIO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMkFDO0xBVElOIExFVFRFUiBCSUxBQklBTCBQRVJDVVNTSVZFO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMkFEO0xBVElOIExFVFRFUiBCSURFTlRBTCBQRVJDVVNTSVZFO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMkIwO01PRElGSUVSIExFVFRFUiBTTUFMTCBIO0xtOzA7TDs8c3VwZXI+IDAwNjg7Ozs7Tjs7Ozs7CiswMkIxO01PRElGSUVSIExFVFRFUiBTTUFMTCBIIFdJVEggSE9PSztMbTswO0w7PHN1cGVyPiAwMjY2Ozs7O047TU9ESUZJRVIgTEVUVEVSIFNNQUxMIEggSE9PSzs7OzsKKzAyQjI7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIEo7TG07MDtMOzxzdXBlcj4gMDA2QTs7OztOOzs7OzsKKzAyQjM7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFI7TG07MDtMOzxzdXBlcj4gMDA3Mjs7OztOOzs7OzsKKzAyQjQ7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFRVUk5FRCBSO0xtOzA7TDs8c3VwZXI+IDAyNzk7Ozs7Tjs7Ozs7CiswMkI1O01PRElGSUVSIExFVFRFUiBTTUFMTCBUVVJORUQgUiBXSVRIIEhPT0s7TG07MDtMOzxzdXBlcj4gMDI3Qjs7OztOO01PRElGSUVSIExFVFRFUiBTTUFMTCBUVVJORUQgUiBIT09LOzs7OworMDJCNjtNT0RJRklFUiBMRVRURVIgU01BTEwgQ0FQSVRBTCBJTlZFUlRFRCBSO0xtOzA7TDs8c3VwZXI+IDAyODE7Ozs7Tjs7Ozs7CiswMkI3O01PRElGSUVSIExFVFRFUiBTTUFMTCBXO0xtOzA7TDs8c3VwZXI+IDAwNzc7Ozs7Tjs7Ozs7CiswMkI4O01PRElGSUVSIExFVFRFUiBTTUFMTCBZO0xtOzA7TDs8c3VwZXI+IDAwNzk7Ozs7Tjs7Ozs7CiswMkI5O01PRElGSUVSIExFVFRFUiBQUklNRTtTazswO09OOzs7OztOOzs7OzsKKzAyQkE7TU9ESUZJRVIgTEVUVEVSIERPVUJMRSBQUklNRTtTazswO09OOzs7OztOOzs7OzsKKzAyQkI7TU9ESUZJRVIgTEVUVEVSIFRVUk5FRCBDT01NQTtMbTswO0w7Ozs7O047Ozs7OworMDJCQztNT0RJRklFUiBMRVRURVIgQVBPU1RST1BIRTtMbTswO0w7Ozs7O047Ozs7OworMDJCRDtNT0RJRklFUiBMRVRURVIgUkVWRVJTRUQgQ09NTUE7TG07MDtMOzs7OztOOzs7OzsKKzAyQkU7TU9ESUZJRVIgTEVUVEVSIFJJR0hUIEhBTEYgUklORztMbTswO0w7Ozs7O047Ozs7OworMDJCRjtNT0RJRklFUiBMRVRURVIgTEVGVCBIQUxGIFJJTkc7TG07MDtMOzs7OztOOzs7OzsKKzAyQzA7TU9ESUZJRVIgTEVUVEVSIEdMT1RUQUwgU1RPUDtMbTswO0w7Ozs7O047Ozs7OworMDJDMTtNT0RJRklFUiBMRVRURVIgUkVWRVJTRUQgR0xPVFRBTCBTVE9QO0xtOzA7TDs7Ozs7Tjs7Ozs7CiswMkMyO01PRElGSUVSIExFVFRFUiBMRUZUIEFSUk9XSEVBRDtTazswO09OOzs7OztOOzs7OzsKKzAyQzM7TU9ESUZJRVIgTEVUVEVSIFJJR0hUIEFSUk9XSEVBRDtTazswO09OOzs7OztOOzs7OzsKKzAyQzQ7TU9ESUZJRVIgTEVUVEVSIFVQIEFSUk9XSEVBRDtTazswO09OOzs7OztOOzs7OzsKKzAyQzU7TU9ESUZJRVIgTEVUVEVSIERPV04gQVJST1dIRUFEO1NrOzA7T047Ozs7O047Ozs7OworMDJDNjtNT0RJRklFUiBMRVRURVIgQ0lSQ1VNRkxFWCBBQ0NFTlQ7U2s7MDtPTjs7Ozs7TjtNT0RJRklFUiBMRVRURVIgQ0lSQ1VNRkxFWDs7OzsKKzAyQzc7Q0FST047U2s7MDtPTjs7Ozs7TjtNT0RJRklFUiBMRVRURVIgSEFDRUs7TWFuZGFyaW4gQ2hpbmVzZSB0aGlyZCB0b25lOzs7CiswMkM4O01PRElGSUVSIExFVFRFUiBWRVJUSUNBTCBMSU5FO1NrOzA7T047Ozs7O047Ozs7OworMDJDOTtNT0RJRklFUiBMRVRURVIgTUFDUk9OO1NrOzA7T047Ozs7O047O01hbmRhcmluIENoaW5lc2UgZmlyc3QgdG9uZTs7OworMDJDQTtNT0RJRklFUiBMRVRURVIgQUNVVEUgQUNDRU5UO1NrOzA7T047Ozs7O047TU9ESUZJRVIgTEVUVEVSIEFDVVRFO01hbmRhcmluIENoaW5lc2Ugc2Vjb25kIHRvbmU7OzsKKzAyQ0I7TU9ESUZJRVIgTEVUVEVSIEdSQVZFIEFDQ0VOVDtTazswO09OOzs7OztOO01PRElGSUVSIExFVFRFUiBHUkFWRTtNYW5kYXJpbiBDaGluZXNlIGZvdXJ0aCB0b25lOzs7CiswMkNDO01PRElGSUVSIExFVFRFUiBMT1cgVkVSVElDQUwgTElORTtTazswO09OOzs7OztOOzs7OzsKKzAyQ0Q7TU9ESUZJRVIgTEVUVEVSIExPVyBNQUNST047U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkNFO01PRElGSUVSIExFVFRFUiBMT1cgR1JBVkUgQUNDRU5UO1NrOzA7T047Ozs7O047TU9ESUZJRVIgTEVUVEVSIExPVyBHUkFWRTs7OzsKKzAyQ0Y7TU9ESUZJRVIgTEVUVEVSIExPVyBBQ1VURSBBQ0NFTlQ7U2s7MDtPTjs7Ozs7TjtNT0RJRklFUiBMRVRURVIgTE9XIEFDVVRFOzs7OworMDJEMDtNT0RJRklFUiBMRVRURVIgVFJJQU5HVUxBUiBDT0xPTjtMbTswO0w7Ozs7O047Ozs7OworMDJEMTtNT0RJRklFUiBMRVRURVIgSEFMRiBUUklBTkdVTEFSIENPTE9OO0xtOzA7TDs7Ozs7Tjs7Ozs7CiswMkQyO01PRElGSUVSIExFVFRFUiBDRU5UUkVEIFJJR0hUIEhBTEYgUklORztTazswO09OOzs7OztOO01PRElGSUVSIExFVFRFUiBDRU5URVJFRCBSSUdIVCBIQUxGIFJJTkc7Ozs7CiswMkQzO01PRElGSUVSIExFVFRFUiBDRU5UUkVEIExFRlQgSEFMRiBSSU5HO1NrOzA7T047Ozs7O047TU9ESUZJRVIgTEVUVEVSIENFTlRFUkVEIExFRlQgSEFMRiBSSU5HOzs7OworMDJENDtNT0RJRklFUiBMRVRURVIgVVAgVEFDSztTazswO09OOzs7OztOOzs7OzsKKzAyRDU7TU9ESUZJRVIgTEVUVEVSIERPV04gVEFDSztTazswO09OOzs7OztOOzs7OzsKKzAyRDY7TU9ESUZJRVIgTEVUVEVSIFBMVVMgU0lHTjtTazswO09OOzs7OztOOzs7OzsKKzAyRDc7TU9ESUZJRVIgTEVUVEVSIE1JTlVTIFNJR047U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkQ4O0JSRVZFO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzA2Ozs7O047U1BBQ0lORyBCUkVWRTs7OzsKKzAyRDk7RE9UIEFCT1ZFO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzA3Ozs7O047U1BBQ0lORyBET1QgQUJPVkU7TWFuZGFyaW4gQ2hpbmVzZSBsaWdodCB0b25lOzs7CiswMkRBO1JJTkcgQUJPVkU7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMEE7Ozs7TjtTUEFDSU5HIFJJTkcgQUJPVkU7Ozs7CiswMkRCO09HT05FSztTazswO09OOzxjb21wYXQ+IDAwMjAgMDMyODs7OztOO1NQQUNJTkcgT0dPTkVLOzs7OworMDJEQztTTUFMTCBUSUxERTtTazswO09OOzxjb21wYXQ+IDAwMjAgMDMwMzs7OztOO1NQQUNJTkcgVElMREU7Ozs7CiswMkREO0RPVUJMRSBBQ1VURSBBQ0NFTlQ7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMEI7Ozs7TjtTUEFDSU5HIERPVUJMRSBBQ1VURTs7OzsKKzAyREU7TU9ESUZJRVIgTEVUVEVSIFJIT1RJQyBIT09LO1NrOzA7T047Ozs7O047Ozs7OworMDJERjtNT0RJRklFUiBMRVRURVIgQ1JPU1MgQUNDRU5UO1NrOzA7T047Ozs7O047Ozs7OworMDJFMDtNT0RJRklFUiBMRVRURVIgU01BTEwgR0FNTUE7TG07MDtMOzxzdXBlcj4gMDI2Mzs7OztOOzs7OzsKKzAyRTE7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIEw7TG07MDtMOzxzdXBlcj4gMDA2Qzs7OztOOzs7OzsKKzAyRTI7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFM7TG07MDtMOzxzdXBlcj4gMDA3Mzs7OztOOzs7OzsKKzAyRTM7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFg7TG07MDtMOzxzdXBlcj4gMDA3ODs7OztOOzs7OzsKKzAyRTQ7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFJFVkVSU0VEIEdMT1RUQUwgU1RPUDtMbTswO0w7PHN1cGVyPiAwMjk1Ozs7O047Ozs7OworMDJFNTtNT0RJRklFUiBMRVRURVIgRVhUUkEtSElHSCBUT05FIEJBUjtTazswO09OOzs7OztOOzs7OzsKKzAyRTY7TU9ESUZJRVIgTEVUVEVSIEhJR0ggVE9ORSBCQVI7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkU3O01PRElGSUVSIExFVFRFUiBNSUQgVE9ORSBCQVI7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkU4O01PRElGSUVSIExFVFRFUiBMT1cgVE9ORSBCQVI7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkU5O01PRElGSUVSIExFVFRFUiBFWFRSQS1MT1cgVE9ORSBCQVI7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkVBO01PRElGSUVSIExFVFRFUiBZSU4gREVQQVJUSU5HIFRPTkUgTUFSSztTazswO09OOzs7OztOOzs7OzsKKzAyRUI7TU9ESUZJRVIgTEVUVEVSIFlBTkcgREVQQVJUSU5HIFRPTkUgTUFSSztTazswO09OOzs7OztOOzs7OzsKKzAyRUM7TU9ESUZJRVIgTEVUVEVSIFZPSUNJTkc7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkVEO01PRElGSUVSIExFVFRFUiBVTkFTUElSQVRFRDtTazswO09OOzs7OztOOzs7OzsKKzAyRUU7TU9ESUZJRVIgTEVUVEVSIERPVUJMRSBBUE9TVFJPUEhFO0xtOzA7TDs7Ozs7Tjs7Ozs7CiswMzAwO0NPTUJJTklORyBHUkFWRSBBQ0NFTlQ7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBHUkFWRTtWYXJpYTs7OworMDMwMTtDT01CSU5JTkcgQUNVVEUgQUNDRU5UO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgQUNVVEU7T3hpYTs7OworMDMwMjtDT01CSU5JTkcgQ0lSQ1VNRkxFWCBBQ0NFTlQ7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBDSVJDVU1GTEVYOzs7OworMDMwMztDT01CSU5JTkcgVElMREU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBUSUxERTs7OzsKKzAzMDQ7Q09NQklOSU5HIE1BQ1JPTjtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIE1BQ1JPTjs7OzsKKzAzMDU7Q09NQklOSU5HIE9WRVJMSU5FO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgT1ZFUlNDT1JFOzs7OworMDMwNjtDT01CSU5JTkcgQlJFVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBCUkVWRTtWcmFjaHk7OzsKKzAzMDc7Q09NQklOSU5HIERPVCBBQk9WRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIERPVCBBQk9WRTs7OzsKKzAzMDg7Q09NQklOSU5HIERJQUVSRVNJUztNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIERJQUVSRVNJUztEaWFseXRpa2E7OzsKKzAzMDk7Q09NQklOSU5HIEhPT0sgQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBIT09LIEFCT1ZFOzs7OworMDMwQTtDT01CSU5JTkcgUklORyBBQk9WRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFJJTkcgQUJPVkU7Ozs7CiswMzBCO0NPTUJJTklORyBET1VCTEUgQUNVVEUgQUNDRU5UO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgRE9VQkxFIEFDVVRFOzs7OworMDMwQztDT01CSU5JTkcgQ0FST047TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBIQUNFSzs7OzsKKzAzMEQ7Q09NQklOSU5HIFZFUlRJQ0FMIExJTkUgQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBWRVJUSUNBTCBMSU5FIEFCT1ZFO1Rvbm9zOzs7CiswMzBFO0NPTUJJTklORyBET1VCTEUgVkVSVElDQUwgTElORSBBQk9WRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIERPVUJMRSBWRVJUSUNBTCBMSU5FIEFCT1ZFOzs7OworMDMwRjtDT01CSU5JTkcgRE9VQkxFIEdSQVZFIEFDQ0VOVDtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIERPVUJMRSBHUkFWRTs7OzsKKzAzMTA7Q09NQklOSU5HIENBTkRSQUJJTkRVO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgQ0FORFJBQklORFU7Ozs7CiswMzExO0NPTUJJTklORyBJTlZFUlRFRCBCUkVWRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIElOVkVSVEVEIEJSRVZFOzs7OworMDMxMjtDT01CSU5JTkcgVFVSTkVEIENPTU1BIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgVFVSTkVEIENPTU1BIEFCT1ZFOzs7OworMDMxMztDT01CSU5JTkcgQ09NTUEgQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBDT01NQSBBQk9WRTtQc2lsaTs7OworMDMxNDtDT01CSU5JTkcgUkVWRVJTRUQgQ09NTUEgQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBSRVZFUlNFRCBDT01NQSBBQk9WRTtEYXNpYTs7OworMDMxNTtDT01CSU5JTkcgQ09NTUEgQUJPVkUgUklHSFQ7TW47MjMyO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBDT01NQSBBQk9WRSBSSUdIVDs7OzsKKzAzMTY7Q09NQklOSU5HIEdSQVZFIEFDQ0VOVCBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIEdSQVZFIEJFTE9XOzs7OworMDMxNztDT01CSU5JTkcgQUNVVEUgQUNDRU5UIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgQUNVVEUgQkVMT1c7Ozs7CiswMzE4O0NPTUJJTklORyBMRUZUIFRBQ0sgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBMRUZUIFRBQ0sgQkVMT1c7Ozs7CiswMzE5O0NPTUJJTklORyBSSUdIVCBUQUNLIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgUklHSFQgVEFDSyBCRUxPVzs7OzsKKzAzMUE7Q09NQklOSU5HIExFRlQgQU5HTEUgQUJPVkU7TW47MjMyO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBMRUZUIEFOR0xFIEFCT1ZFOzs7OworMDMxQjtDT01CSU5JTkcgSE9STjtNbjsyMTY7TlNNOzs7OztOO05PTi1TUEFDSU5HIEhPUk47Ozs7CiswMzFDO0NPTUJJTklORyBMRUZUIEhBTEYgUklORyBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIExFRlQgSEFMRiBSSU5HIEJFTE9XOzs7OworMDMxRDtDT01CSU5JTkcgVVAgVEFDSyBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFVQIFRBQ0sgQkVMT1c7Ozs7CiswMzFFO0NPTUJJTklORyBET1dOIFRBQ0sgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBET1dOIFRBQ0sgQkVMT1c7Ozs7CiswMzFGO0NPTUJJTklORyBQTFVTIFNJR04gQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBQTFVTIFNJR04gQkVMT1c7Ozs7CiswMzIwO0NPTUJJTklORyBNSU5VUyBTSUdOIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgTUlOVVMgU0lHTiBCRUxPVzs7OzsKKzAzMjE7Q09NQklOSU5HIFBBTEFUQUxJWkVEIEhPT0sgQkVMT1c7TW47MjAyO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBQQUxBVEFMSVpFRCBIT09LIEJFTE9XOzs7OworMDMyMjtDT01CSU5JTkcgUkVUUk9GTEVYIEhPT0sgQkVMT1c7TW47MjAyO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBSRVRST0ZMRVggSE9PSyBCRUxPVzs7OzsKKzAzMjM7Q09NQklOSU5HIERPVCBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIERPVCBCRUxPVzs7OzsKKzAzMjQ7Q09NQklOSU5HIERJQUVSRVNJUyBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIERPVUJMRSBET1QgQkVMT1c7Ozs7CiswMzI1O0NPTUJJTklORyBSSU5HIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgUklORyBCRUxPVzs7OzsKKzAzMjY7Q09NQklOSU5HIENPTU1BIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgQ09NTUEgQkVMT1c7Ozs7CiswMzI3O0NPTUJJTklORyBDRURJTExBO01uOzIwMjtOU007Ozs7O047Tk9OLVNQQUNJTkcgQ0VESUxMQTs7OzsKKzAzMjg7Q09NQklOSU5HIE9HT05FSztNbjsyMDI7TlNNOzs7OztOO05PTi1TUEFDSU5HIE9HT05FSzs7OzsKKzAzMjk7Q09NQklOSU5HIFZFUlRJQ0FMIExJTkUgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBWRVJUSUNBTCBMSU5FIEJFTE9XOzs7OworMDMyQTtDT01CSU5JTkcgQlJJREdFIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgQlJJREdFIEJFTE9XOzs7OworMDMyQjtDT01CSU5JTkcgSU5WRVJURUQgRE9VQkxFIEFSQ0ggQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBJTlZFUlRFRCBET1VCTEUgQVJDSCBCRUxPVzs7OzsKKzAzMkM7Q09NQklOSU5HIENBUk9OIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgSEFDRUsgQkVMT1c7Ozs7CiswMzJEO0NPTUJJTklORyBDSVJDVU1GTEVYIEFDQ0VOVCBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIENJUkNVTUZMRVggQkVMT1c7Ozs7CiswMzJFO0NPTUJJTklORyBCUkVWRSBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIEJSRVZFIEJFTE9XOzs7OworMDMyRjtDT01CSU5JTkcgSU5WRVJURUQgQlJFVkUgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBJTlZFUlRFRCBCUkVWRSBCRUxPVzs7OzsKKzAzMzA7Q09NQklOSU5HIFRJTERFIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgVElMREUgQkVMT1c7Ozs7CiswMzMxO0NPTUJJTklORyBNQUNST04gQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBNQUNST04gQkVMT1c7Ozs7CiswMzMyO0NPTUJJTklORyBMT1cgTElORTtNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFVOREVSU0NPUkU7Ozs7CiswMzMzO0NPTUJJTklORyBET1VCTEUgTE9XIExJTkU7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBET1VCTEUgVU5ERVJTQ09SRTs7OzsKKzAzMzQ7Q09NQklOSU5HIFRJTERFIE9WRVJMQVk7TW47MTtOU007Ozs7O047Tk9OLVNQQUNJTkcgVElMREUgT1ZFUkxBWTs7OzsKKzAzMzU7Q09NQklOSU5HIFNIT1JUIFNUUk9LRSBPVkVSTEFZO01uOzE7TlNNOzs7OztOO05PTi1TUEFDSU5HIFNIT1JUIEJBUiBPVkVSTEFZOzs7OworMDMzNjtDT01CSU5JTkcgTE9ORyBTVFJPS0UgT1ZFUkxBWTtNbjsxO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBMT05HIEJBUiBPVkVSTEFZOzs7OworMDMzNztDT01CSU5JTkcgU0hPUlQgU09MSURVUyBPVkVSTEFZO01uOzE7TlNNOzs7OztOO05PTi1TUEFDSU5HIFNIT1JUIFNMQVNIIE9WRVJMQVk7Ozs7CiswMzM4O0NPTUJJTklORyBMT05HIFNPTElEVVMgT1ZFUkxBWTtNbjsxO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBMT05HIFNMQVNIIE9WRVJMQVk7Ozs7CiswMzM5O0NPTUJJTklORyBSSUdIVCBIQUxGIFJJTkcgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBSSUdIVCBIQUxGIFJJTkcgQkVMT1c7Ozs7CiswMzNBO0NPTUJJTklORyBJTlZFUlRFRCBCUklER0UgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBJTlZFUlRFRCBCUklER0UgQkVMT1c7Ozs7CiswMzNCO0NPTUJJTklORyBTUVVBUkUgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBTUVVBUkUgQkVMT1c7Ozs7CiswMzNDO0NPTUJJTklORyBTRUFHVUxMIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgU0VBR1VMTCBCRUxPVzs7OzsKKzAzM0Q7Q09NQklOSU5HIFggQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBYIEFCT1ZFOzs7OworMDMzRTtDT01CSU5JTkcgVkVSVElDQUwgVElMREU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBWRVJUSUNBTCBUSUxERTs7OzsKKzAzM0Y7Q09NQklOSU5HIERPVUJMRSBPVkVSTElORTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIERPVUJMRSBPVkVSU0NPUkU7Ozs7CiswMzQwO0NPTUJJTklORyBHUkFWRSBUT05FIE1BUks7TW47MjMwO05TTTswMzAwOzs7O047Tk9OLVNQQUNJTkcgR1JBVkUgVE9ORSBNQVJLO1ZpZXRuYW1lc2U7OzsKKzAzNDE7Q09NQklOSU5HIEFDVVRFIFRPTkUgTUFSSztNbjsyMzA7TlNNOzAzMDE7Ozs7TjtOT04tU1BBQ0lORyBBQ1VURSBUT05FIE1BUks7VmlldG5hbWVzZTs7OworMDM0MjtDT01CSU5JTkcgR1JFRUsgUEVSSVNQT01FTkk7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswMzQzO0NPTUJJTklORyBHUkVFSyBLT1JPTklTO01uOzIzMDtOU007MDMxMzs7OztOOzs7OzsKKzAzNDQ7Q09NQklOSU5HIEdSRUVLIERJQUxZVElLQSBUT05PUztNbjsyMzA7TlNNOzAzMDggMDMwMTs7OztOO0dSRUVLIE5PTi1TUEFDSU5HIERJQUVSRVNJUyBUT05PUzs7OzsKKzAzNDU7Q09NQklOSU5HIEdSRUVLIFlQT0dFR1JBTU1FTkk7TW47MjQwO05TTTs7Ozs7TjtHUkVFSyBOT04tU1BBQ0lORyBJT1RBIEJFTE9XOzswMzk5OzswMzk5CiswMzQ2O0NPTUJJTklORyBCUklER0UgQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswMzQ3O0NPTUJJTklORyBFUVVBTFMgU0lHTiBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzAzNDg7Q09NQklOSU5HIERPVUJMRSBWRVJUSUNBTCBMSU5FIEJFTE9XO01uOzIyMDtOU007Ozs7O047Ozs7OworMDM0OTtDT01CSU5JTkcgTEVGVCBBTkdMRSBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzAzNEE7Q09NQklOSU5HIE5PVCBUSUxERSBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzAzNEI7Q09NQklOSU5HIEhPTU9USEVUSUMgQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswMzRDO0NPTUJJTklORyBBTE1PU1QgRVFVQUwgVE8gQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswMzREO0NPTUJJTklORyBMRUZUIFJJR0hUIEFSUk9XIEJFTE9XO01uOzIyMDtOU007Ozs7O047Ozs7OworMDM0RTtDT01CSU5JTkcgVVBXQVJEUyBBUlJPVyBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzAzNjA7Q09NQklOSU5HIERPVUJMRSBUSUxERTtNbjsyMzQ7TlNNOzs7OztOOzs7OzsKKzAzNjE7Q09NQklOSU5HIERPVUJMRSBJTlZFUlRFRCBCUkVWRTtNbjsyMzQ7TlNNOzs7OztOOzs7OzsKKzAzNjI7Q09NQklOSU5HIERPVUJMRSBSSUdIVFdBUkRTIEFSUk9XIEJFTE9XO01uOzIzMztOU007Ozs7O047Ozs7OworMDM3NDtHUkVFSyBOVU1FUkFMIFNJR047U2s7MDtPTjswMkI5Ozs7O047R1JFRUsgVVBQRVIgTlVNRVJBTCBTSUdOO0RleGlhIGtlcmFpYTs7OworMDM3NTtHUkVFSyBMT1dFUiBOVU1FUkFMIFNJR047U2s7MDtPTjs7Ozs7Tjs7QXJpc3Rlcmkga2VyYWlhOzs7CiswMzdBO0dSRUVLIFlQT0dFR1JBTU1FTkk7TG07MDtMOzxjb21wYXQ+IDAwMjAgMDM0NTs7OztOO0dSRUVLIFNQQUNJTkcgSU9UQSBCRUxPVzs7OzsKKzAzN0U7R1JFRUsgUVVFU1RJT04gTUFSSztQbzswO09OOzAwM0I7Ozs7Tjs7RXJvdGltYXRpa287OzsKKzAzODQ7R1JFRUsgVE9OT1M7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMDE7Ozs7TjtHUkVFSyBTUEFDSU5HIFRPTk9TOzs7OworMDM4NTtHUkVFSyBESUFMWVRJS0EgVE9OT1M7U2s7MDtPTjswMEE4IDAzMDE7Ozs7TjtHUkVFSyBTUEFDSU5HIERJQUVSRVNJUyBUT05PUzs7OzsKKzAzODY7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBUT05PUztMdTswO0w7MDM5MSAwMzAxOzs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgVE9OT1M7OzswM0FDOworMDM4NztHUkVFSyBBTk8gVEVMRUlBO1BvOzA7T047MDBCNzs7OztOOzs7OzsKKzAzODg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVBTSUxPTiBXSVRIIFRPTk9TO0x1OzA7TDswMzk1IDAzMDE7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OIFRPTk9TOzs7MDNBRDsKKzAzODk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggVE9OT1M7THU7MDtMOzAzOTcgMDMwMTs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBUT05PUzs7OzAzQUU7CiswMzhBO0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBUT05PUztMdTswO0w7MDM5OSAwMzAxOzs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBUT05PUzs7OzAzQUY7CiswMzhDO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NSUNST04gV0lUSCBUT05PUztMdTswO0w7MDM5RiAwMzAxOzs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTiBUT05PUzs7OzAzQ0M7CiswMzhFO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gV0lUSCBUT05PUztMdTswO0w7MDNBNSAwMzAxOzs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBUT05PUzs7OzAzQ0Q7CiswMzhGO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggVE9OT1M7THU7MDtMOzAzQTkgMDMwMTs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFRPTk9TOzs7MDNDRTsKKzAzOTA7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBESUFMWVRJS0EgQU5EIFRPTk9TO0xsOzA7TDswM0NBIDAzMDE7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBESUFFUkVTSVMgVE9OT1M7Ozs7CiswMzkxO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBO0x1OzA7TDs7Ozs7Tjs7OzswM0IxOworMDM5MjtHUkVFSyBDQVBJVEFMIExFVFRFUiBCRVRBO0x1OzA7TDs7Ozs7Tjs7OzswM0IyOworMDM5MztHUkVFSyBDQVBJVEFMIExFVFRFUiBHQU1NQTtMdTswO0w7Ozs7O047Ozs7MDNCMzsKKzAzOTQ7R1JFRUsgQ0FQSVRBTCBMRVRURVIgREVMVEE7THU7MDtMOzs7OztOOzs7OzAzQjQ7CiswMzk1O0dSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT047THU7MDtMOzs7OztOOzs7OzAzQjU7CiswMzk2O0dSRUVLIENBUElUQUwgTEVUVEVSIFpFVEE7THU7MDtMOzs7OztOOzs7OzAzQjY7CiswMzk3O0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQTtMdTswO0w7Ozs7O047Ozs7MDNCNzsKKzAzOTg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgVEhFVEE7THU7MDtMOzs7OztOOzs7OzAzQjg7CiswMzk5O0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEE7THU7MDtMOzs7OztOOzs7OzAzQjk7CiswMzlBO0dSRUVLIENBUElUQUwgTEVUVEVSIEtBUFBBO0x1OzA7TDs7Ozs7Tjs7OzswM0JBOworMDM5QjtHUkVFSyBDQVBJVEFMIExFVFRFUiBMQU1EQTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgTEFNQkRBOzs7MDNCQjsKKzAzOUM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgTVU7THU7MDtMOzs7OztOOzs7OzAzQkM7CiswMzlEO0dSRUVLIENBUElUQUwgTEVUVEVSIE5VO0x1OzA7TDs7Ozs7Tjs7OzswM0JEOworMDM5RTtHUkVFSyBDQVBJVEFMIExFVFRFUiBYSTtMdTswO0w7Ozs7O047Ozs7MDNCRTsKKzAzOUY7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTjtMdTswO0w7Ozs7O047Ozs7MDNCRjsKKzAzQTA7R1JFRUsgQ0FQSVRBTCBMRVRURVIgUEk7THU7MDtMOzs7OztOOzs7OzAzQzA7CiswM0ExO0dSRUVLIENBUElUQUwgTEVUVEVSIFJITztMdTswO0w7Ozs7O047Ozs7MDNDMTsKKzAzQTM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgU0lHTUE7THU7MDtMOzs7OztOOzs7OzAzQzM7CiswM0E0O0dSRUVLIENBUElUQUwgTEVUVEVSIFRBVTtMdTswO0w7Ozs7O047Ozs7MDNDNDsKKzAzQTU7R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTjtMdTswO0w7Ozs7O047Ozs7MDNDNTsKKzAzQTY7R1JFRUsgQ0FQSVRBTCBMRVRURVIgUEhJO0x1OzA7TDs7Ozs7Tjs7OzswM0M2OworMDNBNztHUkVFSyBDQVBJVEFMIExFVFRFUiBDSEk7THU7MDtMOzs7OztOOzs7OzAzQzc7CiswM0E4O0dSRUVLIENBUElUQUwgTEVUVEVSIFBTSTtMdTswO0w7Ozs7O047Ozs7MDNDODsKKzAzQTk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0E7THU7MDtMOzs7OztOOzs7OzAzQzk7CiswM0FBO0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBESUFMWVRJS0E7THU7MDtMOzAzOTkgMDMwODs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgRElBRVJFU0lTOzs7MDNDQTsKKzAzQUI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBXSVRIIERJQUxZVElLQTtMdTswO0w7MDNBNSAwMzA4Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBESUFFUkVTSVM7OzswM0NCOworMDNBQztHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBUT05PUztMbDswO0w7MDNCMSAwMzAxOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFRPTk9TOzswMzg2OzswMzg2CiswM0FEO0dSRUVLIFNNQUxMIExFVFRFUiBFUFNJTE9OIFdJVEggVE9OT1M7TGw7MDtMOzAzQjUgMDMwMTs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBFUFNJTE9OIFRPTk9TOzswMzg4OzswMzg4CiswM0FFO0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBUT05PUztMbDswO0w7MDNCNyAwMzAxOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBUT05PUzs7MDM4OTs7MDM4OQorMDNBRjtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIFRPTk9TO0xsOzA7TDswM0I5IDAzMDE7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBUT05PUzs7MDM4QTs7MDM4QQorMDNCMDtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIERJQUxZVElLQSBBTkQgVE9OT1M7TGw7MDtMOzAzQ0IgMDMwMTs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIERJQUVSRVNJUyBUT05PUzs7OzsKKzAzQjE7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBO0xsOzA7TDs7Ozs7Tjs7OzAzOTE7OzAzOTEKKzAzQjI7R1JFRUsgU01BTEwgTEVUVEVSIEJFVEE7TGw7MDtMOzs7OztOOzs7MDM5Mjs7MDM5MgorMDNCMztHUkVFSyBTTUFMTCBMRVRURVIgR0FNTUE7TGw7MDtMOzs7OztOOzs7MDM5Mzs7MDM5MworMDNCNDtHUkVFSyBTTUFMTCBMRVRURVIgREVMVEE7TGw7MDtMOzs7OztOOzs7MDM5NDs7MDM5NAorMDNCNTtHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTjtMbDswO0w7Ozs7O047OzswMzk1OzswMzk1CiswM0I2O0dSRUVLIFNNQUxMIExFVFRFUiBaRVRBO0xsOzA7TDs7Ozs7Tjs7OzAzOTY7OzAzOTYKKzAzQjc7R1JFRUsgU01BTEwgTEVUVEVSIEVUQTtMbDswO0w7Ozs7O047OzswMzk3OzswMzk3CiswM0I4O0dSRUVLIFNNQUxMIExFVFRFUiBUSEVUQTtMbDswO0w7Ozs7O047OzswMzk4OzswMzk4CiswM0I5O0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBO0xsOzA7TDs7Ozs7Tjs7OzAzOTk7OzAzOTkKKzAzQkE7R1JFRUsgU01BTEwgTEVUVEVSIEtBUFBBO0xsOzA7TDs7Ozs7Tjs7OzAzOUE7OzAzOUEKKzAzQkI7R1JFRUsgU01BTEwgTEVUVEVSIExBTURBO0xsOzA7TDs7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgTEFNQkRBOzswMzlCOzswMzlCCiswM0JDO0dSRUVLIFNNQUxMIExFVFRFUiBNVTtMbDswO0w7Ozs7O047OzswMzlDOzswMzlDCiswM0JEO0dSRUVLIFNNQUxMIExFVFRFUiBOVTtMbDswO0w7Ozs7O047OzswMzlEOzswMzlECiswM0JFO0dSRUVLIFNNQUxMIExFVFRFUiBYSTtMbDswO0w7Ozs7O047OzswMzlFOzswMzlFCiswM0JGO0dSRUVLIFNNQUxMIExFVFRFUiBPTUlDUk9OO0xsOzA7TDs7Ozs7Tjs7OzAzOUY7OzAzOUYKKzAzQzA7R1JFRUsgU01BTEwgTEVUVEVSIFBJO0xsOzA7TDs7Ozs7Tjs7OzAzQTA7OzAzQTAKKzAzQzE7R1JFRUsgU01BTEwgTEVUVEVSIFJITztMbDswO0w7Ozs7O047OzswM0ExOzswM0ExCiswM0MyO0dSRUVLIFNNQUxMIExFVFRFUiBGSU5BTCBTSUdNQTtMbDswO0w7Ozs7O047OzswM0EzOzswM0EzCiswM0MzO0dSRUVLIFNNQUxMIExFVFRFUiBTSUdNQTtMbDswO0w7Ozs7O047OzswM0EzOzswM0EzCiswM0M0O0dSRUVLIFNNQUxMIExFVFRFUiBUQVU7TGw7MDtMOzs7OztOOzs7MDNBNDs7MDNBNAorMDNDNTtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTjtMbDswO0w7Ozs7O047OzswM0E1OzswM0E1CiswM0M2O0dSRUVLIFNNQUxMIExFVFRFUiBQSEk7TGw7MDtMOzs7OztOOzs7MDNBNjs7MDNBNgorMDNDNztHUkVFSyBTTUFMTCBMRVRURVIgQ0hJO0xsOzA7TDs7Ozs7Tjs7OzAzQTc7OzAzQTcKKzAzQzg7R1JFRUsgU01BTEwgTEVUVEVSIFBTSTtMbDswO0w7Ozs7O047OzswM0E4OzswM0E4CiswM0M5O0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQTtMbDswO0w7Ozs7O047OzswM0E5OzswM0E5CiswM0NBO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggRElBTFlUSUtBO0xsOzA7TDswM0I5IDAzMDg7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBESUFFUkVTSVM7OzAzQUE7OzAzQUEKKzAzQ0I7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBESUFMWVRJS0E7TGw7MDtMOzAzQzUgMDMwODs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIERJQUVSRVNJUzs7MDNBQjs7MDNBQgorMDNDQztHUkVFSyBTTUFMTCBMRVRURVIgT01JQ1JPTiBXSVRIIFRPTk9TO0xsOzA7TDswM0JGIDAzMDE7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgT01JQ1JPTiBUT05PUzs7MDM4Qzs7MDM4QworMDNDRDtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIFRPTk9TO0xsOzA7TDswM0M1IDAzMDE7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBUT05PUzs7MDM4RTs7MDM4RQorMDNDRTtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBUT05PUztMbDswO0w7MDNDOSAwMzAxOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFRPTk9TOzswMzhGOzswMzhGCiswM0QwO0dSRUVLIEJFVEEgU1lNQk9MO0xsOzA7TDs8Y29tcGF0PiAwM0IyOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIENVUkxFRCBCRVRBOzswMzkyOzswMzkyCiswM0QxO0dSRUVLIFRIRVRBIFNZTUJPTDtMbDswO0w7PGNvbXBhdD4gMDNCODs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBTQ1JJUFQgVEhFVEE7OzAzOTg7OzAzOTgKKzAzRDI7R1JFRUsgVVBTSUxPTiBXSVRIIEhPT0sgU1lNQk9MO0x1OzA7TDs8Y29tcGF0PiAwM0E1Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBIT09LOzs7OworMDNEMztHUkVFSyBVUFNJTE9OIFdJVEggQUNVVEUgQU5EIEhPT0sgU1lNQk9MO0x1OzA7TDswM0QyIDAzMDE7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIEhPT0sgVE9OT1M7Ozs7CiswM0Q0O0dSRUVLIFVQU0lMT04gV0lUSCBESUFFUkVTSVMgQU5EIEhPT0sgU1lNQk9MO0x1OzA7TDswM0QyIDAzMDg7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIEhPT0sgRElBRVJFU0lTOzs7OworMDNENTtHUkVFSyBQSEkgU1lNQk9MO0xsOzA7TDs8Y29tcGF0PiAwM0M2Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIFNDUklQVCBQSEk7OzAzQTY7OzAzQTYKKzAzRDY7R1JFRUsgUEkgU1lNQk9MO0xsOzA7TDs8Y29tcGF0PiAwM0MwOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFBJOzswM0EwOzswM0EwCiswM0Q3O0dSRUVLIEtBSSBTWU1CT0w7TGw7MDtMOzs7OztOOzs7OzsKKzAzREE7R1JFRUsgTEVUVEVSIFNUSUdNQTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgU1RJR01BOzs7MDNEQjsKKzAzREI7R1JFRUsgU01BTEwgTEVUVEVSIFNUSUdNQTtMbDswO0w7Ozs7O047OzswM0RBOzswM0RBCiswM0RDO0dSRUVLIExFVFRFUiBESUdBTU1BO0x1OzA7TDs7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBESUdBTU1BOzs7MDNERDsKKzAzREQ7R1JFRUsgU01BTEwgTEVUVEVSIERJR0FNTUE7TGw7MDtMOzs7OztOOzs7MDNEQzs7MDNEQworMDNERTtHUkVFSyBMRVRURVIgS09QUEE7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIEtPUFBBOzs7MDNERjsKKzAzREY7R1JFRUsgU01BTEwgTEVUVEVSIEtPUFBBO0xsOzA7TDs7Ozs7Tjs7OzAzREU7OzAzREUKKzAzRTA7R1JFRUsgTEVUVEVSIFNBTVBJO0x1OzA7TDs7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBTQU1QSTs7OzAzRTE7CiswM0UxO0dSRUVLIFNNQUxMIExFVFRFUiBTQU1QSTtMbDswO0w7Ozs7O047OzswM0UwOzswM0UwCiswM0UyO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBTSEVJO0x1OzA7TDs7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBTSEVJOzs7MDNFMzsKKzAzRTM7Q09QVElDIFNNQUxMIExFVFRFUiBTSEVJO0xsOzA7TDs7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgU0hFSTs7MDNFMjs7MDNFMgorMDNFNDtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgRkVJO0x1OzA7TDs7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBGRUk7OzswM0U1OworMDNFNTtDT1BUSUMgU01BTEwgTEVUVEVSIEZFSTtMbDswO0w7Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIEZFSTs7MDNFNDs7MDNFNAorMDNFNjtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgS0hFSTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgS0hFSTs7OzAzRTc7CiswM0U3O0NPUFRJQyBTTUFMTCBMRVRURVIgS0hFSTtMbDswO0w7Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIEtIRUk7OzAzRTY7OzAzRTYKKzAzRTg7Q09QVElDIENBUElUQUwgTEVUVEVSIEhPUkk7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIEhPUkk7OzswM0U5OworMDNFOTtDT1BUSUMgU01BTEwgTEVUVEVSIEhPUkk7TGw7MDtMOzs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBIT1JJOzswM0U4OzswM0U4CiswM0VBO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBHQU5HSUE7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIEdBTkdJQTs7OzAzRUI7CiswM0VCO0NPUFRJQyBTTUFMTCBMRVRURVIgR0FOR0lBO0xsOzA7TDs7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgR0FOR0lBOzswM0VBOzswM0VBCiswM0VDO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBTSElNQTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgU0hJTUE7OzswM0VEOworMDNFRDtDT1BUSUMgU01BTEwgTEVUVEVSIFNISU1BO0xsOzA7TDs7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgU0hJTUE7OzAzRUM7OzAzRUMKKzAzRUU7Q09QVElDIENBUElUQUwgTEVUVEVSIERFSTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgREVJOzs7MDNFRjsKKzAzRUY7Q09QVElDIFNNQUxMIExFVFRFUiBERUk7TGw7MDtMOzs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBERUk7OzAzRUU7OzAzRUUKKzAzRjA7R1JFRUsgS0FQUEEgU1lNQk9MO0xsOzA7TDs8Y29tcGF0PiAwM0JBOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIFNDUklQVCBLQVBQQTs7MDM5QTs7MDM5QQorMDNGMTtHUkVFSyBSSE8gU1lNQk9MO0xsOzA7TDs8Y29tcGF0PiAwM0MxOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIFRBSUxFRCBSSE87OzAzQTE7OzAzQTEKKzAzRjI7R1JFRUsgTFVOQVRFIFNJR01BIFNZTUJPTDtMbDswO0w7PGNvbXBhdD4gMDNDMjs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBMVU5BVEUgU0lHTUE7OzAzQTM7OzAzQTMKKzAzRjM7R1JFRUsgTEVUVEVSIFlPVDtMbDswO0w7Ozs7O047Ozs7OworMDQwMDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJRSBXSVRIIEdSQVZFO0x1OzA7TDswNDE1IDAzMDA7Ozs7Tjs7OzswNDUwOworMDQwMTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJTztMdTswO0w7MDQxNSAwMzA4Ozs7O047Ozs7MDQ1MTsKKzA0MDI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgREpFO0x1OzA7TDs7Ozs7Tjs7U2VyYm9jcm9hdGlhbjs7MDQ1MjsKKzA0MDM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgR0pFO0x1OzA7TDswNDEzIDAzMDE7Ozs7Tjs7OzswNDUzOworMDQwNDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBVS1JBSU5JQU4gSUU7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEU7OzswNDU0OworMDQwNTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBEWkU7THU7MDtMOzs7OztOOzs7OzA0NTU7CiswNDA2O0NZUklMTElDIENBUElUQUwgTEVUVEVSIEJZRUxPUlVTU0lBTi1VS1JBSU5JQU4gSTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSTs7OzA0NTY7CiswNDA3O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFlJO0x1OzA7TDswNDA2IDAzMDg7Ozs7Tjs7VWtyYWluaWFuOzswNDU3OworMDQwODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBKRTtMdTswO0w7Ozs7O047Ozs7MDQ1ODsKKzA0MDk7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgTEpFO0x1OzA7TDs7Ozs7Tjs7OzswNDU5OworMDQwQTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBOSkU7THU7MDtMOzs7OztOOzs7OzA0NUE7CiswNDBCO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFRTSEU7THU7MDtMOzs7OztOOztTZXJib2Nyb2F0aWFuOzswNDVCOworMDQwQztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLSkU7THU7MDtMOzA0MUEgMDMwMTs7OztOOzs7OzA0NUM7CiswNDBEO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEkgV0lUSCBHUkFWRTtMdTswO0w7MDQxOCAwMzAwOzs7O047Ozs7MDQ1RDsKKzA0MEU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0hPUlQgVTtMdTswO0w7MDQyMyAwMzA2Ozs7O047O0J5ZWxvcnVzc2lhbjs7MDQ1RTsKKzA0MEY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRFpIRTtMdTswO0w7Ozs7O047Ozs7MDQ1RjsKKzA0MTA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQTtMdTswO0w7Ozs7O047Ozs7MDQzMDsKKzA0MTE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQkU7THU7MDtMOzs7OztOOzs7OzA0MzE7CiswNDEyO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFZFO0x1OzA7TDs7Ozs7Tjs7OzswNDMyOworMDQxMztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBHSEU7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEdFOzs7MDQzMzsKKzA0MTQ7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgREU7THU7MDtMOzs7OztOOzs7OzA0MzQ7CiswNDE1O0NZUklMTElDIENBUElUQUwgTEVUVEVSIElFO0x1OzA7TDs7Ozs7Tjs7OzswNDM1OworMDQxNjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBaSEU7THU7MDtMOzs7OztOOzs7OzA0MzY7CiswNDE3O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFpFO0x1OzA7TDs7Ozs7Tjs7OzswNDM3OworMDQxODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJSTs7OzA0Mzg7CiswNDE5O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNIT1JUIEk7THU7MDtMOzA0MTggMDMwNjs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNIT1JUIElJOzs7MDQzOTsKKzA0MUE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0E7THU7MDtMOzs7OztOOzs7OzA0M0E7CiswNDFCO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVMO0x1OzA7TDs7Ozs7Tjs7OzswNDNCOworMDQxQztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFTTtMdTswO0w7Ozs7O047Ozs7MDQzQzsKKzA0MUQ7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRU47THU7MDtMOzs7OztOOzs7OzA0M0Q7CiswNDFFO0NZUklMTElDIENBUElUQUwgTEVUVEVSIE87THU7MDtMOzs7OztOOzs7OzA0M0U7CiswNDFGO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFBFO0x1OzA7TDs7Ozs7Tjs7OzswNDNGOworMDQyMDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFUjtMdTswO0w7Ozs7O047Ozs7MDQ0MDsKKzA0MjE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRVM7THU7MDtMOzs7OztOOzs7OzA0NDE7CiswNDIyO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFRFO0x1OzA7TDs7Ozs7Tjs7OzswNDQyOworMDQyMztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBVO0x1OzA7TDs7Ozs7Tjs7OzswNDQzOworMDQyNDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFRjtMdTswO0w7Ozs7O047Ozs7MDQ0NDsKKzA0MjU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSEE7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtIQTs7OzA0NDU7CiswNDI2O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFRTRTtMdTswO0w7Ozs7O047Ozs7MDQ0NjsKKzA0Mjc7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQ0hFO0x1OzA7TDs7Ozs7Tjs7OzswNDQ3OworMDQyODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTSEE7THU7MDtMOzs7OztOOzs7OzA0NDg7CiswNDI5O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNIQ0hBO0x1OzA7TDs7Ozs7Tjs7OzswNDQ5OworMDQyQTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBIQVJEIFNJR047THU7MDtMOzs7OztOOzs7OzA0NEE7CiswNDJCO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFlFUlU7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFlFUkk7OzswNDRCOworMDQyQztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTT0ZUIFNJR047THU7MDtMOzs7OztOOzs7OzA0NEM7CiswNDJEO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEU7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFJFVkVSU0VEIEU7OzswNDREOworMDQyRTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBZVTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSVU7OzswNDRFOworMDQyRjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBZQTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSUE7OzswNDRGOworMDQzMDtDWVJJTExJQyBTTUFMTCBMRVRURVIgQTtMbDswO0w7Ozs7O047OzswNDEwOzswNDEwCiswNDMxO0NZUklMTElDIFNNQUxMIExFVFRFUiBCRTtMbDswO0w7Ozs7O047OzswNDExOzswNDExCiswNDMyO0NZUklMTElDIFNNQUxMIExFVFRFUiBWRTtMbDswO0w7Ozs7O047OzswNDEyOzswNDEyCiswNDMzO0NZUklMTElDIFNNQUxMIExFVFRFUiBHSEU7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBHRTs7MDQxMzs7MDQxMworMDQzNDtDWVJJTExJQyBTTUFMTCBMRVRURVIgREU7TGw7MDtMOzs7OztOOzs7MDQxNDs7MDQxNAorMDQzNTtDWVJJTExJQyBTTUFMTCBMRVRURVIgSUU7TGw7MDtMOzs7OztOOzs7MDQxNTs7MDQxNQorMDQzNjtDWVJJTExJQyBTTUFMTCBMRVRURVIgWkhFO0xsOzA7TDs7Ozs7Tjs7OzA0MTY7OzA0MTYKKzA0Mzc7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFpFO0xsOzA7TDs7Ozs7Tjs7OzA0MTc7OzA0MTcKKzA0Mzg7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEk7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBJSTs7MDQxODs7MDQxOAorMDQzOTtDWVJJTExJQyBTTUFMTCBMRVRURVIgU0hPUlQgSTtMbDswO0w7MDQzOCAwMzA2Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNIT1JUIElJOzswNDE5OzswNDE5CiswNDNBO0NZUklMTElDIFNNQUxMIExFVFRFUiBLQTtMbDswO0w7Ozs7O047OzswNDFBOzswNDFBCiswNDNCO0NZUklMTElDIFNNQUxMIExFVFRFUiBFTDtMbDswO0w7Ozs7O047OzswNDFCOzswNDFCCiswNDNDO0NZUklMTElDIFNNQUxMIExFVFRFUiBFTTtMbDswO0w7Ozs7O047OzswNDFDOzswNDFDCiswNDNEO0NZUklMTElDIFNNQUxMIExFVFRFUiBFTjtMbDswO0w7Ozs7O047OzswNDFEOzswNDFECiswNDNFO0NZUklMTElDIFNNQUxMIExFVFRFUiBPO0xsOzA7TDs7Ozs7Tjs7OzA0MUU7OzA0MUUKKzA0M0Y7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFBFO0xsOzA7TDs7Ozs7Tjs7OzA0MUY7OzA0MUYKKzA0NDA7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVSO0xsOzA7TDs7Ozs7Tjs7OzA0MjA7OzA0MjAKKzA0NDE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVTO0xsOzA7TDs7Ozs7Tjs7OzA0MjE7OzA0MjEKKzA0NDI7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFRFO0xsOzA7TDs7Ozs7Tjs7OzA0MjI7OzA0MjIKKzA0NDM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFU7TGw7MDtMOzs7OztOOzs7MDQyMzs7MDQyMworMDQ0NDtDWVJJTExJQyBTTUFMTCBMRVRURVIgRUY7TGw7MDtMOzs7OztOOzs7MDQyNDs7MDQyNAorMDQ0NTtDWVJJTExJQyBTTUFMTCBMRVRURVIgSEE7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBLSEE7OzA0MjU7OzA0MjUKKzA0NDY7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFRTRTtMbDswO0w7Ozs7O047OzswNDI2OzswNDI2CiswNDQ3O0NZUklMTElDIFNNQUxMIExFVFRFUiBDSEU7TGw7MDtMOzs7OztOOzs7MDQyNzs7MDQyNworMDQ0ODtDWVJJTExJQyBTTUFMTCBMRVRURVIgU0hBO0xsOzA7TDs7Ozs7Tjs7OzA0Mjg7OzA0MjgKKzA0NDk7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNIQ0hBO0xsOzA7TDs7Ozs7Tjs7OzA0Mjk7OzA0MjkKKzA0NEE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEhBUkQgU0lHTjtMbDswO0w7Ozs7O047OzswNDJBOzswNDJBCiswNDRCO0NZUklMTElDIFNNQUxMIExFVFRFUiBZRVJVO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgWUVSSTs7MDQyQjs7MDQyQgorMDQ0QztDWVJJTExJQyBTTUFMTCBMRVRURVIgU09GVCBTSUdOO0xsOzA7TDs7Ozs7Tjs7OzA0MkM7OzA0MkMKKzA0NEQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEU7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBSRVZFUlNFRCBFOzswNDJEOzswNDJECiswNDRFO0NZUklMTElDIFNNQUxMIExFVFRFUiBZVTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElVOzswNDJFOzswNDJFCiswNDRGO0NZUklMTElDIFNNQUxMIExFVFRFUiBZQTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElBOzswNDJGOzswNDJGCiswNDUwO0NZUklMTElDIFNNQUxMIExFVFRFUiBJRSBXSVRIIEdSQVZFO0xsOzA7TDswNDM1IDAzMDA7Ozs7Tjs7OzA0MDA7OzA0MDAKKzA0NTE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElPO0xsOzA7TDswNDM1IDAzMDg7Ozs7Tjs7OzA0MDE7OzA0MDEKKzA0NTI7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIERKRTtMbDswO0w7Ozs7O047O1NlcmJvY3JvYXRpYW47MDQwMjs7MDQwMgorMDQ1MztDWVJJTExJQyBTTUFMTCBMRVRURVIgR0pFO0xsOzA7TDswNDMzIDAzMDE7Ozs7Tjs7OzA0MDM7OzA0MDMKKzA0NTQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFVLUkFJTklBTiBJRTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEU7OzA0MDQ7OzA0MDQKKzA0NTU7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIERaRTtMbDswO0w7Ozs7O047OzswNDA1OzswNDA1CiswNDU2O0NZUklMTElDIFNNQUxMIExFVFRFUiBCWUVMT1JVU1NJQU4tVUtSQUlOSUFOIEk7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBJOzswNDA2OzswNDA2CiswNDU3O0NZUklMTElDIFNNQUxMIExFVFRFUiBZSTtMbDswO0w7MDQ1NiAwMzA4Ozs7O047O1VrcmFpbmlhbjswNDA3OzswNDA3CiswNDU4O0NZUklMTElDIFNNQUxMIExFVFRFUiBKRTtMbDswO0w7Ozs7O047OzswNDA4OzswNDA4CiswNDU5O0NZUklMTElDIFNNQUxMIExFVFRFUiBMSkU7TGw7MDtMOzs7OztOOzs7MDQwOTs7MDQwOQorMDQ1QTtDWVJJTExJQyBTTUFMTCBMRVRURVIgTkpFO0xsOzA7TDs7Ozs7Tjs7OzA0MEE7OzA0MEEKKzA0NUI7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFRTSEU7TGw7MDtMOzs7OztOOztTZXJib2Nyb2F0aWFuOzA0MEI7OzA0MEIKKzA0NUM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtKRTtMbDswO0w7MDQzQSAwMzAxOzs7O047OzswNDBDOzswNDBDCiswNDVEO0NZUklMTElDIFNNQUxMIExFVFRFUiBJIFdJVEggR1JBVkU7TGw7MDtMOzA0MzggMDMwMDs7OztOOzs7MDQwRDs7MDQwRAorMDQ1RTtDWVJJTExJQyBTTUFMTCBMRVRURVIgU0hPUlQgVTtMbDswO0w7MDQ0MyAwMzA2Ozs7O047O0J5ZWxvcnVzc2lhbjswNDBFOzswNDBFCiswNDVGO0NZUklMTElDIFNNQUxMIExFVFRFUiBEWkhFO0xsOzA7TDs7Ozs7Tjs7OzA0MEY7OzA0MEYKKzA0NjA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgT01FR0E7THU7MDtMOzs7OztOOzs7OzA0NjE7CiswNDYxO0NZUklMTElDIFNNQUxMIExFVFRFUiBPTUVHQTtMbDswO0w7Ozs7O047OzswNDYwOzswNDYwCiswNDYyO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFlBVDtMdTswO0w7Ozs7O047Ozs7MDQ2MzsKKzA0NjM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFlBVDtMbDswO0w7Ozs7O047OzswNDYyOzswNDYyCiswNDY0O0NZUklMTElDIENBUElUQUwgTEVUVEVSIElPVElGSUVEIEU7THU7MDtMOzs7OztOOzs7OzA0NjU7CiswNDY1O0NZUklMTElDIFNNQUxMIExFVFRFUiBJT1RJRklFRCBFO0xsOzA7TDs7Ozs7Tjs7OzA0NjQ7OzA0NjQKKzA0NjY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgTElUVExFIFlVUztMdTswO0w7Ozs7O047Ozs7MDQ2NzsKKzA0Njc7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIExJVFRMRSBZVVM7TGw7MDtMOzs7OztOOzs7MDQ2Njs7MDQ2NgorMDQ2ODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJT1RJRklFRCBMSVRUTEUgWVVTO0x1OzA7TDs7Ozs7Tjs7OzswNDY5OworMDQ2OTtDWVJJTExJQyBTTUFMTCBMRVRURVIgSU9USUZJRUQgTElUVExFIFlVUztMbDswO0w7Ozs7O047OzswNDY4OzswNDY4CiswNDZBO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEJJRyBZVVM7THU7MDtMOzs7OztOOzs7OzA0NkI7CiswNDZCO0NZUklMTElDIFNNQUxMIExFVFRFUiBCSUcgWVVTO0xsOzA7TDs7Ozs7Tjs7OzA0NkE7OzA0NkEKKzA0NkM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSU9USUZJRUQgQklHIFlVUztMdTswO0w7Ozs7O047Ozs7MDQ2RDsKKzA0NkQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElPVElGSUVEIEJJRyBZVVM7TGw7MDtMOzs7OztOOzs7MDQ2Qzs7MDQ2QworMDQ2RTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLU0k7THU7MDtMOzs7OztOOzs7OzA0NkY7CiswNDZGO0NZUklMTElDIFNNQUxMIExFVFRFUiBLU0k7TGw7MDtMOzs7OztOOzs7MDQ2RTs7MDQ2RQorMDQ3MDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBQU0k7THU7MDtMOzs7OztOOzs7OzA0NzE7CiswNDcxO0NZUklMTElDIFNNQUxMIExFVFRFUiBQU0k7TGw7MDtMOzs7OztOOzs7MDQ3MDs7MDQ3MAorMDQ3MjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBGSVRBO0x1OzA7TDs7Ozs7Tjs7OzswNDczOworMDQ3MztDWVJJTExJQyBTTUFMTCBMRVRURVIgRklUQTtMbDswO0w7Ozs7O047OzswNDcyOzswNDcyCiswNDc0O0NZUklMTElDIENBUElUQUwgTEVUVEVSIElaSElUU0E7THU7MDtMOzs7OztOOzs7OzA0NzU7CiswNDc1O0NZUklMTElDIFNNQUxMIExFVFRFUiBJWkhJVFNBO0xsOzA7TDs7Ozs7Tjs7OzA0NzQ7OzA0NzQKKzA0NzY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSVpISVRTQSBXSVRIIERPVUJMRSBHUkFWRSBBQ0NFTlQ7THU7MDtMOzA0NzQgMDMwRjs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIElaSElUU0EgRE9VQkxFIEdSQVZFOzs7MDQ3NzsKKzA0Nzc7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElaSElUU0EgV0lUSCBET1VCTEUgR1JBVkUgQUNDRU5UO0xsOzA7TDswNDc1IDAzMEY7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgSVpISVRTQSBET1VCTEUgR1JBVkU7OzA0NzY7OzA0NzYKKzA0Nzg7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVUs7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFVLIERJR1JBUEg7OzswNDc5OworMDQ3OTtDWVJJTExJQyBTTUFMTCBMRVRURVIgVUs7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBVSyBESUdSQVBIOzswNDc4OzswNDc4CiswNDdBO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFJPVU5EIE9NRUdBO0x1OzA7TDs7Ozs7Tjs7OzswNDdCOworMDQ3QjtDWVJJTExJQyBTTUFMTCBMRVRURVIgUk9VTkQgT01FR0E7TGw7MDtMOzs7OztOOzs7MDQ3QTs7MDQ3QQorMDQ3QztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFRJVExPO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBPTUVHQSBUSVRMTzs7OzA0N0Q7CiswNDdEO0NZUklMTElDIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFRJVExPO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgT01FR0EgVElUTE87OzA0N0M7OzA0N0MKKzA0N0U7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgT1Q7THU7MDtMOzs7OztOOzs7OzA0N0Y7CiswNDdGO0NZUklMTElDIFNNQUxMIExFVFRFUiBPVDtMbDswO0w7Ozs7O047OzswNDdFOzswNDdFCiswNDgwO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtPUFBBO0x1OzA7TDs7Ozs7Tjs7OzswNDgxOworMDQ4MTtDWVJJTExJQyBTTUFMTCBMRVRURVIgS09QUEE7TGw7MDtMOzs7OztOOzs7MDQ4MDs7MDQ4MAorMDQ4MjtDWVJJTExJQyBUSE9VU0FORFMgU0lHTjtTbzswO0w7Ozs7O047Ozs7OworMDQ4MztDT01CSU5JTkcgQ1lSSUxMSUMgVElUTE87TW47MjMwO05TTTs7Ozs7TjtDWVJJTExJQyBOT04tU1BBQ0lORyBUSVRMTzs7OzsKKzA0ODQ7Q09NQklOSU5HIENZUklMTElDIFBBTEFUQUxJWkFUSU9OO01uOzIzMDtOU007Ozs7O047Q1lSSUxMSUMgTk9OLVNQQUNJTkcgUEFMQVRBTElaQVRJT047Ozs7CiswNDg1O0NPTUJJTklORyBDWVJJTExJQyBEQVNJQSBQTkVVTUFUQTtNbjsyMzA7TlNNOzs7OztOO0NZUklMTElDIE5PTi1TUEFDSU5HIERBU0lBIFBORVVNQVRBOzs7OworMDQ4NjtDT01CSU5JTkcgQ1lSSUxMSUMgUFNJTEkgUE5FVU1BVEE7TW47MjMwO05TTTs7Ozs7TjtDWVJJTExJQyBOT04tU1BBQ0lORyBQU0lMSSBQTkVVTUFUQTs7OzsKKzA0ODg7Q09NQklOSU5HIENZUklMTElDIEhVTkRSRUQgVEhPVVNBTkRTIFNJR047TWU7MDtOU007Ozs7O047Ozs7OworMDQ4OTtDT01CSU5JTkcgQ1lSSUxMSUMgTUlMTElPTlMgU0lHTjtNZTswO05TTTs7Ozs7Tjs7Ozs7CiswNDhDO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNFTUlTT0ZUIFNJR047THU7MDtMOzs7OztOOzs7OzA0OEQ7CiswNDhEO0NZUklMTElDIFNNQUxMIExFVFRFUiBTRU1JU09GVCBTSUdOO0xsOzA7TDs7Ozs7Tjs7OzA0OEM7OzA0OEMKKzA0OEU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRVIgV0lUSCBUSUNLO0x1OzA7TDs7Ozs7Tjs7OzswNDhGOworMDQ4RjtDWVJJTExJQyBTTUFMTCBMRVRURVIgRVIgV0lUSCBUSUNLO0xsOzA7TDs7Ozs7Tjs7OzA0OEU7OzA0OEUKKzA0OTA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgR0hFIFdJVEggVVBUVVJOO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBHRSBXSVRIIFVQVFVSTjs7OzA0OTE7CiswNDkxO0NZUklMTElDIFNNQUxMIExFVFRFUiBHSEUgV0lUSCBVUFRVUk47TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBHRSBXSVRIIFVQVFVSTjs7MDQ5MDs7MDQ5MAorMDQ5MjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBHSEUgV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEdFIEJBUjs7OzA0OTM7CiswNDkzO0NZUklMTElDIFNNQUxMIExFVFRFUiBHSEUgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBHRSBCQVI7OzA0OTI7OzA0OTIKKzA0OTQ7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgR0hFIFdJVEggTUlERExFIEhPT0s7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEdFIEhPT0s7OzswNDk1OworMDQ5NTtDWVJJTExJQyBTTUFMTCBMRVRURVIgR0hFIFdJVEggTUlERExFIEhPT0s7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBHRSBIT09LOzswNDk0OzswNDk0CiswNDk2O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFpIRSBXSVRIIERFU0NFTkRFUjtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWkhFIFdJVEggUklHSFQgREVTQ0VOREVSOzs7MDQ5NzsKKzA0OTc7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFpIRSBXSVRIIERFU0NFTkRFUjtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFpIRSBXSVRIIFJJR0hUIERFU0NFTkRFUjs7MDQ5Njs7MDQ5NgorMDQ5ODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBaRSBXSVRIIERFU0NFTkRFUjtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWkUgQ0VESUxMQTs7OzA0OTk7CiswNDk5O0NZUklMTElDIFNNQUxMIExFVFRFUiBaRSBXSVRIIERFU0NFTkRFUjtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFpFIENFRElMTEE7OzA0OTg7OzA0OTgKKzA0OUE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0EgV0lUSCBERVNDRU5ERVI7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtBIFdJVEggUklHSFQgREVTQ0VOREVSOzs7MDQ5QjsKKzA0OUI7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtBIFdJVEggREVTQ0VOREVSO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgS0EgV0lUSCBSSUdIVCBERVNDRU5ERVI7OzA0OUE7OzA0OUEKKzA0OUM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0EgV0lUSCBWRVJUSUNBTCBTVFJPS0U7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtBIFZFUlRJQ0FMIEJBUjs7OzA0OUQ7CiswNDlEO0NZUklMTElDIFNNQUxMIExFVFRFUiBLQSBXSVRIIFZFUlRJQ0FMIFNUUk9LRTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtBIFZFUlRJQ0FMIEJBUjs7MDQ5Qzs7MDQ5QworMDQ5RTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLQSBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0EgQkFSOzs7MDQ5RjsKKzA0OUY7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtBIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgS0EgQkFSOzswNDlFOzswNDlFCiswNEEwO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEJBU0hLSVIgS0E7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFJFVkVSU0VEIEdFIEtBOzs7MDRBMTsKKzA0QTE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEJBU0hLSVIgS0E7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBSRVZFUlNFRCBHRSBLQTs7MDRBMDs7MDRBMAorMDRBMjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFTiBXSVRIIERFU0NFTkRFUjtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRU4gV0lUSCBSSUdIVCBERVNDRU5ERVI7OzswNEEzOworMDRBMztDWVJJTExJQyBTTUFMTCBMRVRURVIgRU4gV0lUSCBERVNDRU5ERVI7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBFTiBXSVRIIFJJR0hUIERFU0NFTkRFUjs7MDRBMjs7MDRBMgorMDRBNDtDWVJJTExJQyBDQVBJVEFMIExJR0FUVVJFIEVOIEdIRTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRU4gR0U7OzswNEE1OworMDRBNTtDWVJJTExJQyBTTUFMTCBMSUdBVFVSRSBFTiBHSEU7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBFTiBHRTs7MDRBNDs7MDRBNAorMDRBNjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBQRSBXSVRIIE1JRERMRSBIT09LO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBQRSBIT09LO0Fia2hhc2lhbjs7MDRBNzsKKzA0QTc7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFBFIFdJVEggTUlERExFIEhPT0s7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBQRSBIT09LO0Fia2hhc2lhbjswNEE2OzswNEE2CiswNEE4O0NZUklMTElDIENBUElUQUwgTEVUVEVSIEFCS0hBU0lBTiBIQTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgTyBIT09LOzs7MDRBOTsKKzA0QTk7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEFCS0hBU0lBTiBIQTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIE8gSE9PSzs7MDRBODs7MDRBOAorMDRBQTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFUyBXSVRIIERFU0NFTkRFUjtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRVMgQ0VESUxMQTs7OzA0QUI7CiswNEFCO0NZUklMTElDIFNNQUxMIExFVFRFUiBFUyBXSVRIIERFU0NFTkRFUjtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVTIENFRElMTEE7OzA0QUE7OzA0QUEKKzA0QUM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVEUgV0lUSCBERVNDRU5ERVI7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFRFIFdJVEggUklHSFQgREVTQ0VOREVSOzs7MDRBRDsKKzA0QUQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFRFIFdJVEggREVTQ0VOREVSO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgVEUgV0lUSCBSSUdIVCBERVNDRU5ERVI7OzA0QUM7OzA0QUMKKzA0QUU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU1RSQUlHSFQgVTtMdTswO0w7Ozs7O047Ozs7MDRBRjsKKzA0QUY7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNUUkFJR0hUIFU7TGw7MDtMOzs7OztOOzs7MDRBRTs7MDRBRQorMDRCMDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTVFJBSUdIVCBVIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTVFJBSUdIVCBVIEJBUjs7OzA0QjE7CiswNEIxO0NZUklMTElDIFNNQUxMIExFVFRFUiBTVFJBSUdIVCBVIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgU1RSQUlHSFQgVSBCQVI7OzA0QjA7OzA0QjAKKzA0QjI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSEEgV0lUSCBERVNDRU5ERVI7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtIQSBXSVRIIFJJR0hUIERFU0NFTkRFUjs7OzA0QjM7CiswNEIzO0NZUklMTElDIFNNQUxMIExFVFRFUiBIQSBXSVRIIERFU0NFTkRFUjtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtIQSBXSVRIIFJJR0hUIERFU0NFTkRFUjs7MDRCMjs7MDRCMgorMDRCNDtDWVJJTExJQyBDQVBJVEFMIExJR0FUVVJFIFRFIFRTRTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVEUgVFNFO0Fia2hhc2lhbjs7MDRCNTsKKzA0QjU7Q1lSSUxMSUMgU01BTEwgTElHQVRVUkUgVEUgVFNFO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgVEUgVFNFO0Fia2hhc2lhbjswNEI0OzswNEI0CiswNEI2O0NZUklMTElDIENBUElUQUwgTEVUVEVSIENIRSBXSVRIIERFU0NFTkRFUjtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQ0hFIFdJVEggUklHSFQgREVTQ0VOREVSOzs7MDRCNzsKKzA0Qjc7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIENIRSBXSVRIIERFU0NFTkRFUjtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIENIRSBXSVRIIFJJR0hUIERFU0NFTkRFUjs7MDRCNjs7MDRCNgorMDRCODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBDSEUgV0lUSCBWRVJUSUNBTCBTVFJPS0U7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIENIRSBWRVJUSUNBTCBCQVI7OzswNEI5OworMDRCOTtDWVJJTExJQyBTTUFMTCBMRVRURVIgQ0hFIFdJVEggVkVSVElDQUwgU1RST0tFO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgQ0hFIFZFUlRJQ0FMIEJBUjs7MDRCODs7MDRCOAorMDRCQTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTSEhBO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBIOzs7MDRCQjsKKzA0QkI7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNISEE7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBIOzswNEJBOzswNEJBCiswNEJDO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEFCS0hBU0lBTiBDSEU7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIElFIEhPT0s7OzswNEJEOworMDRCRDtDWVJJTExJQyBTTUFMTCBMRVRURVIgQUJLSEFTSUFOIENIRTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElFIEhPT0s7OzA0QkM7OzA0QkMKKzA0QkU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQUJLSEFTSUFOIENIRSBXSVRIIERFU0NFTkRFUjtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSUUgSE9PSyBPR09ORUs7OzswNEJGOworMDRCRjtDWVJJTExJQyBTTUFMTCBMRVRURVIgQUJLSEFTSUFOIENIRSBXSVRIIERFU0NFTkRFUjtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElFIEhPT0sgT0dPTkVLOzswNEJFOzswNEJFCiswNEMwO0NZUklMTElDIExFVFRFUiBQQUxPQ0hLQTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgTEVUVEVSIEk7Ozs7CiswNEMxO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFpIRSBXSVRIIEJSRVZFO0x1OzA7TDswNDE2IDAzMDY7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTSE9SVCBaSEU7OzswNEMyOworMDRDMjtDWVJJTExJQyBTTUFMTCBMRVRURVIgWkhFIFdJVEggQlJFVkU7TGw7MDtMOzA0MzYgMDMwNjs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBTSE9SVCBaSEU7OzA0QzE7OzA0QzEKKzA0QzM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0EgV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLQSBIT09LOzs7MDRDNDsKKzA0QzQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtBIFdJVEggSE9PSztMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtBIEhPT0s7OzA0QzM7OzA0QzMKKzA0Qzc7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRU4gV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFTiBIT09LOzs7MDRDODsKKzA0Qzg7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVOIFdJVEggSE9PSztMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVOIEhPT0s7OzA0Qzc7OzA0QzcKKzA0Q0I7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0hBS0FTU0lBTiBDSEU7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIENIRSBXSVRIIExFRlQgREVTQ0VOREVSOzs7MDRDQzsKKzA0Q0M7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtIQUtBU1NJQU4gQ0hFO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgQ0hFIFdJVEggTEVGVCBERVNDRU5ERVI7OzA0Q0I7OzA0Q0IKKzA0RDA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEJSRVZFO0x1OzA7TDswNDEwIDAzMDY7Ozs7Tjs7OzswNEQxOworMDREMTtDWVJJTExJQyBTTUFMTCBMRVRURVIgQSBXSVRIIEJSRVZFO0xsOzA7TDswNDMwIDAzMDY7Ozs7Tjs7OzA0RDA7OzA0RDAKKzA0RDI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDQxMCAwMzA4Ozs7O047Ozs7MDREMzsKKzA0RDM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEEgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzA0MzAgMDMwODs7OztOOzs7MDREMjs7MDREMgorMDRENDtDWVJJTExJQyBDQVBJVEFMIExJR0FUVVJFIEEgSUU7THU7MDtMOzs7OztOOzs7OzA0RDU7CiswNEQ1O0NZUklMTElDIFNNQUxMIExJR0FUVVJFIEEgSUU7TGw7MDtMOzs7OztOOzs7MDRENDs7MDRENAorMDRENjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJRSBXSVRIIEJSRVZFO0x1OzA7TDswNDE1IDAzMDY7Ozs7Tjs7OzswNEQ3OworMDRENztDWVJJTExJQyBTTUFMTCBMRVRURVIgSUUgV0lUSCBCUkVWRTtMbDswO0w7MDQzNSAwMzA2Ozs7O047OzswNEQ2OzswNEQ2CiswNEQ4O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNDSFdBO0x1OzA7TDs7Ozs7Tjs7OzswNEQ5OworMDREOTtDWVJJTExJQyBTTUFMTCBMRVRURVIgU0NIV0E7TGw7MDtMOzs7OztOOzs7MDREODs7MDREOAorMDREQTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTQ0hXQSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDREOCAwMzA4Ozs7O047Ozs7MDREQjsKKzA0REI7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNDSFdBIFdJVEggRElBRVJFU0lTO0xsOzA7TDswNEQ5IDAzMDg7Ozs7Tjs7OzA0REE7OzA0REEKKzA0REM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWkhFIFdJVEggRElBRVJFU0lTO0x1OzA7TDswNDE2IDAzMDg7Ozs7Tjs7OzswNEREOworMDRERDtDWVJJTExJQyBTTUFMTCBMRVRURVIgWkhFIFdJVEggRElBRVJFU0lTO0xsOzA7TDswNDM2IDAzMDg7Ozs7Tjs7OzA0REM7OzA0REMKKzA0REU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWkUgV0lUSCBESUFFUkVTSVM7THU7MDtMOzA0MTcgMDMwODs7OztOOzs7OzA0REY7CiswNERGO0NZUklMTElDIFNNQUxMIExFVFRFUiBaRSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDQzNyAwMzA4Ozs7O047OzswNERFOzswNERFCiswNEUwO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEFCS0hBU0lBTiBEWkU7THU7MDtMOzs7OztOOzs7OzA0RTE7CiswNEUxO0NZUklMTElDIFNNQUxMIExFVFRFUiBBQktIQVNJQU4gRFpFO0xsOzA7TDs7Ozs7Tjs7OzA0RTA7OzA0RTAKKzA0RTI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSSBXSVRIIE1BQ1JPTjtMdTswO0w7MDQxOCAwMzA0Ozs7O047Ozs7MDRFMzsKKzA0RTM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEkgV0lUSCBNQUNST047TGw7MDtMOzA0MzggMDMwNDs7OztOOzs7MDRFMjs7MDRFMgorMDRFNDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJIFdJVEggRElBRVJFU0lTO0x1OzA7TDswNDE4IDAzMDg7Ozs7Tjs7OzswNEU1OworMDRFNTtDWVJJTExJQyBTTUFMTCBMRVRURVIgSSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDQzOCAwMzA4Ozs7O047OzswNEU0OzswNEU0CiswNEU2O0NZUklMTElDIENBUElUQUwgTEVUVEVSIE8gV0lUSCBESUFFUkVTSVM7THU7MDtMOzA0MUUgMDMwODs7OztOOzs7OzA0RTc7CiswNEU3O0NZUklMTElDIFNNQUxMIExFVFRFUiBPIFdJVEggRElBRVJFU0lTO0xsOzA7TDswNDNFIDAzMDg7Ozs7Tjs7OzA0RTY7OzA0RTYKKzA0RTg7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQkFSUkVEIE87THU7MDtMOzs7OztOOzs7OzA0RTk7CiswNEU5O0NZUklMTElDIFNNQUxMIExFVFRFUiBCQVJSRUQgTztMbDswO0w7Ozs7O047OzswNEU4OzswNEU4CiswNEVBO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEJBUlJFRCBPIFdJVEggRElBRVJFU0lTO0x1OzA7TDswNEU4IDAzMDg7Ozs7Tjs7OzswNEVCOworMDRFQjtDWVJJTExJQyBTTUFMTCBMRVRURVIgQkFSUkVEIE8gV0lUSCBESUFFUkVTSVM7TGw7MDtMOzA0RTkgMDMwODs7OztOOzs7MDRFQTs7MDRFQQorMDRFQztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFIFdJVEggRElBRVJFU0lTO0x1OzA7TDswNDJEIDAzMDg7Ozs7Tjs7OzswNEVEOworMDRFRDtDWVJJTExJQyBTTUFMTCBMRVRURVIgRSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDQ0RCAwMzA4Ozs7O047OzswNEVDOzswNEVDCiswNEVFO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFUgV0lUSCBNQUNST047THU7MDtMOzA0MjMgMDMwNDs7OztOOzs7OzA0RUY7CiswNEVGO0NZUklMTElDIFNNQUxMIExFVFRFUiBVIFdJVEggTUFDUk9OO0xsOzA7TDswNDQzIDAzMDQ7Ozs7Tjs7OzA0RUU7OzA0RUUKKzA0RjA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDQyMyAwMzA4Ozs7O047Ozs7MDRGMTsKKzA0RjE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzA0NDMgMDMwODs7OztOOzs7MDRGMDs7MDRGMAorMDRGMjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBVIFdJVEggRE9VQkxFIEFDVVRFO0x1OzA7TDswNDIzIDAzMEI7Ozs7Tjs7OzswNEYzOworMDRGMztDWVJJTExJQyBTTUFMTCBMRVRURVIgVSBXSVRIIERPVUJMRSBBQ1VURTtMbDswO0w7MDQ0MyAwMzBCOzs7O047OzswNEYyOzswNEYyCiswNEY0O0NZUklMTElDIENBUElUQUwgTEVUVEVSIENIRSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDQyNyAwMzA4Ozs7O047Ozs7MDRGNTsKKzA0RjU7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIENIRSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDQ0NyAwMzA4Ozs7O047OzswNEY0OzswNEY0CiswNEY4O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFlFUlUgV0lUSCBESUFFUkVTSVM7THU7MDtMOzA0MkIgMDMwODs7OztOOzs7OzA0Rjk7CiswNEY5O0NZUklMTElDIFNNQUxMIExFVFRFUiBZRVJVIFdJVEggRElBRVJFU0lTO0xsOzA7TDswNDRCIDAzMDg7Ozs7Tjs7OzA0Rjg7OzA0RjgKKzA1MzE7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgQVlCO0x1OzA7TDs7Ozs7Tjs7OzswNTYxOworMDUzMjtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBCRU47THU7MDtMOzs7OztOOzs7OzA1NjI7CiswNTMzO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIEdJTTtMdTswO0w7Ozs7O047Ozs7MDU2MzsKKzA1MzQ7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgREE7THU7MDtMOzs7OztOOzs7OzA1NjQ7CiswNTM1O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIEVDSDtMdTswO0w7Ozs7O047Ozs7MDU2NTsKKzA1MzY7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgWkE7THU7MDtMOzs7OztOOzs7OzA1NjY7CiswNTM3O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIEVIO0x1OzA7TDs7Ozs7Tjs7OzswNTY3OworMDUzODtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBFVDtMdTswO0w7Ozs7O047Ozs7MDU2ODsKKzA1Mzk7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgVE87THU7MDtMOzs7OztOOzs7OzA1Njk7CiswNTNBO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFpIRTtMdTswO0w7Ozs7O047Ozs7MDU2QTsKKzA1M0I7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgSU5JO0x1OzA7TDs7Ozs7Tjs7OzswNTZCOworMDUzQztBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBMSVdOO0x1OzA7TDs7Ozs7Tjs7OzswNTZDOworMDUzRDtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBYRUg7THU7MDtMOzs7OztOOzs7OzA1NkQ7CiswNTNFO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIENBO0x1OzA7TDs7Ozs7Tjs7OzswNTZFOworMDUzRjtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBLRU47THU7MDtMOzs7OztOOzs7OzA1NkY7CiswNTQwO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIEhPO0x1OzA7TDs7Ozs7Tjs7OzswNTcwOworMDU0MTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBKQTtMdTswO0w7Ozs7O047Ozs7MDU3MTsKKzA1NDI7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgR0hBRDtMdTswO0w7Ozs7O047QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgTEFEOzs7MDU3MjsKKzA1NDM7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgQ0hFSDtMdTswO0w7Ozs7O047Ozs7MDU3MzsKKzA1NDQ7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgTUVOO0x1OzA7TDs7Ozs7Tjs7OzswNTc0OworMDU0NTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBZSTtMdTswO0w7Ozs7O047Ozs7MDU3NTsKKzA1NDY7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgTk9XO0x1OzA7TDs7Ozs7Tjs7OzswNTc2OworMDU0NztBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBTSEE7THU7MDtMOzs7OztOOzs7OzA1Nzc7CiswNTQ4O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFZPO0x1OzA7TDs7Ozs7Tjs7OzswNTc4OworMDU0OTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBDSEE7THU7MDtMOzs7OztOOzs7OzA1Nzk7CiswNTRBO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFBFSDtMdTswO0w7Ozs7O047Ozs7MDU3QTsKKzA1NEI7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgSkhFSDtMdTswO0w7Ozs7O047Ozs7MDU3QjsKKzA1NEM7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgUkE7THU7MDtMOzs7OztOOzs7OzA1N0M7CiswNTREO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFNFSDtMdTswO0w7Ozs7O047Ozs7MDU3RDsKKzA1NEU7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgVkVXO0x1OzA7TDs7Ozs7Tjs7OzswNTdFOworMDU0RjtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBUSVdOO0x1OzA7TDs7Ozs7Tjs7OzswNTdGOworMDU1MDtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBSRUg7THU7MDtMOzs7OztOOzs7OzA1ODA7CiswNTUxO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIENPO0x1OzA7TDs7Ozs7Tjs7OzswNTgxOworMDU1MjtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBZSVdOO0x1OzA7TDs7Ozs7Tjs7OzswNTgyOworMDU1MztBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBQSVdSO0x1OzA7TDs7Ozs7Tjs7OzswNTgzOworMDU1NDtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBLRUg7THU7MDtMOzs7OztOOzs7OzA1ODQ7CiswNTU1O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIE9IO0x1OzA7TDs7Ozs7Tjs7OzswNTg1OworMDU1NjtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBGRUg7THU7MDtMOzs7OztOOzs7OzA1ODY7CiswNTU5O0FSTUVOSUFOIE1PRElGSUVSIExFVFRFUiBMRUZUIEhBTEYgUklORztMbTswO0w7Ozs7O047Ozs7OworMDU1QTtBUk1FTklBTiBBUE9TVFJPUEhFO1BvOzA7TDs7Ozs7TjtBUk1FTklBTiBNT0RJRklFUiBMRVRURVIgUklHSFQgSEFMRiBSSU5HOzs7OworMDU1QjtBUk1FTklBTiBFTVBIQVNJUyBNQVJLO1BvOzA7TDs7Ozs7Tjs7Ozs7CiswNTVDO0FSTUVOSUFOIEVYQ0xBTUFUSU9OIE1BUks7UG87MDtMOzs7OztOOzs7OzsKKzA1NUQ7QVJNRU5JQU4gQ09NTUE7UG87MDtMOzs7OztOOzs7OzsKKzA1NUU7QVJNRU5JQU4gUVVFU1RJT04gTUFSSztQbzswO0w7Ozs7O047Ozs7OworMDU1RjtBUk1FTklBTiBBQkJSRVZJQVRJT04gTUFSSztQbzswO0w7Ozs7O047Ozs7OworMDU2MTtBUk1FTklBTiBTTUFMTCBMRVRURVIgQVlCO0xsOzA7TDs7Ozs7Tjs7OzA1MzE7OzA1MzEKKzA1NjI7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEJFTjtMbDswO0w7Ozs7O047OzswNTMyOzswNTMyCiswNTYzO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBHSU07TGw7MDtMOzs7OztOOzs7MDUzMzs7MDUzMworMDU2NDtBUk1FTklBTiBTTUFMTCBMRVRURVIgREE7TGw7MDtMOzs7OztOOzs7MDUzNDs7MDUzNAorMDU2NTtBUk1FTklBTiBTTUFMTCBMRVRURVIgRUNIO0xsOzA7TDs7Ozs7Tjs7OzA1MzU7OzA1MzUKKzA1NjY7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFpBO0xsOzA7TDs7Ozs7Tjs7OzA1MzY7OzA1MzYKKzA1Njc7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEVIO0xsOzA7TDs7Ozs7Tjs7OzA1Mzc7OzA1MzcKKzA1Njg7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEVUO0xsOzA7TDs7Ozs7Tjs7OzA1Mzg7OzA1MzgKKzA1Njk7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFRPO0xsOzA7TDs7Ozs7Tjs7OzA1Mzk7OzA1MzkKKzA1NkE7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFpIRTtMbDswO0w7Ozs7O047OzswNTNBOzswNTNBCiswNTZCO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBJTkk7TGw7MDtMOzs7OztOOzs7MDUzQjs7MDUzQgorMDU2QztBUk1FTklBTiBTTUFMTCBMRVRURVIgTElXTjtMbDswO0w7Ozs7O047OzswNTNDOzswNTNDCiswNTZEO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBYRUg7TGw7MDtMOzs7OztOOzs7MDUzRDs7MDUzRAorMDU2RTtBUk1FTklBTiBTTUFMTCBMRVRURVIgQ0E7TGw7MDtMOzs7OztOOzs7MDUzRTs7MDUzRQorMDU2RjtBUk1FTklBTiBTTUFMTCBMRVRURVIgS0VOO0xsOzA7TDs7Ozs7Tjs7OzA1M0Y7OzA1M0YKKzA1NzA7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEhPO0xsOzA7TDs7Ozs7Tjs7OzA1NDA7OzA1NDAKKzA1NzE7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEpBO0xsOzA7TDs7Ozs7Tjs7OzA1NDE7OzA1NDEKKzA1NzI7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEdIQUQ7TGw7MDtMOzs7OztOO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBMQUQ7OzA1NDI7OzA1NDIKKzA1NzM7QVJNRU5JQU4gU01BTEwgTEVUVEVSIENIRUg7TGw7MDtMOzs7OztOOzs7MDU0Mzs7MDU0MworMDU3NDtBUk1FTklBTiBTTUFMTCBMRVRURVIgTUVOO0xsOzA7TDs7Ozs7Tjs7OzA1NDQ7OzA1NDQKKzA1NzU7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFlJO0xsOzA7TDs7Ozs7Tjs7OzA1NDU7OzA1NDUKKzA1NzY7QVJNRU5JQU4gU01BTEwgTEVUVEVSIE5PVztMbDswO0w7Ozs7O047OzswNTQ2OzswNTQ2CiswNTc3O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBTSEE7TGw7MDtMOzs7OztOOzs7MDU0Nzs7MDU0NworMDU3ODtBUk1FTklBTiBTTUFMTCBMRVRURVIgVk87TGw7MDtMOzs7OztOOzs7MDU0ODs7MDU0OAorMDU3OTtBUk1FTklBTiBTTUFMTCBMRVRURVIgQ0hBO0xsOzA7TDs7Ozs7Tjs7OzA1NDk7OzA1NDkKKzA1N0E7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFBFSDtMbDswO0w7Ozs7O047OzswNTRBOzswNTRBCiswNTdCO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBKSEVIO0xsOzA7TDs7Ozs7Tjs7OzA1NEI7OzA1NEIKKzA1N0M7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFJBO0xsOzA7TDs7Ozs7Tjs7OzA1NEM7OzA1NEMKKzA1N0Q7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFNFSDtMbDswO0w7Ozs7O047OzswNTREOzswNTRECiswNTdFO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBWRVc7TGw7MDtMOzs7OztOOzs7MDU0RTs7MDU0RQorMDU3RjtBUk1FTklBTiBTTUFMTCBMRVRURVIgVElXTjtMbDswO0w7Ozs7O047OzswNTRGOzswNTRGCiswNTgwO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBSRUg7TGw7MDtMOzs7OztOOzs7MDU1MDs7MDU1MAorMDU4MTtBUk1FTklBTiBTTUFMTCBMRVRURVIgQ087TGw7MDtMOzs7OztOOzs7MDU1MTs7MDU1MQorMDU4MjtBUk1FTklBTiBTTUFMTCBMRVRURVIgWUlXTjtMbDswO0w7Ozs7O047OzswNTUyOzswNTUyCiswNTgzO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBQSVdSO0xsOzA7TDs7Ozs7Tjs7OzA1NTM7OzA1NTMKKzA1ODQ7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEtFSDtMbDswO0w7Ozs7O047OzswNTU0OzswNTU0CiswNTg1O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBPSDtMbDswO0w7Ozs7O047OzswNTU1OzswNTU1CiswNTg2O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBGRUg7TGw7MDtMOzs7OztOOzs7MDU1Njs7MDU1NgorMDU4NztBUk1FTklBTiBTTUFMTCBMSUdBVFVSRSBFQ0ggWUlXTjtMbDswO0w7PGNvbXBhdD4gMDU2NSAwNTgyOzs7O047Ozs7OworMDU4OTtBUk1FTklBTiBGVUxMIFNUT1A7UG87MDtMOzs7OztOO0FSTUVOSUFOIFBFUklPRDs7OzsKKzA1OEE7QVJNRU5JQU4gSFlQSEVOO1BkOzA7T047Ozs7O047Ozs7OworMDU5MTtIRUJSRVcgQUNDRU5UIEVUTkFIVEE7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNTkyO0hFQlJFVyBBQ0NFTlQgU0VHT0w7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNTkzO0hFQlJFVyBBQ0NFTlQgU0hBTFNIRUxFVDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA1OTQ7SEVCUkVXIEFDQ0VOVCBaQVFFRiBRQVRBTjtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA1OTU7SEVCUkVXIEFDQ0VOVCBaQVFFRiBHQURPTDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA1OTY7SEVCUkVXIEFDQ0VOVCBUSVBFSEE7TW47MjIwO05TTTs7Ozs7Tjs7Kjs7OworMDU5NztIRUJSRVcgQUNDRU5UIFJFVklBO01uOzIzMDtOU007Ozs7O047Ozs7OworMDU5ODtIRUJSRVcgQUNDRU5UIFpBUlFBO01uOzIzMDtOU007Ozs7O047Oyo7OzsKKzA1OTk7SEVCUkVXIEFDQ0VOVCBQQVNIVEE7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNTlBO0hFQlJFVyBBQ0NFTlQgWUVUSVY7TW47MjIyO05TTTs7Ozs7Tjs7Ozs7CiswNTlCO0hFQlJFVyBBQ0NFTlQgVEVWSVI7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNTlDO0hFQlJFVyBBQ0NFTlQgR0VSRVNIO01uOzIzMDtOU007Ozs7O047Ozs7OworMDU5RDtIRUJSRVcgQUNDRU5UIEdFUkVTSCBNVVFEQU07TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNTlFO0hFQlJFVyBBQ0NFTlQgR0VSU0hBWUlNO01uOzIzMDtOU007Ozs7O047Ozs7OworMDU5RjtIRUJSRVcgQUNDRU5UIFFBUk5FWSBQQVJBO01uOzIzMDtOU007Ozs7O047Ozs7OworMDVBMDtIRUJSRVcgQUNDRU5UIFRFTElTSEEgR0VET0xBO01uOzIzMDtOU007Ozs7O047Ozs7OworMDVBMTtIRUJSRVcgQUNDRU5UIFBBWkVSO01uOzIzMDtOU007Ozs7O047Ozs7OworMDVBMztIRUJSRVcgQUNDRU5UIE1VTkFIO01uOzIyMDtOU007Ozs7O047Ozs7OworMDVBNDtIRUJSRVcgQUNDRU5UIE1BSEFQQUtIO01uOzIyMDtOU007Ozs7O047Ozs7OworMDVBNTtIRUJSRVcgQUNDRU5UIE1FUktIQTtNbjsyMjA7TlNNOzs7OztOOzsqOzs7CiswNUE2O0hFQlJFVyBBQ0NFTlQgTUVSS0hBIEtFRlVMQTtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA1QTc7SEVCUkVXIEFDQ0VOVCBEQVJHQTtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA1QTg7SEVCUkVXIEFDQ0VOVCBRQURNQTtNbjsyMzA7TlNNOzs7OztOOzsqOzs7CiswNUE5O0hFQlJFVyBBQ0NFTlQgVEVMSVNIQSBRRVRBTkE7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNUFBO0hFQlJFVyBBQ0NFTlQgWUVSQUggQkVOIFlPTU87TW47MjIwO05TTTs7Ozs7Tjs7Kjs7OworMDVBQjtIRUJSRVcgQUNDRU5UIE9MRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA1QUM7SEVCUkVXIEFDQ0VOVCBJTFVZO01uOzIzMDtOU007Ozs7O047Ozs7OworMDVBRDtIRUJSRVcgQUNDRU5UIERFSEk7TW47MjIyO05TTTs7Ozs7Tjs7Ozs7CiswNUFFO0hFQlJFVyBBQ0NFTlQgWklOT1I7TW47MjI4O05TTTs7Ozs7Tjs7Ozs7CiswNUFGO0hFQlJFVyBNQVJLIE1BU09SQSBDSVJDTEU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNUIwO0hFQlJFVyBQT0lOVCBTSEVWQTtNbjsxMDtOU007Ozs7O047Ozs7OworMDVCMTtIRUJSRVcgUE9JTlQgSEFUQUYgU0VHT0w7TW47MTE7TlNNOzs7OztOOzs7OzsKKzA1QjI7SEVCUkVXIFBPSU5UIEhBVEFGIFBBVEFIO01uOzEyO05TTTs7Ozs7Tjs7Ozs7CiswNUIzO0hFQlJFVyBQT0lOVCBIQVRBRiBRQU1BVFM7TW47MTM7TlNNOzs7OztOOzs7OzsKKzA1QjQ7SEVCUkVXIFBPSU5UIEhJUklRO01uOzE0O05TTTs7Ozs7Tjs7Ozs7CiswNUI1O0hFQlJFVyBQT0lOVCBUU0VSRTtNbjsxNTtOU007Ozs7O047Ozs7OworMDVCNjtIRUJSRVcgUE9JTlQgU0VHT0w7TW47MTY7TlNNOzs7OztOOzs7OzsKKzA1Qjc7SEVCUkVXIFBPSU5UIFBBVEFIO01uOzE3O05TTTs7Ozs7Tjs7Ozs7CiswNUI4O0hFQlJFVyBQT0lOVCBRQU1BVFM7TW47MTg7TlNNOzs7OztOOzs7OzsKKzA1Qjk7SEVCUkVXIFBPSU5UIEhPTEFNO01uOzE5O05TTTs7Ozs7Tjs7Ozs7CiswNUJCO0hFQlJFVyBQT0lOVCBRVUJVVFM7TW47MjA7TlNNOzs7OztOOzs7OzsKKzA1QkM7SEVCUkVXIFBPSU5UIERBR0VTSCBPUiBNQVBJUTtNbjsyMTtOU007Ozs7O047SEVCUkVXIFBPSU5UIERBR0VTSDtvciBzaHVydXE7OzsKKzA1QkQ7SEVCUkVXIFBPSU5UIE1FVEVHO01uOzIyO05TTTs7Ozs7Tjs7Kjs7OworMDVCRTtIRUJSRVcgUFVOQ1RVQVRJT04gTUFRQUY7UG87MDtSOzs7OztOOzs7OzsKKzA1QkY7SEVCUkVXIFBPSU5UIFJBRkU7TW47MjM7TlNNOzs7OztOOzs7OzsKKzA1QzA7SEVCUkVXIFBVTkNUVUFUSU9OIFBBU0VRO1BvOzA7Ujs7Ozs7TjtIRUJSRVcgUE9JTlQgUEFTRVE7Kjs7OworMDVDMTtIRUJSRVcgUE9JTlQgU0hJTiBET1Q7TW47MjQ7TlNNOzs7OztOOzs7OzsKKzA1QzI7SEVCUkVXIFBPSU5UIFNJTiBET1Q7TW47MjU7TlNNOzs7OztOOzs7OzsKKzA1QzM7SEVCUkVXIFBVTkNUVUFUSU9OIFNPRiBQQVNVUTtQbzswO1I7Ozs7O047Oyo7OzsKKzA1QzQ7SEVCUkVXIE1BUksgVVBQRVIgRE9UO01uOzIzMDtOU007Ozs7O047Ozs7OworMDVEMDtIRUJSRVcgTEVUVEVSIEFMRUY7TG87MDtSOzs7OztOOzs7OzsKKzA1RDE7SEVCUkVXIExFVFRFUiBCRVQ7TG87MDtSOzs7OztOOzs7OzsKKzA1RDI7SEVCUkVXIExFVFRFUiBHSU1FTDtMbzswO1I7Ozs7O047Ozs7OworMDVEMztIRUJSRVcgTEVUVEVSIERBTEVUO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUQ0O0hFQlJFVyBMRVRURVIgSEU7TG87MDtSOzs7OztOOzs7OzsKKzA1RDU7SEVCUkVXIExFVFRFUiBWQVY7TG87MDtSOzs7OztOOzs7OzsKKzA1RDY7SEVCUkVXIExFVFRFUiBaQVlJTjtMbzswO1I7Ozs7O047Ozs7OworMDVENztIRUJSRVcgTEVUVEVSIEhFVDtMbzswO1I7Ozs7O047Ozs7OworMDVEODtIRUJSRVcgTEVUVEVSIFRFVDtMbzswO1I7Ozs7O047Ozs7OworMDVEOTtIRUJSRVcgTEVUVEVSIFlPRDtMbzswO1I7Ozs7O047Ozs7OworMDVEQTtIRUJSRVcgTEVUVEVSIEZJTkFMIEtBRjtMbzswO1I7Ozs7O047Ozs7OworMDVEQjtIRUJSRVcgTEVUVEVSIEtBRjtMbzswO1I7Ozs7O047Ozs7OworMDVEQztIRUJSRVcgTEVUVEVSIExBTUVEO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUREO0hFQlJFVyBMRVRURVIgRklOQUwgTUVNO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNURFO0hFQlJFVyBMRVRURVIgTUVNO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNURGO0hFQlJFVyBMRVRURVIgRklOQUwgTlVOO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUUwO0hFQlJFVyBMRVRURVIgTlVOO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUUxO0hFQlJFVyBMRVRURVIgU0FNRUtIO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUUyO0hFQlJFVyBMRVRURVIgQVlJTjtMbzswO1I7Ozs7O047Ozs7OworMDVFMztIRUJSRVcgTEVUVEVSIEZJTkFMIFBFO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUU0O0hFQlJFVyBMRVRURVIgUEU7TG87MDtSOzs7OztOOzs7OzsKKzA1RTU7SEVCUkVXIExFVFRFUiBGSU5BTCBUU0FESTtMbzswO1I7Ozs7O047Ozs7OworMDVFNjtIRUJSRVcgTEVUVEVSIFRTQURJO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUU3O0hFQlJFVyBMRVRURVIgUU9GO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUU4O0hFQlJFVyBMRVRURVIgUkVTSDtMbzswO1I7Ozs7O047Ozs7OworMDVFOTtIRUJSRVcgTEVUVEVSIFNISU47TG87MDtSOzs7OztOOzs7OzsKKzA1RUE7SEVCUkVXIExFVFRFUiBUQVY7TG87MDtSOzs7OztOOzs7OzsKKzA1RjA7SEVCUkVXIExJR0FUVVJFIFlJRERJU0ggRE9VQkxFIFZBVjtMbzswO1I7Ozs7O047SEVCUkVXIExFVFRFUiBET1VCTEUgVkFWOzs7OworMDVGMTtIRUJSRVcgTElHQVRVUkUgWUlERElTSCBWQVYgWU9EO0xvOzA7Ujs7Ozs7TjtIRUJSRVcgTEVUVEVSIFZBViBZT0Q7Ozs7CiswNUYyO0hFQlJFVyBMSUdBVFVSRSBZSURESVNIIERPVUJMRSBZT0Q7TG87MDtSOzs7OztOO0hFQlJFVyBMRVRURVIgRE9VQkxFIFlPRDs7OzsKKzA1RjM7SEVCUkVXIFBVTkNUVUFUSU9OIEdFUkVTSDtQbzswO1I7Ozs7O047Ozs7OworMDVGNDtIRUJSRVcgUFVOQ1RVQVRJT04gR0VSU0hBWUlNO1BvOzA7Ujs7Ozs7Tjs7Ozs7CiswNjBDO0FSQUJJQyBDT01NQTtQbzswO0NTOzs7OztOOzs7OzsKKzA2MUI7QVJBQklDIFNFTUlDT0xPTjtQbzswO0FMOzs7OztOOzs7OzsKKzA2MUY7QVJBQklDIFFVRVNUSU9OIE1BUks7UG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjIxO0FSQUJJQyBMRVRURVIgSEFNWkE7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBTVpBSDs7OzsKKzA2MjI7QVJBQklDIExFVFRFUiBBTEVGIFdJVEggTUFEREEgQUJPVkU7TG87MDtBTDswNjI3IDA2NTM7Ozs7TjtBUkFCSUMgTEVUVEVSIE1BRERBSCBPTiBBTEVGOzs7OworMDYyMztBUkFCSUMgTEVUVEVSIEFMRUYgV0lUSCBIQU1aQSBBQk9WRTtMbzswO0FMOzA2MjcgMDY1NDs7OztOO0FSQUJJQyBMRVRURVIgSEFNWkFIIE9OIEFMRUY7Ozs7CiswNjI0O0FSQUJJQyBMRVRURVIgV0FXIFdJVEggSEFNWkEgQUJPVkU7TG87MDtBTDswNjQ4IDA2NTQ7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBTVpBSCBPTiBXQVc7Ozs7CiswNjI1O0FSQUJJQyBMRVRURVIgQUxFRiBXSVRIIEhBTVpBIEJFTE9XO0xvOzA7QUw7MDYyNyAwNjU1Ozs7O047QVJBQklDIExFVFRFUiBIQU1aQUggVU5ERVIgQUxFRjs7OzsKKzA2MjY7QVJBQklDIExFVFRFUiBZRUggV0lUSCBIQU1aQSBBQk9WRTtMbzswO0FMOzA2NEEgMDY1NDs7OztOO0FSQUJJQyBMRVRURVIgSEFNWkFIIE9OIFlBOzs7OworMDYyNztBUkFCSUMgTEVUVEVSIEFMRUY7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjI4O0FSQUJJQyBMRVRURVIgQkVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBCQUE7Ozs7CiswNjI5O0FSQUJJQyBMRVRURVIgVEVIIE1BUkJVVEE7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRBQSBNQVJCVVRBSDs7OzsKKzA2MkE7QVJBQklDIExFVFRFUiBURUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRBQTs7OzsKKzA2MkI7QVJBQklDIExFVFRFUiBUSEVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBUSEFBOzs7OworMDYyQztBUkFCSUMgTEVUVEVSIEpFRU07TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjJEO0FSQUJJQyBMRVRURVIgSEFIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBIQUE7Ozs7CiswNjJFO0FSQUJJQyBMRVRURVIgS0hBSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgS0hBQTs7OzsKKzA2MkY7QVJBQklDIExFVFRFUiBEQUw7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjMwO0FSQUJJQyBMRVRURVIgVEhBTDtMbzswO0FMOzs7OztOOzs7OzsKKzA2MzE7QVJBQklDIExFVFRFUiBSRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFJBOzs7OworMDYzMjtBUkFCSUMgTEVUVEVSIFpBSU47TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjMzO0FSQUJJQyBMRVRURVIgU0VFTjtMbzswO0FMOzs7OztOOzs7OzsKKzA2MzQ7QVJBQklDIExFVFRFUiBTSEVFTjtMbzswO0FMOzs7OztOOzs7OzsKKzA2MzU7QVJBQklDIExFVFRFUiBTQUQ7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjM2O0FSQUJJQyBMRVRURVIgREFEO0xvOzA7QUw7Ozs7O047Ozs7OworMDYzNztBUkFCSUMgTEVUVEVSIFRBSDtMbzswO0FMOzs7OztOOzs7OzsKKzA2Mzg7QVJBQklDIExFVFRFUiBaQUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIERIQUg7Ozs7CiswNjM5O0FSQUJJQyBMRVRURVIgQUlOO0xvOzA7QUw7Ozs7O047Ozs7OworMDYzQTtBUkFCSUMgTEVUVEVSIEdIQUlOO0xvOzA7QUw7Ozs7O047Ozs7OworMDY0MDtBUkFCSUMgVEFUV0VFTDtMbTswO0FMOzs7OztOOzs7OzsKKzA2NDE7QVJBQklDIExFVFRFUiBGRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEZBOzs7OworMDY0MjtBUkFCSUMgTEVUVEVSIFFBRjtMbzswO0FMOzs7OztOOzs7OzsKKzA2NDM7QVJBQklDIExFVFRFUiBLQUY7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIENBRjs7OzsKKzA2NDQ7QVJBQklDIExFVFRFUiBMQU07TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjQ1O0FSQUJJQyBMRVRURVIgTUVFTTtMbzswO0FMOzs7OztOOzs7OzsKKzA2NDY7QVJBQklDIExFVFRFUiBOT09OO0xvOzA7QUw7Ozs7O047Ozs7OworMDY0NztBUkFCSUMgTEVUVEVSIEhFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgSEE7Ozs7CiswNjQ4O0FSQUJJQyBMRVRURVIgV0FXO0xvOzA7QUw7Ozs7O047Ozs7OworMDY0OTtBUkFCSUMgTEVUVEVSIEFMRUYgTUFLU1VSQTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgQUxFRiBNQVFTVVJBSDs7OzsKKzA2NEE7QVJBQklDIExFVFRFUiBZRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFlBOzs7OworMDY0QjtBUkFCSUMgRkFUSEFUQU47TW47Mjc7TlNNOzs7OztOOzs7OzsKKzA2NEM7QVJBQklDIERBTU1BVEFOO01uOzI4O05TTTs7Ozs7Tjs7Ozs7CiswNjREO0FSQUJJQyBLQVNSQVRBTjtNbjsyOTtOU007Ozs7O047Ozs7OworMDY0RTtBUkFCSUMgRkFUSEE7TW47MzA7TlNNOzs7OztOO0FSQUJJQyBGQVRIQUg7Ozs7CiswNjRGO0FSQUJJQyBEQU1NQTtNbjszMTtOU007Ozs7O047QVJBQklDIERBTU1BSDs7OzsKKzA2NTA7QVJBQklDIEtBU1JBO01uOzMyO05TTTs7Ozs7TjtBUkFCSUMgS0FTUkFIOzs7OworMDY1MTtBUkFCSUMgU0hBRERBO01uOzMzO05TTTs7Ozs7TjtBUkFCSUMgU0hBRERBSDs7OzsKKzA2NTI7QVJBQklDIFNVS1VOO01uOzM0O05TTTs7Ozs7Tjs7Ozs7CiswNjUzO0FSQUJJQyBNQUREQUggQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNjU0O0FSQUJJQyBIQU1aQSBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2NTU7QVJBQklDIEhBTVpBIEJFTE9XO01uOzIyMDtOU007Ozs7O047Ozs7OworMDY2MDtBUkFCSUMtSU5ESUMgRElHSVQgWkVSTztOZDswO0FOOzswOzA7MDtOOzs7OzsKKzA2NjE7QVJBQklDLUlORElDIERJR0lUIE9ORTtOZDswO0FOOzsxOzE7MTtOOzs7OzsKKzA2NjI7QVJBQklDLUlORElDIERJR0lUIFRXTztOZDswO0FOOzsyOzI7MjtOOzs7OzsKKzA2NjM7QVJBQklDLUlORElDIERJR0lUIFRIUkVFO05kOzA7QU47OzM7MzszO047Ozs7OworMDY2NDtBUkFCSUMtSU5ESUMgRElHSVQgRk9VUjtOZDswO0FOOzs0OzQ7NDtOOzs7OzsKKzA2NjU7QVJBQklDLUlORElDIERJR0lUIEZJVkU7TmQ7MDtBTjs7NTs1OzU7Tjs7Ozs7CiswNjY2O0FSQUJJQy1JTkRJQyBESUdJVCBTSVg7TmQ7MDtBTjs7Njs2OzY7Tjs7Ozs7CiswNjY3O0FSQUJJQy1JTkRJQyBESUdJVCBTRVZFTjtOZDswO0FOOzs3Ozc7NztOOzs7OzsKKzA2Njg7QVJBQklDLUlORElDIERJR0lUIEVJR0hUO05kOzA7QU47Ozg7ODs4O047Ozs7OworMDY2OTtBUkFCSUMtSU5ESUMgRElHSVQgTklORTtOZDswO0FOOzs5Ozk7OTtOOzs7OzsKKzA2NkE7QVJBQklDIFBFUkNFTlQgU0lHTjtQbzswO0VUOzs7OztOOzs7OzsKKzA2NkI7QVJBQklDIERFQ0lNQUwgU0VQQVJBVE9SO1BvOzA7QU47Ozs7O047Ozs7OworMDY2QztBUkFCSUMgVEhPVVNBTkRTIFNFUEFSQVRPUjtQbzswO0FOOzs7OztOOzs7OzsKKzA2NkQ7QVJBQklDIEZJVkUgUE9JTlRFRCBTVEFSO1BvOzA7QUw7Ozs7O047Ozs7OworMDY3MDtBUkFCSUMgTEVUVEVSIFNVUEVSU0NSSVBUIEFMRUY7TW47MzU7TlNNOzs7OztOO0FSQUJJQyBBTEVGIEFCT1ZFOzs7OworMDY3MTtBUkFCSUMgTEVUVEVSIEFMRUYgV0FTTEE7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBTVpBVCBXQVNMIE9OIEFMRUY7Ozs7CiswNjcyO0FSQUJJQyBMRVRURVIgQUxFRiBXSVRIIFdBVlkgSEFNWkEgQUJPVkU7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFdBVlkgSEFNWkFIIE9OIEFMRUY7Ozs7CiswNjczO0FSQUJJQyBMRVRURVIgQUxFRiBXSVRIIFdBVlkgSEFNWkEgQkVMT1c7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFdBVlkgSEFNWkFIIFVOREVSIEFMRUY7Ozs7CiswNjc0O0FSQUJJQyBMRVRURVIgSElHSCBIQU1aQTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgSElHSCBIQU1aQUg7Ozs7CiswNjc1O0FSQUJJQyBMRVRURVIgSElHSCBIQU1aQSBBTEVGO0xvOzA7QUw7PGNvbXBhdD4gMDYyNyAwNjc0Ozs7O047QVJBQklDIExFVFRFUiBISUdIIEhBTVpBSCBBTEVGOzs7OworMDY3NjtBUkFCSUMgTEVUVEVSIEhJR0ggSEFNWkEgV0FXO0xvOzA7QUw7PGNvbXBhdD4gMDY0OCAwNjc0Ozs7O047QVJBQklDIExFVFRFUiBISUdIIEhBTVpBSCBXQVc7Ozs7CiswNjc3O0FSQUJJQyBMRVRURVIgVSBXSVRIIEhBTVpBIEFCT1ZFO0xvOzA7QUw7PGNvbXBhdD4gMDZDNyAwNjc0Ozs7O047QVJBQklDIExFVFRFUiBISUdIIEhBTVpBSCBXQVcgV0lUSCBEQU1NQUg7Ozs7CiswNjc4O0FSQUJJQyBMRVRURVIgSElHSCBIQU1aQSBZRUg7TG87MDtBTDs8Y29tcGF0PiAwNjRBIDA2NzQ7Ozs7TjtBUkFCSUMgTEVUVEVSIEhJR0ggSEFNWkFIIFlBOzs7OworMDY3OTtBUkFCSUMgTEVUVEVSIFRURUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRBQSBXSVRIIFNNQUxMIFRBSDs7OzsKKzA2N0E7QVJBQklDIExFVFRFUiBUVEVIRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRBQSBXSVRIIFRXTyBET1RTIFZFUlRJQ0FMIEFCT1ZFOzs7OworMDY3QjtBUkFCSUMgTEVUVEVSIEJFRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEJBQSBXSVRIIFRXTyBET1RTIFZFUlRJQ0FMIEJFTE9XOzs7OworMDY3QztBUkFCSUMgTEVUVEVSIFRFSCBXSVRIIFJJTkc7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRBQSBXSVRIIFJJTkc7Ozs7CiswNjdEO0FSQUJJQyBMRVRURVIgVEVIIFdJVEggVEhSRUUgRE9UUyBBQk9WRSBET1dOV0FSRFM7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRBQSBXSVRIIFRIUkVFIERPVFMgQUJPVkUgRE9XTldBUkQ7Ozs7CiswNjdFO0FSQUJJQyBMRVRURVIgUEVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBUQUEgV0lUSCBUSFJFRSBET1RTIEJFTE9XOzs7OworMDY3RjtBUkFCSUMgTEVUVEVSIFRFSEVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBUQUEgV0lUSCBGT1VSIERPVFMgQUJPVkU7Ozs7CiswNjgwO0FSQUJJQyBMRVRURVIgQkVIRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEJBQSBXSVRIIEZPVVIgRE9UUyBCRUxPVzs7OzsKKzA2ODE7QVJBQklDIExFVFRFUiBIQUggV0lUSCBIQU1aQSBBQk9WRTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgSEFNWkFIIE9OIEhBQTs7OzsKKzA2ODI7QVJBQklDIExFVFRFUiBIQUggV0lUSCBUV08gRE9UUyBWRVJUSUNBTCBBQk9WRTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgSEFBIFdJVEggVFdPIERPVFMgVkVSVElDQUwgQUJPVkU7Ozs7CiswNjgzO0FSQUJJQyBMRVRURVIgTllFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgSEFBIFdJVEggTUlERExFIFRXTyBET1RTOzs7OworMDY4NDtBUkFCSUMgTEVUVEVSIERZRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBQSBXSVRIIE1JRERMRSBUV08gRE9UUyBWRVJUSUNBTDs7OzsKKzA2ODU7QVJBQklDIExFVFRFUiBIQUggV0lUSCBUSFJFRSBET1RTIEFCT1ZFO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBIQUEgV0lUSCBUSFJFRSBET1RTIEFCT1ZFOzs7OworMDY4NjtBUkFCSUMgTEVUVEVSIFRDSEVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBIQUEgV0lUSCBNSURETEUgVEhSRUUgRE9UUyBET1dOV0FSRDs7OzsKKzA2ODc7QVJBQklDIExFVFRFUiBUQ0hFSEVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBIQUEgV0lUSCBNSURETEUgRk9VUiBET1RTOzs7OworMDY4ODtBUkFCSUMgTEVUVEVSIEREQUw7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIERBTCBXSVRIIFNNQUxMIFRBSDs7OzsKKzA2ODk7QVJBQklDIExFVFRFUiBEQUwgV0lUSCBSSU5HO0xvOzA7QUw7Ozs7O047Ozs7OworMDY4QTtBUkFCSUMgTEVUVEVSIERBTCBXSVRIIERPVCBCRUxPVztMbzswO0FMOzs7OztOOzs7OzsKKzA2OEI7QVJBQklDIExFVFRFUiBEQUwgV0lUSCBET1QgQkVMT1cgQU5EIFNNQUxMIFRBSDtMbzswO0FMOzs7OztOOzs7OzsKKzA2OEM7QVJBQklDIExFVFRFUiBEQUhBTDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgREFMIFdJVEggVFdPIERPVFMgQUJPVkU7Ozs7CiswNjhEO0FSQUJJQyBMRVRURVIgRERBSEFMO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBEQUwgV0lUSCBUV08gRE9UUyBCRUxPVzs7OzsKKzA2OEU7QVJBQklDIExFVFRFUiBEVUw7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIERBTCBXSVRIIFRIUkVFIERPVFMgQUJPVkU7Ozs7CiswNjhGO0FSQUJJQyBMRVRURVIgREFMIFdJVEggVEhSRUUgRE9UUyBBQk9WRSBET1dOV0FSRFM7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIERBTCBXSVRIIFRIUkVFIERPVFMgQUJPVkUgRE9XTldBUkQ7Ozs7CiswNjkwO0FSQUJJQyBMRVRURVIgREFMIFdJVEggRk9VUiBET1RTIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDY5MTtBUkFCSUMgTEVUVEVSIFJSRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFJBIFdJVEggU01BTEwgVEFIOzs7OworMDY5MjtBUkFCSUMgTEVUVEVSIFJFSCBXSVRIIFNNQUxMIFY7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFJBIFdJVEggU01BTEwgVjs7OzsKKzA2OTM7QVJBQklDIExFVFRFUiBSRUggV0lUSCBSSU5HO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBSQSBXSVRIIFJJTkc7Ozs7CiswNjk0O0FSQUJJQyBMRVRURVIgUkVIIFdJVEggRE9UIEJFTE9XO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBSQSBXSVRIIERPVCBCRUxPVzs7OzsKKzA2OTU7QVJBQklDIExFVFRFUiBSRUggV0lUSCBTTUFMTCBWIEJFTE9XO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBSQSBXSVRIIFNNQUxMIFYgQkVMT1c7Ozs7CiswNjk2O0FSQUJJQyBMRVRURVIgUkVIIFdJVEggRE9UIEJFTE9XIEFORCBET1QgQUJPVkU7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFJBIFdJVEggRE9UIEJFTE9XIEFORCBET1QgQUJPVkU7Ozs7CiswNjk3O0FSQUJJQyBMRVRURVIgUkVIIFdJVEggVFdPIERPVFMgQUJPVkU7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFJBIFdJVEggVFdPIERPVFMgQUJPVkU7Ozs7CiswNjk4O0FSQUJJQyBMRVRURVIgSkVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBSQSBXSVRIIFRIUkVFIERPVFMgQUJPVkU7Ozs7CiswNjk5O0FSQUJJQyBMRVRURVIgUkVIIFdJVEggRk9VUiBET1RTIEFCT1ZFO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBSQSBXSVRIIEZPVVIgRE9UUyBBQk9WRTs7OzsKKzA2OUE7QVJBQklDIExFVFRFUiBTRUVOIFdJVEggRE9UIEJFTE9XIEFORCBET1QgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjlCO0FSQUJJQyBMRVRURVIgU0VFTiBXSVRIIFRIUkVFIERPVFMgQkVMT1c7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjlDO0FSQUJJQyBMRVRURVIgU0VFTiBXSVRIIFRIUkVFIERPVFMgQkVMT1cgQU5EIFRIUkVFIERPVFMgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjlEO0FSQUJJQyBMRVRURVIgU0FEIFdJVEggVFdPIERPVFMgQkVMT1c7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjlFO0FSQUJJQyBMRVRURVIgU0FEIFdJVEggVEhSRUUgRE9UUyBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA2OUY7QVJBQklDIExFVFRFUiBUQUggV0lUSCBUSFJFRSBET1RTIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDZBMDtBUkFCSUMgTEVUVEVSIEFJTiBXSVRIIFRIUkVFIERPVFMgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkExO0FSQUJJQyBMRVRURVIgRE9UTEVTUyBGRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIERPVExFU1MgRkE7Ozs7CiswNkEyO0FSQUJJQyBMRVRURVIgRkVIIFdJVEggRE9UIE1PVkVEIEJFTE9XO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBGQSBXSVRIIERPVCBNT1ZFRCBCRUxPVzs7OzsKKzA2QTM7QVJBQklDIExFVFRFUiBGRUggV0lUSCBET1QgQkVMT1c7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEZBIFdJVEggRE9UIEJFTE9XOzs7OworMDZBNDtBUkFCSUMgTEVUVEVSIFZFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgRkEgV0lUSCBUSFJFRSBET1RTIEFCT1ZFOzs7OworMDZBNTtBUkFCSUMgTEVUVEVSIEZFSCBXSVRIIFRIUkVFIERPVFMgQkVMT1c7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEZBIFdJVEggVEhSRUUgRE9UUyBCRUxPVzs7OzsKKzA2QTY7QVJBQklDIExFVFRFUiBQRUhFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgRkEgV0lUSCBGT1VSIERPVFMgQUJPVkU7Ozs7CiswNkE3O0FSQUJJQyBMRVRURVIgUUFGIFdJVEggRE9UIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDZBODtBUkFCSUMgTEVUVEVSIFFBRiBXSVRIIFRIUkVFIERPVFMgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkE5O0FSQUJJQyBMRVRURVIgS0VIRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIE9QRU4gQ0FGOzs7OworMDZBQTtBUkFCSUMgTEVUVEVSIFNXQVNIIEtBRjtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgU1dBU0ggQ0FGOzs7OworMDZBQjtBUkFCSUMgTEVUVEVSIEtBRiBXSVRIIFJJTkc7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIENBRiBXSVRIIFJJTkc7Ozs7CiswNkFDO0FSQUJJQyBMRVRURVIgS0FGIFdJVEggRE9UIEFCT1ZFO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBDQUYgV0lUSCBET1QgQUJPVkU7Ozs7CiswNkFEO0FSQUJJQyBMRVRURVIgTkc7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIENBRiBXSVRIIFRIUkVFIERPVFMgQUJPVkU7Ozs7CiswNkFFO0FSQUJJQyBMRVRURVIgS0FGIFdJVEggVEhSRUUgRE9UUyBCRUxPVztMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgQ0FGIFdJVEggVEhSRUUgRE9UUyBCRUxPVzs7OzsKKzA2QUY7QVJBQklDIExFVFRFUiBHQUY7TG87MDtBTDs7Ozs7Tjs7Kjs7OworMDZCMDtBUkFCSUMgTEVUVEVSIEdBRiBXSVRIIFJJTkc7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkIxO0FSQUJJQyBMRVRURVIgTkdPRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEdBRiBXSVRIIFRXTyBET1RTIEFCT1ZFOzs7OworMDZCMjtBUkFCSUMgTEVUVEVSIEdBRiBXSVRIIFRXTyBET1RTIEJFTE9XO0xvOzA7QUw7Ozs7O047Ozs7OworMDZCMztBUkFCSUMgTEVUVEVSIEdVRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEdBRiBXSVRIIFRXTyBET1RTIFZFUlRJQ0FMIEJFTE9XOzs7OworMDZCNDtBUkFCSUMgTEVUVEVSIEdBRiBXSVRIIFRIUkVFIERPVFMgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkI1O0FSQUJJQyBMRVRURVIgTEFNIFdJVEggU01BTEwgVjtMbzswO0FMOzs7OztOOzs7OzsKKzA2QjY7QVJBQklDIExFVFRFUiBMQU0gV0lUSCBET1QgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkI3O0FSQUJJQyBMRVRURVIgTEFNIFdJVEggVEhSRUUgRE9UUyBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA2Qjg7QVJBQklDIExFVFRFUiBMQU0gV0lUSCBUSFJFRSBET1RTIEJFTE9XO0xvOzA7QUw7Ozs7O047Ozs7OworMDZCOTtBUkFCSUMgTEVUVEVSIE5PT04gV0lUSCBET1QgQkVMT1c7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkJBO0FSQUJJQyBMRVRURVIgTk9PTiBHSFVOTkE7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIERPVExFU1MgTk9PTjs7OzsKKzA2QkI7QVJBQklDIExFVFRFUiBSTk9PTjtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgRE9UTEVTUyBOT09OIFdJVEggU01BTEwgVEFIOzs7OworMDZCQztBUkFCSUMgTEVUVEVSIE5PT04gV0lUSCBSSU5HO0xvOzA7QUw7Ozs7O047Ozs7OworMDZCRDtBUkFCSUMgTEVUVEVSIE5PT04gV0lUSCBUSFJFRSBET1RTIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDZCRTtBUkFCSUMgTEVUVEVSIEhFSCBET0FDSEFTSE1FRTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgS05PVFRFRCBIQTs7OzsKKzA2QkY7QVJBQklDIExFVFRFUiBUQ0hFSCBXSVRIIERPVCBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA2QzA7QVJBQklDIExFVFRFUiBIRUggV0lUSCBZRUggQUJPVkU7TG87MDtBTDswNkQ1IDA2NTQ7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBTVpBSCBPTiBIQTs7OzsKKzA2QzE7QVJBQklDIExFVFRFUiBIRUggR09BTDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgSEEgR09BTDs7OzsKKzA2QzI7QVJBQklDIExFVFRFUiBIRUggR09BTCBXSVRIIEhBTVpBIEFCT1ZFO0xvOzA7QUw7MDZDMSAwNjU0Ozs7O047QVJBQklDIExFVFRFUiBIQU1aQUggT04gSEEgR09BTDs7OzsKKzA2QzM7QVJBQklDIExFVFRFUiBURUggTUFSQlVUQSBHT0FMO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBUQUEgTUFSQlVUQUggR09BTDs7OzsKKzA2QzQ7QVJBQklDIExFVFRFUiBXQVcgV0lUSCBSSU5HO0xvOzA7QUw7Ozs7O047Ozs7OworMDZDNTtBUkFCSUMgTEVUVEVSIEtJUkdISVogT0U7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFdBVyBXSVRIIEJBUjs7OzsKKzA2QzY7QVJBQklDIExFVFRFUiBPRTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgV0FXIFdJVEggU01BTEwgVjs7OzsKKzA2Qzc7QVJBQklDIExFVFRFUiBVO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBXQVcgV0lUSCBEQU1NQUg7Ozs7CiswNkM4O0FSQUJJQyBMRVRURVIgWVU7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFdBVyBXSVRIIEFMRUYgQUJPVkU7Ozs7CiswNkM5O0FSQUJJQyBMRVRURVIgS0lSR0hJWiBZVTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgV0FXIFdJVEggSU5WRVJURUQgU01BTEwgVjs7OzsKKzA2Q0E7QVJBQklDIExFVFRFUiBXQVcgV0lUSCBUV08gRE9UUyBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA2Q0I7QVJBQklDIExFVFRFUiBWRTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgV0FXIFdJVEggVEhSRUUgRE9UUyBBQk9WRTs7OzsKKzA2Q0M7QVJBQklDIExFVFRFUiBGQVJTSSBZRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIERPVExFU1MgWUE7Ozs7CiswNkNEO0FSQUJJQyBMRVRURVIgWUVIIFdJVEggVEFJTDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgWUEgV0lUSCBUQUlMOzs7OworMDZDRTtBUkFCSUMgTEVUVEVSIFlFSCBXSVRIIFNNQUxMIFY7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFlBIFdJVEggU01BTEwgVjs7OzsKKzA2Q0Y7QVJBQklDIExFVFRFUiBXQVcgV0lUSCBET1QgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkQwO0FSQUJJQyBMRVRURVIgRTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgWUEgV0lUSCBUV08gRE9UUyBWRVJUSUNBTCBCRUxPVzsqOzs7CiswNkQxO0FSQUJJQyBMRVRURVIgWUVIIFdJVEggVEhSRUUgRE9UUyBCRUxPVztMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgWUEgV0lUSCBUSFJFRSBET1RTIEJFTE9XOzs7OworMDZEMjtBUkFCSUMgTEVUVEVSIFlFSCBCQVJSRUU7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFlBIEJBUlJFRTs7OzsKKzA2RDM7QVJBQklDIExFVFRFUiBZRUggQkFSUkVFIFdJVEggSEFNWkEgQUJPVkU7TG87MDtBTDswNkQyIDA2NTQ7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBTVpBSCBPTiBZQSBCQVJSRUU7Ozs7CiswNkQ0O0FSQUJJQyBGVUxMIFNUT1A7UG87MDtBTDs7Ozs7TjtBUkFCSUMgUEVSSU9EOzs7OworMDZENTtBUkFCSUMgTEVUVEVSIEFFO0xvOzA7QUw7Ozs7O047Ozs7OworMDZENjtBUkFCSUMgU01BTEwgSElHSCBMSUdBVFVSRSBTQUQgV0lUSCBMQU0gV0lUSCBBTEVGIE1BS1NVUkE7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkQ3O0FSQUJJQyBTTUFMTCBISUdIIExJR0FUVVJFIFFBRiBXSVRIIExBTSBXSVRIIEFMRUYgTUFLU1VSQTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2RDg7QVJBQklDIFNNQUxMIEhJR0ggTUVFTSBJTklUSUFMIEZPUk07TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkQ5O0FSQUJJQyBTTUFMTCBISUdIIExBTSBBTEVGO01uOzIzMDtOU007Ozs7O047Ozs7OworMDZEQTtBUkFCSUMgU01BTEwgSElHSCBKRUVNO01uOzIzMDtOU007Ozs7O047Ozs7OworMDZEQjtBUkFCSUMgU01BTEwgSElHSCBUSFJFRSBET1RTO01uOzIzMDtOU007Ozs7O047Ozs7OworMDZEQztBUkFCSUMgU01BTEwgSElHSCBTRUVOO01uOzIzMDtOU007Ozs7O047Ozs7OworMDZERDtBUkFCSUMgRU5EIE9GIEFZQUg7TWU7MDtOU007Ozs7O047Ozs7OworMDZERTtBUkFCSUMgU1RBUlQgT0YgUlVCIEVMIEhJWkI7TWU7MDtOU007Ozs7O047Ozs7OworMDZERjtBUkFCSUMgU01BTEwgSElHSCBST1VOREVEIFpFUk87TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkUwO0FSQUJJQyBTTUFMTCBISUdIIFVQUklHSFQgUkVDVEFOR1VMQVIgWkVSTztNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2RTE7QVJBQklDIFNNQUxMIEhJR0ggRE9UTEVTUyBIRUFEIE9GIEtIQUg7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkUyO0FSQUJJQyBTTUFMTCBISUdIIE1FRU0gSVNPTEFURUQgRk9STTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2RTM7QVJBQklDIFNNQUxMIExPVyBTRUVOO01uOzIyMDtOU007Ozs7O047Ozs7OworMDZFNDtBUkFCSUMgU01BTEwgSElHSCBNQUREQTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2RTU7QVJBQklDIFNNQUxMIFdBVztMbTswO0FMOzs7OztOOzs7OzsKKzA2RTY7QVJBQklDIFNNQUxMIFlFSDtMbTswO0FMOzs7OztOOzs7OzsKKzA2RTc7QVJBQklDIFNNQUxMIEhJR0ggWUVIO01uOzIzMDtOU007Ozs7O047Ozs7OworMDZFODtBUkFCSUMgU01BTEwgSElHSCBOT09OO01uOzIzMDtOU007Ozs7O047Ozs7OworMDZFOTtBUkFCSUMgUExBQ0UgT0YgU0FKREFIO1NvOzA7T047Ozs7O047Ozs7OworMDZFQTtBUkFCSUMgRU1QVFkgQ0VOVFJFIExPVyBTVE9QO01uOzIyMDtOU007Ozs7O047Ozs7OworMDZFQjtBUkFCSUMgRU1QVFkgQ0VOVFJFIEhJR0ggU1RPUDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2RUM7QVJBQklDIFJPVU5ERUQgSElHSCBTVE9QIFdJVEggRklMTEVEIENFTlRSRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2RUQ7QVJBQklDIFNNQUxMIExPVyBNRUVNO01uOzIyMDtOU007Ozs7O047Ozs7OworMDZGMDtFWFRFTkRFRCBBUkFCSUMtSU5ESUMgRElHSVQgWkVSTztOZDswO0VOOzswOzA7MDtOO0VBU1RFUk4gQVJBQklDLUlORElDIERJR0lUIFpFUk87Ozs7CiswNkYxO0VYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBPTkU7TmQ7MDtFTjs7MTsxOzE7TjtFQVNURVJOIEFSQUJJQy1JTkRJQyBESUdJVCBPTkU7Ozs7CiswNkYyO0VYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBUV087TmQ7MDtFTjs7MjsyOzI7TjtFQVNURVJOIEFSQUJJQy1JTkRJQyBESUdJVCBUV087Ozs7CiswNkYzO0VYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBUSFJFRTtOZDswO0VOOzszOzM7MztOO0VBU1RFUk4gQVJBQklDLUlORElDIERJR0lUIFRIUkVFOzs7OworMDZGNDtFWFRFTkRFRCBBUkFCSUMtSU5ESUMgRElHSVQgRk9VUjtOZDswO0VOOzs0OzQ7NDtOO0VBU1RFUk4gQVJBQklDLUlORElDIERJR0lUIEZPVVI7Ozs7CiswNkY1O0VYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBGSVZFO05kOzA7RU47OzU7NTs1O047RUFTVEVSTiBBUkFCSUMtSU5ESUMgRElHSVQgRklWRTs7OzsKKzA2RjY7RVhURU5ERUQgQVJBQklDLUlORElDIERJR0lUIFNJWDtOZDswO0VOOzs2OzY7NjtOO0VBU1RFUk4gQVJBQklDLUlORElDIERJR0lUIFNJWDs7OzsKKzA2Rjc7RVhURU5ERUQgQVJBQklDLUlORElDIERJR0lUIFNFVkVOO05kOzA7RU47Ozc7Nzs3O047RUFTVEVSTiBBUkFCSUMtSU5ESUMgRElHSVQgU0VWRU47Ozs7CiswNkY4O0VYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBFSUdIVDtOZDswO0VOOzs4Ozg7ODtOO0VBU1RFUk4gQVJBQklDLUlORElDIERJR0lUIEVJR0hUOzs7OworMDZGOTtFWFRFTkRFRCBBUkFCSUMtSU5ESUMgRElHSVQgTklORTtOZDswO0VOOzs5Ozk7OTtOO0VBU1RFUk4gQVJBQklDLUlORElDIERJR0lUIE5JTkU7Ozs7CiswNkZBO0FSQUJJQyBMRVRURVIgU0hFRU4gV0lUSCBET1QgQkVMT1c7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkZCO0FSQUJJQyBMRVRURVIgREFEIFdJVEggRE9UIEJFTE9XO0xvOzA7QUw7Ozs7O047Ozs7OworMDZGQztBUkFCSUMgTEVUVEVSIEdIQUlOIFdJVEggRE9UIEJFTE9XO0xvOzA7QUw7Ozs7O047Ozs7OworMDZGRDtBUkFCSUMgU0lHTiBTSU5ESEkgQU1QRVJTQU5EO1NvOzA7QUw7Ozs7O047Ozs7OworMDZGRTtBUkFCSUMgU0lHTiBTSU5ESEkgUE9TVFBPU0lUSU9OIE1FTjtTbzswO0FMOzs7OztOOzs7OzsKKzA3MDA7U1lSSUFDIEVORCBPRiBQQVJBR1JBUEg7UG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzAxO1NZUklBQyBTVVBSQUxJTkVBUiBGVUxMIFNUT1A7UG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzAyO1NZUklBQyBTVUJMSU5FQVIgRlVMTCBTVE9QO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwMztTWVJJQUMgU1VQUkFMSU5FQVIgQ09MT047UG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzA0O1NZUklBQyBTVUJMSU5FQVIgQ09MT047UG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzA1O1NZUklBQyBIT1JJWk9OVEFMIENPTE9OO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwNjtTWVJJQUMgQ09MT04gU0tFV0VEIExFRlQ7UG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzA3O1NZUklBQyBDT0xPTiBTS0VXRUQgUklHSFQ7UG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzA4O1NZUklBQyBTVVBSQUxJTkVBUiBDT0xPTiBTS0VXRUQgTEVGVDtQbzswO0FMOzs7OztOOzs7OzsKKzA3MDk7U1lSSUFDIFNVQkxJTkVBUiBDT0xPTiBTS0VXRUQgUklHSFQ7UG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzBBO1NZUklBQyBDT05UUkFDVElPTjtQbzswO0FMOzs7OztOOzs7OzsKKzA3MEI7U1lSSUFDIEhBUktMRUFOIE9CRUxVUztQbzswO0FMOzs7OztOOzs7OzsKKzA3MEM7U1lSSUFDIEhBUktMRUFOIE1FVE9CRUxVUztQbzswO0FMOzs7OztOOzs7OzsKKzA3MEQ7U1lSSUFDIEhBUktMRUFOIEFTVEVSSVNDVVM7UG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzBGO1NZUklBQyBBQkJSRVZJQVRJT04gTUFSSztDZjswO0JOOzs7OztOOzs7OzsKKzA3MTA7U1lSSUFDIExFVFRFUiBBTEFQSDtMbzswO0FMOzs7OztOOzs7OzsKKzA3MTE7U1lSSUFDIExFVFRFUiBTVVBFUlNDUklQVCBBTEFQSDtNbjszNjtOU007Ozs7O047Ozs7OworMDcxMjtTWVJJQUMgTEVUVEVSIEJFVEg7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzEzO1NZUklBQyBMRVRURVIgR0FNQUw7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzE0O1NZUklBQyBMRVRURVIgR0FNQUwgR0FSU0hVTkk7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzE1O1NZUklBQyBMRVRURVIgREFMQVRIO0xvOzA7QUw7Ozs7O047Ozs7OworMDcxNjtTWVJJQUMgTEVUVEVSIERPVExFU1MgREFMQVRIIFJJU0g7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzE3O1NZUklBQyBMRVRURVIgSEU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzE4O1NZUklBQyBMRVRURVIgV0FXO0xvOzA7QUw7Ozs7O047Ozs7OworMDcxOTtTWVJJQUMgTEVUVEVSIFpBSU47TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzFBO1NZUklBQyBMRVRURVIgSEVUSDtMbzswO0FMOzs7OztOOzs7OzsKKzA3MUI7U1lSSUFDIExFVFRFUiBURVRIO0xvOzA7QUw7Ozs7O047Ozs7OworMDcxQztTWVJJQUMgTEVUVEVSIFRFVEggR0FSU0hVTkk7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzFEO1NZUklBQyBMRVRURVIgWVVESDtMbzswO0FMOzs7OztOOzs7OzsKKzA3MUU7U1lSSUFDIExFVFRFUiBZVURIIEhFO0xvOzA7QUw7Ozs7O047Ozs7OworMDcxRjtTWVJJQUMgTEVUVEVSIEtBUEg7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzIwO1NZUklBQyBMRVRURVIgTEFNQURIO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyMTtTWVJJQUMgTEVUVEVSIE1JTTtMbzswO0FMOzs7OztOOzs7OzsKKzA3MjI7U1lSSUFDIExFVFRFUiBOVU47TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzIzO1NZUklBQyBMRVRURVIgU0VNS0FUSDtMbzswO0FMOzs7OztOOzs7OzsKKzA3MjQ7U1lSSUFDIExFVFRFUiBGSU5BTCBTRU1LQVRIO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyNTtTWVJJQUMgTEVUVEVSIEU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzI2O1NZUklBQyBMRVRURVIgUEU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzI3O1NZUklBQyBMRVRURVIgUkVWRVJTRUQgUEU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzI4O1NZUklBQyBMRVRURVIgU0FESEU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzI5O1NZUklBQyBMRVRURVIgUUFQSDtMbzswO0FMOzs7OztOOzs7OzsKKzA3MkE7U1lSSUFDIExFVFRFUiBSSVNIO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyQjtTWVJJQUMgTEVUVEVSIFNISU47TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzJDO1NZUklBQyBMRVRURVIgVEFXO0xvOzA7QUw7Ozs7O047Ozs7OworMDczMDtTWVJJQUMgUFRIQUhBIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDczMTtTWVJJQUMgUFRIQUhBIEJFTE9XO01uOzIyMDtOU007Ozs7O047Ozs7OworMDczMjtTWVJJQUMgUFRIQUhBIERPVFRFRDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3MzM7U1lSSUFDIFpRQVBIQSBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3MzQ7U1lSSUFDIFpRQVBIQSBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA3MzU7U1lSSUFDIFpRQVBIQSBET1RURUQ7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNzM2O1NZUklBQyBSQkFTQSBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3Mzc7U1lSSUFDIFJCQVNBIEJFTE9XO01uOzIyMDtOU007Ozs7O047Ozs7OworMDczODtTWVJJQUMgRE9UVEVEIFpMQU1BIEhPUklaT05UQUw7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNzM5O1NZUklBQyBET1RURUQgWkxBTUEgQU5HVUxBUjtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA3M0E7U1lSSUFDIEhCQVNBIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDczQjtTWVJJQUMgSEJBU0EgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNzNDO1NZUklBQyBIQkFTQS1FU0FTQSBET1RURUQ7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNzNEO1NZUklBQyBFU0FTQSBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3M0U7U1lSSUFDIEVTQVNBIEJFTE9XO01uOzIyMDtOU007Ozs7O047Ozs7OworMDczRjtTWVJJQUMgUldBSEE7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNzQwO1NZUklBQyBGRU1JTklORSBET1Q7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNzQxO1NZUklBQyBRVVNIU0hBWUE7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNzQyO1NZUklBQyBSVUtLQUtIQTtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA3NDM7U1lSSUFDIFRXTyBWRVJUSUNBTCBET1RTIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDc0NDtTWVJJQUMgVFdPIFZFUlRJQ0FMIERPVFMgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNzQ1O1NZUklBQyBUSFJFRSBET1RTIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDc0NjtTWVJJQUMgVEhSRUUgRE9UUyBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA3NDc7U1lSSUFDIE9CTElRVUUgTElORSBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3NDg7U1lSSUFDIE9CTElRVUUgTElORSBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA3NDk7U1lSSUFDIE1VU0lDO01uOzIzMDtOU007Ozs7O047Ozs7OworMDc0QTtTWVJJQUMgQkFSUkVLSDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3ODA7VEhBQU5BIExFVFRFUiBIQUE7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzgxO1RIQUFOQSBMRVRURVIgU0hBVklZQU5JO0xvOzA7QUw7Ozs7O047Ozs7OworMDc4MjtUSEFBTkEgTEVUVEVSIE5PT05VO0xvOzA7QUw7Ozs7O047Ozs7OworMDc4MztUSEFBTkEgTEVUVEVSIFJBQTtMbzswO0FMOzs7OztOOzs7OzsKKzA3ODQ7VEhBQU5BIExFVFRFUiBCQUE7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzg1O1RIQUFOQSBMRVRURVIgTEhBVklZQU5JO0xvOzA7QUw7Ozs7O047Ozs7OworMDc4NjtUSEFBTkEgTEVUVEVSIEtBQUZVO0xvOzA7QUw7Ozs7O047Ozs7OworMDc4NztUSEFBTkEgTEVUVEVSIEFMSUZVO0xvOzA7QUw7Ozs7O047Ozs7OworMDc4ODtUSEFBTkEgTEVUVEVSIFZBQVZVO0xvOzA7QUw7Ozs7O047Ozs7OworMDc4OTtUSEFBTkEgTEVUVEVSIE1FRU1VO0xvOzA7QUw7Ozs7O047Ozs7OworMDc4QTtUSEFBTkEgTEVUVEVSIEZBQUZVO0xvOzA7QUw7Ozs7O047Ozs7OworMDc4QjtUSEFBTkEgTEVUVEVSIERIQUFMVTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OEM7VEhBQU5BIExFVFRFUiBUSEFBO0xvOzA7QUw7Ozs7O047Ozs7OworMDc4RDtUSEFBTkEgTEVUVEVSIExBQU1VO0xvOzA7QUw7Ozs7O047Ozs7OworMDc4RTtUSEFBTkEgTEVUVEVSIEdBQUZVO0xvOzA7QUw7Ozs7O047Ozs7OworMDc4RjtUSEFBTkEgTEVUVEVSIEdOQVZJWUFOSTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OTA7VEhBQU5BIExFVFRFUiBTRUVOVTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OTE7VEhBQU5BIExFVFRFUiBEQVZJWUFOSTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OTI7VEhBQU5BIExFVFRFUiBaQVZJWUFOSTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OTM7VEhBQU5BIExFVFRFUiBUQVZJWUFOSTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OTQ7VEhBQU5BIExFVFRFUiBZQUE7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzk1O1RIQUFOQSBMRVRURVIgUEFWSVlBTkk7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzk2O1RIQUFOQSBMRVRURVIgSkFWSVlBTkk7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzk3O1RIQUFOQSBMRVRURVIgQ0hBVklZQU5JO0xvOzA7QUw7Ozs7O047Ozs7OworMDc5ODtUSEFBTkEgTEVUVEVSIFRUQUE7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzk5O1RIQUFOQSBMRVRURVIgSEhBQTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OUE7VEhBQU5BIExFVFRFUiBLSEFBO0xvOzA7QUw7Ozs7O047Ozs7OworMDc5QjtUSEFBTkEgTEVUVEVSIFRIQUFMVTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OUM7VEhBQU5BIExFVFRFUiBaQUE7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzlEO1RIQUFOQSBMRVRURVIgU0hFRU5VO0xvOzA7QUw7Ozs7O047Ozs7OworMDc5RTtUSEFBTkEgTEVUVEVSIFNBQURIVTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OUY7VEhBQU5BIExFVFRFUiBEQUFESFU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswN0EwO1RIQUFOQSBMRVRURVIgVE87TG87MDtBTDs7Ozs7Tjs7Ozs7CiswN0ExO1RIQUFOQSBMRVRURVIgWk87TG87MDtBTDs7Ozs7Tjs7Ozs7CiswN0EyO1RIQUFOQSBMRVRURVIgQUlOVTtMbzswO0FMOzs7OztOOzs7OzsKKzA3QTM7VEhBQU5BIExFVFRFUiBHSEFJTlU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswN0E0O1RIQUFOQSBMRVRURVIgUUFBRlU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswN0E1O1RIQUFOQSBMRVRURVIgV0FBVlU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswN0E2O1RIQUFOQSBBQkFGSUxJO01uOzA7TlNNOzs7OztOOzs7OzsKKzA3QTc7VEhBQU5BIEFBQkFBRklMSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswN0E4O1RIQUFOQSBJQklGSUxJO01uOzA7TlNNOzs7OztOOzs7OzsKKzA3QTk7VEhBQU5BIEVFQkVFRklMSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswN0FBO1RIQUFOQSBVQlVGSUxJO01uOzA7TlNNOzs7OztOOzs7OzsKKzA3QUI7VEhBQU5BIE9PQk9PRklMSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswN0FDO1RIQUFOQSBFQkVGSUxJO01uOzA7TlNNOzs7OztOOzs7OzsKKzA3QUQ7VEhBQU5BIEVZQkVZRklMSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswN0FFO1RIQUFOQSBPQk9GSUxJO01uOzA7TlNNOzs7OztOOzs7OzsKKzA3QUY7VEhBQU5BIE9BQk9BRklMSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswN0IwO1RIQUFOQSBTVUtVTjtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOTAxO0RFVkFOQUdBUkkgU0lHTiBDQU5EUkFCSU5EVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOTAyO0RFVkFOQUdBUkkgU0lHTiBBTlVTVkFSQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOTAzO0RFVkFOQUdBUkkgU0lHTiBWSVNBUkdBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOTA1O0RFVkFOQUdBUkkgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MDY7REVWQU5BR0FSSSBMRVRURVIgQUE7TG87MDtMOzs7OztOOzs7OzsKKzA5MDc7REVWQU5BR0FSSSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMDkwODtERVZBTkFHQVJJIExFVFRFUiBJSTtMbzswO0w7Ozs7O047Ozs7OworMDkwOTtERVZBTkFHQVJJIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTBBO0RFVkFOQUdBUkkgTEVUVEVSIFVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTBCO0RFVkFOQUdBUkkgTEVUVEVSIFZPQ0FMSUMgUjtMbzswO0w7Ozs7O047Ozs7OworMDkwQztERVZBTkFHQVJJIExFVFRFUiBWT0NBTElDIEw7TG87MDtMOzs7OztOOzs7OzsKKzA5MEQ7REVWQU5BR0FSSSBMRVRURVIgQ0FORFJBIEU7TG87MDtMOzs7OztOOzs7OzsKKzA5MEU7REVWQU5BR0FSSSBMRVRURVIgU0hPUlQgRTtMbzswO0w7Ozs7O047Ozs7OworMDkwRjtERVZBTkFHQVJJIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTEwO0RFVkFOQUdBUkkgTEVUVEVSIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTExO0RFVkFOQUdBUkkgTEVUVEVSIENBTkRSQSBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTEyO0RFVkFOQUdBUkkgTEVUVEVSIFNIT1JUIE87TG87MDtMOzs7OztOOzs7OzsKKzA5MTM7REVWQU5BR0FSSSBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMDkxNDtERVZBTkFHQVJJIExFVFRFUiBBVTtMbzswO0w7Ozs7O047Ozs7OworMDkxNTtERVZBTkFHQVJJIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMDkxNjtERVZBTkFHQVJJIExFVFRFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MTc7REVWQU5BR0FSSSBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzA5MTg7REVWQU5BR0FSSSBMRVRURVIgR0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTE5O0RFVkFOQUdBUkkgTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMDkxQTtERVZBTkFHQVJJIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMDkxQjtERVZBTkFHQVJJIExFVFRFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MUM7REVWQU5BR0FSSSBMRVRURVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzA5MUQ7REVWQU5BR0FSSSBMRVRURVIgSkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTFFO0RFVkFOQUdBUkkgTEVUVEVSIE5ZQTtMbzswO0w7Ozs7O047Ozs7OworMDkxRjtERVZBTkFHQVJJIExFVFRFUiBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MjA7REVWQU5BR0FSSSBMRVRURVIgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMDkyMTtERVZBTkFHQVJJIExFVFRFUiBEREE7TG87MDtMOzs7OztOOzs7OzsKKzA5MjI7REVWQU5BR0FSSSBMRVRURVIgRERIQTtMbzswO0w7Ozs7O047Ozs7OworMDkyMztERVZBTkFHQVJJIExFVFRFUiBOTkE7TG87MDtMOzs7OztOOzs7OzsKKzA5MjQ7REVWQU5BR0FSSSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MjU7REVWQU5BR0FSSSBMRVRURVIgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTI2O0RFVkFOQUdBUkkgTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTI3O0RFVkFOQUdBUkkgTEVUVEVSIERIQTtMbzswO0w7Ozs7O047Ozs7OworMDkyODtERVZBTkFHQVJJIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMDkyOTtERVZBTkFHQVJJIExFVFRFUiBOTk5BO0xvOzA7TDswOTI4IDA5M0M7Ozs7Tjs7Ozs7CiswOTJBO0RFVkFOQUdBUkkgTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTJCO0RFVkFOQUdBUkkgTEVUVEVSIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMDkyQztERVZBTkFHQVJJIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMDkyRDtERVZBTkFHQVJJIExFVFRFUiBCSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MkU7REVWQU5BR0FSSSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzA5MkY7REVWQU5BR0FSSSBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzA5MzA7REVWQU5BR0FSSSBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzA5MzE7REVWQU5BR0FSSSBMRVRURVIgUlJBO0xvOzA7TDswOTMwIDA5M0M7Ozs7Tjs7Ozs7CiswOTMyO0RFVkFOQUdBUkkgTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTMzO0RFVkFOQUdBUkkgTEVUVEVSIExMQTtMbzswO0w7Ozs7O047Ozs7OworMDkzNDtERVZBTkFHQVJJIExFVFRFUiBMTExBO0xvOzA7TDswOTMzIDA5M0M7Ozs7Tjs7Ozs7CiswOTM1O0RFVkFOQUdBUkkgTEVUVEVSIFZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTM2O0RFVkFOQUdBUkkgTEVUVEVSIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMDkzNztERVZBTkFHQVJJIExFVFRFUiBTU0E7TG87MDtMOzs7OztOOzs7OzsKKzA5Mzg7REVWQU5BR0FSSSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzA5Mzk7REVWQU5BR0FSSSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5M0M7REVWQU5BR0FSSSBTSUdOIE5VS1RBO01uOzc7TlNNOzs7OztOOzs7OzsKKzA5M0Q7REVWQU5BR0FSSSBTSUdOIEFWQUdSQUhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTNFO0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBBQTtNYzswO0w7Ozs7O047Ozs7OworMDkzRjtERVZBTkFHQVJJIFZPV0VMIFNJR04gSTtNYzswO0w7Ozs7O047Ozs7OworMDk0MDtERVZBTkFHQVJJIFZPV0VMIFNJR04gSUk7TWM7MDtMOzs7OztOOzs7OzsKKzA5NDE7REVWQU5BR0FSSSBWT1dFTCBTSUdOIFU7TW47MDtOU007Ozs7O047Ozs7OworMDk0MjtERVZBTkFHQVJJIFZPV0VMIFNJR04gVVU7TW47MDtOU007Ozs7O047Ozs7OworMDk0MztERVZBTkFHQVJJIFZPV0VMIFNJR04gVk9DQUxJQyBSO01uOzA7TlNNOzs7OztOOzs7OzsKKzA5NDQ7REVWQU5BR0FSSSBWT1dFTCBTSUdOIFZPQ0FMSUMgUlI7TW47MDtOU007Ozs7O047Ozs7OworMDk0NTtERVZBTkFHQVJJIFZPV0VMIFNJR04gQ0FORFJBIEU7TW47MDtOU007Ozs7O047Ozs7OworMDk0NjtERVZBTkFHQVJJIFZPV0VMIFNJR04gU0hPUlQgRTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOTQ3O0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBFO01uOzA7TlNNOzs7OztOOzs7OzsKKzA5NDg7REVWQU5BR0FSSSBWT1dFTCBTSUdOIEFJO01uOzA7TlNNOzs7OztOOzs7OzsKKzA5NDk7REVWQU5BR0FSSSBWT1dFTCBTSUdOIENBTkRSQSBPO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOTRBO0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBTSE9SVCBPO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOTRCO0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBPO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOTRDO0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBBVTtNYzswO0w7Ozs7O047Ozs7OworMDk0RDtERVZBTkFHQVJJIFNJR04gVklSQU1BO01uOzk7TlNNOzs7OztOOzs7OzsKKzA5NTA7REVWQU5BR0FSSSBPTTtMbzswO0w7Ozs7O047Ozs7OworMDk1MTtERVZBTkFHQVJJIFNUUkVTUyBTSUdOIFVEQVRUQTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA5NTI7REVWQU5BR0FSSSBTVFJFU1MgU0lHTiBBTlVEQVRUQTtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA5NTM7REVWQU5BR0FSSSBHUkFWRSBBQ0NFTlQ7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswOTU0O0RFVkFOQUdBUkkgQUNVVEUgQUNDRU5UO01uOzIzMDtOU007Ozs7O047Ozs7OworMDk1ODtERVZBTkFHQVJJIExFVFRFUiBRQTtMbzswO0w7MDkxNSAwOTNDOzs7O047Ozs7OworMDk1OTtERVZBTkFHQVJJIExFVFRFUiBLSEhBO0xvOzA7TDswOTE2IDA5M0M7Ozs7Tjs7Ozs7CiswOTVBO0RFVkFOQUdBUkkgTEVUVEVSIEdISEE7TG87MDtMOzA5MTcgMDkzQzs7OztOOzs7OzsKKzA5NUI7REVWQU5BR0FSSSBMRVRURVIgWkE7TG87MDtMOzA5MUMgMDkzQzs7OztOOzs7OzsKKzA5NUM7REVWQU5BR0FSSSBMRVRURVIgRERESEE7TG87MDtMOzA5MjEgMDkzQzs7OztOOzs7OzsKKzA5NUQ7REVWQU5BR0FSSSBMRVRURVIgUkhBO0xvOzA7TDswOTIyIDA5M0M7Ozs7Tjs7Ozs7CiswOTVFO0RFVkFOQUdBUkkgTEVUVEVSIEZBO0xvOzA7TDswOTJCIDA5M0M7Ozs7Tjs7Ozs7CiswOTVGO0RFVkFOQUdBUkkgTEVUVEVSIFlZQTtMbzswO0w7MDkyRiAwOTNDOzs7O047Ozs7OworMDk2MDtERVZBTkFHQVJJIExFVFRFUiBWT0NBTElDIFJSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTYxO0RFVkFOQUdBUkkgTEVUVEVSIFZPQ0FMSUMgTEw7TG87MDtMOzs7OztOOzs7OzsKKzA5NjI7REVWQU5BR0FSSSBWT1dFTCBTSUdOIFZPQ0FMSUMgTDtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOTYzO0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBWT0NBTElDIExMO01uOzA7TlNNOzs7OztOOzs7OzsKKzA5NjQ7REVWQU5BR0FSSSBEQU5EQTtQbzswO0w7Ozs7O047Ozs7OworMDk2NTtERVZBTkFHQVJJIERPVUJMRSBEQU5EQTtQbzswO0w7Ozs7O047Ozs7OworMDk2NjtERVZBTkFHQVJJIERJR0lUIFpFUk87TmQ7MDtMOzswOzA7MDtOOzs7OzsKKzA5Njc7REVWQU5BR0FSSSBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzA5Njg7REVWQU5BR0FSSSBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzA5Njk7REVWQU5BR0FSSSBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMDk2QTtERVZBTkFHQVJJIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzA5NkI7REVWQU5BR0FSSSBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CiswOTZDO0RFVkFOQUdBUkkgRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CiswOTZEO0RFVkFOQUdBUkkgRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzA5NkU7REVWQU5BR0FSSSBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMDk2RjtERVZBTkFHQVJJIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzA5NzA7REVWQU5BR0FSSSBBQkJSRVZJQVRJT04gU0lHTjtQbzswO0w7Ozs7O047Ozs7OworMDk4MTtCRU5HQUxJIFNJR04gQ0FORFJBQklORFU7TW47MDtOU007Ozs7O047Ozs7OworMDk4MjtCRU5HQUxJIFNJR04gQU5VU1ZBUkE7TWM7MDtMOzs7OztOOzs7OzsKKzA5ODM7QkVOR0FMSSBTSUdOIFZJU0FSR0E7TWM7MDtMOzs7OztOOzs7OzsKKzA5ODU7QkVOR0FMSSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMDk4NjtCRU5HQUxJIExFVFRFUiBBQTtMbzswO0w7Ozs7O047Ozs7OworMDk4NztCRU5HQUxJIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTg4O0JFTkdBTEkgTEVUVEVSIElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTg5O0JFTkdBTEkgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzA5OEE7QkVOR0FMSSBMRVRURVIgVVU7TG87MDtMOzs7OztOOzs7OzsKKzA5OEI7QkVOR0FMSSBMRVRURVIgVk9DQUxJQyBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOThDO0JFTkdBTEkgTEVUVEVSIFZPQ0FMSUMgTDtMbzswO0w7Ozs7O047Ozs7OworMDk4RjtCRU5HQUxJIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTkwO0JFTkdBTEkgTEVUVEVSIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTkzO0JFTkdBTEkgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzA5OTQ7QkVOR0FMSSBMRVRURVIgQVU7TG87MDtMOzs7OztOOzs7OzsKKzA5OTU7QkVOR0FMSSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzA5OTY7QkVOR0FMSSBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTk3O0JFTkdBTEkgTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTk4O0JFTkdBTEkgTEVUVEVSIEdIQTtMbzswO0w7Ozs7O047Ozs7OworMDk5OTtCRU5HQUxJIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzA5OUE7QkVOR0FMSSBMRVRURVIgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzA5OUI7QkVOR0FMSSBMRVRURVIgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTlDO0JFTkdBTEkgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTlEO0JFTkdBTEkgTEVUVEVSIEpIQTtMbzswO0w7Ozs7O047Ozs7OworMDk5RTtCRU5HQUxJIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzA5OUY7QkVOR0FMSSBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUEwO0JFTkdBTEkgTEVUVEVSIFRUSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5QTE7QkVOR0FMSSBMRVRURVIgRERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUEyO0JFTkdBTEkgTEVUVEVSIERESEE7TG87MDtMOzs7OztOOzs7OzsKKzA5QTM7QkVOR0FMSSBMRVRURVIgTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUE0O0JFTkdBTEkgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUE1O0JFTkdBTEkgTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMDlBNjtCRU5HQUxJIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMDlBNztCRU5HQUxJIExFVFRFUiBESEE7TG87MDtMOzs7OztOOzs7OzsKKzA5QTg7QkVOR0FMSSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzA5QUE7QkVOR0FMSSBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzA5QUI7QkVOR0FMSSBMRVRURVIgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUFDO0JFTkdBTEkgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUFEO0JFTkdBTEkgTEVUVEVSIEJIQTtMbzswO0w7Ozs7O047Ozs7OworMDlBRTtCRU5HQUxJIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMDlBRjtCRU5HQUxJIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMDlCMDtCRU5HQUxJIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMDlCMjtCRU5HQUxJIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMDlCNjtCRU5HQUxJIExFVFRFUiBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5Qjc7QkVOR0FMSSBMRVRURVIgU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUI4O0JFTkdBTEkgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUI5O0JFTkdBTEkgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUJDO0JFTkdBTEkgU0lHTiBOVUtUQTtNbjs3O05TTTs7Ozs7Tjs7Ozs7CiswOUJFO0JFTkdBTEkgVk9XRUwgU0lHTiBBQTtNYzswO0w7Ozs7O047Ozs7OworMDlCRjtCRU5HQUxJIFZPV0VMIFNJR04gSTtNYzswO0w7Ozs7O047Ozs7OworMDlDMDtCRU5HQUxJIFZPV0VMIFNJR04gSUk7TWM7MDtMOzs7OztOOzs7OzsKKzA5QzE7QkVOR0FMSSBWT1dFTCBTSUdOIFU7TW47MDtOU007Ozs7O047Ozs7OworMDlDMjtCRU5HQUxJIFZPV0VMIFNJR04gVVU7TW47MDtOU007Ozs7O047Ozs7OworMDlDMztCRU5HQUxJIFZPV0VMIFNJR04gVk9DQUxJQyBSO01uOzA7TlNNOzs7OztOOzs7OzsKKzA5QzQ7QkVOR0FMSSBWT1dFTCBTSUdOIFZPQ0FMSUMgUlI7TW47MDtOU007Ozs7O047Ozs7OworMDlDNztCRU5HQUxJIFZPV0VMIFNJR04gRTtNYzswO0w7Ozs7O047Ozs7OworMDlDODtCRU5HQUxJIFZPV0VMIFNJR04gQUk7TWM7MDtMOzs7OztOOzs7OzsKKzA5Q0I7QkVOR0FMSSBWT1dFTCBTSUdOIE87TWM7MDtMOzA5QzcgMDlCRTs7OztOOzs7OzsKKzA5Q0M7QkVOR0FMSSBWT1dFTCBTSUdOIEFVO01jOzA7TDswOUM3IDA5RDc7Ozs7Tjs7Ozs7CiswOUNEO0JFTkdBTEkgU0lHTiBWSVJBTUE7TW47OTtOU007Ozs7O047Ozs7OworMDlENztCRU5HQUxJIEFVIExFTkdUSCBNQVJLO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOURDO0JFTkdBTEkgTEVUVEVSIFJSQTtMbzswO0w7MDlBMSAwOUJDOzs7O047Ozs7OworMDlERDtCRU5HQUxJIExFVFRFUiBSSEE7TG87MDtMOzA5QTIgMDlCQzs7OztOOzs7OzsKKzA5REY7QkVOR0FMSSBMRVRURVIgWVlBO0xvOzA7TDswOUFGIDA5QkM7Ozs7Tjs7Ozs7CiswOUUwO0JFTkdBTEkgTEVUVEVSIFZPQ0FMSUMgUlI7TG87MDtMOzs7OztOOzs7OzsKKzA5RTE7QkVOR0FMSSBMRVRURVIgVk9DQUxJQyBMTDtMbzswO0w7Ozs7O047Ozs7OworMDlFMjtCRU5HQUxJIFZPV0VMIFNJR04gVk9DQUxJQyBMO01uOzA7TlNNOzs7OztOOzs7OzsKKzA5RTM7QkVOR0FMSSBWT1dFTCBTSUdOIFZPQ0FMSUMgTEw7TW47MDtOU007Ozs7O047Ozs7OworMDlFNjtCRU5HQUxJIERJR0lUIFpFUk87TmQ7MDtMOzswOzA7MDtOOzs7OzsKKzA5RTc7QkVOR0FMSSBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzA5RTg7QkVOR0FMSSBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzA5RTk7QkVOR0FMSSBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMDlFQTtCRU5HQUxJIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzA5RUI7QkVOR0FMSSBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CiswOUVDO0JFTkdBTEkgRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CiswOUVEO0JFTkdBTEkgRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzA5RUU7QkVOR0FMSSBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMDlFRjtCRU5HQUxJIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzA5RjA7QkVOR0FMSSBMRVRURVIgUkEgV0lUSCBNSURETEUgRElBR09OQUw7TG87MDtMOzs7OztOOztBc3NhbWVzZTs7OworMDlGMTtCRU5HQUxJIExFVFRFUiBSQSBXSVRIIExPV0VSIERJQUdPTkFMO0xvOzA7TDs7Ozs7TjtCRU5HQUxJIExFVFRFUiBWQSBXSVRIIExPV0VSIERJQUdPTkFMO0Fzc2FtZXNlOzs7CiswOUYyO0JFTkdBTEkgUlVQRUUgTUFSSztTYzswO0VUOzs7OztOOzs7OzsKKzA5RjM7QkVOR0FMSSBSVVBFRSBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMDlGNDtCRU5HQUxJIENVUlJFTkNZIE5VTUVSQVRPUiBPTkU7Tm87MDtMOzs7OzE7Tjs7Ozs7CiswOUY1O0JFTkdBTEkgQ1VSUkVOQ1kgTlVNRVJBVE9SIFRXTztObzswO0w7Ozs7MjtOOzs7OzsKKzA5RjY7QkVOR0FMSSBDVVJSRU5DWSBOVU1FUkFUT1IgVEhSRUU7Tm87MDtMOzs7OzM7Tjs7Ozs7CiswOUY3O0JFTkdBTEkgQ1VSUkVOQ1kgTlVNRVJBVE9SIEZPVVI7Tm87MDtMOzs7OzQ7Tjs7Ozs7CiswOUY4O0JFTkdBTEkgQ1VSUkVOQ1kgTlVNRVJBVE9SIE9ORSBMRVNTIFRIQU4gVEhFIERFTk9NSU5BVE9SO05vOzA7TDs7Ozs7Tjs7Ozs7CiswOUY5O0JFTkdBTEkgQ1VSUkVOQ1kgREVOT01JTkFUT1IgU0lYVEVFTjtObzswO0w7Ozs7MTY7Tjs7Ozs7CiswOUZBO0JFTkdBTEkgSVNTSEFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CiswQTAyO0dVUk1VS0hJIFNJR04gQklOREk7TW47MDtOU007Ozs7O047Ozs7OworMEEwNTtHVVJNVUtISSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMEEwNjtHVVJNVUtISSBMRVRURVIgQUE7TG87MDtMOzs7OztOOzs7OzsKKzBBMDc7R1VSTVVLSEkgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzBBMDg7R1VSTVVLSEkgTEVUVEVSIElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTA5O0dVUk1VS0hJIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTBBO0dVUk1VS0hJIExFVFRFUiBVVTtMbzswO0w7Ozs7O047Ozs7OworMEEwRjtHVVJNVUtISSBMRVRURVIgRUU7TG87MDtMOzs7OztOOzs7OzsKKzBBMTA7R1VSTVVLSEkgTEVUVEVSIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTEzO0dVUk1VS0hJIExFVFRFUiBPTztMbzswO0w7Ozs7O047Ozs7OworMEExNDtHVVJNVUtISSBMRVRURVIgQVU7TG87MDtMOzs7OztOOzs7OzsKKzBBMTU7R1VSTVVLSEkgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTE2O0dVUk1VS0hJIExFVFRFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMTc7R1VSTVVLSEkgTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTE4O0dVUk1VS0hJIExFVFRFUiBHSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMTk7R1VSTVVLSEkgTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMEExQTtHVVJNVUtISSBMRVRURVIgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzBBMUI7R1VSTVVLSEkgTEVUVEVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMEExQztHVVJNVUtISSBMRVRURVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzBBMUQ7R1VSTVVLSEkgTEVUVEVSIEpIQTtMbzswO0w7Ozs7O047Ozs7OworMEExRTtHVVJNVUtISSBMRVRURVIgTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTFGO0dVUk1VS0hJIExFVFRFUiBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMjA7R1VSTVVLSEkgTEVUVEVSIFRUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMjE7R1VSTVVLSEkgTEVUVEVSIEREQTtMbzswO0w7Ozs7O047Ozs7OworMEEyMjtHVVJNVUtISSBMRVRURVIgRERIQTtMbzswO0w7Ozs7O047Ozs7OworMEEyMztHVVJNVUtISSBMRVRURVIgTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTI0O0dVUk1VS0hJIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMEEyNTtHVVJNVUtISSBMRVRURVIgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTI2O0dVUk1VS0hJIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMEEyNztHVVJNVUtISSBMRVRURVIgREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTI4O0dVUk1VS0hJIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMEEyQTtHVVJNVUtISSBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMkI7R1VSTVVLSEkgTEVUVEVSIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMEEyQztHVVJNVUtISSBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzBBMkQ7R1VSTVVLSEkgTEVUVEVSIEJIQTtMbzswO0w7Ozs7O047Ozs7OworMEEyRTtHVVJNVUtISSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzBBMkY7R1VSTVVLSEkgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTMwO0dVUk1VS0hJIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMEEzMjtHVVJNVUtISSBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMzM7R1VSTVVLSEkgTEVUVEVSIExMQTtMbzswO0w7MEEzMiAwQTNDOzs7O047Ozs7OworMEEzNTtHVVJNVUtISSBMRVRURVIgVkE7TG87MDtMOzs7OztOOzs7OzsKKzBBMzY7R1VSTVVLSEkgTEVUVEVSIFNIQTtMbzswO0w7MEEzOCAwQTNDOzs7O047Ozs7OworMEEzODtHVVJNVUtISSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzBBMzk7R1VSTVVLSEkgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTNDO0dVUk1VS0hJIFNJR04gTlVLVEE7TW47NztOU007Ozs7O047Ozs7OworMEEzRTtHVVJNVUtISSBWT1dFTCBTSUdOIEFBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQTNGO0dVUk1VS0hJIFZPV0VMIFNJR04gSTtNYzswO0w7Ozs7O047Ozs7OworMEE0MDtHVVJNVUtISSBWT1dFTCBTSUdOIElJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQTQxO0dVUk1VS0hJIFZPV0VMIFNJR04gVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQTQyO0dVUk1VS0hJIFZPV0VMIFNJR04gVVU7TW47MDtOU007Ozs7O047Ozs7OworMEE0NztHVVJNVUtISSBWT1dFTCBTSUdOIEVFO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBNDg7R1VSTVVLSEkgVk9XRUwgU0lHTiBBSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQTRCO0dVUk1VS0hJIFZPV0VMIFNJR04gT087TW47MDtOU007Ozs7O047Ozs7OworMEE0QztHVVJNVUtISSBWT1dFTCBTSUdOIEFVO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBNEQ7R1VSTVVLSEkgU0lHTiBWSVJBTUE7TW47OTtOU007Ozs7O047Ozs7OworMEE1OTtHVVJNVUtISSBMRVRURVIgS0hIQTtMbzswO0w7MEExNiAwQTNDOzs7O047Ozs7OworMEE1QTtHVVJNVUtISSBMRVRURVIgR0hIQTtMbzswO0w7MEExNyAwQTNDOzs7O047Ozs7OworMEE1QjtHVVJNVUtISSBMRVRURVIgWkE7TG87MDtMOzBBMUMgMEEzQzs7OztOOzs7OzsKKzBBNUM7R1VSTVVLSEkgTEVUVEVSIFJSQTtMbzswO0w7Ozs7O047Ozs7OworMEE1RTtHVVJNVUtISSBMRVRURVIgRkE7TG87MDtMOzBBMkIgMEEzQzs7OztOOzs7OzsKKzBBNjY7R1VSTVVLSEkgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMEE2NztHVVJNVUtISSBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzBBNjg7R1VSTVVLSEkgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswQTY5O0dVUk1VS0hJIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswQTZBO0dVUk1VS0hJIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzBBNkI7R1VSTVVLSEkgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMEE2QztHVVJNVUtISSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzBBNkQ7R1VSTVVLSEkgRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzBBNkU7R1VSTVVLSEkgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzBBNkY7R1VSTVVLSEkgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMEE3MDtHVVJNVUtISSBUSVBQSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQTcxO0dVUk1VS0hJIEFEREFLO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBNzI7R1VSTVVLSEkgSVJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTczO0dVUk1VS0hJIFVSQTtMbzswO0w7Ozs7O047Ozs7OworMEE3NDtHVVJNVUtISSBFSyBPTktBUjtMbzswO0w7Ozs7O047Ozs7OworMEE4MTtHVUpBUkFUSSBTSUdOIENBTkRSQUJJTkRVO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBODI7R1VKQVJBVEkgU0lHTiBBTlVTVkFSQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQTgzO0dVSkFSQVRJIFNJR04gVklTQVJHQTtNYzswO0w7Ozs7O047Ozs7OworMEE4NTtHVUpBUkFUSSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMEE4NjtHVUpBUkFUSSBMRVRURVIgQUE7TG87MDtMOzs7OztOOzs7OzsKKzBBODc7R1VKQVJBVEkgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzBBODg7R1VKQVJBVEkgTEVUVEVSIElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTg5O0dVSkFSQVRJIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQThBO0dVSkFSQVRJIExFVFRFUiBVVTtMbzswO0w7Ozs7O047Ozs7OworMEE4QjtHVUpBUkFUSSBMRVRURVIgVk9DQUxJQyBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQThEO0dVSkFSQVRJIFZPV0VMIENBTkRSQSBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQThGO0dVSkFSQVRJIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTkwO0dVSkFSQVRJIExFVFRFUiBBSTtMbzswO0w7Ozs7O047Ozs7OworMEE5MTtHVUpBUkFUSSBWT1dFTCBDQU5EUkEgTztMbzswO0w7Ozs7O047Ozs7OworMEE5MztHVUpBUkFUSSBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMEE5NDtHVUpBUkFUSSBMRVRURVIgQVU7TG87MDtMOzs7OztOOzs7OzsKKzBBOTU7R1VKQVJBVEkgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTk2O0dVSkFSQVRJIExFVFRFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBOTc7R1VKQVJBVEkgTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTk4O0dVSkFSQVRJIExFVFRFUiBHSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBOTk7R1VKQVJBVEkgTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMEE5QTtHVUpBUkFUSSBMRVRURVIgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzBBOUI7R1VKQVJBVEkgTEVUVEVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMEE5QztHVUpBUkFUSSBMRVRURVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzBBOUQ7R1VKQVJBVEkgTEVUVEVSIEpIQTtMbzswO0w7Ozs7O047Ozs7OworMEE5RTtHVUpBUkFUSSBMRVRURVIgTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTlGO0dVSkFSQVRJIExFVFRFUiBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQTA7R1VKQVJBVEkgTEVUVEVSIFRUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQTE7R1VKQVJBVEkgTEVUVEVSIEREQTtMbzswO0w7Ozs7O047Ozs7OworMEFBMjtHVUpBUkFUSSBMRVRURVIgRERIQTtMbzswO0w7Ozs7O047Ozs7OworMEFBMztHVUpBUkFUSSBMRVRURVIgTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUE0O0dVSkFSQVRJIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMEFBNTtHVUpBUkFUSSBMRVRURVIgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUE2O0dVSkFSQVRJIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMEFBNztHVUpBUkFUSSBMRVRURVIgREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUE4O0dVSkFSQVRJIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMEFBQTtHVUpBUkFUSSBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQUI7R1VKQVJBVEkgTEVUVEVSIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMEFBQztHVUpBUkFUSSBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzBBQUQ7R1VKQVJBVEkgTEVUVEVSIEJIQTtMbzswO0w7Ozs7O047Ozs7OworMEFBRTtHVUpBUkFUSSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzBBQUY7R1VKQVJBVEkgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUIwO0dVSkFSQVRJIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMEFCMjtHVUpBUkFUSSBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQjM7R1VKQVJBVEkgTEVUVEVSIExMQTtMbzswO0w7Ozs7O047Ozs7OworMEFCNTtHVUpBUkFUSSBMRVRURVIgVkE7TG87MDtMOzs7OztOOzs7OzsKKzBBQjY7R1VKQVJBVEkgTEVUVEVSIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMEFCNztHVUpBUkFUSSBMRVRURVIgU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUI4O0dVSkFSQVRJIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMEFCOTtHVUpBUkFUSSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQkM7R1VKQVJBVEkgU0lHTiBOVUtUQTtNbjs3O05TTTs7Ozs7Tjs7Ozs7CiswQUJEO0dVSkFSQVRJIFNJR04gQVZBR1JBSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQkU7R1VKQVJBVEkgVk9XRUwgU0lHTiBBQTtNYzswO0w7Ozs7O047Ozs7OworMEFCRjtHVUpBUkFUSSBWT1dFTCBTSUdOIEk7TWM7MDtMOzs7OztOOzs7OzsKKzBBQzA7R1VKQVJBVEkgVk9XRUwgU0lHTiBJSTtNYzswO0w7Ozs7O047Ozs7OworMEFDMTtHVUpBUkFUSSBWT1dFTCBTSUdOIFU7TW47MDtOU007Ozs7O047Ozs7OworMEFDMjtHVUpBUkFUSSBWT1dFTCBTSUdOIFVVO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBQzM7R1VKQVJBVEkgVk9XRUwgU0lHTiBWT0NBTElDIFI7TW47MDtOU007Ozs7O047Ozs7OworMEFDNDtHVUpBUkFUSSBWT1dFTCBTSUdOIFZPQ0FMSUMgUlI7TW47MDtOU007Ozs7O047Ozs7OworMEFDNTtHVUpBUkFUSSBWT1dFTCBTSUdOIENBTkRSQSBFO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBQzc7R1VKQVJBVEkgVk9XRUwgU0lHTiBFO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBQzg7R1VKQVJBVEkgVk9XRUwgU0lHTiBBSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQUM5O0dVSkFSQVRJIFZPV0VMIFNJR04gQ0FORFJBIE87TWM7MDtMOzs7OztOOzs7OzsKKzBBQ0I7R1VKQVJBVEkgVk9XRUwgU0lHTiBPO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQUNDO0dVSkFSQVRJIFZPV0VMIFNJR04gQVU7TWM7MDtMOzs7OztOOzs7OzsKKzBBQ0Q7R1VKQVJBVEkgU0lHTiBWSVJBTUE7TW47OTtOU007Ozs7O047Ozs7OworMEFEMDtHVUpBUkFUSSBPTTtMbzswO0w7Ozs7O047Ozs7OworMEFFMDtHVUpBUkFUSSBMRVRURVIgVk9DQUxJQyBSUjtMbzswO0w7Ozs7O047Ozs7OworMEFFNjtHVUpBUkFUSSBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CiswQUU3O0dVSkFSQVRJIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMEFFODtHVUpBUkFUSSBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzBBRTk7R1VKQVJBVEkgRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzBBRUE7R1VKQVJBVEkgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMEFFQjtHVUpBUkFUSSBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CiswQUVDO0dVSkFSQVRJIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMEFFRDtHVUpBUkFUSSBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMEFFRTtHVUpBUkFUSSBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMEFFRjtHVUpBUkFUSSBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CiswQjAxO09SSVlBIFNJR04gQ0FORFJBQklORFU7TW47MDtOU007Ozs7O047Ozs7OworMEIwMjtPUklZQSBTSUdOIEFOVVNWQVJBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQjAzO09SSVlBIFNJR04gVklTQVJHQTtNYzswO0w7Ozs7O047Ozs7OworMEIwNTtPUklZQSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMEIwNjtPUklZQSBMRVRURVIgQUE7TG87MDtMOzs7OztOOzs7OzsKKzBCMDc7T1JJWUEgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzBCMDg7T1JJWUEgTEVUVEVSIElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjA5O09SSVlBIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjBBO09SSVlBIExFVFRFUiBVVTtMbzswO0w7Ozs7O047Ozs7OworMEIwQjtPUklZQSBMRVRURVIgVk9DQUxJQyBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjBDO09SSVlBIExFVFRFUiBWT0NBTElDIEw7TG87MDtMOzs7OztOOzs7OzsKKzBCMEY7T1JJWUEgTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzBCMTA7T1JJWUEgTEVUVEVSIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjEzO09SSVlBIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjE0O09SSVlBIExFVFRFUiBBVTtMbzswO0w7Ozs7O047Ozs7OworMEIxNTtPUklZQSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzBCMTY7T1JJWUEgTEVUVEVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMEIxNztPUklZQSBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzBCMTg7T1JJWUEgTEVUVEVSIEdIQTtMbzswO0w7Ozs7O047Ozs7OworMEIxOTtPUklZQSBMRVRURVIgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjFBO09SSVlBIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMEIxQjtPUklZQSBMRVRURVIgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjFDO09SSVlBIExFVFRFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworMEIxRDtPUklZQSBMRVRURVIgSkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjFFO09SSVlBIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzBCMUY7T1JJWUEgTEVUVEVSIFRUQTtMbzswO0w7Ozs7O047Ozs7OworMEIyMDtPUklZQSBMRVRURVIgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEIyMTtPUklZQSBMRVRURVIgRERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjIyO09SSVlBIExFVFRFUiBEREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjIzO09SSVlBIExFVFRFUiBOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBCMjQ7T1JJWUEgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjI1O09SSVlBIExFVFRFUiBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMjY7T1JJWUEgTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjI3O09SSVlBIExFVFRFUiBESEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMjg7T1JJWUEgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjJBO09SSVlBIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMEIyQjtPUklZQSBMRVRURVIgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjJDO09SSVlBIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMEIyRDtPUklZQSBMRVRURVIgQkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjJFO09SSVlBIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMEIyRjtPUklZQSBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzBCMzA7T1JJWUEgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjMyO09SSVlBIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMEIzMztPUklZQSBMRVRURVIgTExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjM2O09SSVlBIExFVFRFUiBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMzc7T1JJWUEgTEVUVEVSIFNTQTtMbzswO0w7Ozs7O047Ozs7OworMEIzODtPUklZQSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzBCMzk7T1JJWUEgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjNDO09SSVlBIFNJR04gTlVLVEE7TW47NztOU007Ozs7O047Ozs7OworMEIzRDtPUklZQSBTSUdOIEFWQUdSQUhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjNFO09SSVlBIFZPV0VMIFNJR04gQUE7TWM7MDtMOzs7OztOOzs7OzsKKzBCM0Y7T1JJWUEgVk9XRUwgU0lHTiBJO01uOzA7TlNNOzs7OztOOzs7OzsKKzBCNDA7T1JJWUEgVk9XRUwgU0lHTiBJSTtNYzswO0w7Ozs7O047Ozs7OworMEI0MTtPUklZQSBWT1dFTCBTSUdOIFU7TW47MDtOU007Ozs7O047Ozs7OworMEI0MjtPUklZQSBWT1dFTCBTSUdOIFVVO01uOzA7TlNNOzs7OztOOzs7OzsKKzBCNDM7T1JJWUEgVk9XRUwgU0lHTiBWT0NBTElDIFI7TW47MDtOU007Ozs7O047Ozs7OworMEI0NztPUklZQSBWT1dFTCBTSUdOIEU7TWM7MDtMOzs7OztOOzs7OzsKKzBCNDg7T1JJWUEgVk9XRUwgU0lHTiBBSTtNYzswO0w7MEI0NyAwQjU2Ozs7O047Ozs7OworMEI0QjtPUklZQSBWT1dFTCBTSUdOIE87TWM7MDtMOzBCNDcgMEIzRTs7OztOOzs7OzsKKzBCNEM7T1JJWUEgVk9XRUwgU0lHTiBBVTtNYzswO0w7MEI0NyAwQjU3Ozs7O047Ozs7OworMEI0RDtPUklZQSBTSUdOIFZJUkFNQTtNbjs5O05TTTs7Ozs7Tjs7Ozs7CiswQjU2O09SSVlBIEFJIExFTkdUSCBNQVJLO01uOzA7TlNNOzs7OztOOzs7OzsKKzBCNTc7T1JJWUEgQVUgTEVOR1RIIE1BUks7TWM7MDtMOzs7OztOOzs7OzsKKzBCNUM7T1JJWUEgTEVUVEVSIFJSQTtMbzswO0w7MEIyMSAwQjNDOzs7O047Ozs7OworMEI1RDtPUklZQSBMRVRURVIgUkhBO0xvOzA7TDswQjIyIDBCM0M7Ozs7Tjs7Ozs7CiswQjVGO09SSVlBIExFVFRFUiBZWUE7TG87MDtMOzs7OztOOzs7OzsKKzBCNjA7T1JJWUEgTEVUVEVSIFZPQ0FMSUMgUlI7TG87MDtMOzs7OztOOzs7OzsKKzBCNjE7T1JJWUEgTEVUVEVSIFZPQ0FMSUMgTEw7TG87MDtMOzs7OztOOzs7OzsKKzBCNjY7T1JJWUEgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMEI2NztPUklZQSBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzBCNjg7T1JJWUEgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswQjY5O09SSVlBIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswQjZBO09SSVlBIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzBCNkI7T1JJWUEgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMEI2QztPUklZQSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzBCNkQ7T1JJWUEgRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzBCNkU7T1JJWUEgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzBCNkY7T1JJWUEgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMEI3MDtPUklZQSBJU1NIQVI7U287MDtMOzs7OztOOzs7OzsKKzBCODI7VEFNSUwgU0lHTiBBTlVTVkFSQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQjgzO1RBTUlMIFNJR04gVklTQVJHQTtNYzswO0w7Ozs7O047Ozs7OworMEI4NTtUQU1JTCBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMEI4NjtUQU1JTCBMRVRURVIgQUE7TG87MDtMOzs7OztOOzs7OzsKKzBCODc7VEFNSUwgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzBCODg7VEFNSUwgTEVUVEVSIElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjg5O1RBTUlMIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjhBO1RBTUlMIExFVFRFUiBVVTtMbzswO0w7Ozs7O047Ozs7OworMEI4RTtUQU1JTCBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMEI4RjtUQU1JTCBMRVRURVIgRUU7TG87MDtMOzs7OztOOzs7OzsKKzBCOTA7VEFNSUwgTEVUVEVSIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjkyO1RBTUlMIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjkzO1RBTUlMIExFVFRFUiBPTztMbzswO0w7Ozs7O047Ozs7OworMEI5NDtUQU1JTCBMRVRURVIgQVU7TG87MDtMOzBCOTIgMEJENzs7OztOOzs7OzsKKzBCOTU7VEFNSUwgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjk5O1RBTUlMIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzBCOUE7VEFNSUwgTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjlDO1RBTUlMIExFVFRFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworMEI5RTtUQU1JTCBMRVRURVIgTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjlGO1RBTUlMIExFVFRFUiBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzBCQTM7VEFNSUwgTEVUVEVSIE5OQTtMbzswO0w7Ozs7O047Ozs7OworMEJBNDtUQU1JTCBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzBCQTg7VEFNSUwgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkE5O1RBTUlMIExFVFRFUiBOTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkFBO1RBTUlMIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMEJBRTtUQU1JTCBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzBCQUY7VEFNSUwgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkIwO1RBTUlMIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMEJCMTtUQU1JTCBMRVRURVIgUlJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkIyO1RBTUlMIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMEJCMztUQU1JTCBMRVRURVIgTExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkI0O1RBTUlMIExFVFRFUiBMTExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkI1O1RBTUlMIExFVFRFUiBWQTtMbzswO0w7Ozs7O047Ozs7OworMEJCNztUQU1JTCBMRVRURVIgU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkI4O1RBTUlMIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMEJCOTtUQU1JTCBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCQkU7VEFNSUwgVk9XRUwgU0lHTiBBQTtNYzswO0w7Ozs7O047Ozs7OworMEJCRjtUQU1JTCBWT1dFTCBTSUdOIEk7TWM7MDtMOzs7OztOOzs7OzsKKzBCQzA7VEFNSUwgVk9XRUwgU0lHTiBJSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQkMxO1RBTUlMIFZPV0VMIFNJR04gVTtNYzswO0w7Ozs7O047Ozs7OworMEJDMjtUQU1JTCBWT1dFTCBTSUdOIFVVO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQkM2O1RBTUlMIFZPV0VMIFNJR04gRTtNYzswO0w7Ozs7O047Ozs7OworMEJDNztUQU1JTCBWT1dFTCBTSUdOIEVFO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQkM4O1RBTUlMIFZPV0VMIFNJR04gQUk7TWM7MDtMOzs7OztOOzs7OzsKKzBCQ0E7VEFNSUwgVk9XRUwgU0lHTiBPO01jOzA7TDswQkM2IDBCQkU7Ozs7Tjs7Ozs7CiswQkNCO1RBTUlMIFZPV0VMIFNJR04gT087TWM7MDtMOzBCQzcgMEJCRTs7OztOOzs7OzsKKzBCQ0M7VEFNSUwgVk9XRUwgU0lHTiBBVTtNYzswO0w7MEJDNiAwQkQ3Ozs7O047Ozs7OworMEJDRDtUQU1JTCBTSUdOIFZJUkFNQTtNbjs5O05TTTs7Ozs7Tjs7Ozs7CiswQkQ3O1RBTUlMIEFVIExFTkdUSCBNQVJLO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQkU3O1RBTUlMIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMEJFODtUQU1JTCBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzBCRTk7VEFNSUwgRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzBCRUE7VEFNSUwgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMEJFQjtUQU1JTCBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CiswQkVDO1RBTUlMIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMEJFRDtUQU1JTCBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMEJFRTtUQU1JTCBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMEJFRjtUQU1JTCBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CiswQkYwO1RBTUlMIE5VTUJFUiBURU47Tm87MDtMOzs7OzEwO047Ozs7OworMEJGMTtUQU1JTCBOVU1CRVIgT05FIEhVTkRSRUQ7Tm87MDtMOzs7OzEwMDtOOzs7OzsKKzBCRjI7VEFNSUwgTlVNQkVSIE9ORSBUSE9VU0FORDtObzswO0w7Ozs7MTAwMDtOOzs7OzsKKzBDMDE7VEVMVUdVIFNJR04gQ0FORFJBQklORFU7TWM7MDtMOzs7OztOOzs7OzsKKzBDMDI7VEVMVUdVIFNJR04gQU5VU1ZBUkE7TWM7MDtMOzs7OztOOzs7OzsKKzBDMDM7VEVMVUdVIFNJR04gVklTQVJHQTtNYzswO0w7Ozs7O047Ozs7OworMEMwNTtURUxVR1UgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMDY7VEVMVUdVIExFVFRFUiBBQTtMbzswO0w7Ozs7O047Ozs7OworMEMwNztURUxVR1UgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzBDMDg7VEVMVUdVIExFVFRFUiBJSTtMbzswO0w7Ozs7O047Ozs7OworMEMwOTtURUxVR1UgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzBDMEE7VEVMVUdVIExFVFRFUiBVVTtMbzswO0w7Ozs7O047Ozs7OworMEMwQjtURUxVR1UgTEVUVEVSIFZPQ0FMSUMgUjtMbzswO0w7Ozs7O047Ozs7OworMEMwQztURUxVR1UgTEVUVEVSIFZPQ0FMSUMgTDtMbzswO0w7Ozs7O047Ozs7OworMEMwRTtURUxVR1UgTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzBDMEY7VEVMVUdVIExFVFRFUiBFRTtMbzswO0w7Ozs7O047Ozs7OworMEMxMDtURUxVR1UgTEVUVEVSIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzEyO1RFTFVHVSBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMEMxMztURUxVR1UgTEVUVEVSIE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzE0O1RFTFVHVSBMRVRURVIgQVU7TG87MDtMOzs7OztOOzs7OzsKKzBDMTU7VEVMVUdVIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMEMxNjtURUxVR1UgTEVUVEVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMEMxNztURUxVR1UgTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzE4O1RFTFVHVSBMRVRURVIgR0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzE5O1RFTFVHVSBMRVRURVIgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzFBO1RFTFVHVSBMRVRURVIgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzBDMUI7VEVMVUdVIExFVFRFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMUM7VEVMVUdVIExFVFRFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworMEMxRDtURUxVR1UgTEVUVEVSIEpIQTtMbzswO0w7Ozs7O047Ozs7OworMEMxRTtURUxVR1UgTEVUVEVSIE5ZQTtMbzswO0w7Ozs7O047Ozs7OworMEMxRjtURUxVR1UgTEVUVEVSIFRUQTtMbzswO0w7Ozs7O047Ozs7OworMEMyMDtURUxVR1UgTEVUVEVSIFRUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMjE7VEVMVUdVIExFVFRFUiBEREE7TG87MDtMOzs7OztOOzs7OzsKKzBDMjI7VEVMVUdVIExFVFRFUiBEREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzIzO1RFTFVHVSBMRVRURVIgTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzI0O1RFTFVHVSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMjU7VEVMVUdVIExFVFRFUiBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMjY7VEVMVUdVIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMEMyNztURUxVR1UgTEVUVEVSIERIQTtMbzswO0w7Ozs7O047Ozs7OworMEMyODtURUxVR1UgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzJBO1RFTFVHVSBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMkI7VEVMVUdVIExFVFRFUiBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMkM7VEVMVUdVIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMEMyRDtURUxVR1UgTEVUVEVSIEJIQTtMbzswO0w7Ozs7O047Ozs7OworMEMyRTtURUxVR1UgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzJGO1RFTFVHVSBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzBDMzA7VEVMVUdVIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMEMzMTtURUxVR1UgTEVUVEVSIFJSQTtMbzswO0w7Ozs7O047Ozs7OworMEMzMjtURUxVR1UgTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzMzO1RFTFVHVSBMRVRURVIgTExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzM1O1RFTFVHVSBMRVRURVIgVkE7TG87MDtMOzs7OztOOzs7OzsKKzBDMzY7VEVMVUdVIExFVFRFUiBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMzc7VEVMVUdVIExFVFRFUiBTU0E7TG87MDtMOzs7OztOOzs7OzsKKzBDMzg7VEVMVUdVIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMEMzOTtURUxVR1UgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzNFO1RFTFVHVSBWT1dFTCBTSUdOIEFBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBDM0Y7VEVMVUdVIFZPV0VMIFNJR04gSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQzQwO1RFTFVHVSBWT1dFTCBTSUdOIElJO01uOzA7TlNNOzs7OztOOzs7OzsKKzBDNDE7VEVMVUdVIFZPV0VMIFNJR04gVTtNYzswO0w7Ozs7O047Ozs7OworMEM0MjtURUxVR1UgVk9XRUwgU0lHTiBVVTtNYzswO0w7Ozs7O047Ozs7OworMEM0MztURUxVR1UgVk9XRUwgU0lHTiBWT0NBTElDIFI7TWM7MDtMOzs7OztOOzs7OzsKKzBDNDQ7VEVMVUdVIFZPV0VMIFNJR04gVk9DQUxJQyBSUjtNYzswO0w7Ozs7O047Ozs7OworMEM0NjtURUxVR1UgVk9XRUwgU0lHTiBFO01uOzA7TlNNOzs7OztOOzs7OzsKKzBDNDc7VEVMVUdVIFZPV0VMIFNJR04gRUU7TW47MDtOU007Ozs7O047Ozs7OworMEM0ODtURUxVR1UgVk9XRUwgU0lHTiBBSTtNbjswO05TTTswQzQ2IDBDNTY7Ozs7Tjs7Ozs7CiswQzRBO1RFTFVHVSBWT1dFTCBTSUdOIE87TW47MDtOU007Ozs7O047Ozs7OworMEM0QjtURUxVR1UgVk9XRUwgU0lHTiBPTztNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQzRDO1RFTFVHVSBWT1dFTCBTSUdOIEFVO01uOzA7TlNNOzs7OztOOzs7OzsKKzBDNEQ7VEVMVUdVIFNJR04gVklSQU1BO01uOzk7TlNNOzs7OztOOzs7OzsKKzBDNTU7VEVMVUdVIExFTkdUSCBNQVJLO01uOzg0O05TTTs7Ozs7Tjs7Ozs7CiswQzU2O1RFTFVHVSBBSSBMRU5HVEggTUFSSztNbjs5MTtOU007Ozs7O047Ozs7OworMEM2MDtURUxVR1UgTEVUVEVSIFZPQ0FMSUMgUlI7TG87MDtMOzs7OztOOzs7OzsKKzBDNjE7VEVMVUdVIExFVFRFUiBWT0NBTElDIExMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzY2O1RFTFVHVSBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CiswQzY3O1RFTFVHVSBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzBDNjg7VEVMVUdVIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMEM2OTtURUxVR1UgRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzBDNkE7VEVMVUdVIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzBDNkI7VEVMVUdVIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzBDNkM7VEVMVUdVIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMEM2RDtURUxVR1UgRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzBDNkU7VEVMVUdVIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswQzZGO1RFTFVHVSBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CiswQzgyO0tBTk5BREEgU0lHTiBBTlVTVkFSQTtNYzswO0w7Ozs7O047Ozs7OworMEM4MztLQU5OQURBIFNJR04gVklTQVJHQTtNYzswO0w7Ozs7O047Ozs7OworMEM4NTtLQU5OQURBIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzg2O0tBTk5BREEgTEVUVEVSIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzg3O0tBTk5BREEgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzBDODg7S0FOTkFEQSBMRVRURVIgSUk7TG87MDtMOzs7OztOOzs7OzsKKzBDODk7S0FOTkFEQSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMEM4QTtLQU5OQURBIExFVFRFUiBVVTtMbzswO0w7Ozs7O047Ozs7OworMEM4QjtLQU5OQURBIExFVFRFUiBWT0NBTElDIFI7TG87MDtMOzs7OztOOzs7OzsKKzBDOEM7S0FOTkFEQSBMRVRURVIgVk9DQUxJQyBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzhFO0tBTk5BREEgTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzBDOEY7S0FOTkFEQSBMRVRURVIgRUU7TG87MDtMOzs7OztOOzs7OzsKKzBDOTA7S0FOTkFEQSBMRVRURVIgQUk7TG87MDtMOzs7OztOOzs7OzsKKzBDOTI7S0FOTkFEQSBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMEM5MztLQU5OQURBIExFVFRFUiBPTztMbzswO0w7Ozs7O047Ozs7OworMEM5NDtLQU5OQURBIExFVFRFUiBBVTtMbzswO0w7Ozs7O047Ozs7OworMEM5NTtLQU5OQURBIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMEM5NjtLQU5OQURBIExFVFRFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDOTc7S0FOTkFEQSBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzBDOTg7S0FOTkFEQSBMRVRURVIgR0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzk5O0tBTk5BREEgTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMEM5QTtLQU5OQURBIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMEM5QjtLQU5OQURBIExFVFRFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDOUM7S0FOTkFEQSBMRVRURVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzBDOUQ7S0FOTkFEQSBMRVRURVIgSkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzlFO0tBTk5BREEgTEVUVEVSIE5ZQTtMbzswO0w7Ozs7O047Ozs7OworMEM5RjtLQU5OQURBIExFVFRFUiBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQTA7S0FOTkFEQSBMRVRURVIgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMENBMTtLQU5OQURBIExFVFRFUiBEREE7TG87MDtMOzs7OztOOzs7OzsKKzBDQTI7S0FOTkFEQSBMRVRURVIgRERIQTtMbzswO0w7Ozs7O047Ozs7OworMENBMztLQU5OQURBIExFVFRFUiBOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBDQTQ7S0FOTkFEQSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQTU7S0FOTkFEQSBMRVRURVIgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0E2O0tBTk5BREEgTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0E3O0tBTk5BREEgTEVUVEVSIERIQTtMbzswO0w7Ozs7O047Ozs7OworMENBODtLQU5OQURBIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMENBQTtLQU5OQURBIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMENBQjtLQU5OQURBIExFVFRFUiBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQUM7S0FOTkFEQSBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzBDQUQ7S0FOTkFEQSBMRVRURVIgQkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0FFO0tBTk5BREEgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0FGO0tBTk5BREEgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0IwO0tBTk5BREEgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0IxO0tBTk5BREEgTEVUVEVSIFJSQTtMbzswO0w7Ozs7O047Ozs7OworMENCMjtLQU5OQURBIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMENCMztLQU5OQURBIExFVFRFUiBMTEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQjU7S0FOTkFEQSBMRVRURVIgVkE7TG87MDtMOzs7OztOOzs7OzsKKzBDQjY7S0FOTkFEQSBMRVRURVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0I3O0tBTk5BREEgTEVUVEVSIFNTQTtMbzswO0w7Ozs7O047Ozs7OworMENCODtLQU5OQURBIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMENCOTtLQU5OQURBIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMENCRTtLQU5OQURBIFZPV0VMIFNJR04gQUE7TWM7MDtMOzs7OztOOzs7OzsKKzBDQkY7S0FOTkFEQSBWT1dFTCBTSUdOIEk7TW47MDtOU007Ozs7O047Ozs7OworMENDMDtLQU5OQURBIFZPV0VMIFNJR04gSUk7TWM7MDtMOzBDQkYgMENENTs7OztOOzs7OzsKKzBDQzE7S0FOTkFEQSBWT1dFTCBTSUdOIFU7TWM7MDtMOzs7OztOOzs7OzsKKzBDQzI7S0FOTkFEQSBWT1dFTCBTSUdOIFVVO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQ0MzO0tBTk5BREEgVk9XRUwgU0lHTiBWT0NBTElDIFI7TWM7MDtMOzs7OztOOzs7OzsKKzBDQzQ7S0FOTkFEQSBWT1dFTCBTSUdOIFZPQ0FMSUMgUlI7TWM7MDtMOzs7OztOOzs7OzsKKzBDQzY7S0FOTkFEQSBWT1dFTCBTSUdOIEU7TW47MDtOU007Ozs7O047Ozs7OworMENDNztLQU5OQURBIFZPV0VMIFNJR04gRUU7TWM7MDtMOzBDQzYgMENENTs7OztOOzs7OzsKKzBDQzg7S0FOTkFEQSBWT1dFTCBTSUdOIEFJO01jOzA7TDswQ0M2IDBDRDY7Ozs7Tjs7Ozs7CiswQ0NBO0tBTk5BREEgVk9XRUwgU0lHTiBPO01jOzA7TDswQ0M2IDBDQzI7Ozs7Tjs7Ozs7CiswQ0NCO0tBTk5BREEgVk9XRUwgU0lHTiBPTztNYzswO0w7MENDQSAwQ0Q1Ozs7O047Ozs7OworMENDQztLQU5OQURBIFZPV0VMIFNJR04gQVU7TW47MDtOU007Ozs7O047Ozs7OworMENDRDtLQU5OQURBIFNJR04gVklSQU1BO01uOzk7TlNNOzs7OztOOzs7OzsKKzBDRDU7S0FOTkFEQSBMRU5HVEggTUFSSztNYzswO0w7Ozs7O047Ozs7OworMENENjtLQU5OQURBIEFJIExFTkdUSCBNQVJLO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQ0RFO0tBTk5BREEgTEVUVEVSIEZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0UwO0tBTk5BREEgTEVUVEVSIFZPQ0FMSUMgUlI7TG87MDtMOzs7OztOOzs7OzsKKzBDRTE7S0FOTkFEQSBMRVRURVIgVk9DQUxJQyBMTDtMbzswO0w7Ozs7O047Ozs7OworMENFNjtLQU5OQURBIERJR0lUIFpFUk87TmQ7MDtMOzswOzA7MDtOOzs7OzsKKzBDRTc7S0FOTkFEQSBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzBDRTg7S0FOTkFEQSBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzBDRTk7S0FOTkFEQSBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMENFQTtLQU5OQURBIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzBDRUI7S0FOTkFEQSBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CiswQ0VDO0tBTk5BREEgRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CiswQ0VEO0tBTk5BREEgRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzBDRUU7S0FOTkFEQSBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMENFRjtLQU5OQURBIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzBEMDI7TUFMQVlBTEFNIFNJR04gQU5VU1ZBUkE7TWM7MDtMOzs7OztOOzs7OzsKKzBEMDM7TUFMQVlBTEFNIFNJR04gVklTQVJHQTtNYzswO0w7Ozs7O047Ozs7OworMEQwNTtNQUxBWUFMQU0gTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMDY7TUFMQVlBTEFNIExFVFRFUiBBQTtMbzswO0w7Ozs7O047Ozs7OworMEQwNztNQUxBWUFMQU0gTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzBEMDg7TUFMQVlBTEFNIExFVFRFUiBJSTtMbzswO0w7Ozs7O047Ozs7OworMEQwOTtNQUxBWUFMQU0gTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzBEMEE7TUFMQVlBTEFNIExFVFRFUiBVVTtMbzswO0w7Ozs7O047Ozs7OworMEQwQjtNQUxBWUFMQU0gTEVUVEVSIFZPQ0FMSUMgUjtMbzswO0w7Ozs7O047Ozs7OworMEQwQztNQUxBWUFMQU0gTEVUVEVSIFZPQ0FMSUMgTDtMbzswO0w7Ozs7O047Ozs7OworMEQwRTtNQUxBWUFMQU0gTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzBEMEY7TUFMQVlBTEFNIExFVFRFUiBFRTtMbzswO0w7Ozs7O047Ozs7OworMEQxMDtNQUxBWUFMQU0gTEVUVEVSIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDEyO01BTEFZQUxBTSBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMEQxMztNQUxBWUFMQU0gTEVUVEVSIE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDE0O01BTEFZQUxBTSBMRVRURVIgQVU7TG87MDtMOzs7OztOOzs7OzsKKzBEMTU7TUFMQVlBTEFNIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMEQxNjtNQUxBWUFMQU0gTEVUVEVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMEQxNztNQUxBWUFMQU0gTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDE4O01BTEFZQUxBTSBMRVRURVIgR0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDE5O01BTEFZQUxBTSBMRVRURVIgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDFBO01BTEFZQUxBTSBMRVRURVIgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzBEMUI7TUFMQVlBTEFNIExFVFRFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMUM7TUFMQVlBTEFNIExFVFRFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworMEQxRDtNQUxBWUFMQU0gTEVUVEVSIEpIQTtMbzswO0w7Ozs7O047Ozs7OworMEQxRTtNQUxBWUFMQU0gTEVUVEVSIE5ZQTtMbzswO0w7Ozs7O047Ozs7OworMEQxRjtNQUxBWUFMQU0gTEVUVEVSIFRUQTtMbzswO0w7Ozs7O047Ozs7OworMEQyMDtNQUxBWUFMQU0gTEVUVEVSIFRUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMjE7TUFMQVlBTEFNIExFVFRFUiBEREE7TG87MDtMOzs7OztOOzs7OzsKKzBEMjI7TUFMQVlBTEFNIExFVFRFUiBEREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDIzO01BTEFZQUxBTSBMRVRURVIgTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDI0O01BTEFZQUxBTSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMjU7TUFMQVlBTEFNIExFVFRFUiBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMjY7TUFMQVlBTEFNIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMEQyNztNQUxBWUFMQU0gTEVUVEVSIERIQTtMbzswO0w7Ozs7O047Ozs7OworMEQyODtNQUxBWUFMQU0gTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDJBO01BTEFZQUxBTSBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMkI7TUFMQVlBTEFNIExFVFRFUiBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMkM7TUFMQVlBTEFNIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMEQyRDtNQUxBWUFMQU0gTEVUVEVSIEJIQTtMbzswO0w7Ozs7O047Ozs7OworMEQyRTtNQUxBWUFMQU0gTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDJGO01BTEFZQUxBTSBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzBEMzA7TUFMQVlBTEFNIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMEQzMTtNQUxBWUFMQU0gTEVUVEVSIFJSQTtMbzswO0w7Ozs7O047Ozs7OworMEQzMjtNQUxBWUFMQU0gTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDMzO01BTEFZQUxBTSBMRVRURVIgTExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDM0O01BTEFZQUxBTSBMRVRURVIgTExMQTtMbzswO0w7Ozs7O047Ozs7OworMEQzNTtNQUxBWUFMQU0gTEVUVEVSIFZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDM2O01BTEFZQUxBTSBMRVRURVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDM3O01BTEFZQUxBTSBMRVRURVIgU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDM4O01BTEFZQUxBTSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzBEMzk7TUFMQVlBTEFNIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMEQzRTtNQUxBWUFMQU0gVk9XRUwgU0lHTiBBQTtNYzswO0w7Ozs7O047Ozs7OworMEQzRjtNQUxBWUFMQU0gVk9XRUwgU0lHTiBJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswRDQwO01BTEFZQUxBTSBWT1dFTCBTSUdOIElJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswRDQxO01BTEFZQUxBTSBWT1dFTCBTSUdOIFU7TW47MDtOU007Ozs7O047Ozs7OworMEQ0MjtNQUxBWUFMQU0gVk9XRUwgU0lHTiBVVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRDQzO01BTEFZQUxBTSBWT1dFTCBTSUdOIFZPQ0FMSUMgUjtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRDQ2O01BTEFZQUxBTSBWT1dFTCBTSUdOIEU7TWM7MDtMOzs7OztOOzs7OzsKKzBENDc7TUFMQVlBTEFNIFZPV0VMIFNJR04gRUU7TWM7MDtMOzs7OztOOzs7OzsKKzBENDg7TUFMQVlBTEFNIFZPV0VMIFNJR04gQUk7TWM7MDtMOzs7OztOOzs7OzsKKzBENEE7TUFMQVlBTEFNIFZPV0VMIFNJR04gTztNYzswO0w7MEQ0NiAwRDNFOzs7O047Ozs7OworMEQ0QjtNQUxBWUFMQU0gVk9XRUwgU0lHTiBPTztNYzswO0w7MEQ0NyAwRDNFOzs7O047Ozs7OworMEQ0QztNQUxBWUFMQU0gVk9XRUwgU0lHTiBBVTtNYzswO0w7MEQ0NiAwRDU3Ozs7O047Ozs7OworMEQ0RDtNQUxBWUFMQU0gU0lHTiBWSVJBTUE7TW47OTtOU007Ozs7O047Ozs7OworMEQ1NztNQUxBWUFMQU0gQVUgTEVOR1RIIE1BUks7TWM7MDtMOzs7OztOOzs7OzsKKzBENjA7TUFMQVlBTEFNIExFVFRFUiBWT0NBTElDIFJSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDYxO01BTEFZQUxBTSBMRVRURVIgVk9DQUxJQyBMTDtMbzswO0w7Ozs7O047Ozs7OworMEQ2NjtNQUxBWUFMQU0gRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMEQ2NztNQUxBWUFMQU0gRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CiswRDY4O01BTEFZQUxBTSBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzBENjk7TUFMQVlBTEFNIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswRDZBO01BTEFZQUxBTSBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CiswRDZCO01BTEFZQUxBTSBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CiswRDZDO01BTEFZQUxBTSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzBENkQ7TUFMQVlBTEFNIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CiswRDZFO01BTEFZQUxBTSBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMEQ2RjtNQUxBWUFMQU0gRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMEQ4MjtTSU5IQUxBIFNJR04gQU5VU1ZBUkFZQTtNYzswO0w7Ozs7O047Ozs7OworMEQ4MztTSU5IQUxBIFNJR04gVklTQVJHQVlBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswRDg1O1NJTkhBTEEgTEVUVEVSIEFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ4NjtTSU5IQUxBIExFVFRFUiBBQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDg3O1NJTkhBTEEgTEVUVEVSIEFFWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEODg7U0lOSEFMQSBMRVRURVIgQUVFWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEODk7U0lOSEFMQSBMRVRURVIgSVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDhBO1NJTkhBTEEgTEVUVEVSIElJWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOEI7U0lOSEFMQSBMRVRURVIgVVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDhDO1NJTkhBTEEgTEVUVEVSIFVVWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOEQ7U0lOSEFMQSBMRVRURVIgSVJVWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOEU7U0lOSEFMQSBMRVRURVIgSVJVVVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDhGO1NJTkhBTEEgTEVUVEVSIElMVVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDkwO1NJTkhBTEEgTEVUVEVSIElMVVVZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ5MTtTSU5IQUxBIExFVFRFUiBFWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOTI7U0lOSEFMQSBMRVRURVIgRUVZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ5MztTSU5IQUxBIExFVFRFUiBBSVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDk0O1NJTkhBTEEgTEVUVEVSIE9ZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ5NTtTSU5IQUxBIExFVFRFUiBPT1lBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDk2O1NJTkhBTEEgTEVUVEVSIEFVWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOUE7U0lOSEFMQSBMRVRURVIgQUxQQVBSQUFOQSBLQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDlCO1NJTkhBTEEgTEVUVEVSIE1BSEFBUFJBQU5BIEtBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOUM7U0lOSEFMQSBMRVRURVIgQUxQQVBSQUFOQSBHQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDlEO1NJTkhBTEEgTEVUVEVSIE1BSEFBUFJBQU5BIEdBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOUU7U0lOSEFMQSBMRVRURVIgS0FOVEFKQSBOQUFTSUtZQVlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDlGO1NJTkhBTEEgTEVUVEVSIFNBTllBS0EgR0FZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERBMDtTSU5IQUxBIExFVFRFUiBBTFBBUFJBQU5BIENBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQTE7U0lOSEFMQSBMRVRURVIgTUFIQUFQUkFBTkEgQ0FZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERBMjtTSU5IQUxBIExFVFRFUiBBTFBBUFJBQU5BIEpBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQTM7U0lOSEFMQSBMRVRURVIgTUFIQUFQUkFBTkEgSkFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERBNDtTSU5IQUxBIExFVFRFUiBUQUFMVUpBIE5BQVNJS1lBWUE7TG87MDtMOzs7OztOOzs7OzsKKzBEQTU7U0lOSEFMQSBMRVRURVIgVEFBTFVKQSBTQU5ZT09HQSBOQUFLU0lLWUFZQTtMbzswO0w7Ozs7O047Ozs7OworMERBNjtTSU5IQUxBIExFVFRFUiBTQU5ZQUtBIEpBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQTc7U0lOSEFMQSBMRVRURVIgQUxQQVBSQUFOQSBUVEFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERBODtTSU5IQUxBIExFVFRFUiBNQUhBQVBSQUFOQSBUVEFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERBOTtTSU5IQUxBIExFVFRFUiBBTFBBUFJBQU5BIEREQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREFBO1NJTkhBTEEgTEVUVEVSIE1BSEFBUFJBQU5BIEREQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREFCO1NJTkhBTEEgTEVUVEVSIE1VVVJESEFKQSBOQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREFDO1NJTkhBTEEgTEVUVEVSIFNBTllBS0EgRERBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQUQ7U0lOSEFMQSBMRVRURVIgQUxQQVBSQUFOQSBUQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREFFO1NJTkhBTEEgTEVUVEVSIE1BSEFBUFJBQU5BIFRBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQUY7U0lOSEFMQSBMRVRURVIgQUxQQVBSQUFOQSBEQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREIwO1NJTkhBTEEgTEVUVEVSIE1BSEFBUFJBQU5BIERBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQjE7U0lOSEFMQSBMRVRURVIgREFOVEFKQSBOQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREIzO1NJTkhBTEEgTEVUVEVSIFNBTllBS0EgREFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERCNDtTSU5IQUxBIExFVFRFUiBBTFBBUFJBQU5BIFBBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQjU7U0lOSEFMQSBMRVRURVIgTUFIQUFQUkFBTkEgUEFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERCNjtTSU5IQUxBIExFVFRFUiBBTFBBUFJBQU5BIEJBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQjc7U0lOSEFMQSBMRVRURVIgTUFIQUFQUkFBTkEgQkFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERCODtTSU5IQUxBIExFVFRFUiBNQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREI5O1NJTkhBTEEgTEVUVEVSIEFNQkEgQkFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERCQTtTSU5IQUxBIExFVFRFUiBZQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREJCO1NJTkhBTEEgTEVUVEVSIFJBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQkQ7U0lOSEFMQSBMRVRURVIgREFOVEFKQSBMQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREMwO1NJTkhBTEEgTEVUVEVSIFZBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQzE7U0lOSEFMQSBMRVRURVIgVEFBTFVKQSBTQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREMyO1NJTkhBTEEgTEVUVEVSIE1VVVJESEFKQSBTQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREMzO1NJTkhBTEEgTEVUVEVSIERBTlRBSkEgU0FZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERDNDtTSU5IQUxBIExFVFRFUiBIQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREM1O1NJTkhBTEEgTEVUVEVSIE1VVVJESEFKQSBMQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREM2O1NJTkhBTEEgTEVUVEVSIEZBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQ0E7U0lOSEFMQSBTSUdOIEFMLUxBS1VOQTtNbjs5O05TTTs7Ozs7Tjs7Ozs7CiswRENGO1NJTkhBTEEgVk9XRUwgU0lHTiBBRUxBLVBJTExBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswREQwO1NJTkhBTEEgVk9XRUwgU0lHTiBLRVRUSSBBRURBLVBJTExBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswREQxO1NJTkhBTEEgVk9XRUwgU0lHTiBESUdBIEFFREEtUElMTEE7TWM7MDtMOzs7OztOOzs7OzsKKzBERDI7U0lOSEFMQSBWT1dFTCBTSUdOIEtFVFRJIElTLVBJTExBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBERDM7U0lOSEFMQSBWT1dFTCBTSUdOIERJR0EgSVMtUElMTEE7TW47MDtOU007Ozs7O047Ozs7OworMERENDtTSU5IQUxBIFZPV0VMIFNJR04gS0VUVEkgUEFBLVBJTExBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBERDY7U0lOSEFMQSBWT1dFTCBTSUdOIERJR0EgUEFBLVBJTExBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBERDg7U0lOSEFMQSBWT1dFTCBTSUdOIEdBRVRUQS1QSUxMQTtNYzswO0w7Ozs7O047Ozs7OworMEREOTtTSU5IQUxBIFZPV0VMIFNJR04gS09NQlVWQTtNYzswO0w7Ozs7O047Ozs7OworMEREQTtTSU5IQUxBIFZPV0VMIFNJR04gRElHQSBLT01CVVZBO01jOzA7TDswREQ5IDBEQ0E7Ozs7Tjs7Ozs7CiswRERCO1NJTkhBTEEgVk9XRUwgU0lHTiBLT01CVSBERUtBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswRERDO1NJTkhBTEEgVk9XRUwgU0lHTiBLT01CVVZBIEhBQSBBRUxBLVBJTExBO01jOzA7TDswREQ5IDBEQ0Y7Ozs7Tjs7Ozs7CiswREREO1NJTkhBTEEgVk9XRUwgU0lHTiBLT01CVVZBIEhBQSBESUdBIEFFTEEtUElMTEE7TWM7MDtMOzBEREMgMERDQTs7OztOOzs7OzsKKzBEREU7U0lOSEFMQSBWT1dFTCBTSUdOIEtPTUJVVkEgSEFBIEdBWUFOVUtJVFRBO01jOzA7TDswREQ5IDBEREY7Ozs7Tjs7Ozs7CiswRERGO1NJTkhBTEEgVk9XRUwgU0lHTiBHQVlBTlVLSVRUQTtNYzswO0w7Ozs7O047Ozs7OworMERGMjtTSU5IQUxBIFZPV0VMIFNJR04gRElHQSBHQUVUVEEtUElMTEE7TWM7MDtMOzs7OztOOzs7OzsKKzBERjM7U0lOSEFMQSBWT1dFTCBTSUdOIERJR0EgR0FZQU5VS0lUVEE7TWM7MDtMOzs7OztOOzs7OzsKKzBERjQ7U0lOSEFMQSBQVU5DVFVBVElPTiBLVU5EREFMSVlBO1BvOzA7TDs7Ozs7Tjs7Ozs7CiswRTAxO1RIQUkgQ0hBUkFDVEVSIEtPIEtBSTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgS08gS0FJOzs7OworMEUwMjtUSEFJIENIQVJBQ1RFUiBLSE8gS0hBSTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgS0hPIEtIQUk7Ozs7CiswRTAzO1RIQUkgQ0hBUkFDVEVSIEtITyBLSFVBVDtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgS0hPIEtIVUFUOzs7OworMEUwNDtUSEFJIENIQVJBQ1RFUiBLSE8gS0hXQUk7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIEtITyBLSFdBSTs7OzsKKzBFMDU7VEhBSSBDSEFSQUNURVIgS0hPIEtIT047TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIEtITyBLSE9OOzs7OworMEUwNjtUSEFJIENIQVJBQ1RFUiBLSE8gUkFLSEFORztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgS0hPIFJBS0hBTkc7Ozs7CiswRTA3O1RIQUkgQ0hBUkFDVEVSIE5HTyBOR1U7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIE5HTyBOR1U7Ozs7CiswRTA4O1RIQUkgQ0hBUkFDVEVSIENITyBDSEFOO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBDSE8gQ0hBTjs7OzsKKzBFMDk7VEhBSSBDSEFSQUNURVIgQ0hPIENISU5HO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBDSE8gQ0hJTkc7Ozs7CiswRTBBO1RIQUkgQ0hBUkFDVEVSIENITyBDSEFORztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgQ0hPIENIQU5HOzs7OworMEUwQjtUSEFJIENIQVJBQ1RFUiBTTyBTTztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgU08gU087Ozs7CiswRTBDO1RIQUkgQ0hBUkFDVEVSIENITyBDSE9FO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBDSE8gQ0hPRTs7OzsKKzBFMEQ7VEhBSSBDSEFSQUNURVIgWU8gWUlORztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgWU8gWUlORzs7OzsKKzBFMEU7VEhBSSBDSEFSQUNURVIgRE8gQ0hBREE7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIERPIENIQURBOzs7OworMEUwRjtUSEFJIENIQVJBQ1RFUiBUTyBQQVRBSztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgVE8gUEFUQUs7Ozs7CiswRTEwO1RIQUkgQ0hBUkFDVEVSIFRITyBUSEFOO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBUSE8gVEhBTjs7OzsKKzBFMTE7VEhBSSBDSEFSQUNURVIgVEhPIE5BTkdNT05USE87TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFRITyBOQU5HTU9OVEhPOzs7OworMEUxMjtUSEFJIENIQVJBQ1RFUiBUSE8gUEhVVEhBTztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgVEhPIFBIVVRIQU87Ozs7CiswRTEzO1RIQUkgQ0hBUkFDVEVSIE5PIE5FTjtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgTk8gTkVOOzs7OworMEUxNDtUSEFJIENIQVJBQ1RFUiBETyBERUs7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIERPIERFSzs7OzsKKzBFMTU7VEhBSSBDSEFSQUNURVIgVE8gVEFPO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBUTyBUQU87Ozs7CiswRTE2O1RIQUkgQ0hBUkFDVEVSIFRITyBUSFVORztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgVEhPIFRIVU5HOzs7OworMEUxNztUSEFJIENIQVJBQ1RFUiBUSE8gVEhBSEFOO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBUSE8gVEhBSEFOOzs7OworMEUxODtUSEFJIENIQVJBQ1RFUiBUSE8gVEhPTkc7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFRITyBUSE9ORzs7OzsKKzBFMTk7VEhBSSBDSEFSQUNURVIgTk8gTlU7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIE5PIE5VOzs7OworMEUxQTtUSEFJIENIQVJBQ1RFUiBCTyBCQUlNQUk7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIEJPIEJBSU1BSTs7OzsKKzBFMUI7VEhBSSBDSEFSQUNURVIgUE8gUExBO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBQTyBQTEE7Ozs7CiswRTFDO1RIQUkgQ0hBUkFDVEVSIFBITyBQSFVORztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgUEhPIFBIVU5HOzs7OworMEUxRDtUSEFJIENIQVJBQ1RFUiBGTyBGQTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgRk8gRkE7Ozs7CiswRTFFO1RIQUkgQ0hBUkFDVEVSIFBITyBQSEFOO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBQSE8gUEhBTjs7OzsKKzBFMUY7VEhBSSBDSEFSQUNURVIgRk8gRkFOO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBGTyBGQU47Ozs7CiswRTIwO1RIQUkgQ0hBUkFDVEVSIFBITyBTQU1QSEFPO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBQSE8gU0FNUEhBTzs7OzsKKzBFMjE7VEhBSSBDSEFSQUNURVIgTU8gTUE7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIE1PIE1BOzs7OworMEUyMjtUSEFJIENIQVJBQ1RFUiBZTyBZQUs7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFlPIFlBSzs7OzsKKzBFMjM7VEhBSSBDSEFSQUNURVIgUk8gUlVBO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBSTyBSVUE7Ozs7CiswRTI0O1RIQUkgQ0hBUkFDVEVSIFJVO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBSVTs7OzsKKzBFMjU7VEhBSSBDSEFSQUNURVIgTE8gTElORztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgTE8gTElORzs7OzsKKzBFMjY7VEhBSSBDSEFSQUNURVIgTFU7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIExVOzs7OworMEUyNztUSEFJIENIQVJBQ1RFUiBXTyBXQUVOO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBXTyBXQUVOOzs7OworMEUyODtUSEFJIENIQVJBQ1RFUiBTTyBTQUxBO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBTTyBTQUxBOzs7OworMEUyOTtUSEFJIENIQVJBQ1RFUiBTTyBSVVNJO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBTTyBSVVNJOzs7OworMEUyQTtUSEFJIENIQVJBQ1RFUiBTTyBTVUE7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFNPIFNVQTs7OzsKKzBFMkI7VEhBSSBDSEFSQUNURVIgSE8gSElQO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBITyBISVA7Ozs7CiswRTJDO1RIQUkgQ0hBUkFDVEVSIExPIENIVUxBO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBMTyBDSFVMQTs7OzsKKzBFMkQ7VEhBSSBDSEFSQUNURVIgTyBBTkc7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIE8gQU5HOzs7OworMEUyRTtUSEFJIENIQVJBQ1RFUiBITyBOT0tIVUs7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIEhPIE5PSyBIVUs7Ozs7CiswRTJGO1RIQUkgQ0hBUkFDVEVSIFBBSVlBTk5PSTtMbzswO0w7Ozs7O047VEhBSSBQQUkgWUFOIE5PSTtwYWl5YW4gbm9pOzs7CiswRTMwO1RIQUkgQ0hBUkFDVEVSIFNBUkEgQTtMbzswO0w7Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgQTs7OzsKKzBFMzE7VEhBSSBDSEFSQUNURVIgTUFJIEhBTi1BS0FUO01uOzA7TlNNOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBNQUkgSEFOLUFLQVQ7Ozs7CiswRTMyO1RIQUkgQ0hBUkFDVEVSIFNBUkEgQUE7TG87MDtMOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIEFBOzs7OworMEUzMztUSEFJIENIQVJBQ1RFUiBTQVJBIEFNO0xvOzA7TDs8Y29tcGF0PiAwRTREIDBFMzI7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBBTTs7OzsKKzBFMzQ7VEhBSSBDSEFSQUNURVIgU0FSQSBJO01uOzA7TlNNOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIEk7Ozs7CiswRTM1O1RIQUkgQ0hBUkFDVEVSIFNBUkEgSUk7TW47MDtOU007Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgSUk7Ozs7CiswRTM2O1RIQUkgQ0hBUkFDVEVSIFNBUkEgVUU7TW47MDtOU007Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgVUU7Ozs7CiswRTM3O1RIQUkgQ0hBUkFDVEVSIFNBUkEgVUVFO01uOzA7TlNNOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIFVFRTtzYXJhIHV1ZTs7OworMEUzODtUSEFJIENIQVJBQ1RFUiBTQVJBIFU7TW47MTAzO05TTTs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBVOzs7OworMEUzOTtUSEFJIENIQVJBQ1RFUiBTQVJBIFVVO01uOzEwMztOU007Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgVVU7Ozs7CiswRTNBO1RIQUkgQ0hBUkFDVEVSIFBISU5USFU7TW47OTtOU007Ozs7O047VEhBSSBWT1dFTCBTSUdOIFBISU5USFU7Ozs7CiswRTNGO1RIQUkgQ1VSUkVOQ1kgU1lNQk9MIEJBSFQ7U2M7MDtFVDs7Ozs7TjtUSEFJIEJBSFQgU0lHTjs7OzsKKzBFNDA7VEhBSSBDSEFSQUNURVIgU0FSQSBFO0xvOzA7TDs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBFOzs7OworMEU0MTtUSEFJIENIQVJBQ1RFUiBTQVJBIEFFO0xvOzA7TDs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBBRTs7OzsKKzBFNDI7VEhBSSBDSEFSQUNURVIgU0FSQSBPO0xvOzA7TDs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBPOzs7OworMEU0MztUSEFJIENIQVJBQ1RFUiBTQVJBIEFJIE1BSU1VQU47TG87MDtMOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIE1BSSBNVUFOO3NhcmEgYWkgbWFpIG11YW47OzsKKzBFNDQ7VEhBSSBDSEFSQUNURVIgU0FSQSBBSSBNQUlNQUxBSTtMbzswO0w7Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgTUFJIE1BTEFJO3NhcmEgYWkgbWFpIG1hbGFpOzs7CiswRTQ1O1RIQUkgQ0hBUkFDVEVSIExBS0tIQU5HWUFPO0xvOzA7TDs7Ozs7TjtUSEFJIExBSyBLSEFORyBZQU87bGFra2hhbmcgeWFvOzs7CiswRTQ2O1RIQUkgQ0hBUkFDVEVSIE1BSVlBTU9LO0xtOzA7TDs7Ozs7TjtUSEFJIE1BSSBZQU1PSzttYWkgeWFtb2s7OzsKKzBFNDc7VEhBSSBDSEFSQUNURVIgTUFJVEFJS0hVO01uOzA7TlNNOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBNQUkgVEFJIEtIVTttYWkgdGFpa2h1Ozs7CiswRTQ4O1RIQUkgQ0hBUkFDVEVSIE1BSSBFSztNbjsxMDc7TlNNOzs7OztOO1RIQUkgVE9ORSBNQUkgRUs7Ozs7CiswRTQ5O1RIQUkgQ0hBUkFDVEVSIE1BSSBUSE87TW47MTA3O05TTTs7Ozs7TjtUSEFJIFRPTkUgTUFJIFRITzs7OzsKKzBFNEE7VEhBSSBDSEFSQUNURVIgTUFJIFRSSTtNbjsxMDc7TlNNOzs7OztOO1RIQUkgVE9ORSBNQUkgVFJJOzs7OworMEU0QjtUSEFJIENIQVJBQ1RFUiBNQUkgQ0hBVFRBV0E7TW47MTA3O05TTTs7Ozs7TjtUSEFJIFRPTkUgTUFJIENIQVRUQVdBOzs7OworMEU0QztUSEFJIENIQVJBQ1RFUiBUSEFOVEhBS0hBVDtNbjswO05TTTs7Ozs7TjtUSEFJIFRIQU5USEFLSEFUOzs7OworMEU0RDtUSEFJIENIQVJBQ1RFUiBOSUtIQUhJVDtNbjswO05TTTs7Ozs7TjtUSEFJIE5JS0tIQUhJVDtuaWtraGFoaXQ7OzsKKzBFNEU7VEhBSSBDSEFSQUNURVIgWUFNQUtLQU47TW47MDtOU007Ozs7O047VEhBSSBZQU1BS0tBTjs7OzsKKzBFNEY7VEhBSSBDSEFSQUNURVIgRk9OR01BTjtQbzswO0w7Ozs7O047VEhBSSBGT05HTUFOOzs7OworMEU1MDtUSEFJIERJR0lUIFpFUk87TmQ7MDtMOzswOzA7MDtOOzs7OzsKKzBFNTE7VEhBSSBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzBFNTI7VEhBSSBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzBFNTM7VEhBSSBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMEU1NDtUSEFJIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzBFNTU7VEhBSSBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CiswRTU2O1RIQUkgRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CiswRTU3O1RIQUkgRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzBFNTg7VEhBSSBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMEU1OTtUSEFJIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzBFNUE7VEhBSSBDSEFSQUNURVIgQU5HS0hBTktIVTtQbzswO0w7Ozs7O047VEhBSSBBTkdLSEFOS0hVOzs7OworMEU1QjtUSEFJIENIQVJBQ1RFUiBLSE9NVVQ7UG87MDtMOzs7OztOO1RIQUkgS0hPTVVUOzs7OworMEU4MTtMQU8gTEVUVEVSIEtPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRTgyO0xBTyBMRVRURVIgS0hPIFNVTkc7TG87MDtMOzs7OztOOzs7OzsKKzBFODQ7TEFPIExFVFRFUiBLSE8gVEFNO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRTg3O0xBTyBMRVRURVIgTkdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRTg4O0xBTyBMRVRURVIgQ087TG87MDtMOzs7OztOOzs7OzsKKzBFOEE7TEFPIExFVFRFUiBTTyBUQU07TG87MDtMOzs7OztOOzs7OzsKKzBFOEQ7TEFPIExFVFRFUiBOWU87TG87MDtMOzs7OztOOzs7OzsKKzBFOTQ7TEFPIExFVFRFUiBETztMbzswO0w7Ozs7O047Ozs7OworMEU5NTtMQU8gTEVUVEVSIFRPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRTk2O0xBTyBMRVRURVIgVEhPIFNVTkc7TG87MDtMOzs7OztOOzs7OzsKKzBFOTc7TEFPIExFVFRFUiBUSE8gVEFNO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRTk5O0xBTyBMRVRURVIgTk87TG87MDtMOzs7OztOOzs7OzsKKzBFOUE7TEFPIExFVFRFUiBCTztMbzswO0w7Ozs7O047Ozs7OworMEU5QjtMQU8gTEVUVEVSIFBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRTlDO0xBTyBMRVRURVIgUEhPIFNVTkc7TG87MDtMOzs7OztOOzs7OzsKKzBFOUQ7TEFPIExFVFRFUiBGTyBUQU07TG87MDtMOzs7OztOOzs7OzsKKzBFOUU7TEFPIExFVFRFUiBQSE8gVEFNO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRTlGO0xBTyBMRVRURVIgRk8gU1VORztMbzswO0w7Ozs7O047Ozs7OworMEVBMTtMQU8gTEVUVEVSIE1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUEyO0xBTyBMRVRURVIgWU87TG87MDtMOzs7OztOOzs7OzsKKzBFQTM7TEFPIExFVFRFUiBMTyBMSU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUE1O0xBTyBMRVRURVIgTE8gTE9PVDtMbzswO0w7Ozs7O047Ozs7OworMEVBNztMQU8gTEVUVEVSIFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUFBO0xBTyBMRVRURVIgU08gU1VORztMbzswO0w7Ozs7O047Ozs7OworMEVBQjtMQU8gTEVUVEVSIEhPIFNVTkc7TG87MDtMOzs7OztOOzs7OzsKKzBFQUQ7TEFPIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUFFO0xBTyBMRVRURVIgSE8gVEFNO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUFGO0xBTyBFTExJUFNJUztMbzswO0w7Ozs7O047Ozs7OworMEVCMDtMQU8gVk9XRUwgU0lHTiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUIxO0xBTyBWT1dFTCBTSUdOIE1BSSBLQU47TW47MDtOU007Ozs7O047Ozs7OworMEVCMjtMQU8gVk9XRUwgU0lHTiBBQTtMbzswO0w7Ozs7O047Ozs7OworMEVCMztMQU8gVk9XRUwgU0lHTiBBTTtMbzswO0w7PGNvbXBhdD4gMEVDRCAwRUIyOzs7O047Ozs7OworMEVCNDtMQU8gVk9XRUwgU0lHTiBJO01uOzA7TlNNOzs7OztOOzs7OzsKKzBFQjU7TEFPIFZPV0VMIFNJR04gSUk7TW47MDtOU007Ozs7O047Ozs7OworMEVCNjtMQU8gVk9XRUwgU0lHTiBZO01uOzA7TlNNOzs7OztOOzs7OzsKKzBFQjc7TEFPIFZPV0VMIFNJR04gWVk7TW47MDtOU007Ozs7O047Ozs7OworMEVCODtMQU8gVk9XRUwgU0lHTiBVO01uOzExODtOU007Ozs7O047Ozs7OworMEVCOTtMQU8gVk9XRUwgU0lHTiBVVTtNbjsxMTg7TlNNOzs7OztOOzs7OzsKKzBFQkI7TEFPIFZPV0VMIFNJR04gTUFJIEtPTjtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRUJDO0xBTyBTRU1JVk9XRUwgU0lHTiBMTztNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRUJEO0xBTyBTRU1JVk9XRUwgU0lHTiBOWU87TG87MDtMOzs7OztOOzs7OzsKKzBFQzA7TEFPIFZPV0VMIFNJR04gRTtMbzswO0w7Ozs7O047Ozs7OworMEVDMTtMQU8gVk9XRUwgU0lHTiBFSTtMbzswO0w7Ozs7O047Ozs7OworMEVDMjtMQU8gVk9XRUwgU0lHTiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUMzO0xBTyBWT1dFTCBTSUdOIEFZO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUM0O0xBTyBWT1dFTCBTSUdOIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUM2O0xBTyBLTyBMQTtMbTswO0w7Ozs7O047Ozs7OworMEVDODtMQU8gVE9ORSBNQUkgRUs7TW47MTIyO05TTTs7Ozs7Tjs7Ozs7CiswRUM5O0xBTyBUT05FIE1BSSBUSE87TW47MTIyO05TTTs7Ozs7Tjs7Ozs7CiswRUNBO0xBTyBUT05FIE1BSSBUSTtNbjsxMjI7TlNNOzs7OztOOzs7OzsKKzBFQ0I7TEFPIFRPTkUgTUFJIENBVEFXQTtNbjsxMjI7TlNNOzs7OztOOzs7OzsKKzBFQ0M7TEFPIENBTkNFTExBVElPTiBNQVJLO01uOzA7TlNNOzs7OztOOzs7OzsKKzBFQ0Q7TEFPIE5JR0dBSElUQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRUQwO0xBTyBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CiswRUQxO0xBTyBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzBFRDI7TEFPIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMEVEMztMQU8gRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzBFRDQ7TEFPIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzBFRDU7TEFPIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzBFRDY7TEFPIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMEVENztMQU8gRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzBFRDg7TEFPIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswRUQ5O0xBTyBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CiswRURDO0xBTyBITyBOTztMbzswO0w7PGNvbXBhdD4gMEVBQiAwRTk5Ozs7O047Ozs7OworMEVERDtMQU8gSE8gTU87TG87MDtMOzxjb21wYXQ+IDBFQUIgMEVBMTs7OztOOzs7OzsKKzBGMDA7VElCRVRBTiBTWUxMQUJMRSBPTTtMbzswO0w7Ozs7O047Ozs7OworMEYwMTtUSUJFVEFOIE1BUksgR1RFUiBZSUcgTUdPIFRSVU5DQVRFRCBBO1NvOzA7TDs7Ozs7Tjs7dGVyIHlpayBnbyBhIHRodW5nOzs7CiswRjAyO1RJQkVUQU4gTUFSSyBHVEVSIFlJRyBNR08gLVVNIFJOQU0gQkNBRCBNQTtTbzswO0w7Ozs7O047O3RlciB5aWsgZ28gd3VtIG5hbSBjaGV5IG1hOzs7CiswRjAzO1RJQkVUQU4gTUFSSyBHVEVSIFlJRyBNR08gLVVNIEdURVIgVFNIRUcgTUE7U287MDtMOzs7OztOOzt0ZXIgeWlrIGdvIHd1bSB0ZXIgdHNlayBtYTs7OworMEYwNDtUSUJFVEFOIE1BUksgSU5JVElBTCBZSUcgTUdPIE1EVU4gTUE7UG87MDtMOzs7OztOO1RJQkVUQU4gU0lOR0xFIE9STkFNRU5UO3lpayBnbyBkdW4gbWE7OzsKKzBGMDU7VElCRVRBTiBNQVJLIENMT1NJTkcgWUlHIE1HTyBTR0FCIE1BO1BvOzA7TDs7Ozs7Tjs7eWlrIGdvIGthYiBtYTs7OworMEYwNjtUSUJFVEFOIE1BUksgQ0FSRVQgWUlHIE1HTyBQSFVSIFNIQUQgTUE7UG87MDtMOzs7OztOOzt5aWsgZ28gcHVyIHNoZXkgbWE7OzsKKzBGMDc7VElCRVRBTiBNQVJLIFlJRyBNR08gVFNIRUcgU0hBRCBNQTtQbzswO0w7Ozs7O047O3lpayBnbyB0c2VrIHNoZXkgbWE7OzsKKzBGMDg7VElCRVRBTiBNQVJLIFNCUlVMIFNIQUQ7UG87MDtMOzs7OztOO1RJQkVUQU4gUkdZQU5TSEFEO2RydWwgc2hleTs7OworMEYwOTtUSUJFVEFOIE1BUksgQlNLVVIgWUlHIE1HTztQbzswO0w7Ozs7O047O2t1ciB5aWsgZ287OzsKKzBGMEE7VElCRVRBTiBNQVJLIEJLQS0gU0hPRyBZSUcgTUdPO1BvOzA7TDs7Ozs7Tjs7a2Egc2hvIHlpayBnbzs7OworMEYwQjtUSUJFVEFOIE1BUksgSU5URVJTWUxMQUJJQyBUU0hFRztQbzswO0w7Ozs7O047VElCRVRBTiBUU0VHO3RzZWs7OzsKKzBGMEM7VElCRVRBTiBNQVJLIERFTElNSVRFUiBUU0hFRyBCU1RBUjtQbzswO0w7PG5vQnJlYWs+IDBGMEI7Ozs7Tjs7dHNlayB0YXI7OzsKKzBGMEQ7VElCRVRBTiBNQVJLIFNIQUQ7UG87MDtMOzs7OztOO1RJQkVUQU4gU0hBRDtzaGV5Ozs7CiswRjBFO1RJQkVUQU4gTUFSSyBOWUlTIFNIQUQ7UG87MDtMOzs7OztOO1RJQkVUQU4gRE9VQkxFIFNIQUQ7bnlpIHNoZXk7OzsKKzBGMEY7VElCRVRBTiBNQVJLIFRTSEVHIFNIQUQ7UG87MDtMOzs7OztOOzt0c2VrIHNoZXk7OzsKKzBGMTA7VElCRVRBTiBNQVJLIE5ZSVMgVFNIRUcgU0hBRDtQbzswO0w7Ozs7O047O255aSB0c2VrIHNoZXk7OzsKKzBGMTE7VElCRVRBTiBNQVJLIFJJTiBDSEVOIFNQVU5HUyBTSEFEO1BvOzA7TDs7Ozs7TjtUSUJFVEFOIFJJTkNIQU5QSFVOR1NIQUQ7cmluY2hlbiBwdW5nIHNoZXk7OzsKKzBGMTI7VElCRVRBTiBNQVJLIFJHWUEgR1JBTSBTSEFEO1BvOzA7TDs7Ozs7Tjs7Z3lhIHRyYW0gc2hleTs7OworMEYxMztUSUJFVEFOIE1BUksgQ0FSRVQgLURaVUQgUlRBR1MgTUUgTE9ORyBDQU47U287MDtMOzs7OztOOztkenUgdGEgbWUgbG9uZyBjaGVuOzs7CiswRjE0O1RJQkVUQU4gTUFSSyBHVEVSIFRTSEVHO1NvOzA7TDs7Ozs7TjtUSUJFVEFOIENPTU1BO3RlciB0c2VrOzs7CiswRjE1O1RJQkVUQU4gTE9HT1RZUEUgU0lHTiBDSEFEIFJUQUdTO1NvOzA7TDs7Ozs7Tjs7Y2hlIHRhOzs7CiswRjE2O1RJQkVUQU4gTE9HT1RZUEUgU0lHTiBMSEFHIFJUQUdTO1NvOzA7TDs7Ozs7Tjs7aGxhayB0YTs7OworMEYxNztUSUJFVEFOIEFTVFJPTE9HSUNBTCBTSUdOIFNHUkEgR0NBTiAtQ0hBUiBSVEFHUztTbzswO0w7Ozs7O047O3RyYWNoZW4gY2hhciB0YTs7OworMEYxODtUSUJFVEFOIEFTVFJPTE9HSUNBTCBTSUdOIC1LSFlVRCBQQTtNbjsyMjA7TlNNOzs7OztOOztreXUgcGE7OzsKKzBGMTk7VElCRVRBTiBBU1RST0xPR0lDQUwgU0lHTiBTRE9ORyBUU0hVR1M7TW47MjIwO05TTTs7Ozs7Tjs7ZG9uZyB0c3U7OzsKKzBGMUE7VElCRVRBTiBTSUdOIFJERUwgREtBUiBHQ0lHO1NvOzA7TDs7Ozs7Tjs7ZGVrYSBjaGlnOzs7CiswRjFCO1RJQkVUQU4gU0lHTiBSREVMIERLQVIgR05ZSVM7U287MDtMOzs7OztOOztkZWthIG55aTs7OworMEYxQztUSUJFVEFOIFNJR04gUkRFTCBES0FSIEdTVU07U287MDtMOzs7OztOOztkZWthIHN1bTs7OworMEYxRDtUSUJFVEFOIFNJR04gUkRFTCBOQUcgR0NJRztTbzswO0w7Ozs7O047O2RlbmEgY2hpZzs7OworMEYxRTtUSUJFVEFOIFNJR04gUkRFTCBOQUcgR05ZSVM7U287MDtMOzs7OztOOztkZW5hIG55aTs7OworMEYxRjtUSUJFVEFOIFNJR04gUkRFTCBES0FSIFJERUwgTkFHO1NvOzA7TDs7Ozs7Tjs7ZGVrYSBkZW5hOzs7CiswRjIwO1RJQkVUQU4gRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMEYyMTtUSUJFVEFOIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMEYyMjtUSUJFVEFOIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMEYyMztUSUJFVEFOIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswRjI0O1RJQkVUQU4gRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMEYyNTtUSUJFVEFOIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzBGMjY7VElCRVRBTiBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzBGMjc7VElCRVRBTiBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMEYyODtUSUJFVEFOIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswRjI5O1RJQkVUQU4gRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMEYyQTtUSUJFVEFOIERJR0lUIEhBTEYgT05FO05vOzA7TDs7Ozs7Tjs7Ozs7CiswRjJCO1RJQkVUQU4gRElHSVQgSEFMRiBUV087Tm87MDtMOzs7OztOOzs7OzsKKzBGMkM7VElCRVRBTiBESUdJVCBIQUxGIFRIUkVFO05vOzA7TDs7Ozs7Tjs7Ozs7CiswRjJEO1RJQkVUQU4gRElHSVQgSEFMRiBGT1VSO05vOzA7TDs7Ozs7Tjs7Ozs7CiswRjJFO1RJQkVUQU4gRElHSVQgSEFMRiBGSVZFO05vOzA7TDs7Ozs7Tjs7Ozs7CiswRjJGO1RJQkVUQU4gRElHSVQgSEFMRiBTSVg7Tm87MDtMOzs7OztOOzs7OzsKKzBGMzA7VElCRVRBTiBESUdJVCBIQUxGIFNFVkVOO05vOzA7TDs7Ozs7Tjs7Ozs7CiswRjMxO1RJQkVUQU4gRElHSVQgSEFMRiBFSUdIVDtObzswO0w7Ozs7O047Ozs7OworMEYzMjtUSUJFVEFOIERJR0lUIEhBTEYgTklORTtObzswO0w7Ozs7O047Ozs7OworMEYzMztUSUJFVEFOIERJR0lUIEhBTEYgWkVSTztObzswO0w7Ozs7O047Ozs7OworMEYzNDtUSUJFVEFOIE1BUksgQlNEVVMgUlRBR1M7U287MDtMOzs7OztOOztkdSB0YTs7OworMEYzNTtUSUJFVEFOIE1BUksgTkdBUyBCWlVORyBOWUkgWkxBO01uOzIyMDtOU007Ozs7O047VElCRVRBTiBIT05PUklGSUMgVU5ERVIgUklORztuZ2UgenVuZyBueWkgZGE7OzsKKzBGMzY7VElCRVRBTiBNQVJLIENBUkVUIC1EWlVEIFJUQUdTIEJaSEkgTUlHIENBTjtTbzswO0w7Ozs7O047O2R6dSB0YSBzaGkgbWlnIGNoZW47OzsKKzBGMzc7VElCRVRBTiBNQVJLIE5HQVMgQlpVTkcgU0dPUiBSVEFHUztNbjsyMjA7TlNNOzs7OztOO1RJQkVUQU4gVU5ERVIgUklORztuZ2UgenVuZyBnb3IgdGE7OzsKKzBGMzg7VElCRVRBTiBNQVJLIENIRSBNR087U287MDtMOzs7OztOOztjaGUgZ287OzsKKzBGMzk7VElCRVRBTiBNQVJLIFRTQSAtUEhSVTtNbjsyMTY7TlNNOzs7OztOO1RJQkVUQU4gTEVOSVRJT04gTUFSSzt0c2EgdHJ1Ozs7CiswRjNBO1RJQkVUQU4gTUFSSyBHVUcgUlRBR1MgR1lPTjtQczswO09OOzs7OztOOztndWcgdGEgeXVuOzs7CiswRjNCO1RJQkVUQU4gTUFSSyBHVUcgUlRBR1MgR1lBUztQZTswO09OOzs7OztOOztndWcgdGEgeWU7OzsKKzBGM0M7VElCRVRBTiBNQVJLIEFORyBLSEFORyBHWU9OO1BzOzA7T047Ozs7O047VElCRVRBTiBMRUZUIEJSQUNFO2FuZyBrYW5nIHl1bjs7OworMEYzRDtUSUJFVEFOIE1BUksgQU5HIEtIQU5HIEdZQVM7UGU7MDtPTjs7Ozs7TjtUSUJFVEFOIFJJR0hUIEJSQUNFO2FuZyBrYW5nIHllOzs7CiswRjNFO1RJQkVUQU4gU0lHTiBZQVIgVFNIRVM7TWM7MDtMOzs7OztOOzt5YXIgdHNlOzs7CiswRjNGO1RJQkVUQU4gU0lHTiBNQVIgVFNIRVM7TWM7MDtMOzs7OztOOzttYXIgdHNlOzs7CiswRjQwO1RJQkVUQU4gTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjQxO1RJQkVUQU4gTEVUVEVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMEY0MjtUSUJFVEFOIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMEY0MztUSUJFVEFOIExFVFRFUiBHSEE7TG87MDtMOzBGNDIgMEZCNzs7OztOOzs7OzsKKzBGNDQ7VElCRVRBTiBMRVRURVIgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjQ1O1RJQkVUQU4gTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjQ2O1RJQkVUQU4gTEVUVEVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMEY0NztUSUJFVEFOIExFVFRFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworMEY0OTtUSUJFVEFOIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzBGNEE7VElCRVRBTiBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7TjtUSUJFVEFOIExFVFRFUiBSRVZFUlNFRCBUQTs7OzsKKzBGNEI7VElCRVRBTiBMRVRURVIgVFRIQTtMbzswO0w7Ozs7O047VElCRVRBTiBMRVRURVIgUkVWRVJTRUQgVEhBOzs7OworMEY0QztUSUJFVEFOIExFVFRFUiBEREE7TG87MDtMOzs7OztOO1RJQkVUQU4gTEVUVEVSIFJFVkVSU0VEIERBOzs7OworMEY0RDtUSUJFVEFOIExFVFRFUiBEREhBO0xvOzA7TDswRjRDIDBGQjc7Ozs7Tjs7Ozs7CiswRjRFO1RJQkVUQU4gTEVUVEVSIE5OQTtMbzswO0w7Ozs7O047VElCRVRBTiBMRVRURVIgUkVWRVJTRUQgTkE7Ozs7CiswRjRGO1RJQkVUQU4gTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjUwO1RJQkVUQU4gTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEY1MTtUSUJFVEFOIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMEY1MjtUSUJFVEFOIExFVFRFUiBESEE7TG87MDtMOzBGNTEgMEZCNzs7OztOOzs7OzsKKzBGNTM7VElCRVRBTiBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzBGNTQ7VElCRVRBTiBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNTU7VElCRVRBTiBMRVRURVIgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjU2O1RJQkVUQU4gTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjU3O1RJQkVUQU4gTEVUVEVSIEJIQTtMbzswO0w7MEY1NiAwRkI3Ozs7O047Ozs7OworMEY1ODtUSUJFVEFOIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMEY1OTtUSUJFVEFOIExFVFRFUiBUU0E7TG87MDtMOzs7OztOOzs7OzsKKzBGNUE7VElCRVRBTiBMRVRURVIgVFNIQTtMbzswO0w7Ozs7O047Ozs7OworMEY1QjtUSUJFVEFOIExFVFRFUiBEWkE7TG87MDtMOzs7OztOOzs7OzsKKzBGNUM7VElCRVRBTiBMRVRURVIgRFpIQTtMbzswO0w7MEY1QiAwRkI3Ozs7O047Ozs7OworMEY1RDtUSUJFVEFOIExFVFRFUiBXQTtMbzswO0w7Ozs7O047Ozs7OworMEY1RTtUSUJFVEFOIExFVFRFUiBaSEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNUY7VElCRVRBTiBMRVRURVIgWkE7TG87MDtMOzs7OztOOzs7OzsKKzBGNjA7VElCRVRBTiBMRVRURVIgLUE7TG87MDtMOzs7OztOO1RJQkVUQU4gTEVUVEVSIEFBOzs7OworMEY2MTtUSUJFVEFOIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMEY2MjtUSUJFVEFOIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Oyo7OzsKKzBGNjM7VElCRVRBTiBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNjQ7VElCRVRBTiBMRVRURVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjY1O1RJQkVUQU4gTEVUVEVSIFNTQTtMbzswO0w7Ozs7O047VElCRVRBTiBMRVRURVIgUkVWRVJTRUQgU0hBOzs7OworMEY2NjtUSUJFVEFOIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMEY2NztUSUJFVEFOIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMEY2ODtUSUJFVEFOIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjY5O1RJQkVUQU4gTEVUVEVSIEtTU0E7TG87MDtMOzBGNDAgMEZCNTs7OztOOzs7OzsKKzBGNkE7VElCRVRBTiBMRVRURVIgRklYRUQtRk9STSBSQTtMbzswO0w7Ozs7O047Oyo7OzsKKzBGNzE7VElCRVRBTiBWT1dFTCBTSUdOIEFBO01uOzEyOTtOU007Ozs7O047Ozs7OworMEY3MjtUSUJFVEFOIFZPV0VMIFNJR04gSTtNbjsxMzA7TlNNOzs7OztOOzs7OzsKKzBGNzM7VElCRVRBTiBWT1dFTCBTSUdOIElJO01uOzA7TlNNOzBGNzEgMEY3Mjs7OztOOzs7OzsKKzBGNzQ7VElCRVRBTiBWT1dFTCBTSUdOIFU7TW47MTMyO05TTTs7Ozs7Tjs7Ozs7CiswRjc1O1RJQkVUQU4gVk9XRUwgU0lHTiBVVTtNbjswO05TTTswRjcxIDBGNzQ7Ozs7Tjs7Ozs7CiswRjc2O1RJQkVUQU4gVk9XRUwgU0lHTiBWT0NBTElDIFI7TW47MDtOU007MEZCMiAwRjgwOzs7O047Ozs7OworMEY3NztUSUJFVEFOIFZPV0VMIFNJR04gVk9DQUxJQyBSUjtNbjswO05TTTs8Y29tcGF0PiAwRkIyIDBGODE7Ozs7Tjs7Ozs7CiswRjc4O1RJQkVUQU4gVk9XRUwgU0lHTiBWT0NBTElDIEw7TW47MDtOU007MEZCMyAwRjgwOzs7O047Ozs7OworMEY3OTtUSUJFVEFOIFZPV0VMIFNJR04gVk9DQUxJQyBMTDtNbjswO05TTTs8Y29tcGF0PiAwRkIzIDBGODE7Ozs7Tjs7Ozs7CiswRjdBO1RJQkVUQU4gVk9XRUwgU0lHTiBFO01uOzEzMDtOU007Ozs7O047Ozs7OworMEY3QjtUSUJFVEFOIFZPV0VMIFNJR04gRUU7TW47MTMwO05TTTs7Ozs7TjtUSUJFVEFOIFZPV0VMIFNJR04gQUk7Ozs7CiswRjdDO1RJQkVUQU4gVk9XRUwgU0lHTiBPO01uOzEzMDtOU007Ozs7O047Ozs7OworMEY3RDtUSUJFVEFOIFZPV0VMIFNJR04gT087TW47MTMwO05TTTs7Ozs7TjtUSUJFVEFOIFZPV0VMIFNJR04gQVU7Ozs7CiswRjdFO1RJQkVUQU4gU0lHTiBSSkVTIFNVIE5HQSBSTztNbjswO05TTTs7Ozs7TjtUSUJFVEFOIEFOVVNWQVJBO2plIHN1IG5nYSBybzs7OworMEY3RjtUSUJFVEFOIFNJR04gUk5BTSBCQ0FEO01jOzA7TDs7Ozs7TjtUSUJFVEFOIFZJU0FSR0E7bmFtIGNoZXk7OzsKKzBGODA7VElCRVRBTiBWT1dFTCBTSUdOIFJFVkVSU0VEIEk7TW47MTMwO05TTTs7Ozs7TjtUSUJFVEFOIFZPV0VMIFNJR04gU0hPUlQgSTs7OzsKKzBGODE7VElCRVRBTiBWT1dFTCBTSUdOIFJFVkVSU0VEIElJO01uOzA7TlNNOzBGNzEgMEY4MDs7OztOOzs7OzsKKzBGODI7VElCRVRBTiBTSUdOIE5ZSSBaTEEgTkFBIERBO01uOzIzMDtOU007Ozs7O047VElCRVRBTiBDQU5EUkFCSU5EVSBXSVRIIE9STkFNRU5UO255aSBkYSBuYSBkYTs7OworMEY4MztUSUJFVEFOIFNJR04gU05BIExEQU47TW47MjMwO05TTTs7Ozs7TjtUSUJFVEFOIENBTkRSQUJJTkRVO25hbiBkZTs7OworMEY4NDtUSUJFVEFOIE1BUksgSEFMQU5UQTtNbjs5O05TTTs7Ozs7TjtUSUJFVEFOIFZJUkFNQTs7OzsKKzBGODU7VElCRVRBTiBNQVJLIFBBTFVUQTtQbzswO0w7Ozs7O047VElCRVRBTiBDSFVDSEVOWUlHRTs7OzsKKzBGODY7VElCRVRBTiBTSUdOIExDSSBSVEFHUztNbjsyMzA7TlNNOzs7OztOOztqaSB0YTs7OworMEY4NztUSUJFVEFOIFNJR04gWUFORyBSVEFHUztNbjsyMzA7TlNNOzs7OztOOzt5YW5nIHRhOzs7CiswRjg4O1RJQkVUQU4gU0lHTiBMQ0UgVFNBIENBTjtMbzswO0w7Ozs7O047O2NoZSB0c2EgY2hlbjs7OworMEY4OTtUSUJFVEFOIFNJR04gTUNIVSBDQU47TG87MDtMOzs7OztOOztjaHUgY2hlbjs7OworMEY4QTtUSUJFVEFOIFNJR04gR1JVIENBTiBSR1lJTkdTO0xvOzA7TDs7Ozs7Tjs7dHJ1IGNoZW4gZ2luZzs7OworMEY4QjtUSUJFVEFOIFNJR04gR1JVIE1FRCBSR1lJTkdTO0xvOzA7TDs7Ozs7Tjs7dHJ1IG1lIGdpbmc7OzsKKzBGOTA7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEtBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGOTE7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEtIQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRjkyO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBHQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRjkzO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBHSEE7TW47MDtOU007MEY5MiAwRkI3Ozs7O047Ozs7OworMEY5NDtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgTkdBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGOTU7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIENBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGOTY7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIENIQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRjk3O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBKQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRjk5O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBOWUE7TW47MDtOU007Ozs7O047Ozs7OworMEY5QTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgVFRBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGOUI7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFRUSEE7TW47MDtOU007Ozs7O047Ozs7OworMEY5QztUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgRERBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGOUQ7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIERESEE7TW47MDtOU007MEY5QyAwRkI3Ozs7O047Ozs7OworMEY5RTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgTk5BO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGOUY7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFRBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQTA7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFRIQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkExO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBEQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkEyO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBESEE7TW47MDtOU007MEZBMSAwRkI3Ozs7O047Ozs7OworMEZBMztUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgTkE7TW47MDtOU007Ozs7O047Ozs7OworMEZBNDtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgUEE7TW47MDtOU007Ozs7O047Ozs7OworMEZBNTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgUEhBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQTY7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEJBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQTc7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEJIQTtNbjswO05TTTswRkE2IDBGQjc7Ozs7Tjs7Ozs7CiswRkE4O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBNQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkE5O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBUU0E7TW47MDtOU007Ozs7O047Ozs7OworMEZBQTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgVFNIQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkFCO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBEWkE7TW47MDtOU007Ozs7O047Ozs7OworMEZBQztUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgRFpIQTtNbjswO05TTTswRkFCIDBGQjc7Ozs7Tjs7Ozs7CiswRkFEO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBXQTtNbjswO05TTTs7Ozs7Tjs7Kjs7OworMEZBRTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgWkhBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQUY7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFpBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQjA7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIC1BO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQjE7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFlBO01uOzA7TlNNOzs7OztOOzsqOzs7CiswRkIyO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBSQTtNbjswO05TTTs7Ozs7Tjs7Kjs7OworMEZCMztUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgTEE7TW47MDtOU007Ozs7O047Ozs7OworMEZCNDtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgU0hBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQjU7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFNTQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkI2O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBTQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkI3O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBIQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkI4O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQjk7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEtTU0E7TW47MDtOU007MEY5MCAwRkI1Ozs7O047Ozs7OworMEZCQTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgRklYRUQtRk9STSBXQTtNbjswO05TTTs7Ozs7Tjs7Kjs7OworMEZCQjtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgRklYRUQtRk9STSBZQTtNbjswO05TTTs7Ozs7Tjs7Kjs7OworMEZCQztUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgRklYRUQtRk9STSBSQTtNbjswO05TTTs7Ozs7Tjs7Kjs7OworMEZCRTtUSUJFVEFOIEtVIFJVIEtIQTtTbzswO0w7Ozs7O047O2t1cnVrYTs7OworMEZCRjtUSUJFVEFOIEtVIFJVIEtIQSBCWkhJIE1JRyBDQU47U287MDtMOzs7OztOOztrdXJ1a2Egc2hpIG1payBjaGVuOzs7CiswRkMwO1RJQkVUQU4gQ0FOVElMTEFUSU9OIFNJR04gSEVBVlkgQkVBVDtTbzswO0w7Ozs7O047Ozs7OworMEZDMTtUSUJFVEFOIENBTlRJTExBVElPTiBTSUdOIExJR0hUIEJFQVQ7U287MDtMOzs7OztOOzs7OzsKKzBGQzI7VElCRVRBTiBDQU5USUxMQVRJT04gU0lHTiBDQU5HIFRFLVU7U287MDtMOzs7OztOOztjaGFuZyB0eXU7OzsKKzBGQzM7VElCRVRBTiBDQU5USUxMQVRJT04gU0lHTiBTQlVCIC1DSEFMO1NvOzA7TDs7Ozs7Tjs7YnViIGNoZXk7OzsKKzBGQzQ7VElCRVRBTiBTWU1CT0wgRFJJTCBCVTtTbzswO0w7Ozs7O047O2RyaWxidTs7OworMEZDNTtUSUJFVEFOIFNZTUJPTCBSRE8gUkpFO1NvOzA7TDs7Ozs7Tjs7ZG9yamU7OzsKKzBGQzY7VElCRVRBTiBTWU1CT0wgUEFETUEgR0RBTjtNbjsyMjA7TlNNOzs7OztOOztwZW1hIGRlbjs7OworMEZDNztUSUJFVEFOIFNZTUJPTCBSRE8gUkpFIFJHWUEgR1JBTTtTbzswO0w7Ozs7O047O2RvcmplIGd5YSBkcmFtOzs7CiswRkM4O1RJQkVUQU4gU1lNQk9MIFBIVVIgUEE7U287MDtMOzs7OztOOztwaHVyYmE7OzsKKzBGQzk7VElCRVRBTiBTWU1CT0wgTk9SIEJVO1NvOzA7TDs7Ozs7Tjs7bm9yYnU7OzsKKzBGQ0E7VElCRVRBTiBTWU1CT0wgTk9SIEJVIE5ZSVMgLUtIWUlMO1NvOzA7TDs7Ozs7Tjs7bm9yYnUgbnlpIGtoeWk7OzsKKzBGQ0I7VElCRVRBTiBTWU1CT0wgTk9SIEJVIEdTVU0gLUtIWUlMO1NvOzA7TDs7Ozs7Tjs7bm9yYnUgc3VtIGtoeWk7OzsKKzBGQ0M7VElCRVRBTiBTWU1CT0wgTk9SIEJVIEJaSEkgLUtIWUlMO1NvOzA7TDs7Ozs7Tjs7bm9yYnUgc2hpIGtoeWk7OzsKKzBGQ0Y7VElCRVRBTiBTSUdOIFJERUwgTkFHIEdTVU07U287MDtMOzs7OztOOzs7OzsKKzEwMDA7TVlBTk1BUiBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzEwMDE7TVlBTk1BUiBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAyO01ZQU5NQVIgTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAzO01ZQU5NQVIgTEVUVEVSIEdIQTtMbzswO0w7Ozs7O047Ozs7OworMTAwNDtNWUFOTUFSIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzEwMDU7TVlBTk1BUiBMRVRURVIgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzEwMDY7TVlBTk1BUiBMRVRURVIgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA3O01ZQU5NQVIgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA4O01ZQU5NQVIgTEVUVEVSIEpIQTtMbzswO0w7Ozs7O047Ozs7OworMTAwOTtNWUFOTUFSIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzEwMEE7TVlBTk1BUiBMRVRURVIgTk5ZQTtMbzswO0w7Ozs7O047Ozs7OworMTAwQjtNWUFOTUFSIExFVFRFUiBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMEM7TVlBTk1BUiBMRVRURVIgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMTAwRDtNWUFOTUFSIExFVFRFUiBEREE7TG87MDtMOzs7OztOOzs7OzsKKzEwMEU7TVlBTk1BUiBMRVRURVIgRERIQTtMbzswO0w7Ozs7O047Ozs7OworMTAwRjtNWUFOTUFSIExFVFRFUiBOTkE7TG87MDtMOzs7OztOOzs7OzsKKzEwMTA7TVlBTk1BUiBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMTE7TVlBTk1BUiBMRVRURVIgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDEyO01ZQU5NQVIgTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDEzO01ZQU5NQVIgTEVUVEVSIERIQTtMbzswO0w7Ozs7O047Ozs7OworMTAxNDtNWUFOTUFSIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMTAxNTtNWUFOTUFSIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMTAxNjtNWUFOTUFSIExFVFRFUiBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMTc7TVlBTk1BUiBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzEwMTg7TVlBTk1BUiBMRVRURVIgQkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDE5O01ZQU5NQVIgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDFBO01ZQU5NQVIgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDFCO01ZQU5NQVIgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDFDO01ZQU5NQVIgTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDFEO01ZQU5NQVIgTEVUVEVSIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDFFO01ZQU5NQVIgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDFGO01ZQU5NQVIgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDIwO01ZQU5NQVIgTEVUVEVSIExMQTtMbzswO0w7Ozs7O047Ozs7OworMTAyMTtNWUFOTUFSIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDIzO01ZQU5NQVIgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzEwMjQ7TVlBTk1BUiBMRVRURVIgSUk7TG87MDtMOzs7OztOOzs7OzsKKzEwMjU7TVlBTk1BUiBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMTAyNjtNWUFOTUFSIExFVFRFUiBVVTtMbzswO0w7MTAyNSAxMDJFOzs7O047Ozs7OworMTAyNztNWUFOTUFSIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDI5O01ZQU5NQVIgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzEwMkE7TVlBTk1BUiBMRVRURVIgQVU7TG87MDtMOzs7OztOOzs7OzsKKzEwMkM7TVlBTk1BUiBWT1dFTCBTSUdOIEFBO01jOzA7TDs7Ozs7Tjs7Ozs7CisxMDJEO01ZQU5NQVIgVk9XRUwgU0lHTiBJO01uOzA7TlNNOzs7OztOOzs7OzsKKzEwMkU7TVlBTk1BUiBWT1dFTCBTSUdOIElJO01uOzA7TlNNOzs7OztOOzs7OzsKKzEwMkY7TVlBTk1BUiBWT1dFTCBTSUdOIFU7TW47MDtOU007Ozs7O047Ozs7OworMTAzMDtNWUFOTUFSIFZPV0VMIFNJR04gVVU7TW47MDtOU007Ozs7O047Ozs7OworMTAzMTtNWUFOTUFSIFZPV0VMIFNJR04gRTtNYzswO0w7Ozs7O047Ozs7OworMTAzMjtNWUFOTUFSIFZPV0VMIFNJR04gQUk7TW47MDtOU007Ozs7O047Ozs7OworMTAzNjtNWUFOTUFSIFNJR04gQU5VU1ZBUkE7TW47MDtOU007Ozs7O047Ozs7OworMTAzNztNWUFOTUFSIFNJR04gRE9UIEJFTE9XO01uOzc7TlNNOzs7OztOOzs7OzsKKzEwMzg7TVlBTk1BUiBTSUdOIFZJU0FSR0E7TWM7MDtMOzs7OztOOzs7OzsKKzEwMzk7TVlBTk1BUiBTSUdOIFZJUkFNQTtNbjs5O05TTTs7Ozs7Tjs7Ozs7CisxMDQwO01ZQU5NQVIgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMTA0MTtNWUFOTUFSIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMTA0MjtNWUFOTUFSIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMTA0MztNWUFOTUFSIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CisxMDQ0O01ZQU5NQVIgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMTA0NTtNWUFOTUFSIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzEwNDY7TVlBTk1BUiBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzEwNDc7TVlBTk1BUiBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMTA0ODtNWUFOTUFSIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CisxMDQ5O01ZQU5NQVIgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMTA0QTtNWUFOTUFSIFNJR04gTElUVExFIFNFQ1RJT047UG87MDtMOzs7OztOOzs7OzsKKzEwNEI7TVlBTk1BUiBTSUdOIFNFQ1RJT047UG87MDtMOzs7OztOOzs7OzsKKzEwNEM7TVlBTk1BUiBTWU1CT0wgTE9DQVRJVkU7UG87MDtMOzs7OztOOzs7OzsKKzEwNEQ7TVlBTk1BUiBTWU1CT0wgQ09NUExFVEVEO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxMDRFO01ZQU5NQVIgU1lNQk9MIEFGT1JFTUVOVElPTkVEO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxMDRGO01ZQU5NQVIgU1lNQk9MIEdFTklUSVZFO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxMDUwO01ZQU5NQVIgTEVUVEVSIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMTA1MTtNWUFOTUFSIExFVFRFUiBTU0E7TG87MDtMOzs7OztOOzs7OzsKKzEwNTI7TVlBTk1BUiBMRVRURVIgVk9DQUxJQyBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDUzO01ZQU5NQVIgTEVUVEVSIFZPQ0FMSUMgUlI7TG87MDtMOzs7OztOOzs7OzsKKzEwNTQ7TVlBTk1BUiBMRVRURVIgVk9DQUxJQyBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDU1O01ZQU5NQVIgTEVUVEVSIFZPQ0FMSUMgTEw7TG87MDtMOzs7OztOOzs7OzsKKzEwNTY7TVlBTk1BUiBWT1dFTCBTSUdOIFZPQ0FMSUMgUjtNYzswO0w7Ozs7O047Ozs7OworMTA1NztNWUFOTUFSIFZPV0VMIFNJR04gVk9DQUxJQyBSUjtNYzswO0w7Ozs7O047Ozs7OworMTA1ODtNWUFOTUFSIFZPV0VMIFNJR04gVk9DQUxJQyBMO01uOzA7TlNNOzs7OztOOzs7OzsKKzEwNTk7TVlBTk1BUiBWT1dFTCBTSUdOIFZPQ0FMSUMgTEw7TW47MDtOU007Ozs7O047Ozs7OworMTBBMDtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBBTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEExO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEJBTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEEyO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEdBTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEEzO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIERPTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEE0O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEVOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwQTU7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgVklOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwQTY7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgWkVOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwQTc7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgVEFOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwQTg7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgSU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBBOTtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBLQU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBBQTtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBMQVM7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBBQjtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBNQU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBBQztHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBOQVI7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBBRDtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBPTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEFFO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFBBUjtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEFGO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFpIQVI7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBCMDtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBSQUU7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBCMTtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBTQU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBCMjtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBUQVI7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBCMztHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBVTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEI0O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFBIQVI7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBCNTtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBLSEFSO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwQjY7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgR0hBTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEI3O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFFBUjtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEI4O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFNISU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBCOTtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBDSElOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwQkE7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgQ0FOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwQkI7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgSklMO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwQkM7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgQ0lMO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwQkQ7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgQ0hBUjtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEJFO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFhBTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEJGO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEpIQU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBDMDtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBIQUU7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBDMTtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBIRTtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEMyO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEhJRTtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEMzO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFdFO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwQzQ7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgSEFSO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwQzU7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgSE9FO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwRDA7R0VPUkdJQU4gTEVUVEVSIEFOO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgQU47Ozs7CisxMEQxO0dFT1JHSUFOIExFVFRFUiBCQU47TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBCQU47Ozs7CisxMEQyO0dFT1JHSUFOIExFVFRFUiBHQU47TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBHQU47Ozs7CisxMEQzO0dFT1JHSUFOIExFVFRFUiBET047TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBET047Ozs7CisxMEQ0O0dFT1JHSUFOIExFVFRFUiBFTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEVOOzs7OworMTBENTtHRU9SR0lBTiBMRVRURVIgVklOO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgVklOOzs7OworMTBENjtHRU9SR0lBTiBMRVRURVIgWkVOO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgWkVOOzs7OworMTBENztHRU9SR0lBTiBMRVRURVIgVEFOO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgVEFOOzs7OworMTBEODtHRU9SR0lBTiBMRVRURVIgSU47TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBJTjs7OzsKKzEwRDk7R0VPUkdJQU4gTEVUVEVSIEtBTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEtBTjs7OzsKKzEwREE7R0VPUkdJQU4gTEVUVEVSIExBUztMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIExBUzs7OzsKKzEwREI7R0VPUkdJQU4gTEVUVEVSIE1BTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIE1BTjs7OzsKKzEwREM7R0VPUkdJQU4gTEVUVEVSIE5BUjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIE5BUjs7OzsKKzEwREQ7R0VPUkdJQU4gTEVUVEVSIE9OO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgT047Ozs7CisxMERFO0dFT1JHSUFOIExFVFRFUiBQQVI7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBQQVI7Ozs7CisxMERGO0dFT1JHSUFOIExFVFRFUiBaSEFSO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgWkhBUjs7OzsKKzEwRTA7R0VPUkdJQU4gTEVUVEVSIFJBRTtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFJBRTs7OzsKKzEwRTE7R0VPUkdJQU4gTEVUVEVSIFNBTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFNBTjs7OzsKKzEwRTI7R0VPUkdJQU4gTEVUVEVSIFRBUjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFRBUjs7OzsKKzEwRTM7R0VPUkdJQU4gTEVUVEVSIFVOO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgVU47Ozs7CisxMEU0O0dFT1JHSUFOIExFVFRFUiBQSEFSO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgUEhBUjs7OzsKKzEwRTU7R0VPUkdJQU4gTEVUVEVSIEtIQVI7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBLSEFSOzs7OworMTBFNjtHRU9SR0lBTiBMRVRURVIgR0hBTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEdIQU47Ozs7CisxMEU3O0dFT1JHSUFOIExFVFRFUiBRQVI7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBRQVI7Ozs7CisxMEU4O0dFT1JHSUFOIExFVFRFUiBTSElOO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgU0hJTjs7OzsKKzEwRTk7R0VPUkdJQU4gTEVUVEVSIENISU47TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBDSElOOzs7OworMTBFQTtHRU9SR0lBTiBMRVRURVIgQ0FOO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgQ0FOOzs7OworMTBFQjtHRU9SR0lBTiBMRVRURVIgSklMO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgSklMOzs7OworMTBFQztHRU9SR0lBTiBMRVRURVIgQ0lMO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgQ0lMOzs7OworMTBFRDtHRU9SR0lBTiBMRVRURVIgQ0hBUjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIENIQVI7Ozs7CisxMEVFO0dFT1JHSUFOIExFVFRFUiBYQU47TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBYQU47Ozs7CisxMEVGO0dFT1JHSUFOIExFVFRFUiBKSEFOO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgSkhBTjs7OzsKKzEwRjA7R0VPUkdJQU4gTEVUVEVSIEhBRTtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEhBRTs7OzsKKzEwRjE7R0VPUkdJQU4gTEVUVEVSIEhFO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgSEU7Ozs7CisxMEYyO0dFT1JHSUFOIExFVFRFUiBISUU7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBISUU7Ozs7CisxMEYzO0dFT1JHSUFOIExFVFRFUiBXRTtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFdFOzs7OworMTBGNDtHRU9SR0lBTiBMRVRURVIgSEFSO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgSEFSOzs7OworMTBGNTtHRU9SR0lBTiBMRVRURVIgSE9FO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgSE9FOzs7OworMTBGNjtHRU9SR0lBTiBMRVRURVIgRkk7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBGSTs7OzsKKzEwRkI7R0VPUkdJQU4gUEFSQUdSQVBIIFNFUEFSQVRPUjtQbzswO0w7Ozs7O047Ozs7OworMTEwMDtIQU5HVUwgQ0hPU0VPTkcgS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7ZyAqOzs7CisxMTAxO0hBTkdVTCBDSE9TRU9ORyBTU0FOR0tJWUVPSztMbzswO0w7Ozs7O047O2dnICo7OzsKKzExMDI7SEFOR1VMIENIT1NFT05HIE5JRVVOO0xvOzA7TDs7Ozs7Tjs7biAqOzs7CisxMTAzO0hBTkdVTCBDSE9TRU9ORyBUSUtFVVQ7TG87MDtMOzs7OztOOztkICo7OzsKKzExMDQ7SEFOR1VMIENIT1NFT05HIFNTQU5HVElLRVVUO0xvOzA7TDs7Ozs7Tjs7ZGQgKjs7OworMTEwNTtIQU5HVUwgQ0hPU0VPTkcgUklFVUw7TG87MDtMOzs7OztOOztyICo7OzsKKzExMDY7SEFOR1VMIENIT1NFT05HIE1JRVVNO0xvOzA7TDs7Ozs7Tjs7bSAqOzs7CisxMTA3O0hBTkdVTCBDSE9TRU9ORyBQSUVVUDtMbzswO0w7Ozs7O047O2IgKjs7OworMTEwODtIQU5HVUwgQ0hPU0VPTkcgU1NBTkdQSUVVUDtMbzswO0w7Ozs7O047O2JiICo7OzsKKzExMDk7SEFOR1VMIENIT1NFT05HIFNJT1M7TG87MDtMOzs7OztOOztzICo7OzsKKzExMEE7SEFOR1VMIENIT1NFT05HIFNTQU5HU0lPUztMbzswO0w7Ozs7O047O3NzICo7OzsKKzExMEI7SEFOR1VMIENIT1NFT05HIElFVU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTBDO0hBTkdVTCBDSE9TRU9ORyBDSUVVQztMbzswO0w7Ozs7O047O2ogKjs7OworMTEwRDtIQU5HVUwgQ0hPU0VPTkcgU1NBTkdDSUVVQztMbzswO0w7Ozs7O047O2pqICo7OzsKKzExMEU7SEFOR1VMIENIT1NFT05HIENISUVVQ0g7TG87MDtMOzs7OztOOztjICo7OzsKKzExMEY7SEFOR1VMIENIT1NFT05HIEtISUVVS0g7TG87MDtMOzs7OztOOztrICo7OzsKKzExMTA7SEFOR1VMIENIT1NFT05HIFRISUVVVEg7TG87MDtMOzs7OztOOzt0ICo7OzsKKzExMTE7SEFOR1VMIENIT1NFT05HIFBISUVVUEg7TG87MDtMOzs7OztOOztwICo7OzsKKzExMTI7SEFOR1VMIENIT1NFT05HIEhJRVVIO0xvOzA7TDs7Ozs7Tjs7aCAqOzs7CisxMTEzO0hBTkdVTCBDSE9TRU9ORyBOSUVVTi1LSVlFT0s7TG87MDtMOzs7OztOOzs7OzsKKzExMTQ7SEFOR1VMIENIT1NFT05HIFNTQU5HTklFVU47TG87MDtMOzs7OztOOzs7OzsKKzExMTU7SEFOR1VMIENIT1NFT05HIE5JRVVOLVRJS0VVVDtMbzswO0w7Ozs7O047Ozs7OworMTExNjtIQU5HVUwgQ0hPU0VPTkcgTklFVU4tUElFVVA7TG87MDtMOzs7OztOOzs7OzsKKzExMTc7SEFOR1VMIENIT1NFT05HIFRJS0VVVC1LSVlFT0s7TG87MDtMOzs7OztOOzs7OzsKKzExMTg7SEFOR1VMIENIT1NFT05HIFJJRVVMLU5JRVVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTE5O0hBTkdVTCBDSE9TRU9ORyBTU0FOR1JJRVVMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTFBO0hBTkdVTCBDSE9TRU9ORyBSSUVVTC1ISUVVSDtMbzswO0w7Ozs7O047Ozs7OworMTExQjtIQU5HVUwgQ0hPU0VPTkcgS0FQWUVPVU5SSUVVTDtMbzswO0w7Ozs7O047Ozs7OworMTExQztIQU5HVUwgQ0hPU0VPTkcgTUlFVU0tUElFVVA7TG87MDtMOzs7OztOOzs7OzsKKzExMUQ7SEFOR1VMIENIT1NFT05HIEtBUFlFT1VOTUlFVU07TG87MDtMOzs7OztOOzs7OzsKKzExMUU7SEFOR1VMIENIT1NFT05HIFBJRVVQLUtJWUVPSztMbzswO0w7Ozs7O047Ozs7OworMTExRjtIQU5HVUwgQ0hPU0VPTkcgUElFVVAtTklFVU47TG87MDtMOzs7OztOOzs7OzsKKzExMjA7SEFOR1VMIENIT1NFT05HIFBJRVVQLVRJS0VVVDtMbzswO0w7Ozs7O047Ozs7OworMTEyMTtIQU5HVUwgQ0hPU0VPTkcgUElFVVAtU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTEyMjtIQU5HVUwgQ0hPU0VPTkcgUElFVVAtU0lPUy1LSVlFT0s7TG87MDtMOzs7OztOOzs7OzsKKzExMjM7SEFOR1VMIENIT1NFT05HIFBJRVVQLVNJT1MtVElLRVVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTI0O0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1TSU9TLVBJRVVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTI1O0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1TU0FOR1NJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExMjY7SEFOR1VMIENIT1NFT05HIFBJRVVQLVNJT1MtQ0lFVUM7TG87MDtMOzs7OztOOzs7OzsKKzExMjc7SEFOR1VMIENIT1NFT05HIFBJRVVQLUNJRVVDO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTI4O0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1DSElFVUNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTI5O0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1USElFVVRIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTJBO0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1QSElFVVBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTJCO0hBTkdVTCBDSE9TRU9ORyBLQVBZRU9VTlBJRVVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTJDO0hBTkdVTCBDSE9TRU9ORyBLQVBZRU9VTlNTQU5HUElFVVA7TG87MDtMOzs7OztOOzs7OzsKKzExMkQ7SEFOR1VMIENIT1NFT05HIFNJT1MtS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTJFO0hBTkdVTCBDSE9TRU9ORyBTSU9TLU5JRVVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTJGO0hBTkdVTCBDSE9TRU9ORyBTSU9TLVRJS0VVVDtMbzswO0w7Ozs7O047Ozs7OworMTEzMDtIQU5HVUwgQ0hPU0VPTkcgU0lPUy1SSUVVTDtMbzswO0w7Ozs7O047Ozs7OworMTEzMTtIQU5HVUwgQ0hPU0VPTkcgU0lPUy1NSUVVTTtMbzswO0w7Ozs7O047Ozs7OworMTEzMjtIQU5HVUwgQ0hPU0VPTkcgU0lPUy1QSUVVUDtMbzswO0w7Ozs7O047Ozs7OworMTEzMztIQU5HVUwgQ0hPU0VPTkcgU0lPUy1QSUVVUC1LSVlFT0s7TG87MDtMOzs7OztOOzs7OzsKKzExMzQ7SEFOR1VMIENIT1NFT05HIFNJT1MtU1NBTkdTSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTM1O0hBTkdVTCBDSE9TRU9ORyBTSU9TLUlFVU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTM2O0hBTkdVTCBDSE9TRU9ORyBTSU9TLUNJRVVDO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTM3O0hBTkdVTCBDSE9TRU9ORyBTSU9TLUNISUVVQ0g7TG87MDtMOzs7OztOOzs7OzsKKzExMzg7SEFOR1VMIENIT1NFT05HIFNJT1MtS0hJRVVLSDtMbzswO0w7Ozs7O047Ozs7OworMTEzOTtIQU5HVUwgQ0hPU0VPTkcgU0lPUy1USElFVVRIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTNBO0hBTkdVTCBDSE9TRU9ORyBTSU9TLVBISUVVUEg7TG87MDtMOzs7OztOOzs7OzsKKzExM0I7SEFOR1VMIENIT1NFT05HIFNJT1MtSElFVUg7TG87MDtMOzs7OztOOzs7OzsKKzExM0M7SEFOR1VMIENIT1NFT05HIENISVRVRVVNU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTEzRDtIQU5HVUwgQ0hPU0VPTkcgQ0hJVFVFVU1TU0FOR1NJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExM0U7SEFOR1VMIENIT1NFT05HIENFT05HQ0hJRVVNU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTEzRjtIQU5HVUwgQ0hPU0VPTkcgQ0VPTkdDSElFVU1TU0FOR1NJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExNDA7SEFOR1VMIENIT1NFT05HIFBBTlNJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExNDE7SEFOR1VMIENIT1NFT05HIElFVU5HLUtJWUVPSztMbzswO0w7Ozs7O047Ozs7OworMTE0MjtIQU5HVUwgQ0hPU0VPTkcgSUVVTkctVElLRVVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTQzO0hBTkdVTCBDSE9TRU9ORyBJRVVORy1NSUVVTTtMbzswO0w7Ozs7O047Ozs7OworMTE0NDtIQU5HVUwgQ0hPU0VPTkcgSUVVTkctUElFVVA7TG87MDtMOzs7OztOOzs7OzsKKzExNDU7SEFOR1VMIENIT1NFT05HIElFVU5HLVNJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExNDY7SEFOR1VMIENIT1NFT05HIElFVU5HLVBBTlNJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExNDc7SEFOR1VMIENIT1NFT05HIFNTQU5HSUVVTkc7TG87MDtMOzs7OztOOzs7OzsKKzExNDg7SEFOR1VMIENIT1NFT05HIElFVU5HLUNJRVVDO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTQ5O0hBTkdVTCBDSE9TRU9ORyBJRVVORy1DSElFVUNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTRBO0hBTkdVTCBDSE9TRU9ORyBJRVVORy1USElFVVRIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTRCO0hBTkdVTCBDSE9TRU9ORyBJRVVORy1QSElFVVBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTRDO0hBTkdVTCBDSE9TRU9ORyBZRVNJRVVORztMbzswO0w7Ozs7O047Ozs7OworMTE0RDtIQU5HVUwgQ0hPU0VPTkcgQ0lFVUMtSUVVTkc7TG87MDtMOzs7OztOOzs7OzsKKzExNEU7SEFOR1VMIENIT1NFT05HIENISVRVRVVNQ0lFVUM7TG87MDtMOzs7OztOOzs7OzsKKzExNEY7SEFOR1VMIENIT1NFT05HIENISVRVRVVNU1NBTkdDSUVVQztMbzswO0w7Ozs7O047Ozs7OworMTE1MDtIQU5HVUwgQ0hPU0VPTkcgQ0VPTkdDSElFVU1DSUVVQztMbzswO0w7Ozs7O047Ozs7OworMTE1MTtIQU5HVUwgQ0hPU0VPTkcgQ0VPTkdDSElFVU1TU0FOR0NJRVVDO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTUyO0hBTkdVTCBDSE9TRU9ORyBDSElFVUNILUtISUVVS0g7TG87MDtMOzs7OztOOzs7OzsKKzExNTM7SEFOR1VMIENIT1NFT05HIENISUVVQ0gtSElFVUg7TG87MDtMOzs7OztOOzs7OzsKKzExNTQ7SEFOR1VMIENIT1NFT05HIENISVRVRVVNQ0hJRVVDSDtMbzswO0w7Ozs7O047Ozs7OworMTE1NTtIQU5HVUwgQ0hPU0VPTkcgQ0VPTkdDSElFVU1DSElFVUNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTU2O0hBTkdVTCBDSE9TRU9ORyBQSElFVVBILVBJRVVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTU3O0hBTkdVTCBDSE9TRU9ORyBLQVBZRU9VTlBISUVVUEg7TG87MDtMOzs7OztOOzs7OzsKKzExNTg7SEFOR1VMIENIT1NFT05HIFNTQU5HSElFVUg7TG87MDtMOzs7OztOOzs7OzsKKzExNTk7SEFOR1VMIENIT1NFT05HIFlFT1JJTkhJRVVIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTVGO0hBTkdVTCBDSE9TRU9ORyBGSUxMRVI7TG87MDtMOzs7OztOOzs7OzsKKzExNjA7SEFOR1VMIEpVTkdTRU9ORyBGSUxMRVI7TG87MDtMOzs7OztOOzs7OzsKKzExNjE7SEFOR1VMIEpVTkdTRU9ORyBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTYyO0hBTkdVTCBKVU5HU0VPTkcgQUU7TG87MDtMOzs7OztOOzs7OzsKKzExNjM7SEFOR1VMIEpVTkdTRU9ORyBZQTtMbzswO0w7Ozs7O047Ozs7OworMTE2NDtIQU5HVUwgSlVOR1NFT05HIFlBRTtMbzswO0w7Ozs7O047Ozs7OworMTE2NTtIQU5HVUwgSlVOR1NFT05HIEVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTY2O0hBTkdVTCBKVU5HU0VPTkcgRTtMbzswO0w7Ozs7O047Ozs7OworMTE2NztIQU5HVUwgSlVOR1NFT05HIFlFTztMbzswO0w7Ozs7O047Ozs7OworMTE2ODtIQU5HVUwgSlVOR1NFT05HIFlFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTY5O0hBTkdVTCBKVU5HU0VPTkcgTztMbzswO0w7Ozs7O047Ozs7OworMTE2QTtIQU5HVUwgSlVOR1NFT05HIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTZCO0hBTkdVTCBKVU5HU0VPTkcgV0FFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTZDO0hBTkdVTCBKVU5HU0VPTkcgT0U7TG87MDtMOzs7OztOOzs7OzsKKzExNkQ7SEFOR1VMIEpVTkdTRU9ORyBZTztMbzswO0w7Ozs7O047Ozs7OworMTE2RTtIQU5HVUwgSlVOR1NFT05HIFU7TG87MDtMOzs7OztOOzs7OzsKKzExNkY7SEFOR1VMIEpVTkdTRU9ORyBXRU87TG87MDtMOzs7OztOOzs7OzsKKzExNzA7SEFOR1VMIEpVTkdTRU9ORyBXRTtMbzswO0w7Ozs7O047Ozs7OworMTE3MTtIQU5HVUwgSlVOR1NFT05HIFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTcyO0hBTkdVTCBKVU5HU0VPTkcgWVU7TG87MDtMOzs7OztOOzs7OzsKKzExNzM7SEFOR1VMIEpVTkdTRU9ORyBFVTtMbzswO0w7Ozs7O047Ozs7OworMTE3NDtIQU5HVUwgSlVOR1NFT05HIFlJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTc1O0hBTkdVTCBKVU5HU0VPTkcgSTtMbzswO0w7Ozs7O047Ozs7OworMTE3NjtIQU5HVUwgSlVOR1NFT05HIEEtTztMbzswO0w7Ozs7O047Ozs7OworMTE3NztIQU5HVUwgSlVOR1NFT05HIEEtVTtMbzswO0w7Ozs7O047Ozs7OworMTE3ODtIQU5HVUwgSlVOR1NFT05HIFlBLU87TG87MDtMOzs7OztOOzs7OzsKKzExNzk7SEFOR1VMIEpVTkdTRU9ORyBZQS1ZTztMbzswO0w7Ozs7O047Ozs7OworMTE3QTtIQU5HVUwgSlVOR1NFT05HIEVPLU87TG87MDtMOzs7OztOOzs7OzsKKzExN0I7SEFOR1VMIEpVTkdTRU9ORyBFTy1VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTdDO0hBTkdVTCBKVU5HU0VPTkcgRU8tRVU7TG87MDtMOzs7OztOOzs7OzsKKzExN0Q7SEFOR1VMIEpVTkdTRU9ORyBZRU8tTztMbzswO0w7Ozs7O047Ozs7OworMTE3RTtIQU5HVUwgSlVOR1NFT05HIFlFTy1VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTdGO0hBTkdVTCBKVU5HU0VPTkcgTy1FTztMbzswO0w7Ozs7O047Ozs7OworMTE4MDtIQU5HVUwgSlVOR1NFT05HIE8tRTtMbzswO0w7Ozs7O047Ozs7OworMTE4MTtIQU5HVUwgSlVOR1NFT05HIE8tWUU7TG87MDtMOzs7OztOOzs7OzsKKzExODI7SEFOR1VMIEpVTkdTRU9ORyBPLU87TG87MDtMOzs7OztOOzs7OzsKKzExODM7SEFOR1VMIEpVTkdTRU9ORyBPLVU7TG87MDtMOzs7OztOOzs7OzsKKzExODQ7SEFOR1VMIEpVTkdTRU9ORyBZTy1ZQTtMbzswO0w7Ozs7O047Ozs7OworMTE4NTtIQU5HVUwgSlVOR1NFT05HIFlPLVlBRTtMbzswO0w7Ozs7O047Ozs7OworMTE4NjtIQU5HVUwgSlVOR1NFT05HIFlPLVlFTztMbzswO0w7Ozs7O047Ozs7OworMTE4NztIQU5HVUwgSlVOR1NFT05HIFlPLU87TG87MDtMOzs7OztOOzs7OzsKKzExODg7SEFOR1VMIEpVTkdTRU9ORyBZTy1JO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTg5O0hBTkdVTCBKVU5HU0VPTkcgVS1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMThBO0hBTkdVTCBKVU5HU0VPTkcgVS1BRTtMbzswO0w7Ozs7O047Ozs7OworMTE4QjtIQU5HVUwgSlVOR1NFT05HIFUtRU8tRVU7TG87MDtMOzs7OztOOzs7OzsKKzExOEM7SEFOR1VMIEpVTkdTRU9ORyBVLVlFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMThEO0hBTkdVTCBKVU5HU0VPTkcgVS1VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMThFO0hBTkdVTCBKVU5HU0VPTkcgWVUtQTtMbzswO0w7Ozs7O047Ozs7OworMTE4RjtIQU5HVUwgSlVOR1NFT05HIFlVLUVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTkwO0hBTkdVTCBKVU5HU0VPTkcgWVUtRTtMbzswO0w7Ozs7O047Ozs7OworMTE5MTtIQU5HVUwgSlVOR1NFT05HIFlVLVlFTztMbzswO0w7Ozs7O047Ozs7OworMTE5MjtIQU5HVUwgSlVOR1NFT05HIFlVLVlFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTkzO0hBTkdVTCBKVU5HU0VPTkcgWVUtVTtMbzswO0w7Ozs7O047Ozs7OworMTE5NDtIQU5HVUwgSlVOR1NFT05HIFlVLUk7TG87MDtMOzs7OztOOzs7OzsKKzExOTU7SEFOR1VMIEpVTkdTRU9ORyBFVS1VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTk2O0hBTkdVTCBKVU5HU0VPTkcgRVUtRVU7TG87MDtMOzs7OztOOzs7OzsKKzExOTc7SEFOR1VMIEpVTkdTRU9ORyBZSS1VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTk4O0hBTkdVTCBKVU5HU0VPTkcgSS1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTk5O0hBTkdVTCBKVU5HU0VPTkcgSS1ZQTtMbzswO0w7Ozs7O047Ozs7OworMTE5QTtIQU5HVUwgSlVOR1NFT05HIEktTztMbzswO0w7Ozs7O047Ozs7OworMTE5QjtIQU5HVUwgSlVOR1NFT05HIEktVTtMbzswO0w7Ozs7O047Ozs7OworMTE5QztIQU5HVUwgSlVOR1NFT05HIEktRVU7TG87MDtMOzs7OztOOzs7OzsKKzExOUQ7SEFOR1VMIEpVTkdTRU9ORyBJLUFSQUVBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTlFO0hBTkdVTCBKVU5HU0VPTkcgQVJBRUE7TG87MDtMOzs7OztOOzs7OzsKKzExOUY7SEFOR1VMIEpVTkdTRU9ORyBBUkFFQS1FTztMbzswO0w7Ozs7O047Ozs7OworMTFBMDtIQU5HVUwgSlVOR1NFT05HIEFSQUVBLVU7TG87MDtMOzs7OztOOzs7OzsKKzExQTE7SEFOR1VMIEpVTkdTRU9ORyBBUkFFQS1JO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUEyO0hBTkdVTCBKVU5HU0VPTkcgU1NBTkdBUkFFQTtMbzswO0w7Ozs7O047Ozs7OworMTFBODtIQU5HVUwgSk9OR1NFT05HIEtJWUVPSztMbzswO0w7Ozs7O047O2cgKjs7OworMTFBOTtIQU5HVUwgSk9OR1NFT05HIFNTQU5HS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Z2cgKjs7OworMTFBQTtIQU5HVUwgSk9OR1NFT05HIEtJWUVPSy1TSU9TO0xvOzA7TDs7Ozs7Tjs7Z3MgKjs7OworMTFBQjtIQU5HVUwgSk9OR1NFT05HIE5JRVVOO0xvOzA7TDs7Ozs7Tjs7biAqOzs7CisxMUFDO0hBTkdVTCBKT05HU0VPTkcgTklFVU4tQ0lFVUM7TG87MDtMOzs7OztOOztuaiAqOzs7CisxMUFEO0hBTkdVTCBKT05HU0VPTkcgTklFVU4tSElFVUg7TG87MDtMOzs7OztOOztuaCAqOzs7CisxMUFFO0hBTkdVTCBKT05HU0VPTkcgVElLRVVUO0xvOzA7TDs7Ozs7Tjs7ZCAqOzs7CisxMUFGO0hBTkdVTCBKT05HU0VPTkcgUklFVUw7TG87MDtMOzs7OztOOztsICo7OzsKKzExQjA7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1LSVlFT0s7TG87MDtMOzs7OztOOztsZyAqOzs7CisxMUIxO0hBTkdVTCBKT05HU0VPTkcgUklFVUwtTUlFVU07TG87MDtMOzs7OztOOztsbSAqOzs7CisxMUIyO0hBTkdVTCBKT05HU0VPTkcgUklFVUwtUElFVVA7TG87MDtMOzs7OztOOztsYiAqOzs7CisxMUIzO0hBTkdVTCBKT05HU0VPTkcgUklFVUwtU0lPUztMbzswO0w7Ozs7O047O2xzICo7OzsKKzExQjQ7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1USElFVVRIO0xvOzA7TDs7Ozs7Tjs7bHQgKjs7OworMTFCNTtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLVBISUVVUEg7TG87MDtMOzs7OztOOztscCAqOzs7CisxMUI2O0hBTkdVTCBKT05HU0VPTkcgUklFVUwtSElFVUg7TG87MDtMOzs7OztOOztsaCAqOzs7CisxMUI3O0hBTkdVTCBKT05HU0VPTkcgTUlFVU07TG87MDtMOzs7OztOOzttICo7OzsKKzExQjg7SEFOR1VMIEpPTkdTRU9ORyBQSUVVUDtMbzswO0w7Ozs7O047O2IgKjs7OworMTFCOTtIQU5HVUwgSk9OR1NFT05HIFBJRVVQLVNJT1M7TG87MDtMOzs7OztOOzticyAqOzs7CisxMUJBO0hBTkdVTCBKT05HU0VPTkcgU0lPUztMbzswO0w7Ozs7O047O3MgKjs7OworMTFCQjtIQU5HVUwgSk9OR1NFT05HIFNTQU5HU0lPUztMbzswO0w7Ozs7O047O3NzICo7OzsKKzExQkM7SEFOR1VMIEpPTkdTRU9ORyBJRVVORztMbzswO0w7Ozs7O047O25nICo7OzsKKzExQkQ7SEFOR1VMIEpPTkdTRU9ORyBDSUVVQztMbzswO0w7Ozs7O047O2ogKjs7OworMTFCRTtIQU5HVUwgSk9OR1NFT05HIENISUVVQ0g7TG87MDtMOzs7OztOOztjICo7OzsKKzExQkY7SEFOR1VMIEpPTkdTRU9ORyBLSElFVUtIO0xvOzA7TDs7Ozs7Tjs7ayAqOzs7CisxMUMwO0hBTkdVTCBKT05HU0VPTkcgVEhJRVVUSDtMbzswO0w7Ozs7O047O3QgKjs7OworMTFDMTtIQU5HVUwgSk9OR1NFT05HIFBISUVVUEg7TG87MDtMOzs7OztOOztwICo7OzsKKzExQzI7SEFOR1VMIEpPTkdTRU9ORyBISUVVSDtMbzswO0w7Ozs7O047O2ggKjs7OworMTFDMztIQU5HVUwgSk9OR1NFT05HIEtJWUVPSy1SSUVVTDtMbzswO0w7Ozs7O047Ozs7OworMTFDNDtIQU5HVUwgSk9OR1NFT05HIEtJWUVPSy1TSU9TLUtJWUVPSztMbzswO0w7Ozs7O047Ozs7OworMTFDNTtIQU5HVUwgSk9OR1NFT05HIE5JRVVOLUtJWUVPSztMbzswO0w7Ozs7O047Ozs7OworMTFDNjtIQU5HVUwgSk9OR1NFT05HIE5JRVVOLVRJS0VVVDtMbzswO0w7Ozs7O047Ozs7OworMTFDNztIQU5HVUwgSk9OR1NFT05HIE5JRVVOLVNJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExQzg7SEFOR1VMIEpPTkdTRU9ORyBOSUVVTi1QQU5TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUM5O0hBTkdVTCBKT05HU0VPTkcgTklFVU4tVEhJRVVUSDtMbzswO0w7Ozs7O047Ozs7OworMTFDQTtIQU5HVUwgSk9OR1NFT05HIFRJS0VVVC1LSVlFT0s7TG87MDtMOzs7OztOOzs7OzsKKzExQ0I7SEFOR1VMIEpPTkdTRU9ORyBUSUtFVVQtUklFVUw7TG87MDtMOzs7OztOOzs7OzsKKzExQ0M7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1LSVlFT0stU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTFDRDtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLU5JRVVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUNFO0hBTkdVTCBKT05HU0VPTkcgUklFVUwtVElLRVVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUNGO0hBTkdVTCBKT05HU0VPTkcgUklFVUwtVElLRVVULUhJRVVIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUQwO0hBTkdVTCBKT05HU0VPTkcgU1NBTkdSSUVVTDtMbzswO0w7Ozs7O047Ozs7OworMTFEMTtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLU1JRVVNLUtJWUVPSztMbzswO0w7Ozs7O047Ozs7OworMTFEMjtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLU1JRVVNLVNJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExRDM7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1QSUVVUC1TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUQ0O0hBTkdVTCBKT05HU0VPTkcgUklFVUwtUElFVVAtSElFVUg7TG87MDtMOzs7OztOOzs7OzsKKzExRDU7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1LQVBZRU9VTlBJRVVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUQ2O0hBTkdVTCBKT05HU0VPTkcgUklFVUwtU1NBTkdTSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUQ3O0hBTkdVTCBKT05HU0VPTkcgUklFVUwtUEFOU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTFEODtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLUtISUVVS0g7TG87MDtMOzs7OztOOzs7OzsKKzExRDk7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1ZRU9SSU5ISUVVSDtMbzswO0w7Ozs7O047Ozs7OworMTFEQTtIQU5HVUwgSk9OR1NFT05HIE1JRVVNLUtJWUVPSztMbzswO0w7Ozs7O047Ozs7OworMTFEQjtIQU5HVUwgSk9OR1NFT05HIE1JRVVNLVJJRVVMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMURDO0hBTkdVTCBKT05HU0VPTkcgTUlFVU0tUElFVVA7TG87MDtMOzs7OztOOzs7OzsKKzExREQ7SEFOR1VMIEpPTkdTRU9ORyBNSUVVTS1TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMURFO0hBTkdVTCBKT05HU0VPTkcgTUlFVU0tU1NBTkdTSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMURGO0hBTkdVTCBKT05HU0VPTkcgTUlFVU0tUEFOU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTFFMDtIQU5HVUwgSk9OR1NFT05HIE1JRVVNLUNISUVVQ0g7TG87MDtMOzs7OztOOzs7OzsKKzExRTE7SEFOR1VMIEpPTkdTRU9ORyBNSUVVTS1ISUVVSDtMbzswO0w7Ozs7O047Ozs7OworMTFFMjtIQU5HVUwgSk9OR1NFT05HIEtBUFlFT1VOTUlFVU07TG87MDtMOzs7OztOOzs7OzsKKzExRTM7SEFOR1VMIEpPTkdTRU9ORyBQSUVVUC1SSUVVTDtMbzswO0w7Ozs7O047Ozs7OworMTFFNDtIQU5HVUwgSk9OR1NFT05HIFBJRVVQLVBISUVVUEg7TG87MDtMOzs7OztOOzs7OzsKKzExRTU7SEFOR1VMIEpPTkdTRU9ORyBQSUVVUC1ISUVVSDtMbzswO0w7Ozs7O047Ozs7OworMTFFNjtIQU5HVUwgSk9OR1NFT05HIEtBUFlFT1VOUElFVVA7TG87MDtMOzs7OztOOzs7OzsKKzExRTc7SEFOR1VMIEpPTkdTRU9ORyBTSU9TLUtJWUVPSztMbzswO0w7Ozs7O047Ozs7OworMTFFODtIQU5HVUwgSk9OR1NFT05HIFNJT1MtVElLRVVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUU5O0hBTkdVTCBKT05HU0VPTkcgU0lPUy1SSUVVTDtMbzswO0w7Ozs7O047Ozs7OworMTFFQTtIQU5HVUwgSk9OR1NFT05HIFNJT1MtUElFVVA7TG87MDtMOzs7OztOOzs7OzsKKzExRUI7SEFOR1VMIEpPTkdTRU9ORyBQQU5TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUVDO0hBTkdVTCBKT05HU0VPTkcgSUVVTkctS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUVEO0hBTkdVTCBKT05HU0VPTkcgSUVVTkctU1NBTkdLSVlFT0s7TG87MDtMOzs7OztOOzs7OzsKKzExRUU7SEFOR1VMIEpPTkdTRU9ORyBTU0FOR0lFVU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUVGO0hBTkdVTCBKT05HU0VPTkcgSUVVTkctS0hJRVVLSDtMbzswO0w7Ozs7O047Ozs7OworMTFGMDtIQU5HVUwgSk9OR1NFT05HIFlFU0lFVU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUYxO0hBTkdVTCBKT05HU0VPTkcgWUVTSUVVTkctU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTFGMjtIQU5HVUwgSk9OR1NFT05HIFlFU0lFVU5HLVBBTlNJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExRjM7SEFOR1VMIEpPTkdTRU9ORyBQSElFVVBILVBJRVVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUY0O0hBTkdVTCBKT05HU0VPTkcgS0FQWUVPVU5QSElFVVBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUY1O0hBTkdVTCBKT05HU0VPTkcgSElFVUgtTklFVU47TG87MDtMOzs7OztOOzs7OzsKKzExRjY7SEFOR1VMIEpPTkdTRU9ORyBISUVVSC1SSUVVTDtMbzswO0w7Ozs7O047Ozs7OworMTFGNztIQU5HVUwgSk9OR1NFT05HIEhJRVVILU1JRVVNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUY4O0hBTkdVTCBKT05HU0VPTkcgSElFVUgtUElFVVA7TG87MDtMOzs7OztOOzs7OzsKKzExRjk7SEFOR1VMIEpPTkdTRU9ORyBZRU9SSU5ISUVVSDtMbzswO0w7Ozs7O047Ozs7OworMTIwMDtFVEhJT1BJQyBTWUxMQUJMRSBIQTtMbzswO0w7Ozs7O047Ozs7OworMTIwMTtFVEhJT1BJQyBTWUxMQUJMRSBIVTtMbzswO0w7Ozs7O047Ozs7OworMTIwMjtFVEhJT1BJQyBTWUxMQUJMRSBISTtMbzswO0w7Ozs7O047Ozs7OworMTIwMztFVEhJT1BJQyBTWUxMQUJMRSBIQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyMDQ7RVRISU9QSUMgU1lMTEFCTEUgSEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA1O0VUSElPUElDIFNZTExBQkxFIEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA2O0VUSElPUElDIFNZTExBQkxFIEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA4O0VUSElPUElDIFNZTExBQkxFIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA5O0VUSElPUElDIFNZTExBQkxFIExVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBBO0VUSElPUElDIFNZTExBQkxFIExJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBCO0VUSElPUElDIFNZTExBQkxFIExBQTtMbzswO0w7Ozs7O047Ozs7OworMTIwQztFVEhJT1BJQyBTWUxMQUJMRSBMRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyMEQ7RVRISU9QSUMgU1lMTEFCTEUgTEU7TG87MDtMOzs7OztOOzs7OzsKKzEyMEU7RVRISU9QSUMgU1lMTEFCTEUgTE87TG87MDtMOzs7OztOOzs7OzsKKzEyMEY7RVRISU9QSUMgU1lMTEFCTEUgTFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEwO0VUSElPUElDIFNZTExBQkxFIEhIQTtMbzswO0w7Ozs7O047Ozs7OworMTIxMTtFVEhJT1BJQyBTWUxMQUJMRSBISFU7TG87MDtMOzs7OztOOzs7OzsKKzEyMTI7RVRISU9QSUMgU1lMTEFCTEUgSEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjEzO0VUSElPUElDIFNZTExBQkxFIEhIQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyMTQ7RVRISU9QSUMgU1lMTEFCTEUgSEhFRTtMbzswO0w7Ozs7O047Ozs7OworMTIxNTtFVEhJT1BJQyBTWUxMQUJMRSBISEU7TG87MDtMOzs7OztOOzs7OzsKKzEyMTY7RVRISU9QSUMgU1lMTEFCTEUgSEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE3O0VUSElPUElDIFNZTExBQkxFIEhIV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyMTg7RVRISU9QSUMgU1lMTEFCTEUgTUE7TG87MDtMOzs7OztOOzs7OzsKKzEyMTk7RVRISU9QSUMgU1lMTEFCTEUgTVU7TG87MDtMOzs7OztOOzs7OzsKKzEyMUE7RVRISU9QSUMgU1lMTEFCTEUgTUk7TG87MDtMOzs7OztOOzs7OzsKKzEyMUI7RVRISU9QSUMgU1lMTEFCTEUgTUFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFDO0VUSElPUElDIFNZTExBQkxFIE1FRTtMbzswO0w7Ozs7O047Ozs7OworMTIxRDtFVEhJT1BJQyBTWUxMQUJMRSBNRTtMbzswO0w7Ozs7O047Ozs7OworMTIxRTtFVEhJT1BJQyBTWUxMQUJMRSBNTztMbzswO0w7Ozs7O047Ozs7OworMTIxRjtFVEhJT1BJQyBTWUxMQUJMRSBNV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyMjA7RVRISU9QSUMgU1lMTEFCTEUgU1pBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIxO0VUSElPUElDIFNZTExBQkxFIFNaVTtMbzswO0w7Ozs7O047Ozs7OworMTIyMjtFVEhJT1BJQyBTWUxMQUJMRSBTWkk7TG87MDtMOzs7OztOOzs7OzsKKzEyMjM7RVRISU9QSUMgU1lMTEFCTEUgU1pBQTtMbzswO0w7Ozs7O047Ozs7OworMTIyNDtFVEhJT1BJQyBTWUxMQUJMRSBTWkVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI1O0VUSElPUElDIFNZTExBQkxFIFNaRTtMbzswO0w7Ozs7O047Ozs7OworMTIyNjtFVEhJT1BJQyBTWUxMQUJMRSBTWk87TG87MDtMOzs7OztOOzs7OzsKKzEyMjc7RVRISU9QSUMgU1lMTEFCTEUgU1pXQTtMbzswO0w7Ozs7O047Ozs7OworMTIyODtFVEhJT1BJQyBTWUxMQUJMRSBSQTtMbzswO0w7Ozs7O047Ozs7OworMTIyOTtFVEhJT1BJQyBTWUxMQUJMRSBSVTtMbzswO0w7Ozs7O047Ozs7OworMTIyQTtFVEhJT1BJQyBTWUxMQUJMRSBSSTtMbzswO0w7Ozs7O047Ozs7OworMTIyQjtFVEhJT1BJQyBTWUxMQUJMRSBSQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyMkM7RVRISU9QSUMgU1lMTEFCTEUgUkVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJEO0VUSElPUElDIFNZTExBQkxFIFJFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJFO0VUSElPUElDIFNZTExBQkxFIFJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJGO0VUSElPUElDIFNZTExBQkxFIFJXQTtMbzswO0w7Ozs7O047Ozs7OworMTIzMDtFVEhJT1BJQyBTWUxMQUJMRSBTQTtMbzswO0w7Ozs7O047Ozs7OworMTIzMTtFVEhJT1BJQyBTWUxMQUJMRSBTVTtMbzswO0w7Ozs7O047Ozs7OworMTIzMjtFVEhJT1BJQyBTWUxMQUJMRSBTSTtMbzswO0w7Ozs7O047Ozs7OworMTIzMztFVEhJT1BJQyBTWUxMQUJMRSBTQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyMzQ7RVRISU9QSUMgU1lMTEFCTEUgU0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM1O0VUSElPUElDIFNZTExBQkxFIFNFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM2O0VUSElPUElDIFNZTExBQkxFIFNPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM3O0VUSElPUElDIFNZTExBQkxFIFNXQTtMbzswO0w7Ozs7O047Ozs7OworMTIzODtFVEhJT1BJQyBTWUxMQUJMRSBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMzk7RVRISU9QSUMgU1lMTEFCTEUgU0hVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjNBO0VUSElPUElDIFNZTExBQkxFIFNISTtMbzswO0w7Ozs7O047Ozs7OworMTIzQjtFVEhJT1BJQyBTWUxMQUJMRSBTSEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjNDO0VUSElPUElDIFNZTExBQkxFIFNIRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyM0Q7RVRISU9QSUMgU1lMTEFCTEUgU0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjNFO0VUSElPUElDIFNZTExBQkxFIFNITztMbzswO0w7Ozs7O047Ozs7OworMTIzRjtFVEhJT1BJQyBTWUxMQUJMRSBTSFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjQwO0VUSElPUElDIFNZTExBQkxFIFFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjQxO0VUSElPUElDIFNZTExBQkxFIFFVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjQyO0VUSElPUElDIFNZTExBQkxFIFFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjQzO0VUSElPUElDIFNZTExBQkxFIFFBQTtMbzswO0w7Ozs7O047Ozs7OworMTI0NDtFVEhJT1BJQyBTWUxMQUJMRSBRRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyNDU7RVRISU9QSUMgU1lMTEFCTEUgUUU7TG87MDtMOzs7OztOOzs7OzsKKzEyNDY7RVRISU9QSUMgU1lMTEFCTEUgUU87TG87MDtMOzs7OztOOzs7OzsKKzEyNDg7RVRISU9QSUMgU1lMTEFCTEUgUVdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjRBO0VUSElPUElDIFNZTExBQkxFIFFXSTtMbzswO0w7Ozs7O047Ozs7OworMTI0QjtFVEhJT1BJQyBTWUxMQUJMRSBRV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjRDO0VUSElPUElDIFNZTExBQkxFIFFXRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyNEQ7RVRISU9QSUMgU1lMTEFCTEUgUVdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjUwO0VUSElPUElDIFNZTExBQkxFIFFIQTtMbzswO0w7Ozs7O047Ozs7OworMTI1MTtFVEhJT1BJQyBTWUxMQUJMRSBRSFU7TG87MDtMOzs7OztOOzs7OzsKKzEyNTI7RVRISU9QSUMgU1lMTEFCTEUgUUhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjUzO0VUSElPUElDIFNZTExBQkxFIFFIQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyNTQ7RVRISU9QSUMgU1lMTEFCTEUgUUhFRTtMbzswO0w7Ozs7O047Ozs7OworMTI1NTtFVEhJT1BJQyBTWUxMQUJMRSBRSEU7TG87MDtMOzs7OztOOzs7OzsKKzEyNTY7RVRISU9QSUMgU1lMTEFCTEUgUUhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjU4O0VUSElPUElDIFNZTExBQkxFIFFIV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyNUE7RVRISU9QSUMgU1lMTEFCTEUgUUhXSTtMbzswO0w7Ozs7O047Ozs7OworMTI1QjtFVEhJT1BJQyBTWUxMQUJMRSBRSFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTI1QztFVEhJT1BJQyBTWUxMQUJMRSBRSFdFRTtMbzswO0w7Ozs7O047Ozs7OworMTI1RDtFVEhJT1BJQyBTWUxMQUJMRSBRSFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjYwO0VUSElPUElDIFNZTExBQkxFIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjYxO0VUSElPUElDIFNZTExBQkxFIEJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjYyO0VUSElPUElDIFNZTExBQkxFIEJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjYzO0VUSElPUElDIFNZTExBQkxFIEJBQTtMbzswO0w7Ozs7O047Ozs7OworMTI2NDtFVEhJT1BJQyBTWUxMQUJMRSBCRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyNjU7RVRISU9QSUMgU1lMTEFCTEUgQkU7TG87MDtMOzs7OztOOzs7OzsKKzEyNjY7RVRISU9QSUMgU1lMTEFCTEUgQk87TG87MDtMOzs7OztOOzs7OzsKKzEyNjc7RVRISU9QSUMgU1lMTEFCTEUgQldBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjY4O0VUSElPUElDIFNZTExBQkxFIFZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjY5O0VUSElPUElDIFNZTExBQkxFIFZVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjZBO0VUSElPUElDIFNZTExBQkxFIFZJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjZCO0VUSElPUElDIFNZTExBQkxFIFZBQTtMbzswO0w7Ozs7O047Ozs7OworMTI2QztFVEhJT1BJQyBTWUxMQUJMRSBWRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyNkQ7RVRISU9QSUMgU1lMTEFCTEUgVkU7TG87MDtMOzs7OztOOzs7OzsKKzEyNkU7RVRISU9QSUMgU1lMTEFCTEUgVk87TG87MDtMOzs7OztOOzs7OzsKKzEyNkY7RVRISU9QSUMgU1lMTEFCTEUgVldBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjcwO0VUSElPUElDIFNZTExBQkxFIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjcxO0VUSElPUElDIFNZTExBQkxFIFRVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjcyO0VUSElPUElDIFNZTExBQkxFIFRJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjczO0VUSElPUElDIFNZTExBQkxFIFRBQTtMbzswO0w7Ozs7O047Ozs7OworMTI3NDtFVEhJT1BJQyBTWUxMQUJMRSBURUU7TG87MDtMOzs7OztOOzs7OzsKKzEyNzU7RVRISU9QSUMgU1lMTEFCTEUgVEU7TG87MDtMOzs7OztOOzs7OzsKKzEyNzY7RVRISU9QSUMgU1lMTEFCTEUgVE87TG87MDtMOzs7OztOOzs7OzsKKzEyNzc7RVRISU9QSUMgU1lMTEFCTEUgVFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjc4O0VUSElPUElDIFNZTExBQkxFIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjc5O0VUSElPUElDIFNZTExBQkxFIENVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjdBO0VUSElPUElDIFNZTExBQkxFIENJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjdCO0VUSElPUElDIFNZTExBQkxFIENBQTtMbzswO0w7Ozs7O047Ozs7OworMTI3QztFVEhJT1BJQyBTWUxMQUJMRSBDRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyN0Q7RVRISU9QSUMgU1lMTEFCTEUgQ0U7TG87MDtMOzs7OztOOzs7OzsKKzEyN0U7RVRISU9QSUMgU1lMTEFCTEUgQ087TG87MDtMOzs7OztOOzs7OzsKKzEyN0Y7RVRISU9QSUMgU1lMTEFCTEUgQ1dBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjgwO0VUSElPUElDIFNZTExBQkxFIFhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjgxO0VUSElPUElDIFNZTExBQkxFIFhVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjgyO0VUSElPUElDIFNZTExBQkxFIFhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjgzO0VUSElPUElDIFNZTExBQkxFIFhBQTtMbzswO0w7Ozs7O047Ozs7OworMTI4NDtFVEhJT1BJQyBTWUxMQUJMRSBYRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyODU7RVRISU9QSUMgU1lMTEFCTEUgWEU7TG87MDtMOzs7OztOOzs7OzsKKzEyODY7RVRISU9QSUMgU1lMTEFCTEUgWE87TG87MDtMOzs7OztOOzs7OzsKKzEyODg7RVRISU9QSUMgU1lMTEFCTEUgWFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjhBO0VUSElPUElDIFNZTExBQkxFIFhXSTtMbzswO0w7Ozs7O047Ozs7OworMTI4QjtFVEhJT1BJQyBTWUxMQUJMRSBYV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjhDO0VUSElPUElDIFNZTExBQkxFIFhXRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyOEQ7RVRISU9QSUMgU1lMTEFCTEUgWFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjkwO0VUSElPUElDIFNZTExBQkxFIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjkxO0VUSElPUElDIFNZTExBQkxFIE5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjkyO0VUSElPUElDIFNZTExBQkxFIE5JO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjkzO0VUSElPUElDIFNZTExBQkxFIE5BQTtMbzswO0w7Ozs7O047Ozs7OworMTI5NDtFVEhJT1BJQyBTWUxMQUJMRSBORUU7TG87MDtMOzs7OztOOzs7OzsKKzEyOTU7RVRISU9QSUMgU1lMTEFCTEUgTkU7TG87MDtMOzs7OztOOzs7OzsKKzEyOTY7RVRISU9QSUMgU1lMTEFCTEUgTk87TG87MDtMOzs7OztOOzs7OzsKKzEyOTc7RVRISU9QSUMgU1lMTEFCTEUgTldBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjk4O0VUSElPUElDIFNZTExBQkxFIE5ZQTtMbzswO0w7Ozs7O047Ozs7OworMTI5OTtFVEhJT1BJQyBTWUxMQUJMRSBOWVU7TG87MDtMOzs7OztOOzs7OzsKKzEyOUE7RVRISU9QSUMgU1lMTEFCTEUgTllJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjlCO0VUSElPUElDIFNZTExBQkxFIE5ZQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyOUM7RVRISU9QSUMgU1lMTEFCTEUgTllFRTtMbzswO0w7Ozs7O047Ozs7OworMTI5RDtFVEhJT1BJQyBTWUxMQUJMRSBOWUU7TG87MDtMOzs7OztOOzs7OzsKKzEyOUU7RVRISU9QSUMgU1lMTEFCTEUgTllPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjlGO0VUSElPUElDIFNZTExBQkxFIE5ZV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyQTA7RVRISU9QSUMgU1lMTEFCTEUgR0xPVFRBTCBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkExO0VUSElPUElDIFNZTExBQkxFIEdMT1RUQUwgVTtMbzswO0w7Ozs7O047Ozs7OworMTJBMjtFVEhJT1BJQyBTWUxMQUJMRSBHTE9UVEFMIEk7TG87MDtMOzs7OztOOzs7OzsKKzEyQTM7RVRISU9QSUMgU1lMTEFCTEUgR0xPVFRBTCBBQTtMbzswO0w7Ozs7O047Ozs7OworMTJBNDtFVEhJT1BJQyBTWUxMQUJMRSBHTE9UVEFMIEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkE1O0VUSElPUElDIFNZTExBQkxFIEdMT1RUQUwgRTtMbzswO0w7Ozs7O047Ozs7OworMTJBNjtFVEhJT1BJQyBTWUxMQUJMRSBHTE9UVEFMIE87TG87MDtMOzs7OztOOzs7OzsKKzEyQTc7RVRISU9QSUMgU1lMTEFCTEUgR0xPVFRBTCBXQTtMbzswO0w7Ozs7O047Ozs7OworMTJBODtFVEhJT1BJQyBTWUxMQUJMRSBLQTtMbzswO0w7Ozs7O047Ozs7OworMTJBOTtFVEhJT1BJQyBTWUxMQUJMRSBLVTtMbzswO0w7Ozs7O047Ozs7OworMTJBQTtFVEhJT1BJQyBTWUxMQUJMRSBLSTtMbzswO0w7Ozs7O047Ozs7OworMTJBQjtFVEhJT1BJQyBTWUxMQUJMRSBLQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyQUM7RVRISU9QSUMgU1lMTEFCTEUgS0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkFEO0VUSElPUElDIFNZTExBQkxFIEtFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkFFO0VUSElPUElDIFNZTExBQkxFIEtPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkIwO0VUSElPUElDIFNZTExBQkxFIEtXQTtMbzswO0w7Ozs7O047Ozs7OworMTJCMjtFVEhJT1BJQyBTWUxMQUJMRSBLV0k7TG87MDtMOzs7OztOOzs7OzsKKzEyQjM7RVRISU9QSUMgU1lMTEFCTEUgS1dBQTtMbzswO0w7Ozs7O047Ozs7OworMTJCNDtFVEhJT1BJQyBTWUxMQUJMRSBLV0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkI1O0VUSElPUElDIFNZTExBQkxFIEtXRTtMbzswO0w7Ozs7O047Ozs7OworMTJCODtFVEhJT1BJQyBTWUxMQUJMRSBLWEE7TG87MDtMOzs7OztOOzs7OzsKKzEyQjk7RVRISU9QSUMgU1lMTEFCTEUgS1hVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkJBO0VUSElPUElDIFNZTExBQkxFIEtYSTtMbzswO0w7Ozs7O047Ozs7OworMTJCQjtFVEhJT1BJQyBTWUxMQUJMRSBLWEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkJDO0VUSElPUElDIFNZTExBQkxFIEtYRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyQkQ7RVRISU9QSUMgU1lMTEFCTEUgS1hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkJFO0VUSElPUElDIFNZTExBQkxFIEtYTztMbzswO0w7Ozs7O047Ozs7OworMTJDMDtFVEhJT1BJQyBTWUxMQUJMRSBLWFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkMyO0VUSElPUElDIFNZTExBQkxFIEtYV0k7TG87MDtMOzs7OztOOzs7OzsKKzEyQzM7RVRISU9QSUMgU1lMTEFCTEUgS1hXQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyQzQ7RVRISU9QSUMgU1lMTEFCTEUgS1hXRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyQzU7RVRISU9QSUMgU1lMTEFCTEUgS1hXRTtMbzswO0w7Ozs7O047Ozs7OworMTJDODtFVEhJT1BJQyBTWUxMQUJMRSBXQTtMbzswO0w7Ozs7O047Ozs7OworMTJDOTtFVEhJT1BJQyBTWUxMQUJMRSBXVTtMbzswO0w7Ozs7O047Ozs7OworMTJDQTtFVEhJT1BJQyBTWUxMQUJMRSBXSTtMbzswO0w7Ozs7O047Ozs7OworMTJDQjtFVEhJT1BJQyBTWUxMQUJMRSBXQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyQ0M7RVRISU9QSUMgU1lMTEFCTEUgV0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkNEO0VUSElPUElDIFNZTExBQkxFIFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkNFO0VUSElPUElDIFNZTExBQkxFIFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkQwO0VUSElPUElDIFNZTExBQkxFIFBIQVJZTkdFQUwgQTtMbzswO0w7Ozs7O047Ozs7OworMTJEMTtFVEhJT1BJQyBTWUxMQUJMRSBQSEFSWU5HRUFMIFU7TG87MDtMOzs7OztOOzs7OzsKKzEyRDI7RVRISU9QSUMgU1lMTEFCTEUgUEhBUllOR0VBTCBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkQzO0VUSElPUElDIFNZTExBQkxFIFBIQVJZTkdFQUwgQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyRDQ7RVRISU9QSUMgU1lMTEFCTEUgUEhBUllOR0VBTCBFRTtMbzswO0w7Ozs7O047Ozs7OworMTJENTtFVEhJT1BJQyBTWUxMQUJMRSBQSEFSWU5HRUFMIEU7TG87MDtMOzs7OztOOzs7OzsKKzEyRDY7RVRISU9QSUMgU1lMTEFCTEUgUEhBUllOR0VBTCBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkQ4O0VUSElPUElDIFNZTExBQkxFIFpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkQ5O0VUSElPUElDIFNZTExBQkxFIFpVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkRBO0VUSElPUElDIFNZTExBQkxFIFpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkRCO0VUSElPUElDIFNZTExBQkxFIFpBQTtMbzswO0w7Ozs7O047Ozs7OworMTJEQztFVEhJT1BJQyBTWUxMQUJMRSBaRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyREQ7RVRISU9QSUMgU1lMTEFCTEUgWkU7TG87MDtMOzs7OztOOzs7OzsKKzEyREU7RVRISU9QSUMgU1lMTEFCTEUgWk87TG87MDtMOzs7OztOOzs7OzsKKzEyREY7RVRISU9QSUMgU1lMTEFCTEUgWldBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkUwO0VUSElPUElDIFNZTExBQkxFIFpIQTtMbzswO0w7Ozs7O047Ozs7OworMTJFMTtFVEhJT1BJQyBTWUxMQUJMRSBaSFU7TG87MDtMOzs7OztOOzs7OzsKKzEyRTI7RVRISU9QSUMgU1lMTEFCTEUgWkhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkUzO0VUSElPUElDIFNZTExBQkxFIFpIQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyRTQ7RVRISU9QSUMgU1lMTEFCTEUgWkhFRTtMbzswO0w7Ozs7O047Ozs7OworMTJFNTtFVEhJT1BJQyBTWUxMQUJMRSBaSEU7TG87MDtMOzs7OztOOzs7OzsKKzEyRTY7RVRISU9QSUMgU1lMTEFCTEUgWkhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkU3O0VUSElPUElDIFNZTExBQkxFIFpIV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyRTg7RVRISU9QSUMgU1lMTEFCTEUgWUE7TG87MDtMOzs7OztOOzs7OzsKKzEyRTk7RVRISU9QSUMgU1lMTEFCTEUgWVU7TG87MDtMOzs7OztOOzs7OzsKKzEyRUE7RVRISU9QSUMgU1lMTEFCTEUgWUk7TG87MDtMOzs7OztOOzs7OzsKKzEyRUI7RVRISU9QSUMgU1lMTEFCTEUgWUFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkVDO0VUSElPUElDIFNZTExBQkxFIFlFRTtMbzswO0w7Ozs7O047Ozs7OworMTJFRDtFVEhJT1BJQyBTWUxMQUJMRSBZRTtMbzswO0w7Ozs7O047Ozs7OworMTJFRTtFVEhJT1BJQyBTWUxMQUJMRSBZTztMbzswO0w7Ozs7O047Ozs7OworMTJGMDtFVEhJT1BJQyBTWUxMQUJMRSBEQTtMbzswO0w7Ozs7O047Ozs7OworMTJGMTtFVEhJT1BJQyBTWUxMQUJMRSBEVTtMbzswO0w7Ozs7O047Ozs7OworMTJGMjtFVEhJT1BJQyBTWUxMQUJMRSBESTtMbzswO0w7Ozs7O047Ozs7OworMTJGMztFVEhJT1BJQyBTWUxMQUJMRSBEQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyRjQ7RVRISU9QSUMgU1lMTEFCTEUgREVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkY1O0VUSElPUElDIFNZTExBQkxFIERFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkY2O0VUSElPUElDIFNZTExBQkxFIERPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkY3O0VUSElPUElDIFNZTExBQkxFIERXQTtMbzswO0w7Ozs7O047Ozs7OworMTJGODtFVEhJT1BJQyBTWUxMQUJMRSBEREE7TG87MDtMOzs7OztOOzs7OzsKKzEyRjk7RVRISU9QSUMgU1lMTEFCTEUgRERVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkZBO0VUSElPUElDIFNZTExBQkxFIERESTtMbzswO0w7Ozs7O047Ozs7OworMTJGQjtFVEhJT1BJQyBTWUxMQUJMRSBEREFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkZDO0VUSElPUElDIFNZTExBQkxFIERERUU7TG87MDtMOzs7OztOOzs7OzsKKzEyRkQ7RVRISU9QSUMgU1lMTEFCTEUgRERFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkZFO0VUSElPUElDIFNZTExBQkxFIERETztMbzswO0w7Ozs7O047Ozs7OworMTJGRjtFVEhJT1BJQyBTWUxMQUJMRSBERFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzAwO0VUSElPUElDIFNZTExBQkxFIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzAxO0VUSElPUElDIFNZTExBQkxFIEpVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzAyO0VUSElPUElDIFNZTExBQkxFIEpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzAzO0VUSElPUElDIFNZTExBQkxFIEpBQTtMbzswO0w7Ozs7O047Ozs7OworMTMwNDtFVEhJT1BJQyBTWUxMQUJMRSBKRUU7TG87MDtMOzs7OztOOzs7OzsKKzEzMDU7RVRISU9QSUMgU1lMTEFCTEUgSkU7TG87MDtMOzs7OztOOzs7OzsKKzEzMDY7RVRISU9QSUMgU1lMTEFCTEUgSk87TG87MDtMOzs7OztOOzs7OzsKKzEzMDc7RVRISU9QSUMgU1lMTEFCTEUgSldBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzA4O0VUSElPUElDIFNZTExBQkxFIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzA5O0VUSElPUElDIFNZTExBQkxFIEdVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzBBO0VUSElPUElDIFNZTExBQkxFIEdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzBCO0VUSElPUElDIFNZTExBQkxFIEdBQTtMbzswO0w7Ozs7O047Ozs7OworMTMwQztFVEhJT1BJQyBTWUxMQUJMRSBHRUU7TG87MDtMOzs7OztOOzs7OzsKKzEzMEQ7RVRISU9QSUMgU1lMTEFCTEUgR0U7TG87MDtMOzs7OztOOzs7OzsKKzEzMEU7RVRISU9QSUMgU1lMTEFCTEUgR087TG87MDtMOzs7OztOOzs7OzsKKzEzMTA7RVRISU9QSUMgU1lMTEFCTEUgR1dBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzEyO0VUSElPUElDIFNZTExBQkxFIEdXSTtMbzswO0w7Ozs7O047Ozs7OworMTMxMztFVEhJT1BJQyBTWUxMQUJMRSBHV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzE0O0VUSElPUElDIFNZTExBQkxFIEdXRUU7TG87MDtMOzs7OztOOzs7OzsKKzEzMTU7RVRISU9QSUMgU1lMTEFCTEUgR1dFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzE4O0VUSElPUElDIFNZTExBQkxFIEdHQTtMbzswO0w7Ozs7O047Ozs7OworMTMxOTtFVEhJT1BJQyBTWUxMQUJMRSBHR1U7TG87MDtMOzs7OztOOzs7OzsKKzEzMUE7RVRISU9QSUMgU1lMTEFCTEUgR0dJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzFCO0VUSElPUElDIFNZTExBQkxFIEdHQUE7TG87MDtMOzs7OztOOzs7OzsKKzEzMUM7RVRISU9QSUMgU1lMTEFCTEUgR0dFRTtMbzswO0w7Ozs7O047Ozs7OworMTMxRDtFVEhJT1BJQyBTWUxMQUJMRSBHR0U7TG87MDtMOzs7OztOOzs7OzsKKzEzMUU7RVRISU9QSUMgU1lMTEFCTEUgR0dPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzIwO0VUSElPUElDIFNZTExBQkxFIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMTMyMTtFVEhJT1BJQyBTWUxMQUJMRSBUSFU7TG87MDtMOzs7OztOOzs7OzsKKzEzMjI7RVRISU9QSUMgU1lMTEFCTEUgVEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzIzO0VUSElPUElDIFNZTExBQkxFIFRIQUE7TG87MDtMOzs7OztOOzs7OzsKKzEzMjQ7RVRISU9QSUMgU1lMTEFCTEUgVEhFRTtMbzswO0w7Ozs7O047Ozs7OworMTMyNTtFVEhJT1BJQyBTWUxMQUJMRSBUSEU7TG87MDtMOzs7OztOOzs7OzsKKzEzMjY7RVRISU9QSUMgU1lMTEFCTEUgVEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzI3O0VUSElPUElDIFNZTExBQkxFIFRIV0E7TG87MDtMOzs7OztOOzs7OzsKKzEzMjg7RVRISU9QSUMgU1lMTEFCTEUgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzI5O0VUSElPUElDIFNZTExBQkxFIENIVTtMbzswO0w7Ozs7O047Ozs7OworMTMyQTtFVEhJT1BJQyBTWUxMQUJMRSBDSEk7TG87MDtMOzs7OztOOzs7OzsKKzEzMkI7RVRISU9QSUMgU1lMTEFCTEUgQ0hBQTtMbzswO0w7Ozs7O047Ozs7OworMTMyQztFVEhJT1BJQyBTWUxMQUJMRSBDSEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzJEO0VUSElPUElDIFNZTExBQkxFIENIRTtMbzswO0w7Ozs7O047Ozs7OworMTMyRTtFVEhJT1BJQyBTWUxMQUJMRSBDSE87TG87MDtMOzs7OztOOzs7OzsKKzEzMkY7RVRISU9QSUMgU1lMTEFCTEUgQ0hXQTtMbzswO0w7Ozs7O047Ozs7OworMTMzMDtFVEhJT1BJQyBTWUxMQUJMRSBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzEzMzE7RVRISU9QSUMgU1lMTEFCTEUgUEhVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzMyO0VUSElPUElDIFNZTExBQkxFIFBISTtMbzswO0w7Ozs7O047Ozs7OworMTMzMztFVEhJT1BJQyBTWUxMQUJMRSBQSEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzM0O0VUSElPUElDIFNZTExBQkxFIFBIRUU7TG87MDtMOzs7OztOOzs7OzsKKzEzMzU7RVRISU9QSUMgU1lMTEFCTEUgUEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzM2O0VUSElPUElDIFNZTExBQkxFIFBITztMbzswO0w7Ozs7O047Ozs7OworMTMzNztFVEhJT1BJQyBTWUxMQUJMRSBQSFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzM4O0VUSElPUElDIFNZTExBQkxFIFRTQTtMbzswO0w7Ozs7O047Ozs7OworMTMzOTtFVEhJT1BJQyBTWUxMQUJMRSBUU1U7TG87MDtMOzs7OztOOzs7OzsKKzEzM0E7RVRISU9QSUMgU1lMTEFCTEUgVFNJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzNCO0VUSElPUElDIFNZTExBQkxFIFRTQUE7TG87MDtMOzs7OztOOzs7OzsKKzEzM0M7RVRISU9QSUMgU1lMTEFCTEUgVFNFRTtMbzswO0w7Ozs7O047Ozs7OworMTMzRDtFVEhJT1BJQyBTWUxMQUJMRSBUU0U7TG87MDtMOzs7OztOOzs7OzsKKzEzM0U7RVRISU9QSUMgU1lMTEFCTEUgVFNPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzNGO0VUSElPUElDIFNZTExBQkxFIFRTV0E7TG87MDtMOzs7OztOOzs7OzsKKzEzNDA7RVRISU9QSUMgU1lMTEFCTEUgVFpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzQxO0VUSElPUElDIFNZTExBQkxFIFRaVTtMbzswO0w7Ozs7O047Ozs7OworMTM0MjtFVEhJT1BJQyBTWUxMQUJMRSBUWkk7TG87MDtMOzs7OztOOzs7OzsKKzEzNDM7RVRISU9QSUMgU1lMTEFCTEUgVFpBQTtMbzswO0w7Ozs7O047Ozs7OworMTM0NDtFVEhJT1BJQyBTWUxMQUJMRSBUWkVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzQ1O0VUSElPUElDIFNZTExBQkxFIFRaRTtMbzswO0w7Ozs7O047Ozs7OworMTM0NjtFVEhJT1BJQyBTWUxMQUJMRSBUWk87TG87MDtMOzs7OztOOzs7OzsKKzEzNDg7RVRISU9QSUMgU1lMTEFCTEUgRkE7TG87MDtMOzs7OztOOzs7OzsKKzEzNDk7RVRISU9QSUMgU1lMTEFCTEUgRlU7TG87MDtMOzs7OztOOzs7OzsKKzEzNEE7RVRISU9QSUMgU1lMTEFCTEUgRkk7TG87MDtMOzs7OztOOzs7OzsKKzEzNEI7RVRISU9QSUMgU1lMTEFCTEUgRkFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzRDO0VUSElPUElDIFNZTExBQkxFIEZFRTtMbzswO0w7Ozs7O047Ozs7OworMTM0RDtFVEhJT1BJQyBTWUxMQUJMRSBGRTtMbzswO0w7Ozs7O047Ozs7OworMTM0RTtFVEhJT1BJQyBTWUxMQUJMRSBGTztMbzswO0w7Ozs7O047Ozs7OworMTM0RjtFVEhJT1BJQyBTWUxMQUJMRSBGV0E7TG87MDtMOzs7OztOOzs7OzsKKzEzNTA7RVRISU9QSUMgU1lMTEFCTEUgUEE7TG87MDtMOzs7OztOOzs7OzsKKzEzNTE7RVRISU9QSUMgU1lMTEFCTEUgUFU7TG87MDtMOzs7OztOOzs7OzsKKzEzNTI7RVRISU9QSUMgU1lMTEFCTEUgUEk7TG87MDtMOzs7OztOOzs7OzsKKzEzNTM7RVRISU9QSUMgU1lMTEFCTEUgUEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzU0O0VUSElPUElDIFNZTExBQkxFIFBFRTtMbzswO0w7Ozs7O047Ozs7OworMTM1NTtFVEhJT1BJQyBTWUxMQUJMRSBQRTtMbzswO0w7Ozs7O047Ozs7OworMTM1NjtFVEhJT1BJQyBTWUxMQUJMRSBQTztMbzswO0w7Ozs7O047Ozs7OworMTM1NztFVEhJT1BJQyBTWUxMQUJMRSBQV0E7TG87MDtMOzs7OztOOzs7OzsKKzEzNTg7RVRISU9QSUMgU1lMTEFCTEUgUllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzU5O0VUSElPUElDIFNZTExBQkxFIE1ZQTtMbzswO0w7Ozs7O047Ozs7OworMTM1QTtFVEhJT1BJQyBTWUxMQUJMRSBGWUE7TG87MDtMOzs7OztOOzs7OzsKKzEzNjE7RVRISU9QSUMgV09SRFNQQUNFO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxMzYyO0VUSElPUElDIEZVTEwgU1RPUDtQbzswO0w7Ozs7O047Ozs7OworMTM2MztFVEhJT1BJQyBDT01NQTtQbzswO0w7Ozs7O047Ozs7OworMTM2NDtFVEhJT1BJQyBTRU1JQ09MT047UG87MDtMOzs7OztOOzs7OzsKKzEzNjU7RVRISU9QSUMgQ09MT047UG87MDtMOzs7OztOOzs7OzsKKzEzNjY7RVRISU9QSUMgUFJFRkFDRSBDT0xPTjtQbzswO0w7Ozs7O047Ozs7OworMTM2NztFVEhJT1BJQyBRVUVTVElPTiBNQVJLO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxMzY4O0VUSElPUElDIFBBUkFHUkFQSCBTRVBBUkFUT1I7UG87MDtMOzs7OztOOzs7OzsKKzEzNjk7RVRISU9QSUMgRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CisxMzZBO0VUSElPUElDIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMTM2QjtFVEhJT1BJQyBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMTM2QztFVEhJT1BJQyBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CisxMzZEO0VUSElPUElDIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzEzNkU7RVRISU9QSUMgRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CisxMzZGO0VUSElPUElDIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CisxMzcwO0VUSElPUElDIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CisxMzcxO0VUSElPUElDIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzEzNzI7RVRISU9QSUMgTlVNQkVSIFRFTjtObzswO0w7Ozs7MTA7Tjs7Ozs7CisxMzczO0VUSElPUElDIE5VTUJFUiBUV0VOVFk7Tm87MDtMOzs7OzIwO047Ozs7OworMTM3NDtFVEhJT1BJQyBOVU1CRVIgVEhJUlRZO05vOzA7TDs7OzszMDtOOzs7OzsKKzEzNzU7RVRISU9QSUMgTlVNQkVSIEZPUlRZO05vOzA7TDs7Ozs0MDtOOzs7OzsKKzEzNzY7RVRISU9QSUMgTlVNQkVSIEZJRlRZO05vOzA7TDs7Ozs1MDtOOzs7OzsKKzEzNzc7RVRISU9QSUMgTlVNQkVSIFNJWFRZO05vOzA7TDs7Ozs2MDtOOzs7OzsKKzEzNzg7RVRISU9QSUMgTlVNQkVSIFNFVkVOVFk7Tm87MDtMOzs7OzcwO047Ozs7OworMTM3OTtFVEhJT1BJQyBOVU1CRVIgRUlHSFRZO05vOzA7TDs7Ozs4MDtOOzs7OzsKKzEzN0E7RVRISU9QSUMgTlVNQkVSIE5JTkVUWTtObzswO0w7Ozs7OTA7Tjs7Ozs7CisxMzdCO0VUSElPUElDIE5VTUJFUiBIVU5EUkVEO05vOzA7TDs7OzsxMDA7Tjs7Ozs7CisxMzdDO0VUSElPUElDIE5VTUJFUiBURU4gVEhPVVNBTkQ7Tm87MDtMOzs7OzEwMDAwO047Ozs7OworMTNBMDtDSEVST0tFRSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMTNBMTtDSEVST0tFRSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMTNBMjtDSEVST0tFRSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMTNBMztDSEVST0tFRSBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMTNBNDtDSEVST0tFRSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMTNBNTtDSEVST0tFRSBMRVRURVIgVjtMbzswO0w7Ozs7O047Ozs7OworMTNBNjtDSEVST0tFRSBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzEzQTc7Q0hFUk9LRUUgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0E4O0NIRVJPS0VFIExFVFRFUiBHRTtMbzswO0w7Ozs7O047Ozs7OworMTNBOTtDSEVST0tFRSBMRVRURVIgR0k7TG87MDtMOzs7OztOOzs7OzsKKzEzQUE7Q0hFUk9LRUUgTEVUVEVSIEdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0FCO0NIRVJPS0VFIExFVFRFUiBHVTtMbzswO0w7Ozs7O047Ozs7OworMTNBQztDSEVST0tFRSBMRVRURVIgR1Y7TG87MDtMOzs7OztOOzs7OzsKKzEzQUQ7Q0hFUk9LRUUgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0FFO0NIRVJPS0VFIExFVFRFUiBIRTtMbzswO0w7Ozs7O047Ozs7OworMTNBRjtDSEVST0tFRSBMRVRURVIgSEk7TG87MDtMOzs7OztOOzs7OzsKKzEzQjA7Q0hFUk9LRUUgTEVUVEVSIEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0IxO0NIRVJPS0VFIExFVFRFUiBIVTtMbzswO0w7Ozs7O047Ozs7OworMTNCMjtDSEVST0tFRSBMRVRURVIgSFY7TG87MDtMOzs7OztOOzs7OzsKKzEzQjM7Q0hFUk9LRUUgTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0I0O0NIRVJPS0VFIExFVFRFUiBMRTtMbzswO0w7Ozs7O047Ozs7OworMTNCNTtDSEVST0tFRSBMRVRURVIgTEk7TG87MDtMOzs7OztOOzs7OzsKKzEzQjY7Q0hFUk9LRUUgTEVUVEVSIExPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0I3O0NIRVJPS0VFIExFVFRFUiBMVTtMbzswO0w7Ozs7O047Ozs7OworMTNCODtDSEVST0tFRSBMRVRURVIgTFY7TG87MDtMOzs7OztOOzs7OzsKKzEzQjk7Q0hFUk9LRUUgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0JBO0NIRVJPS0VFIExFVFRFUiBNRTtMbzswO0w7Ozs7O047Ozs7OworMTNCQjtDSEVST0tFRSBMRVRURVIgTUk7TG87MDtMOzs7OztOOzs7OzsKKzEzQkM7Q0hFUk9LRUUgTEVUVEVSIE1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0JEO0NIRVJPS0VFIExFVFRFUiBNVTtMbzswO0w7Ozs7O047Ozs7OworMTNCRTtDSEVST0tFRSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzEzQkY7Q0hFUk9LRUUgTEVUVEVSIEhOQTtMbzswO0w7Ozs7O047Ozs7OworMTNDMDtDSEVST0tFRSBMRVRURVIgTkFIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0MxO0NIRVJPS0VFIExFVFRFUiBORTtMbzswO0w7Ozs7O047Ozs7OworMTNDMjtDSEVST0tFRSBMRVRURVIgTkk7TG87MDtMOzs7OztOOzs7OzsKKzEzQzM7Q0hFUk9LRUUgTEVUVEVSIE5PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0M0O0NIRVJPS0VFIExFVFRFUiBOVTtMbzswO0w7Ozs7O047Ozs7OworMTNDNTtDSEVST0tFRSBMRVRURVIgTlY7TG87MDtMOzs7OztOOzs7OzsKKzEzQzY7Q0hFUk9LRUUgTEVUVEVSIFFVQTtMbzswO0w7Ozs7O047Ozs7OworMTNDNztDSEVST0tFRSBMRVRURVIgUVVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0M4O0NIRVJPS0VFIExFVFRFUiBRVUk7TG87MDtMOzs7OztOOzs7OzsKKzEzQzk7Q0hFUk9LRUUgTEVUVEVSIFFVTztMbzswO0w7Ozs7O047Ozs7OworMTNDQTtDSEVST0tFRSBMRVRURVIgUVVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0NCO0NIRVJPS0VFIExFVFRFUiBRVVY7TG87MDtMOzs7OztOOzs7OzsKKzEzQ0M7Q0hFUk9LRUUgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0NEO0NIRVJPS0VFIExFVFRFUiBTO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0NFO0NIRVJPS0VFIExFVFRFUiBTRTtMbzswO0w7Ozs7O047Ozs7OworMTNDRjtDSEVST0tFRSBMRVRURVIgU0k7TG87MDtMOzs7OztOOzs7OzsKKzEzRDA7Q0hFUk9LRUUgTEVUVEVSIFNPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0QxO0NIRVJPS0VFIExFVFRFUiBTVTtMbzswO0w7Ozs7O047Ozs7OworMTNEMjtDSEVST0tFRSBMRVRURVIgU1Y7TG87MDtMOzs7OztOOzs7OzsKKzEzRDM7Q0hFUk9LRUUgTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0Q0O0NIRVJPS0VFIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMTNENTtDSEVST0tFRSBMRVRURVIgREU7TG87MDtMOzs7OztOOzs7OzsKKzEzRDY7Q0hFUk9LRUUgTEVUVEVSIFRFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0Q3O0NIRVJPS0VFIExFVFRFUiBESTtMbzswO0w7Ozs7O047Ozs7OworMTNEODtDSEVST0tFRSBMRVRURVIgVEk7TG87MDtMOzs7OztOOzs7OzsKKzEzRDk7Q0hFUk9LRUUgTEVUVEVSIERPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0RBO0NIRVJPS0VFIExFVFRFUiBEVTtMbzswO0w7Ozs7O047Ozs7OworMTNEQjtDSEVST0tFRSBMRVRURVIgRFY7TG87MDtMOzs7OztOOzs7OzsKKzEzREM7Q0hFUk9LRUUgTEVUVEVSIERMQTtMbzswO0w7Ozs7O047Ozs7OworMTNERDtDSEVST0tFRSBMRVRURVIgVExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0RFO0NIRVJPS0VFIExFVFRFUiBUTEU7TG87MDtMOzs7OztOOzs7OzsKKzEzREY7Q0hFUk9LRUUgTEVUVEVSIFRMSTtMbzswO0w7Ozs7O047Ozs7OworMTNFMDtDSEVST0tFRSBMRVRURVIgVExPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0UxO0NIRVJPS0VFIExFVFRFUiBUTFU7TG87MDtMOzs7OztOOzs7OzsKKzEzRTI7Q0hFUk9LRUUgTEVUVEVSIFRMVjtMbzswO0w7Ozs7O047Ozs7OworMTNFMztDSEVST0tFRSBMRVRURVIgVFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0U0O0NIRVJPS0VFIExFVFRFUiBUU0U7TG87MDtMOzs7OztOOzs7OzsKKzEzRTU7Q0hFUk9LRUUgTEVUVEVSIFRTSTtMbzswO0w7Ozs7O047Ozs7OworMTNFNjtDSEVST0tFRSBMRVRURVIgVFNPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0U3O0NIRVJPS0VFIExFVFRFUiBUU1U7TG87MDtMOzs7OztOOzs7OzsKKzEzRTg7Q0hFUk9LRUUgTEVUVEVSIFRTVjtMbzswO0w7Ozs7O047Ozs7OworMTNFOTtDSEVST0tFRSBMRVRURVIgV0E7TG87MDtMOzs7OztOOzs7OzsKKzEzRUE7Q0hFUk9LRUUgTEVUVEVSIFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0VCO0NIRVJPS0VFIExFVFRFUiBXSTtMbzswO0w7Ozs7O047Ozs7OworMTNFQztDSEVST0tFRSBMRVRURVIgV087TG87MDtMOzs7OztOOzs7OzsKKzEzRUQ7Q0hFUk9LRUUgTEVUVEVSIFdVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0VFO0NIRVJPS0VFIExFVFRFUiBXVjtMbzswO0w7Ozs7O047Ozs7OworMTNFRjtDSEVST0tFRSBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzEzRjA7Q0hFUk9LRUUgTEVUVEVSIFlFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0YxO0NIRVJPS0VFIExFVFRFUiBZSTtMbzswO0w7Ozs7O047Ozs7OworMTNGMjtDSEVST0tFRSBMRVRURVIgWU87TG87MDtMOzs7OztOOzs7OzsKKzEzRjM7Q0hFUk9LRUUgTEVUVEVSIFlVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0Y0O0NIRVJPS0VFIExFVFRFUiBZVjtMbzswO0w7Ozs7O047Ozs7OworMTQwMTtDQU5BRElBTiBTWUxMQUJJQ1MgRTtMbzswO0w7Ozs7O047Ozs7OworMTQwMjtDQU5BRElBTiBTWUxMQUJJQ1MgQUFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDAzO0NBTkFESUFOIFNZTExBQklDUyBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDA0O0NBTkFESUFOIFNZTExBQklDUyBJSTtMbzswO0w7Ozs7O047Ozs7OworMTQwNTtDQU5BRElBTiBTWUxMQUJJQ1MgTztMbzswO0w7Ozs7O047Ozs7OworMTQwNjtDQU5BRElBTiBTWUxMQUJJQ1MgT087TG87MDtMOzs7OztOOzs7OzsKKzE0MDc7Q0FOQURJQU4gU1lMTEFCSUNTIFktQ1JFRSBPTztMbzswO0w7Ozs7O047Ozs7OworMTQwODtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBFRTtMbzswO0w7Ozs7O047Ozs7OworMTQwOTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDBBO0NBTkFESUFOIFNZTExBQklDUyBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDBCO0NBTkFESUFOIFNZTExBQklDUyBBQTtMbzswO0w7Ozs7O047Ozs7OworMTQwQztDQU5BRElBTiBTWUxMQUJJQ1MgV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0MEQ7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBXRTtMbzswO0w7Ozs7O047Ozs7OworMTQwRTtDQU5BRElBTiBTWUxMQUJJQ1MgV0k7TG87MDtMOzs7OztOOzs7OzsKKzE0MEY7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBXSTtMbzswO0w7Ozs7O047Ozs7OworMTQxMDtDQU5BRElBTiBTWUxMQUJJQ1MgV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDExO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDEyO0NBTkFESUFOIFNZTExBQklDUyBXTztMbzswO0w7Ozs7O047Ozs7OworMTQxMztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDE0O0NBTkFESUFOIFNZTExBQklDUyBXT087TG87MDtMOzs7OztOOzs7OzsKKzE0MTU7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBXT087TG87MDtMOzs7OztOOzs7OzsKKzE0MTY7Q0FOQURJQU4gU1lMTEFCSUNTIE5BU0tBUEkgV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDE3O0NBTkFESUFOIFNZTExBQklDUyBXQTtMbzswO0w7Ozs7O047Ozs7OworMTQxODtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDE5O0NBTkFESUFOIFNZTExBQklDUyBXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0MUE7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0MUI7Q0FOQURJQU4gU1lMTEFCSUNTIE5BU0tBUEkgV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDFDO0NBTkFESUFOIFNZTExBQklDUyBBSTtMbzswO0w7Ozs7O047Ozs7OworMTQxRDtDQU5BRElBTiBTWUxMQUJJQ1MgWS1DUkVFIFc7TG87MDtMOzs7OztOOzs7OzsKKzE0MUU7Q0FOQURJQU4gU1lMTEFCSUNTIEdMT1RUQUwgU1RPUDtMbzswO0w7Ozs7O047Ozs7OworMTQxRjtDQU5BRElBTiBTWUxMQUJJQ1MgRklOQUwgQUNVVEU7TG87MDtMOzs7OztOOzs7OzsKKzE0MjA7Q0FOQURJQU4gU1lMTEFCSUNTIEZJTkFMIEdSQVZFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDIxO0NBTkFESUFOIFNZTExBQklDUyBGSU5BTCBCT1RUT00gSEFMRiBSSU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDIyO0NBTkFESUFOIFNZTExBQklDUyBGSU5BTCBUT1AgSEFMRiBSSU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDIzO0NBTkFESUFOIFNZTExBQklDUyBGSU5BTCBSSUdIVCBIQUxGIFJJTkc7TG87MDtMOzs7OztOOzs7OzsKKzE0MjQ7Q0FOQURJQU4gU1lMTEFCSUNTIEZJTkFMIFJJTkc7TG87MDtMOzs7OztOOzs7OzsKKzE0MjU7Q0FOQURJQU4gU1lMTEFCSUNTIEZJTkFMIERPVUJMRSBBQ1VURTtMbzswO0w7Ozs7O047Ozs7OworMTQyNjtDQU5BRElBTiBTWUxMQUJJQ1MgRklOQUwgRE9VQkxFIFNIT1JUIFZFUlRJQ0FMIFNUUk9LRVM7TG87MDtMOzs7OztOOzs7OzsKKzE0Mjc7Q0FOQURJQU4gU1lMTEFCSUNTIEZJTkFMIE1JRERMRSBET1Q7TG87MDtMOzs7OztOOzs7OzsKKzE0Mjg7Q0FOQURJQU4gU1lMTEFCSUNTIEZJTkFMIFNIT1JUIEhPUklaT05UQUwgU1RST0tFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDI5O0NBTkFESUFOIFNZTExBQklDUyBGSU5BTCBQTFVTO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDJBO0NBTkFESUFOIFNZTExBQklDUyBGSU5BTCBET1dOIFRBQ0s7TG87MDtMOzs7OztOOzs7OzsKKzE0MkI7Q0FOQURJQU4gU1lMTEFCSUNTIEVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDJDO0NBTkFESUFOIFNZTExBQklDUyBJTjtMbzswO0w7Ozs7O047Ozs7OworMTQyRDtDQU5BRElBTiBTWUxMQUJJQ1MgT047TG87MDtMOzs7OztOOzs7OzsKKzE0MkU7Q0FOQURJQU4gU1lMTEFCSUNTIEFOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDJGO0NBTkFESUFOIFNZTExBQklDUyBQRTtMbzswO0w7Ozs7O047Ozs7OworMTQzMDtDQU5BRElBTiBTWUxMQUJJQ1MgUEFBSTtMbzswO0w7Ozs7O047Ozs7OworMTQzMTtDQU5BRElBTiBTWUxMQUJJQ1MgUEk7TG87MDtMOzs7OztOOzs7OzsKKzE0MzI7Q0FOQURJQU4gU1lMTEFCSUNTIFBJSTtMbzswO0w7Ozs7O047Ozs7OworMTQzMztDQU5BRElBTiBTWUxMQUJJQ1MgUE87TG87MDtMOzs7OztOOzs7OzsKKzE0MzQ7Q0FOQURJQU4gU1lMTEFCSUNTIFBPTztMbzswO0w7Ozs7O047Ozs7OworMTQzNTtDQU5BRElBTiBTWUxMQUJJQ1MgWS1DUkVFIFBPTztMbzswO0w7Ozs7O047Ozs7OworMTQzNjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBIRUU7TG87MDtMOzs7OztOOzs7OzsKKzE0Mzc7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSEk7TG87MDtMOzs7OztOOzs7OzsKKzE0Mzg7Q0FOQURJQU4gU1lMTEFCSUNTIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDM5O0NBTkFESUFOIFNZTExBQklDUyBQQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0M0E7Q0FOQURJQU4gU1lMTEFCSUNTIFBXRTtMbzswO0w7Ozs7O047Ozs7OworMTQzQjtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFBXRTtMbzswO0w7Ozs7O047Ozs7OworMTQzQztDQU5BRElBTiBTWUxMQUJJQ1MgUFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDNEO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgUFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDNFO0NBTkFESUFOIFNZTExBQklDUyBQV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDNGO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgUFdJSTtMbzswO0w7Ozs7O047Ozs7OworMTQ0MDtDQU5BRElBTiBTWUxMQUJJQ1MgUFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDQxO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgUFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDQyO0NBTkFESUFOIFNZTExBQklDUyBQV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDQzO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgUFdPTztMbzswO0w7Ozs7O047Ozs7OworMTQ0NDtDQU5BRElBTiBTWUxMQUJJQ1MgUFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDQ1O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgUFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDQ2O0NBTkFESUFOIFNZTExBQklDUyBQV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDQ3O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgUFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTQ0ODtDQU5BRElBTiBTWUxMQUJJQ1MgWS1DUkVFIFBXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0NDk7Q0FOQURJQU4gU1lMTEFCSUNTIFA7TG87MDtMOzs7OztOOzs7OzsKKzE0NEE7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDRCO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEg7TG87MDtMOzs7OztOOzs7OzsKKzE0NEM7Q0FOQURJQU4gU1lMTEFCSUNTIFRFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDREO0NBTkFESUFOIFNZTExBQklDUyBUQUFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDRFO0NBTkFESUFOIFNZTExBQklDUyBUSTtMbzswO0w7Ozs7O047Ozs7OworMTQ0RjtDQU5BRElBTiBTWUxMQUJJQ1MgVElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDUwO0NBTkFESUFOIFNZTExBQklDUyBUTztMbzswO0w7Ozs7O047Ozs7OworMTQ1MTtDQU5BRElBTiBTWUxMQUJJQ1MgVE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDUyO0NBTkFESUFOIFNZTExBQklDUyBZLUNSRUUgVE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDUzO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIERFRTtMbzswO0w7Ozs7O047Ozs7OworMTQ1NDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBESTtMbzswO0w7Ozs7O047Ozs7OworMTQ1NTtDQU5BRElBTiBTWUxMQUJJQ1MgVEE7TG87MDtMOzs7OztOOzs7OzsKKzE0NTY7Q0FOQURJQU4gU1lMTEFCSUNTIFRBQTtMbzswO0w7Ozs7O047Ozs7OworMTQ1NztDQU5BRElBTiBTWUxMQUJJQ1MgVFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDU4O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgVFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDU5O0NBTkFESUFOIFNZTExBQklDUyBUV0k7TG87MDtMOzs7OztOOzs7OzsKKzE0NUE7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBUV0k7TG87MDtMOzs7OztOOzs7OzsKKzE0NUI7Q0FOQURJQU4gU1lMTEFCSUNTIFRXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0NUM7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBUV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDVEO0NBTkFESUFOIFNZTExBQklDUyBUV087TG87MDtMOzs7OztOOzs7OzsKKzE0NUU7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBUV087TG87MDtMOzs7OztOOzs7OzsKKzE0NUY7Q0FOQURJQU4gU1lMTEFCSUNTIFRXT087TG87MDtMOzs7OztOOzs7OzsKKzE0NjA7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBUV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDYxO0NBTkFESUFOIFNZTExBQklDUyBUV0E7TG87MDtMOzs7OztOOzs7OzsKKzE0NjI7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBUV0E7TG87MDtMOzs7OztOOzs7OzsKKzE0NjM7Q0FOQURJQU4gU1lMTEFCSUNTIFRXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0NjQ7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBUV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDY1O0NBTkFESUFOIFNZTExBQklDUyBOQVNLQVBJIFRXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0NjY7Q0FOQURJQU4gU1lMTEFCSUNTIFQ7TG87MDtMOzs7OztOOzs7OzsKKzE0Njc7Q0FOQURJQU4gU1lMTEFCSUNTIFRURTtMbzswO0w7Ozs7O047Ozs7OworMTQ2ODtDQU5BRElBTiBTWUxMQUJJQ1MgVFRJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDY5O0NBTkFESUFOIFNZTExBQklDUyBUVE87TG87MDtMOzs7OztOOzs7OzsKKzE0NkE7Q0FOQURJQU4gU1lMTEFCSUNTIFRUQTtMbzswO0w7Ozs7O047Ozs7OworMTQ2QjtDQU5BRElBTiBTWUxMQUJJQ1MgS0U7TG87MDtMOzs7OztOOzs7OzsKKzE0NkM7Q0FOQURJQU4gU1lMTEFCSUNTIEtBQUk7TG87MDtMOzs7OztOOzs7OzsKKzE0NkQ7Q0FOQURJQU4gU1lMTEFCSUNTIEtJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDZFO0NBTkFESUFOIFNZTExBQklDUyBLSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0NkY7Q0FOQURJQU4gU1lMTEFCSUNTIEtPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDcwO0NBTkFESUFOIFNZTExBQklDUyBLT087TG87MDtMOzs7OztOOzs7OzsKKzE0NzE7Q0FOQURJQU4gU1lMTEFCSUNTIFktQ1JFRSBLT087TG87MDtMOzs7OztOOzs7OzsKKzE0NzI7Q0FOQURJQU4gU1lMTEFCSUNTIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDczO0NBTkFESUFOIFNZTExBQklDUyBLQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0NzQ7Q0FOQURJQU4gU1lMTEFCSUNTIEtXRTtMbzswO0w7Ozs7O047Ozs7OworMTQ3NTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIEtXRTtMbzswO0w7Ozs7O047Ozs7OworMTQ3NjtDQU5BRElBTiBTWUxMQUJJQ1MgS1dJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDc3O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgS1dJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDc4O0NBTkFESUFOIFNZTExBQklDUyBLV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDc5O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgS1dJSTtMbzswO0w7Ozs7O047Ozs7OworMTQ3QTtDQU5BRElBTiBTWUxMQUJJQ1MgS1dPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDdCO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgS1dPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDdDO0NBTkFESUFOIFNZTExBQklDUyBLV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDdEO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgS1dPTztMbzswO0w7Ozs7O047Ozs7OworMTQ3RTtDQU5BRElBTiBTWUxMQUJJQ1MgS1dBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDdGO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgS1dBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDgwO0NBTkFESUFOIFNZTExBQklDUyBLV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDgxO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgS1dBQTtMbzswO0w7Ozs7O047Ozs7OworMTQ4MjtDQU5BRElBTiBTWUxMQUJJQ1MgTkFTS0FQSSBLV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDgzO0NBTkFESUFOIFNZTExBQklDUyBLO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDg0O0NBTkFESUFOIFNZTExBQklDUyBLVztMbzswO0w7Ozs7O047Ozs7OworMTQ4NTtDQU5BRElBTiBTWUxMQUJJQ1MgU09VVEgtU0xBVkVZIEtFSDtMbzswO0w7Ozs7O047Ozs7OworMTQ4NjtDQU5BRElBTiBTWUxMQUJJQ1MgU09VVEgtU0xBVkVZIEtJSDtMbzswO0w7Ozs7O047Ozs7OworMTQ4NztDQU5BRElBTiBTWUxMQUJJQ1MgU09VVEgtU0xBVkVZIEtPSDtMbzswO0w7Ozs7O047Ozs7OworMTQ4ODtDQU5BRElBTiBTWUxMQUJJQ1MgU09VVEgtU0xBVkVZIEtBSDtMbzswO0w7Ozs7O047Ozs7OworMTQ4OTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0U7TG87MDtMOzs7OztOOzs7OzsKKzE0OEE7Q0FOQURJQU4gU1lMTEFCSUNTIENBQUk7TG87MDtMOzs7OztOOzs7OzsKKzE0OEI7Q0FOQURJQU4gU1lMTEFCSUNTIENJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDhDO0NBTkFESUFOIFNZTExBQklDUyBDSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0OEQ7Q0FOQURJQU4gU1lMTEFCSUNTIENPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDhFO0NBTkFESUFOIFNZTExBQklDUyBDT087TG87MDtMOzs7OztOOzs7OzsKKzE0OEY7Q0FOQURJQU4gU1lMTEFCSUNTIFktQ1JFRSBDT087TG87MDtMOzs7OztOOzs7OzsKKzE0OTA7Q0FOQURJQU4gU1lMTEFCSUNTIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDkxO0NBTkFESUFOIFNZTExBQklDUyBDQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0OTI7Q0FOQURJQU4gU1lMTEFCSUNTIENXRTtMbzswO0w7Ozs7O047Ozs7OworMTQ5MztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIENXRTtMbzswO0w7Ozs7O047Ozs7OworMTQ5NDtDQU5BRElBTiBTWUxMQUJJQ1MgQ1dJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDk1O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgQ1dJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDk2O0NBTkFESUFOIFNZTExBQklDUyBDV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDk3O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgQ1dJSTtMbzswO0w7Ozs7O047Ozs7OworMTQ5ODtDQU5BRElBTiBTWUxMQUJJQ1MgQ1dPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDk5O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgQ1dPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDlBO0NBTkFESUFOIFNZTExBQklDUyBDV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDlCO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgQ1dPTztMbzswO0w7Ozs7O047Ozs7OworMTQ5QztDQU5BRElBTiBTWUxMQUJJQ1MgQ1dBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDlEO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgQ1dBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDlFO0NBTkFESUFOIFNZTExBQklDUyBDV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDlGO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgQ1dBQTtMbzswO0w7Ozs7O047Ozs7OworMTRBMDtDQU5BRElBTiBTWUxMQUJJQ1MgTkFTS0FQSSBDV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEExO0NBTkFESUFOIFNZTExBQklDUyBDO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEEyO0NBTkFESUFOIFNZTExBQklDUyBTQVlJU0kgVEg7TG87MDtMOzs7OztOOzs7OzsKKzE0QTM7Q0FOQURJQU4gU1lMTEFCSUNTIE1FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEE0O0NBTkFESUFOIFNZTExBQklDUyBNQUFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEE1O0NBTkFESUFOIFNZTExBQklDUyBNSTtMbzswO0w7Ozs7O047Ozs7OworMTRBNjtDQU5BRElBTiBTWUxMQUJJQ1MgTUlJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEE3O0NBTkFESUFOIFNZTExBQklDUyBNTztMbzswO0w7Ozs7O047Ozs7OworMTRBODtDQU5BRElBTiBTWUxMQUJJQ1MgTU9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEE5O0NBTkFESUFOIFNZTExBQklDUyBZLUNSRUUgTU9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEFBO0NBTkFESUFOIFNZTExBQklDUyBNQTtMbzswO0w7Ozs7O047Ozs7OworMTRBQjtDQU5BRElBTiBTWUxMQUJJQ1MgTUFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEFDO0NBTkFESUFOIFNZTExBQklDUyBNV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0QUQ7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBNV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0QUU7Q0FOQURJQU4gU1lMTEFCSUNTIE1XSTtMbzswO0w7Ozs7O047Ozs7OworMTRBRjtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIE1XSTtMbzswO0w7Ozs7O047Ozs7OworMTRCMDtDQU5BRElBTiBTWUxMQUJJQ1MgTVdJSTtMbzswO0w7Ozs7O047Ozs7OworMTRCMTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIE1XSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0QjI7Q0FOQURJQU4gU1lMTEFCSUNTIE1XTztMbzswO0w7Ozs7O047Ozs7OworMTRCMztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIE1XTztMbzswO0w7Ozs7O047Ozs7OworMTRCNDtDQU5BRElBTiBTWUxMQUJJQ1MgTVdPTztMbzswO0w7Ozs7O047Ozs7OworMTRCNTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIE1XT087TG87MDtMOzs7OztOOzs7OzsKKzE0QjY7Q0FOQURJQU4gU1lMTEFCSUNTIE1XQTtMbzswO0w7Ozs7O047Ozs7OworMTRCNztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIE1XQTtMbzswO0w7Ozs7O047Ozs7OworMTRCODtDQU5BRElBTiBTWUxMQUJJQ1MgTVdBQTtMbzswO0w7Ozs7O047Ozs7OworMTRCOTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIE1XQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0QkE7Q0FOQURJQU4gU1lMTEFCSUNTIE5BU0tBUEkgTVdBQTtMbzswO0w7Ozs7O047Ozs7OworMTRCQjtDQU5BRElBTiBTWUxMQUJJQ1MgTTtMbzswO0w7Ozs7O047Ozs7OworMTRCQztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIE07TG87MDtMOzs7OztOOzs7OzsKKzE0QkQ7Q0FOQURJQU4gU1lMTEFCSUNTIE1IO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEJFO0NBTkFESUFOIFNZTExBQklDUyBBVEhBUEFTQ0FOIE07TG87MDtMOzs7OztOOzs7OzsKKzE0QkY7Q0FOQURJQU4gU1lMTEFCSUNTIFNBWUlTSSBNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEMwO0NBTkFESUFOIFNZTExBQklDUyBORTtMbzswO0w7Ozs7O047Ozs7OworMTRDMTtDQU5BRElBTiBTWUxMQUJJQ1MgTkFBSTtMbzswO0w7Ozs7O047Ozs7OworMTRDMjtDQU5BRElBTiBTWUxMQUJJQ1MgTkk7TG87MDtMOzs7OztOOzs7OzsKKzE0QzM7Q0FOQURJQU4gU1lMTEFCSUNTIE5JSTtMbzswO0w7Ozs7O047Ozs7OworMTRDNDtDQU5BRElBTiBTWUxMQUJJQ1MgTk87TG87MDtMOzs7OztOOzs7OzsKKzE0QzU7Q0FOQURJQU4gU1lMTEFCSUNTIE5PTztMbzswO0w7Ozs7O047Ozs7OworMTRDNjtDQU5BRElBTiBTWUxMQUJJQ1MgWS1DUkVFIE5PTztMbzswO0w7Ozs7O047Ozs7OworMTRDNztDQU5BRElBTiBTWUxMQUJJQ1MgTkE7TG87MDtMOzs7OztOOzs7OzsKKzE0Qzg7Q0FOQURJQU4gU1lMTEFCSUNTIE5BQTtMbzswO0w7Ozs7O047Ozs7OworMTRDOTtDQU5BRElBTiBTWUxMQUJJQ1MgTldFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNENBO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTldFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNENCO0NBTkFESUFOIFNZTExBQklDUyBOV0E7TG87MDtMOzs7OztOOzs7OzsKKzE0Q0M7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBOV0E7TG87MDtMOzs7OztOOzs7OzsKKzE0Q0Q7Q0FOQURJQU4gU1lMTEFCSUNTIE5XQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0Q0U7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBOV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNENGO0NBTkFESUFOIFNZTExBQklDUyBOQVNLQVBJIE5XQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0RDA7Q0FOQURJQU4gU1lMTEFCSUNTIE47TG87MDtMOzs7OztOOzs7OzsKKzE0RDE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTkc7TG87MDtMOzs7OztOOzs7OzsKKzE0RDI7Q0FOQURJQU4gU1lMTEFCSUNTIE5IO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEQzO0NBTkFESUFOIFNZTExBQklDUyBMRTtMbzswO0w7Ozs7O047Ozs7OworMTRENDtDQU5BRElBTiBTWUxMQUJJQ1MgTEFBSTtMbzswO0w7Ozs7O047Ozs7OworMTRENTtDQU5BRElBTiBTWUxMQUJJQ1MgTEk7TG87MDtMOzs7OztOOzs7OzsKKzE0RDY7Q0FOQURJQU4gU1lMTEFCSUNTIExJSTtMbzswO0w7Ozs7O047Ozs7OworMTRENztDQU5BRElBTiBTWUxMQUJJQ1MgTE87TG87MDtMOzs7OztOOzs7OzsKKzE0RDg7Q0FOQURJQU4gU1lMTEFCSUNTIExPTztMbzswO0w7Ozs7O047Ozs7OworMTREOTtDQU5BRElBTiBTWUxMQUJJQ1MgWS1DUkVFIExPTztMbzswO0w7Ozs7O047Ozs7OworMTREQTtDQU5BRElBTiBTWUxMQUJJQ1MgTEE7TG87MDtMOzs7OztOOzs7OzsKKzE0REI7Q0FOQURJQU4gU1lMTEFCSUNTIExBQTtMbzswO0w7Ozs7O047Ozs7OworMTREQztDQU5BRElBTiBTWUxMQUJJQ1MgTFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEREO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNERFO0NBTkFESUFOIFNZTExBQklDUyBMV0k7TG87MDtMOzs7OztOOzs7OzsKKzE0REY7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBMV0k7TG87MDtMOzs7OztOOzs7OzsKKzE0RTA7Q0FOQURJQU4gU1lMTEFCSUNTIExXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0RTE7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBMV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEUyO0NBTkFESUFOIFNZTExBQklDUyBMV087TG87MDtMOzs7OztOOzs7OzsKKzE0RTM7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBMV087TG87MDtMOzs7OztOOzs7OzsKKzE0RTQ7Q0FOQURJQU4gU1lMTEFCSUNTIExXT087TG87MDtMOzs7OztOOzs7OzsKKzE0RTU7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBMV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEU2O0NBTkFESUFOIFNZTExBQklDUyBMV0E7TG87MDtMOzs7OztOOzs7OzsKKzE0RTc7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBMV0E7TG87MDtMOzs7OztOOzs7OzsKKzE0RTg7Q0FOQURJQU4gU1lMTEFCSUNTIExXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0RTk7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBMV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEVBO0NBTkFESUFOIFNZTExBQklDUyBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEVCO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTDtMbzswO0w7Ozs7O047Ozs7OworMTRFQztDQU5BRElBTiBTWUxMQUJJQ1MgTUVESUFMIEw7TG87MDtMOzs7OztOOzs7OzsKKzE0RUQ7Q0FOQURJQU4gU1lMTEFCSUNTIFNFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEVFO0NBTkFESUFOIFNZTExBQklDUyBTQUFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEVGO0NBTkFESUFOIFNZTExBQklDUyBTSTtMbzswO0w7Ozs7O047Ozs7OworMTRGMDtDQU5BRElBTiBTWUxMQUJJQ1MgU0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEYxO0NBTkFESUFOIFNZTExBQklDUyBTTztMbzswO0w7Ozs7O047Ozs7OworMTRGMjtDQU5BRElBTiBTWUxMQUJJQ1MgU09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEYzO0NBTkFESUFOIFNZTExBQklDUyBZLUNSRUUgU09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEY0O0NBTkFESUFOIFNZTExBQklDUyBTQTtMbzswO0w7Ozs7O047Ozs7OworMTRGNTtDQU5BRElBTiBTWUxMQUJJQ1MgU0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEY2O0NBTkFESUFOIFNZTExBQklDUyBTV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0Rjc7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBTV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0Rjg7Q0FOQURJQU4gU1lMTEFCSUNTIFNXSTtMbzswO0w7Ozs7O047Ozs7OworMTRGOTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFNXSTtMbzswO0w7Ozs7O047Ozs7OworMTRGQTtDQU5BRElBTiBTWUxMQUJJQ1MgU1dJSTtMbzswO0w7Ozs7O047Ozs7OworMTRGQjtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFNXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0RkM7Q0FOQURJQU4gU1lMTEFCSUNTIFNXTztMbzswO0w7Ozs7O047Ozs7OworMTRGRDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFNXTztMbzswO0w7Ozs7O047Ozs7OworMTRGRTtDQU5BRElBTiBTWUxMQUJJQ1MgU1dPTztMbzswO0w7Ozs7O047Ozs7OworMTRGRjtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFNXT087TG87MDtMOzs7OztOOzs7OzsKKzE1MDA7Q0FOQURJQU4gU1lMTEFCSUNTIFNXQTtMbzswO0w7Ozs7O047Ozs7OworMTUwMTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFNXQTtMbzswO0w7Ozs7O047Ozs7OworMTUwMjtDQU5BRElBTiBTWUxMQUJJQ1MgU1dBQTtMbzswO0w7Ozs7O047Ozs7OworMTUwMztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFNXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1MDQ7Q0FOQURJQU4gU1lMTEFCSUNTIE5BU0tBUEkgU1dBQTtMbzswO0w7Ozs7O047Ozs7OworMTUwNTtDQU5BRElBTiBTWUxMQUJJQ1MgUztMbzswO0w7Ozs7O047Ozs7OworMTUwNjtDQU5BRElBTiBTWUxMQUJJQ1MgQVRIQVBBU0NBTiBTO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTA3O0NBTkFESUFOIFNZTExBQklDUyBTVztMbzswO0w7Ozs7O047Ozs7OworMTUwODtDQU5BRElBTiBTWUxMQUJJQ1MgQkxBQ0tGT09UIFM7TG87MDtMOzs7OztOOzs7OzsKKzE1MDk7Q0FOQURJQU4gU1lMTEFCSUNTIE1PT1NFLUNSRUUgU0s7TG87MDtMOzs7OztOOzs7OzsKKzE1MEE7Q0FOQURJQU4gU1lMTEFCSUNTIE5BU0tBUEkgU0tXO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTBCO0NBTkFESUFOIFNZTExBQklDUyBOQVNLQVBJIFMtVztMbzswO0w7Ozs7O047Ozs7OworMTUwQztDQU5BRElBTiBTWUxMQUJJQ1MgTkFTS0FQSSBTUFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTBEO0NBTkFESUFOIFNZTExBQklDUyBOQVNLQVBJIFNUV0E7TG87MDtMOzs7OztOOzs7OzsKKzE1MEU7Q0FOQURJQU4gU1lMTEFCSUNTIE5BU0tBUEkgU0tXQTtMbzswO0w7Ozs7O047Ozs7OworMTUwRjtDQU5BRElBTiBTWUxMQUJJQ1MgTkFTS0FQSSBTQ1dBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTEwO0NBTkFESUFOIFNZTExBQklDUyBTSEU7TG87MDtMOzs7OztOOzs7OzsKKzE1MTE7Q0FOQURJQU4gU1lMTEFCSUNTIFNISTtMbzswO0w7Ozs7O047Ozs7OworMTUxMjtDQU5BRElBTiBTWUxMQUJJQ1MgU0hJSTtMbzswO0w7Ozs7O047Ozs7OworMTUxMztDQU5BRElBTiBTWUxMQUJJQ1MgU0hPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTE0O0NBTkFESUFOIFNZTExBQklDUyBTSE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTE1O0NBTkFESUFOIFNZTExBQklDUyBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzE1MTY7Q0FOQURJQU4gU1lMTEFCSUNTIFNIQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1MTc7Q0FOQURJQU4gU1lMTEFCSUNTIFNIV0U7TG87MDtMOzs7OztOOzs7OzsKKzE1MTg7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBTSFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTE5O0NBTkFESUFOIFNZTExBQklDUyBTSFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTFBO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgU0hXSTtMbzswO0w7Ozs7O047Ozs7OworMTUxQjtDQU5BRElBTiBTWUxMQUJJQ1MgU0hXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE1MUM7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBTSFdJSTtMbzswO0w7Ozs7O047Ozs7OworMTUxRDtDQU5BRElBTiBTWUxMQUJJQ1MgU0hXTztMbzswO0w7Ozs7O047Ozs7OworMTUxRTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFNIV087TG87MDtMOzs7OztOOzs7OzsKKzE1MUY7Q0FOQURJQU4gU1lMTEFCSUNTIFNIV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTIwO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgU0hXT087TG87MDtMOzs7OztOOzs7OzsKKzE1MjE7Q0FOQURJQU4gU1lMTEFCSUNTIFNIV0E7TG87MDtMOzs7OztOOzs7OzsKKzE1MjI7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBTSFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTIzO0NBTkFESUFOIFNZTExBQklDUyBTSFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTUyNDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFNIV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTI1O0NBTkFESUFOIFNZTExBQklDUyBTSDtMbzswO0w7Ozs7O047Ozs7OworMTUyNjtDQU5BRElBTiBTWUxMQUJJQ1MgWUU7TG87MDtMOzs7OztOOzs7OzsKKzE1Mjc7Q0FOQURJQU4gU1lMTEFCSUNTIFlBQUk7TG87MDtMOzs7OztOOzs7OzsKKzE1Mjg7Q0FOQURJQU4gU1lMTEFCSUNTIFlJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTI5O0NBTkFESUFOIFNZTExBQklDUyBZSUk7TG87MDtMOzs7OztOOzs7OzsKKzE1MkE7Q0FOQURJQU4gU1lMTEFCSUNTIFlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTJCO0NBTkFESUFOIFNZTExBQklDUyBZT087TG87MDtMOzs7OztOOzs7OzsKKzE1MkM7Q0FOQURJQU4gU1lMTEFCSUNTIFktQ1JFRSBZT087TG87MDtMOzs7OztOOzs7OzsKKzE1MkQ7Q0FOQURJQU4gU1lMTEFCSUNTIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTJFO0NBTkFESUFOIFNZTExBQklDUyBZQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1MkY7Q0FOQURJQU4gU1lMTEFCSUNTIFlXRTtMbzswO0w7Ozs7O047Ozs7OworMTUzMDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFlXRTtMbzswO0w7Ozs7O047Ozs7OworMTUzMTtDQU5BRElBTiBTWUxMQUJJQ1MgWVdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTMyO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgWVdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTMzO0NBTkFESUFOIFNZTExBQklDUyBZV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTM0O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgWVdJSTtMbzswO0w7Ozs7O047Ozs7OworMTUzNTtDQU5BRElBTiBTWUxMQUJJQ1MgWVdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTM2O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgWVdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTM3O0NBTkFESUFOIFNZTExBQklDUyBZV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTM4O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgWVdPTztMbzswO0w7Ozs7O047Ozs7OworMTUzOTtDQU5BRElBTiBTWUxMQUJJQ1MgWVdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTNBO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgWVdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTNCO0NBTkFESUFOIFNZTExBQklDUyBZV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTNDO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgWVdBQTtMbzswO0w7Ozs7O047Ozs7OworMTUzRDtDQU5BRElBTiBTWUxMQUJJQ1MgTkFTS0FQSSBZV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTNFO0NBTkFESUFOIFNZTExBQklDUyBZO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTNGO0NBTkFESUFOIFNZTExBQklDUyBCSUJMRS1DUkVFIFk7TG87MDtMOzs7OztOOzs7OzsKKzE1NDA7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBZO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTQxO0NBTkFESUFOIFNZTExBQklDUyBTQVlJU0kgWUk7TG87MDtMOzs7OztOOzs7OzsKKzE1NDI7Q0FOQURJQU4gU1lMTEFCSUNTIFJFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTQzO0NBTkFESUFOIFNZTExBQklDUyBSLUNSRUUgUkU7TG87MDtMOzs7OztOOzs7OzsKKzE1NDQ7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBMRTtMbzswO0w7Ozs7O047Ozs7OworMTU0NTtDQU5BRElBTiBTWUxMQUJJQ1MgUkFBSTtMbzswO0w7Ozs7O047Ozs7OworMTU0NjtDQU5BRElBTiBTWUxMQUJJQ1MgUkk7TG87MDtMOzs7OztOOzs7OzsKKzE1NDc7Q0FOQURJQU4gU1lMTEFCSUNTIFJJSTtMbzswO0w7Ozs7O047Ozs7OworMTU0ODtDQU5BRElBTiBTWUxMQUJJQ1MgUk87TG87MDtMOzs7OztOOzs7OzsKKzE1NDk7Q0FOQURJQU4gU1lMTEFCSUNTIFJPTztMbzswO0w7Ozs7O047Ozs7OworMTU0QTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIExPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTRCO0NBTkFESUFOIFNZTExBQklDUyBSQTtMbzswO0w7Ozs7O047Ozs7OworMTU0QztDQU5BRElBTiBTWUxMQUJJQ1MgUkFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTREO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTEE7TG87MDtMOzs7OztOOzs7OzsKKzE1NEU7Q0FOQURJQU4gU1lMTEFCSUNTIFJXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1NEY7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBSV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTUwO0NBTkFESUFOIFNZTExBQklDUyBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTUxO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgUjtMbzswO0w7Ozs7O047Ozs7OworMTU1MjtDQU5BRElBTiBTWUxMQUJJQ1MgTUVESUFMIFI7TG87MDtMOzs7OztOOzs7OzsKKzE1NTM7Q0FOQURJQU4gU1lMTEFCSUNTIEZFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTU0O0NBTkFESUFOIFNZTExBQklDUyBGQUFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTU1O0NBTkFESUFOIFNZTExBQklDUyBGSTtMbzswO0w7Ozs7O047Ozs7OworMTU1NjtDQU5BRElBTiBTWUxMQUJJQ1MgRklJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTU3O0NBTkFESUFOIFNZTExBQklDUyBGTztMbzswO0w7Ozs7O047Ozs7OworMTU1ODtDQU5BRElBTiBTWUxMQUJJQ1MgRk9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTU5O0NBTkFESUFOIFNZTExBQklDUyBGQTtMbzswO0w7Ozs7O047Ozs7OworMTU1QTtDQU5BRElBTiBTWUxMQUJJQ1MgRkFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTVCO0NBTkFESUFOIFNZTExBQklDUyBGV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTVDO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgRldBQTtMbzswO0w7Ozs7O047Ozs7OworMTU1RDtDQU5BRElBTiBTWUxMQUJJQ1MgRjtMbzswO0w7Ozs7O047Ozs7OworMTU1RTtDQU5BRElBTiBTWUxMQUJJQ1MgVEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTVGO0NBTkFESUFOIFNZTExBQklDUyBOLUNSRUUgVEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTYwO0NBTkFESUFOIFNZTExBQklDUyBUSEk7TG87MDtMOzs7OztOOzs7OzsKKzE1NjE7Q0FOQURJQU4gU1lMTEFCSUNTIE4tQ1JFRSBUSEk7TG87MDtMOzs7OztOOzs7OzsKKzE1NjI7Q0FOQURJQU4gU1lMTEFCSUNTIFRISUk7TG87MDtMOzs7OztOOzs7OzsKKzE1NjM7Q0FOQURJQU4gU1lMTEFCSUNTIE4tQ1JFRSBUSElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTY0O0NBTkFESUFOIFNZTExBQklDUyBUSE87TG87MDtMOzs7OztOOzs7OzsKKzE1NjU7Q0FOQURJQU4gU1lMTEFCSUNTIFRIT087TG87MDtMOzs7OztOOzs7OzsKKzE1NjY7Q0FOQURJQU4gU1lMTEFCSUNTIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMTU2NztDQU5BRElBTiBTWUxMQUJJQ1MgVEhBQTtMbzswO0w7Ozs7O047Ozs7OworMTU2ODtDQU5BRElBTiBTWUxMQUJJQ1MgVEhXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1Njk7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBUSFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTU2QTtDQU5BRElBTiBTWUxMQUJJQ1MgVEg7TG87MDtMOzs7OztOOzs7OzsKKzE1NkI7Q0FOQURJQU4gU1lMTEFCSUNTIFRUSEU7TG87MDtMOzs7OztOOzs7OzsKKzE1NkM7Q0FOQURJQU4gU1lMTEFCSUNTIFRUSEk7TG87MDtMOzs7OztOOzs7OzsKKzE1NkQ7Q0FOQURJQU4gU1lMTEFCSUNTIFRUSE87TG87MDtMOzs7OztOOzs7OzsKKzE1NkU7Q0FOQURJQU4gU1lMTEFCSUNTIFRUSEE7TG87MDtMOzs7OztOOzs7OzsKKzE1NkY7Q0FOQURJQU4gU1lMTEFCSUNTIFRUSDtMbzswO0w7Ozs7O047Ozs7OworMTU3MDtDQU5BRElBTiBTWUxMQUJJQ1MgVFlFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTcxO0NBTkFESUFOIFNZTExBQklDUyBUWUk7TG87MDtMOzs7OztOOzs7OzsKKzE1NzI7Q0FOQURJQU4gU1lMTEFCSUNTIFRZTztMbzswO0w7Ozs7O047Ozs7OworMTU3MztDQU5BRElBTiBTWUxMQUJJQ1MgVFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTc0O0NBTkFESUFOIFNZTExBQklDUyBOVU5BVklLIEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTc1O0NBTkFESUFOIFNZTExBQklDUyBOVU5BVklLIEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTc2O0NBTkFESUFOIFNZTExBQklDUyBOVU5BVklLIEhJSTtMbzswO0w7Ozs7O047Ozs7OworMTU3NztDQU5BRElBTiBTWUxMQUJJQ1MgTlVOQVZJSyBITztMbzswO0w7Ozs7O047Ozs7OworMTU3ODtDQU5BRElBTiBTWUxMQUJJQ1MgTlVOQVZJSyBIT087TG87MDtMOzs7OztOOzs7OzsKKzE1Nzk7Q0FOQURJQU4gU1lMTEFCSUNTIE5VTkFWSUsgSEE7TG87MDtMOzs7OztOOzs7OzsKKzE1N0E7Q0FOQURJQU4gU1lMTEFCSUNTIE5VTkFWSUsgSEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTdCO0NBTkFESUFOIFNZTExBQklDUyBOVU5BVklLIEg7TG87MDtMOzs7OztOOzs7OzsKKzE1N0M7Q0FOQURJQU4gU1lMTEFCSUNTIE5VTkFWVVQgSDtMbzswO0w7Ozs7O047Ozs7OworMTU3RDtDQU5BRElBTiBTWUxMQUJJQ1MgSEs7TG87MDtMOzs7OztOOzs7OzsKKzE1N0U7Q0FOQURJQU4gU1lMTEFCSUNTIFFBQUk7TG87MDtMOzs7OztOOzs7OzsKKzE1N0Y7Q0FOQURJQU4gU1lMTEFCSUNTIFFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTgwO0NBTkFESUFOIFNZTExBQklDUyBRSUk7TG87MDtMOzs7OztOOzs7OzsKKzE1ODE7Q0FOQURJQU4gU1lMTEFCSUNTIFFPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTgyO0NBTkFESUFOIFNZTExBQklDUyBRT087TG87MDtMOzs7OztOOzs7OzsKKzE1ODM7Q0FOQURJQU4gU1lMTEFCSUNTIFFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTg0O0NBTkFESUFOIFNZTExBQklDUyBRQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1ODU7Q0FOQURJQU4gU1lMTEFCSUNTIFE7TG87MDtMOzs7OztOOzs7OzsKKzE1ODY7Q0FOQURJQU4gU1lMTEFCSUNTIFRMSEU7TG87MDtMOzs7OztOOzs7OzsKKzE1ODc7Q0FOQURJQU4gU1lMTEFCSUNTIFRMSEk7TG87MDtMOzs7OztOOzs7OzsKKzE1ODg7Q0FOQURJQU4gU1lMTEFCSUNTIFRMSE87TG87MDtMOzs7OztOOzs7OzsKKzE1ODk7Q0FOQURJQU4gU1lMTEFCSUNTIFRMSEE7TG87MDtMOzs7OztOOzs7OzsKKzE1OEE7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBSRTtMbzswO0w7Ozs7O047Ozs7OworMTU4QjtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNThDO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgUk87TG87MDtMOzs7OztOOzs7OzsKKzE1OEQ7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBSQTtMbzswO0w7Ozs7O047Ozs7OworMTU4RTtDQU5BRElBTiBTWUxMQUJJQ1MgTkdBQUk7TG87MDtMOzs7OztOOzs7OzsKKzE1OEY7Q0FOQURJQU4gU1lMTEFCSUNTIE5HSTtMbzswO0w7Ozs7O047Ozs7OworMTU5MDtDQU5BRElBTiBTWUxMQUJJQ1MgTkdJSTtMbzswO0w7Ozs7O047Ozs7OworMTU5MTtDQU5BRElBTiBTWUxMQUJJQ1MgTkdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTkyO0NBTkFESUFOIFNZTExBQklDUyBOR09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTkzO0NBTkFESUFOIFNZTExBQklDUyBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzE1OTQ7Q0FOQURJQU4gU1lMTEFCSUNTIE5HQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1OTU7Q0FOQURJQU4gU1lMTEFCSUNTIE5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTk2O0NBTkFESUFOIFNZTExBQklDUyBOTkc7TG87MDtMOzs7OztOOzs7OzsKKzE1OTc7Q0FOQURJQU4gU1lMTEFCSUNTIFNBWUlTSSBTSEU7TG87MDtMOzs7OztOOzs7OzsKKzE1OTg7Q0FOQURJQU4gU1lMTEFCSUNTIFNBWUlTSSBTSEk7TG87MDtMOzs7OztOOzs7OzsKKzE1OTk7Q0FOQURJQU4gU1lMTEFCSUNTIFNBWUlTSSBTSE87TG87MDtMOzs7OztOOzs7OzsKKzE1OUE7Q0FOQURJQU4gU1lMTEFCSUNTIFNBWUlTSSBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzE1OUI7Q0FOQURJQU4gU1lMTEFCSUNTIFdPT0RTLUNSRUUgVEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTlDO0NBTkFESUFOIFNZTExBQklDUyBXT09EUy1DUkVFIFRISTtMbzswO0w7Ozs7O047Ozs7OworMTU5RDtDQU5BRElBTiBTWUxMQUJJQ1MgV09PRFMtQ1JFRSBUSE87TG87MDtMOzs7OztOOzs7OzsKKzE1OUU7Q0FOQURJQU4gU1lMTEFCSUNTIFdPT0RTLUNSRUUgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTlGO0NBTkFESUFOIFNZTExBQklDUyBXT09EUy1DUkVFIFRIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUEwO0NBTkFESUFOIFNZTExBQklDUyBMSEk7TG87MDtMOzs7OztOOzs7OzsKKzE1QTE7Q0FOQURJQU4gU1lMTEFCSUNTIExISUk7TG87MDtMOzs7OztOOzs7OzsKKzE1QTI7Q0FOQURJQU4gU1lMTEFCSUNTIExITztMbzswO0w7Ozs7O047Ozs7OworMTVBMztDQU5BRElBTiBTWUxMQUJJQ1MgTEhPTztMbzswO0w7Ozs7O047Ozs7OworMTVBNDtDQU5BRElBTiBTWUxMQUJJQ1MgTEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUE1O0NBTkFESUFOIFNZTExBQklDUyBMSEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUE2O0NBTkFESUFOIFNZTExBQklDUyBMSDtMbzswO0w7Ozs7O047Ozs7OworMTVBNztDQU5BRElBTiBTWUxMQUJJQ1MgVEgtQ1JFRSBUSEU7TG87MDtMOzs7OztOOzs7OzsKKzE1QTg7Q0FOQURJQU4gU1lMTEFCSUNTIFRILUNSRUUgVEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUE5O0NBTkFESUFOIFNZTExBQklDUyBUSC1DUkVFIFRISUk7TG87MDtMOzs7OztOOzs7OzsKKzE1QUE7Q0FOQURJQU4gU1lMTEFCSUNTIFRILUNSRUUgVEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUFCO0NBTkFESUFOIFNZTExBQklDUyBUSC1DUkVFIFRIT087TG87MDtMOzs7OztOOzs7OzsKKzE1QUM7Q0FOQURJQU4gU1lMTEFCSUNTIFRILUNSRUUgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUFEO0NBTkFESUFOIFNZTExBQklDUyBUSC1DUkVFIFRIQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1QUU7Q0FOQURJQU4gU1lMTEFCSUNTIFRILUNSRUUgVEg7TG87MDtMOzs7OztOOzs7OzsKKzE1QUY7Q0FOQURJQU4gU1lMTEFCSUNTIEFJVklMSUsgQjtMbzswO0w7Ozs7O047Ozs7OworMTVCMDtDQU5BRElBTiBTWUxMQUJJQ1MgQkxBQ0tGT09UIEU7TG87MDtMOzs7OztOOzs7OzsKKzE1QjE7Q0FOQURJQU4gU1lMTEFCSUNTIEJMQUNLRk9PVCBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUIyO0NBTkFESUFOIFNZTExBQklDUyBCTEFDS0ZPT1QgTztMbzswO0w7Ozs7O047Ozs7OworMTVCMztDQU5BRElBTiBTWUxMQUJJQ1MgQkxBQ0tGT09UIEE7TG87MDtMOzs7OztOOzs7OzsKKzE1QjQ7Q0FOQURJQU4gU1lMTEFCSUNTIEJMQUNLRk9PVCBXRTtMbzswO0w7Ozs7O047Ozs7OworMTVCNTtDQU5BRElBTiBTWUxMQUJJQ1MgQkxBQ0tGT09UIFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUI2O0NBTkFESUFOIFNZTExBQklDUyBCTEFDS0ZPT1QgV087TG87MDtMOzs7OztOOzs7OzsKKzE1Qjc7Q0FOQURJQU4gU1lMTEFCSUNTIEJMQUNLRk9PVCBXQTtMbzswO0w7Ozs7O047Ozs7OworMTVCODtDQU5BRElBTiBTWUxMQUJJQ1MgQkxBQ0tGT09UIE5FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUI5O0NBTkFESUFOIFNZTExBQklDUyBCTEFDS0ZPT1QgTkk7TG87MDtMOzs7OztOOzs7OzsKKzE1QkE7Q0FOQURJQU4gU1lMTEFCSUNTIEJMQUNLRk9PVCBOTztMbzswO0w7Ozs7O047Ozs7OworMTVCQjtDQU5BRElBTiBTWUxMQUJJQ1MgQkxBQ0tGT09UIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUJDO0NBTkFESUFOIFNZTExBQklDUyBCTEFDS0ZPT1QgS0U7TG87MDtMOzs7OztOOzs7OzsKKzE1QkQ7Q0FOQURJQU4gU1lMTEFCSUNTIEJMQUNLRk9PVCBLSTtMbzswO0w7Ozs7O047Ozs7OworMTVCRTtDQU5BRElBTiBTWUxMQUJJQ1MgQkxBQ0tGT09UIEtPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUJGO0NBTkFESUFOIFNZTExBQklDUyBCTEFDS0ZPT1QgS0E7TG87MDtMOzs7OztOOzs7OzsKKzE1QzA7Q0FOQURJQU4gU1lMTEFCSUNTIFNBWUlTSSBIRTtMbzswO0w7Ozs7O047Ozs7OworMTVDMTtDQU5BRElBTiBTWUxMQUJJQ1MgU0FZSVNJIEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUMyO0NBTkFESUFOIFNZTExBQklDUyBTQVlJU0kgSE87TG87MDtMOzs7OztOOzs7OzsKKzE1QzM7Q0FOQURJQU4gU1lMTEFCSUNTIFNBWUlTSSBIQTtMbzswO0w7Ozs7O047Ozs7OworMTVDNDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBHSFU7TG87MDtMOzs7OztOOzs7OzsKKzE1QzU7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgR0hPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUM2O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEdIRTtMbzswO0w7Ozs7O047Ozs7OworMTVDNztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBHSEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUM4O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEdISTtMbzswO0w7Ozs7O047Ozs7OworMTVDOTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBHSEE7TG87MDtMOzs7OztOOzs7OzsKKzE1Q0E7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgUlU7TG87MDtMOzs7OztOOzs7OzsKKzE1Q0I7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgUk87TG87MDtMOzs7OztOOzs7OzsKKzE1Q0M7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgUkU7TG87MDtMOzs7OztOOzs7OzsKKzE1Q0Q7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgUkVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUNFO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUNGO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUQwO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFdVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUQxO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUQyO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUQzO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFdFRTtMbzswO0w7Ozs7O047Ozs7OworMTVENDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBXSTtMbzswO0w7Ozs7O047Ozs7OworMTVENTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBXQTtMbzswO0w7Ozs7O047Ozs7OworMTVENjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBIV1U7TG87MDtMOzs7OztOOzs7OzsKKzE1RDc7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUQ4O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEhXRTtMbzswO0w7Ozs7O047Ozs7OworMTVEOTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBIV0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNURBO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEhXSTtMbzswO0w7Ozs7O047Ozs7OworMTVEQjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBIV0E7TG87MDtMOzs7OztOOzs7OzsKKzE1REM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVEhVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUREO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRITztMbzswO0w7Ozs7O047Ozs7OworMTVERTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUSEU7TG87MDtMOzs7OztOOzs7OzsKKzE1REY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVEhFRTtMbzswO0w7Ozs7O047Ozs7OworMTVFMDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUSEk7TG87MDtMOzs7OztOOzs7OzsKKzE1RTE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUUyO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRUVTtMbzswO0w7Ozs7O047Ozs7OworMTVFMztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUVE87TG87MDtMOzs7OztOOzs7OzsKKzE1RTQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFRFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUU1O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRURUU7TG87MDtMOzs7OztOOzs7OzsKKzE1RTY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFRJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUU3O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRUQTtMbzswO0w7Ozs7O047Ozs7OworMTVFODtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBQVTtMbzswO0w7Ozs7O047Ozs7OworMTVFOTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBQTztMbzswO0w7Ozs7O047Ozs7OworMTVFQTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBQRTtMbzswO0w7Ozs7O047Ozs7OworMTVFQjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBQRUU7TG87MDtMOzs7OztOOzs7OzsKKzE1RUM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgUEk7TG87MDtMOzs7OztOOzs7OzsKKzE1RUQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzE1RUU7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgUDtMbzswO0w7Ozs7O047Ozs7OworMTVFRjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBHVTtMbzswO0w7Ozs7O047Ozs7OworMTVGMDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBHTztMbzswO0w7Ozs7O047Ozs7OworMTVGMTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBHRTtMbzswO0w7Ozs7O047Ozs7OworMTVGMjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBHRUU7TG87MDtMOzs7OztOOzs7OzsKKzE1RjM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgR0k7TG87MDtMOzs7OztOOzs7OzsKKzE1RjQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzE1RjU7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgS0hVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUY2O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEtITztMbzswO0w7Ozs7O047Ozs7OworMTVGNztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBLSEU7TG87MDtMOzs7OztOOzs7OzsKKzE1Rjg7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgS0hFRTtMbzswO0w7Ozs7O047Ozs7OworMTVGOTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBLSEk7TG87MDtMOzs7OztOOzs7OzsKKzE1RkE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUZCO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEtLVTtMbzswO0w7Ozs7O047Ozs7OworMTVGQztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBLS087TG87MDtMOzs7OztOOzs7OzsKKzE1RkQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgS0tFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUZFO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEtLRUU7TG87MDtMOzs7OztOOzs7OzsKKzE1RkY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgS0tJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjAwO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEtLQTtMbzswO0w7Ozs7O047Ozs7OworMTYwMTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBLSztMbzswO0w7Ozs7O047Ozs7OworMTYwMjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBOVTtMbzswO0w7Ozs7O047Ozs7OworMTYwMztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBOTztMbzswO0w7Ozs7O047Ozs7OworMTYwNDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBORTtMbzswO0w7Ozs7O047Ozs7OworMTYwNTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBORUU7TG87MDtMOzs7OztOOzs7OzsKKzE2MDY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTkk7TG87MDtMOzs7OztOOzs7OzsKKzE2MDc7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzE2MDg7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTVU7TG87MDtMOzs7OztOOzs7OzsKKzE2MDk7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTU87TG87MDtMOzs7OztOOzs7OzsKKzE2MEE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTUU7TG87MDtMOzs7OztOOzs7OzsKKzE2MEI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTUVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjBDO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIE1JO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjBEO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjBFO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFlVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjBGO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjEwO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFlFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjExO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFlFRTtMbzswO0w7Ozs7O047Ozs7OworMTYxMjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBZSTtMbzswO0w7Ozs7O047Ozs7OworMTYxMztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMTYxNDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBKVTtMbzswO0w7Ozs7O047Ozs7OworMTYxNTtDQU5BRElBTiBTWUxMQUJJQ1MgU0FZSVNJIEpVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjE2O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEpPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjE3O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEpFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjE4O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEpFRTtMbzswO0w7Ozs7O047Ozs7OworMTYxOTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBKSTtMbzswO0w7Ozs7O047Ozs7OworMTYxQTtDQU5BRElBTiBTWUxMQUJJQ1MgU0FZSVNJIEpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjFCO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjFDO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEpKVTtMbzswO0w7Ozs7O047Ozs7OworMTYxRDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBKSk87TG87MDtMOzs7OztOOzs7OzsKKzE2MUU7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSkpFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjFGO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEpKRUU7TG87MDtMOzs7OztOOzs7OzsKKzE2MjA7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSkpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjIxO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEpKQTtMbzswO0w7Ozs7O047Ozs7OworMTYyMjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBMVTtMbzswO0w7Ozs7O047Ozs7OworMTYyMztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBMTztMbzswO0w7Ozs7O047Ozs7OworMTYyNDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBMRTtMbzswO0w7Ozs7O047Ozs7OworMTYyNTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBMRUU7TG87MDtMOzs7OztOOzs7OzsKKzE2MjY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTEk7TG87MDtMOzs7OztOOzs7OzsKKzE2Mjc7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzE2Mjg7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgRExVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjI5O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIERMTztMbzswO0w7Ozs7O047Ozs7OworMTYyQTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBETEU7TG87MDtMOzs7OztOOzs7OzsKKzE2MkI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgRExFRTtMbzswO0w7Ozs7O047Ozs7OworMTYyQztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBETEk7TG87MDtMOzs7OztOOzs7OzsKKzE2MkQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgRExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjJFO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIExIVTtMbzswO0w7Ozs7O047Ozs7OworMTYyRjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBMSE87TG87MDtMOzs7OztOOzs7OzsKKzE2MzA7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjMxO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIExIRUU7TG87MDtMOzs7OztOOzs7OzsKKzE2MzI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjMzO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIExIQTtMbzswO0w7Ozs7O047Ozs7OworMTYzNDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUTEhVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjM1O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRMSE87TG87MDtMOzs7OztOOzs7OzsKKzE2MzY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVExIRTtMbzswO0w7Ozs7O047Ozs7OworMTYzNztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUTEhFRTtMbzswO0w7Ozs7O047Ozs7OworMTYzODtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUTEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjM5O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRMSEE7TG87MDtMOzs7OztOOzs7OzsKKzE2M0E7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVExVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjNCO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRMTztMbzswO0w7Ozs7O047Ozs7OworMTYzQztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUTEU7TG87MDtMOzs7OztOOzs7OzsKKzE2M0Q7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVExFRTtMbzswO0w7Ozs7O047Ozs7OworMTYzRTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUTEk7TG87MDtMOzs7OztOOzs7OzsKKzE2M0Y7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjQwO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFpVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjQxO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFpPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjQyO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFpFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjQzO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFpFRTtMbzswO0w7Ozs7O047Ozs7OworMTY0NDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBaSTtMbzswO0w7Ozs7O047Ozs7OworMTY0NTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBaQTtMbzswO0w7Ozs7O047Ozs7OworMTY0NjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBaO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjQ3O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIElOSVRJQUwgWjtMbzswO0w7Ozs7O047Ozs7OworMTY0ODtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBEWlU7TG87MDtMOzs7OztOOzs7OzsKKzE2NDk7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgRFpPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjRBO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIERaRTtMbzswO0w7Ozs7O047Ozs7OworMTY0QjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBEWkVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjRDO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIERaSTtMbzswO0w7Ozs7O047Ozs7OworMTY0RDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBEWkE7TG87MDtMOzs7OztOOzs7OzsKKzE2NEU7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgU1U7TG87MDtMOzs7OztOOzs7OzsKKzE2NEY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgU087TG87MDtMOzs7OztOOzs7OzsKKzE2NTA7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgU0U7TG87MDtMOzs7OztOOzs7OzsKKzE2NTE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgU0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjUyO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFNJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjUzO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjU0O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFNIVTtMbzswO0w7Ozs7O047Ozs7OworMTY1NTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBTSE87TG87MDtMOzs7OztOOzs7OzsKKzE2NTY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgU0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjU3O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFNIRUU7TG87MDtMOzs7OztOOzs7OzsKKzE2NTg7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgU0hJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjU5O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMTY1QTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBTSDtMbzswO0w7Ozs7O047Ozs7OworMTY1QjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUU1U7TG87MDtMOzs7OztOOzs7OzsKKzE2NUM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFNPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjVEO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRTRTtMbzswO0w7Ozs7O047Ozs7OworMTY1RTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUU0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjVGO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRTSTtMbzswO0w7Ozs7O047Ozs7OworMTY2MDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUU0E7TG87MDtMOzs7OztOOzs7OzsKKzE2NjE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgQ0hVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjYyO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIENITztMbzswO0w7Ozs7O047Ozs7OworMTY2MztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBDSEU7TG87MDtMOzs7OztOOzs7OzsKKzE2NjQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgQ0hFRTtMbzswO0w7Ozs7O047Ozs7OworMTY2NTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBDSEk7TG87MDtMOzs7OztOOzs7OzsKKzE2NjY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjY3O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRUU1U7TG87MDtMOzs7OztOOzs7OzsKKzE2Njg7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFRTTztMbzswO0w7Ozs7O047Ozs7OworMTY2OTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUVFNFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjZBO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRUU0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjZCO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRUU0k7TG87MDtMOzs7OztOOzs7OzsKKzE2NkM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFRTQTtMbzswO0w7Ozs7O047Ozs7OworMTY2RDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0hJIFNJR047UG87MDtMOzs7OztOOzs7OzsKKzE2NkU7Q0FOQURJQU4gU1lMTEFCSUNTIEZVTEwgU1RPUDtQbzswO0w7Ozs7O047Ozs7OworMTY2RjtDQU5BRElBTiBTWUxMQUJJQ1MgUUFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjcwO0NBTkFESUFOIFNZTExBQklDUyBOR0FJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjcxO0NBTkFESUFOIFNZTExBQklDUyBOTkdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjcyO0NBTkFESUFOIFNZTExBQklDUyBOTkdJSTtMbzswO0w7Ozs7O047Ozs7OworMTY3MztDQU5BRElBTiBTWUxMQUJJQ1MgTk5HTztMbzswO0w7Ozs7O047Ozs7OworMTY3NDtDQU5BRElBTiBTWUxMQUJJQ1MgTk5HT087TG87MDtMOzs7OztOOzs7OzsKKzE2NzU7Q0FOQURJQU4gU1lMTEFCSUNTIE5OR0E7TG87MDtMOzs7OztOOzs7OzsKKzE2NzY7Q0FOQURJQU4gU1lMTEFCSUNTIE5OR0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjgwO09HSEFNIFNQQUNFIE1BUks7WnM7MDtXUzs7Ozs7Tjs7Ozs7CisxNjgxO09HSEFNIExFVFRFUiBCRUlUSDtMbzswO0w7Ozs7O047Ozs7OworMTY4MjtPR0hBTSBMRVRURVIgTFVJUztMbzswO0w7Ozs7O047Ozs7OworMTY4MztPR0hBTSBMRVRURVIgRkVBUk47TG87MDtMOzs7OztOOzs7OzsKKzE2ODQ7T0dIQU0gTEVUVEVSIFNBSUw7TG87MDtMOzs7OztOOzs7OzsKKzE2ODU7T0dIQU0gTEVUVEVSIE5JT047TG87MDtMOzs7OztOOzs7OzsKKzE2ODY7T0dIQU0gTEVUVEVSIFVBVEg7TG87MDtMOzs7OztOOzs7OzsKKzE2ODc7T0dIQU0gTEVUVEVSIERBSVI7TG87MDtMOzs7OztOOzs7OzsKKzE2ODg7T0dIQU0gTEVUVEVSIFRJTk5FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjg5O09HSEFNIExFVFRFUiBDT0xMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjhBO09HSEFNIExFVFRFUiBDRUlSVDtMbzswO0w7Ozs7O047Ozs7OworMTY4QjtPR0hBTSBMRVRURVIgTVVJTjtMbzswO0w7Ozs7O047Ozs7OworMTY4QztPR0hBTSBMRVRURVIgR09SVDtMbzswO0w7Ozs7O047Ozs7OworMTY4RDtPR0hBTSBMRVRURVIgTkdFQURBTDtMbzswO0w7Ozs7O047Ozs7OworMTY4RTtPR0hBTSBMRVRURVIgU1RSQUlGO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjhGO09HSEFNIExFVFRFUiBSVUlTO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjkwO09HSEFNIExFVFRFUiBBSUxNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjkxO09HSEFNIExFVFRFUiBPTk47TG87MDtMOzs7OztOOzs7OzsKKzE2OTI7T0dIQU0gTEVUVEVSIFVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjkzO09HSEFNIExFVFRFUiBFQURIQURIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjk0O09HSEFNIExFVFRFUiBJT0RIQURIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjk1O09HSEFNIExFVFRFUiBFQUJIQURIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjk2O09HSEFNIExFVFRFUiBPUjtMbzswO0w7Ozs7O047Ozs7OworMTY5NztPR0hBTSBMRVRURVIgVUlMTEVBTk47TG87MDtMOzs7OztOOzs7OzsKKzE2OTg7T0dIQU0gTEVUVEVSIElGSU47TG87MDtMOzs7OztOOzs7OzsKKzE2OTk7T0dIQU0gTEVUVEVSIEVBTUhBTkNIT0xMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjlBO09HSEFNIExFVFRFUiBQRUlUSDtMbzswO0w7Ozs7O047Ozs7OworMTY5QjtPR0hBTSBGRUFUSEVSIE1BUks7UHM7MDtPTjs7Ozs7Tjs7Ozs7CisxNjlDO09HSEFNIFJFVkVSU0VEIEZFQVRIRVIgTUFSSztQZTswO09OOzs7OztOOzs7OzsKKzE2QTA7UlVOSUMgTEVUVEVSIEZFSFUgRkVPSCBGRSBGO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkExO1JVTklDIExFVFRFUiBWO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkEyO1JVTklDIExFVFRFUiBVUlVaIFVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzE2QTM7UlVOSUMgTEVUVEVSIFlSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkE0O1JVTklDIExFVFRFUiBZO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkE1O1JVTklDIExFVFRFUiBXO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkE2O1JVTklDIExFVFRFUiBUSFVSSVNBWiBUSFVSUyBUSE9STjtMbzswO0w7Ozs7O047Ozs7OworMTZBNztSVU5JQyBMRVRURVIgRVRIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkE4O1JVTklDIExFVFRFUiBBTlNVWiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkE5O1JVTklDIExFVFRFUiBPUyBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkFBO1JVTklDIExFVFRFUiBBQyBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkFCO1JVTklDIExFVFRFUiBBRVNDO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkFDO1JVTklDIExFVFRFUiBMT05HLUJSQU5DSC1PU1MgTztMbzswO0w7Ozs7O047Ozs7OworMTZBRDtSVU5JQyBMRVRURVIgU0hPUlQtVFdJRy1PU1MgTztMbzswO0w7Ozs7O047Ozs7OworMTZBRTtSVU5JQyBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMTZBRjtSVU5JQyBMRVRURVIgT0U7TG87MDtMOzs7OztOOzs7OzsKKzE2QjA7UlVOSUMgTEVUVEVSIE9OO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkIxO1JVTklDIExFVFRFUiBSQUlETyBSQUQgUkVJRCBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkIyO1JVTklDIExFVFRFUiBLQVVOQTtMbzswO0w7Ozs7O047Ozs7OworMTZCMztSVU5JQyBMRVRURVIgQ0VOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkI0O1JVTklDIExFVFRFUiBLQVVOIEs7TG87MDtMOzs7OztOOzs7OzsKKzE2QjU7UlVOSUMgTEVUVEVSIEc7TG87MDtMOzs7OztOOzs7OzsKKzE2QjY7UlVOSUMgTEVUVEVSIEVORztMbzswO0w7Ozs7O047Ozs7OworMTZCNztSVU5JQyBMRVRURVIgR0VCTyBHWUZVIEc7TG87MDtMOzs7OztOOzs7OzsKKzE2Qjg7UlVOSUMgTEVUVEVSIEdBUjtMbzswO0w7Ozs7O047Ozs7OworMTZCOTtSVU5JQyBMRVRURVIgV1VOSk8gV1lOTiBXO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkJBO1JVTklDIExFVFRFUiBIQUdMQVogSDtMbzswO0w7Ozs7O047Ozs7OworMTZCQjtSVU5JQyBMRVRURVIgSEFFR0wgSDtMbzswO0w7Ozs7O047Ozs7OworMTZCQztSVU5JQyBMRVRURVIgTE9ORy1CUkFOQ0gtSEFHQUxMIEg7TG87MDtMOzs7OztOOzs7OzsKKzE2QkQ7UlVOSUMgTEVUVEVSIFNIT1JULVRXSUctSEFHQUxMIEg7TG87MDtMOzs7OztOOzs7OzsKKzE2QkU7UlVOSUMgTEVUVEVSIE5BVURJWiBOWUQgTkFVRCBOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkJGO1JVTklDIExFVFRFUiBTSE9SVC1UV0lHLU5BVUQgTjtMbzswO0w7Ozs7O047Ozs7OworMTZDMDtSVU5JQyBMRVRURVIgRE9UVEVELU47TG87MDtMOzs7OztOOzs7OzsKKzE2QzE7UlVOSUMgTEVUVEVSIElTQVogSVMgSVNTIEk7TG87MDtMOzs7OztOOzs7OzsKKzE2QzI7UlVOSUMgTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzE2QzM7UlVOSUMgTEVUVEVSIEpFUkFOIEo7TG87MDtMOzs7OztOOzs7OzsKKzE2QzQ7UlVOSUMgTEVUVEVSIEdFUjtMbzswO0w7Ozs7O047Ozs7OworMTZDNTtSVU5JQyBMRVRURVIgTE9ORy1CUkFOQ0gtQVIgQUU7TG87MDtMOzs7OztOOzs7OzsKKzE2QzY7UlVOSUMgTEVUVEVSIFNIT1JULVRXSUctQVIgQTtMbzswO0w7Ozs7O047Ozs7OworMTZDNztSVU5JQyBMRVRURVIgSVdBWiBFT0g7TG87MDtMOzs7OztOOzs7OzsKKzE2Qzg7UlVOSUMgTEVUVEVSIFBFUlRITyBQRU9SVEggUDtMbzswO0w7Ozs7O047Ozs7OworMTZDOTtSVU5JQyBMRVRURVIgQUxHSVogRU9MSFg7TG87MDtMOzs7OztOOzs7OzsKKzE2Q0E7UlVOSUMgTEVUVEVSIFNPV0lMTyBTO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkNCO1JVTklDIExFVFRFUiBTSUdFTCBMT05HLUJSQU5DSC1TT0wgUztMbzswO0w7Ozs7O047Ozs7OworMTZDQztSVU5JQyBMRVRURVIgU0hPUlQtVFdJRy1TT0wgUztMbzswO0w7Ozs7O047Ozs7OworMTZDRDtSVU5JQyBMRVRURVIgQztMbzswO0w7Ozs7O047Ozs7OworMTZDRTtSVU5JQyBMRVRURVIgWjtMbzswO0w7Ozs7O047Ozs7OworMTZDRjtSVU5JQyBMRVRURVIgVElXQVogVElSIFRZUiBUO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkQwO1JVTklDIExFVFRFUiBTSE9SVC1UV0lHLVRZUiBUO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkQxO1JVTklDIExFVFRFUiBEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkQyO1JVTklDIExFVFRFUiBCRVJLQU5BTiBCRU9SQyBCSkFSS0FOIEI7TG87MDtMOzs7OztOOzs7OzsKKzE2RDM7UlVOSUMgTEVUVEVSIFNIT1JULVRXSUctQkpBUktBTiBCO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkQ0O1JVTklDIExFVFRFUiBET1RURUQtUDtMbzswO0w7Ozs7O047Ozs7OworMTZENTtSVU5JQyBMRVRURVIgT1BFTi1QO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkQ2O1JVTklDIExFVFRFUiBFSFdBWiBFSCBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkQ3O1JVTklDIExFVFRFUiBNQU5OQVogTUFOIE07TG87MDtMOzs7OztOOzs7OzsKKzE2RDg7UlVOSUMgTEVUVEVSIExPTkctQlJBTkNILU1BRFIgTTtMbzswO0w7Ozs7O047Ozs7OworMTZEOTtSVU5JQyBMRVRURVIgU0hPUlQtVFdJRy1NQURSIE07TG87MDtMOzs7OztOOzs7OzsKKzE2REE7UlVOSUMgTEVUVEVSIExBVUtBWiBMQUdVIExPR1IgTDtMbzswO0w7Ozs7O047Ozs7OworMTZEQjtSVU5JQyBMRVRURVIgRE9UVEVELUw7TG87MDtMOzs7OztOOzs7OzsKKzE2REM7UlVOSUMgTEVUVEVSIElOR1dBWjtMbzswO0w7Ozs7O047Ozs7OworMTZERDtSVU5JQyBMRVRURVIgSU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkRFO1JVTklDIExFVFRFUiBEQUdBWiBEQUVHIEQ7TG87MDtMOzs7OztOOzs7OzsKKzE2REY7UlVOSUMgTEVUVEVSIE9USEFMQU4gRVRIRUwgTztMbzswO0w7Ozs7O047Ozs7OworMTZFMDtSVU5JQyBMRVRURVIgRUFSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkUxO1JVTklDIExFVFRFUiBJT1I7TG87MDtMOzs7OztOOzs7OzsKKzE2RTI7UlVOSUMgTEVUVEVSIENXRU9SVEg7TG87MDtMOzs7OztOOzs7OzsKKzE2RTM7UlVOSUMgTEVUVEVSIENBTEM7TG87MDtMOzs7OztOOzs7OzsKKzE2RTQ7UlVOSUMgTEVUVEVSIENFQUxDO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkU1O1JVTklDIExFVFRFUiBTVEFOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkU2O1JVTklDIExFVFRFUiBMT05HLUJSQU5DSC1ZUjtMbzswO0w7Ozs7O047Ozs7OworMTZFNztSVU5JQyBMRVRURVIgU0hPUlQtVFdJRy1ZUjtMbzswO0w7Ozs7O047Ozs7OworMTZFODtSVU5JQyBMRVRURVIgSUNFTEFORElDLVlSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkU5O1JVTklDIExFVFRFUiBRO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkVBO1JVTklDIExFVFRFUiBYO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkVCO1JVTklDIFNJTkdMRSBQVU5DVFVBVElPTjtQbzswO0w7Ozs7O047Ozs7OworMTZFQztSVU5JQyBNVUxUSVBMRSBQVU5DVFVBVElPTjtQbzswO0w7Ozs7O047Ozs7OworMTZFRDtSVU5JQyBDUk9TUyBQVU5DVFVBVElPTjtQbzswO0w7Ozs7O047Ozs7OworMTZFRTtSVU5JQyBBUkxBVUcgU1lNQk9MO05vOzA7TDs7OzsxNztOOztnb2xkZW4gbnVtYmVyIDE3Ozs7CisxNkVGO1JVTklDIFRWSU1BRFVSIFNZTUJPTDtObzswO0w7Ozs7MTg7Tjs7Z29sZGVuIG51bWJlciAxODs7OworMTZGMDtSVU5JQyBCRUxHVEhPUiBTWU1CT0w7Tm87MDtMOzs7OzE5O047O2dvbGRlbiBudW1iZXIgMTk7OzsKKzE3ODA7S0hNRVIgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzgxO0tITUVSIExFVFRFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzE3ODI7S0hNRVIgTEVUVEVSIEtPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzgzO0tITUVSIExFVFRFUiBLSE87TG87MDtMOzs7OztOOzs7OzsKKzE3ODQ7S0hNRVIgTEVUVEVSIE5HTztMbzswO0w7Ozs7O047Ozs7OworMTc4NTtLSE1FUiBMRVRURVIgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzE3ODY7S0hNRVIgTEVUVEVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMTc4NztLSE1FUiBMRVRURVIgQ087TG87MDtMOzs7OztOOzs7OzsKKzE3ODg7S0hNRVIgTEVUVEVSIENITztMbzswO0w7Ozs7O047Ozs7OworMTc4OTtLSE1FUiBMRVRURVIgTllPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzhBO0tITUVSIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMTc4QjtLSE1FUiBMRVRURVIgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMTc4QztLSE1FUiBMRVRURVIgRE87TG87MDtMOzs7OztOOzs7OzsKKzE3OEQ7S0hNRVIgTEVUVEVSIFRUSE87TG87MDtMOzs7OztOOzs7OzsKKzE3OEU7S0hNRVIgTEVUVEVSIE5OTztMbzswO0w7Ozs7O047Ozs7OworMTc4RjtLSE1FUiBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzE3OTA7S0hNRVIgTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMTc5MTtLSE1FUiBMRVRURVIgVE87TG87MDtMOzs7OztOOzs7OzsKKzE3OTI7S0hNRVIgTEVUVEVSIFRITztMbzswO0w7Ozs7O047Ozs7OworMTc5MztLSE1FUiBMRVRURVIgTk87TG87MDtMOzs7OztOOzs7OzsKKzE3OTQ7S0hNRVIgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzk1O0tITUVSIExFVFRFUiBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzE3OTY7S0hNRVIgTEVUVEVSIFBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzk3O0tITUVSIExFVFRFUiBQSE87TG87MDtMOzs7OztOOzs7OzsKKzE3OTg7S0hNRVIgTEVUVEVSIE1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzk5O0tITUVSIExFVFRFUiBZTztMbzswO0w7Ozs7O047Ozs7OworMTc5QTtLSE1FUiBMRVRURVIgUk87TG87MDtMOzs7OztOOzs7OzsKKzE3OUI7S0hNRVIgTEVUVEVSIExPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzlDO0tITUVSIExFVFRFUiBWTztMbzswO0w7Ozs7O047Ozs7OworMTc5RDtLSE1FUiBMRVRURVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzlFO0tITUVSIExFVFRFUiBTU087TG87MDtMOzs7OztOOzs7OzsKKzE3OUY7S0hNRVIgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0EwO0tITUVSIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMTdBMTtLSE1FUiBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzE3QTI7S0hNRVIgTEVUVEVSIFFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0EzO0tITUVSIElOREVQRU5ERU5UIFZPV0VMIFFBUTtMbzswO0w7Ozs7O047Ozs7OworMTdBNDtLSE1FUiBJTkRFUEVOREVOVCBWT1dFTCBRQUE7TG87MDtMOzs7OztOOzs7OzsKKzE3QTU7S0hNRVIgSU5ERVBFTkRFTlQgVk9XRUwgUUk7TG87MDtMOzs7OztOOzs7OzsKKzE3QTY7S0hNRVIgSU5ERVBFTkRFTlQgVk9XRUwgUUlJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0E3O0tITUVSIElOREVQRU5ERU5UIFZPV0VMIFFVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0E4O0tITUVSIElOREVQRU5ERU5UIFZPV0VMIFFVSztMbzswO0w7Ozs7O047Ozs7OworMTdBOTtLSE1FUiBJTkRFUEVOREVOVCBWT1dFTCBRVVU7TG87MDtMOzs7OztOOzs7OzsKKzE3QUE7S0hNRVIgSU5ERVBFTkRFTlQgVk9XRUwgUVVVVjtMbzswO0w7Ozs7O047Ozs7OworMTdBQjtLSE1FUiBJTkRFUEVOREVOVCBWT1dFTCBSWTtMbzswO0w7Ozs7O047Ozs7OworMTdBQztLSE1FUiBJTkRFUEVOREVOVCBWT1dFTCBSWVk7TG87MDtMOzs7OztOOzs7OzsKKzE3QUQ7S0hNRVIgSU5ERVBFTkRFTlQgVk9XRUwgTFk7TG87MDtMOzs7OztOOzs7OzsKKzE3QUU7S0hNRVIgSU5ERVBFTkRFTlQgVk9XRUwgTFlZO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0FGO0tITUVSIElOREVQRU5ERU5UIFZPV0VMIFFFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0IwO0tITUVSIElOREVQRU5ERU5UIFZPV0VMIFFBSTtMbzswO0w7Ozs7O047Ozs7OworMTdCMTtLSE1FUiBJTkRFUEVOREVOVCBWT1dFTCBRT08gVFlQRSBPTkU7TG87MDtMOzs7OztOOzs7OzsKKzE3QjI7S0hNRVIgSU5ERVBFTkRFTlQgVk9XRUwgUU9PIFRZUEUgVFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0IzO0tITUVSIElOREVQRU5ERU5UIFZPV0VMIFFBVTtMbzswO0w7Ozs7O047Ozs7OworMTdCNDtLSE1FUiBWT1dFTCBJTkhFUkVOVCBBUTtNYzswO0w7Ozs7O047Ozs7OworMTdCNTtLSE1FUiBWT1dFTCBJTkhFUkVOVCBBQTtNYzswO0w7Ozs7O047Ozs7OworMTdCNjtLSE1FUiBWT1dFTCBTSUdOIEFBO01jOzA7TDs7Ozs7Tjs7Ozs7CisxN0I3O0tITUVSIFZPV0VMIFNJR04gSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxN0I4O0tITUVSIFZPV0VMIFNJR04gSUk7TW47MDtOU007Ozs7O047Ozs7OworMTdCOTtLSE1FUiBWT1dFTCBTSUdOIFk7TW47MDtOU007Ozs7O047Ozs7OworMTdCQTtLSE1FUiBWT1dFTCBTSUdOIFlZO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3QkI7S0hNRVIgVk9XRUwgU0lHTiBVO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3QkM7S0hNRVIgVk9XRUwgU0lHTiBVVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxN0JEO0tITUVSIFZPV0VMIFNJR04gVUE7TW47MDtOU007Ozs7O047Ozs7OworMTdCRTtLSE1FUiBWT1dFTCBTSUdOIE9FO01jOzA7TDs7Ozs7Tjs7Ozs7CisxN0JGO0tITUVSIFZPV0VMIFNJR04gWUE7TWM7MDtMOzs7OztOOzs7OzsKKzE3QzA7S0hNRVIgVk9XRUwgU0lHTiBJRTtNYzswO0w7Ozs7O047Ozs7OworMTdDMTtLSE1FUiBWT1dFTCBTSUdOIEU7TWM7MDtMOzs7OztOOzs7OzsKKzE3QzI7S0hNRVIgVk9XRUwgU0lHTiBBRTtNYzswO0w7Ozs7O047Ozs7OworMTdDMztLSE1FUiBWT1dFTCBTSUdOIEFJO01jOzA7TDs7Ozs7Tjs7Ozs7CisxN0M0O0tITUVSIFZPV0VMIFNJR04gT087TWM7MDtMOzs7OztOOzs7OzsKKzE3QzU7S0hNRVIgVk9XRUwgU0lHTiBBVTtNYzswO0w7Ozs7O047Ozs7OworMTdDNjtLSE1FUiBTSUdOIE5JS0FISVQ7TW47MDtOU007Ozs7O047Ozs7OworMTdDNztLSE1FUiBTSUdOIFJFQUhNVUs7TWM7MDtMOzs7OztOOzs7OzsKKzE3Qzg7S0hNRVIgU0lHTiBZVVVLQUxFQVBJTlRVO01jOzA7TDs7Ozs7Tjs7Ozs7CisxN0M5O0tITUVSIFNJR04gTVVVU0lLQVRPQU47TW47MDtOU007Ozs7O047Ozs7OworMTdDQTtLSE1FUiBTSUdOIFRSSUlTQVA7TW47MDtOU007Ozs7O047Ozs7OworMTdDQjtLSE1FUiBTSUdOIEJBTlRPQztNbjswO05TTTs7Ozs7Tjs7Ozs7CisxN0NDO0tITUVSIFNJR04gUk9CQVQ7TW47MDtOU007Ozs7O047Ozs7OworMTdDRDtLSE1FUiBTSUdOIFRPQU5EQUtISUFUO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3Q0U7S0hNRVIgU0lHTiBLQUtBQkFUO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3Q0Y7S0hNRVIgU0lHTiBBSFNEQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxN0QwO0tITUVSIFNJR04gU0FNWU9LIFNBTk5ZQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxN0QxO0tITUVSIFNJR04gVklSSUFNO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3RDI7S0hNRVIgU0lHTiBDT0VORztNbjs5O05TTTs7Ozs7Tjs7Ozs7CisxN0QzO0tITUVSIFNJR04gQkFUSEFNQVNBVDtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxN0Q0O0tITUVSIFNJR04gS0hBTjtQbzswO0w7Ozs7O047Ozs7OworMTdENTtLSE1FUiBTSUdOIEJBUklZT09TQU47UG87MDtMOzs7OztOOzs7OzsKKzE3RDY7S0hNRVIgU0lHTiBDQU1OVUMgUElJIEtVVUg7UG87MDtMOzs7OztOOzs7OzsKKzE3RDc7S0hNRVIgU0lHTiBMRUsgVE9PO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxN0Q4O0tITUVSIFNJR04gQkVZWUFMO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxN0Q5O0tITUVSIFNJR04gUEhOQUVLIE1VQU47UG87MDtMOzs7OztOOzs7OzsKKzE3REE7S0hNRVIgU0lHTiBLT09NVVVUO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxN0RCO0tITUVSIENVUlJFTkNZIFNZTUJPTCBSSUVMO1NjOzA7RVQ7Ozs7O047Ozs7OworMTdEQztLSE1FUiBTSUdOIEFWQUtSQUhBU0FOWUE7UG87MDtMOzs7OztOOzs7OzsKKzE3RTA7S0hNRVIgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMTdFMTtLSE1FUiBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzE3RTI7S0hNRVIgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CisxN0UzO0tITUVSIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CisxN0U0O0tITUVSIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzE3RTU7S0hNRVIgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMTdFNjtLSE1FUiBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzE3RTc7S0hNRVIgRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzE3RTg7S0hNRVIgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzE3RTk7S0hNRVIgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMTgwMDtNT05HT0xJQU4gQklSR0E7UG87MDtPTjs7Ozs7Tjs7Ozs7CisxODAxO01PTkdPTElBTiBFTExJUFNJUztQbzswO09OOzs7OztOOzs7OzsKKzE4MDI7TU9OR09MSUFOIENPTU1BO1BvOzA7T047Ozs7O047Ozs7OworMTgwMztNT05HT0xJQU4gRlVMTCBTVE9QO1BvOzA7T047Ozs7O047Ozs7OworMTgwNDtNT05HT0xJQU4gQ09MT047UG87MDtPTjs7Ozs7Tjs7Ozs7CisxODA1O01PTkdPTElBTiBGT1VSIERPVFM7UG87MDtPTjs7Ozs7Tjs7Ozs7CisxODA2O01PTkdPTElBTiBUT0RPIFNPRlQgSFlQSEVOO1BkOzA7T047Ozs7O047Ozs7OworMTgwNztNT05HT0xJQU4gU0lCRSBTWUxMQUJMRSBCT1VOREFSWSBNQVJLRVI7UG87MDtPTjs7Ozs7Tjs7Ozs7CisxODA4O01PTkdPTElBTiBNQU5DSFUgQ09NTUE7UG87MDtPTjs7Ozs7Tjs7Ozs7CisxODA5O01PTkdPTElBTiBNQU5DSFUgRlVMTCBTVE9QO1BvOzA7T047Ozs7O047Ozs7OworMTgwQTtNT05HT0xJQU4gTklSVUdVO1BvOzA7T047Ozs7O047Ozs7OworMTgwQjtNT05HT0xJQU4gRlJFRSBWQVJJQVRJT04gU0VMRUNUT1IgT05FO0NmOzA7Qk47Ozs7O047Ozs7OworMTgwQztNT05HT0xJQU4gRlJFRSBWQVJJQVRJT04gU0VMRUNUT1IgVFdPO0NmOzA7Qk47Ozs7O047Ozs7OworMTgwRDtNT05HT0xJQU4gRlJFRSBWQVJJQVRJT04gU0VMRUNUT1IgVEhSRUU7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisxODBFO01PTkdPTElBTiBWT1dFTCBTRVBBUkFUT1I7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisxODEwO01PTkdPTElBTiBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CisxODExO01PTkdPTElBTiBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzE4MTI7TU9OR09MSUFOIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMTgxMztNT05HT0xJQU4gRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzE4MTQ7TU9OR09MSUFOIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzE4MTU7TU9OR09MSUFOIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzE4MTY7TU9OR09MSUFOIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMTgxNztNT05HT0xJQU4gRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzE4MTg7TU9OR09MSUFOIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CisxODE5O01PTkdPTElBTiBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CisxODIwO01PTkdPTElBTiBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMTgyMTtNT05HT0xJQU4gTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzE4MjI7TU9OR09MSUFOIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODIzO01PTkdPTElBTiBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMTgyNDtNT05HT0xJQU4gTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzE4MjU7TU9OR09MSUFOIExFVFRFUiBPRTtMbzswO0w7Ozs7O047Ozs7OworMTgyNjtNT05HT0xJQU4gTEVUVEVSIFVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODI3O01PTkdPTElBTiBMRVRURVIgRUU7TG87MDtMOzs7OztOOzs7OzsKKzE4Mjg7TU9OR09MSUFOIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMTgyOTtNT05HT0xJQU4gTEVUVEVSIEFORztMbzswO0w7Ozs7O047Ozs7OworMTgyQTtNT05HT0xJQU4gTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODJCO01PTkdPTElBTiBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzE4MkM7TU9OR09MSUFOIExFVFRFUiBRQTtMbzswO0w7Ozs7O047Ozs7OworMTgyRDtNT05HT0xJQU4gTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODJFO01PTkdPTElBTiBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzE4MkY7TU9OR09MSUFOIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMTgzMDtNT05HT0xJQU4gTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODMxO01PTkdPTElBTiBMRVRURVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODMyO01PTkdPTElBTiBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzE4MzM7TU9OR09MSUFOIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMTgzNDtNT05HT0xJQU4gTEVUVEVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMTgzNTtNT05HT0xJQU4gTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODM2O01PTkdPTElBTiBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzE4Mzc7TU9OR09MSUFOIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMTgzODtNT05HT0xJQU4gTEVUVEVSIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODM5O01PTkdPTElBTiBMRVRURVIgRkE7TG87MDtMOzs7OztOOzs7OzsKKzE4M0E7TU9OR09MSUFOIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMTgzQjtNT05HT0xJQU4gTEVUVEVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMTgzQztNT05HT0xJQU4gTEVUVEVSIFRTQTtMbzswO0w7Ozs7O047Ozs7OworMTgzRDtNT05HT0xJQU4gTEVUVEVSIFpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODNFO01PTkdPTElBTiBMRVRURVIgSEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODNGO01PTkdPTElBTiBMRVRURVIgWlJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODQwO01PTkdPTElBTiBMRVRURVIgTEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODQxO01PTkdPTElBTiBMRVRURVIgWkhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODQyO01PTkdPTElBTiBMRVRURVIgQ0hJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODQzO01PTkdPTElBTiBMRVRURVIgVE9ETyBMT05HIFZPV0VMIFNJR047TG07MDtMOzs7OztOOzs7OzsKKzE4NDQ7TU9OR09MSUFOIExFVFRFUiBUT0RPIEU7TG87MDtMOzs7OztOOzs7OzsKKzE4NDU7TU9OR09MSUFOIExFVFRFUiBUT0RPIEk7TG87MDtMOzs7OztOOzs7OzsKKzE4NDY7TU9OR09MSUFOIExFVFRFUiBUT0RPIE87TG87MDtMOzs7OztOOzs7OzsKKzE4NDc7TU9OR09MSUFOIExFVFRFUiBUT0RPIFU7TG87MDtMOzs7OztOOzs7OzsKKzE4NDg7TU9OR09MSUFOIExFVFRFUiBUT0RPIE9FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODQ5O01PTkdPTElBTiBMRVRURVIgVE9ETyBVRTtMbzswO0w7Ozs7O047Ozs7OworMTg0QTtNT05HT0xJQU4gTEVUVEVSIFRPRE8gQU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODRCO01PTkdPTElBTiBMRVRURVIgVE9ETyBCQTtMbzswO0w7Ozs7O047Ozs7OworMTg0QztNT05HT0xJQU4gTEVUVEVSIFRPRE8gUEE7TG87MDtMOzs7OztOOzs7OzsKKzE4NEQ7TU9OR09MSUFOIExFVFRFUiBUT0RPIFFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODRFO01PTkdPTElBTiBMRVRURVIgVE9ETyBHQTtMbzswO0w7Ozs7O047Ozs7OworMTg0RjtNT05HT0xJQU4gTEVUVEVSIFRPRE8gTUE7TG87MDtMOzs7OztOOzs7OzsKKzE4NTA7TU9OR09MSUFOIExFVFRFUiBUT0RPIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODUxO01PTkdPTElBTiBMRVRURVIgVE9ETyBEQTtMbzswO0w7Ozs7O047Ozs7OworMTg1MjtNT05HT0xJQU4gTEVUVEVSIFRPRE8gQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODUzO01PTkdPTElBTiBMRVRURVIgVE9ETyBKQTtMbzswO0w7Ozs7O047Ozs7OworMTg1NDtNT05HT0xJQU4gTEVUVEVSIFRPRE8gVFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODU1O01PTkdPTElBTiBMRVRURVIgVE9ETyBZQTtMbzswO0w7Ozs7O047Ozs7OworMTg1NjtNT05HT0xJQU4gTEVUVEVSIFRPRE8gV0E7TG87MDtMOzs7OztOOzs7OzsKKzE4NTc7TU9OR09MSUFOIExFVFRFUiBUT0RPIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODU4O01PTkdPTElBTiBMRVRURVIgVE9ETyBHQUE7TG87MDtMOzs7OztOOzs7OzsKKzE4NTk7TU9OR09MSUFOIExFVFRFUiBUT0RPIEhBQTtMbzswO0w7Ozs7O047Ozs7OworMTg1QTtNT05HT0xJQU4gTEVUVEVSIFRPRE8gSklBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODVCO01PTkdPTElBTiBMRVRURVIgVE9ETyBOSUE7TG87MDtMOzs7OztOOzs7OzsKKzE4NUM7TU9OR09MSUFOIExFVFRFUiBUT0RPIERaQTtMbzswO0w7Ozs7O047Ozs7OworMTg1RDtNT05HT0xJQU4gTEVUVEVSIFNJQkUgRTtMbzswO0w7Ozs7O047Ozs7OworMTg1RTtNT05HT0xJQU4gTEVUVEVSIFNJQkUgSTtMbzswO0w7Ozs7O047Ozs7OworMTg1RjtNT05HT0xJQU4gTEVUVEVSIFNJQkUgSVk7TG87MDtMOzs7OztOOzs7OzsKKzE4NjA7TU9OR09MSUFOIExFVFRFUiBTSUJFIFVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODYxO01PTkdPTElBTiBMRVRURVIgU0lCRSBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODYyO01PTkdPTElBTiBMRVRURVIgU0lCRSBBTkc7TG87MDtMOzs7OztOOzs7OzsKKzE4NjM7TU9OR09MSUFOIExFVFRFUiBTSUJFIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODY0O01PTkdPTElBTiBMRVRURVIgU0lCRSBHQTtMbzswO0w7Ozs7O047Ozs7OworMTg2NTtNT05HT0xJQU4gTEVUVEVSIFNJQkUgSEE7TG87MDtMOzs7OztOOzs7OzsKKzE4NjY7TU9OR09MSUFOIExFVFRFUiBTSUJFIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODY3O01PTkdPTElBTiBMRVRURVIgU0lCRSBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzE4Njg7TU9OR09MSUFOIExFVFRFUiBTSUJFIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODY5O01PTkdPTElBTiBMRVRURVIgU0lCRSBEQTtMbzswO0w7Ozs7O047Ozs7OworMTg2QTtNT05HT0xJQU4gTEVUVEVSIFNJQkUgSkE7TG87MDtMOzs7OztOOzs7OzsKKzE4NkI7TU9OR09MSUFOIExFVFRFUiBTSUJFIEZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODZDO01PTkdPTElBTiBMRVRURVIgU0lCRSBHQUE7TG87MDtMOzs7OztOOzs7OzsKKzE4NkQ7TU9OR09MSUFOIExFVFRFUiBTSUJFIEhBQTtMbzswO0w7Ozs7O047Ozs7OworMTg2RTtNT05HT0xJQU4gTEVUVEVSIFNJQkUgVFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODZGO01PTkdPTElBTiBMRVRURVIgU0lCRSBaQTtMbzswO0w7Ozs7O047Ozs7OworMTg3MDtNT05HT0xJQU4gTEVUVEVSIFNJQkUgUkFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODcxO01PTkdPTElBTiBMRVRURVIgU0lCRSBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzE4NzI7TU9OR09MSUFOIExFVFRFUiBTSUJFIFpIQTtMbzswO0w7Ozs7O047Ozs7OworMTg3MztNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODc0O01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODc1O01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODc2O01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIEZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODc3O01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIFpIQTtMbzswO0w7Ozs7O047Ozs7OworMTg4MDtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIEFOVVNWQVJBIE9ORTtMbzswO0w7Ozs7O047Ozs7OworMTg4MTtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIFZJU0FSR0EgT05FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODgyO01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgREFNQVJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODgzO01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgVUJBREFNQTtMbzswO0w7Ozs7O047Ozs7OworMTg4NDtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIElOVkVSVEVEIFVCQURBTUE7TG87MDtMOzs7OztOOzs7OzsKKzE4ODU7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBCQUxVREE7TG87MDtMOzs7OztOOzs7OzsKKzE4ODY7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBUSFJFRSBCQUxVREE7TG87MDtMOzs7OztOOzs7OzsKKzE4ODc7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODg4O01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgSTtMbzswO0w7Ozs7O047Ozs7OworMTg4OTtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODhBO01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODhCO01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzE4OEM7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzE4OEQ7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBUVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODhFO01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgRERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODhGO01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODkwO01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgVEE7TG87MDtMOzs7OztOOzs7OzsKKzE4OTE7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBEQTtMbzswO0w7Ozs7O047Ozs7OworMTg5MjtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODkzO01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODk0O01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODk1O01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgWkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODk2O01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgWkE7TG87MDtMOzs7OztOOzs7OzsKKzE4OTc7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBBSDtMbzswO0w7Ozs7O047Ozs7OworMTg5ODtNT05HT0xJQU4gTEVUVEVSIFRPRE8gQUxJIEdBTEkgVEE7TG87MDtMOzs7OztOOzs7OzsKKzE4OTk7TU9OR09MSUFOIExFVFRFUiBUT0RPIEFMSSBHQUxJIFpIQTtMbzswO0w7Ozs7O047Ozs7OworMTg5QTtNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBBTEkgR0FMSSBHSEE7TG87MDtMOzs7OztOOzs7OzsKKzE4OUI7TU9OR09MSUFOIExFVFRFUiBNQU5DSFUgQUxJIEdBTEkgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODlDO01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIEFMSSBHQUxJIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODlEO01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIEFMSSBHQUxJIEpIQTtMbzswO0w7Ozs7O047Ozs7OworMTg5RTtNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBBTEkgR0FMSSBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzE4OUY7TU9OR09MSUFOIExFVFRFUiBNQU5DSFUgQUxJIEdBTEkgRERIQTtMbzswO0w7Ozs7O047Ozs7OworMThBMDtNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBBTEkgR0FMSSBUQTtMbzswO0w7Ozs7O047Ozs7OworMThBMTtNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBBTEkgR0FMSSBESEE7TG87MDtMOzs7OztOOzs7OzsKKzE4QTI7TU9OR09MSUFOIExFVFRFUiBNQU5DSFUgQUxJIEdBTEkgU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOEEzO01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIEFMSSBHQUxJIENZQTtMbzswO0w7Ozs7O047Ozs7OworMThBNDtNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBBTEkgR0FMSSBaSEE7TG87MDtMOzs7OztOOzs7OzsKKzE4QTU7TU9OR09MSUFOIExFVFRFUiBNQU5DSFUgQUxJIEdBTEkgWkE7TG87MDtMOzs7OztOOzs7OzsKKzE4QTY7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBIQUxGIFU7TG87MDtMOzs7OztOOzs7OzsKKzE4QTc7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBIQUxGIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOEE4O01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIEFMSSBHQUxJIEJIQTtMbzswO0w7Ozs7O047Ozs7OworMThBOTtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIERBR0FMR0E7TW47MjI4O05TTTs7Ozs7Tjs7Ozs7CisxRTAwO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBSSU5HIEJFTE9XO0x1OzA7TDswMDQxIDAzMjU7Ozs7Tjs7OzsxRTAxOworMUUwMTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIFJJTkcgQkVMT1c7TGw7MDtMOzAwNjEgMDMyNTs7OztOOzs7MUUwMDs7MUUwMAorMUUwMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBCIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDQyIDAzMDc7Ozs7Tjs7OzsxRTAzOworMUUwMztMQVRJTiBTTUFMTCBMRVRURVIgQiBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA2MiAwMzA3Ozs7O047OzsxRTAyOzsxRTAyCisxRTA0O0xBVElOIENBUElUQUwgTEVUVEVSIEIgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNDIgMDMyMzs7OztOOzs7OzFFMDU7CisxRTA1O0xBVElOIFNNQUxMIExFVFRFUiBCIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDYyIDAzMjM7Ozs7Tjs7OzFFMDQ7OzFFMDQKKzFFMDY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQiBXSVRIIExJTkUgQkVMT1c7THU7MDtMOzAwNDIgMDMzMTs7OztOOzs7OzFFMDc7CisxRTA3O0xBVElOIFNNQUxMIExFVFRFUiBCIFdJVEggTElORSBCRUxPVztMbDswO0w7MDA2MiAwMzMxOzs7O047OzsxRTA2OzsxRTA2CisxRTA4O0xBVElOIENBUElUQUwgTEVUVEVSIEMgV0lUSCBDRURJTExBIEFORCBBQ1VURTtMdTswO0w7MDBDNyAwMzAxOzs7O047Ozs7MUUwOTsKKzFFMDk7TEFUSU4gU01BTEwgTEVUVEVSIEMgV0lUSCBDRURJTExBIEFORCBBQ1VURTtMbDswO0w7MDBFNyAwMzAxOzs7O047OzsxRTA4OzsxRTA4CisxRTBBO0xBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNDQgMDMwNzs7OztOOzs7OzFFMEI7CisxRTBCO0xBVElOIFNNQUxMIExFVFRFUiBEIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDY0IDAzMDc7Ozs7Tjs7OzFFMEE7OzFFMEEKKzFFMEM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA0NCAwMzIzOzs7O047Ozs7MUUwRDsKKzFFMEQ7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNjQgMDMyMzs7OztOOzs7MUUwQzs7MUUwQworMUUwRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFdJVEggTElORSBCRUxPVztMdTswO0w7MDA0NCAwMzMxOzs7O047Ozs7MUUwRjsKKzFFMEY7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBMSU5FIEJFTE9XO0xsOzA7TDswMDY0IDAzMzE7Ozs7Tjs7OzFFMEU7OzFFMEUKKzFFMTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIENFRElMTEE7THU7MDtMOzAwNDQgMDMyNzs7OztOOzs7OzFFMTE7CisxRTExO0xBVElOIFNNQUxMIExFVFRFUiBEIFdJVEggQ0VESUxMQTtMbDswO0w7MDA2NCAwMzI3Ozs7O047OzsxRTEwOzsxRTEwCisxRTEyO0xBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBDSVJDVU1GTEVYIEJFTE9XO0x1OzA7TDswMDQ0IDAzMkQ7Ozs7Tjs7OzsxRTEzOworMUUxMztMQVRJTiBTTUFMTCBMRVRURVIgRCBXSVRIIENJUkNVTUZMRVggQkVMT1c7TGw7MDtMOzAwNjQgMDMyRDs7OztOOzs7MUUxMjs7MUUxMgorMUUxNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggTUFDUk9OIEFORCBHUkFWRTtMdTswO0w7MDExMiAwMzAwOzs7O047Ozs7MUUxNTsKKzFFMTU7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBNQUNST04gQU5EIEdSQVZFO0xsOzA7TDswMTEzIDAzMDA7Ozs7Tjs7OzFFMTQ7OzFFMTQKKzFFMTY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIE1BQ1JPTiBBTkQgQUNVVEU7THU7MDtMOzAxMTIgMDMwMTs7OztOOzs7OzFFMTc7CisxRTE3O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggTUFDUk9OIEFORCBBQ1VURTtMbDswO0w7MDExMyAwMzAxOzs7O047OzsxRTE2OzsxRTE2CisxRTE4O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYIEJFTE9XO0x1OzA7TDswMDQ1IDAzMkQ7Ozs7Tjs7OzsxRTE5OworMUUxOTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVggQkVMT1c7TGw7MDtMOzAwNjUgMDMyRDs7OztOOzs7MUUxODs7MUUxOAorMUUxQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggVElMREUgQkVMT1c7THU7MDtMOzAwNDUgMDMzMDs7OztOOzs7OzFFMUI7CisxRTFCO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggVElMREUgQkVMT1c7TGw7MDtMOzAwNjUgMDMzMDs7OztOOzs7MUUxQTs7MUUxQQorMUUxQztMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0VESUxMQSBBTkQgQlJFVkU7THU7MDtMOzAyMjggMDMwNjs7OztOOzs7OzFFMUQ7CisxRTFEO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQ0VESUxMQSBBTkQgQlJFVkU7TGw7MDtMOzAyMjkgMDMwNjs7OztOOzs7MUUxQzs7MUUxQworMUUxRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBGIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDQ2IDAzMDc7Ozs7Tjs7OzsxRTFGOworMUUxRjtMQVRJTiBTTUFMTCBMRVRURVIgRiBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA2NiAwMzA3Ozs7O047OzsxRTFFOzsxRTFFCisxRTIwO0xBVElOIENBUElUQUwgTEVUVEVSIEcgV0lUSCBNQUNST047THU7MDtMOzAwNDcgMDMwNDs7OztOOzs7OzFFMjE7CisxRTIxO0xBVElOIFNNQUxMIExFVFRFUiBHIFdJVEggTUFDUk9OO0xsOzA7TDswMDY3IDAzMDQ7Ozs7Tjs7OzFFMjA7OzFFMjAKKzFFMjI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSCBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA0OCAwMzA3Ozs7O047Ozs7MUUyMzsKKzFFMjM7TEFUSU4gU01BTEwgTEVUVEVSIEggV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNjggMDMwNzs7OztOOzs7MUUyMjs7MUUyMgorMUUyNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBIIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDQ4IDAzMjM7Ozs7Tjs7OzsxRTI1OworMUUyNTtMQVRJTiBTTUFMTCBMRVRURVIgSCBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2OCAwMzIzOzs7O047OzsxRTI0OzsxRTI0CisxRTI2O0xBVElOIENBUElUQUwgTEVUVEVSIEggV0lUSCBESUFFUkVTSVM7THU7MDtMOzAwNDggMDMwODs7OztOOzs7OzFFMjc7CisxRTI3O0xBVElOIFNNQUxMIExFVFRFUiBIIFdJVEggRElBRVJFU0lTO0xsOzA7TDswMDY4IDAzMDg7Ozs7Tjs7OzFFMjY7OzFFMjYKKzFFMjg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSCBXSVRIIENFRElMTEE7THU7MDtMOzAwNDggMDMyNzs7OztOOzs7OzFFMjk7CisxRTI5O0xBVElOIFNNQUxMIExFVFRFUiBIIFdJVEggQ0VESUxMQTtMbDswO0w7MDA2OCAwMzI3Ozs7O047OzsxRTI4OzsxRTI4CisxRTJBO0xBVElOIENBUElUQUwgTEVUVEVSIEggV0lUSCBCUkVWRSBCRUxPVztMdTswO0w7MDA0OCAwMzJFOzs7O047Ozs7MUUyQjsKKzFFMkI7TEFUSU4gU01BTEwgTEVUVEVSIEggV0lUSCBCUkVWRSBCRUxPVztMbDswO0w7MDA2OCAwMzJFOzs7O047OzsxRTJBOzsxRTJBCisxRTJDO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBUSUxERSBCRUxPVztMdTswO0w7MDA0OSAwMzMwOzs7O047Ozs7MUUyRDsKKzFFMkQ7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBUSUxERSBCRUxPVztMbDswO0w7MDA2OSAwMzMwOzs7O047OzsxRTJDOzsxRTJDCisxRTJFO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBESUFFUkVTSVMgQU5EIEFDVVRFO0x1OzA7TDswMENGIDAzMDE7Ozs7Tjs7OzsxRTJGOworMUUyRjtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIERJQUVSRVNJUyBBTkQgQUNVVEU7TGw7MDtMOzAwRUYgMDMwMTs7OztOOzs7MUUyRTs7MUUyRQorMUUzMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBLIFdJVEggQUNVVEU7THU7MDtMOzAwNEIgMDMwMTs7OztOOzs7OzFFMzE7CisxRTMxO0xBVElOIFNNQUxMIExFVFRFUiBLIFdJVEggQUNVVEU7TGw7MDtMOzAwNkIgMDMwMTs7OztOOzs7MUUzMDs7MUUzMAorMUUzMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBLIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDRCIDAzMjM7Ozs7Tjs7OzsxRTMzOworMUUzMztMQVRJTiBTTUFMTCBMRVRURVIgSyBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2QiAwMzIzOzs7O047OzsxRTMyOzsxRTMyCisxRTM0O0xBVElOIENBUElUQUwgTEVUVEVSIEsgV0lUSCBMSU5FIEJFTE9XO0x1OzA7TDswMDRCIDAzMzE7Ozs7Tjs7OzsxRTM1OworMUUzNTtMQVRJTiBTTUFMTCBMRVRURVIgSyBXSVRIIExJTkUgQkVMT1c7TGw7MDtMOzAwNkIgMDMzMTs7OztOOzs7MUUzNDs7MUUzNAorMUUzNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDRDIDAzMjM7Ozs7Tjs7OzsxRTM3OworMUUzNztMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2QyAwMzIzOzs7O047OzsxRTM2OzsxRTM2CisxRTM4O0xBVElOIENBUElUQUwgTEVUVEVSIEwgV0lUSCBET1QgQkVMT1cgQU5EIE1BQ1JPTjtMdTswO0w7MUUzNiAwMzA0Ozs7O047Ozs7MUUzOTsKKzFFMzk7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBET1QgQkVMT1cgQU5EIE1BQ1JPTjtMbDswO0w7MUUzNyAwMzA0Ozs7O047OzsxRTM4OzsxRTM4CisxRTNBO0xBVElOIENBUElUQUwgTEVUVEVSIEwgV0lUSCBMSU5FIEJFTE9XO0x1OzA7TDswMDRDIDAzMzE7Ozs7Tjs7OzsxRTNCOworMUUzQjtMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIExJTkUgQkVMT1c7TGw7MDtMOzAwNkMgMDMzMTs7OztOOzs7MUUzQTs7MUUzQQorMUUzQztMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMdTswO0w7MDA0QyAwMzJEOzs7O047Ozs7MUUzRDsKKzFFM0Q7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBDSVJDVU1GTEVYIEJFTE9XO0xsOzA7TDswMDZDIDAzMkQ7Ozs7Tjs7OzFFM0M7OzFFM0MKKzFFM0U7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTSBXSVRIIEFDVVRFO0x1OzA7TDswMDREIDAzMDE7Ozs7Tjs7OzsxRTNGOworMUUzRjtMQVRJTiBTTUFMTCBMRVRURVIgTSBXSVRIIEFDVVRFO0xsOzA7TDswMDZEIDAzMDE7Ozs7Tjs7OzFFM0U7OzFFM0UKKzFFNDA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTSBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA0RCAwMzA3Ozs7O047Ozs7MUU0MTsKKzFFNDE7TEFUSU4gU01BTEwgTEVUVEVSIE0gV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNkQgMDMwNzs7OztOOzs7MUU0MDs7MUU0MAorMUU0MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBNIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDREIDAzMjM7Ozs7Tjs7OzsxRTQzOworMUU0MztMQVRJTiBTTUFMTCBMRVRURVIgTSBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2RCAwMzIzOzs7O047OzsxRTQyOzsxRTQyCisxRTQ0O0xBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNEUgMDMwNzs7OztOOzs7OzFFNDU7CisxRTQ1O0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDZFIDAzMDc7Ozs7Tjs7OzFFNDQ7OzFFNDQKKzFFNDY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA0RSAwMzIzOzs7O047Ozs7MUU0NzsKKzFFNDc7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNkUgMDMyMzs7OztOOzs7MUU0Njs7MUU0NgorMUU0ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggTElORSBCRUxPVztMdTswO0w7MDA0RSAwMzMxOzs7O047Ozs7MUU0OTsKKzFFNDk7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBMSU5FIEJFTE9XO0xsOzA7TDswMDZFIDAzMzE7Ozs7Tjs7OzFFNDg7OzFFNDgKKzFFNEE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIENJUkNVTUZMRVggQkVMT1c7THU7MDtMOzAwNEUgMDMyRDs7OztOOzs7OzFFNEI7CisxRTRCO0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMbDswO0w7MDA2RSAwMzJEOzs7O047OzsxRTRBOzsxRTRBCisxRTRDO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBUSUxERSBBTkQgQUNVVEU7THU7MDtMOzAwRDUgMDMwMTs7OztOOzs7OzFFNEQ7CisxRTREO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggVElMREUgQU5EIEFDVVRFO0xsOzA7TDswMEY1IDAzMDE7Ozs7Tjs7OzFFNEM7OzFFNEMKKzFFNEU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIFRJTERFIEFORCBESUFFUkVTSVM7THU7MDtMOzAwRDUgMDMwODs7OztOOzs7OzFFNEY7CisxRTRGO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggVElMREUgQU5EIERJQUVSRVNJUztMbDswO0w7MDBGNSAwMzA4Ozs7O047OzsxRTRFOzsxRTRFCisxRTUwO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBNQUNST04gQU5EIEdSQVZFO0x1OzA7TDswMTRDIDAzMDA7Ozs7Tjs7OzsxRTUxOworMUU1MTtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIE1BQ1JPTiBBTkQgR1JBVkU7TGw7MDtMOzAxNEQgMDMwMDs7OztOOzs7MUU1MDs7MUU1MAorMUU1MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggTUFDUk9OIEFORCBBQ1VURTtMdTswO0w7MDE0QyAwMzAxOzs7O047Ozs7MUU1MzsKKzFFNTM7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBNQUNST04gQU5EIEFDVVRFO0xsOzA7TDswMTREIDAzMDE7Ozs7Tjs7OzFFNTI7OzFFNTIKKzFFNTQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUCBXSVRIIEFDVVRFO0x1OzA7TDswMDUwIDAzMDE7Ozs7Tjs7OzsxRTU1OworMUU1NTtMQVRJTiBTTUFMTCBMRVRURVIgUCBXSVRIIEFDVVRFO0xsOzA7TDswMDcwIDAzMDE7Ozs7Tjs7OzFFNTQ7OzFFNTQKKzFFNTY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUCBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA1MCAwMzA3Ozs7O047Ozs7MUU1NzsKKzFFNTc7TEFUSU4gU01BTEwgTEVUVEVSIFAgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNzAgMDMwNzs7OztOOzs7MUU1Njs7MUU1NgorMUU1ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBSIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDUyIDAzMDc7Ozs7Tjs7OzsxRTU5OworMUU1OTtMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA3MiAwMzA3Ozs7O047OzsxRTU4OzsxRTU4CisxRTVBO0xBVElOIENBUElUQUwgTEVUVEVSIFIgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNTIgMDMyMzs7OztOOzs7OzFFNUI7CisxRTVCO0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDcyIDAzMjM7Ozs7Tjs7OzFFNUE7OzFFNUEKKzFFNUM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBXSVRIIERPVCBCRUxPVyBBTkQgTUFDUk9OO0x1OzA7TDsxRTVBIDAzMDQ7Ozs7Tjs7OzsxRTVEOworMUU1RDtMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIERPVCBCRUxPVyBBTkQgTUFDUk9OO0xsOzA7TDsxRTVCIDAzMDQ7Ozs7Tjs7OzFFNUM7OzFFNUMKKzFFNUU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBXSVRIIExJTkUgQkVMT1c7THU7MDtMOzAwNTIgMDMzMTs7OztOOzs7OzFFNUY7CisxRTVGO0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggTElORSBCRUxPVztMbDswO0w7MDA3MiAwMzMxOzs7O047OzsxRTVFOzsxRTVFCisxRTYwO0xBVElOIENBUElUQUwgTEVUVEVSIFMgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNTMgMDMwNzs7OztOOzs7OzFFNjE7CisxRTYxO0xBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDczIDAzMDc7Ozs7Tjs7OzFFNjA7OzFFNjAKKzFFNjI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA1MyAwMzIzOzs7O047Ozs7MUU2MzsKKzFFNjM7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNzMgMDMyMzs7OztOOzs7MUU2Mjs7MUU2MgorMUU2NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIFdJVEggQUNVVEUgQU5EIERPVCBBQk9WRTtMdTswO0w7MDE1QSAwMzA3Ozs7O047Ozs7MUU2NTsKKzFFNjU7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBBQ1VURSBBTkQgRE9UIEFCT1ZFO0xsOzA7TDswMTVCIDAzMDc7Ozs7Tjs7OzFFNjQ7OzFFNjQKKzFFNjY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBXSVRIIENBUk9OIEFORCBET1QgQUJPVkU7THU7MDtMOzAxNjAgMDMwNzs7OztOOzs7OzFFNjc7CisxRTY3O0xBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggQ0FST04gQU5EIERPVCBBQk9WRTtMbDswO0w7MDE2MSAwMzA3Ozs7O047OzsxRTY2OzsxRTY2CisxRTY4O0xBVElOIENBUElUQUwgTEVUVEVSIFMgV0lUSCBET1QgQkVMT1cgQU5EIERPVCBBQk9WRTtMdTswO0w7MUU2MiAwMzA3Ozs7O047Ozs7MUU2OTsKKzFFNjk7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBET1QgQkVMT1cgQU5EIERPVCBBQk9WRTtMbDswO0w7MUU2MyAwMzA3Ozs7O047OzsxRTY4OzsxRTY4CisxRTZBO0xBVElOIENBUElUQUwgTEVUVEVSIFQgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNTQgMDMwNzs7OztOOzs7OzFFNkI7CisxRTZCO0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDc0IDAzMDc7Ozs7Tjs7OzFFNkE7OzFFNkEKKzFFNkM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA1NCAwMzIzOzs7O047Ozs7MUU2RDsKKzFFNkQ7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNzQgMDMyMzs7OztOOzs7MUU2Qzs7MUU2QworMUU2RTtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFdJVEggTElORSBCRUxPVztMdTswO0w7MDA1NCAwMzMxOzs7O047Ozs7MUU2RjsKKzFFNkY7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBMSU5FIEJFTE9XO0xsOzA7TDswMDc0IDAzMzE7Ozs7Tjs7OzFFNkU7OzFFNkUKKzFFNzA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBXSVRIIENJUkNVTUZMRVggQkVMT1c7THU7MDtMOzAwNTQgMDMyRDs7OztOOzs7OzFFNzE7CisxRTcxO0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMbDswO0w7MDA3NCAwMzJEOzs7O047OzsxRTcwOzsxRTcwCisxRTcyO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVMgQkVMT1c7THU7MDtMOzAwNTUgMDMyNDs7OztOOzs7OzFFNzM7CisxRTczO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTIEJFTE9XO0xsOzA7TDswMDc1IDAzMjQ7Ozs7Tjs7OzFFNzI7OzFFNzIKKzFFNzQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIFRJTERFIEJFTE9XO0x1OzA7TDswMDU1IDAzMzA7Ozs7Tjs7OzsxRTc1OworMUU3NTtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIFRJTERFIEJFTE9XO0xsOzA7TDswMDc1IDAzMzA7Ozs7Tjs7OzFFNzQ7OzFFNzQKKzFFNzY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIENJUkNVTUZMRVggQkVMT1c7THU7MDtMOzAwNTUgMDMyRDs7OztOOzs7OzFFNzc7CisxRTc3O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMbDswO0w7MDA3NSAwMzJEOzs7O047OzsxRTc2OzsxRTc2CisxRTc4O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBUSUxERSBBTkQgQUNVVEU7THU7MDtMOzAxNjggMDMwMTs7OztOOzs7OzFFNzk7CisxRTc5O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggVElMREUgQU5EIEFDVVRFO0xsOzA7TDswMTY5IDAzMDE7Ozs7Tjs7OzFFNzg7OzFFNzgKKzFFN0E7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIE1BQ1JPTiBBTkQgRElBRVJFU0lTO0x1OzA7TDswMTZBIDAzMDg7Ozs7Tjs7OzsxRTdCOworMUU3QjtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIE1BQ1JPTiBBTkQgRElBRVJFU0lTO0xsOzA7TDswMTZCIDAzMDg7Ozs7Tjs7OzFFN0E7OzFFN0EKKzFFN0M7TEFUSU4gQ0FQSVRBTCBMRVRURVIgViBXSVRIIFRJTERFO0x1OzA7TDswMDU2IDAzMDM7Ozs7Tjs7OzsxRTdEOworMUU3RDtMQVRJTiBTTUFMTCBMRVRURVIgViBXSVRIIFRJTERFO0xsOzA7TDswMDc2IDAzMDM7Ozs7Tjs7OzFFN0M7OzFFN0MKKzFFN0U7TEFUSU4gQ0FQSVRBTCBMRVRURVIgViBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA1NiAwMzIzOzs7O047Ozs7MUU3RjsKKzFFN0Y7TEFUSU4gU01BTEwgTEVUVEVSIFYgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNzYgMDMyMzs7OztOOzs7MUU3RTs7MUU3RQorMUU4MDtMQVRJTiBDQVBJVEFMIExFVFRFUiBXIFdJVEggR1JBVkU7THU7MDtMOzAwNTcgMDMwMDs7OztOOzs7OzFFODE7CisxRTgxO0xBVElOIFNNQUxMIExFVFRFUiBXIFdJVEggR1JBVkU7TGw7MDtMOzAwNzcgMDMwMDs7OztOOzs7MUU4MDs7MUU4MAorMUU4MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBXIFdJVEggQUNVVEU7THU7MDtMOzAwNTcgMDMwMTs7OztOOzs7OzFFODM7CisxRTgzO0xBVElOIFNNQUxMIExFVFRFUiBXIFdJVEggQUNVVEU7TGw7MDtMOzAwNzcgMDMwMTs7OztOOzs7MUU4Mjs7MUU4MgorMUU4NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBXIFdJVEggRElBRVJFU0lTO0x1OzA7TDswMDU3IDAzMDg7Ozs7Tjs7OzsxRTg1OworMUU4NTtMQVRJTiBTTUFMTCBMRVRURVIgVyBXSVRIIERJQUVSRVNJUztMbDswO0w7MDA3NyAwMzA4Ozs7O047OzsxRTg0OzsxRTg0CisxRTg2O0xBVElOIENBUElUQUwgTEVUVEVSIFcgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNTcgMDMwNzs7OztOOzs7OzFFODc7CisxRTg3O0xBVElOIFNNQUxMIExFVFRFUiBXIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDc3IDAzMDc7Ozs7Tjs7OzFFODY7OzFFODYKKzFFODg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVyBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA1NyAwMzIzOzs7O047Ozs7MUU4OTsKKzFFODk7TEFUSU4gU01BTEwgTEVUVEVSIFcgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNzcgMDMyMzs7OztOOzs7MUU4ODs7MUU4OAorMUU4QTtMQVRJTiBDQVBJVEFMIExFVFRFUiBYIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDU4IDAzMDc7Ozs7Tjs7OzsxRThCOworMUU4QjtMQVRJTiBTTUFMTCBMRVRURVIgWCBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA3OCAwMzA3Ozs7O047OzsxRThBOzsxRThBCisxRThDO0xBVElOIENBUElUQUwgTEVUVEVSIFggV0lUSCBESUFFUkVTSVM7THU7MDtMOzAwNTggMDMwODs7OztOOzs7OzFFOEQ7CisxRThEO0xBVElOIFNNQUxMIExFVFRFUiBYIFdJVEggRElBRVJFU0lTO0xsOzA7TDswMDc4IDAzMDg7Ozs7Tjs7OzFFOEM7OzFFOEMKKzFFOEU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA1OSAwMzA3Ozs7O047Ozs7MUU4RjsKKzFFOEY7TEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNzkgMDMwNzs7OztOOzs7MUU4RTs7MUU4RQorMUU5MDtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA1QSAwMzAyOzs7O047Ozs7MUU5MTsKKzFFOTE7TEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDdBIDAzMDI7Ozs7Tjs7OzFFOTA7OzFFOTAKKzFFOTI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA1QSAwMzIzOzs7O047Ozs7MUU5MzsKKzFFOTM7TEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwN0EgMDMyMzs7OztOOzs7MUU5Mjs7MUU5MgorMUU5NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIFdJVEggTElORSBCRUxPVztMdTswO0w7MDA1QSAwMzMxOzs7O047Ozs7MUU5NTsKKzFFOTU7TEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBMSU5FIEJFTE9XO0xsOzA7TDswMDdBIDAzMzE7Ozs7Tjs7OzFFOTQ7OzFFOTQKKzFFOTY7TEFUSU4gU01BTEwgTEVUVEVSIEggV0lUSCBMSU5FIEJFTE9XO0xsOzA7TDswMDY4IDAzMzE7Ozs7Tjs7Ozs7CisxRTk3O0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggRElBRVJFU0lTO0xsOzA7TDswMDc0IDAzMDg7Ozs7Tjs7Ozs7CisxRTk4O0xBVElOIFNNQUxMIExFVFRFUiBXIFdJVEggUklORyBBQk9WRTtMbDswO0w7MDA3NyAwMzBBOzs7O047Ozs7OworMUU5OTtMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIFJJTkcgQUJPVkU7TGw7MDtMOzAwNzkgMDMwQTs7OztOOzs7OzsKKzFFOUE7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBSSUdIVCBIQUxGIFJJTkc7TGw7MDtMOzxjb21wYXQ+IDAwNjEgMDJCRTs7OztOOzs7OzsKKzFFOUI7TEFUSU4gU01BTEwgTEVUVEVSIExPTkcgUyBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDE3RiAwMzA3Ozs7O047OzsxRTYwOzsxRTYwCisxRUEwO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNDEgMDMyMzs7OztOOzs7OzFFQTE7CisxRUExO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDYxIDAzMjM7Ozs7Tjs7OzFFQTA7OzFFQTAKKzFFQTI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEhPT0sgQUJPVkU7THU7MDtMOzAwNDEgMDMwOTs7OztOOzs7OzFFQTM7CisxRUEzO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggSE9PSyBBQk9WRTtMbDswO0w7MDA2MSAwMzA5Ozs7O047OzsxRUEyOzsxRUEyCisxRUE0O0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYIEFORCBBQ1VURTtMdTswO0w7MDBDMiAwMzAxOzs7O047Ozs7MUVBNTsKKzFFQTU7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYIEFORCBBQ1VURTtMbDswO0w7MDBFMiAwMzAxOzs7O047OzsxRUE0OzsxRUE0CisxRUE2O0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYIEFORCBHUkFWRTtMdTswO0w7MDBDMiAwMzAwOzs7O047Ozs7MUVBNzsKKzFFQTc7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYIEFORCBHUkFWRTtMbDswO0w7MDBFMiAwMzAwOzs7O047OzsxRUE2OzsxRUE2CisxRUE4O0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYIEFORCBIT09LIEFCT1ZFO0x1OzA7TDswMEMyIDAzMDk7Ozs7Tjs7OzsxRUE5OworMUVBOTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVggQU5EIEhPT0sgQUJPVkU7TGw7MDtMOzAwRTIgMDMwOTs7OztOOzs7MUVBODs7MUVBOAorMUVBQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWCBBTkQgVElMREU7THU7MDtMOzAwQzIgMDMwMzs7OztOOzs7OzFFQUI7CisxRUFCO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWCBBTkQgVElMREU7TGw7MDtMOzAwRTIgMDMwMzs7OztOOzs7MUVBQTs7MUVBQQorMUVBQztMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWCBBTkQgRE9UIEJFTE9XO0x1OzA7TDsxRUEwIDAzMDI7Ozs7Tjs7OzsxRUFEOworMUVBRDtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVggQU5EIERPVCBCRUxPVztMbDswO0w7MUVBMSAwMzAyOzs7O047OzsxRUFDOzsxRUFDCisxRUFFO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBCUkVWRSBBTkQgQUNVVEU7THU7MDtMOzAxMDIgMDMwMTs7OztOOzs7OzFFQUY7CisxRUFGO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQlJFVkUgQU5EIEFDVVRFO0xsOzA7TDswMTAzIDAzMDE7Ozs7Tjs7OzFFQUU7OzFFQUUKKzFFQjA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEJSRVZFIEFORCBHUkFWRTtMdTswO0w7MDEwMiAwMzAwOzs7O047Ozs7MUVCMTsKKzFFQjE7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBCUkVWRSBBTkQgR1JBVkU7TGw7MDtMOzAxMDMgMDMwMDs7OztOOzs7MUVCMDs7MUVCMAorMUVCMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQlJFVkUgQU5EIEhPT0sgQUJPVkU7THU7MDtMOzAxMDIgMDMwOTs7OztOOzs7OzFFQjM7CisxRUIzO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQlJFVkUgQU5EIEhPT0sgQUJPVkU7TGw7MDtMOzAxMDMgMDMwOTs7OztOOzs7MUVCMjs7MUVCMgorMUVCNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQlJFVkUgQU5EIFRJTERFO0x1OzA7TDswMTAyIDAzMDM7Ozs7Tjs7OzsxRUI1OworMUVCNTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIEJSRVZFIEFORCBUSUxERTtMbDswO0w7MDEwMyAwMzAzOzs7O047OzsxRUI0OzsxRUI0CisxRUI2O0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBCUkVWRSBBTkQgRE9UIEJFTE9XO0x1OzA7TDsxRUEwIDAzMDY7Ozs7Tjs7OzsxRUI3OworMUVCNztMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIEJSRVZFIEFORCBET1QgQkVMT1c7TGw7MDtMOzFFQTEgMDMwNjs7OztOOzs7MUVCNjs7MUVCNgorMUVCODtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDQ1IDAzMjM7Ozs7Tjs7OzsxRUI5OworMUVCOTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2NSAwMzIzOzs7O047OzsxRUI4OzsxRUI4CisxRUJBO0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBIT09LIEFCT1ZFO0x1OzA7TDswMDQ1IDAzMDk7Ozs7Tjs7OzsxRUJCOworMUVCQjtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIEhPT0sgQUJPVkU7TGw7MDtMOzAwNjUgMDMwOTs7OztOOzs7MUVCQTs7MUVCQQorMUVCQztMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggVElMREU7THU7MDtMOzAwNDUgMDMwMzs7OztOOzs7OzFFQkQ7CisxRUJEO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggVElMREU7TGw7MDtMOzAwNjUgMDMwMzs7OztOOzs7MUVCQzs7MUVCQworMUVCRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBBTkQgQUNVVEU7THU7MDtMOzAwQ0EgMDMwMTs7OztOOzs7OzFFQkY7CisxRUJGO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBBTkQgQUNVVEU7TGw7MDtMOzAwRUEgMDMwMTs7OztOOzs7MUVCRTs7MUVCRQorMUVDMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBBTkQgR1JBVkU7THU7MDtMOzAwQ0EgMDMwMDs7OztOOzs7OzFFQzE7CisxRUMxO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBBTkQgR1JBVkU7TGw7MDtMOzAwRUEgMDMwMDs7OztOOzs7MUVDMDs7MUVDMAorMUVDMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBBTkQgSE9PSyBBQk9WRTtMdTswO0w7MDBDQSAwMzA5Ozs7O047Ozs7MUVDMzsKKzFFQzM7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYIEFORCBIT09LIEFCT1ZFO0xsOzA7TDswMEVBIDAzMDk7Ozs7Tjs7OzFFQzI7OzFFQzIKKzFFQzQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVggQU5EIFRJTERFO0x1OzA7TDswMENBIDAzMDM7Ozs7Tjs7OzsxRUM1OworMUVDNTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVggQU5EIFRJTERFO0xsOzA7TDswMEVBIDAzMDM7Ozs7Tjs7OzFFQzQ7OzFFQzQKKzFFQzY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVggQU5EIERPVCBCRUxPVztMdTswO0w7MUVCOCAwMzAyOzs7O047Ozs7MUVDNzsKKzFFQzc7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYIEFORCBET1QgQkVMT1c7TGw7MDtMOzFFQjkgMDMwMjs7OztOOzs7MUVDNjs7MUVDNgorMUVDODtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggSE9PSyBBQk9WRTtMdTswO0w7MDA0OSAwMzA5Ozs7O047Ozs7MUVDOTsKKzFFQzk7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBIT09LIEFCT1ZFO0xsOzA7TDswMDY5IDAzMDk7Ozs7Tjs7OzFFQzg7OzFFQzgKKzFFQ0E7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA0OSAwMzIzOzs7O047Ozs7MUVDQjsKKzFFQ0I7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNjkgMDMyMzs7OztOOzs7MUVDQTs7MUVDQQorMUVDQztMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDRGIDAzMjM7Ozs7Tjs7OzsxRUNEOworMUVDRDtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2RiAwMzIzOzs7O047OzsxRUNDOzsxRUNDCisxRUNFO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBIT09LIEFCT1ZFO0x1OzA7TDswMDRGIDAzMDk7Ozs7Tjs7OzsxRUNGOworMUVDRjtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIEhPT0sgQUJPVkU7TGw7MDtMOzAwNkYgMDMwOTs7OztOOzs7MUVDRTs7MUVDRQorMUVEMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWCBBTkQgQUNVVEU7THU7MDtMOzAwRDQgMDMwMTs7OztOOzs7OzFFRDE7CisxRUQxO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWCBBTkQgQUNVVEU7TGw7MDtMOzAwRjQgMDMwMTs7OztOOzs7MUVEMDs7MUVEMAorMUVEMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWCBBTkQgR1JBVkU7THU7MDtMOzAwRDQgMDMwMDs7OztOOzs7OzFFRDM7CisxRUQzO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWCBBTkQgR1JBVkU7TGw7MDtMOzAwRjQgMDMwMDs7OztOOzs7MUVEMjs7MUVEMgorMUVENDtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWCBBTkQgSE9PSyBBQk9WRTtMdTswO0w7MDBENCAwMzA5Ozs7O047Ozs7MUVENTsKKzFFRDU7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYIEFORCBIT09LIEFCT1ZFO0xsOzA7TDswMEY0IDAzMDk7Ozs7Tjs7OzFFRDQ7OzFFRDQKKzFFRDY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVggQU5EIFRJTERFO0x1OzA7TDswMEQ0IDAzMDM7Ozs7Tjs7OzsxRUQ3OworMUVENztMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVggQU5EIFRJTERFO0xsOzA7TDswMEY0IDAzMDM7Ozs7Tjs7OzFFRDY7OzFFRDYKKzFFRDg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVggQU5EIERPVCBCRUxPVztMdTswO0w7MUVDQyAwMzAyOzs7O047Ozs7MUVEOTsKKzFFRDk7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYIEFORCBET1QgQkVMT1c7TGw7MDtMOzFFQ0QgMDMwMjs7OztOOzs7MUVEODs7MUVEOAorMUVEQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggSE9STiBBTkQgQUNVVEU7THU7MDtMOzAxQTAgMDMwMTs7OztOOzs7OzFFREI7CisxRURCO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggSE9STiBBTkQgQUNVVEU7TGw7MDtMOzAxQTEgMDMwMTs7OztOOzs7MUVEQTs7MUVEQQorMUVEQztMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggSE9STiBBTkQgR1JBVkU7THU7MDtMOzAxQTAgMDMwMDs7OztOOzs7OzFFREQ7CisxRUREO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggSE9STiBBTkQgR1JBVkU7TGw7MDtMOzAxQTEgMDMwMDs7OztOOzs7MUVEQzs7MUVEQworMUVERTtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggSE9STiBBTkQgSE9PSyBBQk9WRTtMdTswO0w7MDFBMCAwMzA5Ozs7O047Ozs7MUVERjsKKzFFREY7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBIT1JOIEFORCBIT09LIEFCT1ZFO0xsOzA7TDswMUExIDAzMDk7Ozs7Tjs7OzFFREU7OzFFREUKKzFFRTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIEhPUk4gQU5EIFRJTERFO0x1OzA7TDswMUEwIDAzMDM7Ozs7Tjs7OzsxRUUxOworMUVFMTtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIEhPUk4gQU5EIFRJTERFO0xsOzA7TDswMUExIDAzMDM7Ozs7Tjs7OzFFRTA7OzFFRTAKKzFFRTI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIEhPUk4gQU5EIERPVCBCRUxPVztMdTswO0w7MDFBMCAwMzIzOzs7O047Ozs7MUVFMzsKKzFFRTM7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBIT1JOIEFORCBET1QgQkVMT1c7TGw7MDtMOzAxQTEgMDMyMzs7OztOOzs7MUVFMjs7MUVFMgorMUVFNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDU1IDAzMjM7Ozs7Tjs7OzsxRUU1OworMUVFNTtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA3NSAwMzIzOzs7O047OzsxRUU0OzsxRUU0CisxRUU2O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBIT09LIEFCT1ZFO0x1OzA7TDswMDU1IDAzMDk7Ozs7Tjs7OzsxRUU3OworMUVFNztMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEhPT0sgQUJPVkU7TGw7MDtMOzAwNzUgMDMwOTs7OztOOzs7MUVFNjs7MUVFNgorMUVFODtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggSE9STiBBTkQgQUNVVEU7THU7MDtMOzAxQUYgMDMwMTs7OztOOzs7OzFFRTk7CisxRUU5O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggSE9STiBBTkQgQUNVVEU7TGw7MDtMOzAxQjAgMDMwMTs7OztOOzs7MUVFODs7MUVFOAorMUVFQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggSE9STiBBTkQgR1JBVkU7THU7MDtMOzAxQUYgMDMwMDs7OztOOzs7OzFFRUI7CisxRUVCO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggSE9STiBBTkQgR1JBVkU7TGw7MDtMOzAxQjAgMDMwMDs7OztOOzs7MUVFQTs7MUVFQQorMUVFQztMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggSE9STiBBTkQgSE9PSyBBQk9WRTtMdTswO0w7MDFBRiAwMzA5Ozs7O047Ozs7MUVFRDsKKzFFRUQ7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBIT1JOIEFORCBIT09LIEFCT1ZFO0xsOzA7TDswMUIwIDAzMDk7Ozs7Tjs7OzFFRUM7OzFFRUMKKzFFRUU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEhPUk4gQU5EIFRJTERFO0x1OzA7TDswMUFGIDAzMDM7Ozs7Tjs7OzsxRUVGOworMUVFRjtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEhPUk4gQU5EIFRJTERFO0xsOzA7TDswMUIwIDAzMDM7Ozs7Tjs7OzFFRUU7OzFFRUUKKzFFRjA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEhPUk4gQU5EIERPVCBCRUxPVztMdTswO0w7MDFBRiAwMzIzOzs7O047Ozs7MUVGMTsKKzFFRjE7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBIT1JOIEFORCBET1QgQkVMT1c7TGw7MDtMOzAxQjAgMDMyMzs7OztOOzs7MUVGMDs7MUVGMAorMUVGMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggR1JBVkU7THU7MDtMOzAwNTkgMDMwMDs7OztOOzs7OzFFRjM7CisxRUYzO0xBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggR1JBVkU7TGw7MDtMOzAwNzkgMDMwMDs7OztOOzs7MUVGMjs7MUVGMgorMUVGNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDU5IDAzMjM7Ozs7Tjs7OzsxRUY1OworMUVGNTtMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA3OSAwMzIzOzs7O047OzsxRUY0OzsxRUY0CisxRUY2O0xBVElOIENBUElUQUwgTEVUVEVSIFkgV0lUSCBIT09LIEFCT1ZFO0x1OzA7TDswMDU5IDAzMDk7Ozs7Tjs7OzsxRUY3OworMUVGNztMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIEhPT0sgQUJPVkU7TGw7MDtMOzAwNzkgMDMwOTs7OztOOzs7MUVGNjs7MUVGNgorMUVGODtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggVElMREU7THU7MDtMOzAwNTkgMDMwMzs7OztOOzs7OzFFRjk7CisxRUY5O0xBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggVElMREU7TGw7MDtMOzAwNzkgMDMwMzs7OztOOzs7MUVGODs7MUVGOAorMUYwMDtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSTtMbDswO0w7MDNCMSAwMzEzOzs7O047OzsxRjA4OzsxRjA4CisxRjAxO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBO0xsOzA7TDswM0IxIDAzMTQ7Ozs7Tjs7OzFGMDk7OzFGMDkKKzFGMDI7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFZBUklBO0xsOzA7TDsxRjAwIDAzMDA7Ozs7Tjs7OzFGMEE7OzFGMEEKKzFGMDM7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFZBUklBO0xsOzA7TDsxRjAxIDAzMDA7Ozs7Tjs7OzFGMEI7OzFGMEIKKzFGMDQ7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIE9YSUE7TGw7MDtMOzFGMDAgMDMwMTs7OztOOzs7MUYwQzs7MUYwQworMUYwNTtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgT1hJQTtMbDswO0w7MUYwMSAwMzAxOzs7O047OzsxRjBEOzsxRjBECisxRjA2O0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MUYwMCAwMzQyOzs7O047OzsxRjBFOzsxRjBFCisxRjA3O0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MUYwMSAwMzQyOzs7O047OzsxRjBGOzsxRjBGCisxRjA4O0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEk7THU7MDtMOzAzOTEgMDMxMzs7OztOOzs7OzFGMDA7CisxRjA5O0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUE7THU7MDtMOzAzOTEgMDMxNDs7OztOOzs7OzFGMDE7CisxRjBBO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFZBUklBO0x1OzA7TDsxRjA4IDAzMDA7Ozs7Tjs7OzsxRjAyOworMUYwQjtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBWQVJJQTtMdTswO0w7MUYwOSAwMzAwOzs7O047Ozs7MUYwMzsKKzFGMEM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgT1hJQTtMdTswO0w7MUYwOCAwMzAxOzs7O047Ozs7MUYwNDsKKzFGMEQ7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgT1hJQTtMdTswO0w7MUYwOSAwMzAxOzs7O047Ozs7MUYwNTsKKzFGMEU7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkk7THU7MDtMOzFGMDggMDM0Mjs7OztOOzs7OzFGMDY7CisxRjBGO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JO0x1OzA7TDsxRjA5IDAzNDI7Ozs7Tjs7OzsxRjA3OworMUYxMDtHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTiBXSVRIIFBTSUxJO0xsOzA7TDswM0I1IDAzMTM7Ozs7Tjs7OzFGMTg7OzFGMTgKKzFGMTE7R1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT04gV0lUSCBEQVNJQTtMbDswO0w7MDNCNSAwMzE0Ozs7O047OzsxRjE5OzsxRjE5CisxRjEyO0dSRUVLIFNNQUxMIExFVFRFUiBFUFNJTE9OIFdJVEggUFNJTEkgQU5EIFZBUklBO0xsOzA7TDsxRjEwIDAzMDA7Ozs7Tjs7OzFGMUE7OzFGMUEKKzFGMTM7R1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT04gV0lUSCBEQVNJQSBBTkQgVkFSSUE7TGw7MDtMOzFGMTEgMDMwMDs7OztOOzs7MUYxQjs7MUYxQgorMUYxNDtHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTiBXSVRIIFBTSUxJIEFORCBPWElBO0xsOzA7TDsxRjEwIDAzMDE7Ozs7Tjs7OzFGMUM7OzFGMUMKKzFGMTU7R1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT04gV0lUSCBEQVNJQSBBTkQgT1hJQTtMbDswO0w7MUYxMSAwMzAxOzs7O047OzsxRjFEOzsxRjFECisxRjE4O0dSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gV0lUSCBQU0lMSTtMdTswO0w7MDM5NSAwMzEzOzs7O047Ozs7MUYxMDsKKzFGMTk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVBTSUxPTiBXSVRIIERBU0lBO0x1OzA7TDswMzk1IDAzMTQ7Ozs7Tjs7OzsxRjExOworMUYxQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OIFdJVEggUFNJTEkgQU5EIFZBUklBO0x1OzA7TDsxRjE4IDAzMDA7Ozs7Tjs7OzsxRjEyOworMUYxQjtHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OIFdJVEggREFTSUEgQU5EIFZBUklBO0x1OzA7TDsxRjE5IDAzMDA7Ozs7Tjs7OzsxRjEzOworMUYxQztHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OIFdJVEggUFNJTEkgQU5EIE9YSUE7THU7MDtMOzFGMTggMDMwMTs7OztOOzs7OzFGMTQ7CisxRjFEO0dSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gV0lUSCBEQVNJQSBBTkQgT1hJQTtMdTswO0w7MUYxOSAwMzAxOzs7O047Ozs7MUYxNTsKKzFGMjA7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJO0xsOzA7TDswM0I3IDAzMTM7Ozs7Tjs7OzFGMjg7OzFGMjgKKzFGMjE7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBO0xsOzA7TDswM0I3IDAzMTQ7Ozs7Tjs7OzFGMjk7OzFGMjkKKzFGMjI7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBWQVJJQTtMbDswO0w7MUYyMCAwMzAwOzs7O047OzsxRjJBOzsxRjJBCisxRjIzO0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgVkFSSUE7TGw7MDtMOzFGMjEgMDMwMDs7OztOOzs7MUYyQjs7MUYyQgorMUYyNDtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIE9YSUE7TGw7MDtMOzFGMjAgMDMwMTs7OztOOzs7MUYyQzs7MUYyQworMUYyNTtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIE9YSUE7TGw7MDtMOzFGMjEgMDMwMTs7OztOOzs7MUYyRDs7MUYyRAorMUYyNjtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JO0xsOzA7TDsxRjIwIDAzNDI7Ozs7Tjs7OzFGMkU7OzFGMkUKKzFGMjc7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MUYyMSAwMzQyOzs7O047OzsxRjJGOzsxRjJGCisxRjI4O0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJO0x1OzA7TDswMzk3IDAzMTM7Ozs7Tjs7OzsxRjIwOworMUYyOTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQTtMdTswO0w7MDM5NyAwMzE0Ozs7O047Ozs7MUYyMTsKKzFGMkE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFZBUklBO0x1OzA7TDsxRjI4IDAzMDA7Ozs7Tjs7OzsxRjIyOworMUYyQjtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgVkFSSUE7THU7MDtMOzFGMjkgMDMwMDs7OztOOzs7OzFGMjM7CisxRjJDO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBPWElBO0x1OzA7TDsxRjI4IDAzMDE7Ozs7Tjs7OzsxRjI0OworMUYyRDtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgT1hJQTtMdTswO0w7MUYyOSAwMzAxOzs7O047Ozs7MUYyNTsKKzFGMkU7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JO0x1OzA7TDsxRjI4IDAzNDI7Ozs7Tjs7OzsxRjI2OworMUYyRjtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkk7THU7MDtMOzFGMjkgMDM0Mjs7OztOOzs7OzFGMjc7CisxRjMwO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggUFNJTEk7TGw7MDtMOzAzQjkgMDMxMzs7OztOOzs7MUYzODs7MUYzOAorMUYzMTtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERBU0lBO0xsOzA7TDswM0I5IDAzMTQ7Ozs7Tjs7OzFGMzk7OzFGMzkKKzFGMzI7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBQU0lMSSBBTkQgVkFSSUE7TGw7MDtMOzFGMzAgMDMwMDs7OztOOzs7MUYzQTs7MUYzQQorMUYzMztHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERBU0lBIEFORCBWQVJJQTtMbDswO0w7MUYzMSAwMzAwOzs7O047OzsxRjNCOzsxRjNCCisxRjM0O0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggUFNJTEkgQU5EIE9YSUE7TGw7MDtMOzFGMzAgMDMwMTs7OztOOzs7MUYzQzs7MUYzQworMUYzNTtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERBU0lBIEFORCBPWElBO0xsOzA7TDsxRjMxIDAzMDE7Ozs7Tjs7OzFGM0Q7OzFGM0QKKzFGMzY7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkk7TGw7MDtMOzFGMzAgMDM0Mjs7OztOOzs7MUYzRTs7MUYzRQorMUYzNztHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MUYzMSAwMzQyOzs7O047OzsxRjNGOzsxRjNGCisxRjM4O0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBQU0lMSTtMdTswO0w7MDM5OSAwMzEzOzs7O047Ozs7MUYzMDsKKzFGMzk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIERBU0lBO0x1OzA7TDswMzk5IDAzMTQ7Ozs7Tjs7OzsxRjMxOworMUYzQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggUFNJTEkgQU5EIFZBUklBO0x1OzA7TDsxRjM4IDAzMDA7Ozs7Tjs7OzsxRjMyOworMUYzQjtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggREFTSUEgQU5EIFZBUklBO0x1OzA7TDsxRjM5IDAzMDA7Ozs7Tjs7OzsxRjMzOworMUYzQztHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggUFNJTEkgQU5EIE9YSUE7THU7MDtMOzFGMzggMDMwMTs7OztOOzs7OzFGMzQ7CisxRjNEO0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBEQVNJQSBBTkQgT1hJQTtMdTswO0w7MUYzOSAwMzAxOzs7O047Ozs7MUYzNTsKKzFGM0U7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSTtMdTswO0w7MUYzOCAwMzQyOzs7O047Ozs7MUYzNjsKKzFGM0Y7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSTtMdTswO0w7MUYzOSAwMzQyOzs7O047Ozs7MUYzNzsKKzFGNDA7R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gV0lUSCBQU0lMSTtMbDswO0w7MDNCRiAwMzEzOzs7O047OzsxRjQ4OzsxRjQ4CisxRjQxO0dSRUVLIFNNQUxMIExFVFRFUiBPTUlDUk9OIFdJVEggREFTSUE7TGw7MDtMOzAzQkYgMDMxNDs7OztOOzs7MUY0OTs7MUY0OQorMUY0MjtHUkVFSyBTTUFMTCBMRVRURVIgT01JQ1JPTiBXSVRIIFBTSUxJIEFORCBWQVJJQTtMbDswO0w7MUY0MCAwMzAwOzs7O047OzsxRjRBOzsxRjRBCisxRjQzO0dSRUVLIFNNQUxMIExFVFRFUiBPTUlDUk9OIFdJVEggREFTSUEgQU5EIFZBUklBO0xsOzA7TDsxRjQxIDAzMDA7Ozs7Tjs7OzFGNEI7OzFGNEIKKzFGNDQ7R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gV0lUSCBQU0lMSSBBTkQgT1hJQTtMbDswO0w7MUY0MCAwMzAxOzs7O047OzsxRjRDOzsxRjRDCisxRjQ1O0dSRUVLIFNNQUxMIExFVFRFUiBPTUlDUk9OIFdJVEggREFTSUEgQU5EIE9YSUE7TGw7MDtMOzFGNDEgMDMwMTs7OztOOzs7MUY0RDs7MUY0RAorMUY0ODtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OIFdJVEggUFNJTEk7THU7MDtMOzAzOUYgMDMxMzs7OztOOzs7OzFGNDA7CisxRjQ5O0dSRUVLIENBUElUQUwgTEVUVEVSIE9NSUNST04gV0lUSCBEQVNJQTtMdTswO0w7MDM5RiAwMzE0Ozs7O047Ozs7MUY0MTsKKzFGNEE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTiBXSVRIIFBTSUxJIEFORCBWQVJJQTtMdTswO0w7MUY0OCAwMzAwOzs7O047Ozs7MUY0MjsKKzFGNEI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTiBXSVRIIERBU0lBIEFORCBWQVJJQTtMdTswO0w7MUY0OSAwMzAwOzs7O047Ozs7MUY0MzsKKzFGNEM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTiBXSVRIIFBTSUxJIEFORCBPWElBO0x1OzA7TDsxRjQ4IDAzMDE7Ozs7Tjs7OzsxRjQ0OworMUY0RDtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OIFdJVEggREFTSUEgQU5EIE9YSUE7THU7MDtMOzFGNDkgMDMwMTs7OztOOzs7OzFGNDU7CisxRjUwO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggUFNJTEk7TGw7MDtMOzAzQzUgMDMxMzs7OztOOzs7OzsKKzFGNTE7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBEQVNJQTtMbDswO0w7MDNDNSAwMzE0Ozs7O047OzsxRjU5OzsxRjU5CisxRjUyO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggUFNJTEkgQU5EIFZBUklBO0xsOzA7TDsxRjUwIDAzMDA7Ozs7Tjs7Ozs7CisxRjUzO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggREFTSUEgQU5EIFZBUklBO0xsOzA7TDsxRjUxIDAzMDA7Ozs7Tjs7OzFGNUI7OzFGNUIKKzFGNTQ7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBQU0lMSSBBTkQgT1hJQTtMbDswO0w7MUY1MCAwMzAxOzs7O047Ozs7OworMUY1NTtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIERBU0lBIEFORCBPWElBO0xsOzA7TDsxRjUxIDAzMDE7Ozs7Tjs7OzFGNUQ7OzFGNUQKKzFGNTY7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkk7TGw7MDtMOzFGNTAgMDM0Mjs7OztOOzs7OzsKKzFGNTc7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkk7TGw7MDtMOzFGNTEgMDM0Mjs7OztOOzs7MUY1Rjs7MUY1RgorMUY1OTtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIFdJVEggREFTSUE7THU7MDtMOzAzQTUgMDMxNDs7OztOOzs7OzFGNTE7CisxRjVCO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gV0lUSCBEQVNJQSBBTkQgVkFSSUE7THU7MDtMOzFGNTkgMDMwMDs7OztOOzs7OzFGNTM7CisxRjVEO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gV0lUSCBEQVNJQSBBTkQgT1hJQTtMdTswO0w7MUY1OSAwMzAxOzs7O047Ozs7MUY1NTsKKzFGNUY7R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSTtMdTswO0w7MUY1OSAwMzQyOzs7O047Ozs7MUY1NzsKKzFGNjA7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEk7TGw7MDtMOzAzQzkgMDMxMzs7OztOOzs7MUY2ODs7MUY2OAorMUY2MTtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQTtMbDswO0w7MDNDOSAwMzE0Ozs7O047OzsxRjY5OzsxRjY5CisxRjYyO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBWQVJJQTtMbDswO0w7MUY2MCAwMzAwOzs7O047OzsxRjZBOzsxRjZBCisxRjYzO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBWQVJJQTtMbDswO0w7MUY2MSAwMzAwOzs7O047OzsxRjZCOzsxRjZCCisxRjY0O0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBPWElBO0xsOzA7TDsxRjYwIDAzMDE7Ozs7Tjs7OzFGNkM7OzFGNkMKKzFGNjU7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIE9YSUE7TGw7MDtMOzFGNjEgMDMwMTs7OztOOzs7MUY2RDs7MUY2RAorMUY2NjtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkk7TGw7MDtMOzFGNjAgMDM0Mjs7OztOOzs7MUY2RTs7MUY2RQorMUY2NztHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkk7TGw7MDtMOzFGNjEgMDM0Mjs7OztOOzs7MUY2Rjs7MUY2RgorMUY2ODtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJO0x1OzA7TDswM0E5IDAzMTM7Ozs7Tjs7OzsxRjYwOworMUY2OTtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBO0x1OzA7TDswM0E5IDAzMTQ7Ozs7Tjs7OzsxRjYxOworMUY2QTtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBWQVJJQTtMdTswO0w7MUY2OCAwMzAwOzs7O047Ozs7MUY2MjsKKzFGNkI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgVkFSSUE7THU7MDtMOzFGNjkgMDMwMDs7OztOOzs7OzFGNjM7CisxRjZDO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIE9YSUE7THU7MDtMOzFGNjggMDMwMTs7OztOOzs7OzFGNjQ7CisxRjZEO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIE9YSUE7THU7MDtMOzFGNjkgMDMwMTs7OztOOzs7OzFGNjU7CisxRjZFO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JO0x1OzA7TDsxRjY4IDAzNDI7Ozs7Tjs7OzsxRjY2OworMUY2RjtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSTtMdTswO0w7MUY2OSAwMzQyOzs7O047Ozs7MUY2NzsKKzFGNzA7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggVkFSSUE7TGw7MDtMOzAzQjEgMDMwMDs7OztOOzs7MUZCQTs7MUZCQQorMUY3MTtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBPWElBO0xsOzA7TDswM0FDOzs7O047OzsxRkJCOzsxRkJCCisxRjcyO0dSRUVLIFNNQUxMIExFVFRFUiBFUFNJTE9OIFdJVEggVkFSSUE7TGw7MDtMOzAzQjUgMDMwMDs7OztOOzs7MUZDODs7MUZDOAorMUY3MztHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTiBXSVRIIE9YSUE7TGw7MDtMOzAzQUQ7Ozs7Tjs7OzFGQzk7OzFGQzkKKzFGNzQ7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFZBUklBO0xsOzA7TDswM0I3IDAzMDA7Ozs7Tjs7OzFGQ0E7OzFGQ0EKKzFGNzU7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIE9YSUE7TGw7MDtMOzAzQUU7Ozs7Tjs7OzFGQ0I7OzFGQ0IKKzFGNzY7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBWQVJJQTtMbDswO0w7MDNCOSAwMzAwOzs7O047OzsxRkRBOzsxRkRBCisxRjc3O0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggT1hJQTtMbDswO0w7MDNBRjs7OztOOzs7MUZEQjs7MUZEQgorMUY3ODtHUkVFSyBTTUFMTCBMRVRURVIgT01JQ1JPTiBXSVRIIFZBUklBO0xsOzA7TDswM0JGIDAzMDA7Ozs7Tjs7OzFGRjg7OzFGRjgKKzFGNzk7R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gV0lUSCBPWElBO0xsOzA7TDswM0NDOzs7O047OzsxRkY5OzsxRkY5CisxRjdBO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggVkFSSUE7TGw7MDtMOzAzQzUgMDMwMDs7OztOOzs7MUZFQTs7MUZFQQorMUY3QjtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIE9YSUE7TGw7MDtMOzAzQ0Q7Ozs7Tjs7OzFGRUI7OzFGRUIKKzFGN0M7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggVkFSSUE7TGw7MDtMOzAzQzkgMDMwMDs7OztOOzs7MUZGQTs7MUZGQQorMUY3RDtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBPWElBO0xsOzA7TDswM0NFOzs7O047OzsxRkZCOzsxRkZCCisxRjgwO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjAwIDAzNDU7Ozs7Tjs7OzFGODg7OzFGODgKKzFGODE7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMDEgMDM0NTs7OztOOzs7MUY4OTs7MUY4OQorMUY4MjtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMDIgMDM0NTs7OztOOzs7MUY4QTs7MUY4QQorMUY4MztHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMDMgMDM0NTs7OztOOzs7MUY4Qjs7MUY4QgorMUY4NDtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgT1hJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYwNCAwMzQ1Ozs7O047OzsxRjhDOzsxRjhDCisxRjg1O0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBPWElBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjA1IDAzNDU7Ozs7Tjs7OzFGOEQ7OzFGOEQKKzFGODY7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjA2IDAzNDU7Ozs7Tjs7OzFGOEU7OzFGOEUKKzFGODc7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjA3IDAzNDU7Ozs7Tjs7OzFGOEY7OzFGOEYKKzFGODg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGMDggMDM0NTs7OztOOzs7OzFGODA7CisxRjg5O0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjA5IDAzNDU7Ozs7Tjs7OzsxRjgxOworMUY4QTtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBWQVJJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGMEEgMDM0NTs7OztOOzs7OzFGODI7CisxRjhCO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFZBUklBIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUYwQiAwMzQ1Ozs7O047Ozs7MUY4MzsKKzFGOEM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgT1hJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGMEMgMDM0NTs7OztOOzs7OzFGODQ7CisxRjhEO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjBEIDAzNDU7Ozs7Tjs7OzsxRjg1OworMUY4RTtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGMEUgMDM0NTs7OztOOzs7OzFGODY7CisxRjhGO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUYwRiAwMzQ1Ozs7O047Ozs7MUY4NzsKKzFGOTA7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjIwIDAzNDU7Ozs7Tjs7OzFGOTg7OzFGOTgKKzFGOTE7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjIxIDAzNDU7Ozs7Tjs7OzFGOTk7OzFGOTkKKzFGOTI7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYyMiAwMzQ1Ozs7O047OzsxRjlBOzsxRjlBCisxRjkzO0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMjMgMDM0NTs7OztOOzs7MUY5Qjs7MUY5QgorMUY5NDtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMjQgMDM0NTs7OztOOzs7MUY5Qzs7MUY5QworMUY5NTtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMjUgMDM0NTs7OztOOzs7MUY5RDs7MUY5RAorMUY5NjtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjI2IDAzNDU7Ozs7Tjs7OzFGOUU7OzFGOUUKKzFGOTc7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYyNyAwMzQ1Ozs7O047OzsxRjlGOzsxRjlGCisxRjk4O0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUYyOCAwMzQ1Ozs7O047Ozs7MUY5MDsKKzFGOTk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjI5IDAzNDU7Ozs7Tjs7OzsxRjkxOworMUY5QTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgVkFSSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjJBIDAzNDU7Ozs7Tjs7OzsxRjkyOworMUY5QjtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgVkFSSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjJCIDAzNDU7Ozs7Tjs7OzsxRjkzOworMUY5QztHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgT1hJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGMkMgMDM0NTs7OztOOzs7OzFGOTQ7CisxRjlEO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBPWElBIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUYyRCAwMzQ1Ozs7O047Ozs7MUY5NTsKKzFGOUU7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUYyRSAwMzQ1Ozs7O047Ozs7MUY5NjsKKzFGOUY7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUYyRiAwMzQ1Ozs7O047Ozs7MUY5NzsKKzFGQTA7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGNjAgMDM0NTs7OztOOzs7MUZBODs7MUZBOAorMUZBMTtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUY2MSAwMzQ1Ozs7O047OzsxRkE5OzsxRkE5CisxRkEyO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUY2MiAwMzQ1Ozs7O047OzsxRkFBOzsxRkFBCisxRkEzO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUY2MyAwMzQ1Ozs7O047OzsxRkFCOzsxRkFCCisxRkE0O0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBPWElBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjY0IDAzNDU7Ozs7Tjs7OzFGQUM7OzFGQUMKKzFGQTU7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGNjUgMDM0NTs7OztOOzs7MUZBRDs7MUZBRAorMUZBNjtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGNjYgMDM0NTs7OztOOzs7MUZBRTs7MUZBRQorMUZBNztHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGNjcgMDM0NTs7OztOOzs7MUZBRjs7MUZBRgorMUZBODtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUY2OCAwMzQ1Ozs7O047Ozs7MUZBMDsKKzFGQTk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGNjkgMDM0NTs7OztOOzs7OzFGQTE7CisxRkFBO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFZBUklBIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUY2QSAwMzQ1Ozs7O047Ozs7MUZBMjsKKzFGQUI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgVkFSSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjZCIDAzNDU7Ozs7Tjs7OzsxRkEzOworMUZBQztHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBPWElBIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUY2QyAwMzQ1Ozs7O047Ozs7MUZBNDsKKzFGQUQ7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgT1hJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGNkQgMDM0NTs7OztOOzs7OzFGQTU7CisxRkFFO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUY2RSAwMzQ1Ozs7O047Ozs7MUZBNjsKKzFGQUY7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkkgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjZGIDAzNDU7Ozs7Tjs7OzsxRkE3OworMUZCMDtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBWUkFDSFk7TGw7MDtMOzAzQjEgMDMwNjs7OztOOzs7MUZCODs7MUZCOAorMUZCMTtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBNQUNST047TGw7MDtMOzAzQjEgMDMwNDs7OztOOzs7MUZCOTs7MUZCOQorMUZCMjtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUY3MCAwMzQ1Ozs7O047Ozs7OworMUZCMztHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBZUE9HRUdSQU1NRU5JO0xsOzA7TDswM0IxIDAzNDU7Ozs7Tjs7OzFGQkM7OzFGQkMKKzFGQjQ7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggT1hJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MDNBQyAwMzQ1Ozs7O047Ozs7OworMUZCNjtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQRVJJU1BPTUVOSTtMbDswO0w7MDNCMSAwMzQyOzs7O047Ozs7OworMUZCNztHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUZCNiAwMzQ1Ozs7O047Ozs7OworMUZCODtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFZSQUNIWTtMdTswO0w7MDM5MSAwMzA2Ozs7O047Ozs7MUZCMDsKKzFGQjk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBNQUNST047THU7MDtMOzAzOTEgMDMwNDs7OztOOzs7OzFGQjE7CisxRkJBO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggVkFSSUE7THU7MDtMOzAzOTEgMDMwMDs7OztOOzs7OzFGNzA7CisxRkJCO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggT1hJQTtMdTswO0w7MDM4Njs7OztOOzs7OzFGNzE7CisxRkJDO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzAzOTEgMDM0NTs7OztOOzs7OzFGQjM7CisxRkJEO0dSRUVLIEtPUk9OSVM7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMTM7Ozs7Tjs7Ozs7CisxRkJFO0dSRUVLIFBST1NHRUdSQU1NRU5JO0xsOzA7TDswM0I5Ozs7O047OzswMzk5OzswMzk5CisxRkJGO0dSRUVLIFBTSUxJO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzEzOzs7O047Ozs7OworMUZDMDtHUkVFSyBQRVJJU1BPTUVOSTtTazswO09OOzxjb21wYXQ+IDAwMjAgMDM0Mjs7OztOOzs7OzsKKzFGQzE7R1JFRUsgRElBTFlUSUtBIEFORCBQRVJJU1BPTUVOSTtTazswO09OOzAwQTggMDM0Mjs7OztOOzs7OzsKKzFGQzI7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjc0IDAzNDU7Ozs7Tjs7Ozs7CisxRkMzO0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBZUE9HRUdSQU1NRU5JO0xsOzA7TDswM0I3IDAzNDU7Ozs7Tjs7OzFGQ0M7OzFGQ0MKKzFGQzQ7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzAzQUUgMDM0NTs7OztOOzs7OzsKKzFGQzY7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBFUklTUE9NRU5JO0xsOzA7TDswM0I3IDAzNDI7Ozs7Tjs7Ozs7CisxRkM3O0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUZDNiAwMzQ1Ozs7O047Ozs7OworMUZDODtHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OIFdJVEggVkFSSUE7THU7MDtMOzAzOTUgMDMwMDs7OztOOzs7OzFGNzI7CisxRkM5O0dSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gV0lUSCBPWElBO0x1OzA7TDswMzg4Ozs7O047Ozs7MUY3MzsKKzFGQ0E7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggVkFSSUE7THU7MDtMOzAzOTcgMDMwMDs7OztOOzs7OzFGNzQ7CisxRkNCO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIE9YSUE7THU7MDtMOzAzODk7Ozs7Tjs7OzsxRjc1OworMUZDQztHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MDM5NyAwMzQ1Ozs7O047Ozs7MUZDMzsKKzFGQ0Q7R1JFRUsgUFNJTEkgQU5EIFZBUklBO1NrOzA7T047MUZCRiAwMzAwOzs7O047Ozs7OworMUZDRTtHUkVFSyBQU0lMSSBBTkQgT1hJQTtTazswO09OOzFGQkYgMDMwMTs7OztOOzs7OzsKKzFGQ0Y7R1JFRUsgUFNJTEkgQU5EIFBFUklTUE9NRU5JO1NrOzA7T047MUZCRiAwMzQyOzs7O047Ozs7OworMUZEMDtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIFZSQUNIWTtMbDswO0w7MDNCOSAwMzA2Ozs7O047OzsxRkQ4OzsxRkQ4CisxRkQxO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggTUFDUk9OO0xsOzA7TDswM0I5IDAzMDQ7Ozs7Tjs7OzFGRDk7OzFGRDkKKzFGRDI7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBESUFMWVRJS0EgQU5EIFZBUklBO0xsOzA7TDswM0NBIDAzMDA7Ozs7Tjs7Ozs7CisxRkQzO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggRElBTFlUSUtBIEFORCBPWElBO0xsOzA7TDswMzkwOzs7O047Ozs7OworMUZENjtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIFBFUklTUE9NRU5JO0xsOzA7TDswM0I5IDAzNDI7Ozs7Tjs7Ozs7CisxRkQ3O0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggRElBTFlUSUtBIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MDNDQSAwMzQyOzs7O047Ozs7OworMUZEODtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggVlJBQ0hZO0x1OzA7TDswMzk5IDAzMDY7Ozs7Tjs7OzsxRkQwOworMUZEOTtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggTUFDUk9OO0x1OzA7TDswMzk5IDAzMDQ7Ozs7Tjs7OzsxRkQxOworMUZEQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggVkFSSUE7THU7MDtMOzAzOTkgMDMwMDs7OztOOzs7OzFGNzY7CisxRkRCO0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBPWElBO0x1OzA7TDswMzhBOzs7O047Ozs7MUY3NzsKKzFGREQ7R1JFRUsgREFTSUEgQU5EIFZBUklBO1NrOzA7T047MUZGRSAwMzAwOzs7O047Ozs7OworMUZERTtHUkVFSyBEQVNJQSBBTkQgT1hJQTtTazswO09OOzFGRkUgMDMwMTs7OztOOzs7OzsKKzFGREY7R1JFRUsgREFTSUEgQU5EIFBFUklTUE9NRU5JO1NrOzA7T047MUZGRSAwMzQyOzs7O047Ozs7OworMUZFMDtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIFZSQUNIWTtMbDswO0w7MDNDNSAwMzA2Ozs7O047OzsxRkU4OzsxRkU4CisxRkUxO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggTUFDUk9OO0xsOzA7TDswM0M1IDAzMDQ7Ozs7Tjs7OzFGRTk7OzFGRTkKKzFGRTI7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBESUFMWVRJS0EgQU5EIFZBUklBO0xsOzA7TDswM0NCIDAzMDA7Ozs7Tjs7Ozs7CisxRkUzO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggRElBTFlUSUtBIEFORCBPWElBO0xsOzA7TDswM0IwOzs7O047Ozs7OworMUZFNDtHUkVFSyBTTUFMTCBMRVRURVIgUkhPIFdJVEggUFNJTEk7TGw7MDtMOzAzQzEgMDMxMzs7OztOOzs7OzsKKzFGRTU7R1JFRUsgU01BTEwgTEVUVEVSIFJITyBXSVRIIERBU0lBO0xsOzA7TDswM0MxIDAzMTQ7Ozs7Tjs7OzFGRUM7OzFGRUMKKzFGRTY7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBQRVJJU1BPTUVOSTtMbDswO0w7MDNDNSAwMzQyOzs7O047Ozs7OworMUZFNztHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIERJQUxZVElLQSBBTkQgUEVSSVNQT01FTkk7TGw7MDtMOzAzQ0IgMDM0Mjs7OztOOzs7OzsKKzFGRTg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBXSVRIIFZSQUNIWTtMdTswO0w7MDNBNSAwMzA2Ozs7O047Ozs7MUZFMDsKKzFGRTk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBXSVRIIE1BQ1JPTjtMdTswO0w7MDNBNSAwMzA0Ozs7O047Ozs7MUZFMTsKKzFGRUE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBXSVRIIFZBUklBO0x1OzA7TDswM0E1IDAzMDA7Ozs7Tjs7OzsxRjdBOworMUZFQjtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIFdJVEggT1hJQTtMdTswO0w7MDM4RTs7OztOOzs7OzFGN0I7CisxRkVDO0dSRUVLIENBUElUQUwgTEVUVEVSIFJITyBXSVRIIERBU0lBO0x1OzA7TDswM0ExIDAzMTQ7Ozs7Tjs7OzsxRkU1OworMUZFRDtHUkVFSyBESUFMWVRJS0EgQU5EIFZBUklBO1NrOzA7T047MDBBOCAwMzAwOzs7O047Ozs7OworMUZFRTtHUkVFSyBESUFMWVRJS0EgQU5EIE9YSUE7U2s7MDtPTjswMzg1Ozs7O047Ozs7OworMUZFRjtHUkVFSyBWQVJJQTtTazswO09OOzAwNjA7Ozs7Tjs7Ozs7CisxRkYyO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjdDIDAzNDU7Ozs7Tjs7Ozs7CisxRkYzO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzAzQzkgMDM0NTs7OztOOzs7MUZGQzs7MUZGQworMUZGNDtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBPWElBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDswM0NFIDAzNDU7Ozs7Tjs7Ozs7CisxRkY2O0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBFUklTUE9NRU5JO0xsOzA7TDswM0M5IDAzNDI7Ozs7Tjs7Ozs7CisxRkY3O0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRkY2IDAzNDU7Ozs7Tjs7Ozs7CisxRkY4O0dSRUVLIENBUElUQUwgTEVUVEVSIE9NSUNST04gV0lUSCBWQVJJQTtMdTswO0w7MDM5RiAwMzAwOzs7O047Ozs7MUY3ODsKKzFGRjk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTiBXSVRIIE9YSUE7THU7MDtMOzAzOEM7Ozs7Tjs7OzsxRjc5OworMUZGQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFZBUklBO0x1OzA7TDswM0E5IDAzMDA7Ozs7Tjs7OzsxRjdDOworMUZGQjtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIE9YSUE7THU7MDtMOzAzOEY7Ozs7Tjs7OzsxRjdEOworMUZGQztHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBST1NHRUdSQU1NRU5JO0x0OzA7TDswM0E5IDAzNDU7Ozs7Tjs7OzsxRkYzOworMUZGRDtHUkVFSyBPWElBO1NrOzA7T047MDBCNDs7OztOOzs7OzsKKzFGRkU7R1JFRUsgREFTSUE7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMTQ7Ozs7Tjs7Ozs7CisyMDAwO0VOIFFVQUQ7WnM7MDtXUzsyMDAyOzs7O047Ozs7OworMjAwMTtFTSBRVUFEO1pzOzA7V1M7MjAwMzs7OztOOzs7OzsKKzIwMDI7RU4gU1BBQ0U7WnM7MDtXUzs8Y29tcGF0PiAwMDIwOzs7O047Ozs7OworMjAwMztFTSBTUEFDRTtaczswO1dTOzxjb21wYXQ+IDAwMjA7Ozs7Tjs7Ozs7CisyMDA0O1RIUkVFLVBFUi1FTSBTUEFDRTtaczswO1dTOzxjb21wYXQ+IDAwMjA7Ozs7Tjs7Ozs7CisyMDA1O0ZPVVItUEVSLUVNIFNQQUNFO1pzOzA7V1M7PGNvbXBhdD4gMDAyMDs7OztOOzs7OzsKKzIwMDY7U0lYLVBFUi1FTSBTUEFDRTtaczswO1dTOzxjb21wYXQ+IDAwMjA7Ozs7Tjs7Ozs7CisyMDA3O0ZJR1VSRSBTUEFDRTtaczswO1dTOzxub0JyZWFrPiAwMDIwOzs7O047Ozs7OworMjAwODtQVU5DVFVBVElPTiBTUEFDRTtaczswO1dTOzxjb21wYXQ+IDAwMjA7Ozs7Tjs7Ozs7CisyMDA5O1RISU4gU1BBQ0U7WnM7MDtXUzs8Y29tcGF0PiAwMDIwOzs7O047Ozs7OworMjAwQTtIQUlSIFNQQUNFO1pzOzA7V1M7PGNvbXBhdD4gMDAyMDs7OztOOzs7OzsKKzIwMEI7WkVSTyBXSURUSCBTUEFDRTtaczswO0JOOzs7OztOOzs7OzsKKzIwMEM7WkVSTyBXSURUSCBOT04tSk9JTkVSO0NmOzA7Qk47Ozs7O047Ozs7OworMjAwRDtaRVJPIFdJRFRIIEpPSU5FUjtDZjswO0JOOzs7OztOOzs7OzsKKzIwMEU7TEVGVC1UTy1SSUdIVCBNQVJLO0NmOzA7TDs7Ozs7Tjs7Ozs7CisyMDBGO1JJR0hULVRPLUxFRlQgTUFSSztDZjswO1I7Ozs7O047Ozs7OworMjAxMDtIWVBIRU47UGQ7MDtPTjs7Ozs7Tjs7Ozs7CisyMDExO05PTi1CUkVBS0lORyBIWVBIRU47UGQ7MDtPTjs8bm9CcmVhaz4gMjAxMDs7OztOOzs7OzsKKzIwMTI7RklHVVJFIERBU0g7UGQ7MDtPTjs7Ozs7Tjs7Ozs7CisyMDEzO0VOIERBU0g7UGQ7MDtPTjs7Ozs7Tjs7Ozs7CisyMDE0O0VNIERBU0g7UGQ7MDtPTjs7Ozs7Tjs7Ozs7CisyMDE1O0hPUklaT05UQUwgQkFSO1BkOzA7T047Ozs7O047UVVPVEFUSU9OIERBU0g7Ozs7CisyMDE2O0RPVUJMRSBWRVJUSUNBTCBMSU5FO1BvOzA7T047Ozs7O047RE9VQkxFIFZFUlRJQ0FMIEJBUjs7OzsKKzIwMTc7RE9VQkxFIExPVyBMSU5FO1BvOzA7T047PGNvbXBhdD4gMDAyMCAwMzMzOzs7O047U1BBQ0lORyBET1VCTEUgVU5ERVJTQ09SRTs7OzsKKzIwMTg7TEVGVCBTSU5HTEUgUVVPVEFUSU9OIE1BUks7UGk7MDtPTjs7Ozs7TjtTSU5HTEUgVFVSTkVEIENPTU1BIFFVT1RBVElPTiBNQVJLOzs7OworMjAxOTtSSUdIVCBTSU5HTEUgUVVPVEFUSU9OIE1BUks7UGY7MDtPTjs7Ozs7TjtTSU5HTEUgQ09NTUEgUVVPVEFUSU9OIE1BUks7Ozs7CisyMDFBO1NJTkdMRSBMT1ctOSBRVU9UQVRJT04gTUFSSztQczswO09OOzs7OztOO0xPVyBTSU5HTEUgQ09NTUEgUVVPVEFUSU9OIE1BUks7Ozs7CisyMDFCO1NJTkdMRSBISUdILVJFVkVSU0VELTkgUVVPVEFUSU9OIE1BUks7UGk7MDtPTjs7Ozs7TjtTSU5HTEUgUkVWRVJTRUQgQ09NTUEgUVVPVEFUSU9OIE1BUks7Ozs7CisyMDFDO0xFRlQgRE9VQkxFIFFVT1RBVElPTiBNQVJLO1BpOzA7T047Ozs7O047RE9VQkxFIFRVUk5FRCBDT01NQSBRVU9UQVRJT04gTUFSSzs7OzsKKzIwMUQ7UklHSFQgRE9VQkxFIFFVT1RBVElPTiBNQVJLO1BmOzA7T047Ozs7O047RE9VQkxFIENPTU1BIFFVT1RBVElPTiBNQVJLOzs7OworMjAxRTtET1VCTEUgTE9XLTkgUVVPVEFUSU9OIE1BUks7UHM7MDtPTjs7Ozs7TjtMT1cgRE9VQkxFIENPTU1BIFFVT1RBVElPTiBNQVJLOzs7OworMjAxRjtET1VCTEUgSElHSC1SRVZFUlNFRC05IFFVT1RBVElPTiBNQVJLO1BpOzA7T047Ozs7O047RE9VQkxFIFJFVkVSU0VEIENPTU1BIFFVT1RBVElPTiBNQVJLOzs7OworMjAyMDtEQUdHRVI7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDIxO0RPVUJMRSBEQUdHRVI7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDIyO0JVTExFVDtQbzswO09OOzs7OztOOzs7OzsKKzIwMjM7VFJJQU5HVUxBUiBCVUxMRVQ7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDI0O09ORSBET1QgTEVBREVSO1BvOzA7T047PGNvbXBhdD4gMDAyRTs7OztOOzs7OzsKKzIwMjU7VFdPIERPVCBMRUFERVI7UG87MDtPTjs8Y29tcGF0PiAwMDJFIDAwMkU7Ozs7Tjs7Ozs7CisyMDI2O0hPUklaT05UQUwgRUxMSVBTSVM7UG87MDtPTjs8Y29tcGF0PiAwMDJFIDAwMkUgMDAyRTs7OztOOzs7OzsKKzIwMjc7SFlQSEVOQVRJT04gUE9JTlQ7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDI4O0xJTkUgU0VQQVJBVE9SO1psOzA7V1M7Ozs7O047Ozs7OworMjAyOTtQQVJBR1JBUEggU0VQQVJBVE9SO1pwOzA7Qjs7Ozs7Tjs7Ozs7CisyMDJBO0xFRlQtVE8tUklHSFQgRU1CRURESU5HO0NmOzA7TFJFOzs7OztOOzs7OzsKKzIwMkI7UklHSFQtVE8tTEVGVCBFTUJFRERJTkc7Q2Y7MDtSTEU7Ozs7O047Ozs7OworMjAyQztQT1AgRElSRUNUSU9OQUwgRk9STUFUVElORztDZjswO1BERjs7Ozs7Tjs7Ozs7CisyMDJEO0xFRlQtVE8tUklHSFQgT1ZFUlJJREU7Q2Y7MDtMUk87Ozs7O047Ozs7OworMjAyRTtSSUdIVC1UTy1MRUZUIE9WRVJSSURFO0NmOzA7UkxPOzs7OztOOzs7OzsKKzIwMkY7TkFSUk9XIE5PLUJSRUFLIFNQQUNFO1pzOzA7V1M7PG5vQnJlYWs+IDAwMjA7Ozs7Tjs7Ozs7CisyMDMwO1BFUiBNSUxMRSBTSUdOO1BvOzA7RVQ7Ozs7O047Ozs7OworMjAzMTtQRVIgVEVOIFRIT1VTQU5EIFNJR047UG87MDtFVDs7Ozs7Tjs7Ozs7CisyMDMyO1BSSU1FO1BvOzA7RVQ7Ozs7O047Ozs7OworMjAzMztET1VCTEUgUFJJTUU7UG87MDtFVDs8Y29tcGF0PiAyMDMyIDIwMzI7Ozs7Tjs7Ozs7CisyMDM0O1RSSVBMRSBQUklNRTtQbzswO0VUOzxjb21wYXQ+IDIwMzIgMjAzMiAyMDMyOzs7O047Ozs7OworMjAzNTtSRVZFUlNFRCBQUklNRTtQbzswO09OOzs7OztOOzs7OzsKKzIwMzY7UkVWRVJTRUQgRE9VQkxFIFBSSU1FO1BvOzA7T047PGNvbXBhdD4gMjAzNSAyMDM1Ozs7O047Ozs7OworMjAzNztSRVZFUlNFRCBUUklQTEUgUFJJTUU7UG87MDtPTjs8Y29tcGF0PiAyMDM1IDIwMzUgMjAzNTs7OztOOzs7OzsKKzIwMzg7Q0FSRVQ7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDM5O1NJTkdMRSBMRUZULVBPSU5USU5HIEFOR0xFIFFVT1RBVElPTiBNQVJLO1BpOzA7T047Ozs7O1k7TEVGVCBQT0lOVElORyBTSU5HTEUgR1VJTExFTUVUOzs7OworMjAzQTtTSU5HTEUgUklHSFQtUE9JTlRJTkcgQU5HTEUgUVVPVEFUSU9OIE1BUks7UGY7MDtPTjs7Ozs7WTtSSUdIVCBQT0lOVElORyBTSU5HTEUgR1VJTExFTUVUOzs7OworMjAzQjtSRUZFUkVOQ0UgTUFSSztQbzswO09OOzs7OztOOzs7OzsKKzIwM0M7RE9VQkxFIEVYQ0xBTUFUSU9OIE1BUks7UG87MDtPTjs8Y29tcGF0PiAwMDIxIDAwMjE7Ozs7Tjs7Ozs7CisyMDNEO0lOVEVSUk9CQU5HO1BvOzA7T047Ozs7O047Ozs7OworMjAzRTtPVkVSTElORTtQbzswO09OOzxjb21wYXQ+IDAwMjAgMDMwNTs7OztOO1NQQUNJTkcgT1ZFUlNDT1JFOzs7OworMjAzRjtVTkRFUlRJRTtQYzswO09OOzs7OztOOztFbm90aWtvbjs7OworMjA0MDtDSEFSQUNURVIgVElFO1BjOzA7T047Ozs7O047Ozs7OworMjA0MTtDQVJFVCBJTlNFUlRJT04gUE9JTlQ7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDQyO0FTVEVSSVNNO1BvOzA7T047Ozs7O047Ozs7OworMjA0MztIWVBIRU4gQlVMTEVUO1BvOzA7T047Ozs7O047Ozs7OworMjA0NDtGUkFDVElPTiBTTEFTSDtTbTswO09OOzs7OztOOzs7OzsKKzIwNDU7TEVGVCBTUVVBUkUgQlJBQ0tFVCBXSVRIIFFVSUxMO1BzOzA7T047Ozs7O1k7Ozs7OworMjA0NjtSSUdIVCBTUVVBUkUgQlJBQ0tFVCBXSVRIIFFVSUxMO1BlOzA7T047Ozs7O1k7Ozs7OworMjA0ODtRVUVTVElPTiBFWENMQU1BVElPTiBNQVJLO1BvOzA7T047PGNvbXBhdD4gMDAzRiAwMDIxOzs7O047Ozs7OworMjA0OTtFWENMQU1BVElPTiBRVUVTVElPTiBNQVJLO1BvOzA7T047PGNvbXBhdD4gMDAyMSAwMDNGOzs7O047Ozs7OworMjA0QTtUSVJPTklBTiBTSUdOIEVUO1BvOzA7T047Ozs7O047Ozs7OworMjA0QjtSRVZFUlNFRCBQSUxDUk9XIFNJR047UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDRDO0JMQUNLIExFRlRXQVJEUyBCVUxMRVQ7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDREO0JMQUNLIFJJR0hUV0FSRFMgQlVMTEVUO1BvOzA7T047Ozs7O047Ozs7OworMjA2QTtJTkhJQklUIFNZTU1FVFJJQyBTV0FQUElORztDZjswO0JOOzs7OztOOzs7OzsKKzIwNkI7QUNUSVZBVEUgU1lNTUVUUklDIFNXQVBQSU5HO0NmOzA7Qk47Ozs7O047Ozs7OworMjA2QztJTkhJQklUIEFSQUJJQyBGT1JNIFNIQVBJTkc7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisyMDZEO0FDVElWQVRFIEFSQUJJQyBGT1JNIFNIQVBJTkc7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisyMDZFO05BVElPTkFMIERJR0lUIFNIQVBFUztDZjswO0JOOzs7OztOOzs7OzsKKzIwNkY7Tk9NSU5BTCBESUdJVCBTSEFQRVM7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisyMDcwO1NVUEVSU0NSSVBUIFpFUk87Tm87MDtFTjs8c3VwZXI+IDAwMzA7MDswOzA7TjtTVVBFUlNDUklQVCBESUdJVCBaRVJPOzs7OworMjA3NDtTVVBFUlNDUklQVCBGT1VSO05vOzA7RU47PHN1cGVyPiAwMDM0OzQ7NDs0O047U1VQRVJTQ1JJUFQgRElHSVQgRk9VUjs7OzsKKzIwNzU7U1VQRVJTQ1JJUFQgRklWRTtObzswO0VOOzxzdXBlcj4gMDAzNTs1OzU7NTtOO1NVUEVSU0NSSVBUIERJR0lUIEZJVkU7Ozs7CisyMDc2O1NVUEVSU0NSSVBUIFNJWDtObzswO0VOOzxzdXBlcj4gMDAzNjs2OzY7NjtOO1NVUEVSU0NSSVBUIERJR0lUIFNJWDs7OzsKKzIwNzc7U1VQRVJTQ1JJUFQgU0VWRU47Tm87MDtFTjs8c3VwZXI+IDAwMzc7Nzs3Ozc7TjtTVVBFUlNDUklQVCBESUdJVCBTRVZFTjs7OzsKKzIwNzg7U1VQRVJTQ1JJUFQgRUlHSFQ7Tm87MDtFTjs8c3VwZXI+IDAwMzg7ODs4Ozg7TjtTVVBFUlNDUklQVCBESUdJVCBFSUdIVDs7OzsKKzIwNzk7U1VQRVJTQ1JJUFQgTklORTtObzswO0VOOzxzdXBlcj4gMDAzOTs5Ozk7OTtOO1NVUEVSU0NSSVBUIERJR0lUIE5JTkU7Ozs7CisyMDdBO1NVUEVSU0NSSVBUIFBMVVMgU0lHTjtTbTswO0VUOzxzdXBlcj4gMDAyQjs7OztOOzs7OzsKKzIwN0I7U1VQRVJTQ1JJUFQgTUlOVVM7U207MDtFVDs8c3VwZXI+IDIyMTI7Ozs7TjtTVVBFUlNDUklQVCBIWVBIRU4tTUlOVVM7Ozs7CisyMDdDO1NVUEVSU0NSSVBUIEVRVUFMUyBTSUdOO1NtOzA7T047PHN1cGVyPiAwMDNEOzs7O047Ozs7OworMjA3RDtTVVBFUlNDUklQVCBMRUZUIFBBUkVOVEhFU0lTO1BzOzA7T047PHN1cGVyPiAwMDI4Ozs7O1k7U1VQRVJTQ1JJUFQgT1BFTklORyBQQVJFTlRIRVNJUzs7OzsKKzIwN0U7U1VQRVJTQ1JJUFQgUklHSFQgUEFSRU5USEVTSVM7UGU7MDtPTjs8c3VwZXI+IDAwMjk7Ozs7WTtTVVBFUlNDUklQVCBDTE9TSU5HIFBBUkVOVEhFU0lTOzs7OworMjA3RjtTVVBFUlNDUklQVCBMQVRJTiBTTUFMTCBMRVRURVIgTjtMbDswO0w7PHN1cGVyPiAwMDZFOzs7O047Ozs7OworMjA4MDtTVUJTQ1JJUFQgWkVSTztObzswO0VOOzxzdWI+IDAwMzA7MDswOzA7TjtTVUJTQ1JJUFQgRElHSVQgWkVSTzs7OzsKKzIwODE7U1VCU0NSSVBUIE9ORTtObzswO0VOOzxzdWI+IDAwMzE7MTsxOzE7TjtTVUJTQ1JJUFQgRElHSVQgT05FOzs7OworMjA4MjtTVUJTQ1JJUFQgVFdPO05vOzA7RU47PHN1Yj4gMDAzMjsyOzI7MjtOO1NVQlNDUklQVCBESUdJVCBUV087Ozs7CisyMDgzO1NVQlNDUklQVCBUSFJFRTtObzswO0VOOzxzdWI+IDAwMzM7MzszOzM7TjtTVUJTQ1JJUFQgRElHSVQgVEhSRUU7Ozs7CisyMDg0O1NVQlNDUklQVCBGT1VSO05vOzA7RU47PHN1Yj4gMDAzNDs0OzQ7NDtOO1NVQlNDUklQVCBESUdJVCBGT1VSOzs7OworMjA4NTtTVUJTQ1JJUFQgRklWRTtObzswO0VOOzxzdWI+IDAwMzU7NTs1OzU7TjtTVUJTQ1JJUFQgRElHSVQgRklWRTs7OzsKKzIwODY7U1VCU0NSSVBUIFNJWDtObzswO0VOOzxzdWI+IDAwMzY7Njs2OzY7TjtTVUJTQ1JJUFQgRElHSVQgU0lYOzs7OworMjA4NztTVUJTQ1JJUFQgU0VWRU47Tm87MDtFTjs8c3ViPiAwMDM3Ozc7Nzs3O047U1VCU0NSSVBUIERJR0lUIFNFVkVOOzs7OworMjA4ODtTVUJTQ1JJUFQgRUlHSFQ7Tm87MDtFTjs8c3ViPiAwMDM4Ozg7ODs4O047U1VCU0NSSVBUIERJR0lUIEVJR0hUOzs7OworMjA4OTtTVUJTQ1JJUFQgTklORTtObzswO0VOOzxzdWI+IDAwMzk7OTs5Ozk7TjtTVUJTQ1JJUFQgRElHSVQgTklORTs7OzsKKzIwOEE7U1VCU0NSSVBUIFBMVVMgU0lHTjtTbTswO0VUOzxzdWI+IDAwMkI7Ozs7Tjs7Ozs7CisyMDhCO1NVQlNDUklQVCBNSU5VUztTbTswO0VUOzxzdWI+IDIyMTI7Ozs7TjtTVUJTQ1JJUFQgSFlQSEVOLU1JTlVTOzs7OworMjA4QztTVUJTQ1JJUFQgRVFVQUxTIFNJR047U207MDtPTjs8c3ViPiAwMDNEOzs7O047Ozs7OworMjA4RDtTVUJTQ1JJUFQgTEVGVCBQQVJFTlRIRVNJUztQczswO09OOzxzdWI+IDAwMjg7Ozs7WTtTVUJTQ1JJUFQgT1BFTklORyBQQVJFTlRIRVNJUzs7OzsKKzIwOEU7U1VCU0NSSVBUIFJJR0hUIFBBUkVOVEhFU0lTO1BlOzA7T047PHN1Yj4gMDAyOTs7OztZO1NVQlNDUklQVCBDTE9TSU5HIFBBUkVOVEhFU0lTOzs7OworMjBBMDtFVVJPLUNVUlJFTkNZIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEExO0NPTE9OIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEEyO0NSVVpFSVJPIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEEzO0ZSRU5DSCBGUkFOQyBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBBNDtMSVJBIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEE1O01JTEwgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQTY7TkFJUkEgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQTc7UEVTRVRBIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEE4O1JVUEVFIFNJR047U2M7MDtFVDs8Y29tcGF0PiAwMDUyIDAwNzM7Ozs7Tjs7Ozs7CisyMEE5O1dPTiBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBBQTtORVcgU0hFUUVMIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEFCO0RPTkcgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQUM7RVVSTyBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBBRDtLSVAgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQUU7VFVHUklLIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEFGO0RSQUNITUEgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwRDA7Q09NQklOSU5HIExFRlQgSEFSUE9PTiBBQk9WRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIExFRlQgSEFSUE9PTiBBQk9WRTs7OzsKKzIwRDE7Q09NQklOSU5HIFJJR0hUIEhBUlBPT04gQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBSSUdIVCBIQVJQT09OIEFCT1ZFOzs7OworMjBEMjtDT01CSU5JTkcgTE9ORyBWRVJUSUNBTCBMSU5FIE9WRVJMQVk7TW47MTtOU007Ozs7O047Tk9OLVNQQUNJTkcgTE9ORyBWRVJUSUNBTCBCQVIgT1ZFUkxBWTs7OzsKKzIwRDM7Q09NQklOSU5HIFNIT1JUIFZFUlRJQ0FMIExJTkUgT1ZFUkxBWTtNbjsxO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBTSE9SVCBWRVJUSUNBTCBCQVIgT1ZFUkxBWTs7OzsKKzIwRDQ7Q09NQklOSU5HIEFOVElDTE9DS1dJU0UgQVJST1cgQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBBTlRJQ0xPQ0tXSVNFIEFSUk9XIEFCT1ZFOzs7OworMjBENTtDT01CSU5JTkcgQ0xPQ0tXSVNFIEFSUk9XIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgQ0xPQ0tXSVNFIEFSUk9XIEFCT1ZFOzs7OworMjBENjtDT01CSU5JTkcgTEVGVCBBUlJPVyBBQk9WRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIExFRlQgQVJST1cgQUJPVkU7Ozs7CisyMEQ3O0NPTUJJTklORyBSSUdIVCBBUlJPVyBBQk9WRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFJJR0hUIEFSUk9XIEFCT1ZFOzs7OworMjBEODtDT01CSU5JTkcgUklORyBPVkVSTEFZO01uOzE7TlNNOzs7OztOO05PTi1TUEFDSU5HIFJJTkcgT1ZFUkxBWTs7OzsKKzIwRDk7Q09NQklOSU5HIENMT0NLV0lTRSBSSU5HIE9WRVJMQVk7TW47MTtOU007Ozs7O047Tk9OLVNQQUNJTkcgQ0xPQ0tXSVNFIFJJTkcgT1ZFUkxBWTs7OzsKKzIwREE7Q09NQklOSU5HIEFOVElDTE9DS1dJU0UgUklORyBPVkVSTEFZO01uOzE7TlNNOzs7OztOO05PTi1TUEFDSU5HIEFOVElDTE9DS1dJU0UgUklORyBPVkVSTEFZOzs7OworMjBEQjtDT01CSU5JTkcgVEhSRUUgRE9UUyBBQk9WRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFRIUkVFIERPVFMgQUJPVkU7Ozs7CisyMERDO0NPTUJJTklORyBGT1VSIERPVFMgQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBGT1VSIERPVFMgQUJPVkU7Ozs7CisyMEREO0NPTUJJTklORyBFTkNMT1NJTkcgQ0lSQ0xFO01lOzA7TlNNOzs7OztOO0VOQ0xPU0lORyBDSVJDTEU7Ozs7CisyMERFO0NPTUJJTklORyBFTkNMT1NJTkcgU1FVQVJFO01lOzA7TlNNOzs7OztOO0VOQ0xPU0lORyBTUVVBUkU7Ozs7CisyMERGO0NPTUJJTklORyBFTkNMT1NJTkcgRElBTU9ORDtNZTswO05TTTs7Ozs7TjtFTkNMT1NJTkcgRElBTU9ORDs7OzsKKzIwRTA7Q09NQklOSU5HIEVOQ0xPU0lORyBDSVJDTEUgQkFDS1NMQVNIO01lOzA7TlNNOzs7OztOO0VOQ0xPU0lORyBDSVJDTEUgU0xBU0g7Ozs7CisyMEUxO0NPTUJJTklORyBMRUZUIFJJR0hUIEFSUk9XIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgTEVGVCBSSUdIVCBBUlJPVyBBQk9WRTs7OzsKKzIwRTI7Q09NQklOSU5HIEVOQ0xPU0lORyBTQ1JFRU47TWU7MDtOU007Ozs7O047Ozs7OworMjBFMztDT01CSU5JTkcgRU5DTE9TSU5HIEtFWUNBUDtNZTswO05TTTs7Ozs7Tjs7Ozs7CisyMTAwO0FDQ09VTlQgT0Y7U287MDtPTjs8Y29tcGF0PiAwMDYxIDAwMkYgMDA2Mzs7OztOOzs7OzsKKzIxMDE7QUREUkVTU0VEIFRPIFRIRSBTVUJKRUNUO1NvOzA7T047PGNvbXBhdD4gMDA2MSAwMDJGIDAwNzM7Ozs7Tjs7Ozs7CisyMTAyO0RPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBDO0x1OzA7TDs8Zm9udD4gMDA0Mzs7OztOO0RPVUJMRS1TVFJVQ0sgQzs7OzsKKzIxMDM7REVHUkVFIENFTFNJVVM7U287MDtPTjs8Y29tcGF0PiAwMEIwIDAwNDM7Ozs7TjtERUdSRUVTIENFTlRJR1JBREU7Ozs7CisyMTA0O0NFTlRSRSBMSU5FIFNZTUJPTDtTbzswO09OOzs7OztOO0MgTCBTWU1CT0w7Ozs7CisyMTA1O0NBUkUgT0Y7U287MDtPTjs8Y29tcGF0PiAwMDYzIDAwMkYgMDA2Rjs7OztOOzs7OzsKKzIxMDY7Q0FEQSBVTkE7U287MDtPTjs8Y29tcGF0PiAwMDYzIDAwMkYgMDA3NTs7OztOOzs7OzsKKzIxMDc7RVVMRVIgQ09OU1RBTlQ7THU7MDtMOzxjb21wYXQ+IDAxOTA7Ozs7TjtFVUxFUlM7Ozs7CisyMTA4O1NDUlVQTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMTA5O0RFR1JFRSBGQUhSRU5IRUlUO1NvOzA7T047PGNvbXBhdD4gMDBCMCAwMDQ2Ozs7O047REVHUkVFUyBGQUhSRU5IRUlUOzs7OworMjEwQTtTQ1JJUFQgU01BTEwgRztMbDswO0w7PGZvbnQ+IDAwNjc7Ozs7Tjs7Ozs7CisyMTBCO1NDUklQVCBDQVBJVEFMIEg7THU7MDtMOzxmb250PiAwMDQ4Ozs7O047U0NSSVBUIEg7Ozs7CisyMTBDO0JMQUNLLUxFVFRFUiBDQVBJVEFMIEg7THU7MDtMOzxmb250PiAwMDQ4Ozs7O047QkxBQ0stTEVUVEVSIEg7Ozs7CisyMTBEO0RPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBIO0x1OzA7TDs8Zm9udD4gMDA0ODs7OztOO0RPVUJMRS1TVFJVQ0sgSDs7OzsKKzIxMEU7UExBTkNLIENPTlNUQU5UO0xsOzA7TDs8Zm9udD4gMDA2ODs7OztOOzs7OzsKKzIxMEY7UExBTkNLIENPTlNUQU5UIE9WRVIgVFdPIFBJO0xsOzA7TDs8Zm9udD4gMDEyNzs7OztOO1BMQU5DSyBDT05TVEFOVCBPVkVSIDIgUEk7Ozs7CisyMTEwO1NDUklQVCBDQVBJVEFMIEk7THU7MDtMOzxmb250PiAwMDQ5Ozs7O047U0NSSVBUIEk7Ozs7CisyMTExO0JMQUNLLUxFVFRFUiBDQVBJVEFMIEk7THU7MDtMOzxmb250PiAwMDQ5Ozs7O047QkxBQ0stTEVUVEVSIEk7Ozs7CisyMTEyO1NDUklQVCBDQVBJVEFMIEw7THU7MDtMOzxmb250PiAwMDRDOzs7O047U0NSSVBUIEw7Ozs7CisyMTEzO1NDUklQVCBTTUFMTCBMO0xsOzA7TDs8Zm9udD4gMDA2Qzs7OztOOzs7OzsKKzIxMTQ7TCBCIEJBUiBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMTE1O0RPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBOO0x1OzA7TDs8Zm9udD4gMDA0RTs7OztOO0RPVUJMRS1TVFJVQ0sgTjs7OzsKKzIxMTY7TlVNRVJPIFNJR047U287MDtPTjs8Y29tcGF0PiAwMDRFIDAwNkY7Ozs7TjtOVU1FUk87Ozs7CisyMTE3O1NPVU5EIFJFQ09SRElORyBDT1BZUklHSFQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMTE4O1NDUklQVCBDQVBJVEFMIFA7U287MDtPTjs7Ozs7TjtTQ1JJUFQgUDs7OzsKKzIxMTk7RE9VQkxFLVNUUlVDSyBDQVBJVEFMIFA7THU7MDtMOzxmb250PiAwMDUwOzs7O047RE9VQkxFLVNUUlVDSyBQOzs7OworMjExQTtET1VCTEUtU1RSVUNLIENBUElUQUwgUTtMdTswO0w7PGZvbnQ+IDAwNTE7Ozs7TjtET1VCTEUtU1RSVUNLIFE7Ozs7CisyMTFCO1NDUklQVCBDQVBJVEFMIFI7THU7MDtMOzxmb250PiAwMDUyOzs7O047U0NSSVBUIFI7Ozs7CisyMTFDO0JMQUNLLUxFVFRFUiBDQVBJVEFMIFI7THU7MDtMOzxmb250PiAwMDUyOzs7O047QkxBQ0stTEVUVEVSIFI7Ozs7CisyMTFEO0RPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBSO0x1OzA7TDs8Zm9udD4gMDA1Mjs7OztOO0RPVUJMRS1TVFJVQ0sgUjs7OzsKKzIxMUU7UFJFU0NSSVBUSU9OIFRBS0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMTFGO1JFU1BPTlNFO1NvOzA7T047Ozs7O047Ozs7OworMjEyMDtTRVJWSUNFIE1BUks7U287MDtPTjs8c3VwZXI+IDAwNTMgMDA0RDs7OztOOzs7OzsKKzIxMjE7VEVMRVBIT05FIFNJR047U287MDtPTjs8Y29tcGF0PiAwMDU0IDAwNDUgMDA0Qzs7OztOO1QgRSBMIFNZTUJPTDs7OzsKKzIxMjI7VFJBREUgTUFSSyBTSUdOO1NvOzA7T047PHN1cGVyPiAwMDU0IDAwNEQ7Ozs7TjtUUkFERU1BUks7Ozs7CisyMTIzO1ZFUlNJQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjEyNDtET1VCTEUtU1RSVUNLIENBUElUQUwgWjtMdTswO0w7PGZvbnQ+IDAwNUE7Ozs7TjtET1VCTEUtU1RSVUNLIFo7Ozs7CisyMTI1O09VTkNFIFNJR047U287MDtPTjs7Ozs7TjtPVU5DRTs7OzsKKzIxMjY7T0hNIFNJR047THU7MDtMOzAzQTk7Ozs7TjtPSE07OzswM0M5OworMjEyNztJTlZFUlRFRCBPSE0gU0lHTjtTbzswO09OOzs7OztOO01ITzs7OzsKKzIxMjg7QkxBQ0stTEVUVEVSIENBUElUQUwgWjtMdTswO0w7PGZvbnQ+IDAwNUE7Ozs7TjtCTEFDSy1MRVRURVIgWjs7OzsKKzIxMjk7VFVSTkVEIEdSRUVLIFNNQUxMIExFVFRFUiBJT1RBO1NvOzA7T047Ozs7O047Ozs7OworMjEyQTtLRUxWSU4gU0lHTjtMdTswO0w7MDA0Qjs7OztOO0RFR1JFRVMgS0VMVklOOzs7MDA2QjsKKzIxMkI7QU5HU1RST00gU0lHTjtMdTswO0w7MDBDNTs7OztOO0FOR1NUUk9NIFVOSVQ7OzswMEU1OworMjEyQztTQ1JJUFQgQ0FQSVRBTCBCO0x1OzA7TDs8Zm9udD4gMDA0Mjs7OztOO1NDUklQVCBCOzs7OworMjEyRDtCTEFDSy1MRVRURVIgQ0FQSVRBTCBDO0x1OzA7TDs8Zm9udD4gMDA0Mzs7OztOO0JMQUNLLUxFVFRFUiBDOzs7OworMjEyRTtFU1RJTUFURUQgU1lNQk9MO1NvOzA7RVQ7Ozs7O047Ozs7OworMjEyRjtTQ1JJUFQgU01BTEwgRTtMbDswO0w7PGZvbnQ+IDAwNjU7Ozs7Tjs7Ozs7CisyMTMwO1NDUklQVCBDQVBJVEFMIEU7THU7MDtMOzxmb250PiAwMDQ1Ozs7O047U0NSSVBUIEU7Ozs7CisyMTMxO1NDUklQVCBDQVBJVEFMIEY7THU7MDtMOzxmb250PiAwMDQ2Ozs7O047U0NSSVBUIEY7Ozs7CisyMTMyO1RVUk5FRCBDQVBJVEFMIEY7U287MDtPTjs7Ozs7TjtUVVJORUQgRjs7OzsKKzIxMzM7U0NSSVBUIENBUElUQUwgTTtMdTswO0w7PGZvbnQ+IDAwNEQ7Ozs7TjtTQ1JJUFQgTTs7OzsKKzIxMzQ7U0NSSVBUIFNNQUxMIE87TGw7MDtMOzxmb250PiAwMDZGOzs7O047Ozs7OworMjEzNTtBTEVGIFNZTUJPTDtMbzswO0w7PGNvbXBhdD4gMDVEMDs7OztOO0ZJUlNUIFRSQU5TRklOSVRFIENBUkRJTkFMOzs7OworMjEzNjtCRVQgU1lNQk9MO0xvOzA7TDs8Y29tcGF0PiAwNUQxOzs7O047U0VDT05EIFRSQU5TRklOSVRFIENBUkRJTkFMOzs7OworMjEzNztHSU1FTCBTWU1CT0w7TG87MDtMOzxjb21wYXQ+IDA1RDI7Ozs7TjtUSElSRCBUUkFOU0ZJTklURSBDQVJESU5BTDs7OzsKKzIxMzg7REFMRVQgU1lNQk9MO0xvOzA7TDs8Y29tcGF0PiAwNUQzOzs7O047Rk9VUlRIIFRSQU5TRklOSVRFIENBUkRJTkFMOzs7OworMjEzOTtJTkZPUk1BVElPTiBTT1VSQ0U7TGw7MDtMOzxmb250PiAwMDY5Ozs7O047Ozs7OworMjEzQTtST1RBVEVEIENBUElUQUwgUTtTbzswO09OOzs7OztOOzs7OzsKKzIxNTM7VlVMR0FSIEZSQUNUSU9OIE9ORSBUSElSRDtObzswO09OOzxmcmFjdGlvbj4gMDAzMSAyMDQ0IDAwMzM7OzsxLzM7TjtGUkFDVElPTiBPTkUgVEhJUkQ7Ozs7CisyMTU0O1ZVTEdBUiBGUkFDVElPTiBUV08gVEhJUkRTO05vOzA7T047PGZyYWN0aW9uPiAwMDMyIDIwNDQgMDAzMzs7OzIvMztOO0ZSQUNUSU9OIFRXTyBUSElSRFM7Ozs7CisyMTU1O1ZVTEdBUiBGUkFDVElPTiBPTkUgRklGVEg7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzEgMjA0NCAwMDM1Ozs7MS81O047RlJBQ1RJT04gT05FIEZJRlRIOzs7OworMjE1NjtWVUxHQVIgRlJBQ1RJT04gVFdPIEZJRlRIUztObzswO09OOzxmcmFjdGlvbj4gMDAzMiAyMDQ0IDAwMzU7OzsyLzU7TjtGUkFDVElPTiBUV08gRklGVEhTOzs7OworMjE1NztWVUxHQVIgRlJBQ1RJT04gVEhSRUUgRklGVEhTO05vOzA7T047PGZyYWN0aW9uPiAwMDMzIDIwNDQgMDAzNTs7OzMvNTtOO0ZSQUNUSU9OIFRIUkVFIEZJRlRIUzs7OzsKKzIxNTg7VlVMR0FSIEZSQUNUSU9OIEZPVVIgRklGVEhTO05vOzA7T047PGZyYWN0aW9uPiAwMDM0IDIwNDQgMDAzNTs7OzQvNTtOO0ZSQUNUSU9OIEZPVVIgRklGVEhTOzs7OworMjE1OTtWVUxHQVIgRlJBQ1RJT04gT05FIFNJWFRIO05vOzA7T047PGZyYWN0aW9uPiAwMDMxIDIwNDQgMDAzNjs7OzEvNjtOO0ZSQUNUSU9OIE9ORSBTSVhUSDs7OzsKKzIxNUE7VlVMR0FSIEZSQUNUSU9OIEZJVkUgU0lYVEhTO05vOzA7T047PGZyYWN0aW9uPiAwMDM1IDIwNDQgMDAzNjs7OzUvNjtOO0ZSQUNUSU9OIEZJVkUgU0lYVEhTOzs7OworMjE1QjtWVUxHQVIgRlJBQ1RJT04gT05FIEVJR0hUSDtObzswO09OOzxmcmFjdGlvbj4gMDAzMSAyMDQ0IDAwMzg7OzsxLzg7TjtGUkFDVElPTiBPTkUgRUlHSFRIOzs7OworMjE1QztWVUxHQVIgRlJBQ1RJT04gVEhSRUUgRUlHSFRIUztObzswO09OOzxmcmFjdGlvbj4gMDAzMyAyMDQ0IDAwMzg7OzszLzg7TjtGUkFDVElPTiBUSFJFRSBFSUdIVEhTOzs7OworMjE1RDtWVUxHQVIgRlJBQ1RJT04gRklWRSBFSUdIVEhTO05vOzA7T047PGZyYWN0aW9uPiAwMDM1IDIwNDQgMDAzODs7OzUvODtOO0ZSQUNUSU9OIEZJVkUgRUlHSFRIUzs7OzsKKzIxNUU7VlVMR0FSIEZSQUNUSU9OIFNFVkVOIEVJR0hUSFM7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzcgMjA0NCAwMDM4Ozs7Ny84O047RlJBQ1RJT04gU0VWRU4gRUlHSFRIUzs7OzsKKzIxNUY7RlJBQ1RJT04gTlVNRVJBVE9SIE9ORTtObzswO09OOzxmcmFjdGlvbj4gMDAzMSAyMDQ0Ozs7MTtOOzs7OzsKKzIxNjA7Uk9NQU4gTlVNRVJBTCBPTkU7Tmw7MDtMOzxjb21wYXQ+IDAwNDk7OzsxO047Ozs7MjE3MDsKKzIxNjE7Uk9NQU4gTlVNRVJBTCBUV087Tmw7MDtMOzxjb21wYXQ+IDAwNDkgMDA0OTs7OzI7Tjs7OzsyMTcxOworMjE2MjtST01BTiBOVU1FUkFMIFRIUkVFO05sOzA7TDs8Y29tcGF0PiAwMDQ5IDAwNDkgMDA0OTs7OzM7Tjs7OzsyMTcyOworMjE2MztST01BTiBOVU1FUkFMIEZPVVI7Tmw7MDtMOzxjb21wYXQ+IDAwNDkgMDA1Njs7OzQ7Tjs7OzsyMTczOworMjE2NDtST01BTiBOVU1FUkFMIEZJVkU7Tmw7MDtMOzxjb21wYXQ+IDAwNTY7Ozs1O047Ozs7MjE3NDsKKzIxNjU7Uk9NQU4gTlVNRVJBTCBTSVg7Tmw7MDtMOzxjb21wYXQ+IDAwNTYgMDA0OTs7OzY7Tjs7OzsyMTc1OworMjE2NjtST01BTiBOVU1FUkFMIFNFVkVOO05sOzA7TDs8Y29tcGF0PiAwMDU2IDAwNDkgMDA0OTs7Ozc7Tjs7OzsyMTc2OworMjE2NztST01BTiBOVU1FUkFMIEVJR0hUO05sOzA7TDs8Y29tcGF0PiAwMDU2IDAwNDkgMDA0OSAwMDQ5Ozs7ODtOOzs7OzIxNzc7CisyMTY4O1JPTUFOIE5VTUVSQUwgTklORTtObDswO0w7PGNvbXBhdD4gMDA0OSAwMDU4Ozs7OTtOOzs7OzIxNzg7CisyMTY5O1JPTUFOIE5VTUVSQUwgVEVOO05sOzA7TDs8Y29tcGF0PiAwMDU4Ozs7MTA7Tjs7OzsyMTc5OworMjE2QTtST01BTiBOVU1FUkFMIEVMRVZFTjtObDswO0w7PGNvbXBhdD4gMDA1OCAwMDQ5Ozs7MTE7Tjs7OzsyMTdBOworMjE2QjtST01BTiBOVU1FUkFMIFRXRUxWRTtObDswO0w7PGNvbXBhdD4gMDA1OCAwMDQ5IDAwNDk7OzsxMjtOOzs7OzIxN0I7CisyMTZDO1JPTUFOIE5VTUVSQUwgRklGVFk7Tmw7MDtMOzxjb21wYXQ+IDAwNEM7Ozs1MDtOOzs7OzIxN0M7CisyMTZEO1JPTUFOIE5VTUVSQUwgT05FIEhVTkRSRUQ7Tmw7MDtMOzxjb21wYXQ+IDAwNDM7OzsxMDA7Tjs7OzsyMTdEOworMjE2RTtST01BTiBOVU1FUkFMIEZJVkUgSFVORFJFRDtObDswO0w7PGNvbXBhdD4gMDA0NDs7OzUwMDtOOzs7OzIxN0U7CisyMTZGO1JPTUFOIE5VTUVSQUwgT05FIFRIT1VTQU5EO05sOzA7TDs8Y29tcGF0PiAwMDREOzs7MTAwMDtOOzs7OzIxN0Y7CisyMTcwO1NNQUxMIFJPTUFOIE5VTUVSQUwgT05FO05sOzA7TDs8Y29tcGF0PiAwMDY5Ozs7MTtOOzs7MjE2MDs7MjE2MAorMjE3MTtTTUFMTCBST01BTiBOVU1FUkFMIFRXTztObDswO0w7PGNvbXBhdD4gMDA2OSAwMDY5Ozs7MjtOOzs7MjE2MTs7MjE2MQorMjE3MjtTTUFMTCBST01BTiBOVU1FUkFMIFRIUkVFO05sOzA7TDs8Y29tcGF0PiAwMDY5IDAwNjkgMDA2OTs7OzM7Tjs7OzIxNjI7OzIxNjIKKzIxNzM7U01BTEwgUk9NQU4gTlVNRVJBTCBGT1VSO05sOzA7TDs8Y29tcGF0PiAwMDY5IDAwNzY7Ozs0O047OzsyMTYzOzsyMTYzCisyMTc0O1NNQUxMIFJPTUFOIE5VTUVSQUwgRklWRTtObDswO0w7PGNvbXBhdD4gMDA3Njs7OzU7Tjs7OzIxNjQ7OzIxNjQKKzIxNzU7U01BTEwgUk9NQU4gTlVNRVJBTCBTSVg7Tmw7MDtMOzxjb21wYXQ+IDAwNzYgMDA2OTs7OzY7Tjs7OzIxNjU7OzIxNjUKKzIxNzY7U01BTEwgUk9NQU4gTlVNRVJBTCBTRVZFTjtObDswO0w7PGNvbXBhdD4gMDA3NiAwMDY5IDAwNjk7Ozs3O047OzsyMTY2OzsyMTY2CisyMTc3O1NNQUxMIFJPTUFOIE5VTUVSQUwgRUlHSFQ7Tmw7MDtMOzxjb21wYXQ+IDAwNzYgMDA2OSAwMDY5IDAwNjk7Ozs4O047OzsyMTY3OzsyMTY3CisyMTc4O1NNQUxMIFJPTUFOIE5VTUVSQUwgTklORTtObDswO0w7PGNvbXBhdD4gMDA2OSAwMDc4Ozs7OTtOOzs7MjE2ODs7MjE2OAorMjE3OTtTTUFMTCBST01BTiBOVU1FUkFMIFRFTjtObDswO0w7PGNvbXBhdD4gMDA3ODs7OzEwO047OzsyMTY5OzsyMTY5CisyMTdBO1NNQUxMIFJPTUFOIE5VTUVSQUwgRUxFVkVOO05sOzA7TDs8Y29tcGF0PiAwMDc4IDAwNjk7OzsxMTtOOzs7MjE2QTs7MjE2QQorMjE3QjtTTUFMTCBST01BTiBOVU1FUkFMIFRXRUxWRTtObDswO0w7PGNvbXBhdD4gMDA3OCAwMDY5IDAwNjk7OzsxMjtOOzs7MjE2Qjs7MjE2QgorMjE3QztTTUFMTCBST01BTiBOVU1FUkFMIEZJRlRZO05sOzA7TDs8Y29tcGF0PiAwMDZDOzs7NTA7Tjs7OzIxNkM7OzIxNkMKKzIxN0Q7U01BTEwgUk9NQU4gTlVNRVJBTCBPTkUgSFVORFJFRDtObDswO0w7PGNvbXBhdD4gMDA2Mzs7OzEwMDtOOzs7MjE2RDs7MjE2RAorMjE3RTtTTUFMTCBST01BTiBOVU1FUkFMIEZJVkUgSFVORFJFRDtObDswO0w7PGNvbXBhdD4gMDA2NDs7OzUwMDtOOzs7MjE2RTs7MjE2RQorMjE3RjtTTUFMTCBST01BTiBOVU1FUkFMIE9ORSBUSE9VU0FORDtObDswO0w7PGNvbXBhdD4gMDA2RDs7OzEwMDA7Tjs7OzIxNkY7OzIxNkYKKzIxODA7Uk9NQU4gTlVNRVJBTCBPTkUgVEhPVVNBTkQgQyBEO05sOzA7TDs7OzsxMDAwO047Ozs7OworMjE4MTtST01BTiBOVU1FUkFMIEZJVkUgVEhPVVNBTkQ7Tmw7MDtMOzs7OzUwMDA7Tjs7Ozs7CisyMTgyO1JPTUFOIE5VTUVSQUwgVEVOIFRIT1VTQU5EO05sOzA7TDs7OzsxMDAwMDtOOzs7OzsKKzIxODM7Uk9NQU4gTlVNRVJBTCBSRVZFUlNFRCBPTkUgSFVORFJFRDtObDswO0w7Ozs7O047Ozs7OworMjE5MDtMRUZUV0FSRFMgQVJST1c7U207MDtPTjs7Ozs7TjtMRUZUIEFSUk9XOzs7OworMjE5MTtVUFdBUkRTIEFSUk9XO1NtOzA7T047Ozs7O047VVAgQVJST1c7Ozs7CisyMTkyO1JJR0hUV0FSRFMgQVJST1c7U207MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVzs7OzsKKzIxOTM7RE9XTldBUkRTIEFSUk9XO1NtOzA7T047Ozs7O047RE9XTiBBUlJPVzs7OzsKKzIxOTQ7TEVGVCBSSUdIVCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzIxOTU7VVAgRE9XTiBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIxOTY7Tk9SVEggV0VTVCBBUlJPVztTbzswO09OOzs7OztOO1VQUEVSIExFRlQgQVJST1c7Ozs7CisyMTk3O05PUlRIIEVBU1QgQVJST1c7U287MDtPTjs7Ozs7TjtVUFBFUiBSSUdIVCBBUlJPVzs7OzsKKzIxOTg7U09VVEggRUFTVCBBUlJPVztTbzswO09OOzs7OztOO0xPV0VSIFJJR0hUIEFSUk9XOzs7OworMjE5OTtTT1VUSCBXRVNUIEFSUk9XO1NvOzA7T047Ozs7O047TE9XRVIgTEVGVCBBUlJPVzs7OzsKKzIxOUE7TEVGVFdBUkRTIEFSUk9XIFdJVEggU1RST0tFO1NtOzA7T047MjE5MCAwMzM4Ozs7O047TEVGVCBBUlJPVyBXSVRIIFNUUk9LRTs7OzsKKzIxOUI7UklHSFRXQVJEUyBBUlJPVyBXSVRIIFNUUk9LRTtTbTswO09OOzIxOTIgMDMzODs7OztOO1JJR0hUIEFSUk9XIFdJVEggU1RST0tFOzs7OworMjE5QztMRUZUV0FSRFMgV0FWRSBBUlJPVztTbzswO09OOzs7OztOO0xFRlQgV0FWRSBBUlJPVzs7OzsKKzIxOUQ7UklHSFRXQVJEUyBXQVZFIEFSUk9XO1NvOzA7T047Ozs7O047UklHSFQgV0FWRSBBUlJPVzs7OzsKKzIxOUU7TEVGVFdBUkRTIFRXTyBIRUFERUQgQVJST1c7U287MDtPTjs7Ozs7TjtMRUZUIFRXTyBIRUFERUQgQVJST1c7Ozs7CisyMTlGO1VQV0FSRFMgVFdPIEhFQURFRCBBUlJPVztTbzswO09OOzs7OztOO1VQIFRXTyBIRUFERUQgQVJST1c7Ozs7CisyMUEwO1JJR0hUV0FSRFMgVFdPIEhFQURFRCBBUlJPVztTbTswO09OOzs7OztOO1JJR0hUIFRXTyBIRUFERUQgQVJST1c7Ozs7CisyMUExO0RPV05XQVJEUyBUV08gSEVBREVEIEFSUk9XO1NvOzA7T047Ozs7O047RE9XTiBUV08gSEVBREVEIEFSUk9XOzs7OworMjFBMjtMRUZUV0FSRFMgQVJST1cgV0lUSCBUQUlMO1NvOzA7T047Ozs7O047TEVGVCBBUlJPVyBXSVRIIFRBSUw7Ozs7CisyMUEzO1JJR0hUV0FSRFMgQVJST1cgV0lUSCBUQUlMO1NtOzA7T047Ozs7O047UklHSFQgQVJST1cgV0lUSCBUQUlMOzs7OworMjFBNDtMRUZUV0FSRFMgQVJST1cgRlJPTSBCQVI7U287MDtPTjs7Ozs7TjtMRUZUIEFSUk9XIEZST00gQkFSOzs7OworMjFBNTtVUFdBUkRTIEFSUk9XIEZST00gQkFSO1NvOzA7T047Ozs7O047VVAgQVJST1cgRlJPTSBCQVI7Ozs7CisyMUE2O1JJR0hUV0FSRFMgQVJST1cgRlJPTSBCQVI7U207MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVyBGUk9NIEJBUjs7OzsKKzIxQTc7RE9XTldBUkRTIEFSUk9XIEZST00gQkFSO1NvOzA7T047Ozs7O047RE9XTiBBUlJPVyBGUk9NIEJBUjs7OzsKKzIxQTg7VVAgRE9XTiBBUlJPVyBXSVRIIEJBU0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMUE5O0xFRlRXQVJEUyBBUlJPVyBXSVRIIEhPT0s7U287MDtPTjs7Ozs7TjtMRUZUIEFSUk9XIFdJVEggSE9PSzs7OzsKKzIxQUE7UklHSFRXQVJEUyBBUlJPVyBXSVRIIEhPT0s7U287MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVyBXSVRIIEhPT0s7Ozs7CisyMUFCO0xFRlRXQVJEUyBBUlJPVyBXSVRIIExPT1A7U287MDtPTjs7Ozs7TjtMRUZUIEFSUk9XIFdJVEggTE9PUDs7OzsKKzIxQUM7UklHSFRXQVJEUyBBUlJPVyBXSVRIIExPT1A7U287MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVyBXSVRIIExPT1A7Ozs7CisyMUFEO0xFRlQgUklHSFQgV0FWRSBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIxQUU7TEVGVCBSSUdIVCBBUlJPVyBXSVRIIFNUUk9LRTtTbTswO09OOzIxOTQgMDMzODs7OztOOzs7OzsKKzIxQUY7RE9XTldBUkRTIFpJR1pBRyBBUlJPVztTbzswO09OOzs7OztOO0RPV04gWklHWkFHIEFSUk9XOzs7OworMjFCMDtVUFdBUkRTIEFSUk9XIFdJVEggVElQIExFRlRXQVJEUztTbzswO09OOzs7OztOO1VQIEFSUk9XIFdJVEggVElQIExFRlQ7Ozs7CisyMUIxO1VQV0FSRFMgQVJST1cgV0lUSCBUSVAgUklHSFRXQVJEUztTbzswO09OOzs7OztOO1VQIEFSUk9XIFdJVEggVElQIFJJR0hUOzs7OworMjFCMjtET1dOV0FSRFMgQVJST1cgV0lUSCBUSVAgTEVGVFdBUkRTO1NvOzA7T047Ozs7O047RE9XTiBBUlJPVyBXSVRIIFRJUCBMRUZUOzs7OworMjFCMztET1dOV0FSRFMgQVJST1cgV0lUSCBUSVAgUklHSFRXQVJEUztTbzswO09OOzs7OztOO0RPV04gQVJST1cgV0lUSCBUSVAgUklHSFQ7Ozs7CisyMUI0O1JJR0hUV0FSRFMgQVJST1cgV0lUSCBDT1JORVIgRE9XTldBUkRTO1NvOzA7T047Ozs7O047UklHSFQgQVJST1cgV0lUSCBDT1JORVIgRE9XTjs7OzsKKzIxQjU7RE9XTldBUkRTIEFSUk9XIFdJVEggQ09STkVSIExFRlRXQVJEUztTbzswO09OOzs7OztOO0RPV04gQVJST1cgV0lUSCBDT1JORVIgTEVGVDs7OzsKKzIxQjY7QU5USUNMT0NLV0lTRSBUT1AgU0VNSUNJUkNMRSBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIxQjc7Q0xPQ0tXSVNFIFRPUCBTRU1JQ0lSQ0xFIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMjFCODtOT1JUSCBXRVNUIEFSUk9XIFRPIExPTkcgQkFSO1NvOzA7T047Ozs7O047VVBQRVIgTEVGVCBBUlJPVyBUTyBMT05HIEJBUjs7OzsKKzIxQjk7TEVGVFdBUkRTIEFSUk9XIFRPIEJBUiBPVkVSIFJJR0hUV0FSRFMgQVJST1cgVE8gQkFSO1NvOzA7T047Ozs7O047TEVGVCBBUlJPVyBUTyBCQVIgT1ZFUiBSSUdIVCBBUlJPVyBUTyBCQVI7Ozs7CisyMUJBO0FOVElDTE9DS1dJU0UgT1BFTiBDSVJDTEUgQVJST1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMUJCO0NMT0NLV0lTRSBPUEVOIENJUkNMRSBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIxQkM7TEVGVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFVQV0FSRFM7U287MDtPTjs7Ozs7TjtMRUZUIEhBUlBPT04gV0lUSCBCQVJCIFVQOzs7OworMjFCRDtMRUZUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgRE9XTldBUkRTO1NvOzA7T047Ozs7O047TEVGVCBIQVJQT09OIFdJVEggQkFSQiBET1dOOzs7OworMjFCRTtVUFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFJJR0hUV0FSRFM7U287MDtPTjs7Ozs7TjtVUCBIQVJQT09OIFdJVEggQkFSQiBSSUdIVDs7OzsKKzIxQkY7VVBXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBMRUZUV0FSRFM7U287MDtPTjs7Ozs7TjtVUCBIQVJQT09OIFdJVEggQkFSQiBMRUZUOzs7OworMjFDMDtSSUdIVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFVQV0FSRFM7U287MDtPTjs7Ozs7TjtSSUdIVCBIQVJQT09OIFdJVEggQkFSQiBVUDs7OzsKKzIxQzE7UklHSFRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBET1dOV0FSRFM7U287MDtPTjs7Ozs7TjtSSUdIVCBIQVJQT09OIFdJVEggQkFSQiBET1dOOzs7OworMjFDMjtET1dOV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgUklHSFRXQVJEUztTbzswO09OOzs7OztOO0RPV04gSEFSUE9PTiBXSVRIIEJBUkIgUklHSFQ7Ozs7CisyMUMzO0RPV05XQVJEUyBIQVJQT09OIFdJVEggQkFSQiBMRUZUV0FSRFM7U287MDtPTjs7Ozs7TjtET1dOIEhBUlBPT04gV0lUSCBCQVJCIExFRlQ7Ozs7CisyMUM0O1JJR0hUV0FSRFMgQVJST1cgT1ZFUiBMRUZUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVyBPVkVSIExFRlQgQVJST1c7Ozs7CisyMUM1O1VQV0FSRFMgQVJST1cgTEVGVFdBUkRTIE9GIERPV05XQVJEUyBBUlJPVztTbzswO09OOzs7OztOO1VQIEFSUk9XIExFRlQgT0YgRE9XTiBBUlJPVzs7OzsKKzIxQzY7TEVGVFdBUkRTIEFSUk9XIE9WRVIgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0xFRlQgQVJST1cgT1ZFUiBSSUdIVCBBUlJPVzs7OzsKKzIxQzc7TEVGVFdBUkRTIFBBSVJFRCBBUlJPV1M7U287MDtPTjs7Ozs7TjtMRUZUIFBBSVJFRCBBUlJPV1M7Ozs7CisyMUM4O1VQV0FSRFMgUEFJUkVEIEFSUk9XUztTbzswO09OOzs7OztOO1VQIFBBSVJFRCBBUlJPV1M7Ozs7CisyMUM5O1JJR0hUV0FSRFMgUEFJUkVEIEFSUk9XUztTbzswO09OOzs7OztOO1JJR0hUIFBBSVJFRCBBUlJPV1M7Ozs7CisyMUNBO0RPV05XQVJEUyBQQUlSRUQgQVJST1dTO1NvOzA7T047Ozs7O047RE9XTiBQQUlSRUQgQVJST1dTOzs7OworMjFDQjtMRUZUV0FSRFMgSEFSUE9PTiBPVkVSIFJJR0hUV0FSRFMgSEFSUE9PTjtTbzswO09OOzs7OztOO0xFRlQgSEFSUE9PTiBPVkVSIFJJR0hUIEhBUlBPT047Ozs7CisyMUNDO1JJR0hUV0FSRFMgSEFSUE9PTiBPVkVSIExFRlRXQVJEUyBIQVJQT09OO1NvOzA7T047Ozs7O047UklHSFQgSEFSUE9PTiBPVkVSIExFRlQgSEFSUE9PTjs7OzsKKzIxQ0Q7TEVGVFdBUkRTIERPVUJMRSBBUlJPVyBXSVRIIFNUUk9LRTtTbzswO09OOzIxRDAgMDMzODs7OztOO0xFRlQgRE9VQkxFIEFSUk9XIFdJVEggU1RST0tFOzs7OworMjFDRTtMRUZUIFJJR0hUIERPVUJMRSBBUlJPVyBXSVRIIFNUUk9LRTtTbTswO09OOzIxRDQgMDMzODs7OztOOzs7OzsKKzIxQ0Y7UklHSFRXQVJEUyBET1VCTEUgQVJST1cgV0lUSCBTVFJPS0U7U207MDtPTjsyMUQyIDAzMzg7Ozs7TjtSSUdIVCBET1VCTEUgQVJST1cgV0lUSCBTVFJPS0U7Ozs7CisyMUQwO0xFRlRXQVJEUyBET1VCTEUgQVJST1c7U287MDtPTjs7Ozs7TjtMRUZUIERPVUJMRSBBUlJPVzs7OzsKKzIxRDE7VVBXQVJEUyBET1VCTEUgQVJST1c7U287MDtPTjs7Ozs7TjtVUCBET1VCTEUgQVJST1c7Ozs7CisyMUQyO1JJR0hUV0FSRFMgRE9VQkxFIEFSUk9XO1NtOzA7T047Ozs7O047UklHSFQgRE9VQkxFIEFSUk9XOzs7OworMjFEMztET1dOV0FSRFMgRE9VQkxFIEFSUk9XO1NvOzA7T047Ozs7O047RE9XTiBET1VCTEUgQVJST1c7Ozs7CisyMUQ0O0xFRlQgUklHSFQgRE9VQkxFIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjFENTtVUCBET1dOIERPVUJMRSBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIxRDY7Tk9SVEggV0VTVCBET1VCTEUgQVJST1c7U287MDtPTjs7Ozs7TjtVUFBFUiBMRUZUIERPVUJMRSBBUlJPVzs7OzsKKzIxRDc7Tk9SVEggRUFTVCBET1VCTEUgQVJST1c7U287MDtPTjs7Ozs7TjtVUFBFUiBSSUdIVCBET1VCTEUgQVJST1c7Ozs7CisyMUQ4O1NPVVRIIEVBU1QgRE9VQkxFIEFSUk9XO1NvOzA7T047Ozs7O047TE9XRVIgUklHSFQgRE9VQkxFIEFSUk9XOzs7OworMjFEOTtTT1VUSCBXRVNUIERPVUJMRSBBUlJPVztTbzswO09OOzs7OztOO0xPV0VSIExFRlQgRE9VQkxFIEFSUk9XOzs7OworMjFEQTtMRUZUV0FSRFMgVFJJUExFIEFSUk9XO1NvOzA7T047Ozs7O047TEVGVCBUUklQTEUgQVJST1c7Ozs7CisyMURCO1JJR0hUV0FSRFMgVFJJUExFIEFSUk9XO1NvOzA7T047Ozs7O047UklHSFQgVFJJUExFIEFSUk9XOzs7OworMjFEQztMRUZUV0FSRFMgU1FVSUdHTEUgQVJST1c7U287MDtPTjs7Ozs7TjtMRUZUIFNRVUlHR0xFIEFSUk9XOzs7OworMjFERDtSSUdIVFdBUkRTIFNRVUlHR0xFIEFSUk9XO1NvOzA7T047Ozs7O047UklHSFQgU1FVSUdHTEUgQVJST1c7Ozs7CisyMURFO1VQV0FSRFMgQVJST1cgV0lUSCBET1VCTEUgU1RST0tFO1NvOzA7T047Ozs7O047VVAgQVJST1cgV0lUSCBET1VCTEUgU1RST0tFOzs7OworMjFERjtET1dOV0FSRFMgQVJST1cgV0lUSCBET1VCTEUgU1RST0tFO1NvOzA7T047Ozs7O047RE9XTiBBUlJPVyBXSVRIIERPVUJMRSBTVFJPS0U7Ozs7CisyMUUwO0xFRlRXQVJEUyBEQVNIRUQgQVJST1c7U287MDtPTjs7Ozs7TjtMRUZUIERBU0hFRCBBUlJPVzs7OzsKKzIxRTE7VVBXQVJEUyBEQVNIRUQgQVJST1c7U287MDtPTjs7Ozs7TjtVUCBEQVNIRUQgQVJST1c7Ozs7CisyMUUyO1JJR0hUV0FSRFMgREFTSEVEIEFSUk9XO1NvOzA7T047Ozs7O047UklHSFQgREFTSEVEIEFSUk9XOzs7OworMjFFMztET1dOV0FSRFMgREFTSEVEIEFSUk9XO1NvOzA7T047Ozs7O047RE9XTiBEQVNIRUQgQVJST1c7Ozs7CisyMUU0O0xFRlRXQVJEUyBBUlJPVyBUTyBCQVI7U287MDtPTjs7Ozs7TjtMRUZUIEFSUk9XIFRPIEJBUjs7OzsKKzIxRTU7UklHSFRXQVJEUyBBUlJPVyBUTyBCQVI7U287MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVyBUTyBCQVI7Ozs7CisyMUU2O0xFRlRXQVJEUyBXSElURSBBUlJPVztTbzswO09OOzs7OztOO1dISVRFIExFRlQgQVJST1c7Ozs7CisyMUU3O1VQV0FSRFMgV0hJVEUgQVJST1c7U287MDtPTjs7Ozs7TjtXSElURSBVUCBBUlJPVzs7OzsKKzIxRTg7UklHSFRXQVJEUyBXSElURSBBUlJPVztTbzswO09OOzs7OztOO1dISVRFIFJJR0hUIEFSUk9XOzs7OworMjFFOTtET1dOV0FSRFMgV0hJVEUgQVJST1c7U287MDtPTjs7Ozs7TjtXSElURSBET1dOIEFSUk9XOzs7OworMjFFQTtVUFdBUkRTIFdISVRFIEFSUk9XIEZST00gQkFSO1NvOzA7T047Ozs7O047V0hJVEUgVVAgQVJST1cgRlJPTSBCQVI7Ozs7CisyMUVCO1VQV0FSRFMgV0hJVEUgQVJST1cgT04gUEVERVNUQUw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMUVDO1VQV0FSRFMgV0hJVEUgQVJST1cgT04gUEVERVNUQUwgV0lUSCBIT1JJWk9OVEFMIEJBUjtTbzswO09OOzs7OztOOzs7OzsKKzIxRUQ7VVBXQVJEUyBXSElURSBBUlJPVyBPTiBQRURFU1RBTCBXSVRIIFZFUlRJQ0FMIEJBUjtTbzswO09OOzs7OztOOzs7OzsKKzIxRUU7VVBXQVJEUyBXSElURSBET1VCTEUgQVJST1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMUVGO1VQV0FSRFMgV0hJVEUgRE9VQkxFIEFSUk9XIE9OIFBFREVTVEFMO1NvOzA7T047Ozs7O047Ozs7OworMjFGMDtSSUdIVFdBUkRTIFdISVRFIEFSUk9XIEZST00gV0FMTDtTbzswO09OOzs7OztOOzs7OzsKKzIxRjE7Tk9SVEggV0VTVCBBUlJPVyBUTyBDT1JORVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMUYyO1NPVVRIIEVBU1QgQVJST1cgVE8gQ09STkVSO1NvOzA7T047Ozs7O047Ozs7OworMjFGMztVUCBET1dOIFdISVRFIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMjIwMDtGT1IgQUxMO1NtOzA7T047Ozs7O047Ozs7OworMjIwMTtDT01QTEVNRU5UO1NtOzA7T047Ozs7O1k7Ozs7OworMjIwMjtQQVJUSUFMIERJRkZFUkVOVElBTDtTbTswO09OOzs7OztZOzs7OzsKKzIyMDM7VEhFUkUgRVhJU1RTO1NtOzA7T047Ozs7O1k7Ozs7OworMjIwNDtUSEVSRSBET0VTIE5PVCBFWElTVDtTbTswO09OOzIyMDMgMDMzODs7OztZOzs7OzsKKzIyMDU7RU1QVFkgU0VUO1NtOzA7T047Ozs7O047Ozs7OworMjIwNjtJTkNSRU1FTlQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjA3O05BQkxBO1NtOzA7T047Ozs7O047Ozs7OworMjIwODtFTEVNRU5UIE9GO1NtOzA7T047Ozs7O1k7Ozs7OworMjIwOTtOT1QgQU4gRUxFTUVOVCBPRjtTbTswO09OOzIyMDggMDMzODs7OztZOzs7OzsKKzIyMEE7U01BTEwgRUxFTUVOVCBPRjtTbTswO09OOzs7OztZOzs7OzsKKzIyMEI7Q09OVEFJTlMgQVMgTUVNQkVSO1NtOzA7T047Ozs7O1k7Ozs7OworMjIwQztET0VTIE5PVCBDT05UQUlOIEFTIE1FTUJFUjtTbTswO09OOzIyMEIgMDMzODs7OztZOzs7OzsKKzIyMEQ7U01BTEwgQ09OVEFJTlMgQVMgTUVNQkVSO1NtOzA7T047Ozs7O1k7Ozs7OworMjIwRTtFTkQgT0YgUFJPT0Y7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjBGO04tQVJZIFBST0RVQ1Q7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjEwO04tQVJZIENPUFJPRFVDVDtTbTswO09OOzs7OztOOzs7OzsKKzIyMTE7Ti1BUlkgU1VNTUFUSU9OO1NtOzA7T047Ozs7O1k7Ozs7OworMjIxMjtNSU5VUyBTSUdOO1NtOzA7RVQ7Ozs7O047Ozs7OworMjIxMztNSU5VUy1PUi1QTFVTIFNJR047U207MDtFVDs7Ozs7Tjs7Ozs7CisyMjE0O0RPVCBQTFVTO1NtOzA7T047Ozs7O047Ozs7OworMjIxNTtESVZJU0lPTiBTTEFTSDtTbTswO09OOzs7OztZOzs7OzsKKzIyMTY7U0VUIE1JTlVTO1NtOzA7T047Ozs7O1k7Ozs7OworMjIxNztBU1RFUklTSyBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzIyMTg7UklORyBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzIyMTk7QlVMTEVUIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjIxQTtTUVVBUkUgUk9PVDtTbTswO09OOzs7OztZOzs7OzsKKzIyMUI7Q1VCRSBST09UO1NtOzA7T047Ozs7O1k7Ozs7OworMjIxQztGT1VSVEggUk9PVDtTbTswO09OOzs7OztZOzs7OzsKKzIyMUQ7UFJPUE9SVElPTkFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjIxRTtJTkZJTklUWTtTbTswO09OOzs7OztOOzs7OzsKKzIyMUY7UklHSFQgQU5HTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjIwO0FOR0xFO1NtOzA7T047Ozs7O1k7Ozs7OworMjIyMTtNRUFTVVJFRCBBTkdMRTtTbTswO09OOzs7OztZOzs7OzsKKzIyMjI7U1BIRVJJQ0FMIEFOR0xFO1NtOzA7T047Ozs7O1k7Ozs7OworMjIyMztESVZJREVTO1NtOzA7T047Ozs7O047Ozs7OworMjIyNDtET0VTIE5PVCBESVZJREU7U207MDtPTjsyMjIzIDAzMzg7Ozs7WTs7Ozs7CisyMjI1O1BBUkFMTEVMIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjIyNjtOT1QgUEFSQUxMRUwgVE87U207MDtPTjsyMjI1IDAzMzg7Ozs7WTs7Ozs7CisyMjI3O0xPR0lDQUwgQU5EO1NtOzA7T047Ozs7O047Ozs7OworMjIyODtMT0dJQ0FMIE9SO1NtOzA7T047Ozs7O047Ozs7OworMjIyOTtJTlRFUlNFQ1RJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjJBO1VOSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjIyQjtJTlRFR1JBTDtTbTswO09OOzs7OztZOzs7OzsKKzIyMkM7RE9VQkxFIElOVEVHUkFMO1NtOzA7T047PGNvbXBhdD4gMjIyQiAyMjJCOzs7O1k7Ozs7OworMjIyRDtUUklQTEUgSU5URUdSQUw7U207MDtPTjs8Y29tcGF0PiAyMjJCIDIyMkIgMjIyQjs7OztZOzs7OzsKKzIyMkU7Q09OVE9VUiBJTlRFR1JBTDtTbTswO09OOzs7OztZOzs7OzsKKzIyMkY7U1VSRkFDRSBJTlRFR1JBTDtTbTswO09OOzxjb21wYXQ+IDIyMkUgMjIyRTs7OztZOzs7OzsKKzIyMzA7Vk9MVU1FIElOVEVHUkFMO1NtOzA7T047PGNvbXBhdD4gMjIyRSAyMjJFIDIyMkU7Ozs7WTs7Ozs7CisyMjMxO0NMT0NLV0lTRSBJTlRFR1JBTDtTbTswO09OOzs7OztZOzs7OzsKKzIyMzI7Q0xPQ0tXSVNFIENPTlRPVVIgSU5URUdSQUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjMzO0FOVElDTE9DS1dJU0UgQ09OVE9VUiBJTlRFR1JBTDtTbTswO09OOzs7OztZOzs7OzsKKzIyMzQ7VEhFUkVGT1JFO1NtOzA7T047Ozs7O047Ozs7OworMjIzNTtCRUNBVVNFO1NtOzA7T047Ozs7O047Ozs7OworMjIzNjtSQVRJTztTbTswO09OOzs7OztOOzs7OzsKKzIyMzc7UFJPUE9SVElPTjtTbTswO09OOzs7OztOOzs7OzsKKzIyMzg7RE9UIE1JTlVTO1NtOzA7T047Ozs7O047Ozs7OworMjIzOTtFWENFU1M7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjNBO0dFT01FVFJJQyBQUk9QT1JUSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjIzQjtIT01PVEhFVElDO1NtOzA7T047Ozs7O1k7Ozs7OworMjIzQztUSUxERSBPUEVSQVRPUjtTbTswO09OOzs7OztZOzs7OzsKKzIyM0Q7UkVWRVJTRUQgVElMREU7U207MDtPTjs7Ozs7WTs7bGF6eSBTOzs7CisyMjNFO0lOVkVSVEVEIExBWlkgUztTbTswO09OOzs7OztZOzs7OzsKKzIyM0Y7U0lORSBXQVZFO1NtOzA7T047Ozs7O1k7Ozs7OworMjI0MDtXUkVBVEggUFJPRFVDVDtTbTswO09OOzs7OztZOzs7OzsKKzIyNDE7Tk9UIFRJTERFO1NtOzA7T047MjIzQyAwMzM4Ozs7O1k7Ozs7OworMjI0MjtNSU5VUyBUSUxERTtTbTswO09OOzs7OztZOzs7OzsKKzIyNDM7QVNZTVBUT1RJQ0FMTFkgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjQ0O05PVCBBU1lNUFRPVElDQUxMWSBFUVVBTCBUTztTbTswO09OOzIyNDMgMDMzODs7OztZOzs7OzsKKzIyNDU7QVBQUk9YSU1BVEVMWSBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyNDY7QVBQUk9YSU1BVEVMWSBCVVQgTk9UIEFDVFVBTExZIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI0NztORUlUSEVSIEFQUFJPWElNQVRFTFkgTk9SIEFDVFVBTExZIEVRVUFMIFRPO1NtOzA7T047MjI0NSAwMzM4Ozs7O1k7Ozs7OworMjI0ODtBTE1PU1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjQ5O05PVCBBTE1PU1QgRVFVQUwgVE87U207MDtPTjsyMjQ4IDAzMzg7Ozs7WTs7Ozs7CisyMjRBO0FMTU9TVCBFUVVBTCBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyNEI7VFJJUExFIFRJTERFO1NtOzA7T047Ozs7O1k7Ozs7OworMjI0QztBTEwgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjREO0VRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjRFO0dFT01FVFJJQ0FMTFkgRVFVSVZBTEVOVCBUTztTbTswO09OOzs7OztOOzs7OzsKKzIyNEY7RElGRkVSRU5DRSBCRVRXRUVOO1NtOzA7T047Ozs7O047Ozs7OworMjI1MDtBUFBST0FDSEVTIFRIRSBMSU1JVDtTbTswO09OOzs7OztOOzs7OzsKKzIyNTE7R0VPTUVUUklDQUxMWSBFUVVBTCBUTztTbTswO09OOzs7OztOOzs7OzsKKzIyNTI7QVBQUk9YSU1BVEVMWSBFUVVBTCBUTyBPUiBUSEUgSU1BR0UgT0Y7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjUzO0lNQUdFIE9GIE9SIEFQUFJPWElNQVRFTFkgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjU0O0NPTE9OIEVRVUFMUztTbTswO09OOzs7OztZO0NPTE9OIEVRVUFMOzs7OworMjI1NTtFUVVBTFMgQ09MT047U207MDtPTjs7Ozs7WTtFUVVBTCBDT0xPTjs7OzsKKzIyNTY7UklORyBJTiBFUVVBTCBUTztTbTswO09OOzs7OztOOzs7OzsKKzIyNTc7UklORyBFUVVBTCBUTztTbTswO09OOzs7OztOOzs7OzsKKzIyNTg7Q09SUkVTUE9ORFMgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjU5O0VTVElNQVRFUztTbTswO09OOzs7OztOOzs7OzsKKzIyNUE7RVFVSUFOR1VMQVIgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjVCO1NUQVIgRVFVQUxTO1NtOzA7T047Ozs7O047Ozs7OworMjI1QztERUxUQSBFUVVBTCBUTztTbTswO09OOzs7OztOOzs7OzsKKzIyNUQ7RVFVQUwgVE8gQlkgREVGSU5JVElPTjtTbTswO09OOzs7OztOOzs7OzsKKzIyNUU7TUVBU1VSRUQgQlk7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjVGO1FVRVNUSU9ORUQgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjYwO05PVCBFUVVBTCBUTztTbTswO09OOzAwM0QgMDMzODs7OztZOzs7OzsKKzIyNjE7SURFTlRJQ0FMIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjI2MjtOT1QgSURFTlRJQ0FMIFRPO1NtOzA7T047MjI2MSAwMzM4Ozs7O1k7Ozs7OworMjI2MztTVFJJQ1RMWSBFUVVJVkFMRU5UIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjI2NDtMRVNTLVRIQU4gT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTtMRVNTIFRIQU4gT1IgRVFVQUwgVE87Ozs7CisyMjY1O0dSRUFURVItVEhBTiBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZO0dSRUFURVIgVEhBTiBPUiBFUVVBTCBUTzs7OzsKKzIyNjY7TEVTUy1USEFOIE9WRVIgRVFVQUwgVE87U207MDtPTjs7Ozs7WTtMRVNTIFRIQU4gT1ZFUiBFUVVBTCBUTzs7OzsKKzIyNjc7R1JFQVRFUi1USEFOIE9WRVIgRVFVQUwgVE87U207MDtPTjs7Ozs7WTtHUkVBVEVSIFRIQU4gT1ZFUiBFUVVBTCBUTzs7OzsKKzIyNjg7TEVTUy1USEFOIEJVVCBOT1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTtMRVNTIFRIQU4gQlVUIE5PVCBFUVVBTCBUTzs7OzsKKzIyNjk7R1JFQVRFUi1USEFOIEJVVCBOT1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTtHUkVBVEVSIFRIQU4gQlVUIE5PVCBFUVVBTCBUTzs7OzsKKzIyNkE7TVVDSCBMRVNTLVRIQU47U207MDtPTjs7Ozs7WTtNVUNIIExFU1MgVEhBTjs7OzsKKzIyNkI7TVVDSCBHUkVBVEVSLVRIQU47U207MDtPTjs7Ozs7WTtNVUNIIEdSRUFURVIgVEhBTjs7OzsKKzIyNkM7QkVUV0VFTjtTbTswO09OOzs7OztOOzs7OzsKKzIyNkQ7Tk9UIEVRVUlWQUxFTlQgVE87U207MDtPTjsyMjREIDAzMzg7Ozs7Tjs7Ozs7CisyMjZFO05PVCBMRVNTLVRIQU47U207MDtPTjswMDNDIDAzMzg7Ozs7WTtOT1QgTEVTUyBUSEFOOzs7OworMjI2RjtOT1QgR1JFQVRFUi1USEFOO1NtOzA7T047MDAzRSAwMzM4Ozs7O1k7Tk9UIEdSRUFURVIgVEhBTjs7OzsKKzIyNzA7TkVJVEhFUiBMRVNTLVRIQU4gTk9SIEVRVUFMIFRPO1NtOzA7T047MjI2NCAwMzM4Ozs7O1k7TkVJVEhFUiBMRVNTIFRIQU4gTk9SIEVRVUFMIFRPOzs7OworMjI3MTtORUlUSEVSIEdSRUFURVItVEhBTiBOT1IgRVFVQUwgVE87U207MDtPTjsyMjY1IDAzMzg7Ozs7WTtORUlUSEVSIEdSRUFURVIgVEhBTiBOT1IgRVFVQUwgVE87Ozs7CisyMjcyO0xFU1MtVEhBTiBPUiBFUVVJVkFMRU5UIFRPO1NtOzA7T047Ozs7O1k7TEVTUyBUSEFOIE9SIEVRVUlWQUxFTlQgVE87Ozs7CisyMjczO0dSRUFURVItVEhBTiBPUiBFUVVJVkFMRU5UIFRPO1NtOzA7T047Ozs7O1k7R1JFQVRFUiBUSEFOIE9SIEVRVUlWQUxFTlQgVE87Ozs7CisyMjc0O05FSVRIRVIgTEVTUy1USEFOIE5PUiBFUVVJVkFMRU5UIFRPO1NtOzA7T047MjI3MiAwMzM4Ozs7O1k7TkVJVEhFUiBMRVNTIFRIQU4gTk9SIEVRVUlWQUxFTlQgVE87Ozs7CisyMjc1O05FSVRIRVIgR1JFQVRFUi1USEFOIE5PUiBFUVVJVkFMRU5UIFRPO1NtOzA7T047MjI3MyAwMzM4Ozs7O1k7TkVJVEhFUiBHUkVBVEVSIFRIQU4gTk9SIEVRVUlWQUxFTlQgVE87Ozs7CisyMjc2O0xFU1MtVEhBTiBPUiBHUkVBVEVSLVRIQU47U207MDtPTjs7Ozs7WTtMRVNTIFRIQU4gT1IgR1JFQVRFUiBUSEFOOzs7OworMjI3NztHUkVBVEVSLVRIQU4gT1IgTEVTUy1USEFOO1NtOzA7T047Ozs7O1k7R1JFQVRFUiBUSEFOIE9SIExFU1MgVEhBTjs7OzsKKzIyNzg7TkVJVEhFUiBMRVNTLVRIQU4gTk9SIEdSRUFURVItVEhBTjtTbTswO09OOzIyNzYgMDMzODs7OztZO05FSVRIRVIgTEVTUyBUSEFOIE5PUiBHUkVBVEVSIFRIQU47Ozs7CisyMjc5O05FSVRIRVIgR1JFQVRFUi1USEFOIE5PUiBMRVNTLVRIQU47U207MDtPTjsyMjc3IDAzMzg7Ozs7WTtORUlUSEVSIEdSRUFURVIgVEhBTiBOT1IgTEVTUyBUSEFOOzs7OworMjI3QTtQUkVDRURFUztTbTswO09OOzs7OztZOzs7OzsKKzIyN0I7U1VDQ0VFRFM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjdDO1BSRUNFREVTIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI3RDtTVUNDRUVEUyBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyN0U7UFJFQ0VERVMgT1IgRVFVSVZBTEVOVCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyN0Y7U1VDQ0VFRFMgT1IgRVFVSVZBTEVOVCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyODA7RE9FUyBOT1QgUFJFQ0VERTtTbTswO09OOzIyN0EgMDMzODs7OztZOzs7OzsKKzIyODE7RE9FUyBOT1QgU1VDQ0VFRDtTbTswO09OOzIyN0IgMDMzODs7OztZOzs7OzsKKzIyODI7U1VCU0VUIE9GO1NtOzA7T047Ozs7O1k7Ozs7OworMjI4MztTVVBFUlNFVCBPRjtTbTswO09OOzs7OztZOzs7OzsKKzIyODQ7Tk9UIEEgU1VCU0VUIE9GO1NtOzA7T047MjI4MiAwMzM4Ozs7O1k7Ozs7OworMjI4NTtOT1QgQSBTVVBFUlNFVCBPRjtTbTswO09OOzIyODMgMDMzODs7OztZOzs7OzsKKzIyODY7U1VCU0VUIE9GIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI4NztTVVBFUlNFVCBPRiBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyODg7TkVJVEhFUiBBIFNVQlNFVCBPRiBOT1IgRVFVQUwgVE87U207MDtPTjsyMjg2IDAzMzg7Ozs7WTs7Ozs7CisyMjg5O05FSVRIRVIgQSBTVVBFUlNFVCBPRiBOT1IgRVFVQUwgVE87U207MDtPTjsyMjg3IDAzMzg7Ozs7WTs7Ozs7CisyMjhBO1NVQlNFVCBPRiBXSVRIIE5PVCBFUVVBTCBUTztTbTswO09OOzs7OztZO1NVQlNFVCBPRiBPUiBOT1QgRVFVQUwgVE87Ozs7CisyMjhCO1NVUEVSU0VUIE9GIFdJVEggTk9UIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7U1VQRVJTRVQgT0YgT1IgTk9UIEVRVUFMIFRPOzs7OworMjI4QztNVUxUSVNFVDtTbTswO09OOzs7OztZOzs7OzsKKzIyOEQ7TVVMVElTRVQgTVVMVElQTElDQVRJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjhFO01VTFRJU0VUIFVOSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjI4RjtTUVVBUkUgSU1BR0UgT0Y7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjkwO1NRVUFSRSBPUklHSU5BTCBPRjtTbTswO09OOzs7OztZOzs7OzsKKzIyOTE7U1FVQVJFIElNQUdFIE9GIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI5MjtTUVVBUkUgT1JJR0lOQUwgT0YgT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjkzO1NRVUFSRSBDQVA7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjk0O1NRVUFSRSBDVVA7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjk1O0NJUkNMRUQgUExVUztTbTswO09OOzs7OztOOzs7OzsKKzIyOTY7Q0lSQ0xFRCBNSU5VUztTbTswO09OOzs7OztOOzs7OzsKKzIyOTc7Q0lSQ0xFRCBUSU1FUztTbTswO09OOzs7OztOOzs7OzsKKzIyOTg7Q0lSQ0xFRCBESVZJU0lPTiBTTEFTSDtTbTswO09OOzs7OztZOzs7OzsKKzIyOTk7Q0lSQ0xFRCBET1QgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjlBO0NJUkNMRUQgUklORyBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzIyOUI7Q0lSQ0xFRCBBU1RFUklTSyBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzIyOUM7Q0lSQ0xFRCBFUVVBTFM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjlEO0NJUkNMRUQgREFTSDtTbTswO09OOzs7OztOOzs7OzsKKzIyOUU7U1FVQVJFRCBQTFVTO1NtOzA7T047Ozs7O047Ozs7OworMjI5RjtTUVVBUkVEIE1JTlVTO1NtOzA7T047Ozs7O047Ozs7OworMjJBMDtTUVVBUkVEIFRJTUVTO1NtOzA7T047Ozs7O047Ozs7OworMjJBMTtTUVVBUkVEIERPVCBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzIyQTI7UklHSFQgVEFDSztTbTswO09OOzs7OztZOzs7OzsKKzIyQTM7TEVGVCBUQUNLO1NtOzA7T047Ozs7O1k7Ozs7OworMjJBNDtET1dOIFRBQ0s7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkE1O1VQIFRBQ0s7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkE2O0FTU0VSVElPTjtTbTswO09OOzs7OztZOzs7OzsKKzIyQTc7TU9ERUxTO1NtOzA7T047Ozs7O1k7Ozs7OworMjJBODtUUlVFO1NtOzA7T047Ozs7O1k7Ozs7OworMjJBOTtGT1JDRVM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkFBO1RSSVBMRSBWRVJUSUNBTCBCQVIgUklHSFQgVFVSTlNUSUxFO1NtOzA7T047Ozs7O1k7Ozs7OworMjJBQjtET1VCTEUgVkVSVElDQUwgQkFSIERPVUJMRSBSSUdIVCBUVVJOU1RJTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkFDO0RPRVMgTk9UIFBST1ZFO1NtOzA7T047MjJBMiAwMzM4Ozs7O1k7Ozs7OworMjJBRDtOT1QgVFJVRTtTbTswO09OOzIyQTggMDMzODs7OztZOzs7OzsKKzIyQUU7RE9FUyBOT1QgRk9SQ0U7U207MDtPTjsyMkE5IDAzMzg7Ozs7WTs7Ozs7CisyMkFGO05FR0FURUQgRE9VQkxFIFZFUlRJQ0FMIEJBUiBET1VCTEUgUklHSFQgVFVSTlNUSUxFO1NtOzA7T047MjJBQiAwMzM4Ozs7O1k7Ozs7OworMjJCMDtQUkVDRURFUyBVTkRFUiBSRUxBVElPTjtTbTswO09OOzs7OztZOzs7OzsKKzIyQjE7U1VDQ0VFRFMgVU5ERVIgUkVMQVRJT047U207MDtPTjs7Ozs7WTs7Ozs7CisyMkIyO05PUk1BTCBTVUJHUk9VUCBPRjtTbTswO09OOzs7OztZOzs7OzsKKzIyQjM7Q09OVEFJTlMgQVMgTk9STUFMIFNVQkdST1VQO1NtOzA7T047Ozs7O1k7Ozs7OworMjJCNDtOT1JNQUwgU1VCR1JPVVAgT0YgT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMkI1O0NPTlRBSU5TIEFTIE5PUk1BTCBTVUJHUk9VUCBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyQjY7T1JJR0lOQUwgT0Y7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkI3O0lNQUdFIE9GO1NtOzA7T047Ozs7O1k7Ozs7OworMjJCODtNVUxUSU1BUDtTbTswO09OOzs7OztZOzs7OzsKKzIyQjk7SEVSTUlUSUFOIENPTkpVR0FURSBNQVRSSVg7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkJBO0lOVEVSQ0FMQVRFO1NtOzA7T047Ozs7O047Ozs7OworMjJCQjtYT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkJDO05BTkQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkJEO05PUjtTbTswO09OOzs7OztOOzs7OzsKKzIyQkU7UklHSFQgQU5HTEUgV0lUSCBBUkM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkJGO1JJR0hUIFRSSUFOR0xFO1NtOzA7T047Ozs7O1k7Ozs7OworMjJDMDtOLUFSWSBMT0dJQ0FMIEFORDtTbTswO09OOzs7OztOOzs7OzsKKzIyQzE7Ti1BUlkgTE9HSUNBTCBPUjtTbTswO09OOzs7OztOOzs7OzsKKzIyQzI7Ti1BUlkgSU5URVJTRUNUSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjJDMztOLUFSWSBVTklPTjtTbTswO09OOzs7OztOOzs7OzsKKzIyQzQ7RElBTU9ORCBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzIyQzU7RE9UIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjJDNjtTVEFSIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjJDNztESVZJU0lPTiBUSU1FUztTbTswO09OOzs7OztOOzs7OzsKKzIyQzg7Qk9XVElFO1NtOzA7T047Ozs7O047Ozs7OworMjJDOTtMRUZUIE5PUk1BTCBGQUNUT1IgU0VNSURJUkVDVCBQUk9EVUNUO1NtOzA7T047Ozs7O1k7Ozs7OworMjJDQTtSSUdIVCBOT1JNQUwgRkFDVE9SIFNFTUlESVJFQ1QgUFJPRFVDVDtTbTswO09OOzs7OztZOzs7OzsKKzIyQ0I7TEVGVCBTRU1JRElSRUNUIFBST0RVQ1Q7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkNDO1JJR0hUIFNFTUlESVJFQ1QgUFJPRFVDVDtTbTswO09OOzs7OztZOzs7OzsKKzIyQ0Q7UkVWRVJTRUQgVElMREUgRVFVQUxTO1NtOzA7T047Ozs7O1k7Ozs7OworMjJDRTtDVVJMWSBMT0dJQ0FMIE9SO1NtOzA7T047Ozs7O047Ozs7OworMjJDRjtDVVJMWSBMT0dJQ0FMIEFORDtTbTswO09OOzs7OztOOzs7OzsKKzIyRDA7RE9VQkxFIFNVQlNFVDtTbTswO09OOzs7OztZOzs7OzsKKzIyRDE7RE9VQkxFIFNVUEVSU0VUO1NtOzA7T047Ozs7O1k7Ozs7OworMjJEMjtET1VCTEUgSU5URVJTRUNUSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjJEMztET1VCTEUgVU5JT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkQ0O1BJVENIRk9SSztTbTswO09OOzs7OztOOzs7OzsKKzIyRDU7RVFVQUwgQU5EIFBBUkFMTEVMIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjJENjtMRVNTLVRIQU4gV0lUSCBET1Q7U207MDtPTjs7Ozs7WTtMRVNTIFRIQU4gV0lUSCBET1Q7Ozs7CisyMkQ3O0dSRUFURVItVEhBTiBXSVRIIERPVDtTbTswO09OOzs7OztZO0dSRUFURVIgVEhBTiBXSVRIIERPVDs7OzsKKzIyRDg7VkVSWSBNVUNIIExFU1MtVEhBTjtTbTswO09OOzs7OztZO1ZFUlkgTVVDSCBMRVNTIFRIQU47Ozs7CisyMkQ5O1ZFUlkgTVVDSCBHUkVBVEVSLVRIQU47U207MDtPTjs7Ozs7WTtWRVJZIE1VQ0ggR1JFQVRFUiBUSEFOOzs7OworMjJEQTtMRVNTLVRIQU4gRVFVQUwgVE8gT1IgR1JFQVRFUi1USEFOO1NtOzA7T047Ozs7O1k7TEVTUyBUSEFOIEVRVUFMIFRPIE9SIEdSRUFURVIgVEhBTjs7OzsKKzIyREI7R1JFQVRFUi1USEFOIEVRVUFMIFRPIE9SIExFU1MtVEhBTjtTbTswO09OOzs7OztZO0dSRUFURVIgVEhBTiBFUVVBTCBUTyBPUiBMRVNTIFRIQU47Ozs7CisyMkRDO0VRVUFMIFRPIE9SIExFU1MtVEhBTjtTbTswO09OOzs7OztZO0VRVUFMIFRPIE9SIExFU1MgVEhBTjs7OzsKKzIyREQ7RVFVQUwgVE8gT1IgR1JFQVRFUi1USEFOO1NtOzA7T047Ozs7O1k7RVFVQUwgVE8gT1IgR1JFQVRFUiBUSEFOOzs7OworMjJERTtFUVVBTCBUTyBPUiBQUkVDRURFUztTbTswO09OOzs7OztZOzs7OzsKKzIyREY7RVFVQUwgVE8gT1IgU1VDQ0VFRFM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkUwO0RPRVMgTk9UIFBSRUNFREUgT1IgRVFVQUw7U207MDtPTjsyMjdDIDAzMzg7Ozs7WTs7Ozs7CisyMkUxO0RPRVMgTk9UIFNVQ0NFRUQgT1IgRVFVQUw7U207MDtPTjsyMjdEIDAzMzg7Ozs7WTs7Ozs7CisyMkUyO05PVCBTUVVBUkUgSU1BR0UgT0YgT1IgRVFVQUwgVE87U207MDtPTjsyMjkxIDAzMzg7Ozs7WTs7Ozs7CisyMkUzO05PVCBTUVVBUkUgT1JJR0lOQUwgT0YgT1IgRVFVQUwgVE87U207MDtPTjsyMjkyIDAzMzg7Ozs7WTs7Ozs7CisyMkU0O1NRVUFSRSBJTUFHRSBPRiBPUiBOT1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMkU1O1NRVUFSRSBPUklHSU5BTCBPRiBPUiBOT1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMkU2O0xFU1MtVEhBTiBCVVQgTk9UIEVRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7WTtMRVNTIFRIQU4gQlVUIE5PVCBFUVVJVkFMRU5UIFRPOzs7OworMjJFNztHUkVBVEVSLVRIQU4gQlVUIE5PVCBFUVVJVkFMRU5UIFRPO1NtOzA7T047Ozs7O1k7R1JFQVRFUiBUSEFOIEJVVCBOT1QgRVFVSVZBTEVOVCBUTzs7OzsKKzIyRTg7UFJFQ0VERVMgQlVUIE5PVCBFUVVJVkFMRU5UIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjJFOTtTVUNDRUVEUyBCVVQgTk9UIEVRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMkVBO05PVCBOT1JNQUwgU1VCR1JPVVAgT0Y7U207MDtPTjsyMkIyIDAzMzg7Ozs7WTs7Ozs7CisyMkVCO0RPRVMgTk9UIENPTlRBSU4gQVMgTk9STUFMIFNVQkdST1VQO1NtOzA7T047MjJCMyAwMzM4Ozs7O1k7Ozs7OworMjJFQztOT1QgTk9STUFMIFNVQkdST1VQIE9GIE9SIEVRVUFMIFRPO1NtOzA7T047MjJCNCAwMzM4Ozs7O1k7Ozs7OworMjJFRDtET0VTIE5PVCBDT05UQUlOIEFTIE5PUk1BTCBTVUJHUk9VUCBPUiBFUVVBTDtTbTswO09OOzIyQjUgMDMzODs7OztZOzs7OzsKKzIyRUU7VkVSVElDQUwgRUxMSVBTSVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkVGO01JRExJTkUgSE9SSVpPTlRBTCBFTExJUFNJUztTbTswO09OOzs7OztOOzs7OzsKKzIyRjA7VVAgUklHSFQgRElBR09OQUwgRUxMSVBTSVM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkYxO0RPV04gUklHSFQgRElBR09OQUwgRUxMSVBTSVM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMzAwO0RJQU1FVEVSIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzAxO0VMRUNUUklDIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMjMwMjtIT1VTRTtTbzswO09OOzs7OztOOzs7OzsKKzIzMDM7VVAgQVJST1dIRUFEO1NvOzA7T047Ozs7O047Ozs7OworMjMwNDtET1dOIEFSUk9XSEVBRDtTbzswO09OOzs7OztOOzs7OzsKKzIzMDU7UFJPSkVDVElWRTtTbzswO09OOzs7OztOOzs7OzsKKzIzMDY7UEVSU1BFQ1RJVkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzA3O1dBVlkgTElORTtTbzswO09OOzs7OztOOzs7OzsKKzIzMDg7TEVGVCBDRUlMSU5HO1NtOzA7T047Ozs7O1k7Ozs7OworMjMwOTtSSUdIVCBDRUlMSU5HO1NtOzA7T047Ozs7O1k7Ozs7OworMjMwQTtMRUZUIEZMT09SO1NtOzA7T047Ozs7O1k7Ozs7OworMjMwQjtSSUdIVCBGTE9PUjtTbTswO09OOzs7OztZOzs7OzsKKzIzMEM7Qk9UVE9NIFJJR0hUIENST1A7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzBEO0JPVFRPTSBMRUZUIENST1A7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzBFO1RPUCBSSUdIVCBDUk9QO1NvOzA7T047Ozs7O047Ozs7OworMjMwRjtUT1AgTEVGVCBDUk9QO1NvOzA7T047Ozs7O047Ozs7OworMjMxMDtSRVZFUlNFRCBOT1QgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzIzMTE7U1FVQVJFIExPWkVOR0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzEyO0FSQztTbzswO09OOzs7OztOOzs7OzsKKzIzMTM7U0VHTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzIzMTQ7U0VDVE9SO1NvOzA7T047Ozs7O047Ozs7OworMjMxNTtURUxFUEhPTkUgUkVDT1JERVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzE2O1BPU0lUSU9OIElORElDQVRPUjtTbzswO09OOzs7OztOOzs7OzsKKzIzMTc7VklFV0RBVEEgU1FVQVJFO1NvOzA7T047Ozs7O047Ozs7OworMjMxODtQTEFDRSBPRiBJTlRFUkVTVCBTSUdOO1NvOzA7T047Ozs7O047Q09NTUFORCBLRVk7Ozs7CisyMzE5O1RVUk5FRCBOT1QgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzIzMUE7V0FUQ0g7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzFCO0hPVVJHTEFTUztTbzswO09OOzs7OztOOzs7OzsKKzIzMUM7VE9QIExFRlQgQ09STkVSO1NvOzA7T047Ozs7O047Ozs7OworMjMxRDtUT1AgUklHSFQgQ09STkVSO1NvOzA7T047Ozs7O047Ozs7OworMjMxRTtCT1RUT00gTEVGVCBDT1JORVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzFGO0JPVFRPTSBSSUdIVCBDT1JORVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzIwO1RPUCBIQUxGIElOVEVHUkFMO1NtOzA7T047Ozs7O1k7Ozs7OworMjMyMTtCT1RUT00gSEFMRiBJTlRFR1JBTDtTbTswO09OOzs7OztZOzs7OzsKKzIzMjI7RlJPV047U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzIzO1NNSUxFO1NvOzA7T047Ozs7O047Ozs7OworMjMyNDtVUCBBUlJPV0hFQUQgQkVUV0VFTiBUV08gSE9SSVpPTlRBTCBCQVJTO1NvOzA7T047Ozs7O047RU5URVIgS0VZOzs7OworMjMyNTtPUFRJT04gS0VZO1NvOzA7T047Ozs7O047Ozs7OworMjMyNjtFUkFTRSBUTyBUSEUgUklHSFQ7U287MDtPTjs7Ozs7TjtERUxFVEUgVE8gVEhFIFJJR0hUIEtFWTs7OzsKKzIzMjc7WCBJTiBBIFJFQ1RBTkdMRSBCT1g7U287MDtPTjs7Ozs7TjtDTEVBUiBLRVk7Ozs7CisyMzI4O0tFWUJPQVJEO1NvOzA7T047Ozs7O047Ozs7OworMjMyOTtMRUZULVBPSU5USU5HIEFOR0xFIEJSQUNLRVQ7UHM7MDtPTjszMDA4Ozs7O1k7QlJBOzs7OworMjMyQTtSSUdIVC1QT0lOVElORyBBTkdMRSBCUkFDS0VUO1BlOzA7T047MzAwOTs7OztZO0tFVDs7OzsKKzIzMkI7RVJBU0UgVE8gVEhFIExFRlQ7U287MDtPTjs7Ozs7TjtERUxFVEUgVE8gVEhFIExFRlQgS0VZOzs7OworMjMyQztCRU5aRU5FIFJJTkc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzJEO0NZTElORFJJQ0lUWTtTbzswO09OOzs7OztOOzs7OzsKKzIzMkU7QUxMIEFST1VORC1QUk9GSUxFO1NvOzA7T047Ozs7O047Ozs7OworMjMyRjtTWU1NRVRSWTtTbzswO09OOzs7OztOOzs7OzsKKzIzMzA7VE9UQUwgUlVOT1VUO1NvOzA7T047Ozs7O047Ozs7OworMjMzMTtESU1FTlNJT04gT1JJR0lOO1NvOzA7T047Ozs7O047Ozs7OworMjMzMjtDT05JQ0FMIFRBUEVSO1NvOzA7T047Ozs7O047Ozs7OworMjMzMztTTE9QRTtTbzswO09OOzs7OztOOzs7OzsKKzIzMzQ7Q09VTlRFUkJPUkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzM1O0NPVU5URVJTSU5LO1NvOzA7T047Ozs7O047Ozs7OworMjMzNjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgSS1CRUFNO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzM3O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBTUVVJU0ggUVVBRDtTbzswO0w7Ozs7O047Ozs7OworMjMzODtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBFUVVBTDtTbzswO0w7Ozs7O047Ozs7OworMjMzOTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBESVZJREU7U287MDtMOzs7OztOOzs7OzsKKzIzM0E7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgRElBTU9ORDtTbzswO0w7Ozs7O047Ozs7OworMjMzQjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBKT1Q7U287MDtMOzs7OztOOzs7OzsKKzIzM0M7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgQ0lSQ0xFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzNEO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBDSVJDTEUgU1RJTEU7U287MDtMOzs7OztOOzs7OzsKKzIzM0U7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIENJUkNMRSBKT1Q7U287MDtMOzs7OztOOzs7OzsKKzIzM0Y7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFNMQVNIIEJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM0MDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgQkFDS1NMQVNIIEJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM0MTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBTTEFTSDtTbzswO0w7Ozs7O047Ozs7OworMjM0MjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBCQUNLU0xBU0g7U287MDtMOzs7OztOOzs7OzsKKzIzNDM7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgTEVTUy1USEFOO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzQ0O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIEdSRUFURVItVEhBTjtTbzswO0w7Ozs7O047Ozs7OworMjM0NTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgTEVGVFdBUkRTIFZBTkU7U287MDtMOzs7OztOOzs7OzsKKzIzNDY7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFJJR0hUV0FSRFMgVkFORTtTbzswO0w7Ozs7O047Ozs7OworMjM0NztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBMRUZUV0FSRFMgQVJST1c7U287MDtMOzs7OztOOzs7OzsKKzIzNDg7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgUklHSFRXQVJEUyBBUlJPVztTbzswO0w7Ozs7O047Ozs7OworMjM0OTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgQ0lSQ0xFIEJBQ0tTTEFTSDtTbzswO0w7Ozs7O047Ozs7OworMjM0QTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgRE9XTiBUQUNLIFVOREVSQkFSO1NvOzA7TDs7Ozs7Tjs7Kjs7OworMjM0QjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgREVMVEEgU1RJTEU7U287MDtMOzs7OztOOzs7OzsKKzIzNEM7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgRE9XTiBDQVJFVDtTbzswO0w7Ozs7O047Ozs7OworMjM0RDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBERUxUQTtTbzswO0w7Ozs7O047Ozs7OworMjM0RTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgRE9XTiBUQUNLIEpPVDtTbzswO0w7Ozs7O047Oyo7OzsKKzIzNEY7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFVQV0FSRFMgVkFORTtTbzswO0w7Ozs7O047Ozs7OworMjM1MDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBVUFdBUkRTIEFSUk9XO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzUxO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBVUCBUQUNLIE9WRVJCQVI7U287MDtMOzs7OztOOzsqOzs7CisyMzUyO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBERUwgU1RJTEU7U287MDtMOzs7OztOOzs7OzsKKzIzNTM7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgVVAgQ0FSRVQ7U287MDtMOzs7OztOOzs7OzsKKzIzNTQ7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgREVMO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzU1O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBVUCBUQUNLIEpPVDtTbzswO0w7Ozs7O047Oyo7OzsKKzIzNTY7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERPV05XQVJEUyBWQU5FO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzU3O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIERPV05XQVJEUyBBUlJPVztTbzswO0w7Ozs7O047Ozs7OworMjM1ODtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVPVEUgVU5ERVJCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNTk7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERFTFRBIFVOREVSQkFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzVBO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBESUFNT05EIFVOREVSQkFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzVCO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBKT1QgVU5ERVJCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNUM7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIENJUkNMRSBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM1RDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgVVAgU0hPRSBKT1Q7U287MDtMOzs7OztOOzs7OzsKKzIzNUU7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVT1RFIFFVQUQ7U287MDtMOzs7OztOOzs7OzsKKzIzNUY7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIENJUkNMRSBTVEFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzYwO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIENPTE9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzYxO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBVUCBUQUNLIERJQUVSRVNJUztTbzswO0w7Ozs7O047Oyo7OzsKKzIzNjI7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERFTCBESUFFUkVTSVM7U287MDtMOzs7OztOOzs7OzsKKzIzNjM7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFNUQVIgRElBRVJFU0lTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzY0O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBKT1QgRElBRVJFU0lTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzY1O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBDSVJDTEUgRElBRVJFU0lTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzY2O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBET1dOIFNIT0UgU1RJTEU7U287MDtMOzs7OztOOzs7OzsKKzIzNjc7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIExFRlQgU0hPRSBTVElMRTtTbzswO0w7Ozs7O047Ozs7OworMjM2ODtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgVElMREUgRElBRVJFU0lTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzY5O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBHUkVBVEVSLVRIQU4gRElBRVJFU0lTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzZBO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBDT01NQSBCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNkI7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERFTCBUSUxERTtTbzswO0w7Ozs7O047Ozs7OworMjM2QztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgWklMREU7U287MDtMOzs7OztOOzs7OzsKKzIzNkQ7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFNUSUxFIFRJTERFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzZFO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBTRU1JQ09MT04gVU5ERVJCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNkY7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgTk9UIEVRVUFMO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzcwO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIFFVRVNUSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzcxO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBET1dOIENBUkVUIFRJTERFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzcyO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBVUCBDQVJFVCBUSUxERTtTbzswO0w7Ozs7O047Ozs7OworMjM3MztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgSU9UQTtTbzswO0w7Ozs7O047Ozs7OworMjM3NDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUkhPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzc1O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBPTUVHQTtTbzswO0w7Ozs7O047Ozs7OworMjM3NjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgQUxQSEEgVU5ERVJCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNzc7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIEVQU0lMT04gVU5ERVJCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNzg7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIElPVEEgVU5ERVJCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNzk7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIE9NRUdBIFVOREVSQkFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzdBO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBBTFBIQTtTbzswO0w7Ozs7O047Ozs7OworMjM3QjtOT1QgQ0hFQ0sgTUFSSztTbzswO09OOzs7OztOOzs7OzsKKzIzN0Q7U0hPVUxERVJFRCBPUEVOIEJPWDtTbzswO09OOzs7OztOOzs7OzsKKzIzN0U7QkVMTCBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzdGO1ZFUlRJQ0FMIExJTkUgV0lUSCBNSURETEUgRE9UO1NvOzA7T047Ozs7O047Ozs7OworMjM4MDtJTlNFUlRJT04gU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM4MTtDT05USU5VT1VTIFVOREVSTElORSBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzgyO0RJU0NPTlRJTlVPVVMgVU5ERVJMSU5FIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzODM7RU1QSEFTSVMgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM4NDtDT01QT1NJVElPTiBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzg1O1dISVRFIFNRVUFSRSBXSVRIIENFTlRSRSBWRVJUSUNBTCBMSU5FO1NvOzA7T047Ozs7O047Ozs7OworMjM4NjtFTlRFUiBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzg3O0FMVEVSTkFUSVZFIEtFWSBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzg4O0hFTE0gU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM4OTtDSVJDTEVEIEhPUklaT05UQUwgQkFSIFdJVEggTk9UQ0g7U287MDtPTjs7Ozs7Tjs7cGF1c2U7OzsKKzIzOEE7Q0lSQ0xFRCBUUklBTkdMRSBET1dOO1NvOzA7T047Ozs7O047O2JyZWFrOzs7CisyMzhCO0JST0tFTiBDSVJDTEUgV0lUSCBOT1JUSFdFU1QgQVJST1c7U287MDtPTjs7Ozs7Tjs7ZXNjYXBlOzs7CisyMzhDO1VORE8gU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM4RDtNT05PU1RBQkxFIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzOEU7SFlTVEVSRVNJUyBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzhGO09QRU4tQ0lSQ1VJVC1PVVRQVVQgSC1UWVBFIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzOTA7T1BFTi1DSVJDVUlULU9VVFBVVCBMLVRZUEUgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM5MTtQQVNTSVZFLVBVTEwtRE9XTi1PVVRQVVQgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM5MjtQQVNTSVZFLVBVTEwtVVAtT1VUUFVUIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzOTM7RElSRUNUIENVUlJFTlQgU1lNQk9MIEZPUk0gVFdPO1NvOzA7T047Ozs7O047Ozs7OworMjM5NDtTT0ZUV0FSRS1GVU5DVElPTiBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzk1O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzk2O0RFQ0lNQUwgU0VQQVJBVE9SIEtFWSBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzk3O1BSRVZJT1VTIFBBR0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzk4O05FWFQgUEFHRTtTbzswO09OOzs7OztOOzs7OzsKKzIzOTk7UFJJTlQgU0NSRUVOIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzOUE7Q0xFQVIgU0NSRUVOIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzI0MDA7U1lNQk9MIEZPUiBOVUxMO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgTlVMTDs7OzsKKzI0MDE7U1lNQk9MIEZPUiBTVEFSVCBPRiBIRUFESU5HO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgU1RBUlQgT0YgSEVBRElORzs7OzsKKzI0MDI7U1lNQk9MIEZPUiBTVEFSVCBPRiBURVhUO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgU1RBUlQgT0YgVEVYVDs7OzsKKzI0MDM7U1lNQk9MIEZPUiBFTkQgT0YgVEVYVDtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEVORCBPRiBURVhUOzs7OworMjQwNDtTWU1CT0wgRk9SIEVORCBPRiBUUkFOU01JU1NJT047U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBFTkQgT0YgVFJBTlNNSVNTSU9OOzs7OworMjQwNTtTWU1CT0wgRk9SIEVOUVVJUlk7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBFTlFVSVJZOzs7OworMjQwNjtTWU1CT0wgRk9SIEFDS05PV0xFREdFO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgQUNLTk9XTEVER0U7Ozs7CisyNDA3O1NZTUJPTCBGT1IgQkVMTDtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEJFTEw7Ozs7CisyNDA4O1NZTUJPTCBGT1IgQkFDS1NQQUNFO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgQkFDS1NQQUNFOzs7OworMjQwOTtTWU1CT0wgRk9SIEhPUklaT05UQUwgVEFCVUxBVElPTjtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEhPUklaT05UQUwgVEFCVUxBVElPTjs7OzsKKzI0MEE7U1lNQk9MIEZPUiBMSU5FIEZFRUQ7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBMSU5FIEZFRUQ7Ozs7CisyNDBCO1NZTUJPTCBGT1IgVkVSVElDQUwgVEFCVUxBVElPTjtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIFZFUlRJQ0FMIFRBQlVMQVRJT047Ozs7CisyNDBDO1NZTUJPTCBGT1IgRk9STSBGRUVEO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgRk9STSBGRUVEOzs7OworMjQwRDtTWU1CT0wgRk9SIENBUlJJQUdFIFJFVFVSTjtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIENBUlJJQUdFIFJFVFVSTjs7OzsKKzI0MEU7U1lNQk9MIEZPUiBTSElGVCBPVVQ7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBTSElGVCBPVVQ7Ozs7CisyNDBGO1NZTUJPTCBGT1IgU0hJRlQgSU47U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBTSElGVCBJTjs7OzsKKzI0MTA7U1lNQk9MIEZPUiBEQVRBIExJTksgRVNDQVBFO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgREFUQSBMSU5LIEVTQ0FQRTs7OzsKKzI0MTE7U1lNQk9MIEZPUiBERVZJQ0UgQ09OVFJPTCBPTkU7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBERVZJQ0UgQ09OVFJPTCBPTkU7Ozs7CisyNDEyO1NZTUJPTCBGT1IgREVWSUNFIENPTlRST0wgVFdPO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgREVWSUNFIENPTlRST0wgVFdPOzs7OworMjQxMztTWU1CT0wgRk9SIERFVklDRSBDT05UUk9MIFRIUkVFO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgREVWSUNFIENPTlRST0wgVEhSRUU7Ozs7CisyNDE0O1NZTUJPTCBGT1IgREVWSUNFIENPTlRST0wgRk9VUjtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIERFVklDRSBDT05UUk9MIEZPVVI7Ozs7CisyNDE1O1NZTUJPTCBGT1IgTkVHQVRJVkUgQUNLTk9XTEVER0U7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBORUdBVElWRSBBQ0tOT1dMRURHRTs7OzsKKzI0MTY7U1lNQk9MIEZPUiBTWU5DSFJPTk9VUyBJRExFO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgU1lOQ0hST05PVVMgSURMRTs7OzsKKzI0MTc7U1lNQk9MIEZPUiBFTkQgT0YgVFJBTlNNSVNTSU9OIEJMT0NLO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgRU5EIE9GIFRSQU5TTUlTU0lPTiBCTE9DSzs7OzsKKzI0MTg7U1lNQk9MIEZPUiBDQU5DRUw7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBDQU5DRUw7Ozs7CisyNDE5O1NZTUJPTCBGT1IgRU5EIE9GIE1FRElVTTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEVORCBPRiBNRURJVU07Ozs7CisyNDFBO1NZTUJPTCBGT1IgU1VCU1RJVFVURTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIFNVQlNUSVRVVEU7Ozs7CisyNDFCO1NZTUJPTCBGT1IgRVNDQVBFO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgRVNDQVBFOzs7OworMjQxQztTWU1CT0wgRk9SIEZJTEUgU0VQQVJBVE9SO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgRklMRSBTRVBBUkFUT1I7Ozs7CisyNDFEO1NZTUJPTCBGT1IgR1JPVVAgU0VQQVJBVE9SO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgR1JPVVAgU0VQQVJBVE9SOzs7OworMjQxRTtTWU1CT0wgRk9SIFJFQ09SRCBTRVBBUkFUT1I7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBSRUNPUkQgU0VQQVJBVE9SOzs7OworMjQxRjtTWU1CT0wgRk9SIFVOSVQgU0VQQVJBVE9SO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgVU5JVCBTRVBBUkFUT1I7Ozs7CisyNDIwO1NZTUJPTCBGT1IgU1BBQ0U7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBTUEFDRTs7OzsKKzI0MjE7U1lNQk9MIEZPUiBERUxFVEU7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBERUxFVEU7Ozs7CisyNDIyO0JMQU5LIFNZTUJPTDtTbzswO09OOzs7OztOO0JMQU5LOzs7OworMjQyMztPUEVOIEJPWDtTbzswO09OOzs7OztOOzs7OzsKKzI0MjQ7U1lNQk9MIEZPUiBORVdMSU5FO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgTkVXTElORTs7OzsKKzI0MjU7U1lNQk9MIEZPUiBERUxFVEUgRk9STSBUV087U287MDtPTjs7Ozs7Tjs7Ozs7CisyNDI2O1NZTUJPTCBGT1IgU1VCU1RJVFVURSBGT1JNIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzI0NDA7T0NSIEhPT0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNDQxO09DUiBDSEFJUjtTbzswO09OOzs7OztOOzs7OzsKKzI0NDI7T0NSIEZPUks7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNDQzO09DUiBJTlZFUlRFRCBGT1JLO1NvOzA7T047Ozs7O047Ozs7OworMjQ0NDtPQ1IgQkVMVCBCVUNLTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNDQ1O09DUiBCT1cgVElFO1NvOzA7T047Ozs7O047Ozs7OworMjQ0NjtPQ1IgQlJBTkNIIEJBTksgSURFTlRJRklDQVRJT047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNDQ3O09DUiBBTU9VTlQgT0YgQ0hFQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNDQ4O09DUiBEQVNIO1NvOzA7T047Ozs7O047Ozs7OworMjQ0OTtPQ1IgQ1VTVE9NRVIgQUNDT1VOVCBOVU1CRVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNDRBO09DUiBET1VCTEUgQkFDS1NMQVNIO1NvOzA7T047Ozs7O047Ozs7OworMjQ2MDtDSVJDTEVEIERJR0lUIE9ORTtObzswO0VOOzxjaXJjbGU+IDAwMzE7OzE7MTtOOzs7OzsKKzI0NjE7Q0lSQ0xFRCBESUdJVCBUV087Tm87MDtFTjs8Y2lyY2xlPiAwMDMyOzsyOzI7Tjs7Ozs7CisyNDYyO0NJUkNMRUQgRElHSVQgVEhSRUU7Tm87MDtFTjs8Y2lyY2xlPiAwMDMzOzszOzM7Tjs7Ozs7CisyNDYzO0NJUkNMRUQgRElHSVQgRk9VUjtObzswO0VOOzxjaXJjbGU+IDAwMzQ7OzQ7NDtOOzs7OzsKKzI0NjQ7Q0lSQ0xFRCBESUdJVCBGSVZFO05vOzA7RU47PGNpcmNsZT4gMDAzNTs7NTs1O047Ozs7OworMjQ2NTtDSVJDTEVEIERJR0lUIFNJWDtObzswO0VOOzxjaXJjbGU+IDAwMzY7OzY7NjtOOzs7OzsKKzI0NjY7Q0lSQ0xFRCBESUdJVCBTRVZFTjtObzswO0VOOzxjaXJjbGU+IDAwMzc7Ozc7NztOOzs7OzsKKzI0Njc7Q0lSQ0xFRCBESUdJVCBFSUdIVDtObzswO0VOOzxjaXJjbGU+IDAwMzg7Ozg7ODtOOzs7OzsKKzI0Njg7Q0lSQ0xFRCBESUdJVCBOSU5FO05vOzA7RU47PGNpcmNsZT4gMDAzOTs7OTs5O047Ozs7OworMjQ2OTtDSVJDTEVEIE5VTUJFUiBURU47Tm87MDtFTjs8Y2lyY2xlPiAwMDMxIDAwMzA7OzsxMDtOOzs7OzsKKzI0NkE7Q0lSQ0xFRCBOVU1CRVIgRUxFVkVOO05vOzA7RU47PGNpcmNsZT4gMDAzMSAwMDMxOzs7MTE7Tjs7Ozs7CisyNDZCO0NJUkNMRUQgTlVNQkVSIFRXRUxWRTtObzswO0VOOzxjaXJjbGU+IDAwMzEgMDAzMjs7OzEyO047Ozs7OworMjQ2QztDSVJDTEVEIE5VTUJFUiBUSElSVEVFTjtObzswO0VOOzxjaXJjbGU+IDAwMzEgMDAzMzs7OzEzO047Ozs7OworMjQ2RDtDSVJDTEVEIE5VTUJFUiBGT1VSVEVFTjtObzswO0VOOzxjaXJjbGU+IDAwMzEgMDAzNDs7OzE0O047Ozs7OworMjQ2RTtDSVJDTEVEIE5VTUJFUiBGSUZURUVOO05vOzA7RU47PGNpcmNsZT4gMDAzMSAwMDM1Ozs7MTU7Tjs7Ozs7CisyNDZGO0NJUkNMRUQgTlVNQkVSIFNJWFRFRU47Tm87MDtFTjs8Y2lyY2xlPiAwMDMxIDAwMzY7OzsxNjtOOzs7OzsKKzI0NzA7Q0lSQ0xFRCBOVU1CRVIgU0VWRU5URUVOO05vOzA7RU47PGNpcmNsZT4gMDAzMSAwMDM3Ozs7MTc7Tjs7Ozs7CisyNDcxO0NJUkNMRUQgTlVNQkVSIEVJR0hURUVOO05vOzA7RU47PGNpcmNsZT4gMDAzMSAwMDM4Ozs7MTg7Tjs7Ozs7CisyNDcyO0NJUkNMRUQgTlVNQkVSIE5JTkVURUVOO05vOzA7RU47PGNpcmNsZT4gMDAzMSAwMDM5Ozs7MTk7Tjs7Ozs7CisyNDczO0NJUkNMRUQgTlVNQkVSIFRXRU5UWTtObzswO0VOOzxjaXJjbGU+IDAwMzIgMDAzMDs7OzIwO047Ozs7OworMjQ3NDtQQVJFTlRIRVNJWkVEIERJR0lUIE9ORTtObzswO0VOOzxjb21wYXQ+IDAwMjggMDAzMSAwMDI5OzsxOzE7Tjs7Ozs7CisyNDc1O1BBUkVOVEhFU0laRUQgRElHSVQgVFdPO05vOzA7RU47PGNvbXBhdD4gMDAyOCAwMDMyIDAwMjk7OzI7MjtOOzs7OzsKKzI0NzY7UEFSRU5USEVTSVpFRCBESUdJVCBUSFJFRTtObzswO0VOOzxjb21wYXQ+IDAwMjggMDAzMyAwMDI5OzszOzM7Tjs7Ozs7CisyNDc3O1BBUkVOVEhFU0laRUQgRElHSVQgRk9VUjtObzswO0VOOzxjb21wYXQ+IDAwMjggMDAzNCAwMDI5Ozs0OzQ7Tjs7Ozs7CisyNDc4O1BBUkVOVEhFU0laRUQgRElHSVQgRklWRTtObzswO0VOOzxjb21wYXQ+IDAwMjggMDAzNSAwMDI5Ozs1OzU7Tjs7Ozs7CisyNDc5O1BBUkVOVEhFU0laRUQgRElHSVQgU0lYO05vOzA7RU47PGNvbXBhdD4gMDAyOCAwMDM2IDAwMjk7OzY7NjtOOzs7OzsKKzI0N0E7UEFSRU5USEVTSVpFRCBESUdJVCBTRVZFTjtObzswO0VOOzxjb21wYXQ+IDAwMjggMDAzNyAwMDI5Ozs3Ozc7Tjs7Ozs7CisyNDdCO1BBUkVOVEhFU0laRUQgRElHSVQgRUlHSFQ7Tm87MDtFTjs8Y29tcGF0PiAwMDI4IDAwMzggMDAyOTs7ODs4O047Ozs7OworMjQ3QztQQVJFTlRIRVNJWkVEIERJR0lUIE5JTkU7Tm87MDtFTjs8Y29tcGF0PiAwMDI4IDAwMzkgMDAyOTs7OTs5O047Ozs7OworMjQ3RDtQQVJFTlRIRVNJWkVEIE5VTUJFUiBURU47Tm87MDtFTjs8Y29tcGF0PiAwMDI4IDAwMzEgMDAzMCAwMDI5Ozs7MTA7Tjs7Ozs7CisyNDdFO1BBUkVOVEhFU0laRUQgTlVNQkVSIEVMRVZFTjtObzswO0VOOzxjb21wYXQ+IDAwMjggMDAzMSAwMDMxIDAwMjk7OzsxMTtOOzs7OzsKKzI0N0Y7UEFSRU5USEVTSVpFRCBOVU1CRVIgVFdFTFZFO05vOzA7RU47PGNvbXBhdD4gMDAyOCAwMDMxIDAwMzIgMDAyOTs7OzEyO047Ozs7OworMjQ4MDtQQVJFTlRIRVNJWkVEIE5VTUJFUiBUSElSVEVFTjtObzswO0VOOzxjb21wYXQ+IDAwMjggMDAzMSAwMDMzIDAwMjk7OzsxMztOOzs7OzsKKzI0ODE7UEFSRU5USEVTSVpFRCBOVU1CRVIgRk9VUlRFRU47Tm87MDtFTjs8Y29tcGF0PiAwMDI4IDAwMzEgMDAzNCAwMDI5Ozs7MTQ7Tjs7Ozs7CisyNDgyO1BBUkVOVEhFU0laRUQgTlVNQkVSIEZJRlRFRU47Tm87MDtFTjs8Y29tcGF0PiAwMDI4IDAwMzEgMDAzNSAwMDI5Ozs7MTU7Tjs7Ozs7CisyNDgzO1BBUkVOVEhFU0laRUQgTlVNQkVSIFNJWFRFRU47Tm87MDtFTjs8Y29tcGF0PiAwMDI4IDAwMzEgMDAzNiAwMDI5Ozs7MTY7Tjs7Ozs7CisyNDg0O1BBUkVOVEhFU0laRUQgTlVNQkVSIFNFVkVOVEVFTjtObzswO0VOOzxjb21wYXQ+IDAwMjggMDAzMSAwMDM3IDAwMjk7OzsxNztOOzs7OzsKKzI0ODU7UEFSRU5USEVTSVpFRCBOVU1CRVIgRUlHSFRFRU47Tm87MDtFTjs8Y29tcGF0PiAwMDI4IDAwMzEgMDAzOCAwMDI5Ozs7MTg7Tjs7Ozs7CisyNDg2O1BBUkVOVEhFU0laRUQgTlVNQkVSIE5JTkVURUVOO05vOzA7RU47PGNvbXBhdD4gMDAyOCAwMDMxIDAwMzkgMDAyOTs7OzE5O047Ozs7OworMjQ4NztQQVJFTlRIRVNJWkVEIE5VTUJFUiBUV0VOVFk7Tm87MDtFTjs8Y29tcGF0PiAwMDI4IDAwMzIgMDAzMCAwMDI5Ozs7MjA7Tjs7Ozs7CisyNDg4O0RJR0lUIE9ORSBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDMxIDAwMkU7OzE7MTtOO0RJR0lUIE9ORSBQRVJJT0Q7Ozs7CisyNDg5O0RJR0lUIFRXTyBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDMyIDAwMkU7OzI7MjtOO0RJR0lUIFRXTyBQRVJJT0Q7Ozs7CisyNDhBO0RJR0lUIFRIUkVFIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzMgMDAyRTs7MzszO047RElHSVQgVEhSRUUgUEVSSU9EOzs7OworMjQ4QjtESUdJVCBGT1VSIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzQgMDAyRTs7NDs0O047RElHSVQgRk9VUiBQRVJJT0Q7Ozs7CisyNDhDO0RJR0lUIEZJVkUgRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzNSAwMDJFOzs1OzU7TjtESUdJVCBGSVZFIFBFUklPRDs7OzsKKzI0OEQ7RElHSVQgU0lYIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzYgMDAyRTs7Njs2O047RElHSVQgU0lYIFBFUklPRDs7OzsKKzI0OEU7RElHSVQgU0VWRU4gRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzNyAwMDJFOzs3Ozc7TjtESUdJVCBTRVZFTiBQRVJJT0Q7Ozs7CisyNDhGO0RJR0lUIEVJR0hUIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzggMDAyRTs7ODs4O047RElHSVQgRUlHSFQgUEVSSU9EOzs7OworMjQ5MDtESUdJVCBOSU5FIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzkgMDAyRTs7OTs5O047RElHSVQgTklORSBQRVJJT0Q7Ozs7CisyNDkxO05VTUJFUiBURU4gRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMSAwMDMwIDAwMkU7OzsxMDtOO05VTUJFUiBURU4gUEVSSU9EOzs7OworMjQ5MjtOVU1CRVIgRUxFVkVOIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzEgMDAzMSAwMDJFOzs7MTE7TjtOVU1CRVIgRUxFVkVOIFBFUklPRDs7OzsKKzI0OTM7TlVNQkVSIFRXRUxWRSBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDMxIDAwMzIgMDAyRTs7OzEyO047TlVNQkVSIFRXRUxWRSBQRVJJT0Q7Ozs7CisyNDk0O05VTUJFUiBUSElSVEVFTiBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDMxIDAwMzMgMDAyRTs7OzEzO047TlVNQkVSIFRISVJURUVOIFBFUklPRDs7OzsKKzI0OTU7TlVNQkVSIEZPVVJURUVOIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzEgMDAzNCAwMDJFOzs7MTQ7TjtOVU1CRVIgRk9VUlRFRU4gUEVSSU9EOzs7OworMjQ5NjtOVU1CRVIgRklGVEVFTiBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDMxIDAwMzUgMDAyRTs7OzE1O047TlVNQkVSIEZJRlRFRU4gUEVSSU9EOzs7OworMjQ5NztOVU1CRVIgU0lYVEVFTiBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDMxIDAwMzYgMDAyRTs7OzE2O047TlVNQkVSIFNJWFRFRU4gUEVSSU9EOzs7OworMjQ5ODtOVU1CRVIgU0VWRU5URUVOIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzEgMDAzNyAwMDJFOzs7MTc7TjtOVU1CRVIgU0VWRU5URUVOIFBFUklPRDs7OzsKKzI0OTk7TlVNQkVSIEVJR0hURUVOIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzEgMDAzOCAwMDJFOzs7MTg7TjtOVU1CRVIgRUlHSFRFRU4gUEVSSU9EOzs7OworMjQ5QTtOVU1CRVIgTklORVRFRU4gRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMSAwMDM5IDAwMkU7OzsxOTtOO05VTUJFUiBOSU5FVEVFTiBQRVJJT0Q7Ozs7CisyNDlCO05VTUJFUiBUV0VOVFkgRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMiAwMDMwIDAwMkU7OzsyMDtOO05VTUJFUiBUV0VOVFkgUEVSSU9EOzs7OworMjQ5QztQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNjEgMDAyOTs7OztOOzs7OzsKKzI0OUQ7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgQjtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDYyIDAwMjk7Ozs7Tjs7Ozs7CisyNDlFO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIEM7U287MDtMOzxjb21wYXQ+IDAwMjggMDA2MyAwMDI5Ozs7O047Ozs7OworMjQ5RjtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBEO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNjQgMDAyOTs7OztOOzs7OzsKKzI0QTA7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgRTtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDY1IDAwMjk7Ozs7Tjs7Ozs7CisyNEExO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIEY7U287MDtMOzxjb21wYXQ+IDAwMjggMDA2NiAwMDI5Ozs7O047Ozs7OworMjRBMjtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBHO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNjcgMDAyOTs7OztOOzs7OzsKKzI0QTM7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgSDtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDY4IDAwMjk7Ozs7Tjs7Ozs7CisyNEE0O1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIEk7U287MDtMOzxjb21wYXQ+IDAwMjggMDA2OSAwMDI5Ozs7O047Ozs7OworMjRBNTtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBKO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNkEgMDAyOTs7OztOOzs7OzsKKzI0QTY7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgSztTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDZCIDAwMjk7Ozs7Tjs7Ozs7CisyNEE3O1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIEw7U287MDtMOzxjb21wYXQ+IDAwMjggMDA2QyAwMDI5Ozs7O047Ozs7OworMjRBODtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBNO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNkQgMDAyOTs7OztOOzs7OzsKKzI0QTk7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgTjtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDZFIDAwMjk7Ozs7Tjs7Ozs7CisyNEFBO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIE87U287MDtMOzxjb21wYXQ+IDAwMjggMDA2RiAwMDI5Ozs7O047Ozs7OworMjRBQjtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBQO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNzAgMDAyOTs7OztOOzs7OzsKKzI0QUM7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgUTtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDcxIDAwMjk7Ozs7Tjs7Ozs7CisyNEFEO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIFI7U287MDtMOzxjb21wYXQ+IDAwMjggMDA3MiAwMDI5Ozs7O047Ozs7OworMjRBRTtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBTO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNzMgMDAyOTs7OztOOzs7OzsKKzI0QUY7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgVDtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDc0IDAwMjk7Ozs7Tjs7Ozs7CisyNEIwO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIFU7U287MDtMOzxjb21wYXQ+IDAwMjggMDA3NSAwMDI5Ozs7O047Ozs7OworMjRCMTtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBWO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNzYgMDAyOTs7OztOOzs7OzsKKzI0QjI7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgVztTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDc3IDAwMjk7Ozs7Tjs7Ozs7CisyNEIzO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIFg7U287MDtMOzxjb21wYXQ+IDAwMjggMDA3OCAwMDI5Ozs7O047Ozs7OworMjRCNDtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBZO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNzkgMDAyOTs7OztOOzs7OzsKKzI0QjU7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgWjtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDdBIDAwMjk7Ozs7Tjs7Ozs7CisyNEI2O0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQTtTbzswO0w7PGNpcmNsZT4gMDA0MTs7OztOOzs7OzI0RDA7CisyNEI3O0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQjtTbzswO0w7PGNpcmNsZT4gMDA0Mjs7OztOOzs7OzI0RDE7CisyNEI4O0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQztTbzswO0w7PGNpcmNsZT4gMDA0Mzs7OztOOzs7OzI0RDI7CisyNEI5O0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRDtTbzswO0w7PGNpcmNsZT4gMDA0NDs7OztOOzs7OzI0RDM7CisyNEJBO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRTtTbzswO0w7PGNpcmNsZT4gMDA0NTs7OztOOzs7OzI0RDQ7CisyNEJCO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRjtTbzswO0w7PGNpcmNsZT4gMDA0Njs7OztOOzs7OzI0RDU7CisyNEJDO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRztTbzswO0w7PGNpcmNsZT4gMDA0Nzs7OztOOzs7OzI0RDY7CisyNEJEO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSDtTbzswO0w7PGNpcmNsZT4gMDA0ODs7OztOOzs7OzI0RDc7CisyNEJFO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSTtTbzswO0w7PGNpcmNsZT4gMDA0OTs7OztOOzs7OzI0RDg7CisyNEJGO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSjtTbzswO0w7PGNpcmNsZT4gMDA0QTs7OztOOzs7OzI0RDk7CisyNEMwO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSztTbzswO0w7PGNpcmNsZT4gMDA0Qjs7OztOOzs7OzI0REE7CisyNEMxO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgTDtTbzswO0w7PGNpcmNsZT4gMDA0Qzs7OztOOzs7OzI0REI7CisyNEMyO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgTTtTbzswO0w7PGNpcmNsZT4gMDA0RDs7OztOOzs7OzI0REM7CisyNEMzO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgTjtTbzswO0w7PGNpcmNsZT4gMDA0RTs7OztOOzs7OzI0REQ7CisyNEM0O0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgTztTbzswO0w7PGNpcmNsZT4gMDA0Rjs7OztOOzs7OzI0REU7CisyNEM1O0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgUDtTbzswO0w7PGNpcmNsZT4gMDA1MDs7OztOOzs7OzI0REY7CisyNEM2O0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgUTtTbzswO0w7PGNpcmNsZT4gMDA1MTs7OztOOzs7OzI0RTA7CisyNEM3O0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgUjtTbzswO0w7PGNpcmNsZT4gMDA1Mjs7OztOOzs7OzI0RTE7CisyNEM4O0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgUztTbzswO0w7PGNpcmNsZT4gMDA1Mzs7OztOOzs7OzI0RTI7CisyNEM5O0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVDtTbzswO0w7PGNpcmNsZT4gMDA1NDs7OztOOzs7OzI0RTM7CisyNENBO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVTtTbzswO0w7PGNpcmNsZT4gMDA1NTs7OztOOzs7OzI0RTQ7CisyNENCO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVjtTbzswO0w7PGNpcmNsZT4gMDA1Njs7OztOOzs7OzI0RTU7CisyNENDO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVztTbzswO0w7PGNpcmNsZT4gMDA1Nzs7OztOOzs7OzI0RTY7CisyNENEO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgWDtTbzswO0w7PGNpcmNsZT4gMDA1ODs7OztOOzs7OzI0RTc7CisyNENFO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgWTtTbzswO0w7PGNpcmNsZT4gMDA1OTs7OztOOzs7OzI0RTg7CisyNENGO0NJUkNMRUQgTEFUSU4gQ0FQSVRBTCBMRVRURVIgWjtTbzswO0w7PGNpcmNsZT4gMDA1QTs7OztOOzs7OzI0RTk7CisyNEQwO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIEE7U287MDtMOzxjaXJjbGU+IDAwNjE7Ozs7Tjs7OzI0QjY7OzI0QjYKKzI0RDE7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgQjtTbzswO0w7PGNpcmNsZT4gMDA2Mjs7OztOOzs7MjRCNzs7MjRCNworMjREMjtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBDO1NvOzA7TDs8Y2lyY2xlPiAwMDYzOzs7O047OzsyNEI4OzsyNEI4CisyNEQzO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIEQ7U287MDtMOzxjaXJjbGU+IDAwNjQ7Ozs7Tjs7OzI0Qjk7OzI0QjkKKzI0RDQ7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgRTtTbzswO0w7PGNpcmNsZT4gMDA2NTs7OztOOzs7MjRCQTs7MjRCQQorMjRENTtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBGO1NvOzA7TDs8Y2lyY2xlPiAwMDY2Ozs7O047OzsyNEJCOzsyNEJCCisyNEQ2O0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIEc7U287MDtMOzxjaXJjbGU+IDAwNjc7Ozs7Tjs7OzI0QkM7OzI0QkMKKzI0RDc7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgSDtTbzswO0w7PGNpcmNsZT4gMDA2ODs7OztOOzs7MjRCRDs7MjRCRAorMjREODtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBJO1NvOzA7TDs8Y2lyY2xlPiAwMDY5Ozs7O047OzsyNEJFOzsyNEJFCisyNEQ5O0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIEo7U287MDtMOzxjaXJjbGU+IDAwNkE7Ozs7Tjs7OzI0QkY7OzI0QkYKKzI0REE7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgSztTbzswO0w7PGNpcmNsZT4gMDA2Qjs7OztOOzs7MjRDMDs7MjRDMAorMjREQjtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBMO1NvOzA7TDs8Y2lyY2xlPiAwMDZDOzs7O047OzsyNEMxOzsyNEMxCisyNERDO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIE07U287MDtMOzxjaXJjbGU+IDAwNkQ7Ozs7Tjs7OzI0QzI7OzI0QzIKKzI0REQ7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgTjtTbzswO0w7PGNpcmNsZT4gMDA2RTs7OztOOzs7MjRDMzs7MjRDMworMjRERTtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBPO1NvOzA7TDs8Y2lyY2xlPiAwMDZGOzs7O047OzsyNEM0OzsyNEM0CisyNERGO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIFA7U287MDtMOzxjaXJjbGU+IDAwNzA7Ozs7Tjs7OzI0QzU7OzI0QzUKKzI0RTA7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgUTtTbzswO0w7PGNpcmNsZT4gMDA3MTs7OztOOzs7MjRDNjs7MjRDNgorMjRFMTtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBSO1NvOzA7TDs8Y2lyY2xlPiAwMDcyOzs7O047OzsyNEM3OzsyNEM3CisyNEUyO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIFM7U287MDtMOzxjaXJjbGU+IDAwNzM7Ozs7Tjs7OzI0Qzg7OzI0QzgKKzI0RTM7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgVDtTbzswO0w7PGNpcmNsZT4gMDA3NDs7OztOOzs7MjRDOTs7MjRDOQorMjRFNDtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBVO1NvOzA7TDs8Y2lyY2xlPiAwMDc1Ozs7O047OzsyNENBOzsyNENBCisyNEU1O0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIFY7U287MDtMOzxjaXJjbGU+IDAwNzY7Ozs7Tjs7OzI0Q0I7OzI0Q0IKKzI0RTY7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgVztTbzswO0w7PGNpcmNsZT4gMDA3Nzs7OztOOzs7MjRDQzs7MjRDQworMjRFNztDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBYO1NvOzA7TDs8Y2lyY2xlPiAwMDc4Ozs7O047OzsyNENEOzsyNENECisyNEU4O0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIFk7U287MDtMOzxjaXJjbGU+IDAwNzk7Ozs7Tjs7OzI0Q0U7OzI0Q0UKKzI0RTk7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgWjtTbzswO0w7PGNpcmNsZT4gMDA3QTs7OztOOzs7MjRDRjs7MjRDRgorMjRFQTtDSVJDTEVEIERJR0lUIFpFUk87Tm87MDtFTjs8Y2lyY2xlPiAwMDMwOzswOzA7Tjs7Ozs7CisyNTAwO0JPWCBEUkFXSU5HUyBMSUdIVCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgSE9SSVpPTlRBTDs7OzsKKzI1MDE7Qk9YIERSQVdJTkdTIEhFQVZZIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBIT1JJWk9OVEFMOzs7OworMjUwMjtCT1ggRFJBV0lOR1MgTElHSFQgVkVSVElDQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBWRVJUSUNBTDs7OzsKKzI1MDM7Qk9YIERSQVdJTkdTIEhFQVZZIFZFUlRJQ0FMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVkVSVElDQUw7Ozs7CisyNTA0O0JPWCBEUkFXSU5HUyBMSUdIVCBUUklQTEUgREFTSCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgVFJJUExFIERBU0ggSE9SSVpPTlRBTDs7OzsKKzI1MDU7Qk9YIERSQVdJTkdTIEhFQVZZIFRSSVBMRSBEQVNIIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBUUklQTEUgREFTSCBIT1JJWk9OVEFMOzs7OworMjUwNjtCT1ggRFJBV0lOR1MgTElHSFQgVFJJUExFIERBU0ggVkVSVElDQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBUUklQTEUgREFTSCBWRVJUSUNBTDs7OzsKKzI1MDc7Qk9YIERSQVdJTkdTIEhFQVZZIFRSSVBMRSBEQVNIIFZFUlRJQ0FMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVFJJUExFIERBU0ggVkVSVElDQUw7Ozs7CisyNTA4O0JPWCBEUkFXSU5HUyBMSUdIVCBRVUFEUlVQTEUgREFTSCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgUVVBRFJVUExFIERBU0ggSE9SSVpPTlRBTDs7OzsKKzI1MDk7Qk9YIERSQVdJTkdTIEhFQVZZIFFVQURSVVBMRSBEQVNIIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBRVUFEUlVQTEUgREFTSCBIT1JJWk9OVEFMOzs7OworMjUwQTtCT1ggRFJBV0lOR1MgTElHSFQgUVVBRFJVUExFIERBU0ggVkVSVElDQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBRVUFEUlVQTEUgREFTSCBWRVJUSUNBTDs7OzsKKzI1MEI7Qk9YIERSQVdJTkdTIEhFQVZZIFFVQURSVVBMRSBEQVNIIFZFUlRJQ0FMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgUVVBRFJVUExFIERBU0ggVkVSVElDQUw7Ozs7CisyNTBDO0JPWCBEUkFXSU5HUyBMSUdIVCBET1dOIEFORCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIERPV04gQU5EIFJJR0hUOzs7OworMjUwRDtCT1ggRFJBV0lOR1MgRE9XTiBMSUdIVCBBTkQgUklHSFQgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIExJR0hUIEFORCBSSUdIVCBIRUFWWTs7OzsKKzI1MEU7Qk9YIERSQVdJTkdTIERPV04gSEVBVlkgQU5EIFJJR0hUIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBIRUFWWSBBTkQgUklHSFQgTElHSFQ7Ozs7CisyNTBGO0JPWCBEUkFXSU5HUyBIRUFWWSBET1dOIEFORCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIERPV04gQU5EIFJJR0hUOzs7OworMjUxMDtCT1ggRFJBV0lOR1MgTElHSFQgRE9XTiBBTkQgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIERPV04gQU5EIExFRlQ7Ozs7CisyNTExO0JPWCBEUkFXSU5HUyBET1dOIExJR0hUIEFORCBMRUZUIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBMSUdIVCBBTkQgTEVGVCBIRUFWWTs7OzsKKzI1MTI7Qk9YIERSQVdJTkdTIERPV04gSEVBVlkgQU5EIExFRlQgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIEhFQVZZIEFORCBMRUZUIExJR0hUOzs7OworMjUxMztCT1ggRFJBV0lOR1MgSEVBVlkgRE9XTiBBTkQgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIERPV04gQU5EIExFRlQ7Ozs7CisyNTE0O0JPWCBEUkFXSU5HUyBMSUdIVCBVUCBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBVUCBBTkQgUklHSFQ7Ozs7CisyNTE1O0JPWCBEUkFXSU5HUyBVUCBMSUdIVCBBTkQgUklHSFQgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBMSUdIVCBBTkQgUklHSFQgSEVBVlk7Ozs7CisyNTE2O0JPWCBEUkFXSU5HUyBVUCBIRUFWWSBBTkQgUklHSFQgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBIRUFWWSBBTkQgUklHSFQgTElHSFQ7Ozs7CisyNTE3O0JPWCBEUkFXSU5HUyBIRUFWWSBVUCBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBVUCBBTkQgUklHSFQ7Ozs7CisyNTE4O0JPWCBEUkFXSU5HUyBMSUdIVCBVUCBBTkQgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFVQIEFORCBMRUZUOzs7OworMjUxOTtCT1ggRFJBV0lOR1MgVVAgTElHSFQgQU5EIExFRlQgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBMSUdIVCBBTkQgTEVGVCBIRUFWWTs7OzsKKzI1MUE7Qk9YIERSQVdJTkdTIFVQIEhFQVZZIEFORCBMRUZUIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgVVAgSEVBVlkgQU5EIExFRlQgTElHSFQ7Ozs7CisyNTFCO0JPWCBEUkFXSU5HUyBIRUFWWSBVUCBBTkQgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFVQIEFORCBMRUZUOzs7OworMjUxQztCT1ggRFJBV0lOR1MgTElHSFQgVkVSVElDQUwgQU5EIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgVkVSVElDQUwgQU5EIFJJR0hUOzs7OworMjUxRDtCT1ggRFJBV0lOR1MgVkVSVElDQUwgTElHSFQgQU5EIFJJR0hUIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgTElHSFQgQU5EIFJJR0hUIEhFQVZZOzs7OworMjUxRTtCT1ggRFJBV0lOR1MgVVAgSEVBVlkgQU5EIFJJR0hUIERPV04gTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBIRUFWWSBBTkQgUklHSFQgRE9XTiBMSUdIVDs7OzsKKzI1MUY7Qk9YIERSQVdJTkdTIERPV04gSEVBVlkgQU5EIFJJR0hUIFVQIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBIRUFWWSBBTkQgUklHSFQgVVAgTElHSFQ7Ozs7CisyNTIwO0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBIRUFWWSBBTkQgUklHSFQgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBWRVJUSUNBTCBIRUFWWSBBTkQgUklHSFQgTElHSFQ7Ozs7CisyNTIxO0JPWCBEUkFXSU5HUyBET1dOIExJR0hUIEFORCBSSUdIVCBVUCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gTElHSFQgQU5EIFJJR0hUIFVQIEhFQVZZOzs7OworMjUyMjtCT1ggRFJBV0lOR1MgVVAgTElHSFQgQU5EIFJJR0hUIERPV04gSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBMSUdIVCBBTkQgUklHSFQgRE9XTiBIRUFWWTs7OzsKKzI1MjM7Qk9YIERSQVdJTkdTIEhFQVZZIFZFUlRJQ0FMIEFORCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFZFUlRJQ0FMIEFORCBSSUdIVDs7OzsKKzI1MjQ7Qk9YIERSQVdJTkdTIExJR0hUIFZFUlRJQ0FMIEFORCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgVkVSVElDQUwgQU5EIExFRlQ7Ozs7CisyNTI1O0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBMSUdIVCBBTkQgTEVGVCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIExJR0hUIEFORCBMRUZUIEhFQVZZOzs7OworMjUyNjtCT1ggRFJBV0lOR1MgVVAgSEVBVlkgQU5EIExFRlQgRE9XTiBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFVQIEhFQVZZIEFORCBMRUZUIERPV04gTElHSFQ7Ozs7CisyNTI3O0JPWCBEUkFXSU5HUyBET1dOIEhFQVZZIEFORCBMRUZUIFVQIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBIRUFWWSBBTkQgTEVGVCBVUCBMSUdIVDs7OzsKKzI1Mjg7Qk9YIERSQVdJTkdTIFZFUlRJQ0FMIEhFQVZZIEFORCBMRUZUIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgSEVBVlkgQU5EIExFRlQgTElHSFQ7Ozs7CisyNTI5O0JPWCBEUkFXSU5HUyBET1dOIExJR0hUIEFORCBMRUZUIFVQIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBMSUdIVCBBTkQgTEVGVCBVUCBIRUFWWTs7OzsKKzI1MkE7Qk9YIERSQVdJTkdTIFVQIExJR0hUIEFORCBMRUZUIERPV04gSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBMSUdIVCBBTkQgTEVGVCBET1dOIEhFQVZZOzs7OworMjUyQjtCT1ggRFJBV0lOR1MgSEVBVlkgVkVSVElDQUwgQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBWRVJUSUNBTCBBTkQgTEVGVDs7OzsKKzI1MkM7Qk9YIERSQVdJTkdTIExJR0hUIERPV04gQU5EIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBET1dOIEFORCBIT1JJWk9OVEFMOzs7OworMjUyRDtCT1ggRFJBV0lOR1MgTEVGVCBIRUFWWSBBTkQgUklHSFQgRE9XTiBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExFRlQgSEVBVlkgQU5EIFJJR0hUIERPV04gTElHSFQ7Ozs7CisyNTJFO0JPWCBEUkFXSU5HUyBSSUdIVCBIRUFWWSBBTkQgTEVGVCBET1dOIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgUklHSFQgSEVBVlkgQU5EIExFRlQgRE9XTiBMSUdIVDs7OzsKKzI1MkY7Qk9YIERSQVdJTkdTIERPV04gTElHSFQgQU5EIEhPUklaT05UQUwgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIExJR0hUIEFORCBIT1JJWk9OVEFMIEhFQVZZOzs7OworMjUzMDtCT1ggRFJBV0lOR1MgRE9XTiBIRUFWWSBBTkQgSE9SSVpPTlRBTCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gSEVBVlkgQU5EIEhPUklaT05UQUwgTElHSFQ7Ozs7CisyNTMxO0JPWCBEUkFXSU5HUyBSSUdIVCBMSUdIVCBBTkQgTEVGVCBET1dOIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgUklHSFQgTElHSFQgQU5EIExFRlQgRE9XTiBIRUFWWTs7OzsKKzI1MzI7Qk9YIERSQVdJTkdTIExFRlQgTElHSFQgQU5EIFJJR0hUIERPV04gSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBMRUZUIExJR0hUIEFORCBSSUdIVCBET1dOIEhFQVZZOzs7OworMjUzMztCT1ggRFJBV0lOR1MgSEVBVlkgRE9XTiBBTkQgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIERPV04gQU5EIEhPUklaT05UQUw7Ozs7CisyNTM0O0JPWCBEUkFXSU5HUyBMSUdIVCBVUCBBTkQgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFVQIEFORCBIT1JJWk9OVEFMOzs7OworMjUzNTtCT1ggRFJBV0lOR1MgTEVGVCBIRUFWWSBBTkQgUklHSFQgVVAgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMRUZUIEhFQVZZIEFORCBSSUdIVCBVUCBMSUdIVDs7OzsKKzI1MzY7Qk9YIERSQVdJTkdTIFJJR0hUIEhFQVZZIEFORCBMRUZUIFVQIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgUklHSFQgSEVBVlkgQU5EIExFRlQgVVAgTElHSFQ7Ozs7CisyNTM3O0JPWCBEUkFXSU5HUyBVUCBMSUdIVCBBTkQgSE9SSVpPTlRBTCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIExJR0hUIEFORCBIT1JJWk9OVEFMIEhFQVZZOzs7OworMjUzODtCT1ggRFJBV0lOR1MgVVAgSEVBVlkgQU5EIEhPUklaT05UQUwgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBIRUFWWSBBTkQgSE9SSVpPTlRBTCBMSUdIVDs7OzsKKzI1Mzk7Qk9YIERSQVdJTkdTIFJJR0hUIExJR0hUIEFORCBMRUZUIFVQIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgUklHSFQgTElHSFQgQU5EIExFRlQgVVAgSEVBVlk7Ozs7CisyNTNBO0JPWCBEUkFXSU5HUyBMRUZUIExJR0hUIEFORCBSSUdIVCBVUCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIExFRlQgTElHSFQgQU5EIFJJR0hUIFVQIEhFQVZZOzs7OworMjUzQjtCT1ggRFJBV0lOR1MgSEVBVlkgVVAgQU5EIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBVUCBBTkQgSE9SSVpPTlRBTDs7OzsKKzI1M0M7Qk9YIERSQVdJTkdTIExJR0hUIFZFUlRJQ0FMIEFORCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgVkVSVElDQUwgQU5EIEhPUklaT05UQUw7Ozs7CisyNTNEO0JPWCBEUkFXSU5HUyBMRUZUIEhFQVZZIEFORCBSSUdIVCBWRVJUSUNBTCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExFRlQgSEVBVlkgQU5EIFJJR0hUIFZFUlRJQ0FMIExJR0hUOzs7OworMjUzRTtCT1ggRFJBV0lOR1MgUklHSFQgSEVBVlkgQU5EIExFRlQgVkVSVElDQUwgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBSSUdIVCBIRUFWWSBBTkQgTEVGVCBWRVJUSUNBTCBMSUdIVDs7OzsKKzI1M0Y7Qk9YIERSQVdJTkdTIFZFUlRJQ0FMIExJR0hUIEFORCBIT1JJWk9OVEFMIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgTElHSFQgQU5EIEhPUklaT05UQUwgSEVBVlk7Ozs7CisyNTQwO0JPWCBEUkFXSU5HUyBVUCBIRUFWWSBBTkQgRE9XTiBIT1JJWk9OVEFMIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgVVAgSEVBVlkgQU5EIERPV04gSE9SSVpPTlRBTCBMSUdIVDs7OzsKKzI1NDE7Qk9YIERSQVdJTkdTIERPV04gSEVBVlkgQU5EIFVQIEhPUklaT05UQUwgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIEhFQVZZIEFORCBVUCBIT1JJWk9OVEFMIExJR0hUOzs7OworMjU0MjtCT1ggRFJBV0lOR1MgVkVSVElDQUwgSEVBVlkgQU5EIEhPUklaT05UQUwgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBWRVJUSUNBTCBIRUFWWSBBTkQgSE9SSVpPTlRBTCBMSUdIVDs7OzsKKzI1NDM7Qk9YIERSQVdJTkdTIExFRlQgVVAgSEVBVlkgQU5EIFJJR0hUIERPV04gTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMRUZUIFVQIEhFQVZZIEFORCBSSUdIVCBET1dOIExJR0hUOzs7OworMjU0NDtCT1ggRFJBV0lOR1MgUklHSFQgVVAgSEVBVlkgQU5EIExFRlQgRE9XTiBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFJJR0hUIFVQIEhFQVZZIEFORCBMRUZUIERPV04gTElHSFQ7Ozs7CisyNTQ1O0JPWCBEUkFXSU5HUyBMRUZUIERPV04gSEVBVlkgQU5EIFJJR0hUIFVQIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTEVGVCBET1dOIEhFQVZZIEFORCBSSUdIVCBVUCBMSUdIVDs7OzsKKzI1NDY7Qk9YIERSQVdJTkdTIFJJR0hUIERPV04gSEVBVlkgQU5EIExFRlQgVVAgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBSSUdIVCBET1dOIEhFQVZZIEFORCBMRUZUIFVQIExJR0hUOzs7OworMjU0NztCT1ggRFJBV0lOR1MgRE9XTiBMSUdIVCBBTkQgVVAgSE9SSVpPTlRBTCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gTElHSFQgQU5EIFVQIEhPUklaT05UQUwgSEVBVlk7Ozs7CisyNTQ4O0JPWCBEUkFXSU5HUyBVUCBMSUdIVCBBTkQgRE9XTiBIT1JJWk9OVEFMIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgVVAgTElHSFQgQU5EIERPV04gSE9SSVpPTlRBTCBIRUFWWTs7OzsKKzI1NDk7Qk9YIERSQVdJTkdTIFJJR0hUIExJR0hUIEFORCBMRUZUIFZFUlRJQ0FMIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgUklHSFQgTElHSFQgQU5EIExFRlQgVkVSVElDQUwgSEVBVlk7Ozs7CisyNTRBO0JPWCBEUkFXSU5HUyBMRUZUIExJR0hUIEFORCBSSUdIVCBWRVJUSUNBTCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIExFRlQgTElHSFQgQU5EIFJJR0hUIFZFUlRJQ0FMIEhFQVZZOzs7OworMjU0QjtCT1ggRFJBV0lOR1MgSEVBVlkgVkVSVElDQUwgQU5EIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBWRVJUSUNBTCBBTkQgSE9SSVpPTlRBTDs7OzsKKzI1NEM7Qk9YIERSQVdJTkdTIExJR0hUIERPVUJMRSBEQVNIIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBET1VCTEUgREFTSCBIT1JJWk9OVEFMOzs7OworMjU0RDtCT1ggRFJBV0lOR1MgSEVBVlkgRE9VQkxFIERBU0ggSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIERPVUJMRSBEQVNIIEhPUklaT05UQUw7Ozs7CisyNTRFO0JPWCBEUkFXSU5HUyBMSUdIVCBET1VCTEUgREFTSCBWRVJUSUNBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIERPVUJMRSBEQVNIIFZFUlRJQ0FMOzs7OworMjU0RjtCT1ggRFJBV0lOR1MgSEVBVlkgRE9VQkxFIERBU0ggVkVSVElDQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBET1VCTEUgREFTSCBWRVJUSUNBTDs7OzsKKzI1NTA7Qk9YIERSQVdJTkdTIERPVUJMRSBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgRE9VQkxFIEhPUklaT05UQUw7Ozs7CisyNTUxO0JPWCBEUkFXSU5HUyBET1VCTEUgVkVSVElDQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBET1VCTEUgVkVSVElDQUw7Ozs7CisyNTUyO0JPWCBEUkFXSU5HUyBET1dOIFNJTkdMRSBBTkQgUklHSFQgRE9VQkxFO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBTSU5HTEUgQU5EIFJJR0hUIERPVUJMRTs7OzsKKzI1NTM7Qk9YIERSQVdJTkdTIERPV04gRE9VQkxFIEFORCBSSUdIVCBTSU5HTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIERPVUJMRSBBTkQgUklHSFQgU0lOR0xFOzs7OworMjU1NDtCT1ggRFJBV0lOR1MgRE9VQkxFIERPV04gQU5EIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgRE9VQkxFIERPV04gQU5EIFJJR0hUOzs7OworMjU1NTtCT1ggRFJBV0lOR1MgRE9XTiBTSU5HTEUgQU5EIExFRlQgRE9VQkxFO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBTSU5HTEUgQU5EIExFRlQgRE9VQkxFOzs7OworMjU1NjtCT1ggRFJBV0lOR1MgRE9XTiBET1VCTEUgQU5EIExFRlQgU0lOR0xFO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBET1VCTEUgQU5EIExFRlQgU0lOR0xFOzs7OworMjU1NztCT1ggRFJBV0lOR1MgRE9VQkxFIERPV04gQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBET1VCTEUgRE9XTiBBTkQgTEVGVDs7OzsKKzI1NTg7Qk9YIERSQVdJTkdTIFVQIFNJTkdMRSBBTkQgUklHSFQgRE9VQkxFO1NvOzA7T047Ozs7O047Rk9STVMgVVAgU0lOR0xFIEFORCBSSUdIVCBET1VCTEU7Ozs7CisyNTU5O0JPWCBEUkFXSU5HUyBVUCBET1VCTEUgQU5EIFJJR0hUIFNJTkdMRTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIERPVUJMRSBBTkQgUklHSFQgU0lOR0xFOzs7OworMjU1QTtCT1ggRFJBV0lOR1MgRE9VQkxFIFVQIEFORCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIERPVUJMRSBVUCBBTkQgUklHSFQ7Ozs7CisyNTVCO0JPWCBEUkFXSU5HUyBVUCBTSU5HTEUgQU5EIExFRlQgRE9VQkxFO1NvOzA7T047Ozs7O047Rk9STVMgVVAgU0lOR0xFIEFORCBMRUZUIERPVUJMRTs7OzsKKzI1NUM7Qk9YIERSQVdJTkdTIFVQIERPVUJMRSBBTkQgTEVGVCBTSU5HTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBET1VCTEUgQU5EIExFRlQgU0lOR0xFOzs7OworMjU1RDtCT1ggRFJBV0lOR1MgRE9VQkxFIFVQIEFORCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgRE9VQkxFIFVQIEFORCBMRUZUOzs7OworMjU1RTtCT1ggRFJBV0lOR1MgVkVSVElDQUwgU0lOR0xFIEFORCBSSUdIVCBET1VCTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBWRVJUSUNBTCBTSU5HTEUgQU5EIFJJR0hUIERPVUJMRTs7OzsKKzI1NUY7Qk9YIERSQVdJTkdTIFZFUlRJQ0FMIERPVUJMRSBBTkQgUklHSFQgU0lOR0xFO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgRE9VQkxFIEFORCBSSUdIVCBTSU5HTEU7Ozs7CisyNTYwO0JPWCBEUkFXSU5HUyBET1VCTEUgVkVSVElDQUwgQU5EIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgRE9VQkxFIFZFUlRJQ0FMIEFORCBSSUdIVDs7OzsKKzI1NjE7Qk9YIERSQVdJTkdTIFZFUlRJQ0FMIFNJTkdMRSBBTkQgTEVGVCBET1VCTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBWRVJUSUNBTCBTSU5HTEUgQU5EIExFRlQgRE9VQkxFOzs7OworMjU2MjtCT1ggRFJBV0lOR1MgVkVSVElDQUwgRE9VQkxFIEFORCBMRUZUIFNJTkdMRTtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIERPVUJMRSBBTkQgTEVGVCBTSU5HTEU7Ozs7CisyNTYzO0JPWCBEUkFXSU5HUyBET1VCTEUgVkVSVElDQUwgQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBET1VCTEUgVkVSVElDQUwgQU5EIExFRlQ7Ozs7CisyNTY0O0JPWCBEUkFXSU5HUyBET1dOIFNJTkdMRSBBTkQgSE9SSVpPTlRBTCBET1VCTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIFNJTkdMRSBBTkQgSE9SSVpPTlRBTCBET1VCTEU7Ozs7CisyNTY1O0JPWCBEUkFXSU5HUyBET1dOIERPVUJMRSBBTkQgSE9SSVpPTlRBTCBTSU5HTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIERPVUJMRSBBTkQgSE9SSVpPTlRBTCBTSU5HTEU7Ozs7CisyNTY2O0JPWCBEUkFXSU5HUyBET1VCTEUgRE9XTiBBTkQgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIERPVUJMRSBET1dOIEFORCBIT1JJWk9OVEFMOzs7OworMjU2NztCT1ggRFJBV0lOR1MgVVAgU0lOR0xFIEFORCBIT1JJWk9OVEFMIERPVUJMRTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIFNJTkdMRSBBTkQgSE9SSVpPTlRBTCBET1VCTEU7Ozs7CisyNTY4O0JPWCBEUkFXSU5HUyBVUCBET1VCTEUgQU5EIEhPUklaT05UQUwgU0lOR0xFO1NvOzA7T047Ozs7O047Rk9STVMgVVAgRE9VQkxFIEFORCBIT1JJWk9OVEFMIFNJTkdMRTs7OzsKKzI1Njk7Qk9YIERSQVdJTkdTIERPVUJMRSBVUCBBTkQgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIERPVUJMRSBVUCBBTkQgSE9SSVpPTlRBTDs7OzsKKzI1NkE7Qk9YIERSQVdJTkdTIFZFUlRJQ0FMIFNJTkdMRSBBTkQgSE9SSVpPTlRBTCBET1VCTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBWRVJUSUNBTCBTSU5HTEUgQU5EIEhPUklaT05UQUwgRE9VQkxFOzs7OworMjU2QjtCT1ggRFJBV0lOR1MgVkVSVElDQUwgRE9VQkxFIEFORCBIT1JJWk9OVEFMIFNJTkdMRTtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIERPVUJMRSBBTkQgSE9SSVpPTlRBTCBTSU5HTEU7Ozs7CisyNTZDO0JPWCBEUkFXSU5HUyBET1VCTEUgVkVSVElDQUwgQU5EIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBET1VCTEUgVkVSVElDQUwgQU5EIEhPUklaT05UQUw7Ozs7CisyNTZEO0JPWCBEUkFXSU5HUyBMSUdIVCBBUkMgRE9XTiBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBBUkMgRE9XTiBBTkQgUklHSFQ7Ozs7CisyNTZFO0JPWCBEUkFXSU5HUyBMSUdIVCBBUkMgRE9XTiBBTkQgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIEFSQyBET1dOIEFORCBMRUZUOzs7OworMjU2RjtCT1ggRFJBV0lOR1MgTElHSFQgQVJDIFVQIEFORCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgQVJDIFVQIEFORCBMRUZUOzs7OworMjU3MDtCT1ggRFJBV0lOR1MgTElHSFQgQVJDIFVQIEFORCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIEFSQyBVUCBBTkQgUklHSFQ7Ozs7CisyNTcxO0JPWCBEUkFXSU5HUyBMSUdIVCBESUFHT05BTCBVUFBFUiBSSUdIVCBUTyBMT1dFUiBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgRElBR09OQUwgVVBQRVIgUklHSFQgVE8gTE9XRVIgTEVGVDs7OzsKKzI1NzI7Qk9YIERSQVdJTkdTIExJR0hUIERJQUdPTkFMIFVQUEVSIExFRlQgVE8gTE9XRVIgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBESUFHT05BTCBVUFBFUiBMRUZUIFRPIExPV0VSIFJJR0hUOzs7OworMjU3MztCT1ggRFJBV0lOR1MgTElHSFQgRElBR09OQUwgQ1JPU1M7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBESUFHT05BTCBDUk9TUzs7OzsKKzI1NzQ7Qk9YIERSQVdJTkdTIExJR0hUIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBMRUZUOzs7OworMjU3NTtCT1ggRFJBV0lOR1MgTElHSFQgVVA7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBVUDs7OzsKKzI1NzY7Qk9YIERSQVdJTkdTIExJR0hUIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgUklHSFQ7Ozs7CisyNTc3O0JPWCBEUkFXSU5HUyBMSUdIVCBET1dOO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgRE9XTjs7OzsKKzI1Nzg7Qk9YIERSQVdJTkdTIEhFQVZZIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBMRUZUOzs7OworMjU3OTtCT1ggRFJBV0lOR1MgSEVBVlkgVVA7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBVUDs7OzsKKzI1N0E7Qk9YIERSQVdJTkdTIEhFQVZZIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgUklHSFQ7Ozs7CisyNTdCO0JPWCBEUkFXSU5HUyBIRUFWWSBET1dOO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgRE9XTjs7OzsKKzI1N0M7Qk9YIERSQVdJTkdTIExJR0hUIExFRlQgQU5EIEhFQVZZIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgTEVGVCBBTkQgSEVBVlkgUklHSFQ7Ozs7CisyNTdEO0JPWCBEUkFXSU5HUyBMSUdIVCBVUCBBTkQgSEVBVlkgRE9XTjtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFVQIEFORCBIRUFWWSBET1dOOzs7OworMjU3RTtCT1ggRFJBV0lOR1MgSEVBVlkgTEVGVCBBTkQgTElHSFQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBMRUZUIEFORCBMSUdIVCBSSUdIVDs7OzsKKzI1N0Y7Qk9YIERSQVdJTkdTIEhFQVZZIFVQIEFORCBMSUdIVCBET1dOO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVVAgQU5EIExJR0hUIERPV047Ozs7CisyNTgwO1VQUEVSIEhBTEYgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTgxO0xPV0VSIE9ORSBFSUdIVEggQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTgyO0xPV0VSIE9ORSBRVUFSVEVSIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4MztMT1dFUiBUSFJFRSBFSUdIVEhTIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4NDtMT1dFUiBIQUxGIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4NTtMT1dFUiBGSVZFIEVJR0hUSFMgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTg2O0xPV0VSIFRIUkVFIFFVQVJURVJTIEJMT0NLO1NvOzA7T047Ozs7O047TE9XRVIgVEhSRUUgUVVBUlRFUiBCTE9DSzs7OzsKKzI1ODc7TE9XRVIgU0VWRU4gRUlHSFRIUyBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1ODg7RlVMTCBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1ODk7TEVGVCBTRVZFTiBFSUdIVEhTIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4QTtMRUZUIFRIUkVFIFFVQVJURVJTIEJMT0NLO1NvOzA7T047Ozs7O047TEVGVCBUSFJFRSBRVUFSVEVSIEJMT0NLOzs7OworMjU4QjtMRUZUIEZJVkUgRUlHSFRIUyBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1OEM7TEVGVCBIQUxGIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4RDtMRUZUIFRIUkVFIEVJR0hUSFMgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNThFO0xFRlQgT05FIFFVQVJURVIgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNThGO0xFRlQgT05FIEVJR0hUSCBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1OTA7UklHSFQgSEFMRiBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1OTE7TElHSFQgU0hBREU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTkyO01FRElVTSBTSEFERTtTbzswO09OOzs7OztOOzs7OzsKKzI1OTM7REFSSyBTSEFERTtTbzswO09OOzs7OztOOzs7OzsKKzI1OTQ7VVBQRVIgT05FIEVJR0hUSCBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1OTU7UklHSFQgT05FIEVJR0hUSCBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1QTA7QkxBQ0sgU1FVQVJFO1NvOzA7T047Ozs7O047Ozs7OworMjVBMTtXSElURSBTUVVBUkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUEyO1dISVRFIFNRVUFSRSBXSVRIIFJPVU5ERUQgQ09STkVSUztTbzswO09OOzs7OztOOzs7OzsKKzI1QTM7V0hJVEUgU1FVQVJFIENPTlRBSU5JTkcgQkxBQ0sgU01BTEwgU1FVQVJFO1NvOzA7T047Ozs7O047Ozs7OworMjVBNDtTUVVBUkUgV0lUSCBIT1JJWk9OVEFMIEZJTEw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUE1O1NRVUFSRSBXSVRIIFZFUlRJQ0FMIEZJTEw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUE2O1NRVUFSRSBXSVRIIE9SVEhPR09OQUwgQ1JPU1NIQVRDSCBGSUxMO1NvOzA7T047Ozs7O047Ozs7OworMjVBNztTUVVBUkUgV0lUSCBVUFBFUiBMRUZUIFRPIExPV0VSIFJJR0hUIEZJTEw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUE4O1NRVUFSRSBXSVRIIFVQUEVSIFJJR0hUIFRPIExPV0VSIExFRlQgRklMTDtTbzswO09OOzs7OztOOzs7OzsKKzI1QTk7U1FVQVJFIFdJVEggRElBR09OQUwgQ1JPU1NIQVRDSCBGSUxMO1NvOzA7T047Ozs7O047Ozs7OworMjVBQTtCTEFDSyBTTUFMTCBTUVVBUkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUFCO1dISVRFIFNNQUxMIFNRVUFSRTtTbzswO09OOzs7OztOOzs7OzsKKzI1QUM7QkxBQ0sgUkVDVEFOR0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVBRDtXSElURSBSRUNUQU5HTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUFFO0JMQUNLIFZFUlRJQ0FMIFJFQ1RBTkdMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1QUY7V0hJVEUgVkVSVElDQUwgUkVDVEFOR0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVCMDtCTEFDSyBQQVJBTExFTE9HUkFNO1NvOzA7T047Ozs7O047Ozs7OworMjVCMTtXSElURSBQQVJBTExFTE9HUkFNO1NvOzA7T047Ozs7O047Ozs7OworMjVCMjtCTEFDSyBVUC1QT0lOVElORyBUUklBTkdMRTtTbzswO09OOzs7OztOO0JMQUNLIFVQIFBPSU5USU5HIFRSSUFOR0xFOzs7OworMjVCMztXSElURSBVUC1QT0lOVElORyBUUklBTkdMRTtTbzswO09OOzs7OztOO1dISVRFIFVQIFBPSU5USU5HIFRSSUFOR0xFOzs7OworMjVCNDtCTEFDSyBVUC1QT0lOVElORyBTTUFMTCBUUklBTkdMRTtTbzswO09OOzs7OztOO0JMQUNLIFVQIFBPSU5USU5HIFNNQUxMIFRSSUFOR0xFOzs7OworMjVCNTtXSElURSBVUC1QT0lOVElORyBTTUFMTCBUUklBTkdMRTtTbzswO09OOzs7OztOO1dISVRFIFVQIFBPSU5USU5HIFNNQUxMIFRSSUFOR0xFOzs7OworMjVCNjtCTEFDSyBSSUdIVC1QT0lOVElORyBUUklBTkdMRTtTbzswO09OOzs7OztOO0JMQUNLIFJJR0hUIFBPSU5USU5HIFRSSUFOR0xFOzs7OworMjVCNztXSElURSBSSUdIVC1QT0lOVElORyBUUklBTkdMRTtTbTswO09OOzs7OztOO1dISVRFIFJJR0hUIFBPSU5USU5HIFRSSUFOR0xFOzs7OworMjVCODtCTEFDSyBSSUdIVC1QT0lOVElORyBTTUFMTCBUUklBTkdMRTtTbzswO09OOzs7OztOO0JMQUNLIFJJR0hUIFBPSU5USU5HIFNNQUxMIFRSSUFOR0xFOzs7OworMjVCOTtXSElURSBSSUdIVC1QT0lOVElORyBTTUFMTCBUUklBTkdMRTtTbzswO09OOzs7OztOO1dISVRFIFJJR0hUIFBPSU5USU5HIFNNQUxMIFRSSUFOR0xFOzs7OworMjVCQTtCTEFDSyBSSUdIVC1QT0lOVElORyBQT0lOVEVSO1NvOzA7T047Ozs7O047QkxBQ0sgUklHSFQgUE9JTlRJTkcgUE9JTlRFUjs7OzsKKzI1QkI7V0hJVEUgUklHSFQtUE9JTlRJTkcgUE9JTlRFUjtTbzswO09OOzs7OztOO1dISVRFIFJJR0hUIFBPSU5USU5HIFBPSU5URVI7Ozs7CisyNUJDO0JMQUNLIERPV04tUE9JTlRJTkcgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtCTEFDSyBET1dOIFBPSU5USU5HIFRSSUFOR0xFOzs7OworMjVCRDtXSElURSBET1dOLVBPSU5USU5HIFRSSUFOR0xFO1NvOzA7T047Ozs7O047V0hJVEUgRE9XTiBQT0lOVElORyBUUklBTkdMRTs7OzsKKzI1QkU7QkxBQ0sgRE9XTi1QT0lOVElORyBTTUFMTCBUUklBTkdMRTtTbzswO09OOzs7OztOO0JMQUNLIERPV04gUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7Ozs7CisyNUJGO1dISVRFIERPV04tUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtXSElURSBET1dOIFBPSU5USU5HIFNNQUxMIFRSSUFOR0xFOzs7OworMjVDMDtCTEFDSyBMRUZULVBPSU5USU5HIFRSSUFOR0xFO1NvOzA7T047Ozs7O047QkxBQ0sgTEVGVCBQT0lOVElORyBUUklBTkdMRTs7OzsKKzI1QzE7V0hJVEUgTEVGVC1QT0lOVElORyBUUklBTkdMRTtTbTswO09OOzs7OztOO1dISVRFIExFRlQgUE9JTlRJTkcgVFJJQU5HTEU7Ozs7CisyNUMyO0JMQUNLIExFRlQtUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtCTEFDSyBMRUZUIFBPSU5USU5HIFNNQUxMIFRSSUFOR0xFOzs7OworMjVDMztXSElURSBMRUZULVBPSU5USU5HIFNNQUxMIFRSSUFOR0xFO1NvOzA7T047Ozs7O047V0hJVEUgTEVGVCBQT0lOVElORyBTTUFMTCBUUklBTkdMRTs7OzsKKzI1QzQ7QkxBQ0sgTEVGVC1QT0lOVElORyBQT0lOVEVSO1NvOzA7T047Ozs7O047QkxBQ0sgTEVGVCBQT0lOVElORyBQT0lOVEVSOzs7OworMjVDNTtXSElURSBMRUZULVBPSU5USU5HIFBPSU5URVI7U287MDtPTjs7Ozs7TjtXSElURSBMRUZUIFBPSU5USU5HIFBPSU5URVI7Ozs7CisyNUM2O0JMQUNLIERJQU1PTkQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUM3O1dISVRFIERJQU1PTkQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUM4O1dISVRFIERJQU1PTkQgQ09OVEFJTklORyBCTEFDSyBTTUFMTCBESUFNT05EO1NvOzA7T047Ozs7O047Ozs7OworMjVDOTtGSVNIRVlFO1NvOzA7T047Ozs7O047Ozs7OworMjVDQTtMT1pFTkdFO1NvOzA7T047Ozs7O047Ozs7OworMjVDQjtXSElURSBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUNDO0RPVFRFRCBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUNEO0NJUkNMRSBXSVRIIFZFUlRJQ0FMIEZJTEw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUNFO0JVTExTRVlFO1NvOzA7T047Ozs7O047Ozs7OworMjVDRjtCTEFDSyBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUQwO0NJUkNMRSBXSVRIIExFRlQgSEFMRiBCTEFDSztTbzswO09OOzs7OztOOzs7OzsKKzI1RDE7Q0lSQ0xFIFdJVEggUklHSFQgSEFMRiBCTEFDSztTbzswO09OOzs7OztOOzs7OzsKKzI1RDI7Q0lSQ0xFIFdJVEggTE9XRVIgSEFMRiBCTEFDSztTbzswO09OOzs7OztOOzs7OzsKKzI1RDM7Q0lSQ0xFIFdJVEggVVBQRVIgSEFMRiBCTEFDSztTbzswO09OOzs7OztOOzs7OzsKKzI1RDQ7Q0lSQ0xFIFdJVEggVVBQRVIgUklHSFQgUVVBRFJBTlQgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUQ1O0NJUkNMRSBXSVRIIEFMTCBCVVQgVVBQRVIgTEVGVCBRVUFEUkFOVCBCTEFDSztTbzswO09OOzs7OztOOzs7OzsKKzI1RDY7TEVGVCBIQUxGIEJMQUNLIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1RDc7UklHSFQgSEFMRiBCTEFDSyBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUQ4O0lOVkVSU0UgQlVMTEVUO1NvOzA7T047Ozs7O047Ozs7OworMjVEOTtJTlZFUlNFIFdISVRFIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1REE7VVBQRVIgSEFMRiBJTlZFUlNFIFdISVRFIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1REI7TE9XRVIgSEFMRiBJTlZFUlNFIFdISVRFIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1REM7VVBQRVIgTEVGVCBRVUFEUkFOVCBDSVJDVUxBUiBBUkM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUREO1VQUEVSIFJJR0hUIFFVQURSQU5UIENJUkNVTEFSIEFSQztTbzswO09OOzs7OztOOzs7OzsKKzI1REU7TE9XRVIgUklHSFQgUVVBRFJBTlQgQ0lSQ1VMQVIgQVJDO1NvOzA7T047Ozs7O047Ozs7OworMjVERjtMT1dFUiBMRUZUIFFVQURSQU5UIENJUkNVTEFSIEFSQztTbzswO09OOzs7OztOOzs7OzsKKzI1RTA7VVBQRVIgSEFMRiBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUUxO0xPV0VSIEhBTEYgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVFMjtCTEFDSyBMT1dFUiBSSUdIVCBUUklBTkdMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1RTM7QkxBQ0sgTE9XRVIgTEVGVCBUUklBTkdMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1RTQ7QkxBQ0sgVVBQRVIgTEVGVCBUUklBTkdMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1RTU7QkxBQ0sgVVBQRVIgUklHSFQgVFJJQU5HTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUU2O1dISVRFIEJVTExFVDtTbzswO09OOzs7OztOOzs7OzsKKzI1RTc7U1FVQVJFIFdJVEggTEVGVCBIQUxGIEJMQUNLO1NvOzA7T047Ozs7O047Ozs7OworMjVFODtTUVVBUkUgV0lUSCBSSUdIVCBIQUxGIEJMQUNLO1NvOzA7T047Ozs7O047Ozs7OworMjVFOTtTUVVBUkUgV0lUSCBVUFBFUiBMRUZUIERJQUdPTkFMIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUVBO1NRVUFSRSBXSVRIIExPV0VSIFJJR0hUIERJQUdPTkFMIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUVCO1dISVRFIFNRVUFSRSBXSVRIIFZFUlRJQ0FMIEJJU0VDVElORyBMSU5FO1NvOzA7T047Ozs7O047Ozs7OworMjVFQztXSElURSBVUC1QT0lOVElORyBUUklBTkdMRSBXSVRIIERPVDtTbzswO09OOzs7OztOO1dISVRFIFVQIFBPSU5USU5HIFRSSUFOR0xFIFdJVEggRE9UOzs7OworMjVFRDtVUC1QT0lOVElORyBUUklBTkdMRSBXSVRIIExFRlQgSEFMRiBCTEFDSztTbzswO09OOzs7OztOO1VQIFBPSU5USU5HIFRSSUFOR0xFIFdJVEggTEVGVCBIQUxGIEJMQUNLOzs7OworMjVFRTtVUC1QT0lOVElORyBUUklBTkdMRSBXSVRIIFJJR0hUIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7TjtVUCBQT0lOVElORyBUUklBTkdMRSBXSVRIIFJJR0hUIEhBTEYgQkxBQ0s7Ozs7CisyNUVGO0xBUkdFIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1RjA7V0hJVEUgU1FVQVJFIFdJVEggVVBQRVIgTEVGVCBRVUFEUkFOVDtTbzswO09OOzs7OztOOzs7OzsKKzI1RjE7V0hJVEUgU1FVQVJFIFdJVEggTE9XRVIgTEVGVCBRVUFEUkFOVDtTbzswO09OOzs7OztOOzs7OzsKKzI1RjI7V0hJVEUgU1FVQVJFIFdJVEggTE9XRVIgUklHSFQgUVVBRFJBTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUYzO1dISVRFIFNRVUFSRSBXSVRIIFVQUEVSIFJJR0hUIFFVQURSQU5UO1NvOzA7T047Ozs7O047Ozs7OworMjVGNDtXSElURSBDSVJDTEUgV0lUSCBVUFBFUiBMRUZUIFFVQURSQU5UO1NvOzA7T047Ozs7O047Ozs7OworMjVGNTtXSElURSBDSVJDTEUgV0lUSCBMT1dFUiBMRUZUIFFVQURSQU5UO1NvOzA7T047Ozs7O047Ozs7OworMjVGNjtXSElURSBDSVJDTEUgV0lUSCBMT1dFUiBSSUdIVCBRVUFEUkFOVDtTbzswO09OOzs7OztOOzs7OzsKKzI1Rjc7V0hJVEUgQ0lSQ0xFIFdJVEggVVBQRVIgUklHSFQgUVVBRFJBTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjAwO0JMQUNLIFNVTiBXSVRIIFJBWVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjAxO0NMT1VEO1NvOzA7T047Ozs7O047Ozs7OworMjYwMjtVTUJSRUxMQTtTbzswO09OOzs7OztOOzs7OzsKKzI2MDM7U05PV01BTjtTbzswO09OOzs7OztOOzs7OzsKKzI2MDQ7Q09NRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjA1O0JMQUNLIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjA2O1dISVRFIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjA3O0xJR0hUTklORztTbzswO09OOzs7OztOOzs7OzsKKzI2MDg7VEhVTkRFUlNUT1JNO1NvOzA7T047Ozs7O047Ozs7OworMjYwOTtTVU47U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjBBO0FTQ0VORElORyBOT0RFO1NvOzA7T047Ozs7O047Ozs7OworMjYwQjtERVNDRU5ESU5HIE5PREU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjBDO0NPTkpVTkNUSU9OO1NvOzA7T047Ozs7O047Ozs7OworMjYwRDtPUFBPU0lUSU9OO1NvOzA7T047Ozs7O047Ozs7OworMjYwRTtCTEFDSyBURUxFUEhPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjBGO1dISVRFIFRFTEVQSE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzI2MTA7QkFMTE9UIEJPWDtTbzswO09OOzs7OztOOzs7OzsKKzI2MTE7QkFMTE9UIEJPWCBXSVRIIENIRUNLO1NvOzA7T047Ozs7O047Ozs7OworMjYxMjtCQUxMT1QgQk9YIFdJVEggWDtTbzswO09OOzs7OztOOzs7OzsKKzI2MTM7U0FMVElSRTtTbzswO09OOzs7OztOOzs7OzsKKzI2MTk7UkVWRVJTRUQgUk9UQVRFRCBGTE9SQUwgSEVBUlQgQlVMTEVUO1NvOzA7T047Ozs7O047Ozs7OworMjYxQTtCTEFDSyBMRUZUIFBPSU5USU5HIElOREVYO1NvOzA7T047Ozs7O047Ozs7OworMjYxQjtCTEFDSyBSSUdIVCBQT0lOVElORyBJTkRFWDtTbzswO09OOzs7OztOOzs7OzsKKzI2MUM7V0hJVEUgTEVGVCBQT0lOVElORyBJTkRFWDtTbzswO09OOzs7OztOOzs7OzsKKzI2MUQ7V0hJVEUgVVAgUE9JTlRJTkcgSU5ERVg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjFFO1dISVRFIFJJR0hUIFBPSU5USU5HIElOREVYO1NvOzA7T047Ozs7O047Ozs7OworMjYxRjtXSElURSBET1dOIFBPSU5USU5HIElOREVYO1NvOzA7T047Ozs7O047Ozs7OworMjYyMDtTS1VMTCBBTkQgQ1JPU1NCT05FUztTbzswO09OOzs7OztOOzs7OzsKKzI2MjE7Q0FVVElPTiBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMjYyMjtSQURJT0FDVElWRSBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMjYyMztCSU9IQVpBUkQgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzI2MjQ7Q0FEVUNFVVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjI1O0FOS0g7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjI2O09SVEhPRE9YIENST1NTO1NvOzA7T047Ozs7O047Ozs7OworMjYyNztDSEkgUkhPO1NvOzA7T047Ozs7O047Ozs7OworMjYyODtDUk9TUyBPRiBMT1JSQUlORTtTbzswO09OOzs7OztOOzs7OzsKKzI2Mjk7Q1JPU1MgT0YgSkVSVVNBTEVNO1NvOzA7T047Ozs7O047Ozs7OworMjYyQTtTVEFSIEFORCBDUkVTQ0VOVDtTbzswO09OOzs7OztOOzs7OzsKKzI2MkI7RkFSU0kgU1lNQk9MO1NvOzA7T047Ozs7O047U1lNQk9MIE9GIElSQU47Ozs7CisyNjJDO0FESSBTSEFLVEk7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjJEO0hBTU1FUiBBTkQgU0lDS0xFO1NvOzA7T047Ozs7O047Ozs7OworMjYyRTtQRUFDRSBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjJGO1lJTiBZQU5HO1NvOzA7T047Ozs7O047Ozs7OworMjYzMDtUUklHUkFNIEZPUiBIRUFWRU47U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjMxO1RSSUdSQU0gRk9SIExBS0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjMyO1RSSUdSQU0gRk9SIEZJUkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjMzO1RSSUdSQU0gRk9SIFRIVU5ERVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjM0O1RSSUdSQU0gRk9SIFdJTkQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjM1O1RSSUdSQU0gRk9SIFdBVEVSO1NvOzA7T047Ozs7O047Ozs7OworMjYzNjtUUklHUkFNIEZPUiBNT1VOVEFJTjtTbzswO09OOzs7OztOOzs7OzsKKzI2Mzc7VFJJR1JBTSBGT1IgRUFSVEg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjM4O1dIRUVMIE9GIERIQVJNQTtTbzswO09OOzs7OztOOzs7OzsKKzI2Mzk7V0hJVEUgRlJPV05JTkcgRkFDRTtTbzswO09OOzs7OztOOzs7OzsKKzI2M0E7V0hJVEUgU01JTElORyBGQUNFO1NvOzA7T047Ozs7O047Ozs7OworMjYzQjtCTEFDSyBTTUlMSU5HIEZBQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjNDO1dISVRFIFNVTiBXSVRIIFJBWVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjNEO0ZJUlNUIFFVQVJURVIgTU9PTjtTbzswO09OOzs7OztOOzs7OzsKKzI2M0U7TEFTVCBRVUFSVEVSIE1PT047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjNGO01FUkNVUlk7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjQwO0ZFTUFMRSBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMjY0MTtFQVJUSDtTbzswO09OOzs7OztOOzs7OzsKKzI2NDI7TUFMRSBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMjY0MztKVVBJVEVSO1NvOzA7T047Ozs7O047Ozs7OworMjY0NDtTQVRVUk47U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjQ1O1VSQU5VUztTbzswO09OOzs7OztOOzs7OzsKKzI2NDY7TkVQVFVORTtTbzswO09OOzs7OztOOzs7OzsKKzI2NDc7UExVVE87U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjQ4O0FSSUVTO1NvOzA7T047Ozs7O047Ozs7OworMjY0OTtUQVVSVVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjRBO0dFTUlOSTtTbzswO09OOzs7OztOOzs7OzsKKzI2NEI7Q0FOQ0VSO1NvOzA7T047Ozs7O047Ozs7OworMjY0QztMRU87U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjREO1ZJUkdPO1NvOzA7T047Ozs7O047Ozs7OworMjY0RTtMSUJSQTtTbzswO09OOzs7OztOOzs7OzsKKzI2NEY7U0NPUlBJVVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjUwO1NBR0lUVEFSSVVTO1NvOzA7T047Ozs7O047Ozs7OworMjY1MTtDQVBSSUNPUk47U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjUyO0FRVUFSSVVTO1NvOzA7T047Ozs7O047Ozs7OworMjY1MztQSVNDRVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjU0O1dISVRFIENIRVNTIEtJTkc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjU1O1dISVRFIENIRVNTIFFVRUVOO1NvOzA7T047Ozs7O047Ozs7OworMjY1NjtXSElURSBDSEVTUyBST09LO1NvOzA7T047Ozs7O047Ozs7OworMjY1NztXSElURSBDSEVTUyBCSVNIT1A7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjU4O1dISVRFIENIRVNTIEtOSUdIVDtTbzswO09OOzs7OztOOzs7OzsKKzI2NTk7V0hJVEUgQ0hFU1MgUEFXTjtTbzswO09OOzs7OztOOzs7OzsKKzI2NUE7QkxBQ0sgQ0hFU1MgS0lORztTbzswO09OOzs7OztOOzs7OzsKKzI2NUI7QkxBQ0sgQ0hFU1MgUVVFRU47U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjVDO0JMQUNLIENIRVNTIFJPT0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjVEO0JMQUNLIENIRVNTIEJJU0hPUDtTbzswO09OOzs7OztOOzs7OzsKKzI2NUU7QkxBQ0sgQ0hFU1MgS05JR0hUO1NvOzA7T047Ozs7O047Ozs7OworMjY1RjtCTEFDSyBDSEVTUyBQQVdOO1NvOzA7T047Ozs7O047Ozs7OworMjY2MDtCTEFDSyBTUEFERSBTVUlUO1NvOzA7T047Ozs7O047Ozs7OworMjY2MTtXSElURSBIRUFSVCBTVUlUO1NvOzA7T047Ozs7O047Ozs7OworMjY2MjtXSElURSBESUFNT05EIFNVSVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjYzO0JMQUNLIENMVUIgU1VJVDtTbzswO09OOzs7OztOOzs7OzsKKzI2NjQ7V0hJVEUgU1BBREUgU1VJVDtTbzswO09OOzs7OztOOzs7OzsKKzI2NjU7QkxBQ0sgSEVBUlQgU1VJVDtTbzswO09OOzs7OztOOzs7OzsKKzI2NjY7QkxBQ0sgRElBTU9ORCBTVUlUO1NvOzA7T047Ozs7O047Ozs7OworMjY2NztXSElURSBDTFVCIFNVSVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjY4O0hPVCBTUFJJTkdTO1NvOzA7T047Ozs7O047Ozs7OworMjY2OTtRVUFSVEVSIE5PVEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjZBO0VJR0hUSCBOT1RFO1NvOzA7T047Ozs7O047Ozs7OworMjY2QjtCRUFNRUQgRUlHSFRIIE5PVEVTO1NvOzA7T047Ozs7O047QkFSUkVEIEVJR0hUSCBOT1RFUzs7OzsKKzI2NkM7QkVBTUVEIFNJWFRFRU5USCBOT1RFUztTbzswO09OOzs7OztOO0JBUlJFRCBTSVhURUVOVEggTk9URVM7Ozs7CisyNjZEO01VU0lDIEZMQVQgU0lHTjtTbzswO09OOzs7OztOO0ZMQVQ7Ozs7CisyNjZFO01VU0lDIE5BVFVSQUwgU0lHTjtTbzswO09OOzs7OztOO05BVFVSQUw7Ozs7CisyNjZGO01VU0lDIFNIQVJQIFNJR047U207MDtPTjs7Ozs7TjtTSEFSUDs7OzsKKzI2NzA7V0VTVCBTWVJJQUMgQ1JPU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjcxO0VBU1QgU1lSSUFDIENST1NTO1NvOzA7T047Ozs7O047Ozs7OworMjcwMTtVUFBFUiBCTEFERSBTQ0lTU09SUztTbzswO09OOzs7OztOOzs7OzsKKzI3MDI7QkxBQ0sgU0NJU1NPUlM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzAzO0xPV0VSIEJMQURFIFNDSVNTT1JTO1NvOzA7T047Ozs7O047Ozs7OworMjcwNDtXSElURSBTQ0lTU09SUztTbzswO09OOzs7OztOOzs7OzsKKzI3MDY7VEVMRVBIT05FIExPQ0FUSU9OIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzA3O1RBUEUgRFJJVkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzA4O0FJUlBMQU5FO1NvOzA7T047Ozs7O047Ozs7OworMjcwOTtFTlZFTE9QRTtTbzswO09OOzs7OztOOzs7OzsKKzI3MEM7VklDVE9SWSBIQU5EO1NvOzA7T047Ozs7O047Ozs7OworMjcwRDtXUklUSU5HIEhBTkQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzBFO0xPV0VSIFJJR0hUIFBFTkNJTDtTbzswO09OOzs7OztOOzs7OzsKKzI3MEY7UEVOQ0lMO1NvOzA7T047Ozs7O047Ozs7OworMjcxMDtVUFBFUiBSSUdIVCBQRU5DSUw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzExO1dISVRFIE5JQjtTbzswO09OOzs7OztOOzs7OzsKKzI3MTI7QkxBQ0sgTklCO1NvOzA7T047Ozs7O047Ozs7OworMjcxMztDSEVDSyBNQVJLO1NvOzA7T047Ozs7O047Ozs7OworMjcxNDtIRUFWWSBDSEVDSyBNQVJLO1NvOzA7T047Ozs7O047Ozs7OworMjcxNTtNVUxUSVBMSUNBVElPTiBYO1NvOzA7T047Ozs7O047Ozs7OworMjcxNjtIRUFWWSBNVUxUSVBMSUNBVElPTiBYO1NvOzA7T047Ozs7O047Ozs7OworMjcxNztCQUxMT1QgWDtTbzswO09OOzs7OztOOzs7OzsKKzI3MTg7SEVBVlkgQkFMTE9UIFg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzE5O09VVExJTkVEIEdSRUVLIENST1NTO1NvOzA7T047Ozs7O047Ozs7OworMjcxQTtIRUFWWSBHUkVFSyBDUk9TUztTbzswO09OOzs7OztOOzs7OzsKKzI3MUI7T1BFTiBDRU5UUkUgQ1JPU1M7U287MDtPTjs7Ozs7TjtPUEVOIENFTlRFUiBDUk9TUzs7OzsKKzI3MUM7SEVBVlkgT1BFTiBDRU5UUkUgQ1JPU1M7U287MDtPTjs7Ozs7TjtIRUFWWSBPUEVOIENFTlRFUiBDUk9TUzs7OzsKKzI3MUQ7TEFUSU4gQ1JPU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzFFO1NIQURPV0VEIFdISVRFIExBVElOIENST1NTO1NvOzA7T047Ozs7O047Ozs7OworMjcxRjtPVVRMSU5FRCBMQVRJTiBDUk9TUztTbzswO09OOzs7OztOOzs7OzsKKzI3MjA7TUFMVEVTRSBDUk9TUztTbzswO09OOzs7OztOOzs7OzsKKzI3MjE7U1RBUiBPRiBEQVZJRDtTbzswO09OOzs7OztOOzs7OzsKKzI3MjI7Rk9VUiBURUFSRFJPUC1TUE9LRUQgQVNURVJJU0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzIzO0ZPVVIgQkFMTE9PTi1TUE9LRUQgQVNURVJJU0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzI0O0hFQVZZIEZPVVIgQkFMTE9PTi1TUE9LRUQgQVNURVJJU0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzI1O0ZPVVIgQ0xVQi1TUE9LRUQgQVNURVJJU0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzI2O0JMQUNLIEZPVVIgUE9JTlRFRCBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjcyNztXSElURSBGT1VSIFBPSU5URUQgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3Mjk7U1RSRVNTIE9VVExJTkVEIFdISVRFIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzJBO0NJUkNMRUQgV0hJVEUgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MkI7T1BFTiBDRU5UUkUgQkxBQ0sgU1RBUjtTbzswO09OOzs7OztOO09QRU4gQ0VOVEVSIEJMQUNLIFNUQVI7Ozs7CisyNzJDO0JMQUNLIENFTlRSRSBXSElURSBTVEFSO1NvOzA7T047Ozs7O047QkxBQ0sgQ0VOVEVSIFdISVRFIFNUQVI7Ozs7CisyNzJEO09VVExJTkVEIEJMQUNLIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzJFO0hFQVZZIE9VVExJTkVEIEJMQUNLIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzJGO1BJTldIRUVMIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzMwO1NIQURPV0VEIFdISVRFIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzMxO0hFQVZZIEFTVEVSSVNLO1NvOzA7T047Ozs7O047Ozs7OworMjczMjtPUEVOIENFTlRSRSBBU1RFUklTSztTbzswO09OOzs7OztOO09QRU4gQ0VOVEVSIEFTVEVSSVNLOzs7OworMjczMztFSUdIVCBTUE9LRUQgQVNURVJJU0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzM0O0VJR0hUIFBPSU5URUQgQkxBQ0sgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MzU7RUlHSFQgUE9JTlRFRCBQSU5XSEVFTCBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjczNjtTSVggUE9JTlRFRCBCTEFDSyBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjczNztFSUdIVCBQT0lOVEVEIFJFQ1RJTElORUFSIEJMQUNLIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzM4O0hFQVZZIEVJR0hUIFBPSU5URUQgUkVDVElMSU5FQVIgQkxBQ0sgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3Mzk7VFdFTFZFIFBPSU5URUQgQkxBQ0sgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3M0E7U0lYVEVFTiBQT0lOVEVEIEFTVEVSSVNLO1NvOzA7T047Ozs7O047Ozs7OworMjczQjtURUFSRFJPUC1TUE9LRUQgQVNURVJJU0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzNDO09QRU4gQ0VOVFJFIFRFQVJEUk9QLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOO09QRU4gQ0VOVEVSIFRFQVJEUk9QLVNQT0tFRCBBU1RFUklTSzs7OzsKKzI3M0Q7SEVBVlkgVEVBUkRST1AtU1BPS0VEIEFTVEVSSVNLO1NvOzA7T047Ozs7O047Ozs7OworMjczRTtTSVggUEVUQUxMRUQgQkxBQ0sgQU5EIFdISVRFIEZMT1JFVFRFO1NvOzA7T047Ozs7O047Ozs7OworMjczRjtCTEFDSyBGTE9SRVRURTtTbzswO09OOzs7OztOOzs7OzsKKzI3NDA7V0hJVEUgRkxPUkVUVEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzQxO0VJR0hUIFBFVEFMTEVEIE9VVExJTkVEIEJMQUNLIEZMT1JFVFRFO1NvOzA7T047Ozs7O047Ozs7OworMjc0MjtDSVJDTEVEIE9QRU4gQ0VOVFJFIEVJR0hUIFBPSU5URUQgU1RBUjtTbzswO09OOzs7OztOO0NJUkNMRUQgT1BFTiBDRU5URVIgRUlHSFQgUE9JTlRFRCBTVEFSOzs7OworMjc0MztIRUFWWSBURUFSRFJPUC1TUE9LRUQgUElOV0hFRUwgQVNURVJJU0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzQ0O1NOT1dGTEFLRTtTbzswO09OOzs7OztOOzs7OzsKKzI3NDU7VElHSFQgVFJJRk9MSUFURSBTTk9XRkxBS0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzQ2O0hFQVZZIENIRVZST04gU05PV0ZMQUtFO1NvOzA7T047Ozs7O047Ozs7OworMjc0NztTUEFSS0xFO1NvOzA7T047Ozs7O047Ozs7OworMjc0ODtIRUFWWSBTUEFSS0xFO1NvOzA7T047Ozs7O047Ozs7OworMjc0OTtCQUxMT09OLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3NEE7RUlHSFQgVEVBUkRST1AtU1BPS0VEIFBST1BFTExFUiBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3NEI7SEVBVlkgRUlHSFQgVEVBUkRST1AtU1BPS0VEIFBST1BFTExFUiBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3NEQ7U0hBRE9XRUQgV0hJVEUgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjc0RjtMT1dFUiBSSUdIVCBEUk9QLVNIQURPV0VEIFdISVRFIFNRVUFSRTtTbzswO09OOzs7OztOOzs7OzsKKzI3NTA7VVBQRVIgUklHSFQgRFJPUC1TSEFET1dFRCBXSElURSBTUVVBUkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzUxO0xPV0VSIFJJR0hUIFNIQURPV0VEIFdISVRFIFNRVUFSRTtTbzswO09OOzs7OztOOzs7OzsKKzI3NTI7VVBQRVIgUklHSFQgU0hBRE9XRUQgV0hJVEUgU1FVQVJFO1NvOzA7T047Ozs7O047Ozs7OworMjc1NjtCTEFDSyBESUFNT05EIE1JTlVTIFdISVRFIFg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzU4O0xJR0hUIFZFUlRJQ0FMIEJBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3NTk7TUVESVVNIFZFUlRJQ0FMIEJBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3NUE7SEVBVlkgVkVSVElDQUwgQkFSO1NvOzA7T047Ozs7O047Ozs7OworMjc1QjtIRUFWWSBTSU5HTEUgVFVSTkVEIENPTU1BIFFVT1RBVElPTiBNQVJLIE9STkFNRU5UO1NvOzA7T047Ozs7O047Ozs7OworMjc1QztIRUFWWSBTSU5HTEUgQ09NTUEgUVVPVEFUSU9OIE1BUksgT1JOQU1FTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzVEO0hFQVZZIERPVUJMRSBUVVJORUQgQ09NTUEgUVVPVEFUSU9OIE1BUksgT1JOQU1FTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzVFO0hFQVZZIERPVUJMRSBDT01NQSBRVU9UQVRJT04gTUFSSyBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NjE7Q1VSVkVEIFNURU0gUEFSQUdSQVBIIFNJR04gT1JOQU1FTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzYyO0hFQVZZIEVYQ0xBTUFUSU9OIE1BUksgT1JOQU1FTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzYzO0hFQVZZIEhFQVJUIEVYQ0xBTUFUSU9OIE1BUksgT1JOQU1FTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzY0O0hFQVZZIEJMQUNLIEhFQVJUO1NvOzA7T047Ozs7O047Ozs7OworMjc2NTtST1RBVEVEIEhFQVZZIEJMQUNLIEhFQVJUIEJVTExFVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NjY7RkxPUkFMIEhFQVJUO1NvOzA7T047Ozs7O047Ozs7OworMjc2NztST1RBVEVEIEZMT1JBTCBIRUFSVCBCVUxMRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzc2O0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBESUdJVCBPTkU7Tm87MDtPTjs7OzE7MTtOO0lOVkVSU0UgQ0lSQ0xFRCBESUdJVCBPTkU7Ozs7CisyNzc3O0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBESUdJVCBUV087Tm87MDtPTjs7OzI7MjtOO0lOVkVSU0UgQ0lSQ0xFRCBESUdJVCBUV087Ozs7CisyNzc4O0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBESUdJVCBUSFJFRTtObzswO09OOzs7MzszO047SU5WRVJTRSBDSVJDTEVEIERJR0lUIFRIUkVFOzs7OworMjc3OTtESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgRElHSVQgRk9VUjtObzswO09OOzs7NDs0O047SU5WRVJTRSBDSVJDTEVEIERJR0lUIEZPVVI7Ozs7CisyNzdBO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBESUdJVCBGSVZFO05vOzA7T047Ozs1OzU7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgRklWRTs7OzsKKzI3N0I7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIFNJWDtObzswO09OOzs7Njs2O047SU5WRVJTRSBDSVJDTEVEIERJR0lUIFNJWDs7OzsKKzI3N0M7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIFNFVkVOO05vOzA7T047Ozs3Ozc7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgU0VWRU47Ozs7CisyNzdEO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBESUdJVCBFSUdIVDtObzswO09OOzs7ODs4O047SU5WRVJTRSBDSVJDTEVEIERJR0lUIEVJR0hUOzs7OworMjc3RTtESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgRElHSVQgTklORTtObzswO09OOzs7OTs5O047SU5WRVJTRSBDSVJDTEVEIERJR0lUIE5JTkU7Ozs7CisyNzdGO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBOVU1CRVIgVEVOO05vOzA7T047Ozs7MTA7TjtJTlZFUlNFIENJUkNMRUQgTlVNQkVSIFRFTjs7OzsKKzI3ODA7RElOR0JBVCBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgT05FO05vOzA7T047OzsxOzE7TjtDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgT05FOzs7OworMjc4MTtESU5HQkFUIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBUV087Tm87MDtPTjs7OzI7MjtOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBUV087Ozs7CisyNzgyO0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFRIUkVFO05vOzA7T047OzszOzM7TjtDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgVEhSRUU7Ozs7CisyNzgzO0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZPVVI7Tm87MDtPTjs7OzQ7NDtOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBGT1VSOzs7OworMjc4NDtESU5HQkFUIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBGSVZFO05vOzA7T047Ozs1OzU7TjtDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgRklWRTs7OzsKKzI3ODU7RElOR0JBVCBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgU0lYO05vOzA7T047Ozs2OzY7TjtDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgU0lYOzs7OworMjc4NjtESU5HQkFUIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBTRVZFTjtObzswO09OOzs7Nzs3O047Q0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFNFVkVOOzs7OworMjc4NztESU5HQkFUIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBFSUdIVDtObzswO09OOzs7ODs4O047Q0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEVJR0hUOzs7OworMjc4ODtESU5HQkFUIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBOSU5FO05vOzA7T047Ozs5Ozk7TjtDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgTklORTs7OzsKKzI3ODk7RElOR0JBVCBDSVJDTEVEIFNBTlMtU0VSSUYgTlVNQkVSIFRFTjtObzswO09OOzs7OzEwO047Q0lSQ0xFRCBTQU5TLVNFUklGIE5VTUJFUiBURU47Ozs7CisyNzhBO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIE9ORTtObzswO09OOzs7MTsxO047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgT05FOzs7OworMjc4QjtESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBUV087Tm87MDtPTjs7OzI7MjtOO0lOVkVSU0UgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFRXTzs7OzsKKzI3OEM7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgVEhSRUU7Tm87MDtPTjs7OzM7MztOO0lOVkVSU0UgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFRIUkVFOzs7OworMjc4RDtESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBGT1VSO05vOzA7T047Ozs0OzQ7TjtJTlZFUlNFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBGT1VSOzs7OworMjc4RTtESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBGSVZFO05vOzA7T047Ozs1OzU7TjtJTlZFUlNFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBGSVZFOzs7OworMjc4RjtESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBTSVg7Tm87MDtPTjs7OzY7NjtOO0lOVkVSU0UgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFNJWDs7OzsKKzI3OTA7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgU0VWRU47Tm87MDtPTjs7Ozc7NztOO0lOVkVSU0UgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFNFVkVOOzs7OworMjc5MTtESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBFSUdIVDtObzswO09OOzs7ODs4O047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgRUlHSFQ7Ozs7CisyNzkyO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIE5JTkU7Tm87MDtPTjs7Ozk7OTtOO0lOVkVSU0UgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIE5JTkU7Ozs7CisyNzkzO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIE5VTUJFUiBURU47Tm87MDtPTjs7OzsxMDtOO0lOVkVSU0UgQ0lSQ0xFRCBTQU5TLVNFUklGIE5VTUJFUiBURU47Ozs7CisyNzk0O0hFQVZZIFdJREUtSEVBREVEIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBXSURFLUhFQURFRCBSSUdIVCBBUlJPVzs7OzsKKzI3OTg7SEVBVlkgU09VVEggRUFTVCBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIExPV0VSIFJJR0hUIEFSUk9XOzs7OworMjc5OTtIRUFWWSBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgUklHSFQgQVJST1c7Ozs7CisyNzlBO0hFQVZZIE5PUlRIIEVBU1QgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBVUFBFUiBSSUdIVCBBUlJPVzs7OzsKKzI3OUI7RFJBRlRJTkcgUE9JTlQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0RSQUZUSU5HIFBPSU5UIFJJR0hUIEFSUk9XOzs7OworMjc5QztIRUFWWSBST1VORC1USVBQRUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFJPVU5ELVRJUFBFRCBSSUdIVCBBUlJPVzs7OzsKKzI3OUQ7VFJJQU5HTEUtSEVBREVEIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtUUklBTkdMRS1IRUFERUQgUklHSFQgQVJST1c7Ozs7CisyNzlFO0hFQVZZIFRSSUFOR0xFLUhFQURFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgVFJJQU5HTEUtSEVBREVEIFJJR0hUIEFSUk9XOzs7OworMjc5RjtEQVNIRUQgVFJJQU5HTEUtSEVBREVEIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtEQVNIRUQgVFJJQU5HTEUtSEVBREVEIFJJR0hUIEFSUk9XOzs7OworMjdBMDtIRUFWWSBEQVNIRUQgVFJJQU5HTEUtSEVBREVEIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBEQVNIRUQgVFJJQU5HTEUtSEVBREVEIFJJR0hUIEFSUk9XOzs7OworMjdBMTtCTEFDSyBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047QkxBQ0sgUklHSFQgQVJST1c7Ozs7CisyN0EyO1RIUkVFLUQgVE9QLUxJR0hURUQgUklHSFRXQVJEUyBBUlJPV0hFQUQ7U287MDtPTjs7Ozs7TjtUSFJFRS1EIFRPUC1MSUdIVEVEIFJJR0hUIEFSUk9XSEVBRDs7OzsKKzI3QTM7VEhSRUUtRCBCT1RUT00tTElHSFRFRCBSSUdIVFdBUkRTIEFSUk9XSEVBRDtTbzswO09OOzs7OztOO1RIUkVFLUQgQk9UVE9NLUxJR0hURUQgUklHSFQgQVJST1dIRUFEOzs7OworMjdBNDtCTEFDSyBSSUdIVFdBUkRTIEFSUk9XSEVBRDtTbzswO09OOzs7OztOO0JMQUNLIFJJR0hUIEFSUk9XSEVBRDs7OzsKKzI3QTU7SEVBVlkgQkxBQ0sgQ1VSVkVEIERPV05XQVJEUyBBTkQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIEJMQUNLIENVUlZFRCBET1dOIEFORCBSSUdIVCBBUlJPVzs7OzsKKzI3QTY7SEVBVlkgQkxBQ0sgQ1VSVkVEIFVQV0FSRFMgQU5EIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBCTEFDSyBDVVJWRUQgVVAgQU5EIFJJR0hUIEFSUk9XOzs7OworMjdBNztTUVVBVCBCTEFDSyBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047U1FVQVQgQkxBQ0sgUklHSFQgQVJST1c7Ozs7CisyN0E4O0hFQVZZIENPTkNBVkUtUE9JTlRFRCBCTEFDSyBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgQ09OQ0FWRS1QT0lOVEVEIEJMQUNLIFJJR0hUIEFSUk9XOzs7OworMjdBOTtSSUdIVC1TSEFERUQgV0hJVEUgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO1JJR0hULVNIQURFRCBXSElURSBSSUdIVCBBUlJPVzs7OzsKKzI3QUE7TEVGVC1TSEFERUQgV0hJVEUgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0xFRlQtU0hBREVEIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdBQjtCQUNLLVRJTFRFRCBTSEFET1dFRCBXSElURSBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047QkFDSy1USUxURUQgU0hBRE9XRUQgV0hJVEUgUklHSFQgQVJST1c7Ozs7CisyN0FDO0ZST05ULVRJTFRFRCBTSEFET1dFRCBXSElURSBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047RlJPTlQtVElMVEVEIFNIQURPV0VEIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdBRDtIRUFWWSBMT1dFUiBSSUdIVC1TSEFET1dFRCBXSElURSBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgTE9XRVIgUklHSFQtU0hBRE9XRUQgV0hJVEUgUklHSFQgQVJST1c7Ozs7CisyN0FFO0hFQVZZIFVQUEVSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBVUFBFUiBSSUdIVC1TSEFET1dFRCBXSElURSBSSUdIVCBBUlJPVzs7OzsKKzI3QUY7Tk9UQ0hFRCBMT1dFUiBSSUdIVC1TSEFET1dFRCBXSElURSBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047Tk9UQ0hFRCBMT1dFUiBSSUdIVC1TSEFET1dFRCBXSElURSBSSUdIVCBBUlJPVzs7OzsKKzI3QjE7Tk9UQ0hFRCBVUFBFUiBSSUdIVC1TSEFET1dFRCBXSElURSBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047Tk9UQ0hFRCBVUFBFUiBSSUdIVC1TSEFET1dFRCBXSElURSBSSUdIVCBBUlJPVzs7OzsKKzI3QjI7Q0lSQ0xFRCBIRUFWWSBXSElURSBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047Q0lSQ0xFRCBIRUFWWSBXSElURSBSSUdIVCBBUlJPVzs7OzsKKzI3QjM7V0hJVEUtRkVBVEhFUkVEIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtXSElURS1GRUFUSEVSRUQgUklHSFQgQVJST1c7Ozs7CisyN0I0O0JMQUNLLUZFQVRIRVJFRCBTT1VUSCBFQVNUIEFSUk9XO1NvOzA7T047Ozs7O047QkxBQ0stRkVBVEhFUkVEIExPV0VSIFJJR0hUIEFSUk9XOzs7OworMjdCNTtCTEFDSy1GRUFUSEVSRUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0JMQUNLLUZFQVRIRVJFRCBSSUdIVCBBUlJPVzs7OzsKKzI3QjY7QkxBQ0stRkVBVEhFUkVEIE5PUlRIIEVBU1QgQVJST1c7U287MDtPTjs7Ozs7TjtCTEFDSy1GRUFUSEVSRUQgVVBQRVIgUklHSFQgQVJST1c7Ozs7CisyN0I3O0hFQVZZIEJMQUNLLUZFQVRIRVJFRCBTT1VUSCBFQVNUIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgQkxBQ0stRkVBVEhFUkVEIExPV0VSIFJJR0hUIEFSUk9XOzs7OworMjdCODtIRUFWWSBCTEFDSy1GRUFUSEVSRUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIEJMQUNLLUZFQVRIRVJFRCBSSUdIVCBBUlJPVzs7OzsKKzI3Qjk7SEVBVlkgQkxBQ0stRkVBVEhFUkVEIE5PUlRIIEVBU1QgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBCTEFDSy1GRUFUSEVSRUQgVVBQRVIgUklHSFQgQVJST1c7Ozs7CisyN0JBO1RFQVJEUk9QLUJBUkJFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047VEVBUkRST1AtQkFSQkVEIFJJR0hUIEFSUk9XOzs7OworMjdCQjtIRUFWWSBURUFSRFJPUC1TSEFOS0VEIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBURUFSRFJPUC1TSEFOS0VEIFJJR0hUIEFSUk9XOzs7OworMjdCQztXRURHRS1UQUlMRUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO1dFREdFLVRBSUxFRCBSSUdIVCBBUlJPVzs7OzsKKzI3QkQ7SEVBVlkgV0VER0UtVEFJTEVEIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBXRURHRS1UQUlMRUQgUklHSFQgQVJST1c7Ozs7CisyN0JFO09QRU4tT1VUTElORUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO09QRU4tT1VUTElORUQgUklHSFQgQVJST1c7Ozs7CisyODAwO0JSQUlMTEUgUEFUVEVSTiBCTEFOSztTbzswO09OOzs7OztOOzs7OzsKKzI4MDE7QlJBSUxMRSBQQVRURVJOIERPVFMtMTtTbzswO09OOzs7OztOOzs7OzsKKzI4MDI7QlJBSUxMRSBQQVRURVJOIERPVFMtMjtTbzswO09OOzs7OztOOzs7OzsKKzI4MDM7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODA0O0JSQUlMTEUgUEFUVEVSTiBET1RTLTM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODA1O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzO1NvOzA7T047Ozs7O047Ozs7OworMjgwNjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMztTbzswO09OOzs7OztOOzs7OzsKKzI4MDc7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzO1NvOzA7T047Ozs7O047Ozs7OworMjgwODtCUkFJTExFIFBBVFRFUk4gRE9UUy00O1NvOzA7T047Ozs7O047Ozs7OworMjgwOTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNDtTbzswO09OOzs7OztOOzs7OzsKKzI4MEE7QlJBSUxMRSBQQVRURVJOIERPVFMtMjQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODBCO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNDtTbzswO09OOzs7OztOOzs7OzsKKzI4MEM7QlJBSUxMRSBQQVRURVJOIERPVFMtMzQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODBEO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNDtTbzswO09OOzs7OztOOzs7OzsKKzI4MEU7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM0O1NvOzA7T047Ozs7O047Ozs7OworMjgwRjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM0O1NvOzA7T047Ozs7O047Ozs7OworMjgxMDtCUkFJTExFIFBBVFRFUk4gRE9UUy01O1NvOzA7T047Ozs7O047Ozs7OworMjgxMTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNTtTbzswO09OOzs7OztOOzs7OzsKKzI4MTI7QlJBSUxMRSBQQVRURVJOIERPVFMtMjU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODEzO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNTtTbzswO09OOzs7OztOOzs7OzsKKzI4MTQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMzU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODE1O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNTtTbzswO09OOzs7OztOOzs7OzsKKzI4MTY7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM1O1NvOzA7T047Ozs7O047Ozs7OworMjgxNztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM1O1NvOzA7T047Ozs7O047Ozs7OworMjgxODtCUkFJTExFIFBBVFRFUk4gRE9UUy00NTtTbzswO09OOzs7OztOOzs7OzsKKzI4MTk7QlJBSUxMRSBQQVRURVJOIERPVFMtMTQ1O1NvOzA7T047Ozs7O047Ozs7OworMjgxQTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNDU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODFCO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNDU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODFDO0JSQUlMTEUgUEFUVEVSTiBET1RTLTM0NTtTbzswO09OOzs7OztOOzs7OzsKKzI4MUQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM0NTtTbzswO09OOzs7OztOOzs7OzsKKzI4MUU7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM0NTtTbzswO09OOzs7OztOOzs7OzsKKzI4MUY7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNDU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODIwO0JSQUlMTEUgUEFUVEVSTiBET1RTLTY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODIxO0JSQUlMTEUgUEFUVEVSTiBET1RTLTE2O1NvOzA7T047Ozs7O047Ozs7OworMjgyMjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNjtTbzswO09OOzs7OztOOzs7OzsKKzI4MjM7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI2O1NvOzA7T047Ozs7O047Ozs7OworMjgyNDtCUkFJTExFIFBBVFRFUk4gRE9UUy0zNjtTbzswO09OOzs7OztOOzs7OzsKKzI4MjU7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM2O1NvOzA7T047Ozs7O047Ozs7OworMjgyNjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODI3O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODI4O0JSQUlMTEUgUEFUVEVSTiBET1RTLTQ2O1NvOzA7T047Ozs7O047Ozs7OworMjgyOTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNDY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODJBO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI0NjtTbzswO09OOzs7OztOOzs7OzsKKzI4MkI7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI0NjtTbzswO09OOzs7OztOOzs7OzsKKzI4MkM7QlJBSUxMRSBQQVRURVJOIERPVFMtMzQ2O1NvOzA7T047Ozs7O047Ozs7OworMjgyRDtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzQ2O1NvOzA7T047Ozs7O047Ozs7OworMjgyRTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzQ2O1NvOzA7T047Ozs7O047Ozs7OworMjgyRjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM0NjtTbzswO09OOzs7OztOOzs7OzsKKzI4MzA7QlJBSUxMRSBQQVRURVJOIERPVFMtNTY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODMxO0JSQUlMTEUgUEFUVEVSTiBET1RTLTE1NjtTbzswO09OOzs7OztOOzs7OzsKKzI4MzI7QlJBSUxMRSBQQVRURVJOIERPVFMtMjU2O1NvOzA7T047Ozs7O047Ozs7OworMjgzMztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjU2O1NvOzA7T047Ozs7O047Ozs7OworMjgzNDtCUkFJTExFIFBBVFRFUk4gRE9UUy0zNTY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODM1O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNTY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODM2O0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNTY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODM3O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzU2O1NvOzA7T047Ozs7O047Ozs7OworMjgzODtCUkFJTExFIFBBVFRFUk4gRE9UUy00NTY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODM5O0JSQUlMTEUgUEFUVEVSTiBET1RTLTE0NTY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODNBO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI0NTY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODNCO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNDU2O1NvOzA7T047Ozs7O047Ozs7OworMjgzQztCUkFJTExFIFBBVFRFUk4gRE9UUy0zNDU2O1NvOzA7T047Ozs7O047Ozs7OworMjgzRDtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzQ1NjtTbzswO09OOzs7OztOOzs7OzsKKzI4M0U7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM0NTY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODNGO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzQ1NjtTbzswO09OOzs7OztOOzs7OzsKKzI4NDA7QlJBSUxMRSBQQVRURVJOIERPVFMtNztTbzswO09OOzs7OztOOzs7OzsKKzI4NDE7QlJBSUxMRSBQQVRURVJOIERPVFMtMTc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODQyO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI3O1NvOzA7T047Ozs7O047Ozs7OworMjg0MztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODQ0O0JSQUlMTEUgUEFUVEVSTiBET1RTLTM3O1NvOzA7T047Ozs7O047Ozs7OworMjg0NTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODQ2O0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNztTbzswO09OOzs7OztOOzs7OzsKKzI4NDc7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNztTbzswO09OOzs7OztOOzs7OzsKKzI4NDg7QlJBSUxMRSBQQVRURVJOIERPVFMtNDc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODQ5O0JSQUlMTEUgUEFUVEVSTiBET1RTLTE0NztTbzswO09OOzs7OztOOzs7OzsKKzI4NEE7QlJBSUxMRSBQQVRURVJOIERPVFMtMjQ3O1NvOzA7T047Ozs7O047Ozs7OworMjg0QjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjQ3O1NvOzA7T047Ozs7O047Ozs7OworMjg0QztCUkFJTExFIFBBVFRFUk4gRE9UUy0zNDc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODREO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNDc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODRFO0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNDc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODRGO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzQ3O1NvOzA7T047Ozs7O047Ozs7OworMjg1MDtCUkFJTExFIFBBVFRFUk4gRE9UUy01NztTbzswO09OOzs7OztOOzs7OzsKKzI4NTE7QlJBSUxMRSBQQVRURVJOIERPVFMtMTU3O1NvOzA7T047Ozs7O047Ozs7OworMjg1MjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNTc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODUzO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNTc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODU0O0JSQUlMTEUgUEFUVEVSTiBET1RTLTM1NztTbzswO09OOzs7OztOOzs7OzsKKzI4NTU7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM1NztTbzswO09OOzs7OztOOzs7OzsKKzI4NTY7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM1NztTbzswO09OOzs7OztOOzs7OzsKKzI4NTc7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNTc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODU4O0JSQUlMTEUgUEFUVEVSTiBET1RTLTQ1NztTbzswO09OOzs7OztOOzs7OzsKKzI4NTk7QlJBSUxMRSBQQVRURVJOIERPVFMtMTQ1NztTbzswO09OOzs7OztOOzs7OzsKKzI4NUE7QlJBSUxMRSBQQVRURVJOIERPVFMtMjQ1NztTbzswO09OOzs7OztOOzs7OzsKKzI4NUI7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI0NTc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODVDO0JSQUlMTEUgUEFUVEVSTiBET1RTLTM0NTc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODVEO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNDU3O1NvOzA7T047Ozs7O047Ozs7OworMjg1RTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzQ1NztTbzswO09OOzs7OztOOzs7OzsKKzI4NUY7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNDU3O1NvOzA7T047Ozs7O047Ozs7OworMjg2MDtCUkFJTExFIFBBVFRFUk4gRE9UUy02NztTbzswO09OOzs7OztOOzs7OzsKKzI4NjE7QlJBSUxMRSBQQVRURVJOIERPVFMtMTY3O1NvOzA7T047Ozs7O047Ozs7OworMjg2MjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNjc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODYzO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNjc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODY0O0JSQUlMTEUgUEFUVEVSTiBET1RTLTM2NztTbzswO09OOzs7OztOOzs7OzsKKzI4NjU7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM2NztTbzswO09OOzs7OztOOzs7OzsKKzI4NjY7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM2NztTbzswO09OOzs7OztOOzs7OzsKKzI4Njc7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNjc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODY4O0JSQUlMTEUgUEFUVEVSTiBET1RTLTQ2NztTbzswO09OOzs7OztOOzs7OzsKKzI4Njk7QlJBSUxMRSBQQVRURVJOIERPVFMtMTQ2NztTbzswO09OOzs7OztOOzs7OzsKKzI4NkE7QlJBSUxMRSBQQVRURVJOIERPVFMtMjQ2NztTbzswO09OOzs7OztOOzs7OzsKKzI4NkI7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI0Njc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODZDO0JSQUlMTEUgUEFUVEVSTiBET1RTLTM0Njc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODZEO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNDY3O1NvOzA7T047Ozs7O047Ozs7OworMjg2RTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzQ2NztTbzswO09OOzs7OztOOzs7OzsKKzI4NkY7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNDY3O1NvOzA7T047Ozs7O047Ozs7OworMjg3MDtCUkFJTExFIFBBVFRFUk4gRE9UUy01Njc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODcxO0JSQUlMTEUgUEFUVEVSTiBET1RTLTE1Njc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODcyO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI1Njc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODczO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNTY3O1NvOzA7T047Ozs7O047Ozs7OworMjg3NDtCUkFJTExFIFBBVFRFUk4gRE9UUy0zNTY3O1NvOzA7T047Ozs7O047Ozs7OworMjg3NTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzU2NztTbzswO09OOzs7OztOOzs7OzsKKzI4NzY7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM1Njc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODc3O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzU2NztTbzswO09OOzs7OztOOzs7OzsKKzI4Nzg7QlJBSUxMRSBQQVRURVJOIERPVFMtNDU2NztTbzswO09OOzs7OztOOzs7OzsKKzI4Nzk7QlJBSUxMRSBQQVRURVJOIERPVFMtMTQ1Njc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODdBO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI0NTY3O1NvOzA7T047Ozs7O047Ozs7OworMjg3QjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjQ1Njc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODdDO0JSQUlMTEUgUEFUVEVSTiBET1RTLTM0NTY3O1NvOzA7T047Ozs7O047Ozs7OworMjg3RDtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzQ1Njc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODdFO0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNDU2NztTbzswO09OOzs7OztOOzs7OzsKKzI4N0Y7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNDU2NztTbzswO09OOzs7OztOOzs7OzsKKzI4ODA7QlJBSUxMRSBQQVRURVJOIERPVFMtODtTbzswO09OOzs7OztOOzs7OzsKKzI4ODE7QlJBSUxMRSBQQVRURVJOIERPVFMtMTg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODgyO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI4O1NvOzA7T047Ozs7O047Ozs7OworMjg4MztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODg0O0JSQUlMTEUgUEFUVEVSTiBET1RTLTM4O1NvOzA7T047Ozs7O047Ozs7OworMjg4NTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODg2O0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzODtTbzswO09OOzs7OztOOzs7OzsKKzI4ODc7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzODtTbzswO09OOzs7OztOOzs7OzsKKzI4ODg7QlJBSUxMRSBQQVRURVJOIERPVFMtNDg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODg5O0JSQUlMTEUgUEFUVEVSTiBET1RTLTE0ODtTbzswO09OOzs7OztOOzs7OzsKKzI4OEE7QlJBSUxMRSBQQVRURVJOIERPVFMtMjQ4O1NvOzA7T047Ozs7O047Ozs7OworMjg4QjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjQ4O1NvOzA7T047Ozs7O047Ozs7OworMjg4QztCUkFJTExFIFBBVFRFUk4gRE9UUy0zNDg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODhEO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNDg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODhFO0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNDg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODhGO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzQ4O1NvOzA7T047Ozs7O047Ozs7OworMjg5MDtCUkFJTExFIFBBVFRFUk4gRE9UUy01ODtTbzswO09OOzs7OztOOzs7OzsKKzI4OTE7QlJBSUxMRSBQQVRURVJOIERPVFMtMTU4O1NvOzA7T047Ozs7O047Ozs7OworMjg5MjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNTg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODkzO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNTg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODk0O0JSQUlMTEUgUEFUVEVSTiBET1RTLTM1ODtTbzswO09OOzs7OztOOzs7OzsKKzI4OTU7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM1ODtTbzswO09OOzs7OztOOzs7OzsKKzI4OTY7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM1ODtTbzswO09OOzs7OztOOzs7OzsKKzI4OTc7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNTg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODk4O0JSQUlMTEUgUEFUVEVSTiBET1RTLTQ1ODtTbzswO09OOzs7OztOOzs7OzsKKzI4OTk7QlJBSUxMRSBQQVRURVJOIERPVFMtMTQ1ODtTbzswO09OOzs7OztOOzs7OzsKKzI4OUE7QlJBSUxMRSBQQVRURVJOIERPVFMtMjQ1ODtTbzswO09OOzs7OztOOzs7OzsKKzI4OUI7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI0NTg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODlDO0JSQUlMTEUgUEFUVEVSTiBET1RTLTM0NTg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODlEO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNDU4O1NvOzA7T047Ozs7O047Ozs7OworMjg5RTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzQ1ODtTbzswO09OOzs7OztOOzs7OzsKKzI4OUY7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNDU4O1NvOzA7T047Ozs7O047Ozs7OworMjhBMDtCUkFJTExFIFBBVFRFUk4gRE9UUy02ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QTE7QlJBSUxMRSBQQVRURVJOIERPVFMtMTY4O1NvOzA7T047Ozs7O047Ozs7OworMjhBMjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNjg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEEzO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNjg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEE0O0JSQUlMTEUgUEFUVEVSTiBET1RTLTM2ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QTU7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM2ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QTY7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM2ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QTc7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNjg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEE4O0JSQUlMTEUgUEFUVEVSTiBET1RTLTQ2ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QTk7QlJBSUxMRSBQQVRURVJOIERPVFMtMTQ2ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QUE7QlJBSUxMRSBQQVRURVJOIERPVFMtMjQ2ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QUI7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI0Njg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEFDO0JSQUlMTEUgUEFUVEVSTiBET1RTLTM0Njg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEFEO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNDY4O1NvOzA7T047Ozs7O047Ozs7OworMjhBRTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzQ2ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QUY7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNDY4O1NvOzA7T047Ozs7O047Ozs7OworMjhCMDtCUkFJTExFIFBBVFRFUk4gRE9UUy01Njg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEIxO0JSQUlMTEUgUEFUVEVSTiBET1RTLTE1Njg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEIyO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI1Njg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEIzO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNTY4O1NvOzA7T047Ozs7O047Ozs7OworMjhCNDtCUkFJTExFIFBBVFRFUk4gRE9UUy0zNTY4O1NvOzA7T047Ozs7O047Ozs7OworMjhCNTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzU2ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QjY7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM1Njg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEI3O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzU2ODtTbzswO09OOzs7OztOOzs7OzsKKzI4Qjg7QlJBSUxMRSBQQVRURVJOIERPVFMtNDU2ODtTbzswO09OOzs7OztOOzs7OzsKKzI4Qjk7QlJBSUxMRSBQQVRURVJOIERPVFMtMTQ1Njg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEJBO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI0NTY4O1NvOzA7T047Ozs7O047Ozs7OworMjhCQjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjQ1Njg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEJDO0JSQUlMTEUgUEFUVEVSTiBET1RTLTM0NTY4O1NvOzA7T047Ozs7O047Ozs7OworMjhCRDtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzQ1Njg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEJFO0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNDU2ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QkY7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNDU2ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QzA7QlJBSUxMRSBQQVRURVJOIERPVFMtNzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEMxO0JSQUlMTEUgUEFUVEVSTiBET1RTLTE3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QzI7QlJBSUxMRSBQQVRURVJOIERPVFMtMjc4O1NvOzA7T047Ozs7O047Ozs7OworMjhDMztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjc4O1NvOzA7T047Ozs7O047Ozs7OworMjhDNDtCUkFJTExFIFBBVFRFUk4gRE9UUy0zNzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEM1O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEM2O0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEM3O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzc4O1NvOzA7T047Ozs7O047Ozs7OworMjhDODtCUkFJTExFIFBBVFRFUk4gRE9UUy00Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEM5O0JSQUlMTEUgUEFUVEVSTiBET1RTLTE0Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOENBO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI0Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOENCO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNDc4O1NvOzA7T047Ozs7O047Ozs7OworMjhDQztCUkFJTExFIFBBVFRFUk4gRE9UUy0zNDc4O1NvOzA7T047Ozs7O047Ozs7OworMjhDRDtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzQ3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4Q0U7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM0Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOENGO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzQ3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RDA7QlJBSUxMRSBQQVRURVJOIERPVFMtNTc4O1NvOzA7T047Ozs7O047Ozs7OworMjhEMTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNTc4O1NvOzA7T047Ozs7O047Ozs7OworMjhEMjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNTc4O1NvOzA7T047Ozs7O047Ozs7OworMjhEMztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjU3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RDQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMzU3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RDU7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM1Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEQ2O0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNTc4O1NvOzA7T047Ozs7O047Ozs7OworMjhENztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM1Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEQ4O0JSQUlMTEUgUEFUVEVSTiBET1RTLTQ1Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEQ5O0JSQUlMTEUgUEFUVEVSTiBET1RTLTE0NTc4O1NvOzA7T047Ozs7O047Ozs7OworMjhEQTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNDU3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4REI7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI0NTc4O1NvOzA7T047Ozs7O047Ozs7OworMjhEQztCUkFJTExFIFBBVFRFUk4gRE9UUy0zNDU3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4REQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM0NTc4O1NvOzA7T047Ozs7O047Ozs7OworMjhERTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzQ1Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOERGO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzQ1Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEUwO0JSQUlMTEUgUEFUVEVSTiBET1RTLTY3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RTE7QlJBSUxMRSBQQVRURVJOIERPVFMtMTY3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RTI7QlJBSUxMRSBQQVRURVJOIERPVFMtMjY3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RTM7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI2Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEU0O0JSQUlMTEUgUEFUVEVSTiBET1RTLTM2Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEU1O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNjc4O1NvOzA7T047Ozs7O047Ozs7OworMjhFNjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzY3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RTc7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNjc4O1NvOzA7T047Ozs7O047Ozs7OworMjhFODtCUkFJTExFIFBBVFRFUk4gRE9UUy00Njc4O1NvOzA7T047Ozs7O047Ozs7OworMjhFOTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNDY3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RUE7QlJBSUxMRSBQQVRURVJOIERPVFMtMjQ2Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEVCO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNDY3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RUM7QlJBSUxMRSBQQVRURVJOIERPVFMtMzQ2Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEVEO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNDY3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RUU7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM0Njc4O1NvOzA7T047Ozs7O047Ozs7OworMjhFRjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM0Njc4O1NvOzA7T047Ozs7O047Ozs7OworMjhGMDtCUkFJTExFIFBBVFRFUk4gRE9UUy01Njc4O1NvOzA7T047Ozs7O047Ozs7OworMjhGMTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNTY3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RjI7QlJBSUxMRSBQQVRURVJOIERPVFMtMjU2Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEYzO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNTY3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RjQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMzU2Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEY1O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNTY3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RjY7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM1Njc4O1NvOzA7T047Ozs7O047Ozs7OworMjhGNztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM1Njc4O1NvOzA7T047Ozs7O047Ozs7OworMjhGODtCUkFJTExFIFBBVFRFUk4gRE9UUy00NTY3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4Rjk7QlJBSUxMRSBQQVRURVJOIERPVFMtMTQ1Njc4O1NvOzA7T047Ozs7O047Ozs7OworMjhGQTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNDU2Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEZCO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNDU2Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEZDO0JSQUlMTEUgUEFUVEVSTiBET1RTLTM0NTY3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RkQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM0NTY3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RkU7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM0NTY3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RkY7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNDU2Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTgwO0NKSyBSQURJQ0FMIFJFUEVBVDtTbzswO09OOzs7OztOOzs7OzsKKzJFODE7Q0pLIFJBRElDQUwgQ0xJRkY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTgyO0NKSyBSQURJQ0FMIFNFQ09ORCBPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTgzO0NKSyBSQURJQ0FMIFNFQ09ORCBUV087U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTg0O0NKSyBSQURJQ0FMIFNFQ09ORCBUSFJFRTtTbzswO09OOzs7OztOOzs7OzsKKzJFODU7Q0pLIFJBRElDQUwgUEVSU09OO1NvOzA7T047Ozs7O047Ozs7OworMkU4NjtDSksgUkFESUNBTCBCT1g7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTg3O0NKSyBSQURJQ0FMIFRBQkxFO1NvOzA7T047Ozs7O047Ozs7OworMkU4ODtDSksgUkFESUNBTCBLTklGRSBPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTg5O0NKSyBSQURJQ0FMIEtOSUZFIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzJFOEE7Q0pLIFJBRElDQUwgRElWSU5BVElPTjtTbzswO09OOzs7OztOOzs7OzsKKzJFOEI7Q0pLIFJBRElDQUwgU0VBTDtTbzswO09OOzs7OztOOzs7OzsKKzJFOEM7Q0pLIFJBRElDQUwgU01BTEwgT05FO1NvOzA7T047Ozs7O047Ozs7OworMkU4RDtDSksgUkFESUNBTCBTTUFMTCBUV087U287MDtPTjs7Ozs7Tjs7Ozs7CisyRThFO0NKSyBSQURJQ0FMIExBTUUgT05FO1NvOzA7T047Ozs7O047Ozs7OworMkU4RjtDSksgUkFESUNBTCBMQU1FIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzJFOTA7Q0pLIFJBRElDQUwgTEFNRSBUSFJFRTtTbzswO09OOzs7OztOOzs7OzsKKzJFOTE7Q0pLIFJBRElDQUwgTEFNRSBGT1VSO1NvOzA7T047Ozs7O047Ozs7OworMkU5MjtDSksgUkFESUNBTCBTTkFLRTtTbzswO09OOzs7OztOOzs7OzsKKzJFOTM7Q0pLIFJBRElDQUwgVEhSRUFEO1NvOzA7T047Ozs7O047Ozs7OworMkU5NDtDSksgUkFESUNBTCBTTk9VVCBPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTk1O0NKSyBSQURJQ0FMIFNOT1VUIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzJFOTY7Q0pLIFJBRElDQUwgSEVBUlQgT05FO1NvOzA7T047Ozs7O047Ozs7OworMkU5NztDSksgUkFESUNBTCBIRUFSVCBUV087U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTk4O0NKSyBSQURJQ0FMIEhBTkQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTk5O0NKSyBSQURJQ0FMIFJBUDtTbzswO09OOzs7OztOOzs7OzsKKzJFOUI7Q0pLIFJBRElDQUwgQ0hPS0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTlDO0NKSyBSQURJQ0FMIFNVTjtTbzswO09OOzs7OztOOzs7OzsKKzJFOUQ7Q0pLIFJBRElDQUwgTU9PTjtTbzswO09OOzs7OztOOzs7OzsKKzJFOUU7Q0pLIFJBRElDQUwgREVBVEg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTlGO0NKSyBSQURJQ0FMIE1PVEhFUjtTbzswO09OOzxjb21wYXQ+IDZCQ0Q7Ozs7Tjs7Ozs7CisyRUEwO0NKSyBSQURJQ0FMIENJVklMSUFOO1NvOzA7T047Ozs7O047Ozs7OworMkVBMTtDSksgUkFESUNBTCBXQVRFUiBPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUEyO0NKSyBSQURJQ0FMIFdBVEVSIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzJFQTM7Q0pLIFJBRElDQUwgRklSRTtTbzswO09OOzs7OztOOzs7OzsKKzJFQTQ7Q0pLIFJBRElDQUwgUEFXIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFQTU7Q0pLIFJBRElDQUwgUEFXIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzJFQTY7Q0pLIFJBRElDQUwgU0lNUExJRklFRCBIQUxGIFRSRUUgVFJVTks7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUE3O0NKSyBSQURJQ0FMIENPVztTbzswO09OOzs7OztOOzs7OzsKKzJFQTg7Q0pLIFJBRElDQUwgRE9HO1NvOzA7T047Ozs7O047Ozs7OworMkVBOTtDSksgUkFESUNBTCBKQURFO1NvOzA7T047Ozs7O047Ozs7OworMkVBQTtDSksgUkFESUNBTCBCT0xUIE9GIENMT1RIO1NvOzA7T047Ozs7O047Ozs7OworMkVBQjtDSksgUkFESUNBTCBFWUU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUFDO0NKSyBSQURJQ0FMIFNQSVJJVCBPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUFEO0NKSyBSQURJQ0FMIFNQSVJJVCBUV087U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUFFO0NKSyBSQURJQ0FMIEJBTUJPTztTbzswO09OOzs7OztOOzs7OzsKKzJFQUY7Q0pLIFJBRElDQUwgU0lMSztTbzswO09OOzs7OztOOzs7OzsKKzJFQjA7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIFNJTEs7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUIxO0NKSyBSQURJQ0FMIE5FVCBPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUIyO0NKSyBSQURJQ0FMIE5FVCBUV087U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUIzO0NKSyBSQURJQ0FMIE5FVCBUSFJFRTtTbzswO09OOzs7OztOOzs7OzsKKzJFQjQ7Q0pLIFJBRElDQUwgTkVUIEZPVVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUI1O0NKSyBSQURJQ0FMIE1FU0g7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUI2O0NKSyBSQURJQ0FMIFNIRUVQO1NvOzA7T047Ozs7O047Ozs7OworMkVCNztDSksgUkFESUNBTCBSQU07U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUI4O0NKSyBSQURJQ0FMIEVXRTtTbzswO09OOzs7OztOOzs7OzsKKzJFQjk7Q0pLIFJBRElDQUwgT0xEO1NvOzA7T047Ozs7O047Ozs7OworMkVCQTtDSksgUkFESUNBTCBCUlVTSCBPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUJCO0NKSyBSQURJQ0FMIEJSVVNIIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzJFQkM7Q0pLIFJBRElDQUwgTUVBVDtTbzswO09OOzs7OztOOzs7OzsKKzJFQkQ7Q0pLIFJBRElDQUwgTU9SVEFSO1NvOzA7T047Ozs7O047Ozs7OworMkVCRTtDSksgUkFESUNBTCBHUkFTUyBPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUJGO0NKSyBSQURJQ0FMIEdSQVNTIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzJFQzA7Q0pLIFJBRElDQUwgR1JBU1MgVEhSRUU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUMxO0NKSyBSQURJQ0FMIFRJR0VSO1NvOzA7T047Ozs7O047Ozs7OworMkVDMjtDSksgUkFESUNBTCBDTE9USEVTO1NvOzA7T047Ozs7O047Ozs7OworMkVDMztDSksgUkFESUNBTCBXRVNUIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFQzQ7Q0pLIFJBRElDQUwgV0VTVCBUV087U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUM1O0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBTRUU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUM2O0NKSyBSQURJQ0FMIFNJTVBMSUZJRUQgSE9STjtTbzswO09OOzs7OztOOzs7OzsKKzJFQzc7Q0pLIFJBRElDQUwgSE9STjtTbzswO09OOzs7OztOOzs7OzsKKzJFQzg7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIFNQRUVDSDtTbzswO09OOzs7OztOOzs7OzsKKzJFQzk7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIFNIRUxMO1NvOzA7T047Ozs7O047Ozs7OworMkVDQTtDSksgUkFESUNBTCBGT09UO1NvOzA7T047Ozs7O047Ozs7OworMkVDQjtDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgQ0FSVDtTbzswO09OOzs7OztOOzs7OzsKKzJFQ0M7Q0pLIFJBRElDQUwgU0lNUExJRklFRCBXQUxLO1NvOzA7T047Ozs7O047Ozs7OworMkVDRDtDSksgUkFESUNBTCBXQUxLIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFQ0U7Q0pLIFJBRElDQUwgV0FMSyBUV087U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUNGO0NKSyBSQURJQ0FMIENJVFk7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUQwO0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBHT0xEO1NvOzA7T047Ozs7O047Ozs7OworMkVEMTtDSksgUkFESUNBTCBMT05HIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFRDI7Q0pLIFJBRElDQUwgTE9ORyBUV087U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUQzO0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBMT05HO1NvOzA7T047Ozs7O047Ozs7OworMkVENDtDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgR0FURTtTbzswO09OOzs7OztOOzs7OzsKKzJFRDU7Q0pLIFJBRElDQUwgTU9VTkQgT05FO1NvOzA7T047Ozs7O047Ozs7OworMkVENjtDSksgUkFESUNBTCBNT1VORCBUV087U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUQ3O0NKSyBSQURJQ0FMIFJBSU47U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUQ4O0NKSyBSQURJQ0FMIEJMVUU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUQ5O0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBUQU5ORUQgTEVBVEhFUjtTbzswO09OOzs7OztOOzs7OzsKKzJFREE7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIExFQUY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRURCO0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBXSU5EO1NvOzA7T047Ozs7O047Ozs7OworMkVEQztDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgRkxZO1NvOzA7T047Ozs7O047Ozs7OworMkVERDtDSksgUkFESUNBTCBFQVQgT05FO1NvOzA7T047Ozs7O047Ozs7OworMkVERTtDSksgUkFESUNBTCBFQVQgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkVERjtDSksgUkFESUNBTCBFQVQgVEhSRUU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUUwO0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBFQVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUUxO0NKSyBSQURJQ0FMIEhFQUQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUUyO0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBIT1JTRTtTbzswO09OOzs7OztOOzs7OzsKKzJFRTM7Q0pLIFJBRElDQUwgQk9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFRTQ7Q0pLIFJBRElDQUwgR0hPU1Q7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUU1O0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBGSVNIO1NvOzA7T047Ozs7O047Ozs7OworMkVFNjtDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgQklSRDtTbzswO09OOzs7OztOOzs7OzsKKzJFRTc7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIFNBTFQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUU4O0NKSyBSQURJQ0FMIFNJTVBMSUZJRUQgV0hFQVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUU5O0NKSyBSQURJQ0FMIFNJTVBMSUZJRUQgWUVMTE9XO1NvOzA7T047Ozs7O047Ozs7OworMkVFQTtDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgRlJPRztTbzswO09OOzs7OztOOzs7OzsKKzJFRUI7Q0pLIFJBRElDQUwgSi1TSU1QTElGSUVEIEVWRU47U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUVDO0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBFVkVOO1NvOzA7T047Ozs7O047Ozs7OworMkVFRDtDSksgUkFESUNBTCBKLVNJTVBMSUZJRUQgVE9PVEg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUVFO0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBUT09USDtTbzswO09OOzs7OztOOzs7OzsKKzJFRUY7Q0pLIFJBRElDQUwgSi1TSU1QTElGSUVEIERSQUdPTjtTbzswO09OOzs7OztOOzs7OzsKKzJFRjA7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIERSQUdPTjtTbzswO09OOzs7OztOOzs7OzsKKzJFRjE7Q0pLIFJBRElDQUwgVFVSVExFO1NvOzA7T047Ozs7O047Ozs7OworMkVGMjtDSksgUkFESUNBTCBKLVNJTVBMSUZJRUQgVFVSVExFO1NvOzA7T047Ozs7O047Ozs7OworMkVGMztDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgVFVSVExFO1NvOzA7T047PGNvbXBhdD4gOUY5Rjs7OztOOzs7OzsKKzJGMDA7S0FOR1hJIFJBRElDQUwgT05FO1NvOzA7T047PGNvbXBhdD4gNEUwMDs7OztOOzs7OzsKKzJGMDE7S0FOR1hJIFJBRElDQUwgTElORTtTbzswO09OOzxjb21wYXQ+IDRFMjg7Ozs7Tjs7Ozs7CisyRjAyO0tBTkdYSSBSQURJQ0FMIERPVDtTbzswO09OOzxjb21wYXQ+IDRFMzY7Ozs7Tjs7Ozs7CisyRjAzO0tBTkdYSSBSQURJQ0FMIFNMQVNIO1NvOzA7T047PGNvbXBhdD4gNEUzRjs7OztOOzs7OzsKKzJGMDQ7S0FOR1hJIFJBRElDQUwgU0VDT05EO1NvOzA7T047PGNvbXBhdD4gNEU1OTs7OztOOzs7OzsKKzJGMDU7S0FOR1hJIFJBRElDQUwgSE9PSztTbzswO09OOzxjb21wYXQ+IDRFODU7Ozs7Tjs7Ozs7CisyRjA2O0tBTkdYSSBSQURJQ0FMIFRXTztTbzswO09OOzxjb21wYXQ+IDRFOEM7Ozs7Tjs7Ozs7CisyRjA3O0tBTkdYSSBSQURJQ0FMIExJRDtTbzswO09OOzxjb21wYXQ+IDRFQTA7Ozs7Tjs7Ozs7CisyRjA4O0tBTkdYSSBSQURJQ0FMIE1BTjtTbzswO09OOzxjb21wYXQ+IDRFQkE7Ozs7Tjs7Ozs7CisyRjA5O0tBTkdYSSBSQURJQ0FMIExFR1M7U287MDtPTjs8Y29tcGF0PiA1MTNGOzs7O047Ozs7OworMkYwQTtLQU5HWEkgUkFESUNBTCBFTlRFUjtTbzswO09OOzxjb21wYXQ+IDUxNjU7Ozs7Tjs7Ozs7CisyRjBCO0tBTkdYSSBSQURJQ0FMIEVJR0hUO1NvOzA7T047PGNvbXBhdD4gNTE2Qjs7OztOOzs7OzsKKzJGMEM7S0FOR1hJIFJBRElDQUwgRE9XTiBCT1g7U287MDtPTjs8Y29tcGF0PiA1MTgyOzs7O047Ozs7OworMkYwRDtLQU5HWEkgUkFESUNBTCBDT1ZFUjtTbzswO09OOzxjb21wYXQ+IDUxOTY7Ozs7Tjs7Ozs7CisyRjBFO0tBTkdYSSBSQURJQ0FMIElDRTtTbzswO09OOzxjb21wYXQ+IDUxQUI7Ozs7Tjs7Ozs7CisyRjBGO0tBTkdYSSBSQURJQ0FMIFRBQkxFO1NvOzA7T047PGNvbXBhdD4gNTFFMDs7OztOOzs7OzsKKzJGMTA7S0FOR1hJIFJBRElDQUwgT1BFTiBCT1g7U287MDtPTjs8Y29tcGF0PiA1MUY1Ozs7O047Ozs7OworMkYxMTtLQU5HWEkgUkFESUNBTCBLTklGRTtTbzswO09OOzxjb21wYXQ+IDUyMDA7Ozs7Tjs7Ozs7CisyRjEyO0tBTkdYSSBSQURJQ0FMIFBPV0VSO1NvOzA7T047PGNvbXBhdD4gNTI5Qjs7OztOOzs7OzsKKzJGMTM7S0FOR1hJIFJBRElDQUwgV1JBUDtTbzswO09OOzxjb21wYXQ+IDUyRjk7Ozs7Tjs7Ozs7CisyRjE0O0tBTkdYSSBSQURJQ0FMIFNQT09OO1NvOzA7T047PGNvbXBhdD4gNTMxNTs7OztOOzs7OzsKKzJGMTU7S0FOR1hJIFJBRElDQUwgUklHSFQgT1BFTiBCT1g7U287MDtPTjs8Y29tcGF0PiA1MzFBOzs7O047Ozs7OworMkYxNjtLQU5HWEkgUkFESUNBTCBISURJTkcgRU5DTE9TVVJFO1NvOzA7T047PGNvbXBhdD4gNTMzODs7OztOOzs7OzsKKzJGMTc7S0FOR1hJIFJBRElDQUwgVEVOO1NvOzA7T047PGNvbXBhdD4gNTM0MTs7OztOOzs7OzsKKzJGMTg7S0FOR1hJIFJBRElDQUwgRElWSU5BVElPTjtTbzswO09OOzxjb21wYXQ+IDUzNUM7Ozs7Tjs7Ozs7CisyRjE5O0tBTkdYSSBSQURJQ0FMIFNFQUw7U287MDtPTjs8Y29tcGF0PiA1MzY5Ozs7O047Ozs7OworMkYxQTtLQU5HWEkgUkFESUNBTCBDTElGRjtTbzswO09OOzxjb21wYXQ+IDUzODI7Ozs7Tjs7Ozs7CisyRjFCO0tBTkdYSSBSQURJQ0FMIFBSSVZBVEU7U287MDtPTjs8Y29tcGF0PiA1M0I2Ozs7O047Ozs7OworMkYxQztLQU5HWEkgUkFESUNBTCBBR0FJTjtTbzswO09OOzxjb21wYXQ+IDUzQzg7Ozs7Tjs7Ozs7CisyRjFEO0tBTkdYSSBSQURJQ0FMIE1PVVRIO1NvOzA7T047PGNvbXBhdD4gNTNFMzs7OztOOzs7OzsKKzJGMUU7S0FOR1hJIFJBRElDQUwgRU5DTE9TVVJFO1NvOzA7T047PGNvbXBhdD4gNTZENzs7OztOOzs7OzsKKzJGMUY7S0FOR1hJIFJBRElDQUwgRUFSVEg7U287MDtPTjs8Y29tcGF0PiA1NzFGOzs7O047Ozs7OworMkYyMDtLQU5HWEkgUkFESUNBTCBTQ0hPTEFSO1NvOzA7T047PGNvbXBhdD4gNThFQjs7OztOOzs7OzsKKzJGMjE7S0FOR1hJIFJBRElDQUwgR087U287MDtPTjs8Y29tcGF0PiA1OTAyOzs7O047Ozs7OworMkYyMjtLQU5HWEkgUkFESUNBTCBHTyBTTE9XTFk7U287MDtPTjs8Y29tcGF0PiA1OTBBOzs7O047Ozs7OworMkYyMztLQU5HWEkgUkFESUNBTCBFVkVOSU5HO1NvOzA7T047PGNvbXBhdD4gNTkxNTs7OztOOzs7OzsKKzJGMjQ7S0FOR1hJIFJBRElDQUwgQklHO1NvOzA7T047PGNvbXBhdD4gNTkyNzs7OztOOzs7OzsKKzJGMjU7S0FOR1hJIFJBRElDQUwgV09NQU47U287MDtPTjs8Y29tcGF0PiA1OTczOzs7O047Ozs7OworMkYyNjtLQU5HWEkgUkFESUNBTCBDSElMRDtTbzswO09OOzxjb21wYXQ+IDVCNTA7Ozs7Tjs7Ozs7CisyRjI3O0tBTkdYSSBSQURJQ0FMIFJPT0Y7U287MDtPTjs8Y29tcGF0PiA1QjgwOzs7O047Ozs7OworMkYyODtLQU5HWEkgUkFESUNBTCBJTkNIO1NvOzA7T047PGNvbXBhdD4gNUJGODs7OztOOzs7OzsKKzJGMjk7S0FOR1hJIFJBRElDQUwgU01BTEw7U287MDtPTjs8Y29tcGF0PiA1QzBGOzs7O047Ozs7OworMkYyQTtLQU5HWEkgUkFESUNBTCBMQU1FO1NvOzA7T047PGNvbXBhdD4gNUMyMjs7OztOOzs7OzsKKzJGMkI7S0FOR1hJIFJBRElDQUwgQ09SUFNFO1NvOzA7T047PGNvbXBhdD4gNUMzODs7OztOOzs7OzsKKzJGMkM7S0FOR1hJIFJBRElDQUwgU1BST1VUO1NvOzA7T047PGNvbXBhdD4gNUM2RTs7OztOOzs7OzsKKzJGMkQ7S0FOR1hJIFJBRElDQUwgTU9VTlRBSU47U287MDtPTjs8Y29tcGF0PiA1QzcxOzs7O047Ozs7OworMkYyRTtLQU5HWEkgUkFESUNBTCBSSVZFUjtTbzswO09OOzxjb21wYXQ+IDVEREI7Ozs7Tjs7Ozs7CisyRjJGO0tBTkdYSSBSQURJQ0FMIFdPUks7U287MDtPTjs8Y29tcGF0PiA1REU1Ozs7O047Ozs7OworMkYzMDtLQU5HWEkgUkFESUNBTCBPTkVTRUxGO1NvOzA7T047PGNvbXBhdD4gNURGMTs7OztOOzs7OzsKKzJGMzE7S0FOR1hJIFJBRElDQUwgVFVSQkFOO1NvOzA7T047PGNvbXBhdD4gNURGRTs7OztOOzs7OzsKKzJGMzI7S0FOR1hJIFJBRElDQUwgRFJZO1NvOzA7T047PGNvbXBhdD4gNUU3Mjs7OztOOzs7OzsKKzJGMzM7S0FOR1hJIFJBRElDQUwgU0hPUlQgVEhSRUFEO1NvOzA7T047PGNvbXBhdD4gNUU3QTs7OztOOzs7OzsKKzJGMzQ7S0FOR1hJIFJBRElDQUwgRE9UVEVEIENMSUZGO1NvOzA7T047PGNvbXBhdD4gNUU3Rjs7OztOOzs7OzsKKzJGMzU7S0FOR1hJIFJBRElDQUwgTE9ORyBTVFJJREU7U287MDtPTjs8Y29tcGF0PiA1RUY0Ozs7O047Ozs7OworMkYzNjtLQU5HWEkgUkFESUNBTCBUV08gSEFORFM7U287MDtPTjs8Y29tcGF0PiA1RUZFOzs7O047Ozs7OworMkYzNztLQU5HWEkgUkFESUNBTCBTSE9PVDtTbzswO09OOzxjb21wYXQ+IDVGMEI7Ozs7Tjs7Ozs7CisyRjM4O0tBTkdYSSBSQURJQ0FMIEJPVztTbzswO09OOzxjb21wYXQ+IDVGMTM7Ozs7Tjs7Ozs7CisyRjM5O0tBTkdYSSBSQURJQ0FMIFNOT1VUO1NvOzA7T047PGNvbXBhdD4gNUY1MDs7OztOOzs7OzsKKzJGM0E7S0FOR1hJIFJBRElDQUwgQlJJU1RMRTtTbzswO09OOzxjb21wYXQ+IDVGNjE7Ozs7Tjs7Ozs7CisyRjNCO0tBTkdYSSBSQURJQ0FMIFNURVA7U287MDtPTjs8Y29tcGF0PiA1RjczOzs7O047Ozs7OworMkYzQztLQU5HWEkgUkFESUNBTCBIRUFSVDtTbzswO09OOzxjb21wYXQ+IDVGQzM7Ozs7Tjs7Ozs7CisyRjNEO0tBTkdYSSBSQURJQ0FMIEhBTEJFUkQ7U287MDtPTjs8Y29tcGF0PiA2MjA4Ozs7O047Ozs7OworMkYzRTtLQU5HWEkgUkFESUNBTCBET09SO1NvOzA7T047PGNvbXBhdD4gNjIzNjs7OztOOzs7OzsKKzJGM0Y7S0FOR1hJIFJBRElDQUwgSEFORDtTbzswO09OOzxjb21wYXQ+IDYyNEI7Ozs7Tjs7Ozs7CisyRjQwO0tBTkdYSSBSQURJQ0FMIEJSQU5DSDtTbzswO09OOzxjb21wYXQ+IDY1MkY7Ozs7Tjs7Ozs7CisyRjQxO0tBTkdYSSBSQURJQ0FMIFJBUDtTbzswO09OOzxjb21wYXQ+IDY1MzQ7Ozs7Tjs7Ozs7CisyRjQyO0tBTkdYSSBSQURJQ0FMIFNDUklQVDtTbzswO09OOzxjb21wYXQ+IDY1ODc7Ozs7Tjs7Ozs7CisyRjQzO0tBTkdYSSBSQURJQ0FMIERJUFBFUjtTbzswO09OOzxjb21wYXQ+IDY1OTc7Ozs7Tjs7Ozs7CisyRjQ0O0tBTkdYSSBSQURJQ0FMIEFYRTtTbzswO09OOzxjb21wYXQ+IDY1QTQ7Ozs7Tjs7Ozs7CisyRjQ1O0tBTkdYSSBSQURJQ0FMIFNRVUFSRTtTbzswO09OOzxjb21wYXQ+IDY1Qjk7Ozs7Tjs7Ozs7CisyRjQ2O0tBTkdYSSBSQURJQ0FMIE5PVDtTbzswO09OOzxjb21wYXQ+IDY1RTA7Ozs7Tjs7Ozs7CisyRjQ3O0tBTkdYSSBSQURJQ0FMIFNVTjtTbzswO09OOzxjb21wYXQ+IDY1RTU7Ozs7Tjs7Ozs7CisyRjQ4O0tBTkdYSSBSQURJQ0FMIFNBWTtTbzswO09OOzxjb21wYXQ+IDY2RjA7Ozs7Tjs7Ozs7CisyRjQ5O0tBTkdYSSBSQURJQ0FMIE1PT047U287MDtPTjs8Y29tcGF0PiA2NzA4Ozs7O047Ozs7OworMkY0QTtLQU5HWEkgUkFESUNBTCBUUkVFO1NvOzA7T047PGNvbXBhdD4gNjcyODs7OztOOzs7OzsKKzJGNEI7S0FOR1hJIFJBRElDQUwgTEFDSztTbzswO09OOzxjb21wYXQ+IDZCMjA7Ozs7Tjs7Ozs7CisyRjRDO0tBTkdYSSBSQURJQ0FMIFNUT1A7U287MDtPTjs8Y29tcGF0PiA2QjYyOzs7O047Ozs7OworMkY0RDtLQU5HWEkgUkFESUNBTCBERUFUSDtTbzswO09OOzxjb21wYXQ+IDZCNzk7Ozs7Tjs7Ozs7CisyRjRFO0tBTkdYSSBSQURJQ0FMIFdFQVBPTjtTbzswO09OOzxjb21wYXQ+IDZCQjM7Ozs7Tjs7Ozs7CisyRjRGO0tBTkdYSSBSQURJQ0FMIERPIE5PVDtTbzswO09OOzxjb21wYXQ+IDZCQ0I7Ozs7Tjs7Ozs7CisyRjUwO0tBTkdYSSBSQURJQ0FMIENPTVBBUkU7U287MDtPTjs8Y29tcGF0PiA2QkQ0Ozs7O047Ozs7OworMkY1MTtLQU5HWEkgUkFESUNBTCBGVVI7U287MDtPTjs8Y29tcGF0PiA2QkRCOzs7O047Ozs7OworMkY1MjtLQU5HWEkgUkFESUNBTCBDTEFOO1NvOzA7T047PGNvbXBhdD4gNkMwRjs7OztOOzs7OzsKKzJGNTM7S0FOR1hJIFJBRElDQUwgU1RFQU07U287MDtPTjs8Y29tcGF0PiA2QzE0Ozs7O047Ozs7OworMkY1NDtLQU5HWEkgUkFESUNBTCBXQVRFUjtTbzswO09OOzxjb21wYXQ+IDZDMzQ7Ozs7Tjs7Ozs7CisyRjU1O0tBTkdYSSBSQURJQ0FMIEZJUkU7U287MDtPTjs8Y29tcGF0PiA3MDZCOzs7O047Ozs7OworMkY1NjtLQU5HWEkgUkFESUNBTCBDTEFXO1NvOzA7T047PGNvbXBhdD4gNzIyQTs7OztOOzs7OzsKKzJGNTc7S0FOR1hJIFJBRElDQUwgRkFUSEVSO1NvOzA7T047PGNvbXBhdD4gNzIzNjs7OztOOzs7OzsKKzJGNTg7S0FOR1hJIFJBRElDQUwgRE9VQkxFIFg7U287MDtPTjs8Y29tcGF0PiA3MjNCOzs7O047Ozs7OworMkY1OTtLQU5HWEkgUkFESUNBTCBIQUxGIFRSRUUgVFJVTks7U287MDtPTjs8Y29tcGF0PiA3MjNGOzs7O047Ozs7OworMkY1QTtLQU5HWEkgUkFESUNBTCBTTElDRTtTbzswO09OOzxjb21wYXQ+IDcyNDc7Ozs7Tjs7Ozs7CisyRjVCO0tBTkdYSSBSQURJQ0FMIEZBTkc7U287MDtPTjs8Y29tcGF0PiA3MjU5Ozs7O047Ozs7OworMkY1QztLQU5HWEkgUkFESUNBTCBDT1c7U287MDtPTjs8Y29tcGF0PiA3MjVCOzs7O047Ozs7OworMkY1RDtLQU5HWEkgUkFESUNBTCBET0c7U287MDtPTjs8Y29tcGF0PiA3MkFDOzs7O047Ozs7OworMkY1RTtLQU5HWEkgUkFESUNBTCBQUk9GT1VORDtTbzswO09OOzxjb21wYXQ+IDczODQ7Ozs7Tjs7Ozs7CisyRjVGO0tBTkdYSSBSQURJQ0FMIEpBREU7U287MDtPTjs8Y29tcGF0PiA3Mzg5Ozs7O047Ozs7OworMkY2MDtLQU5HWEkgUkFESUNBTCBNRUxPTjtTbzswO09OOzxjb21wYXQ+IDc0REM7Ozs7Tjs7Ozs7CisyRjYxO0tBTkdYSSBSQURJQ0FMIFRJTEU7U287MDtPTjs8Y29tcGF0PiA3NEU2Ozs7O047Ozs7OworMkY2MjtLQU5HWEkgUkFESUNBTCBTV0VFVDtTbzswO09OOzxjb21wYXQ+IDc1MTg7Ozs7Tjs7Ozs7CisyRjYzO0tBTkdYSSBSQURJQ0FMIExJRkU7U287MDtPTjs8Y29tcGF0PiA3NTFGOzs7O047Ozs7OworMkY2NDtLQU5HWEkgUkFESUNBTCBVU0U7U287MDtPTjs8Y29tcGF0PiA3NTI4Ozs7O047Ozs7OworMkY2NTtLQU5HWEkgUkFESUNBTCBGSUVMRDtTbzswO09OOzxjb21wYXQ+IDc1MzA7Ozs7Tjs7Ozs7CisyRjY2O0tBTkdYSSBSQURJQ0FMIEJPTFQgT0YgQ0xPVEg7U287MDtPTjs8Y29tcGF0PiA3NThCOzs7O047Ozs7OworMkY2NztLQU5HWEkgUkFESUNBTCBTSUNLTkVTUztTbzswO09OOzxjb21wYXQ+IDc1OTI7Ozs7Tjs7Ozs7CisyRjY4O0tBTkdYSSBSQURJQ0FMIERPVFRFRCBURU5UO1NvOzA7T047PGNvbXBhdD4gNzY3Njs7OztOOzs7OzsKKzJGNjk7S0FOR1hJIFJBRElDQUwgV0hJVEU7U287MDtPTjs8Y29tcGF0PiA3NjdEOzs7O047Ozs7OworMkY2QTtLQU5HWEkgUkFESUNBTCBTS0lOO1NvOzA7T047PGNvbXBhdD4gNzZBRTs7OztOOzs7OzsKKzJGNkI7S0FOR1hJIFJBRElDQUwgRElTSDtTbzswO09OOzxjb21wYXQ+IDc2QkY7Ozs7Tjs7Ozs7CisyRjZDO0tBTkdYSSBSQURJQ0FMIEVZRTtTbzswO09OOzxjb21wYXQ+IDc2RUU7Ozs7Tjs7Ozs7CisyRjZEO0tBTkdYSSBSQURJQ0FMIFNQRUFSO1NvOzA7T047PGNvbXBhdD4gNzdEQjs7OztOOzs7OzsKKzJGNkU7S0FOR1hJIFJBRElDQUwgQVJST1c7U287MDtPTjs8Y29tcGF0PiA3N0UyOzs7O047Ozs7OworMkY2RjtLQU5HWEkgUkFESUNBTCBTVE9ORTtTbzswO09OOzxjb21wYXQ+IDc3RjM7Ozs7Tjs7Ozs7CisyRjcwO0tBTkdYSSBSQURJQ0FMIFNQSVJJVDtTbzswO09OOzxjb21wYXQ+IDc5M0E7Ozs7Tjs7Ozs7CisyRjcxO0tBTkdYSSBSQURJQ0FMIFRSQUNLO1NvOzA7T047PGNvbXBhdD4gNzlCODs7OztOOzs7OzsKKzJGNzI7S0FOR1hJIFJBRElDQUwgR1JBSU47U287MDtPTjs8Y29tcGF0PiA3OUJFOzs7O047Ozs7OworMkY3MztLQU5HWEkgUkFESUNBTCBDQVZFO1NvOzA7T047PGNvbXBhdD4gN0E3NDs7OztOOzs7OzsKKzJGNzQ7S0FOR1hJIFJBRElDQUwgU1RBTkQ7U287MDtPTjs8Y29tcGF0PiA3QUNCOzs7O047Ozs7OworMkY3NTtLQU5HWEkgUkFESUNBTCBCQU1CT087U287MDtPTjs8Y29tcGF0PiA3QUY5Ozs7O047Ozs7OworMkY3NjtLQU5HWEkgUkFESUNBTCBSSUNFO1NvOzA7T047PGNvbXBhdD4gN0M3Mzs7OztOOzs7OzsKKzJGNzc7S0FOR1hJIFJBRElDQUwgU0lMSztTbzswO09OOzxjb21wYXQ+IDdDRjg7Ozs7Tjs7Ozs7CisyRjc4O0tBTkdYSSBSQURJQ0FMIEpBUjtTbzswO09OOzxjb21wYXQ+IDdGMzY7Ozs7Tjs7Ozs7CisyRjc5O0tBTkdYSSBSQURJQ0FMIE5FVDtTbzswO09OOzxjb21wYXQ+IDdGNTE7Ozs7Tjs7Ozs7CisyRjdBO0tBTkdYSSBSQURJQ0FMIFNIRUVQO1NvOzA7T047PGNvbXBhdD4gN0Y4QTs7OztOOzs7OzsKKzJGN0I7S0FOR1hJIFJBRElDQUwgRkVBVEhFUjtTbzswO09OOzxjb21wYXQ+IDdGQkQ7Ozs7Tjs7Ozs7CisyRjdDO0tBTkdYSSBSQURJQ0FMIE9MRDtTbzswO09OOzxjb21wYXQ+IDgwMDE7Ozs7Tjs7Ozs7CisyRjdEO0tBTkdYSSBSQURJQ0FMIEFORDtTbzswO09OOzxjb21wYXQ+IDgwMEM7Ozs7Tjs7Ozs7CisyRjdFO0tBTkdYSSBSQURJQ0FMIFBMT1c7U287MDtPTjs8Y29tcGF0PiA4MDEyOzs7O047Ozs7OworMkY3RjtLQU5HWEkgUkFESUNBTCBFQVI7U287MDtPTjs8Y29tcGF0PiA4MDMzOzs7O047Ozs7OworMkY4MDtLQU5HWEkgUkFESUNBTCBCUlVTSDtTbzswO09OOzxjb21wYXQ+IDgwN0Y7Ozs7Tjs7Ozs7CisyRjgxO0tBTkdYSSBSQURJQ0FMIE1FQVQ7U287MDtPTjs8Y29tcGF0PiA4MDg5Ozs7O047Ozs7OworMkY4MjtLQU5HWEkgUkFESUNBTCBNSU5JU1RFUjtTbzswO09OOzxjb21wYXQ+IDgxRTM7Ozs7Tjs7Ozs7CisyRjgzO0tBTkdYSSBSQURJQ0FMIFNFTEY7U287MDtPTjs8Y29tcGF0PiA4MUVBOzs7O047Ozs7OworMkY4NDtLQU5HWEkgUkFESUNBTCBBUlJJVkU7U287MDtPTjs8Y29tcGF0PiA4MUYzOzs7O047Ozs7OworMkY4NTtLQU5HWEkgUkFESUNBTCBNT1JUQVI7U287MDtPTjs8Y29tcGF0PiA4MUZDOzs7O047Ozs7OworMkY4NjtLQU5HWEkgUkFESUNBTCBUT05HVUU7U287MDtPTjs8Y29tcGF0PiA4MjBDOzs7O047Ozs7OworMkY4NztLQU5HWEkgUkFESUNBTCBPUFBPU0U7U287MDtPTjs8Y29tcGF0PiA4MjFCOzs7O047Ozs7OworMkY4ODtLQU5HWEkgUkFESUNBTCBCT0FUO1NvOzA7T047PGNvbXBhdD4gODIxRjs7OztOOzs7OzsKKzJGODk7S0FOR1hJIFJBRElDQUwgU1RPUFBJTkc7U287MDtPTjs8Y29tcGF0PiA4MjZFOzs7O047Ozs7OworMkY4QTtLQU5HWEkgUkFESUNBTCBDT0xPUjtTbzswO09OOzxjb21wYXQ+IDgyNzI7Ozs7Tjs7Ozs7CisyRjhCO0tBTkdYSSBSQURJQ0FMIEdSQVNTO1NvOzA7T047PGNvbXBhdD4gODI3ODs7OztOOzs7OzsKKzJGOEM7S0FOR1hJIFJBRElDQUwgVElHRVI7U287MDtPTjs8Y29tcGF0PiA4NjREOzs7O047Ozs7OworMkY4RDtLQU5HWEkgUkFESUNBTCBJTlNFQ1Q7U287MDtPTjs8Y29tcGF0PiA4NjZCOzs7O047Ozs7OworMkY4RTtLQU5HWEkgUkFESUNBTCBCTE9PRDtTbzswO09OOzxjb21wYXQ+IDg4NDA7Ozs7Tjs7Ozs7CisyRjhGO0tBTkdYSSBSQURJQ0FMIFdBTEsgRU5DTE9TVVJFO1NvOzA7T047PGNvbXBhdD4gODg0Qzs7OztOOzs7OzsKKzJGOTA7S0FOR1hJIFJBRElDQUwgQ0xPVEhFUztTbzswO09OOzxjb21wYXQ+IDg4NjM7Ozs7Tjs7Ozs7CisyRjkxO0tBTkdYSSBSQURJQ0FMIFdFU1Q7U287MDtPTjs8Y29tcGF0PiA4OTdFOzs7O047Ozs7OworMkY5MjtLQU5HWEkgUkFESUNBTCBTRUU7U287MDtPTjs8Y29tcGF0PiA4OThCOzs7O047Ozs7OworMkY5MztLQU5HWEkgUkFESUNBTCBIT1JOO1NvOzA7T047PGNvbXBhdD4gODlEMjs7OztOOzs7OzsKKzJGOTQ7S0FOR1hJIFJBRElDQUwgU1BFRUNIO1NvOzA7T047PGNvbXBhdD4gOEEwMDs7OztOOzs7OzsKKzJGOTU7S0FOR1hJIFJBRElDQUwgVkFMTEVZO1NvOzA7T047PGNvbXBhdD4gOEMzNzs7OztOOzs7OzsKKzJGOTY7S0FOR1hJIFJBRElDQUwgQkVBTjtTbzswO09OOzxjb21wYXQ+IDhDNDY7Ozs7Tjs7Ozs7CisyRjk3O0tBTkdYSSBSQURJQ0FMIFBJRztTbzswO09OOzxjb21wYXQ+IDhDNTU7Ozs7Tjs7Ozs7CisyRjk4O0tBTkdYSSBSQURJQ0FMIEJBREdFUjtTbzswO09OOzxjb21wYXQ+IDhDNzg7Ozs7Tjs7Ozs7CisyRjk5O0tBTkdYSSBSQURJQ0FMIFNIRUxMO1NvOzA7T047PGNvbXBhdD4gOEM5RDs7OztOOzs7OzsKKzJGOUE7S0FOR1hJIFJBRElDQUwgUkVEO1NvOzA7T047PGNvbXBhdD4gOEQ2NDs7OztOOzs7OzsKKzJGOUI7S0FOR1hJIFJBRElDQUwgUlVOO1NvOzA7T047PGNvbXBhdD4gOEQ3MDs7OztOOzs7OzsKKzJGOUM7S0FOR1hJIFJBRElDQUwgRk9PVDtTbzswO09OOzxjb21wYXQ+IDhEQjM7Ozs7Tjs7Ozs7CisyRjlEO0tBTkdYSSBSQURJQ0FMIEJPRFk7U287MDtPTjs8Y29tcGF0PiA4RUFCOzs7O047Ozs7OworMkY5RTtLQU5HWEkgUkFESUNBTCBDQVJUO1NvOzA7T047PGNvbXBhdD4gOEVDQTs7OztOOzs7OzsKKzJGOUY7S0FOR1hJIFJBRElDQUwgQklUVEVSO1NvOzA7T047PGNvbXBhdD4gOEY5Qjs7OztOOzs7OzsKKzJGQTA7S0FOR1hJIFJBRElDQUwgTU9STklORztTbzswO09OOzxjb21wYXQ+IDhGQjA7Ozs7Tjs7Ozs7CisyRkExO0tBTkdYSSBSQURJQ0FMIFdBTEs7U287MDtPTjs8Y29tcGF0PiA4RkI1Ozs7O047Ozs7OworMkZBMjtLQU5HWEkgUkFESUNBTCBDSVRZO1NvOzA7T047PGNvbXBhdD4gOTA5MTs7OztOOzs7OzsKKzJGQTM7S0FOR1hJIFJBRElDQUwgV0lORTtTbzswO09OOzxjb21wYXQ+IDkxNDk7Ozs7Tjs7Ozs7CisyRkE0O0tBTkdYSSBSQURJQ0FMIERJU1RJTkdVSVNIO1NvOzA7T047PGNvbXBhdD4gOTFDNjs7OztOOzs7OzsKKzJGQTU7S0FOR1hJIFJBRElDQUwgVklMTEFHRTtTbzswO09OOzxjb21wYXQ+IDkxQ0M7Ozs7Tjs7Ozs7CisyRkE2O0tBTkdYSSBSQURJQ0FMIEdPTEQ7U287MDtPTjs8Y29tcGF0PiA5MUQxOzs7O047Ozs7OworMkZBNztLQU5HWEkgUkFESUNBTCBMT05HO1NvOzA7T047PGNvbXBhdD4gOTU3Nzs7OztOOzs7OzsKKzJGQTg7S0FOR1hJIFJBRElDQUwgR0FURTtTbzswO09OOzxjb21wYXQ+IDk1ODA7Ozs7Tjs7Ozs7CisyRkE5O0tBTkdYSSBSQURJQ0FMIE1PVU5EO1NvOzA7T047PGNvbXBhdD4gOTYxQzs7OztOOzs7OzsKKzJGQUE7S0FOR1hJIFJBRElDQUwgU0xBVkU7U287MDtPTjs8Y29tcGF0PiA5NkI2Ozs7O047Ozs7OworMkZBQjtLQU5HWEkgUkFESUNBTCBTSE9SVCBUQUlMRUQgQklSRDtTbzswO09OOzxjb21wYXQ+IDk2Qjk7Ozs7Tjs7Ozs7CisyRkFDO0tBTkdYSSBSQURJQ0FMIFJBSU47U287MDtPTjs8Y29tcGF0PiA5NkU4Ozs7O047Ozs7OworMkZBRDtLQU5HWEkgUkFESUNBTCBCTFVFO1NvOzA7T047PGNvbXBhdD4gOTc1MTs7OztOOzs7OzsKKzJGQUU7S0FOR1hJIFJBRElDQUwgV1JPTkc7U287MDtPTjs8Y29tcGF0PiA5NzVFOzs7O047Ozs7OworMkZBRjtLQU5HWEkgUkFESUNBTCBGQUNFO1NvOzA7T047PGNvbXBhdD4gOTc2Mjs7OztOOzs7OzsKKzJGQjA7S0FOR1hJIFJBRElDQUwgTEVBVEhFUjtTbzswO09OOzxjb21wYXQ+IDk3Njk7Ozs7Tjs7Ozs7CisyRkIxO0tBTkdYSSBSQURJQ0FMIFRBTk5FRCBMRUFUSEVSO1NvOzA7T047PGNvbXBhdD4gOTdDQjs7OztOOzs7OzsKKzJGQjI7S0FOR1hJIFJBRElDQUwgTEVFSztTbzswO09OOzxjb21wYXQ+IDk3RUQ7Ozs7Tjs7Ozs7CisyRkIzO0tBTkdYSSBSQURJQ0FMIFNPVU5EO1NvOzA7T047PGNvbXBhdD4gOTdGMzs7OztOOzs7OzsKKzJGQjQ7S0FOR1hJIFJBRElDQUwgTEVBRjtTbzswO09OOzxjb21wYXQ+IDk4MDE7Ozs7Tjs7Ozs7CisyRkI1O0tBTkdYSSBSQURJQ0FMIFdJTkQ7U287MDtPTjs8Y29tcGF0PiA5OEE4Ozs7O047Ozs7OworMkZCNjtLQU5HWEkgUkFESUNBTCBGTFk7U287MDtPTjs8Y29tcGF0PiA5OERCOzs7O047Ozs7OworMkZCNztLQU5HWEkgUkFESUNBTCBFQVQ7U287MDtPTjs8Y29tcGF0PiA5OERGOzs7O047Ozs7OworMkZCODtLQU5HWEkgUkFESUNBTCBIRUFEO1NvOzA7T047PGNvbXBhdD4gOTk5Njs7OztOOzs7OzsKKzJGQjk7S0FOR1hJIFJBRElDQUwgRlJBR1JBTlQ7U287MDtPTjs8Y29tcGF0PiA5OTk5Ozs7O047Ozs7OworMkZCQTtLQU5HWEkgUkFESUNBTCBIT1JTRTtTbzswO09OOzxjb21wYXQ+IDk5QUM7Ozs7Tjs7Ozs7CisyRkJCO0tBTkdYSSBSQURJQ0FMIEJPTkU7U287MDtPTjs8Y29tcGF0PiA5QUE4Ozs7O047Ozs7OworMkZCQztLQU5HWEkgUkFESUNBTCBUQUxMO1NvOzA7T047PGNvbXBhdD4gOUFEODs7OztOOzs7OzsKKzJGQkQ7S0FOR1hJIFJBRElDQUwgSEFJUjtTbzswO09OOzxjb21wYXQ+IDlBREY7Ozs7Tjs7Ozs7CisyRkJFO0tBTkdYSSBSQURJQ0FMIEZJR0hUO1NvOzA7T047PGNvbXBhdD4gOUIyNTs7OztOOzs7OzsKKzJGQkY7S0FOR1hJIFJBRElDQUwgU0FDUklGSUNJQUwgV0lORTtTbzswO09OOzxjb21wYXQ+IDlCMkY7Ozs7Tjs7Ozs7CisyRkMwO0tBTkdYSSBSQURJQ0FMIENBVUxEUk9OO1NvOzA7T047PGNvbXBhdD4gOUIzMjs7OztOOzs7OzsKKzJGQzE7S0FOR1hJIFJBRElDQUwgR0hPU1Q7U287MDtPTjs8Y29tcGF0PiA5QjNDOzs7O047Ozs7OworMkZDMjtLQU5HWEkgUkFESUNBTCBGSVNIO1NvOzA7T047PGNvbXBhdD4gOUI1QTs7OztOOzs7OzsKKzJGQzM7S0FOR1hJIFJBRElDQUwgQklSRDtTbzswO09OOzxjb21wYXQ+IDlDRTU7Ozs7Tjs7Ozs7CisyRkM0O0tBTkdYSSBSQURJQ0FMIFNBTFQ7U287MDtPTjs8Y29tcGF0PiA5RTc1Ozs7O047Ozs7OworMkZDNTtLQU5HWEkgUkFESUNBTCBERUVSO1NvOzA7T047PGNvbXBhdD4gOUU3Rjs7OztOOzs7OzsKKzJGQzY7S0FOR1hJIFJBRElDQUwgV0hFQVQ7U287MDtPTjs8Y29tcGF0PiA5RUE1Ozs7O047Ozs7OworMkZDNztLQU5HWEkgUkFESUNBTCBIRU1QO1NvOzA7T047PGNvbXBhdD4gOUVCQjs7OztOOzs7OzsKKzJGQzg7S0FOR1hJIFJBRElDQUwgWUVMTE9XO1NvOzA7T047PGNvbXBhdD4gOUVDMzs7OztOOzs7OzsKKzJGQzk7S0FOR1hJIFJBRElDQUwgTUlMTEVUO1NvOzA7T047PGNvbXBhdD4gOUVDRDs7OztOOzs7OzsKKzJGQ0E7S0FOR1hJIFJBRElDQUwgQkxBQ0s7U287MDtPTjs8Y29tcGF0PiA5RUQxOzs7O047Ozs7OworMkZDQjtLQU5HWEkgUkFESUNBTCBFTUJST0lERVJZO1NvOzA7T047PGNvbXBhdD4gOUVGOTs7OztOOzs7OzsKKzJGQ0M7S0FOR1hJIFJBRElDQUwgRlJPRztTbzswO09OOzxjb21wYXQ+IDlFRkQ7Ozs7Tjs7Ozs7CisyRkNEO0tBTkdYSSBSQURJQ0FMIFRSSVBPRDtTbzswO09OOzxjb21wYXQ+IDlGMEU7Ozs7Tjs7Ozs7CisyRkNFO0tBTkdYSSBSQURJQ0FMIERSVU07U287MDtPTjs8Y29tcGF0PiA5RjEzOzs7O047Ozs7OworMkZDRjtLQU5HWEkgUkFESUNBTCBSQVQ7U287MDtPTjs8Y29tcGF0PiA5RjIwOzs7O047Ozs7OworMkZEMDtLQU5HWEkgUkFESUNBTCBOT1NFO1NvOzA7T047PGNvbXBhdD4gOUYzQjs7OztOOzs7OzsKKzJGRDE7S0FOR1hJIFJBRElDQUwgRVZFTjtTbzswO09OOzxjb21wYXQ+IDlGNEE7Ozs7Tjs7Ozs7CisyRkQyO0tBTkdYSSBSQURJQ0FMIFRPT1RIO1NvOzA7T047PGNvbXBhdD4gOUY1Mjs7OztOOzs7OzsKKzJGRDM7S0FOR1hJIFJBRElDQUwgRFJBR09OO1NvOzA7T047PGNvbXBhdD4gOUY4RDs7OztOOzs7OzsKKzJGRDQ7S0FOR1hJIFJBRElDQUwgVFVSVExFO1NvOzA7T047PGNvbXBhdD4gOUY5Qzs7OztOOzs7OzsKKzJGRDU7S0FOR1hJIFJBRElDQUwgRkxVVEU7U287MDtPTjs8Y29tcGF0PiA5RkEwOzs7O047Ozs7OworMkZGMDtJREVPR1JBUEhJQyBERVNDUklQVElPTiBDSEFSQUNURVIgTEVGVCBUTyBSSUdIVDtTbzswO09OOzs7OztOOzs7OzsKKzJGRjE7SURFT0dSQVBISUMgREVTQ1JJUFRJT04gQ0hBUkFDVEVSIEFCT1ZFIFRPIEJFTE9XO1NvOzA7T047Ozs7O047Ozs7OworMkZGMjtJREVPR1JBUEhJQyBERVNDUklQVElPTiBDSEFSQUNURVIgTEVGVCBUTyBNSURETEUgQU5EIFJJR0hUO1NvOzA7T047Ozs7O047Ozs7OworMkZGMztJREVPR1JBUEhJQyBERVNDUklQVElPTiBDSEFSQUNURVIgQUJPVkUgVE8gTUlERExFIEFORCBCRUxPVztTbzswO09OOzs7OztOOzs7OzsKKzJGRjQ7SURFT0dSQVBISUMgREVTQ1JJUFRJT04gQ0hBUkFDVEVSIEZVTEwgU1VSUk9VTkQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRkY1O0lERU9HUkFQSElDIERFU0NSSVBUSU9OIENIQVJBQ1RFUiBTVVJST1VORCBGUk9NIEFCT1ZFO1NvOzA7T047Ozs7O047Ozs7OworMkZGNjtJREVPR1JBUEhJQyBERVNDUklQVElPTiBDSEFSQUNURVIgU1VSUk9VTkQgRlJPTSBCRUxPVztTbzswO09OOzs7OztOOzs7OzsKKzJGRjc7SURFT0dSQVBISUMgREVTQ1JJUFRJT04gQ0hBUkFDVEVSIFNVUlJPVU5EIEZST00gTEVGVDtTbzswO09OOzs7OztOOzs7OzsKKzJGRjg7SURFT0dSQVBISUMgREVTQ1JJUFRJT04gQ0hBUkFDVEVSIFNVUlJPVU5EIEZST00gVVBQRVIgTEVGVDtTbzswO09OOzs7OztOOzs7OzsKKzJGRjk7SURFT0dSQVBISUMgREVTQ1JJUFRJT04gQ0hBUkFDVEVSIFNVUlJPVU5EIEZST00gVVBQRVIgUklHSFQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRkZBO0lERU9HUkFQSElDIERFU0NSSVBUSU9OIENIQVJBQ1RFUiBTVVJST1VORCBGUk9NIExPV0VSIExFRlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRkZCO0lERU9HUkFQSElDIERFU0NSSVBUSU9OIENIQVJBQ1RFUiBPVkVSTEFJRDtTbzswO09OOzs7OztOOzs7OzsKKzMwMDA7SURFT0dSQVBISUMgU1BBQ0U7WnM7MDtXUzs8d2lkZT4gMDAyMDs7OztOOzs7OzsKKzMwMDE7SURFT0dSQVBISUMgQ09NTUE7UG87MDtPTjs7Ozs7Tjs7Ozs7CiszMDAyO0lERU9HUkFQSElDIEZVTEwgU1RPUDtQbzswO09OOzs7OztOO0lERU9HUkFQSElDIFBFUklPRDs7OzsKKzMwMDM7RElUVE8gTUFSSztQbzswO09OOzs7OztOOzs7OzsKKzMwMDQ7SkFQQU5FU0UgSU5EVVNUUklBTCBTVEFOREFSRCBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMDA1O0lERU9HUkFQSElDIElURVJBVElPTiBNQVJLO0xtOzA7TDs7Ozs7Tjs7Ozs7CiszMDA2O0lERU9HUkFQSElDIENMT1NJTkcgTUFSSztMbzswO0w7Ozs7O047Ozs7OworMzAwNztJREVPR1JBUEhJQyBOVU1CRVIgWkVSTztObDswO0w7Ozs7MDtOOzs7OzsKKzMwMDg7TEVGVCBBTkdMRSBCUkFDS0VUO1BzOzA7T047Ozs7O1k7T1BFTklORyBBTkdMRSBCUkFDS0VUOzs7OworMzAwOTtSSUdIVCBBTkdMRSBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Q0xPU0lORyBBTkdMRSBCUkFDS0VUOzs7OworMzAwQTtMRUZUIERPVUJMRSBBTkdMRSBCUkFDS0VUO1BzOzA7T047Ozs7O1k7T1BFTklORyBET1VCTEUgQU5HTEUgQlJBQ0tFVDs7OzsKKzMwMEI7UklHSFQgRE9VQkxFIEFOR0xFIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTtDTE9TSU5HIERPVUJMRSBBTkdMRSBCUkFDS0VUOzs7OworMzAwQztMRUZUIENPUk5FUiBCUkFDS0VUO1BzOzA7T047Ozs7O1k7T1BFTklORyBDT1JORVIgQlJBQ0tFVDs7OzsKKzMwMEQ7UklHSFQgQ09STkVSIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTtDTE9TSU5HIENPUk5FUiBCUkFDS0VUOzs7OworMzAwRTtMRUZUIFdISVRFIENPUk5FUiBCUkFDS0VUO1BzOzA7T047Ozs7O1k7T1BFTklORyBXSElURSBDT1JORVIgQlJBQ0tFVDs7OzsKKzMwMEY7UklHSFQgV0hJVEUgQ09STkVSIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTtDTE9TSU5HIFdISVRFIENPUk5FUiBCUkFDS0VUOzs7OworMzAxMDtMRUZUIEJMQUNLIExFTlRJQ1VMQVIgQlJBQ0tFVDtQczswO09OOzs7OztZO09QRU5JTkcgQkxBQ0sgTEVOVElDVUxBUiBCUkFDS0VUOzs7OworMzAxMTtSSUdIVCBCTEFDSyBMRU5USUNVTEFSIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTtDTE9TSU5HIEJMQUNLIExFTlRJQ1VMQVIgQlJBQ0tFVDs7OzsKKzMwMTI7UE9TVEFMIE1BUks7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMDEzO0dFVEEgTUFSSztTbzswO09OOzs7OztOOzs7OzsKKzMwMTQ7TEVGVCBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUO1BzOzA7T047Ozs7O1k7T1BFTklORyBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUOzs7OworMzAxNTtSSUdIVCBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Q0xPU0lORyBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUOzs7OworMzAxNjtMRUZUIFdISVRFIExFTlRJQ1VMQVIgQlJBQ0tFVDtQczswO09OOzs7OztZO09QRU5JTkcgV0hJVEUgTEVOVElDVUxBUiBCUkFDS0VUOzs7OworMzAxNztSSUdIVCBXSElURSBMRU5USUNVTEFSIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTtDTE9TSU5HIFdISVRFIExFTlRJQ1VMQVIgQlJBQ0tFVDs7OzsKKzMwMTg7TEVGVCBXSElURSBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUO1BzOzA7T047Ozs7O1k7T1BFTklORyBXSElURSBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUOzs7OworMzAxOTtSSUdIVCBXSElURSBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Q0xPU0lORyBXSElURSBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUOzs7OworMzAxQTtMRUZUIFdISVRFIFNRVUFSRSBCUkFDS0VUO1BzOzA7T047Ozs7O1k7T1BFTklORyBXSElURSBTUVVBUkUgQlJBQ0tFVDs7OzsKKzMwMUI7UklHSFQgV0hJVEUgU1FVQVJFIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTtDTE9TSU5HIFdISVRFIFNRVUFSRSBCUkFDS0VUOzs7OworMzAxQztXQVZFIERBU0g7UGQ7MDtPTjs7Ozs7Tjs7Ozs7CiszMDFEO1JFVkVSU0VEIERPVUJMRSBQUklNRSBRVU9UQVRJT04gTUFSSztQczswO09OOzs7OztOOzs7OzsKKzMwMUU7RE9VQkxFIFBSSU1FIFFVT1RBVElPTiBNQVJLO1BlOzA7T047Ozs7O047Ozs7OworMzAxRjtMT1cgRE9VQkxFIFBSSU1FIFFVT1RBVElPTiBNQVJLO1BlOzA7T047Ozs7O047Ozs7OworMzAyMDtQT1NUQUwgTUFSSyBGQUNFO1NvOzA7T047Ozs7O047Ozs7OworMzAyMTtIQU5HWkhPVSBOVU1FUkFMIE9ORTtObDswO0w7Ozs7MTtOOzs7OzsKKzMwMjI7SEFOR1pIT1UgTlVNRVJBTCBUV087Tmw7MDtMOzs7OzI7Tjs7Ozs7CiszMDIzO0hBTkdaSE9VIE5VTUVSQUwgVEhSRUU7Tmw7MDtMOzs7OzM7Tjs7Ozs7CiszMDI0O0hBTkdaSE9VIE5VTUVSQUwgRk9VUjtObDswO0w7Ozs7NDtOOzs7OzsKKzMwMjU7SEFOR1pIT1UgTlVNRVJBTCBGSVZFO05sOzA7TDs7Ozs1O047Ozs7OworMzAyNjtIQU5HWkhPVSBOVU1FUkFMIFNJWDtObDswO0w7Ozs7NjtOOzs7OzsKKzMwMjc7SEFOR1pIT1UgTlVNRVJBTCBTRVZFTjtObDswO0w7Ozs7NztOOzs7OzsKKzMwMjg7SEFOR1pIT1UgTlVNRVJBTCBFSUdIVDtObDswO0w7Ozs7ODtOOzs7OzsKKzMwMjk7SEFOR1pIT1UgTlVNRVJBTCBOSU5FO05sOzA7TDs7Ozs5O047Ozs7OworMzAyQTtJREVPR1JBUEhJQyBMRVZFTCBUT05FIE1BUks7TW47MjE4O05TTTs7Ozs7Tjs7Ozs7CiszMDJCO0lERU9HUkFQSElDIFJJU0lORyBUT05FIE1BUks7TW47MjI4O05TTTs7Ozs7Tjs7Ozs7CiszMDJDO0lERU9HUkFQSElDIERFUEFSVElORyBUT05FIE1BUks7TW47MjMyO05TTTs7Ozs7Tjs7Ozs7CiszMDJEO0lERU9HUkFQSElDIEVOVEVSSU5HIFRPTkUgTUFSSztNbjsyMjI7TlNNOzs7OztOOzs7OzsKKzMwMkU7SEFOR1VMIFNJTkdMRSBET1QgVE9ORSBNQVJLO01uOzIyNDtOU007Ozs7O047Ozs7OworMzAyRjtIQU5HVUwgRE9VQkxFIERPVCBUT05FIE1BUks7TW47MjI0O05TTTs7Ozs7Tjs7Ozs7CiszMDMwO1dBVlkgREFTSDtQZDswO09OOzs7OztOOzs7OzsKKzMwMzE7VkVSVElDQUwgS0FOQSBSRVBFQVQgTUFSSztMbTswO0w7Ozs7O047Ozs7OworMzAzMjtWRVJUSUNBTCBLQU5BIFJFUEVBVCBXSVRIIFZPSUNFRCBTT1VORCBNQVJLO0xtOzA7TDs7Ozs7Tjs7Ozs7CiszMDMzO1ZFUlRJQ0FMIEtBTkEgUkVQRUFUIE1BUksgVVBQRVIgSEFMRjtMbTswO0w7Ozs7O047Ozs7OworMzAzNDtWRVJUSUNBTCBLQU5BIFJFUEVBVCBXSVRIIFZPSUNFRCBTT1VORCBNQVJLIFVQUEVSIEhBTEY7TG07MDtMOzs7OztOOzs7OzsKKzMwMzU7VkVSVElDQUwgS0FOQSBSRVBFQVQgTUFSSyBMT1dFUiBIQUxGO0xtOzA7TDs7Ozs7Tjs7Ozs7CiszMDM2O0NJUkNMRUQgUE9TVEFMIE1BUks7U287MDtPTjs8Y29tcGF0PiAzMDEyOzs7O047Ozs7OworMzAzNztJREVPR1JBUEhJQyBURUxFR1JBUEggTElORSBGRUVEIFNFUEFSQVRPUiBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMDM4O0hBTkdaSE9VIE5VTUVSQUwgVEVOO05sOzA7TDs8Y29tcGF0PiA1MzQxOzs7MTA7Tjs7Ozs7CiszMDM5O0hBTkdaSE9VIE5VTUVSQUwgVFdFTlRZO05sOzA7TDs8Y29tcGF0PiA1MzQ0Ozs7MjA7Tjs7Ozs7CiszMDNBO0hBTkdaSE9VIE5VTUVSQUwgVEhJUlRZO05sOzA7TDs8Y29tcGF0PiA1MzQ1Ozs7MzA7Tjs7Ozs7CiszMDNFO0lERU9HUkFQSElDIFZBUklBVElPTiBJTkRJQ0FUT1I7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMDNGO0lERU9HUkFQSElDIEhBTEYgRklMTCBTUEFDRTtTbzswO09OOzs7OztOOzs7OzsKKzMwNDE7SElSQUdBTkEgTEVUVEVSIFNNQUxMIEE7TG87MDtMOzs7OztOOzs7OzsKKzMwNDI7SElSQUdBTkEgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzMwNDM7SElSQUdBTkEgTEVUVEVSIFNNQUxMIEk7TG87MDtMOzs7OztOOzs7OzsKKzMwNDQ7SElSQUdBTkEgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzMwNDU7SElSQUdBTkEgTEVUVEVSIFNNQUxMIFU7TG87MDtMOzs7OztOOzs7OzsKKzMwNDY7SElSQUdBTkEgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzMwNDc7SElSQUdBTkEgTEVUVEVSIFNNQUxMIEU7TG87MDtMOzs7OztOOzs7OzsKKzMwNDg7SElSQUdBTkEgTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzMwNDk7SElSQUdBTkEgTEVUVEVSIFNNQUxMIE87TG87MDtMOzs7OztOOzs7OzsKKzMwNEE7SElSQUdBTkEgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzMwNEI7SElSQUdBTkEgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDRDO0hJUkFHQU5BIExFVFRFUiBHQTtMbzswO0w7MzA0QiAzMDk5Ozs7O047Ozs7OworMzA0RDtISVJBR0FOQSBMRVRURVIgS0k7TG87MDtMOzs7OztOOzs7OzsKKzMwNEU7SElSQUdBTkEgTEVUVEVSIEdJO0xvOzA7TDszMDREIDMwOTk7Ozs7Tjs7Ozs7CiszMDRGO0hJUkFHQU5BIExFVFRFUiBLVTtMbzswO0w7Ozs7O047Ozs7OworMzA1MDtISVJBR0FOQSBMRVRURVIgR1U7TG87MDtMOzMwNEYgMzA5OTs7OztOOzs7OzsKKzMwNTE7SElSQUdBTkEgTEVUVEVSIEtFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDUyO0hJUkFHQU5BIExFVFRFUiBHRTtMbzswO0w7MzA1MSAzMDk5Ozs7O047Ozs7OworMzA1MztISVJBR0FOQSBMRVRURVIgS087TG87MDtMOzs7OztOOzs7OzsKKzMwNTQ7SElSQUdBTkEgTEVUVEVSIEdPO0xvOzA7TDszMDUzIDMwOTk7Ozs7Tjs7Ozs7CiszMDU1O0hJUkFHQU5BIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMzA1NjtISVJBR0FOQSBMRVRURVIgWkE7TG87MDtMOzMwNTUgMzA5OTs7OztOOzs7OzsKKzMwNTc7SElSQUdBTkEgTEVUVEVSIFNJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDU4O0hJUkFHQU5BIExFVFRFUiBaSTtMbzswO0w7MzA1NyAzMDk5Ozs7O047Ozs7OworMzA1OTtISVJBR0FOQSBMRVRURVIgU1U7TG87MDtMOzs7OztOOzs7OzsKKzMwNUE7SElSQUdBTkEgTEVUVEVSIFpVO0xvOzA7TDszMDU5IDMwOTk7Ozs7Tjs7Ozs7CiszMDVCO0hJUkFHQU5BIExFVFRFUiBTRTtMbzswO0w7Ozs7O047Ozs7OworMzA1QztISVJBR0FOQSBMRVRURVIgWkU7TG87MDtMOzMwNUIgMzA5OTs7OztOOzs7OzsKKzMwNUQ7SElSQUdBTkEgTEVUVEVSIFNPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDVFO0hJUkFHQU5BIExFVFRFUiBaTztMbzswO0w7MzA1RCAzMDk5Ozs7O047Ozs7OworMzA1RjtISVJBR0FOQSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzMwNjA7SElSQUdBTkEgTEVUVEVSIERBO0xvOzA7TDszMDVGIDMwOTk7Ozs7Tjs7Ozs7CiszMDYxO0hJUkFHQU5BIExFVFRFUiBUSTtMbzswO0w7Ozs7O047Ozs7OworMzA2MjtISVJBR0FOQSBMRVRURVIgREk7TG87MDtMOzMwNjEgMzA5OTs7OztOOzs7OzsKKzMwNjM7SElSQUdBTkEgTEVUVEVSIFNNQUxMIFRVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDY0O0hJUkFHQU5BIExFVFRFUiBUVTtMbzswO0w7Ozs7O047Ozs7OworMzA2NTtISVJBR0FOQSBMRVRURVIgRFU7TG87MDtMOzMwNjQgMzA5OTs7OztOOzs7OzsKKzMwNjY7SElSQUdBTkEgTEVUVEVSIFRFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDY3O0hJUkFHQU5BIExFVFRFUiBERTtMbzswO0w7MzA2NiAzMDk5Ozs7O047Ozs7OworMzA2ODtISVJBR0FOQSBMRVRURVIgVE87TG87MDtMOzs7OztOOzs7OzsKKzMwNjk7SElSQUdBTkEgTEVUVEVSIERPO0xvOzA7TDszMDY4IDMwOTk7Ozs7Tjs7Ozs7CiszMDZBO0hJUkFHQU5BIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMzA2QjtISVJBR0FOQSBMRVRURVIgTkk7TG87MDtMOzs7OztOOzs7OzsKKzMwNkM7SElSQUdBTkEgTEVUVEVSIE5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDZEO0hJUkFHQU5BIExFVFRFUiBORTtMbzswO0w7Ozs7O047Ozs7OworMzA2RTtISVJBR0FOQSBMRVRURVIgTk87TG87MDtMOzs7OztOOzs7OzsKKzMwNkY7SElSQUdBTkEgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDcwO0hJUkFHQU5BIExFVFRFUiBCQTtMbzswO0w7MzA2RiAzMDk5Ozs7O047Ozs7OworMzA3MTtISVJBR0FOQSBMRVRURVIgUEE7TG87MDtMOzMwNkYgMzA5QTs7OztOOzs7OzsKKzMwNzI7SElSQUdBTkEgTEVUVEVSIEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDczO0hJUkFHQU5BIExFVFRFUiBCSTtMbzswO0w7MzA3MiAzMDk5Ozs7O047Ozs7OworMzA3NDtISVJBR0FOQSBMRVRURVIgUEk7TG87MDtMOzMwNzIgMzA5QTs7OztOOzs7OzsKKzMwNzU7SElSQUdBTkEgTEVUVEVSIEhVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDc2O0hJUkFHQU5BIExFVFRFUiBCVTtMbzswO0w7MzA3NSAzMDk5Ozs7O047Ozs7OworMzA3NztISVJBR0FOQSBMRVRURVIgUFU7TG87MDtMOzMwNzUgMzA5QTs7OztOOzs7OzsKKzMwNzg7SElSQUdBTkEgTEVUVEVSIEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDc5O0hJUkFHQU5BIExFVFRFUiBCRTtMbzswO0w7MzA3OCAzMDk5Ozs7O047Ozs7OworMzA3QTtISVJBR0FOQSBMRVRURVIgUEU7TG87MDtMOzMwNzggMzA5QTs7OztOOzs7OzsKKzMwN0I7SElSQUdBTkEgTEVUVEVSIEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDdDO0hJUkFHQU5BIExFVFRFUiBCTztMbzswO0w7MzA3QiAzMDk5Ozs7O047Ozs7OworMzA3RDtISVJBR0FOQSBMRVRURVIgUE87TG87MDtMOzMwN0IgMzA5QTs7OztOOzs7OzsKKzMwN0U7SElSQUdBTkEgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDdGO0hJUkFHQU5BIExFVFRFUiBNSTtMbzswO0w7Ozs7O047Ozs7OworMzA4MDtISVJBR0FOQSBMRVRURVIgTVU7TG87MDtMOzs7OztOOzs7OzsKKzMwODE7SElSQUdBTkEgTEVUVEVSIE1FO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDgyO0hJUkFHQU5BIExFVFRFUiBNTztMbzswO0w7Ozs7O047Ozs7OworMzA4MztISVJBR0FOQSBMRVRURVIgU01BTEwgWUE7TG87MDtMOzs7OztOOzs7OzsKKzMwODQ7SElSQUdBTkEgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDg1O0hJUkFHQU5BIExFVFRFUiBTTUFMTCBZVTtMbzswO0w7Ozs7O047Ozs7OworMzA4NjtISVJBR0FOQSBMRVRURVIgWVU7TG87MDtMOzs7OztOOzs7OzsKKzMwODc7SElSQUdBTkEgTEVUVEVSIFNNQUxMIFlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDg4O0hJUkFHQU5BIExFVFRFUiBZTztMbzswO0w7Ozs7O047Ozs7OworMzA4OTtISVJBR0FOQSBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzMwOEE7SElSQUdBTkEgTEVUVEVSIFJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDhCO0hJUkFHQU5BIExFVFRFUiBSVTtMbzswO0w7Ozs7O047Ozs7OworMzA4QztISVJBR0FOQSBMRVRURVIgUkU7TG87MDtMOzs7OztOOzs7OzsKKzMwOEQ7SElSQUdBTkEgTEVUVEVSIFJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDhFO0hJUkFHQU5BIExFVFRFUiBTTUFMTCBXQTtMbzswO0w7Ozs7O047Ozs7OworMzA4RjtISVJBR0FOQSBMRVRURVIgV0E7TG87MDtMOzs7OztOOzs7OzsKKzMwOTA7SElSQUdBTkEgTEVUVEVSIFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDkxO0hJUkFHQU5BIExFVFRFUiBXRTtMbzswO0w7Ozs7O047Ozs7OworMzA5MjtISVJBR0FOQSBMRVRURVIgV087TG87MDtMOzs7OztOOzs7OzsKKzMwOTM7SElSQUdBTkEgTEVUVEVSIE47TG87MDtMOzs7OztOOzs7OzsKKzMwOTQ7SElSQUdBTkEgTEVUVEVSIFZVO0xvOzA7TDszMDQ2IDMwOTk7Ozs7Tjs7Ozs7CiszMDk5O0NPTUJJTklORyBLQVRBS0FOQS1ISVJBR0FOQSBWT0lDRUQgU09VTkQgTUFSSztNbjs4O05TTTs7Ozs7TjtOT04tU1BBQ0lORyBLQVRBS0FOQS1ISVJBR0FOQSBWT0lDRUQgU09VTkQgTUFSSzs7OzsKKzMwOUE7Q09NQklOSU5HIEtBVEFLQU5BLUhJUkFHQU5BIFNFTUktVk9JQ0VEIFNPVU5EIE1BUks7TW47ODtOU007Ozs7O047Tk9OLVNQQUNJTkcgS0FUQUtBTkEtSElSQUdBTkEgU0VNSS1WT0lDRUQgU09VTkQgTUFSSzs7OzsKKzMwOUI7S0FUQUtBTkEtSElSQUdBTkEgVk9JQ0VEIFNPVU5EIE1BUks7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDMwOTk7Ozs7Tjs7Ozs7CiszMDlDO0tBVEFLQU5BLUhJUkFHQU5BIFNFTUktVk9JQ0VEIFNPVU5EIE1BUks7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDMwOUE7Ozs7Tjs7Ozs7CiszMDlEO0hJUkFHQU5BIElURVJBVElPTiBNQVJLO0xtOzA7TDs7Ozs7Tjs7Ozs7CiszMDlFO0hJUkFHQU5BIFZPSUNFRCBJVEVSQVRJT04gTUFSSztMbTswO0w7MzA5RCAzMDk5Ozs7O047Ozs7OworMzBBMTtLQVRBS0FOQSBMRVRURVIgU01BTEwgQTtMbzswO0w7Ozs7O047Ozs7OworMzBBMjtLQVRBS0FOQSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMzBBMztLQVRBS0FOQSBMRVRURVIgU01BTEwgSTtMbzswO0w7Ozs7O047Ozs7OworMzBBNDtLQVRBS0FOQSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMzBBNTtLQVRBS0FOQSBMRVRURVIgU01BTEwgVTtMbzswO0w7Ozs7O047Ozs7OworMzBBNjtLQVRBS0FOQSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMzBBNztLQVRBS0FOQSBMRVRURVIgU01BTEwgRTtMbzswO0w7Ozs7O047Ozs7OworMzBBODtLQVRBS0FOQSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMzBBOTtLQVRBS0FOQSBMRVRURVIgU01BTEwgTztMbzswO0w7Ozs7O047Ozs7OworMzBBQTtLQVRBS0FOQSBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMzBBQjtLQVRBS0FOQSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzMwQUM7S0FUQUtBTkEgTEVUVEVSIEdBO0xvOzA7TDszMEFCIDMwOTk7Ozs7Tjs7Ozs7CiszMEFEO0tBVEFLQU5BIExFVFRFUiBLSTtMbzswO0w7Ozs7O047Ozs7OworMzBBRTtLQVRBS0FOQSBMRVRURVIgR0k7TG87MDtMOzMwQUQgMzA5OTs7OztOOzs7OzsKKzMwQUY7S0FUQUtBTkEgTEVUVEVSIEtVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEIwO0tBVEFLQU5BIExFVFRFUiBHVTtMbzswO0w7MzBBRiAzMDk5Ozs7O047Ozs7OworMzBCMTtLQVRBS0FOQSBMRVRURVIgS0U7TG87MDtMOzs7OztOOzs7OzsKKzMwQjI7S0FUQUtBTkEgTEVUVEVSIEdFO0xvOzA7TDszMEIxIDMwOTk7Ozs7Tjs7Ozs7CiszMEIzO0tBVEFLQU5BIExFVFRFUiBLTztMbzswO0w7Ozs7O047Ozs7OworMzBCNDtLQVRBS0FOQSBMRVRURVIgR087TG87MDtMOzMwQjMgMzA5OTs7OztOOzs7OzsKKzMwQjU7S0FUQUtBTkEgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEI2O0tBVEFLQU5BIExFVFRFUiBaQTtMbzswO0w7MzBCNSAzMDk5Ozs7O047Ozs7OworMzBCNztLQVRBS0FOQSBMRVRURVIgU0k7TG87MDtMOzs7OztOOzs7OzsKKzMwQjg7S0FUQUtBTkEgTEVUVEVSIFpJO0xvOzA7TDszMEI3IDMwOTk7Ozs7Tjs7Ozs7CiszMEI5O0tBVEFLQU5BIExFVFRFUiBTVTtMbzswO0w7Ozs7O047Ozs7OworMzBCQTtLQVRBS0FOQSBMRVRURVIgWlU7TG87MDtMOzMwQjkgMzA5OTs7OztOOzs7OzsKKzMwQkI7S0FUQUtBTkEgTEVUVEVSIFNFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEJDO0tBVEFLQU5BIExFVFRFUiBaRTtMbzswO0w7MzBCQiAzMDk5Ozs7O047Ozs7OworMzBCRDtLQVRBS0FOQSBMRVRURVIgU087TG87MDtMOzs7OztOOzs7OzsKKzMwQkU7S0FUQUtBTkEgTEVUVEVSIFpPO0xvOzA7TDszMEJEIDMwOTk7Ozs7Tjs7Ozs7CiszMEJGO0tBVEFLQU5BIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMzBDMDtLQVRBS0FOQSBMRVRURVIgREE7TG87MDtMOzMwQkYgMzA5OTs7OztOOzs7OzsKKzMwQzE7S0FUQUtBTkEgTEVUVEVSIFRJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEMyO0tBVEFLQU5BIExFVFRFUiBESTtMbzswO0w7MzBDMSAzMDk5Ozs7O047Ozs7OworMzBDMztLQVRBS0FOQSBMRVRURVIgU01BTEwgVFU7TG87MDtMOzs7OztOOzs7OzsKKzMwQzQ7S0FUQUtBTkEgTEVUVEVSIFRVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEM1O0tBVEFLQU5BIExFVFRFUiBEVTtMbzswO0w7MzBDNCAzMDk5Ozs7O047Ozs7OworMzBDNjtLQVRBS0FOQSBMRVRURVIgVEU7TG87MDtMOzs7OztOOzs7OzsKKzMwQzc7S0FUQUtBTkEgTEVUVEVSIERFO0xvOzA7TDszMEM2IDMwOTk7Ozs7Tjs7Ozs7CiszMEM4O0tBVEFLQU5BIExFVFRFUiBUTztMbzswO0w7Ozs7O047Ozs7OworMzBDOTtLQVRBS0FOQSBMRVRURVIgRE87TG87MDtMOzMwQzggMzA5OTs7OztOOzs7OzsKKzMwQ0E7S0FUQUtBTkEgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMENCO0tBVEFLQU5BIExFVFRFUiBOSTtMbzswO0w7Ozs7O047Ozs7OworMzBDQztLQVRBS0FOQSBMRVRURVIgTlU7TG87MDtMOzs7OztOOzs7OzsKKzMwQ0Q7S0FUQUtBTkEgTEVUVEVSIE5FO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMENFO0tBVEFLQU5BIExFVFRFUiBOTztMbzswO0w7Ozs7O047Ozs7OworMzBDRjtLQVRBS0FOQSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzMwRDA7S0FUQUtBTkEgTEVUVEVSIEJBO0xvOzA7TDszMENGIDMwOTk7Ozs7Tjs7Ozs7CiszMEQxO0tBVEFLQU5BIExFVFRFUiBQQTtMbzswO0w7MzBDRiAzMDlBOzs7O047Ozs7OworMzBEMjtLQVRBS0FOQSBMRVRURVIgSEk7TG87MDtMOzs7OztOOzs7OzsKKzMwRDM7S0FUQUtBTkEgTEVUVEVSIEJJO0xvOzA7TDszMEQyIDMwOTk7Ozs7Tjs7Ozs7CiszMEQ0O0tBVEFLQU5BIExFVFRFUiBQSTtMbzswO0w7MzBEMiAzMDlBOzs7O047Ozs7OworMzBENTtLQVRBS0FOQSBMRVRURVIgSFU7TG87MDtMOzs7OztOOzs7OzsKKzMwRDY7S0FUQUtBTkEgTEVUVEVSIEJVO0xvOzA7TDszMEQ1IDMwOTk7Ozs7Tjs7Ozs7CiszMEQ3O0tBVEFLQU5BIExFVFRFUiBQVTtMbzswO0w7MzBENSAzMDlBOzs7O047Ozs7OworMzBEODtLQVRBS0FOQSBMRVRURVIgSEU7TG87MDtMOzs7OztOOzs7OzsKKzMwRDk7S0FUQUtBTkEgTEVUVEVSIEJFO0xvOzA7TDszMEQ4IDMwOTk7Ozs7Tjs7Ozs7CiszMERBO0tBVEFLQU5BIExFVFRFUiBQRTtMbzswO0w7MzBEOCAzMDlBOzs7O047Ozs7OworMzBEQjtLQVRBS0FOQSBMRVRURVIgSE87TG87MDtMOzs7OztOOzs7OzsKKzMwREM7S0FUQUtBTkEgTEVUVEVSIEJPO0xvOzA7TDszMERCIDMwOTk7Ozs7Tjs7Ozs7CiszMEREO0tBVEFLQU5BIExFVFRFUiBQTztMbzswO0w7MzBEQiAzMDlBOzs7O047Ozs7OworMzBERTtLQVRBS0FOQSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzMwREY7S0FUQUtBTkEgTEVUVEVSIE1JO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEUwO0tBVEFLQU5BIExFVFRFUiBNVTtMbzswO0w7Ozs7O047Ozs7OworMzBFMTtLQVRBS0FOQSBMRVRURVIgTUU7TG87MDtMOzs7OztOOzs7OzsKKzMwRTI7S0FUQUtBTkEgTEVUVEVSIE1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEUzO0tBVEFLQU5BIExFVFRFUiBTTUFMTCBZQTtMbzswO0w7Ozs7O047Ozs7OworMzBFNDtLQVRBS0FOQSBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzMwRTU7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIFlVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEU2O0tBVEFLQU5BIExFVFRFUiBZVTtMbzswO0w7Ozs7O047Ozs7OworMzBFNztLQVRBS0FOQSBMRVRURVIgU01BTEwgWU87TG87MDtMOzs7OztOOzs7OzsKKzMwRTg7S0FUQUtBTkEgTEVUVEVSIFlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEU5O0tBVEFLQU5BIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMzBFQTtLQVRBS0FOQSBMRVRURVIgUkk7TG87MDtMOzs7OztOOzs7OzsKKzMwRUI7S0FUQUtBTkEgTEVUVEVSIFJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEVDO0tBVEFLQU5BIExFVFRFUiBSRTtMbzswO0w7Ozs7O047Ozs7OworMzBFRDtLQVRBS0FOQSBMRVRURVIgUk87TG87MDtMOzs7OztOOzs7OzsKKzMwRUU7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEVGO0tBVEFLQU5BIExFVFRFUiBXQTtMbzswO0w7Ozs7O047Ozs7OworMzBGMDtLQVRBS0FOQSBMRVRURVIgV0k7TG87MDtMOzs7OztOOzs7OzsKKzMwRjE7S0FUQUtBTkEgTEVUVEVSIFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEYyO0tBVEFLQU5BIExFVFRFUiBXTztMbzswO0w7Ozs7O047Ozs7OworMzBGMztLQVRBS0FOQSBMRVRURVIgTjtMbzswO0w7Ozs7O047Ozs7OworMzBGNDtLQVRBS0FOQSBMRVRURVIgVlU7TG87MDtMOzMwQTYgMzA5OTs7OztOOzs7OzsKKzMwRjU7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEY2O0tBVEFLQU5BIExFVFRFUiBTTUFMTCBLRTtMbzswO0w7Ozs7O047Ozs7OworMzBGNztLQVRBS0FOQSBMRVRURVIgVkE7TG87MDtMOzMwRUYgMzA5OTs7OztOOzs7OzsKKzMwRjg7S0FUQUtBTkEgTEVUVEVSIFZJO0xvOzA7TDszMEYwIDMwOTk7Ozs7Tjs7Ozs7CiszMEY5O0tBVEFLQU5BIExFVFRFUiBWRTtMbzswO0w7MzBGMSAzMDk5Ozs7O047Ozs7OworMzBGQTtLQVRBS0FOQSBMRVRURVIgVk87TG87MDtMOzMwRjIgMzA5OTs7OztOOzs7OzsKKzMwRkI7S0FUQUtBTkEgTUlERExFIERPVDtQYzswO09OOzs7OztOOzs7OzsKKzMwRkM7S0FUQUtBTkEtSElSQUdBTkEgUFJPTE9OR0VEIFNPVU5EIE1BUks7TG07MDtMOzs7OztOOzs7OzsKKzMwRkQ7S0FUQUtBTkEgSVRFUkFUSU9OIE1BUks7TG07MDtMOzs7OztOOzs7OzsKKzMwRkU7S0FUQUtBTkEgVk9JQ0VEIElURVJBVElPTiBNQVJLO0xtOzA7TDszMEZEIDMwOTk7Ozs7Tjs7Ozs7CiszMTA1O0JPUE9NT0ZPIExFVFRFUiBCO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTA2O0JPUE9NT0ZPIExFVFRFUiBQO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTA3O0JPUE9NT0ZPIExFVFRFUiBNO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTA4O0JPUE9NT0ZPIExFVFRFUiBGO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTA5O0JPUE9NT0ZPIExFVFRFUiBEO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTBBO0JPUE9NT0ZPIExFVFRFUiBUO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTBCO0JPUE9NT0ZPIExFVFRFUiBOO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTBDO0JPUE9NT0ZPIExFVFRFUiBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTBEO0JPUE9NT0ZPIExFVFRFUiBHO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTBFO0JPUE9NT0ZPIExFVFRFUiBLO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTBGO0JPUE9NT0ZPIExFVFRFUiBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTEwO0JPUE9NT0ZPIExFVFRFUiBKO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTExO0JPUE9NT0ZPIExFVFRFUiBRO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTEyO0JPUE9NT0ZPIExFVFRFUiBYO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTEzO0JPUE9NT0ZPIExFVFRFUiBaSDtMbzswO0w7Ozs7O047Ozs7OworMzExNDtCT1BPTU9GTyBMRVRURVIgQ0g7TG87MDtMOzs7OztOOzs7OzsKKzMxMTU7Qk9QT01PRk8gTEVUVEVSIFNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTE2O0JPUE9NT0ZPIExFVFRFUiBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTE3O0JPUE9NT0ZPIExFVFRFUiBaO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTE4O0JPUE9NT0ZPIExFVFRFUiBDO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTE5O0JPUE9NT0ZPIExFVFRFUiBTO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTFBO0JPUE9NT0ZPIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTFCO0JPUE9NT0ZPIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTFDO0JPUE9NT0ZPIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTFEO0JPUE9NT0ZPIExFVFRFUiBFSDtMbzswO0w7Ozs7O047Ozs7OworMzExRTtCT1BPTU9GTyBMRVRURVIgQUk7TG87MDtMOzs7OztOOzs7OzsKKzMxMUY7Qk9QT01PRk8gTEVUVEVSIEVJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTIwO0JPUE9NT0ZPIExFVFRFUiBBVTtMbzswO0w7Ozs7O047Ozs7OworMzEyMTtCT1BPTU9GTyBMRVRURVIgT1U7TG87MDtMOzs7OztOOzs7OzsKKzMxMjI7Qk9QT01PRk8gTEVUVEVSIEFOO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTIzO0JPUE9NT0ZPIExFVFRFUiBFTjtMbzswO0w7Ozs7O047Ozs7OworMzEyNDtCT1BPTU9GTyBMRVRURVIgQU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTI1O0JPUE9NT0ZPIExFVFRFUiBFTkc7TG87MDtMOzs7OztOOzs7OzsKKzMxMjY7Qk9QT01PRk8gTEVUVEVSIEVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTI3O0JPUE9NT0ZPIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTI4O0JPUE9NT0ZPIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTI5O0JPUE9NT0ZPIExFVFRFUiBJVTtMbzswO0w7Ozs7O047Ozs7OworMzEyQTtCT1BPTU9GTyBMRVRURVIgVjtMbzswO0w7Ozs7O047Ozs7OworMzEyQjtCT1BPTU9GTyBMRVRURVIgTkc7TG87MDtMOzs7OztOOzs7OzsKKzMxMkM7Qk9QT01PRk8gTEVUVEVSIEdOO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTMxO0hBTkdVTCBMRVRURVIgS0lZRU9LO0xvOzA7TDs8Y29tcGF0PiAxMTAwOzs7O047SEFOR1VMIExFVFRFUiBHSVlFT0c7Ozs7CiszMTMyO0hBTkdVTCBMRVRURVIgU1NBTkdLSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExMDE7Ozs7TjtIQU5HVUwgTEVUVEVSIFNTQU5HIEdJWUVPRzs7OzsKKzMxMzM7SEFOR1VMIExFVFRFUiBLSVlFT0stU0lPUztMbzswO0w7PGNvbXBhdD4gMTFBQTs7OztOO0hBTkdVTCBMRVRURVIgR0lZRU9HIFNJT1M7Ozs7CiszMTM0O0hBTkdVTCBMRVRURVIgTklFVU47TG87MDtMOzxjb21wYXQ+IDExMDI7Ozs7Tjs7Ozs7CiszMTM1O0hBTkdVTCBMRVRURVIgTklFVU4tQ0lFVUM7TG87MDtMOzxjb21wYXQ+IDExQUM7Ozs7TjtIQU5HVUwgTEVUVEVSIE5JRVVOIEpJRVVKOzs7OworMzEzNjtIQU5HVUwgTEVUVEVSIE5JRVVOLUhJRVVIO0xvOzA7TDs8Y29tcGF0PiAxMUFEOzs7O047SEFOR1VMIExFVFRFUiBOSUVVTiBISUVVSDs7OzsKKzMxMzc7SEFOR1VMIExFVFRFUiBUSUtFVVQ7TG87MDtMOzxjb21wYXQ+IDExMDM7Ozs7TjtIQU5HVUwgTEVUVEVSIERJR0VVRDs7OzsKKzMxMzg7SEFOR1VMIExFVFRFUiBTU0FOR1RJS0VVVDtMbzswO0w7PGNvbXBhdD4gMTEwNDs7OztOO0hBTkdVTCBMRVRURVIgU1NBTkcgRElHRVVEOzs7OworMzEzOTtIQU5HVUwgTEVUVEVSIFJJRVVMO0xvOzA7TDs8Y29tcGF0PiAxMTA1Ozs7O047SEFOR1VMIExFVFRFUiBMSUVVTDs7OzsKKzMxM0E7SEFOR1VMIExFVFRFUiBSSUVVTC1LSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExQjA7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIEdJWUVPRzs7OzsKKzMxM0I7SEFOR1VMIExFVFRFUiBSSUVVTC1NSUVVTTtMbzswO0w7PGNvbXBhdD4gMTFCMTs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgTUlFVU07Ozs7CiszMTNDO0hBTkdVTCBMRVRURVIgUklFVUwtUElFVVA7TG87MDtMOzxjb21wYXQ+IDExQjI7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIEJJRVVCOzs7OworMzEzRDtIQU5HVUwgTEVUVEVSIFJJRVVMLVNJT1M7TG87MDtMOzxjb21wYXQ+IDExQjM7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIFNJT1M7Ozs7CiszMTNFO0hBTkdVTCBMRVRURVIgUklFVUwtVEhJRVVUSDtMbzswO0w7PGNvbXBhdD4gMTFCNDs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgVElFVVQ7Ozs7CiszMTNGO0hBTkdVTCBMRVRURVIgUklFVUwtUEhJRVVQSDtMbzswO0w7PGNvbXBhdD4gMTFCNTs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgUElFVVA7Ozs7CiszMTQwO0hBTkdVTCBMRVRURVIgUklFVUwtSElFVUg7TG87MDtMOzxjb21wYXQ+IDExMUE7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIEhJRVVIOzs7OworMzE0MTtIQU5HVUwgTEVUVEVSIE1JRVVNO0xvOzA7TDs8Y29tcGF0PiAxMTA2Ozs7O047Ozs7OworMzE0MjtIQU5HVUwgTEVUVEVSIFBJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMTA3Ozs7O047SEFOR1VMIExFVFRFUiBCSUVVQjs7OzsKKzMxNDM7SEFOR1VMIExFVFRFUiBTU0FOR1BJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMTA4Ozs7O047SEFOR1VMIExFVFRFUiBTU0FORyBCSUVVQjs7OzsKKzMxNDQ7SEFOR1VMIExFVFRFUiBQSUVVUC1TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMTIxOzs7O047SEFOR1VMIExFVFRFUiBCSUVVQiBTSU9TOzs7OworMzE0NTtIQU5HVUwgTEVUVEVSIFNJT1M7TG87MDtMOzxjb21wYXQ+IDExMDk7Ozs7Tjs7Ozs7CiszMTQ2O0hBTkdVTCBMRVRURVIgU1NBTkdTSU9TO0xvOzA7TDs8Y29tcGF0PiAxMTBBOzs7O047SEFOR1VMIExFVFRFUiBTU0FORyBTSU9TOzs7OworMzE0NztIQU5HVUwgTEVUVEVSIElFVU5HO0xvOzA7TDs8Y29tcGF0PiAxMTBCOzs7O047Ozs7OworMzE0ODtIQU5HVUwgTEVUVEVSIENJRVVDO0xvOzA7TDs8Y29tcGF0PiAxMTBDOzs7O047SEFOR1VMIExFVFRFUiBKSUVVSjs7OzsKKzMxNDk7SEFOR1VMIExFVFRFUiBTU0FOR0NJRVVDO0xvOzA7TDs8Y29tcGF0PiAxMTBEOzs7O047SEFOR1VMIExFVFRFUiBTU0FORyBKSUVVSjs7OzsKKzMxNEE7SEFOR1VMIExFVFRFUiBDSElFVUNIO0xvOzA7TDs8Y29tcGF0PiAxMTBFOzs7O047SEFOR1VMIExFVFRFUiBDSUVVQzs7OzsKKzMxNEI7SEFOR1VMIExFVFRFUiBLSElFVUtIO0xvOzA7TDs8Y29tcGF0PiAxMTBGOzs7O047SEFOR1VMIExFVFRFUiBLSVlFT0s7Ozs7CiszMTRDO0hBTkdVTCBMRVRURVIgVEhJRVVUSDtMbzswO0w7PGNvbXBhdD4gMTExMDs7OztOO0hBTkdVTCBMRVRURVIgVElFVVQ7Ozs7CiszMTREO0hBTkdVTCBMRVRURVIgUEhJRVVQSDtMbzswO0w7PGNvbXBhdD4gMTExMTs7OztOO0hBTkdVTCBMRVRURVIgUElFVVA7Ozs7CiszMTRFO0hBTkdVTCBMRVRURVIgSElFVUg7TG87MDtMOzxjb21wYXQ+IDExMTI7Ozs7Tjs7Ozs7CiszMTRGO0hBTkdVTCBMRVRURVIgQTtMbzswO0w7PGNvbXBhdD4gMTE2MTs7OztOOzs7OzsKKzMxNTA7SEFOR1VMIExFVFRFUiBBRTtMbzswO0w7PGNvbXBhdD4gMTE2Mjs7OztOOzs7OzsKKzMxNTE7SEFOR1VMIExFVFRFUiBZQTtMbzswO0w7PGNvbXBhdD4gMTE2Mzs7OztOOzs7OzsKKzMxNTI7SEFOR1VMIExFVFRFUiBZQUU7TG87MDtMOzxjb21wYXQ+IDExNjQ7Ozs7Tjs7Ozs7CiszMTUzO0hBTkdVTCBMRVRURVIgRU87TG87MDtMOzxjb21wYXQ+IDExNjU7Ozs7Tjs7Ozs7CiszMTU0O0hBTkdVTCBMRVRURVIgRTtMbzswO0w7PGNvbXBhdD4gMTE2Njs7OztOOzs7OzsKKzMxNTU7SEFOR1VMIExFVFRFUiBZRU87TG87MDtMOzxjb21wYXQ+IDExNjc7Ozs7Tjs7Ozs7CiszMTU2O0hBTkdVTCBMRVRURVIgWUU7TG87MDtMOzxjb21wYXQ+IDExNjg7Ozs7Tjs7Ozs7CiszMTU3O0hBTkdVTCBMRVRURVIgTztMbzswO0w7PGNvbXBhdD4gMTE2OTs7OztOOzs7OzsKKzMxNTg7SEFOR1VMIExFVFRFUiBXQTtMbzswO0w7PGNvbXBhdD4gMTE2QTs7OztOOzs7OzsKKzMxNTk7SEFOR1VMIExFVFRFUiBXQUU7TG87MDtMOzxjb21wYXQ+IDExNkI7Ozs7Tjs7Ozs7CiszMTVBO0hBTkdVTCBMRVRURVIgT0U7TG87MDtMOzxjb21wYXQ+IDExNkM7Ozs7Tjs7Ozs7CiszMTVCO0hBTkdVTCBMRVRURVIgWU87TG87MDtMOzxjb21wYXQ+IDExNkQ7Ozs7Tjs7Ozs7CiszMTVDO0hBTkdVTCBMRVRURVIgVTtMbzswO0w7PGNvbXBhdD4gMTE2RTs7OztOOzs7OzsKKzMxNUQ7SEFOR1VMIExFVFRFUiBXRU87TG87MDtMOzxjb21wYXQ+IDExNkY7Ozs7Tjs7Ozs7CiszMTVFO0hBTkdVTCBMRVRURVIgV0U7TG87MDtMOzxjb21wYXQ+IDExNzA7Ozs7Tjs7Ozs7CiszMTVGO0hBTkdVTCBMRVRURVIgV0k7TG87MDtMOzxjb21wYXQ+IDExNzE7Ozs7Tjs7Ozs7CiszMTYwO0hBTkdVTCBMRVRURVIgWVU7TG87MDtMOzxjb21wYXQ+IDExNzI7Ozs7Tjs7Ozs7CiszMTYxO0hBTkdVTCBMRVRURVIgRVU7TG87MDtMOzxjb21wYXQ+IDExNzM7Ozs7Tjs7Ozs7CiszMTYyO0hBTkdVTCBMRVRURVIgWUk7TG87MDtMOzxjb21wYXQ+IDExNzQ7Ozs7Tjs7Ozs7CiszMTYzO0hBTkdVTCBMRVRURVIgSTtMbzswO0w7PGNvbXBhdD4gMTE3NTs7OztOOzs7OzsKKzMxNjQ7SEFOR1VMIEZJTExFUjtMbzswO0w7PGNvbXBhdD4gMTE2MDs7OztOO0hBTkdVTCBDQUUgT007Ozs7CiszMTY1O0hBTkdVTCBMRVRURVIgU1NBTkdOSUVVTjtMbzswO0w7PGNvbXBhdD4gMTExNDs7OztOO0hBTkdVTCBMRVRURVIgU1NBTkcgTklFVU47Ozs7CiszMTY2O0hBTkdVTCBMRVRURVIgTklFVU4tVElLRVVUO0xvOzA7TDs8Y29tcGF0PiAxMTE1Ozs7O047SEFOR1VMIExFVFRFUiBOSUVVTiBESUdFVUQ7Ozs7CiszMTY3O0hBTkdVTCBMRVRURVIgTklFVU4tU0lPUztMbzswO0w7PGNvbXBhdD4gMTFDNzs7OztOO0hBTkdVTCBMRVRURVIgTklFVU4gU0lPUzs7OzsKKzMxNjg7SEFOR1VMIExFVFRFUiBOSUVVTi1QQU5TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUM4Ozs7O047SEFOR1VMIExFVFRFUiBOSUVVTiBCQU4gQ0hJIEVVTTs7OzsKKzMxNjk7SEFOR1VMIExFVFRFUiBSSUVVTC1LSVlFT0stU0lPUztMbzswO0w7PGNvbXBhdD4gMTFDQzs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgR0lZRU9HIFNJT1M7Ozs7CiszMTZBO0hBTkdVTCBMRVRURVIgUklFVUwtVElLRVVUO0xvOzA7TDs8Y29tcGF0PiAxMUNFOzs7O047SEFOR1VMIExFVFRFUiBMSUVVTCBESUdFVUQ7Ozs7CiszMTZCO0hBTkdVTCBMRVRURVIgUklFVUwtUElFVVAtU0lPUztMbzswO0w7PGNvbXBhdD4gMTFEMzs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgQklFVUIgU0lPUzs7OzsKKzMxNkM7SEFOR1VMIExFVFRFUiBSSUVVTC1QQU5TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUQ3Ozs7O047SEFOR1VMIExFVFRFUiBMSUVVTCBCQU4gQ0hJIEVVTTs7OzsKKzMxNkQ7SEFOR1VMIExFVFRFUiBSSUVVTC1ZRU9SSU5ISUVVSDtMbzswO0w7PGNvbXBhdD4gMTFEOTs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgWUVPTElOIEhJRVVIOzs7OworMzE2RTtIQU5HVUwgTEVUVEVSIE1JRVVNLVBJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMTFDOzs7O047SEFOR1VMIExFVFRFUiBNSUVVTSBCSUVVQjs7OzsKKzMxNkY7SEFOR1VMIExFVFRFUiBNSUVVTS1TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUREOzs7O047SEFOR1VMIExFVFRFUiBNSUVVTSBTSU9TOzs7OworMzE3MDtIQU5HVUwgTEVUVEVSIE1JRVVNLVBBTlNJT1M7TG87MDtMOzxjb21wYXQ+IDExREY7Ozs7TjtIQU5HVUwgTEVUVEVSIEJJRVVCIEJBTiBDSEkgRVVNOzs7OworMzE3MTtIQU5HVUwgTEVUVEVSIEtBUFlFT1VOTUlFVU07TG87MDtMOzxjb21wYXQ+IDExMUQ7Ozs7TjtIQU5HVUwgTEVUVEVSIE1JRVVNIFNVTiBHWUVPTkcgRVVNOzs7OworMzE3MjtIQU5HVUwgTEVUVEVSIFBJRVVQLUtJWUVPSztMbzswO0w7PGNvbXBhdD4gMTExRTs7OztOO0hBTkdVTCBMRVRURVIgQklFVUIgR0lZRU9HOzs7OworMzE3MztIQU5HVUwgTEVUVEVSIFBJRVVQLVRJS0VVVDtMbzswO0w7PGNvbXBhdD4gMTEyMDs7OztOO0hBTkdVTCBMRVRURVIgQklFVUIgRElHRVVEOzs7OworMzE3NDtIQU5HVUwgTEVUVEVSIFBJRVVQLVNJT1MtS0lZRU9LO0xvOzA7TDs8Y29tcGF0PiAxMTIyOzs7O047SEFOR1VMIExFVFRFUiBCSUVVQiBTSU9TIEdJWUVPRzs7OzsKKzMxNzU7SEFOR1VMIExFVFRFUiBQSUVVUC1TSU9TLVRJS0VVVDtMbzswO0w7PGNvbXBhdD4gMTEyMzs7OztOO0hBTkdVTCBMRVRURVIgQklFVUIgU0lPUyBESUdFVUQ7Ozs7CiszMTc2O0hBTkdVTCBMRVRURVIgUElFVVAtQ0lFVUM7TG87MDtMOzxjb21wYXQ+IDExMjc7Ozs7TjtIQU5HVUwgTEVUVEVSIEJJRVVCIEpJRVVKOzs7OworMzE3NztIQU5HVUwgTEVUVEVSIFBJRVVQLVRISUVVVEg7TG87MDtMOzxjb21wYXQ+IDExMjk7Ozs7TjtIQU5HVUwgTEVUVEVSIEJJRVVCIFRJRVVUOzs7OworMzE3ODtIQU5HVUwgTEVUVEVSIEtBUFlFT1VOUElFVVA7TG87MDtMOzxjb21wYXQ+IDExMkI7Ozs7TjtIQU5HVUwgTEVUVEVSIEJJRVVCIFNVTiBHWUVPTkcgRVVNOzs7OworMzE3OTtIQU5HVUwgTEVUVEVSIEtBUFlFT1VOU1NBTkdQSUVVUDtMbzswO0w7PGNvbXBhdD4gMTEyQzs7OztOO0hBTkdVTCBMRVRURVIgU1NBTkcgQklFVUIgU1VOIEdZRU9ORyBFVU07Ozs7CiszMTdBO0hBTkdVTCBMRVRURVIgU0lPUy1LSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExMkQ7Ozs7TjtIQU5HVUwgTEVUVEVSIFNJT1MgR0lZRU9HOzs7OworMzE3QjtIQU5HVUwgTEVUVEVSIFNJT1MtTklFVU47TG87MDtMOzxjb21wYXQ+IDExMkU7Ozs7TjtIQU5HVUwgTEVUVEVSIFNJT1MgTklFVU47Ozs7CiszMTdDO0hBTkdVTCBMRVRURVIgU0lPUy1USUtFVVQ7TG87MDtMOzxjb21wYXQ+IDExMkY7Ozs7TjtIQU5HVUwgTEVUVEVSIFNJT1MgRElHRVVEOzs7OworMzE3RDtIQU5HVUwgTEVUVEVSIFNJT1MtUElFVVA7TG87MDtMOzxjb21wYXQ+IDExMzI7Ozs7TjtIQU5HVUwgTEVUVEVSIFNJT1MgQklFVUI7Ozs7CiszMTdFO0hBTkdVTCBMRVRURVIgU0lPUy1DSUVVQztMbzswO0w7PGNvbXBhdD4gMTEzNjs7OztOO0hBTkdVTCBMRVRURVIgU0lPUyBKSUVVSjs7OzsKKzMxN0Y7SEFOR1VMIExFVFRFUiBQQU5TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMTQwOzs7O047SEFOR1VMIExFVFRFUiBCQU4gQ0hJIEVVTTs7OzsKKzMxODA7SEFOR1VMIExFVFRFUiBTU0FOR0lFVU5HO0xvOzA7TDs8Y29tcGF0PiAxMTQ3Ozs7O047SEFOR1VMIExFVFRFUiBTU0FORyBJRVVORzs7OzsKKzMxODE7SEFOR1VMIExFVFRFUiBZRVNJRVVORztMbzswO0w7PGNvbXBhdD4gMTE0Qzs7OztOO0hBTkdVTCBMRVRURVIgTkdJRVVORzs7OzsKKzMxODI7SEFOR1VMIExFVFRFUiBZRVNJRVVORy1TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUYxOzs7O047SEFOR1VMIExFVFRFUiBOR0lFVU5HIFNJT1M7Ozs7CiszMTgzO0hBTkdVTCBMRVRURVIgWUVTSUVVTkctUEFOU0lPUztMbzswO0w7PGNvbXBhdD4gMTFGMjs7OztOO0hBTkdVTCBMRVRURVIgTkdJRVVORyBCQU4gQ0hJIEVVTTs7OzsKKzMxODQ7SEFOR1VMIExFVFRFUiBLQVBZRU9VTlBISUVVUEg7TG87MDtMOzxjb21wYXQ+IDExNTc7Ozs7TjtIQU5HVUwgTEVUVEVSIFBJRVVQIFNVTiBHWUVPTkcgRVVNOzs7OworMzE4NTtIQU5HVUwgTEVUVEVSIFNTQU5HSElFVUg7TG87MDtMOzxjb21wYXQ+IDExNTg7Ozs7TjtIQU5HVUwgTEVUVEVSIFNTQU5HIEhJRVVIOzs7OworMzE4NjtIQU5HVUwgTEVUVEVSIFlFT1JJTkhJRVVIO0xvOzA7TDs8Y29tcGF0PiAxMTU5Ozs7O047SEFOR1VMIExFVFRFUiBZRU9MSU4gSElFVUg7Ozs7CiszMTg3O0hBTkdVTCBMRVRURVIgWU8tWUE7TG87MDtMOzxjb21wYXQ+IDExODQ7Ozs7TjtIQU5HVUwgTEVUVEVSIFlPWUE7Ozs7CiszMTg4O0hBTkdVTCBMRVRURVIgWU8tWUFFO0xvOzA7TDs8Y29tcGF0PiAxMTg1Ozs7O047SEFOR1VMIExFVFRFUiBZT1lBRTs7OzsKKzMxODk7SEFOR1VMIExFVFRFUiBZTy1JO0xvOzA7TDs8Y29tcGF0PiAxMTg4Ozs7O047SEFOR1VMIExFVFRFUiBZT0k7Ozs7CiszMThBO0hBTkdVTCBMRVRURVIgWVUtWUVPO0xvOzA7TDs8Y29tcGF0PiAxMTkxOzs7O047SEFOR1VMIExFVFRFUiBZVVlFTzs7OzsKKzMxOEI7SEFOR1VMIExFVFRFUiBZVS1ZRTtMbzswO0w7PGNvbXBhdD4gMTE5Mjs7OztOO0hBTkdVTCBMRVRURVIgWVVZRTs7OzsKKzMxOEM7SEFOR1VMIExFVFRFUiBZVS1JO0xvOzA7TDs8Y29tcGF0PiAxMTk0Ozs7O047SEFOR1VMIExFVFRFUiBZVUk7Ozs7CiszMThEO0hBTkdVTCBMRVRURVIgQVJBRUE7TG87MDtMOzxjb21wYXQ+IDExOUU7Ozs7TjtIQU5HVUwgTEVUVEVSIEFMQUUgQTs7OzsKKzMxOEU7SEFOR1VMIExFVFRFUiBBUkFFQUU7TG87MDtMOzxjb21wYXQ+IDExQTE7Ozs7TjtIQU5HVUwgTEVUVEVSIEFMQUUgQUU7Ozs7CiszMTkwO0lERU9HUkFQSElDIEFOTk9UQVRJT04gTElOS0lORyBNQVJLO1NvOzA7TDs7Ozs7TjtLQU5CVU4gVEFURVRFTjtLYW5idW4gVGF0ZXRlbjs7OworMzE5MTtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIFJFVkVSU0UgTUFSSztTbzswO0w7Ozs7O047S0FFUklURU4gUkU7S2Flcml0ZW47OzsKKzMxOTI7SURFT0dSQVBISUMgQU5OT1RBVElPTiBPTkUgTUFSSztObzswO0w7PHN1cGVyPiA0RTAwOzs7O047S0FFUklURU4gSVRJO0thZXJpdGVuOzs7CiszMTkzO0lERU9HUkFQSElDIEFOTk9UQVRJT04gVFdPIE1BUks7Tm87MDtMOzxzdXBlcj4gNEU4Qzs7OztOO0tBRVJJVEVOIE5JO0thZXJpdGVuOzs7CiszMTk0O0lERU9HUkFQSElDIEFOTk9UQVRJT04gVEhSRUUgTUFSSztObzswO0w7PHN1cGVyPiA0RTA5Ozs7O047S0FFUklURU4gU0FOO0thZXJpdGVuOzs7CiszMTk1O0lERU9HUkFQSElDIEFOTk9UQVRJT04gRk9VUiBNQVJLO05vOzA7TDs8c3VwZXI+IDU2REI7Ozs7TjtLQUVSSVRFTiBTSTtLYWVyaXRlbjs7OworMzE5NjtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIFRPUCBNQVJLO1NvOzA7TDs8c3VwZXI+IDRFMEE7Ozs7TjtLQUVSSVRFTiBaWU9VO0thZXJpdGVuOzs7CiszMTk3O0lERU9HUkFQSElDIEFOTk9UQVRJT04gTUlERExFIE1BUks7U287MDtMOzxzdXBlcj4gNEUyRDs7OztOO0tBRVJJVEVOIFRZVVU7S2Flcml0ZW47OzsKKzMxOTg7SURFT0dSQVBISUMgQU5OT1RBVElPTiBCT1RUT00gTUFSSztTbzswO0w7PHN1cGVyPiA0RTBCOzs7O047S0FFUklURU4gR0U7S2Flcml0ZW47OzsKKzMxOTk7SURFT0dSQVBISUMgQU5OT1RBVElPTiBGSVJTVCBNQVJLO1NvOzA7TDs8c3VwZXI+IDc1MzI7Ozs7TjtLQUVSSVRFTiBLT1U7S2Flcml0ZW47OzsKKzMxOUE7SURFT0dSQVBISUMgQU5OT1RBVElPTiBTRUNPTkQgTUFSSztTbzswO0w7PHN1cGVyPiA0RTU5Ozs7O047S0FFUklURU4gT1RVO0thZXJpdGVuOzs7CiszMTlCO0lERU9HUkFQSElDIEFOTk9UQVRJT04gVEhJUkQgTUFSSztTbzswO0w7PHN1cGVyPiA0RTE5Ozs7O047S0FFUklURU4gSEVJO0thZXJpdGVuOzs7CiszMTlDO0lERU9HUkFQSElDIEFOTk9UQVRJT04gRk9VUlRIIE1BUks7U287MDtMOzxzdXBlcj4gNEUwMTs7OztOO0tBRVJJVEVOIFRFSTtLYWVyaXRlbjs7OworMzE5RDtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIEhFQVZFTiBNQVJLO1NvOzA7TDs8c3VwZXI+IDU5Mjk7Ozs7TjtLQUVSSVRFTiBURU47S2Flcml0ZW47OzsKKzMxOUU7SURFT0dSQVBISUMgQU5OT1RBVElPTiBFQVJUSCBNQVJLO1NvOzA7TDs8c3VwZXI+IDU3MzA7Ozs7TjtLQUVSSVRFTiBUSTtLYWVyaXRlbjs7OworMzE5RjtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIE1BTiBNQVJLO1NvOzA7TDs8c3VwZXI+IDRFQkE7Ozs7TjtLQUVSSVRFTiBaSU47S2Flcml0ZW47OzsKKzMxQTA7Qk9QT01PRk8gTEVUVEVSIEJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUExO0JPUE9NT0ZPIExFVFRFUiBaSTtMbzswO0w7Ozs7O047Ozs7OworMzFBMjtCT1BPTU9GTyBMRVRURVIgSkk7TG87MDtMOzs7OztOOzs7OzsKKzMxQTM7Qk9QT01PRk8gTEVUVEVSIEdVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUE0O0JPUE9NT0ZPIExFVFRFUiBFRTtMbzswO0w7Ozs7O047Ozs7OworMzFBNTtCT1BPTU9GTyBMRVRURVIgRU5OO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUE2O0JPUE9NT0ZPIExFVFRFUiBPTztMbzswO0w7Ozs7O047Ozs7OworMzFBNztCT1BPTU9GTyBMRVRURVIgT05OO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUE4O0JPUE9NT0ZPIExFVFRFUiBJUjtMbzswO0w7Ozs7O047Ozs7OworMzFBOTtCT1BPTU9GTyBMRVRURVIgQU5OO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUFBO0JPUE9NT0ZPIExFVFRFUiBJTk47TG87MDtMOzs7OztOOzs7OzsKKzMxQUI7Qk9QT01PRk8gTEVUVEVSIFVOTjtMbzswO0w7Ozs7O047Ozs7OworMzFBQztCT1BPTU9GTyBMRVRURVIgSU07TG87MDtMOzs7OztOOzs7OzsKKzMxQUQ7Qk9QT01PRk8gTEVUVEVSIE5HRztMbzswO0w7Ozs7O047Ozs7OworMzFBRTtCT1BPTU9GTyBMRVRURVIgQUlOTjtMbzswO0w7Ozs7O047Ozs7OworMzFBRjtCT1BPTU9GTyBMRVRURVIgQVVOTjtMbzswO0w7Ozs7O047Ozs7OworMzFCMDtCT1BPTU9GTyBMRVRURVIgQU07TG87MDtMOzs7OztOOzs7OzsKKzMxQjE7Qk9QT01PRk8gTEVUVEVSIE9NO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUIyO0JPUE9NT0ZPIExFVFRFUiBPTkc7TG87MDtMOzs7OztOOzs7OzsKKzMxQjM7Qk9QT01PRk8gTEVUVEVSIElOTk47TG87MDtMOzs7OztOOzs7OzsKKzMxQjQ7Qk9QT01PRk8gRklOQUwgTEVUVEVSIFA7TG87MDtMOzs7OztOOzs7OzsKKzMxQjU7Qk9QT01PRk8gRklOQUwgTEVUVEVSIFQ7TG87MDtMOzs7OztOOzs7OzsKKzMxQjY7Qk9QT01PRk8gRklOQUwgTEVUVEVSIEs7TG87MDtMOzs7OztOOzs7OzsKKzMxQjc7Qk9QT01PRk8gRklOQUwgTEVUVEVSIEg7TG87MDtMOzs7OztOOzs7OzsKKzMyMDA7UEFSRU5USEVTSVpFRCBIQU5HVUwgS0lZRU9LO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDAgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIEdJWUVPRzs7OzsKKzMyMDE7UEFSRU5USEVTSVpFRCBIQU5HVUwgTklFVU47U287MDtMOzxjb21wYXQ+IDAwMjggMTEwMiAwMDI5Ozs7O047Ozs7OworMzIwMjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBUSUtFVVQ7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwMyAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgRElHRVVEOzs7OworMzIwMztQQVJFTlRIRVNJWkVEIEhBTkdVTCBSSUVVTDtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTA1IDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBMSUVVTDs7OzsKKzMyMDQ7UEFSRU5USEVTSVpFRCBIQU5HVUwgTUlFVU07U287MDtMOzxjb21wYXQ+IDAwMjggMTEwNiAwMDI5Ozs7O047Ozs7OworMzIwNTtQQVJFTlRIRVNJWkVEIEhBTkdVTCBQSUVVUDtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTA3IDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBCSUVVQjs7OzsKKzMyMDY7UEFSRU5USEVTSVpFRCBIQU5HVUwgU0lPUztTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTA5IDAwMjk7Ozs7Tjs7Ozs7CiszMjA3O1BBUkVOVEhFU0laRUQgSEFOR1VMIElFVU5HO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMEIgMDAyOTs7OztOOzs7OzsKKzMyMDg7UEFSRU5USEVTSVpFRCBIQU5HVUwgQ0lFVUM7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwQyAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgSklFVUo7Ozs7CiszMjA5O1BBUkVOVEhFU0laRUQgSEFOR1VMIENISUVVQ0g7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwRSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgQ0lFVUM7Ozs7CiszMjBBO1BBUkVOVEhFU0laRUQgSEFOR1VMIEtISUVVS0g7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwRiAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgS0lZRU9LOzs7OworMzIwQjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBUSElFVVRIO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMTAgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIFRJRVVUOzs7OworMzIwQztQQVJFTlRIRVNJWkVEIEhBTkdVTCBQSElFVVBIO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMTEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIFBJRVVQOzs7OworMzIwRDtQQVJFTlRIRVNJWkVEIEhBTkdVTCBISUVVSDtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTEyIDAwMjk7Ozs7Tjs7Ozs7CiszMjBFO1BBUkVOVEhFU0laRUQgSEFOR1VMIEtJWUVPSyBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDAgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgR0E7Ozs7CiszMjBGO1BBUkVOVEhFU0laRUQgSEFOR1VMIE5JRVVOIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwMiAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBOQTs7OzsKKzMyMTA7UEFSRU5USEVTSVpFRCBIQU5HVUwgVElLRVVUIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwMyAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBEQTs7OzsKKzMyMTE7UEFSRU5USEVTSVpFRCBIQU5HVUwgUklFVUwgQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTA1IDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIExBOzs7OworMzIxMjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBNSUVVTSBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDYgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgTUE7Ozs7CiszMjEzO1BBUkVOVEhFU0laRUQgSEFOR1VMIFBJRVVQIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwNyAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBCQTs7OzsKKzMyMTQ7UEFSRU5USEVTSVpFRCBIQU5HVUwgU0lPUyBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDkgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgU0E7Ozs7CiszMjE1O1BBUkVOVEhFU0laRUQgSEFOR1VMIElFVU5HIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwQiAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBBOzs7OworMzIxNjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBDSUVVQyBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMEMgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgSkE7Ozs7CiszMjE3O1BBUkVOVEhFU0laRUQgSEFOR1VMIENISUVVQ0ggQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTBFIDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIENBOzs7OworMzIxODtQQVJFTlRIRVNJWkVEIEhBTkdVTCBLSElFVUtIIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwRiAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBLQTs7OzsKKzMyMTk7UEFSRU5USEVTSVpFRCBIQU5HVUwgVEhJRVVUSCBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMTAgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgVEE7Ozs7CiszMjFBO1BBUkVOVEhFU0laRUQgSEFOR1VMIFBISUVVUEggQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTExIDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIFBBOzs7OworMzIxQjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBISUVVSCBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMTIgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgSEE7Ozs7CiszMjFDO1BBUkVOVEhFU0laRUQgSEFOR1VMIENJRVVDIFU7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwQyAxMTZFIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBKVTs7OzsKKzMyMjA7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggT05FO05vOzA7TDs8Y29tcGF0PiAwMDI4IDRFMDAgMDAyOTs7OztOOzs7OzsKKzMyMjE7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggVFdPO05vOzA7TDs8Y29tcGF0PiAwMDI4IDRFOEMgMDAyOTs7OztOOzs7OzsKKzMyMjI7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggVEhSRUU7Tm87MDtMOzxjb21wYXQ+IDAwMjggNEUwOSAwMDI5Ozs7O047Ozs7OworMzIyMztQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBGT1VSO05vOzA7TDs8Y29tcGF0PiAwMDI4IDU2REIgMDAyOTs7OztOOzs7OzsKKzMyMjQ7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggRklWRTtObzswO0w7PGNvbXBhdD4gMDAyOCA0RTk0IDAwMjk7Ozs7Tjs7Ozs7CiszMjI1O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFNJWDtObzswO0w7PGNvbXBhdD4gMDAyOCA1MTZEIDAwMjk7Ozs7Tjs7Ozs7CiszMjI2O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFNFVkVOO05vOzA7TDs8Y29tcGF0PiAwMDI4IDRFMDMgMDAyOTs7OztOOzs7OzsKKzMyMjc7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggRUlHSFQ7Tm87MDtMOzxjb21wYXQ+IDAwMjggNTE2QiAwMDI5Ozs7O047Ozs7OworMzIyODtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBOSU5FO05vOzA7TDs8Y29tcGF0PiAwMDI4IDRFNUQgMDAyOTs7OztOOzs7OzsKKzMyMjk7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggVEVOO05vOzA7TDs8Y29tcGF0PiAwMDI4IDUzNDEgMDAyOTs7OztOOzs7OzsKKzMyMkE7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggTU9PTjtTbzswO0w7PGNvbXBhdD4gMDAyOCA2NzA4IDAwMjk7Ozs7Tjs7Ozs7CiszMjJCO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIEZJUkU7U287MDtMOzxjb21wYXQ+IDAwMjggNzA2QiAwMDI5Ozs7O047Ozs7OworMzIyQztQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBXQVRFUjtTbzswO0w7PGNvbXBhdD4gMDAyOCA2QzM0IDAwMjk7Ozs7Tjs7Ozs7CiszMjJEO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFdPT0Q7U287MDtMOzxjb21wYXQ+IDAwMjggNjcyOCAwMDI5Ozs7O047Ozs7OworMzIyRTtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBNRVRBTDtTbzswO0w7PGNvbXBhdD4gMDAyOCA5MUQxIDAwMjk7Ozs7Tjs7Ozs7CiszMjJGO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIEVBUlRIO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDU3MUYgMDAyOTs7OztOOzs7OzsKKzMyMzA7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggU1VOO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDY1RTUgMDAyOTs7OztOOzs7OzsKKzMyMzE7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggU1RPQ0s7U287MDtMOzxjb21wYXQ+IDAwMjggNjgyQSAwMDI5Ozs7O047Ozs7OworMzIzMjtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBIQVZFO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDY3MDkgMDAyOTs7OztOOzs7OzsKKzMyMzM7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggU09DSUVUWTtTbzswO0w7PGNvbXBhdD4gMDAyOCA3OTNFIDAwMjk7Ozs7Tjs7Ozs7CiszMjM0O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIE5BTUU7U287MDtMOzxjb21wYXQ+IDAwMjggNTQwRCAwMDI5Ozs7O047Ozs7OworMzIzNTtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBTUEVDSUFMO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDcyNzkgMDAyOTs7OztOOzs7OzsKKzMyMzY7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggRklOQU5DSUFMO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDhDQTEgMDAyOTs7OztOOzs7OzsKKzMyMzc7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggQ09OR1JBVFVMQVRJT047U287MDtMOzxjb21wYXQ+IDAwMjggNzk1RCAwMDI5Ozs7O047Ozs7OworMzIzODtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBMQUJPUjtTbzswO0w7PGNvbXBhdD4gMDAyOCA1MkI0IDAwMjk7Ozs7Tjs7Ozs7CiszMjM5O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFJFUFJFU0VOVDtTbzswO0w7PGNvbXBhdD4gMDAyOCA0RUUzIDAwMjk7Ozs7Tjs7Ozs7CiszMjNBO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIENBTEw7U287MDtMOzxjb21wYXQ+IDAwMjggNTQ3QyAwMDI5Ozs7O047Ozs7OworMzIzQjtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBTVFVEWTtTbzswO0w7PGNvbXBhdD4gMDAyOCA1QjY2IDAwMjk7Ozs7Tjs7Ozs7CiszMjNDO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFNVUEVSVklTRTtTbzswO0w7PGNvbXBhdD4gMDAyOCA3NkUzIDAwMjk7Ozs7Tjs7Ozs7CiszMjNEO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIEVOVEVSUFJJU0U7U287MDtMOzxjb21wYXQ+IDAwMjggNEYwMSAwMDI5Ozs7O047Ozs7OworMzIzRTtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBSRVNPVVJDRTtTbzswO0w7PGNvbXBhdD4gMDAyOCA4Q0M3IDAwMjk7Ozs7Tjs7Ozs7CiszMjNGO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIEFMTElBTkNFO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDUzNTQgMDAyOTs7OztOOzs7OzsKKzMyNDA7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggRkVTVElWQUw7U287MDtMOzxjb21wYXQ+IDAwMjggNzk2RCAwMDI5Ozs7O047Ozs7OworMzI0MTtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBSRVNUO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDRGMTEgMDAyOTs7OztOOzs7OzsKKzMyNDI7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggU0VMRjtTbzswO0w7PGNvbXBhdD4gMDAyOCA4MUVBIDAwMjk7Ozs7Tjs7Ozs7CiszMjQzO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFJFQUNIO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDgxRjMgMDAyOTs7OztOOzs7OzsKKzMyNjA7Q0lSQ0xFRCBIQU5HVUwgS0lZRU9LO1NvOzA7TDs8Y2lyY2xlPiAxMTAwOzs7O047Q0lSQ0xFRCBIQU5HVUwgR0lZRU9HOzs7OworMzI2MTtDSVJDTEVEIEhBTkdVTCBOSUVVTjtTbzswO0w7PGNpcmNsZT4gMTEwMjs7OztOOzs7OzsKKzMyNjI7Q0lSQ0xFRCBIQU5HVUwgVElLRVVUO1NvOzA7TDs8Y2lyY2xlPiAxMTAzOzs7O047Q0lSQ0xFRCBIQU5HVUwgRElHRVVEOzs7OworMzI2MztDSVJDTEVEIEhBTkdVTCBSSUVVTDtTbzswO0w7PGNpcmNsZT4gMTEwNTs7OztOO0NJUkNMRUQgSEFOR1VMIExJRVVMOzs7OworMzI2NDtDSVJDTEVEIEhBTkdVTCBNSUVVTTtTbzswO0w7PGNpcmNsZT4gMTEwNjs7OztOOzs7OzsKKzMyNjU7Q0lSQ0xFRCBIQU5HVUwgUElFVVA7U287MDtMOzxjaXJjbGU+IDExMDc7Ozs7TjtDSVJDTEVEIEhBTkdVTCBCSUVVQjs7OzsKKzMyNjY7Q0lSQ0xFRCBIQU5HVUwgU0lPUztTbzswO0w7PGNpcmNsZT4gMTEwOTs7OztOOzs7OzsKKzMyNjc7Q0lSQ0xFRCBIQU5HVUwgSUVVTkc7U287MDtMOzxjaXJjbGU+IDExMEI7Ozs7Tjs7Ozs7CiszMjY4O0NJUkNMRUQgSEFOR1VMIENJRVVDO1NvOzA7TDs8Y2lyY2xlPiAxMTBDOzs7O047Q0lSQ0xFRCBIQU5HVUwgSklFVUo7Ozs7CiszMjY5O0NJUkNMRUQgSEFOR1VMIENISUVVQ0g7U287MDtMOzxjaXJjbGU+IDExMEU7Ozs7TjtDSVJDTEVEIEhBTkdVTCBDSUVVQzs7OzsKKzMyNkE7Q0lSQ0xFRCBIQU5HVUwgS0hJRVVLSDtTbzswO0w7PGNpcmNsZT4gMTEwRjs7OztOO0NJUkNMRUQgSEFOR1VMIEtJWUVPSzs7OzsKKzMyNkI7Q0lSQ0xFRCBIQU5HVUwgVEhJRVVUSDtTbzswO0w7PGNpcmNsZT4gMTExMDs7OztOO0NJUkNMRUQgSEFOR1VMIFRJRVVUOzs7OworMzI2QztDSVJDTEVEIEhBTkdVTCBQSElFVVBIO1NvOzA7TDs8Y2lyY2xlPiAxMTExOzs7O047Q0lSQ0xFRCBIQU5HVUwgUElFVVA7Ozs7CiszMjZEO0NJUkNMRUQgSEFOR1VMIEhJRVVIO1NvOzA7TDs8Y2lyY2xlPiAxMTEyOzs7O047Ozs7OworMzI2RTtDSVJDTEVEIEhBTkdVTCBLSVlFT0sgQTtTbzswO0w7PGNpcmNsZT4gMTEwMCAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgR0E7Ozs7CiszMjZGO0NJUkNMRUQgSEFOR1VMIE5JRVVOIEE7U287MDtMOzxjaXJjbGU+IDExMDIgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIE5BOzs7OworMzI3MDtDSVJDTEVEIEhBTkdVTCBUSUtFVVQgQTtTbzswO0w7PGNpcmNsZT4gMTEwMyAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgREE7Ozs7CiszMjcxO0NJUkNMRUQgSEFOR1VMIFJJRVVMIEE7U287MDtMOzxjaXJjbGU+IDExMDUgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIExBOzs7OworMzI3MjtDSVJDTEVEIEhBTkdVTCBNSUVVTSBBO1NvOzA7TDs8Y2lyY2xlPiAxMTA2IDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBNQTs7OzsKKzMyNzM7Q0lSQ0xFRCBIQU5HVUwgUElFVVAgQTtTbzswO0w7PGNpcmNsZT4gMTEwNyAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgQkE7Ozs7CiszMjc0O0NJUkNMRUQgSEFOR1VMIFNJT1MgQTtTbzswO0w7PGNpcmNsZT4gMTEwOSAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgU0E7Ozs7CiszMjc1O0NJUkNMRUQgSEFOR1VMIElFVU5HIEE7U287MDtMOzxjaXJjbGU+IDExMEIgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIEE7Ozs7CiszMjc2O0NJUkNMRUQgSEFOR1VMIENJRVVDIEE7U287MDtMOzxjaXJjbGU+IDExMEMgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIEpBOzs7OworMzI3NztDSVJDTEVEIEhBTkdVTCBDSElFVUNIIEE7U287MDtMOzxjaXJjbGU+IDExMEUgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIENBOzs7OworMzI3ODtDSVJDTEVEIEhBTkdVTCBLSElFVUtIIEE7U287MDtMOzxjaXJjbGU+IDExMEYgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIEtBOzs7OworMzI3OTtDSVJDTEVEIEhBTkdVTCBUSElFVVRIIEE7U287MDtMOzxjaXJjbGU+IDExMTAgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIFRBOzs7OworMzI3QTtDSVJDTEVEIEhBTkdVTCBQSElFVVBIIEE7U287MDtMOzxjaXJjbGU+IDExMTEgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIFBBOzs7OworMzI3QjtDSVJDTEVEIEhBTkdVTCBISUVVSCBBO1NvOzA7TDs8Y2lyY2xlPiAxMTEyIDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBIQTs7OzsKKzMyN0Y7S09SRUFOIFNUQU5EQVJEIFNZTUJPTDtTbzswO0w7Ozs7O047Ozs7OworMzI4MDtDSVJDTEVEIElERU9HUkFQSCBPTkU7Tm87MDtMOzxjaXJjbGU+IDRFMDA7OzsxO047Ozs7OworMzI4MTtDSVJDTEVEIElERU9HUkFQSCBUV087Tm87MDtMOzxjaXJjbGU+IDRFOEM7OzsyO047Ozs7OworMzI4MjtDSVJDTEVEIElERU9HUkFQSCBUSFJFRTtObzswO0w7PGNpcmNsZT4gNEUwOTs7OzM7Tjs7Ozs7CiszMjgzO0NJUkNMRUQgSURFT0dSQVBIIEZPVVI7Tm87MDtMOzxjaXJjbGU+IDU2REI7Ozs0O047Ozs7OworMzI4NDtDSVJDTEVEIElERU9HUkFQSCBGSVZFO05vOzA7TDs8Y2lyY2xlPiA0RTk0Ozs7NTtOOzs7OzsKKzMyODU7Q0lSQ0xFRCBJREVPR1JBUEggU0lYO05vOzA7TDs8Y2lyY2xlPiA1MTZEOzs7NjtOOzs7OzsKKzMyODY7Q0lSQ0xFRCBJREVPR1JBUEggU0VWRU47Tm87MDtMOzxjaXJjbGU+IDRFMDM7Ozs3O047Ozs7OworMzI4NztDSVJDTEVEIElERU9HUkFQSCBFSUdIVDtObzswO0w7PGNpcmNsZT4gNTE2Qjs7Ozg7Tjs7Ozs7CiszMjg4O0NJUkNMRUQgSURFT0dSQVBIIE5JTkU7Tm87MDtMOzxjaXJjbGU+IDRFNUQ7Ozs5O047Ozs7OworMzI4OTtDSVJDTEVEIElERU9HUkFQSCBURU47Tm87MDtMOzxjaXJjbGU+IDUzNDE7OzsxMDtOOzs7OzsKKzMyOEE7Q0lSQ0xFRCBJREVPR1JBUEggTU9PTjtTbzswO0w7PGNpcmNsZT4gNjcwODs7OztOOzs7OzsKKzMyOEI7Q0lSQ0xFRCBJREVPR1JBUEggRklSRTtTbzswO0w7PGNpcmNsZT4gNzA2Qjs7OztOOzs7OzsKKzMyOEM7Q0lSQ0xFRCBJREVPR1JBUEggV0FURVI7U287MDtMOzxjaXJjbGU+IDZDMzQ7Ozs7Tjs7Ozs7CiszMjhEO0NJUkNMRUQgSURFT0dSQVBIIFdPT0Q7U287MDtMOzxjaXJjbGU+IDY3Mjg7Ozs7Tjs7Ozs7CiszMjhFO0NJUkNMRUQgSURFT0dSQVBIIE1FVEFMO1NvOzA7TDs8Y2lyY2xlPiA5MUQxOzs7O047Ozs7OworMzI4RjtDSVJDTEVEIElERU9HUkFQSCBFQVJUSDtTbzswO0w7PGNpcmNsZT4gNTcxRjs7OztOOzs7OzsKKzMyOTA7Q0lSQ0xFRCBJREVPR1JBUEggU1VOO1NvOzA7TDs8Y2lyY2xlPiA2NUU1Ozs7O047Ozs7OworMzI5MTtDSVJDTEVEIElERU9HUkFQSCBTVE9DSztTbzswO0w7PGNpcmNsZT4gNjgyQTs7OztOOzs7OzsKKzMyOTI7Q0lSQ0xFRCBJREVPR1JBUEggSEFWRTtTbzswO0w7PGNpcmNsZT4gNjcwOTs7OztOOzs7OzsKKzMyOTM7Q0lSQ0xFRCBJREVPR1JBUEggU09DSUVUWTtTbzswO0w7PGNpcmNsZT4gNzkzRTs7OztOOzs7OzsKKzMyOTQ7Q0lSQ0xFRCBJREVPR1JBUEggTkFNRTtTbzswO0w7PGNpcmNsZT4gNTQwRDs7OztOOzs7OzsKKzMyOTU7Q0lSQ0xFRCBJREVPR1JBUEggU1BFQ0lBTDtTbzswO0w7PGNpcmNsZT4gNzI3OTs7OztOOzs7OzsKKzMyOTY7Q0lSQ0xFRCBJREVPR1JBUEggRklOQU5DSUFMO1NvOzA7TDs8Y2lyY2xlPiA4Q0ExOzs7O047Ozs7OworMzI5NztDSVJDTEVEIElERU9HUkFQSCBDT05HUkFUVUxBVElPTjtTbzswO0w7PGNpcmNsZT4gNzk1RDs7OztOOzs7OzsKKzMyOTg7Q0lSQ0xFRCBJREVPR1JBUEggTEFCT1I7U287MDtMOzxjaXJjbGU+IDUyQjQ7Ozs7Tjs7Ozs7CiszMjk5O0NJUkNMRUQgSURFT0dSQVBIIFNFQ1JFVDtTbzswO0w7PGNpcmNsZT4gNzlEODs7OztOOzs7OzsKKzMyOUE7Q0lSQ0xFRCBJREVPR1JBUEggTUFMRTtTbzswO0w7PGNpcmNsZT4gNzUzNzs7OztOOzs7OzsKKzMyOUI7Q0lSQ0xFRCBJREVPR1JBUEggRkVNQUxFO1NvOzA7TDs8Y2lyY2xlPiA1OTczOzs7O047Ozs7OworMzI5QztDSVJDTEVEIElERU9HUkFQSCBTVUlUQUJMRTtTbzswO0w7PGNpcmNsZT4gOTA2OTs7OztOOzs7OzsKKzMyOUQ7Q0lSQ0xFRCBJREVPR1JBUEggRVhDRUxMRU5UO1NvOzA7TDs8Y2lyY2xlPiA1MTJBOzs7O047Ozs7OworMzI5RTtDSVJDTEVEIElERU9HUkFQSCBQUklOVDtTbzswO0w7PGNpcmNsZT4gNTM3MDs7OztOOzs7OzsKKzMyOUY7Q0lSQ0xFRCBJREVPR1JBUEggQVRURU5USU9OO1NvOzA7TDs8Y2lyY2xlPiA2Q0U4Ozs7O047Ozs7OworMzJBMDtDSVJDTEVEIElERU9HUkFQSCBJVEVNO1NvOzA7TDs8Y2lyY2xlPiA5ODA1Ozs7O047Ozs7OworMzJBMTtDSVJDTEVEIElERU9HUkFQSCBSRVNUO1NvOzA7TDs8Y2lyY2xlPiA0RjExOzs7O047Ozs7OworMzJBMjtDSVJDTEVEIElERU9HUkFQSCBDT1BZO1NvOzA7TDs8Y2lyY2xlPiA1MTk5Ozs7O047Ozs7OworMzJBMztDSVJDTEVEIElERU9HUkFQSCBDT1JSRUNUO1NvOzA7TDs8Y2lyY2xlPiA2QjYzOzs7O047Ozs7OworMzJBNDtDSVJDTEVEIElERU9HUkFQSCBISUdIO1NvOzA7TDs8Y2lyY2xlPiA0RTBBOzs7O047Ozs7OworMzJBNTtDSVJDTEVEIElERU9HUkFQSCBDRU5UUkU7U287MDtMOzxjaXJjbGU+IDRFMkQ7Ozs7TjtDSVJDTEVEIElERU9HUkFQSCBDRU5URVI7Ozs7CiszMkE2O0NJUkNMRUQgSURFT0dSQVBIIExPVztTbzswO0w7PGNpcmNsZT4gNEUwQjs7OztOOzs7OzsKKzMyQTc7Q0lSQ0xFRCBJREVPR1JBUEggTEVGVDtTbzswO0w7PGNpcmNsZT4gNURFNjs7OztOOzs7OzsKKzMyQTg7Q0lSQ0xFRCBJREVPR1JBUEggUklHSFQ7U287MDtMOzxjaXJjbGU+IDUzRjM7Ozs7Tjs7Ozs7CiszMkE5O0NJUkNMRUQgSURFT0dSQVBIIE1FRElDSU5FO1NvOzA7TDs8Y2lyY2xlPiA1MzNCOzs7O047Ozs7OworMzJBQTtDSVJDTEVEIElERU9HUkFQSCBSRUxJR0lPTjtTbzswO0w7PGNpcmNsZT4gNUI5Nzs7OztOOzs7OzsKKzMyQUI7Q0lSQ0xFRCBJREVPR1JBUEggU1RVRFk7U287MDtMOzxjaXJjbGU+IDVCNjY7Ozs7Tjs7Ozs7CiszMkFDO0NJUkNMRUQgSURFT0dSQVBIIFNVUEVSVklTRTtTbzswO0w7PGNpcmNsZT4gNzZFMzs7OztOOzs7OzsKKzMyQUQ7Q0lSQ0xFRCBJREVPR1JBUEggRU5URVJQUklTRTtTbzswO0w7PGNpcmNsZT4gNEYwMTs7OztOOzs7OzsKKzMyQUU7Q0lSQ0xFRCBJREVPR1JBUEggUkVTT1VSQ0U7U287MDtMOzxjaXJjbGU+IDhDQzc7Ozs7Tjs7Ozs7CiszMkFGO0NJUkNMRUQgSURFT0dSQVBIIEFMTElBTkNFO1NvOzA7TDs8Y2lyY2xlPiA1MzU0Ozs7O047Ozs7OworMzJCMDtDSVJDTEVEIElERU9HUkFQSCBOSUdIVDtTbzswO0w7PGNpcmNsZT4gNTkxQzs7OztOOzs7OzsKKzMyQzA7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSkFOVUFSWTtTbzswO0w7PGNvbXBhdD4gMDAzMSA2NzA4Ozs7O047Ozs7OworMzJDMTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBGRUJSVUFSWTtTbzswO0w7PGNvbXBhdD4gMDAzMiA2NzA4Ozs7O047Ozs7OworMzJDMjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBNQVJDSDtTbzswO0w7PGNvbXBhdD4gMDAzMyA2NzA4Ozs7O047Ozs7OworMzJDMztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBBUFJJTDtTbzswO0w7PGNvbXBhdD4gMDAzNCA2NzA4Ozs7O047Ozs7OworMzJDNDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBNQVk7U287MDtMOzxjb21wYXQ+IDAwMzUgNjcwODs7OztOOzs7OzsKKzMyQzU7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSlVORTtTbzswO0w7PGNvbXBhdD4gMDAzNiA2NzA4Ozs7O047Ozs7OworMzJDNjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBKVUxZO1NvOzA7TDs8Y29tcGF0PiAwMDM3IDY3MDg7Ozs7Tjs7Ozs7CiszMkM3O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEFVR1VTVDtTbzswO0w7PGNvbXBhdD4gMDAzOCA2NzA4Ozs7O047Ozs7OworMzJDODtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBTRVBURU1CRVI7U287MDtMOzxjb21wYXQ+IDAwMzkgNjcwODs7OztOOzs7OzsKKzMyQzk7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgT0NUT0JFUjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDMwIDY3MDg7Ozs7Tjs7Ozs7CiszMkNBO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIE5PVkVNQkVSO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzEgNjcwODs7OztOOzs7OzsKKzMyQ0I7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREVDRU1CRVI7U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzMiA2NzA4Ozs7O047Ozs7OworMzJEMDtDSVJDTEVEIEtBVEFLQU5BIEE7U287MDtMOzxjaXJjbGU+IDMwQTI7Ozs7Tjs7Ozs7CiszMkQxO0NJUkNMRUQgS0FUQUtBTkEgSTtTbzswO0w7PGNpcmNsZT4gMzBBNDs7OztOOzs7OzsKKzMyRDI7Q0lSQ0xFRCBLQVRBS0FOQSBVO1NvOzA7TDs8Y2lyY2xlPiAzMEE2Ozs7O047Ozs7OworMzJEMztDSVJDTEVEIEtBVEFLQU5BIEU7U287MDtMOzxjaXJjbGU+IDMwQTg7Ozs7Tjs7Ozs7CiszMkQ0O0NJUkNMRUQgS0FUQUtBTkEgTztTbzswO0w7PGNpcmNsZT4gMzBBQTs7OztOOzs7OzsKKzMyRDU7Q0lSQ0xFRCBLQVRBS0FOQSBLQTtTbzswO0w7PGNpcmNsZT4gMzBBQjs7OztOOzs7OzsKKzMyRDY7Q0lSQ0xFRCBLQVRBS0FOQSBLSTtTbzswO0w7PGNpcmNsZT4gMzBBRDs7OztOOzs7OzsKKzMyRDc7Q0lSQ0xFRCBLQVRBS0FOQSBLVTtTbzswO0w7PGNpcmNsZT4gMzBBRjs7OztOOzs7OzsKKzMyRDg7Q0lSQ0xFRCBLQVRBS0FOQSBLRTtTbzswO0w7PGNpcmNsZT4gMzBCMTs7OztOOzs7OzsKKzMyRDk7Q0lSQ0xFRCBLQVRBS0FOQSBLTztTbzswO0w7PGNpcmNsZT4gMzBCMzs7OztOOzs7OzsKKzMyREE7Q0lSQ0xFRCBLQVRBS0FOQSBTQTtTbzswO0w7PGNpcmNsZT4gMzBCNTs7OztOOzs7OzsKKzMyREI7Q0lSQ0xFRCBLQVRBS0FOQSBTSTtTbzswO0w7PGNpcmNsZT4gMzBCNzs7OztOOzs7OzsKKzMyREM7Q0lSQ0xFRCBLQVRBS0FOQSBTVTtTbzswO0w7PGNpcmNsZT4gMzBCOTs7OztOOzs7OzsKKzMyREQ7Q0lSQ0xFRCBLQVRBS0FOQSBTRTtTbzswO0w7PGNpcmNsZT4gMzBCQjs7OztOOzs7OzsKKzMyREU7Q0lSQ0xFRCBLQVRBS0FOQSBTTztTbzswO0w7PGNpcmNsZT4gMzBCRDs7OztOOzs7OzsKKzMyREY7Q0lSQ0xFRCBLQVRBS0FOQSBUQTtTbzswO0w7PGNpcmNsZT4gMzBCRjs7OztOOzs7OzsKKzMyRTA7Q0lSQ0xFRCBLQVRBS0FOQSBUSTtTbzswO0w7PGNpcmNsZT4gMzBDMTs7OztOOzs7OzsKKzMyRTE7Q0lSQ0xFRCBLQVRBS0FOQSBUVTtTbzswO0w7PGNpcmNsZT4gMzBDNDs7OztOOzs7OzsKKzMyRTI7Q0lSQ0xFRCBLQVRBS0FOQSBURTtTbzswO0w7PGNpcmNsZT4gMzBDNjs7OztOOzs7OzsKKzMyRTM7Q0lSQ0xFRCBLQVRBS0FOQSBUTztTbzswO0w7PGNpcmNsZT4gMzBDODs7OztOOzs7OzsKKzMyRTQ7Q0lSQ0xFRCBLQVRBS0FOQSBOQTtTbzswO0w7PGNpcmNsZT4gMzBDQTs7OztOOzs7OzsKKzMyRTU7Q0lSQ0xFRCBLQVRBS0FOQSBOSTtTbzswO0w7PGNpcmNsZT4gMzBDQjs7OztOOzs7OzsKKzMyRTY7Q0lSQ0xFRCBLQVRBS0FOQSBOVTtTbzswO0w7PGNpcmNsZT4gMzBDQzs7OztOOzs7OzsKKzMyRTc7Q0lSQ0xFRCBLQVRBS0FOQSBORTtTbzswO0w7PGNpcmNsZT4gMzBDRDs7OztOOzs7OzsKKzMyRTg7Q0lSQ0xFRCBLQVRBS0FOQSBOTztTbzswO0w7PGNpcmNsZT4gMzBDRTs7OztOOzs7OzsKKzMyRTk7Q0lSQ0xFRCBLQVRBS0FOQSBIQTtTbzswO0w7PGNpcmNsZT4gMzBDRjs7OztOOzs7OzsKKzMyRUE7Q0lSQ0xFRCBLQVRBS0FOQSBISTtTbzswO0w7PGNpcmNsZT4gMzBEMjs7OztOOzs7OzsKKzMyRUI7Q0lSQ0xFRCBLQVRBS0FOQSBIVTtTbzswO0w7PGNpcmNsZT4gMzBENTs7OztOOzs7OzsKKzMyRUM7Q0lSQ0xFRCBLQVRBS0FOQSBIRTtTbzswO0w7PGNpcmNsZT4gMzBEODs7OztOOzs7OzsKKzMyRUQ7Q0lSQ0xFRCBLQVRBS0FOQSBITztTbzswO0w7PGNpcmNsZT4gMzBEQjs7OztOOzs7OzsKKzMyRUU7Q0lSQ0xFRCBLQVRBS0FOQSBNQTtTbzswO0w7PGNpcmNsZT4gMzBERTs7OztOOzs7OzsKKzMyRUY7Q0lSQ0xFRCBLQVRBS0FOQSBNSTtTbzswO0w7PGNpcmNsZT4gMzBERjs7OztOOzs7OzsKKzMyRjA7Q0lSQ0xFRCBLQVRBS0FOQSBNVTtTbzswO0w7PGNpcmNsZT4gMzBFMDs7OztOOzs7OzsKKzMyRjE7Q0lSQ0xFRCBLQVRBS0FOQSBNRTtTbzswO0w7PGNpcmNsZT4gMzBFMTs7OztOOzs7OzsKKzMyRjI7Q0lSQ0xFRCBLQVRBS0FOQSBNTztTbzswO0w7PGNpcmNsZT4gMzBFMjs7OztOOzs7OzsKKzMyRjM7Q0lSQ0xFRCBLQVRBS0FOQSBZQTtTbzswO0w7PGNpcmNsZT4gMzBFNDs7OztOOzs7OzsKKzMyRjQ7Q0lSQ0xFRCBLQVRBS0FOQSBZVTtTbzswO0w7PGNpcmNsZT4gMzBFNjs7OztOOzs7OzsKKzMyRjU7Q0lSQ0xFRCBLQVRBS0FOQSBZTztTbzswO0w7PGNpcmNsZT4gMzBFODs7OztOOzs7OzsKKzMyRjY7Q0lSQ0xFRCBLQVRBS0FOQSBSQTtTbzswO0w7PGNpcmNsZT4gMzBFOTs7OztOOzs7OzsKKzMyRjc7Q0lSQ0xFRCBLQVRBS0FOQSBSSTtTbzswO0w7PGNpcmNsZT4gMzBFQTs7OztOOzs7OzsKKzMyRjg7Q0lSQ0xFRCBLQVRBS0FOQSBSVTtTbzswO0w7PGNpcmNsZT4gMzBFQjs7OztOOzs7OzsKKzMyRjk7Q0lSQ0xFRCBLQVRBS0FOQSBSRTtTbzswO0w7PGNpcmNsZT4gMzBFQzs7OztOOzs7OzsKKzMyRkE7Q0lSQ0xFRCBLQVRBS0FOQSBSTztTbzswO0w7PGNpcmNsZT4gMzBFRDs7OztOOzs7OzsKKzMyRkI7Q0lSQ0xFRCBLQVRBS0FOQSBXQTtTbzswO0w7PGNpcmNsZT4gMzBFRjs7OztOOzs7OzsKKzMyRkM7Q0lSQ0xFRCBLQVRBS0FOQSBXSTtTbzswO0w7PGNpcmNsZT4gMzBGMDs7OztOOzs7OzsKKzMyRkQ7Q0lSQ0xFRCBLQVRBS0FOQSBXRTtTbzswO0w7PGNpcmNsZT4gMzBGMTs7OztOOzs7OzsKKzMyRkU7Q0lSQ0xFRCBLQVRBS0FOQSBXTztTbzswO0w7PGNpcmNsZT4gMzBGMjs7OztOOzs7OzsKKzMzMDA7U1FVQVJFIEFQQUFUTztTbzswO0w7PHNxdWFyZT4gMzBBMiAzMEQxIDMwRkMgMzBDODs7OztOO1NRVUFSRUQgQVBBQVRPOzs7OworMzMwMTtTUVVBUkUgQVJVSFVBO1NvOzA7TDs8c3F1YXJlPiAzMEEyIDMwRUIgMzBENSAzMEExOzs7O047U1FVQVJFRCBBUlVIVUE7Ozs7CiszMzAyO1NRVUFSRSBBTlBFQTtTbzswO0w7PHNxdWFyZT4gMzBBMiAzMEYzIDMwREEgMzBBMjs7OztOO1NRVUFSRUQgQU5QRUE7Ozs7CiszMzAzO1NRVUFSRSBBQVJVO1NvOzA7TDs8c3F1YXJlPiAzMEEyIDMwRkMgMzBFQjs7OztOO1NRVUFSRUQgQUFSVTs7OzsKKzMzMDQ7U1FVQVJFIElOSU5HVTtTbzswO0w7PHNxdWFyZT4gMzBBNCAzMENCIDMwRjMgMzBCMDs7OztOO1NRVUFSRUQgSU5JTkdVOzs7OworMzMwNTtTUVVBUkUgSU5USTtTbzswO0w7PHNxdWFyZT4gMzBBNCAzMEYzIDMwQzE7Ozs7TjtTUVVBUkVEIElOVEk7Ozs7CiszMzA2O1NRVUFSRSBVT047U287MDtMOzxzcXVhcmU+IDMwQTYgMzBBOSAzMEYzOzs7O047U1FVQVJFRCBVT047Ozs7CiszMzA3O1NRVUFSRSBFU1VLVVVETztTbzswO0w7PHNxdWFyZT4gMzBBOCAzMEI5IDMwQUYgMzBGQyAzMEM5Ozs7O047U1FVQVJFRCBFU1VLVVVETzs7OzsKKzMzMDg7U1FVQVJFIEVFS0FBO1NvOzA7TDs8c3F1YXJlPiAzMEE4IDMwRkMgMzBBQiAzMEZDOzs7O047U1FVQVJFRCBFRUtBQTs7OzsKKzMzMDk7U1FVQVJFIE9OU1U7U287MDtMOzxzcXVhcmU+IDMwQUEgMzBGMyAzMEI5Ozs7O047U1FVQVJFRCBPTlNVOzs7OworMzMwQTtTUVVBUkUgT09NVTtTbzswO0w7PHNxdWFyZT4gMzBBQSAzMEZDIDMwRTA7Ozs7TjtTUVVBUkVEIE9PTVU7Ozs7CiszMzBCO1NRVUFSRSBLQUlSSTtTbzswO0w7PHNxdWFyZT4gMzBBQiAzMEE0IDMwRUE7Ozs7TjtTUVVBUkVEIEtBSVJJOzs7OworMzMwQztTUVVBUkUgS0FSQVRUTztTbzswO0w7PHNxdWFyZT4gMzBBQiAzMEU5IDMwQzMgMzBDODs7OztOO1NRVUFSRUQgS0FSQVRUTzs7OzsKKzMzMEQ7U1FVQVJFIEtBUk9SSUk7U287MDtMOzxzcXVhcmU+IDMwQUIgMzBFRCAzMEVBIDMwRkM7Ozs7TjtTUVVBUkVEIEtBUk9SSUk7Ozs7CiszMzBFO1NRVUFSRSBHQVJPTjtTbzswO0w7PHNxdWFyZT4gMzBBQyAzMEVEIDMwRjM7Ozs7TjtTUVVBUkVEIEdBUk9OOzs7OworMzMwRjtTUVVBUkUgR0FOTUE7U287MDtMOzxzcXVhcmU+IDMwQUMgMzBGMyAzMERFOzs7O047U1FVQVJFRCBHQU5NQTs7OzsKKzMzMTA7U1FVQVJFIEdJR0E7U287MDtMOzxzcXVhcmU+IDMwQUUgMzBBQzs7OztOO1NRVUFSRUQgR0lHQTs7OzsKKzMzMTE7U1FVQVJFIEdJTklJO1NvOzA7TDs8c3F1YXJlPiAzMEFFIDMwQ0IgMzBGQzs7OztOO1NRVUFSRUQgR0lOSUk7Ozs7CiszMzEyO1NRVUFSRSBLWVVSSUk7U287MDtMOzxzcXVhcmU+IDMwQUQgMzBFNSAzMEVBIDMwRkM7Ozs7TjtTUVVBUkVEIEtZVVJJSTs7OzsKKzMzMTM7U1FVQVJFIEdJUlVEQUE7U287MDtMOzxzcXVhcmU+IDMwQUUgMzBFQiAzMEMwIDMwRkM7Ozs7TjtTUVVBUkVEIEdJUlVEQUE7Ozs7CiszMzE0O1NRVUFSRSBLSVJPO1NvOzA7TDs8c3F1YXJlPiAzMEFEIDMwRUQ7Ozs7TjtTUVVBUkVEIEtJUk87Ozs7CiszMzE1O1NRVUFSRSBLSVJPR1VSQU1VO1NvOzA7TDs8c3F1YXJlPiAzMEFEIDMwRUQgMzBCMCAzMEU5IDMwRTA7Ozs7TjtTUVVBUkVEIEtJUk9HVVJBTVU7Ozs7CiszMzE2O1NRVUFSRSBLSVJPTUVFVE9SVTtTbzswO0w7PHNxdWFyZT4gMzBBRCAzMEVEIDMwRTEgMzBGQyAzMEM4IDMwRUI7Ozs7TjtTUVVBUkVEIEtJUk9NRUVUT1JVOzs7OworMzMxNztTUVVBUkUgS0lST1dBVFRPO1NvOzA7TDs8c3F1YXJlPiAzMEFEIDMwRUQgMzBFRiAzMEMzIDMwQzg7Ozs7TjtTUVVBUkVEIEtJUk9XQVRUTzs7OzsKKzMzMTg7U1FVQVJFIEdVUkFNVTtTbzswO0w7PHNxdWFyZT4gMzBCMCAzMEU5IDMwRTA7Ozs7TjtTUVVBUkVEIEdVUkFNVTs7OzsKKzMzMTk7U1FVQVJFIEdVUkFNVVRPTjtTbzswO0w7PHNxdWFyZT4gMzBCMCAzMEU5IDMwRTAgMzBDOCAzMEYzOzs7O047U1FVQVJFRCBHVVJBTVVUT047Ozs7CiszMzFBO1NRVUFSRSBLVVJVWkVJUk87U287MDtMOzxzcXVhcmU+IDMwQUYgMzBFQiAzMEJDIDMwQTQgMzBFRDs7OztOO1NRVUFSRUQgS1VSVVpFSVJPOzs7OworMzMxQjtTUVVBUkUgS1VST09ORTtTbzswO0w7PHNxdWFyZT4gMzBBRiAzMEVEIDMwRkMgMzBDRDs7OztOO1NRVUFSRUQgS1VST09ORTs7OzsKKzMzMUM7U1FVQVJFIEtFRVNVO1NvOzA7TDs8c3F1YXJlPiAzMEIxIDMwRkMgMzBCOTs7OztOO1NRVUFSRUQgS0VFU1U7Ozs7CiszMzFEO1NRVUFSRSBLT1JVTkE7U287MDtMOzxzcXVhcmU+IDMwQjMgMzBFQiAzMENBOzs7O047U1FVQVJFRCBLT1JVTkE7Ozs7CiszMzFFO1NRVUFSRSBLT09QTztTbzswO0w7PHNxdWFyZT4gMzBCMyAzMEZDIDMwREQ7Ozs7TjtTUVVBUkVEIEtPT1BPOzs7OworMzMxRjtTUVVBUkUgU0FJS1VSVTtTbzswO0w7PHNxdWFyZT4gMzBCNSAzMEE0IDMwQUYgMzBFQjs7OztOO1NRVUFSRUQgU0FJS1VSVTs7OzsKKzMzMjA7U1FVQVJFIFNBTlRJSU1VO1NvOzA7TDs8c3F1YXJlPiAzMEI1IDMwRjMgMzBDMSAzMEZDIDMwRTA7Ozs7TjtTUVVBUkVEIFNBTlRJSU1VOzs7OworMzMyMTtTUVVBUkUgU0lSSU5HVTtTbzswO0w7PHNxdWFyZT4gMzBCNyAzMEVBIDMwRjMgMzBCMDs7OztOO1NRVUFSRUQgU0lSSU5HVTs7OzsKKzMzMjI7U1FVQVJFIFNFTlRJO1NvOzA7TDs8c3F1YXJlPiAzMEJCIDMwRjMgMzBDMTs7OztOO1NRVUFSRUQgU0VOVEk7Ozs7CiszMzIzO1NRVUFSRSBTRU5UTztTbzswO0w7PHNxdWFyZT4gMzBCQiAzMEYzIDMwQzg7Ozs7TjtTUVVBUkVEIFNFTlRPOzs7OworMzMyNDtTUVVBUkUgREFBU1U7U287MDtMOzxzcXVhcmU+IDMwQzAgMzBGQyAzMEI5Ozs7O047U1FVQVJFRCBEQUFTVTs7OzsKKzMzMjU7U1FVQVJFIERFU0k7U287MDtMOzxzcXVhcmU+IDMwQzcgMzBCNzs7OztOO1NRVUFSRUQgREVTSTs7OzsKKzMzMjY7U1FVQVJFIERPUlU7U287MDtMOzxzcXVhcmU+IDMwQzkgMzBFQjs7OztOO1NRVUFSRUQgRE9SVTs7OzsKKzMzMjc7U1FVQVJFIFRPTjtTbzswO0w7PHNxdWFyZT4gMzBDOCAzMEYzOzs7O047U1FVQVJFRCBUT047Ozs7CiszMzI4O1NRVUFSRSBOQU5PO1NvOzA7TDs8c3F1YXJlPiAzMENBIDMwQ0U7Ozs7TjtTUVVBUkVEIE5BTk87Ozs7CiszMzI5O1NRVUFSRSBOT1RUTztTbzswO0w7PHNxdWFyZT4gMzBDRSAzMEMzIDMwQzg7Ozs7TjtTUVVBUkVEIE5PVFRPOzs7OworMzMyQTtTUVVBUkUgSEFJVFU7U287MDtMOzxzcXVhcmU+IDMwQ0YgMzBBNCAzMEM0Ozs7O047U1FVQVJFRCBIQUlUVTs7OzsKKzMzMkI7U1FVQVJFIFBBQVNFTlRPO1NvOzA7TDs8c3F1YXJlPiAzMEQxIDMwRkMgMzBCQiAzMEYzIDMwQzg7Ozs7TjtTUVVBUkVEIFBBQVNFTlRPOzs7OworMzMyQztTUVVBUkUgUEFBVFU7U287MDtMOzxzcXVhcmU+IDMwRDEgMzBGQyAzMEM0Ozs7O047U1FVQVJFRCBQQUFUVTs7OzsKKzMzMkQ7U1FVQVJFIEJBQVJFUlU7U287MDtMOzxzcXVhcmU+IDMwRDAgMzBGQyAzMEVDIDMwRUI7Ozs7TjtTUVVBUkVEIEJBQVJFUlU7Ozs7CiszMzJFO1NRVUFSRSBQSUFTVVRPUlU7U287MDtMOzxzcXVhcmU+IDMwRDQgMzBBMiAzMEI5IDMwQzggMzBFQjs7OztOO1NRVUFSRUQgUElBU1VUT1JVOzs7OworMzMyRjtTUVVBUkUgUElLVVJVO1NvOzA7TDs8c3F1YXJlPiAzMEQ0IDMwQUYgMzBFQjs7OztOO1NRVUFSRUQgUElLVVJVOzs7OworMzMzMDtTUVVBUkUgUElLTztTbzswO0w7PHNxdWFyZT4gMzBENCAzMEIzOzs7O047U1FVQVJFRCBQSUtPOzs7OworMzMzMTtTUVVBUkUgQklSVTtTbzswO0w7PHNxdWFyZT4gMzBEMyAzMEVCOzs7O047U1FVQVJFRCBCSVJVOzs7OworMzMzMjtTUVVBUkUgSFVBUkFERE87U287MDtMOzxzcXVhcmU+IDMwRDUgMzBBMSAzMEU5IDMwQzMgMzBDOTs7OztOO1NRVUFSRUQgSFVBUkFERE87Ozs7CiszMzMzO1NRVUFSRSBIVUlJVE87U287MDtMOzxzcXVhcmU+IDMwRDUgMzBBMyAzMEZDIDMwQzg7Ozs7TjtTUVVBUkVEIEhVSUlUTzs7OzsKKzMzMzQ7U1FVQVJFIEJVU1NZRVJVO1NvOzA7TDs8c3F1YXJlPiAzMEQ2IDMwQzMgMzBCNyAzMEE3IDMwRUI7Ozs7TjtTUVVBUkVEIEJVU1NZRVJVOzs7OworMzMzNTtTUVVBUkUgSFVSQU47U287MDtMOzxzcXVhcmU+IDMwRDUgMzBFOSAzMEYzOzs7O047U1FVQVJFRCBIVVJBTjs7OzsKKzMzMzY7U1FVQVJFIEhFS1VUQUFSVTtTbzswO0w7PHNxdWFyZT4gMzBEOCAzMEFGIDMwQkYgMzBGQyAzMEVCOzs7O047U1FVQVJFRCBIRUtVVEFBUlU7Ozs7CiszMzM3O1NRVUFSRSBQRVNPO1NvOzA7TDs8c3F1YXJlPiAzMERBIDMwQkQ7Ozs7TjtTUVVBUkVEIFBFU087Ozs7CiszMzM4O1NRVUFSRSBQRU5JSEk7U287MDtMOzxzcXVhcmU+IDMwREEgMzBDQiAzMEQyOzs7O047U1FVQVJFRCBQRU5JSEk7Ozs7CiszMzM5O1NRVUFSRSBIRVJVVFU7U287MDtMOzxzcXVhcmU+IDMwRDggMzBFQiAzMEM0Ozs7O047U1FVQVJFRCBIRVJVVFU7Ozs7CiszMzNBO1NRVUFSRSBQRU5TVTtTbzswO0w7PHNxdWFyZT4gMzBEQSAzMEYzIDMwQjk7Ozs7TjtTUVVBUkVEIFBFTlNVOzs7OworMzMzQjtTUVVBUkUgUEVFWkk7U287MDtMOzxzcXVhcmU+IDMwREEgMzBGQyAzMEI4Ozs7O047U1FVQVJFRCBQRUVaSTs7OzsKKzMzM0M7U1FVQVJFIEJFRVRBO1NvOzA7TDs8c3F1YXJlPiAzMEQ5IDMwRkMgMzBCRjs7OztOO1NRVUFSRUQgQkVFVEE7Ozs7CiszMzNEO1NRVUFSRSBQT0lOVE87U287MDtMOzxzcXVhcmU+IDMwREQgMzBBNCAzMEYzIDMwQzg7Ozs7TjtTUVVBUkVEIFBPSU5UTzs7OzsKKzMzM0U7U1FVQVJFIEJPUlVUTztTbzswO0w7PHNxdWFyZT4gMzBEQyAzMEVCIDMwQzg7Ozs7TjtTUVVBUkVEIEJPUlVUTzs7OzsKKzMzM0Y7U1FVQVJFIEhPTjtTbzswO0w7PHNxdWFyZT4gMzBEQiAzMEYzOzs7O047U1FVQVJFRCBIT047Ozs7CiszMzQwO1NRVUFSRSBQT05ETztTbzswO0w7PHNxdWFyZT4gMzBERCAzMEYzIDMwQzk7Ozs7TjtTUVVBUkVEIFBPTkRPOzs7OworMzM0MTtTUVVBUkUgSE9PUlU7U287MDtMOzxzcXVhcmU+IDMwREIgMzBGQyAzMEVCOzs7O047U1FVQVJFRCBIT09SVTs7OzsKKzMzNDI7U1FVQVJFIEhPT047U287MDtMOzxzcXVhcmU+IDMwREIgMzBGQyAzMEYzOzs7O047U1FVQVJFRCBIT09OOzs7OworMzM0MztTUVVBUkUgTUFJS1VSTztTbzswO0w7PHNxdWFyZT4gMzBERSAzMEE0IDMwQUYgMzBFRDs7OztOO1NRVUFSRUQgTUFJS1VSTzs7OzsKKzMzNDQ7U1FVQVJFIE1BSVJVO1NvOzA7TDs8c3F1YXJlPiAzMERFIDMwQTQgMzBFQjs7OztOO1NRVUFSRUQgTUFJUlU7Ozs7CiszMzQ1O1NRVUFSRSBNQUhIQTtTbzswO0w7PHNxdWFyZT4gMzBERSAzMEMzIDMwQ0Y7Ozs7TjtTUVVBUkVEIE1BSEhBOzs7OworMzM0NjtTUVVBUkUgTUFSVUtVO1NvOzA7TDs8c3F1YXJlPiAzMERFIDMwRUIgMzBBRjs7OztOO1NRVUFSRUQgTUFSVUtVOzs7OworMzM0NztTUVVBUkUgTUFOU1lPTjtTbzswO0w7PHNxdWFyZT4gMzBERSAzMEYzIDMwQjcgMzBFNyAzMEYzOzs7O047U1FVQVJFRCBNQU5TWU9OOzs7OworMzM0ODtTUVVBUkUgTUlLVVJPTjtTbzswO0w7PHNxdWFyZT4gMzBERiAzMEFGIDMwRUQgMzBGMzs7OztOO1NRVUFSRUQgTUlLVVJPTjs7OzsKKzMzNDk7U1FVQVJFIE1JUkk7U287MDtMOzxzcXVhcmU+IDMwREYgMzBFQTs7OztOO1NRVUFSRUQgTUlSSTs7OzsKKzMzNEE7U1FVQVJFIE1JUklCQUFSVTtTbzswO0w7PHNxdWFyZT4gMzBERiAzMEVBIDMwRDAgMzBGQyAzMEVCOzs7O047U1FVQVJFRCBNSVJJQkFBUlU7Ozs7CiszMzRCO1NRVUFSRSBNRUdBO1NvOzA7TDs8c3F1YXJlPiAzMEUxIDMwQUM7Ozs7TjtTUVVBUkVEIE1FR0E7Ozs7CiszMzRDO1NRVUFSRSBNRUdBVE9OO1NvOzA7TDs8c3F1YXJlPiAzMEUxIDMwQUMgMzBDOCAzMEYzOzs7O047U1FVQVJFRCBNRUdBVE9OOzs7OworMzM0RDtTUVVBUkUgTUVFVE9SVTtTbzswO0w7PHNxdWFyZT4gMzBFMSAzMEZDIDMwQzggMzBFQjs7OztOO1NRVUFSRUQgTUVFVE9SVTs7OzsKKzMzNEU7U1FVQVJFIFlBQURPO1NvOzA7TDs8c3F1YXJlPiAzMEU0IDMwRkMgMzBDOTs7OztOO1NRVUFSRUQgWUFBRE87Ozs7CiszMzRGO1NRVUFSRSBZQUFSVTtTbzswO0w7PHNxdWFyZT4gMzBFNCAzMEZDIDMwRUI7Ozs7TjtTUVVBUkVEIFlBQVJVOzs7OworMzM1MDtTUVVBUkUgWVVBTjtTbzswO0w7PHNxdWFyZT4gMzBFNiAzMEEyIDMwRjM7Ozs7TjtTUVVBUkVEIFlVQU47Ozs7CiszMzUxO1NRVUFSRSBSSVRUT1JVO1NvOzA7TDs8c3F1YXJlPiAzMEVBIDMwQzMgMzBDOCAzMEVCOzs7O047U1FVQVJFRCBSSVRUT1JVOzs7OworMzM1MjtTUVVBUkUgUklSQTtTbzswO0w7PHNxdWFyZT4gMzBFQSAzMEU5Ozs7O047U1FVQVJFRCBSSVJBOzs7OworMzM1MztTUVVBUkUgUlVQSUk7U287MDtMOzxzcXVhcmU+IDMwRUIgMzBENCAzMEZDOzs7O047U1FVQVJFRCBSVVBJSTs7OzsKKzMzNTQ7U1FVQVJFIFJVVUJVUlU7U287MDtMOzxzcXVhcmU+IDMwRUIgMzBGQyAzMEQ2IDMwRUI7Ozs7TjtTUVVBUkVEIFJVVUJVUlU7Ozs7CiszMzU1O1NRVUFSRSBSRU1VO1NvOzA7TDs8c3F1YXJlPiAzMEVDIDMwRTA7Ozs7TjtTUVVBUkVEIFJFTVU7Ozs7CiszMzU2O1NRVUFSRSBSRU5UT0dFTjtTbzswO0w7PHNxdWFyZT4gMzBFQyAzMEYzIDMwQzggMzBCMiAzMEYzOzs7O047U1FVQVJFRCBSRU5UT0dFTjs7OzsKKzMzNTc7U1FVQVJFIFdBVFRPO1NvOzA7TDs8c3F1YXJlPiAzMEVGIDMwQzMgMzBDODs7OztOO1NRVUFSRUQgV0FUVE87Ozs7CiszMzU4O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgWkVSTztTbzswO0w7PGNvbXBhdD4gMDAzMCA3MEI5Ozs7O047Ozs7OworMzM1OTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIE9ORTtTbzswO0w7PGNvbXBhdD4gMDAzMSA3MEI5Ozs7O047Ozs7OworMzM1QTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFRXTztTbzswO0w7PGNvbXBhdD4gMDAzMiA3MEI5Ozs7O047Ozs7OworMzM1QjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFRIUkVFO1NvOzA7TDs8Y29tcGF0PiAwMDMzIDcwQjk7Ozs7Tjs7Ozs7CiszMzVDO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgRk9VUjtTbzswO0w7PGNvbXBhdD4gMDAzNCA3MEI5Ozs7O047Ozs7OworMzM1RDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIEZJVkU7U287MDtMOzxjb21wYXQ+IDAwMzUgNzBCOTs7OztOOzs7OzsKKzMzNUU7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBTSVg7U287MDtMOzxjb21wYXQ+IDAwMzYgNzBCOTs7OztOOzs7OzsKKzMzNUY7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBTRVZFTjtTbzswO0w7PGNvbXBhdD4gMDAzNyA3MEI5Ozs7O047Ozs7OworMzM2MDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIEVJR0hUO1NvOzA7TDs8Y29tcGF0PiAwMDM4IDcwQjk7Ozs7Tjs7Ozs7CiszMzYxO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgTklORTtTbzswO0w7PGNvbXBhdD4gMDAzOSA3MEI5Ozs7O047Ozs7OworMzM2MjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFRFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDMwIDcwQjk7Ozs7Tjs7Ozs7CiszMzYzO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgRUxFVkVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzEgNzBCOTs7OztOOzs7OzsKKzMzNjQ7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBUV0VMVkU7U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzMiA3MEI5Ozs7O047Ozs7OworMzM2NTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFRISVJURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzMgNzBCOTs7OztOOzs7OzsKKzMzNjY7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBGT1VSVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDM0IDcwQjk7Ozs7Tjs7Ozs7CiszMzY3O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgRklGVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDM1IDcwQjk7Ozs7Tjs7Ozs7CiszMzY4O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgU0lYVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDM2IDcwQjk7Ozs7Tjs7Ozs7CiszMzY5O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgU0VWRU5URUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzcgNzBCOTs7OztOOzs7OzsKKzMzNkE7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBFSUdIVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDM4IDcwQjk7Ozs7Tjs7Ozs7CiszMzZCO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgTklORVRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzOSA3MEI5Ozs7O047Ozs7OworMzM2QztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFRXRU5UWTtTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDMwIDcwQjk7Ozs7Tjs7Ozs7CiszMzZEO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgVFdFTlRZLU9ORTtTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDMxIDcwQjk7Ozs7Tjs7Ozs7CiszMzZFO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgVFdFTlRZLVRXTztTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDMyIDcwQjk7Ozs7Tjs7Ozs7CiszMzZGO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgVFdFTlRZLVRIUkVFO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzMgNzBCOTs7OztOOzs7OzsKKzMzNzA7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBUV0VOVFktRk9VUjtTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDM0IDcwQjk7Ozs7Tjs7Ozs7CiszMzcxO1NRVUFSRSBIUEE7U287MDtMOzxzcXVhcmU+IDAwNjggMDA1MCAwMDYxOzs7O047Ozs7OworMzM3MjtTUVVBUkUgREE7U287MDtMOzxzcXVhcmU+IDAwNjQgMDA2MTs7OztOOzs7OzsKKzMzNzM7U1FVQVJFIEFVO1NvOzA7TDs8c3F1YXJlPiAwMDQxIDAwNTU7Ozs7Tjs7Ozs7CiszMzc0O1NRVUFSRSBCQVI7U287MDtMOzxzcXVhcmU+IDAwNjIgMDA2MSAwMDcyOzs7O047Ozs7OworMzM3NTtTUVVBUkUgT1Y7U287MDtMOzxzcXVhcmU+IDAwNkYgMDA1Njs7OztOOzs7OzsKKzMzNzY7U1FVQVJFIFBDO1NvOzA7TDs8c3F1YXJlPiAwMDcwIDAwNjM7Ozs7Tjs7Ozs7CiszMzdCO1NRVUFSRSBFUkEgTkFNRSBIRUlTRUk7U287MDtMOzxzcXVhcmU+IDVFNzMgNjIxMDs7OztOO1NRVUFSRUQgVFdPIElERU9HUkFQSFMgRVJBIE5BTUUgSEVJU0VJOzs7OworMzM3QztTUVVBUkUgRVJBIE5BTUUgU1lPVVdBO1NvOzA7TDs8c3F1YXJlPiA2NjJEIDU0OEM7Ozs7TjtTUVVBUkVEIFRXTyBJREVPR1JBUEhTIEVSQSBOQU1FIFNZT1VXQTs7OzsKKzMzN0Q7U1FVQVJFIEVSQSBOQU1FIFRBSVNZT1U7U287MDtMOzxzcXVhcmU+IDU5MjcgNkI2Mzs7OztOO1NRVUFSRUQgVFdPIElERU9HUkFQSFMgRVJBIE5BTUUgVEFJU1lPVTs7OzsKKzMzN0U7U1FVQVJFIEVSQSBOQU1FIE1FSVpJO1NvOzA7TDs8c3F1YXJlPiA2NjBFIDZDQkI7Ozs7TjtTUVVBUkVEIFRXTyBJREVPR1JBUEhTIEVSQSBOQU1FIE1FSVpJOzs7OworMzM3RjtTUVVBUkUgQ09SUE9SQVRJT047U287MDtMOzxzcXVhcmU+IDY4MkEgNUYwRiA0RjFBIDc5M0U7Ozs7TjtTUVVBUkVEIEZPVVIgSURFT0dSQVBIUyBDT1JQT1JBVElPTjs7OzsKKzMzODA7U1FVQVJFIFBBIEFNUFM7U287MDtMOzxzcXVhcmU+IDAwNzAgMDA0MTs7OztOO1NRVUFSRUQgUEEgQU1QUzs7OzsKKzMzODE7U1FVQVJFIE5BO1NvOzA7TDs8c3F1YXJlPiAwMDZFIDAwNDE7Ozs7TjtTUVVBUkVEIE5BOzs7OworMzM4MjtTUVVBUkUgTVUgQTtTbzswO0w7PHNxdWFyZT4gMDNCQyAwMDQxOzs7O047U1FVQVJFRCBNVSBBOzs7OworMzM4MztTUVVBUkUgTUE7U287MDtMOzxzcXVhcmU+IDAwNkQgMDA0MTs7OztOO1NRVUFSRUQgTUE7Ozs7CiszMzg0O1NRVUFSRSBLQTtTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDQxOzs7O047U1FVQVJFRCBLQTs7OzsKKzMzODU7U1FVQVJFIEtCO1NvOzA7TDs8c3F1YXJlPiAwMDRCIDAwNDI7Ozs7TjtTUVVBUkVEIEtCOzs7OworMzM4NjtTUVVBUkUgTUI7U287MDtMOzxzcXVhcmU+IDAwNEQgMDA0Mjs7OztOO1NRVUFSRUQgTUI7Ozs7CiszMzg3O1NRVUFSRSBHQjtTbzswO0w7PHNxdWFyZT4gMDA0NyAwMDQyOzs7O047U1FVQVJFRCBHQjs7OzsKKzMzODg7U1FVQVJFIENBTDtTbzswO0w7PHNxdWFyZT4gMDA2MyAwMDYxIDAwNkM7Ozs7TjtTUVVBUkVEIENBTDs7OzsKKzMzODk7U1FVQVJFIEtDQUw7U287MDtMOzxzcXVhcmU+IDAwNkIgMDA2MyAwMDYxIDAwNkM7Ozs7TjtTUVVBUkVEIEtDQUw7Ozs7CiszMzhBO1NRVUFSRSBQRjtTbzswO0w7PHNxdWFyZT4gMDA3MCAwMDQ2Ozs7O047U1FVQVJFRCBQRjs7OzsKKzMzOEI7U1FVQVJFIE5GO1NvOzA7TDs8c3F1YXJlPiAwMDZFIDAwNDY7Ozs7TjtTUVVBUkVEIE5GOzs7OworMzM4QztTUVVBUkUgTVUgRjtTbzswO0w7PHNxdWFyZT4gMDNCQyAwMDQ2Ozs7O047U1FVQVJFRCBNVSBGOzs7OworMzM4RDtTUVVBUkUgTVUgRztTbzswO0w7PHNxdWFyZT4gMDNCQyAwMDY3Ozs7O047U1FVQVJFRCBNVSBHOzs7OworMzM4RTtTUVVBUkUgTUc7U287MDtMOzxzcXVhcmU+IDAwNkQgMDA2Nzs7OztOO1NRVUFSRUQgTUc7Ozs7CiszMzhGO1NRVUFSRSBLRztTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDY3Ozs7O047U1FVQVJFRCBLRzs7OzsKKzMzOTA7U1FVQVJFIEhaO1NvOzA7TDs8c3F1YXJlPiAwMDQ4IDAwN0E7Ozs7TjtTUVVBUkVEIEhaOzs7OworMzM5MTtTUVVBUkUgS0haO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDAwNDggMDA3QTs7OztOO1NRVUFSRUQgS0haOzs7OworMzM5MjtTUVVBUkUgTUhaO1NvOzA7TDs8c3F1YXJlPiAwMDREIDAwNDggMDA3QTs7OztOO1NRVUFSRUQgTUhaOzs7OworMzM5MztTUVVBUkUgR0haO1NvOzA7TDs8c3F1YXJlPiAwMDQ3IDAwNDggMDA3QTs7OztOO1NRVUFSRUQgR0haOzs7OworMzM5NDtTUVVBUkUgVEhaO1NvOzA7TDs8c3F1YXJlPiAwMDU0IDAwNDggMDA3QTs7OztOO1NRVUFSRUQgVEhaOzs7OworMzM5NTtTUVVBUkUgTVUgTDtTbzswO0w7PHNxdWFyZT4gMDNCQyAyMTEzOzs7O047U1FVQVJFRCBNVSBMOzs7OworMzM5NjtTUVVBUkUgTUw7U287MDtMOzxzcXVhcmU+IDAwNkQgMjExMzs7OztOO1NRVUFSRUQgTUw7Ozs7CiszMzk3O1NRVUFSRSBETDtTbzswO0w7PHNxdWFyZT4gMDA2NCAyMTEzOzs7O047U1FVQVJFRCBETDs7OzsKKzMzOTg7U1FVQVJFIEtMO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDIxMTM7Ozs7TjtTUVVBUkVEIEtMOzs7OworMzM5OTtTUVVBUkUgRk07U287MDtMOzxzcXVhcmU+IDAwNjYgMDA2RDs7OztOO1NRVUFSRUQgRk07Ozs7CiszMzlBO1NRVUFSRSBOTTtTbzswO0w7PHNxdWFyZT4gMDA2RSAwMDZEOzs7O047U1FVQVJFRCBOTTs7OzsKKzMzOUI7U1FVQVJFIE1VIE07U287MDtMOzxzcXVhcmU+IDAzQkMgMDA2RDs7OztOO1NRVUFSRUQgTVUgTTs7OzsKKzMzOUM7U1FVQVJFIE1NO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNkQ7Ozs7TjtTUVVBUkVEIE1NOzs7OworMzM5RDtTUVVBUkUgQ007U287MDtMOzxzcXVhcmU+IDAwNjMgMDA2RDs7OztOO1NRVUFSRUQgQ007Ozs7CiszMzlFO1NRVUFSRSBLTTtTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDZEOzs7O047U1FVQVJFRCBLTTs7OzsKKzMzOUY7U1FVQVJFIE1NIFNRVUFSRUQ7U287MDtMOzxzcXVhcmU+IDAwNkQgMDA2RCAwMEIyOzs7O047U1FVQVJFRCBNTSBTUVVBUkVEOzs7OworMzNBMDtTUVVBUkUgQ00gU1FVQVJFRDtTbzswO0w7PHNxdWFyZT4gMDA2MyAwMDZEIDAwQjI7Ozs7TjtTUVVBUkVEIENNIFNRVUFSRUQ7Ozs7CiszM0ExO1NRVUFSRSBNIFNRVUFSRUQ7U287MDtMOzxzcXVhcmU+IDAwNkQgMDBCMjs7OztOO1NRVUFSRUQgTSBTUVVBUkVEOzs7OworMzNBMjtTUVVBUkUgS00gU1FVQVJFRDtTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDZEIDAwQjI7Ozs7TjtTUVVBUkVEIEtNIFNRVUFSRUQ7Ozs7CiszM0EzO1NRVUFSRSBNTSBDVUJFRDtTbzswO0w7PHNxdWFyZT4gMDA2RCAwMDZEIDAwQjM7Ozs7TjtTUVVBUkVEIE1NIENVQkVEOzs7OworMzNBNDtTUVVBUkUgQ00gQ1VCRUQ7U287MDtMOzxzcXVhcmU+IDAwNjMgMDA2RCAwMEIzOzs7O047U1FVQVJFRCBDTSBDVUJFRDs7OzsKKzMzQTU7U1FVQVJFIE0gQ1VCRUQ7U287MDtMOzxzcXVhcmU+IDAwNkQgMDBCMzs7OztOO1NRVUFSRUQgTSBDVUJFRDs7OzsKKzMzQTY7U1FVQVJFIEtNIENVQkVEO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDAwNkQgMDBCMzs7OztOO1NRVUFSRUQgS00gQ1VCRUQ7Ozs7CiszM0E3O1NRVUFSRSBNIE9WRVIgUztTbzswO0w7PHNxdWFyZT4gMDA2RCAyMjE1IDAwNzM7Ozs7TjtTUVVBUkVEIE0gT1ZFUiBTOzs7OworMzNBODtTUVVBUkUgTSBPVkVSIFMgU1FVQVJFRDtTbzswO0w7PHNxdWFyZT4gMDA2RCAyMjE1IDAwNzMgMDBCMjs7OztOO1NRVUFSRUQgTSBPVkVSIFMgU1FVQVJFRDs7OzsKKzMzQTk7U1FVQVJFIFBBO1NvOzA7TDs8c3F1YXJlPiAwMDUwIDAwNjE7Ozs7TjtTUVVBUkVEIFBBOzs7OworMzNBQTtTUVVBUkUgS1BBO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDAwNTAgMDA2MTs7OztOO1NRVUFSRUQgS1BBOzs7OworMzNBQjtTUVVBUkUgTVBBO1NvOzA7TDs8c3F1YXJlPiAwMDREIDAwNTAgMDA2MTs7OztOO1NRVUFSRUQgTVBBOzs7OworMzNBQztTUVVBUkUgR1BBO1NvOzA7TDs8c3F1YXJlPiAwMDQ3IDAwNTAgMDA2MTs7OztOO1NRVUFSRUQgR1BBOzs7OworMzNBRDtTUVVBUkUgUkFEO1NvOzA7TDs8c3F1YXJlPiAwMDcyIDAwNjEgMDA2NDs7OztOO1NRVUFSRUQgUkFEOzs7OworMzNBRTtTUVVBUkUgUkFEIE9WRVIgUztTbzswO0w7PHNxdWFyZT4gMDA3MiAwMDYxIDAwNjQgMjIxNSAwMDczOzs7O047U1FVQVJFRCBSQUQgT1ZFUiBTOzs7OworMzNBRjtTUVVBUkUgUkFEIE9WRVIgUyBTUVVBUkVEO1NvOzA7TDs8c3F1YXJlPiAwMDcyIDAwNjEgMDA2NCAyMjE1IDAwNzMgMDBCMjs7OztOO1NRVUFSRUQgUkFEIE9WRVIgUyBTUVVBUkVEOzs7OworMzNCMDtTUVVBUkUgUFM7U287MDtMOzxzcXVhcmU+IDAwNzAgMDA3Mzs7OztOO1NRVUFSRUQgUFM7Ozs7CiszM0IxO1NRVUFSRSBOUztTbzswO0w7PHNxdWFyZT4gMDA2RSAwMDczOzs7O047U1FVQVJFRCBOUzs7OzsKKzMzQjI7U1FVQVJFIE1VIFM7U287MDtMOzxzcXVhcmU+IDAzQkMgMDA3Mzs7OztOO1NRVUFSRUQgTVUgUzs7OzsKKzMzQjM7U1FVQVJFIE1TO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNzM7Ozs7TjtTUVVBUkVEIE1TOzs7OworMzNCNDtTUVVBUkUgUFY7U287MDtMOzxzcXVhcmU+IDAwNzAgMDA1Njs7OztOO1NRVUFSRUQgUFY7Ozs7CiszM0I1O1NRVUFSRSBOVjtTbzswO0w7PHNxdWFyZT4gMDA2RSAwMDU2Ozs7O047U1FVQVJFRCBOVjs7OzsKKzMzQjY7U1FVQVJFIE1VIFY7U287MDtMOzxzcXVhcmU+IDAzQkMgMDA1Njs7OztOO1NRVUFSRUQgTVUgVjs7OzsKKzMzQjc7U1FVQVJFIE1WO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNTY7Ozs7TjtTUVVBUkVEIE1WOzs7OworMzNCODtTUVVBUkUgS1Y7U287MDtMOzxzcXVhcmU+IDAwNkIgMDA1Njs7OztOO1NRVUFSRUQgS1Y7Ozs7CiszM0I5O1NRVUFSRSBNViBNRUdBO1NvOzA7TDs8c3F1YXJlPiAwMDREIDAwNTY7Ozs7TjtTUVVBUkVEIE1WIE1FR0E7Ozs7CiszM0JBO1NRVUFSRSBQVztTbzswO0w7PHNxdWFyZT4gMDA3MCAwMDU3Ozs7O047U1FVQVJFRCBQVzs7OzsKKzMzQkI7U1FVQVJFIE5XO1NvOzA7TDs8c3F1YXJlPiAwMDZFIDAwNTc7Ozs7TjtTUVVBUkVEIE5XOzs7OworMzNCQztTUVVBUkUgTVUgVztTbzswO0w7PHNxdWFyZT4gMDNCQyAwMDU3Ozs7O047U1FVQVJFRCBNVSBXOzs7OworMzNCRDtTUVVBUkUgTVc7U287MDtMOzxzcXVhcmU+IDAwNkQgMDA1Nzs7OztOO1NRVUFSRUQgTVc7Ozs7CiszM0JFO1NRVUFSRSBLVztTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDU3Ozs7O047U1FVQVJFRCBLVzs7OzsKKzMzQkY7U1FVQVJFIE1XIE1FR0E7U287MDtMOzxzcXVhcmU+IDAwNEQgMDA1Nzs7OztOO1NRVUFSRUQgTVcgTUVHQTs7OzsKKzMzQzA7U1FVQVJFIEsgT0hNO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDAzQTk7Ozs7TjtTUVVBUkVEIEsgT0hNOzs7OworMzNDMTtTUVVBUkUgTSBPSE07U287MDtMOzxzcXVhcmU+IDAwNEQgMDNBOTs7OztOO1NRVUFSRUQgTSBPSE07Ozs7CiszM0MyO1NRVUFSRSBBTTtTbzswO0w7PHNxdWFyZT4gMDA2MSAwMDJFIDAwNkQgMDAyRTs7OztOO1NRVUFSRUQgQU07Ozs7CiszM0MzO1NRVUFSRSBCUTtTbzswO0w7PHNxdWFyZT4gMDA0MiAwMDcxOzs7O047U1FVQVJFRCBCUTs7OzsKKzMzQzQ7U1FVQVJFIENDO1NvOzA7TDs8c3F1YXJlPiAwMDYzIDAwNjM7Ozs7TjtTUVVBUkVEIENDOzs7OworMzNDNTtTUVVBUkUgQ0Q7U287MDtMOzxzcXVhcmU+IDAwNjMgMDA2NDs7OztOO1NRVUFSRUQgQ0Q7Ozs7CiszM0M2O1NRVUFSRSBDIE9WRVIgS0c7U287MDtMOzxzcXVhcmU+IDAwNDMgMjIxNSAwMDZCIDAwNjc7Ozs7TjtTUVVBUkVEIEMgT1ZFUiBLRzs7OzsKKzMzQzc7U1FVQVJFIENPO1NvOzA7TDs8c3F1YXJlPiAwMDQzIDAwNkYgMDAyRTs7OztOO1NRVUFSRUQgQ087Ozs7CiszM0M4O1NRVUFSRSBEQjtTbzswO0w7PHNxdWFyZT4gMDA2NCAwMDQyOzs7O047U1FVQVJFRCBEQjs7OzsKKzMzQzk7U1FVQVJFIEdZO1NvOzA7TDs8c3F1YXJlPiAwMDQ3IDAwNzk7Ozs7TjtTUVVBUkVEIEdZOzs7OworMzNDQTtTUVVBUkUgSEE7U287MDtMOzxzcXVhcmU+IDAwNjggMDA2MTs7OztOO1NRVUFSRUQgSEE7Ozs7CiszM0NCO1NRVUFSRSBIUDtTbzswO0w7PHNxdWFyZT4gMDA0OCAwMDUwOzs7O047U1FVQVJFRCBIUDs7OzsKKzMzQ0M7U1FVQVJFIElOO1NvOzA7TDs8c3F1YXJlPiAwMDY5IDAwNkU7Ozs7TjtTUVVBUkVEIElOOzs7OworMzNDRDtTUVVBUkUgS0s7U287MDtMOzxzcXVhcmU+IDAwNEIgMDA0Qjs7OztOO1NRVUFSRUQgS0s7Ozs7CiszM0NFO1NRVUFSRSBLTSBDQVBJVEFMO1NvOzA7TDs8c3F1YXJlPiAwMDRCIDAwNEQ7Ozs7TjtTUVVBUkVEIEtNIENBUElUQUw7Ozs7CiszM0NGO1NRVUFSRSBLVDtTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDc0Ozs7O047U1FVQVJFRCBLVDs7OzsKKzMzRDA7U1FVQVJFIExNO1NvOzA7TDs8c3F1YXJlPiAwMDZDIDAwNkQ7Ozs7TjtTUVVBUkVEIExNOzs7OworMzNEMTtTUVVBUkUgTE47U287MDtMOzxzcXVhcmU+IDAwNkMgMDA2RTs7OztOO1NRVUFSRUQgTE47Ozs7CiszM0QyO1NRVUFSRSBMT0c7U287MDtMOzxzcXVhcmU+IDAwNkMgMDA2RiAwMDY3Ozs7O047U1FVQVJFRCBMT0c7Ozs7CiszM0QzO1NRVUFSRSBMWDtTbzswO0w7PHNxdWFyZT4gMDA2QyAwMDc4Ozs7O047U1FVQVJFRCBMWDs7OzsKKzMzRDQ7U1FVQVJFIE1CIFNNQUxMO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNjI7Ozs7TjtTUVVBUkVEIE1CIFNNQUxMOzs7OworMzNENTtTUVVBUkUgTUlMO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNjkgMDA2Qzs7OztOO1NRVUFSRUQgTUlMOzs7OworMzNENjtTUVVBUkUgTU9MO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNkYgMDA2Qzs7OztOO1NRVUFSRUQgTU9MOzs7OworMzNENztTUVVBUkUgUEg7U287MDtMOzxzcXVhcmU+IDAwNTAgMDA0ODs7OztOO1NRVUFSRUQgUEg7Ozs7CiszM0Q4O1NRVUFSRSBQTTtTbzswO0w7PHNxdWFyZT4gMDA3MCAwMDJFIDAwNkQgMDAyRTs7OztOO1NRVUFSRUQgUE07Ozs7CiszM0Q5O1NRVUFSRSBQUE07U287MDtMOzxzcXVhcmU+IDAwNTAgMDA1MCAwMDREOzs7O047U1FVQVJFRCBQUE07Ozs7CiszM0RBO1NRVUFSRSBQUjtTbzswO0w7PHNxdWFyZT4gMDA1MCAwMDUyOzs7O047U1FVQVJFRCBQUjs7OzsKKzMzREI7U1FVQVJFIFNSO1NvOzA7TDs8c3F1YXJlPiAwMDczIDAwNzI7Ozs7TjtTUVVBUkVEIFNSOzs7OworMzNEQztTUVVBUkUgU1Y7U287MDtMOzxzcXVhcmU+IDAwNTMgMDA3Njs7OztOO1NRVUFSRUQgU1Y7Ozs7CiszM0REO1NRVUFSRSBXQjtTbzswO0w7PHNxdWFyZT4gMDA1NyAwMDYyOzs7O047U1FVQVJFRCBXQjs7OzsKKzMzRTA7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIE9ORTtTbzswO0w7PGNvbXBhdD4gMDAzMSA2NUU1Ozs7O047Ozs7OworMzNFMTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdPO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDY1RTU7Ozs7Tjs7Ozs7CiszM0UyO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUSFJFRTtTbzswO0w7PGNvbXBhdD4gMDAzMyA2NUU1Ozs7O047Ozs7OworMzNFMztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgRk9VUjtTbzswO0w7PGNvbXBhdD4gMDAzNCA2NUU1Ozs7O047Ozs7OworMzNFNDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgRklWRTtTbzswO0w7PGNvbXBhdD4gMDAzNSA2NUU1Ozs7O047Ozs7OworMzNFNTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgU0lYO1NvOzA7TDs8Y29tcGF0PiAwMDM2IDY1RTU7Ozs7Tjs7Ozs7CiszM0U2O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBTRVZFTjtTbzswO0w7PGNvbXBhdD4gMDAzNyA2NUU1Ozs7O047Ozs7OworMzNFNztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgRUlHSFQ7U287MDtMOzxjb21wYXQ+IDAwMzggNjVFNTs7OztOOzs7OzsKKzMzRTg7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIE5JTkU7U287MDtMOzxjb21wYXQ+IDAwMzkgNjVFNTs7OztOOzs7OzsKKzMzRTk7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDMwIDY1RTU7Ozs7Tjs7Ozs7CiszM0VBO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBFTEVWRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzMSA2NUU1Ozs7O047Ozs7OworMzNFQjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTFZFO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzIgNjVFNTs7OztOOzs7OzsKKzMzRUM7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRISVJURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzMgNjVFNTs7OztOOzs7OzsKKzMzRUQ7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIEZPVVJURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzQgNjVFNTs7OztOOzs7OzsKKzMzRUU7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIEZJRlRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzNSA2NUU1Ozs7O047Ozs7OworMzNFRjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgU0lYVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDM2IDY1RTU7Ozs7Tjs7Ozs7CiszM0YwO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBTRVZFTlRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzNyA2NUU1Ozs7O047Ozs7OworMzNGMTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgRUlHSFRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzOCA2NUU1Ozs7O047Ozs7OworMzNGMjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgTklORVRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzOSA2NUU1Ozs7O047Ozs7OworMzNGMztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzAgNjVFNTs7OztOOzs7OzsKKzMzRjQ7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRXRU5UWS1PTkU7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzMSA2NUU1Ozs7O047Ozs7OworMzNGNTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZLVRXTztTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDMyIDY1RTU7Ozs7Tjs7Ozs7CiszM0Y2O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUV0VOVFktVEhSRUU7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzMyA2NUU1Ozs7O047Ozs7OworMzNGNztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZLUZPVVI7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzNCA2NUU1Ozs7O047Ozs7OworMzNGODtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZLUZJVkU7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzNSA2NUU1Ozs7O047Ozs7OworMzNGOTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZLVNJWDtTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDM2IDY1RTU7Ozs7Tjs7Ozs7CiszM0ZBO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUV0VOVFktU0VWRU47U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzNyA2NUU1Ozs7O047Ozs7OworMzNGQjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZLUVJR0hUO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzggNjVFNTs7OztOOzs7OzsKKzMzRkM7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRXRU5UWS1OSU5FO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzkgNjVFNTs7OztOOzs7OzsKKzMzRkQ7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRISVJUWTtTbzswO0w7PGNvbXBhdD4gMDAzMyAwMDMwIDY1RTU7Ozs7Tjs7Ozs7CiszM0ZFO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUSElSVFktT05FO1NvOzA7TDs8Y29tcGF0PiAwMDMzIDAwMzEgNjVFNTs7OztOOzs7OzsKKzM0MDA7PENKSyBJZGVvZ3JhcGggRXh0ZW5zaW9uIEEsIEZpcnN0PjtMbzswO0w7Ozs7O047Ozs7OworNERCNTs8Q0pLIElkZW9ncmFwaCBFeHRlbnNpb24gQSwgTGFzdD47TG87MDtMOzs7OztOOzs7OzsKKzRFMDA7PENKSyBJZGVvZ3JhcGgsIEZpcnN0PjtMbzswO0w7Ozs7O047Ozs7OworOUZBNTs8Q0pLIElkZW9ncmFwaCwgTGFzdD47TG87MDtMOzs7OztOOzs7OzsKK0EwMDA7WUkgU1lMTEFCTEUgSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwMDE7WUkgU1lMTEFCTEUgSVg7TG87MDtMOzs7OztOOzs7OzsKK0EwMDI7WUkgU1lMTEFCTEUgSTtMbzswO0w7Ozs7O047Ozs7OworQTAwMztZSSBTWUxMQUJMRSBJUDtMbzswO0w7Ozs7O047Ozs7OworQTAwNDtZSSBTWUxMQUJMRSBJRVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwMDU7WUkgU1lMTEFCTEUgSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDA2O1lJIFNZTExBQkxFIElFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDA3O1lJIFNZTExBQkxFIElFUDtMbzswO0w7Ozs7O047Ozs7OworQTAwODtZSSBTWUxMQUJMRSBBVDtMbzswO0w7Ozs7O047Ozs7OworQTAwOTtZSSBTWUxMQUJMRSBBWDtMbzswO0w7Ozs7O047Ozs7OworQTAwQTtZSSBTWUxMQUJMRSBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDBCO1lJIFNZTExBQkxFIEFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDBDO1lJIFNZTExBQkxFIFVPWDtMbzswO0w7Ozs7O047Ozs7OworQTAwRDtZSSBTWUxMQUJMRSBVTztMbzswO0w7Ozs7O047Ozs7OworQTAwRTtZSSBTWUxMQUJMRSBVT1A7TG87MDtMOzs7OztOOzs7OzsKK0EwMEY7WUkgU1lMTEFCTEUgT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EwMTA7WUkgU1lMTEFCTEUgT1g7TG87MDtMOzs7OztOOzs7OzsKK0EwMTE7WUkgU1lMTEFCTEUgTztMbzswO0w7Ozs7O047Ozs7OworQTAxMjtZSSBTWUxMQUJMRSBPUDtMbzswO0w7Ozs7O047Ozs7OworQTAxMztZSSBTWUxMQUJMRSBFWDtMbzswO0w7Ozs7O047Ozs7OworQTAxNDtZSSBTWUxMQUJMRSBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDE1O1lJIFNZTExBQkxFIFdVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDE2O1lJIFNZTExBQkxFIEJJVDtMbzswO0w7Ozs7O047Ozs7OworQTAxNztZSSBTWUxMQUJMRSBCSVg7TG87MDtMOzs7OztOOzs7OzsKK0EwMTg7WUkgU1lMTEFCTEUgQkk7TG87MDtMOzs7OztOOzs7OzsKK0EwMTk7WUkgU1lMTEFCTEUgQklQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDFBO1lJIFNZTExBQkxFIEJJRVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwMUI7WUkgU1lMTEFCTEUgQklFWDtMbzswO0w7Ozs7O047Ozs7OworQTAxQztZSSBTWUxMQUJMRSBCSUU7TG87MDtMOzs7OztOOzs7OzsKK0EwMUQ7WUkgU1lMTEFCTEUgQklFUDtMbzswO0w7Ozs7O047Ozs7OworQTAxRTtZSSBTWUxMQUJMRSBCQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwMUY7WUkgU1lMTEFCTEUgQkFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDIwO1lJIFNZTExBQkxFIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDIxO1lJIFNZTExBQkxFIEJBUDtMbzswO0w7Ozs7O047Ozs7OworQTAyMjtZSSBTWUxMQUJMRSBCVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDIzO1lJIFNZTExBQkxFIEJVTztMbzswO0w7Ozs7O047Ozs7OworQTAyNDtZSSBTWUxMQUJMRSBCVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDI1O1lJIFNZTExBQkxFIEJPVDtMbzswO0w7Ozs7O047Ozs7OworQTAyNjtZSSBTWUxMQUJMRSBCT1g7TG87MDtMOzs7OztOOzs7OzsKK0EwMjc7WUkgU1lMTEFCTEUgQk87TG87MDtMOzs7OztOOzs7OzsKK0EwMjg7WUkgU1lMTEFCTEUgQk9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDI5O1lJIFNZTExBQkxFIEJFWDtMbzswO0w7Ozs7O047Ozs7OworQTAyQTtZSSBTWUxMQUJMRSBCRTtMbzswO0w7Ozs7O047Ozs7OworQTAyQjtZSSBTWUxMQUJMRSBCRVA7TG87MDtMOzs7OztOOzs7OzsKK0EwMkM7WUkgU1lMTEFCTEUgQlVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDJEO1lJIFNZTExBQkxFIEJVWDtMbzswO0w7Ozs7O047Ozs7OworQTAyRTtZSSBTWUxMQUJMRSBCVTtMbzswO0w7Ozs7O047Ozs7OworQTAyRjtZSSBTWUxMQUJMRSBCVVA7TG87MDtMOzs7OztOOzs7OzsKK0EwMzA7WUkgU1lMTEFCTEUgQlVSWDtMbzswO0w7Ozs7O047Ozs7OworQTAzMTtZSSBTWUxMQUJMRSBCVVI7TG87MDtMOzs7OztOOzs7OzsKK0EwMzI7WUkgU1lMTEFCTEUgQllUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDMzO1lJIFNZTExBQkxFIEJZWDtMbzswO0w7Ozs7O047Ozs7OworQTAzNDtZSSBTWUxMQUJMRSBCWTtMbzswO0w7Ozs7O047Ozs7OworQTAzNTtZSSBTWUxMQUJMRSBCWVA7TG87MDtMOzs7OztOOzs7OzsKK0EwMzY7WUkgU1lMTEFCTEUgQllSWDtMbzswO0w7Ozs7O047Ozs7OworQTAzNztZSSBTWUxMQUJMRSBCWVI7TG87MDtMOzs7OztOOzs7OzsKK0EwMzg7WUkgU1lMTEFCTEUgUElUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDM5O1lJIFNZTExBQkxFIFBJWDtMbzswO0w7Ozs7O047Ozs7OworQTAzQTtZSSBTWUxMQUJMRSBQSTtMbzswO0w7Ozs7O047Ozs7OworQTAzQjtZSSBTWUxMQUJMRSBQSVA7TG87MDtMOzs7OztOOzs7OzsKK0EwM0M7WUkgU1lMTEFCTEUgUElFWDtMbzswO0w7Ozs7O047Ozs7OworQTAzRDtZSSBTWUxMQUJMRSBQSUU7TG87MDtMOzs7OztOOzs7OzsKK0EwM0U7WUkgU1lMTEFCTEUgUElFUDtMbzswO0w7Ozs7O047Ozs7OworQTAzRjtZSSBTWUxMQUJMRSBQQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwNDA7WUkgU1lMTEFCTEUgUEFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDQxO1lJIFNZTExBQkxFIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDQyO1lJIFNZTExBQkxFIFBBUDtMbzswO0w7Ozs7O047Ozs7OworQTA0MztZSSBTWUxMQUJMRSBQVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDQ0O1lJIFNZTExBQkxFIFBVTztMbzswO0w7Ozs7O047Ozs7OworQTA0NTtZSSBTWUxMQUJMRSBQVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDQ2O1lJIFNZTExBQkxFIFBPVDtMbzswO0w7Ozs7O047Ozs7OworQTA0NztZSSBTWUxMQUJMRSBQT1g7TG87MDtMOzs7OztOOzs7OzsKK0EwNDg7WUkgU1lMTEFCTEUgUE87TG87MDtMOzs7OztOOzs7OzsKK0EwNDk7WUkgU1lMTEFCTEUgUE9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDRBO1lJIFNZTExBQkxFIFBVVDtMbzswO0w7Ozs7O047Ozs7OworQTA0QjtZSSBTWUxMQUJMRSBQVVg7TG87MDtMOzs7OztOOzs7OzsKK0EwNEM7WUkgU1lMTEFCTEUgUFU7TG87MDtMOzs7OztOOzs7OzsKK0EwNEQ7WUkgU1lMTEFCTEUgUFVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDRFO1lJIFNZTExBQkxFIFBVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EwNEY7WUkgU1lMTEFCTEUgUFVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDUwO1lJIFNZTExBQkxFIFBZVDtMbzswO0w7Ozs7O047Ozs7OworQTA1MTtZSSBTWUxMQUJMRSBQWVg7TG87MDtMOzs7OztOOzs7OzsKK0EwNTI7WUkgU1lMTEFCTEUgUFk7TG87MDtMOzs7OztOOzs7OzsKK0EwNTM7WUkgU1lMTEFCTEUgUFlQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDU0O1lJIFNZTExBQkxFIFBZUlg7TG87MDtMOzs7OztOOzs7OzsKK0EwNTU7WUkgU1lMTEFCTEUgUFlSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDU2O1lJIFNZTExBQkxFIEJCSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwNTc7WUkgU1lMTEFCTEUgQkJJWDtMbzswO0w7Ozs7O047Ozs7OworQTA1ODtZSSBTWUxMQUJMRSBCQkk7TG87MDtMOzs7OztOOzs7OzsKK0EwNTk7WUkgU1lMTEFCTEUgQkJJUDtMbzswO0w7Ozs7O047Ozs7OworQTA1QTtZSSBTWUxMQUJMRSBCQklFVDtMbzswO0w7Ozs7O047Ozs7OworQTA1QjtZSSBTWUxMQUJMRSBCQklFWDtMbzswO0w7Ozs7O047Ozs7OworQTA1QztZSSBTWUxMQUJMRSBCQklFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDVEO1lJIFNZTExBQkxFIEJCSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDVFO1lJIFNZTExBQkxFIEJCQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwNUY7WUkgU1lMTEFCTEUgQkJBWDtMbzswO0w7Ozs7O047Ozs7OworQTA2MDtZSSBTWUxMQUJMRSBCQkE7TG87MDtMOzs7OztOOzs7OzsKK0EwNjE7WUkgU1lMTEFCTEUgQkJBUDtMbzswO0w7Ozs7O047Ozs7OworQTA2MjtZSSBTWUxMQUJMRSBCQlVPWDtMbzswO0w7Ozs7O047Ozs7OworQTA2MztZSSBTWUxMQUJMRSBCQlVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDY0O1lJIFNZTExBQkxFIEJCVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDY1O1lJIFNZTExBQkxFIEJCT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EwNjY7WUkgU1lMTEFCTEUgQkJPWDtMbzswO0w7Ozs7O047Ozs7OworQTA2NztZSSBTWUxMQUJMRSBCQk87TG87MDtMOzs7OztOOzs7OzsKK0EwNjg7WUkgU1lMTEFCTEUgQkJPUDtMbzswO0w7Ozs7O047Ozs7OworQTA2OTtZSSBTWUxMQUJMRSBCQkVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDZBO1lJIFNZTExBQkxFIEJCRTtMbzswO0w7Ozs7O047Ozs7OworQTA2QjtZSSBTWUxMQUJMRSBCQkVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDZDO1lJIFNZTExBQkxFIEJCVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwNkQ7WUkgU1lMTEFCTEUgQkJVWDtMbzswO0w7Ozs7O047Ozs7OworQTA2RTtZSSBTWUxMQUJMRSBCQlU7TG87MDtMOzs7OztOOzs7OzsKK0EwNkY7WUkgU1lMTEFCTEUgQkJVUDtMbzswO0w7Ozs7O047Ozs7OworQTA3MDtZSSBTWUxMQUJMRSBCQlVSWDtMbzswO0w7Ozs7O047Ozs7OworQTA3MTtZSSBTWUxMQUJMRSBCQlVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDcyO1lJIFNZTExBQkxFIEJCWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwNzM7WUkgU1lMTEFCTEUgQkJZWDtMbzswO0w7Ozs7O047Ozs7OworQTA3NDtZSSBTWUxMQUJMRSBCQlk7TG87MDtMOzs7OztOOzs7OzsKK0EwNzU7WUkgU1lMTEFCTEUgQkJZUDtMbzswO0w7Ozs7O047Ozs7OworQTA3NjtZSSBTWUxMQUJMRSBOQklUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDc3O1lJIFNZTExBQkxFIE5CSVg7TG87MDtMOzs7OztOOzs7OzsKK0EwNzg7WUkgU1lMTEFCTEUgTkJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDc5O1lJIFNZTExBQkxFIE5CSVA7TG87MDtMOzs7OztOOzs7OzsKK0EwN0E7WUkgU1lMTEFCTEUgTkJJRVg7TG87MDtMOzs7OztOOzs7OzsKK0EwN0I7WUkgU1lMTEFCTEUgTkJJRTtMbzswO0w7Ozs7O047Ozs7OworQTA3QztZSSBTWUxMQUJMRSBOQklFUDtMbzswO0w7Ozs7O047Ozs7OworQTA3RDtZSSBTWUxMQUJMRSBOQkFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDdFO1lJIFNZTExBQkxFIE5CQVg7TG87MDtMOzs7OztOOzs7OzsKK0EwN0Y7WUkgU1lMTEFCTEUgTkJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDgwO1lJIFNZTExBQkxFIE5CQVA7TG87MDtMOzs7OztOOzs7OzsKK0EwODE7WUkgU1lMTEFCTEUgTkJPVDtMbzswO0w7Ozs7O047Ozs7OworQTA4MjtZSSBTWUxMQUJMRSBOQk9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDgzO1lJIFNZTExBQkxFIE5CTztMbzswO0w7Ozs7O047Ozs7OworQTA4NDtZSSBTWUxMQUJMRSBOQk9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDg1O1lJIFNZTExBQkxFIE5CVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwODY7WUkgU1lMTEFCTEUgTkJVWDtMbzswO0w7Ozs7O047Ozs7OworQTA4NztZSSBTWUxMQUJMRSBOQlU7TG87MDtMOzs7OztOOzs7OzsKK0EwODg7WUkgU1lMTEFCTEUgTkJVUDtMbzswO0w7Ozs7O047Ozs7OworQTA4OTtZSSBTWUxMQUJMRSBOQlVSWDtMbzswO0w7Ozs7O047Ozs7OworQTA4QTtZSSBTWUxMQUJMRSBOQlVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDhCO1lJIFNZTExBQkxFIE5CWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwOEM7WUkgU1lMTEFCTEUgTkJZWDtMbzswO0w7Ozs7O047Ozs7OworQTA4RDtZSSBTWUxMQUJMRSBOQlk7TG87MDtMOzs7OztOOzs7OzsKK0EwOEU7WUkgU1lMTEFCTEUgTkJZUDtMbzswO0w7Ozs7O047Ozs7OworQTA4RjtZSSBTWUxMQUJMRSBOQllSWDtMbzswO0w7Ozs7O047Ozs7OworQTA5MDtZSSBTWUxMQUJMRSBOQllSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDkxO1lJIFNZTExBQkxFIEhNSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwOTI7WUkgU1lMTEFCTEUgSE1JWDtMbzswO0w7Ozs7O047Ozs7OworQTA5MztZSSBTWUxMQUJMRSBITUk7TG87MDtMOzs7OztOOzs7OzsKK0EwOTQ7WUkgU1lMTEFCTEUgSE1JUDtMbzswO0w7Ozs7O047Ozs7OworQTA5NTtZSSBTWUxMQUJMRSBITUlFWDtMbzswO0w7Ozs7O047Ozs7OworQTA5NjtZSSBTWUxMQUJMRSBITUlFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDk3O1lJIFNZTExBQkxFIEhNSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDk4O1lJIFNZTExBQkxFIEhNQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwOTk7WUkgU1lMTEFCTEUgSE1BWDtMbzswO0w7Ozs7O047Ozs7OworQTA5QTtZSSBTWUxMQUJMRSBITUE7TG87MDtMOzs7OztOOzs7OzsKK0EwOUI7WUkgU1lMTEFCTEUgSE1BUDtMbzswO0w7Ozs7O047Ozs7OworQTA5QztZSSBTWUxMQUJMRSBITVVPWDtMbzswO0w7Ozs7O047Ozs7OworQTA5RDtZSSBTWUxMQUJMRSBITVVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDlFO1lJIFNZTExBQkxFIEhNVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDlGO1lJIFNZTExBQkxFIEhNT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EwQTA7WUkgU1lMTEFCTEUgSE1PWDtMbzswO0w7Ozs7O047Ozs7OworQTBBMTtZSSBTWUxMQUJMRSBITU87TG87MDtMOzs7OztOOzs7OzsKK0EwQTI7WUkgU1lMTEFCTEUgSE1PUDtMbzswO0w7Ozs7O047Ozs7OworQTBBMztZSSBTWUxMQUJMRSBITVVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEE0O1lJIFNZTExBQkxFIEhNVVg7TG87MDtMOzs7OztOOzs7OzsKK0EwQTU7WUkgU1lMTEFCTEUgSE1VO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEE2O1lJIFNZTExBQkxFIEhNVVA7TG87MDtMOzs7OztOOzs7OzsKK0EwQTc7WUkgU1lMTEFCTEUgSE1VUlg7TG87MDtMOzs7OztOOzs7OzsKK0EwQTg7WUkgU1lMTEFCTEUgSE1VUjtMbzswO0w7Ozs7O047Ozs7OworQTBBOTtZSSBTWUxMQUJMRSBITVlYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEFBO1lJIFNZTExBQkxFIEhNWTtMbzswO0w7Ozs7O047Ozs7OworQTBBQjtZSSBTWUxMQUJMRSBITVlQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEFDO1lJIFNZTExBQkxFIEhNWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEFEO1lJIFNZTExBQkxFIEhNWVI7TG87MDtMOzs7OztOOzs7OzsKK0EwQUU7WUkgU1lMTEFCTEUgTUlUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEFGO1lJIFNZTExBQkxFIE1JWDtMbzswO0w7Ozs7O047Ozs7OworQTBCMDtZSSBTWUxMQUJMRSBNSTtMbzswO0w7Ozs7O047Ozs7OworQTBCMTtZSSBTWUxMQUJMRSBNSVA7TG87MDtMOzs7OztOOzs7OzsKK0EwQjI7WUkgU1lMTEFCTEUgTUlFWDtMbzswO0w7Ozs7O047Ozs7OworQTBCMztZSSBTWUxMQUJMRSBNSUU7TG87MDtMOzs7OztOOzs7OzsKK0EwQjQ7WUkgU1lMTEFCTEUgTUlFUDtMbzswO0w7Ozs7O047Ozs7OworQTBCNTtZSSBTWUxMQUJMRSBNQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwQjY7WUkgU1lMTEFCTEUgTUFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEI3O1lJIFNZTExBQkxFIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEI4O1lJIFNZTExBQkxFIE1BUDtMbzswO0w7Ozs7O047Ozs7OworQTBCOTtZSSBTWUxMQUJMRSBNVU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEJBO1lJIFNZTExBQkxFIE1VT1g7TG87MDtMOzs7OztOOzs7OzsKK0EwQkI7WUkgU1lMTEFCTEUgTVVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEJDO1lJIFNZTExBQkxFIE1VT1A7TG87MDtMOzs7OztOOzs7OzsKK0EwQkQ7WUkgU1lMTEFCTEUgTU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEJFO1lJIFNZTExBQkxFIE1PWDtMbzswO0w7Ozs7O047Ozs7OworQTBCRjtZSSBTWUxMQUJMRSBNTztMbzswO0w7Ozs7O047Ozs7OworQTBDMDtZSSBTWUxMQUJMRSBNT1A7TG87MDtMOzs7OztOOzs7OzsKK0EwQzE7WUkgU1lMTEFCTEUgTUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEMyO1lJIFNZTExBQkxFIE1FO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEMzO1lJIFNZTExBQkxFIE1VVDtMbzswO0w7Ozs7O047Ozs7OworQTBDNDtZSSBTWUxMQUJMRSBNVVg7TG87MDtMOzs7OztOOzs7OzsKK0EwQzU7WUkgU1lMTEFCTEUgTVU7TG87MDtMOzs7OztOOzs7OzsKK0EwQzY7WUkgU1lMTEFCTEUgTVVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEM3O1lJIFNZTExBQkxFIE1VUlg7TG87MDtMOzs7OztOOzs7OzsKK0EwQzg7WUkgU1lMTEFCTEUgTVVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEM5O1lJIFNZTExBQkxFIE1ZVDtMbzswO0w7Ozs7O047Ozs7OworQTBDQTtZSSBTWUxMQUJMRSBNWVg7TG87MDtMOzs7OztOOzs7OzsKK0EwQ0I7WUkgU1lMTEFCTEUgTVk7TG87MDtMOzs7OztOOzs7OzsKK0EwQ0M7WUkgU1lMTEFCTEUgTVlQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMENEO1lJIFNZTExBQkxFIEZJVDtMbzswO0w7Ozs7O047Ozs7OworQTBDRTtZSSBTWUxMQUJMRSBGSVg7TG87MDtMOzs7OztOOzs7OzsKK0EwQ0Y7WUkgU1lMTEFCTEUgRkk7TG87MDtMOzs7OztOOzs7OzsKK0EwRDA7WUkgU1lMTEFCTEUgRklQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEQxO1lJIFNZTExBQkxFIEZBVDtMbzswO0w7Ozs7O047Ozs7OworQTBEMjtZSSBTWUxMQUJMRSBGQVg7TG87MDtMOzs7OztOOzs7OzsKK0EwRDM7WUkgU1lMTEFCTEUgRkE7TG87MDtMOzs7OztOOzs7OzsKK0EwRDQ7WUkgU1lMTEFCTEUgRkFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEQ1O1lJIFNZTExBQkxFIEZPWDtMbzswO0w7Ozs7O047Ozs7OworQTBENjtZSSBTWUxMQUJMRSBGTztMbzswO0w7Ozs7O047Ozs7OworQTBENztZSSBTWUxMQUJMRSBGT1A7TG87MDtMOzs7OztOOzs7OzsKK0EwRDg7WUkgU1lMTEFCTEUgRlVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEQ5O1lJIFNZTExBQkxFIEZVWDtMbzswO0w7Ozs7O047Ozs7OworQTBEQTtZSSBTWUxMQUJMRSBGVTtMbzswO0w7Ozs7O047Ozs7OworQTBEQjtZSSBTWUxMQUJMRSBGVVA7TG87MDtMOzs7OztOOzs7OzsKK0EwREM7WUkgU1lMTEFCTEUgRlVSWDtMbzswO0w7Ozs7O047Ozs7OworQTBERDtZSSBTWUxMQUJMRSBGVVI7TG87MDtMOzs7OztOOzs7OzsKK0EwREU7WUkgU1lMTEFCTEUgRllUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMERGO1lJIFNZTExBQkxFIEZZWDtMbzswO0w7Ozs7O047Ozs7OworQTBFMDtZSSBTWUxMQUJMRSBGWTtMbzswO0w7Ozs7O047Ozs7OworQTBFMTtZSSBTWUxMQUJMRSBGWVA7TG87MDtMOzs7OztOOzs7OzsKK0EwRTI7WUkgU1lMTEFCTEUgVklUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEUzO1lJIFNZTExBQkxFIFZJWDtMbzswO0w7Ozs7O047Ozs7OworQTBFNDtZSSBTWUxMQUJMRSBWSTtMbzswO0w7Ozs7O047Ozs7OworQTBFNTtZSSBTWUxMQUJMRSBWSVA7TG87MDtMOzs7OztOOzs7OzsKK0EwRTY7WUkgU1lMTEFCTEUgVklFVDtMbzswO0w7Ozs7O047Ozs7OworQTBFNztZSSBTWUxMQUJMRSBWSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEU4O1lJIFNZTExBQkxFIFZJRTtMbzswO0w7Ozs7O047Ozs7OworQTBFOTtZSSBTWUxMQUJMRSBWSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEVBO1lJIFNZTExBQkxFIFZBVDtMbzswO0w7Ozs7O047Ozs7OworQTBFQjtZSSBTWUxMQUJMRSBWQVg7TG87MDtMOzs7OztOOzs7OzsKK0EwRUM7WUkgU1lMTEFCTEUgVkE7TG87MDtMOzs7OztOOzs7OzsKK0EwRUQ7WUkgU1lMTEFCTEUgVkFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEVFO1lJIFNZTExBQkxFIFZPVDtMbzswO0w7Ozs7O047Ozs7OworQTBFRjtZSSBTWUxMQUJMRSBWT1g7TG87MDtMOzs7OztOOzs7OzsKK0EwRjA7WUkgU1lMTEFCTEUgVk87TG87MDtMOzs7OztOOzs7OzsKK0EwRjE7WUkgU1lMTEFCTEUgVk9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEYyO1lJIFNZTExBQkxFIFZFWDtMbzswO0w7Ozs7O047Ozs7OworQTBGMztZSSBTWUxMQUJMRSBWRVA7TG87MDtMOzs7OztOOzs7OzsKK0EwRjQ7WUkgU1lMTEFCTEUgVlVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEY1O1lJIFNZTExBQkxFIFZVWDtMbzswO0w7Ozs7O047Ozs7OworQTBGNjtZSSBTWUxMQUJMRSBWVTtMbzswO0w7Ozs7O047Ozs7OworQTBGNztZSSBTWUxMQUJMRSBWVVA7TG87MDtMOzs7OztOOzs7OzsKK0EwRjg7WUkgU1lMTEFCTEUgVlVSWDtMbzswO0w7Ozs7O047Ozs7OworQTBGOTtZSSBTWUxMQUJMRSBWVVI7TG87MDtMOzs7OztOOzs7OzsKK0EwRkE7WUkgU1lMTEFCTEUgVllUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEZCO1lJIFNZTExBQkxFIFZZWDtMbzswO0w7Ozs7O047Ozs7OworQTBGQztZSSBTWUxMQUJMRSBWWTtMbzswO0w7Ozs7O047Ozs7OworQTBGRDtZSSBTWUxMQUJMRSBWWVA7TG87MDtMOzs7OztOOzs7OzsKK0EwRkU7WUkgU1lMTEFCTEUgVllSWDtMbzswO0w7Ozs7O047Ozs7OworQTBGRjtZSSBTWUxMQUJMRSBWWVI7TG87MDtMOzs7OztOOzs7OzsKK0ExMDA7WUkgU1lMTEFCTEUgRElUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTAxO1lJIFNZTExBQkxFIERJWDtMbzswO0w7Ozs7O047Ozs7OworQTEwMjtZSSBTWUxMQUJMRSBESTtMbzswO0w7Ozs7O047Ozs7OworQTEwMztZSSBTWUxMQUJMRSBESVA7TG87MDtMOzs7OztOOzs7OzsKK0ExMDQ7WUkgU1lMTEFCTEUgRElFWDtMbzswO0w7Ozs7O047Ozs7OworQTEwNTtZSSBTWUxMQUJMRSBESUU7TG87MDtMOzs7OztOOzs7OzsKK0ExMDY7WUkgU1lMTEFCTEUgRElFUDtMbzswO0w7Ozs7O047Ozs7OworQTEwNztZSSBTWUxMQUJMRSBEQVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExMDg7WUkgU1lMTEFCTEUgREFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTA5O1lJIFNZTExBQkxFIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTBBO1lJIFNZTExBQkxFIERBUDtMbzswO0w7Ozs7O047Ozs7OworQTEwQjtZSSBTWUxMQUJMRSBEVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTBDO1lJIFNZTExBQkxFIERVTztMbzswO0w7Ozs7O047Ozs7OworQTEwRDtZSSBTWUxMQUJMRSBET1Q7TG87MDtMOzs7OztOOzs7OzsKK0ExMEU7WUkgU1lMTEFCTEUgRE9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTBGO1lJIFNZTExBQkxFIERPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTEwO1lJIFNZTExBQkxFIERPUDtMbzswO0w7Ozs7O047Ozs7OworQTExMTtZSSBTWUxMQUJMRSBERVg7TG87MDtMOzs7OztOOzs7OzsKK0ExMTI7WUkgU1lMTEFCTEUgREU7TG87MDtMOzs7OztOOzs7OzsKK0ExMTM7WUkgU1lMTEFCTEUgREVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTE0O1lJIFNZTExBQkxFIERVVDtMbzswO0w7Ozs7O047Ozs7OworQTExNTtZSSBTWUxMQUJMRSBEVVg7TG87MDtMOzs7OztOOzs7OzsKK0ExMTY7WUkgU1lMTEFCTEUgRFU7TG87MDtMOzs7OztOOzs7OzsKK0ExMTc7WUkgU1lMTEFCTEUgRFVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTE4O1lJIFNZTExBQkxFIERVUlg7TG87MDtMOzs7OztOOzs7OzsKK0ExMTk7WUkgU1lMTEFCTEUgRFVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTFBO1lJIFNZTExBQkxFIFRJVDtMbzswO0w7Ozs7O047Ozs7OworQTExQjtZSSBTWUxMQUJMRSBUSVg7TG87MDtMOzs7OztOOzs7OzsKK0ExMUM7WUkgU1lMTEFCTEUgVEk7TG87MDtMOzs7OztOOzs7OzsKK0ExMUQ7WUkgU1lMTEFCTEUgVElQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTFFO1lJIFNZTExBQkxFIFRJRVg7TG87MDtMOzs7OztOOzs7OzsKK0ExMUY7WUkgU1lMTEFCTEUgVElFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTIwO1lJIFNZTExBQkxFIFRJRVA7TG87MDtMOzs7OztOOzs7OzsKK0ExMjE7WUkgU1lMTEFCTEUgVEFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTIyO1lJIFNZTExBQkxFIFRBWDtMbzswO0w7Ozs7O047Ozs7OworQTEyMztZSSBTWUxMQUJMRSBUQTtMbzswO0w7Ozs7O047Ozs7OworQTEyNDtZSSBTWUxMQUJMRSBUQVA7TG87MDtMOzs7OztOOzs7OzsKK0ExMjU7WUkgU1lMTEFCTEUgVFVPVDtMbzswO0w7Ozs7O047Ozs7OworQTEyNjtZSSBTWUxMQUJMRSBUVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTI3O1lJIFNZTExBQkxFIFRVTztMbzswO0w7Ozs7O047Ozs7OworQTEyODtZSSBTWUxMQUJMRSBUVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTI5O1lJIFNZTExBQkxFIFRPVDtMbzswO0w7Ozs7O047Ozs7OworQTEyQTtZSSBTWUxMQUJMRSBUT1g7TG87MDtMOzs7OztOOzs7OzsKK0ExMkI7WUkgU1lMTEFCTEUgVE87TG87MDtMOzs7OztOOzs7OzsKK0ExMkM7WUkgU1lMTEFCTEUgVE9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTJEO1lJIFNZTExBQkxFIFRFWDtMbzswO0w7Ozs7O047Ozs7OworQTEyRTtZSSBTWUxMQUJMRSBURTtMbzswO0w7Ozs7O047Ozs7OworQTEyRjtZSSBTWUxMQUJMRSBURVA7TG87MDtMOzs7OztOOzs7OzsKK0ExMzA7WUkgU1lMTEFCTEUgVFVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTMxO1lJIFNZTExBQkxFIFRVWDtMbzswO0w7Ozs7O047Ozs7OworQTEzMjtZSSBTWUxMQUJMRSBUVTtMbzswO0w7Ozs7O047Ozs7OworQTEzMztZSSBTWUxMQUJMRSBUVVA7TG87MDtMOzs7OztOOzs7OzsKK0ExMzQ7WUkgU1lMTEFCTEUgVFVSWDtMbzswO0w7Ozs7O047Ozs7OworQTEzNTtZSSBTWUxMQUJMRSBUVVI7TG87MDtMOzs7OztOOzs7OzsKK0ExMzY7WUkgU1lMTEFCTEUgRERJVDtMbzswO0w7Ozs7O047Ozs7OworQTEzNztZSSBTWUxMQUJMRSBERElYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTM4O1lJIFNZTExBQkxFIERESTtMbzswO0w7Ozs7O047Ozs7OworQTEzOTtZSSBTWUxMQUJMRSBERElQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTNBO1lJIFNZTExBQkxFIERESUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTNCO1lJIFNZTExBQkxFIERESUU7TG87MDtMOzs7OztOOzs7OzsKK0ExM0M7WUkgU1lMTEFCTEUgRERJRVA7TG87MDtMOzs7OztOOzs7OzsKK0ExM0Q7WUkgU1lMTEFCTEUgRERBVDtMbzswO0w7Ozs7O047Ozs7OworQTEzRTtZSSBTWUxMQUJMRSBEREFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTNGO1lJIFNZTExBQkxFIEREQTtMbzswO0w7Ozs7O047Ozs7OworQTE0MDtZSSBTWUxMQUJMRSBEREFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTQxO1lJIFNZTExBQkxFIEREVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTQyO1lJIFNZTExBQkxFIEREVU87TG87MDtMOzs7OztOOzs7OzsKK0ExNDM7WUkgU1lMTEFCTEUgRERVT1A7TG87MDtMOzs7OztOOzs7OzsKK0ExNDQ7WUkgU1lMTEFCTEUgRERPVDtMbzswO0w7Ozs7O047Ozs7OworQTE0NTtZSSBTWUxMQUJMRSBERE9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTQ2O1lJIFNZTExBQkxFIERETztMbzswO0w7Ozs7O047Ozs7OworQTE0NztZSSBTWUxMQUJMRSBERE9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTQ4O1lJIFNZTExBQkxFIERERVg7TG87MDtMOzs7OztOOzs7OzsKK0ExNDk7WUkgU1lMTEFCTEUgRERFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTRBO1lJIFNZTExBQkxFIERERVA7TG87MDtMOzs7OztOOzs7OzsKK0ExNEI7WUkgU1lMTEFCTEUgRERVVDtMbzswO0w7Ozs7O047Ozs7OworQTE0QztZSSBTWUxMQUJMRSBERFVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTREO1lJIFNZTExBQkxFIEREVTtMbzswO0w7Ozs7O047Ozs7OworQTE0RTtZSSBTWUxMQUJMRSBERFVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTRGO1lJIFNZTExBQkxFIEREVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTUwO1lJIFNZTExBQkxFIEREVVI7TG87MDtMOzs7OztOOzs7OzsKK0ExNTE7WUkgU1lMTEFCTEUgTkRJVDtMbzswO0w7Ozs7O047Ozs7OworQTE1MjtZSSBTWUxMQUJMRSBORElYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTUzO1lJIFNZTExBQkxFIE5ESTtMbzswO0w7Ozs7O047Ozs7OworQTE1NDtZSSBTWUxMQUJMRSBORElQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTU1O1lJIFNZTExBQkxFIE5ESUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTU2O1lJIFNZTExBQkxFIE5ESUU7TG87MDtMOzs7OztOOzs7OzsKK0ExNTc7WUkgU1lMTEFCTEUgTkRBVDtMbzswO0w7Ozs7O047Ozs7OworQTE1ODtZSSBTWUxMQUJMRSBOREFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTU5O1lJIFNZTExBQkxFIE5EQTtMbzswO0w7Ozs7O047Ozs7OworQTE1QTtZSSBTWUxMQUJMRSBOREFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTVCO1lJIFNZTExBQkxFIE5ET1Q7TG87MDtMOzs7OztOOzs7OzsKK0ExNUM7WUkgU1lMTEFCTEUgTkRPWDtMbzswO0w7Ozs7O047Ozs7OworQTE1RDtZSSBTWUxMQUJMRSBORE87TG87MDtMOzs7OztOOzs7OzsKK0ExNUU7WUkgU1lMTEFCTEUgTkRPUDtMbzswO0w7Ozs7O047Ozs7OworQTE1RjtZSSBTWUxMQUJMRSBOREVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTYwO1lJIFNZTExBQkxFIE5ERTtMbzswO0w7Ozs7O047Ozs7OworQTE2MTtZSSBTWUxMQUJMRSBOREVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTYyO1lJIFNZTExBQkxFIE5EVVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExNjM7WUkgU1lMTEFCTEUgTkRVWDtMbzswO0w7Ozs7O047Ozs7OworQTE2NDtZSSBTWUxMQUJMRSBORFU7TG87MDtMOzs7OztOOzs7OzsKK0ExNjU7WUkgU1lMTEFCTEUgTkRVUDtMbzswO0w7Ozs7O047Ozs7OworQTE2NjtZSSBTWUxMQUJMRSBORFVSWDtMbzswO0w7Ozs7O047Ozs7OworQTE2NztZSSBTWUxMQUJMRSBORFVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTY4O1lJIFNZTExBQkxFIEhOSVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExNjk7WUkgU1lMTEFCTEUgSE5JWDtMbzswO0w7Ozs7O047Ozs7OworQTE2QTtZSSBTWUxMQUJMRSBITkk7TG87MDtMOzs7OztOOzs7OzsKK0ExNkI7WUkgU1lMTEFCTEUgSE5JUDtMbzswO0w7Ozs7O047Ozs7OworQTE2QztZSSBTWUxMQUJMRSBITklFVDtMbzswO0w7Ozs7O047Ozs7OworQTE2RDtZSSBTWUxMQUJMRSBITklFWDtMbzswO0w7Ozs7O047Ozs7OworQTE2RTtZSSBTWUxMQUJMRSBITklFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTZGO1lJIFNZTExBQkxFIEhOSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTcwO1lJIFNZTExBQkxFIEhOQVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExNzE7WUkgU1lMTEFCTEUgSE5BWDtMbzswO0w7Ozs7O047Ozs7OworQTE3MjtZSSBTWUxMQUJMRSBITkE7TG87MDtMOzs7OztOOzs7OzsKK0ExNzM7WUkgU1lMTEFCTEUgSE5BUDtMbzswO0w7Ozs7O047Ozs7OworQTE3NDtZSSBTWUxMQUJMRSBITlVPWDtMbzswO0w7Ozs7O047Ozs7OworQTE3NTtZSSBTWUxMQUJMRSBITlVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTc2O1lJIFNZTExBQkxFIEhOT1Q7TG87MDtMOzs7OztOOzs7OzsKK0ExNzc7WUkgU1lMTEFCTEUgSE5PWDtMbzswO0w7Ozs7O047Ozs7OworQTE3ODtZSSBTWUxMQUJMRSBITk9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTc5O1lJIFNZTExBQkxFIEhORVg7TG87MDtMOzs7OztOOzs7OzsKK0ExN0E7WUkgU1lMTEFCTEUgSE5FO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTdCO1lJIFNZTExBQkxFIEhORVA7TG87MDtMOzs7OztOOzs7OzsKK0ExN0M7WUkgU1lMTEFCTEUgSE5VVDtMbzswO0w7Ozs7O047Ozs7OworQTE3RDtZSSBTWUxMQUJMRSBOSVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExN0U7WUkgU1lMTEFCTEUgTklYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTdGO1lJIFNZTExBQkxFIE5JO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTgwO1lJIFNZTExBQkxFIE5JUDtMbzswO0w7Ozs7O047Ozs7OworQTE4MTtZSSBTWUxMQUJMRSBOSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTgyO1lJIFNZTExBQkxFIE5JRTtMbzswO0w7Ozs7O047Ozs7OworQTE4MztZSSBTWUxMQUJMRSBOSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTg0O1lJIFNZTExBQkxFIE5BWDtMbzswO0w7Ozs7O047Ozs7OworQTE4NTtZSSBTWUxMQUJMRSBOQTtMbzswO0w7Ozs7O047Ozs7OworQTE4NjtZSSBTWUxMQUJMRSBOQVA7TG87MDtMOzs7OztOOzs7OzsKK0ExODc7WUkgU1lMTEFCTEUgTlVPWDtMbzswO0w7Ozs7O047Ozs7OworQTE4ODtZSSBTWUxMQUJMRSBOVU87TG87MDtMOzs7OztOOzs7OzsKK0ExODk7WUkgU1lMTEFCTEUgTlVPUDtMbzswO0w7Ozs7O047Ozs7OworQTE4QTtZSSBTWUxMQUJMRSBOT1Q7TG87MDtMOzs7OztOOzs7OzsKK0ExOEI7WUkgU1lMTEFCTEUgTk9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMThDO1lJIFNZTExBQkxFIE5PO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMThEO1lJIFNZTExBQkxFIE5PUDtMbzswO0w7Ozs7O047Ozs7OworQTE4RTtZSSBTWUxMQUJMRSBORVg7TG87MDtMOzs7OztOOzs7OzsKK0ExOEY7WUkgU1lMTEFCTEUgTkU7TG87MDtMOzs7OztOOzs7OzsKK0ExOTA7WUkgU1lMTEFCTEUgTkVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTkxO1lJIFNZTExBQkxFIE5VVDtMbzswO0w7Ozs7O047Ozs7OworQTE5MjtZSSBTWUxMQUJMRSBOVVg7TG87MDtMOzs7OztOOzs7OzsKK0ExOTM7WUkgU1lMTEFCTEUgTlU7TG87MDtMOzs7OztOOzs7OzsKK0ExOTQ7WUkgU1lMTEFCTEUgTlVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTk1O1lJIFNZTExBQkxFIE5VUlg7TG87MDtMOzs7OztOOzs7OzsKK0ExOTY7WUkgU1lMTEFCTEUgTlVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTk3O1lJIFNZTExBQkxFIEhMSVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExOTg7WUkgU1lMTEFCTEUgSExJWDtMbzswO0w7Ozs7O047Ozs7OworQTE5OTtZSSBTWUxMQUJMRSBITEk7TG87MDtMOzs7OztOOzs7OzsKK0ExOUE7WUkgU1lMTEFCTEUgSExJUDtMbzswO0w7Ozs7O047Ozs7OworQTE5QjtZSSBTWUxMQUJMRSBITElFWDtMbzswO0w7Ozs7O047Ozs7OworQTE5QztZSSBTWUxMQUJMRSBITElFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTlEO1lJIFNZTExBQkxFIEhMSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTlFO1lJIFNZTExBQkxFIEhMQVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExOUY7WUkgU1lMTEFCTEUgSExBWDtMbzswO0w7Ozs7O047Ozs7OworQTFBMDtZSSBTWUxMQUJMRSBITEE7TG87MDtMOzs7OztOOzs7OzsKK0ExQTE7WUkgU1lMTEFCTEUgSExBUDtMbzswO0w7Ozs7O047Ozs7OworQTFBMjtZSSBTWUxMQUJMRSBITFVPWDtMbzswO0w7Ozs7O047Ozs7OworQTFBMztZSSBTWUxMQUJMRSBITFVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUE0O1lJIFNZTExBQkxFIEhMVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUE1O1lJIFNZTExBQkxFIEhMT1g7TG87MDtMOzs7OztOOzs7OzsKK0ExQTY7WUkgU1lMTEFCTEUgSExPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUE3O1lJIFNZTExBQkxFIEhMT1A7TG87MDtMOzs7OztOOzs7OzsKK0ExQTg7WUkgU1lMTEFCTEUgSExFWDtMbzswO0w7Ozs7O047Ozs7OworQTFBOTtZSSBTWUxMQUJMRSBITEU7TG87MDtMOzs7OztOOzs7OzsKK0ExQUE7WUkgU1lMTEFCTEUgSExFUDtMbzswO0w7Ozs7O047Ozs7OworQTFBQjtZSSBTWUxMQUJMRSBITFVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUFDO1lJIFNZTExBQkxFIEhMVVg7TG87MDtMOzs7OztOOzs7OzsKK0ExQUQ7WUkgU1lMTEFCTEUgSExVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUFFO1lJIFNZTExBQkxFIEhMVVA7TG87MDtMOzs7OztOOzs7OzsKK0ExQUY7WUkgU1lMTEFCTEUgSExVUlg7TG87MDtMOzs7OztOOzs7OzsKK0ExQjA7WUkgU1lMTEFCTEUgSExVUjtMbzswO0w7Ozs7O047Ozs7OworQTFCMTtZSSBTWUxMQUJMRSBITFlUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUIyO1lJIFNZTExBQkxFIEhMWVg7TG87MDtMOzs7OztOOzs7OzsKK0ExQjM7WUkgU1lMTEFCTEUgSExZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUI0O1lJIFNZTExBQkxFIEhMWVA7TG87MDtMOzs7OztOOzs7OzsKK0ExQjU7WUkgU1lMTEFCTEUgSExZUlg7TG87MDtMOzs7OztOOzs7OzsKK0ExQjY7WUkgU1lMTEFCTEUgSExZUjtMbzswO0w7Ozs7O047Ozs7OworQTFCNztZSSBTWUxMQUJMRSBMSVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExQjg7WUkgU1lMTEFCTEUgTElYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUI5O1lJIFNZTExBQkxFIExJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUJBO1lJIFNZTExBQkxFIExJUDtMbzswO0w7Ozs7O047Ozs7OworQTFCQjtZSSBTWUxMQUJMRSBMSUVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUJDO1lJIFNZTExBQkxFIExJRVg7TG87MDtMOzs7OztOOzs7OzsKK0ExQkQ7WUkgU1lMTEFCTEUgTElFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUJFO1lJIFNZTExBQkxFIExJRVA7TG87MDtMOzs7OztOOzs7OzsKK0ExQkY7WUkgU1lMTEFCTEUgTEFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUMwO1lJIFNZTExBQkxFIExBWDtMbzswO0w7Ozs7O047Ozs7OworQTFDMTtZSSBTWUxMQUJMRSBMQTtMbzswO0w7Ozs7O047Ozs7OworQTFDMjtZSSBTWUxMQUJMRSBMQVA7TG87MDtMOzs7OztOOzs7OzsKK0ExQzM7WUkgU1lMTEFCTEUgTFVPVDtMbzswO0w7Ozs7O047Ozs7OworQTFDNDtZSSBTWUxMQUJMRSBMVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUM1O1lJIFNZTExBQkxFIExVTztMbzswO0w7Ozs7O047Ozs7OworQTFDNjtZSSBTWUxMQUJMRSBMVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUM3O1lJIFNZTExBQkxFIExPVDtMbzswO0w7Ozs7O047Ozs7OworQTFDODtZSSBTWUxMQUJMRSBMT1g7TG87MDtMOzs7OztOOzs7OzsKK0ExQzk7WUkgU1lMTEFCTEUgTE87TG87MDtMOzs7OztOOzs7OzsKK0ExQ0E7WUkgU1lMTEFCTEUgTE9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUNCO1lJIFNZTExBQkxFIExFWDtMbzswO0w7Ozs7O047Ozs7OworQTFDQztZSSBTWUxMQUJMRSBMRTtMbzswO0w7Ozs7O047Ozs7OworQTFDRDtZSSBTWUxMQUJMRSBMRVA7TG87MDtMOzs7OztOOzs7OzsKK0ExQ0U7WUkgU1lMTEFCTEUgTFVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUNGO1lJIFNZTExBQkxFIExVWDtMbzswO0w7Ozs7O047Ozs7OworQTFEMDtZSSBTWUxMQUJMRSBMVTtMbzswO0w7Ozs7O047Ozs7OworQTFEMTtZSSBTWUxMQUJMRSBMVVA7TG87MDtMOzs7OztOOzs7OzsKK0ExRDI7WUkgU1lMTEFCTEUgTFVSWDtMbzswO0w7Ozs7O047Ozs7OworQTFEMztZSSBTWUxMQUJMRSBMVVI7TG87MDtMOzs7OztOOzs7OzsKK0ExRDQ7WUkgU1lMTEFCTEUgTFlUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUQ1O1lJIFNZTExBQkxFIExZWDtMbzswO0w7Ozs7O047Ozs7OworQTFENjtZSSBTWUxMQUJMRSBMWTtMbzswO0w7Ozs7O047Ozs7OworQTFENztZSSBTWUxMQUJMRSBMWVA7TG87MDtMOzs7OztOOzs7OzsKK0ExRDg7WUkgU1lMTEFCTEUgTFlSWDtMbzswO0w7Ozs7O047Ozs7OworQTFEOTtZSSBTWUxMQUJMRSBMWVI7TG87MDtMOzs7OztOOzs7OzsKK0ExREE7WUkgU1lMTEFCTEUgR0lUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMURCO1lJIFNZTExBQkxFIEdJWDtMbzswO0w7Ozs7O047Ozs7OworQTFEQztZSSBTWUxMQUJMRSBHSTtMbzswO0w7Ozs7O047Ozs7OworQTFERDtZSSBTWUxMQUJMRSBHSVA7TG87MDtMOzs7OztOOzs7OzsKK0ExREU7WUkgU1lMTEFCTEUgR0lFVDtMbzswO0w7Ozs7O047Ozs7OworQTFERjtZSSBTWUxMQUJMRSBHSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUUwO1lJIFNZTExBQkxFIEdJRTtMbzswO0w7Ozs7O047Ozs7OworQTFFMTtZSSBTWUxMQUJMRSBHSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUUyO1lJIFNZTExBQkxFIEdBVDtMbzswO0w7Ozs7O047Ozs7OworQTFFMztZSSBTWUxMQUJMRSBHQVg7TG87MDtMOzs7OztOOzs7OzsKK0ExRTQ7WUkgU1lMTEFCTEUgR0E7TG87MDtMOzs7OztOOzs7OzsKK0ExRTU7WUkgU1lMTEFCTEUgR0FQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUU2O1lJIFNZTExBQkxFIEdVT1Q7TG87MDtMOzs7OztOOzs7OzsKK0ExRTc7WUkgU1lMTEFCTEUgR1VPWDtMbzswO0w7Ozs7O047Ozs7OworQTFFODtZSSBTWUxMQUJMRSBHVU87TG87MDtMOzs7OztOOzs7OzsKK0ExRTk7WUkgU1lMTEFCTEUgR1VPUDtMbzswO0w7Ozs7O047Ozs7OworQTFFQTtZSSBTWUxMQUJMRSBHT1Q7TG87MDtMOzs7OztOOzs7OzsKK0ExRUI7WUkgU1lMTEFCTEUgR09YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUVDO1lJIFNZTExBQkxFIEdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUVEO1lJIFNZTExBQkxFIEdPUDtMbzswO0w7Ozs7O047Ozs7OworQTFFRTtZSSBTWUxMQUJMRSBHRVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExRUY7WUkgU1lMTEFCTEUgR0VYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUYwO1lJIFNZTExBQkxFIEdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUYxO1lJIFNZTExBQkxFIEdFUDtMbzswO0w7Ozs7O047Ozs7OworQTFGMjtZSSBTWUxMQUJMRSBHVVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExRjM7WUkgU1lMTEFCTEUgR1VYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUY0O1lJIFNZTExBQkxFIEdVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUY1O1lJIFNZTExBQkxFIEdVUDtMbzswO0w7Ozs7O047Ozs7OworQTFGNjtZSSBTWUxMQUJMRSBHVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUY3O1lJIFNZTExBQkxFIEdVUjtMbzswO0w7Ozs7O047Ozs7OworQTFGODtZSSBTWUxMQUJMRSBLSVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExRjk7WUkgU1lMTEFCTEUgS0lYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUZBO1lJIFNZTExBQkxFIEtJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUZCO1lJIFNZTExBQkxFIEtJUDtMbzswO0w7Ozs7O047Ozs7OworQTFGQztZSSBTWUxMQUJMRSBLSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUZEO1lJIFNZTExBQkxFIEtJRTtMbzswO0w7Ozs7O047Ozs7OworQTFGRTtZSSBTWUxMQUJMRSBLSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUZGO1lJIFNZTExBQkxFIEtBVDtMbzswO0w7Ozs7O047Ozs7OworQTIwMDtZSSBTWUxMQUJMRSBLQVg7TG87MDtMOzs7OztOOzs7OzsKK0EyMDE7WUkgU1lMTEFCTEUgS0E7TG87MDtMOzs7OztOOzs7OzsKK0EyMDI7WUkgU1lMTEFCTEUgS0FQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjAzO1lJIFNZTExBQkxFIEtVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyMDQ7WUkgU1lMTEFCTEUgS1VPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjA1O1lJIFNZTExBQkxFIEtVT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyMDY7WUkgU1lMTEFCTEUgS09UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjA3O1lJIFNZTExBQkxFIEtPWDtMbzswO0w7Ozs7O047Ozs7OworQTIwODtZSSBTWUxMQUJMRSBLTztMbzswO0w7Ozs7O047Ozs7OworQTIwOTtZSSBTWUxMQUJMRSBLT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyMEE7WUkgU1lMTEFCTEUgS0VUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjBCO1lJIFNZTExBQkxFIEtFWDtMbzswO0w7Ozs7O047Ozs7OworQTIwQztZSSBTWUxMQUJMRSBLRTtMbzswO0w7Ozs7O047Ozs7OworQTIwRDtZSSBTWUxMQUJMRSBLRVA7TG87MDtMOzs7OztOOzs7OzsKK0EyMEU7WUkgU1lMTEFCTEUgS1VUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjBGO1lJIFNZTExBQkxFIEtVWDtMbzswO0w7Ozs7O047Ozs7OworQTIxMDtZSSBTWUxMQUJMRSBLVTtMbzswO0w7Ozs7O047Ozs7OworQTIxMTtZSSBTWUxMQUJMRSBLVVA7TG87MDtMOzs7OztOOzs7OzsKK0EyMTI7WUkgU1lMTEFCTEUgS1VSWDtMbzswO0w7Ozs7O047Ozs7OworQTIxMztZSSBTWUxMQUJMRSBLVVI7TG87MDtMOzs7OztOOzs7OzsKK0EyMTQ7WUkgU1lMTEFCTEUgR0dJVDtMbzswO0w7Ozs7O047Ozs7OworQTIxNTtZSSBTWUxMQUJMRSBHR0lYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjE2O1lJIFNZTExBQkxFIEdHSTtMbzswO0w7Ozs7O047Ozs7OworQTIxNztZSSBTWUxMQUJMRSBHR0lFWDtMbzswO0w7Ozs7O047Ozs7OworQTIxODtZSSBTWUxMQUJMRSBHR0lFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjE5O1lJIFNZTExBQkxFIEdHSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjFBO1lJIFNZTExBQkxFIEdHQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyMUI7WUkgU1lMTEFCTEUgR0dBWDtMbzswO0w7Ozs7O047Ozs7OworQTIxQztZSSBTWUxMQUJMRSBHR0E7TG87MDtMOzs7OztOOzs7OzsKK0EyMUQ7WUkgU1lMTEFCTEUgR0dBUDtMbzswO0w7Ozs7O047Ozs7OworQTIxRTtZSSBTWUxMQUJMRSBHR1VPVDtMbzswO0w7Ozs7O047Ozs7OworQTIxRjtZSSBTWUxMQUJMRSBHR1VPWDtMbzswO0w7Ozs7O047Ozs7OworQTIyMDtZSSBTWUxMQUJMRSBHR1VPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjIxO1lJIFNZTExBQkxFIEdHVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjIyO1lJIFNZTExBQkxFIEdHT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EyMjM7WUkgU1lMTEFCTEUgR0dPWDtMbzswO0w7Ozs7O047Ozs7OworQTIyNDtZSSBTWUxMQUJMRSBHR087TG87MDtMOzs7OztOOzs7OzsKK0EyMjU7WUkgU1lMTEFCTEUgR0dPUDtMbzswO0w7Ozs7O047Ozs7OworQTIyNjtZSSBTWUxMQUJMRSBHR0VUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjI3O1lJIFNZTExBQkxFIEdHRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyMjg7WUkgU1lMTEFCTEUgR0dFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjI5O1lJIFNZTExBQkxFIEdHRVA7TG87MDtMOzs7OztOOzs7OzsKK0EyMkE7WUkgU1lMTEFCTEUgR0dVVDtMbzswO0w7Ozs7O047Ozs7OworQTIyQjtZSSBTWUxMQUJMRSBHR1VYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjJDO1lJIFNZTExBQkxFIEdHVTtMbzswO0w7Ozs7O047Ozs7OworQTIyRDtZSSBTWUxMQUJMRSBHR1VQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjJFO1lJIFNZTExBQkxFIEdHVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjJGO1lJIFNZTExBQkxFIEdHVVI7TG87MDtMOzs7OztOOzs7OzsKK0EyMzA7WUkgU1lMTEFCTEUgTUdJRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyMzE7WUkgU1lMTEFCTEUgTUdJRTtMbzswO0w7Ozs7O047Ozs7OworQTIzMjtZSSBTWUxMQUJMRSBNR0FUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjMzO1lJIFNZTExBQkxFIE1HQVg7TG87MDtMOzs7OztOOzs7OzsKK0EyMzQ7WUkgU1lMTEFCTEUgTUdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjM1O1lJIFNZTExBQkxFIE1HQVA7TG87MDtMOzs7OztOOzs7OzsKK0EyMzY7WUkgU1lMTEFCTEUgTUdVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyMzc7WUkgU1lMTEFCTEUgTUdVTztMbzswO0w7Ozs7O047Ozs7OworQTIzODtZSSBTWUxMQUJMRSBNR1VPUDtMbzswO0w7Ozs7O047Ozs7OworQTIzOTtZSSBTWUxMQUJMRSBNR09UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjNBO1lJIFNZTExBQkxFIE1HT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyM0I7WUkgU1lMTEFCTEUgTUdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjNDO1lJIFNZTExBQkxFIE1HT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyM0Q7WUkgU1lMTEFCTEUgTUdFWDtMbzswO0w7Ozs7O047Ozs7OworQTIzRTtZSSBTWUxMQUJMRSBNR0U7TG87MDtMOzs7OztOOzs7OzsKK0EyM0Y7WUkgU1lMTEFCTEUgTUdFUDtMbzswO0w7Ozs7O047Ozs7OworQTI0MDtZSSBTWUxMQUJMRSBNR1VUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjQxO1lJIFNZTExBQkxFIE1HVVg7TG87MDtMOzs7OztOOzs7OzsKK0EyNDI7WUkgU1lMTEFCTEUgTUdVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjQzO1lJIFNZTExBQkxFIE1HVVA7TG87MDtMOzs7OztOOzs7OzsKK0EyNDQ7WUkgU1lMTEFCTEUgTUdVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EyNDU7WUkgU1lMTEFCTEUgTUdVUjtMbzswO0w7Ozs7O047Ozs7OworQTI0NjtZSSBTWUxMQUJMRSBIWElUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjQ3O1lJIFNZTExBQkxFIEhYSVg7TG87MDtMOzs7OztOOzs7OzsKK0EyNDg7WUkgU1lMTEFCTEUgSFhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjQ5O1lJIFNZTExBQkxFIEhYSVA7TG87MDtMOzs7OztOOzs7OzsKK0EyNEE7WUkgU1lMTEFCTEUgSFhJRVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyNEI7WUkgU1lMTEFCTEUgSFhJRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyNEM7WUkgU1lMTEFCTEUgSFhJRTtMbzswO0w7Ozs7O047Ozs7OworQTI0RDtZSSBTWUxMQUJMRSBIWElFUDtMbzswO0w7Ozs7O047Ozs7OworQTI0RTtZSSBTWUxMQUJMRSBIWEFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjRGO1lJIFNZTExBQkxFIEhYQVg7TG87MDtMOzs7OztOOzs7OzsKK0EyNTA7WUkgU1lMTEFCTEUgSFhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjUxO1lJIFNZTExBQkxFIEhYQVA7TG87MDtMOzs7OztOOzs7OzsKK0EyNTI7WUkgU1lMTEFCTEUgSFhVT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EyNTM7WUkgU1lMTEFCTEUgSFhVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyNTQ7WUkgU1lMTEFCTEUgSFhVTztMbzswO0w7Ozs7O047Ozs7OworQTI1NTtZSSBTWUxMQUJMRSBIWFVPUDtMbzswO0w7Ozs7O047Ozs7OworQTI1NjtZSSBTWUxMQUJMRSBIWE9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjU3O1lJIFNZTExBQkxFIEhYT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyNTg7WUkgU1lMTEFCTEUgSFhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjU5O1lJIFNZTExBQkxFIEhYT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyNUE7WUkgU1lMTEFCTEUgSFhFWDtMbzswO0w7Ozs7O047Ozs7OworQTI1QjtZSSBTWUxMQUJMRSBIWEU7TG87MDtMOzs7OztOOzs7OzsKK0EyNUM7WUkgU1lMTEFCTEUgSFhFUDtMbzswO0w7Ozs7O047Ozs7OworQTI1RDtZSSBTWUxMQUJMRSBOR0lFWDtMbzswO0w7Ozs7O047Ozs7OworQTI1RTtZSSBTWUxMQUJMRSBOR0lFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjVGO1lJIFNZTExBQkxFIE5HSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjYwO1lJIFNZTExBQkxFIE5HQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyNjE7WUkgU1lMTEFCTEUgTkdBWDtMbzswO0w7Ozs7O047Ozs7OworQTI2MjtZSSBTWUxMQUJMRSBOR0E7TG87MDtMOzs7OztOOzs7OzsKK0EyNjM7WUkgU1lMTEFCTEUgTkdBUDtMbzswO0w7Ozs7O047Ozs7OworQTI2NDtZSSBTWUxMQUJMRSBOR1VPVDtMbzswO0w7Ozs7O047Ozs7OworQTI2NTtZSSBTWUxMQUJMRSBOR1VPWDtMbzswO0w7Ozs7O047Ozs7OworQTI2NjtZSSBTWUxMQUJMRSBOR1VPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjY3O1lJIFNZTExBQkxFIE5HT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EyNjg7WUkgU1lMTEFCTEUgTkdPWDtMbzswO0w7Ozs7O047Ozs7OworQTI2OTtZSSBTWUxMQUJMRSBOR087TG87MDtMOzs7OztOOzs7OzsKK0EyNkE7WUkgU1lMTEFCTEUgTkdPUDtMbzswO0w7Ozs7O047Ozs7OworQTI2QjtZSSBTWUxMQUJMRSBOR0VYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjZDO1lJIFNZTExBQkxFIE5HRTtMbzswO0w7Ozs7O047Ozs7OworQTI2RDtZSSBTWUxMQUJMRSBOR0VQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjZFO1lJIFNZTExBQkxFIEhJVDtMbzswO0w7Ozs7O047Ozs7OworQTI2RjtZSSBTWUxMQUJMRSBISUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjcwO1lJIFNZTExBQkxFIEhJRTtMbzswO0w7Ozs7O047Ozs7OworQTI3MTtZSSBTWUxMQUJMRSBIQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyNzI7WUkgU1lMTEFCTEUgSEFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjczO1lJIFNZTExBQkxFIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjc0O1lJIFNZTExBQkxFIEhBUDtMbzswO0w7Ozs7O047Ozs7OworQTI3NTtZSSBTWUxMQUJMRSBIVU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjc2O1lJIFNZTExBQkxFIEhVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyNzc7WUkgU1lMTEFCTEUgSFVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjc4O1lJIFNZTExBQkxFIEhVT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyNzk7WUkgU1lMTEFCTEUgSE9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjdBO1lJIFNZTExBQkxFIEhPWDtMbzswO0w7Ozs7O047Ozs7OworQTI3QjtZSSBTWUxMQUJMRSBITztMbzswO0w7Ozs7O047Ozs7OworQTI3QztZSSBTWUxMQUJMRSBIT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyN0Q7WUkgU1lMTEFCTEUgSEVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjdFO1lJIFNZTExBQkxFIEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjdGO1lJIFNZTExBQkxFIEhFUDtMbzswO0w7Ozs7O047Ozs7OworQTI4MDtZSSBTWUxMQUJMRSBXQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyODE7WUkgU1lMTEFCTEUgV0FYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjgyO1lJIFNZTExBQkxFIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjgzO1lJIFNZTExBQkxFIFdBUDtMbzswO0w7Ozs7O047Ozs7OworQTI4NDtZSSBTWUxMQUJMRSBXVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjg1O1lJIFNZTExBQkxFIFdVTztMbzswO0w7Ozs7O047Ozs7OworQTI4NjtZSSBTWUxMQUJMRSBXVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjg3O1lJIFNZTExBQkxFIFdPWDtMbzswO0w7Ozs7O047Ozs7OworQTI4ODtZSSBTWUxMQUJMRSBXTztMbzswO0w7Ozs7O047Ozs7OworQTI4OTtZSSBTWUxMQUJMRSBXT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyOEE7WUkgU1lMTEFCTEUgV0VYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjhCO1lJIFNZTExBQkxFIFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjhDO1lJIFNZTExBQkxFIFdFUDtMbzswO0w7Ozs7O047Ozs7OworQTI4RDtZSSBTWUxMQUJMRSBaSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyOEU7WUkgU1lMTEFCTEUgWklYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjhGO1lJIFNZTExBQkxFIFpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjkwO1lJIFNZTExBQkxFIFpJUDtMbzswO0w7Ozs7O047Ozs7OworQTI5MTtZSSBTWUxMQUJMRSBaSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjkyO1lJIFNZTExBQkxFIFpJRTtMbzswO0w7Ozs7O047Ozs7OworQTI5MztZSSBTWUxMQUJMRSBaSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjk0O1lJIFNZTExBQkxFIFpBVDtMbzswO0w7Ozs7O047Ozs7OworQTI5NTtZSSBTWUxMQUJMRSBaQVg7TG87MDtMOzs7OztOOzs7OzsKK0EyOTY7WUkgU1lMTEFCTEUgWkE7TG87MDtMOzs7OztOOzs7OzsKK0EyOTc7WUkgU1lMTEFCTEUgWkFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjk4O1lJIFNZTExBQkxFIFpVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyOTk7WUkgU1lMTEFCTEUgWlVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjlBO1lJIFNZTExBQkxFIFpVT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyOUI7WUkgU1lMTEFCTEUgWk9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjlDO1lJIFNZTExBQkxFIFpPWDtMbzswO0w7Ozs7O047Ozs7OworQTI5RDtZSSBTWUxMQUJMRSBaTztMbzswO0w7Ozs7O047Ozs7OworQTI5RTtZSSBTWUxMQUJMRSBaT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyOUY7WUkgU1lMTEFCTEUgWkVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkEwO1lJIFNZTExBQkxFIFpFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkExO1lJIFNZTExBQkxFIFpFUDtMbzswO0w7Ozs7O047Ozs7OworQTJBMjtZSSBTWUxMQUJMRSBaVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyQTM7WUkgU1lMTEFCTEUgWlVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkE0O1lJIFNZTExBQkxFIFpVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkE1O1lJIFNZTExBQkxFIFpVUDtMbzswO0w7Ozs7O047Ozs7OworQTJBNjtZSSBTWUxMQUJMRSBaVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkE3O1lJIFNZTExBQkxFIFpVUjtMbzswO0w7Ozs7O047Ozs7OworQTJBODtZSSBTWUxMQUJMRSBaWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyQTk7WUkgU1lMTEFCTEUgWllYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkFBO1lJIFNZTExBQkxFIFpZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkFCO1lJIFNZTExBQkxFIFpZUDtMbzswO0w7Ozs7O047Ozs7OworQTJBQztZSSBTWUxMQUJMRSBaWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkFEO1lJIFNZTExBQkxFIFpZUjtMbzswO0w7Ozs7O047Ozs7OworQTJBRTtZSSBTWUxMQUJMRSBDSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyQUY7WUkgU1lMTEFCTEUgQ0lYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkIwO1lJIFNZTExBQkxFIENJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkIxO1lJIFNZTExBQkxFIENJUDtMbzswO0w7Ozs7O047Ozs7OworQTJCMjtZSSBTWUxMQUJMRSBDSUVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkIzO1lJIFNZTExBQkxFIENJRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyQjQ7WUkgU1lMTEFCTEUgQ0lFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkI1O1lJIFNZTExBQkxFIENJRVA7TG87MDtMOzs7OztOOzs7OzsKK0EyQjY7WUkgU1lMTEFCTEUgQ0FUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkI3O1lJIFNZTExBQkxFIENBWDtMbzswO0w7Ozs7O047Ozs7OworQTJCODtZSSBTWUxMQUJMRSBDQTtMbzswO0w7Ozs7O047Ozs7OworQTJCOTtZSSBTWUxMQUJMRSBDQVA7TG87MDtMOzs7OztOOzs7OzsKK0EyQkE7WUkgU1lMTEFCTEUgQ1VPWDtMbzswO0w7Ozs7O047Ozs7OworQTJCQjtZSSBTWUxMQUJMRSBDVU87TG87MDtMOzs7OztOOzs7OzsKK0EyQkM7WUkgU1lMTEFCTEUgQ1VPUDtMbzswO0w7Ozs7O047Ozs7OworQTJCRDtZSSBTWUxMQUJMRSBDT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EyQkU7WUkgU1lMTEFCTEUgQ09YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkJGO1lJIFNZTExBQkxFIENPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkMwO1lJIFNZTExBQkxFIENPUDtMbzswO0w7Ozs7O047Ozs7OworQTJDMTtZSSBTWUxMQUJMRSBDRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyQzI7WUkgU1lMTEFCTEUgQ0U7TG87MDtMOzs7OztOOzs7OzsKK0EyQzM7WUkgU1lMTEFCTEUgQ0VQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkM0O1lJIFNZTExBQkxFIENVVDtMbzswO0w7Ozs7O047Ozs7OworQTJDNTtZSSBTWUxMQUJMRSBDVVg7TG87MDtMOzs7OztOOzs7OzsKK0EyQzY7WUkgU1lMTEFCTEUgQ1U7TG87MDtMOzs7OztOOzs7OzsKK0EyQzc7WUkgU1lMTEFCTEUgQ1VQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkM4O1lJIFNZTExBQkxFIENVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EyQzk7WUkgU1lMTEFCTEUgQ1VSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkNBO1lJIFNZTExBQkxFIENZVDtMbzswO0w7Ozs7O047Ozs7OworQTJDQjtZSSBTWUxMQUJMRSBDWVg7TG87MDtMOzs7OztOOzs7OzsKK0EyQ0M7WUkgU1lMTEFCTEUgQ1k7TG87MDtMOzs7OztOOzs7OzsKK0EyQ0Q7WUkgU1lMTEFCTEUgQ1lQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkNFO1lJIFNZTExBQkxFIENZUlg7TG87MDtMOzs7OztOOzs7OzsKK0EyQ0Y7WUkgU1lMTEFCTEUgQ1lSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkQwO1lJIFNZTExBQkxFIFpaSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyRDE7WUkgU1lMTEFCTEUgWlpJWDtMbzswO0w7Ozs7O047Ozs7OworQTJEMjtZSSBTWUxMQUJMRSBaWkk7TG87MDtMOzs7OztOOzs7OzsKK0EyRDM7WUkgU1lMTEFCTEUgWlpJUDtMbzswO0w7Ozs7O047Ozs7OworQTJENDtZSSBTWUxMQUJMRSBaWklFVDtMbzswO0w7Ozs7O047Ozs7OworQTJENTtZSSBTWUxMQUJMRSBaWklFWDtMbzswO0w7Ozs7O047Ozs7OworQTJENjtZSSBTWUxMQUJMRSBaWklFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkQ3O1lJIFNZTExBQkxFIFpaSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkQ4O1lJIFNZTExBQkxFIFpaQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyRDk7WUkgU1lMTEFCTEUgWlpBWDtMbzswO0w7Ozs7O047Ozs7OworQTJEQTtZSSBTWUxMQUJMRSBaWkE7TG87MDtMOzs7OztOOzs7OzsKK0EyREI7WUkgU1lMTEFCTEUgWlpBUDtMbzswO0w7Ozs7O047Ozs7OworQTJEQztZSSBTWUxMQUJMRSBaWk9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkREO1lJIFNZTExBQkxFIFpaTztMbzswO0w7Ozs7O047Ozs7OworQTJERTtZSSBTWUxMQUJMRSBaWk9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkRGO1lJIFNZTExBQkxFIFpaRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyRTA7WUkgU1lMTEFCTEUgWlpFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkUxO1lJIFNZTExBQkxFIFpaRVA7TG87MDtMOzs7OztOOzs7OzsKK0EyRTI7WUkgU1lMTEFCTEUgWlpVWDtMbzswO0w7Ozs7O047Ozs7OworQTJFMztZSSBTWUxMQUJMRSBaWlU7TG87MDtMOzs7OztOOzs7OzsKK0EyRTQ7WUkgU1lMTEFCTEUgWlpVUDtMbzswO0w7Ozs7O047Ozs7OworQTJFNTtZSSBTWUxMQUJMRSBaWlVSWDtMbzswO0w7Ozs7O047Ozs7OworQTJFNjtZSSBTWUxMQUJMRSBaWlVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkU3O1lJIFNZTExBQkxFIFpaWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyRTg7WUkgU1lMTEFCTEUgWlpZWDtMbzswO0w7Ozs7O047Ozs7OworQTJFOTtZSSBTWUxMQUJMRSBaWlk7TG87MDtMOzs7OztOOzs7OzsKK0EyRUE7WUkgU1lMTEFCTEUgWlpZUDtMbzswO0w7Ozs7O047Ozs7OworQTJFQjtZSSBTWUxMQUJMRSBaWllSWDtMbzswO0w7Ozs7O047Ozs7OworQTJFQztZSSBTWUxMQUJMRSBaWllSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkVEO1lJIFNZTExBQkxFIE5aSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyRUU7WUkgU1lMTEFCTEUgTlpJWDtMbzswO0w7Ozs7O047Ozs7OworQTJFRjtZSSBTWUxMQUJMRSBOWkk7TG87MDtMOzs7OztOOzs7OzsKK0EyRjA7WUkgU1lMTEFCTEUgTlpJUDtMbzswO0w7Ozs7O047Ozs7OworQTJGMTtZSSBTWUxMQUJMRSBOWklFWDtMbzswO0w7Ozs7O047Ozs7OworQTJGMjtZSSBTWUxMQUJMRSBOWklFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkYzO1lJIFNZTExBQkxFIE5aSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkY0O1lJIFNZTExBQkxFIE5aQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyRjU7WUkgU1lMTEFCTEUgTlpBWDtMbzswO0w7Ozs7O047Ozs7OworQTJGNjtZSSBTWUxMQUJMRSBOWkE7TG87MDtMOzs7OztOOzs7OzsKK0EyRjc7WUkgU1lMTEFCTEUgTlpBUDtMbzswO0w7Ozs7O047Ozs7OworQTJGODtZSSBTWUxMQUJMRSBOWlVPWDtMbzswO0w7Ozs7O047Ozs7OworQTJGOTtZSSBTWUxMQUJMRSBOWlVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkZBO1lJIFNZTExBQkxFIE5aT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyRkI7WUkgU1lMTEFCTEUgTlpPUDtMbzswO0w7Ozs7O047Ozs7OworQTJGQztZSSBTWUxMQUJMRSBOWkVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkZEO1lJIFNZTExBQkxFIE5aRTtMbzswO0w7Ozs7O047Ozs7OworQTJGRTtZSSBTWUxMQUJMRSBOWlVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkZGO1lJIFNZTExBQkxFIE5aVTtMbzswO0w7Ozs7O047Ozs7OworQTMwMDtZSSBTWUxMQUJMRSBOWlVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzAxO1lJIFNZTExBQkxFIE5aVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzAyO1lJIFNZTExBQkxFIE5aVVI7TG87MDtMOzs7OztOOzs7OzsKK0EzMDM7WUkgU1lMTEFCTEUgTlpZVDtMbzswO0w7Ozs7O047Ozs7OworQTMwNDtZSSBTWUxMQUJMRSBOWllYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzA1O1lJIFNZTExBQkxFIE5aWTtMbzswO0w7Ozs7O047Ozs7OworQTMwNjtZSSBTWUxMQUJMRSBOWllQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzA3O1lJIFNZTExBQkxFIE5aWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzA4O1lJIFNZTExBQkxFIE5aWVI7TG87MDtMOzs7OztOOzs7OzsKK0EzMDk7WUkgU1lMTEFCTEUgU0lUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzBBO1lJIFNZTExBQkxFIFNJWDtMbzswO0w7Ozs7O047Ozs7OworQTMwQjtZSSBTWUxMQUJMRSBTSTtMbzswO0w7Ozs7O047Ozs7OworQTMwQztZSSBTWUxMQUJMRSBTSVA7TG87MDtMOzs7OztOOzs7OzsKK0EzMEQ7WUkgU1lMTEFCTEUgU0lFWDtMbzswO0w7Ozs7O047Ozs7OworQTMwRTtZSSBTWUxMQUJMRSBTSUU7TG87MDtMOzs7OztOOzs7OzsKK0EzMEY7WUkgU1lMTEFCTEUgU0lFUDtMbzswO0w7Ozs7O047Ozs7OworQTMxMDtZSSBTWUxMQUJMRSBTQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzMTE7WUkgU1lMTEFCTEUgU0FYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzEyO1lJIFNZTExBQkxFIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzEzO1lJIFNZTExBQkxFIFNBUDtMbzswO0w7Ozs7O047Ozs7OworQTMxNDtZSSBTWUxMQUJMRSBTVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzE1O1lJIFNZTExBQkxFIFNVTztMbzswO0w7Ozs7O047Ozs7OworQTMxNjtZSSBTWUxMQUJMRSBTVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzE3O1lJIFNZTExBQkxFIFNPVDtMbzswO0w7Ozs7O047Ozs7OworQTMxODtZSSBTWUxMQUJMRSBTT1g7TG87MDtMOzs7OztOOzs7OzsKK0EzMTk7WUkgU1lMTEFCTEUgU087TG87MDtMOzs7OztOOzs7OzsKK0EzMUE7WUkgU1lMTEFCTEUgU09QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzFCO1lJIFNZTExBQkxFIFNFWDtMbzswO0w7Ozs7O047Ozs7OworQTMxQztZSSBTWUxMQUJMRSBTRTtMbzswO0w7Ozs7O047Ozs7OworQTMxRDtZSSBTWUxMQUJMRSBTRVA7TG87MDtMOzs7OztOOzs7OzsKK0EzMUU7WUkgU1lMTEFCTEUgU1VUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzFGO1lJIFNZTExBQkxFIFNVWDtMbzswO0w7Ozs7O047Ozs7OworQTMyMDtZSSBTWUxMQUJMRSBTVTtMbzswO0w7Ozs7O047Ozs7OworQTMyMTtZSSBTWUxMQUJMRSBTVVA7TG87MDtMOzs7OztOOzs7OzsKK0EzMjI7WUkgU1lMTEFCTEUgU1VSWDtMbzswO0w7Ozs7O047Ozs7OworQTMyMztZSSBTWUxMQUJMRSBTVVI7TG87MDtMOzs7OztOOzs7OzsKK0EzMjQ7WUkgU1lMTEFCTEUgU1lUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzI1O1lJIFNZTExBQkxFIFNZWDtMbzswO0w7Ozs7O047Ozs7OworQTMyNjtZSSBTWUxMQUJMRSBTWTtMbzswO0w7Ozs7O047Ozs7OworQTMyNztZSSBTWUxMQUJMRSBTWVA7TG87MDtMOzs7OztOOzs7OzsKK0EzMjg7WUkgU1lMTEFCTEUgU1lSWDtMbzswO0w7Ozs7O047Ozs7OworQTMyOTtZSSBTWUxMQUJMRSBTWVI7TG87MDtMOzs7OztOOzs7OzsKK0EzMkE7WUkgU1lMTEFCTEUgU1NJVDtMbzswO0w7Ozs7O047Ozs7OworQTMyQjtZSSBTWUxMQUJMRSBTU0lYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzJDO1lJIFNZTExBQkxFIFNTSTtMbzswO0w7Ozs7O047Ozs7OworQTMyRDtZSSBTWUxMQUJMRSBTU0lQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzJFO1lJIFNZTExBQkxFIFNTSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzJGO1lJIFNZTExBQkxFIFNTSUU7TG87MDtMOzs7OztOOzs7OzsKK0EzMzA7WUkgU1lMTEFCTEUgU1NJRVA7TG87MDtMOzs7OztOOzs7OzsKK0EzMzE7WUkgU1lMTEFCTEUgU1NBVDtMbzswO0w7Ozs7O047Ozs7OworQTMzMjtZSSBTWUxMQUJMRSBTU0FYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzMzO1lJIFNZTExBQkxFIFNTQTtMbzswO0w7Ozs7O047Ozs7OworQTMzNDtZSSBTWUxMQUJMRSBTU0FQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzM1O1lJIFNZTExBQkxFIFNTT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EzMzY7WUkgU1lMTEFCTEUgU1NPWDtMbzswO0w7Ozs7O047Ozs7OworQTMzNztZSSBTWUxMQUJMRSBTU087TG87MDtMOzs7OztOOzs7OzsKK0EzMzg7WUkgU1lMTEFCTEUgU1NPUDtMbzswO0w7Ozs7O047Ozs7OworQTMzOTtZSSBTWUxMQUJMRSBTU0VYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzNBO1lJIFNZTExBQkxFIFNTRTtMbzswO0w7Ozs7O047Ozs7OworQTMzQjtZSSBTWUxMQUJMRSBTU0VQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzNDO1lJIFNZTExBQkxFIFNTVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzM0Q7WUkgU1lMTEFCTEUgU1NVWDtMbzswO0w7Ozs7O047Ozs7OworQTMzRTtZSSBTWUxMQUJMRSBTU1U7TG87MDtMOzs7OztOOzs7OzsKK0EzM0Y7WUkgU1lMTEFCTEUgU1NVUDtMbzswO0w7Ozs7O047Ozs7OworQTM0MDtZSSBTWUxMQUJMRSBTU1lUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzQxO1lJIFNZTExBQkxFIFNTWVg7TG87MDtMOzs7OztOOzs7OzsKK0EzNDI7WUkgU1lMTEFCTEUgU1NZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzQzO1lJIFNZTExBQkxFIFNTWVA7TG87MDtMOzs7OztOOzs7OzsKK0EzNDQ7WUkgU1lMTEFCTEUgU1NZUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzNDU7WUkgU1lMTEFCTEUgU1NZUjtMbzswO0w7Ozs7O047Ozs7OworQTM0NjtZSSBTWUxMQUJMRSBaSEFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzQ3O1lJIFNZTExBQkxFIFpIQVg7TG87MDtMOzs7OztOOzs7OzsKK0EzNDg7WUkgU1lMTEFCTEUgWkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzQ5O1lJIFNZTExBQkxFIFpIQVA7TG87MDtMOzs7OztOOzs7OzsKK0EzNEE7WUkgU1lMTEFCTEUgWkhVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EzNEI7WUkgU1lMTEFCTEUgWkhVTztMbzswO0w7Ozs7O047Ozs7OworQTM0QztZSSBTWUxMQUJMRSBaSFVPUDtMbzswO0w7Ozs7O047Ozs7OworQTM0RDtZSSBTWUxMQUJMRSBaSE9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzRFO1lJIFNZTExBQkxFIFpIT1g7TG87MDtMOzs7OztOOzs7OzsKK0EzNEY7WUkgU1lMTEFCTEUgWkhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzUwO1lJIFNZTExBQkxFIFpIT1A7TG87MDtMOzs7OztOOzs7OzsKK0EzNTE7WUkgU1lMTEFCTEUgWkhFVDtMbzswO0w7Ozs7O047Ozs7OworQTM1MjtZSSBTWUxMQUJMRSBaSEVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzUzO1lJIFNZTExBQkxFIFpIRTtMbzswO0w7Ozs7O047Ozs7OworQTM1NDtZSSBTWUxMQUJMRSBaSEVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzU1O1lJIFNZTExBQkxFIFpIVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzNTY7WUkgU1lMTEFCTEUgWkhVWDtMbzswO0w7Ozs7O047Ozs7OworQTM1NztZSSBTWUxMQUJMRSBaSFU7TG87MDtMOzs7OztOOzs7OzsKK0EzNTg7WUkgU1lMTEFCTEUgWkhVUDtMbzswO0w7Ozs7O047Ozs7OworQTM1OTtZSSBTWUxMQUJMRSBaSFVSWDtMbzswO0w7Ozs7O047Ozs7OworQTM1QTtZSSBTWUxMQUJMRSBaSFVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzVCO1lJIFNZTExBQkxFIFpIWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzNUM7WUkgU1lMTEFCTEUgWkhZWDtMbzswO0w7Ozs7O047Ozs7OworQTM1RDtZSSBTWUxMQUJMRSBaSFk7TG87MDtMOzs7OztOOzs7OzsKK0EzNUU7WUkgU1lMTEFCTEUgWkhZUDtMbzswO0w7Ozs7O047Ozs7OworQTM1RjtZSSBTWUxMQUJMRSBaSFlSWDtMbzswO0w7Ozs7O047Ozs7OworQTM2MDtZSSBTWUxMQUJMRSBaSFlSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzYxO1lJIFNZTExBQkxFIENIQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzNjI7WUkgU1lMTEFCTEUgQ0hBWDtMbzswO0w7Ozs7O047Ozs7OworQTM2MztZSSBTWUxMQUJMRSBDSEE7TG87MDtMOzs7OztOOzs7OzsKK0EzNjQ7WUkgU1lMTEFCTEUgQ0hBUDtMbzswO0w7Ozs7O047Ozs7OworQTM2NTtZSSBTWUxMQUJMRSBDSFVPVDtMbzswO0w7Ozs7O047Ozs7OworQTM2NjtZSSBTWUxMQUJMRSBDSFVPWDtMbzswO0w7Ozs7O047Ozs7OworQTM2NztZSSBTWUxMQUJMRSBDSFVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzY4O1lJIFNZTExBQkxFIENIVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzY5O1lJIFNZTExBQkxFIENIT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EzNkE7WUkgU1lMTEFCTEUgQ0hPWDtMbzswO0w7Ozs7O047Ozs7OworQTM2QjtZSSBTWUxMQUJMRSBDSE87TG87MDtMOzs7OztOOzs7OzsKK0EzNkM7WUkgU1lMTEFCTEUgQ0hPUDtMbzswO0w7Ozs7O047Ozs7OworQTM2RDtZSSBTWUxMQUJMRSBDSEVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzZFO1lJIFNZTExBQkxFIENIRVg7TG87MDtMOzs7OztOOzs7OzsKK0EzNkY7WUkgU1lMTEFCTEUgQ0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzcwO1lJIFNZTExBQkxFIENIRVA7TG87MDtMOzs7OztOOzs7OzsKK0EzNzE7WUkgU1lMTEFCTEUgQ0hVWDtMbzswO0w7Ozs7O047Ozs7OworQTM3MjtZSSBTWUxMQUJMRSBDSFU7TG87MDtMOzs7OztOOzs7OzsKK0EzNzM7WUkgU1lMTEFCTEUgQ0hVUDtMbzswO0w7Ozs7O047Ozs7OworQTM3NDtZSSBTWUxMQUJMRSBDSFVSWDtMbzswO0w7Ozs7O047Ozs7OworQTM3NTtZSSBTWUxMQUJMRSBDSFVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzc2O1lJIFNZTExBQkxFIENIWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzNzc7WUkgU1lMTEFCTEUgQ0hZWDtMbzswO0w7Ozs7O047Ozs7OworQTM3ODtZSSBTWUxMQUJMRSBDSFk7TG87MDtMOzs7OztOOzs7OzsKK0EzNzk7WUkgU1lMTEFCTEUgQ0hZUDtMbzswO0w7Ozs7O047Ozs7OworQTM3QTtZSSBTWUxMQUJMRSBDSFlSWDtMbzswO0w7Ozs7O047Ozs7OworQTM3QjtZSSBTWUxMQUJMRSBDSFlSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzdDO1lJIFNZTExBQkxFIFJSQVg7TG87MDtMOzs7OztOOzs7OzsKK0EzN0Q7WUkgU1lMTEFCTEUgUlJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzdFO1lJIFNZTExBQkxFIFJSVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzdGO1lJIFNZTExBQkxFIFJSVU87TG87MDtMOzs7OztOOzs7OzsKK0EzODA7WUkgU1lMTEFCTEUgUlJPVDtMbzswO0w7Ozs7O047Ozs7OworQTM4MTtZSSBTWUxMQUJMRSBSUk9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzgyO1lJIFNZTExBQkxFIFJSTztMbzswO0w7Ozs7O047Ozs7OworQTM4MztZSSBTWUxMQUJMRSBSUk9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzg0O1lJIFNZTExBQkxFIFJSRVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzODU7WUkgU1lMTEFCTEUgUlJFWDtMbzswO0w7Ozs7O047Ozs7OworQTM4NjtZSSBTWUxMQUJMRSBSUkU7TG87MDtMOzs7OztOOzs7OzsKK0EzODc7WUkgU1lMTEFCTEUgUlJFUDtMbzswO0w7Ozs7O047Ozs7OworQTM4ODtZSSBTWUxMQUJMRSBSUlVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzg5O1lJIFNZTExBQkxFIFJSVVg7TG87MDtMOzs7OztOOzs7OzsKK0EzOEE7WUkgU1lMTEFCTEUgUlJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzhCO1lJIFNZTExBQkxFIFJSVVA7TG87MDtMOzs7OztOOzs7OzsKK0EzOEM7WUkgU1lMTEFCTEUgUlJVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzOEQ7WUkgU1lMTEFCTEUgUlJVUjtMbzswO0w7Ozs7O047Ozs7OworQTM4RTtZSSBTWUxMQUJMRSBSUllUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzhGO1lJIFNZTExBQkxFIFJSWVg7TG87MDtMOzs7OztOOzs7OzsKK0EzOTA7WUkgU1lMTEFCTEUgUlJZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzkxO1lJIFNZTExBQkxFIFJSWVA7TG87MDtMOzs7OztOOzs7OzsKK0EzOTI7WUkgU1lMTEFCTEUgUlJZUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzOTM7WUkgU1lMTEFCTEUgUlJZUjtMbzswO0w7Ozs7O047Ozs7OworQTM5NDtZSSBTWUxMQUJMRSBOUkFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzk1O1lJIFNZTExBQkxFIE5SQVg7TG87MDtMOzs7OztOOzs7OzsKK0EzOTY7WUkgU1lMTEFCTEUgTlJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzk3O1lJIFNZTExBQkxFIE5SQVA7TG87MDtMOzs7OztOOzs7OzsKK0EzOTg7WUkgU1lMTEFCTEUgTlJPWDtMbzswO0w7Ozs7O047Ozs7OworQTM5OTtZSSBTWUxMQUJMRSBOUk87TG87MDtMOzs7OztOOzs7OzsKK0EzOUE7WUkgU1lMTEFCTEUgTlJPUDtMbzswO0w7Ozs7O047Ozs7OworQTM5QjtZSSBTWUxMQUJMRSBOUkVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzlDO1lJIFNZTExBQkxFIE5SRVg7TG87MDtMOzs7OztOOzs7OzsKK0EzOUQ7WUkgU1lMTEFCTEUgTlJFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzlFO1lJIFNZTExBQkxFIE5SRVA7TG87MDtMOzs7OztOOzs7OzsKK0EzOUY7WUkgU1lMTEFCTEUgTlJVVDtMbzswO0w7Ozs7O047Ozs7OworQTNBMDtZSSBTWUxMQUJMRSBOUlVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0ExO1lJIFNZTExBQkxFIE5SVTtMbzswO0w7Ozs7O047Ozs7OworQTNBMjtZSSBTWUxMQUJMRSBOUlVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0EzO1lJIFNZTExBQkxFIE5SVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0E0O1lJIFNZTExBQkxFIE5SVVI7TG87MDtMOzs7OztOOzs7OzsKK0EzQTU7WUkgU1lMTEFCTEUgTlJZVDtMbzswO0w7Ozs7O047Ozs7OworQTNBNjtZSSBTWUxMQUJMRSBOUllYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0E3O1lJIFNZTExBQkxFIE5SWTtMbzswO0w7Ozs7O047Ozs7OworQTNBODtZSSBTWUxMQUJMRSBOUllQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0E5O1lJIFNZTExBQkxFIE5SWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0FBO1lJIFNZTExBQkxFIE5SWVI7TG87MDtMOzs7OztOOzs7OzsKK0EzQUI7WUkgU1lMTEFCTEUgU0hBVDtMbzswO0w7Ozs7O047Ozs7OworQTNBQztZSSBTWUxMQUJMRSBTSEFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0FEO1lJIFNZTExBQkxFIFNIQTtMbzswO0w7Ozs7O047Ozs7OworQTNBRTtZSSBTWUxMQUJMRSBTSEFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0FGO1lJIFNZTExBQkxFIFNIVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0IwO1lJIFNZTExBQkxFIFNIVU87TG87MDtMOzs7OztOOzs7OzsKK0EzQjE7WUkgU1lMTEFCTEUgU0hVT1A7TG87MDtMOzs7OztOOzs7OzsKK0EzQjI7WUkgU1lMTEFCTEUgU0hPVDtMbzswO0w7Ozs7O047Ozs7OworQTNCMztZSSBTWUxMQUJMRSBTSE9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0I0O1lJIFNZTExBQkxFIFNITztMbzswO0w7Ozs7O047Ozs7OworQTNCNTtZSSBTWUxMQUJMRSBTSE9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0I2O1lJIFNZTExBQkxFIFNIRVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzQjc7WUkgU1lMTEFCTEUgU0hFWDtMbzswO0w7Ozs7O047Ozs7OworQTNCODtZSSBTWUxMQUJMRSBTSEU7TG87MDtMOzs7OztOOzs7OzsKK0EzQjk7WUkgU1lMTEFCTEUgU0hFUDtMbzswO0w7Ozs7O047Ozs7OworQTNCQTtZSSBTWUxMQUJMRSBTSFVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0JCO1lJIFNZTExBQkxFIFNIVVg7TG87MDtMOzs7OztOOzs7OzsKK0EzQkM7WUkgU1lMTEFCTEUgU0hVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0JEO1lJIFNZTExBQkxFIFNIVVA7TG87MDtMOzs7OztOOzs7OzsKK0EzQkU7WUkgU1lMTEFCTEUgU0hVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzQkY7WUkgU1lMTEFCTEUgU0hVUjtMbzswO0w7Ozs7O047Ozs7OworQTNDMDtZSSBTWUxMQUJMRSBTSFlUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0MxO1lJIFNZTExBQkxFIFNIWVg7TG87MDtMOzs7OztOOzs7OzsKK0EzQzI7WUkgU1lMTEFCTEUgU0hZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0MzO1lJIFNZTExBQkxFIFNIWVA7TG87MDtMOzs7OztOOzs7OzsKK0EzQzQ7WUkgU1lMTEFCTEUgU0hZUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzQzU7WUkgU1lMTEFCTEUgU0hZUjtMbzswO0w7Ozs7O047Ozs7OworQTNDNjtZSSBTWUxMQUJMRSBSQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzQzc7WUkgU1lMTEFCTEUgUkFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0M4O1lJIFNZTExBQkxFIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0M5O1lJIFNZTExBQkxFIFJBUDtMbzswO0w7Ozs7O047Ozs7OworQTNDQTtZSSBTWUxMQUJMRSBSVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0NCO1lJIFNZTExBQkxFIFJVTztMbzswO0w7Ozs7O047Ozs7OworQTNDQztZSSBTWUxMQUJMRSBSVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0NEO1lJIFNZTExBQkxFIFJPVDtMbzswO0w7Ozs7O047Ozs7OworQTNDRTtZSSBTWUxMQUJMRSBST1g7TG87MDtMOzs7OztOOzs7OzsKK0EzQ0Y7WUkgU1lMTEFCTEUgUk87TG87MDtMOzs7OztOOzs7OzsKK0EzRDA7WUkgU1lMTEFCTEUgUk9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0QxO1lJIFNZTExBQkxFIFJFWDtMbzswO0w7Ozs7O047Ozs7OworQTNEMjtZSSBTWUxMQUJMRSBSRTtMbzswO0w7Ozs7O047Ozs7OworQTNEMztZSSBTWUxMQUJMRSBSRVA7TG87MDtMOzs7OztOOzs7OzsKK0EzRDQ7WUkgU1lMTEFCTEUgUlVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0Q1O1lJIFNZTExBQkxFIFJVWDtMbzswO0w7Ozs7O047Ozs7OworQTNENjtZSSBTWUxMQUJMRSBSVTtMbzswO0w7Ozs7O047Ozs7OworQTNENztZSSBTWUxMQUJMRSBSVVA7TG87MDtMOzs7OztOOzs7OzsKK0EzRDg7WUkgU1lMTEFCTEUgUlVSWDtMbzswO0w7Ozs7O047Ozs7OworQTNEOTtZSSBTWUxMQUJMRSBSVVI7TG87MDtMOzs7OztOOzs7OzsKK0EzREE7WUkgU1lMTEFCTEUgUllUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0RCO1lJIFNZTExBQkxFIFJZWDtMbzswO0w7Ozs7O047Ozs7OworQTNEQztZSSBTWUxMQUJMRSBSWTtMbzswO0w7Ozs7O047Ozs7OworQTNERDtZSSBTWUxMQUJMRSBSWVA7TG87MDtMOzs7OztOOzs7OzsKK0EzREU7WUkgU1lMTEFCTEUgUllSWDtMbzswO0w7Ozs7O047Ozs7OworQTNERjtZSSBTWUxMQUJMRSBSWVI7TG87MDtMOzs7OztOOzs7OzsKK0EzRTA7WUkgU1lMTEFCTEUgSklUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0UxO1lJIFNZTExBQkxFIEpJWDtMbzswO0w7Ozs7O047Ozs7OworQTNFMjtZSSBTWUxMQUJMRSBKSTtMbzswO0w7Ozs7O047Ozs7OworQTNFMztZSSBTWUxMQUJMRSBKSVA7TG87MDtMOzs7OztOOzs7OzsKK0EzRTQ7WUkgU1lMTEFCTEUgSklFVDtMbzswO0w7Ozs7O047Ozs7OworQTNFNTtZSSBTWUxMQUJMRSBKSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0U2O1lJIFNZTExBQkxFIEpJRTtMbzswO0w7Ozs7O047Ozs7OworQTNFNztZSSBTWUxMQUJMRSBKSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0U4O1lJIFNZTExBQkxFIEpVT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EzRTk7WUkgU1lMTEFCTEUgSlVPWDtMbzswO0w7Ozs7O047Ozs7OworQTNFQTtZSSBTWUxMQUJMRSBKVU87TG87MDtMOzs7OztOOzs7OzsKK0EzRUI7WUkgU1lMTEFCTEUgSlVPUDtMbzswO0w7Ozs7O047Ozs7OworQTNFQztZSSBTWUxMQUJMRSBKT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EzRUQ7WUkgU1lMTEFCTEUgSk9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0VFO1lJIFNZTExBQkxFIEpPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0VGO1lJIFNZTExBQkxFIEpPUDtMbzswO0w7Ozs7O047Ozs7OworQTNGMDtZSSBTWUxMQUJMRSBKVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzRjE7WUkgU1lMTEFCTEUgSlVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0YyO1lJIFNZTExBQkxFIEpVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0YzO1lJIFNZTExBQkxFIEpVUDtMbzswO0w7Ozs7O047Ozs7OworQTNGNDtZSSBTWUxMQUJMRSBKVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0Y1O1lJIFNZTExBQkxFIEpVUjtMbzswO0w7Ozs7O047Ozs7OworQTNGNjtZSSBTWUxMQUJMRSBKWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzRjc7WUkgU1lMTEFCTEUgSllYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0Y4O1lJIFNZTExBQkxFIEpZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0Y5O1lJIFNZTExBQkxFIEpZUDtMbzswO0w7Ozs7O047Ozs7OworQTNGQTtZSSBTWUxMQUJMRSBKWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0ZCO1lJIFNZTExBQkxFIEpZUjtMbzswO0w7Ozs7O047Ozs7OworQTNGQztZSSBTWUxMQUJMRSBRSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzRkQ7WUkgU1lMTEFCTEUgUUlYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0ZFO1lJIFNZTExBQkxFIFFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0ZGO1lJIFNZTExBQkxFIFFJUDtMbzswO0w7Ozs7O047Ozs7OworQTQwMDtZSSBTWUxMQUJMRSBRSUVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDAxO1lJIFNZTExBQkxFIFFJRVg7TG87MDtMOzs7OztOOzs7OzsKK0E0MDI7WUkgU1lMTEFCTEUgUUlFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDAzO1lJIFNZTExBQkxFIFFJRVA7TG87MDtMOzs7OztOOzs7OzsKK0E0MDQ7WUkgU1lMTEFCTEUgUVVPVDtMbzswO0w7Ozs7O047Ozs7OworQTQwNTtZSSBTWUxMQUJMRSBRVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDA2O1lJIFNZTExBQkxFIFFVTztMbzswO0w7Ozs7O047Ozs7OworQTQwNztZSSBTWUxMQUJMRSBRVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDA4O1lJIFNZTExBQkxFIFFPVDtMbzswO0w7Ozs7O047Ozs7OworQTQwOTtZSSBTWUxMQUJMRSBRT1g7TG87MDtMOzs7OztOOzs7OzsKK0E0MEE7WUkgU1lMTEFCTEUgUU87TG87MDtMOzs7OztOOzs7OzsKK0E0MEI7WUkgU1lMTEFCTEUgUU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDBDO1lJIFNZTExBQkxFIFFVVDtMbzswO0w7Ozs7O047Ozs7OworQTQwRDtZSSBTWUxMQUJMRSBRVVg7TG87MDtMOzs7OztOOzs7OzsKK0E0MEU7WUkgU1lMTEFCTEUgUVU7TG87MDtMOzs7OztOOzs7OzsKK0E0MEY7WUkgU1lMTEFCTEUgUVVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDEwO1lJIFNZTExBQkxFIFFVUlg7TG87MDtMOzs7OztOOzs7OzsKK0E0MTE7WUkgU1lMTEFCTEUgUVVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDEyO1lJIFNZTExBQkxFIFFZVDtMbzswO0w7Ozs7O047Ozs7OworQTQxMztZSSBTWUxMQUJMRSBRWVg7TG87MDtMOzs7OztOOzs7OzsKK0E0MTQ7WUkgU1lMTEFCTEUgUVk7TG87MDtMOzs7OztOOzs7OzsKK0E0MTU7WUkgU1lMTEFCTEUgUVlQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDE2O1lJIFNZTExBQkxFIFFZUlg7TG87MDtMOzs7OztOOzs7OzsKK0E0MTc7WUkgU1lMTEFCTEUgUVlSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDE4O1lJIFNZTExBQkxFIEpKSVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0MTk7WUkgU1lMTEFCTEUgSkpJWDtMbzswO0w7Ozs7O047Ozs7OworQTQxQTtZSSBTWUxMQUJMRSBKSkk7TG87MDtMOzs7OztOOzs7OzsKK0E0MUI7WUkgU1lMTEFCTEUgSkpJUDtMbzswO0w7Ozs7O047Ozs7OworQTQxQztZSSBTWUxMQUJMRSBKSklFVDtMbzswO0w7Ozs7O047Ozs7OworQTQxRDtZSSBTWUxMQUJMRSBKSklFWDtMbzswO0w7Ozs7O047Ozs7OworQTQxRTtZSSBTWUxMQUJMRSBKSklFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDFGO1lJIFNZTExBQkxFIEpKSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDIwO1lJIFNZTExBQkxFIEpKVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDIxO1lJIFNZTExBQkxFIEpKVU87TG87MDtMOzs7OztOOzs7OzsKK0E0MjI7WUkgU1lMTEFCTEUgSkpVT1A7TG87MDtMOzs7OztOOzs7OzsKK0E0MjM7WUkgU1lMTEFCTEUgSkpPVDtMbzswO0w7Ozs7O047Ozs7OworQTQyNDtZSSBTWUxMQUJMRSBKSk9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDI1O1lJIFNZTExBQkxFIEpKTztMbzswO0w7Ozs7O047Ozs7OworQTQyNjtZSSBTWUxMQUJMRSBKSk9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDI3O1lJIFNZTExBQkxFIEpKVVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0Mjg7WUkgU1lMTEFCTEUgSkpVWDtMbzswO0w7Ozs7O047Ozs7OworQTQyOTtZSSBTWUxMQUJMRSBKSlU7TG87MDtMOzs7OztOOzs7OzsKK0E0MkE7WUkgU1lMTEFCTEUgSkpVUDtMbzswO0w7Ozs7O047Ozs7OworQTQyQjtZSSBTWUxMQUJMRSBKSlVSWDtMbzswO0w7Ozs7O047Ozs7OworQTQyQztZSSBTWUxMQUJMRSBKSlVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDJEO1lJIFNZTExBQkxFIEpKWVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0MkU7WUkgU1lMTEFCTEUgSkpZWDtMbzswO0w7Ozs7O047Ozs7OworQTQyRjtZSSBTWUxMQUJMRSBKSlk7TG87MDtMOzs7OztOOzs7OzsKK0E0MzA7WUkgU1lMTEFCTEUgSkpZUDtMbzswO0w7Ozs7O047Ozs7OworQTQzMTtZSSBTWUxMQUJMRSBOSklUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDMyO1lJIFNZTExBQkxFIE5KSVg7TG87MDtMOzs7OztOOzs7OzsKK0E0MzM7WUkgU1lMTEFCTEUgTkpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDM0O1lJIFNZTExBQkxFIE5KSVA7TG87MDtMOzs7OztOOzs7OzsKK0E0MzU7WUkgU1lMTEFCTEUgTkpJRVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0MzY7WUkgU1lMTEFCTEUgTkpJRVg7TG87MDtMOzs7OztOOzs7OzsKK0E0Mzc7WUkgU1lMTEFCTEUgTkpJRTtMbzswO0w7Ozs7O047Ozs7OworQTQzODtZSSBTWUxMQUJMRSBOSklFUDtMbzswO0w7Ozs7O047Ozs7OworQTQzOTtZSSBTWUxMQUJMRSBOSlVPWDtMbzswO0w7Ozs7O047Ozs7OworQTQzQTtZSSBTWUxMQUJMRSBOSlVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDNCO1lJIFNZTExBQkxFIE5KT1Q7TG87MDtMOzs7OztOOzs7OzsKK0E0M0M7WUkgU1lMTEFCTEUgTkpPWDtMbzswO0w7Ozs7O047Ozs7OworQTQzRDtZSSBTWUxMQUJMRSBOSk87TG87MDtMOzs7OztOOzs7OzsKK0E0M0U7WUkgU1lMTEFCTEUgTkpPUDtMbzswO0w7Ozs7O047Ozs7OworQTQzRjtZSSBTWUxMQUJMRSBOSlVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDQwO1lJIFNZTExBQkxFIE5KVTtMbzswO0w7Ozs7O047Ozs7OworQTQ0MTtZSSBTWUxMQUJMRSBOSlVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDQyO1lJIFNZTExBQkxFIE5KVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDQzO1lJIFNZTExBQkxFIE5KVVI7TG87MDtMOzs7OztOOzs7OzsKK0E0NDQ7WUkgU1lMTEFCTEUgTkpZVDtMbzswO0w7Ozs7O047Ozs7OworQTQ0NTtZSSBTWUxMQUJMRSBOSllYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDQ2O1lJIFNZTExBQkxFIE5KWTtMbzswO0w7Ozs7O047Ozs7OworQTQ0NztZSSBTWUxMQUJMRSBOSllQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDQ4O1lJIFNZTExBQkxFIE5KWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDQ5O1lJIFNZTExBQkxFIE5KWVI7TG87MDtMOzs7OztOOzs7OzsKK0E0NEE7WUkgU1lMTEFCTEUgTllJVDtMbzswO0w7Ozs7O047Ozs7OworQTQ0QjtZSSBTWUxMQUJMRSBOWUlYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDRDO1lJIFNZTExBQkxFIE5ZSTtMbzswO0w7Ozs7O047Ozs7OworQTQ0RDtZSSBTWUxMQUJMRSBOWUlQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDRFO1lJIFNZTExBQkxFIE5ZSUVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDRGO1lJIFNZTExBQkxFIE5ZSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDUwO1lJIFNZTExBQkxFIE5ZSUU7TG87MDtMOzs7OztOOzs7OzsKK0E0NTE7WUkgU1lMTEFCTEUgTllJRVA7TG87MDtMOzs7OztOOzs7OzsKK0E0NTI7WUkgU1lMTEFCTEUgTllVT1g7TG87MDtMOzs7OztOOzs7OzsKK0E0NTM7WUkgU1lMTEFCTEUgTllVTztMbzswO0w7Ozs7O047Ozs7OworQTQ1NDtZSSBTWUxMQUJMRSBOWVVPUDtMbzswO0w7Ozs7O047Ozs7OworQTQ1NTtZSSBTWUxMQUJMRSBOWU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDU2O1lJIFNZTExBQkxFIE5ZT1g7TG87MDtMOzs7OztOOzs7OzsKK0E0NTc7WUkgU1lMTEFCTEUgTllPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDU4O1lJIFNZTExBQkxFIE5ZT1A7TG87MDtMOzs7OztOOzs7OzsKK0E0NTk7WUkgU1lMTEFCTEUgTllVVDtMbzswO0w7Ozs7O047Ozs7OworQTQ1QTtZSSBTWUxMQUJMRSBOWVVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDVCO1lJIFNZTExBQkxFIE5ZVTtMbzswO0w7Ozs7O047Ozs7OworQTQ1QztZSSBTWUxMQUJMRSBOWVVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDVEO1lJIFNZTExBQkxFIFhJVDtMbzswO0w7Ozs7O047Ozs7OworQTQ1RTtZSSBTWUxMQUJMRSBYSVg7TG87MDtMOzs7OztOOzs7OzsKK0E0NUY7WUkgU1lMTEFCTEUgWEk7TG87MDtMOzs7OztOOzs7OzsKK0E0NjA7WUkgU1lMTEFCTEUgWElQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDYxO1lJIFNZTExBQkxFIFhJRVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0NjI7WUkgU1lMTEFCTEUgWElFWDtMbzswO0w7Ozs7O047Ozs7OworQTQ2MztZSSBTWUxMQUJMRSBYSUU7TG87MDtMOzs7OztOOzs7OzsKK0E0NjQ7WUkgU1lMTEFCTEUgWElFUDtMbzswO0w7Ozs7O047Ozs7OworQTQ2NTtZSSBTWUxMQUJMRSBYVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDY2O1lJIFNZTExBQkxFIFhVTztMbzswO0w7Ozs7O047Ozs7OworQTQ2NztZSSBTWUxMQUJMRSBYT1Q7TG87MDtMOzs7OztOOzs7OzsKK0E0Njg7WUkgU1lMTEFCTEUgWE9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDY5O1lJIFNZTExBQkxFIFhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDZBO1lJIFNZTExBQkxFIFhPUDtMbzswO0w7Ozs7O047Ozs7OworQTQ2QjtZSSBTWUxMQUJMRSBYWVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0NkM7WUkgU1lMTEFCTEUgWFlYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDZEO1lJIFNZTExBQkxFIFhZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDZFO1lJIFNZTExBQkxFIFhZUDtMbzswO0w7Ozs7O047Ozs7OworQTQ2RjtZSSBTWUxMQUJMRSBYWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDcwO1lJIFNZTExBQkxFIFhZUjtMbzswO0w7Ozs7O047Ozs7OworQTQ3MTtZSSBTWUxMQUJMRSBZSVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0NzI7WUkgU1lMTEFCTEUgWUlYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDczO1lJIFNZTExBQkxFIFlJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDc0O1lJIFNZTExBQkxFIFlJUDtMbzswO0w7Ozs7O047Ozs7OworQTQ3NTtZSSBTWUxMQUJMRSBZSUVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDc2O1lJIFNZTExBQkxFIFlJRVg7TG87MDtMOzs7OztOOzs7OzsKK0E0Nzc7WUkgU1lMTEFCTEUgWUlFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDc4O1lJIFNZTExBQkxFIFlJRVA7TG87MDtMOzs7OztOOzs7OzsKK0E0Nzk7WUkgU1lMTEFCTEUgWVVPVDtMbzswO0w7Ozs7O047Ozs7OworQTQ3QTtZSSBTWUxMQUJMRSBZVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDdCO1lJIFNZTExBQkxFIFlVTztMbzswO0w7Ozs7O047Ozs7OworQTQ3QztZSSBTWUxMQUJMRSBZVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDdEO1lJIFNZTExBQkxFIFlPVDtMbzswO0w7Ozs7O047Ozs7OworQTQ3RTtZSSBTWUxMQUJMRSBZT1g7TG87MDtMOzs7OztOOzs7OzsKK0E0N0Y7WUkgU1lMTEFCTEUgWU87TG87MDtMOzs7OztOOzs7OzsKK0E0ODA7WUkgU1lMTEFCTEUgWU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDgxO1lJIFNZTExBQkxFIFlVVDtMbzswO0w7Ozs7O047Ozs7OworQTQ4MjtZSSBTWUxMQUJMRSBZVVg7TG87MDtMOzs7OztOOzs7OzsKK0E0ODM7WUkgU1lMTEFCTEUgWVU7TG87MDtMOzs7OztOOzs7OzsKK0E0ODQ7WUkgU1lMTEFCTEUgWVVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDg1O1lJIFNZTExBQkxFIFlVUlg7TG87MDtMOzs7OztOOzs7OzsKK0E0ODY7WUkgU1lMTEFCTEUgWVVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDg3O1lJIFNZTExBQkxFIFlZVDtMbzswO0w7Ozs7O047Ozs7OworQTQ4ODtZSSBTWUxMQUJMRSBZWVg7TG87MDtMOzs7OztOOzs7OzsKK0E0ODk7WUkgU1lMTEFCTEUgWVk7TG87MDtMOzs7OztOOzs7OzsKK0E0OEE7WUkgU1lMTEFCTEUgWVlQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDhCO1lJIFNZTExBQkxFIFlZUlg7TG87MDtMOzs7OztOOzs7OzsKK0E0OEM7WUkgU1lMTEFCTEUgWVlSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDkwO1lJIFJBRElDQUwgUU9UO1NvOzA7T047Ozs7O047Ozs7OworQTQ5MTtZSSBSQURJQ0FMIExJO1NvOzA7T047Ozs7O047Ozs7OworQTQ5MjtZSSBSQURJQ0FMIEtJVDtTbzswO09OOzs7OztOOzs7OzsKK0E0OTM7WUkgUkFESUNBTCBOWUlQO1NvOzA7T047Ozs7O047Ozs7OworQTQ5NDtZSSBSQURJQ0FMIENZUDtTbzswO09OOzs7OztOOzs7OzsKK0E0OTU7WUkgUkFESUNBTCBTU0k7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNDk2O1lJIFJBRElDQUwgR0dPUDtTbzswO09OOzs7OztOOzs7OzsKK0E0OTc7WUkgUkFESUNBTCBHRVA7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNDk4O1lJIFJBRElDQUwgTUk7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNDk5O1lJIFJBRElDQUwgSFhJVDtTbzswO09OOzs7OztOOzs7OzsKK0E0OUE7WUkgUkFESUNBTCBMWVI7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNDlCO1lJIFJBRElDQUwgQkJVVDtTbzswO09OOzs7OztOOzs7OzsKK0E0OUM7WUkgUkFESUNBTCBNT1A7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNDlEO1lJIFJBRElDQUwgWU87U287MDtPTjs7Ozs7Tjs7Ozs7CitBNDlFO1lJIFJBRElDQUwgUFVUO1NvOzA7T047Ozs7O047Ozs7OworQTQ5RjtZSSBSQURJQ0FMIEhYVU87U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEEwO1lJIFJBRElDQUwgVEFUO1NvOzA7T047Ozs7O047Ozs7OworQTRBMTtZSSBSQURJQ0FMIEdBO1NvOzA7T047Ozs7O047Ozs7OworQTRBNDtZSSBSQURJQ0FMIEREVVI7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEE1O1lJIFJBRElDQUwgQlVSO1NvOzA7T047Ozs7O047Ozs7OworQTRBNjtZSSBSQURJQ0FMIEdHVU87U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEE3O1lJIFJBRElDQUwgTllPUDtTbzswO09OOzs7OztOOzs7OzsKK0E0QTg7WUkgUkFESUNBTCBUVTtTbzswO09OOzs7OztOOzs7OzsKK0E0QTk7WUkgUkFESUNBTCBPUDtTbzswO09OOzs7OztOOzs7OzsKK0E0QUE7WUkgUkFESUNBTCBKSlVUO1NvOzA7T047Ozs7O047Ozs7OworQTRBQjtZSSBSQURJQ0FMIFpPVDtTbzswO09OOzs7OztOOzs7OzsKK0E0QUM7WUkgUkFESUNBTCBQWVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEFEO1lJIFJBRElDQUwgSE1PO1NvOzA7T047Ozs7O047Ozs7OworQTRBRTtZSSBSQURJQ0FMIFlJVDtTbzswO09OOzs7OztOOzs7OzsKK0E0QUY7WUkgUkFESUNBTCBWVVI7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEIwO1lJIFJBRElDQUwgU0hZO1NvOzA7T047Ozs7O047Ozs7OworQTRCMTtZSSBSQURJQ0FMIFZFUDtTbzswO09OOzs7OztOOzs7OzsKK0E0QjI7WUkgUkFESUNBTCBaQTtTbzswO09OOzs7OztOOzs7OzsKK0E0QjM7WUkgUkFESUNBTCBKTztTbzswO09OOzs7OztOOzs7OzsKK0E0QjU7WUkgUkFESUNBTCBKSlk7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEI2O1lJIFJBRElDQUwgR09UO1NvOzA7T047Ozs7O047Ozs7OworQTRCNztZSSBSQURJQ0FMIEpKSUU7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEI4O1lJIFJBRElDQUwgV087U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEI5O1lJIFJBRElDQUwgRFU7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEJBO1lJIFJBRElDQUwgU0hVUjtTbzswO09OOzs7OztOOzs7OzsKK0E0QkI7WUkgUkFESUNBTCBMSUU7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEJDO1lJIFJBRElDQUwgQ1k7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEJEO1lJIFJBRElDQUwgQ1VPUDtTbzswO09OOzs7OztOOzs7OzsKK0E0QkU7WUkgUkFESUNBTCBDSVA7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEJGO1lJIFJBRElDQUwgSFhPUDtTbzswO09OOzs7OztOOzs7OzsKK0E0QzA7WUkgUkFESUNBTCBTSEFUO1NvOzA7T047Ozs7O047Ozs7OworQTRDMjtZSSBSQURJQ0FMIFNIT1A7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEMzO1lJIFJBRElDQUwgQ0hFO1NvOzA7T047Ozs7O047Ozs7OworQTRDNDtZSSBSQURJQ0FMIFpaSUVUO1NvOzA7T047Ozs7O047Ozs7OworQTRDNjtZSSBSQURJQ0FMIEtFO1NvOzA7T047Ozs7O047Ozs7OworQUMwMDs8SGFuZ3VsIFN5bGxhYmxlLCBGaXJzdD47TG87MDtMOzs7OztOOzs7OzsKK0Q3QTM7PEhhbmd1bCBTeWxsYWJsZSwgTGFzdD47TG87MDtMOzs7OztOOzs7OzsKK0Q4MDA7PE5vbiBQcml2YXRlIFVzZSBIaWdoIFN1cnJvZ2F0ZSwgRmlyc3Q+O0NzOzA7TDs7Ozs7Tjs7Ozs7CitEQjdGOzxOb24gUHJpdmF0ZSBVc2UgSGlnaCBTdXJyb2dhdGUsIExhc3Q+O0NzOzA7TDs7Ozs7Tjs7Ozs7CitEQjgwOzxQcml2YXRlIFVzZSBIaWdoIFN1cnJvZ2F0ZSwgRmlyc3Q+O0NzOzA7TDs7Ozs7Tjs7Ozs7CitEQkZGOzxQcml2YXRlIFVzZSBIaWdoIFN1cnJvZ2F0ZSwgTGFzdD47Q3M7MDtMOzs7OztOOzs7OzsKK0RDMDA7PExvdyBTdXJyb2dhdGUsIEZpcnN0PjtDczswO0w7Ozs7O047Ozs7OworREZGRjs8TG93IFN1cnJvZ2F0ZSwgTGFzdD47Q3M7MDtMOzs7OztOOzs7OzsKK0UwMDA7PFByaXZhdGUgVXNlLCBGaXJzdD47Q287MDtMOzs7OztOOzs7OzsKK0Y4RkY7PFByaXZhdGUgVXNlLCBMYXN0PjtDbzswO0w7Ozs7O047Ozs7OworRjkwMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwMDtMbzswO0w7OEM0ODs7OztOOzs7OzsKK0Y5MDE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MDE7TG87MDtMOzY2RjQ7Ozs7Tjs7Ozs7CitGOTAyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTAyO0xvOzA7TDs4RUNBOzs7O047Ozs7OworRjkwMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwMztMbzswO0w7OENDODs7OztOOzs7OzsKK0Y5MDQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MDQ7TG87MDtMOzZFRDE7Ozs7Tjs7Ozs7CitGOTA1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTA1O0xvOzA7TDs0RTMyOzs7O047Ozs7OworRjkwNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwNjtMbzswO0w7NTNFNTs7OztOOzs7OzsKK0Y5MDc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MDc7TG87MDtMOzlGOUM7Ozs7Tjs7Ozs7CitGOTA4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTA4O0xvOzA7TDs5RjlDOzs7O047Ozs7OworRjkwOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwOTtMbzswO0w7NTk1MTs7OztOOzs7OzsKK0Y5MEE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MEE7TG87MDtMOzkxRDE7Ozs7Tjs7Ozs7CitGOTBCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTBCO0xvOzA7TDs1NTg3Ozs7O047Ozs7OworRjkwQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwQztMbzswO0w7NTk0ODs7OztOOzs7OzsKK0Y5MEQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MEQ7TG87MDtMOzYxRjY7Ozs7Tjs7Ozs7CitGOTBFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTBFO0xvOzA7TDs3NjY5Ozs7O047Ozs7OworRjkwRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwRjtMbzswO0w7N0Y4NTs7OztOOzs7OzsKK0Y5MTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MTA7TG87MDtMOzg2M0Y7Ozs7Tjs7Ozs7CitGOTExO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTExO0xvOzA7TDs4N0JBOzs7O047Ozs7OworRjkxMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxMjtMbzswO0w7ODhGODs7OztOOzs7OzsKK0Y5MTM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MTM7TG87MDtMOzkwOEY7Ozs7Tjs7Ozs7CitGOTE0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTE0O0xvOzA7TDs2QTAyOzs7O047Ozs7OworRjkxNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxNTtMbzswO0w7NkQxQjs7OztOOzs7OzsKK0Y5MTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MTY7TG87MDtMOzcwRDk7Ozs7Tjs7Ozs7CitGOTE3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTE3O0xvOzA7TDs3M0RFOzs7O047Ozs7OworRjkxODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxODtMbzswO0w7ODQzRDs7OztOOzs7OzsKK0Y5MTk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MTk7TG87MDtMOzkxNkE7Ozs7Tjs7Ozs7CitGOTFBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTFBO0xvOzA7TDs5OUYxOzs7O047Ozs7OworRjkxQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxQjtMbzswO0w7NEU4Mjs7OztOOzs7OzsKK0Y5MUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MUM7TG87MDtMOzUzNzU7Ozs7Tjs7Ozs7CitGOTFEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTFEO0xvOzA7TDs2QjA0Ozs7O047Ozs7OworRjkxRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxRTtMbzswO0w7NzIxQjs7OztOOzs7OzsKK0Y5MUY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MUY7TG87MDtMOzg2MkQ7Ozs7Tjs7Ozs7CitGOTIwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTIwO0xvOzA7TDs5RTFFOzs7O047Ozs7OworRjkyMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyMTtMbzswO0w7NUQ1MDs7OztOOzs7OzsKK0Y5MjI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MjI7TG87MDtMOzZGRUI7Ozs7Tjs7Ozs7CitGOTIzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTIzO0xvOzA7TDs4NUNEOzs7O047Ozs7OworRjkyNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyNDtMbzswO0w7ODk2NDs7OztOOzs7OzsKK0Y5MjU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MjU7TG87MDtMOzYyQzk7Ozs7Tjs7Ozs7CitGOTI2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTI2O0xvOzA7TDs4MUQ4Ozs7O047Ozs7OworRjkyNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyNztMbzswO0w7ODgxRjs7OztOOzs7OzsKK0Y5Mjg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Mjg7TG87MDtMOzVFQ0E7Ozs7Tjs7Ozs7CitGOTI5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTI5O0xvOzA7TDs2NzE3Ozs7O047Ozs7OworRjkyQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyQTtMbzswO0w7NkQ2QTs7OztOOzs7OzsKK0Y5MkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MkI7TG87MDtMOzcyRkM7Ozs7Tjs7Ozs7CitGOTJDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTJDO0xvOzA7TDs5MENFOzs7O047Ozs7OworRjkyRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyRDtMbzswO0w7NEY4Njs7OztOOzs7OzsKK0Y5MkU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MkU7TG87MDtMOzUxQjc7Ozs7Tjs7Ozs7CitGOTJGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTJGO0xvOzA7TDs1MkRFOzs7O047Ozs7OworRjkzMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzMDtMbzswO0w7NjRDNDs7OztOOzs7OzsKK0Y5MzE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MzE7TG87MDtMOzZBRDM7Ozs7Tjs7Ozs7CitGOTMyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTMyO0xvOzA7TDs3MjEwOzs7O047Ozs7OworRjkzMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzMztMbzswO0w7NzZFNzs7OztOOzs7OzsKK0Y5MzQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MzQ7TG87MDtMOzgwMDE7Ozs7Tjs7Ozs7CitGOTM1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTM1O0xvOzA7TDs4NjA2Ozs7O047Ozs7OworRjkzNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzNjtMbzswO0w7ODY1Qzs7OztOOzs7OzsKK0Y5Mzc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Mzc7TG87MDtMOzhERUY7Ozs7Tjs7Ozs7CitGOTM4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTM4O0xvOzA7TDs5NzMyOzs7O047Ozs7OworRjkzOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzOTtMbzswO0w7OUI2Rjs7OztOOzs7OzsKK0Y5M0E7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5M0E7TG87MDtMOzlERkE7Ozs7Tjs7Ozs7CitGOTNCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTNCO0xvOzA7TDs3ODhDOzs7O047Ozs7OworRjkzQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzQztMbzswO0w7Nzk3Rjs7OztOOzs7OzsKK0Y5M0Q7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5M0Q7TG87MDtMOzdEQTA7Ozs7Tjs7Ozs7CitGOTNFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTNFO0xvOzA7TDs4M0M5Ozs7O047Ozs7OworRjkzRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzRjtMbzswO0w7OTMwNDs7OztOOzs7OzsKK0Y5NDA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NDA7TG87MDtMOzlFN0Y7Ozs7Tjs7Ozs7CitGOTQxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTQxO0xvOzA7TDs4QUQ2Ozs7O047Ozs7OworRjk0MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0MjtMbzswO0w7NThERjs7OztOOzs7OzsKK0Y5NDM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NDM7TG87MDtMOzVGMDQ7Ozs7Tjs7Ozs7CitGOTQ0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTQ0O0xvOzA7TDs3QzYwOzs7O047Ozs7OworRjk0NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0NTtMbzswO0w7ODA3RTs7OztOOzs7OzsKK0Y5NDY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NDY7TG87MDtMOzcyNjI7Ozs7Tjs7Ozs7CitGOTQ3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTQ3O0xvOzA7TDs3OENBOzs7O047Ozs7OworRjk0ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0ODtMbzswO0w7OENDMjs7OztOOzs7OzsKK0Y5NDk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NDk7TG87MDtMOzk2Rjc7Ozs7Tjs7Ozs7CitGOTRBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTRBO0xvOzA7TDs1OEQ4Ozs7O047Ozs7OworRjk0QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0QjtMbzswO0w7NUM2Mjs7OztOOzs7OzsKK0Y5NEM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NEM7TG87MDtMOzZBMTM7Ozs7Tjs7Ozs7CitGOTREO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTREO0xvOzA7TDs2RERBOzs7O047Ozs7OworRjk0RTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0RTtMbzswO0w7NkYwRjs7OztOOzs7OzsKK0Y5NEY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NEY7TG87MDtMOzdEMkY7Ozs7Tjs7Ozs7CitGOTUwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTUwO0xvOzA7TDs3RTM3Ozs7O047Ozs7OworRjk1MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1MTtMbzswO0w7OTZGQjs7OztOOzs7OzsKK0Y5NTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NTI7TG87MDtMOzUyRDI7Ozs7Tjs7Ozs7CitGOTUzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTUzO0xvOzA7TDs4MDhCOzs7O047Ozs7OworRjk1NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1NDtMbzswO0w7NTFEQzs7OztOOzs7OzsKK0Y5NTU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NTU7TG87MDtMOzUxQ0M7Ozs7Tjs7Ozs7CitGOTU2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTU2O0xvOzA7TDs3QTFDOzs7O047Ozs7OworRjk1NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1NztMbzswO0w7N0RCRTs7OztOOzs7OzsKK0Y5NTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NTg7TG87MDtMOzgzRjE7Ozs7Tjs7Ozs7CitGOTU5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTU5O0xvOzA7TDs5Njc1Ozs7O047Ozs7OworRjk1QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1QTtMbzswO0w7OEI4MDs7OztOOzs7OzsKK0Y5NUI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NUI7TG87MDtMOzYyQ0Y7Ozs7Tjs7Ozs7CitGOTVDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTVDO0xvOzA7TDs2QTAyOzs7O047Ozs7OworRjk1RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1RDtMbzswO0w7OEFGRTs7OztOOzs7OzsKK0Y5NUU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NUU7TG87MDtMOzRFMzk7Ozs7Tjs7Ozs7CitGOTVGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTVGO0xvOzA7TDs1QkU3Ozs7O047Ozs7OworRjk2MDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2MDtMbzswO0w7NjAxMjs7OztOOzs7OzsKK0Y5NjE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NjE7TG87MDtMOzczODc7Ozs7Tjs7Ozs7CitGOTYyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTYyO0xvOzA7TDs3NTcwOzs7O047Ozs7OworRjk2MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2MztMbzswO0w7NTMxNzs7OztOOzs7OzsKK0Y5NjQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NjQ7TG87MDtMOzc4RkI7Ozs7Tjs7Ozs7CitGOTY1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTY1O0xvOzA7TDs0RkJGOzs7O047Ozs7OworRjk2NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2NjtMbzswO0w7NUZBOTs7OztOOzs7OzsKK0Y5Njc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Njc7TG87MDtMOzRFMEQ7Ozs7Tjs7Ozs7CitGOTY4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTY4O0xvOzA7TDs2Q0NDOzs7O047Ozs7OworRjk2OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2OTtMbzswO0w7NjU3ODs7OztOOzs7OzsKK0Y5NkE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NkE7TG87MDtMOzdEMjI7Ozs7Tjs7Ozs7CitGOTZCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTZCO0xvOzA7TDs1M0MzOzs7O047Ozs7OworRjk2QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2QztMbzswO0w7NTg1RTs7OztOOzs7OzsKK0Y5NkQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NkQ7TG87MDtMOzc3MDE7Ozs7Tjs7Ozs7CitGOTZFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTZFO0xvOzA7TDs4NDQ5Ozs7O047Ozs7OworRjk2RjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2RjtMbzswO0w7OEFBQTs7OztOOzs7OzsKK0Y5NzA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NzA7TG87MDtMOzZCQkE7Ozs7Tjs7Ozs7CitGOTcxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTcxO0xvOzA7TDs4RkIwOzs7O047Ozs7OworRjk3MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3MjtMbzswO0w7NkM4ODs7OztOOzs7OzsKK0Y5NzM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NzM7TG87MDtMOzYyRkU7Ozs7Tjs7Ozs7CitGOTc0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTc0O0xvOzA7TDs4MkU1Ozs7O047Ozs7OworRjk3NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3NTtMbzswO0w7NjNBMDs7OztOOzs7OzsKK0Y5NzY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NzY7TG87MDtMOzc1NjU7Ozs7Tjs7Ozs7CitGOTc3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTc3O0xvOzA7TDs0RUFFOzs7O047Ozs7OworRjk3ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3ODtMbzswO0w7NTE2OTs7OztOOzs7OzsKK0Y5Nzk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Nzk7TG87MDtMOzUxQzk7Ozs7Tjs7Ozs7CitGOTdBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTdBO0xvOzA7TDs2ODgxOzs7O047Ozs7OworRjk3QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3QjtMbzswO0w7N0NFNzs7OztOOzs7OzsKK0Y5N0M7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5N0M7TG87MDtMOzgyNkY7Ozs7Tjs7Ozs7CitGOTdEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTdEO0xvOzA7TDs4QUQyOzs7O047Ozs7OworRjk3RTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3RTtMbzswO0w7OTFDRjs7OztOOzs7OzsKK0Y5N0Y7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5N0Y7TG87MDtMOzUyRjU7Ozs7Tjs7Ozs7CitGOTgwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTgwO0xvOzA7TDs1NDQyOzs7O047Ozs7OworRjk4MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4MTtMbzswO0w7NTk3Mzs7OztOOzs7OzsKK0Y5ODI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5ODI7TG87MDtMOzVFRUM7Ozs7Tjs7Ozs7CitGOTgzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTgzO0xvOzA7TDs2NUM1Ozs7O047Ozs7OworRjk4NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4NDtMbzswO0w7NkZGRTs7OztOOzs7OzsKK0Y5ODU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5ODU7TG87MDtMOzc5MkE7Ozs7Tjs7Ozs7CitGOTg2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTg2O0xvOzA7TDs5NUFEOzs7O047Ozs7OworRjk4NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4NztMbzswO0w7OUE2QTs7OztOOzs7OzsKK0Y5ODg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5ODg7TG87MDtMOzlFOTc7Ozs7Tjs7Ozs7CitGOTg5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTg5O0xvOzA7TDs5RUNFOzs7O047Ozs7OworRjk4QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4QTtMbzswO0w7NTI5Qjs7OztOOzs7OzsKK0Y5OEI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OEI7TG87MDtMOzY2QzY7Ozs7Tjs7Ozs7CitGOThDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOThDO0xvOzA7TDs2Qjc3Ozs7O047Ozs7OworRjk4RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4RDtMbzswO0w7OEY2Mjs7OztOOzs7OzsKK0Y5OEU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OEU7TG87MDtMOzVFNzQ7Ozs7Tjs7Ozs7CitGOThGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOThGO0xvOzA7TDs2MTkwOzs7O047Ozs7OworRjk5MDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5MDtMbzswO0w7NjIwMDs7OztOOzs7OzsKK0Y5OTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OTE7TG87MDtMOzY0OUE7Ozs7Tjs7Ozs7CitGOTkyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTkyO0xvOzA7TDs2RjIzOzs7O047Ozs7OworRjk5MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5MztMbzswO0w7NzE0OTs7OztOOzs7OzsKK0Y5OTQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OTQ7TG87MDtMOzc0ODk7Ozs7Tjs7Ozs7CitGOTk1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTk1O0xvOzA7TDs3OUNBOzs7O047Ozs7OworRjk5NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5NjtMbzswO0w7N0RGNDs7OztOOzs7OzsKK0Y5OTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OTc7TG87MDtMOzgwNkY7Ozs7Tjs7Ozs7CitGOTk4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTk4O0xvOzA7TDs4RjI2Ozs7O047Ozs7OworRjk5OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5OTtMbzswO0w7ODRFRTs7OztOOzs7OzsKK0Y5OUE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OUE7TG87MDtMOzkwMjM7Ozs7Tjs7Ozs7CitGOTlCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTlCO0xvOzA7TDs5MzRBOzs7O047Ozs7OworRjk5QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5QztMbzswO0w7NTIxNzs7OztOOzs7OzsKK0Y5OUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OUQ7TG87MDtMOzUyQTM7Ozs7Tjs7Ozs7CitGOTlFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTlFO0xvOzA7TDs1NEJEOzs7O047Ozs7OworRjk5RjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5RjtMbzswO0w7NzBDODs7OztOOzs7OzsKK0Y5QTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QTA7TG87MDtMOzg4QzI7Ozs7Tjs7Ozs7CitGOUExO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUExO0xvOzA7TDs4QUFBOzs7O047Ozs7OworRjlBMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBMjtMbzswO0w7NUVDOTs7OztOOzs7OzsKK0Y5QTM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QTM7TG87MDtMOzVGRjU7Ozs7Tjs7Ozs7CitGOUE0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUE0O0xvOzA7TDs2MzdCOzs7O047Ozs7OworRjlBNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBNTtMbzswO0w7NkJBRTs7OztOOzs7OzsKK0Y5QTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QTY7TG87MDtMOzdDM0U7Ozs7Tjs7Ozs7CitGOUE3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUE3O0xvOzA7TDs3Mzc1Ozs7O047Ozs7OworRjlBODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBODtMbzswO0w7NEVFNDs7OztOOzs7OzsKK0Y5QTk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QTk7TG87MDtMOzU2Rjk7Ozs7Tjs7Ozs7CitGOUFBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUFBO0xvOzA7TDs1QkU3Ozs7O047Ozs7OworRjlBQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBQjtMbzswO0w7NURCQTs7OztOOzs7OzsKK0Y5QUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QUM7TG87MDtMOzYwMUM7Ozs7Tjs7Ozs7CitGOUFEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUFEO0xvOzA7TDs3M0IyOzs7O047Ozs7OworRjlBRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBRTtMbzswO0w7NzQ2OTs7OztOOzs7OzsKK0Y5QUY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QUY7TG87MDtMOzdGOUE7Ozs7Tjs7Ozs7CitGOUIwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUIwO0xvOzA7TDs4MDQ2Ozs7O047Ozs7OworRjlCMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCMTtMbzswO0w7OTIzNDs7OztOOzs7OzsKK0Y5QjI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QjI7TG87MDtMOzk2RjY7Ozs7Tjs7Ozs7CitGOUIzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUIzO0xvOzA7TDs5NzQ4Ozs7O047Ozs7OworRjlCNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCNDtMbzswO0w7OTgxODs7OztOOzs7OzsKK0Y5QjU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QjU7TG87MDtMOzRGOEI7Ozs7Tjs7Ozs7CitGOUI2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUI2O0xvOzA7TDs3OUFFOzs7O047Ozs7OworRjlCNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCNztMbzswO0w7OTFCNDs7OztOOzs7OzsKK0Y5Qjg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Qjg7TG87MDtMOzk2Qjg7Ozs7Tjs7Ozs7CitGOUI5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUI5O0xvOzA7TDs2MEUxOzs7O047Ozs7OworRjlCQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCQTtMbzswO0w7NEU4Njs7OztOOzs7OzsKK0Y5QkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QkI7TG87MDtMOzUwREE7Ozs7Tjs7Ozs7CitGOUJDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUJDO0xvOzA7TDs1QkVFOzs7O047Ozs7OworRjlCRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCRDtMbzswO0w7NUMzRjs7OztOOzs7OzsKK0Y5QkU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QkU7TG87MDtMOzY1OTk7Ozs7Tjs7Ozs7CitGOUJGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUJGO0xvOzA7TDs2QTAyOzs7O047Ozs7OworRjlDMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDMDtMbzswO0w7NzFDRTs7OztOOzs7OzsKK0Y5QzE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QzE7TG87MDtMOzc2NDI7Ozs7Tjs7Ozs7CitGOUMyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUMyO0xvOzA7TDs4NEZDOzs7O047Ozs7OworRjlDMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDMztMbzswO0w7OTA3Qzs7OztOOzs7OzsKK0Y5QzQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QzQ7TG87MDtMOzlGOEQ7Ozs7Tjs7Ozs7CitGOUM1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUM1O0xvOzA7TDs2Njg4Ozs7O047Ozs7OworRjlDNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDNjtMbzswO0w7OTYyRTs7OztOOzs7OzsKK0Y5Qzc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Qzc7TG87MDtMOzUyODk7Ozs7Tjs7Ozs7CitGOUM4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUM4O0xvOzA7TDs2NzdCOzs7O047Ozs7OworRjlDOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDOTtMbzswO0w7NjdGMzs7OztOOzs7OzsKK0Y5Q0E7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Q0E7TG87MDtMOzZENDE7Ozs7Tjs7Ozs7CitGOUNCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUNCO0xvOzA7TDs2RTlDOzs7O047Ozs7OworRjlDQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDQztMbzswO0w7NzQwOTs7OztOOzs7OzsKK0Y5Q0Q7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Q0Q7TG87MDtMOzc1NTk7Ozs7Tjs7Ozs7CitGOUNFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUNFO0xvOzA7TDs3ODZCOzs7O047Ozs7OworRjlDRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDRjtMbzswO0w7N0QxMDs7OztOOzs7OzsKK0Y5RDA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RDA7TG87MDtMOzk4NUU7Ozs7Tjs7Ozs7CitGOUQxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUQxO0xvOzA7TDs1MTZEOzs7O047Ozs7OworRjlEMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlEMjtMbzswO0w7NjIyRTs7OztOOzs7OzsKK0Y5RDM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RDM7TG87MDtMOzk2Nzg7Ozs7Tjs7Ozs7CitGOUQ0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUQ0O0xvOzA7TDs1MDJCOzs7O047Ozs7OworRjlENTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlENTtMbzswO0w7NUQxOTs7OztOOzs7OzsKK0Y5RDY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RDY7TG87MDtMOzZERUE7Ozs7Tjs7Ozs7CitGOUQ3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUQ3O0xvOzA7TDs4RjJBOzs7O047Ozs7OworRjlEODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlEODtMbzswO0w7NUY4Qjs7OztOOzs7OzsKK0Y5RDk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RDk7TG87MDtMOzYxNDQ7Ozs7Tjs7Ozs7CitGOURBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOURBO0xvOzA7TDs2ODE3Ozs7O047Ozs7OworRjlEQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlEQjtMbzswO0w7NzM4Nzs7OztOOzs7OzsKK0Y5REM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5REM7TG87MDtMOzk2ODY7Ozs7Tjs7Ozs7CitGOUREO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUREO0xvOzA7TDs1MjI5Ozs7O047Ozs7OworRjlERTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlERTtMbzswO0w7NTQwRjs7OztOOzs7OzsKK0Y5REY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5REY7TG87MDtMOzVDNjU7Ozs7Tjs7Ozs7CitGOUUwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUUwO0xvOzA7TDs2NjEzOzs7O047Ozs7OworRjlFMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFMTtMbzswO0w7Njc0RTs7OztOOzs7OzsKK0Y5RTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RTI7TG87MDtMOzY4QTg7Ozs7Tjs7Ozs7CitGOUUzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUUzO0xvOzA7TDs2Q0U1Ozs7O047Ozs7OworRjlFNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFNDtMbzswO0w7NzQwNjs7OztOOzs7OzsKK0Y5RTU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RTU7TG87MDtMOzc1RTI7Ozs7Tjs7Ozs7CitGOUU2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUU2O0xvOzA7TDs3Rjc5Ozs7O047Ozs7OworRjlFNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFNztMbzswO0w7ODhDRjs7OztOOzs7OzsKK0Y5RTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RTg7TG87MDtMOzg4RTE7Ozs7Tjs7Ozs7CitGOUU5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUU5O0xvOzA7TDs5MUNDOzs7O047Ozs7OworRjlFQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFQTtMbzswO0w7OTZFMjs7OztOOzs7OzsKK0Y5RUI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RUI7TG87MDtMOzUzM0Y7Ozs7Tjs7Ozs7CitGOUVDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUVDO0xvOzA7TDs2RUJBOzs7O047Ozs7OworRjlFRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFRDtMbzswO0w7NTQxRDs7OztOOzs7OzsKK0Y5RUU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RUU7TG87MDtMOzcxRDA7Ozs7Tjs7Ozs7CitGOUVGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUVGO0xvOzA7TDs3NDk4Ozs7O047Ozs7OworRjlGMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGMDtMbzswO0w7ODVGQTs7OztOOzs7OzsKK0Y5RjE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RjE7TG87MDtMOzk2QTM7Ozs7Tjs7Ozs7CitGOUYyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUYyO0xvOzA7TDs5QzU3Ozs7O047Ozs7OworRjlGMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGMztMbzswO0w7OUU5Rjs7OztOOzs7OzsKK0Y5RjQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RjQ7TG87MDtMOzY3OTc7Ozs7Tjs7Ozs7CitGOUY1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUY1O0xvOzA7TDs2RENCOzs7O047Ozs7OworRjlGNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGNjtMbzswO0w7ODFFODs7OztOOzs7OzsKK0Y5Rjc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Rjc7TG87MDtMOzdBQ0I7Ozs7Tjs7Ozs7CitGOUY4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUY4O0xvOzA7TDs3QjIwOzs7O047Ozs7OworRjlGOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGOTtMbzswO0w7N0M5Mjs7OztOOzs7OzsKK0Y5RkE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RkE7TG87MDtMOzcyQzA7Ozs7Tjs7Ozs7CitGOUZCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUZCO0xvOzA7TDs3MDk5Ozs7O047Ozs7OworRjlGQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGQztMbzswO0w7OEI1ODs7OztOOzs7OzsKK0Y5RkQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RkQ7TG87MDtMOzRFQzA7Ozs7Tjs7Ozs7CitGOUZFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUZFO0xvOzA7TDs4MzM2Ozs7O047Ozs7OworRjlGRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGRjtMbzswO0w7NTIzQTs7OztOOzs7OzsKK0ZBMDA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMDA7TG87MDtMOzUyMDc7Ozs7Tjs7Ozs7CitGQTAxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTAxO0xvOzA7TDs1RUE2Ozs7O047Ozs7OworRkEwMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwMjtMbzswO0w7NjJEMzs7OztOOzs7OzsKK0ZBMDM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMDM7TG87MDtMOzdDRDY7Ozs7Tjs7Ozs7CitGQTA0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTA0O0xvOzA7TDs1Qjg1Ozs7O047Ozs7OworRkEwNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwNTtMbzswO0w7NkQxRTs7OztOOzs7OzsKK0ZBMDY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMDY7TG87MDtMOzY2QjQ7Ozs7Tjs7Ozs7CitGQTA3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTA3O0xvOzA7TDs4RjNCOzs7O047Ozs7OworRkEwODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwODtMbzswO0w7ODg0Qzs7OztOOzs7OzsKK0ZBMDk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMDk7TG87MDtMOzk2NEQ7Ozs7Tjs7Ozs7CitGQTBBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTBBO0xvOzA7TDs4OThCOzs7O047Ozs7OworRkEwQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwQjtMbzswO0w7NUVEMzs7OztOOzs7OzsKK0ZBMEM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMEM7TG87MDtMOzUxNDA7Ozs7Tjs7Ozs7CitGQTBEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTBEO0xvOzA7TDs1NUMwOzs7O047Ozs7OworRkEwRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwRTtMbzswO0w7Ozs7O047Ozs7OworRkEwRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwRjtMbzswO0w7Ozs7O047Ozs7OworRkExMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExMDtMbzswO0w7NTg1QTs7OztOOzs7OzsKK0ZBMTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMTE7TG87MDtMOzs7OztOOzs7OzsKK0ZBMTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMTI7TG87MDtMOzY2NzQ7Ozs7Tjs7Ozs7CitGQTEzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTEzO0xvOzA7TDs7Ozs7Tjs7Ozs7CitGQTE0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTE0O0xvOzA7TDs7Ozs7Tjs7Ozs7CitGQTE1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTE1O0xvOzA7TDs1MURFOzs7O047Ozs7OworRkExNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExNjtMbzswO0w7NzMyQTs7OztOOzs7OzsKK0ZBMTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMTc7TG87MDtMOzc2Q0E7Ozs7Tjs7Ozs7CitGQTE4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTE4O0xvOzA7TDs3OTNDOzs7O047Ozs7OworRkExOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExOTtMbzswO0w7Nzk1RTs7OztOOzs7OzsKK0ZBMUE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMUE7TG87MDtMOzc5NjU7Ozs7Tjs7Ozs7CitGQTFCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTFCO0xvOzA7TDs3OThGOzs7O047Ozs7OworRkExQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExQztMbzswO0w7OTc1Njs7OztOOzs7OzsKK0ZBMUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMUQ7TG87MDtMOzdDQkU7Ozs7Tjs7Ozs7CitGQTFFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTFFO0xvOzA7TDs3RkJEOzs7O047Ozs7OworRkExRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExRjtMbzswO0w7Ozs7O047Oyo7OzsKK0ZBMjA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMjA7TG87MDtMOzg2MTI7Ozs7Tjs7Ozs7CitGQTIxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTIxO0xvOzA7TDs7Ozs7Tjs7Ozs7CitGQTIyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTIyO0xvOzA7TDs4QUY4Ozs7O047Ozs7OworRkEyMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyMztMbzswO0w7Ozs7O047Oyo7OzsKK0ZBMjQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMjQ7TG87MDtMOzs7OztOOzs7OzsKK0ZBMjU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMjU7TG87MDtMOzkwMzg7Ozs7Tjs7Ozs7CitGQTI2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTI2O0xvOzA7TDs5MEZEOzs7O047Ozs7OworRkEyNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyNztMbzswO0w7Ozs7O047Ozs7OworRkEyODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyODtMbzswO0w7Ozs7O047Ozs7OworRkEyOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyOTtMbzswO0w7Ozs7O047Ozs7OworRkEyQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyQTtMbzswO0w7OThFRjs7OztOOzs7OzsKK0ZBMkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMkI7TG87MDtMOzk4RkM7Ozs7Tjs7Ozs7CitGQTJDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTJDO0xvOzA7TDs5OTI4Ozs7O047Ozs7OworRkEyRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyRDtMbzswO0w7OURCNDs7OztOOzs7OzsKK0ZCMDA7TEFUSU4gU01BTEwgTElHQVRVUkUgRkY7TGw7MDtMOzxjb21wYXQ+IDAwNjYgMDA2Njs7OztOOzs7OzsKK0ZCMDE7TEFUSU4gU01BTEwgTElHQVRVUkUgRkk7TGw7MDtMOzxjb21wYXQ+IDAwNjYgMDA2OTs7OztOOzs7OzsKK0ZCMDI7TEFUSU4gU01BTEwgTElHQVRVUkUgRkw7TGw7MDtMOzxjb21wYXQ+IDAwNjYgMDA2Qzs7OztOOzs7OzsKK0ZCMDM7TEFUSU4gU01BTEwgTElHQVRVUkUgRkZJO0xsOzA7TDs8Y29tcGF0PiAwMDY2IDAwNjYgMDA2OTs7OztOOzs7OzsKK0ZCMDQ7TEFUSU4gU01BTEwgTElHQVRVUkUgRkZMO0xsOzA7TDs8Y29tcGF0PiAwMDY2IDAwNjYgMDA2Qzs7OztOOzs7OzsKK0ZCMDU7TEFUSU4gU01BTEwgTElHQVRVUkUgTE9ORyBTIFQ7TGw7MDtMOzxjb21wYXQ+IDAxN0YgMDA3NDs7OztOOzs7OzsKK0ZCMDY7TEFUSU4gU01BTEwgTElHQVRVUkUgU1Q7TGw7MDtMOzxjb21wYXQ+IDAwNzMgMDA3NDs7OztOOzs7OzsKK0ZCMTM7QVJNRU5JQU4gU01BTEwgTElHQVRVUkUgTUVOIE5PVztMbDswO0w7PGNvbXBhdD4gMDU3NCAwNTc2Ozs7O047Ozs7OworRkIxNDtBUk1FTklBTiBTTUFMTCBMSUdBVFVSRSBNRU4gRUNIO0xsOzA7TDs8Y29tcGF0PiAwNTc0IDA1NjU7Ozs7Tjs7Ozs7CitGQjE1O0FSTUVOSUFOIFNNQUxMIExJR0FUVVJFIE1FTiBJTkk7TGw7MDtMOzxjb21wYXQ+IDA1NzQgMDU2Qjs7OztOOzs7OzsKK0ZCMTY7QVJNRU5JQU4gU01BTEwgTElHQVRVUkUgVkVXIE5PVztMbDswO0w7PGNvbXBhdD4gMDU3RSAwNTc2Ozs7O047Ozs7OworRkIxNztBUk1FTklBTiBTTUFMTCBMSUdBVFVSRSBNRU4gWEVIO0xsOzA7TDs8Y29tcGF0PiAwNTc0IDA1NkQ7Ozs7Tjs7Ozs7CitGQjFEO0hFQlJFVyBMRVRURVIgWU9EIFdJVEggSElSSVE7TG87MDtSOzA1RDkgMDVCNDs7OztOOzs7OzsKK0ZCMUU7SEVCUkVXIFBPSU5UIEpVREVPLVNQQU5JU0ggVkFSSUtBO01uOzI2O05TTTs7Ozs7TjtIRUJSRVcgUE9JTlQgVkFSSUtBOzs7OworRkIxRjtIRUJSRVcgTElHQVRVUkUgWUlERElTSCBZT0QgWU9EIFBBVEFIO0xvOzA7UjswNUYyIDA1Qjc7Ozs7Tjs7Ozs7CitGQjIwO0hFQlJFVyBMRVRURVIgQUxURVJOQVRJVkUgQVlJTjtMbzswO1I7PGZvbnQ+IDA1RTI7Ozs7Tjs7Ozs7CitGQjIxO0hFQlJFVyBMRVRURVIgV0lERSBBTEVGO0xvOzA7Ujs8Zm9udD4gMDVEMDs7OztOOzs7OzsKK0ZCMjI7SEVCUkVXIExFVFRFUiBXSURFIERBTEVUO0xvOzA7Ujs8Zm9udD4gMDVEMzs7OztOOzs7OzsKK0ZCMjM7SEVCUkVXIExFVFRFUiBXSURFIEhFO0xvOzA7Ujs8Zm9udD4gMDVENDs7OztOOzs7OzsKK0ZCMjQ7SEVCUkVXIExFVFRFUiBXSURFIEtBRjtMbzswO1I7PGZvbnQ+IDA1REI7Ozs7Tjs7Ozs7CitGQjI1O0hFQlJFVyBMRVRURVIgV0lERSBMQU1FRDtMbzswO1I7PGZvbnQ+IDA1REM7Ozs7Tjs7Ozs7CitGQjI2O0hFQlJFVyBMRVRURVIgV0lERSBGSU5BTCBNRU07TG87MDtSOzxmb250PiAwNUREOzs7O047Ozs7OworRkIyNztIRUJSRVcgTEVUVEVSIFdJREUgUkVTSDtMbzswO1I7PGZvbnQ+IDA1RTg7Ozs7Tjs7Ozs7CitGQjI4O0hFQlJFVyBMRVRURVIgV0lERSBUQVY7TG87MDtSOzxmb250PiAwNUVBOzs7O047Ozs7OworRkIyOTtIRUJSRVcgTEVUVEVSIEFMVEVSTkFUSVZFIFBMVVMgU0lHTjtTbTswO0VUOzxmb250PiAwMDJCOzs7O047Ozs7OworRkIyQTtIRUJSRVcgTEVUVEVSIFNISU4gV0lUSCBTSElOIERPVDtMbzswO1I7MDVFOSAwNUMxOzs7O047Ozs7OworRkIyQjtIRUJSRVcgTEVUVEVSIFNISU4gV0lUSCBTSU4gRE9UO0xvOzA7UjswNUU5IDA1QzI7Ozs7Tjs7Ozs7CitGQjJDO0hFQlJFVyBMRVRURVIgU0hJTiBXSVRIIERBR0VTSCBBTkQgU0hJTiBET1Q7TG87MDtSO0ZCNDkgMDVDMTs7OztOOzs7OzsKK0ZCMkQ7SEVCUkVXIExFVFRFUiBTSElOIFdJVEggREFHRVNIIEFORCBTSU4gRE9UO0xvOzA7UjtGQjQ5IDA1QzI7Ozs7Tjs7Ozs7CitGQjJFO0hFQlJFVyBMRVRURVIgQUxFRiBXSVRIIFBBVEFIO0xvOzA7UjswNUQwIDA1Qjc7Ozs7Tjs7Ozs7CitGQjJGO0hFQlJFVyBMRVRURVIgQUxFRiBXSVRIIFFBTUFUUztMbzswO1I7MDVEMCAwNUI4Ozs7O047Ozs7OworRkIzMDtIRUJSRVcgTEVUVEVSIEFMRUYgV0lUSCBNQVBJUTtMbzswO1I7MDVEMCAwNUJDOzs7O047Ozs7OworRkIzMTtIRUJSRVcgTEVUVEVSIEJFVCBXSVRIIERBR0VTSDtMbzswO1I7MDVEMSAwNUJDOzs7O047Ozs7OworRkIzMjtIRUJSRVcgTEVUVEVSIEdJTUVMIFdJVEggREFHRVNIO0xvOzA7UjswNUQyIDA1QkM7Ozs7Tjs7Ozs7CitGQjMzO0hFQlJFVyBMRVRURVIgREFMRVQgV0lUSCBEQUdFU0g7TG87MDtSOzA1RDMgMDVCQzs7OztOOzs7OzsKK0ZCMzQ7SEVCUkVXIExFVFRFUiBIRSBXSVRIIE1BUElRO0xvOzA7UjswNUQ0IDA1QkM7Ozs7Tjs7Ozs7CitGQjM1O0hFQlJFVyBMRVRURVIgVkFWIFdJVEggREFHRVNIO0xvOzA7UjswNUQ1IDA1QkM7Ozs7Tjs7Ozs7CitGQjM2O0hFQlJFVyBMRVRURVIgWkFZSU4gV0lUSCBEQUdFU0g7TG87MDtSOzA1RDYgMDVCQzs7OztOOzs7OzsKK0ZCMzg7SEVCUkVXIExFVFRFUiBURVQgV0lUSCBEQUdFU0g7TG87MDtSOzA1RDggMDVCQzs7OztOOzs7OzsKK0ZCMzk7SEVCUkVXIExFVFRFUiBZT0QgV0lUSCBEQUdFU0g7TG87MDtSOzA1RDkgMDVCQzs7OztOOzs7OzsKK0ZCM0E7SEVCUkVXIExFVFRFUiBGSU5BTCBLQUYgV0lUSCBEQUdFU0g7TG87MDtSOzA1REEgMDVCQzs7OztOOzs7OzsKK0ZCM0I7SEVCUkVXIExFVFRFUiBLQUYgV0lUSCBEQUdFU0g7TG87MDtSOzA1REIgMDVCQzs7OztOOzs7OzsKK0ZCM0M7SEVCUkVXIExFVFRFUiBMQU1FRCBXSVRIIERBR0VTSDtMbzswO1I7MDVEQyAwNUJDOzs7O047Ozs7OworRkIzRTtIRUJSRVcgTEVUVEVSIE1FTSBXSVRIIERBR0VTSDtMbzswO1I7MDVERSAwNUJDOzs7O047Ozs7OworRkI0MDtIRUJSRVcgTEVUVEVSIE5VTiBXSVRIIERBR0VTSDtMbzswO1I7MDVFMCAwNUJDOzs7O047Ozs7OworRkI0MTtIRUJSRVcgTEVUVEVSIFNBTUVLSCBXSVRIIERBR0VTSDtMbzswO1I7MDVFMSAwNUJDOzs7O047Ozs7OworRkI0MztIRUJSRVcgTEVUVEVSIEZJTkFMIFBFIFdJVEggREFHRVNIO0xvOzA7UjswNUUzIDA1QkM7Ozs7Tjs7Ozs7CitGQjQ0O0hFQlJFVyBMRVRURVIgUEUgV0lUSCBEQUdFU0g7TG87MDtSOzA1RTQgMDVCQzs7OztOOzs7OzsKK0ZCNDY7SEVCUkVXIExFVFRFUiBUU0FESSBXSVRIIERBR0VTSDtMbzswO1I7MDVFNiAwNUJDOzs7O047Ozs7OworRkI0NztIRUJSRVcgTEVUVEVSIFFPRiBXSVRIIERBR0VTSDtMbzswO1I7MDVFNyAwNUJDOzs7O047Ozs7OworRkI0ODtIRUJSRVcgTEVUVEVSIFJFU0ggV0lUSCBEQUdFU0g7TG87MDtSOzA1RTggMDVCQzs7OztOOzs7OzsKK0ZCNDk7SEVCUkVXIExFVFRFUiBTSElOIFdJVEggREFHRVNIO0xvOzA7UjswNUU5IDA1QkM7Ozs7Tjs7Ozs7CitGQjRBO0hFQlJFVyBMRVRURVIgVEFWIFdJVEggREFHRVNIO0xvOzA7UjswNUVBIDA1QkM7Ozs7Tjs7Ozs7CitGQjRCO0hFQlJFVyBMRVRURVIgVkFWIFdJVEggSE9MQU07TG87MDtSOzA1RDUgMDVCOTs7OztOOzs7OzsKK0ZCNEM7SEVCUkVXIExFVFRFUiBCRVQgV0lUSCBSQUZFO0xvOzA7UjswNUQxIDA1QkY7Ozs7Tjs7Ozs7CitGQjREO0hFQlJFVyBMRVRURVIgS0FGIFdJVEggUkFGRTtMbzswO1I7MDVEQiAwNUJGOzs7O047Ozs7OworRkI0RTtIRUJSRVcgTEVUVEVSIFBFIFdJVEggUkFGRTtMbzswO1I7MDVFNCAwNUJGOzs7O047Ozs7OworRkI0RjtIRUJSRVcgTElHQVRVUkUgQUxFRiBMQU1FRDtMbzswO1I7PGNvbXBhdD4gMDVEMCAwNURDOzs7O047Ozs7OworRkI1MDtBUkFCSUMgTEVUVEVSIEFMRUYgV0FTTEEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY3MTs7OztOOzs7OzsKK0ZCNTE7QVJBQklDIExFVFRFUiBBTEVGIFdBU0xBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NzE7Ozs7Tjs7Ozs7CitGQjUyO0FSQUJJQyBMRVRURVIgQkVFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjdCOzs7O047Ozs7OworRkI1MztBUkFCSUMgTEVUVEVSIEJFRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY3Qjs7OztOOzs7OzsKK0ZCNTQ7QVJBQklDIExFVFRFUiBCRUVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjdCOzs7O047Ozs7OworRkI1NTtBUkFCSUMgTEVUVEVSIEJFRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjdCOzs7O047Ozs7OworRkI1NjtBUkFCSUMgTEVUVEVSIFBFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjdFOzs7O047Ozs7OworRkI1NztBUkFCSUMgTEVUVEVSIFBFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjdFOzs7O047Ozs7OworRkI1ODtBUkFCSUMgTEVUVEVSIFBFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY3RTs7OztOOzs7OzsKK0ZCNTk7QVJBQklDIExFVFRFUiBQRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjdFOzs7O047Ozs7OworRkI1QTtBUkFCSUMgTEVUVEVSIEJFSEVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2ODA7Ozs7Tjs7Ozs7CitGQjVCO0FSQUJJQyBMRVRURVIgQkVIRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY4MDs7OztOOzs7OzsKK0ZCNUM7QVJBQklDIExFVFRFUiBCRUhFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY4MDs7OztOOzs7OzsKK0ZCNUQ7QVJBQklDIExFVFRFUiBCRUhFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2ODA7Ozs7Tjs7Ozs7CitGQjVFO0FSQUJJQyBMRVRURVIgVFRFSEVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2N0E7Ozs7Tjs7Ozs7CitGQjVGO0FSQUJJQyBMRVRURVIgVFRFSEVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2N0E7Ozs7Tjs7Ozs7CitGQjYwO0FSQUJJQyBMRVRURVIgVFRFSEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjdBOzs7O047Ozs7OworRkI2MTtBUkFCSUMgTEVUVEVSIFRURUhFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2N0E7Ozs7Tjs7Ozs7CitGQjYyO0FSQUJJQyBMRVRURVIgVEVIRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY3Rjs7OztOOzs7OzsKK0ZCNjM7QVJBQklDIExFVFRFUiBURUhFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjdGOzs7O047Ozs7OworRkI2NDtBUkFCSUMgTEVUVEVSIFRFSEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjdGOzs7O047Ozs7OworRkI2NTtBUkFCSUMgTEVUVEVSIFRFSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY3Rjs7OztOOzs7OzsKK0ZCNjY7QVJBQklDIExFVFRFUiBUVEVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2Nzk7Ozs7Tjs7Ozs7CitGQjY3O0FSQUJJQyBMRVRURVIgVFRFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjc5Ozs7O047Ozs7OworRkI2ODtBUkFCSUMgTEVUVEVSIFRURUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2Nzk7Ozs7Tjs7Ozs7CitGQjY5O0FSQUJJQyBMRVRURVIgVFRFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2Nzk7Ozs7Tjs7Ozs7CitGQjZBO0FSQUJJQyBMRVRURVIgVkVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2QTQ7Ozs7Tjs7Ozs7CitGQjZCO0FSQUJJQyBMRVRURVIgVkVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2QTQ7Ozs7Tjs7Ozs7CitGQjZDO0FSQUJJQyBMRVRURVIgVkVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNkE0Ozs7O047Ozs7OworRkI2RDtBUkFCSUMgTEVUVEVSIFZFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2QTQ7Ozs7Tjs7Ozs7CitGQjZFO0FSQUJJQyBMRVRURVIgUEVIRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZBNjs7OztOOzs7OzsKK0ZCNkY7QVJBQklDIExFVFRFUiBQRUhFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkE2Ozs7O047Ozs7OworRkI3MDtBUkFCSUMgTEVUVEVSIFBFSEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNkE2Ozs7O047Ozs7OworRkI3MTtBUkFCSUMgTEVUVEVSIFBFSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDZBNjs7OztOOzs7OzsKK0ZCNzI7QVJBQklDIExFVFRFUiBEWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2ODQ7Ozs7Tjs7Ozs7CitGQjczO0FSQUJJQyBMRVRURVIgRFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjg0Ozs7O047Ozs7OworRkI3NDtBUkFCSUMgTEVUVEVSIERZRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2ODQ7Ozs7Tjs7Ozs7CitGQjc1O0FSQUJJQyBMRVRURVIgRFlFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2ODQ7Ozs7Tjs7Ozs7CitGQjc2O0FSQUJJQyBMRVRURVIgTllFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjgzOzs7O047Ozs7OworRkI3NztBUkFCSUMgTEVUVEVSIE5ZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY4Mzs7OztOOzs7OzsKK0ZCNzg7QVJBQklDIExFVFRFUiBOWUVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjgzOzs7O047Ozs7OworRkI3OTtBUkFCSUMgTEVUVEVSIE5ZRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjgzOzs7O047Ozs7OworRkI3QTtBUkFCSUMgTEVUVEVSIFRDSEVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2ODY7Ozs7Tjs7Ozs7CitGQjdCO0FSQUJJQyBMRVRURVIgVENIRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY4Njs7OztOOzs7OzsKK0ZCN0M7QVJBQklDIExFVFRFUiBUQ0hFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY4Njs7OztOOzs7OzsKK0ZCN0Q7QVJBQklDIExFVFRFUiBUQ0hFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2ODY7Ozs7Tjs7Ozs7CitGQjdFO0FSQUJJQyBMRVRURVIgVENIRUhFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjg3Ozs7O047Ozs7OworRkI3RjtBUkFCSUMgTEVUVEVSIFRDSEVIRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY4Nzs7OztOOzs7OzsKK0ZCODA7QVJBQklDIExFVFRFUiBUQ0hFSEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjg3Ozs7O047Ozs7OworRkI4MTtBUkFCSUMgTEVUVEVSIFRDSEVIRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjg3Ozs7O047Ozs7OworRkI4MjtBUkFCSUMgTEVUVEVSIEREQUhBTCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjhEOzs7O047Ozs7OworRkI4MztBUkFCSUMgTEVUVEVSIEREQUhBTCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjhEOzs7O047Ozs7OworRkI4NDtBUkFCSUMgTEVUVEVSIERBSEFMIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2OEM7Ozs7Tjs7Ozs7CitGQjg1O0FSQUJJQyBMRVRURVIgREFIQUwgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY4Qzs7OztOOzs7OzsKK0ZCODY7QVJBQklDIExFVFRFUiBEVUwgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY4RTs7OztOOzs7OzsKK0ZCODc7QVJBQklDIExFVFRFUiBEVUwgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY4RTs7OztOOzs7OzsKK0ZCODg7QVJBQklDIExFVFRFUiBEREFMIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2ODg7Ozs7Tjs7Ozs7CitGQjg5O0FSQUJJQyBMRVRURVIgRERBTCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjg4Ozs7O047Ozs7OworRkI4QTtBUkFCSUMgTEVUVEVSIEpFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjk4Ozs7O047Ozs7OworRkI4QjtBUkFCSUMgTEVUVEVSIEpFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjk4Ozs7O047Ozs7OworRkI4QztBUkFCSUMgTEVUVEVSIFJSRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY5MTs7OztOOzs7OzsKK0ZCOEQ7QVJBQklDIExFVFRFUiBSUkVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2OTE7Ozs7Tjs7Ozs7CitGQjhFO0FSQUJJQyBMRVRURVIgS0VIRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZBOTs7OztOOzs7OzsKK0ZCOEY7QVJBQklDIExFVFRFUiBLRUhFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkE5Ozs7O047Ozs7OworRkI5MDtBUkFCSUMgTEVUVEVSIEtFSEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNkE5Ozs7O047Ozs7OworRkI5MTtBUkFCSUMgTEVUVEVSIEtFSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDZBOTs7OztOOzs7OzsKK0ZCOTI7QVJBQklDIExFVFRFUiBHQUYgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZBRjs7OztOOzs7OzsKK0ZCOTM7QVJBQklDIExFVFRFUiBHQUYgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZBRjs7OztOOzs7OzsKK0ZCOTQ7QVJBQklDIExFVFRFUiBHQUYgSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2QUY7Ozs7Tjs7Ozs7CitGQjk1O0FSQUJJQyBMRVRURVIgR0FGIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDZBRjs7OztOOzs7OzsKK0ZCOTY7QVJBQklDIExFVFRFUiBHVUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2QjM7Ozs7Tjs7Ozs7CitGQjk3O0FSQUJJQyBMRVRURVIgR1VFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkIzOzs7O047Ozs7OworRkI5ODtBUkFCSUMgTEVUVEVSIEdVRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2QjM7Ozs7Tjs7Ozs7CitGQjk5O0FSQUJJQyBMRVRURVIgR1VFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2QjM7Ozs7Tjs7Ozs7CitGQjlBO0FSQUJJQyBMRVRURVIgTkdPRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZCMTs7OztOOzs7OzsKK0ZCOUI7QVJBQklDIExFVFRFUiBOR09FSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkIxOzs7O047Ozs7OworRkI5QztBUkFCSUMgTEVUVEVSIE5HT0VIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNkIxOzs7O047Ozs7OworRkI5RDtBUkFCSUMgTEVUVEVSIE5HT0VIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDZCMTs7OztOOzs7OzsKK0ZCOUU7QVJBQklDIExFVFRFUiBOT09OIEdIVU5OQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkJBOzs7O047Ozs7OworRkI5RjtBUkFCSUMgTEVUVEVSIE5PT04gR0hVTk5BIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2QkE7Ozs7Tjs7Ozs7CitGQkEwO0FSQUJJQyBMRVRURVIgUk5PT04gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZCQjs7OztOOzs7OzsKK0ZCQTE7QVJBQklDIExFVFRFUiBSTk9PTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkJCOzs7O047Ozs7OworRkJBMjtBUkFCSUMgTEVUVEVSIFJOT09OIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNkJCOzs7O047Ozs7OworRkJBMztBUkFCSUMgTEVUVEVSIFJOT09OIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDZCQjs7OztOOzs7OzsKK0ZCQTQ7QVJBQklDIExFVFRFUiBIRUggV0lUSCBZRUggQUJPVkUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZDMDs7OztOOzs7OzsKK0ZCQTU7QVJBQklDIExFVFRFUiBIRUggV0lUSCBZRUggQUJPVkUgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZDMDs7OztOOzs7OzsKK0ZCQTY7QVJBQklDIExFVFRFUiBIRUggR09BTCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkMxOzs7O047Ozs7OworRkJBNztBUkFCSUMgTEVUVEVSIEhFSCBHT0FMIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2QzE7Ozs7Tjs7Ozs7CitGQkE4O0FSQUJJQyBMRVRURVIgSEVIIEdPQUwgSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2QzE7Ozs7Tjs7Ozs7CitGQkE5O0FSQUJJQyBMRVRURVIgSEVIIEdPQUwgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNkMxOzs7O047Ozs7OworRkJBQTtBUkFCSUMgTEVUVEVSIEhFSCBET0FDSEFTSE1FRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkJFOzs7O047Ozs7OworRkJBQjtBUkFCSUMgTEVUVEVSIEhFSCBET0FDSEFTSE1FRSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkJFOzs7O047Ozs7OworRkJBQztBUkFCSUMgTEVUVEVSIEhFSCBET0FDSEFTSE1FRSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDZCRTs7OztOOzs7OzsKK0ZCQUQ7QVJBQklDIExFVFRFUiBIRUggRE9BQ0hBU0hNRUUgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNkJFOzs7O047Ozs7OworRkJBRTtBUkFCSUMgTEVUVEVSIFlFSCBCQVJSRUUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZEMjs7OztOOzs7OzsKK0ZCQUY7QVJBQklDIExFVFRFUiBZRUggQkFSUkVFIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2RDI7Ozs7Tjs7Ozs7CitGQkIwO0FSQUJJQyBMRVRURVIgWUVIIEJBUlJFRSBXSVRIIEhBTVpBIEFCT1ZFIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2RDM7Ozs7Tjs7Ozs7CitGQkIxO0FSQUJJQyBMRVRURVIgWUVIIEJBUlJFRSBXSVRIIEhBTVpBIEFCT1ZFIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2RDM7Ozs7Tjs7Ozs7CitGQkQzO0FSQUJJQyBMRVRURVIgTkcgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZBRDs7OztOOzs7OzsKK0ZCRDQ7QVJBQklDIExFVFRFUiBORyBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkFEOzs7O047Ozs7OworRkJENTtBUkFCSUMgTEVUVEVSIE5HIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNkFEOzs7O047Ozs7OworRkJENjtBUkFCSUMgTEVUVEVSIE5HIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDZBRDs7OztOOzs7OzsKK0ZCRDc7QVJBQklDIExFVFRFUiBVIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2Qzc7Ozs7Tjs7Ozs7CitGQkQ4O0FSQUJJQyBMRVRURVIgVSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkM3Ozs7O047Ozs7OworRkJEOTtBUkFCSUMgTEVUVEVSIE9FIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2QzY7Ozs7Tjs7Ozs7CitGQkRBO0FSQUJJQyBMRVRURVIgT0UgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZDNjs7OztOOzs7OzsKK0ZCREI7QVJBQklDIExFVFRFUiBZVSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkM4Ozs7O047Ozs7OworRkJEQztBUkFCSUMgTEVUVEVSIFlVIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2Qzg7Ozs7Tjs7Ozs7CitGQkREO0FSQUJJQyBMRVRURVIgVSBXSVRIIEhBTVpBIEFCT1ZFIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2Nzc7Ozs7Tjs7Ozs7CitGQkRFO0FSQUJJQyBMRVRURVIgVkUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZDQjs7OztOOzs7OzsKK0ZCREY7QVJBQklDIExFVFRFUiBWRSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkNCOzs7O047Ozs7OworRkJFMDtBUkFCSUMgTEVUVEVSIEtJUkdISVogT0UgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZDNTs7OztOOzs7OzsKK0ZCRTE7QVJBQklDIExFVFRFUiBLSVJHSElaIE9FIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2QzU7Ozs7Tjs7Ozs7CitGQkUyO0FSQUJJQyBMRVRURVIgS0lSR0hJWiBZVSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkM5Ozs7O047Ozs7OworRkJFMztBUkFCSUMgTEVUVEVSIEtJUkdISVogWVUgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZDOTs7OztOOzs7OzsKK0ZCRTQ7QVJBQklDIExFVFRFUiBFIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2RDA7Ozs7Tjs7Ozs7CitGQkU1O0FSQUJJQyBMRVRURVIgRSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkQwOzs7O047Ozs7OworRkJFNjtBUkFCSUMgTEVUVEVSIEUgSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2RDA7Ozs7Tjs7Ozs7CitGQkU3O0FSQUJJQyBMRVRURVIgRSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2RDA7Ozs7Tjs7Ozs7CitGQkU4O0FSQUJJQyBMRVRURVIgVUlHSFVSIEtBWkFLSCBLSVJHSElaIEFMRUYgTUFLU1VSQSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0OTs7OztOOzs7OzsKK0ZCRTk7QVJBQklDIExFVFRFUiBVSUdIVVIgS0FaQUtIIEtJUkdISVogQUxFRiBNQUtTVVJBIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0OTs7OztOOzs7OzsKK0ZCRUE7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggQUxFRiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI2IDA2Mjc7Ozs7Tjs7Ozs7CitGQkVCO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEFMRUYgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNiAwNjI3Ozs7O047Ozs7OworRkJFQztBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBBRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI2IDA2RDU7Ozs7Tjs7Ozs7CitGQkVEO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEFFIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjYgMDZENTs7OztOOzs7OzsKK0ZCRUU7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggV0FXIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjYgMDY0ODs7OztOOzs7OzsKK0ZCRUY7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggV0FXIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjYgMDY0ODs7OztOOzs7OzsKK0ZCRjA7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggVSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI2IDA2Qzc7Ozs7Tjs7Ozs7CitGQkYxO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIFUgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNiAwNkM3Ozs7O047Ozs7OworRkJGMjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBPRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI2IDA2QzY7Ozs7Tjs7Ozs7CitGQkYzO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIE9FIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjYgMDZDNjs7OztOOzs7OzsKK0ZCRjQ7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggWVUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyNiAwNkM4Ozs7O047Ozs7OworRkJGNTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBZVSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI2IDA2Qzg7Ozs7Tjs7Ozs7CitGQkY2O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyNiAwNkQwOzs7O047Ozs7OworRkJGNztBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBFIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjYgMDZEMDs7OztOOzs7OzsKK0ZCRjg7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggRSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyNiAwNkQwOzs7O047Ozs7OworRkJGOTtBUkFCSUMgTElHQVRVUkUgVUlHSFVSIEtJUkdISVogWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyNiAwNjQ5Ozs7O047Ozs7OworRkJGQTtBUkFCSUMgTElHQVRVUkUgVUlHSFVSIEtJUkdISVogWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNiAwNjQ5Ozs7O047Ozs7OworRkJGQjtBUkFCSUMgTElHQVRVUkUgVUlHSFVSIEtJUkdISVogWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBBTEVGIE1BS1NVUkEgSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MjYgMDY0OTs7OztOOzs7OzsKK0ZCRkM7QVJBQklDIExFVFRFUiBGQVJTSSBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZDQzs7OztOOzs7OzsKK0ZCRkQ7QVJBQklDIExFVFRFUiBGQVJTSSBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZDQzs7OztOOzs7OzsKK0ZCRkU7QVJBQklDIExFVFRFUiBGQVJTSSBZRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2Q0M7Ozs7Tjs7Ozs7CitGQkZGO0FSQUJJQyBMRVRURVIgRkFSU0kgWUVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDZDQzs7OztOOzs7OzsKK0ZDMDA7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI2IDA2MkM7Ozs7Tjs7Ozs7CitGQzAxO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI2IDA2MkQ7Ozs7Tjs7Ozs7CitGQzAyO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyNiAwNjQ1Ozs7O047Ozs7OworRkMwMztBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyNiAwNjQ5Ozs7O047Ozs7OworRkMwNDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyNiAwNjRBOzs7O047Ozs7OworRkMwNTtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI4IDA2MkM7Ozs7Tjs7Ozs7CitGQzA2O0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyOCAwNjJEOzs7O047Ozs7OworRkMwNztBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI4IDA2MkU7Ozs7Tjs7Ozs7CitGQzA4O0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjggMDY0NTs7OztOOzs7OzsKK0ZDMDk7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI4IDA2NDk7Ozs7Tjs7Ozs7CitGQzBBO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyOCAwNjRBOzs7O047Ozs7OworRkMwQjtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJBIDA2MkM7Ozs7Tjs7Ozs7CitGQzBDO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyQSAwNjJEOzs7O047Ozs7OworRkMwRDtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJBIDA2MkU7Ozs7Tjs7Ozs7CitGQzBFO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkEgMDY0NTs7OztOOzs7OzsKK0ZDMEY7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJBIDA2NDk7Ozs7Tjs7Ozs7CitGQzEwO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyQSAwNjRBOzs7O047Ozs7OworRkMxMTtBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyQiAwNjJDOzs7O047Ozs7OworRkMxMjtBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyQiAwNjQ1Ozs7O047Ozs7OworRkMxMztBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJCIDA2NDk7Ozs7Tjs7Ozs7CitGQzE0O0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkIgMDY0QTs7OztOOzs7OzsKK0ZDMTU7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyQyAwNjJEOzs7O047Ozs7OworRkMxNjtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyQyAwNjQ1Ozs7O047Ozs7OworRkMxNztBUkFCSUMgTElHQVRVUkUgSEFIIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJEIDA2MkM7Ozs7Tjs7Ozs7CitGQzE4O0FSQUJJQyBMSUdBVFVSRSBIQUggV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkQgMDY0NTs7OztOOzs7OzsKK0ZDMTk7QVJBQklDIExJR0FUVVJFIEtIQUggV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkUgMDYyQzs7OztOOzs7OzsKK0ZDMUE7QVJBQklDIExJR0FUVVJFIEtIQUggV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyRSAwNjJEOzs7O047Ozs7OworRkMxQjtBUkFCSUMgTElHQVRVUkUgS0hBSCBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyRSAwNjQ1Ozs7O047Ozs7OworRkMxQztBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzMyAwNjJDOzs7O047Ozs7OworRkMxRDtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjMzIDA2MkQ7Ozs7Tjs7Ozs7CitGQzFFO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjMzIDA2MkU7Ozs7Tjs7Ozs7CitGQzFGO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjMzIDA2NDU7Ozs7Tjs7Ozs7CitGQzIwO0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNSAwNjJEOzs7O047Ozs7OworRkMyMTtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM1IDA2NDU7Ozs7Tjs7Ozs7CitGQzIyO0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzYgMDYyQzs7OztOOzs7OzsKK0ZDMjM7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM2IDA2MkQ7Ozs7Tjs7Ozs7CitGQzI0O0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBLSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzYgMDYyRTs7OztOOzs7OzsKK0ZDMjU7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNiAwNjQ1Ozs7O047Ozs7OworRkMyNjtBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzcgMDYyRDs7OztOOzs7OzsKK0ZDMjc7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNyAwNjQ1Ozs7O047Ozs7OworRkMyODtBUkFCSUMgTElHQVRVUkUgWkFIIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM4IDA2NDU7Ozs7Tjs7Ozs7CitGQzI5O0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzkgMDYyQzs7OztOOzs7OzsKK0ZDMkE7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzOSAwNjQ1Ozs7O047Ozs7OworRkMyQjtBUkFCSUMgTElHQVRVUkUgR0hBSU4gV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2M0EgMDYyQzs7OztOOzs7OzsKK0ZDMkM7QVJBQklDIExJR0FUVVJFIEdIQUlOIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjNBIDA2NDU7Ozs7Tjs7Ozs7CitGQzJEO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDEgMDYyQzs7OztOOzs7OzsKK0ZDMkU7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQxIDA2MkQ7Ozs7Tjs7Ozs7CitGQzJGO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBLSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDEgMDYyRTs7OztOOzs7OzsKK0ZDMzA7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MSAwNjQ1Ozs7O047Ozs7OworRkMzMTtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDEgMDY0OTs7OztOOzs7OzsKK0ZDMzI7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQxIDA2NEE7Ozs7Tjs7Ozs7CitGQzMzO0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MiAwNjJEOzs7O047Ozs7OworRkMzNDtBUkFCSUMgTElHQVRVUkUgUUFGIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQyIDA2NDU7Ozs7Tjs7Ozs7CitGQzM1O0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MiAwNjQ5Ozs7O047Ozs7OworRkMzNjtBUkFCSUMgTElHQVRVUkUgUUFGIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDIgMDY0QTs7OztOOzs7OzsKK0ZDMzc7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIEFMRUYgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MyAwNjI3Ozs7O047Ozs7OworRkMzODtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQzIDA2MkM7Ozs7Tjs7Ozs7CitGQzM5O0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MyAwNjJEOzs7O047Ozs7OworRkMzQTtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQzIDA2MkU7Ozs7Tjs7Ozs7CitGQzNCO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBMQU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MyAwNjQ0Ozs7O047Ozs7OworRkMzQztBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQzIDA2NDU7Ozs7Tjs7Ozs7CitGQzNEO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MyAwNjQ5Ozs7O047Ozs7OworRkMzRTtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDMgMDY0QTs7OztOOzs7OzsKK0ZDM0Y7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NCAwNjJDOzs7O047Ozs7OworRkM0MDtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDQgMDYyRDs7OztOOzs7OzsKK0ZDNDE7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEtIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NCAwNjJFOzs7O047Ozs7OworRkM0MjtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ0IDA2NDU7Ozs7Tjs7Ozs7CitGQzQzO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NCAwNjQ5Ozs7O047Ozs7OworRkM0NDtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDQgMDY0QTs7OztOOzs7OzsKK0ZDNDU7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDUgMDYyQzs7OztOOzs7OzsKK0ZDNDY7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NSAwNjJEOzs7O047Ozs7OworRkM0NztBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEtIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NSAwNjJFOzs7O047Ozs7OworRkM0ODtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NSAwNjQ1Ozs7O047Ozs7OworRkM0OTtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ1IDA2NDk7Ozs7Tjs7Ozs7CitGQzRBO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZDNEI7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDYgMDYyQzs7OztOOzs7OzsKK0ZDNEM7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NiAwNjJEOzs7O047Ozs7OworRkM0RDtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEtIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NiAwNjJFOzs7O047Ozs7OworRkM0RTtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NiAwNjQ1Ozs7O047Ozs7OworRkM0RjtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ2IDA2NDk7Ozs7Tjs7Ozs7CitGQzUwO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDYgMDY0QTs7OztOOzs7OzsKK0ZDNTE7QVJBQklDIExJR0FUVVJFIEhFSCBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NyAwNjJDOzs7O047Ozs7OworRkM1MjtBUkFCSUMgTElHQVRVUkUgSEVIIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ3IDA2NDU7Ozs7Tjs7Ozs7CitGQzUzO0FSQUJJQyBMSUdBVFVSRSBIRUggV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NyAwNjQ5Ozs7O047Ozs7OworRkM1NDtBUkFCSUMgTElHQVRVUkUgSEVIIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDcgMDY0QTs7OztOOzs7OzsKK0ZDNTU7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0QSAwNjJDOzs7O047Ozs7OworRkM1NjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NEEgMDYyRDs7OztOOzs7OzsKK0ZDNTc7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEtIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0QSAwNjJFOzs7O047Ozs7OworRkM1ODtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjRBIDA2NDU7Ozs7Tjs7Ozs7CitGQzU5O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0QSAwNjQ5Ozs7O047Ozs7OworRkM1QTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NEEgMDY0QTs7OztOOzs7OzsKK0ZDNUI7QVJBQklDIExJR0FUVVJFIFRIQUwgV0lUSCBTVVBFUlNDUklQVCBBTEVGIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzAgMDY3MDs7OztOOzs7OzsKK0ZDNUM7QVJBQklDIExJR0FUVVJFIFJFSCBXSVRIIFNVUEVSU0NSSVBUIEFMRUYgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzMSAwNjcwOzs7O047Ozs7OworRkM1RDtBUkFCSUMgTElHQVRVUkUgQUxFRiBNQUtTVVJBIFdJVEggU1VQRVJTQ1JJUFQgQUxFRiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ5IDA2NzA7Ozs7Tjs7Ozs7CitGQzVFO0FSQUJJQyBMSUdBVFVSRSBTSEFEREEgV0lUSCBEQU1NQVRBTiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwMDIwIDA2NEMgMDY1MTs7OztOOzs7OzsKK0ZDNUY7QVJBQklDIExJR0FUVVJFIFNIQUREQSBXSVRIIEtBU1JBVEFOIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDAwMjAgMDY0RCAwNjUxOzs7O047Ozs7OworRkM2MDtBUkFCSUMgTElHQVRVUkUgU0hBRERBIFdJVEggRkFUSEEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDAyMCAwNjRFIDA2NTE7Ozs7Tjs7Ozs7CitGQzYxO0FSQUJJQyBMSUdBVFVSRSBTSEFEREEgV0lUSCBEQU1NQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwMDIwIDA2NEYgMDY1MTs7OztOOzs7OzsKK0ZDNjI7QVJBQklDIExJR0FUVVJFIFNIQUREQSBXSVRIIEtBU1JBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDAwMjAgMDY1MCAwNjUxOzs7O047Ozs7OworRkM2MztBUkFCSUMgTElHQVRVUkUgU0hBRERBIFdJVEggU1VQRVJTQ1JJUFQgQUxFRiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwMDIwIDA2NTEgMDY3MDs7OztOOzs7OzsKK0ZDNjQ7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggUkVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjYgMDYzMTs7OztOOzs7OzsKK0ZDNjU7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggWkFJTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI2IDA2MzI7Ozs7Tjs7Ozs7CitGQzY2O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNiAwNjQ1Ozs7O047Ozs7OworRkM2NztBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBOT09OIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjYgMDY0Njs7OztOOzs7OzsKK0ZDNjg7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjYgMDY0OTs7OztOOzs7OzsKK0ZDNjk7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjYgMDY0QTs7OztOOzs7OzsKK0ZDNkE7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIFJFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI4IDA2MzE7Ozs7Tjs7Ozs7CitGQzZCO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBaQUlOIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjggMDYzMjs7OztOOzs7OzsKK0ZDNkM7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyOCAwNjQ1Ozs7O047Ozs7OworRkM2RDtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggTk9PTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI4IDA2NDY7Ozs7Tjs7Ozs7CitGQzZFO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyOCAwNjQ5Ozs7O047Ozs7OworRkM2RjtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjggMDY0QTs7OztOOzs7OzsKK0ZDNzA7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIFJFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJBIDA2MzE7Ozs7Tjs7Ozs7CitGQzcxO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBaQUlOIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkEgMDYzMjs7OztOOzs7OzsKK0ZDNzI7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQSAwNjQ1Ozs7O047Ozs7OworRkM3MztBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggTk9PTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJBIDA2NDY7Ozs7Tjs7Ozs7CitGQzc0O0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQSAwNjQ5Ozs7O047Ozs7OworRkM3NTtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkEgMDY0QTs7OztOOzs7OzsKK0ZDNzY7QVJBQklDIExJR0FUVVJFIFRIRUggV0lUSCBSRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQiAwNjMxOzs7O047Ozs7OworRkM3NztBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIFpBSU4gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQiAwNjMyOzs7O047Ozs7OworRkM3ODtBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQiAwNjQ1Ozs7O047Ozs7OworRkM3OTtBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIE5PT04gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQiAwNjQ2Ozs7O047Ozs7OworRkM3QTtBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJCIDA2NDk7Ozs7Tjs7Ozs7CitGQzdCO0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkIgMDY0QTs7OztOOzs7OzsKK0ZDN0M7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQxIDA2NDk7Ozs7Tjs7Ozs7CitGQzdEO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0MSAwNjRBOzs7O047Ozs7OworRkM3RTtBUkFCSUMgTElHQVRVUkUgUUFGIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDIgMDY0OTs7OztOOzs7OzsKK0ZDN0Y7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQyIDA2NEE7Ozs7Tjs7Ozs7CitGQzgwO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBBTEVGIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDMgMDYyNzs7OztOOzs7OzsKK0ZDODE7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIExBTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQzIDA2NDQ7Ozs7Tjs7Ozs7CitGQzgyO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDMgMDY0NTs7OztOOzs7OzsKK0ZDODM7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQzIDA2NDk7Ozs7Tjs7Ozs7CitGQzg0O0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0MyAwNjRBOzs7O047Ozs7OworRkM4NTtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ0IDA2NDU7Ozs7Tjs7Ozs7CitGQzg2O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NCAwNjQ5Ozs7O047Ozs7OworRkM4NztBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDQgMDY0QTs7OztOOzs7OzsKK0ZDODg7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBBTEVGIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDUgMDYyNzs7OztOOzs7OzsKK0ZDODk7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZDOEE7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBSRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NiAwNjMxOzs7O047Ozs7OworRkM4QjtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIFpBSU4gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NiAwNjMyOzs7O047Ozs7OworRkM4QztBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NiAwNjQ1Ozs7O047Ozs7OworRkM4RDtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIE5PT04gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NiAwNjQ2Ozs7O047Ozs7OworRkM4RTtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ2IDA2NDk7Ozs7Tjs7Ozs7CitGQzhGO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDYgMDY0QTs7OztOOzs7OzsKK0ZDOTA7QVJBQklDIExJR0FUVVJFIEFMRUYgTUFLU1VSQSBXSVRIIFNVUEVSU0NSSVBUIEFMRUYgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0OSAwNjcwOzs7O047Ozs7OworRkM5MTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggUkVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NEEgMDYzMTs7OztOOzs7OzsKK0ZDOTI7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIFpBSU4gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0QSAwNjMyOzs7O047Ozs7OworRkM5MztBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjRBIDA2NDU7Ozs7Tjs7Ozs7CitGQzk0O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBOT09OIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NEEgMDY0Njs7OztOOzs7OzsKK0ZDOTU7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjRBIDA2NDk7Ozs7Tjs7Ozs7CitGQzk2O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0QSAwNjRBOzs7O047Ozs7OworRkM5NztBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjI2IDA2MkM7Ozs7Tjs7Ozs7CitGQzk4O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyNiAwNjJEOzs7O047Ozs7OworRkM5OTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjI2IDA2MkU7Ozs7Tjs7Ozs7CitGQzlBO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MjYgMDY0NTs7OztOOzs7OzsKK0ZDOUI7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggSEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjI2IDA2NDc7Ozs7Tjs7Ozs7CitGQzlDO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjI4IDA2MkM7Ozs7Tjs7Ozs7CitGQzlEO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MjggMDYyRDs7OztOOzs7OzsKK0ZDOUU7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MjggMDYyRTs7OztOOzs7OzsKK0ZDOUY7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MjggMDY0NTs7OztOOzs7OzsKK0ZDQTA7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEhFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyOCAwNjQ3Ozs7O047Ozs7OworRkNBMTtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQSAwNjJDOzs7O047Ozs7OworRkNBMjtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJBIDA2MkQ7Ozs7Tjs7Ozs7CitGQ0EzO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJBIDA2MkU7Ozs7Tjs7Ozs7CitGQ0E0O0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJBIDA2NDU7Ozs7Tjs7Ozs7CitGQ0E1O0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBIRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkEgMDY0Nzs7OztOOzs7OzsKK0ZDQTY7QVJBQklDIExJR0FUVVJFIFRIRUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJCIDA2NDU7Ozs7Tjs7Ozs7CitGQ0E3O0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJDIDA2MkQ7Ozs7Tjs7Ozs7CitGQ0E4O0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQyAwNjQ1Ozs7O047Ozs7OworRkNBOTtBUkFCSUMgTElHQVRVUkUgSEFIIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyRCAwNjJDOzs7O047Ozs7OworRkNBQTtBUkFCSUMgTElHQVRVUkUgSEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyRCAwNjQ1Ozs7O047Ozs7OworRkNBQjtBUkFCSUMgTElHQVRVUkUgS0hBSCBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkUgMDYyQzs7OztOOzs7OzsKK0ZDQUM7QVJBQklDIExJR0FUVVJFIEtIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJFIDA2NDU7Ozs7Tjs7Ozs7CitGQ0FEO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzMyAwNjJDOzs7O047Ozs7OworRkNBRTtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzMyAwNjJEOzs7O047Ozs7OworRkNBRjtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzMgMDYyRTs7OztOOzs7OzsKK0ZDQjA7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjMzIDA2NDU7Ozs7Tjs7Ozs7CitGQ0IxO0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzUgMDYyRDs7OztOOzs7OzsKK0ZDQjI7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzUgMDYyRTs7OztOOzs7OzsKK0ZDQjM7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzUgMDY0NTs7OztOOzs7OzsKK0ZDQjQ7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzYgMDYyQzs7OztOOzs7OzsKK0ZDQjU7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNiAwNjJEOzs7O047Ozs7OworRkNCNjtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNiAwNjJFOzs7O047Ozs7OworRkNCNztBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNiAwNjQ1Ozs7O047Ozs7OworRkNCODtBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM3IDA2MkQ7Ozs7Tjs7Ozs7CitGQ0I5O0FSQUJJQyBMSUdBVFVSRSBaQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM4IDA2NDU7Ozs7Tjs7Ozs7CitGQ0JBO0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM5IDA2MkM7Ozs7Tjs7Ozs7CitGQ0JCO0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM5IDA2NDU7Ozs7Tjs7Ozs7CitGQ0JDO0FSQUJJQyBMSUdBVFVSRSBHSEFJTiBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2M0EgMDYyQzs7OztOOzs7OzsKK0ZDQkQ7QVJBQklDIExJR0FUVVJFIEdIQUlOIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzQSAwNjQ1Ozs7O047Ozs7OworRkNCRTtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0MSAwNjJDOzs7O047Ozs7OworRkNCRjtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQxIDA2MkQ7Ozs7Tjs7Ozs7CitGQ0MwO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQxIDA2MkU7Ozs7Tjs7Ozs7CitGQ0MxO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQxIDA2NDU7Ozs7Tjs7Ozs7CitGQ0MyO0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDIgMDYyRDs7OztOOzs7OzsKK0ZDQzM7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDIgMDY0NTs7OztOOzs7OzsKK0ZDQzQ7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDMgMDYyQzs7OztOOzs7OzsKK0ZDQzU7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0MyAwNjJEOzs7O047Ozs7OworRkNDNjtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0MyAwNjJFOzs7O047Ozs7OworRkNDNztBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggTEFNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQzIDA2NDQ7Ozs7Tjs7Ozs7CitGQ0M4O0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQzIDA2NDU7Ozs7Tjs7Ozs7CitGQ0M5O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ0IDA2MkM7Ozs7Tjs7Ozs7CitGQ0NBO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDQgMDYyRDs7OztOOzs7OzsKK0ZDQ0I7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDQgMDYyRTs7OztOOzs7OzsKK0ZDQ0M7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDQgMDY0NTs7OztOOzs7OzsKK0ZDQ0Q7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEhFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NCAwNjQ3Ozs7O047Ozs7OworRkNDRTtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDUgMDYyQzs7OztOOzs7OzsKK0ZDQ0Y7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDUgMDYyRDs7OztOOzs7OzsKK0ZDRDA7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ1IDA2MkU7Ozs7Tjs7Ozs7CitGQ0QxO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NSAwNjQ1Ozs7O047Ozs7OworRkNEMjtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDYgMDYyQzs7OztOOzs7OzsKK0ZDRDM7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDYgMDYyRDs7OztOOzs7OzsKK0ZDRDQ7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ2IDA2MkU7Ozs7Tjs7Ozs7CitGQ0Q1O0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NiAwNjQ1Ozs7O047Ozs7OworRkNENjtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEhFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NiAwNjQ3Ozs7O047Ozs7OworRkNENztBUkFCSUMgTElHQVRVUkUgSEVIIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NyAwNjJDOzs7O047Ozs7OworRkNEODtBUkFCSUMgTElHQVRVUkUgSEVIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NyAwNjQ1Ozs7O047Ozs7OworRkNEOTtBUkFCSUMgTElHQVRVUkUgSEVIIFdJVEggU1VQRVJTQ1JJUFQgQUxFRiBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NyAwNjcwOzs7O047Ozs7OworRkNEQTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0QSAwNjJDOzs7O047Ozs7OworRkNEQjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjRBIDA2MkQ7Ozs7Tjs7Ozs7CitGQ0RDO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjRBIDA2MkU7Ozs7Tjs7Ozs7CitGQ0REO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjRBIDA2NDU7Ozs7Tjs7Ozs7CitGQ0RFO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NEEgMDY0Nzs7OztOOzs7OzsKK0ZDREY7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MjYgMDY0NTs7OztOOzs7OzsKK0ZDRTA7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYyNiAwNjQ3Ozs7O047Ozs7OworRkNFMTtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MjggMDY0NTs7OztOOzs7OzsKK0ZDRTI7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEhFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MjggMDY0Nzs7OztOOzs7OzsKK0ZDRTM7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIE1FRU0gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjJBIDA2NDU7Ozs7Tjs7Ozs7CitGQ0U0O0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBIRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjJBIDA2NDc7Ozs7Tjs7Ozs7CitGQ0U1O0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MkIgMDY0NTs7OztOOzs7OzsKK0ZDRTY7QVJBQklDIExJR0FUVVJFIFRIRUggV0lUSCBIRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjJCIDA2NDc7Ozs7Tjs7Ozs7CitGQ0U3O0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MzMgMDY0NTs7OztOOzs7OzsKK0ZDRTg7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBIRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjMzIDA2NDc7Ozs7Tjs7Ozs7CitGQ0U5O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIE1FRU0gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjM0IDA2NDU7Ozs7Tjs7Ozs7CitGQ0VBO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEhFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MzQgMDY0Nzs7OztOOzs7OzsKK0ZDRUI7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIExBTSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDMgMDY0NDs7OztOOzs7OzsKK0ZDRUM7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIE1FRU0gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQzIDA2NDU7Ozs7Tjs7Ozs7CitGQ0VEO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0NCAwNjQ1Ozs7O047Ozs7OworRkNFRTtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIE1FRU0gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQ2IDA2NDU7Ozs7Tjs7Ozs7CitGQ0VGO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0NiAwNjQ3Ozs7O047Ozs7OworRkNGMDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NEEgMDY0NTs7OztOOzs7OzsKK0ZDRjE7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NEEgMDY0Nzs7OztOOzs7OzsKK0ZDRjI7QVJBQklDIExJR0FUVVJFIFNIQUREQSBXSVRIIEZBVEhBIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0MCAwNjRFIDA2NTE7Ozs7Tjs7Ozs7CitGQ0YzO0FSQUJJQyBMSUdBVFVSRSBTSEFEREEgV0lUSCBEQU1NQSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDAgMDY0RiAwNjUxOzs7O047Ozs7OworRkNGNDtBUkFCSUMgTElHQVRVUkUgU0hBRERBIFdJVEggS0FTUkEgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQwIDA2NTAgMDY1MTs7OztOOzs7OzsKK0ZDRjU7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM3IDA2NDk7Ozs7Tjs7Ozs7CitGQ0Y2O0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNyAwNjRBOzs7O047Ozs7OworRkNGNztBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzkgMDY0OTs7OztOOzs7OzsKK0ZDRjg7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM5IDA2NEE7Ozs7Tjs7Ozs7CitGQ0Y5O0FSQUJJQyBMSUdBVFVSRSBHSEFJTiBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjNBIDA2NDk7Ozs7Tjs7Ozs7CitGQ0ZBO0FSQUJJQyBMSUdBVFVSRSBHSEFJTiBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjNBIDA2NEE7Ozs7Tjs7Ozs7CitGQ0ZCO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzMgMDY0OTs7OztOOzs7OzsKK0ZDRkM7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzMyAwNjRBOzs7O047Ozs7OworRkNGRDtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNCAwNjQ5Ozs7O047Ozs7OworRkNGRTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNCAwNjRBOzs7O047Ozs7OworRkNGRjtBUkFCSUMgTElHQVRVUkUgSEFIIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkQgMDY0OTs7OztOOzs7OzsKK0ZEMDA7QVJBQklDIExJR0FUVVJFIEhBSCBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJEIDA2NEE7Ozs7Tjs7Ozs7CitGRDAxO0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkMgMDY0OTs7OztOOzs7OzsKK0ZEMDI7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyQyAwNjRBOzs7O047Ozs7OworRkQwMztBUkFCSUMgTElHQVRVUkUgS0hBSCBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJFIDA2NDk7Ozs7Tjs7Ozs7CitGRDA0O0FSQUJJQyBMSUdBVFVSRSBLSEFIIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkUgMDY0QTs7OztOOzs7OzsKK0ZEMDU7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM1IDA2NDk7Ozs7Tjs7Ozs7CitGRDA2O0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNSAwNjRBOzs7O047Ozs7OworRkQwNztBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzYgMDY0OTs7OztOOzs7OzsKK0ZEMDg7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM2IDA2NEE7Ozs7Tjs7Ozs7CitGRDA5O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNCAwNjJDOzs7O047Ozs7OworRkQwQTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNCAwNjJEOzs7O047Ozs7OworRkQwQjtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBLSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzQgMDYyRTs7OztOOzs7OzsKK0ZEMEM7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM0IDA2NDU7Ozs7Tjs7Ozs7CitGRDBEO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIFJFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM0IDA2MzE7Ozs7Tjs7Ozs7CitGRDBFO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggUkVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzMgMDYzMTs7OztOOzs7OzsKK0ZEMEY7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIFJFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM1IDA2MzE7Ozs7Tjs7Ozs7CitGRDEwO0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBSRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNiAwNjMxOzs7O047Ozs7OworRkQxMTtBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzcgMDY0OTs7OztOOzs7OzsKK0ZEMTI7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM3IDA2NEE7Ozs7Tjs7Ozs7CitGRDEzO0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzOSAwNjQ5Ozs7O047Ozs7OworRkQxNDtBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzkgMDY0QTs7OztOOzs7OzsKK0ZEMTU7QVJBQklDIExJR0FUVVJFIEdIQUlOIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2M0EgMDY0OTs7OztOOzs7OzsKK0ZEMTY7QVJBQklDIExJR0FUVVJFIEdIQUlOIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2M0EgMDY0QTs7OztOOzs7OzsKK0ZEMTc7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzMyAwNjQ5Ozs7O047Ozs7OworRkQxODtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjMzIDA2NEE7Ozs7Tjs7Ozs7CitGRDE5O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM0IDA2NDk7Ozs7Tjs7Ozs7CitGRDFBO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM0IDA2NEE7Ozs7Tjs7Ozs7CitGRDFCO0FSQUJJQyBMSUdBVFVSRSBIQUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyRCAwNjQ5Ozs7O047Ozs7OworRkQxQztBUkFCSUMgTElHQVRVUkUgSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkQgMDY0QTs7OztOOzs7OzsKK0ZEMUQ7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQyAwNjQ5Ozs7O047Ozs7OworRkQxRTtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJDIDA2NEE7Ozs7Tjs7Ozs7CitGRDFGO0FSQUJJQyBMSUdBVFVSRSBLSEFIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkUgMDY0OTs7OztOOzs7OzsKK0ZEMjA7QVJBQklDIExJR0FUVVJFIEtIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyRSAwNjRBOzs7O047Ozs7OworRkQyMTtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzUgMDY0OTs7OztOOzs7OzsKK0ZEMjI7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM1IDA2NEE7Ozs7Tjs7Ozs7CitGRDIzO0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNiAwNjQ5Ozs7O047Ozs7OworRkQyNDtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzYgMDY0QTs7OztOOzs7OzsKK0ZEMjU7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSkVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM0IDA2MkM7Ozs7Tjs7Ozs7CitGRDI2O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEhBSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM0IDA2MkQ7Ozs7Tjs7Ozs7CitGRDI3O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEtIQUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNCAwNjJFOzs7O047Ozs7OworRkQyODtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzQgMDY0NTs7OztOOzs7OzsKK0ZEMjk7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggUkVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzQgMDYzMTs7OztOOzs7OzsKK0ZEMkE7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBSRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzMyAwNjMxOzs7O047Ozs7OworRkQyQjtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggUkVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzUgMDYzMTs7OztOOzs7OzsKK0ZEMkM7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIFJFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM2IDA2MzE7Ozs7Tjs7Ozs7CitGRDJEO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzQgMDYyQzs7OztOOzs7OzsKK0ZEMkU7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM0IDA2MkQ7Ozs7Tjs7Ozs7CitGRDJGO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzQgMDYyRTs7OztOOzs7OzsKK0ZEMzA7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNCAwNjQ1Ozs7O047Ozs7OworRkQzMTtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEhFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzMyAwNjQ3Ozs7O047Ozs7OworRkQzMjtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBIRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzQgMDY0Nzs7OztOOzs7OzsKK0ZEMzM7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzcgMDY0NTs7OztOOzs7OzsKK0ZEMzQ7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBKRUVNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzMyAwNjJDOzs7O047Ozs7OworRkQzNTtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEhBSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MzMgMDYyRDs7OztOOzs7OzsKK0ZEMzY7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBLSEFIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzMyAwNjJFOzs7O047Ozs7OworRkQzNztBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBKRUVNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzNCAwNjJDOzs7O047Ozs7OworRkQzODtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBIQUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjM0IDA2MkQ7Ozs7Tjs7Ozs7CitGRDM5O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEtIQUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjM0IDA2MkU7Ozs7Tjs7Ozs7CitGRDNBO0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzNyAwNjQ1Ozs7O047Ozs7OworRkQzQjtBUkFCSUMgTElHQVRVUkUgWkFIIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MzggMDY0NTs7OztOOzs7OzsKK0ZEM0M7QVJBQklDIExJR0FUVVJFIEFMRUYgV0lUSCBGQVRIQVRBTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI3IDA2NEI7Ozs7Tjs7Ozs7CitGRDNEO0FSQUJJQyBMSUdBVFVSRSBBTEVGIFdJVEggRkFUSEFUQU4gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyNyAwNjRCOzs7O047Ozs7OworRkQzRTtPUk5BVEUgTEVGVCBQQVJFTlRIRVNJUztQczswO09OOzs7OztOOzs7OzsKK0ZEM0Y7T1JOQVRFIFJJR0hUIFBBUkVOVEhFU0lTO1BlOzA7T047Ozs7O047Ozs7OworRkQ1MDtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggSkVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkEgMDYyQyAwNjQ1Ozs7O047Ozs7OworRkQ1MTtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggSEFIIFdJVEggSkVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJBIDA2MkQgMDYyQzs7OztOOzs7OzsKK0ZENTI7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEhBSCBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkEgMDYyRCAwNjJDOzs7O047Ozs7OworRkQ1MztBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggSEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQSAwNjJEIDA2NDU7Ozs7Tjs7Ozs7CitGRDU0O0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBLSEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQSAwNjJFIDA2NDU7Ozs7Tjs7Ozs7CitGRDU1O0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBNRUVNIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQSAwNjQ1IDA2MkM7Ozs7Tjs7Ozs7CitGRDU2O0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBNRUVNIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJBIDA2NDUgMDYyRDs7OztOOzs7OzsKK0ZENTc7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIE1FRU0gV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJBIDA2NDUgMDYyRTs7OztOOzs7OzsKK0ZENTg7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBNRUVNIFdJVEggSEFIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkMgMDY0NSAwNjJEOzs7O047Ozs7OworRkQ1OTtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIE1FRU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkMgMDY0NSAwNjJEOzs7O047Ozs7OworRkQ1QTtBUkFCSUMgTElHQVRVUkUgSEFIIFdJVEggTUVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJEIDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZENUI7QVJBQklDIExJR0FUVVJFIEhBSCBXSVRIIE1FRU0gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyRCAwNjQ1IDA2NDk7Ozs7Tjs7Ozs7CitGRDVDO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggSEFIIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzMyAwNjJEIDA2MkM7Ozs7Tjs7Ozs7CitGRDVEO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggSkVFTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzMyAwNjJDIDA2MkQ7Ozs7Tjs7Ozs7CitGRDVFO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggSkVFTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjMzIDA2MkMgMDY0OTs7OztOOzs7OzsKK0ZENUY7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBNRUVNIFdJVEggSEFIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzMgMDY0NSAwNjJEOzs7O047Ozs7OworRkQ2MDtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIE1FRU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzMgMDY0NSAwNjJEOzs7O047Ozs7OworRkQ2MTtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIE1FRU0gV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjMzIDA2NDUgMDYyQzs7OztOOzs7OzsKK0ZENjI7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBNRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjMzIDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZENjM7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBNRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzMyAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGRDY0O0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBIQUggV0lUSCBIQUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNSAwNjJEIDA2MkQ7Ozs7Tjs7Ozs7CitGRDY1O0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBIQUggV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzUgMDYyRCAwNjJEOzs7O047Ozs7OworRkQ2NjtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggTUVFTSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNSAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGRDY3O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEhBSCBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNCAwNjJEIDA2NDU7Ozs7Tjs7Ozs7CitGRDY4O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEhBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzQgMDYyRCAwNjQ1Ozs7O047Ozs7OworRkQ2OTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBKRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzQgMDYyQyAwNjRBOzs7O047Ozs7OworRkQ2QTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBNRUVNIFdJVEggS0hBSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM0IDA2NDUgMDYyRTs7OztOOzs7OzsKK0ZENkI7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggTUVFTSBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzQgMDY0NSAwNjJFOzs7O047Ozs7OworRkQ2QztBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBNRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM0IDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZENkQ7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggTUVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzQgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ2RTtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggSEFIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzYgMDYyRCAwNjQ5Ozs7O047Ozs7OworRkQ2RjtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggS0hBSCBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNiAwNjJFIDA2NDU7Ozs7Tjs7Ozs7CitGRDcwO0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBLSEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNiAwNjJFIDA2NDU7Ozs7Tjs7Ozs7CitGRDcxO0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBNRUVNIFdJVEggSEFIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzcgMDY0NSAwNjJEOzs7O047Ozs7OworRkQ3MjtBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggTUVFTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNyAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGRDczO0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBNRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNyAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGRDc0O0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzcgMDY0NSAwNjRBOzs7O047Ozs7OworRkQ3NTtBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggSkVFTSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzOSAwNjJDIDA2NDU7Ozs7Tjs7Ozs7CitGRDc2O0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBNRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM5IDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZENzc7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIE1FRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM5IDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZENzg7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIE1FRU0gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzOSAwNjQ1IDA2NDk7Ozs7Tjs7Ozs7CitGRDc5O0FSQUJJQyBMSUdBVFVSRSBHSEFJTiBXSVRIIE1FRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2M0EgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ3QTtBUkFCSUMgTElHQVRVUkUgR0hBSU4gV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2M0EgMDY0NSAwNjRBOzs7O047Ozs7OworRkQ3QjtBUkFCSUMgTElHQVRVUkUgR0hBSU4gV0lUSCBNRUVNIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2M0EgMDY0NSAwNjQ5Ozs7O047Ozs7OworRkQ3QztBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggS0hBSCBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0MSAwNjJFIDA2NDU7Ozs7Tjs7Ozs7CitGRDdEO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBLSEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0MSAwNjJFIDA2NDU7Ozs7Tjs7Ozs7CitGRDdFO0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBNRUVNIFdJVEggSEFIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDIgMDY0NSAwNjJEOzs7O047Ozs7OworRkQ3RjtBUkFCSUMgTElHQVRVUkUgUUFGIFdJVEggTUVFTSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0MiAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGRDgwO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBIQUggV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDQgMDYyRCAwNjQ1Ozs7O047Ozs7OworRkQ4MTtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDQgMDYyRCAwNjRBOzs7O047Ozs7OworRkQ4MjtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSEFIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDQgMDYyRCAwNjQ5Ozs7O047Ozs7OworRkQ4MztBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSkVFTSBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDQgMDYyQyAwNjJDOzs7O047Ozs7OworRkQ4NDtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSkVFTSBXSVRIIEpFRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NCAwNjJDIDA2MkM7Ozs7Tjs7Ozs7CitGRDg1O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBLSEFIIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ0IDA2MkUgMDY0NTs7OztOOzs7OzsKK0ZEODY7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEtIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ0IDA2MkUgMDY0NTs7OztOOzs7OzsKK0ZEODc7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIE1FRU0gV0lUSCBIQUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NCAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGRDg4O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBNRUVNIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ0IDA2NDUgMDYyRDs7OztOOzs7OzsKK0ZEODk7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBIQUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ1IDA2MkQgMDYyQzs7OztOOzs7OzsKK0ZEOEE7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ1IDA2MkQgMDY0NTs7OztOOzs7OzsKK0ZEOEI7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NSAwNjJEIDA2NEE7Ozs7Tjs7Ozs7CitGRDhDO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggSkVFTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NSAwNjJDIDA2MkQ7Ozs7Tjs7Ozs7CitGRDhEO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggSkVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDUgMDYyQyAwNjQ1Ozs7O047Ozs7OworRkQ4RTtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEtIQUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ1IDA2MkUgMDYyQzs7OztOOzs7OzsKK0ZEOEY7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBLSEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NSAwNjJFIDA2NDU7Ozs7Tjs7Ozs7CitGRDkyO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggSkVFTSBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDUgMDYyQyAwNjJFOzs7O047Ozs7OworRkQ5MztBUkFCSUMgTElHQVRVUkUgSEVIIFdJVEggTUVFTSBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDcgMDY0NSAwNjJDOzs7O047Ozs7OworRkQ5NDtBUkFCSUMgTElHQVRVUkUgSEVIIFdJVEggTUVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDcgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ5NTtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEhBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDYgMDYyRCAwNjQ1Ozs7O047Ozs7OworRkQ5NjtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEhBSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ2IDA2MkQgMDY0OTs7OztOOzs7OzsKK0ZEOTc7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBKRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ2IDA2MkMgMDY0NTs7OztOOzs7OzsKK0ZEOTg7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBKRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NiAwNjJDIDA2NDU7Ozs7Tjs7Ozs7CitGRDk5O0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSkVFTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ2IDA2MkMgMDY0OTs7OztOOzs7OzsKK0ZEOUE7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDYgMDY0NSAwNjRBOzs7O047Ozs7OworRkQ5QjtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIE1FRU0gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NiAwNjQ1IDA2NDk7Ozs7Tjs7Ozs7CitGRDlDO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBNRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjRBIDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZEOUQ7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIE1FRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjRBIDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZEOUU7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEtIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyOCAwNjJFIDA2NEE7Ozs7Tjs7Ozs7CitGRDlGO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBKRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkEgMDYyQyAwNjRBOzs7O047Ozs7OworRkRBMDtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggSkVFTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJBIDA2MkMgMDY0OTs7OztOOzs7OzsKK0ZEQTE7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEtIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQSAwNjJFIDA2NEE7Ozs7Tjs7Ozs7CitGREEyO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBLSEFIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkEgMDYyRSAwNjQ5Ozs7O047Ozs7OworRkRBMztBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggTUVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJBIDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZEQTQ7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIE1FRU0gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQSAwNjQ1IDA2NDk7Ozs7Tjs7Ozs7CitGREE1O0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggTUVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJDIDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZEQTY7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBIQUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQyAwNjJEIDA2NDk7Ozs7Tjs7Ozs7CitGREE3O0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggTUVFTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJDIDA2NDUgMDY0OTs7OztOOzs7OzsKK0ZEQTg7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBLSEFIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzMgMDYyRSAwNjQ5Ozs7O047Ozs7OworRkRBOTtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzUgMDYyRCAwNjRBOzs7O047Ozs7OworRkRBQTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNCAwNjJEIDA2NEE7Ozs7Tjs7Ozs7CitGREFCO0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNiAwNjJEIDA2NEE7Ozs7Tjs7Ozs7CitGREFDO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBKRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDQgMDYyQyAwNjRBOzs7O047Ozs7OworRkRBRDtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggTUVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ0IDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZEQUU7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjRBIDA2MkQgMDY0QTs7OztOOzs7OzsKK0ZEQUY7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEpFRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0QSAwNjJDIDA2NEE7Ozs7Tjs7Ozs7CitGREIwO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NEEgMDY0NSAwNjRBOzs7O047Ozs7OworRkRCMTtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NSAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGREIyO0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDIgMDY0NSAwNjRBOzs7O047Ozs7OworRkRCMztBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEhBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ2IDA2MkQgMDY0QTs7OztOOzs7OzsKK0ZEQjQ7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIE1FRU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDIgMDY0NSAwNjJEOzs7O047Ozs7OworRkRCNTtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NCAwNjJEIDA2NDU7Ozs7Tjs7Ozs7CitGREI2O0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzkgMDY0NSAwNjRBOzs7O047Ozs7OworRkRCNztBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggTUVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQzIDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZEQjg7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBKRUVNIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ2IDA2MkMgMDYyRDs7OztOOzs7OzsKK0ZEQjk7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBLSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDUgMDYyRSAwNjRBOzs7O047Ozs7OworRkRCQTtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSkVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDQgMDYyQyAwNjQ1Ozs7O047Ozs7OworRkRCQjtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggTUVFTSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0MyAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGREJDO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBKRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ0IDA2MkMgMDY0NTs7OztOOzs7OzsKK0ZEQkQ7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBKRUVNIFdJVEggSEFIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDYgMDYyQyAwNjJEOzs7O047Ozs7OworRkRCRTtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIEhBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJDIDA2MkQgMDY0QTs7OztOOzs7OzsKK0ZEQkY7QVJBQklDIExJR0FUVVJFIEhBSCBXSVRIIEpFRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyRCAwNjJDIDA2NEE7Ozs7Tjs7Ozs7CitGREMwO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggSkVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ1IDA2MkMgMDY0QTs7OztOOzs7OzsKK0ZEQzE7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0MSAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGREMyO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyOCAwNjJEIDA2NEE7Ozs7Tjs7Ozs7CitGREMzO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBNRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0MyAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGREM0O0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBKRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzOSAwNjJDIDA2NDU7Ozs7Tjs7Ozs7CitGREM1O0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBNRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNSAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGREM2O0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggS0hBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjMzIDA2MkUgMDY0QTs7OztOOzs7OzsKK0ZEQzc7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBKRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDYgMDYyQyAwNjRBOzs7O047Ozs7OworRkRGMDtBUkFCSUMgTElHQVRVUkUgU0FMTEEgVVNFRCBBUyBLT1JBTklDIFNUT1AgU0lHTiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM1IDA2NDQgMDZEMjs7OztOOzs7OzsKK0ZERjE7QVJBQklDIExJR0FUVVJFIFFBTEEgVVNFRCBBUyBLT1JBTklDIFNUT1AgU0lHTiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQyIDA2NDQgMDZEMjs7OztOOzs7OzsKK0ZERjI7QVJBQklDIExJR0FUVVJFIEFMTEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjcgMDY0NCAwNjQ0IDA2NDc7Ozs7Tjs7Ozs7CitGREYzO0FSQUJJQyBMSUdBVFVSRSBBS0JBUiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI3IDA2NDMgMDYyOCAwNjMxOzs7O047Ozs7OworRkRGNDtBUkFCSUMgTElHQVRVUkUgTU9IQU1NQUQgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NSAwNjJEIDA2NDUgMDYyRjs7OztOOzs7OzsKK0ZERjU7QVJBQklDIExJR0FUVVJFIFNBTEFNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzUgMDY0NCAwNjM5IDA2NDU7Ozs7Tjs7Ozs7CitGREY2O0FSQUJJQyBMSUdBVFVSRSBSQVNPVUwgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzMSAwNjMzIDA2NDggMDY0NDs7OztOOzs7OzsKK0ZERjc7QVJBQklDIExJR0FUVVJFIEFMQVlIRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM5IDA2NDQgMDY0QSAwNjQ3Ozs7O047Ozs7OworRkRGODtBUkFCSUMgTElHQVRVUkUgV0FTQUxMQU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0OCAwNjMzIDA2NDQgMDY0NTs7OztOOzs7OzsKK0ZERjk7QVJBQklDIExJR0FUVVJFIFNBTExBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzUgMDY0NCAwNjQ5Ozs7O047Ozs7OworRkRGQTtBUkFCSUMgTElHQVRVUkUgU0FMTEFMTEFIT1UgQUxBWUhFIFdBU0FMTEFNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM1IDA2NDQgMDY0OSAwMDIwIDA2MjcgMDY0NCAwNjQ0IDA2NDcgMDAyMCAwNjM5IDA2NDQgMDY0QSAwNjQ3IDAwMjAgMDY0OCAwNjMzIDA2NDQgMDY0NTs7OztOO0FSQUJJQyBMRVRURVIgU0FMTEFMTEFIT1UgQUxBWUhFIFdBU0FMTEFNOzs7OworRkRGQjtBUkFCSUMgTElHQVRVUkUgSkFMTEFKQUxBTE9VSE9VO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJDIDA2NDQgMDAyMCAwNjJDIDA2NDQgMDYyNyAwNjQ0IDA2NDc7Ozs7TjtBUkFCSUMgTEVUVEVSIEpBTExBSkFMQUxPVUhPVTs7OzsKK0ZFMjA7Q09NQklOSU5HIExJR0FUVVJFIExFRlQgSEFMRjtNbjsyMzA7TlNNOzs7OztOOzs7OzsKK0ZFMjE7Q09NQklOSU5HIExJR0FUVVJFIFJJR0hUIEhBTEY7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CitGRTIyO0NPTUJJTklORyBET1VCTEUgVElMREUgTEVGVCBIQUxGO01uOzIzMDtOU007Ozs7O047Ozs7OworRkUyMztDT01CSU5JTkcgRE9VQkxFIFRJTERFIFJJR0hUIEhBTEY7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CitGRTMwO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBUV08gRE9UIExFQURFUjtQbzswO09OOzx2ZXJ0aWNhbD4gMjAyNTs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBUV08gRE9UIExFQURFUjs7OzsKK0ZFMzE7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIEVNIERBU0g7UGQ7MDtPTjs8dmVydGljYWw+IDIwMTQ7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgRU0gREFTSDs7OzsKK0ZFMzI7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIEVOIERBU0g7UGQ7MDtPTjs8dmVydGljYWw+IDIwMTM7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgRU4gREFTSDs7OzsKK0ZFMzM7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIExPVyBMSU5FO1BjOzA7T047PHZlcnRpY2FsPiAwMDVGOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIFNQQUNJTkcgVU5ERVJTQ09SRTs7OzsKK0ZFMzQ7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIFdBVlkgTE9XIExJTkU7UGM7MDtPTjs8dmVydGljYWw+IDAwNUY7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgU1BBQ0lORyBXQVZZIFVOREVSU0NPUkU7Ozs7CitGRTM1O1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBMRUZUIFBBUkVOVEhFU0lTO1BzOzA7T047PHZlcnRpY2FsPiAwMDI4Ozs7O047R0xZUEggRk9SIFZFUlRJQ0FMIE9QRU5JTkcgUEFSRU5USEVTSVM7Ozs7CitGRTM2O1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBSSUdIVCBQQVJFTlRIRVNJUztQZTswO09OOzx2ZXJ0aWNhbD4gMDAyOTs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBDTE9TSU5HIFBBUkVOVEhFU0lTOzs7OworRkUzNztQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgTEVGVCBDVVJMWSBCUkFDS0VUO1BzOzA7T047PHZlcnRpY2FsPiAwMDdCOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIE9QRU5JTkcgQ1VSTFkgQlJBQ0tFVDs7OzsKK0ZFMzg7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIFJJR0hUIENVUkxZIEJSQUNLRVQ7UGU7MDtPTjs8dmVydGljYWw+IDAwN0Q7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgQ0xPU0lORyBDVVJMWSBCUkFDS0VUOzs7OworRkUzOTtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgTEVGVCBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUO1BzOzA7T047PHZlcnRpY2FsPiAzMDE0Ozs7O047R0xZUEggRk9SIFZFUlRJQ0FMIE9QRU5JTkcgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDs7OzsKK0ZFM0E7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIFJJR0hUIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7UGU7MDtPTjs8dmVydGljYWw+IDMwMTU7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgQ0xPU0lORyBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUOzs7OworRkUzQjtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgTEVGVCBCTEFDSyBMRU5USUNVTEFSIEJSQUNLRVQ7UHM7MDtPTjs8dmVydGljYWw+IDMwMTA7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgT1BFTklORyBCTEFDSyBMRU5USUNVTEFSIEJSQUNLRVQ7Ozs7CitGRTNDO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBSSUdIVCBCTEFDSyBMRU5USUNVTEFSIEJSQUNLRVQ7UGU7MDtPTjs8dmVydGljYWw+IDMwMTE7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgQ0xPU0lORyBCTEFDSyBMRU5USUNVTEFSIEJSQUNLRVQ7Ozs7CitGRTNEO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBMRUZUIERPVUJMRSBBTkdMRSBCUkFDS0VUO1BzOzA7T047PHZlcnRpY2FsPiAzMDBBOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIE9QRU5JTkcgRE9VQkxFIEFOR0xFIEJSQUNLRVQ7Ozs7CitGRTNFO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBSSUdIVCBET1VCTEUgQU5HTEUgQlJBQ0tFVDtQZTswO09OOzx2ZXJ0aWNhbD4gMzAwQjs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBDTE9TSU5HIERPVUJMRSBBTkdMRSBCUkFDS0VUOzs7OworRkUzRjtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgTEVGVCBBTkdMRSBCUkFDS0VUO1BzOzA7T047PHZlcnRpY2FsPiAzMDA4Ozs7O047R0xZUEggRk9SIFZFUlRJQ0FMIE9QRU5JTkcgQU5HTEUgQlJBQ0tFVDs7OzsKK0ZFNDA7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIFJJR0hUIEFOR0xFIEJSQUNLRVQ7UGU7MDtPTjs8dmVydGljYWw+IDMwMDk7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgQ0xPU0lORyBBTkdMRSBCUkFDS0VUOzs7OworRkU0MTtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgTEVGVCBDT1JORVIgQlJBQ0tFVDtQczswO09OOzx2ZXJ0aWNhbD4gMzAwQzs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBPUEVOSU5HIENPUk5FUiBCUkFDS0VUOzs7OworRkU0MjtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgUklHSFQgQ09STkVSIEJSQUNLRVQ7UGU7MDtPTjs8dmVydGljYWw+IDMwMEQ7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgQ0xPU0lORyBDT1JORVIgQlJBQ0tFVDs7OzsKK0ZFNDM7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIExFRlQgV0hJVEUgQ09STkVSIEJSQUNLRVQ7UHM7MDtPTjs8dmVydGljYWw+IDMwMEU7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgT1BFTklORyBXSElURSBDT1JORVIgQlJBQ0tFVDs7OzsKK0ZFNDQ7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIFJJR0hUIFdISVRFIENPUk5FUiBCUkFDS0VUO1BlOzA7T047PHZlcnRpY2FsPiAzMDBGOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIENMT1NJTkcgV0hJVEUgQ09STkVSIEJSQUNLRVQ7Ozs7CitGRTQ5O0RBU0hFRCBPVkVSTElORTtQbzswO09OOzxjb21wYXQ+IDIwM0U7Ozs7TjtTUEFDSU5HIERBU0hFRCBPVkVSU0NPUkU7Ozs7CitGRTRBO0NFTlRSRUxJTkUgT1ZFUkxJTkU7UG87MDtPTjs8Y29tcGF0PiAyMDNFOzs7O047U1BBQ0lORyBDRU5URVJMSU5FIE9WRVJTQ09SRTs7OzsKK0ZFNEI7V0FWWSBPVkVSTElORTtQbzswO09OOzxjb21wYXQ+IDIwM0U7Ozs7TjtTUEFDSU5HIFdBVlkgT1ZFUlNDT1JFOzs7OworRkU0QztET1VCTEUgV0FWWSBPVkVSTElORTtQbzswO09OOzxjb21wYXQ+IDIwM0U7Ozs7TjtTUEFDSU5HIERPVUJMRSBXQVZZIE9WRVJTQ09SRTs7OzsKK0ZFNEQ7REFTSEVEIExPVyBMSU5FO1BjOzA7T047PGNvbXBhdD4gMDA1Rjs7OztOO1NQQUNJTkcgREFTSEVEIFVOREVSU0NPUkU7Ozs7CitGRTRFO0NFTlRSRUxJTkUgTE9XIExJTkU7UGM7MDtPTjs8Y29tcGF0PiAwMDVGOzs7O047U1BBQ0lORyBDRU5URVJMSU5FIFVOREVSU0NPUkU7Ozs7CitGRTRGO1dBVlkgTE9XIExJTkU7UGM7MDtPTjs8Y29tcGF0PiAwMDVGOzs7O047U1BBQ0lORyBXQVZZIFVOREVSU0NPUkU7Ozs7CitGRTUwO1NNQUxMIENPTU1BO1BvOzA7Q1M7PHNtYWxsPiAwMDJDOzs7O047Ozs7OworRkU1MTtTTUFMTCBJREVPR1JBUEhJQyBDT01NQTtQbzswO09OOzxzbWFsbD4gMzAwMTs7OztOOzs7OzsKK0ZFNTI7U01BTEwgRlVMTCBTVE9QO1BvOzA7Q1M7PHNtYWxsPiAwMDJFOzs7O047U01BTEwgUEVSSU9EOzs7OworRkU1NDtTTUFMTCBTRU1JQ09MT047UG87MDtPTjs8c21hbGw+IDAwM0I7Ozs7Tjs7Ozs7CitGRTU1O1NNQUxMIENPTE9OO1BvOzA7Q1M7PHNtYWxsPiAwMDNBOzs7O047Ozs7OworRkU1NjtTTUFMTCBRVUVTVElPTiBNQVJLO1BvOzA7T047PHNtYWxsPiAwMDNGOzs7O047Ozs7OworRkU1NztTTUFMTCBFWENMQU1BVElPTiBNQVJLO1BvOzA7T047PHNtYWxsPiAwMDIxOzs7O047Ozs7OworRkU1ODtTTUFMTCBFTSBEQVNIO1BkOzA7T047PHNtYWxsPiAyMDE0Ozs7O047Ozs7OworRkU1OTtTTUFMTCBMRUZUIFBBUkVOVEhFU0lTO1BzOzA7T047PHNtYWxsPiAwMDI4Ozs7O047U01BTEwgT1BFTklORyBQQVJFTlRIRVNJUzs7OzsKK0ZFNUE7U01BTEwgUklHSFQgUEFSRU5USEVTSVM7UGU7MDtPTjs8c21hbGw+IDAwMjk7Ozs7TjtTTUFMTCBDTE9TSU5HIFBBUkVOVEhFU0lTOzs7OworRkU1QjtTTUFMTCBMRUZUIENVUkxZIEJSQUNLRVQ7UHM7MDtPTjs8c21hbGw+IDAwN0I7Ozs7TjtTTUFMTCBPUEVOSU5HIENVUkxZIEJSQUNLRVQ7Ozs7CitGRTVDO1NNQUxMIFJJR0hUIENVUkxZIEJSQUNLRVQ7UGU7MDtPTjs8c21hbGw+IDAwN0Q7Ozs7TjtTTUFMTCBDTE9TSU5HIENVUkxZIEJSQUNLRVQ7Ozs7CitGRTVEO1NNQUxMIExFRlQgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDtQczswO09OOzxzbWFsbD4gMzAxNDs7OztOO1NNQUxMIE9QRU5JTkcgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDs7OzsKK0ZFNUU7U01BTEwgUklHSFQgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDtQZTswO09OOzxzbWFsbD4gMzAxNTs7OztOO1NNQUxMIENMT1NJTkcgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDs7OzsKK0ZFNUY7U01BTEwgTlVNQkVSIFNJR047UG87MDtFVDs8c21hbGw+IDAwMjM7Ozs7Tjs7Ozs7CitGRTYwO1NNQUxMIEFNUEVSU0FORDtQbzswO09OOzxzbWFsbD4gMDAyNjs7OztOOzs7OzsKK0ZFNjE7U01BTEwgQVNURVJJU0s7UG87MDtPTjs8c21hbGw+IDAwMkE7Ozs7Tjs7Ozs7CitGRTYyO1NNQUxMIFBMVVMgU0lHTjtTbTswO0VUOzxzbWFsbD4gMDAyQjs7OztOOzs7OzsKK0ZFNjM7U01BTEwgSFlQSEVOLU1JTlVTO1BkOzA7RVQ7PHNtYWxsPiAwMDJEOzs7O047Ozs7OworRkU2NDtTTUFMTCBMRVNTLVRIQU4gU0lHTjtTbTswO09OOzxzbWFsbD4gMDAzQzs7OztOOzs7OzsKK0ZFNjU7U01BTEwgR1JFQVRFUi1USEFOIFNJR047U207MDtPTjs8c21hbGw+IDAwM0U7Ozs7Tjs7Ozs7CitGRTY2O1NNQUxMIEVRVUFMUyBTSUdOO1NtOzA7T047PHNtYWxsPiAwMDNEOzs7O047Ozs7OworRkU2ODtTTUFMTCBSRVZFUlNFIFNPTElEVVM7UG87MDtPTjs8c21hbGw+IDAwNUM7Ozs7TjtTTUFMTCBCQUNLU0xBU0g7Ozs7CitGRTY5O1NNQUxMIERPTExBUiBTSUdOO1NjOzA7RVQ7PHNtYWxsPiAwMDI0Ozs7O047Ozs7OworRkU2QTtTTUFMTCBQRVJDRU5UIFNJR047UG87MDtFVDs8c21hbGw+IDAwMjU7Ozs7Tjs7Ozs7CitGRTZCO1NNQUxMIENPTU1FUkNJQUwgQVQ7UG87MDtPTjs8c21hbGw+IDAwNDA7Ozs7Tjs7Ozs7CitGRTcwO0FSQUJJQyBGQVRIQVRBTiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwMDIwIDA2NEI7Ozs7TjtBUkFCSUMgU1BBQ0lORyBGQVRIQVRBTjs7OzsKK0ZFNzE7QVJBQklDIFRBVFdFRUwgV0lUSCBGQVRIQVRBTiBBQk9WRTtMbzswO0FMOzxtZWRpYWw+IDA2NDAgMDY0Qjs7OztOO0FSQUJJQyBGQVRIQVRBTiBPTiBUQVRXRUVMOzs7OworRkU3MjtBUkFCSUMgREFNTUFUQU4gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDAyMCAwNjRDOzs7O047QVJBQklDIFNQQUNJTkcgREFNTUFUQU47Ozs7CitGRTc0O0FSQUJJQyBLQVNSQVRBTiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwMDIwIDA2NEQ7Ozs7TjtBUkFCSUMgU1BBQ0lORyBLQVNSQVRBTjs7OzsKK0ZFNzY7QVJBQklDIEZBVEhBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDAwMjAgMDY0RTs7OztOO0FSQUJJQyBTUEFDSU5HIEZBVEhBSDs7OzsKK0ZFNzc7QVJBQklDIEZBVEhBIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0MCAwNjRFOzs7O047QVJBQklDIEZBVEhBSCBPTiBUQVRXRUVMOzs7OworRkU3ODtBUkFCSUMgREFNTUEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDAyMCAwNjRGOzs7O047QVJBQklDIFNQQUNJTkcgREFNTUFIOzs7OworRkU3OTtBUkFCSUMgREFNTUEgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQwIDA2NEY7Ozs7TjtBUkFCSUMgREFNTUFIIE9OIFRBVFdFRUw7Ozs7CitGRTdBO0FSQUJJQyBLQVNSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwMDIwIDA2NTA7Ozs7TjtBUkFCSUMgU1BBQ0lORyBLQVNSQUg7Ozs7CitGRTdCO0FSQUJJQyBLQVNSQSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDAgMDY1MDs7OztOO0FSQUJJQyBLQVNSQUggT04gVEFUV0VFTDs7OzsKK0ZFN0M7QVJBQklDIFNIQUREQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwMDIwIDA2NTE7Ozs7TjtBUkFCSUMgU1BBQ0lORyBTSEFEREFIOzs7OworRkU3RDtBUkFCSUMgU0hBRERBIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0MCAwNjUxOzs7O047QVJBQklDIFNIQUREQUggT04gVEFUV0VFTDs7OzsKK0ZFN0U7QVJBQklDIFNVS1VOIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDAwMjAgMDY1Mjs7OztOO0FSQUJJQyBTUEFDSU5HIFNVS1VOOzs7OworRkU3RjtBUkFCSUMgU1VLVU4gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQwIDA2NTI7Ozs7TjtBUkFCSUMgU1VLVU4gT04gVEFUV0VFTDs7OzsKK0ZFODA7QVJBQklDIExFVFRFUiBIQU1aQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjIxOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEhBTVpBSDs7OzsKK0ZFODE7QVJBQklDIExFVFRFUiBBTEVGIFdJVEggTUFEREEgQUJPVkUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyMjs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBNQUREQUggT04gQUxFRjs7OzsKK0ZFODI7QVJBQklDIExFVFRFUiBBTEVGIFdJVEggTUFEREEgQUJPVkUgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyMjs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgTUFEREFIIE9OIEFMRUY7Ozs7CitGRTgzO0FSQUJJQyBMRVRURVIgQUxFRiBXSVRIIEhBTVpBIEFCT1ZFIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjM7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgSEFNWkFIIE9OIEFMRUY7Ozs7CitGRTg0O0FSQUJJQyBMRVRURVIgQUxFRiBXSVRIIEhBTVpBIEFCT1ZFIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjM7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEhBTVpBSCBPTiBBTEVGOzs7OworRkU4NTtBUkFCSUMgTEVUVEVSIFdBVyBXSVRIIEhBTVpBIEFCT1ZFIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjQ7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgSEFNWkFIIE9OIFdBVzs7OzsKK0ZFODY7QVJBQklDIExFVFRFUiBXQVcgV0lUSCBIQU1aQSBBQk9WRSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI0Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBIQU1aQUggT04gV0FXOzs7OworRkU4NztBUkFCSUMgTEVUVEVSIEFMRUYgV0lUSCBIQU1aQSBCRUxPVyBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI1Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEhBTVpBSCBVTkRFUiBBTEVGOzs7OworRkU4ODtBUkFCSUMgTEVUVEVSIEFMRUYgV0lUSCBIQU1aQSBCRUxPVyBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI1Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBIQU1aQUggVU5ERVIgQUxFRjs7OzsKK0ZFODk7QVJBQklDIExFVFRFUiBZRUggV0lUSCBIQU1aQSBBQk9WRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI2Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEhBTVpBSCBPTiBZQTs7OzsKK0ZFOEE7QVJBQklDIExFVFRFUiBZRUggV0lUSCBIQU1aQSBBQk9WRSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI2Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBIQU1aQUggT04gWUE7Ozs7CitGRThCO0FSQUJJQyBMRVRURVIgWUVIIFdJVEggSEFNWkEgQUJPVkUgSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MjY7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgSEFNWkFIIE9OIFlBOzs7OworRkU4QztBUkFCSUMgTEVUVEVSIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYyNjs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIEhBTVpBSCBPTiBZQTs7OzsKK0ZFOEQ7QVJBQklDIExFVFRFUiBBTEVGIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2Mjc7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgQUxFRjs7OzsKK0ZFOEU7QVJBQklDIExFVFRFUiBBTEVGIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2Mjc7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEFMRUY7Ozs7CitGRThGO0FSQUJJQyBMRVRURVIgQkVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2Mjg7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgQkFBOzs7OworRkU5MDtBUkFCSUMgTEVUVEVSIEJFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI4Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBCQUE7Ozs7CitGRTkxO0FSQUJJQyBMRVRURVIgQkVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjI4Ozs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIEJBQTs7OzsKK0ZFOTI7QVJBQklDIExFVFRFUiBCRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjI4Ozs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgQkFBOzs7OworRkU5MztBUkFCSUMgTEVUVEVSIFRFSCBNQVJCVVRBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2Mjk7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgVEFBIE1BUkJVVEFIOzs7OworRkU5NDtBUkFCSUMgTEVUVEVSIFRFSCBNQVJCVVRBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2Mjk7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFRBQSBNQVJCVVRBSDs7OzsKK0ZFOTU7QVJBQklDIExFVFRFUiBURUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyQTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBUQUE7Ozs7CitGRTk2O0FSQUJJQyBMRVRURVIgVEVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkE7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFRBQTs7OzsKK0ZFOTc7QVJBQklDIExFVFRFUiBURUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkE7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgVEFBOzs7OworRkU5ODtBUkFCSUMgTEVUVEVSIFRFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MkE7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBUQUE7Ozs7CitGRTk5O0FSQUJJQyBMRVRURVIgVEhFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJCOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFRIQUE7Ozs7CitGRTlBO0FSQUJJQyBMRVRURVIgVEhFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJCOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBUSEFBOzs7OworRkU5QjtBUkFCSUMgTEVUVEVSIFRIRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkI7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgVEhBQTs7OzsKK0ZFOUM7QVJBQklDIExFVFRFUiBUSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYyQjs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIFRIQUE7Ozs7CitGRTlEO0FSQUJJQyBMRVRURVIgSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJDOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEpFRU07Ozs7CitGRTlFO0FSQUJJQyBMRVRURVIgSkVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJDOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBKRUVNOzs7OworRkU5RjtBUkFCSUMgTEVUVEVSIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkM7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgSkVFTTs7OzsKK0ZFQTA7QVJBQklDIExFVFRFUiBKRUVNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYyQzs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIEpFRU07Ozs7CitGRUExO0FSQUJJQyBMRVRURVIgSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkQ7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgSEFBOzs7OworRkVBMjtBUkFCSUMgTEVUVEVSIEhBSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJEOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBIQUE7Ozs7CitGRUEzO0FSQUJJQyBMRVRURVIgSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJEOzs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIEhBQTs7OzsKK0ZFQTQ7QVJBQklDIExFVFRFUiBIQUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjJEOzs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgSEFBOzs7OworRkVBNTtBUkFCSUMgTEVUVEVSIEtIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyRTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBLSEFBOzs7OworRkVBNjtBUkFCSUMgTEVUVEVSIEtIQUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyRTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgS0hBQTs7OzsKK0ZFQTc7QVJBQklDIExFVFRFUiBLSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJFOzs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIEtIQUE7Ozs7CitGRUE4O0FSQUJJQyBMRVRURVIgS0hBSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MkU7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBLSEFBOzs7OworRkVBOTtBUkFCSUMgTEVUVEVSIERBTCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJGOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIERBTDs7OzsKK0ZFQUE7QVJBQklDIExFVFRFUiBEQUwgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyRjs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgREFMOzs7OworRkVBQjtBUkFCSUMgTEVUVEVSIFRIQUwgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzMDs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBUSEFMOzs7OworRkVBQztBUkFCSUMgTEVUVEVSIFRIQUwgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzMDs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgVEhBTDs7OzsKK0ZFQUQ7QVJBQklDIExFVFRFUiBSRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzMTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBSQTs7OzsKK0ZFQUU7QVJBQklDIExFVFRFUiBSRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzMTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgUkE7Ozs7CitGRUFGO0FSQUJJQyBMRVRURVIgWkFJTiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjMyOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFpBSU47Ozs7CitGRUIwO0FSQUJJQyBMRVRURVIgWkFJTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjMyOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBaQUlOOzs7OworRkVCMTtBUkFCSUMgTEVUVEVSIFNFRU4gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzMzs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBTRUVOOzs7OworRkVCMjtBUkFCSUMgTEVUVEVSIFNFRU4gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzMzs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgU0VFTjs7OzsKK0ZFQjM7QVJBQklDIExFVFRFUiBTRUVOIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjMzOzs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIFNFRU47Ozs7CitGRUI0O0FSQUJJQyBMRVRURVIgU0VFTiBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MzM7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBTRUVOOzs7OworRkVCNTtBUkFCSUMgTEVUVEVSIFNIRUVOIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzQ7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgU0hFRU47Ozs7CitGRUI2O0FSQUJJQyBMRVRURVIgU0hFRU4gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNDs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgU0hFRU47Ozs7CitGRUI3O0FSQUJJQyBMRVRURVIgU0hFRU4gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzQ7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgU0hFRU47Ozs7CitGRUI4O0FSQUJJQyBMRVRURVIgU0hFRU4gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjM0Ozs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgU0hFRU47Ozs7CitGRUI5O0FSQUJJQyBMRVRURVIgU0FEIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzU7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgU0FEOzs7OworRkVCQTtBUkFCSUMgTEVUVEVSIFNBRCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM1Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBTQUQ7Ozs7CitGRUJCO0FSQUJJQyBMRVRURVIgU0FEIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM1Ozs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIFNBRDs7OzsKK0ZFQkM7QVJBQklDIExFVFRFUiBTQUQgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjM1Ozs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgU0FEOzs7OworRkVCRDtBUkFCSUMgTEVUVEVSIERBRCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM2Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIERBRDs7OzsKK0ZFQkU7QVJBQklDIExFVFRFUiBEQUQgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNjs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgREFEOzs7OworRkVCRjtBUkFCSUMgTEVUVEVSIERBRCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNjs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBEQUQ7Ozs7CitGRUMwO0FSQUJJQyBMRVRURVIgREFEIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzNjs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIERBRDs7OzsKK0ZFQzE7QVJBQklDIExFVFRFUiBUQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNzs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBUQUg7Ozs7CitGRUMyO0FSQUJJQyBMRVRURVIgVEFIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2Mzc7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFRBSDs7OzsKK0ZFQzM7QVJBQklDIExFVFRFUiBUQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2Mzc7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgVEFIOzs7OworRkVDNDtBUkFCSUMgTEVUVEVSIFRBSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2Mzc7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBUQUg7Ozs7CitGRUM1O0FSQUJJQyBMRVRURVIgWkFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2Mzg7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgREhBSDs7OzsKK0ZFQzY7QVJBQklDIExFVFRFUiBaQUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzODs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgREhBSDs7OzsKK0ZFQzc7QVJBQklDIExFVFRFUiBaQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2Mzg7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgREhBSDs7OzsKK0ZFQzg7QVJBQklDIExFVFRFUiBaQUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjM4Ozs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgREhBSDs7OzsKK0ZFQzk7QVJBQklDIExFVFRFUiBBSU4gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzOTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBBSU47Ozs7CitGRUNBO0FSQUJJQyBMRVRURVIgQUlOIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2Mzk7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEFJTjs7OzsKK0ZFQ0I7QVJBQklDIExFVFRFUiBBSU4gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2Mzk7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgQUlOOzs7OworRkVDQztBUkFCSUMgTEVUVEVSIEFJTiBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2Mzk7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBBSU47Ozs7CitGRUNEO0FSQUJJQyBMRVRURVIgR0hBSU4gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzQTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBHSEFJTjs7OzsKK0ZFQ0U7QVJBQklDIExFVFRFUiBHSEFJTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjNBOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBHSEFJTjs7OzsKK0ZFQ0Y7QVJBQklDIExFVFRFUiBHSEFJTiBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzQTs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBHSEFJTjs7OzsKK0ZFRDA7QVJBQklDIExFVFRFUiBHSEFJTiBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2M0E7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBHSEFJTjs7OzsKK0ZFRDE7QVJBQklDIExFVFRFUiBGRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBGQTs7OzsKK0ZFRDI7QVJBQklDIExFVFRFUiBGRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0MTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgRkE7Ozs7CitGRUQzO0FSQUJJQyBMRVRURVIgRkVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQxOzs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIEZBOzs7OworRkVENDtBUkFCSUMgTEVUVEVSIEZFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDE7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBGQTs7OzsKK0ZFRDU7QVJBQklDIExFVFRFUiBRQUYgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0Mjs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBRQUY7Ozs7CitGRUQ2O0FSQUJJQyBMRVRURVIgUUFGIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDI7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFFBRjs7OzsKK0ZFRDc7QVJBQklDIExFVFRFUiBRQUYgSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDI7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgUUFGOzs7OworRkVEODtBUkFCSUMgTEVUVEVSIFFBRiBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDI7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBRQUY7Ozs7CitGRUQ5O0FSQUJJQyBMRVRURVIgS0FGIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDM7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgQ0FGOzs7OworRkVEQTtBUkFCSUMgTEVUVEVSIEtBRiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQzOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBDQUY7Ozs7CitGRURCO0FSQUJJQyBMRVRURVIgS0FGIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQzOzs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIENBRjs7OzsKK0ZFREM7QVJBQklDIExFVFRFUiBLQUYgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQzOzs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgQ0FGOzs7OworRkVERDtBUkFCSUMgTEVUVEVSIExBTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ0Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIExBTTs7OzsKK0ZFREU7QVJBQklDIExFVFRFUiBMQU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NDs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgTEFNOzs7OworRkVERjtBUkFCSUMgTEVUVEVSIExBTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NDs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBMQU07Ozs7CitGRUUwO0FSQUJJQyBMRVRURVIgTEFNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0NDs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIExBTTs7OzsKK0ZFRTE7QVJBQklDIExFVFRFUiBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDU7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgTUVFTTs7OzsKK0ZFRTI7QVJBQklDIExFVFRFUiBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDU7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIE1FRU07Ozs7CitGRUUzO0FSQUJJQyBMRVRURVIgTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NTs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBNRUVNOzs7OworRkVFNDtBUkFCSUMgTEVUVEVSIE1FRU0gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQ1Ozs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgTUVFTTs7OzsKK0ZFRTU7QVJBQklDIExFVFRFUiBOT09OIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDY7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgTk9PTjs7OzsKK0ZFRTY7QVJBQklDIExFVFRFUiBOT09OIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDY7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIE5PT047Ozs7CitGRUU3O0FSQUJJQyBMRVRURVIgTk9PTiBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0Njs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBOT09OOzs7OworRkVFODtBUkFCSUMgTEVUVEVSIE5PT04gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQ2Ozs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgTk9PTjs7OzsKK0ZFRTk7QVJBQklDIExFVFRFUiBIRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0Nzs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBIQTs7OzsKK0ZFRUE7QVJBQklDIExFVFRFUiBIRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0Nzs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgSEE7Ozs7CitGRUVCO0FSQUJJQyBMRVRURVIgSEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ3Ozs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIEhBOzs7OworRkVFQztBUkFCSUMgTEVUVEVSIEhFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDc7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBIQTs7OzsKK0ZFRUQ7QVJBQklDIExFVFRFUiBXQVcgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0ODs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBXQVc7Ozs7CitGRUVFO0FSQUJJQyBMRVRURVIgV0FXIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDg7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFdBVzs7OzsKK0ZFRUY7QVJBQklDIExFVFRFUiBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0OTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBBTEVGIE1BUVNVUkFIOzs7OworRkVGMDtBUkFCSUMgTEVUVEVSIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ5Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBBTEVGIE1BUVNVUkFIOzs7OworRkVGMTtBUkFCSUMgTEVUVEVSIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjRBOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFlBOzs7OworRkVGMjtBUkFCSUMgTEVUVEVSIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjRBOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBZQTs7OzsKK0ZFRjM7QVJBQklDIExFVFRFUiBZRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NEE7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgWUE7Ozs7CitGRUY0O0FSQUJJQyBMRVRURVIgWUVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0QTs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIFlBOzs7OworRkVGNTtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggQUxFRiBXSVRIIE1BRERBIEFCT1ZFIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDQgMDYyMjs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBNQUREQUggT04gTElHQVRVUkUgTEFNIEFMRUY7Ozs7CitGRUY2O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBBTEVGIFdJVEggTUFEREEgQUJPVkUgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NCAwNjIyOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBNQUREQUggT04gTElHQVRVUkUgTEFNIEFMRUY7Ozs7CitGRUY3O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBBTEVGIFdJVEggSEFNWkEgQUJPVkUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NCAwNjIzOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEhBTVpBSCBPTiBMSUdBVFVSRSBMQU0gQUxFRjs7OzsKK0ZFRjg7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEFMRUYgV0lUSCBIQU1aQSBBQk9WRSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ0IDA2MjM7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEhBTVpBSCBPTiBMSUdBVFVSRSBMQU0gQUxFRjs7OzsKK0ZFRjk7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEFMRUYgV0lUSCBIQU1aQSBCRUxPVyBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ0IDA2MjU7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgSEFNWkFIIFVOREVSIExJR0FUVVJFIExBTSBBTEVGOzs7OworRkVGQTtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggQUxFRiBXSVRIIEhBTVpBIEJFTE9XIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDQgMDYyNTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgSEFNWkFIIFVOREVSIExJR0FUVVJFIExBTSBBTEVGOzs7OworRkVGQjtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggQUxFRiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ0IDA2Mjc7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgTElHQVRVUkUgTEFNIEFMRUY7Ozs7CitGRUZDO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBBTEVGIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDQgMDYyNzs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgTElHQVRVUkUgTEFNIEFMRUY7Ozs7CitGRUZGO1pFUk8gV0lEVEggTk8tQlJFQUsgU1BBQ0U7Q2Y7MDtCTjs7Ozs7TjtCWVRFIE9SREVSIE1BUks7Ozs7CitGRjAxO0ZVTExXSURUSCBFWENMQU1BVElPTiBNQVJLO1BvOzA7T047PHdpZGU+IDAwMjE7Ozs7Tjs7Ozs7CitGRjAyO0ZVTExXSURUSCBRVU9UQVRJT04gTUFSSztQbzswO09OOzx3aWRlPiAwMDIyOzs7O047Ozs7OworRkYwMztGVUxMV0lEVEggTlVNQkVSIFNJR047UG87MDtFVDs8d2lkZT4gMDAyMzs7OztOOzs7OzsKK0ZGMDQ7RlVMTFdJRFRIIERPTExBUiBTSUdOO1NjOzA7RVQ7PHdpZGU+IDAwMjQ7Ozs7Tjs7Ozs7CitGRjA1O0ZVTExXSURUSCBQRVJDRU5UIFNJR047UG87MDtFVDs8d2lkZT4gMDAyNTs7OztOOzs7OzsKK0ZGMDY7RlVMTFdJRFRIIEFNUEVSU0FORDtQbzswO09OOzx3aWRlPiAwMDI2Ozs7O047Ozs7OworRkYwNztGVUxMV0lEVEggQVBPU1RST1BIRTtQbzswO09OOzx3aWRlPiAwMDI3Ozs7O047Ozs7OworRkYwODtGVUxMV0lEVEggTEVGVCBQQVJFTlRIRVNJUztQczswO09OOzx3aWRlPiAwMDI4Ozs7O047RlVMTFdJRFRIIE9QRU5JTkcgUEFSRU5USEVTSVM7Ozs7CitGRjA5O0ZVTExXSURUSCBSSUdIVCBQQVJFTlRIRVNJUztQZTswO09OOzx3aWRlPiAwMDI5Ozs7O047RlVMTFdJRFRIIENMT1NJTkcgUEFSRU5USEVTSVM7Ozs7CitGRjBBO0ZVTExXSURUSCBBU1RFUklTSztQbzswO09OOzx3aWRlPiAwMDJBOzs7O047Ozs7OworRkYwQjtGVUxMV0lEVEggUExVUyBTSUdOO1NtOzA7RVQ7PHdpZGU+IDAwMkI7Ozs7Tjs7Ozs7CitGRjBDO0ZVTExXSURUSCBDT01NQTtQbzswO0NTOzx3aWRlPiAwMDJDOzs7O047Ozs7OworRkYwRDtGVUxMV0lEVEggSFlQSEVOLU1JTlVTO1BkOzA7RVQ7PHdpZGU+IDAwMkQ7Ozs7Tjs7Ozs7CitGRjBFO0ZVTExXSURUSCBGVUxMIFNUT1A7UG87MDtDUzs8d2lkZT4gMDAyRTs7OztOO0ZVTExXSURUSCBQRVJJT0Q7Ozs7CitGRjBGO0ZVTExXSURUSCBTT0xJRFVTO1BvOzA7RVM7PHdpZGU+IDAwMkY7Ozs7TjtGVUxMV0lEVEggU0xBU0g7Ozs7CitGRjEwO0ZVTExXSURUSCBESUdJVCBaRVJPO05kOzA7RU47PHdpZGU+IDAwMzA7MDswOzA7Tjs7Ozs7CitGRjExO0ZVTExXSURUSCBESUdJVCBPTkU7TmQ7MDtFTjs8d2lkZT4gMDAzMTsxOzE7MTtOOzs7OzsKK0ZGMTI7RlVMTFdJRFRIIERJR0lUIFRXTztOZDswO0VOOzx3aWRlPiAwMDMyOzI7MjsyO047Ozs7OworRkYxMztGVUxMV0lEVEggRElHSVQgVEhSRUU7TmQ7MDtFTjs8d2lkZT4gMDAzMzszOzM7MztOOzs7OzsKK0ZGMTQ7RlVMTFdJRFRIIERJR0lUIEZPVVI7TmQ7MDtFTjs8d2lkZT4gMDAzNDs0OzQ7NDtOOzs7OzsKK0ZGMTU7RlVMTFdJRFRIIERJR0lUIEZJVkU7TmQ7MDtFTjs8d2lkZT4gMDAzNTs1OzU7NTtOOzs7OzsKK0ZGMTY7RlVMTFdJRFRIIERJR0lUIFNJWDtOZDswO0VOOzx3aWRlPiAwMDM2OzY7Njs2O047Ozs7OworRkYxNztGVUxMV0lEVEggRElHSVQgU0VWRU47TmQ7MDtFTjs8d2lkZT4gMDAzNzs3Ozc7NztOOzs7OzsKK0ZGMTg7RlVMTFdJRFRIIERJR0lUIEVJR0hUO05kOzA7RU47PHdpZGU+IDAwMzg7ODs4Ozg7Tjs7Ozs7CitGRjE5O0ZVTExXSURUSCBESUdJVCBOSU5FO05kOzA7RU47PHdpZGU+IDAwMzk7OTs5Ozk7Tjs7Ozs7CitGRjFBO0ZVTExXSURUSCBDT0xPTjtQbzswO0NTOzx3aWRlPiAwMDNBOzs7O047Ozs7OworRkYxQjtGVUxMV0lEVEggU0VNSUNPTE9OO1BvOzA7T047PHdpZGU+IDAwM0I7Ozs7Tjs7Ozs7CitGRjFDO0ZVTExXSURUSCBMRVNTLVRIQU4gU0lHTjtTbTswO09OOzx3aWRlPiAwMDNDOzs7O047Ozs7OworRkYxRDtGVUxMV0lEVEggRVFVQUxTIFNJR047U207MDtPTjs8d2lkZT4gMDAzRDs7OztOOzs7OzsKK0ZGMUU7RlVMTFdJRFRIIEdSRUFURVItVEhBTiBTSUdOO1NtOzA7T047PHdpZGU+IDAwM0U7Ozs7Tjs7Ozs7CitGRjFGO0ZVTExXSURUSCBRVUVTVElPTiBNQVJLO1BvOzA7T047PHdpZGU+IDAwM0Y7Ozs7Tjs7Ozs7CitGRjIwO0ZVTExXSURUSCBDT01NRVJDSUFMIEFUO1BvOzA7T047PHdpZGU+IDAwNDA7Ozs7Tjs7Ozs7CitGRjIxO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBBO0x1OzA7TDs8d2lkZT4gMDA0MTs7OztOOzs7O0ZGNDE7CitGRjIyO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBCO0x1OzA7TDs8d2lkZT4gMDA0Mjs7OztOOzs7O0ZGNDI7CitGRjIzO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBDO0x1OzA7TDs8d2lkZT4gMDA0Mzs7OztOOzs7O0ZGNDM7CitGRjI0O0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBEO0x1OzA7TDs8d2lkZT4gMDA0NDs7OztOOzs7O0ZGNDQ7CitGRjI1O0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBFO0x1OzA7TDs8d2lkZT4gMDA0NTs7OztOOzs7O0ZGNDU7CitGRjI2O0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBGO0x1OzA7TDs8d2lkZT4gMDA0Njs7OztOOzs7O0ZGNDY7CitGRjI3O0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBHO0x1OzA7TDs8d2lkZT4gMDA0Nzs7OztOOzs7O0ZGNDc7CitGRjI4O0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBIO0x1OzA7TDs8d2lkZT4gMDA0ODs7OztOOzs7O0ZGNDg7CitGRjI5O0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBJO0x1OzA7TDs8d2lkZT4gMDA0OTs7OztOOzs7O0ZGNDk7CitGRjJBO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBKO0x1OzA7TDs8d2lkZT4gMDA0QTs7OztOOzs7O0ZGNEE7CitGRjJCO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBLO0x1OzA7TDs8d2lkZT4gMDA0Qjs7OztOOzs7O0ZGNEI7CitGRjJDO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBMO0x1OzA7TDs8d2lkZT4gMDA0Qzs7OztOOzs7O0ZGNEM7CitGRjJEO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBNO0x1OzA7TDs8d2lkZT4gMDA0RDs7OztOOzs7O0ZGNEQ7CitGRjJFO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBOO0x1OzA7TDs8d2lkZT4gMDA0RTs7OztOOzs7O0ZGNEU7CitGRjJGO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBPO0x1OzA7TDs8d2lkZT4gMDA0Rjs7OztOOzs7O0ZGNEY7CitGRjMwO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBQO0x1OzA7TDs8d2lkZT4gMDA1MDs7OztOOzs7O0ZGNTA7CitGRjMxO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBRO0x1OzA7TDs8d2lkZT4gMDA1MTs7OztOOzs7O0ZGNTE7CitGRjMyO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBSO0x1OzA7TDs8d2lkZT4gMDA1Mjs7OztOOzs7O0ZGNTI7CitGRjMzO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBTO0x1OzA7TDs8d2lkZT4gMDA1Mzs7OztOOzs7O0ZGNTM7CitGRjM0O0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBUO0x1OzA7TDs8d2lkZT4gMDA1NDs7OztOOzs7O0ZGNTQ7CitGRjM1O0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBVO0x1OzA7TDs8d2lkZT4gMDA1NTs7OztOOzs7O0ZGNTU7CitGRjM2O0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBWO0x1OzA7TDs8d2lkZT4gMDA1Njs7OztOOzs7O0ZGNTY7CitGRjM3O0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBXO0x1OzA7TDs8d2lkZT4gMDA1Nzs7OztOOzs7O0ZGNTc7CitGRjM4O0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBYO0x1OzA7TDs8d2lkZT4gMDA1ODs7OztOOzs7O0ZGNTg7CitGRjM5O0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBZO0x1OzA7TDs8d2lkZT4gMDA1OTs7OztOOzs7O0ZGNTk7CitGRjNBO0ZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBaO0x1OzA7TDs8d2lkZT4gMDA1QTs7OztOOzs7O0ZGNUE7CitGRjNCO0ZVTExXSURUSCBMRUZUIFNRVUFSRSBCUkFDS0VUO1BzOzA7T047PHdpZGU+IDAwNUI7Ozs7TjtGVUxMV0lEVEggT1BFTklORyBTUVVBUkUgQlJBQ0tFVDs7OzsKK0ZGM0M7RlVMTFdJRFRIIFJFVkVSU0UgU09MSURVUztQbzswO09OOzx3aWRlPiAwMDVDOzs7O047RlVMTFdJRFRIIEJBQ0tTTEFTSDs7OzsKK0ZGM0Q7RlVMTFdJRFRIIFJJR0hUIFNRVUFSRSBCUkFDS0VUO1BlOzA7T047PHdpZGU+IDAwNUQ7Ozs7TjtGVUxMV0lEVEggQ0xPU0lORyBTUVVBUkUgQlJBQ0tFVDs7OzsKK0ZGM0U7RlVMTFdJRFRIIENJUkNVTUZMRVggQUNDRU5UO1NrOzA7T047PHdpZGU+IDAwNUU7Ozs7TjtGVUxMV0lEVEggU1BBQ0lORyBDSVJDVU1GTEVYOzs7OworRkYzRjtGVUxMV0lEVEggTE9XIExJTkU7UGM7MDtPTjs8d2lkZT4gMDA1Rjs7OztOO0ZVTExXSURUSCBTUEFDSU5HIFVOREVSU0NPUkU7Ozs7CitGRjQwO0ZVTExXSURUSCBHUkFWRSBBQ0NFTlQ7U2s7MDtPTjs8d2lkZT4gMDA2MDs7OztOO0ZVTExXSURUSCBTUEFDSU5HIEdSQVZFOzs7OworRkY0MTtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEE7TGw7MDtMOzx3aWRlPiAwMDYxOzs7O047OztGRjIxOztGRjIxCitGRjQyO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgQjtMbDswO0w7PHdpZGU+IDAwNjI7Ozs7Tjs7O0ZGMjI7O0ZGMjIKK0ZGNDM7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBDO0xsOzA7TDs8d2lkZT4gMDA2Mzs7OztOOzs7RkYyMzs7RkYyMworRkY0NDtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEQ7TGw7MDtMOzx3aWRlPiAwMDY0Ozs7O047OztGRjI0OztGRjI0CitGRjQ1O0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgRTtMbDswO0w7PHdpZGU+IDAwNjU7Ozs7Tjs7O0ZGMjU7O0ZGMjUKK0ZGNDY7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBGO0xsOzA7TDs8d2lkZT4gMDA2Njs7OztOOzs7RkYyNjs7RkYyNgorRkY0NztGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEc7TGw7MDtMOzx3aWRlPiAwMDY3Ozs7O047OztGRjI3OztGRjI3CitGRjQ4O0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgSDtMbDswO0w7PHdpZGU+IDAwNjg7Ozs7Tjs7O0ZGMjg7O0ZGMjgKK0ZGNDk7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBJO0xsOzA7TDs8d2lkZT4gMDA2OTs7OztOOzs7RkYyOTs7RkYyOQorRkY0QTtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEo7TGw7MDtMOzx3aWRlPiAwMDZBOzs7O047OztGRjJBOztGRjJBCitGRjRCO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgSztMbDswO0w7PHdpZGU+IDAwNkI7Ozs7Tjs7O0ZGMkI7O0ZGMkIKK0ZGNEM7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBMO0xsOzA7TDs8d2lkZT4gMDA2Qzs7OztOOzs7RkYyQzs7RkYyQworRkY0RDtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIE07TGw7MDtMOzx3aWRlPiAwMDZEOzs7O047OztGRjJEOztGRjJECitGRjRFO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgTjtMbDswO0w7PHdpZGU+IDAwNkU7Ozs7Tjs7O0ZGMkU7O0ZGMkUKK0ZGNEY7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBPO0xsOzA7TDs8d2lkZT4gMDA2Rjs7OztOOzs7RkYyRjs7RkYyRgorRkY1MDtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIFA7TGw7MDtMOzx3aWRlPiAwMDcwOzs7O047OztGRjMwOztGRjMwCitGRjUxO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgUTtMbDswO0w7PHdpZGU+IDAwNzE7Ozs7Tjs7O0ZGMzE7O0ZGMzEKK0ZGNTI7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBSO0xsOzA7TDs8d2lkZT4gMDA3Mjs7OztOOzs7RkYzMjs7RkYzMgorRkY1MztGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIFM7TGw7MDtMOzx3aWRlPiAwMDczOzs7O047OztGRjMzOztGRjMzCitGRjU0O0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgVDtMbDswO0w7PHdpZGU+IDAwNzQ7Ozs7Tjs7O0ZGMzQ7O0ZGMzQKK0ZGNTU7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBVO0xsOzA7TDs8d2lkZT4gMDA3NTs7OztOOzs7RkYzNTs7RkYzNQorRkY1NjtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIFY7TGw7MDtMOzx3aWRlPiAwMDc2Ozs7O047OztGRjM2OztGRjM2CitGRjU3O0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgVztMbDswO0w7PHdpZGU+IDAwNzc7Ozs7Tjs7O0ZGMzc7O0ZGMzcKK0ZGNTg7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBYO0xsOzA7TDs8d2lkZT4gMDA3ODs7OztOOzs7RkYzODs7RkYzOAorRkY1OTtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIFk7TGw7MDtMOzx3aWRlPiAwMDc5Ozs7O047OztGRjM5OztGRjM5CitGRjVBO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgWjtMbDswO0w7PHdpZGU+IDAwN0E7Ozs7Tjs7O0ZGM0E7O0ZGM0EKK0ZGNUI7RlVMTFdJRFRIIExFRlQgQ1VSTFkgQlJBQ0tFVDtQczswO09OOzx3aWRlPiAwMDdCOzs7O047RlVMTFdJRFRIIE9QRU5JTkcgQ1VSTFkgQlJBQ0tFVDs7OzsKK0ZGNUM7RlVMTFdJRFRIIFZFUlRJQ0FMIExJTkU7U207MDtPTjs8d2lkZT4gMDA3Qzs7OztOO0ZVTExXSURUSCBWRVJUSUNBTCBCQVI7Ozs7CitGRjVEO0ZVTExXSURUSCBSSUdIVCBDVVJMWSBCUkFDS0VUO1BlOzA7T047PHdpZGU+IDAwN0Q7Ozs7TjtGVUxMV0lEVEggQ0xPU0lORyBDVVJMWSBCUkFDS0VUOzs7OworRkY1RTtGVUxMV0lEVEggVElMREU7U207MDtPTjs8d2lkZT4gMDA3RTs7OztOO0ZVTExXSURUSCBTUEFDSU5HIFRJTERFOzs7OworRkY2MTtIQUxGV0lEVEggSURFT0dSQVBISUMgRlVMTCBTVE9QO1BvOzA7T047PG5hcnJvdz4gMzAwMjs7OztOO0hBTEZXSURUSCBJREVPR1JBUEhJQyBQRVJJT0Q7Ozs7CitGRjYyO0hBTEZXSURUSCBMRUZUIENPUk5FUiBCUkFDS0VUO1BzOzA7T047PG5hcnJvdz4gMzAwQzs7OztOO0hBTEZXSURUSCBPUEVOSU5HIENPUk5FUiBCUkFDS0VUOzs7OworRkY2MztIQUxGV0lEVEggUklHSFQgQ09STkVSIEJSQUNLRVQ7UGU7MDtPTjs8bmFycm93PiAzMDBEOzs7O047SEFMRldJRFRIIENMT1NJTkcgQ09STkVSIEJSQUNLRVQ7Ozs7CitGRjY0O0hBTEZXSURUSCBJREVPR1JBUEhJQyBDT01NQTtQbzswO09OOzxuYXJyb3c+IDMwMDE7Ozs7Tjs7Ozs7CitGRjY1O0hBTEZXSURUSCBLQVRBS0FOQSBNSURETEUgRE9UO1BjOzA7T047PG5hcnJvdz4gMzBGQjs7OztOOzs7OzsKK0ZGNjY7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBXTztMbzswO0w7PG5hcnJvdz4gMzBGMjs7OztOOzs7OzsKK0ZGNjc7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTUFMTCBBO0xvOzA7TDs8bmFycm93PiAzMEExOzs7O047Ozs7OworRkY2ODtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFNNQUxMIEk7TG87MDtMOzxuYXJyb3c+IDMwQTM7Ozs7Tjs7Ozs7CitGRjY5O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU01BTEwgVTtMbzswO0w7PG5hcnJvdz4gMzBBNTs7OztOOzs7OzsKK0ZGNkE7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTUFMTCBFO0xvOzA7TDs8bmFycm93PiAzMEE3Ozs7O047Ozs7OworRkY2QjtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFNNQUxMIE87TG87MDtMOzxuYXJyb3c+IDMwQTk7Ozs7Tjs7Ozs7CitGRjZDO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU01BTEwgWUE7TG87MDtMOzxuYXJyb3c+IDMwRTM7Ozs7Tjs7Ozs7CitGRjZEO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU01BTEwgWVU7TG87MDtMOzxuYXJyb3c+IDMwRTU7Ozs7Tjs7Ozs7CitGRjZFO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU01BTEwgWU87TG87MDtMOzxuYXJyb3c+IDMwRTc7Ozs7Tjs7Ozs7CitGRjZGO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU01BTEwgVFU7TG87MDtMOzxuYXJyb3c+IDMwQzM7Ozs7Tjs7Ozs7CitGRjcwO0hBTEZXSURUSCBLQVRBS0FOQS1ISVJBR0FOQSBQUk9MT05HRUQgU09VTkQgTUFSSztMbTswO0w7PG5hcnJvdz4gMzBGQzs7OztOOzs7OzsKK0ZGNzE7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBBO0xvOzA7TDs8bmFycm93PiAzMEEyOzs7O047Ozs7OworRkY3MjtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIEk7TG87MDtMOzxuYXJyb3c+IDMwQTQ7Ozs7Tjs7Ozs7CitGRjczO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgVTtMbzswO0w7PG5hcnJvdz4gMzBBNjs7OztOOzs7OzsKK0ZGNzQ7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBFO0xvOzA7TDs8bmFycm93PiAzMEE4Ozs7O047Ozs7OworRkY3NTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIE87TG87MDtMOzxuYXJyb3c+IDMwQUE7Ozs7Tjs7Ozs7CitGRjc2O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgS0E7TG87MDtMOzxuYXJyb3c+IDMwQUI7Ozs7Tjs7Ozs7CitGRjc3O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgS0k7TG87MDtMOzxuYXJyb3c+IDMwQUQ7Ozs7Tjs7Ozs7CitGRjc4O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgS1U7TG87MDtMOzxuYXJyb3c+IDMwQUY7Ozs7Tjs7Ozs7CitGRjc5O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgS0U7TG87MDtMOzxuYXJyb3c+IDMwQjE7Ozs7Tjs7Ozs7CitGRjdBO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgS087TG87MDtMOzxuYXJyb3c+IDMwQjM7Ozs7Tjs7Ozs7CitGRjdCO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU0E7TG87MDtMOzxuYXJyb3c+IDMwQjU7Ozs7Tjs7Ozs7CitGRjdDO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU0k7TG87MDtMOzxuYXJyb3c+IDMwQjc7Ozs7Tjs7Ozs7CitGRjdEO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU1U7TG87MDtMOzxuYXJyb3c+IDMwQjk7Ozs7Tjs7Ozs7CitGRjdFO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU0U7TG87MDtMOzxuYXJyb3c+IDMwQkI7Ozs7Tjs7Ozs7CitGRjdGO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU087TG87MDtMOzxuYXJyb3c+IDMwQkQ7Ozs7Tjs7Ozs7CitGRjgwO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgVEE7TG87MDtMOzxuYXJyb3c+IDMwQkY7Ozs7Tjs7Ozs7CitGRjgxO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgVEk7TG87MDtMOzxuYXJyb3c+IDMwQzE7Ozs7Tjs7Ozs7CitGRjgyO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgVFU7TG87MDtMOzxuYXJyb3c+IDMwQzQ7Ozs7Tjs7Ozs7CitGRjgzO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgVEU7TG87MDtMOzxuYXJyb3c+IDMwQzY7Ozs7Tjs7Ozs7CitGRjg0O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgVE87TG87MDtMOzxuYXJyb3c+IDMwQzg7Ozs7Tjs7Ozs7CitGRjg1O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTkE7TG87MDtMOzxuYXJyb3c+IDMwQ0E7Ozs7Tjs7Ozs7CitGRjg2O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTkk7TG87MDtMOzxuYXJyb3c+IDMwQ0I7Ozs7Tjs7Ozs7CitGRjg3O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTlU7TG87MDtMOzxuYXJyb3c+IDMwQ0M7Ozs7Tjs7Ozs7CitGRjg4O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTkU7TG87MDtMOzxuYXJyb3c+IDMwQ0Q7Ozs7Tjs7Ozs7CitGRjg5O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTk87TG87MDtMOzxuYXJyb3c+IDMwQ0U7Ozs7Tjs7Ozs7CitGRjhBO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgSEE7TG87MDtMOzxuYXJyb3c+IDMwQ0Y7Ozs7Tjs7Ozs7CitGRjhCO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgSEk7TG87MDtMOzxuYXJyb3c+IDMwRDI7Ozs7Tjs7Ozs7CitGRjhDO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgSFU7TG87MDtMOzxuYXJyb3c+IDMwRDU7Ozs7Tjs7Ozs7CitGRjhEO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgSEU7TG87MDtMOzxuYXJyb3c+IDMwRDg7Ozs7Tjs7Ozs7CitGRjhFO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgSE87TG87MDtMOzxuYXJyb3c+IDMwREI7Ozs7Tjs7Ozs7CitGRjhGO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTUE7TG87MDtMOzxuYXJyb3c+IDMwREU7Ozs7Tjs7Ozs7CitGRjkwO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTUk7TG87MDtMOzxuYXJyb3c+IDMwREY7Ozs7Tjs7Ozs7CitGRjkxO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTVU7TG87MDtMOzxuYXJyb3c+IDMwRTA7Ozs7Tjs7Ozs7CitGRjkyO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTUU7TG87MDtMOzxuYXJyb3c+IDMwRTE7Ozs7Tjs7Ozs7CitGRjkzO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTU87TG87MDtMOzxuYXJyb3c+IDMwRTI7Ozs7Tjs7Ozs7CitGRjk0O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgWUE7TG87MDtMOzxuYXJyb3c+IDMwRTQ7Ozs7Tjs7Ozs7CitGRjk1O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgWVU7TG87MDtMOzxuYXJyb3c+IDMwRTY7Ozs7Tjs7Ozs7CitGRjk2O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgWU87TG87MDtMOzxuYXJyb3c+IDMwRTg7Ozs7Tjs7Ozs7CitGRjk3O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgUkE7TG87MDtMOzxuYXJyb3c+IDMwRTk7Ozs7Tjs7Ozs7CitGRjk4O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgUkk7TG87MDtMOzxuYXJyb3c+IDMwRUE7Ozs7Tjs7Ozs7CitGRjk5O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgUlU7TG87MDtMOzxuYXJyb3c+IDMwRUI7Ozs7Tjs7Ozs7CitGRjlBO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgUkU7TG87MDtMOzxuYXJyb3c+IDMwRUM7Ozs7Tjs7Ozs7CitGRjlCO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgUk87TG87MDtMOzxuYXJyb3c+IDMwRUQ7Ozs7Tjs7Ozs7CitGRjlDO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgV0E7TG87MDtMOzxuYXJyb3c+IDMwRUY7Ozs7Tjs7Ozs7CitGRjlEO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTjtMbzswO0w7PG5hcnJvdz4gMzBGMzs7OztOOzs7OzsKK0ZGOUU7SEFMRldJRFRIIEtBVEFLQU5BIFZPSUNFRCBTT1VORCBNQVJLO0xtOzA7TDs8bmFycm93PiAzMDk5Ozs7O047O2hhbGZ3aWR0aCBrYXRha2FuYS1oaXJhZ2FuYSB2b2ljZWQgc291bmQgbWFyazs7OworRkY5RjtIQUxGV0lEVEggS0FUQUtBTkEgU0VNSS1WT0lDRUQgU09VTkQgTUFSSztMbTswO0w7PG5hcnJvdz4gMzA5QTs7OztOOztoYWxmd2lkdGgga2F0YWthbmEtaGlyYWdhbmEgc2VtaS12b2ljZWQgc291bmQgbWFyazs7OworRkZBMDtIQUxGV0lEVEggSEFOR1VMIEZJTExFUjtMbzswO0w7PG5hcnJvdz4gMzE2NDs7OztOO0hBTEZXSURUSCBIQU5HVUwgQ0FFIE9NOzs7OworRkZBMTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBLSVlFT0s7TG87MDtMOzxuYXJyb3c+IDMxMzE7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBHSVlFT0c7Ozs7CitGRkEyO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFNTQU5HS0lZRU9LO0xvOzA7TDs8bmFycm93PiAzMTMyOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU1NBTkcgR0lZRU9HOzs7OworRkZBMztIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBLSVlFT0stU0lPUztMbzswO0w7PG5hcnJvdz4gMzEzMzs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEdJWUVPRyBTSU9TOzs7OworRkZBNDtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBOSUVVTjtMbzswO0w7PG5hcnJvdz4gMzEzNDs7OztOOzs7OzsKK0ZGQTU7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTklFVU4tQ0lFVUM7TG87MDtMOzxuYXJyb3c+IDMxMzU7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBOSUVVTiBKSUVVSjs7OzsKK0ZGQTY7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTklFVU4tSElFVUg7TG87MDtMOzxuYXJyb3c+IDMxMzY7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBOSUVVTiBISUVVSDs7OzsKK0ZGQTc7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgVElLRVVUO0xvOzA7TDs8bmFycm93PiAzMTM3Ozs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgRElHRVVEOzs7OworRkZBODtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBTU0FOR1RJS0VVVDtMbzswO0w7PG5hcnJvdz4gMzEzODs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFNTQU5HIERJR0VVRDs7OzsKK0ZGQTk7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUklFVUw7TG87MDtMOzxuYXJyb3c+IDMxMzk7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBMSUVVTDs7OzsKK0ZGQUE7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUklFVUwtS0lZRU9LO0xvOzA7TDs8bmFycm93PiAzMTNBOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTElFVUwgR0lZRU9HOzs7OworRkZBQjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBSSUVVTC1NSUVVTTtMbzswO0w7PG5hcnJvdz4gMzEzQjs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIExJRVVMIE1JRVVNOzs7OworRkZBQztIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBSSUVVTC1QSUVVUDtMbzswO0w7PG5hcnJvdz4gMzEzQzs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIExJRVVMIEJJRVVCOzs7OworRkZBRDtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBSSUVVTC1TSU9TO0xvOzA7TDs8bmFycm93PiAzMTNEOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTElFVUwgU0lPUzs7OzsKK0ZGQUU7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUklFVUwtVEhJRVVUSDtMbzswO0w7PG5hcnJvdz4gMzEzRTs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIExJRVVMIFRJRVVUOzs7OworRkZBRjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBSSUVVTC1QSElFVVBIO0xvOzA7TDs8bmFycm93PiAzMTNGOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTElFVUwgUElFVVA7Ozs7CitGRkIwO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFJJRVVMLUhJRVVIO0xvOzA7TDs8bmFycm93PiAzMTQwOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTElFVUwgSElFVUg7Ozs7CitGRkIxO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIE1JRVVNO0xvOzA7TDs8bmFycm93PiAzMTQxOzs7O047Ozs7OworRkZCMjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBQSUVVUDtMbzswO0w7PG5hcnJvdz4gMzE0Mjs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEJJRVVCOzs7OworRkZCMztIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBTU0FOR1BJRVVQO0xvOzA7TDs8bmFycm93PiAzMTQzOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU1NBTkcgQklFVUI7Ozs7CitGRkI0O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFBJRVVQLVNJT1M7TG87MDtMOzxuYXJyb3c+IDMxNDQ7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBCSUVVQiBTSU9TOzs7OworRkZCNTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBTSU9TO0xvOzA7TDs8bmFycm93PiAzMTQ1Ozs7O047Ozs7OworRkZCNjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBTU0FOR1NJT1M7TG87MDtMOzxuYXJyb3c+IDMxNDY7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBTU0FORyBTSU9TOzs7OworRkZCNztIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBJRVVORztMbzswO0w7PG5hcnJvdz4gMzE0Nzs7OztOOzs7OzsKK0ZGQjg7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgQ0lFVUM7TG87MDtMOzxuYXJyb3c+IDMxNDg7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBKSUVVSjs7OzsKK0ZGQjk7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU1NBTkdDSUVVQztMbzswO0w7PG5hcnJvdz4gMzE0OTs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFNTQU5HIEpJRVVKOzs7OworRkZCQTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBDSElFVUNIO0xvOzA7TDs8bmFycm93PiAzMTRBOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgQ0lFVUM7Ozs7CitGRkJCO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEtISUVVS0g7TG87MDtMOzxuYXJyb3c+IDMxNEI7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBLSVlFT0s7Ozs7CitGRkJDO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFRISUVVVEg7TG87MDtMOzxuYXJyb3c+IDMxNEM7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBUSUVVVDs7OzsKK0ZGQkQ7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUEhJRVVQSDtMbzswO0w7PG5hcnJvdz4gMzE0RDs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFBJRVVQOzs7OworRkZCRTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBISUVVSDtMbzswO0w7PG5hcnJvdz4gMzE0RTs7OztOOzs7OzsKK0ZGQzI7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgQTtMbzswO0w7PG5hcnJvdz4gMzE0Rjs7OztOOzs7OzsKK0ZGQzM7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgQUU7TG87MDtMOzxuYXJyb3c+IDMxNTA7Ozs7Tjs7Ozs7CitGRkM0O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFlBO0xvOzA7TDs8bmFycm93PiAzMTUxOzs7O047Ozs7OworRkZDNTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBZQUU7TG87MDtMOzxuYXJyb3c+IDMxNTI7Ozs7Tjs7Ozs7CitGRkM2O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEVPO0xvOzA7TDs8bmFycm93PiAzMTUzOzs7O047Ozs7OworRkZDNztIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBFO0xvOzA7TDs8bmFycm93PiAzMTU0Ozs7O047Ozs7OworRkZDQTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBZRU87TG87MDtMOzxuYXJyb3c+IDMxNTU7Ozs7Tjs7Ozs7CitGRkNCO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFlFO0xvOzA7TDs8bmFycm93PiAzMTU2Ozs7O047Ozs7OworRkZDQztIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBPO0xvOzA7TDs8bmFycm93PiAzMTU3Ozs7O047Ozs7OworRkZDRDtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBXQTtMbzswO0w7PG5hcnJvdz4gMzE1ODs7OztOOzs7OzsKK0ZGQ0U7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgV0FFO0xvOzA7TDs8bmFycm93PiAzMTU5Ozs7O047Ozs7OworRkZDRjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBPRTtMbzswO0w7PG5hcnJvdz4gMzE1QTs7OztOOzs7OzsKK0ZGRDI7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgWU87TG87MDtMOzxuYXJyb3c+IDMxNUI7Ozs7Tjs7Ozs7CitGRkQzO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFU7TG87MDtMOzxuYXJyb3c+IDMxNUM7Ozs7Tjs7Ozs7CitGRkQ0O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFdFTztMbzswO0w7PG5hcnJvdz4gMzE1RDs7OztOOzs7OzsKK0ZGRDU7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgV0U7TG87MDtMOzxuYXJyb3c+IDMxNUU7Ozs7Tjs7Ozs7CitGRkQ2O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFdJO0xvOzA7TDs8bmFycm93PiAzMTVGOzs7O047Ozs7OworRkZENztIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBZVTtMbzswO0w7PG5hcnJvdz4gMzE2MDs7OztOOzs7OzsKK0ZGREE7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgRVU7TG87MDtMOzxuYXJyb3c+IDMxNjE7Ozs7Tjs7Ozs7CitGRkRCO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFlJO0xvOzA7TDs8bmFycm93PiAzMTYyOzs7O047Ozs7OworRkZEQztIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBJO0xvOzA7TDs8bmFycm93PiAzMTYzOzs7O047Ozs7OworRkZFMDtGVUxMV0lEVEggQ0VOVCBTSUdOO1NjOzA7RVQ7PHdpZGU+IDAwQTI7Ozs7Tjs7Ozs7CitGRkUxO0ZVTExXSURUSCBQT1VORCBTSUdOO1NjOzA7RVQ7PHdpZGU+IDAwQTM7Ozs7Tjs7Ozs7CitGRkUyO0ZVTExXSURUSCBOT1QgU0lHTjtTbTswO09OOzx3aWRlPiAwMEFDOzs7O047Ozs7OworRkZFMztGVUxMV0lEVEggTUFDUk9OO1NrOzA7T047PHdpZGU+IDAwQUY7Ozs7TjtGVUxMV0lEVEggU1BBQ0lORyBNQUNST047Kjs7OworRkZFNDtGVUxMV0lEVEggQlJPS0VOIEJBUjtTbzswO09OOzx3aWRlPiAwMEE2Ozs7O047RlVMTFdJRFRIIEJST0tFTiBWRVJUSUNBTCBCQVI7Ozs7CitGRkU1O0ZVTExXSURUSCBZRU4gU0lHTjtTYzswO0VUOzx3aWRlPiAwMEE1Ozs7O047Ozs7OworRkZFNjtGVUxMV0lEVEggV09OIFNJR047U2M7MDtFVDs8d2lkZT4gMjBBOTs7OztOOzs7OzsKK0ZGRTg7SEFMRldJRFRIIEZPUk1TIExJR0hUIFZFUlRJQ0FMO1NvOzA7T047PG5hcnJvdz4gMjUwMjs7OztOOzs7OzsKK0ZGRTk7SEFMRldJRFRIIExFRlRXQVJEUyBBUlJPVztTbTswO09OOzxuYXJyb3c+IDIxOTA7Ozs7Tjs7Ozs7CitGRkVBO0hBTEZXSURUSCBVUFdBUkRTIEFSUk9XO1NtOzA7T047PG5hcnJvdz4gMjE5MTs7OztOOzs7OzsKK0ZGRUI7SEFMRldJRFRIIFJJR0hUV0FSRFMgQVJST1c7U207MDtPTjs8bmFycm93PiAyMTkyOzs7O047Ozs7OworRkZFQztIQUxGV0lEVEggRE9XTldBUkRTIEFSUk9XO1NtOzA7T047PG5hcnJvdz4gMjE5Mzs7OztOOzs7OzsKK0ZGRUQ7SEFMRldJRFRIIEJMQUNLIFNRVUFSRTtTbzswO09OOzxuYXJyb3c+IDI1QTA7Ozs7Tjs7Ozs7CitGRkVFO0hBTEZXSURUSCBXSElURSBDSVJDTEU7U287MDtPTjs8bmFycm93PiAyNUNCOzs7O047Ozs7OworRkZGOTtJTlRFUkxJTkVBUiBBTk5PVEFUSU9OIEFOQ0hPUjtDZjswO0JOOzs7OztOOzs7OzsKK0ZGRkE7SU5URVJMSU5FQVIgQU5OT1RBVElPTiBTRVBBUkFUT1I7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitGRkZCO0lOVEVSTElORUFSIEFOTk9UQVRJT04gVEVSTUlOQVRPUjtDZjswO0JOOzs7OztOOzs7OzsKK0ZGRkM7T0JKRUNUIFJFUExBQ0VNRU5UIENIQVJBQ1RFUjtTbzswO09OOzs7OztOOzs7OzsKK0ZGRkQ7UkVQTEFDRU1FTlQgQ0hBUkFDVEVSO1NvOzA7T047Ozs7O047Ozs7OwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvVW5pY29kZURhdGEtMy4xLjAudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvVW5pY29kZURhdGEtMy4xLjAudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjkwZjA0N2EKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9Vbmljb2RlRGF0YS0zLjEuMC50eHQKQEAgLTAsMCArMSwxMjg1OCBAQAorMDAwMDs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtOVUxMOzs7OworMDAwMTs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtTVEFSVCBPRiBIRUFESU5HOzs7OworMDAwMjs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtTVEFSVCBPRiBURVhUOzs7OworMDAwMzs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtFTkQgT0YgVEVYVDs7OzsKKzAwMDQ7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047RU5EIE9GIFRSQU5TTUlTU0lPTjs7OzsKKzAwMDU7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047RU5RVUlSWTs7OzsKKzAwMDY7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047QUNLTk9XTEVER0U7Ozs7CiswMDA3Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO0JFTEw7Ozs7CiswMDA4Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO0JBQ0tTUEFDRTs7OzsKKzAwMDk7PGNvbnRyb2w+O0NjOzA7Uzs7Ozs7TjtIT1JJWk9OVEFMIFRBQlVMQVRJT047Ozs7CiswMDBBOzxjb250cm9sPjtDYzswO0I7Ozs7O047TElORSBGRUVEOzs7OworMDAwQjs8Y29udHJvbD47Q2M7MDtTOzs7OztOO1ZFUlRJQ0FMIFRBQlVMQVRJT047Ozs7CiswMDBDOzxjb250cm9sPjtDYzswO1dTOzs7OztOO0ZPUk0gRkVFRDs7OzsKKzAwMEQ7PGNvbnRyb2w+O0NjOzA7Qjs7Ozs7TjtDQVJSSUFHRSBSRVRVUk47Ozs7CiswMDBFOzxjb250cm9sPjtDYzswO0JOOzs7OztOO1NISUZUIE9VVDs7OzsKKzAwMEY7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047U0hJRlQgSU47Ozs7CiswMDEwOzxjb250cm9sPjtDYzswO0JOOzs7OztOO0RBVEEgTElOSyBFU0NBUEU7Ozs7CiswMDExOzxjb250cm9sPjtDYzswO0JOOzs7OztOO0RFVklDRSBDT05UUk9MIE9ORTs7OzsKKzAwMTI7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047REVWSUNFIENPTlRST0wgVFdPOzs7OworMDAxMzs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtERVZJQ0UgQ09OVFJPTCBUSFJFRTs7OzsKKzAwMTQ7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047REVWSUNFIENPTlRST0wgRk9VUjs7OzsKKzAwMTU7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047TkVHQVRJVkUgQUNLTk9XTEVER0U7Ozs7CiswMDE2Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO1NZTkNIUk9OT1VTIElETEU7Ozs7CiswMDE3Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO0VORCBPRiBUUkFOU01JU1NJT04gQkxPQ0s7Ozs7CiswMDE4Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO0NBTkNFTDs7OzsKKzAwMTk7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047RU5EIE9GIE1FRElVTTs7OzsKKzAwMUE7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047U1VCU1RJVFVURTs7OzsKKzAwMUI7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047RVNDQVBFOzs7OworMDAxQzs8Y29udHJvbD47Q2M7MDtCOzs7OztOO0ZJTEUgU0VQQVJBVE9SOzs7OworMDAxRDs8Y29udHJvbD47Q2M7MDtCOzs7OztOO0dST1VQIFNFUEFSQVRPUjs7OzsKKzAwMUU7PGNvbnRyb2w+O0NjOzA7Qjs7Ozs7TjtSRUNPUkQgU0VQQVJBVE9SOzs7OworMDAxRjs8Y29udHJvbD47Q2M7MDtTOzs7OztOO1VOSVQgU0VQQVJBVE9SOzs7OworMDAyMDtTUEFDRTtaczswO1dTOzs7OztOOzs7OzsKKzAwMjE7RVhDTEFNQVRJT04gTUFSSztQbzswO09OOzs7OztOOzs7OzsKKzAwMjI7UVVPVEFUSU9OIE1BUks7UG87MDtPTjs7Ozs7Tjs7Ozs7CiswMDIzO05VTUJFUiBTSUdOO1BvOzA7RVQ7Ozs7O047Ozs7OworMDAyNDtET0xMQVIgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzAwMjU7UEVSQ0VOVCBTSUdOO1BvOzA7RVQ7Ozs7O047Ozs7OworMDAyNjtBTVBFUlNBTkQ7UG87MDtPTjs7Ozs7Tjs7Ozs7CiswMDI3O0FQT1NUUk9QSEU7UG87MDtPTjs7Ozs7TjtBUE9TVFJPUEhFLVFVT1RFOzs7OworMDAyODtMRUZUIFBBUkVOVEhFU0lTO1BzOzA7T047Ozs7O1k7T1BFTklORyBQQVJFTlRIRVNJUzs7OzsKKzAwMjk7UklHSFQgUEFSRU5USEVTSVM7UGU7MDtPTjs7Ozs7WTtDTE9TSU5HIFBBUkVOVEhFU0lTOzs7OworMDAyQTtBU1RFUklTSztQbzswO09OOzs7OztOOzs7OzsKKzAwMkI7UExVUyBTSUdOO1NtOzA7RVQ7Ozs7O047Ozs7OworMDAyQztDT01NQTtQbzswO0NTOzs7OztOOzs7OzsKKzAwMkQ7SFlQSEVOLU1JTlVTO1BkOzA7RVQ7Ozs7O047Ozs7OworMDAyRTtGVUxMIFNUT1A7UG87MDtDUzs7Ozs7TjtQRVJJT0Q7Ozs7CiswMDJGO1NPTElEVVM7UG87MDtFUzs7Ozs7TjtTTEFTSDs7OzsKKzAwMzA7RElHSVQgWkVSTztOZDswO0VOOzswOzA7MDtOOzs7OzsKKzAwMzE7RElHSVQgT05FO05kOzA7RU47OzE7MTsxO047Ozs7OworMDAzMjtESUdJVCBUV087TmQ7MDtFTjs7MjsyOzI7Tjs7Ozs7CiswMDMzO0RJR0lUIFRIUkVFO05kOzA7RU47OzM7MzszO047Ozs7OworMDAzNDtESUdJVCBGT1VSO05kOzA7RU47OzQ7NDs0O047Ozs7OworMDAzNTtESUdJVCBGSVZFO05kOzA7RU47OzU7NTs1O047Ozs7OworMDAzNjtESUdJVCBTSVg7TmQ7MDtFTjs7Njs2OzY7Tjs7Ozs7CiswMDM3O0RJR0lUIFNFVkVOO05kOzA7RU47Ozc7Nzs3O047Ozs7OworMDAzODtESUdJVCBFSUdIVDtOZDswO0VOOzs4Ozg7ODtOOzs7OzsKKzAwMzk7RElHSVQgTklORTtOZDswO0VOOzs5Ozk7OTtOOzs7OzsKKzAwM0E7Q09MT047UG87MDtDUzs7Ozs7Tjs7Ozs7CiswMDNCO1NFTUlDT0xPTjtQbzswO09OOzs7OztOOzs7OzsKKzAwM0M7TEVTUy1USEFOIFNJR047U207MDtPTjs7Ozs7WTs7Ozs7CiswMDNEO0VRVUFMUyBTSUdOO1NtOzA7T047Ozs7O047Ozs7OworMDAzRTtHUkVBVEVSLVRIQU4gU0lHTjtTbTswO09OOzs7OztZOzs7OzsKKzAwM0Y7UVVFU1RJT04gTUFSSztQbzswO09OOzs7OztOOzs7OzsKKzAwNDA7Q09NTUVSQ0lBTCBBVDtQbzswO09OOzs7OztOOzs7OzsKKzAwNDE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQTtMdTswO0w7Ozs7O047Ozs7MDA2MTsKKzAwNDI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQjtMdTswO0w7Ozs7O047Ozs7MDA2MjsKKzAwNDM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQztMdTswO0w7Ozs7O047Ozs7MDA2MzsKKzAwNDQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRDtMdTswO0w7Ozs7O047Ozs7MDA2NDsKKzAwNDU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRTtMdTswO0w7Ozs7O047Ozs7MDA2NTsKKzAwNDY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRjtMdTswO0w7Ozs7O047Ozs7MDA2NjsKKzAwNDc7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRztMdTswO0w7Ozs7O047Ozs7MDA2NzsKKzAwNDg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSDtMdTswO0w7Ozs7O047Ozs7MDA2ODsKKzAwNDk7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSTtMdTswO0w7Ozs7O047Ozs7MDA2OTsKKzAwNEE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSjtMdTswO0w7Ozs7O047Ozs7MDA2QTsKKzAwNEI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSztMdTswO0w7Ozs7O047Ozs7MDA2QjsKKzAwNEM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTDtMdTswO0w7Ozs7O047Ozs7MDA2QzsKKzAwNEQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTTtMdTswO0w7Ozs7O047Ozs7MDA2RDsKKzAwNEU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTjtMdTswO0w7Ozs7O047Ozs7MDA2RTsKKzAwNEY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTztMdTswO0w7Ozs7O047Ozs7MDA2RjsKKzAwNTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUDtMdTswO0w7Ozs7O047Ozs7MDA3MDsKKzAwNTE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUTtMdTswO0w7Ozs7O047Ozs7MDA3MTsKKzAwNTI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUjtMdTswO0w7Ozs7O047Ozs7MDA3MjsKKzAwNTM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUztMdTswO0w7Ozs7O047Ozs7MDA3MzsKKzAwNTQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVDtMdTswO0w7Ozs7O047Ozs7MDA3NDsKKzAwNTU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVTtMdTswO0w7Ozs7O047Ozs7MDA3NTsKKzAwNTY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVjtMdTswO0w7Ozs7O047Ozs7MDA3NjsKKzAwNTc7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVztMdTswO0w7Ozs7O047Ozs7MDA3NzsKKzAwNTg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWDtMdTswO0w7Ozs7O047Ozs7MDA3ODsKKzAwNTk7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWTtMdTswO0w7Ozs7O047Ozs7MDA3OTsKKzAwNUE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWjtMdTswO0w7Ozs7O047Ozs7MDA3QTsKKzAwNUI7TEVGVCBTUVVBUkUgQlJBQ0tFVDtQczswO09OOzs7OztZO09QRU5JTkcgU1FVQVJFIEJSQUNLRVQ7Ozs7CiswMDVDO1JFVkVSU0UgU09MSURVUztQbzswO09OOzs7OztOO0JBQ0tTTEFTSDs7OzsKKzAwNUQ7UklHSFQgU1FVQVJFIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTtDTE9TSU5HIFNRVUFSRSBCUkFDS0VUOzs7OworMDA1RTtDSVJDVU1GTEVYIEFDQ0VOVDtTazswO09OOzs7OztOO1NQQUNJTkcgQ0lSQ1VNRkxFWDs7OzsKKzAwNUY7TE9XIExJTkU7UGM7MDtPTjs7Ozs7TjtTUEFDSU5HIFVOREVSU0NPUkU7Ozs7CiswMDYwO0dSQVZFIEFDQ0VOVDtTazswO09OOzs7OztOO1NQQUNJTkcgR1JBVkU7Ozs7CiswMDYxO0xBVElOIFNNQUxMIExFVFRFUiBBO0xsOzA7TDs7Ozs7Tjs7OzAwNDE7OzAwNDEKKzAwNjI7TEFUSU4gU01BTEwgTEVUVEVSIEI7TGw7MDtMOzs7OztOOzs7MDA0Mjs7MDA0MgorMDA2MztMQVRJTiBTTUFMTCBMRVRURVIgQztMbDswO0w7Ozs7O047OzswMDQzOzswMDQzCiswMDY0O0xBVElOIFNNQUxMIExFVFRFUiBEO0xsOzA7TDs7Ozs7Tjs7OzAwNDQ7OzAwNDQKKzAwNjU7TEFUSU4gU01BTEwgTEVUVEVSIEU7TGw7MDtMOzs7OztOOzs7MDA0NTs7MDA0NQorMDA2NjtMQVRJTiBTTUFMTCBMRVRURVIgRjtMbDswO0w7Ozs7O047OzswMDQ2OzswMDQ2CiswMDY3O0xBVElOIFNNQUxMIExFVFRFUiBHO0xsOzA7TDs7Ozs7Tjs7OzAwNDc7OzAwNDcKKzAwNjg7TEFUSU4gU01BTEwgTEVUVEVSIEg7TGw7MDtMOzs7OztOOzs7MDA0ODs7MDA0OAorMDA2OTtMQVRJTiBTTUFMTCBMRVRURVIgSTtMbDswO0w7Ozs7O047OzswMDQ5OzswMDQ5CiswMDZBO0xBVElOIFNNQUxMIExFVFRFUiBKO0xsOzA7TDs7Ozs7Tjs7OzAwNEE7OzAwNEEKKzAwNkI7TEFUSU4gU01BTEwgTEVUVEVSIEs7TGw7MDtMOzs7OztOOzs7MDA0Qjs7MDA0QgorMDA2QztMQVRJTiBTTUFMTCBMRVRURVIgTDtMbDswO0w7Ozs7O047OzswMDRDOzswMDRDCiswMDZEO0xBVElOIFNNQUxMIExFVFRFUiBNO0xsOzA7TDs7Ozs7Tjs7OzAwNEQ7OzAwNEQKKzAwNkU7TEFUSU4gU01BTEwgTEVUVEVSIE47TGw7MDtMOzs7OztOOzs7MDA0RTs7MDA0RQorMDA2RjtMQVRJTiBTTUFMTCBMRVRURVIgTztMbDswO0w7Ozs7O047OzswMDRGOzswMDRGCiswMDcwO0xBVElOIFNNQUxMIExFVFRFUiBQO0xsOzA7TDs7Ozs7Tjs7OzAwNTA7OzAwNTAKKzAwNzE7TEFUSU4gU01BTEwgTEVUVEVSIFE7TGw7MDtMOzs7OztOOzs7MDA1MTs7MDA1MQorMDA3MjtMQVRJTiBTTUFMTCBMRVRURVIgUjtMbDswO0w7Ozs7O047OzswMDUyOzswMDUyCiswMDczO0xBVElOIFNNQUxMIExFVFRFUiBTO0xsOzA7TDs7Ozs7Tjs7OzAwNTM7OzAwNTMKKzAwNzQ7TEFUSU4gU01BTEwgTEVUVEVSIFQ7TGw7MDtMOzs7OztOOzs7MDA1NDs7MDA1NAorMDA3NTtMQVRJTiBTTUFMTCBMRVRURVIgVTtMbDswO0w7Ozs7O047OzswMDU1OzswMDU1CiswMDc2O0xBVElOIFNNQUxMIExFVFRFUiBWO0xsOzA7TDs7Ozs7Tjs7OzAwNTY7OzAwNTYKKzAwNzc7TEFUSU4gU01BTEwgTEVUVEVSIFc7TGw7MDtMOzs7OztOOzs7MDA1Nzs7MDA1NworMDA3ODtMQVRJTiBTTUFMTCBMRVRURVIgWDtMbDswO0w7Ozs7O047OzswMDU4OzswMDU4CiswMDc5O0xBVElOIFNNQUxMIExFVFRFUiBZO0xsOzA7TDs7Ozs7Tjs7OzAwNTk7OzAwNTkKKzAwN0E7TEFUSU4gU01BTEwgTEVUVEVSIFo7TGw7MDtMOzs7OztOOzs7MDA1QTs7MDA1QQorMDA3QjtMRUZUIENVUkxZIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTtPUEVOSU5HIENVUkxZIEJSQUNLRVQ7Ozs7CiswMDdDO1ZFUlRJQ0FMIExJTkU7U207MDtPTjs7Ozs7TjtWRVJUSUNBTCBCQVI7Ozs7CiswMDdEO1JJR0hUIENVUkxZIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTtDTE9TSU5HIENVUkxZIEJSQUNLRVQ7Ozs7CiswMDdFO1RJTERFO1NtOzA7T047Ozs7O047Ozs7OworMDA3Rjs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtERUxFVEU7Ozs7CiswMDgwOzxjb250cm9sPjtDYzswO0JOOzs7OztOOzs7OzsKKzAwODE7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047Ozs7OworMDA4Mjs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtCUkVBSyBQRVJNSVRURUQgSEVSRTs7OzsKKzAwODM7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047Tk8gQlJFQUsgSEVSRTs7OzsKKzAwODQ7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047Ozs7OworMDA4NTs8Y29udHJvbD47Q2M7MDtCOzs7OztOO05FWFQgTElORTs7OzsKKzAwODY7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047U1RBUlQgT0YgU0VMRUNURUQgQVJFQTs7OzsKKzAwODc7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047RU5EIE9GIFNFTEVDVEVEIEFSRUE7Ozs7CiswMDg4Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO0NIQVJBQ1RFUiBUQUJVTEFUSU9OIFNFVDs7OzsKKzAwODk7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047Q0hBUkFDVEVSIFRBQlVMQVRJT04gV0lUSCBKVVNUSUZJQ0FUSU9OOzs7OworMDA4QTs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtMSU5FIFRBQlVMQVRJT04gU0VUOzs7OworMDA4Qjs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtQQVJUSUFMIExJTkUgRE9XTjs7OzsKKzAwOEM7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047UEFSVElBTCBMSU5FIFVQOzs7OworMDA4RDs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtSRVZFUlNFIExJTkUgRkVFRDs7OzsKKzAwOEU7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047U0lOR0xFIFNISUZUIFRXTzs7OzsKKzAwOEY7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047U0lOR0xFIFNISUZUIFRIUkVFOzs7OworMDA5MDs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtERVZJQ0UgQ09OVFJPTCBTVFJJTkc7Ozs7CiswMDkxOzxjb250cm9sPjtDYzswO0JOOzs7OztOO1BSSVZBVEUgVVNFIE9ORTs7OzsKKzAwOTI7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047UFJJVkFURSBVU0UgVFdPOzs7OworMDA5Mzs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtTRVQgVFJBTlNNSVQgU1RBVEU7Ozs7CiswMDk0Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO0NBTkNFTCBDSEFSQUNURVI7Ozs7CiswMDk1Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO01FU1NBR0UgV0FJVElORzs7OzsKKzAwOTY7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047U1RBUlQgT0YgR1VBUkRFRCBBUkVBOzs7OworMDA5Nzs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtFTkQgT0YgR1VBUkRFRCBBUkVBOzs7OworMDA5ODs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtTVEFSVCBPRiBTVFJJTkc7Ozs7CiswMDk5Ozxjb250cm9sPjtDYzswO0JOOzs7OztOOzs7OzsKKzAwOUE7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047U0lOR0xFIENIQVJBQ1RFUiBJTlRST0RVQ0VSOzs7OworMDA5Qjs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtDT05UUk9MIFNFUVVFTkNFIElOVFJPRFVDRVI7Ozs7CiswMDlDOzxjb250cm9sPjtDYzswO0JOOzs7OztOO1NUUklORyBURVJNSU5BVE9SOzs7OworMDA5RDs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtPUEVSQVRJTkcgU1lTVEVNIENPTU1BTkQ7Ozs7CiswMDlFOzxjb250cm9sPjtDYzswO0JOOzs7OztOO1BSSVZBQ1kgTUVTU0FHRTs7OzsKKzAwOUY7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047QVBQTElDQVRJT04gUFJPR1JBTSBDT01NQU5EOzs7OworMDBBMDtOTy1CUkVBSyBTUEFDRTtaczswO0NTOzxub0JyZWFrPiAwMDIwOzs7O047Tk9OLUJSRUFLSU5HIFNQQUNFOzs7OworMDBBMTtJTlZFUlRFRCBFWENMQU1BVElPTiBNQVJLO1BvOzA7T047Ozs7O047Ozs7OworMDBBMjtDRU5UIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CiswMEEzO1BPVU5EIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CiswMEE0O0NVUlJFTkNZIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CiswMEE1O1lFTiBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMDBBNjtCUk9LRU4gQkFSO1NvOzA7T047Ozs7O047QlJPS0VOIFZFUlRJQ0FMIEJBUjs7OzsKKzAwQTc7U0VDVElPTiBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMDBBODtESUFFUkVTSVM7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMDg7Ozs7TjtTUEFDSU5HIERJQUVSRVNJUzs7OzsKKzAwQTk7Q09QWVJJR0hUIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CiswMEFBO0ZFTUlOSU5FIE9SRElOQUwgSU5ESUNBVE9SO0xsOzA7TDs8c3VwZXI+IDAwNjE7Ozs7Tjs7Ozs7CiswMEFCO0xFRlQtUE9JTlRJTkcgRE9VQkxFIEFOR0xFIFFVT1RBVElPTiBNQVJLO1BpOzA7T047Ozs7O1k7TEVGVCBQT0lOVElORyBHVUlMTEVNRVQ7Kjs7OworMDBBQztOT1QgU0lHTjtTbTswO09OOzs7OztOOzs7OzsKKzAwQUQ7U09GVCBIWVBIRU47UGQ7MDtPTjs7Ozs7Tjs7Ozs7CiswMEFFO1JFR0lTVEVSRUQgU0lHTjtTbzswO09OOzs7OztOO1JFR0lTVEVSRUQgVFJBREUgTUFSSyBTSUdOOzs7OworMDBBRjtNQUNST047U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMDQ7Ozs7TjtTUEFDSU5HIE1BQ1JPTjs7OzsKKzAwQjA7REVHUkVFIFNJR047U287MDtFVDs7Ozs7Tjs7Ozs7CiswMEIxO1BMVVMtTUlOVVMgU0lHTjtTbTswO0VUOzs7OztOO1BMVVMtT1ItTUlOVVMgU0lHTjs7OzsKKzAwQjI7U1VQRVJTQ1JJUFQgVFdPO05vOzA7RU47PHN1cGVyPiAwMDMyOzI7MjsyO047U1VQRVJTQ1JJUFQgRElHSVQgVFdPOzs7OworMDBCMztTVVBFUlNDUklQVCBUSFJFRTtObzswO0VOOzxzdXBlcj4gMDAzMzszOzM7MztOO1NVUEVSU0NSSVBUIERJR0lUIFRIUkVFOzs7OworMDBCNDtBQ1VURSBBQ0NFTlQ7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMDE7Ozs7TjtTUEFDSU5HIEFDVVRFOzs7OworMDBCNTtNSUNSTyBTSUdOO0xsOzA7TDs8Y29tcGF0PiAwM0JDOzs7O047OzswMzlDOzswMzlDCiswMEI2O1BJTENST1cgU0lHTjtTbzswO09OOzs7OztOO1BBUkFHUkFQSCBTSUdOOzs7OworMDBCNztNSURETEUgRE9UO1BvOzA7T047Ozs7O047Ozs7OworMDBCODtDRURJTExBO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzI3Ozs7O047U1BBQ0lORyBDRURJTExBOzs7OworMDBCOTtTVVBFUlNDUklQVCBPTkU7Tm87MDtFTjs8c3VwZXI+IDAwMzE7MTsxOzE7TjtTVVBFUlNDUklQVCBESUdJVCBPTkU7Ozs7CiswMEJBO01BU0NVTElORSBPUkRJTkFMIElORElDQVRPUjtMbDswO0w7PHN1cGVyPiAwMDZGOzs7O047Ozs7OworMDBCQjtSSUdIVC1QT0lOVElORyBET1VCTEUgQU5HTEUgUVVPVEFUSU9OIE1BUks7UGY7MDtPTjs7Ozs7WTtSSUdIVCBQT0lOVElORyBHVUlMTEVNRVQ7Kjs7OworMDBCQztWVUxHQVIgRlJBQ1RJT04gT05FIFFVQVJURVI7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzEgMjA0NCAwMDM0Ozs7MS80O047RlJBQ1RJT04gT05FIFFVQVJURVI7Ozs7CiswMEJEO1ZVTEdBUiBGUkFDVElPTiBPTkUgSEFMRjtObzswO09OOzxmcmFjdGlvbj4gMDAzMSAyMDQ0IDAwMzI7OzsxLzI7TjtGUkFDVElPTiBPTkUgSEFMRjs7OzsKKzAwQkU7VlVMR0FSIEZSQUNUSU9OIFRIUkVFIFFVQVJURVJTO05vOzA7T047PGZyYWN0aW9uPiAwMDMzIDIwNDQgMDAzNDs7OzMvNDtOO0ZSQUNUSU9OIFRIUkVFIFFVQVJURVJTOzs7OworMDBCRjtJTlZFUlRFRCBRVUVTVElPTiBNQVJLO1BvOzA7T047Ozs7O047Ozs7OworMDBDMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggR1JBVkU7THU7MDtMOzAwNDEgMDMwMDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgR1JBVkU7OzswMEUwOworMDBDMTtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQUNVVEU7THU7MDtMOzAwNDEgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgQUNVVEU7OzswMEUxOworMDBDMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA0MSAwMzAyOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBDSVJDVU1GTEVYOzs7MDBFMjsKKzAwQzM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIFRJTERFO0x1OzA7TDswMDQxIDAzMDM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFRJTERFOzs7MDBFMzsKKzAwQzQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDA0MSAwMzA4Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBESUFFUkVTSVM7OzswMEU0OworMDBDNTtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggUklORyBBQk9WRTtMdTswO0w7MDA0MSAwMzBBOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBSSU5HOzs7MDBFNTsKKzAwQzY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQUU7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgRTthc2ggKjs7MDBFNjsKKzAwQzc7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBXSVRIIENFRElMTEE7THU7MDtMOzAwNDMgMDMyNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEMgQ0VESUxMQTs7OzAwRTc7CiswMEM4O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBHUkFWRTtMdTswO0w7MDA0NSAwMzAwOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBHUkFWRTs7OzAwRTg7CiswMEM5O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBBQ1VURTtMdTswO0w7MDA0NSAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBBQ1VURTs7OzAwRTk7CiswMENBO0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDQ1IDAzMDI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIENJUkNVTUZMRVg7OzswMEVBOworMDBDQjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggRElBRVJFU0lTO0x1OzA7TDswMDQ1IDAzMDg7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIERJQUVSRVNJUzs7OzAwRUI7CiswMENDO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBHUkFWRTtMdTswO0w7MDA0OSAwMzAwOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBHUkFWRTs7OzAwRUM7CiswMENEO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBBQ1VURTtMdTswO0w7MDA0OSAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBBQ1VURTs7OzAwRUQ7CiswMENFO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDQ5IDAzMDI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIENJUkNVTUZMRVg7OzswMEVFOworMDBDRjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRElBRVJFU0lTO0x1OzA7TDswMDQ5IDAzMDg7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIERJQUVSRVNJUzs7OzAwRUY7CiswMEQwO0xBVElOIENBUElUQUwgTEVUVEVSIEVUSDtMdTswO0w7Ozs7O047O0ljZWxhbmRpYzs7MDBGMDsKKzAwRDE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIFRJTERFO0x1OzA7TDswMDRFIDAzMDM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFRJTERFOzs7MDBGMTsKKzAwRDI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIEdSQVZFO0x1OzA7TDswMDRGIDAzMDA7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIEdSQVZFOzs7MDBGMjsKKzAwRDM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIEFDVVRFO0x1OzA7TDswMDRGIDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIEFDVVRFOzs7MDBGMzsKKzAwRDQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNEYgMDMwMjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gQ0lSQ1VNRkxFWDs7OzAwRjQ7CiswMEQ1O0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBUSUxERTtMdTswO0w7MDA0RiAwMzAzOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBUSUxERTs7OzAwRjU7CiswMEQ2O0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBESUFFUkVTSVM7THU7MDtMOzAwNEYgMDMwODs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gRElBRVJFU0lTOzs7MDBGNjsKKzAwRDc7TVVMVElQTElDQVRJT04gU0lHTjtTbTswO09OOzs7OztOOzs7OzsKKzAwRDg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBTTEFTSDs7OzAwRjg7CiswMEQ5O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBHUkFWRTtMdTswO0w7MDA1NSAwMzAwOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBHUkFWRTs7OzAwRjk7CiswMERBO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBBQ1VURTtMdTswO0w7MDA1NSAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBBQ1VURTs7OzAwRkE7CiswMERCO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDU1IDAzMDI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIENJUkNVTUZMRVg7OzswMEZCOworMDBEQztMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTO0x1OzA7TDswMDU1IDAzMDg7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIERJQUVSRVNJUzs7OzAwRkM7CiswMEREO0xBVElOIENBUElUQUwgTEVUVEVSIFkgV0lUSCBBQ1VURTtMdTswO0w7MDA1OSAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBBQ1VURTs7OzAwRkQ7CiswMERFO0xBVElOIENBUElUQUwgTEVUVEVSIFRIT1JOO0x1OzA7TDs7Ozs7Tjs7SWNlbGFuZGljOzswMEZFOworMDBERjtMQVRJTiBTTUFMTCBMRVRURVIgU0hBUlAgUztMbDswO0w7Ozs7O047O0dlcm1hbjs7OworMDBFMDtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIEdSQVZFO0xsOzA7TDswMDYxIDAzMDA7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBHUkFWRTs7MDBDMDs7MDBDMAorMDBFMTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIEFDVVRFO0xsOzA7TDswMDYxIDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBBQ1VURTs7MDBDMTs7MDBDMQorMDBFMjtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwNjEgMDMwMjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIENJUkNVTUZMRVg7OzAwQzI7OzAwQzIKKzAwRTM7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBUSUxERTtMbDswO0w7MDA2MSAwMzAzOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgVElMREU7OzAwQzM7OzAwQzMKKzAwRTQ7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzAwNjEgMDMwODs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIERJQUVSRVNJUzs7MDBDNDs7MDBDNAorMDBFNTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIFJJTkcgQUJPVkU7TGw7MDtMOzAwNjEgMDMwQTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIFJJTkc7OzAwQzU7OzAwQzUKKzAwRTY7TEFUSU4gU01BTEwgTEVUVEVSIEFFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBFO2FzaCAqOzAwQzY7OzAwQzYKKzAwRTc7TEFUSU4gU01BTEwgTEVUVEVSIEMgV0lUSCBDRURJTExBO0xsOzA7TDswMDYzIDAzMjc7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQyBDRURJTExBOzswMEM3OzswMEM3CiswMEU4O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggR1JBVkU7TGw7MDtMOzAwNjUgMDMwMDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBFIEdSQVZFOzswMEM4OzswMEM4CiswMEU5O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQUNVVEU7TGw7MDtMOzAwNjUgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBFIEFDVVRFOzswMEM5OzswMEM5CiswMEVBO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA2NSAwMzAyOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEUgQ0lSQ1VNRkxFWDs7MDBDQTs7MDBDQQorMDBFQjtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDA2NSAwMzA4Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEUgRElBRVJFU0lTOzswMENCOzswMENCCiswMEVDO0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggR1JBVkU7TGw7MDtMOzAwNjkgMDMwMDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBJIEdSQVZFOzswMENDOzswMENDCiswMEVEO0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggQUNVVEU7TGw7MDtMOzAwNjkgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBJIEFDVVRFOzswMENEOzswMENECiswMEVFO0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA2OSAwMzAyOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEkgQ0lSQ1VNRkxFWDs7MDBDRTs7MDBDRQorMDBFRjtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDA2OSAwMzA4Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEkgRElBRVJFU0lTOzswMENGOzswMENGCiswMEYwO0xBVElOIFNNQUxMIExFVFRFUiBFVEg7TGw7MDtMOzs7OztOOztJY2VsYW5kaWM7MDBEMDs7MDBEMAorMDBGMTtMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIFRJTERFO0xsOzA7TDswMDZFIDAzMDM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTiBUSUxERTs7MDBEMTs7MDBEMQorMDBGMjtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIEdSQVZFO0xsOzA7TDswMDZGIDAzMDA7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBHUkFWRTs7MDBEMjs7MDBEMgorMDBGMztMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIEFDVVRFO0xsOzA7TDswMDZGIDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBBQ1VURTs7MDBEMzs7MDBEMworMDBGNDtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwNkYgMDMwMjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIENJUkNVTUZMRVg7OzAwRDQ7OzAwRDQKKzAwRjU7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBUSUxERTtMbDswO0w7MDA2RiAwMzAzOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gVElMREU7OzAwRDU7OzAwRDUKKzAwRjY7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBESUFFUkVTSVM7TGw7MDtMOzAwNkYgMDMwODs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIERJQUVSRVNJUzs7MDBENjs7MDBENgorMDBGNztESVZJU0lPTiBTSUdOO1NtOzA7T047Ozs7O047Ozs7OworMDBGODtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gU0xBU0g7OzAwRDg7OzAwRDgKKzAwRjk7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBHUkFWRTtMbDswO0w7MDA3NSAwMzAwOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgR1JBVkU7OzAwRDk7OzAwRDkKKzAwRkE7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBBQ1VURTtMbDswO0w7MDA3NSAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgQUNVVEU7OzAwREE7OzAwREEKKzAwRkI7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDc1IDAzMDI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBDSVJDVU1GTEVYOzswMERCOzswMERCCiswMEZDO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTO0xsOzA7TDswMDc1IDAzMDg7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBESUFFUkVTSVM7OzAwREM7OzAwREMKKzAwRkQ7TEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBBQ1VURTtMbDswO0w7MDA3OSAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFkgQUNVVEU7OzAwREQ7OzAwREQKKzAwRkU7TEFUSU4gU01BTEwgTEVUVEVSIFRIT1JOO0xsOzA7TDs7Ozs7Tjs7SWNlbGFuZGljOzAwREU7OzAwREUKKzAwRkY7TEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzAwNzkgMDMwODs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBZIERJQUVSRVNJUzs7MDE3ODs7MDE3OAorMDEwMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggTUFDUk9OO0x1OzA7TDswMDQxIDAzMDQ7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIE1BQ1JPTjs7OzAxMDE7CiswMTAxO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggTUFDUk9OO0xsOzA7TDswMDYxIDAzMDQ7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBNQUNST047OzAxMDA7OzAxMDAKKzAxMDI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEJSRVZFO0x1OzA7TDswMDQxIDAzMDY7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIEJSRVZFOzs7MDEwMzsKKzAxMDM7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBCUkVWRTtMbDswO0w7MDA2MSAwMzA2Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgQlJFVkU7OzAxMDI7OzAxMDIKKzAxMDQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIE9HT05FSztMdTswO0w7MDA0MSAwMzI4Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBPR09ORUs7OzswMTA1OworMDEwNTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIE9HT05FSztMbDswO0w7MDA2MSAwMzI4Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgT0dPTkVLOzswMTA0OzswMTA0CiswMTA2O0xBVElOIENBUElUQUwgTEVUVEVSIEMgV0lUSCBBQ1VURTtMdTswO0w7MDA0MyAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBBQ1VURTs7OzAxMDc7CiswMTA3O0xBVElOIFNNQUxMIExFVFRFUiBDIFdJVEggQUNVVEU7TGw7MDtMOzAwNjMgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBDIEFDVVRFOzswMTA2OzswMTA2CiswMTA4O0xBVElOIENBUElUQUwgTEVUVEVSIEMgV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDQzIDAzMDI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBDIENJUkNVTUZMRVg7OzswMTA5OworMDEwOTtMQVRJTiBTTUFMTCBMRVRURVIgQyBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwNjMgMDMwMjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBDIENJUkNVTUZMRVg7OzAxMDg7OzAxMDgKKzAxMEE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA0MyAwMzA3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBET1Q7OzswMTBCOworMDEwQjtMQVRJTiBTTUFMTCBMRVRURVIgQyBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA2MyAwMzA3Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEMgRE9UOzswMTBBOzswMTBBCiswMTBDO0xBVElOIENBUElUQUwgTEVUVEVSIEMgV0lUSCBDQVJPTjtMdTswO0w7MDA0MyAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBIQUNFSzs7OzAxMEQ7CiswMTBEO0xBVElOIFNNQUxMIExFVFRFUiBDIFdJVEggQ0FST047TGw7MDtMOzAwNjMgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBDIEhBQ0VLOzswMTBDOzswMTBDCiswMTBFO0xBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBDQVJPTjtMdTswO0w7MDA0NCAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBIQUNFSzs7OzAxMEY7CiswMTBGO0xBVElOIFNNQUxMIExFVFRFUiBEIFdJVEggQ0FST047TGw7MDtMOzAwNjQgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBEIEhBQ0VLOzswMTBFOzswMTBFCiswMTEwO0xBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEQgQkFSOzs7MDExMTsKKzAxMTE7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBEIEJBUjs7MDExMDs7MDExMAorMDExMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggTUFDUk9OO0x1OzA7TDswMDQ1IDAzMDQ7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIE1BQ1JPTjs7OzAxMTM7CiswMTEzO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggTUFDUk9OO0xsOzA7TDswMDY1IDAzMDQ7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRSBNQUNST047OzAxMTI7OzAxMTIKKzAxMTQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIEJSRVZFO0x1OzA7TDswMDQ1IDAzMDY7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIEJSRVZFOzs7MDExNTsKKzAxMTU7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBCUkVWRTtMbDswO0w7MDA2NSAwMzA2Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEUgQlJFVkU7OzAxMTQ7OzAxMTQKKzAxMTY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA0NSAwMzA3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBET1Q7OzswMTE3OworMDExNztMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA2NSAwMzA3Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEUgRE9UOzswMTE2OzswMTE2CiswMTE4O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBPR09ORUs7THU7MDtMOzAwNDUgMDMyODs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEUgT0dPTkVLOzs7MDExOTsKKzAxMTk7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBPR09ORUs7TGw7MDtMOzAwNjUgMDMyODs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBFIE9HT05FSzs7MDExODs7MDExOAorMDExQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0FST047THU7MDtMOzAwNDUgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEUgSEFDRUs7OzswMTFCOworMDExQjtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIENBUk9OO0xsOzA7TDswMDY1IDAzMEM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRSBIQUNFSzs7MDExQTs7MDExQQorMDExQztMQVRJTiBDQVBJVEFMIExFVFRFUiBHIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA0NyAwMzAyOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBDSVJDVU1GTEVYOzs7MDExRDsKKzAxMUQ7TEFUSU4gU01BTEwgTEVUVEVSIEcgV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDY3IDAzMDI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRyBDSVJDVU1GTEVYOzswMTFDOzswMTFDCiswMTFFO0xBVElOIENBUElUQUwgTEVUVEVSIEcgV0lUSCBCUkVWRTtMdTswO0w7MDA0NyAwMzA2Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBCUkVWRTs7OzAxMUY7CiswMTFGO0xBVElOIFNNQUxMIExFVFRFUiBHIFdJVEggQlJFVkU7TGw7MDtMOzAwNjcgMDMwNjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBHIEJSRVZFOzswMTFFOzswMTFFCiswMTIwO0xBVElOIENBUElUQUwgTEVUVEVSIEcgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNDcgMDMwNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEcgRE9UOzs7MDEyMTsKKzAxMjE7TEFUSU4gU01BTEwgTEVUVEVSIEcgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNjcgMDMwNzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBHIERPVDs7MDEyMDs7MDEyMAorMDEyMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIFdJVEggQ0VESUxMQTtMdTswO0w7MDA0NyAwMzI3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBDRURJTExBOzs7MDEyMzsKKzAxMjM7TEFUSU4gU01BTEwgTEVUVEVSIEcgV0lUSCBDRURJTExBO0xsOzA7TDswMDY3IDAzMjc7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRyBDRURJTExBOzswMTIyOzswMTIyCiswMTI0O0xBVElOIENBUElUQUwgTEVUVEVSIEggV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDQ4IDAzMDI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBIIENJUkNVTUZMRVg7OzswMTI1OworMDEyNTtMQVRJTiBTTUFMTCBMRVRURVIgSCBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwNjggMDMwMjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBIIENJUkNVTUZMRVg7OzAxMjQ7OzAxMjQKKzAxMjY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSCBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSCBCQVI7OzswMTI3OworMDEyNztMQVRJTiBTTUFMTCBMRVRURVIgSCBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEggQkFSOzswMTI2OzswMTI2CiswMTI4O0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBUSUxERTtMdTswO0w7MDA0OSAwMzAzOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBUSUxERTs7OzAxMjk7CiswMTI5O0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggVElMREU7TGw7MDtMOzAwNjkgMDMwMzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBJIFRJTERFOzswMTI4OzswMTI4CiswMTJBO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBNQUNST047THU7MDtMOzAwNDkgMDMwNDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEkgTUFDUk9OOzs7MDEyQjsKKzAxMkI7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBNQUNST047TGw7MDtMOzAwNjkgMDMwNDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBJIE1BQ1JPTjs7MDEyQTs7MDEyQQorMDEyQztMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggQlJFVkU7THU7MDtMOzAwNDkgMDMwNjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEkgQlJFVkU7OzswMTJEOworMDEyRDtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIEJSRVZFO0xsOzA7TDswMDY5IDAzMDY7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSSBCUkVWRTs7MDEyQzs7MDEyQworMDEyRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggT0dPTkVLO0x1OzA7TDswMDQ5IDAzMjg7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIE9HT05FSzs7OzAxMkY7CiswMTJGO0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggT0dPTkVLO0xsOzA7TDswMDY5IDAzMjg7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSSBPR09ORUs7OzAxMkU7OzAxMkUKKzAxMzA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA0OSAwMzA3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBET1Q7OzswMDY5OworMDEzMTtMQVRJTiBTTUFMTCBMRVRURVIgRE9UTEVTUyBJO0xsOzA7TDs7Ozs7Tjs7OzAwNDk7OzAwNDkKKzAxMzI7TEFUSU4gQ0FQSVRBTCBMSUdBVFVSRSBJSjtMdTswO0w7PGNvbXBhdD4gMDA0OSAwMDRBOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBKOzs7MDEzMzsKKzAxMzM7TEFUSU4gU01BTEwgTElHQVRVUkUgSUo7TGw7MDtMOzxjb21wYXQ+IDAwNjkgMDA2QTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBJIEo7OzAxMzI7OzAxMzIKKzAxMzQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSiBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNEEgMDMwMjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEogQ0lSQ1VNRkxFWDs7OzAxMzU7CiswMTM1O0xBVElOIFNNQUxMIExFVFRFUiBKIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA2QSAwMzAyOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEogQ0lSQ1VNRkxFWDs7MDEzNDs7MDEzNAorMDEzNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBLIFdJVEggQ0VESUxMQTtMdTswO0w7MDA0QiAwMzI3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSyBDRURJTExBOzs7MDEzNzsKKzAxMzc7TEFUSU4gU01BTEwgTEVUVEVSIEsgV0lUSCBDRURJTExBO0xsOzA7TDswMDZCIDAzMjc7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSyBDRURJTExBOzswMTM2OzswMTM2CiswMTM4O0xBVElOIFNNQUxMIExFVFRFUiBLUkE7TGw7MDtMOzs7OztOOztHcmVlbmxhbmRpYzs7OworMDEzOTtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggQUNVVEU7THU7MDtMOzAwNEMgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEwgQUNVVEU7OzswMTNBOworMDEzQTtMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIEFDVVRFO0xsOzA7TDswMDZDIDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTCBBQ1VURTs7MDEzOTs7MDEzOQorMDEzQjtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggQ0VESUxMQTtMdTswO0w7MDA0QyAwMzI3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBDRURJTExBOzs7MDEzQzsKKzAxM0M7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBDRURJTExBO0xsOzA7TDswMDZDIDAzMjc7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTCBDRURJTExBOzswMTNCOzswMTNCCiswMTNEO0xBVElOIENBUElUQUwgTEVUVEVSIEwgV0lUSCBDQVJPTjtMdTswO0w7MDA0QyAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBIQUNFSzs7OzAxM0U7CiswMTNFO0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggQ0FST047TGw7MDtMOzAwNkMgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBMIEhBQ0VLOzswMTNEOzswMTNECiswMTNGO0xBVElOIENBUElUQUwgTEVUVEVSIEwgV0lUSCBNSURETEUgRE9UO0x1OzA7TDs8Y29tcGF0PiAwMDRDIDAwQjc7Ozs7Tjs7OzswMTQwOworMDE0MDtMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIE1JRERMRSBET1Q7TGw7MDtMOzxjb21wYXQ+IDAwNkMgMDBCNzs7OztOOzs7MDEzRjs7MDEzRgorMDE0MTtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFNMQVNIOzs7MDE0MjsKKzAxNDI7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBMIFNMQVNIOzswMTQxOzswMTQxCiswMTQzO0xBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBBQ1VURTtMdTswO0w7MDA0RSAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBBQ1VURTs7OzAxNDQ7CiswMTQ0O0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggQUNVVEU7TGw7MDtMOzAwNkUgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBOIEFDVVRFOzswMTQzOzswMTQzCiswMTQ1O0xBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBDRURJTExBO0x1OzA7TDswMDRFIDAzMjc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIENFRElMTEE7OzswMTQ2OworMDE0NjtMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIENFRElMTEE7TGw7MDtMOzAwNkUgMDMyNzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBOIENFRElMTEE7OzAxNDU7OzAxNDUKKzAxNDc7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIENBUk9OO0x1OzA7TDswMDRFIDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIEhBQ0VLOzs7MDE0ODsKKzAxNDg7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBDQVJPTjtMbDswO0w7MDA2RSAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIE4gSEFDRUs7OzAxNDc7OzAxNDcKKzAxNDk7TEFUSU4gU01BTEwgTEVUVEVSIE4gUFJFQ0VERUQgQlkgQVBPU1RST1BIRTtMbDswO0w7PGNvbXBhdD4gMDJCQyAwMDZFOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEFQT1NUUk9QSEUgTjs7OzsKKzAxNEE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRU5HO0x1OzA7TDs7Ozs7Tjs7U2FtaTs7MDE0QjsKKzAxNEI7TEFUSU4gU01BTEwgTEVUVEVSIEVORztMbDswO0w7Ozs7O047O1NhbWk7MDE0QTs7MDE0QQorMDE0QztMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggTUFDUk9OO0x1OzA7TDswMDRGIDAzMDQ7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIE1BQ1JPTjs7OzAxNEQ7CiswMTREO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggTUFDUk9OO0xsOzA7TDswMDZGIDAzMDQ7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBNQUNST047OzAxNEM7OzAxNEMKKzAxNEU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIEJSRVZFO0x1OzA7TDswMDRGIDAzMDY7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIEJSRVZFOzs7MDE0RjsKKzAxNEY7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBCUkVWRTtMbDswO0w7MDA2RiAwMzA2Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gQlJFVkU7OzAxNEU7OzAxNEUKKzAxNTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIERPVUJMRSBBQ1VURTtMdTswO0w7MDA0RiAwMzBCOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBET1VCTEUgQUNVVEU7OzswMTUxOworMDE1MTtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIERPVUJMRSBBQ1VURTtMbDswO0w7MDA2RiAwMzBCOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gRE9VQkxFIEFDVVRFOzswMTUwOzswMTUwCiswMTUyO0xBVElOIENBUElUQUwgTElHQVRVUkUgT0U7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gRTs7OzAxNTM7CiswMTUzO0xBVElOIFNNQUxMIExJR0FUVVJFIE9FO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBFOzswMTUyOzswMTUyCiswMTU0O0xBVElOIENBUElUQUwgTEVUVEVSIFIgV0lUSCBBQ1VURTtMdTswO0w7MDA1MiAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBBQ1VURTs7OzAxNTU7CiswMTU1O0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggQUNVVEU7TGw7MDtMOzAwNzIgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBSIEFDVVRFOzswMTU0OzswMTU0CiswMTU2O0xBVElOIENBUElUQUwgTEVUVEVSIFIgV0lUSCBDRURJTExBO0x1OzA7TDswMDUyIDAzMjc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBSIENFRElMTEE7OzswMTU3OworMDE1NztMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIENFRElMTEE7TGw7MDtMOzAwNzIgMDMyNzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBSIENFRElMTEE7OzAxNTY7OzAxNTYKKzAxNTg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBXSVRIIENBUk9OO0x1OzA7TDswMDUyIDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBSIEhBQ0VLOzs7MDE1OTsKKzAxNTk7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBDQVJPTjtMbDswO0w7MDA3MiAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFIgSEFDRUs7OzAxNTg7OzAxNTgKKzAxNUE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBXSVRIIEFDVVRFO0x1OzA7TDswMDUzIDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIEFDVVRFOzs7MDE1QjsKKzAxNUI7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBBQ1VURTtMbDswO0w7MDA3MyAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFMgQUNVVEU7OzAxNUE7OzAxNUEKKzAxNUM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNTMgMDMwMjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFMgQ0lSQ1VNRkxFWDs7OzAxNUQ7CiswMTVEO0xBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA3MyAwMzAyOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFMgQ0lSQ1VNRkxFWDs7MDE1Qzs7MDE1QworMDE1RTtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIFdJVEggQ0VESUxMQTtMdTswO0w7MDA1MyAwMzI3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBDRURJTExBOyo7OzAxNUY7CiswMTVGO0xBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggQ0VESUxMQTtMbDswO0w7MDA3MyAwMzI3Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFMgQ0VESUxMQTsqOzAxNUU7OzAxNUUKKzAxNjA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBXSVRIIENBUk9OO0x1OzA7TDswMDUzIDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIEhBQ0VLOzs7MDE2MTsKKzAxNjE7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBDQVJPTjtMbDswO0w7MDA3MyAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFMgSEFDRUs7OzAxNjA7OzAxNjAKKzAxNjI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBXSVRIIENFRElMTEE7THU7MDtMOzAwNTQgMDMyNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFQgQ0VESUxMQTsqOzswMTYzOworMDE2MztMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIENFRElMTEE7TGw7MDtMOzAwNzQgMDMyNzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBUIENFRElMTEE7KjswMTYyOzswMTYyCiswMTY0O0xBVElOIENBUElUQUwgTEVUVEVSIFQgV0lUSCBDQVJPTjtMdTswO0w7MDA1NCAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBIQUNFSzs7OzAxNjU7CiswMTY1O0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggQ0FST047TGw7MDtMOzAwNzQgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBUIEhBQ0VLOzswMTY0OzswMTY0CiswMTY2O0xBVElOIENBUElUQUwgTEVUVEVSIFQgV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFQgQkFSOzs7MDE2NzsKKzAxNjc7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBUIEJBUjs7MDE2Njs7MDE2NgorMDE2ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggVElMREU7THU7MDtMOzAwNTUgMDMwMzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgVElMREU7OzswMTY5OworMDE2OTtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIFRJTERFO0xsOzA7TDswMDc1IDAzMDM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBUSUxERTs7MDE2ODs7MDE2OAorMDE2QTtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggTUFDUk9OO0x1OzA7TDswMDU1IDAzMDQ7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIE1BQ1JPTjs7OzAxNkI7CiswMTZCO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggTUFDUk9OO0xsOzA7TDswMDc1IDAzMDQ7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBNQUNST047OzAxNkE7OzAxNkEKKzAxNkM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEJSRVZFO0x1OzA7TDswMDU1IDAzMDY7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIEJSRVZFOzs7MDE2RDsKKzAxNkQ7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBCUkVWRTtMbDswO0w7MDA3NSAwMzA2Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgQlJFVkU7OzAxNkM7OzAxNkMKKzAxNkU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIFJJTkcgQUJPVkU7THU7MDtMOzAwNTUgMDMwQTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgUklORzs7OzAxNkY7CiswMTZGO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggUklORyBBQk9WRTtMbDswO0w7MDA3NSAwMzBBOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgUklORzs7MDE2RTs7MDE2RQorMDE3MDtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggRE9VQkxFIEFDVVRFO0x1OzA7TDswMDU1IDAzMEI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIERPVUJMRSBBQ1VURTs7OzAxNzE7CiswMTcxO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRE9VQkxFIEFDVVRFO0xsOzA7TDswMDc1IDAzMEI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBET1VCTEUgQUNVVEU7OzAxNzA7OzAxNzAKKzAxNzI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIE9HT05FSztMdTswO0w7MDA1NSAwMzI4Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBPR09ORUs7OzswMTczOworMDE3MztMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIE9HT05FSztMbDswO0w7MDA3NSAwMzI4Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgT0dPTkVLOzswMTcyOzswMTcyCiswMTc0O0xBVElOIENBUElUQUwgTEVUVEVSIFcgV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDU3IDAzMDI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBXIENJUkNVTUZMRVg7OzswMTc1OworMDE3NTtMQVRJTiBTTUFMTCBMRVRURVIgVyBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwNzcgMDMwMjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBXIENJUkNVTUZMRVg7OzAxNzQ7OzAxNzQKKzAxNzY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNTkgMDMwMjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFkgQ0lSQ1VNRkxFWDs7OzAxNzc7CiswMTc3O0xBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA3OSAwMzAyOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFkgQ0lSQ1VNRkxFWDs7MDE3Njs7MDE3NgorMDE3ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggRElBRVJFU0lTO0x1OzA7TDswMDU5IDAzMDg7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIERJQUVSRVNJUzs7OzAwRkY7CiswMTc5O0xBVElOIENBUElUQUwgTEVUVEVSIFogV0lUSCBBQ1VURTtMdTswO0w7MDA1QSAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBBQ1VURTs7OzAxN0E7CiswMTdBO0xBVElOIFNNQUxMIExFVFRFUiBaIFdJVEggQUNVVEU7TGw7MDtMOzAwN0EgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBaIEFDVVRFOzswMTc5OzswMTc5CiswMTdCO0xBVElOIENBUElUQUwgTEVUVEVSIFogV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNUEgMDMwNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFogRE9UOzs7MDE3QzsKKzAxN0M7TEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwN0EgMDMwNzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBaIERPVDs7MDE3Qjs7MDE3QgorMDE3RDtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIFdJVEggQ0FST047THU7MDtMOzAwNUEgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFogSEFDRUs7OzswMTdFOworMDE3RTtMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIENBUk9OO0xsOzA7TDswMDdBIDAzMEM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWiBIQUNFSzs7MDE3RDs7MDE3RAorMDE3RjtMQVRJTiBTTUFMTCBMRVRURVIgTE9ORyBTO0xsOzA7TDs8Y29tcGF0PiAwMDczOzs7O047OzswMDUzOzswMDUzCiswMTgwO0xBVElOIFNNQUxMIExFVFRFUiBCIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQiBCQVI7Ozs7CiswMTgxO0xBVElOIENBUElUQUwgTEVUVEVSIEIgV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBCIEhPT0s7OzswMjUzOworMDE4MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBCIFdJVEggVE9QQkFSO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBCIFRPUEJBUjs7OzAxODM7CiswMTgzO0xBVElOIFNNQUxMIExFVFRFUiBCIFdJVEggVE9QQkFSO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQiBUT1BCQVI7OzAxODI7OzAxODIKKzAxODQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVE9ORSBTSVg7THU7MDtMOzs7OztOOzs7OzAxODU7CiswMTg1O0xBVElOIFNNQUxMIExFVFRFUiBUT05FIFNJWDtMbDswO0w7Ozs7O047OzswMTg0OzswMTg0CiswMTg2O0xBVElOIENBUElUQUwgTEVUVEVSIE9QRU4gTztMdTswO0w7Ozs7O047Ozs7MDI1NDsKKzAxODc7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBXSVRIIEhPT0s7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEMgSE9PSzs7OzAxODg7CiswMTg4O0xBVElOIFNNQUxMIExFVFRFUiBDIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEMgSE9PSzs7MDE4Nzs7MDE4NworMDE4OTtMQVRJTiBDQVBJVEFMIExFVFRFUiBBRlJJQ0FOIEQ7THU7MDtMOzs7OztOOzsqOzswMjU2OworMDE4QTtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFdJVEggSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBIT09LOzs7MDI1NzsKKzAxOEI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIFRPUEJBUjtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBUT1BCQVI7OzswMThDOworMDE4QztMQVRJTiBTTUFMTCBMRVRURVIgRCBXSVRIIFRPUEJBUjtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEQgVE9QQkFSOzswMThCOzswMThCCiswMThEO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgREVMVEE7TGw7MDtMOzs7OztOOzs7OzsKKzAxOEU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUkVWRVJTRUQgRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVFVSTkVEIEU7OzswMUREOworMDE4RjtMQVRJTiBDQVBJVEFMIExFVFRFUiBTQ0hXQTtMdTswO0w7Ozs7O047Ozs7MDI1OTsKKzAxOTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgT1BFTiBFO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFUFNJTE9OOzs7MDI1QjsKKzAxOTE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRiBXSVRIIEhPT0s7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEYgSE9PSzs7OzAxOTI7CiswMTkyO0xBVElOIFNNQUxMIExFVFRFUiBGIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFNDUklQVCBGOzswMTkxOzswMTkxCiswMTkzO0xBVElOIENBUElUQUwgTEVUVEVSIEcgV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIEhPT0s7OzswMjYwOworMDE5NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBHQU1NQTtMdTswO0w7Ozs7O047Ozs7MDI2MzsKKzAxOTU7TEFUSU4gU01BTEwgTEVUVEVSIEhWO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSCBWO2h3YWlyOzAxRjY7OzAxRjYKKzAxOTY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSU9UQTtMdTswO0w7Ozs7O047Ozs7MDI2OTsKKzAxOTc7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQkFSUkVEIEk7OzswMjY4OworMDE5ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBLIFdJVEggSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSyBIT09LOzs7MDE5OTsKKzAxOTk7TEFUSU4gU01BTEwgTEVUVEVSIEsgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSyBIT09LOzswMTk4OzswMTk4CiswMTlBO0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggQkFSO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQkFSUkVEIEw7Ozs7CiswMTlCO0xBVElOIFNNQUxMIExFVFRFUiBMQU1CREEgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBCQVJSRUQgTEFNQkRBOzs7OworMDE5QztMQVRJTiBDQVBJVEFMIExFVFRFUiBUVVJORUQgTTtMdTswO0w7Ozs7O047Ozs7MDI2RjsKKzAxOUQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIExFRlQgSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBIT09LOzs7MDI3MjsKKzAxOUU7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBMT05HIFJJR0hUIExFRztMbDswO0w7Ozs7O047Ozs7OworMDE5RjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggTUlERExFIFRJTERFO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBCQVJSRUQgTzsqOzswMjc1OworMDFBMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggSE9STjtMdTswO0w7MDA0RiAwMzFCOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBIT1JOOzs7MDFBMTsKKzAxQTE7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBIT1JOO0xsOzA7TDswMDZGIDAzMUI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBIT1JOOzswMUEwOzswMUEwCiswMUEyO0xBVElOIENBUElUQUwgTEVUVEVSIE9JO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIEk7Z2hhOzswMUEzOworMDFBMztMQVRJTiBTTUFMTCBMRVRURVIgT0k7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIEk7Z2hhOzAxQTI7OzAxQTIKKzAxQTQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUCBXSVRIIEhPT0s7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFAgSE9PSzs7OzAxQTU7CiswMUE1O0xBVElOIFNNQUxMIExFVFRFUiBQIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFAgSE9PSzs7MDFBNDs7MDFBNAorMDFBNjtMQVRJTiBMRVRURVIgWVI7THU7MDtMOzs7OztOO0xBVElOIExFVFRFUiBZIFI7Kjs7MDI4MDsKKzAxQTc7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVE9ORSBUV087THU7MDtMOzs7OztOOzs7OzAxQTg7CiswMUE4O0xBVElOIFNNQUxMIExFVFRFUiBUT05FIFRXTztMbDswO0w7Ozs7O047OzswMUE3OzswMUE3CiswMUE5O0xBVElOIENBUElUQUwgTEVUVEVSIEVTSDtMdTswO0w7Ozs7O047Ozs7MDI4MzsKKzAxQUE7TEFUSU4gTEVUVEVSIFJFVkVSU0VEIEVTSCBMT09QO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMUFCO0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggUEFMQVRBTCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVCBQQUxBVEFMIEhPT0s7Ozs7CiswMUFDO0xBVElOIENBUElUQUwgTEVUVEVSIFQgV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIEhPT0s7OzswMUFEOworMDFBRDtMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBUIEhPT0s7OzAxQUM7OzAxQUMKKzAxQUU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBXSVRIIFJFVFJPRkxFWCBIT09LO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFJFVFJPRkxFWCBIT09LOzs7MDI4ODsKKzAxQUY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEhPUk47THU7MDtMOzAwNTUgMDMxQjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgSE9STjs7OzAxQjA7CiswMUIwO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggSE9STjtMbDswO0w7MDA3NSAwMzFCOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgSE9STjs7MDFBRjs7MDFBRgorMDFCMTtMQVRJTiBDQVBJVEFMIExFVFRFUiBVUFNJTE9OO0x1OzA7TDs7Ozs7Tjs7OzswMjhBOworMDFCMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBWIFdJVEggSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgU0NSSVBUIFY7OzswMjhCOworMDFCMztMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBIT09LOzs7MDFCNDsKKzAxQjQ7TEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWSBIT09LOzswMUIzOzswMUIzCiswMUI1O0xBVElOIENBUElUQUwgTEVUVEVSIFogV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFogQkFSOzs7MDFCNjsKKzAxQjY7TEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBaIEJBUjs7MDFCNTs7MDFCNQorMDFCNztMQVRJTiBDQVBJVEFMIExFVFRFUiBFWkg7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFlPR0g7OzswMjkyOworMDFCODtMQVRJTiBDQVBJVEFMIExFVFRFUiBFWkggUkVWRVJTRUQ7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFJFVkVSU0VEIFlPR0g7OzswMUI5OworMDFCOTtMQVRJTiBTTUFMTCBMRVRURVIgRVpIIFJFVkVSU0VEO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUkVWRVJTRUQgWU9HSDs7MDFCODs7MDFCOAorMDFCQTtMQVRJTiBTTUFMTCBMRVRURVIgRVpIIFdJVEggVEFJTDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFlPR0ggV0lUSCBUQUlMOzs7OworMDFCQjtMQVRJTiBMRVRURVIgVFdPIFdJVEggU1RST0tFO0xvOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgVFdPIEJBUjs7OzsKKzAxQkM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVE9ORSBGSVZFO0x1OzA7TDs7Ozs7Tjs7OzswMUJEOworMDFCRDtMQVRJTiBTTUFMTCBMRVRURVIgVE9ORSBGSVZFO0xsOzA7TDs7Ozs7Tjs7OzAxQkM7OzAxQkMKKzAxQkU7TEFUSU4gTEVUVEVSIElOVkVSVEVEIEdMT1RUQUwgU1RPUCBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gTEVUVEVSIElOVkVSVEVEIEdMT1RUQUwgU1RPUCBCQVI7Ozs7CiswMUJGO0xBVElOIExFVFRFUiBXWU5OO0xsOzA7TDs7Ozs7Tjs7OzAxRjc7OzAxRjcKKzAxQzA7TEFUSU4gTEVUVEVSIERFTlRBTCBDTElDSztMbzswO0w7Ozs7O047TEFUSU4gTEVUVEVSIFBJUEU7Ozs7CiswMUMxO0xBVElOIExFVFRFUiBMQVRFUkFMIENMSUNLO0xvOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgRE9VQkxFIFBJUEU7Ozs7CiswMUMyO0xBVElOIExFVFRFUiBBTFZFT0xBUiBDTElDSztMbzswO0w7Ozs7O047TEFUSU4gTEVUVEVSIFBJUEUgRE9VQkxFIEJBUjs7OzsKKzAxQzM7TEFUSU4gTEVUVEVSIFJFVFJPRkxFWCBDTElDSztMbzswO0w7Ozs7O047TEFUSU4gTEVUVEVSIEVYQ0xBTUFUSU9OIE1BUks7Ozs7CiswMUM0O0xBVElOIENBUElUQUwgTEVUVEVSIERaIFdJVEggQ0FST047THU7MDtMOzxjb21wYXQ+IDAwNDQgMDE3RDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEQgWiBIQUNFSzs7OzAxQzY7MDFDNQorMDFDNTtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFdJVEggU01BTEwgTEVUVEVSIFogV0lUSCBDQVJPTjtMdDswO0w7PGNvbXBhdD4gMDA0NCAwMTdFOzs7O047TEFUSU4gTEVUVEVSIENBUElUQUwgRCBTTUFMTCBaIEhBQ0VLOzswMUM0OzAxQzY7CiswMUM2O0xBVElOIFNNQUxMIExFVFRFUiBEWiBXSVRIIENBUk9OO0xsOzA7TDs8Y29tcGF0PiAwMDY0IDAxN0U7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRCBaIEhBQ0VLOzswMUM0OzswMUM1CiswMUM3O0xBVElOIENBUElUQUwgTEVUVEVSIExKO0x1OzA7TDs8Y29tcGF0PiAwMDRDIDAwNEE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIEo7OzswMUM5OzAxQzgKKzAxQzg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIFNNQUxMIExFVFRFUiBKO0x0OzA7TDs8Y29tcGF0PiAwMDRDIDAwNkE7Ozs7TjtMQVRJTiBMRVRURVIgQ0FQSVRBTCBMIFNNQUxMIEo7OzAxQzc7MDFDOTsKKzAxQzk7TEFUSU4gU01BTEwgTEVUVEVSIExKO0xsOzA7TDs8Y29tcGF0PiAwMDZDIDAwNkE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTCBKOzswMUM3OzswMUM4CiswMUNBO0xBVElOIENBUElUQUwgTEVUVEVSIE5KO0x1OzA7TDs8Y29tcGF0PiAwMDRFIDAwNEE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIEo7OzswMUNDOzAxQ0IKKzAxQ0I7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIFNNQUxMIExFVFRFUiBKO0x0OzA7TDs8Y29tcGF0PiAwMDRFIDAwNkE7Ozs7TjtMQVRJTiBMRVRURVIgQ0FQSVRBTCBOIFNNQUxMIEo7OzAxQ0E7MDFDQzsKKzAxQ0M7TEFUSU4gU01BTEwgTEVUVEVSIE5KO0xsOzA7TDs8Y29tcGF0PiAwMDZFIDAwNkE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTiBKOzswMUNBOzswMUNCCiswMUNEO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBDQVJPTjtMdTswO0w7MDA0MSAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBIQUNFSzs7OzAxQ0U7CiswMUNFO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQ0FST047TGw7MDtMOzAwNjEgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIEhBQ0VLOzswMUNEOzswMUNECiswMUNGO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBDQVJPTjtMdTswO0w7MDA0OSAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBIQUNFSzs7OzAxRDA7CiswMUQwO0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggQ0FST047TGw7MDtMOzAwNjkgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBJIEhBQ0VLOzswMUNGOzswMUNGCiswMUQxO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBDQVJPTjtMdTswO0w7MDA0RiAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBIQUNFSzs7OzAxRDI7CiswMUQyO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQ0FST047TGw7MDtMOzAwNkYgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIEhBQ0VLOzswMUQxOzswMUQxCiswMUQzO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBDQVJPTjtMdTswO0w7MDA1NSAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBIQUNFSzs7OzAxRDQ7CiswMUQ0O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggQ0FST047TGw7MDtMOzAwNzUgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIEhBQ0VLOzswMUQzOzswMUQzCiswMUQ1O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVMgQU5EIE1BQ1JPTjtMdTswO0w7MDBEQyAwMzA0Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBESUFFUkVTSVMgTUFDUk9OOzs7MDFENjsKKzAxRDY7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVMgQU5EIE1BQ1JPTjtMbDswO0w7MDBGQyAwMzA0Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgRElBRVJFU0lTIE1BQ1JPTjs7MDFENTs7MDFENQorMDFENztMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTIEFORCBBQ1VURTtMdTswO0w7MDBEQyAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBESUFFUkVTSVMgQUNVVEU7OzswMUQ4OworMDFEODtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUyBBTkQgQUNVVEU7TGw7MDtMOzAwRkMgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIERJQUVSRVNJUyBBQ1VURTs7MDFENzs7MDFENworMDFEOTtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTIEFORCBDQVJPTjtMdTswO0w7MDBEQyAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBESUFFUkVTSVMgSEFDRUs7OzswMURBOworMDFEQTtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUyBBTkQgQ0FST047TGw7MDtMOzAwRkMgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIERJQUVSRVNJUyBIQUNFSzs7MDFEOTs7MDFEOQorMDFEQjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTIEFORCBHUkFWRTtMdTswO0w7MDBEQyAwMzAwOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBESUFFUkVTSVMgR1JBVkU7OzswMURDOworMDFEQztMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUyBBTkQgR1JBVkU7TGw7MDtMOzAwRkMgMDMwMDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIERJQUVSRVNJUyBHUkFWRTs7MDFEQjs7MDFEQgorMDFERDtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIEU7TGw7MDtMOzs7OztOOzs7MDE4RTs7MDE4RQorMDFERTtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggRElBRVJFU0lTIEFORCBNQUNST047THU7MDtMOzAwQzQgMDMwNDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgRElBRVJFU0lTIE1BQ1JPTjs7OzAxREY7CiswMURGO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggRElBRVJFU0lTIEFORCBNQUNST047TGw7MDtMOzAwRTQgMDMwNDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIERJQUVSRVNJUyBNQUNST047OzAxREU7OzAxREUKKzAxRTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIERPVCBBQk9WRSBBTkQgTUFDUk9OO0x1OzA7TDswMjI2IDAzMDQ7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIERPVCBNQUNST047OzswMUUxOworMDFFMTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIERPVCBBQk9WRSBBTkQgTUFDUk9OO0xsOzA7TDswMjI3IDAzMDQ7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBET1QgTUFDUk9OOzswMUUwOzswMUUwCiswMUUyO0xBVElOIENBUElUQUwgTEVUVEVSIEFFIFdJVEggTUFDUk9OO0x1OzA7TDswMEM2IDAzMDQ7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIEUgTUFDUk9OO2FzaCAqOzswMUUzOworMDFFMztMQVRJTiBTTUFMTCBMRVRURVIgQUUgV0lUSCBNQUNST047TGw7MDtMOzAwRTYgMDMwNDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIEUgTUFDUk9OO2FzaCAqOzAxRTI7OzAxRTIKKzAxRTQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBCQVI7OzswMUU1OworMDFFNTtMQVRJTiBTTUFMTCBMRVRURVIgRyBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEcgQkFSOzswMUU0OzswMUU0CiswMUU2O0xBVElOIENBUElUQUwgTEVUVEVSIEcgV0lUSCBDQVJPTjtMdTswO0w7MDA0NyAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBIQUNFSzs7OzAxRTc7CiswMUU3O0xBVElOIFNNQUxMIExFVFRFUiBHIFdJVEggQ0FST047TGw7MDtMOzAwNjcgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBHIEhBQ0VLOzswMUU2OzswMUU2CiswMUU4O0xBVElOIENBUElUQUwgTEVUVEVSIEsgV0lUSCBDQVJPTjtMdTswO0w7MDA0QiAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSyBIQUNFSzs7OzAxRTk7CiswMUU5O0xBVElOIFNNQUxMIExFVFRFUiBLIFdJVEggQ0FST047TGw7MDtMOzAwNkIgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBLIEhBQ0VLOzswMUU4OzswMUU4CiswMUVBO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBPR09ORUs7THU7MDtMOzAwNEYgMDMyODs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gT0dPTkVLOzs7MDFFQjsKKzAxRUI7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBPR09ORUs7TGw7MDtMOzAwNkYgMDMyODs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIE9HT05FSzs7MDFFQTs7MDFFQQorMDFFQztMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggT0dPTkVLIEFORCBNQUNST047THU7MDtMOzAxRUEgMDMwNDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gT0dPTkVLIE1BQ1JPTjs7OzAxRUQ7CiswMUVEO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggT0dPTkVLIEFORCBNQUNST047TGw7MDtMOzAxRUIgMDMwNDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIE9HT05FSyBNQUNST047OzAxRUM7OzAxRUMKKzAxRUU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRVpIIFdJVEggQ0FST047THU7MDtMOzAxQjcgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFlPR0ggSEFDRUs7OzswMUVGOworMDFFRjtMQVRJTiBTTUFMTCBMRVRURVIgRVpIIFdJVEggQ0FST047TGw7MDtMOzAyOTIgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBZT0dIIEhBQ0VLOzswMUVFOzswMUVFCiswMUYwO0xBVElOIFNNQUxMIExFVFRFUiBKIFdJVEggQ0FST047TGw7MDtMOzAwNkEgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBKIEhBQ0VLOzs7OworMDFGMTtMQVRJTiBDQVBJVEFMIExFVFRFUiBEWjtMdTswO0w7PGNvbXBhdD4gMDA0NCAwMDVBOzs7O047Ozs7MDFGMzswMUYyCiswMUYyO0xBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBTTUFMTCBMRVRURVIgWjtMdDswO0w7PGNvbXBhdD4gMDA0NCAwMDdBOzs7O047OzswMUYxOzAxRjM7CiswMUYzO0xBVElOIFNNQUxMIExFVFRFUiBEWjtMbDswO0w7PGNvbXBhdD4gMDA2NCAwMDdBOzs7O047OzswMUYxOzswMUYyCiswMUY0O0xBVElOIENBUElUQUwgTEVUVEVSIEcgV0lUSCBBQ1VURTtMdTswO0w7MDA0NyAwMzAxOzs7O047Ozs7MDFGNTsKKzAxRjU7TEFUSU4gU01BTEwgTEVUVEVSIEcgV0lUSCBBQ1VURTtMbDswO0w7MDA2NyAwMzAxOzs7O047OzswMUY0OzswMUY0CiswMUY2O0xBVElOIENBUElUQUwgTEVUVEVSIEhXQUlSO0x1OzA7TDs7Ozs7Tjs7OzswMTk1OworMDFGNztMQVRJTiBDQVBJVEFMIExFVFRFUiBXWU5OO0x1OzA7TDs7Ozs7Tjs7OzswMUJGOworMDFGODtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggR1JBVkU7THU7MDtMOzAwNEUgMDMwMDs7OztOOzs7OzAxRjk7CiswMUY5O0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggR1JBVkU7TGw7MDtMOzAwNkUgMDMwMDs7OztOOzs7MDFGODs7MDFGOAorMDFGQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggUklORyBBQk9WRSBBTkQgQUNVVEU7THU7MDtMOzAwQzUgMDMwMTs7OztOOzs7OzAxRkI7CiswMUZCO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggUklORyBBQk9WRSBBTkQgQUNVVEU7TGw7MDtMOzAwRTUgMDMwMTs7OztOOzs7MDFGQTs7MDFGQQorMDFGQztMQVRJTiBDQVBJVEFMIExFVFRFUiBBRSBXSVRIIEFDVVRFO0x1OzA7TDswMEM2IDAzMDE7Ozs7Tjs7YXNoICo7OzAxRkQ7CiswMUZEO0xBVElOIFNNQUxMIExFVFRFUiBBRSBXSVRIIEFDVVRFO0xsOzA7TDswMEU2IDAzMDE7Ozs7Tjs7YXNoICo7MDFGQzs7MDFGQworMDFGRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggU1RST0tFIEFORCBBQ1VURTtMdTswO0w7MDBEOCAwMzAxOzs7O047Ozs7MDFGRjsKKzAxRkY7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBTVFJPS0UgQU5EIEFDVVRFO0xsOzA7TDswMEY4IDAzMDE7Ozs7Tjs7OzAxRkU7OzAxRkUKKzAyMDA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIERPVUJMRSBHUkFWRTtMdTswO0w7MDA0MSAwMzBGOzs7O047Ozs7MDIwMTsKKzAyMDE7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBET1VCTEUgR1JBVkU7TGw7MDtMOzAwNjEgMDMwRjs7OztOOzs7MDIwMDs7MDIwMAorMDIwMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggSU5WRVJURUQgQlJFVkU7THU7MDtMOzAwNDEgMDMxMTs7OztOOzs7OzAyMDM7CiswMjAzO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggSU5WRVJURUQgQlJFVkU7TGw7MDtMOzAwNjEgMDMxMTs7OztOOzs7MDIwMjs7MDIwMgorMDIwNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggRE9VQkxFIEdSQVZFO0x1OzA7TDswMDQ1IDAzMEY7Ozs7Tjs7OzswMjA1OworMDIwNTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIERPVUJMRSBHUkFWRTtMbDswO0w7MDA2NSAwMzBGOzs7O047OzswMjA0OzswMjA0CiswMjA2O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBJTlZFUlRFRCBCUkVWRTtMdTswO0w7MDA0NSAwMzExOzs7O047Ozs7MDIwNzsKKzAyMDc7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBJTlZFUlRFRCBCUkVWRTtMbDswO0w7MDA2NSAwMzExOzs7O047OzswMjA2OzswMjA2CiswMjA4O0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBET1VCTEUgR1JBVkU7THU7MDtMOzAwNDkgMDMwRjs7OztOOzs7OzAyMDk7CiswMjA5O0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggRE9VQkxFIEdSQVZFO0xsOzA7TDswMDY5IDAzMEY7Ozs7Tjs7OzAyMDg7OzAyMDgKKzAyMEE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIElOVkVSVEVEIEJSRVZFO0x1OzA7TDswMDQ5IDAzMTE7Ozs7Tjs7OzswMjBCOworMDIwQjtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIElOVkVSVEVEIEJSRVZFO0xsOzA7TDswMDY5IDAzMTE7Ozs7Tjs7OzAyMEE7OzAyMEEKKzAyMEM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIERPVUJMRSBHUkFWRTtMdTswO0w7MDA0RiAwMzBGOzs7O047Ozs7MDIwRDsKKzAyMEQ7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBET1VCTEUgR1JBVkU7TGw7MDtMOzAwNkYgMDMwRjs7OztOOzs7MDIwQzs7MDIwQworMDIwRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggSU5WRVJURUQgQlJFVkU7THU7MDtMOzAwNEYgMDMxMTs7OztOOzs7OzAyMEY7CiswMjBGO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggSU5WRVJURUQgQlJFVkU7TGw7MDtMOzAwNkYgMDMxMTs7OztOOzs7MDIwRTs7MDIwRQorMDIxMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBSIFdJVEggRE9VQkxFIEdSQVZFO0x1OzA7TDswMDUyIDAzMEY7Ozs7Tjs7OzswMjExOworMDIxMTtMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIERPVUJMRSBHUkFWRTtMbDswO0w7MDA3MiAwMzBGOzs7O047OzswMjEwOzswMjEwCiswMjEyO0xBVElOIENBUElUQUwgTEVUVEVSIFIgV0lUSCBJTlZFUlRFRCBCUkVWRTtMdTswO0w7MDA1MiAwMzExOzs7O047Ozs7MDIxMzsKKzAyMTM7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBJTlZFUlRFRCBCUkVWRTtMbDswO0w7MDA3MiAwMzExOzs7O047OzswMjEyOzswMjEyCiswMjE0O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBET1VCTEUgR1JBVkU7THU7MDtMOzAwNTUgMDMwRjs7OztOOzs7OzAyMTU7CiswMjE1O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRE9VQkxFIEdSQVZFO0xsOzA7TDswMDc1IDAzMEY7Ozs7Tjs7OzAyMTQ7OzAyMTQKKzAyMTY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIElOVkVSVEVEIEJSRVZFO0x1OzA7TDswMDU1IDAzMTE7Ozs7Tjs7OzswMjE3OworMDIxNztMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIElOVkVSVEVEIEJSRVZFO0xsOzA7TDswMDc1IDAzMTE7Ozs7Tjs7OzAyMTY7OzAyMTYKKzAyMTg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBXSVRIIENPTU1BIEJFTE9XO0x1OzA7TDswMDUzIDAzMjY7Ozs7Tjs7Kjs7MDIxOTsKKzAyMTk7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBDT01NQSBCRUxPVztMbDswO0w7MDA3MyAwMzI2Ozs7O047Oyo7MDIxODs7MDIxOAorMDIxQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFdJVEggQ09NTUEgQkVMT1c7THU7MDtMOzAwNTQgMDMyNjs7OztOOzsqOzswMjFCOworMDIxQjtMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIENPTU1BIEJFTE9XO0xsOzA7TDswMDc0IDAzMjY7Ozs7Tjs7KjswMjFBOzswMjFBCiswMjFDO0xBVElOIENBUElUQUwgTEVUVEVSIFlPR0g7THU7MDtMOzs7OztOOzs7OzAyMUQ7CiswMjFEO0xBVElOIFNNQUxMIExFVFRFUiBZT0dIO0xsOzA7TDs7Ozs7Tjs7OzAyMUM7OzAyMUMKKzAyMUU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSCBXSVRIIENBUk9OO0x1OzA7TDswMDQ4IDAzMEM7Ozs7Tjs7OzswMjFGOworMDIxRjtMQVRJTiBTTUFMTCBMRVRURVIgSCBXSVRIIENBUk9OO0xsOzA7TDswMDY4IDAzMEM7Ozs7Tjs7OzAyMUU7OzAyMUUKKzAyMjI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgT1U7THU7MDtMOzs7OztOOzs7OzAyMjM7CiswMjIzO0xBVElOIFNNQUxMIExFVFRFUiBPVTtMbDswO0w7Ozs7O047OzswMjIyOzswMjIyCiswMjI0O0xBVElOIENBUElUQUwgTEVUVEVSIFogV0lUSCBIT09LO0x1OzA7TDs7Ozs7Tjs7OzswMjI1OworMDIyNTtMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIEhPT0s7TGw7MDtMOzs7OztOOzs7MDIyNDs7MDIyNAorMDIyNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDQxIDAzMDc7Ozs7Tjs7OzswMjI3OworMDIyNztMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA2MSAwMzA3Ozs7O047OzswMjI2OzswMjI2CiswMjI4O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBDRURJTExBO0x1OzA7TDswMDQ1IDAzMjc7Ozs7Tjs7OzswMjI5OworMDIyOTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIENFRElMTEE7TGw7MDtMOzAwNjUgMDMyNzs7OztOOzs7MDIyODs7MDIyOAorMDIyQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggRElBRVJFU0lTIEFORCBNQUNST047THU7MDtMOzAwRDYgMDMwNDs7OztOOzs7OzAyMkI7CiswMjJCO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggRElBRVJFU0lTIEFORCBNQUNST047TGw7MDtMOzAwRjYgMDMwNDs7OztOOzs7MDIyQTs7MDIyQQorMDIyQztMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggVElMREUgQU5EIE1BQ1JPTjtMdTswO0w7MDBENSAwMzA0Ozs7O047Ozs7MDIyRDsKKzAyMkQ7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBUSUxERSBBTkQgTUFDUk9OO0xsOzA7TDswMEY1IDAzMDQ7Ozs7Tjs7OzAyMkM7OzAyMkMKKzAyMkU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA0RiAwMzA3Ozs7O047Ozs7MDIyRjsKKzAyMkY7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNkYgMDMwNzs7OztOOzs7MDIyRTs7MDIyRQorMDIzMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggRE9UIEFCT1ZFIEFORCBNQUNST047THU7MDtMOzAyMkUgMDMwNDs7OztOOzs7OzAyMzE7CiswMjMxO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggRE9UIEFCT1ZFIEFORCBNQUNST047TGw7MDtMOzAyMkYgMDMwNDs7OztOOzs7MDIzMDs7MDIzMAorMDIzMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggTUFDUk9OO0x1OzA7TDswMDU5IDAzMDQ7Ozs7Tjs7OzswMjMzOworMDIzMztMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIE1BQ1JPTjtMbDswO0w7MDA3OSAwMzA0Ozs7O047OzswMjMyOzswMjMyCiswMjUwO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgQTtMbDswO0w7Ozs7O047Ozs7OworMDI1MTtMQVRJTiBTTUFMTCBMRVRURVIgQUxQSEE7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBTQ1JJUFQgQTs7OzsKKzAyNTI7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBBTFBIQTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBTQ1JJUFQgQTs7OzsKKzAyNTM7TEFUSU4gU01BTEwgTEVUVEVSIEIgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQiBIT09LOzswMTgxOzswMTgxCiswMjU0O0xBVElOIFNNQUxMIExFVFRFUiBPUEVOIE87TGw7MDtMOzs7OztOOzs7MDE4Njs7MDE4NgorMDI1NTtMQVRJTiBTTUFMTCBMRVRURVIgQyBXSVRIIENVUkw7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBDIENVUkw7Ozs7CiswMjU2O0xBVElOIFNNQUxMIExFVFRFUiBEIFdJVEggVEFJTDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEQgUkVUUk9GTEVYIEhPT0s7OzAxODk7OzAxODkKKzAyNTc7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRCBIT09LOzswMThBOzswMThBCiswMjU4O0xBVElOIFNNQUxMIExFVFRFUiBSRVZFUlNFRCBFO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjU5O0xBVElOIFNNQUxMIExFVFRFUiBTQ0hXQTtMbDswO0w7Ozs7O047OzswMThGOzswMThGCiswMjVBO0xBVElOIFNNQUxMIExFVFRFUiBTQ0hXQSBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBTQ0hXQSBIT09LOzs7OworMDI1QjtMQVRJTiBTTUFMTCBMRVRURVIgT1BFTiBFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRVBTSUxPTjs7MDE5MDs7MDE5MAorMDI1QztMQVRJTiBTTUFMTCBMRVRURVIgUkVWRVJTRUQgT1BFTiBFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUkVWRVJTRUQgRVBTSUxPTjs7OzsKKzAyNUQ7TEFUSU4gU01BTEwgTEVUVEVSIFJFVkVSU0VEIE9QRU4gRSBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBSRVZFUlNFRCBFUFNJTE9OIEhPT0s7Ozs7CiswMjVFO0xBVElOIFNNQUxMIExFVFRFUiBDTE9TRUQgUkVWRVJTRUQgT1BFTiBFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQ0xPU0VEIFJFVkVSU0VEIEVQU0lMT047Ozs7CiswMjVGO0xBVElOIFNNQUxMIExFVFRFUiBET1RMRVNTIEogV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBET1RMRVNTIEogQkFSOzs7OworMDI2MDtMQVRJTiBTTUFMTCBMRVRURVIgRyBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBHIEhPT0s7OzAxOTM7OzAxOTMKKzAyNjE7TEFUSU4gU01BTEwgTEVUVEVSIFNDUklQVCBHO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjYyO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIEc7TGw7MDtMOzs7OztOOzs7OzsKKzAyNjM7TEFUSU4gU01BTEwgTEVUVEVSIEdBTU1BO0xsOzA7TDs7Ozs7Tjs7OzAxOTQ7OzAxOTQKKzAyNjQ7TEFUSU4gU01BTEwgTEVUVEVSIFJBTVMgSE9STjtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEJBQlkgR0FNTUE7Ozs7CiswMjY1O0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgSDtMbDswO0w7Ozs7O047Ozs7OworMDI2NjtMQVRJTiBTTUFMTCBMRVRURVIgSCBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBIIEhPT0s7Ozs7CiswMjY3O0xBVElOIFNNQUxMIExFVFRFUiBIRU5HIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEhFTkcgSE9PSzs7OzsKKzAyNjg7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBCQVJSRUQgSTs7MDE5Nzs7MDE5NworMDI2OTtMQVRJTiBTTUFMTCBMRVRURVIgSU9UQTtMbDswO0w7Ozs7O047OzswMTk2OzswMTk2CiswMjZBO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIEk7TGw7MDtMOzs7OztOOzs7OzsKKzAyNkI7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBNSURETEUgVElMREU7TGw7MDtMOzs7OztOOzs7OzsKKzAyNkM7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBCRUxUO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTCBCRUxUOzs7OworMDI2RDtMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIFJFVFJPRkxFWCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTCBSRVRST0ZMRVggSE9PSzs7OzsKKzAyNkU7TEFUSU4gU01BTEwgTEVUVEVSIExFWkg7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBMIFlPR0g7Ozs7CiswMjZGO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgTTtMbDswO0w7Ozs7O047OzswMTlDOzswMTlDCiswMjcwO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgTSBXSVRIIExPTkcgTEVHO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjcxO0xBVElOIFNNQUxMIExFVFRFUiBNIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE0gSE9PSzs7OzsKKzAyNzI7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBMRUZUIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBOIEhPT0s7OzAxOUQ7OzAxOUQKKzAyNzM7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBSRVRST0ZMRVggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE4gUkVUUk9GTEVYIEhPT0s7Ozs7CiswMjc0O0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIE47TGw7MDtMOzs7OztOOzs7OzsKKzAyNzU7TEFUSU4gU01BTEwgTEVUVEVSIEJBUlJFRCBPO0xsOzA7TDs7Ozs7Tjs7OzAxOUY7OzAxOUYKKzAyNzY7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgT0U7TGw7MDtMOzs7OztOO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIE8gRTs7OzsKKzAyNzc7TEFUSU4gU01BTEwgTEVUVEVSIENMT1NFRCBPTUVHQTtMbDswO0w7Ozs7O047Ozs7OworMDI3ODtMQVRJTiBTTUFMTCBMRVRURVIgUEhJO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjc5O0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgUjtMbDswO0w7Ozs7O047Ozs7OworMDI3QTtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIFIgV0lUSCBMT05HIExFRztMbDswO0w7Ozs7O047Ozs7OworMDI3QjtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIFIgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIFIgSE9PSzs7OzsKKzAyN0M7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBMT05HIExFRztMbDswO0w7Ozs7O047Ozs7OworMDI3RDtMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIFRBSUw7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBSIEhPT0s7Ozs7CiswMjdFO0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggRklTSEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBGSVNISE9PSyBSOzs7OworMDI3RjtMQVRJTiBTTUFMTCBMRVRURVIgUkVWRVJTRUQgUiBXSVRIIEZJU0hIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUkVWRVJTRUQgRklTSEhPT0sgUjs7OzsKKzAyODA7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgUjtMbDswO0w7Ozs7O047Oyo7MDFBNjs7MDFBNgorMDI4MTtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBJTlZFUlRFRCBSO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjgyO0xBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFMgSE9PSzs7OzsKKzAyODM7TEFUSU4gU01BTEwgTEVUVEVSIEVTSDtMbDswO0w7Ozs7O047OzswMUE5OzswMUE5CiswMjg0O0xBVElOIFNNQUxMIExFVFRFUiBET1RMRVNTIEogV0lUSCBTVFJPS0UgQU5EIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBET1RMRVNTIEogQkFSIEhPT0s7Ozs7CiswMjg1O0xBVElOIFNNQUxMIExFVFRFUiBTUVVBVCBSRVZFUlNFRCBFU0g7TGw7MDtMOzs7OztOOzs7OzsKKzAyODY7TEFUSU4gU01BTEwgTEVUVEVSIEVTSCBXSVRIIENVUkw7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBFU0ggQ1VSTDs7OzsKKzAyODc7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBUO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjg4O0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggUkVUUk9GTEVYIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBUIFJFVFJPRkxFWCBIT09LOzswMUFFOzswMUFFCiswMjg5O0xBVElOIFNNQUxMIExFVFRFUiBVIEJBUjtMbDswO0w7Ozs7O047Ozs7OworMDI4QTtMQVRJTiBTTUFMTCBMRVRURVIgVVBTSUxPTjtMbDswO0w7Ozs7O047OzswMUIxOzswMUIxCiswMjhCO0xBVElOIFNNQUxMIExFVFRFUiBWIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFNDUklQVCBWOzswMUIyOzswMUIyCiswMjhDO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgVjtMbDswO0w7Ozs7O047Ozs7OworMDI4RDtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIFc7TGw7MDtMOzs7OztOOzs7OzsKKzAyOEU7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBZO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjhGO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIFk7TGw7MDtMOzs7OztOOzs7OzsKKzAyOTA7TEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBSRVRST0ZMRVggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFogUkVUUk9GTEVYIEhPT0s7Ozs7CiswMjkxO0xBVElOIFNNQUxMIExFVFRFUiBaIFdJVEggQ1VSTDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFogQ1VSTDs7OzsKKzAyOTI7TEFUSU4gU01BTEwgTEVUVEVSIEVaSDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFlPR0g7OzAxQjc7OzAxQjcKKzAyOTM7TEFUSU4gU01BTEwgTEVUVEVSIEVaSCBXSVRIIENVUkw7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBZT0dIIENVUkw7Ozs7CiswMjk0O0xBVElOIExFVFRFUiBHTE9UVEFMIFNUT1A7TGw7MDtMOzs7OztOOzs7OzsKKzAyOTU7TEFUSU4gTEVUVEVSIFBIQVJZTkdFQUwgVk9JQ0VEIEZSSUNBVElWRTtMbDswO0w7Ozs7O047TEFUSU4gTEVUVEVSIFJFVkVSU0VEIEdMT1RUQUwgU1RPUDs7OzsKKzAyOTY7TEFUSU4gTEVUVEVSIElOVkVSVEVEIEdMT1RUQUwgU1RPUDtMbDswO0w7Ozs7O047Ozs7OworMDI5NztMQVRJTiBMRVRURVIgU1RSRVRDSEVEIEM7TGw7MDtMOzs7OztOOzs7OzsKKzAyOTg7TEFUSU4gTEVUVEVSIEJJTEFCSUFMIENMSUNLO0xsOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgQlVMTFNFWUU7Ozs7CiswMjk5O0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIEI7TGw7MDtMOzs7OztOOzs7OzsKKzAyOUE7TEFUSU4gU01BTEwgTEVUVEVSIENMT1NFRCBPUEVOIEU7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBDTE9TRUQgRVBTSUxPTjs7OzsKKzAyOUI7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgRyBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIEcgSE9PSzs7OzsKKzAyOUM7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgSDtMbDswO0w7Ozs7O047Ozs7OworMDI5RDtMQVRJTiBTTUFMTCBMRVRURVIgSiBXSVRIIENST1NTRUQtVEFJTDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIENST1NTRUQtVEFJTCBKOzs7OworMDI5RTtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIEs7TGw7MDtMOzs7OztOOzs7OzsKKzAyOUY7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgTDtMbDswO0w7Ozs7O047Ozs7OworMDJBMDtMQVRJTiBTTUFMTCBMRVRURVIgUSBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBRIEhPT0s7Ozs7CiswMkExO0xBVElOIExFVFRFUiBHTE9UVEFMIFNUT1AgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIExFVFRFUiBHTE9UVEFMIFNUT1AgQkFSOzs7OworMDJBMjtMQVRJTiBMRVRURVIgUkVWRVJTRUQgR0xPVFRBTCBTVE9QIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgUkVWRVJTRUQgR0xPVFRBTCBTVE9QIEJBUjs7OzsKKzAyQTM7TEFUSU4gU01BTEwgTEVUVEVSIERaIERJR1JBUEg7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBEIFo7Ozs7CiswMkE0O0xBVElOIFNNQUxMIExFVFRFUiBERVpIIERJR1JBUEg7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBEIFlPR0g7Ozs7CiswMkE1O0xBVElOIFNNQUxMIExFVFRFUiBEWiBESUdSQVBIIFdJVEggQ1VSTDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEQgWiBDVVJMOzs7OworMDJBNjtMQVRJTiBTTUFMTCBMRVRURVIgVFMgRElHUkFQSDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFQgUzs7OzsKKzAyQTc7TEFUSU4gU01BTEwgTEVUVEVSIFRFU0ggRElHUkFQSDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFQgRVNIOzs7OworMDJBODtMQVRJTiBTTUFMTCBMRVRURVIgVEMgRElHUkFQSCBXSVRIIENVUkw7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBUIEMgQ1VSTDs7OzsKKzAyQTk7TEFUSU4gU01BTEwgTEVUVEVSIEZFTkcgRElHUkFQSDtMbDswO0w7Ozs7O047Ozs7OworMDJBQTtMQVRJTiBTTUFMTCBMRVRURVIgTFMgRElHUkFQSDtMbDswO0w7Ozs7O047Ozs7OworMDJBQjtMQVRJTiBTTUFMTCBMRVRURVIgTFogRElHUkFQSDtMbDswO0w7Ozs7O047Ozs7OworMDJBQztMQVRJTiBMRVRURVIgQklMQUJJQUwgUEVSQ1VTU0lWRTtMbDswO0w7Ozs7O047Ozs7OworMDJBRDtMQVRJTiBMRVRURVIgQklERU5UQUwgUEVSQ1VTU0lWRTtMbDswO0w7Ozs7O047Ozs7OworMDJCMDtNT0RJRklFUiBMRVRURVIgU01BTEwgSDtMbTswO0w7PHN1cGVyPiAwMDY4Ozs7O047Ozs7OworMDJCMTtNT0RJRklFUiBMRVRURVIgU01BTEwgSCBXSVRIIEhPT0s7TG07MDtMOzxzdXBlcj4gMDI2Njs7OztOO01PRElGSUVSIExFVFRFUiBTTUFMTCBIIEhPT0s7Ozs7CiswMkIyO01PRElGSUVSIExFVFRFUiBTTUFMTCBKO0xtOzA7TDs8c3VwZXI+IDAwNkE7Ozs7Tjs7Ozs7CiswMkIzO01PRElGSUVSIExFVFRFUiBTTUFMTCBSO0xtOzA7TDs8c3VwZXI+IDAwNzI7Ozs7Tjs7Ozs7CiswMkI0O01PRElGSUVSIExFVFRFUiBTTUFMTCBUVVJORUQgUjtMbTswO0w7PHN1cGVyPiAwMjc5Ozs7O047Ozs7OworMDJCNTtNT0RJRklFUiBMRVRURVIgU01BTEwgVFVSTkVEIFIgV0lUSCBIT09LO0xtOzA7TDs8c3VwZXI+IDAyN0I7Ozs7TjtNT0RJRklFUiBMRVRURVIgU01BTEwgVFVSTkVEIFIgSE9PSzs7OzsKKzAyQjY7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIENBUElUQUwgSU5WRVJURUQgUjtMbTswO0w7PHN1cGVyPiAwMjgxOzs7O047Ozs7OworMDJCNztNT0RJRklFUiBMRVRURVIgU01BTEwgVztMbTswO0w7PHN1cGVyPiAwMDc3Ozs7O047Ozs7OworMDJCODtNT0RJRklFUiBMRVRURVIgU01BTEwgWTtMbTswO0w7PHN1cGVyPiAwMDc5Ozs7O047Ozs7OworMDJCOTtNT0RJRklFUiBMRVRURVIgUFJJTUU7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkJBO01PRElGSUVSIExFVFRFUiBET1VCTEUgUFJJTUU7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkJCO01PRElGSUVSIExFVFRFUiBUVVJORUQgQ09NTUE7TG07MDtMOzs7OztOOzs7OzsKKzAyQkM7TU9ESUZJRVIgTEVUVEVSIEFQT1NUUk9QSEU7TG07MDtMOzs7OztOOzs7OzsKKzAyQkQ7TU9ESUZJRVIgTEVUVEVSIFJFVkVSU0VEIENPTU1BO0xtOzA7TDs7Ozs7Tjs7Ozs7CiswMkJFO01PRElGSUVSIExFVFRFUiBSSUdIVCBIQUxGIFJJTkc7TG07MDtMOzs7OztOOzs7OzsKKzAyQkY7TU9ESUZJRVIgTEVUVEVSIExFRlQgSEFMRiBSSU5HO0xtOzA7TDs7Ozs7Tjs7Ozs7CiswMkMwO01PRElGSUVSIExFVFRFUiBHTE9UVEFMIFNUT1A7TG07MDtMOzs7OztOOzs7OzsKKzAyQzE7TU9ESUZJRVIgTEVUVEVSIFJFVkVSU0VEIEdMT1RUQUwgU1RPUDtMbTswO0w7Ozs7O047Ozs7OworMDJDMjtNT0RJRklFUiBMRVRURVIgTEVGVCBBUlJPV0hFQUQ7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkMzO01PRElGSUVSIExFVFRFUiBSSUdIVCBBUlJPV0hFQUQ7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkM0O01PRElGSUVSIExFVFRFUiBVUCBBUlJPV0hFQUQ7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkM1O01PRElGSUVSIExFVFRFUiBET1dOIEFSUk9XSEVBRDtTazswO09OOzs7OztOOzs7OzsKKzAyQzY7TU9ESUZJRVIgTEVUVEVSIENJUkNVTUZMRVggQUNDRU5UO1NrOzA7T047Ozs7O047TU9ESUZJRVIgTEVUVEVSIENJUkNVTUZMRVg7Ozs7CiswMkM3O0NBUk9OO1NrOzA7T047Ozs7O047TU9ESUZJRVIgTEVUVEVSIEhBQ0VLO01hbmRhcmluIENoaW5lc2UgdGhpcmQgdG9uZTs7OworMDJDODtNT0RJRklFUiBMRVRURVIgVkVSVElDQUwgTElORTtTazswO09OOzs7OztOOzs7OzsKKzAyQzk7TU9ESUZJRVIgTEVUVEVSIE1BQ1JPTjtTazswO09OOzs7OztOOztNYW5kYXJpbiBDaGluZXNlIGZpcnN0IHRvbmU7OzsKKzAyQ0E7TU9ESUZJRVIgTEVUVEVSIEFDVVRFIEFDQ0VOVDtTazswO09OOzs7OztOO01PRElGSUVSIExFVFRFUiBBQ1VURTtNYW5kYXJpbiBDaGluZXNlIHNlY29uZCB0b25lOzs7CiswMkNCO01PRElGSUVSIExFVFRFUiBHUkFWRSBBQ0NFTlQ7U2s7MDtPTjs7Ozs7TjtNT0RJRklFUiBMRVRURVIgR1JBVkU7TWFuZGFyaW4gQ2hpbmVzZSBmb3VydGggdG9uZTs7OworMDJDQztNT0RJRklFUiBMRVRURVIgTE9XIFZFUlRJQ0FMIExJTkU7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkNEO01PRElGSUVSIExFVFRFUiBMT1cgTUFDUk9OO1NrOzA7T047Ozs7O047Ozs7OworMDJDRTtNT0RJRklFUiBMRVRURVIgTE9XIEdSQVZFIEFDQ0VOVDtTazswO09OOzs7OztOO01PRElGSUVSIExFVFRFUiBMT1cgR1JBVkU7Ozs7CiswMkNGO01PRElGSUVSIExFVFRFUiBMT1cgQUNVVEUgQUNDRU5UO1NrOzA7T047Ozs7O047TU9ESUZJRVIgTEVUVEVSIExPVyBBQ1VURTs7OzsKKzAyRDA7TU9ESUZJRVIgTEVUVEVSIFRSSUFOR1VMQVIgQ09MT047TG07MDtMOzs7OztOOzs7OzsKKzAyRDE7TU9ESUZJRVIgTEVUVEVSIEhBTEYgVFJJQU5HVUxBUiBDT0xPTjtMbTswO0w7Ozs7O047Ozs7OworMDJEMjtNT0RJRklFUiBMRVRURVIgQ0VOVFJFRCBSSUdIVCBIQUxGIFJJTkc7U2s7MDtPTjs7Ozs7TjtNT0RJRklFUiBMRVRURVIgQ0VOVEVSRUQgUklHSFQgSEFMRiBSSU5HOzs7OworMDJEMztNT0RJRklFUiBMRVRURVIgQ0VOVFJFRCBMRUZUIEhBTEYgUklORztTazswO09OOzs7OztOO01PRElGSUVSIExFVFRFUiBDRU5URVJFRCBMRUZUIEhBTEYgUklORzs7OzsKKzAyRDQ7TU9ESUZJRVIgTEVUVEVSIFVQIFRBQ0s7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkQ1O01PRElGSUVSIExFVFRFUiBET1dOIFRBQ0s7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkQ2O01PRElGSUVSIExFVFRFUiBQTFVTIFNJR047U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkQ3O01PRElGSUVSIExFVFRFUiBNSU5VUyBTSUdOO1NrOzA7T047Ozs7O047Ozs7OworMDJEODtCUkVWRTtTazswO09OOzxjb21wYXQ+IDAwMjAgMDMwNjs7OztOO1NQQUNJTkcgQlJFVkU7Ozs7CiswMkQ5O0RPVCBBQk9WRTtTazswO09OOzxjb21wYXQ+IDAwMjAgMDMwNzs7OztOO1NQQUNJTkcgRE9UIEFCT1ZFO01hbmRhcmluIENoaW5lc2UgbGlnaHQgdG9uZTs7OworMDJEQTtSSU5HIEFCT1ZFO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzBBOzs7O047U1BBQ0lORyBSSU5HIEFCT1ZFOzs7OworMDJEQjtPR09ORUs7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMjg7Ozs7TjtTUEFDSU5HIE9HT05FSzs7OzsKKzAyREM7U01BTEwgVElMREU7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMDM7Ozs7TjtTUEFDSU5HIFRJTERFOzs7OworMDJERDtET1VCTEUgQUNVVEUgQUNDRU5UO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzBCOzs7O047U1BBQ0lORyBET1VCTEUgQUNVVEU7Ozs7CiswMkRFO01PRElGSUVSIExFVFRFUiBSSE9USUMgSE9PSztTazswO09OOzs7OztOOzs7OzsKKzAyREY7TU9ESUZJRVIgTEVUVEVSIENST1NTIEFDQ0VOVDtTazswO09OOzs7OztOOzs7OzsKKzAyRTA7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIEdBTU1BO0xtOzA7TDs8c3VwZXI+IDAyNjM7Ozs7Tjs7Ozs7CiswMkUxO01PRElGSUVSIExFVFRFUiBTTUFMTCBMO0xtOzA7TDs8c3VwZXI+IDAwNkM7Ozs7Tjs7Ozs7CiswMkUyO01PRElGSUVSIExFVFRFUiBTTUFMTCBTO0xtOzA7TDs8c3VwZXI+IDAwNzM7Ozs7Tjs7Ozs7CiswMkUzO01PRElGSUVSIExFVFRFUiBTTUFMTCBYO0xtOzA7TDs8c3VwZXI+IDAwNzg7Ozs7Tjs7Ozs7CiswMkU0O01PRElGSUVSIExFVFRFUiBTTUFMTCBSRVZFUlNFRCBHTE9UVEFMIFNUT1A7TG07MDtMOzxzdXBlcj4gMDI5NTs7OztOOzs7OzsKKzAyRTU7TU9ESUZJRVIgTEVUVEVSIEVYVFJBLUhJR0ggVE9ORSBCQVI7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkU2O01PRElGSUVSIExFVFRFUiBISUdIIFRPTkUgQkFSO1NrOzA7T047Ozs7O047Ozs7OworMDJFNztNT0RJRklFUiBMRVRURVIgTUlEIFRPTkUgQkFSO1NrOzA7T047Ozs7O047Ozs7OworMDJFODtNT0RJRklFUiBMRVRURVIgTE9XIFRPTkUgQkFSO1NrOzA7T047Ozs7O047Ozs7OworMDJFOTtNT0RJRklFUiBMRVRURVIgRVhUUkEtTE9XIFRPTkUgQkFSO1NrOzA7T047Ozs7O047Ozs7OworMDJFQTtNT0RJRklFUiBMRVRURVIgWUlOIERFUEFSVElORyBUT05FIE1BUks7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkVCO01PRElGSUVSIExFVFRFUiBZQU5HIERFUEFSVElORyBUT05FIE1BUks7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkVDO01PRElGSUVSIExFVFRFUiBWT0lDSU5HO1NrOzA7T047Ozs7O047Ozs7OworMDJFRDtNT0RJRklFUiBMRVRURVIgVU5BU1BJUkFURUQ7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkVFO01PRElGSUVSIExFVFRFUiBET1VCTEUgQVBPU1RST1BIRTtMbTswO0w7Ozs7O047Ozs7OworMDMwMDtDT01CSU5JTkcgR1JBVkUgQUNDRU5UO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgR1JBVkU7VmFyaWE7OzsKKzAzMDE7Q09NQklOSU5HIEFDVVRFIEFDQ0VOVDtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIEFDVVRFO094aWE7OzsKKzAzMDI7Q09NQklOSU5HIENJUkNVTUZMRVggQUNDRU5UO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgQ0lSQ1VNRkxFWDs7OzsKKzAzMDM7Q09NQklOSU5HIFRJTERFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgVElMREU7Ozs7CiswMzA0O0NPTUJJTklORyBNQUNST047TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBNQUNST047Ozs7CiswMzA1O0NPTUJJTklORyBPVkVSTElORTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIE9WRVJTQ09SRTs7OzsKKzAzMDY7Q09NQklOSU5HIEJSRVZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgQlJFVkU7VnJhY2h5Ozs7CiswMzA3O0NPTUJJTklORyBET1QgQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBET1QgQUJPVkU7Ozs7CiswMzA4O0NPTUJJTklORyBESUFFUkVTSVM7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBESUFFUkVTSVM7RGlhbHl0aWthOzs7CiswMzA5O0NPTUJJTklORyBIT09LIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgSE9PSyBBQk9WRTs7OzsKKzAzMEE7Q09NQklOSU5HIFJJTkcgQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBSSU5HIEFCT1ZFOzs7OworMDMwQjtDT01CSU5JTkcgRE9VQkxFIEFDVVRFIEFDQ0VOVDtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIERPVUJMRSBBQ1VURTs7OzsKKzAzMEM7Q09NQklOSU5HIENBUk9OO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgSEFDRUs7Ozs7CiswMzBEO0NPTUJJTklORyBWRVJUSUNBTCBMSU5FIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgVkVSVElDQUwgTElORSBBQk9WRTtUb25vczs7OworMDMwRTtDT01CSU5JTkcgRE9VQkxFIFZFUlRJQ0FMIExJTkUgQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBET1VCTEUgVkVSVElDQUwgTElORSBBQk9WRTs7OzsKKzAzMEY7Q09NQklOSU5HIERPVUJMRSBHUkFWRSBBQ0NFTlQ7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBET1VCTEUgR1JBVkU7Ozs7CiswMzEwO0NPTUJJTklORyBDQU5EUkFCSU5EVTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIENBTkRSQUJJTkRVOzs7OworMDMxMTtDT01CSU5JTkcgSU5WRVJURUQgQlJFVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBJTlZFUlRFRCBCUkVWRTs7OzsKKzAzMTI7Q09NQklOSU5HIFRVUk5FRCBDT01NQSBBQk9WRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFRVUk5FRCBDT01NQSBBQk9WRTs7OzsKKzAzMTM7Q09NQklOSU5HIENPTU1BIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgQ09NTUEgQUJPVkU7UHNpbGk7OzsKKzAzMTQ7Q09NQklOSU5HIFJFVkVSU0VEIENPTU1BIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgUkVWRVJTRUQgQ09NTUEgQUJPVkU7RGFzaWE7OzsKKzAzMTU7Q09NQklOSU5HIENPTU1BIEFCT1ZFIFJJR0hUO01uOzIzMjtOU007Ozs7O047Tk9OLVNQQUNJTkcgQ09NTUEgQUJPVkUgUklHSFQ7Ozs7CiswMzE2O0NPTUJJTklORyBHUkFWRSBBQ0NFTlQgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBHUkFWRSBCRUxPVzs7OzsKKzAzMTc7Q09NQklOSU5HIEFDVVRFIEFDQ0VOVCBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIEFDVVRFIEJFTE9XOzs7OworMDMxODtDT01CSU5JTkcgTEVGVCBUQUNLIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgTEVGVCBUQUNLIEJFTE9XOzs7OworMDMxOTtDT01CSU5JTkcgUklHSFQgVEFDSyBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFJJR0hUIFRBQ0sgQkVMT1c7Ozs7CiswMzFBO0NPTUJJTklORyBMRUZUIEFOR0xFIEFCT1ZFO01uOzIzMjtOU007Ozs7O047Tk9OLVNQQUNJTkcgTEVGVCBBTkdMRSBBQk9WRTs7OzsKKzAzMUI7Q09NQklOSU5HIEhPUk47TW47MjE2O05TTTs7Ozs7TjtOT04tU1BBQ0lORyBIT1JOOzs7OworMDMxQztDT01CSU5JTkcgTEVGVCBIQUxGIFJJTkcgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBMRUZUIEhBTEYgUklORyBCRUxPVzs7OzsKKzAzMUQ7Q09NQklOSU5HIFVQIFRBQ0sgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBVUCBUQUNLIEJFTE9XOzs7OworMDMxRTtDT01CSU5JTkcgRE9XTiBUQUNLIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgRE9XTiBUQUNLIEJFTE9XOzs7OworMDMxRjtDT01CSU5JTkcgUExVUyBTSUdOIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgUExVUyBTSUdOIEJFTE9XOzs7OworMDMyMDtDT01CSU5JTkcgTUlOVVMgU0lHTiBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIE1JTlVTIFNJR04gQkVMT1c7Ozs7CiswMzIxO0NPTUJJTklORyBQQUxBVEFMSVpFRCBIT09LIEJFTE9XO01uOzIwMjtOU007Ozs7O047Tk9OLVNQQUNJTkcgUEFMQVRBTElaRUQgSE9PSyBCRUxPVzs7OzsKKzAzMjI7Q09NQklOSU5HIFJFVFJPRkxFWCBIT09LIEJFTE9XO01uOzIwMjtOU007Ozs7O047Tk9OLVNQQUNJTkcgUkVUUk9GTEVYIEhPT0sgQkVMT1c7Ozs7CiswMzIzO0NPTUJJTklORyBET1QgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBET1QgQkVMT1c7Ozs7CiswMzI0O0NPTUJJTklORyBESUFFUkVTSVMgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBET1VCTEUgRE9UIEJFTE9XOzs7OworMDMyNTtDT01CSU5JTkcgUklORyBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFJJTkcgQkVMT1c7Ozs7CiswMzI2O0NPTUJJTklORyBDT01NQSBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIENPTU1BIEJFTE9XOzs7OworMDMyNztDT01CSU5JTkcgQ0VESUxMQTtNbjsyMDI7TlNNOzs7OztOO05PTi1TUEFDSU5HIENFRElMTEE7Ozs7CiswMzI4O0NPTUJJTklORyBPR09ORUs7TW47MjAyO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBPR09ORUs7Ozs7CiswMzI5O0NPTUJJTklORyBWRVJUSUNBTCBMSU5FIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgVkVSVElDQUwgTElORSBCRUxPVzs7OzsKKzAzMkE7Q09NQklOSU5HIEJSSURHRSBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIEJSSURHRSBCRUxPVzs7OzsKKzAzMkI7Q09NQklOSU5HIElOVkVSVEVEIERPVUJMRSBBUkNIIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgSU5WRVJURUQgRE9VQkxFIEFSQ0ggQkVMT1c7Ozs7CiswMzJDO0NPTUJJTklORyBDQVJPTiBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIEhBQ0VLIEJFTE9XOzs7OworMDMyRDtDT01CSU5JTkcgQ0lSQ1VNRkxFWCBBQ0NFTlQgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBDSVJDVU1GTEVYIEJFTE9XOzs7OworMDMyRTtDT01CSU5JTkcgQlJFVkUgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBCUkVWRSBCRUxPVzs7OzsKKzAzMkY7Q09NQklOSU5HIElOVkVSVEVEIEJSRVZFIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgSU5WRVJURUQgQlJFVkUgQkVMT1c7Ozs7CiswMzMwO0NPTUJJTklORyBUSUxERSBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFRJTERFIEJFTE9XOzs7OworMDMzMTtDT01CSU5JTkcgTUFDUk9OIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgTUFDUk9OIEJFTE9XOzs7OworMDMzMjtDT01CSU5JTkcgTE9XIExJTkU7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBVTkRFUlNDT1JFOzs7OworMDMzMztDT01CSU5JTkcgRE9VQkxFIExPVyBMSU5FO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgRE9VQkxFIFVOREVSU0NPUkU7Ozs7CiswMzM0O0NPTUJJTklORyBUSUxERSBPVkVSTEFZO01uOzE7TlNNOzs7OztOO05PTi1TUEFDSU5HIFRJTERFIE9WRVJMQVk7Ozs7CiswMzM1O0NPTUJJTklORyBTSE9SVCBTVFJPS0UgT1ZFUkxBWTtNbjsxO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBTSE9SVCBCQVIgT1ZFUkxBWTs7OzsKKzAzMzY7Q09NQklOSU5HIExPTkcgU1RST0tFIE9WRVJMQVk7TW47MTtOU007Ozs7O047Tk9OLVNQQUNJTkcgTE9ORyBCQVIgT1ZFUkxBWTs7OzsKKzAzMzc7Q09NQklOSU5HIFNIT1JUIFNPTElEVVMgT1ZFUkxBWTtNbjsxO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBTSE9SVCBTTEFTSCBPVkVSTEFZOzs7OworMDMzODtDT01CSU5JTkcgTE9ORyBTT0xJRFVTIE9WRVJMQVk7TW47MTtOU007Ozs7O047Tk9OLVNQQUNJTkcgTE9ORyBTTEFTSCBPVkVSTEFZOzs7OworMDMzOTtDT01CSU5JTkcgUklHSFQgSEFMRiBSSU5HIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgUklHSFQgSEFMRiBSSU5HIEJFTE9XOzs7OworMDMzQTtDT01CSU5JTkcgSU5WRVJURUQgQlJJREdFIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgSU5WRVJURUQgQlJJREdFIEJFTE9XOzs7OworMDMzQjtDT01CSU5JTkcgU1FVQVJFIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgU1FVQVJFIEJFTE9XOzs7OworMDMzQztDT01CSU5JTkcgU0VBR1VMTCBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFNFQUdVTEwgQkVMT1c7Ozs7CiswMzNEO0NPTUJJTklORyBYIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgWCBBQk9WRTs7OzsKKzAzM0U7Q09NQklOSU5HIFZFUlRJQ0FMIFRJTERFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgVkVSVElDQUwgVElMREU7Ozs7CiswMzNGO0NPTUJJTklORyBET1VCTEUgT1ZFUkxJTkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBET1VCTEUgT1ZFUlNDT1JFOzs7OworMDM0MDtDT01CSU5JTkcgR1JBVkUgVE9ORSBNQVJLO01uOzIzMDtOU007MDMwMDs7OztOO05PTi1TUEFDSU5HIEdSQVZFIFRPTkUgTUFSSztWaWV0bmFtZXNlOzs7CiswMzQxO0NPTUJJTklORyBBQ1VURSBUT05FIE1BUks7TW47MjMwO05TTTswMzAxOzs7O047Tk9OLVNQQUNJTkcgQUNVVEUgVE9ORSBNQVJLO1ZpZXRuYW1lc2U7OzsKKzAzNDI7Q09NQklOSU5HIEdSRUVLIFBFUklTUE9NRU5JO01uOzIzMDtOU007Ozs7O047Ozs7OworMDM0MztDT01CSU5JTkcgR1JFRUsgS09ST05JUztNbjsyMzA7TlNNOzAzMTM7Ozs7Tjs7Ozs7CiswMzQ0O0NPTUJJTklORyBHUkVFSyBESUFMWVRJS0EgVE9OT1M7TW47MjMwO05TTTswMzA4IDAzMDE7Ozs7TjtHUkVFSyBOT04tU1BBQ0lORyBESUFFUkVTSVMgVE9OT1M7Ozs7CiswMzQ1O0NPTUJJTklORyBHUkVFSyBZUE9HRUdSQU1NRU5JO01uOzI0MDtOU007Ozs7O047R1JFRUsgTk9OLVNQQUNJTkcgSU9UQSBCRUxPVzs7MDM5OTs7MDM5OQorMDM0NjtDT01CSU5JTkcgQlJJREdFIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDM0NztDT01CSU5JTkcgRVFVQUxTIFNJR04gQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswMzQ4O0NPTUJJTklORyBET1VCTEUgVkVSVElDQUwgTElORSBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzAzNDk7Q09NQklOSU5HIExFRlQgQU5HTEUgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswMzRBO0NPTUJJTklORyBOT1QgVElMREUgQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswMzRCO0NPTUJJTklORyBIT01PVEhFVElDIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDM0QztDT01CSU5JTkcgQUxNT1NUIEVRVUFMIFRPIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDM0RDtDT01CSU5JTkcgTEVGVCBSSUdIVCBBUlJPVyBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzAzNEU7Q09NQklOSU5HIFVQV0FSRFMgQVJST1cgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswMzYwO0NPTUJJTklORyBET1VCTEUgVElMREU7TW47MjM0O05TTTs7Ozs7Tjs7Ozs7CiswMzYxO0NPTUJJTklORyBET1VCTEUgSU5WRVJURUQgQlJFVkU7TW47MjM0O05TTTs7Ozs7Tjs7Ozs7CiswMzYyO0NPTUJJTklORyBET1VCTEUgUklHSFRXQVJEUyBBUlJPVyBCRUxPVztNbjsyMzM7TlNNOzs7OztOOzs7OzsKKzAzNzQ7R1JFRUsgTlVNRVJBTCBTSUdOO1NrOzA7T047MDJCOTs7OztOO0dSRUVLIFVQUEVSIE5VTUVSQUwgU0lHTjtEZXhpYSBrZXJhaWE7OzsKKzAzNzU7R1JFRUsgTE9XRVIgTlVNRVJBTCBTSUdOO1NrOzA7T047Ozs7O047O0FyaXN0ZXJpIGtlcmFpYTs7OworMDM3QTtHUkVFSyBZUE9HRUdSQU1NRU5JO0xtOzA7TDs8Y29tcGF0PiAwMDIwIDAzNDU7Ozs7TjtHUkVFSyBTUEFDSU5HIElPVEEgQkVMT1c7Ozs7CiswMzdFO0dSRUVLIFFVRVNUSU9OIE1BUks7UG87MDtPTjswMDNCOzs7O047O0Vyb3RpbWF0aWtvOzs7CiswMzg0O0dSRUVLIFRPTk9TO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzAxOzs7O047R1JFRUsgU1BBQ0lORyBUT05PUzs7OzsKKzAzODU7R1JFRUsgRElBTFlUSUtBIFRPTk9TO1NrOzA7T047MDBBOCAwMzAxOzs7O047R1JFRUsgU1BBQ0lORyBESUFFUkVTSVMgVE9OT1M7Ozs7CiswMzg2O0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggVE9OT1M7THU7MDtMOzAzOTEgMDMwMTs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFRPTk9TOzs7MDNBQzsKKzAzODc7R1JFRUsgQU5PIFRFTEVJQTtQbzswO09OOzAwQjc7Ozs7Tjs7Ozs7CiswMzg4O0dSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gV0lUSCBUT05PUztMdTswO0w7MDM5NSAwMzAxOzs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVBTSUxPTiBUT05PUzs7OzAzQUQ7CiswMzg5O0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFRPTk9TO0x1OzA7TDswMzk3IDAzMDE7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgVE9OT1M7OzswM0FFOworMDM4QTtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggVE9OT1M7THU7MDtMOzAzOTkgMDMwMTs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgVE9OT1M7OzswM0FGOworMDM4QztHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OIFdJVEggVE9OT1M7THU7MDtMOzAzOUYgMDMwMTs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NSUNST04gVE9OT1M7OzswM0NDOworMDM4RTtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIFdJVEggVE9OT1M7THU7MDtMOzAzQTUgMDMwMTs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gVE9OT1M7OzswM0NEOworMDM4RjtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFRPTk9TO0x1OzA7TDswM0E5IDAzMDE7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBUT05PUzs7OzAzQ0U7CiswMzkwO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggRElBTFlUSUtBIEFORCBUT05PUztMbDswO0w7MDNDQSAwMzAxOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgRElBRVJFU0lTIFRPTk9TOzs7OworMDM5MTtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQTtMdTswO0w7Ozs7O047Ozs7MDNCMTsKKzAzOTI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQkVUQTtMdTswO0w7Ozs7O047Ozs7MDNCMjsKKzAzOTM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgR0FNTUE7THU7MDtMOzs7OztOOzs7OzAzQjM7CiswMzk0O0dSRUVLIENBUElUQUwgTEVUVEVSIERFTFRBO0x1OzA7TDs7Ozs7Tjs7OzswM0I0OworMDM5NTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OO0x1OzA7TDs7Ozs7Tjs7OzswM0I1OworMDM5NjtHUkVFSyBDQVBJVEFMIExFVFRFUiBaRVRBO0x1OzA7TDs7Ozs7Tjs7OzswM0I2OworMDM5NztHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEE7THU7MDtMOzs7OztOOzs7OzAzQjc7CiswMzk4O0dSRUVLIENBUElUQUwgTEVUVEVSIFRIRVRBO0x1OzA7TDs7Ozs7Tjs7OzswM0I4OworMDM5OTtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBO0x1OzA7TDs7Ozs7Tjs7OzswM0I5OworMDM5QTtHUkVFSyBDQVBJVEFMIExFVFRFUiBLQVBQQTtMdTswO0w7Ozs7O047Ozs7MDNCQTsKKzAzOUI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgTEFNREE7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIExBTUJEQTs7OzAzQkI7CiswMzlDO0dSRUVLIENBUElUQUwgTEVUVEVSIE1VO0x1OzA7TDs7Ozs7Tjs7OzswM0JDOworMDM5RDtHUkVFSyBDQVBJVEFMIExFVFRFUiBOVTtMdTswO0w7Ozs7O047Ozs7MDNCRDsKKzAzOUU7R1JFRUsgQ0FQSVRBTCBMRVRURVIgWEk7THU7MDtMOzs7OztOOzs7OzAzQkU7CiswMzlGO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NSUNST047THU7MDtMOzs7OztOOzs7OzAzQkY7CiswM0EwO0dSRUVLIENBUElUQUwgTEVUVEVSIFBJO0x1OzA7TDs7Ozs7Tjs7OzswM0MwOworMDNBMTtHUkVFSyBDQVBJVEFMIExFVFRFUiBSSE87THU7MDtMOzs7OztOOzs7OzAzQzE7CiswM0EzO0dSRUVLIENBUElUQUwgTEVUVEVSIFNJR01BO0x1OzA7TDs7Ozs7Tjs7OzswM0MzOworMDNBNDtHUkVFSyBDQVBJVEFMIExFVFRFUiBUQVU7THU7MDtMOzs7OztOOzs7OzAzQzQ7CiswM0E1O0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT047THU7MDtMOzs7OztOOzs7OzAzQzU7CiswM0E2O0dSRUVLIENBUElUQUwgTEVUVEVSIFBISTtMdTswO0w7Ozs7O047Ozs7MDNDNjsKKzAzQTc7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQ0hJO0x1OzA7TDs7Ozs7Tjs7OzswM0M3OworMDNBODtHUkVFSyBDQVBJVEFMIExFVFRFUiBQU0k7THU7MDtMOzs7OztOOzs7OzAzQzg7CiswM0E5O0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBO0x1OzA7TDs7Ozs7Tjs7OzswM0M5OworMDNBQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggRElBTFlUSUtBO0x1OzA7TDswMzk5IDAzMDg7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIERJQUVSRVNJUzs7OzAzQ0E7CiswM0FCO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gV0lUSCBESUFMWVRJS0E7THU7MDtMOzAzQTUgMDMwODs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gRElBRVJFU0lTOzs7MDNDQjsKKzAzQUM7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggVE9OT1M7TGw7MDtMOzAzQjEgMDMwMTs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBUT05PUzs7MDM4Njs7MDM4NgorMDNBRDtHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTiBXSVRIIFRPTk9TO0xsOzA7TDswM0I1IDAzMDE7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTiBUT05PUzs7MDM4ODs7MDM4OAorMDNBRTtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggVE9OT1M7TGw7MDtMOzAzQjcgMDMwMTs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgVE9OT1M7OzAzODk7OzAzODkKKzAzQUY7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBUT05PUztMbDswO0w7MDNCOSAwMzAxOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgVE9OT1M7OzAzOEE7OzAzOEEKKzAzQjA7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBESUFMWVRJS0EgQU5EIFRPTk9TO0xsOzA7TDswM0NCIDAzMDE7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBESUFFUkVTSVMgVE9OT1M7Ozs7CiswM0IxO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQTtMbDswO0w7Ozs7O047OzswMzkxOzswMzkxCiswM0IyO0dSRUVLIFNNQUxMIExFVFRFUiBCRVRBO0xsOzA7TDs7Ozs7Tjs7OzAzOTI7OzAzOTIKKzAzQjM7R1JFRUsgU01BTEwgTEVUVEVSIEdBTU1BO0xsOzA7TDs7Ozs7Tjs7OzAzOTM7OzAzOTMKKzAzQjQ7R1JFRUsgU01BTEwgTEVUVEVSIERFTFRBO0xsOzA7TDs7Ozs7Tjs7OzAzOTQ7OzAzOTQKKzAzQjU7R1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT047TGw7MDtMOzs7OztOOzs7MDM5NTs7MDM5NQorMDNCNjtHUkVFSyBTTUFMTCBMRVRURVIgWkVUQTtMbDswO0w7Ozs7O047OzswMzk2OzswMzk2CiswM0I3O0dSRUVLIFNNQUxMIExFVFRFUiBFVEE7TGw7MDtMOzs7OztOOzs7MDM5Nzs7MDM5NworMDNCODtHUkVFSyBTTUFMTCBMRVRURVIgVEhFVEE7TGw7MDtMOzs7OztOOzs7MDM5ODs7MDM5OAorMDNCOTtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQTtMbDswO0w7Ozs7O047OzswMzk5OzswMzk5CiswM0JBO0dSRUVLIFNNQUxMIExFVFRFUiBLQVBQQTtMbDswO0w7Ozs7O047OzswMzlBOzswMzlBCiswM0JCO0dSRUVLIFNNQUxMIExFVFRFUiBMQU1EQTtMbDswO0w7Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIExBTUJEQTs7MDM5Qjs7MDM5QgorMDNCQztHUkVFSyBTTUFMTCBMRVRURVIgTVU7TGw7MDtMOzs7OztOOzs7MDM5Qzs7MDM5QworMDNCRDtHUkVFSyBTTUFMTCBMRVRURVIgTlU7TGw7MDtMOzs7OztOOzs7MDM5RDs7MDM5RAorMDNCRTtHUkVFSyBTTUFMTCBMRVRURVIgWEk7TGw7MDtMOzs7OztOOzs7MDM5RTs7MDM5RQorMDNCRjtHUkVFSyBTTUFMTCBMRVRURVIgT01JQ1JPTjtMbDswO0w7Ozs7O047OzswMzlGOzswMzlGCiswM0MwO0dSRUVLIFNNQUxMIExFVFRFUiBQSTtMbDswO0w7Ozs7O047OzswM0EwOzswM0EwCiswM0MxO0dSRUVLIFNNQUxMIExFVFRFUiBSSE87TGw7MDtMOzs7OztOOzs7MDNBMTs7MDNBMQorMDNDMjtHUkVFSyBTTUFMTCBMRVRURVIgRklOQUwgU0lHTUE7TGw7MDtMOzs7OztOOzs7MDNBMzs7MDNBMworMDNDMztHUkVFSyBTTUFMTCBMRVRURVIgU0lHTUE7TGw7MDtMOzs7OztOOzs7MDNBMzs7MDNBMworMDNDNDtHUkVFSyBTTUFMTCBMRVRURVIgVEFVO0xsOzA7TDs7Ozs7Tjs7OzAzQTQ7OzAzQTQKKzAzQzU7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT047TGw7MDtMOzs7OztOOzs7MDNBNTs7MDNBNQorMDNDNjtHUkVFSyBTTUFMTCBMRVRURVIgUEhJO0xsOzA7TDs7Ozs7Tjs7OzAzQTY7OzAzQTYKKzAzQzc7R1JFRUsgU01BTEwgTEVUVEVSIENISTtMbDswO0w7Ozs7O047OzswM0E3OzswM0E3CiswM0M4O0dSRUVLIFNNQUxMIExFVFRFUiBQU0k7TGw7MDtMOzs7OztOOzs7MDNBODs7MDNBOAorMDNDOTtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0E7TGw7MDtMOzs7OztOOzs7MDNBOTs7MDNBOQorMDNDQTtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERJQUxZVElLQTtMbDswO0w7MDNCOSAwMzA4Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgRElBRVJFU0lTOzswM0FBOzswM0FBCiswM0NCO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggRElBTFlUSUtBO0xsOzA7TDswM0M1IDAzMDg7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBESUFFUkVTSVM7OzAzQUI7OzAzQUIKKzAzQ0M7R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gV0lUSCBUT05PUztMbDswO0w7MDNCRiAwMzAxOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gVE9OT1M7OzAzOEM7OzAzOEMKKzAzQ0Q7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBUT05PUztMbDswO0w7MDNDNSAwMzAxOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gVE9OT1M7OzAzOEU7OzAzOEUKKzAzQ0U7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggVE9OT1M7TGw7MDtMOzAzQzkgMDMwMTs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBUT05PUzs7MDM4Rjs7MDM4RgorMDNEMDtHUkVFSyBCRVRBIFNZTUJPTDtMbDswO0w7PGNvbXBhdD4gMDNCMjs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBDVVJMRUQgQkVUQTs7MDM5Mjs7MDM5MgorMDNEMTtHUkVFSyBUSEVUQSBTWU1CT0w7TGw7MDtMOzxjb21wYXQ+IDAzQjg7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgU0NSSVBUIFRIRVRBOzswMzk4OzswMzk4CiswM0QyO0dSRUVLIFVQU0lMT04gV0lUSCBIT09LIFNZTUJPTDtMdTswO0w7PGNvbXBhdD4gMDNBNTs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gSE9PSzs7OzsKKzAzRDM7R1JFRUsgVVBTSUxPTiBXSVRIIEFDVVRFIEFORCBIT09LIFNZTUJPTDtMdTswO0w7MDNEMiAwMzAxOzs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBIT09LIFRPTk9TOzs7OworMDNENDtHUkVFSyBVUFNJTE9OIFdJVEggRElBRVJFU0lTIEFORCBIT09LIFNZTUJPTDtMdTswO0w7MDNEMiAwMzA4Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBIT09LIERJQUVSRVNJUzs7OzsKKzAzRDU7R1JFRUsgUEhJIFNZTUJPTDtMbDswO0w7PGNvbXBhdD4gMDNDNjs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBTQ1JJUFQgUEhJOzswM0E2OzswM0E2CiswM0Q2O0dSRUVLIFBJIFNZTUJPTDtMbDswO0w7PGNvbXBhdD4gMDNDMDs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBQSTs7MDNBMDs7MDNBMAorMDNENztHUkVFSyBLQUkgU1lNQk9MO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswM0RBO0dSRUVLIExFVFRFUiBTVElHTUE7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIFNUSUdNQTs7OzAzREI7CiswM0RCO0dSRUVLIFNNQUxMIExFVFRFUiBTVElHTUE7TGw7MDtMOzs7OztOOzs7MDNEQTs7MDNEQQorMDNEQztHUkVFSyBMRVRURVIgRElHQU1NQTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgRElHQU1NQTs7OzAzREQ7CiswM0REO0dSRUVLIFNNQUxMIExFVFRFUiBESUdBTU1BO0xsOzA7TDs7Ozs7Tjs7OzAzREM7OzAzREMKKzAzREU7R1JFRUsgTEVUVEVSIEtPUFBBO0x1OzA7TDs7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBLT1BQQTs7OzAzREY7CiswM0RGO0dSRUVLIFNNQUxMIExFVFRFUiBLT1BQQTtMbDswO0w7Ozs7O047OzswM0RFOzswM0RFCiswM0UwO0dSRUVLIExFVFRFUiBTQU1QSTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgU0FNUEk7OzswM0UxOworMDNFMTtHUkVFSyBTTUFMTCBMRVRURVIgU0FNUEk7TGw7MDtMOzs7OztOOzs7MDNFMDs7MDNFMAorMDNFMjtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgU0hFSTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgU0hFSTs7OzAzRTM7CiswM0UzO0NPUFRJQyBTTUFMTCBMRVRURVIgU0hFSTtMbDswO0w7Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIFNIRUk7OzAzRTI7OzAzRTIKKzAzRTQ7Q09QVElDIENBUElUQUwgTEVUVEVSIEZFSTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgRkVJOzs7MDNFNTsKKzAzRTU7Q09QVElDIFNNQUxMIExFVFRFUiBGRUk7TGw7MDtMOzs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBGRUk7OzAzRTQ7OzAzRTQKKzAzRTY7Q09QVElDIENBUElUQUwgTEVUVEVSIEtIRUk7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIEtIRUk7OzswM0U3OworMDNFNztDT1BUSUMgU01BTEwgTEVUVEVSIEtIRUk7TGw7MDtMOzs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBLSEVJOzswM0U2OzswM0U2CiswM0U4O0NPUFRJQyBDQVBJVEFMIExFVFRFUiBIT1JJO0x1OzA7TDs7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBIT1JJOzs7MDNFOTsKKzAzRTk7Q09QVElDIFNNQUxMIExFVFRFUiBIT1JJO0xsOzA7TDs7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgSE9SSTs7MDNFODs7MDNFOAorMDNFQTtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgR0FOR0lBO0x1OzA7TDs7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBHQU5HSUE7OzswM0VCOworMDNFQjtDT1BUSUMgU01BTEwgTEVUVEVSIEdBTkdJQTtMbDswO0w7Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIEdBTkdJQTs7MDNFQTs7MDNFQQorMDNFQztDT1BUSUMgQ0FQSVRBTCBMRVRURVIgU0hJTUE7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIFNISU1BOzs7MDNFRDsKKzAzRUQ7Q09QVElDIFNNQUxMIExFVFRFUiBTSElNQTtMbDswO0w7Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIFNISU1BOzswM0VDOzswM0VDCiswM0VFO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBERUk7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIERFSTs7OzAzRUY7CiswM0VGO0NPUFRJQyBTTUFMTCBMRVRURVIgREVJO0xsOzA7TDs7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgREVJOzswM0VFOzswM0VFCiswM0YwO0dSRUVLIEtBUFBBIFNZTUJPTDtMbDswO0w7PGNvbXBhdD4gMDNCQTs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBTQ1JJUFQgS0FQUEE7OzAzOUE7OzAzOUEKKzAzRjE7R1JFRUsgUkhPIFNZTUJPTDtMbDswO0w7PGNvbXBhdD4gMDNDMTs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBUQUlMRUQgUkhPOzswM0ExOzswM0ExCiswM0YyO0dSRUVLIExVTkFURSBTSUdNQSBTWU1CT0w7TGw7MDtMOzxjb21wYXQ+IDAzQzI7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgTFVOQVRFIFNJR01BOzswM0EzOzswM0EzCiswM0YzO0dSRUVLIExFVFRFUiBZT1Q7TGw7MDtMOzs7OztOOzs7OzsKKzAzRjQ7R1JFRUsgQ0FQSVRBTCBUSEVUQSBTWU1CT0w7THU7MDtMOzxjb21wYXQ+IDAzOTg7Ozs7Tjs7OzswM0I4OworMDNGNTtHUkVFSyBMVU5BVEUgRVBTSUxPTiBTWU1CT0w7TGw7MDtMOzxjb21wYXQ+IDAzQjU7Ozs7Tjs7OzAzOTU7OzAzOTUKKzA0MDA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSUUgV0lUSCBHUkFWRTtMdTswO0w7MDQxNSAwMzAwOzs7O047Ozs7MDQ1MDsKKzA0MDE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSU87THU7MDtMOzA0MTUgMDMwODs7OztOOzs7OzA0NTE7CiswNDAyO0NZUklMTElDIENBUElUQUwgTEVUVEVSIERKRTtMdTswO0w7Ozs7O047O1NlcmJvY3JvYXRpYW47OzA0NTI7CiswNDAzO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEdKRTtMdTswO0w7MDQxMyAwMzAxOzs7O047Ozs7MDQ1MzsKKzA0MDQ7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVUtSQUlOSUFOIElFO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFOzs7MDQ1NDsKKzA0MDU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRFpFO0x1OzA7TDs7Ozs7Tjs7OzswNDU1OworMDQwNjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBCWUVMT1JVU1NJQU4tVUtSQUlOSUFOIEk7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEk7OzswNDU2OworMDQwNztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBZSTtMdTswO0w7MDQwNiAwMzA4Ozs7O047O1VrcmFpbmlhbjs7MDQ1NzsKKzA0MDg7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSkU7THU7MDtMOzs7OztOOzs7OzA0NTg7CiswNDA5O0NZUklMTElDIENBUElUQUwgTEVUVEVSIExKRTtMdTswO0w7Ozs7O047Ozs7MDQ1OTsKKzA0MEE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgTkpFO0x1OzA7TDs7Ozs7Tjs7OzswNDVBOworMDQwQjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBUU0hFO0x1OzA7TDs7Ozs7Tjs7U2VyYm9jcm9hdGlhbjs7MDQ1QjsKKzA0MEM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0pFO0x1OzA7TDswNDFBIDAzMDE7Ozs7Tjs7OzswNDVDOworMDQwRDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJIFdJVEggR1JBVkU7THU7MDtMOzA0MTggMDMwMDs7OztOOzs7OzA0NUQ7CiswNDBFO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNIT1JUIFU7THU7MDtMOzA0MjMgMDMwNjs7OztOOztCeWVsb3J1c3NpYW47OzA0NUU7CiswNDBGO0NZUklMTElDIENBUElUQUwgTEVUVEVSIERaSEU7THU7MDtMOzs7OztOOzs7OzA0NUY7CiswNDEwO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEE7THU7MDtMOzs7OztOOzs7OzA0MzA7CiswNDExO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEJFO0x1OzA7TDs7Ozs7Tjs7OzswNDMxOworMDQxMjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBWRTtMdTswO0w7Ozs7O047Ozs7MDQzMjsKKzA0MTM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgR0hFO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBHRTs7OzA0MzM7CiswNDE0O0NZUklMTElDIENBUElUQUwgTEVUVEVSIERFO0x1OzA7TDs7Ozs7Tjs7OzswNDM0OworMDQxNTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJRTtMdTswO0w7Ozs7O047Ozs7MDQzNTsKKzA0MTY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWkhFO0x1OzA7TDs7Ozs7Tjs7OzswNDM2OworMDQxNztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBaRTtMdTswO0w7Ozs7O047Ozs7MDQzNzsKKzA0MTg7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSUk7OzswNDM4OworMDQxOTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTSE9SVCBJO0x1OzA7TDswNDE4IDAzMDY7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTSE9SVCBJSTs7OzA0Mzk7CiswNDFBO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtBO0x1OzA7TDs7Ozs7Tjs7OzswNDNBOworMDQxQjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFTDtMdTswO0w7Ozs7O047Ozs7MDQzQjsKKzA0MUM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRU07THU7MDtMOzs7OztOOzs7OzA0M0M7CiswNDFEO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVOO0x1OzA7TDs7Ozs7Tjs7OzswNDNEOworMDQxRTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBPO0x1OzA7TDs7Ozs7Tjs7OzswNDNFOworMDQxRjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBQRTtMdTswO0w7Ozs7O047Ozs7MDQzRjsKKzA0MjA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRVI7THU7MDtMOzs7OztOOzs7OzA0NDA7CiswNDIxO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVTO0x1OzA7TDs7Ozs7Tjs7OzswNDQxOworMDQyMjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBURTtMdTswO0w7Ozs7O047Ozs7MDQ0MjsKKzA0MjM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVTtMdTswO0w7Ozs7O047Ozs7MDQ0MzsKKzA0MjQ7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRUY7THU7MDtMOzs7OztOOzs7OzA0NDQ7CiswNDI1O0NZUklMTElDIENBUElUQUwgTEVUVEVSIEhBO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLSEE7OzswNDQ1OworMDQyNjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBUU0U7THU7MDtMOzs7OztOOzs7OzA0NDY7CiswNDI3O0NZUklMTElDIENBUElUQUwgTEVUVEVSIENIRTtMdTswO0w7Ozs7O047Ozs7MDQ0NzsKKzA0Mjg7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0hBO0x1OzA7TDs7Ozs7Tjs7OzswNDQ4OworMDQyOTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTSENIQTtMdTswO0w7Ozs7O047Ozs7MDQ0OTsKKzA0MkE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSEFSRCBTSUdOO0x1OzA7TDs7Ozs7Tjs7OzswNDRBOworMDQyQjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBZRVJVO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBZRVJJOzs7MDQ0QjsKKzA0MkM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU09GVCBTSUdOO0x1OzA7TDs7Ozs7Tjs7OzswNDRDOworMDQyRDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBSRVZFUlNFRCBFOzs7MDQ0RDsKKzA0MkU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWVU7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIElVOzs7MDQ0RTsKKzA0MkY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWUE7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIElBOzs7MDQ0RjsKKzA0MzA7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEE7TGw7MDtMOzs7OztOOzs7MDQxMDs7MDQxMAorMDQzMTtDWVJJTExJQyBTTUFMTCBMRVRURVIgQkU7TGw7MDtMOzs7OztOOzs7MDQxMTs7MDQxMQorMDQzMjtDWVJJTExJQyBTTUFMTCBMRVRURVIgVkU7TGw7MDtMOzs7OztOOzs7MDQxMjs7MDQxMgorMDQzMztDWVJJTExJQyBTTUFMTCBMRVRURVIgR0hFO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgR0U7OzA0MTM7OzA0MTMKKzA0MzQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIERFO0xsOzA7TDs7Ozs7Tjs7OzA0MTQ7OzA0MTQKKzA0MzU7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElFO0xsOzA7TDs7Ozs7Tjs7OzA0MTU7OzA0MTUKKzA0MzY7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFpIRTtMbDswO0w7Ozs7O047OzswNDE2OzswNDE2CiswNDM3O0NZUklMTElDIFNNQUxMIExFVFRFUiBaRTtMbDswO0w7Ozs7O047OzswNDE3OzswNDE3CiswNDM4O0NZUklMTElDIFNNQUxMIExFVFRFUiBJO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgSUk7OzA0MTg7OzA0MTgKKzA0Mzk7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNIT1JUIEk7TGw7MDtMOzA0MzggMDMwNjs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBTSE9SVCBJSTs7MDQxOTs7MDQxOQorMDQzQTtDWVJJTExJQyBTTUFMTCBMRVRURVIgS0E7TGw7MDtMOzs7OztOOzs7MDQxQTs7MDQxQQorMDQzQjtDWVJJTExJQyBTTUFMTCBMRVRURVIgRUw7TGw7MDtMOzs7OztOOzs7MDQxQjs7MDQxQgorMDQzQztDWVJJTExJQyBTTUFMTCBMRVRURVIgRU07TGw7MDtMOzs7OztOOzs7MDQxQzs7MDQxQworMDQzRDtDWVJJTExJQyBTTUFMTCBMRVRURVIgRU47TGw7MDtMOzs7OztOOzs7MDQxRDs7MDQxRAorMDQzRTtDWVJJTExJQyBTTUFMTCBMRVRURVIgTztMbDswO0w7Ozs7O047OzswNDFFOzswNDFFCiswNDNGO0NZUklMTElDIFNNQUxMIExFVFRFUiBQRTtMbDswO0w7Ozs7O047OzswNDFGOzswNDFGCiswNDQwO0NZUklMTElDIFNNQUxMIExFVFRFUiBFUjtMbDswO0w7Ozs7O047OzswNDIwOzswNDIwCiswNDQxO0NZUklMTElDIFNNQUxMIExFVFRFUiBFUztMbDswO0w7Ozs7O047OzswNDIxOzswNDIxCiswNDQyO0NZUklMTElDIFNNQUxMIExFVFRFUiBURTtMbDswO0w7Ozs7O047OzswNDIyOzswNDIyCiswNDQzO0NZUklMTElDIFNNQUxMIExFVFRFUiBVO0xsOzA7TDs7Ozs7Tjs7OzA0MjM7OzA0MjMKKzA0NDQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVGO0xsOzA7TDs7Ozs7Tjs7OzA0MjQ7OzA0MjQKKzA0NDU7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEhBO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgS0hBOzswNDI1OzswNDI1CiswNDQ2O0NZUklMTElDIFNNQUxMIExFVFRFUiBUU0U7TGw7MDtMOzs7OztOOzs7MDQyNjs7MDQyNgorMDQ0NztDWVJJTExJQyBTTUFMTCBMRVRURVIgQ0hFO0xsOzA7TDs7Ozs7Tjs7OzA0Mjc7OzA0MjcKKzA0NDg7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNIQTtMbDswO0w7Ozs7O047OzswNDI4OzswNDI4CiswNDQ5O0NZUklMTElDIFNNQUxMIExFVFRFUiBTSENIQTtMbDswO0w7Ozs7O047OzswNDI5OzswNDI5CiswNDRBO0NZUklMTElDIFNNQUxMIExFVFRFUiBIQVJEIFNJR047TGw7MDtMOzs7OztOOzs7MDQyQTs7MDQyQQorMDQ0QjtDWVJJTExJQyBTTUFMTCBMRVRURVIgWUVSVTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFlFUkk7OzA0MkI7OzA0MkIKKzA0NEM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNPRlQgU0lHTjtMbDswO0w7Ozs7O047OzswNDJDOzswNDJDCiswNDREO0NZUklMTElDIFNNQUxMIExFVFRFUiBFO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgUkVWRVJTRUQgRTs7MDQyRDs7MDQyRAorMDQ0RTtDWVJJTExJQyBTTUFMTCBMRVRURVIgWVU7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBJVTs7MDQyRTs7MDQyRQorMDQ0RjtDWVJJTExJQyBTTUFMTCBMRVRURVIgWUE7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBJQTs7MDQyRjs7MDQyRgorMDQ1MDtDWVJJTExJQyBTTUFMTCBMRVRURVIgSUUgV0lUSCBHUkFWRTtMbDswO0w7MDQzNSAwMzAwOzs7O047OzswNDAwOzswNDAwCiswNDUxO0NZUklMTElDIFNNQUxMIExFVFRFUiBJTztMbDswO0w7MDQzNSAwMzA4Ozs7O047OzswNDAxOzswNDAxCiswNDUyO0NZUklMTElDIFNNQUxMIExFVFRFUiBESkU7TGw7MDtMOzs7OztOOztTZXJib2Nyb2F0aWFuOzA0MDI7OzA0MDIKKzA0NTM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEdKRTtMbDswO0w7MDQzMyAwMzAxOzs7O047OzswNDAzOzswNDAzCiswNDU0O0NZUklMTElDIFNNQUxMIExFVFRFUiBVS1JBSU5JQU4gSUU7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBFOzswNDA0OzswNDA0CiswNDU1O0NZUklMTElDIFNNQUxMIExFVFRFUiBEWkU7TGw7MDtMOzs7OztOOzs7MDQwNTs7MDQwNQorMDQ1NjtDWVJJTExJQyBTTUFMTCBMRVRURVIgQllFTE9SVVNTSUFOLVVLUkFJTklBTiBJO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgSTs7MDQwNjs7MDQwNgorMDQ1NztDWVJJTExJQyBTTUFMTCBMRVRURVIgWUk7TGw7MDtMOzA0NTYgMDMwODs7OztOOztVa3JhaW5pYW47MDQwNzs7MDQwNworMDQ1ODtDWVJJTExJQyBTTUFMTCBMRVRURVIgSkU7TGw7MDtMOzs7OztOOzs7MDQwODs7MDQwOAorMDQ1OTtDWVJJTExJQyBTTUFMTCBMRVRURVIgTEpFO0xsOzA7TDs7Ozs7Tjs7OzA0MDk7OzA0MDkKKzA0NUE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIE5KRTtMbDswO0w7Ozs7O047OzswNDBBOzswNDBBCiswNDVCO0NZUklMTElDIFNNQUxMIExFVFRFUiBUU0hFO0xsOzA7TDs7Ozs7Tjs7U2VyYm9jcm9hdGlhbjswNDBCOzswNDBCCiswNDVDO0NZUklMTElDIFNNQUxMIExFVFRFUiBLSkU7TGw7MDtMOzA0M0EgMDMwMTs7OztOOzs7MDQwQzs7MDQwQworMDQ1RDtDWVJJTExJQyBTTUFMTCBMRVRURVIgSSBXSVRIIEdSQVZFO0xsOzA7TDswNDM4IDAzMDA7Ozs7Tjs7OzA0MEQ7OzA0MEQKKzA0NUU7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNIT1JUIFU7TGw7MDtMOzA0NDMgMDMwNjs7OztOOztCeWVsb3J1c3NpYW47MDQwRTs7MDQwRQorMDQ1RjtDWVJJTExJQyBTTUFMTCBMRVRURVIgRFpIRTtMbDswO0w7Ozs7O047OzswNDBGOzswNDBGCiswNDYwO0NZUklMTElDIENBUElUQUwgTEVUVEVSIE9NRUdBO0x1OzA7TDs7Ozs7Tjs7OzswNDYxOworMDQ2MTtDWVJJTExJQyBTTUFMTCBMRVRURVIgT01FR0E7TGw7MDtMOzs7OztOOzs7MDQ2MDs7MDQ2MAorMDQ2MjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBZQVQ7THU7MDtMOzs7OztOOzs7OzA0NjM7CiswNDYzO0NZUklMTElDIFNNQUxMIExFVFRFUiBZQVQ7TGw7MDtMOzs7OztOOzs7MDQ2Mjs7MDQ2MgorMDQ2NDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJT1RJRklFRCBFO0x1OzA7TDs7Ozs7Tjs7OzswNDY1OworMDQ2NTtDWVJJTExJQyBTTUFMTCBMRVRURVIgSU9USUZJRUQgRTtMbDswO0w7Ozs7O047OzswNDY0OzswNDY0CiswNDY2O0NZUklMTElDIENBUElUQUwgTEVUVEVSIExJVFRMRSBZVVM7THU7MDtMOzs7OztOOzs7OzA0Njc7CiswNDY3O0NZUklMTElDIFNNQUxMIExFVFRFUiBMSVRUTEUgWVVTO0xsOzA7TDs7Ozs7Tjs7OzA0NjY7OzA0NjYKKzA0Njg7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSU9USUZJRUQgTElUVExFIFlVUztMdTswO0w7Ozs7O047Ozs7MDQ2OTsKKzA0Njk7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElPVElGSUVEIExJVFRMRSBZVVM7TGw7MDtMOzs7OztOOzs7MDQ2ODs7MDQ2OAorMDQ2QTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBCSUcgWVVTO0x1OzA7TDs7Ozs7Tjs7OzswNDZCOworMDQ2QjtDWVJJTExJQyBTTUFMTCBMRVRURVIgQklHIFlVUztMbDswO0w7Ozs7O047OzswNDZBOzswNDZBCiswNDZDO0NZUklMTElDIENBUElUQUwgTEVUVEVSIElPVElGSUVEIEJJRyBZVVM7THU7MDtMOzs7OztOOzs7OzA0NkQ7CiswNDZEO0NZUklMTElDIFNNQUxMIExFVFRFUiBJT1RJRklFRCBCSUcgWVVTO0xsOzA7TDs7Ozs7Tjs7OzA0NkM7OzA0NkMKKzA0NkU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS1NJO0x1OzA7TDs7Ozs7Tjs7OzswNDZGOworMDQ2RjtDWVJJTExJQyBTTUFMTCBMRVRURVIgS1NJO0xsOzA7TDs7Ozs7Tjs7OzA0NkU7OzA0NkUKKzA0NzA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgUFNJO0x1OzA7TDs7Ozs7Tjs7OzswNDcxOworMDQ3MTtDWVJJTExJQyBTTUFMTCBMRVRURVIgUFNJO0xsOzA7TDs7Ozs7Tjs7OzA0NzA7OzA0NzAKKzA0NzI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRklUQTtMdTswO0w7Ozs7O047Ozs7MDQ3MzsKKzA0NzM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEZJVEE7TGw7MDtMOzs7OztOOzs7MDQ3Mjs7MDQ3MgorMDQ3NDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJWkhJVFNBO0x1OzA7TDs7Ozs7Tjs7OzswNDc1OworMDQ3NTtDWVJJTExJQyBTTUFMTCBMRVRURVIgSVpISVRTQTtMbDswO0w7Ozs7O047OzswNDc0OzswNDc0CiswNDc2O0NZUklMTElDIENBUElUQUwgTEVUVEVSIElaSElUU0EgV0lUSCBET1VCTEUgR1JBVkUgQUNDRU5UO0x1OzA7TDswNDc0IDAzMEY7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJWkhJVFNBIERPVUJMRSBHUkFWRTs7OzA0Nzc7CiswNDc3O0NZUklMTElDIFNNQUxMIExFVFRFUiBJWkhJVFNBIFdJVEggRE9VQkxFIEdSQVZFIEFDQ0VOVDtMbDswO0w7MDQ3NSAwMzBGOzs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElaSElUU0EgRE9VQkxFIEdSQVZFOzswNDc2OzswNDc2CiswNDc4O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFVLO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBVSyBESUdSQVBIOzs7MDQ3OTsKKzA0Nzk7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFVLO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgVUsgRElHUkFQSDs7MDQ3ODs7MDQ3OAorMDQ3QTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBST1VORCBPTUVHQTtMdTswO0w7Ozs7O047Ozs7MDQ3QjsKKzA0N0I7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFJPVU5EIE9NRUdBO0xsOzA7TDs7Ozs7Tjs7OzA0N0E7OzA0N0EKKzA0N0M7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBUSVRMTztMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgT01FR0EgVElUTE87OzswNDdEOworMDQ3RDtDWVJJTExJQyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBUSVRMTztMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIE9NRUdBIFRJVExPOzswNDdDOzswNDdDCiswNDdFO0NZUklMTElDIENBUElUQUwgTEVUVEVSIE9UO0x1OzA7TDs7Ozs7Tjs7OzswNDdGOworMDQ3RjtDWVJJTExJQyBTTUFMTCBMRVRURVIgT1Q7TGw7MDtMOzs7OztOOzs7MDQ3RTs7MDQ3RQorMDQ4MDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLT1BQQTtMdTswO0w7Ozs7O047Ozs7MDQ4MTsKKzA0ODE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtPUFBBO0xsOzA7TDs7Ozs7Tjs7OzA0ODA7OzA0ODAKKzA0ODI7Q1lSSUxMSUMgVEhPVVNBTkRTIFNJR047U287MDtMOzs7OztOOzs7OzsKKzA0ODM7Q09NQklOSU5HIENZUklMTElDIFRJVExPO01uOzIzMDtOU007Ozs7O047Q1lSSUxMSUMgTk9OLVNQQUNJTkcgVElUTE87Ozs7CiswNDg0O0NPTUJJTklORyBDWVJJTExJQyBQQUxBVEFMSVpBVElPTjtNbjsyMzA7TlNNOzs7OztOO0NZUklMTElDIE5PTi1TUEFDSU5HIFBBTEFUQUxJWkFUSU9OOzs7OworMDQ4NTtDT01CSU5JTkcgQ1lSSUxMSUMgREFTSUEgUE5FVU1BVEE7TW47MjMwO05TTTs7Ozs7TjtDWVJJTExJQyBOT04tU1BBQ0lORyBEQVNJQSBQTkVVTUFUQTs7OzsKKzA0ODY7Q09NQklOSU5HIENZUklMTElDIFBTSUxJIFBORVVNQVRBO01uOzIzMDtOU007Ozs7O047Q1lSSUxMSUMgTk9OLVNQQUNJTkcgUFNJTEkgUE5FVU1BVEE7Ozs7CiswNDg4O0NPTUJJTklORyBDWVJJTExJQyBIVU5EUkVEIFRIT1VTQU5EUyBTSUdOO01lOzA7TlNNOzs7OztOOzs7OzsKKzA0ODk7Q09NQklOSU5HIENZUklMTElDIE1JTExJT05TIFNJR047TWU7MDtOU007Ozs7O047Ozs7OworMDQ4QztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTRU1JU09GVCBTSUdOO0x1OzA7TDs7Ozs7Tjs7OzswNDhEOworMDQ4RDtDWVJJTExJQyBTTUFMTCBMRVRURVIgU0VNSVNPRlQgU0lHTjtMbDswO0w7Ozs7O047OzswNDhDOzswNDhDCiswNDhFO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVSIFdJVEggVElDSztMdTswO0w7Ozs7O047Ozs7MDQ4RjsKKzA0OEY7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVSIFdJVEggVElDSztMbDswO0w7Ozs7O047OzswNDhFOzswNDhFCiswNDkwO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEdIRSBXSVRIIFVQVFVSTjtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgR0UgV0lUSCBVUFRVUk47OzswNDkxOworMDQ5MTtDWVJJTExJQyBTTUFMTCBMRVRURVIgR0hFIFdJVEggVVBUVVJOO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgR0UgV0lUSCBVUFRVUk47OzA0OTA7OzA0OTAKKzA0OTI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgR0hFIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBHRSBCQVI7OzswNDkzOworMDQ5MztDWVJJTExJQyBTTUFMTCBMRVRURVIgR0hFIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgR0UgQkFSOzswNDkyOzswNDkyCiswNDk0O0NZUklMTElDIENBUElUQUwgTEVUVEVSIEdIRSBXSVRIIE1JRERMRSBIT09LO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBHRSBIT09LOzs7MDQ5NTsKKzA0OTU7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEdIRSBXSVRIIE1JRERMRSBIT09LO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgR0UgSE9PSzs7MDQ5NDs7MDQ5NAorMDQ5NjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBaSEUgV0lUSCBERVNDRU5ERVI7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFpIRSBXSVRIIFJJR0hUIERFU0NFTkRFUjs7OzA0OTc7CiswNDk3O0NZUklMTElDIFNNQUxMIExFVFRFUiBaSEUgV0lUSCBERVNDRU5ERVI7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBaSEUgV0lUSCBSSUdIVCBERVNDRU5ERVI7OzA0OTY7OzA0OTYKKzA0OTg7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWkUgV0lUSCBERVNDRU5ERVI7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFpFIENFRElMTEE7OzswNDk5OworMDQ5OTtDWVJJTExJQyBTTUFMTCBMRVRURVIgWkUgV0lUSCBERVNDRU5ERVI7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBaRSBDRURJTExBOzswNDk4OzswNDk4CiswNDlBO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtBIFdJVEggREVTQ0VOREVSO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLQSBXSVRIIFJJR0hUIERFU0NFTkRFUjs7OzA0OUI7CiswNDlCO0NZUklMTElDIFNNQUxMIExFVFRFUiBLQSBXSVRIIERFU0NFTkRFUjtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtBIFdJVEggUklHSFQgREVTQ0VOREVSOzswNDlBOzswNDlBCiswNDlDO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtBIFdJVEggVkVSVElDQUwgU1RST0tFO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLQSBWRVJUSUNBTCBCQVI7OzswNDlEOworMDQ5RDtDWVJJTExJQyBTTUFMTCBMRVRURVIgS0EgV0lUSCBWRVJUSUNBTCBTVFJPS0U7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBLQSBWRVJUSUNBTCBCQVI7OzA0OUM7OzA0OUMKKzA0OUU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0EgV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtBIEJBUjs7OzA0OUY7CiswNDlGO0NZUklMTElDIFNNQUxMIExFVFRFUiBLQSBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtBIEJBUjs7MDQ5RTs7MDQ5RQorMDRBMDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBCQVNIS0lSIEtBO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBSRVZFUlNFRCBHRSBLQTs7OzA0QTE7CiswNEExO0NZUklMTElDIFNNQUxMIExFVFRFUiBCQVNIS0lSIEtBO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgUkVWRVJTRUQgR0UgS0E7OzA0QTA7OzA0QTAKKzA0QTI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRU4gV0lUSCBERVNDRU5ERVI7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVOIFdJVEggUklHSFQgREVTQ0VOREVSOzs7MDRBMzsKKzA0QTM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVOIFdJVEggREVTQ0VOREVSO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgRU4gV0lUSCBSSUdIVCBERVNDRU5ERVI7OzA0QTI7OzA0QTIKKzA0QTQ7Q1lSSUxMSUMgQ0FQSVRBTCBMSUdBVFVSRSBFTiBHSEU7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVOIEdFOzs7MDRBNTsKKzA0QTU7Q1lSSUxMSUMgU01BTEwgTElHQVRVUkUgRU4gR0hFO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgRU4gR0U7OzA0QTQ7OzA0QTQKKzA0QTY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgUEUgV0lUSCBNSURETEUgSE9PSztMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgUEUgSE9PSztBYmtoYXNpYW47OzA0QTc7CiswNEE3O0NZUklMTElDIFNNQUxMIExFVFRFUiBQRSBXSVRIIE1JRERMRSBIT09LO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgUEUgSE9PSztBYmtoYXNpYW47MDRBNjs7MDRBNgorMDRBODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBBQktIQVNJQU4gSEE7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIE8gSE9PSzs7OzA0QTk7CiswNEE5O0NZUklMTElDIFNNQUxMIExFVFRFUiBBQktIQVNJQU4gSEE7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBPIEhPT0s7OzA0QTg7OzA0QTgKKzA0QUE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRVMgV0lUSCBERVNDRU5ERVI7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVTIENFRElMTEE7OzswNEFCOworMDRBQjtDWVJJTExJQyBTTUFMTCBMRVRURVIgRVMgV0lUSCBERVNDRU5ERVI7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBFUyBDRURJTExBOzswNEFBOzswNEFBCiswNEFDO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFRFIFdJVEggREVTQ0VOREVSO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBURSBXSVRIIFJJR0hUIERFU0NFTkRFUjs7OzA0QUQ7CiswNEFEO0NZUklMTElDIFNNQUxMIExFVFRFUiBURSBXSVRIIERFU0NFTkRFUjtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFRFIFdJVEggUklHSFQgREVTQ0VOREVSOzswNEFDOzswNEFDCiswNEFFO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNUUkFJR0hUIFU7THU7MDtMOzs7OztOOzs7OzA0QUY7CiswNEFGO0NZUklMTElDIFNNQUxMIExFVFRFUiBTVFJBSUdIVCBVO0xsOzA7TDs7Ozs7Tjs7OzA0QUU7OzA0QUUKKzA0QjA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU1RSQUlHSFQgVSBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU1RSQUlHSFQgVSBCQVI7OzswNEIxOworMDRCMTtDWVJJTExJQyBTTUFMTCBMRVRURVIgU1RSQUlHSFQgVSBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNUUkFJR0hUIFUgQkFSOzswNEIwOzswNEIwCiswNEIyO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEhBIFdJVEggREVTQ0VOREVSO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLSEEgV0lUSCBSSUdIVCBERVNDRU5ERVI7OzswNEIzOworMDRCMztDWVJJTExJQyBTTUFMTCBMRVRURVIgSEEgV0lUSCBERVNDRU5ERVI7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBLSEEgV0lUSCBSSUdIVCBERVNDRU5ERVI7OzA0QjI7OzA0QjIKKzA0QjQ7Q1lSSUxMSUMgQ0FQSVRBTCBMSUdBVFVSRSBURSBUU0U7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFRFIFRTRTtBYmtoYXNpYW47OzA0QjU7CiswNEI1O0NZUklMTElDIFNNQUxMIExJR0FUVVJFIFRFIFRTRTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFRFIFRTRTtBYmtoYXNpYW47MDRCNDs7MDRCNAorMDRCNjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBDSEUgV0lUSCBERVNDRU5ERVI7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIENIRSBXSVRIIFJJR0hUIERFU0NFTkRFUjs7OzA0Qjc7CiswNEI3O0NZUklMTElDIFNNQUxMIExFVFRFUiBDSEUgV0lUSCBERVNDRU5ERVI7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBDSEUgV0lUSCBSSUdIVCBERVNDRU5ERVI7OzA0QjY7OzA0QjYKKzA0Qjg7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQ0hFIFdJVEggVkVSVElDQUwgU1RST0tFO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBDSEUgVkVSVElDQUwgQkFSOzs7MDRCOTsKKzA0Qjk7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIENIRSBXSVRIIFZFUlRJQ0FMIFNUUk9LRTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIENIRSBWRVJUSUNBTCBCQVI7OzA0Qjg7OzA0QjgKKzA0QkE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0hIQTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSDs7OzA0QkI7CiswNEJCO0NZUklMTElDIFNNQUxMIExFVFRFUiBTSEhBO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgSDs7MDRCQTs7MDRCQQorMDRCQztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBBQktIQVNJQU4gQ0hFO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJRSBIT09LOzs7MDRCRDsKKzA0QkQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEFCS0hBU0lBTiBDSEU7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBJRSBIT09LOzswNEJDOzswNEJDCiswNEJFO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEFCS0hBU0lBTiBDSEUgV0lUSCBERVNDRU5ERVI7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIElFIEhPT0sgT0dPTkVLOzs7MDRCRjsKKzA0QkY7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEFCS0hBU0lBTiBDSEUgV0lUSCBERVNDRU5ERVI7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBJRSBIT09LIE9HT05FSzs7MDRCRTs7MDRCRQorMDRDMDtDWVJJTExJQyBMRVRURVIgUEFMT0NIS0E7THU7MDtMOzs7OztOO0NZUklMTElDIExFVFRFUiBJOzs7OworMDRDMTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBaSEUgV0lUSCBCUkVWRTtMdTswO0w7MDQxNiAwMzA2Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0hPUlQgWkhFOzs7MDRDMjsKKzA0QzI7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFpIRSBXSVRIIEJSRVZFO0xsOzA7TDswNDM2IDAzMDY7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgU0hPUlQgWkhFOzswNEMxOzswNEMxCiswNEMzO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtBIFdJVEggSE9PSztMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0EgSE9PSzs7OzA0QzQ7CiswNEM0O0NZUklMTElDIFNNQUxMIExFVFRFUiBLQSBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBLQSBIT09LOzswNEMzOzswNEMzCiswNEM3O0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVOIFdJVEggSE9PSztMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRU4gSE9PSzs7OzA0Qzg7CiswNEM4O0NZUklMTElDIFNNQUxMIExFVFRFUiBFTiBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBFTiBIT09LOzswNEM3OzswNEM3CiswNENCO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtIQUtBU1NJQU4gQ0hFO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBDSEUgV0lUSCBMRUZUIERFU0NFTkRFUjs7OzA0Q0M7CiswNENDO0NZUklMTElDIFNNQUxMIExFVFRFUiBLSEFLQVNTSUFOIENIRTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIENIRSBXSVRIIExFRlQgREVTQ0VOREVSOzswNENCOzswNENCCiswNEQwO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEEgV0lUSCBCUkVWRTtMdTswO0w7MDQxMCAwMzA2Ozs7O047Ozs7MDREMTsKKzA0RDE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEEgV0lUSCBCUkVWRTtMbDswO0w7MDQzMCAwMzA2Ozs7O047OzswNEQwOzswNEQwCiswNEQyO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEEgV0lUSCBESUFFUkVTSVM7THU7MDtMOzA0MTAgMDMwODs7OztOOzs7OzA0RDM7CiswNEQzO0NZUklMTElDIFNNQUxMIExFVFRFUiBBIFdJVEggRElBRVJFU0lTO0xsOzA7TDswNDMwIDAzMDg7Ozs7Tjs7OzA0RDI7OzA0RDIKKzA0RDQ7Q1lSSUxMSUMgQ0FQSVRBTCBMSUdBVFVSRSBBIElFO0x1OzA7TDs7Ozs7Tjs7OzswNEQ1OworMDRENTtDWVJJTExJQyBTTUFMTCBMSUdBVFVSRSBBIElFO0xsOzA7TDs7Ozs7Tjs7OzA0RDQ7OzA0RDQKKzA0RDY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSUUgV0lUSCBCUkVWRTtMdTswO0w7MDQxNSAwMzA2Ozs7O047Ozs7MDRENzsKKzA0RDc7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElFIFdJVEggQlJFVkU7TGw7MDtMOzA0MzUgMDMwNjs7OztOOzs7MDRENjs7MDRENgorMDREODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTQ0hXQTtMdTswO0w7Ozs7O047Ozs7MDREOTsKKzA0RDk7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNDSFdBO0xsOzA7TDs7Ozs7Tjs7OzA0RDg7OzA0RDgKKzA0REE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0NIV0EgV0lUSCBESUFFUkVTSVM7THU7MDtMOzA0RDggMDMwODs7OztOOzs7OzA0REI7CiswNERCO0NZUklMTElDIFNNQUxMIExFVFRFUiBTQ0hXQSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDREOSAwMzA4Ozs7O047OzswNERBOzswNERBCiswNERDO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFpIRSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDQxNiAwMzA4Ozs7O047Ozs7MDRERDsKKzA0REQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFpIRSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDQzNiAwMzA4Ozs7O047OzswNERDOzswNERDCiswNERFO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFpFIFdJVEggRElBRVJFU0lTO0x1OzA7TDswNDE3IDAzMDg7Ozs7Tjs7OzswNERGOworMDRERjtDWVJJTExJQyBTTUFMTCBMRVRURVIgWkUgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzA0MzcgMDMwODs7OztOOzs7MDRERTs7MDRERQorMDRFMDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBBQktIQVNJQU4gRFpFO0x1OzA7TDs7Ozs7Tjs7OzswNEUxOworMDRFMTtDWVJJTExJQyBTTUFMTCBMRVRURVIgQUJLSEFTSUFOIERaRTtMbDswO0w7Ozs7O047OzswNEUwOzswNEUwCiswNEUyO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEkgV0lUSCBNQUNST047THU7MDtMOzA0MTggMDMwNDs7OztOOzs7OzA0RTM7CiswNEUzO0NZUklMTElDIFNNQUxMIExFVFRFUiBJIFdJVEggTUFDUk9OO0xsOzA7TDswNDM4IDAzMDQ7Ozs7Tjs7OzA0RTI7OzA0RTIKKzA0RTQ7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDQxOCAwMzA4Ozs7O047Ozs7MDRFNTsKKzA0RTU7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEkgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzA0MzggMDMwODs7OztOOzs7MDRFNDs7MDRFNAorMDRFNjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBPIFdJVEggRElBRVJFU0lTO0x1OzA7TDswNDFFIDAzMDg7Ozs7Tjs7OzswNEU3OworMDRFNztDWVJJTExJQyBTTUFMTCBMRVRURVIgTyBXSVRIIERJQUVSRVNJUztMbDswO0w7MDQzRSAwMzA4Ozs7O047OzswNEU2OzswNEU2CiswNEU4O0NZUklMTElDIENBUElUQUwgTEVUVEVSIEJBUlJFRCBPO0x1OzA7TDs7Ozs7Tjs7OzswNEU5OworMDRFOTtDWVJJTExJQyBTTUFMTCBMRVRURVIgQkFSUkVEIE87TGw7MDtMOzs7OztOOzs7MDRFODs7MDRFOAorMDRFQTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBCQVJSRUQgTyBXSVRIIERJQUVSRVNJUztMdTswO0w7MDRFOCAwMzA4Ozs7O047Ozs7MDRFQjsKKzA0RUI7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEJBUlJFRCBPIFdJVEggRElBRVJFU0lTO0xsOzA7TDswNEU5IDAzMDg7Ozs7Tjs7OzA0RUE7OzA0RUEKKzA0RUM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDQyRCAwMzA4Ozs7O047Ozs7MDRFRDsKKzA0RUQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEUgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzA0NEQgMDMwODs7OztOOzs7MDRFQzs7MDRFQworMDRFRTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBVIFdJVEggTUFDUk9OO0x1OzA7TDswNDIzIDAzMDQ7Ozs7Tjs7OzswNEVGOworMDRFRjtDWVJJTExJQyBTTUFMTCBMRVRURVIgVSBXSVRIIE1BQ1JPTjtMbDswO0w7MDQ0MyAwMzA0Ozs7O047OzswNEVFOzswNEVFCiswNEYwO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVM7THU7MDtMOzA0MjMgMDMwODs7OztOOzs7OzA0RjE7CiswNEYxO0NZUklMTElDIFNNQUxMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTO0xsOzA7TDswNDQzIDAzMDg7Ozs7Tjs7OzA0RjA7OzA0RjAKKzA0RjI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVSBXSVRIIERPVUJMRSBBQ1VURTtMdTswO0w7MDQyMyAwMzBCOzs7O047Ozs7MDRGMzsKKzA0RjM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFUgV0lUSCBET1VCTEUgQUNVVEU7TGw7MDtMOzA0NDMgMDMwQjs7OztOOzs7MDRGMjs7MDRGMgorMDRGNDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBDSEUgV0lUSCBESUFFUkVTSVM7THU7MDtMOzA0MjcgMDMwODs7OztOOzs7OzA0RjU7CiswNEY1O0NZUklMTElDIFNNQUxMIExFVFRFUiBDSEUgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzA0NDcgMDMwODs7OztOOzs7MDRGNDs7MDRGNAorMDRGODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBZRVJVIFdJVEggRElBRVJFU0lTO0x1OzA7TDswNDJCIDAzMDg7Ozs7Tjs7OzswNEY5OworMDRGOTtDWVJJTExJQyBTTUFMTCBMRVRURVIgWUVSVSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDQ0QiAwMzA4Ozs7O047OzswNEY4OzswNEY4CiswNTMxO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIEFZQjtMdTswO0w7Ozs7O047Ozs7MDU2MTsKKzA1MzI7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgQkVOO0x1OzA7TDs7Ozs7Tjs7OzswNTYyOworMDUzMztBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBHSU07THU7MDtMOzs7OztOOzs7OzA1NjM7CiswNTM0O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIERBO0x1OzA7TDs7Ozs7Tjs7OzswNTY0OworMDUzNTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBFQ0g7THU7MDtMOzs7OztOOzs7OzA1NjU7CiswNTM2O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFpBO0x1OzA7TDs7Ozs7Tjs7OzswNTY2OworMDUzNztBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBFSDtMdTswO0w7Ozs7O047Ozs7MDU2NzsKKzA1Mzg7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgRVQ7THU7MDtMOzs7OztOOzs7OzA1Njg7CiswNTM5O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFRPO0x1OzA7TDs7Ozs7Tjs7OzswNTY5OworMDUzQTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBaSEU7THU7MDtMOzs7OztOOzs7OzA1NkE7CiswNTNCO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIElOSTtMdTswO0w7Ozs7O047Ozs7MDU2QjsKKzA1M0M7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgTElXTjtMdTswO0w7Ozs7O047Ozs7MDU2QzsKKzA1M0Q7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgWEVIO0x1OzA7TDs7Ozs7Tjs7OzswNTZEOworMDUzRTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBDQTtMdTswO0w7Ozs7O047Ozs7MDU2RTsKKzA1M0Y7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgS0VOO0x1OzA7TDs7Ozs7Tjs7OzswNTZGOworMDU0MDtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBITztMdTswO0w7Ozs7O047Ozs7MDU3MDsKKzA1NDE7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgSkE7THU7MDtMOzs7OztOOzs7OzA1NzE7CiswNTQyO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIEdIQUQ7THU7MDtMOzs7OztOO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIExBRDs7OzA1NzI7CiswNTQzO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIENIRUg7THU7MDtMOzs7OztOOzs7OzA1NzM7CiswNTQ0O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIE1FTjtMdTswO0w7Ozs7O047Ozs7MDU3NDsKKzA1NDU7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgWUk7THU7MDtMOzs7OztOOzs7OzA1NzU7CiswNTQ2O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIE5PVztMdTswO0w7Ozs7O047Ozs7MDU3NjsKKzA1NDc7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgU0hBO0x1OzA7TDs7Ozs7Tjs7OzswNTc3OworMDU0ODtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBWTztMdTswO0w7Ozs7O047Ozs7MDU3ODsKKzA1NDk7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgQ0hBO0x1OzA7TDs7Ozs7Tjs7OzswNTc5OworMDU0QTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBQRUg7THU7MDtMOzs7OztOOzs7OzA1N0E7CiswNTRCO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIEpIRUg7THU7MDtMOzs7OztOOzs7OzA1N0I7CiswNTRDO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFJBO0x1OzA7TDs7Ozs7Tjs7OzswNTdDOworMDU0RDtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBTRUg7THU7MDtMOzs7OztOOzs7OzA1N0Q7CiswNTRFO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFZFVztMdTswO0w7Ozs7O047Ozs7MDU3RTsKKzA1NEY7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgVElXTjtMdTswO0w7Ozs7O047Ozs7MDU3RjsKKzA1NTA7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgUkVIO0x1OzA7TDs7Ozs7Tjs7OzswNTgwOworMDU1MTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBDTztMdTswO0w7Ozs7O047Ozs7MDU4MTsKKzA1NTI7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgWUlXTjtMdTswO0w7Ozs7O047Ozs7MDU4MjsKKzA1NTM7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgUElXUjtMdTswO0w7Ozs7O047Ozs7MDU4MzsKKzA1NTQ7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgS0VIO0x1OzA7TDs7Ozs7Tjs7OzswNTg0OworMDU1NTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBPSDtMdTswO0w7Ozs7O047Ozs7MDU4NTsKKzA1NTY7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgRkVIO0x1OzA7TDs7Ozs7Tjs7OzswNTg2OworMDU1OTtBUk1FTklBTiBNT0RJRklFUiBMRVRURVIgTEVGVCBIQUxGIFJJTkc7TG07MDtMOzs7OztOOzs7OzsKKzA1NUE7QVJNRU5JQU4gQVBPU1RST1BIRTtQbzswO0w7Ozs7O047QVJNRU5JQU4gTU9ESUZJRVIgTEVUVEVSIFJJR0hUIEhBTEYgUklORzs7OzsKKzA1NUI7QVJNRU5JQU4gRU1QSEFTSVMgTUFSSztQbzswO0w7Ozs7O047Ozs7OworMDU1QztBUk1FTklBTiBFWENMQU1BVElPTiBNQVJLO1BvOzA7TDs7Ozs7Tjs7Ozs7CiswNTVEO0FSTUVOSUFOIENPTU1BO1BvOzA7TDs7Ozs7Tjs7Ozs7CiswNTVFO0FSTUVOSUFOIFFVRVNUSU9OIE1BUks7UG87MDtMOzs7OztOOzs7OzsKKzA1NUY7QVJNRU5JQU4gQUJCUkVWSUFUSU9OIE1BUks7UG87MDtMOzs7OztOOzs7OzsKKzA1NjE7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEFZQjtMbDswO0w7Ozs7O047OzswNTMxOzswNTMxCiswNTYyO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBCRU47TGw7MDtMOzs7OztOOzs7MDUzMjs7MDUzMgorMDU2MztBUk1FTklBTiBTTUFMTCBMRVRURVIgR0lNO0xsOzA7TDs7Ozs7Tjs7OzA1MzM7OzA1MzMKKzA1NjQ7QVJNRU5JQU4gU01BTEwgTEVUVEVSIERBO0xsOzA7TDs7Ozs7Tjs7OzA1MzQ7OzA1MzQKKzA1NjU7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEVDSDtMbDswO0w7Ozs7O047OzswNTM1OzswNTM1CiswNTY2O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBaQTtMbDswO0w7Ozs7O047OzswNTM2OzswNTM2CiswNTY3O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBFSDtMbDswO0w7Ozs7O047OzswNTM3OzswNTM3CiswNTY4O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBFVDtMbDswO0w7Ozs7O047OzswNTM4OzswNTM4CiswNTY5O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBUTztMbDswO0w7Ozs7O047OzswNTM5OzswNTM5CiswNTZBO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBaSEU7TGw7MDtMOzs7OztOOzs7MDUzQTs7MDUzQQorMDU2QjtBUk1FTklBTiBTTUFMTCBMRVRURVIgSU5JO0xsOzA7TDs7Ozs7Tjs7OzA1M0I7OzA1M0IKKzA1NkM7QVJNRU5JQU4gU01BTEwgTEVUVEVSIExJV047TGw7MDtMOzs7OztOOzs7MDUzQzs7MDUzQworMDU2RDtBUk1FTklBTiBTTUFMTCBMRVRURVIgWEVIO0xsOzA7TDs7Ozs7Tjs7OzA1M0Q7OzA1M0QKKzA1NkU7QVJNRU5JQU4gU01BTEwgTEVUVEVSIENBO0xsOzA7TDs7Ozs7Tjs7OzA1M0U7OzA1M0UKKzA1NkY7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEtFTjtMbDswO0w7Ozs7O047OzswNTNGOzswNTNGCiswNTcwO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBITztMbDswO0w7Ozs7O047OzswNTQwOzswNTQwCiswNTcxO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBKQTtMbDswO0w7Ozs7O047OzswNTQxOzswNTQxCiswNTcyO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBHSEFEO0xsOzA7TDs7Ozs7TjtBUk1FTklBTiBTTUFMTCBMRVRURVIgTEFEOzswNTQyOzswNTQyCiswNTczO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBDSEVIO0xsOzA7TDs7Ozs7Tjs7OzA1NDM7OzA1NDMKKzA1NzQ7QVJNRU5JQU4gU01BTEwgTEVUVEVSIE1FTjtMbDswO0w7Ozs7O047OzswNTQ0OzswNTQ0CiswNTc1O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBZSTtMbDswO0w7Ozs7O047OzswNTQ1OzswNTQ1CiswNTc2O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBOT1c7TGw7MDtMOzs7OztOOzs7MDU0Njs7MDU0NgorMDU3NztBUk1FTklBTiBTTUFMTCBMRVRURVIgU0hBO0xsOzA7TDs7Ozs7Tjs7OzA1NDc7OzA1NDcKKzA1Nzg7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFZPO0xsOzA7TDs7Ozs7Tjs7OzA1NDg7OzA1NDgKKzA1Nzk7QVJNRU5JQU4gU01BTEwgTEVUVEVSIENIQTtMbDswO0w7Ozs7O047OzswNTQ5OzswNTQ5CiswNTdBO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBQRUg7TGw7MDtMOzs7OztOOzs7MDU0QTs7MDU0QQorMDU3QjtBUk1FTklBTiBTTUFMTCBMRVRURVIgSkhFSDtMbDswO0w7Ozs7O047OzswNTRCOzswNTRCCiswNTdDO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBSQTtMbDswO0w7Ozs7O047OzswNTRDOzswNTRDCiswNTdEO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBTRUg7TGw7MDtMOzs7OztOOzs7MDU0RDs7MDU0RAorMDU3RTtBUk1FTklBTiBTTUFMTCBMRVRURVIgVkVXO0xsOzA7TDs7Ozs7Tjs7OzA1NEU7OzA1NEUKKzA1N0Y7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFRJV047TGw7MDtMOzs7OztOOzs7MDU0Rjs7MDU0RgorMDU4MDtBUk1FTklBTiBTTUFMTCBMRVRURVIgUkVIO0xsOzA7TDs7Ozs7Tjs7OzA1NTA7OzA1NTAKKzA1ODE7QVJNRU5JQU4gU01BTEwgTEVUVEVSIENPO0xsOzA7TDs7Ozs7Tjs7OzA1NTE7OzA1NTEKKzA1ODI7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFlJV047TGw7MDtMOzs7OztOOzs7MDU1Mjs7MDU1MgorMDU4MztBUk1FTklBTiBTTUFMTCBMRVRURVIgUElXUjtMbDswO0w7Ozs7O047OzswNTUzOzswNTUzCiswNTg0O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBLRUg7TGw7MDtMOzs7OztOOzs7MDU1NDs7MDU1NAorMDU4NTtBUk1FTklBTiBTTUFMTCBMRVRURVIgT0g7TGw7MDtMOzs7OztOOzs7MDU1NTs7MDU1NQorMDU4NjtBUk1FTklBTiBTTUFMTCBMRVRURVIgRkVIO0xsOzA7TDs7Ozs7Tjs7OzA1NTY7OzA1NTYKKzA1ODc7QVJNRU5JQU4gU01BTEwgTElHQVRVUkUgRUNIIFlJV047TGw7MDtMOzxjb21wYXQ+IDA1NjUgMDU4Mjs7OztOOzs7OzsKKzA1ODk7QVJNRU5JQU4gRlVMTCBTVE9QO1BvOzA7TDs7Ozs7TjtBUk1FTklBTiBQRVJJT0Q7Ozs7CiswNThBO0FSTUVOSUFOIEhZUEhFTjtQZDswO09OOzs7OztOOzs7OzsKKzA1OTE7SEVCUkVXIEFDQ0VOVCBFVE5BSFRBO01uOzIyMDtOU007Ozs7O047Ozs7OworMDU5MjtIRUJSRVcgQUNDRU5UIFNFR09MO01uOzIzMDtOU007Ozs7O047Ozs7OworMDU5MztIRUJSRVcgQUNDRU5UIFNIQUxTSEVMRVQ7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNTk0O0hFQlJFVyBBQ0NFTlQgWkFRRUYgUUFUQU47TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNTk1O0hFQlJFVyBBQ0NFTlQgWkFRRUYgR0FET0w7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNTk2O0hFQlJFVyBBQ0NFTlQgVElQRUhBO01uOzIyMDtOU007Ozs7O047Oyo7OzsKKzA1OTc7SEVCUkVXIEFDQ0VOVCBSRVZJQTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA1OTg7SEVCUkVXIEFDQ0VOVCBaQVJRQTtNbjsyMzA7TlNNOzs7OztOOzsqOzs7CiswNTk5O0hFQlJFVyBBQ0NFTlQgUEFTSFRBO01uOzIzMDtOU007Ozs7O047Ozs7OworMDU5QTtIRUJSRVcgQUNDRU5UIFlFVElWO01uOzIyMjtOU007Ozs7O047Ozs7OworMDU5QjtIRUJSRVcgQUNDRU5UIFRFVklSO01uOzIyMDtOU007Ozs7O047Ozs7OworMDU5QztIRUJSRVcgQUNDRU5UIEdFUkVTSDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA1OUQ7SEVCUkVXIEFDQ0VOVCBHRVJFU0ggTVVRREFNO01uOzIzMDtOU007Ozs7O047Ozs7OworMDU5RTtIRUJSRVcgQUNDRU5UIEdFUlNIQVlJTTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA1OUY7SEVCUkVXIEFDQ0VOVCBRQVJORVkgUEFSQTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA1QTA7SEVCUkVXIEFDQ0VOVCBURUxJU0hBIEdFRE9MQTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA1QTE7SEVCUkVXIEFDQ0VOVCBQQVpFUjtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA1QTM7SEVCUkVXIEFDQ0VOVCBNVU5BSDtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA1QTQ7SEVCUkVXIEFDQ0VOVCBNQUhBUEFLSDtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA1QTU7SEVCUkVXIEFDQ0VOVCBNRVJLSEE7TW47MjIwO05TTTs7Ozs7Tjs7Kjs7OworMDVBNjtIRUJSRVcgQUNDRU5UIE1FUktIQSBLRUZVTEE7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNUE3O0hFQlJFVyBBQ0NFTlQgREFSR0E7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNUE4O0hFQlJFVyBBQ0NFTlQgUUFETUE7TW47MjMwO05TTTs7Ozs7Tjs7Kjs7OworMDVBOTtIRUJSRVcgQUNDRU5UIFRFTElTSEEgUUVUQU5BO01uOzIzMDtOU007Ozs7O047Ozs7OworMDVBQTtIRUJSRVcgQUNDRU5UIFlFUkFIIEJFTiBZT01PO01uOzIyMDtOU007Ozs7O047Oyo7OzsKKzA1QUI7SEVCUkVXIEFDQ0VOVCBPTEU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNUFDO0hFQlJFVyBBQ0NFTlQgSUxVWTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA1QUQ7SEVCUkVXIEFDQ0VOVCBERUhJO01uOzIyMjtOU007Ozs7O047Ozs7OworMDVBRTtIRUJSRVcgQUNDRU5UIFpJTk9SO01uOzIyODtOU007Ozs7O047Ozs7OworMDVBRjtIRUJSRVcgTUFSSyBNQVNPUkEgQ0lSQ0xFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDVCMDtIRUJSRVcgUE9JTlQgU0hFVkE7TW47MTA7TlNNOzs7OztOOzs7OzsKKzA1QjE7SEVCUkVXIFBPSU5UIEhBVEFGIFNFR09MO01uOzExO05TTTs7Ozs7Tjs7Ozs7CiswNUIyO0hFQlJFVyBQT0lOVCBIQVRBRiBQQVRBSDtNbjsxMjtOU007Ozs7O047Ozs7OworMDVCMztIRUJSRVcgUE9JTlQgSEFUQUYgUUFNQVRTO01uOzEzO05TTTs7Ozs7Tjs7Ozs7CiswNUI0O0hFQlJFVyBQT0lOVCBISVJJUTtNbjsxNDtOU007Ozs7O047Ozs7OworMDVCNTtIRUJSRVcgUE9JTlQgVFNFUkU7TW47MTU7TlNNOzs7OztOOzs7OzsKKzA1QjY7SEVCUkVXIFBPSU5UIFNFR09MO01uOzE2O05TTTs7Ozs7Tjs7Ozs7CiswNUI3O0hFQlJFVyBQT0lOVCBQQVRBSDtNbjsxNztOU007Ozs7O047Ozs7OworMDVCODtIRUJSRVcgUE9JTlQgUUFNQVRTO01uOzE4O05TTTs7Ozs7Tjs7Ozs7CiswNUI5O0hFQlJFVyBQT0lOVCBIT0xBTTtNbjsxOTtOU007Ozs7O047Ozs7OworMDVCQjtIRUJSRVcgUE9JTlQgUVVCVVRTO01uOzIwO05TTTs7Ozs7Tjs7Ozs7CiswNUJDO0hFQlJFVyBQT0lOVCBEQUdFU0ggT1IgTUFQSVE7TW47MjE7TlNNOzs7OztOO0hFQlJFVyBQT0lOVCBEQUdFU0g7b3Igc2h1cnVxOzs7CiswNUJEO0hFQlJFVyBQT0lOVCBNRVRFRztNbjsyMjtOU007Ozs7O047Oyo7OzsKKzA1QkU7SEVCUkVXIFBVTkNUVUFUSU9OIE1BUUFGO1BvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUJGO0hFQlJFVyBQT0lOVCBSQUZFO01uOzIzO05TTTs7Ozs7Tjs7Ozs7CiswNUMwO0hFQlJFVyBQVU5DVFVBVElPTiBQQVNFUTtQbzswO1I7Ozs7O047SEVCUkVXIFBPSU5UIFBBU0VROyo7OzsKKzA1QzE7SEVCUkVXIFBPSU5UIFNISU4gRE9UO01uOzI0O05TTTs7Ozs7Tjs7Ozs7CiswNUMyO0hFQlJFVyBQT0lOVCBTSU4gRE9UO01uOzI1O05TTTs7Ozs7Tjs7Ozs7CiswNUMzO0hFQlJFVyBQVU5DVFVBVElPTiBTT0YgUEFTVVE7UG87MDtSOzs7OztOOzsqOzs7CiswNUM0O0hFQlJFVyBNQVJLIFVQUEVSIERPVDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA1RDA7SEVCUkVXIExFVFRFUiBBTEVGO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUQxO0hFQlJFVyBMRVRURVIgQkVUO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUQyO0hFQlJFVyBMRVRURVIgR0lNRUw7TG87MDtSOzs7OztOOzs7OzsKKzA1RDM7SEVCUkVXIExFVFRFUiBEQUxFVDtMbzswO1I7Ozs7O047Ozs7OworMDVENDtIRUJSRVcgTEVUVEVSIEhFO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUQ1O0hFQlJFVyBMRVRURVIgVkFWO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUQ2O0hFQlJFVyBMRVRURVIgWkFZSU47TG87MDtSOzs7OztOOzs7OzsKKzA1RDc7SEVCUkVXIExFVFRFUiBIRVQ7TG87MDtSOzs7OztOOzs7OzsKKzA1RDg7SEVCUkVXIExFVFRFUiBURVQ7TG87MDtSOzs7OztOOzs7OzsKKzA1RDk7SEVCUkVXIExFVFRFUiBZT0Q7TG87MDtSOzs7OztOOzs7OzsKKzA1REE7SEVCUkVXIExFVFRFUiBGSU5BTCBLQUY7TG87MDtSOzs7OztOOzs7OzsKKzA1REI7SEVCUkVXIExFVFRFUiBLQUY7TG87MDtSOzs7OztOOzs7OzsKKzA1REM7SEVCUkVXIExFVFRFUiBMQU1FRDtMbzswO1I7Ozs7O047Ozs7OworMDVERDtIRUJSRVcgTEVUVEVSIEZJTkFMIE1FTTtMbzswO1I7Ozs7O047Ozs7OworMDVERTtIRUJSRVcgTEVUVEVSIE1FTTtMbzswO1I7Ozs7O047Ozs7OworMDVERjtIRUJSRVcgTEVUVEVSIEZJTkFMIE5VTjtMbzswO1I7Ozs7O047Ozs7OworMDVFMDtIRUJSRVcgTEVUVEVSIE5VTjtMbzswO1I7Ozs7O047Ozs7OworMDVFMTtIRUJSRVcgTEVUVEVSIFNBTUVLSDtMbzswO1I7Ozs7O047Ozs7OworMDVFMjtIRUJSRVcgTEVUVEVSIEFZSU47TG87MDtSOzs7OztOOzs7OzsKKzA1RTM7SEVCUkVXIExFVFRFUiBGSU5BTCBQRTtMbzswO1I7Ozs7O047Ozs7OworMDVFNDtIRUJSRVcgTEVUVEVSIFBFO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUU1O0hFQlJFVyBMRVRURVIgRklOQUwgVFNBREk7TG87MDtSOzs7OztOOzs7OzsKKzA1RTY7SEVCUkVXIExFVFRFUiBUU0FESTtMbzswO1I7Ozs7O047Ozs7OworMDVFNztIRUJSRVcgTEVUVEVSIFFPRjtMbzswO1I7Ozs7O047Ozs7OworMDVFODtIRUJSRVcgTEVUVEVSIFJFU0g7TG87MDtSOzs7OztOOzs7OzsKKzA1RTk7SEVCUkVXIExFVFRFUiBTSElOO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUVBO0hFQlJFVyBMRVRURVIgVEFWO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUYwO0hFQlJFVyBMSUdBVFVSRSBZSURESVNIIERPVUJMRSBWQVY7TG87MDtSOzs7OztOO0hFQlJFVyBMRVRURVIgRE9VQkxFIFZBVjs7OzsKKzA1RjE7SEVCUkVXIExJR0FUVVJFIFlJRERJU0ggVkFWIFlPRDtMbzswO1I7Ozs7O047SEVCUkVXIExFVFRFUiBWQVYgWU9EOzs7OworMDVGMjtIRUJSRVcgTElHQVRVUkUgWUlERElTSCBET1VCTEUgWU9EO0xvOzA7Ujs7Ozs7TjtIRUJSRVcgTEVUVEVSIERPVUJMRSBZT0Q7Ozs7CiswNUYzO0hFQlJFVyBQVU5DVFVBVElPTiBHRVJFU0g7UG87MDtSOzs7OztOOzs7OzsKKzA1RjQ7SEVCUkVXIFBVTkNUVUFUSU9OIEdFUlNIQVlJTTtQbzswO1I7Ozs7O047Ozs7OworMDYwQztBUkFCSUMgQ09NTUE7UG87MDtDUzs7Ozs7Tjs7Ozs7CiswNjFCO0FSQUJJQyBTRU1JQ09MT047UG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjFGO0FSQUJJQyBRVUVTVElPTiBNQVJLO1BvOzA7QUw7Ozs7O047Ozs7OworMDYyMTtBUkFCSUMgTEVUVEVSIEhBTVpBO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBIQU1aQUg7Ozs7CiswNjIyO0FSQUJJQyBMRVRURVIgQUxFRiBXSVRIIE1BRERBIEFCT1ZFO0xvOzA7QUw7MDYyNyAwNjUzOzs7O047QVJBQklDIExFVFRFUiBNQUREQUggT04gQUxFRjs7OzsKKzA2MjM7QVJBQklDIExFVFRFUiBBTEVGIFdJVEggSEFNWkEgQUJPVkU7TG87MDtBTDswNjI3IDA2NTQ7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBTVpBSCBPTiBBTEVGOzs7OworMDYyNDtBUkFCSUMgTEVUVEVSIFdBVyBXSVRIIEhBTVpBIEFCT1ZFO0xvOzA7QUw7MDY0OCAwNjU0Ozs7O047QVJBQklDIExFVFRFUiBIQU1aQUggT04gV0FXOzs7OworMDYyNTtBUkFCSUMgTEVUVEVSIEFMRUYgV0lUSCBIQU1aQSBCRUxPVztMbzswO0FMOzA2MjcgMDY1NTs7OztOO0FSQUJJQyBMRVRURVIgSEFNWkFIIFVOREVSIEFMRUY7Ozs7CiswNjI2O0FSQUJJQyBMRVRURVIgWUVIIFdJVEggSEFNWkEgQUJPVkU7TG87MDtBTDswNjRBIDA2NTQ7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBTVpBSCBPTiBZQTs7OzsKKzA2Mjc7QVJBQklDIExFVFRFUiBBTEVGO0xvOzA7QUw7Ozs7O047Ozs7OworMDYyODtBUkFCSUMgTEVUVEVSIEJFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgQkFBOzs7OworMDYyOTtBUkFCSUMgTEVUVEVSIFRFSCBNQVJCVVRBO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBUQUEgTUFSQlVUQUg7Ozs7CiswNjJBO0FSQUJJQyBMRVRURVIgVEVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBUQUE7Ozs7CiswNjJCO0FSQUJJQyBMRVRURVIgVEhFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgVEhBQTs7OzsKKzA2MkM7QVJBQklDIExFVFRFUiBKRUVNO0xvOzA7QUw7Ozs7O047Ozs7OworMDYyRDtBUkFCSUMgTEVUVEVSIEhBSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgSEFBOzs7OworMDYyRTtBUkFCSUMgTEVUVEVSIEtIQUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEtIQUE7Ozs7CiswNjJGO0FSQUJJQyBMRVRURVIgREFMO0xvOzA7QUw7Ozs7O047Ozs7OworMDYzMDtBUkFCSUMgTEVUVEVSIFRIQUw7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjMxO0FSQUJJQyBMRVRURVIgUkVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBSQTs7OzsKKzA2MzI7QVJBQklDIExFVFRFUiBaQUlOO0xvOzA7QUw7Ozs7O047Ozs7OworMDYzMztBUkFCSUMgTEVUVEVSIFNFRU47TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjM0O0FSQUJJQyBMRVRURVIgU0hFRU47TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjM1O0FSQUJJQyBMRVRURVIgU0FEO0xvOzA7QUw7Ozs7O047Ozs7OworMDYzNjtBUkFCSUMgTEVUVEVSIERBRDtMbzswO0FMOzs7OztOOzs7OzsKKzA2Mzc7QVJBQklDIExFVFRFUiBUQUg7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjM4O0FSQUJJQyBMRVRURVIgWkFIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBESEFIOzs7OworMDYzOTtBUkFCSUMgTEVUVEVSIEFJTjtMbzswO0FMOzs7OztOOzs7OzsKKzA2M0E7QVJBQklDIExFVFRFUiBHSEFJTjtMbzswO0FMOzs7OztOOzs7OzsKKzA2NDA7QVJBQklDIFRBVFdFRUw7TG07MDtBTDs7Ozs7Tjs7Ozs7CiswNjQxO0FSQUJJQyBMRVRURVIgRkVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBGQTs7OzsKKzA2NDI7QVJBQklDIExFVFRFUiBRQUY7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjQzO0FSQUJJQyBMRVRURVIgS0FGO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBDQUY7Ozs7CiswNjQ0O0FSQUJJQyBMRVRURVIgTEFNO0xvOzA7QUw7Ozs7O047Ozs7OworMDY0NTtBUkFCSUMgTEVUVEVSIE1FRU07TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjQ2O0FSQUJJQyBMRVRURVIgTk9PTjtMbzswO0FMOzs7OztOOzs7OzsKKzA2NDc7QVJBQklDIExFVFRFUiBIRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBOzs7OworMDY0ODtBUkFCSUMgTEVUVEVSIFdBVztMbzswO0FMOzs7OztOOzs7OzsKKzA2NDk7QVJBQklDIExFVFRFUiBBTEVGIE1BS1NVUkE7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEFMRUYgTUFRU1VSQUg7Ozs7CiswNjRBO0FSQUJJQyBMRVRURVIgWUVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBZQTs7OzsKKzA2NEI7QVJBQklDIEZBVEhBVEFOO01uOzI3O05TTTs7Ozs7Tjs7Ozs7CiswNjRDO0FSQUJJQyBEQU1NQVRBTjtNbjsyODtOU007Ozs7O047Ozs7OworMDY0RDtBUkFCSUMgS0FTUkFUQU47TW47Mjk7TlNNOzs7OztOOzs7OzsKKzA2NEU7QVJBQklDIEZBVEhBO01uOzMwO05TTTs7Ozs7TjtBUkFCSUMgRkFUSEFIOzs7OworMDY0RjtBUkFCSUMgREFNTUE7TW47MzE7TlNNOzs7OztOO0FSQUJJQyBEQU1NQUg7Ozs7CiswNjUwO0FSQUJJQyBLQVNSQTtNbjszMjtOU007Ozs7O047QVJBQklDIEtBU1JBSDs7OzsKKzA2NTE7QVJBQklDIFNIQUREQTtNbjszMztOU007Ozs7O047QVJBQklDIFNIQUREQUg7Ozs7CiswNjUyO0FSQUJJQyBTVUtVTjtNbjszNDtOU007Ozs7O047Ozs7OworMDY1MztBUkFCSUMgTUFEREFIIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDY1NDtBUkFCSUMgSEFNWkEgQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNjU1O0FSQUJJQyBIQU1aQSBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA2NjA7QVJBQklDLUlORElDIERJR0lUIFpFUk87TmQ7MDtBTjs7MDswOzA7Tjs7Ozs7CiswNjYxO0FSQUJJQy1JTkRJQyBESUdJVCBPTkU7TmQ7MDtBTjs7MTsxOzE7Tjs7Ozs7CiswNjYyO0FSQUJJQy1JTkRJQyBESUdJVCBUV087TmQ7MDtBTjs7MjsyOzI7Tjs7Ozs7CiswNjYzO0FSQUJJQy1JTkRJQyBESUdJVCBUSFJFRTtOZDswO0FOOzszOzM7MztOOzs7OzsKKzA2NjQ7QVJBQklDLUlORElDIERJR0lUIEZPVVI7TmQ7MDtBTjs7NDs0OzQ7Tjs7Ozs7CiswNjY1O0FSQUJJQy1JTkRJQyBESUdJVCBGSVZFO05kOzA7QU47OzU7NTs1O047Ozs7OworMDY2NjtBUkFCSUMtSU5ESUMgRElHSVQgU0lYO05kOzA7QU47OzY7Njs2O047Ozs7OworMDY2NztBUkFCSUMtSU5ESUMgRElHSVQgU0VWRU47TmQ7MDtBTjs7Nzs3Ozc7Tjs7Ozs7CiswNjY4O0FSQUJJQy1JTkRJQyBESUdJVCBFSUdIVDtOZDswO0FOOzs4Ozg7ODtOOzs7OzsKKzA2Njk7QVJBQklDLUlORElDIERJR0lUIE5JTkU7TmQ7MDtBTjs7OTs5Ozk7Tjs7Ozs7CiswNjZBO0FSQUJJQyBQRVJDRU5UIFNJR047UG87MDtFVDs7Ozs7Tjs7Ozs7CiswNjZCO0FSQUJJQyBERUNJTUFMIFNFUEFSQVRPUjtQbzswO0FOOzs7OztOOzs7OzsKKzA2NkM7QVJBQklDIFRIT1VTQU5EUyBTRVBBUkFUT1I7UG87MDtBTjs7Ozs7Tjs7Ozs7CiswNjZEO0FSQUJJQyBGSVZFIFBPSU5URUQgU1RBUjtQbzswO0FMOzs7OztOOzs7OzsKKzA2NzA7QVJBQklDIExFVFRFUiBTVVBFUlNDUklQVCBBTEVGO01uOzM1O05TTTs7Ozs7TjtBUkFCSUMgQUxFRiBBQk9WRTs7OzsKKzA2NzE7QVJBQklDIExFVFRFUiBBTEVGIFdBU0xBO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBIQU1aQVQgV0FTTCBPTiBBTEVGOzs7OworMDY3MjtBUkFCSUMgTEVUVEVSIEFMRUYgV0lUSCBXQVZZIEhBTVpBIEFCT1ZFO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBXQVZZIEhBTVpBSCBPTiBBTEVGOzs7OworMDY3MztBUkFCSUMgTEVUVEVSIEFMRUYgV0lUSCBXQVZZIEhBTVpBIEJFTE9XO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBXQVZZIEhBTVpBSCBVTkRFUiBBTEVGOzs7OworMDY3NDtBUkFCSUMgTEVUVEVSIEhJR0ggSEFNWkE7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhJR0ggSEFNWkFIOzs7OworMDY3NTtBUkFCSUMgTEVUVEVSIEhJR0ggSEFNWkEgQUxFRjtMbzswO0FMOzxjb21wYXQ+IDA2MjcgMDY3NDs7OztOO0FSQUJJQyBMRVRURVIgSElHSCBIQU1aQUggQUxFRjs7OzsKKzA2NzY7QVJBQklDIExFVFRFUiBISUdIIEhBTVpBIFdBVztMbzswO0FMOzxjb21wYXQ+IDA2NDggMDY3NDs7OztOO0FSQUJJQyBMRVRURVIgSElHSCBIQU1aQUggV0FXOzs7OworMDY3NztBUkFCSUMgTEVUVEVSIFUgV0lUSCBIQU1aQSBBQk9WRTtMbzswO0FMOzxjb21wYXQ+IDA2QzcgMDY3NDs7OztOO0FSQUJJQyBMRVRURVIgSElHSCBIQU1aQUggV0FXIFdJVEggREFNTUFIOzs7OworMDY3ODtBUkFCSUMgTEVUVEVSIEhJR0ggSEFNWkEgWUVIO0xvOzA7QUw7PGNvbXBhdD4gMDY0QSAwNjc0Ozs7O047QVJBQklDIExFVFRFUiBISUdIIEhBTVpBSCBZQTs7OzsKKzA2Nzk7QVJBQklDIExFVFRFUiBUVEVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBUQUEgV0lUSCBTTUFMTCBUQUg7Ozs7CiswNjdBO0FSQUJJQyBMRVRURVIgVFRFSEVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBUQUEgV0lUSCBUV08gRE9UUyBWRVJUSUNBTCBBQk9WRTs7OzsKKzA2N0I7QVJBQklDIExFVFRFUiBCRUVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBCQUEgV0lUSCBUV08gRE9UUyBWRVJUSUNBTCBCRUxPVzs7OzsKKzA2N0M7QVJBQklDIExFVFRFUiBURUggV0lUSCBSSU5HO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBUQUEgV0lUSCBSSU5HOzs7OworMDY3RDtBUkFCSUMgTEVUVEVSIFRFSCBXSVRIIFRIUkVFIERPVFMgQUJPVkUgRE9XTldBUkRTO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBUQUEgV0lUSCBUSFJFRSBET1RTIEFCT1ZFIERPV05XQVJEOzs7OworMDY3RTtBUkFCSUMgTEVUVEVSIFBFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgVEFBIFdJVEggVEhSRUUgRE9UUyBCRUxPVzs7OzsKKzA2N0Y7QVJBQklDIExFVFRFUiBURUhFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgVEFBIFdJVEggRk9VUiBET1RTIEFCT1ZFOzs7OworMDY4MDtBUkFCSUMgTEVUVEVSIEJFSEVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBCQUEgV0lUSCBGT1VSIERPVFMgQkVMT1c7Ozs7CiswNjgxO0FSQUJJQyBMRVRURVIgSEFIIFdJVEggSEFNWkEgQUJPVkU7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBTVpBSCBPTiBIQUE7Ozs7CiswNjgyO0FSQUJJQyBMRVRURVIgSEFIIFdJVEggVFdPIERPVFMgVkVSVElDQUwgQUJPVkU7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBQSBXSVRIIFRXTyBET1RTIFZFUlRJQ0FMIEFCT1ZFOzs7OworMDY4MztBUkFCSUMgTEVUVEVSIE5ZRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBQSBXSVRIIE1JRERMRSBUV08gRE9UUzs7OzsKKzA2ODQ7QVJBQklDIExFVFRFUiBEWUVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBIQUEgV0lUSCBNSURETEUgVFdPIERPVFMgVkVSVElDQUw7Ozs7CiswNjg1O0FSQUJJQyBMRVRURVIgSEFIIFdJVEggVEhSRUUgRE9UUyBBQk9WRTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgSEFBIFdJVEggVEhSRUUgRE9UUyBBQk9WRTs7OzsKKzA2ODY7QVJBQklDIExFVFRFUiBUQ0hFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgSEFBIFdJVEggTUlERExFIFRIUkVFIERPVFMgRE9XTldBUkQ7Ozs7CiswNjg3O0FSQUJJQyBMRVRURVIgVENIRUhFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgSEFBIFdJVEggTUlERExFIEZPVVIgRE9UUzs7OzsKKzA2ODg7QVJBQklDIExFVFRFUiBEREFMO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBEQUwgV0lUSCBTTUFMTCBUQUg7Ozs7CiswNjg5O0FSQUJJQyBMRVRURVIgREFMIFdJVEggUklORztMbzswO0FMOzs7OztOOzs7OzsKKzA2OEE7QVJBQklDIExFVFRFUiBEQUwgV0lUSCBET1QgQkVMT1c7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjhCO0FSQUJJQyBMRVRURVIgREFMIFdJVEggRE9UIEJFTE9XIEFORCBTTUFMTCBUQUg7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjhDO0FSQUJJQyBMRVRURVIgREFIQUw7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIERBTCBXSVRIIFRXTyBET1RTIEFCT1ZFOzs7OworMDY4RDtBUkFCSUMgTEVUVEVSIEREQUhBTDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgREFMIFdJVEggVFdPIERPVFMgQkVMT1c7Ozs7CiswNjhFO0FSQUJJQyBMRVRURVIgRFVMO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBEQUwgV0lUSCBUSFJFRSBET1RTIEFCT1ZFOzs7OworMDY4RjtBUkFCSUMgTEVUVEVSIERBTCBXSVRIIFRIUkVFIERPVFMgQUJPVkUgRE9XTldBUkRTO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBEQUwgV0lUSCBUSFJFRSBET1RTIEFCT1ZFIERPV05XQVJEOzs7OworMDY5MDtBUkFCSUMgTEVUVEVSIERBTCBXSVRIIEZPVVIgRE9UUyBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA2OTE7QVJBQklDIExFVFRFUiBSUkVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBSQSBXSVRIIFNNQUxMIFRBSDs7OzsKKzA2OTI7QVJBQklDIExFVFRFUiBSRUggV0lUSCBTTUFMTCBWO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBSQSBXSVRIIFNNQUxMIFY7Ozs7CiswNjkzO0FSQUJJQyBMRVRURVIgUkVIIFdJVEggUklORztMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgUkEgV0lUSCBSSU5HOzs7OworMDY5NDtBUkFCSUMgTEVUVEVSIFJFSCBXSVRIIERPVCBCRUxPVztMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgUkEgV0lUSCBET1QgQkVMT1c7Ozs7CiswNjk1O0FSQUJJQyBMRVRURVIgUkVIIFdJVEggU01BTEwgViBCRUxPVztMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgUkEgV0lUSCBTTUFMTCBWIEJFTE9XOzs7OworMDY5NjtBUkFCSUMgTEVUVEVSIFJFSCBXSVRIIERPVCBCRUxPVyBBTkQgRE9UIEFCT1ZFO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBSQSBXSVRIIERPVCBCRUxPVyBBTkQgRE9UIEFCT1ZFOzs7OworMDY5NztBUkFCSUMgTEVUVEVSIFJFSCBXSVRIIFRXTyBET1RTIEFCT1ZFO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBSQSBXSVRIIFRXTyBET1RTIEFCT1ZFOzs7OworMDY5ODtBUkFCSUMgTEVUVEVSIEpFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgUkEgV0lUSCBUSFJFRSBET1RTIEFCT1ZFOzs7OworMDY5OTtBUkFCSUMgTEVUVEVSIFJFSCBXSVRIIEZPVVIgRE9UUyBBQk9WRTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgUkEgV0lUSCBGT1VSIERPVFMgQUJPVkU7Ozs7CiswNjlBO0FSQUJJQyBMRVRURVIgU0VFTiBXSVRIIERPVCBCRUxPVyBBTkQgRE9UIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDY5QjtBUkFCSUMgTEVUVEVSIFNFRU4gV0lUSCBUSFJFRSBET1RTIEJFTE9XO0xvOzA7QUw7Ozs7O047Ozs7OworMDY5QztBUkFCSUMgTEVUVEVSIFNFRU4gV0lUSCBUSFJFRSBET1RTIEJFTE9XIEFORCBUSFJFRSBET1RTIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDY5RDtBUkFCSUMgTEVUVEVSIFNBRCBXSVRIIFRXTyBET1RTIEJFTE9XO0xvOzA7QUw7Ozs7O047Ozs7OworMDY5RTtBUkFCSUMgTEVUVEVSIFNBRCBXSVRIIFRIUkVFIERPVFMgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjlGO0FSQUJJQyBMRVRURVIgVEFIIFdJVEggVEhSRUUgRE9UUyBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA2QTA7QVJBQklDIExFVFRFUiBBSU4gV0lUSCBUSFJFRSBET1RTIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDZBMTtBUkFCSUMgTEVUVEVSIERPVExFU1MgRkVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBET1RMRVNTIEZBOzs7OworMDZBMjtBUkFCSUMgTEVUVEVSIEZFSCBXSVRIIERPVCBNT1ZFRCBCRUxPVztMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgRkEgV0lUSCBET1QgTU9WRUQgQkVMT1c7Ozs7CiswNkEzO0FSQUJJQyBMRVRURVIgRkVIIFdJVEggRE9UIEJFTE9XO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBGQSBXSVRIIERPVCBCRUxPVzs7OzsKKzA2QTQ7QVJBQklDIExFVFRFUiBWRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEZBIFdJVEggVEhSRUUgRE9UUyBBQk9WRTs7OzsKKzA2QTU7QVJBQklDIExFVFRFUiBGRUggV0lUSCBUSFJFRSBET1RTIEJFTE9XO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBGQSBXSVRIIFRIUkVFIERPVFMgQkVMT1c7Ozs7CiswNkE2O0FSQUJJQyBMRVRURVIgUEVIRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEZBIFdJVEggRk9VUiBET1RTIEFCT1ZFOzs7OworMDZBNztBUkFCSUMgTEVUVEVSIFFBRiBXSVRIIERPVCBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA2QTg7QVJBQklDIExFVFRFUiBRQUYgV0lUSCBUSFJFRSBET1RTIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDZBOTtBUkFCSUMgTEVUVEVSIEtFSEVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBPUEVOIENBRjs7OzsKKzA2QUE7QVJBQklDIExFVFRFUiBTV0FTSCBLQUY7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFNXQVNIIENBRjs7OzsKKzA2QUI7QVJBQklDIExFVFRFUiBLQUYgV0lUSCBSSU5HO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBDQUYgV0lUSCBSSU5HOzs7OworMDZBQztBUkFCSUMgTEVUVEVSIEtBRiBXSVRIIERPVCBBQk9WRTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgQ0FGIFdJVEggRE9UIEFCT1ZFOzs7OworMDZBRDtBUkFCSUMgTEVUVEVSIE5HO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBDQUYgV0lUSCBUSFJFRSBET1RTIEFCT1ZFOzs7OworMDZBRTtBUkFCSUMgTEVUVEVSIEtBRiBXSVRIIFRIUkVFIERPVFMgQkVMT1c7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIENBRiBXSVRIIFRIUkVFIERPVFMgQkVMT1c7Ozs7CiswNkFGO0FSQUJJQyBMRVRURVIgR0FGO0xvOzA7QUw7Ozs7O047Oyo7OzsKKzA2QjA7QVJBQklDIExFVFRFUiBHQUYgV0lUSCBSSU5HO0xvOzA7QUw7Ozs7O047Ozs7OworMDZCMTtBUkFCSUMgTEVUVEVSIE5HT0VIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBHQUYgV0lUSCBUV08gRE9UUyBBQk9WRTs7OzsKKzA2QjI7QVJBQklDIExFVFRFUiBHQUYgV0lUSCBUV08gRE9UUyBCRUxPVztMbzswO0FMOzs7OztOOzs7OzsKKzA2QjM7QVJBQklDIExFVFRFUiBHVUVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBHQUYgV0lUSCBUV08gRE9UUyBWRVJUSUNBTCBCRUxPVzs7OzsKKzA2QjQ7QVJBQklDIExFVFRFUiBHQUYgV0lUSCBUSFJFRSBET1RTIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDZCNTtBUkFCSUMgTEVUVEVSIExBTSBXSVRIIFNNQUxMIFY7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkI2O0FSQUJJQyBMRVRURVIgTEFNIFdJVEggRE9UIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDZCNztBUkFCSUMgTEVUVEVSIExBTSBXSVRIIFRIUkVFIERPVFMgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkI4O0FSQUJJQyBMRVRURVIgTEFNIFdJVEggVEhSRUUgRE9UUyBCRUxPVztMbzswO0FMOzs7OztOOzs7OzsKKzA2Qjk7QVJBQklDIExFVFRFUiBOT09OIFdJVEggRE9UIEJFTE9XO0xvOzA7QUw7Ozs7O047Ozs7OworMDZCQTtBUkFCSUMgTEVUVEVSIE5PT04gR0hVTk5BO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBET1RMRVNTIE5PT047Ozs7CiswNkJCO0FSQUJJQyBMRVRURVIgUk5PT047TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIERPVExFU1MgTk9PTiBXSVRIIFNNQUxMIFRBSDs7OzsKKzA2QkM7QVJBQklDIExFVFRFUiBOT09OIFdJVEggUklORztMbzswO0FMOzs7OztOOzs7OzsKKzA2QkQ7QVJBQklDIExFVFRFUiBOT09OIFdJVEggVEhSRUUgRE9UUyBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA2QkU7QVJBQklDIExFVFRFUiBIRUggRE9BQ0hBU0hNRUU7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEtOT1RURUQgSEE7Ozs7CiswNkJGO0FSQUJJQyBMRVRURVIgVENIRUggV0lUSCBET1QgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkMwO0FSQUJJQyBMRVRURVIgSEVIIFdJVEggWUVIIEFCT1ZFO0xvOzA7QUw7MDZENSAwNjU0Ozs7O047QVJBQklDIExFVFRFUiBIQU1aQUggT04gSEE7Ozs7CiswNkMxO0FSQUJJQyBMRVRURVIgSEVIIEdPQUw7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBIEdPQUw7Ozs7CiswNkMyO0FSQUJJQyBMRVRURVIgSEVIIEdPQUwgV0lUSCBIQU1aQSBBQk9WRTtMbzswO0FMOzA2QzEgMDY1NDs7OztOO0FSQUJJQyBMRVRURVIgSEFNWkFIIE9OIEhBIEdPQUw7Ozs7CiswNkMzO0FSQUJJQyBMRVRURVIgVEVIIE1BUkJVVEEgR09BTDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgVEFBIE1BUkJVVEFIIEdPQUw7Ozs7CiswNkM0O0FSQUJJQyBMRVRURVIgV0FXIFdJVEggUklORztMbzswO0FMOzs7OztOOzs7OzsKKzA2QzU7QVJBQklDIExFVFRFUiBLSVJHSElaIE9FO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBXQVcgV0lUSCBCQVI7Ozs7CiswNkM2O0FSQUJJQyBMRVRURVIgT0U7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFdBVyBXSVRIIFNNQUxMIFY7Ozs7CiswNkM3O0FSQUJJQyBMRVRURVIgVTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgV0FXIFdJVEggREFNTUFIOzs7OworMDZDODtBUkFCSUMgTEVUVEVSIFlVO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBXQVcgV0lUSCBBTEVGIEFCT1ZFOzs7OworMDZDOTtBUkFCSUMgTEVUVEVSIEtJUkdISVogWVU7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFdBVyBXSVRIIElOVkVSVEVEIFNNQUxMIFY7Ozs7CiswNkNBO0FSQUJJQyBMRVRURVIgV0FXIFdJVEggVFdPIERPVFMgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkNCO0FSQUJJQyBMRVRURVIgVkU7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFdBVyBXSVRIIFRIUkVFIERPVFMgQUJPVkU7Ozs7CiswNkNDO0FSQUJJQyBMRVRURVIgRkFSU0kgWUVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBET1RMRVNTIFlBOzs7OworMDZDRDtBUkFCSUMgTEVUVEVSIFlFSCBXSVRIIFRBSUw7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFlBIFdJVEggVEFJTDs7OzsKKzA2Q0U7QVJBQklDIExFVFRFUiBZRUggV0lUSCBTTUFMTCBWO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBZQSBXSVRIIFNNQUxMIFY7Ozs7CiswNkNGO0FSQUJJQyBMRVRURVIgV0FXIFdJVEggRE9UIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDZEMDtBUkFCSUMgTEVUVEVSIEU7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFlBIFdJVEggVFdPIERPVFMgVkVSVElDQUwgQkVMT1c7Kjs7OworMDZEMTtBUkFCSUMgTEVUVEVSIFlFSCBXSVRIIFRIUkVFIERPVFMgQkVMT1c7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFlBIFdJVEggVEhSRUUgRE9UUyBCRUxPVzs7OzsKKzA2RDI7QVJBQklDIExFVFRFUiBZRUggQkFSUkVFO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBZQSBCQVJSRUU7Ozs7CiswNkQzO0FSQUJJQyBMRVRURVIgWUVIIEJBUlJFRSBXSVRIIEhBTVpBIEFCT1ZFO0xvOzA7QUw7MDZEMiAwNjU0Ozs7O047QVJBQklDIExFVFRFUiBIQU1aQUggT04gWUEgQkFSUkVFOzs7OworMDZENDtBUkFCSUMgRlVMTCBTVE9QO1BvOzA7QUw7Ozs7O047QVJBQklDIFBFUklPRDs7OzsKKzA2RDU7QVJBQklDIExFVFRFUiBBRTtMbzswO0FMOzs7OztOOzs7OzsKKzA2RDY7QVJBQklDIFNNQUxMIEhJR0ggTElHQVRVUkUgU0FEIFdJVEggTEFNIFdJVEggQUxFRiBNQUtTVVJBO01uOzIzMDtOU007Ozs7O047Ozs7OworMDZENztBUkFCSUMgU01BTEwgSElHSCBMSUdBVFVSRSBRQUYgV0lUSCBMQU0gV0lUSCBBTEVGIE1BS1NVUkE7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkQ4O0FSQUJJQyBTTUFMTCBISUdIIE1FRU0gSU5JVElBTCBGT1JNO01uOzIzMDtOU007Ozs7O047Ozs7OworMDZEOTtBUkFCSUMgU01BTEwgSElHSCBMQU0gQUxFRjtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2REE7QVJBQklDIFNNQUxMIEhJR0ggSkVFTTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2REI7QVJBQklDIFNNQUxMIEhJR0ggVEhSRUUgRE9UUztNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2REM7QVJBQklDIFNNQUxMIEhJR0ggU0VFTjtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2REQ7QVJBQklDIEVORCBPRiBBWUFIO01lOzA7TlNNOzs7OztOOzs7OzsKKzA2REU7QVJBQklDIFNUQVJUIE9GIFJVQiBFTCBISVpCO01lOzA7TlNNOzs7OztOOzs7OzsKKzA2REY7QVJBQklDIFNNQUxMIEhJR0ggUk9VTkRFRCBaRVJPO01uOzIzMDtOU007Ozs7O047Ozs7OworMDZFMDtBUkFCSUMgU01BTEwgSElHSCBVUFJJR0hUIFJFQ1RBTkdVTEFSIFpFUk87TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkUxO0FSQUJJQyBTTUFMTCBISUdIIERPVExFU1MgSEVBRCBPRiBLSEFIO01uOzIzMDtOU007Ozs7O047Ozs7OworMDZFMjtBUkFCSUMgU01BTEwgSElHSCBNRUVNIElTT0xBVEVEIEZPUk07TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkUzO0FSQUJJQyBTTUFMTCBMT1cgU0VFTjtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA2RTQ7QVJBQklDIFNNQUxMIEhJR0ggTUFEREE7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkU1O0FSQUJJQyBTTUFMTCBXQVc7TG07MDtBTDs7Ozs7Tjs7Ozs7CiswNkU2O0FSQUJJQyBTTUFMTCBZRUg7TG07MDtBTDs7Ozs7Tjs7Ozs7CiswNkU3O0FSQUJJQyBTTUFMTCBISUdIIFlFSDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2RTg7QVJBQklDIFNNQUxMIEhJR0ggTk9PTjtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2RTk7QVJBQklDIFBMQUNFIE9GIFNBSkRBSDtTbzswO09OOzs7OztOOzs7OzsKKzA2RUE7QVJBQklDIEVNUFRZIENFTlRSRSBMT1cgU1RPUDtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA2RUI7QVJBQklDIEVNUFRZIENFTlRSRSBISUdIIFNUT1A7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkVDO0FSQUJJQyBST1VOREVEIEhJR0ggU1RPUCBXSVRIIEZJTExFRCBDRU5UUkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkVEO0FSQUJJQyBTTUFMTCBMT1cgTUVFTTtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA2RjA7RVhURU5ERUQgQVJBQklDLUlORElDIERJR0lUIFpFUk87TmQ7MDtFTjs7MDswOzA7TjtFQVNURVJOIEFSQUJJQy1JTkRJQyBESUdJVCBaRVJPOzs7OworMDZGMTtFWFRFTkRFRCBBUkFCSUMtSU5ESUMgRElHSVQgT05FO05kOzA7RU47OzE7MTsxO047RUFTVEVSTiBBUkFCSUMtSU5ESUMgRElHSVQgT05FOzs7OworMDZGMjtFWFRFTkRFRCBBUkFCSUMtSU5ESUMgRElHSVQgVFdPO05kOzA7RU47OzI7MjsyO047RUFTVEVSTiBBUkFCSUMtSU5ESUMgRElHSVQgVFdPOzs7OworMDZGMztFWFRFTkRFRCBBUkFCSUMtSU5ESUMgRElHSVQgVEhSRUU7TmQ7MDtFTjs7MzszOzM7TjtFQVNURVJOIEFSQUJJQy1JTkRJQyBESUdJVCBUSFJFRTs7OzsKKzA2RjQ7RVhURU5ERUQgQVJBQklDLUlORElDIERJR0lUIEZPVVI7TmQ7MDtFTjs7NDs0OzQ7TjtFQVNURVJOIEFSQUJJQy1JTkRJQyBESUdJVCBGT1VSOzs7OworMDZGNTtFWFRFTkRFRCBBUkFCSUMtSU5ESUMgRElHSVQgRklWRTtOZDswO0VOOzs1OzU7NTtOO0VBU1RFUk4gQVJBQklDLUlORElDIERJR0lUIEZJVkU7Ozs7CiswNkY2O0VYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBTSVg7TmQ7MDtFTjs7Njs2OzY7TjtFQVNURVJOIEFSQUJJQy1JTkRJQyBESUdJVCBTSVg7Ozs7CiswNkY3O0VYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBTRVZFTjtOZDswO0VOOzs3Ozc7NztOO0VBU1RFUk4gQVJBQklDLUlORElDIERJR0lUIFNFVkVOOzs7OworMDZGODtFWFRFTkRFRCBBUkFCSUMtSU5ESUMgRElHSVQgRUlHSFQ7TmQ7MDtFTjs7ODs4Ozg7TjtFQVNURVJOIEFSQUJJQy1JTkRJQyBESUdJVCBFSUdIVDs7OzsKKzA2Rjk7RVhURU5ERUQgQVJBQklDLUlORElDIERJR0lUIE5JTkU7TmQ7MDtFTjs7OTs5Ozk7TjtFQVNURVJOIEFSQUJJQy1JTkRJQyBESUdJVCBOSU5FOzs7OworMDZGQTtBUkFCSUMgTEVUVEVSIFNIRUVOIFdJVEggRE9UIEJFTE9XO0xvOzA7QUw7Ozs7O047Ozs7OworMDZGQjtBUkFCSUMgTEVUVEVSIERBRCBXSVRIIERPVCBCRUxPVztMbzswO0FMOzs7OztOOzs7OzsKKzA2RkM7QVJBQklDIExFVFRFUiBHSEFJTiBXSVRIIERPVCBCRUxPVztMbzswO0FMOzs7OztOOzs7OzsKKzA2RkQ7QVJBQklDIFNJR04gU0lOREhJIEFNUEVSU0FORDtTbzswO0FMOzs7OztOOzs7OzsKKzA2RkU7QVJBQklDIFNJR04gU0lOREhJIFBPU1RQT1NJVElPTiBNRU47U287MDtBTDs7Ozs7Tjs7Ozs7CiswNzAwO1NZUklBQyBFTkQgT0YgUEFSQUdSQVBIO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwMTtTWVJJQUMgU1VQUkFMSU5FQVIgRlVMTCBTVE9QO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwMjtTWVJJQUMgU1VCTElORUFSIEZVTEwgU1RPUDtQbzswO0FMOzs7OztOOzs7OzsKKzA3MDM7U1lSSUFDIFNVUFJBTElORUFSIENPTE9OO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwNDtTWVJJQUMgU1VCTElORUFSIENPTE9OO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwNTtTWVJJQUMgSE9SSVpPTlRBTCBDT0xPTjtQbzswO0FMOzs7OztOOzs7OzsKKzA3MDY7U1lSSUFDIENPTE9OIFNLRVdFRCBMRUZUO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwNztTWVJJQUMgQ09MT04gU0tFV0VEIFJJR0hUO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwODtTWVJJQUMgU1VQUkFMSU5FQVIgQ09MT04gU0tFV0VEIExFRlQ7UG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzA5O1NZUklBQyBTVUJMSU5FQVIgQ09MT04gU0tFV0VEIFJJR0hUO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwQTtTWVJJQUMgQ09OVFJBQ1RJT047UG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzBCO1NZUklBQyBIQVJLTEVBTiBPQkVMVVM7UG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzBDO1NZUklBQyBIQVJLTEVBTiBNRVRPQkVMVVM7UG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzBEO1NZUklBQyBIQVJLTEVBTiBBU1RFUklTQ1VTO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwRjtTWVJJQUMgQUJCUkVWSUFUSU9OIE1BUks7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CiswNzEwO1NZUklBQyBMRVRURVIgQUxBUEg7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzExO1NZUklBQyBMRVRURVIgU1VQRVJTQ1JJUFQgQUxBUEg7TW47MzY7TlNNOzs7OztOOzs7OzsKKzA3MTI7U1lSSUFDIExFVFRFUiBCRVRIO0xvOzA7QUw7Ozs7O047Ozs7OworMDcxMztTWVJJQUMgTEVUVEVSIEdBTUFMO0xvOzA7QUw7Ozs7O047Ozs7OworMDcxNDtTWVJJQUMgTEVUVEVSIEdBTUFMIEdBUlNIVU5JO0xvOzA7QUw7Ozs7O047Ozs7OworMDcxNTtTWVJJQUMgTEVUVEVSIERBTEFUSDtMbzswO0FMOzs7OztOOzs7OzsKKzA3MTY7U1lSSUFDIExFVFRFUiBET1RMRVNTIERBTEFUSCBSSVNIO0xvOzA7QUw7Ozs7O047Ozs7OworMDcxNztTWVJJQUMgTEVUVEVSIEhFO0xvOzA7QUw7Ozs7O047Ozs7OworMDcxODtTWVJJQUMgTEVUVEVSIFdBVztMbzswO0FMOzs7OztOOzs7OzsKKzA3MTk7U1lSSUFDIExFVFRFUiBaQUlOO0xvOzA7QUw7Ozs7O047Ozs7OworMDcxQTtTWVJJQUMgTEVUVEVSIEhFVEg7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzFCO1NZUklBQyBMRVRURVIgVEVUSDtMbzswO0FMOzs7OztOOzs7OzsKKzA3MUM7U1lSSUFDIExFVFRFUiBURVRIIEdBUlNIVU5JO0xvOzA7QUw7Ozs7O047Ozs7OworMDcxRDtTWVJJQUMgTEVUVEVSIFlVREg7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzFFO1NZUklBQyBMRVRURVIgWVVESCBIRTtMbzswO0FMOzs7OztOOzs7OzsKKzA3MUY7U1lSSUFDIExFVFRFUiBLQVBIO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyMDtTWVJJQUMgTEVUVEVSIExBTUFESDtMbzswO0FMOzs7OztOOzs7OzsKKzA3MjE7U1lSSUFDIExFVFRFUiBNSU07TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzIyO1NZUklBQyBMRVRURVIgTlVOO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyMztTWVJJQUMgTEVUVEVSIFNFTUtBVEg7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzI0O1NZUklBQyBMRVRURVIgRklOQUwgU0VNS0FUSDtMbzswO0FMOzs7OztOOzs7OzsKKzA3MjU7U1lSSUFDIExFVFRFUiBFO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyNjtTWVJJQUMgTEVUVEVSIFBFO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyNztTWVJJQUMgTEVUVEVSIFJFVkVSU0VEIFBFO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyODtTWVJJQUMgTEVUVEVSIFNBREhFO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyOTtTWVJJQUMgTEVUVEVSIFFBUEg7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzJBO1NZUklBQyBMRVRURVIgUklTSDtMbzswO0FMOzs7OztOOzs7OzsKKzA3MkI7U1lSSUFDIExFVFRFUiBTSElOO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyQztTWVJJQUMgTEVUVEVSIFRBVztMbzswO0FMOzs7OztOOzs7OzsKKzA3MzA7U1lSSUFDIFBUSEFIQSBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3MzE7U1lSSUFDIFBUSEFIQSBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA3MzI7U1lSSUFDIFBUSEFIQSBET1RURUQ7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNzMzO1NZUklBQyBaUUFQSEEgQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNzM0O1NZUklBQyBaUUFQSEEgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNzM1O1NZUklBQyBaUUFQSEEgRE9UVEVEO01uOzIzMDtOU007Ozs7O047Ozs7OworMDczNjtTWVJJQUMgUkJBU0EgQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNzM3O1NZUklBQyBSQkFTQSBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA3Mzg7U1lSSUFDIERPVFRFRCBaTEFNQSBIT1JJWk9OVEFMO01uOzIyMDtOU007Ozs7O047Ozs7OworMDczOTtTWVJJQUMgRE9UVEVEIFpMQU1BIEFOR1VMQVI7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNzNBO1NZUklBQyBIQkFTQSBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3M0I7U1lSSUFDIEhCQVNBIEJFTE9XO01uOzIyMDtOU007Ozs7O047Ozs7OworMDczQztTWVJJQUMgSEJBU0EtRVNBU0EgRE9UVEVEO01uOzIyMDtOU007Ozs7O047Ozs7OworMDczRDtTWVJJQUMgRVNBU0EgQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNzNFO1NZUklBQyBFU0FTQSBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA3M0Y7U1lSSUFDIFJXQUhBO01uOzIzMDtOU007Ozs7O047Ozs7OworMDc0MDtTWVJJQUMgRkVNSU5JTkUgRE9UO01uOzIzMDtOU007Ozs7O047Ozs7OworMDc0MTtTWVJJQUMgUVVTSFNIQVlBO01uOzIzMDtOU007Ozs7O047Ozs7OworMDc0MjtTWVJJQUMgUlVLS0FLSEE7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNzQzO1NZUklBQyBUV08gVkVSVElDQUwgRE9UUyBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3NDQ7U1lSSUFDIFRXTyBWRVJUSUNBTCBET1RTIEJFTE9XO01uOzIyMDtOU007Ozs7O047Ozs7OworMDc0NTtTWVJJQUMgVEhSRUUgRE9UUyBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3NDY7U1lSSUFDIFRIUkVFIERPVFMgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNzQ3O1NZUklBQyBPQkxJUVVFIExJTkUgQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNzQ4O1NZUklBQyBPQkxJUVVFIExJTkUgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNzQ5O1NZUklBQyBNVVNJQztNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3NEE7U1lSSUFDIEJBUlJFS0g7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNzgwO1RIQUFOQSBMRVRURVIgSEFBO0xvOzA7QUw7Ozs7O047Ozs7OworMDc4MTtUSEFBTkEgTEVUVEVSIFNIQVZJWUFOSTtMbzswO0FMOzs7OztOOzs7OzsKKzA3ODI7VEhBQU5BIExFVFRFUiBOT09OVTtMbzswO0FMOzs7OztOOzs7OzsKKzA3ODM7VEhBQU5BIExFVFRFUiBSQUE7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzg0O1RIQUFOQSBMRVRURVIgQkFBO0xvOzA7QUw7Ozs7O047Ozs7OworMDc4NTtUSEFBTkEgTEVUVEVSIExIQVZJWUFOSTtMbzswO0FMOzs7OztOOzs7OzsKKzA3ODY7VEhBQU5BIExFVFRFUiBLQUFGVTtMbzswO0FMOzs7OztOOzs7OzsKKzA3ODc7VEhBQU5BIExFVFRFUiBBTElGVTtMbzswO0FMOzs7OztOOzs7OzsKKzA3ODg7VEhBQU5BIExFVFRFUiBWQUFWVTtMbzswO0FMOzs7OztOOzs7OzsKKzA3ODk7VEhBQU5BIExFVFRFUiBNRUVNVTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OEE7VEhBQU5BIExFVFRFUiBGQUFGVTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OEI7VEhBQU5BIExFVFRFUiBESEFBTFU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzhDO1RIQUFOQSBMRVRURVIgVEhBQTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OEQ7VEhBQU5BIExFVFRFUiBMQUFNVTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OEU7VEhBQU5BIExFVFRFUiBHQUFGVTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OEY7VEhBQU5BIExFVFRFUiBHTkFWSVlBTkk7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzkwO1RIQUFOQSBMRVRURVIgU0VFTlU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzkxO1RIQUFOQSBMRVRURVIgREFWSVlBTkk7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzkyO1RIQUFOQSBMRVRURVIgWkFWSVlBTkk7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzkzO1RIQUFOQSBMRVRURVIgVEFWSVlBTkk7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzk0O1RIQUFOQSBMRVRURVIgWUFBO0xvOzA7QUw7Ozs7O047Ozs7OworMDc5NTtUSEFBTkEgTEVUVEVSIFBBVklZQU5JO0xvOzA7QUw7Ozs7O047Ozs7OworMDc5NjtUSEFBTkEgTEVUVEVSIEpBVklZQU5JO0xvOzA7QUw7Ozs7O047Ozs7OworMDc5NztUSEFBTkEgTEVUVEVSIENIQVZJWUFOSTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OTg7VEhBQU5BIExFVFRFUiBUVEFBO0xvOzA7QUw7Ozs7O047Ozs7OworMDc5OTtUSEFBTkEgTEVUVEVSIEhIQUE7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzlBO1RIQUFOQSBMRVRURVIgS0hBQTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OUI7VEhBQU5BIExFVFRFUiBUSEFBTFU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzlDO1RIQUFOQSBMRVRURVIgWkFBO0xvOzA7QUw7Ozs7O047Ozs7OworMDc5RDtUSEFBTkEgTEVUVEVSIFNIRUVOVTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OUU7VEhBQU5BIExFVFRFUiBTQUFESFU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzlGO1RIQUFOQSBMRVRURVIgREFBREhVO0xvOzA7QUw7Ozs7O047Ozs7OworMDdBMDtUSEFBTkEgTEVUVEVSIFRPO0xvOzA7QUw7Ozs7O047Ozs7OworMDdBMTtUSEFBTkEgTEVUVEVSIFpPO0xvOzA7QUw7Ozs7O047Ozs7OworMDdBMjtUSEFBTkEgTEVUVEVSIEFJTlU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswN0EzO1RIQUFOQSBMRVRURVIgR0hBSU5VO0xvOzA7QUw7Ozs7O047Ozs7OworMDdBNDtUSEFBTkEgTEVUVEVSIFFBQUZVO0xvOzA7QUw7Ozs7O047Ozs7OworMDdBNTtUSEFBTkEgTEVUVEVSIFdBQVZVO0xvOzA7QUw7Ozs7O047Ozs7OworMDdBNjtUSEFBTkEgQUJBRklMSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswN0E3O1RIQUFOQSBBQUJBQUZJTEk7TW47MDtOU007Ozs7O047Ozs7OworMDdBODtUSEFBTkEgSUJJRklMSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswN0E5O1RIQUFOQSBFRUJFRUZJTEk7TW47MDtOU007Ozs7O047Ozs7OworMDdBQTtUSEFBTkEgVUJVRklMSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswN0FCO1RIQUFOQSBPT0JPT0ZJTEk7TW47MDtOU007Ozs7O047Ozs7OworMDdBQztUSEFBTkEgRUJFRklMSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswN0FEO1RIQUFOQSBFWUJFWUZJTEk7TW47MDtOU007Ozs7O047Ozs7OworMDdBRTtUSEFBTkEgT0JPRklMSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswN0FGO1RIQUFOQSBPQUJPQUZJTEk7TW47MDtOU007Ozs7O047Ozs7OworMDdCMDtUSEFBTkEgU1VLVU47TW47MDtOU007Ozs7O047Ozs7OworMDkwMTtERVZBTkFHQVJJIFNJR04gQ0FORFJBQklORFU7TW47MDtOU007Ozs7O047Ozs7OworMDkwMjtERVZBTkFHQVJJIFNJR04gQU5VU1ZBUkE7TW47MDtOU007Ozs7O047Ozs7OworMDkwMztERVZBTkFHQVJJIFNJR04gVklTQVJHQTtNYzswO0w7Ozs7O047Ozs7OworMDkwNTtERVZBTkFHQVJJIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTA2O0RFVkFOQUdBUkkgTEVUVEVSIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTA3O0RFVkFOQUdBUkkgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzA5MDg7REVWQU5BR0FSSSBMRVRURVIgSUk7TG87MDtMOzs7OztOOzs7OzsKKzA5MDk7REVWQU5BR0FSSSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMDkwQTtERVZBTkFHQVJJIExFVFRFUiBVVTtMbzswO0w7Ozs7O047Ozs7OworMDkwQjtERVZBTkFHQVJJIExFVFRFUiBWT0NBTElDIFI7TG87MDtMOzs7OztOOzs7OzsKKzA5MEM7REVWQU5BR0FSSSBMRVRURVIgVk9DQUxJQyBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTBEO0RFVkFOQUdBUkkgTEVUVEVSIENBTkRSQSBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTBFO0RFVkFOQUdBUkkgTEVUVEVSIFNIT1JUIEU7TG87MDtMOzs7OztOOzs7OzsKKzA5MEY7REVWQU5BR0FSSSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMDkxMDtERVZBTkFHQVJJIExFVFRFUiBBSTtMbzswO0w7Ozs7O047Ozs7OworMDkxMTtERVZBTkFHQVJJIExFVFRFUiBDQU5EUkEgTztMbzswO0w7Ozs7O047Ozs7OworMDkxMjtERVZBTkFHQVJJIExFVFRFUiBTSE9SVCBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTEzO0RFVkFOQUdBUkkgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzA5MTQ7REVWQU5BR0FSSSBMRVRURVIgQVU7TG87MDtMOzs7OztOOzs7OzsKKzA5MTU7REVWQU5BR0FSSSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzA5MTY7REVWQU5BR0FSSSBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTE3O0RFVkFOQUdBUkkgTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTE4O0RFVkFOQUdBUkkgTEVUVEVSIEdIQTtMbzswO0w7Ozs7O047Ozs7OworMDkxOTtERVZBTkFHQVJJIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzA5MUE7REVWQU5BR0FSSSBMRVRURVIgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzA5MUI7REVWQU5BR0FSSSBMRVRURVIgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTFDO0RFVkFOQUdBUkkgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTFEO0RFVkFOQUdBUkkgTEVUVEVSIEpIQTtMbzswO0w7Ozs7O047Ozs7OworMDkxRTtERVZBTkFHQVJJIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzA5MUY7REVWQU5BR0FSSSBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTIwO0RFVkFOQUdBUkkgTEVUVEVSIFRUSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MjE7REVWQU5BR0FSSSBMRVRURVIgRERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTIyO0RFVkFOQUdBUkkgTEVUVEVSIERESEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MjM7REVWQU5BR0FSSSBMRVRURVIgTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTI0O0RFVkFOQUdBUkkgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTI1O0RFVkFOQUdBUkkgTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMDkyNjtERVZBTkFHQVJJIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMDkyNztERVZBTkFHQVJJIExFVFRFUiBESEE7TG87MDtMOzs7OztOOzs7OzsKKzA5Mjg7REVWQU5BR0FSSSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzA5Mjk7REVWQU5BR0FSSSBMRVRURVIgTk5OQTtMbzswO0w7MDkyOCAwOTNDOzs7O047Ozs7OworMDkyQTtERVZBTkFHQVJJIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMDkyQjtERVZBTkFHQVJJIExFVFRFUiBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MkM7REVWQU5BR0FSSSBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzA5MkQ7REVWQU5BR0FSSSBMRVRURVIgQkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTJFO0RFVkFOQUdBUkkgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTJGO0RFVkFOQUdBUkkgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTMwO0RFVkFOQUdBUkkgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTMxO0RFVkFOQUdBUkkgTEVUVEVSIFJSQTtMbzswO0w7MDkzMCAwOTNDOzs7O047Ozs7OworMDkzMjtERVZBTkFHQVJJIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMDkzMztERVZBTkFHQVJJIExFVFRFUiBMTEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MzQ7REVWQU5BR0FSSSBMRVRURVIgTExMQTtMbzswO0w7MDkzMyAwOTNDOzs7O047Ozs7OworMDkzNTtERVZBTkFHQVJJIExFVFRFUiBWQTtMbzswO0w7Ozs7O047Ozs7OworMDkzNjtERVZBTkFHQVJJIExFVFRFUiBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5Mzc7REVWQU5BR0FSSSBMRVRURVIgU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTM4O0RFVkFOQUdBUkkgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTM5O0RFVkFOQUdBUkkgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTNDO0RFVkFOQUdBUkkgU0lHTiBOVUtUQTtNbjs3O05TTTs7Ozs7Tjs7Ozs7CiswOTNEO0RFVkFOQUdBUkkgU0lHTiBBVkFHUkFIQTtMbzswO0w7Ozs7O047Ozs7OworMDkzRTtERVZBTkFHQVJJIFZPV0VMIFNJR04gQUE7TWM7MDtMOzs7OztOOzs7OzsKKzA5M0Y7REVWQU5BR0FSSSBWT1dFTCBTSUdOIEk7TWM7MDtMOzs7OztOOzs7OzsKKzA5NDA7REVWQU5BR0FSSSBWT1dFTCBTSUdOIElJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOTQxO0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBVO01uOzA7TlNNOzs7OztOOzs7OzsKKzA5NDI7REVWQU5BR0FSSSBWT1dFTCBTSUdOIFVVO01uOzA7TlNNOzs7OztOOzs7OzsKKzA5NDM7REVWQU5BR0FSSSBWT1dFTCBTSUdOIFZPQ0FMSUMgUjtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOTQ0O0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBWT0NBTElDIFJSO01uOzA7TlNNOzs7OztOOzs7OzsKKzA5NDU7REVWQU5BR0FSSSBWT1dFTCBTSUdOIENBTkRSQSBFO01uOzA7TlNNOzs7OztOOzs7OzsKKzA5NDY7REVWQU5BR0FSSSBWT1dFTCBTSUdOIFNIT1JUIEU7TW47MDtOU007Ozs7O047Ozs7OworMDk0NztERVZBTkFHQVJJIFZPV0VMIFNJR04gRTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOTQ4O0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBBSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOTQ5O0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBDQU5EUkEgTztNYzswO0w7Ozs7O047Ozs7OworMDk0QTtERVZBTkFHQVJJIFZPV0VMIFNJR04gU0hPUlQgTztNYzswO0w7Ozs7O047Ozs7OworMDk0QjtERVZBTkFHQVJJIFZPV0VMIFNJR04gTztNYzswO0w7Ozs7O047Ozs7OworMDk0QztERVZBTkFHQVJJIFZPV0VMIFNJR04gQVU7TWM7MDtMOzs7OztOOzs7OzsKKzA5NEQ7REVWQU5BR0FSSSBTSUdOIFZJUkFNQTtNbjs5O05TTTs7Ozs7Tjs7Ozs7CiswOTUwO0RFVkFOQUdBUkkgT007TG87MDtMOzs7OztOOzs7OzsKKzA5NTE7REVWQU5BR0FSSSBTVFJFU1MgU0lHTiBVREFUVEE7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswOTUyO0RFVkFOQUdBUkkgU1RSRVNTIFNJR04gQU5VREFUVEE7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswOTUzO0RFVkFOQUdBUkkgR1JBVkUgQUNDRU5UO01uOzIzMDtOU007Ozs7O047Ozs7OworMDk1NDtERVZBTkFHQVJJIEFDVVRFIEFDQ0VOVDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA5NTg7REVWQU5BR0FSSSBMRVRURVIgUUE7TG87MDtMOzA5MTUgMDkzQzs7OztOOzs7OzsKKzA5NTk7REVWQU5BR0FSSSBMRVRURVIgS0hIQTtMbzswO0w7MDkxNiAwOTNDOzs7O047Ozs7OworMDk1QTtERVZBTkFHQVJJIExFVFRFUiBHSEhBO0xvOzA7TDswOTE3IDA5M0M7Ozs7Tjs7Ozs7CiswOTVCO0RFVkFOQUdBUkkgTEVUVEVSIFpBO0xvOzA7TDswOTFDIDA5M0M7Ozs7Tjs7Ozs7CiswOTVDO0RFVkFOQUdBUkkgTEVUVEVSIEREREhBO0xvOzA7TDswOTIxIDA5M0M7Ozs7Tjs7Ozs7CiswOTVEO0RFVkFOQUdBUkkgTEVUVEVSIFJIQTtMbzswO0w7MDkyMiAwOTNDOzs7O047Ozs7OworMDk1RTtERVZBTkFHQVJJIExFVFRFUiBGQTtMbzswO0w7MDkyQiAwOTNDOzs7O047Ozs7OworMDk1RjtERVZBTkFHQVJJIExFVFRFUiBZWUE7TG87MDtMOzA5MkYgMDkzQzs7OztOOzs7OzsKKzA5NjA7REVWQU5BR0FSSSBMRVRURVIgVk9DQUxJQyBSUjtMbzswO0w7Ozs7O047Ozs7OworMDk2MTtERVZBTkFHQVJJIExFVFRFUiBWT0NBTElDIExMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTYyO0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBWT0NBTElDIEw7TW47MDtOU007Ozs7O047Ozs7OworMDk2MztERVZBTkFHQVJJIFZPV0VMIFNJR04gVk9DQUxJQyBMTDtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOTY0O0RFVkFOQUdBUkkgREFOREE7UG87MDtMOzs7OztOOzs7OzsKKzA5NjU7REVWQU5BR0FSSSBET1VCTEUgREFOREE7UG87MDtMOzs7OztOOzs7OzsKKzA5NjY7REVWQU5BR0FSSSBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CiswOTY3O0RFVkFOQUdBUkkgRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CiswOTY4O0RFVkFOQUdBUkkgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswOTY5O0RFVkFOQUdBUkkgRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzA5NkE7REVWQU5BR0FSSSBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CiswOTZCO0RFVkFOQUdBUkkgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMDk2QztERVZBTkFHQVJJIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMDk2RDtERVZBTkFHQVJJIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CiswOTZFO0RFVkFOQUdBUkkgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzA5NkY7REVWQU5BR0FSSSBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CiswOTcwO0RFVkFOQUdBUkkgQUJCUkVWSUFUSU9OIFNJR047UG87MDtMOzs7OztOOzs7OzsKKzA5ODE7QkVOR0FMSSBTSUdOIENBTkRSQUJJTkRVO01uOzA7TlNNOzs7OztOOzs7OzsKKzA5ODI7QkVOR0FMSSBTSUdOIEFOVVNWQVJBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOTgzO0JFTkdBTEkgU0lHTiBWSVNBUkdBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOTg1O0JFTkdBTEkgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzA5ODY7QkVOR0FMSSBMRVRURVIgQUE7TG87MDtMOzs7OztOOzs7OzsKKzA5ODc7QkVOR0FMSSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMDk4ODtCRU5HQUxJIExFVFRFUiBJSTtMbzswO0w7Ozs7O047Ozs7OworMDk4OTtCRU5HQUxJIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOThBO0JFTkdBTEkgTEVUVEVSIFVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOThCO0JFTkdBTEkgTEVUVEVSIFZPQ0FMSUMgUjtMbzswO0w7Ozs7O047Ozs7OworMDk4QztCRU5HQUxJIExFVFRFUiBWT0NBTElDIEw7TG87MDtMOzs7OztOOzs7OzsKKzA5OEY7QkVOR0FMSSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMDk5MDtCRU5HQUxJIExFVFRFUiBBSTtMbzswO0w7Ozs7O047Ozs7OworMDk5MztCRU5HQUxJIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTk0O0JFTkdBTEkgTEVUVEVSIEFVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTk1O0JFTkdBTEkgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTk2O0JFTkdBTEkgTEVUVEVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMDk5NztCRU5HQUxJIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMDk5ODtCRU5HQUxJIExFVFRFUiBHSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5OTk7QkVOR0FMSSBMRVRURVIgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTlBO0JFTkdBTEkgTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTlCO0JFTkdBTEkgTEVUVEVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMDk5QztCRU5HQUxJIExFVFRFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworMDk5RDtCRU5HQUxJIExFVFRFUiBKSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5OUU7QkVOR0FMSSBMRVRURVIgTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTlGO0JFTkdBTEkgTEVUVEVSIFRUQTtMbzswO0w7Ozs7O047Ozs7OworMDlBMDtCRU5HQUxJIExFVFRFUiBUVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUExO0JFTkdBTEkgTEVUVEVSIEREQTtMbzswO0w7Ozs7O047Ozs7OworMDlBMjtCRU5HQUxJIExFVFRFUiBEREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUEzO0JFTkdBTEkgTEVUVEVSIE5OQTtMbzswO0w7Ozs7O047Ozs7OworMDlBNDtCRU5HQUxJIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMDlBNTtCRU5HQUxJIExFVFRFUiBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5QTY7QkVOR0FMSSBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzA5QTc7QkVOR0FMSSBMRVRURVIgREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUE4O0JFTkdBTEkgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUFBO0JFTkdBTEkgTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUFCO0JFTkdBTEkgTEVUVEVSIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMDlBQztCRU5HQUxJIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMDlBRDtCRU5HQUxJIExFVFRFUiBCSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5QUU7QkVOR0FMSSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzA5QUY7QkVOR0FMSSBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzA5QjA7QkVOR0FMSSBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzA5QjI7QkVOR0FMSSBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzA5QjY7QkVOR0FMSSBMRVRURVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUI3O0JFTkdBTEkgTEVUVEVSIFNTQTtMbzswO0w7Ozs7O047Ozs7OworMDlCODtCRU5HQUxJIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMDlCOTtCRU5HQUxJIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMDlCQztCRU5HQUxJIFNJR04gTlVLVEE7TW47NztOU007Ozs7O047Ozs7OworMDlCRTtCRU5HQUxJIFZPV0VMIFNJR04gQUE7TWM7MDtMOzs7OztOOzs7OzsKKzA5QkY7QkVOR0FMSSBWT1dFTCBTSUdOIEk7TWM7MDtMOzs7OztOOzs7OzsKKzA5QzA7QkVOR0FMSSBWT1dFTCBTSUdOIElJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOUMxO0JFTkdBTEkgVk9XRUwgU0lHTiBVO01uOzA7TlNNOzs7OztOOzs7OzsKKzA5QzI7QkVOR0FMSSBWT1dFTCBTSUdOIFVVO01uOzA7TlNNOzs7OztOOzs7OzsKKzA5QzM7QkVOR0FMSSBWT1dFTCBTSUdOIFZPQ0FMSUMgUjtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOUM0O0JFTkdBTEkgVk9XRUwgU0lHTiBWT0NBTElDIFJSO01uOzA7TlNNOzs7OztOOzs7OzsKKzA5Qzc7QkVOR0FMSSBWT1dFTCBTSUdOIEU7TWM7MDtMOzs7OztOOzs7OzsKKzA5Qzg7QkVOR0FMSSBWT1dFTCBTSUdOIEFJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOUNCO0JFTkdBTEkgVk9XRUwgU0lHTiBPO01jOzA7TDswOUM3IDA5QkU7Ozs7Tjs7Ozs7CiswOUNDO0JFTkdBTEkgVk9XRUwgU0lHTiBBVTtNYzswO0w7MDlDNyAwOUQ3Ozs7O047Ozs7OworMDlDRDtCRU5HQUxJIFNJR04gVklSQU1BO01uOzk7TlNNOzs7OztOOzs7OzsKKzA5RDc7QkVOR0FMSSBBVSBMRU5HVEggTUFSSztNYzswO0w7Ozs7O047Ozs7OworMDlEQztCRU5HQUxJIExFVFRFUiBSUkE7TG87MDtMOzA5QTEgMDlCQzs7OztOOzs7OzsKKzA5REQ7QkVOR0FMSSBMRVRURVIgUkhBO0xvOzA7TDswOUEyIDA5QkM7Ozs7Tjs7Ozs7CiswOURGO0JFTkdBTEkgTEVUVEVSIFlZQTtMbzswO0w7MDlBRiAwOUJDOzs7O047Ozs7OworMDlFMDtCRU5HQUxJIExFVFRFUiBWT0NBTElDIFJSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUUxO0JFTkdBTEkgTEVUVEVSIFZPQ0FMSUMgTEw7TG87MDtMOzs7OztOOzs7OzsKKzA5RTI7QkVOR0FMSSBWT1dFTCBTSUdOIFZPQ0FMSUMgTDtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOUUzO0JFTkdBTEkgVk9XRUwgU0lHTiBWT0NBTElDIExMO01uOzA7TlNNOzs7OztOOzs7OzsKKzA5RTY7QkVOR0FMSSBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CiswOUU3O0JFTkdBTEkgRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CiswOUU4O0JFTkdBTEkgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswOUU5O0JFTkdBTEkgRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzA5RUE7QkVOR0FMSSBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CiswOUVCO0JFTkdBTEkgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMDlFQztCRU5HQUxJIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMDlFRDtCRU5HQUxJIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CiswOUVFO0JFTkdBTEkgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzA5RUY7QkVOR0FMSSBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CiswOUYwO0JFTkdBTEkgTEVUVEVSIFJBIFdJVEggTUlERExFIERJQUdPTkFMO0xvOzA7TDs7Ozs7Tjs7QXNzYW1lc2U7OzsKKzA5RjE7QkVOR0FMSSBMRVRURVIgUkEgV0lUSCBMT1dFUiBESUFHT05BTDtMbzswO0w7Ozs7O047QkVOR0FMSSBMRVRURVIgVkEgV0lUSCBMT1dFUiBESUFHT05BTDtBc3NhbWVzZTs7OworMDlGMjtCRU5HQUxJIFJVUEVFIE1BUks7U2M7MDtFVDs7Ozs7Tjs7Ozs7CiswOUYzO0JFTkdBTEkgUlVQRUUgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzA5RjQ7QkVOR0FMSSBDVVJSRU5DWSBOVU1FUkFUT1IgT05FO05vOzA7TDs7OzsxO047Ozs7OworMDlGNTtCRU5HQUxJIENVUlJFTkNZIE5VTUVSQVRPUiBUV087Tm87MDtMOzs7OzI7Tjs7Ozs7CiswOUY2O0JFTkdBTEkgQ1VSUkVOQ1kgTlVNRVJBVE9SIFRIUkVFO05vOzA7TDs7OzszO047Ozs7OworMDlGNztCRU5HQUxJIENVUlJFTkNZIE5VTUVSQVRPUiBGT1VSO05vOzA7TDs7Ozs0O047Ozs7OworMDlGODtCRU5HQUxJIENVUlJFTkNZIE5VTUVSQVRPUiBPTkUgTEVTUyBUSEFOIFRIRSBERU5PTUlOQVRPUjtObzswO0w7Ozs7O047Ozs7OworMDlGOTtCRU5HQUxJIENVUlJFTkNZIERFTk9NSU5BVE9SIFNJWFRFRU47Tm87MDtMOzs7OzE2O047Ozs7OworMDlGQTtCRU5HQUxJIElTU0hBUjtTbzswO0w7Ozs7O047Ozs7OworMEEwMjtHVVJNVUtISSBTSUdOIEJJTkRJO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBMDU7R1VSTVVLSEkgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMDY7R1VSTVVLSEkgTEVUVEVSIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTA3O0dVUk1VS0hJIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTA4O0dVUk1VS0hJIExFVFRFUiBJSTtMbzswO0w7Ozs7O047Ozs7OworMEEwOTtHVVJNVUtISSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMEEwQTtHVVJNVUtISSBMRVRURVIgVVU7TG87MDtMOzs7OztOOzs7OzsKKzBBMEY7R1VSTVVLSEkgTEVUVEVSIEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTEwO0dVUk1VS0hJIExFVFRFUiBBSTtMbzswO0w7Ozs7O047Ozs7OworMEExMztHVVJNVUtISSBMRVRURVIgT087TG87MDtMOzs7OztOOzs7OzsKKzBBMTQ7R1VSTVVLSEkgTEVUVEVSIEFVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTE1O0dVUk1VS0hJIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMEExNjtHVVJNVUtISSBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTE3O0dVUk1VS0hJIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMEExODtHVVJNVUtISSBMRVRURVIgR0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTE5O0dVUk1VS0hJIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzBBMUE7R1VSTVVLSEkgTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTFCO0dVUk1VS0hJIExFVFRFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMUM7R1VSTVVLSEkgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTFEO0dVUk1VS0hJIExFVFRFUiBKSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMUU7R1VSTVVLSEkgTEVUVEVSIE5ZQTtMbzswO0w7Ozs7O047Ozs7OworMEExRjtHVVJNVUtISSBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTIwO0dVUk1VS0hJIExFVFRFUiBUVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTIxO0dVUk1VS0hJIExFVFRFUiBEREE7TG87MDtMOzs7OztOOzs7OzsKKzBBMjI7R1VSTVVLSEkgTEVUVEVSIERESEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMjM7R1VSTVVLSEkgTEVUVEVSIE5OQTtMbzswO0w7Ozs7O047Ozs7OworMEEyNDtHVVJNVUtISSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMjU7R1VSTVVLSEkgTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEEyNjtHVVJNVUtISSBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzBBMjc7R1VSTVVLSEkgTEVUVEVSIERIQTtMbzswO0w7Ozs7O047Ozs7OworMEEyODtHVVJNVUtISSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzBBMkE7R1VSTVVLSEkgTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTJCO0dVUk1VS0hJIExFVFRFUiBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMkM7R1VSTVVLSEkgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTJEO0dVUk1VS0hJIExFVFRFUiBCSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMkU7R1VSTVVLSEkgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTJGO0dVUk1VS0hJIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMEEzMDtHVVJNVUtISSBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzBBMzI7R1VSTVVLSEkgTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTMzO0dVUk1VS0hJIExFVFRFUiBMTEE7TG87MDtMOzBBMzIgMEEzQzs7OztOOzs7OzsKKzBBMzU7R1VSTVVLSEkgTEVUVEVSIFZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTM2O0dVUk1VS0hJIExFVFRFUiBTSEE7TG87MDtMOzBBMzggMEEzQzs7OztOOzs7OzsKKzBBMzg7R1VSTVVLSEkgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTM5O0dVUk1VS0hJIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMEEzQztHVVJNVUtISSBTSUdOIE5VS1RBO01uOzc7TlNNOzs7OztOOzs7OzsKKzBBM0U7R1VSTVVLSEkgVk9XRUwgU0lHTiBBQTtNYzswO0w7Ozs7O047Ozs7OworMEEzRjtHVVJNVUtISSBWT1dFTCBTSUdOIEk7TWM7MDtMOzs7OztOOzs7OzsKKzBBNDA7R1VSTVVLSEkgVk9XRUwgU0lHTiBJSTtNYzswO0w7Ozs7O047Ozs7OworMEE0MTtHVVJNVUtISSBWT1dFTCBTSUdOIFU7TW47MDtOU007Ozs7O047Ozs7OworMEE0MjtHVVJNVUtISSBWT1dFTCBTSUdOIFVVO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBNDc7R1VSTVVLSEkgVk9XRUwgU0lHTiBFRTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQTQ4O0dVUk1VS0hJIFZPV0VMIFNJR04gQUk7TW47MDtOU007Ozs7O047Ozs7OworMEE0QjtHVVJNVUtISSBWT1dFTCBTSUdOIE9PO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBNEM7R1VSTVVLSEkgVk9XRUwgU0lHTiBBVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQTREO0dVUk1VS0hJIFNJR04gVklSQU1BO01uOzk7TlNNOzs7OztOOzs7OzsKKzBBNTk7R1VSTVVLSEkgTEVUVEVSIEtISEE7TG87MDtMOzBBMTYgMEEzQzs7OztOOzs7OzsKKzBBNUE7R1VSTVVLSEkgTEVUVEVSIEdISEE7TG87MDtMOzBBMTcgMEEzQzs7OztOOzs7OzsKKzBBNUI7R1VSTVVLSEkgTEVUVEVSIFpBO0xvOzA7TDswQTFDIDBBM0M7Ozs7Tjs7Ozs7CiswQTVDO0dVUk1VS0hJIExFVFRFUiBSUkE7TG87MDtMOzs7OztOOzs7OzsKKzBBNUU7R1VSTVVLSEkgTEVUVEVSIEZBO0xvOzA7TDswQTJCIDBBM0M7Ozs7Tjs7Ozs7CiswQTY2O0dVUk1VS0hJIERJR0lUIFpFUk87TmQ7MDtMOzswOzA7MDtOOzs7OzsKKzBBNjc7R1VSTVVLSEkgRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CiswQTY4O0dVUk1VS0hJIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMEE2OTtHVVJNVUtISSBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMEE2QTtHVVJNVUtISSBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CiswQTZCO0dVUk1VS0hJIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzBBNkM7R1VSTVVLSEkgRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CiswQTZEO0dVUk1VS0hJIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CiswQTZFO0dVUk1VS0hJIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswQTZGO0dVUk1VS0hJIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzBBNzA7R1VSTVVLSEkgVElQUEk7TW47MDtOU007Ozs7O047Ozs7OworMEE3MTtHVVJNVUtISSBBRERBSztNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQTcyO0dVUk1VS0hJIElSSTtMbzswO0w7Ozs7O047Ozs7OworMEE3MztHVVJNVUtISSBVUkE7TG87MDtMOzs7OztOOzs7OzsKKzBBNzQ7R1VSTVVLSEkgRUsgT05LQVI7TG87MDtMOzs7OztOOzs7OzsKKzBBODE7R1VKQVJBVEkgU0lHTiBDQU5EUkFCSU5EVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQTgyO0dVSkFSQVRJIFNJR04gQU5VU1ZBUkE7TW47MDtOU007Ozs7O047Ozs7OworMEE4MztHVUpBUkFUSSBTSUdOIFZJU0FSR0E7TWM7MDtMOzs7OztOOzs7OzsKKzBBODU7R1VKQVJBVEkgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzBBODY7R1VKQVJBVEkgTEVUVEVSIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTg3O0dVSkFSQVRJIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTg4O0dVSkFSQVRJIExFVFRFUiBJSTtMbzswO0w7Ozs7O047Ozs7OworMEE4OTtHVUpBUkFUSSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMEE4QTtHVUpBUkFUSSBMRVRURVIgVVU7TG87MDtMOzs7OztOOzs7OzsKKzBBOEI7R1VKQVJBVEkgTEVUVEVSIFZPQ0FMSUMgUjtMbzswO0w7Ozs7O047Ozs7OworMEE4RDtHVUpBUkFUSSBWT1dFTCBDQU5EUkEgRTtMbzswO0w7Ozs7O047Ozs7OworMEE4RjtHVUpBUkFUSSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMEE5MDtHVUpBUkFUSSBMRVRURVIgQUk7TG87MDtMOzs7OztOOzs7OzsKKzBBOTE7R1VKQVJBVEkgVk9XRUwgQ0FORFJBIE87TG87MDtMOzs7OztOOzs7OzsKKzBBOTM7R1VKQVJBVEkgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzBBOTQ7R1VKQVJBVEkgTEVUVEVSIEFVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTk1O0dVSkFSQVRJIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMEE5NjtHVUpBUkFUSSBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTk3O0dVSkFSQVRJIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMEE5ODtHVUpBUkFUSSBMRVRURVIgR0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTk5O0dVSkFSQVRJIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzBBOUE7R1VKQVJBVEkgTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTlCO0dVSkFSQVRJIExFVFRFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBOUM7R1VKQVJBVEkgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTlEO0dVSkFSQVRJIExFVFRFUiBKSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBOUU7R1VKQVJBVEkgTEVUVEVSIE5ZQTtMbzswO0w7Ozs7O047Ozs7OworMEE5RjtHVUpBUkFUSSBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUEwO0dVSkFSQVRJIExFVFRFUiBUVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUExO0dVSkFSQVRJIExFVFRFUiBEREE7TG87MDtMOzs7OztOOzs7OzsKKzBBQTI7R1VKQVJBVEkgTEVUVEVSIERESEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQTM7R1VKQVJBVEkgTEVUVEVSIE5OQTtMbzswO0w7Ozs7O047Ozs7OworMEFBNDtHVUpBUkFUSSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQTU7R1VKQVJBVEkgTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEFBNjtHVUpBUkFUSSBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzBBQTc7R1VKQVJBVEkgTEVUVEVSIERIQTtMbzswO0w7Ozs7O047Ozs7OworMEFBODtHVUpBUkFUSSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzBBQUE7R1VKQVJBVEkgTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUFCO0dVSkFSQVRJIExFVFRFUiBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQUM7R1VKQVJBVEkgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUFEO0dVSkFSQVRJIExFVFRFUiBCSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQUU7R1VKQVJBVEkgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUFGO0dVSkFSQVRJIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMEFCMDtHVUpBUkFUSSBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzBBQjI7R1VKQVJBVEkgTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUIzO0dVSkFSQVRJIExFVFRFUiBMTEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQjU7R1VKQVJBVEkgTEVUVEVSIFZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUI2O0dVSkFSQVRJIExFVFRFUiBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQjc7R1VKQVJBVEkgTEVUVEVSIFNTQTtMbzswO0w7Ozs7O047Ozs7OworMEFCODtHVUpBUkFUSSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzBBQjk7R1VKQVJBVEkgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUJDO0dVSkFSQVRJIFNJR04gTlVLVEE7TW47NztOU007Ozs7O047Ozs7OworMEFCRDtHVUpBUkFUSSBTSUdOIEFWQUdSQUhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUJFO0dVSkFSQVRJIFZPV0VMIFNJR04gQUE7TWM7MDtMOzs7OztOOzs7OzsKKzBBQkY7R1VKQVJBVEkgVk9XRUwgU0lHTiBJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQUMwO0dVSkFSQVRJIFZPV0VMIFNJR04gSUk7TWM7MDtMOzs7OztOOzs7OzsKKzBBQzE7R1VKQVJBVEkgVk9XRUwgU0lHTiBVO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBQzI7R1VKQVJBVEkgVk9XRUwgU0lHTiBVVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQUMzO0dVSkFSQVRJIFZPV0VMIFNJR04gVk9DQUxJQyBSO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBQzQ7R1VKQVJBVEkgVk9XRUwgU0lHTiBWT0NBTElDIFJSO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBQzU7R1VKQVJBVEkgVk9XRUwgU0lHTiBDQU5EUkEgRTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQUM3O0dVSkFSQVRJIFZPV0VMIFNJR04gRTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQUM4O0dVSkFSQVRJIFZPV0VMIFNJR04gQUk7TW47MDtOU007Ozs7O047Ozs7OworMEFDOTtHVUpBUkFUSSBWT1dFTCBTSUdOIENBTkRSQSBPO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQUNCO0dVSkFSQVRJIFZPV0VMIFNJR04gTztNYzswO0w7Ozs7O047Ozs7OworMEFDQztHVUpBUkFUSSBWT1dFTCBTSUdOIEFVO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQUNEO0dVSkFSQVRJIFNJR04gVklSQU1BO01uOzk7TlNNOzs7OztOOzs7OzsKKzBBRDA7R1VKQVJBVEkgT007TG87MDtMOzs7OztOOzs7OzsKKzBBRTA7R1VKQVJBVEkgTEVUVEVSIFZPQ0FMSUMgUlI7TG87MDtMOzs7OztOOzs7OzsKKzBBRTY7R1VKQVJBVEkgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMEFFNztHVUpBUkFUSSBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzBBRTg7R1VKQVJBVEkgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswQUU5O0dVSkFSQVRJIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswQUVBO0dVSkFSQVRJIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzBBRUI7R1VKQVJBVEkgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMEFFQztHVUpBUkFUSSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzBBRUQ7R1VKQVJBVEkgRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzBBRUU7R1VKQVJBVEkgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzBBRUY7R1VKQVJBVEkgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMEIwMTtPUklZQSBTSUdOIENBTkRSQUJJTkRVO01uOzA7TlNNOzs7OztOOzs7OzsKKzBCMDI7T1JJWUEgU0lHTiBBTlVTVkFSQTtNYzswO0w7Ozs7O047Ozs7OworMEIwMztPUklZQSBTSUdOIFZJU0FSR0E7TWM7MDtMOzs7OztOOzs7OzsKKzBCMDU7T1JJWUEgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMDY7T1JJWUEgTEVUVEVSIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjA3O09SSVlBIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjA4O09SSVlBIExFVFRFUiBJSTtMbzswO0w7Ozs7O047Ozs7OworMEIwOTtPUklZQSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMEIwQTtPUklZQSBMRVRURVIgVVU7TG87MDtMOzs7OztOOzs7OzsKKzBCMEI7T1JJWUEgTEVUVEVSIFZPQ0FMSUMgUjtMbzswO0w7Ozs7O047Ozs7OworMEIwQztPUklZQSBMRVRURVIgVk9DQUxJQyBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjBGO09SSVlBIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjEwO09SSVlBIExFVFRFUiBBSTtMbzswO0w7Ozs7O047Ozs7OworMEIxMztPUklZQSBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMEIxNDtPUklZQSBMRVRURVIgQVU7TG87MDtMOzs7OztOOzs7OzsKKzBCMTU7T1JJWUEgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjE2O09SSVlBIExFVFRFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMTc7T1JJWUEgTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjE4O09SSVlBIExFVFRFUiBHSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMTk7T1JJWUEgTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMEIxQTtPUklZQSBMRVRURVIgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzBCMUI7T1JJWUEgTEVUVEVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMEIxQztPUklZQSBMRVRURVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzBCMUQ7T1JJWUEgTEVUVEVSIEpIQTtMbzswO0w7Ozs7O047Ozs7OworMEIxRTtPUklZQSBMRVRURVIgTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjFGO09SSVlBIExFVFRFUiBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMjA7T1JJWUEgTEVUVEVSIFRUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMjE7T1JJWUEgTEVUVEVSIEREQTtMbzswO0w7Ozs7O047Ozs7OworMEIyMjtPUklZQSBMRVRURVIgRERIQTtMbzswO0w7Ozs7O047Ozs7OworMEIyMztPUklZQSBMRVRURVIgTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjI0O09SSVlBIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMEIyNTtPUklZQSBMRVRURVIgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjI2O09SSVlBIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMEIyNztPUklZQSBMRVRURVIgREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjI4O09SSVlBIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMEIyQTtPUklZQSBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMkI7T1JJWUEgTEVUVEVSIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMEIyQztPUklZQSBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzBCMkQ7T1JJWUEgTEVUVEVSIEJIQTtMbzswO0w7Ozs7O047Ozs7OworMEIyRTtPUklZQSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzBCMkY7T1JJWUEgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjMwO09SSVlBIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMEIzMjtPUklZQSBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMzM7T1JJWUEgTEVUVEVSIExMQTtMbzswO0w7Ozs7O047Ozs7OworMEIzNjtPUklZQSBMRVRURVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjM3O09SSVlBIExFVFRFUiBTU0E7TG87MDtMOzs7OztOOzs7OzsKKzBCMzg7T1JJWUEgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjM5O09SSVlBIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMEIzQztPUklZQSBTSUdOIE5VS1RBO01uOzc7TlNNOzs7OztOOzs7OzsKKzBCM0Q7T1JJWUEgU0lHTiBBVkFHUkFIQTtMbzswO0w7Ozs7O047Ozs7OworMEIzRTtPUklZQSBWT1dFTCBTSUdOIEFBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQjNGO09SSVlBIFZPV0VMIFNJR04gSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQjQwO09SSVlBIFZPV0VMIFNJR04gSUk7TWM7MDtMOzs7OztOOzs7OzsKKzBCNDE7T1JJWUEgVk9XRUwgU0lHTiBVO01uOzA7TlNNOzs7OztOOzs7OzsKKzBCNDI7T1JJWUEgVk9XRUwgU0lHTiBVVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQjQzO09SSVlBIFZPV0VMIFNJR04gVk9DQUxJQyBSO01uOzA7TlNNOzs7OztOOzs7OzsKKzBCNDc7T1JJWUEgVk9XRUwgU0lHTiBFO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQjQ4O09SSVlBIFZPV0VMIFNJR04gQUk7TWM7MDtMOzBCNDcgMEI1Njs7OztOOzs7OzsKKzBCNEI7T1JJWUEgVk9XRUwgU0lHTiBPO01jOzA7TDswQjQ3IDBCM0U7Ozs7Tjs7Ozs7CiswQjRDO09SSVlBIFZPV0VMIFNJR04gQVU7TWM7MDtMOzBCNDcgMEI1Nzs7OztOOzs7OzsKKzBCNEQ7T1JJWUEgU0lHTiBWSVJBTUE7TW47OTtOU007Ozs7O047Ozs7OworMEI1NjtPUklZQSBBSSBMRU5HVEggTUFSSztNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQjU3O09SSVlBIEFVIExFTkdUSCBNQVJLO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQjVDO09SSVlBIExFVFRFUiBSUkE7TG87MDtMOzBCMjEgMEIzQzs7OztOOzs7OzsKKzBCNUQ7T1JJWUEgTEVUVEVSIFJIQTtMbzswO0w7MEIyMiAwQjNDOzs7O047Ozs7OworMEI1RjtPUklZQSBMRVRURVIgWVlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjYwO09SSVlBIExFVFRFUiBWT0NBTElDIFJSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjYxO09SSVlBIExFVFRFUiBWT0NBTElDIExMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjY2O09SSVlBIERJR0lUIFpFUk87TmQ7MDtMOzswOzA7MDtOOzs7OzsKKzBCNjc7T1JJWUEgRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CiswQjY4O09SSVlBIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMEI2OTtPUklZQSBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMEI2QTtPUklZQSBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CiswQjZCO09SSVlBIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzBCNkM7T1JJWUEgRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CiswQjZEO09SSVlBIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CiswQjZFO09SSVlBIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswQjZGO09SSVlBIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzBCNzA7T1JJWUEgSVNTSEFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CiswQjgyO1RBTUlMIFNJR04gQU5VU1ZBUkE7TW47MDtOU007Ozs7O047Ozs7OworMEI4MztUQU1JTCBTSUdOIFZJU0FSR0E7TWM7MDtMOzs7OztOOzs7OzsKKzBCODU7VEFNSUwgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzBCODY7VEFNSUwgTEVUVEVSIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjg3O1RBTUlMIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjg4O1RBTUlMIExFVFRFUiBJSTtMbzswO0w7Ozs7O047Ozs7OworMEI4OTtUQU1JTCBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMEI4QTtUQU1JTCBMRVRURVIgVVU7TG87MDtMOzs7OztOOzs7OzsKKzBCOEU7VEFNSUwgTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzBCOEY7VEFNSUwgTEVUVEVSIEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjkwO1RBTUlMIExFVFRFUiBBSTtMbzswO0w7Ozs7O047Ozs7OworMEI5MjtUQU1JTCBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMEI5MztUQU1JTCBMRVRURVIgT087TG87MDtMOzs7OztOOzs7OzsKKzBCOTQ7VEFNSUwgTEVUVEVSIEFVO0xvOzA7TDswQjkyIDBCRDc7Ozs7Tjs7Ozs7CiswQjk1O1RBTUlMIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMEI5OTtUQU1JTCBMRVRURVIgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjlBO1RBTUlMIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMEI5QztUQU1JTCBMRVRURVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzBCOUU7VEFNSUwgTEVUVEVSIE5ZQTtMbzswO0w7Ozs7O047Ozs7OworMEI5RjtUQU1JTCBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkEzO1RBTUlMIExFVFRFUiBOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBCQTQ7VEFNSUwgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkE4O1RBTUlMIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMEJBOTtUQU1JTCBMRVRURVIgTk5OQTtMbzswO0w7Ozs7O047Ozs7OworMEJBQTtUQU1JTCBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzBCQUU7VEFNSUwgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkFGO1RBTUlMIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMEJCMDtUQU1JTCBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzBCQjE7VEFNSUwgTEVUVEVSIFJSQTtMbzswO0w7Ozs7O047Ozs7OworMEJCMjtUQU1JTCBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzBCQjM7VEFNSUwgTEVUVEVSIExMQTtMbzswO0w7Ozs7O047Ozs7OworMEJCNDtUQU1JTCBMRVRURVIgTExMQTtMbzswO0w7Ozs7O047Ozs7OworMEJCNTtUQU1JTCBMRVRURVIgVkE7TG87MDtMOzs7OztOOzs7OzsKKzBCQjc7VEFNSUwgTEVUVEVSIFNTQTtMbzswO0w7Ozs7O047Ozs7OworMEJCODtUQU1JTCBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzBCQjk7VEFNSUwgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkJFO1RBTUlMIFZPV0VMIFNJR04gQUE7TWM7MDtMOzs7OztOOzs7OzsKKzBCQkY7VEFNSUwgVk9XRUwgU0lHTiBJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQkMwO1RBTUlMIFZPV0VMIFNJR04gSUk7TW47MDtOU007Ozs7O047Ozs7OworMEJDMTtUQU1JTCBWT1dFTCBTSUdOIFU7TWM7MDtMOzs7OztOOzs7OzsKKzBCQzI7VEFNSUwgVk9XRUwgU0lHTiBVVTtNYzswO0w7Ozs7O047Ozs7OworMEJDNjtUQU1JTCBWT1dFTCBTSUdOIEU7TWM7MDtMOzs7OztOOzs7OzsKKzBCQzc7VEFNSUwgVk9XRUwgU0lHTiBFRTtNYzswO0w7Ozs7O047Ozs7OworMEJDODtUQU1JTCBWT1dFTCBTSUdOIEFJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQkNBO1RBTUlMIFZPV0VMIFNJR04gTztNYzswO0w7MEJDNiAwQkJFOzs7O047Ozs7OworMEJDQjtUQU1JTCBWT1dFTCBTSUdOIE9PO01jOzA7TDswQkM3IDBCQkU7Ozs7Tjs7Ozs7CiswQkNDO1RBTUlMIFZPV0VMIFNJR04gQVU7TWM7MDtMOzBCQzYgMEJENzs7OztOOzs7OzsKKzBCQ0Q7VEFNSUwgU0lHTiBWSVJBTUE7TW47OTtOU007Ozs7O047Ozs7OworMEJENztUQU1JTCBBVSBMRU5HVEggTUFSSztNYzswO0w7Ozs7O047Ozs7OworMEJFNztUQU1JTCBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzBCRTg7VEFNSUwgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswQkU5O1RBTUlMIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswQkVBO1RBTUlMIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzBCRUI7VEFNSUwgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMEJFQztUQU1JTCBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzBCRUQ7VEFNSUwgRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzBCRUU7VEFNSUwgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzBCRUY7VEFNSUwgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMEJGMDtUQU1JTCBOVU1CRVIgVEVOO05vOzA7TDs7OzsxMDtOOzs7OzsKKzBCRjE7VEFNSUwgTlVNQkVSIE9ORSBIVU5EUkVEO05vOzA7TDs7OzsxMDA7Tjs7Ozs7CiswQkYyO1RBTUlMIE5VTUJFUiBPTkUgVEhPVVNBTkQ7Tm87MDtMOzs7OzEwMDA7Tjs7Ozs7CiswQzAxO1RFTFVHVSBTSUdOIENBTkRSQUJJTkRVO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzAyO1RFTFVHVSBTSUdOIEFOVVNWQVJBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzAzO1RFTFVHVSBTSUdOIFZJU0FSR0E7TWM7MDtMOzs7OztOOzs7OzsKKzBDMDU7VEVMVUdVIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzA2O1RFTFVHVSBMRVRURVIgQUE7TG87MDtMOzs7OztOOzs7OzsKKzBDMDc7VEVMVUdVIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzA4O1RFTFVHVSBMRVRURVIgSUk7TG87MDtMOzs7OztOOzs7OzsKKzBDMDk7VEVMVUdVIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzBBO1RFTFVHVSBMRVRURVIgVVU7TG87MDtMOzs7OztOOzs7OzsKKzBDMEI7VEVMVUdVIExFVFRFUiBWT0NBTElDIFI7TG87MDtMOzs7OztOOzs7OzsKKzBDMEM7VEVMVUdVIExFVFRFUiBWT0NBTElDIEw7TG87MDtMOzs7OztOOzs7OzsKKzBDMEU7VEVMVUdVIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzBGO1RFTFVHVSBMRVRURVIgRUU7TG87MDtMOzs7OztOOzs7OzsKKzBDMTA7VEVMVUdVIExFVFRFUiBBSTtMbzswO0w7Ozs7O047Ozs7OworMEMxMjtURUxVR1UgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzBDMTM7VEVMVUdVIExFVFRFUiBPTztMbzswO0w7Ozs7O047Ozs7OworMEMxNDtURUxVR1UgTEVUVEVSIEFVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzE1O1RFTFVHVSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzBDMTY7VEVMVUdVIExFVFRFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMTc7VEVMVUdVIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMEMxODtURUxVR1UgTEVUVEVSIEdIQTtMbzswO0w7Ozs7O047Ozs7OworMEMxOTtURUxVR1UgTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMEMxQTtURUxVR1UgTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzFCO1RFTFVHVSBMRVRURVIgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzFDO1RFTFVHVSBMRVRURVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzBDMUQ7VEVMVUdVIExFVFRFUiBKSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMUU7VEVMVUdVIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzBDMUY7VEVMVUdVIExFVFRFUiBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMjA7VEVMVUdVIExFVFRFUiBUVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzIxO1RFTFVHVSBMRVRURVIgRERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzIyO1RFTFVHVSBMRVRURVIgRERIQTtMbzswO0w7Ozs7O047Ozs7OworMEMyMztURUxVR1UgTEVUVEVSIE5OQTtMbzswO0w7Ozs7O047Ozs7OworMEMyNDtURUxVR1UgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzI1O1RFTFVHVSBMRVRURVIgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzI2O1RFTFVHVSBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzBDMjc7VEVMVUdVIExFVFRFUiBESEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMjg7VEVMVUdVIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMEMyQTtURUxVR1UgTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzJCO1RFTFVHVSBMRVRURVIgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzJDO1RFTFVHVSBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzBDMkQ7VEVMVUdVIExFVFRFUiBCSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMkU7VEVMVUdVIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMEMyRjtURUxVR1UgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzMwO1RFTFVHVSBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzBDMzE7VEVMVUdVIExFVFRFUiBSUkE7TG87MDtMOzs7OztOOzs7OzsKKzBDMzI7VEVMVUdVIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMEMzMztURUxVR1UgTEVUVEVSIExMQTtMbzswO0w7Ozs7O047Ozs7OworMEMzNTtURUxVR1UgTEVUVEVSIFZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzM2O1RFTFVHVSBMRVRURVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzM3O1RFTFVHVSBMRVRURVIgU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzM4O1RFTFVHVSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzBDMzk7VEVMVUdVIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMEMzRTtURUxVR1UgVk9XRUwgU0lHTiBBQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQzNGO1RFTFVHVSBWT1dFTCBTSUdOIEk7TW47MDtOU007Ozs7O047Ozs7OworMEM0MDtURUxVR1UgVk9XRUwgU0lHTiBJSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQzQxO1RFTFVHVSBWT1dFTCBTSUdOIFU7TWM7MDtMOzs7OztOOzs7OzsKKzBDNDI7VEVMVUdVIFZPV0VMIFNJR04gVVU7TWM7MDtMOzs7OztOOzs7OzsKKzBDNDM7VEVMVUdVIFZPV0VMIFNJR04gVk9DQUxJQyBSO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzQ0O1RFTFVHVSBWT1dFTCBTSUdOIFZPQ0FMSUMgUlI7TWM7MDtMOzs7OztOOzs7OzsKKzBDNDY7VEVMVUdVIFZPV0VMIFNJR04gRTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQzQ3O1RFTFVHVSBWT1dFTCBTSUdOIEVFO01uOzA7TlNNOzs7OztOOzs7OzsKKzBDNDg7VEVMVUdVIFZPV0VMIFNJR04gQUk7TW47MDtOU007MEM0NiAwQzU2Ozs7O047Ozs7OworMEM0QTtURUxVR1UgVk9XRUwgU0lHTiBPO01uOzA7TlNNOzs7OztOOzs7OzsKKzBDNEI7VEVMVUdVIFZPV0VMIFNJR04gT087TW47MDtOU007Ozs7O047Ozs7OworMEM0QztURUxVR1UgVk9XRUwgU0lHTiBBVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQzREO1RFTFVHVSBTSUdOIFZJUkFNQTtNbjs5O05TTTs7Ozs7Tjs7Ozs7CiswQzU1O1RFTFVHVSBMRU5HVEggTUFSSztNbjs4NDtOU007Ozs7O047Ozs7OworMEM1NjtURUxVR1UgQUkgTEVOR1RIIE1BUks7TW47OTE7TlNNOzs7OztOOzs7OzsKKzBDNjA7VEVMVUdVIExFVFRFUiBWT0NBTElDIFJSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzYxO1RFTFVHVSBMRVRURVIgVk9DQUxJQyBMTDtMbzswO0w7Ozs7O047Ozs7OworMEM2NjtURUxVR1UgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMEM2NztURUxVR1UgRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CiswQzY4O1RFTFVHVSBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzBDNjk7VEVMVUdVIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswQzZBO1RFTFVHVSBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CiswQzZCO1RFTFVHVSBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CiswQzZDO1RFTFVHVSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzBDNkQ7VEVMVUdVIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CiswQzZFO1RFTFVHVSBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMEM2RjtURUxVR1UgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMEM4MjtLQU5OQURBIFNJR04gQU5VU1ZBUkE7TWM7MDtMOzs7OztOOzs7OzsKKzBDODM7S0FOTkFEQSBTSUdOIFZJU0FSR0E7TWM7MDtMOzs7OztOOzs7OzsKKzBDODU7S0FOTkFEQSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMEM4NjtLQU5OQURBIExFVFRFUiBBQTtMbzswO0w7Ozs7O047Ozs7OworMEM4NztLQU5OQURBIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzg4O0tBTk5BREEgTEVUVEVSIElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzg5O0tBTk5BREEgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzBDOEE7S0FOTkFEQSBMRVRURVIgVVU7TG87MDtMOzs7OztOOzs7OzsKKzBDOEI7S0FOTkFEQSBMRVRURVIgVk9DQUxJQyBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzhDO0tBTk5BREEgTEVUVEVSIFZPQ0FMSUMgTDtMbzswO0w7Ozs7O047Ozs7OworMEM4RTtLQU5OQURBIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzhGO0tBTk5BREEgTEVUVEVSIEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzkwO0tBTk5BREEgTEVUVEVSIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzkyO0tBTk5BREEgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzBDOTM7S0FOTkFEQSBMRVRURVIgT087TG87MDtMOzs7OztOOzs7OzsKKzBDOTQ7S0FOTkFEQSBMRVRURVIgQVU7TG87MDtMOzs7OztOOzs7OzsKKzBDOTU7S0FOTkFEQSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzBDOTY7S0FOTkFEQSBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzk3O0tBTk5BREEgTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzk4O0tBTk5BREEgTEVUVEVSIEdIQTtMbzswO0w7Ozs7O047Ozs7OworMEM5OTtLQU5OQURBIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzBDOUE7S0FOTkFEQSBMRVRURVIgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzBDOUI7S0FOTkFEQSBMRVRURVIgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzlDO0tBTk5BREEgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzlEO0tBTk5BREEgTEVUVEVSIEpIQTtMbzswO0w7Ozs7O047Ozs7OworMEM5RTtLQU5OQURBIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzBDOUY7S0FOTkFEQSBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0EwO0tBTk5BREEgTEVUVEVSIFRUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQTE7S0FOTkFEQSBMRVRURVIgRERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0EyO0tBTk5BREEgTEVUVEVSIERESEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQTM7S0FOTkFEQSBMRVRURVIgTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0E0O0tBTk5BREEgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0E1O0tBTk5BREEgTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMENBNjtLQU5OQURBIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMENBNztLQU5OQURBIExFVFRFUiBESEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQTg7S0FOTkFEQSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzBDQUE7S0FOTkFEQSBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQUI7S0FOTkFEQSBMRVRURVIgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0FDO0tBTk5BREEgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0FEO0tBTk5BREEgTEVUVEVSIEJIQTtMbzswO0w7Ozs7O047Ozs7OworMENBRTtLQU5OQURBIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMENBRjtLQU5OQURBIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMENCMDtLQU5OQURBIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMENCMTtLQU5OQURBIExFVFRFUiBSUkE7TG87MDtMOzs7OztOOzs7OzsKKzBDQjI7S0FOTkFEQSBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQjM7S0FOTkFEQSBMRVRURVIgTExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0I1O0tBTk5BREEgTEVUVEVSIFZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0I2O0tBTk5BREEgTEVUVEVSIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMENCNztLQU5OQURBIExFVFRFUiBTU0E7TG87MDtMOzs7OztOOzs7OzsKKzBDQjg7S0FOTkFEQSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzBDQjk7S0FOTkFEQSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQkU7S0FOTkFEQSBWT1dFTCBTSUdOIEFBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQ0JGO0tBTk5BREEgVk9XRUwgU0lHTiBJO01uOzA7TlNNOzs7OztOOzs7OzsKKzBDQzA7S0FOTkFEQSBWT1dFTCBTSUdOIElJO01jOzA7TDswQ0JGIDBDRDU7Ozs7Tjs7Ozs7CiswQ0MxO0tBTk5BREEgVk9XRUwgU0lHTiBVO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQ0MyO0tBTk5BREEgVk9XRUwgU0lHTiBVVTtNYzswO0w7Ozs7O047Ozs7OworMENDMztLQU5OQURBIFZPV0VMIFNJR04gVk9DQUxJQyBSO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQ0M0O0tBTk5BREEgVk9XRUwgU0lHTiBWT0NBTElDIFJSO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQ0M2O0tBTk5BREEgVk9XRUwgU0lHTiBFO01uOzA7TlNNOzs7OztOOzs7OzsKKzBDQzc7S0FOTkFEQSBWT1dFTCBTSUdOIEVFO01jOzA7TDswQ0M2IDBDRDU7Ozs7Tjs7Ozs7CiswQ0M4O0tBTk5BREEgVk9XRUwgU0lHTiBBSTtNYzswO0w7MENDNiAwQ0Q2Ozs7O047Ozs7OworMENDQTtLQU5OQURBIFZPV0VMIFNJR04gTztNYzswO0w7MENDNiAwQ0MyOzs7O047Ozs7OworMENDQjtLQU5OQURBIFZPV0VMIFNJR04gT087TWM7MDtMOzBDQ0EgMENENTs7OztOOzs7OzsKKzBDQ0M7S0FOTkFEQSBWT1dFTCBTSUdOIEFVO01uOzA7TlNNOzs7OztOOzs7OzsKKzBDQ0Q7S0FOTkFEQSBTSUdOIFZJUkFNQTtNbjs5O05TTTs7Ozs7Tjs7Ozs7CiswQ0Q1O0tBTk5BREEgTEVOR1RIIE1BUks7TWM7MDtMOzs7OztOOzs7OzsKKzBDRDY7S0FOTkFEQSBBSSBMRU5HVEggTUFSSztNYzswO0w7Ozs7O047Ozs7OworMENERTtLQU5OQURBIExFVFRFUiBGQTtMbzswO0w7Ozs7O047Ozs7OworMENFMDtLQU5OQURBIExFVFRFUiBWT0NBTElDIFJSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0UxO0tBTk5BREEgTEVUVEVSIFZPQ0FMSUMgTEw7TG87MDtMOzs7OztOOzs7OzsKKzBDRTY7S0FOTkFEQSBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CiswQ0U3O0tBTk5BREEgRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CiswQ0U4O0tBTk5BREEgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswQ0U5O0tBTk5BREEgRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzBDRUE7S0FOTkFEQSBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CiswQ0VCO0tBTk5BREEgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMENFQztLQU5OQURBIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMENFRDtLQU5OQURBIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CiswQ0VFO0tBTk5BREEgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzBDRUY7S0FOTkFEQSBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CiswRDAyO01BTEFZQUxBTSBTSUdOIEFOVVNWQVJBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswRDAzO01BTEFZQUxBTSBTSUdOIFZJU0FSR0E7TWM7MDtMOzs7OztOOzs7OzsKKzBEMDU7TUFMQVlBTEFNIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDA2O01BTEFZQUxBTSBMRVRURVIgQUE7TG87MDtMOzs7OztOOzs7OzsKKzBEMDc7TUFMQVlBTEFNIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDA4O01BTEFZQUxBTSBMRVRURVIgSUk7TG87MDtMOzs7OztOOzs7OzsKKzBEMDk7TUFMQVlBTEFNIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDBBO01BTEFZQUxBTSBMRVRURVIgVVU7TG87MDtMOzs7OztOOzs7OzsKKzBEMEI7TUFMQVlBTEFNIExFVFRFUiBWT0NBTElDIFI7TG87MDtMOzs7OztOOzs7OzsKKzBEMEM7TUFMQVlBTEFNIExFVFRFUiBWT0NBTElDIEw7TG87MDtMOzs7OztOOzs7OzsKKzBEMEU7TUFMQVlBTEFNIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDBGO01BTEFZQUxBTSBMRVRURVIgRUU7TG87MDtMOzs7OztOOzs7OzsKKzBEMTA7TUFMQVlBTEFNIExFVFRFUiBBSTtMbzswO0w7Ozs7O047Ozs7OworMEQxMjtNQUxBWUFMQU0gTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzBEMTM7TUFMQVlBTEFNIExFVFRFUiBPTztMbzswO0w7Ozs7O047Ozs7OworMEQxNDtNQUxBWUFMQU0gTEVUVEVSIEFVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDE1O01BTEFZQUxBTSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzBEMTY7TUFMQVlBTEFNIExFVFRFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMTc7TUFMQVlBTEFNIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMEQxODtNQUxBWUFMQU0gTEVUVEVSIEdIQTtMbzswO0w7Ozs7O047Ozs7OworMEQxOTtNQUxBWUFMQU0gTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMEQxQTtNQUxBWUFMQU0gTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDFCO01BTEFZQUxBTSBMRVRURVIgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDFDO01BTEFZQUxBTSBMRVRURVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzBEMUQ7TUFMQVlBTEFNIExFVFRFUiBKSEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMUU7TUFMQVlBTEFNIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzBEMUY7TUFMQVlBTEFNIExFVFRFUiBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMjA7TUFMQVlBTEFNIExFVFRFUiBUVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDIxO01BTEFZQUxBTSBMRVRURVIgRERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDIyO01BTEFZQUxBTSBMRVRURVIgRERIQTtMbzswO0w7Ozs7O047Ozs7OworMEQyMztNQUxBWUFMQU0gTEVUVEVSIE5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQyNDtNQUxBWUFMQU0gTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDI1O01BTEFZQUxBTSBMRVRURVIgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDI2O01BTEFZQUxBTSBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzBEMjc7TUFMQVlBTEFNIExFVFRFUiBESEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMjg7TUFMQVlBTEFNIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMEQyQTtNQUxBWUFMQU0gTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDJCO01BTEFZQUxBTSBMRVRURVIgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDJDO01BTEFZQUxBTSBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzBEMkQ7TUFMQVlBTEFNIExFVFRFUiBCSEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMkU7TUFMQVlBTEFNIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMEQyRjtNQUxBWUFMQU0gTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDMwO01BTEFZQUxBTSBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzBEMzE7TUFMQVlBTEFNIExFVFRFUiBSUkE7TG87MDtMOzs7OztOOzs7OzsKKzBEMzI7TUFMQVlBTEFNIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMEQzMztNQUxBWUFMQU0gTEVUVEVSIExMQTtMbzswO0w7Ozs7O047Ozs7OworMEQzNDtNQUxBWUFMQU0gTEVUVEVSIExMTEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMzU7TUFMQVlBTEFNIExFVFRFUiBWQTtMbzswO0w7Ozs7O047Ozs7OworMEQzNjtNQUxBWUFMQU0gTEVUVEVSIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMEQzNztNQUxBWUFMQU0gTEVUVEVSIFNTQTtMbzswO0w7Ozs7O047Ozs7OworMEQzODtNQUxBWUFMQU0gTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDM5O01BTEFZQUxBTSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzBEM0U7TUFMQVlBTEFNIFZPV0VMIFNJR04gQUE7TWM7MDtMOzs7OztOOzs7OzsKKzBEM0Y7TUFMQVlBTEFNIFZPV0VMIFNJR04gSTtNYzswO0w7Ozs7O047Ozs7OworMEQ0MDtNQUxBWUFMQU0gVk9XRUwgU0lHTiBJSTtNYzswO0w7Ozs7O047Ozs7OworMEQ0MTtNQUxBWUFMQU0gVk9XRUwgU0lHTiBVO01uOzA7TlNNOzs7OztOOzs7OzsKKzBENDI7TUFMQVlBTEFNIFZPV0VMIFNJR04gVVU7TW47MDtOU007Ozs7O047Ozs7OworMEQ0MztNQUxBWUFMQU0gVk9XRUwgU0lHTiBWT0NBTElDIFI7TW47MDtOU007Ozs7O047Ozs7OworMEQ0NjtNQUxBWUFMQU0gVk9XRUwgU0lHTiBFO01jOzA7TDs7Ozs7Tjs7Ozs7CiswRDQ3O01BTEFZQUxBTSBWT1dFTCBTSUdOIEVFO01jOzA7TDs7Ozs7Tjs7Ozs7CiswRDQ4O01BTEFZQUxBTSBWT1dFTCBTSUdOIEFJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswRDRBO01BTEFZQUxBTSBWT1dFTCBTSUdOIE87TWM7MDtMOzBENDYgMEQzRTs7OztOOzs7OzsKKzBENEI7TUFMQVlBTEFNIFZPV0VMIFNJR04gT087TWM7MDtMOzBENDcgMEQzRTs7OztOOzs7OzsKKzBENEM7TUFMQVlBTEFNIFZPV0VMIFNJR04gQVU7TWM7MDtMOzBENDYgMEQ1Nzs7OztOOzs7OzsKKzBENEQ7TUFMQVlBTEFNIFNJR04gVklSQU1BO01uOzk7TlNNOzs7OztOOzs7OzsKKzBENTc7TUFMQVlBTEFNIEFVIExFTkdUSCBNQVJLO01jOzA7TDs7Ozs7Tjs7Ozs7CiswRDYwO01BTEFZQUxBTSBMRVRURVIgVk9DQUxJQyBSUjtMbzswO0w7Ozs7O047Ozs7OworMEQ2MTtNQUxBWUFMQU0gTEVUVEVSIFZPQ0FMSUMgTEw7TG87MDtMOzs7OztOOzs7OzsKKzBENjY7TUFMQVlBTEFNIERJR0lUIFpFUk87TmQ7MDtMOzswOzA7MDtOOzs7OzsKKzBENjc7TUFMQVlBTEFNIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMEQ2ODtNQUxBWUFMQU0gRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswRDY5O01BTEFZQUxBTSBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMEQ2QTtNQUxBWUFMQU0gRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMEQ2QjtNQUxBWUFMQU0gRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMEQ2QztNQUxBWUFMQU0gRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CiswRDZEO01BTEFZQUxBTSBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMEQ2RTtNQUxBWUFMQU0gRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzBENkY7TUFMQVlBTEFNIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzBEODI7U0lOSEFMQSBTSUdOIEFOVVNWQVJBWUE7TWM7MDtMOzs7OztOOzs7OzsKKzBEODM7U0lOSEFMQSBTSUdOIFZJU0FSR0FZQTtNYzswO0w7Ozs7O047Ozs7OworMEQ4NTtTSU5IQUxBIExFVFRFUiBBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEODY7U0lOSEFMQSBMRVRURVIgQUFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ4NztTSU5IQUxBIExFVFRFUiBBRVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDg4O1NJTkhBTEEgTEVUVEVSIEFFRVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDg5O1NJTkhBTEEgTEVUVEVSIElZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ4QTtTSU5IQUxBIExFVFRFUiBJSVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDhCO1NJTkhBTEEgTEVUVEVSIFVZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ4QztTSU5IQUxBIExFVFRFUiBVVVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDhEO1NJTkhBTEEgTEVUVEVSIElSVVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDhFO1NJTkhBTEEgTEVUVEVSIElSVVVZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ4RjtTSU5IQUxBIExFVFRFUiBJTFVZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ5MDtTSU5IQUxBIExFVFRFUiBJTFVVWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOTE7U0lOSEFMQSBMRVRURVIgRVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDkyO1NJTkhBTEEgTEVUVEVSIEVFWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOTM7U0lOSEFMQSBMRVRURVIgQUlZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ5NDtTSU5IQUxBIExFVFRFUiBPWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOTU7U0lOSEFMQSBMRVRURVIgT09ZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ5NjtTSU5IQUxBIExFVFRFUiBBVVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDlBO1NJTkhBTEEgTEVUVEVSIEFMUEFQUkFBTkEgS0FZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ5QjtTSU5IQUxBIExFVFRFUiBNQUhBQVBSQUFOQSBLQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDlDO1NJTkhBTEEgTEVUVEVSIEFMUEFQUkFBTkEgR0FZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ5RDtTSU5IQUxBIExFVFRFUiBNQUhBQVBSQUFOQSBHQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDlFO1NJTkhBTEEgTEVUVEVSIEtBTlRBSkEgTkFBU0lLWUFZQTtMbzswO0w7Ozs7O047Ozs7OworMEQ5RjtTSU5IQUxBIExFVFRFUiBTQU5ZQUtBIEdBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQTA7U0lOSEFMQSBMRVRURVIgQUxQQVBSQUFOQSBDQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREExO1NJTkhBTEEgTEVUVEVSIE1BSEFBUFJBQU5BIENBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQTI7U0lOSEFMQSBMRVRURVIgQUxQQVBSQUFOQSBKQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREEzO1NJTkhBTEEgTEVUVEVSIE1BSEFBUFJBQU5BIEpBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQTQ7U0lOSEFMQSBMRVRURVIgVEFBTFVKQSBOQUFTSUtZQVlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREE1O1NJTkhBTEEgTEVUVEVSIFRBQUxVSkEgU0FOWU9PR0EgTkFBS1NJS1lBWUE7TG87MDtMOzs7OztOOzs7OzsKKzBEQTY7U0lOSEFMQSBMRVRURVIgU0FOWUFLQSBKQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREE3O1NJTkhBTEEgTEVUVEVSIEFMUEFQUkFBTkEgVFRBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQTg7U0lOSEFMQSBMRVRURVIgTUFIQUFQUkFBTkEgVFRBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQTk7U0lOSEFMQSBMRVRURVIgQUxQQVBSQUFOQSBEREFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERBQTtTSU5IQUxBIExFVFRFUiBNQUhBQVBSQUFOQSBEREFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERBQjtTSU5IQUxBIExFVFRFUiBNVVVSREhBSkEgTkFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERBQztTSU5IQUxBIExFVFRFUiBTQU5ZQUtBIEREQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREFEO1NJTkhBTEEgTEVUVEVSIEFMUEFQUkFBTkEgVEFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERBRTtTSU5IQUxBIExFVFRFUiBNQUhBQVBSQUFOQSBUQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREFGO1NJTkhBTEEgTEVUVEVSIEFMUEFQUkFBTkEgREFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERCMDtTSU5IQUxBIExFVFRFUiBNQUhBQVBSQUFOQSBEQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREIxO1NJTkhBTEEgTEVUVEVSIERBTlRBSkEgTkFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERCMztTSU5IQUxBIExFVFRFUiBTQU5ZQUtBIERBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQjQ7U0lOSEFMQSBMRVRURVIgQUxQQVBSQUFOQSBQQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREI1O1NJTkhBTEEgTEVUVEVSIE1BSEFBUFJBQU5BIFBBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQjY7U0lOSEFMQSBMRVRURVIgQUxQQVBSQUFOQSBCQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREI3O1NJTkhBTEEgTEVUVEVSIE1BSEFBUFJBQU5BIEJBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQjg7U0lOSEFMQSBMRVRURVIgTUFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERCOTtTSU5IQUxBIExFVFRFUiBBTUJBIEJBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQkE7U0lOSEFMQSBMRVRURVIgWUFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERCQjtTSU5IQUxBIExFVFRFUiBSQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREJEO1NJTkhBTEEgTEVUVEVSIERBTlRBSkEgTEFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERDMDtTSU5IQUxBIExFVFRFUiBWQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREMxO1NJTkhBTEEgTEVUVEVSIFRBQUxVSkEgU0FZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERDMjtTSU5IQUxBIExFVFRFUiBNVVVSREhBSkEgU0FZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERDMztTSU5IQUxBIExFVFRFUiBEQU5UQUpBIFNBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQzQ7U0lOSEFMQSBMRVRURVIgSEFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERDNTtTSU5IQUxBIExFVFRFUiBNVVVSREhBSkEgTEFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERDNjtTSU5IQUxBIExFVFRFUiBGQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRENBO1NJTkhBTEEgU0lHTiBBTC1MQUtVTkE7TW47OTtOU007Ozs7O047Ozs7OworMERDRjtTSU5IQUxBIFZPV0VMIFNJR04gQUVMQS1QSUxMQTtNYzswO0w7Ozs7O047Ozs7OworMEREMDtTSU5IQUxBIFZPV0VMIFNJR04gS0VUVEkgQUVEQS1QSUxMQTtNYzswO0w7Ozs7O047Ozs7OworMEREMTtTSU5IQUxBIFZPV0VMIFNJR04gRElHQSBBRURBLVBJTExBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswREQyO1NJTkhBTEEgVk9XRUwgU0lHTiBLRVRUSSBJUy1QSUxMQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswREQzO1NJTkhBTEEgVk9XRUwgU0lHTiBESUdBIElTLVBJTExBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBERDQ7U0lOSEFMQSBWT1dFTCBTSUdOIEtFVFRJIFBBQS1QSUxMQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswREQ2O1NJTkhBTEEgVk9XRUwgU0lHTiBESUdBIFBBQS1QSUxMQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswREQ4O1NJTkhBTEEgVk9XRUwgU0lHTiBHQUVUVEEtUElMTEE7TWM7MDtMOzs7OztOOzs7OzsKKzBERDk7U0lOSEFMQSBWT1dFTCBTSUdOIEtPTUJVVkE7TWM7MDtMOzs7OztOOzs7OzsKKzBEREE7U0lOSEFMQSBWT1dFTCBTSUdOIERJR0EgS09NQlVWQTtNYzswO0w7MEREOSAwRENBOzs7O047Ozs7OworMEREQjtTSU5IQUxBIFZPV0VMIFNJR04gS09NQlUgREVLQTtNYzswO0w7Ozs7O047Ozs7OworMEREQztTSU5IQUxBIFZPV0VMIFNJR04gS09NQlVWQSBIQUEgQUVMQS1QSUxMQTtNYzswO0w7MEREOSAwRENGOzs7O047Ozs7OworMERERDtTSU5IQUxBIFZPV0VMIFNJR04gS09NQlVWQSBIQUEgRElHQSBBRUxBLVBJTExBO01jOzA7TDswRERDIDBEQ0E7Ozs7Tjs7Ozs7CiswRERFO1NJTkhBTEEgVk9XRUwgU0lHTiBLT01CVVZBIEhBQSBHQVlBTlVLSVRUQTtNYzswO0w7MEREOSAwRERGOzs7O047Ozs7OworMERERjtTSU5IQUxBIFZPV0VMIFNJR04gR0FZQU5VS0lUVEE7TWM7MDtMOzs7OztOOzs7OzsKKzBERjI7U0lOSEFMQSBWT1dFTCBTSUdOIERJR0EgR0FFVFRBLVBJTExBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswREYzO1NJTkhBTEEgVk9XRUwgU0lHTiBESUdBIEdBWUFOVUtJVFRBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswREY0O1NJTkhBTEEgUFVOQ1RVQVRJT04gS1VORERBTElZQTtQbzswO0w7Ozs7O047Ozs7OworMEUwMTtUSEFJIENIQVJBQ1RFUiBLTyBLQUk7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIEtPIEtBSTs7OzsKKzBFMDI7VEhBSSBDSEFSQUNURVIgS0hPIEtIQUk7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIEtITyBLSEFJOzs7OworMEUwMztUSEFJIENIQVJBQ1RFUiBLSE8gS0hVQVQ7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIEtITyBLSFVBVDs7OzsKKzBFMDQ7VEhBSSBDSEFSQUNURVIgS0hPIEtIV0FJO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBLSE8gS0hXQUk7Ozs7CiswRTA1O1RIQUkgQ0hBUkFDVEVSIEtITyBLSE9OO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBLSE8gS0hPTjs7OzsKKzBFMDY7VEhBSSBDSEFSQUNURVIgS0hPIFJBS0hBTkc7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIEtITyBSQUtIQU5HOzs7OworMEUwNztUSEFJIENIQVJBQ1RFUiBOR08gTkdVO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBOR08gTkdVOzs7OworMEUwODtUSEFJIENIQVJBQ1RFUiBDSE8gQ0hBTjtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgQ0hPIENIQU47Ozs7CiswRTA5O1RIQUkgQ0hBUkFDVEVSIENITyBDSElORztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgQ0hPIENISU5HOzs7OworMEUwQTtUSEFJIENIQVJBQ1RFUiBDSE8gQ0hBTkc7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIENITyBDSEFORzs7OzsKKzBFMEI7VEhBSSBDSEFSQUNURVIgU08gU087TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFNPIFNPOzs7OworMEUwQztUSEFJIENIQVJBQ1RFUiBDSE8gQ0hPRTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgQ0hPIENIT0U7Ozs7CiswRTBEO1RIQUkgQ0hBUkFDVEVSIFlPIFlJTkc7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFlPIFlJTkc7Ozs7CiswRTBFO1RIQUkgQ0hBUkFDVEVSIERPIENIQURBO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBETyBDSEFEQTs7OzsKKzBFMEY7VEhBSSBDSEFSQUNURVIgVE8gUEFUQUs7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFRPIFBBVEFLOzs7OworMEUxMDtUSEFJIENIQVJBQ1RFUiBUSE8gVEhBTjtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgVEhPIFRIQU47Ozs7CiswRTExO1RIQUkgQ0hBUkFDVEVSIFRITyBOQU5HTU9OVEhPO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBUSE8gTkFOR01PTlRITzs7OzsKKzBFMTI7VEhBSSBDSEFSQUNURVIgVEhPIFBIVVRIQU87TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFRITyBQSFVUSEFPOzs7OworMEUxMztUSEFJIENIQVJBQ1RFUiBOTyBORU47TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIE5PIE5FTjs7OzsKKzBFMTQ7VEhBSSBDSEFSQUNURVIgRE8gREVLO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBETyBERUs7Ozs7CiswRTE1O1RIQUkgQ0hBUkFDVEVSIFRPIFRBTztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgVE8gVEFPOzs7OworMEUxNjtUSEFJIENIQVJBQ1RFUiBUSE8gVEhVTkc7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFRITyBUSFVORzs7OzsKKzBFMTc7VEhBSSBDSEFSQUNURVIgVEhPIFRIQUhBTjtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgVEhPIFRIQUhBTjs7OzsKKzBFMTg7VEhBSSBDSEFSQUNURVIgVEhPIFRIT05HO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBUSE8gVEhPTkc7Ozs7CiswRTE5O1RIQUkgQ0hBUkFDVEVSIE5PIE5VO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBOTyBOVTs7OzsKKzBFMUE7VEhBSSBDSEFSQUNURVIgQk8gQkFJTUFJO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBCTyBCQUlNQUk7Ozs7CiswRTFCO1RIQUkgQ0hBUkFDVEVSIFBPIFBMQTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgUE8gUExBOzs7OworMEUxQztUSEFJIENIQVJBQ1RFUiBQSE8gUEhVTkc7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFBITyBQSFVORzs7OzsKKzBFMUQ7VEhBSSBDSEFSQUNURVIgRk8gRkE7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIEZPIEZBOzs7OworMEUxRTtUSEFJIENIQVJBQ1RFUiBQSE8gUEhBTjtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgUEhPIFBIQU47Ozs7CiswRTFGO1RIQUkgQ0hBUkFDVEVSIEZPIEZBTjtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgRk8gRkFOOzs7OworMEUyMDtUSEFJIENIQVJBQ1RFUiBQSE8gU0FNUEhBTztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgUEhPIFNBTVBIQU87Ozs7CiswRTIxO1RIQUkgQ0hBUkFDVEVSIE1PIE1BO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBNTyBNQTs7OzsKKzBFMjI7VEhBSSBDSEFSQUNURVIgWU8gWUFLO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBZTyBZQUs7Ozs7CiswRTIzO1RIQUkgQ0hBUkFDVEVSIFJPIFJVQTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgUk8gUlVBOzs7OworMEUyNDtUSEFJIENIQVJBQ1RFUiBSVTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgUlU7Ozs7CiswRTI1O1RIQUkgQ0hBUkFDVEVSIExPIExJTkc7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIExPIExJTkc7Ozs7CiswRTI2O1RIQUkgQ0hBUkFDVEVSIExVO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBMVTs7OzsKKzBFMjc7VEhBSSBDSEFSQUNURVIgV08gV0FFTjtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgV08gV0FFTjs7OzsKKzBFMjg7VEhBSSBDSEFSQUNURVIgU08gU0FMQTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgU08gU0FMQTs7OzsKKzBFMjk7VEhBSSBDSEFSQUNURVIgU08gUlVTSTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgU08gUlVTSTs7OzsKKzBFMkE7VEhBSSBDSEFSQUNURVIgU08gU1VBO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBTTyBTVUE7Ozs7CiswRTJCO1RIQUkgQ0hBUkFDVEVSIEhPIEhJUDtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgSE8gSElQOzs7OworMEUyQztUSEFJIENIQVJBQ1RFUiBMTyBDSFVMQTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgTE8gQ0hVTEE7Ozs7CiswRTJEO1RIQUkgQ0hBUkFDVEVSIE8gQU5HO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBPIEFORzs7OzsKKzBFMkU7VEhBSSBDSEFSQUNURVIgSE8gTk9LSFVLO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBITyBOT0sgSFVLOzs7OworMEUyRjtUSEFJIENIQVJBQ1RFUiBQQUlZQU5OT0k7TG87MDtMOzs7OztOO1RIQUkgUEFJIFlBTiBOT0k7cGFpeWFuIG5vaTs7OworMEUzMDtUSEFJIENIQVJBQ1RFUiBTQVJBIEE7TG87MDtMOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIEE7Ozs7CiswRTMxO1RIQUkgQ0hBUkFDVEVSIE1BSSBIQU4tQUtBVDtNbjswO05TTTs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gTUFJIEhBTi1BS0FUOzs7OworMEUzMjtUSEFJIENIQVJBQ1RFUiBTQVJBIEFBO0xvOzA7TDs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBBQTs7OzsKKzBFMzM7VEhBSSBDSEFSQUNURVIgU0FSQSBBTTtMbzswO0w7PGNvbXBhdD4gMEU0RCAwRTMyOzs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgQU07Ozs7CiswRTM0O1RIQUkgQ0hBUkFDVEVSIFNBUkEgSTtNbjswO05TTTs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBJOzs7OworMEUzNTtUSEFJIENIQVJBQ1RFUiBTQVJBIElJO01uOzA7TlNNOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIElJOzs7OworMEUzNjtUSEFJIENIQVJBQ1RFUiBTQVJBIFVFO01uOzA7TlNNOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIFVFOzs7OworMEUzNztUSEFJIENIQVJBQ1RFUiBTQVJBIFVFRTtNbjswO05TTTs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBVRUU7c2FyYSB1dWU7OzsKKzBFMzg7VEhBSSBDSEFSQUNURVIgU0FSQSBVO01uOzEwMztOU007Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgVTs7OzsKKzBFMzk7VEhBSSBDSEFSQUNURVIgU0FSQSBVVTtNbjsxMDM7TlNNOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIFVVOzs7OworMEUzQTtUSEFJIENIQVJBQ1RFUiBQSElOVEhVO01uOzk7TlNNOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBQSElOVEhVOzs7OworMEUzRjtUSEFJIENVUlJFTkNZIFNZTUJPTCBCQUhUO1NjOzA7RVQ7Ozs7O047VEhBSSBCQUhUIFNJR047Ozs7CiswRTQwO1RIQUkgQ0hBUkFDVEVSIFNBUkEgRTtMbzswO0w7Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgRTs7OzsKKzBFNDE7VEhBSSBDSEFSQUNURVIgU0FSQSBBRTtMbzswO0w7Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgQUU7Ozs7CiswRTQyO1RIQUkgQ0hBUkFDVEVSIFNBUkEgTztMbzswO0w7Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgTzs7OzsKKzBFNDM7VEhBSSBDSEFSQUNURVIgU0FSQSBBSSBNQUlNVUFOO0xvOzA7TDs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBNQUkgTVVBTjtzYXJhIGFpIG1haSBtdWFuOzs7CiswRTQ0O1RIQUkgQ0hBUkFDVEVSIFNBUkEgQUkgTUFJTUFMQUk7TG87MDtMOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIE1BSSBNQUxBSTtzYXJhIGFpIG1haSBtYWxhaTs7OworMEU0NTtUSEFJIENIQVJBQ1RFUiBMQUtLSEFOR1lBTztMbzswO0w7Ozs7O047VEhBSSBMQUsgS0hBTkcgWUFPO2xha2toYW5nIHlhbzs7OworMEU0NjtUSEFJIENIQVJBQ1RFUiBNQUlZQU1PSztMbTswO0w7Ozs7O047VEhBSSBNQUkgWUFNT0s7bWFpIHlhbW9rOzs7CiswRTQ3O1RIQUkgQ0hBUkFDVEVSIE1BSVRBSUtIVTtNbjswO05TTTs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gTUFJIFRBSSBLSFU7bWFpIHRhaWtodTs7OworMEU0ODtUSEFJIENIQVJBQ1RFUiBNQUkgRUs7TW47MTA3O05TTTs7Ozs7TjtUSEFJIFRPTkUgTUFJIEVLOzs7OworMEU0OTtUSEFJIENIQVJBQ1RFUiBNQUkgVEhPO01uOzEwNztOU007Ozs7O047VEhBSSBUT05FIE1BSSBUSE87Ozs7CiswRTRBO1RIQUkgQ0hBUkFDVEVSIE1BSSBUUkk7TW47MTA3O05TTTs7Ozs7TjtUSEFJIFRPTkUgTUFJIFRSSTs7OzsKKzBFNEI7VEhBSSBDSEFSQUNURVIgTUFJIENIQVRUQVdBO01uOzEwNztOU007Ozs7O047VEhBSSBUT05FIE1BSSBDSEFUVEFXQTs7OzsKKzBFNEM7VEhBSSBDSEFSQUNURVIgVEhBTlRIQUtIQVQ7TW47MDtOU007Ozs7O047VEhBSSBUSEFOVEhBS0hBVDs7OzsKKzBFNEQ7VEhBSSBDSEFSQUNURVIgTklLSEFISVQ7TW47MDtOU007Ozs7O047VEhBSSBOSUtLSEFISVQ7bmlra2hhaGl0Ozs7CiswRTRFO1RIQUkgQ0hBUkFDVEVSIFlBTUFLS0FOO01uOzA7TlNNOzs7OztOO1RIQUkgWUFNQUtLQU47Ozs7CiswRTRGO1RIQUkgQ0hBUkFDVEVSIEZPTkdNQU47UG87MDtMOzs7OztOO1RIQUkgRk9OR01BTjs7OzsKKzBFNTA7VEhBSSBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CiswRTUxO1RIQUkgRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CiswRTUyO1RIQUkgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswRTUzO1RIQUkgRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzBFNTQ7VEhBSSBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CiswRTU1O1RIQUkgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMEU1NjtUSEFJIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMEU1NztUSEFJIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CiswRTU4O1RIQUkgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzBFNTk7VEhBSSBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CiswRTVBO1RIQUkgQ0hBUkFDVEVSIEFOR0tIQU5LSFU7UG87MDtMOzs7OztOO1RIQUkgQU5HS0hBTktIVTs7OzsKKzBFNUI7VEhBSSBDSEFSQUNURVIgS0hPTVVUO1BvOzA7TDs7Ozs7TjtUSEFJIEtIT01VVDs7OzsKKzBFODE7TEFPIExFVFRFUiBLTztMbzswO0w7Ozs7O047Ozs7OworMEU4MjtMQU8gTEVUVEVSIEtITyBTVU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRTg0O0xBTyBMRVRURVIgS0hPIFRBTTtMbzswO0w7Ozs7O047Ozs7OworMEU4NztMQU8gTEVUVEVSIE5HTztMbzswO0w7Ozs7O047Ozs7OworMEU4ODtMQU8gTEVUVEVSIENPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRThBO0xBTyBMRVRURVIgU08gVEFNO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRThEO0xBTyBMRVRURVIgTllPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRTk0O0xBTyBMRVRURVIgRE87TG87MDtMOzs7OztOOzs7OzsKKzBFOTU7TEFPIExFVFRFUiBUTztMbzswO0w7Ozs7O047Ozs7OworMEU5NjtMQU8gTEVUVEVSIFRITyBTVU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRTk3O0xBTyBMRVRURVIgVEhPIFRBTTtMbzswO0w7Ozs7O047Ozs7OworMEU5OTtMQU8gTEVUVEVSIE5PO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRTlBO0xBTyBMRVRURVIgQk87TG87MDtMOzs7OztOOzs7OzsKKzBFOUI7TEFPIExFVFRFUiBQTztMbzswO0w7Ozs7O047Ozs7OworMEU5QztMQU8gTEVUVEVSIFBITyBTVU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRTlEO0xBTyBMRVRURVIgRk8gVEFNO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRTlFO0xBTyBMRVRURVIgUEhPIFRBTTtMbzswO0w7Ozs7O047Ozs7OworMEU5RjtMQU8gTEVUVEVSIEZPIFNVTkc7TG87MDtMOzs7OztOOzs7OzsKKzBFQTE7TEFPIExFVFRFUiBNTztMbzswO0w7Ozs7O047Ozs7OworMEVBMjtMQU8gTEVUVEVSIFlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUEzO0xBTyBMRVRURVIgTE8gTElORztMbzswO0w7Ozs7O047Ozs7OworMEVBNTtMQU8gTEVUVEVSIExPIExPT1Q7TG87MDtMOzs7OztOOzs7OzsKKzBFQTc7TEFPIExFVFRFUiBXTztMbzswO0w7Ozs7O047Ozs7OworMEVBQTtMQU8gTEVUVEVSIFNPIFNVTkc7TG87MDtMOzs7OztOOzs7OzsKKzBFQUI7TEFPIExFVFRFUiBITyBTVU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUFEO0xBTyBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMEVBRTtMQU8gTEVUVEVSIEhPIFRBTTtMbzswO0w7Ozs7O047Ozs7OworMEVBRjtMQU8gRUxMSVBTSVM7TG87MDtMOzs7OztOOzs7OzsKKzBFQjA7TEFPIFZPV0VMIFNJR04gQTtMbzswO0w7Ozs7O047Ozs7OworMEVCMTtMQU8gVk9XRUwgU0lHTiBNQUkgS0FOO01uOzA7TlNNOzs7OztOOzs7OzsKKzBFQjI7TEFPIFZPV0VMIFNJR04gQUE7TG87MDtMOzs7OztOOzs7OzsKKzBFQjM7TEFPIFZPV0VMIFNJR04gQU07TG87MDtMOzxjb21wYXQ+IDBFQ0QgMEVCMjs7OztOOzs7OzsKKzBFQjQ7TEFPIFZPV0VMIFNJR04gSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRUI1O0xBTyBWT1dFTCBTSUdOIElJO01uOzA7TlNNOzs7OztOOzs7OzsKKzBFQjY7TEFPIFZPV0VMIFNJR04gWTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRUI3O0xBTyBWT1dFTCBTSUdOIFlZO01uOzA7TlNNOzs7OztOOzs7OzsKKzBFQjg7TEFPIFZPV0VMIFNJR04gVTtNbjsxMTg7TlNNOzs7OztOOzs7OzsKKzBFQjk7TEFPIFZPV0VMIFNJR04gVVU7TW47MTE4O05TTTs7Ozs7Tjs7Ozs7CiswRUJCO0xBTyBWT1dFTCBTSUdOIE1BSSBLT047TW47MDtOU007Ozs7O047Ozs7OworMEVCQztMQU8gU0VNSVZPV0VMIFNJR04gTE87TW47MDtOU007Ozs7O047Ozs7OworMEVCRDtMQU8gU0VNSVZPV0VMIFNJR04gTllPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUMwO0xBTyBWT1dFTCBTSUdOIEU7TG87MDtMOzs7OztOOzs7OzsKKzBFQzE7TEFPIFZPV0VMIFNJR04gRUk7TG87MDtMOzs7OztOOzs7OzsKKzBFQzI7TEFPIFZPV0VMIFNJR04gTztMbzswO0w7Ozs7O047Ozs7OworMEVDMztMQU8gVk9XRUwgU0lHTiBBWTtMbzswO0w7Ozs7O047Ozs7OworMEVDNDtMQU8gVk9XRUwgU0lHTiBBSTtMbzswO0w7Ozs7O047Ozs7OworMEVDNjtMQU8gS08gTEE7TG07MDtMOzs7OztOOzs7OzsKKzBFQzg7TEFPIFRPTkUgTUFJIEVLO01uOzEyMjtOU007Ozs7O047Ozs7OworMEVDOTtMQU8gVE9ORSBNQUkgVEhPO01uOzEyMjtOU007Ozs7O047Ozs7OworMEVDQTtMQU8gVE9ORSBNQUkgVEk7TW47MTIyO05TTTs7Ozs7Tjs7Ozs7CiswRUNCO0xBTyBUT05FIE1BSSBDQVRBV0E7TW47MTIyO05TTTs7Ozs7Tjs7Ozs7CiswRUNDO0xBTyBDQU5DRUxMQVRJT04gTUFSSztNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRUNEO0xBTyBOSUdHQUhJVEE7TW47MDtOU007Ozs7O047Ozs7OworMEVEMDtMQU8gRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMEVEMTtMQU8gRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CiswRUQyO0xBTyBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzBFRDM7TEFPIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswRUQ0O0xBTyBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CiswRUQ1O0xBTyBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CiswRUQ2O0xBTyBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzBFRDc7TEFPIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CiswRUQ4O0xBTyBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMEVEOTtMQU8gRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMEVEQztMQU8gSE8gTk87TG87MDtMOzxjb21wYXQ+IDBFQUIgMEU5OTs7OztOOzs7OzsKKzBFREQ7TEFPIEhPIE1PO0xvOzA7TDs8Y29tcGF0PiAwRUFCIDBFQTE7Ozs7Tjs7Ozs7CiswRjAwO1RJQkVUQU4gU1lMTEFCTEUgT007TG87MDtMOzs7OztOOzs7OzsKKzBGMDE7VElCRVRBTiBNQVJLIEdURVIgWUlHIE1HTyBUUlVOQ0FURUQgQTtTbzswO0w7Ozs7O047O3RlciB5aWsgZ28gYSB0aHVuZzs7OworMEYwMjtUSUJFVEFOIE1BUksgR1RFUiBZSUcgTUdPIC1VTSBSTkFNIEJDQUQgTUE7U287MDtMOzs7OztOOzt0ZXIgeWlrIGdvIHd1bSBuYW0gY2hleSBtYTs7OworMEYwMztUSUJFVEFOIE1BUksgR1RFUiBZSUcgTUdPIC1VTSBHVEVSIFRTSEVHIE1BO1NvOzA7TDs7Ozs7Tjs7dGVyIHlpayBnbyB3dW0gdGVyIHRzZWsgbWE7OzsKKzBGMDQ7VElCRVRBTiBNQVJLIElOSVRJQUwgWUlHIE1HTyBNRFVOIE1BO1BvOzA7TDs7Ozs7TjtUSUJFVEFOIFNJTkdMRSBPUk5BTUVOVDt5aWsgZ28gZHVuIG1hOzs7CiswRjA1O1RJQkVUQU4gTUFSSyBDTE9TSU5HIFlJRyBNR08gU0dBQiBNQTtQbzswO0w7Ozs7O047O3lpayBnbyBrYWIgbWE7OzsKKzBGMDY7VElCRVRBTiBNQVJLIENBUkVUIFlJRyBNR08gUEhVUiBTSEFEIE1BO1BvOzA7TDs7Ozs7Tjs7eWlrIGdvIHB1ciBzaGV5IG1hOzs7CiswRjA3O1RJQkVUQU4gTUFSSyBZSUcgTUdPIFRTSEVHIFNIQUQgTUE7UG87MDtMOzs7OztOOzt5aWsgZ28gdHNlayBzaGV5IG1hOzs7CiswRjA4O1RJQkVUQU4gTUFSSyBTQlJVTCBTSEFEO1BvOzA7TDs7Ozs7TjtUSUJFVEFOIFJHWUFOU0hBRDtkcnVsIHNoZXk7OzsKKzBGMDk7VElCRVRBTiBNQVJLIEJTS1VSIFlJRyBNR087UG87MDtMOzs7OztOOztrdXIgeWlrIGdvOzs7CiswRjBBO1RJQkVUQU4gTUFSSyBCS0EtIFNIT0cgWUlHIE1HTztQbzswO0w7Ozs7O047O2thIHNobyB5aWsgZ287OzsKKzBGMEI7VElCRVRBTiBNQVJLIElOVEVSU1lMTEFCSUMgVFNIRUc7UG87MDtMOzs7OztOO1RJQkVUQU4gVFNFRzt0c2VrOzs7CiswRjBDO1RJQkVUQU4gTUFSSyBERUxJTUlURVIgVFNIRUcgQlNUQVI7UG87MDtMOzxub0JyZWFrPiAwRjBCOzs7O047O3RzZWsgdGFyOzs7CiswRjBEO1RJQkVUQU4gTUFSSyBTSEFEO1BvOzA7TDs7Ozs7TjtUSUJFVEFOIFNIQUQ7c2hleTs7OworMEYwRTtUSUJFVEFOIE1BUksgTllJUyBTSEFEO1BvOzA7TDs7Ozs7TjtUSUJFVEFOIERPVUJMRSBTSEFEO255aSBzaGV5Ozs7CiswRjBGO1RJQkVUQU4gTUFSSyBUU0hFRyBTSEFEO1BvOzA7TDs7Ozs7Tjs7dHNlayBzaGV5Ozs7CiswRjEwO1RJQkVUQU4gTUFSSyBOWUlTIFRTSEVHIFNIQUQ7UG87MDtMOzs7OztOOztueWkgdHNlayBzaGV5Ozs7CiswRjExO1RJQkVUQU4gTUFSSyBSSU4gQ0hFTiBTUFVOR1MgU0hBRDtQbzswO0w7Ozs7O047VElCRVRBTiBSSU5DSEFOUEhVTkdTSEFEO3JpbmNoZW4gcHVuZyBzaGV5Ozs7CiswRjEyO1RJQkVUQU4gTUFSSyBSR1lBIEdSQU0gU0hBRDtQbzswO0w7Ozs7O047O2d5YSB0cmFtIHNoZXk7OzsKKzBGMTM7VElCRVRBTiBNQVJLIENBUkVUIC1EWlVEIFJUQUdTIE1FIExPTkcgQ0FOO1NvOzA7TDs7Ozs7Tjs7ZHp1IHRhIG1lIGxvbmcgY2hlbjs7OworMEYxNDtUSUJFVEFOIE1BUksgR1RFUiBUU0hFRztTbzswO0w7Ozs7O047VElCRVRBTiBDT01NQTt0ZXIgdHNlazs7OworMEYxNTtUSUJFVEFOIExPR09UWVBFIFNJR04gQ0hBRCBSVEFHUztTbzswO0w7Ozs7O047O2NoZSB0YTs7OworMEYxNjtUSUJFVEFOIExPR09UWVBFIFNJR04gTEhBRyBSVEFHUztTbzswO0w7Ozs7O047O2hsYWsgdGE7OzsKKzBGMTc7VElCRVRBTiBBU1RST0xPR0lDQUwgU0lHTiBTR1JBIEdDQU4gLUNIQVIgUlRBR1M7U287MDtMOzs7OztOOzt0cmFjaGVuIGNoYXIgdGE7OzsKKzBGMTg7VElCRVRBTiBBU1RST0xPR0lDQUwgU0lHTiAtS0hZVUQgUEE7TW47MjIwO05TTTs7Ozs7Tjs7a3l1IHBhOzs7CiswRjE5O1RJQkVUQU4gQVNUUk9MT0dJQ0FMIFNJR04gU0RPTkcgVFNIVUdTO01uOzIyMDtOU007Ozs7O047O2RvbmcgdHN1Ozs7CiswRjFBO1RJQkVUQU4gU0lHTiBSREVMIERLQVIgR0NJRztTbzswO0w7Ozs7O047O2Rla2EgY2hpZzs7OworMEYxQjtUSUJFVEFOIFNJR04gUkRFTCBES0FSIEdOWUlTO1NvOzA7TDs7Ozs7Tjs7ZGVrYSBueWk7OzsKKzBGMUM7VElCRVRBTiBTSUdOIFJERUwgREtBUiBHU1VNO1NvOzA7TDs7Ozs7Tjs7ZGVrYSBzdW07OzsKKzBGMUQ7VElCRVRBTiBTSUdOIFJERUwgTkFHIEdDSUc7U287MDtMOzs7OztOOztkZW5hIGNoaWc7OzsKKzBGMUU7VElCRVRBTiBTSUdOIFJERUwgTkFHIEdOWUlTO1NvOzA7TDs7Ozs7Tjs7ZGVuYSBueWk7OzsKKzBGMUY7VElCRVRBTiBTSUdOIFJERUwgREtBUiBSREVMIE5BRztTbzswO0w7Ozs7O047O2Rla2EgZGVuYTs7OworMEYyMDtUSUJFVEFOIERJR0lUIFpFUk87TmQ7MDtMOzswOzA7MDtOOzs7OzsKKzBGMjE7VElCRVRBTiBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzBGMjI7VElCRVRBTiBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzBGMjM7VElCRVRBTiBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMEYyNDtUSUJFVEFOIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzBGMjU7VElCRVRBTiBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CiswRjI2O1RJQkVUQU4gRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CiswRjI3O1RJQkVUQU4gRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzBGMjg7VElCRVRBTiBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMEYyOTtUSUJFVEFOIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzBGMkE7VElCRVRBTiBESUdJVCBIQUxGIE9ORTtObzswO0w7Ozs7MS8yO047Ozs7OworMEYyQjtUSUJFVEFOIERJR0lUIEhBTEYgVFdPO05vOzA7TDs7OzszLzI7Tjs7Ozs7CiswRjJDO1RJQkVUQU4gRElHSVQgSEFMRiBUSFJFRTtObzswO0w7Ozs7NS8yO047Ozs7OworMEYyRDtUSUJFVEFOIERJR0lUIEhBTEYgRk9VUjtObzswO0w7Ozs7Ny8yO047Ozs7OworMEYyRTtUSUJFVEFOIERJR0lUIEhBTEYgRklWRTtObzswO0w7Ozs7OS8yO047Ozs7OworMEYyRjtUSUJFVEFOIERJR0lUIEhBTEYgU0lYO05vOzA7TDs7OzsxMS8yO047Ozs7OworMEYzMDtUSUJFVEFOIERJR0lUIEhBTEYgU0VWRU47Tm87MDtMOzs7OzEzLzI7Tjs7Ozs7CiswRjMxO1RJQkVUQU4gRElHSVQgSEFMRiBFSUdIVDtObzswO0w7Ozs7MTUvMjtOOzs7OzsKKzBGMzI7VElCRVRBTiBESUdJVCBIQUxGIE5JTkU7Tm87MDtMOzs7OzE3LzI7Tjs7Ozs7CiswRjMzO1RJQkVUQU4gRElHSVQgSEFMRiBaRVJPO05vOzA7TDs7OzstMS8yO047Ozs7OworMEYzNDtUSUJFVEFOIE1BUksgQlNEVVMgUlRBR1M7U287MDtMOzs7OztOOztkdSB0YTs7OworMEYzNTtUSUJFVEFOIE1BUksgTkdBUyBCWlVORyBOWUkgWkxBO01uOzIyMDtOU007Ozs7O047VElCRVRBTiBIT05PUklGSUMgVU5ERVIgUklORztuZ2UgenVuZyBueWkgZGE7OzsKKzBGMzY7VElCRVRBTiBNQVJLIENBUkVUIC1EWlVEIFJUQUdTIEJaSEkgTUlHIENBTjtTbzswO0w7Ozs7O047O2R6dSB0YSBzaGkgbWlnIGNoZW47OzsKKzBGMzc7VElCRVRBTiBNQVJLIE5HQVMgQlpVTkcgU0dPUiBSVEFHUztNbjsyMjA7TlNNOzs7OztOO1RJQkVUQU4gVU5ERVIgUklORztuZ2UgenVuZyBnb3IgdGE7OzsKKzBGMzg7VElCRVRBTiBNQVJLIENIRSBNR087U287MDtMOzs7OztOOztjaGUgZ287OzsKKzBGMzk7VElCRVRBTiBNQVJLIFRTQSAtUEhSVTtNbjsyMTY7TlNNOzs7OztOO1RJQkVUQU4gTEVOSVRJT04gTUFSSzt0c2EgdHJ1Ozs7CiswRjNBO1RJQkVUQU4gTUFSSyBHVUcgUlRBR1MgR1lPTjtQczswO09OOzs7OztOOztndWcgdGEgeXVuOzs7CiswRjNCO1RJQkVUQU4gTUFSSyBHVUcgUlRBR1MgR1lBUztQZTswO09OOzs7OztOOztndWcgdGEgeWU7OzsKKzBGM0M7VElCRVRBTiBNQVJLIEFORyBLSEFORyBHWU9OO1BzOzA7T047Ozs7O047VElCRVRBTiBMRUZUIEJSQUNFO2FuZyBrYW5nIHl1bjs7OworMEYzRDtUSUJFVEFOIE1BUksgQU5HIEtIQU5HIEdZQVM7UGU7MDtPTjs7Ozs7TjtUSUJFVEFOIFJJR0hUIEJSQUNFO2FuZyBrYW5nIHllOzs7CiswRjNFO1RJQkVUQU4gU0lHTiBZQVIgVFNIRVM7TWM7MDtMOzs7OztOOzt5YXIgdHNlOzs7CiswRjNGO1RJQkVUQU4gU0lHTiBNQVIgVFNIRVM7TWM7MDtMOzs7OztOOzttYXIgdHNlOzs7CiswRjQwO1RJQkVUQU4gTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjQxO1RJQkVUQU4gTEVUVEVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMEY0MjtUSUJFVEFOIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMEY0MztUSUJFVEFOIExFVFRFUiBHSEE7TG87MDtMOzBGNDIgMEZCNzs7OztOOzs7OzsKKzBGNDQ7VElCRVRBTiBMRVRURVIgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjQ1O1RJQkVUQU4gTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjQ2O1RJQkVUQU4gTEVUVEVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMEY0NztUSUJFVEFOIExFVFRFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworMEY0OTtUSUJFVEFOIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzBGNEE7VElCRVRBTiBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7TjtUSUJFVEFOIExFVFRFUiBSRVZFUlNFRCBUQTs7OzsKKzBGNEI7VElCRVRBTiBMRVRURVIgVFRIQTtMbzswO0w7Ozs7O047VElCRVRBTiBMRVRURVIgUkVWRVJTRUQgVEhBOzs7OworMEY0QztUSUJFVEFOIExFVFRFUiBEREE7TG87MDtMOzs7OztOO1RJQkVUQU4gTEVUVEVSIFJFVkVSU0VEIERBOzs7OworMEY0RDtUSUJFVEFOIExFVFRFUiBEREhBO0xvOzA7TDswRjRDIDBGQjc7Ozs7Tjs7Ozs7CiswRjRFO1RJQkVUQU4gTEVUVEVSIE5OQTtMbzswO0w7Ozs7O047VElCRVRBTiBMRVRURVIgUkVWRVJTRUQgTkE7Ozs7CiswRjRGO1RJQkVUQU4gTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjUwO1RJQkVUQU4gTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEY1MTtUSUJFVEFOIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMEY1MjtUSUJFVEFOIExFVFRFUiBESEE7TG87MDtMOzBGNTEgMEZCNzs7OztOOzs7OzsKKzBGNTM7VElCRVRBTiBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzBGNTQ7VElCRVRBTiBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNTU7VElCRVRBTiBMRVRURVIgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjU2O1RJQkVUQU4gTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjU3O1RJQkVUQU4gTEVUVEVSIEJIQTtMbzswO0w7MEY1NiAwRkI3Ozs7O047Ozs7OworMEY1ODtUSUJFVEFOIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMEY1OTtUSUJFVEFOIExFVFRFUiBUU0E7TG87MDtMOzs7OztOOzs7OzsKKzBGNUE7VElCRVRBTiBMRVRURVIgVFNIQTtMbzswO0w7Ozs7O047Ozs7OworMEY1QjtUSUJFVEFOIExFVFRFUiBEWkE7TG87MDtMOzs7OztOOzs7OzsKKzBGNUM7VElCRVRBTiBMRVRURVIgRFpIQTtMbzswO0w7MEY1QiAwRkI3Ozs7O047Ozs7OworMEY1RDtUSUJFVEFOIExFVFRFUiBXQTtMbzswO0w7Ozs7O047Ozs7OworMEY1RTtUSUJFVEFOIExFVFRFUiBaSEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNUY7VElCRVRBTiBMRVRURVIgWkE7TG87MDtMOzs7OztOOzs7OzsKKzBGNjA7VElCRVRBTiBMRVRURVIgLUE7TG87MDtMOzs7OztOO1RJQkVUQU4gTEVUVEVSIEFBOzs7OworMEY2MTtUSUJFVEFOIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMEY2MjtUSUJFVEFOIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Oyo7OzsKKzBGNjM7VElCRVRBTiBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNjQ7VElCRVRBTiBMRVRURVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjY1O1RJQkVUQU4gTEVUVEVSIFNTQTtMbzswO0w7Ozs7O047VElCRVRBTiBMRVRURVIgUkVWRVJTRUQgU0hBOzs7OworMEY2NjtUSUJFVEFOIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMEY2NztUSUJFVEFOIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMEY2ODtUSUJFVEFOIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjY5O1RJQkVUQU4gTEVUVEVSIEtTU0E7TG87MDtMOzBGNDAgMEZCNTs7OztOOzs7OzsKKzBGNkE7VElCRVRBTiBMRVRURVIgRklYRUQtRk9STSBSQTtMbzswO0w7Ozs7O047Oyo7OzsKKzBGNzE7VElCRVRBTiBWT1dFTCBTSUdOIEFBO01uOzEyOTtOU007Ozs7O047Ozs7OworMEY3MjtUSUJFVEFOIFZPV0VMIFNJR04gSTtNbjsxMzA7TlNNOzs7OztOOzs7OzsKKzBGNzM7VElCRVRBTiBWT1dFTCBTSUdOIElJO01uOzA7TlNNOzBGNzEgMEY3Mjs7OztOOzs7OzsKKzBGNzQ7VElCRVRBTiBWT1dFTCBTSUdOIFU7TW47MTMyO05TTTs7Ozs7Tjs7Ozs7CiswRjc1O1RJQkVUQU4gVk9XRUwgU0lHTiBVVTtNbjswO05TTTswRjcxIDBGNzQ7Ozs7Tjs7Ozs7CiswRjc2O1RJQkVUQU4gVk9XRUwgU0lHTiBWT0NBTElDIFI7TW47MDtOU007MEZCMiAwRjgwOzs7O047Ozs7OworMEY3NztUSUJFVEFOIFZPV0VMIFNJR04gVk9DQUxJQyBSUjtNbjswO05TTTs8Y29tcGF0PiAwRkIyIDBGODE7Ozs7Tjs7Ozs7CiswRjc4O1RJQkVUQU4gVk9XRUwgU0lHTiBWT0NBTElDIEw7TW47MDtOU007MEZCMyAwRjgwOzs7O047Ozs7OworMEY3OTtUSUJFVEFOIFZPV0VMIFNJR04gVk9DQUxJQyBMTDtNbjswO05TTTs8Y29tcGF0PiAwRkIzIDBGODE7Ozs7Tjs7Ozs7CiswRjdBO1RJQkVUQU4gVk9XRUwgU0lHTiBFO01uOzEzMDtOU007Ozs7O047Ozs7OworMEY3QjtUSUJFVEFOIFZPV0VMIFNJR04gRUU7TW47MTMwO05TTTs7Ozs7TjtUSUJFVEFOIFZPV0VMIFNJR04gQUk7Ozs7CiswRjdDO1RJQkVUQU4gVk9XRUwgU0lHTiBPO01uOzEzMDtOU007Ozs7O047Ozs7OworMEY3RDtUSUJFVEFOIFZPV0VMIFNJR04gT087TW47MTMwO05TTTs7Ozs7TjtUSUJFVEFOIFZPV0VMIFNJR04gQVU7Ozs7CiswRjdFO1RJQkVUQU4gU0lHTiBSSkVTIFNVIE5HQSBSTztNbjswO05TTTs7Ozs7TjtUSUJFVEFOIEFOVVNWQVJBO2plIHN1IG5nYSBybzs7OworMEY3RjtUSUJFVEFOIFNJR04gUk5BTSBCQ0FEO01jOzA7TDs7Ozs7TjtUSUJFVEFOIFZJU0FSR0E7bmFtIGNoZXk7OzsKKzBGODA7VElCRVRBTiBWT1dFTCBTSUdOIFJFVkVSU0VEIEk7TW47MTMwO05TTTs7Ozs7TjtUSUJFVEFOIFZPV0VMIFNJR04gU0hPUlQgSTs7OzsKKzBGODE7VElCRVRBTiBWT1dFTCBTSUdOIFJFVkVSU0VEIElJO01uOzA7TlNNOzBGNzEgMEY4MDs7OztOOzs7OzsKKzBGODI7VElCRVRBTiBTSUdOIE5ZSSBaTEEgTkFBIERBO01uOzIzMDtOU007Ozs7O047VElCRVRBTiBDQU5EUkFCSU5EVSBXSVRIIE9STkFNRU5UO255aSBkYSBuYSBkYTs7OworMEY4MztUSUJFVEFOIFNJR04gU05BIExEQU47TW47MjMwO05TTTs7Ozs7TjtUSUJFVEFOIENBTkRSQUJJTkRVO25hbiBkZTs7OworMEY4NDtUSUJFVEFOIE1BUksgSEFMQU5UQTtNbjs5O05TTTs7Ozs7TjtUSUJFVEFOIFZJUkFNQTs7OzsKKzBGODU7VElCRVRBTiBNQVJLIFBBTFVUQTtQbzswO0w7Ozs7O047VElCRVRBTiBDSFVDSEVOWUlHRTs7OzsKKzBGODY7VElCRVRBTiBTSUdOIExDSSBSVEFHUztNbjsyMzA7TlNNOzs7OztOOztqaSB0YTs7OworMEY4NztUSUJFVEFOIFNJR04gWUFORyBSVEFHUztNbjsyMzA7TlNNOzs7OztOOzt5YW5nIHRhOzs7CiswRjg4O1RJQkVUQU4gU0lHTiBMQ0UgVFNBIENBTjtMbzswO0w7Ozs7O047O2NoZSB0c2EgY2hlbjs7OworMEY4OTtUSUJFVEFOIFNJR04gTUNIVSBDQU47TG87MDtMOzs7OztOOztjaHUgY2hlbjs7OworMEY4QTtUSUJFVEFOIFNJR04gR1JVIENBTiBSR1lJTkdTO0xvOzA7TDs7Ozs7Tjs7dHJ1IGNoZW4gZ2luZzs7OworMEY4QjtUSUJFVEFOIFNJR04gR1JVIE1FRCBSR1lJTkdTO0xvOzA7TDs7Ozs7Tjs7dHJ1IG1lIGdpbmc7OzsKKzBGOTA7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEtBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGOTE7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEtIQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRjkyO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBHQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRjkzO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBHSEE7TW47MDtOU007MEY5MiAwRkI3Ozs7O047Ozs7OworMEY5NDtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgTkdBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGOTU7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIENBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGOTY7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIENIQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRjk3O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBKQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRjk5O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBOWUE7TW47MDtOU007Ozs7O047Ozs7OworMEY5QTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgVFRBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGOUI7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFRUSEE7TW47MDtOU007Ozs7O047Ozs7OworMEY5QztUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgRERBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGOUQ7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIERESEE7TW47MDtOU007MEY5QyAwRkI3Ozs7O047Ozs7OworMEY5RTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgTk5BO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGOUY7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFRBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQTA7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFRIQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkExO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBEQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkEyO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBESEE7TW47MDtOU007MEZBMSAwRkI3Ozs7O047Ozs7OworMEZBMztUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgTkE7TW47MDtOU007Ozs7O047Ozs7OworMEZBNDtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgUEE7TW47MDtOU007Ozs7O047Ozs7OworMEZBNTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgUEhBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQTY7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEJBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQTc7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEJIQTtNbjswO05TTTswRkE2IDBGQjc7Ozs7Tjs7Ozs7CiswRkE4O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBNQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkE5O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBUU0E7TW47MDtOU007Ozs7O047Ozs7OworMEZBQTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgVFNIQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkFCO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBEWkE7TW47MDtOU007Ozs7O047Ozs7OworMEZBQztUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgRFpIQTtNbjswO05TTTswRkFCIDBGQjc7Ozs7Tjs7Ozs7CiswRkFEO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBXQTtNbjswO05TTTs7Ozs7Tjs7Kjs7OworMEZBRTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgWkhBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQUY7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFpBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQjA7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIC1BO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQjE7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFlBO01uOzA7TlNNOzs7OztOOzsqOzs7CiswRkIyO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBSQTtNbjswO05TTTs7Ozs7Tjs7Kjs7OworMEZCMztUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgTEE7TW47MDtOU007Ozs7O047Ozs7OworMEZCNDtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgU0hBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQjU7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFNTQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkI2O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBTQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkI3O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBIQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkI4O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQjk7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEtTU0E7TW47MDtOU007MEY5MCAwRkI1Ozs7O047Ozs7OworMEZCQTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgRklYRUQtRk9STSBXQTtNbjswO05TTTs7Ozs7Tjs7Kjs7OworMEZCQjtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgRklYRUQtRk9STSBZQTtNbjswO05TTTs7Ozs7Tjs7Kjs7OworMEZCQztUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgRklYRUQtRk9STSBSQTtNbjswO05TTTs7Ozs7Tjs7Kjs7OworMEZCRTtUSUJFVEFOIEtVIFJVIEtIQTtTbzswO0w7Ozs7O047O2t1cnVrYTs7OworMEZCRjtUSUJFVEFOIEtVIFJVIEtIQSBCWkhJIE1JRyBDQU47U287MDtMOzs7OztOOztrdXJ1a2Egc2hpIG1payBjaGVuOzs7CiswRkMwO1RJQkVUQU4gQ0FOVElMTEFUSU9OIFNJR04gSEVBVlkgQkVBVDtTbzswO0w7Ozs7O047Ozs7OworMEZDMTtUSUJFVEFOIENBTlRJTExBVElPTiBTSUdOIExJR0hUIEJFQVQ7U287MDtMOzs7OztOOzs7OzsKKzBGQzI7VElCRVRBTiBDQU5USUxMQVRJT04gU0lHTiBDQU5HIFRFLVU7U287MDtMOzs7OztOOztjaGFuZyB0eXU7OzsKKzBGQzM7VElCRVRBTiBDQU5USUxMQVRJT04gU0lHTiBTQlVCIC1DSEFMO1NvOzA7TDs7Ozs7Tjs7YnViIGNoZXk7OzsKKzBGQzQ7VElCRVRBTiBTWU1CT0wgRFJJTCBCVTtTbzswO0w7Ozs7O047O2RyaWxidTs7OworMEZDNTtUSUJFVEFOIFNZTUJPTCBSRE8gUkpFO1NvOzA7TDs7Ozs7Tjs7ZG9yamU7OzsKKzBGQzY7VElCRVRBTiBTWU1CT0wgUEFETUEgR0RBTjtNbjsyMjA7TlNNOzs7OztOOztwZW1hIGRlbjs7OworMEZDNztUSUJFVEFOIFNZTUJPTCBSRE8gUkpFIFJHWUEgR1JBTTtTbzswO0w7Ozs7O047O2RvcmplIGd5YSBkcmFtOzs7CiswRkM4O1RJQkVUQU4gU1lNQk9MIFBIVVIgUEE7U287MDtMOzs7OztOOztwaHVyYmE7OzsKKzBGQzk7VElCRVRBTiBTWU1CT0wgTk9SIEJVO1NvOzA7TDs7Ozs7Tjs7bm9yYnU7OzsKKzBGQ0E7VElCRVRBTiBTWU1CT0wgTk9SIEJVIE5ZSVMgLUtIWUlMO1NvOzA7TDs7Ozs7Tjs7bm9yYnUgbnlpIGtoeWk7OzsKKzBGQ0I7VElCRVRBTiBTWU1CT0wgTk9SIEJVIEdTVU0gLUtIWUlMO1NvOzA7TDs7Ozs7Tjs7bm9yYnUgc3VtIGtoeWk7OzsKKzBGQ0M7VElCRVRBTiBTWU1CT0wgTk9SIEJVIEJaSEkgLUtIWUlMO1NvOzA7TDs7Ozs7Tjs7bm9yYnUgc2hpIGtoeWk7OzsKKzBGQ0Y7VElCRVRBTiBTSUdOIFJERUwgTkFHIEdTVU07U287MDtMOzs7OztOOztkZW5hIHN1bTs7OworMTAwMDtNWUFOTUFSIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMTAwMTtNWUFOTUFSIExFVFRFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMDI7TVlBTk1BUiBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzEwMDM7TVlBTk1BUiBMRVRURVIgR0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA0O01ZQU5NQVIgTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMTAwNTtNWUFOTUFSIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMTAwNjtNWUFOTUFSIExFVFRFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMDc7TVlBTk1BUiBMRVRURVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzEwMDg7TVlBTk1BUiBMRVRURVIgSkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA5O01ZQU5NQVIgTEVUVEVSIE5ZQTtMbzswO0w7Ozs7O047Ozs7OworMTAwQTtNWUFOTUFSIExFVFRFUiBOTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBCO01ZQU5NQVIgTEVUVEVSIFRUQTtMbzswO0w7Ozs7O047Ozs7OworMTAwQztNWUFOTUFSIExFVFRFUiBUVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBEO01ZQU5NQVIgTEVUVEVSIEREQTtMbzswO0w7Ozs7O047Ozs7OworMTAwRTtNWUFOTUFSIExFVFRFUiBEREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBGO01ZQU5NQVIgTEVUVEVSIE5OQTtMbzswO0w7Ozs7O047Ozs7OworMTAxMDtNWUFOTUFSIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMTAxMTtNWUFOTUFSIExFVFRFUiBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMTI7TVlBTk1BUiBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzEwMTM7TVlBTk1BUiBMRVRURVIgREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDE0O01ZQU5NQVIgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDE1O01ZQU5NQVIgTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDE2O01ZQU5NQVIgTEVUVEVSIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMTAxNztNWUFOTUFSIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMTAxODtNWUFOTUFSIExFVFRFUiBCSEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMTk7TVlBTk1BUiBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzEwMUE7TVlBTk1BUiBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzEwMUI7TVlBTk1BUiBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzEwMUM7TVlBTk1BUiBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMUQ7TVlBTk1BUiBMRVRURVIgV0E7TG87MDtMOzs7OztOOzs7OzsKKzEwMUU7TVlBTk1BUiBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzEwMUY7TVlBTk1BUiBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMjA7TVlBTk1BUiBMRVRURVIgTExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDIxO01ZQU5NQVIgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMjM7TVlBTk1BUiBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMTAyNDtNWUFOTUFSIExFVFRFUiBJSTtMbzswO0w7Ozs7O047Ozs7OworMTAyNTtNWUFOTUFSIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDI2O01ZQU5NQVIgTEVUVEVSIFVVO0xvOzA7TDsxMDI1IDEwMkU7Ozs7Tjs7Ozs7CisxMDI3O01ZQU5NQVIgTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzEwMjk7TVlBTk1BUiBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMTAyQTtNWUFOTUFSIExFVFRFUiBBVTtMbzswO0w7Ozs7O047Ozs7OworMTAyQztNWUFOTUFSIFZPV0VMIFNJR04gQUE7TWM7MDtMOzs7OztOOzs7OzsKKzEwMkQ7TVlBTk1BUiBWT1dFTCBTSUdOIEk7TW47MDtOU007Ozs7O047Ozs7OworMTAyRTtNWUFOTUFSIFZPV0VMIFNJR04gSUk7TW47MDtOU007Ozs7O047Ozs7OworMTAyRjtNWUFOTUFSIFZPV0VMIFNJR04gVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxMDMwO01ZQU5NQVIgVk9XRUwgU0lHTiBVVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxMDMxO01ZQU5NQVIgVk9XRUwgU0lHTiBFO01jOzA7TDs7Ozs7Tjs7Ozs7CisxMDMyO01ZQU5NQVIgVk9XRUwgU0lHTiBBSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxMDM2O01ZQU5NQVIgU0lHTiBBTlVTVkFSQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxMDM3O01ZQU5NQVIgU0lHTiBET1QgQkVMT1c7TW47NztOU007Ozs7O047Ozs7OworMTAzODtNWUFOTUFSIFNJR04gVklTQVJHQTtNYzswO0w7Ozs7O047Ozs7OworMTAzOTtNWUFOTUFSIFNJR04gVklSQU1BO01uOzk7TlNNOzs7OztOOzs7OzsKKzEwNDA7TVlBTk1BUiBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CisxMDQxO01ZQU5NQVIgRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CisxMDQyO01ZQU5NQVIgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CisxMDQzO01ZQU5NQVIgRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzEwNDQ7TVlBTk1BUiBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CisxMDQ1O01ZQU5NQVIgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMTA0NjtNWUFOTUFSIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMTA0NztNWUFOTUFSIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CisxMDQ4O01ZQU5NQVIgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzEwNDk7TVlBTk1BUiBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CisxMDRBO01ZQU5NQVIgU0lHTiBMSVRUTEUgU0VDVElPTjtQbzswO0w7Ozs7O047Ozs7OworMTA0QjtNWUFOTUFSIFNJR04gU0VDVElPTjtQbzswO0w7Ozs7O047Ozs7OworMTA0QztNWUFOTUFSIFNZTUJPTCBMT0NBVElWRTtQbzswO0w7Ozs7O047Ozs7OworMTA0RDtNWUFOTUFSIFNZTUJPTCBDT01QTEVURUQ7UG87MDtMOzs7OztOOzs7OzsKKzEwNEU7TVlBTk1BUiBTWU1CT0wgQUZPUkVNRU5USU9ORUQ7UG87MDtMOzs7OztOOzs7OzsKKzEwNEY7TVlBTk1BUiBTWU1CT0wgR0VOSVRJVkU7UG87MDtMOzs7OztOOzs7OzsKKzEwNTA7TVlBTk1BUiBMRVRURVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDUxO01ZQU5NQVIgTEVUVEVSIFNTQTtMbzswO0w7Ozs7O047Ozs7OworMTA1MjtNWUFOTUFSIExFVFRFUiBWT0NBTElDIFI7TG87MDtMOzs7OztOOzs7OzsKKzEwNTM7TVlBTk1BUiBMRVRURVIgVk9DQUxJQyBSUjtMbzswO0w7Ozs7O047Ozs7OworMTA1NDtNWUFOTUFSIExFVFRFUiBWT0NBTElDIEw7TG87MDtMOzs7OztOOzs7OzsKKzEwNTU7TVlBTk1BUiBMRVRURVIgVk9DQUxJQyBMTDtMbzswO0w7Ozs7O047Ozs7OworMTA1NjtNWUFOTUFSIFZPV0VMIFNJR04gVk9DQUxJQyBSO01jOzA7TDs7Ozs7Tjs7Ozs7CisxMDU3O01ZQU5NQVIgVk9XRUwgU0lHTiBWT0NBTElDIFJSO01jOzA7TDs7Ozs7Tjs7Ozs7CisxMDU4O01ZQU5NQVIgVk9XRUwgU0lHTiBWT0NBTElDIEw7TW47MDtOU007Ozs7O047Ozs7OworMTA1OTtNWUFOTUFSIFZPV0VMIFNJR04gVk9DQUxJQyBMTDtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxMEEwO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEFOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwQTE7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgQkFOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwQTI7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgR0FOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwQTM7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgRE9OO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwQTQ7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgRU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBBNTtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBWSU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBBNjtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBaRU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBBNztHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBUQU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBBODtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBJTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEE5O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEtBTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEFBO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIExBUztMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEFCO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIE1BTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEFDO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIE5BUjtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEFEO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIE9OO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwQUU7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgUEFSO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwQUY7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgWkhBUjtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEIwO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFJBRTtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEIxO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFNBTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEIyO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFRBUjtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEIzO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFVOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwQjQ7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgUEhBUjtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEI1O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEtIQVI7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBCNjtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBHSEFOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwQjc7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgUUFSO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwQjg7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgU0hJTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEI5O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIENISU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBCQTtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBDQU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBCQjtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBKSUw7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBCQztHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBDSUw7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBCRDtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBDSEFSO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwQkU7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgWEFOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwQkY7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgSkhBTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEMwO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEhBRTtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEMxO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEhFO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwQzI7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgSElFO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwQzM7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgV0U7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBDNDtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBIQVI7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBDNTtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBIT0U7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBEMDtHRU9SR0lBTiBMRVRURVIgQU47TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBBTjs7OzsKKzEwRDE7R0VPUkdJQU4gTEVUVEVSIEJBTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEJBTjs7OzsKKzEwRDI7R0VPUkdJQU4gTEVUVEVSIEdBTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEdBTjs7OzsKKzEwRDM7R0VPUkdJQU4gTEVUVEVSIERPTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIERPTjs7OzsKKzEwRDQ7R0VPUkdJQU4gTEVUVEVSIEVOO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgRU47Ozs7CisxMEQ1O0dFT1JHSUFOIExFVFRFUiBWSU47TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBWSU47Ozs7CisxMEQ2O0dFT1JHSUFOIExFVFRFUiBaRU47TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBaRU47Ozs7CisxMEQ3O0dFT1JHSUFOIExFVFRFUiBUQU47TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBUQU47Ozs7CisxMEQ4O0dFT1JHSUFOIExFVFRFUiBJTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIElOOzs7OworMTBEOTtHRU9SR0lBTiBMRVRURVIgS0FOO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgS0FOOzs7OworMTBEQTtHRU9SR0lBTiBMRVRURVIgTEFTO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgTEFTOzs7OworMTBEQjtHRU9SR0lBTiBMRVRURVIgTUFOO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgTUFOOzs7OworMTBEQztHRU9SR0lBTiBMRVRURVIgTkFSO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgTkFSOzs7OworMTBERDtHRU9SR0lBTiBMRVRURVIgT047TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBPTjs7OzsKKzEwREU7R0VPUkdJQU4gTEVUVEVSIFBBUjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFBBUjs7OzsKKzEwREY7R0VPUkdJQU4gTEVUVEVSIFpIQVI7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBaSEFSOzs7OworMTBFMDtHRU9SR0lBTiBMRVRURVIgUkFFO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgUkFFOzs7OworMTBFMTtHRU9SR0lBTiBMRVRURVIgU0FOO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgU0FOOzs7OworMTBFMjtHRU9SR0lBTiBMRVRURVIgVEFSO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgVEFSOzs7OworMTBFMztHRU9SR0lBTiBMRVRURVIgVU47TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBVTjs7OzsKKzEwRTQ7R0VPUkdJQU4gTEVUVEVSIFBIQVI7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBQSEFSOzs7OworMTBFNTtHRU9SR0lBTiBMRVRURVIgS0hBUjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEtIQVI7Ozs7CisxMEU2O0dFT1JHSUFOIExFVFRFUiBHSEFOO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgR0hBTjs7OzsKKzEwRTc7R0VPUkdJQU4gTEVUVEVSIFFBUjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFFBUjs7OzsKKzEwRTg7R0VPUkdJQU4gTEVUVEVSIFNISU47TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBTSElOOzs7OworMTBFOTtHRU9SR0lBTiBMRVRURVIgQ0hJTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIENISU47Ozs7CisxMEVBO0dFT1JHSUFOIExFVFRFUiBDQU47TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBDQU47Ozs7CisxMEVCO0dFT1JHSUFOIExFVFRFUiBKSUw7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBKSUw7Ozs7CisxMEVDO0dFT1JHSUFOIExFVFRFUiBDSUw7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBDSUw7Ozs7CisxMEVEO0dFT1JHSUFOIExFVFRFUiBDSEFSO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgQ0hBUjs7OzsKKzEwRUU7R0VPUkdJQU4gTEVUVEVSIFhBTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFhBTjs7OzsKKzEwRUY7R0VPUkdJQU4gTEVUVEVSIEpIQU47TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBKSEFOOzs7OworMTBGMDtHRU9SR0lBTiBMRVRURVIgSEFFO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgSEFFOzs7OworMTBGMTtHRU9SR0lBTiBMRVRURVIgSEU7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBIRTs7OzsKKzEwRjI7R0VPUkdJQU4gTEVUVEVSIEhJRTtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEhJRTs7OzsKKzEwRjM7R0VPUkdJQU4gTEVUVEVSIFdFO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgV0U7Ozs7CisxMEY0O0dFT1JHSUFOIExFVFRFUiBIQVI7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBIQVI7Ozs7CisxMEY1O0dFT1JHSUFOIExFVFRFUiBIT0U7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBIT0U7Ozs7CisxMEY2O0dFT1JHSUFOIExFVFRFUiBGSTtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEZJOzs7OworMTBGQjtHRU9SR0lBTiBQQVJBR1JBUEggU0VQQVJBVE9SO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxMTAwO0hBTkdVTCBDSE9TRU9ORyBLSVlFT0s7TG87MDtMOzs7OztOOztnICo7OzsKKzExMDE7SEFOR1VMIENIT1NFT05HIFNTQU5HS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Z2cgKjs7OworMTEwMjtIQU5HVUwgQ0hPU0VPTkcgTklFVU47TG87MDtMOzs7OztOOztuICo7OzsKKzExMDM7SEFOR1VMIENIT1NFT05HIFRJS0VVVDtMbzswO0w7Ozs7O047O2QgKjs7OworMTEwNDtIQU5HVUwgQ0hPU0VPTkcgU1NBTkdUSUtFVVQ7TG87MDtMOzs7OztOOztkZCAqOzs7CisxMTA1O0hBTkdVTCBDSE9TRU9ORyBSSUVVTDtMbzswO0w7Ozs7O047O3IgKjs7OworMTEwNjtIQU5HVUwgQ0hPU0VPTkcgTUlFVU07TG87MDtMOzs7OztOOzttICo7OzsKKzExMDc7SEFOR1VMIENIT1NFT05HIFBJRVVQO0xvOzA7TDs7Ozs7Tjs7YiAqOzs7CisxMTA4O0hBTkdVTCBDSE9TRU9ORyBTU0FOR1BJRVVQO0xvOzA7TDs7Ozs7Tjs7YmIgKjs7OworMTEwOTtIQU5HVUwgQ0hPU0VPTkcgU0lPUztMbzswO0w7Ozs7O047O3MgKjs7OworMTEwQTtIQU5HVUwgQ0hPU0VPTkcgU1NBTkdTSU9TO0xvOzA7TDs7Ozs7Tjs7c3MgKjs7OworMTEwQjtIQU5HVUwgQ0hPU0VPTkcgSUVVTkc7TG87MDtMOzs7OztOOzs7OzsKKzExMEM7SEFOR1VMIENIT1NFT05HIENJRVVDO0xvOzA7TDs7Ozs7Tjs7aiAqOzs7CisxMTBEO0hBTkdVTCBDSE9TRU9ORyBTU0FOR0NJRVVDO0xvOzA7TDs7Ozs7Tjs7amogKjs7OworMTEwRTtIQU5HVUwgQ0hPU0VPTkcgQ0hJRVVDSDtMbzswO0w7Ozs7O047O2MgKjs7OworMTEwRjtIQU5HVUwgQ0hPU0VPTkcgS0hJRVVLSDtMbzswO0w7Ozs7O047O2sgKjs7OworMTExMDtIQU5HVUwgQ0hPU0VPTkcgVEhJRVVUSDtMbzswO0w7Ozs7O047O3QgKjs7OworMTExMTtIQU5HVUwgQ0hPU0VPTkcgUEhJRVVQSDtMbzswO0w7Ozs7O047O3AgKjs7OworMTExMjtIQU5HVUwgQ0hPU0VPTkcgSElFVUg7TG87MDtMOzs7OztOOztoICo7OzsKKzExMTM7SEFOR1VMIENIT1NFT05HIE5JRVVOLUtJWUVPSztMbzswO0w7Ozs7O047Ozs7OworMTExNDtIQU5HVUwgQ0hPU0VPTkcgU1NBTkdOSUVVTjtMbzswO0w7Ozs7O047Ozs7OworMTExNTtIQU5HVUwgQ0hPU0VPTkcgTklFVU4tVElLRVVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTE2O0hBTkdVTCBDSE9TRU9ORyBOSUVVTi1QSUVVUDtMbzswO0w7Ozs7O047Ozs7OworMTExNztIQU5HVUwgQ0hPU0VPTkcgVElLRVVULUtJWUVPSztMbzswO0w7Ozs7O047Ozs7OworMTExODtIQU5HVUwgQ0hPU0VPTkcgUklFVUwtTklFVU47TG87MDtMOzs7OztOOzs7OzsKKzExMTk7SEFOR1VMIENIT1NFT05HIFNTQU5HUklFVUw7TG87MDtMOzs7OztOOzs7OzsKKzExMUE7SEFOR1VMIENIT1NFT05HIFJJRVVMLUhJRVVIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTFCO0hBTkdVTCBDSE9TRU9ORyBLQVBZRU9VTlJJRVVMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTFDO0hBTkdVTCBDSE9TRU9ORyBNSUVVTS1QSUVVUDtMbzswO0w7Ozs7O047Ozs7OworMTExRDtIQU5HVUwgQ0hPU0VPTkcgS0FQWUVPVU5NSUVVTTtMbzswO0w7Ozs7O047Ozs7OworMTExRTtIQU5HVUwgQ0hPU0VPTkcgUElFVVAtS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTFGO0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1OSUVVTjtMbzswO0w7Ozs7O047Ozs7OworMTEyMDtIQU5HVUwgQ0hPU0VPTkcgUElFVVAtVElLRVVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTIxO0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTIyO0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1TSU9TLUtJWUVPSztMbzswO0w7Ozs7O047Ozs7OworMTEyMztIQU5HVUwgQ0hPU0VPTkcgUElFVVAtU0lPUy1USUtFVVQ7TG87MDtMOzs7OztOOzs7OzsKKzExMjQ7SEFOR1VMIENIT1NFT05HIFBJRVVQLVNJT1MtUElFVVA7TG87MDtMOzs7OztOOzs7OzsKKzExMjU7SEFOR1VMIENIT1NFT05HIFBJRVVQLVNTQU5HU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTEyNjtIQU5HVUwgQ0hPU0VPTkcgUElFVVAtU0lPUy1DSUVVQztMbzswO0w7Ozs7O047Ozs7OworMTEyNztIQU5HVUwgQ0hPU0VPTkcgUElFVVAtQ0lFVUM7TG87MDtMOzs7OztOOzs7OzsKKzExMjg7SEFOR1VMIENIT1NFT05HIFBJRVVQLUNISUVVQ0g7TG87MDtMOzs7OztOOzs7OzsKKzExMjk7SEFOR1VMIENIT1NFT05HIFBJRVVQLVRISUVVVEg7TG87MDtMOzs7OztOOzs7OzsKKzExMkE7SEFOR1VMIENIT1NFT05HIFBJRVVQLVBISUVVUEg7TG87MDtMOzs7OztOOzs7OzsKKzExMkI7SEFOR1VMIENIT1NFT05HIEtBUFlFT1VOUElFVVA7TG87MDtMOzs7OztOOzs7OzsKKzExMkM7SEFOR1VMIENIT1NFT05HIEtBUFlFT1VOU1NBTkdQSUVVUDtMbzswO0w7Ozs7O047Ozs7OworMTEyRDtIQU5HVUwgQ0hPU0VPTkcgU0lPUy1LSVlFT0s7TG87MDtMOzs7OztOOzs7OzsKKzExMkU7SEFOR1VMIENIT1NFT05HIFNJT1MtTklFVU47TG87MDtMOzs7OztOOzs7OzsKKzExMkY7SEFOR1VMIENIT1NFT05HIFNJT1MtVElLRVVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTMwO0hBTkdVTCBDSE9TRU9ORyBTSU9TLVJJRVVMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTMxO0hBTkdVTCBDSE9TRU9ORyBTSU9TLU1JRVVNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTMyO0hBTkdVTCBDSE9TRU9ORyBTSU9TLVBJRVVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTMzO0hBTkdVTCBDSE9TRU9ORyBTSU9TLVBJRVVQLUtJWUVPSztMbzswO0w7Ozs7O047Ozs7OworMTEzNDtIQU5HVUwgQ0hPU0VPTkcgU0lPUy1TU0FOR1NJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExMzU7SEFOR1VMIENIT1NFT05HIFNJT1MtSUVVTkc7TG87MDtMOzs7OztOOzs7OzsKKzExMzY7SEFOR1VMIENIT1NFT05HIFNJT1MtQ0lFVUM7TG87MDtMOzs7OztOOzs7OzsKKzExMzc7SEFOR1VMIENIT1NFT05HIFNJT1MtQ0hJRVVDSDtMbzswO0w7Ozs7O047Ozs7OworMTEzODtIQU5HVUwgQ0hPU0VPTkcgU0lPUy1LSElFVUtIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTM5O0hBTkdVTCBDSE9TRU9ORyBTSU9TLVRISUVVVEg7TG87MDtMOzs7OztOOzs7OzsKKzExM0E7SEFOR1VMIENIT1NFT05HIFNJT1MtUEhJRVVQSDtMbzswO0w7Ozs7O047Ozs7OworMTEzQjtIQU5HVUwgQ0hPU0VPTkcgU0lPUy1ISUVVSDtMbzswO0w7Ozs7O047Ozs7OworMTEzQztIQU5HVUwgQ0hPU0VPTkcgQ0hJVFVFVU1TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTNEO0hBTkdVTCBDSE9TRU9ORyBDSElUVUVVTVNTQU5HU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTEzRTtIQU5HVUwgQ0hPU0VPTkcgQ0VPTkdDSElFVU1TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTNGO0hBTkdVTCBDSE9TRU9ORyBDRU9OR0NISUVVTVNTQU5HU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTE0MDtIQU5HVUwgQ0hPU0VPTkcgUEFOU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTE0MTtIQU5HVUwgQ0hPU0VPTkcgSUVVTkctS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTQyO0hBTkdVTCBDSE9TRU9ORyBJRVVORy1USUtFVVQ7TG87MDtMOzs7OztOOzs7OzsKKzExNDM7SEFOR1VMIENIT1NFT05HIElFVU5HLU1JRVVNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTQ0O0hBTkdVTCBDSE9TRU9ORyBJRVVORy1QSUVVUDtMbzswO0w7Ozs7O047Ozs7OworMTE0NTtIQU5HVUwgQ0hPU0VPTkcgSUVVTkctU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTE0NjtIQU5HVUwgQ0hPU0VPTkcgSUVVTkctUEFOU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTE0NztIQU5HVUwgQ0hPU0VPTkcgU1NBTkdJRVVORztMbzswO0w7Ozs7O047Ozs7OworMTE0ODtIQU5HVUwgQ0hPU0VPTkcgSUVVTkctQ0lFVUM7TG87MDtMOzs7OztOOzs7OzsKKzExNDk7SEFOR1VMIENIT1NFT05HIElFVU5HLUNISUVVQ0g7TG87MDtMOzs7OztOOzs7OzsKKzExNEE7SEFOR1VMIENIT1NFT05HIElFVU5HLVRISUVVVEg7TG87MDtMOzs7OztOOzs7OzsKKzExNEI7SEFOR1VMIENIT1NFT05HIElFVU5HLVBISUVVUEg7TG87MDtMOzs7OztOOzs7OzsKKzExNEM7SEFOR1VMIENIT1NFT05HIFlFU0lFVU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTREO0hBTkdVTCBDSE9TRU9ORyBDSUVVQy1JRVVORztMbzswO0w7Ozs7O047Ozs7OworMTE0RTtIQU5HVUwgQ0hPU0VPTkcgQ0hJVFVFVU1DSUVVQztMbzswO0w7Ozs7O047Ozs7OworMTE0RjtIQU5HVUwgQ0hPU0VPTkcgQ0hJVFVFVU1TU0FOR0NJRVVDO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTUwO0hBTkdVTCBDSE9TRU9ORyBDRU9OR0NISUVVTUNJRVVDO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTUxO0hBTkdVTCBDSE9TRU9ORyBDRU9OR0NISUVVTVNTQU5HQ0lFVUM7TG87MDtMOzs7OztOOzs7OzsKKzExNTI7SEFOR1VMIENIT1NFT05HIENISUVVQ0gtS0hJRVVLSDtMbzswO0w7Ozs7O047Ozs7OworMTE1MztIQU5HVUwgQ0hPU0VPTkcgQ0hJRVVDSC1ISUVVSDtMbzswO0w7Ozs7O047Ozs7OworMTE1NDtIQU5HVUwgQ0hPU0VPTkcgQ0hJVFVFVU1DSElFVUNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTU1O0hBTkdVTCBDSE9TRU9ORyBDRU9OR0NISUVVTUNISUVVQ0g7TG87MDtMOzs7OztOOzs7OzsKKzExNTY7SEFOR1VMIENIT1NFT05HIFBISUVVUEgtUElFVVA7TG87MDtMOzs7OztOOzs7OzsKKzExNTc7SEFOR1VMIENIT1NFT05HIEtBUFlFT1VOUEhJRVVQSDtMbzswO0w7Ozs7O047Ozs7OworMTE1ODtIQU5HVUwgQ0hPU0VPTkcgU1NBTkdISUVVSDtMbzswO0w7Ozs7O047Ozs7OworMTE1OTtIQU5HVUwgQ0hPU0VPTkcgWUVPUklOSElFVUg7TG87MDtMOzs7OztOOzs7OzsKKzExNUY7SEFOR1VMIENIT1NFT05HIEZJTExFUjtMbzswO0w7Ozs7O047Ozs7OworMTE2MDtIQU5HVUwgSlVOR1NFT05HIEZJTExFUjtMbzswO0w7Ozs7O047Ozs7OworMTE2MTtIQU5HVUwgSlVOR1NFT05HIEE7TG87MDtMOzs7OztOOzs7OzsKKzExNjI7SEFOR1VMIEpVTkdTRU9ORyBBRTtMbzswO0w7Ozs7O047Ozs7OworMTE2MztIQU5HVUwgSlVOR1NFT05HIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTY0O0hBTkdVTCBKVU5HU0VPTkcgWUFFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTY1O0hBTkdVTCBKVU5HU0VPTkcgRU87TG87MDtMOzs7OztOOzs7OzsKKzExNjY7SEFOR1VMIEpVTkdTRU9ORyBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTY3O0hBTkdVTCBKVU5HU0VPTkcgWUVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTY4O0hBTkdVTCBKVU5HU0VPTkcgWUU7TG87MDtMOzs7OztOOzs7OzsKKzExNjk7SEFOR1VMIEpVTkdTRU9ORyBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTZBO0hBTkdVTCBKVU5HU0VPTkcgV0E7TG87MDtMOzs7OztOOzs7OzsKKzExNkI7SEFOR1VMIEpVTkdTRU9ORyBXQUU7TG87MDtMOzs7OztOOzs7OzsKKzExNkM7SEFOR1VMIEpVTkdTRU9ORyBPRTtMbzswO0w7Ozs7O047Ozs7OworMTE2RDtIQU5HVUwgSlVOR1NFT05HIFlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTZFO0hBTkdVTCBKVU5HU0VPTkcgVTtMbzswO0w7Ozs7O047Ozs7OworMTE2RjtIQU5HVUwgSlVOR1NFT05HIFdFTztMbzswO0w7Ozs7O047Ozs7OworMTE3MDtIQU5HVUwgSlVOR1NFT05HIFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTcxO0hBTkdVTCBKVU5HU0VPTkcgV0k7TG87MDtMOzs7OztOOzs7OzsKKzExNzI7SEFOR1VMIEpVTkdTRU9ORyBZVTtMbzswO0w7Ozs7O047Ozs7OworMTE3MztIQU5HVUwgSlVOR1NFT05HIEVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTc0O0hBTkdVTCBKVU5HU0VPTkcgWUk7TG87MDtMOzs7OztOOzs7OzsKKzExNzU7SEFOR1VMIEpVTkdTRU9ORyBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTc2O0hBTkdVTCBKVU5HU0VPTkcgQS1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTc3O0hBTkdVTCBKVU5HU0VPTkcgQS1VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTc4O0hBTkdVTCBKVU5HU0VPTkcgWUEtTztMbzswO0w7Ozs7O047Ozs7OworMTE3OTtIQU5HVUwgSlVOR1NFT05HIFlBLVlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTdBO0hBTkdVTCBKVU5HU0VPTkcgRU8tTztMbzswO0w7Ozs7O047Ozs7OworMTE3QjtIQU5HVUwgSlVOR1NFT05HIEVPLVU7TG87MDtMOzs7OztOOzs7OzsKKzExN0M7SEFOR1VMIEpVTkdTRU9ORyBFTy1FVTtMbzswO0w7Ozs7O047Ozs7OworMTE3RDtIQU5HVUwgSlVOR1NFT05HIFlFTy1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTdFO0hBTkdVTCBKVU5HU0VPTkcgWUVPLVU7TG87MDtMOzs7OztOOzs7OzsKKzExN0Y7SEFOR1VMIEpVTkdTRU9ORyBPLUVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTgwO0hBTkdVTCBKVU5HU0VPTkcgTy1FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTgxO0hBTkdVTCBKVU5HU0VPTkcgTy1ZRTtMbzswO0w7Ozs7O047Ozs7OworMTE4MjtIQU5HVUwgSlVOR1NFT05HIE8tTztMbzswO0w7Ozs7O047Ozs7OworMTE4MztIQU5HVUwgSlVOR1NFT05HIE8tVTtMbzswO0w7Ozs7O047Ozs7OworMTE4NDtIQU5HVUwgSlVOR1NFT05HIFlPLVlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTg1O0hBTkdVTCBKVU5HU0VPTkcgWU8tWUFFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTg2O0hBTkdVTCBKVU5HU0VPTkcgWU8tWUVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTg3O0hBTkdVTCBKVU5HU0VPTkcgWU8tTztMbzswO0w7Ozs7O047Ozs7OworMTE4ODtIQU5HVUwgSlVOR1NFT05HIFlPLUk7TG87MDtMOzs7OztOOzs7OzsKKzExODk7SEFOR1VMIEpVTkdTRU9ORyBVLUE7TG87MDtMOzs7OztOOzs7OzsKKzExOEE7SEFOR1VMIEpVTkdTRU9ORyBVLUFFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMThCO0hBTkdVTCBKVU5HU0VPTkcgVS1FTy1FVTtMbzswO0w7Ozs7O047Ozs7OworMTE4QztIQU5HVUwgSlVOR1NFT05HIFUtWUU7TG87MDtMOzs7OztOOzs7OzsKKzExOEQ7SEFOR1VMIEpVTkdTRU9ORyBVLVU7TG87MDtMOzs7OztOOzs7OzsKKzExOEU7SEFOR1VMIEpVTkdTRU9ORyBZVS1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMThGO0hBTkdVTCBKVU5HU0VPTkcgWVUtRU87TG87MDtMOzs7OztOOzs7OzsKKzExOTA7SEFOR1VMIEpVTkdTRU9ORyBZVS1FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTkxO0hBTkdVTCBKVU5HU0VPTkcgWVUtWUVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTkyO0hBTkdVTCBKVU5HU0VPTkcgWVUtWUU7TG87MDtMOzs7OztOOzs7OzsKKzExOTM7SEFOR1VMIEpVTkdTRU9ORyBZVS1VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTk0O0hBTkdVTCBKVU5HU0VPTkcgWVUtSTtMbzswO0w7Ozs7O047Ozs7OworMTE5NTtIQU5HVUwgSlVOR1NFT05HIEVVLVU7TG87MDtMOzs7OztOOzs7OzsKKzExOTY7SEFOR1VMIEpVTkdTRU9ORyBFVS1FVTtMbzswO0w7Ozs7O047Ozs7OworMTE5NztIQU5HVUwgSlVOR1NFT05HIFlJLVU7TG87MDtMOzs7OztOOzs7OzsKKzExOTg7SEFOR1VMIEpVTkdTRU9ORyBJLUE7TG87MDtMOzs7OztOOzs7OzsKKzExOTk7SEFOR1VMIEpVTkdTRU9ORyBJLVlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTlBO0hBTkdVTCBKVU5HU0VPTkcgSS1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTlCO0hBTkdVTCBKVU5HU0VPTkcgSS1VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTlDO0hBTkdVTCBKVU5HU0VPTkcgSS1FVTtMbzswO0w7Ozs7O047Ozs7OworMTE5RDtIQU5HVUwgSlVOR1NFT05HIEktQVJBRUE7TG87MDtMOzs7OztOOzs7OzsKKzExOUU7SEFOR1VMIEpVTkdTRU9ORyBBUkFFQTtMbzswO0w7Ozs7O047Ozs7OworMTE5RjtIQU5HVUwgSlVOR1NFT05HIEFSQUVBLUVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUEwO0hBTkdVTCBKVU5HU0VPTkcgQVJBRUEtVTtMbzswO0w7Ozs7O047Ozs7OworMTFBMTtIQU5HVUwgSlVOR1NFT05HIEFSQUVBLUk7TG87MDtMOzs7OztOOzs7OzsKKzExQTI7SEFOR1VMIEpVTkdTRU9ORyBTU0FOR0FSQUVBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUE4O0hBTkdVTCBKT05HU0VPTkcgS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7ZyAqOzs7CisxMUE5O0hBTkdVTCBKT05HU0VPTkcgU1NBTkdLSVlFT0s7TG87MDtMOzs7OztOOztnZyAqOzs7CisxMUFBO0hBTkdVTCBKT05HU0VPTkcgS0lZRU9LLVNJT1M7TG87MDtMOzs7OztOOztncyAqOzs7CisxMUFCO0hBTkdVTCBKT05HU0VPTkcgTklFVU47TG87MDtMOzs7OztOOztuICo7OzsKKzExQUM7SEFOR1VMIEpPTkdTRU9ORyBOSUVVTi1DSUVVQztMbzswO0w7Ozs7O047O25qICo7OzsKKzExQUQ7SEFOR1VMIEpPTkdTRU9ORyBOSUVVTi1ISUVVSDtMbzswO0w7Ozs7O047O25oICo7OzsKKzExQUU7SEFOR1VMIEpPTkdTRU9ORyBUSUtFVVQ7TG87MDtMOzs7OztOOztkICo7OzsKKzExQUY7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTDtMbzswO0w7Ozs7O047O2wgKjs7OworMTFCMDtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLUtJWUVPSztMbzswO0w7Ozs7O047O2xnICo7OzsKKzExQjE7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1NSUVVTTtMbzswO0w7Ozs7O047O2xtICo7OzsKKzExQjI7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1QSUVVUDtMbzswO0w7Ozs7O047O2xiICo7OzsKKzExQjM7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1TSU9TO0xvOzA7TDs7Ozs7Tjs7bHMgKjs7OworMTFCNDtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLVRISUVVVEg7TG87MDtMOzs7OztOOztsdCAqOzs7CisxMUI1O0hBTkdVTCBKT05HU0VPTkcgUklFVUwtUEhJRVVQSDtMbzswO0w7Ozs7O047O2xwICo7OzsKKzExQjY7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1ISUVVSDtMbzswO0w7Ozs7O047O2xoICo7OzsKKzExQjc7SEFOR1VMIEpPTkdTRU9ORyBNSUVVTTtMbzswO0w7Ozs7O047O20gKjs7OworMTFCODtIQU5HVUwgSk9OR1NFT05HIFBJRVVQO0xvOzA7TDs7Ozs7Tjs7YiAqOzs7CisxMUI5O0hBTkdVTCBKT05HU0VPTkcgUElFVVAtU0lPUztMbzswO0w7Ozs7O047O2JzICo7OzsKKzExQkE7SEFOR1VMIEpPTkdTRU9ORyBTSU9TO0xvOzA7TDs7Ozs7Tjs7cyAqOzs7CisxMUJCO0hBTkdVTCBKT05HU0VPTkcgU1NBTkdTSU9TO0xvOzA7TDs7Ozs7Tjs7c3MgKjs7OworMTFCQztIQU5HVUwgSk9OR1NFT05HIElFVU5HO0xvOzA7TDs7Ozs7Tjs7bmcgKjs7OworMTFCRDtIQU5HVUwgSk9OR1NFT05HIENJRVVDO0xvOzA7TDs7Ozs7Tjs7aiAqOzs7CisxMUJFO0hBTkdVTCBKT05HU0VPTkcgQ0hJRVVDSDtMbzswO0w7Ozs7O047O2MgKjs7OworMTFCRjtIQU5HVUwgSk9OR1NFT05HIEtISUVVS0g7TG87MDtMOzs7OztOOztrICo7OzsKKzExQzA7SEFOR1VMIEpPTkdTRU9ORyBUSElFVVRIO0xvOzA7TDs7Ozs7Tjs7dCAqOzs7CisxMUMxO0hBTkdVTCBKT05HU0VPTkcgUEhJRVVQSDtMbzswO0w7Ozs7O047O3AgKjs7OworMTFDMjtIQU5HVUwgSk9OR1NFT05HIEhJRVVIO0xvOzA7TDs7Ozs7Tjs7aCAqOzs7CisxMUMzO0hBTkdVTCBKT05HU0VPTkcgS0lZRU9LLVJJRVVMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUM0O0hBTkdVTCBKT05HU0VPTkcgS0lZRU9LLVNJT1MtS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUM1O0hBTkdVTCBKT05HU0VPTkcgTklFVU4tS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUM2O0hBTkdVTCBKT05HU0VPTkcgTklFVU4tVElLRVVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUM3O0hBTkdVTCBKT05HU0VPTkcgTklFVU4tU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTFDODtIQU5HVUwgSk9OR1NFT05HIE5JRVVOLVBBTlNJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExQzk7SEFOR1VMIEpPTkdTRU9ORyBOSUVVTi1USElFVVRIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUNBO0hBTkdVTCBKT05HU0VPTkcgVElLRVVULUtJWUVPSztMbzswO0w7Ozs7O047Ozs7OworMTFDQjtIQU5HVUwgSk9OR1NFT05HIFRJS0VVVC1SSUVVTDtMbzswO0w7Ozs7O047Ozs7OworMTFDQztIQU5HVUwgSk9OR1NFT05HIFJJRVVMLUtJWUVPSy1TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUNEO0hBTkdVTCBKT05HU0VPTkcgUklFVUwtTklFVU47TG87MDtMOzs7OztOOzs7OzsKKzExQ0U7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1USUtFVVQ7TG87MDtMOzs7OztOOzs7OzsKKzExQ0Y7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1USUtFVVQtSElFVUg7TG87MDtMOzs7OztOOzs7OzsKKzExRDA7SEFOR1VMIEpPTkdTRU9ORyBTU0FOR1JJRVVMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUQxO0hBTkdVTCBKT05HU0VPTkcgUklFVUwtTUlFVU0tS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUQyO0hBTkdVTCBKT05HU0VPTkcgUklFVUwtTUlFVU0tU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTFEMztIQU5HVUwgSk9OR1NFT05HIFJJRVVMLVBJRVVQLVNJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExRDQ7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1QSUVVUC1ISUVVSDtMbzswO0w7Ozs7O047Ozs7OworMTFENTtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLUtBUFlFT1VOUElFVVA7TG87MDtMOzs7OztOOzs7OzsKKzExRDY7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1TU0FOR1NJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExRDc7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1QQU5TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUQ4O0hBTkdVTCBKT05HU0VPTkcgUklFVUwtS0hJRVVLSDtMbzswO0w7Ozs7O047Ozs7OworMTFEOTtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLVlFT1JJTkhJRVVIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMURBO0hBTkdVTCBKT05HU0VPTkcgTUlFVU0tS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMURCO0hBTkdVTCBKT05HU0VPTkcgTUlFVU0tUklFVUw7TG87MDtMOzs7OztOOzs7OzsKKzExREM7SEFOR1VMIEpPTkdTRU9ORyBNSUVVTS1QSUVVUDtMbzswO0w7Ozs7O047Ozs7OworMTFERDtIQU5HVUwgSk9OR1NFT05HIE1JRVVNLVNJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExREU7SEFOR1VMIEpPTkdTRU9ORyBNSUVVTS1TU0FOR1NJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExREY7SEFOR1VMIEpPTkdTRU9ORyBNSUVVTS1QQU5TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUUwO0hBTkdVTCBKT05HU0VPTkcgTUlFVU0tQ0hJRVVDSDtMbzswO0w7Ozs7O047Ozs7OworMTFFMTtIQU5HVUwgSk9OR1NFT05HIE1JRVVNLUhJRVVIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUUyO0hBTkdVTCBKT05HU0VPTkcgS0FQWUVPVU5NSUVVTTtMbzswO0w7Ozs7O047Ozs7OworMTFFMztIQU5HVUwgSk9OR1NFT05HIFBJRVVQLVJJRVVMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUU0O0hBTkdVTCBKT05HU0VPTkcgUElFVVAtUEhJRVVQSDtMbzswO0w7Ozs7O047Ozs7OworMTFFNTtIQU5HVUwgSk9OR1NFT05HIFBJRVVQLUhJRVVIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUU2O0hBTkdVTCBKT05HU0VPTkcgS0FQWUVPVU5QSUVVUDtMbzswO0w7Ozs7O047Ozs7OworMTFFNztIQU5HVUwgSk9OR1NFT05HIFNJT1MtS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUU4O0hBTkdVTCBKT05HU0VPTkcgU0lPUy1USUtFVVQ7TG87MDtMOzs7OztOOzs7OzsKKzExRTk7SEFOR1VMIEpPTkdTRU9ORyBTSU9TLVJJRVVMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUVBO0hBTkdVTCBKT05HU0VPTkcgU0lPUy1QSUVVUDtMbzswO0w7Ozs7O047Ozs7OworMTFFQjtIQU5HVUwgSk9OR1NFT05HIFBBTlNJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExRUM7SEFOR1VMIEpPTkdTRU9ORyBJRVVORy1LSVlFT0s7TG87MDtMOzs7OztOOzs7OzsKKzExRUQ7SEFOR1VMIEpPTkdTRU9ORyBJRVVORy1TU0FOR0tJWUVPSztMbzswO0w7Ozs7O047Ozs7OworMTFFRTtIQU5HVUwgSk9OR1NFT05HIFNTQU5HSUVVTkc7TG87MDtMOzs7OztOOzs7OzsKKzExRUY7SEFOR1VMIEpPTkdTRU9ORyBJRVVORy1LSElFVUtIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUYwO0hBTkdVTCBKT05HU0VPTkcgWUVTSUVVTkc7TG87MDtMOzs7OztOOzs7OzsKKzExRjE7SEFOR1VMIEpPTkdTRU9ORyBZRVNJRVVORy1TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUYyO0hBTkdVTCBKT05HU0VPTkcgWUVTSUVVTkctUEFOU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTFGMztIQU5HVUwgSk9OR1NFT05HIFBISUVVUEgtUElFVVA7TG87MDtMOzs7OztOOzs7OzsKKzExRjQ7SEFOR1VMIEpPTkdTRU9ORyBLQVBZRU9VTlBISUVVUEg7TG87MDtMOzs7OztOOzs7OzsKKzExRjU7SEFOR1VMIEpPTkdTRU9ORyBISUVVSC1OSUVVTjtMbzswO0w7Ozs7O047Ozs7OworMTFGNjtIQU5HVUwgSk9OR1NFT05HIEhJRVVILVJJRVVMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUY3O0hBTkdVTCBKT05HU0VPTkcgSElFVUgtTUlFVU07TG87MDtMOzs7OztOOzs7OzsKKzExRjg7SEFOR1VMIEpPTkdTRU9ORyBISUVVSC1QSUVVUDtMbzswO0w7Ozs7O047Ozs7OworMTFGOTtIQU5HVUwgSk9OR1NFT05HIFlFT1JJTkhJRVVIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAwO0VUSElPUElDIFNZTExBQkxFIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAxO0VUSElPUElDIFNZTExBQkxFIEhVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAyO0VUSElPUElDIFNZTExBQkxFIEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAzO0VUSElPUElDIFNZTExBQkxFIEhBQTtMbzswO0w7Ozs7O047Ozs7OworMTIwNDtFVEhJT1BJQyBTWUxMQUJMRSBIRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyMDU7RVRISU9QSUMgU1lMTEFCTEUgSEU7TG87MDtMOzs7OztOOzs7OzsKKzEyMDY7RVRISU9QSUMgU1lMTEFCTEUgSE87TG87MDtMOzs7OztOOzs7OzsKKzEyMDg7RVRISU9QSUMgU1lMTEFCTEUgTEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMDk7RVRISU9QSUMgU1lMTEFCTEUgTFU7TG87MDtMOzs7OztOOzs7OzsKKzEyMEE7RVRISU9QSUMgU1lMTEFCTEUgTEk7TG87MDtMOzs7OztOOzs7OzsKKzEyMEI7RVRISU9QSUMgU1lMTEFCTEUgTEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBDO0VUSElPUElDIFNZTExBQkxFIExFRTtMbzswO0w7Ozs7O047Ozs7OworMTIwRDtFVEhJT1BJQyBTWUxMQUJMRSBMRTtMbzswO0w7Ozs7O047Ozs7OworMTIwRTtFVEhJT1BJQyBTWUxMQUJMRSBMTztMbzswO0w7Ozs7O047Ozs7OworMTIwRjtFVEhJT1BJQyBTWUxMQUJMRSBMV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyMTA7RVRISU9QSUMgU1lMTEFCTEUgSEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjExO0VUSElPUElDIFNZTExBQkxFIEhIVTtMbzswO0w7Ozs7O047Ozs7OworMTIxMjtFVEhJT1BJQyBTWUxMQUJMRSBISEk7TG87MDtMOzs7OztOOzs7OzsKKzEyMTM7RVRISU9QSUMgU1lMTEFCTEUgSEhBQTtMbzswO0w7Ozs7O047Ozs7OworMTIxNDtFVEhJT1BJQyBTWUxMQUJMRSBISEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE1O0VUSElPUElDIFNZTExBQkxFIEhIRTtMbzswO0w7Ozs7O047Ozs7OworMTIxNjtFVEhJT1BJQyBTWUxMQUJMRSBISE87TG87MDtMOzs7OztOOzs7OzsKKzEyMTc7RVRISU9QSUMgU1lMTEFCTEUgSEhXQTtMbzswO0w7Ozs7O047Ozs7OworMTIxODtFVEhJT1BJQyBTWUxMQUJMRSBNQTtMbzswO0w7Ozs7O047Ozs7OworMTIxOTtFVEhJT1BJQyBTWUxMQUJMRSBNVTtMbzswO0w7Ozs7O047Ozs7OworMTIxQTtFVEhJT1BJQyBTWUxMQUJMRSBNSTtMbzswO0w7Ozs7O047Ozs7OworMTIxQjtFVEhJT1BJQyBTWUxMQUJMRSBNQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyMUM7RVRISU9QSUMgU1lMTEFCTEUgTUVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFEO0VUSElPUElDIFNZTExBQkxFIE1FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFFO0VUSElPUElDIFNZTExBQkxFIE1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFGO0VUSElPUElDIFNZTExBQkxFIE1XQTtMbzswO0w7Ozs7O047Ozs7OworMTIyMDtFVEhJT1BJQyBTWUxMQUJMRSBTWkE7TG87MDtMOzs7OztOOzs7OzsKKzEyMjE7RVRISU9QSUMgU1lMTEFCTEUgU1pVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIyO0VUSElPUElDIFNZTExBQkxFIFNaSTtMbzswO0w7Ozs7O047Ozs7OworMTIyMztFVEhJT1BJQyBTWUxMQUJMRSBTWkFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI0O0VUSElPUElDIFNZTExBQkxFIFNaRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyMjU7RVRISU9QSUMgU1lMTEFCTEUgU1pFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI2O0VUSElPUElDIFNZTExBQkxFIFNaTztMbzswO0w7Ozs7O047Ozs7OworMTIyNztFVEhJT1BJQyBTWUxMQUJMRSBTWldBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI4O0VUSElPUElDIFNZTExBQkxFIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI5O0VUSElPUElDIFNZTExBQkxFIFJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJBO0VUSElPUElDIFNZTExBQkxFIFJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJCO0VUSElPUElDIFNZTExBQkxFIFJBQTtMbzswO0w7Ozs7O047Ozs7OworMTIyQztFVEhJT1BJQyBTWUxMQUJMRSBSRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyMkQ7RVRISU9QSUMgU1lMTEFCTEUgUkU7TG87MDtMOzs7OztOOzs7OzsKKzEyMkU7RVRISU9QSUMgU1lMTEFCTEUgUk87TG87MDtMOzs7OztOOzs7OzsKKzEyMkY7RVRISU9QSUMgU1lMTEFCTEUgUldBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMwO0VUSElPUElDIFNZTExBQkxFIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMxO0VUSElPUElDIFNZTExBQkxFIFNVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMyO0VUSElPUElDIFNZTExBQkxFIFNJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMzO0VUSElPUElDIFNZTExBQkxFIFNBQTtMbzswO0w7Ozs7O047Ozs7OworMTIzNDtFVEhJT1BJQyBTWUxMQUJMRSBTRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyMzU7RVRISU9QSUMgU1lMTEFCTEUgU0U7TG87MDtMOzs7OztOOzs7OzsKKzEyMzY7RVRISU9QSUMgU1lMTEFCTEUgU087TG87MDtMOzs7OztOOzs7OzsKKzEyMzc7RVRISU9QSUMgU1lMTEFCTEUgU1dBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM4O0VUSElPUElDIFNZTExBQkxFIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMTIzOTtFVEhJT1BJQyBTWUxMQUJMRSBTSFU7TG87MDtMOzs7OztOOzs7OzsKKzEyM0E7RVRISU9QSUMgU1lMTEFCTEUgU0hJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjNCO0VUSElPUElDIFNZTExBQkxFIFNIQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyM0M7RVRISU9QSUMgU1lMTEFCTEUgU0hFRTtMbzswO0w7Ozs7O047Ozs7OworMTIzRDtFVEhJT1BJQyBTWUxMQUJMRSBTSEU7TG87MDtMOzs7OztOOzs7OzsKKzEyM0U7RVRISU9QSUMgU1lMTEFCTEUgU0hPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjNGO0VUSElPUElDIFNZTExBQkxFIFNIV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyNDA7RVRISU9QSUMgU1lMTEFCTEUgUUE7TG87MDtMOzs7OztOOzs7OzsKKzEyNDE7RVRISU9QSUMgU1lMTEFCTEUgUVU7TG87MDtMOzs7OztOOzs7OzsKKzEyNDI7RVRISU9QSUMgU1lMTEFCTEUgUUk7TG87MDtMOzs7OztOOzs7OzsKKzEyNDM7RVRISU9QSUMgU1lMTEFCTEUgUUFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjQ0O0VUSElPUElDIFNZTExBQkxFIFFFRTtMbzswO0w7Ozs7O047Ozs7OworMTI0NTtFVEhJT1BJQyBTWUxMQUJMRSBRRTtMbzswO0w7Ozs7O047Ozs7OworMTI0NjtFVEhJT1BJQyBTWUxMQUJMRSBRTztMbzswO0w7Ozs7O047Ozs7OworMTI0ODtFVEhJT1BJQyBTWUxMQUJMRSBRV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyNEE7RVRISU9QSUMgU1lMTEFCTEUgUVdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjRCO0VUSElPUElDIFNZTExBQkxFIFFXQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyNEM7RVRISU9QSUMgU1lMTEFCTEUgUVdFRTtMbzswO0w7Ozs7O047Ozs7OworMTI0RDtFVEhJT1BJQyBTWUxMQUJMRSBRV0U7TG87MDtMOzs7OztOOzs7OzsKKzEyNTA7RVRISU9QSUMgU1lMTEFCTEUgUUhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjUxO0VUSElPUElDIFNZTExBQkxFIFFIVTtMbzswO0w7Ozs7O047Ozs7OworMTI1MjtFVEhJT1BJQyBTWUxMQUJMRSBRSEk7TG87MDtMOzs7OztOOzs7OzsKKzEyNTM7RVRISU9QSUMgU1lMTEFCTEUgUUhBQTtMbzswO0w7Ozs7O047Ozs7OworMTI1NDtFVEhJT1BJQyBTWUxMQUJMRSBRSEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjU1O0VUSElPUElDIFNZTExBQkxFIFFIRTtMbzswO0w7Ozs7O047Ozs7OworMTI1NjtFVEhJT1BJQyBTWUxMQUJMRSBRSE87TG87MDtMOzs7OztOOzs7OzsKKzEyNTg7RVRISU9QSUMgU1lMTEFCTEUgUUhXQTtMbzswO0w7Ozs7O047Ozs7OworMTI1QTtFVEhJT1BJQyBTWUxMQUJMRSBRSFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjVCO0VUSElPUElDIFNZTExBQkxFIFFIV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjVDO0VUSElPUElDIFNZTExBQkxFIFFIV0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjVEO0VUSElPUElDIFNZTExBQkxFIFFIV0U7TG87MDtMOzs7OztOOzs7OzsKKzEyNjA7RVRISU9QSUMgU1lMTEFCTEUgQkE7TG87MDtMOzs7OztOOzs7OzsKKzEyNjE7RVRISU9QSUMgU1lMTEFCTEUgQlU7TG87MDtMOzs7OztOOzs7OzsKKzEyNjI7RVRISU9QSUMgU1lMTEFCTEUgQkk7TG87MDtMOzs7OztOOzs7OzsKKzEyNjM7RVRISU9QSUMgU1lMTEFCTEUgQkFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjY0O0VUSElPUElDIFNZTExBQkxFIEJFRTtMbzswO0w7Ozs7O047Ozs7OworMTI2NTtFVEhJT1BJQyBTWUxMQUJMRSBCRTtMbzswO0w7Ozs7O047Ozs7OworMTI2NjtFVEhJT1BJQyBTWUxMQUJMRSBCTztMbzswO0w7Ozs7O047Ozs7OworMTI2NztFVEhJT1BJQyBTWUxMQUJMRSBCV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyNjg7RVRISU9QSUMgU1lMTEFCTEUgVkE7TG87MDtMOzs7OztOOzs7OzsKKzEyNjk7RVRISU9QSUMgU1lMTEFCTEUgVlU7TG87MDtMOzs7OztOOzs7OzsKKzEyNkE7RVRISU9QSUMgU1lMTEFCTEUgVkk7TG87MDtMOzs7OztOOzs7OzsKKzEyNkI7RVRISU9QSUMgU1lMTEFCTEUgVkFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjZDO0VUSElPUElDIFNZTExBQkxFIFZFRTtMbzswO0w7Ozs7O047Ozs7OworMTI2RDtFVEhJT1BJQyBTWUxMQUJMRSBWRTtMbzswO0w7Ozs7O047Ozs7OworMTI2RTtFVEhJT1BJQyBTWUxMQUJMRSBWTztMbzswO0w7Ozs7O047Ozs7OworMTI2RjtFVEhJT1BJQyBTWUxMQUJMRSBWV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyNzA7RVRISU9QSUMgU1lMTEFCTEUgVEE7TG87MDtMOzs7OztOOzs7OzsKKzEyNzE7RVRISU9QSUMgU1lMTEFCTEUgVFU7TG87MDtMOzs7OztOOzs7OzsKKzEyNzI7RVRISU9QSUMgU1lMTEFCTEUgVEk7TG87MDtMOzs7OztOOzs7OzsKKzEyNzM7RVRISU9QSUMgU1lMTEFCTEUgVEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjc0O0VUSElPUElDIFNZTExBQkxFIFRFRTtMbzswO0w7Ozs7O047Ozs7OworMTI3NTtFVEhJT1BJQyBTWUxMQUJMRSBURTtMbzswO0w7Ozs7O047Ozs7OworMTI3NjtFVEhJT1BJQyBTWUxMQUJMRSBUTztMbzswO0w7Ozs7O047Ozs7OworMTI3NztFVEhJT1BJQyBTWUxMQUJMRSBUV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyNzg7RVRISU9QSUMgU1lMTEFCTEUgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzEyNzk7RVRISU9QSUMgU1lMTEFCTEUgQ1U7TG87MDtMOzs7OztOOzs7OzsKKzEyN0E7RVRISU9QSUMgU1lMTEFCTEUgQ0k7TG87MDtMOzs7OztOOzs7OzsKKzEyN0I7RVRISU9QSUMgU1lMTEFCTEUgQ0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjdDO0VUSElPUElDIFNZTExBQkxFIENFRTtMbzswO0w7Ozs7O047Ozs7OworMTI3RDtFVEhJT1BJQyBTWUxMQUJMRSBDRTtMbzswO0w7Ozs7O047Ozs7OworMTI3RTtFVEhJT1BJQyBTWUxMQUJMRSBDTztMbzswO0w7Ozs7O047Ozs7OworMTI3RjtFVEhJT1BJQyBTWUxMQUJMRSBDV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyODA7RVRISU9QSUMgU1lMTEFCTEUgWEE7TG87MDtMOzs7OztOOzs7OzsKKzEyODE7RVRISU9QSUMgU1lMTEFCTEUgWFU7TG87MDtMOzs7OztOOzs7OzsKKzEyODI7RVRISU9QSUMgU1lMTEFCTEUgWEk7TG87MDtMOzs7OztOOzs7OzsKKzEyODM7RVRISU9QSUMgU1lMTEFCTEUgWEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjg0O0VUSElPUElDIFNZTExBQkxFIFhFRTtMbzswO0w7Ozs7O047Ozs7OworMTI4NTtFVEhJT1BJQyBTWUxMQUJMRSBYRTtMbzswO0w7Ozs7O047Ozs7OworMTI4NjtFVEhJT1BJQyBTWUxMQUJMRSBYTztMbzswO0w7Ozs7O047Ozs7OworMTI4ODtFVEhJT1BJQyBTWUxMQUJMRSBYV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyOEE7RVRISU9QSUMgU1lMTEFCTEUgWFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjhCO0VUSElPUElDIFNZTExBQkxFIFhXQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyOEM7RVRISU9QSUMgU1lMTEFCTEUgWFdFRTtMbzswO0w7Ozs7O047Ozs7OworMTI4RDtFVEhJT1BJQyBTWUxMQUJMRSBYV0U7TG87MDtMOzs7OztOOzs7OzsKKzEyOTA7RVRISU9QSUMgU1lMTEFCTEUgTkE7TG87MDtMOzs7OztOOzs7OzsKKzEyOTE7RVRISU9QSUMgU1lMTEFCTEUgTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyOTI7RVRISU9QSUMgU1lMTEFCTEUgTkk7TG87MDtMOzs7OztOOzs7OzsKKzEyOTM7RVRISU9QSUMgU1lMTEFCTEUgTkFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjk0O0VUSElPUElDIFNZTExBQkxFIE5FRTtMbzswO0w7Ozs7O047Ozs7OworMTI5NTtFVEhJT1BJQyBTWUxMQUJMRSBORTtMbzswO0w7Ozs7O047Ozs7OworMTI5NjtFVEhJT1BJQyBTWUxMQUJMRSBOTztMbzswO0w7Ozs7O047Ozs7OworMTI5NztFVEhJT1BJQyBTWUxMQUJMRSBOV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyOTg7RVRISU9QSUMgU1lMTEFCTEUgTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjk5O0VUSElPUElDIFNZTExBQkxFIE5ZVTtMbzswO0w7Ozs7O047Ozs7OworMTI5QTtFVEhJT1BJQyBTWUxMQUJMRSBOWUk7TG87MDtMOzs7OztOOzs7OzsKKzEyOUI7RVRISU9QSUMgU1lMTEFCTEUgTllBQTtMbzswO0w7Ozs7O047Ozs7OworMTI5QztFVEhJT1BJQyBTWUxMQUJMRSBOWUVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjlEO0VUSElPUElDIFNZTExBQkxFIE5ZRTtMbzswO0w7Ozs7O047Ozs7OworMTI5RTtFVEhJT1BJQyBTWUxMQUJMRSBOWU87TG87MDtMOzs7OztOOzs7OzsKKzEyOUY7RVRISU9QSUMgU1lMTEFCTEUgTllXQTtMbzswO0w7Ozs7O047Ozs7OworMTJBMDtFVEhJT1BJQyBTWUxMQUJMRSBHTE9UVEFMIEE7TG87MDtMOzs7OztOOzs7OzsKKzEyQTE7RVRISU9QSUMgU1lMTEFCTEUgR0xPVFRBTCBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkEyO0VUSElPUElDIFNZTExBQkxFIEdMT1RUQUwgSTtMbzswO0w7Ozs7O047Ozs7OworMTJBMztFVEhJT1BJQyBTWUxMQUJMRSBHTE9UVEFMIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkE0O0VUSElPUElDIFNZTExBQkxFIEdMT1RUQUwgRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyQTU7RVRISU9QSUMgU1lMTEFCTEUgR0xPVFRBTCBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkE2O0VUSElPUElDIFNZTExBQkxFIEdMT1RUQUwgTztMbzswO0w7Ozs7O047Ozs7OworMTJBNztFVEhJT1BJQyBTWUxMQUJMRSBHTE9UVEFMIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkE4O0VUSElPUElDIFNZTExBQkxFIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkE5O0VUSElPUElDIFNZTExBQkxFIEtVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkFBO0VUSElPUElDIFNZTExBQkxFIEtJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkFCO0VUSElPUElDIFNZTExBQkxFIEtBQTtMbzswO0w7Ozs7O047Ozs7OworMTJBQztFVEhJT1BJQyBTWUxMQUJMRSBLRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyQUQ7RVRISU9QSUMgU1lMTEFCTEUgS0U7TG87MDtMOzs7OztOOzs7OzsKKzEyQUU7RVRISU9QSUMgU1lMTEFCTEUgS087TG87MDtMOzs7OztOOzs7OzsKKzEyQjA7RVRISU9QSUMgU1lMTEFCTEUgS1dBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkIyO0VUSElPUElDIFNZTExBQkxFIEtXSTtMbzswO0w7Ozs7O047Ozs7OworMTJCMztFVEhJT1BJQyBTWUxMQUJMRSBLV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkI0O0VUSElPUElDIFNZTExBQkxFIEtXRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyQjU7RVRISU9QSUMgU1lMTEFCTEUgS1dFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkI4O0VUSElPUElDIFNZTExBQkxFIEtYQTtMbzswO0w7Ozs7O047Ozs7OworMTJCOTtFVEhJT1BJQyBTWUxMQUJMRSBLWFU7TG87MDtMOzs7OztOOzs7OzsKKzEyQkE7RVRISU9QSUMgU1lMTEFCTEUgS1hJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkJCO0VUSElPUElDIFNZTExBQkxFIEtYQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyQkM7RVRISU9QSUMgU1lMTEFCTEUgS1hFRTtMbzswO0w7Ozs7O047Ozs7OworMTJCRDtFVEhJT1BJQyBTWUxMQUJMRSBLWEU7TG87MDtMOzs7OztOOzs7OzsKKzEyQkU7RVRISU9QSUMgU1lMTEFCTEUgS1hPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkMwO0VUSElPUElDIFNZTExBQkxFIEtYV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyQzI7RVRISU9QSUMgU1lMTEFCTEUgS1hXSTtMbzswO0w7Ozs7O047Ozs7OworMTJDMztFVEhJT1BJQyBTWUxMQUJMRSBLWFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTJDNDtFVEhJT1BJQyBTWUxMQUJMRSBLWFdFRTtMbzswO0w7Ozs7O047Ozs7OworMTJDNTtFVEhJT1BJQyBTWUxMQUJMRSBLWFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkM4O0VUSElPUElDIFNZTExBQkxFIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkM5O0VUSElPUElDIFNZTExBQkxFIFdVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkNBO0VUSElPUElDIFNZTExBQkxFIFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkNCO0VUSElPUElDIFNZTExBQkxFIFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTJDQztFVEhJT1BJQyBTWUxMQUJMRSBXRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyQ0Q7RVRISU9QSUMgU1lMTEFCTEUgV0U7TG87MDtMOzs7OztOOzs7OzsKKzEyQ0U7RVRISU9QSUMgU1lMTEFCTEUgV087TG87MDtMOzs7OztOOzs7OzsKKzEyRDA7RVRISU9QSUMgU1lMTEFCTEUgUEhBUllOR0VBTCBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkQxO0VUSElPUElDIFNZTExBQkxFIFBIQVJZTkdFQUwgVTtMbzswO0w7Ozs7O047Ozs7OworMTJEMjtFVEhJT1BJQyBTWUxMQUJMRSBQSEFSWU5HRUFMIEk7TG87MDtMOzs7OztOOzs7OzsKKzEyRDM7RVRISU9QSUMgU1lMTEFCTEUgUEhBUllOR0VBTCBBQTtMbzswO0w7Ozs7O047Ozs7OworMTJENDtFVEhJT1BJQyBTWUxMQUJMRSBQSEFSWU5HRUFMIEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkQ1O0VUSElPUElDIFNZTExBQkxFIFBIQVJZTkdFQUwgRTtMbzswO0w7Ozs7O047Ozs7OworMTJENjtFVEhJT1BJQyBTWUxMQUJMRSBQSEFSWU5HRUFMIE87TG87MDtMOzs7OztOOzs7OzsKKzEyRDg7RVRISU9QSUMgU1lMTEFCTEUgWkE7TG87MDtMOzs7OztOOzs7OzsKKzEyRDk7RVRISU9QSUMgU1lMTEFCTEUgWlU7TG87MDtMOzs7OztOOzs7OzsKKzEyREE7RVRISU9QSUMgU1lMTEFCTEUgWkk7TG87MDtMOzs7OztOOzs7OzsKKzEyREI7RVRISU9QSUMgU1lMTEFCTEUgWkFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkRDO0VUSElPUElDIFNZTExBQkxFIFpFRTtMbzswO0w7Ozs7O047Ozs7OworMTJERDtFVEhJT1BJQyBTWUxMQUJMRSBaRTtMbzswO0w7Ozs7O047Ozs7OworMTJERTtFVEhJT1BJQyBTWUxMQUJMRSBaTztMbzswO0w7Ozs7O047Ozs7OworMTJERjtFVEhJT1BJQyBTWUxMQUJMRSBaV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyRTA7RVRISU9QSUMgU1lMTEFCTEUgWkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkUxO0VUSElPUElDIFNZTExBQkxFIFpIVTtMbzswO0w7Ozs7O047Ozs7OworMTJFMjtFVEhJT1BJQyBTWUxMQUJMRSBaSEk7TG87MDtMOzs7OztOOzs7OzsKKzEyRTM7RVRISU9QSUMgU1lMTEFCTEUgWkhBQTtMbzswO0w7Ozs7O047Ozs7OworMTJFNDtFVEhJT1BJQyBTWUxMQUJMRSBaSEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkU1O0VUSElPUElDIFNZTExBQkxFIFpIRTtMbzswO0w7Ozs7O047Ozs7OworMTJFNjtFVEhJT1BJQyBTWUxMQUJMRSBaSE87TG87MDtMOzs7OztOOzs7OzsKKzEyRTc7RVRISU9QSUMgU1lMTEFCTEUgWkhXQTtMbzswO0w7Ozs7O047Ozs7OworMTJFODtFVEhJT1BJQyBTWUxMQUJMRSBZQTtMbzswO0w7Ozs7O047Ozs7OworMTJFOTtFVEhJT1BJQyBTWUxMQUJMRSBZVTtMbzswO0w7Ozs7O047Ozs7OworMTJFQTtFVEhJT1BJQyBTWUxMQUJMRSBZSTtMbzswO0w7Ozs7O047Ozs7OworMTJFQjtFVEhJT1BJQyBTWUxMQUJMRSBZQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyRUM7RVRISU9QSUMgU1lMTEFCTEUgWUVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkVEO0VUSElPUElDIFNZTExBQkxFIFlFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkVFO0VUSElPUElDIFNZTExBQkxFIFlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkYwO0VUSElPUElDIFNZTExBQkxFIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkYxO0VUSElPUElDIFNZTExBQkxFIERVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkYyO0VUSElPUElDIFNZTExBQkxFIERJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkYzO0VUSElPUElDIFNZTExBQkxFIERBQTtMbzswO0w7Ozs7O047Ozs7OworMTJGNDtFVEhJT1BJQyBTWUxMQUJMRSBERUU7TG87MDtMOzs7OztOOzs7OzsKKzEyRjU7RVRISU9QSUMgU1lMTEFCTEUgREU7TG87MDtMOzs7OztOOzs7OzsKKzEyRjY7RVRISU9QSUMgU1lMTEFCTEUgRE87TG87MDtMOzs7OztOOzs7OzsKKzEyRjc7RVRISU9QSUMgU1lMTEFCTEUgRFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkY4O0VUSElPUElDIFNZTExBQkxFIEREQTtMbzswO0w7Ozs7O047Ozs7OworMTJGOTtFVEhJT1BJQyBTWUxMQUJMRSBERFU7TG87MDtMOzs7OztOOzs7OzsKKzEyRkE7RVRISU9QSUMgU1lMTEFCTEUgRERJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkZCO0VUSElPUElDIFNZTExBQkxFIEREQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyRkM7RVRISU9QSUMgU1lMTEFCTEUgRERFRTtMbzswO0w7Ozs7O047Ozs7OworMTJGRDtFVEhJT1BJQyBTWUxMQUJMRSBEREU7TG87MDtMOzs7OztOOzs7OzsKKzEyRkU7RVRISU9QSUMgU1lMTEFCTEUgRERPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkZGO0VUSElPUElDIFNZTExBQkxFIEREV0E7TG87MDtMOzs7OztOOzs7OzsKKzEzMDA7RVRISU9QSUMgU1lMTEFCTEUgSkE7TG87MDtMOzs7OztOOzs7OzsKKzEzMDE7RVRISU9QSUMgU1lMTEFCTEUgSlU7TG87MDtMOzs7OztOOzs7OzsKKzEzMDI7RVRISU9QSUMgU1lMTEFCTEUgSkk7TG87MDtMOzs7OztOOzs7OzsKKzEzMDM7RVRISU9QSUMgU1lMTEFCTEUgSkFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzA0O0VUSElPUElDIFNZTExBQkxFIEpFRTtMbzswO0w7Ozs7O047Ozs7OworMTMwNTtFVEhJT1BJQyBTWUxMQUJMRSBKRTtMbzswO0w7Ozs7O047Ozs7OworMTMwNjtFVEhJT1BJQyBTWUxMQUJMRSBKTztMbzswO0w7Ozs7O047Ozs7OworMTMwNztFVEhJT1BJQyBTWUxMQUJMRSBKV0E7TG87MDtMOzs7OztOOzs7OzsKKzEzMDg7RVRISU9QSUMgU1lMTEFCTEUgR0E7TG87MDtMOzs7OztOOzs7OzsKKzEzMDk7RVRISU9QSUMgU1lMTEFCTEUgR1U7TG87MDtMOzs7OztOOzs7OzsKKzEzMEE7RVRISU9QSUMgU1lMTEFCTEUgR0k7TG87MDtMOzs7OztOOzs7OzsKKzEzMEI7RVRISU9QSUMgU1lMTEFCTEUgR0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzBDO0VUSElPUElDIFNZTExBQkxFIEdFRTtMbzswO0w7Ozs7O047Ozs7OworMTMwRDtFVEhJT1BJQyBTWUxMQUJMRSBHRTtMbzswO0w7Ozs7O047Ozs7OworMTMwRTtFVEhJT1BJQyBTWUxMQUJMRSBHTztMbzswO0w7Ozs7O047Ozs7OworMTMxMDtFVEhJT1BJQyBTWUxMQUJMRSBHV0E7TG87MDtMOzs7OztOOzs7OzsKKzEzMTI7RVRISU9QSUMgU1lMTEFCTEUgR1dJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzEzO0VUSElPUElDIFNZTExBQkxFIEdXQUE7TG87MDtMOzs7OztOOzs7OzsKKzEzMTQ7RVRISU9QSUMgU1lMTEFCTEUgR1dFRTtMbzswO0w7Ozs7O047Ozs7OworMTMxNTtFVEhJT1BJQyBTWUxMQUJMRSBHV0U7TG87MDtMOzs7OztOOzs7OzsKKzEzMTg7RVRISU9QSUMgU1lMTEFCTEUgR0dBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzE5O0VUSElPUElDIFNZTExBQkxFIEdHVTtMbzswO0w7Ozs7O047Ozs7OworMTMxQTtFVEhJT1BJQyBTWUxMQUJMRSBHR0k7TG87MDtMOzs7OztOOzs7OzsKKzEzMUI7RVRISU9QSUMgU1lMTEFCTEUgR0dBQTtMbzswO0w7Ozs7O047Ozs7OworMTMxQztFVEhJT1BJQyBTWUxMQUJMRSBHR0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzFEO0VUSElPUElDIFNZTExBQkxFIEdHRTtMbzswO0w7Ozs7O047Ozs7OworMTMxRTtFVEhJT1BJQyBTWUxMQUJMRSBHR087TG87MDtMOzs7OztOOzs7OzsKKzEzMjA7RVRISU9QSUMgU1lMTEFCTEUgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzIxO0VUSElPUElDIFNZTExBQkxFIFRIVTtMbzswO0w7Ozs7O047Ozs7OworMTMyMjtFVEhJT1BJQyBTWUxMQUJMRSBUSEk7TG87MDtMOzs7OztOOzs7OzsKKzEzMjM7RVRISU9QSUMgU1lMTEFCTEUgVEhBQTtMbzswO0w7Ozs7O047Ozs7OworMTMyNDtFVEhJT1BJQyBTWUxMQUJMRSBUSEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzI1O0VUSElPUElDIFNZTExBQkxFIFRIRTtMbzswO0w7Ozs7O047Ozs7OworMTMyNjtFVEhJT1BJQyBTWUxMQUJMRSBUSE87TG87MDtMOzs7OztOOzs7OzsKKzEzMjc7RVRISU9QSUMgU1lMTEFCTEUgVEhXQTtMbzswO0w7Ozs7O047Ozs7OworMTMyODtFVEhJT1BJQyBTWUxMQUJMRSBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzEzMjk7RVRISU9QSUMgU1lMTEFCTEUgQ0hVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzJBO0VUSElPUElDIFNZTExBQkxFIENISTtMbzswO0w7Ozs7O047Ozs7OworMTMyQjtFVEhJT1BJQyBTWUxMQUJMRSBDSEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzJDO0VUSElPUElDIFNZTExBQkxFIENIRUU7TG87MDtMOzs7OztOOzs7OzsKKzEzMkQ7RVRISU9QSUMgU1lMTEFCTEUgQ0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzJFO0VUSElPUElDIFNZTExBQkxFIENITztMbzswO0w7Ozs7O047Ozs7OworMTMyRjtFVEhJT1BJQyBTWUxMQUJMRSBDSFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzMwO0VUSElPUElDIFNZTExBQkxFIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMTMzMTtFVEhJT1BJQyBTWUxMQUJMRSBQSFU7TG87MDtMOzs7OztOOzs7OzsKKzEzMzI7RVRISU9QSUMgU1lMTEFCTEUgUEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzMzO0VUSElPUElDIFNZTExBQkxFIFBIQUE7TG87MDtMOzs7OztOOzs7OzsKKzEzMzQ7RVRISU9QSUMgU1lMTEFCTEUgUEhFRTtMbzswO0w7Ozs7O047Ozs7OworMTMzNTtFVEhJT1BJQyBTWUxMQUJMRSBQSEU7TG87MDtMOzs7OztOOzs7OzsKKzEzMzY7RVRISU9QSUMgU1lMTEFCTEUgUEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzM3O0VUSElPUElDIFNZTExBQkxFIFBIV0E7TG87MDtMOzs7OztOOzs7OzsKKzEzMzg7RVRISU9QSUMgU1lMTEFCTEUgVFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzM5O0VUSElPUElDIFNZTExBQkxFIFRTVTtMbzswO0w7Ozs7O047Ozs7OworMTMzQTtFVEhJT1BJQyBTWUxMQUJMRSBUU0k7TG87MDtMOzs7OztOOzs7OzsKKzEzM0I7RVRISU9QSUMgU1lMTEFCTEUgVFNBQTtMbzswO0w7Ozs7O047Ozs7OworMTMzQztFVEhJT1BJQyBTWUxMQUJMRSBUU0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzNEO0VUSElPUElDIFNZTExBQkxFIFRTRTtMbzswO0w7Ozs7O047Ozs7OworMTMzRTtFVEhJT1BJQyBTWUxMQUJMRSBUU087TG87MDtMOzs7OztOOzs7OzsKKzEzM0Y7RVRISU9QSUMgU1lMTEFCTEUgVFNXQTtMbzswO0w7Ozs7O047Ozs7OworMTM0MDtFVEhJT1BJQyBTWUxMQUJMRSBUWkE7TG87MDtMOzs7OztOOzs7OzsKKzEzNDE7RVRISU9QSUMgU1lMTEFCTEUgVFpVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzQyO0VUSElPUElDIFNZTExBQkxFIFRaSTtMbzswO0w7Ozs7O047Ozs7OworMTM0MztFVEhJT1BJQyBTWUxMQUJMRSBUWkFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzQ0O0VUSElPUElDIFNZTExBQkxFIFRaRUU7TG87MDtMOzs7OztOOzs7OzsKKzEzNDU7RVRISU9QSUMgU1lMTEFCTEUgVFpFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzQ2O0VUSElPUElDIFNZTExBQkxFIFRaTztMbzswO0w7Ozs7O047Ozs7OworMTM0ODtFVEhJT1BJQyBTWUxMQUJMRSBGQTtMbzswO0w7Ozs7O047Ozs7OworMTM0OTtFVEhJT1BJQyBTWUxMQUJMRSBGVTtMbzswO0w7Ozs7O047Ozs7OworMTM0QTtFVEhJT1BJQyBTWUxMQUJMRSBGSTtMbzswO0w7Ozs7O047Ozs7OworMTM0QjtFVEhJT1BJQyBTWUxMQUJMRSBGQUE7TG87MDtMOzs7OztOOzs7OzsKKzEzNEM7RVRISU9QSUMgU1lMTEFCTEUgRkVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzREO0VUSElPUElDIFNZTExBQkxFIEZFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzRFO0VUSElPUElDIFNZTExBQkxFIEZPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzRGO0VUSElPUElDIFNZTExBQkxFIEZXQTtMbzswO0w7Ozs7O047Ozs7OworMTM1MDtFVEhJT1BJQyBTWUxMQUJMRSBQQTtMbzswO0w7Ozs7O047Ozs7OworMTM1MTtFVEhJT1BJQyBTWUxMQUJMRSBQVTtMbzswO0w7Ozs7O047Ozs7OworMTM1MjtFVEhJT1BJQyBTWUxMQUJMRSBQSTtMbzswO0w7Ozs7O047Ozs7OworMTM1MztFVEhJT1BJQyBTWUxMQUJMRSBQQUE7TG87MDtMOzs7OztOOzs7OzsKKzEzNTQ7RVRISU9QSUMgU1lMTEFCTEUgUEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzU1O0VUSElPUElDIFNZTExBQkxFIFBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzU2O0VUSElPUElDIFNZTExBQkxFIFBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzU3O0VUSElPUElDIFNZTExBQkxFIFBXQTtMbzswO0w7Ozs7O047Ozs7OworMTM1ODtFVEhJT1BJQyBTWUxMQUJMRSBSWUE7TG87MDtMOzs7OztOOzs7OzsKKzEzNTk7RVRISU9QSUMgU1lMTEFCTEUgTVlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzVBO0VUSElPUElDIFNZTExBQkxFIEZZQTtMbzswO0w7Ozs7O047Ozs7OworMTM2MTtFVEhJT1BJQyBXT1JEU1BBQ0U7UG87MDtMOzs7OztOOzs7OzsKKzEzNjI7RVRISU9QSUMgRlVMTCBTVE9QO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxMzYzO0VUSElPUElDIENPTU1BO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxMzY0O0VUSElPUElDIFNFTUlDT0xPTjtQbzswO0w7Ozs7O047Ozs7OworMTM2NTtFVEhJT1BJQyBDT0xPTjtQbzswO0w7Ozs7O047Ozs7OworMTM2NjtFVEhJT1BJQyBQUkVGQUNFIENPTE9OO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxMzY3O0VUSElPUElDIFFVRVNUSU9OIE1BUks7UG87MDtMOzs7OztOOzs7OzsKKzEzNjg7RVRISU9QSUMgUEFSQUdSQVBIIFNFUEFSQVRPUjtQbzswO0w7Ozs7O047Ozs7OworMTM2OTtFVEhJT1BJQyBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzEzNkE7RVRISU9QSUMgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CisxMzZCO0VUSElPUElDIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CisxMzZDO0VUSElPUElDIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzEzNkQ7RVRISU9QSUMgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMTM2RTtFVEhJT1BJQyBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzEzNkY7RVRISU9QSUMgRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzEzNzA7RVRISU9QSUMgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzEzNzE7RVRISU9QSUMgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMTM3MjtFVEhJT1BJQyBOVU1CRVIgVEVOO05vOzA7TDs7OzsxMDtOOzs7OzsKKzEzNzM7RVRISU9QSUMgTlVNQkVSIFRXRU5UWTtObzswO0w7Ozs7MjA7Tjs7Ozs7CisxMzc0O0VUSElPUElDIE5VTUJFUiBUSElSVFk7Tm87MDtMOzs7OzMwO047Ozs7OworMTM3NTtFVEhJT1BJQyBOVU1CRVIgRk9SVFk7Tm87MDtMOzs7OzQwO047Ozs7OworMTM3NjtFVEhJT1BJQyBOVU1CRVIgRklGVFk7Tm87MDtMOzs7OzUwO047Ozs7OworMTM3NztFVEhJT1BJQyBOVU1CRVIgU0lYVFk7Tm87MDtMOzs7OzYwO047Ozs7OworMTM3ODtFVEhJT1BJQyBOVU1CRVIgU0VWRU5UWTtObzswO0w7Ozs7NzA7Tjs7Ozs7CisxMzc5O0VUSElPUElDIE5VTUJFUiBFSUdIVFk7Tm87MDtMOzs7OzgwO047Ozs7OworMTM3QTtFVEhJT1BJQyBOVU1CRVIgTklORVRZO05vOzA7TDs7Ozs5MDtOOzs7OzsKKzEzN0I7RVRISU9QSUMgTlVNQkVSIEhVTkRSRUQ7Tm87MDtMOzs7OzEwMDtOOzs7OzsKKzEzN0M7RVRISU9QSUMgTlVNQkVSIFRFTiBUSE9VU0FORDtObzswO0w7Ozs7MTAwMDA7Tjs7Ozs7CisxM0EwO0NIRVJPS0VFIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0ExO0NIRVJPS0VFIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0EyO0NIRVJPS0VFIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0EzO0NIRVJPS0VFIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0E0O0NIRVJPS0VFIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0E1O0NIRVJPS0VFIExFVFRFUiBWO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0E2O0NIRVJPS0VFIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMTNBNztDSEVST0tFRSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzEzQTg7Q0hFUk9LRUUgTEVUVEVSIEdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0E5O0NIRVJPS0VFIExFVFRFUiBHSTtMbzswO0w7Ozs7O047Ozs7OworMTNBQTtDSEVST0tFRSBMRVRURVIgR087TG87MDtMOzs7OztOOzs7OzsKKzEzQUI7Q0hFUk9LRUUgTEVUVEVSIEdVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0FDO0NIRVJPS0VFIExFVFRFUiBHVjtMbzswO0w7Ozs7O047Ozs7OworMTNBRDtDSEVST0tFRSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzEzQUU7Q0hFUk9LRUUgTEVUVEVSIEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0FGO0NIRVJPS0VFIExFVFRFUiBISTtMbzswO0w7Ozs7O047Ozs7OworMTNCMDtDSEVST0tFRSBMRVRURVIgSE87TG87MDtMOzs7OztOOzs7OzsKKzEzQjE7Q0hFUk9LRUUgTEVUVEVSIEhVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0IyO0NIRVJPS0VFIExFVFRFUiBIVjtMbzswO0w7Ozs7O047Ozs7OworMTNCMztDSEVST0tFRSBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzEzQjQ7Q0hFUk9LRUUgTEVUVEVSIExFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0I1O0NIRVJPS0VFIExFVFRFUiBMSTtMbzswO0w7Ozs7O047Ozs7OworMTNCNjtDSEVST0tFRSBMRVRURVIgTE87TG87MDtMOzs7OztOOzs7OzsKKzEzQjc7Q0hFUk9LRUUgTEVUVEVSIExVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0I4O0NIRVJPS0VFIExFVFRFUiBMVjtMbzswO0w7Ozs7O047Ozs7OworMTNCOTtDSEVST0tFRSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzEzQkE7Q0hFUk9LRUUgTEVUVEVSIE1FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0JCO0NIRVJPS0VFIExFVFRFUiBNSTtMbzswO0w7Ozs7O047Ozs7OworMTNCQztDSEVST0tFRSBMRVRURVIgTU87TG87MDtMOzs7OztOOzs7OzsKKzEzQkQ7Q0hFUk9LRUUgTEVUVEVSIE1VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0JFO0NIRVJPS0VFIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMTNCRjtDSEVST0tFRSBMRVRURVIgSE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0MwO0NIRVJPS0VFIExFVFRFUiBOQUg7TG87MDtMOzs7OztOOzs7OzsKKzEzQzE7Q0hFUk9LRUUgTEVUVEVSIE5FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0MyO0NIRVJPS0VFIExFVFRFUiBOSTtMbzswO0w7Ozs7O047Ozs7OworMTNDMztDSEVST0tFRSBMRVRURVIgTk87TG87MDtMOzs7OztOOzs7OzsKKzEzQzQ7Q0hFUk9LRUUgTEVUVEVSIE5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0M1O0NIRVJPS0VFIExFVFRFUiBOVjtMbzswO0w7Ozs7O047Ozs7OworMTNDNjtDSEVST0tFRSBMRVRURVIgUVVBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0M3O0NIRVJPS0VFIExFVFRFUiBRVUU7TG87MDtMOzs7OztOOzs7OzsKKzEzQzg7Q0hFUk9LRUUgTEVUVEVSIFFVSTtMbzswO0w7Ozs7O047Ozs7OworMTNDOTtDSEVST0tFRSBMRVRURVIgUVVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0NBO0NIRVJPS0VFIExFVFRFUiBRVVU7TG87MDtMOzs7OztOOzs7OzsKKzEzQ0I7Q0hFUk9LRUUgTEVUVEVSIFFVVjtMbzswO0w7Ozs7O047Ozs7OworMTNDQztDSEVST0tFRSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzEzQ0Q7Q0hFUk9LRUUgTEVUVEVSIFM7TG87MDtMOzs7OztOOzs7OzsKKzEzQ0U7Q0hFUk9LRUUgTEVUVEVSIFNFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0NGO0NIRVJPS0VFIExFVFRFUiBTSTtMbzswO0w7Ozs7O047Ozs7OworMTNEMDtDSEVST0tFRSBMRVRURVIgU087TG87MDtMOzs7OztOOzs7OzsKKzEzRDE7Q0hFUk9LRUUgTEVUVEVSIFNVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0QyO0NIRVJPS0VFIExFVFRFUiBTVjtMbzswO0w7Ozs7O047Ozs7OworMTNEMztDSEVST0tFRSBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzEzRDQ7Q0hFUk9LRUUgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0Q1O0NIRVJPS0VFIExFVFRFUiBERTtMbzswO0w7Ozs7O047Ozs7OworMTNENjtDSEVST0tFRSBMRVRURVIgVEU7TG87MDtMOzs7OztOOzs7OzsKKzEzRDc7Q0hFUk9LRUUgTEVUVEVSIERJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0Q4O0NIRVJPS0VFIExFVFRFUiBUSTtMbzswO0w7Ozs7O047Ozs7OworMTNEOTtDSEVST0tFRSBMRVRURVIgRE87TG87MDtMOzs7OztOOzs7OzsKKzEzREE7Q0hFUk9LRUUgTEVUVEVSIERVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0RCO0NIRVJPS0VFIExFVFRFUiBEVjtMbzswO0w7Ozs7O047Ozs7OworMTNEQztDSEVST0tFRSBMRVRURVIgRExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0REO0NIRVJPS0VFIExFVFRFUiBUTEE7TG87MDtMOzs7OztOOzs7OzsKKzEzREU7Q0hFUk9LRUUgTEVUVEVSIFRMRTtMbzswO0w7Ozs7O047Ozs7OworMTNERjtDSEVST0tFRSBMRVRURVIgVExJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0UwO0NIRVJPS0VFIExFVFRFUiBUTE87TG87MDtMOzs7OztOOzs7OzsKKzEzRTE7Q0hFUk9LRUUgTEVUVEVSIFRMVTtMbzswO0w7Ozs7O047Ozs7OworMTNFMjtDSEVST0tFRSBMRVRURVIgVExWO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0UzO0NIRVJPS0VFIExFVFRFUiBUU0E7TG87MDtMOzs7OztOOzs7OzsKKzEzRTQ7Q0hFUk9LRUUgTEVUVEVSIFRTRTtMbzswO0w7Ozs7O047Ozs7OworMTNFNTtDSEVST0tFRSBMRVRURVIgVFNJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0U2O0NIRVJPS0VFIExFVFRFUiBUU087TG87MDtMOzs7OztOOzs7OzsKKzEzRTc7Q0hFUk9LRUUgTEVUVEVSIFRTVTtMbzswO0w7Ozs7O047Ozs7OworMTNFODtDSEVST0tFRSBMRVRURVIgVFNWO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0U5O0NIRVJPS0VFIExFVFRFUiBXQTtMbzswO0w7Ozs7O047Ozs7OworMTNFQTtDSEVST0tFRSBMRVRURVIgV0U7TG87MDtMOzs7OztOOzs7OzsKKzEzRUI7Q0hFUk9LRUUgTEVUVEVSIFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0VDO0NIRVJPS0VFIExFVFRFUiBXTztMbzswO0w7Ozs7O047Ozs7OworMTNFRDtDSEVST0tFRSBMRVRURVIgV1U7TG87MDtMOzs7OztOOzs7OzsKKzEzRUU7Q0hFUk9LRUUgTEVUVEVSIFdWO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0VGO0NIRVJPS0VFIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMTNGMDtDSEVST0tFRSBMRVRURVIgWUU7TG87MDtMOzs7OztOOzs7OzsKKzEzRjE7Q0hFUk9LRUUgTEVUVEVSIFlJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0YyO0NIRVJPS0VFIExFVFRFUiBZTztMbzswO0w7Ozs7O047Ozs7OworMTNGMztDSEVST0tFRSBMRVRURVIgWVU7TG87MDtMOzs7OztOOzs7OzsKKzEzRjQ7Q0hFUk9LRUUgTEVUVEVSIFlWO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDAxO0NBTkFESUFOIFNZTExBQklDUyBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDAyO0NBTkFESUFOIFNZTExBQklDUyBBQUk7TG87MDtMOzs7OztOOzs7OzsKKzE0MDM7Q0FOQURJQU4gU1lMTEFCSUNTIEk7TG87MDtMOzs7OztOOzs7OzsKKzE0MDQ7Q0FOQURJQU4gU1lMTEFCSUNTIElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDA1O0NBTkFESUFOIFNZTExBQklDUyBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDA2O0NBTkFESUFOIFNZTExBQklDUyBPTztMbzswO0w7Ozs7O047Ozs7OworMTQwNztDQU5BRElBTiBTWUxMQUJJQ1MgWS1DUkVFIE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDA4O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDA5O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzE0MEE7Q0FOQURJQU4gU1lMTEFCSUNTIEE7TG87MDtMOzs7OztOOzs7OzsKKzE0MEI7Q0FOQURJQU4gU1lMTEFCSUNTIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDBDO0NBTkFESUFOIFNZTExBQklDUyBXRTtMbzswO0w7Ozs7O047Ozs7OworMTQwRDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDBFO0NBTkFESUFOIFNZTExBQklDUyBXSTtMbzswO0w7Ozs7O047Ozs7OworMTQwRjtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDEwO0NBTkFESUFOIFNZTExBQklDUyBXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0MTE7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0MTI7Q0FOQURJQU4gU1lMTEFCSUNTIFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDEzO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgV087TG87MDtMOzs7OztOOzs7OzsKKzE0MTQ7Q0FOQURJQU4gU1lMTEFCSUNTIFdPTztMbzswO0w7Ozs7O047Ozs7OworMTQxNTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFdPTztMbzswO0w7Ozs7O047Ozs7OworMTQxNjtDQU5BRElBTiBTWUxMQUJJQ1MgTkFTS0FQSSBXT087TG87MDtMOzs7OztOOzs7OzsKKzE0MTc7Q0FOQURJQU4gU1lMTEFCSUNTIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDE4O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgV0E7TG87MDtMOzs7OztOOzs7OzsKKzE0MTk7Q0FOQURJQU4gU1lMTEFCSUNTIFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTQxQTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTQxQjtDQU5BRElBTiBTWUxMQUJJQ1MgTkFTS0FQSSBXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0MUM7Q0FOQURJQU4gU1lMTEFCSUNTIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDFEO0NBTkFESUFOIFNZTExBQklDUyBZLUNSRUUgVztMbzswO0w7Ozs7O047Ozs7OworMTQxRTtDQU5BRElBTiBTWUxMQUJJQ1MgR0xPVFRBTCBTVE9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDFGO0NBTkFESUFOIFNZTExBQklDUyBGSU5BTCBBQ1VURTtMbzswO0w7Ozs7O047Ozs7OworMTQyMDtDQU5BRElBTiBTWUxMQUJJQ1MgRklOQUwgR1JBVkU7TG87MDtMOzs7OztOOzs7OzsKKzE0MjE7Q0FOQURJQU4gU1lMTEFCSUNTIEZJTkFMIEJPVFRPTSBIQUxGIFJJTkc7TG87MDtMOzs7OztOOzs7OzsKKzE0MjI7Q0FOQURJQU4gU1lMTEFCSUNTIEZJTkFMIFRPUCBIQUxGIFJJTkc7TG87MDtMOzs7OztOOzs7OzsKKzE0MjM7Q0FOQURJQU4gU1lMTEFCSUNTIEZJTkFMIFJJR0hUIEhBTEYgUklORztMbzswO0w7Ozs7O047Ozs7OworMTQyNDtDQU5BRElBTiBTWUxMQUJJQ1MgRklOQUwgUklORztMbzswO0w7Ozs7O047Ozs7OworMTQyNTtDQU5BRElBTiBTWUxMQUJJQ1MgRklOQUwgRE9VQkxFIEFDVVRFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDI2O0NBTkFESUFOIFNZTExBQklDUyBGSU5BTCBET1VCTEUgU0hPUlQgVkVSVElDQUwgU1RST0tFUztMbzswO0w7Ozs7O047Ozs7OworMTQyNztDQU5BRElBTiBTWUxMQUJJQ1MgRklOQUwgTUlERExFIERPVDtMbzswO0w7Ozs7O047Ozs7OworMTQyODtDQU5BRElBTiBTWUxMQUJJQ1MgRklOQUwgU0hPUlQgSE9SSVpPTlRBTCBTVFJPS0U7TG87MDtMOzs7OztOOzs7OzsKKzE0Mjk7Q0FOQURJQU4gU1lMTEFCSUNTIEZJTkFMIFBMVVM7TG87MDtMOzs7OztOOzs7OzsKKzE0MkE7Q0FOQURJQU4gU1lMTEFCSUNTIEZJTkFMIERPV04gVEFDSztMbzswO0w7Ozs7O047Ozs7OworMTQyQjtDQU5BRElBTiBTWUxMQUJJQ1MgRU47TG87MDtMOzs7OztOOzs7OzsKKzE0MkM7Q0FOQURJQU4gU1lMTEFCSUNTIElOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDJEO0NBTkFESUFOIFNZTExBQklDUyBPTjtMbzswO0w7Ozs7O047Ozs7OworMTQyRTtDQU5BRElBTiBTWUxMQUJJQ1MgQU47TG87MDtMOzs7OztOOzs7OzsKKzE0MkY7Q0FOQURJQU4gU1lMTEFCSUNTIFBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDMwO0NBTkFESUFOIFNZTExBQklDUyBQQUFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDMxO0NBTkFESUFOIFNZTExBQklDUyBQSTtMbzswO0w7Ozs7O047Ozs7OworMTQzMjtDQU5BRElBTiBTWUxMQUJJQ1MgUElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDMzO0NBTkFESUFOIFNZTExBQklDUyBQTztMbzswO0w7Ozs7O047Ozs7OworMTQzNDtDQU5BRElBTiBTWUxMQUJJQ1MgUE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDM1O0NBTkFESUFOIFNZTExBQklDUyBZLUNSRUUgUE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDM2O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEhFRTtMbzswO0w7Ozs7O047Ozs7OworMTQzNztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBISTtMbzswO0w7Ozs7O047Ozs7OworMTQzODtDQU5BRElBTiBTWUxMQUJJQ1MgUEE7TG87MDtMOzs7OztOOzs7OzsKKzE0Mzk7Q0FOQURJQU4gU1lMTEFCSUNTIFBBQTtMbzswO0w7Ozs7O047Ozs7OworMTQzQTtDQU5BRElBTiBTWUxMQUJJQ1MgUFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDNCO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgUFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDNDO0NBTkFESUFOIFNZTExBQklDUyBQV0k7TG87MDtMOzs7OztOOzs7OzsKKzE0M0Q7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBQV0k7TG87MDtMOzs7OztOOzs7OzsKKzE0M0U7Q0FOQURJQU4gU1lMTEFCSUNTIFBXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0M0Y7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBQV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDQwO0NBTkFESUFOIFNZTExBQklDUyBQV087TG87MDtMOzs7OztOOzs7OzsKKzE0NDE7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBQV087TG87MDtMOzs7OztOOzs7OzsKKzE0NDI7Q0FOQURJQU4gU1lMTEFCSUNTIFBXT087TG87MDtMOzs7OztOOzs7OzsKKzE0NDM7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBQV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDQ0O0NBTkFESUFOIFNZTExBQklDUyBQV0E7TG87MDtMOzs7OztOOzs7OzsKKzE0NDU7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBQV0E7TG87MDtMOzs7OztOOzs7OzsKKzE0NDY7Q0FOQURJQU4gU1lMTEFCSUNTIFBXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0NDc7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBQV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDQ4O0NBTkFESUFOIFNZTExBQklDUyBZLUNSRUUgUFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTQ0OTtDQU5BRElBTiBTWUxMQUJJQ1MgUDtMbzswO0w7Ozs7O047Ozs7OworMTQ0QTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFA7TG87MDtMOzs7OztOOzs7OzsKKzE0NEI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSDtMbzswO0w7Ozs7O047Ozs7OworMTQ0QztDQU5BRElBTiBTWUxMQUJJQ1MgVEU7TG87MDtMOzs7OztOOzs7OzsKKzE0NEQ7Q0FOQURJQU4gU1lMTEFCSUNTIFRBQUk7TG87MDtMOzs7OztOOzs7OzsKKzE0NEU7Q0FOQURJQU4gU1lMTEFCSUNTIFRJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDRGO0NBTkFESUFOIFNZTExBQklDUyBUSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0NTA7Q0FOQURJQU4gU1lMTEFCSUNTIFRPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDUxO0NBTkFESUFOIFNZTExBQklDUyBUT087TG87MDtMOzs7OztOOzs7OzsKKzE0NTI7Q0FOQURJQU4gU1lMTEFCSUNTIFktQ1JFRSBUT087TG87MDtMOzs7OztOOzs7OzsKKzE0NTM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgREVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDU0O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIERJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDU1O0NBTkFESUFOIFNZTExBQklDUyBUQTtMbzswO0w7Ozs7O047Ozs7OworMTQ1NjtDQU5BRElBTiBTWUxMQUJJQ1MgVEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDU3O0NBTkFESUFOIFNZTExBQklDUyBUV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0NTg7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBUV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0NTk7Q0FOQURJQU4gU1lMTEFCSUNTIFRXSTtMbzswO0w7Ozs7O047Ozs7OworMTQ1QTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFRXSTtMbzswO0w7Ozs7O047Ozs7OworMTQ1QjtDQU5BRElBTiBTWUxMQUJJQ1MgVFdJSTtMbzswO0w7Ozs7O047Ozs7OworMTQ1QztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFRXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0NUQ7Q0FOQURJQU4gU1lMTEFCSUNTIFRXTztMbzswO0w7Ozs7O047Ozs7OworMTQ1RTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFRXTztMbzswO0w7Ozs7O047Ozs7OworMTQ1RjtDQU5BRElBTiBTWUxMQUJJQ1MgVFdPTztMbzswO0w7Ozs7O047Ozs7OworMTQ2MDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFRXT087TG87MDtMOzs7OztOOzs7OzsKKzE0NjE7Q0FOQURJQU4gU1lMTEFCSUNTIFRXQTtMbzswO0w7Ozs7O047Ozs7OworMTQ2MjtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFRXQTtMbzswO0w7Ozs7O047Ozs7OworMTQ2MztDQU5BRElBTiBTWUxMQUJJQ1MgVFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTQ2NDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFRXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0NjU7Q0FOQURJQU4gU1lMTEFCSUNTIE5BU0tBUEkgVFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTQ2NjtDQU5BRElBTiBTWUxMQUJJQ1MgVDtMbzswO0w7Ozs7O047Ozs7OworMTQ2NztDQU5BRElBTiBTWUxMQUJJQ1MgVFRFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDY4O0NBTkFESUFOIFNZTExBQklDUyBUVEk7TG87MDtMOzs7OztOOzs7OzsKKzE0Njk7Q0FOQURJQU4gU1lMTEFCSUNTIFRUTztMbzswO0w7Ozs7O047Ozs7OworMTQ2QTtDQU5BRElBTiBTWUxMQUJJQ1MgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDZCO0NBTkFESUFOIFNZTExBQklDUyBLRTtMbzswO0w7Ozs7O047Ozs7OworMTQ2QztDQU5BRElBTiBTWUxMQUJJQ1MgS0FBSTtMbzswO0w7Ozs7O047Ozs7OworMTQ2RDtDQU5BRElBTiBTWUxMQUJJQ1MgS0k7TG87MDtMOzs7OztOOzs7OzsKKzE0NkU7Q0FOQURJQU4gU1lMTEFCSUNTIEtJSTtMbzswO0w7Ozs7O047Ozs7OworMTQ2RjtDQU5BRElBTiBTWUxMQUJJQ1MgS087TG87MDtMOzs7OztOOzs7OzsKKzE0NzA7Q0FOQURJQU4gU1lMTEFCSUNTIEtPTztMbzswO0w7Ozs7O047Ozs7OworMTQ3MTtDQU5BRElBTiBTWUxMQUJJQ1MgWS1DUkVFIEtPTztMbzswO0w7Ozs7O047Ozs7OworMTQ3MjtDQU5BRElBTiBTWUxMQUJJQ1MgS0E7TG87MDtMOzs7OztOOzs7OzsKKzE0NzM7Q0FOQURJQU4gU1lMTEFCSUNTIEtBQTtMbzswO0w7Ozs7O047Ozs7OworMTQ3NDtDQU5BRElBTiBTWUxMQUJJQ1MgS1dFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDc1O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgS1dFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDc2O0NBTkFESUFOIFNZTExBQklDUyBLV0k7TG87MDtMOzs7OztOOzs7OzsKKzE0Nzc7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBLV0k7TG87MDtMOzs7OztOOzs7OzsKKzE0Nzg7Q0FOQURJQU4gU1lMTEFCSUNTIEtXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0Nzk7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBLV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDdBO0NBTkFESUFOIFNZTExBQklDUyBLV087TG87MDtMOzs7OztOOzs7OzsKKzE0N0I7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBLV087TG87MDtMOzs7OztOOzs7OzsKKzE0N0M7Q0FOQURJQU4gU1lMTEFCSUNTIEtXT087TG87MDtMOzs7OztOOzs7OzsKKzE0N0Q7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBLV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDdFO0NBTkFESUFOIFNZTExBQklDUyBLV0E7TG87MDtMOzs7OztOOzs7OzsKKzE0N0Y7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBLV0E7TG87MDtMOzs7OztOOzs7OzsKKzE0ODA7Q0FOQURJQU4gU1lMTEFCSUNTIEtXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0ODE7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBLV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDgyO0NBTkFESUFOIFNZTExBQklDUyBOQVNLQVBJIEtXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0ODM7Q0FOQURJQU4gU1lMTEFCSUNTIEs7TG87MDtMOzs7OztOOzs7OzsKKzE0ODQ7Q0FOQURJQU4gU1lMTEFCSUNTIEtXO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDg1O0NBTkFESUFOIFNZTExBQklDUyBTT1VUSC1TTEFWRVkgS0VIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDg2O0NBTkFESUFOIFNZTExBQklDUyBTT1VUSC1TTEFWRVkgS0lIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDg3O0NBTkFESUFOIFNZTExBQklDUyBTT1VUSC1TTEFWRVkgS09IO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDg4O0NBTkFESUFOIFNZTExBQklDUyBTT1VUSC1TTEFWRVkgS0FIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDg5O0NBTkFESUFOIFNZTExBQklDUyBDRTtMbzswO0w7Ozs7O047Ozs7OworMTQ4QTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FBSTtMbzswO0w7Ozs7O047Ozs7OworMTQ4QjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0k7TG87MDtMOzs7OztOOzs7OzsKKzE0OEM7Q0FOQURJQU4gU1lMTEFCSUNTIENJSTtMbzswO0w7Ozs7O047Ozs7OworMTQ4RDtDQU5BRElBTiBTWUxMQUJJQ1MgQ087TG87MDtMOzs7OztOOzs7OzsKKzE0OEU7Q0FOQURJQU4gU1lMTEFCSUNTIENPTztMbzswO0w7Ozs7O047Ozs7OworMTQ4RjtDQU5BRElBTiBTWUxMQUJJQ1MgWS1DUkVFIENPTztMbzswO0w7Ozs7O047Ozs7OworMTQ5MDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzE0OTE7Q0FOQURJQU4gU1lMTEFCSUNTIENBQTtMbzswO0w7Ozs7O047Ozs7OworMTQ5MjtDQU5BRElBTiBTWUxMQUJJQ1MgQ1dFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDkzO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgQ1dFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDk0O0NBTkFESUFOIFNZTExBQklDUyBDV0k7TG87MDtMOzs7OztOOzs7OzsKKzE0OTU7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBDV0k7TG87MDtMOzs7OztOOzs7OzsKKzE0OTY7Q0FOQURJQU4gU1lMTEFCSUNTIENXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0OTc7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBDV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDk4O0NBTkFESUFOIFNZTExBQklDUyBDV087TG87MDtMOzs7OztOOzs7OzsKKzE0OTk7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBDV087TG87MDtMOzs7OztOOzs7OzsKKzE0OUE7Q0FOQURJQU4gU1lMTEFCSUNTIENXT087TG87MDtMOzs7OztOOzs7OzsKKzE0OUI7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBDV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDlDO0NBTkFESUFOIFNZTExBQklDUyBDV0E7TG87MDtMOzs7OztOOzs7OzsKKzE0OUQ7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBDV0E7TG87MDtMOzs7OztOOzs7OzsKKzE0OUU7Q0FOQURJQU4gU1lMTEFCSUNTIENXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0OUY7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBDV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEEwO0NBTkFESUFOIFNZTExBQklDUyBOQVNLQVBJIENXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0QTE7Q0FOQURJQU4gU1lMTEFCSUNTIEM7TG87MDtMOzs7OztOOzs7OzsKKzE0QTI7Q0FOQURJQU4gU1lMTEFCSUNTIFNBWUlTSSBUSDtMbzswO0w7Ozs7O047Ozs7OworMTRBMztDQU5BRElBTiBTWUxMQUJJQ1MgTUU7TG87MDtMOzs7OztOOzs7OzsKKzE0QTQ7Q0FOQURJQU4gU1lMTEFCSUNTIE1BQUk7TG87MDtMOzs7OztOOzs7OzsKKzE0QTU7Q0FOQURJQU4gU1lMTEFCSUNTIE1JO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEE2O0NBTkFESUFOIFNZTExBQklDUyBNSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0QTc7Q0FOQURJQU4gU1lMTEFCSUNTIE1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEE4O0NBTkFESUFOIFNZTExBQklDUyBNT087TG87MDtMOzs7OztOOzs7OzsKKzE0QTk7Q0FOQURJQU4gU1lMTEFCSUNTIFktQ1JFRSBNT087TG87MDtMOzs7OztOOzs7OzsKKzE0QUE7Q0FOQURJQU4gU1lMTEFCSUNTIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEFCO0NBTkFESUFOIFNZTExBQklDUyBNQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0QUM7Q0FOQURJQU4gU1lMTEFCSUNTIE1XRTtMbzswO0w7Ozs7O047Ozs7OworMTRBRDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIE1XRTtMbzswO0w7Ozs7O047Ozs7OworMTRBRTtDQU5BRElBTiBTWUxMQUJJQ1MgTVdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEFGO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTVdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEIwO0NBTkFESUFOIFNZTExBQklDUyBNV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEIxO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTVdJSTtMbzswO0w7Ozs7O047Ozs7OworMTRCMjtDQU5BRElBTiBTWUxMQUJJQ1MgTVdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEIzO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTVdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEI0O0NBTkFESUFOIFNZTExBQklDUyBNV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEI1O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTVdPTztMbzswO0w7Ozs7O047Ozs7OworMTRCNjtDQU5BRElBTiBTWUxMQUJJQ1MgTVdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEI3O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTVdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEI4O0NBTkFESUFOIFNZTExBQklDUyBNV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEI5O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTVdBQTtMbzswO0w7Ozs7O047Ozs7OworMTRCQTtDQU5BRElBTiBTWUxMQUJJQ1MgTkFTS0FQSSBNV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEJCO0NBTkFESUFOIFNZTExBQklDUyBNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEJDO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTTtMbzswO0w7Ozs7O047Ozs7OworMTRCRDtDQU5BRElBTiBTWUxMQUJJQ1MgTUg7TG87MDtMOzs7OztOOzs7OzsKKzE0QkU7Q0FOQURJQU4gU1lMTEFCSUNTIEFUSEFQQVNDQU4gTTtMbzswO0w7Ozs7O047Ozs7OworMTRCRjtDQU5BRElBTiBTWUxMQUJJQ1MgU0FZSVNJIE07TG87MDtMOzs7OztOOzs7OzsKKzE0QzA7Q0FOQURJQU4gU1lMTEFCSUNTIE5FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEMxO0NBTkFESUFOIFNZTExBQklDUyBOQUFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEMyO0NBTkFESUFOIFNZTExBQklDUyBOSTtMbzswO0w7Ozs7O047Ozs7OworMTRDMztDQU5BRElBTiBTWUxMQUJJQ1MgTklJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEM0O0NBTkFESUFOIFNZTExBQklDUyBOTztMbzswO0w7Ozs7O047Ozs7OworMTRDNTtDQU5BRElBTiBTWUxMQUJJQ1MgTk9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEM2O0NBTkFESUFOIFNZTExBQklDUyBZLUNSRUUgTk9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEM3O0NBTkFESUFOIFNZTExBQklDUyBOQTtMbzswO0w7Ozs7O047Ozs7OworMTRDODtDQU5BRElBTiBTWUxMQUJJQ1MgTkFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEM5O0NBTkFESUFOIFNZTExBQklDUyBOV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0Q0E7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBOV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0Q0I7Q0FOQURJQU4gU1lMTEFCSUNTIE5XQTtMbzswO0w7Ozs7O047Ozs7OworMTRDQztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIE5XQTtMbzswO0w7Ozs7O047Ozs7OworMTRDRDtDQU5BRElBTiBTWUxMQUJJQ1MgTldBQTtMbzswO0w7Ozs7O047Ozs7OworMTRDRTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIE5XQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0Q0Y7Q0FOQURJQU4gU1lMTEFCSUNTIE5BU0tBUEkgTldBQTtMbzswO0w7Ozs7O047Ozs7OworMTREMDtDQU5BRElBTiBTWUxMQUJJQ1MgTjtMbzswO0w7Ozs7O047Ozs7OworMTREMTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBORztMbzswO0w7Ozs7O047Ozs7OworMTREMjtDQU5BRElBTiBTWUxMQUJJQ1MgTkg7TG87MDtMOzs7OztOOzs7OzsKKzE0RDM7Q0FOQURJQU4gU1lMTEFCSUNTIExFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEQ0O0NBTkFESUFOIFNZTExBQklDUyBMQUFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEQ1O0NBTkFESUFOIFNZTExBQklDUyBMSTtMbzswO0w7Ozs7O047Ozs7OworMTRENjtDQU5BRElBTiBTWUxMQUJJQ1MgTElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEQ3O0NBTkFESUFOIFNZTExBQklDUyBMTztMbzswO0w7Ozs7O047Ozs7OworMTREODtDQU5BRElBTiBTWUxMQUJJQ1MgTE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEQ5O0NBTkFESUFOIFNZTExBQklDUyBZLUNSRUUgTE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNERBO0NBTkFESUFOIFNZTExBQklDUyBMQTtMbzswO0w7Ozs7O047Ozs7OworMTREQjtDQU5BRElBTiBTWUxMQUJJQ1MgTEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNERDO0NBTkFESUFOIFNZTExBQklDUyBMV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0REQ7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBMV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0REU7Q0FOQURJQU4gU1lMTEFCSUNTIExXSTtMbzswO0w7Ozs7O047Ozs7OworMTRERjtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIExXSTtMbzswO0w7Ozs7O047Ozs7OworMTRFMDtDQU5BRElBTiBTWUxMQUJJQ1MgTFdJSTtMbzswO0w7Ozs7O047Ozs7OworMTRFMTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIExXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0RTI7Q0FOQURJQU4gU1lMTEFCSUNTIExXTztMbzswO0w7Ozs7O047Ozs7OworMTRFMztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIExXTztMbzswO0w7Ozs7O047Ozs7OworMTRFNDtDQU5BRElBTiBTWUxMQUJJQ1MgTFdPTztMbzswO0w7Ozs7O047Ozs7OworMTRFNTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIExXT087TG87MDtMOzs7OztOOzs7OzsKKzE0RTY7Q0FOQURJQU4gU1lMTEFCSUNTIExXQTtMbzswO0w7Ozs7O047Ozs7OworMTRFNztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIExXQTtMbzswO0w7Ozs7O047Ozs7OworMTRFODtDQU5BRElBTiBTWUxMQUJJQ1MgTFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTRFOTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIExXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0RUE7Q0FOQURJQU4gU1lMTEFCSUNTIEw7TG87MDtMOzs7OztOOzs7OzsKKzE0RUI7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEVDO0NBTkFESUFOIFNZTExBQklDUyBNRURJQUwgTDtMbzswO0w7Ozs7O047Ozs7OworMTRFRDtDQU5BRElBTiBTWUxMQUJJQ1MgU0U7TG87MDtMOzs7OztOOzs7OzsKKzE0RUU7Q0FOQURJQU4gU1lMTEFCSUNTIFNBQUk7TG87MDtMOzs7OztOOzs7OzsKKzE0RUY7Q0FOQURJQU4gU1lMTEFCSUNTIFNJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEYwO0NBTkFESUFOIFNZTExBQklDUyBTSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0RjE7Q0FOQURJQU4gU1lMTEFCSUNTIFNPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEYyO0NBTkFESUFOIFNZTExBQklDUyBTT087TG87MDtMOzs7OztOOzs7OzsKKzE0RjM7Q0FOQURJQU4gU1lMTEFCSUNTIFktQ1JFRSBTT087TG87MDtMOzs7OztOOzs7OzsKKzE0RjQ7Q0FOQURJQU4gU1lMTEFCSUNTIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEY1O0NBTkFESUFOIFNZTExBQklDUyBTQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0RjY7Q0FOQURJQU4gU1lMTEFCSUNTIFNXRTtMbzswO0w7Ozs7O047Ozs7OworMTRGNztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFNXRTtMbzswO0w7Ozs7O047Ozs7OworMTRGODtDQU5BRElBTiBTWUxMQUJJQ1MgU1dJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEY5O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgU1dJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEZBO0NBTkFESUFOIFNZTExBQklDUyBTV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEZCO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgU1dJSTtMbzswO0w7Ozs7O047Ozs7OworMTRGQztDQU5BRElBTiBTWUxMQUJJQ1MgU1dPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEZEO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgU1dPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEZFO0NBTkFESUFOIFNZTExBQklDUyBTV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEZGO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgU1dPTztMbzswO0w7Ozs7O047Ozs7OworMTUwMDtDQU5BRElBTiBTWUxMQUJJQ1MgU1dBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTAxO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgU1dBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTAyO0NBTkFESUFOIFNZTExBQklDUyBTV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTAzO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgU1dBQTtMbzswO0w7Ozs7O047Ozs7OworMTUwNDtDQU5BRElBTiBTWUxMQUJJQ1MgTkFTS0FQSSBTV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTA1O0NBTkFESUFOIFNZTExBQklDUyBTO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTA2O0NBTkFESUFOIFNZTExBQklDUyBBVEhBUEFTQ0FOIFM7TG87MDtMOzs7OztOOzs7OzsKKzE1MDc7Q0FOQURJQU4gU1lMTEFCSUNTIFNXO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTA4O0NBTkFESUFOIFNZTExBQklDUyBCTEFDS0ZPT1QgUztMbzswO0w7Ozs7O047Ozs7OworMTUwOTtDQU5BRElBTiBTWUxMQUJJQ1MgTU9PU0UtQ1JFRSBTSztMbzswO0w7Ozs7O047Ozs7OworMTUwQTtDQU5BRElBTiBTWUxMQUJJQ1MgTkFTS0FQSSBTS1c7TG87MDtMOzs7OztOOzs7OzsKKzE1MEI7Q0FOQURJQU4gU1lMTEFCSUNTIE5BU0tBUEkgUy1XO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTBDO0NBTkFESUFOIFNZTExBQklDUyBOQVNLQVBJIFNQV0E7TG87MDtMOzs7OztOOzs7OzsKKzE1MEQ7Q0FOQURJQU4gU1lMTEFCSUNTIE5BU0tBUEkgU1RXQTtMbzswO0w7Ozs7O047Ozs7OworMTUwRTtDQU5BRElBTiBTWUxMQUJJQ1MgTkFTS0FQSSBTS1dBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTBGO0NBTkFESUFOIFNZTExBQklDUyBOQVNLQVBJIFNDV0E7TG87MDtMOzs7OztOOzs7OzsKKzE1MTA7Q0FOQURJQU4gU1lMTEFCSUNTIFNIRTtMbzswO0w7Ozs7O047Ozs7OworMTUxMTtDQU5BRElBTiBTWUxMQUJJQ1MgU0hJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTEyO0NBTkFESUFOIFNZTExBQklDUyBTSElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTEzO0NBTkFESUFOIFNZTExBQklDUyBTSE87TG87MDtMOzs7OztOOzs7OzsKKzE1MTQ7Q0FOQURJQU4gU1lMTEFCSUNTIFNIT087TG87MDtMOzs7OztOOzs7OzsKKzE1MTU7Q0FOQURJQU4gU1lMTEFCSUNTIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMTUxNjtDQU5BRElBTiBTWUxMQUJJQ1MgU0hBQTtMbzswO0w7Ozs7O047Ozs7OworMTUxNztDQU5BRElBTiBTWUxMQUJJQ1MgU0hXRTtMbzswO0w7Ozs7O047Ozs7OworMTUxODtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFNIV0U7TG87MDtMOzs7OztOOzs7OzsKKzE1MTk7Q0FOQURJQU4gU1lMTEFCSUNTIFNIV0k7TG87MDtMOzs7OztOOzs7OzsKKzE1MUE7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBTSFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTFCO0NBTkFESUFOIFNZTExBQklDUyBTSFdJSTtMbzswO0w7Ozs7O047Ozs7OworMTUxQztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFNIV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTFEO0NBTkFESUFOIFNZTExBQklDUyBTSFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTFFO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgU0hXTztMbzswO0w7Ozs7O047Ozs7OworMTUxRjtDQU5BRElBTiBTWUxMQUJJQ1MgU0hXT087TG87MDtMOzs7OztOOzs7OzsKKzE1MjA7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBTSFdPTztMbzswO0w7Ozs7O047Ozs7OworMTUyMTtDQU5BRElBTiBTWUxMQUJJQ1MgU0hXQTtMbzswO0w7Ozs7O047Ozs7OworMTUyMjtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFNIV0E7TG87MDtMOzs7OztOOzs7OzsKKzE1MjM7Q0FOQURJQU4gU1lMTEFCSUNTIFNIV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTI0O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgU0hXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1MjU7Q0FOQURJQU4gU1lMTEFCSUNTIFNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTI2O0NBTkFESUFOIFNZTExBQklDUyBZRTtMbzswO0w7Ozs7O047Ozs7OworMTUyNztDQU5BRElBTiBTWUxMQUJJQ1MgWUFBSTtMbzswO0w7Ozs7O047Ozs7OworMTUyODtDQU5BRElBTiBTWUxMQUJJQ1MgWUk7TG87MDtMOzs7OztOOzs7OzsKKzE1Mjk7Q0FOQURJQU4gU1lMTEFCSUNTIFlJSTtMbzswO0w7Ozs7O047Ozs7OworMTUyQTtDQU5BRElBTiBTWUxMQUJJQ1MgWU87TG87MDtMOzs7OztOOzs7OzsKKzE1MkI7Q0FOQURJQU4gU1lMTEFCSUNTIFlPTztMbzswO0w7Ozs7O047Ozs7OworMTUyQztDQU5BRElBTiBTWUxMQUJJQ1MgWS1DUkVFIFlPTztMbzswO0w7Ozs7O047Ozs7OworMTUyRDtDQU5BRElBTiBTWUxMQUJJQ1MgWUE7TG87MDtMOzs7OztOOzs7OzsKKzE1MkU7Q0FOQURJQU4gU1lMTEFCSUNTIFlBQTtMbzswO0w7Ozs7O047Ozs7OworMTUyRjtDQU5BRElBTiBTWUxMQUJJQ1MgWVdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTMwO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgWVdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTMxO0NBTkFESUFOIFNZTExBQklDUyBZV0k7TG87MDtMOzs7OztOOzs7OzsKKzE1MzI7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBZV0k7TG87MDtMOzs7OztOOzs7OzsKKzE1MzM7Q0FOQURJQU4gU1lMTEFCSUNTIFlXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE1MzQ7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBZV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTM1O0NBTkFESUFOIFNZTExBQklDUyBZV087TG87MDtMOzs7OztOOzs7OzsKKzE1MzY7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBZV087TG87MDtMOzs7OztOOzs7OzsKKzE1Mzc7Q0FOQURJQU4gU1lMTEFCSUNTIFlXT087TG87MDtMOzs7OztOOzs7OzsKKzE1Mzg7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBZV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTM5O0NBTkFESUFOIFNZTExBQklDUyBZV0E7TG87MDtMOzs7OztOOzs7OzsKKzE1M0E7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBZV0E7TG87MDtMOzs7OztOOzs7OzsKKzE1M0I7Q0FOQURJQU4gU1lMTEFCSUNTIFlXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1M0M7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBZV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTNEO0NBTkFESUFOIFNZTExBQklDUyBOQVNLQVBJIFlXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1M0U7Q0FOQURJQU4gU1lMTEFCSUNTIFk7TG87MDtMOzs7OztOOzs7OzsKKzE1M0Y7Q0FOQURJQU4gU1lMTEFCSUNTIEJJQkxFLUNSRUUgWTtMbzswO0w7Ozs7O047Ozs7OworMTU0MDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFk7TG87MDtMOzs7OztOOzs7OzsKKzE1NDE7Q0FOQURJQU4gU1lMTEFCSUNTIFNBWUlTSSBZSTtMbzswO0w7Ozs7O047Ozs7OworMTU0MjtDQU5BRElBTiBTWUxMQUJJQ1MgUkU7TG87MDtMOzs7OztOOzs7OzsKKzE1NDM7Q0FOQURJQU4gU1lMTEFCSUNTIFItQ1JFRSBSRTtMbzswO0w7Ozs7O047Ozs7OworMTU0NDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIExFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTQ1O0NBTkFESUFOIFNZTExBQklDUyBSQUFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTQ2O0NBTkFESUFOIFNZTExBQklDUyBSSTtMbzswO0w7Ozs7O047Ozs7OworMTU0NztDQU5BRElBTiBTWUxMQUJJQ1MgUklJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTQ4O0NBTkFESUFOIFNZTExBQklDUyBSTztMbzswO0w7Ozs7O047Ozs7OworMTU0OTtDQU5BRElBTiBTWUxMQUJJQ1MgUk9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTRBO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTE87TG87MDtMOzs7OztOOzs7OzsKKzE1NEI7Q0FOQURJQU4gU1lMTEFCSUNTIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTRDO0NBTkFESUFOIFNZTExBQklDUyBSQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1NEQ7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBMQTtMbzswO0w7Ozs7O047Ozs7OworMTU0RTtDQU5BRElBTiBTWUxMQUJJQ1MgUldBQTtMbzswO0w7Ozs7O047Ozs7OworMTU0RjtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFJXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1NTA7Q0FOQURJQU4gU1lMTEFCSUNTIFI7TG87MDtMOzs7OztOOzs7OzsKKzE1NTE7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTUyO0NBTkFESUFOIFNZTExBQklDUyBNRURJQUwgUjtMbzswO0w7Ozs7O047Ozs7OworMTU1MztDQU5BRElBTiBTWUxMQUJJQ1MgRkU7TG87MDtMOzs7OztOOzs7OzsKKzE1NTQ7Q0FOQURJQU4gU1lMTEFCSUNTIEZBQUk7TG87MDtMOzs7OztOOzs7OzsKKzE1NTU7Q0FOQURJQU4gU1lMTEFCSUNTIEZJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTU2O0NBTkFESUFOIFNZTExBQklDUyBGSUk7TG87MDtMOzs7OztOOzs7OzsKKzE1NTc7Q0FOQURJQU4gU1lMTEFCSUNTIEZPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTU4O0NBTkFESUFOIFNZTExBQklDUyBGT087TG87MDtMOzs7OztOOzs7OzsKKzE1NTk7Q0FOQURJQU4gU1lMTEFCSUNTIEZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTVBO0NBTkFESUFOIFNZTExBQklDUyBGQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1NUI7Q0FOQURJQU4gU1lMTEFCSUNTIEZXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1NUM7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBGV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTVEO0NBTkFESUFOIFNZTExBQklDUyBGO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTVFO0NBTkFESUFOIFNZTExBQklDUyBUSEU7TG87MDtMOzs7OztOOzs7OzsKKzE1NUY7Q0FOQURJQU4gU1lMTEFCSUNTIE4tQ1JFRSBUSEU7TG87MDtMOzs7OztOOzs7OzsKKzE1NjA7Q0FOQURJQU4gU1lMTEFCSUNTIFRISTtMbzswO0w7Ozs7O047Ozs7OworMTU2MTtDQU5BRElBTiBTWUxMQUJJQ1MgTi1DUkVFIFRISTtMbzswO0w7Ozs7O047Ozs7OworMTU2MjtDQU5BRElBTiBTWUxMQUJJQ1MgVEhJSTtMbzswO0w7Ozs7O047Ozs7OworMTU2MztDQU5BRElBTiBTWUxMQUJJQ1MgTi1DUkVFIFRISUk7TG87MDtMOzs7OztOOzs7OzsKKzE1NjQ7Q0FOQURJQU4gU1lMTEFCSUNTIFRITztMbzswO0w7Ozs7O047Ozs7OworMTU2NTtDQU5BRElBTiBTWUxMQUJJQ1MgVEhPTztMbzswO0w7Ozs7O047Ozs7OworMTU2NjtDQU5BRElBTiBTWUxMQUJJQ1MgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTY3O0NBTkFESUFOIFNZTExBQklDUyBUSEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTY4O0NBTkFESUFOIFNZTExBQklDUyBUSFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTU2OTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFRIV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTZBO0NBTkFESUFOIFNZTExBQklDUyBUSDtMbzswO0w7Ozs7O047Ozs7OworMTU2QjtDQU5BRElBTiBTWUxMQUJJQ1MgVFRIRTtMbzswO0w7Ozs7O047Ozs7OworMTU2QztDQU5BRElBTiBTWUxMQUJJQ1MgVFRISTtMbzswO0w7Ozs7O047Ozs7OworMTU2RDtDQU5BRElBTiBTWUxMQUJJQ1MgVFRITztMbzswO0w7Ozs7O047Ozs7OworMTU2RTtDQU5BRElBTiBTWUxMQUJJQ1MgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMTU2RjtDQU5BRElBTiBTWUxMQUJJQ1MgVFRIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTcwO0NBTkFESUFOIFNZTExBQklDUyBUWUU7TG87MDtMOzs7OztOOzs7OzsKKzE1NzE7Q0FOQURJQU4gU1lMTEFCSUNTIFRZSTtMbzswO0w7Ozs7O047Ozs7OworMTU3MjtDQU5BRElBTiBTWUxMQUJJQ1MgVFlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTczO0NBTkFESUFOIFNZTExBQklDUyBUWUE7TG87MDtMOzs7OztOOzs7OzsKKzE1NzQ7Q0FOQURJQU4gU1lMTEFCSUNTIE5VTkFWSUsgSEU7TG87MDtMOzs7OztOOzs7OzsKKzE1NzU7Q0FOQURJQU4gU1lMTEFCSUNTIE5VTkFWSUsgSEk7TG87MDtMOzs7OztOOzs7OzsKKzE1NzY7Q0FOQURJQU4gU1lMTEFCSUNTIE5VTkFWSUsgSElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTc3O0NBTkFESUFOIFNZTExBQklDUyBOVU5BVklLIEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTc4O0NBTkFESUFOIFNZTExBQklDUyBOVU5BVklLIEhPTztMbzswO0w7Ozs7O047Ozs7OworMTU3OTtDQU5BRElBTiBTWUxMQUJJQ1MgTlVOQVZJSyBIQTtMbzswO0w7Ozs7O047Ozs7OworMTU3QTtDQU5BRElBTiBTWUxMQUJJQ1MgTlVOQVZJSyBIQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1N0I7Q0FOQURJQU4gU1lMTEFCSUNTIE5VTkFWSUsgSDtMbzswO0w7Ozs7O047Ozs7OworMTU3QztDQU5BRElBTiBTWUxMQUJJQ1MgTlVOQVZVVCBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTdEO0NBTkFESUFOIFNZTExBQklDUyBISztMbzswO0w7Ozs7O047Ozs7OworMTU3RTtDQU5BRElBTiBTWUxMQUJJQ1MgUUFBSTtMbzswO0w7Ozs7O047Ozs7OworMTU3RjtDQU5BRElBTiBTWUxMQUJJQ1MgUUk7TG87MDtMOzs7OztOOzs7OzsKKzE1ODA7Q0FOQURJQU4gU1lMTEFCSUNTIFFJSTtMbzswO0w7Ozs7O047Ozs7OworMTU4MTtDQU5BRElBTiBTWUxMQUJJQ1MgUU87TG87MDtMOzs7OztOOzs7OzsKKzE1ODI7Q0FOQURJQU4gU1lMTEFCSUNTIFFPTztMbzswO0w7Ozs7O047Ozs7OworMTU4MztDQU5BRElBTiBTWUxMQUJJQ1MgUUE7TG87MDtMOzs7OztOOzs7OzsKKzE1ODQ7Q0FOQURJQU4gU1lMTEFCSUNTIFFBQTtMbzswO0w7Ozs7O047Ozs7OworMTU4NTtDQU5BRElBTiBTWUxMQUJJQ1MgUTtMbzswO0w7Ozs7O047Ozs7OworMTU4NjtDQU5BRElBTiBTWUxMQUJJQ1MgVExIRTtMbzswO0w7Ozs7O047Ozs7OworMTU4NztDQU5BRElBTiBTWUxMQUJJQ1MgVExISTtMbzswO0w7Ozs7O047Ozs7OworMTU4ODtDQU5BRElBTiBTWUxMQUJJQ1MgVExITztMbzswO0w7Ozs7O047Ozs7OworMTU4OTtDQU5BRElBTiBTWUxMQUJJQ1MgVExIQTtMbzswO0w7Ozs7O047Ozs7OworMTU4QTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFJFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNThCO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgUkk7TG87MDtMOzs7OztOOzs7OzsKKzE1OEM7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBSTztMbzswO0w7Ozs7O047Ozs7OworMTU4RDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNThFO0NBTkFESUFOIFNZTExBQklDUyBOR0FBSTtMbzswO0w7Ozs7O047Ozs7OworMTU4RjtDQU5BRElBTiBTWUxMQUJJQ1MgTkdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTkwO0NBTkFESUFOIFNZTExBQklDUyBOR0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTkxO0NBTkFESUFOIFNZTExBQklDUyBOR087TG87MDtMOzs7OztOOzs7OzsKKzE1OTI7Q0FOQURJQU4gU1lMTEFCSUNTIE5HT087TG87MDtMOzs7OztOOzs7OzsKKzE1OTM7Q0FOQURJQU4gU1lMTEFCSUNTIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMTU5NDtDQU5BRElBTiBTWUxMQUJJQ1MgTkdBQTtMbzswO0w7Ozs7O047Ozs7OworMTU5NTtDQU5BRElBTiBTWUxMQUJJQ1MgTkc7TG87MDtMOzs7OztOOzs7OzsKKzE1OTY7Q0FOQURJQU4gU1lMTEFCSUNTIE5ORztMbzswO0w7Ozs7O047Ozs7OworMTU5NztDQU5BRElBTiBTWUxMQUJJQ1MgU0FZSVNJIFNIRTtMbzswO0w7Ozs7O047Ozs7OworMTU5ODtDQU5BRElBTiBTWUxMQUJJQ1MgU0FZSVNJIFNISTtMbzswO0w7Ozs7O047Ozs7OworMTU5OTtDQU5BRElBTiBTWUxMQUJJQ1MgU0FZSVNJIFNITztMbzswO0w7Ozs7O047Ozs7OworMTU5QTtDQU5BRElBTiBTWUxMQUJJQ1MgU0FZSVNJIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMTU5QjtDQU5BRElBTiBTWUxMQUJJQ1MgV09PRFMtQ1JFRSBUSEU7TG87MDtMOzs7OztOOzs7OzsKKzE1OUM7Q0FOQURJQU4gU1lMTEFCSUNTIFdPT0RTLUNSRUUgVEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTlEO0NBTkFESUFOIFNZTExBQklDUyBXT09EUy1DUkVFIFRITztMbzswO0w7Ozs7O047Ozs7OworMTU5RTtDQU5BRElBTiBTWUxMQUJJQ1MgV09PRFMtQ1JFRSBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzE1OUY7Q0FOQURJQU4gU1lMTEFCSUNTIFdPT0RTLUNSRUUgVEg7TG87MDtMOzs7OztOOzs7OzsKKzE1QTA7Q0FOQURJQU4gU1lMTEFCSUNTIExISTtMbzswO0w7Ozs7O047Ozs7OworMTVBMTtDQU5BRElBTiBTWUxMQUJJQ1MgTEhJSTtMbzswO0w7Ozs7O047Ozs7OworMTVBMjtDQU5BRElBTiBTWUxMQUJJQ1MgTEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUEzO0NBTkFESUFOIFNZTExBQklDUyBMSE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUE0O0NBTkFESUFOIFNZTExBQklDUyBMSEE7TG87MDtMOzs7OztOOzs7OzsKKzE1QTU7Q0FOQURJQU4gU1lMTEFCSUNTIExIQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1QTY7Q0FOQURJQU4gU1lMTEFCSUNTIExIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUE3O0NBTkFESUFOIFNZTExBQklDUyBUSC1DUkVFIFRIRTtMbzswO0w7Ozs7O047Ozs7OworMTVBODtDQU5BRElBTiBTWUxMQUJJQ1MgVEgtQ1JFRSBUSEk7TG87MDtMOzs7OztOOzs7OzsKKzE1QTk7Q0FOQURJQU4gU1lMTEFCSUNTIFRILUNSRUUgVEhJSTtMbzswO0w7Ozs7O047Ozs7OworMTVBQTtDQU5BRElBTiBTWUxMQUJJQ1MgVEgtQ1JFRSBUSE87TG87MDtMOzs7OztOOzs7OzsKKzE1QUI7Q0FOQURJQU4gU1lMTEFCSUNTIFRILUNSRUUgVEhPTztMbzswO0w7Ozs7O047Ozs7OworMTVBQztDQU5BRElBTiBTWUxMQUJJQ1MgVEgtQ1JFRSBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzE1QUQ7Q0FOQURJQU4gU1lMTEFCSUNTIFRILUNSRUUgVEhBQTtMbzswO0w7Ozs7O047Ozs7OworMTVBRTtDQU5BRElBTiBTWUxMQUJJQ1MgVEgtQ1JFRSBUSDtMbzswO0w7Ozs7O047Ozs7OworMTVBRjtDQU5BRElBTiBTWUxMQUJJQ1MgQUlWSUxJSyBCO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUIwO0NBTkFESUFOIFNZTExBQklDUyBCTEFDS0ZPT1QgRTtMbzswO0w7Ozs7O047Ozs7OworMTVCMTtDQU5BRElBTiBTWUxMQUJJQ1MgQkxBQ0tGT09UIEk7TG87MDtMOzs7OztOOzs7OzsKKzE1QjI7Q0FOQURJQU4gU1lMTEFCSUNTIEJMQUNLRk9PVCBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUIzO0NBTkFESUFOIFNZTExBQklDUyBCTEFDS0ZPT1QgQTtMbzswO0w7Ozs7O047Ozs7OworMTVCNDtDQU5BRElBTiBTWUxMQUJJQ1MgQkxBQ0tGT09UIFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUI1O0NBTkFESUFOIFNZTExBQklDUyBCTEFDS0ZPT1QgV0k7TG87MDtMOzs7OztOOzs7OzsKKzE1QjY7Q0FOQURJQU4gU1lMTEFCSUNTIEJMQUNLRk9PVCBXTztMbzswO0w7Ozs7O047Ozs7OworMTVCNztDQU5BRElBTiBTWUxMQUJJQ1MgQkxBQ0tGT09UIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUI4O0NBTkFESUFOIFNZTExBQklDUyBCTEFDS0ZPT1QgTkU7TG87MDtMOzs7OztOOzs7OzsKKzE1Qjk7Q0FOQURJQU4gU1lMTEFCSUNTIEJMQUNLRk9PVCBOSTtMbzswO0w7Ozs7O047Ozs7OworMTVCQTtDQU5BRElBTiBTWUxMQUJJQ1MgQkxBQ0tGT09UIE5PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUJCO0NBTkFESUFOIFNZTExBQklDUyBCTEFDS0ZPT1QgTkE7TG87MDtMOzs7OztOOzs7OzsKKzE1QkM7Q0FOQURJQU4gU1lMTEFCSUNTIEJMQUNLRk9PVCBLRTtMbzswO0w7Ozs7O047Ozs7OworMTVCRDtDQU5BRElBTiBTWUxMQUJJQ1MgQkxBQ0tGT09UIEtJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUJFO0NBTkFESUFOIFNZTExBQklDUyBCTEFDS0ZPT1QgS087TG87MDtMOzs7OztOOzs7OzsKKzE1QkY7Q0FOQURJQU4gU1lMTEFCSUNTIEJMQUNLRk9PVCBLQTtMbzswO0w7Ozs7O047Ozs7OworMTVDMDtDQU5BRElBTiBTWUxMQUJJQ1MgU0FZSVNJIEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUMxO0NBTkFESUFOIFNZTExBQklDUyBTQVlJU0kgSEk7TG87MDtMOzs7OztOOzs7OzsKKzE1QzI7Q0FOQURJQU4gU1lMTEFCSUNTIFNBWUlTSSBITztMbzswO0w7Ozs7O047Ozs7OworMTVDMztDQU5BRElBTiBTWUxMQUJJQ1MgU0FZSVNJIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUM0O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEdIVTtMbzswO0w7Ozs7O047Ozs7OworMTVDNTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBHSE87TG87MDtMOzs7OztOOzs7OzsKKzE1QzY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgR0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUM3O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEdIRUU7TG87MDtMOzs7OztOOzs7OzsKKzE1Qzg7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgR0hJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUM5O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEdIQTtMbzswO0w7Ozs7O047Ozs7OworMTVDQTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBSVTtMbzswO0w7Ozs7O047Ozs7OworMTVDQjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBSTztMbzswO0w7Ozs7O047Ozs7OworMTVDQztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBSRTtMbzswO0w7Ozs7O047Ozs7OworMTVDRDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBSRUU7TG87MDtMOzs7OztOOzs7OzsKKzE1Q0U7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgUkk7TG87MDtMOzs7OztOOzs7OzsKKzE1Q0Y7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzE1RDA7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgV1U7TG87MDtMOzs7OztOOzs7OzsKKzE1RDE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgV087TG87MDtMOzs7OztOOzs7OzsKKzE1RDI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgV0U7TG87MDtMOzs7OztOOzs7OzsKKzE1RDM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgV0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUQ0O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUQ1O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUQ2O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEhXVTtMbzswO0w7Ozs7O047Ozs7OworMTVENztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBIV087TG87MDtMOzs7OztOOzs7OzsKKzE1RDg7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUQ5O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEhXRUU7TG87MDtMOzs7OztOOzs7OzsKKzE1REE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNURCO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEhXQTtMbzswO0w7Ozs7O047Ozs7OworMTVEQztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUSFU7TG87MDtMOzs7OztOOzs7OzsKKzE1REQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNURFO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRIRTtMbzswO0w7Ozs7O047Ozs7OworMTVERjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUSEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUUwO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRISTtMbzswO0w7Ozs7O047Ozs7OworMTVFMTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzE1RTI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFRVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUUzO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRUTztMbzswO0w7Ozs7O047Ozs7OworMTVFNDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUVEU7TG87MDtMOzs7OztOOzs7OzsKKzE1RTU7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFRFRTtMbzswO0w7Ozs7O047Ozs7OworMTVFNjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUVEk7TG87MDtMOzs7OztOOzs7OzsKKzE1RTc7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUU4O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUU5O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUVBO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUVCO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFBFRTtMbzswO0w7Ozs7O047Ozs7OworMTVFQztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBQSTtMbzswO0w7Ozs7O047Ozs7OworMTVFRDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMTVFRTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUVGO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEdVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUYwO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUYxO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUYyO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEdFRTtMbzswO0w7Ozs7O047Ozs7OworMTVGMztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBHSTtMbzswO0w7Ozs7O047Ozs7OworMTVGNDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMTVGNTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBLSFU7TG87MDtMOzs7OztOOzs7OzsKKzE1RjY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgS0hPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUY3O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEtIRTtMbzswO0w7Ozs7O047Ozs7OworMTVGODtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBLSEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUY5O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEtISTtMbzswO0w7Ozs7O047Ozs7OworMTVGQTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzE1RkI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgS0tVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUZDO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEtLTztMbzswO0w7Ozs7O047Ozs7OworMTVGRDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBLS0U7TG87MDtMOzs7OztOOzs7OzsKKzE1RkU7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgS0tFRTtMbzswO0w7Ozs7O047Ozs7OworMTVGRjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBLS0k7TG87MDtMOzs7OztOOzs7OzsKKzE2MDA7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgS0tBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjAxO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEtLO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjAyO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIE5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjAzO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIE5PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjA0O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIE5FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjA1O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIE5FRTtMbzswO0w7Ozs7O047Ozs7OworMTYwNjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBOSTtMbzswO0w7Ozs7O047Ozs7OworMTYwNztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMTYwODtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBNVTtMbzswO0w7Ozs7O047Ozs7OworMTYwOTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBNTztMbzswO0w7Ozs7O047Ozs7OworMTYwQTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBNRTtMbzswO0w7Ozs7O047Ozs7OworMTYwQjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBNRUU7TG87MDtMOzs7OztOOzs7OzsKKzE2MEM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTUk7TG87MDtMOzs7OztOOzs7OzsKKzE2MEQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzE2MEU7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgWVU7TG87MDtMOzs7OztOOzs7OzsKKzE2MEY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgWU87TG87MDtMOzs7OztOOzs7OzsKKzE2MTA7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgWUU7TG87MDtMOzs7OztOOzs7OzsKKzE2MTE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgWUVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjEyO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFlJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjEzO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjE0O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEpVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjE1O0NBTkFESUFOIFNZTExBQklDUyBTQVlJU0kgSlU7TG87MDtMOzs7OztOOzs7OzsKKzE2MTY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSk87TG87MDtMOzs7OztOOzs7OzsKKzE2MTc7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSkU7TG87MDtMOzs7OztOOzs7OzsKKzE2MTg7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSkVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjE5O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjFBO0NBTkFESUFOIFNZTExBQklDUyBTQVlJU0kgSkk7TG87MDtMOzs7OztOOzs7OzsKKzE2MUI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzE2MUM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSkpVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjFEO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEpKTztMbzswO0w7Ozs7O047Ozs7OworMTYxRTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBKSkU7TG87MDtMOzs7OztOOzs7OzsKKzE2MUY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSkpFRTtMbzswO0w7Ozs7O047Ozs7OworMTYyMDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBKSkk7TG87MDtMOzs7OztOOzs7OzsKKzE2MjE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSkpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjIyO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIExVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjIzO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIExPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjI0O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIExFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjI1O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIExFRTtMbzswO0w7Ozs7O047Ozs7OworMTYyNjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBMSTtMbzswO0w7Ozs7O047Ozs7OworMTYyNztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMTYyODtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBETFU7TG87MDtMOzs7OztOOzs7OzsKKzE2Mjk7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgRExPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjJBO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIERMRTtMbzswO0w7Ozs7O047Ozs7OworMTYyQjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBETEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjJDO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIERMSTtMbzswO0w7Ozs7O047Ozs7OworMTYyRDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBETEE7TG87MDtMOzs7OztOOzs7OzsKKzE2MkU7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTEhVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjJGO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIExITztMbzswO0w7Ozs7O047Ozs7OworMTYzMDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBMSEU7TG87MDtMOzs7OztOOzs7OzsKKzE2MzE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTEhFRTtMbzswO0w7Ozs7O047Ozs7OworMTYzMjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBMSEk7TG87MDtMOzs7OztOOzs7OzsKKzE2MzM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjM0O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRMSFU7TG87MDtMOzs7OztOOzs7OzsKKzE2MzU7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVExITztMbzswO0w7Ozs7O047Ozs7OworMTYzNjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUTEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjM3O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRMSEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjM4O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRMSEk7TG87MDtMOzs7OztOOzs7OzsKKzE2Mzk7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVExIQTtMbzswO0w7Ozs7O047Ozs7OworMTYzQTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUTFU7TG87MDtMOzs7OztOOzs7OzsKKzE2M0I7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVExPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjNDO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRMRTtMbzswO0w7Ozs7O047Ozs7OworMTYzRDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUTEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjNFO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRMSTtMbzswO0w7Ozs7O047Ozs7OworMTYzRjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUTEE7TG87MDtMOzs7OztOOzs7OzsKKzE2NDA7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgWlU7TG87MDtMOzs7OztOOzs7OzsKKzE2NDE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgWk87TG87MDtMOzs7OztOOzs7OzsKKzE2NDI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgWkU7TG87MDtMOzs7OztOOzs7OzsKKzE2NDM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgWkVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjQ0O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjQ1O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjQ2O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFo7TG87MDtMOzs7OztOOzs7OzsKKzE2NDc7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSU5JVElBTCBaO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjQ4O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIERaVTtMbzswO0w7Ozs7O047Ozs7OworMTY0OTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBEWk87TG87MDtMOzs7OztOOzs7OzsKKzE2NEE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgRFpFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjRCO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIERaRUU7TG87MDtMOzs7OztOOzs7OzsKKzE2NEM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgRFpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjREO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIERaQTtMbzswO0w7Ozs7O047Ozs7OworMTY0RTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBTVTtMbzswO0w7Ozs7O047Ozs7OworMTY0RjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBTTztMbzswO0w7Ozs7O047Ozs7OworMTY1MDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBTRTtMbzswO0w7Ozs7O047Ozs7OworMTY1MTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBTRUU7TG87MDtMOzs7OztOOzs7OzsKKzE2NTI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgU0k7TG87MDtMOzs7OztOOzs7OzsKKzE2NTM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzE2NTQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgU0hVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjU1O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFNITztMbzswO0w7Ozs7O047Ozs7OworMTY1NjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBTSEU7TG87MDtMOzs7OztOOzs7OzsKKzE2NTc7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgU0hFRTtMbzswO0w7Ozs7O047Ozs7OworMTY1ODtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBTSEk7TG87MDtMOzs7OztOOzs7OzsKKzE2NTk7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjVBO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjVCO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRTVTtMbzswO0w7Ozs7O047Ozs7OworMTY1QztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUU087TG87MDtMOzs7OztOOzs7OzsKKzE2NUQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFNFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjVFO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRTRUU7TG87MDtMOzs7OztOOzs7OzsKKzE2NUY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFNJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjYwO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRTQTtMbzswO0w7Ozs7O047Ozs7OworMTY2MTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBDSFU7TG87MDtMOzs7OztOOzs7OzsKKzE2NjI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgQ0hPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjYzO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIENIRTtMbzswO0w7Ozs7O047Ozs7OworMTY2NDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBDSEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjY1O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIENISTtMbzswO0w7Ozs7O047Ozs7OworMTY2NjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzE2Njc7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFRTVTtMbzswO0w7Ozs7O047Ozs7OworMTY2ODtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUVFNPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjY5O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRUU0U7TG87MDtMOzs7OztOOzs7OzsKKzE2NkE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFRTRUU7TG87MDtMOzs7OztOOzs7OzsKKzE2NkI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFRTSTtMbzswO0w7Ozs7O047Ozs7OworMTY2QztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUVFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjZEO0NBTkFESUFOIFNZTExBQklDUyBDSEkgU0lHTjtQbzswO0w7Ozs7O047Ozs7OworMTY2RTtDQU5BRElBTiBTWUxMQUJJQ1MgRlVMTCBTVE9QO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxNjZGO0NBTkFESUFOIFNZTExBQklDUyBRQUk7TG87MDtMOzs7OztOOzs7OzsKKzE2NzA7Q0FOQURJQU4gU1lMTEFCSUNTIE5HQUk7TG87MDtMOzs7OztOOzs7OzsKKzE2NzE7Q0FOQURJQU4gU1lMTEFCSUNTIE5OR0k7TG87MDtMOzs7OztOOzs7OzsKKzE2NzI7Q0FOQURJQU4gU1lMTEFCSUNTIE5OR0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjczO0NBTkFESUFOIFNZTExBQklDUyBOTkdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjc0O0NBTkFESUFOIFNZTExBQklDUyBOTkdPTztMbzswO0w7Ozs7O047Ozs7OworMTY3NTtDQU5BRElBTiBTWUxMQUJJQ1MgTk5HQTtMbzswO0w7Ozs7O047Ozs7OworMTY3NjtDQU5BRElBTiBTWUxMQUJJQ1MgTk5HQUE7TG87MDtMOzs7OztOOzs7OzsKKzE2ODA7T0dIQU0gU1BBQ0UgTUFSSztaczswO1dTOzs7OztOOzs7OzsKKzE2ODE7T0dIQU0gTEVUVEVSIEJFSVRIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjgyO09HSEFNIExFVFRFUiBMVUlTO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjgzO09HSEFNIExFVFRFUiBGRUFSTjtMbzswO0w7Ozs7O047Ozs7OworMTY4NDtPR0hBTSBMRVRURVIgU0FJTDtMbzswO0w7Ozs7O047Ozs7OworMTY4NTtPR0hBTSBMRVRURVIgTklPTjtMbzswO0w7Ozs7O047Ozs7OworMTY4NjtPR0hBTSBMRVRURVIgVUFUSDtMbzswO0w7Ozs7O047Ozs7OworMTY4NztPR0hBTSBMRVRURVIgREFJUjtMbzswO0w7Ozs7O047Ozs7OworMTY4ODtPR0hBTSBMRVRURVIgVElOTkU7TG87MDtMOzs7OztOOzs7OzsKKzE2ODk7T0dIQU0gTEVUVEVSIENPTEw7TG87MDtMOzs7OztOOzs7OzsKKzE2OEE7T0dIQU0gTEVUVEVSIENFSVJUO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjhCO09HSEFNIExFVFRFUiBNVUlOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjhDO09HSEFNIExFVFRFUiBHT1JUO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjhEO09HSEFNIExFVFRFUiBOR0VBREFMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjhFO09HSEFNIExFVFRFUiBTVFJBSUY7TG87MDtMOzs7OztOOzs7OzsKKzE2OEY7T0dIQU0gTEVUVEVSIFJVSVM7TG87MDtMOzs7OztOOzs7OzsKKzE2OTA7T0dIQU0gTEVUVEVSIEFJTE07TG87MDtMOzs7OztOOzs7OzsKKzE2OTE7T0dIQU0gTEVUVEVSIE9OTjtMbzswO0w7Ozs7O047Ozs7OworMTY5MjtPR0hBTSBMRVRURVIgVVI7TG87MDtMOzs7OztOOzs7OzsKKzE2OTM7T0dIQU0gTEVUVEVSIEVBREhBREg7TG87MDtMOzs7OztOOzs7OzsKKzE2OTQ7T0dIQU0gTEVUVEVSIElPREhBREg7TG87MDtMOzs7OztOOzs7OzsKKzE2OTU7T0dIQU0gTEVUVEVSIEVBQkhBREg7TG87MDtMOzs7OztOOzs7OzsKKzE2OTY7T0dIQU0gTEVUVEVSIE9SO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjk3O09HSEFNIExFVFRFUiBVSUxMRUFOTjtMbzswO0w7Ozs7O047Ozs7OworMTY5ODtPR0hBTSBMRVRURVIgSUZJTjtMbzswO0w7Ozs7O047Ozs7OworMTY5OTtPR0hBTSBMRVRURVIgRUFNSEFOQ0hPTEw7TG87MDtMOzs7OztOOzs7OzsKKzE2OUE7T0dIQU0gTEVUVEVSIFBFSVRIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjlCO09HSEFNIEZFQVRIRVIgTUFSSztQczswO09OOzs7OztOOzs7OzsKKzE2OUM7T0dIQU0gUkVWRVJTRUQgRkVBVEhFUiBNQVJLO1BlOzA7T047Ozs7O047Ozs7OworMTZBMDtSVU5JQyBMRVRURVIgRkVIVSBGRU9IIEZFIEY7TG87MDtMOzs7OztOOzs7OzsKKzE2QTE7UlVOSUMgTEVUVEVSIFY7TG87MDtMOzs7OztOOzs7OzsKKzE2QTI7UlVOSUMgTEVUVEVSIFVSVVogVVIgVTtMbzswO0w7Ozs7O047Ozs7OworMTZBMztSVU5JQyBMRVRURVIgWVI7TG87MDtMOzs7OztOOzs7OzsKKzE2QTQ7UlVOSUMgTEVUVEVSIFk7TG87MDtMOzs7OztOOzs7OzsKKzE2QTU7UlVOSUMgTEVUVEVSIFc7TG87MDtMOzs7OztOOzs7OzsKKzE2QTY7UlVOSUMgTEVUVEVSIFRIVVJJU0FaIFRIVVJTIFRIT1JOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkE3O1JVTklDIExFVFRFUiBFVEg7TG87MDtMOzs7OztOOzs7OzsKKzE2QTg7UlVOSUMgTEVUVEVSIEFOU1VaIEE7TG87MDtMOzs7OztOOzs7OzsKKzE2QTk7UlVOSUMgTEVUVEVSIE9TIE87TG87MDtMOzs7OztOOzs7OzsKKzE2QUE7UlVOSUMgTEVUVEVSIEFDIEE7TG87MDtMOzs7OztOOzs7OzsKKzE2QUI7UlVOSUMgTEVUVEVSIEFFU0M7TG87MDtMOzs7OztOOzs7OzsKKzE2QUM7UlVOSUMgTEVUVEVSIExPTkctQlJBTkNILU9TUyBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkFEO1JVTklDIExFVFRFUiBTSE9SVC1UV0lHLU9TUyBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkFFO1JVTklDIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkFGO1JVTklDIExFVFRFUiBPRTtMbzswO0w7Ozs7O047Ozs7OworMTZCMDtSVU5JQyBMRVRURVIgT047TG87MDtMOzs7OztOOzs7OzsKKzE2QjE7UlVOSUMgTEVUVEVSIFJBSURPIFJBRCBSRUlEIFI7TG87MDtMOzs7OztOOzs7OzsKKzE2QjI7UlVOSUMgTEVUVEVSIEtBVU5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkIzO1JVTklDIExFVFRFUiBDRU47TG87MDtMOzs7OztOOzs7OzsKKzE2QjQ7UlVOSUMgTEVUVEVSIEtBVU4gSztMbzswO0w7Ozs7O047Ozs7OworMTZCNTtSVU5JQyBMRVRURVIgRztMbzswO0w7Ozs7O047Ozs7OworMTZCNjtSVU5JQyBMRVRURVIgRU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkI3O1JVTklDIExFVFRFUiBHRUJPIEdZRlUgRztMbzswO0w7Ozs7O047Ozs7OworMTZCODtSVU5JQyBMRVRURVIgR0FSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkI5O1JVTklDIExFVFRFUiBXVU5KTyBXWU5OIFc7TG87MDtMOzs7OztOOzs7OzsKKzE2QkE7UlVOSUMgTEVUVEVSIEhBR0xBWiBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkJCO1JVTklDIExFVFRFUiBIQUVHTCBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkJDO1JVTklDIExFVFRFUiBMT05HLUJSQU5DSC1IQUdBTEwgSDtMbzswO0w7Ozs7O047Ozs7OworMTZCRDtSVU5JQyBMRVRURVIgU0hPUlQtVFdJRy1IQUdBTEwgSDtMbzswO0w7Ozs7O047Ozs7OworMTZCRTtSVU5JQyBMRVRURVIgTkFVRElaIE5ZRCBOQVVEIE47TG87MDtMOzs7OztOOzs7OzsKKzE2QkY7UlVOSUMgTEVUVEVSIFNIT1JULVRXSUctTkFVRCBOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkMwO1JVTklDIExFVFRFUiBET1RURUQtTjtMbzswO0w7Ozs7O047Ozs7OworMTZDMTtSVU5JQyBMRVRURVIgSVNBWiBJUyBJU1MgSTtMbzswO0w7Ozs7O047Ozs7OworMTZDMjtSVU5JQyBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMTZDMztSVU5JQyBMRVRURVIgSkVSQU4gSjtMbzswO0w7Ozs7O047Ozs7OworMTZDNDtSVU5JQyBMRVRURVIgR0VSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkM1O1JVTklDIExFVFRFUiBMT05HLUJSQU5DSC1BUiBBRTtMbzswO0w7Ozs7O047Ozs7OworMTZDNjtSVU5JQyBMRVRURVIgU0hPUlQtVFdJRy1BUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkM3O1JVTklDIExFVFRFUiBJV0FaIEVPSDtMbzswO0w7Ozs7O047Ozs7OworMTZDODtSVU5JQyBMRVRURVIgUEVSVEhPIFBFT1JUSCBQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkM5O1JVTklDIExFVFRFUiBBTEdJWiBFT0xIWDtMbzswO0w7Ozs7O047Ozs7OworMTZDQTtSVU5JQyBMRVRURVIgU09XSUxPIFM7TG87MDtMOzs7OztOOzs7OzsKKzE2Q0I7UlVOSUMgTEVUVEVSIFNJR0VMIExPTkctQlJBTkNILVNPTCBTO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkNDO1JVTklDIExFVFRFUiBTSE9SVC1UV0lHLVNPTCBTO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkNEO1JVTklDIExFVFRFUiBDO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkNFO1JVTklDIExFVFRFUiBaO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkNGO1JVTklDIExFVFRFUiBUSVdBWiBUSVIgVFlSIFQ7TG87MDtMOzs7OztOOzs7OzsKKzE2RDA7UlVOSUMgTEVUVEVSIFNIT1JULVRXSUctVFlSIFQ7TG87MDtMOzs7OztOOzs7OzsKKzE2RDE7UlVOSUMgTEVUVEVSIEQ7TG87MDtMOzs7OztOOzs7OzsKKzE2RDI7UlVOSUMgTEVUVEVSIEJFUktBTkFOIEJFT1JDIEJKQVJLQU4gQjtMbzswO0w7Ozs7O047Ozs7OworMTZEMztSVU5JQyBMRVRURVIgU0hPUlQtVFdJRy1CSkFSS0FOIEI7TG87MDtMOzs7OztOOzs7OzsKKzE2RDQ7UlVOSUMgTEVUVEVSIERPVFRFRC1QO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkQ1O1JVTklDIExFVFRFUiBPUEVOLVA7TG87MDtMOzs7OztOOzs7OzsKKzE2RDY7UlVOSUMgTEVUVEVSIEVIV0FaIEVIIEU7TG87MDtMOzs7OztOOzs7OzsKKzE2RDc7UlVOSUMgTEVUVEVSIE1BTk5BWiBNQU4gTTtMbzswO0w7Ozs7O047Ozs7OworMTZEODtSVU5JQyBMRVRURVIgTE9ORy1CUkFOQ0gtTUFEUiBNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkQ5O1JVTklDIExFVFRFUiBTSE9SVC1UV0lHLU1BRFIgTTtMbzswO0w7Ozs7O047Ozs7OworMTZEQTtSVU5JQyBMRVRURVIgTEFVS0FaIExBR1UgTE9HUiBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkRCO1JVTklDIExFVFRFUiBET1RURUQtTDtMbzswO0w7Ozs7O047Ozs7OworMTZEQztSVU5JQyBMRVRURVIgSU5HV0FaO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkREO1JVTklDIExFVFRFUiBJTkc7TG87MDtMOzs7OztOOzs7OzsKKzE2REU7UlVOSUMgTEVUVEVSIERBR0FaIERBRUcgRDtMbzswO0w7Ozs7O047Ozs7OworMTZERjtSVU5JQyBMRVRURVIgT1RIQUxBTiBFVEhFTCBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkUwO1JVTklDIExFVFRFUiBFQVI7TG87MDtMOzs7OztOOzs7OzsKKzE2RTE7UlVOSUMgTEVUVEVSIElPUjtMbzswO0w7Ozs7O047Ozs7OworMTZFMjtSVU5JQyBMRVRURVIgQ1dFT1JUSDtMbzswO0w7Ozs7O047Ozs7OworMTZFMztSVU5JQyBMRVRURVIgQ0FMQztMbzswO0w7Ozs7O047Ozs7OworMTZFNDtSVU5JQyBMRVRURVIgQ0VBTEM7TG87MDtMOzs7OztOOzs7OzsKKzE2RTU7UlVOSUMgTEVUVEVSIFNUQU47TG87MDtMOzs7OztOOzs7OzsKKzE2RTY7UlVOSUMgTEVUVEVSIExPTkctQlJBTkNILVlSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkU3O1JVTklDIExFVFRFUiBTSE9SVC1UV0lHLVlSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkU4O1JVTklDIExFVFRFUiBJQ0VMQU5ESUMtWVI7TG87MDtMOzs7OztOOzs7OzsKKzE2RTk7UlVOSUMgTEVUVEVSIFE7TG87MDtMOzs7OztOOzs7OzsKKzE2RUE7UlVOSUMgTEVUVEVSIFg7TG87MDtMOzs7OztOOzs7OzsKKzE2RUI7UlVOSUMgU0lOR0xFIFBVTkNUVUFUSU9OO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxNkVDO1JVTklDIE1VTFRJUExFIFBVTkNUVUFUSU9OO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxNkVEO1JVTklDIENST1NTIFBVTkNUVUFUSU9OO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxNkVFO1JVTklDIEFSTEFVRyBTWU1CT0w7Tmw7MDtMOzs7OzE3O047O2dvbGRlbiBudW1iZXIgMTc7OzsKKzE2RUY7UlVOSUMgVFZJTUFEVVIgU1lNQk9MO05sOzA7TDs7OzsxODtOOztnb2xkZW4gbnVtYmVyIDE4Ozs7CisxNkYwO1JVTklDIEJFTEdUSE9SIFNZTUJPTDtObDswO0w7Ozs7MTk7Tjs7Z29sZGVuIG51bWJlciAxOTs7OworMTc4MDtLSE1FUiBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzE3ODE7S0hNRVIgTEVUVEVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMTc4MjtLSE1FUiBMRVRURVIgS087TG87MDtMOzs7OztOOzs7OzsKKzE3ODM7S0hNRVIgTEVUVEVSIEtITztMbzswO0w7Ozs7O047Ozs7OworMTc4NDtLSE1FUiBMRVRURVIgTkdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzg1O0tITUVSIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMTc4NjtLSE1FUiBMRVRURVIgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzg3O0tITUVSIExFVFRFUiBDTztMbzswO0w7Ozs7O047Ozs7OworMTc4ODtLSE1FUiBMRVRURVIgQ0hPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzg5O0tITUVSIExFVFRFUiBOWU87TG87MDtMOzs7OztOOzs7OzsKKzE3OEE7S0hNRVIgTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzhCO0tITUVSIExFVFRFUiBUVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzhDO0tITUVSIExFVFRFUiBETztMbzswO0w7Ozs7O047Ozs7OworMTc4RDtLSE1FUiBMRVRURVIgVFRITztMbzswO0w7Ozs7O047Ozs7OworMTc4RTtLSE1FUiBMRVRURVIgTk5PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzhGO0tITUVSIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMTc5MDtLSE1FUiBMRVRURVIgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzkxO0tITUVSIExFVFRFUiBUTztMbzswO0w7Ozs7O047Ozs7OworMTc5MjtLSE1FUiBMRVRURVIgVEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzkzO0tITUVSIExFVFRFUiBOTztMbzswO0w7Ozs7O047Ozs7OworMTc5NDtLSE1FUiBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzE3OTU7S0hNRVIgTEVUVEVSIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMTc5NjtLSE1FUiBMRVRURVIgUE87TG87MDtMOzs7OztOOzs7OzsKKzE3OTc7S0hNRVIgTEVUVEVSIFBITztMbzswO0w7Ozs7O047Ozs7OworMTc5ODtLSE1FUiBMRVRURVIgTU87TG87MDtMOzs7OztOOzs7OzsKKzE3OTk7S0hNRVIgTEVUVEVSIFlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzlBO0tITUVSIExFVFRFUiBSTztMbzswO0w7Ozs7O047Ozs7OworMTc5QjtLSE1FUiBMRVRURVIgTE87TG87MDtMOzs7OztOOzs7OzsKKzE3OUM7S0hNRVIgTEVUVEVSIFZPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzlEO0tITUVSIExFVFRFUiBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzE3OUU7S0hNRVIgTEVUVEVSIFNTTztMbzswO0w7Ozs7O047Ozs7OworMTc5RjtLSE1FUiBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzE3QTA7S0hNRVIgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0ExO0tITUVSIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMTdBMjtLSE1FUiBMRVRURVIgUUE7TG87MDtMOzs7OztOOzs7OzsKKzE3QTM7S0hNRVIgSU5ERVBFTkRFTlQgVk9XRUwgUUFRO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0E0O0tITUVSIElOREVQRU5ERU5UIFZPV0VMIFFBQTtMbzswO0w7Ozs7O047Ozs7OworMTdBNTtLSE1FUiBJTkRFUEVOREVOVCBWT1dFTCBRSTtMbzswO0w7Ozs7O047Ozs7OworMTdBNjtLSE1FUiBJTkRFUEVOREVOVCBWT1dFTCBRSUk7TG87MDtMOzs7OztOOzs7OzsKKzE3QTc7S0hNRVIgSU5ERVBFTkRFTlQgVk9XRUwgUVU7TG87MDtMOzs7OztOOzs7OzsKKzE3QTg7S0hNRVIgSU5ERVBFTkRFTlQgVk9XRUwgUVVLO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0E5O0tITUVSIElOREVQRU5ERU5UIFZPV0VMIFFVVTtMbzswO0w7Ozs7O047Ozs7OworMTdBQTtLSE1FUiBJTkRFUEVOREVOVCBWT1dFTCBRVVVWO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0FCO0tITUVSIElOREVQRU5ERU5UIFZPV0VMIFJZO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0FDO0tITUVSIElOREVQRU5ERU5UIFZPV0VMIFJZWTtMbzswO0w7Ozs7O047Ozs7OworMTdBRDtLSE1FUiBJTkRFUEVOREVOVCBWT1dFTCBMWTtMbzswO0w7Ozs7O047Ozs7OworMTdBRTtLSE1FUiBJTkRFUEVOREVOVCBWT1dFTCBMWVk7TG87MDtMOzs7OztOOzs7OzsKKzE3QUY7S0hNRVIgSU5ERVBFTkRFTlQgVk9XRUwgUUU7TG87MDtMOzs7OztOOzs7OzsKKzE3QjA7S0hNRVIgSU5ERVBFTkRFTlQgVk9XRUwgUUFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0IxO0tITUVSIElOREVQRU5ERU5UIFZPV0VMIFFPTyBUWVBFIE9ORTtMbzswO0w7Ozs7O047Ozs7OworMTdCMjtLSE1FUiBJTkRFUEVOREVOVCBWT1dFTCBRT08gVFlQRSBUV087TG87MDtMOzs7OztOOzs7OzsKKzE3QjM7S0hNRVIgSU5ERVBFTkRFTlQgVk9XRUwgUUFVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0I0O0tITUVSIFZPV0VMIElOSEVSRU5UIEFRO01jOzA7TDs7Ozs7Tjs7Ozs7CisxN0I1O0tITUVSIFZPV0VMIElOSEVSRU5UIEFBO01jOzA7TDs7Ozs7Tjs7Ozs7CisxN0I2O0tITUVSIFZPV0VMIFNJR04gQUE7TWM7MDtMOzs7OztOOzs7OzsKKzE3Qjc7S0hNRVIgVk9XRUwgU0lHTiBJO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3Qjg7S0hNRVIgVk9XRUwgU0lHTiBJSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxN0I5O0tITUVSIFZPV0VMIFNJR04gWTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxN0JBO0tITUVSIFZPV0VMIFNJR04gWVk7TW47MDtOU007Ozs7O047Ozs7OworMTdCQjtLSE1FUiBWT1dFTCBTSUdOIFU7TW47MDtOU007Ozs7O047Ozs7OworMTdCQztLSE1FUiBWT1dFTCBTSUdOIFVVO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3QkQ7S0hNRVIgVk9XRUwgU0lHTiBVQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxN0JFO0tITUVSIFZPV0VMIFNJR04gT0U7TWM7MDtMOzs7OztOOzs7OzsKKzE3QkY7S0hNRVIgVk9XRUwgU0lHTiBZQTtNYzswO0w7Ozs7O047Ozs7OworMTdDMDtLSE1FUiBWT1dFTCBTSUdOIElFO01jOzA7TDs7Ozs7Tjs7Ozs7CisxN0MxO0tITUVSIFZPV0VMIFNJR04gRTtNYzswO0w7Ozs7O047Ozs7OworMTdDMjtLSE1FUiBWT1dFTCBTSUdOIEFFO01jOzA7TDs7Ozs7Tjs7Ozs7CisxN0MzO0tITUVSIFZPV0VMIFNJR04gQUk7TWM7MDtMOzs7OztOOzs7OzsKKzE3QzQ7S0hNRVIgVk9XRUwgU0lHTiBPTztNYzswO0w7Ozs7O047Ozs7OworMTdDNTtLSE1FUiBWT1dFTCBTSUdOIEFVO01jOzA7TDs7Ozs7Tjs7Ozs7CisxN0M2O0tITUVSIFNJR04gTklLQUhJVDtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxN0M3O0tITUVSIFNJR04gUkVBSE1VSztNYzswO0w7Ozs7O047Ozs7OworMTdDODtLSE1FUiBTSUdOIFlVVUtBTEVBUElOVFU7TWM7MDtMOzs7OztOOzs7OzsKKzE3Qzk7S0hNRVIgU0lHTiBNVVVTSUtBVE9BTjtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxN0NBO0tITUVSIFNJR04gVFJJSVNBUDtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxN0NCO0tITUVSIFNJR04gQkFOVE9DO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3Q0M7S0hNRVIgU0lHTiBST0JBVDtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxN0NEO0tITUVSIFNJR04gVE9BTkRBS0hJQVQ7TW47MDtOU007Ozs7O047Ozs7OworMTdDRTtLSE1FUiBTSUdOIEtBS0FCQVQ7TW47MDtOU007Ozs7O047Ozs7OworMTdDRjtLSE1FUiBTSUdOIEFIU0RBO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3RDA7S0hNRVIgU0lHTiBTQU1ZT0sgU0FOTllBO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3RDE7S0hNRVIgU0lHTiBWSVJJQU07TW47MDtOU007Ozs7O047Ozs7OworMTdEMjtLSE1FUiBTSUdOIENPRU5HO01uOzk7TlNNOzs7OztOOzs7OzsKKzE3RDM7S0hNRVIgU0lHTiBCQVRIQU1BU0FUO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3RDQ7S0hNRVIgU0lHTiBLSEFOO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxN0Q1O0tITUVSIFNJR04gQkFSSVlPT1NBTjtQbzswO0w7Ozs7O047Ozs7OworMTdENjtLSE1FUiBTSUdOIENBTU5VQyBQSUkgS1VVSDtQbzswO0w7Ozs7O047Ozs7OworMTdENztLSE1FUiBTSUdOIExFSyBUT087UG87MDtMOzs7OztOOzs7OzsKKzE3RDg7S0hNRVIgU0lHTiBCRVlZQUw7UG87MDtMOzs7OztOOzs7OzsKKzE3RDk7S0hNRVIgU0lHTiBQSE5BRUsgTVVBTjtQbzswO0w7Ozs7O047Ozs7OworMTdEQTtLSE1FUiBTSUdOIEtPT01VVVQ7UG87MDtMOzs7OztOOzs7OzsKKzE3REI7S0hNRVIgQ1VSUkVOQ1kgU1lNQk9MIFJJRUw7U2M7MDtFVDs7Ozs7Tjs7Ozs7CisxN0RDO0tITUVSIFNJR04gQVZBS1JBSEFTQU5ZQTtQbzswO0w7Ozs7O047Ozs7OworMTdFMDtLSE1FUiBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CisxN0UxO0tITUVSIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMTdFMjtLSE1FUiBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzE3RTM7S0hNRVIgRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzE3RTQ7S0hNRVIgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMTdFNTtLSE1FUiBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CisxN0U2O0tITUVSIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMTdFNztLSE1FUiBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMTdFODtLSE1FUiBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMTdFOTtLSE1FUiBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CisxODAwO01PTkdPTElBTiBCSVJHQTtQbzswO09OOzs7OztOOzs7OzsKKzE4MDE7TU9OR09MSUFOIEVMTElQU0lTO1BvOzA7T047Ozs7O047Ozs7OworMTgwMjtNT05HT0xJQU4gQ09NTUE7UG87MDtPTjs7Ozs7Tjs7Ozs7CisxODAzO01PTkdPTElBTiBGVUxMIFNUT1A7UG87MDtPTjs7Ozs7Tjs7Ozs7CisxODA0O01PTkdPTElBTiBDT0xPTjtQbzswO09OOzs7OztOOzs7OzsKKzE4MDU7TU9OR09MSUFOIEZPVVIgRE9UUztQbzswO09OOzs7OztOOzs7OzsKKzE4MDY7TU9OR09MSUFOIFRPRE8gU09GVCBIWVBIRU47UGQ7MDtPTjs7Ozs7Tjs7Ozs7CisxODA3O01PTkdPTElBTiBTSUJFIFNZTExBQkxFIEJPVU5EQVJZIE1BUktFUjtQbzswO09OOzs7OztOOzs7OzsKKzE4MDg7TU9OR09MSUFOIE1BTkNIVSBDT01NQTtQbzswO09OOzs7OztOOzs7OzsKKzE4MDk7TU9OR09MSUFOIE1BTkNIVSBGVUxMIFNUT1A7UG87MDtPTjs7Ozs7Tjs7Ozs7CisxODBBO01PTkdPTElBTiBOSVJVR1U7UG87MDtPTjs7Ozs7Tjs7Ozs7CisxODBCO01PTkdPTElBTiBGUkVFIFZBUklBVElPTiBTRUxFQ1RPUiBPTkU7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisxODBDO01PTkdPTElBTiBGUkVFIFZBUklBVElPTiBTRUxFQ1RPUiBUV087Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisxODBEO01PTkdPTElBTiBGUkVFIFZBUklBVElPTiBTRUxFQ1RPUiBUSFJFRTtDZjswO0JOOzs7OztOOzs7OzsKKzE4MEU7TU9OR09MSUFOIFZPV0VMIFNFUEFSQVRPUjtDZjswO0JOOzs7OztOOzs7OzsKKzE4MTA7TU9OR09MSUFOIERJR0lUIFpFUk87TmQ7MDtMOzswOzA7MDtOOzs7OzsKKzE4MTE7TU9OR09MSUFOIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMTgxMjtNT05HT0xJQU4gRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CisxODEzO01PTkdPTElBTiBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMTgxNDtNT05HT0xJQU4gRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMTgxNTtNT05HT0xJQU4gRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMTgxNjtNT05HT0xJQU4gRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CisxODE3O01PTkdPTElBTiBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMTgxODtNT05HT0xJQU4gRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzE4MTk7TU9OR09MSUFOIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzE4MjA7TU9OR09MSUFOIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODIxO01PTkdPTElBTiBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMTgyMjtNT05HT0xJQU4gTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzE4MjM7TU9OR09MSUFOIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODI0O01PTkdPTElBTiBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMTgyNTtNT05HT0xJQU4gTEVUVEVSIE9FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODI2O01PTkdPTElBTiBMRVRURVIgVUU7TG87MDtMOzs7OztOOzs7OzsKKzE4Mjc7TU9OR09MSUFOIExFVFRFUiBFRTtMbzswO0w7Ozs7O047Ozs7OworMTgyODtNT05HT0xJQU4gTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODI5O01PTkdPTElBTiBMRVRURVIgQU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODJBO01PTkdPTElBTiBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzE4MkI7TU9OR09MSUFOIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMTgyQztNT05HT0xJQU4gTEVUVEVSIFFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODJEO01PTkdPTElBTiBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzE4MkU7TU9OR09MSUFOIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMTgyRjtNT05HT0xJQU4gTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODMwO01PTkdPTElBTiBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzE4MzE7TU9OR09MSUFOIExFVFRFUiBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzE4MzI7TU9OR09MSUFOIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMTgzMztNT05HT0xJQU4gTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODM0O01PTkdPTElBTiBMRVRURVIgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODM1O01PTkdPTElBTiBMRVRURVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzE4MzY7TU9OR09MSUFOIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMTgzNztNT05HT0xJQU4gTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODM4O01PTkdPTElBTiBMRVRURVIgV0E7TG87MDtMOzs7OztOOzs7OzsKKzE4Mzk7TU9OR09MSUFOIExFVFRFUiBGQTtMbzswO0w7Ozs7O047Ozs7OworMTgzQTtNT05HT0xJQU4gTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODNCO01PTkdPTElBTiBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODNDO01PTkdPTElBTiBMRVRURVIgVFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODNEO01PTkdPTElBTiBMRVRURVIgWkE7TG87MDtMOzs7OztOOzs7OzsKKzE4M0U7TU9OR09MSUFOIExFVFRFUiBIQUE7TG87MDtMOzs7OztOOzs7OzsKKzE4M0Y7TU9OR09MSUFOIExFVFRFUiBaUkE7TG87MDtMOzs7OztOOzs7OzsKKzE4NDA7TU9OR09MSUFOIExFVFRFUiBMSEE7TG87MDtMOzs7OztOOzs7OzsKKzE4NDE7TU9OR09MSUFOIExFVFRFUiBaSEk7TG87MDtMOzs7OztOOzs7OzsKKzE4NDI7TU9OR09MSUFOIExFVFRFUiBDSEk7TG87MDtMOzs7OztOOzs7OzsKKzE4NDM7TU9OR09MSUFOIExFVFRFUiBUT0RPIExPTkcgVk9XRUwgU0lHTjtMbTswO0w7Ozs7O047Ozs7OworMTg0NDtNT05HT0xJQU4gTEVUVEVSIFRPRE8gRTtMbzswO0w7Ozs7O047Ozs7OworMTg0NTtNT05HT0xJQU4gTEVUVEVSIFRPRE8gSTtMbzswO0w7Ozs7O047Ozs7OworMTg0NjtNT05HT0xJQU4gTEVUVEVSIFRPRE8gTztMbzswO0w7Ozs7O047Ozs7OworMTg0NztNT05HT0xJQU4gTEVUVEVSIFRPRE8gVTtMbzswO0w7Ozs7O047Ozs7OworMTg0ODtNT05HT0xJQU4gTEVUVEVSIFRPRE8gT0U7TG87MDtMOzs7OztOOzs7OzsKKzE4NDk7TU9OR09MSUFOIExFVFRFUiBUT0RPIFVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODRBO01PTkdPTElBTiBMRVRURVIgVE9ETyBBTkc7TG87MDtMOzs7OztOOzs7OzsKKzE4NEI7TU9OR09MSUFOIExFVFRFUiBUT0RPIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODRDO01PTkdPTElBTiBMRVRURVIgVE9ETyBQQTtMbzswO0w7Ozs7O047Ozs7OworMTg0RDtNT05HT0xJQU4gTEVUVEVSIFRPRE8gUUE7TG87MDtMOzs7OztOOzs7OzsKKzE4NEU7TU9OR09MSUFOIExFVFRFUiBUT0RPIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODRGO01PTkdPTElBTiBMRVRURVIgVE9ETyBNQTtMbzswO0w7Ozs7O047Ozs7OworMTg1MDtNT05HT0xJQU4gTEVUVEVSIFRPRE8gVEE7TG87MDtMOzs7OztOOzs7OzsKKzE4NTE7TU9OR09MSUFOIExFVFRFUiBUT0RPIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODUyO01PTkdPTElBTiBMRVRURVIgVE9ETyBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzE4NTM7TU9OR09MSUFOIExFVFRFUiBUT0RPIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODU0O01PTkdPTElBTiBMRVRURVIgVE9ETyBUU0E7TG87MDtMOzs7OztOOzs7OzsKKzE4NTU7TU9OR09MSUFOIExFVFRFUiBUT0RPIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODU2O01PTkdPTElBTiBMRVRURVIgVE9ETyBXQTtMbzswO0w7Ozs7O047Ozs7OworMTg1NztNT05HT0xJQU4gTEVUVEVSIFRPRE8gS0E7TG87MDtMOzs7OztOOzs7OzsKKzE4NTg7TU9OR09MSUFOIExFVFRFUiBUT0RPIEdBQTtMbzswO0w7Ozs7O047Ozs7OworMTg1OTtNT05HT0xJQU4gTEVUVEVSIFRPRE8gSEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODVBO01PTkdPTElBTiBMRVRURVIgVE9ETyBKSUE7TG87MDtMOzs7OztOOzs7OzsKKzE4NUI7TU9OR09MSUFOIExFVFRFUiBUT0RPIE5JQTtMbzswO0w7Ozs7O047Ozs7OworMTg1QztNT05HT0xJQU4gTEVUVEVSIFRPRE8gRFpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODVEO01PTkdPTElBTiBMRVRURVIgU0lCRSBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODVFO01PTkdPTElBTiBMRVRURVIgU0lCRSBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODVGO01PTkdPTElBTiBMRVRURVIgU0lCRSBJWTtMbzswO0w7Ozs7O047Ozs7OworMTg2MDtNT05HT0xJQU4gTEVUVEVSIFNJQkUgVUU7TG87MDtMOzs7OztOOzs7OzsKKzE4NjE7TU9OR09MSUFOIExFVFRFUiBTSUJFIFU7TG87MDtMOzs7OztOOzs7OzsKKzE4NjI7TU9OR09MSUFOIExFVFRFUiBTSUJFIEFORztMbzswO0w7Ozs7O047Ozs7OworMTg2MztNT05HT0xJQU4gTEVUVEVSIFNJQkUgS0E7TG87MDtMOzs7OztOOzs7OzsKKzE4NjQ7TU9OR09MSUFOIExFVFRFUiBTSUJFIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODY1O01PTkdPTElBTiBMRVRURVIgU0lCRSBIQTtMbzswO0w7Ozs7O047Ozs7OworMTg2NjtNT05HT0xJQU4gTEVUVEVSIFNJQkUgUEE7TG87MDtMOzs7OztOOzs7OzsKKzE4Njc7TU9OR09MSUFOIExFVFRFUiBTSUJFIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMTg2ODtNT05HT0xJQU4gTEVUVEVSIFNJQkUgVEE7TG87MDtMOzs7OztOOzs7OzsKKzE4Njk7TU9OR09MSUFOIExFVFRFUiBTSUJFIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODZBO01PTkdPTElBTiBMRVRURVIgU0lCRSBKQTtMbzswO0w7Ozs7O047Ozs7OworMTg2QjtNT05HT0xJQU4gTEVUVEVSIFNJQkUgRkE7TG87MDtMOzs7OztOOzs7OzsKKzE4NkM7TU9OR09MSUFOIExFVFRFUiBTSUJFIEdBQTtMbzswO0w7Ozs7O047Ozs7OworMTg2RDtNT05HT0xJQU4gTEVUVEVSIFNJQkUgSEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODZFO01PTkdPTElBTiBMRVRURVIgU0lCRSBUU0E7TG87MDtMOzs7OztOOzs7OzsKKzE4NkY7TU9OR09MSUFOIExFVFRFUiBTSUJFIFpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODcwO01PTkdPTElBTiBMRVRURVIgU0lCRSBSQUE7TG87MDtMOzs7OztOOzs7OzsKKzE4NzE7TU9OR09MSUFOIExFVFRFUiBTSUJFIENIQTtMbzswO0w7Ozs7O047Ozs7OworMTg3MjtNT05HT0xJQU4gTEVUVEVSIFNJQkUgWkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODczO01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIEk7TG87MDtMOzs7OztOOzs7OzsKKzE4NzQ7TU9OR09MSUFOIExFVFRFUiBNQU5DSFUgS0E7TG87MDtMOzs7OztOOzs7OzsKKzE4NzU7TU9OR09MSUFOIExFVFRFUiBNQU5DSFUgUkE7TG87MDtMOzs7OztOOzs7OzsKKzE4NzY7TU9OR09MSUFOIExFVFRFUiBNQU5DSFUgRkE7TG87MDtMOzs7OztOOzs7OzsKKzE4Nzc7TU9OR09MSUFOIExFVFRFUiBNQU5DSFUgWkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODgwO01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgQU5VU1ZBUkEgT05FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODgxO01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgVklTQVJHQSBPTkU7TG87MDtMOzs7OztOOzs7OzsKKzE4ODI7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBEQU1BUlU7TG87MDtMOzs7OztOOzs7OzsKKzE4ODM7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBVQkFEQU1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODg0O01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgSU5WRVJURUQgVUJBREFNQTtMbzswO0w7Ozs7O047Ozs7OworMTg4NTtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIEJBTFVEQTtMbzswO0w7Ozs7O047Ozs7OworMTg4NjtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIFRIUkVFIEJBTFVEQTtMbzswO0w7Ozs7O047Ozs7OworMTg4NztNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIEE7TG87MDtMOzs7OztOOzs7OzsKKzE4ODg7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODg5O01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgS0E7TG87MDtMOzs7OztOOzs7OzsKKzE4OEE7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzE4OEI7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBDQTtMbzswO0w7Ozs7O047Ozs7OworMTg4QztNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIFRUQTtMbzswO0w7Ozs7O047Ozs7OworMTg4RDtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIFRUSEE7TG87MDtMOzs7OztOOzs7OzsKKzE4OEU7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBEREE7TG87MDtMOzs7OztOOzs7OzsKKzE4OEY7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBOTkE7TG87MDtMOzs7OztOOzs7OzsKKzE4OTA7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBUQTtMbzswO0w7Ozs7O047Ozs7OworMTg5MTtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODkyO01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgUEE7TG87MDtMOzs7OztOOzs7OzsKKzE4OTM7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzE4OTQ7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBTU0E7TG87MDtMOzs7OztOOzs7OzsKKzE4OTU7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBaSEE7TG87MDtMOzs7OztOOzs7OzsKKzE4OTY7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBaQTtMbzswO0w7Ozs7O047Ozs7OworMTg5NztNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIEFIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODk4O01PTkdPTElBTiBMRVRURVIgVE9ETyBBTEkgR0FMSSBUQTtMbzswO0w7Ozs7O047Ozs7OworMTg5OTtNT05HT0xJQU4gTEVUVEVSIFRPRE8gQUxJIEdBTEkgWkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODlBO01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIEFMSSBHQUxJIEdIQTtMbzswO0w7Ozs7O047Ozs7OworMTg5QjtNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBBTEkgR0FMSSBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzE4OUM7TU9OR09MSUFOIExFVFRFUiBNQU5DSFUgQUxJIEdBTEkgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzE4OUQ7TU9OR09MSUFOIExFVFRFUiBNQU5DSFUgQUxJIEdBTEkgSkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODlFO01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIEFMSSBHQUxJIFRUQTtMbzswO0w7Ozs7O047Ozs7OworMTg5RjtNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBBTEkgR0FMSSBEREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOEEwO01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIEFMSSBHQUxJIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOEExO01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIEFMSSBHQUxJIERIQTtMbzswO0w7Ozs7O047Ozs7OworMThBMjtNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBBTEkgR0FMSSBTU0E7TG87MDtMOzs7OztOOzs7OzsKKzE4QTM7TU9OR09MSUFOIExFVFRFUiBNQU5DSFUgQUxJIEdBTEkgQ1lBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOEE0O01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIEFMSSBHQUxJIFpIQTtMbzswO0w7Ozs7O047Ozs7OworMThBNTtNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBBTEkgR0FMSSBaQTtMbzswO0w7Ozs7O047Ozs7OworMThBNjtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIEhBTEYgVTtMbzswO0w7Ozs7O047Ozs7OworMThBNztNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIEhBTEYgWUE7TG87MDtMOzs7OztOOzs7OzsKKzE4QTg7TU9OR09MSUFOIExFVFRFUiBNQU5DSFUgQUxJIEdBTEkgQkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOEE5O01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgREFHQUxHQTtNbjsyMjg7TlNNOzs7OztOOzs7OzsKKzFFMDA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIFJJTkcgQkVMT1c7THU7MDtMOzAwNDEgMDMyNTs7OztOOzs7OzFFMDE7CisxRTAxO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggUklORyBCRUxPVztMbDswO0w7MDA2MSAwMzI1Ozs7O047OzsxRTAwOzsxRTAwCisxRTAyO0xBVElOIENBUElUQUwgTEVUVEVSIEIgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNDIgMDMwNzs7OztOOzs7OzFFMDM7CisxRTAzO0xBVElOIFNNQUxMIExFVFRFUiBCIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDYyIDAzMDc7Ozs7Tjs7OzFFMDI7OzFFMDIKKzFFMDQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQiBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA0MiAwMzIzOzs7O047Ozs7MUUwNTsKKzFFMDU7TEFUSU4gU01BTEwgTEVUVEVSIEIgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNjIgMDMyMzs7OztOOzs7MUUwNDs7MUUwNAorMUUwNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBCIFdJVEggTElORSBCRUxPVztMdTswO0w7MDA0MiAwMzMxOzs7O047Ozs7MUUwNzsKKzFFMDc7TEFUSU4gU01BTEwgTEVUVEVSIEIgV0lUSCBMSU5FIEJFTE9XO0xsOzA7TDswMDYyIDAzMzE7Ozs7Tjs7OzFFMDY7OzFFMDYKKzFFMDg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBXSVRIIENFRElMTEEgQU5EIEFDVVRFO0x1OzA7TDswMEM3IDAzMDE7Ozs7Tjs7OzsxRTA5OworMUUwOTtMQVRJTiBTTUFMTCBMRVRURVIgQyBXSVRIIENFRElMTEEgQU5EIEFDVVRFO0xsOzA7TDswMEU3IDAzMDE7Ozs7Tjs7OzFFMDg7OzFFMDgKKzFFMEE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA0NCAwMzA3Ozs7O047Ozs7MUUwQjsKKzFFMEI7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNjQgMDMwNzs7OztOOzs7MUUwQTs7MUUwQQorMUUwQztMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDQ0IDAzMjM7Ozs7Tjs7OzsxRTBEOworMUUwRDtMQVRJTiBTTUFMTCBMRVRURVIgRCBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2NCAwMzIzOzs7O047OzsxRTBDOzsxRTBDCisxRTBFO0xBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBMSU5FIEJFTE9XO0x1OzA7TDswMDQ0IDAzMzE7Ozs7Tjs7OzsxRTBGOworMUUwRjtMQVRJTiBTTUFMTCBMRVRURVIgRCBXSVRIIExJTkUgQkVMT1c7TGw7MDtMOzAwNjQgMDMzMTs7OztOOzs7MUUwRTs7MUUwRQorMUUxMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFdJVEggQ0VESUxMQTtMdTswO0w7MDA0NCAwMzI3Ozs7O047Ozs7MUUxMTsKKzFFMTE7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBDRURJTExBO0xsOzA7TDswMDY0IDAzMjc7Ozs7Tjs7OzFFMTA7OzFFMTAKKzFFMTI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIENJUkNVTUZMRVggQkVMT1c7THU7MDtMOzAwNDQgMDMyRDs7OztOOzs7OzFFMTM7CisxRTEzO0xBVElOIFNNQUxMIExFVFRFUiBEIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMbDswO0w7MDA2NCAwMzJEOzs7O047OzsxRTEyOzsxRTEyCisxRTE0O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBNQUNST04gQU5EIEdSQVZFO0x1OzA7TDswMTEyIDAzMDA7Ozs7Tjs7OzsxRTE1OworMUUxNTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIE1BQ1JPTiBBTkQgR1JBVkU7TGw7MDtMOzAxMTMgMDMwMDs7OztOOzs7MUUxNDs7MUUxNAorMUUxNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggTUFDUk9OIEFORCBBQ1VURTtMdTswO0w7MDExMiAwMzAxOzs7O047Ozs7MUUxNzsKKzFFMTc7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBNQUNST04gQU5EIEFDVVRFO0xsOzA7TDswMTEzIDAzMDE7Ozs7Tjs7OzFFMTY7OzFFMTYKKzFFMTg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVggQkVMT1c7THU7MDtMOzAwNDUgMDMyRDs7OztOOzs7OzFFMTk7CisxRTE5O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMbDswO0w7MDA2NSAwMzJEOzs7O047OzsxRTE4OzsxRTE4CisxRTFBO0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBUSUxERSBCRUxPVztMdTswO0w7MDA0NSAwMzMwOzs7O047Ozs7MUUxQjsKKzFFMUI7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBUSUxERSBCRUxPVztMbDswO0w7MDA2NSAwMzMwOzs7O047OzsxRTFBOzsxRTFBCisxRTFDO0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBDRURJTExBIEFORCBCUkVWRTtMdTswO0w7MDIyOCAwMzA2Ozs7O047Ozs7MUUxRDsKKzFFMUQ7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBDRURJTExBIEFORCBCUkVWRTtMbDswO0w7MDIyOSAwMzA2Ozs7O047OzsxRTFDOzsxRTFDCisxRTFFO0xBVElOIENBUElUQUwgTEVUVEVSIEYgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNDYgMDMwNzs7OztOOzs7OzFFMUY7CisxRTFGO0xBVElOIFNNQUxMIExFVFRFUiBGIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDY2IDAzMDc7Ozs7Tjs7OzFFMUU7OzFFMUUKKzFFMjA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBXSVRIIE1BQ1JPTjtMdTswO0w7MDA0NyAwMzA0Ozs7O047Ozs7MUUyMTsKKzFFMjE7TEFUSU4gU01BTEwgTEVUVEVSIEcgV0lUSCBNQUNST047TGw7MDtMOzAwNjcgMDMwNDs7OztOOzs7MUUyMDs7MUUyMAorMUUyMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBIIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDQ4IDAzMDc7Ozs7Tjs7OzsxRTIzOworMUUyMztMQVRJTiBTTUFMTCBMRVRURVIgSCBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA2OCAwMzA3Ozs7O047OzsxRTIyOzsxRTIyCisxRTI0O0xBVElOIENBUElUQUwgTEVUVEVSIEggV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNDggMDMyMzs7OztOOzs7OzFFMjU7CisxRTI1O0xBVElOIFNNQUxMIExFVFRFUiBIIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDY4IDAzMjM7Ozs7Tjs7OzFFMjQ7OzFFMjQKKzFFMjY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSCBXSVRIIERJQUVSRVNJUztMdTswO0w7MDA0OCAwMzA4Ozs7O047Ozs7MUUyNzsKKzFFMjc7TEFUSU4gU01BTEwgTEVUVEVSIEggV0lUSCBESUFFUkVTSVM7TGw7MDtMOzAwNjggMDMwODs7OztOOzs7MUUyNjs7MUUyNgorMUUyODtMQVRJTiBDQVBJVEFMIExFVFRFUiBIIFdJVEggQ0VESUxMQTtMdTswO0w7MDA0OCAwMzI3Ozs7O047Ozs7MUUyOTsKKzFFMjk7TEFUSU4gU01BTEwgTEVUVEVSIEggV0lUSCBDRURJTExBO0xsOzA7TDswMDY4IDAzMjc7Ozs7Tjs7OzFFMjg7OzFFMjgKKzFFMkE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSCBXSVRIIEJSRVZFIEJFTE9XO0x1OzA7TDswMDQ4IDAzMkU7Ozs7Tjs7OzsxRTJCOworMUUyQjtMQVRJTiBTTUFMTCBMRVRURVIgSCBXSVRIIEJSRVZFIEJFTE9XO0xsOzA7TDswMDY4IDAzMkU7Ozs7Tjs7OzFFMkE7OzFFMkEKKzFFMkM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIFRJTERFIEJFTE9XO0x1OzA7TDswMDQ5IDAzMzA7Ozs7Tjs7OzsxRTJEOworMUUyRDtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIFRJTERFIEJFTE9XO0xsOzA7TDswMDY5IDAzMzA7Ozs7Tjs7OzFFMkM7OzFFMkMKKzFFMkU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERJQUVSRVNJUyBBTkQgQUNVVEU7THU7MDtMOzAwQ0YgMDMwMTs7OztOOzs7OzFFMkY7CisxRTJGO0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggRElBRVJFU0lTIEFORCBBQ1VURTtMbDswO0w7MDBFRiAwMzAxOzs7O047OzsxRTJFOzsxRTJFCisxRTMwO0xBVElOIENBUElUQUwgTEVUVEVSIEsgV0lUSCBBQ1VURTtMdTswO0w7MDA0QiAwMzAxOzs7O047Ozs7MUUzMTsKKzFFMzE7TEFUSU4gU01BTEwgTEVUVEVSIEsgV0lUSCBBQ1VURTtMbDswO0w7MDA2QiAwMzAxOzs7O047OzsxRTMwOzsxRTMwCisxRTMyO0xBVElOIENBUElUQUwgTEVUVEVSIEsgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNEIgMDMyMzs7OztOOzs7OzFFMzM7CisxRTMzO0xBVElOIFNNQUxMIExFVFRFUiBLIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDZCIDAzMjM7Ozs7Tjs7OzFFMzI7OzFFMzIKKzFFMzQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSyBXSVRIIExJTkUgQkVMT1c7THU7MDtMOzAwNEIgMDMzMTs7OztOOzs7OzFFMzU7CisxRTM1O0xBVElOIFNNQUxMIExFVFRFUiBLIFdJVEggTElORSBCRUxPVztMbDswO0w7MDA2QiAwMzMxOzs7O047OzsxRTM0OzsxRTM0CisxRTM2O0xBVElOIENBUElUQUwgTEVUVEVSIEwgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNEMgMDMyMzs7OztOOzs7OzFFMzc7CisxRTM3O0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDZDIDAzMjM7Ozs7Tjs7OzFFMzY7OzFFMzYKKzFFMzg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIERPVCBCRUxPVyBBTkQgTUFDUk9OO0x1OzA7TDsxRTM2IDAzMDQ7Ozs7Tjs7OzsxRTM5OworMUUzOTtMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIERPVCBCRUxPVyBBTkQgTUFDUk9OO0xsOzA7TDsxRTM3IDAzMDQ7Ozs7Tjs7OzFFMzg7OzFFMzgKKzFFM0E7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIExJTkUgQkVMT1c7THU7MDtMOzAwNEMgMDMzMTs7OztOOzs7OzFFM0I7CisxRTNCO0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggTElORSBCRUxPVztMbDswO0w7MDA2QyAwMzMxOzs7O047OzsxRTNBOzsxRTNBCisxRTNDO0xBVElOIENBUElUQUwgTEVUVEVSIEwgV0lUSCBDSVJDVU1GTEVYIEJFTE9XO0x1OzA7TDswMDRDIDAzMkQ7Ozs7Tjs7OzsxRTNEOworMUUzRDtMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIENJUkNVTUZMRVggQkVMT1c7TGw7MDtMOzAwNkMgMDMyRDs7OztOOzs7MUUzQzs7MUUzQworMUUzRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBNIFdJVEggQUNVVEU7THU7MDtMOzAwNEQgMDMwMTs7OztOOzs7OzFFM0Y7CisxRTNGO0xBVElOIFNNQUxMIExFVFRFUiBNIFdJVEggQUNVVEU7TGw7MDtMOzAwNkQgMDMwMTs7OztOOzs7MUUzRTs7MUUzRQorMUU0MDtMQVRJTiBDQVBJVEFMIExFVFRFUiBNIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDREIDAzMDc7Ozs7Tjs7OzsxRTQxOworMUU0MTtMQVRJTiBTTUFMTCBMRVRURVIgTSBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA2RCAwMzA3Ozs7O047OzsxRTQwOzsxRTQwCisxRTQyO0xBVElOIENBUElUQUwgTEVUVEVSIE0gV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNEQgMDMyMzs7OztOOzs7OzFFNDM7CisxRTQzO0xBVElOIFNNQUxMIExFVFRFUiBNIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDZEIDAzMjM7Ozs7Tjs7OzFFNDI7OzFFNDIKKzFFNDQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA0RSAwMzA3Ozs7O047Ozs7MUU0NTsKKzFFNDU7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNkUgMDMwNzs7OztOOzs7MUU0NDs7MUU0NAorMUU0NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDRFIDAzMjM7Ozs7Tjs7OzsxRTQ3OworMUU0NztMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2RSAwMzIzOzs7O047OzsxRTQ2OzsxRTQ2CisxRTQ4O0xBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBMSU5FIEJFTE9XO0x1OzA7TDswMDRFIDAzMzE7Ozs7Tjs7OzsxRTQ5OworMUU0OTtMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIExJTkUgQkVMT1c7TGw7MDtMOzAwNkUgMDMzMTs7OztOOzs7MUU0ODs7MUU0OAorMUU0QTtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMdTswO0w7MDA0RSAwMzJEOzs7O047Ozs7MUU0QjsKKzFFNEI7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBDSVJDVU1GTEVYIEJFTE9XO0xsOzA7TDswMDZFIDAzMkQ7Ozs7Tjs7OzFFNEE7OzFFNEEKKzFFNEM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIFRJTERFIEFORCBBQ1VURTtMdTswO0w7MDBENSAwMzAxOzs7O047Ozs7MUU0RDsKKzFFNEQ7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBUSUxERSBBTkQgQUNVVEU7TGw7MDtMOzAwRjUgMDMwMTs7OztOOzs7MUU0Qzs7MUU0QworMUU0RTtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggVElMREUgQU5EIERJQUVSRVNJUztMdTswO0w7MDBENSAwMzA4Ozs7O047Ozs7MUU0RjsKKzFFNEY7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBUSUxERSBBTkQgRElBRVJFU0lTO0xsOzA7TDswMEY1IDAzMDg7Ozs7Tjs7OzFFNEU7OzFFNEUKKzFFNTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIE1BQ1JPTiBBTkQgR1JBVkU7THU7MDtMOzAxNEMgMDMwMDs7OztOOzs7OzFFNTE7CisxRTUxO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggTUFDUk9OIEFORCBHUkFWRTtMbDswO0w7MDE0RCAwMzAwOzs7O047OzsxRTUwOzsxRTUwCisxRTUyO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBNQUNST04gQU5EIEFDVVRFO0x1OzA7TDswMTRDIDAzMDE7Ozs7Tjs7OzsxRTUzOworMUU1MztMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIE1BQ1JPTiBBTkQgQUNVVEU7TGw7MDtMOzAxNEQgMDMwMTs7OztOOzs7MUU1Mjs7MUU1MgorMUU1NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBQIFdJVEggQUNVVEU7THU7MDtMOzAwNTAgMDMwMTs7OztOOzs7OzFFNTU7CisxRTU1O0xBVElOIFNNQUxMIExFVFRFUiBQIFdJVEggQUNVVEU7TGw7MDtMOzAwNzAgMDMwMTs7OztOOzs7MUU1NDs7MUU1NAorMUU1NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBQIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDUwIDAzMDc7Ozs7Tjs7OzsxRTU3OworMUU1NztMQVRJTiBTTUFMTCBMRVRURVIgUCBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA3MCAwMzA3Ozs7O047OzsxRTU2OzsxRTU2CisxRTU4O0xBVElOIENBUElUQUwgTEVUVEVSIFIgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNTIgMDMwNzs7OztOOzs7OzFFNTk7CisxRTU5O0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDcyIDAzMDc7Ozs7Tjs7OzFFNTg7OzFFNTgKKzFFNUE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA1MiAwMzIzOzs7O047Ozs7MUU1QjsKKzFFNUI7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNzIgMDMyMzs7OztOOzs7MUU1QTs7MUU1QQorMUU1QztMQVRJTiBDQVBJVEFMIExFVFRFUiBSIFdJVEggRE9UIEJFTE9XIEFORCBNQUNST047THU7MDtMOzFFNUEgMDMwNDs7OztOOzs7OzFFNUQ7CisxRTVEO0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggRE9UIEJFTE9XIEFORCBNQUNST047TGw7MDtMOzFFNUIgMDMwNDs7OztOOzs7MUU1Qzs7MUU1QworMUU1RTtMQVRJTiBDQVBJVEFMIExFVFRFUiBSIFdJVEggTElORSBCRUxPVztMdTswO0w7MDA1MiAwMzMxOzs7O047Ozs7MUU1RjsKKzFFNUY7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBMSU5FIEJFTE9XO0xsOzA7TDswMDcyIDAzMzE7Ozs7Tjs7OzFFNUU7OzFFNUUKKzFFNjA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA1MyAwMzA3Ozs7O047Ozs7MUU2MTsKKzFFNjE7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNzMgMDMwNzs7OztOOzs7MUU2MDs7MUU2MAorMUU2MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDUzIDAzMjM7Ozs7Tjs7OzsxRTYzOworMUU2MztMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA3MyAwMzIzOzs7O047OzsxRTYyOzsxRTYyCisxRTY0O0xBVElOIENBUElUQUwgTEVUVEVSIFMgV0lUSCBBQ1VURSBBTkQgRE9UIEFCT1ZFO0x1OzA7TDswMTVBIDAzMDc7Ozs7Tjs7OzsxRTY1OworMUU2NTtMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIEFDVVRFIEFORCBET1QgQUJPVkU7TGw7MDtMOzAxNUIgMDMwNzs7OztOOzs7MUU2NDs7MUU2NAorMUU2NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIFdJVEggQ0FST04gQU5EIERPVCBBQk9WRTtMdTswO0w7MDE2MCAwMzA3Ozs7O047Ozs7MUU2NzsKKzFFNjc7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBDQVJPTiBBTkQgRE9UIEFCT1ZFO0xsOzA7TDswMTYxIDAzMDc7Ozs7Tjs7OzFFNjY7OzFFNjYKKzFFNjg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBXSVRIIERPVCBCRUxPVyBBTkQgRE9UIEFCT1ZFO0x1OzA7TDsxRTYyIDAzMDc7Ozs7Tjs7OzsxRTY5OworMUU2OTtMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIERPVCBCRUxPVyBBTkQgRE9UIEFCT1ZFO0xsOzA7TDsxRTYzIDAzMDc7Ozs7Tjs7OzFFNjg7OzFFNjgKKzFFNkE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA1NCAwMzA3Ozs7O047Ozs7MUU2QjsKKzFFNkI7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNzQgMDMwNzs7OztOOzs7MUU2QTs7MUU2QQorMUU2QztMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDU0IDAzMjM7Ozs7Tjs7OzsxRTZEOworMUU2RDtMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA3NCAwMzIzOzs7O047OzsxRTZDOzsxRTZDCisxRTZFO0xBVElOIENBUElUQUwgTEVUVEVSIFQgV0lUSCBMSU5FIEJFTE9XO0x1OzA7TDswMDU0IDAzMzE7Ozs7Tjs7OzsxRTZGOworMUU2RjtMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIExJTkUgQkVMT1c7TGw7MDtMOzAwNzQgMDMzMTs7OztOOzs7MUU2RTs7MUU2RQorMUU3MDtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMdTswO0w7MDA1NCAwMzJEOzs7O047Ozs7MUU3MTsKKzFFNzE7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBDSVJDVU1GTEVYIEJFTE9XO0xsOzA7TDswMDc0IDAzMkQ7Ozs7Tjs7OzFFNzA7OzFFNzAKKzFFNzI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUyBCRUxPVztMdTswO0w7MDA1NSAwMzI0Ozs7O047Ozs7MUU3MzsKKzFFNzM7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVMgQkVMT1c7TGw7MDtMOzAwNzUgMDMyNDs7OztOOzs7MUU3Mjs7MUU3MgorMUU3NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggVElMREUgQkVMT1c7THU7MDtMOzAwNTUgMDMzMDs7OztOOzs7OzFFNzU7CisxRTc1O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggVElMREUgQkVMT1c7TGw7MDtMOzAwNzUgMDMzMDs7OztOOzs7MUU3NDs7MUU3NAorMUU3NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMdTswO0w7MDA1NSAwMzJEOzs7O047Ozs7MUU3NzsKKzFFNzc7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBDSVJDVU1GTEVYIEJFTE9XO0xsOzA7TDswMDc1IDAzMkQ7Ozs7Tjs7OzFFNzY7OzFFNzYKKzFFNzg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIFRJTERFIEFORCBBQ1VURTtMdTswO0w7MDE2OCAwMzAxOzs7O047Ozs7MUU3OTsKKzFFNzk7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBUSUxERSBBTkQgQUNVVEU7TGw7MDtMOzAxNjkgMDMwMTs7OztOOzs7MUU3ODs7MUU3OAorMUU3QTtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggTUFDUk9OIEFORCBESUFFUkVTSVM7THU7MDtMOzAxNkEgMDMwODs7OztOOzs7OzFFN0I7CisxRTdCO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggTUFDUk9OIEFORCBESUFFUkVTSVM7TGw7MDtMOzAxNkIgMDMwODs7OztOOzs7MUU3QTs7MUU3QQorMUU3QztMQVRJTiBDQVBJVEFMIExFVFRFUiBWIFdJVEggVElMREU7THU7MDtMOzAwNTYgMDMwMzs7OztOOzs7OzFFN0Q7CisxRTdEO0xBVElOIFNNQUxMIExFVFRFUiBWIFdJVEggVElMREU7TGw7MDtMOzAwNzYgMDMwMzs7OztOOzs7MUU3Qzs7MUU3QworMUU3RTtMQVRJTiBDQVBJVEFMIExFVFRFUiBWIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDU2IDAzMjM7Ozs7Tjs7OzsxRTdGOworMUU3RjtMQVRJTiBTTUFMTCBMRVRURVIgViBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA3NiAwMzIzOzs7O047OzsxRTdFOzsxRTdFCisxRTgwO0xBVElOIENBUElUQUwgTEVUVEVSIFcgV0lUSCBHUkFWRTtMdTswO0w7MDA1NyAwMzAwOzs7O047Ozs7MUU4MTsKKzFFODE7TEFUSU4gU01BTEwgTEVUVEVSIFcgV0lUSCBHUkFWRTtMbDswO0w7MDA3NyAwMzAwOzs7O047OzsxRTgwOzsxRTgwCisxRTgyO0xBVElOIENBUElUQUwgTEVUVEVSIFcgV0lUSCBBQ1VURTtMdTswO0w7MDA1NyAwMzAxOzs7O047Ozs7MUU4MzsKKzFFODM7TEFUSU4gU01BTEwgTEVUVEVSIFcgV0lUSCBBQ1VURTtMbDswO0w7MDA3NyAwMzAxOzs7O047OzsxRTgyOzsxRTgyCisxRTg0O0xBVElOIENBUElUQUwgTEVUVEVSIFcgV0lUSCBESUFFUkVTSVM7THU7MDtMOzAwNTcgMDMwODs7OztOOzs7OzFFODU7CisxRTg1O0xBVElOIFNNQUxMIExFVFRFUiBXIFdJVEggRElBRVJFU0lTO0xsOzA7TDswMDc3IDAzMDg7Ozs7Tjs7OzFFODQ7OzFFODQKKzFFODY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVyBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA1NyAwMzA3Ozs7O047Ozs7MUU4NzsKKzFFODc7TEFUSU4gU01BTEwgTEVUVEVSIFcgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNzcgMDMwNzs7OztOOzs7MUU4Njs7MUU4NgorMUU4ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBXIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDU3IDAzMjM7Ozs7Tjs7OzsxRTg5OworMUU4OTtMQVRJTiBTTUFMTCBMRVRURVIgVyBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA3NyAwMzIzOzs7O047OzsxRTg4OzsxRTg4CisxRThBO0xBVElOIENBUElUQUwgTEVUVEVSIFggV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNTggMDMwNzs7OztOOzs7OzFFOEI7CisxRThCO0xBVElOIFNNQUxMIExFVFRFUiBYIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDc4IDAzMDc7Ozs7Tjs7OzFFOEE7OzFFOEEKKzFFOEM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWCBXSVRIIERJQUVSRVNJUztMdTswO0w7MDA1OCAwMzA4Ozs7O047Ozs7MUU4RDsKKzFFOEQ7TEFUSU4gU01BTEwgTEVUVEVSIFggV0lUSCBESUFFUkVTSVM7TGw7MDtMOzAwNzggMDMwODs7OztOOzs7MUU4Qzs7MUU4QworMUU4RTtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDU5IDAzMDc7Ozs7Tjs7OzsxRThGOworMUU4RjtMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA3OSAwMzA3Ozs7O047OzsxRThFOzsxRThFCisxRTkwO0xBVElOIENBUElUQUwgTEVUVEVSIFogV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDVBIDAzMDI7Ozs7Tjs7OzsxRTkxOworMUU5MTtMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwN0EgMDMwMjs7OztOOzs7MUU5MDs7MUU5MAorMUU5MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDVBIDAzMjM7Ozs7Tjs7OzsxRTkzOworMUU5MztMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA3QSAwMzIzOzs7O047OzsxRTkyOzsxRTkyCisxRTk0O0xBVElOIENBUElUQUwgTEVUVEVSIFogV0lUSCBMSU5FIEJFTE9XO0x1OzA7TDswMDVBIDAzMzE7Ozs7Tjs7OzsxRTk1OworMUU5NTtMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIExJTkUgQkVMT1c7TGw7MDtMOzAwN0EgMDMzMTs7OztOOzs7MUU5NDs7MUU5NAorMUU5NjtMQVRJTiBTTUFMTCBMRVRURVIgSCBXSVRIIExJTkUgQkVMT1c7TGw7MDtMOzAwNjggMDMzMTs7OztOOzs7OzsKKzFFOTc7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzAwNzQgMDMwODs7OztOOzs7OzsKKzFFOTg7TEFUSU4gU01BTEwgTEVUVEVSIFcgV0lUSCBSSU5HIEFCT1ZFO0xsOzA7TDswMDc3IDAzMEE7Ozs7Tjs7Ozs7CisxRTk5O0xBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggUklORyBBQk9WRTtMbDswO0w7MDA3OSAwMzBBOzs7O047Ozs7OworMUU5QTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIFJJR0hUIEhBTEYgUklORztMbDswO0w7PGNvbXBhdD4gMDA2MSAwMkJFOzs7O047Ozs7OworMUU5QjtMQVRJTiBTTUFMTCBMRVRURVIgTE9ORyBTIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMTdGIDAzMDc7Ozs7Tjs7OzFFNjA7OzFFNjAKKzFFQTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA0MSAwMzIzOzs7O047Ozs7MUVBMTsKKzFFQTE7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNjEgMDMyMzs7OztOOzs7MUVBMDs7MUVBMAorMUVBMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggSE9PSyBBQk9WRTtMdTswO0w7MDA0MSAwMzA5Ozs7O047Ozs7MUVBMzsKKzFFQTM7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBIT09LIEFCT1ZFO0xsOzA7TDswMDYxIDAzMDk7Ozs7Tjs7OzFFQTI7OzFFQTIKKzFFQTQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVggQU5EIEFDVVRFO0x1OzA7TDswMEMyIDAzMDE7Ozs7Tjs7OzsxRUE1OworMUVBNTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVggQU5EIEFDVVRFO0xsOzA7TDswMEUyIDAzMDE7Ozs7Tjs7OzFFQTQ7OzFFQTQKKzFFQTY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVggQU5EIEdSQVZFO0x1OzA7TDswMEMyIDAzMDA7Ozs7Tjs7OzsxRUE3OworMUVBNztMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVggQU5EIEdSQVZFO0xsOzA7TDswMEUyIDAzMDA7Ozs7Tjs7OzFFQTY7OzFFQTYKKzFFQTg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVggQU5EIEhPT0sgQUJPVkU7THU7MDtMOzAwQzIgMDMwOTs7OztOOzs7OzFFQTk7CisxRUE5O0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWCBBTkQgSE9PSyBBQk9WRTtMbDswO0w7MDBFMiAwMzA5Ozs7O047OzsxRUE4OzsxRUE4CisxRUFBO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYIEFORCBUSUxERTtMdTswO0w7MDBDMiAwMzAzOzs7O047Ozs7MUVBQjsKKzFFQUI7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYIEFORCBUSUxERTtMbDswO0w7MDBFMiAwMzAzOzs7O047OzsxRUFBOzsxRUFBCisxRUFDO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYIEFORCBET1QgQkVMT1c7THU7MDtMOzFFQTAgMDMwMjs7OztOOzs7OzFFQUQ7CisxRUFEO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWCBBTkQgRE9UIEJFTE9XO0xsOzA7TDsxRUExIDAzMDI7Ozs7Tjs7OzFFQUM7OzFFQUMKKzFFQUU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEJSRVZFIEFORCBBQ1VURTtMdTswO0w7MDEwMiAwMzAxOzs7O047Ozs7MUVBRjsKKzFFQUY7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBCUkVWRSBBTkQgQUNVVEU7TGw7MDtMOzAxMDMgMDMwMTs7OztOOzs7MUVBRTs7MUVBRQorMUVCMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQlJFVkUgQU5EIEdSQVZFO0x1OzA7TDswMTAyIDAzMDA7Ozs7Tjs7OzsxRUIxOworMUVCMTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIEJSRVZFIEFORCBHUkFWRTtMbDswO0w7MDEwMyAwMzAwOzs7O047OzsxRUIwOzsxRUIwCisxRUIyO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBCUkVWRSBBTkQgSE9PSyBBQk9WRTtMdTswO0w7MDEwMiAwMzA5Ozs7O047Ozs7MUVCMzsKKzFFQjM7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBCUkVWRSBBTkQgSE9PSyBBQk9WRTtMbDswO0w7MDEwMyAwMzA5Ozs7O047OzsxRUIyOzsxRUIyCisxRUI0O0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBCUkVWRSBBTkQgVElMREU7THU7MDtMOzAxMDIgMDMwMzs7OztOOzs7OzFFQjU7CisxRUI1O0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQlJFVkUgQU5EIFRJTERFO0xsOzA7TDswMTAzIDAzMDM7Ozs7Tjs7OzFFQjQ7OzFFQjQKKzFFQjY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEJSRVZFIEFORCBET1QgQkVMT1c7THU7MDtMOzFFQTAgMDMwNjs7OztOOzs7OzFFQjc7CisxRUI3O0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQlJFVkUgQU5EIERPVCBCRUxPVztMbDswO0w7MUVBMSAwMzA2Ozs7O047OzsxRUI2OzsxRUI2CisxRUI4O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNDUgMDMyMzs7OztOOzs7OzFFQjk7CisxRUI5O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDY1IDAzMjM7Ozs7Tjs7OzFFQjg7OzFFQjgKKzFFQkE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIEhPT0sgQUJPVkU7THU7MDtMOzAwNDUgMDMwOTs7OztOOzs7OzFFQkI7CisxRUJCO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggSE9PSyBBQk9WRTtMbDswO0w7MDA2NSAwMzA5Ozs7O047OzsxRUJBOzsxRUJBCisxRUJDO0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBUSUxERTtMdTswO0w7MDA0NSAwMzAzOzs7O047Ozs7MUVCRDsKKzFFQkQ7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBUSUxERTtMbDswO0w7MDA2NSAwMzAzOzs7O047OzsxRUJDOzsxRUJDCisxRUJFO0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYIEFORCBBQ1VURTtMdTswO0w7MDBDQSAwMzAxOzs7O047Ozs7MUVCRjsKKzFFQkY7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYIEFORCBBQ1VURTtMbDswO0w7MDBFQSAwMzAxOzs7O047OzsxRUJFOzsxRUJFCisxRUMwO0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYIEFORCBHUkFWRTtMdTswO0w7MDBDQSAwMzAwOzs7O047Ozs7MUVDMTsKKzFFQzE7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYIEFORCBHUkFWRTtMbDswO0w7MDBFQSAwMzAwOzs7O047OzsxRUMwOzsxRUMwCisxRUMyO0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYIEFORCBIT09LIEFCT1ZFO0x1OzA7TDswMENBIDAzMDk7Ozs7Tjs7OzsxRUMzOworMUVDMztMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVggQU5EIEhPT0sgQUJPVkU7TGw7MDtMOzAwRUEgMDMwOTs7OztOOzs7MUVDMjs7MUVDMgorMUVDNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBBTkQgVElMREU7THU7MDtMOzAwQ0EgMDMwMzs7OztOOzs7OzFFQzU7CisxRUM1O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBBTkQgVElMREU7TGw7MDtMOzAwRUEgMDMwMzs7OztOOzs7MUVDNDs7MUVDNAorMUVDNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBBTkQgRE9UIEJFTE9XO0x1OzA7TDsxRUI4IDAzMDI7Ozs7Tjs7OzsxRUM3OworMUVDNztMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVggQU5EIERPVCBCRUxPVztMbDswO0w7MUVCOSAwMzAyOzs7O047OzsxRUM2OzsxRUM2CisxRUM4O0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBIT09LIEFCT1ZFO0x1OzA7TDswMDQ5IDAzMDk7Ozs7Tjs7OzsxRUM5OworMUVDOTtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIEhPT0sgQUJPVkU7TGw7MDtMOzAwNjkgMDMwOTs7OztOOzs7MUVDODs7MUVDOAorMUVDQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDQ5IDAzMjM7Ozs7Tjs7OzsxRUNCOworMUVDQjtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2OSAwMzIzOzs7O047OzsxRUNBOzsxRUNBCisxRUNDO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNEYgMDMyMzs7OztOOzs7OzFFQ0Q7CisxRUNEO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDZGIDAzMjM7Ozs7Tjs7OzFFQ0M7OzFFQ0MKKzFFQ0U7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIEhPT0sgQUJPVkU7THU7MDtMOzAwNEYgMDMwOTs7OztOOzs7OzFFQ0Y7CisxRUNGO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggSE9PSyBBQk9WRTtMbDswO0w7MDA2RiAwMzA5Ozs7O047OzsxRUNFOzsxRUNFCisxRUQwO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYIEFORCBBQ1VURTtMdTswO0w7MDBENCAwMzAxOzs7O047Ozs7MUVEMTsKKzFFRDE7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYIEFORCBBQ1VURTtMbDswO0w7MDBGNCAwMzAxOzs7O047OzsxRUQwOzsxRUQwCisxRUQyO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYIEFORCBHUkFWRTtMdTswO0w7MDBENCAwMzAwOzs7O047Ozs7MUVEMzsKKzFFRDM7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYIEFORCBHUkFWRTtMbDswO0w7MDBGNCAwMzAwOzs7O047OzsxRUQyOzsxRUQyCisxRUQ0O0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYIEFORCBIT09LIEFCT1ZFO0x1OzA7TDswMEQ0IDAzMDk7Ozs7Tjs7OzsxRUQ1OworMUVENTtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVggQU5EIEhPT0sgQUJPVkU7TGw7MDtMOzAwRjQgMDMwOTs7OztOOzs7MUVENDs7MUVENAorMUVENjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWCBBTkQgVElMREU7THU7MDtMOzAwRDQgMDMwMzs7OztOOzs7OzFFRDc7CisxRUQ3O0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWCBBTkQgVElMREU7TGw7MDtMOzAwRjQgMDMwMzs7OztOOzs7MUVENjs7MUVENgorMUVEODtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWCBBTkQgRE9UIEJFTE9XO0x1OzA7TDsxRUNDIDAzMDI7Ozs7Tjs7OzsxRUQ5OworMUVEOTtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVggQU5EIERPVCBCRUxPVztMbDswO0w7MUVDRCAwMzAyOzs7O047OzsxRUQ4OzsxRUQ4CisxRURBO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBIT1JOIEFORCBBQ1VURTtMdTswO0w7MDFBMCAwMzAxOzs7O047Ozs7MUVEQjsKKzFFREI7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBIT1JOIEFORCBBQ1VURTtMbDswO0w7MDFBMSAwMzAxOzs7O047OzsxRURBOzsxRURBCisxRURDO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBIT1JOIEFORCBHUkFWRTtMdTswO0w7MDFBMCAwMzAwOzs7O047Ozs7MUVERDsKKzFFREQ7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBIT1JOIEFORCBHUkFWRTtMbDswO0w7MDFBMSAwMzAwOzs7O047OzsxRURDOzsxRURDCisxRURFO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBIT1JOIEFORCBIT09LIEFCT1ZFO0x1OzA7TDswMUEwIDAzMDk7Ozs7Tjs7OzsxRURGOworMUVERjtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIEhPUk4gQU5EIEhPT0sgQUJPVkU7TGw7MDtMOzAxQTEgMDMwOTs7OztOOzs7MUVERTs7MUVERQorMUVFMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggSE9STiBBTkQgVElMREU7THU7MDtMOzAxQTAgMDMwMzs7OztOOzs7OzFFRTE7CisxRUUxO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggSE9STiBBTkQgVElMREU7TGw7MDtMOzAxQTEgMDMwMzs7OztOOzs7MUVFMDs7MUVFMAorMUVFMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggSE9STiBBTkQgRE9UIEJFTE9XO0x1OzA7TDswMUEwIDAzMjM7Ozs7Tjs7OzsxRUUzOworMUVFMztMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIEhPUk4gQU5EIERPVCBCRUxPVztMbDswO0w7MDFBMSAwMzIzOzs7O047OzsxRUUyOzsxRUUyCisxRUU0O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNTUgMDMyMzs7OztOOzs7OzFFRTU7CisxRUU1O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDc1IDAzMjM7Ozs7Tjs7OzFFRTQ7OzFFRTQKKzFFRTY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEhPT0sgQUJPVkU7THU7MDtMOzAwNTUgMDMwOTs7OztOOzs7OzFFRTc7CisxRUU3O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggSE9PSyBBQk9WRTtMbDswO0w7MDA3NSAwMzA5Ozs7O047OzsxRUU2OzsxRUU2CisxRUU4O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBIT1JOIEFORCBBQ1VURTtMdTswO0w7MDFBRiAwMzAxOzs7O047Ozs7MUVFOTsKKzFFRTk7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBIT1JOIEFORCBBQ1VURTtMbDswO0w7MDFCMCAwMzAxOzs7O047OzsxRUU4OzsxRUU4CisxRUVBO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBIT1JOIEFORCBHUkFWRTtMdTswO0w7MDFBRiAwMzAwOzs7O047Ozs7MUVFQjsKKzFFRUI7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBIT1JOIEFORCBHUkFWRTtMbDswO0w7MDFCMCAwMzAwOzs7O047OzsxRUVBOzsxRUVBCisxRUVDO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBIT1JOIEFORCBIT09LIEFCT1ZFO0x1OzA7TDswMUFGIDAzMDk7Ozs7Tjs7OzsxRUVEOworMUVFRDtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEhPUk4gQU5EIEhPT0sgQUJPVkU7TGw7MDtMOzAxQjAgMDMwOTs7OztOOzs7MUVFQzs7MUVFQworMUVFRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggSE9STiBBTkQgVElMREU7THU7MDtMOzAxQUYgMDMwMzs7OztOOzs7OzFFRUY7CisxRUVGO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggSE9STiBBTkQgVElMREU7TGw7MDtMOzAxQjAgMDMwMzs7OztOOzs7MUVFRTs7MUVFRQorMUVGMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggSE9STiBBTkQgRE9UIEJFTE9XO0x1OzA7TDswMUFGIDAzMjM7Ozs7Tjs7OzsxRUYxOworMUVGMTtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEhPUk4gQU5EIERPVCBCRUxPVztMbDswO0w7MDFCMCAwMzIzOzs7O047OzsxRUYwOzsxRUYwCisxRUYyO0xBVElOIENBUElUQUwgTEVUVEVSIFkgV0lUSCBHUkFWRTtMdTswO0w7MDA1OSAwMzAwOzs7O047Ozs7MUVGMzsKKzFFRjM7TEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBHUkFWRTtMbDswO0w7MDA3OSAwMzAwOzs7O047OzsxRUYyOzsxRUYyCisxRUY0O0xBVElOIENBUElUQUwgTEVUVEVSIFkgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNTkgMDMyMzs7OztOOzs7OzFFRjU7CisxRUY1O0xBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDc5IDAzMjM7Ozs7Tjs7OzFFRjQ7OzFFRjQKKzFFRjY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIEhPT0sgQUJPVkU7THU7MDtMOzAwNTkgMDMwOTs7OztOOzs7OzFFRjc7CisxRUY3O0xBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggSE9PSyBBQk9WRTtMbDswO0w7MDA3OSAwMzA5Ozs7O047OzsxRUY2OzsxRUY2CisxRUY4O0xBVElOIENBUElUQUwgTEVUVEVSIFkgV0lUSCBUSUxERTtMdTswO0w7MDA1OSAwMzAzOzs7O047Ozs7MUVGOTsKKzFFRjk7TEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBUSUxERTtMbDswO0w7MDA3OSAwMzAzOzs7O047OzsxRUY4OzsxRUY4CisxRjAwO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJO0xsOzA7TDswM0IxIDAzMTM7Ozs7Tjs7OzFGMDg7OzFGMDgKKzFGMDE7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUE7TGw7MDtMOzAzQjEgMDMxNDs7OztOOzs7MUYwOTs7MUYwOQorMUYwMjtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgVkFSSUE7TGw7MDtMOzFGMDAgMDMwMDs7OztOOzs7MUYwQTs7MUYwQQorMUYwMztHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgVkFSSUE7TGw7MDtMOzFGMDEgMDMwMDs7OztOOzs7MUYwQjs7MUYwQgorMUYwNDtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgT1hJQTtMbDswO0w7MUYwMCAwMzAxOzs7O047OzsxRjBDOzsxRjBDCisxRjA1O0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBPWElBO0xsOzA7TDsxRjAxIDAzMDE7Ozs7Tjs7OzFGMEQ7OzFGMEQKKzFGMDY7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JO0xsOzA7TDsxRjAwIDAzNDI7Ozs7Tjs7OzFGMEU7OzFGMEUKKzFGMDc7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JO0xsOzA7TDsxRjAxIDAzNDI7Ozs7Tjs7OzFGMEY7OzFGMEYKKzFGMDg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSTtMdTswO0w7MDM5MSAwMzEzOzs7O047Ozs7MUYwMDsKKzFGMDk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQTtMdTswO0w7MDM5MSAwMzE0Ozs7O047Ozs7MUYwMTsKKzFGMEE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgVkFSSUE7THU7MDtMOzFGMDggMDMwMDs7OztOOzs7OzFGMDI7CisxRjBCO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFZBUklBO0x1OzA7TDsxRjA5IDAzMDA7Ozs7Tjs7OzsxRjAzOworMUYwQztHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBPWElBO0x1OzA7TDsxRjA4IDAzMDE7Ozs7Tjs7OzsxRjA0OworMUYwRDtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBPWElBO0x1OzA7TDsxRjA5IDAzMDE7Ozs7Tjs7OzsxRjA1OworMUYwRTtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSTtMdTswO0w7MUYwOCAwMzQyOzs7O047Ozs7MUYwNjsKKzFGMEY7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkk7THU7MDtMOzFGMDkgMDM0Mjs7OztOOzs7OzFGMDc7CisxRjEwO0dSRUVLIFNNQUxMIExFVFRFUiBFUFNJTE9OIFdJVEggUFNJTEk7TGw7MDtMOzAzQjUgMDMxMzs7OztOOzs7MUYxODs7MUYxOAorMUYxMTtHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTiBXSVRIIERBU0lBO0xsOzA7TDswM0I1IDAzMTQ7Ozs7Tjs7OzFGMTk7OzFGMTkKKzFGMTI7R1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT04gV0lUSCBQU0lMSSBBTkQgVkFSSUE7TGw7MDtMOzFGMTAgMDMwMDs7OztOOzs7MUYxQTs7MUYxQQorMUYxMztHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTiBXSVRIIERBU0lBIEFORCBWQVJJQTtMbDswO0w7MUYxMSAwMzAwOzs7O047OzsxRjFCOzsxRjFCCisxRjE0O0dSRUVLIFNNQUxMIExFVFRFUiBFUFNJTE9OIFdJVEggUFNJTEkgQU5EIE9YSUE7TGw7MDtMOzFGMTAgMDMwMTs7OztOOzs7MUYxQzs7MUYxQworMUYxNTtHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTiBXSVRIIERBU0lBIEFORCBPWElBO0xsOzA7TDsxRjExIDAzMDE7Ozs7Tjs7OzFGMUQ7OzFGMUQKKzFGMTg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVBTSUxPTiBXSVRIIFBTSUxJO0x1OzA7TDswMzk1IDAzMTM7Ozs7Tjs7OzsxRjEwOworMUYxOTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OIFdJVEggREFTSUE7THU7MDtMOzAzOTUgMDMxNDs7OztOOzs7OzFGMTE7CisxRjFBO0dSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gV0lUSCBQU0lMSSBBTkQgVkFSSUE7THU7MDtMOzFGMTggMDMwMDs7OztOOzs7OzFGMTI7CisxRjFCO0dSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gV0lUSCBEQVNJQSBBTkQgVkFSSUE7THU7MDtMOzFGMTkgMDMwMDs7OztOOzs7OzFGMTM7CisxRjFDO0dSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gV0lUSCBQU0lMSSBBTkQgT1hJQTtMdTswO0w7MUYxOCAwMzAxOzs7O047Ozs7MUYxNDsKKzFGMUQ7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVBTSUxPTiBXSVRIIERBU0lBIEFORCBPWElBO0x1OzA7TDsxRjE5IDAzMDE7Ozs7Tjs7OzsxRjE1OworMUYyMDtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEk7TGw7MDtMOzAzQjcgMDMxMzs7OztOOzs7MUYyODs7MUYyOAorMUYyMTtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUE7TGw7MDtMOzAzQjcgMDMxNDs7OztOOzs7MUYyOTs7MUYyOQorMUYyMjtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFZBUklBO0xsOzA7TDsxRjIwIDAzMDA7Ozs7Tjs7OzFGMkE7OzFGMkEKKzFGMjM7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBWQVJJQTtMbDswO0w7MUYyMSAwMzAwOzs7O047OzsxRjJCOzsxRjJCCisxRjI0O0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgT1hJQTtMbDswO0w7MUYyMCAwMzAxOzs7O047OzsxRjJDOzsxRjJDCisxRjI1O0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgT1hJQTtMbDswO0w7MUYyMSAwMzAxOzs7O047OzsxRjJEOzsxRjJECisxRjI2O0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkk7TGw7MDtMOzFGMjAgMDM0Mjs7OztOOzs7MUYyRTs7MUYyRQorMUYyNztHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JO0xsOzA7TDsxRjIxIDAzNDI7Ozs7Tjs7OzFGMkY7OzFGMkYKKzFGMjg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFNJTEk7THU7MDtMOzAzOTcgMDMxMzs7OztOOzs7OzFGMjA7CisxRjI5O0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIERBU0lBO0x1OzA7TDswMzk3IDAzMTQ7Ozs7Tjs7OzsxRjIxOworMUYyQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgVkFSSUE7THU7MDtMOzFGMjggMDMwMDs7OztOOzs7OzFGMjI7CisxRjJCO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBWQVJJQTtMdTswO0w7MUYyOSAwMzAwOzs7O047Ozs7MUYyMzsKKzFGMkM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIE9YSUE7THU7MDtMOzFGMjggMDMwMTs7OztOOzs7OzFGMjQ7CisxRjJEO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBPWElBO0x1OzA7TDsxRjI5IDAzMDE7Ozs7Tjs7OzsxRjI1OworMUYyRTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkk7THU7MDtMOzFGMjggMDM0Mjs7OztOOzs7OzFGMjY7CisxRjJGO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSTtMdTswO0w7MUYyOSAwMzQyOzs7O047Ozs7MUYyNzsKKzFGMzA7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBQU0lMSTtMbDswO0w7MDNCOSAwMzEzOzs7O047OzsxRjM4OzsxRjM4CisxRjMxO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggREFTSUE7TGw7MDtMOzAzQjkgMDMxNDs7OztOOzs7MUYzOTs7MUYzOQorMUYzMjtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIFBTSUxJIEFORCBWQVJJQTtMbDswO0w7MUYzMCAwMzAwOzs7O047OzsxRjNBOzsxRjNBCisxRjMzO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggREFTSUEgQU5EIFZBUklBO0xsOzA7TDsxRjMxIDAzMDA7Ozs7Tjs7OzFGM0I7OzFGM0IKKzFGMzQ7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBQU0lMSSBBTkQgT1hJQTtMbDswO0w7MUYzMCAwMzAxOzs7O047OzsxRjNDOzsxRjNDCisxRjM1O0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggREFTSUEgQU5EIE9YSUE7TGw7MDtMOzFGMzEgMDMwMTs7OztOOzs7MUYzRDs7MUYzRAorMUYzNjtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MUYzMCAwMzQyOzs7O047OzsxRjNFOzsxRjNFCisxRjM3O0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JO0xsOzA7TDsxRjMxIDAzNDI7Ozs7Tjs7OzFGM0Y7OzFGM0YKKzFGMzg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIFBTSUxJO0x1OzA7TDswMzk5IDAzMTM7Ozs7Tjs7OzsxRjMwOworMUYzOTtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggREFTSUE7THU7MDtMOzAzOTkgMDMxNDs7OztOOzs7OzFGMzE7CisxRjNBO0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBQU0lMSSBBTkQgVkFSSUE7THU7MDtMOzFGMzggMDMwMDs7OztOOzs7OzFGMzI7CisxRjNCO0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBEQVNJQSBBTkQgVkFSSUE7THU7MDtMOzFGMzkgMDMwMDs7OztOOzs7OzFGMzM7CisxRjNDO0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBQU0lMSSBBTkQgT1hJQTtMdTswO0w7MUYzOCAwMzAxOzs7O047Ozs7MUYzNDsKKzFGM0Q7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIERBU0lBIEFORCBPWElBO0x1OzA7TDsxRjM5IDAzMDE7Ozs7Tjs7OzsxRjM1OworMUYzRTtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JO0x1OzA7TDsxRjM4IDAzNDI7Ozs7Tjs7OzsxRjM2OworMUYzRjtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JO0x1OzA7TDsxRjM5IDAzNDI7Ozs7Tjs7OzsxRjM3OworMUY0MDtHUkVFSyBTTUFMTCBMRVRURVIgT01JQ1JPTiBXSVRIIFBTSUxJO0xsOzA7TDswM0JGIDAzMTM7Ozs7Tjs7OzFGNDg7OzFGNDgKKzFGNDE7R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gV0lUSCBEQVNJQTtMbDswO0w7MDNCRiAwMzE0Ozs7O047OzsxRjQ5OzsxRjQ5CisxRjQyO0dSRUVLIFNNQUxMIExFVFRFUiBPTUlDUk9OIFdJVEggUFNJTEkgQU5EIFZBUklBO0xsOzA7TDsxRjQwIDAzMDA7Ozs7Tjs7OzFGNEE7OzFGNEEKKzFGNDM7R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gV0lUSCBEQVNJQSBBTkQgVkFSSUE7TGw7MDtMOzFGNDEgMDMwMDs7OztOOzs7MUY0Qjs7MUY0QgorMUY0NDtHUkVFSyBTTUFMTCBMRVRURVIgT01JQ1JPTiBXSVRIIFBTSUxJIEFORCBPWElBO0xsOzA7TDsxRjQwIDAzMDE7Ozs7Tjs7OzFGNEM7OzFGNEMKKzFGNDU7R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gV0lUSCBEQVNJQSBBTkQgT1hJQTtMbDswO0w7MUY0MSAwMzAxOzs7O047OzsxRjREOzsxRjRECisxRjQ4O0dSRUVLIENBUElUQUwgTEVUVEVSIE9NSUNST04gV0lUSCBQU0lMSTtMdTswO0w7MDM5RiAwMzEzOzs7O047Ozs7MUY0MDsKKzFGNDk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTiBXSVRIIERBU0lBO0x1OzA7TDswMzlGIDAzMTQ7Ozs7Tjs7OzsxRjQxOworMUY0QTtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OIFdJVEggUFNJTEkgQU5EIFZBUklBO0x1OzA7TDsxRjQ4IDAzMDA7Ozs7Tjs7OzsxRjQyOworMUY0QjtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OIFdJVEggREFTSUEgQU5EIFZBUklBO0x1OzA7TDsxRjQ5IDAzMDA7Ozs7Tjs7OzsxRjQzOworMUY0QztHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OIFdJVEggUFNJTEkgQU5EIE9YSUE7THU7MDtMOzFGNDggMDMwMTs7OztOOzs7OzFGNDQ7CisxRjREO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NSUNST04gV0lUSCBEQVNJQSBBTkQgT1hJQTtMdTswO0w7MUY0OSAwMzAxOzs7O047Ozs7MUY0NTsKKzFGNTA7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBQU0lMSTtMbDswO0w7MDNDNSAwMzEzOzs7O047Ozs7OworMUY1MTtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIERBU0lBO0xsOzA7TDswM0M1IDAzMTQ7Ozs7Tjs7OzFGNTk7OzFGNTkKKzFGNTI7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBQU0lMSSBBTkQgVkFSSUE7TGw7MDtMOzFGNTAgMDMwMDs7OztOOzs7OzsKKzFGNTM7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBEQVNJQSBBTkQgVkFSSUE7TGw7MDtMOzFGNTEgMDMwMDs7OztOOzs7MUY1Qjs7MUY1QgorMUY1NDtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIFBTSUxJIEFORCBPWElBO0xsOzA7TDsxRjUwIDAzMDE7Ozs7Tjs7Ozs7CisxRjU1O0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggREFTSUEgQU5EIE9YSUE7TGw7MDtMOzFGNTEgMDMwMTs7OztOOzs7MUY1RDs7MUY1RAorMUY1NjtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MUY1MCAwMzQyOzs7O047Ozs7OworMUY1NztHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MUY1MSAwMzQyOzs7O047OzsxRjVGOzsxRjVGCisxRjU5O0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gV0lUSCBEQVNJQTtMdTswO0w7MDNBNSAwMzE0Ozs7O047Ozs7MUY1MTsKKzFGNUI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBXSVRIIERBU0lBIEFORCBWQVJJQTtMdTswO0w7MUY1OSAwMzAwOzs7O047Ozs7MUY1MzsKKzFGNUQ7R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBXSVRIIERBU0lBIEFORCBPWElBO0x1OzA7TDsxRjU5IDAzMDE7Ozs7Tjs7OzsxRjU1OworMUY1RjtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JO0x1OzA7TDsxRjU5IDAzNDI7Ozs7Tjs7OzsxRjU3OworMUY2MDtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSTtMbDswO0w7MDNDOSAwMzEzOzs7O047OzsxRjY4OzsxRjY4CisxRjYxO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBO0xsOzA7TDswM0M5IDAzMTQ7Ozs7Tjs7OzFGNjk7OzFGNjkKKzFGNjI7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFZBUklBO0xsOzA7TDsxRjYwIDAzMDA7Ozs7Tjs7OzFGNkE7OzFGNkEKKzFGNjM7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFZBUklBO0xsOzA7TDsxRjYxIDAzMDA7Ozs7Tjs7OzFGNkI7OzFGNkIKKzFGNjQ7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIE9YSUE7TGw7MDtMOzFGNjAgMDMwMTs7OztOOzs7MUY2Qzs7MUY2QworMUY2NTtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgT1hJQTtMbDswO0w7MUY2MSAwMzAxOzs7O047OzsxRjZEOzsxRjZECisxRjY2O0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MUY2MCAwMzQyOzs7O047OzsxRjZFOzsxRjZFCisxRjY3O0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MUY2MSAwMzQyOzs7O047OzsxRjZGOzsxRjZGCisxRjY4O0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEk7THU7MDtMOzAzQTkgMDMxMzs7OztOOzs7OzFGNjA7CisxRjY5O0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUE7THU7MDtMOzAzQTkgMDMxNDs7OztOOzs7OzFGNjE7CisxRjZBO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFZBUklBO0x1OzA7TDsxRjY4IDAzMDA7Ozs7Tjs7OzsxRjYyOworMUY2QjtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBWQVJJQTtMdTswO0w7MUY2OSAwMzAwOzs7O047Ozs7MUY2MzsKKzFGNkM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgT1hJQTtMdTswO0w7MUY2OCAwMzAxOzs7O047Ozs7MUY2NDsKKzFGNkQ7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgT1hJQTtMdTswO0w7MUY2OSAwMzAxOzs7O047Ozs7MUY2NTsKKzFGNkU7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkk7THU7MDtMOzFGNjggMDM0Mjs7OztOOzs7OzFGNjY7CisxRjZGO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JO0x1OzA7TDsxRjY5IDAzNDI7Ozs7Tjs7OzsxRjY3OworMUY3MDtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBWQVJJQTtMbDswO0w7MDNCMSAwMzAwOzs7O047OzsxRkJBOzsxRkJBCisxRjcxO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIE9YSUE7TGw7MDtMOzAzQUM7Ozs7Tjs7OzFGQkI7OzFGQkIKKzFGNzI7R1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT04gV0lUSCBWQVJJQTtMbDswO0w7MDNCNSAwMzAwOzs7O047OzsxRkM4OzsxRkM4CisxRjczO0dSRUVLIFNNQUxMIExFVFRFUiBFUFNJTE9OIFdJVEggT1hJQTtMbDswO0w7MDNBRDs7OztOOzs7MUZDOTs7MUZDOQorMUY3NDtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggVkFSSUE7TGw7MDtMOzAzQjcgMDMwMDs7OztOOzs7MUZDQTs7MUZDQQorMUY3NTtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggT1hJQTtMbDswO0w7MDNBRTs7OztOOzs7MUZDQjs7MUZDQgorMUY3NjtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIFZBUklBO0xsOzA7TDswM0I5IDAzMDA7Ozs7Tjs7OzFGREE7OzFGREEKKzFGNzc7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBPWElBO0xsOzA7TDswM0FGOzs7O047OzsxRkRCOzsxRkRCCisxRjc4O0dSRUVLIFNNQUxMIExFVFRFUiBPTUlDUk9OIFdJVEggVkFSSUE7TGw7MDtMOzAzQkYgMDMwMDs7OztOOzs7MUZGODs7MUZGOAorMUY3OTtHUkVFSyBTTUFMTCBMRVRURVIgT01JQ1JPTiBXSVRIIE9YSUE7TGw7MDtMOzAzQ0M7Ozs7Tjs7OzFGRjk7OzFGRjkKKzFGN0E7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBWQVJJQTtMbDswO0w7MDNDNSAwMzAwOzs7O047OzsxRkVBOzsxRkVBCisxRjdCO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggT1hJQTtMbDswO0w7MDNDRDs7OztOOzs7MUZFQjs7MUZFQgorMUY3QztHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBWQVJJQTtMbDswO0w7MDNDOSAwMzAwOzs7O047OzsxRkZBOzsxRkZBCisxRjdEO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIE9YSUE7TGw7MDtMOzAzQ0U7Ozs7Tjs7OzFGRkI7OzFGRkIKKzFGODA7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMDAgMDM0NTs7OztOOzs7MUY4ODs7MUY4OAorMUY4MTtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYwMSAwMzQ1Ozs7O047OzsxRjg5OzsxRjg5CisxRjgyO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYwMiAwMzQ1Ozs7O047OzsxRjhBOzsxRjhBCisxRjgzO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYwMyAwMzQ1Ozs7O047OzsxRjhCOzsxRjhCCisxRjg0O0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBPWElBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjA0IDAzNDU7Ozs7Tjs7OzFGOEM7OzFGOEMKKzFGODU7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMDUgMDM0NTs7OztOOzs7MUY4RDs7MUY4RAorMUY4NjtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMDYgMDM0NTs7OztOOzs7MUY4RTs7MUY4RQorMUY4NztHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMDcgMDM0NTs7OztOOzs7MUY4Rjs7MUY4RgorMUY4ODtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUYwOCAwMzQ1Ozs7O047Ozs7MUY4MDsKKzFGODk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGMDkgMDM0NTs7OztOOzs7OzFGODE7CisxRjhBO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFZBUklBIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUYwQSAwMzQ1Ozs7O047Ozs7MUY4MjsKKzFGOEI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgVkFSSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjBCIDAzNDU7Ozs7Tjs7OzsxRjgzOworMUY4QztHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBPWElBIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUYwQyAwMzQ1Ozs7O047Ozs7MUY4NDsKKzFGOEQ7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgT1hJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGMEQgMDM0NTs7OztOOzs7OzFGODU7CisxRjhFO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUYwRSAwMzQ1Ozs7O047Ozs7MUY4NjsKKzFGOEY7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkkgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjBGIDAzNDU7Ozs7Tjs7OzsxRjg3OworMUY5MDtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMjAgMDM0NTs7OztOOzs7MUY5ODs7MUY5OAorMUY5MTtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMjEgMDM0NTs7OztOOzs7MUY5OTs7MUY5OQorMUY5MjtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjIyIDAzNDU7Ozs7Tjs7OzFGOUE7OzFGOUEKKzFGOTM7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYyMyAwMzQ1Ozs7O047OzsxRjlCOzsxRjlCCisxRjk0O0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgT1hJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYyNCAwMzQ1Ozs7O047OzsxRjlDOzsxRjlDCisxRjk1O0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgT1hJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYyNSAwMzQ1Ozs7O047OzsxRjlEOzsxRjlECisxRjk2O0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMjYgMDM0NTs7OztOOzs7MUY5RTs7MUY5RQorMUY5NztHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjI3IDAzNDU7Ozs7Tjs7OzFGOUY7OzFGOUYKKzFGOTg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjI4IDAzNDU7Ozs7Tjs7OzsxRjkwOworMUY5OTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGMjkgMDM0NTs7OztOOzs7OzFGOTE7CisxRjlBO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBWQVJJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGMkEgMDM0NTs7OztOOzs7OzFGOTI7CisxRjlCO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBWQVJJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGMkIgMDM0NTs7OztOOzs7OzFGOTM7CisxRjlDO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBPWElBIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUYyQyAwMzQ1Ozs7O047Ozs7MUY5NDsKKzFGOUQ7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjJEIDAzNDU7Ozs7Tjs7OzsxRjk1OworMUY5RTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkkgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjJFIDAzNDU7Ozs7Tjs7OzsxRjk2OworMUY5RjtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkkgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjJGIDAzNDU7Ozs7Tjs7OzsxRjk3OworMUZBMDtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUY2MCAwMzQ1Ozs7O047OzsxRkE4OzsxRkE4CisxRkExO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjYxIDAzNDU7Ozs7Tjs7OzFGQTk7OzFGQTkKKzFGQTI7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjYyIDAzNDU7Ozs7Tjs7OzFGQUE7OzFGQUEKKzFGQTM7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjYzIDAzNDU7Ozs7Tjs7OzFGQUI7OzFGQUIKKzFGQTQ7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGNjQgMDM0NTs7OztOOzs7MUZBQzs7MUZBQworMUZBNTtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgT1hJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUY2NSAwMzQ1Ozs7O047OzsxRkFEOzsxRkFECisxRkE2O0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUY2NiAwMzQ1Ozs7O047OzsxRkFFOzsxRkFFCisxRkE3O0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUY2NyAwMzQ1Ozs7O047OzsxRkFGOzsxRkFGCisxRkE4O0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjY4IDAzNDU7Ozs7Tjs7OzsxRkEwOworMUZBOTtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUY2OSAwMzQ1Ozs7O047Ozs7MUZBMTsKKzFGQUE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgVkFSSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjZBIDAzNDU7Ozs7Tjs7OzsxRkEyOworMUZBQjtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBWQVJJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGNkIgMDM0NTs7OztOOzs7OzFGQTM7CisxRkFDO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIE9YSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjZDIDAzNDU7Ozs7Tjs7OzsxRkE0OworMUZBRDtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBPWElBIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUY2RCAwMzQ1Ozs7O047Ozs7MUZBNTsKKzFGQUU7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkkgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjZFIDAzNDU7Ozs7Tjs7OzsxRkE2OworMUZBRjtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGNkYgMDM0NTs7OztOOzs7OzFGQTc7CisxRkIwO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFZSQUNIWTtMbDswO0w7MDNCMSAwMzA2Ozs7O047OzsxRkI4OzsxRkI4CisxRkIxO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIE1BQ1JPTjtMbDswO0w7MDNCMSAwMzA0Ozs7O047OzsxRkI5OzsxRkI5CisxRkIyO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjcwIDAzNDU7Ozs7Tjs7Ozs7CisxRkIzO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzAzQjEgMDM0NTs7OztOOzs7MUZCQzs7MUZCQworMUZCNDtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBPWElBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDswM0FDIDAzNDU7Ozs7Tjs7Ozs7CisxRkI2O0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBFUklTUE9NRU5JO0xsOzA7TDswM0IxIDAzNDI7Ozs7Tjs7Ozs7CisxRkI3O0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRkI2IDAzNDU7Ozs7Tjs7Ozs7CisxRkI4O0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggVlJBQ0hZO0x1OzA7TDswMzkxIDAzMDY7Ozs7Tjs7OzsxRkIwOworMUZCOTtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIE1BQ1JPTjtMdTswO0w7MDM5MSAwMzA0Ozs7O047Ozs7MUZCMTsKKzFGQkE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBWQVJJQTtMdTswO0w7MDM5MSAwMzAwOzs7O047Ozs7MUY3MDsKKzFGQkI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBPWElBO0x1OzA7TDswMzg2Ozs7O047Ozs7MUY3MTsKKzFGQkM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MDM5MSAwMzQ1Ozs7O047Ozs7MUZCMzsKKzFGQkQ7R1JFRUsgS09ST05JUztTazswO09OOzxjb21wYXQ+IDAwMjAgMDMxMzs7OztOOzs7OzsKKzFGQkU7R1JFRUsgUFJPU0dFR1JBTU1FTkk7TGw7MDtMOzAzQjk7Ozs7Tjs7OzAzOTk7OzAzOTkKKzFGQkY7R1JFRUsgUFNJTEk7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMTM7Ozs7Tjs7Ozs7CisxRkMwO0dSRUVLIFBFUklTUE9NRU5JO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzQyOzs7O047Ozs7OworMUZDMTtHUkVFSyBESUFMWVRJS0EgQU5EIFBFUklTUE9NRU5JO1NrOzA7T047MDBBOCAwMzQyOzs7O047Ozs7OworMUZDMjtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGNzQgMDM0NTs7OztOOzs7OzsKKzFGQzM7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzAzQjcgMDM0NTs7OztOOzs7MUZDQzs7MUZDQworMUZDNDtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggT1hJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MDNBRSAwMzQ1Ozs7O047Ozs7OworMUZDNjtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUEVSSVNQT01FTkk7TGw7MDtMOzAzQjcgMDM0Mjs7OztOOzs7OzsKKzFGQzc7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRkM2IDAzNDU7Ozs7Tjs7Ozs7CisxRkM4O0dSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gV0lUSCBWQVJJQTtMdTswO0w7MDM5NSAwMzAwOzs7O047Ozs7MUY3MjsKKzFGQzk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVBTSUxPTiBXSVRIIE9YSUE7THU7MDtMOzAzODg7Ozs7Tjs7OzsxRjczOworMUZDQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBWQVJJQTtMdTswO0w7MDM5NyAwMzAwOzs7O047Ozs7MUY3NDsKKzFGQ0I7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggT1hJQTtMdTswO0w7MDM4OTs7OztOOzs7OzFGNzU7CisxRkNDO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBST1NHRUdSQU1NRU5JO0x0OzA7TDswMzk3IDAzNDU7Ozs7Tjs7OzsxRkMzOworMUZDRDtHUkVFSyBQU0lMSSBBTkQgVkFSSUE7U2s7MDtPTjsxRkJGIDAzMDA7Ozs7Tjs7Ozs7CisxRkNFO0dSRUVLIFBTSUxJIEFORCBPWElBO1NrOzA7T047MUZCRiAwMzAxOzs7O047Ozs7OworMUZDRjtHUkVFSyBQU0lMSSBBTkQgUEVSSVNQT01FTkk7U2s7MDtPTjsxRkJGIDAzNDI7Ozs7Tjs7Ozs7CisxRkQwO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggVlJBQ0hZO0xsOzA7TDswM0I5IDAzMDY7Ozs7Tjs7OzFGRDg7OzFGRDgKKzFGRDE7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBNQUNST047TGw7MDtMOzAzQjkgMDMwNDs7OztOOzs7MUZEOTs7MUZEOQorMUZEMjtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERJQUxZVElLQSBBTkQgVkFSSUE7TGw7MDtMOzAzQ0EgMDMwMDs7OztOOzs7OzsKKzFGRDM7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBESUFMWVRJS0EgQU5EIE9YSUE7TGw7MDtMOzAzOTA7Ozs7Tjs7Ozs7CisxRkQ2O0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggUEVSSVNQT01FTkk7TGw7MDtMOzAzQjkgMDM0Mjs7OztOOzs7OzsKKzFGRDc7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBESUFMWVRJS0EgQU5EIFBFUklTUE9NRU5JO0xsOzA7TDswM0NBIDAzNDI7Ozs7Tjs7Ozs7CisxRkQ4O0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBWUkFDSFk7THU7MDtMOzAzOTkgMDMwNjs7OztOOzs7OzFGRDA7CisxRkQ5O0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBNQUNST047THU7MDtMOzAzOTkgMDMwNDs7OztOOzs7OzFGRDE7CisxRkRBO0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBWQVJJQTtMdTswO0w7MDM5OSAwMzAwOzs7O047Ozs7MUY3NjsKKzFGREI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIE9YSUE7THU7MDtMOzAzOEE7Ozs7Tjs7OzsxRjc3OworMUZERDtHUkVFSyBEQVNJQSBBTkQgVkFSSUE7U2s7MDtPTjsxRkZFIDAzMDA7Ozs7Tjs7Ozs7CisxRkRFO0dSRUVLIERBU0lBIEFORCBPWElBO1NrOzA7T047MUZGRSAwMzAxOzs7O047Ozs7OworMUZERjtHUkVFSyBEQVNJQSBBTkQgUEVSSVNQT01FTkk7U2s7MDtPTjsxRkZFIDAzNDI7Ozs7Tjs7Ozs7CisxRkUwO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggVlJBQ0hZO0xsOzA7TDswM0M1IDAzMDY7Ozs7Tjs7OzFGRTg7OzFGRTgKKzFGRTE7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBNQUNST047TGw7MDtMOzAzQzUgMDMwNDs7OztOOzs7MUZFOTs7MUZFOQorMUZFMjtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIERJQUxZVElLQSBBTkQgVkFSSUE7TGw7MDtMOzAzQ0IgMDMwMDs7OztOOzs7OzsKKzFGRTM7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBESUFMWVRJS0EgQU5EIE9YSUE7TGw7MDtMOzAzQjA7Ozs7Tjs7Ozs7CisxRkU0O0dSRUVLIFNNQUxMIExFVFRFUiBSSE8gV0lUSCBQU0lMSTtMbDswO0w7MDNDMSAwMzEzOzs7O047Ozs7OworMUZFNTtHUkVFSyBTTUFMTCBMRVRURVIgUkhPIFdJVEggREFTSUE7TGw7MDtMOzAzQzEgMDMxNDs7OztOOzs7MUZFQzs7MUZFQworMUZFNjtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIFBFUklTUE9NRU5JO0xsOzA7TDswM0M1IDAzNDI7Ozs7Tjs7Ozs7CisxRkU3O0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggRElBTFlUSUtBIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MDNDQiAwMzQyOzs7O047Ozs7OworMUZFODtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIFdJVEggVlJBQ0hZO0x1OzA7TDswM0E1IDAzMDY7Ozs7Tjs7OzsxRkUwOworMUZFOTtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIFdJVEggTUFDUk9OO0x1OzA7TDswM0E1IDAzMDQ7Ozs7Tjs7OzsxRkUxOworMUZFQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIFdJVEggVkFSSUE7THU7MDtMOzAzQTUgMDMwMDs7OztOOzs7OzFGN0E7CisxRkVCO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gV0lUSCBPWElBO0x1OzA7TDswMzhFOzs7O047Ozs7MUY3QjsKKzFGRUM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgUkhPIFdJVEggREFTSUE7THU7MDtMOzAzQTEgMDMxNDs7OztOOzs7OzFGRTU7CisxRkVEO0dSRUVLIERJQUxZVElLQSBBTkQgVkFSSUE7U2s7MDtPTjswMEE4IDAzMDA7Ozs7Tjs7Ozs7CisxRkVFO0dSRUVLIERJQUxZVElLQSBBTkQgT1hJQTtTazswO09OOzAzODU7Ozs7Tjs7Ozs7CisxRkVGO0dSRUVLIFZBUklBO1NrOzA7T047MDA2MDs7OztOOzs7OzsKKzFGRjI7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGN0MgMDM0NTs7OztOOzs7OzsKKzFGRjM7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggWVBPR0VHUkFNTUVOSTtMbDswO0w7MDNDOSAwMzQ1Ozs7O047OzsxRkZDOzsxRkZDCisxRkY0O0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzAzQ0UgMDM0NTs7OztOOzs7OzsKKzFGRjY7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUEVSSVNQT01FTkk7TGw7MDtMOzAzQzkgMDM0Mjs7OztOOzs7OzsKKzFGRjc7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGRjYgMDM0NTs7OztOOzs7OzsKKzFGRjg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTiBXSVRIIFZBUklBO0x1OzA7TDswMzlGIDAzMDA7Ozs7Tjs7OzsxRjc4OworMUZGOTtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OIFdJVEggT1hJQTtMdTswO0w7MDM4Qzs7OztOOzs7OzFGNzk7CisxRkZBO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggVkFSSUE7THU7MDtMOzAzQTkgMDMwMDs7OztOOzs7OzFGN0M7CisxRkZCO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggT1hJQTtMdTswO0w7MDM4Rjs7OztOOzs7OzFGN0Q7CisxRkZDO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzAzQTkgMDM0NTs7OztOOzs7OzFGRjM7CisxRkZEO0dSRUVLIE9YSUE7U2s7MDtPTjswMEI0Ozs7O047Ozs7OworMUZGRTtHUkVFSyBEQVNJQTtTazswO09OOzxjb21wYXQ+IDAwMjAgMDMxNDs7OztOOzs7OzsKKzIwMDA7RU4gUVVBRDtaczswO1dTOzIwMDI7Ozs7Tjs7Ozs7CisyMDAxO0VNIFFVQUQ7WnM7MDtXUzsyMDAzOzs7O047Ozs7OworMjAwMjtFTiBTUEFDRTtaczswO1dTOzxjb21wYXQ+IDAwMjA7Ozs7Tjs7Ozs7CisyMDAzO0VNIFNQQUNFO1pzOzA7V1M7PGNvbXBhdD4gMDAyMDs7OztOOzs7OzsKKzIwMDQ7VEhSRUUtUEVSLUVNIFNQQUNFO1pzOzA7V1M7PGNvbXBhdD4gMDAyMDs7OztOOzs7OzsKKzIwMDU7Rk9VUi1QRVItRU0gU1BBQ0U7WnM7MDtXUzs8Y29tcGF0PiAwMDIwOzs7O047Ozs7OworMjAwNjtTSVgtUEVSLUVNIFNQQUNFO1pzOzA7V1M7PGNvbXBhdD4gMDAyMDs7OztOOzs7OzsKKzIwMDc7RklHVVJFIFNQQUNFO1pzOzA7V1M7PG5vQnJlYWs+IDAwMjA7Ozs7Tjs7Ozs7CisyMDA4O1BVTkNUVUFUSU9OIFNQQUNFO1pzOzA7V1M7PGNvbXBhdD4gMDAyMDs7OztOOzs7OzsKKzIwMDk7VEhJTiBTUEFDRTtaczswO1dTOzxjb21wYXQ+IDAwMjA7Ozs7Tjs7Ozs7CisyMDBBO0hBSVIgU1BBQ0U7WnM7MDtXUzs8Y29tcGF0PiAwMDIwOzs7O047Ozs7OworMjAwQjtaRVJPIFdJRFRIIFNQQUNFO1pzOzA7Qk47Ozs7O047Ozs7OworMjAwQztaRVJPIFdJRFRIIE5PTi1KT0lORVI7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisyMDBEO1pFUk8gV0lEVEggSk9JTkVSO0NmOzA7Qk47Ozs7O047Ozs7OworMjAwRTtMRUZULVRPLVJJR0hUIE1BUks7Q2Y7MDtMOzs7OztOOzs7OzsKKzIwMEY7UklHSFQtVE8tTEVGVCBNQVJLO0NmOzA7Ujs7Ozs7Tjs7Ozs7CisyMDEwO0hZUEhFTjtQZDswO09OOzs7OztOOzs7OzsKKzIwMTE7Tk9OLUJSRUFLSU5HIEhZUEhFTjtQZDswO09OOzxub0JyZWFrPiAyMDEwOzs7O047Ozs7OworMjAxMjtGSUdVUkUgREFTSDtQZDswO09OOzs7OztOOzs7OzsKKzIwMTM7RU4gREFTSDtQZDswO09OOzs7OztOOzs7OzsKKzIwMTQ7RU0gREFTSDtQZDswO09OOzs7OztOOzs7OzsKKzIwMTU7SE9SSVpPTlRBTCBCQVI7UGQ7MDtPTjs7Ozs7TjtRVU9UQVRJT04gREFTSDs7OzsKKzIwMTY7RE9VQkxFIFZFUlRJQ0FMIExJTkU7UG87MDtPTjs7Ozs7TjtET1VCTEUgVkVSVElDQUwgQkFSOzs7OworMjAxNztET1VCTEUgTE9XIExJTkU7UG87MDtPTjs8Y29tcGF0PiAwMDIwIDAzMzM7Ozs7TjtTUEFDSU5HIERPVUJMRSBVTkRFUlNDT1JFOzs7OworMjAxODtMRUZUIFNJTkdMRSBRVU9UQVRJT04gTUFSSztQaTswO09OOzs7OztOO1NJTkdMRSBUVVJORUQgQ09NTUEgUVVPVEFUSU9OIE1BUks7Ozs7CisyMDE5O1JJR0hUIFNJTkdMRSBRVU9UQVRJT04gTUFSSztQZjswO09OOzs7OztOO1NJTkdMRSBDT01NQSBRVU9UQVRJT04gTUFSSzs7OzsKKzIwMUE7U0lOR0xFIExPVy05IFFVT1RBVElPTiBNQVJLO1BzOzA7T047Ozs7O047TE9XIFNJTkdMRSBDT01NQSBRVU9UQVRJT04gTUFSSzs7OzsKKzIwMUI7U0lOR0xFIEhJR0gtUkVWRVJTRUQtOSBRVU9UQVRJT04gTUFSSztQaTswO09OOzs7OztOO1NJTkdMRSBSRVZFUlNFRCBDT01NQSBRVU9UQVRJT04gTUFSSzs7OzsKKzIwMUM7TEVGVCBET1VCTEUgUVVPVEFUSU9OIE1BUks7UGk7MDtPTjs7Ozs7TjtET1VCTEUgVFVSTkVEIENPTU1BIFFVT1RBVElPTiBNQVJLOzs7OworMjAxRDtSSUdIVCBET1VCTEUgUVVPVEFUSU9OIE1BUks7UGY7MDtPTjs7Ozs7TjtET1VCTEUgQ09NTUEgUVVPVEFUSU9OIE1BUks7Ozs7CisyMDFFO0RPVUJMRSBMT1ctOSBRVU9UQVRJT04gTUFSSztQczswO09OOzs7OztOO0xPVyBET1VCTEUgQ09NTUEgUVVPVEFUSU9OIE1BUks7Ozs7CisyMDFGO0RPVUJMRSBISUdILVJFVkVSU0VELTkgUVVPVEFUSU9OIE1BUks7UGk7MDtPTjs7Ozs7TjtET1VCTEUgUkVWRVJTRUQgQ09NTUEgUVVPVEFUSU9OIE1BUks7Ozs7CisyMDIwO0RBR0dFUjtQbzswO09OOzs7OztOOzs7OzsKKzIwMjE7RE9VQkxFIERBR0dFUjtQbzswO09OOzs7OztOOzs7OzsKKzIwMjI7QlVMTEVUO1BvOzA7T047Ozs7O047Ozs7OworMjAyMztUUklBTkdVTEFSIEJVTExFVDtQbzswO09OOzs7OztOOzs7OzsKKzIwMjQ7T05FIERPVCBMRUFERVI7UG87MDtPTjs8Y29tcGF0PiAwMDJFOzs7O047Ozs7OworMjAyNTtUV08gRE9UIExFQURFUjtQbzswO09OOzxjb21wYXQ+IDAwMkUgMDAyRTs7OztOOzs7OzsKKzIwMjY7SE9SSVpPTlRBTCBFTExJUFNJUztQbzswO09OOzxjb21wYXQ+IDAwMkUgMDAyRSAwMDJFOzs7O047Ozs7OworMjAyNztIWVBIRU5BVElPTiBQT0lOVDtQbzswO09OOzs7OztOOzs7OzsKKzIwMjg7TElORSBTRVBBUkFUT1I7Wmw7MDtXUzs7Ozs7Tjs7Ozs7CisyMDI5O1BBUkFHUkFQSCBTRVBBUkFUT1I7WnA7MDtCOzs7OztOOzs7OzsKKzIwMkE7TEVGVC1UTy1SSUdIVCBFTUJFRERJTkc7Q2Y7MDtMUkU7Ozs7O047Ozs7OworMjAyQjtSSUdIVC1UTy1MRUZUIEVNQkVERElORztDZjswO1JMRTs7Ozs7Tjs7Ozs7CisyMDJDO1BPUCBESVJFQ1RJT05BTCBGT1JNQVRUSU5HO0NmOzA7UERGOzs7OztOOzs7OzsKKzIwMkQ7TEVGVC1UTy1SSUdIVCBPVkVSUklERTtDZjswO0xSTzs7Ozs7Tjs7Ozs7CisyMDJFO1JJR0hULVRPLUxFRlQgT1ZFUlJJREU7Q2Y7MDtSTE87Ozs7O047Ozs7OworMjAyRjtOQVJST1cgTk8tQlJFQUsgU1BBQ0U7WnM7MDtXUzs8bm9CcmVhaz4gMDAyMDs7OztOOzs7OzsKKzIwMzA7UEVSIE1JTExFIFNJR047UG87MDtFVDs7Ozs7Tjs7Ozs7CisyMDMxO1BFUiBURU4gVEhPVVNBTkQgU0lHTjtQbzswO0VUOzs7OztOOzs7OzsKKzIwMzI7UFJJTUU7UG87MDtFVDs7Ozs7Tjs7Ozs7CisyMDMzO0RPVUJMRSBQUklNRTtQbzswO0VUOzxjb21wYXQ+IDIwMzIgMjAzMjs7OztOOzs7OzsKKzIwMzQ7VFJJUExFIFBSSU1FO1BvOzA7RVQ7PGNvbXBhdD4gMjAzMiAyMDMyIDIwMzI7Ozs7Tjs7Ozs7CisyMDM1O1JFVkVSU0VEIFBSSU1FO1BvOzA7T047Ozs7O047Ozs7OworMjAzNjtSRVZFUlNFRCBET1VCTEUgUFJJTUU7UG87MDtPTjs8Y29tcGF0PiAyMDM1IDIwMzU7Ozs7Tjs7Ozs7CisyMDM3O1JFVkVSU0VEIFRSSVBMRSBQUklNRTtQbzswO09OOzxjb21wYXQ+IDIwMzUgMjAzNSAyMDM1Ozs7O047Ozs7OworMjAzODtDQVJFVDtQbzswO09OOzs7OztOOzs7OzsKKzIwMzk7U0lOR0xFIExFRlQtUE9JTlRJTkcgQU5HTEUgUVVPVEFUSU9OIE1BUks7UGk7MDtPTjs7Ozs7WTtMRUZUIFBPSU5USU5HIFNJTkdMRSBHVUlMTEVNRVQ7Ozs7CisyMDNBO1NJTkdMRSBSSUdIVC1QT0lOVElORyBBTkdMRSBRVU9UQVRJT04gTUFSSztQZjswO09OOzs7OztZO1JJR0hUIFBPSU5USU5HIFNJTkdMRSBHVUlMTEVNRVQ7Ozs7CisyMDNCO1JFRkVSRU5DRSBNQVJLO1BvOzA7T047Ozs7O047Ozs7OworMjAzQztET1VCTEUgRVhDTEFNQVRJT04gTUFSSztQbzswO09OOzxjb21wYXQ+IDAwMjEgMDAyMTs7OztOOzs7OzsKKzIwM0Q7SU5URVJST0JBTkc7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDNFO09WRVJMSU5FO1BvOzA7T047PGNvbXBhdD4gMDAyMCAwMzA1Ozs7O047U1BBQ0lORyBPVkVSU0NPUkU7Ozs7CisyMDNGO1VOREVSVElFO1BjOzA7T047Ozs7O047O0Vub3Rpa29uOzs7CisyMDQwO0NIQVJBQ1RFUiBUSUU7UGM7MDtPTjs7Ozs7Tjs7Ozs7CisyMDQxO0NBUkVUIElOU0VSVElPTiBQT0lOVDtQbzswO09OOzs7OztOOzs7OzsKKzIwNDI7QVNURVJJU007UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDQzO0hZUEhFTiBCVUxMRVQ7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDQ0O0ZSQUNUSU9OIFNMQVNIO1NtOzA7T047Ozs7O047Ozs7OworMjA0NTtMRUZUIFNRVUFSRSBCUkFDS0VUIFdJVEggUVVJTEw7UHM7MDtPTjs7Ozs7WTs7Ozs7CisyMDQ2O1JJR0hUIFNRVUFSRSBCUkFDS0VUIFdJVEggUVVJTEw7UGU7MDtPTjs7Ozs7WTs7Ozs7CisyMDQ4O1FVRVNUSU9OIEVYQ0xBTUFUSU9OIE1BUks7UG87MDtPTjs8Y29tcGF0PiAwMDNGIDAwMjE7Ozs7Tjs7Ozs7CisyMDQ5O0VYQ0xBTUFUSU9OIFFVRVNUSU9OIE1BUks7UG87MDtPTjs8Y29tcGF0PiAwMDIxIDAwM0Y7Ozs7Tjs7Ozs7CisyMDRBO1RJUk9OSUFOIFNJR04gRVQ7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDRCO1JFVkVSU0VEIFBJTENST1cgU0lHTjtQbzswO09OOzs7OztOOzs7OzsKKzIwNEM7QkxBQ0sgTEVGVFdBUkRTIEJVTExFVDtQbzswO09OOzs7OztOOzs7OzsKKzIwNEQ7QkxBQ0sgUklHSFRXQVJEUyBCVUxMRVQ7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDZBO0lOSElCSVQgU1lNTUVUUklDIFNXQVBQSU5HO0NmOzA7Qk47Ozs7O047Ozs7OworMjA2QjtBQ1RJVkFURSBTWU1NRVRSSUMgU1dBUFBJTkc7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisyMDZDO0lOSElCSVQgQVJBQklDIEZPUk0gU0hBUElORztDZjswO0JOOzs7OztOOzs7OzsKKzIwNkQ7QUNUSVZBVEUgQVJBQklDIEZPUk0gU0hBUElORztDZjswO0JOOzs7OztOOzs7OzsKKzIwNkU7TkFUSU9OQUwgRElHSVQgU0hBUEVTO0NmOzA7Qk47Ozs7O047Ozs7OworMjA2RjtOT01JTkFMIERJR0lUIFNIQVBFUztDZjswO0JOOzs7OztOOzs7OzsKKzIwNzA7U1VQRVJTQ1JJUFQgWkVSTztObzswO0VOOzxzdXBlcj4gMDAzMDswOzA7MDtOO1NVUEVSU0NSSVBUIERJR0lUIFpFUk87Ozs7CisyMDc0O1NVUEVSU0NSSVBUIEZPVVI7Tm87MDtFTjs8c3VwZXI+IDAwMzQ7NDs0OzQ7TjtTVVBFUlNDUklQVCBESUdJVCBGT1VSOzs7OworMjA3NTtTVVBFUlNDUklQVCBGSVZFO05vOzA7RU47PHN1cGVyPiAwMDM1OzU7NTs1O047U1VQRVJTQ1JJUFQgRElHSVQgRklWRTs7OzsKKzIwNzY7U1VQRVJTQ1JJUFQgU0lYO05vOzA7RU47PHN1cGVyPiAwMDM2OzY7Njs2O047U1VQRVJTQ1JJUFQgRElHSVQgU0lYOzs7OworMjA3NztTVVBFUlNDUklQVCBTRVZFTjtObzswO0VOOzxzdXBlcj4gMDAzNzs3Ozc7NztOO1NVUEVSU0NSSVBUIERJR0lUIFNFVkVOOzs7OworMjA3ODtTVVBFUlNDUklQVCBFSUdIVDtObzswO0VOOzxzdXBlcj4gMDAzODs4Ozg7ODtOO1NVUEVSU0NSSVBUIERJR0lUIEVJR0hUOzs7OworMjA3OTtTVVBFUlNDUklQVCBOSU5FO05vOzA7RU47PHN1cGVyPiAwMDM5Ozk7OTs5O047U1VQRVJTQ1JJUFQgRElHSVQgTklORTs7OzsKKzIwN0E7U1VQRVJTQ1JJUFQgUExVUyBTSUdOO1NtOzA7RVQ7PHN1cGVyPiAwMDJCOzs7O047Ozs7OworMjA3QjtTVVBFUlNDUklQVCBNSU5VUztTbTswO0VUOzxzdXBlcj4gMjIxMjs7OztOO1NVUEVSU0NSSVBUIEhZUEhFTi1NSU5VUzs7OzsKKzIwN0M7U1VQRVJTQ1JJUFQgRVFVQUxTIFNJR047U207MDtPTjs8c3VwZXI+IDAwM0Q7Ozs7Tjs7Ozs7CisyMDdEO1NVUEVSU0NSSVBUIExFRlQgUEFSRU5USEVTSVM7UHM7MDtPTjs8c3VwZXI+IDAwMjg7Ozs7WTtTVVBFUlNDUklQVCBPUEVOSU5HIFBBUkVOVEhFU0lTOzs7OworMjA3RTtTVVBFUlNDUklQVCBSSUdIVCBQQVJFTlRIRVNJUztQZTswO09OOzxzdXBlcj4gMDAyOTs7OztZO1NVUEVSU0NSSVBUIENMT1NJTkcgUEFSRU5USEVTSVM7Ozs7CisyMDdGO1NVUEVSU0NSSVBUIExBVElOIFNNQUxMIExFVFRFUiBOO0xsOzA7TDs8c3VwZXI+IDAwNkU7Ozs7Tjs7Ozs7CisyMDgwO1NVQlNDUklQVCBaRVJPO05vOzA7RU47PHN1Yj4gMDAzMDswOzA7MDtOO1NVQlNDUklQVCBESUdJVCBaRVJPOzs7OworMjA4MTtTVUJTQ1JJUFQgT05FO05vOzA7RU47PHN1Yj4gMDAzMTsxOzE7MTtOO1NVQlNDUklQVCBESUdJVCBPTkU7Ozs7CisyMDgyO1NVQlNDUklQVCBUV087Tm87MDtFTjs8c3ViPiAwMDMyOzI7MjsyO047U1VCU0NSSVBUIERJR0lUIFRXTzs7OzsKKzIwODM7U1VCU0NSSVBUIFRIUkVFO05vOzA7RU47PHN1Yj4gMDAzMzszOzM7MztOO1NVQlNDUklQVCBESUdJVCBUSFJFRTs7OzsKKzIwODQ7U1VCU0NSSVBUIEZPVVI7Tm87MDtFTjs8c3ViPiAwMDM0OzQ7NDs0O047U1VCU0NSSVBUIERJR0lUIEZPVVI7Ozs7CisyMDg1O1NVQlNDUklQVCBGSVZFO05vOzA7RU47PHN1Yj4gMDAzNTs1OzU7NTtOO1NVQlNDUklQVCBESUdJVCBGSVZFOzs7OworMjA4NjtTVUJTQ1JJUFQgU0lYO05vOzA7RU47PHN1Yj4gMDAzNjs2OzY7NjtOO1NVQlNDUklQVCBESUdJVCBTSVg7Ozs7CisyMDg3O1NVQlNDUklQVCBTRVZFTjtObzswO0VOOzxzdWI+IDAwMzc7Nzs3Ozc7TjtTVUJTQ1JJUFQgRElHSVQgU0VWRU47Ozs7CisyMDg4O1NVQlNDUklQVCBFSUdIVDtObzswO0VOOzxzdWI+IDAwMzg7ODs4Ozg7TjtTVUJTQ1JJUFQgRElHSVQgRUlHSFQ7Ozs7CisyMDg5O1NVQlNDUklQVCBOSU5FO05vOzA7RU47PHN1Yj4gMDAzOTs5Ozk7OTtOO1NVQlNDUklQVCBESUdJVCBOSU5FOzs7OworMjA4QTtTVUJTQ1JJUFQgUExVUyBTSUdOO1NtOzA7RVQ7PHN1Yj4gMDAyQjs7OztOOzs7OzsKKzIwOEI7U1VCU0NSSVBUIE1JTlVTO1NtOzA7RVQ7PHN1Yj4gMjIxMjs7OztOO1NVQlNDUklQVCBIWVBIRU4tTUlOVVM7Ozs7CisyMDhDO1NVQlNDUklQVCBFUVVBTFMgU0lHTjtTbTswO09OOzxzdWI+IDAwM0Q7Ozs7Tjs7Ozs7CisyMDhEO1NVQlNDUklQVCBMRUZUIFBBUkVOVEhFU0lTO1BzOzA7T047PHN1Yj4gMDAyODs7OztZO1NVQlNDUklQVCBPUEVOSU5HIFBBUkVOVEhFU0lTOzs7OworMjA4RTtTVUJTQ1JJUFQgUklHSFQgUEFSRU5USEVTSVM7UGU7MDtPTjs8c3ViPiAwMDI5Ozs7O1k7U1VCU0NSSVBUIENMT1NJTkcgUEFSRU5USEVTSVM7Ozs7CisyMEEwO0VVUk8tQ1VSUkVOQ1kgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQTE7Q09MT04gU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQTI7Q1JVWkVJUk8gU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQTM7RlJFTkNIIEZSQU5DIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEE0O0xJUkEgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQTU7TUlMTCBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBBNjtOQUlSQSBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBBNztQRVNFVEEgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQTg7UlVQRUUgU0lHTjtTYzswO0VUOzxjb21wYXQ+IDAwNTIgMDA3Mzs7OztOOzs7OzsKKzIwQTk7V09OIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEFBO05FVyBTSEVRRUwgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQUI7RE9ORyBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBBQztFVVJPIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEFEO0tJUCBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBBRTtUVUdSSUsgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQUY7RFJBQ0hNQSBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBEMDtDT01CSU5JTkcgTEVGVCBIQVJQT09OIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgTEVGVCBIQVJQT09OIEFCT1ZFOzs7OworMjBEMTtDT01CSU5JTkcgUklHSFQgSEFSUE9PTiBBQk9WRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFJJR0hUIEhBUlBPT04gQUJPVkU7Ozs7CisyMEQyO0NPTUJJTklORyBMT05HIFZFUlRJQ0FMIExJTkUgT1ZFUkxBWTtNbjsxO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBMT05HIFZFUlRJQ0FMIEJBUiBPVkVSTEFZOzs7OworMjBEMztDT01CSU5JTkcgU0hPUlQgVkVSVElDQUwgTElORSBPVkVSTEFZO01uOzE7TlNNOzs7OztOO05PTi1TUEFDSU5HIFNIT1JUIFZFUlRJQ0FMIEJBUiBPVkVSTEFZOzs7OworMjBENDtDT01CSU5JTkcgQU5USUNMT0NLV0lTRSBBUlJPVyBBQk9WRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIEFOVElDTE9DS1dJU0UgQVJST1cgQUJPVkU7Ozs7CisyMEQ1O0NPTUJJTklORyBDTE9DS1dJU0UgQVJST1cgQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBDTE9DS1dJU0UgQVJST1cgQUJPVkU7Ozs7CisyMEQ2O0NPTUJJTklORyBMRUZUIEFSUk9XIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgTEVGVCBBUlJPVyBBQk9WRTs7OzsKKzIwRDc7Q09NQklOSU5HIFJJR0hUIEFSUk9XIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgUklHSFQgQVJST1cgQUJPVkU7Ozs7CisyMEQ4O0NPTUJJTklORyBSSU5HIE9WRVJMQVk7TW47MTtOU007Ozs7O047Tk9OLVNQQUNJTkcgUklORyBPVkVSTEFZOzs7OworMjBEOTtDT01CSU5JTkcgQ0xPQ0tXSVNFIFJJTkcgT1ZFUkxBWTtNbjsxO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBDTE9DS1dJU0UgUklORyBPVkVSTEFZOzs7OworMjBEQTtDT01CSU5JTkcgQU5USUNMT0NLV0lTRSBSSU5HIE9WRVJMQVk7TW47MTtOU007Ozs7O047Tk9OLVNQQUNJTkcgQU5USUNMT0NLV0lTRSBSSU5HIE9WRVJMQVk7Ozs7CisyMERCO0NPTUJJTklORyBUSFJFRSBET1RTIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgVEhSRUUgRE9UUyBBQk9WRTs7OzsKKzIwREM7Q09NQklOSU5HIEZPVVIgRE9UUyBBQk9WRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIEZPVVIgRE9UUyBBQk9WRTs7OzsKKzIwREQ7Q09NQklOSU5HIEVOQ0xPU0lORyBDSVJDTEU7TWU7MDtOU007Ozs7O047RU5DTE9TSU5HIENJUkNMRTs7OzsKKzIwREU7Q09NQklOSU5HIEVOQ0xPU0lORyBTUVVBUkU7TWU7MDtOU007Ozs7O047RU5DTE9TSU5HIFNRVUFSRTs7OzsKKzIwREY7Q09NQklOSU5HIEVOQ0xPU0lORyBESUFNT05EO01lOzA7TlNNOzs7OztOO0VOQ0xPU0lORyBESUFNT05EOzs7OworMjBFMDtDT01CSU5JTkcgRU5DTE9TSU5HIENJUkNMRSBCQUNLU0xBU0g7TWU7MDtOU007Ozs7O047RU5DTE9TSU5HIENJUkNMRSBTTEFTSDs7OzsKKzIwRTE7Q09NQklOSU5HIExFRlQgUklHSFQgQVJST1cgQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBMRUZUIFJJR0hUIEFSUk9XIEFCT1ZFOzs7OworMjBFMjtDT01CSU5JTkcgRU5DTE9TSU5HIFNDUkVFTjtNZTswO05TTTs7Ozs7Tjs7Ozs7CisyMEUzO0NPTUJJTklORyBFTkNMT1NJTkcgS0VZQ0FQO01lOzA7TlNNOzs7OztOOzs7OzsKKzIxMDA7QUNDT1VOVCBPRjtTbzswO09OOzxjb21wYXQ+IDAwNjEgMDAyRiAwMDYzOzs7O047Ozs7OworMjEwMTtBRERSRVNTRUQgVE8gVEhFIFNVQkpFQ1Q7U287MDtPTjs8Y29tcGF0PiAwMDYxIDAwMkYgMDA3Mzs7OztOOzs7OzsKKzIxMDI7RE9VQkxFLVNUUlVDSyBDQVBJVEFMIEM7THU7MDtMOzxmb250PiAwMDQzOzs7O047RE9VQkxFLVNUUlVDSyBDOzs7OworMjEwMztERUdSRUUgQ0VMU0lVUztTbzswO09OOzxjb21wYXQ+IDAwQjAgMDA0Mzs7OztOO0RFR1JFRVMgQ0VOVElHUkFERTs7OzsKKzIxMDQ7Q0VOVFJFIExJTkUgU1lNQk9MO1NvOzA7T047Ozs7O047QyBMIFNZTUJPTDs7OzsKKzIxMDU7Q0FSRSBPRjtTbzswO09OOzxjb21wYXQ+IDAwNjMgMDAyRiAwMDZGOzs7O047Ozs7OworMjEwNjtDQURBIFVOQTtTbzswO09OOzxjb21wYXQ+IDAwNjMgMDAyRiAwMDc1Ozs7O047Ozs7OworMjEwNztFVUxFUiBDT05TVEFOVDtMdTswO0w7PGNvbXBhdD4gMDE5MDs7OztOO0VVTEVSUzs7OzsKKzIxMDg7U0NSVVBMRTtTbzswO09OOzs7OztOOzs7OzsKKzIxMDk7REVHUkVFIEZBSFJFTkhFSVQ7U287MDtPTjs8Y29tcGF0PiAwMEIwIDAwNDY7Ozs7TjtERUdSRUVTIEZBSFJFTkhFSVQ7Ozs7CisyMTBBO1NDUklQVCBTTUFMTCBHO0xsOzA7TDs8Zm9udD4gMDA2Nzs7OztOOzs7OzsKKzIxMEI7U0NSSVBUIENBUElUQUwgSDtMdTswO0w7PGZvbnQ+IDAwNDg7Ozs7TjtTQ1JJUFQgSDs7OzsKKzIxMEM7QkxBQ0stTEVUVEVSIENBUElUQUwgSDtMdTswO0w7PGZvbnQ+IDAwNDg7Ozs7TjtCTEFDSy1MRVRURVIgSDs7OzsKKzIxMEQ7RE9VQkxFLVNUUlVDSyBDQVBJVEFMIEg7THU7MDtMOzxmb250PiAwMDQ4Ozs7O047RE9VQkxFLVNUUlVDSyBIOzs7OworMjEwRTtQTEFOQ0sgQ09OU1RBTlQ7TGw7MDtMOzxmb250PiAwMDY4Ozs7O047Ozs7OworMjEwRjtQTEFOQ0sgQ09OU1RBTlQgT1ZFUiBUV08gUEk7TGw7MDtMOzxmb250PiAwMTI3Ozs7O047UExBTkNLIENPTlNUQU5UIE9WRVIgMiBQSTs7OzsKKzIxMTA7U0NSSVBUIENBUElUQUwgSTtMdTswO0w7PGZvbnQ+IDAwNDk7Ozs7TjtTQ1JJUFQgSTs7OzsKKzIxMTE7QkxBQ0stTEVUVEVSIENBUElUQUwgSTtMdTswO0w7PGZvbnQ+IDAwNDk7Ozs7TjtCTEFDSy1MRVRURVIgSTs7OzsKKzIxMTI7U0NSSVBUIENBUElUQUwgTDtMdTswO0w7PGZvbnQ+IDAwNEM7Ozs7TjtTQ1JJUFQgTDs7OzsKKzIxMTM7U0NSSVBUIFNNQUxMIEw7TGw7MDtMOzxmb250PiAwMDZDOzs7O047Ozs7OworMjExNDtMIEIgQkFSIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIxMTU7RE9VQkxFLVNUUlVDSyBDQVBJVEFMIE47THU7MDtMOzxmb250PiAwMDRFOzs7O047RE9VQkxFLVNUUlVDSyBOOzs7OworMjExNjtOVU1FUk8gU0lHTjtTbzswO09OOzxjb21wYXQ+IDAwNEUgMDA2Rjs7OztOO05VTUVSTzs7OzsKKzIxMTc7U09VTkQgUkVDT1JESU5HIENPUFlSSUdIVDtTbzswO09OOzs7OztOOzs7OzsKKzIxMTg7U0NSSVBUIENBUElUQUwgUDtTbzswO09OOzs7OztOO1NDUklQVCBQOzs7OworMjExOTtET1VCTEUtU1RSVUNLIENBUElUQUwgUDtMdTswO0w7PGZvbnQ+IDAwNTA7Ozs7TjtET1VCTEUtU1RSVUNLIFA7Ozs7CisyMTFBO0RPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBRO0x1OzA7TDs8Zm9udD4gMDA1MTs7OztOO0RPVUJMRS1TVFJVQ0sgUTs7OzsKKzIxMUI7U0NSSVBUIENBUElUQUwgUjtMdTswO0w7PGZvbnQ+IDAwNTI7Ozs7TjtTQ1JJUFQgUjs7OzsKKzIxMUM7QkxBQ0stTEVUVEVSIENBUElUQUwgUjtMdTswO0w7PGZvbnQ+IDAwNTI7Ozs7TjtCTEFDSy1MRVRURVIgUjs7OzsKKzIxMUQ7RE9VQkxFLVNUUlVDSyBDQVBJVEFMIFI7THU7MDtMOzxmb250PiAwMDUyOzs7O047RE9VQkxFLVNUUlVDSyBSOzs7OworMjExRTtQUkVTQ1JJUFRJT04gVEFLRTtTbzswO09OOzs7OztOOzs7OzsKKzIxMUY7UkVTUE9OU0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMTIwO1NFUlZJQ0UgTUFSSztTbzswO09OOzxzdXBlcj4gMDA1MyAwMDREOzs7O047Ozs7OworMjEyMTtURUxFUEhPTkUgU0lHTjtTbzswO09OOzxjb21wYXQ+IDAwNTQgMDA0NSAwMDRDOzs7O047VCBFIEwgU1lNQk9MOzs7OworMjEyMjtUUkFERSBNQVJLIFNJR047U287MDtPTjs8c3VwZXI+IDAwNTQgMDA0RDs7OztOO1RSQURFTUFSSzs7OzsKKzIxMjM7VkVSU0lDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMTI0O0RPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBaO0x1OzA7TDs8Zm9udD4gMDA1QTs7OztOO0RPVUJMRS1TVFJVQ0sgWjs7OzsKKzIxMjU7T1VOQ0UgU0lHTjtTbzswO09OOzs7OztOO09VTkNFOzs7OworMjEyNjtPSE0gU0lHTjtMdTswO0w7MDNBOTs7OztOO09ITTs7OzAzQzk7CisyMTI3O0lOVkVSVEVEIE9ITSBTSUdOO1NvOzA7T047Ozs7O047TUhPOzs7OworMjEyODtCTEFDSy1MRVRURVIgQ0FQSVRBTCBaO0x1OzA7TDs8Zm9udD4gMDA1QTs7OztOO0JMQUNLLUxFVFRFUiBaOzs7OworMjEyOTtUVVJORUQgR1JFRUsgU01BTEwgTEVUVEVSIElPVEE7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMTJBO0tFTFZJTiBTSUdOO0x1OzA7TDswMDRCOzs7O047REVHUkVFUyBLRUxWSU47OzswMDZCOworMjEyQjtBTkdTVFJPTSBTSUdOO0x1OzA7TDswMEM1Ozs7O047QU5HU1RST00gVU5JVDs7OzAwRTU7CisyMTJDO1NDUklQVCBDQVBJVEFMIEI7THU7MDtMOzxmb250PiAwMDQyOzs7O047U0NSSVBUIEI7Ozs7CisyMTJEO0JMQUNLLUxFVFRFUiBDQVBJVEFMIEM7THU7MDtMOzxmb250PiAwMDQzOzs7O047QkxBQ0stTEVUVEVSIEM7Ozs7CisyMTJFO0VTVElNQVRFRCBTWU1CT0w7U287MDtFVDs7Ozs7Tjs7Ozs7CisyMTJGO1NDUklQVCBTTUFMTCBFO0xsOzA7TDs8Zm9udD4gMDA2NTs7OztOOzs7OzsKKzIxMzA7U0NSSVBUIENBUElUQUwgRTtMdTswO0w7PGZvbnQ+IDAwNDU7Ozs7TjtTQ1JJUFQgRTs7OzsKKzIxMzE7U0NSSVBUIENBUElUQUwgRjtMdTswO0w7PGZvbnQ+IDAwNDY7Ozs7TjtTQ1JJUFQgRjs7OzsKKzIxMzI7VFVSTkVEIENBUElUQUwgRjtTbzswO09OOzs7OztOO1RVUk5FRCBGOzs7OworMjEzMztTQ1JJUFQgQ0FQSVRBTCBNO0x1OzA7TDs8Zm9udD4gMDA0RDs7OztOO1NDUklQVCBNOzs7OworMjEzNDtTQ1JJUFQgU01BTEwgTztMbDswO0w7PGZvbnQ+IDAwNkY7Ozs7Tjs7Ozs7CisyMTM1O0FMRUYgU1lNQk9MO0xvOzA7TDs8Y29tcGF0PiAwNUQwOzs7O047RklSU1QgVFJBTlNGSU5JVEUgQ0FSRElOQUw7Ozs7CisyMTM2O0JFVCBTWU1CT0w7TG87MDtMOzxjb21wYXQ+IDA1RDE7Ozs7TjtTRUNPTkQgVFJBTlNGSU5JVEUgQ0FSRElOQUw7Ozs7CisyMTM3O0dJTUVMIFNZTUJPTDtMbzswO0w7PGNvbXBhdD4gMDVEMjs7OztOO1RISVJEIFRSQU5TRklOSVRFIENBUkRJTkFMOzs7OworMjEzODtEQUxFVCBTWU1CT0w7TG87MDtMOzxjb21wYXQ+IDA1RDM7Ozs7TjtGT1VSVEggVFJBTlNGSU5JVEUgQ0FSRElOQUw7Ozs7CisyMTM5O0lORk9STUFUSU9OIFNPVVJDRTtMbDswO0w7PGZvbnQ+IDAwNjk7Ozs7Tjs7Ozs7CisyMTNBO1JPVEFURUQgQ0FQSVRBTCBRO1NvOzA7T047Ozs7O047Ozs7OworMjE1MztWVUxHQVIgRlJBQ1RJT04gT05FIFRISVJEO05vOzA7T047PGZyYWN0aW9uPiAwMDMxIDIwNDQgMDAzMzs7OzEvMztOO0ZSQUNUSU9OIE9ORSBUSElSRDs7OzsKKzIxNTQ7VlVMR0FSIEZSQUNUSU9OIFRXTyBUSElSRFM7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzIgMjA0NCAwMDMzOzs7Mi8zO047RlJBQ1RJT04gVFdPIFRISVJEUzs7OzsKKzIxNTU7VlVMR0FSIEZSQUNUSU9OIE9ORSBGSUZUSDtObzswO09OOzxmcmFjdGlvbj4gMDAzMSAyMDQ0IDAwMzU7OzsxLzU7TjtGUkFDVElPTiBPTkUgRklGVEg7Ozs7CisyMTU2O1ZVTEdBUiBGUkFDVElPTiBUV08gRklGVEhTO05vOzA7T047PGZyYWN0aW9uPiAwMDMyIDIwNDQgMDAzNTs7OzIvNTtOO0ZSQUNUSU9OIFRXTyBGSUZUSFM7Ozs7CisyMTU3O1ZVTEdBUiBGUkFDVElPTiBUSFJFRSBGSUZUSFM7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzMgMjA0NCAwMDM1Ozs7My81O047RlJBQ1RJT04gVEhSRUUgRklGVEhTOzs7OworMjE1ODtWVUxHQVIgRlJBQ1RJT04gRk9VUiBGSUZUSFM7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzQgMjA0NCAwMDM1Ozs7NC81O047RlJBQ1RJT04gRk9VUiBGSUZUSFM7Ozs7CisyMTU5O1ZVTEdBUiBGUkFDVElPTiBPTkUgU0lYVEg7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzEgMjA0NCAwMDM2Ozs7MS82O047RlJBQ1RJT04gT05FIFNJWFRIOzs7OworMjE1QTtWVUxHQVIgRlJBQ1RJT04gRklWRSBTSVhUSFM7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzUgMjA0NCAwMDM2Ozs7NS82O047RlJBQ1RJT04gRklWRSBTSVhUSFM7Ozs7CisyMTVCO1ZVTEdBUiBGUkFDVElPTiBPTkUgRUlHSFRIO05vOzA7T047PGZyYWN0aW9uPiAwMDMxIDIwNDQgMDAzODs7OzEvODtOO0ZSQUNUSU9OIE9ORSBFSUdIVEg7Ozs7CisyMTVDO1ZVTEdBUiBGUkFDVElPTiBUSFJFRSBFSUdIVEhTO05vOzA7T047PGZyYWN0aW9uPiAwMDMzIDIwNDQgMDAzODs7OzMvODtOO0ZSQUNUSU9OIFRIUkVFIEVJR0hUSFM7Ozs7CisyMTVEO1ZVTEdBUiBGUkFDVElPTiBGSVZFIEVJR0hUSFM7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzUgMjA0NCAwMDM4Ozs7NS84O047RlJBQ1RJT04gRklWRSBFSUdIVEhTOzs7OworMjE1RTtWVUxHQVIgRlJBQ1RJT04gU0VWRU4gRUlHSFRIUztObzswO09OOzxmcmFjdGlvbj4gMDAzNyAyMDQ0IDAwMzg7Ozs3Lzg7TjtGUkFDVElPTiBTRVZFTiBFSUdIVEhTOzs7OworMjE1RjtGUkFDVElPTiBOVU1FUkFUT1IgT05FO05vOzA7T047PGZyYWN0aW9uPiAwMDMxIDIwNDQ7OzsxO047Ozs7OworMjE2MDtST01BTiBOVU1FUkFMIE9ORTtObDswO0w7PGNvbXBhdD4gMDA0OTs7OzE7Tjs7OzsyMTcwOworMjE2MTtST01BTiBOVU1FUkFMIFRXTztObDswO0w7PGNvbXBhdD4gMDA0OSAwMDQ5Ozs7MjtOOzs7OzIxNzE7CisyMTYyO1JPTUFOIE5VTUVSQUwgVEhSRUU7Tmw7MDtMOzxjb21wYXQ+IDAwNDkgMDA0OSAwMDQ5Ozs7MztOOzs7OzIxNzI7CisyMTYzO1JPTUFOIE5VTUVSQUwgRk9VUjtObDswO0w7PGNvbXBhdD4gMDA0OSAwMDU2Ozs7NDtOOzs7OzIxNzM7CisyMTY0O1JPTUFOIE5VTUVSQUwgRklWRTtObDswO0w7PGNvbXBhdD4gMDA1Njs7OzU7Tjs7OzsyMTc0OworMjE2NTtST01BTiBOVU1FUkFMIFNJWDtObDswO0w7PGNvbXBhdD4gMDA1NiAwMDQ5Ozs7NjtOOzs7OzIxNzU7CisyMTY2O1JPTUFOIE5VTUVSQUwgU0VWRU47Tmw7MDtMOzxjb21wYXQ+IDAwNTYgMDA0OSAwMDQ5Ozs7NztOOzs7OzIxNzY7CisyMTY3O1JPTUFOIE5VTUVSQUwgRUlHSFQ7Tmw7MDtMOzxjb21wYXQ+IDAwNTYgMDA0OSAwMDQ5IDAwNDk7Ozs4O047Ozs7MjE3NzsKKzIxNjg7Uk9NQU4gTlVNRVJBTCBOSU5FO05sOzA7TDs8Y29tcGF0PiAwMDQ5IDAwNTg7Ozs5O047Ozs7MjE3ODsKKzIxNjk7Uk9NQU4gTlVNRVJBTCBURU47Tmw7MDtMOzxjb21wYXQ+IDAwNTg7OzsxMDtOOzs7OzIxNzk7CisyMTZBO1JPTUFOIE5VTUVSQUwgRUxFVkVOO05sOzA7TDs8Y29tcGF0PiAwMDU4IDAwNDk7OzsxMTtOOzs7OzIxN0E7CisyMTZCO1JPTUFOIE5VTUVSQUwgVFdFTFZFO05sOzA7TDs8Y29tcGF0PiAwMDU4IDAwNDkgMDA0OTs7OzEyO047Ozs7MjE3QjsKKzIxNkM7Uk9NQU4gTlVNRVJBTCBGSUZUWTtObDswO0w7PGNvbXBhdD4gMDA0Qzs7OzUwO047Ozs7MjE3QzsKKzIxNkQ7Uk9NQU4gTlVNRVJBTCBPTkUgSFVORFJFRDtObDswO0w7PGNvbXBhdD4gMDA0Mzs7OzEwMDtOOzs7OzIxN0Q7CisyMTZFO1JPTUFOIE5VTUVSQUwgRklWRSBIVU5EUkVEO05sOzA7TDs8Y29tcGF0PiAwMDQ0Ozs7NTAwO047Ozs7MjE3RTsKKzIxNkY7Uk9NQU4gTlVNRVJBTCBPTkUgVEhPVVNBTkQ7Tmw7MDtMOzxjb21wYXQ+IDAwNEQ7OzsxMDAwO047Ozs7MjE3RjsKKzIxNzA7U01BTEwgUk9NQU4gTlVNRVJBTCBPTkU7Tmw7MDtMOzxjb21wYXQ+IDAwNjk7OzsxO047OzsyMTYwOzsyMTYwCisyMTcxO1NNQUxMIFJPTUFOIE5VTUVSQUwgVFdPO05sOzA7TDs8Y29tcGF0PiAwMDY5IDAwNjk7OzsyO047OzsyMTYxOzsyMTYxCisyMTcyO1NNQUxMIFJPTUFOIE5VTUVSQUwgVEhSRUU7Tmw7MDtMOzxjb21wYXQ+IDAwNjkgMDA2OSAwMDY5Ozs7MztOOzs7MjE2Mjs7MjE2MgorMjE3MztTTUFMTCBST01BTiBOVU1FUkFMIEZPVVI7Tmw7MDtMOzxjb21wYXQ+IDAwNjkgMDA3Njs7OzQ7Tjs7OzIxNjM7OzIxNjMKKzIxNzQ7U01BTEwgUk9NQU4gTlVNRVJBTCBGSVZFO05sOzA7TDs8Y29tcGF0PiAwMDc2Ozs7NTtOOzs7MjE2NDs7MjE2NAorMjE3NTtTTUFMTCBST01BTiBOVU1FUkFMIFNJWDtObDswO0w7PGNvbXBhdD4gMDA3NiAwMDY5Ozs7NjtOOzs7MjE2NTs7MjE2NQorMjE3NjtTTUFMTCBST01BTiBOVU1FUkFMIFNFVkVOO05sOzA7TDs8Y29tcGF0PiAwMDc2IDAwNjkgMDA2OTs7Ozc7Tjs7OzIxNjY7OzIxNjYKKzIxNzc7U01BTEwgUk9NQU4gTlVNRVJBTCBFSUdIVDtObDswO0w7PGNvbXBhdD4gMDA3NiAwMDY5IDAwNjkgMDA2OTs7Ozg7Tjs7OzIxNjc7OzIxNjcKKzIxNzg7U01BTEwgUk9NQU4gTlVNRVJBTCBOSU5FO05sOzA7TDs8Y29tcGF0PiAwMDY5IDAwNzg7Ozs5O047OzsyMTY4OzsyMTY4CisyMTc5O1NNQUxMIFJPTUFOIE5VTUVSQUwgVEVOO05sOzA7TDs8Y29tcGF0PiAwMDc4Ozs7MTA7Tjs7OzIxNjk7OzIxNjkKKzIxN0E7U01BTEwgUk9NQU4gTlVNRVJBTCBFTEVWRU47Tmw7MDtMOzxjb21wYXQ+IDAwNzggMDA2OTs7OzExO047OzsyMTZBOzsyMTZBCisyMTdCO1NNQUxMIFJPTUFOIE5VTUVSQUwgVFdFTFZFO05sOzA7TDs8Y29tcGF0PiAwMDc4IDAwNjkgMDA2OTs7OzEyO047OzsyMTZCOzsyMTZCCisyMTdDO1NNQUxMIFJPTUFOIE5VTUVSQUwgRklGVFk7Tmw7MDtMOzxjb21wYXQ+IDAwNkM7Ozs1MDtOOzs7MjE2Qzs7MjE2QworMjE3RDtTTUFMTCBST01BTiBOVU1FUkFMIE9ORSBIVU5EUkVEO05sOzA7TDs8Y29tcGF0PiAwMDYzOzs7MTAwO047OzsyMTZEOzsyMTZECisyMTdFO1NNQUxMIFJPTUFOIE5VTUVSQUwgRklWRSBIVU5EUkVEO05sOzA7TDs8Y29tcGF0PiAwMDY0Ozs7NTAwO047OzsyMTZFOzsyMTZFCisyMTdGO1NNQUxMIFJPTUFOIE5VTUVSQUwgT05FIFRIT1VTQU5EO05sOzA7TDs8Y29tcGF0PiAwMDZEOzs7MTAwMDtOOzs7MjE2Rjs7MjE2RgorMjE4MDtST01BTiBOVU1FUkFMIE9ORSBUSE9VU0FORCBDIEQ7Tmw7MDtMOzs7OzEwMDA7Tjs7Ozs7CisyMTgxO1JPTUFOIE5VTUVSQUwgRklWRSBUSE9VU0FORDtObDswO0w7Ozs7NTAwMDtOOzs7OzsKKzIxODI7Uk9NQU4gTlVNRVJBTCBURU4gVEhPVVNBTkQ7Tmw7MDtMOzs7OzEwMDAwO047Ozs7OworMjE4MztST01BTiBOVU1FUkFMIFJFVkVSU0VEIE9ORSBIVU5EUkVEO05sOzA7TDs7Ozs7Tjs7Ozs7CisyMTkwO0xFRlRXQVJEUyBBUlJPVztTbTswO09OOzs7OztOO0xFRlQgQVJST1c7Ozs7CisyMTkxO1VQV0FSRFMgQVJST1c7U207MDtPTjs7Ozs7TjtVUCBBUlJPVzs7OzsKKzIxOTI7UklHSFRXQVJEUyBBUlJPVztTbTswO09OOzs7OztOO1JJR0hUIEFSUk9XOzs7OworMjE5MztET1dOV0FSRFMgQVJST1c7U207MDtPTjs7Ozs7TjtET1dOIEFSUk9XOzs7OworMjE5NDtMRUZUIFJJR0hUIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjE5NTtVUCBET1dOIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMjE5NjtOT1JUSCBXRVNUIEFSUk9XO1NvOzA7T047Ozs7O047VVBQRVIgTEVGVCBBUlJPVzs7OzsKKzIxOTc7Tk9SVEggRUFTVCBBUlJPVztTbzswO09OOzs7OztOO1VQUEVSIFJJR0hUIEFSUk9XOzs7OworMjE5ODtTT1VUSCBFQVNUIEFSUk9XO1NvOzA7T047Ozs7O047TE9XRVIgUklHSFQgQVJST1c7Ozs7CisyMTk5O1NPVVRIIFdFU1QgQVJST1c7U287MDtPTjs7Ozs7TjtMT1dFUiBMRUZUIEFSUk9XOzs7OworMjE5QTtMRUZUV0FSRFMgQVJST1cgV0lUSCBTVFJPS0U7U207MDtPTjsyMTkwIDAzMzg7Ozs7TjtMRUZUIEFSUk9XIFdJVEggU1RST0tFOzs7OworMjE5QjtSSUdIVFdBUkRTIEFSUk9XIFdJVEggU1RST0tFO1NtOzA7T047MjE5MiAwMzM4Ozs7O047UklHSFQgQVJST1cgV0lUSCBTVFJPS0U7Ozs7CisyMTlDO0xFRlRXQVJEUyBXQVZFIEFSUk9XO1NvOzA7T047Ozs7O047TEVGVCBXQVZFIEFSUk9XOzs7OworMjE5RDtSSUdIVFdBUkRTIFdBVkUgQVJST1c7U287MDtPTjs7Ozs7TjtSSUdIVCBXQVZFIEFSUk9XOzs7OworMjE5RTtMRUZUV0FSRFMgVFdPIEhFQURFRCBBUlJPVztTbzswO09OOzs7OztOO0xFRlQgVFdPIEhFQURFRCBBUlJPVzs7OzsKKzIxOUY7VVBXQVJEUyBUV08gSEVBREVEIEFSUk9XO1NvOzA7T047Ozs7O047VVAgVFdPIEhFQURFRCBBUlJPVzs7OzsKKzIxQTA7UklHSFRXQVJEUyBUV08gSEVBREVEIEFSUk9XO1NtOzA7T047Ozs7O047UklHSFQgVFdPIEhFQURFRCBBUlJPVzs7OzsKKzIxQTE7RE9XTldBUkRTIFRXTyBIRUFERUQgQVJST1c7U287MDtPTjs7Ozs7TjtET1dOIFRXTyBIRUFERUQgQVJST1c7Ozs7CisyMUEyO0xFRlRXQVJEUyBBUlJPVyBXSVRIIFRBSUw7U287MDtPTjs7Ozs7TjtMRUZUIEFSUk9XIFdJVEggVEFJTDs7OzsKKzIxQTM7UklHSFRXQVJEUyBBUlJPVyBXSVRIIFRBSUw7U207MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVyBXSVRIIFRBSUw7Ozs7CisyMUE0O0xFRlRXQVJEUyBBUlJPVyBGUk9NIEJBUjtTbzswO09OOzs7OztOO0xFRlQgQVJST1cgRlJPTSBCQVI7Ozs7CisyMUE1O1VQV0FSRFMgQVJST1cgRlJPTSBCQVI7U287MDtPTjs7Ozs7TjtVUCBBUlJPVyBGUk9NIEJBUjs7OzsKKzIxQTY7UklHSFRXQVJEUyBBUlJPVyBGUk9NIEJBUjtTbTswO09OOzs7OztOO1JJR0hUIEFSUk9XIEZST00gQkFSOzs7OworMjFBNztET1dOV0FSRFMgQVJST1cgRlJPTSBCQVI7U287MDtPTjs7Ozs7TjtET1dOIEFSUk9XIEZST00gQkFSOzs7OworMjFBODtVUCBET1dOIEFSUk9XIFdJVEggQkFTRTtTbzswO09OOzs7OztOOzs7OzsKKzIxQTk7TEVGVFdBUkRTIEFSUk9XIFdJVEggSE9PSztTbzswO09OOzs7OztOO0xFRlQgQVJST1cgV0lUSCBIT09LOzs7OworMjFBQTtSSUdIVFdBUkRTIEFSUk9XIFdJVEggSE9PSztTbzswO09OOzs7OztOO1JJR0hUIEFSUk9XIFdJVEggSE9PSzs7OzsKKzIxQUI7TEVGVFdBUkRTIEFSUk9XIFdJVEggTE9PUDtTbzswO09OOzs7OztOO0xFRlQgQVJST1cgV0lUSCBMT09QOzs7OworMjFBQztSSUdIVFdBUkRTIEFSUk9XIFdJVEggTE9PUDtTbzswO09OOzs7OztOO1JJR0hUIEFSUk9XIFdJVEggTE9PUDs7OzsKKzIxQUQ7TEVGVCBSSUdIVCBXQVZFIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMjFBRTtMRUZUIFJJR0hUIEFSUk9XIFdJVEggU1RST0tFO1NtOzA7T047MjE5NCAwMzM4Ozs7O047Ozs7OworMjFBRjtET1dOV0FSRFMgWklHWkFHIEFSUk9XO1NvOzA7T047Ozs7O047RE9XTiBaSUdaQUcgQVJST1c7Ozs7CisyMUIwO1VQV0FSRFMgQVJST1cgV0lUSCBUSVAgTEVGVFdBUkRTO1NvOzA7T047Ozs7O047VVAgQVJST1cgV0lUSCBUSVAgTEVGVDs7OzsKKzIxQjE7VVBXQVJEUyBBUlJPVyBXSVRIIFRJUCBSSUdIVFdBUkRTO1NvOzA7T047Ozs7O047VVAgQVJST1cgV0lUSCBUSVAgUklHSFQ7Ozs7CisyMUIyO0RPV05XQVJEUyBBUlJPVyBXSVRIIFRJUCBMRUZUV0FSRFM7U287MDtPTjs7Ozs7TjtET1dOIEFSUk9XIFdJVEggVElQIExFRlQ7Ozs7CisyMUIzO0RPV05XQVJEUyBBUlJPVyBXSVRIIFRJUCBSSUdIVFdBUkRTO1NvOzA7T047Ozs7O047RE9XTiBBUlJPVyBXSVRIIFRJUCBSSUdIVDs7OzsKKzIxQjQ7UklHSFRXQVJEUyBBUlJPVyBXSVRIIENPUk5FUiBET1dOV0FSRFM7U287MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVyBXSVRIIENPUk5FUiBET1dOOzs7OworMjFCNTtET1dOV0FSRFMgQVJST1cgV0lUSCBDT1JORVIgTEVGVFdBUkRTO1NvOzA7T047Ozs7O047RE9XTiBBUlJPVyBXSVRIIENPUk5FUiBMRUZUOzs7OworMjFCNjtBTlRJQ0xPQ0tXSVNFIFRPUCBTRU1JQ0lSQ0xFIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMjFCNztDTE9DS1dJU0UgVE9QIFNFTUlDSVJDTEUgQVJST1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMUI4O05PUlRIIFdFU1QgQVJST1cgVE8gTE9ORyBCQVI7U287MDtPTjs7Ozs7TjtVUFBFUiBMRUZUIEFSUk9XIFRPIExPTkcgQkFSOzs7OworMjFCOTtMRUZUV0FSRFMgQVJST1cgVE8gQkFSIE9WRVIgUklHSFRXQVJEUyBBUlJPVyBUTyBCQVI7U287MDtPTjs7Ozs7TjtMRUZUIEFSUk9XIFRPIEJBUiBPVkVSIFJJR0hUIEFSUk9XIFRPIEJBUjs7OzsKKzIxQkE7QU5USUNMT0NLV0lTRSBPUEVOIENJUkNMRSBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIxQkI7Q0xPQ0tXSVNFIE9QRU4gQ0lSQ0xFIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMjFCQztMRUZUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgVVBXQVJEUztTbzswO09OOzs7OztOO0xFRlQgSEFSUE9PTiBXSVRIIEJBUkIgVVA7Ozs7CisyMUJEO0xFRlRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBET1dOV0FSRFM7U287MDtPTjs7Ozs7TjtMRUZUIEhBUlBPT04gV0lUSCBCQVJCIERPV047Ozs7CisyMUJFO1VQV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgUklHSFRXQVJEUztTbzswO09OOzs7OztOO1VQIEhBUlBPT04gV0lUSCBCQVJCIFJJR0hUOzs7OworMjFCRjtVUFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIExFRlRXQVJEUztTbzswO09OOzs7OztOO1VQIEhBUlBPT04gV0lUSCBCQVJCIExFRlQ7Ozs7CisyMUMwO1JJR0hUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgVVBXQVJEUztTbzswO09OOzs7OztOO1JJR0hUIEhBUlBPT04gV0lUSCBCQVJCIFVQOzs7OworMjFDMTtSSUdIVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIERPV05XQVJEUztTbzswO09OOzs7OztOO1JJR0hUIEhBUlBPT04gV0lUSCBCQVJCIERPV047Ozs7CisyMUMyO0RPV05XQVJEUyBIQVJQT09OIFdJVEggQkFSQiBSSUdIVFdBUkRTO1NvOzA7T047Ozs7O047RE9XTiBIQVJQT09OIFdJVEggQkFSQiBSSUdIVDs7OzsKKzIxQzM7RE9XTldBUkRTIEhBUlBPT04gV0lUSCBCQVJCIExFRlRXQVJEUztTbzswO09OOzs7OztOO0RPV04gSEFSUE9PTiBXSVRIIEJBUkIgTEVGVDs7OzsKKzIxQzQ7UklHSFRXQVJEUyBBUlJPVyBPVkVSIExFRlRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO1JJR0hUIEFSUk9XIE9WRVIgTEVGVCBBUlJPVzs7OzsKKzIxQzU7VVBXQVJEUyBBUlJPVyBMRUZUV0FSRFMgT0YgRE9XTldBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047VVAgQVJST1cgTEVGVCBPRiBET1dOIEFSUk9XOzs7OworMjFDNjtMRUZUV0FSRFMgQVJST1cgT1ZFUiBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047TEVGVCBBUlJPVyBPVkVSIFJJR0hUIEFSUk9XOzs7OworMjFDNztMRUZUV0FSRFMgUEFJUkVEIEFSUk9XUztTbzswO09OOzs7OztOO0xFRlQgUEFJUkVEIEFSUk9XUzs7OzsKKzIxQzg7VVBXQVJEUyBQQUlSRUQgQVJST1dTO1NvOzA7T047Ozs7O047VVAgUEFJUkVEIEFSUk9XUzs7OzsKKzIxQzk7UklHSFRXQVJEUyBQQUlSRUQgQVJST1dTO1NvOzA7T047Ozs7O047UklHSFQgUEFJUkVEIEFSUk9XUzs7OzsKKzIxQ0E7RE9XTldBUkRTIFBBSVJFRCBBUlJPV1M7U287MDtPTjs7Ozs7TjtET1dOIFBBSVJFRCBBUlJPV1M7Ozs7CisyMUNCO0xFRlRXQVJEUyBIQVJQT09OIE9WRVIgUklHSFRXQVJEUyBIQVJQT09OO1NvOzA7T047Ozs7O047TEVGVCBIQVJQT09OIE9WRVIgUklHSFQgSEFSUE9PTjs7OzsKKzIxQ0M7UklHSFRXQVJEUyBIQVJQT09OIE9WRVIgTEVGVFdBUkRTIEhBUlBPT047U287MDtPTjs7Ozs7TjtSSUdIVCBIQVJQT09OIE9WRVIgTEVGVCBIQVJQT09OOzs7OworMjFDRDtMRUZUV0FSRFMgRE9VQkxFIEFSUk9XIFdJVEggU1RST0tFO1NvOzA7T047MjFEMCAwMzM4Ozs7O047TEVGVCBET1VCTEUgQVJST1cgV0lUSCBTVFJPS0U7Ozs7CisyMUNFO0xFRlQgUklHSFQgRE9VQkxFIEFSUk9XIFdJVEggU1RST0tFO1NtOzA7T047MjFENCAwMzM4Ozs7O047Ozs7OworMjFDRjtSSUdIVFdBUkRTIERPVUJMRSBBUlJPVyBXSVRIIFNUUk9LRTtTbTswO09OOzIxRDIgMDMzODs7OztOO1JJR0hUIERPVUJMRSBBUlJPVyBXSVRIIFNUUk9LRTs7OzsKKzIxRDA7TEVGVFdBUkRTIERPVUJMRSBBUlJPVztTbzswO09OOzs7OztOO0xFRlQgRE9VQkxFIEFSUk9XOzs7OworMjFEMTtVUFdBUkRTIERPVUJMRSBBUlJPVztTbzswO09OOzs7OztOO1VQIERPVUJMRSBBUlJPVzs7OzsKKzIxRDI7UklHSFRXQVJEUyBET1VCTEUgQVJST1c7U207MDtPTjs7Ozs7TjtSSUdIVCBET1VCTEUgQVJST1c7Ozs7CisyMUQzO0RPV05XQVJEUyBET1VCTEUgQVJST1c7U287MDtPTjs7Ozs7TjtET1dOIERPVUJMRSBBUlJPVzs7OzsKKzIxRDQ7TEVGVCBSSUdIVCBET1VCTEUgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMUQ1O1VQIERPV04gRE9VQkxFIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMjFENjtOT1JUSCBXRVNUIERPVUJMRSBBUlJPVztTbzswO09OOzs7OztOO1VQUEVSIExFRlQgRE9VQkxFIEFSUk9XOzs7OworMjFENztOT1JUSCBFQVNUIERPVUJMRSBBUlJPVztTbzswO09OOzs7OztOO1VQUEVSIFJJR0hUIERPVUJMRSBBUlJPVzs7OzsKKzIxRDg7U09VVEggRUFTVCBET1VCTEUgQVJST1c7U287MDtPTjs7Ozs7TjtMT1dFUiBSSUdIVCBET1VCTEUgQVJST1c7Ozs7CisyMUQ5O1NPVVRIIFdFU1QgRE9VQkxFIEFSUk9XO1NvOzA7T047Ozs7O047TE9XRVIgTEVGVCBET1VCTEUgQVJST1c7Ozs7CisyMURBO0xFRlRXQVJEUyBUUklQTEUgQVJST1c7U287MDtPTjs7Ozs7TjtMRUZUIFRSSVBMRSBBUlJPVzs7OzsKKzIxREI7UklHSFRXQVJEUyBUUklQTEUgQVJST1c7U287MDtPTjs7Ozs7TjtSSUdIVCBUUklQTEUgQVJST1c7Ozs7CisyMURDO0xFRlRXQVJEUyBTUVVJR0dMRSBBUlJPVztTbzswO09OOzs7OztOO0xFRlQgU1FVSUdHTEUgQVJST1c7Ozs7CisyMUREO1JJR0hUV0FSRFMgU1FVSUdHTEUgQVJST1c7U287MDtPTjs7Ozs7TjtSSUdIVCBTUVVJR0dMRSBBUlJPVzs7OzsKKzIxREU7VVBXQVJEUyBBUlJPVyBXSVRIIERPVUJMRSBTVFJPS0U7U287MDtPTjs7Ozs7TjtVUCBBUlJPVyBXSVRIIERPVUJMRSBTVFJPS0U7Ozs7CisyMURGO0RPV05XQVJEUyBBUlJPVyBXSVRIIERPVUJMRSBTVFJPS0U7U287MDtPTjs7Ozs7TjtET1dOIEFSUk9XIFdJVEggRE9VQkxFIFNUUk9LRTs7OzsKKzIxRTA7TEVGVFdBUkRTIERBU0hFRCBBUlJPVztTbzswO09OOzs7OztOO0xFRlQgREFTSEVEIEFSUk9XOzs7OworMjFFMTtVUFdBUkRTIERBU0hFRCBBUlJPVztTbzswO09OOzs7OztOO1VQIERBU0hFRCBBUlJPVzs7OzsKKzIxRTI7UklHSFRXQVJEUyBEQVNIRUQgQVJST1c7U287MDtPTjs7Ozs7TjtSSUdIVCBEQVNIRUQgQVJST1c7Ozs7CisyMUUzO0RPV05XQVJEUyBEQVNIRUQgQVJST1c7U287MDtPTjs7Ozs7TjtET1dOIERBU0hFRCBBUlJPVzs7OzsKKzIxRTQ7TEVGVFdBUkRTIEFSUk9XIFRPIEJBUjtTbzswO09OOzs7OztOO0xFRlQgQVJST1cgVE8gQkFSOzs7OworMjFFNTtSSUdIVFdBUkRTIEFSUk9XIFRPIEJBUjtTbzswO09OOzs7OztOO1JJR0hUIEFSUk9XIFRPIEJBUjs7OzsKKzIxRTY7TEVGVFdBUkRTIFdISVRFIEFSUk9XO1NvOzA7T047Ozs7O047V0hJVEUgTEVGVCBBUlJPVzs7OzsKKzIxRTc7VVBXQVJEUyBXSElURSBBUlJPVztTbzswO09OOzs7OztOO1dISVRFIFVQIEFSUk9XOzs7OworMjFFODtSSUdIVFdBUkRTIFdISVRFIEFSUk9XO1NvOzA7T047Ozs7O047V0hJVEUgUklHSFQgQVJST1c7Ozs7CisyMUU5O0RPV05XQVJEUyBXSElURSBBUlJPVztTbzswO09OOzs7OztOO1dISVRFIERPV04gQVJST1c7Ozs7CisyMUVBO1VQV0FSRFMgV0hJVEUgQVJST1cgRlJPTSBCQVI7U287MDtPTjs7Ozs7TjtXSElURSBVUCBBUlJPVyBGUk9NIEJBUjs7OzsKKzIxRUI7VVBXQVJEUyBXSElURSBBUlJPVyBPTiBQRURFU1RBTDtTbzswO09OOzs7OztOOzs7OzsKKzIxRUM7VVBXQVJEUyBXSElURSBBUlJPVyBPTiBQRURFU1RBTCBXSVRIIEhPUklaT05UQUwgQkFSO1NvOzA7T047Ozs7O047Ozs7OworMjFFRDtVUFdBUkRTIFdISVRFIEFSUk9XIE9OIFBFREVTVEFMIFdJVEggVkVSVElDQUwgQkFSO1NvOzA7T047Ozs7O047Ozs7OworMjFFRTtVUFdBUkRTIFdISVRFIERPVUJMRSBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIxRUY7VVBXQVJEUyBXSElURSBET1VCTEUgQVJST1cgT04gUEVERVNUQUw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMUYwO1JJR0hUV0FSRFMgV0hJVEUgQVJST1cgRlJPTSBXQUxMO1NvOzA7T047Ozs7O047Ozs7OworMjFGMTtOT1JUSCBXRVNUIEFSUk9XIFRPIENPUk5FUjtTbzswO09OOzs7OztOOzs7OzsKKzIxRjI7U09VVEggRUFTVCBBUlJPVyBUTyBDT1JORVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMUYzO1VQIERPV04gV0hJVEUgQVJST1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMjAwO0ZPUiBBTEw7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjAxO0NPTVBMRU1FTlQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjAyO1BBUlRJQUwgRElGRkVSRU5USUFMO1NtOzA7T047Ozs7O1k7Ozs7OworMjIwMztUSEVSRSBFWElTVFM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjA0O1RIRVJFIERPRVMgTk9UIEVYSVNUO1NtOzA7T047MjIwMyAwMzM4Ozs7O1k7Ozs7OworMjIwNTtFTVBUWSBTRVQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjA2O0lOQ1JFTUVOVDtTbTswO09OOzs7OztOOzs7OzsKKzIyMDc7TkFCTEE7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjA4O0VMRU1FTlQgT0Y7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjA5O05PVCBBTiBFTEVNRU5UIE9GO1NtOzA7T047MjIwOCAwMzM4Ozs7O1k7Ozs7OworMjIwQTtTTUFMTCBFTEVNRU5UIE9GO1NtOzA7T047Ozs7O1k7Ozs7OworMjIwQjtDT05UQUlOUyBBUyBNRU1CRVI7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjBDO0RPRVMgTk9UIENPTlRBSU4gQVMgTUVNQkVSO1NtOzA7T047MjIwQiAwMzM4Ozs7O1k7Ozs7OworMjIwRDtTTUFMTCBDT05UQUlOUyBBUyBNRU1CRVI7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjBFO0VORCBPRiBQUk9PRjtTbTswO09OOzs7OztOOzs7OzsKKzIyMEY7Ti1BUlkgUFJPRFVDVDtTbTswO09OOzs7OztOOzs7OzsKKzIyMTA7Ti1BUlkgQ09QUk9EVUNUO1NtOzA7T047Ozs7O047Ozs7OworMjIxMTtOLUFSWSBTVU1NQVRJT047U207MDtPTjs7Ozs7WTs7Ozs7CisyMjEyO01JTlVTIFNJR047U207MDtFVDs7Ozs7Tjs7Ozs7CisyMjEzO01JTlVTLU9SLVBMVVMgU0lHTjtTbTswO0VUOzs7OztOOzs7OzsKKzIyMTQ7RE9UIFBMVVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjE1O0RJVklTSU9OIFNMQVNIO1NtOzA7T047Ozs7O1k7Ozs7OworMjIxNjtTRVQgTUlOVVM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjE3O0FTVEVSSVNLIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjIxODtSSU5HIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjIxOTtCVUxMRVQgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjFBO1NRVUFSRSBST09UO1NtOzA7T047Ozs7O1k7Ozs7OworMjIxQjtDVUJFIFJPT1Q7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjFDO0ZPVVJUSCBST09UO1NtOzA7T047Ozs7O1k7Ozs7OworMjIxRDtQUk9QT1JUSU9OQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjFFO0lORklOSVRZO1NtOzA7T047Ozs7O047Ozs7OworMjIxRjtSSUdIVCBBTkdMRTtTbTswO09OOzs7OztZOzs7OzsKKzIyMjA7QU5HTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjIxO01FQVNVUkVEIEFOR0xFO1NtOzA7T047Ozs7O1k7Ozs7OworMjIyMjtTUEhFUklDQUwgQU5HTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjIzO0RJVklERVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjI0O0RPRVMgTk9UIERJVklERTtTbTswO09OOzIyMjMgMDMzODs7OztZOzs7OzsKKzIyMjU7UEFSQUxMRUwgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjI2O05PVCBQQVJBTExFTCBUTztTbTswO09OOzIyMjUgMDMzODs7OztZOzs7OzsKKzIyMjc7TE9HSUNBTCBBTkQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjI4O0xPR0lDQUwgT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjI5O0lOVEVSU0VDVElPTjtTbTswO09OOzs7OztOOzs7OzsKKzIyMkE7VU5JT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjJCO0lOVEVHUkFMO1NtOzA7T047Ozs7O1k7Ozs7OworMjIyQztET1VCTEUgSU5URUdSQUw7U207MDtPTjs8Y29tcGF0PiAyMjJCIDIyMkI7Ozs7WTs7Ozs7CisyMjJEO1RSSVBMRSBJTlRFR1JBTDtTbTswO09OOzxjb21wYXQ+IDIyMkIgMjIyQiAyMjJCOzs7O1k7Ozs7OworMjIyRTtDT05UT1VSIElOVEVHUkFMO1NtOzA7T047Ozs7O1k7Ozs7OworMjIyRjtTVVJGQUNFIElOVEVHUkFMO1NtOzA7T047PGNvbXBhdD4gMjIyRSAyMjJFOzs7O1k7Ozs7OworMjIzMDtWT0xVTUUgSU5URUdSQUw7U207MDtPTjs8Y29tcGF0PiAyMjJFIDIyMkUgMjIyRTs7OztZOzs7OzsKKzIyMzE7Q0xPQ0tXSVNFIElOVEVHUkFMO1NtOzA7T047Ozs7O1k7Ozs7OworMjIzMjtDTE9DS1dJU0UgQ09OVE9VUiBJTlRFR1JBTDtTbTswO09OOzs7OztZOzs7OzsKKzIyMzM7QU5USUNMT0NLV0lTRSBDT05UT1VSIElOVEVHUkFMO1NtOzA7T047Ozs7O1k7Ozs7OworMjIzNDtUSEVSRUZPUkU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjM1O0JFQ0FVU0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjM2O1JBVElPO1NtOzA7T047Ozs7O047Ozs7OworMjIzNztQUk9QT1JUSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjIzODtET1QgTUlOVVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjM5O0VYQ0VTUztTbTswO09OOzs7OztZOzs7OzsKKzIyM0E7R0VPTUVUUklDIFBST1BPUlRJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjNCO0hPTU9USEVUSUM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjNDO1RJTERFIE9QRVJBVE9SO1NtOzA7T047Ozs7O1k7Ozs7OworMjIzRDtSRVZFUlNFRCBUSUxERTtTbTswO09OOzs7OztZOztsYXp5IFM7OzsKKzIyM0U7SU5WRVJURUQgTEFaWSBTO1NtOzA7T047Ozs7O1k7Ozs7OworMjIzRjtTSU5FIFdBVkU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjQwO1dSRUFUSCBQUk9EVUNUO1NtOzA7T047Ozs7O1k7Ozs7OworMjI0MTtOT1QgVElMREU7U207MDtPTjsyMjNDIDAzMzg7Ozs7WTs7Ozs7CisyMjQyO01JTlVTIFRJTERFO1NtOzA7T047Ozs7O1k7Ozs7OworMjI0MztBU1lNUFRPVElDQUxMWSBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyNDQ7Tk9UIEFTWU1QVE9USUNBTExZIEVRVUFMIFRPO1NtOzA7T047MjI0MyAwMzM4Ozs7O1k7Ozs7OworMjI0NTtBUFBST1hJTUFURUxZIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI0NjtBUFBST1hJTUFURUxZIEJVVCBOT1QgQUNUVUFMTFkgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjQ3O05FSVRIRVIgQVBQUk9YSU1BVEVMWSBOT1IgQUNUVUFMTFkgRVFVQUwgVE87U207MDtPTjsyMjQ1IDAzMzg7Ozs7WTs7Ozs7CisyMjQ4O0FMTU9TVCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyNDk7Tk9UIEFMTU9TVCBFUVVBTCBUTztTbTswO09OOzIyNDggMDMzODs7OztZOzs7OzsKKzIyNEE7QUxNT1NUIEVRVUFMIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI0QjtUUklQTEUgVElMREU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjRDO0FMTCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyNEQ7RVFVSVZBTEVOVCBUTztTbTswO09OOzs7OztOOzs7OzsKKzIyNEU7R0VPTUVUUklDQUxMWSBFUVVJVkFMRU5UIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjI0RjtESUZGRVJFTkNFIEJFVFdFRU47U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjUwO0FQUFJPQUNIRVMgVEhFIExJTUlUO1NtOzA7T047Ozs7O047Ozs7OworMjI1MTtHRU9NRVRSSUNBTExZIEVRVUFMIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjI1MjtBUFBST1hJTUFURUxZIEVRVUFMIFRPIE9SIFRIRSBJTUFHRSBPRjtTbTswO09OOzs7OztZOzs7OzsKKzIyNTM7SU1BR0UgT0YgT1IgQVBQUk9YSU1BVEVMWSBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyNTQ7Q09MT04gRVFVQUxTO1NtOzA7T047Ozs7O1k7Q09MT04gRVFVQUw7Ozs7CisyMjU1O0VRVUFMUyBDT0xPTjtTbTswO09OOzs7OztZO0VRVUFMIENPTE9OOzs7OworMjI1NjtSSU5HIElOIEVRVUFMIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjI1NztSSU5HIEVRVUFMIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjI1ODtDT1JSRVNQT05EUyBUTztTbTswO09OOzs7OztOOzs7OzsKKzIyNTk7RVNUSU1BVEVTO1NtOzA7T047Ozs7O047Ozs7OworMjI1QTtFUVVJQU5HVUxBUiBUTztTbTswO09OOzs7OztOOzs7OzsKKzIyNUI7U1RBUiBFUVVBTFM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjVDO0RFTFRBIEVRVUFMIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjI1RDtFUVVBTCBUTyBCWSBERUZJTklUSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjI1RTtNRUFTVVJFRCBCWTtTbTswO09OOzs7OztOOzs7OzsKKzIyNUY7UVVFU1RJT05FRCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyNjA7Tk9UIEVRVUFMIFRPO1NtOzA7T047MDAzRCAwMzM4Ozs7O1k7Ozs7OworMjI2MTtJREVOVElDQUwgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjYyO05PVCBJREVOVElDQUwgVE87U207MDtPTjsyMjYxIDAzMzg7Ozs7WTs7Ozs7CisyMjYzO1NUUklDVExZIEVRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjY0O0xFU1MtVEhBTiBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZO0xFU1MgVEhBTiBPUiBFUVVBTCBUTzs7OzsKKzIyNjU7R1JFQVRFUi1USEFOIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7R1JFQVRFUiBUSEFOIE9SIEVRVUFMIFRPOzs7OworMjI2NjtMRVNTLVRIQU4gT1ZFUiBFUVVBTCBUTztTbTswO09OOzs7OztZO0xFU1MgVEhBTiBPVkVSIEVRVUFMIFRPOzs7OworMjI2NztHUkVBVEVSLVRIQU4gT1ZFUiBFUVVBTCBUTztTbTswO09OOzs7OztZO0dSRUFURVIgVEhBTiBPVkVSIEVRVUFMIFRPOzs7OworMjI2ODtMRVNTLVRIQU4gQlVUIE5PVCBFUVVBTCBUTztTbTswO09OOzs7OztZO0xFU1MgVEhBTiBCVVQgTk9UIEVRVUFMIFRPOzs7OworMjI2OTtHUkVBVEVSLVRIQU4gQlVUIE5PVCBFUVVBTCBUTztTbTswO09OOzs7OztZO0dSRUFURVIgVEhBTiBCVVQgTk9UIEVRVUFMIFRPOzs7OworMjI2QTtNVUNIIExFU1MtVEhBTjtTbTswO09OOzs7OztZO01VQ0ggTEVTUyBUSEFOOzs7OworMjI2QjtNVUNIIEdSRUFURVItVEhBTjtTbTswO09OOzs7OztZO01VQ0ggR1JFQVRFUiBUSEFOOzs7OworMjI2QztCRVRXRUVOO1NtOzA7T047Ozs7O047Ozs7OworMjI2RDtOT1QgRVFVSVZBTEVOVCBUTztTbTswO09OOzIyNEQgMDMzODs7OztOOzs7OzsKKzIyNkU7Tk9UIExFU1MtVEhBTjtTbTswO09OOzAwM0MgMDMzODs7OztZO05PVCBMRVNTIFRIQU47Ozs7CisyMjZGO05PVCBHUkVBVEVSLVRIQU47U207MDtPTjswMDNFIDAzMzg7Ozs7WTtOT1QgR1JFQVRFUiBUSEFOOzs7OworMjI3MDtORUlUSEVSIExFU1MtVEhBTiBOT1IgRVFVQUwgVE87U207MDtPTjsyMjY0IDAzMzg7Ozs7WTtORUlUSEVSIExFU1MgVEhBTiBOT1IgRVFVQUwgVE87Ozs7CisyMjcxO05FSVRIRVIgR1JFQVRFUi1USEFOIE5PUiBFUVVBTCBUTztTbTswO09OOzIyNjUgMDMzODs7OztZO05FSVRIRVIgR1JFQVRFUiBUSEFOIE5PUiBFUVVBTCBUTzs7OzsKKzIyNzI7TEVTUy1USEFOIE9SIEVRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7WTtMRVNTIFRIQU4gT1IgRVFVSVZBTEVOVCBUTzs7OzsKKzIyNzM7R1JFQVRFUi1USEFOIE9SIEVRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7WTtHUkVBVEVSIFRIQU4gT1IgRVFVSVZBTEVOVCBUTzs7OzsKKzIyNzQ7TkVJVEhFUiBMRVNTLVRIQU4gTk9SIEVRVUlWQUxFTlQgVE87U207MDtPTjsyMjcyIDAzMzg7Ozs7WTtORUlUSEVSIExFU1MgVEhBTiBOT1IgRVFVSVZBTEVOVCBUTzs7OzsKKzIyNzU7TkVJVEhFUiBHUkVBVEVSLVRIQU4gTk9SIEVRVUlWQUxFTlQgVE87U207MDtPTjsyMjczIDAzMzg7Ozs7WTtORUlUSEVSIEdSRUFURVIgVEhBTiBOT1IgRVFVSVZBTEVOVCBUTzs7OzsKKzIyNzY7TEVTUy1USEFOIE9SIEdSRUFURVItVEhBTjtTbTswO09OOzs7OztZO0xFU1MgVEhBTiBPUiBHUkVBVEVSIFRIQU47Ozs7CisyMjc3O0dSRUFURVItVEhBTiBPUiBMRVNTLVRIQU47U207MDtPTjs7Ozs7WTtHUkVBVEVSIFRIQU4gT1IgTEVTUyBUSEFOOzs7OworMjI3ODtORUlUSEVSIExFU1MtVEhBTiBOT1IgR1JFQVRFUi1USEFOO1NtOzA7T047MjI3NiAwMzM4Ozs7O1k7TkVJVEhFUiBMRVNTIFRIQU4gTk9SIEdSRUFURVIgVEhBTjs7OzsKKzIyNzk7TkVJVEhFUiBHUkVBVEVSLVRIQU4gTk9SIExFU1MtVEhBTjtTbTswO09OOzIyNzcgMDMzODs7OztZO05FSVRIRVIgR1JFQVRFUiBUSEFOIE5PUiBMRVNTIFRIQU47Ozs7CisyMjdBO1BSRUNFREVTO1NtOzA7T047Ozs7O1k7Ozs7OworMjI3QjtTVUNDRUVEUztTbTswO09OOzs7OztZOzs7OzsKKzIyN0M7UFJFQ0VERVMgT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjdEO1NVQ0NFRURTIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI3RTtQUkVDRURFUyBPUiBFUVVJVkFMRU5UIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI3RjtTVUNDRUVEUyBPUiBFUVVJVkFMRU5UIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI4MDtET0VTIE5PVCBQUkVDRURFO1NtOzA7T047MjI3QSAwMzM4Ozs7O1k7Ozs7OworMjI4MTtET0VTIE5PVCBTVUNDRUVEO1NtOzA7T047MjI3QiAwMzM4Ozs7O1k7Ozs7OworMjI4MjtTVUJTRVQgT0Y7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjgzO1NVUEVSU0VUIE9GO1NtOzA7T047Ozs7O1k7Ozs7OworMjI4NDtOT1QgQSBTVUJTRVQgT0Y7U207MDtPTjsyMjgyIDAzMzg7Ozs7WTs7Ozs7CisyMjg1O05PVCBBIFNVUEVSU0VUIE9GO1NtOzA7T047MjI4MyAwMzM4Ozs7O1k7Ozs7OworMjI4NjtTVUJTRVQgT0YgT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjg3O1NVUEVSU0VUIE9GIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI4ODtORUlUSEVSIEEgU1VCU0VUIE9GIE5PUiBFUVVBTCBUTztTbTswO09OOzIyODYgMDMzODs7OztZOzs7OzsKKzIyODk7TkVJVEhFUiBBIFNVUEVSU0VUIE9GIE5PUiBFUVVBTCBUTztTbTswO09OOzIyODcgMDMzODs7OztZOzs7OzsKKzIyOEE7U1VCU0VUIE9GIFdJVEggTk9UIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7U1VCU0VUIE9GIE9SIE5PVCBFUVVBTCBUTzs7OzsKKzIyOEI7U1VQRVJTRVQgT0YgV0lUSCBOT1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTtTVVBFUlNFVCBPRiBPUiBOT1QgRVFVQUwgVE87Ozs7CisyMjhDO01VTFRJU0VUO1NtOzA7T047Ozs7O1k7Ozs7OworMjI4RDtNVUxUSVNFVCBNVUxUSVBMSUNBVElPTjtTbTswO09OOzs7OztOOzs7OzsKKzIyOEU7TVVMVElTRVQgVU5JT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjhGO1NRVUFSRSBJTUFHRSBPRjtTbTswO09OOzs7OztZOzs7OzsKKzIyOTA7U1FVQVJFIE9SSUdJTkFMIE9GO1NtOzA7T047Ozs7O1k7Ozs7OworMjI5MTtTUVVBUkUgSU1BR0UgT0YgT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjkyO1NRVUFSRSBPUklHSU5BTCBPRiBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyOTM7U1FVQVJFIENBUDtTbTswO09OOzs7OztOOzs7OzsKKzIyOTQ7U1FVQVJFIENVUDtTbTswO09OOzs7OztOOzs7OzsKKzIyOTU7Q0lSQ0xFRCBQTFVTO1NtOzA7T047Ozs7O047Ozs7OworMjI5NjtDSVJDTEVEIE1JTlVTO1NtOzA7T047Ozs7O047Ozs7OworMjI5NztDSVJDTEVEIFRJTUVTO1NtOzA7T047Ozs7O047Ozs7OworMjI5ODtDSVJDTEVEIERJVklTSU9OIFNMQVNIO1NtOzA7T047Ozs7O1k7Ozs7OworMjI5OTtDSVJDTEVEIERPVCBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzIyOUE7Q0lSQ0xFRCBSSU5HIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjI5QjtDSVJDTEVEIEFTVEVSSVNLIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjI5QztDSVJDTEVEIEVRVUFMUztTbTswO09OOzs7OztOOzs7OzsKKzIyOUQ7Q0lSQ0xFRCBEQVNIO1NtOzA7T047Ozs7O047Ozs7OworMjI5RTtTUVVBUkVEIFBMVVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjlGO1NRVUFSRUQgTUlOVVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkEwO1NRVUFSRUQgVElNRVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkExO1NRVUFSRUQgRE9UIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjJBMjtSSUdIVCBUQUNLO1NtOzA7T047Ozs7O1k7Ozs7OworMjJBMztMRUZUIFRBQ0s7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkE0O0RPV04gVEFDSztTbTswO09OOzs7OztOOzs7OzsKKzIyQTU7VVAgVEFDSztTbTswO09OOzs7OztOOzs7OzsKKzIyQTY7QVNTRVJUSU9OO1NtOzA7T047Ozs7O1k7Ozs7OworMjJBNztNT0RFTFM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkE4O1RSVUU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkE5O0ZPUkNFUztTbTswO09OOzs7OztZOzs7OzsKKzIyQUE7VFJJUExFIFZFUlRJQ0FMIEJBUiBSSUdIVCBUVVJOU1RJTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkFCO0RPVUJMRSBWRVJUSUNBTCBCQVIgRE9VQkxFIFJJR0hUIFRVUk5TVElMRTtTbTswO09OOzs7OztZOzs7OzsKKzIyQUM7RE9FUyBOT1QgUFJPVkU7U207MDtPTjsyMkEyIDAzMzg7Ozs7WTs7Ozs7CisyMkFEO05PVCBUUlVFO1NtOzA7T047MjJBOCAwMzM4Ozs7O1k7Ozs7OworMjJBRTtET0VTIE5PVCBGT1JDRTtTbTswO09OOzIyQTkgMDMzODs7OztZOzs7OzsKKzIyQUY7TkVHQVRFRCBET1VCTEUgVkVSVElDQUwgQkFSIERPVUJMRSBSSUdIVCBUVVJOU1RJTEU7U207MDtPTjsyMkFCIDAzMzg7Ozs7WTs7Ozs7CisyMkIwO1BSRUNFREVTIFVOREVSIFJFTEFUSU9OO1NtOzA7T047Ozs7O1k7Ozs7OworMjJCMTtTVUNDRUVEUyBVTkRFUiBSRUxBVElPTjtTbTswO09OOzs7OztZOzs7OzsKKzIyQjI7Tk9STUFMIFNVQkdST1VQIE9GO1NtOzA7T047Ozs7O1k7Ozs7OworMjJCMztDT05UQUlOUyBBUyBOT1JNQUwgU1VCR1JPVVA7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkI0O05PUk1BTCBTVUJHUk9VUCBPRiBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyQjU7Q09OVEFJTlMgQVMgTk9STUFMIFNVQkdST1VQIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjJCNjtPUklHSU5BTCBPRjtTbTswO09OOzs7OztZOzs7OzsKKzIyQjc7SU1BR0UgT0Y7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkI4O01VTFRJTUFQO1NtOzA7T047Ozs7O1k7Ozs7OworMjJCOTtIRVJNSVRJQU4gQ09OSlVHQVRFIE1BVFJJWDtTbTswO09OOzs7OztOOzs7OzsKKzIyQkE7SU5URVJDQUxBVEU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkJCO1hPUjtTbTswO09OOzs7OztOOzs7OzsKKzIyQkM7TkFORDtTbTswO09OOzs7OztOOzs7OzsKKzIyQkQ7Tk9SO1NtOzA7T047Ozs7O047Ozs7OworMjJCRTtSSUdIVCBBTkdMRSBXSVRIIEFSQztTbTswO09OOzs7OztZOzs7OzsKKzIyQkY7UklHSFQgVFJJQU5HTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkMwO04tQVJZIExPR0lDQUwgQU5EO1NtOzA7T047Ozs7O047Ozs7OworMjJDMTtOLUFSWSBMT0dJQ0FMIE9SO1NtOzA7T047Ozs7O047Ozs7OworMjJDMjtOLUFSWSBJTlRFUlNFQ1RJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkMzO04tQVJZIFVOSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjJDNDtESUFNT05EIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjJDNTtET1QgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkM2O1NUQVIgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkM3O0RJVklTSU9OIFRJTUVTO1NtOzA7T047Ozs7O047Ozs7OworMjJDODtCT1dUSUU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkM5O0xFRlQgTk9STUFMIEZBQ1RPUiBTRU1JRElSRUNUIFBST0RVQ1Q7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkNBO1JJR0hUIE5PUk1BTCBGQUNUT1IgU0VNSURJUkVDVCBQUk9EVUNUO1NtOzA7T047Ozs7O1k7Ozs7OworMjJDQjtMRUZUIFNFTUlESVJFQ1QgUFJPRFVDVDtTbTswO09OOzs7OztZOzs7OzsKKzIyQ0M7UklHSFQgU0VNSURJUkVDVCBQUk9EVUNUO1NtOzA7T047Ozs7O1k7Ozs7OworMjJDRDtSRVZFUlNFRCBUSUxERSBFUVVBTFM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkNFO0NVUkxZIExPR0lDQUwgT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkNGO0NVUkxZIExPR0lDQUwgQU5EO1NtOzA7T047Ozs7O047Ozs7OworMjJEMDtET1VCTEUgU1VCU0VUO1NtOzA7T047Ozs7O1k7Ozs7OworMjJEMTtET1VCTEUgU1VQRVJTRVQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkQyO0RPVUJMRSBJTlRFUlNFQ1RJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkQzO0RPVUJMRSBVTklPTjtTbTswO09OOzs7OztOOzs7OzsKKzIyRDQ7UElUQ0hGT1JLO1NtOzA7T047Ozs7O047Ozs7OworMjJENTtFUVVBTCBBTkQgUEFSQUxMRUwgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkQ2O0xFU1MtVEhBTiBXSVRIIERPVDtTbTswO09OOzs7OztZO0xFU1MgVEhBTiBXSVRIIERPVDs7OzsKKzIyRDc7R1JFQVRFUi1USEFOIFdJVEggRE9UO1NtOzA7T047Ozs7O1k7R1JFQVRFUiBUSEFOIFdJVEggRE9UOzs7OworMjJEODtWRVJZIE1VQ0ggTEVTUy1USEFOO1NtOzA7T047Ozs7O1k7VkVSWSBNVUNIIExFU1MgVEhBTjs7OzsKKzIyRDk7VkVSWSBNVUNIIEdSRUFURVItVEhBTjtTbTswO09OOzs7OztZO1ZFUlkgTVVDSCBHUkVBVEVSIFRIQU47Ozs7CisyMkRBO0xFU1MtVEhBTiBFUVVBTCBUTyBPUiBHUkVBVEVSLVRIQU47U207MDtPTjs7Ozs7WTtMRVNTIFRIQU4gRVFVQUwgVE8gT1IgR1JFQVRFUiBUSEFOOzs7OworMjJEQjtHUkVBVEVSLVRIQU4gRVFVQUwgVE8gT1IgTEVTUy1USEFOO1NtOzA7T047Ozs7O1k7R1JFQVRFUiBUSEFOIEVRVUFMIFRPIE9SIExFU1MgVEhBTjs7OzsKKzIyREM7RVFVQUwgVE8gT1IgTEVTUy1USEFOO1NtOzA7T047Ozs7O1k7RVFVQUwgVE8gT1IgTEVTUyBUSEFOOzs7OworMjJERDtFUVVBTCBUTyBPUiBHUkVBVEVSLVRIQU47U207MDtPTjs7Ozs7WTtFUVVBTCBUTyBPUiBHUkVBVEVSIFRIQU47Ozs7CisyMkRFO0VRVUFMIFRPIE9SIFBSRUNFREVTO1NtOzA7T047Ozs7O1k7Ozs7OworMjJERjtFUVVBTCBUTyBPUiBTVUNDRUVEUztTbTswO09OOzs7OztZOzs7OzsKKzIyRTA7RE9FUyBOT1QgUFJFQ0VERSBPUiBFUVVBTDtTbTswO09OOzIyN0MgMDMzODs7OztZOzs7OzsKKzIyRTE7RE9FUyBOT1QgU1VDQ0VFRCBPUiBFUVVBTDtTbTswO09OOzIyN0QgMDMzODs7OztZOzs7OzsKKzIyRTI7Tk9UIFNRVUFSRSBJTUFHRSBPRiBPUiBFUVVBTCBUTztTbTswO09OOzIyOTEgMDMzODs7OztZOzs7OzsKKzIyRTM7Tk9UIFNRVUFSRSBPUklHSU5BTCBPRiBPUiBFUVVBTCBUTztTbTswO09OOzIyOTIgMDMzODs7OztZOzs7OzsKKzIyRTQ7U1FVQVJFIElNQUdFIE9GIE9SIE5PVCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyRTU7U1FVQVJFIE9SSUdJTkFMIE9GIE9SIE5PVCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyRTY7TEVTUy1USEFOIEJVVCBOT1QgRVFVSVZBTEVOVCBUTztTbTswO09OOzs7OztZO0xFU1MgVEhBTiBCVVQgTk9UIEVRVUlWQUxFTlQgVE87Ozs7CisyMkU3O0dSRUFURVItVEhBTiBCVVQgTk9UIEVRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7WTtHUkVBVEVSIFRIQU4gQlVUIE5PVCBFUVVJVkFMRU5UIFRPOzs7OworMjJFODtQUkVDRURFUyBCVVQgTk9UIEVRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMkU5O1NVQ0NFRURTIEJVVCBOT1QgRVFVSVZBTEVOVCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyRUE7Tk9UIE5PUk1BTCBTVUJHUk9VUCBPRjtTbTswO09OOzIyQjIgMDMzODs7OztZOzs7OzsKKzIyRUI7RE9FUyBOT1QgQ09OVEFJTiBBUyBOT1JNQUwgU1VCR1JPVVA7U207MDtPTjsyMkIzIDAzMzg7Ozs7WTs7Ozs7CisyMkVDO05PVCBOT1JNQUwgU1VCR1JPVVAgT0YgT1IgRVFVQUwgVE87U207MDtPTjsyMkI0IDAzMzg7Ozs7WTs7Ozs7CisyMkVEO0RPRVMgTk9UIENPTlRBSU4gQVMgTk9STUFMIFNVQkdST1VQIE9SIEVRVUFMO1NtOzA7T047MjJCNSAwMzM4Ozs7O1k7Ozs7OworMjJFRTtWRVJUSUNBTCBFTExJUFNJUztTbTswO09OOzs7OztOOzs7OzsKKzIyRUY7TUlETElORSBIT1JJWk9OVEFMIEVMTElQU0lTO1NtOzA7T047Ozs7O047Ozs7OworMjJGMDtVUCBSSUdIVCBESUFHT05BTCBFTExJUFNJUztTbTswO09OOzs7OztZOzs7OzsKKzIyRjE7RE9XTiBSSUdIVCBESUFHT05BTCBFTExJUFNJUztTbTswO09OOzs7OztZOzs7OzsKKzIzMDA7RElBTUVURVIgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzIzMDE7RUxFQ1RSSUMgQVJST1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzAyO0hPVVNFO1NvOzA7T047Ozs7O047Ozs7OworMjMwMztVUCBBUlJPV0hFQUQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzA0O0RPV04gQVJST1dIRUFEO1NvOzA7T047Ozs7O047Ozs7OworMjMwNTtQUk9KRUNUSVZFO1NvOzA7T047Ozs7O047Ozs7OworMjMwNjtQRVJTUEVDVElWRTtTbzswO09OOzs7OztOOzs7OzsKKzIzMDc7V0FWWSBMSU5FO1NvOzA7T047Ozs7O047Ozs7OworMjMwODtMRUZUIENFSUxJTkc7U207MDtPTjs7Ozs7WTs7Ozs7CisyMzA5O1JJR0hUIENFSUxJTkc7U207MDtPTjs7Ozs7WTs7Ozs7CisyMzBBO0xFRlQgRkxPT1I7U207MDtPTjs7Ozs7WTs7Ozs7CisyMzBCO1JJR0hUIEZMT09SO1NtOzA7T047Ozs7O1k7Ozs7OworMjMwQztCT1RUT00gUklHSFQgQ1JPUDtTbzswO09OOzs7OztOOzs7OzsKKzIzMEQ7Qk9UVE9NIExFRlQgQ1JPUDtTbzswO09OOzs7OztOOzs7OzsKKzIzMEU7VE9QIFJJR0hUIENST1A7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzBGO1RPUCBMRUZUIENST1A7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzEwO1JFVkVSU0VEIE5PVCBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMjMxMTtTUVVBUkUgTE9aRU5HRTtTbzswO09OOzs7OztOOzs7OzsKKzIzMTI7QVJDO1NvOzA7T047Ozs7O047Ozs7OworMjMxMztTRUdNRU5UO1NvOzA7T047Ozs7O047Ozs7OworMjMxNDtTRUNUT1I7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzE1O1RFTEVQSE9ORSBSRUNPUkRFUjtTbzswO09OOzs7OztOOzs7OzsKKzIzMTY7UE9TSVRJT04gSU5ESUNBVE9SO1NvOzA7T047Ozs7O047Ozs7OworMjMxNztWSUVXREFUQSBTUVVBUkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzE4O1BMQUNFIE9GIElOVEVSRVNUIFNJR047U287MDtPTjs7Ozs7TjtDT01NQU5EIEtFWTs7OzsKKzIzMTk7VFVSTkVEIE5PVCBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMjMxQTtXQVRDSDtTbzswO09OOzs7OztOOzs7OzsKKzIzMUI7SE9VUkdMQVNTO1NvOzA7T047Ozs7O047Ozs7OworMjMxQztUT1AgTEVGVCBDT1JORVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzFEO1RPUCBSSUdIVCBDT1JORVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzFFO0JPVFRPTSBMRUZUIENPUk5FUjtTbzswO09OOzs7OztOOzs7OzsKKzIzMUY7Qk9UVE9NIFJJR0hUIENPUk5FUjtTbzswO09OOzs7OztOOzs7OzsKKzIzMjA7VE9QIEhBTEYgSU5URUdSQUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyMzIxO0JPVFRPTSBIQUxGIElOVEVHUkFMO1NtOzA7T047Ozs7O1k7Ozs7OworMjMyMjtGUk9XTjtTbzswO09OOzs7OztOOzs7OzsKKzIzMjM7U01JTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzI0O1VQIEFSUk9XSEVBRCBCRVRXRUVOIFRXTyBIT1JJWk9OVEFMIEJBUlM7U287MDtPTjs7Ozs7TjtFTlRFUiBLRVk7Ozs7CisyMzI1O09QVElPTiBLRVk7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzI2O0VSQVNFIFRPIFRIRSBSSUdIVDtTbzswO09OOzs7OztOO0RFTEVURSBUTyBUSEUgUklHSFQgS0VZOzs7OworMjMyNztYIElOIEEgUkVDVEFOR0xFIEJPWDtTbzswO09OOzs7OztOO0NMRUFSIEtFWTs7OzsKKzIzMjg7S0VZQk9BUkQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzI5O0xFRlQtUE9JTlRJTkcgQU5HTEUgQlJBQ0tFVDtQczswO09OOzMwMDg7Ozs7WTtCUkE7Ozs7CisyMzJBO1JJR0hULVBPSU5USU5HIEFOR0xFIEJSQUNLRVQ7UGU7MDtPTjszMDA5Ozs7O1k7S0VUOzs7OworMjMyQjtFUkFTRSBUTyBUSEUgTEVGVDtTbzswO09OOzs7OztOO0RFTEVURSBUTyBUSEUgTEVGVCBLRVk7Ozs7CisyMzJDO0JFTlpFTkUgUklORztTbzswO09OOzs7OztOOzs7OzsKKzIzMkQ7Q1lMSU5EUklDSVRZO1NvOzA7T047Ozs7O047Ozs7OworMjMyRTtBTEwgQVJPVU5ELVBST0ZJTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzJGO1NZTU1FVFJZO1NvOzA7T047Ozs7O047Ozs7OworMjMzMDtUT1RBTCBSVU5PVVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzMxO0RJTUVOU0lPTiBPUklHSU47U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzMyO0NPTklDQUwgVEFQRVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzMzO1NMT1BFO1NvOzA7T047Ozs7O047Ozs7OworMjMzNDtDT1VOVEVSQk9SRTtTbzswO09OOzs7OztOOzs7OzsKKzIzMzU7Q09VTlRFUlNJTks7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzM2O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBJLUJFQU07U287MDtMOzs7OztOOzs7OzsKKzIzMzc7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFNRVUlTSCBRVUFEO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzM4O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIEVRVUFMO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzM5O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIERJVklERTtTbzswO0w7Ozs7O047Ozs7OworMjMzQTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBESUFNT05EO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzNCO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIEpPVDtTbzswO0w7Ozs7O047Ozs7OworMjMzQztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBDSVJDTEU7U287MDtMOzs7OztOOzs7OzsKKzIzM0Q7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIENJUkNMRSBTVElMRTtTbzswO0w7Ozs7O047Ozs7OworMjMzRTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgQ0lSQ0xFIEpPVDtTbzswO0w7Ozs7O047Ozs7OworMjMzRjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgU0xBU0ggQkFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzQwO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBCQUNLU0xBU0ggQkFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzQxO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIFNMQVNIO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzQyO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIEJBQ0tTTEFTSDtTbzswO0w7Ozs7O047Ozs7OworMjM0MztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBMRVNTLVRIQU47U287MDtMOzs7OztOOzs7OzsKKzIzNDQ7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgR1JFQVRFUi1USEFOO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzQ1O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBMRUZUV0FSRFMgVkFORTtTbzswO0w7Ozs7O047Ozs7OworMjM0NjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUklHSFRXQVJEUyBWQU5FO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzQ3O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIExFRlRXQVJEUyBBUlJPVztTbzswO0w7Ozs7O047Ozs7OworMjM0ODtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzQ5O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBDSVJDTEUgQkFDS1NMQVNIO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzRBO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBET1dOIFRBQ0sgVU5ERVJCQVI7U287MDtMOzs7OztOOzsqOzs7CisyMzRCO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBERUxUQSBTVElMRTtTbzswO0w7Ozs7O047Ozs7OworMjM0QztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBET1dOIENBUkVUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzREO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIERFTFRBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzRFO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBET1dOIFRBQ0sgSk9UO1NvOzA7TDs7Ozs7Tjs7Kjs7OworMjM0RjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgVVBXQVJEUyBWQU5FO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzUwO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIFVQV0FSRFMgQVJST1c7U287MDtMOzs7OztOOzs7OzsKKzIzNTE7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFVQIFRBQ0sgT1ZFUkJBUjtTbzswO0w7Ozs7O047Oyo7OzsKKzIzNTI7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERFTCBTVElMRTtTbzswO0w7Ozs7O047Ozs7OworMjM1MztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBVUCBDQVJFVDtTbzswO0w7Ozs7O047Ozs7OworMjM1NDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBERUw7U287MDtMOzs7OztOOzs7OzsKKzIzNTU7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFVQIFRBQ0sgSk9UO1NvOzA7TDs7Ozs7Tjs7Kjs7OworMjM1NjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgRE9XTldBUkRTIFZBTkU7U287MDtMOzs7OztOOzs7OzsKKzIzNTc7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgRE9XTldBUkRTIEFSUk9XO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzU4O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVU9URSBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM1OTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgREVMVEEgVU5ERVJCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNUE7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERJQU1PTkQgVU5ERVJCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNUI7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIEpPVCBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM1QztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgQ0lSQ0xFIFVOREVSQkFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzVEO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBVUCBTSE9FIEpPVDtTbzswO0w7Ozs7O047Ozs7OworMjM1RTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVPVEUgUVVBRDtTbzswO0w7Ozs7O047Ozs7OworMjM1RjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgQ0lSQ0xFIFNUQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNjA7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgQ09MT047U287MDtMOzs7OztOOzs7OzsKKzIzNjE7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFVQIFRBQ0sgRElBRVJFU0lTO1NvOzA7TDs7Ozs7Tjs7Kjs7OworMjM2MjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgREVMIERJQUVSRVNJUztTbzswO0w7Ozs7O047Ozs7OworMjM2MztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgU1RBUiBESUFFUkVTSVM7U287MDtMOzs7OztOOzs7OzsKKzIzNjQ7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIEpPVCBESUFFUkVTSVM7U287MDtMOzs7OztOOzs7OzsKKzIzNjU7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIENJUkNMRSBESUFFUkVTSVM7U287MDtMOzs7OztOOzs7OzsKKzIzNjY7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERPV04gU0hPRSBTVElMRTtTbzswO0w7Ozs7O047Ozs7OworMjM2NztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgTEVGVCBTSE9FIFNUSUxFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzY4O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBUSUxERSBESUFFUkVTSVM7U287MDtMOzs7OztOOzs7OzsKKzIzNjk7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIEdSRUFURVItVEhBTiBESUFFUkVTSVM7U287MDtMOzs7OztOOzs7OzsKKzIzNkE7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIENPTU1BIEJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM2QjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgREVMIFRJTERFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzZDO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBaSUxERTtTbzswO0w7Ozs7O047Ozs7OworMjM2RDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgU1RJTEUgVElMREU7U287MDtMOzs7OztOOzs7OzsKKzIzNkU7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFNFTUlDT0xPTiBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM2RjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBOT1QgRVFVQUw7U287MDtMOzs7OztOOzs7OzsKKzIzNzA7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgUVVFU1RJT047U287MDtMOzs7OztOOzs7OzsKKzIzNzE7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERPV04gQ0FSRVQgVElMREU7U287MDtMOzs7OztOOzs7OzsKKzIzNzI7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFVQIENBUkVUIFRJTERFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzczO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBJT1RBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzc0O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBSSE87U287MDtMOzs7OztOOzs7OzsKKzIzNzU7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIE9NRUdBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzc2O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBBTFBIQSBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM3NztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgRVBTSUxPTiBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM3ODtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgSU9UQSBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM3OTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgT01FR0EgVU5ERVJCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzN0E7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIEFMUEhBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzdCO05PVCBDSEVDSyBNQVJLO1NvOzA7T047Ozs7O047Ozs7OworMjM3RDtTSE9VTERFUkVEIE9QRU4gQk9YO1NvOzA7T047Ozs7O047Ozs7OworMjM3RTtCRUxMIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzN0Y7VkVSVElDQUwgTElORSBXSVRIIE1JRERMRSBET1Q7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzgwO0lOU0VSVElPTiBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzgxO0NPTlRJTlVPVVMgVU5ERVJMSU5FIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzODI7RElTQ09OVElOVU9VUyBVTkRFUkxJTkUgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM4MztFTVBIQVNJUyBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzg0O0NPTVBPU0lUSU9OIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzODU7V0hJVEUgU1FVQVJFIFdJVEggQ0VOVFJFIFZFUlRJQ0FMIExJTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzg2O0VOVEVSIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzODc7QUxURVJOQVRJVkUgS0VZIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzODg7SEVMTSBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzg5O0NJUkNMRUQgSE9SSVpPTlRBTCBCQVIgV0lUSCBOT1RDSDtTbzswO09OOzs7OztOOztwYXVzZTs7OworMjM4QTtDSVJDTEVEIFRSSUFOR0xFIERPV047U287MDtPTjs7Ozs7Tjs7YnJlYWs7OzsKKzIzOEI7QlJPS0VOIENJUkNMRSBXSVRIIE5PUlRIV0VTVCBBUlJPVztTbzswO09OOzs7OztOOztlc2NhcGU7OzsKKzIzOEM7VU5ETyBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzhEO01PTk9TVEFCTEUgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM4RTtIWVNURVJFU0lTIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzOEY7T1BFTi1DSVJDVUlULU9VVFBVVCBILVRZUEUgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM5MDtPUEVOLUNJUkNVSVQtT1VUUFVUIEwtVFlQRSBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzkxO1BBU1NJVkUtUFVMTC1ET1dOLU9VVFBVVCBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzkyO1BBU1NJVkUtUFVMTC1VUC1PVVRQVVQgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM5MztESVJFQ1QgQ1VSUkVOVCBTWU1CT0wgRk9STSBUV087U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzk0O1NPRlRXQVJFLUZVTkNUSU9OIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzOTU7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQ7U287MDtMOzs7OztOOzs7OzsKKzIzOTY7REVDSU1BTCBTRVBBUkFUT1IgS0VZIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzOTc7UFJFVklPVVMgUEFHRTtTbzswO09OOzs7OztOOzs7OzsKKzIzOTg7TkVYVCBQQUdFO1NvOzA7T047Ozs7O047Ozs7OworMjM5OTtQUklOVCBTQ1JFRU4gU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM5QTtDTEVBUiBTQ1JFRU4gU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjQwMDtTWU1CT0wgRk9SIE5VTEw7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBOVUxMOzs7OworMjQwMTtTWU1CT0wgRk9SIFNUQVJUIE9GIEhFQURJTkc7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBTVEFSVCBPRiBIRUFESU5HOzs7OworMjQwMjtTWU1CT0wgRk9SIFNUQVJUIE9GIFRFWFQ7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBTVEFSVCBPRiBURVhUOzs7OworMjQwMztTWU1CT0wgRk9SIEVORCBPRiBURVhUO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgRU5EIE9GIFRFWFQ7Ozs7CisyNDA0O1NZTUJPTCBGT1IgRU5EIE9GIFRSQU5TTUlTU0lPTjtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEVORCBPRiBUUkFOU01JU1NJT047Ozs7CisyNDA1O1NZTUJPTCBGT1IgRU5RVUlSWTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEVOUVVJUlk7Ozs7CisyNDA2O1NZTUJPTCBGT1IgQUNLTk9XTEVER0U7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBBQ0tOT1dMRURHRTs7OzsKKzI0MDc7U1lNQk9MIEZPUiBCRUxMO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgQkVMTDs7OzsKKzI0MDg7U1lNQk9MIEZPUiBCQUNLU1BBQ0U7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBCQUNLU1BBQ0U7Ozs7CisyNDA5O1NZTUJPTCBGT1IgSE9SSVpPTlRBTCBUQUJVTEFUSU9OO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgSE9SSVpPTlRBTCBUQUJVTEFUSU9OOzs7OworMjQwQTtTWU1CT0wgRk9SIExJTkUgRkVFRDtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIExJTkUgRkVFRDs7OzsKKzI0MEI7U1lNQk9MIEZPUiBWRVJUSUNBTCBUQUJVTEFUSU9OO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgVkVSVElDQUwgVEFCVUxBVElPTjs7OzsKKzI0MEM7U1lNQk9MIEZPUiBGT1JNIEZFRUQ7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBGT1JNIEZFRUQ7Ozs7CisyNDBEO1NZTUJPTCBGT1IgQ0FSUklBR0UgUkVUVVJOO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgQ0FSUklBR0UgUkVUVVJOOzs7OworMjQwRTtTWU1CT0wgRk9SIFNISUZUIE9VVDtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIFNISUZUIE9VVDs7OzsKKzI0MEY7U1lNQk9MIEZPUiBTSElGVCBJTjtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIFNISUZUIElOOzs7OworMjQxMDtTWU1CT0wgRk9SIERBVEEgTElOSyBFU0NBUEU7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBEQVRBIExJTksgRVNDQVBFOzs7OworMjQxMTtTWU1CT0wgRk9SIERFVklDRSBDT05UUk9MIE9ORTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIERFVklDRSBDT05UUk9MIE9ORTs7OzsKKzI0MTI7U1lNQk9MIEZPUiBERVZJQ0UgQ09OVFJPTCBUV087U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBERVZJQ0UgQ09OVFJPTCBUV087Ozs7CisyNDEzO1NZTUJPTCBGT1IgREVWSUNFIENPTlRST0wgVEhSRUU7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBERVZJQ0UgQ09OVFJPTCBUSFJFRTs7OzsKKzI0MTQ7U1lNQk9MIEZPUiBERVZJQ0UgQ09OVFJPTCBGT1VSO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgREVWSUNFIENPTlRST0wgRk9VUjs7OzsKKzI0MTU7U1lNQk9MIEZPUiBORUdBVElWRSBBQ0tOT1dMRURHRTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIE5FR0FUSVZFIEFDS05PV0xFREdFOzs7OworMjQxNjtTWU1CT0wgRk9SIFNZTkNIUk9OT1VTIElETEU7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBTWU5DSFJPTk9VUyBJRExFOzs7OworMjQxNztTWU1CT0wgRk9SIEVORCBPRiBUUkFOU01JU1NJT04gQkxPQ0s7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBFTkQgT0YgVFJBTlNNSVNTSU9OIEJMT0NLOzs7OworMjQxODtTWU1CT0wgRk9SIENBTkNFTDtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIENBTkNFTDs7OzsKKzI0MTk7U1lNQk9MIEZPUiBFTkQgT0YgTUVESVVNO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgRU5EIE9GIE1FRElVTTs7OzsKKzI0MUE7U1lNQk9MIEZPUiBTVUJTVElUVVRFO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgU1VCU1RJVFVURTs7OzsKKzI0MUI7U1lNQk9MIEZPUiBFU0NBUEU7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBFU0NBUEU7Ozs7CisyNDFDO1NZTUJPTCBGT1IgRklMRSBTRVBBUkFUT1I7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBGSUxFIFNFUEFSQVRPUjs7OzsKKzI0MUQ7U1lNQk9MIEZPUiBHUk9VUCBTRVBBUkFUT1I7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBHUk9VUCBTRVBBUkFUT1I7Ozs7CisyNDFFO1NZTUJPTCBGT1IgUkVDT1JEIFNFUEFSQVRPUjtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIFJFQ09SRCBTRVBBUkFUT1I7Ozs7CisyNDFGO1NZTUJPTCBGT1IgVU5JVCBTRVBBUkFUT1I7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBVTklUIFNFUEFSQVRPUjs7OzsKKzI0MjA7U1lNQk9MIEZPUiBTUEFDRTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIFNQQUNFOzs7OworMjQyMTtTWU1CT0wgRk9SIERFTEVURTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIERFTEVURTs7OzsKKzI0MjI7QkxBTksgU1lNQk9MO1NvOzA7T047Ozs7O047QkxBTks7Ozs7CisyNDIzO09QRU4gQk9YO1NvOzA7T047Ozs7O047Ozs7OworMjQyNDtTWU1CT0wgRk9SIE5FV0xJTkU7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBORVdMSU5FOzs7OworMjQyNTtTWU1CT0wgRk9SIERFTEVURSBGT1JNIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzI0MjY7U1lNQk9MIEZPUiBTVUJTVElUVVRFIEZPUk0gVFdPO1NvOzA7T047Ozs7O047Ozs7OworMjQ0MDtPQ1IgSE9PSztTbzswO09OOzs7OztOOzs7OzsKKzI0NDE7T0NSIENIQUlSO1NvOzA7T047Ozs7O047Ozs7OworMjQ0MjtPQ1IgRk9SSztTbzswO09OOzs7OztOOzs7OzsKKzI0NDM7T0NSIElOVkVSVEVEIEZPUks7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNDQ0O09DUiBCRUxUIEJVQ0tMRTtTbzswO09OOzs7OztOOzs7OzsKKzI0NDU7T0NSIEJPVyBUSUU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNDQ2O09DUiBCUkFOQ0ggQkFOSyBJREVOVElGSUNBVElPTjtTbzswO09OOzs7OztOOzs7OzsKKzI0NDc7T0NSIEFNT1VOVCBPRiBDSEVDSztTbzswO09OOzs7OztOOzs7OzsKKzI0NDg7T0NSIERBU0g7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNDQ5O09DUiBDVVNUT01FUiBBQ0NPVU5UIE5VTUJFUjtTbzswO09OOzs7OztOOzs7OzsKKzI0NEE7T0NSIERPVUJMRSBCQUNLU0xBU0g7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNDYwO0NJUkNMRUQgRElHSVQgT05FO05vOzA7RU47PGNpcmNsZT4gMDAzMTs7MTsxO047Ozs7OworMjQ2MTtDSVJDTEVEIERJR0lUIFRXTztObzswO0VOOzxjaXJjbGU+IDAwMzI7OzI7MjtOOzs7OzsKKzI0NjI7Q0lSQ0xFRCBESUdJVCBUSFJFRTtObzswO0VOOzxjaXJjbGU+IDAwMzM7OzM7MztOOzs7OzsKKzI0NjM7Q0lSQ0xFRCBESUdJVCBGT1VSO05vOzA7RU47PGNpcmNsZT4gMDAzNDs7NDs0O047Ozs7OworMjQ2NDtDSVJDTEVEIERJR0lUIEZJVkU7Tm87MDtFTjs8Y2lyY2xlPiAwMDM1Ozs1OzU7Tjs7Ozs7CisyNDY1O0NJUkNMRUQgRElHSVQgU0lYO05vOzA7RU47PGNpcmNsZT4gMDAzNjs7Njs2O047Ozs7OworMjQ2NjtDSVJDTEVEIERJR0lUIFNFVkVOO05vOzA7RU47PGNpcmNsZT4gMDAzNzs7Nzs3O047Ozs7OworMjQ2NztDSVJDTEVEIERJR0lUIEVJR0hUO05vOzA7RU47PGNpcmNsZT4gMDAzODs7ODs4O047Ozs7OworMjQ2ODtDSVJDTEVEIERJR0lUIE5JTkU7Tm87MDtFTjs8Y2lyY2xlPiAwMDM5Ozs5Ozk7Tjs7Ozs7CisyNDY5O0NJUkNMRUQgTlVNQkVSIFRFTjtObzswO0VOOzxjaXJjbGU+IDAwMzEgMDAzMDs7OzEwO047Ozs7OworMjQ2QTtDSVJDTEVEIE5VTUJFUiBFTEVWRU47Tm87MDtFTjs8Y2lyY2xlPiAwMDMxIDAwMzE7OzsxMTtOOzs7OzsKKzI0NkI7Q0lSQ0xFRCBOVU1CRVIgVFdFTFZFO05vOzA7RU47PGNpcmNsZT4gMDAzMSAwMDMyOzs7MTI7Tjs7Ozs7CisyNDZDO0NJUkNMRUQgTlVNQkVSIFRISVJURUVOO05vOzA7RU47PGNpcmNsZT4gMDAzMSAwMDMzOzs7MTM7Tjs7Ozs7CisyNDZEO0NJUkNMRUQgTlVNQkVSIEZPVVJURUVOO05vOzA7RU47PGNpcmNsZT4gMDAzMSAwMDM0Ozs7MTQ7Tjs7Ozs7CisyNDZFO0NJUkNMRUQgTlVNQkVSIEZJRlRFRU47Tm87MDtFTjs8Y2lyY2xlPiAwMDMxIDAwMzU7OzsxNTtOOzs7OzsKKzI0NkY7Q0lSQ0xFRCBOVU1CRVIgU0lYVEVFTjtObzswO0VOOzxjaXJjbGU+IDAwMzEgMDAzNjs7OzE2O047Ozs7OworMjQ3MDtDSVJDTEVEIE5VTUJFUiBTRVZFTlRFRU47Tm87MDtFTjs8Y2lyY2xlPiAwMDMxIDAwMzc7OzsxNztOOzs7OzsKKzI0NzE7Q0lSQ0xFRCBOVU1CRVIgRUlHSFRFRU47Tm87MDtFTjs8Y2lyY2xlPiAwMDMxIDAwMzg7OzsxODtOOzs7OzsKKzI0NzI7Q0lSQ0xFRCBOVU1CRVIgTklORVRFRU47Tm87MDtFTjs8Y2lyY2xlPiAwMDMxIDAwMzk7OzsxOTtOOzs7OzsKKzI0NzM7Q0lSQ0xFRCBOVU1CRVIgVFdFTlRZO05vOzA7RU47PGNpcmNsZT4gMDAzMiAwMDMwOzs7MjA7Tjs7Ozs7CisyNDc0O1BBUkVOVEhFU0laRUQgRElHSVQgT05FO05vOzA7RU47PGNvbXBhdD4gMDAyOCAwMDMxIDAwMjk7OzE7MTtOOzs7OzsKKzI0NzU7UEFSRU5USEVTSVpFRCBESUdJVCBUV087Tm87MDtFTjs8Y29tcGF0PiAwMDI4IDAwMzIgMDAyOTs7MjsyO047Ozs7OworMjQ3NjtQQVJFTlRIRVNJWkVEIERJR0lUIFRIUkVFO05vOzA7RU47PGNvbXBhdD4gMDAyOCAwMDMzIDAwMjk7OzM7MztOOzs7OzsKKzI0Nzc7UEFSRU5USEVTSVpFRCBESUdJVCBGT1VSO05vOzA7RU47PGNvbXBhdD4gMDAyOCAwMDM0IDAwMjk7OzQ7NDtOOzs7OzsKKzI0Nzg7UEFSRU5USEVTSVpFRCBESUdJVCBGSVZFO05vOzA7RU47PGNvbXBhdD4gMDAyOCAwMDM1IDAwMjk7OzU7NTtOOzs7OzsKKzI0Nzk7UEFSRU5USEVTSVpFRCBESUdJVCBTSVg7Tm87MDtFTjs8Y29tcGF0PiAwMDI4IDAwMzYgMDAyOTs7Njs2O047Ozs7OworMjQ3QTtQQVJFTlRIRVNJWkVEIERJR0lUIFNFVkVOO05vOzA7RU47PGNvbXBhdD4gMDAyOCAwMDM3IDAwMjk7Ozc7NztOOzs7OzsKKzI0N0I7UEFSRU5USEVTSVpFRCBESUdJVCBFSUdIVDtObzswO0VOOzxjb21wYXQ+IDAwMjggMDAzOCAwMDI5Ozs4Ozg7Tjs7Ozs7CisyNDdDO1BBUkVOVEhFU0laRUQgRElHSVQgTklORTtObzswO0VOOzxjb21wYXQ+IDAwMjggMDAzOSAwMDI5Ozs5Ozk7Tjs7Ozs7CisyNDdEO1BBUkVOVEhFU0laRUQgTlVNQkVSIFRFTjtObzswO0VOOzxjb21wYXQ+IDAwMjggMDAzMSAwMDMwIDAwMjk7OzsxMDtOOzs7OzsKKzI0N0U7UEFSRU5USEVTSVpFRCBOVU1CRVIgRUxFVkVOO05vOzA7RU47PGNvbXBhdD4gMDAyOCAwMDMxIDAwMzEgMDAyOTs7OzExO047Ozs7OworMjQ3RjtQQVJFTlRIRVNJWkVEIE5VTUJFUiBUV0VMVkU7Tm87MDtFTjs8Y29tcGF0PiAwMDI4IDAwMzEgMDAzMiAwMDI5Ozs7MTI7Tjs7Ozs7CisyNDgwO1BBUkVOVEhFU0laRUQgTlVNQkVSIFRISVJURUVOO05vOzA7RU47PGNvbXBhdD4gMDAyOCAwMDMxIDAwMzMgMDAyOTs7OzEzO047Ozs7OworMjQ4MTtQQVJFTlRIRVNJWkVEIE5VTUJFUiBGT1VSVEVFTjtObzswO0VOOzxjb21wYXQ+IDAwMjggMDAzMSAwMDM0IDAwMjk7OzsxNDtOOzs7OzsKKzI0ODI7UEFSRU5USEVTSVpFRCBOVU1CRVIgRklGVEVFTjtObzswO0VOOzxjb21wYXQ+IDAwMjggMDAzMSAwMDM1IDAwMjk7OzsxNTtOOzs7OzsKKzI0ODM7UEFSRU5USEVTSVpFRCBOVU1CRVIgU0lYVEVFTjtObzswO0VOOzxjb21wYXQ+IDAwMjggMDAzMSAwMDM2IDAwMjk7OzsxNjtOOzs7OzsKKzI0ODQ7UEFSRU5USEVTSVpFRCBOVU1CRVIgU0VWRU5URUVOO05vOzA7RU47PGNvbXBhdD4gMDAyOCAwMDMxIDAwMzcgMDAyOTs7OzE3O047Ozs7OworMjQ4NTtQQVJFTlRIRVNJWkVEIE5VTUJFUiBFSUdIVEVFTjtObzswO0VOOzxjb21wYXQ+IDAwMjggMDAzMSAwMDM4IDAwMjk7OzsxODtOOzs7OzsKKzI0ODY7UEFSRU5USEVTSVpFRCBOVU1CRVIgTklORVRFRU47Tm87MDtFTjs8Y29tcGF0PiAwMDI4IDAwMzEgMDAzOSAwMDI5Ozs7MTk7Tjs7Ozs7CisyNDg3O1BBUkVOVEhFU0laRUQgTlVNQkVSIFRXRU5UWTtObzswO0VOOzxjb21wYXQ+IDAwMjggMDAzMiAwMDMwIDAwMjk7OzsyMDtOOzs7OzsKKzI0ODg7RElHSVQgT05FIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzEgMDAyRTs7MTsxO047RElHSVQgT05FIFBFUklPRDs7OzsKKzI0ODk7RElHSVQgVFdPIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzIgMDAyRTs7MjsyO047RElHSVQgVFdPIFBFUklPRDs7OzsKKzI0OEE7RElHSVQgVEhSRUUgRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMyAwMDJFOzszOzM7TjtESUdJVCBUSFJFRSBQRVJJT0Q7Ozs7CisyNDhCO0RJR0lUIEZPVVIgRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzNCAwMDJFOzs0OzQ7TjtESUdJVCBGT1VSIFBFUklPRDs7OzsKKzI0OEM7RElHSVQgRklWRSBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDM1IDAwMkU7OzU7NTtOO0RJR0lUIEZJVkUgUEVSSU9EOzs7OworMjQ4RDtESUdJVCBTSVggRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzNiAwMDJFOzs2OzY7TjtESUdJVCBTSVggUEVSSU9EOzs7OworMjQ4RTtESUdJVCBTRVZFTiBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDM3IDAwMkU7Ozc7NztOO0RJR0lUIFNFVkVOIFBFUklPRDs7OzsKKzI0OEY7RElHSVQgRUlHSFQgRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzOCAwMDJFOzs4Ozg7TjtESUdJVCBFSUdIVCBQRVJJT0Q7Ozs7CisyNDkwO0RJR0lUIE5JTkUgRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzOSAwMDJFOzs5Ozk7TjtESUdJVCBOSU5FIFBFUklPRDs7OzsKKzI0OTE7TlVNQkVSIFRFTiBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDMxIDAwMzAgMDAyRTs7OzEwO047TlVNQkVSIFRFTiBQRVJJT0Q7Ozs7CisyNDkyO05VTUJFUiBFTEVWRU4gRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMSAwMDMxIDAwMkU7OzsxMTtOO05VTUJFUiBFTEVWRU4gUEVSSU9EOzs7OworMjQ5MztOVU1CRVIgVFdFTFZFIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzEgMDAzMiAwMDJFOzs7MTI7TjtOVU1CRVIgVFdFTFZFIFBFUklPRDs7OzsKKzI0OTQ7TlVNQkVSIFRISVJURUVOIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzEgMDAzMyAwMDJFOzs7MTM7TjtOVU1CRVIgVEhJUlRFRU4gUEVSSU9EOzs7OworMjQ5NTtOVU1CRVIgRk9VUlRFRU4gRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMSAwMDM0IDAwMkU7OzsxNDtOO05VTUJFUiBGT1VSVEVFTiBQRVJJT0Q7Ozs7CisyNDk2O05VTUJFUiBGSUZURUVOIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzEgMDAzNSAwMDJFOzs7MTU7TjtOVU1CRVIgRklGVEVFTiBQRVJJT0Q7Ozs7CisyNDk3O05VTUJFUiBTSVhURUVOIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzEgMDAzNiAwMDJFOzs7MTY7TjtOVU1CRVIgU0lYVEVFTiBQRVJJT0Q7Ozs7CisyNDk4O05VTUJFUiBTRVZFTlRFRU4gRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMSAwMDM3IDAwMkU7OzsxNztOO05VTUJFUiBTRVZFTlRFRU4gUEVSSU9EOzs7OworMjQ5OTtOVU1CRVIgRUlHSFRFRU4gRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMSAwMDM4IDAwMkU7OzsxODtOO05VTUJFUiBFSUdIVEVFTiBQRVJJT0Q7Ozs7CisyNDlBO05VTUJFUiBOSU5FVEVFTiBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDMxIDAwMzkgMDAyRTs7OzE5O047TlVNQkVSIE5JTkVURUVOIFBFUklPRDs7OzsKKzI0OUI7TlVNQkVSIFRXRU5UWSBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDMyIDAwMzAgMDAyRTs7OzIwO047TlVNQkVSIFRXRU5UWSBQRVJJT0Q7Ozs7CisyNDlDO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMDA2MSAwMDI5Ozs7O047Ozs7OworMjQ5RDtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBCO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNjIgMDAyOTs7OztOOzs7OzsKKzI0OUU7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgQztTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDYzIDAwMjk7Ozs7Tjs7Ozs7CisyNDlGO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIEQ7U287MDtMOzxjb21wYXQ+IDAwMjggMDA2NCAwMDI5Ozs7O047Ozs7OworMjRBMDtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBFO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNjUgMDAyOTs7OztOOzs7OzsKKzI0QTE7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgRjtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDY2IDAwMjk7Ozs7Tjs7Ozs7CisyNEEyO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIEc7U287MDtMOzxjb21wYXQ+IDAwMjggMDA2NyAwMDI5Ozs7O047Ozs7OworMjRBMztQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBIO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNjggMDAyOTs7OztOOzs7OzsKKzI0QTQ7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgSTtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDY5IDAwMjk7Ozs7Tjs7Ozs7CisyNEE1O1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIEo7U287MDtMOzxjb21wYXQ+IDAwMjggMDA2QSAwMDI5Ozs7O047Ozs7OworMjRBNjtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBLO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNkIgMDAyOTs7OztOOzs7OzsKKzI0QTc7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgTDtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDZDIDAwMjk7Ozs7Tjs7Ozs7CisyNEE4O1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIE07U287MDtMOzxjb21wYXQ+IDAwMjggMDA2RCAwMDI5Ozs7O047Ozs7OworMjRBOTtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBOO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNkUgMDAyOTs7OztOOzs7OzsKKzI0QUE7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgTztTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDZGIDAwMjk7Ozs7Tjs7Ozs7CisyNEFCO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIFA7U287MDtMOzxjb21wYXQ+IDAwMjggMDA3MCAwMDI5Ozs7O047Ozs7OworMjRBQztQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBRO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNzEgMDAyOTs7OztOOzs7OzsKKzI0QUQ7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgUjtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDcyIDAwMjk7Ozs7Tjs7Ozs7CisyNEFFO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIFM7U287MDtMOzxjb21wYXQ+IDAwMjggMDA3MyAwMDI5Ozs7O047Ozs7OworMjRBRjtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBUO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNzQgMDAyOTs7OztOOzs7OzsKKzI0QjA7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgVTtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDc1IDAwMjk7Ozs7Tjs7Ozs7CisyNEIxO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIFY7U287MDtMOzxjb21wYXQ+IDAwMjggMDA3NiAwMDI5Ozs7O047Ozs7OworMjRCMjtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBXO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNzcgMDAyOTs7OztOOzs7OzsKKzI0QjM7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgWDtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDc4IDAwMjk7Ozs7Tjs7Ozs7CisyNEI0O1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIFk7U287MDtMOzxjb21wYXQ+IDAwMjggMDA3OSAwMDI5Ozs7O047Ozs7OworMjRCNTtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBaO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwN0EgMDAyOTs7OztOOzs7OzsKKzI0QjY7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBBO1NvOzA7TDs8Y2lyY2xlPiAwMDQxOzs7O047Ozs7MjREMDsKKzI0Qjc7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBCO1NvOzA7TDs8Y2lyY2xlPiAwMDQyOzs7O047Ozs7MjREMTsKKzI0Qjg7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBDO1NvOzA7TDs8Y2lyY2xlPiAwMDQzOzs7O047Ozs7MjREMjsKKzI0Qjk7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBEO1NvOzA7TDs8Y2lyY2xlPiAwMDQ0Ozs7O047Ozs7MjREMzsKKzI0QkE7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBFO1NvOzA7TDs8Y2lyY2xlPiAwMDQ1Ozs7O047Ozs7MjRENDsKKzI0QkI7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBGO1NvOzA7TDs8Y2lyY2xlPiAwMDQ2Ozs7O047Ozs7MjRENTsKKzI0QkM7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBHO1NvOzA7TDs8Y2lyY2xlPiAwMDQ3Ozs7O047Ozs7MjRENjsKKzI0QkQ7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBIO1NvOzA7TDs8Y2lyY2xlPiAwMDQ4Ozs7O047Ozs7MjRENzsKKzI0QkU7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBJO1NvOzA7TDs8Y2lyY2xlPiAwMDQ5Ozs7O047Ozs7MjREODsKKzI0QkY7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBKO1NvOzA7TDs8Y2lyY2xlPiAwMDRBOzs7O047Ozs7MjREOTsKKzI0QzA7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBLO1NvOzA7TDs8Y2lyY2xlPiAwMDRCOzs7O047Ozs7MjREQTsKKzI0QzE7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBMO1NvOzA7TDs8Y2lyY2xlPiAwMDRDOzs7O047Ozs7MjREQjsKKzI0QzI7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBNO1NvOzA7TDs8Y2lyY2xlPiAwMDREOzs7O047Ozs7MjREQzsKKzI0QzM7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBOO1NvOzA7TDs8Y2lyY2xlPiAwMDRFOzs7O047Ozs7MjRERDsKKzI0QzQ7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBPO1NvOzA7TDs8Y2lyY2xlPiAwMDRGOzs7O047Ozs7MjRERTsKKzI0QzU7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBQO1NvOzA7TDs8Y2lyY2xlPiAwMDUwOzs7O047Ozs7MjRERjsKKzI0QzY7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBRO1NvOzA7TDs8Y2lyY2xlPiAwMDUxOzs7O047Ozs7MjRFMDsKKzI0Qzc7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBSO1NvOzA7TDs8Y2lyY2xlPiAwMDUyOzs7O047Ozs7MjRFMTsKKzI0Qzg7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBTO1NvOzA7TDs8Y2lyY2xlPiAwMDUzOzs7O047Ozs7MjRFMjsKKzI0Qzk7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBUO1NvOzA7TDs8Y2lyY2xlPiAwMDU0Ozs7O047Ozs7MjRFMzsKKzI0Q0E7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBVO1NvOzA7TDs8Y2lyY2xlPiAwMDU1Ozs7O047Ozs7MjRFNDsKKzI0Q0I7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBWO1NvOzA7TDs8Y2lyY2xlPiAwMDU2Ozs7O047Ozs7MjRFNTsKKzI0Q0M7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBXO1NvOzA7TDs8Y2lyY2xlPiAwMDU3Ozs7O047Ozs7MjRFNjsKKzI0Q0Q7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBYO1NvOzA7TDs8Y2lyY2xlPiAwMDU4Ozs7O047Ozs7MjRFNzsKKzI0Q0U7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBZO1NvOzA7TDs8Y2lyY2xlPiAwMDU5Ozs7O047Ozs7MjRFODsKKzI0Q0Y7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBaO1NvOzA7TDs8Y2lyY2xlPiAwMDVBOzs7O047Ozs7MjRFOTsKKzI0RDA7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgQTtTbzswO0w7PGNpcmNsZT4gMDA2MTs7OztOOzs7MjRCNjs7MjRCNgorMjREMTtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBCO1NvOzA7TDs8Y2lyY2xlPiAwMDYyOzs7O047OzsyNEI3OzsyNEI3CisyNEQyO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIEM7U287MDtMOzxjaXJjbGU+IDAwNjM7Ozs7Tjs7OzI0Qjg7OzI0QjgKKzI0RDM7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgRDtTbzswO0w7PGNpcmNsZT4gMDA2NDs7OztOOzs7MjRCOTs7MjRCOQorMjRENDtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBFO1NvOzA7TDs8Y2lyY2xlPiAwMDY1Ozs7O047OzsyNEJBOzsyNEJBCisyNEQ1O0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIEY7U287MDtMOzxjaXJjbGU+IDAwNjY7Ozs7Tjs7OzI0QkI7OzI0QkIKKzI0RDY7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgRztTbzswO0w7PGNpcmNsZT4gMDA2Nzs7OztOOzs7MjRCQzs7MjRCQworMjRENztDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBIO1NvOzA7TDs8Y2lyY2xlPiAwMDY4Ozs7O047OzsyNEJEOzsyNEJECisyNEQ4O0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIEk7U287MDtMOzxjaXJjbGU+IDAwNjk7Ozs7Tjs7OzI0QkU7OzI0QkUKKzI0RDk7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgSjtTbzswO0w7PGNpcmNsZT4gMDA2QTs7OztOOzs7MjRCRjs7MjRCRgorMjREQTtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBLO1NvOzA7TDs8Y2lyY2xlPiAwMDZCOzs7O047OzsyNEMwOzsyNEMwCisyNERCO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIEw7U287MDtMOzxjaXJjbGU+IDAwNkM7Ozs7Tjs7OzI0QzE7OzI0QzEKKzI0REM7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgTTtTbzswO0w7PGNpcmNsZT4gMDA2RDs7OztOOzs7MjRDMjs7MjRDMgorMjRERDtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBOO1NvOzA7TDs8Y2lyY2xlPiAwMDZFOzs7O047OzsyNEMzOzsyNEMzCisyNERFO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIE87U287MDtMOzxjaXJjbGU+IDAwNkY7Ozs7Tjs7OzI0QzQ7OzI0QzQKKzI0REY7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgUDtTbzswO0w7PGNpcmNsZT4gMDA3MDs7OztOOzs7MjRDNTs7MjRDNQorMjRFMDtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBRO1NvOzA7TDs8Y2lyY2xlPiAwMDcxOzs7O047OzsyNEM2OzsyNEM2CisyNEUxO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIFI7U287MDtMOzxjaXJjbGU+IDAwNzI7Ozs7Tjs7OzI0Qzc7OzI0QzcKKzI0RTI7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgUztTbzswO0w7PGNpcmNsZT4gMDA3Mzs7OztOOzs7MjRDODs7MjRDOAorMjRFMztDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBUO1NvOzA7TDs8Y2lyY2xlPiAwMDc0Ozs7O047OzsyNEM5OzsyNEM5CisyNEU0O0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIFU7U287MDtMOzxjaXJjbGU+IDAwNzU7Ozs7Tjs7OzI0Q0E7OzI0Q0EKKzI0RTU7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgVjtTbzswO0w7PGNpcmNsZT4gMDA3Njs7OztOOzs7MjRDQjs7MjRDQgorMjRFNjtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBXO1NvOzA7TDs8Y2lyY2xlPiAwMDc3Ozs7O047OzsyNENDOzsyNENDCisyNEU3O0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIFg7U287MDtMOzxjaXJjbGU+IDAwNzg7Ozs7Tjs7OzI0Q0Q7OzI0Q0QKKzI0RTg7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgWTtTbzswO0w7PGNpcmNsZT4gMDA3OTs7OztOOzs7MjRDRTs7MjRDRQorMjRFOTtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBaO1NvOzA7TDs8Y2lyY2xlPiAwMDdBOzs7O047OzsyNENGOzsyNENGCisyNEVBO0NJUkNMRUQgRElHSVQgWkVSTztObzswO0VOOzxjaXJjbGU+IDAwMzA7OzA7MDtOOzs7OzsKKzI1MDA7Qk9YIERSQVdJTkdTIExJR0hUIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBIT1JJWk9OVEFMOzs7OworMjUwMTtCT1ggRFJBV0lOR1MgSEVBVlkgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIEhPUklaT05UQUw7Ozs7CisyNTAyO0JPWCBEUkFXSU5HUyBMSUdIVCBWRVJUSUNBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFZFUlRJQ0FMOzs7OworMjUwMztCT1ggRFJBV0lOR1MgSEVBVlkgVkVSVElDQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBWRVJUSUNBTDs7OzsKKzI1MDQ7Qk9YIERSQVdJTkdTIExJR0hUIFRSSVBMRSBEQVNIIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBUUklQTEUgREFTSCBIT1JJWk9OVEFMOzs7OworMjUwNTtCT1ggRFJBV0lOR1MgSEVBVlkgVFJJUExFIERBU0ggSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFRSSVBMRSBEQVNIIEhPUklaT05UQUw7Ozs7CisyNTA2O0JPWCBEUkFXSU5HUyBMSUdIVCBUUklQTEUgREFTSCBWRVJUSUNBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFRSSVBMRSBEQVNIIFZFUlRJQ0FMOzs7OworMjUwNztCT1ggRFJBV0lOR1MgSEVBVlkgVFJJUExFIERBU0ggVkVSVElDQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBUUklQTEUgREFTSCBWRVJUSUNBTDs7OzsKKzI1MDg7Qk9YIERSQVdJTkdTIExJR0hUIFFVQURSVVBMRSBEQVNIIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBRVUFEUlVQTEUgREFTSCBIT1JJWk9OVEFMOzs7OworMjUwOTtCT1ggRFJBV0lOR1MgSEVBVlkgUVVBRFJVUExFIERBU0ggSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFFVQURSVVBMRSBEQVNIIEhPUklaT05UQUw7Ozs7CisyNTBBO0JPWCBEUkFXSU5HUyBMSUdIVCBRVUFEUlVQTEUgREFTSCBWRVJUSUNBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFFVQURSVVBMRSBEQVNIIFZFUlRJQ0FMOzs7OworMjUwQjtCT1ggRFJBV0lOR1MgSEVBVlkgUVVBRFJVUExFIERBU0ggVkVSVElDQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBRVUFEUlVQTEUgREFTSCBWRVJUSUNBTDs7OzsKKzI1MEM7Qk9YIERSQVdJTkdTIExJR0hUIERPV04gQU5EIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgRE9XTiBBTkQgUklHSFQ7Ozs7CisyNTBEO0JPWCBEUkFXSU5HUyBET1dOIExJR0hUIEFORCBSSUdIVCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gTElHSFQgQU5EIFJJR0hUIEhFQVZZOzs7OworMjUwRTtCT1ggRFJBV0lOR1MgRE9XTiBIRUFWWSBBTkQgUklHSFQgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIEhFQVZZIEFORCBSSUdIVCBMSUdIVDs7OzsKKzI1MEY7Qk9YIERSQVdJTkdTIEhFQVZZIERPV04gQU5EIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgRE9XTiBBTkQgUklHSFQ7Ozs7CisyNTEwO0JPWCBEUkFXSU5HUyBMSUdIVCBET1dOIEFORCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgRE9XTiBBTkQgTEVGVDs7OzsKKzI1MTE7Qk9YIERSQVdJTkdTIERPV04gTElHSFQgQU5EIExFRlQgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIExJR0hUIEFORCBMRUZUIEhFQVZZOzs7OworMjUxMjtCT1ggRFJBV0lOR1MgRE9XTiBIRUFWWSBBTkQgTEVGVCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gSEVBVlkgQU5EIExFRlQgTElHSFQ7Ozs7CisyNTEzO0JPWCBEUkFXSU5HUyBIRUFWWSBET1dOIEFORCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgRE9XTiBBTkQgTEVGVDs7OzsKKzI1MTQ7Qk9YIERSQVdJTkdTIExJR0hUIFVQIEFORCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFVQIEFORCBSSUdIVDs7OzsKKzI1MTU7Qk9YIERSQVdJTkdTIFVQIExJR0hUIEFORCBSSUdIVCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIExJR0hUIEFORCBSSUdIVCBIRUFWWTs7OzsKKzI1MTY7Qk9YIERSQVdJTkdTIFVQIEhFQVZZIEFORCBSSUdIVCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFVQIEhFQVZZIEFORCBSSUdIVCBMSUdIVDs7OzsKKzI1MTc7Qk9YIERSQVdJTkdTIEhFQVZZIFVQIEFORCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFVQIEFORCBSSUdIVDs7OzsKKzI1MTg7Qk9YIERSQVdJTkdTIExJR0hUIFVQIEFORCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgVVAgQU5EIExFRlQ7Ozs7CisyNTE5O0JPWCBEUkFXSU5HUyBVUCBMSUdIVCBBTkQgTEVGVCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIExJR0hUIEFORCBMRUZUIEhFQVZZOzs7OworMjUxQTtCT1ggRFJBV0lOR1MgVVAgSEVBVlkgQU5EIExFRlQgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBIRUFWWSBBTkQgTEVGVCBMSUdIVDs7OzsKKzI1MUI7Qk9YIERSQVdJTkdTIEhFQVZZIFVQIEFORCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVVAgQU5EIExFRlQ7Ozs7CisyNTFDO0JPWCBEUkFXSU5HUyBMSUdIVCBWRVJUSUNBTCBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBWRVJUSUNBTCBBTkQgUklHSFQ7Ozs7CisyNTFEO0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBMSUdIVCBBTkQgUklHSFQgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBWRVJUSUNBTCBMSUdIVCBBTkQgUklHSFQgSEVBVlk7Ozs7CisyNTFFO0JPWCBEUkFXSU5HUyBVUCBIRUFWWSBBTkQgUklHSFQgRE9XTiBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFVQIEhFQVZZIEFORCBSSUdIVCBET1dOIExJR0hUOzs7OworMjUxRjtCT1ggRFJBV0lOR1MgRE9XTiBIRUFWWSBBTkQgUklHSFQgVVAgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIEhFQVZZIEFORCBSSUdIVCBVUCBMSUdIVDs7OzsKKzI1MjA7Qk9YIERSQVdJTkdTIFZFUlRJQ0FMIEhFQVZZIEFORCBSSUdIVCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIEhFQVZZIEFORCBSSUdIVCBMSUdIVDs7OzsKKzI1MjE7Qk9YIERSQVdJTkdTIERPV04gTElHSFQgQU5EIFJJR0hUIFVQIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBMSUdIVCBBTkQgUklHSFQgVVAgSEVBVlk7Ozs7CisyNTIyO0JPWCBEUkFXSU5HUyBVUCBMSUdIVCBBTkQgUklHSFQgRE9XTiBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIExJR0hUIEFORCBSSUdIVCBET1dOIEhFQVZZOzs7OworMjUyMztCT1ggRFJBV0lOR1MgSEVBVlkgVkVSVElDQUwgQU5EIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVkVSVElDQUwgQU5EIFJJR0hUOzs7OworMjUyNDtCT1ggRFJBV0lOR1MgTElHSFQgVkVSVElDQUwgQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBWRVJUSUNBTCBBTkQgTEVGVDs7OzsKKzI1MjU7Qk9YIERSQVdJTkdTIFZFUlRJQ0FMIExJR0hUIEFORCBMRUZUIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgTElHSFQgQU5EIExFRlQgSEVBVlk7Ozs7CisyNTI2O0JPWCBEUkFXSU5HUyBVUCBIRUFWWSBBTkQgTEVGVCBET1dOIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgVVAgSEVBVlkgQU5EIExFRlQgRE9XTiBMSUdIVDs7OzsKKzI1Mjc7Qk9YIERSQVdJTkdTIERPV04gSEVBVlkgQU5EIExFRlQgVVAgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIEhFQVZZIEFORCBMRUZUIFVQIExJR0hUOzs7OworMjUyODtCT1ggRFJBV0lOR1MgVkVSVElDQUwgSEVBVlkgQU5EIExFRlQgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBWRVJUSUNBTCBIRUFWWSBBTkQgTEVGVCBMSUdIVDs7OzsKKzI1Mjk7Qk9YIERSQVdJTkdTIERPV04gTElHSFQgQU5EIExFRlQgVVAgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIExJR0hUIEFORCBMRUZUIFVQIEhFQVZZOzs7OworMjUyQTtCT1ggRFJBV0lOR1MgVVAgTElHSFQgQU5EIExFRlQgRE9XTiBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIExJR0hUIEFORCBMRUZUIERPV04gSEVBVlk7Ozs7CisyNTJCO0JPWCBEUkFXSU5HUyBIRUFWWSBWRVJUSUNBTCBBTkQgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFZFUlRJQ0FMIEFORCBMRUZUOzs7OworMjUyQztCT1ggRFJBV0lOR1MgTElHSFQgRE9XTiBBTkQgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIERPV04gQU5EIEhPUklaT05UQUw7Ozs7CisyNTJEO0JPWCBEUkFXSU5HUyBMRUZUIEhFQVZZIEFORCBSSUdIVCBET1dOIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTEVGVCBIRUFWWSBBTkQgUklHSFQgRE9XTiBMSUdIVDs7OzsKKzI1MkU7Qk9YIERSQVdJTkdTIFJJR0hUIEhFQVZZIEFORCBMRUZUIERPV04gTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBSSUdIVCBIRUFWWSBBTkQgTEVGVCBET1dOIExJR0hUOzs7OworMjUyRjtCT1ggRFJBV0lOR1MgRE9XTiBMSUdIVCBBTkQgSE9SSVpPTlRBTCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gTElHSFQgQU5EIEhPUklaT05UQUwgSEVBVlk7Ozs7CisyNTMwO0JPWCBEUkFXSU5HUyBET1dOIEhFQVZZIEFORCBIT1JJWk9OVEFMIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBIRUFWWSBBTkQgSE9SSVpPTlRBTCBMSUdIVDs7OzsKKzI1MzE7Qk9YIERSQVdJTkdTIFJJR0hUIExJR0hUIEFORCBMRUZUIERPV04gSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBSSUdIVCBMSUdIVCBBTkQgTEVGVCBET1dOIEhFQVZZOzs7OworMjUzMjtCT1ggRFJBV0lOR1MgTEVGVCBMSUdIVCBBTkQgUklHSFQgRE9XTiBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIExFRlQgTElHSFQgQU5EIFJJR0hUIERPV04gSEVBVlk7Ozs7CisyNTMzO0JPWCBEUkFXSU5HUyBIRUFWWSBET1dOIEFORCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgRE9XTiBBTkQgSE9SSVpPTlRBTDs7OzsKKzI1MzQ7Qk9YIERSQVdJTkdTIExJR0hUIFVQIEFORCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgVVAgQU5EIEhPUklaT05UQUw7Ozs7CisyNTM1O0JPWCBEUkFXSU5HUyBMRUZUIEhFQVZZIEFORCBSSUdIVCBVUCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExFRlQgSEVBVlkgQU5EIFJJR0hUIFVQIExJR0hUOzs7OworMjUzNjtCT1ggRFJBV0lOR1MgUklHSFQgSEVBVlkgQU5EIExFRlQgVVAgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBSSUdIVCBIRUFWWSBBTkQgTEVGVCBVUCBMSUdIVDs7OzsKKzI1Mzc7Qk9YIERSQVdJTkdTIFVQIExJR0hUIEFORCBIT1JJWk9OVEFMIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgVVAgTElHSFQgQU5EIEhPUklaT05UQUwgSEVBVlk7Ozs7CisyNTM4O0JPWCBEUkFXSU5HUyBVUCBIRUFWWSBBTkQgSE9SSVpPTlRBTCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFVQIEhFQVZZIEFORCBIT1JJWk9OVEFMIExJR0hUOzs7OworMjUzOTtCT1ggRFJBV0lOR1MgUklHSFQgTElHSFQgQU5EIExFRlQgVVAgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBSSUdIVCBMSUdIVCBBTkQgTEVGVCBVUCBIRUFWWTs7OzsKKzI1M0E7Qk9YIERSQVdJTkdTIExFRlQgTElHSFQgQU5EIFJJR0hUIFVQIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgTEVGVCBMSUdIVCBBTkQgUklHSFQgVVAgSEVBVlk7Ozs7CisyNTNCO0JPWCBEUkFXSU5HUyBIRUFWWSBVUCBBTkQgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFVQIEFORCBIT1JJWk9OVEFMOzs7OworMjUzQztCT1ggRFJBV0lOR1MgTElHSFQgVkVSVElDQUwgQU5EIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBWRVJUSUNBTCBBTkQgSE9SSVpPTlRBTDs7OzsKKzI1M0Q7Qk9YIERSQVdJTkdTIExFRlQgSEVBVlkgQU5EIFJJR0hUIFZFUlRJQ0FMIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTEVGVCBIRUFWWSBBTkQgUklHSFQgVkVSVElDQUwgTElHSFQ7Ozs7CisyNTNFO0JPWCBEUkFXSU5HUyBSSUdIVCBIRUFWWSBBTkQgTEVGVCBWRVJUSUNBTCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFJJR0hUIEhFQVZZIEFORCBMRUZUIFZFUlRJQ0FMIExJR0hUOzs7OworMjUzRjtCT1ggRFJBV0lOR1MgVkVSVElDQUwgTElHSFQgQU5EIEhPUklaT05UQUwgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBWRVJUSUNBTCBMSUdIVCBBTkQgSE9SSVpPTlRBTCBIRUFWWTs7OzsKKzI1NDA7Qk9YIERSQVdJTkdTIFVQIEhFQVZZIEFORCBET1dOIEhPUklaT05UQUwgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBIRUFWWSBBTkQgRE9XTiBIT1JJWk9OVEFMIExJR0hUOzs7OworMjU0MTtCT1ggRFJBV0lOR1MgRE9XTiBIRUFWWSBBTkQgVVAgSE9SSVpPTlRBTCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gSEVBVlkgQU5EIFVQIEhPUklaT05UQUwgTElHSFQ7Ozs7CisyNTQyO0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBIRUFWWSBBTkQgSE9SSVpPTlRBTCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIEhFQVZZIEFORCBIT1JJWk9OVEFMIExJR0hUOzs7OworMjU0MztCT1ggRFJBV0lOR1MgTEVGVCBVUCBIRUFWWSBBTkQgUklHSFQgRE9XTiBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExFRlQgVVAgSEVBVlkgQU5EIFJJR0hUIERPV04gTElHSFQ7Ozs7CisyNTQ0O0JPWCBEUkFXSU5HUyBSSUdIVCBVUCBIRUFWWSBBTkQgTEVGVCBET1dOIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgUklHSFQgVVAgSEVBVlkgQU5EIExFRlQgRE9XTiBMSUdIVDs7OzsKKzI1NDU7Qk9YIERSQVdJTkdTIExFRlQgRE9XTiBIRUFWWSBBTkQgUklHSFQgVVAgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMRUZUIERPV04gSEVBVlkgQU5EIFJJR0hUIFVQIExJR0hUOzs7OworMjU0NjtCT1ggRFJBV0lOR1MgUklHSFQgRE9XTiBIRUFWWSBBTkQgTEVGVCBVUCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFJJR0hUIERPV04gSEVBVlkgQU5EIExFRlQgVVAgTElHSFQ7Ozs7CisyNTQ3O0JPWCBEUkFXSU5HUyBET1dOIExJR0hUIEFORCBVUCBIT1JJWk9OVEFMIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBMSUdIVCBBTkQgVVAgSE9SSVpPTlRBTCBIRUFWWTs7OzsKKzI1NDg7Qk9YIERSQVdJTkdTIFVQIExJR0hUIEFORCBET1dOIEhPUklaT05UQUwgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBMSUdIVCBBTkQgRE9XTiBIT1JJWk9OVEFMIEhFQVZZOzs7OworMjU0OTtCT1ggRFJBV0lOR1MgUklHSFQgTElHSFQgQU5EIExFRlQgVkVSVElDQUwgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBSSUdIVCBMSUdIVCBBTkQgTEVGVCBWRVJUSUNBTCBIRUFWWTs7OzsKKzI1NEE7Qk9YIERSQVdJTkdTIExFRlQgTElHSFQgQU5EIFJJR0hUIFZFUlRJQ0FMIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgTEVGVCBMSUdIVCBBTkQgUklHSFQgVkVSVElDQUwgSEVBVlk7Ozs7CisyNTRCO0JPWCBEUkFXSU5HUyBIRUFWWSBWRVJUSUNBTCBBTkQgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFZFUlRJQ0FMIEFORCBIT1JJWk9OVEFMOzs7OworMjU0QztCT1ggRFJBV0lOR1MgTElHSFQgRE9VQkxFIERBU0ggSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIERPVUJMRSBEQVNIIEhPUklaT05UQUw7Ozs7CisyNTREO0JPWCBEUkFXSU5HUyBIRUFWWSBET1VCTEUgREFTSCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgRE9VQkxFIERBU0ggSE9SSVpPTlRBTDs7OzsKKzI1NEU7Qk9YIERSQVdJTkdTIExJR0hUIERPVUJMRSBEQVNIIFZFUlRJQ0FMO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgRE9VQkxFIERBU0ggVkVSVElDQUw7Ozs7CisyNTRGO0JPWCBEUkFXSU5HUyBIRUFWWSBET1VCTEUgREFTSCBWRVJUSUNBTDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIERPVUJMRSBEQVNIIFZFUlRJQ0FMOzs7OworMjU1MDtCT1ggRFJBV0lOR1MgRE9VQkxFIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBET1VCTEUgSE9SSVpPTlRBTDs7OzsKKzI1NTE7Qk9YIERSQVdJTkdTIERPVUJMRSBWRVJUSUNBTDtTbzswO09OOzs7OztOO0ZPUk1TIERPVUJMRSBWRVJUSUNBTDs7OzsKKzI1NTI7Qk9YIERSQVdJTkdTIERPV04gU0lOR0xFIEFORCBSSUdIVCBET1VCTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIFNJTkdMRSBBTkQgUklHSFQgRE9VQkxFOzs7OworMjU1MztCT1ggRFJBV0lOR1MgRE9XTiBET1VCTEUgQU5EIFJJR0hUIFNJTkdMRTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gRE9VQkxFIEFORCBSSUdIVCBTSU5HTEU7Ozs7CisyNTU0O0JPWCBEUkFXSU5HUyBET1VCTEUgRE9XTiBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBET1VCTEUgRE9XTiBBTkQgUklHSFQ7Ozs7CisyNTU1O0JPWCBEUkFXSU5HUyBET1dOIFNJTkdMRSBBTkQgTEVGVCBET1VCTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIFNJTkdMRSBBTkQgTEVGVCBET1VCTEU7Ozs7CisyNTU2O0JPWCBEUkFXSU5HUyBET1dOIERPVUJMRSBBTkQgTEVGVCBTSU5HTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIERPVUJMRSBBTkQgTEVGVCBTSU5HTEU7Ozs7CisyNTU3O0JPWCBEUkFXSU5HUyBET1VCTEUgRE9XTiBBTkQgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIERPVUJMRSBET1dOIEFORCBMRUZUOzs7OworMjU1ODtCT1ggRFJBV0lOR1MgVVAgU0lOR0xFIEFORCBSSUdIVCBET1VCTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBTSU5HTEUgQU5EIFJJR0hUIERPVUJMRTs7OzsKKzI1NTk7Qk9YIERSQVdJTkdTIFVQIERPVUJMRSBBTkQgUklHSFQgU0lOR0xFO1NvOzA7T047Ozs7O047Rk9STVMgVVAgRE9VQkxFIEFORCBSSUdIVCBTSU5HTEU7Ozs7CisyNTVBO0JPWCBEUkFXSU5HUyBET1VCTEUgVVAgQU5EIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgRE9VQkxFIFVQIEFORCBSSUdIVDs7OzsKKzI1NUI7Qk9YIERSQVdJTkdTIFVQIFNJTkdMRSBBTkQgTEVGVCBET1VCTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBTSU5HTEUgQU5EIExFRlQgRE9VQkxFOzs7OworMjU1QztCT1ggRFJBV0lOR1MgVVAgRE9VQkxFIEFORCBMRUZUIFNJTkdMRTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIERPVUJMRSBBTkQgTEVGVCBTSU5HTEU7Ozs7CisyNTVEO0JPWCBEUkFXSU5HUyBET1VCTEUgVVAgQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBET1VCTEUgVVAgQU5EIExFRlQ7Ozs7CisyNTVFO0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBTSU5HTEUgQU5EIFJJR0hUIERPVUJMRTtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIFNJTkdMRSBBTkQgUklHSFQgRE9VQkxFOzs7OworMjU1RjtCT1ggRFJBV0lOR1MgVkVSVElDQUwgRE9VQkxFIEFORCBSSUdIVCBTSU5HTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBWRVJUSUNBTCBET1VCTEUgQU5EIFJJR0hUIFNJTkdMRTs7OzsKKzI1NjA7Qk9YIERSQVdJTkdTIERPVUJMRSBWRVJUSUNBTCBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBET1VCTEUgVkVSVElDQUwgQU5EIFJJR0hUOzs7OworMjU2MTtCT1ggRFJBV0lOR1MgVkVSVElDQUwgU0lOR0xFIEFORCBMRUZUIERPVUJMRTtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIFNJTkdMRSBBTkQgTEVGVCBET1VCTEU7Ozs7CisyNTYyO0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBET1VCTEUgQU5EIExFRlQgU0lOR0xFO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgRE9VQkxFIEFORCBMRUZUIFNJTkdMRTs7OzsKKzI1NjM7Qk9YIERSQVdJTkdTIERPVUJMRSBWRVJUSUNBTCBBTkQgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIERPVUJMRSBWRVJUSUNBTCBBTkQgTEVGVDs7OzsKKzI1NjQ7Qk9YIERSQVdJTkdTIERPV04gU0lOR0xFIEFORCBIT1JJWk9OVEFMIERPVUJMRTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gU0lOR0xFIEFORCBIT1JJWk9OVEFMIERPVUJMRTs7OzsKKzI1NjU7Qk9YIERSQVdJTkdTIERPV04gRE9VQkxFIEFORCBIT1JJWk9OVEFMIFNJTkdMRTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gRE9VQkxFIEFORCBIT1JJWk9OVEFMIFNJTkdMRTs7OzsKKzI1NjY7Qk9YIERSQVdJTkdTIERPVUJMRSBET1dOIEFORCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgRE9VQkxFIERPV04gQU5EIEhPUklaT05UQUw7Ozs7CisyNTY3O0JPWCBEUkFXSU5HUyBVUCBTSU5HTEUgQU5EIEhPUklaT05UQUwgRE9VQkxFO1NvOzA7T047Ozs7O047Rk9STVMgVVAgU0lOR0xFIEFORCBIT1JJWk9OVEFMIERPVUJMRTs7OzsKKzI1Njg7Qk9YIERSQVdJTkdTIFVQIERPVUJMRSBBTkQgSE9SSVpPTlRBTCBTSU5HTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBET1VCTEUgQU5EIEhPUklaT05UQUwgU0lOR0xFOzs7OworMjU2OTtCT1ggRFJBV0lOR1MgRE9VQkxFIFVQIEFORCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgRE9VQkxFIFVQIEFORCBIT1JJWk9OVEFMOzs7OworMjU2QTtCT1ggRFJBV0lOR1MgVkVSVElDQUwgU0lOR0xFIEFORCBIT1JJWk9OVEFMIERPVUJMRTtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIFNJTkdMRSBBTkQgSE9SSVpPTlRBTCBET1VCTEU7Ozs7CisyNTZCO0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBET1VCTEUgQU5EIEhPUklaT05UQUwgU0lOR0xFO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgRE9VQkxFIEFORCBIT1JJWk9OVEFMIFNJTkdMRTs7OzsKKzI1NkM7Qk9YIERSQVdJTkdTIERPVUJMRSBWRVJUSUNBTCBBTkQgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIERPVUJMRSBWRVJUSUNBTCBBTkQgSE9SSVpPTlRBTDs7OzsKKzI1NkQ7Qk9YIERSQVdJTkdTIExJR0hUIEFSQyBET1dOIEFORCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIEFSQyBET1dOIEFORCBSSUdIVDs7OzsKKzI1NkU7Qk9YIERSQVdJTkdTIExJR0hUIEFSQyBET1dOIEFORCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgQVJDIERPV04gQU5EIExFRlQ7Ozs7CisyNTZGO0JPWCBEUkFXSU5HUyBMSUdIVCBBUkMgVVAgQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBBUkMgVVAgQU5EIExFRlQ7Ozs7CisyNTcwO0JPWCBEUkFXSU5HUyBMSUdIVCBBUkMgVVAgQU5EIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgQVJDIFVQIEFORCBSSUdIVDs7OzsKKzI1NzE7Qk9YIERSQVdJTkdTIExJR0hUIERJQUdPTkFMIFVQUEVSIFJJR0hUIFRPIExPV0VSIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBESUFHT05BTCBVUFBFUiBSSUdIVCBUTyBMT1dFUiBMRUZUOzs7OworMjU3MjtCT1ggRFJBV0lOR1MgTElHSFQgRElBR09OQUwgVVBQRVIgTEVGVCBUTyBMT1dFUiBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIERJQUdPTkFMIFVQUEVSIExFRlQgVE8gTE9XRVIgUklHSFQ7Ozs7CisyNTczO0JPWCBEUkFXSU5HUyBMSUdIVCBESUFHT05BTCBDUk9TUztTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIERJQUdPTkFMIENST1NTOzs7OworMjU3NDtCT1ggRFJBV0lOR1MgTElHSFQgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIExFRlQ7Ozs7CisyNTc1O0JPWCBEUkFXSU5HUyBMSUdIVCBVUDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFVQOzs7OworMjU3NjtCT1ggRFJBV0lOR1MgTElHSFQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBSSUdIVDs7OzsKKzI1Nzc7Qk9YIERSQVdJTkdTIExJR0hUIERPV047U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBET1dOOzs7OworMjU3ODtCT1ggRFJBV0lOR1MgSEVBVlkgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIExFRlQ7Ozs7CisyNTc5O0JPWCBEUkFXSU5HUyBIRUFWWSBVUDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFVQOzs7OworMjU3QTtCT1ggRFJBV0lOR1MgSEVBVlkgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBSSUdIVDs7OzsKKzI1N0I7Qk9YIERSQVdJTkdTIEhFQVZZIERPV047U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBET1dOOzs7OworMjU3QztCT1ggRFJBV0lOR1MgTElHSFQgTEVGVCBBTkQgSEVBVlkgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBMRUZUIEFORCBIRUFWWSBSSUdIVDs7OzsKKzI1N0Q7Qk9YIERSQVdJTkdTIExJR0hUIFVQIEFORCBIRUFWWSBET1dOO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgVVAgQU5EIEhFQVZZIERPV047Ozs7CisyNTdFO0JPWCBEUkFXSU5HUyBIRUFWWSBMRUZUIEFORCBMSUdIVCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIExFRlQgQU5EIExJR0hUIFJJR0hUOzs7OworMjU3RjtCT1ggRFJBV0lOR1MgSEVBVlkgVVAgQU5EIExJR0hUIERPV047U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBVUCBBTkQgTElHSFQgRE9XTjs7OzsKKzI1ODA7VVBQRVIgSEFMRiBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1ODE7TE9XRVIgT05FIEVJR0hUSCBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1ODI7TE9XRVIgT05FIFFVQVJURVIgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTgzO0xPV0VSIFRIUkVFIEVJR0hUSFMgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTg0O0xPV0VSIEhBTEYgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTg1O0xPV0VSIEZJVkUgRUlHSFRIUyBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1ODY7TE9XRVIgVEhSRUUgUVVBUlRFUlMgQkxPQ0s7U287MDtPTjs7Ozs7TjtMT1dFUiBUSFJFRSBRVUFSVEVSIEJMT0NLOzs7OworMjU4NztMT1dFUiBTRVZFTiBFSUdIVEhTIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4ODtGVUxMIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4OTtMRUZUIFNFVkVOIEVJR0hUSFMgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNThBO0xFRlQgVEhSRUUgUVVBUlRFUlMgQkxPQ0s7U287MDtPTjs7Ozs7TjtMRUZUIFRIUkVFIFFVQVJURVIgQkxPQ0s7Ozs7CisyNThCO0xFRlQgRklWRSBFSUdIVEhTIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4QztMRUZUIEhBTEYgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNThEO0xFRlQgVEhSRUUgRUlHSFRIUyBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1OEU7TEVGVCBPTkUgUVVBUlRFUiBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1OEY7TEVGVCBPTkUgRUlHSFRIIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU5MDtSSUdIVCBIQUxGIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU5MTtMSUdIVCBTSEFERTtTbzswO09OOzs7OztOOzs7OzsKKzI1OTI7TUVESVVNIFNIQURFO1NvOzA7T047Ozs7O047Ozs7OworMjU5MztEQVJLIFNIQURFO1NvOzA7T047Ozs7O047Ozs7OworMjU5NDtVUFBFUiBPTkUgRUlHSFRIIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU5NTtSSUdIVCBPTkUgRUlHSFRIIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjVBMDtCTEFDSyBTUVVBUkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUExO1dISVRFIFNRVUFSRTtTbzswO09OOzs7OztOOzs7OzsKKzI1QTI7V0hJVEUgU1FVQVJFIFdJVEggUk9VTkRFRCBDT1JORVJTO1NvOzA7T047Ozs7O047Ozs7OworMjVBMztXSElURSBTUVVBUkUgQ09OVEFJTklORyBCTEFDSyBTTUFMTCBTUVVBUkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUE0O1NRVUFSRSBXSVRIIEhPUklaT05UQUwgRklMTDtTbzswO09OOzs7OztOOzs7OzsKKzI1QTU7U1FVQVJFIFdJVEggVkVSVElDQUwgRklMTDtTbzswO09OOzs7OztOOzs7OzsKKzI1QTY7U1FVQVJFIFdJVEggT1JUSE9HT05BTCBDUk9TU0hBVENIIEZJTEw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUE3O1NRVUFSRSBXSVRIIFVQUEVSIExFRlQgVE8gTE9XRVIgUklHSFQgRklMTDtTbzswO09OOzs7OztOOzs7OzsKKzI1QTg7U1FVQVJFIFdJVEggVVBQRVIgUklHSFQgVE8gTE9XRVIgTEVGVCBGSUxMO1NvOzA7T047Ozs7O047Ozs7OworMjVBOTtTUVVBUkUgV0lUSCBESUFHT05BTCBDUk9TU0hBVENIIEZJTEw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUFBO0JMQUNLIFNNQUxMIFNRVUFSRTtTbzswO09OOzs7OztOOzs7OzsKKzI1QUI7V0hJVEUgU01BTEwgU1FVQVJFO1NvOzA7T047Ozs7O047Ozs7OworMjVBQztCTEFDSyBSRUNUQU5HTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUFEO1dISVRFIFJFQ1RBTkdMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1QUU7QkxBQ0sgVkVSVElDQUwgUkVDVEFOR0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVBRjtXSElURSBWRVJUSUNBTCBSRUNUQU5HTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUIwO0JMQUNLIFBBUkFMTEVMT0dSQU07U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUIxO1dISVRFIFBBUkFMTEVMT0dSQU07U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUIyO0JMQUNLIFVQLVBPSU5USU5HIFRSSUFOR0xFO1NvOzA7T047Ozs7O047QkxBQ0sgVVAgUE9JTlRJTkcgVFJJQU5HTEU7Ozs7CisyNUIzO1dISVRFIFVQLVBPSU5USU5HIFRSSUFOR0xFO1NvOzA7T047Ozs7O047V0hJVEUgVVAgUE9JTlRJTkcgVFJJQU5HTEU7Ozs7CisyNUI0O0JMQUNLIFVQLVBPSU5USU5HIFNNQUxMIFRSSUFOR0xFO1NvOzA7T047Ozs7O047QkxBQ0sgVVAgUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7Ozs7CisyNUI1O1dISVRFIFVQLVBPSU5USU5HIFNNQUxMIFRSSUFOR0xFO1NvOzA7T047Ozs7O047V0hJVEUgVVAgUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7Ozs7CisyNUI2O0JMQUNLIFJJR0hULVBPSU5USU5HIFRSSUFOR0xFO1NvOzA7T047Ozs7O047QkxBQ0sgUklHSFQgUE9JTlRJTkcgVFJJQU5HTEU7Ozs7CisyNUI3O1dISVRFIFJJR0hULVBPSU5USU5HIFRSSUFOR0xFO1NtOzA7T047Ozs7O047V0hJVEUgUklHSFQgUE9JTlRJTkcgVFJJQU5HTEU7Ozs7CisyNUI4O0JMQUNLIFJJR0hULVBPSU5USU5HIFNNQUxMIFRSSUFOR0xFO1NvOzA7T047Ozs7O047QkxBQ0sgUklHSFQgUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7Ozs7CisyNUI5O1dISVRFIFJJR0hULVBPSU5USU5HIFNNQUxMIFRSSUFOR0xFO1NvOzA7T047Ozs7O047V0hJVEUgUklHSFQgUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7Ozs7CisyNUJBO0JMQUNLIFJJR0hULVBPSU5USU5HIFBPSU5URVI7U287MDtPTjs7Ozs7TjtCTEFDSyBSSUdIVCBQT0lOVElORyBQT0lOVEVSOzs7OworMjVCQjtXSElURSBSSUdIVC1QT0lOVElORyBQT0lOVEVSO1NvOzA7T047Ozs7O047V0hJVEUgUklHSFQgUE9JTlRJTkcgUE9JTlRFUjs7OzsKKzI1QkM7QkxBQ0sgRE9XTi1QT0lOVElORyBUUklBTkdMRTtTbzswO09OOzs7OztOO0JMQUNLIERPV04gUE9JTlRJTkcgVFJJQU5HTEU7Ozs7CisyNUJEO1dISVRFIERPV04tUE9JTlRJTkcgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtXSElURSBET1dOIFBPSU5USU5HIFRSSUFOR0xFOzs7OworMjVCRTtCTEFDSyBET1dOLVBPSU5USU5HIFNNQUxMIFRSSUFOR0xFO1NvOzA7T047Ozs7O047QkxBQ0sgRE9XTiBQT0lOVElORyBTTUFMTCBUUklBTkdMRTs7OzsKKzI1QkY7V0hJVEUgRE9XTi1QT0lOVElORyBTTUFMTCBUUklBTkdMRTtTbzswO09OOzs7OztOO1dISVRFIERPV04gUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7Ozs7CisyNUMwO0JMQUNLIExFRlQtUE9JTlRJTkcgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtCTEFDSyBMRUZUIFBPSU5USU5HIFRSSUFOR0xFOzs7OworMjVDMTtXSElURSBMRUZULVBPSU5USU5HIFRSSUFOR0xFO1NtOzA7T047Ozs7O047V0hJVEUgTEVGVCBQT0lOVElORyBUUklBTkdMRTs7OzsKKzI1QzI7QkxBQ0sgTEVGVC1QT0lOVElORyBTTUFMTCBUUklBTkdMRTtTbzswO09OOzs7OztOO0JMQUNLIExFRlQgUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7Ozs7CisyNUMzO1dISVRFIExFRlQtUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtXSElURSBMRUZUIFBPSU5USU5HIFNNQUxMIFRSSUFOR0xFOzs7OworMjVDNDtCTEFDSyBMRUZULVBPSU5USU5HIFBPSU5URVI7U287MDtPTjs7Ozs7TjtCTEFDSyBMRUZUIFBPSU5USU5HIFBPSU5URVI7Ozs7CisyNUM1O1dISVRFIExFRlQtUE9JTlRJTkcgUE9JTlRFUjtTbzswO09OOzs7OztOO1dISVRFIExFRlQgUE9JTlRJTkcgUE9JTlRFUjs7OzsKKzI1QzY7QkxBQ0sgRElBTU9ORDtTbzswO09OOzs7OztOOzs7OzsKKzI1Qzc7V0hJVEUgRElBTU9ORDtTbzswO09OOzs7OztOOzs7OzsKKzI1Qzg7V0hJVEUgRElBTU9ORCBDT05UQUlOSU5HIEJMQUNLIFNNQUxMIERJQU1PTkQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUM5O0ZJU0hFWUU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUNBO0xPWkVOR0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUNCO1dISVRFIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1Q0M7RE9UVEVEIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1Q0Q7Q0lSQ0xFIFdJVEggVkVSVElDQUwgRklMTDtTbzswO09OOzs7OztOOzs7OzsKKzI1Q0U7QlVMTFNFWUU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUNGO0JMQUNLIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1RDA7Q0lSQ0xFIFdJVEggTEVGVCBIQUxGIEJMQUNLO1NvOzA7T047Ozs7O047Ozs7OworMjVEMTtDSVJDTEUgV0lUSCBSSUdIVCBIQUxGIEJMQUNLO1NvOzA7T047Ozs7O047Ozs7OworMjVEMjtDSVJDTEUgV0lUSCBMT1dFUiBIQUxGIEJMQUNLO1NvOzA7T047Ozs7O047Ozs7OworMjVEMztDSVJDTEUgV0lUSCBVUFBFUiBIQUxGIEJMQUNLO1NvOzA7T047Ozs7O047Ozs7OworMjVENDtDSVJDTEUgV0lUSCBVUFBFUiBSSUdIVCBRVUFEUkFOVCBCTEFDSztTbzswO09OOzs7OztOOzs7OzsKKzI1RDU7Q0lSQ0xFIFdJVEggQUxMIEJVVCBVUFBFUiBMRUZUIFFVQURSQU5UIEJMQUNLO1NvOzA7T047Ozs7O047Ozs7OworMjVENjtMRUZUIEhBTEYgQkxBQ0sgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVENztSSUdIVCBIQUxGIEJMQUNLIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1RDg7SU5WRVJTRSBCVUxMRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUQ5O0lOVkVSU0UgV0hJVEUgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVEQTtVUFBFUiBIQUxGIElOVkVSU0UgV0hJVEUgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVEQjtMT1dFUiBIQUxGIElOVkVSU0UgV0hJVEUgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVEQztVUFBFUiBMRUZUIFFVQURSQU5UIENJUkNVTEFSIEFSQztTbzswO09OOzs7OztOOzs7OzsKKzI1REQ7VVBQRVIgUklHSFQgUVVBRFJBTlQgQ0lSQ1VMQVIgQVJDO1NvOzA7T047Ozs7O047Ozs7OworMjVERTtMT1dFUiBSSUdIVCBRVUFEUkFOVCBDSVJDVUxBUiBBUkM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNURGO0xPV0VSIExFRlQgUVVBRFJBTlQgQ0lSQ1VMQVIgQVJDO1NvOzA7T047Ozs7O047Ozs7OworMjVFMDtVUFBFUiBIQUxGIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1RTE7TE9XRVIgSEFMRiBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUUyO0JMQUNLIExPV0VSIFJJR0hUIFRSSUFOR0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVFMztCTEFDSyBMT1dFUiBMRUZUIFRSSUFOR0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVFNDtCTEFDSyBVUFBFUiBMRUZUIFRSSUFOR0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVFNTtCTEFDSyBVUFBFUiBSSUdIVCBUUklBTkdMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1RTY7V0hJVEUgQlVMTEVUO1NvOzA7T047Ozs7O047Ozs7OworMjVFNztTUVVBUkUgV0lUSCBMRUZUIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUU4O1NRVUFSRSBXSVRIIFJJR0hUIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUU5O1NRVUFSRSBXSVRIIFVQUEVSIExFRlQgRElBR09OQUwgSEFMRiBCTEFDSztTbzswO09OOzs7OztOOzs7OzsKKzI1RUE7U1FVQVJFIFdJVEggTE9XRVIgUklHSFQgRElBR09OQUwgSEFMRiBCTEFDSztTbzswO09OOzs7OztOOzs7OzsKKzI1RUI7V0hJVEUgU1FVQVJFIFdJVEggVkVSVElDQUwgQklTRUNUSU5HIExJTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUVDO1dISVRFIFVQLVBPSU5USU5HIFRSSUFOR0xFIFdJVEggRE9UO1NvOzA7T047Ozs7O047V0hJVEUgVVAgUE9JTlRJTkcgVFJJQU5HTEUgV0lUSCBET1Q7Ozs7CisyNUVEO1VQLVBPSU5USU5HIFRSSUFOR0xFIFdJVEggTEVGVCBIQUxGIEJMQUNLO1NvOzA7T047Ozs7O047VVAgUE9JTlRJTkcgVFJJQU5HTEUgV0lUSCBMRUZUIEhBTEYgQkxBQ0s7Ozs7CisyNUVFO1VQLVBPSU5USU5HIFRSSUFOR0xFIFdJVEggUklHSFQgSEFMRiBCTEFDSztTbzswO09OOzs7OztOO1VQIFBPSU5USU5HIFRSSUFOR0xFIFdJVEggUklHSFQgSEFMRiBCTEFDSzs7OzsKKzI1RUY7TEFSR0UgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVGMDtXSElURSBTUVVBUkUgV0lUSCBVUFBFUiBMRUZUIFFVQURSQU5UO1NvOzA7T047Ozs7O047Ozs7OworMjVGMTtXSElURSBTUVVBUkUgV0lUSCBMT1dFUiBMRUZUIFFVQURSQU5UO1NvOzA7T047Ozs7O047Ozs7OworMjVGMjtXSElURSBTUVVBUkUgV0lUSCBMT1dFUiBSSUdIVCBRVUFEUkFOVDtTbzswO09OOzs7OztOOzs7OzsKKzI1RjM7V0hJVEUgU1FVQVJFIFdJVEggVVBQRVIgUklHSFQgUVVBRFJBTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUY0O1dISVRFIENJUkNMRSBXSVRIIFVQUEVSIExFRlQgUVVBRFJBTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUY1O1dISVRFIENJUkNMRSBXSVRIIExPV0VSIExFRlQgUVVBRFJBTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUY2O1dISVRFIENJUkNMRSBXSVRIIExPV0VSIFJJR0hUIFFVQURSQU5UO1NvOzA7T047Ozs7O047Ozs7OworMjVGNztXSElURSBDSVJDTEUgV0lUSCBVUFBFUiBSSUdIVCBRVUFEUkFOVDtTbzswO09OOzs7OztOOzs7OzsKKzI2MDA7QkxBQ0sgU1VOIFdJVEggUkFZUztTbzswO09OOzs7OztOOzs7OzsKKzI2MDE7Q0xPVUQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjAyO1VNQlJFTExBO1NvOzA7T047Ozs7O047Ozs7OworMjYwMztTTk9XTUFOO1NvOzA7T047Ozs7O047Ozs7OworMjYwNDtDT01FVDtTbzswO09OOzs7OztOOzs7OzsKKzI2MDU7QkxBQ0sgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI2MDY7V0hJVEUgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI2MDc7TElHSFROSU5HO1NvOzA7T047Ozs7O047Ozs7OworMjYwODtUSFVOREVSU1RPUk07U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjA5O1NVTjtTbzswO09OOzs7OztOOzs7OzsKKzI2MEE7QVNDRU5ESU5HIE5PREU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjBCO0RFU0NFTkRJTkcgTk9ERTtTbzswO09OOzs7OztOOzs7OzsKKzI2MEM7Q09OSlVOQ1RJT047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjBEO09QUE9TSVRJT047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjBFO0JMQUNLIFRFTEVQSE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzI2MEY7V0hJVEUgVEVMRVBIT05FO1NvOzA7T047Ozs7O047Ozs7OworMjYxMDtCQUxMT1QgQk9YO1NvOzA7T047Ozs7O047Ozs7OworMjYxMTtCQUxMT1QgQk9YIFdJVEggQ0hFQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjEyO0JBTExPVCBCT1ggV0lUSCBYO1NvOzA7T047Ozs7O047Ozs7OworMjYxMztTQUxUSVJFO1NvOzA7T047Ozs7O047Ozs7OworMjYxOTtSRVZFUlNFRCBST1RBVEVEIEZMT1JBTCBIRUFSVCBCVUxMRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjFBO0JMQUNLIExFRlQgUE9JTlRJTkcgSU5ERVg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjFCO0JMQUNLIFJJR0hUIFBPSU5USU5HIElOREVYO1NvOzA7T047Ozs7O047Ozs7OworMjYxQztXSElURSBMRUZUIFBPSU5USU5HIElOREVYO1NvOzA7T047Ozs7O047Ozs7OworMjYxRDtXSElURSBVUCBQT0lOVElORyBJTkRFWDtTbzswO09OOzs7OztOOzs7OzsKKzI2MUU7V0hJVEUgUklHSFQgUE9JTlRJTkcgSU5ERVg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjFGO1dISVRFIERPV04gUE9JTlRJTkcgSU5ERVg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjIwO1NLVUxMIEFORCBDUk9TU0JPTkVTO1NvOzA7T047Ozs7O047Ozs7OworMjYyMTtDQVVUSU9OIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjIyO1JBRElPQUNUSVZFIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjIzO0JJT0hBWkFSRCBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMjYyNDtDQURVQ0VVUztTbzswO09OOzs7OztOOzs7OzsKKzI2MjU7QU5LSDtTbzswO09OOzs7OztOOzs7OzsKKzI2MjY7T1JUSE9ET1ggQ1JPU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjI3O0NISSBSSE87U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjI4O0NST1NTIE9GIExPUlJBSU5FO1NvOzA7T047Ozs7O047Ozs7OworMjYyOTtDUk9TUyBPRiBKRVJVU0FMRU07U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjJBO1NUQVIgQU5EIENSRVNDRU5UO1NvOzA7T047Ozs7O047Ozs7OworMjYyQjtGQVJTSSBTWU1CT0w7U287MDtPTjs7Ozs7TjtTWU1CT0wgT0YgSVJBTjs7OzsKKzI2MkM7QURJIFNIQUtUSTtTbzswO09OOzs7OztOOzs7OzsKKzI2MkQ7SEFNTUVSIEFORCBTSUNLTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjJFO1BFQUNFIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzI2MkY7WUlOIFlBTkc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjMwO1RSSUdSQU0gRk9SIEhFQVZFTjtTbzswO09OOzs7OztOOzs7OzsKKzI2MzE7VFJJR1JBTSBGT1IgTEFLRTtTbzswO09OOzs7OztOOzs7OzsKKzI2MzI7VFJJR1JBTSBGT1IgRklSRTtTbzswO09OOzs7OztOOzs7OzsKKzI2MzM7VFJJR1JBTSBGT1IgVEhVTkRFUjtTbzswO09OOzs7OztOOzs7OzsKKzI2MzQ7VFJJR1JBTSBGT1IgV0lORDtTbzswO09OOzs7OztOOzs7OzsKKzI2MzU7VFJJR1JBTSBGT1IgV0FURVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjM2O1RSSUdSQU0gRk9SIE1PVU5UQUlOO1NvOzA7T047Ozs7O047Ozs7OworMjYzNztUUklHUkFNIEZPUiBFQVJUSDtTbzswO09OOzs7OztOOzs7OzsKKzI2Mzg7V0hFRUwgT0YgREhBUk1BO1NvOzA7T047Ozs7O047Ozs7OworMjYzOTtXSElURSBGUk9XTklORyBGQUNFO1NvOzA7T047Ozs7O047Ozs7OworMjYzQTtXSElURSBTTUlMSU5HIEZBQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjNCO0JMQUNLIFNNSUxJTkcgRkFDRTtTbzswO09OOzs7OztOOzs7OzsKKzI2M0M7V0hJVEUgU1VOIFdJVEggUkFZUztTbzswO09OOzs7OztOOzs7OzsKKzI2M0Q7RklSU1QgUVVBUlRFUiBNT09OO1NvOzA7T047Ozs7O047Ozs7OworMjYzRTtMQVNUIFFVQVJURVIgTU9PTjtTbzswO09OOzs7OztOOzs7OzsKKzI2M0Y7TUVSQ1VSWTtTbzswO09OOzs7OztOOzs7OzsKKzI2NDA7RkVNQUxFIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjQxO0VBUlRIO1NvOzA7T047Ozs7O047Ozs7OworMjY0MjtNQUxFIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjQzO0pVUElURVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjQ0O1NBVFVSTjtTbzswO09OOzs7OztOOzs7OzsKKzI2NDU7VVJBTlVTO1NvOzA7T047Ozs7O047Ozs7OworMjY0NjtORVBUVU5FO1NvOzA7T047Ozs7O047Ozs7OworMjY0NztQTFVUTztTbzswO09OOzs7OztOOzs7OzsKKzI2NDg7QVJJRVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjQ5O1RBVVJVUztTbzswO09OOzs7OztOOzs7OzsKKzI2NEE7R0VNSU5JO1NvOzA7T047Ozs7O047Ozs7OworMjY0QjtDQU5DRVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjRDO0xFTztTbzswO09OOzs7OztOOzs7OzsKKzI2NEQ7VklSR087U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjRFO0xJQlJBO1NvOzA7T047Ozs7O047Ozs7OworMjY0RjtTQ09SUElVUztTbzswO09OOzs7OztOOzs7OzsKKzI2NTA7U0FHSVRUQVJJVVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjUxO0NBUFJJQ09STjtTbzswO09OOzs7OztOOzs7OzsKKzI2NTI7QVFVQVJJVVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjUzO1BJU0NFUztTbzswO09OOzs7OztOOzs7OzsKKzI2NTQ7V0hJVEUgQ0hFU1MgS0lORztTbzswO09OOzs7OztOOzs7OzsKKzI2NTU7V0hJVEUgQ0hFU1MgUVVFRU47U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjU2O1dISVRFIENIRVNTIFJPT0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjU3O1dISVRFIENIRVNTIEJJU0hPUDtTbzswO09OOzs7OztOOzs7OzsKKzI2NTg7V0hJVEUgQ0hFU1MgS05JR0hUO1NvOzA7T047Ozs7O047Ozs7OworMjY1OTtXSElURSBDSEVTUyBQQVdOO1NvOzA7T047Ozs7O047Ozs7OworMjY1QTtCTEFDSyBDSEVTUyBLSU5HO1NvOzA7T047Ozs7O047Ozs7OworMjY1QjtCTEFDSyBDSEVTUyBRVUVFTjtTbzswO09OOzs7OztOOzs7OzsKKzI2NUM7QkxBQ0sgQ0hFU1MgUk9PSztTbzswO09OOzs7OztOOzs7OzsKKzI2NUQ7QkxBQ0sgQ0hFU1MgQklTSE9QO1NvOzA7T047Ozs7O047Ozs7OworMjY1RTtCTEFDSyBDSEVTUyBLTklHSFQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjVGO0JMQUNLIENIRVNTIFBBV047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjYwO0JMQUNLIFNQQURFIFNVSVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjYxO1dISVRFIEhFQVJUIFNVSVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjYyO1dISVRFIERJQU1PTkQgU1VJVDtTbzswO09OOzs7OztOOzs7OzsKKzI2NjM7QkxBQ0sgQ0xVQiBTVUlUO1NvOzA7T047Ozs7O047Ozs7OworMjY2NDtXSElURSBTUEFERSBTVUlUO1NvOzA7T047Ozs7O047Ozs7OworMjY2NTtCTEFDSyBIRUFSVCBTVUlUO1NvOzA7T047Ozs7O047Ozs7OworMjY2NjtCTEFDSyBESUFNT05EIFNVSVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjY3O1dISVRFIENMVUIgU1VJVDtTbzswO09OOzs7OztOOzs7OzsKKzI2Njg7SE9UIFNQUklOR1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjY5O1FVQVJURVIgTk9URTtTbzswO09OOzs7OztOOzs7OzsKKzI2NkE7RUlHSFRIIE5PVEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjZCO0JFQU1FRCBFSUdIVEggTk9URVM7U287MDtPTjs7Ozs7TjtCQVJSRUQgRUlHSFRIIE5PVEVTOzs7OworMjY2QztCRUFNRUQgU0lYVEVFTlRIIE5PVEVTO1NvOzA7T047Ozs7O047QkFSUkVEIFNJWFRFRU5USCBOT1RFUzs7OzsKKzI2NkQ7TVVTSUMgRkxBVCBTSUdOO1NvOzA7T047Ozs7O047RkxBVDs7OzsKKzI2NkU7TVVTSUMgTkFUVVJBTCBTSUdOO1NvOzA7T047Ozs7O047TkFUVVJBTDs7OzsKKzI2NkY7TVVTSUMgU0hBUlAgU0lHTjtTbTswO09OOzs7OztOO1NIQVJQOzs7OworMjY3MDtXRVNUIFNZUklBQyBDUk9TUztTbzswO09OOzs7OztOOzs7OzsKKzI2NzE7RUFTVCBTWVJJQUMgQ1JPU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzAxO1VQUEVSIEJMQURFIFNDSVNTT1JTO1NvOzA7T047Ozs7O047Ozs7OworMjcwMjtCTEFDSyBTQ0lTU09SUztTbzswO09OOzs7OztOOzs7OzsKKzI3MDM7TE9XRVIgQkxBREUgU0NJU1NPUlM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzA0O1dISVRFIFNDSVNTT1JTO1NvOzA7T047Ozs7O047Ozs7OworMjcwNjtURUxFUEhPTkUgTE9DQVRJT04gU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzI3MDc7VEFQRSBEUklWRTtTbzswO09OOzs7OztOOzs7OzsKKzI3MDg7QUlSUExBTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzA5O0VOVkVMT1BFO1NvOzA7T047Ozs7O047Ozs7OworMjcwQztWSUNUT1JZIEhBTkQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzBEO1dSSVRJTkcgSEFORDtTbzswO09OOzs7OztOOzs7OzsKKzI3MEU7TE9XRVIgUklHSFQgUEVOQ0lMO1NvOzA7T047Ozs7O047Ozs7OworMjcwRjtQRU5DSUw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzEwO1VQUEVSIFJJR0hUIFBFTkNJTDtTbzswO09OOzs7OztOOzs7OzsKKzI3MTE7V0hJVEUgTklCO1NvOzA7T047Ozs7O047Ozs7OworMjcxMjtCTEFDSyBOSUI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzEzO0NIRUNLIE1BUks7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzE0O0hFQVZZIENIRUNLIE1BUks7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzE1O01VTFRJUExJQ0FUSU9OIFg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzE2O0hFQVZZIE1VTFRJUExJQ0FUSU9OIFg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzE3O0JBTExPVCBYO1NvOzA7T047Ozs7O047Ozs7OworMjcxODtIRUFWWSBCQUxMT1QgWDtTbzswO09OOzs7OztOOzs7OzsKKzI3MTk7T1VUTElORUQgR1JFRUsgQ1JPU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzFBO0hFQVZZIEdSRUVLIENST1NTO1NvOzA7T047Ozs7O047Ozs7OworMjcxQjtPUEVOIENFTlRSRSBDUk9TUztTbzswO09OOzs7OztOO09QRU4gQ0VOVEVSIENST1NTOzs7OworMjcxQztIRUFWWSBPUEVOIENFTlRSRSBDUk9TUztTbzswO09OOzs7OztOO0hFQVZZIE9QRU4gQ0VOVEVSIENST1NTOzs7OworMjcxRDtMQVRJTiBDUk9TUztTbzswO09OOzs7OztOOzs7OzsKKzI3MUU7U0hBRE9XRUQgV0hJVEUgTEFUSU4gQ1JPU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzFGO09VVExJTkVEIExBVElOIENST1NTO1NvOzA7T047Ozs7O047Ozs7OworMjcyMDtNQUxURVNFIENST1NTO1NvOzA7T047Ozs7O047Ozs7OworMjcyMTtTVEFSIE9GIERBVklEO1NvOzA7T047Ozs7O047Ozs7OworMjcyMjtGT1VSIFRFQVJEUk9QLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3MjM7Rk9VUiBCQUxMT09OLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3MjQ7SEVBVlkgRk9VUiBCQUxMT09OLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3MjU7Rk9VUiBDTFVCLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3MjY7QkxBQ0sgRk9VUiBQT0lOVEVEIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzI3O1dISVRFIEZPVVIgUE9JTlRFRCBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjcyOTtTVFJFU1MgT1VUTElORUQgV0hJVEUgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MkE7Q0lSQ0xFRCBXSElURSBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjcyQjtPUEVOIENFTlRSRSBCTEFDSyBTVEFSO1NvOzA7T047Ozs7O047T1BFTiBDRU5URVIgQkxBQ0sgU1RBUjs7OzsKKzI3MkM7QkxBQ0sgQ0VOVFJFIFdISVRFIFNUQVI7U287MDtPTjs7Ozs7TjtCTEFDSyBDRU5URVIgV0hJVEUgU1RBUjs7OzsKKzI3MkQ7T1VUTElORUQgQkxBQ0sgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MkU7SEVBVlkgT1VUTElORUQgQkxBQ0sgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MkY7UElOV0hFRUwgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MzA7U0hBRE9XRUQgV0hJVEUgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MzE7SEVBVlkgQVNURVJJU0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzMyO09QRU4gQ0VOVFJFIEFTVEVSSVNLO1NvOzA7T047Ozs7O047T1BFTiBDRU5URVIgQVNURVJJU0s7Ozs7CisyNzMzO0VJR0hUIFNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3MzQ7RUlHSFQgUE9JTlRFRCBCTEFDSyBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjczNTtFSUdIVCBQT0lOVEVEIFBJTldIRUVMIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzM2O1NJWCBQT0lOVEVEIEJMQUNLIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzM3O0VJR0hUIFBPSU5URUQgUkVDVElMSU5FQVIgQkxBQ0sgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3Mzg7SEVBVlkgRUlHSFQgUE9JTlRFRCBSRUNUSUxJTkVBUiBCTEFDSyBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjczOTtUV0VMVkUgUE9JTlRFRCBCTEFDSyBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjczQTtTSVhURUVOIFBPSU5URUQgQVNURVJJU0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzNCO1RFQVJEUk9QLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3M0M7T1BFTiBDRU5UUkUgVEVBUkRST1AtU1BPS0VEIEFTVEVSSVNLO1NvOzA7T047Ozs7O047T1BFTiBDRU5URVIgVEVBUkRST1AtU1BPS0VEIEFTVEVSSVNLOzs7OworMjczRDtIRUFWWSBURUFSRFJPUC1TUE9LRUQgQVNURVJJU0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzNFO1NJWCBQRVRBTExFRCBCTEFDSyBBTkQgV0hJVEUgRkxPUkVUVEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzNGO0JMQUNLIEZMT1JFVFRFO1NvOzA7T047Ozs7O047Ozs7OworMjc0MDtXSElURSBGTE9SRVRURTtTbzswO09OOzs7OztOOzs7OzsKKzI3NDE7RUlHSFQgUEVUQUxMRUQgT1VUTElORUQgQkxBQ0sgRkxPUkVUVEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzQyO0NJUkNMRUQgT1BFTiBDRU5UUkUgRUlHSFQgUE9JTlRFRCBTVEFSO1NvOzA7T047Ozs7O047Q0lSQ0xFRCBPUEVOIENFTlRFUiBFSUdIVCBQT0lOVEVEIFNUQVI7Ozs7CisyNzQzO0hFQVZZIFRFQVJEUk9QLVNQT0tFRCBQSU5XSEVFTCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3NDQ7U05PV0ZMQUtFO1NvOzA7T047Ozs7O047Ozs7OworMjc0NTtUSUdIVCBUUklGT0xJQVRFIFNOT1dGTEFLRTtTbzswO09OOzs7OztOOzs7OzsKKzI3NDY7SEVBVlkgQ0hFVlJPTiBTTk9XRkxBS0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzQ3O1NQQVJLTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzQ4O0hFQVZZIFNQQVJLTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzQ5O0JBTExPT04tU1BPS0VEIEFTVEVSSVNLO1NvOzA7T047Ozs7O047Ozs7OworMjc0QTtFSUdIVCBURUFSRFJPUC1TUE9LRUQgUFJPUEVMTEVSIEFTVEVSSVNLO1NvOzA7T047Ozs7O047Ozs7OworMjc0QjtIRUFWWSBFSUdIVCBURUFSRFJPUC1TUE9LRUQgUFJPUEVMTEVSIEFTVEVSSVNLO1NvOzA7T047Ozs7O047Ozs7OworMjc0RDtTSEFET1dFRCBXSElURSBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzRGO0xPV0VSIFJJR0hUIERST1AtU0hBRE9XRUQgV0hJVEUgU1FVQVJFO1NvOzA7T047Ozs7O047Ozs7OworMjc1MDtVUFBFUiBSSUdIVCBEUk9QLVNIQURPV0VEIFdISVRFIFNRVUFSRTtTbzswO09OOzs7OztOOzs7OzsKKzI3NTE7TE9XRVIgUklHSFQgU0hBRE9XRUQgV0hJVEUgU1FVQVJFO1NvOzA7T047Ozs7O047Ozs7OworMjc1MjtVUFBFUiBSSUdIVCBTSEFET1dFRCBXSElURSBTUVVBUkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzU2O0JMQUNLIERJQU1PTkQgTUlOVVMgV0hJVEUgWDtTbzswO09OOzs7OztOOzs7OzsKKzI3NTg7TElHSFQgVkVSVElDQUwgQkFSO1NvOzA7T047Ozs7O047Ozs7OworMjc1OTtNRURJVU0gVkVSVElDQUwgQkFSO1NvOzA7T047Ozs7O047Ozs7OworMjc1QTtIRUFWWSBWRVJUSUNBTCBCQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzVCO0hFQVZZIFNJTkdMRSBUVVJORUQgQ09NTUEgUVVPVEFUSU9OIE1BUksgT1JOQU1FTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzVDO0hFQVZZIFNJTkdMRSBDT01NQSBRVU9UQVRJT04gTUFSSyBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NUQ7SEVBVlkgRE9VQkxFIFRVUk5FRCBDT01NQSBRVU9UQVRJT04gTUFSSyBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NUU7SEVBVlkgRE9VQkxFIENPTU1BIFFVT1RBVElPTiBNQVJLIE9STkFNRU5UO1NvOzA7T047Ozs7O047Ozs7OworMjc2MTtDVVJWRUQgU1RFTSBQQVJBR1JBUEggU0lHTiBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NjI7SEVBVlkgRVhDTEFNQVRJT04gTUFSSyBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NjM7SEVBVlkgSEVBUlQgRVhDTEFNQVRJT04gTUFSSyBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NjQ7SEVBVlkgQkxBQ0sgSEVBUlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzY1O1JPVEFURUQgSEVBVlkgQkxBQ0sgSEVBUlQgQlVMTEVUO1NvOzA7T047Ozs7O047Ozs7OworMjc2NjtGTE9SQUwgSEVBUlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzY3O1JPVEFURUQgRkxPUkFMIEhFQVJUIEJVTExFVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NzY7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIE9ORTtObzswO09OOzs7MTsxO047SU5WRVJTRSBDSVJDTEVEIERJR0lUIE9ORTs7OzsKKzI3Nzc7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIFRXTztObzswO09OOzs7MjsyO047SU5WRVJTRSBDSVJDTEVEIERJR0lUIFRXTzs7OzsKKzI3Nzg7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIFRIUkVFO05vOzA7T047OzszOzM7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgVEhSRUU7Ozs7CisyNzc5O0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBESUdJVCBGT1VSO05vOzA7T047Ozs0OzQ7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgRk9VUjs7OzsKKzI3N0E7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIEZJVkU7Tm87MDtPTjs7OzU7NTtOO0lOVkVSU0UgQ0lSQ0xFRCBESUdJVCBGSVZFOzs7OworMjc3QjtESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgRElHSVQgU0lYO05vOzA7T047Ozs2OzY7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgU0lYOzs7OworMjc3QztESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgRElHSVQgU0VWRU47Tm87MDtPTjs7Ozc7NztOO0lOVkVSU0UgQ0lSQ0xFRCBESUdJVCBTRVZFTjs7OzsKKzI3N0Q7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIEVJR0hUO05vOzA7T047Ozs4Ozg7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgRUlHSFQ7Ozs7CisyNzdFO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBESUdJVCBOSU5FO05vOzA7T047Ozs5Ozk7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgTklORTs7OzsKKzI3N0Y7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIE5VTUJFUiBURU47Tm87MDtPTjs7OzsxMDtOO0lOVkVSU0UgQ0lSQ0xFRCBOVU1CRVIgVEVOOzs7OworMjc4MDtESU5HQkFUIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBPTkU7Tm87MDtPTjs7OzE7MTtOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBPTkU7Ozs7CisyNzgxO0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFRXTztObzswO09OOzs7MjsyO047Q0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFRXTzs7OzsKKzI3ODI7RElOR0JBVCBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgVEhSRUU7Tm87MDtPTjs7OzM7MztOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBUSFJFRTs7OzsKKzI3ODM7RElOR0JBVCBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgRk9VUjtObzswO09OOzs7NDs0O047Q0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZPVVI7Ozs7CisyNzg0O0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZJVkU7Tm87MDtPTjs7OzU7NTtOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBGSVZFOzs7OworMjc4NTtESU5HQkFUIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBTSVg7Tm87MDtPTjs7OzY7NjtOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBTSVg7Ozs7CisyNzg2O0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFNFVkVOO05vOzA7T047Ozs3Ozc7TjtDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgU0VWRU47Ozs7CisyNzg3O0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEVJR0hUO05vOzA7T047Ozs4Ozg7TjtDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgRUlHSFQ7Ozs7CisyNzg4O0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIE5JTkU7Tm87MDtPTjs7Ozk7OTtOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBOSU5FOzs7OworMjc4OTtESU5HQkFUIENJUkNMRUQgU0FOUy1TRVJJRiBOVU1CRVIgVEVOO05vOzA7T047Ozs7MTA7TjtDSVJDTEVEIFNBTlMtU0VSSUYgTlVNQkVSIFRFTjs7OzsKKzI3OEE7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgT05FO05vOzA7T047OzsxOzE7TjtJTlZFUlNFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBPTkU7Ozs7CisyNzhCO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFRXTztObzswO09OOzs7MjsyO047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgVFdPOzs7OworMjc4QztESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBUSFJFRTtObzswO09OOzs7MzszO047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgVEhSRUU7Ozs7CisyNzhEO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZPVVI7Tm87MDtPTjs7OzQ7NDtOO0lOVkVSU0UgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZPVVI7Ozs7CisyNzhFO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZJVkU7Tm87MDtPTjs7OzU7NTtOO0lOVkVSU0UgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZJVkU7Ozs7CisyNzhGO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFNJWDtObzswO09OOzs7Njs2O047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgU0lYOzs7OworMjc5MDtESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBTRVZFTjtObzswO09OOzs7Nzs3O047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgU0VWRU47Ozs7CisyNzkxO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEVJR0hUO05vOzA7T047Ozs4Ozg7TjtJTlZFUlNFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBFSUdIVDs7OzsKKzI3OTI7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgTklORTtObzswO09OOzs7OTs5O047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgTklORTs7OzsKKzI3OTM7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIFNBTlMtU0VSSUYgTlVNQkVSIFRFTjtObzswO09OOzs7OzEwO047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgTlVNQkVSIFRFTjs7OzsKKzI3OTQ7SEVBVlkgV0lERS1IRUFERUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFdJREUtSEVBREVEIFJJR0hUIEFSUk9XOzs7OworMjc5ODtIRUFWWSBTT1VUSCBFQVNUIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgTE9XRVIgUklHSFQgQVJST1c7Ozs7CisyNzk5O0hFQVZZIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBSSUdIVCBBUlJPVzs7OzsKKzI3OUE7SEVBVlkgTk9SVEggRUFTVCBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFVQUEVSIFJJR0hUIEFSUk9XOzs7OworMjc5QjtEUkFGVElORyBQT0lOVCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047RFJBRlRJTkcgUE9JTlQgUklHSFQgQVJST1c7Ozs7CisyNzlDO0hFQVZZIFJPVU5ELVRJUFBFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgUk9VTkQtVElQUEVEIFJJR0hUIEFSUk9XOzs7OworMjc5RDtUUklBTkdMRS1IRUFERUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO1RSSUFOR0xFLUhFQURFRCBSSUdIVCBBUlJPVzs7OzsKKzI3OUU7SEVBVlkgVFJJQU5HTEUtSEVBREVEIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBUUklBTkdMRS1IRUFERUQgUklHSFQgQVJST1c7Ozs7CisyNzlGO0RBU0hFRCBUUklBTkdMRS1IRUFERUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0RBU0hFRCBUUklBTkdMRS1IRUFERUQgUklHSFQgQVJST1c7Ozs7CisyN0EwO0hFQVZZIERBU0hFRCBUUklBTkdMRS1IRUFERUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIERBU0hFRCBUUklBTkdMRS1IRUFERUQgUklHSFQgQVJST1c7Ozs7CisyN0ExO0JMQUNLIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtCTEFDSyBSSUdIVCBBUlJPVzs7OzsKKzI3QTI7VEhSRUUtRCBUT1AtTElHSFRFRCBSSUdIVFdBUkRTIEFSUk9XSEVBRDtTbzswO09OOzs7OztOO1RIUkVFLUQgVE9QLUxJR0hURUQgUklHSFQgQVJST1dIRUFEOzs7OworMjdBMztUSFJFRS1EIEJPVFRPTS1MSUdIVEVEIFJJR0hUV0FSRFMgQVJST1dIRUFEO1NvOzA7T047Ozs7O047VEhSRUUtRCBCT1RUT00tTElHSFRFRCBSSUdIVCBBUlJPV0hFQUQ7Ozs7CisyN0E0O0JMQUNLIFJJR0hUV0FSRFMgQVJST1dIRUFEO1NvOzA7T047Ozs7O047QkxBQ0sgUklHSFQgQVJST1dIRUFEOzs7OworMjdBNTtIRUFWWSBCTEFDSyBDVVJWRUQgRE9XTldBUkRTIEFORCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgQkxBQ0sgQ1VSVkVEIERPV04gQU5EIFJJR0hUIEFSUk9XOzs7OworMjdBNjtIRUFWWSBCTEFDSyBDVVJWRUQgVVBXQVJEUyBBTkQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIEJMQUNLIENVUlZFRCBVUCBBTkQgUklHSFQgQVJST1c7Ozs7CisyN0E3O1NRVUFUIEJMQUNLIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtTUVVBVCBCTEFDSyBSSUdIVCBBUlJPVzs7OzsKKzI3QTg7SEVBVlkgQ09OQ0FWRS1QT0lOVEVEIEJMQUNLIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBDT05DQVZFLVBPSU5URUQgQkxBQ0sgUklHSFQgQVJST1c7Ozs7CisyN0E5O1JJR0hULVNIQURFRCBXSElURSBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047UklHSFQtU0hBREVEIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdBQTtMRUZULVNIQURFRCBXSElURSBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047TEVGVC1TSEFERUQgV0hJVEUgUklHSFQgQVJST1c7Ozs7CisyN0FCO0JBQ0stVElMVEVEIFNIQURPV0VEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtCQUNLLVRJTFRFRCBTSEFET1dFRCBXSElURSBSSUdIVCBBUlJPVzs7OzsKKzI3QUM7RlJPTlQtVElMVEVEIFNIQURPV0VEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtGUk9OVC1USUxURUQgU0hBRE9XRUQgV0hJVEUgUklHSFQgQVJST1c7Ozs7CisyN0FEO0hFQVZZIExPV0VSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBMT1dFUiBSSUdIVC1TSEFET1dFRCBXSElURSBSSUdIVCBBUlJPVzs7OzsKKzI3QUU7SEVBVlkgVVBQRVIgUklHSFQtU0hBRE9XRUQgV0hJVEUgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFVQUEVSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdBRjtOT1RDSEVEIExPV0VSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtOT1RDSEVEIExPV0VSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdCMTtOT1RDSEVEIFVQUEVSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtOT1RDSEVEIFVQUEVSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdCMjtDSVJDTEVEIEhFQVZZIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtDSVJDTEVEIEhFQVZZIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdCMztXSElURS1GRUFUSEVSRUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO1dISVRFLUZFQVRIRVJFRCBSSUdIVCBBUlJPVzs7OzsKKzI3QjQ7QkxBQ0stRkVBVEhFUkVEIFNPVVRIIEVBU1QgQVJST1c7U287MDtPTjs7Ozs7TjtCTEFDSy1GRUFUSEVSRUQgTE9XRVIgUklHSFQgQVJST1c7Ozs7CisyN0I1O0JMQUNLLUZFQVRIRVJFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047QkxBQ0stRkVBVEhFUkVEIFJJR0hUIEFSUk9XOzs7OworMjdCNjtCTEFDSy1GRUFUSEVSRUQgTk9SVEggRUFTVCBBUlJPVztTbzswO09OOzs7OztOO0JMQUNLLUZFQVRIRVJFRCBVUFBFUiBSSUdIVCBBUlJPVzs7OzsKKzI3Qjc7SEVBVlkgQkxBQ0stRkVBVEhFUkVEIFNPVVRIIEVBU1QgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBCTEFDSy1GRUFUSEVSRUQgTE9XRVIgUklHSFQgQVJST1c7Ozs7CisyN0I4O0hFQVZZIEJMQUNLLUZFQVRIRVJFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgQkxBQ0stRkVBVEhFUkVEIFJJR0hUIEFSUk9XOzs7OworMjdCOTtIRUFWWSBCTEFDSy1GRUFUSEVSRUQgTk9SVEggRUFTVCBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIEJMQUNLLUZFQVRIRVJFRCBVUFBFUiBSSUdIVCBBUlJPVzs7OzsKKzI3QkE7VEVBUkRST1AtQkFSQkVEIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtURUFSRFJPUC1CQVJCRUQgUklHSFQgQVJST1c7Ozs7CisyN0JCO0hFQVZZIFRFQVJEUk9QLVNIQU5LRUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFRFQVJEUk9QLVNIQU5LRUQgUklHSFQgQVJST1c7Ozs7CisyN0JDO1dFREdFLVRBSUxFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047V0VER0UtVEFJTEVEIFJJR0hUIEFSUk9XOzs7OworMjdCRDtIRUFWWSBXRURHRS1UQUlMRUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFdFREdFLVRBSUxFRCBSSUdIVCBBUlJPVzs7OzsKKzI3QkU7T1BFTi1PVVRMSU5FRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047T1BFTi1PVVRMSU5FRCBSSUdIVCBBUlJPVzs7OzsKKzI4MDA7QlJBSUxMRSBQQVRURVJOIEJMQU5LO1NvOzA7T047Ozs7O047Ozs7OworMjgwMTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xO1NvOzA7T047Ozs7O047Ozs7OworMjgwMjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yO1NvOzA7T047Ozs7O047Ozs7OworMjgwMztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjtTbzswO09OOzs7OztOOzs7OzsKKzI4MDQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMztTbzswO09OOzs7OztOOzs7OzsKKzI4MDU7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODA2O0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzO1NvOzA7T047Ozs7O047Ozs7OworMjgwNztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODA4O0JSQUlMTEUgUEFUVEVSTiBET1RTLTQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODA5O0JSQUlMTEUgUEFUVEVSTiBET1RTLTE0O1NvOzA7T047Ozs7O047Ozs7OworMjgwQTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNDtTbzswO09OOzs7OztOOzs7OzsKKzI4MEI7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI0O1NvOzA7T047Ozs7O047Ozs7OworMjgwQztCUkFJTExFIFBBVFRFUk4gRE9UUy0zNDtTbzswO09OOzs7OztOOzs7OzsKKzI4MEQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM0O1NvOzA7T047Ozs7O047Ozs7OworMjgwRTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODBGO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODEwO0JSQUlMTEUgUEFUVEVSTiBET1RTLTU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODExO0JSQUlMTEUgUEFUVEVSTiBET1RTLTE1O1NvOzA7T047Ozs7O047Ozs7OworMjgxMjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNTtTbzswO09OOzs7OztOOzs7OzsKKzI4MTM7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI1O1NvOzA7T047Ozs7O047Ozs7OworMjgxNDtCUkFJTExFIFBBVFRFUk4gRE9UUy0zNTtTbzswO09OOzs7OztOOzs7OzsKKzI4MTU7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM1O1NvOzA7T047Ozs7O047Ozs7OworMjgxNjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODE3O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODE4O0JSQUlMTEUgUEFUVEVSTiBET1RTLTQ1O1NvOzA7T047Ozs7O047Ozs7OworMjgxOTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNDU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODFBO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI0NTtTbzswO09OOzs7OztOOzs7OzsKKzI4MUI7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI0NTtTbzswO09OOzs7OztOOzs7OzsKKzI4MUM7QlJBSUxMRSBQQVRURVJOIERPVFMtMzQ1O1NvOzA7T047Ozs7O047Ozs7OworMjgxRDtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzQ1O1NvOzA7T047Ozs7O047Ozs7OworMjgxRTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzQ1O1NvOzA7T047Ozs7O047Ozs7OworMjgxRjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM0NTtTbzswO09OOzs7OztOOzs7OzsKKzI4MjA7QlJBSUxMRSBQQVRURVJOIERPVFMtNjtTbzswO09OOzs7OztOOzs7OzsKKzI4MjE7QlJBSUxMRSBQQVRURVJOIERPVFMtMTY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODIyO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI2O1NvOzA7T047Ozs7O047Ozs7OworMjgyMztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODI0O0JSQUlMTEUgUEFUVEVSTiBET1RTLTM2O1NvOzA7T047Ozs7O047Ozs7OworMjgyNTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODI2O0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNjtTbzswO09OOzs7OztOOzs7OzsKKzI4Mjc7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNjtTbzswO09OOzs7OztOOzs7OzsKKzI4Mjg7QlJBSUxMRSBQQVRURVJOIERPVFMtNDY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODI5O0JSQUlMTEUgUEFUVEVSTiBET1RTLTE0NjtTbzswO09OOzs7OztOOzs7OzsKKzI4MkE7QlJBSUxMRSBQQVRURVJOIERPVFMtMjQ2O1NvOzA7T047Ozs7O047Ozs7OworMjgyQjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjQ2O1NvOzA7T047Ozs7O047Ozs7OworMjgyQztCUkFJTExFIFBBVFRFUk4gRE9UUy0zNDY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODJEO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNDY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODJFO0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNDY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODJGO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzQ2O1NvOzA7T047Ozs7O047Ozs7OworMjgzMDtCUkFJTExFIFBBVFRFUk4gRE9UUy01NjtTbzswO09OOzs7OztOOzs7OzsKKzI4MzE7QlJBSUxMRSBQQVRURVJOIERPVFMtMTU2O1NvOzA7T047Ozs7O047Ozs7OworMjgzMjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNTY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODMzO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNTY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODM0O0JSQUlMTEUgUEFUVEVSTiBET1RTLTM1NjtTbzswO09OOzs7OztOOzs7OzsKKzI4MzU7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM1NjtTbzswO09OOzs7OztOOzs7OzsKKzI4MzY7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM1NjtTbzswO09OOzs7OztOOzs7OzsKKzI4Mzc7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNTY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODM4O0JSQUlMTEUgUEFUVEVSTiBET1RTLTQ1NjtTbzswO09OOzs7OztOOzs7OzsKKzI4Mzk7QlJBSUxMRSBQQVRURVJOIERPVFMtMTQ1NjtTbzswO09OOzs7OztOOzs7OzsKKzI4M0E7QlJBSUxMRSBQQVRURVJOIERPVFMtMjQ1NjtTbzswO09OOzs7OztOOzs7OzsKKzI4M0I7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI0NTY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODNDO0JSQUlMTEUgUEFUVEVSTiBET1RTLTM0NTY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODNEO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNDU2O1NvOzA7T047Ozs7O047Ozs7OworMjgzRTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzQ1NjtTbzswO09OOzs7OztOOzs7OzsKKzI4M0Y7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNDU2O1NvOzA7T047Ozs7O047Ozs7OworMjg0MDtCUkFJTExFIFBBVFRFUk4gRE9UUy03O1NvOzA7T047Ozs7O047Ozs7OworMjg0MTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNztTbzswO09OOzs7OztOOzs7OzsKKzI4NDI7QlJBSUxMRSBQQVRURVJOIERPVFMtMjc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODQzO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNztTbzswO09OOzs7OztOOzs7OzsKKzI4NDQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMzc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODQ1O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNztTbzswO09OOzs7OztOOzs7OzsKKzI4NDY7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM3O1NvOzA7T047Ozs7O047Ozs7OworMjg0NztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM3O1NvOzA7T047Ozs7O047Ozs7OworMjg0ODtCUkFJTExFIFBBVFRFUk4gRE9UUy00NztTbzswO09OOzs7OztOOzs7OzsKKzI4NDk7QlJBSUxMRSBQQVRURVJOIERPVFMtMTQ3O1NvOzA7T047Ozs7O047Ozs7OworMjg0QTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNDc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODRCO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNDc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODRDO0JSQUlMTEUgUEFUVEVSTiBET1RTLTM0NztTbzswO09OOzs7OztOOzs7OzsKKzI4NEQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM0NztTbzswO09OOzs7OztOOzs7OzsKKzI4NEU7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM0NztTbzswO09OOzs7OztOOzs7OzsKKzI4NEY7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNDc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODUwO0JSQUlMTEUgUEFUVEVSTiBET1RTLTU3O1NvOzA7T047Ozs7O047Ozs7OworMjg1MTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNTc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODUyO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI1NztTbzswO09OOzs7OztOOzs7OzsKKzI4NTM7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI1NztTbzswO09OOzs7OztOOzs7OzsKKzI4NTQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMzU3O1NvOzA7T047Ozs7O047Ozs7OworMjg1NTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzU3O1NvOzA7T047Ozs7O047Ozs7OworMjg1NjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzU3O1NvOzA7T047Ozs7O047Ozs7OworMjg1NztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM1NztTbzswO09OOzs7OztOOzs7OzsKKzI4NTg7QlJBSUxMRSBQQVRURVJOIERPVFMtNDU3O1NvOzA7T047Ozs7O047Ozs7OworMjg1OTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNDU3O1NvOzA7T047Ozs7O047Ozs7OworMjg1QTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNDU3O1NvOzA7T047Ozs7O047Ozs7OworMjg1QjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjQ1NztTbzswO09OOzs7OztOOzs7OzsKKzI4NUM7QlJBSUxMRSBQQVRURVJOIERPVFMtMzQ1NztTbzswO09OOzs7OztOOzs7OzsKKzI4NUQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM0NTc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODVFO0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNDU3O1NvOzA7T047Ozs7O047Ozs7OworMjg1RjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM0NTc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODYwO0JSQUlMTEUgUEFUVEVSTiBET1RTLTY3O1NvOzA7T047Ozs7O047Ozs7OworMjg2MTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNjc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODYyO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI2NztTbzswO09OOzs7OztOOzs7OzsKKzI4NjM7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI2NztTbzswO09OOzs7OztOOzs7OzsKKzI4NjQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMzY3O1NvOzA7T047Ozs7O047Ozs7OworMjg2NTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzY3O1NvOzA7T047Ozs7O047Ozs7OworMjg2NjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzY3O1NvOzA7T047Ozs7O047Ozs7OworMjg2NztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM2NztTbzswO09OOzs7OztOOzs7OzsKKzI4Njg7QlJBSUxMRSBQQVRURVJOIERPVFMtNDY3O1NvOzA7T047Ozs7O047Ozs7OworMjg2OTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNDY3O1NvOzA7T047Ozs7O047Ozs7OworMjg2QTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNDY3O1NvOzA7T047Ozs7O047Ozs7OworMjg2QjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjQ2NztTbzswO09OOzs7OztOOzs7OzsKKzI4NkM7QlJBSUxMRSBQQVRURVJOIERPVFMtMzQ2NztTbzswO09OOzs7OztOOzs7OzsKKzI4NkQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM0Njc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODZFO0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNDY3O1NvOzA7T047Ozs7O047Ozs7OworMjg2RjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM0Njc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODcwO0JSQUlMTEUgUEFUVEVSTiBET1RTLTU2NztTbzswO09OOzs7OztOOzs7OzsKKzI4NzE7QlJBSUxMRSBQQVRURVJOIERPVFMtMTU2NztTbzswO09OOzs7OztOOzs7OzsKKzI4NzI7QlJBSUxMRSBQQVRURVJOIERPVFMtMjU2NztTbzswO09OOzs7OztOOzs7OzsKKzI4NzM7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI1Njc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODc0O0JSQUlMTEUgUEFUVEVSTiBET1RTLTM1Njc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODc1O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNTY3O1NvOzA7T047Ozs7O047Ozs7OworMjg3NjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzU2NztTbzswO09OOzs7OztOOzs7OzsKKzI4Nzc7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNTY3O1NvOzA7T047Ozs7O047Ozs7OworMjg3ODtCUkFJTExFIFBBVFRFUk4gRE9UUy00NTY3O1NvOzA7T047Ozs7O047Ozs7OworMjg3OTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNDU2NztTbzswO09OOzs7OztOOzs7OzsKKzI4N0E7QlJBSUxMRSBQQVRURVJOIERPVFMtMjQ1Njc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODdCO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNDU2NztTbzswO09OOzs7OztOOzs7OzsKKzI4N0M7QlJBSUxMRSBQQVRURVJOIERPVFMtMzQ1Njc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODdEO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNDU2NztTbzswO09OOzs7OztOOzs7OzsKKzI4N0U7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM0NTY3O1NvOzA7T047Ozs7O047Ozs7OworMjg3RjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM0NTY3O1NvOzA7T047Ozs7O047Ozs7OworMjg4MDtCUkFJTExFIFBBVFRFUk4gRE9UUy04O1NvOzA7T047Ozs7O047Ozs7OworMjg4MTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xODtTbzswO09OOzs7OztOOzs7OzsKKzI4ODI7QlJBSUxMRSBQQVRURVJOIERPVFMtMjg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODgzO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyODtTbzswO09OOzs7OztOOzs7OzsKKzI4ODQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODg1O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzODtTbzswO09OOzs7OztOOzs7OzsKKzI4ODY7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM4O1NvOzA7T047Ozs7O047Ozs7OworMjg4NztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM4O1NvOzA7T047Ozs7O047Ozs7OworMjg4ODtCUkFJTExFIFBBVFRFUk4gRE9UUy00ODtTbzswO09OOzs7OztOOzs7OzsKKzI4ODk7QlJBSUxMRSBQQVRURVJOIERPVFMtMTQ4O1NvOzA7T047Ozs7O047Ozs7OworMjg4QTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNDg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODhCO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNDg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODhDO0JSQUlMTEUgUEFUVEVSTiBET1RTLTM0ODtTbzswO09OOzs7OztOOzs7OzsKKzI4OEQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM0ODtTbzswO09OOzs7OztOOzs7OzsKKzI4OEU7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM0ODtTbzswO09OOzs7OztOOzs7OzsKKzI4OEY7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNDg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODkwO0JSQUlMTEUgUEFUVEVSTiBET1RTLTU4O1NvOzA7T047Ozs7O047Ozs7OworMjg5MTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNTg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODkyO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI1ODtTbzswO09OOzs7OztOOzs7OzsKKzI4OTM7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI1ODtTbzswO09OOzs7OztOOzs7OzsKKzI4OTQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMzU4O1NvOzA7T047Ozs7O047Ozs7OworMjg5NTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzU4O1NvOzA7T047Ozs7O047Ozs7OworMjg5NjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzU4O1NvOzA7T047Ozs7O047Ozs7OworMjg5NztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM1ODtTbzswO09OOzs7OztOOzs7OzsKKzI4OTg7QlJBSUxMRSBQQVRURVJOIERPVFMtNDU4O1NvOzA7T047Ozs7O047Ozs7OworMjg5OTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNDU4O1NvOzA7T047Ozs7O047Ozs7OworMjg5QTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNDU4O1NvOzA7T047Ozs7O047Ozs7OworMjg5QjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjQ1ODtTbzswO09OOzs7OztOOzs7OzsKKzI4OUM7QlJBSUxMRSBQQVRURVJOIERPVFMtMzQ1ODtTbzswO09OOzs7OztOOzs7OzsKKzI4OUQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM0NTg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODlFO0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNDU4O1NvOzA7T047Ozs7O047Ozs7OworMjg5RjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM0NTg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEEwO0JSQUlMTEUgUEFUVEVSTiBET1RTLTY4O1NvOzA7T047Ozs7O047Ozs7OworMjhBMTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNjg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEEyO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI2ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QTM7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI2ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QTQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMzY4O1NvOzA7T047Ozs7O047Ozs7OworMjhBNTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzY4O1NvOzA7T047Ozs7O047Ozs7OworMjhBNjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzY4O1NvOzA7T047Ozs7O047Ozs7OworMjhBNztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM2ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QTg7QlJBSUxMRSBQQVRURVJOIERPVFMtNDY4O1NvOzA7T047Ozs7O047Ozs7OworMjhBOTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNDY4O1NvOzA7T047Ozs7O047Ozs7OworMjhBQTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNDY4O1NvOzA7T047Ozs7O047Ozs7OworMjhBQjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjQ2ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QUM7QlJBSUxMRSBQQVRURVJOIERPVFMtMzQ2ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QUQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM0Njg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEFFO0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNDY4O1NvOzA7T047Ozs7O047Ozs7OworMjhBRjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM0Njg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEIwO0JSQUlMTEUgUEFUVEVSTiBET1RTLTU2ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QjE7QlJBSUxMRSBQQVRURVJOIERPVFMtMTU2ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QjI7QlJBSUxMRSBQQVRURVJOIERPVFMtMjU2ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QjM7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI1Njg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEI0O0JSQUlMTEUgUEFUVEVSTiBET1RTLTM1Njg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEI1O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNTY4O1NvOzA7T047Ozs7O047Ozs7OworMjhCNjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzU2ODtTbzswO09OOzs7OztOOzs7OzsKKzI4Qjc7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNTY4O1NvOzA7T047Ozs7O047Ozs7OworMjhCODtCUkFJTExFIFBBVFRFUk4gRE9UUy00NTY4O1NvOzA7T047Ozs7O047Ozs7OworMjhCOTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNDU2ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QkE7QlJBSUxMRSBQQVRURVJOIERPVFMtMjQ1Njg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEJCO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNDU2ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QkM7QlJBSUxMRSBQQVRURVJOIERPVFMtMzQ1Njg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEJEO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNDU2ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QkU7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM0NTY4O1NvOzA7T047Ozs7O047Ozs7OworMjhCRjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM0NTY4O1NvOzA7T047Ozs7O047Ozs7OworMjhDMDtCUkFJTExFIFBBVFRFUk4gRE9UUy03ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QzE7QlJBSUxMRSBQQVRURVJOIERPVFMtMTc4O1NvOzA7T047Ozs7O047Ozs7OworMjhDMjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEMzO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEM0O0JSQUlMTEUgUEFUVEVSTiBET1RTLTM3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QzU7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QzY7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4Qzc7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEM4O0JSQUlMTEUgUEFUVEVSTiBET1RTLTQ3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4Qzk7QlJBSUxMRSBQQVRURVJOIERPVFMtMTQ3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4Q0E7QlJBSUxMRSBQQVRURVJOIERPVFMtMjQ3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4Q0I7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI0Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOENDO0JSQUlMTEUgUEFUVEVSTiBET1RTLTM0Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOENEO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNDc4O1NvOzA7T047Ozs7O047Ozs7OworMjhDRTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzQ3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4Q0Y7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNDc4O1NvOzA7T047Ozs7O047Ozs7OworMjhEMDtCUkFJTExFIFBBVFRFUk4gRE9UUy01Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEQxO0JSQUlMTEUgUEFUVEVSTiBET1RTLTE1Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEQyO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI1Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEQzO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNTc4O1NvOzA7T047Ozs7O047Ozs7OworMjhENDtCUkFJTExFIFBBVFRFUk4gRE9UUy0zNTc4O1NvOzA7T047Ozs7O047Ozs7OworMjhENTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzU3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RDY7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM1Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEQ3O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzU3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RDg7QlJBSUxMRSBQQVRURVJOIERPVFMtNDU3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RDk7QlJBSUxMRSBQQVRURVJOIERPVFMtMTQ1Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOERBO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI0NTc4O1NvOzA7T047Ozs7O047Ozs7OworMjhEQjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjQ1Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOERDO0JSQUlMTEUgUEFUVEVSTiBET1RTLTM0NTc4O1NvOzA7T047Ozs7O047Ozs7OworMjhERDtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzQ1Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOERFO0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNDU3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4REY7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNDU3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RTA7QlJBSUxMRSBQQVRURVJOIERPVFMtNjc4O1NvOzA7T047Ozs7O047Ozs7OworMjhFMTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNjc4O1NvOzA7T047Ozs7O047Ozs7OworMjhFMjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNjc4O1NvOzA7T047Ozs7O047Ozs7OworMjhFMztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjY3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RTQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMzY3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RTU7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM2Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEU2O0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNjc4O1NvOzA7T047Ozs7O047Ozs7OworMjhFNztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM2Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEU4O0JSQUlMTEUgUEFUVEVSTiBET1RTLTQ2Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEU5O0JSQUlMTEUgUEFUVEVSTiBET1RTLTE0Njc4O1NvOzA7T047Ozs7O047Ozs7OworMjhFQTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNDY3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RUI7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI0Njc4O1NvOzA7T047Ozs7O047Ozs7OworMjhFQztCUkFJTExFIFBBVFRFUk4gRE9UUy0zNDY3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RUQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM0Njc4O1NvOzA7T047Ozs7O047Ozs7OworMjhFRTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzQ2Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEVGO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzQ2Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEYwO0JSQUlMTEUgUEFUVEVSTiBET1RTLTU2Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEYxO0JSQUlMTEUgUEFUVEVSTiBET1RTLTE1Njc4O1NvOzA7T047Ozs7O047Ozs7OworMjhGMjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNTY3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RjM7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI1Njc4O1NvOzA7T047Ozs7O047Ozs7OworMjhGNDtCUkFJTExFIFBBVFRFUk4gRE9UUy0zNTY3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RjU7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM1Njc4O1NvOzA7T047Ozs7O047Ozs7OworMjhGNjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzU2Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEY3O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzU2Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEY4O0JSQUlMTEUgUEFUVEVSTiBET1RTLTQ1Njc4O1NvOzA7T047Ozs7O047Ozs7OworMjhGOTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNDU2Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEZBO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI0NTY3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RkI7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI0NTY3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RkM7QlJBSUxMRSBQQVRURVJOIERPVFMtMzQ1Njc4O1NvOzA7T047Ozs7O047Ozs7OworMjhGRDtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzQ1Njc4O1NvOzA7T047Ozs7O047Ozs7OworMjhGRTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzQ1Njc4O1NvOzA7T047Ozs7O047Ozs7OworMjhGRjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM0NTY3ODtTbzswO09OOzs7OztOOzs7OzsKKzJFODA7Q0pLIFJBRElDQUwgUkVQRUFUO1NvOzA7T047Ozs7O047Ozs7OworMkU4MTtDSksgUkFESUNBTCBDTElGRjtTbzswO09OOzs7OztOOzs7OzsKKzJFODI7Q0pLIFJBRElDQUwgU0VDT05EIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFODM7Q0pLIFJBRElDQUwgU0VDT05EIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzJFODQ7Q0pLIFJBRElDQUwgU0VDT05EIFRIUkVFO1NvOzA7T047Ozs7O047Ozs7OworMkU4NTtDSksgUkFESUNBTCBQRVJTT047U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTg2O0NKSyBSQURJQ0FMIEJPWDtTbzswO09OOzs7OztOOzs7OzsKKzJFODc7Q0pLIFJBRElDQUwgVEFCTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTg4O0NKSyBSQURJQ0FMIEtOSUZFIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFODk7Q0pLIFJBRElDQUwgS05JRkUgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkU4QTtDSksgUkFESUNBTCBESVZJTkFUSU9OO1NvOzA7T047Ozs7O047Ozs7OworMkU4QjtDSksgUkFESUNBTCBTRUFMO1NvOzA7T047Ozs7O047Ozs7OworMkU4QztDSksgUkFESUNBTCBTTUFMTCBPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRThEO0NKSyBSQURJQ0FMIFNNQUxMIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzJFOEU7Q0pLIFJBRElDQUwgTEFNRSBPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRThGO0NKSyBSQURJQ0FMIExBTUUgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkU5MDtDSksgUkFESUNBTCBMQU1FIFRIUkVFO1NvOzA7T047Ozs7O047Ozs7OworMkU5MTtDSksgUkFESUNBTCBMQU1FIEZPVVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTkyO0NKSyBSQURJQ0FMIFNOQUtFO1NvOzA7T047Ozs7O047Ozs7OworMkU5MztDSksgUkFESUNBTCBUSFJFQUQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTk0O0NKSyBSQURJQ0FMIFNOT1VUIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFOTU7Q0pLIFJBRElDQUwgU05PVVQgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkU5NjtDSksgUkFESUNBTCBIRUFSVCBPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTk3O0NKSyBSQURJQ0FMIEhFQVJUIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzJFOTg7Q0pLIFJBRElDQUwgSEFORDtTbzswO09OOzs7OztOOzs7OzsKKzJFOTk7Q0pLIFJBRElDQUwgUkFQO1NvOzA7T047Ozs7O047Ozs7OworMkU5QjtDSksgUkFESUNBTCBDSE9LRTtTbzswO09OOzs7OztOOzs7OzsKKzJFOUM7Q0pLIFJBRElDQUwgU1VOO1NvOzA7T047Ozs7O047Ozs7OworMkU5RDtDSksgUkFESUNBTCBNT09OO1NvOzA7T047Ozs7O047Ozs7OworMkU5RTtDSksgUkFESUNBTCBERUFUSDtTbzswO09OOzs7OztOOzs7OzsKKzJFOUY7Q0pLIFJBRElDQUwgTU9USEVSO1NvOzA7T047PGNvbXBhdD4gNkJDRDs7OztOOzs7OzsKKzJFQTA7Q0pLIFJBRElDQUwgQ0lWSUxJQU47U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUExO0NKSyBSQURJQ0FMIFdBVEVSIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFQTI7Q0pLIFJBRElDQUwgV0FURVIgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkVBMztDSksgUkFESUNBTCBGSVJFO1NvOzA7T047Ozs7O047Ozs7OworMkVBNDtDSksgUkFESUNBTCBQQVcgT05FO1NvOzA7T047Ozs7O047Ozs7OworMkVBNTtDSksgUkFESUNBTCBQQVcgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkVBNjtDSksgUkFESUNBTCBTSU1QTElGSUVEIEhBTEYgVFJFRSBUUlVOSztTbzswO09OOzs7OztOOzs7OzsKKzJFQTc7Q0pLIFJBRElDQUwgQ09XO1NvOzA7T047Ozs7O047Ozs7OworMkVBODtDSksgUkFESUNBTCBET0c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUE5O0NKSyBSQURJQ0FMIEpBREU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUFBO0NKSyBSQURJQ0FMIEJPTFQgT0YgQ0xPVEg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUFCO0NKSyBSQURJQ0FMIEVZRTtTbzswO09OOzs7OztOOzs7OzsKKzJFQUM7Q0pLIFJBRElDQUwgU1BJUklUIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFQUQ7Q0pLIFJBRElDQUwgU1BJUklUIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzJFQUU7Q0pLIFJBRElDQUwgQkFNQk9PO1NvOzA7T047Ozs7O047Ozs7OworMkVBRjtDSksgUkFESUNBTCBTSUxLO1NvOzA7T047Ozs7O047Ozs7OworMkVCMDtDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgU0lMSztTbzswO09OOzs7OztOOzs7OzsKKzJFQjE7Q0pLIFJBRElDQUwgTkVUIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFQjI7Q0pLIFJBRElDQUwgTkVUIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzJFQjM7Q0pLIFJBRElDQUwgTkVUIFRIUkVFO1NvOzA7T047Ozs7O047Ozs7OworMkVCNDtDSksgUkFESUNBTCBORVQgRk9VUjtTbzswO09OOzs7OztOOzs7OzsKKzJFQjU7Q0pLIFJBRElDQUwgTUVTSDtTbzswO09OOzs7OztOOzs7OzsKKzJFQjY7Q0pLIFJBRElDQUwgU0hFRVA7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUI3O0NKSyBSQURJQ0FMIFJBTTtTbzswO09OOzs7OztOOzs7OzsKKzJFQjg7Q0pLIFJBRElDQUwgRVdFO1NvOzA7T047Ozs7O047Ozs7OworMkVCOTtDSksgUkFESUNBTCBPTEQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUJBO0NKSyBSQURJQ0FMIEJSVVNIIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFQkI7Q0pLIFJBRElDQUwgQlJVU0ggVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkVCQztDSksgUkFESUNBTCBNRUFUO1NvOzA7T047Ozs7O047Ozs7OworMkVCRDtDSksgUkFESUNBTCBNT1JUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUJFO0NKSyBSQURJQ0FMIEdSQVNTIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFQkY7Q0pLIFJBRElDQUwgR1JBU1MgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkVDMDtDSksgUkFESUNBTCBHUkFTUyBUSFJFRTtTbzswO09OOzs7OztOOzs7OzsKKzJFQzE7Q0pLIFJBRElDQUwgVElHRVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUMyO0NKSyBSQURJQ0FMIENMT1RIRVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUMzO0NKSyBSQURJQ0FMIFdFU1QgT05FO1NvOzA7T047Ozs7O047Ozs7OworMkVDNDtDSksgUkFESUNBTCBXRVNUIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzJFQzU7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIFNFRTtTbzswO09OOzs7OztOOzs7OzsKKzJFQzY7Q0pLIFJBRElDQUwgU0lNUExJRklFRCBIT1JOO1NvOzA7T047Ozs7O047Ozs7OworMkVDNztDSksgUkFESUNBTCBIT1JOO1NvOzA7T047Ozs7O047Ozs7OworMkVDODtDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgU1BFRUNIO1NvOzA7T047Ozs7O047Ozs7OworMkVDOTtDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgU0hFTEw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUNBO0NKSyBSQURJQ0FMIEZPT1Q7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUNCO0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBDQVJUO1NvOzA7T047Ozs7O047Ozs7OworMkVDQztDSksgUkFESUNBTCBTSU1QTElGSUVEIFdBTEs7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUNEO0NKSyBSQURJQ0FMIFdBTEsgT05FO1NvOzA7T047Ozs7O047Ozs7OworMkVDRTtDSksgUkFESUNBTCBXQUxLIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzJFQ0Y7Q0pLIFJBRElDQUwgQ0lUWTtTbzswO09OOzs7OztOOzs7OzsKKzJFRDA7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIEdPTEQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUQxO0NKSyBSQURJQ0FMIExPTkcgT05FO1NvOzA7T047Ozs7O047Ozs7OworMkVEMjtDSksgUkFESUNBTCBMT05HIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzJFRDM7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIExPTkc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUQ0O0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBHQVRFO1NvOzA7T047Ozs7O047Ozs7OworMkVENTtDSksgUkFESUNBTCBNT1VORCBPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUQ2O0NKSyBSQURJQ0FMIE1PVU5EIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzJFRDc7Q0pLIFJBRElDQUwgUkFJTjtTbzswO09OOzs7OztOOzs7OzsKKzJFRDg7Q0pLIFJBRElDQUwgQkxVRTtTbzswO09OOzs7OztOOzs7OzsKKzJFRDk7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIFRBTk5FRCBMRUFUSEVSO1NvOzA7T047Ozs7O047Ozs7OworMkVEQTtDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgTEVBRjtTbzswO09OOzs7OztOOzs7OzsKKzJFREI7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIFdJTkQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRURDO0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBGTFk7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUREO0NKSyBSQURJQ0FMIEVBVCBPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRURFO0NKSyBSQURJQ0FMIEVBVCBUV087U287MDtPTjs7Ozs7Tjs7Ozs7CisyRURGO0NKSyBSQURJQ0FMIEVBVCBUSFJFRTtTbzswO09OOzs7OztOOzs7OzsKKzJFRTA7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIEVBVDtTbzswO09OOzs7OztOOzs7OzsKKzJFRTE7Q0pLIFJBRElDQUwgSEVBRDtTbzswO09OOzs7OztOOzs7OzsKKzJFRTI7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIEhPUlNFO1NvOzA7T047Ozs7O047Ozs7OworMkVFMztDSksgUkFESUNBTCBCT05FO1NvOzA7T047Ozs7O047Ozs7OworMkVFNDtDSksgUkFESUNBTCBHSE9TVDtTbzswO09OOzs7OztOOzs7OzsKKzJFRTU7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIEZJU0g7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUU2O0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBCSVJEO1NvOzA7T047Ozs7O047Ozs7OworMkVFNztDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgU0FMVDtTbzswO09OOzs7OztOOzs7OzsKKzJFRTg7Q0pLIFJBRElDQUwgU0lNUExJRklFRCBXSEVBVDtTbzswO09OOzs7OztOOzs7OzsKKzJFRTk7Q0pLIFJBRElDQUwgU0lNUExJRklFRCBZRUxMT1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUVBO0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBGUk9HO1NvOzA7T047Ozs7O047Ozs7OworMkVFQjtDSksgUkFESUNBTCBKLVNJTVBMSUZJRUQgRVZFTjtTbzswO09OOzs7OztOOzs7OzsKKzJFRUM7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIEVWRU47U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUVEO0NKSyBSQURJQ0FMIEotU0lNUExJRklFRCBUT09USDtTbzswO09OOzs7OztOOzs7OzsKKzJFRUU7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIFRPT1RIO1NvOzA7T047Ozs7O047Ozs7OworMkVFRjtDSksgUkFESUNBTCBKLVNJTVBMSUZJRUQgRFJBR09OO1NvOzA7T047Ozs7O047Ozs7OworMkVGMDtDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgRFJBR09OO1NvOzA7T047Ozs7O047Ozs7OworMkVGMTtDSksgUkFESUNBTCBUVVJUTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUYyO0NKSyBSQURJQ0FMIEotU0lNUExJRklFRCBUVVJUTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUYzO0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBUVVJUTEU7U287MDtPTjs8Y29tcGF0PiA5RjlGOzs7O047Ozs7OworMkYwMDtLQU5HWEkgUkFESUNBTCBPTkU7U287MDtPTjs8Y29tcGF0PiA0RTAwOzs7O047Ozs7OworMkYwMTtLQU5HWEkgUkFESUNBTCBMSU5FO1NvOzA7T047PGNvbXBhdD4gNEUyODs7OztOOzs7OzsKKzJGMDI7S0FOR1hJIFJBRElDQUwgRE9UO1NvOzA7T047PGNvbXBhdD4gNEUzNjs7OztOOzs7OzsKKzJGMDM7S0FOR1hJIFJBRElDQUwgU0xBU0g7U287MDtPTjs8Y29tcGF0PiA0RTNGOzs7O047Ozs7OworMkYwNDtLQU5HWEkgUkFESUNBTCBTRUNPTkQ7U287MDtPTjs8Y29tcGF0PiA0RTU5Ozs7O047Ozs7OworMkYwNTtLQU5HWEkgUkFESUNBTCBIT09LO1NvOzA7T047PGNvbXBhdD4gNEU4NTs7OztOOzs7OzsKKzJGMDY7S0FOR1hJIFJBRElDQUwgVFdPO1NvOzA7T047PGNvbXBhdD4gNEU4Qzs7OztOOzs7OzsKKzJGMDc7S0FOR1hJIFJBRElDQUwgTElEO1NvOzA7T047PGNvbXBhdD4gNEVBMDs7OztOOzs7OzsKKzJGMDg7S0FOR1hJIFJBRElDQUwgTUFOO1NvOzA7T047PGNvbXBhdD4gNEVCQTs7OztOOzs7OzsKKzJGMDk7S0FOR1hJIFJBRElDQUwgTEVHUztTbzswO09OOzxjb21wYXQ+IDUxM0Y7Ozs7Tjs7Ozs7CisyRjBBO0tBTkdYSSBSQURJQ0FMIEVOVEVSO1NvOzA7T047PGNvbXBhdD4gNTE2NTs7OztOOzs7OzsKKzJGMEI7S0FOR1hJIFJBRElDQUwgRUlHSFQ7U287MDtPTjs8Y29tcGF0PiA1MTZCOzs7O047Ozs7OworMkYwQztLQU5HWEkgUkFESUNBTCBET1dOIEJPWDtTbzswO09OOzxjb21wYXQ+IDUxODI7Ozs7Tjs7Ozs7CisyRjBEO0tBTkdYSSBSQURJQ0FMIENPVkVSO1NvOzA7T047PGNvbXBhdD4gNTE5Njs7OztOOzs7OzsKKzJGMEU7S0FOR1hJIFJBRElDQUwgSUNFO1NvOzA7T047PGNvbXBhdD4gNTFBQjs7OztOOzs7OzsKKzJGMEY7S0FOR1hJIFJBRElDQUwgVEFCTEU7U287MDtPTjs8Y29tcGF0PiA1MUUwOzs7O047Ozs7OworMkYxMDtLQU5HWEkgUkFESUNBTCBPUEVOIEJPWDtTbzswO09OOzxjb21wYXQ+IDUxRjU7Ozs7Tjs7Ozs7CisyRjExO0tBTkdYSSBSQURJQ0FMIEtOSUZFO1NvOzA7T047PGNvbXBhdD4gNTIwMDs7OztOOzs7OzsKKzJGMTI7S0FOR1hJIFJBRElDQUwgUE9XRVI7U287MDtPTjs8Y29tcGF0PiA1MjlCOzs7O047Ozs7OworMkYxMztLQU5HWEkgUkFESUNBTCBXUkFQO1NvOzA7T047PGNvbXBhdD4gNTJGOTs7OztOOzs7OzsKKzJGMTQ7S0FOR1hJIFJBRElDQUwgU1BPT047U287MDtPTjs8Y29tcGF0PiA1MzE1Ozs7O047Ozs7OworMkYxNTtLQU5HWEkgUkFESUNBTCBSSUdIVCBPUEVOIEJPWDtTbzswO09OOzxjb21wYXQ+IDUzMUE7Ozs7Tjs7Ozs7CisyRjE2O0tBTkdYSSBSQURJQ0FMIEhJRElORyBFTkNMT1NVUkU7U287MDtPTjs8Y29tcGF0PiA1MzM4Ozs7O047Ozs7OworMkYxNztLQU5HWEkgUkFESUNBTCBURU47U287MDtPTjs8Y29tcGF0PiA1MzQxOzs7O047Ozs7OworMkYxODtLQU5HWEkgUkFESUNBTCBESVZJTkFUSU9OO1NvOzA7T047PGNvbXBhdD4gNTM1Qzs7OztOOzs7OzsKKzJGMTk7S0FOR1hJIFJBRElDQUwgU0VBTDtTbzswO09OOzxjb21wYXQ+IDUzNjk7Ozs7Tjs7Ozs7CisyRjFBO0tBTkdYSSBSQURJQ0FMIENMSUZGO1NvOzA7T047PGNvbXBhdD4gNTM4Mjs7OztOOzs7OzsKKzJGMUI7S0FOR1hJIFJBRElDQUwgUFJJVkFURTtTbzswO09OOzxjb21wYXQ+IDUzQjY7Ozs7Tjs7Ozs7CisyRjFDO0tBTkdYSSBSQURJQ0FMIEFHQUlOO1NvOzA7T047PGNvbXBhdD4gNTNDODs7OztOOzs7OzsKKzJGMUQ7S0FOR1hJIFJBRElDQUwgTU9VVEg7U287MDtPTjs8Y29tcGF0PiA1M0UzOzs7O047Ozs7OworMkYxRTtLQU5HWEkgUkFESUNBTCBFTkNMT1NVUkU7U287MDtPTjs8Y29tcGF0PiA1NkQ3Ozs7O047Ozs7OworMkYxRjtLQU5HWEkgUkFESUNBTCBFQVJUSDtTbzswO09OOzxjb21wYXQ+IDU3MUY7Ozs7Tjs7Ozs7CisyRjIwO0tBTkdYSSBSQURJQ0FMIFNDSE9MQVI7U287MDtPTjs8Y29tcGF0PiA1OEVCOzs7O047Ozs7OworMkYyMTtLQU5HWEkgUkFESUNBTCBHTztTbzswO09OOzxjb21wYXQ+IDU5MDI7Ozs7Tjs7Ozs7CisyRjIyO0tBTkdYSSBSQURJQ0FMIEdPIFNMT1dMWTtTbzswO09OOzxjb21wYXQ+IDU5MEE7Ozs7Tjs7Ozs7CisyRjIzO0tBTkdYSSBSQURJQ0FMIEVWRU5JTkc7U287MDtPTjs8Y29tcGF0PiA1OTE1Ozs7O047Ozs7OworMkYyNDtLQU5HWEkgUkFESUNBTCBCSUc7U287MDtPTjs8Y29tcGF0PiA1OTI3Ozs7O047Ozs7OworMkYyNTtLQU5HWEkgUkFESUNBTCBXT01BTjtTbzswO09OOzxjb21wYXQ+IDU5NzM7Ozs7Tjs7Ozs7CisyRjI2O0tBTkdYSSBSQURJQ0FMIENISUxEO1NvOzA7T047PGNvbXBhdD4gNUI1MDs7OztOOzs7OzsKKzJGMjc7S0FOR1hJIFJBRElDQUwgUk9PRjtTbzswO09OOzxjb21wYXQ+IDVCODA7Ozs7Tjs7Ozs7CisyRjI4O0tBTkdYSSBSQURJQ0FMIElOQ0g7U287MDtPTjs8Y29tcGF0PiA1QkY4Ozs7O047Ozs7OworMkYyOTtLQU5HWEkgUkFESUNBTCBTTUFMTDtTbzswO09OOzxjb21wYXQ+IDVDMEY7Ozs7Tjs7Ozs7CisyRjJBO0tBTkdYSSBSQURJQ0FMIExBTUU7U287MDtPTjs8Y29tcGF0PiA1QzIyOzs7O047Ozs7OworMkYyQjtLQU5HWEkgUkFESUNBTCBDT1JQU0U7U287MDtPTjs8Y29tcGF0PiA1QzM4Ozs7O047Ozs7OworMkYyQztLQU5HWEkgUkFESUNBTCBTUFJPVVQ7U287MDtPTjs8Y29tcGF0PiA1QzZFOzs7O047Ozs7OworMkYyRDtLQU5HWEkgUkFESUNBTCBNT1VOVEFJTjtTbzswO09OOzxjb21wYXQ+IDVDNzE7Ozs7Tjs7Ozs7CisyRjJFO0tBTkdYSSBSQURJQ0FMIFJJVkVSO1NvOzA7T047PGNvbXBhdD4gNUREQjs7OztOOzs7OzsKKzJGMkY7S0FOR1hJIFJBRElDQUwgV09SSztTbzswO09OOzxjb21wYXQ+IDVERTU7Ozs7Tjs7Ozs7CisyRjMwO0tBTkdYSSBSQURJQ0FMIE9ORVNFTEY7U287MDtPTjs8Y29tcGF0PiA1REYxOzs7O047Ozs7OworMkYzMTtLQU5HWEkgUkFESUNBTCBUVVJCQU47U287MDtPTjs8Y29tcGF0PiA1REZFOzs7O047Ozs7OworMkYzMjtLQU5HWEkgUkFESUNBTCBEUlk7U287MDtPTjs8Y29tcGF0PiA1RTcyOzs7O047Ozs7OworMkYzMztLQU5HWEkgUkFESUNBTCBTSE9SVCBUSFJFQUQ7U287MDtPTjs8Y29tcGF0PiA1RTdBOzs7O047Ozs7OworMkYzNDtLQU5HWEkgUkFESUNBTCBET1RURUQgQ0xJRkY7U287MDtPTjs8Y29tcGF0PiA1RTdGOzs7O047Ozs7OworMkYzNTtLQU5HWEkgUkFESUNBTCBMT05HIFNUUklERTtTbzswO09OOzxjb21wYXQ+IDVFRjQ7Ozs7Tjs7Ozs7CisyRjM2O0tBTkdYSSBSQURJQ0FMIFRXTyBIQU5EUztTbzswO09OOzxjb21wYXQ+IDVFRkU7Ozs7Tjs7Ozs7CisyRjM3O0tBTkdYSSBSQURJQ0FMIFNIT09UO1NvOzA7T047PGNvbXBhdD4gNUYwQjs7OztOOzs7OzsKKzJGMzg7S0FOR1hJIFJBRElDQUwgQk9XO1NvOzA7T047PGNvbXBhdD4gNUYxMzs7OztOOzs7OzsKKzJGMzk7S0FOR1hJIFJBRElDQUwgU05PVVQ7U287MDtPTjs8Y29tcGF0PiA1RjUwOzs7O047Ozs7OworMkYzQTtLQU5HWEkgUkFESUNBTCBCUklTVExFO1NvOzA7T047PGNvbXBhdD4gNUY2MTs7OztOOzs7OzsKKzJGM0I7S0FOR1hJIFJBRElDQUwgU1RFUDtTbzswO09OOzxjb21wYXQ+IDVGNzM7Ozs7Tjs7Ozs7CisyRjNDO0tBTkdYSSBSQURJQ0FMIEhFQVJUO1NvOzA7T047PGNvbXBhdD4gNUZDMzs7OztOOzs7OzsKKzJGM0Q7S0FOR1hJIFJBRElDQUwgSEFMQkVSRDtTbzswO09OOzxjb21wYXQ+IDYyMDg7Ozs7Tjs7Ozs7CisyRjNFO0tBTkdYSSBSQURJQ0FMIERPT1I7U287MDtPTjs8Y29tcGF0PiA2MjM2Ozs7O047Ozs7OworMkYzRjtLQU5HWEkgUkFESUNBTCBIQU5EO1NvOzA7T047PGNvbXBhdD4gNjI0Qjs7OztOOzs7OzsKKzJGNDA7S0FOR1hJIFJBRElDQUwgQlJBTkNIO1NvOzA7T047PGNvbXBhdD4gNjUyRjs7OztOOzs7OzsKKzJGNDE7S0FOR1hJIFJBRElDQUwgUkFQO1NvOzA7T047PGNvbXBhdD4gNjUzNDs7OztOOzs7OzsKKzJGNDI7S0FOR1hJIFJBRElDQUwgU0NSSVBUO1NvOzA7T047PGNvbXBhdD4gNjU4Nzs7OztOOzs7OzsKKzJGNDM7S0FOR1hJIFJBRElDQUwgRElQUEVSO1NvOzA7T047PGNvbXBhdD4gNjU5Nzs7OztOOzs7OzsKKzJGNDQ7S0FOR1hJIFJBRElDQUwgQVhFO1NvOzA7T047PGNvbXBhdD4gNjVBNDs7OztOOzs7OzsKKzJGNDU7S0FOR1hJIFJBRElDQUwgU1FVQVJFO1NvOzA7T047PGNvbXBhdD4gNjVCOTs7OztOOzs7OzsKKzJGNDY7S0FOR1hJIFJBRElDQUwgTk9UO1NvOzA7T047PGNvbXBhdD4gNjVFMDs7OztOOzs7OzsKKzJGNDc7S0FOR1hJIFJBRElDQUwgU1VOO1NvOzA7T047PGNvbXBhdD4gNjVFNTs7OztOOzs7OzsKKzJGNDg7S0FOR1hJIFJBRElDQUwgU0FZO1NvOzA7T047PGNvbXBhdD4gNjZGMDs7OztOOzs7OzsKKzJGNDk7S0FOR1hJIFJBRElDQUwgTU9PTjtTbzswO09OOzxjb21wYXQ+IDY3MDg7Ozs7Tjs7Ozs7CisyRjRBO0tBTkdYSSBSQURJQ0FMIFRSRUU7U287MDtPTjs8Y29tcGF0PiA2NzI4Ozs7O047Ozs7OworMkY0QjtLQU5HWEkgUkFESUNBTCBMQUNLO1NvOzA7T047PGNvbXBhdD4gNkIyMDs7OztOOzs7OzsKKzJGNEM7S0FOR1hJIFJBRElDQUwgU1RPUDtTbzswO09OOzxjb21wYXQ+IDZCNjI7Ozs7Tjs7Ozs7CisyRjREO0tBTkdYSSBSQURJQ0FMIERFQVRIO1NvOzA7T047PGNvbXBhdD4gNkI3OTs7OztOOzs7OzsKKzJGNEU7S0FOR1hJIFJBRElDQUwgV0VBUE9OO1NvOzA7T047PGNvbXBhdD4gNkJCMzs7OztOOzs7OzsKKzJGNEY7S0FOR1hJIFJBRElDQUwgRE8gTk9UO1NvOzA7T047PGNvbXBhdD4gNkJDQjs7OztOOzs7OzsKKzJGNTA7S0FOR1hJIFJBRElDQUwgQ09NUEFSRTtTbzswO09OOzxjb21wYXQ+IDZCRDQ7Ozs7Tjs7Ozs7CisyRjUxO0tBTkdYSSBSQURJQ0FMIEZVUjtTbzswO09OOzxjb21wYXQ+IDZCREI7Ozs7Tjs7Ozs7CisyRjUyO0tBTkdYSSBSQURJQ0FMIENMQU47U287MDtPTjs8Y29tcGF0PiA2QzBGOzs7O047Ozs7OworMkY1MztLQU5HWEkgUkFESUNBTCBTVEVBTTtTbzswO09OOzxjb21wYXQ+IDZDMTQ7Ozs7Tjs7Ozs7CisyRjU0O0tBTkdYSSBSQURJQ0FMIFdBVEVSO1NvOzA7T047PGNvbXBhdD4gNkMzNDs7OztOOzs7OzsKKzJGNTU7S0FOR1hJIFJBRElDQUwgRklSRTtTbzswO09OOzxjb21wYXQ+IDcwNkI7Ozs7Tjs7Ozs7CisyRjU2O0tBTkdYSSBSQURJQ0FMIENMQVc7U287MDtPTjs8Y29tcGF0PiA3MjJBOzs7O047Ozs7OworMkY1NztLQU5HWEkgUkFESUNBTCBGQVRIRVI7U287MDtPTjs8Y29tcGF0PiA3MjM2Ozs7O047Ozs7OworMkY1ODtLQU5HWEkgUkFESUNBTCBET1VCTEUgWDtTbzswO09OOzxjb21wYXQ+IDcyM0I7Ozs7Tjs7Ozs7CisyRjU5O0tBTkdYSSBSQURJQ0FMIEhBTEYgVFJFRSBUUlVOSztTbzswO09OOzxjb21wYXQ+IDcyM0Y7Ozs7Tjs7Ozs7CisyRjVBO0tBTkdYSSBSQURJQ0FMIFNMSUNFO1NvOzA7T047PGNvbXBhdD4gNzI0Nzs7OztOOzs7OzsKKzJGNUI7S0FOR1hJIFJBRElDQUwgRkFORztTbzswO09OOzxjb21wYXQ+IDcyNTk7Ozs7Tjs7Ozs7CisyRjVDO0tBTkdYSSBSQURJQ0FMIENPVztTbzswO09OOzxjb21wYXQ+IDcyNUI7Ozs7Tjs7Ozs7CisyRjVEO0tBTkdYSSBSQURJQ0FMIERPRztTbzswO09OOzxjb21wYXQ+IDcyQUM7Ozs7Tjs7Ozs7CisyRjVFO0tBTkdYSSBSQURJQ0FMIFBST0ZPVU5EO1NvOzA7T047PGNvbXBhdD4gNzM4NDs7OztOOzs7OzsKKzJGNUY7S0FOR1hJIFJBRElDQUwgSkFERTtTbzswO09OOzxjb21wYXQ+IDczODk7Ozs7Tjs7Ozs7CisyRjYwO0tBTkdYSSBSQURJQ0FMIE1FTE9OO1NvOzA7T047PGNvbXBhdD4gNzREQzs7OztOOzs7OzsKKzJGNjE7S0FOR1hJIFJBRElDQUwgVElMRTtTbzswO09OOzxjb21wYXQ+IDc0RTY7Ozs7Tjs7Ozs7CisyRjYyO0tBTkdYSSBSQURJQ0FMIFNXRUVUO1NvOzA7T047PGNvbXBhdD4gNzUxODs7OztOOzs7OzsKKzJGNjM7S0FOR1hJIFJBRElDQUwgTElGRTtTbzswO09OOzxjb21wYXQ+IDc1MUY7Ozs7Tjs7Ozs7CisyRjY0O0tBTkdYSSBSQURJQ0FMIFVTRTtTbzswO09OOzxjb21wYXQ+IDc1Mjg7Ozs7Tjs7Ozs7CisyRjY1O0tBTkdYSSBSQURJQ0FMIEZJRUxEO1NvOzA7T047PGNvbXBhdD4gNzUzMDs7OztOOzs7OzsKKzJGNjY7S0FOR1hJIFJBRElDQUwgQk9MVCBPRiBDTE9USDtTbzswO09OOzxjb21wYXQ+IDc1OEI7Ozs7Tjs7Ozs7CisyRjY3O0tBTkdYSSBSQURJQ0FMIFNJQ0tORVNTO1NvOzA7T047PGNvbXBhdD4gNzU5Mjs7OztOOzs7OzsKKzJGNjg7S0FOR1hJIFJBRElDQUwgRE9UVEVEIFRFTlQ7U287MDtPTjs8Y29tcGF0PiA3Njc2Ozs7O047Ozs7OworMkY2OTtLQU5HWEkgUkFESUNBTCBXSElURTtTbzswO09OOzxjb21wYXQ+IDc2N0Q7Ozs7Tjs7Ozs7CisyRjZBO0tBTkdYSSBSQURJQ0FMIFNLSU47U287MDtPTjs8Y29tcGF0PiA3NkFFOzs7O047Ozs7OworMkY2QjtLQU5HWEkgUkFESUNBTCBESVNIO1NvOzA7T047PGNvbXBhdD4gNzZCRjs7OztOOzs7OzsKKzJGNkM7S0FOR1hJIFJBRElDQUwgRVlFO1NvOzA7T047PGNvbXBhdD4gNzZFRTs7OztOOzs7OzsKKzJGNkQ7S0FOR1hJIFJBRElDQUwgU1BFQVI7U287MDtPTjs8Y29tcGF0PiA3N0RCOzs7O047Ozs7OworMkY2RTtLQU5HWEkgUkFESUNBTCBBUlJPVztTbzswO09OOzxjb21wYXQ+IDc3RTI7Ozs7Tjs7Ozs7CisyRjZGO0tBTkdYSSBSQURJQ0FMIFNUT05FO1NvOzA7T047PGNvbXBhdD4gNzdGMzs7OztOOzs7OzsKKzJGNzA7S0FOR1hJIFJBRElDQUwgU1BJUklUO1NvOzA7T047PGNvbXBhdD4gNzkzQTs7OztOOzs7OzsKKzJGNzE7S0FOR1hJIFJBRElDQUwgVFJBQ0s7U287MDtPTjs8Y29tcGF0PiA3OUI4Ozs7O047Ozs7OworMkY3MjtLQU5HWEkgUkFESUNBTCBHUkFJTjtTbzswO09OOzxjb21wYXQ+IDc5QkU7Ozs7Tjs7Ozs7CisyRjczO0tBTkdYSSBSQURJQ0FMIENBVkU7U287MDtPTjs8Y29tcGF0PiA3QTc0Ozs7O047Ozs7OworMkY3NDtLQU5HWEkgUkFESUNBTCBTVEFORDtTbzswO09OOzxjb21wYXQ+IDdBQ0I7Ozs7Tjs7Ozs7CisyRjc1O0tBTkdYSSBSQURJQ0FMIEJBTUJPTztTbzswO09OOzxjb21wYXQ+IDdBRjk7Ozs7Tjs7Ozs7CisyRjc2O0tBTkdYSSBSQURJQ0FMIFJJQ0U7U287MDtPTjs8Y29tcGF0PiA3QzczOzs7O047Ozs7OworMkY3NztLQU5HWEkgUkFESUNBTCBTSUxLO1NvOzA7T047PGNvbXBhdD4gN0NGODs7OztOOzs7OzsKKzJGNzg7S0FOR1hJIFJBRElDQUwgSkFSO1NvOzA7T047PGNvbXBhdD4gN0YzNjs7OztOOzs7OzsKKzJGNzk7S0FOR1hJIFJBRElDQUwgTkVUO1NvOzA7T047PGNvbXBhdD4gN0Y1MTs7OztOOzs7OzsKKzJGN0E7S0FOR1hJIFJBRElDQUwgU0hFRVA7U287MDtPTjs8Y29tcGF0PiA3RjhBOzs7O047Ozs7OworMkY3QjtLQU5HWEkgUkFESUNBTCBGRUFUSEVSO1NvOzA7T047PGNvbXBhdD4gN0ZCRDs7OztOOzs7OzsKKzJGN0M7S0FOR1hJIFJBRElDQUwgT0xEO1NvOzA7T047PGNvbXBhdD4gODAwMTs7OztOOzs7OzsKKzJGN0Q7S0FOR1hJIFJBRElDQUwgQU5EO1NvOzA7T047PGNvbXBhdD4gODAwQzs7OztOOzs7OzsKKzJGN0U7S0FOR1hJIFJBRElDQUwgUExPVztTbzswO09OOzxjb21wYXQ+IDgwMTI7Ozs7Tjs7Ozs7CisyRjdGO0tBTkdYSSBSQURJQ0FMIEVBUjtTbzswO09OOzxjb21wYXQ+IDgwMzM7Ozs7Tjs7Ozs7CisyRjgwO0tBTkdYSSBSQURJQ0FMIEJSVVNIO1NvOzA7T047PGNvbXBhdD4gODA3Rjs7OztOOzs7OzsKKzJGODE7S0FOR1hJIFJBRElDQUwgTUVBVDtTbzswO09OOzxjb21wYXQ+IDgwODk7Ozs7Tjs7Ozs7CisyRjgyO0tBTkdYSSBSQURJQ0FMIE1JTklTVEVSO1NvOzA7T047PGNvbXBhdD4gODFFMzs7OztOOzs7OzsKKzJGODM7S0FOR1hJIFJBRElDQUwgU0VMRjtTbzswO09OOzxjb21wYXQ+IDgxRUE7Ozs7Tjs7Ozs7CisyRjg0O0tBTkdYSSBSQURJQ0FMIEFSUklWRTtTbzswO09OOzxjb21wYXQ+IDgxRjM7Ozs7Tjs7Ozs7CisyRjg1O0tBTkdYSSBSQURJQ0FMIE1PUlRBUjtTbzswO09OOzxjb21wYXQ+IDgxRkM7Ozs7Tjs7Ozs7CisyRjg2O0tBTkdYSSBSQURJQ0FMIFRPTkdVRTtTbzswO09OOzxjb21wYXQ+IDgyMEM7Ozs7Tjs7Ozs7CisyRjg3O0tBTkdYSSBSQURJQ0FMIE9QUE9TRTtTbzswO09OOzxjb21wYXQ+IDgyMUI7Ozs7Tjs7Ozs7CisyRjg4O0tBTkdYSSBSQURJQ0FMIEJPQVQ7U287MDtPTjs8Y29tcGF0PiA4MjFGOzs7O047Ozs7OworMkY4OTtLQU5HWEkgUkFESUNBTCBTVE9QUElORztTbzswO09OOzxjb21wYXQ+IDgyNkU7Ozs7Tjs7Ozs7CisyRjhBO0tBTkdYSSBSQURJQ0FMIENPTE9SO1NvOzA7T047PGNvbXBhdD4gODI3Mjs7OztOOzs7OzsKKzJGOEI7S0FOR1hJIFJBRElDQUwgR1JBU1M7U287MDtPTjs8Y29tcGF0PiA4Mjc4Ozs7O047Ozs7OworMkY4QztLQU5HWEkgUkFESUNBTCBUSUdFUjtTbzswO09OOzxjb21wYXQ+IDg2NEQ7Ozs7Tjs7Ozs7CisyRjhEO0tBTkdYSSBSQURJQ0FMIElOU0VDVDtTbzswO09OOzxjb21wYXQ+IDg2NkI7Ozs7Tjs7Ozs7CisyRjhFO0tBTkdYSSBSQURJQ0FMIEJMT09EO1NvOzA7T047PGNvbXBhdD4gODg0MDs7OztOOzs7OzsKKzJGOEY7S0FOR1hJIFJBRElDQUwgV0FMSyBFTkNMT1NVUkU7U287MDtPTjs8Y29tcGF0PiA4ODRDOzs7O047Ozs7OworMkY5MDtLQU5HWEkgUkFESUNBTCBDTE9USEVTO1NvOzA7T047PGNvbXBhdD4gODg2Mzs7OztOOzs7OzsKKzJGOTE7S0FOR1hJIFJBRElDQUwgV0VTVDtTbzswO09OOzxjb21wYXQ+IDg5N0U7Ozs7Tjs7Ozs7CisyRjkyO0tBTkdYSSBSQURJQ0FMIFNFRTtTbzswO09OOzxjb21wYXQ+IDg5OEI7Ozs7Tjs7Ozs7CisyRjkzO0tBTkdYSSBSQURJQ0FMIEhPUk47U287MDtPTjs8Y29tcGF0PiA4OUQyOzs7O047Ozs7OworMkY5NDtLQU5HWEkgUkFESUNBTCBTUEVFQ0g7U287MDtPTjs8Y29tcGF0PiA4QTAwOzs7O047Ozs7OworMkY5NTtLQU5HWEkgUkFESUNBTCBWQUxMRVk7U287MDtPTjs8Y29tcGF0PiA4QzM3Ozs7O047Ozs7OworMkY5NjtLQU5HWEkgUkFESUNBTCBCRUFOO1NvOzA7T047PGNvbXBhdD4gOEM0Njs7OztOOzs7OzsKKzJGOTc7S0FOR1hJIFJBRElDQUwgUElHO1NvOzA7T047PGNvbXBhdD4gOEM1NTs7OztOOzs7OzsKKzJGOTg7S0FOR1hJIFJBRElDQUwgQkFER0VSO1NvOzA7T047PGNvbXBhdD4gOEM3ODs7OztOOzs7OzsKKzJGOTk7S0FOR1hJIFJBRElDQUwgU0hFTEw7U287MDtPTjs8Y29tcGF0PiA4QzlEOzs7O047Ozs7OworMkY5QTtLQU5HWEkgUkFESUNBTCBSRUQ7U287MDtPTjs8Y29tcGF0PiA4RDY0Ozs7O047Ozs7OworMkY5QjtLQU5HWEkgUkFESUNBTCBSVU47U287MDtPTjs8Y29tcGF0PiA4RDcwOzs7O047Ozs7OworMkY5QztLQU5HWEkgUkFESUNBTCBGT09UO1NvOzA7T047PGNvbXBhdD4gOERCMzs7OztOOzs7OzsKKzJGOUQ7S0FOR1hJIFJBRElDQUwgQk9EWTtTbzswO09OOzxjb21wYXQ+IDhFQUI7Ozs7Tjs7Ozs7CisyRjlFO0tBTkdYSSBSQURJQ0FMIENBUlQ7U287MDtPTjs8Y29tcGF0PiA4RUNBOzs7O047Ozs7OworMkY5RjtLQU5HWEkgUkFESUNBTCBCSVRURVI7U287MDtPTjs8Y29tcGF0PiA4RjlCOzs7O047Ozs7OworMkZBMDtLQU5HWEkgUkFESUNBTCBNT1JOSU5HO1NvOzA7T047PGNvbXBhdD4gOEZCMDs7OztOOzs7OzsKKzJGQTE7S0FOR1hJIFJBRElDQUwgV0FMSztTbzswO09OOzxjb21wYXQ+IDhGQjU7Ozs7Tjs7Ozs7CisyRkEyO0tBTkdYSSBSQURJQ0FMIENJVFk7U287MDtPTjs8Y29tcGF0PiA5MDkxOzs7O047Ozs7OworMkZBMztLQU5HWEkgUkFESUNBTCBXSU5FO1NvOzA7T047PGNvbXBhdD4gOTE0OTs7OztOOzs7OzsKKzJGQTQ7S0FOR1hJIFJBRElDQUwgRElTVElOR1VJU0g7U287MDtPTjs8Y29tcGF0PiA5MUM2Ozs7O047Ozs7OworMkZBNTtLQU5HWEkgUkFESUNBTCBWSUxMQUdFO1NvOzA7T047PGNvbXBhdD4gOTFDQzs7OztOOzs7OzsKKzJGQTY7S0FOR1hJIFJBRElDQUwgR09MRDtTbzswO09OOzxjb21wYXQ+IDkxRDE7Ozs7Tjs7Ozs7CisyRkE3O0tBTkdYSSBSQURJQ0FMIExPTkc7U287MDtPTjs8Y29tcGF0PiA5NTc3Ozs7O047Ozs7OworMkZBODtLQU5HWEkgUkFESUNBTCBHQVRFO1NvOzA7T047PGNvbXBhdD4gOTU4MDs7OztOOzs7OzsKKzJGQTk7S0FOR1hJIFJBRElDQUwgTU9VTkQ7U287MDtPTjs8Y29tcGF0PiA5NjFDOzs7O047Ozs7OworMkZBQTtLQU5HWEkgUkFESUNBTCBTTEFWRTtTbzswO09OOzxjb21wYXQ+IDk2QjY7Ozs7Tjs7Ozs7CisyRkFCO0tBTkdYSSBSQURJQ0FMIFNIT1JUIFRBSUxFRCBCSVJEO1NvOzA7T047PGNvbXBhdD4gOTZCOTs7OztOOzs7OzsKKzJGQUM7S0FOR1hJIFJBRElDQUwgUkFJTjtTbzswO09OOzxjb21wYXQ+IDk2RTg7Ozs7Tjs7Ozs7CisyRkFEO0tBTkdYSSBSQURJQ0FMIEJMVUU7U287MDtPTjs8Y29tcGF0PiA5NzUxOzs7O047Ozs7OworMkZBRTtLQU5HWEkgUkFESUNBTCBXUk9ORztTbzswO09OOzxjb21wYXQ+IDk3NUU7Ozs7Tjs7Ozs7CisyRkFGO0tBTkdYSSBSQURJQ0FMIEZBQ0U7U287MDtPTjs8Y29tcGF0PiA5NzYyOzs7O047Ozs7OworMkZCMDtLQU5HWEkgUkFESUNBTCBMRUFUSEVSO1NvOzA7T047PGNvbXBhdD4gOTc2OTs7OztOOzs7OzsKKzJGQjE7S0FOR1hJIFJBRElDQUwgVEFOTkVEIExFQVRIRVI7U287MDtPTjs8Y29tcGF0PiA5N0NCOzs7O047Ozs7OworMkZCMjtLQU5HWEkgUkFESUNBTCBMRUVLO1NvOzA7T047PGNvbXBhdD4gOTdFRDs7OztOOzs7OzsKKzJGQjM7S0FOR1hJIFJBRElDQUwgU09VTkQ7U287MDtPTjs8Y29tcGF0PiA5N0YzOzs7O047Ozs7OworMkZCNDtLQU5HWEkgUkFESUNBTCBMRUFGO1NvOzA7T047PGNvbXBhdD4gOTgwMTs7OztOOzs7OzsKKzJGQjU7S0FOR1hJIFJBRElDQUwgV0lORDtTbzswO09OOzxjb21wYXQ+IDk4QTg7Ozs7Tjs7Ozs7CisyRkI2O0tBTkdYSSBSQURJQ0FMIEZMWTtTbzswO09OOzxjb21wYXQ+IDk4REI7Ozs7Tjs7Ozs7CisyRkI3O0tBTkdYSSBSQURJQ0FMIEVBVDtTbzswO09OOzxjb21wYXQ+IDk4REY7Ozs7Tjs7Ozs7CisyRkI4O0tBTkdYSSBSQURJQ0FMIEhFQUQ7U287MDtPTjs8Y29tcGF0PiA5OTk2Ozs7O047Ozs7OworMkZCOTtLQU5HWEkgUkFESUNBTCBGUkFHUkFOVDtTbzswO09OOzxjb21wYXQ+IDk5OTk7Ozs7Tjs7Ozs7CisyRkJBO0tBTkdYSSBSQURJQ0FMIEhPUlNFO1NvOzA7T047PGNvbXBhdD4gOTlBQzs7OztOOzs7OzsKKzJGQkI7S0FOR1hJIFJBRElDQUwgQk9ORTtTbzswO09OOzxjb21wYXQ+IDlBQTg7Ozs7Tjs7Ozs7CisyRkJDO0tBTkdYSSBSQURJQ0FMIFRBTEw7U287MDtPTjs8Y29tcGF0PiA5QUQ4Ozs7O047Ozs7OworMkZCRDtLQU5HWEkgUkFESUNBTCBIQUlSO1NvOzA7T047PGNvbXBhdD4gOUFERjs7OztOOzs7OzsKKzJGQkU7S0FOR1hJIFJBRElDQUwgRklHSFQ7U287MDtPTjs8Y29tcGF0PiA5QjI1Ozs7O047Ozs7OworMkZCRjtLQU5HWEkgUkFESUNBTCBTQUNSSUZJQ0lBTCBXSU5FO1NvOzA7T047PGNvbXBhdD4gOUIyRjs7OztOOzs7OzsKKzJGQzA7S0FOR1hJIFJBRElDQUwgQ0FVTERST047U287MDtPTjs8Y29tcGF0PiA5QjMyOzs7O047Ozs7OworMkZDMTtLQU5HWEkgUkFESUNBTCBHSE9TVDtTbzswO09OOzxjb21wYXQ+IDlCM0M7Ozs7Tjs7Ozs7CisyRkMyO0tBTkdYSSBSQURJQ0FMIEZJU0g7U287MDtPTjs8Y29tcGF0PiA5QjVBOzs7O047Ozs7OworMkZDMztLQU5HWEkgUkFESUNBTCBCSVJEO1NvOzA7T047PGNvbXBhdD4gOUNFNTs7OztOOzs7OzsKKzJGQzQ7S0FOR1hJIFJBRElDQUwgU0FMVDtTbzswO09OOzxjb21wYXQ+IDlFNzU7Ozs7Tjs7Ozs7CisyRkM1O0tBTkdYSSBSQURJQ0FMIERFRVI7U287MDtPTjs8Y29tcGF0PiA5RTdGOzs7O047Ozs7OworMkZDNjtLQU5HWEkgUkFESUNBTCBXSEVBVDtTbzswO09OOzxjb21wYXQ+IDlFQTU7Ozs7Tjs7Ozs7CisyRkM3O0tBTkdYSSBSQURJQ0FMIEhFTVA7U287MDtPTjs8Y29tcGF0PiA5RUJCOzs7O047Ozs7OworMkZDODtLQU5HWEkgUkFESUNBTCBZRUxMT1c7U287MDtPTjs8Y29tcGF0PiA5RUMzOzs7O047Ozs7OworMkZDOTtLQU5HWEkgUkFESUNBTCBNSUxMRVQ7U287MDtPTjs8Y29tcGF0PiA5RUNEOzs7O047Ozs7OworMkZDQTtLQU5HWEkgUkFESUNBTCBCTEFDSztTbzswO09OOzxjb21wYXQ+IDlFRDE7Ozs7Tjs7Ozs7CisyRkNCO0tBTkdYSSBSQURJQ0FMIEVNQlJPSURFUlk7U287MDtPTjs8Y29tcGF0PiA5RUY5Ozs7O047Ozs7OworMkZDQztLQU5HWEkgUkFESUNBTCBGUk9HO1NvOzA7T047PGNvbXBhdD4gOUVGRDs7OztOOzs7OzsKKzJGQ0Q7S0FOR1hJIFJBRElDQUwgVFJJUE9EO1NvOzA7T047PGNvbXBhdD4gOUYwRTs7OztOOzs7OzsKKzJGQ0U7S0FOR1hJIFJBRElDQUwgRFJVTTtTbzswO09OOzxjb21wYXQ+IDlGMTM7Ozs7Tjs7Ozs7CisyRkNGO0tBTkdYSSBSQURJQ0FMIFJBVDtTbzswO09OOzxjb21wYXQ+IDlGMjA7Ozs7Tjs7Ozs7CisyRkQwO0tBTkdYSSBSQURJQ0FMIE5PU0U7U287MDtPTjs8Y29tcGF0PiA5RjNCOzs7O047Ozs7OworMkZEMTtLQU5HWEkgUkFESUNBTCBFVkVOO1NvOzA7T047PGNvbXBhdD4gOUY0QTs7OztOOzs7OzsKKzJGRDI7S0FOR1hJIFJBRElDQUwgVE9PVEg7U287MDtPTjs8Y29tcGF0PiA5RjUyOzs7O047Ozs7OworMkZEMztLQU5HWEkgUkFESUNBTCBEUkFHT047U287MDtPTjs8Y29tcGF0PiA5RjhEOzs7O047Ozs7OworMkZENDtLQU5HWEkgUkFESUNBTCBUVVJUTEU7U287MDtPTjs8Y29tcGF0PiA5RjlDOzs7O047Ozs7OworMkZENTtLQU5HWEkgUkFESUNBTCBGTFVURTtTbzswO09OOzxjb21wYXQ+IDlGQTA7Ozs7Tjs7Ozs7CisyRkYwO0lERU9HUkFQSElDIERFU0NSSVBUSU9OIENIQVJBQ1RFUiBMRUZUIFRPIFJJR0hUO1NvOzA7T047Ozs7O047Ozs7OworMkZGMTtJREVPR1JBUEhJQyBERVNDUklQVElPTiBDSEFSQUNURVIgQUJPVkUgVE8gQkVMT1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRkYyO0lERU9HUkFQSElDIERFU0NSSVBUSU9OIENIQVJBQ1RFUiBMRUZUIFRPIE1JRERMRSBBTkQgUklHSFQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRkYzO0lERU9HUkFQSElDIERFU0NSSVBUSU9OIENIQVJBQ1RFUiBBQk9WRSBUTyBNSURETEUgQU5EIEJFTE9XO1NvOzA7T047Ozs7O047Ozs7OworMkZGNDtJREVPR1JBUEhJQyBERVNDUklQVElPTiBDSEFSQUNURVIgRlVMTCBTVVJST1VORDtTbzswO09OOzs7OztOOzs7OzsKKzJGRjU7SURFT0dSQVBISUMgREVTQ1JJUFRJT04gQ0hBUkFDVEVSIFNVUlJPVU5EIEZST00gQUJPVkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRkY2O0lERU9HUkFQSElDIERFU0NSSVBUSU9OIENIQVJBQ1RFUiBTVVJST1VORCBGUk9NIEJFTE9XO1NvOzA7T047Ozs7O047Ozs7OworMkZGNztJREVPR1JBUEhJQyBERVNDUklQVElPTiBDSEFSQUNURVIgU1VSUk9VTkQgRlJPTSBMRUZUO1NvOzA7T047Ozs7O047Ozs7OworMkZGODtJREVPR1JBUEhJQyBERVNDUklQVElPTiBDSEFSQUNURVIgU1VSUk9VTkQgRlJPTSBVUFBFUiBMRUZUO1NvOzA7T047Ozs7O047Ozs7OworMkZGOTtJREVPR1JBUEhJQyBERVNDUklQVElPTiBDSEFSQUNURVIgU1VSUk9VTkQgRlJPTSBVUFBFUiBSSUdIVDtTbzswO09OOzs7OztOOzs7OzsKKzJGRkE7SURFT0dSQVBISUMgREVTQ1JJUFRJT04gQ0hBUkFDVEVSIFNVUlJPVU5EIEZST00gTE9XRVIgTEVGVDtTbzswO09OOzs7OztOOzs7OzsKKzJGRkI7SURFT0dSQVBISUMgREVTQ1JJUFRJT04gQ0hBUkFDVEVSIE9WRVJMQUlEO1NvOzA7T047Ozs7O047Ozs7OworMzAwMDtJREVPR1JBUEhJQyBTUEFDRTtaczswO1dTOzx3aWRlPiAwMDIwOzs7O047Ozs7OworMzAwMTtJREVPR1JBUEhJQyBDT01NQTtQbzswO09OOzs7OztOOzs7OzsKKzMwMDI7SURFT0dSQVBISUMgRlVMTCBTVE9QO1BvOzA7T047Ozs7O047SURFT0dSQVBISUMgUEVSSU9EOzs7OworMzAwMztESVRUTyBNQVJLO1BvOzA7T047Ozs7O047Ozs7OworMzAwNDtKQVBBTkVTRSBJTkRVU1RSSUFMIFNUQU5EQVJEIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzMwMDU7SURFT0dSQVBISUMgSVRFUkFUSU9OIE1BUks7TG07MDtMOzs7OztOOzs7OzsKKzMwMDY7SURFT0dSQVBISUMgQ0xPU0lORyBNQVJLO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDA3O0lERU9HUkFQSElDIE5VTUJFUiBaRVJPO05sOzA7TDs7OzswO047Ozs7OworMzAwODtMRUZUIEFOR0xFIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTtPUEVOSU5HIEFOR0xFIEJSQUNLRVQ7Ozs7CiszMDA5O1JJR0hUIEFOR0xFIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTtDTE9TSU5HIEFOR0xFIEJSQUNLRVQ7Ozs7CiszMDBBO0xFRlQgRE9VQkxFIEFOR0xFIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTtPUEVOSU5HIERPVUJMRSBBTkdMRSBCUkFDS0VUOzs7OworMzAwQjtSSUdIVCBET1VCTEUgQU5HTEUgQlJBQ0tFVDtQZTswO09OOzs7OztZO0NMT1NJTkcgRE9VQkxFIEFOR0xFIEJSQUNLRVQ7Ozs7CiszMDBDO0xFRlQgQ09STkVSIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTtPUEVOSU5HIENPUk5FUiBCUkFDS0VUOzs7OworMzAwRDtSSUdIVCBDT1JORVIgQlJBQ0tFVDtQZTswO09OOzs7OztZO0NMT1NJTkcgQ09STkVSIEJSQUNLRVQ7Ozs7CiszMDBFO0xFRlQgV0hJVEUgQ09STkVSIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTtPUEVOSU5HIFdISVRFIENPUk5FUiBCUkFDS0VUOzs7OworMzAwRjtSSUdIVCBXSElURSBDT1JORVIgQlJBQ0tFVDtQZTswO09OOzs7OztZO0NMT1NJTkcgV0hJVEUgQ09STkVSIEJSQUNLRVQ7Ozs7CiszMDEwO0xFRlQgQkxBQ0sgTEVOVElDVUxBUiBCUkFDS0VUO1BzOzA7T047Ozs7O1k7T1BFTklORyBCTEFDSyBMRU5USUNVTEFSIEJSQUNLRVQ7Ozs7CiszMDExO1JJR0hUIEJMQUNLIExFTlRJQ1VMQVIgQlJBQ0tFVDtQZTswO09OOzs7OztZO0NMT1NJTkcgQkxBQ0sgTEVOVElDVUxBUiBCUkFDS0VUOzs7OworMzAxMjtQT1NUQUwgTUFSSztTbzswO09OOzs7OztOOzs7OzsKKzMwMTM7R0VUQSBNQVJLO1NvOzA7T047Ozs7O047Ozs7OworMzAxNDtMRUZUIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTtPUEVOSU5HIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7Ozs7CiszMDE1O1JJR0hUIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTtDTE9TSU5HIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7Ozs7CiszMDE2O0xFRlQgV0hJVEUgTEVOVElDVUxBUiBCUkFDS0VUO1BzOzA7T047Ozs7O1k7T1BFTklORyBXSElURSBMRU5USUNVTEFSIEJSQUNLRVQ7Ozs7CiszMDE3O1JJR0hUIFdISVRFIExFTlRJQ1VMQVIgQlJBQ0tFVDtQZTswO09OOzs7OztZO0NMT1NJTkcgV0hJVEUgTEVOVElDVUxBUiBCUkFDS0VUOzs7OworMzAxODtMRUZUIFdISVRFIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTtPUEVOSU5HIFdISVRFIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7Ozs7CiszMDE5O1JJR0hUIFdISVRFIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTtDTE9TSU5HIFdISVRFIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7Ozs7CiszMDFBO0xFRlQgV0hJVEUgU1FVQVJFIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTtPUEVOSU5HIFdISVRFIFNRVUFSRSBCUkFDS0VUOzs7OworMzAxQjtSSUdIVCBXSElURSBTUVVBUkUgQlJBQ0tFVDtQZTswO09OOzs7OztZO0NMT1NJTkcgV0hJVEUgU1FVQVJFIEJSQUNLRVQ7Ozs7CiszMDFDO1dBVkUgREFTSDtQZDswO09OOzs7OztOOzs7OzsKKzMwMUQ7UkVWRVJTRUQgRE9VQkxFIFBSSU1FIFFVT1RBVElPTiBNQVJLO1BzOzA7T047Ozs7O047Ozs7OworMzAxRTtET1VCTEUgUFJJTUUgUVVPVEFUSU9OIE1BUks7UGU7MDtPTjs7Ozs7Tjs7Ozs7CiszMDFGO0xPVyBET1VCTEUgUFJJTUUgUVVPVEFUSU9OIE1BUks7UGU7MDtPTjs7Ozs7Tjs7Ozs7CiszMDIwO1BPU1RBTCBNQVJLIEZBQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMDIxO0hBTkdaSE9VIE5VTUVSQUwgT05FO05sOzA7TDs7OzsxO047Ozs7OworMzAyMjtIQU5HWkhPVSBOVU1FUkFMIFRXTztObDswO0w7Ozs7MjtOOzs7OzsKKzMwMjM7SEFOR1pIT1UgTlVNRVJBTCBUSFJFRTtObDswO0w7Ozs7MztOOzs7OzsKKzMwMjQ7SEFOR1pIT1UgTlVNRVJBTCBGT1VSO05sOzA7TDs7Ozs0O047Ozs7OworMzAyNTtIQU5HWkhPVSBOVU1FUkFMIEZJVkU7Tmw7MDtMOzs7OzU7Tjs7Ozs7CiszMDI2O0hBTkdaSE9VIE5VTUVSQUwgU0lYO05sOzA7TDs7Ozs2O047Ozs7OworMzAyNztIQU5HWkhPVSBOVU1FUkFMIFNFVkVOO05sOzA7TDs7Ozs3O047Ozs7OworMzAyODtIQU5HWkhPVSBOVU1FUkFMIEVJR0hUO05sOzA7TDs7Ozs4O047Ozs7OworMzAyOTtIQU5HWkhPVSBOVU1FUkFMIE5JTkU7Tmw7MDtMOzs7Ozk7Tjs7Ozs7CiszMDJBO0lERU9HUkFQSElDIExFVkVMIFRPTkUgTUFSSztNbjsyMTg7TlNNOzs7OztOOzs7OzsKKzMwMkI7SURFT0dSQVBISUMgUklTSU5HIFRPTkUgTUFSSztNbjsyMjg7TlNNOzs7OztOOzs7OzsKKzMwMkM7SURFT0dSQVBISUMgREVQQVJUSU5HIFRPTkUgTUFSSztNbjsyMzI7TlNNOzs7OztOOzs7OzsKKzMwMkQ7SURFT0dSQVBISUMgRU5URVJJTkcgVE9ORSBNQVJLO01uOzIyMjtOU007Ozs7O047Ozs7OworMzAyRTtIQU5HVUwgU0lOR0xFIERPVCBUT05FIE1BUks7TW47MjI0O05TTTs7Ozs7Tjs7Ozs7CiszMDJGO0hBTkdVTCBET1VCTEUgRE9UIFRPTkUgTUFSSztNbjsyMjQ7TlNNOzs7OztOOzs7OzsKKzMwMzA7V0FWWSBEQVNIO1BkOzA7T047Ozs7O047Ozs7OworMzAzMTtWRVJUSUNBTCBLQU5BIFJFUEVBVCBNQVJLO0xtOzA7TDs7Ozs7Tjs7Ozs7CiszMDMyO1ZFUlRJQ0FMIEtBTkEgUkVQRUFUIFdJVEggVk9JQ0VEIFNPVU5EIE1BUks7TG07MDtMOzs7OztOOzs7OzsKKzMwMzM7VkVSVElDQUwgS0FOQSBSRVBFQVQgTUFSSyBVUFBFUiBIQUxGO0xtOzA7TDs7Ozs7Tjs7Ozs7CiszMDM0O1ZFUlRJQ0FMIEtBTkEgUkVQRUFUIFdJVEggVk9JQ0VEIFNPVU5EIE1BUksgVVBQRVIgSEFMRjtMbTswO0w7Ozs7O047Ozs7OworMzAzNTtWRVJUSUNBTCBLQU5BIFJFUEVBVCBNQVJLIExPV0VSIEhBTEY7TG07MDtMOzs7OztOOzs7OzsKKzMwMzY7Q0lSQ0xFRCBQT1NUQUwgTUFSSztTbzswO09OOzxjb21wYXQ+IDMwMTI7Ozs7Tjs7Ozs7CiszMDM3O0lERU9HUkFQSElDIFRFTEVHUkFQSCBMSU5FIEZFRUQgU0VQQVJBVE9SIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzMwMzg7SEFOR1pIT1UgTlVNRVJBTCBURU47Tmw7MDtMOzxjb21wYXQ+IDUzNDE7OzsxMDtOOzs7OzsKKzMwMzk7SEFOR1pIT1UgTlVNRVJBTCBUV0VOVFk7Tmw7MDtMOzxjb21wYXQ+IDUzNDQ7OzsyMDtOOzs7OzsKKzMwM0E7SEFOR1pIT1UgTlVNRVJBTCBUSElSVFk7Tmw7MDtMOzxjb21wYXQ+IDUzNDU7OzszMDtOOzs7OzsKKzMwM0U7SURFT0dSQVBISUMgVkFSSUFUSU9OIElORElDQVRPUjtTbzswO09OOzs7OztOOzs7OzsKKzMwM0Y7SURFT0dSQVBISUMgSEFMRiBGSUxMIFNQQUNFO1NvOzA7T047Ozs7O047Ozs7OworMzA0MTtISVJBR0FOQSBMRVRURVIgU01BTEwgQTtMbzswO0w7Ozs7O047Ozs7OworMzA0MjtISVJBR0FOQSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMzA0MztISVJBR0FOQSBMRVRURVIgU01BTEwgSTtMbzswO0w7Ozs7O047Ozs7OworMzA0NDtISVJBR0FOQSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMzA0NTtISVJBR0FOQSBMRVRURVIgU01BTEwgVTtMbzswO0w7Ozs7O047Ozs7OworMzA0NjtISVJBR0FOQSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMzA0NztISVJBR0FOQSBMRVRURVIgU01BTEwgRTtMbzswO0w7Ozs7O047Ozs7OworMzA0ODtISVJBR0FOQSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMzA0OTtISVJBR0FOQSBMRVRURVIgU01BTEwgTztMbzswO0w7Ozs7O047Ozs7OworMzA0QTtISVJBR0FOQSBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMzA0QjtISVJBR0FOQSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzMwNEM7SElSQUdBTkEgTEVUVEVSIEdBO0xvOzA7TDszMDRCIDMwOTk7Ozs7Tjs7Ozs7CiszMDREO0hJUkFHQU5BIExFVFRFUiBLSTtMbzswO0w7Ozs7O047Ozs7OworMzA0RTtISVJBR0FOQSBMRVRURVIgR0k7TG87MDtMOzMwNEQgMzA5OTs7OztOOzs7OzsKKzMwNEY7SElSQUdBTkEgTEVUVEVSIEtVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDUwO0hJUkFHQU5BIExFVFRFUiBHVTtMbzswO0w7MzA0RiAzMDk5Ozs7O047Ozs7OworMzA1MTtISVJBR0FOQSBMRVRURVIgS0U7TG87MDtMOzs7OztOOzs7OzsKKzMwNTI7SElSQUdBTkEgTEVUVEVSIEdFO0xvOzA7TDszMDUxIDMwOTk7Ozs7Tjs7Ozs7CiszMDUzO0hJUkFHQU5BIExFVFRFUiBLTztMbzswO0w7Ozs7O047Ozs7OworMzA1NDtISVJBR0FOQSBMRVRURVIgR087TG87MDtMOzMwNTMgMzA5OTs7OztOOzs7OzsKKzMwNTU7SElSQUdBTkEgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDU2O0hJUkFHQU5BIExFVFRFUiBaQTtMbzswO0w7MzA1NSAzMDk5Ozs7O047Ozs7OworMzA1NztISVJBR0FOQSBMRVRURVIgU0k7TG87MDtMOzs7OztOOzs7OzsKKzMwNTg7SElSQUdBTkEgTEVUVEVSIFpJO0xvOzA7TDszMDU3IDMwOTk7Ozs7Tjs7Ozs7CiszMDU5O0hJUkFHQU5BIExFVFRFUiBTVTtMbzswO0w7Ozs7O047Ozs7OworMzA1QTtISVJBR0FOQSBMRVRURVIgWlU7TG87MDtMOzMwNTkgMzA5OTs7OztOOzs7OzsKKzMwNUI7SElSQUdBTkEgTEVUVEVSIFNFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDVDO0hJUkFHQU5BIExFVFRFUiBaRTtMbzswO0w7MzA1QiAzMDk5Ozs7O047Ozs7OworMzA1RDtISVJBR0FOQSBMRVRURVIgU087TG87MDtMOzs7OztOOzs7OzsKKzMwNUU7SElSQUdBTkEgTEVUVEVSIFpPO0xvOzA7TDszMDVEIDMwOTk7Ozs7Tjs7Ozs7CiszMDVGO0hJUkFHQU5BIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMzA2MDtISVJBR0FOQSBMRVRURVIgREE7TG87MDtMOzMwNUYgMzA5OTs7OztOOzs7OzsKKzMwNjE7SElSQUdBTkEgTEVUVEVSIFRJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDYyO0hJUkFHQU5BIExFVFRFUiBESTtMbzswO0w7MzA2MSAzMDk5Ozs7O047Ozs7OworMzA2MztISVJBR0FOQSBMRVRURVIgU01BTEwgVFU7TG87MDtMOzs7OztOOzs7OzsKKzMwNjQ7SElSQUdBTkEgTEVUVEVSIFRVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDY1O0hJUkFHQU5BIExFVFRFUiBEVTtMbzswO0w7MzA2NCAzMDk5Ozs7O047Ozs7OworMzA2NjtISVJBR0FOQSBMRVRURVIgVEU7TG87MDtMOzs7OztOOzs7OzsKKzMwNjc7SElSQUdBTkEgTEVUVEVSIERFO0xvOzA7TDszMDY2IDMwOTk7Ozs7Tjs7Ozs7CiszMDY4O0hJUkFHQU5BIExFVFRFUiBUTztMbzswO0w7Ozs7O047Ozs7OworMzA2OTtISVJBR0FOQSBMRVRURVIgRE87TG87MDtMOzMwNjggMzA5OTs7OztOOzs7OzsKKzMwNkE7SElSQUdBTkEgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDZCO0hJUkFHQU5BIExFVFRFUiBOSTtMbzswO0w7Ozs7O047Ozs7OworMzA2QztISVJBR0FOQSBMRVRURVIgTlU7TG87MDtMOzs7OztOOzs7OzsKKzMwNkQ7SElSQUdBTkEgTEVUVEVSIE5FO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDZFO0hJUkFHQU5BIExFVFRFUiBOTztMbzswO0w7Ozs7O047Ozs7OworMzA2RjtISVJBR0FOQSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzMwNzA7SElSQUdBTkEgTEVUVEVSIEJBO0xvOzA7TDszMDZGIDMwOTk7Ozs7Tjs7Ozs7CiszMDcxO0hJUkFHQU5BIExFVFRFUiBQQTtMbzswO0w7MzA2RiAzMDlBOzs7O047Ozs7OworMzA3MjtISVJBR0FOQSBMRVRURVIgSEk7TG87MDtMOzs7OztOOzs7OzsKKzMwNzM7SElSQUdBTkEgTEVUVEVSIEJJO0xvOzA7TDszMDcyIDMwOTk7Ozs7Tjs7Ozs7CiszMDc0O0hJUkFHQU5BIExFVFRFUiBQSTtMbzswO0w7MzA3MiAzMDlBOzs7O047Ozs7OworMzA3NTtISVJBR0FOQSBMRVRURVIgSFU7TG87MDtMOzs7OztOOzs7OzsKKzMwNzY7SElSQUdBTkEgTEVUVEVSIEJVO0xvOzA7TDszMDc1IDMwOTk7Ozs7Tjs7Ozs7CiszMDc3O0hJUkFHQU5BIExFVFRFUiBQVTtMbzswO0w7MzA3NSAzMDlBOzs7O047Ozs7OworMzA3ODtISVJBR0FOQSBMRVRURVIgSEU7TG87MDtMOzs7OztOOzs7OzsKKzMwNzk7SElSQUdBTkEgTEVUVEVSIEJFO0xvOzA7TDszMDc4IDMwOTk7Ozs7Tjs7Ozs7CiszMDdBO0hJUkFHQU5BIExFVFRFUiBQRTtMbzswO0w7MzA3OCAzMDlBOzs7O047Ozs7OworMzA3QjtISVJBR0FOQSBMRVRURVIgSE87TG87MDtMOzs7OztOOzs7OzsKKzMwN0M7SElSQUdBTkEgTEVUVEVSIEJPO0xvOzA7TDszMDdCIDMwOTk7Ozs7Tjs7Ozs7CiszMDdEO0hJUkFHQU5BIExFVFRFUiBQTztMbzswO0w7MzA3QiAzMDlBOzs7O047Ozs7OworMzA3RTtISVJBR0FOQSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzMwN0Y7SElSQUdBTkEgTEVUVEVSIE1JO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDgwO0hJUkFHQU5BIExFVFRFUiBNVTtMbzswO0w7Ozs7O047Ozs7OworMzA4MTtISVJBR0FOQSBMRVRURVIgTUU7TG87MDtMOzs7OztOOzs7OzsKKzMwODI7SElSQUdBTkEgTEVUVEVSIE1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDgzO0hJUkFHQU5BIExFVFRFUiBTTUFMTCBZQTtMbzswO0w7Ozs7O047Ozs7OworMzA4NDtISVJBR0FOQSBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzMwODU7SElSQUdBTkEgTEVUVEVSIFNNQUxMIFlVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDg2O0hJUkFHQU5BIExFVFRFUiBZVTtMbzswO0w7Ozs7O047Ozs7OworMzA4NztISVJBR0FOQSBMRVRURVIgU01BTEwgWU87TG87MDtMOzs7OztOOzs7OzsKKzMwODg7SElSQUdBTkEgTEVUVEVSIFlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDg5O0hJUkFHQU5BIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMzA4QTtISVJBR0FOQSBMRVRURVIgUkk7TG87MDtMOzs7OztOOzs7OzsKKzMwOEI7SElSQUdBTkEgTEVUVEVSIFJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDhDO0hJUkFHQU5BIExFVFRFUiBSRTtMbzswO0w7Ozs7O047Ozs7OworMzA4RDtISVJBR0FOQSBMRVRURVIgUk87TG87MDtMOzs7OztOOzs7OzsKKzMwOEU7SElSQUdBTkEgTEVUVEVSIFNNQUxMIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDhGO0hJUkFHQU5BIExFVFRFUiBXQTtMbzswO0w7Ozs7O047Ozs7OworMzA5MDtISVJBR0FOQSBMRVRURVIgV0k7TG87MDtMOzs7OztOOzs7OzsKKzMwOTE7SElSQUdBTkEgTEVUVEVSIFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDkyO0hJUkFHQU5BIExFVFRFUiBXTztMbzswO0w7Ozs7O047Ozs7OworMzA5MztISVJBR0FOQSBMRVRURVIgTjtMbzswO0w7Ozs7O047Ozs7OworMzA5NDtISVJBR0FOQSBMRVRURVIgVlU7TG87MDtMOzMwNDYgMzA5OTs7OztOOzs7OzsKKzMwOTk7Q09NQklOSU5HIEtBVEFLQU5BLUhJUkFHQU5BIFZPSUNFRCBTT1VORCBNQVJLO01uOzg7TlNNOzs7OztOO05PTi1TUEFDSU5HIEtBVEFLQU5BLUhJUkFHQU5BIFZPSUNFRCBTT1VORCBNQVJLOzs7OworMzA5QTtDT01CSU5JTkcgS0FUQUtBTkEtSElSQUdBTkEgU0VNSS1WT0lDRUQgU09VTkQgTUFSSztNbjs4O05TTTs7Ozs7TjtOT04tU1BBQ0lORyBLQVRBS0FOQS1ISVJBR0FOQSBTRU1JLVZPSUNFRCBTT1VORCBNQVJLOzs7OworMzA5QjtLQVRBS0FOQS1ISVJBR0FOQSBWT0lDRUQgU09VTkQgTUFSSztTazswO09OOzxjb21wYXQ+IDAwMjAgMzA5OTs7OztOOzs7OzsKKzMwOUM7S0FUQUtBTkEtSElSQUdBTkEgU0VNSS1WT0lDRUQgU09VTkQgTUFSSztTazswO09OOzxjb21wYXQ+IDAwMjAgMzA5QTs7OztOOzs7OzsKKzMwOUQ7SElSQUdBTkEgSVRFUkFUSU9OIE1BUks7TG07MDtMOzs7OztOOzs7OzsKKzMwOUU7SElSQUdBTkEgVk9JQ0VEIElURVJBVElPTiBNQVJLO0xtOzA7TDszMDlEIDMwOTk7Ozs7Tjs7Ozs7CiszMEExO0tBVEFLQU5BIExFVFRFUiBTTUFMTCBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEEyO0tBVEFLQU5BIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEEzO0tBVEFLQU5BIExFVFRFUiBTTUFMTCBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEE0O0tBVEFLQU5BIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEE1O0tBVEFLQU5BIExFVFRFUiBTTUFMTCBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEE2O0tBVEFLQU5BIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEE3O0tBVEFLQU5BIExFVFRFUiBTTUFMTCBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEE4O0tBVEFLQU5BIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEE5O0tBVEFLQU5BIExFVFRFUiBTTUFMTCBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEFBO0tBVEFLQU5BIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEFCO0tBVEFLQU5BIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMzBBQztLQVRBS0FOQSBMRVRURVIgR0E7TG87MDtMOzMwQUIgMzA5OTs7OztOOzs7OzsKKzMwQUQ7S0FUQUtBTkEgTEVUVEVSIEtJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEFFO0tBVEFLQU5BIExFVFRFUiBHSTtMbzswO0w7MzBBRCAzMDk5Ozs7O047Ozs7OworMzBBRjtLQVRBS0FOQSBMRVRURVIgS1U7TG87MDtMOzs7OztOOzs7OzsKKzMwQjA7S0FUQUtBTkEgTEVUVEVSIEdVO0xvOzA7TDszMEFGIDMwOTk7Ozs7Tjs7Ozs7CiszMEIxO0tBVEFLQU5BIExFVFRFUiBLRTtMbzswO0w7Ozs7O047Ozs7OworMzBCMjtLQVRBS0FOQSBMRVRURVIgR0U7TG87MDtMOzMwQjEgMzA5OTs7OztOOzs7OzsKKzMwQjM7S0FUQUtBTkEgTEVUVEVSIEtPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEI0O0tBVEFLQU5BIExFVFRFUiBHTztMbzswO0w7MzBCMyAzMDk5Ozs7O047Ozs7OworMzBCNTtLQVRBS0FOQSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzMwQjY7S0FUQUtBTkEgTEVUVEVSIFpBO0xvOzA7TDszMEI1IDMwOTk7Ozs7Tjs7Ozs7CiszMEI3O0tBVEFLQU5BIExFVFRFUiBTSTtMbzswO0w7Ozs7O047Ozs7OworMzBCODtLQVRBS0FOQSBMRVRURVIgWkk7TG87MDtMOzMwQjcgMzA5OTs7OztOOzs7OzsKKzMwQjk7S0FUQUtBTkEgTEVUVEVSIFNVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEJBO0tBVEFLQU5BIExFVFRFUiBaVTtMbzswO0w7MzBCOSAzMDk5Ozs7O047Ozs7OworMzBCQjtLQVRBS0FOQSBMRVRURVIgU0U7TG87MDtMOzs7OztOOzs7OzsKKzMwQkM7S0FUQUtBTkEgTEVUVEVSIFpFO0xvOzA7TDszMEJCIDMwOTk7Ozs7Tjs7Ozs7CiszMEJEO0tBVEFLQU5BIExFVFRFUiBTTztMbzswO0w7Ozs7O047Ozs7OworMzBCRTtLQVRBS0FOQSBMRVRURVIgWk87TG87MDtMOzMwQkQgMzA5OTs7OztOOzs7OzsKKzMwQkY7S0FUQUtBTkEgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEMwO0tBVEFLQU5BIExFVFRFUiBEQTtMbzswO0w7MzBCRiAzMDk5Ozs7O047Ozs7OworMzBDMTtLQVRBS0FOQSBMRVRURVIgVEk7TG87MDtMOzs7OztOOzs7OzsKKzMwQzI7S0FUQUtBTkEgTEVUVEVSIERJO0xvOzA7TDszMEMxIDMwOTk7Ozs7Tjs7Ozs7CiszMEMzO0tBVEFLQU5BIExFVFRFUiBTTUFMTCBUVTtMbzswO0w7Ozs7O047Ozs7OworMzBDNDtLQVRBS0FOQSBMRVRURVIgVFU7TG87MDtMOzs7OztOOzs7OzsKKzMwQzU7S0FUQUtBTkEgTEVUVEVSIERVO0xvOzA7TDszMEM0IDMwOTk7Ozs7Tjs7Ozs7CiszMEM2O0tBVEFLQU5BIExFVFRFUiBURTtMbzswO0w7Ozs7O047Ozs7OworMzBDNztLQVRBS0FOQSBMRVRURVIgREU7TG87MDtMOzMwQzYgMzA5OTs7OztOOzs7OzsKKzMwQzg7S0FUQUtBTkEgTEVUVEVSIFRPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEM5O0tBVEFLQU5BIExFVFRFUiBETztMbzswO0w7MzBDOCAzMDk5Ozs7O047Ozs7OworMzBDQTtLQVRBS0FOQSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzMwQ0I7S0FUQUtBTkEgTEVUVEVSIE5JO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMENDO0tBVEFLQU5BIExFVFRFUiBOVTtMbzswO0w7Ozs7O047Ozs7OworMzBDRDtLQVRBS0FOQSBMRVRURVIgTkU7TG87MDtMOzs7OztOOzs7OzsKKzMwQ0U7S0FUQUtBTkEgTEVUVEVSIE5PO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMENGO0tBVEFLQU5BIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMzBEMDtLQVRBS0FOQSBMRVRURVIgQkE7TG87MDtMOzMwQ0YgMzA5OTs7OztOOzs7OzsKKzMwRDE7S0FUQUtBTkEgTEVUVEVSIFBBO0xvOzA7TDszMENGIDMwOUE7Ozs7Tjs7Ozs7CiszMEQyO0tBVEFLQU5BIExFVFRFUiBISTtMbzswO0w7Ozs7O047Ozs7OworMzBEMztLQVRBS0FOQSBMRVRURVIgQkk7TG87MDtMOzMwRDIgMzA5OTs7OztOOzs7OzsKKzMwRDQ7S0FUQUtBTkEgTEVUVEVSIFBJO0xvOzA7TDszMEQyIDMwOUE7Ozs7Tjs7Ozs7CiszMEQ1O0tBVEFLQU5BIExFVFRFUiBIVTtMbzswO0w7Ozs7O047Ozs7OworMzBENjtLQVRBS0FOQSBMRVRURVIgQlU7TG87MDtMOzMwRDUgMzA5OTs7OztOOzs7OzsKKzMwRDc7S0FUQUtBTkEgTEVUVEVSIFBVO0xvOzA7TDszMEQ1IDMwOUE7Ozs7Tjs7Ozs7CiszMEQ4O0tBVEFLQU5BIExFVFRFUiBIRTtMbzswO0w7Ozs7O047Ozs7OworMzBEOTtLQVRBS0FOQSBMRVRURVIgQkU7TG87MDtMOzMwRDggMzA5OTs7OztOOzs7OzsKKzMwREE7S0FUQUtBTkEgTEVUVEVSIFBFO0xvOzA7TDszMEQ4IDMwOUE7Ozs7Tjs7Ozs7CiszMERCO0tBVEFLQU5BIExFVFRFUiBITztMbzswO0w7Ozs7O047Ozs7OworMzBEQztLQVRBS0FOQSBMRVRURVIgQk87TG87MDtMOzMwREIgMzA5OTs7OztOOzs7OzsKKzMwREQ7S0FUQUtBTkEgTEVUVEVSIFBPO0xvOzA7TDszMERCIDMwOUE7Ozs7Tjs7Ozs7CiszMERFO0tBVEFLQU5BIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMzBERjtLQVRBS0FOQSBMRVRURVIgTUk7TG87MDtMOzs7OztOOzs7OzsKKzMwRTA7S0FUQUtBTkEgTEVUVEVSIE1VO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEUxO0tBVEFLQU5BIExFVFRFUiBNRTtMbzswO0w7Ozs7O047Ozs7OworMzBFMjtLQVRBS0FOQSBMRVRURVIgTU87TG87MDtMOzs7OztOOzs7OzsKKzMwRTM7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEU0O0tBVEFLQU5BIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMzBFNTtLQVRBS0FOQSBMRVRURVIgU01BTEwgWVU7TG87MDtMOzs7OztOOzs7OzsKKzMwRTY7S0FUQUtBTkEgTEVUVEVSIFlVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEU3O0tBVEFLQU5BIExFVFRFUiBTTUFMTCBZTztMbzswO0w7Ozs7O047Ozs7OworMzBFODtLQVRBS0FOQSBMRVRURVIgWU87TG87MDtMOzs7OztOOzs7OzsKKzMwRTk7S0FUQUtBTkEgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEVBO0tBVEFLQU5BIExFVFRFUiBSSTtMbzswO0w7Ozs7O047Ozs7OworMzBFQjtLQVRBS0FOQSBMRVRURVIgUlU7TG87MDtMOzs7OztOOzs7OzsKKzMwRUM7S0FUQUtBTkEgTEVUVEVSIFJFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEVEO0tBVEFLQU5BIExFVFRFUiBSTztMbzswO0w7Ozs7O047Ozs7OworMzBFRTtLQVRBS0FOQSBMRVRURVIgU01BTEwgV0E7TG87MDtMOzs7OztOOzs7OzsKKzMwRUY7S0FUQUtBTkEgTEVUVEVSIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEYwO0tBVEFLQU5BIExFVFRFUiBXSTtMbzswO0w7Ozs7O047Ozs7OworMzBGMTtLQVRBS0FOQSBMRVRURVIgV0U7TG87MDtMOzs7OztOOzs7OzsKKzMwRjI7S0FUQUtBTkEgTEVUVEVSIFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEYzO0tBVEFLQU5BIExFVFRFUiBOO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEY0O0tBVEFLQU5BIExFVFRFUiBWVTtMbzswO0w7MzBBNiAzMDk5Ozs7O047Ozs7OworMzBGNTtLQVRBS0FOQSBMRVRURVIgU01BTEwgS0E7TG87MDtMOzs7OztOOzs7OzsKKzMwRjY7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIEtFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEY3O0tBVEFLQU5BIExFVFRFUiBWQTtMbzswO0w7MzBFRiAzMDk5Ozs7O047Ozs7OworMzBGODtLQVRBS0FOQSBMRVRURVIgVkk7TG87MDtMOzMwRjAgMzA5OTs7OztOOzs7OzsKKzMwRjk7S0FUQUtBTkEgTEVUVEVSIFZFO0xvOzA7TDszMEYxIDMwOTk7Ozs7Tjs7Ozs7CiszMEZBO0tBVEFLQU5BIExFVFRFUiBWTztMbzswO0w7MzBGMiAzMDk5Ozs7O047Ozs7OworMzBGQjtLQVRBS0FOQSBNSURETEUgRE9UO1BjOzA7T047Ozs7O047Ozs7OworMzBGQztLQVRBS0FOQS1ISVJBR0FOQSBQUk9MT05HRUQgU09VTkQgTUFSSztMbTswO0w7Ozs7O047Ozs7OworMzBGRDtLQVRBS0FOQSBJVEVSQVRJT04gTUFSSztMbTswO0w7Ozs7O047Ozs7OworMzBGRTtLQVRBS0FOQSBWT0lDRUQgSVRFUkFUSU9OIE1BUks7TG07MDtMOzMwRkQgMzA5OTs7OztOOzs7OzsKKzMxMDU7Qk9QT01PRk8gTEVUVEVSIEI7TG87MDtMOzs7OztOOzs7OzsKKzMxMDY7Qk9QT01PRk8gTEVUVEVSIFA7TG87MDtMOzs7OztOOzs7OzsKKzMxMDc7Qk9QT01PRk8gTEVUVEVSIE07TG87MDtMOzs7OztOOzs7OzsKKzMxMDg7Qk9QT01PRk8gTEVUVEVSIEY7TG87MDtMOzs7OztOOzs7OzsKKzMxMDk7Qk9QT01PRk8gTEVUVEVSIEQ7TG87MDtMOzs7OztOOzs7OzsKKzMxMEE7Qk9QT01PRk8gTEVUVEVSIFQ7TG87MDtMOzs7OztOOzs7OzsKKzMxMEI7Qk9QT01PRk8gTEVUVEVSIE47TG87MDtMOzs7OztOOzs7OzsKKzMxMEM7Qk9QT01PRk8gTEVUVEVSIEw7TG87MDtMOzs7OztOOzs7OzsKKzMxMEQ7Qk9QT01PRk8gTEVUVEVSIEc7TG87MDtMOzs7OztOOzs7OzsKKzMxMEU7Qk9QT01PRk8gTEVUVEVSIEs7TG87MDtMOzs7OztOOzs7OzsKKzMxMEY7Qk9QT01PRk8gTEVUVEVSIEg7TG87MDtMOzs7OztOOzs7OzsKKzMxMTA7Qk9QT01PRk8gTEVUVEVSIEo7TG87MDtMOzs7OztOOzs7OzsKKzMxMTE7Qk9QT01PRk8gTEVUVEVSIFE7TG87MDtMOzs7OztOOzs7OzsKKzMxMTI7Qk9QT01PRk8gTEVUVEVSIFg7TG87MDtMOzs7OztOOzs7OzsKKzMxMTM7Qk9QT01PRk8gTEVUVEVSIFpIO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTE0O0JPUE9NT0ZPIExFVFRFUiBDSDtMbzswO0w7Ozs7O047Ozs7OworMzExNTtCT1BPTU9GTyBMRVRURVIgU0g7TG87MDtMOzs7OztOOzs7OzsKKzMxMTY7Qk9QT01PRk8gTEVUVEVSIFI7TG87MDtMOzs7OztOOzs7OzsKKzMxMTc7Qk9QT01PRk8gTEVUVEVSIFo7TG87MDtMOzs7OztOOzs7OzsKKzMxMTg7Qk9QT01PRk8gTEVUVEVSIEM7TG87MDtMOzs7OztOOzs7OzsKKzMxMTk7Qk9QT01PRk8gTEVUVEVSIFM7TG87MDtMOzs7OztOOzs7OzsKKzMxMUE7Qk9QT01PRk8gTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzMxMUI7Qk9QT01PRk8gTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzMxMUM7Qk9QT01PRk8gTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzMxMUQ7Qk9QT01PRk8gTEVUVEVSIEVIO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTFFO0JPUE9NT0ZPIExFVFRFUiBBSTtMbzswO0w7Ozs7O047Ozs7OworMzExRjtCT1BPTU9GTyBMRVRURVIgRUk7TG87MDtMOzs7OztOOzs7OzsKKzMxMjA7Qk9QT01PRk8gTEVUVEVSIEFVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTIxO0JPUE9NT0ZPIExFVFRFUiBPVTtMbzswO0w7Ozs7O047Ozs7OworMzEyMjtCT1BPTU9GTyBMRVRURVIgQU47TG87MDtMOzs7OztOOzs7OzsKKzMxMjM7Qk9QT01PRk8gTEVUVEVSIEVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTI0O0JPUE9NT0ZPIExFVFRFUiBBTkc7TG87MDtMOzs7OztOOzs7OzsKKzMxMjU7Qk9QT01PRk8gTEVUVEVSIEVORztMbzswO0w7Ozs7O047Ozs7OworMzEyNjtCT1BPTU9GTyBMRVRURVIgRVI7TG87MDtMOzs7OztOOzs7OzsKKzMxMjc7Qk9QT01PRk8gTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzMxMjg7Qk9QT01PRk8gTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzMxMjk7Qk9QT01PRk8gTEVUVEVSIElVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTJBO0JPUE9NT0ZPIExFVFRFUiBWO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTJCO0JPUE9NT0ZPIExFVFRFUiBORztMbzswO0w7Ozs7O047Ozs7OworMzEyQztCT1BPTU9GTyBMRVRURVIgR047TG87MDtMOzs7OztOOzs7OzsKKzMxMzE7SEFOR1VMIExFVFRFUiBLSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExMDA7Ozs7TjtIQU5HVUwgTEVUVEVSIEdJWUVPRzs7OzsKKzMxMzI7SEFOR1VMIExFVFRFUiBTU0FOR0tJWUVPSztMbzswO0w7PGNvbXBhdD4gMTEwMTs7OztOO0hBTkdVTCBMRVRURVIgU1NBTkcgR0lZRU9HOzs7OworMzEzMztIQU5HVUwgTEVUVEVSIEtJWUVPSy1TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUFBOzs7O047SEFOR1VMIExFVFRFUiBHSVlFT0cgU0lPUzs7OzsKKzMxMzQ7SEFOR1VMIExFVFRFUiBOSUVVTjtMbzswO0w7PGNvbXBhdD4gMTEwMjs7OztOOzs7OzsKKzMxMzU7SEFOR1VMIExFVFRFUiBOSUVVTi1DSUVVQztMbzswO0w7PGNvbXBhdD4gMTFBQzs7OztOO0hBTkdVTCBMRVRURVIgTklFVU4gSklFVUo7Ozs7CiszMTM2O0hBTkdVTCBMRVRURVIgTklFVU4tSElFVUg7TG87MDtMOzxjb21wYXQ+IDExQUQ7Ozs7TjtIQU5HVUwgTEVUVEVSIE5JRVVOIEhJRVVIOzs7OworMzEzNztIQU5HVUwgTEVUVEVSIFRJS0VVVDtMbzswO0w7PGNvbXBhdD4gMTEwMzs7OztOO0hBTkdVTCBMRVRURVIgRElHRVVEOzs7OworMzEzODtIQU5HVUwgTEVUVEVSIFNTQU5HVElLRVVUO0xvOzA7TDs8Y29tcGF0PiAxMTA0Ozs7O047SEFOR1VMIExFVFRFUiBTU0FORyBESUdFVUQ7Ozs7CiszMTM5O0hBTkdVTCBMRVRURVIgUklFVUw7TG87MDtMOzxjb21wYXQ+IDExMDU7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMOzs7OworMzEzQTtIQU5HVUwgTEVUVEVSIFJJRVVMLUtJWUVPSztMbzswO0w7PGNvbXBhdD4gMTFCMDs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgR0lZRU9HOzs7OworMzEzQjtIQU5HVUwgTEVUVEVSIFJJRVVMLU1JRVVNO0xvOzA7TDs8Y29tcGF0PiAxMUIxOzs7O047SEFOR1VMIExFVFRFUiBMSUVVTCBNSUVVTTs7OzsKKzMxM0M7SEFOR1VMIExFVFRFUiBSSUVVTC1QSUVVUDtMbzswO0w7PGNvbXBhdD4gMTFCMjs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgQklFVUI7Ozs7CiszMTNEO0hBTkdVTCBMRVRURVIgUklFVUwtU0lPUztMbzswO0w7PGNvbXBhdD4gMTFCMzs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgU0lPUzs7OzsKKzMxM0U7SEFOR1VMIExFVFRFUiBSSUVVTC1USElFVVRIO0xvOzA7TDs8Y29tcGF0PiAxMUI0Ozs7O047SEFOR1VMIExFVFRFUiBMSUVVTCBUSUVVVDs7OzsKKzMxM0Y7SEFOR1VMIExFVFRFUiBSSUVVTC1QSElFVVBIO0xvOzA7TDs8Y29tcGF0PiAxMUI1Ozs7O047SEFOR1VMIExFVFRFUiBMSUVVTCBQSUVVUDs7OzsKKzMxNDA7SEFOR1VMIExFVFRFUiBSSUVVTC1ISUVVSDtMbzswO0w7PGNvbXBhdD4gMTExQTs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgSElFVUg7Ozs7CiszMTQxO0hBTkdVTCBMRVRURVIgTUlFVU07TG87MDtMOzxjb21wYXQ+IDExMDY7Ozs7Tjs7Ozs7CiszMTQyO0hBTkdVTCBMRVRURVIgUElFVVA7TG87MDtMOzxjb21wYXQ+IDExMDc7Ozs7TjtIQU5HVUwgTEVUVEVSIEJJRVVCOzs7OworMzE0MztIQU5HVUwgTEVUVEVSIFNTQU5HUElFVVA7TG87MDtMOzxjb21wYXQ+IDExMDg7Ozs7TjtIQU5HVUwgTEVUVEVSIFNTQU5HIEJJRVVCOzs7OworMzE0NDtIQU5HVUwgTEVUVEVSIFBJRVVQLVNJT1M7TG87MDtMOzxjb21wYXQ+IDExMjE7Ozs7TjtIQU5HVUwgTEVUVEVSIEJJRVVCIFNJT1M7Ozs7CiszMTQ1O0hBTkdVTCBMRVRURVIgU0lPUztMbzswO0w7PGNvbXBhdD4gMTEwOTs7OztOOzs7OzsKKzMxNDY7SEFOR1VMIExFVFRFUiBTU0FOR1NJT1M7TG87MDtMOzxjb21wYXQ+IDExMEE7Ozs7TjtIQU5HVUwgTEVUVEVSIFNTQU5HIFNJT1M7Ozs7CiszMTQ3O0hBTkdVTCBMRVRURVIgSUVVTkc7TG87MDtMOzxjb21wYXQ+IDExMEI7Ozs7Tjs7Ozs7CiszMTQ4O0hBTkdVTCBMRVRURVIgQ0lFVUM7TG87MDtMOzxjb21wYXQ+IDExMEM7Ozs7TjtIQU5HVUwgTEVUVEVSIEpJRVVKOzs7OworMzE0OTtIQU5HVUwgTEVUVEVSIFNTQU5HQ0lFVUM7TG87MDtMOzxjb21wYXQ+IDExMEQ7Ozs7TjtIQU5HVUwgTEVUVEVSIFNTQU5HIEpJRVVKOzs7OworMzE0QTtIQU5HVUwgTEVUVEVSIENISUVVQ0g7TG87MDtMOzxjb21wYXQ+IDExMEU7Ozs7TjtIQU5HVUwgTEVUVEVSIENJRVVDOzs7OworMzE0QjtIQU5HVUwgTEVUVEVSIEtISUVVS0g7TG87MDtMOzxjb21wYXQ+IDExMEY7Ozs7TjtIQU5HVUwgTEVUVEVSIEtJWUVPSzs7OzsKKzMxNEM7SEFOR1VMIExFVFRFUiBUSElFVVRIO0xvOzA7TDs8Y29tcGF0PiAxMTEwOzs7O047SEFOR1VMIExFVFRFUiBUSUVVVDs7OzsKKzMxNEQ7SEFOR1VMIExFVFRFUiBQSElFVVBIO0xvOzA7TDs8Y29tcGF0PiAxMTExOzs7O047SEFOR1VMIExFVFRFUiBQSUVVUDs7OzsKKzMxNEU7SEFOR1VMIExFVFRFUiBISUVVSDtMbzswO0w7PGNvbXBhdD4gMTExMjs7OztOOzs7OzsKKzMxNEY7SEFOR1VMIExFVFRFUiBBO0xvOzA7TDs8Y29tcGF0PiAxMTYxOzs7O047Ozs7OworMzE1MDtIQU5HVUwgTEVUVEVSIEFFO0xvOzA7TDs8Y29tcGF0PiAxMTYyOzs7O047Ozs7OworMzE1MTtIQU5HVUwgTEVUVEVSIFlBO0xvOzA7TDs8Y29tcGF0PiAxMTYzOzs7O047Ozs7OworMzE1MjtIQU5HVUwgTEVUVEVSIFlBRTtMbzswO0w7PGNvbXBhdD4gMTE2NDs7OztOOzs7OzsKKzMxNTM7SEFOR1VMIExFVFRFUiBFTztMbzswO0w7PGNvbXBhdD4gMTE2NTs7OztOOzs7OzsKKzMxNTQ7SEFOR1VMIExFVFRFUiBFO0xvOzA7TDs8Y29tcGF0PiAxMTY2Ozs7O047Ozs7OworMzE1NTtIQU5HVUwgTEVUVEVSIFlFTztMbzswO0w7PGNvbXBhdD4gMTE2Nzs7OztOOzs7OzsKKzMxNTY7SEFOR1VMIExFVFRFUiBZRTtMbzswO0w7PGNvbXBhdD4gMTE2ODs7OztOOzs7OzsKKzMxNTc7SEFOR1VMIExFVFRFUiBPO0xvOzA7TDs8Y29tcGF0PiAxMTY5Ozs7O047Ozs7OworMzE1ODtIQU5HVUwgTEVUVEVSIFdBO0xvOzA7TDs8Y29tcGF0PiAxMTZBOzs7O047Ozs7OworMzE1OTtIQU5HVUwgTEVUVEVSIFdBRTtMbzswO0w7PGNvbXBhdD4gMTE2Qjs7OztOOzs7OzsKKzMxNUE7SEFOR1VMIExFVFRFUiBPRTtMbzswO0w7PGNvbXBhdD4gMTE2Qzs7OztOOzs7OzsKKzMxNUI7SEFOR1VMIExFVFRFUiBZTztMbzswO0w7PGNvbXBhdD4gMTE2RDs7OztOOzs7OzsKKzMxNUM7SEFOR1VMIExFVFRFUiBVO0xvOzA7TDs8Y29tcGF0PiAxMTZFOzs7O047Ozs7OworMzE1RDtIQU5HVUwgTEVUVEVSIFdFTztMbzswO0w7PGNvbXBhdD4gMTE2Rjs7OztOOzs7OzsKKzMxNUU7SEFOR1VMIExFVFRFUiBXRTtMbzswO0w7PGNvbXBhdD4gMTE3MDs7OztOOzs7OzsKKzMxNUY7SEFOR1VMIExFVFRFUiBXSTtMbzswO0w7PGNvbXBhdD4gMTE3MTs7OztOOzs7OzsKKzMxNjA7SEFOR1VMIExFVFRFUiBZVTtMbzswO0w7PGNvbXBhdD4gMTE3Mjs7OztOOzs7OzsKKzMxNjE7SEFOR1VMIExFVFRFUiBFVTtMbzswO0w7PGNvbXBhdD4gMTE3Mzs7OztOOzs7OzsKKzMxNjI7SEFOR1VMIExFVFRFUiBZSTtMbzswO0w7PGNvbXBhdD4gMTE3NDs7OztOOzs7OzsKKzMxNjM7SEFOR1VMIExFVFRFUiBJO0xvOzA7TDs8Y29tcGF0PiAxMTc1Ozs7O047Ozs7OworMzE2NDtIQU5HVUwgRklMTEVSO0xvOzA7TDs8Y29tcGF0PiAxMTYwOzs7O047SEFOR1VMIENBRSBPTTs7OzsKKzMxNjU7SEFOR1VMIExFVFRFUiBTU0FOR05JRVVOO0xvOzA7TDs8Y29tcGF0PiAxMTE0Ozs7O047SEFOR1VMIExFVFRFUiBTU0FORyBOSUVVTjs7OzsKKzMxNjY7SEFOR1VMIExFVFRFUiBOSUVVTi1USUtFVVQ7TG87MDtMOzxjb21wYXQ+IDExMTU7Ozs7TjtIQU5HVUwgTEVUVEVSIE5JRVVOIERJR0VVRDs7OzsKKzMxNjc7SEFOR1VMIExFVFRFUiBOSUVVTi1TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUM3Ozs7O047SEFOR1VMIExFVFRFUiBOSUVVTiBTSU9TOzs7OworMzE2ODtIQU5HVUwgTEVUVEVSIE5JRVVOLVBBTlNJT1M7TG87MDtMOzxjb21wYXQ+IDExQzg7Ozs7TjtIQU5HVUwgTEVUVEVSIE5JRVVOIEJBTiBDSEkgRVVNOzs7OworMzE2OTtIQU5HVUwgTEVUVEVSIFJJRVVMLUtJWUVPSy1TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUNDOzs7O047SEFOR1VMIExFVFRFUiBMSUVVTCBHSVlFT0cgU0lPUzs7OzsKKzMxNkE7SEFOR1VMIExFVFRFUiBSSUVVTC1USUtFVVQ7TG87MDtMOzxjb21wYXQ+IDExQ0U7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIERJR0VVRDs7OzsKKzMxNkI7SEFOR1VMIExFVFRFUiBSSUVVTC1QSUVVUC1TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUQzOzs7O047SEFOR1VMIExFVFRFUiBMSUVVTCBCSUVVQiBTSU9TOzs7OworMzE2QztIQU5HVUwgTEVUVEVSIFJJRVVMLVBBTlNJT1M7TG87MDtMOzxjb21wYXQ+IDExRDc7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIEJBTiBDSEkgRVVNOzs7OworMzE2RDtIQU5HVUwgTEVUVEVSIFJJRVVMLVlFT1JJTkhJRVVIO0xvOzA7TDs8Y29tcGF0PiAxMUQ5Ozs7O047SEFOR1VMIExFVFRFUiBMSUVVTCBZRU9MSU4gSElFVUg7Ozs7CiszMTZFO0hBTkdVTCBMRVRURVIgTUlFVU0tUElFVVA7TG87MDtMOzxjb21wYXQ+IDExMUM7Ozs7TjtIQU5HVUwgTEVUVEVSIE1JRVVNIEJJRVVCOzs7OworMzE2RjtIQU5HVUwgTEVUVEVSIE1JRVVNLVNJT1M7TG87MDtMOzxjb21wYXQ+IDExREQ7Ozs7TjtIQU5HVUwgTEVUVEVSIE1JRVVNIFNJT1M7Ozs7CiszMTcwO0hBTkdVTCBMRVRURVIgTUlFVU0tUEFOU0lPUztMbzswO0w7PGNvbXBhdD4gMTFERjs7OztOO0hBTkdVTCBMRVRURVIgQklFVUIgQkFOIENISSBFVU07Ozs7CiszMTcxO0hBTkdVTCBMRVRURVIgS0FQWUVPVU5NSUVVTTtMbzswO0w7PGNvbXBhdD4gMTExRDs7OztOO0hBTkdVTCBMRVRURVIgTUlFVU0gU1VOIEdZRU9ORyBFVU07Ozs7CiszMTcyO0hBTkdVTCBMRVRURVIgUElFVVAtS0lZRU9LO0xvOzA7TDs8Y29tcGF0PiAxMTFFOzs7O047SEFOR1VMIExFVFRFUiBCSUVVQiBHSVlFT0c7Ozs7CiszMTczO0hBTkdVTCBMRVRURVIgUElFVVAtVElLRVVUO0xvOzA7TDs8Y29tcGF0PiAxMTIwOzs7O047SEFOR1VMIExFVFRFUiBCSUVVQiBESUdFVUQ7Ozs7CiszMTc0O0hBTkdVTCBMRVRURVIgUElFVVAtU0lPUy1LSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExMjI7Ozs7TjtIQU5HVUwgTEVUVEVSIEJJRVVCIFNJT1MgR0lZRU9HOzs7OworMzE3NTtIQU5HVUwgTEVUVEVSIFBJRVVQLVNJT1MtVElLRVVUO0xvOzA7TDs8Y29tcGF0PiAxMTIzOzs7O047SEFOR1VMIExFVFRFUiBCSUVVQiBTSU9TIERJR0VVRDs7OzsKKzMxNzY7SEFOR1VMIExFVFRFUiBQSUVVUC1DSUVVQztMbzswO0w7PGNvbXBhdD4gMTEyNzs7OztOO0hBTkdVTCBMRVRURVIgQklFVUIgSklFVUo7Ozs7CiszMTc3O0hBTkdVTCBMRVRURVIgUElFVVAtVEhJRVVUSDtMbzswO0w7PGNvbXBhdD4gMTEyOTs7OztOO0hBTkdVTCBMRVRURVIgQklFVUIgVElFVVQ7Ozs7CiszMTc4O0hBTkdVTCBMRVRURVIgS0FQWUVPVU5QSUVVUDtMbzswO0w7PGNvbXBhdD4gMTEyQjs7OztOO0hBTkdVTCBMRVRURVIgQklFVUIgU1VOIEdZRU9ORyBFVU07Ozs7CiszMTc5O0hBTkdVTCBMRVRURVIgS0FQWUVPVU5TU0FOR1BJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMTJDOzs7O047SEFOR1VMIExFVFRFUiBTU0FORyBCSUVVQiBTVU4gR1lFT05HIEVVTTs7OzsKKzMxN0E7SEFOR1VMIExFVFRFUiBTSU9TLUtJWUVPSztMbzswO0w7PGNvbXBhdD4gMTEyRDs7OztOO0hBTkdVTCBMRVRURVIgU0lPUyBHSVlFT0c7Ozs7CiszMTdCO0hBTkdVTCBMRVRURVIgU0lPUy1OSUVVTjtMbzswO0w7PGNvbXBhdD4gMTEyRTs7OztOO0hBTkdVTCBMRVRURVIgU0lPUyBOSUVVTjs7OzsKKzMxN0M7SEFOR1VMIExFVFRFUiBTSU9TLVRJS0VVVDtMbzswO0w7PGNvbXBhdD4gMTEyRjs7OztOO0hBTkdVTCBMRVRURVIgU0lPUyBESUdFVUQ7Ozs7CiszMTdEO0hBTkdVTCBMRVRURVIgU0lPUy1QSUVVUDtMbzswO0w7PGNvbXBhdD4gMTEzMjs7OztOO0hBTkdVTCBMRVRURVIgU0lPUyBCSUVVQjs7OzsKKzMxN0U7SEFOR1VMIExFVFRFUiBTSU9TLUNJRVVDO0xvOzA7TDs8Y29tcGF0PiAxMTM2Ozs7O047SEFOR1VMIExFVFRFUiBTSU9TIEpJRVVKOzs7OworMzE3RjtIQU5HVUwgTEVUVEVSIFBBTlNJT1M7TG87MDtMOzxjb21wYXQ+IDExNDA7Ozs7TjtIQU5HVUwgTEVUVEVSIEJBTiBDSEkgRVVNOzs7OworMzE4MDtIQU5HVUwgTEVUVEVSIFNTQU5HSUVVTkc7TG87MDtMOzxjb21wYXQ+IDExNDc7Ozs7TjtIQU5HVUwgTEVUVEVSIFNTQU5HIElFVU5HOzs7OworMzE4MTtIQU5HVUwgTEVUVEVSIFlFU0lFVU5HO0xvOzA7TDs8Y29tcGF0PiAxMTRDOzs7O047SEFOR1VMIExFVFRFUiBOR0lFVU5HOzs7OworMzE4MjtIQU5HVUwgTEVUVEVSIFlFU0lFVU5HLVNJT1M7TG87MDtMOzxjb21wYXQ+IDExRjE7Ozs7TjtIQU5HVUwgTEVUVEVSIE5HSUVVTkcgU0lPUzs7OzsKKzMxODM7SEFOR1VMIExFVFRFUiBZRVNJRVVORy1QQU5TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUYyOzs7O047SEFOR1VMIExFVFRFUiBOR0lFVU5HIEJBTiBDSEkgRVVNOzs7OworMzE4NDtIQU5HVUwgTEVUVEVSIEtBUFlFT1VOUEhJRVVQSDtMbzswO0w7PGNvbXBhdD4gMTE1Nzs7OztOO0hBTkdVTCBMRVRURVIgUElFVVAgU1VOIEdZRU9ORyBFVU07Ozs7CiszMTg1O0hBTkdVTCBMRVRURVIgU1NBTkdISUVVSDtMbzswO0w7PGNvbXBhdD4gMTE1ODs7OztOO0hBTkdVTCBMRVRURVIgU1NBTkcgSElFVUg7Ozs7CiszMTg2O0hBTkdVTCBMRVRURVIgWUVPUklOSElFVUg7TG87MDtMOzxjb21wYXQ+IDExNTk7Ozs7TjtIQU5HVUwgTEVUVEVSIFlFT0xJTiBISUVVSDs7OzsKKzMxODc7SEFOR1VMIExFVFRFUiBZTy1ZQTtMbzswO0w7PGNvbXBhdD4gMTE4NDs7OztOO0hBTkdVTCBMRVRURVIgWU9ZQTs7OzsKKzMxODg7SEFOR1VMIExFVFRFUiBZTy1ZQUU7TG87MDtMOzxjb21wYXQ+IDExODU7Ozs7TjtIQU5HVUwgTEVUVEVSIFlPWUFFOzs7OworMzE4OTtIQU5HVUwgTEVUVEVSIFlPLUk7TG87MDtMOzxjb21wYXQ+IDExODg7Ozs7TjtIQU5HVUwgTEVUVEVSIFlPSTs7OzsKKzMxOEE7SEFOR1VMIExFVFRFUiBZVS1ZRU87TG87MDtMOzxjb21wYXQ+IDExOTE7Ozs7TjtIQU5HVUwgTEVUVEVSIFlVWUVPOzs7OworMzE4QjtIQU5HVUwgTEVUVEVSIFlVLVlFO0xvOzA7TDs8Y29tcGF0PiAxMTkyOzs7O047SEFOR1VMIExFVFRFUiBZVVlFOzs7OworMzE4QztIQU5HVUwgTEVUVEVSIFlVLUk7TG87MDtMOzxjb21wYXQ+IDExOTQ7Ozs7TjtIQU5HVUwgTEVUVEVSIFlVSTs7OzsKKzMxOEQ7SEFOR1VMIExFVFRFUiBBUkFFQTtMbzswO0w7PGNvbXBhdD4gMTE5RTs7OztOO0hBTkdVTCBMRVRURVIgQUxBRSBBOzs7OworMzE4RTtIQU5HVUwgTEVUVEVSIEFSQUVBRTtMbzswO0w7PGNvbXBhdD4gMTFBMTs7OztOO0hBTkdVTCBMRVRURVIgQUxBRSBBRTs7OzsKKzMxOTA7SURFT0dSQVBISUMgQU5OT1RBVElPTiBMSU5LSU5HIE1BUks7U287MDtMOzs7OztOO0tBTkJVTiBUQVRFVEVOO0thbmJ1biBUYXRldGVuOzs7CiszMTkxO0lERU9HUkFQSElDIEFOTk9UQVRJT04gUkVWRVJTRSBNQVJLO1NvOzA7TDs7Ozs7TjtLQUVSSVRFTiBSRTtLYWVyaXRlbjs7OworMzE5MjtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIE9ORSBNQVJLO05vOzA7TDs8c3VwZXI+IDRFMDA7OzsxO047S0FFUklURU4gSVRJO0thZXJpdGVuOzs7CiszMTkzO0lERU9HUkFQSElDIEFOTk9UQVRJT04gVFdPIE1BUks7Tm87MDtMOzxzdXBlcj4gNEU4Qzs7OzI7TjtLQUVSSVRFTiBOSTtLYWVyaXRlbjs7OworMzE5NDtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIFRIUkVFIE1BUks7Tm87MDtMOzxzdXBlcj4gNEUwOTs7OzM7TjtLQUVSSVRFTiBTQU47S2Flcml0ZW47OzsKKzMxOTU7SURFT0dSQVBISUMgQU5OT1RBVElPTiBGT1VSIE1BUks7Tm87MDtMOzxzdXBlcj4gNTZEQjs7OzQ7TjtLQUVSSVRFTiBTSTtLYWVyaXRlbjs7OworMzE5NjtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIFRPUCBNQVJLO1NvOzA7TDs8c3VwZXI+IDRFMEE7Ozs7TjtLQUVSSVRFTiBaWU9VO0thZXJpdGVuOzs7CiszMTk3O0lERU9HUkFQSElDIEFOTk9UQVRJT04gTUlERExFIE1BUks7U287MDtMOzxzdXBlcj4gNEUyRDs7OztOO0tBRVJJVEVOIFRZVVU7S2Flcml0ZW47OzsKKzMxOTg7SURFT0dSQVBISUMgQU5OT1RBVElPTiBCT1RUT00gTUFSSztTbzswO0w7PHN1cGVyPiA0RTBCOzs7O047S0FFUklURU4gR0U7S2Flcml0ZW47OzsKKzMxOTk7SURFT0dSQVBISUMgQU5OT1RBVElPTiBGSVJTVCBNQVJLO1NvOzA7TDs8c3VwZXI+IDc1MzI7Ozs7TjtLQUVSSVRFTiBLT1U7S2Flcml0ZW47OzsKKzMxOUE7SURFT0dSQVBISUMgQU5OT1RBVElPTiBTRUNPTkQgTUFSSztTbzswO0w7PHN1cGVyPiA0RTU5Ozs7O047S0FFUklURU4gT1RVO0thZXJpdGVuOzs7CiszMTlCO0lERU9HUkFQSElDIEFOTk9UQVRJT04gVEhJUkQgTUFSSztTbzswO0w7PHN1cGVyPiA0RTE5Ozs7O047S0FFUklURU4gSEVJO0thZXJpdGVuOzs7CiszMTlDO0lERU9HUkFQSElDIEFOTk9UQVRJT04gRk9VUlRIIE1BUks7U287MDtMOzxzdXBlcj4gNEUwMTs7OztOO0tBRVJJVEVOIFRFSTtLYWVyaXRlbjs7OworMzE5RDtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIEhFQVZFTiBNQVJLO1NvOzA7TDs8c3VwZXI+IDU5Mjk7Ozs7TjtLQUVSSVRFTiBURU47S2Flcml0ZW47OzsKKzMxOUU7SURFT0dSQVBISUMgQU5OT1RBVElPTiBFQVJUSCBNQVJLO1NvOzA7TDs8c3VwZXI+IDU3MzA7Ozs7TjtLQUVSSVRFTiBUSTtLYWVyaXRlbjs7OworMzE5RjtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIE1BTiBNQVJLO1NvOzA7TDs8c3VwZXI+IDRFQkE7Ozs7TjtLQUVSSVRFTiBaSU47S2Flcml0ZW47OzsKKzMxQTA7Qk9QT01PRk8gTEVUVEVSIEJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUExO0JPUE9NT0ZPIExFVFRFUiBaSTtMbzswO0w7Ozs7O047Ozs7OworMzFBMjtCT1BPTU9GTyBMRVRURVIgSkk7TG87MDtMOzs7OztOOzs7OzsKKzMxQTM7Qk9QT01PRk8gTEVUVEVSIEdVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUE0O0JPUE9NT0ZPIExFVFRFUiBFRTtMbzswO0w7Ozs7O047Ozs7OworMzFBNTtCT1BPTU9GTyBMRVRURVIgRU5OO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUE2O0JPUE9NT0ZPIExFVFRFUiBPTztMbzswO0w7Ozs7O047Ozs7OworMzFBNztCT1BPTU9GTyBMRVRURVIgT05OO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUE4O0JPUE9NT0ZPIExFVFRFUiBJUjtMbzswO0w7Ozs7O047Ozs7OworMzFBOTtCT1BPTU9GTyBMRVRURVIgQU5OO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUFBO0JPUE9NT0ZPIExFVFRFUiBJTk47TG87MDtMOzs7OztOOzs7OzsKKzMxQUI7Qk9QT01PRk8gTEVUVEVSIFVOTjtMbzswO0w7Ozs7O047Ozs7OworMzFBQztCT1BPTU9GTyBMRVRURVIgSU07TG87MDtMOzs7OztOOzs7OzsKKzMxQUQ7Qk9QT01PRk8gTEVUVEVSIE5HRztMbzswO0w7Ozs7O047Ozs7OworMzFBRTtCT1BPTU9GTyBMRVRURVIgQUlOTjtMbzswO0w7Ozs7O047Ozs7OworMzFBRjtCT1BPTU9GTyBMRVRURVIgQVVOTjtMbzswO0w7Ozs7O047Ozs7OworMzFCMDtCT1BPTU9GTyBMRVRURVIgQU07TG87MDtMOzs7OztOOzs7OzsKKzMxQjE7Qk9QT01PRk8gTEVUVEVSIE9NO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUIyO0JPUE9NT0ZPIExFVFRFUiBPTkc7TG87MDtMOzs7OztOOzs7OzsKKzMxQjM7Qk9QT01PRk8gTEVUVEVSIElOTk47TG87MDtMOzs7OztOOzs7OzsKKzMxQjQ7Qk9QT01PRk8gRklOQUwgTEVUVEVSIFA7TG87MDtMOzs7OztOOzs7OzsKKzMxQjU7Qk9QT01PRk8gRklOQUwgTEVUVEVSIFQ7TG87MDtMOzs7OztOOzs7OzsKKzMxQjY7Qk9QT01PRk8gRklOQUwgTEVUVEVSIEs7TG87MDtMOzs7OztOOzs7OzsKKzMxQjc7Qk9QT01PRk8gRklOQUwgTEVUVEVSIEg7TG87MDtMOzs7OztOOzs7OzsKKzMyMDA7UEFSRU5USEVTSVpFRCBIQU5HVUwgS0lZRU9LO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDAgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIEdJWUVPRzs7OzsKKzMyMDE7UEFSRU5USEVTSVpFRCBIQU5HVUwgTklFVU47U287MDtMOzxjb21wYXQ+IDAwMjggMTEwMiAwMDI5Ozs7O047Ozs7OworMzIwMjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBUSUtFVVQ7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwMyAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgRElHRVVEOzs7OworMzIwMztQQVJFTlRIRVNJWkVEIEhBTkdVTCBSSUVVTDtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTA1IDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBMSUVVTDs7OzsKKzMyMDQ7UEFSRU5USEVTSVpFRCBIQU5HVUwgTUlFVU07U287MDtMOzxjb21wYXQ+IDAwMjggMTEwNiAwMDI5Ozs7O047Ozs7OworMzIwNTtQQVJFTlRIRVNJWkVEIEhBTkdVTCBQSUVVUDtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTA3IDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBCSUVVQjs7OzsKKzMyMDY7UEFSRU5USEVTSVpFRCBIQU5HVUwgU0lPUztTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTA5IDAwMjk7Ozs7Tjs7Ozs7CiszMjA3O1BBUkVOVEhFU0laRUQgSEFOR1VMIElFVU5HO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMEIgMDAyOTs7OztOOzs7OzsKKzMyMDg7UEFSRU5USEVTSVpFRCBIQU5HVUwgQ0lFVUM7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwQyAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgSklFVUo7Ozs7CiszMjA5O1BBUkVOVEhFU0laRUQgSEFOR1VMIENISUVVQ0g7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwRSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgQ0lFVUM7Ozs7CiszMjBBO1BBUkVOVEhFU0laRUQgSEFOR1VMIEtISUVVS0g7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwRiAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgS0lZRU9LOzs7OworMzIwQjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBUSElFVVRIO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMTAgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIFRJRVVUOzs7OworMzIwQztQQVJFTlRIRVNJWkVEIEhBTkdVTCBQSElFVVBIO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMTEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIFBJRVVQOzs7OworMzIwRDtQQVJFTlRIRVNJWkVEIEhBTkdVTCBISUVVSDtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTEyIDAwMjk7Ozs7Tjs7Ozs7CiszMjBFO1BBUkVOVEhFU0laRUQgSEFOR1VMIEtJWUVPSyBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDAgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgR0E7Ozs7CiszMjBGO1BBUkVOVEhFU0laRUQgSEFOR1VMIE5JRVVOIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwMiAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBOQTs7OzsKKzMyMTA7UEFSRU5USEVTSVpFRCBIQU5HVUwgVElLRVVUIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwMyAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBEQTs7OzsKKzMyMTE7UEFSRU5USEVTSVpFRCBIQU5HVUwgUklFVUwgQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTA1IDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIExBOzs7OworMzIxMjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBNSUVVTSBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDYgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgTUE7Ozs7CiszMjEzO1BBUkVOVEhFU0laRUQgSEFOR1VMIFBJRVVQIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwNyAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBCQTs7OzsKKzMyMTQ7UEFSRU5USEVTSVpFRCBIQU5HVUwgU0lPUyBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDkgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgU0E7Ozs7CiszMjE1O1BBUkVOVEhFU0laRUQgSEFOR1VMIElFVU5HIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwQiAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBBOzs7OworMzIxNjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBDSUVVQyBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMEMgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgSkE7Ozs7CiszMjE3O1BBUkVOVEhFU0laRUQgSEFOR1VMIENISUVVQ0ggQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTBFIDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIENBOzs7OworMzIxODtQQVJFTlRIRVNJWkVEIEhBTkdVTCBLSElFVUtIIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwRiAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBLQTs7OzsKKzMyMTk7UEFSRU5USEVTSVpFRCBIQU5HVUwgVEhJRVVUSCBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMTAgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgVEE7Ozs7CiszMjFBO1BBUkVOVEhFU0laRUQgSEFOR1VMIFBISUVVUEggQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTExIDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIFBBOzs7OworMzIxQjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBISUVVSCBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMTIgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgSEE7Ozs7CiszMjFDO1BBUkVOVEhFU0laRUQgSEFOR1VMIENJRVVDIFU7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwQyAxMTZFIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBKVTs7OzsKKzMyMjA7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggT05FO05vOzA7TDs8Y29tcGF0PiAwMDI4IDRFMDAgMDAyOTs7OzE7Tjs7Ozs7CiszMjIxO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFRXTztObzswO0w7PGNvbXBhdD4gMDAyOCA0RThDIDAwMjk7OzsyO047Ozs7OworMzIyMjtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBUSFJFRTtObzswO0w7PGNvbXBhdD4gMDAyOCA0RTA5IDAwMjk7OzszO047Ozs7OworMzIyMztQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBGT1VSO05vOzA7TDs8Y29tcGF0PiAwMDI4IDU2REIgMDAyOTs7OzQ7Tjs7Ozs7CiszMjI0O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIEZJVkU7Tm87MDtMOzxjb21wYXQ+IDAwMjggNEU5NCAwMDI5Ozs7NTtOOzs7OzsKKzMyMjU7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggU0lYO05vOzA7TDs8Y29tcGF0PiAwMDI4IDUxNkQgMDAyOTs7OzY7Tjs7Ozs7CiszMjI2O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFNFVkVOO05vOzA7TDs8Y29tcGF0PiAwMDI4IDRFMDMgMDAyOTs7Ozc7Tjs7Ozs7CiszMjI3O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIEVJR0hUO05vOzA7TDs8Y29tcGF0PiAwMDI4IDUxNkIgMDAyOTs7Ozg7Tjs7Ozs7CiszMjI4O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIE5JTkU7Tm87MDtMOzxjb21wYXQ+IDAwMjggNEU1RCAwMDI5Ozs7OTtOOzs7OzsKKzMyMjk7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggVEVOO05vOzA7TDs8Y29tcGF0PiAwMDI4IDUzNDEgMDAyOTs7OzEwO047Ozs7OworMzIyQTtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBNT09OO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDY3MDggMDAyOTs7OztOOzs7OzsKKzMyMkI7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggRklSRTtTbzswO0w7PGNvbXBhdD4gMDAyOCA3MDZCIDAwMjk7Ozs7Tjs7Ozs7CiszMjJDO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFdBVEVSO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDZDMzQgMDAyOTs7OztOOzs7OzsKKzMyMkQ7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggV09PRDtTbzswO0w7PGNvbXBhdD4gMDAyOCA2NzI4IDAwMjk7Ozs7Tjs7Ozs7CiszMjJFO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIE1FVEFMO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDkxRDEgMDAyOTs7OztOOzs7OzsKKzMyMkY7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggRUFSVEg7U287MDtMOzxjb21wYXQ+IDAwMjggNTcxRiAwMDI5Ozs7O047Ozs7OworMzIzMDtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBTVU47U287MDtMOzxjb21wYXQ+IDAwMjggNjVFNSAwMDI5Ozs7O047Ozs7OworMzIzMTtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBTVE9DSztTbzswO0w7PGNvbXBhdD4gMDAyOCA2ODJBIDAwMjk7Ozs7Tjs7Ozs7CiszMjMyO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIEhBVkU7U287MDtMOzxjb21wYXQ+IDAwMjggNjcwOSAwMDI5Ozs7O047Ozs7OworMzIzMztQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBTT0NJRVRZO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDc5M0UgMDAyOTs7OztOOzs7OzsKKzMyMzQ7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggTkFNRTtTbzswO0w7PGNvbXBhdD4gMDAyOCA1NDBEIDAwMjk7Ozs7Tjs7Ozs7CiszMjM1O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFNQRUNJQUw7U287MDtMOzxjb21wYXQ+IDAwMjggNzI3OSAwMDI5Ozs7O047Ozs7OworMzIzNjtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBGSU5BTkNJQUw7U287MDtMOzxjb21wYXQ+IDAwMjggOENBMSAwMDI5Ozs7O047Ozs7OworMzIzNztQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBDT05HUkFUVUxBVElPTjtTbzswO0w7PGNvbXBhdD4gMDAyOCA3OTVEIDAwMjk7Ozs7Tjs7Ozs7CiszMjM4O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIExBQk9SO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDUyQjQgMDAyOTs7OztOOzs7OzsKKzMyMzk7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggUkVQUkVTRU5UO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDRFRTMgMDAyOTs7OztOOzs7OzsKKzMyM0E7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggQ0FMTDtTbzswO0w7PGNvbXBhdD4gMDAyOCA1NDdDIDAwMjk7Ozs7Tjs7Ozs7CiszMjNCO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFNUVURZO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDVCNjYgMDAyOTs7OztOOzs7OzsKKzMyM0M7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggU1VQRVJWSVNFO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDc2RTMgMDAyOTs7OztOOzs7OzsKKzMyM0Q7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggRU5URVJQUklTRTtTbzswO0w7PGNvbXBhdD4gMDAyOCA0RjAxIDAwMjk7Ozs7Tjs7Ozs7CiszMjNFO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFJFU09VUkNFO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDhDQzcgMDAyOTs7OztOOzs7OzsKKzMyM0Y7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggQUxMSUFOQ0U7U287MDtMOzxjb21wYXQ+IDAwMjggNTM1NCAwMDI5Ozs7O047Ozs7OworMzI0MDtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBGRVNUSVZBTDtTbzswO0w7PGNvbXBhdD4gMDAyOCA3OTZEIDAwMjk7Ozs7Tjs7Ozs7CiszMjQxO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFJFU1Q7U287MDtMOzxjb21wYXQ+IDAwMjggNEYxMSAwMDI5Ozs7O047Ozs7OworMzI0MjtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBTRUxGO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDgxRUEgMDAyOTs7OztOOzs7OzsKKzMyNDM7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggUkVBQ0g7U287MDtMOzxjb21wYXQ+IDAwMjggODFGMyAwMDI5Ozs7O047Ozs7OworMzI2MDtDSVJDTEVEIEhBTkdVTCBLSVlFT0s7U287MDtMOzxjaXJjbGU+IDExMDA7Ozs7TjtDSVJDTEVEIEhBTkdVTCBHSVlFT0c7Ozs7CiszMjYxO0NJUkNMRUQgSEFOR1VMIE5JRVVOO1NvOzA7TDs8Y2lyY2xlPiAxMTAyOzs7O047Ozs7OworMzI2MjtDSVJDTEVEIEhBTkdVTCBUSUtFVVQ7U287MDtMOzxjaXJjbGU+IDExMDM7Ozs7TjtDSVJDTEVEIEhBTkdVTCBESUdFVUQ7Ozs7CiszMjYzO0NJUkNMRUQgSEFOR1VMIFJJRVVMO1NvOzA7TDs8Y2lyY2xlPiAxMTA1Ozs7O047Q0lSQ0xFRCBIQU5HVUwgTElFVUw7Ozs7CiszMjY0O0NJUkNMRUQgSEFOR1VMIE1JRVVNO1NvOzA7TDs8Y2lyY2xlPiAxMTA2Ozs7O047Ozs7OworMzI2NTtDSVJDTEVEIEhBTkdVTCBQSUVVUDtTbzswO0w7PGNpcmNsZT4gMTEwNzs7OztOO0NJUkNMRUQgSEFOR1VMIEJJRVVCOzs7OworMzI2NjtDSVJDTEVEIEhBTkdVTCBTSU9TO1NvOzA7TDs8Y2lyY2xlPiAxMTA5Ozs7O047Ozs7OworMzI2NztDSVJDTEVEIEhBTkdVTCBJRVVORztTbzswO0w7PGNpcmNsZT4gMTEwQjs7OztOOzs7OzsKKzMyNjg7Q0lSQ0xFRCBIQU5HVUwgQ0lFVUM7U287MDtMOzxjaXJjbGU+IDExMEM7Ozs7TjtDSVJDTEVEIEhBTkdVTCBKSUVVSjs7OzsKKzMyNjk7Q0lSQ0xFRCBIQU5HVUwgQ0hJRVVDSDtTbzswO0w7PGNpcmNsZT4gMTEwRTs7OztOO0NJUkNMRUQgSEFOR1VMIENJRVVDOzs7OworMzI2QTtDSVJDTEVEIEhBTkdVTCBLSElFVUtIO1NvOzA7TDs8Y2lyY2xlPiAxMTBGOzs7O047Q0lSQ0xFRCBIQU5HVUwgS0lZRU9LOzs7OworMzI2QjtDSVJDTEVEIEhBTkdVTCBUSElFVVRIO1NvOzA7TDs8Y2lyY2xlPiAxMTEwOzs7O047Q0lSQ0xFRCBIQU5HVUwgVElFVVQ7Ozs7CiszMjZDO0NJUkNMRUQgSEFOR1VMIFBISUVVUEg7U287MDtMOzxjaXJjbGU+IDExMTE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBQSUVVUDs7OzsKKzMyNkQ7Q0lSQ0xFRCBIQU5HVUwgSElFVUg7U287MDtMOzxjaXJjbGU+IDExMTI7Ozs7Tjs7Ozs7CiszMjZFO0NJUkNMRUQgSEFOR1VMIEtJWUVPSyBBO1NvOzA7TDs8Y2lyY2xlPiAxMTAwIDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBHQTs7OzsKKzMyNkY7Q0lSQ0xFRCBIQU5HVUwgTklFVU4gQTtTbzswO0w7PGNpcmNsZT4gMTEwMiAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgTkE7Ozs7CiszMjcwO0NJUkNMRUQgSEFOR1VMIFRJS0VVVCBBO1NvOzA7TDs8Y2lyY2xlPiAxMTAzIDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBEQTs7OzsKKzMyNzE7Q0lSQ0xFRCBIQU5HVUwgUklFVUwgQTtTbzswO0w7PGNpcmNsZT4gMTEwNSAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgTEE7Ozs7CiszMjcyO0NJUkNMRUQgSEFOR1VMIE1JRVVNIEE7U287MDtMOzxjaXJjbGU+IDExMDYgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIE1BOzs7OworMzI3MztDSVJDTEVEIEhBTkdVTCBQSUVVUCBBO1NvOzA7TDs8Y2lyY2xlPiAxMTA3IDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBCQTs7OzsKKzMyNzQ7Q0lSQ0xFRCBIQU5HVUwgU0lPUyBBO1NvOzA7TDs8Y2lyY2xlPiAxMTA5IDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBTQTs7OzsKKzMyNzU7Q0lSQ0xFRCBIQU5HVUwgSUVVTkcgQTtTbzswO0w7PGNpcmNsZT4gMTEwQiAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgQTs7OzsKKzMyNzY7Q0lSQ0xFRCBIQU5HVUwgQ0lFVUMgQTtTbzswO0w7PGNpcmNsZT4gMTEwQyAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgSkE7Ozs7CiszMjc3O0NJUkNMRUQgSEFOR1VMIENISUVVQ0ggQTtTbzswO0w7PGNpcmNsZT4gMTEwRSAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgQ0E7Ozs7CiszMjc4O0NJUkNMRUQgSEFOR1VMIEtISUVVS0ggQTtTbzswO0w7PGNpcmNsZT4gMTEwRiAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgS0E7Ozs7CiszMjc5O0NJUkNMRUQgSEFOR1VMIFRISUVVVEggQTtTbzswO0w7PGNpcmNsZT4gMTExMCAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgVEE7Ozs7CiszMjdBO0NJUkNMRUQgSEFOR1VMIFBISUVVUEggQTtTbzswO0w7PGNpcmNsZT4gMTExMSAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgUEE7Ozs7CiszMjdCO0NJUkNMRUQgSEFOR1VMIEhJRVVIIEE7U287MDtMOzxjaXJjbGU+IDExMTIgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIEhBOzs7OworMzI3RjtLT1JFQU4gU1RBTkRBUkQgU1lNQk9MO1NvOzA7TDs7Ozs7Tjs7Ozs7CiszMjgwO0NJUkNMRUQgSURFT0dSQVBIIE9ORTtObzswO0w7PGNpcmNsZT4gNEUwMDs7OzE7Tjs7Ozs7CiszMjgxO0NJUkNMRUQgSURFT0dSQVBIIFRXTztObzswO0w7PGNpcmNsZT4gNEU4Qzs7OzI7Tjs7Ozs7CiszMjgyO0NJUkNMRUQgSURFT0dSQVBIIFRIUkVFO05vOzA7TDs8Y2lyY2xlPiA0RTA5Ozs7MztOOzs7OzsKKzMyODM7Q0lSQ0xFRCBJREVPR1JBUEggRk9VUjtObzswO0w7PGNpcmNsZT4gNTZEQjs7OzQ7Tjs7Ozs7CiszMjg0O0NJUkNMRUQgSURFT0dSQVBIIEZJVkU7Tm87MDtMOzxjaXJjbGU+IDRFOTQ7Ozs1O047Ozs7OworMzI4NTtDSVJDTEVEIElERU9HUkFQSCBTSVg7Tm87MDtMOzxjaXJjbGU+IDUxNkQ7Ozs2O047Ozs7OworMzI4NjtDSVJDTEVEIElERU9HUkFQSCBTRVZFTjtObzswO0w7PGNpcmNsZT4gNEUwMzs7Ozc7Tjs7Ozs7CiszMjg3O0NJUkNMRUQgSURFT0dSQVBIIEVJR0hUO05vOzA7TDs8Y2lyY2xlPiA1MTZCOzs7ODtOOzs7OzsKKzMyODg7Q0lSQ0xFRCBJREVPR1JBUEggTklORTtObzswO0w7PGNpcmNsZT4gNEU1RDs7Ozk7Tjs7Ozs7CiszMjg5O0NJUkNMRUQgSURFT0dSQVBIIFRFTjtObzswO0w7PGNpcmNsZT4gNTM0MTs7OzEwO047Ozs7OworMzI4QTtDSVJDTEVEIElERU9HUkFQSCBNT09OO1NvOzA7TDs8Y2lyY2xlPiA2NzA4Ozs7O047Ozs7OworMzI4QjtDSVJDTEVEIElERU9HUkFQSCBGSVJFO1NvOzA7TDs8Y2lyY2xlPiA3MDZCOzs7O047Ozs7OworMzI4QztDSVJDTEVEIElERU9HUkFQSCBXQVRFUjtTbzswO0w7PGNpcmNsZT4gNkMzNDs7OztOOzs7OzsKKzMyOEQ7Q0lSQ0xFRCBJREVPR1JBUEggV09PRDtTbzswO0w7PGNpcmNsZT4gNjcyODs7OztOOzs7OzsKKzMyOEU7Q0lSQ0xFRCBJREVPR1JBUEggTUVUQUw7U287MDtMOzxjaXJjbGU+IDkxRDE7Ozs7Tjs7Ozs7CiszMjhGO0NJUkNMRUQgSURFT0dSQVBIIEVBUlRIO1NvOzA7TDs8Y2lyY2xlPiA1NzFGOzs7O047Ozs7OworMzI5MDtDSVJDTEVEIElERU9HUkFQSCBTVU47U287MDtMOzxjaXJjbGU+IDY1RTU7Ozs7Tjs7Ozs7CiszMjkxO0NJUkNMRUQgSURFT0dSQVBIIFNUT0NLO1NvOzA7TDs8Y2lyY2xlPiA2ODJBOzs7O047Ozs7OworMzI5MjtDSVJDTEVEIElERU9HUkFQSCBIQVZFO1NvOzA7TDs8Y2lyY2xlPiA2NzA5Ozs7O047Ozs7OworMzI5MztDSVJDTEVEIElERU9HUkFQSCBTT0NJRVRZO1NvOzA7TDs8Y2lyY2xlPiA3OTNFOzs7O047Ozs7OworMzI5NDtDSVJDTEVEIElERU9HUkFQSCBOQU1FO1NvOzA7TDs8Y2lyY2xlPiA1NDBEOzs7O047Ozs7OworMzI5NTtDSVJDTEVEIElERU9HUkFQSCBTUEVDSUFMO1NvOzA7TDs8Y2lyY2xlPiA3Mjc5Ozs7O047Ozs7OworMzI5NjtDSVJDTEVEIElERU9HUkFQSCBGSU5BTkNJQUw7U287MDtMOzxjaXJjbGU+IDhDQTE7Ozs7Tjs7Ozs7CiszMjk3O0NJUkNMRUQgSURFT0dSQVBIIENPTkdSQVRVTEFUSU9OO1NvOzA7TDs8Y2lyY2xlPiA3OTVEOzs7O047Ozs7OworMzI5ODtDSVJDTEVEIElERU9HUkFQSCBMQUJPUjtTbzswO0w7PGNpcmNsZT4gNTJCNDs7OztOOzs7OzsKKzMyOTk7Q0lSQ0xFRCBJREVPR1JBUEggU0VDUkVUO1NvOzA7TDs8Y2lyY2xlPiA3OUQ4Ozs7O047Ozs7OworMzI5QTtDSVJDTEVEIElERU9HUkFQSCBNQUxFO1NvOzA7TDs8Y2lyY2xlPiA3NTM3Ozs7O047Ozs7OworMzI5QjtDSVJDTEVEIElERU9HUkFQSCBGRU1BTEU7U287MDtMOzxjaXJjbGU+IDU5NzM7Ozs7Tjs7Ozs7CiszMjlDO0NJUkNMRUQgSURFT0dSQVBIIFNVSVRBQkxFO1NvOzA7TDs8Y2lyY2xlPiA5MDY5Ozs7O047Ozs7OworMzI5RDtDSVJDTEVEIElERU9HUkFQSCBFWENFTExFTlQ7U287MDtMOzxjaXJjbGU+IDUxMkE7Ozs7Tjs7Ozs7CiszMjlFO0NJUkNMRUQgSURFT0dSQVBIIFBSSU5UO1NvOzA7TDs8Y2lyY2xlPiA1MzcwOzs7O047Ozs7OworMzI5RjtDSVJDTEVEIElERU9HUkFQSCBBVFRFTlRJT047U287MDtMOzxjaXJjbGU+IDZDRTg7Ozs7Tjs7Ozs7CiszMkEwO0NJUkNMRUQgSURFT0dSQVBIIElURU07U287MDtMOzxjaXJjbGU+IDk4MDU7Ozs7Tjs7Ozs7CiszMkExO0NJUkNMRUQgSURFT0dSQVBIIFJFU1Q7U287MDtMOzxjaXJjbGU+IDRGMTE7Ozs7Tjs7Ozs7CiszMkEyO0NJUkNMRUQgSURFT0dSQVBIIENPUFk7U287MDtMOzxjaXJjbGU+IDUxOTk7Ozs7Tjs7Ozs7CiszMkEzO0NJUkNMRUQgSURFT0dSQVBIIENPUlJFQ1Q7U287MDtMOzxjaXJjbGU+IDZCNjM7Ozs7Tjs7Ozs7CiszMkE0O0NJUkNMRUQgSURFT0dSQVBIIEhJR0g7U287MDtMOzxjaXJjbGU+IDRFMEE7Ozs7Tjs7Ozs7CiszMkE1O0NJUkNMRUQgSURFT0dSQVBIIENFTlRSRTtTbzswO0w7PGNpcmNsZT4gNEUyRDs7OztOO0NJUkNMRUQgSURFT0dSQVBIIENFTlRFUjs7OzsKKzMyQTY7Q0lSQ0xFRCBJREVPR1JBUEggTE9XO1NvOzA7TDs8Y2lyY2xlPiA0RTBCOzs7O047Ozs7OworMzJBNztDSVJDTEVEIElERU9HUkFQSCBMRUZUO1NvOzA7TDs8Y2lyY2xlPiA1REU2Ozs7O047Ozs7OworMzJBODtDSVJDTEVEIElERU9HUkFQSCBSSUdIVDtTbzswO0w7PGNpcmNsZT4gNTNGMzs7OztOOzs7OzsKKzMyQTk7Q0lSQ0xFRCBJREVPR1JBUEggTUVESUNJTkU7U287MDtMOzxjaXJjbGU+IDUzM0I7Ozs7Tjs7Ozs7CiszMkFBO0NJUkNMRUQgSURFT0dSQVBIIFJFTElHSU9OO1NvOzA7TDs8Y2lyY2xlPiA1Qjk3Ozs7O047Ozs7OworMzJBQjtDSVJDTEVEIElERU9HUkFQSCBTVFVEWTtTbzswO0w7PGNpcmNsZT4gNUI2Njs7OztOOzs7OzsKKzMyQUM7Q0lSQ0xFRCBJREVPR1JBUEggU1VQRVJWSVNFO1NvOzA7TDs8Y2lyY2xlPiA3NkUzOzs7O047Ozs7OworMzJBRDtDSVJDTEVEIElERU9HUkFQSCBFTlRFUlBSSVNFO1NvOzA7TDs8Y2lyY2xlPiA0RjAxOzs7O047Ozs7OworMzJBRTtDSVJDTEVEIElERU9HUkFQSCBSRVNPVVJDRTtTbzswO0w7PGNpcmNsZT4gOENDNzs7OztOOzs7OzsKKzMyQUY7Q0lSQ0xFRCBJREVPR1JBUEggQUxMSUFOQ0U7U287MDtMOzxjaXJjbGU+IDUzNTQ7Ozs7Tjs7Ozs7CiszMkIwO0NJUkNMRUQgSURFT0dSQVBIIE5JR0hUO1NvOzA7TDs8Y2lyY2xlPiA1OTFDOzs7O047Ozs7OworMzJDMDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBKQU5VQVJZO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDY3MDg7Ozs7Tjs7Ozs7CiszMkMxO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEZFQlJVQVJZO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDY3MDg7Ozs7Tjs7Ozs7CiszMkMyO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIE1BUkNIO1NvOzA7TDs8Y29tcGF0PiAwMDMzIDY3MDg7Ozs7Tjs7Ozs7CiszMkMzO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEFQUklMO1NvOzA7TDs8Y29tcGF0PiAwMDM0IDY3MDg7Ozs7Tjs7Ozs7CiszMkM0O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIE1BWTtTbzswO0w7PGNvbXBhdD4gMDAzNSA2NzA4Ozs7O047Ozs7OworMzJDNTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBKVU5FO1NvOzA7TDs8Y29tcGF0PiAwMDM2IDY3MDg7Ozs7Tjs7Ozs7CiszMkM2O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEpVTFk7U287MDtMOzxjb21wYXQ+IDAwMzcgNjcwODs7OztOOzs7OzsKKzMyQzc7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgQVVHVVNUO1NvOzA7TDs8Y29tcGF0PiAwMDM4IDY3MDg7Ozs7Tjs7Ozs7CiszMkM4O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIFNFUFRFTUJFUjtTbzswO0w7PGNvbXBhdD4gMDAzOSA2NzA4Ozs7O047Ozs7OworMzJDOTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBPQ1RPQkVSO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzAgNjcwODs7OztOOzs7OzsKKzMyQ0E7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgTk9WRU1CRVI7U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzMSA2NzA4Ozs7O047Ozs7OworMzJDQjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBERUNFTUJFUjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDMyIDY3MDg7Ozs7Tjs7Ozs7CiszMkQwO0NJUkNMRUQgS0FUQUtBTkEgQTtTbzswO0w7PGNpcmNsZT4gMzBBMjs7OztOOzs7OzsKKzMyRDE7Q0lSQ0xFRCBLQVRBS0FOQSBJO1NvOzA7TDs8Y2lyY2xlPiAzMEE0Ozs7O047Ozs7OworMzJEMjtDSVJDTEVEIEtBVEFLQU5BIFU7U287MDtMOzxjaXJjbGU+IDMwQTY7Ozs7Tjs7Ozs7CiszMkQzO0NJUkNMRUQgS0FUQUtBTkEgRTtTbzswO0w7PGNpcmNsZT4gMzBBODs7OztOOzs7OzsKKzMyRDQ7Q0lSQ0xFRCBLQVRBS0FOQSBPO1NvOzA7TDs8Y2lyY2xlPiAzMEFBOzs7O047Ozs7OworMzJENTtDSVJDTEVEIEtBVEFLQU5BIEtBO1NvOzA7TDs8Y2lyY2xlPiAzMEFCOzs7O047Ozs7OworMzJENjtDSVJDTEVEIEtBVEFLQU5BIEtJO1NvOzA7TDs8Y2lyY2xlPiAzMEFEOzs7O047Ozs7OworMzJENztDSVJDTEVEIEtBVEFLQU5BIEtVO1NvOzA7TDs8Y2lyY2xlPiAzMEFGOzs7O047Ozs7OworMzJEODtDSVJDTEVEIEtBVEFLQU5BIEtFO1NvOzA7TDs8Y2lyY2xlPiAzMEIxOzs7O047Ozs7OworMzJEOTtDSVJDTEVEIEtBVEFLQU5BIEtPO1NvOzA7TDs8Y2lyY2xlPiAzMEIzOzs7O047Ozs7OworMzJEQTtDSVJDTEVEIEtBVEFLQU5BIFNBO1NvOzA7TDs8Y2lyY2xlPiAzMEI1Ozs7O047Ozs7OworMzJEQjtDSVJDTEVEIEtBVEFLQU5BIFNJO1NvOzA7TDs8Y2lyY2xlPiAzMEI3Ozs7O047Ozs7OworMzJEQztDSVJDTEVEIEtBVEFLQU5BIFNVO1NvOzA7TDs8Y2lyY2xlPiAzMEI5Ozs7O047Ozs7OworMzJERDtDSVJDTEVEIEtBVEFLQU5BIFNFO1NvOzA7TDs8Y2lyY2xlPiAzMEJCOzs7O047Ozs7OworMzJERTtDSVJDTEVEIEtBVEFLQU5BIFNPO1NvOzA7TDs8Y2lyY2xlPiAzMEJEOzs7O047Ozs7OworMzJERjtDSVJDTEVEIEtBVEFLQU5BIFRBO1NvOzA7TDs8Y2lyY2xlPiAzMEJGOzs7O047Ozs7OworMzJFMDtDSVJDTEVEIEtBVEFLQU5BIFRJO1NvOzA7TDs8Y2lyY2xlPiAzMEMxOzs7O047Ozs7OworMzJFMTtDSVJDTEVEIEtBVEFLQU5BIFRVO1NvOzA7TDs8Y2lyY2xlPiAzMEM0Ozs7O047Ozs7OworMzJFMjtDSVJDTEVEIEtBVEFLQU5BIFRFO1NvOzA7TDs8Y2lyY2xlPiAzMEM2Ozs7O047Ozs7OworMzJFMztDSVJDTEVEIEtBVEFLQU5BIFRPO1NvOzA7TDs8Y2lyY2xlPiAzMEM4Ozs7O047Ozs7OworMzJFNDtDSVJDTEVEIEtBVEFLQU5BIE5BO1NvOzA7TDs8Y2lyY2xlPiAzMENBOzs7O047Ozs7OworMzJFNTtDSVJDTEVEIEtBVEFLQU5BIE5JO1NvOzA7TDs8Y2lyY2xlPiAzMENCOzs7O047Ozs7OworMzJFNjtDSVJDTEVEIEtBVEFLQU5BIE5VO1NvOzA7TDs8Y2lyY2xlPiAzMENDOzs7O047Ozs7OworMzJFNztDSVJDTEVEIEtBVEFLQU5BIE5FO1NvOzA7TDs8Y2lyY2xlPiAzMENEOzs7O047Ozs7OworMzJFODtDSVJDTEVEIEtBVEFLQU5BIE5PO1NvOzA7TDs8Y2lyY2xlPiAzMENFOzs7O047Ozs7OworMzJFOTtDSVJDTEVEIEtBVEFLQU5BIEhBO1NvOzA7TDs8Y2lyY2xlPiAzMENGOzs7O047Ozs7OworMzJFQTtDSVJDTEVEIEtBVEFLQU5BIEhJO1NvOzA7TDs8Y2lyY2xlPiAzMEQyOzs7O047Ozs7OworMzJFQjtDSVJDTEVEIEtBVEFLQU5BIEhVO1NvOzA7TDs8Y2lyY2xlPiAzMEQ1Ozs7O047Ozs7OworMzJFQztDSVJDTEVEIEtBVEFLQU5BIEhFO1NvOzA7TDs8Y2lyY2xlPiAzMEQ4Ozs7O047Ozs7OworMzJFRDtDSVJDTEVEIEtBVEFLQU5BIEhPO1NvOzA7TDs8Y2lyY2xlPiAzMERCOzs7O047Ozs7OworMzJFRTtDSVJDTEVEIEtBVEFLQU5BIE1BO1NvOzA7TDs8Y2lyY2xlPiAzMERFOzs7O047Ozs7OworMzJFRjtDSVJDTEVEIEtBVEFLQU5BIE1JO1NvOzA7TDs8Y2lyY2xlPiAzMERGOzs7O047Ozs7OworMzJGMDtDSVJDTEVEIEtBVEFLQU5BIE1VO1NvOzA7TDs8Y2lyY2xlPiAzMEUwOzs7O047Ozs7OworMzJGMTtDSVJDTEVEIEtBVEFLQU5BIE1FO1NvOzA7TDs8Y2lyY2xlPiAzMEUxOzs7O047Ozs7OworMzJGMjtDSVJDTEVEIEtBVEFLQU5BIE1PO1NvOzA7TDs8Y2lyY2xlPiAzMEUyOzs7O047Ozs7OworMzJGMztDSVJDTEVEIEtBVEFLQU5BIFlBO1NvOzA7TDs8Y2lyY2xlPiAzMEU0Ozs7O047Ozs7OworMzJGNDtDSVJDTEVEIEtBVEFLQU5BIFlVO1NvOzA7TDs8Y2lyY2xlPiAzMEU2Ozs7O047Ozs7OworMzJGNTtDSVJDTEVEIEtBVEFLQU5BIFlPO1NvOzA7TDs8Y2lyY2xlPiAzMEU4Ozs7O047Ozs7OworMzJGNjtDSVJDTEVEIEtBVEFLQU5BIFJBO1NvOzA7TDs8Y2lyY2xlPiAzMEU5Ozs7O047Ozs7OworMzJGNztDSVJDTEVEIEtBVEFLQU5BIFJJO1NvOzA7TDs8Y2lyY2xlPiAzMEVBOzs7O047Ozs7OworMzJGODtDSVJDTEVEIEtBVEFLQU5BIFJVO1NvOzA7TDs8Y2lyY2xlPiAzMEVCOzs7O047Ozs7OworMzJGOTtDSVJDTEVEIEtBVEFLQU5BIFJFO1NvOzA7TDs8Y2lyY2xlPiAzMEVDOzs7O047Ozs7OworMzJGQTtDSVJDTEVEIEtBVEFLQU5BIFJPO1NvOzA7TDs8Y2lyY2xlPiAzMEVEOzs7O047Ozs7OworMzJGQjtDSVJDTEVEIEtBVEFLQU5BIFdBO1NvOzA7TDs8Y2lyY2xlPiAzMEVGOzs7O047Ozs7OworMzJGQztDSVJDTEVEIEtBVEFLQU5BIFdJO1NvOzA7TDs8Y2lyY2xlPiAzMEYwOzs7O047Ozs7OworMzJGRDtDSVJDTEVEIEtBVEFLQU5BIFdFO1NvOzA7TDs8Y2lyY2xlPiAzMEYxOzs7O047Ozs7OworMzJGRTtDSVJDTEVEIEtBVEFLQU5BIFdPO1NvOzA7TDs8Y2lyY2xlPiAzMEYyOzs7O047Ozs7OworMzMwMDtTUVVBUkUgQVBBQVRPO1NvOzA7TDs8c3F1YXJlPiAzMEEyIDMwRDEgMzBGQyAzMEM4Ozs7O047U1FVQVJFRCBBUEFBVE87Ozs7CiszMzAxO1NRVUFSRSBBUlVIVUE7U287MDtMOzxzcXVhcmU+IDMwQTIgMzBFQiAzMEQ1IDMwQTE7Ozs7TjtTUVVBUkVEIEFSVUhVQTs7OzsKKzMzMDI7U1FVQVJFIEFOUEVBO1NvOzA7TDs8c3F1YXJlPiAzMEEyIDMwRjMgMzBEQSAzMEEyOzs7O047U1FVQVJFRCBBTlBFQTs7OzsKKzMzMDM7U1FVQVJFIEFBUlU7U287MDtMOzxzcXVhcmU+IDMwQTIgMzBGQyAzMEVCOzs7O047U1FVQVJFRCBBQVJVOzs7OworMzMwNDtTUVVBUkUgSU5JTkdVO1NvOzA7TDs8c3F1YXJlPiAzMEE0IDMwQ0IgMzBGMyAzMEIwOzs7O047U1FVQVJFRCBJTklOR1U7Ozs7CiszMzA1O1NRVUFSRSBJTlRJO1NvOzA7TDs8c3F1YXJlPiAzMEE0IDMwRjMgMzBDMTs7OztOO1NRVUFSRUQgSU5USTs7OzsKKzMzMDY7U1FVQVJFIFVPTjtTbzswO0w7PHNxdWFyZT4gMzBBNiAzMEE5IDMwRjM7Ozs7TjtTUVVBUkVEIFVPTjs7OzsKKzMzMDc7U1FVQVJFIEVTVUtVVURPO1NvOzA7TDs8c3F1YXJlPiAzMEE4IDMwQjkgMzBBRiAzMEZDIDMwQzk7Ozs7TjtTUVVBUkVEIEVTVUtVVURPOzs7OworMzMwODtTUVVBUkUgRUVLQUE7U287MDtMOzxzcXVhcmU+IDMwQTggMzBGQyAzMEFCIDMwRkM7Ozs7TjtTUVVBUkVEIEVFS0FBOzs7OworMzMwOTtTUVVBUkUgT05TVTtTbzswO0w7PHNxdWFyZT4gMzBBQSAzMEYzIDMwQjk7Ozs7TjtTUVVBUkVEIE9OU1U7Ozs7CiszMzBBO1NRVUFSRSBPT01VO1NvOzA7TDs8c3F1YXJlPiAzMEFBIDMwRkMgMzBFMDs7OztOO1NRVUFSRUQgT09NVTs7OzsKKzMzMEI7U1FVQVJFIEtBSVJJO1NvOzA7TDs8c3F1YXJlPiAzMEFCIDMwQTQgMzBFQTs7OztOO1NRVUFSRUQgS0FJUkk7Ozs7CiszMzBDO1NRVUFSRSBLQVJBVFRPO1NvOzA7TDs8c3F1YXJlPiAzMEFCIDMwRTkgMzBDMyAzMEM4Ozs7O047U1FVQVJFRCBLQVJBVFRPOzs7OworMzMwRDtTUVVBUkUgS0FST1JJSTtTbzswO0w7PHNxdWFyZT4gMzBBQiAzMEVEIDMwRUEgMzBGQzs7OztOO1NRVUFSRUQgS0FST1JJSTs7OzsKKzMzMEU7U1FVQVJFIEdBUk9OO1NvOzA7TDs8c3F1YXJlPiAzMEFDIDMwRUQgMzBGMzs7OztOO1NRVUFSRUQgR0FST047Ozs7CiszMzBGO1NRVUFSRSBHQU5NQTtTbzswO0w7PHNxdWFyZT4gMzBBQyAzMEYzIDMwREU7Ozs7TjtTUVVBUkVEIEdBTk1BOzs7OworMzMxMDtTUVVBUkUgR0lHQTtTbzswO0w7PHNxdWFyZT4gMzBBRSAzMEFDOzs7O047U1FVQVJFRCBHSUdBOzs7OworMzMxMTtTUVVBUkUgR0lOSUk7U287MDtMOzxzcXVhcmU+IDMwQUUgMzBDQiAzMEZDOzs7O047U1FVQVJFRCBHSU5JSTs7OzsKKzMzMTI7U1FVQVJFIEtZVVJJSTtTbzswO0w7PHNxdWFyZT4gMzBBRCAzMEU1IDMwRUEgMzBGQzs7OztOO1NRVUFSRUQgS1lVUklJOzs7OworMzMxMztTUVVBUkUgR0lSVURBQTtTbzswO0w7PHNxdWFyZT4gMzBBRSAzMEVCIDMwQzAgMzBGQzs7OztOO1NRVUFSRUQgR0lSVURBQTs7OzsKKzMzMTQ7U1FVQVJFIEtJUk87U287MDtMOzxzcXVhcmU+IDMwQUQgMzBFRDs7OztOO1NRVUFSRUQgS0lSTzs7OzsKKzMzMTU7U1FVQVJFIEtJUk9HVVJBTVU7U287MDtMOzxzcXVhcmU+IDMwQUQgMzBFRCAzMEIwIDMwRTkgMzBFMDs7OztOO1NRVUFSRUQgS0lST0dVUkFNVTs7OzsKKzMzMTY7U1FVQVJFIEtJUk9NRUVUT1JVO1NvOzA7TDs8c3F1YXJlPiAzMEFEIDMwRUQgMzBFMSAzMEZDIDMwQzggMzBFQjs7OztOO1NRVUFSRUQgS0lST01FRVRPUlU7Ozs7CiszMzE3O1NRVUFSRSBLSVJPV0FUVE87U287MDtMOzxzcXVhcmU+IDMwQUQgMzBFRCAzMEVGIDMwQzMgMzBDODs7OztOO1NRVUFSRUQgS0lST1dBVFRPOzs7OworMzMxODtTUVVBUkUgR1VSQU1VO1NvOzA7TDs8c3F1YXJlPiAzMEIwIDMwRTkgMzBFMDs7OztOO1NRVUFSRUQgR1VSQU1VOzs7OworMzMxOTtTUVVBUkUgR1VSQU1VVE9OO1NvOzA7TDs8c3F1YXJlPiAzMEIwIDMwRTkgMzBFMCAzMEM4IDMwRjM7Ozs7TjtTUVVBUkVEIEdVUkFNVVRPTjs7OzsKKzMzMUE7U1FVQVJFIEtVUlVaRUlSTztTbzswO0w7PHNxdWFyZT4gMzBBRiAzMEVCIDMwQkMgMzBBNCAzMEVEOzs7O047U1FVQVJFRCBLVVJVWkVJUk87Ozs7CiszMzFCO1NRVUFSRSBLVVJPT05FO1NvOzA7TDs8c3F1YXJlPiAzMEFGIDMwRUQgMzBGQyAzMENEOzs7O047U1FVQVJFRCBLVVJPT05FOzs7OworMzMxQztTUVVBUkUgS0VFU1U7U287MDtMOzxzcXVhcmU+IDMwQjEgMzBGQyAzMEI5Ozs7O047U1FVQVJFRCBLRUVTVTs7OzsKKzMzMUQ7U1FVQVJFIEtPUlVOQTtTbzswO0w7PHNxdWFyZT4gMzBCMyAzMEVCIDMwQ0E7Ozs7TjtTUVVBUkVEIEtPUlVOQTs7OzsKKzMzMUU7U1FVQVJFIEtPT1BPO1NvOzA7TDs8c3F1YXJlPiAzMEIzIDMwRkMgMzBERDs7OztOO1NRVUFSRUQgS09PUE87Ozs7CiszMzFGO1NRVUFSRSBTQUlLVVJVO1NvOzA7TDs8c3F1YXJlPiAzMEI1IDMwQTQgMzBBRiAzMEVCOzs7O047U1FVQVJFRCBTQUlLVVJVOzs7OworMzMyMDtTUVVBUkUgU0FOVElJTVU7U287MDtMOzxzcXVhcmU+IDMwQjUgMzBGMyAzMEMxIDMwRkMgMzBFMDs7OztOO1NRVUFSRUQgU0FOVElJTVU7Ozs7CiszMzIxO1NRVUFSRSBTSVJJTkdVO1NvOzA7TDs8c3F1YXJlPiAzMEI3IDMwRUEgMzBGMyAzMEIwOzs7O047U1FVQVJFRCBTSVJJTkdVOzs7OworMzMyMjtTUVVBUkUgU0VOVEk7U287MDtMOzxzcXVhcmU+IDMwQkIgMzBGMyAzMEMxOzs7O047U1FVQVJFRCBTRU5USTs7OzsKKzMzMjM7U1FVQVJFIFNFTlRPO1NvOzA7TDs8c3F1YXJlPiAzMEJCIDMwRjMgMzBDODs7OztOO1NRVUFSRUQgU0VOVE87Ozs7CiszMzI0O1NRVUFSRSBEQUFTVTtTbzswO0w7PHNxdWFyZT4gMzBDMCAzMEZDIDMwQjk7Ozs7TjtTUVVBUkVEIERBQVNVOzs7OworMzMyNTtTUVVBUkUgREVTSTtTbzswO0w7PHNxdWFyZT4gMzBDNyAzMEI3Ozs7O047U1FVQVJFRCBERVNJOzs7OworMzMyNjtTUVVBUkUgRE9SVTtTbzswO0w7PHNxdWFyZT4gMzBDOSAzMEVCOzs7O047U1FVQVJFRCBET1JVOzs7OworMzMyNztTUVVBUkUgVE9OO1NvOzA7TDs8c3F1YXJlPiAzMEM4IDMwRjM7Ozs7TjtTUVVBUkVEIFRPTjs7OzsKKzMzMjg7U1FVQVJFIE5BTk87U287MDtMOzxzcXVhcmU+IDMwQ0EgMzBDRTs7OztOO1NRVUFSRUQgTkFOTzs7OzsKKzMzMjk7U1FVQVJFIE5PVFRPO1NvOzA7TDs8c3F1YXJlPiAzMENFIDMwQzMgMzBDODs7OztOO1NRVUFSRUQgTk9UVE87Ozs7CiszMzJBO1NRVUFSRSBIQUlUVTtTbzswO0w7PHNxdWFyZT4gMzBDRiAzMEE0IDMwQzQ7Ozs7TjtTUVVBUkVEIEhBSVRVOzs7OworMzMyQjtTUVVBUkUgUEFBU0VOVE87U287MDtMOzxzcXVhcmU+IDMwRDEgMzBGQyAzMEJCIDMwRjMgMzBDODs7OztOO1NRVUFSRUQgUEFBU0VOVE87Ozs7CiszMzJDO1NRVUFSRSBQQUFUVTtTbzswO0w7PHNxdWFyZT4gMzBEMSAzMEZDIDMwQzQ7Ozs7TjtTUVVBUkVEIFBBQVRVOzs7OworMzMyRDtTUVVBUkUgQkFBUkVSVTtTbzswO0w7PHNxdWFyZT4gMzBEMCAzMEZDIDMwRUMgMzBFQjs7OztOO1NRVUFSRUQgQkFBUkVSVTs7OzsKKzMzMkU7U1FVQVJFIFBJQVNVVE9SVTtTbzswO0w7PHNxdWFyZT4gMzBENCAzMEEyIDMwQjkgMzBDOCAzMEVCOzs7O047U1FVQVJFRCBQSUFTVVRPUlU7Ozs7CiszMzJGO1NRVUFSRSBQSUtVUlU7U287MDtMOzxzcXVhcmU+IDMwRDQgMzBBRiAzMEVCOzs7O047U1FVQVJFRCBQSUtVUlU7Ozs7CiszMzMwO1NRVUFSRSBQSUtPO1NvOzA7TDs8c3F1YXJlPiAzMEQ0IDMwQjM7Ozs7TjtTUVVBUkVEIFBJS087Ozs7CiszMzMxO1NRVUFSRSBCSVJVO1NvOzA7TDs8c3F1YXJlPiAzMEQzIDMwRUI7Ozs7TjtTUVVBUkVEIEJJUlU7Ozs7CiszMzMyO1NRVUFSRSBIVUFSQURETztTbzswO0w7PHNxdWFyZT4gMzBENSAzMEExIDMwRTkgMzBDMyAzMEM5Ozs7O047U1FVQVJFRCBIVUFSQURETzs7OzsKKzMzMzM7U1FVQVJFIEhVSUlUTztTbzswO0w7PHNxdWFyZT4gMzBENSAzMEEzIDMwRkMgMzBDODs7OztOO1NRVUFSRUQgSFVJSVRPOzs7OworMzMzNDtTUVVBUkUgQlVTU1lFUlU7U287MDtMOzxzcXVhcmU+IDMwRDYgMzBDMyAzMEI3IDMwQTcgMzBFQjs7OztOO1NRVUFSRUQgQlVTU1lFUlU7Ozs7CiszMzM1O1NRVUFSRSBIVVJBTjtTbzswO0w7PHNxdWFyZT4gMzBENSAzMEU5IDMwRjM7Ozs7TjtTUVVBUkVEIEhVUkFOOzs7OworMzMzNjtTUVVBUkUgSEVLVVRBQVJVO1NvOzA7TDs8c3F1YXJlPiAzMEQ4IDMwQUYgMzBCRiAzMEZDIDMwRUI7Ozs7TjtTUVVBUkVEIEhFS1VUQUFSVTs7OzsKKzMzMzc7U1FVQVJFIFBFU087U287MDtMOzxzcXVhcmU+IDMwREEgMzBCRDs7OztOO1NRVUFSRUQgUEVTTzs7OzsKKzMzMzg7U1FVQVJFIFBFTklISTtTbzswO0w7PHNxdWFyZT4gMzBEQSAzMENCIDMwRDI7Ozs7TjtTUVVBUkVEIFBFTklISTs7OzsKKzMzMzk7U1FVQVJFIEhFUlVUVTtTbzswO0w7PHNxdWFyZT4gMzBEOCAzMEVCIDMwQzQ7Ozs7TjtTUVVBUkVEIEhFUlVUVTs7OzsKKzMzM0E7U1FVQVJFIFBFTlNVO1NvOzA7TDs8c3F1YXJlPiAzMERBIDMwRjMgMzBCOTs7OztOO1NRVUFSRUQgUEVOU1U7Ozs7CiszMzNCO1NRVUFSRSBQRUVaSTtTbzswO0w7PHNxdWFyZT4gMzBEQSAzMEZDIDMwQjg7Ozs7TjtTUVVBUkVEIFBFRVpJOzs7OworMzMzQztTUVVBUkUgQkVFVEE7U287MDtMOzxzcXVhcmU+IDMwRDkgMzBGQyAzMEJGOzs7O047U1FVQVJFRCBCRUVUQTs7OzsKKzMzM0Q7U1FVQVJFIFBPSU5UTztTbzswO0w7PHNxdWFyZT4gMzBERCAzMEE0IDMwRjMgMzBDODs7OztOO1NRVUFSRUQgUE9JTlRPOzs7OworMzMzRTtTUVVBUkUgQk9SVVRPO1NvOzA7TDs8c3F1YXJlPiAzMERDIDMwRUIgMzBDODs7OztOO1NRVUFSRUQgQk9SVVRPOzs7OworMzMzRjtTUVVBUkUgSE9OO1NvOzA7TDs8c3F1YXJlPiAzMERCIDMwRjM7Ozs7TjtTUVVBUkVEIEhPTjs7OzsKKzMzNDA7U1FVQVJFIFBPTkRPO1NvOzA7TDs8c3F1YXJlPiAzMEREIDMwRjMgMzBDOTs7OztOO1NRVUFSRUQgUE9ORE87Ozs7CiszMzQxO1NRVUFSRSBIT09SVTtTbzswO0w7PHNxdWFyZT4gMzBEQiAzMEZDIDMwRUI7Ozs7TjtTUVVBUkVEIEhPT1JVOzs7OworMzM0MjtTUVVBUkUgSE9PTjtTbzswO0w7PHNxdWFyZT4gMzBEQiAzMEZDIDMwRjM7Ozs7TjtTUVVBUkVEIEhPT047Ozs7CiszMzQzO1NRVUFSRSBNQUlLVVJPO1NvOzA7TDs8c3F1YXJlPiAzMERFIDMwQTQgMzBBRiAzMEVEOzs7O047U1FVQVJFRCBNQUlLVVJPOzs7OworMzM0NDtTUVVBUkUgTUFJUlU7U287MDtMOzxzcXVhcmU+IDMwREUgMzBBNCAzMEVCOzs7O047U1FVQVJFRCBNQUlSVTs7OzsKKzMzNDU7U1FVQVJFIE1BSEhBO1NvOzA7TDs8c3F1YXJlPiAzMERFIDMwQzMgMzBDRjs7OztOO1NRVUFSRUQgTUFISEE7Ozs7CiszMzQ2O1NRVUFSRSBNQVJVS1U7U287MDtMOzxzcXVhcmU+IDMwREUgMzBFQiAzMEFGOzs7O047U1FVQVJFRCBNQVJVS1U7Ozs7CiszMzQ3O1NRVUFSRSBNQU5TWU9OO1NvOzA7TDs8c3F1YXJlPiAzMERFIDMwRjMgMzBCNyAzMEU3IDMwRjM7Ozs7TjtTUVVBUkVEIE1BTlNZT047Ozs7CiszMzQ4O1NRVUFSRSBNSUtVUk9OO1NvOzA7TDs8c3F1YXJlPiAzMERGIDMwQUYgMzBFRCAzMEYzOzs7O047U1FVQVJFRCBNSUtVUk9OOzs7OworMzM0OTtTUVVBUkUgTUlSSTtTbzswO0w7PHNxdWFyZT4gMzBERiAzMEVBOzs7O047U1FVQVJFRCBNSVJJOzs7OworMzM0QTtTUVVBUkUgTUlSSUJBQVJVO1NvOzA7TDs8c3F1YXJlPiAzMERGIDMwRUEgMzBEMCAzMEZDIDMwRUI7Ozs7TjtTUVVBUkVEIE1JUklCQUFSVTs7OzsKKzMzNEI7U1FVQVJFIE1FR0E7U287MDtMOzxzcXVhcmU+IDMwRTEgMzBBQzs7OztOO1NRVUFSRUQgTUVHQTs7OzsKKzMzNEM7U1FVQVJFIE1FR0FUT047U287MDtMOzxzcXVhcmU+IDMwRTEgMzBBQyAzMEM4IDMwRjM7Ozs7TjtTUVVBUkVEIE1FR0FUT047Ozs7CiszMzREO1NRVUFSRSBNRUVUT1JVO1NvOzA7TDs8c3F1YXJlPiAzMEUxIDMwRkMgMzBDOCAzMEVCOzs7O047U1FVQVJFRCBNRUVUT1JVOzs7OworMzM0RTtTUVVBUkUgWUFBRE87U287MDtMOzxzcXVhcmU+IDMwRTQgMzBGQyAzMEM5Ozs7O047U1FVQVJFRCBZQUFETzs7OzsKKzMzNEY7U1FVQVJFIFlBQVJVO1NvOzA7TDs8c3F1YXJlPiAzMEU0IDMwRkMgMzBFQjs7OztOO1NRVUFSRUQgWUFBUlU7Ozs7CiszMzUwO1NRVUFSRSBZVUFOO1NvOzA7TDs8c3F1YXJlPiAzMEU2IDMwQTIgMzBGMzs7OztOO1NRVUFSRUQgWVVBTjs7OzsKKzMzNTE7U1FVQVJFIFJJVFRPUlU7U287MDtMOzxzcXVhcmU+IDMwRUEgMzBDMyAzMEM4IDMwRUI7Ozs7TjtTUVVBUkVEIFJJVFRPUlU7Ozs7CiszMzUyO1NRVUFSRSBSSVJBO1NvOzA7TDs8c3F1YXJlPiAzMEVBIDMwRTk7Ozs7TjtTUVVBUkVEIFJJUkE7Ozs7CiszMzUzO1NRVUFSRSBSVVBJSTtTbzswO0w7PHNxdWFyZT4gMzBFQiAzMEQ0IDMwRkM7Ozs7TjtTUVVBUkVEIFJVUElJOzs7OworMzM1NDtTUVVBUkUgUlVVQlVSVTtTbzswO0w7PHNxdWFyZT4gMzBFQiAzMEZDIDMwRDYgMzBFQjs7OztOO1NRVUFSRUQgUlVVQlVSVTs7OzsKKzMzNTU7U1FVQVJFIFJFTVU7U287MDtMOzxzcXVhcmU+IDMwRUMgMzBFMDs7OztOO1NRVUFSRUQgUkVNVTs7OzsKKzMzNTY7U1FVQVJFIFJFTlRPR0VOO1NvOzA7TDs8c3F1YXJlPiAzMEVDIDMwRjMgMzBDOCAzMEIyIDMwRjM7Ozs7TjtTUVVBUkVEIFJFTlRPR0VOOzs7OworMzM1NztTUVVBUkUgV0FUVE87U287MDtMOzxzcXVhcmU+IDMwRUYgMzBDMyAzMEM4Ozs7O047U1FVQVJFRCBXQVRUTzs7OzsKKzMzNTg7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBaRVJPO1NvOzA7TDs8Y29tcGF0PiAwMDMwIDcwQjk7Ozs7Tjs7Ozs7CiszMzU5O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgT05FO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDcwQjk7Ozs7Tjs7Ozs7CiszMzVBO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgVFdPO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDcwQjk7Ozs7Tjs7Ozs7CiszMzVCO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgVEhSRUU7U287MDtMOzxjb21wYXQ+IDAwMzMgNzBCOTs7OztOOzs7OzsKKzMzNUM7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBGT1VSO1NvOzA7TDs8Y29tcGF0PiAwMDM0IDcwQjk7Ozs7Tjs7Ozs7CiszMzVEO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgRklWRTtTbzswO0w7PGNvbXBhdD4gMDAzNSA3MEI5Ozs7O047Ozs7OworMzM1RTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFNJWDtTbzswO0w7PGNvbXBhdD4gMDAzNiA3MEI5Ozs7O047Ozs7OworMzM1RjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFNFVkVOO1NvOzA7TDs8Y29tcGF0PiAwMDM3IDcwQjk7Ozs7Tjs7Ozs7CiszMzYwO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgRUlHSFQ7U287MDtMOzxjb21wYXQ+IDAwMzggNzBCOTs7OztOOzs7OzsKKzMzNjE7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBOSU5FO1NvOzA7TDs8Y29tcGF0PiAwMDM5IDcwQjk7Ozs7Tjs7Ozs7CiszMzYyO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgVEVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzAgNzBCOTs7OztOOzs7OzsKKzMzNjM7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBFTEVWRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzMSA3MEI5Ozs7O047Ozs7OworMzM2NDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFRXRUxWRTtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDMyIDcwQjk7Ozs7Tjs7Ozs7CiszMzY1O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgVEhJUlRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzMyA3MEI5Ozs7O047Ozs7OworMzM2NjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIEZPVVJURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzQgNzBCOTs7OztOOzs7OzsKKzMzNjc7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBGSUZURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzUgNzBCOTs7OztOOzs7OzsKKzMzNjg7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBTSVhURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzYgNzBCOTs7OztOOzs7OzsKKzMzNjk7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBTRVZFTlRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzNyA3MEI5Ozs7O047Ozs7OworMzM2QTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIEVJR0hURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzggNzBCOTs7OztOOzs7OzsKKzMzNkI7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBOSU5FVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDM5IDcwQjk7Ozs7Tjs7Ozs7CiszMzZDO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgVFdFTlRZO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzAgNzBCOTs7OztOOzs7OzsKKzMzNkQ7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBUV0VOVFktT05FO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzEgNzBCOTs7OztOOzs7OzsKKzMzNkU7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBUV0VOVFktVFdPO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzIgNzBCOTs7OztOOzs7OzsKKzMzNkY7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBUV0VOVFktVEhSRUU7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzMyA3MEI5Ozs7O047Ozs7OworMzM3MDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFRXRU5UWS1GT1VSO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzQgNzBCOTs7OztOOzs7OzsKKzMzNzE7U1FVQVJFIEhQQTtTbzswO0w7PHNxdWFyZT4gMDA2OCAwMDUwIDAwNjE7Ozs7Tjs7Ozs7CiszMzcyO1NRVUFSRSBEQTtTbzswO0w7PHNxdWFyZT4gMDA2NCAwMDYxOzs7O047Ozs7OworMzM3MztTUVVBUkUgQVU7U287MDtMOzxzcXVhcmU+IDAwNDEgMDA1NTs7OztOOzs7OzsKKzMzNzQ7U1FVQVJFIEJBUjtTbzswO0w7PHNxdWFyZT4gMDA2MiAwMDYxIDAwNzI7Ozs7Tjs7Ozs7CiszMzc1O1NRVUFSRSBPVjtTbzswO0w7PHNxdWFyZT4gMDA2RiAwMDU2Ozs7O047Ozs7OworMzM3NjtTUVVBUkUgUEM7U287MDtMOzxzcXVhcmU+IDAwNzAgMDA2Mzs7OztOOzs7OzsKKzMzN0I7U1FVQVJFIEVSQSBOQU1FIEhFSVNFSTtTbzswO0w7PHNxdWFyZT4gNUU3MyA2MjEwOzs7O047U1FVQVJFRCBUV08gSURFT0dSQVBIUyBFUkEgTkFNRSBIRUlTRUk7Ozs7CiszMzdDO1NRVUFSRSBFUkEgTkFNRSBTWU9VV0E7U287MDtMOzxzcXVhcmU+IDY2MkQgNTQ4Qzs7OztOO1NRVUFSRUQgVFdPIElERU9HUkFQSFMgRVJBIE5BTUUgU1lPVVdBOzs7OworMzM3RDtTUVVBUkUgRVJBIE5BTUUgVEFJU1lPVTtTbzswO0w7PHNxdWFyZT4gNTkyNyA2QjYzOzs7O047U1FVQVJFRCBUV08gSURFT0dSQVBIUyBFUkEgTkFNRSBUQUlTWU9VOzs7OworMzM3RTtTUVVBUkUgRVJBIE5BTUUgTUVJWkk7U287MDtMOzxzcXVhcmU+IDY2MEUgNkNCQjs7OztOO1NRVUFSRUQgVFdPIElERU9HUkFQSFMgRVJBIE5BTUUgTUVJWkk7Ozs7CiszMzdGO1NRVUFSRSBDT1JQT1JBVElPTjtTbzswO0w7PHNxdWFyZT4gNjgyQSA1RjBGIDRGMUEgNzkzRTs7OztOO1NRVUFSRUQgRk9VUiBJREVPR1JBUEhTIENPUlBPUkFUSU9OOzs7OworMzM4MDtTUVVBUkUgUEEgQU1QUztTbzswO0w7PHNxdWFyZT4gMDA3MCAwMDQxOzs7O047U1FVQVJFRCBQQSBBTVBTOzs7OworMzM4MTtTUVVBUkUgTkE7U287MDtMOzxzcXVhcmU+IDAwNkUgMDA0MTs7OztOO1NRVUFSRUQgTkE7Ozs7CiszMzgyO1NRVUFSRSBNVSBBO1NvOzA7TDs8c3F1YXJlPiAwM0JDIDAwNDE7Ozs7TjtTUVVBUkVEIE1VIEE7Ozs7CiszMzgzO1NRVUFSRSBNQTtTbzswO0w7PHNxdWFyZT4gMDA2RCAwMDQxOzs7O047U1FVQVJFRCBNQTs7OzsKKzMzODQ7U1FVQVJFIEtBO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDAwNDE7Ozs7TjtTUVVBUkVEIEtBOzs7OworMzM4NTtTUVVBUkUgS0I7U287MDtMOzxzcXVhcmU+IDAwNEIgMDA0Mjs7OztOO1NRVUFSRUQgS0I7Ozs7CiszMzg2O1NRVUFSRSBNQjtTbzswO0w7PHNxdWFyZT4gMDA0RCAwMDQyOzs7O047U1FVQVJFRCBNQjs7OzsKKzMzODc7U1FVQVJFIEdCO1NvOzA7TDs8c3F1YXJlPiAwMDQ3IDAwNDI7Ozs7TjtTUVVBUkVEIEdCOzs7OworMzM4ODtTUVVBUkUgQ0FMO1NvOzA7TDs8c3F1YXJlPiAwMDYzIDAwNjEgMDA2Qzs7OztOO1NRVUFSRUQgQ0FMOzs7OworMzM4OTtTUVVBUkUgS0NBTDtTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDYzIDAwNjEgMDA2Qzs7OztOO1NRVUFSRUQgS0NBTDs7OzsKKzMzOEE7U1FVQVJFIFBGO1NvOzA7TDs8c3F1YXJlPiAwMDcwIDAwNDY7Ozs7TjtTUVVBUkVEIFBGOzs7OworMzM4QjtTUVVBUkUgTkY7U287MDtMOzxzcXVhcmU+IDAwNkUgMDA0Njs7OztOO1NRVUFSRUQgTkY7Ozs7CiszMzhDO1NRVUFSRSBNVSBGO1NvOzA7TDs8c3F1YXJlPiAwM0JDIDAwNDY7Ozs7TjtTUVVBUkVEIE1VIEY7Ozs7CiszMzhEO1NRVUFSRSBNVSBHO1NvOzA7TDs8c3F1YXJlPiAwM0JDIDAwNjc7Ozs7TjtTUVVBUkVEIE1VIEc7Ozs7CiszMzhFO1NRVUFSRSBNRztTbzswO0w7PHNxdWFyZT4gMDA2RCAwMDY3Ozs7O047U1FVQVJFRCBNRzs7OzsKKzMzOEY7U1FVQVJFIEtHO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDAwNjc7Ozs7TjtTUVVBUkVEIEtHOzs7OworMzM5MDtTUVVBUkUgSFo7U287MDtMOzxzcXVhcmU+IDAwNDggMDA3QTs7OztOO1NRVUFSRUQgSFo7Ozs7CiszMzkxO1NRVUFSRSBLSFo7U287MDtMOzxzcXVhcmU+IDAwNkIgMDA0OCAwMDdBOzs7O047U1FVQVJFRCBLSFo7Ozs7CiszMzkyO1NRVUFSRSBNSFo7U287MDtMOzxzcXVhcmU+IDAwNEQgMDA0OCAwMDdBOzs7O047U1FVQVJFRCBNSFo7Ozs7CiszMzkzO1NRVUFSRSBHSFo7U287MDtMOzxzcXVhcmU+IDAwNDcgMDA0OCAwMDdBOzs7O047U1FVQVJFRCBHSFo7Ozs7CiszMzk0O1NRVUFSRSBUSFo7U287MDtMOzxzcXVhcmU+IDAwNTQgMDA0OCAwMDdBOzs7O047U1FVQVJFRCBUSFo7Ozs7CiszMzk1O1NRVUFSRSBNVSBMO1NvOzA7TDs8c3F1YXJlPiAwM0JDIDIxMTM7Ozs7TjtTUVVBUkVEIE1VIEw7Ozs7CiszMzk2O1NRVUFSRSBNTDtTbzswO0w7PHNxdWFyZT4gMDA2RCAyMTEzOzs7O047U1FVQVJFRCBNTDs7OzsKKzMzOTc7U1FVQVJFIERMO1NvOzA7TDs8c3F1YXJlPiAwMDY0IDIxMTM7Ozs7TjtTUVVBUkVEIERMOzs7OworMzM5ODtTUVVBUkUgS0w7U287MDtMOzxzcXVhcmU+IDAwNkIgMjExMzs7OztOO1NRVUFSRUQgS0w7Ozs7CiszMzk5O1NRVUFSRSBGTTtTbzswO0w7PHNxdWFyZT4gMDA2NiAwMDZEOzs7O047U1FVQVJFRCBGTTs7OzsKKzMzOUE7U1FVQVJFIE5NO1NvOzA7TDs8c3F1YXJlPiAwMDZFIDAwNkQ7Ozs7TjtTUVVBUkVEIE5NOzs7OworMzM5QjtTUVVBUkUgTVUgTTtTbzswO0w7PHNxdWFyZT4gMDNCQyAwMDZEOzs7O047U1FVQVJFRCBNVSBNOzs7OworMzM5QztTUVVBUkUgTU07U287MDtMOzxzcXVhcmU+IDAwNkQgMDA2RDs7OztOO1NRVUFSRUQgTU07Ozs7CiszMzlEO1NRVUFSRSBDTTtTbzswO0w7PHNxdWFyZT4gMDA2MyAwMDZEOzs7O047U1FVQVJFRCBDTTs7OzsKKzMzOUU7U1FVQVJFIEtNO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDAwNkQ7Ozs7TjtTUVVBUkVEIEtNOzs7OworMzM5RjtTUVVBUkUgTU0gU1FVQVJFRDtTbzswO0w7PHNxdWFyZT4gMDA2RCAwMDZEIDAwQjI7Ozs7TjtTUVVBUkVEIE1NIFNRVUFSRUQ7Ozs7CiszM0EwO1NRVUFSRSBDTSBTUVVBUkVEO1NvOzA7TDs8c3F1YXJlPiAwMDYzIDAwNkQgMDBCMjs7OztOO1NRVUFSRUQgQ00gU1FVQVJFRDs7OzsKKzMzQTE7U1FVQVJFIE0gU1FVQVJFRDtTbzswO0w7PHNxdWFyZT4gMDA2RCAwMEIyOzs7O047U1FVQVJFRCBNIFNRVUFSRUQ7Ozs7CiszM0EyO1NRVUFSRSBLTSBTUVVBUkVEO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDAwNkQgMDBCMjs7OztOO1NRVUFSRUQgS00gU1FVQVJFRDs7OzsKKzMzQTM7U1FVQVJFIE1NIENVQkVEO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNkQgMDBCMzs7OztOO1NRVUFSRUQgTU0gQ1VCRUQ7Ozs7CiszM0E0O1NRVUFSRSBDTSBDVUJFRDtTbzswO0w7PHNxdWFyZT4gMDA2MyAwMDZEIDAwQjM7Ozs7TjtTUVVBUkVEIENNIENVQkVEOzs7OworMzNBNTtTUVVBUkUgTSBDVUJFRDtTbzswO0w7PHNxdWFyZT4gMDA2RCAwMEIzOzs7O047U1FVQVJFRCBNIENVQkVEOzs7OworMzNBNjtTUVVBUkUgS00gQ1VCRUQ7U287MDtMOzxzcXVhcmU+IDAwNkIgMDA2RCAwMEIzOzs7O047U1FVQVJFRCBLTSBDVUJFRDs7OzsKKzMzQTc7U1FVQVJFIE0gT1ZFUiBTO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDIyMTUgMDA3Mzs7OztOO1NRVUFSRUQgTSBPVkVSIFM7Ozs7CiszM0E4O1NRVUFSRSBNIE9WRVIgUyBTUVVBUkVEO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDIyMTUgMDA3MyAwMEIyOzs7O047U1FVQVJFRCBNIE9WRVIgUyBTUVVBUkVEOzs7OworMzNBOTtTUVVBUkUgUEE7U287MDtMOzxzcXVhcmU+IDAwNTAgMDA2MTs7OztOO1NRVUFSRUQgUEE7Ozs7CiszM0FBO1NRVUFSRSBLUEE7U287MDtMOzxzcXVhcmU+IDAwNkIgMDA1MCAwMDYxOzs7O047U1FVQVJFRCBLUEE7Ozs7CiszM0FCO1NRVUFSRSBNUEE7U287MDtMOzxzcXVhcmU+IDAwNEQgMDA1MCAwMDYxOzs7O047U1FVQVJFRCBNUEE7Ozs7CiszM0FDO1NRVUFSRSBHUEE7U287MDtMOzxzcXVhcmU+IDAwNDcgMDA1MCAwMDYxOzs7O047U1FVQVJFRCBHUEE7Ozs7CiszM0FEO1NRVUFSRSBSQUQ7U287MDtMOzxzcXVhcmU+IDAwNzIgMDA2MSAwMDY0Ozs7O047U1FVQVJFRCBSQUQ7Ozs7CiszM0FFO1NRVUFSRSBSQUQgT1ZFUiBTO1NvOzA7TDs8c3F1YXJlPiAwMDcyIDAwNjEgMDA2NCAyMjE1IDAwNzM7Ozs7TjtTUVVBUkVEIFJBRCBPVkVSIFM7Ozs7CiszM0FGO1NRVUFSRSBSQUQgT1ZFUiBTIFNRVUFSRUQ7U287MDtMOzxzcXVhcmU+IDAwNzIgMDA2MSAwMDY0IDIyMTUgMDA3MyAwMEIyOzs7O047U1FVQVJFRCBSQUQgT1ZFUiBTIFNRVUFSRUQ7Ozs7CiszM0IwO1NRVUFSRSBQUztTbzswO0w7PHNxdWFyZT4gMDA3MCAwMDczOzs7O047U1FVQVJFRCBQUzs7OzsKKzMzQjE7U1FVQVJFIE5TO1NvOzA7TDs8c3F1YXJlPiAwMDZFIDAwNzM7Ozs7TjtTUVVBUkVEIE5TOzs7OworMzNCMjtTUVVBUkUgTVUgUztTbzswO0w7PHNxdWFyZT4gMDNCQyAwMDczOzs7O047U1FVQVJFRCBNVSBTOzs7OworMzNCMztTUVVBUkUgTVM7U287MDtMOzxzcXVhcmU+IDAwNkQgMDA3Mzs7OztOO1NRVUFSRUQgTVM7Ozs7CiszM0I0O1NRVUFSRSBQVjtTbzswO0w7PHNxdWFyZT4gMDA3MCAwMDU2Ozs7O047U1FVQVJFRCBQVjs7OzsKKzMzQjU7U1FVQVJFIE5WO1NvOzA7TDs8c3F1YXJlPiAwMDZFIDAwNTY7Ozs7TjtTUVVBUkVEIE5WOzs7OworMzNCNjtTUVVBUkUgTVUgVjtTbzswO0w7PHNxdWFyZT4gMDNCQyAwMDU2Ozs7O047U1FVQVJFRCBNVSBWOzs7OworMzNCNztTUVVBUkUgTVY7U287MDtMOzxzcXVhcmU+IDAwNkQgMDA1Njs7OztOO1NRVUFSRUQgTVY7Ozs7CiszM0I4O1NRVUFSRSBLVjtTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDU2Ozs7O047U1FVQVJFRCBLVjs7OzsKKzMzQjk7U1FVQVJFIE1WIE1FR0E7U287MDtMOzxzcXVhcmU+IDAwNEQgMDA1Njs7OztOO1NRVUFSRUQgTVYgTUVHQTs7OzsKKzMzQkE7U1FVQVJFIFBXO1NvOzA7TDs8c3F1YXJlPiAwMDcwIDAwNTc7Ozs7TjtTUVVBUkVEIFBXOzs7OworMzNCQjtTUVVBUkUgTlc7U287MDtMOzxzcXVhcmU+IDAwNkUgMDA1Nzs7OztOO1NRVUFSRUQgTlc7Ozs7CiszM0JDO1NRVUFSRSBNVSBXO1NvOzA7TDs8c3F1YXJlPiAwM0JDIDAwNTc7Ozs7TjtTUVVBUkVEIE1VIFc7Ozs7CiszM0JEO1NRVUFSRSBNVztTbzswO0w7PHNxdWFyZT4gMDA2RCAwMDU3Ozs7O047U1FVQVJFRCBNVzs7OzsKKzMzQkU7U1FVQVJFIEtXO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDAwNTc7Ozs7TjtTUVVBUkVEIEtXOzs7OworMzNCRjtTUVVBUkUgTVcgTUVHQTtTbzswO0w7PHNxdWFyZT4gMDA0RCAwMDU3Ozs7O047U1FVQVJFRCBNVyBNRUdBOzs7OworMzNDMDtTUVVBUkUgSyBPSE07U287MDtMOzxzcXVhcmU+IDAwNkIgMDNBOTs7OztOO1NRVUFSRUQgSyBPSE07Ozs7CiszM0MxO1NRVUFSRSBNIE9ITTtTbzswO0w7PHNxdWFyZT4gMDA0RCAwM0E5Ozs7O047U1FVQVJFRCBNIE9ITTs7OzsKKzMzQzI7U1FVQVJFIEFNO1NvOzA7TDs8c3F1YXJlPiAwMDYxIDAwMkUgMDA2RCAwMDJFOzs7O047U1FVQVJFRCBBTTs7OzsKKzMzQzM7U1FVQVJFIEJRO1NvOzA7TDs8c3F1YXJlPiAwMDQyIDAwNzE7Ozs7TjtTUVVBUkVEIEJROzs7OworMzNDNDtTUVVBUkUgQ0M7U287MDtMOzxzcXVhcmU+IDAwNjMgMDA2Mzs7OztOO1NRVUFSRUQgQ0M7Ozs7CiszM0M1O1NRVUFSRSBDRDtTbzswO0w7PHNxdWFyZT4gMDA2MyAwMDY0Ozs7O047U1FVQVJFRCBDRDs7OzsKKzMzQzY7U1FVQVJFIEMgT1ZFUiBLRztTbzswO0w7PHNxdWFyZT4gMDA0MyAyMjE1IDAwNkIgMDA2Nzs7OztOO1NRVUFSRUQgQyBPVkVSIEtHOzs7OworMzNDNztTUVVBUkUgQ087U287MDtMOzxzcXVhcmU+IDAwNDMgMDA2RiAwMDJFOzs7O047U1FVQVJFRCBDTzs7OzsKKzMzQzg7U1FVQVJFIERCO1NvOzA7TDs8c3F1YXJlPiAwMDY0IDAwNDI7Ozs7TjtTUVVBUkVEIERCOzs7OworMzNDOTtTUVVBUkUgR1k7U287MDtMOzxzcXVhcmU+IDAwNDcgMDA3OTs7OztOO1NRVUFSRUQgR1k7Ozs7CiszM0NBO1NRVUFSRSBIQTtTbzswO0w7PHNxdWFyZT4gMDA2OCAwMDYxOzs7O047U1FVQVJFRCBIQTs7OzsKKzMzQ0I7U1FVQVJFIEhQO1NvOzA7TDs8c3F1YXJlPiAwMDQ4IDAwNTA7Ozs7TjtTUVVBUkVEIEhQOzs7OworMzNDQztTUVVBUkUgSU47U287MDtMOzxzcXVhcmU+IDAwNjkgMDA2RTs7OztOO1NRVUFSRUQgSU47Ozs7CiszM0NEO1NRVUFSRSBLSztTbzswO0w7PHNxdWFyZT4gMDA0QiAwMDRCOzs7O047U1FVQVJFRCBLSzs7OzsKKzMzQ0U7U1FVQVJFIEtNIENBUElUQUw7U287MDtMOzxzcXVhcmU+IDAwNEIgMDA0RDs7OztOO1NRVUFSRUQgS00gQ0FQSVRBTDs7OzsKKzMzQ0Y7U1FVQVJFIEtUO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDAwNzQ7Ozs7TjtTUVVBUkVEIEtUOzs7OworMzNEMDtTUVVBUkUgTE07U287MDtMOzxzcXVhcmU+IDAwNkMgMDA2RDs7OztOO1NRVUFSRUQgTE07Ozs7CiszM0QxO1NRVUFSRSBMTjtTbzswO0w7PHNxdWFyZT4gMDA2QyAwMDZFOzs7O047U1FVQVJFRCBMTjs7OzsKKzMzRDI7U1FVQVJFIExPRztTbzswO0w7PHNxdWFyZT4gMDA2QyAwMDZGIDAwNjc7Ozs7TjtTUVVBUkVEIExPRzs7OzsKKzMzRDM7U1FVQVJFIExYO1NvOzA7TDs8c3F1YXJlPiAwMDZDIDAwNzg7Ozs7TjtTUVVBUkVEIExYOzs7OworMzNENDtTUVVBUkUgTUIgU01BTEw7U287MDtMOzxzcXVhcmU+IDAwNkQgMDA2Mjs7OztOO1NRVUFSRUQgTUIgU01BTEw7Ozs7CiszM0Q1O1NRVUFSRSBNSUw7U287MDtMOzxzcXVhcmU+IDAwNkQgMDA2OSAwMDZDOzs7O047U1FVQVJFRCBNSUw7Ozs7CiszM0Q2O1NRVUFSRSBNT0w7U287MDtMOzxzcXVhcmU+IDAwNkQgMDA2RiAwMDZDOzs7O047U1FVQVJFRCBNT0w7Ozs7CiszM0Q3O1NRVUFSRSBQSDtTbzswO0w7PHNxdWFyZT4gMDA1MCAwMDQ4Ozs7O047U1FVQVJFRCBQSDs7OzsKKzMzRDg7U1FVQVJFIFBNO1NvOzA7TDs8c3F1YXJlPiAwMDcwIDAwMkUgMDA2RCAwMDJFOzs7O047U1FVQVJFRCBQTTs7OzsKKzMzRDk7U1FVQVJFIFBQTTtTbzswO0w7PHNxdWFyZT4gMDA1MCAwMDUwIDAwNEQ7Ozs7TjtTUVVBUkVEIFBQTTs7OzsKKzMzREE7U1FVQVJFIFBSO1NvOzA7TDs8c3F1YXJlPiAwMDUwIDAwNTI7Ozs7TjtTUVVBUkVEIFBSOzs7OworMzNEQjtTUVVBUkUgU1I7U287MDtMOzxzcXVhcmU+IDAwNzMgMDA3Mjs7OztOO1NRVUFSRUQgU1I7Ozs7CiszM0RDO1NRVUFSRSBTVjtTbzswO0w7PHNxdWFyZT4gMDA1MyAwMDc2Ozs7O047U1FVQVJFRCBTVjs7OzsKKzMzREQ7U1FVQVJFIFdCO1NvOzA7TDs8c3F1YXJlPiAwMDU3IDAwNjI7Ozs7TjtTUVVBUkVEIFdCOzs7OworMzNFMDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgT05FO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDY1RTU7Ozs7Tjs7Ozs7CiszM0UxO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUV087U287MDtMOzxjb21wYXQ+IDAwMzIgNjVFNTs7OztOOzs7OzsKKzMzRTI7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRIUkVFO1NvOzA7TDs8Y29tcGF0PiAwMDMzIDY1RTU7Ozs7Tjs7Ozs7CiszM0UzO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBGT1VSO1NvOzA7TDs8Y29tcGF0PiAwMDM0IDY1RTU7Ozs7Tjs7Ozs7CiszM0U0O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBGSVZFO1NvOzA7TDs8Y29tcGF0PiAwMDM1IDY1RTU7Ozs7Tjs7Ozs7CiszM0U1O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBTSVg7U287MDtMOzxjb21wYXQ+IDAwMzYgNjVFNTs7OztOOzs7OzsKKzMzRTY7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFNFVkVOO1NvOzA7TDs8Y29tcGF0PiAwMDM3IDY1RTU7Ozs7Tjs7Ozs7CiszM0U3O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBFSUdIVDtTbzswO0w7PGNvbXBhdD4gMDAzOCA2NUU1Ozs7O047Ozs7OworMzNFODtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgTklORTtTbzswO0w7PGNvbXBhdD4gMDAzOSA2NUU1Ozs7O047Ozs7OworMzNFOTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVEVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzAgNjVFNTs7OztOOzs7OzsKKzMzRUE7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIEVMRVZFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDMxIDY1RTU7Ozs7Tjs7Ozs7CiszM0VCO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUV0VMVkU7U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzMiA2NUU1Ozs7O047Ozs7OworMzNFQztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVEhJUlRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzMyA2NUU1Ozs7O047Ozs7OworMzNFRDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgRk9VUlRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzNCA2NUU1Ozs7O047Ozs7OworMzNFRTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgRklGVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDM1IDY1RTU7Ozs7Tjs7Ozs7CiszM0VGO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBTSVhURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzYgNjVFNTs7OztOOzs7OzsKKzMzRjA7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFNFVkVOVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDM3IDY1RTU7Ozs7Tjs7Ozs7CiszM0YxO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBFSUdIVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDM4IDY1RTU7Ozs7Tjs7Ozs7CiszM0YyO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBOSU5FVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDM5IDY1RTU7Ozs7Tjs7Ozs7CiszM0YzO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUV0VOVFk7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzMCA2NUU1Ozs7O047Ozs7OworMzNGNDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZLU9ORTtTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDMxIDY1RTU7Ozs7Tjs7Ozs7CiszM0Y1O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUV0VOVFktVFdPO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzIgNjVFNTs7OztOOzs7OzsKKzMzRjY7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRXRU5UWS1USFJFRTtTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDMzIDY1RTU7Ozs7Tjs7Ozs7CiszM0Y3O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUV0VOVFktRk9VUjtTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDM0IDY1RTU7Ozs7Tjs7Ozs7CiszM0Y4O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUV0VOVFktRklWRTtTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDM1IDY1RTU7Ozs7Tjs7Ozs7CiszM0Y5O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUV0VOVFktU0lYO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzYgNjVFNTs7OztOOzs7OzsKKzMzRkE7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRXRU5UWS1TRVZFTjtTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDM3IDY1RTU7Ozs7Tjs7Ozs7CiszM0ZCO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUV0VOVFktRUlHSFQ7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzOCA2NUU1Ozs7O047Ozs7OworMzNGQztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZLU5JTkU7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzOSA2NUU1Ozs7O047Ozs7OworMzNGRDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVEhJUlRZO1NvOzA7TDs8Y29tcGF0PiAwMDMzIDAwMzAgNjVFNTs7OztOOzs7OzsKKzMzRkU7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRISVJUWS1PTkU7U287MDtMOzxjb21wYXQ+IDAwMzMgMDAzMSA2NUU1Ozs7O047Ozs7OworMzQwMDs8Q0pLIElkZW9ncmFwaCBFeHRlbnNpb24gQSwgRmlyc3Q+O0xvOzA7TDs7Ozs7Tjs7Ozs7Cis0REI1OzxDSksgSWRlb2dyYXBoIEV4dGVuc2lvbiBBLCBMYXN0PjtMbzswO0w7Ozs7O047Ozs7OworNEUwMDs8Q0pLIElkZW9ncmFwaCwgRmlyc3Q+O0xvOzA7TDs7Ozs7Tjs7Ozs7Cis5RkE1OzxDSksgSWRlb2dyYXBoLCBMYXN0PjtMbzswO0w7Ozs7O047Ozs7OworQTAwMDtZSSBTWUxMQUJMRSBJVDtMbzswO0w7Ozs7O047Ozs7OworQTAwMTtZSSBTWUxMQUJMRSBJWDtMbzswO0w7Ozs7O047Ozs7OworQTAwMjtZSSBTWUxMQUJMRSBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDAzO1lJIFNZTExBQkxFIElQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDA0O1lJIFNZTExBQkxFIElFVDtMbzswO0w7Ozs7O047Ozs7OworQTAwNTtZSSBTWUxMQUJMRSBJRVg7TG87MDtMOzs7OztOOzs7OzsKK0EwMDY7WUkgU1lMTEFCTEUgSUU7TG87MDtMOzs7OztOOzs7OzsKK0EwMDc7WUkgU1lMTEFCTEUgSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDA4O1lJIFNZTExBQkxFIEFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDA5O1lJIFNZTExBQkxFIEFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDBBO1lJIFNZTExBQkxFIEE7TG87MDtMOzs7OztOOzs7OzsKK0EwMEI7WUkgU1lMTEFCTEUgQVA7TG87MDtMOzs7OztOOzs7OzsKK0EwMEM7WUkgU1lMTEFCTEUgVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDBEO1lJIFNZTExBQkxFIFVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDBFO1lJIFNZTExBQkxFIFVPUDtMbzswO0w7Ozs7O047Ozs7OworQTAwRjtZSSBTWUxMQUJMRSBPVDtMbzswO0w7Ozs7O047Ozs7OworQTAxMDtZSSBTWUxMQUJMRSBPWDtMbzswO0w7Ozs7O047Ozs7OworQTAxMTtZSSBTWUxMQUJMRSBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDEyO1lJIFNZTExBQkxFIE9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDEzO1lJIFNZTExBQkxFIEVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDE0O1lJIFNZTExBQkxFIEU7TG87MDtMOzs7OztOOzs7OzsKK0EwMTU7WUkgU1lMTEFCTEUgV1U7TG87MDtMOzs7OztOOzs7OzsKK0EwMTY7WUkgU1lMTEFCTEUgQklUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDE3O1lJIFNZTExBQkxFIEJJWDtMbzswO0w7Ozs7O047Ozs7OworQTAxODtZSSBTWUxMQUJMRSBCSTtMbzswO0w7Ozs7O047Ozs7OworQTAxOTtZSSBTWUxMQUJMRSBCSVA7TG87MDtMOzs7OztOOzs7OzsKK0EwMUE7WUkgU1lMTEFCTEUgQklFVDtMbzswO0w7Ozs7O047Ozs7OworQTAxQjtZSSBTWUxMQUJMRSBCSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDFDO1lJIFNZTExBQkxFIEJJRTtMbzswO0w7Ozs7O047Ozs7OworQTAxRDtZSSBTWUxMQUJMRSBCSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDFFO1lJIFNZTExBQkxFIEJBVDtMbzswO0w7Ozs7O047Ozs7OworQTAxRjtZSSBTWUxMQUJMRSBCQVg7TG87MDtMOzs7OztOOzs7OzsKK0EwMjA7WUkgU1lMTEFCTEUgQkE7TG87MDtMOzs7OztOOzs7OzsKK0EwMjE7WUkgU1lMTEFCTEUgQkFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDIyO1lJIFNZTExBQkxFIEJVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EwMjM7WUkgU1lMTEFCTEUgQlVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDI0O1lJIFNZTExBQkxFIEJVT1A7TG87MDtMOzs7OztOOzs7OzsKK0EwMjU7WUkgU1lMTEFCTEUgQk9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDI2O1lJIFNZTExBQkxFIEJPWDtMbzswO0w7Ozs7O047Ozs7OworQTAyNztZSSBTWUxMQUJMRSBCTztMbzswO0w7Ozs7O047Ozs7OworQTAyODtZSSBTWUxMQUJMRSBCT1A7TG87MDtMOzs7OztOOzs7OzsKK0EwMjk7WUkgU1lMTEFCTEUgQkVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDJBO1lJIFNZTExBQkxFIEJFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDJCO1lJIFNZTExBQkxFIEJFUDtMbzswO0w7Ozs7O047Ozs7OworQTAyQztZSSBTWUxMQUJMRSBCVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwMkQ7WUkgU1lMTEFCTEUgQlVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDJFO1lJIFNZTExBQkxFIEJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDJGO1lJIFNZTExBQkxFIEJVUDtMbzswO0w7Ozs7O047Ozs7OworQTAzMDtZSSBTWUxMQUJMRSBCVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDMxO1lJIFNZTExBQkxFIEJVUjtMbzswO0w7Ozs7O047Ozs7OworQTAzMjtZSSBTWUxMQUJMRSBCWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwMzM7WUkgU1lMTEFCTEUgQllYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDM0O1lJIFNZTExBQkxFIEJZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDM1O1lJIFNZTExBQkxFIEJZUDtMbzswO0w7Ozs7O047Ozs7OworQTAzNjtZSSBTWUxMQUJMRSBCWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDM3O1lJIFNZTExBQkxFIEJZUjtMbzswO0w7Ozs7O047Ozs7OworQTAzODtZSSBTWUxMQUJMRSBQSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwMzk7WUkgU1lMTEFCTEUgUElYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDNBO1lJIFNZTExBQkxFIFBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDNCO1lJIFNZTExBQkxFIFBJUDtMbzswO0w7Ozs7O047Ozs7OworQTAzQztZSSBTWUxMQUJMRSBQSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDNEO1lJIFNZTExBQkxFIFBJRTtMbzswO0w7Ozs7O047Ozs7OworQTAzRTtZSSBTWUxMQUJMRSBQSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDNGO1lJIFNZTExBQkxFIFBBVDtMbzswO0w7Ozs7O047Ozs7OworQTA0MDtZSSBTWUxMQUJMRSBQQVg7TG87MDtMOzs7OztOOzs7OzsKK0EwNDE7WUkgU1lMTEFCTEUgUEE7TG87MDtMOzs7OztOOzs7OzsKK0EwNDI7WUkgU1lMTEFCTEUgUEFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDQzO1lJIFNZTExBQkxFIFBVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EwNDQ7WUkgU1lMTEFCTEUgUFVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDQ1O1lJIFNZTExBQkxFIFBVT1A7TG87MDtMOzs7OztOOzs7OzsKK0EwNDY7WUkgU1lMTEFCTEUgUE9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDQ3O1lJIFNZTExBQkxFIFBPWDtMbzswO0w7Ozs7O047Ozs7OworQTA0ODtZSSBTWUxMQUJMRSBQTztMbzswO0w7Ozs7O047Ozs7OworQTA0OTtZSSBTWUxMQUJMRSBQT1A7TG87MDtMOzs7OztOOzs7OzsKK0EwNEE7WUkgU1lMTEFCTEUgUFVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDRCO1lJIFNZTExBQkxFIFBVWDtMbzswO0w7Ozs7O047Ozs7OworQTA0QztZSSBTWUxMQUJMRSBQVTtMbzswO0w7Ozs7O047Ozs7OworQTA0RDtZSSBTWUxMQUJMRSBQVVA7TG87MDtMOzs7OztOOzs7OzsKK0EwNEU7WUkgU1lMTEFCTEUgUFVSWDtMbzswO0w7Ozs7O047Ozs7OworQTA0RjtZSSBTWUxMQUJMRSBQVVI7TG87MDtMOzs7OztOOzs7OzsKK0EwNTA7WUkgU1lMTEFCTEUgUFlUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDUxO1lJIFNZTExBQkxFIFBZWDtMbzswO0w7Ozs7O047Ozs7OworQTA1MjtZSSBTWUxMQUJMRSBQWTtMbzswO0w7Ozs7O047Ozs7OworQTA1MztZSSBTWUxMQUJMRSBQWVA7TG87MDtMOzs7OztOOzs7OzsKK0EwNTQ7WUkgU1lMTEFCTEUgUFlSWDtMbzswO0w7Ozs7O047Ozs7OworQTA1NTtZSSBTWUxMQUJMRSBQWVI7TG87MDtMOzs7OztOOzs7OzsKK0EwNTY7WUkgU1lMTEFCTEUgQkJJVDtMbzswO0w7Ozs7O047Ozs7OworQTA1NztZSSBTWUxMQUJMRSBCQklYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDU4O1lJIFNZTExBQkxFIEJCSTtMbzswO0w7Ozs7O047Ozs7OworQTA1OTtZSSBTWUxMQUJMRSBCQklQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDVBO1lJIFNZTExBQkxFIEJCSUVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDVCO1lJIFNZTExBQkxFIEJCSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDVDO1lJIFNZTExBQkxFIEJCSUU7TG87MDtMOzs7OztOOzs7OzsKK0EwNUQ7WUkgU1lMTEFCTEUgQkJJRVA7TG87MDtMOzs7OztOOzs7OzsKK0EwNUU7WUkgU1lMTEFCTEUgQkJBVDtMbzswO0w7Ozs7O047Ozs7OworQTA1RjtZSSBTWUxMQUJMRSBCQkFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDYwO1lJIFNZTExBQkxFIEJCQTtMbzswO0w7Ozs7O047Ozs7OworQTA2MTtZSSBTWUxMQUJMRSBCQkFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDYyO1lJIFNZTExBQkxFIEJCVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDYzO1lJIFNZTExBQkxFIEJCVU87TG87MDtMOzs7OztOOzs7OzsKK0EwNjQ7WUkgU1lMTEFCTEUgQkJVT1A7TG87MDtMOzs7OztOOzs7OzsKK0EwNjU7WUkgU1lMTEFCTEUgQkJPVDtMbzswO0w7Ozs7O047Ozs7OworQTA2NjtZSSBTWUxMQUJMRSBCQk9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDY3O1lJIFNZTExBQkxFIEJCTztMbzswO0w7Ozs7O047Ozs7OworQTA2ODtZSSBTWUxMQUJMRSBCQk9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDY5O1lJIFNZTExBQkxFIEJCRVg7TG87MDtMOzs7OztOOzs7OzsKK0EwNkE7WUkgU1lMTEFCTEUgQkJFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDZCO1lJIFNZTExBQkxFIEJCRVA7TG87MDtMOzs7OztOOzs7OzsKK0EwNkM7WUkgU1lMTEFCTEUgQkJVVDtMbzswO0w7Ozs7O047Ozs7OworQTA2RDtZSSBTWUxMQUJMRSBCQlVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDZFO1lJIFNZTExBQkxFIEJCVTtMbzswO0w7Ozs7O047Ozs7OworQTA2RjtZSSBTWUxMQUJMRSBCQlVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDcwO1lJIFNZTExBQkxFIEJCVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDcxO1lJIFNZTExBQkxFIEJCVVI7TG87MDtMOzs7OztOOzs7OzsKK0EwNzI7WUkgU1lMTEFCTEUgQkJZVDtMbzswO0w7Ozs7O047Ozs7OworQTA3MztZSSBTWUxMQUJMRSBCQllYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDc0O1lJIFNZTExBQkxFIEJCWTtMbzswO0w7Ozs7O047Ozs7OworQTA3NTtZSSBTWUxMQUJMRSBCQllQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDc2O1lJIFNZTExBQkxFIE5CSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwNzc7WUkgU1lMTEFCTEUgTkJJWDtMbzswO0w7Ozs7O047Ozs7OworQTA3ODtZSSBTWUxMQUJMRSBOQkk7TG87MDtMOzs7OztOOzs7OzsKK0EwNzk7WUkgU1lMTEFCTEUgTkJJUDtMbzswO0w7Ozs7O047Ozs7OworQTA3QTtZSSBTWUxMQUJMRSBOQklFWDtMbzswO0w7Ozs7O047Ozs7OworQTA3QjtZSSBTWUxMQUJMRSBOQklFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDdDO1lJIFNZTExBQkxFIE5CSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDdEO1lJIFNZTExBQkxFIE5CQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwN0U7WUkgU1lMTEFCTEUgTkJBWDtMbzswO0w7Ozs7O047Ozs7OworQTA3RjtZSSBTWUxMQUJMRSBOQkE7TG87MDtMOzs7OztOOzs7OzsKK0EwODA7WUkgU1lMTEFCTEUgTkJBUDtMbzswO0w7Ozs7O047Ozs7OworQTA4MTtZSSBTWUxMQUJMRSBOQk9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDgyO1lJIFNZTExBQkxFIE5CT1g7TG87MDtMOzs7OztOOzs7OzsKK0EwODM7WUkgU1lMTEFCTEUgTkJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDg0O1lJIFNZTExBQkxFIE5CT1A7TG87MDtMOzs7OztOOzs7OzsKK0EwODU7WUkgU1lMTEFCTEUgTkJVVDtMbzswO0w7Ozs7O047Ozs7OworQTA4NjtZSSBTWUxMQUJMRSBOQlVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDg3O1lJIFNZTExBQkxFIE5CVTtMbzswO0w7Ozs7O047Ozs7OworQTA4ODtZSSBTWUxMQUJMRSBOQlVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDg5O1lJIFNZTExBQkxFIE5CVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDhBO1lJIFNZTExBQkxFIE5CVVI7TG87MDtMOzs7OztOOzs7OzsKK0EwOEI7WUkgU1lMTEFCTEUgTkJZVDtMbzswO0w7Ozs7O047Ozs7OworQTA4QztZSSBTWUxMQUJMRSBOQllYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDhEO1lJIFNZTExBQkxFIE5CWTtMbzswO0w7Ozs7O047Ozs7OworQTA4RTtZSSBTWUxMQUJMRSBOQllQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDhGO1lJIFNZTExBQkxFIE5CWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDkwO1lJIFNZTExBQkxFIE5CWVI7TG87MDtMOzs7OztOOzs7OzsKK0EwOTE7WUkgU1lMTEFCTEUgSE1JVDtMbzswO0w7Ozs7O047Ozs7OworQTA5MjtZSSBTWUxMQUJMRSBITUlYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDkzO1lJIFNZTExBQkxFIEhNSTtMbzswO0w7Ozs7O047Ozs7OworQTA5NDtZSSBTWUxMQUJMRSBITUlQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDk1O1lJIFNZTExBQkxFIEhNSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDk2O1lJIFNZTExBQkxFIEhNSUU7TG87MDtMOzs7OztOOzs7OzsKK0EwOTc7WUkgU1lMTEFCTEUgSE1JRVA7TG87MDtMOzs7OztOOzs7OzsKK0EwOTg7WUkgU1lMTEFCTEUgSE1BVDtMbzswO0w7Ozs7O047Ozs7OworQTA5OTtZSSBTWUxMQUJMRSBITUFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDlBO1lJIFNZTExBQkxFIEhNQTtMbzswO0w7Ozs7O047Ozs7OworQTA5QjtZSSBTWUxMQUJMRSBITUFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDlDO1lJIFNZTExBQkxFIEhNVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDlEO1lJIFNZTExBQkxFIEhNVU87TG87MDtMOzs7OztOOzs7OzsKK0EwOUU7WUkgU1lMTEFCTEUgSE1VT1A7TG87MDtMOzs7OztOOzs7OzsKK0EwOUY7WUkgU1lMTEFCTEUgSE1PVDtMbzswO0w7Ozs7O047Ozs7OworQTBBMDtZSSBTWUxMQUJMRSBITU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEExO1lJIFNZTExBQkxFIEhNTztMbzswO0w7Ozs7O047Ozs7OworQTBBMjtZSSBTWUxMQUJMRSBITU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEEzO1lJIFNZTExBQkxFIEhNVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwQTQ7WUkgU1lMTEFCTEUgSE1VWDtMbzswO0w7Ozs7O047Ozs7OworQTBBNTtZSSBTWUxMQUJMRSBITVU7TG87MDtMOzs7OztOOzs7OzsKK0EwQTY7WUkgU1lMTEFCTEUgSE1VUDtMbzswO0w7Ozs7O047Ozs7OworQTBBNztZSSBTWUxMQUJMRSBITVVSWDtMbzswO0w7Ozs7O047Ozs7OworQTBBODtZSSBTWUxMQUJMRSBITVVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEE5O1lJIFNZTExBQkxFIEhNWVg7TG87MDtMOzs7OztOOzs7OzsKK0EwQUE7WUkgU1lMTEFCTEUgSE1ZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEFCO1lJIFNZTExBQkxFIEhNWVA7TG87MDtMOzs7OztOOzs7OzsKK0EwQUM7WUkgU1lMTEFCTEUgSE1ZUlg7TG87MDtMOzs7OztOOzs7OzsKK0EwQUQ7WUkgU1lMTEFCTEUgSE1ZUjtMbzswO0w7Ozs7O047Ozs7OworQTBBRTtZSSBTWUxMQUJMRSBNSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwQUY7WUkgU1lMTEFCTEUgTUlYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEIwO1lJIFNZTExBQkxFIE1JO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEIxO1lJIFNZTExBQkxFIE1JUDtMbzswO0w7Ozs7O047Ozs7OworQTBCMjtZSSBTWUxMQUJMRSBNSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEIzO1lJIFNZTExBQkxFIE1JRTtMbzswO0w7Ozs7O047Ozs7OworQTBCNDtZSSBTWUxMQUJMRSBNSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEI1O1lJIFNZTExBQkxFIE1BVDtMbzswO0w7Ozs7O047Ozs7OworQTBCNjtZSSBTWUxMQUJMRSBNQVg7TG87MDtMOzs7OztOOzs7OzsKK0EwQjc7WUkgU1lMTEFCTEUgTUE7TG87MDtMOzs7OztOOzs7OzsKK0EwQjg7WUkgU1lMTEFCTEUgTUFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEI5O1lJIFNZTExBQkxFIE1VT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EwQkE7WUkgU1lMTEFCTEUgTVVPWDtMbzswO0w7Ozs7O047Ozs7OworQTBCQjtZSSBTWUxMQUJMRSBNVU87TG87MDtMOzs7OztOOzs7OzsKK0EwQkM7WUkgU1lMTEFCTEUgTVVPUDtMbzswO0w7Ozs7O047Ozs7OworQTBCRDtZSSBTWUxMQUJMRSBNT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EwQkU7WUkgU1lMTEFCTEUgTU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEJGO1lJIFNZTExBQkxFIE1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEMwO1lJIFNZTExBQkxFIE1PUDtMbzswO0w7Ozs7O047Ozs7OworQTBDMTtZSSBTWUxMQUJMRSBNRVg7TG87MDtMOzs7OztOOzs7OzsKK0EwQzI7WUkgU1lMTEFCTEUgTUU7TG87MDtMOzs7OztOOzs7OzsKK0EwQzM7WUkgU1lMTEFCTEUgTVVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEM0O1lJIFNZTExBQkxFIE1VWDtMbzswO0w7Ozs7O047Ozs7OworQTBDNTtZSSBTWUxMQUJMRSBNVTtMbzswO0w7Ozs7O047Ozs7OworQTBDNjtZSSBTWUxMQUJMRSBNVVA7TG87MDtMOzs7OztOOzs7OzsKK0EwQzc7WUkgU1lMTEFCTEUgTVVSWDtMbzswO0w7Ozs7O047Ozs7OworQTBDODtZSSBTWUxMQUJMRSBNVVI7TG87MDtMOzs7OztOOzs7OzsKK0EwQzk7WUkgU1lMTEFCTEUgTVlUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMENBO1lJIFNZTExBQkxFIE1ZWDtMbzswO0w7Ozs7O047Ozs7OworQTBDQjtZSSBTWUxMQUJMRSBNWTtMbzswO0w7Ozs7O047Ozs7OworQTBDQztZSSBTWUxMQUJMRSBNWVA7TG87MDtMOzs7OztOOzs7OzsKK0EwQ0Q7WUkgU1lMTEFCTEUgRklUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMENFO1lJIFNZTExBQkxFIEZJWDtMbzswO0w7Ozs7O047Ozs7OworQTBDRjtZSSBTWUxMQUJMRSBGSTtMbzswO0w7Ozs7O047Ozs7OworQTBEMDtZSSBTWUxMQUJMRSBGSVA7TG87MDtMOzs7OztOOzs7OzsKK0EwRDE7WUkgU1lMTEFCTEUgRkFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEQyO1lJIFNZTExBQkxFIEZBWDtMbzswO0w7Ozs7O047Ozs7OworQTBEMztZSSBTWUxMQUJMRSBGQTtMbzswO0w7Ozs7O047Ozs7OworQTBENDtZSSBTWUxMQUJMRSBGQVA7TG87MDtMOzs7OztOOzs7OzsKK0EwRDU7WUkgU1lMTEFCTEUgRk9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEQ2O1lJIFNZTExBQkxFIEZPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEQ3O1lJIFNZTExBQkxFIEZPUDtMbzswO0w7Ozs7O047Ozs7OworQTBEODtZSSBTWUxMQUJMRSBGVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwRDk7WUkgU1lMTEFCTEUgRlVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMERBO1lJIFNZTExBQkxFIEZVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMERCO1lJIFNZTExBQkxFIEZVUDtMbzswO0w7Ozs7O047Ozs7OworQTBEQztZSSBTWUxMQUJMRSBGVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEREO1lJIFNZTExBQkxFIEZVUjtMbzswO0w7Ozs7O047Ozs7OworQTBERTtZSSBTWUxMQUJMRSBGWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwREY7WUkgU1lMTEFCTEUgRllYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEUwO1lJIFNZTExBQkxFIEZZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEUxO1lJIFNZTExBQkxFIEZZUDtMbzswO0w7Ozs7O047Ozs7OworQTBFMjtZSSBTWUxMQUJMRSBWSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwRTM7WUkgU1lMTEFCTEUgVklYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEU0O1lJIFNZTExBQkxFIFZJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEU1O1lJIFNZTExBQkxFIFZJUDtMbzswO0w7Ozs7O047Ozs7OworQTBFNjtZSSBTWUxMQUJMRSBWSUVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEU3O1lJIFNZTExBQkxFIFZJRVg7TG87MDtMOzs7OztOOzs7OzsKK0EwRTg7WUkgU1lMTEFCTEUgVklFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEU5O1lJIFNZTExBQkxFIFZJRVA7TG87MDtMOzs7OztOOzs7OzsKK0EwRUE7WUkgU1lMTEFCTEUgVkFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEVCO1lJIFNZTExBQkxFIFZBWDtMbzswO0w7Ozs7O047Ozs7OworQTBFQztZSSBTWUxMQUJMRSBWQTtMbzswO0w7Ozs7O047Ozs7OworQTBFRDtZSSBTWUxMQUJMRSBWQVA7TG87MDtMOzs7OztOOzs7OzsKK0EwRUU7WUkgU1lMTEFCTEUgVk9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEVGO1lJIFNZTExBQkxFIFZPWDtMbzswO0w7Ozs7O047Ozs7OworQTBGMDtZSSBTWUxMQUJMRSBWTztMbzswO0w7Ozs7O047Ozs7OworQTBGMTtZSSBTWUxMQUJMRSBWT1A7TG87MDtMOzs7OztOOzs7OzsKK0EwRjI7WUkgU1lMTEFCTEUgVkVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEYzO1lJIFNZTExBQkxFIFZFUDtMbzswO0w7Ozs7O047Ozs7OworQTBGNDtZSSBTWUxMQUJMRSBWVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwRjU7WUkgU1lMTEFCTEUgVlVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEY2O1lJIFNZTExBQkxFIFZVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEY3O1lJIFNZTExBQkxFIFZVUDtMbzswO0w7Ozs7O047Ozs7OworQTBGODtZSSBTWUxMQUJMRSBWVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEY5O1lJIFNZTExBQkxFIFZVUjtMbzswO0w7Ozs7O047Ozs7OworQTBGQTtZSSBTWUxMQUJMRSBWWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwRkI7WUkgU1lMTEFCTEUgVllYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEZDO1lJIFNZTExBQkxFIFZZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEZEO1lJIFNZTExBQkxFIFZZUDtMbzswO0w7Ozs7O047Ozs7OworQTBGRTtZSSBTWUxMQUJMRSBWWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEZGO1lJIFNZTExBQkxFIFZZUjtMbzswO0w7Ozs7O047Ozs7OworQTEwMDtZSSBTWUxMQUJMRSBESVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExMDE7WUkgU1lMTEFCTEUgRElYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTAyO1lJIFNZTExBQkxFIERJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTAzO1lJIFNZTExBQkxFIERJUDtMbzswO0w7Ozs7O047Ozs7OworQTEwNDtZSSBTWUxMQUJMRSBESUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTA1O1lJIFNZTExBQkxFIERJRTtMbzswO0w7Ozs7O047Ozs7OworQTEwNjtZSSBTWUxMQUJMRSBESUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTA3O1lJIFNZTExBQkxFIERBVDtMbzswO0w7Ozs7O047Ozs7OworQTEwODtZSSBTWUxMQUJMRSBEQVg7TG87MDtMOzs7OztOOzs7OzsKK0ExMDk7WUkgU1lMTEFCTEUgREE7TG87MDtMOzs7OztOOzs7OzsKK0ExMEE7WUkgU1lMTEFCTEUgREFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTBCO1lJIFNZTExBQkxFIERVT1g7TG87MDtMOzs7OztOOzs7OzsKK0ExMEM7WUkgU1lMTEFCTEUgRFVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTBEO1lJIFNZTExBQkxFIERPVDtMbzswO0w7Ozs7O047Ozs7OworQTEwRTtZSSBTWUxMQUJMRSBET1g7TG87MDtMOzs7OztOOzs7OzsKK0ExMEY7WUkgU1lMTEFCTEUgRE87TG87MDtMOzs7OztOOzs7OzsKK0ExMTA7WUkgU1lMTEFCTEUgRE9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTExO1lJIFNZTExBQkxFIERFWDtMbzswO0w7Ozs7O047Ozs7OworQTExMjtZSSBTWUxMQUJMRSBERTtMbzswO0w7Ozs7O047Ozs7OworQTExMztZSSBTWUxMQUJMRSBERVA7TG87MDtMOzs7OztOOzs7OzsKK0ExMTQ7WUkgU1lMTEFCTEUgRFVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTE1O1lJIFNZTExBQkxFIERVWDtMbzswO0w7Ozs7O047Ozs7OworQTExNjtZSSBTWUxMQUJMRSBEVTtMbzswO0w7Ozs7O047Ozs7OworQTExNztZSSBTWUxMQUJMRSBEVVA7TG87MDtMOzs7OztOOzs7OzsKK0ExMTg7WUkgU1lMTEFCTEUgRFVSWDtMbzswO0w7Ozs7O047Ozs7OworQTExOTtZSSBTWUxMQUJMRSBEVVI7TG87MDtMOzs7OztOOzs7OzsKK0ExMUE7WUkgU1lMTEFCTEUgVElUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTFCO1lJIFNZTExBQkxFIFRJWDtMbzswO0w7Ozs7O047Ozs7OworQTExQztZSSBTWUxMQUJMRSBUSTtMbzswO0w7Ozs7O047Ozs7OworQTExRDtZSSBTWUxMQUJMRSBUSVA7TG87MDtMOzs7OztOOzs7OzsKK0ExMUU7WUkgU1lMTEFCTEUgVElFWDtMbzswO0w7Ozs7O047Ozs7OworQTExRjtZSSBTWUxMQUJMRSBUSUU7TG87MDtMOzs7OztOOzs7OzsKK0ExMjA7WUkgU1lMTEFCTEUgVElFUDtMbzswO0w7Ozs7O047Ozs7OworQTEyMTtZSSBTWUxMQUJMRSBUQVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExMjI7WUkgU1lMTEFCTEUgVEFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTIzO1lJIFNZTExBQkxFIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTI0O1lJIFNZTExBQkxFIFRBUDtMbzswO0w7Ozs7O047Ozs7OworQTEyNTtZSSBTWUxMQUJMRSBUVU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTI2O1lJIFNZTExBQkxFIFRVT1g7TG87MDtMOzs7OztOOzs7OzsKK0ExMjc7WUkgU1lMTEFCTEUgVFVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTI4O1lJIFNZTExBQkxFIFRVT1A7TG87MDtMOzs7OztOOzs7OzsKK0ExMjk7WUkgU1lMTEFCTEUgVE9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTJBO1lJIFNZTExBQkxFIFRPWDtMbzswO0w7Ozs7O047Ozs7OworQTEyQjtZSSBTWUxMQUJMRSBUTztMbzswO0w7Ozs7O047Ozs7OworQTEyQztZSSBTWUxMQUJMRSBUT1A7TG87MDtMOzs7OztOOzs7OzsKK0ExMkQ7WUkgU1lMTEFCTEUgVEVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTJFO1lJIFNZTExBQkxFIFRFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTJGO1lJIFNZTExBQkxFIFRFUDtMbzswO0w7Ozs7O047Ozs7OworQTEzMDtZSSBTWUxMQUJMRSBUVVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExMzE7WUkgU1lMTEFCTEUgVFVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTMyO1lJIFNZTExBQkxFIFRVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTMzO1lJIFNZTExBQkxFIFRVUDtMbzswO0w7Ozs7O047Ozs7OworQTEzNDtZSSBTWUxMQUJMRSBUVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTM1O1lJIFNZTExBQkxFIFRVUjtMbzswO0w7Ozs7O047Ozs7OworQTEzNjtZSSBTWUxMQUJMRSBERElUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTM3O1lJIFNZTExBQkxFIERESVg7TG87MDtMOzs7OztOOzs7OzsKK0ExMzg7WUkgU1lMTEFCTEUgRERJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTM5O1lJIFNZTExBQkxFIERESVA7TG87MDtMOzs7OztOOzs7OzsKK0ExM0E7WUkgU1lMTEFCTEUgRERJRVg7TG87MDtMOzs7OztOOzs7OzsKK0ExM0I7WUkgU1lMTEFCTEUgRERJRTtMbzswO0w7Ozs7O047Ozs7OworQTEzQztZSSBTWUxMQUJMRSBERElFUDtMbzswO0w7Ozs7O047Ozs7OworQTEzRDtZSSBTWUxMQUJMRSBEREFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTNFO1lJIFNZTExBQkxFIEREQVg7TG87MDtMOzs7OztOOzs7OzsKK0ExM0Y7WUkgU1lMTEFCTEUgRERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTQwO1lJIFNZTExBQkxFIEREQVA7TG87MDtMOzs7OztOOzs7OzsKK0ExNDE7WUkgU1lMTEFCTEUgRERVT1g7TG87MDtMOzs7OztOOzs7OzsKK0ExNDI7WUkgU1lMTEFCTEUgRERVTztMbzswO0w7Ozs7O047Ozs7OworQTE0MztZSSBTWUxMQUJMRSBERFVPUDtMbzswO0w7Ozs7O047Ozs7OworQTE0NDtZSSBTWUxMQUJMRSBERE9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTQ1O1lJIFNZTExBQkxFIERET1g7TG87MDtMOzs7OztOOzs7OzsKK0ExNDY7WUkgU1lMTEFCTEUgRERPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTQ3O1lJIFNZTExBQkxFIERET1A7TG87MDtMOzs7OztOOzs7OzsKK0ExNDg7WUkgU1lMTEFCTEUgRERFWDtMbzswO0w7Ozs7O047Ozs7OworQTE0OTtZSSBTWUxMQUJMRSBEREU7TG87MDtMOzs7OztOOzs7OzsKK0ExNEE7WUkgU1lMTEFCTEUgRERFUDtMbzswO0w7Ozs7O047Ozs7OworQTE0QjtZSSBTWUxMQUJMRSBERFVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTRDO1lJIFNZTExBQkxFIEREVVg7TG87MDtMOzs7OztOOzs7OzsKK0ExNEQ7WUkgU1lMTEFCTEUgRERVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTRFO1lJIFNZTExBQkxFIEREVVA7TG87MDtMOzs7OztOOzs7OzsKK0ExNEY7WUkgU1lMTEFCTEUgRERVUlg7TG87MDtMOzs7OztOOzs7OzsKK0ExNTA7WUkgU1lMTEFCTEUgRERVUjtMbzswO0w7Ozs7O047Ozs7OworQTE1MTtZSSBTWUxMQUJMRSBORElUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTUyO1lJIFNZTExBQkxFIE5ESVg7TG87MDtMOzs7OztOOzs7OzsKK0ExNTM7WUkgU1lMTEFCTEUgTkRJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTU0O1lJIFNZTExBQkxFIE5ESVA7TG87MDtMOzs7OztOOzs7OzsKK0ExNTU7WUkgU1lMTEFCTEUgTkRJRVg7TG87MDtMOzs7OztOOzs7OzsKK0ExNTY7WUkgU1lMTEFCTEUgTkRJRTtMbzswO0w7Ozs7O047Ozs7OworQTE1NztZSSBTWUxMQUJMRSBOREFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTU4O1lJIFNZTExBQkxFIE5EQVg7TG87MDtMOzs7OztOOzs7OzsKK0ExNTk7WUkgU1lMTEFCTEUgTkRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTVBO1lJIFNZTExBQkxFIE5EQVA7TG87MDtMOzs7OztOOzs7OzsKK0ExNUI7WUkgU1lMTEFCTEUgTkRPVDtMbzswO0w7Ozs7O047Ozs7OworQTE1QztZSSBTWUxMQUJMRSBORE9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTVEO1lJIFNZTExBQkxFIE5ETztMbzswO0w7Ozs7O047Ozs7OworQTE1RTtZSSBTWUxMQUJMRSBORE9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTVGO1lJIFNZTExBQkxFIE5ERVg7TG87MDtMOzs7OztOOzs7OzsKK0ExNjA7WUkgU1lMTEFCTEUgTkRFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTYxO1lJIFNZTExBQkxFIE5ERVA7TG87MDtMOzs7OztOOzs7OzsKK0ExNjI7WUkgU1lMTEFCTEUgTkRVVDtMbzswO0w7Ozs7O047Ozs7OworQTE2MztZSSBTWUxMQUJMRSBORFVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTY0O1lJIFNZTExBQkxFIE5EVTtMbzswO0w7Ozs7O047Ozs7OworQTE2NTtZSSBTWUxMQUJMRSBORFVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTY2O1lJIFNZTExBQkxFIE5EVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTY3O1lJIFNZTExBQkxFIE5EVVI7TG87MDtMOzs7OztOOzs7OzsKK0ExNjg7WUkgU1lMTEFCTEUgSE5JVDtMbzswO0w7Ozs7O047Ozs7OworQTE2OTtZSSBTWUxMQUJMRSBITklYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTZBO1lJIFNZTExBQkxFIEhOSTtMbzswO0w7Ozs7O047Ozs7OworQTE2QjtZSSBTWUxMQUJMRSBITklQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTZDO1lJIFNZTExBQkxFIEhOSUVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTZEO1lJIFNZTExBQkxFIEhOSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTZFO1lJIFNZTExBQkxFIEhOSUU7TG87MDtMOzs7OztOOzs7OzsKK0ExNkY7WUkgU1lMTEFCTEUgSE5JRVA7TG87MDtMOzs7OztOOzs7OzsKK0ExNzA7WUkgU1lMTEFCTEUgSE5BVDtMbzswO0w7Ozs7O047Ozs7OworQTE3MTtZSSBTWUxMQUJMRSBITkFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTcyO1lJIFNZTExBQkxFIEhOQTtMbzswO0w7Ozs7O047Ozs7OworQTE3MztZSSBTWUxMQUJMRSBITkFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTc0O1lJIFNZTExBQkxFIEhOVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTc1O1lJIFNZTExBQkxFIEhOVU87TG87MDtMOzs7OztOOzs7OzsKK0ExNzY7WUkgU1lMTEFCTEUgSE5PVDtMbzswO0w7Ozs7O047Ozs7OworQTE3NztZSSBTWUxMQUJMRSBITk9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTc4O1lJIFNZTExBQkxFIEhOT1A7TG87MDtMOzs7OztOOzs7OzsKK0ExNzk7WUkgU1lMTEFCTEUgSE5FWDtMbzswO0w7Ozs7O047Ozs7OworQTE3QTtZSSBTWUxMQUJMRSBITkU7TG87MDtMOzs7OztOOzs7OzsKK0ExN0I7WUkgU1lMTEFCTEUgSE5FUDtMbzswO0w7Ozs7O047Ozs7OworQTE3QztZSSBTWUxMQUJMRSBITlVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTdEO1lJIFNZTExBQkxFIE5JVDtMbzswO0w7Ozs7O047Ozs7OworQTE3RTtZSSBTWUxMQUJMRSBOSVg7TG87MDtMOzs7OztOOzs7OzsKK0ExN0Y7WUkgU1lMTEFCTEUgTkk7TG87MDtMOzs7OztOOzs7OzsKK0ExODA7WUkgU1lMTEFCTEUgTklQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTgxO1lJIFNZTExBQkxFIE5JRVg7TG87MDtMOzs7OztOOzs7OzsKK0ExODI7WUkgU1lMTEFCTEUgTklFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTgzO1lJIFNZTExBQkxFIE5JRVA7TG87MDtMOzs7OztOOzs7OzsKK0ExODQ7WUkgU1lMTEFCTEUgTkFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTg1O1lJIFNZTExBQkxFIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTg2O1lJIFNZTExBQkxFIE5BUDtMbzswO0w7Ozs7O047Ozs7OworQTE4NztZSSBTWUxMQUJMRSBOVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTg4O1lJIFNZTExBQkxFIE5VTztMbzswO0w7Ozs7O047Ozs7OworQTE4OTtZSSBTWUxMQUJMRSBOVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMThBO1lJIFNZTExBQkxFIE5PVDtMbzswO0w7Ozs7O047Ozs7OworQTE4QjtZSSBTWUxMQUJMRSBOT1g7TG87MDtMOzs7OztOOzs7OzsKK0ExOEM7WUkgU1lMTEFCTEUgTk87TG87MDtMOzs7OztOOzs7OzsKK0ExOEQ7WUkgU1lMTEFCTEUgTk9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMThFO1lJIFNZTExBQkxFIE5FWDtMbzswO0w7Ozs7O047Ozs7OworQTE4RjtZSSBTWUxMQUJMRSBORTtMbzswO0w7Ozs7O047Ozs7OworQTE5MDtZSSBTWUxMQUJMRSBORVA7TG87MDtMOzs7OztOOzs7OzsKK0ExOTE7WUkgU1lMTEFCTEUgTlVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTkyO1lJIFNZTExBQkxFIE5VWDtMbzswO0w7Ozs7O047Ozs7OworQTE5MztZSSBTWUxMQUJMRSBOVTtMbzswO0w7Ozs7O047Ozs7OworQTE5NDtZSSBTWUxMQUJMRSBOVVA7TG87MDtMOzs7OztOOzs7OzsKK0ExOTU7WUkgU1lMTEFCTEUgTlVSWDtMbzswO0w7Ozs7O047Ozs7OworQTE5NjtZSSBTWUxMQUJMRSBOVVI7TG87MDtMOzs7OztOOzs7OzsKK0ExOTc7WUkgU1lMTEFCTEUgSExJVDtMbzswO0w7Ozs7O047Ozs7OworQTE5ODtZSSBTWUxMQUJMRSBITElYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTk5O1lJIFNZTExBQkxFIEhMSTtMbzswO0w7Ozs7O047Ozs7OworQTE5QTtZSSBTWUxMQUJMRSBITElQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTlCO1lJIFNZTExBQkxFIEhMSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTlDO1lJIFNZTExBQkxFIEhMSUU7TG87MDtMOzs7OztOOzs7OzsKK0ExOUQ7WUkgU1lMTEFCTEUgSExJRVA7TG87MDtMOzs7OztOOzs7OzsKK0ExOUU7WUkgU1lMTEFCTEUgSExBVDtMbzswO0w7Ozs7O047Ozs7OworQTE5RjtZSSBTWUxMQUJMRSBITEFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUEwO1lJIFNZTExBQkxFIEhMQTtMbzswO0w7Ozs7O047Ozs7OworQTFBMTtZSSBTWUxMQUJMRSBITEFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUEyO1lJIFNZTExBQkxFIEhMVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUEzO1lJIFNZTExBQkxFIEhMVU87TG87MDtMOzs7OztOOzs7OzsKK0ExQTQ7WUkgU1lMTEFCTEUgSExVT1A7TG87MDtMOzs7OztOOzs7OzsKK0ExQTU7WUkgU1lMTEFCTEUgSExPWDtMbzswO0w7Ozs7O047Ozs7OworQTFBNjtZSSBTWUxMQUJMRSBITE87TG87MDtMOzs7OztOOzs7OzsKK0ExQTc7WUkgU1lMTEFCTEUgSExPUDtMbzswO0w7Ozs7O047Ozs7OworQTFBODtZSSBTWUxMQUJMRSBITEVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUE5O1lJIFNZTExBQkxFIEhMRTtMbzswO0w7Ozs7O047Ozs7OworQTFBQTtZSSBTWUxMQUJMRSBITEVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUFCO1lJIFNZTExBQkxFIEhMVVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExQUM7WUkgU1lMTEFCTEUgSExVWDtMbzswO0w7Ozs7O047Ozs7OworQTFBRDtZSSBTWUxMQUJMRSBITFU7TG87MDtMOzs7OztOOzs7OzsKK0ExQUU7WUkgU1lMTEFCTEUgSExVUDtMbzswO0w7Ozs7O047Ozs7OworQTFBRjtZSSBTWUxMQUJMRSBITFVSWDtMbzswO0w7Ozs7O047Ozs7OworQTFCMDtZSSBTWUxMQUJMRSBITFVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUIxO1lJIFNZTExBQkxFIEhMWVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExQjI7WUkgU1lMTEFCTEUgSExZWDtMbzswO0w7Ozs7O047Ozs7OworQTFCMztZSSBTWUxMQUJMRSBITFk7TG87MDtMOzs7OztOOzs7OzsKK0ExQjQ7WUkgU1lMTEFCTEUgSExZUDtMbzswO0w7Ozs7O047Ozs7OworQTFCNTtZSSBTWUxMQUJMRSBITFlSWDtMbzswO0w7Ozs7O047Ozs7OworQTFCNjtZSSBTWUxMQUJMRSBITFlSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUI3O1lJIFNZTExBQkxFIExJVDtMbzswO0w7Ozs7O047Ozs7OworQTFCODtZSSBTWUxMQUJMRSBMSVg7TG87MDtMOzs7OztOOzs7OzsKK0ExQjk7WUkgU1lMTEFCTEUgTEk7TG87MDtMOzs7OztOOzs7OzsKK0ExQkE7WUkgU1lMTEFCTEUgTElQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUJCO1lJIFNZTExBQkxFIExJRVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExQkM7WUkgU1lMTEFCTEUgTElFWDtMbzswO0w7Ozs7O047Ozs7OworQTFCRDtZSSBTWUxMQUJMRSBMSUU7TG87MDtMOzs7OztOOzs7OzsKK0ExQkU7WUkgU1lMTEFCTEUgTElFUDtMbzswO0w7Ozs7O047Ozs7OworQTFCRjtZSSBTWUxMQUJMRSBMQVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExQzA7WUkgU1lMTEFCTEUgTEFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUMxO1lJIFNZTExBQkxFIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUMyO1lJIFNZTExBQkxFIExBUDtMbzswO0w7Ozs7O047Ozs7OworQTFDMztZSSBTWUxMQUJMRSBMVU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUM0O1lJIFNZTExBQkxFIExVT1g7TG87MDtMOzs7OztOOzs7OzsKK0ExQzU7WUkgU1lMTEFCTEUgTFVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUM2O1lJIFNZTExBQkxFIExVT1A7TG87MDtMOzs7OztOOzs7OzsKK0ExQzc7WUkgU1lMTEFCTEUgTE9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUM4O1lJIFNZTExBQkxFIExPWDtMbzswO0w7Ozs7O047Ozs7OworQTFDOTtZSSBTWUxMQUJMRSBMTztMbzswO0w7Ozs7O047Ozs7OworQTFDQTtZSSBTWUxMQUJMRSBMT1A7TG87MDtMOzs7OztOOzs7OzsKK0ExQ0I7WUkgU1lMTEFCTEUgTEVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUNDO1lJIFNZTExBQkxFIExFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUNEO1lJIFNZTExBQkxFIExFUDtMbzswO0w7Ozs7O047Ozs7OworQTFDRTtZSSBTWUxMQUJMRSBMVVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExQ0Y7WUkgU1lMTEFCTEUgTFVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUQwO1lJIFNZTExBQkxFIExVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUQxO1lJIFNZTExBQkxFIExVUDtMbzswO0w7Ozs7O047Ozs7OworQTFEMjtZSSBTWUxMQUJMRSBMVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUQzO1lJIFNZTExBQkxFIExVUjtMbzswO0w7Ozs7O047Ozs7OworQTFENDtZSSBTWUxMQUJMRSBMWVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExRDU7WUkgU1lMTEFCTEUgTFlYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUQ2O1lJIFNZTExBQkxFIExZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUQ3O1lJIFNZTExBQkxFIExZUDtMbzswO0w7Ozs7O047Ozs7OworQTFEODtZSSBTWUxMQUJMRSBMWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUQ5O1lJIFNZTExBQkxFIExZUjtMbzswO0w7Ozs7O047Ozs7OworQTFEQTtZSSBTWUxMQUJMRSBHSVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExREI7WUkgU1lMTEFCTEUgR0lYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMURDO1lJIFNZTExBQkxFIEdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUREO1lJIFNZTExBQkxFIEdJUDtMbzswO0w7Ozs7O047Ozs7OworQTFERTtZSSBTWUxMQUJMRSBHSUVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMURGO1lJIFNZTExBQkxFIEdJRVg7TG87MDtMOzs7OztOOzs7OzsKK0ExRTA7WUkgU1lMTEFCTEUgR0lFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUUxO1lJIFNZTExBQkxFIEdJRVA7TG87MDtMOzs7OztOOzs7OzsKK0ExRTI7WUkgU1lMTEFCTEUgR0FUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUUzO1lJIFNZTExBQkxFIEdBWDtMbzswO0w7Ozs7O047Ozs7OworQTFFNDtZSSBTWUxMQUJMRSBHQTtMbzswO0w7Ozs7O047Ozs7OworQTFFNTtZSSBTWUxMQUJMRSBHQVA7TG87MDtMOzs7OztOOzs7OzsKK0ExRTY7WUkgU1lMTEFCTEUgR1VPVDtMbzswO0w7Ozs7O047Ozs7OworQTFFNztZSSBTWUxMQUJMRSBHVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUU4O1lJIFNZTExBQkxFIEdVTztMbzswO0w7Ozs7O047Ozs7OworQTFFOTtZSSBTWUxMQUJMRSBHVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUVBO1lJIFNZTExBQkxFIEdPVDtMbzswO0w7Ozs7O047Ozs7OworQTFFQjtZSSBTWUxMQUJMRSBHT1g7TG87MDtMOzs7OztOOzs7OzsKK0ExRUM7WUkgU1lMTEFCTEUgR087TG87MDtMOzs7OztOOzs7OzsKK0ExRUQ7WUkgU1lMTEFCTEUgR09QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUVFO1lJIFNZTExBQkxFIEdFVDtMbzswO0w7Ozs7O047Ozs7OworQTFFRjtZSSBTWUxMQUJMRSBHRVg7TG87MDtMOzs7OztOOzs7OzsKK0ExRjA7WUkgU1lMTEFCTEUgR0U7TG87MDtMOzs7OztOOzs7OzsKK0ExRjE7WUkgU1lMTEFCTEUgR0VQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUYyO1lJIFNZTExBQkxFIEdVVDtMbzswO0w7Ozs7O047Ozs7OworQTFGMztZSSBTWUxMQUJMRSBHVVg7TG87MDtMOzs7OztOOzs7OzsKK0ExRjQ7WUkgU1lMTEFCTEUgR1U7TG87MDtMOzs7OztOOzs7OzsKK0ExRjU7WUkgU1lMTEFCTEUgR1VQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUY2O1lJIFNZTExBQkxFIEdVUlg7TG87MDtMOzs7OztOOzs7OzsKK0ExRjc7WUkgU1lMTEFCTEUgR1VSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUY4O1lJIFNZTExBQkxFIEtJVDtMbzswO0w7Ozs7O047Ozs7OworQTFGOTtZSSBTWUxMQUJMRSBLSVg7TG87MDtMOzs7OztOOzs7OzsKK0ExRkE7WUkgU1lMTEFCTEUgS0k7TG87MDtMOzs7OztOOzs7OzsKK0ExRkI7WUkgU1lMTEFCTEUgS0lQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUZDO1lJIFNZTExBQkxFIEtJRVg7TG87MDtMOzs7OztOOzs7OzsKK0ExRkQ7WUkgU1lMTEFCTEUgS0lFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUZFO1lJIFNZTExBQkxFIEtJRVA7TG87MDtMOzs7OztOOzs7OzsKK0ExRkY7WUkgU1lMTEFCTEUgS0FUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjAwO1lJIFNZTExBQkxFIEtBWDtMbzswO0w7Ozs7O047Ozs7OworQTIwMTtZSSBTWUxMQUJMRSBLQTtMbzswO0w7Ozs7O047Ozs7OworQTIwMjtZSSBTWUxMQUJMRSBLQVA7TG87MDtMOzs7OztOOzs7OzsKK0EyMDM7WUkgU1lMTEFCTEUgS1VPWDtMbzswO0w7Ozs7O047Ozs7OworQTIwNDtZSSBTWUxMQUJMRSBLVU87TG87MDtMOzs7OztOOzs7OzsKK0EyMDU7WUkgU1lMTEFCTEUgS1VPUDtMbzswO0w7Ozs7O047Ozs7OworQTIwNjtZSSBTWUxMQUJMRSBLT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EyMDc7WUkgU1lMTEFCTEUgS09YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjA4O1lJIFNZTExBQkxFIEtPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjA5O1lJIFNZTExBQkxFIEtPUDtMbzswO0w7Ozs7O047Ozs7OworQTIwQTtZSSBTWUxMQUJMRSBLRVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyMEI7WUkgU1lMTEFCTEUgS0VYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjBDO1lJIFNZTExBQkxFIEtFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjBEO1lJIFNZTExBQkxFIEtFUDtMbzswO0w7Ozs7O047Ozs7OworQTIwRTtZSSBTWUxMQUJMRSBLVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyMEY7WUkgU1lMTEFCTEUgS1VYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjEwO1lJIFNZTExBQkxFIEtVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjExO1lJIFNZTExBQkxFIEtVUDtMbzswO0w7Ozs7O047Ozs7OworQTIxMjtZSSBTWUxMQUJMRSBLVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjEzO1lJIFNZTExBQkxFIEtVUjtMbzswO0w7Ozs7O047Ozs7OworQTIxNDtZSSBTWUxMQUJMRSBHR0lUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjE1O1lJIFNZTExBQkxFIEdHSVg7TG87MDtMOzs7OztOOzs7OzsKK0EyMTY7WUkgU1lMTEFCTEUgR0dJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjE3O1lJIFNZTExBQkxFIEdHSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjE4O1lJIFNZTExBQkxFIEdHSUU7TG87MDtMOzs7OztOOzs7OzsKK0EyMTk7WUkgU1lMTEFCTEUgR0dJRVA7TG87MDtMOzs7OztOOzs7OzsKK0EyMUE7WUkgU1lMTEFCTEUgR0dBVDtMbzswO0w7Ozs7O047Ozs7OworQTIxQjtZSSBTWUxMQUJMRSBHR0FYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjFDO1lJIFNZTExBQkxFIEdHQTtMbzswO0w7Ozs7O047Ozs7OworQTIxRDtZSSBTWUxMQUJMRSBHR0FQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjFFO1lJIFNZTExBQkxFIEdHVU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjFGO1lJIFNZTExBQkxFIEdHVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjIwO1lJIFNZTExBQkxFIEdHVU87TG87MDtMOzs7OztOOzs7OzsKK0EyMjE7WUkgU1lMTEFCTEUgR0dVT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyMjI7WUkgU1lMTEFCTEUgR0dPVDtMbzswO0w7Ozs7O047Ozs7OworQTIyMztZSSBTWUxMQUJMRSBHR09YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjI0O1lJIFNZTExBQkxFIEdHTztMbzswO0w7Ozs7O047Ozs7OworQTIyNTtZSSBTWUxMQUJMRSBHR09QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjI2O1lJIFNZTExBQkxFIEdHRVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyMjc7WUkgU1lMTEFCTEUgR0dFWDtMbzswO0w7Ozs7O047Ozs7OworQTIyODtZSSBTWUxMQUJMRSBHR0U7TG87MDtMOzs7OztOOzs7OzsKK0EyMjk7WUkgU1lMTEFCTEUgR0dFUDtMbzswO0w7Ozs7O047Ozs7OworQTIyQTtZSSBTWUxMQUJMRSBHR1VUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjJCO1lJIFNZTExBQkxFIEdHVVg7TG87MDtMOzs7OztOOzs7OzsKK0EyMkM7WUkgU1lMTEFCTEUgR0dVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjJEO1lJIFNZTExBQkxFIEdHVVA7TG87MDtMOzs7OztOOzs7OzsKK0EyMkU7WUkgU1lMTEFCTEUgR0dVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EyMkY7WUkgU1lMTEFCTEUgR0dVUjtMbzswO0w7Ozs7O047Ozs7OworQTIzMDtZSSBTWUxMQUJMRSBNR0lFWDtMbzswO0w7Ozs7O047Ozs7OworQTIzMTtZSSBTWUxMQUJMRSBNR0lFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjMyO1lJIFNZTExBQkxFIE1HQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyMzM7WUkgU1lMTEFCTEUgTUdBWDtMbzswO0w7Ozs7O047Ozs7OworQTIzNDtZSSBTWUxMQUJMRSBNR0E7TG87MDtMOzs7OztOOzs7OzsKK0EyMzU7WUkgU1lMTEFCTEUgTUdBUDtMbzswO0w7Ozs7O047Ozs7OworQTIzNjtZSSBTWUxMQUJMRSBNR1VPWDtMbzswO0w7Ozs7O047Ozs7OworQTIzNztZSSBTWUxMQUJMRSBNR1VPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjM4O1lJIFNZTExBQkxFIE1HVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjM5O1lJIFNZTExBQkxFIE1HT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EyM0E7WUkgU1lMTEFCTEUgTUdPWDtMbzswO0w7Ozs7O047Ozs7OworQTIzQjtZSSBTWUxMQUJMRSBNR087TG87MDtMOzs7OztOOzs7OzsKK0EyM0M7WUkgU1lMTEFCTEUgTUdPUDtMbzswO0w7Ozs7O047Ozs7OworQTIzRDtZSSBTWUxMQUJMRSBNR0VYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjNFO1lJIFNZTExBQkxFIE1HRTtMbzswO0w7Ozs7O047Ozs7OworQTIzRjtZSSBTWUxMQUJMRSBNR0VQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjQwO1lJIFNZTExBQkxFIE1HVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyNDE7WUkgU1lMTEFCTEUgTUdVWDtMbzswO0w7Ozs7O047Ozs7OworQTI0MjtZSSBTWUxMQUJMRSBNR1U7TG87MDtMOzs7OztOOzs7OzsKK0EyNDM7WUkgU1lMTEFCTEUgTUdVUDtMbzswO0w7Ozs7O047Ozs7OworQTI0NDtZSSBTWUxMQUJMRSBNR1VSWDtMbzswO0w7Ozs7O047Ozs7OworQTI0NTtZSSBTWUxMQUJMRSBNR1VSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjQ2O1lJIFNZTExBQkxFIEhYSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyNDc7WUkgU1lMTEFCTEUgSFhJWDtMbzswO0w7Ozs7O047Ozs7OworQTI0ODtZSSBTWUxMQUJMRSBIWEk7TG87MDtMOzs7OztOOzs7OzsKK0EyNDk7WUkgU1lMTEFCTEUgSFhJUDtMbzswO0w7Ozs7O047Ozs7OworQTI0QTtZSSBTWUxMQUJMRSBIWElFVDtMbzswO0w7Ozs7O047Ozs7OworQTI0QjtZSSBTWUxMQUJMRSBIWElFWDtMbzswO0w7Ozs7O047Ozs7OworQTI0QztZSSBTWUxMQUJMRSBIWElFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjREO1lJIFNZTExBQkxFIEhYSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjRFO1lJIFNZTExBQkxFIEhYQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyNEY7WUkgU1lMTEFCTEUgSFhBWDtMbzswO0w7Ozs7O047Ozs7OworQTI1MDtZSSBTWUxMQUJMRSBIWEE7TG87MDtMOzs7OztOOzs7OzsKK0EyNTE7WUkgU1lMTEFCTEUgSFhBUDtMbzswO0w7Ozs7O047Ozs7OworQTI1MjtZSSBTWUxMQUJMRSBIWFVPVDtMbzswO0w7Ozs7O047Ozs7OworQTI1MztZSSBTWUxMQUJMRSBIWFVPWDtMbzswO0w7Ozs7O047Ozs7OworQTI1NDtZSSBTWUxMQUJMRSBIWFVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjU1O1lJIFNZTExBQkxFIEhYVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjU2O1lJIFNZTExBQkxFIEhYT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EyNTc7WUkgU1lMTEFCTEUgSFhPWDtMbzswO0w7Ozs7O047Ozs7OworQTI1ODtZSSBTWUxMQUJMRSBIWE87TG87MDtMOzs7OztOOzs7OzsKK0EyNTk7WUkgU1lMTEFCTEUgSFhPUDtMbzswO0w7Ozs7O047Ozs7OworQTI1QTtZSSBTWUxMQUJMRSBIWEVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjVCO1lJIFNZTExBQkxFIEhYRTtMbzswO0w7Ozs7O047Ozs7OworQTI1QztZSSBTWUxMQUJMRSBIWEVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjVEO1lJIFNZTExBQkxFIE5HSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjVFO1lJIFNZTExBQkxFIE5HSUU7TG87MDtMOzs7OztOOzs7OzsKK0EyNUY7WUkgU1lMTEFCTEUgTkdJRVA7TG87MDtMOzs7OztOOzs7OzsKK0EyNjA7WUkgU1lMTEFCTEUgTkdBVDtMbzswO0w7Ozs7O047Ozs7OworQTI2MTtZSSBTWUxMQUJMRSBOR0FYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjYyO1lJIFNZTExBQkxFIE5HQTtMbzswO0w7Ozs7O047Ozs7OworQTI2MztZSSBTWUxMQUJMRSBOR0FQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjY0O1lJIFNZTExBQkxFIE5HVU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjY1O1lJIFNZTExBQkxFIE5HVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjY2O1lJIFNZTExBQkxFIE5HVU87TG87MDtMOzs7OztOOzs7OzsKK0EyNjc7WUkgU1lMTEFCTEUgTkdPVDtMbzswO0w7Ozs7O047Ozs7OworQTI2ODtZSSBTWUxMQUJMRSBOR09YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjY5O1lJIFNZTExBQkxFIE5HTztMbzswO0w7Ozs7O047Ozs7OworQTI2QTtZSSBTWUxMQUJMRSBOR09QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjZCO1lJIFNZTExBQkxFIE5HRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyNkM7WUkgU1lMTEFCTEUgTkdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjZEO1lJIFNZTExBQkxFIE5HRVA7TG87MDtMOzs7OztOOzs7OzsKK0EyNkU7WUkgU1lMTEFCTEUgSElUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjZGO1lJIFNZTExBQkxFIEhJRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyNzA7WUkgU1lMTEFCTEUgSElFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjcxO1lJIFNZTExBQkxFIEhBVDtMbzswO0w7Ozs7O047Ozs7OworQTI3MjtZSSBTWUxMQUJMRSBIQVg7TG87MDtMOzs7OztOOzs7OzsKK0EyNzM7WUkgU1lMTEFCTEUgSEE7TG87MDtMOzs7OztOOzs7OzsKK0EyNzQ7WUkgU1lMTEFCTEUgSEFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjc1O1lJIFNZTExBQkxFIEhVT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EyNzY7WUkgU1lMTEFCTEUgSFVPWDtMbzswO0w7Ozs7O047Ozs7OworQTI3NztZSSBTWUxMQUJMRSBIVU87TG87MDtMOzs7OztOOzs7OzsKK0EyNzg7WUkgU1lMTEFCTEUgSFVPUDtMbzswO0w7Ozs7O047Ozs7OworQTI3OTtZSSBTWUxMQUJMRSBIT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EyN0E7WUkgU1lMTEFCTEUgSE9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjdCO1lJIFNZTExBQkxFIEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjdDO1lJIFNZTExBQkxFIEhPUDtMbzswO0w7Ozs7O047Ozs7OworQTI3RDtZSSBTWUxMQUJMRSBIRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyN0U7WUkgU1lMTEFCTEUgSEU7TG87MDtMOzs7OztOOzs7OzsKK0EyN0Y7WUkgU1lMTEFCTEUgSEVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjgwO1lJIFNZTExBQkxFIFdBVDtMbzswO0w7Ozs7O047Ozs7OworQTI4MTtZSSBTWUxMQUJMRSBXQVg7TG87MDtMOzs7OztOOzs7OzsKK0EyODI7WUkgU1lMTEFCTEUgV0E7TG87MDtMOzs7OztOOzs7OzsKK0EyODM7WUkgU1lMTEFCTEUgV0FQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjg0O1lJIFNZTExBQkxFIFdVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyODU7WUkgU1lMTEFCTEUgV1VPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjg2O1lJIFNZTExBQkxFIFdVT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyODc7WUkgU1lMTEFCTEUgV09YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjg4O1lJIFNZTExBQkxFIFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjg5O1lJIFNZTExBQkxFIFdPUDtMbzswO0w7Ozs7O047Ozs7OworQTI4QTtZSSBTWUxMQUJMRSBXRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyOEI7WUkgU1lMTEFCTEUgV0U7TG87MDtMOzs7OztOOzs7OzsKK0EyOEM7WUkgU1lMTEFCTEUgV0VQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjhEO1lJIFNZTExBQkxFIFpJVDtMbzswO0w7Ozs7O047Ozs7OworQTI4RTtZSSBTWUxMQUJMRSBaSVg7TG87MDtMOzs7OztOOzs7OzsKK0EyOEY7WUkgU1lMTEFCTEUgWkk7TG87MDtMOzs7OztOOzs7OzsKK0EyOTA7WUkgU1lMTEFCTEUgWklQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjkxO1lJIFNZTExBQkxFIFpJRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyOTI7WUkgU1lMTEFCTEUgWklFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjkzO1lJIFNZTExBQkxFIFpJRVA7TG87MDtMOzs7OztOOzs7OzsKK0EyOTQ7WUkgU1lMTEFCTEUgWkFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjk1O1lJIFNZTExBQkxFIFpBWDtMbzswO0w7Ozs7O047Ozs7OworQTI5NjtZSSBTWUxMQUJMRSBaQTtMbzswO0w7Ozs7O047Ozs7OworQTI5NztZSSBTWUxMQUJMRSBaQVA7TG87MDtMOzs7OztOOzs7OzsKK0EyOTg7WUkgU1lMTEFCTEUgWlVPWDtMbzswO0w7Ozs7O047Ozs7OworQTI5OTtZSSBTWUxMQUJMRSBaVU87TG87MDtMOzs7OztOOzs7OzsKK0EyOUE7WUkgU1lMTEFCTEUgWlVPUDtMbzswO0w7Ozs7O047Ozs7OworQTI5QjtZSSBTWUxMQUJMRSBaT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EyOUM7WUkgU1lMTEFCTEUgWk9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjlEO1lJIFNZTExBQkxFIFpPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjlFO1lJIFNZTExBQkxFIFpPUDtMbzswO0w7Ozs7O047Ozs7OworQTI5RjtZSSBTWUxMQUJMRSBaRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyQTA7WUkgU1lMTEFCTEUgWkU7TG87MDtMOzs7OztOOzs7OzsKK0EyQTE7WUkgU1lMTEFCTEUgWkVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkEyO1lJIFNZTExBQkxFIFpVVDtMbzswO0w7Ozs7O047Ozs7OworQTJBMztZSSBTWUxMQUJMRSBaVVg7TG87MDtMOzs7OztOOzs7OzsKK0EyQTQ7WUkgU1lMTEFCTEUgWlU7TG87MDtMOzs7OztOOzs7OzsKK0EyQTU7WUkgU1lMTEFCTEUgWlVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkE2O1lJIFNZTExBQkxFIFpVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EyQTc7WUkgU1lMTEFCTEUgWlVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkE4O1lJIFNZTExBQkxFIFpZVDtMbzswO0w7Ozs7O047Ozs7OworQTJBOTtZSSBTWUxMQUJMRSBaWVg7TG87MDtMOzs7OztOOzs7OzsKK0EyQUE7WUkgU1lMTEFCTEUgWlk7TG87MDtMOzs7OztOOzs7OzsKK0EyQUI7WUkgU1lMTEFCTEUgWllQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkFDO1lJIFNZTExBQkxFIFpZUlg7TG87MDtMOzs7OztOOzs7OzsKK0EyQUQ7WUkgU1lMTEFCTEUgWllSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkFFO1lJIFNZTExBQkxFIENJVDtMbzswO0w7Ozs7O047Ozs7OworQTJBRjtZSSBTWUxMQUJMRSBDSVg7TG87MDtMOzs7OztOOzs7OzsKK0EyQjA7WUkgU1lMTEFCTEUgQ0k7TG87MDtMOzs7OztOOzs7OzsKK0EyQjE7WUkgU1lMTEFCTEUgQ0lQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkIyO1lJIFNZTExBQkxFIENJRVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyQjM7WUkgU1lMTEFCTEUgQ0lFWDtMbzswO0w7Ozs7O047Ozs7OworQTJCNDtZSSBTWUxMQUJMRSBDSUU7TG87MDtMOzs7OztOOzs7OzsKK0EyQjU7WUkgU1lMTEFCTEUgQ0lFUDtMbzswO0w7Ozs7O047Ozs7OworQTJCNjtZSSBTWUxMQUJMRSBDQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyQjc7WUkgU1lMTEFCTEUgQ0FYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkI4O1lJIFNZTExBQkxFIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkI5O1lJIFNZTExBQkxFIENBUDtMbzswO0w7Ozs7O047Ozs7OworQTJCQTtZSSBTWUxMQUJMRSBDVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkJCO1lJIFNZTExBQkxFIENVTztMbzswO0w7Ozs7O047Ozs7OworQTJCQztZSSBTWUxMQUJMRSBDVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkJEO1lJIFNZTExBQkxFIENPVDtMbzswO0w7Ozs7O047Ozs7OworQTJCRTtZSSBTWUxMQUJMRSBDT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyQkY7WUkgU1lMTEFCTEUgQ087TG87MDtMOzs7OztOOzs7OzsKK0EyQzA7WUkgU1lMTEFCTEUgQ09QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkMxO1lJIFNZTExBQkxFIENFWDtMbzswO0w7Ozs7O047Ozs7OworQTJDMjtZSSBTWUxMQUJMRSBDRTtMbzswO0w7Ozs7O047Ozs7OworQTJDMztZSSBTWUxMQUJMRSBDRVA7TG87MDtMOzs7OztOOzs7OzsKK0EyQzQ7WUkgU1lMTEFCTEUgQ1VUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkM1O1lJIFNZTExBQkxFIENVWDtMbzswO0w7Ozs7O047Ozs7OworQTJDNjtZSSBTWUxMQUJMRSBDVTtMbzswO0w7Ozs7O047Ozs7OworQTJDNztZSSBTWUxMQUJMRSBDVVA7TG87MDtMOzs7OztOOzs7OzsKK0EyQzg7WUkgU1lMTEFCTEUgQ1VSWDtMbzswO0w7Ozs7O047Ozs7OworQTJDOTtZSSBTWUxMQUJMRSBDVVI7TG87MDtMOzs7OztOOzs7OzsKK0EyQ0E7WUkgU1lMTEFCTEUgQ1lUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkNCO1lJIFNZTExBQkxFIENZWDtMbzswO0w7Ozs7O047Ozs7OworQTJDQztZSSBTWUxMQUJMRSBDWTtMbzswO0w7Ozs7O047Ozs7OworQTJDRDtZSSBTWUxMQUJMRSBDWVA7TG87MDtMOzs7OztOOzs7OzsKK0EyQ0U7WUkgU1lMTEFCTEUgQ1lSWDtMbzswO0w7Ozs7O047Ozs7OworQTJDRjtZSSBTWUxMQUJMRSBDWVI7TG87MDtMOzs7OztOOzs7OzsKK0EyRDA7WUkgU1lMTEFCTEUgWlpJVDtMbzswO0w7Ozs7O047Ozs7OworQTJEMTtZSSBTWUxMQUJMRSBaWklYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkQyO1lJIFNZTExBQkxFIFpaSTtMbzswO0w7Ozs7O047Ozs7OworQTJEMztZSSBTWUxMQUJMRSBaWklQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkQ0O1lJIFNZTExBQkxFIFpaSUVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkQ1O1lJIFNZTExBQkxFIFpaSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkQ2O1lJIFNZTExBQkxFIFpaSUU7TG87MDtMOzs7OztOOzs7OzsKK0EyRDc7WUkgU1lMTEFCTEUgWlpJRVA7TG87MDtMOzs7OztOOzs7OzsKK0EyRDg7WUkgU1lMTEFCTEUgWlpBVDtMbzswO0w7Ozs7O047Ozs7OworQTJEOTtZSSBTWUxMQUJMRSBaWkFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkRBO1lJIFNZTExBQkxFIFpaQTtMbzswO0w7Ozs7O047Ozs7OworQTJEQjtZSSBTWUxMQUJMRSBaWkFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkRDO1lJIFNZTExBQkxFIFpaT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyREQ7WUkgU1lMTEFCTEUgWlpPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkRFO1lJIFNZTExBQkxFIFpaT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyREY7WUkgU1lMTEFCTEUgWlpFWDtMbzswO0w7Ozs7O047Ozs7OworQTJFMDtZSSBTWUxMQUJMRSBaWkU7TG87MDtMOzs7OztOOzs7OzsKK0EyRTE7WUkgU1lMTEFCTEUgWlpFUDtMbzswO0w7Ozs7O047Ozs7OworQTJFMjtZSSBTWUxMQUJMRSBaWlVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkUzO1lJIFNZTExBQkxFIFpaVTtMbzswO0w7Ozs7O047Ozs7OworQTJFNDtZSSBTWUxMQUJMRSBaWlVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkU1O1lJIFNZTExBQkxFIFpaVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkU2O1lJIFNZTExBQkxFIFpaVVI7TG87MDtMOzs7OztOOzs7OzsKK0EyRTc7WUkgU1lMTEFCTEUgWlpZVDtMbzswO0w7Ozs7O047Ozs7OworQTJFODtZSSBTWUxMQUJMRSBaWllYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkU5O1lJIFNZTExBQkxFIFpaWTtMbzswO0w7Ozs7O047Ozs7OworQTJFQTtZSSBTWUxMQUJMRSBaWllQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkVCO1lJIFNZTExBQkxFIFpaWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkVDO1lJIFNZTExBQkxFIFpaWVI7TG87MDtMOzs7OztOOzs7OzsKK0EyRUQ7WUkgU1lMTEFCTEUgTlpJVDtMbzswO0w7Ozs7O047Ozs7OworQTJFRTtZSSBTWUxMQUJMRSBOWklYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkVGO1lJIFNZTExBQkxFIE5aSTtMbzswO0w7Ozs7O047Ozs7OworQTJGMDtZSSBTWUxMQUJMRSBOWklQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkYxO1lJIFNZTExBQkxFIE5aSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkYyO1lJIFNZTExBQkxFIE5aSUU7TG87MDtMOzs7OztOOzs7OzsKK0EyRjM7WUkgU1lMTEFCTEUgTlpJRVA7TG87MDtMOzs7OztOOzs7OzsKK0EyRjQ7WUkgU1lMTEFCTEUgTlpBVDtMbzswO0w7Ozs7O047Ozs7OworQTJGNTtZSSBTWUxMQUJMRSBOWkFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkY2O1lJIFNZTExBQkxFIE5aQTtMbzswO0w7Ozs7O047Ozs7OworQTJGNztZSSBTWUxMQUJMRSBOWkFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkY4O1lJIFNZTExBQkxFIE5aVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkY5O1lJIFNZTExBQkxFIE5aVU87TG87MDtMOzs7OztOOzs7OzsKK0EyRkE7WUkgU1lMTEFCTEUgTlpPWDtMbzswO0w7Ozs7O047Ozs7OworQTJGQjtZSSBTWUxMQUJMRSBOWk9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkZDO1lJIFNZTExBQkxFIE5aRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyRkQ7WUkgU1lMTEFCTEUgTlpFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkZFO1lJIFNZTExBQkxFIE5aVVg7TG87MDtMOzs7OztOOzs7OzsKK0EyRkY7WUkgU1lMTEFCTEUgTlpVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzAwO1lJIFNZTExBQkxFIE5aVVA7TG87MDtMOzs7OztOOzs7OzsKK0EzMDE7WUkgU1lMTEFCTEUgTlpVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzMDI7WUkgU1lMTEFCTEUgTlpVUjtMbzswO0w7Ozs7O047Ozs7OworQTMwMztZSSBTWUxMQUJMRSBOWllUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzA0O1lJIFNZTExBQkxFIE5aWVg7TG87MDtMOzs7OztOOzs7OzsKK0EzMDU7WUkgU1lMTEFCTEUgTlpZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzA2O1lJIFNZTExBQkxFIE5aWVA7TG87MDtMOzs7OztOOzs7OzsKK0EzMDc7WUkgU1lMTEFCTEUgTlpZUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzMDg7WUkgU1lMTEFCTEUgTlpZUjtMbzswO0w7Ozs7O047Ozs7OworQTMwOTtZSSBTWUxMQUJMRSBTSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzMEE7WUkgU1lMTEFCTEUgU0lYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzBCO1lJIFNZTExBQkxFIFNJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzBDO1lJIFNZTExBQkxFIFNJUDtMbzswO0w7Ozs7O047Ozs7OworQTMwRDtZSSBTWUxMQUJMRSBTSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzBFO1lJIFNZTExBQkxFIFNJRTtMbzswO0w7Ozs7O047Ozs7OworQTMwRjtZSSBTWUxMQUJMRSBTSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzEwO1lJIFNZTExBQkxFIFNBVDtMbzswO0w7Ozs7O047Ozs7OworQTMxMTtZSSBTWUxMQUJMRSBTQVg7TG87MDtMOzs7OztOOzs7OzsKK0EzMTI7WUkgU1lMTEFCTEUgU0E7TG87MDtMOzs7OztOOzs7OzsKK0EzMTM7WUkgU1lMTEFCTEUgU0FQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzE0O1lJIFNZTExBQkxFIFNVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EzMTU7WUkgU1lMTEFCTEUgU1VPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzE2O1lJIFNZTExBQkxFIFNVT1A7TG87MDtMOzs7OztOOzs7OzsKK0EzMTc7WUkgU1lMTEFCTEUgU09UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzE4O1lJIFNZTExBQkxFIFNPWDtMbzswO0w7Ozs7O047Ozs7OworQTMxOTtZSSBTWUxMQUJMRSBTTztMbzswO0w7Ozs7O047Ozs7OworQTMxQTtZSSBTWUxMQUJMRSBTT1A7TG87MDtMOzs7OztOOzs7OzsKK0EzMUI7WUkgU1lMTEFCTEUgU0VYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzFDO1lJIFNZTExBQkxFIFNFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzFEO1lJIFNZTExBQkxFIFNFUDtMbzswO0w7Ozs7O047Ozs7OworQTMxRTtZSSBTWUxMQUJMRSBTVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzMUY7WUkgU1lMTEFCTEUgU1VYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzIwO1lJIFNZTExBQkxFIFNVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzIxO1lJIFNZTExBQkxFIFNVUDtMbzswO0w7Ozs7O047Ozs7OworQTMyMjtZSSBTWUxMQUJMRSBTVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzIzO1lJIFNZTExBQkxFIFNVUjtMbzswO0w7Ozs7O047Ozs7OworQTMyNDtZSSBTWUxMQUJMRSBTWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzMjU7WUkgU1lMTEFCTEUgU1lYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzI2O1lJIFNZTExBQkxFIFNZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzI3O1lJIFNZTExBQkxFIFNZUDtMbzswO0w7Ozs7O047Ozs7OworQTMyODtZSSBTWUxMQUJMRSBTWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzI5O1lJIFNZTExBQkxFIFNZUjtMbzswO0w7Ozs7O047Ozs7OworQTMyQTtZSSBTWUxMQUJMRSBTU0lUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzJCO1lJIFNZTExBQkxFIFNTSVg7TG87MDtMOzs7OztOOzs7OzsKK0EzMkM7WUkgU1lMTEFCTEUgU1NJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzJEO1lJIFNZTExBQkxFIFNTSVA7TG87MDtMOzs7OztOOzs7OzsKK0EzMkU7WUkgU1lMTEFCTEUgU1NJRVg7TG87MDtMOzs7OztOOzs7OzsKK0EzMkY7WUkgU1lMTEFCTEUgU1NJRTtMbzswO0w7Ozs7O047Ozs7OworQTMzMDtZSSBTWUxMQUJMRSBTU0lFUDtMbzswO0w7Ozs7O047Ozs7OworQTMzMTtZSSBTWUxMQUJMRSBTU0FUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzMyO1lJIFNZTExBQkxFIFNTQVg7TG87MDtMOzs7OztOOzs7OzsKK0EzMzM7WUkgU1lMTEFCTEUgU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzM0O1lJIFNZTExBQkxFIFNTQVA7TG87MDtMOzs7OztOOzs7OzsKK0EzMzU7WUkgU1lMTEFCTEUgU1NPVDtMbzswO0w7Ozs7O047Ozs7OworQTMzNjtZSSBTWUxMQUJMRSBTU09YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzM3O1lJIFNZTExBQkxFIFNTTztMbzswO0w7Ozs7O047Ozs7OworQTMzODtZSSBTWUxMQUJMRSBTU09QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzM5O1lJIFNZTExBQkxFIFNTRVg7TG87MDtMOzs7OztOOzs7OzsKK0EzM0E7WUkgU1lMTEFCTEUgU1NFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzNCO1lJIFNZTExBQkxFIFNTRVA7TG87MDtMOzs7OztOOzs7OzsKK0EzM0M7WUkgU1lMTEFCTEUgU1NVVDtMbzswO0w7Ozs7O047Ozs7OworQTMzRDtZSSBTWUxMQUJMRSBTU1VYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzNFO1lJIFNZTExBQkxFIFNTVTtMbzswO0w7Ozs7O047Ozs7OworQTMzRjtZSSBTWUxMQUJMRSBTU1VQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzQwO1lJIFNZTExBQkxFIFNTWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzNDE7WUkgU1lMTEFCTEUgU1NZWDtMbzswO0w7Ozs7O047Ozs7OworQTM0MjtZSSBTWUxMQUJMRSBTU1k7TG87MDtMOzs7OztOOzs7OzsKK0EzNDM7WUkgU1lMTEFCTEUgU1NZUDtMbzswO0w7Ozs7O047Ozs7OworQTM0NDtZSSBTWUxMQUJMRSBTU1lSWDtMbzswO0w7Ozs7O047Ozs7OworQTM0NTtZSSBTWUxMQUJMRSBTU1lSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzQ2O1lJIFNZTExBQkxFIFpIQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzNDc7WUkgU1lMTEFCTEUgWkhBWDtMbzswO0w7Ozs7O047Ozs7OworQTM0ODtZSSBTWUxMQUJMRSBaSEE7TG87MDtMOzs7OztOOzs7OzsKK0EzNDk7WUkgU1lMTEFCTEUgWkhBUDtMbzswO0w7Ozs7O047Ozs7OworQTM0QTtZSSBTWUxMQUJMRSBaSFVPWDtMbzswO0w7Ozs7O047Ozs7OworQTM0QjtZSSBTWUxMQUJMRSBaSFVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzRDO1lJIFNZTExBQkxFIFpIVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzREO1lJIFNZTExBQkxFIFpIT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EzNEU7WUkgU1lMTEFCTEUgWkhPWDtMbzswO0w7Ozs7O047Ozs7OworQTM0RjtZSSBTWUxMQUJMRSBaSE87TG87MDtMOzs7OztOOzs7OzsKK0EzNTA7WUkgU1lMTEFCTEUgWkhPUDtMbzswO0w7Ozs7O047Ozs7OworQTM1MTtZSSBTWUxMQUJMRSBaSEVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzUyO1lJIFNZTExBQkxFIFpIRVg7TG87MDtMOzs7OztOOzs7OzsKK0EzNTM7WUkgU1lMTEFCTEUgWkhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzU0O1lJIFNZTExBQkxFIFpIRVA7TG87MDtMOzs7OztOOzs7OzsKK0EzNTU7WUkgU1lMTEFCTEUgWkhVVDtMbzswO0w7Ozs7O047Ozs7OworQTM1NjtZSSBTWUxMQUJMRSBaSFVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzU3O1lJIFNZTExBQkxFIFpIVTtMbzswO0w7Ozs7O047Ozs7OworQTM1ODtZSSBTWUxMQUJMRSBaSFVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzU5O1lJIFNZTExBQkxFIFpIVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzVBO1lJIFNZTExBQkxFIFpIVVI7TG87MDtMOzs7OztOOzs7OzsKK0EzNUI7WUkgU1lMTEFCTEUgWkhZVDtMbzswO0w7Ozs7O047Ozs7OworQTM1QztZSSBTWUxMQUJMRSBaSFlYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzVEO1lJIFNZTExBQkxFIFpIWTtMbzswO0w7Ozs7O047Ozs7OworQTM1RTtZSSBTWUxMQUJMRSBaSFlQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzVGO1lJIFNZTExBQkxFIFpIWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzYwO1lJIFNZTExBQkxFIFpIWVI7TG87MDtMOzs7OztOOzs7OzsKK0EzNjE7WUkgU1lMTEFCTEUgQ0hBVDtMbzswO0w7Ozs7O047Ozs7OworQTM2MjtZSSBTWUxMQUJMRSBDSEFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzYzO1lJIFNZTExBQkxFIENIQTtMbzswO0w7Ozs7O047Ozs7OworQTM2NDtZSSBTWUxMQUJMRSBDSEFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzY1O1lJIFNZTExBQkxFIENIVU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzY2O1lJIFNZTExBQkxFIENIVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzY3O1lJIFNZTExBQkxFIENIVU87TG87MDtMOzs7OztOOzs7OzsKK0EzNjg7WUkgU1lMTEFCTEUgQ0hVT1A7TG87MDtMOzs7OztOOzs7OzsKK0EzNjk7WUkgU1lMTEFCTEUgQ0hPVDtMbzswO0w7Ozs7O047Ozs7OworQTM2QTtZSSBTWUxMQUJMRSBDSE9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzZCO1lJIFNZTExBQkxFIENITztMbzswO0w7Ozs7O047Ozs7OworQTM2QztZSSBTWUxMQUJMRSBDSE9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzZEO1lJIFNZTExBQkxFIENIRVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzNkU7WUkgU1lMTEFCTEUgQ0hFWDtMbzswO0w7Ozs7O047Ozs7OworQTM2RjtZSSBTWUxMQUJMRSBDSEU7TG87MDtMOzs7OztOOzs7OzsKK0EzNzA7WUkgU1lMTEFCTEUgQ0hFUDtMbzswO0w7Ozs7O047Ozs7OworQTM3MTtZSSBTWUxMQUJMRSBDSFVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzcyO1lJIFNZTExBQkxFIENIVTtMbzswO0w7Ozs7O047Ozs7OworQTM3MztZSSBTWUxMQUJMRSBDSFVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzc0O1lJIFNZTExBQkxFIENIVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzc1O1lJIFNZTExBQkxFIENIVVI7TG87MDtMOzs7OztOOzs7OzsKK0EzNzY7WUkgU1lMTEFCTEUgQ0hZVDtMbzswO0w7Ozs7O047Ozs7OworQTM3NztZSSBTWUxMQUJMRSBDSFlYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzc4O1lJIFNZTExBQkxFIENIWTtMbzswO0w7Ozs7O047Ozs7OworQTM3OTtZSSBTWUxMQUJMRSBDSFlQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzdBO1lJIFNZTExBQkxFIENIWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzdCO1lJIFNZTExBQkxFIENIWVI7TG87MDtMOzs7OztOOzs7OzsKK0EzN0M7WUkgU1lMTEFCTEUgUlJBWDtMbzswO0w7Ozs7O047Ozs7OworQTM3RDtZSSBTWUxMQUJMRSBSUkE7TG87MDtMOzs7OztOOzs7OzsKK0EzN0U7WUkgU1lMTEFCTEUgUlJVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EzN0Y7WUkgU1lMTEFCTEUgUlJVTztMbzswO0w7Ozs7O047Ozs7OworQTM4MDtZSSBTWUxMQUJMRSBSUk9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzgxO1lJIFNZTExBQkxFIFJST1g7TG87MDtMOzs7OztOOzs7OzsKK0EzODI7WUkgU1lMTEFCTEUgUlJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzgzO1lJIFNZTExBQkxFIFJST1A7TG87MDtMOzs7OztOOzs7OzsKK0EzODQ7WUkgU1lMTEFCTEUgUlJFVDtMbzswO0w7Ozs7O047Ozs7OworQTM4NTtZSSBTWUxMQUJMRSBSUkVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzg2O1lJIFNZTExBQkxFIFJSRTtMbzswO0w7Ozs7O047Ozs7OworQTM4NztZSSBTWUxMQUJMRSBSUkVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzg4O1lJIFNZTExBQkxFIFJSVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzODk7WUkgU1lMTEFCTEUgUlJVWDtMbzswO0w7Ozs7O047Ozs7OworQTM4QTtZSSBTWUxMQUJMRSBSUlU7TG87MDtMOzs7OztOOzs7OzsKK0EzOEI7WUkgU1lMTEFCTEUgUlJVUDtMbzswO0w7Ozs7O047Ozs7OworQTM4QztZSSBTWUxMQUJMRSBSUlVSWDtMbzswO0w7Ozs7O047Ozs7OworQTM4RDtZSSBTWUxMQUJMRSBSUlVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzhFO1lJIFNZTExBQkxFIFJSWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzOEY7WUkgU1lMTEFCTEUgUlJZWDtMbzswO0w7Ozs7O047Ozs7OworQTM5MDtZSSBTWUxMQUJMRSBSUlk7TG87MDtMOzs7OztOOzs7OzsKK0EzOTE7WUkgU1lMTEFCTEUgUlJZUDtMbzswO0w7Ozs7O047Ozs7OworQTM5MjtZSSBTWUxMQUJMRSBSUllSWDtMbzswO0w7Ozs7O047Ozs7OworQTM5MztZSSBTWUxMQUJMRSBSUllSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzk0O1lJIFNZTExBQkxFIE5SQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzOTU7WUkgU1lMTEFCTEUgTlJBWDtMbzswO0w7Ozs7O047Ozs7OworQTM5NjtZSSBTWUxMQUJMRSBOUkE7TG87MDtMOzs7OztOOzs7OzsKK0EzOTc7WUkgU1lMTEFCTEUgTlJBUDtMbzswO0w7Ozs7O047Ozs7OworQTM5ODtZSSBTWUxMQUJMRSBOUk9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzk5O1lJIFNZTExBQkxFIE5STztMbzswO0w7Ozs7O047Ozs7OworQTM5QTtZSSBTWUxMQUJMRSBOUk9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzlCO1lJIFNZTExBQkxFIE5SRVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzOUM7WUkgU1lMTEFCTEUgTlJFWDtMbzswO0w7Ozs7O047Ozs7OworQTM5RDtZSSBTWUxMQUJMRSBOUkU7TG87MDtMOzs7OztOOzs7OzsKK0EzOUU7WUkgU1lMTEFCTEUgTlJFUDtMbzswO0w7Ozs7O047Ozs7OworQTM5RjtZSSBTWUxMQUJMRSBOUlVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0EwO1lJIFNZTExBQkxFIE5SVVg7TG87MDtMOzs7OztOOzs7OzsKK0EzQTE7WUkgU1lMTEFCTEUgTlJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0EyO1lJIFNZTExBQkxFIE5SVVA7TG87MDtMOzs7OztOOzs7OzsKK0EzQTM7WUkgU1lMTEFCTEUgTlJVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzQTQ7WUkgU1lMTEFCTEUgTlJVUjtMbzswO0w7Ozs7O047Ozs7OworQTNBNTtZSSBTWUxMQUJMRSBOUllUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0E2O1lJIFNZTExBQkxFIE5SWVg7TG87MDtMOzs7OztOOzs7OzsKK0EzQTc7WUkgU1lMTEFCTEUgTlJZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0E4O1lJIFNZTExBQkxFIE5SWVA7TG87MDtMOzs7OztOOzs7OzsKK0EzQTk7WUkgU1lMTEFCTEUgTlJZUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzQUE7WUkgU1lMTEFCTEUgTlJZUjtMbzswO0w7Ozs7O047Ozs7OworQTNBQjtZSSBTWUxMQUJMRSBTSEFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0FDO1lJIFNZTExBQkxFIFNIQVg7TG87MDtMOzs7OztOOzs7OzsKK0EzQUQ7WUkgU1lMTEFCTEUgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0FFO1lJIFNZTExBQkxFIFNIQVA7TG87MDtMOzs7OztOOzs7OzsKK0EzQUY7WUkgU1lMTEFCTEUgU0hVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EzQjA7WUkgU1lMTEFCTEUgU0hVTztMbzswO0w7Ozs7O047Ozs7OworQTNCMTtZSSBTWUxMQUJMRSBTSFVPUDtMbzswO0w7Ozs7O047Ozs7OworQTNCMjtZSSBTWUxMQUJMRSBTSE9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0IzO1lJIFNZTExBQkxFIFNIT1g7TG87MDtMOzs7OztOOzs7OzsKK0EzQjQ7WUkgU1lMTEFCTEUgU0hPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0I1O1lJIFNZTExBQkxFIFNIT1A7TG87MDtMOzs7OztOOzs7OzsKK0EzQjY7WUkgU1lMTEFCTEUgU0hFVDtMbzswO0w7Ozs7O047Ozs7OworQTNCNztZSSBTWUxMQUJMRSBTSEVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0I4O1lJIFNZTExBQkxFIFNIRTtMbzswO0w7Ozs7O047Ozs7OworQTNCOTtZSSBTWUxMQUJMRSBTSEVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0JBO1lJIFNZTExBQkxFIFNIVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzQkI7WUkgU1lMTEFCTEUgU0hVWDtMbzswO0w7Ozs7O047Ozs7OworQTNCQztZSSBTWUxMQUJMRSBTSFU7TG87MDtMOzs7OztOOzs7OzsKK0EzQkQ7WUkgU1lMTEFCTEUgU0hVUDtMbzswO0w7Ozs7O047Ozs7OworQTNCRTtZSSBTWUxMQUJMRSBTSFVSWDtMbzswO0w7Ozs7O047Ozs7OworQTNCRjtZSSBTWUxMQUJMRSBTSFVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0MwO1lJIFNZTExBQkxFIFNIWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzQzE7WUkgU1lMTEFCTEUgU0hZWDtMbzswO0w7Ozs7O047Ozs7OworQTNDMjtZSSBTWUxMQUJMRSBTSFk7TG87MDtMOzs7OztOOzs7OzsKK0EzQzM7WUkgU1lMTEFCTEUgU0hZUDtMbzswO0w7Ozs7O047Ozs7OworQTNDNDtZSSBTWUxMQUJMRSBTSFlSWDtMbzswO0w7Ozs7O047Ozs7OworQTNDNTtZSSBTWUxMQUJMRSBTSFlSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0M2O1lJIFNZTExBQkxFIFJBVDtMbzswO0w7Ozs7O047Ozs7OworQTNDNztZSSBTWUxMQUJMRSBSQVg7TG87MDtMOzs7OztOOzs7OzsKK0EzQzg7WUkgU1lMTEFCTEUgUkE7TG87MDtMOzs7OztOOzs7OzsKK0EzQzk7WUkgU1lMTEFCTEUgUkFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0NBO1lJIFNZTExBQkxFIFJVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EzQ0I7WUkgU1lMTEFCTEUgUlVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0NDO1lJIFNZTExBQkxFIFJVT1A7TG87MDtMOzs7OztOOzs7OzsKK0EzQ0Q7WUkgU1lMTEFCTEUgUk9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0NFO1lJIFNZTExBQkxFIFJPWDtMbzswO0w7Ozs7O047Ozs7OworQTNDRjtZSSBTWUxMQUJMRSBSTztMbzswO0w7Ozs7O047Ozs7OworQTNEMDtZSSBTWUxMQUJMRSBST1A7TG87MDtMOzs7OztOOzs7OzsKK0EzRDE7WUkgU1lMTEFCTEUgUkVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0QyO1lJIFNZTExBQkxFIFJFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0QzO1lJIFNZTExBQkxFIFJFUDtMbzswO0w7Ozs7O047Ozs7OworQTNENDtZSSBTWUxMQUJMRSBSVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzRDU7WUkgU1lMTEFCTEUgUlVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0Q2O1lJIFNZTExBQkxFIFJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0Q3O1lJIFNZTExBQkxFIFJVUDtMbzswO0w7Ozs7O047Ozs7OworQTNEODtZSSBTWUxMQUJMRSBSVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0Q5O1lJIFNZTExBQkxFIFJVUjtMbzswO0w7Ozs7O047Ozs7OworQTNEQTtZSSBTWUxMQUJMRSBSWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzREI7WUkgU1lMTEFCTEUgUllYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0RDO1lJIFNZTExBQkxFIFJZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0REO1lJIFNZTExBQkxFIFJZUDtMbzswO0w7Ozs7O047Ozs7OworQTNERTtZSSBTWUxMQUJMRSBSWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0RGO1lJIFNZTExBQkxFIFJZUjtMbzswO0w7Ozs7O047Ozs7OworQTNFMDtZSSBTWUxMQUJMRSBKSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzRTE7WUkgU1lMTEFCTEUgSklYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0UyO1lJIFNZTExBQkxFIEpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0UzO1lJIFNZTExBQkxFIEpJUDtMbzswO0w7Ozs7O047Ozs7OworQTNFNDtZSSBTWUxMQUJMRSBKSUVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0U1O1lJIFNZTExBQkxFIEpJRVg7TG87MDtMOzs7OztOOzs7OzsKK0EzRTY7WUkgU1lMTEFCTEUgSklFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0U3O1lJIFNZTExBQkxFIEpJRVA7TG87MDtMOzs7OztOOzs7OzsKK0EzRTg7WUkgU1lMTEFCTEUgSlVPVDtMbzswO0w7Ozs7O047Ozs7OworQTNFOTtZSSBTWUxMQUJMRSBKVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0VBO1lJIFNZTExBQkxFIEpVTztMbzswO0w7Ozs7O047Ozs7OworQTNFQjtZSSBTWUxMQUJMRSBKVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0VDO1lJIFNZTExBQkxFIEpPVDtMbzswO0w7Ozs7O047Ozs7OworQTNFRDtZSSBTWUxMQUJMRSBKT1g7TG87MDtMOzs7OztOOzs7OzsKK0EzRUU7WUkgU1lMTEFCTEUgSk87TG87MDtMOzs7OztOOzs7OzsKK0EzRUY7WUkgU1lMTEFCTEUgSk9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0YwO1lJIFNZTExBQkxFIEpVVDtMbzswO0w7Ozs7O047Ozs7OworQTNGMTtZSSBTWUxMQUJMRSBKVVg7TG87MDtMOzs7OztOOzs7OzsKK0EzRjI7WUkgU1lMTEFCTEUgSlU7TG87MDtMOzs7OztOOzs7OzsKK0EzRjM7WUkgU1lMTEFCTEUgSlVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0Y0O1lJIFNZTExBQkxFIEpVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzRjU7WUkgU1lMTEFCTEUgSlVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0Y2O1lJIFNZTExBQkxFIEpZVDtMbzswO0w7Ozs7O047Ozs7OworQTNGNztZSSBTWUxMQUJMRSBKWVg7TG87MDtMOzs7OztOOzs7OzsKK0EzRjg7WUkgU1lMTEFCTEUgSlk7TG87MDtMOzs7OztOOzs7OzsKK0EzRjk7WUkgU1lMTEFCTEUgSllQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0ZBO1lJIFNZTExBQkxFIEpZUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzRkI7WUkgU1lMTEFCTEUgSllSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0ZDO1lJIFNZTExBQkxFIFFJVDtMbzswO0w7Ozs7O047Ozs7OworQTNGRDtZSSBTWUxMQUJMRSBRSVg7TG87MDtMOzs7OztOOzs7OzsKK0EzRkU7WUkgU1lMTEFCTEUgUUk7TG87MDtMOzs7OztOOzs7OzsKK0EzRkY7WUkgU1lMTEFCTEUgUUlQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDAwO1lJIFNZTExBQkxFIFFJRVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0MDE7WUkgU1lMTEFCTEUgUUlFWDtMbzswO0w7Ozs7O047Ozs7OworQTQwMjtZSSBTWUxMQUJMRSBRSUU7TG87MDtMOzs7OztOOzs7OzsKK0E0MDM7WUkgU1lMTEFCTEUgUUlFUDtMbzswO0w7Ozs7O047Ozs7OworQTQwNDtZSSBTWUxMQUJMRSBRVU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDA1O1lJIFNZTExBQkxFIFFVT1g7TG87MDtMOzs7OztOOzs7OzsKK0E0MDY7WUkgU1lMTEFCTEUgUVVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDA3O1lJIFNZTExBQkxFIFFVT1A7TG87MDtMOzs7OztOOzs7OzsKK0E0MDg7WUkgU1lMTEFCTEUgUU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDA5O1lJIFNZTExBQkxFIFFPWDtMbzswO0w7Ozs7O047Ozs7OworQTQwQTtZSSBTWUxMQUJMRSBRTztMbzswO0w7Ozs7O047Ozs7OworQTQwQjtZSSBTWUxMQUJMRSBRT1A7TG87MDtMOzs7OztOOzs7OzsKK0E0MEM7WUkgU1lMTEFCTEUgUVVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDBEO1lJIFNZTExBQkxFIFFVWDtMbzswO0w7Ozs7O047Ozs7OworQTQwRTtZSSBTWUxMQUJMRSBRVTtMbzswO0w7Ozs7O047Ozs7OworQTQwRjtZSSBTWUxMQUJMRSBRVVA7TG87MDtMOzs7OztOOzs7OzsKK0E0MTA7WUkgU1lMTEFCTEUgUVVSWDtMbzswO0w7Ozs7O047Ozs7OworQTQxMTtZSSBTWUxMQUJMRSBRVVI7TG87MDtMOzs7OztOOzs7OzsKK0E0MTI7WUkgU1lMTEFCTEUgUVlUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDEzO1lJIFNZTExBQkxFIFFZWDtMbzswO0w7Ozs7O047Ozs7OworQTQxNDtZSSBTWUxMQUJMRSBRWTtMbzswO0w7Ozs7O047Ozs7OworQTQxNTtZSSBTWUxMQUJMRSBRWVA7TG87MDtMOzs7OztOOzs7OzsKK0E0MTY7WUkgU1lMTEFCTEUgUVlSWDtMbzswO0w7Ozs7O047Ozs7OworQTQxNztZSSBTWUxMQUJMRSBRWVI7TG87MDtMOzs7OztOOzs7OzsKK0E0MTg7WUkgU1lMTEFCTEUgSkpJVDtMbzswO0w7Ozs7O047Ozs7OworQTQxOTtZSSBTWUxMQUJMRSBKSklYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDFBO1lJIFNZTExBQkxFIEpKSTtMbzswO0w7Ozs7O047Ozs7OworQTQxQjtZSSBTWUxMQUJMRSBKSklQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDFDO1lJIFNZTExBQkxFIEpKSUVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDFEO1lJIFNZTExBQkxFIEpKSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDFFO1lJIFNZTExBQkxFIEpKSUU7TG87MDtMOzs7OztOOzs7OzsKK0E0MUY7WUkgU1lMTEFCTEUgSkpJRVA7TG87MDtMOzs7OztOOzs7OzsKK0E0MjA7WUkgU1lMTEFCTEUgSkpVT1g7TG87MDtMOzs7OztOOzs7OzsKK0E0MjE7WUkgU1lMTEFCTEUgSkpVTztMbzswO0w7Ozs7O047Ozs7OworQTQyMjtZSSBTWUxMQUJMRSBKSlVPUDtMbzswO0w7Ozs7O047Ozs7OworQTQyMztZSSBTWUxMQUJMRSBKSk9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDI0O1lJIFNZTExBQkxFIEpKT1g7TG87MDtMOzs7OztOOzs7OzsKK0E0MjU7WUkgU1lMTEFCTEUgSkpPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDI2O1lJIFNZTExBQkxFIEpKT1A7TG87MDtMOzs7OztOOzs7OzsKK0E0Mjc7WUkgU1lMTEFCTEUgSkpVVDtMbzswO0w7Ozs7O047Ozs7OworQTQyODtZSSBTWUxMQUJMRSBKSlVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDI5O1lJIFNZTExBQkxFIEpKVTtMbzswO0w7Ozs7O047Ozs7OworQTQyQTtZSSBTWUxMQUJMRSBKSlVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDJCO1lJIFNZTExBQkxFIEpKVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDJDO1lJIFNZTExBQkxFIEpKVVI7TG87MDtMOzs7OztOOzs7OzsKK0E0MkQ7WUkgU1lMTEFCTEUgSkpZVDtMbzswO0w7Ozs7O047Ozs7OworQTQyRTtZSSBTWUxMQUJMRSBKSllYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDJGO1lJIFNZTExBQkxFIEpKWTtMbzswO0w7Ozs7O047Ozs7OworQTQzMDtZSSBTWUxMQUJMRSBKSllQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDMxO1lJIFNZTExBQkxFIE5KSVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0MzI7WUkgU1lMTEFCTEUgTkpJWDtMbzswO0w7Ozs7O047Ozs7OworQTQzMztZSSBTWUxMQUJMRSBOSkk7TG87MDtMOzs7OztOOzs7OzsKK0E0MzQ7WUkgU1lMTEFCTEUgTkpJUDtMbzswO0w7Ozs7O047Ozs7OworQTQzNTtZSSBTWUxMQUJMRSBOSklFVDtMbzswO0w7Ozs7O047Ozs7OworQTQzNjtZSSBTWUxMQUJMRSBOSklFWDtMbzswO0w7Ozs7O047Ozs7OworQTQzNztZSSBTWUxMQUJMRSBOSklFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDM4O1lJIFNZTExBQkxFIE5KSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDM5O1lJIFNZTExBQkxFIE5KVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDNBO1lJIFNZTExBQkxFIE5KVU87TG87MDtMOzs7OztOOzs7OzsKK0E0M0I7WUkgU1lMTEFCTEUgTkpPVDtMbzswO0w7Ozs7O047Ozs7OworQTQzQztZSSBTWUxMQUJMRSBOSk9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDNEO1lJIFNZTExBQkxFIE5KTztMbzswO0w7Ozs7O047Ozs7OworQTQzRTtZSSBTWUxMQUJMRSBOSk9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDNGO1lJIFNZTExBQkxFIE5KVVg7TG87MDtMOzs7OztOOzs7OzsKK0E0NDA7WUkgU1lMTEFCTEUgTkpVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDQxO1lJIFNZTExBQkxFIE5KVVA7TG87MDtMOzs7OztOOzs7OzsKK0E0NDI7WUkgU1lMTEFCTEUgTkpVUlg7TG87MDtMOzs7OztOOzs7OzsKK0E0NDM7WUkgU1lMTEFCTEUgTkpVUjtMbzswO0w7Ozs7O047Ozs7OworQTQ0NDtZSSBTWUxMQUJMRSBOSllUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDQ1O1lJIFNZTExBQkxFIE5KWVg7TG87MDtMOzs7OztOOzs7OzsKK0E0NDY7WUkgU1lMTEFCTEUgTkpZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDQ3O1lJIFNZTExBQkxFIE5KWVA7TG87MDtMOzs7OztOOzs7OzsKK0E0NDg7WUkgU1lMTEFCTEUgTkpZUlg7TG87MDtMOzs7OztOOzs7OzsKK0E0NDk7WUkgU1lMTEFCTEUgTkpZUjtMbzswO0w7Ozs7O047Ozs7OworQTQ0QTtZSSBTWUxMQUJMRSBOWUlUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDRCO1lJIFNZTExBQkxFIE5ZSVg7TG87MDtMOzs7OztOOzs7OzsKK0E0NEM7WUkgU1lMTEFCTEUgTllJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDREO1lJIFNZTExBQkxFIE5ZSVA7TG87MDtMOzs7OztOOzs7OzsKK0E0NEU7WUkgU1lMTEFCTEUgTllJRVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0NEY7WUkgU1lMTEFCTEUgTllJRVg7TG87MDtMOzs7OztOOzs7OzsKK0E0NTA7WUkgU1lMTEFCTEUgTllJRTtMbzswO0w7Ozs7O047Ozs7OworQTQ1MTtZSSBTWUxMQUJMRSBOWUlFUDtMbzswO0w7Ozs7O047Ozs7OworQTQ1MjtZSSBTWUxMQUJMRSBOWVVPWDtMbzswO0w7Ozs7O047Ozs7OworQTQ1MztZSSBTWUxMQUJMRSBOWVVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDU0O1lJIFNZTExBQkxFIE5ZVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDU1O1lJIFNZTExBQkxFIE5ZT1Q7TG87MDtMOzs7OztOOzs7OzsKK0E0NTY7WUkgU1lMTEFCTEUgTllPWDtMbzswO0w7Ozs7O047Ozs7OworQTQ1NztZSSBTWUxMQUJMRSBOWU87TG87MDtMOzs7OztOOzs7OzsKK0E0NTg7WUkgU1lMTEFCTEUgTllPUDtMbzswO0w7Ozs7O047Ozs7OworQTQ1OTtZSSBTWUxMQUJMRSBOWVVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDVBO1lJIFNZTExBQkxFIE5ZVVg7TG87MDtMOzs7OztOOzs7OzsKK0E0NUI7WUkgU1lMTEFCTEUgTllVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDVDO1lJIFNZTExBQkxFIE5ZVVA7TG87MDtMOzs7OztOOzs7OzsKK0E0NUQ7WUkgU1lMTEFCTEUgWElUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDVFO1lJIFNZTExBQkxFIFhJWDtMbzswO0w7Ozs7O047Ozs7OworQTQ1RjtZSSBTWUxMQUJMRSBYSTtMbzswO0w7Ozs7O047Ozs7OworQTQ2MDtZSSBTWUxMQUJMRSBYSVA7TG87MDtMOzs7OztOOzs7OzsKK0E0NjE7WUkgU1lMTEFCTEUgWElFVDtMbzswO0w7Ozs7O047Ozs7OworQTQ2MjtZSSBTWUxMQUJMRSBYSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDYzO1lJIFNZTExBQkxFIFhJRTtMbzswO0w7Ozs7O047Ozs7OworQTQ2NDtZSSBTWUxMQUJMRSBYSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDY1O1lJIFNZTExBQkxFIFhVT1g7TG87MDtMOzs7OztOOzs7OzsKK0E0NjY7WUkgU1lMTEFCTEUgWFVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDY3O1lJIFNZTExBQkxFIFhPVDtMbzswO0w7Ozs7O047Ozs7OworQTQ2ODtZSSBTWUxMQUJMRSBYT1g7TG87MDtMOzs7OztOOzs7OzsKK0E0Njk7WUkgU1lMTEFCTEUgWE87TG87MDtMOzs7OztOOzs7OzsKK0E0NkE7WUkgU1lMTEFCTEUgWE9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDZCO1lJIFNZTExBQkxFIFhZVDtMbzswO0w7Ozs7O047Ozs7OworQTQ2QztZSSBTWUxMQUJMRSBYWVg7TG87MDtMOzs7OztOOzs7OzsKK0E0NkQ7WUkgU1lMTEFCTEUgWFk7TG87MDtMOzs7OztOOzs7OzsKK0E0NkU7WUkgU1lMTEFCTEUgWFlQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDZGO1lJIFNZTExBQkxFIFhZUlg7TG87MDtMOzs7OztOOzs7OzsKK0E0NzA7WUkgU1lMTEFCTEUgWFlSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDcxO1lJIFNZTExBQkxFIFlJVDtMbzswO0w7Ozs7O047Ozs7OworQTQ3MjtZSSBTWUxMQUJMRSBZSVg7TG87MDtMOzs7OztOOzs7OzsKK0E0NzM7WUkgU1lMTEFCTEUgWUk7TG87MDtMOzs7OztOOzs7OzsKK0E0NzQ7WUkgU1lMTEFCTEUgWUlQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDc1O1lJIFNZTExBQkxFIFlJRVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0NzY7WUkgU1lMTEFCTEUgWUlFWDtMbzswO0w7Ozs7O047Ozs7OworQTQ3NztZSSBTWUxMQUJMRSBZSUU7TG87MDtMOzs7OztOOzs7OzsKK0E0Nzg7WUkgU1lMTEFCTEUgWUlFUDtMbzswO0w7Ozs7O047Ozs7OworQTQ3OTtZSSBTWUxMQUJMRSBZVU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDdBO1lJIFNZTExBQkxFIFlVT1g7TG87MDtMOzs7OztOOzs7OzsKK0E0N0I7WUkgU1lMTEFCTEUgWVVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDdDO1lJIFNZTExBQkxFIFlVT1A7TG87MDtMOzs7OztOOzs7OzsKK0E0N0Q7WUkgU1lMTEFCTEUgWU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDdFO1lJIFNZTExBQkxFIFlPWDtMbzswO0w7Ozs7O047Ozs7OworQTQ3RjtZSSBTWUxMQUJMRSBZTztMbzswO0w7Ozs7O047Ozs7OworQTQ4MDtZSSBTWUxMQUJMRSBZT1A7TG87MDtMOzs7OztOOzs7OzsKK0E0ODE7WUkgU1lMTEFCTEUgWVVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDgyO1lJIFNZTExBQkxFIFlVWDtMbzswO0w7Ozs7O047Ozs7OworQTQ4MztZSSBTWUxMQUJMRSBZVTtMbzswO0w7Ozs7O047Ozs7OworQTQ4NDtZSSBTWUxMQUJMRSBZVVA7TG87MDtMOzs7OztOOzs7OzsKK0E0ODU7WUkgU1lMTEFCTEUgWVVSWDtMbzswO0w7Ozs7O047Ozs7OworQTQ4NjtZSSBTWUxMQUJMRSBZVVI7TG87MDtMOzs7OztOOzs7OzsKK0E0ODc7WUkgU1lMTEFCTEUgWVlUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDg4O1lJIFNZTExBQkxFIFlZWDtMbzswO0w7Ozs7O047Ozs7OworQTQ4OTtZSSBTWUxMQUJMRSBZWTtMbzswO0w7Ozs7O047Ozs7OworQTQ4QTtZSSBTWUxMQUJMRSBZWVA7TG87MDtMOzs7OztOOzs7OzsKK0E0OEI7WUkgU1lMTEFCTEUgWVlSWDtMbzswO0w7Ozs7O047Ozs7OworQTQ4QztZSSBTWUxMQUJMRSBZWVI7TG87MDtMOzs7OztOOzs7OzsKK0E0OTA7WUkgUkFESUNBTCBRT1Q7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNDkxO1lJIFJBRElDQUwgTEk7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNDkyO1lJIFJBRElDQUwgS0lUO1NvOzA7T047Ozs7O047Ozs7OworQTQ5MztZSSBSQURJQ0FMIE5ZSVA7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNDk0O1lJIFJBRElDQUwgQ1lQO1NvOzA7T047Ozs7O047Ozs7OworQTQ5NTtZSSBSQURJQ0FMIFNTSTtTbzswO09OOzs7OztOOzs7OzsKK0E0OTY7WUkgUkFESUNBTCBHR09QO1NvOzA7T047Ozs7O047Ozs7OworQTQ5NztZSSBSQURJQ0FMIEdFUDtTbzswO09OOzs7OztOOzs7OzsKK0E0OTg7WUkgUkFESUNBTCBNSTtTbzswO09OOzs7OztOOzs7OzsKK0E0OTk7WUkgUkFESUNBTCBIWElUO1NvOzA7T047Ozs7O047Ozs7OworQTQ5QTtZSSBSQURJQ0FMIExZUjtTbzswO09OOzs7OztOOzs7OzsKK0E0OUI7WUkgUkFESUNBTCBCQlVUO1NvOzA7T047Ozs7O047Ozs7OworQTQ5QztZSSBSQURJQ0FMIE1PUDtTbzswO09OOzs7OztOOzs7OzsKK0E0OUQ7WUkgUkFESUNBTCBZTztTbzswO09OOzs7OztOOzs7OzsKK0E0OUU7WUkgUkFESUNBTCBQVVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNDlGO1lJIFJBRElDQUwgSFhVTztTbzswO09OOzs7OztOOzs7OzsKK0E0QTA7WUkgUkFESUNBTCBUQVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEExO1lJIFJBRElDQUwgR0E7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEE0O1lJIFJBRElDQUwgRERVUjtTbzswO09OOzs7OztOOzs7OzsKK0E0QTU7WUkgUkFESUNBTCBCVVI7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEE2O1lJIFJBRElDQUwgR0dVTztTbzswO09OOzs7OztOOzs7OzsKK0E0QTc7WUkgUkFESUNBTCBOWU9QO1NvOzA7T047Ozs7O047Ozs7OworQTRBODtZSSBSQURJQ0FMIFRVO1NvOzA7T047Ozs7O047Ozs7OworQTRBOTtZSSBSQURJQ0FMIE9QO1NvOzA7T047Ozs7O047Ozs7OworQTRBQTtZSSBSQURJQ0FMIEpKVVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEFCO1lJIFJBRElDQUwgWk9UO1NvOzA7T047Ozs7O047Ozs7OworQTRBQztZSSBSQURJQ0FMIFBZVDtTbzswO09OOzs7OztOOzs7OzsKK0E0QUQ7WUkgUkFESUNBTCBITU87U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEFFO1lJIFJBRElDQUwgWUlUO1NvOzA7T047Ozs7O047Ozs7OworQTRBRjtZSSBSQURJQ0FMIFZVUjtTbzswO09OOzs7OztOOzs7OzsKK0E0QjA7WUkgUkFESUNBTCBTSFk7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEIxO1lJIFJBRElDQUwgVkVQO1NvOzA7T047Ozs7O047Ozs7OworQTRCMjtZSSBSQURJQ0FMIFpBO1NvOzA7T047Ozs7O047Ozs7OworQTRCMztZSSBSQURJQ0FMIEpPO1NvOzA7T047Ozs7O047Ozs7OworQTRCNTtZSSBSQURJQ0FMIEpKWTtTbzswO09OOzs7OztOOzs7OzsKK0E0QjY7WUkgUkFESUNBTCBHT1Q7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEI3O1lJIFJBRElDQUwgSkpJRTtTbzswO09OOzs7OztOOzs7OzsKK0E0Qjg7WUkgUkFESUNBTCBXTztTbzswO09OOzs7OztOOzs7OzsKK0E0Qjk7WUkgUkFESUNBTCBEVTtTbzswO09OOzs7OztOOzs7OzsKK0E0QkE7WUkgUkFESUNBTCBTSFVSO1NvOzA7T047Ozs7O047Ozs7OworQTRCQjtZSSBSQURJQ0FMIExJRTtTbzswO09OOzs7OztOOzs7OzsKK0E0QkM7WUkgUkFESUNBTCBDWTtTbzswO09OOzs7OztOOzs7OzsKK0E0QkQ7WUkgUkFESUNBTCBDVU9QO1NvOzA7T047Ozs7O047Ozs7OworQTRCRTtZSSBSQURJQ0FMIENJUDtTbzswO09OOzs7OztOOzs7OzsKK0E0QkY7WUkgUkFESUNBTCBIWE9QO1NvOzA7T047Ozs7O047Ozs7OworQTRDMDtZSSBSQURJQ0FMIFNIQVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEMyO1lJIFJBRElDQUwgU0hPUDtTbzswO09OOzs7OztOOzs7OzsKK0E0QzM7WUkgUkFESUNBTCBDSEU7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEM0O1lJIFJBRElDQUwgWlpJRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEM2O1lJIFJBRElDQUwgS0U7U287MDtPTjs7Ozs7Tjs7Ozs7CitBQzAwOzxIYW5ndWwgU3lsbGFibGUsIEZpcnN0PjtMbzswO0w7Ozs7O047Ozs7OworRDdBMzs8SGFuZ3VsIFN5bGxhYmxlLCBMYXN0PjtMbzswO0w7Ozs7O047Ozs7OworRDgwMDs8Tm9uIFByaXZhdGUgVXNlIEhpZ2ggU3Vycm9nYXRlLCBGaXJzdD47Q3M7MDtMOzs7OztOOzs7OzsKK0RCN0Y7PE5vbiBQcml2YXRlIFVzZSBIaWdoIFN1cnJvZ2F0ZSwgTGFzdD47Q3M7MDtMOzs7OztOOzs7OzsKK0RCODA7PFByaXZhdGUgVXNlIEhpZ2ggU3Vycm9nYXRlLCBGaXJzdD47Q3M7MDtMOzs7OztOOzs7OzsKK0RCRkY7PFByaXZhdGUgVXNlIEhpZ2ggU3Vycm9nYXRlLCBMYXN0PjtDczswO0w7Ozs7O047Ozs7OworREMwMDs8TG93IFN1cnJvZ2F0ZSwgRmlyc3Q+O0NzOzA7TDs7Ozs7Tjs7Ozs7CitERkZGOzxMb3cgU3Vycm9nYXRlLCBMYXN0PjtDczswO0w7Ozs7O047Ozs7OworRTAwMDs8UHJpdmF0ZSBVc2UsIEZpcnN0PjtDbzswO0w7Ozs7O047Ozs7OworRjhGRjs8UHJpdmF0ZSBVc2UsIExhc3Q+O0NvOzA7TDs7Ozs7Tjs7Ozs7CitGOTAwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTAwO0xvOzA7TDs4QzQ4Ozs7O047Ozs7OworRjkwMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwMTtMbzswO0w7NjZGNDs7OztOOzs7OzsKK0Y5MDI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MDI7TG87MDtMOzhFQ0E7Ozs7Tjs7Ozs7CitGOTAzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTAzO0xvOzA7TDs4Q0M4Ozs7O047Ozs7OworRjkwNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwNDtMbzswO0w7NkVEMTs7OztOOzs7OzsKK0Y5MDU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MDU7TG87MDtMOzRFMzI7Ozs7Tjs7Ozs7CitGOTA2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTA2O0xvOzA7TDs1M0U1Ozs7O047Ozs7OworRjkwNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwNztMbzswO0w7OUY5Qzs7OztOOzs7OzsKK0Y5MDg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MDg7TG87MDtMOzlGOUM7Ozs7Tjs7Ozs7CitGOTA5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTA5O0xvOzA7TDs1OTUxOzs7O047Ozs7OworRjkwQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwQTtMbzswO0w7OTFEMTs7OztOOzs7OzsKK0Y5MEI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MEI7TG87MDtMOzU1ODc7Ozs7Tjs7Ozs7CitGOTBDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTBDO0xvOzA7TDs1OTQ4Ozs7O047Ozs7OworRjkwRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwRDtMbzswO0w7NjFGNjs7OztOOzs7OzsKK0Y5MEU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MEU7TG87MDtMOzc2Njk7Ozs7Tjs7Ozs7CitGOTBGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTBGO0xvOzA7TDs3Rjg1Ozs7O047Ozs7OworRjkxMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxMDtMbzswO0w7ODYzRjs7OztOOzs7OzsKK0Y5MTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MTE7TG87MDtMOzg3QkE7Ozs7Tjs7Ozs7CitGOTEyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTEyO0xvOzA7TDs4OEY4Ozs7O047Ozs7OworRjkxMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxMztMbzswO0w7OTA4Rjs7OztOOzs7OzsKK0Y5MTQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MTQ7TG87MDtMOzZBMDI7Ozs7Tjs7Ozs7CitGOTE1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTE1O0xvOzA7TDs2RDFCOzs7O047Ozs7OworRjkxNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxNjtMbzswO0w7NzBEOTs7OztOOzs7OzsKK0Y5MTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MTc7TG87MDtMOzczREU7Ozs7Tjs7Ozs7CitGOTE4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTE4O0xvOzA7TDs4NDNEOzs7O047Ozs7OworRjkxOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxOTtMbzswO0w7OTE2QTs7OztOOzs7OzsKK0Y5MUE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MUE7TG87MDtMOzk5RjE7Ozs7Tjs7Ozs7CitGOTFCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTFCO0xvOzA7TDs0RTgyOzs7O047Ozs7OworRjkxQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxQztMbzswO0w7NTM3NTs7OztOOzs7OzsKK0Y5MUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MUQ7TG87MDtMOzZCMDQ7Ozs7Tjs7Ozs7CitGOTFFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTFFO0xvOzA7TDs3MjFCOzs7O047Ozs7OworRjkxRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxRjtMbzswO0w7ODYyRDs7OztOOzs7OzsKK0Y5MjA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MjA7TG87MDtMOzlFMUU7Ozs7Tjs7Ozs7CitGOTIxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTIxO0xvOzA7TDs1RDUwOzs7O047Ozs7OworRjkyMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyMjtMbzswO0w7NkZFQjs7OztOOzs7OzsKK0Y5MjM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MjM7TG87MDtMOzg1Q0Q7Ozs7Tjs7Ozs7CitGOTI0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTI0O0xvOzA7TDs4OTY0Ozs7O047Ozs7OworRjkyNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyNTtMbzswO0w7NjJDOTs7OztOOzs7OzsKK0Y5MjY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MjY7TG87MDtMOzgxRDg7Ozs7Tjs7Ozs7CitGOTI3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTI3O0xvOzA7TDs4ODFGOzs7O047Ozs7OworRjkyODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyODtMbzswO0w7NUVDQTs7OztOOzs7OzsKK0Y5Mjk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Mjk7TG87MDtMOzY3MTc7Ozs7Tjs7Ozs7CitGOTJBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTJBO0xvOzA7TDs2RDZBOzs7O047Ozs7OworRjkyQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyQjtMbzswO0w7NzJGQzs7OztOOzs7OzsKK0Y5MkM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MkM7TG87MDtMOzkwQ0U7Ozs7Tjs7Ozs7CitGOTJEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTJEO0xvOzA7TDs0Rjg2Ozs7O047Ozs7OworRjkyRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyRTtMbzswO0w7NTFCNzs7OztOOzs7OzsKK0Y5MkY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MkY7TG87MDtMOzUyREU7Ozs7Tjs7Ozs7CitGOTMwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTMwO0xvOzA7TDs2NEM0Ozs7O047Ozs7OworRjkzMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzMTtMbzswO0w7NkFEMzs7OztOOzs7OzsKK0Y5MzI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MzI7TG87MDtMOzcyMTA7Ozs7Tjs7Ozs7CitGOTMzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTMzO0xvOzA7TDs3NkU3Ozs7O047Ozs7OworRjkzNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzNDtMbzswO0w7ODAwMTs7OztOOzs7OzsKK0Y5MzU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MzU7TG87MDtMOzg2MDY7Ozs7Tjs7Ozs7CitGOTM2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTM2O0xvOzA7TDs4NjVDOzs7O047Ozs7OworRjkzNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzNztMbzswO0w7OERFRjs7OztOOzs7OzsKK0Y5Mzg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Mzg7TG87MDtMOzk3MzI7Ozs7Tjs7Ozs7CitGOTM5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTM5O0xvOzA7TDs5QjZGOzs7O047Ozs7OworRjkzQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzQTtMbzswO0w7OURGQTs7OztOOzs7OzsKK0Y5M0I7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5M0I7TG87MDtMOzc4OEM7Ozs7Tjs7Ozs7CitGOTNDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTNDO0xvOzA7TDs3OTdGOzs7O047Ozs7OworRjkzRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzRDtMbzswO0w7N0RBMDs7OztOOzs7OzsKK0Y5M0U7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5M0U7TG87MDtMOzgzQzk7Ozs7Tjs7Ozs7CitGOTNGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTNGO0xvOzA7TDs5MzA0Ozs7O047Ozs7OworRjk0MDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0MDtMbzswO0w7OUU3Rjs7OztOOzs7OzsKK0Y5NDE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NDE7TG87MDtMOzhBRDY7Ozs7Tjs7Ozs7CitGOTQyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTQyO0xvOzA7TDs1OERGOzs7O047Ozs7OworRjk0MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0MztMbzswO0w7NUYwNDs7OztOOzs7OzsKK0Y5NDQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NDQ7TG87MDtMOzdDNjA7Ozs7Tjs7Ozs7CitGOTQ1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTQ1O0xvOzA7TDs4MDdFOzs7O047Ozs7OworRjk0NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0NjtMbzswO0w7NzI2Mjs7OztOOzs7OzsKK0Y5NDc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NDc7TG87MDtMOzc4Q0E7Ozs7Tjs7Ozs7CitGOTQ4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTQ4O0xvOzA7TDs4Q0MyOzs7O047Ozs7OworRjk0OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0OTtMbzswO0w7OTZGNzs7OztOOzs7OzsKK0Y5NEE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NEE7TG87MDtMOzU4RDg7Ozs7Tjs7Ozs7CitGOTRCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTRCO0xvOzA7TDs1QzYyOzs7O047Ozs7OworRjk0QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0QztMbzswO0w7NkExMzs7OztOOzs7OzsKK0Y5NEQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NEQ7TG87MDtMOzZEREE7Ozs7Tjs7Ozs7CitGOTRFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTRFO0xvOzA7TDs2RjBGOzs7O047Ozs7OworRjk0RjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0RjtMbzswO0w7N0QyRjs7OztOOzs7OzsKK0Y5NTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NTA7TG87MDtMOzdFMzc7Ozs7Tjs7Ozs7CitGOTUxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTUxO0xvOzA7TDs5NkZCOzs7O047Ozs7OworRjk1MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1MjtMbzswO0w7NTJEMjs7OztOOzs7OzsKK0Y5NTM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NTM7TG87MDtMOzgwOEI7Ozs7Tjs7Ozs7CitGOTU0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTU0O0xvOzA7TDs1MURDOzs7O047Ozs7OworRjk1NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1NTtMbzswO0w7NTFDQzs7OztOOzs7OzsKK0Y5NTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NTY7TG87MDtMOzdBMUM7Ozs7Tjs7Ozs7CitGOTU3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTU3O0xvOzA7TDs3REJFOzs7O047Ozs7OworRjk1ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1ODtMbzswO0w7ODNGMTs7OztOOzs7OzsKK0Y5NTk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NTk7TG87MDtMOzk2NzU7Ozs7Tjs7Ozs7CitGOTVBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTVBO0xvOzA7TDs4QjgwOzs7O047Ozs7OworRjk1QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1QjtMbzswO0w7NjJDRjs7OztOOzs7OzsKK0Y5NUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NUM7TG87MDtMOzZBMDI7Ozs7Tjs7Ozs7CitGOTVEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTVEO0xvOzA7TDs4QUZFOzs7O047Ozs7OworRjk1RTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1RTtMbzswO0w7NEUzOTs7OztOOzs7OzsKK0Y5NUY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NUY7TG87MDtMOzVCRTc7Ozs7Tjs7Ozs7CitGOTYwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTYwO0xvOzA7TDs2MDEyOzs7O047Ozs7OworRjk2MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2MTtMbzswO0w7NzM4Nzs7OztOOzs7OzsKK0Y5NjI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NjI7TG87MDtMOzc1NzA7Ozs7Tjs7Ozs7CitGOTYzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTYzO0xvOzA7TDs1MzE3Ozs7O047Ozs7OworRjk2NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2NDtMbzswO0w7NzhGQjs7OztOOzs7OzsKK0Y5NjU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NjU7TG87MDtMOzRGQkY7Ozs7Tjs7Ozs7CitGOTY2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTY2O0xvOzA7TDs1RkE5Ozs7O047Ozs7OworRjk2NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2NztMbzswO0w7NEUwRDs7OztOOzs7OzsKK0Y5Njg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Njg7TG87MDtMOzZDQ0M7Ozs7Tjs7Ozs7CitGOTY5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTY5O0xvOzA7TDs2NTc4Ozs7O047Ozs7OworRjk2QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2QTtMbzswO0w7N0QyMjs7OztOOzs7OzsKK0Y5NkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NkI7TG87MDtMOzUzQzM7Ozs7Tjs7Ozs7CitGOTZDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTZDO0xvOzA7TDs1ODVFOzs7O047Ozs7OworRjk2RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2RDtMbzswO0w7NzcwMTs7OztOOzs7OzsKK0Y5NkU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NkU7TG87MDtMOzg0NDk7Ozs7Tjs7Ozs7CitGOTZGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTZGO0xvOzA7TDs4QUFBOzs7O047Ozs7OworRjk3MDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3MDtMbzswO0w7NkJCQTs7OztOOzs7OzsKK0Y5NzE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NzE7TG87MDtMOzhGQjA7Ozs7Tjs7Ozs7CitGOTcyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTcyO0xvOzA7TDs2Qzg4Ozs7O047Ozs7OworRjk3MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3MztMbzswO0w7NjJGRTs7OztOOzs7OzsKK0Y5NzQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NzQ7TG87MDtMOzgyRTU7Ozs7Tjs7Ozs7CitGOTc1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTc1O0xvOzA7TDs2M0EwOzs7O047Ozs7OworRjk3NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3NjtMbzswO0w7NzU2NTs7OztOOzs7OzsKK0Y5Nzc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Nzc7TG87MDtMOzRFQUU7Ozs7Tjs7Ozs7CitGOTc4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTc4O0xvOzA7TDs1MTY5Ozs7O047Ozs7OworRjk3OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3OTtMbzswO0w7NTFDOTs7OztOOzs7OzsKK0Y5N0E7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5N0E7TG87MDtMOzY4ODE7Ozs7Tjs7Ozs7CitGOTdCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTdCO0xvOzA7TDs3Q0U3Ozs7O047Ozs7OworRjk3QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3QztMbzswO0w7ODI2Rjs7OztOOzs7OzsKK0Y5N0Q7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5N0Q7TG87MDtMOzhBRDI7Ozs7Tjs7Ozs7CitGOTdFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTdFO0xvOzA7TDs5MUNGOzs7O047Ozs7OworRjk3RjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3RjtMbzswO0w7NTJGNTs7OztOOzs7OzsKK0Y5ODA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5ODA7TG87MDtMOzU0NDI7Ozs7Tjs7Ozs7CitGOTgxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTgxO0xvOzA7TDs1OTczOzs7O047Ozs7OworRjk4MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4MjtMbzswO0w7NUVFQzs7OztOOzs7OzsKK0Y5ODM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5ODM7TG87MDtMOzY1QzU7Ozs7Tjs7Ozs7CitGOTg0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTg0O0xvOzA7TDs2RkZFOzs7O047Ozs7OworRjk4NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4NTtMbzswO0w7NzkyQTs7OztOOzs7OzsKK0Y5ODY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5ODY7TG87MDtMOzk1QUQ7Ozs7Tjs7Ozs7CitGOTg3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTg3O0xvOzA7TDs5QTZBOzs7O047Ozs7OworRjk4ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4ODtMbzswO0w7OUU5Nzs7OztOOzs7OzsKK0Y5ODk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5ODk7TG87MDtMOzlFQ0U7Ozs7Tjs7Ozs7CitGOThBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOThBO0xvOzA7TDs1MjlCOzs7O047Ozs7OworRjk4QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4QjtMbzswO0w7NjZDNjs7OztOOzs7OzsKK0Y5OEM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OEM7TG87MDtMOzZCNzc7Ozs7Tjs7Ozs7CitGOThEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOThEO0xvOzA7TDs4RjYyOzs7O047Ozs7OworRjk4RTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4RTtMbzswO0w7NUU3NDs7OztOOzs7OzsKK0Y5OEY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OEY7TG87MDtMOzYxOTA7Ozs7Tjs7Ozs7CitGOTkwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTkwO0xvOzA7TDs2MjAwOzs7O047Ozs7OworRjk5MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5MTtMbzswO0w7NjQ5QTs7OztOOzs7OzsKK0Y5OTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OTI7TG87MDtMOzZGMjM7Ozs7Tjs7Ozs7CitGOTkzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTkzO0xvOzA7TDs3MTQ5Ozs7O047Ozs7OworRjk5NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5NDtMbzswO0w7NzQ4OTs7OztOOzs7OzsKK0Y5OTU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OTU7TG87MDtMOzc5Q0E7Ozs7Tjs7Ozs7CitGOTk2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTk2O0xvOzA7TDs3REY0Ozs7O047Ozs7OworRjk5NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5NztMbzswO0w7ODA2Rjs7OztOOzs7OzsKK0Y5OTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OTg7TG87MDtMOzhGMjY7Ozs7Tjs7Ozs7CitGOTk5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTk5O0xvOzA7TDs4NEVFOzs7O047Ozs7OworRjk5QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5QTtMbzswO0w7OTAyMzs7OztOOzs7OzsKK0Y5OUI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OUI7TG87MDtMOzkzNEE7Ozs7Tjs7Ozs7CitGOTlDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTlDO0xvOzA7TDs1MjE3Ozs7O047Ozs7OworRjk5RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5RDtMbzswO0w7NTJBMzs7OztOOzs7OzsKK0Y5OUU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OUU7TG87MDtMOzU0QkQ7Ozs7Tjs7Ozs7CitGOTlGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTlGO0xvOzA7TDs3MEM4Ozs7O047Ozs7OworRjlBMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBMDtMbzswO0w7ODhDMjs7OztOOzs7OzsKK0Y5QTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QTE7TG87MDtMOzhBQUE7Ozs7Tjs7Ozs7CitGOUEyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUEyO0xvOzA7TDs1RUM5Ozs7O047Ozs7OworRjlBMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBMztMbzswO0w7NUZGNTs7OztOOzs7OzsKK0Y5QTQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QTQ7TG87MDtMOzYzN0I7Ozs7Tjs7Ozs7CitGOUE1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUE1O0xvOzA7TDs2QkFFOzs7O047Ozs7OworRjlBNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBNjtMbzswO0w7N0MzRTs7OztOOzs7OzsKK0Y5QTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QTc7TG87MDtMOzczNzU7Ozs7Tjs7Ozs7CitGOUE4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUE4O0xvOzA7TDs0RUU0Ozs7O047Ozs7OworRjlBOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBOTtMbzswO0w7NTZGOTs7OztOOzs7OzsKK0Y5QUE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QUE7TG87MDtMOzVCRTc7Ozs7Tjs7Ozs7CitGOUFCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUFCO0xvOzA7TDs1REJBOzs7O047Ozs7OworRjlBQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBQztMbzswO0w7NjAxQzs7OztOOzs7OzsKK0Y5QUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QUQ7TG87MDtMOzczQjI7Ozs7Tjs7Ozs7CitGOUFFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUFFO0xvOzA7TDs3NDY5Ozs7O047Ozs7OworRjlBRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBRjtMbzswO0w7N0Y5QTs7OztOOzs7OzsKK0Y5QjA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QjA7TG87MDtMOzgwNDY7Ozs7Tjs7Ozs7CitGOUIxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUIxO0xvOzA7TDs5MjM0Ozs7O047Ozs7OworRjlCMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCMjtMbzswO0w7OTZGNjs7OztOOzs7OzsKK0Y5QjM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QjM7TG87MDtMOzk3NDg7Ozs7Tjs7Ozs7CitGOUI0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUI0O0xvOzA7TDs5ODE4Ozs7O047Ozs7OworRjlCNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCNTtMbzswO0w7NEY4Qjs7OztOOzs7OzsKK0Y5QjY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QjY7TG87MDtMOzc5QUU7Ozs7Tjs7Ozs7CitGOUI3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUI3O0xvOzA7TDs5MUI0Ozs7O047Ozs7OworRjlCODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCODtMbzswO0w7OTZCODs7OztOOzs7OzsKK0Y5Qjk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Qjk7TG87MDtMOzYwRTE7Ozs7Tjs7Ozs7CitGOUJBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUJBO0xvOzA7TDs0RTg2Ozs7O047Ozs7OworRjlCQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCQjtMbzswO0w7NTBEQTs7OztOOzs7OzsKK0Y5QkM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QkM7TG87MDtMOzVCRUU7Ozs7Tjs7Ozs7CitGOUJEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUJEO0xvOzA7TDs1QzNGOzs7O047Ozs7OworRjlCRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCRTtMbzswO0w7NjU5OTs7OztOOzs7OzsKK0Y5QkY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QkY7TG87MDtMOzZBMDI7Ozs7Tjs7Ozs7CitGOUMwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUMwO0xvOzA7TDs3MUNFOzs7O047Ozs7OworRjlDMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDMTtMbzswO0w7NzY0Mjs7OztOOzs7OzsKK0Y5QzI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QzI7TG87MDtMOzg0RkM7Ozs7Tjs7Ozs7CitGOUMzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUMzO0xvOzA7TDs5MDdDOzs7O047Ozs7OworRjlDNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDNDtMbzswO0w7OUY4RDs7OztOOzs7OzsKK0Y5QzU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QzU7TG87MDtMOzY2ODg7Ozs7Tjs7Ozs7CitGOUM2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUM2O0xvOzA7TDs5NjJFOzs7O047Ozs7OworRjlDNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDNztMbzswO0w7NTI4OTs7OztOOzs7OzsKK0Y5Qzg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Qzg7TG87MDtMOzY3N0I7Ozs7Tjs7Ozs7CitGOUM5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUM5O0xvOzA7TDs2N0YzOzs7O047Ozs7OworRjlDQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDQTtMbzswO0w7NkQ0MTs7OztOOzs7OzsKK0Y5Q0I7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Q0I7TG87MDtMOzZFOUM7Ozs7Tjs7Ozs7CitGOUNDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUNDO0xvOzA7TDs3NDA5Ozs7O047Ozs7OworRjlDRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDRDtMbzswO0w7NzU1OTs7OztOOzs7OzsKK0Y5Q0U7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Q0U7TG87MDtMOzc4NkI7Ozs7Tjs7Ozs7CitGOUNGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUNGO0xvOzA7TDs3RDEwOzs7O047Ozs7OworRjlEMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlEMDtMbzswO0w7OTg1RTs7OztOOzs7OzsKK0Y5RDE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RDE7TG87MDtMOzUxNkQ7Ozs7Tjs7Ozs7CitGOUQyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUQyO0xvOzA7TDs2MjJFOzs7O047Ozs7OworRjlEMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlEMztMbzswO0w7OTY3ODs7OztOOzs7OzsKK0Y5RDQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RDQ7TG87MDtMOzUwMkI7Ozs7Tjs7Ozs7CitGOUQ1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUQ1O0xvOzA7TDs1RDE5Ozs7O047Ozs7OworRjlENjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlENjtMbzswO0w7NkRFQTs7OztOOzs7OzsKK0Y5RDc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RDc7TG87MDtMOzhGMkE7Ozs7Tjs7Ozs7CitGOUQ4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUQ4O0xvOzA7TDs1RjhCOzs7O047Ozs7OworRjlEOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlEOTtMbzswO0w7NjE0NDs7OztOOzs7OzsKK0Y5REE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5REE7TG87MDtMOzY4MTc7Ozs7Tjs7Ozs7CitGOURCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOURCO0xvOzA7TDs3Mzg3Ozs7O047Ozs7OworRjlEQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlEQztMbzswO0w7OTY4Njs7OztOOzs7OzsKK0Y5REQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5REQ7TG87MDtMOzUyMjk7Ozs7Tjs7Ozs7CitGOURFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOURFO0xvOzA7TDs1NDBGOzs7O047Ozs7OworRjlERjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlERjtMbzswO0w7NUM2NTs7OztOOzs7OzsKK0Y5RTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RTA7TG87MDtMOzY2MTM7Ozs7Tjs7Ozs7CitGOUUxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUUxO0xvOzA7TDs2NzRFOzs7O047Ozs7OworRjlFMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFMjtMbzswO0w7NjhBODs7OztOOzs7OzsKK0Y5RTM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RTM7TG87MDtMOzZDRTU7Ozs7Tjs7Ozs7CitGOUU0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUU0O0xvOzA7TDs3NDA2Ozs7O047Ozs7OworRjlFNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFNTtMbzswO0w7NzVFMjs7OztOOzs7OzsKK0Y5RTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RTY7TG87MDtMOzdGNzk7Ozs7Tjs7Ozs7CitGOUU3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUU3O0xvOzA7TDs4OENGOzs7O047Ozs7OworRjlFODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFODtMbzswO0w7ODhFMTs7OztOOzs7OzsKK0Y5RTk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RTk7TG87MDtMOzkxQ0M7Ozs7Tjs7Ozs7CitGOUVBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUVBO0xvOzA7TDs5NkUyOzs7O047Ozs7OworRjlFQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFQjtMbzswO0w7NTMzRjs7OztOOzs7OzsKK0Y5RUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RUM7TG87MDtMOzZFQkE7Ozs7Tjs7Ozs7CitGOUVEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUVEO0xvOzA7TDs1NDFEOzs7O047Ozs7OworRjlFRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFRTtMbzswO0w7NzFEMDs7OztOOzs7OzsKK0Y5RUY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RUY7TG87MDtMOzc0OTg7Ozs7Tjs7Ozs7CitGOUYwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUYwO0xvOzA7TDs4NUZBOzs7O047Ozs7OworRjlGMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGMTtMbzswO0w7OTZBMzs7OztOOzs7OzsKK0Y5RjI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RjI7TG87MDtMOzlDNTc7Ozs7Tjs7Ozs7CitGOUYzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUYzO0xvOzA7TDs5RTlGOzs7O047Ozs7OworRjlGNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGNDtMbzswO0w7Njc5Nzs7OztOOzs7OzsKK0Y5RjU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RjU7TG87MDtMOzZEQ0I7Ozs7Tjs7Ozs7CitGOUY2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUY2O0xvOzA7TDs4MUU4Ozs7O047Ozs7OworRjlGNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGNztMbzswO0w7N0FDQjs7OztOOzs7OzsKK0Y5Rjg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Rjg7TG87MDtMOzdCMjA7Ozs7Tjs7Ozs7CitGOUY5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUY5O0xvOzA7TDs3QzkyOzs7O047Ozs7OworRjlGQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGQTtMbzswO0w7NzJDMDs7OztOOzs7OzsKK0Y5RkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RkI7TG87MDtMOzcwOTk7Ozs7Tjs7Ozs7CitGOUZDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUZDO0xvOzA7TDs4QjU4Ozs7O047Ozs7OworRjlGRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGRDtMbzswO0w7NEVDMDs7OztOOzs7OzsKK0Y5RkU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RkU7TG87MDtMOzgzMzY7Ozs7Tjs7Ozs7CitGOUZGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUZGO0xvOzA7TDs1MjNBOzs7O047Ozs7OworRkEwMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwMDtMbzswO0w7NTIwNzs7OztOOzs7OzsKK0ZBMDE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMDE7TG87MDtMOzVFQTY7Ozs7Tjs7Ozs7CitGQTAyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTAyO0xvOzA7TDs2MkQzOzs7O047Ozs7OworRkEwMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwMztMbzswO0w7N0NENjs7OztOOzs7OzsKK0ZBMDQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMDQ7TG87MDtMOzVCODU7Ozs7Tjs7Ozs7CitGQTA1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTA1O0xvOzA7TDs2RDFFOzs7O047Ozs7OworRkEwNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwNjtMbzswO0w7NjZCNDs7OztOOzs7OzsKK0ZBMDc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMDc7TG87MDtMOzhGM0I7Ozs7Tjs7Ozs7CitGQTA4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTA4O0xvOzA7TDs4ODRDOzs7O047Ozs7OworRkEwOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwOTtMbzswO0w7OTY0RDs7OztOOzs7OzsKK0ZBMEE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMEE7TG87MDtMOzg5OEI7Ozs7Tjs7Ozs7CitGQTBCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTBCO0xvOzA7TDs1RUQzOzs7O047Ozs7OworRkEwQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwQztMbzswO0w7NTE0MDs7OztOOzs7OzsKK0ZBMEQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMEQ7TG87MDtMOzU1QzA7Ozs7Tjs7Ozs7CitGQTBFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitGQTBGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTBGO0xvOzA7TDs7Ozs7Tjs7Ozs7CitGQTEwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTEwO0xvOzA7TDs1ODVBOzs7O047Ozs7OworRkExMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExMTtMbzswO0w7Ozs7O047Ozs7OworRkExMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExMjtMbzswO0w7NjY3NDs7OztOOzs7OzsKK0ZBMTM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMTM7TG87MDtMOzs7OztOOzs7OzsKK0ZBMTQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMTQ7TG87MDtMOzs7OztOOzs7OzsKK0ZBMTU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMTU7TG87MDtMOzUxREU7Ozs7Tjs7Ozs7CitGQTE2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTE2O0xvOzA7TDs3MzJBOzs7O047Ozs7OworRkExNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExNztMbzswO0w7NzZDQTs7OztOOzs7OzsKK0ZBMTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMTg7TG87MDtMOzc5M0M7Ozs7Tjs7Ozs7CitGQTE5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTE5O0xvOzA7TDs3OTVFOzs7O047Ozs7OworRkExQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExQTtMbzswO0w7Nzk2NTs7OztOOzs7OzsKK0ZBMUI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMUI7TG87MDtMOzc5OEY7Ozs7Tjs7Ozs7CitGQTFDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTFDO0xvOzA7TDs5NzU2Ozs7O047Ozs7OworRkExRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExRDtMbzswO0w7N0NCRTs7OztOOzs7OzsKK0ZBMUU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMUU7TG87MDtMOzdGQkQ7Ozs7Tjs7Ozs7CitGQTFGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTFGO0xvOzA7TDs7Ozs7Tjs7Kjs7OworRkEyMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyMDtMbzswO0w7ODYxMjs7OztOOzs7OzsKK0ZBMjE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMjE7TG87MDtMOzs7OztOOzs7OzsKK0ZBMjI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMjI7TG87MDtMOzhBRjg7Ozs7Tjs7Ozs7CitGQTIzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTIzO0xvOzA7TDs7Ozs7Tjs7Kjs7OworRkEyNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyNDtMbzswO0w7Ozs7O047Ozs7OworRkEyNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyNTtMbzswO0w7OTAzODs7OztOOzs7OzsKK0ZBMjY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMjY7TG87MDtMOzkwRkQ7Ozs7Tjs7Ozs7CitGQTI3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTI3O0xvOzA7TDs7Ozs7Tjs7Ozs7CitGQTI4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTI4O0xvOzA7TDs7Ozs7Tjs7Ozs7CitGQTI5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTI5O0xvOzA7TDs7Ozs7Tjs7Ozs7CitGQTJBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTJBO0xvOzA7TDs5OEVGOzs7O047Ozs7OworRkEyQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyQjtMbzswO0w7OThGQzs7OztOOzs7OzsKK0ZBMkM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMkM7TG87MDtMOzk5Mjg7Ozs7Tjs7Ozs7CitGQTJEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTJEO0xvOzA7TDs5REI0Ozs7O047Ozs7OworRkIwMDtMQVRJTiBTTUFMTCBMSUdBVFVSRSBGRjtMbDswO0w7PGNvbXBhdD4gMDA2NiAwMDY2Ozs7O047Ozs7OworRkIwMTtMQVRJTiBTTUFMTCBMSUdBVFVSRSBGSTtMbDswO0w7PGNvbXBhdD4gMDA2NiAwMDY5Ozs7O047Ozs7OworRkIwMjtMQVRJTiBTTUFMTCBMSUdBVFVSRSBGTDtMbDswO0w7PGNvbXBhdD4gMDA2NiAwMDZDOzs7O047Ozs7OworRkIwMztMQVRJTiBTTUFMTCBMSUdBVFVSRSBGRkk7TGw7MDtMOzxjb21wYXQ+IDAwNjYgMDA2NiAwMDY5Ozs7O047Ozs7OworRkIwNDtMQVRJTiBTTUFMTCBMSUdBVFVSRSBGRkw7TGw7MDtMOzxjb21wYXQ+IDAwNjYgMDA2NiAwMDZDOzs7O047Ozs7OworRkIwNTtMQVRJTiBTTUFMTCBMSUdBVFVSRSBMT05HIFMgVDtMbDswO0w7PGNvbXBhdD4gMDE3RiAwMDc0Ozs7O047Ozs7OworRkIwNjtMQVRJTiBTTUFMTCBMSUdBVFVSRSBTVDtMbDswO0w7PGNvbXBhdD4gMDA3MyAwMDc0Ozs7O047Ozs7OworRkIxMztBUk1FTklBTiBTTUFMTCBMSUdBVFVSRSBNRU4gTk9XO0xsOzA7TDs8Y29tcGF0PiAwNTc0IDA1NzY7Ozs7Tjs7Ozs7CitGQjE0O0FSTUVOSUFOIFNNQUxMIExJR0FUVVJFIE1FTiBFQ0g7TGw7MDtMOzxjb21wYXQ+IDA1NzQgMDU2NTs7OztOOzs7OzsKK0ZCMTU7QVJNRU5JQU4gU01BTEwgTElHQVRVUkUgTUVOIElOSTtMbDswO0w7PGNvbXBhdD4gMDU3NCAwNTZCOzs7O047Ozs7OworRkIxNjtBUk1FTklBTiBTTUFMTCBMSUdBVFVSRSBWRVcgTk9XO0xsOzA7TDs8Y29tcGF0PiAwNTdFIDA1NzY7Ozs7Tjs7Ozs7CitGQjE3O0FSTUVOSUFOIFNNQUxMIExJR0FUVVJFIE1FTiBYRUg7TGw7MDtMOzxjb21wYXQ+IDA1NzQgMDU2RDs7OztOOzs7OzsKK0ZCMUQ7SEVCUkVXIExFVFRFUiBZT0QgV0lUSCBISVJJUTtMbzswO1I7MDVEOSAwNUI0Ozs7O047Ozs7OworRkIxRTtIRUJSRVcgUE9JTlQgSlVERU8tU1BBTklTSCBWQVJJS0E7TW47MjY7TlNNOzs7OztOO0hFQlJFVyBQT0lOVCBWQVJJS0E7Ozs7CitGQjFGO0hFQlJFVyBMSUdBVFVSRSBZSURESVNIIFlPRCBZT0QgUEFUQUg7TG87MDtSOzA1RjIgMDVCNzs7OztOOzs7OzsKK0ZCMjA7SEVCUkVXIExFVFRFUiBBTFRFUk5BVElWRSBBWUlOO0xvOzA7Ujs8Zm9udD4gMDVFMjs7OztOOzs7OzsKK0ZCMjE7SEVCUkVXIExFVFRFUiBXSURFIEFMRUY7TG87MDtSOzxmb250PiAwNUQwOzs7O047Ozs7OworRkIyMjtIRUJSRVcgTEVUVEVSIFdJREUgREFMRVQ7TG87MDtSOzxmb250PiAwNUQzOzs7O047Ozs7OworRkIyMztIRUJSRVcgTEVUVEVSIFdJREUgSEU7TG87MDtSOzxmb250PiAwNUQ0Ozs7O047Ozs7OworRkIyNDtIRUJSRVcgTEVUVEVSIFdJREUgS0FGO0xvOzA7Ujs8Zm9udD4gMDVEQjs7OztOOzs7OzsKK0ZCMjU7SEVCUkVXIExFVFRFUiBXSURFIExBTUVEO0xvOzA7Ujs8Zm9udD4gMDVEQzs7OztOOzs7OzsKK0ZCMjY7SEVCUkVXIExFVFRFUiBXSURFIEZJTkFMIE1FTTtMbzswO1I7PGZvbnQ+IDA1REQ7Ozs7Tjs7Ozs7CitGQjI3O0hFQlJFVyBMRVRURVIgV0lERSBSRVNIO0xvOzA7Ujs8Zm9udD4gMDVFODs7OztOOzs7OzsKK0ZCMjg7SEVCUkVXIExFVFRFUiBXSURFIFRBVjtMbzswO1I7PGZvbnQ+IDA1RUE7Ozs7Tjs7Ozs7CitGQjI5O0hFQlJFVyBMRVRURVIgQUxURVJOQVRJVkUgUExVUyBTSUdOO1NtOzA7RVQ7PGZvbnQ+IDAwMkI7Ozs7Tjs7Ozs7CitGQjJBO0hFQlJFVyBMRVRURVIgU0hJTiBXSVRIIFNISU4gRE9UO0xvOzA7UjswNUU5IDA1QzE7Ozs7Tjs7Ozs7CitGQjJCO0hFQlJFVyBMRVRURVIgU0hJTiBXSVRIIFNJTiBET1Q7TG87MDtSOzA1RTkgMDVDMjs7OztOOzs7OzsKK0ZCMkM7SEVCUkVXIExFVFRFUiBTSElOIFdJVEggREFHRVNIIEFORCBTSElOIERPVDtMbzswO1I7RkI0OSAwNUMxOzs7O047Ozs7OworRkIyRDtIRUJSRVcgTEVUVEVSIFNISU4gV0lUSCBEQUdFU0ggQU5EIFNJTiBET1Q7TG87MDtSO0ZCNDkgMDVDMjs7OztOOzs7OzsKK0ZCMkU7SEVCUkVXIExFVFRFUiBBTEVGIFdJVEggUEFUQUg7TG87MDtSOzA1RDAgMDVCNzs7OztOOzs7OzsKK0ZCMkY7SEVCUkVXIExFVFRFUiBBTEVGIFdJVEggUUFNQVRTO0xvOzA7UjswNUQwIDA1Qjg7Ozs7Tjs7Ozs7CitGQjMwO0hFQlJFVyBMRVRURVIgQUxFRiBXSVRIIE1BUElRO0xvOzA7UjswNUQwIDA1QkM7Ozs7Tjs7Ozs7CitGQjMxO0hFQlJFVyBMRVRURVIgQkVUIFdJVEggREFHRVNIO0xvOzA7UjswNUQxIDA1QkM7Ozs7Tjs7Ozs7CitGQjMyO0hFQlJFVyBMRVRURVIgR0lNRUwgV0lUSCBEQUdFU0g7TG87MDtSOzA1RDIgMDVCQzs7OztOOzs7OzsKK0ZCMzM7SEVCUkVXIExFVFRFUiBEQUxFVCBXSVRIIERBR0VTSDtMbzswO1I7MDVEMyAwNUJDOzs7O047Ozs7OworRkIzNDtIRUJSRVcgTEVUVEVSIEhFIFdJVEggTUFQSVE7TG87MDtSOzA1RDQgMDVCQzs7OztOOzs7OzsKK0ZCMzU7SEVCUkVXIExFVFRFUiBWQVYgV0lUSCBEQUdFU0g7TG87MDtSOzA1RDUgMDVCQzs7OztOOzs7OzsKK0ZCMzY7SEVCUkVXIExFVFRFUiBaQVlJTiBXSVRIIERBR0VTSDtMbzswO1I7MDVENiAwNUJDOzs7O047Ozs7OworRkIzODtIRUJSRVcgTEVUVEVSIFRFVCBXSVRIIERBR0VTSDtMbzswO1I7MDVEOCAwNUJDOzs7O047Ozs7OworRkIzOTtIRUJSRVcgTEVUVEVSIFlPRCBXSVRIIERBR0VTSDtMbzswO1I7MDVEOSAwNUJDOzs7O047Ozs7OworRkIzQTtIRUJSRVcgTEVUVEVSIEZJTkFMIEtBRiBXSVRIIERBR0VTSDtMbzswO1I7MDVEQSAwNUJDOzs7O047Ozs7OworRkIzQjtIRUJSRVcgTEVUVEVSIEtBRiBXSVRIIERBR0VTSDtMbzswO1I7MDVEQiAwNUJDOzs7O047Ozs7OworRkIzQztIRUJSRVcgTEVUVEVSIExBTUVEIFdJVEggREFHRVNIO0xvOzA7UjswNURDIDA1QkM7Ozs7Tjs7Ozs7CitGQjNFO0hFQlJFVyBMRVRURVIgTUVNIFdJVEggREFHRVNIO0xvOzA7UjswNURFIDA1QkM7Ozs7Tjs7Ozs7CitGQjQwO0hFQlJFVyBMRVRURVIgTlVOIFdJVEggREFHRVNIO0xvOzA7UjswNUUwIDA1QkM7Ozs7Tjs7Ozs7CitGQjQxO0hFQlJFVyBMRVRURVIgU0FNRUtIIFdJVEggREFHRVNIO0xvOzA7UjswNUUxIDA1QkM7Ozs7Tjs7Ozs7CitGQjQzO0hFQlJFVyBMRVRURVIgRklOQUwgUEUgV0lUSCBEQUdFU0g7TG87MDtSOzA1RTMgMDVCQzs7OztOOzs7OzsKK0ZCNDQ7SEVCUkVXIExFVFRFUiBQRSBXSVRIIERBR0VTSDtMbzswO1I7MDVFNCAwNUJDOzs7O047Ozs7OworRkI0NjtIRUJSRVcgTEVUVEVSIFRTQURJIFdJVEggREFHRVNIO0xvOzA7UjswNUU2IDA1QkM7Ozs7Tjs7Ozs7CitGQjQ3O0hFQlJFVyBMRVRURVIgUU9GIFdJVEggREFHRVNIO0xvOzA7UjswNUU3IDA1QkM7Ozs7Tjs7Ozs7CitGQjQ4O0hFQlJFVyBMRVRURVIgUkVTSCBXSVRIIERBR0VTSDtMbzswO1I7MDVFOCAwNUJDOzs7O047Ozs7OworRkI0OTtIRUJSRVcgTEVUVEVSIFNISU4gV0lUSCBEQUdFU0g7TG87MDtSOzA1RTkgMDVCQzs7OztOOzs7OzsKK0ZCNEE7SEVCUkVXIExFVFRFUiBUQVYgV0lUSCBEQUdFU0g7TG87MDtSOzA1RUEgMDVCQzs7OztOOzs7OzsKK0ZCNEI7SEVCUkVXIExFVFRFUiBWQVYgV0lUSCBIT0xBTTtMbzswO1I7MDVENSAwNUI5Ozs7O047Ozs7OworRkI0QztIRUJSRVcgTEVUVEVSIEJFVCBXSVRIIFJBRkU7TG87MDtSOzA1RDEgMDVCRjs7OztOOzs7OzsKK0ZCNEQ7SEVCUkVXIExFVFRFUiBLQUYgV0lUSCBSQUZFO0xvOzA7UjswNURCIDA1QkY7Ozs7Tjs7Ozs7CitGQjRFO0hFQlJFVyBMRVRURVIgUEUgV0lUSCBSQUZFO0xvOzA7UjswNUU0IDA1QkY7Ozs7Tjs7Ozs7CitGQjRGO0hFQlJFVyBMSUdBVFVSRSBBTEVGIExBTUVEO0xvOzA7Ujs8Y29tcGF0PiAwNUQwIDA1REM7Ozs7Tjs7Ozs7CitGQjUwO0FSQUJJQyBMRVRURVIgQUxFRiBXQVNMQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjcxOzs7O047Ozs7OworRkI1MTtBUkFCSUMgTEVUVEVSIEFMRUYgV0FTTEEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY3MTs7OztOOzs7OzsKK0ZCNTI7QVJBQklDIExFVFRFUiBCRUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2N0I7Ozs7Tjs7Ozs7CitGQjUzO0FSQUJJQyBMRVRURVIgQkVFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjdCOzs7O047Ozs7OworRkI1NDtBUkFCSUMgTEVUVEVSIEJFRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2N0I7Ozs7Tjs7Ozs7CitGQjU1O0FSQUJJQyBMRVRURVIgQkVFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2N0I7Ozs7Tjs7Ozs7CitGQjU2O0FSQUJJQyBMRVRURVIgUEVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2N0U7Ozs7Tjs7Ozs7CitGQjU3O0FSQUJJQyBMRVRURVIgUEVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2N0U7Ozs7Tjs7Ozs7CitGQjU4O0FSQUJJQyBMRVRURVIgUEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjdFOzs7O047Ozs7OworRkI1OTtBUkFCSUMgTEVUVEVSIFBFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2N0U7Ozs7Tjs7Ozs7CitGQjVBO0FSQUJJQyBMRVRURVIgQkVIRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY4MDs7OztOOzs7OzsKK0ZCNUI7QVJBQklDIExFVFRFUiBCRUhFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjgwOzs7O047Ozs7OworRkI1QztBUkFCSUMgTEVUVEVSIEJFSEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjgwOzs7O047Ozs7OworRkI1RDtBUkFCSUMgTEVUVEVSIEJFSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY4MDs7OztOOzs7OzsKK0ZCNUU7QVJBQklDIExFVFRFUiBUVEVIRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY3QTs7OztOOzs7OzsKK0ZCNUY7QVJBQklDIExFVFRFUiBUVEVIRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY3QTs7OztOOzs7OzsKK0ZCNjA7QVJBQklDIExFVFRFUiBUVEVIRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2N0E7Ozs7Tjs7Ozs7CitGQjYxO0FSQUJJQyBMRVRURVIgVFRFSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY3QTs7OztOOzs7OzsKK0ZCNjI7QVJBQklDIExFVFRFUiBURUhFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjdGOzs7O047Ozs7OworRkI2MztBUkFCSUMgTEVUVEVSIFRFSEVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2N0Y7Ozs7Tjs7Ozs7CitGQjY0O0FSQUJJQyBMRVRURVIgVEVIRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2N0Y7Ozs7Tjs7Ozs7CitGQjY1O0FSQUJJQyBMRVRURVIgVEVIRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjdGOzs7O047Ozs7OworRkI2NjtBUkFCSUMgTEVUVEVSIFRURUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY3OTs7OztOOzs7OzsKK0ZCNjc7QVJBQklDIExFVFRFUiBUVEVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2Nzk7Ozs7Tjs7Ozs7CitGQjY4O0FSQUJJQyBMRVRURVIgVFRFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY3OTs7OztOOzs7OzsKK0ZCNjk7QVJBQklDIExFVFRFUiBUVEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY3OTs7OztOOzs7OzsKK0ZCNkE7QVJBQklDIExFVFRFUiBWRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZBNDs7OztOOzs7OzsKK0ZCNkI7QVJBQklDIExFVFRFUiBWRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZBNDs7OztOOzs7OzsKK0ZCNkM7QVJBQklDIExFVFRFUiBWRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2QTQ7Ozs7Tjs7Ozs7CitGQjZEO0FSQUJJQyBMRVRURVIgVkVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDZBNDs7OztOOzs7OzsKK0ZCNkU7QVJBQklDIExFVFRFUiBQRUhFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkE2Ozs7O047Ozs7OworRkI2RjtBUkFCSUMgTEVUVEVSIFBFSEVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2QTY7Ozs7Tjs7Ozs7CitGQjcwO0FSQUJJQyBMRVRURVIgUEVIRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2QTY7Ozs7Tjs7Ozs7CitGQjcxO0FSQUJJQyBMRVRURVIgUEVIRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNkE2Ozs7O047Ozs7OworRkI3MjtBUkFCSUMgTEVUVEVSIERZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY4NDs7OztOOzs7OzsKK0ZCNzM7QVJBQklDIExFVFRFUiBEWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2ODQ7Ozs7Tjs7Ozs7CitGQjc0O0FSQUJJQyBMRVRURVIgRFlFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY4NDs7OztOOzs7OzsKK0ZCNzU7QVJBQklDIExFVFRFUiBEWUVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY4NDs7OztOOzs7OzsKK0ZCNzY7QVJBQklDIExFVFRFUiBOWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2ODM7Ozs7Tjs7Ozs7CitGQjc3O0FSQUJJQyBMRVRURVIgTllFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjgzOzs7O047Ozs7OworRkI3ODtBUkFCSUMgTEVUVEVSIE5ZRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2ODM7Ozs7Tjs7Ozs7CitGQjc5O0FSQUJJQyBMRVRURVIgTllFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2ODM7Ozs7Tjs7Ozs7CitGQjdBO0FSQUJJQyBMRVRURVIgVENIRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY4Njs7OztOOzs7OzsKK0ZCN0I7QVJBQklDIExFVFRFUiBUQ0hFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjg2Ozs7O047Ozs7OworRkI3QztBUkFCSUMgTEVUVEVSIFRDSEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjg2Ozs7O047Ozs7OworRkI3RDtBUkFCSUMgTEVUVEVSIFRDSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY4Njs7OztOOzs7OzsKK0ZCN0U7QVJBQklDIExFVFRFUiBUQ0hFSEVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2ODc7Ozs7Tjs7Ozs7CitGQjdGO0FSQUJJQyBMRVRURVIgVENIRUhFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjg3Ozs7O047Ozs7OworRkI4MDtBUkFCSUMgTEVUVEVSIFRDSEVIRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2ODc7Ozs7Tjs7Ozs7CitGQjgxO0FSQUJJQyBMRVRURVIgVENIRUhFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2ODc7Ozs7Tjs7Ozs7CitGQjgyO0FSQUJJQyBMRVRURVIgRERBSEFMIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2OEQ7Ozs7Tjs7Ozs7CitGQjgzO0FSQUJJQyBMRVRURVIgRERBSEFMIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2OEQ7Ozs7Tjs7Ozs7CitGQjg0O0FSQUJJQyBMRVRURVIgREFIQUwgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY4Qzs7OztOOzs7OzsKK0ZCODU7QVJBQklDIExFVFRFUiBEQUhBTCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjhDOzs7O047Ozs7OworRkI4NjtBUkFCSUMgTEVUVEVSIERVTCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjhFOzs7O047Ozs7OworRkI4NztBUkFCSUMgTEVUVEVSIERVTCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjhFOzs7O047Ozs7OworRkI4ODtBUkFCSUMgTEVUVEVSIEREQUwgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY4ODs7OztOOzs7OzsKK0ZCODk7QVJBQklDIExFVFRFUiBEREFMIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2ODg7Ozs7Tjs7Ozs7CitGQjhBO0FSQUJJQyBMRVRURVIgSkVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2OTg7Ozs7Tjs7Ozs7CitGQjhCO0FSQUJJQyBMRVRURVIgSkVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2OTg7Ozs7Tjs7Ozs7CitGQjhDO0FSQUJJQyBMRVRURVIgUlJFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjkxOzs7O047Ozs7OworRkI4RDtBUkFCSUMgTEVUVEVSIFJSRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY5MTs7OztOOzs7OzsKK0ZCOEU7QVJBQklDIExFVFRFUiBLRUhFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkE5Ozs7O047Ozs7OworRkI4RjtBUkFCSUMgTEVUVEVSIEtFSEVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2QTk7Ozs7Tjs7Ozs7CitGQjkwO0FSQUJJQyBMRVRURVIgS0VIRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2QTk7Ozs7Tjs7Ozs7CitGQjkxO0FSQUJJQyBMRVRURVIgS0VIRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNkE5Ozs7O047Ozs7OworRkI5MjtBUkFCSUMgTEVUVEVSIEdBRiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkFGOzs7O047Ozs7OworRkI5MztBUkFCSUMgTEVUVEVSIEdBRiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkFGOzs7O047Ozs7OworRkI5NDtBUkFCSUMgTEVUVEVSIEdBRiBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDZBRjs7OztOOzs7OzsKK0ZCOTU7QVJBQklDIExFVFRFUiBHQUYgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNkFGOzs7O047Ozs7OworRkI5NjtBUkFCSUMgTEVUVEVSIEdVRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZCMzs7OztOOzs7OzsKK0ZCOTc7QVJBQklDIExFVFRFUiBHVUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2QjM7Ozs7Tjs7Ozs7CitGQjk4O0FSQUJJQyBMRVRURVIgR1VFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDZCMzs7OztOOzs7OzsKK0ZCOTk7QVJBQklDIExFVFRFUiBHVUVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDZCMzs7OztOOzs7OzsKK0ZCOUE7QVJBQklDIExFVFRFUiBOR09FSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkIxOzs7O047Ozs7OworRkI5QjtBUkFCSUMgTEVUVEVSIE5HT0VIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2QjE7Ozs7Tjs7Ozs7CitGQjlDO0FSQUJJQyBMRVRURVIgTkdPRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2QjE7Ozs7Tjs7Ozs7CitGQjlEO0FSQUJJQyBMRVRURVIgTkdPRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNkIxOzs7O047Ozs7OworRkI5RTtBUkFCSUMgTEVUVEVSIE5PT04gR0hVTk5BIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2QkE7Ozs7Tjs7Ozs7CitGQjlGO0FSQUJJQyBMRVRURVIgTk9PTiBHSFVOTkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZCQTs7OztOOzs7OzsKK0ZCQTA7QVJBQklDIExFVFRFUiBSTk9PTiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkJCOzs7O047Ozs7OworRkJBMTtBUkFCSUMgTEVUVEVSIFJOT09OIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2QkI7Ozs7Tjs7Ozs7CitGQkEyO0FSQUJJQyBMRVRURVIgUk5PT04gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2QkI7Ozs7Tjs7Ozs7CitGQkEzO0FSQUJJQyBMRVRURVIgUk5PT04gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNkJCOzs7O047Ozs7OworRkJBNDtBUkFCSUMgTEVUVEVSIEhFSCBXSVRIIFlFSCBBQk9WRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkMwOzs7O047Ozs7OworRkJBNTtBUkFCSUMgTEVUVEVSIEhFSCBXSVRIIFlFSCBBQk9WRSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkMwOzs7O047Ozs7OworRkJBNjtBUkFCSUMgTEVUVEVSIEhFSCBHT0FMIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2QzE7Ozs7Tjs7Ozs7CitGQkE3O0FSQUJJQyBMRVRURVIgSEVIIEdPQUwgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZDMTs7OztOOzs7OzsKK0ZCQTg7QVJBQklDIExFVFRFUiBIRUggR09BTCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDZDMTs7OztOOzs7OzsKK0ZCQTk7QVJBQklDIExFVFRFUiBIRUggR09BTCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2QzE7Ozs7Tjs7Ozs7CitGQkFBO0FSQUJJQyBMRVRURVIgSEVIIERPQUNIQVNITUVFIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2QkU7Ozs7Tjs7Ozs7CitGQkFCO0FSQUJJQyBMRVRURVIgSEVIIERPQUNIQVNITUVFIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2QkU7Ozs7Tjs7Ozs7CitGQkFDO0FSQUJJQyBMRVRURVIgSEVIIERPQUNIQVNITUVFIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNkJFOzs7O047Ozs7OworRkJBRDtBUkFCSUMgTEVUVEVSIEhFSCBET0FDSEFTSE1FRSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2QkU7Ozs7Tjs7Ozs7CitGQkFFO0FSQUJJQyBMRVRURVIgWUVIIEJBUlJFRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkQyOzs7O047Ozs7OworRkJBRjtBUkFCSUMgTEVUVEVSIFlFSCBCQVJSRUUgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZEMjs7OztOOzs7OzsKK0ZCQjA7QVJBQklDIExFVFRFUiBZRUggQkFSUkVFIFdJVEggSEFNWkEgQUJPVkUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZEMzs7OztOOzs7OzsKK0ZCQjE7QVJBQklDIExFVFRFUiBZRUggQkFSUkVFIFdJVEggSEFNWkEgQUJPVkUgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZEMzs7OztOOzs7OzsKK0ZCRDM7QVJBQklDIExFVFRFUiBORyBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkFEOzs7O047Ozs7OworRkJENDtBUkFCSUMgTEVUVEVSIE5HIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2QUQ7Ozs7Tjs7Ozs7CitGQkQ1O0FSQUJJQyBMRVRURVIgTkcgSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2QUQ7Ozs7Tjs7Ozs7CitGQkQ2O0FSQUJJQyBMRVRURVIgTkcgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNkFEOzs7O047Ozs7OworRkJENztBUkFCSUMgTEVUVEVSIFUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZDNzs7OztOOzs7OzsKK0ZCRDg7QVJBQklDIExFVFRFUiBVIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2Qzc7Ozs7Tjs7Ozs7CitGQkQ5O0FSQUJJQyBMRVRURVIgT0UgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZDNjs7OztOOzs7OzsKK0ZCREE7QVJBQklDIExFVFRFUiBPRSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkM2Ozs7O047Ozs7OworRkJEQjtBUkFCSUMgTEVUVEVSIFlVIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2Qzg7Ozs7Tjs7Ozs7CitGQkRDO0FSQUJJQyBMRVRURVIgWVUgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZDODs7OztOOzs7OzsKK0ZCREQ7QVJBQklDIExFVFRFUiBVIFdJVEggSEFNWkEgQUJPVkUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY3Nzs7OztOOzs7OzsKK0ZCREU7QVJBQklDIExFVFRFUiBWRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkNCOzs7O047Ozs7OworRkJERjtBUkFCSUMgTEVUVEVSIFZFIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2Q0I7Ozs7Tjs7Ozs7CitGQkUwO0FSQUJJQyBMRVRURVIgS0lSR0hJWiBPRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkM1Ozs7O047Ozs7OworRkJFMTtBUkFCSUMgTEVUVEVSIEtJUkdISVogT0UgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZDNTs7OztOOzs7OzsKK0ZCRTI7QVJBQklDIExFVFRFUiBLSVJHSElaIFlVIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2Qzk7Ozs7Tjs7Ozs7CitGQkUzO0FSQUJJQyBMRVRURVIgS0lSR0hJWiBZVSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkM5Ozs7O047Ozs7OworRkJFNDtBUkFCSUMgTEVUVEVSIEUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZEMDs7OztOOzs7OzsKK0ZCRTU7QVJBQklDIExFVFRFUiBFIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2RDA7Ozs7Tjs7Ozs7CitGQkU2O0FSQUJJQyBMRVRURVIgRSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDZEMDs7OztOOzs7OzsKK0ZCRTc7QVJBQklDIExFVFRFUiBFIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDZEMDs7OztOOzs7OzsKK0ZCRTg7QVJBQklDIExFVFRFUiBVSUdIVVIgS0FaQUtIIEtJUkdISVogQUxFRiBNQUtTVVJBIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ5Ozs7O047Ozs7OworRkJFOTtBUkFCSUMgTEVUVEVSIFVJR0hVUiBLQVpBS0ggS0lSR0hJWiBBTEVGIE1BS1NVUkEgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQ5Ozs7O047Ozs7OworRkJFQTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBBTEVGIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjYgMDYyNzs7OztOOzs7OzsKK0ZCRUI7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggQUxFRiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI2IDA2Mjc7Ozs7Tjs7Ozs7CitGQkVDO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEFFIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjYgMDZENTs7OztOOzs7OzsKK0ZCRUQ7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggQUUgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNiAwNkQ1Ozs7O047Ozs7OworRkJFRTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBXQVcgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyNiAwNjQ4Ozs7O047Ozs7OworRkJFRjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBXQVcgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNiAwNjQ4Ozs7O047Ozs7OworRkJGMDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBVIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjYgMDZDNzs7OztOOzs7OzsKK0ZCRjE7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggVSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI2IDA2Qzc7Ozs7Tjs7Ozs7CitGQkYyO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIE9FIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjYgMDZDNjs7OztOOzs7OzsKK0ZCRjM7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggT0UgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNiAwNkM2Ozs7O047Ozs7OworRkJGNDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBZVSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI2IDA2Qzg7Ozs7Tjs7Ozs7CitGQkY1O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIFlVIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjYgMDZDODs7OztOOzs7OzsKK0ZCRjY7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI2IDA2RDA7Ozs7Tjs7Ozs7CitGQkY3O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEUgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNiAwNkQwOzs7O047Ozs7OworRkJGODtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBFIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjI2IDA2RDA7Ozs7Tjs7Ozs7CitGQkY5O0FSQUJJQyBMSUdBVFVSRSBVSUdIVVIgS0lSR0hJWiBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI2IDA2NDk7Ozs7Tjs7Ozs7CitGQkZBO0FSQUJJQyBMSUdBVFVSRSBVSUdIVVIgS0lSR0hJWiBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI2IDA2NDk7Ozs7Tjs7Ozs7CitGQkZCO0FSQUJJQyBMSUdBVFVSRSBVSUdIVVIgS0lSR0hJWiBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEFMRUYgTUFLU1VSQSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyNiAwNjQ5Ozs7O047Ozs7OworRkJGQztBUkFCSUMgTEVUVEVSIEZBUlNJIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkNDOzs7O047Ozs7OworRkJGRDtBUkFCSUMgTEVUVEVSIEZBUlNJIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkNDOzs7O047Ozs7OworRkJGRTtBUkFCSUMgTEVUVEVSIEZBUlNJIFlFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDZDQzs7OztOOzs7OzsKK0ZCRkY7QVJBQklDIExFVFRFUiBGQVJTSSBZRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNkNDOzs7O047Ozs7OworRkMwMDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjYgMDYyQzs7OztOOzs7OzsKK0ZDMDE7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjYgMDYyRDs7OztOOzs7OzsKK0ZDMDI7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI2IDA2NDU7Ozs7Tjs7Ozs7CitGQzAzO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI2IDA2NDk7Ozs7Tjs7Ozs7CitGQzA0O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI2IDA2NEE7Ozs7Tjs7Ozs7CitGQzA1O0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjggMDYyQzs7OztOOzs7OzsKK0ZDMDY7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI4IDA2MkQ7Ozs7Tjs7Ozs7CitGQzA3O0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBLSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjggMDYyRTs7OztOOzs7OzsKK0ZDMDg7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyOCAwNjQ1Ozs7O047Ozs7OworRkMwOTtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjggMDY0OTs7OztOOzs7OzsKK0ZDMEE7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI4IDA2NEE7Ozs7Tjs7Ozs7CitGQzBCO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkEgMDYyQzs7OztOOzs7OzsKK0ZDMEM7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJBIDA2MkQ7Ozs7Tjs7Ozs7CitGQzBEO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBLSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkEgMDYyRTs7OztOOzs7OzsKK0ZDMEU7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyQSAwNjQ1Ozs7O047Ozs7OworRkMwRjtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkEgMDY0OTs7OztOOzs7OzsKK0ZDMTA7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJBIDA2NEE7Ozs7Tjs7Ozs7CitGQzExO0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJCIDA2MkM7Ozs7Tjs7Ozs7CitGQzEyO0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJCIDA2NDU7Ozs7Tjs7Ozs7CitGQzEzO0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkIgMDY0OTs7OztOOzs7OzsKK0ZDMTQ7QVJBQklDIExJR0FUVVJFIFRIRUggV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyQiAwNjRBOzs7O047Ozs7OworRkMxNTtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJDIDA2MkQ7Ozs7Tjs7Ozs7CitGQzE2O0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJDIDA2NDU7Ozs7Tjs7Ozs7CitGQzE3O0FSQUJJQyBMSUdBVFVSRSBIQUggV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkQgMDYyQzs7OztOOzs7OzsKK0ZDMTg7QVJBQklDIExJR0FUVVJFIEhBSCBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyRCAwNjQ1Ozs7O047Ozs7OworRkMxOTtBUkFCSUMgTElHQVRVUkUgS0hBSCBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyRSAwNjJDOzs7O047Ozs7OworRkMxQTtBUkFCSUMgTElHQVRVUkUgS0hBSCBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJFIDA2MkQ7Ozs7Tjs7Ozs7CitGQzFCO0FSQUJJQyBMSUdBVFVSRSBLSEFIIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJFIDA2NDU7Ozs7Tjs7Ozs7CitGQzFDO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjMzIDA2MkM7Ozs7Tjs7Ozs7CitGQzFEO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzMgMDYyRDs7OztOOzs7OzsKK0ZDMUU7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBLSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzMgMDYyRTs7OztOOzs7OzsKK0ZDMUY7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzMgMDY0NTs7OztOOzs7OzsKK0ZDMjA7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM1IDA2MkQ7Ozs7Tjs7Ozs7CitGQzIxO0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzUgMDY0NTs7OztOOzs7OzsKK0ZDMjI7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNiAwNjJDOzs7O047Ozs7OworRkMyMztBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzYgMDYyRDs7OztOOzs7OzsKK0ZDMjQ7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEtIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNiAwNjJFOzs7O047Ozs7OworRkMyNTtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM2IDA2NDU7Ozs7Tjs7Ozs7CitGQzI2O0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNyAwNjJEOzs7O047Ozs7OworRkMyNztBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM3IDA2NDU7Ozs7Tjs7Ozs7CitGQzI4O0FSQUJJQyBMSUdBVFVSRSBaQUggV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzggMDY0NTs7OztOOzs7OzsKK0ZDMjk7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzOSAwNjJDOzs7O047Ozs7OworRkMyQTtBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM5IDA2NDU7Ozs7Tjs7Ozs7CitGQzJCO0FSQUJJQyBMSUdBVFVSRSBHSEFJTiBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzQSAwNjJDOzs7O047Ozs7OworRkMyQztBUkFCSUMgTElHQVRVUkUgR0hBSU4gV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2M0EgMDY0NTs7OztOOzs7OzsKK0ZDMkQ7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MSAwNjJDOzs7O047Ozs7OworRkMyRTtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDEgMDYyRDs7OztOOzs7OzsKK0ZDMkY7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIEtIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MSAwNjJFOzs7O047Ozs7OworRkMzMDtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQxIDA2NDU7Ozs7Tjs7Ozs7CitGQzMxO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MSAwNjQ5Ozs7O047Ozs7OworRkMzMjtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDEgMDY0QTs7OztOOzs7OzsKK0ZDMzM7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQyIDA2MkQ7Ozs7Tjs7Ozs7CitGQzM0O0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDIgMDY0NTs7OztOOzs7OzsKK0ZDMzU7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQyIDA2NDk7Ozs7Tjs7Ozs7CitGQzM2O0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MiAwNjRBOzs7O047Ozs7OworRkMzNztBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggQUxFRiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQzIDA2Mjc7Ozs7Tjs7Ozs7CitGQzM4O0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDMgMDYyQzs7OztOOzs7OzsKK0ZDMzk7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQzIDA2MkQ7Ozs7Tjs7Ozs7CitGQzNBO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBLSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDMgMDYyRTs7OztOOzs7OzsKK0ZDM0I7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIExBTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQzIDA2NDQ7Ozs7Tjs7Ozs7CitGQzNDO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDMgMDY0NTs7OztOOzs7OzsKK0ZDM0Q7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQzIDA2NDk7Ozs7Tjs7Ozs7CitGQzNFO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MyAwNjRBOzs7O047Ozs7OworRkMzRjtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ0IDA2MkM7Ozs7Tjs7Ozs7CitGQzQwO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NCAwNjJEOzs7O047Ozs7OworRkM0MTtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ0IDA2MkU7Ozs7Tjs7Ozs7CitGQzQyO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDQgMDY0NTs7OztOOzs7OzsKK0ZDNDM7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ0IDA2NDk7Ozs7Tjs7Ozs7CitGQzQ0O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NCAwNjRBOzs7O047Ozs7OworRkM0NTtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NSAwNjJDOzs7O047Ozs7OworRkM0NjtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGQzQ3O0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ1IDA2MkU7Ozs7Tjs7Ozs7CitGQzQ4O0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGQzQ5O0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDUgMDY0OTs7OztOOzs7OzsKK0ZDNEE7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NSAwNjRBOzs7O047Ozs7OworRkM0QjtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NiAwNjJDOzs7O047Ozs7OworRkM0QztBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ2IDA2MkQ7Ozs7Tjs7Ozs7CitGQzREO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ2IDA2MkU7Ozs7Tjs7Ozs7CitGQzRFO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ2IDA2NDU7Ozs7Tjs7Ozs7CitGQzRGO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDYgMDY0OTs7OztOOzs7OzsKK0ZDNTA7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NiAwNjRBOzs7O047Ozs7OworRkM1MTtBUkFCSUMgTElHQVRVUkUgSEVIIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ3IDA2MkM7Ozs7Tjs7Ozs7CitGQzUyO0FSQUJJQyBMSUdBVFVSRSBIRUggV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDcgMDY0NTs7OztOOzs7OzsKK0ZDNTM7QVJBQklDIExJR0FUVVJFIEhFSCBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ3IDA2NDk7Ozs7Tjs7Ozs7CitGQzU0O0FSQUJJQyBMSUdBVFVSRSBIRUggV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NyAwNjRBOzs7O047Ozs7OworRkM1NTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjRBIDA2MkM7Ozs7Tjs7Ozs7CitGQzU2O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0QSAwNjJEOzs7O047Ozs7OworRkM1NztBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjRBIDA2MkU7Ozs7Tjs7Ozs7CitGQzU4O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NEEgMDY0NTs7OztOOzs7OzsKK0ZDNTk7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjRBIDA2NDk7Ozs7Tjs7Ozs7CitGQzVBO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0QSAwNjRBOzs7O047Ozs7OworRkM1QjtBUkFCSUMgTElHQVRVUkUgVEhBTCBXSVRIIFNVUEVSU0NSSVBUIEFMRUYgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzMCAwNjcwOzs7O047Ozs7OworRkM1QztBUkFCSUMgTElHQVRVUkUgUkVIIFdJVEggU1VQRVJTQ1JJUFQgQUxFRiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjMxIDA2NzA7Ozs7Tjs7Ozs7CitGQzVEO0FSQUJJQyBMSUdBVFVSRSBBTEVGIE1BS1NVUkEgV0lUSCBTVVBFUlNDUklQVCBBTEVGIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDkgMDY3MDs7OztOOzs7OzsKK0ZDNUU7QVJBQklDIExJR0FUVVJFIFNIQUREQSBXSVRIIERBTU1BVEFOIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDAwMjAgMDY0QyAwNjUxOzs7O047Ozs7OworRkM1RjtBUkFCSUMgTElHQVRVUkUgU0hBRERBIFdJVEggS0FTUkFUQU4gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDAyMCAwNjREIDA2NTE7Ozs7Tjs7Ozs7CitGQzYwO0FSQUJJQyBMSUdBVFVSRSBTSEFEREEgV0lUSCBGQVRIQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwMDIwIDA2NEUgMDY1MTs7OztOOzs7OzsKK0ZDNjE7QVJBQklDIExJR0FUVVJFIFNIQUREQSBXSVRIIERBTU1BIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDAwMjAgMDY0RiAwNjUxOzs7O047Ozs7OworRkM2MjtBUkFCSUMgTElHQVRVUkUgU0hBRERBIFdJVEggS0FTUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDAyMCAwNjUwIDA2NTE7Ozs7Tjs7Ozs7CitGQzYzO0FSQUJJQyBMSUdBVFVSRSBTSEFEREEgV0lUSCBTVVBFUlNDUklQVCBBTEVGIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDAwMjAgMDY1MSAwNjcwOzs7O047Ozs7OworRkM2NDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBSRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNiAwNjMxOzs7O047Ozs7OworRkM2NTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBaQUlOIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjYgMDYzMjs7OztOOzs7OzsKK0ZDNjY7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI2IDA2NDU7Ozs7Tjs7Ozs7CitGQzY3O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIE5PT04gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNiAwNjQ2Ozs7O047Ozs7OworRkM2ODtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNiAwNjQ5Ozs7O047Ozs7OworRkM2OTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNiAwNjRBOzs7O047Ozs7OworRkM2QTtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggUkVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjggMDYzMTs7OztOOzs7OzsKK0ZDNkI7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIFpBSU4gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyOCAwNjMyOzs7O047Ozs7OworRkM2QztBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI4IDA2NDU7Ozs7Tjs7Ozs7CitGQzZEO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBOT09OIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjggMDY0Njs7OztOOzs7OzsKK0ZDNkU7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI4IDA2NDk7Ozs7Tjs7Ozs7CitGQzZGO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyOCAwNjRBOzs7O047Ozs7OworRkM3MDtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggUkVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkEgMDYzMTs7OztOOzs7OzsKK0ZDNzE7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIFpBSU4gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQSAwNjMyOzs7O047Ozs7OworRkM3MjtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJBIDA2NDU7Ozs7Tjs7Ozs7CitGQzczO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBOT09OIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkEgMDY0Njs7OztOOzs7OzsKK0ZDNzQ7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJBIDA2NDk7Ozs7Tjs7Ozs7CitGQzc1O0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQSAwNjRBOzs7O047Ozs7OworRkM3NjtBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIFJFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJCIDA2MzE7Ozs7Tjs7Ozs7CitGQzc3O0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggWkFJTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJCIDA2MzI7Ozs7Tjs7Ozs7CitGQzc4O0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJCIDA2NDU7Ozs7Tjs7Ozs7CitGQzc5O0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggTk9PTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJCIDA2NDY7Ozs7Tjs7Ozs7CitGQzdBO0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkIgMDY0OTs7OztOOzs7OzsKK0ZDN0I7QVJBQklDIExJR0FUVVJFIFRIRUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQiAwNjRBOzs7O047Ozs7OworRkM3QztBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDEgMDY0OTs7OztOOzs7OzsKK0ZDN0Q7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQxIDA2NEE7Ozs7Tjs7Ozs7CitGQzdFO0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0MiAwNjQ5Ozs7O047Ozs7OworRkM3RjtBUkFCSUMgTElHQVRVUkUgUUFGIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDIgMDY0QTs7OztOOzs7OzsKK0ZDODA7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIEFMRUYgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0MyAwNjI3Ozs7O047Ozs7OworRkM4MTtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggTEFNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDMgMDY0NDs7OztOOzs7OzsKK0ZDODI7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0MyAwNjQ1Ozs7O047Ozs7OworRkM4MztBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDMgMDY0OTs7OztOOzs7OzsKK0ZDODQ7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQzIDA2NEE7Ozs7Tjs7Ozs7CitGQzg1O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDQgMDY0NTs7OztOOzs7OzsKK0ZDODY7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ0IDA2NDk7Ozs7Tjs7Ozs7CitGQzg3O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NCAwNjRBOzs7O047Ozs7OworRkM4ODtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEFMRUYgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NSAwNjI3Ozs7O047Ozs7OworRkM4OTtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NSAwNjQ1Ozs7O047Ozs7OworRkM4QTtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIFJFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ2IDA2MzE7Ozs7Tjs7Ozs7CitGQzhCO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggWkFJTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ2IDA2MzI7Ozs7Tjs7Ozs7CitGQzhDO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ2IDA2NDU7Ozs7Tjs7Ozs7CitGQzhEO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggTk9PTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ2IDA2NDY7Ozs7Tjs7Ozs7CitGQzhFO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDYgMDY0OTs7OztOOzs7OzsKK0ZDOEY7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NiAwNjRBOzs7O047Ozs7OworRkM5MDtBUkFCSUMgTElHQVRVUkUgQUxFRiBNQUtTVVJBIFdJVEggU1VQRVJTQ1JJUFQgQUxFRiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ5IDA2NzA7Ozs7Tjs7Ozs7CitGQzkxO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBSRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0QSAwNjMxOzs7O047Ozs7OworRkM5MjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggWkFJTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjRBIDA2MzI7Ozs7Tjs7Ozs7CitGQzkzO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NEEgMDY0NTs7OztOOzs7OzsKK0ZDOTQ7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIE5PT04gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0QSAwNjQ2Ozs7O047Ozs7OworRkM5NTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NEEgMDY0OTs7OztOOzs7OzsKK0ZDOTY7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjRBIDA2NEE7Ozs7Tjs7Ozs7CitGQzk3O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MjYgMDYyQzs7OztOOzs7OzsKK0ZDOTg7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjI2IDA2MkQ7Ozs7Tjs7Ozs7CitGQzk5O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MjYgMDYyRTs7OztOOzs7OzsKK0ZDOUE7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyNiAwNjQ1Ozs7O047Ozs7OworRkM5QjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBIRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MjYgMDY0Nzs7OztOOzs7OzsKK0ZDOUM7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MjggMDYyQzs7OztOOzs7OzsKK0ZDOUQ7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyOCAwNjJEOzs7O047Ozs7OworRkM5RTtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyOCAwNjJFOzs7O047Ozs7OworRkM5RjtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyOCAwNjQ1Ozs7O047Ozs7OworRkNBMDtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggSEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjI4IDA2NDc7Ozs7Tjs7Ozs7CitGQ0ExO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJBIDA2MkM7Ozs7Tjs7Ozs7CitGQ0EyO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkEgMDYyRDs7OztOOzs7OzsKK0ZDQTM7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkEgMDYyRTs7OztOOzs7OzsKK0ZDQTQ7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkEgMDY0NTs7OztOOzs7OzsKK0ZDQTU7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEhFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQSAwNjQ3Ozs7O047Ozs7OworRkNBNjtBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkIgMDY0NTs7OztOOzs7OzsKK0ZDQTc7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkMgMDYyRDs7OztOOzs7OzsKK0ZDQTg7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJDIDA2NDU7Ozs7Tjs7Ozs7CitGQ0E5O0FSQUJJQyBMSUdBVFVSRSBIQUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJEIDA2MkM7Ozs7Tjs7Ozs7CitGQ0FBO0FSQUJJQyBMSUdBVFVSRSBIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJEIDA2NDU7Ozs7Tjs7Ozs7CitGQ0FCO0FSQUJJQyBMSUdBVFVSRSBLSEFIIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyRSAwNjJDOzs7O047Ozs7OworRkNBQztBUkFCSUMgTElHQVRVUkUgS0hBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkUgMDY0NTs7OztOOzs7OzsKK0ZDQUQ7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjMzIDA2MkM7Ozs7Tjs7Ozs7CitGQ0FFO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjMzIDA2MkQ7Ozs7Tjs7Ozs7CitGQ0FGO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzMyAwNjJFOzs7O047Ozs7OworRkNCMDtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzMgMDY0NTs7OztOOzs7OzsKK0ZDQjE7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNSAwNjJEOzs7O047Ozs7OworRkNCMjtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNSAwNjJFOzs7O047Ozs7OworRkNCMztBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNSAwNjQ1Ozs7O047Ozs7OworRkNCNDtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNiAwNjJDOzs7O047Ozs7OworRkNCNTtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM2IDA2MkQ7Ozs7Tjs7Ozs7CitGQ0I2O0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM2IDA2MkU7Ozs7Tjs7Ozs7CitGQ0I3O0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM2IDA2NDU7Ozs7Tjs7Ozs7CitGQ0I4O0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzcgMDYyRDs7OztOOzs7OzsKK0ZDQjk7QVJBQklDIExJR0FUVVJFIFpBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzggMDY0NTs7OztOOzs7OzsKK0ZDQkE7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzkgMDYyQzs7OztOOzs7OzsKK0ZDQkI7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzkgMDY0NTs7OztOOzs7OzsKK0ZDQkM7QVJBQklDIExJR0FUVVJFIEdIQUlOIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzQSAwNjJDOzs7O047Ozs7OworRkNCRDtBUkFCSUMgTElHQVRVUkUgR0hBSU4gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjNBIDA2NDU7Ozs7Tjs7Ozs7CitGQ0JFO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQxIDA2MkM7Ozs7Tjs7Ozs7CitGQ0JGO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDEgMDYyRDs7OztOOzs7OzsKK0ZDQzA7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDEgMDYyRTs7OztOOzs7OzsKK0ZDQzE7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDEgMDY0NTs7OztOOzs7OzsKK0ZDQzI7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0MiAwNjJEOzs7O047Ozs7OworRkNDMztBUkFCSUMgTElHQVRVUkUgUUFGIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0MiAwNjQ1Ozs7O047Ozs7OworRkNDNDtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0MyAwNjJDOzs7O047Ozs7OworRkNDNTtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQzIDA2MkQ7Ozs7Tjs7Ozs7CitGQ0M2O0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQzIDA2MkU7Ozs7Tjs7Ozs7CitGQ0M3O0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBMQU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDMgMDY0NDs7OztOOzs7OzsKK0ZDQzg7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDMgMDY0NTs7OztOOzs7OzsKK0ZDQzk7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDQgMDYyQzs7OztOOzs7OzsKK0ZDQ0E7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NCAwNjJEOzs7O047Ozs7OworRkNDQjtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NCAwNjJFOzs7O047Ozs7OworRkNDQztBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NCAwNjQ1Ozs7O047Ozs7OworRkNDRDtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ0IDA2NDc7Ozs7Tjs7Ozs7CitGQ0NFO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NSAwNjJDOzs7O047Ozs7OworRkNDRjtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NSAwNjJEOzs7O047Ozs7OworRkNEMDtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDUgMDYyRTs7OztOOzs7OzsKK0ZDRDE7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGQ0QyO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NiAwNjJDOzs7O047Ozs7OworRkNEMztBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NiAwNjJEOzs7O047Ozs7OworRkNENDtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDYgMDYyRTs7OztOOzs7OzsKK0ZDRDU7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ2IDA2NDU7Ozs7Tjs7Ozs7CitGQ0Q2O0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ2IDA2NDc7Ozs7Tjs7Ozs7CitGQ0Q3O0FSQUJJQyBMSUdBVFVSRSBIRUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ3IDA2MkM7Ozs7Tjs7Ozs7CitGQ0Q4O0FSQUJJQyBMSUdBVFVSRSBIRUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ3IDA2NDU7Ozs7Tjs7Ozs7CitGQ0Q5O0FSQUJJQyBMSUdBVFVSRSBIRUggV0lUSCBTVVBFUlNDUklQVCBBTEVGIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ3IDA2NzA7Ozs7Tjs7Ozs7CitGQ0RBO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjRBIDA2MkM7Ozs7Tjs7Ozs7CitGQ0RCO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NEEgMDYyRDs7OztOOzs7OzsKK0ZDREM7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NEEgMDYyRTs7OztOOzs7OzsKK0ZDREQ7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NEEgMDY0NTs7OztOOzs7OzsKK0ZDREU7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0QSAwNjQ3Ozs7O047Ozs7OworRkNERjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYyNiAwNjQ1Ozs7O047Ozs7OworRkNFMDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBIRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjI2IDA2NDc7Ozs7Tjs7Ozs7CitGQ0UxO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYyOCAwNjQ1Ozs7O047Ozs7OworRkNFMjtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYyOCAwNjQ3Ozs7O047Ozs7OworRkNFMztBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MkEgMDY0NTs7OztOOzs7OzsKK0ZDRTQ7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEhFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MkEgMDY0Nzs7OztOOzs7OzsKK0ZDRTU7QVJBQklDIExJR0FUVVJFIFRIRUggV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYyQiAwNjQ1Ozs7O047Ozs7OworRkNFNjtBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIEhFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MkIgMDY0Nzs7OztOOzs7OzsKK0ZDRTc7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzMyAwNjQ1Ozs7O047Ozs7OworRkNFODtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEhFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MzMgMDY0Nzs7OztOOzs7OzsKK0ZDRTk7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MzQgMDY0NTs7OztOOzs7OzsKK0ZDRUE7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzNCAwNjQ3Ozs7O047Ozs7OworRkNFQjtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggTEFNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0MyAwNjQ0Ozs7O047Ozs7OworRkNFQztBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDMgMDY0NTs7OztOOzs7OzsKK0ZDRUQ7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIE1FRU0gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQ0IDA2NDU7Ozs7Tjs7Ozs7CitGQ0VFO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDYgMDY0NTs7OztOOzs7OzsKK0ZDRUY7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBIRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQ2IDA2NDc7Ozs7Tjs7Ozs7CitGQ0YwO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0QSAwNjQ1Ozs7O047Ozs7OworRkNGMTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0QSAwNjQ3Ozs7O047Ozs7OworRkNGMjtBUkFCSUMgTElHQVRVUkUgU0hBRERBIFdJVEggRkFUSEEgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQwIDA2NEUgMDY1MTs7OztOOzs7OzsKK0ZDRjM7QVJBQklDIExJR0FUVVJFIFNIQUREQSBXSVRIIERBTU1BIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0MCAwNjRGIDA2NTE7Ozs7Tjs7Ozs7CitGQ0Y0O0FSQUJJQyBMSUdBVFVSRSBTSEFEREEgV0lUSCBLQVNSQSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDAgMDY1MCAwNjUxOzs7O047Ozs7OworRkNGNTtBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzcgMDY0OTs7OztOOzs7OzsKK0ZDRjY7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM3IDA2NEE7Ozs7Tjs7Ozs7CitGQ0Y3O0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzOSAwNjQ5Ozs7O047Ozs7OworRkNGODtBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzkgMDY0QTs7OztOOzs7OzsKK0ZDRjk7QVJBQklDIExJR0FUVVJFIEdIQUlOIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2M0EgMDY0OTs7OztOOzs7OzsKK0ZDRkE7QVJBQklDIExJR0FUVVJFIEdIQUlOIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2M0EgMDY0QTs7OztOOzs7OzsKK0ZDRkI7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzMyAwNjQ5Ozs7O047Ozs7OworRkNGQztBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjMzIDA2NEE7Ozs7Tjs7Ozs7CitGQ0ZEO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM0IDA2NDk7Ozs7Tjs7Ozs7CitGQ0ZFO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM0IDA2NEE7Ozs7Tjs7Ozs7CitGQ0ZGO0FSQUJJQyBMSUdBVFVSRSBIQUggV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyRCAwNjQ5Ozs7O047Ozs7OworRkQwMDtBUkFCSUMgTElHQVRVUkUgSEFIIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkQgMDY0QTs7OztOOzs7OzsKK0ZEMDE7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyQyAwNjQ5Ozs7O047Ozs7OworRkQwMjtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJDIDA2NEE7Ozs7Tjs7Ozs7CitGRDAzO0FSQUJJQyBMSUdBVFVSRSBLSEFIIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkUgMDY0OTs7OztOOzs7OzsKK0ZEMDQ7QVJBQklDIExJR0FUVVJFIEtIQUggV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyRSAwNjRBOzs7O047Ozs7OworRkQwNTtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzUgMDY0OTs7OztOOzs7OzsKK0ZEMDY7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM1IDA2NEE7Ozs7Tjs7Ozs7CitGRDA3O0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNiAwNjQ5Ozs7O047Ozs7OworRkQwODtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzYgMDY0QTs7OztOOzs7OzsKK0ZEMDk7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM0IDA2MkM7Ozs7Tjs7Ozs7CitGRDBBO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM0IDA2MkQ7Ozs7Tjs7Ozs7CitGRDBCO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEtIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNCAwNjJFOzs7O047Ozs7OworRkQwQztBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzQgMDY0NTs7OztOOzs7OzsKK0ZEMEQ7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggUkVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzQgMDYzMTs7OztOOzs7OzsKK0ZEMEU7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBSRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzMyAwNjMxOzs7O047Ozs7OworRkQwRjtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggUkVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzUgMDYzMTs7OztOOzs7OzsKK0ZEMTA7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIFJFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM2IDA2MzE7Ozs7Tjs7Ozs7CitGRDExO0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNyAwNjQ5Ozs7O047Ozs7OworRkQxMjtBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzcgMDY0QTs7OztOOzs7OzsKK0ZEMTM7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM5IDA2NDk7Ozs7Tjs7Ozs7CitGRDE0O0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzOSAwNjRBOzs7O047Ozs7OworRkQxNTtBUkFCSUMgTElHQVRVUkUgR0hBSU4gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzQSAwNjQ5Ozs7O047Ozs7OworRkQxNjtBUkFCSUMgTElHQVRVUkUgR0hBSU4gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzQSAwNjRBOzs7O047Ozs7OworRkQxNztBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjMzIDA2NDk7Ozs7Tjs7Ozs7CitGRDE4O0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzMgMDY0QTs7OztOOzs7OzsKK0ZEMTk7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzQgMDY0OTs7OztOOzs7OzsKK0ZEMUE7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzQgMDY0QTs7OztOOzs7OzsKK0ZEMUI7QVJBQklDIExJR0FUVVJFIEhBSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJEIDA2NDk7Ozs7Tjs7Ozs7CitGRDFDO0FSQUJJQyBMSUdBVFVSRSBIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyRCAwNjRBOzs7O047Ozs7OworRkQxRDtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJDIDA2NDk7Ozs7Tjs7Ozs7CitGRDFFO0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkMgMDY0QTs7OztOOzs7OzsKK0ZEMUY7QVJBQklDIExJR0FUVVJFIEtIQUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyRSAwNjQ5Ozs7O047Ozs7OworRkQyMDtBUkFCSUMgTElHQVRVUkUgS0hBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJFIDA2NEE7Ozs7Tjs7Ozs7CitGRDIxO0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNSAwNjQ5Ozs7O047Ozs7OworRkQyMjtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzUgMDY0QTs7OztOOzs7OzsKK0ZEMjM7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM2IDA2NDk7Ozs7Tjs7Ozs7CitGRDI0O0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNiAwNjRBOzs7O047Ozs7OworRkQyNTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBKRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzQgMDYyQzs7OztOOzs7OzsKK0ZEMjY7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSEFIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzQgMDYyRDs7OztOOzs7OzsKK0ZEMjc7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggS0hBSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM0IDA2MkU7Ozs7Tjs7Ozs7CitGRDI4O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNCAwNjQ1Ozs7O047Ozs7OworRkQyOTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBSRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNCAwNjMxOzs7O047Ozs7OworRkQyQTtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIFJFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjMzIDA2MzE7Ozs7Tjs7Ozs7CitGRDJCO0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBSRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNSAwNjMxOzs7O047Ozs7OworRkQyQztBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggUkVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzYgMDYzMTs7OztOOzs7OzsKK0ZEMkQ7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNCAwNjJDOzs7O047Ozs7OworRkQyRTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzQgMDYyRDs7OztOOzs7OzsKK0ZEMkY7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNCAwNjJFOzs7O047Ozs7OworRkQzMDtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM0IDA2NDU7Ozs7Tjs7Ozs7CitGRDMxO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggSEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjMzIDA2NDc7Ozs7Tjs7Ozs7CitGRDMyO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEhFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNCAwNjQ3Ozs7O047Ozs7OworRkQzMztBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNyAwNjQ1Ozs7O047Ozs7OworRkQzNDtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEpFRU0gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjMzIDA2MkM7Ozs7Tjs7Ozs7CitGRDM1O0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggSEFIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzMyAwNjJEOzs7O047Ozs7OworRkQzNjtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEtIQUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjMzIDA2MkU7Ozs7Tjs7Ozs7CitGRDM3O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEpFRU0gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjM0IDA2MkM7Ozs7Tjs7Ozs7CitGRDM4O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEhBSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MzQgMDYyRDs7OztOOzs7OzsKK0ZEMzk7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggS0hBSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MzQgMDYyRTs7OztOOzs7OzsKK0ZEM0E7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIE1FRU0gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjM3IDA2NDU7Ozs7Tjs7Ozs7CitGRDNCO0FSQUJJQyBMSUdBVFVSRSBaQUggV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzOCAwNjQ1Ozs7O047Ozs7OworRkQzQztBUkFCSUMgTElHQVRVUkUgQUxFRiBXSVRIIEZBVEhBVEFOIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjcgMDY0Qjs7OztOOzs7OzsKK0ZEM0Q7QVJBQklDIExJR0FUVVJFIEFMRUYgV0lUSCBGQVRIQVRBTiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI3IDA2NEI7Ozs7Tjs7Ozs7CitGRDNFO09STkFURSBMRUZUIFBBUkVOVEhFU0lTO1BzOzA7T047Ozs7O047Ozs7OworRkQzRjtPUk5BVEUgUklHSFQgUEFSRU5USEVTSVM7UGU7MDtPTjs7Ozs7Tjs7Ozs7CitGRDUwO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBKRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQSAwNjJDIDA2NDU7Ozs7Tjs7Ozs7CitGRDUxO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBIQUggV0lUSCBKRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkEgMDYyRCAwNjJDOzs7O047Ozs7OworRkQ1MjtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggSEFIIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQSAwNjJEIDA2MkM7Ozs7Tjs7Ozs7CitGRDUzO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJBIDA2MkQgMDY0NTs7OztOOzs7OzsKK0ZENTQ7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEtIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJBIDA2MkUgMDY0NTs7OztOOzs7OzsKK0ZENTU7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIE1FRU0gV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJBIDA2NDUgMDYyQzs7OztOOzs7OzsKK0ZENTY7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIE1FRU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkEgMDY0NSAwNjJEOzs7O047Ozs7OworRkQ1NztBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggTUVFTSBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkEgMDY0NSAwNjJFOzs7O047Ozs7OworRkQ1ODtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIE1FRU0gV0lUSCBIQUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQyAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGRDU5O0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggTUVFTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQyAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGRDVBO0FSQUJJQyBMSUdBVFVSRSBIQUggV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkQgMDY0NSAwNjRBOzs7O047Ozs7OworRkQ1QjtBUkFCSUMgTElHQVRVUkUgSEFIIFdJVEggTUVFTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJEIDA2NDUgMDY0OTs7OztOOzs7OzsKK0ZENUM7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBIQUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjMzIDA2MkQgMDYyQzs7OztOOzs7OzsKK0ZENUQ7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBKRUVNIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjMzIDA2MkMgMDYyRDs7OztOOzs7OzsKK0ZENUU7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBKRUVNIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzMgMDYyQyAwNjQ5Ozs7O047Ozs7OworRkQ1RjtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIE1FRU0gV0lUSCBIQUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzMyAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGRDYwO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggTUVFTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzMyAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGRDYxO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggTUVFTSBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzMgMDY0NSAwNjJDOzs7O047Ozs7OworRkQ2MjtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIE1FRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzMgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ2MztBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIE1FRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjMzIDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZENjQ7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIEhBSCBXSVRIIEhBSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM1IDA2MkQgMDYyRDs7OztOOzs7OzsKK0ZENjU7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIEhBSCBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNSAwNjJEIDA2MkQ7Ozs7Tjs7Ozs7CitGRDY2O0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBNRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM1IDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZENjc7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSEFIIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM0IDA2MkQgMDY0NTs7OztOOzs7OzsKK0ZENjg7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNCAwNjJEIDA2NDU7Ozs7Tjs7Ozs7CitGRDY5O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEpFRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNCAwNjJDIDA2NEE7Ozs7Tjs7Ozs7CitGRDZBO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIE1FRU0gV0lUSCBLSEFIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzQgMDY0NSAwNjJFOzs7O047Ozs7OworRkQ2QjtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBNRUVNIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNCAwNjQ1IDA2MkU7Ozs7Tjs7Ozs7CitGRDZDO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIE1FRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzQgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ2RDtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBNRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNCAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGRDZFO0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBIQUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNiAwNjJEIDA2NDk7Ozs7Tjs7Ozs7CitGRDZGO0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBLSEFIIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM2IDA2MkUgMDY0NTs7OztOOzs7OzsKK0ZENzA7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEtIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM2IDA2MkUgMDY0NTs7OztOOzs7OzsKK0ZENzE7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIE1FRU0gV0lUSCBIQUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNyAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGRDcyO0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBNRUVNIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM3IDA2NDUgMDYyRDs7OztOOzs7OzsKK0ZENzM7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIE1FRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM3IDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZENzQ7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNyAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGRDc1O0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBKRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM5IDA2MkMgMDY0NTs7OztOOzs7OzsKK0ZENzY7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIE1FRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzkgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ3NztBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggTUVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzkgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ3ODtBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggTUVFTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM5IDA2NDUgMDY0OTs7OztOOzs7OzsKK0ZENzk7QVJBQklDIExJR0FUVVJFIEdIQUlOIFdJVEggTUVFTSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzQSAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGRDdBO0FSQUJJQyBMSUdBVFVSRSBHSEFJTiBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzQSAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGRDdCO0FSQUJJQyBMSUdBVFVSRSBHSEFJTiBXSVRIIE1FRU0gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzQSAwNjQ1IDA2NDk7Ozs7Tjs7Ozs7CitGRDdDO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBLSEFIIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQxIDA2MkUgMDY0NTs7OztOOzs7OzsKK0ZEN0Q7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIEtIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQxIDA2MkUgMDY0NTs7OztOOzs7OzsKK0ZEN0U7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIE1FRU0gV0lUSCBIQUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0MiAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGRDdGO0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBNRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQyIDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZEODA7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEhBSCBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NCAwNjJEIDA2NDU7Ozs7Tjs7Ozs7CitGRDgxO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NCAwNjJEIDA2NEE7Ozs7Tjs7Ozs7CitGRDgyO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBIQUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NCAwNjJEIDA2NDk7Ozs7Tjs7Ozs7CitGRDgzO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBKRUVNIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NCAwNjJDIDA2MkM7Ozs7Tjs7Ozs7CitGRDg0O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBKRUVNIFdJVEggSkVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ0IDA2MkMgMDYyQzs7OztOOzs7OzsKK0ZEODU7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEtIQUggV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDQgMDYyRSAwNjQ1Ozs7O047Ozs7OworRkQ4NjtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggS0hBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDQgMDYyRSAwNjQ1Ozs7O047Ozs7OworRkQ4NztBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggTUVFTSBXSVRIIEhBSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ0IDA2NDUgMDYyRDs7OztOOzs7OzsKK0ZEODg7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIE1FRU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDQgMDY0NSAwNjJEOzs7O047Ozs7OworRkQ4OTtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEhBSCBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDUgMDYyRCAwNjJDOzs7O047Ozs7OworRkQ4QTtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEhBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDUgMDYyRCAwNjQ1Ozs7O047Ozs7OworRkQ4QjtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEhBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ1IDA2MkQgMDY0QTs7OztOOzs7OzsKK0ZEOEM7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBKRUVNIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ1IDA2MkMgMDYyRDs7OztOOzs7OzsKK0ZEOEQ7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBKRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NSAwNjJDIDA2NDU7Ozs7Tjs7Ozs7CitGRDhFO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggS0hBSCBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDUgMDYyRSAwNjJDOzs7O047Ozs7OworRkQ4RjtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEtIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ1IDA2MkUgMDY0NTs7OztOOzs7OzsKK0ZEOTI7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBKRUVNIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NSAwNjJDIDA2MkU7Ozs7Tjs7Ozs7CitGRDkzO0FSQUJJQyBMSUdBVFVSRSBIRUggV0lUSCBNRUVNIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NyAwNjQ1IDA2MkM7Ozs7Tjs7Ozs7CitGRDk0O0FSQUJJQyBMSUdBVFVSRSBIRUggV0lUSCBNRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NyAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGRDk1O0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NiAwNjJEIDA2NDU7Ozs7Tjs7Ozs7CitGRDk2O0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSEFIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDYgMDYyRCAwNjQ5Ozs7O047Ozs7OworRkQ5NztBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEpFRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDYgMDYyQyAwNjQ1Ozs7O047Ozs7OworRkQ5ODtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEpFRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ2IDA2MkMgMDY0NTs7OztOOzs7OzsKK0ZEOTk7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBKRUVNIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDYgMDYyQyAwNjQ5Ozs7O047Ozs7OworRkQ5QTtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NiAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGRDlCO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggTUVFTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ2IDA2NDUgMDY0OTs7OztOOzs7OzsKK0ZEOUM7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIE1FRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NEEgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ5RDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggTUVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NEEgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ5RTtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggS0hBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI4IDA2MkUgMDY0QTs7OztOOzs7OzsKK0ZEOUY7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEpFRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQSAwNjJDIDA2NEE7Ozs7Tjs7Ozs7CitGREEwO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBKRUVNIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkEgMDYyQyAwNjQ5Ozs7O047Ozs7OworRkRBMTtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggS0hBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJBIDA2MkUgMDY0QTs7OztOOzs7OzsKK0ZEQTI7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEtIQUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQSAwNjJFIDA2NDk7Ozs7Tjs7Ozs7CitGREEzO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkEgMDY0NSAwNjRBOzs7O047Ozs7OworRkRBNDtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggTUVFTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJBIDA2NDUgMDY0OTs7OztOOzs7OzsKK0ZEQTU7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkMgMDY0NSAwNjRBOzs7O047Ozs7OworRkRBNjtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIEhBSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJDIDA2MkQgMDY0OTs7OztOOzs7OzsKK0ZEQTc7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBNRUVNIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkMgMDY0NSAwNjQ5Ozs7O047Ozs7OworRkRBODtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEtIQUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzMyAwNjJFIDA2NDk7Ozs7Tjs7Ozs7CitGREE5O0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNSAwNjJEIDA2NEE7Ozs7Tjs7Ozs7CitGREFBO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEhBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM0IDA2MkQgMDY0QTs7OztOOzs7OzsKK0ZEQUI7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEhBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM2IDA2MkQgMDY0QTs7OztOOzs7OzsKK0ZEQUM7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEpFRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NCAwNjJDIDA2NEE7Ozs7Tjs7Ozs7CitGREFEO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDQgMDY0NSAwNjRBOzs7O047Ozs7OworRkRBRTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NEEgMDYyRCAwNjRBOzs7O047Ozs7OworRkRBRjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSkVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjRBIDA2MkMgMDY0QTs7OztOOzs7OzsKK0ZEQjA7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0QSAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGREIxO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggTUVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ1IDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZEQjI7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0MiAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGREIzO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDYgMDYyRCAwNjRBOzs7O047Ozs7OworRkRCNDtBUkFCSUMgTElHQVRVUkUgUUFGIFdJVEggTUVFTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0MiAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGREI1O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ0IDA2MkQgMDY0NTs7OztOOzs7OzsKK0ZEQjY7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzOSAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGREI3O0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDMgMDY0NSAwNjRBOzs7O047Ozs7OworRkRCODtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEpFRU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDYgMDYyQyAwNjJEOzs7O047Ozs7OworRkRCOTtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEtIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NSAwNjJFIDA2NEE7Ozs7Tjs7Ozs7CitGREJBO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBKRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NCAwNjJDIDA2NDU7Ozs7Tjs7Ozs7CitGREJCO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBNRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQzIDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZEQkM7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEpFRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDQgMDYyQyAwNjQ1Ozs7O047Ozs7OworRkRCRDtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEpFRU0gV0lUSCBIQUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NiAwNjJDIDA2MkQ7Ozs7Tjs7Ozs7CitGREJFO0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkMgMDYyRCAwNjRBOzs7O047Ozs7OworRkRCRjtBUkFCSUMgTElHQVRVUkUgSEFIIFdJVEggSkVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJEIDA2MkMgMDY0QTs7OztOOzs7OzsKK0ZEQzA7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBKRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDUgMDYyQyAwNjRBOzs7O047Ozs7OworRkRDMTtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggTUVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQxIDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZEQzI7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEhBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI4IDA2MkQgMDY0QTs7OztOOzs7OzsKK0ZEQzM7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIE1FRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQzIDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZEQzQ7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIEpFRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM5IDA2MkMgMDY0NTs7OztOOzs7OzsKK0ZEQzU7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIE1FRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM1IDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZEQzY7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBLSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzMgMDYyRSAwNjRBOzs7O047Ozs7OworRkRDNztBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEpFRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NiAwNjJDIDA2NEE7Ozs7Tjs7Ozs7CitGREYwO0FSQUJJQyBMSUdBVFVSRSBTQUxMQSBVU0VEIEFTIEtPUkFOSUMgU1RPUCBTSUdOIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzUgMDY0NCAwNkQyOzs7O047Ozs7OworRkRGMTtBUkFCSUMgTElHQVRVUkUgUUFMQSBVU0VEIEFTIEtPUkFOSUMgU1RPUCBTSUdOIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDIgMDY0NCAwNkQyOzs7O047Ozs7OworRkRGMjtBUkFCSUMgTElHQVRVUkUgQUxMQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyNyAwNjQ0IDA2NDQgMDY0Nzs7OztOOzs7OzsKK0ZERjM7QVJBQklDIExJR0FUVVJFIEFLQkFSIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjcgMDY0MyAwNjI4IDA2MzE7Ozs7Tjs7Ozs7CitGREY0O0FSQUJJQyBMSUdBVFVSRSBNT0hBTU1BRCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ1IDA2MkQgMDY0NSAwNjJGOzs7O047Ozs7OworRkRGNTtBUkFCSUMgTElHQVRVUkUgU0FMQU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNSAwNjQ0IDA2MzkgMDY0NTs7OztOOzs7OzsKK0ZERjY7QVJBQklDIExJR0FUVVJFIFJBU09VTCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjMxIDA2MzMgMDY0OCAwNjQ0Ozs7O047Ozs7OworRkRGNztBUkFCSUMgTElHQVRVUkUgQUxBWUhFIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzkgMDY0NCAwNjRBIDA2NDc7Ozs7Tjs7Ozs7CitGREY4O0FSQUJJQyBMSUdBVFVSRSBXQVNBTExBTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ4IDA2MzMgMDY0NCAwNjQ1Ozs7O047Ozs7OworRkRGOTtBUkFCSUMgTElHQVRVUkUgU0FMTEEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNSAwNjQ0IDA2NDk7Ozs7Tjs7Ozs7CitGREZBO0FSQUJJQyBMSUdBVFVSRSBTQUxMQUxMQUhPVSBBTEFZSEUgV0FTQUxMQU07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzUgMDY0NCAwNjQ5IDAwMjAgMDYyNyAwNjQ0IDA2NDQgMDY0NyAwMDIwIDA2MzkgMDY0NCAwNjRBIDA2NDcgMDAyMCAwNjQ4IDA2MzMgMDY0NCAwNjQ1Ozs7O047QVJBQklDIExFVFRFUiBTQUxMQUxMQUhPVSBBTEFZSEUgV0FTQUxMQU07Ozs7CitGREZCO0FSQUJJQyBMSUdBVFVSRSBKQUxMQUpBTEFMT1VIT1U7TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkMgMDY0NCAwMDIwIDA2MkMgMDY0NCAwNjI3IDA2NDQgMDY0Nzs7OztOO0FSQUJJQyBMRVRURVIgSkFMTEFKQUxBTE9VSE9VOzs7OworRkUyMDtDT01CSU5JTkcgTElHQVRVUkUgTEVGVCBIQUxGO01uOzIzMDtOU007Ozs7O047Ozs7OworRkUyMTtDT01CSU5JTkcgTElHQVRVUkUgUklHSFQgSEFMRjtNbjsyMzA7TlNNOzs7OztOOzs7OzsKK0ZFMjI7Q09NQklOSU5HIERPVUJMRSBUSUxERSBMRUZUIEhBTEY7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CitGRTIzO0NPTUJJTklORyBET1VCTEUgVElMREUgUklHSFQgSEFMRjtNbjsyMzA7TlNNOzs7OztOOzs7OzsKK0ZFMzA7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIFRXTyBET1QgTEVBREVSO1BvOzA7T047PHZlcnRpY2FsPiAyMDI1Ozs7O047R0xZUEggRk9SIFZFUlRJQ0FMIFRXTyBET1QgTEVBREVSOzs7OworRkUzMTtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgRU0gREFTSDtQZDswO09OOzx2ZXJ0aWNhbD4gMjAxNDs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBFTSBEQVNIOzs7OworRkUzMjtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgRU4gREFTSDtQZDswO09OOzx2ZXJ0aWNhbD4gMjAxMzs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBFTiBEQVNIOzs7OworRkUzMztQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgTE9XIExJTkU7UGM7MDtPTjs8dmVydGljYWw+IDAwNUY7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgU1BBQ0lORyBVTkRFUlNDT1JFOzs7OworRkUzNDtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgV0FWWSBMT1cgTElORTtQYzswO09OOzx2ZXJ0aWNhbD4gMDA1Rjs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBTUEFDSU5HIFdBVlkgVU5ERVJTQ09SRTs7OzsKK0ZFMzU7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIExFRlQgUEFSRU5USEVTSVM7UHM7MDtPTjs8dmVydGljYWw+IDAwMjg7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgT1BFTklORyBQQVJFTlRIRVNJUzs7OzsKK0ZFMzY7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIFJJR0hUIFBBUkVOVEhFU0lTO1BlOzA7T047PHZlcnRpY2FsPiAwMDI5Ozs7O047R0xZUEggRk9SIFZFUlRJQ0FMIENMT1NJTkcgUEFSRU5USEVTSVM7Ozs7CitGRTM3O1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBMRUZUIENVUkxZIEJSQUNLRVQ7UHM7MDtPTjs8dmVydGljYWw+IDAwN0I7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgT1BFTklORyBDVVJMWSBCUkFDS0VUOzs7OworRkUzODtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgUklHSFQgQ1VSTFkgQlJBQ0tFVDtQZTswO09OOzx2ZXJ0aWNhbD4gMDA3RDs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBDTE9TSU5HIENVUkxZIEJSQUNLRVQ7Ozs7CitGRTM5O1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBMRUZUIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7UHM7MDtPTjs8dmVydGljYWw+IDMwMTQ7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgT1BFTklORyBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUOzs7OworRkUzQTtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgUklHSFQgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDtQZTswO09OOzx2ZXJ0aWNhbD4gMzAxNTs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBDTE9TSU5HIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7Ozs7CitGRTNCO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBMRUZUIEJMQUNLIExFTlRJQ1VMQVIgQlJBQ0tFVDtQczswO09OOzx2ZXJ0aWNhbD4gMzAxMDs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBPUEVOSU5HIEJMQUNLIExFTlRJQ1VMQVIgQlJBQ0tFVDs7OzsKK0ZFM0M7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIFJJR0hUIEJMQUNLIExFTlRJQ1VMQVIgQlJBQ0tFVDtQZTswO09OOzx2ZXJ0aWNhbD4gMzAxMTs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBDTE9TSU5HIEJMQUNLIExFTlRJQ1VMQVIgQlJBQ0tFVDs7OzsKK0ZFM0Q7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIExFRlQgRE9VQkxFIEFOR0xFIEJSQUNLRVQ7UHM7MDtPTjs8dmVydGljYWw+IDMwMEE7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgT1BFTklORyBET1VCTEUgQU5HTEUgQlJBQ0tFVDs7OzsKK0ZFM0U7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIFJJR0hUIERPVUJMRSBBTkdMRSBCUkFDS0VUO1BlOzA7T047PHZlcnRpY2FsPiAzMDBCOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIENMT1NJTkcgRE9VQkxFIEFOR0xFIEJSQUNLRVQ7Ozs7CitGRTNGO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBMRUZUIEFOR0xFIEJSQUNLRVQ7UHM7MDtPTjs8dmVydGljYWw+IDMwMDg7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgT1BFTklORyBBTkdMRSBCUkFDS0VUOzs7OworRkU0MDtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgUklHSFQgQU5HTEUgQlJBQ0tFVDtQZTswO09OOzx2ZXJ0aWNhbD4gMzAwOTs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBDTE9TSU5HIEFOR0xFIEJSQUNLRVQ7Ozs7CitGRTQxO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBMRUZUIENPUk5FUiBCUkFDS0VUO1BzOzA7T047PHZlcnRpY2FsPiAzMDBDOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIE9QRU5JTkcgQ09STkVSIEJSQUNLRVQ7Ozs7CitGRTQyO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBSSUdIVCBDT1JORVIgQlJBQ0tFVDtQZTswO09OOzx2ZXJ0aWNhbD4gMzAwRDs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBDTE9TSU5HIENPUk5FUiBCUkFDS0VUOzs7OworRkU0MztQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgTEVGVCBXSElURSBDT1JORVIgQlJBQ0tFVDtQczswO09OOzx2ZXJ0aWNhbD4gMzAwRTs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBPUEVOSU5HIFdISVRFIENPUk5FUiBCUkFDS0VUOzs7OworRkU0NDtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgUklHSFQgV0hJVEUgQ09STkVSIEJSQUNLRVQ7UGU7MDtPTjs8dmVydGljYWw+IDMwMEY7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgQ0xPU0lORyBXSElURSBDT1JORVIgQlJBQ0tFVDs7OzsKK0ZFNDk7REFTSEVEIE9WRVJMSU5FO1BvOzA7T047PGNvbXBhdD4gMjAzRTs7OztOO1NQQUNJTkcgREFTSEVEIE9WRVJTQ09SRTs7OzsKK0ZFNEE7Q0VOVFJFTElORSBPVkVSTElORTtQbzswO09OOzxjb21wYXQ+IDIwM0U7Ozs7TjtTUEFDSU5HIENFTlRFUkxJTkUgT1ZFUlNDT1JFOzs7OworRkU0QjtXQVZZIE9WRVJMSU5FO1BvOzA7T047PGNvbXBhdD4gMjAzRTs7OztOO1NQQUNJTkcgV0FWWSBPVkVSU0NPUkU7Ozs7CitGRTRDO0RPVUJMRSBXQVZZIE9WRVJMSU5FO1BvOzA7T047PGNvbXBhdD4gMjAzRTs7OztOO1NQQUNJTkcgRE9VQkxFIFdBVlkgT1ZFUlNDT1JFOzs7OworRkU0RDtEQVNIRUQgTE9XIExJTkU7UGM7MDtPTjs8Y29tcGF0PiAwMDVGOzs7O047U1BBQ0lORyBEQVNIRUQgVU5ERVJTQ09SRTs7OzsKK0ZFNEU7Q0VOVFJFTElORSBMT1cgTElORTtQYzswO09OOzxjb21wYXQ+IDAwNUY7Ozs7TjtTUEFDSU5HIENFTlRFUkxJTkUgVU5ERVJTQ09SRTs7OzsKK0ZFNEY7V0FWWSBMT1cgTElORTtQYzswO09OOzxjb21wYXQ+IDAwNUY7Ozs7TjtTUEFDSU5HIFdBVlkgVU5ERVJTQ09SRTs7OzsKK0ZFNTA7U01BTEwgQ09NTUE7UG87MDtDUzs8c21hbGw+IDAwMkM7Ozs7Tjs7Ozs7CitGRTUxO1NNQUxMIElERU9HUkFQSElDIENPTU1BO1BvOzA7T047PHNtYWxsPiAzMDAxOzs7O047Ozs7OworRkU1MjtTTUFMTCBGVUxMIFNUT1A7UG87MDtDUzs8c21hbGw+IDAwMkU7Ozs7TjtTTUFMTCBQRVJJT0Q7Ozs7CitGRTU0O1NNQUxMIFNFTUlDT0xPTjtQbzswO09OOzxzbWFsbD4gMDAzQjs7OztOOzs7OzsKK0ZFNTU7U01BTEwgQ09MT047UG87MDtDUzs8c21hbGw+IDAwM0E7Ozs7Tjs7Ozs7CitGRTU2O1NNQUxMIFFVRVNUSU9OIE1BUks7UG87MDtPTjs8c21hbGw+IDAwM0Y7Ozs7Tjs7Ozs7CitGRTU3O1NNQUxMIEVYQ0xBTUFUSU9OIE1BUks7UG87MDtPTjs8c21hbGw+IDAwMjE7Ozs7Tjs7Ozs7CitGRTU4O1NNQUxMIEVNIERBU0g7UGQ7MDtPTjs8c21hbGw+IDIwMTQ7Ozs7Tjs7Ozs7CitGRTU5O1NNQUxMIExFRlQgUEFSRU5USEVTSVM7UHM7MDtPTjs8c21hbGw+IDAwMjg7Ozs7TjtTTUFMTCBPUEVOSU5HIFBBUkVOVEhFU0lTOzs7OworRkU1QTtTTUFMTCBSSUdIVCBQQVJFTlRIRVNJUztQZTswO09OOzxzbWFsbD4gMDAyOTs7OztOO1NNQUxMIENMT1NJTkcgUEFSRU5USEVTSVM7Ozs7CitGRTVCO1NNQUxMIExFRlQgQ1VSTFkgQlJBQ0tFVDtQczswO09OOzxzbWFsbD4gMDA3Qjs7OztOO1NNQUxMIE9QRU5JTkcgQ1VSTFkgQlJBQ0tFVDs7OzsKK0ZFNUM7U01BTEwgUklHSFQgQ1VSTFkgQlJBQ0tFVDtQZTswO09OOzxzbWFsbD4gMDA3RDs7OztOO1NNQUxMIENMT1NJTkcgQ1VSTFkgQlJBQ0tFVDs7OzsKK0ZFNUQ7U01BTEwgTEVGVCBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUO1BzOzA7T047PHNtYWxsPiAzMDE0Ozs7O047U01BTEwgT1BFTklORyBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUOzs7OworRkU1RTtTTUFMTCBSSUdIVCBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUO1BlOzA7T047PHNtYWxsPiAzMDE1Ozs7O047U01BTEwgQ0xPU0lORyBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUOzs7OworRkU1RjtTTUFMTCBOVU1CRVIgU0lHTjtQbzswO0VUOzxzbWFsbD4gMDAyMzs7OztOOzs7OzsKK0ZFNjA7U01BTEwgQU1QRVJTQU5EO1BvOzA7T047PHNtYWxsPiAwMDI2Ozs7O047Ozs7OworRkU2MTtTTUFMTCBBU1RFUklTSztQbzswO09OOzxzbWFsbD4gMDAyQTs7OztOOzs7OzsKK0ZFNjI7U01BTEwgUExVUyBTSUdOO1NtOzA7RVQ7PHNtYWxsPiAwMDJCOzs7O047Ozs7OworRkU2MztTTUFMTCBIWVBIRU4tTUlOVVM7UGQ7MDtFVDs8c21hbGw+IDAwMkQ7Ozs7Tjs7Ozs7CitGRTY0O1NNQUxMIExFU1MtVEhBTiBTSUdOO1NtOzA7T047PHNtYWxsPiAwMDNDOzs7O047Ozs7OworRkU2NTtTTUFMTCBHUkVBVEVSLVRIQU4gU0lHTjtTbTswO09OOzxzbWFsbD4gMDAzRTs7OztOOzs7OzsKK0ZFNjY7U01BTEwgRVFVQUxTIFNJR047U207MDtPTjs8c21hbGw+IDAwM0Q7Ozs7Tjs7Ozs7CitGRTY4O1NNQUxMIFJFVkVSU0UgU09MSURVUztQbzswO09OOzxzbWFsbD4gMDA1Qzs7OztOO1NNQUxMIEJBQ0tTTEFTSDs7OzsKK0ZFNjk7U01BTEwgRE9MTEFSIFNJR047U2M7MDtFVDs8c21hbGw+IDAwMjQ7Ozs7Tjs7Ozs7CitGRTZBO1NNQUxMIFBFUkNFTlQgU0lHTjtQbzswO0VUOzxzbWFsbD4gMDAyNTs7OztOOzs7OzsKK0ZFNkI7U01BTEwgQ09NTUVSQ0lBTCBBVDtQbzswO09OOzxzbWFsbD4gMDA0MDs7OztOOzs7OzsKK0ZFNzA7QVJBQklDIEZBVEhBVEFOIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDAwMjAgMDY0Qjs7OztOO0FSQUJJQyBTUEFDSU5HIEZBVEhBVEFOOzs7OworRkU3MTtBUkFCSUMgVEFUV0VFTCBXSVRIIEZBVEhBVEFOIEFCT1ZFO0xvOzA7QUw7PG1lZGlhbD4gMDY0MCAwNjRCOzs7O047QVJBQklDIEZBVEhBVEFOIE9OIFRBVFdFRUw7Ozs7CitGRTcyO0FSQUJJQyBEQU1NQVRBTiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwMDIwIDA2NEM7Ozs7TjtBUkFCSUMgU1BBQ0lORyBEQU1NQVRBTjs7OzsKK0ZFNzQ7QVJBQklDIEtBU1JBVEFOIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDAwMjAgMDY0RDs7OztOO0FSQUJJQyBTUEFDSU5HIEtBU1JBVEFOOzs7OworRkU3NjtBUkFCSUMgRkFUSEEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDAyMCAwNjRFOzs7O047QVJBQklDIFNQQUNJTkcgRkFUSEFIOzs7OworRkU3NztBUkFCSUMgRkFUSEEgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQwIDA2NEU7Ozs7TjtBUkFCSUMgRkFUSEFIIE9OIFRBVFdFRUw7Ozs7CitGRTc4O0FSQUJJQyBEQU1NQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwMDIwIDA2NEY7Ozs7TjtBUkFCSUMgU1BBQ0lORyBEQU1NQUg7Ozs7CitGRTc5O0FSQUJJQyBEQU1NQSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDAgMDY0Rjs7OztOO0FSQUJJQyBEQU1NQUggT04gVEFUV0VFTDs7OzsKK0ZFN0E7QVJBQklDIEtBU1JBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDAwMjAgMDY1MDs7OztOO0FSQUJJQyBTUEFDSU5HIEtBU1JBSDs7OzsKK0ZFN0I7QVJBQklDIEtBU1JBIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0MCAwNjUwOzs7O047QVJBQklDIEtBU1JBSCBPTiBUQVRXRUVMOzs7OworRkU3QztBUkFCSUMgU0hBRERBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDAwMjAgMDY1MTs7OztOO0FSQUJJQyBTUEFDSU5HIFNIQUREQUg7Ozs7CitGRTdEO0FSQUJJQyBTSEFEREEgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQwIDA2NTE7Ozs7TjtBUkFCSUMgU0hBRERBSCBPTiBUQVRXRUVMOzs7OworRkU3RTtBUkFCSUMgU1VLVU4gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDAyMCAwNjUyOzs7O047QVJBQklDIFNQQUNJTkcgU1VLVU47Ozs7CitGRTdGO0FSQUJJQyBTVUtVTiBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDAgMDY1Mjs7OztOO0FSQUJJQyBTVUtVTiBPTiBUQVRXRUVMOzs7OworRkU4MDtBUkFCSUMgTEVUVEVSIEhBTVpBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjE7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgSEFNWkFIOzs7OworRkU4MTtBUkFCSUMgTEVUVEVSIEFMRUYgV0lUSCBNQUREQSBBQk9WRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjIyOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIE1BRERBSCBPTiBBTEVGOzs7OworRkU4MjtBUkFCSUMgTEVUVEVSIEFMRUYgV0lUSCBNQUREQSBBQk9WRSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjIyOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBNQUREQUggT04gQUxFRjs7OzsKK0ZFODM7QVJBQklDIExFVFRFUiBBTEVGIFdJVEggSEFNWkEgQUJPVkUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyMzs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBIQU1aQUggT04gQUxFRjs7OzsKK0ZFODQ7QVJBQklDIExFVFRFUiBBTEVGIFdJVEggSEFNWkEgQUJPVkUgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyMzs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgSEFNWkFIIE9OIEFMRUY7Ozs7CitGRTg1O0FSQUJJQyBMRVRURVIgV0FXIFdJVEggSEFNWkEgQUJPVkUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyNDs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBIQU1aQUggT04gV0FXOzs7OworRkU4NjtBUkFCSUMgTEVUVEVSIFdBVyBXSVRIIEhBTVpBIEFCT1ZFIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjQ7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEhBTVpBSCBPTiBXQVc7Ozs7CitGRTg3O0FSQUJJQyBMRVRURVIgQUxFRiBXSVRIIEhBTVpBIEJFTE9XIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjU7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgSEFNWkFIIFVOREVSIEFMRUY7Ozs7CitGRTg4O0FSQUJJQyBMRVRURVIgQUxFRiBXSVRIIEhBTVpBIEJFTE9XIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjU7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEhBTVpBSCBVTkRFUiBBTEVGOzs7OworRkU4OTtBUkFCSUMgTEVUVEVSIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjY7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgSEFNWkFIIE9OIFlBOzs7OworRkU4QTtBUkFCSUMgTEVUVEVSIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjY7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEhBTVpBSCBPTiBZQTs7OzsKK0ZFOEI7QVJBQklDIExFVFRFUiBZRUggV0lUSCBIQU1aQSBBQk9WRSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyNjs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBIQU1aQUggT04gWUE7Ozs7CitGRThDO0FSQUJJQyBMRVRURVIgWUVIIFdJVEggSEFNWkEgQUJPVkUgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjI2Ozs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgSEFNWkFIIE9OIFlBOzs7OworRkU4RDtBUkFCSUMgTEVUVEVSIEFMRUYgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyNzs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBBTEVGOzs7OworRkU4RTtBUkFCSUMgTEVUVEVSIEFMRUYgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNzs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgQUxFRjs7OzsKK0ZFOEY7QVJBQklDIExFVFRFUiBCRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyODs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBCQUE7Ozs7CitGRTkwO0FSQUJJQyBMRVRURVIgQkVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2Mjg7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEJBQTs7OzsKK0ZFOTE7QVJBQklDIExFVFRFUiBCRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2Mjg7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgQkFBOzs7OworRkU5MjtBUkFCSUMgTEVUVEVSIEJFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2Mjg7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBCQUE7Ozs7CitGRTkzO0FSQUJJQyBMRVRURVIgVEVIIE1BUkJVVEEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyOTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBUQUEgTUFSQlVUQUg7Ozs7CitGRTk0O0FSQUJJQyBMRVRURVIgVEVIIE1BUkJVVEEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyOTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgVEFBIE1BUkJVVEFIOzs7OworRkU5NTtBUkFCSUMgTEVUVEVSIFRFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJBOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFRBQTs7OzsKK0ZFOTY7QVJBQklDIExFVFRFUiBURUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgVEFBOzs7OworRkU5NztBUkFCSUMgTEVUVEVSIFRFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQTs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBUQUE7Ozs7CitGRTk4O0FSQUJJQyBMRVRURVIgVEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYyQTs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIFRBQTs7OzsKK0ZFOTk7QVJBQklDIExFVFRFUiBUSEVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkI7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgVEhBQTs7OzsKK0ZFOUE7QVJBQklDIExFVFRFUiBUSEVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkI7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFRIQUE7Ozs7CitGRTlCO0FSQUJJQyBMRVRURVIgVEhFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQjs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBUSEFBOzs7OworRkU5QztBUkFCSUMgTEVUVEVSIFRIRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjJCOzs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgVEhBQTs7OzsKK0ZFOUQ7QVJBQklDIExFVFRFUiBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkM7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgSkVFTTs7OzsKK0ZFOUU7QVJBQklDIExFVFRFUiBKRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkM7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEpFRU07Ozs7CitGRTlGO0FSQUJJQyBMRVRURVIgSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQzs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBKRUVNOzs7OworRkVBMDtBUkFCSUMgTEVUVEVSIEpFRU0gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjJDOzs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgSkVFTTs7OzsKK0ZFQTE7QVJBQklDIExFVFRFUiBIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyRDs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBIQUE7Ozs7CitGRUEyO0FSQUJJQyBMRVRURVIgSEFIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkQ7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEhBQTs7OzsKK0ZFQTM7QVJBQklDIExFVFRFUiBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkQ7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgSEFBOzs7OworRkVBNDtBUkFCSUMgTEVUVEVSIEhBSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MkQ7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBIQUE7Ozs7CitGRUE1O0FSQUJJQyBMRVRURVIgS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJFOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEtIQUE7Ozs7CitGRUE2O0FSQUJJQyBMRVRURVIgS0hBSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJFOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBLSEFBOzs7OworRkVBNztBUkFCSUMgTEVUVEVSIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkU7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgS0hBQTs7OzsKK0ZFQTg7QVJBQklDIExFVFRFUiBLSEFIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYyRTs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIEtIQUE7Ozs7CitGRUE5O0FSQUJJQyBMRVRURVIgREFMIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkY7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgREFMOzs7OworRkVBQTtBUkFCSUMgTEVUVEVSIERBTCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJGOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBEQUw7Ozs7CitGRUFCO0FSQUJJQyBMRVRURVIgVEhBTCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjMwOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFRIQUw7Ozs7CitGRUFDO0FSQUJJQyBMRVRURVIgVEhBTCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjMwOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBUSEFMOzs7OworRkVBRDtBUkFCSUMgTEVUVEVSIFJFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjMxOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFJBOzs7OworRkVBRTtBUkFCSUMgTEVUVEVSIFJFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjMxOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBSQTs7OzsKK0ZFQUY7QVJBQklDIExFVFRFUiBaQUlOIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzI7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgWkFJTjs7OzsKK0ZFQjA7QVJBQklDIExFVFRFUiBaQUlOIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzI7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFpBSU47Ozs7CitGRUIxO0FSQUJJQyBMRVRURVIgU0VFTiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjMzOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFNFRU47Ozs7CitGRUIyO0FSQUJJQyBMRVRURVIgU0VFTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjMzOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBTRUVOOzs7OworRkVCMztBUkFCSUMgTEVUVEVSIFNFRU4gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzM7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgU0VFTjs7OzsKK0ZFQjQ7QVJBQklDIExFVFRFUiBTRUVOIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzMzs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIFNFRU47Ozs7CitGRUI1O0FSQUJJQyBMRVRURVIgU0hFRU4gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNDs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBTSEVFTjs7OzsKK0ZFQjY7QVJBQklDIExFVFRFUiBTSEVFTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM0Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBTSEVFTjs7OzsKK0ZFQjc7QVJBQklDIExFVFRFUiBTSEVFTiBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNDs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBTSEVFTjs7OzsKK0ZFQjg7QVJBQklDIExFVFRFUiBTSEVFTiBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MzQ7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBTSEVFTjs7OzsKK0ZFQjk7QVJBQklDIExFVFRFUiBTQUQgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBTQUQ7Ozs7CitGRUJBO0FSQUJJQyBMRVRURVIgU0FEIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzU7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFNBRDs7OzsKK0ZFQkI7QVJBQklDIExFVFRFUiBTQUQgSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzU7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgU0FEOzs7OworRkVCQztBUkFCSUMgTEVUVEVSIFNBRCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MzU7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBTQUQ7Ozs7CitGRUJEO0FSQUJJQyBMRVRURVIgREFEIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzY7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgREFEOzs7OworRkVCRTtBUkFCSUMgTEVUVEVSIERBRCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM2Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBEQUQ7Ozs7CitGRUJGO0FSQUJJQyBMRVRURVIgREFEIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM2Ozs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIERBRDs7OzsKK0ZFQzA7QVJBQklDIExFVFRFUiBEQUQgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjM2Ozs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgREFEOzs7OworRkVDMTtBUkFCSUMgTEVUVEVSIFRBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM3Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFRBSDs7OzsKK0ZFQzI7QVJBQklDIExFVFRFUiBUQUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNzs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgVEFIOzs7OworRkVDMztBUkFCSUMgTEVUVEVSIFRBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNzs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBUQUg7Ozs7CitGRUM0O0FSQUJJQyBMRVRURVIgVEFIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzNzs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIFRBSDs7OzsKK0ZFQzU7QVJBQklDIExFVFRFUiBaQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzODs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBESEFIOzs7OworRkVDNjtBUkFCSUMgTEVUVEVSIFpBSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM4Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBESEFIOzs7OworRkVDNztBUkFCSUMgTEVUVEVSIFpBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzODs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBESEFIOzs7OworRkVDODtBUkFCSUMgTEVUVEVSIFpBSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2Mzg7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBESEFIOzs7OworRkVDOTtBUkFCSUMgTEVUVEVSIEFJTiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM5Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEFJTjs7OzsKK0ZFQ0E7QVJBQklDIExFVFRFUiBBSU4gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzOTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgQUlOOzs7OworRkVDQjtBUkFCSUMgTEVUVEVSIEFJTiBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzOTs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBBSU47Ozs7CitGRUNDO0FSQUJJQyBMRVRURVIgQUlOIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzOTs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIEFJTjs7OzsKK0ZFQ0Q7QVJBQklDIExFVFRFUiBHSEFJTiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjNBOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEdIQUlOOzs7OworRkVDRTtBUkFCSUMgTEVUVEVSIEdIQUlOIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2M0E7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEdIQUlOOzs7OworRkVDRjtBUkFCSUMgTEVUVEVSIEdIQUlOIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjNBOzs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIEdIQUlOOzs7OworRkVEMDtBUkFCSUMgTEVUVEVSIEdIQUlOIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzQTs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIEdIQUlOOzs7OworRkVEMTtBUkFCSUMgTEVUVEVSIEZFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQxOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEZBOzs7OworRkVEMjtBUkFCSUMgTEVUVEVSIEZFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQxOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBGQTs7OzsKK0ZFRDM7QVJBQklDIExFVFRFUiBGRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDE7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgRkE7Ozs7CitGRUQ0O0FSQUJJQyBMRVRURVIgRkVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0MTs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIEZBOzs7OworRkVENTtBUkFCSUMgTEVUVEVSIFFBRiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQyOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFFBRjs7OzsKK0ZFRDY7QVJBQklDIExFVFRFUiBRQUYgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0Mjs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgUUFGOzs7OworRkVENztBUkFCSUMgTEVUVEVSIFFBRiBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0Mjs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBRQUY7Ozs7CitGRUQ4O0FSQUJJQyBMRVRURVIgUUFGIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0Mjs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIFFBRjs7OzsKK0ZFRDk7QVJBQklDIExFVFRFUiBLQUYgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0Mzs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBDQUY7Ozs7CitGRURBO0FSQUJJQyBMRVRURVIgS0FGIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDM7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIENBRjs7OzsKK0ZFREI7QVJBQklDIExFVFRFUiBLQUYgSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDM7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgQ0FGOzs7OworRkVEQztBUkFCSUMgTEVUVEVSIEtBRiBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDM7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBDQUY7Ozs7CitGRUREO0FSQUJJQyBMRVRURVIgTEFNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDQ7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgTEFNOzs7OworRkVERTtBUkFCSUMgTEVUVEVSIExBTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ0Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBMQU07Ozs7CitGRURGO0FSQUJJQyBMRVRURVIgTEFNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ0Ozs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIExBTTs7OzsKK0ZFRTA7QVJBQklDIExFVFRFUiBMQU0gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQ0Ozs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgTEFNOzs7OworRkVFMTtBUkFCSUMgTEVUVEVSIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBNRUVNOzs7OworRkVFMjtBUkFCSUMgTEVUVEVSIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgTUVFTTs7OzsKK0ZFRTM7QVJBQklDIExFVFRFUiBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ1Ozs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIE1FRU07Ozs7CitGRUU0O0FSQUJJQyBMRVRURVIgTUVFTSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDU7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBNRUVNOzs7OworRkVFNTtBUkFCSUMgTEVUVEVSIE5PT04gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0Njs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBOT09OOzs7OworRkVFNjtBUkFCSUMgTEVUVEVSIE5PT04gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0Njs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgTk9PTjs7OzsKK0ZFRTc7QVJBQklDIExFVFRFUiBOT09OIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ2Ozs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIE5PT047Ozs7CitGRUU4O0FSQUJJQyBMRVRURVIgTk9PTiBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDY7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBOT09OOzs7OworRkVFOTtBUkFCSUMgTEVUVEVSIEhFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ3Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEhBOzs7OworRkVFQTtBUkFCSUMgTEVUVEVSIEhFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ3Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBIQTs7OzsKK0ZFRUI7QVJBQklDIExFVFRFUiBIRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDc7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgSEE7Ozs7CitGRUVDO0FSQUJJQyBMRVRURVIgSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0Nzs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIEhBOzs7OworRkVFRDtBUkFCSUMgTEVUVEVSIFdBVyBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ4Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFdBVzs7OzsKK0ZFRUU7QVJBQklDIExFVFRFUiBXQVcgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0ODs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgV0FXOzs7OworRkVFRjtBUkFCSUMgTEVUVEVSIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ5Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEFMRUYgTUFRU1VSQUg7Ozs7CitGRUYwO0FSQUJJQyBMRVRURVIgQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDk7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEFMRUYgTUFRU1VSQUg7Ozs7CitGRUYxO0FSQUJJQyBMRVRURVIgWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NEE7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgWUE7Ozs7CitGRUYyO0FSQUJJQyBMRVRURVIgWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NEE7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFlBOzs7OworRkVGMztBUkFCSUMgTEVUVEVSIFlFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0QTs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBZQTs7OzsKK0ZFRjQ7QVJBQklDIExFVFRFUiBZRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjRBOzs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgWUE7Ozs7CitGRUY1O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBBTEVGIFdJVEggTUFEREEgQUJPVkUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NCAwNjIyOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIE1BRERBSCBPTiBMSUdBVFVSRSBMQU0gQUxFRjs7OzsKK0ZFRjY7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEFMRUYgV0lUSCBNQUREQSBBQk9WRSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ0IDA2MjI7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIE1BRERBSCBPTiBMSUdBVFVSRSBMQU0gQUxFRjs7OzsKK0ZFRjc7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEFMRUYgV0lUSCBIQU1aQSBBQk9WRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ0IDA2MjM7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgSEFNWkFIIE9OIExJR0FUVVJFIExBTSBBTEVGOzs7OworRkVGODtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggQUxFRiBXSVRIIEhBTVpBIEFCT1ZFIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDQgMDYyMzs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgSEFNWkFIIE9OIExJR0FUVVJFIExBTSBBTEVGOzs7OworRkVGOTtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggQUxFRiBXSVRIIEhBTVpBIEJFTE9XIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDQgMDYyNTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBIQU1aQUggVU5ERVIgTElHQVRVUkUgTEFNIEFMRUY7Ozs7CitGRUZBO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBBTEVGIFdJVEggSEFNWkEgQkVMT1cgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NCAwNjI1Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBIQU1aQUggVU5ERVIgTElHQVRVUkUgTEFNIEFMRUY7Ozs7CitGRUZCO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBBTEVGIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDQgMDYyNzs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBMSUdBVFVSRSBMQU0gQUxFRjs7OzsKK0ZFRkM7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEFMRUYgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NCAwNjI3Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBMSUdBVFVSRSBMQU0gQUxFRjs7OzsKK0ZFRkY7WkVSTyBXSURUSCBOTy1CUkVBSyBTUEFDRTtDZjswO0JOOzs7OztOO0JZVEUgT1JERVIgTUFSSzs7OzsKK0ZGMDE7RlVMTFdJRFRIIEVYQ0xBTUFUSU9OIE1BUks7UG87MDtPTjs8d2lkZT4gMDAyMTs7OztOOzs7OzsKK0ZGMDI7RlVMTFdJRFRIIFFVT1RBVElPTiBNQVJLO1BvOzA7T047PHdpZGU+IDAwMjI7Ozs7Tjs7Ozs7CitGRjAzO0ZVTExXSURUSCBOVU1CRVIgU0lHTjtQbzswO0VUOzx3aWRlPiAwMDIzOzs7O047Ozs7OworRkYwNDtGVUxMV0lEVEggRE9MTEFSIFNJR047U2M7MDtFVDs8d2lkZT4gMDAyNDs7OztOOzs7OzsKK0ZGMDU7RlVMTFdJRFRIIFBFUkNFTlQgU0lHTjtQbzswO0VUOzx3aWRlPiAwMDI1Ozs7O047Ozs7OworRkYwNjtGVUxMV0lEVEggQU1QRVJTQU5EO1BvOzA7T047PHdpZGU+IDAwMjY7Ozs7Tjs7Ozs7CitGRjA3O0ZVTExXSURUSCBBUE9TVFJPUEhFO1BvOzA7T047PHdpZGU+IDAwMjc7Ozs7Tjs7Ozs7CitGRjA4O0ZVTExXSURUSCBMRUZUIFBBUkVOVEhFU0lTO1BzOzA7T047PHdpZGU+IDAwMjg7Ozs7TjtGVUxMV0lEVEggT1BFTklORyBQQVJFTlRIRVNJUzs7OzsKK0ZGMDk7RlVMTFdJRFRIIFJJR0hUIFBBUkVOVEhFU0lTO1BlOzA7T047PHdpZGU+IDAwMjk7Ozs7TjtGVUxMV0lEVEggQ0xPU0lORyBQQVJFTlRIRVNJUzs7OzsKK0ZGMEE7RlVMTFdJRFRIIEFTVEVSSVNLO1BvOzA7T047PHdpZGU+IDAwMkE7Ozs7Tjs7Ozs7CitGRjBCO0ZVTExXSURUSCBQTFVTIFNJR047U207MDtFVDs8d2lkZT4gMDAyQjs7OztOOzs7OzsKK0ZGMEM7RlVMTFdJRFRIIENPTU1BO1BvOzA7Q1M7PHdpZGU+IDAwMkM7Ozs7Tjs7Ozs7CitGRjBEO0ZVTExXSURUSCBIWVBIRU4tTUlOVVM7UGQ7MDtFVDs8d2lkZT4gMDAyRDs7OztOOzs7OzsKK0ZGMEU7RlVMTFdJRFRIIEZVTEwgU1RPUDtQbzswO0NTOzx3aWRlPiAwMDJFOzs7O047RlVMTFdJRFRIIFBFUklPRDs7OzsKK0ZGMEY7RlVMTFdJRFRIIFNPTElEVVM7UG87MDtFUzs8d2lkZT4gMDAyRjs7OztOO0ZVTExXSURUSCBTTEFTSDs7OzsKK0ZGMTA7RlVMTFdJRFRIIERJR0lUIFpFUk87TmQ7MDtFTjs8d2lkZT4gMDAzMDswOzA7MDtOOzs7OzsKK0ZGMTE7RlVMTFdJRFRIIERJR0lUIE9ORTtOZDswO0VOOzx3aWRlPiAwMDMxOzE7MTsxO047Ozs7OworRkYxMjtGVUxMV0lEVEggRElHSVQgVFdPO05kOzA7RU47PHdpZGU+IDAwMzI7MjsyOzI7Tjs7Ozs7CitGRjEzO0ZVTExXSURUSCBESUdJVCBUSFJFRTtOZDswO0VOOzx3aWRlPiAwMDMzOzM7MzszO047Ozs7OworRkYxNDtGVUxMV0lEVEggRElHSVQgRk9VUjtOZDswO0VOOzx3aWRlPiAwMDM0OzQ7NDs0O047Ozs7OworRkYxNTtGVUxMV0lEVEggRElHSVQgRklWRTtOZDswO0VOOzx3aWRlPiAwMDM1OzU7NTs1O047Ozs7OworRkYxNjtGVUxMV0lEVEggRElHSVQgU0lYO05kOzA7RU47PHdpZGU+IDAwMzY7Njs2OzY7Tjs7Ozs7CitGRjE3O0ZVTExXSURUSCBESUdJVCBTRVZFTjtOZDswO0VOOzx3aWRlPiAwMDM3Ozc7Nzs3O047Ozs7OworRkYxODtGVUxMV0lEVEggRElHSVQgRUlHSFQ7TmQ7MDtFTjs8d2lkZT4gMDAzODs4Ozg7ODtOOzs7OzsKK0ZGMTk7RlVMTFdJRFRIIERJR0lUIE5JTkU7TmQ7MDtFTjs8d2lkZT4gMDAzOTs5Ozk7OTtOOzs7OzsKK0ZGMUE7RlVMTFdJRFRIIENPTE9OO1BvOzA7Q1M7PHdpZGU+IDAwM0E7Ozs7Tjs7Ozs7CitGRjFCO0ZVTExXSURUSCBTRU1JQ09MT047UG87MDtPTjs8d2lkZT4gMDAzQjs7OztOOzs7OzsKK0ZGMUM7RlVMTFdJRFRIIExFU1MtVEhBTiBTSUdOO1NtOzA7T047PHdpZGU+IDAwM0M7Ozs7Tjs7Ozs7CitGRjFEO0ZVTExXSURUSCBFUVVBTFMgU0lHTjtTbTswO09OOzx3aWRlPiAwMDNEOzs7O047Ozs7OworRkYxRTtGVUxMV0lEVEggR1JFQVRFUi1USEFOIFNJR047U207MDtPTjs8d2lkZT4gMDAzRTs7OztOOzs7OzsKK0ZGMUY7RlVMTFdJRFRIIFFVRVNUSU9OIE1BUks7UG87MDtPTjs8d2lkZT4gMDAzRjs7OztOOzs7OzsKK0ZGMjA7RlVMTFdJRFRIIENPTU1FUkNJQUwgQVQ7UG87MDtPTjs8d2lkZT4gMDA0MDs7OztOOzs7OzsKK0ZGMjE7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEE7THU7MDtMOzx3aWRlPiAwMDQxOzs7O047Ozs7RkY0MTsKK0ZGMjI7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEI7THU7MDtMOzx3aWRlPiAwMDQyOzs7O047Ozs7RkY0MjsKK0ZGMjM7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEM7THU7MDtMOzx3aWRlPiAwMDQzOzs7O047Ozs7RkY0MzsKK0ZGMjQ7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEQ7THU7MDtMOzx3aWRlPiAwMDQ0Ozs7O047Ozs7RkY0NDsKK0ZGMjU7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEU7THU7MDtMOzx3aWRlPiAwMDQ1Ozs7O047Ozs7RkY0NTsKK0ZGMjY7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEY7THU7MDtMOzx3aWRlPiAwMDQ2Ozs7O047Ozs7RkY0NjsKK0ZGMjc7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEc7THU7MDtMOzx3aWRlPiAwMDQ3Ozs7O047Ozs7RkY0NzsKK0ZGMjg7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEg7THU7MDtMOzx3aWRlPiAwMDQ4Ozs7O047Ozs7RkY0ODsKK0ZGMjk7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEk7THU7MDtMOzx3aWRlPiAwMDQ5Ozs7O047Ozs7RkY0OTsKK0ZGMkE7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEo7THU7MDtMOzx3aWRlPiAwMDRBOzs7O047Ozs7RkY0QTsKK0ZGMkI7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEs7THU7MDtMOzx3aWRlPiAwMDRCOzs7O047Ozs7RkY0QjsKK0ZGMkM7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEw7THU7MDtMOzx3aWRlPiAwMDRDOzs7O047Ozs7RkY0QzsKK0ZGMkQ7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIE07THU7MDtMOzx3aWRlPiAwMDREOzs7O047Ozs7RkY0RDsKK0ZGMkU7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIE47THU7MDtMOzx3aWRlPiAwMDRFOzs7O047Ozs7RkY0RTsKK0ZGMkY7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIE87THU7MDtMOzx3aWRlPiAwMDRGOzs7O047Ozs7RkY0RjsKK0ZGMzA7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFA7THU7MDtMOzx3aWRlPiAwMDUwOzs7O047Ozs7RkY1MDsKK0ZGMzE7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFE7THU7MDtMOzx3aWRlPiAwMDUxOzs7O047Ozs7RkY1MTsKK0ZGMzI7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFI7THU7MDtMOzx3aWRlPiAwMDUyOzs7O047Ozs7RkY1MjsKK0ZGMzM7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFM7THU7MDtMOzx3aWRlPiAwMDUzOzs7O047Ozs7RkY1MzsKK0ZGMzQ7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFQ7THU7MDtMOzx3aWRlPiAwMDU0Ozs7O047Ozs7RkY1NDsKK0ZGMzU7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFU7THU7MDtMOzx3aWRlPiAwMDU1Ozs7O047Ozs7RkY1NTsKK0ZGMzY7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFY7THU7MDtMOzx3aWRlPiAwMDU2Ozs7O047Ozs7RkY1NjsKK0ZGMzc7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFc7THU7MDtMOzx3aWRlPiAwMDU3Ozs7O047Ozs7RkY1NzsKK0ZGMzg7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFg7THU7MDtMOzx3aWRlPiAwMDU4Ozs7O047Ozs7RkY1ODsKK0ZGMzk7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFk7THU7MDtMOzx3aWRlPiAwMDU5Ozs7O047Ozs7RkY1OTsKK0ZGM0E7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFo7THU7MDtMOzx3aWRlPiAwMDVBOzs7O047Ozs7RkY1QTsKK0ZGM0I7RlVMTFdJRFRIIExFRlQgU1FVQVJFIEJSQUNLRVQ7UHM7MDtPTjs8d2lkZT4gMDA1Qjs7OztOO0ZVTExXSURUSCBPUEVOSU5HIFNRVUFSRSBCUkFDS0VUOzs7OworRkYzQztGVUxMV0lEVEggUkVWRVJTRSBTT0xJRFVTO1BvOzA7T047PHdpZGU+IDAwNUM7Ozs7TjtGVUxMV0lEVEggQkFDS1NMQVNIOzs7OworRkYzRDtGVUxMV0lEVEggUklHSFQgU1FVQVJFIEJSQUNLRVQ7UGU7MDtPTjs8d2lkZT4gMDA1RDs7OztOO0ZVTExXSURUSCBDTE9TSU5HIFNRVUFSRSBCUkFDS0VUOzs7OworRkYzRTtGVUxMV0lEVEggQ0lSQ1VNRkxFWCBBQ0NFTlQ7U2s7MDtPTjs8d2lkZT4gMDA1RTs7OztOO0ZVTExXSURUSCBTUEFDSU5HIENJUkNVTUZMRVg7Ozs7CitGRjNGO0ZVTExXSURUSCBMT1cgTElORTtQYzswO09OOzx3aWRlPiAwMDVGOzs7O047RlVMTFdJRFRIIFNQQUNJTkcgVU5ERVJTQ09SRTs7OzsKK0ZGNDA7RlVMTFdJRFRIIEdSQVZFIEFDQ0VOVDtTazswO09OOzx3aWRlPiAwMDYwOzs7O047RlVMTFdJRFRIIFNQQUNJTkcgR1JBVkU7Ozs7CitGRjQxO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgQTtMbDswO0w7PHdpZGU+IDAwNjE7Ozs7Tjs7O0ZGMjE7O0ZGMjEKK0ZGNDI7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBCO0xsOzA7TDs8d2lkZT4gMDA2Mjs7OztOOzs7RkYyMjs7RkYyMgorRkY0MztGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEM7TGw7MDtMOzx3aWRlPiAwMDYzOzs7O047OztGRjIzOztGRjIzCitGRjQ0O0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgRDtMbDswO0w7PHdpZGU+IDAwNjQ7Ozs7Tjs7O0ZGMjQ7O0ZGMjQKK0ZGNDU7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBFO0xsOzA7TDs8d2lkZT4gMDA2NTs7OztOOzs7RkYyNTs7RkYyNQorRkY0NjtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEY7TGw7MDtMOzx3aWRlPiAwMDY2Ozs7O047OztGRjI2OztGRjI2CitGRjQ3O0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgRztMbDswO0w7PHdpZGU+IDAwNjc7Ozs7Tjs7O0ZGMjc7O0ZGMjcKK0ZGNDg7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBIO0xsOzA7TDs8d2lkZT4gMDA2ODs7OztOOzs7RkYyODs7RkYyOAorRkY0OTtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEk7TGw7MDtMOzx3aWRlPiAwMDY5Ozs7O047OztGRjI5OztGRjI5CitGRjRBO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgSjtMbDswO0w7PHdpZGU+IDAwNkE7Ozs7Tjs7O0ZGMkE7O0ZGMkEKK0ZGNEI7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBLO0xsOzA7TDs8d2lkZT4gMDA2Qjs7OztOOzs7RkYyQjs7RkYyQgorRkY0QztGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEw7TGw7MDtMOzx3aWRlPiAwMDZDOzs7O047OztGRjJDOztGRjJDCitGRjREO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgTTtMbDswO0w7PHdpZGU+IDAwNkQ7Ozs7Tjs7O0ZGMkQ7O0ZGMkQKK0ZGNEU7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBOO0xsOzA7TDs8d2lkZT4gMDA2RTs7OztOOzs7RkYyRTs7RkYyRQorRkY0RjtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIE87TGw7MDtMOzx3aWRlPiAwMDZGOzs7O047OztGRjJGOztGRjJGCitGRjUwO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgUDtMbDswO0w7PHdpZGU+IDAwNzA7Ozs7Tjs7O0ZGMzA7O0ZGMzAKK0ZGNTE7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBRO0xsOzA7TDs8d2lkZT4gMDA3MTs7OztOOzs7RkYzMTs7RkYzMQorRkY1MjtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIFI7TGw7MDtMOzx3aWRlPiAwMDcyOzs7O047OztGRjMyOztGRjMyCitGRjUzO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgUztMbDswO0w7PHdpZGU+IDAwNzM7Ozs7Tjs7O0ZGMzM7O0ZGMzMKK0ZGNTQ7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBUO0xsOzA7TDs8d2lkZT4gMDA3NDs7OztOOzs7RkYzNDs7RkYzNAorRkY1NTtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIFU7TGw7MDtMOzx3aWRlPiAwMDc1Ozs7O047OztGRjM1OztGRjM1CitGRjU2O0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgVjtMbDswO0w7PHdpZGU+IDAwNzY7Ozs7Tjs7O0ZGMzY7O0ZGMzYKK0ZGNTc7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBXO0xsOzA7TDs8d2lkZT4gMDA3Nzs7OztOOzs7RkYzNzs7RkYzNworRkY1ODtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIFg7TGw7MDtMOzx3aWRlPiAwMDc4Ozs7O047OztGRjM4OztGRjM4CitGRjU5O0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgWTtMbDswO0w7PHdpZGU+IDAwNzk7Ozs7Tjs7O0ZGMzk7O0ZGMzkKK0ZGNUE7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBaO0xsOzA7TDs8d2lkZT4gMDA3QTs7OztOOzs7RkYzQTs7RkYzQQorRkY1QjtGVUxMV0lEVEggTEVGVCBDVVJMWSBCUkFDS0VUO1BzOzA7T047PHdpZGU+IDAwN0I7Ozs7TjtGVUxMV0lEVEggT1BFTklORyBDVVJMWSBCUkFDS0VUOzs7OworRkY1QztGVUxMV0lEVEggVkVSVElDQUwgTElORTtTbTswO09OOzx3aWRlPiAwMDdDOzs7O047RlVMTFdJRFRIIFZFUlRJQ0FMIEJBUjs7OzsKK0ZGNUQ7RlVMTFdJRFRIIFJJR0hUIENVUkxZIEJSQUNLRVQ7UGU7MDtPTjs8d2lkZT4gMDA3RDs7OztOO0ZVTExXSURUSCBDTE9TSU5HIENVUkxZIEJSQUNLRVQ7Ozs7CitGRjVFO0ZVTExXSURUSCBUSUxERTtTbTswO09OOzx3aWRlPiAwMDdFOzs7O047RlVMTFdJRFRIIFNQQUNJTkcgVElMREU7Ozs7CitGRjYxO0hBTEZXSURUSCBJREVPR1JBUEhJQyBGVUxMIFNUT1A7UG87MDtPTjs8bmFycm93PiAzMDAyOzs7O047SEFMRldJRFRIIElERU9HUkFQSElDIFBFUklPRDs7OzsKK0ZGNjI7SEFMRldJRFRIIExFRlQgQ09STkVSIEJSQUNLRVQ7UHM7MDtPTjs8bmFycm93PiAzMDBDOzs7O047SEFMRldJRFRIIE9QRU5JTkcgQ09STkVSIEJSQUNLRVQ7Ozs7CitGRjYzO0hBTEZXSURUSCBSSUdIVCBDT1JORVIgQlJBQ0tFVDtQZTswO09OOzxuYXJyb3c+IDMwMEQ7Ozs7TjtIQUxGV0lEVEggQ0xPU0lORyBDT1JORVIgQlJBQ0tFVDs7OzsKK0ZGNjQ7SEFMRldJRFRIIElERU9HUkFQSElDIENPTU1BO1BvOzA7T047PG5hcnJvdz4gMzAwMTs7OztOOzs7OzsKK0ZGNjU7SEFMRldJRFRIIEtBVEFLQU5BIE1JRERMRSBET1Q7UGM7MDtPTjs8bmFycm93PiAzMEZCOzs7O047Ozs7OworRkY2NjtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFdPO0xvOzA7TDs8bmFycm93PiAzMEYyOzs7O047Ozs7OworRkY2NztIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFNNQUxMIEE7TG87MDtMOzxuYXJyb3c+IDMwQTE7Ozs7Tjs7Ozs7CitGRjY4O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU01BTEwgSTtMbzswO0w7PG5hcnJvdz4gMzBBMzs7OztOOzs7OzsKK0ZGNjk7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTUFMTCBVO0xvOzA7TDs8bmFycm93PiAzMEE1Ozs7O047Ozs7OworRkY2QTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFNNQUxMIEU7TG87MDtMOzxuYXJyb3c+IDMwQTc7Ozs7Tjs7Ozs7CitGRjZCO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU01BTEwgTztMbzswO0w7PG5hcnJvdz4gMzBBOTs7OztOOzs7OzsKK0ZGNkM7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTUFMTCBZQTtMbzswO0w7PG5hcnJvdz4gMzBFMzs7OztOOzs7OzsKK0ZGNkQ7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTUFMTCBZVTtMbzswO0w7PG5hcnJvdz4gMzBFNTs7OztOOzs7OzsKK0ZGNkU7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTUFMTCBZTztMbzswO0w7PG5hcnJvdz4gMzBFNzs7OztOOzs7OzsKK0ZGNkY7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTUFMTCBUVTtMbzswO0w7PG5hcnJvdz4gMzBDMzs7OztOOzs7OzsKK0ZGNzA7SEFMRldJRFRIIEtBVEFLQU5BLUhJUkFHQU5BIFBST0xPTkdFRCBTT1VORCBNQVJLO0xtOzA7TDs8bmFycm93PiAzMEZDOzs7O047Ozs7OworRkY3MTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIEE7TG87MDtMOzxuYXJyb3c+IDMwQTI7Ozs7Tjs7Ozs7CitGRjcyO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgSTtMbzswO0w7PG5hcnJvdz4gMzBBNDs7OztOOzs7OzsKK0ZGNzM7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBVO0xvOzA7TDs8bmFycm93PiAzMEE2Ozs7O047Ozs7OworRkY3NDtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIEU7TG87MDtMOzxuYXJyb3c+IDMwQTg7Ozs7Tjs7Ozs7CitGRjc1O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTztMbzswO0w7PG5hcnJvdz4gMzBBQTs7OztOOzs7OzsKK0ZGNzY7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBLQTtMbzswO0w7PG5hcnJvdz4gMzBBQjs7OztOOzs7OzsKK0ZGNzc7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBLSTtMbzswO0w7PG5hcnJvdz4gMzBBRDs7OztOOzs7OzsKK0ZGNzg7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBLVTtMbzswO0w7PG5hcnJvdz4gMzBBRjs7OztOOzs7OzsKK0ZGNzk7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBLRTtMbzswO0w7PG5hcnJvdz4gMzBCMTs7OztOOzs7OzsKK0ZGN0E7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBLTztMbzswO0w7PG5hcnJvdz4gMzBCMzs7OztOOzs7OzsKK0ZGN0I7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTQTtMbzswO0w7PG5hcnJvdz4gMzBCNTs7OztOOzs7OzsKK0ZGN0M7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTSTtMbzswO0w7PG5hcnJvdz4gMzBCNzs7OztOOzs7OzsKK0ZGN0Q7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTVTtMbzswO0w7PG5hcnJvdz4gMzBCOTs7OztOOzs7OzsKK0ZGN0U7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTRTtMbzswO0w7PG5hcnJvdz4gMzBCQjs7OztOOzs7OzsKK0ZGN0Y7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTztMbzswO0w7PG5hcnJvdz4gMzBCRDs7OztOOzs7OzsKK0ZGODA7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBUQTtMbzswO0w7PG5hcnJvdz4gMzBCRjs7OztOOzs7OzsKK0ZGODE7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBUSTtMbzswO0w7PG5hcnJvdz4gMzBDMTs7OztOOzs7OzsKK0ZGODI7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBUVTtMbzswO0w7PG5hcnJvdz4gMzBDNDs7OztOOzs7OzsKK0ZGODM7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBURTtMbzswO0w7PG5hcnJvdz4gMzBDNjs7OztOOzs7OzsKK0ZGODQ7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBUTztMbzswO0w7PG5hcnJvdz4gMzBDODs7OztOOzs7OzsKK0ZGODU7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBOQTtMbzswO0w7PG5hcnJvdz4gMzBDQTs7OztOOzs7OzsKK0ZGODY7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBOSTtMbzswO0w7PG5hcnJvdz4gMzBDQjs7OztOOzs7OzsKK0ZGODc7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBOVTtMbzswO0w7PG5hcnJvdz4gMzBDQzs7OztOOzs7OzsKK0ZGODg7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBORTtMbzswO0w7PG5hcnJvdz4gMzBDRDs7OztOOzs7OzsKK0ZGODk7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBOTztMbzswO0w7PG5hcnJvdz4gMzBDRTs7OztOOzs7OzsKK0ZGOEE7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBIQTtMbzswO0w7PG5hcnJvdz4gMzBDRjs7OztOOzs7OzsKK0ZGOEI7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBISTtMbzswO0w7PG5hcnJvdz4gMzBEMjs7OztOOzs7OzsKK0ZGOEM7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBIVTtMbzswO0w7PG5hcnJvdz4gMzBENTs7OztOOzs7OzsKK0ZGOEQ7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBIRTtMbzswO0w7PG5hcnJvdz4gMzBEODs7OztOOzs7OzsKK0ZGOEU7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBITztMbzswO0w7PG5hcnJvdz4gMzBEQjs7OztOOzs7OzsKK0ZGOEY7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBNQTtMbzswO0w7PG5hcnJvdz4gMzBERTs7OztOOzs7OzsKK0ZGOTA7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBNSTtMbzswO0w7PG5hcnJvdz4gMzBERjs7OztOOzs7OzsKK0ZGOTE7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBNVTtMbzswO0w7PG5hcnJvdz4gMzBFMDs7OztOOzs7OzsKK0ZGOTI7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBNRTtMbzswO0w7PG5hcnJvdz4gMzBFMTs7OztOOzs7OzsKK0ZGOTM7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBNTztMbzswO0w7PG5hcnJvdz4gMzBFMjs7OztOOzs7OzsKK0ZGOTQ7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBZQTtMbzswO0w7PG5hcnJvdz4gMzBFNDs7OztOOzs7OzsKK0ZGOTU7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBZVTtMbzswO0w7PG5hcnJvdz4gMzBFNjs7OztOOzs7OzsKK0ZGOTY7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBZTztMbzswO0w7PG5hcnJvdz4gMzBFODs7OztOOzs7OzsKK0ZGOTc7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBSQTtMbzswO0w7PG5hcnJvdz4gMzBFOTs7OztOOzs7OzsKK0ZGOTg7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBSSTtMbzswO0w7PG5hcnJvdz4gMzBFQTs7OztOOzs7OzsKK0ZGOTk7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBSVTtMbzswO0w7PG5hcnJvdz4gMzBFQjs7OztOOzs7OzsKK0ZGOUE7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBSRTtMbzswO0w7PG5hcnJvdz4gMzBFQzs7OztOOzs7OzsKK0ZGOUI7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBSTztMbzswO0w7PG5hcnJvdz4gMzBFRDs7OztOOzs7OzsKK0ZGOUM7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBXQTtMbzswO0w7PG5hcnJvdz4gMzBFRjs7OztOOzs7OzsKK0ZGOUQ7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBOO0xvOzA7TDs8bmFycm93PiAzMEYzOzs7O047Ozs7OworRkY5RTtIQUxGV0lEVEggS0FUQUtBTkEgVk9JQ0VEIFNPVU5EIE1BUks7TG07MDtMOzxuYXJyb3c+IDMwOTk7Ozs7Tjs7aGFsZndpZHRoIGthdGFrYW5hLWhpcmFnYW5hIHZvaWNlZCBzb3VuZCBtYXJrOzs7CitGRjlGO0hBTEZXSURUSCBLQVRBS0FOQSBTRU1JLVZPSUNFRCBTT1VORCBNQVJLO0xtOzA7TDs8bmFycm93PiAzMDlBOzs7O047O2hhbGZ3aWR0aCBrYXRha2FuYS1oaXJhZ2FuYSBzZW1pLXZvaWNlZCBzb3VuZCBtYXJrOzs7CitGRkEwO0hBTEZXSURUSCBIQU5HVUwgRklMTEVSO0xvOzA7TDs8bmFycm93PiAzMTY0Ozs7O047SEFMRldJRFRIIEhBTkdVTCBDQUUgT007Ozs7CitGRkExO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEtJWUVPSztMbzswO0w7PG5hcnJvdz4gMzEzMTs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEdJWUVPRzs7OzsKK0ZGQTI7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU1NBTkdLSVlFT0s7TG87MDtMOzxuYXJyb3c+IDMxMzI7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBTU0FORyBHSVlFT0c7Ozs7CitGRkEzO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEtJWUVPSy1TSU9TO0xvOzA7TDs8bmFycm93PiAzMTMzOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgR0lZRU9HIFNJT1M7Ozs7CitGRkE0O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIE5JRVVOO0xvOzA7TDs8bmFycm93PiAzMTM0Ozs7O047Ozs7OworRkZBNTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBOSUVVTi1DSUVVQztMbzswO0w7PG5hcnJvdz4gMzEzNTs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIE5JRVVOIEpJRVVKOzs7OworRkZBNjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBOSUVVTi1ISUVVSDtMbzswO0w7PG5hcnJvdz4gMzEzNjs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIE5JRVVOIEhJRVVIOzs7OworRkZBNztIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBUSUtFVVQ7TG87MDtMOzxuYXJyb3c+IDMxMzc7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBESUdFVUQ7Ozs7CitGRkE4O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFNTQU5HVElLRVVUO0xvOzA7TDs8bmFycm93PiAzMTM4Ozs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU1NBTkcgRElHRVVEOzs7OworRkZBOTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBSSUVVTDtMbzswO0w7PG5hcnJvdz4gMzEzOTs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIExJRVVMOzs7OworRkZBQTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBSSUVVTC1LSVlFT0s7TG87MDtMOzxuYXJyb3c+IDMxM0E7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBMSUVVTCBHSVlFT0c7Ozs7CitGRkFCO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFJJRVVMLU1JRVVNO0xvOzA7TDs8bmFycm93PiAzMTNCOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTElFVUwgTUlFVU07Ozs7CitGRkFDO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFJJRVVMLVBJRVVQO0xvOzA7TDs8bmFycm93PiAzMTNDOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTElFVUwgQklFVUI7Ozs7CitGRkFEO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFJJRVVMLVNJT1M7TG87MDtMOzxuYXJyb3c+IDMxM0Q7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBMSUVVTCBTSU9TOzs7OworRkZBRTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBSSUVVTC1USElFVVRIO0xvOzA7TDs8bmFycm93PiAzMTNFOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTElFVUwgVElFVVQ7Ozs7CitGRkFGO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFJJRVVMLVBISUVVUEg7TG87MDtMOzxuYXJyb3c+IDMxM0Y7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBMSUVVTCBQSUVVUDs7OzsKK0ZGQjA7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUklFVUwtSElFVUg7TG87MDtMOzxuYXJyb3c+IDMxNDA7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBMSUVVTCBISUVVSDs7OzsKK0ZGQjE7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTUlFVU07TG87MDtMOzxuYXJyb3c+IDMxNDE7Ozs7Tjs7Ozs7CitGRkIyO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFBJRVVQO0xvOzA7TDs8bmFycm93PiAzMTQyOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgQklFVUI7Ozs7CitGRkIzO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFNTQU5HUElFVVA7TG87MDtMOzxuYXJyb3c+IDMxNDM7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBTU0FORyBCSUVVQjs7OzsKK0ZGQjQ7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUElFVVAtU0lPUztMbzswO0w7PG5hcnJvdz4gMzE0NDs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEJJRVVCIFNJT1M7Ozs7CitGRkI1O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFNJT1M7TG87MDtMOzxuYXJyb3c+IDMxNDU7Ozs7Tjs7Ozs7CitGRkI2O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFNTQU5HU0lPUztMbzswO0w7PG5hcnJvdz4gMzE0Njs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFNTQU5HIFNJT1M7Ozs7CitGRkI3O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIElFVU5HO0xvOzA7TDs8bmFycm93PiAzMTQ3Ozs7O047Ozs7OworRkZCODtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBDSUVVQztMbzswO0w7PG5hcnJvdz4gMzE0ODs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEpJRVVKOzs7OworRkZCOTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBTU0FOR0NJRVVDO0xvOzA7TDs8bmFycm93PiAzMTQ5Ozs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU1NBTkcgSklFVUo7Ozs7CitGRkJBO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIENISUVVQ0g7TG87MDtMOzxuYXJyb3c+IDMxNEE7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBDSUVVQzs7OzsKK0ZGQkI7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgS0hJRVVLSDtMbzswO0w7PG5hcnJvdz4gMzE0Qjs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEtJWUVPSzs7OzsKK0ZGQkM7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgVEhJRVVUSDtMbzswO0w7PG5hcnJvdz4gMzE0Qzs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFRJRVVUOzs7OworRkZCRDtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBQSElFVVBIO0xvOzA7TDs8bmFycm93PiAzMTREOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUElFVVA7Ozs7CitGRkJFO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEhJRVVIO0xvOzA7TDs8bmFycm93PiAzMTRFOzs7O047Ozs7OworRkZDMjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBBO0xvOzA7TDs8bmFycm93PiAzMTRGOzs7O047Ozs7OworRkZDMztIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBBRTtMbzswO0w7PG5hcnJvdz4gMzE1MDs7OztOOzs7OzsKK0ZGQzQ7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgWUE7TG87MDtMOzxuYXJyb3c+IDMxNTE7Ozs7Tjs7Ozs7CitGRkM1O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFlBRTtMbzswO0w7PG5hcnJvdz4gMzE1Mjs7OztOOzs7OzsKK0ZGQzY7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgRU87TG87MDtMOzxuYXJyb3c+IDMxNTM7Ozs7Tjs7Ozs7CitGRkM3O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEU7TG87MDtMOzxuYXJyb3c+IDMxNTQ7Ozs7Tjs7Ozs7CitGRkNBO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFlFTztMbzswO0w7PG5hcnJvdz4gMzE1NTs7OztOOzs7OzsKK0ZGQ0I7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgWUU7TG87MDtMOzxuYXJyb3c+IDMxNTY7Ozs7Tjs7Ozs7CitGRkNDO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIE87TG87MDtMOzxuYXJyb3c+IDMxNTc7Ozs7Tjs7Ozs7CitGRkNEO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFdBO0xvOzA7TDs8bmFycm93PiAzMTU4Ozs7O047Ozs7OworRkZDRTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBXQUU7TG87MDtMOzxuYXJyb3c+IDMxNTk7Ozs7Tjs7Ozs7CitGRkNGO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIE9FO0xvOzA7TDs8bmFycm93PiAzMTVBOzs7O047Ozs7OworRkZEMjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBZTztMbzswO0w7PG5hcnJvdz4gMzE1Qjs7OztOOzs7OzsKK0ZGRDM7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgVTtMbzswO0w7PG5hcnJvdz4gMzE1Qzs7OztOOzs7OzsKK0ZGRDQ7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgV0VPO0xvOzA7TDs8bmFycm93PiAzMTVEOzs7O047Ozs7OworRkZENTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBXRTtMbzswO0w7PG5hcnJvdz4gMzE1RTs7OztOOzs7OzsKK0ZGRDY7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgV0k7TG87MDtMOzxuYXJyb3c+IDMxNUY7Ozs7Tjs7Ozs7CitGRkQ3O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFlVO0xvOzA7TDs8bmFycm93PiAzMTYwOzs7O047Ozs7OworRkZEQTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBFVTtMbzswO0w7PG5hcnJvdz4gMzE2MTs7OztOOzs7OzsKK0ZGREI7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgWUk7TG87MDtMOzxuYXJyb3c+IDMxNjI7Ozs7Tjs7Ozs7CitGRkRDO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEk7TG87MDtMOzxuYXJyb3c+IDMxNjM7Ozs7Tjs7Ozs7CitGRkUwO0ZVTExXSURUSCBDRU5UIFNJR047U2M7MDtFVDs8d2lkZT4gMDBBMjs7OztOOzs7OzsKK0ZGRTE7RlVMTFdJRFRIIFBPVU5EIFNJR047U2M7MDtFVDs8d2lkZT4gMDBBMzs7OztOOzs7OzsKK0ZGRTI7RlVMTFdJRFRIIE5PVCBTSUdOO1NtOzA7T047PHdpZGU+IDAwQUM7Ozs7Tjs7Ozs7CitGRkUzO0ZVTExXSURUSCBNQUNST047U2s7MDtPTjs8d2lkZT4gMDBBRjs7OztOO0ZVTExXSURUSCBTUEFDSU5HIE1BQ1JPTjsqOzs7CitGRkU0O0ZVTExXSURUSCBCUk9LRU4gQkFSO1NvOzA7T047PHdpZGU+IDAwQTY7Ozs7TjtGVUxMV0lEVEggQlJPS0VOIFZFUlRJQ0FMIEJBUjs7OzsKK0ZGRTU7RlVMTFdJRFRIIFlFTiBTSUdOO1NjOzA7RVQ7PHdpZGU+IDAwQTU7Ozs7Tjs7Ozs7CitGRkU2O0ZVTExXSURUSCBXT04gU0lHTjtTYzswO0VUOzx3aWRlPiAyMEE5Ozs7O047Ozs7OworRkZFODtIQUxGV0lEVEggRk9STVMgTElHSFQgVkVSVElDQUw7U287MDtPTjs8bmFycm93PiAyNTAyOzs7O047Ozs7OworRkZFOTtIQUxGV0lEVEggTEVGVFdBUkRTIEFSUk9XO1NtOzA7T047PG5hcnJvdz4gMjE5MDs7OztOOzs7OzsKK0ZGRUE7SEFMRldJRFRIIFVQV0FSRFMgQVJST1c7U207MDtPTjs8bmFycm93PiAyMTkxOzs7O047Ozs7OworRkZFQjtIQUxGV0lEVEggUklHSFRXQVJEUyBBUlJPVztTbTswO09OOzxuYXJyb3c+IDIxOTI7Ozs7Tjs7Ozs7CitGRkVDO0hBTEZXSURUSCBET1dOV0FSRFMgQVJST1c7U207MDtPTjs8bmFycm93PiAyMTkzOzs7O047Ozs7OworRkZFRDtIQUxGV0lEVEggQkxBQ0sgU1FVQVJFO1NvOzA7T047PG5hcnJvdz4gMjVBMDs7OztOOzs7OzsKK0ZGRUU7SEFMRldJRFRIIFdISVRFIENJUkNMRTtTbzswO09OOzxuYXJyb3c+IDI1Q0I7Ozs7Tjs7Ozs7CitGRkY5O0lOVEVSTElORUFSIEFOTk9UQVRJT04gQU5DSE9SO0NmOzA7Qk47Ozs7O047Ozs7OworRkZGQTtJTlRFUkxJTkVBUiBBTk5PVEFUSU9OIFNFUEFSQVRPUjtDZjswO0JOOzs7OztOOzs7OzsKK0ZGRkI7SU5URVJMSU5FQVIgQU5OT1RBVElPTiBURVJNSU5BVE9SO0NmOzA7Qk47Ozs7O047Ozs7OworRkZGQztPQkpFQ1QgUkVQTEFDRU1FTlQgQ0hBUkFDVEVSO1NvOzA7T047Ozs7O047Ozs7OworRkZGRDtSRVBMQUNFTUVOVCBDSEFSQUNURVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisxMDMwMDtPTEQgSVRBTElDIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMwMTtPTEQgSVRBTElDIExFVFRFUiBCRTtMbzswO0w7Ozs7O047Ozs7OworMTAzMDI7T0xEIElUQUxJQyBMRVRURVIgS0U7TG87MDtMOzs7OztOOzs7OzsKKzEwMzAzO09MRCBJVEFMSUMgTEVUVEVSIERFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMwNDtPTEQgSVRBTElDIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMwNTtPTEQgSVRBTElDIExFVFRFUiBWRTtMbzswO0w7Ozs7O047Ozs7OworMTAzMDY7T0xEIElUQUxJQyBMRVRURVIgWkU7TG87MDtMOzs7OztOOzs7OzsKKzEwMzA3O09MRCBJVEFMSUMgTEVUVEVSIEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMwODtPTEQgSVRBTElDIExFVFRFUiBUSEU7TG87MDtMOzs7OztOOzs7OzsKKzEwMzA5O09MRCBJVEFMSUMgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzEwMzBBO09MRCBJVEFMSUMgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMwQjtPTEQgSVRBTElDIExFVFRFUiBFTDtMbzswO0w7Ozs7O047Ozs7OworMTAzMEM7T0xEIElUQUxJQyBMRVRURVIgRU07TG87MDtMOzs7OztOOzs7OzsKKzEwMzBEO09MRCBJVEFMSUMgTEVUVEVSIEVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMwRTtPTEQgSVRBTElDIExFVFRFUiBFU0g7TG87MDtMOzs7OztOOzs7OzsKKzEwMzBGO09MRCBJVEFMSUMgTEVUVEVSIE87TG87MDtMOzs7OztOOztGYWxpc2Nhbjs7OworMTAzMTA7T0xEIElUQUxJQyBMRVRURVIgUEU7TG87MDtMOzs7OztOOzs7OzsKKzEwMzExO09MRCBJVEFMSUMgTEVUVEVSIFNIRTtMbzswO0w7Ozs7O047Ozs7OworMTAzMTI7T0xEIElUQUxJQyBMRVRURVIgS1U7TG87MDtMOzs7OztOOzs7OzsKKzEwMzEzO09MRCBJVEFMSUMgTEVUVEVSIEVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMxNDtPTEQgSVRBTElDIExFVFRFUiBFUztMbzswO0w7Ozs7O047Ozs7OworMTAzMTU7T0xEIElUQUxJQyBMRVRURVIgVEU7TG87MDtMOzs7OztOOzs7OzsKKzEwMzE2O09MRCBJVEFMSUMgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzEwMzE3O09MRCBJVEFMSUMgTEVUVEVSIEVLUztMbzswO0w7Ozs7O047O0ZhbGlzY2FuOzs7CisxMDMxODtPTEQgSVRBTElDIExFVFRFUiBQSEU7TG87MDtMOzs7OztOOzs7OzsKKzEwMzE5O09MRCBJVEFMSUMgTEVUVEVSIEtIRTtMbzswO0w7Ozs7O047Ozs7OworMTAzMUE7T0xEIElUQUxJQyBMRVRURVIgRUY7TG87MDtMOzs7OztOOzs7OzsKKzEwMzFCO09MRCBJVEFMSUMgTEVUVEVSIEVSUztMbzswO0w7Ozs7O047O1VtYnJpYW47OzsKKzEwMzFDO09MRCBJVEFMSUMgTEVUVEVSIENIRTtMbzswO0w7Ozs7O047O1VtYnJpYW47OzsKKzEwMzFEO09MRCBJVEFMSUMgTEVUVEVSIElJO0xvOzA7TDs7Ozs7Tjs7T3NjYW47OzsKKzEwMzFFO09MRCBJVEFMSUMgTEVUVEVSIFVVO0xvOzA7TDs7Ozs7Tjs7T3NjYW47OzsKKzEwMzIwO09MRCBJVEFMSUMgTlVNRVJBTCBPTkU7Tm87MDtMOzs7OzE7Tjs7Ozs7CisxMDMyMTtPTEQgSVRBTElDIE5VTUVSQUwgRklWRTtObzswO0w7Ozs7NTtOOzs7OzsKKzEwMzIyO09MRCBJVEFMSUMgTlVNRVJBTCBURU47Tm87MDtMOzs7OzEwO047Ozs7OworMTAzMjM7T0xEIElUQUxJQyBOVU1FUkFMIEZJRlRZO05vOzA7TDs7Ozs1MDtOOzs7OzsKKzEwMzMwO0dPVEhJQyBMRVRURVIgQUhTQTtMbzswO0w7Ozs7O047Ozs7OworMTAzMzE7R09USElDIExFVFRFUiBCQUlSS0FOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMzMjtHT1RISUMgTEVUVEVSIEdJQkE7TG87MDtMOzs7OztOOzs7OzsKKzEwMzMzO0dPVEhJQyBMRVRURVIgREFHUztMbzswO0w7Ozs7O047Ozs7OworMTAzMzQ7R09USElDIExFVFRFUiBBSUhWVVM7TG87MDtMOzs7OztOOzs7OzsKKzEwMzM1O0dPVEhJQyBMRVRURVIgUUFJUlRIUkE7TG87MDtMOzs7OztOOzs7OzsKKzEwMzM2O0dPVEhJQyBMRVRURVIgSVVKQTtMbzswO0w7Ozs7O047Ozs7OworMTAzMzc7R09USElDIExFVFRFUiBIQUdMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMzODtHT1RISUMgTEVUVEVSIFRISVVUSDtMbzswO0w7Ozs7O047Ozs7OworMTAzMzk7R09USElDIExFVFRFUiBFSVM7TG87MDtMOzs7OztOOzs7OzsKKzEwMzNBO0dPVEhJQyBMRVRURVIgS1VTTUE7TG87MDtMOzs7OztOOzs7OzsKKzEwMzNCO0dPVEhJQyBMRVRURVIgTEFHVVM7TG87MDtMOzs7OztOOzs7OzsKKzEwMzNDO0dPVEhJQyBMRVRURVIgTUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzEwMzNEO0dPVEhJQyBMRVRURVIgTkFVVEhTO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMzRTtHT1RISUMgTEVUVEVSIEpFUjtMbzswO0w7Ozs7O047Ozs7OworMTAzM0Y7R09USElDIExFVFRFUiBVUlVTO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDM0MDtHT1RISUMgTEVUVEVSIFBBSVJUSFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDM0MTtHT1RISUMgTEVUVEVSIE5JTkVUWTtMbzswO0w7Ozs7O047Ozs7OworMTAzNDI7R09USElDIExFVFRFUiBSQUlEQTtMbzswO0w7Ozs7O047Ozs7OworMTAzNDM7R09USElDIExFVFRFUiBTQVVJTDtMbzswO0w7Ozs7O047Ozs7OworMTAzNDQ7R09USElDIExFVFRFUiBURUlXUztMbzswO0w7Ozs7O047Ozs7OworMTAzNDU7R09USElDIExFVFRFUiBXSU5KQTtMbzswO0w7Ozs7O047Ozs7OworMTAzNDY7R09USElDIExFVFRFUiBGQUlIVTtMbzswO0w7Ozs7O047Ozs7OworMTAzNDc7R09USElDIExFVFRFUiBJR0dXUztMbzswO0w7Ozs7O047Ozs7OworMTAzNDg7R09USElDIExFVFRFUiBIV0FJUjtMbzswO0w7Ozs7O047Ozs7OworMTAzNDk7R09USElDIExFVFRFUiBPVEhBTDtMbzswO0w7Ozs7O047Ozs7OworMTAzNEE7R09USElDIExFVFRFUiBOSU5FIEhVTkRSRUQ7Tmw7MDtMOzs7OztOOzs7OzsKKzEwNDAwO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgTE9ORyBJO0x1OzA7TDs7Ozs7Tjs7OzsxMDQyODsKKzEwNDAxO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgTE9ORyBFO0x1OzA7TDs7Ozs7Tjs7OzsxMDQyOTsKKzEwNDAyO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgTE9ORyBBO0x1OzA7TDs7Ozs7Tjs7OzsxMDQyQTsKKzEwNDAzO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgTE9ORyBBSDtMdTswO0w7Ozs7O047Ozs7MTA0MkI7CisxMDQwNDtERVNFUkVUIENBUElUQUwgTEVUVEVSIExPTkcgTztMdTswO0w7Ozs7O047Ozs7MTA0MkM7CisxMDQwNTtERVNFUkVUIENBUElUQUwgTEVUVEVSIExPTkcgT087THU7MDtMOzs7OztOOzs7OzEwNDJEOworMTA0MDY7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBTSE9SVCBJO0x1OzA7TDs7Ozs7Tjs7OzsxMDQyRTsKKzEwNDA3O0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgU0hPUlQgRTtMdTswO0w7Ozs7O047Ozs7MTA0MkY7CisxMDQwODtERVNFUkVUIENBUElUQUwgTEVUVEVSIFNIT1JUIEE7THU7MDtMOzs7OztOOzs7OzEwNDMwOworMTA0MDk7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBTSE9SVCBBSDtMdTswO0w7Ozs7O047Ozs7MTA0MzE7CisxMDQwQTtERVNFUkVUIENBUElUQUwgTEVUVEVSIFNIT1JUIE87THU7MDtMOzs7OztOOzs7OzEwNDMyOworMTA0MEI7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBTSE9SVCBPTztMdTswO0w7Ozs7O047Ozs7MTA0MzM7CisxMDQwQztERVNFUkVUIENBUElUQUwgTEVUVEVSIEFZO0x1OzA7TDs7Ozs7Tjs7OzsxMDQzNDsKKzEwNDBEO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgT1c7THU7MDtMOzs7OztOOzs7OzEwNDM1OworMTA0MEU7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBXVTtMdTswO0w7Ozs7O047Ozs7MTA0MzY7CisxMDQwRjtERVNFUkVUIENBUElUQUwgTEVUVEVSIFlFRTtMdTswO0w7Ozs7O047Ozs7MTA0Mzc7CisxMDQxMDtERVNFUkVUIENBUElUQUwgTEVUVEVSIEg7THU7MDtMOzs7OztOOzs7OzEwNDM4OworMTA0MTE7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBQRUU7THU7MDtMOzs7OztOOzs7OzEwNDM5OworMTA0MTI7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBCRUU7THU7MDtMOzs7OztOOzs7OzEwNDNBOworMTA0MTM7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBURUU7THU7MDtMOzs7OztOOzs7OzEwNDNCOworMTA0MTQ7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBERUU7THU7MDtMOzs7OztOOzs7OzEwNDNDOworMTA0MTU7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBDSEVFO0x1OzA7TDs7Ozs7Tjs7OzsxMDQzRDsKKzEwNDE2O0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgSkVFO0x1OzA7TDs7Ozs7Tjs7OzsxMDQzRTsKKzEwNDE3O0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgS0FZO0x1OzA7TDs7Ozs7Tjs7OzsxMDQzRjsKKzEwNDE4O0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgR0FZO0x1OzA7TDs7Ozs7Tjs7OzsxMDQ0MDsKKzEwNDE5O0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgRUY7THU7MDtMOzs7OztOOzs7OzEwNDQxOworMTA0MUE7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBWRUU7THU7MDtMOzs7OztOOzs7OzEwNDQyOworMTA0MUI7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBFVEg7THU7MDtMOzs7OztOOzs7OzEwNDQzOworMTA0MUM7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBUSEVFO0x1OzA7TDs7Ozs7Tjs7OzsxMDQ0NDsKKzEwNDFEO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgRVM7THU7MDtMOzs7OztOOzs7OzEwNDQ1OworMTA0MUU7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBaRUU7THU7MDtMOzs7OztOOzs7OzEwNDQ2OworMTA0MUY7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBFU0g7THU7MDtMOzs7OztOOzs7OzEwNDQ3OworMTA0MjA7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBaSEVFO0x1OzA7TDs7Ozs7Tjs7OzsxMDQ0ODsKKzEwNDIxO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgRVI7THU7MDtMOzs7OztOOzs7OzEwNDQ5OworMTA0MjI7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBFTDtMdTswO0w7Ozs7O047Ozs7MTA0NEE7CisxMDQyMztERVNFUkVUIENBUElUQUwgTEVUVEVSIEVNO0x1OzA7TDs7Ozs7Tjs7OzsxMDQ0QjsKKzEwNDI0O0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgRU47THU7MDtMOzs7OztOOzs7OzEwNDRDOworMTA0MjU7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBFTkc7THU7MDtMOzs7OztOOzs7OzEwNDREOworMTA0Mjg7REVTRVJFVCBTTUFMTCBMRVRURVIgTE9ORyBJO0xsOzA7TDs7Ozs7Tjs7OzEwNDAwOzsxMDQwMAorMTA0Mjk7REVTRVJFVCBTTUFMTCBMRVRURVIgTE9ORyBFO0xsOzA7TDs7Ozs7Tjs7OzEwNDAxOzsxMDQwMQorMTA0MkE7REVTRVJFVCBTTUFMTCBMRVRURVIgTE9ORyBBO0xsOzA7TDs7Ozs7Tjs7OzEwNDAyOzsxMDQwMgorMTA0MkI7REVTRVJFVCBTTUFMTCBMRVRURVIgTE9ORyBBSDtMbDswO0w7Ozs7O047OzsxMDQwMzs7MTA0MDMKKzEwNDJDO0RFU0VSRVQgU01BTEwgTEVUVEVSIExPTkcgTztMbDswO0w7Ozs7O047OzsxMDQwNDs7MTA0MDQKKzEwNDJEO0RFU0VSRVQgU01BTEwgTEVUVEVSIExPTkcgT087TGw7MDtMOzs7OztOOzs7MTA0MDU7OzEwNDA1CisxMDQyRTtERVNFUkVUIFNNQUxMIExFVFRFUiBTSE9SVCBJO0xsOzA7TDs7Ozs7Tjs7OzEwNDA2OzsxMDQwNgorMTA0MkY7REVTRVJFVCBTTUFMTCBMRVRURVIgU0hPUlQgRTtMbDswO0w7Ozs7O047OzsxMDQwNzs7MTA0MDcKKzEwNDMwO0RFU0VSRVQgU01BTEwgTEVUVEVSIFNIT1JUIEE7TGw7MDtMOzs7OztOOzs7MTA0MDg7OzEwNDA4CisxMDQzMTtERVNFUkVUIFNNQUxMIExFVFRFUiBTSE9SVCBBSDtMbDswO0w7Ozs7O047OzsxMDQwOTs7MTA0MDkKKzEwNDMyO0RFU0VSRVQgU01BTEwgTEVUVEVSIFNIT1JUIE87TGw7MDtMOzs7OztOOzs7MTA0MEE7OzEwNDBBCisxMDQzMztERVNFUkVUIFNNQUxMIExFVFRFUiBTSE9SVCBPTztMbDswO0w7Ozs7O047OzsxMDQwQjs7MTA0MEIKKzEwNDM0O0RFU0VSRVQgU01BTEwgTEVUVEVSIEFZO0xsOzA7TDs7Ozs7Tjs7OzEwNDBDOzsxMDQwQworMTA0MzU7REVTRVJFVCBTTUFMTCBMRVRURVIgT1c7TGw7MDtMOzs7OztOOzs7MTA0MEQ7OzEwNDBECisxMDQzNjtERVNFUkVUIFNNQUxMIExFVFRFUiBXVTtMbDswO0w7Ozs7O047OzsxMDQwRTs7MTA0MEUKKzEwNDM3O0RFU0VSRVQgU01BTEwgTEVUVEVSIFlFRTtMbDswO0w7Ozs7O047OzsxMDQwRjs7MTA0MEYKKzEwNDM4O0RFU0VSRVQgU01BTEwgTEVUVEVSIEg7TGw7MDtMOzs7OztOOzs7MTA0MTA7OzEwNDEwCisxMDQzOTtERVNFUkVUIFNNQUxMIExFVFRFUiBQRUU7TGw7MDtMOzs7OztOOzs7MTA0MTE7OzEwNDExCisxMDQzQTtERVNFUkVUIFNNQUxMIExFVFRFUiBCRUU7TGw7MDtMOzs7OztOOzs7MTA0MTI7OzEwNDEyCisxMDQzQjtERVNFUkVUIFNNQUxMIExFVFRFUiBURUU7TGw7MDtMOzs7OztOOzs7MTA0MTM7OzEwNDEzCisxMDQzQztERVNFUkVUIFNNQUxMIExFVFRFUiBERUU7TGw7MDtMOzs7OztOOzs7MTA0MTQ7OzEwNDE0CisxMDQzRDtERVNFUkVUIFNNQUxMIExFVFRFUiBDSEVFO0xsOzA7TDs7Ozs7Tjs7OzEwNDE1OzsxMDQxNQorMTA0M0U7REVTRVJFVCBTTUFMTCBMRVRURVIgSkVFO0xsOzA7TDs7Ozs7Tjs7OzEwNDE2OzsxMDQxNgorMTA0M0Y7REVTRVJFVCBTTUFMTCBMRVRURVIgS0FZO0xsOzA7TDs7Ozs7Tjs7OzEwNDE3OzsxMDQxNworMTA0NDA7REVTRVJFVCBTTUFMTCBMRVRURVIgR0FZO0xsOzA7TDs7Ozs7Tjs7OzEwNDE4OzsxMDQxOAorMTA0NDE7REVTRVJFVCBTTUFMTCBMRVRURVIgRUY7TGw7MDtMOzs7OztOOzs7MTA0MTk7OzEwNDE5CisxMDQ0MjtERVNFUkVUIFNNQUxMIExFVFRFUiBWRUU7TGw7MDtMOzs7OztOOzs7MTA0MUE7OzEwNDFBCisxMDQ0MztERVNFUkVUIFNNQUxMIExFVFRFUiBFVEg7TGw7MDtMOzs7OztOOzs7MTA0MUI7OzEwNDFCCisxMDQ0NDtERVNFUkVUIFNNQUxMIExFVFRFUiBUSEVFO0xsOzA7TDs7Ozs7Tjs7OzEwNDFDOzsxMDQxQworMTA0NDU7REVTRVJFVCBTTUFMTCBMRVRURVIgRVM7TGw7MDtMOzs7OztOOzs7MTA0MUQ7OzEwNDFECisxMDQ0NjtERVNFUkVUIFNNQUxMIExFVFRFUiBaRUU7TGw7MDtMOzs7OztOOzs7MTA0MUU7OzEwNDFFCisxMDQ0NztERVNFUkVUIFNNQUxMIExFVFRFUiBFU0g7TGw7MDtMOzs7OztOOzs7MTA0MUY7OzEwNDFGCisxMDQ0ODtERVNFUkVUIFNNQUxMIExFVFRFUiBaSEVFO0xsOzA7TDs7Ozs7Tjs7OzEwNDIwOzsxMDQyMAorMTA0NDk7REVTRVJFVCBTTUFMTCBMRVRURVIgRVI7TGw7MDtMOzs7OztOOzs7MTA0MjE7OzEwNDIxCisxMDQ0QTtERVNFUkVUIFNNQUxMIExFVFRFUiBFTDtMbDswO0w7Ozs7O047OzsxMDQyMjs7MTA0MjIKKzEwNDRCO0RFU0VSRVQgU01BTEwgTEVUVEVSIEVNO0xsOzA7TDs7Ozs7Tjs7OzEwNDIzOzsxMDQyMworMTA0NEM7REVTRVJFVCBTTUFMTCBMRVRURVIgRU47TGw7MDtMOzs7OztOOzs7MTA0MjQ7OzEwNDI0CisxMDQ0RDtERVNFUkVUIFNNQUxMIExFVFRFUiBFTkc7TGw7MDtMOzs7OztOOzs7MTA0MjU7OzEwNDI1CisxRDAwMDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgUFNJTEk7U287MDtMOzs7OztOOzs7OzsKKzFEMDAxO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBEQVNFSUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDAyO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBQRVJJU1BPTUVOSTtTbzswO0w7Ozs7O047Ozs7OworMUQwMDM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE9YRUlBIEVLRk9OSVRJS09OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAwNDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgT1hFSUEgRElQTEk7U287MDtMOzs7OztOOzs7OzsKKzFEMDA1O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBWQVJFSUEgRUtGT05JVElLT047U287MDtMOzs7OztOOzs7OzsKKzFEMDA2O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBWQVJFSUEgRElQTEk7U287MDtMOzs7OztOOzs7OzsKKzFEMDA3O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLQVRISVNUSTtTbzswO0w7Ozs7O047Ozs7OworMUQwMDg7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFNZUk1BVElLSTtTbzswO0w7Ozs7O047Ozs7OworMUQwMDk7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBBUkFLTElUSUtJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAwQTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgWVBPS1JJU0lTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAwQjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgWVBPS1JJU0lTIERJUExJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAwQztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS1JFTUFTVEk7U287MDtMOzs7OztOOzs7OzsKKzFEMDBEO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBUEVTTyBFS0ZPTklUSUtPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwMEU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEVYTyBFS0ZPTklUSUtPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwMEY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRFTEVJQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMTA7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtFTlRJTUFUQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMTE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFQT1NUUk9GT1M7U287MDtMOzs7OztOOzs7OzsKKzFEMDEyO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBUE9TVFJPRk9TIERJUExJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAxMztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgU1lORVZNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMTQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRISVRBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAxNTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgT0xJR09OIEFSQ0hBSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAxNjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgR09SR09OIEFSQ0hBSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAxNztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgUFNJTE9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAxODtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQ0hBTUlMT047U287MDtMOzs7OztOOzs7OzsKKzFEMDE5O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBWQVRIWTtTbzswO0w7Ozs7O047Ozs7OworMUQwMUE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIElTT04gQVJDSEFJT047U287MDtMOzs7OztOOzs7OzsKKzFEMDFCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLRU5USU1BIEFSQ0hBSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAxQztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS0VOVElNQVRBIEFSQ0hBSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAxRDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgU0FYSU1BVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMDFFO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBQQVJJQ0hPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwMUY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFNUQVZST1MgQVBPREVYSUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDIwO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBPWEVJQUkgQVJDSEFJT047U287MDtMOzs7OztOOzs7OzsKKzFEMDIxO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBWQVJFSUFJIEFSQ0hBSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAyMjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQVBPREVSTUEgQVJDSEFJT047U287MDtMOzs7OztOOzs7OzsKKzFEMDIzO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBUE9USEVNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMjQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtMQVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMjU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFJFVk1BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAyNjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgUElBU01BIEFSQ0hBSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAyNztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgVElOQUdNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMjg7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFOQVRSSUNISVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMjk7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFNFSVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMkE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFNZTkFHTUEgQVJDSEFJT047U287MDtMOzs7OztOOzs7OzsKKzFEMDJCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTWU5BR01BIE1FVEEgU1RBVlJPVTtTbzswO0w7Ozs7O047Ozs7OworMUQwMkM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE9ZUkFOSVNNQSBBUkNIQUlPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwMkQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRIRU1BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAyRTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgTEVNT0k7U287MDtMOzs7OztOOzs7OzsKKzFEMDJGO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBEWU87U287MDtMOzs7OztOOzs7OzsKKzFEMDMwO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBUUklBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAzMTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgVEVTU0VSQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMzI7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtSQVRJTUFUQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMzM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFQRVNPIEVYTyBORU87U287MDtMOzs7OztOOzs7OzsKKzFEMDM0O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGVEhPUkEgQVJDSEFJT047U287MDtMOzs7OztOOzs7OzsKKzFEMDM1O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBJTUlGVEhPUkE7U287MDtMOzs7OztOOzs7OzsKKzFEMDM2O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBUUk9NSUtPTiBBUkNIQUlPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwMzc7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtBVEFWQSBUUk9NSUtPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwMzg7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBFTEFTVE9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAzOTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgUFNJRklTVE9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAzQTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS09OVEVWTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDNCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBDSE9SRVZNQSBBUkNIQUlPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwM0M7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFJBUElTTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDNEO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBQQVJBS0FMRVNNQSBBUkNIQUlPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwM0U7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBBUkFLTElUSUtJIEFSQ0hBSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAzRjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgSUNIQURJTjtTbzswO0w7Ozs7O047Ozs7OworMUQwNDA7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE5BTkE7U287MDtMOzs7OztOOzs7OzsKKzFEMDQxO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBQRVRBU01BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA0MjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS09OVEVWTUEgQUxMTztTbzswO0w7Ozs7O047Ozs7OworMUQwNDM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRST01JS09OIEFMTE87U287MDtMOzs7OztOOzs7OzsKKzFEMDQ0O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTVFJBR0dJU01BVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMDQ1O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBHUk9OVEhJU01BVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMDQ2O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBJU09OIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwNDc7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE9MSUdPTiBORU87U287MDtMOzs7OztOOzs7OzsKKzFEMDQ4O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBPWEVJQSBORU87U287MDtMOzs7OztOOzs7OzsKKzFEMDQ5O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBQRVRBU1RJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA0QTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS09VRklTTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDRCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBQRVRBU1RPS09VRklTTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDRDO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLUkFUSU1PS09VRklTTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDREO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBQRUxBU1RPTiBORU87U287MDtMOzs7OztOOzs7OzsKKzFEMDRFO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLRU5USU1BVEEgTkVPIEFOTztTbzswO0w7Ozs7O047Ozs7OworMUQwNEY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtFTlRJTUEgTkVPIEFOTztTbzswO0w7Ozs7O047Ozs7OworMUQwNTA7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFlQU0lMSTtTbzswO0w7Ozs7O047Ozs7OworMUQwNTE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFQT1NUUk9GT1MgTkVPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA1MjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQVBPU1RST0ZPSSBTWU5ERVNNT1MgTkVPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA1MztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgWVBPUlJPSTtTbzswO0w7Ozs7O047Ozs7OworMUQwNTQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtSQVRJTU9ZUE9SUk9PTjtTbzswO0w7Ozs7O047Ozs7OworMUQwNTU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEVMQUZST047U287MDtMOzs7OztOOzs7OzsKKzFEMDU2O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBDSEFNSUxJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA1NztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgTUlLUk9OIElTT047U287MDtMOzs7OztOOzs7OzsKKzFEMDU4O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBWQVJFSUEgTkVPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA1OTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgUElBU01BIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwNUE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBTSUZJU1RPTiBORU87U287MDtMOzs7OztOOzs7OzsKKzFEMDVCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBPTUFMT047U287MDtMOzs7OztOOzs7OzsKKzFEMDVDO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBTlRJS0VOT01BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA1RDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgTFlHSVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNUU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBBUkFLTElUSUtJIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwNUY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBBUkFLQUxFU01BIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwNjA7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEVURVJPTiBQQVJBS0FMRVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNjE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtZTElTTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDYyO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBTlRJS0VOT0tZTElTTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDYzO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBUUk9NSUtPTiBORU87U287MDtMOzs7OztOOzs7OzsKKzFEMDY0O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBFS1NUUkVQVE9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA2NTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgU1lOQUdNQSBORU87U287MDtMOzs7OztOOzs7OzsKKzFEMDY2O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTWVJNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNjc7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIENIT1JFVk1BIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwNjg7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEVQRUdFUk1BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA2OTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgU0VJU01BIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwNkE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFhJUk9OIEtMQVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNkI7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRST01JS09QU0lGSVNUT047U287MDtMOzs7OztOOzs7OzsKKzFEMDZDO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBQU0lGSVNUT0xZR0lTTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDZEO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBUUk9NSUtPTFlHSVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNkU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRST01JS09QQVJBS0FMRVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNkY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBTSUZJU1RPUEFSQUtBTEVTTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDcwO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBUUk9NSUtPU1lOQUdNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNzE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBTSUZJU1RPU1lOQUdNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNzI7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEdPUkdPU1lOVEhFVE9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA3MztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQVJHT1NZTlRIRVRPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwNzQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEVURVJPTiBBUkdPU1lOVEhFVE9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA3NTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgT1lSQU5JU01BIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwNzY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRIRU1BVElTTU9TIEVTTztTbzswO0w7Ozs7O047Ozs7OworMUQwNzc7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRIRU1BVElTTU9TIEVYTztTbzswO0w7Ozs7O047Ozs7OworMUQwNzg7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRIRU1BIEFQTE9VTjtTbzswO0w7Ozs7O047Ozs7OworMUQwNzk7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRIRVMgS0FJIEFQT1RIRVM7U287MDtMOzs7OztOOzs7OzsKKzFEMDdBO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLQVRBVkFTTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDdCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBFTkRPRk9OT047U287MDtMOzs7OztOOzs7OzsKKzFEMDdDO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBZRkVOIEtBVE87U287MDtMOzs7OztOOzs7OzsKKzFEMDdEO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBZRkVOIEFOTztTbzswO0w7Ozs7O047Ozs7OworMUQwN0U7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFNUQVZST1M7U287MDtMOzs7OztOOzs7OzsKKzFEMDdGO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLTEFTTUEgQU5PO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA4MDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElQTEkgQVJDSEFJT047U287MDtMOzs7OztOOzs7OzsKKzFEMDgxO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLUkFUSU1BIEFSQ0hBSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA4MjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS1JBVElNQSBBTExPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA4MztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS1JBVElNQSBORU87U287MDtMOzs7OztOOzs7OzsKKzFEMDg0O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBUE9ERVJNQSBORU87U287MDtMOzs7OztOOzs7OzsKKzFEMDg1O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBUExJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA4NjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElQTEk7U287MDtMOzs7OztOOzs7OzsKKzFEMDg3O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBUUklQTEk7U287MDtMOzs7OztOOzs7OzsKKzFEMDg4O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBURVRSQVBMSTtTbzswO0w7Ozs7O047Ozs7OworMUQwODk7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtPUk9OSVM7U287MDtMOzs7OztOOzs7OzsKKzFEMDhBO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBMRUlNTUEgRU5PUyBDSFJPTk9VO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA4QjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgTEVJTU1BIERZTyBDSFJPTk9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA4QztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgTEVJTU1BIFRSSU9OIENIUk9OT047U287MDtMOzs7OztOOzs7OzsKKzFEMDhEO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBMRUlNTUEgVEVTU0FST04gQ0hST05PTjtTbzswO0w7Ozs7O047Ozs7OworMUQwOEU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIExFSU1NQSBJTUlTRU9TIENIUk9OT1U7U287MDtMOzs7OztOOzs7OzsKKzFEMDhGO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBHT1JHT04gTkVPIEFOTztTbzswO0w7Ozs7O047Ozs7OworMUQwOTA7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEdPUkdPTiBQQVJFU1RJR01FTk9OIEFSSVNURVJBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA5MTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgR09SR09OIFBBUkVTVElHTUVOT04gREVYSUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDkyO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBESUdPUkdPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwOTM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIERJR09SR09OIFBBUkVTVElHTUVOT04gQVJJU1RFUkEgS0FUTztTbzswO0w7Ozs7O047Ozs7OworMUQwOTQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIERJR09SR09OIFBBUkVTVElHTUVOT04gQVJJU1RFUkEgQU5PO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA5NTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElHT1JHT04gUEFSRVNUSUdNRU5PTiBERVhJQTtTbzswO0w7Ozs7O047Ozs7OworMUQwOTY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRSSUdPUkdPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwOTc7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFSR09OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA5ODtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgSU1JRElBUkdPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwOTk7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIERJQVJHT047U287MDtMOzs7OztOOzs7OzsKKzFEMDlBO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBR09HSSBQT0xJIEFSR0k7U287MDtMOzs7OztOOzs7OzsKKzFEMDlCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBR09HSSBBUkdPVEVSSTtTbzswO0w7Ozs7O047Ozs7OworMUQwOUM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFHT0dJIEFSR0k7U287MDtMOzs7OztOOzs7OzsKKzFEMDlEO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBR09HSSBNRVRSSUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDlFO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBR09HSSBNRVNJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA5RjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQUdPR0kgR09SR0k7U287MDtMOzs7OztOOzs7OzsKKzFEMEEwO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBR09HSSBHT1JHT1RFUkk7U287MDtMOzs7OztOOzs7OzsKKzFEMEExO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBR09HSSBQT0xJIEdPUkdJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBBMjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgTUFSVFlSSUEgUFJPVE9TIElDSE9TO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBBMztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgTUFSVFlSSUEgQUxMSSBQUk9UT1MgSUNIT1M7U287MDtMOzs7OztOOzs7OzsKKzFEMEE0O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBNQVJUWVJJQSBERVlURVJPUyBJQ0hPUztTbzswO0w7Ozs7O047Ozs7OworMUQwQTU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE1BUlRZUklBIEFMTEkgREVZVEVST1MgSUNIT1M7U287MDtMOzs7OztOOzs7OzsKKzFEMEE2O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBNQVJUWVJJQSBUUklUT1MgSUNIT1M7U287MDtMOzs7OztOOzs7OzsKKzFEMEE3O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBNQVJUWVJJQSBUUklGT05JQVM7U287MDtMOzs7OztOOzs7OzsKKzFEMEE4O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBNQVJUWVJJQSBURVRBUlRPUyBJQ0hPUztTbzswO0w7Ozs7O047Ozs7OworMUQwQTk7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE1BUlRZUklBIFRFVEFSVE9TIExFR0VUT1MgSUNIT1M7U287MDtMOzs7OztOOzs7OzsKKzFEMEFBO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBNQVJUWVJJQSBMRUdFVE9TIElDSE9TO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBBQjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgTUFSVFlSSUEgUExBR0lPUyBJQ0hPUztTbzswO0w7Ozs7O047Ozs7OworMUQwQUM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIElTQUtJQSBURUxPVVMgSUNISU1BVE9TO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBBRDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQVBPU1RST0ZPSSBURUxPVVMgSUNISU1BVE9TO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBBRTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRkFORVJPU0lTIFRFVFJBRk9OSUFTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBBRjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRkFORVJPU0lTIE1PTk9GT05JQVM7U287MDtMOzs7OztOOzs7OzsKKzFEMEIwO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGQU5FUk9TSVMgRElGT05JQVM7U287MDtMOzs7OztOOzs7OzsKKzFEMEIxO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBNQVJUWVJJQSBWQVJZUyBJQ0hPUztTbzswO0w7Ozs7O047Ozs7OworMUQwQjI7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE1BUlRZUklBIFBST1RPVkFSWVMgSUNIT1M7U287MDtMOzs7OztOOzs7OzsKKzFEMEIzO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBNQVJUWVJJQSBQTEFHSU9TIFRFVEFSVE9TIElDSE9TO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBCNDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgR09SVEhNSUtPTiBOIEFQTE9VTjtTbzswO0w7Ozs7O047Ozs7OworMUQwQjU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEdPUlRITUlLT04gTiBESVBMT1VOO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBCNjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRU5BUlhJUyBLQUkgRlRIT1JBIFZPVTtTbzswO0w7Ozs7O047Ozs7OworMUQwQjc7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIElNSUZPTk9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBCODtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgSU1JRlRIT1JPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwQjk7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBBUkNIQUlPTiBERVlURVJPVSBJQ0hPVTtTbzswO0w7Ozs7O047Ozs7OworMUQwQkE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBESUFUT05JS0kgUEE7U287MDtMOzs7OztOOzs7OzsKKzFEMEJCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGVEhPUkEgRElBVE9OSUtJIE5BTkE7U287MDtMOzs7OztOOzs7OzsKKzFEMEJDO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGVEhPUkEgTkFPUyBJQ0hPUztTbzswO0w7Ozs7O047Ozs7OworMUQwQkQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBESUFUT05JS0kgREk7U287MDtMOzs7OztOOzs7OzsKKzFEMEJFO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGVEhPUkEgU0tMSVJPTiBESUFUT05PTiBESTtTbzswO0w7Ozs7O047Ozs7OworMUQwQkY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBESUFUT05JS0kgS0U7U287MDtMOzs7OztOOzs7OzsKKzFEMEMwO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGVEhPUkEgRElBVE9OSUtJIFpPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBDMTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRlRIT1JBIERJQVRPTklLSSBOSSBLQVRPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBDMjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRlRIT1JBIERJQVRPTklLSSBOSSBBTk87U287MDtMOzs7OztOOzs7OzsKKzFEMEMzO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGVEhPUkEgTUFMQUtPTiBDSFJPTUEgRElGT05JQVM7U287MDtMOzs7OztOOzs7OzsKKzFEMEM0O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGVEhPUkEgTUFMQUtPTiBDSFJPTUEgTU9OT0ZPTklBUztTbzswO0w7Ozs7O047Ozs7OworMUQwQzU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZIVE9SQSBTS0xJUk9OIENIUk9NQSBWQVNJUztTbzswO0w7Ozs7O047Ozs7OworMUQwQzY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBTS0xJUk9OIENIUk9NQSBTWU5BRkk7U287MDtMOzs7OztOOzs7OzsKKzFEMEM3O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGVEhPUkEgTkVOQU5PO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBDODtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQ0hST0EgWllHT1M7U287MDtMOzs7OztOOzs7OzsKKzFEMEM5O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBDSFJPQSBLTElUT047U287MDtMOzs7OztOOzs7OzsKKzFEMENBO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBDSFJPQSBTUEFUSEk7U287MDtMOzs7OztOOzs7OzsKKzFEMENCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGVEhPUkEgSSBZRkVTSVMgVEVUQVJUSU1PUklPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwQ0M7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBFTkFSTU9OSU9TIEFOVElGT05JQTtTbzswO0w7Ozs7O047Ozs7OworMUQwQ0Q7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFlGRVNJUyBUUklUSU1PUklPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwQ0U7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIERJRVNJUyBUUklUSU1PUklPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwQ0Y7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIERJRVNJUyBURVRBUlRJTU9SSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBEMDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElFU0lTIEFQTEkgRFlPIERPREVLQVRBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBEMTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElFU0lTIE1PTk9HUkFNTU9TIFRFU1NFUkEgRE9ERUtBVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMEQyO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBESUVTSVMgRElHUkFNTU9TIEVYIERPREVLQVRBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBEMztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElFU0lTIFRSSUdSQU1NT1MgT0tUTyBET0RFS0FUQTtTbzswO0w7Ozs7O047Ozs7OworMUQwRDQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFlGRVNJUyBBUExJIERZTyBET0RFS0FUQTtTbzswO0w7Ozs7O047Ozs7OworMUQwRDU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFlGRVNJUyBNT05PR1JBTU1PUyBURVNTRVJBIERPREVLQVRBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBENjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgWUZFU0lTIERJR1JBTU1PUyBFWCBET0RFS0FUQTtTbzswO0w7Ozs7O047Ozs7OworMUQwRDc7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFlGRVNJUyBUUklHUkFNTU9TIE9LVE8gRE9ERUtBVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMEQ4O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBHRU5JS0kgRElFU0lTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBEOTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgR0VOSUtJIFlGRVNJUztTbzswO0w7Ozs7O047Ozs7OworMUQwREE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIERJQVNUT0xJIEFQTEkgTUlLUkk7U287MDtMOzs7OztOOzs7OzsKKzFEMERCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBESUFTVE9MSSBBUExJIE1FR0FMSTtTbzswO0w7Ozs7O047Ozs7OworMUQwREM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIERJQVNUT0xJIERJUExJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBERDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElBU1RPTEkgVEhFU0VPUztTbzswO0w7Ozs7O047Ozs7OworMUQwREU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFNJTUFOU0lTIFRIRVNFT1M7U287MDtMOzs7OztOOzs7OzsKKzFEMERGO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTSU1BTlNJUyBUSEVTRU9TIERJU0lNT1U7U287MDtMOzs7OztOOzs7OzsKKzFEMEUwO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTSU1BTlNJUyBUSEVTRU9TIFRSSVNJTU9VO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBFMTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgU0lNQU5TSVMgVEhFU0VPUyBURVRSQVNJTU9VO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBFMjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgU0lNQU5TSVMgQVJTRU9TO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBFMztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgU0lNQU5TSVMgQVJTRU9TIERJU0lNT1U7U287MDtMOzs7OztOOzs7OzsKKzFEMEU0O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTSU1BTlNJUyBBUlNFT1MgVFJJU0lNT1U7U287MDtMOzs7OztOOzs7OzsKKzFEMEU1O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTSU1BTlNJUyBBUlNFT1MgVEVUUkFTSU1PVTtTbzswO0w7Ozs7O047Ozs7OworMUQwRTY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIERJR1JBTU1BIEdHO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBFNztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElGVE9HR09TIE9VO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBFODtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgU1RJR01BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBFOTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQVJLVElLTyBQQTtTbzswO0w7Ozs7O047Ozs7OworMUQwRUE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFSS1RJS08gVk9VO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBFQjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQVJLVElLTyBHQTtTbzswO0w7Ozs7O047Ozs7OworMUQwRUM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFSS1RJS08gREk7U287MDtMOzs7OztOOzs7OzsKKzFEMEVEO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBUktUSUtPIEtFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBFRTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQVJLVElLTyBaTztTbzswO0w7Ozs7O047Ozs7OworMUQwRUY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFSS1RJS08gTkk7U287MDtMOzs7OztOOzs7OzsKKzFEMEYwO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLRU5USU1BVEEgTkVPIE1FU087U287MDtMOzs7OztOOzs7OzsKKzFEMEYxO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLRU5USU1BIE5FTyBNRVNPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBGMjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS0VOVElNQVRBIE5FTyBLQVRPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBGMztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS0VOVElNQSBORU8gS0FUTztTbzswO0w7Ozs7O047Ozs7OworMUQwRjQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtMQVNNQSBLQVRPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBGNTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgR09SR09OIE5FTyBLQVRPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEwMDtNVVNJQ0FMIFNZTUJPTCBTSU5HTEUgQkFSTElORTtTbzswO0w7Ozs7O047Ozs7OworMUQxMDE7TVVTSUNBTCBTWU1CT0wgRE9VQkxFIEJBUkxJTkU7U287MDtMOzs7OztOOzs7OzsKKzFEMTAyO01VU0lDQUwgU1lNQk9MIEZJTkFMIEJBUkxJTkU7U287MDtMOzs7OztOOzs7OzsKKzFEMTAzO01VU0lDQUwgU1lNQk9MIFJFVkVSU0UgRklOQUwgQkFSTElORTtTbzswO0w7Ozs7O047Ozs7OworMUQxMDQ7TVVTSUNBTCBTWU1CT0wgREFTSEVEIEJBUkxJTkU7U287MDtMOzs7OztOOzs7OzsKKzFEMTA1O01VU0lDQUwgU1lNQk9MIFNIT1JUIEJBUkxJTkU7U287MDtMOzs7OztOOzs7OzsKKzFEMTA2O01VU0lDQUwgU1lNQk9MIExFRlQgUkVQRUFUIFNJR047U287MDtMOzs7OztOOzs7OzsKKzFEMTA3O01VU0lDQUwgU1lNQk9MIFJJR0hUIFJFUEVBVCBTSUdOO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEwODtNVVNJQ0FMIFNZTUJPTCBSRVBFQVQgRE9UUztTbzswO0w7Ozs7O047Ozs7OworMUQxMDk7TVVTSUNBTCBTWU1CT0wgREFMIFNFR05PO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEwQTtNVVNJQ0FMIFNZTUJPTCBEQSBDQVBPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEwQjtNVVNJQ0FMIFNZTUJPTCBTRUdOTztTbzswO0w7Ozs7O047Ozs7OworMUQxMEM7TVVTSUNBTCBTWU1CT0wgQ09EQTtTbzswO0w7Ozs7O047Ozs7OworMUQxMEQ7TVVTSUNBTCBTWU1CT0wgUkVQRUFURUQgRklHVVJFLTE7U287MDtMOzs7OztOOzs7OzsKKzFEMTBFO01VU0lDQUwgU1lNQk9MIFJFUEVBVEVEIEZJR1VSRS0yO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEwRjtNVVNJQ0FMIFNZTUJPTCBSRVBFQVRFRCBGSUdVUkUtMztTbzswO0w7Ozs7O047Ozs7OworMUQxMTA7TVVTSUNBTCBTWU1CT0wgRkVSTUFUQTtTbzswO0w7Ozs7O047Ozs7OworMUQxMTE7TVVTSUNBTCBTWU1CT0wgRkVSTUFUQSBCRUxPVztTbzswO0w7Ozs7O047Ozs7OworMUQxMTI7TVVTSUNBTCBTWU1CT0wgQlJFQVRIIE1BUks7U287MDtMOzs7OztOOzs7OzsKKzFEMTEzO01VU0lDQUwgU1lNQk9MIENBRVNVUkE7U287MDtMOzs7OztOOzs7OzsKKzFEMTE0O01VU0lDQUwgU1lNQk9MIEJSQUNFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDExNTtNVVNJQ0FMIFNZTUJPTCBCUkFDS0VUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDExNjtNVVNJQ0FMIFNZTUJPTCBPTkUtTElORSBTVEFGRjtTbzswO0w7Ozs7O047Ozs7OworMUQxMTc7TVVTSUNBTCBTWU1CT0wgVFdPLUxJTkUgU1RBRkY7U287MDtMOzs7OztOOzs7OzsKKzFEMTE4O01VU0lDQUwgU1lNQk9MIFRIUkVFLUxJTkUgU1RBRkY7U287MDtMOzs7OztOOzs7OzsKKzFEMTE5O01VU0lDQUwgU1lNQk9MIEZPVVItTElORSBTVEFGRjtTbzswO0w7Ozs7O047Ozs7OworMUQxMUE7TVVTSUNBTCBTWU1CT0wgRklWRS1MSU5FIFNUQUZGO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDExQjtNVVNJQ0FMIFNZTUJPTCBTSVgtTElORSBTVEFGRjtTbzswO0w7Ozs7O047Ozs7OworMUQxMUM7TVVTSUNBTCBTWU1CT0wgU0lYLVNUUklORyBGUkVUQk9BUkQ7U287MDtMOzs7OztOOzs7OzsKKzFEMTFEO01VU0lDQUwgU1lNQk9MIEZPVVItU1RSSU5HIEZSRVRCT0FSRDtTbzswO0w7Ozs7O047Ozs7OworMUQxMUU7TVVTSUNBTCBTWU1CT0wgRyBDTEVGO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDExRjtNVVNJQ0FMIFNZTUJPTCBHIENMRUYgT1RUQVZBIEFMVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMTIwO01VU0lDQUwgU1lNQk9MIEcgQ0xFRiBPVFRBVkEgQkFTU0E7U287MDtMOzs7OztOOzs7OzsKKzFEMTIxO01VU0lDQUwgU1lNQk9MIEMgQ0xFRjtTbzswO0w7Ozs7O047Ozs7OworMUQxMjI7TVVTSUNBTCBTWU1CT0wgRiBDTEVGO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEyMztNVVNJQ0FMIFNZTUJPTCBGIENMRUYgT1RUQVZBIEFMVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMTI0O01VU0lDQUwgU1lNQk9MIEYgQ0xFRiBPVFRBVkEgQkFTU0E7U287MDtMOzs7OztOOzs7OzsKKzFEMTI1O01VU0lDQUwgU1lNQk9MIERSVU0gQ0xFRi0xO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEyNjtNVVNJQ0FMIFNZTUJPTCBEUlVNIENMRUYtMjtTbzswO0w7Ozs7O047Ozs7OworMUQxMkE7TVVTSUNBTCBTWU1CT0wgRE9VQkxFIFNIQVJQO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEyQjtNVVNJQ0FMIFNZTUJPTCBET1VCTEUgRkxBVDtTbzswO0w7Ozs7O047Ozs7OworMUQxMkM7TVVTSUNBTCBTWU1CT0wgRkxBVCBVUDtTbzswO0w7Ozs7O047Ozs7OworMUQxMkQ7TVVTSUNBTCBTWU1CT0wgRkxBVCBET1dOO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEyRTtNVVNJQ0FMIFNZTUJPTCBOQVRVUkFMIFVQO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEyRjtNVVNJQ0FMIFNZTUJPTCBOQVRVUkFMIERPV047U287MDtMOzs7OztOOzs7OzsKKzFEMTMwO01VU0lDQUwgU1lNQk9MIFNIQVJQIFVQO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEzMTtNVVNJQ0FMIFNZTUJPTCBTSEFSUCBET1dOO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEzMjtNVVNJQ0FMIFNZTUJPTCBRVUFSVEVSIFRPTkUgU0hBUlA7U287MDtMOzs7OztOOzs7OzsKKzFEMTMzO01VU0lDQUwgU1lNQk9MIFFVQVJURVIgVE9ORSBGTEFUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEzNDtNVVNJQ0FMIFNZTUJPTCBDT01NT04gVElNRTtTbzswO0w7Ozs7O047Ozs7OworMUQxMzU7TVVTSUNBTCBTWU1CT0wgQ1VUIFRJTUU7U287MDtMOzs7OztOOzs7OzsKKzFEMTM2O01VU0lDQUwgU1lNQk9MIE9UVEFWQSBBTFRBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEzNztNVVNJQ0FMIFNZTUJPTCBPVFRBVkEgQkFTU0E7U287MDtMOzs7OztOOzs7OzsKKzFEMTM4O01VU0lDQUwgU1lNQk9MIFFVSU5ESUNFU0lNQSBBTFRBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEzOTtNVVNJQ0FMIFNZTUJPTCBRVUlORElDRVNJTUEgQkFTU0E7U287MDtMOzs7OztOOzs7OzsKKzFEMTNBO01VU0lDQUwgU1lNQk9MIE1VTFRJIFJFU1Q7U287MDtMOzs7OztOOzs7OzsKKzFEMTNCO01VU0lDQUwgU1lNQk9MIFdIT0xFIFJFU1Q7U287MDtMOzs7OztOOzs7OzsKKzFEMTNDO01VU0lDQUwgU1lNQk9MIEhBTEYgUkVTVDtTbzswO0w7Ozs7O047Ozs7OworMUQxM0Q7TVVTSUNBTCBTWU1CT0wgUVVBUlRFUiBSRVNUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEzRTtNVVNJQ0FMIFNZTUJPTCBFSUdIVEggUkVTVDtTbzswO0w7Ozs7O047Ozs7OworMUQxM0Y7TVVTSUNBTCBTWU1CT0wgU0lYVEVFTlRIIFJFU1Q7U287MDtMOzs7OztOOzs7OzsKKzFEMTQwO01VU0lDQUwgU1lNQk9MIFRISVJUWS1TRUNPTkQgUkVTVDtTbzswO0w7Ozs7O047Ozs7OworMUQxNDE7TVVTSUNBTCBTWU1CT0wgU0lYVFktRk9VUlRIIFJFU1Q7U287MDtMOzs7OztOOzs7OzsKKzFEMTQyO01VU0lDQUwgU1lNQk9MIE9ORSBIVU5EUkVEIFRXRU5UWS1FSUdIVEggUkVTVDtTbzswO0w7Ozs7O047Ozs7OworMUQxNDM7TVVTSUNBTCBTWU1CT0wgWCBOT1RFSEVBRDtTbzswO0w7Ozs7O047Ozs7OworMUQxNDQ7TVVTSUNBTCBTWU1CT0wgUExVUyBOT1RFSEVBRDtTbzswO0w7Ozs7O047Ozs7OworMUQxNDU7TVVTSUNBTCBTWU1CT0wgQ0lSQ0xFIFggTk9URUhFQUQ7U287MDtMOzs7OztOOzs7OzsKKzFEMTQ2O01VU0lDQUwgU1lNQk9MIFNRVUFSRSBOT1RFSEVBRCBXSElURTtTbzswO0w7Ozs7O047Ozs7OworMUQxNDc7TVVTSUNBTCBTWU1CT0wgU1FVQVJFIE5PVEVIRUFEIEJMQUNLO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE0ODtNVVNJQ0FMIFNZTUJPTCBUUklBTkdMRSBOT1RFSEVBRCBVUCBXSElURTtTbzswO0w7Ozs7O047Ozs7OworMUQxNDk7TVVTSUNBTCBTWU1CT0wgVFJJQU5HTEUgTk9URUhFQUQgVVAgQkxBQ0s7U287MDtMOzs7OztOOzs7OzsKKzFEMTRBO01VU0lDQUwgU1lNQk9MIFRSSUFOR0xFIE5PVEVIRUFEIExFRlQgV0hJVEU7U287MDtMOzs7OztOOzs7OzsKKzFEMTRCO01VU0lDQUwgU1lNQk9MIFRSSUFOR0xFIE5PVEVIRUFEIExFRlQgQkxBQ0s7U287MDtMOzs7OztOOzs7OzsKKzFEMTRDO01VU0lDQUwgU1lNQk9MIFRSSUFOR0xFIE5PVEVIRUFEIFJJR0hUIFdISVRFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE0RDtNVVNJQ0FMIFNZTUJPTCBUUklBTkdMRSBOT1RFSEVBRCBSSUdIVCBCTEFDSztTbzswO0w7Ozs7O047Ozs7OworMUQxNEU7TVVTSUNBTCBTWU1CT0wgVFJJQU5HTEUgTk9URUhFQUQgRE9XTiBXSElURTtTbzswO0w7Ozs7O047Ozs7OworMUQxNEY7TVVTSUNBTCBTWU1CT0wgVFJJQU5HTEUgTk9URUhFQUQgRE9XTiBCTEFDSztTbzswO0w7Ozs7O047Ozs7OworMUQxNTA7TVVTSUNBTCBTWU1CT0wgVFJJQU5HTEUgTk9URUhFQUQgVVAgUklHSFQgV0hJVEU7U287MDtMOzs7OztOOzs7OzsKKzFEMTUxO01VU0lDQUwgU1lNQk9MIFRSSUFOR0xFIE5PVEVIRUFEIFVQIFJJR0hUIEJMQUNLO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE1MjtNVVNJQ0FMIFNZTUJPTCBNT09OIE5PVEVIRUFEIFdISVRFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE1MztNVVNJQ0FMIFNZTUJPTCBNT09OIE5PVEVIRUFEIEJMQUNLO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE1NDtNVVNJQ0FMIFNZTUJPTCBUUklBTkdMRS1ST1VORCBOT1RFSEVBRCBET1dOIFdISVRFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE1NTtNVVNJQ0FMIFNZTUJPTCBUUklBTkdMRS1ST1VORCBOT1RFSEVBRCBET1dOIEJMQUNLO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE1NjtNVVNJQ0FMIFNZTUJPTCBQQVJFTlRIRVNJUyBOT1RFSEVBRDtTbzswO0w7Ozs7O047Ozs7OworMUQxNTc7TVVTSUNBTCBTWU1CT0wgVk9JRCBOT1RFSEVBRDtTbzswO0w7Ozs7O047Ozs7OworMUQxNTg7TVVTSUNBTCBTWU1CT0wgTk9URUhFQUQgQkxBQ0s7U287MDtMOzs7OztOOzs7OzsKKzFEMTU5O01VU0lDQUwgU1lNQk9MIE5VTEwgTk9URUhFQUQ7U287MDtMOzs7OztOOzs7OzsKKzFEMTVBO01VU0lDQUwgU1lNQk9MIENMVVNURVIgTk9URUhFQUQgV0hJVEU7U287MDtMOzs7OztOOzs7OzsKKzFEMTVCO01VU0lDQUwgU1lNQk9MIENMVVNURVIgTk9URUhFQUQgQkxBQ0s7U287MDtMOzs7OztOOzs7OzsKKzFEMTVDO01VU0lDQUwgU1lNQk9MIEJSRVZFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE1RDtNVVNJQ0FMIFNZTUJPTCBXSE9MRSBOT1RFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE1RTtNVVNJQ0FMIFNZTUJPTCBIQUxGIE5PVEU7U287MDtMOzFEMTU3IDFEMTY1Ozs7O047Ozs7OworMUQxNUY7TVVTSUNBTCBTWU1CT0wgUVVBUlRFUiBOT1RFO1NvOzA7TDsxRDE1OCAxRDE2NTs7OztOOzs7OzsKKzFEMTYwO01VU0lDQUwgU1lNQk9MIEVJR0hUSCBOT1RFO1NvOzA7TDsxRDE1RiAxRDE2RTs7OztOOzs7OzsKKzFEMTYxO01VU0lDQUwgU1lNQk9MIFNJWFRFRU5USCBOT1RFO1NvOzA7TDsxRDE1RiAxRDE2Rjs7OztOOzs7OzsKKzFEMTYyO01VU0lDQUwgU1lNQk9MIFRISVJUWS1TRUNPTkQgTk9URTtTbzswO0w7MUQxNUYgMUQxNzA7Ozs7Tjs7Ozs7CisxRDE2MztNVVNJQ0FMIFNZTUJPTCBTSVhUWS1GT1VSVEggTk9URTtTbzswO0w7MUQxNUYgMUQxNzE7Ozs7Tjs7Ozs7CisxRDE2NDtNVVNJQ0FMIFNZTUJPTCBPTkUgSFVORFJFRCBUV0VOVFktRUlHSFRIIE5PVEU7U287MDtMOzFEMTVGIDFEMTcyOzs7O047Ozs7OworMUQxNjU7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIFNURU07TWM7MjE2O0w7Ozs7O047Ozs7OworMUQxNjY7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIFNQUkVDSEdFU0FORyBTVEVNO01jOzIxNjtMOzs7OztOOzs7OzsKKzFEMTY3O01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBUUkVNT0xPLTE7TW47MTtOU007Ozs7O047Ozs7OworMUQxNjg7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIFRSRU1PTE8tMjtNbjsxO05TTTs7Ozs7Tjs7Ozs7CisxRDE2OTtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgVFJFTU9MTy0zO01uOzE7TlNNOzs7OztOOzs7OzsKKzFEMTZBO01VU0lDQUwgU1lNQk9MIEZJTkdFUkVEIFRSRU1PTE8tMTtTbzswO0w7Ozs7O047Ozs7OworMUQxNkI7TVVTSUNBTCBTWU1CT0wgRklOR0VSRUQgVFJFTU9MTy0yO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE2QztNVVNJQ0FMIFNZTUJPTCBGSU5HRVJFRCBUUkVNT0xPLTM7U287MDtMOzs7OztOOzs7OzsKKzFEMTZEO01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBBVUdNRU5UQVRJT04gRE9UO01jOzIyNjtMOzs7OztOOzs7OzsKKzFEMTZFO01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBGTEFHLTE7TWM7MjE2O0w7Ozs7O047Ozs7OworMUQxNkY7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIEZMQUctMjtNYzsyMTY7TDs7Ozs7Tjs7Ozs7CisxRDE3MDtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgRkxBRy0zO01jOzIxNjtMOzs7OztOOzs7OzsKKzFEMTcxO01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBGTEFHLTQ7TWM7MjE2O0w7Ozs7O047Ozs7OworMUQxNzI7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIEZMQUctNTtNYzsyMTY7TDs7Ozs7Tjs7Ozs7CisxRDE3MztNVVNJQ0FMIFNZTUJPTCBCRUdJTiBCRUFNO0NmOzA7Qk47Ozs7O047Ozs7OworMUQxNzQ7TVVTSUNBTCBTWU1CT0wgRU5EIEJFQU07Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisxRDE3NTtNVVNJQ0FMIFNZTUJPTCBCRUdJTiBUSUU7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisxRDE3NjtNVVNJQ0FMIFNZTUJPTCBFTkQgVElFO0NmOzA7Qk47Ozs7O047Ozs7OworMUQxNzc7TVVTSUNBTCBTWU1CT0wgQkVHSU4gU0xVUjtDZjswO0JOOzs7OztOOzs7OzsKKzFEMTc4O01VU0lDQUwgU1lNQk9MIEVORCBTTFVSO0NmOzA7Qk47Ozs7O047Ozs7OworMUQxNzk7TVVTSUNBTCBTWU1CT0wgQkVHSU4gUEhSQVNFO0NmOzA7Qk47Ozs7O047Ozs7OworMUQxN0E7TVVTSUNBTCBTWU1CT0wgRU5EIFBIUkFTRTtDZjswO0JOOzs7OztOOzs7OzsKKzFEMTdCO01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBBQ0NFTlQ7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CisxRDE3QztNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgU1RBQ0NBVE87TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CisxRDE3RDtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgVEVOVVRPO01uOzIyMDtOU007Ozs7O047Ozs7OworMUQxN0U7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIFNUQUNDQVRJU1NJTU87TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CisxRDE3RjtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgTUFSQ0FUTztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzFEMTgwO01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBNQVJDQVRPLVNUQUNDQVRPO01uOzIyMDtOU007Ozs7O047Ozs7OworMUQxODE7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIEFDQ0VOVC1TVEFDQ0FUTztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzFEMTgyO01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBMT1VSRTtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzFEMTgzO01VU0lDQUwgU1lNQk9MIEFSUEVHR0lBVE8gVVA7U287MDtMOzs7OztOOzs7OzsKKzFEMTg0O01VU0lDQUwgU1lNQk9MIEFSUEVHR0lBVE8gRE9XTjtTbzswO0w7Ozs7O047Ozs7OworMUQxODU7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIERPSVQ7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxRDE4NjtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgUklQO01uOzIzMDtOU007Ozs7O047Ozs7OworMUQxODc7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIEZMSVA7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxRDE4ODtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgU01FQVI7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxRDE4OTtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgQkVORDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzFEMThBO01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBET1VCTEUgVE9OR1VFO01uOzIyMDtOU007Ozs7O047Ozs7OworMUQxOEI7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIFRSSVBMRSBUT05HVUU7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CisxRDE4QztNVVNJQ0FMIFNZTUJPTCBSSU5GT1JaQU5ETztTbzswO0w7Ozs7O047Ozs7OworMUQxOEQ7TVVTSUNBTCBTWU1CT0wgU1VCSVRPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE4RTtNVVNJQ0FMIFNZTUJPTCBaO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE4RjtNVVNJQ0FMIFNZTUJPTCBQSUFOTztTbzswO0w7Ozs7O047Ozs7OworMUQxOTA7TVVTSUNBTCBTWU1CT0wgTUVaWk87U287MDtMOzs7OztOOzs7OzsKKzFEMTkxO01VU0lDQUwgU1lNQk9MIEZPUlRFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE5MjtNVVNJQ0FMIFNZTUJPTCBDUkVTQ0VORE87U287MDtMOzs7OztOOzs7OzsKKzFEMTkzO01VU0lDQUwgU1lNQk9MIERFQ1JFU0NFTkRPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE5NDtNVVNJQ0FMIFNZTUJPTCBHUkFDRSBOT1RFIFNMQVNIO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE5NTtNVVNJQ0FMIFNZTUJPTCBHUkFDRSBOT1RFIE5PIFNMQVNIO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE5NjtNVVNJQ0FMIFNZTUJPTCBUUjtTbzswO0w7Ozs7O047Ozs7OworMUQxOTc7TVVTSUNBTCBTWU1CT0wgVFVSTjtTbzswO0w7Ozs7O047Ozs7OworMUQxOTg7TVVTSUNBTCBTWU1CT0wgSU5WRVJURUQgVFVSTjtTbzswO0w7Ozs7O047Ozs7OworMUQxOTk7TVVTSUNBTCBTWU1CT0wgVFVSTiBTTEFTSDtTbzswO0w7Ozs7O047Ozs7OworMUQxOUE7TVVTSUNBTCBTWU1CT0wgVFVSTiBVUDtTbzswO0w7Ozs7O047Ozs7OworMUQxOUI7TVVTSUNBTCBTWU1CT0wgT1JOQU1FTlQgU1RST0tFLTE7U287MDtMOzs7OztOOzs7OzsKKzFEMTlDO01VU0lDQUwgU1lNQk9MIE9STkFNRU5UIFNUUk9LRS0yO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE5RDtNVVNJQ0FMIFNZTUJPTCBPUk5BTUVOVCBTVFJPS0UtMztTbzswO0w7Ozs7O047Ozs7OworMUQxOUU7TVVTSUNBTCBTWU1CT0wgT1JOQU1FTlQgU1RST0tFLTQ7U287MDtMOzs7OztOOzs7OzsKKzFEMTlGO01VU0lDQUwgU1lNQk9MIE9STkFNRU5UIFNUUk9LRS01O1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFBMDtNVVNJQ0FMIFNZTUJPTCBPUk5BTUVOVCBTVFJPS0UtNjtTbzswO0w7Ozs7O047Ozs7OworMUQxQTE7TVVTSUNBTCBTWU1CT0wgT1JOQU1FTlQgU1RST0tFLTc7U287MDtMOzs7OztOOzs7OzsKKzFEMUEyO01VU0lDQUwgU1lNQk9MIE9STkFNRU5UIFNUUk9LRS04O1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFBMztNVVNJQ0FMIFNZTUJPTCBPUk5BTUVOVCBTVFJPS0UtOTtTbzswO0w7Ozs7O047Ozs7OworMUQxQTQ7TVVTSUNBTCBTWU1CT0wgT1JOQU1FTlQgU1RST0tFLTEwO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFBNTtNVVNJQ0FMIFNZTUJPTCBPUk5BTUVOVCBTVFJPS0UtMTE7U287MDtMOzs7OztOOzs7OzsKKzFEMUE2O01VU0lDQUwgU1lNQk9MIEhBVVBUU1RJTU1FO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFBNztNVVNJQ0FMIFNZTUJPTCBORUJFTlNUSU1NRTtTbzswO0w7Ozs7O047Ozs7OworMUQxQTg7TVVTSUNBTCBTWU1CT0wgRU5EIE9GIFNUSU1NRTtTbzswO0w7Ozs7O047Ozs7OworMUQxQTk7TVVTSUNBTCBTWU1CT0wgREVHUkVFIFNMQVNIO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFBQTtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgRE9XTiBCT1c7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxRDFBQjtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgVVAgQk9XO01uOzIzMDtOU007Ozs7O047Ozs7OworMUQxQUM7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIEhBUk1PTklDO01uOzIzMDtOU007Ozs7O047Ozs7OworMUQxQUQ7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIFNOQVAgUElaWklDQVRPO01uOzIzMDtOU007Ozs7O047Ozs7OworMUQxQUU7TVVTSUNBTCBTWU1CT0wgUEVEQUwgTUFSSztTbzswO0w7Ozs7O047Ozs7OworMUQxQUY7TVVTSUNBTCBTWU1CT0wgUEVEQUwgVVAgTUFSSztTbzswO0w7Ozs7O047Ozs7OworMUQxQjA7TVVTSUNBTCBTWU1CT0wgSEFMRiBQRURBTCBNQVJLO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFCMTtNVVNJQ0FMIFNZTUJPTCBHTElTU0FORE8gVVA7U287MDtMOzs7OztOOzs7OzsKKzFEMUIyO01VU0lDQUwgU1lNQk9MIEdMSVNTQU5ETyBET1dOO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFCMztNVVNJQ0FMIFNZTUJPTCBXSVRIIEZJTkdFUk5BSUxTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFCNDtNVVNJQ0FMIFNZTUJPTCBEQU1QO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFCNTtNVVNJQ0FMIFNZTUJPTCBEQU1QIEFMTDtTbzswO0w7Ozs7O047Ozs7OworMUQxQjY7TVVTSUNBTCBTWU1CT0wgTUFYSU1BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFCNztNVVNJQ0FMIFNZTUJPTCBMT05HQTtTbzswO0w7Ozs7O047Ozs7OworMUQxQjg7TVVTSUNBTCBTWU1CT0wgQlJFVklTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFCOTtNVVNJQ0FMIFNZTUJPTCBTRU1JQlJFVklTIFdISVRFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFCQTtNVVNJQ0FMIFNZTUJPTCBTRU1JQlJFVklTIEJMQUNLO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFCQjtNVVNJQ0FMIFNZTUJPTCBNSU5JTUE7U287MDtMOzFEMUI5IDFEMTY1Ozs7O047Ozs7OworMUQxQkM7TVVTSUNBTCBTWU1CT0wgTUlOSU1BIEJMQUNLO1NvOzA7TDsxRDFCQSAxRDE2NTs7OztOOzs7OzsKKzFEMUJEO01VU0lDQUwgU1lNQk9MIFNFTUlNSU5JTUEgV0hJVEU7U287MDtMOzFEMUJCIDFEMTZFOzs7O047Ozs7OworMUQxQkU7TVVTSUNBTCBTWU1CT0wgU0VNSU1JTklNQSBCTEFDSztTbzswO0w7MUQxQkMgMUQxNkU7Ozs7Tjs7Ozs7CisxRDFCRjtNVVNJQ0FMIFNZTUJPTCBGVVNBIFdISVRFO1NvOzA7TDsxRDFCQiAxRDE2Rjs7OztOOzs7OzsKKzFEMUMwO01VU0lDQUwgU1lNQk9MIEZVU0EgQkxBQ0s7U287MDtMOzFEMUJDIDFEMTZGOzs7O047Ozs7OworMUQxQzE7TVVTSUNBTCBTWU1CT0wgTE9OR0EgUEVSRkVDVEEgUkVTVDtTbzswO0w7Ozs7O047Ozs7OworMUQxQzI7TVVTSUNBTCBTWU1CT0wgTE9OR0EgSU1QRVJGRUNUQSBSRVNUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFDMztNVVNJQ0FMIFNZTUJPTCBCUkVWSVMgUkVTVDtTbzswO0w7Ozs7O047Ozs7OworMUQxQzQ7TVVTSUNBTCBTWU1CT0wgU0VNSUJSRVZJUyBSRVNUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFDNTtNVVNJQ0FMIFNZTUJPTCBNSU5JTUEgUkVTVDtTbzswO0w7Ozs7O047Ozs7OworMUQxQzY7TVVTSUNBTCBTWU1CT0wgU0VNSU1JTklNQSBSRVNUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFDNztNVVNJQ0FMIFNZTUJPTCBURU1QVVMgUEVSRkVDVFVNIENVTSBQUk9MQVRJT05FIFBFUkZFQ1RBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFDODtNVVNJQ0FMIFNZTUJPTCBURU1QVVMgUEVSRkVDVFVNIENVTSBQUk9MQVRJT05FIElNUEVSRkVDVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMUM5O01VU0lDQUwgU1lNQk9MIFRFTVBVUyBQRVJGRUNUVU0gQ1VNIFBST0xBVElPTkUgUEVSRkVDVEEgRElNSU5VVElPTi0xO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFDQTtNVVNJQ0FMIFNZTUJPTCBURU1QVVMgSU1QRVJGRUNUVU0gQ1VNIFBST0xBVElPTkUgUEVSRkVDVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMUNCO01VU0lDQUwgU1lNQk9MIFRFTVBVUyBJTVBFUkZFQ1RVTSBDVU0gUFJPTEFUSU9ORSBJTVBFUkZFQ1RBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFDQztNVVNJQ0FMIFNZTUJPTCBURU1QVVMgSU1QRVJGRUNUVU0gQ1VNIFBST0xBVElPTkUgSU1QRVJGRUNUQSBESU1JTlVUSU9OLTE7U287MDtMOzs7OztOOzs7OzsKKzFEMUNEO01VU0lDQUwgU1lNQk9MIFRFTVBVUyBJTVBFUkZFQ1RVTSBDVU0gUFJPTEFUSU9ORSBJTVBFUkZFQ1RBIERJTUlOVVRJT04tMjtTbzswO0w7Ozs7O047Ozs7OworMUQxQ0U7TVVTSUNBTCBTWU1CT0wgVEVNUFVTIElNUEVSRkVDVFVNIENVTSBQUk9MQVRJT05FIElNUEVSRkVDVEEgRElNSU5VVElPTi0zO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFDRjtNVVNJQ0FMIFNZTUJPTCBDUk9JWDtTbzswO0w7Ozs7O047Ozs7OworMUQxRDA7TVVTSUNBTCBTWU1CT0wgR1JFR09SSUFOIEMgQ0xFRjtTbzswO0w7Ozs7O047Ozs7OworMUQxRDE7TVVTSUNBTCBTWU1CT0wgR1JFR09SSUFOIEYgQ0xFRjtTbzswO0w7Ozs7O047Ozs7OworMUQxRDI7TVVTSUNBTCBTWU1CT0wgU1FVQVJFIEI7U287MDtMOzs7OztOOzs7OzsKKzFEMUQzO01VU0lDQUwgU1lNQk9MIFZJUkdBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFENDtNVVNJQ0FMIFNZTUJPTCBQT0RBVFVTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFENTtNVVNJQ0FMIFNZTUJPTCBDTElWSVM7U287MDtMOzs7OztOOzs7OzsKKzFEMUQ2O01VU0lDQUwgU1lNQk9MIFNDQU5ESUNVUztTbzswO0w7Ozs7O047Ozs7OworMUQxRDc7TVVTSUNBTCBTWU1CT0wgQ0xJTUFDVVM7U287MDtMOzs7OztOOzs7OzsKKzFEMUQ4O01VU0lDQUwgU1lNQk9MIFRPUkNVTFVTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFEOTtNVVNJQ0FMIFNZTUJPTCBQT1JSRUNUVVM7U287MDtMOzs7OztOOzs7OzsKKzFEMURBO01VU0lDQUwgU1lNQk9MIFBPUlJFQ1RVUyBGTEVYVVM7U287MDtMOzs7OztOOzs7OzsKKzFEMURCO01VU0lDQUwgU1lNQk9MIFNDQU5ESUNVUyBGTEVYVVM7U287MDtMOzs7OztOOzs7OzsKKzFEMURDO01VU0lDQUwgU1lNQk9MIFRPUkNVTFVTIFJFU1VQSU5VUztTbzswO0w7Ozs7O047Ozs7OworMUQxREQ7TVVTSUNBTCBTWU1CT0wgUEVTIFNVQlBVTkNUSVM7U287MDtMOzs7OztOOzs7OzsKKzFENDAwO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgQTtMdTswO0w7PGZvbnQ+IDAwNDE7Ozs7Tjs7Ozs7CisxRDQwMTtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIEI7THU7MDtMOzxmb250PiAwMDQyOzs7O047Ozs7OworMUQ0MDI7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBDO0x1OzA7TDs8Zm9udD4gMDA0Mzs7OztOOzs7OzsKKzFENDAzO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgRDtMdTswO0w7PGZvbnQ+IDAwNDQ7Ozs7Tjs7Ozs7CisxRDQwNDtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIEU7THU7MDtMOzxmb250PiAwMDQ1Ozs7O047Ozs7OworMUQ0MDU7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBGO0x1OzA7TDs8Zm9udD4gMDA0Njs7OztOOzs7OzsKKzFENDA2O01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgRztMdTswO0w7PGZvbnQ+IDAwNDc7Ozs7Tjs7Ozs7CisxRDQwNztNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIEg7THU7MDtMOzxmb250PiAwMDQ4Ozs7O047Ozs7OworMUQ0MDg7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBJO0x1OzA7TDs8Zm9udD4gMDA0OTs7OztOOzs7OzsKKzFENDA5O01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgSjtMdTswO0w7PGZvbnQ+IDAwNEE7Ozs7Tjs7Ozs7CisxRDQwQTtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIEs7THU7MDtMOzxmb250PiAwMDRCOzs7O047Ozs7OworMUQ0MEI7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBMO0x1OzA7TDs8Zm9udD4gMDA0Qzs7OztOOzs7OzsKKzFENDBDO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgTTtMdTswO0w7PGZvbnQ+IDAwNEQ7Ozs7Tjs7Ozs7CisxRDQwRDtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIE47THU7MDtMOzxmb250PiAwMDRFOzs7O047Ozs7OworMUQ0MEU7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBPO0x1OzA7TDs8Zm9udD4gMDA0Rjs7OztOOzs7OzsKKzFENDBGO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgUDtMdTswO0w7PGZvbnQ+IDAwNTA7Ozs7Tjs7Ozs7CisxRDQxMDtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFE7THU7MDtMOzxmb250PiAwMDUxOzs7O047Ozs7OworMUQ0MTE7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBSO0x1OzA7TDs8Zm9udD4gMDA1Mjs7OztOOzs7OzsKKzFENDEyO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgUztMdTswO0w7PGZvbnQ+IDAwNTM7Ozs7Tjs7Ozs7CisxRDQxMztNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFQ7THU7MDtMOzxmb250PiAwMDU0Ozs7O047Ozs7OworMUQ0MTQ7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBVO0x1OzA7TDs8Zm9udD4gMDA1NTs7OztOOzs7OzsKKzFENDE1O01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgVjtMdTswO0w7PGZvbnQ+IDAwNTY7Ozs7Tjs7Ozs7CisxRDQxNjtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFc7THU7MDtMOzxmb250PiAwMDU3Ozs7O047Ozs7OworMUQ0MTc7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBYO0x1OzA7TDs8Zm9udD4gMDA1ODs7OztOOzs7OzsKKzFENDE4O01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgWTtMdTswO0w7PGZvbnQ+IDAwNTk7Ozs7Tjs7Ozs7CisxRDQxOTtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFo7THU7MDtMOzxmb250PiAwMDVBOzs7O047Ozs7OworMUQ0MUE7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgQTtMbDswO0w7PGZvbnQ+IDAwNjE7Ozs7Tjs7Ozs7CisxRDQxQjtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBCO0xsOzA7TDs8Zm9udD4gMDA2Mjs7OztOOzs7OzsKKzFENDFDO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIEM7TGw7MDtMOzxmb250PiAwMDYzOzs7O047Ozs7OworMUQ0MUQ7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgRDtMbDswO0w7PGZvbnQ+IDAwNjQ7Ozs7Tjs7Ozs7CisxRDQxRTtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBFO0xsOzA7TDs8Zm9udD4gMDA2NTs7OztOOzs7OzsKKzFENDFGO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIEY7TGw7MDtMOzxmb250PiAwMDY2Ozs7O047Ozs7OworMUQ0MjA7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgRztMbDswO0w7PGZvbnQ+IDAwNjc7Ozs7Tjs7Ozs7CisxRDQyMTtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBIO0xsOzA7TDs8Zm9udD4gMDA2ODs7OztOOzs7OzsKKzFENDIyO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIEk7TGw7MDtMOzxmb250PiAwMDY5Ozs7O047Ozs7OworMUQ0MjM7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgSjtMbDswO0w7PGZvbnQ+IDAwNkE7Ozs7Tjs7Ozs7CisxRDQyNDtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBLO0xsOzA7TDs8Zm9udD4gMDA2Qjs7OztOOzs7OzsKKzFENDI1O01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIEw7TGw7MDtMOzxmb250PiAwMDZDOzs7O047Ozs7OworMUQ0MjY7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgTTtMbDswO0w7PGZvbnQ+IDAwNkQ7Ozs7Tjs7Ozs7CisxRDQyNztNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBOO0xsOzA7TDs8Zm9udD4gMDA2RTs7OztOOzs7OzsKKzFENDI4O01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIE87TGw7MDtMOzxmb250PiAwMDZGOzs7O047Ozs7OworMUQ0Mjk7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgUDtMbDswO0w7PGZvbnQ+IDAwNzA7Ozs7Tjs7Ozs7CisxRDQyQTtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBRO0xsOzA7TDs8Zm9udD4gMDA3MTs7OztOOzs7OzsKKzFENDJCO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIFI7TGw7MDtMOzxmb250PiAwMDcyOzs7O047Ozs7OworMUQ0MkM7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgUztMbDswO0w7PGZvbnQ+IDAwNzM7Ozs7Tjs7Ozs7CisxRDQyRDtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBUO0xsOzA7TDs8Zm9udD4gMDA3NDs7OztOOzs7OzsKKzFENDJFO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIFU7TGw7MDtMOzxmb250PiAwMDc1Ozs7O047Ozs7OworMUQ0MkY7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgVjtMbDswO0w7PGZvbnQ+IDAwNzY7Ozs7Tjs7Ozs7CisxRDQzMDtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBXO0xsOzA7TDs8Zm9udD4gMDA3Nzs7OztOOzs7OzsKKzFENDMxO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIFg7TGw7MDtMOzxmb250PiAwMDc4Ozs7O047Ozs7OworMUQ0MzI7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgWTtMbDswO0w7PGZvbnQ+IDAwNzk7Ozs7Tjs7Ozs7CisxRDQzMztNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBaO0xsOzA7TDs8Zm9udD4gMDA3QTs7OztOOzs7OzsKKzFENDM0O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBBO0x1OzA7TDs8Zm9udD4gMDA0MTs7OztOOzs7OzsKKzFENDM1O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBCO0x1OzA7TDs8Zm9udD4gMDA0Mjs7OztOOzs7OzsKKzFENDM2O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBDO0x1OzA7TDs8Zm9udD4gMDA0Mzs7OztOOzs7OzsKKzFENDM3O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBEO0x1OzA7TDs8Zm9udD4gMDA0NDs7OztOOzs7OzsKKzFENDM4O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBFO0x1OzA7TDs8Zm9udD4gMDA0NTs7OztOOzs7OzsKKzFENDM5O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBGO0x1OzA7TDs8Zm9udD4gMDA0Njs7OztOOzs7OzsKKzFENDNBO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBHO0x1OzA7TDs8Zm9udD4gMDA0Nzs7OztOOzs7OzsKKzFENDNCO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBIO0x1OzA7TDs8Zm9udD4gMDA0ODs7OztOOzs7OzsKKzFENDNDO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBJO0x1OzA7TDs8Zm9udD4gMDA0OTs7OztOOzs7OzsKKzFENDNEO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBKO0x1OzA7TDs8Zm9udD4gMDA0QTs7OztOOzs7OzsKKzFENDNFO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBLO0x1OzA7TDs8Zm9udD4gMDA0Qjs7OztOOzs7OzsKKzFENDNGO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBMO0x1OzA7TDs8Zm9udD4gMDA0Qzs7OztOOzs7OzsKKzFENDQwO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBNO0x1OzA7TDs8Zm9udD4gMDA0RDs7OztOOzs7OzsKKzFENDQxO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBOO0x1OzA7TDs8Zm9udD4gMDA0RTs7OztOOzs7OzsKKzFENDQyO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBPO0x1OzA7TDs8Zm9udD4gMDA0Rjs7OztOOzs7OzsKKzFENDQzO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBQO0x1OzA7TDs8Zm9udD4gMDA1MDs7OztOOzs7OzsKKzFENDQ0O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBRO0x1OzA7TDs8Zm9udD4gMDA1MTs7OztOOzs7OzsKKzFENDQ1O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBSO0x1OzA7TDs8Zm9udD4gMDA1Mjs7OztOOzs7OzsKKzFENDQ2O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBTO0x1OzA7TDs8Zm9udD4gMDA1Mzs7OztOOzs7OzsKKzFENDQ3O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBUO0x1OzA7TDs8Zm9udD4gMDA1NDs7OztOOzs7OzsKKzFENDQ4O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBVO0x1OzA7TDs8Zm9udD4gMDA1NTs7OztOOzs7OzsKKzFENDQ5O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBWO0x1OzA7TDs8Zm9udD4gMDA1Njs7OztOOzs7OzsKKzFENDRBO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBXO0x1OzA7TDs8Zm9udD4gMDA1Nzs7OztOOzs7OzsKKzFENDRCO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBYO0x1OzA7TDs8Zm9udD4gMDA1ODs7OztOOzs7OzsKKzFENDRDO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBZO0x1OzA7TDs8Zm9udD4gMDA1OTs7OztOOzs7OzsKKzFENDREO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBaO0x1OzA7TDs8Zm9udD4gMDA1QTs7OztOOzs7OzsKKzFENDRFO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgQTtMbDswO0w7PGZvbnQ+IDAwNjE7Ozs7Tjs7Ozs7CisxRDQ0RjtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIEI7TGw7MDtMOzxmb250PiAwMDYyOzs7O047Ozs7OworMUQ0NTA7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBDO0xsOzA7TDs8Zm9udD4gMDA2Mzs7OztOOzs7OzsKKzFENDUxO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgRDtMbDswO0w7PGZvbnQ+IDAwNjQ7Ozs7Tjs7Ozs7CisxRDQ1MjtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIEU7TGw7MDtMOzxmb250PiAwMDY1Ozs7O047Ozs7OworMUQ0NTM7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBGO0xsOzA7TDs8Zm9udD4gMDA2Njs7OztOOzs7OzsKKzFENDU0O01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgRztMbDswO0w7PGZvbnQ+IDAwNjc7Ozs7Tjs7Ozs7CisxRDQ1NjtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIEk7TGw7MDtMOzxmb250PiAwMDY5Ozs7O047Ozs7OworMUQ0NTc7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBKO0xsOzA7TDs8Zm9udD4gMDA2QTs7OztOOzs7OzsKKzFENDU4O01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgSztMbDswO0w7PGZvbnQ+IDAwNkI7Ozs7Tjs7Ozs7CisxRDQ1OTtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIEw7TGw7MDtMOzxmb250PiAwMDZDOzs7O047Ozs7OworMUQ0NUE7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBNO0xsOzA7TDs8Zm9udD4gMDA2RDs7OztOOzs7OzsKKzFENDVCO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgTjtMbDswO0w7PGZvbnQ+IDAwNkU7Ozs7Tjs7Ozs7CisxRDQ1QztNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIE87TGw7MDtMOzxmb250PiAwMDZGOzs7O047Ozs7OworMUQ0NUQ7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBQO0xsOzA7TDs8Zm9udD4gMDA3MDs7OztOOzs7OzsKKzFENDVFO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgUTtMbDswO0w7PGZvbnQ+IDAwNzE7Ozs7Tjs7Ozs7CisxRDQ1RjtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFI7TGw7MDtMOzxmb250PiAwMDcyOzs7O047Ozs7OworMUQ0NjA7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBTO0xsOzA7TDs8Zm9udD4gMDA3Mzs7OztOOzs7OzsKKzFENDYxO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgVDtMbDswO0w7PGZvbnQ+IDAwNzQ7Ozs7Tjs7Ozs7CisxRDQ2MjtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFU7TGw7MDtMOzxmb250PiAwMDc1Ozs7O047Ozs7OworMUQ0NjM7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBWO0xsOzA7TDs8Zm9udD4gMDA3Njs7OztOOzs7OzsKKzFENDY0O01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgVztMbDswO0w7PGZvbnQ+IDAwNzc7Ozs7Tjs7Ozs7CisxRDQ2NTtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFg7TGw7MDtMOzxmb250PiAwMDc4Ozs7O047Ozs7OworMUQ0NjY7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBZO0xsOzA7TDs8Zm9udD4gMDA3OTs7OztOOzs7OzsKKzFENDY3O01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgWjtMbDswO0w7PGZvbnQ+IDAwN0E7Ozs7Tjs7Ozs7CisxRDQ2ODtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBBO0x1OzA7TDs8Zm9udD4gMDA0MTs7OztOOzs7OzsKKzFENDY5O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIEI7THU7MDtMOzxmb250PiAwMDQyOzs7O047Ozs7OworMUQ0NkE7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgQztMdTswO0w7PGZvbnQ+IDAwNDM7Ozs7Tjs7Ozs7CisxRDQ2QjtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBEO0x1OzA7TDs8Zm9udD4gMDA0NDs7OztOOzs7OzsKKzFENDZDO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIEU7THU7MDtMOzxmb250PiAwMDQ1Ozs7O047Ozs7OworMUQ0NkQ7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgRjtMdTswO0w7PGZvbnQ+IDAwNDY7Ozs7Tjs7Ozs7CisxRDQ2RTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBHO0x1OzA7TDs8Zm9udD4gMDA0Nzs7OztOOzs7OzsKKzFENDZGO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIEg7THU7MDtMOzxmb250PiAwMDQ4Ozs7O047Ozs7OworMUQ0NzA7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgSTtMdTswO0w7PGZvbnQ+IDAwNDk7Ozs7Tjs7Ozs7CisxRDQ3MTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBKO0x1OzA7TDs8Zm9udD4gMDA0QTs7OztOOzs7OzsKKzFENDcyO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIEs7THU7MDtMOzxmb250PiAwMDRCOzs7O047Ozs7OworMUQ0NzM7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgTDtMdTswO0w7PGZvbnQ+IDAwNEM7Ozs7Tjs7Ozs7CisxRDQ3NDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBNO0x1OzA7TDs8Zm9udD4gMDA0RDs7OztOOzs7OzsKKzFENDc1O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIE47THU7MDtMOzxmb250PiAwMDRFOzs7O047Ozs7OworMUQ0NzY7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgTztMdTswO0w7PGZvbnQ+IDAwNEY7Ozs7Tjs7Ozs7CisxRDQ3NztNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBQO0x1OzA7TDs8Zm9udD4gMDA1MDs7OztOOzs7OzsKKzFENDc4O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIFE7THU7MDtMOzxmb250PiAwMDUxOzs7O047Ozs7OworMUQ0Nzk7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgUjtMdTswO0w7PGZvbnQ+IDAwNTI7Ozs7Tjs7Ozs7CisxRDQ3QTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBTO0x1OzA7TDs8Zm9udD4gMDA1Mzs7OztOOzs7OzsKKzFENDdCO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIFQ7THU7MDtMOzxmb250PiAwMDU0Ozs7O047Ozs7OworMUQ0N0M7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgVTtMdTswO0w7PGZvbnQ+IDAwNTU7Ozs7Tjs7Ozs7CisxRDQ3RDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBWO0x1OzA7TDs8Zm9udD4gMDA1Njs7OztOOzs7OzsKKzFENDdFO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIFc7THU7MDtMOzxmb250PiAwMDU3Ozs7O047Ozs7OworMUQ0N0Y7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgWDtMdTswO0w7PGZvbnQ+IDAwNTg7Ozs7Tjs7Ozs7CisxRDQ4MDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBZO0x1OzA7TDs8Zm9udD4gMDA1OTs7OztOOzs7OzsKKzFENDgxO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIFo7THU7MDtMOzxmb250PiAwMDVBOzs7O047Ozs7OworMUQ0ODI7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEE7TGw7MDtMOzxmb250PiAwMDYxOzs7O047Ozs7OworMUQ0ODM7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEI7TGw7MDtMOzxmb250PiAwMDYyOzs7O047Ozs7OworMUQ0ODQ7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEM7TGw7MDtMOzxmb250PiAwMDYzOzs7O047Ozs7OworMUQ0ODU7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEQ7TGw7MDtMOzxmb250PiAwMDY0Ozs7O047Ozs7OworMUQ0ODY7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEU7TGw7MDtMOzxmb250PiAwMDY1Ozs7O047Ozs7OworMUQ0ODc7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEY7TGw7MDtMOzxmb250PiAwMDY2Ozs7O047Ozs7OworMUQ0ODg7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEc7TGw7MDtMOzxmb250PiAwMDY3Ozs7O047Ozs7OworMUQ0ODk7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEg7TGw7MDtMOzxmb250PiAwMDY4Ozs7O047Ozs7OworMUQ0OEE7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEk7TGw7MDtMOzxmb250PiAwMDY5Ozs7O047Ozs7OworMUQ0OEI7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEo7TGw7MDtMOzxmb250PiAwMDZBOzs7O047Ozs7OworMUQ0OEM7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEs7TGw7MDtMOzxmb250PiAwMDZCOzs7O047Ozs7OworMUQ0OEQ7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEw7TGw7MDtMOzxmb250PiAwMDZDOzs7O047Ozs7OworMUQ0OEU7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIE07TGw7MDtMOzxmb250PiAwMDZEOzs7O047Ozs7OworMUQ0OEY7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIE47TGw7MDtMOzxmb250PiAwMDZFOzs7O047Ozs7OworMUQ0OTA7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIE87TGw7MDtMOzxmb250PiAwMDZGOzs7O047Ozs7OworMUQ0OTE7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFA7TGw7MDtMOzxmb250PiAwMDcwOzs7O047Ozs7OworMUQ0OTI7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFE7TGw7MDtMOzxmb250PiAwMDcxOzs7O047Ozs7OworMUQ0OTM7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFI7TGw7MDtMOzxmb250PiAwMDcyOzs7O047Ozs7OworMUQ0OTQ7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFM7TGw7MDtMOzxmb250PiAwMDczOzs7O047Ozs7OworMUQ0OTU7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFQ7TGw7MDtMOzxmb250PiAwMDc0Ozs7O047Ozs7OworMUQ0OTY7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFU7TGw7MDtMOzxmb250PiAwMDc1Ozs7O047Ozs7OworMUQ0OTc7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFY7TGw7MDtMOzxmb250PiAwMDc2Ozs7O047Ozs7OworMUQ0OTg7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFc7TGw7MDtMOzxmb250PiAwMDc3Ozs7O047Ozs7OworMUQ0OTk7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFg7TGw7MDtMOzxmb250PiAwMDc4Ozs7O047Ozs7OworMUQ0OUE7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFk7TGw7MDtMOzxmb250PiAwMDc5Ozs7O047Ozs7OworMUQ0OUI7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFo7TGw7MDtMOzxmb250PiAwMDdBOzs7O047Ozs7OworMUQ0OUM7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIEE7THU7MDtMOzxmb250PiAwMDQxOzs7O047Ozs7OworMUQ0OUU7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIEM7THU7MDtMOzxmb250PiAwMDQzOzs7O047Ozs7OworMUQ0OUY7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIEQ7THU7MDtMOzxmb250PiAwMDQ0Ozs7O047Ozs7OworMUQ0QTI7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIEc7THU7MDtMOzxmb250PiAwMDQ3Ozs7O047Ozs7OworMUQ0QTU7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIEo7THU7MDtMOzxmb250PiAwMDRBOzs7O047Ozs7OworMUQ0QTY7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIEs7THU7MDtMOzxmb250PiAwMDRCOzs7O047Ozs7OworMUQ0QTk7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIE47THU7MDtMOzxmb250PiAwMDRFOzs7O047Ozs7OworMUQ0QUE7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIE87THU7MDtMOzxmb250PiAwMDRGOzs7O047Ozs7OworMUQ0QUI7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFA7THU7MDtMOzxmb250PiAwMDUwOzs7O047Ozs7OworMUQ0QUM7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFE7THU7MDtMOzxmb250PiAwMDUxOzs7O047Ozs7OworMUQ0QUU7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFM7THU7MDtMOzxmb250PiAwMDUzOzs7O047Ozs7OworMUQ0QUY7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFQ7THU7MDtMOzxmb250PiAwMDU0Ozs7O047Ozs7OworMUQ0QjA7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFU7THU7MDtMOzxmb250PiAwMDU1Ozs7O047Ozs7OworMUQ0QjE7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFY7THU7MDtMOzxmb250PiAwMDU2Ozs7O047Ozs7OworMUQ0QjI7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFc7THU7MDtMOzxmb250PiAwMDU3Ozs7O047Ozs7OworMUQ0QjM7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFg7THU7MDtMOzxmb250PiAwMDU4Ozs7O047Ozs7OworMUQ0QjQ7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFk7THU7MDtMOzxmb250PiAwMDU5Ozs7O047Ozs7OworMUQ0QjU7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFo7THU7MDtMOzxmb250PiAwMDVBOzs7O047Ozs7OworMUQ0QjY7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBBO0xsOzA7TDs8Zm9udD4gMDA2MTs7OztOOzs7OzsKKzFENEI3O01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgQjtMbDswO0w7PGZvbnQ+IDAwNjI7Ozs7Tjs7Ozs7CisxRDRCODtNQVRIRU1BVElDQUwgU0NSSVBUIFNNQUxMIEM7TGw7MDtMOzxmb250PiAwMDYzOzs7O047Ozs7OworMUQ0Qjk7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBEO0xsOzA7TDs8Zm9udD4gMDA2NDs7OztOOzs7OzsKKzFENEJCO01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgRjtMbDswO0w7PGZvbnQ+IDAwNjY7Ozs7Tjs7Ozs7CisxRDRCRDtNQVRIRU1BVElDQUwgU0NSSVBUIFNNQUxMIEg7TGw7MDtMOzxmb250PiAwMDY4Ozs7O047Ozs7OworMUQ0QkU7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBJO0xsOzA7TDs8Zm9udD4gMDA2OTs7OztOOzs7OzsKKzFENEJGO01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgSjtMbDswO0w7PGZvbnQ+IDAwNkE7Ozs7Tjs7Ozs7CisxRDRDMDtNQVRIRU1BVElDQUwgU0NSSVBUIFNNQUxMIEs7TGw7MDtMOzxmb250PiAwMDZCOzs7O047Ozs7OworMUQ0QzI7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBNO0xsOzA7TDs8Zm9udD4gMDA2RDs7OztOOzs7OzsKKzFENEMzO01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgTjtMbDswO0w7PGZvbnQ+IDAwNkU7Ozs7Tjs7Ozs7CisxRDRDNTtNQVRIRU1BVElDQUwgU0NSSVBUIFNNQUxMIFA7TGw7MDtMOzxmb250PiAwMDcwOzs7O047Ozs7OworMUQ0QzY7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBRO0xsOzA7TDs8Zm9udD4gMDA3MTs7OztOOzs7OzsKKzFENEM3O01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgUjtMbDswO0w7PGZvbnQ+IDAwNzI7Ozs7Tjs7Ozs7CisxRDRDODtNQVRIRU1BVElDQUwgU0NSSVBUIFNNQUxMIFM7TGw7MDtMOzxmb250PiAwMDczOzs7O047Ozs7OworMUQ0Qzk7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBUO0xsOzA7TDs8Zm9udD4gMDA3NDs7OztOOzs7OzsKKzFENENBO01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgVTtMbDswO0w7PGZvbnQ+IDAwNzU7Ozs7Tjs7Ozs7CisxRDRDQjtNQVRIRU1BVElDQUwgU0NSSVBUIFNNQUxMIFY7TGw7MDtMOzxmb250PiAwMDc2Ozs7O047Ozs7OworMUQ0Q0M7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBXO0xsOzA7TDs8Zm9udD4gMDA3Nzs7OztOOzs7OzsKKzFENENEO01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgWDtMbDswO0w7PGZvbnQ+IDAwNzg7Ozs7Tjs7Ozs7CisxRDRDRTtNQVRIRU1BVElDQUwgU0NSSVBUIFNNQUxMIFk7TGw7MDtMOzxmb250PiAwMDc5Ozs7O047Ozs7OworMUQ0Q0Y7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBaO0xsOzA7TDs8Zm9udD4gMDA3QTs7OztOOzs7OzsKKzFENEQwO01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIEE7THU7MDtMOzxmb250PiAwMDQxOzs7O047Ozs7OworMUQ0RDE7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgQjtMdTswO0w7PGZvbnQ+IDAwNDI7Ozs7Tjs7Ozs7CisxRDREMjtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBDO0x1OzA7TDs8Zm9udD4gMDA0Mzs7OztOOzs7OzsKKzFENEQzO01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIEQ7THU7MDtMOzxmb250PiAwMDQ0Ozs7O047Ozs7OworMUQ0RDQ7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgRTtMdTswO0w7PGZvbnQ+IDAwNDU7Ozs7Tjs7Ozs7CisxRDRENTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBGO0x1OzA7TDs8Zm9udD4gMDA0Njs7OztOOzs7OzsKKzFENEQ2O01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIEc7THU7MDtMOzxmb250PiAwMDQ3Ozs7O047Ozs7OworMUQ0RDc7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgSDtMdTswO0w7PGZvbnQ+IDAwNDg7Ozs7Tjs7Ozs7CisxRDREODtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBJO0x1OzA7TDs8Zm9udD4gMDA0OTs7OztOOzs7OzsKKzFENEQ5O01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIEo7THU7MDtMOzxmb250PiAwMDRBOzs7O047Ozs7OworMUQ0REE7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgSztMdTswO0w7PGZvbnQ+IDAwNEI7Ozs7Tjs7Ozs7CisxRDREQjtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBMO0x1OzA7TDs8Zm9udD4gMDA0Qzs7OztOOzs7OzsKKzFENERDO01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIE07THU7MDtMOzxmb250PiAwMDREOzs7O047Ozs7OworMUQ0REQ7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgTjtMdTswO0w7PGZvbnQ+IDAwNEU7Ozs7Tjs7Ozs7CisxRDRERTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBPO0x1OzA7TDs8Zm9udD4gMDA0Rjs7OztOOzs7OzsKKzFENERGO01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIFA7THU7MDtMOzxmb250PiAwMDUwOzs7O047Ozs7OworMUQ0RTA7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgUTtMdTswO0w7PGZvbnQ+IDAwNTE7Ozs7Tjs7Ozs7CisxRDRFMTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBSO0x1OzA7TDs8Zm9udD4gMDA1Mjs7OztOOzs7OzsKKzFENEUyO01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIFM7THU7MDtMOzxmb250PiAwMDUzOzs7O047Ozs7OworMUQ0RTM7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgVDtMdTswO0w7PGZvbnQ+IDAwNTQ7Ozs7Tjs7Ozs7CisxRDRFNDtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBVO0x1OzA7TDs8Zm9udD4gMDA1NTs7OztOOzs7OzsKKzFENEU1O01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIFY7THU7MDtMOzxmb250PiAwMDU2Ozs7O047Ozs7OworMUQ0RTY7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgVztMdTswO0w7PGZvbnQ+IDAwNTc7Ozs7Tjs7Ozs7CisxRDRFNztNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBYO0x1OzA7TDs8Zm9udD4gMDA1ODs7OztOOzs7OzsKKzFENEU4O01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIFk7THU7MDtMOzxmb250PiAwMDU5Ozs7O047Ozs7OworMUQ0RTk7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgWjtMdTswO0w7PGZvbnQ+IDAwNUE7Ozs7Tjs7Ozs7CisxRDRFQTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgQTtMbDswO0w7PGZvbnQ+IDAwNjE7Ozs7Tjs7Ozs7CisxRDRFQjtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgQjtMbDswO0w7PGZvbnQ+IDAwNjI7Ozs7Tjs7Ozs7CisxRDRFQztNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgQztMbDswO0w7PGZvbnQ+IDAwNjM7Ozs7Tjs7Ozs7CisxRDRFRDtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgRDtMbDswO0w7PGZvbnQ+IDAwNjQ7Ozs7Tjs7Ozs7CisxRDRFRTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgRTtMbDswO0w7PGZvbnQ+IDAwNjU7Ozs7Tjs7Ozs7CisxRDRFRjtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgRjtMbDswO0w7PGZvbnQ+IDAwNjY7Ozs7Tjs7Ozs7CisxRDRGMDtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgRztMbDswO0w7PGZvbnQ+IDAwNjc7Ozs7Tjs7Ozs7CisxRDRGMTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgSDtMbDswO0w7PGZvbnQ+IDAwNjg7Ozs7Tjs7Ozs7CisxRDRGMjtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgSTtMbDswO0w7PGZvbnQ+IDAwNjk7Ozs7Tjs7Ozs7CisxRDRGMztNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgSjtMbDswO0w7PGZvbnQ+IDAwNkE7Ozs7Tjs7Ozs7CisxRDRGNDtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgSztMbDswO0w7PGZvbnQ+IDAwNkI7Ozs7Tjs7Ozs7CisxRDRGNTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgTDtMbDswO0w7PGZvbnQ+IDAwNkM7Ozs7Tjs7Ozs7CisxRDRGNjtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgTTtMbDswO0w7PGZvbnQ+IDAwNkQ7Ozs7Tjs7Ozs7CisxRDRGNztNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgTjtMbDswO0w7PGZvbnQ+IDAwNkU7Ozs7Tjs7Ozs7CisxRDRGODtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgTztMbDswO0w7PGZvbnQ+IDAwNkY7Ozs7Tjs7Ozs7CisxRDRGOTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgUDtMbDswO0w7PGZvbnQ+IDAwNzA7Ozs7Tjs7Ozs7CisxRDRGQTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgUTtMbDswO0w7PGZvbnQ+IDAwNzE7Ozs7Tjs7Ozs7CisxRDRGQjtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgUjtMbDswO0w7PGZvbnQ+IDAwNzI7Ozs7Tjs7Ozs7CisxRDRGQztNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgUztMbDswO0w7PGZvbnQ+IDAwNzM7Ozs7Tjs7Ozs7CisxRDRGRDtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgVDtMbDswO0w7PGZvbnQ+IDAwNzQ7Ozs7Tjs7Ozs7CisxRDRGRTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgVTtMbDswO0w7PGZvbnQ+IDAwNzU7Ozs7Tjs7Ozs7CisxRDRGRjtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgVjtMbDswO0w7PGZvbnQ+IDAwNzY7Ozs7Tjs7Ozs7CisxRDUwMDtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgVztMbDswO0w7PGZvbnQ+IDAwNzc7Ozs7Tjs7Ozs7CisxRDUwMTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgWDtMbDswO0w7PGZvbnQ+IDAwNzg7Ozs7Tjs7Ozs7CisxRDUwMjtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgWTtMbDswO0w7PGZvbnQ+IDAwNzk7Ozs7Tjs7Ozs7CisxRDUwMztNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgWjtMbDswO0w7PGZvbnQ+IDAwN0E7Ozs7Tjs7Ozs7CisxRDUwNDtNQVRIRU1BVElDQUwgRlJBS1RVUiBDQVBJVEFMIEE7THU7MDtMOzxmb250PiAwMDQxOzs7O047Ozs7OworMUQ1MDU7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgQ0FQSVRBTCBCO0x1OzA7TDs8Zm9udD4gMDA0Mjs7OztOOzs7OzsKKzFENTA3O01BVEhFTUFUSUNBTCBGUkFLVFVSIENBUElUQUwgRDtMdTswO0w7PGZvbnQ+IDAwNDQ7Ozs7Tjs7Ozs7CisxRDUwODtNQVRIRU1BVElDQUwgRlJBS1RVUiBDQVBJVEFMIEU7THU7MDtMOzxmb250PiAwMDQ1Ozs7O047Ozs7OworMUQ1MDk7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgQ0FQSVRBTCBGO0x1OzA7TDs8Zm9udD4gMDA0Njs7OztOOzs7OzsKKzFENTBBO01BVEhFTUFUSUNBTCBGUkFLVFVSIENBUElUQUwgRztMdTswO0w7PGZvbnQ+IDAwNDc7Ozs7Tjs7Ozs7CisxRDUwRDtNQVRIRU1BVElDQUwgRlJBS1RVUiBDQVBJVEFMIEo7THU7MDtMOzxmb250PiAwMDRBOzs7O047Ozs7OworMUQ1MEU7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgQ0FQSVRBTCBLO0x1OzA7TDs8Zm9udD4gMDA0Qjs7OztOOzs7OzsKKzFENTBGO01BVEhFTUFUSUNBTCBGUkFLVFVSIENBUElUQUwgTDtMdTswO0w7PGZvbnQ+IDAwNEM7Ozs7Tjs7Ozs7CisxRDUxMDtNQVRIRU1BVElDQUwgRlJBS1RVUiBDQVBJVEFMIE07THU7MDtMOzxmb250PiAwMDREOzs7O047Ozs7OworMUQ1MTE7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgQ0FQSVRBTCBOO0x1OzA7TDs8Zm9udD4gMDA0RTs7OztOOzs7OzsKKzFENTEyO01BVEhFTUFUSUNBTCBGUkFLVFVSIENBUElUQUwgTztMdTswO0w7PGZvbnQ+IDAwNEY7Ozs7Tjs7Ozs7CisxRDUxMztNQVRIRU1BVElDQUwgRlJBS1RVUiBDQVBJVEFMIFA7THU7MDtMOzxmb250PiAwMDUwOzs7O047Ozs7OworMUQ1MTQ7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgQ0FQSVRBTCBRO0x1OzA7TDs8Zm9udD4gMDA1MTs7OztOOzs7OzsKKzFENTE2O01BVEhFTUFUSUNBTCBGUkFLVFVSIENBUElUQUwgUztMdTswO0w7PGZvbnQ+IDAwNTM7Ozs7Tjs7Ozs7CisxRDUxNztNQVRIRU1BVElDQUwgRlJBS1RVUiBDQVBJVEFMIFQ7THU7MDtMOzxmb250PiAwMDU0Ozs7O047Ozs7OworMUQ1MTg7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgQ0FQSVRBTCBVO0x1OzA7TDs8Zm9udD4gMDA1NTs7OztOOzs7OzsKKzFENTE5O01BVEhFTUFUSUNBTCBGUkFLVFVSIENBUElUQUwgVjtMdTswO0w7PGZvbnQ+IDAwNTY7Ozs7Tjs7Ozs7CisxRDUxQTtNQVRIRU1BVElDQUwgRlJBS1RVUiBDQVBJVEFMIFc7THU7MDtMOzxmb250PiAwMDU3Ozs7O047Ozs7OworMUQ1MUI7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgQ0FQSVRBTCBYO0x1OzA7TDs8Zm9udD4gMDA1ODs7OztOOzs7OzsKKzFENTFDO01BVEhFTUFUSUNBTCBGUkFLVFVSIENBUElUQUwgWTtMdTswO0w7PGZvbnQ+IDAwNTk7Ozs7Tjs7Ozs7CisxRDUxRTtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBBO0xsOzA7TDs8Zm9udD4gMDA2MTs7OztOOzs7OzsKKzFENTFGO01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIEI7TGw7MDtMOzxmb250PiAwMDYyOzs7O047Ozs7OworMUQ1MjA7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgQztMbDswO0w7PGZvbnQ+IDAwNjM7Ozs7Tjs7Ozs7CisxRDUyMTtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBEO0xsOzA7TDs8Zm9udD4gMDA2NDs7OztOOzs7OzsKKzFENTIyO01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIEU7TGw7MDtMOzxmb250PiAwMDY1Ozs7O047Ozs7OworMUQ1MjM7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgRjtMbDswO0w7PGZvbnQ+IDAwNjY7Ozs7Tjs7Ozs7CisxRDUyNDtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBHO0xsOzA7TDs8Zm9udD4gMDA2Nzs7OztOOzs7OzsKKzFENTI1O01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIEg7TGw7MDtMOzxmb250PiAwMDY4Ozs7O047Ozs7OworMUQ1MjY7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgSTtMbDswO0w7PGZvbnQ+IDAwNjk7Ozs7Tjs7Ozs7CisxRDUyNztNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBKO0xsOzA7TDs8Zm9udD4gMDA2QTs7OztOOzs7OzsKKzFENTI4O01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIEs7TGw7MDtMOzxmb250PiAwMDZCOzs7O047Ozs7OworMUQ1Mjk7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgTDtMbDswO0w7PGZvbnQ+IDAwNkM7Ozs7Tjs7Ozs7CisxRDUyQTtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBNO0xsOzA7TDs8Zm9udD4gMDA2RDs7OztOOzs7OzsKKzFENTJCO01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIE47TGw7MDtMOzxmb250PiAwMDZFOzs7O047Ozs7OworMUQ1MkM7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgTztMbDswO0w7PGZvbnQ+IDAwNkY7Ozs7Tjs7Ozs7CisxRDUyRDtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBQO0xsOzA7TDs8Zm9udD4gMDA3MDs7OztOOzs7OzsKKzFENTJFO01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIFE7TGw7MDtMOzxmb250PiAwMDcxOzs7O047Ozs7OworMUQ1MkY7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgUjtMbDswO0w7PGZvbnQ+IDAwNzI7Ozs7Tjs7Ozs7CisxRDUzMDtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBTO0xsOzA7TDs8Zm9udD4gMDA3Mzs7OztOOzs7OzsKKzFENTMxO01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIFQ7TGw7MDtMOzxmb250PiAwMDc0Ozs7O047Ozs7OworMUQ1MzI7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgVTtMbDswO0w7PGZvbnQ+IDAwNzU7Ozs7Tjs7Ozs7CisxRDUzMztNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBWO0xsOzA7TDs8Zm9udD4gMDA3Njs7OztOOzs7OzsKKzFENTM0O01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIFc7TGw7MDtMOzxmb250PiAwMDc3Ozs7O047Ozs7OworMUQ1MzU7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgWDtMbDswO0w7PGZvbnQ+IDAwNzg7Ozs7Tjs7Ozs7CisxRDUzNjtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBZO0xsOzA7TDs8Zm9udD4gMDA3OTs7OztOOzs7OzsKKzFENTM3O01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIFo7TGw7MDtMOzxmb250PiAwMDdBOzs7O047Ozs7OworMUQ1Mzg7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBBO0x1OzA7TDs8Zm9udD4gMDA0MTs7OztOOzs7OzsKKzFENTM5O01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIENBUElUQUwgQjtMdTswO0w7PGZvbnQ+IDAwNDI7Ozs7Tjs7Ozs7CisxRDUzQjtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBDQVBJVEFMIEQ7THU7MDtMOzxmb250PiAwMDQ0Ozs7O047Ozs7OworMUQ1M0M7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBFO0x1OzA7TDs8Zm9udD4gMDA0NTs7OztOOzs7OzsKKzFENTNEO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIENBUElUQUwgRjtMdTswO0w7PGZvbnQ+IDAwNDY7Ozs7Tjs7Ozs7CisxRDUzRTtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBDQVBJVEFMIEc7THU7MDtMOzxmb250PiAwMDQ3Ozs7O047Ozs7OworMUQ1NDA7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBJO0x1OzA7TDs8Zm9udD4gMDA0OTs7OztOOzs7OzsKKzFENTQxO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIENBUElUQUwgSjtMdTswO0w7PGZvbnQ+IDAwNEE7Ozs7Tjs7Ozs7CisxRDU0MjtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBDQVBJVEFMIEs7THU7MDtMOzxmb250PiAwMDRCOzs7O047Ozs7OworMUQ1NDM7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBMO0x1OzA7TDs8Zm9udD4gMDA0Qzs7OztOOzs7OzsKKzFENTQ0O01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIENBUElUQUwgTTtMdTswO0w7PGZvbnQ+IDAwNEQ7Ozs7Tjs7Ozs7CisxRDU0NjtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBDQVBJVEFMIE87THU7MDtMOzxmb250PiAwMDRGOzs7O047Ozs7OworMUQ1NEE7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBTO0x1OzA7TDs8Zm9udD4gMDA1Mzs7OztOOzs7OzsKKzFENTRCO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIENBUElUQUwgVDtMdTswO0w7PGZvbnQ+IDAwNTQ7Ozs7Tjs7Ozs7CisxRDU0QztNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBDQVBJVEFMIFU7THU7MDtMOzxmb250PiAwMDU1Ozs7O047Ozs7OworMUQ1NEQ7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBWO0x1OzA7TDs8Zm9udD4gMDA1Njs7OztOOzs7OzsKKzFENTRFO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIENBUElUQUwgVztMdTswO0w7PGZvbnQ+IDAwNTc7Ozs7Tjs7Ozs7CisxRDU0RjtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBDQVBJVEFMIFg7THU7MDtMOzxmb250PiAwMDU4Ozs7O047Ozs7OworMUQ1NTA7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBZO0x1OzA7TDs8Zm9udD4gMDA1OTs7OztOOzs7OzsKKzFENTUyO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIEE7TGw7MDtMOzxmb250PiAwMDYxOzs7O047Ozs7OworMUQ1NTM7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgQjtMbDswO0w7PGZvbnQ+IDAwNjI7Ozs7Tjs7Ozs7CisxRDU1NDtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBDO0xsOzA7TDs8Zm9udD4gMDA2Mzs7OztOOzs7OzsKKzFENTU1O01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIEQ7TGw7MDtMOzxmb250PiAwMDY0Ozs7O047Ozs7OworMUQ1NTY7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgRTtMbDswO0w7PGZvbnQ+IDAwNjU7Ozs7Tjs7Ozs7CisxRDU1NztNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBGO0xsOzA7TDs8Zm9udD4gMDA2Njs7OztOOzs7OzsKKzFENTU4O01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIEc7TGw7MDtMOzxmb250PiAwMDY3Ozs7O047Ozs7OworMUQ1NTk7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgSDtMbDswO0w7PGZvbnQ+IDAwNjg7Ozs7Tjs7Ozs7CisxRDU1QTtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBJO0xsOzA7TDs8Zm9udD4gMDA2OTs7OztOOzs7OzsKKzFENTVCO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIEo7TGw7MDtMOzxmb250PiAwMDZBOzs7O047Ozs7OworMUQ1NUM7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgSztMbDswO0w7PGZvbnQ+IDAwNkI7Ozs7Tjs7Ozs7CisxRDU1RDtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBMO0xsOzA7TDs8Zm9udD4gMDA2Qzs7OztOOzs7OzsKKzFENTVFO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIE07TGw7MDtMOzxmb250PiAwMDZEOzs7O047Ozs7OworMUQ1NUY7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgTjtMbDswO0w7PGZvbnQ+IDAwNkU7Ozs7Tjs7Ozs7CisxRDU2MDtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBPO0xsOzA7TDs8Zm9udD4gMDA2Rjs7OztOOzs7OzsKKzFENTYxO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIFA7TGw7MDtMOzxmb250PiAwMDcwOzs7O047Ozs7OworMUQ1NjI7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgUTtMbDswO0w7PGZvbnQ+IDAwNzE7Ozs7Tjs7Ozs7CisxRDU2MztNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBSO0xsOzA7TDs8Zm9udD4gMDA3Mjs7OztOOzs7OzsKKzFENTY0O01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIFM7TGw7MDtMOzxmb250PiAwMDczOzs7O047Ozs7OworMUQ1NjU7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgVDtMbDswO0w7PGZvbnQ+IDAwNzQ7Ozs7Tjs7Ozs7CisxRDU2NjtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBVO0xsOzA7TDs8Zm9udD4gMDA3NTs7OztOOzs7OzsKKzFENTY3O01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIFY7TGw7MDtMOzxmb250PiAwMDc2Ozs7O047Ozs7OworMUQ1Njg7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgVztMbDswO0w7PGZvbnQ+IDAwNzc7Ozs7Tjs7Ozs7CisxRDU2OTtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBYO0xsOzA7TDs8Zm9udD4gMDA3ODs7OztOOzs7OzsKKzFENTZBO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIFk7TGw7MDtMOzxmb250PiAwMDc5Ozs7O047Ozs7OworMUQ1NkI7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgWjtMbDswO0w7PGZvbnQ+IDAwN0E7Ozs7Tjs7Ozs7CisxRDU2QztNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgQTtMdTswO0w7PGZvbnQ+IDAwNDE7Ozs7Tjs7Ozs7CisxRDU2RDtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgQjtMdTswO0w7PGZvbnQ+IDAwNDI7Ozs7Tjs7Ozs7CisxRDU2RTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgQztMdTswO0w7PGZvbnQ+IDAwNDM7Ozs7Tjs7Ozs7CisxRDU2RjtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgRDtMdTswO0w7PGZvbnQ+IDAwNDQ7Ozs7Tjs7Ozs7CisxRDU3MDtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgRTtMdTswO0w7PGZvbnQ+IDAwNDU7Ozs7Tjs7Ozs7CisxRDU3MTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgRjtMdTswO0w7PGZvbnQ+IDAwNDY7Ozs7Tjs7Ozs7CisxRDU3MjtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgRztMdTswO0w7PGZvbnQ+IDAwNDc7Ozs7Tjs7Ozs7CisxRDU3MztNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgSDtMdTswO0w7PGZvbnQ+IDAwNDg7Ozs7Tjs7Ozs7CisxRDU3NDtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgSTtMdTswO0w7PGZvbnQ+IDAwNDk7Ozs7Tjs7Ozs7CisxRDU3NTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgSjtMdTswO0w7PGZvbnQ+IDAwNEE7Ozs7Tjs7Ozs7CisxRDU3NjtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgSztMdTswO0w7PGZvbnQ+IDAwNEI7Ozs7Tjs7Ozs7CisxRDU3NztNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgTDtMdTswO0w7PGZvbnQ+IDAwNEM7Ozs7Tjs7Ozs7CisxRDU3ODtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgTTtMdTswO0w7PGZvbnQ+IDAwNEQ7Ozs7Tjs7Ozs7CisxRDU3OTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgTjtMdTswO0w7PGZvbnQ+IDAwNEU7Ozs7Tjs7Ozs7CisxRDU3QTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgTztMdTswO0w7PGZvbnQ+IDAwNEY7Ozs7Tjs7Ozs7CisxRDU3QjtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgUDtMdTswO0w7PGZvbnQ+IDAwNTA7Ozs7Tjs7Ozs7CisxRDU3QztNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgUTtMdTswO0w7PGZvbnQ+IDAwNTE7Ozs7Tjs7Ozs7CisxRDU3RDtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgUjtMdTswO0w7PGZvbnQ+IDAwNTI7Ozs7Tjs7Ozs7CisxRDU3RTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgUztMdTswO0w7PGZvbnQ+IDAwNTM7Ozs7Tjs7Ozs7CisxRDU3RjtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgVDtMdTswO0w7PGZvbnQ+IDAwNTQ7Ozs7Tjs7Ozs7CisxRDU4MDtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgVTtMdTswO0w7PGZvbnQ+IDAwNTU7Ozs7Tjs7Ozs7CisxRDU4MTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgVjtMdTswO0w7PGZvbnQ+IDAwNTY7Ozs7Tjs7Ozs7CisxRDU4MjtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgVztMdTswO0w7PGZvbnQ+IDAwNTc7Ozs7Tjs7Ozs7CisxRDU4MztNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgWDtMdTswO0w7PGZvbnQ+IDAwNTg7Ozs7Tjs7Ozs7CisxRDU4NDtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgWTtMdTswO0w7PGZvbnQ+IDAwNTk7Ozs7Tjs7Ozs7CisxRDU4NTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgWjtMdTswO0w7PGZvbnQ+IDAwNUE7Ozs7Tjs7Ozs7CisxRDU4NjtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIEE7TGw7MDtMOzxmb250PiAwMDYxOzs7O047Ozs7OworMUQ1ODc7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBCO0xsOzA7TDs8Zm9udD4gMDA2Mjs7OztOOzs7OzsKKzFENTg4O01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgQztMbDswO0w7PGZvbnQ+IDAwNjM7Ozs7Tjs7Ozs7CisxRDU4OTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIEQ7TGw7MDtMOzxmb250PiAwMDY0Ozs7O047Ozs7OworMUQ1OEE7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBFO0xsOzA7TDs8Zm9udD4gMDA2NTs7OztOOzs7OzsKKzFENThCO01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgRjtMbDswO0w7PGZvbnQ+IDAwNjY7Ozs7Tjs7Ozs7CisxRDU4QztNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIEc7TGw7MDtMOzxmb250PiAwMDY3Ozs7O047Ozs7OworMUQ1OEQ7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBIO0xsOzA7TDs8Zm9udD4gMDA2ODs7OztOOzs7OzsKKzFENThFO01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgSTtMbDswO0w7PGZvbnQ+IDAwNjk7Ozs7Tjs7Ozs7CisxRDU4RjtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIEo7TGw7MDtMOzxmb250PiAwMDZBOzs7O047Ozs7OworMUQ1OTA7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBLO0xsOzA7TDs8Zm9udD4gMDA2Qjs7OztOOzs7OzsKKzFENTkxO01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgTDtMbDswO0w7PGZvbnQ+IDAwNkM7Ozs7Tjs7Ozs7CisxRDU5MjtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIE07TGw7MDtMOzxmb250PiAwMDZEOzs7O047Ozs7OworMUQ1OTM7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBOO0xsOzA7TDs8Zm9udD4gMDA2RTs7OztOOzs7OzsKKzFENTk0O01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgTztMbDswO0w7PGZvbnQ+IDAwNkY7Ozs7Tjs7Ozs7CisxRDU5NTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIFA7TGw7MDtMOzxmb250PiAwMDcwOzs7O047Ozs7OworMUQ1OTY7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBRO0xsOzA7TDs8Zm9udD4gMDA3MTs7OztOOzs7OzsKKzFENTk3O01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgUjtMbDswO0w7PGZvbnQ+IDAwNzI7Ozs7Tjs7Ozs7CisxRDU5ODtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIFM7TGw7MDtMOzxmb250PiAwMDczOzs7O047Ozs7OworMUQ1OTk7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBUO0xsOzA7TDs8Zm9udD4gMDA3NDs7OztOOzs7OzsKKzFENTlBO01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgVTtMbDswO0w7PGZvbnQ+IDAwNzU7Ozs7Tjs7Ozs7CisxRDU5QjtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIFY7TGw7MDtMOzxmb250PiAwMDc2Ozs7O047Ozs7OworMUQ1OUM7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBXO0xsOzA7TDs8Zm9udD4gMDA3Nzs7OztOOzs7OzsKKzFENTlEO01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgWDtMbDswO0w7PGZvbnQ+IDAwNzg7Ozs7Tjs7Ozs7CisxRDU5RTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIFk7TGw7MDtMOzxmb250PiAwMDc5Ozs7O047Ozs7OworMUQ1OUY7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBaO0xsOzA7TDs8Zm9udD4gMDA3QTs7OztOOzs7OzsKKzFENUEwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgQTtMdTswO0w7PGZvbnQ+IDAwNDE7Ozs7Tjs7Ozs7CisxRDVBMTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIEI7THU7MDtMOzxmb250PiAwMDQyOzs7O047Ozs7OworMUQ1QTI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBDO0x1OzA7TDs8Zm9udD4gMDA0Mzs7OztOOzs7OzsKKzFENUEzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgRDtMdTswO0w7PGZvbnQ+IDAwNDQ7Ozs7Tjs7Ozs7CisxRDVBNDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIEU7THU7MDtMOzxmb250PiAwMDQ1Ozs7O047Ozs7OworMUQ1QTU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBGO0x1OzA7TDs8Zm9udD4gMDA0Njs7OztOOzs7OzsKKzFENUE2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgRztMdTswO0w7PGZvbnQ+IDAwNDc7Ozs7Tjs7Ozs7CisxRDVBNztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIEg7THU7MDtMOzxmb250PiAwMDQ4Ozs7O047Ozs7OworMUQ1QTg7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBJO0x1OzA7TDs8Zm9udD4gMDA0OTs7OztOOzs7OzsKKzFENUE5O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgSjtMdTswO0w7PGZvbnQ+IDAwNEE7Ozs7Tjs7Ozs7CisxRDVBQTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIEs7THU7MDtMOzxmb250PiAwMDRCOzs7O047Ozs7OworMUQ1QUI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBMO0x1OzA7TDs8Zm9udD4gMDA0Qzs7OztOOzs7OzsKKzFENUFDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgTTtMdTswO0w7PGZvbnQ+IDAwNEQ7Ozs7Tjs7Ozs7CisxRDVBRDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIE47THU7MDtMOzxmb250PiAwMDRFOzs7O047Ozs7OworMUQ1QUU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBPO0x1OzA7TDs8Zm9udD4gMDA0Rjs7OztOOzs7OzsKKzFENUFGO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgUDtMdTswO0w7PGZvbnQ+IDAwNTA7Ozs7Tjs7Ozs7CisxRDVCMDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIFE7THU7MDtMOzxmb250PiAwMDUxOzs7O047Ozs7OworMUQ1QjE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBSO0x1OzA7TDs8Zm9udD4gMDA1Mjs7OztOOzs7OzsKKzFENUIyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgUztMdTswO0w7PGZvbnQ+IDAwNTM7Ozs7Tjs7Ozs7CisxRDVCMztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIFQ7THU7MDtMOzxmb250PiAwMDU0Ozs7O047Ozs7OworMUQ1QjQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBVO0x1OzA7TDs8Zm9udD4gMDA1NTs7OztOOzs7OzsKKzFENUI1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgVjtMdTswO0w7PGZvbnQ+IDAwNTY7Ozs7Tjs7Ozs7CisxRDVCNjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIFc7THU7MDtMOzxmb250PiAwMDU3Ozs7O047Ozs7OworMUQ1Qjc7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBYO0x1OzA7TDs8Zm9udD4gMDA1ODs7OztOOzs7OzsKKzFENUI4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgWTtMdTswO0w7PGZvbnQ+IDAwNTk7Ozs7Tjs7Ozs7CisxRDVCOTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIFo7THU7MDtMOzxmb250PiAwMDVBOzs7O047Ozs7OworMUQ1QkE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgQTtMbDswO0w7PGZvbnQ+IDAwNjE7Ozs7Tjs7Ozs7CisxRDVCQjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBCO0xsOzA7TDs8Zm9udD4gMDA2Mjs7OztOOzs7OzsKKzFENUJDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIEM7TGw7MDtMOzxmb250PiAwMDYzOzs7O047Ozs7OworMUQ1QkQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgRDtMbDswO0w7PGZvbnQ+IDAwNjQ7Ozs7Tjs7Ozs7CisxRDVCRTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBFO0xsOzA7TDs8Zm9udD4gMDA2NTs7OztOOzs7OzsKKzFENUJGO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIEY7TGw7MDtMOzxmb250PiAwMDY2Ozs7O047Ozs7OworMUQ1QzA7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgRztMbDswO0w7PGZvbnQ+IDAwNjc7Ozs7Tjs7Ozs7CisxRDVDMTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBIO0xsOzA7TDs8Zm9udD4gMDA2ODs7OztOOzs7OzsKKzFENUMyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIEk7TGw7MDtMOzxmb250PiAwMDY5Ozs7O047Ozs7OworMUQ1QzM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgSjtMbDswO0w7PGZvbnQ+IDAwNkE7Ozs7Tjs7Ozs7CisxRDVDNDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBLO0xsOzA7TDs8Zm9udD4gMDA2Qjs7OztOOzs7OzsKKzFENUM1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIEw7TGw7MDtMOzxmb250PiAwMDZDOzs7O047Ozs7OworMUQ1QzY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgTTtMbDswO0w7PGZvbnQ+IDAwNkQ7Ozs7Tjs7Ozs7CisxRDVDNztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBOO0xsOzA7TDs8Zm9udD4gMDA2RTs7OztOOzs7OzsKKzFENUM4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIE87TGw7MDtMOzxmb250PiAwMDZGOzs7O047Ozs7OworMUQ1Qzk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgUDtMbDswO0w7PGZvbnQ+IDAwNzA7Ozs7Tjs7Ozs7CisxRDVDQTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBRO0xsOzA7TDs8Zm9udD4gMDA3MTs7OztOOzs7OzsKKzFENUNCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIFI7TGw7MDtMOzxmb250PiAwMDcyOzs7O047Ozs7OworMUQ1Q0M7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgUztMbDswO0w7PGZvbnQ+IDAwNzM7Ozs7Tjs7Ozs7CisxRDVDRDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBUO0xsOzA7TDs8Zm9udD4gMDA3NDs7OztOOzs7OzsKKzFENUNFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIFU7TGw7MDtMOzxmb250PiAwMDc1Ozs7O047Ozs7OworMUQ1Q0Y7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgVjtMbDswO0w7PGZvbnQ+IDAwNzY7Ozs7Tjs7Ozs7CisxRDVEMDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBXO0xsOzA7TDs8Zm9udD4gMDA3Nzs7OztOOzs7OzsKKzFENUQxO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIFg7TGw7MDtMOzxmb250PiAwMDc4Ozs7O047Ozs7OworMUQ1RDI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgWTtMbDswO0w7PGZvbnQ+IDAwNzk7Ozs7Tjs7Ozs7CisxRDVEMztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBaO0xsOzA7TDs8Zm9udD4gMDA3QTs7OztOOzs7OzsKKzFENUQ0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBBO0x1OzA7TDs8Zm9udD4gMDA0MTs7OztOOzs7OzsKKzFENUQ1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBCO0x1OzA7TDs8Zm9udD4gMDA0Mjs7OztOOzs7OzsKKzFENUQ2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBDO0x1OzA7TDs8Zm9udD4gMDA0Mzs7OztOOzs7OzsKKzFENUQ3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBEO0x1OzA7TDs8Zm9udD4gMDA0NDs7OztOOzs7OzsKKzFENUQ4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBFO0x1OzA7TDs8Zm9udD4gMDA0NTs7OztOOzs7OzsKKzFENUQ5O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBGO0x1OzA7TDs8Zm9udD4gMDA0Njs7OztOOzs7OzsKKzFENURBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBHO0x1OzA7TDs8Zm9udD4gMDA0Nzs7OztOOzs7OzsKKzFENURCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBIO0x1OzA7TDs8Zm9udD4gMDA0ODs7OztOOzs7OzsKKzFENURDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBJO0x1OzA7TDs8Zm9udD4gMDA0OTs7OztOOzs7OzsKKzFENUREO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBKO0x1OzA7TDs8Zm9udD4gMDA0QTs7OztOOzs7OzsKKzFENURFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBLO0x1OzA7TDs8Zm9udD4gMDA0Qjs7OztOOzs7OzsKKzFENURGO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBMO0x1OzA7TDs8Zm9udD4gMDA0Qzs7OztOOzs7OzsKKzFENUUwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBNO0x1OzA7TDs8Zm9udD4gMDA0RDs7OztOOzs7OzsKKzFENUUxO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBOO0x1OzA7TDs8Zm9udD4gMDA0RTs7OztOOzs7OzsKKzFENUUyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBPO0x1OzA7TDs8Zm9udD4gMDA0Rjs7OztOOzs7OzsKKzFENUUzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBQO0x1OzA7TDs8Zm9udD4gMDA1MDs7OztOOzs7OzsKKzFENUU0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBRO0x1OzA7TDs8Zm9udD4gMDA1MTs7OztOOzs7OzsKKzFENUU1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBSO0x1OzA7TDs8Zm9udD4gMDA1Mjs7OztOOzs7OzsKKzFENUU2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBTO0x1OzA7TDs8Zm9udD4gMDA1Mzs7OztOOzs7OzsKKzFENUU3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBUO0x1OzA7TDs8Zm9udD4gMDA1NDs7OztOOzs7OzsKKzFENUU4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBVO0x1OzA7TDs8Zm9udD4gMDA1NTs7OztOOzs7OzsKKzFENUU5O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBWO0x1OzA7TDs8Zm9udD4gMDA1Njs7OztOOzs7OzsKKzFENUVBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBXO0x1OzA7TDs8Zm9udD4gMDA1Nzs7OztOOzs7OzsKKzFENUVCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBYO0x1OzA7TDs8Zm9udD4gMDA1ODs7OztOOzs7OzsKKzFENUVDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBZO0x1OzA7TDs8Zm9udD4gMDA1OTs7OztOOzs7OzsKKzFENUVEO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBaO0x1OzA7TDs8Zm9udD4gMDA1QTs7OztOOzs7OzsKKzFENUVFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgQTtMbDswO0w7PGZvbnQ+IDAwNjE7Ozs7Tjs7Ozs7CisxRDVFRjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIEI7TGw7MDtMOzxmb250PiAwMDYyOzs7O047Ozs7OworMUQ1RjA7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBDO0xsOzA7TDs8Zm9udD4gMDA2Mzs7OztOOzs7OzsKKzFENUYxO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgRDtMbDswO0w7PGZvbnQ+IDAwNjQ7Ozs7Tjs7Ozs7CisxRDVGMjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIEU7TGw7MDtMOzxmb250PiAwMDY1Ozs7O047Ozs7OworMUQ1RjM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBGO0xsOzA7TDs8Zm9udD4gMDA2Njs7OztOOzs7OzsKKzFENUY0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgRztMbDswO0w7PGZvbnQ+IDAwNjc7Ozs7Tjs7Ozs7CisxRDVGNTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIEg7TGw7MDtMOzxmb250PiAwMDY4Ozs7O047Ozs7OworMUQ1RjY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBJO0xsOzA7TDs8Zm9udD4gMDA2OTs7OztOOzs7OzsKKzFENUY3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgSjtMbDswO0w7PGZvbnQ+IDAwNkE7Ozs7Tjs7Ozs7CisxRDVGODtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIEs7TGw7MDtMOzxmb250PiAwMDZCOzs7O047Ozs7OworMUQ1Rjk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBMO0xsOzA7TDs8Zm9udD4gMDA2Qzs7OztOOzs7OzsKKzFENUZBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgTTtMbDswO0w7PGZvbnQ+IDAwNkQ7Ozs7Tjs7Ozs7CisxRDVGQjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIE47TGw7MDtMOzxmb250PiAwMDZFOzs7O047Ozs7OworMUQ1RkM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBPO0xsOzA7TDs8Zm9udD4gMDA2Rjs7OztOOzs7OzsKKzFENUZEO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgUDtMbDswO0w7PGZvbnQ+IDAwNzA7Ozs7Tjs7Ozs7CisxRDVGRTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIFE7TGw7MDtMOzxmb250PiAwMDcxOzs7O047Ozs7OworMUQ1RkY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBSO0xsOzA7TDs8Zm9udD4gMDA3Mjs7OztOOzs7OzsKKzFENjAwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgUztMbDswO0w7PGZvbnQ+IDAwNzM7Ozs7Tjs7Ozs7CisxRDYwMTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIFQ7TGw7MDtMOzxmb250PiAwMDc0Ozs7O047Ozs7OworMUQ2MDI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBVO0xsOzA7TDs8Zm9udD4gMDA3NTs7OztOOzs7OzsKKzFENjAzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgVjtMbDswO0w7PGZvbnQ+IDAwNzY7Ozs7Tjs7Ozs7CisxRDYwNDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIFc7TGw7MDtMOzxmb250PiAwMDc3Ozs7O047Ozs7OworMUQ2MDU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBYO0xsOzA7TDs8Zm9udD4gMDA3ODs7OztOOzs7OzsKKzFENjA2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgWTtMbDswO0w7PGZvbnQ+IDAwNzk7Ozs7Tjs7Ozs7CisxRDYwNztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIFo7TGw7MDtMOzxmb250PiAwMDdBOzs7O047Ozs7OworMUQ2MDg7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgQTtMdTswO0w7PGZvbnQ+IDAwNDE7Ozs7Tjs7Ozs7CisxRDYwOTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBCO0x1OzA7TDs8Zm9udD4gMDA0Mjs7OztOOzs7OzsKKzFENjBBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIEM7THU7MDtMOzxmb250PiAwMDQzOzs7O047Ozs7OworMUQ2MEI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgRDtMdTswO0w7PGZvbnQ+IDAwNDQ7Ozs7Tjs7Ozs7CisxRDYwQztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBFO0x1OzA7TDs8Zm9udD4gMDA0NTs7OztOOzs7OzsKKzFENjBEO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIEY7THU7MDtMOzxmb250PiAwMDQ2Ozs7O047Ozs7OworMUQ2MEU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgRztMdTswO0w7PGZvbnQ+IDAwNDc7Ozs7Tjs7Ozs7CisxRDYwRjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBIO0x1OzA7TDs8Zm9udD4gMDA0ODs7OztOOzs7OzsKKzFENjEwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIEk7THU7MDtMOzxmb250PiAwMDQ5Ozs7O047Ozs7OworMUQ2MTE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgSjtMdTswO0w7PGZvbnQ+IDAwNEE7Ozs7Tjs7Ozs7CisxRDYxMjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBLO0x1OzA7TDs8Zm9udD4gMDA0Qjs7OztOOzs7OzsKKzFENjEzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIEw7THU7MDtMOzxmb250PiAwMDRDOzs7O047Ozs7OworMUQ2MTQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgTTtMdTswO0w7PGZvbnQ+IDAwNEQ7Ozs7Tjs7Ozs7CisxRDYxNTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBOO0x1OzA7TDs8Zm9udD4gMDA0RTs7OztOOzs7OzsKKzFENjE2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIE87THU7MDtMOzxmb250PiAwMDRGOzs7O047Ozs7OworMUQ2MTc7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgUDtMdTswO0w7PGZvbnQ+IDAwNTA7Ozs7Tjs7Ozs7CisxRDYxODtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBRO0x1OzA7TDs8Zm9udD4gMDA1MTs7OztOOzs7OzsKKzFENjE5O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIFI7THU7MDtMOzxmb250PiAwMDUyOzs7O047Ozs7OworMUQ2MUE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgUztMdTswO0w7PGZvbnQ+IDAwNTM7Ozs7Tjs7Ozs7CisxRDYxQjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBUO0x1OzA7TDs8Zm9udD4gMDA1NDs7OztOOzs7OzsKKzFENjFDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIFU7THU7MDtMOzxmb250PiAwMDU1Ozs7O047Ozs7OworMUQ2MUQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgVjtMdTswO0w7PGZvbnQ+IDAwNTY7Ozs7Tjs7Ozs7CisxRDYxRTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBXO0x1OzA7TDs8Zm9udD4gMDA1Nzs7OztOOzs7OzsKKzFENjFGO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIFg7THU7MDtMOzxmb250PiAwMDU4Ozs7O047Ozs7OworMUQ2MjA7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgWTtMdTswO0w7PGZvbnQ+IDAwNTk7Ozs7Tjs7Ozs7CisxRDYyMTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBaO0x1OzA7TDs8Zm9udD4gMDA1QTs7OztOOzs7OzsKKzFENjIyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBBO0xsOzA7TDs8Zm9udD4gMDA2MTs7OztOOzs7OzsKKzFENjIzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBCO0xsOzA7TDs8Zm9udD4gMDA2Mjs7OztOOzs7OzsKKzFENjI0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBDO0xsOzA7TDs8Zm9udD4gMDA2Mzs7OztOOzs7OzsKKzFENjI1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBEO0xsOzA7TDs8Zm9udD4gMDA2NDs7OztOOzs7OzsKKzFENjI2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBFO0xsOzA7TDs8Zm9udD4gMDA2NTs7OztOOzs7OzsKKzFENjI3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBGO0xsOzA7TDs8Zm9udD4gMDA2Njs7OztOOzs7OzsKKzFENjI4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBHO0xsOzA7TDs8Zm9udD4gMDA2Nzs7OztOOzs7OzsKKzFENjI5O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBIO0xsOzA7TDs8Zm9udD4gMDA2ODs7OztOOzs7OzsKKzFENjJBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBJO0xsOzA7TDs8Zm9udD4gMDA2OTs7OztOOzs7OzsKKzFENjJCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBKO0xsOzA7TDs8Zm9udD4gMDA2QTs7OztOOzs7OzsKKzFENjJDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBLO0xsOzA7TDs8Zm9udD4gMDA2Qjs7OztOOzs7OzsKKzFENjJEO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBMO0xsOzA7TDs8Zm9udD4gMDA2Qzs7OztOOzs7OzsKKzFENjJFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBNO0xsOzA7TDs8Zm9udD4gMDA2RDs7OztOOzs7OzsKKzFENjJGO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBOO0xsOzA7TDs8Zm9udD4gMDA2RTs7OztOOzs7OzsKKzFENjMwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBPO0xsOzA7TDs8Zm9udD4gMDA2Rjs7OztOOzs7OzsKKzFENjMxO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBQO0xsOzA7TDs8Zm9udD4gMDA3MDs7OztOOzs7OzsKKzFENjMyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBRO0xsOzA7TDs8Zm9udD4gMDA3MTs7OztOOzs7OzsKKzFENjMzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBSO0xsOzA7TDs8Zm9udD4gMDA3Mjs7OztOOzs7OzsKKzFENjM0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBTO0xsOzA7TDs8Zm9udD4gMDA3Mzs7OztOOzs7OzsKKzFENjM1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBUO0xsOzA7TDs8Zm9udD4gMDA3NDs7OztOOzs7OzsKKzFENjM2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBVO0xsOzA7TDs8Zm9udD4gMDA3NTs7OztOOzs7OzsKKzFENjM3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBWO0xsOzA7TDs8Zm9udD4gMDA3Njs7OztOOzs7OzsKKzFENjM4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBXO0xsOzA7TDs8Zm9udD4gMDA3Nzs7OztOOzs7OzsKKzFENjM5O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBYO0xsOzA7TDs8Zm9udD4gMDA3ODs7OztOOzs7OzsKKzFENjNBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBZO0xsOzA7TDs8Zm9udD4gMDA3OTs7OztOOzs7OzsKKzFENjNCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBaO0xsOzA7TDs8Zm9udD4gMDA3QTs7OztOOzs7OzsKKzFENjNDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgQTtMdTswO0w7PGZvbnQ+IDAwNDE7Ozs7Tjs7Ozs7CisxRDYzRDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIEI7THU7MDtMOzxmb250PiAwMDQyOzs7O047Ozs7OworMUQ2M0U7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBDO0x1OzA7TDs8Zm9udD4gMDA0Mzs7OztOOzs7OzsKKzFENjNGO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgRDtMdTswO0w7PGZvbnQ+IDAwNDQ7Ozs7Tjs7Ozs7CisxRDY0MDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIEU7THU7MDtMOzxmb250PiAwMDQ1Ozs7O047Ozs7OworMUQ2NDE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBGO0x1OzA7TDs8Zm9udD4gMDA0Njs7OztOOzs7OzsKKzFENjQyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgRztMdTswO0w7PGZvbnQ+IDAwNDc7Ozs7Tjs7Ozs7CisxRDY0MztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIEg7THU7MDtMOzxmb250PiAwMDQ4Ozs7O047Ozs7OworMUQ2NDQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBJO0x1OzA7TDs8Zm9udD4gMDA0OTs7OztOOzs7OzsKKzFENjQ1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgSjtMdTswO0w7PGZvbnQ+IDAwNEE7Ozs7Tjs7Ozs7CisxRDY0NjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIEs7THU7MDtMOzxmb250PiAwMDRCOzs7O047Ozs7OworMUQ2NDc7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBMO0x1OzA7TDs8Zm9udD4gMDA0Qzs7OztOOzs7OzsKKzFENjQ4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgTTtMdTswO0w7PGZvbnQ+IDAwNEQ7Ozs7Tjs7Ozs7CisxRDY0OTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIE47THU7MDtMOzxmb250PiAwMDRFOzs7O047Ozs7OworMUQ2NEE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBPO0x1OzA7TDs8Zm9udD4gMDA0Rjs7OztOOzs7OzsKKzFENjRCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgUDtMdTswO0w7PGZvbnQ+IDAwNTA7Ozs7Tjs7Ozs7CisxRDY0QztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFE7THU7MDtMOzxmb250PiAwMDUxOzs7O047Ozs7OworMUQ2NEQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBSO0x1OzA7TDs8Zm9udD4gMDA1Mjs7OztOOzs7OzsKKzFENjRFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgUztMdTswO0w7PGZvbnQ+IDAwNTM7Ozs7Tjs7Ozs7CisxRDY0RjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFQ7THU7MDtMOzxmb250PiAwMDU0Ozs7O047Ozs7OworMUQ2NTA7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBVO0x1OzA7TDs8Zm9udD4gMDA1NTs7OztOOzs7OzsKKzFENjUxO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgVjtMdTswO0w7PGZvbnQ+IDAwNTY7Ozs7Tjs7Ozs7CisxRDY1MjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFc7THU7MDtMOzxmb250PiAwMDU3Ozs7O047Ozs7OworMUQ2NTM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBYO0x1OzA7TDs8Zm9udD4gMDA1ODs7OztOOzs7OzsKKzFENjU0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgWTtMdTswO0w7PGZvbnQ+IDAwNTk7Ozs7Tjs7Ozs7CisxRDY1NTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFo7THU7MDtMOzxmb250PiAwMDVBOzs7O047Ozs7OworMUQ2NTY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgQTtMbDswO0w7PGZvbnQ+IDAwNjE7Ozs7Tjs7Ozs7CisxRDY1NztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBCO0xsOzA7TDs8Zm9udD4gMDA2Mjs7OztOOzs7OzsKKzFENjU4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIEM7TGw7MDtMOzxmb250PiAwMDYzOzs7O047Ozs7OworMUQ2NTk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgRDtMbDswO0w7PGZvbnQ+IDAwNjQ7Ozs7Tjs7Ozs7CisxRDY1QTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBFO0xsOzA7TDs8Zm9udD4gMDA2NTs7OztOOzs7OzsKKzFENjVCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIEY7TGw7MDtMOzxmb250PiAwMDY2Ozs7O047Ozs7OworMUQ2NUM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgRztMbDswO0w7PGZvbnQ+IDAwNjc7Ozs7Tjs7Ozs7CisxRDY1RDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBIO0xsOzA7TDs8Zm9udD4gMDA2ODs7OztOOzs7OzsKKzFENjVFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIEk7TGw7MDtMOzxmb250PiAwMDY5Ozs7O047Ozs7OworMUQ2NUY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgSjtMbDswO0w7PGZvbnQ+IDAwNkE7Ozs7Tjs7Ozs7CisxRDY2MDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBLO0xsOzA7TDs8Zm9udD4gMDA2Qjs7OztOOzs7OzsKKzFENjYxO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIEw7TGw7MDtMOzxmb250PiAwMDZDOzs7O047Ozs7OworMUQ2NjI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgTTtMbDswO0w7PGZvbnQ+IDAwNkQ7Ozs7Tjs7Ozs7CisxRDY2MztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBOO0xsOzA7TDs8Zm9udD4gMDA2RTs7OztOOzs7OzsKKzFENjY0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIE87TGw7MDtMOzxmb250PiAwMDZGOzs7O047Ozs7OworMUQ2NjU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgUDtMbDswO0w7PGZvbnQ+IDAwNzA7Ozs7Tjs7Ozs7CisxRDY2NjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBRO0xsOzA7TDs8Zm9udD4gMDA3MTs7OztOOzs7OzsKKzFENjY3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIFI7TGw7MDtMOzxmb250PiAwMDcyOzs7O047Ozs7OworMUQ2Njg7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgUztMbDswO0w7PGZvbnQ+IDAwNzM7Ozs7Tjs7Ozs7CisxRDY2OTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBUO0xsOzA7TDs8Zm9udD4gMDA3NDs7OztOOzs7OzsKKzFENjZBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIFU7TGw7MDtMOzxmb250PiAwMDc1Ozs7O047Ozs7OworMUQ2NkI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgVjtMbDswO0w7PGZvbnQ+IDAwNzY7Ozs7Tjs7Ozs7CisxRDY2QztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBXO0xsOzA7TDs8Zm9udD4gMDA3Nzs7OztOOzs7OzsKKzFENjZEO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIFg7TGw7MDtMOzxmb250PiAwMDc4Ozs7O047Ozs7OworMUQ2NkU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgWTtMbDswO0w7PGZvbnQ+IDAwNzk7Ozs7Tjs7Ozs7CisxRDY2RjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBaO0xsOzA7TDs8Zm9udD4gMDA3QTs7OztOOzs7OzsKKzFENjcwO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBBO0x1OzA7TDs8Zm9udD4gMDA0MTs7OztOOzs7OzsKKzFENjcxO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBCO0x1OzA7TDs8Zm9udD4gMDA0Mjs7OztOOzs7OzsKKzFENjcyO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBDO0x1OzA7TDs8Zm9udD4gMDA0Mzs7OztOOzs7OzsKKzFENjczO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBEO0x1OzA7TDs8Zm9udD4gMDA0NDs7OztOOzs7OzsKKzFENjc0O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBFO0x1OzA7TDs8Zm9udD4gMDA0NTs7OztOOzs7OzsKKzFENjc1O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBGO0x1OzA7TDs8Zm9udD4gMDA0Njs7OztOOzs7OzsKKzFENjc2O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBHO0x1OzA7TDs8Zm9udD4gMDA0Nzs7OztOOzs7OzsKKzFENjc3O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBIO0x1OzA7TDs8Zm9udD4gMDA0ODs7OztOOzs7OzsKKzFENjc4O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBJO0x1OzA7TDs8Zm9udD4gMDA0OTs7OztOOzs7OzsKKzFENjc5O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBKO0x1OzA7TDs8Zm9udD4gMDA0QTs7OztOOzs7OzsKKzFENjdBO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBLO0x1OzA7TDs8Zm9udD4gMDA0Qjs7OztOOzs7OzsKKzFENjdCO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBMO0x1OzA7TDs8Zm9udD4gMDA0Qzs7OztOOzs7OzsKKzFENjdDO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBNO0x1OzA7TDs8Zm9udD4gMDA0RDs7OztOOzs7OzsKKzFENjdEO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBOO0x1OzA7TDs8Zm9udD4gMDA0RTs7OztOOzs7OzsKKzFENjdFO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBPO0x1OzA7TDs8Zm9udD4gMDA0Rjs7OztOOzs7OzsKKzFENjdGO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBQO0x1OzA7TDs8Zm9udD4gMDA1MDs7OztOOzs7OzsKKzFENjgwO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBRO0x1OzA7TDs8Zm9udD4gMDA1MTs7OztOOzs7OzsKKzFENjgxO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBSO0x1OzA7TDs8Zm9udD4gMDA1Mjs7OztOOzs7OzsKKzFENjgyO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBTO0x1OzA7TDs8Zm9udD4gMDA1Mzs7OztOOzs7OzsKKzFENjgzO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBUO0x1OzA7TDs8Zm9udD4gMDA1NDs7OztOOzs7OzsKKzFENjg0O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBVO0x1OzA7TDs8Zm9udD4gMDA1NTs7OztOOzs7OzsKKzFENjg1O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBWO0x1OzA7TDs8Zm9udD4gMDA1Njs7OztOOzs7OzsKKzFENjg2O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBXO0x1OzA7TDs8Zm9udD4gMDA1Nzs7OztOOzs7OzsKKzFENjg3O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBYO0x1OzA7TDs8Zm9udD4gMDA1ODs7OztOOzs7OzsKKzFENjg4O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBZO0x1OzA7TDs8Zm9udD4gMDA1OTs7OztOOzs7OzsKKzFENjg5O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBaO0x1OzA7TDs8Zm9udD4gMDA1QTs7OztOOzs7OzsKKzFENjhBO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgQTtMbDswO0w7PGZvbnQ+IDAwNjE7Ozs7Tjs7Ozs7CisxRDY4QjtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIEI7TGw7MDtMOzxmb250PiAwMDYyOzs7O047Ozs7OworMUQ2OEM7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBDO0xsOzA7TDs8Zm9udD4gMDA2Mzs7OztOOzs7OzsKKzFENjhEO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgRDtMbDswO0w7PGZvbnQ+IDAwNjQ7Ozs7Tjs7Ozs7CisxRDY4RTtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIEU7TGw7MDtMOzxmb250PiAwMDY1Ozs7O047Ozs7OworMUQ2OEY7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBGO0xsOzA7TDs8Zm9udD4gMDA2Njs7OztOOzs7OzsKKzFENjkwO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgRztMbDswO0w7PGZvbnQ+IDAwNjc7Ozs7Tjs7Ozs7CisxRDY5MTtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIEg7TGw7MDtMOzxmb250PiAwMDY4Ozs7O047Ozs7OworMUQ2OTI7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBJO0xsOzA7TDs8Zm9udD4gMDA2OTs7OztOOzs7OzsKKzFENjkzO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgSjtMbDswO0w7PGZvbnQ+IDAwNkE7Ozs7Tjs7Ozs7CisxRDY5NDtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIEs7TGw7MDtMOzxmb250PiAwMDZCOzs7O047Ozs7OworMUQ2OTU7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBMO0xsOzA7TDs8Zm9udD4gMDA2Qzs7OztOOzs7OzsKKzFENjk2O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgTTtMbDswO0w7PGZvbnQ+IDAwNkQ7Ozs7Tjs7Ozs7CisxRDY5NztNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIE47TGw7MDtMOzxmb250PiAwMDZFOzs7O047Ozs7OworMUQ2OTg7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBPO0xsOzA7TDs8Zm9udD4gMDA2Rjs7OztOOzs7OzsKKzFENjk5O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgUDtMbDswO0w7PGZvbnQ+IDAwNzA7Ozs7Tjs7Ozs7CisxRDY5QTtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIFE7TGw7MDtMOzxmb250PiAwMDcxOzs7O047Ozs7OworMUQ2OUI7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBSO0xsOzA7TDs8Zm9udD4gMDA3Mjs7OztOOzs7OzsKKzFENjlDO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgUztMbDswO0w7PGZvbnQ+IDAwNzM7Ozs7Tjs7Ozs7CisxRDY5RDtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIFQ7TGw7MDtMOzxmb250PiAwMDc0Ozs7O047Ozs7OworMUQ2OUU7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBVO0xsOzA7TDs8Zm9udD4gMDA3NTs7OztOOzs7OzsKKzFENjlGO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgVjtMbDswO0w7PGZvbnQ+IDAwNzY7Ozs7Tjs7Ozs7CisxRDZBMDtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIFc7TGw7MDtMOzxmb250PiAwMDc3Ozs7O047Ozs7OworMUQ2QTE7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBYO0xsOzA7TDs8Zm9udD4gMDA3ODs7OztOOzs7OzsKKzFENkEyO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgWTtMbDswO0w7PGZvbnQ+IDAwNzk7Ozs7Tjs7Ozs7CisxRDZBMztNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIFo7TGw7MDtMOzxmb250PiAwMDdBOzs7O047Ozs7OworMUQ2QTg7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBBTFBIQTtMdTswO0w7PGZvbnQ+IDAzOTE7Ozs7Tjs7Ozs7CisxRDZBOTtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIEJFVEE7THU7MDtMOzxmb250PiAwMzkyOzs7O047Ozs7OworMUQ2QUE7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBHQU1NQTtMdTswO0w7PGZvbnQ+IDAzOTM7Ozs7Tjs7Ozs7CisxRDZBQjtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIERFTFRBO0x1OzA7TDs8Zm9udD4gMDM5NDs7OztOOzs7OzsKKzFENkFDO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgRVBTSUxPTjtMdTswO0w7PGZvbnQ+IDAzOTU7Ozs7Tjs7Ozs7CisxRDZBRDtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFpFVEE7THU7MDtMOzxmb250PiAwMzk2Ozs7O047Ozs7OworMUQ2QUU7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBFVEE7THU7MDtMOzxmb250PiAwMzk3Ozs7O047Ozs7OworMUQ2QUY7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBUSEVUQTtMdTswO0w7PGZvbnQ+IDAzOTg7Ozs7Tjs7Ozs7CisxRDZCMDtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIElPVEE7THU7MDtMOzxmb250PiAwMzk5Ozs7O047Ozs7OworMUQ2QjE7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBLQVBQQTtMdTswO0w7PGZvbnQ+IDAzOUE7Ozs7Tjs7Ozs7CisxRDZCMjtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIExBTURBO0x1OzA7TDs8Zm9udD4gMDM5Qjs7OztOOzs7OzsKKzFENkIzO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgTVU7THU7MDtMOzxmb250PiAwMzlDOzs7O047Ozs7OworMUQ2QjQ7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBOVTtMdTswO0w7PGZvbnQ+IDAzOUQ7Ozs7Tjs7Ozs7CisxRDZCNTtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFhJO0x1OzA7TDs8Zm9udD4gMDM5RTs7OztOOzs7OzsKKzFENkI2O01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgT01JQ1JPTjtMdTswO0w7PGZvbnQ+IDAzOUY7Ozs7Tjs7Ozs7CisxRDZCNztNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFBJO0x1OzA7TDs8Zm9udD4gMDNBMDs7OztOOzs7OzsKKzFENkI4O01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgUkhPO0x1OzA7TDs8Zm9udD4gMDNBMTs7OztOOzs7OzsKKzFENkI5O01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgVEhFVEEgU1lNQk9MO0x1OzA7TDs8Zm9udD4gMDNGNDs7OztOOzs7OzsKKzFENkJBO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgU0lHTUE7THU7MDtMOzxmb250PiAwM0EzOzs7O047Ozs7OworMUQ2QkI7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBUQVU7THU7MDtMOzxmb250PiAwM0E0Ozs7O047Ozs7OworMUQ2QkM7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBVUFNJTE9OO0x1OzA7TDs8Zm9udD4gMDNBNTs7OztOOzs7OzsKKzFENkJEO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgUEhJO0x1OzA7TDs8Zm9udD4gMDNBNjs7OztOOzs7OzsKKzFENkJFO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgQ0hJO0x1OzA7TDs8Zm9udD4gMDNBNzs7OztOOzs7OzsKKzFENkJGO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgUFNJO0x1OzA7TDs8Zm9udD4gMDNBODs7OztOOzs7OzsKKzFENkMwO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgT01FR0E7THU7MDtMOzxmb250PiAwM0E5Ozs7O047Ozs7OworMUQ2QzE7TUFUSEVNQVRJQ0FMIEJPTEQgTkFCTEE7U207MDtMOzxmb250PiAyMjA3Ozs7O047Ozs7OworMUQ2QzI7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgQUxQSEE7TGw7MDtMOzxmb250PiAwM0IxOzs7O047Ozs7OworMUQ2QzM7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgQkVUQTtMbDswO0w7PGZvbnQ+IDAzQjI7Ozs7Tjs7Ozs7CisxRDZDNDtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBHQU1NQTtMbDswO0w7PGZvbnQ+IDAzQjM7Ozs7Tjs7Ozs7CisxRDZDNTtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBERUxUQTtMbDswO0w7PGZvbnQ+IDAzQjQ7Ozs7Tjs7Ozs7CisxRDZDNjtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBFUFNJTE9OO0xsOzA7TDs8Zm9udD4gMDNCNTs7OztOOzs7OzsKKzFENkM3O01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIFpFVEE7TGw7MDtMOzxmb250PiAwM0I2Ozs7O047Ozs7OworMUQ2Qzg7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgRVRBO0xsOzA7TDs8Zm9udD4gMDNCNzs7OztOOzs7OzsKKzFENkM5O01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIFRIRVRBO0xsOzA7TDs8Zm9udD4gMDNCODs7OztOOzs7OzsKKzFENkNBO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIElPVEE7TGw7MDtMOzxmb250PiAwM0I5Ozs7O047Ozs7OworMUQ2Q0I7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgS0FQUEE7TGw7MDtMOzxmb250PiAwM0JBOzs7O047Ozs7OworMUQ2Q0M7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgTEFNREE7TGw7MDtMOzxmb250PiAwM0JCOzs7O047Ozs7OworMUQ2Q0Q7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgTVU7TGw7MDtMOzxmb250PiAwM0JDOzs7O047Ozs7OworMUQ2Q0U7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgTlU7TGw7MDtMOzxmb250PiAwM0JEOzs7O047Ozs7OworMUQ2Q0Y7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgWEk7TGw7MDtMOzxmb250PiAwM0JFOzs7O047Ozs7OworMUQ2RDA7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgT01JQ1JPTjtMbDswO0w7PGZvbnQ+IDAzQkY7Ozs7Tjs7Ozs7CisxRDZEMTtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBQSTtMbDswO0w7PGZvbnQ+IDAzQzA7Ozs7Tjs7Ozs7CisxRDZEMjtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBSSE87TGw7MDtMOzxmb250PiAwM0MxOzs7O047Ozs7OworMUQ2RDM7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgRklOQUwgU0lHTUE7TGw7MDtMOzxmb250PiAwM0MyOzs7O047Ozs7OworMUQ2RDQ7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgU0lHTUE7TGw7MDtMOzxmb250PiAwM0MzOzs7O047Ozs7OworMUQ2RDU7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgVEFVO0xsOzA7TDs8Zm9udD4gMDNDNDs7OztOOzs7OzsKKzFENkQ2O01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIFVQU0lMT047TGw7MDtMOzxmb250PiAwM0M1Ozs7O047Ozs7OworMUQ2RDc7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgUEhJO0xsOzA7TDs8Zm9udD4gMDNDNjs7OztOOzs7OzsKKzFENkQ4O01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIENISTtMbDswO0w7PGZvbnQ+IDAzQzc7Ozs7Tjs7Ozs7CisxRDZEOTtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBQU0k7TGw7MDtMOzxmb250PiAwM0M4Ozs7O047Ozs7OworMUQ2REE7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgT01FR0E7TGw7MDtMOzxmb250PiAwM0M5Ozs7O047Ozs7OworMUQ2REI7TUFUSEVNQVRJQ0FMIEJPTEQgUEFSVElBTCBESUZGRVJFTlRJQUw7U207MDtMOzxmb250PiAyMjAyOzs7O047Ozs7OworMUQ2REM7TUFUSEVNQVRJQ0FMIEJPTEQgRVBTSUxPTiBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0Y1Ozs7O047Ozs7OworMUQ2REQ7TUFUSEVNQVRJQ0FMIEJPTEQgVEhFVEEgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNEMTs7OztOOzs7OzsKKzFENkRFO01BVEhFTUFUSUNBTCBCT0xEIEtBUFBBIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRjA7Ozs7Tjs7Ozs7CisxRDZERjtNQVRIRU1BVElDQUwgQk9MRCBQSEkgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNENTs7OztOOzs7OzsKKzFENkUwO01BVEhFTUFUSUNBTCBCT0xEIFJITyBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0YxOzs7O047Ozs7OworMUQ2RTE7TUFUSEVNQVRJQ0FMIEJPTEQgUEkgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNENjs7OztOOzs7OzsKKzFENkUyO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBBTFBIQTtMdTswO0w7PGZvbnQ+IDAzOTE7Ozs7Tjs7Ozs7CisxRDZFMztNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgQkVUQTtMdTswO0w7PGZvbnQ+IDAzOTI7Ozs7Tjs7Ozs7CisxRDZFNDtNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgR0FNTUE7THU7MDtMOzxmb250PiAwMzkzOzs7O047Ozs7OworMUQ2RTU7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIERFTFRBO0x1OzA7TDs8Zm9udD4gMDM5NDs7OztOOzs7OzsKKzFENkU2O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBFUFNJTE9OO0x1OzA7TDs8Zm9udD4gMDM5NTs7OztOOzs7OzsKKzFENkU3O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBaRVRBO0x1OzA7TDs8Zm9udD4gMDM5Njs7OztOOzs7OzsKKzFENkU4O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBFVEE7THU7MDtMOzxmb250PiAwMzk3Ozs7O047Ozs7OworMUQ2RTk7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIFRIRVRBO0x1OzA7TDs8Zm9udD4gMDM5ODs7OztOOzs7OzsKKzFENkVBO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBJT1RBO0x1OzA7TDs8Zm9udD4gMDM5OTs7OztOOzs7OzsKKzFENkVCO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBLQVBQQTtMdTswO0w7PGZvbnQ+IDAzOUE7Ozs7Tjs7Ozs7CisxRDZFQztNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgTEFNREE7THU7MDtMOzxmb250PiAwMzlCOzs7O047Ozs7OworMUQ2RUQ7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIE1VO0x1OzA7TDs8Zm9udD4gMDM5Qzs7OztOOzs7OzsKKzFENkVFO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBOVTtMdTswO0w7PGZvbnQ+IDAzOUQ7Ozs7Tjs7Ozs7CisxRDZFRjtNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgWEk7THU7MDtMOzxmb250PiAwMzlFOzs7O047Ozs7OworMUQ2RjA7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIE9NSUNST047THU7MDtMOzxmb250PiAwMzlGOzs7O047Ozs7OworMUQ2RjE7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIFBJO0x1OzA7TDs8Zm9udD4gMDNBMDs7OztOOzs7OzsKKzFENkYyO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBSSE87THU7MDtMOzxmb250PiAwM0ExOzs7O047Ozs7OworMUQ2RjM7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIFRIRVRBIFNZTUJPTDtMdTswO0w7PGZvbnQ+IDAzRjQ7Ozs7Tjs7Ozs7CisxRDZGNDtNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgU0lHTUE7THU7MDtMOzxmb250PiAwM0EzOzs7O047Ozs7OworMUQ2RjU7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIFRBVTtMdTswO0w7PGZvbnQ+IDAzQTQ7Ozs7Tjs7Ozs7CisxRDZGNjtNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgVVBTSUxPTjtMdTswO0w7PGZvbnQ+IDAzQTU7Ozs7Tjs7Ozs7CisxRDZGNztNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgUEhJO0x1OzA7TDs8Zm9udD4gMDNBNjs7OztOOzs7OzsKKzFENkY4O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBDSEk7THU7MDtMOzxmb250PiAwM0E3Ozs7O047Ozs7OworMUQ2Rjk7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIFBTSTtMdTswO0w7PGZvbnQ+IDAzQTg7Ozs7Tjs7Ozs7CisxRDZGQTtNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgT01FR0E7THU7MDtMOzxmb250PiAwM0E5Ozs7O047Ozs7OworMUQ2RkI7TUFUSEVNQVRJQ0FMIElUQUxJQyBOQUJMQTtTbTswO0w7PGZvbnQ+IDIyMDc7Ozs7Tjs7Ozs7CisxRDZGQztNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIEFMUEhBO0xsOzA7TDs8Zm9udD4gMDNCMTs7OztOOzs7OzsKKzFENkZEO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgQkVUQTtMbDswO0w7PGZvbnQ+IDAzQjI7Ozs7Tjs7Ozs7CisxRDZGRTtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIEdBTU1BO0xsOzA7TDs8Zm9udD4gMDNCMzs7OztOOzs7OzsKKzFENkZGO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgREVMVEE7TGw7MDtMOzxmb250PiAwM0I0Ozs7O047Ozs7OworMUQ3MDA7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBFUFNJTE9OO0xsOzA7TDs8Zm9udD4gMDNCNTs7OztOOzs7OzsKKzFENzAxO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgWkVUQTtMbDswO0w7PGZvbnQ+IDAzQjY7Ozs7Tjs7Ozs7CisxRDcwMjtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIEVUQTtMbDswO0w7PGZvbnQ+IDAzQjc7Ozs7Tjs7Ozs7CisxRDcwMztNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFRIRVRBO0xsOzA7TDs8Zm9udD4gMDNCODs7OztOOzs7OzsKKzFENzA0O01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgSU9UQTtMbDswO0w7PGZvbnQ+IDAzQjk7Ozs7Tjs7Ozs7CisxRDcwNTtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIEtBUFBBO0xsOzA7TDs8Zm9udD4gMDNCQTs7OztOOzs7OzsKKzFENzA2O01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgTEFNREE7TGw7MDtMOzxmb250PiAwM0JCOzs7O047Ozs7OworMUQ3MDc7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBNVTtMbDswO0w7PGZvbnQ+IDAzQkM7Ozs7Tjs7Ozs7CisxRDcwODtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIE5VO0xsOzA7TDs8Zm9udD4gMDNCRDs7OztOOzs7OzsKKzFENzA5O01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgWEk7TGw7MDtMOzxmb250PiAwM0JFOzs7O047Ozs7OworMUQ3MEE7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBPTUlDUk9OO0xsOzA7TDs8Zm9udD4gMDNCRjs7OztOOzs7OzsKKzFENzBCO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgUEk7TGw7MDtMOzxmb250PiAwM0MwOzs7O047Ozs7OworMUQ3MEM7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBSSE87TGw7MDtMOzxmb250PiAwM0MxOzs7O047Ozs7OworMUQ3MEQ7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBGSU5BTCBTSUdNQTtMbDswO0w7PGZvbnQ+IDAzQzI7Ozs7Tjs7Ozs7CisxRDcwRTtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFNJR01BO0xsOzA7TDs8Zm9udD4gMDNDMzs7OztOOzs7OzsKKzFENzBGO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgVEFVO0xsOzA7TDs8Zm9udD4gMDNDNDs7OztOOzs7OzsKKzFENzEwO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgVVBTSUxPTjtMbDswO0w7PGZvbnQ+IDAzQzU7Ozs7Tjs7Ozs7CisxRDcxMTtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFBISTtMbDswO0w7PGZvbnQ+IDAzQzY7Ozs7Tjs7Ozs7CisxRDcxMjtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIENISTtMbDswO0w7PGZvbnQ+IDAzQzc7Ozs7Tjs7Ozs7CisxRDcxMztNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFBTSTtMbDswO0w7PGZvbnQ+IDAzQzg7Ozs7Tjs7Ozs7CisxRDcxNDtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIE9NRUdBO0xsOzA7TDs8Zm9udD4gMDNDOTs7OztOOzs7OzsKKzFENzE1O01BVEhFTUFUSUNBTCBJVEFMSUMgUEFSVElBTCBESUZGRVJFTlRJQUw7U207MDtMOzxmb250PiAyMjAyOzs7O047Ozs7OworMUQ3MTY7TUFUSEVNQVRJQ0FMIElUQUxJQyBFUFNJTE9OIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRjU7Ozs7Tjs7Ozs7CisxRDcxNztNQVRIRU1BVElDQUwgSVRBTElDIFRIRVRBIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRDE7Ozs7Tjs7Ozs7CisxRDcxODtNQVRIRU1BVElDQUwgSVRBTElDIEtBUFBBIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRjA7Ozs7Tjs7Ozs7CisxRDcxOTtNQVRIRU1BVElDQUwgSVRBTElDIFBISSBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0Q1Ozs7O047Ozs7OworMUQ3MUE7TUFUSEVNQVRJQ0FMIElUQUxJQyBSSE8gU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNGMTs7OztOOzs7OzsKKzFENzFCO01BVEhFTUFUSUNBTCBJVEFMSUMgUEkgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNENjs7OztOOzs7OzsKKzFENzFDO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIEFMUEhBO0x1OzA7TDs8Zm9udD4gMDM5MTs7OztOOzs7OzsKKzFENzFEO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIEJFVEE7THU7MDtMOzxmb250PiAwMzkyOzs7O047Ozs7OworMUQ3MUU7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgR0FNTUE7THU7MDtMOzxmb250PiAwMzkzOzs7O047Ozs7OworMUQ3MUY7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgREVMVEE7THU7MDtMOzxmb250PiAwMzk0Ozs7O047Ozs7OworMUQ3MjA7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgRVBTSUxPTjtMdTswO0w7PGZvbnQ+IDAzOTU7Ozs7Tjs7Ozs7CisxRDcyMTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBaRVRBO0x1OzA7TDs8Zm9udD4gMDM5Njs7OztOOzs7OzsKKzFENzIyO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIEVUQTtMdTswO0w7PGZvbnQ+IDAzOTc7Ozs7Tjs7Ozs7CisxRDcyMztNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBUSEVUQTtMdTswO0w7PGZvbnQ+IDAzOTg7Ozs7Tjs7Ozs7CisxRDcyNDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBJT1RBO0x1OzA7TDs8Zm9udD4gMDM5OTs7OztOOzs7OzsKKzFENzI1O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIEtBUFBBO0x1OzA7TDs8Zm9udD4gMDM5QTs7OztOOzs7OzsKKzFENzI2O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIExBTURBO0x1OzA7TDs8Zm9udD4gMDM5Qjs7OztOOzs7OzsKKzFENzI3O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIE1VO0x1OzA7TDs8Zm9udD4gMDM5Qzs7OztOOzs7OzsKKzFENzI4O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIE5VO0x1OzA7TDs8Zm9udD4gMDM5RDs7OztOOzs7OzsKKzFENzI5O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIFhJO0x1OzA7TDs8Zm9udD4gMDM5RTs7OztOOzs7OzsKKzFENzJBO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIE9NSUNST047THU7MDtMOzxmb250PiAwMzlGOzs7O047Ozs7OworMUQ3MkI7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgUEk7THU7MDtMOzxmb250PiAwM0EwOzs7O047Ozs7OworMUQ3MkM7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgUkhPO0x1OzA7TDs8Zm9udD4gMDNBMTs7OztOOzs7OzsKKzFENzJEO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIFRIRVRBIFNZTUJPTDtMdTswO0w7PGZvbnQ+IDAzRjQ7Ozs7Tjs7Ozs7CisxRDcyRTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBTSUdNQTtMdTswO0w7PGZvbnQ+IDAzQTM7Ozs7Tjs7Ozs7CisxRDcyRjtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBUQVU7THU7MDtMOzxmb250PiAwM0E0Ozs7O047Ozs7OworMUQ3MzA7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgVVBTSUxPTjtMdTswO0w7PGZvbnQ+IDAzQTU7Ozs7Tjs7Ozs7CisxRDczMTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBQSEk7THU7MDtMOzxmb250PiAwM0E2Ozs7O047Ozs7OworMUQ3MzI7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgQ0hJO0x1OzA7TDs8Zm9udD4gMDNBNzs7OztOOzs7OzsKKzFENzMzO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIFBTSTtMdTswO0w7PGZvbnQ+IDAzQTg7Ozs7Tjs7Ozs7CisxRDczNDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBPTUVHQTtMdTswO0w7PGZvbnQ+IDAzQTk7Ozs7Tjs7Ozs7CisxRDczNTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgTkFCTEE7U207MDtMOzxmb250PiAyMjA3Ozs7O047Ozs7OworMUQ3MzY7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEFMUEhBO0xsOzA7TDs8Zm9udD4gMDNCMTs7OztOOzs7OzsKKzFENzM3O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBCRVRBO0xsOzA7TDs8Zm9udD4gMDNCMjs7OztOOzs7OzsKKzFENzM4O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBHQU1NQTtMbDswO0w7PGZvbnQ+IDAzQjM7Ozs7Tjs7Ozs7CisxRDczOTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgREVMVEE7TGw7MDtMOzxmb250PiAwM0I0Ozs7O047Ozs7OworMUQ3M0E7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEVQU0lMT047TGw7MDtMOzxmb250PiAwM0I1Ozs7O047Ozs7OworMUQ3M0I7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFpFVEE7TGw7MDtMOzxmb250PiAwM0I2Ozs7O047Ozs7OworMUQ3M0M7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEVUQTtMbDswO0w7PGZvbnQ+IDAzQjc7Ozs7Tjs7Ozs7CisxRDczRDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgVEhFVEE7TGw7MDtMOzxmb250PiAwM0I4Ozs7O047Ozs7OworMUQ3M0U7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIElPVEE7TGw7MDtMOzxmb250PiAwM0I5Ozs7O047Ozs7OworMUQ3M0Y7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEtBUFBBO0xsOzA7TDs8Zm9udD4gMDNCQTs7OztOOzs7OzsKKzFENzQwO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBMQU1EQTtMbDswO0w7PGZvbnQ+IDAzQkI7Ozs7Tjs7Ozs7CisxRDc0MTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgTVU7TGw7MDtMOzxmb250PiAwM0JDOzs7O047Ozs7OworMUQ3NDI7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIE5VO0xsOzA7TDs8Zm9udD4gMDNCRDs7OztOOzs7OzsKKzFENzQzO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBYSTtMbDswO0w7PGZvbnQ+IDAzQkU7Ozs7Tjs7Ozs7CisxRDc0NDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgT01JQ1JPTjtMbDswO0w7PGZvbnQ+IDAzQkY7Ozs7Tjs7Ozs7CisxRDc0NTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgUEk7TGw7MDtMOzxmb250PiAwM0MwOzs7O047Ozs7OworMUQ3NDY7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFJITztMbDswO0w7PGZvbnQ+IDAzQzE7Ozs7Tjs7Ozs7CisxRDc0NztNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgRklOQUwgU0lHTUE7TGw7MDtMOzxmb250PiAwM0MyOzs7O047Ozs7OworMUQ3NDg7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFNJR01BO0xsOzA7TDs8Zm9udD4gMDNDMzs7OztOOzs7OzsKKzFENzQ5O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBUQVU7TGw7MDtMOzxmb250PiAwM0M0Ozs7O047Ozs7OworMUQ3NEE7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFVQU0lMT047TGw7MDtMOzxmb250PiAwM0M1Ozs7O047Ozs7OworMUQ3NEI7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFBISTtMbDswO0w7PGZvbnQ+IDAzQzY7Ozs7Tjs7Ozs7CisxRDc0QztNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgQ0hJO0xsOzA7TDs8Zm9udD4gMDNDNzs7OztOOzs7OzsKKzFENzREO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBQU0k7TGw7MDtMOzxmb250PiAwM0M4Ozs7O047Ozs7OworMUQ3NEU7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIE9NRUdBO0xsOzA7TDs8Zm9udD4gMDNDOTs7OztOOzs7OzsKKzFENzRGO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBQQVJUSUFMIERJRkZFUkVOVElBTDtTbTswO0w7PGZvbnQ+IDIyMDI7Ozs7Tjs7Ozs7CisxRDc1MDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgRVBTSUxPTiBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0Y1Ozs7O047Ozs7OworMUQ3NTE7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFRIRVRBIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRDE7Ozs7Tjs7Ozs7CisxRDc1MjtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgS0FQUEEgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNGMDs7OztOOzs7OzsKKzFENzUzO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBQSEkgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNENTs7OztOOzs7OzsKKzFENzU0O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBSSE8gU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNGMTs7OztOOzs7OzsKKzFENzU1O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBQSSBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0Q2Ozs7O047Ozs7OworMUQ3NTY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIEFMUEhBO0x1OzA7TDs8Zm9udD4gMDM5MTs7OztOOzs7OzsKKzFENzU3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBCRVRBO0x1OzA7TDs8Zm9udD4gMDM5Mjs7OztOOzs7OzsKKzFENzU4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBHQU1NQTtMdTswO0w7PGZvbnQ+IDAzOTM7Ozs7Tjs7Ozs7CisxRDc1OTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgREVMVEE7THU7MDtMOzxmb250PiAwMzk0Ozs7O047Ozs7OworMUQ3NUE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIEVQU0lMT047THU7MDtMOzxmb250PiAwMzk1Ozs7O047Ozs7OworMUQ3NUI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIFpFVEE7THU7MDtMOzxmb250PiAwMzk2Ozs7O047Ozs7OworMUQ3NUM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIEVUQTtMdTswO0w7PGZvbnQ+IDAzOTc7Ozs7Tjs7Ozs7CisxRDc1RDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgVEhFVEE7THU7MDtMOzxmb250PiAwMzk4Ozs7O047Ozs7OworMUQ3NUU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIElPVEE7THU7MDtMOzxmb250PiAwMzk5Ozs7O047Ozs7OworMUQ3NUY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIEtBUFBBO0x1OzA7TDs8Zm9udD4gMDM5QTs7OztOOzs7OzsKKzFENzYwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBMQU1EQTtMdTswO0w7PGZvbnQ+IDAzOUI7Ozs7Tjs7Ozs7CisxRDc2MTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgTVU7THU7MDtMOzxmb250PiAwMzlDOzs7O047Ozs7OworMUQ3NjI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIE5VO0x1OzA7TDs8Zm9udD4gMDM5RDs7OztOOzs7OzsKKzFENzYzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBYSTtMdTswO0w7PGZvbnQ+IDAzOUU7Ozs7Tjs7Ozs7CisxRDc2NDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgT01JQ1JPTjtMdTswO0w7PGZvbnQ+IDAzOUY7Ozs7Tjs7Ozs7CisxRDc2NTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgUEk7THU7MDtMOzxmb250PiAwM0EwOzs7O047Ozs7OworMUQ3NjY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIFJITztMdTswO0w7PGZvbnQ+IDAzQTE7Ozs7Tjs7Ozs7CisxRDc2NztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgVEhFVEEgU1lNQk9MO0x1OzA7TDs8Zm9udD4gMDNGNDs7OztOOzs7OzsKKzFENzY4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBTSUdNQTtMdTswO0w7PGZvbnQ+IDAzQTM7Ozs7Tjs7Ozs7CisxRDc2OTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgVEFVO0x1OzA7TDs8Zm9udD4gMDNBNDs7OztOOzs7OzsKKzFENzZBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBVUFNJTE9OO0x1OzA7TDs8Zm9udD4gMDNBNTs7OztOOzs7OzsKKzFENzZCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBQSEk7THU7MDtMOzxmb250PiAwM0E2Ozs7O047Ozs7OworMUQ3NkM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIENISTtMdTswO0w7PGZvbnQ+IDAzQTc7Ozs7Tjs7Ozs7CisxRDc2RDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgUFNJO0x1OzA7TDs8Zm9udD4gMDNBODs7OztOOzs7OzsKKzFENzZFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBPTUVHQTtMdTswO0w7PGZvbnQ+IDAzQTk7Ozs7Tjs7Ozs7CisxRDc2RjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIE5BQkxBO1NtOzA7TDs8Zm9udD4gMjIwNzs7OztOOzs7OzsKKzFENzcwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgQUxQSEE7TGw7MDtMOzxmb250PiAwM0IxOzs7O047Ozs7OworMUQ3NzE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBCRVRBO0xsOzA7TDs8Zm9udD4gMDNCMjs7OztOOzs7OzsKKzFENzcyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgR0FNTUE7TGw7MDtMOzxmb250PiAwM0IzOzs7O047Ozs7OworMUQ3NzM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBERUxUQTtMbDswO0w7PGZvbnQ+IDAzQjQ7Ozs7Tjs7Ozs7CisxRDc3NDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIEVQU0lMT047TGw7MDtMOzxmb250PiAwM0I1Ozs7O047Ozs7OworMUQ3NzU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBaRVRBO0xsOzA7TDs8Zm9udD4gMDNCNjs7OztOOzs7OzsKKzFENzc2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgRVRBO0xsOzA7TDs8Zm9udD4gMDNCNzs7OztOOzs7OzsKKzFENzc3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgVEhFVEE7TGw7MDtMOzxmb250PiAwM0I4Ozs7O047Ozs7OworMUQ3Nzg7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBJT1RBO0xsOzA7TDs8Zm9udD4gMDNCOTs7OztOOzs7OzsKKzFENzc5O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgS0FQUEE7TGw7MDtMOzxmb250PiAwM0JBOzs7O047Ozs7OworMUQ3N0E7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBMQU1EQTtMbDswO0w7PGZvbnQ+IDAzQkI7Ozs7Tjs7Ozs7CisxRDc3QjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIE1VO0xsOzA7TDs8Zm9udD4gMDNCQzs7OztOOzs7OzsKKzFENzdDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgTlU7TGw7MDtMOzxmb250PiAwM0JEOzs7O047Ozs7OworMUQ3N0Q7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBYSTtMbDswO0w7PGZvbnQ+IDAzQkU7Ozs7Tjs7Ozs7CisxRDc3RTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIE9NSUNST047TGw7MDtMOzxmb250PiAwM0JGOzs7O047Ozs7OworMUQ3N0Y7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBQSTtMbDswO0w7PGZvbnQ+IDAzQzA7Ozs7Tjs7Ozs7CisxRDc4MDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIFJITztMbDswO0w7PGZvbnQ+IDAzQzE7Ozs7Tjs7Ozs7CisxRDc4MTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIEZJTkFMIFNJR01BO0xsOzA7TDs8Zm9udD4gMDNDMjs7OztOOzs7OzsKKzFENzgyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgU0lHTUE7TGw7MDtMOzxmb250PiAwM0MzOzs7O047Ozs7OworMUQ3ODM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBUQVU7TGw7MDtMOzxmb250PiAwM0M0Ozs7O047Ozs7OworMUQ3ODQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBVUFNJTE9OO0xsOzA7TDs8Zm9udD4gMDNDNTs7OztOOzs7OzsKKzFENzg1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgUEhJO0xsOzA7TDs8Zm9udD4gMDNDNjs7OztOOzs7OzsKKzFENzg2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgQ0hJO0xsOzA7TDs8Zm9udD4gMDNDNzs7OztOOzs7OzsKKzFENzg3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgUFNJO0xsOzA7TDs8Zm9udD4gMDNDODs7OztOOzs7OzsKKzFENzg4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgT01FR0E7TGw7MDtMOzxmb250PiAwM0M5Ozs7O047Ozs7OworMUQ3ODk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBQQVJUSUFMIERJRkZFUkVOVElBTDtTbTswO0w7PGZvbnQ+IDIyMDI7Ozs7Tjs7Ozs7CisxRDc4QTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIEVQU0lMT04gU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNGNTs7OztOOzs7OzsKKzFENzhCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgVEhFVEEgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNEMTs7OztOOzs7OzsKKzFENzhDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgS0FQUEEgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNGMDs7OztOOzs7OzsKKzFENzhEO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgUEhJIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRDU7Ozs7Tjs7Ozs7CisxRDc4RTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFJITyBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0YxOzs7O047Ozs7OworMUQ3OEY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBQSSBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0Q2Ozs7O047Ozs7OworMUQ3OTA7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBBTFBIQTtMdTswO0w7PGZvbnQ+IDAzOTE7Ozs7Tjs7Ozs7CisxRDc5MTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIEJFVEE7THU7MDtMOzxmb250PiAwMzkyOzs7O047Ozs7OworMUQ3OTI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBHQU1NQTtMdTswO0w7PGZvbnQ+IDAzOTM7Ozs7Tjs7Ozs7CisxRDc5MztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIERFTFRBO0x1OzA7TDs8Zm9udD4gMDM5NDs7OztOOzs7OzsKKzFENzk0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgRVBTSUxPTjtMdTswO0w7PGZvbnQ+IDAzOTU7Ozs7Tjs7Ozs7CisxRDc5NTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFpFVEE7THU7MDtMOzxmb250PiAwMzk2Ozs7O047Ozs7OworMUQ3OTY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBFVEE7THU7MDtMOzxmb250PiAwMzk3Ozs7O047Ozs7OworMUQ3OTc7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBUSEVUQTtMdTswO0w7PGZvbnQ+IDAzOTg7Ozs7Tjs7Ozs7CisxRDc5ODtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIElPVEE7THU7MDtMOzxmb250PiAwMzk5Ozs7O047Ozs7OworMUQ3OTk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBLQVBQQTtMdTswO0w7PGZvbnQ+IDAzOUE7Ozs7Tjs7Ozs7CisxRDc5QTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIExBTURBO0x1OzA7TDs8Zm9udD4gMDM5Qjs7OztOOzs7OzsKKzFENzlCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgTVU7THU7MDtMOzxmb250PiAwMzlDOzs7O047Ozs7OworMUQ3OUM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBOVTtMdTswO0w7PGZvbnQ+IDAzOUQ7Ozs7Tjs7Ozs7CisxRDc5RDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFhJO0x1OzA7TDs8Zm9udD4gMDM5RTs7OztOOzs7OzsKKzFENzlFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgT01JQ1JPTjtMdTswO0w7PGZvbnQ+IDAzOUY7Ozs7Tjs7Ozs7CisxRDc5RjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFBJO0x1OzA7TDs8Zm9udD4gMDNBMDs7OztOOzs7OzsKKzFEN0EwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgUkhPO0x1OzA7TDs8Zm9udD4gMDNBMTs7OztOOzs7OzsKKzFEN0ExO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgVEhFVEEgU1lNQk9MO0x1OzA7TDs8Zm9udD4gMDNGNDs7OztOOzs7OzsKKzFEN0EyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgU0lHTUE7THU7MDtMOzxmb250PiAwM0EzOzs7O047Ozs7OworMUQ3QTM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBUQVU7THU7MDtMOzxmb250PiAwM0E0Ozs7O047Ozs7OworMUQ3QTQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBVUFNJTE9OO0x1OzA7TDs8Zm9udD4gMDNBNTs7OztOOzs7OzsKKzFEN0E1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgUEhJO0x1OzA7TDs8Zm9udD4gMDNBNjs7OztOOzs7OzsKKzFEN0E2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgQ0hJO0x1OzA7TDs8Zm9udD4gMDNBNzs7OztOOzs7OzsKKzFEN0E3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgUFNJO0x1OzA7TDs8Zm9udD4gMDNBODs7OztOOzs7OzsKKzFEN0E4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgT01FR0E7THU7MDtMOzxmb250PiAwM0E5Ozs7O047Ozs7OworMUQ3QTk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgTkFCTEE7U207MDtMOzxmb250PiAyMjA3Ozs7O047Ozs7OworMUQ3QUE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgQUxQSEE7TGw7MDtMOzxmb250PiAwM0IxOzs7O047Ozs7OworMUQ3QUI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgQkVUQTtMbDswO0w7PGZvbnQ+IDAzQjI7Ozs7Tjs7Ozs7CisxRDdBQztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBHQU1NQTtMbDswO0w7PGZvbnQ+IDAzQjM7Ozs7Tjs7Ozs7CisxRDdBRDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBERUxUQTtMbDswO0w7PGZvbnQ+IDAzQjQ7Ozs7Tjs7Ozs7CisxRDdBRTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBFUFNJTE9OO0xsOzA7TDs8Zm9udD4gMDNCNTs7OztOOzs7OzsKKzFEN0FGO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIFpFVEE7TGw7MDtMOzxmb250PiAwM0I2Ozs7O047Ozs7OworMUQ3QjA7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgRVRBO0xsOzA7TDs8Zm9udD4gMDNCNzs7OztOOzs7OzsKKzFEN0IxO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIFRIRVRBO0xsOzA7TDs8Zm9udD4gMDNCODs7OztOOzs7OzsKKzFEN0IyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIElPVEE7TGw7MDtMOzxmb250PiAwM0I5Ozs7O047Ozs7OworMUQ3QjM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgS0FQUEE7TGw7MDtMOzxmb250PiAwM0JBOzs7O047Ozs7OworMUQ3QjQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgTEFNREE7TGw7MDtMOzxmb250PiAwM0JCOzs7O047Ozs7OworMUQ3QjU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgTVU7TGw7MDtMOzxmb250PiAwM0JDOzs7O047Ozs7OworMUQ3QjY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgTlU7TGw7MDtMOzxmb250PiAwM0JEOzs7O047Ozs7OworMUQ3Qjc7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgWEk7TGw7MDtMOzxmb250PiAwM0JFOzs7O047Ozs7OworMUQ3Qjg7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgT01JQ1JPTjtMbDswO0w7PGZvbnQ+IDAzQkY7Ozs7Tjs7Ozs7CisxRDdCOTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBQSTtMbDswO0w7PGZvbnQ+IDAzQzA7Ozs7Tjs7Ozs7CisxRDdCQTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBSSE87TGw7MDtMOzxmb250PiAwM0MxOzs7O047Ozs7OworMUQ3QkI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgRklOQUwgU0lHTUE7TGw7MDtMOzxmb250PiAwM0MyOzs7O047Ozs7OworMUQ3QkM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgU0lHTUE7TGw7MDtMOzxmb250PiAwM0MzOzs7O047Ozs7OworMUQ3QkQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgVEFVO0xsOzA7TDs8Zm9udD4gMDNDNDs7OztOOzs7OzsKKzFEN0JFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIFVQU0lMT047TGw7MDtMOzxmb250PiAwM0M1Ozs7O047Ozs7OworMUQ3QkY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgUEhJO0xsOzA7TDs8Zm9udD4gMDNDNjs7OztOOzs7OzsKKzFEN0MwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIENISTtMbDswO0w7PGZvbnQ+IDAzQzc7Ozs7Tjs7Ozs7CisxRDdDMTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBQU0k7TGw7MDtMOzxmb250PiAwM0M4Ozs7O047Ozs7OworMUQ3QzI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgT01FR0E7TGw7MDtMOzxmb250PiAwM0M5Ozs7O047Ozs7OworMUQ3QzM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgUEFSVElBTCBESUZGRVJFTlRJQUw7U207MDtMOzxmb250PiAyMjAyOzs7O047Ozs7OworMUQ3QzQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgRVBTSUxPTiBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0Y1Ozs7O047Ozs7OworMUQ3QzU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgVEhFVEEgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNEMTs7OztOOzs7OzsKKzFEN0M2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIEtBUFBBIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRjA7Ozs7Tjs7Ozs7CisxRDdDNztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBQSEkgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNENTs7OztOOzs7OzsKKzFEN0M4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFJITyBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0YxOzs7O047Ozs7OworMUQ3Qzk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgUEkgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNENjs7OztOOzs7OzsKKzFEN0NFO01BVEhFTUFUSUNBTCBCT0xEIERJR0lUIFpFUk87TmQ7MDtFTjs8Zm9udD4gMDAzMDswOzA7MDtOOzs7OzsKKzFEN0NGO01BVEhFTUFUSUNBTCBCT0xEIERJR0lUIE9ORTtOZDswO0VOOzxmb250PiAwMDMxOzE7MTsxO047Ozs7OworMUQ3RDA7TUFUSEVNQVRJQ0FMIEJPTEQgRElHSVQgVFdPO05kOzA7RU47PGZvbnQ+IDAwMzI7MjsyOzI7Tjs7Ozs7CisxRDdEMTtNQVRIRU1BVElDQUwgQk9MRCBESUdJVCBUSFJFRTtOZDswO0VOOzxmb250PiAwMDMzOzM7MzszO047Ozs7OworMUQ3RDI7TUFUSEVNQVRJQ0FMIEJPTEQgRElHSVQgRk9VUjtOZDswO0VOOzxmb250PiAwMDM0OzQ7NDs0O047Ozs7OworMUQ3RDM7TUFUSEVNQVRJQ0FMIEJPTEQgRElHSVQgRklWRTtOZDswO0VOOzxmb250PiAwMDM1OzU7NTs1O047Ozs7OworMUQ3RDQ7TUFUSEVNQVRJQ0FMIEJPTEQgRElHSVQgU0lYO05kOzA7RU47PGZvbnQ+IDAwMzY7Njs2OzY7Tjs7Ozs7CisxRDdENTtNQVRIRU1BVElDQUwgQk9MRCBESUdJVCBTRVZFTjtOZDswO0VOOzxmb250PiAwMDM3Ozc7Nzs3O047Ozs7OworMUQ3RDY7TUFUSEVNQVRJQ0FMIEJPTEQgRElHSVQgRUlHSFQ7TmQ7MDtFTjs8Zm9udD4gMDAzODs4Ozg7ODtOOzs7OzsKKzFEN0Q3O01BVEhFTUFUSUNBTCBCT0xEIERJR0lUIE5JTkU7TmQ7MDtFTjs8Zm9udD4gMDAzOTs5Ozk7OTtOOzs7OzsKKzFEN0Q4O01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIERJR0lUIFpFUk87TmQ7MDtFTjs8Zm9udD4gMDAzMDswOzA7MDtOOzs7OzsKKzFEN0Q5O01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIERJR0lUIE9ORTtOZDswO0VOOzxmb250PiAwMDMxOzE7MTsxO047Ozs7OworMUQ3REE7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgRElHSVQgVFdPO05kOzA7RU47PGZvbnQ+IDAwMzI7MjsyOzI7Tjs7Ozs7CisxRDdEQjtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBESUdJVCBUSFJFRTtOZDswO0VOOzxmb250PiAwMDMzOzM7MzszO047Ozs7OworMUQ3REM7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgRElHSVQgRk9VUjtOZDswO0VOOzxmb250PiAwMDM0OzQ7NDs0O047Ozs7OworMUQ3REQ7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgRElHSVQgRklWRTtOZDswO0VOOzxmb250PiAwMDM1OzU7NTs1O047Ozs7OworMUQ3REU7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgRElHSVQgU0lYO05kOzA7RU47PGZvbnQ+IDAwMzY7Njs2OzY7Tjs7Ozs7CisxRDdERjtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBESUdJVCBTRVZFTjtOZDswO0VOOzxmb250PiAwMDM3Ozc7Nzs3O047Ozs7OworMUQ3RTA7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgRElHSVQgRUlHSFQ7TmQ7MDtFTjs8Zm9udD4gMDAzODs4Ozg7ODtOOzs7OzsKKzFEN0UxO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIERJR0lUIE5JTkU7TmQ7MDtFTjs8Zm9udD4gMDAzOTs5Ozk7OTtOOzs7OzsKKzFEN0UyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIERJR0lUIFpFUk87TmQ7MDtFTjs8Zm9udD4gMDAzMDswOzA7MDtOOzs7OzsKKzFEN0UzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIERJR0lUIE9ORTtOZDswO0VOOzxmb250PiAwMDMxOzE7MTsxO047Ozs7OworMUQ3RTQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgRElHSVQgVFdPO05kOzA7RU47PGZvbnQ+IDAwMzI7MjsyOzI7Tjs7Ozs7CisxRDdFNTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBESUdJVCBUSFJFRTtOZDswO0VOOzxmb250PiAwMDMzOzM7MzszO047Ozs7OworMUQ3RTY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgRElHSVQgRk9VUjtOZDswO0VOOzxmb250PiAwMDM0OzQ7NDs0O047Ozs7OworMUQ3RTc7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgRElHSVQgRklWRTtOZDswO0VOOzxmb250PiAwMDM1OzU7NTs1O047Ozs7OworMUQ3RTg7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgRElHSVQgU0lYO05kOzA7RU47PGZvbnQ+IDAwMzY7Njs2OzY7Tjs7Ozs7CisxRDdFOTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBESUdJVCBTRVZFTjtOZDswO0VOOzxmb250PiAwMDM3Ozc7Nzs3O047Ozs7OworMUQ3RUE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgRElHSVQgRUlHSFQ7TmQ7MDtFTjs8Zm9udD4gMDAzODs4Ozg7ODtOOzs7OzsKKzFEN0VCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIERJR0lUIE5JTkU7TmQ7MDtFTjs8Zm9udD4gMDAzOTs5Ozk7OTtOOzs7OzsKKzFEN0VDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgRElHSVQgWkVSTztOZDswO0VOOzxmb250PiAwMDMwOzA7MDswO047Ozs7OworMUQ3RUQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBESUdJVCBPTkU7TmQ7MDtFTjs8Zm9udD4gMDAzMTsxOzE7MTtOOzs7OzsKKzFEN0VFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgRElHSVQgVFdPO05kOzA7RU47PGZvbnQ+IDAwMzI7MjsyOzI7Tjs7Ozs7CisxRDdFRjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIERJR0lUIFRIUkVFO05kOzA7RU47PGZvbnQ+IDAwMzM7MzszOzM7Tjs7Ozs7CisxRDdGMDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIERJR0lUIEZPVVI7TmQ7MDtFTjs8Zm9udD4gMDAzNDs0OzQ7NDtOOzs7OzsKKzFEN0YxO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgRElHSVQgRklWRTtOZDswO0VOOzxmb250PiAwMDM1OzU7NTs1O047Ozs7OworMUQ3RjI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBESUdJVCBTSVg7TmQ7MDtFTjs8Zm9udD4gMDAzNjs2OzY7NjtOOzs7OzsKKzFEN0YzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgRElHSVQgU0VWRU47TmQ7MDtFTjs8Zm9udD4gMDAzNzs3Ozc7NztOOzs7OzsKKzFEN0Y0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgRElHSVQgRUlHSFQ7TmQ7MDtFTjs8Zm9udD4gMDAzODs4Ozg7ODtOOzs7OzsKKzFEN0Y1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgRElHSVQgTklORTtOZDswO0VOOzxmb250PiAwMDM5Ozk7OTs5O047Ozs7OworMUQ3RjY7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBESUdJVCBaRVJPO05kOzA7RU47PGZvbnQ+IDAwMzA7MDswOzA7Tjs7Ozs7CisxRDdGNztNQVRIRU1BVElDQUwgTU9OT1NQQUNFIERJR0lUIE9ORTtOZDswO0VOOzxmb250PiAwMDMxOzE7MTsxO047Ozs7OworMUQ3Rjg7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBESUdJVCBUV087TmQ7MDtFTjs8Zm9udD4gMDAzMjsyOzI7MjtOOzs7OzsKKzFEN0Y5O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgRElHSVQgVEhSRUU7TmQ7MDtFTjs8Zm9udD4gMDAzMzszOzM7MztOOzs7OzsKKzFEN0ZBO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgRElHSVQgRk9VUjtOZDswO0VOOzxmb250PiAwMDM0OzQ7NDs0O047Ozs7OworMUQ3RkI7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBESUdJVCBGSVZFO05kOzA7RU47PGZvbnQ+IDAwMzU7NTs1OzU7Tjs7Ozs7CisxRDdGQztNQVRIRU1BVElDQUwgTU9OT1NQQUNFIERJR0lUIFNJWDtOZDswO0VOOzxmb250PiAwMDM2OzY7Njs2O047Ozs7OworMUQ3RkQ7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBESUdJVCBTRVZFTjtOZDswO0VOOzxmb250PiAwMDM3Ozc7Nzs3O047Ozs7OworMUQ3RkU7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBESUdJVCBFSUdIVDtOZDswO0VOOzxmb250PiAwMDM4Ozg7ODs4O047Ozs7OworMUQ3RkY7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBESUdJVCBOSU5FO05kOzA7RU47PGZvbnQ+IDAwMzk7OTs5Ozk7Tjs7Ozs7CisyMDAwMDs8Q0pLIElkZW9ncmFwaCBFeHRlbnNpb24gQiwgRmlyc3Q+O0xvOzA7TDs7Ozs7Tjs7Ozs7CisyQTZENjs8Q0pLIElkZW9ncmFwaCBFeHRlbnNpb24gQiwgTGFzdD47TG87MDtMOzs7OztOOzs7OzsKKzJGODAwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgwMDtMbzswO0w7NEUzRDs7OztOOzs7OzsKKzJGODAxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgwMTtMbzswO0w7NEUzODs7OztOOzs7OzsKKzJGODAyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgwMjtMbzswO0w7NEU0MTs7OztOOzs7OzsKKzJGODAzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgwMztMbzswO0w7MjAxMjI7Ozs7Tjs7Ozs7CisyRjgwNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MDQ7TG87MDtMOzRGNjA7Ozs7Tjs7Ozs7CisyRjgwNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MDU7TG87MDtMOzRGQUU7Ozs7Tjs7Ozs7CisyRjgwNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MDY7TG87MDtMOzRGQkI7Ozs7Tjs7Ozs7CisyRjgwNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MDc7TG87MDtMOzUwMDI7Ozs7Tjs7Ozs7CisyRjgwODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MDg7TG87MDtMOzUwN0E7Ozs7Tjs7Ozs7CisyRjgwOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MDk7TG87MDtMOzUwOTk7Ozs7Tjs7Ozs7CisyRjgwQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MEE7TG87MDtMOzUwRTc7Ozs7Tjs7Ozs7CisyRjgwQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MEI7TG87MDtMOzUwQ0Y7Ozs7Tjs7Ozs7CisyRjgwQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MEM7TG87MDtMOzM0OUU7Ozs7Tjs7Ozs7CisyRjgwRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MEQ7TG87MDtMOzIwNjNBOzs7O047Ozs7OworMkY4MEU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODBFO0xvOzA7TDs1MTREOzs7O047Ozs7OworMkY4MEY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODBGO0xvOzA7TDs1MTU0Ozs7O047Ozs7OworMkY4MTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODEwO0xvOzA7TDs1MTY0Ozs7O047Ozs7OworMkY4MTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODExO0xvOzA7TDs1MTc3Ozs7O047Ozs7OworMkY4MTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODEyO0xvOzA7TDsyMDUxQzs7OztOOzs7OzsKKzJGODEzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgxMztMbzswO0w7MzRCOTs7OztOOzs7OzsKKzJGODE0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgxNDtMbzswO0w7NTE2Nzs7OztOOzs7OzsKKzJGODE1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgxNTtMbzswO0w7NTE4RDs7OztOOzs7OzsKKzJGODE2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgxNjtMbzswO0w7MjA1NEI7Ozs7Tjs7Ozs7CisyRjgxNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MTc7TG87MDtMOzUxOTc7Ozs7Tjs7Ozs7CisyRjgxODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MTg7TG87MDtMOzUxQTQ7Ozs7Tjs7Ozs7CisyRjgxOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MTk7TG87MDtMOzRFQ0M7Ozs7Tjs7Ozs7CisyRjgxQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MUE7TG87MDtMOzUxQUM7Ozs7Tjs7Ozs7CisyRjgxQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MUI7TG87MDtMOzUxQjU7Ozs7Tjs7Ozs7CisyRjgxQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MUM7TG87MDtMOzI5MURGOzs7O047Ozs7OworMkY4MUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODFEO0xvOzA7TDs1MUY1Ozs7O047Ozs7OworMkY4MUU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODFFO0xvOzA7TDs1MjAzOzs7O047Ozs7OworMkY4MUY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODFGO0xvOzA7TDszNERGOzs7O047Ozs7OworMkY4MjA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODIwO0xvOzA7TDs1MjNCOzs7O047Ozs7OworMkY4MjE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODIxO0xvOzA7TDs1MjQ2Ozs7O047Ozs7OworMkY4MjI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODIyO0xvOzA7TDs1MjcyOzs7O047Ozs7OworMkY4MjM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODIzO0xvOzA7TDs1Mjc3Ozs7O047Ozs7OworMkY4MjQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODI0O0xvOzA7TDszNTE1Ozs7O047Ozs7OworMkY4MjU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODI1O0xvOzA7TDs1MkM3Ozs7O047Ozs7OworMkY4MjY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODI2O0xvOzA7TDs1MkM5Ozs7O047Ozs7OworMkY4Mjc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODI3O0xvOzA7TDs1MkU0Ozs7O047Ozs7OworMkY4Mjg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODI4O0xvOzA7TDs1MkZBOzs7O047Ozs7OworMkY4Mjk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODI5O0xvOzA7TDs1MzA1Ozs7O047Ozs7OworMkY4MkE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODJBO0xvOzA7TDs1MzA2Ozs7O047Ozs7OworMkY4MkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODJCO0xvOzA7TDs1MzE3Ozs7O047Ozs7OworMkY4MkM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODJDO0xvOzA7TDs1MzQ5Ozs7O047Ozs7OworMkY4MkQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODJEO0xvOzA7TDs1MzUxOzs7O047Ozs7OworMkY4MkU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODJFO0xvOzA7TDs1MzVBOzs7O047Ozs7OworMkY4MkY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODJGO0xvOzA7TDs1MzczOzs7O047Ozs7OworMkY4MzA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODMwO0xvOzA7TDs1MzdEOzs7O047Ozs7OworMkY4MzE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODMxO0xvOzA7TDs1MzdGOzs7O047Ozs7OworMkY4MzI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODMyO0xvOzA7TDs1MzdGOzs7O047Ozs7OworMkY4MzM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODMzO0xvOzA7TDs1MzdGOzs7O047Ozs7OworMkY4MzQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODM0O0xvOzA7TDsyMEEyQzs7OztOOzs7OzsKKzJGODM1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgzNTtMbzswO0w7NzA3MDs7OztOOzs7OzsKKzJGODM2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgzNjtMbzswO0w7NTNDQTs7OztOOzs7OzsKKzJGODM3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgzNztMbzswO0w7NTNERjs7OztOOzs7OzsKKzJGODM4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgzODtMbzswO0w7MjBCNjM7Ozs7Tjs7Ozs7CisyRjgzOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Mzk7TG87MDtMOzUzRUI7Ozs7Tjs7Ozs7CisyRjgzQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4M0E7TG87MDtMOzUzRjE7Ozs7Tjs7Ozs7CisyRjgzQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4M0I7TG87MDtMOzU0MDY7Ozs7Tjs7Ozs7CisyRjgzQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4M0M7TG87MDtMOzU0OUU7Ozs7Tjs7Ozs7CisyRjgzRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4M0Q7TG87MDtMOzU0Mzg7Ozs7Tjs7Ozs7CisyRjgzRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4M0U7TG87MDtMOzU0NDg7Ozs7Tjs7Ozs7CisyRjgzRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4M0Y7TG87MDtMOzU0Njg7Ozs7Tjs7Ozs7CisyRjg0MDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NDA7TG87MDtMOzU0QTI7Ozs7Tjs7Ozs7CisyRjg0MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NDE7TG87MDtMOzU0RjY7Ozs7Tjs7Ozs7CisyRjg0MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NDI7TG87MDtMOzU1MTA7Ozs7Tjs7Ozs7CisyRjg0MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NDM7TG87MDtMOzU1NTM7Ozs7Tjs7Ozs7CisyRjg0NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NDQ7TG87MDtMOzU1NjM7Ozs7Tjs7Ozs7CisyRjg0NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NDU7TG87MDtMOzU1ODQ7Ozs7Tjs7Ozs7CisyRjg0NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NDY7TG87MDtMOzU1ODQ7Ozs7Tjs7Ozs7CisyRjg0NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NDc7TG87MDtMOzU1OTk7Ozs7Tjs7Ozs7CisyRjg0ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NDg7TG87MDtMOzU1QUI7Ozs7Tjs7Ozs7CisyRjg0OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NDk7TG87MDtMOzU1QjM7Ozs7Tjs7Ozs7CisyRjg0QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NEE7TG87MDtMOzU1QzI7Ozs7Tjs7Ozs7CisyRjg0QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NEI7TG87MDtMOzU3MTY7Ozs7Tjs7Ozs7CisyRjg0QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NEM7TG87MDtMOzU2MDY7Ozs7Tjs7Ozs7CisyRjg0RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NEQ7TG87MDtMOzU3MTc7Ozs7Tjs7Ozs7CisyRjg0RTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NEU7TG87MDtMOzU2NTE7Ozs7Tjs7Ozs7CisyRjg0RjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NEY7TG87MDtMOzU2NzQ7Ozs7Tjs7Ozs7CisyRjg1MDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NTA7TG87MDtMOzUyMDc7Ozs7Tjs7Ozs7CisyRjg1MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NTE7TG87MDtMOzU4RUU7Ozs7Tjs7Ozs7CisyRjg1MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NTI7TG87MDtMOzU3Q0U7Ozs7Tjs7Ozs7CisyRjg1MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NTM7TG87MDtMOzU3RjQ7Ozs7Tjs7Ozs7CisyRjg1NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NTQ7TG87MDtMOzU4MEQ7Ozs7Tjs7Ozs7CisyRjg1NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NTU7TG87MDtMOzU3OEI7Ozs7Tjs7Ozs7CisyRjg1NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NTY7TG87MDtMOzU4MzI7Ozs7Tjs7Ozs7CisyRjg1NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NTc7TG87MDtMOzU4MzE7Ozs7Tjs7Ozs7CisyRjg1ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NTg7TG87MDtMOzU4QUM7Ozs7Tjs7Ozs7CisyRjg1OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NTk7TG87MDtMOzIxNEU0Ozs7O047Ozs7OworMkY4NUE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODVBO0xvOzA7TDs1OEYyOzs7O047Ozs7OworMkY4NUI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODVCO0xvOzA7TDs1OEY3Ozs7O047Ozs7OworMkY4NUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODVDO0xvOzA7TDs1OTA2Ozs7O047Ozs7OworMkY4NUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODVEO0xvOzA7TDs1OTFBOzs7O047Ozs7OworMkY4NUU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODVFO0xvOzA7TDs1OTIyOzs7O047Ozs7OworMkY4NUY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODVGO0xvOzA7TDs1OTYyOzs7O047Ozs7OworMkY4NjA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODYwO0xvOzA7TDsyMTZBODs7OztOOzs7OzsKKzJGODYxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg2MTtMbzswO0w7MjE2RUE7Ozs7Tjs7Ozs7CisyRjg2MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NjI7TG87MDtMOzU5RUM7Ozs7Tjs7Ozs7CisyRjg2MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NjM7TG87MDtMOzVBMUI7Ozs7Tjs7Ozs7CisyRjg2NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NjQ7TG87MDtMOzVBMjc7Ozs7Tjs7Ozs7CisyRjg2NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NjU7TG87MDtMOzU5RDg7Ozs7Tjs7Ozs7CisyRjg2NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NjY7TG87MDtMOzVBNjY7Ozs7Tjs7Ozs7CisyRjg2NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Njc7TG87MDtMOzM2RUU7Ozs7Tjs7Ozs7CisyRjg2ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Njg7TG87MDtMOzIxMzZBOzs7O047Ozs7OworMkY4Njk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODY5O0xvOzA7TDs1QjA4Ozs7O047Ozs7OworMkY4NkE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODZBO0xvOzA7TDs1QjNFOzs7O047Ozs7OworMkY4NkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODZCO0xvOzA7TDs1QjNFOzs7O047Ozs7OworMkY4NkM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODZDO0xvOzA7TDsyMTlDODs7OztOOzs7OzsKKzJGODZEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg2RDtMbzswO0w7NUJDMzs7OztOOzs7OzsKKzJGODZFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg2RTtMbzswO0w7NUJEODs7OztOOzs7OzsKKzJGODZGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg2RjtMbzswO0w7NUJFNzs7OztOOzs7OzsKKzJGODcwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg3MDtMbzswO0w7NUJGMzs7OztOOzs7OzsKKzJGODcxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg3MTtMbzswO0w7MjFCMTg7Ozs7Tjs7Ozs7CisyRjg3MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NzI7TG87MDtMOzVCRkY7Ozs7Tjs7Ozs7CisyRjg3MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NzM7TG87MDtMOzVDMDY7Ozs7Tjs7Ozs7CisyRjg3NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NzQ7TG87MDtMOzVGMzM7Ozs7Tjs7Ozs7CisyRjg3NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NzU7TG87MDtMOzVDMjI7Ozs7Tjs7Ozs7CisyRjg3NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NzY7TG87MDtMOzM3ODE7Ozs7Tjs7Ozs7CisyRjg3NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Nzc7TG87MDtMOzVDNjA7Ozs7Tjs7Ozs7CisyRjg3ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Nzg7TG87MDtMOzVDNkU7Ozs7Tjs7Ozs7CisyRjg3OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Nzk7TG87MDtMOzVDQzA7Ozs7Tjs7Ozs7CisyRjg3QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4N0E7TG87MDtMOzVDOEQ7Ozs7Tjs7Ozs7CisyRjg3QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4N0I7TG87MDtMOzIxREU0Ozs7O047Ozs7OworMkY4N0M7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODdDO0xvOzA7TDs1RDQzOzs7O047Ozs7OworMkY4N0Q7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODdEO0xvOzA7TDsyMURFNjs7OztOOzs7OzsKKzJGODdFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg3RTtMbzswO0w7NUQ2RTs7OztOOzs7OzsKKzJGODdGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg3RjtMbzswO0w7NUQ2Qjs7OztOOzs7OzsKKzJGODgwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4MDtMbzswO0w7NUQ3Qzs7OztOOzs7OzsKKzJGODgxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4MTtMbzswO0w7NURFMTs7OztOOzs7OzsKKzJGODgyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4MjtMbzswO0w7NURFMjs7OztOOzs7OzsKKzJGODgzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4MztMbzswO0w7MzgyRjs7OztOOzs7OzsKKzJGODg0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4NDtMbzswO0w7NURGRDs7OztOOzs7OzsKKzJGODg1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4NTtMbzswO0w7NUUyODs7OztOOzs7OzsKKzJGODg2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4NjtMbzswO0w7NUUzRDs7OztOOzs7OzsKKzJGODg3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4NztMbzswO0w7NUU2OTs7OztOOzs7OzsKKzJGODg4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4ODtMbzswO0w7Mzg2Mjs7OztOOzs7OzsKKzJGODg5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4OTtMbzswO0w7MjIxODM7Ozs7Tjs7Ozs7CisyRjg4QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OEE7TG87MDtMOzM4N0M7Ozs7Tjs7Ozs7CisyRjg4QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OEI7TG87MDtMOzVFQjA7Ozs7Tjs7Ozs7CisyRjg4QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OEM7TG87MDtMOzVFQjM7Ozs7Tjs7Ozs7CisyRjg4RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OEQ7TG87MDtMOzVFQjY7Ozs7Tjs7Ozs7CisyRjg4RTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OEU7TG87MDtMOzVFQ0E7Ozs7Tjs7Ozs7CisyRjg4RjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OEY7TG87MDtMOzJBMzkyOzs7O047Ozs7OworMkY4OTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODkwO0xvOzA7TDs1RUZFOzs7O047Ozs7OworMkY4OTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODkxO0xvOzA7TDsyMjMzMTs7OztOOzs7OzsKKzJGODkyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5MjtMbzswO0w7MjIzMzE7Ozs7Tjs7Ozs7CisyRjg5MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OTM7TG87MDtMOzgyMDE7Ozs7Tjs7Ozs7CisyRjg5NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OTQ7TG87MDtMOzVGMjI7Ozs7Tjs7Ozs7CisyRjg5NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OTU7TG87MDtMOzVGMjI7Ozs7Tjs7Ozs7CisyRjg5NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OTY7TG87MDtMOzM4Qzc7Ozs7Tjs7Ozs7CisyRjg5NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OTc7TG87MDtMOzIzMkI4Ozs7O047Ozs7OworMkY4OTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODk4O0xvOzA7TDsyNjFEQTs7OztOOzs7OzsKKzJGODk5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5OTtMbzswO0w7NUY2Mjs7OztOOzs7OzsKKzJGODlBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5QTtMbzswO0w7NUY2Qjs7OztOOzs7OzsKKzJGODlCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5QjtMbzswO0w7MzhFMzs7OztOOzs7OzsKKzJGODlDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5QztMbzswO0w7NUY5QTs7OztOOzs7OzsKKzJGODlEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5RDtMbzswO0w7NUZDRDs7OztOOzs7OzsKKzJGODlFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5RTtMbzswO0w7NUZENzs7OztOOzs7OzsKKzJGODlGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5RjtMbzswO0w7NUZGOTs7OztOOzs7OzsKKzJGOEEwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhBMDtMbzswO0w7NjA4MTs7OztOOzs7OzsKKzJGOEExO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhBMTtMbzswO0w7MzkzQTs7OztOOzs7OzsKKzJGOEEyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhBMjtMbzswO0w7MzkxQzs7OztOOzs7OzsKKzJGOEEzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhBMztMbzswO0w7NjA5NDs7OztOOzs7OzsKKzJGOEE0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhBNDtMbzswO0w7MjI2RDQ7Ozs7Tjs7Ozs7CisyRjhBNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QTU7TG87MDtMOzYwQzc7Ozs7Tjs7Ozs7CisyRjhBNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QTY7TG87MDtMOzYxNDg7Ozs7Tjs7Ozs7CisyRjhBNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QTc7TG87MDtMOzYxNEM7Ozs7Tjs7Ozs7CisyRjhBODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QTg7TG87MDtMOzYxNEU7Ozs7Tjs7Ozs7CisyRjhBOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QTk7TG87MDtMOzYxNEM7Ozs7Tjs7Ozs7CisyRjhBQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QUE7TG87MDtMOzYxN0E7Ozs7Tjs7Ozs7CisyRjhBQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QUI7TG87MDtMOzYxOEU7Ozs7Tjs7Ozs7CisyRjhBQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QUM7TG87MDtMOzYxQjI7Ozs7Tjs7Ozs7CisyRjhBRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QUQ7TG87MDtMOzYxQTQ7Ozs7Tjs7Ozs7CisyRjhBRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QUU7TG87MDtMOzYxQUY7Ozs7Tjs7Ozs7CisyRjhBRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QUY7TG87MDtMOzYxREU7Ozs7Tjs7Ozs7CisyRjhCMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QjA7TG87MDtMOzYxRjI7Ozs7Tjs7Ozs7CisyRjhCMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QjE7TG87MDtMOzYxRjY7Ozs7Tjs7Ozs7CisyRjhCMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QjI7TG87MDtMOzYyMTA7Ozs7Tjs7Ozs7CisyRjhCMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QjM7TG87MDtMOzYyMUI7Ozs7Tjs7Ozs7CisyRjhCNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QjQ7TG87MDtMOzYyNUQ7Ozs7Tjs7Ozs7CisyRjhCNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QjU7TG87MDtMOzYyQjE7Ozs7Tjs7Ozs7CisyRjhCNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QjY7TG87MDtMOzYyRDQ7Ozs7Tjs7Ozs7CisyRjhCNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Qjc7TG87MDtMOzYzNTA7Ozs7Tjs7Ozs7CisyRjhCODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Qjg7TG87MDtMOzIyQjBDOzs7O047Ozs7OworMkY4Qjk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEI5O0xvOzA7TDs2MzNEOzs7O047Ozs7OworMkY4QkE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEJBO0xvOzA7TDs2MkZDOzs7O047Ozs7OworMkY4QkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEJCO0xvOzA7TDs2MzY4Ozs7O047Ozs7OworMkY4QkM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEJDO0xvOzA7TDs2MzgzOzs7O047Ozs7OworMkY4QkQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEJEO0xvOzA7TDs2M0U0Ozs7O047Ozs7OworMkY4QkU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEJFO0xvOzA7TDsyMkJGMTs7OztOOzs7OzsKKzJGOEJGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhCRjtMbzswO0w7NjQyMjs7OztOOzs7OzsKKzJGOEMwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDMDtMbzswO0w7NjNDNTs7OztOOzs7OzsKKzJGOEMxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDMTtMbzswO0w7NjNBOTs7OztOOzs7OzsKKzJGOEMyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDMjtMbzswO0w7M0EyRTs7OztOOzs7OzsKKzJGOEMzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDMztMbzswO0w7NjQ2OTs7OztOOzs7OzsKKzJGOEM0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDNDtMbzswO0w7NjQ3RTs7OztOOzs7OzsKKzJGOEM1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDNTtMbzswO0w7NjQ5RDs7OztOOzs7OzsKKzJGOEM2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDNjtMbzswO0w7NjQ3Nzs7OztOOzs7OzsKKzJGOEM3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDNztMbzswO0w7M0E2Qzs7OztOOzs7OzsKKzJGOEM4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDODtMbzswO0w7NjU0Rjs7OztOOzs7OzsKKzJGOEM5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDOTtMbzswO0w7NjU2Qzs7OztOOzs7OzsKKzJGOENBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDQTtMbzswO0w7MjMwMEE7Ozs7Tjs7Ozs7CisyRjhDQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Q0I7TG87MDtMOzY1RTM7Ozs7Tjs7Ozs7CisyRjhDQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Q0M7TG87MDtMOzY2Rjg7Ozs7Tjs7Ozs7CisyRjhDRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Q0Q7TG87MDtMOzY2NDk7Ozs7Tjs7Ozs7CisyRjhDRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Q0U7TG87MDtMOzNCMTk7Ozs7Tjs7Ozs7CisyRjhDRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Q0Y7TG87MDtMOzY2OTE7Ozs7Tjs7Ozs7CisyRjhEMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDA7TG87MDtMOzNCMDg7Ozs7Tjs7Ozs7CisyRjhEMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDE7TG87MDtMOzNBRTQ7Ozs7Tjs7Ozs7CisyRjhEMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDI7TG87MDtMOzUxOTI7Ozs7Tjs7Ozs7CisyRjhEMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDM7TG87MDtMOzUxOTU7Ozs7Tjs7Ozs7CisyRjhENDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDQ7TG87MDtMOzY3MDA7Ozs7Tjs7Ozs7CisyRjhENTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDU7TG87MDtMOzY2OUM7Ozs7Tjs7Ozs7CisyRjhENjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDY7TG87MDtMOzgwQUQ7Ozs7Tjs7Ozs7CisyRjhENztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDc7TG87MDtMOzQzRDk7Ozs7Tjs7Ozs7CisyRjhEODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDg7TG87MDtMOzY3MTc7Ozs7Tjs7Ozs7CisyRjhEOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDk7TG87MDtMOzY3MUI7Ozs7Tjs7Ozs7CisyRjhEQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4REE7TG87MDtMOzY3MjE7Ozs7Tjs7Ozs7CisyRjhEQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4REI7TG87MDtMOzY3NUU7Ozs7Tjs7Ozs7CisyRjhEQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4REM7TG87MDtMOzY3NTM7Ozs7Tjs7Ozs7CisyRjhERDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4REQ7TG87MDtMOzIzM0MzOzs7O047Ozs7OworMkY4REU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOERFO0xvOzA7TDszQjQ5Ozs7O047Ozs7OworMkY4REY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOERGO0xvOzA7TDs2N0ZBOzs7O047Ozs7OworMkY4RTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEUwO0xvOzA7TDs2Nzg1Ozs7O047Ozs7OworMkY4RTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEUxO0xvOzA7TDs2ODUyOzs7O047Ozs7OworMkY4RTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEUyO0xvOzA7TDs2ODg1Ozs7O047Ozs7OworMkY4RTM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEUzO0xvOzA7TDsyMzQ2RDs7OztOOzs7OzsKKzJGOEU0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFNDtMbzswO0w7Njg4RTs7OztOOzs7OzsKKzJGOEU1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFNTtMbzswO0w7NjgxRjs7OztOOzs7OzsKKzJGOEU2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFNjtMbzswO0w7NjkxNDs7OztOOzs7OzsKKzJGOEU3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFNztMbzswO0w7M0I5RDs7OztOOzs7OzsKKzJGOEU4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFODtMbzswO0w7Njk0Mjs7OztOOzs7OzsKKzJGOEU5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFOTtMbzswO0w7NjlBMzs7OztOOzs7OzsKKzJGOEVBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFQTtMbzswO0w7NjlFQTs7OztOOzs7OzsKKzJGOEVCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFQjtMbzswO0w7NkFBODs7OztOOzs7OzsKKzJGOEVDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFQztMbzswO0w7MjM2QTM7Ozs7Tjs7Ozs7CisyRjhFRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RUQ7TG87MDtMOzZBREI7Ozs7Tjs7Ozs7CisyRjhFRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RUU7TG87MDtMOzNDMTg7Ozs7Tjs7Ozs7CisyRjhFRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RUY7TG87MDtMOzZCMjE7Ozs7Tjs7Ozs7CisyRjhGMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RjA7TG87MDtMOzIzOEE3Ozs7O047Ozs7OworMkY4RjE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEYxO0xvOzA7TDs2QjU0Ozs7O047Ozs7OworMkY4RjI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEYyO0xvOzA7TDszQzRFOzs7O047Ozs7OworMkY4RjM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEYzO0xvOzA7TDs2QjcyOzs7O047Ozs7OworMkY4RjQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEY0O0xvOzA7TDs2QjlGOzs7O047Ozs7OworMkY4RjU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEY1O0xvOzA7TDs2QkJBOzs7O047Ozs7OworMkY4RjY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEY2O0xvOzA7TDs2QkJCOzs7O047Ozs7OworMkY4Rjc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEY3O0xvOzA7TDsyM0E4RDs7OztOOzs7OzsKKzJGOEY4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhGODtMbzswO0w7MjFEMEI7Ozs7Tjs7Ozs7CisyRjhGOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Rjk7TG87MDtMOzIzQUZBOzs7O047Ozs7OworMkY4RkE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEZBO0xvOzA7TDs2QzRFOzs7O047Ozs7OworMkY4RkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEZCO0xvOzA7TDsyM0NCQzs7OztOOzs7OzsKKzJGOEZDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhGQztMbzswO0w7NkNCRjs7OztOOzs7OzsKKzJGOEZEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhGRDtMbzswO0w7NkNDRDs7OztOOzs7OzsKKzJGOEZFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhGRTtMbzswO0w7NkM2Nzs7OztOOzs7OzsKKzJGOEZGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhGRjtMbzswO0w7NkQxNjs7OztOOzs7OzsKKzJGOTAwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkwMDtMbzswO0w7NkQzRTs7OztOOzs7OzsKKzJGOTAxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkwMTtMbzswO0w7NkQ3Nzs7OztOOzs7OzsKKzJGOTAyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkwMjtMbzswO0w7NkQ0MTs7OztOOzs7OzsKKzJGOTAzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkwMztMbzswO0w7NkQ2OTs7OztOOzs7OzsKKzJGOTA0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkwNDtMbzswO0w7NkQ3ODs7OztOOzs7OzsKKzJGOTA1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkwNTtMbzswO0w7NkQ4NTs7OztOOzs7OzsKKzJGOTA2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkwNjtMbzswO0w7MjNEMUU7Ozs7Tjs7Ozs7CisyRjkwNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MDc7TG87MDtMOzZEMzQ7Ozs7Tjs7Ozs7CisyRjkwODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MDg7TG87MDtMOzZFMkY7Ozs7Tjs7Ozs7CisyRjkwOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MDk7TG87MDtMOzZFNkU7Ozs7Tjs7Ozs7CisyRjkwQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MEE7TG87MDtMOzNEMzM7Ozs7Tjs7Ozs7CisyRjkwQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MEI7TG87MDtMOzZFQ0I7Ozs7Tjs7Ozs7CisyRjkwQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MEM7TG87MDtMOzZFQzc7Ozs7Tjs7Ozs7CisyRjkwRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MEQ7TG87MDtMOzIzRUQxOzs7O047Ozs7OworMkY5MEU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTBFO0xvOzA7TDs2REY5Ozs7O047Ozs7OworMkY5MEY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTBGO0xvOzA7TDs2RjZFOzs7O047Ozs7OworMkY5MTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTEwO0xvOzA7TDsyM0Y1RTs7OztOOzs7OzsKKzJGOTExO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkxMTtMbzswO0w7MjNGOEU7Ozs7Tjs7Ozs7CisyRjkxMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MTI7TG87MDtMOzZGQzY7Ozs7Tjs7Ozs7CisyRjkxMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MTM7TG87MDtMOzcwMzk7Ozs7Tjs7Ozs7CisyRjkxNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MTQ7TG87MDtMOzcwMUU7Ozs7Tjs7Ozs7CisyRjkxNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MTU7TG87MDtMOzcwMUI7Ozs7Tjs7Ozs7CisyRjkxNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MTY7TG87MDtMOzNEOTY7Ozs7Tjs7Ozs7CisyRjkxNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MTc7TG87MDtMOzcwNEE7Ozs7Tjs7Ozs7CisyRjkxODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MTg7TG87MDtMOzcwN0Q7Ozs7Tjs7Ozs7CisyRjkxOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MTk7TG87MDtMOzcwNzc7Ozs7Tjs7Ozs7CisyRjkxQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MUE7TG87MDtMOzcwQUQ7Ozs7Tjs7Ozs7CisyRjkxQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MUI7TG87MDtMOzIwNTI1Ozs7O047Ozs7OworMkY5MUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTFDO0xvOzA7TDs3MTQ1Ozs7O047Ozs7OworMkY5MUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTFEO0xvOzA7TDsyNDI2Mzs7OztOOzs7OzsKKzJGOTFFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkxRTtMbzswO0w7NzE5Qzs7OztOOzs7OzsKKzJGOTFGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkxRjtMbzswO0w7NDNBQjs7OztOOzs7OzsKKzJGOTIwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyMDtMbzswO0w7NzIyODs7OztOOzs7OzsKKzJGOTIxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyMTtMbzswO0w7NzIzNTs7OztOOzs7OzsKKzJGOTIyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyMjtMbzswO0w7NzI1MDs7OztOOzs7OzsKKzJGOTIzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyMztMbzswO0w7MjQ2MDg7Ozs7Tjs7Ozs7CisyRjkyNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MjQ7TG87MDtMOzcyODA7Ozs7Tjs7Ozs7CisyRjkyNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MjU7TG87MDtMOzcyOTU7Ozs7Tjs7Ozs7CisyRjkyNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MjY7TG87MDtMOzI0NzM1Ozs7O047Ozs7OworMkY5Mjc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTI3O0xvOzA7TDsyNDgxNDs7OztOOzs7OzsKKzJGOTI4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyODtMbzswO0w7NzM3QTs7OztOOzs7OzsKKzJGOTI5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyOTtMbzswO0w7NzM4Qjs7OztOOzs7OzsKKzJGOTJBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyQTtMbzswO0w7M0VBQzs7OztOOzs7OzsKKzJGOTJCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyQjtMbzswO0w7NzNBNTs7OztOOzs7OzsKKzJGOTJDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyQztMbzswO0w7M0VCODs7OztOOzs7OzsKKzJGOTJEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyRDtMbzswO0w7M0VCODs7OztOOzs7OzsKKzJGOTJFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyRTtMbzswO0w7NzQ0Nzs7OztOOzs7OzsKKzJGOTJGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyRjtMbzswO0w7NzQ1Qzs7OztOOzs7OzsKKzJGOTMwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkzMDtMbzswO0w7NzQ3MTs7OztOOzs7OzsKKzJGOTMxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkzMTtMbzswO0w7NzQ4NTs7OztOOzs7OzsKKzJGOTMyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkzMjtMbzswO0w7NzRDQTs7OztOOzs7OzsKKzJGOTMzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkzMztMbzswO0w7M0YxQjs7OztOOzs7OzsKKzJGOTM0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkzNDtMbzswO0w7NzUyNDs7OztOOzs7OzsKKzJGOTM1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkzNTtMbzswO0w7MjRDMzY7Ozs7Tjs7Ozs7CisyRjkzNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MzY7TG87MDtMOzc1M0U7Ozs7Tjs7Ozs7CisyRjkzNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Mzc7TG87MDtMOzI0QzkyOzs7O047Ozs7OworMkY5Mzg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTM4O0xvOzA7TDs3NTcwOzs7O047Ozs7OworMkY5Mzk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTM5O0xvOzA7TDsyMjE5Rjs7OztOOzs7OzsKKzJGOTNBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkzQTtMbzswO0w7NzYxMDs7OztOOzs7OzsKKzJGOTNCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkzQjtMbzswO0w7MjRGQTE7Ozs7Tjs7Ozs7CisyRjkzQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5M0M7TG87MDtMOzI0RkI4Ozs7O047Ozs7OworMkY5M0Q7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTNEO0xvOzA7TDsyNTA0NDs7OztOOzs7OzsKKzJGOTNFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkzRTtMbzswO0w7M0ZGQzs7OztOOzs7OzsKKzJGOTNGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkzRjtMbzswO0w7NDAwODs7OztOOzs7OzsKKzJGOTQwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk0MDtMbzswO0w7NzZGNDs7OztOOzs7OzsKKzJGOTQxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk0MTtMbzswO0w7MjUwRjM7Ozs7Tjs7Ozs7CisyRjk0MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NDI7TG87MDtMOzI1MEYyOzs7O047Ozs7OworMkY5NDM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTQzO0xvOzA7TDsyNTExOTs7OztOOzs7OzsKKzJGOTQ0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk0NDtMbzswO0w7MjUxMzM7Ozs7Tjs7Ozs7CisyRjk0NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NDU7TG87MDtMOzc3MUU7Ozs7Tjs7Ozs7CisyRjk0NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NDY7TG87MDtMOzc3MUY7Ozs7Tjs7Ozs7CisyRjk0NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NDc7TG87MDtMOzc3MUY7Ozs7Tjs7Ozs7CisyRjk0ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NDg7TG87MDtMOzc3NEE7Ozs7Tjs7Ozs7CisyRjk0OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NDk7TG87MDtMOzQwMzk7Ozs7Tjs7Ozs7CisyRjk0QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NEE7TG87MDtMOzc3OEI7Ozs7Tjs7Ozs7CisyRjk0QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NEI7TG87MDtMOzQwNDY7Ozs7Tjs7Ozs7CisyRjk0QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NEM7TG87MDtMOzQwOTY7Ozs7Tjs7Ozs7CisyRjk0RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NEQ7TG87MDtMOzI1NDFEOzs7O047Ozs7OworMkY5NEU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTRFO0xvOzA7TDs3ODRFOzs7O047Ozs7OworMkY5NEY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTRGO0xvOzA7TDs3ODhDOzs7O047Ozs7OworMkY5NTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTUwO0xvOzA7TDs3OENDOzs7O047Ozs7OworMkY5NTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTUxO0xvOzA7TDs0MEUzOzs7O047Ozs7OworMkY5NTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTUyO0xvOzA7TDsyNTYyNjs7OztOOzs7OzsKKzJGOTUzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk1MztMbzswO0w7Nzk1Njs7OztOOzs7OzsKKzJGOTU0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk1NDtMbzswO0w7MjU2OUE7Ozs7Tjs7Ozs7CisyRjk1NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NTU7TG87MDtMOzI1NkM1Ozs7O047Ozs7OworMkY5NTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTU2O0xvOzA7TDs3OThGOzs7O047Ozs7OworMkY5NTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTU3O0xvOzA7TDs3OUVCOzs7O047Ozs7OworMkY5NTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTU4O0xvOzA7TDs0MTJGOzs7O047Ozs7OworMkY5NTk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTU5O0xvOzA7TDs3QTQwOzs7O047Ozs7OworMkY5NUE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTVBO0xvOzA7TDs3QTRBOzs7O047Ozs7OworMkY5NUI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTVCO0xvOzA7TDs3QTRGOzs7O047Ozs7OworMkY5NUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTVDO0xvOzA7TDsyNTk3Qzs7OztOOzs7OzsKKzJGOTVEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk1RDtMbzswO0w7MjVBQTc7Ozs7Tjs7Ozs7CisyRjk1RTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NUU7TG87MDtMOzI1QUE3Ozs7O047Ozs7OworMkY5NUY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTVGO0xvOzA7TDs3QUFFOzs7O047Ozs7OworMkY5NjA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTYwO0xvOzA7TDs0MjAyOzs7O047Ozs7OworMkY5NjE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTYxO0xvOzA7TDsyNUJBQjs7OztOOzs7OzsKKzJGOTYyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk2MjtMbzswO0w7N0JDNjs7OztOOzs7OzsKKzJGOTYzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk2MztMbzswO0w7N0JDOTs7OztOOzs7OzsKKzJGOTY0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk2NDtMbzswO0w7NDIyNzs7OztOOzs7OzsKKzJGOTY1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk2NTtMbzswO0w7MjVDODA7Ozs7Tjs7Ozs7CisyRjk2NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NjY7TG87MDtMOzdDRDI7Ozs7Tjs7Ozs7CisyRjk2NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Njc7TG87MDtMOzQyQTA7Ozs7Tjs7Ozs7CisyRjk2ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Njg7TG87MDtMOzdDRTg7Ozs7Tjs7Ozs7CisyRjk2OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Njk7TG87MDtMOzdDRTM7Ozs7Tjs7Ozs7CisyRjk2QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NkE7TG87MDtMOzdEMDA7Ozs7Tjs7Ozs7CisyRjk2QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NkI7TG87MDtMOzI1Rjg2Ozs7O047Ozs7OworMkY5NkM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTZDO0xvOzA7TDs3RDYzOzs7O047Ozs7OworMkY5NkQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTZEO0xvOzA7TDs0MzAxOzs7O047Ozs7OworMkY5NkU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTZFO0xvOzA7TDs3REM3Ozs7O047Ozs7OworMkY5NkY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTZGO0xvOzA7TDs3RTAyOzs7O047Ozs7OworMkY5NzA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTcwO0xvOzA7TDs3RTQ1Ozs7O047Ozs7OworMkY5NzE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTcxO0xvOzA7TDs0MzM0Ozs7O047Ozs7OworMkY5NzI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTcyO0xvOzA7TDsyNjIyODs7OztOOzs7OzsKKzJGOTczO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk3MztMbzswO0w7MjYyNDc7Ozs7Tjs7Ozs7CisyRjk3NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NzQ7TG87MDtMOzQzNTk7Ozs7Tjs7Ozs7CisyRjk3NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NzU7TG87MDtMOzI2MkQ5Ozs7O047Ozs7OworMkY5NzY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTc2O0xvOzA7TDs3RjdBOzs7O047Ozs7OworMkY5Nzc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTc3O0xvOzA7TDsyNjMzRTs7OztOOzs7OzsKKzJGOTc4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk3ODtMbzswO0w7N0Y5NTs7OztOOzs7OzsKKzJGOTc5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk3OTtMbzswO0w7N0ZGQTs7OztOOzs7OzsKKzJGOTdBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk3QTtMbzswO0w7ODAwNTs7OztOOzs7OzsKKzJGOTdCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk3QjtMbzswO0w7MjY0REE7Ozs7Tjs7Ozs7CisyRjk3QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5N0M7TG87MDtMOzI2NTIzOzs7O047Ozs7OworMkY5N0Q7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTdEO0xvOzA7TDs4MDYwOzs7O047Ozs7OworMkY5N0U7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTdFO0xvOzA7TDsyNjVBODs7OztOOzs7OzsKKzJGOTdGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk3RjtMbzswO0w7ODA3MDs7OztOOzs7OzsKKzJGOTgwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk4MDtMbzswO0w7MjMzNUY7Ozs7Tjs7Ozs7CisyRjk4MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5ODE7TG87MDtMOzQzRDU7Ozs7Tjs7Ozs7CisyRjk4MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5ODI7TG87MDtMOzgwQjI7Ozs7Tjs7Ozs7CisyRjk4MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5ODM7TG87MDtMOzgxMDM7Ozs7Tjs7Ozs7CisyRjk4NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5ODQ7TG87MDtMOzQ0MEI7Ozs7Tjs7Ozs7CisyRjk4NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5ODU7TG87MDtMOzgxM0U7Ozs7Tjs7Ozs7CisyRjk4NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5ODY7TG87MDtMOzVBQjU7Ozs7Tjs7Ozs7CisyRjk4NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5ODc7TG87MDtMOzI2N0E3Ozs7O047Ozs7OworMkY5ODg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTg4O0xvOzA7TDsyNjdCNTs7OztOOzs7OzsKKzJGOTg5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk4OTtMbzswO0w7MjMzOTM7Ozs7Tjs7Ozs7CisyRjk4QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5OEE7TG87MDtMOzIzMzlDOzs7O047Ozs7OworMkY5OEI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOThCO0xvOzA7TDs4MjAxOzs7O047Ozs7OworMkY5OEM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOThDO0xvOzA7TDs4MjA0Ozs7O047Ozs7OworMkY5OEQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOThEO0xvOzA7TDs4RjlFOzs7O047Ozs7OworMkY5OEU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOThFO0xvOzA7TDs0NDZCOzs7O047Ozs7OworMkY5OEY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOThGO0xvOzA7TDs4MjkxOzs7O047Ozs7OworMkY5OTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTkwO0xvOzA7TDs4MjhCOzs7O047Ozs7OworMkY5OTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTkxO0xvOzA7TDs4MjlEOzs7O047Ozs7OworMkY5OTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTkyO0xvOzA7TDs1MkIzOzs7O047Ozs7OworMkY5OTM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTkzO0xvOzA7TDs4MkIxOzs7O047Ozs7OworMkY5OTQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTk0O0xvOzA7TDs4MkIzOzs7O047Ozs7OworMkY5OTU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTk1O0xvOzA7TDs4MkJEOzs7O047Ozs7OworMkY5OTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTk2O0xvOzA7TDs4MkU2Ozs7O047Ozs7OworMkY5OTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTk3O0xvOzA7TDsyNkIzQzs7OztOOzs7OzsKKzJGOTk4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5ODtMbzswO0w7ODJFNTs7OztOOzs7OzsKKzJGOTk5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5OTtMbzswO0w7ODMxRDs7OztOOzs7OzsKKzJGOTlBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5QTtMbzswO0w7ODM2Mzs7OztOOzs7OzsKKzJGOTlCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5QjtMbzswO0w7ODNBRDs7OztOOzs7OzsKKzJGOTlDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5QztMbzswO0w7ODMyMzs7OztOOzs7OzsKKzJGOTlEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5RDtMbzswO0w7ODNCRDs7OztOOzs7OzsKKzJGOTlFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5RTtMbzswO0w7ODNFNzs7OztOOzs7OzsKKzJGOTlGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5RjtMbzswO0w7ODQ1Nzs7OztOOzs7OzsKKzJGOUEwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlBMDtMbzswO0w7ODM1Mzs7OztOOzs7OzsKKzJGOUExO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlBMTtMbzswO0w7ODNDQTs7OztOOzs7OzsKKzJGOUEyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlBMjtMbzswO0w7ODNDQzs7OztOOzs7OzsKKzJGOUEzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlBMztMbzswO0w7ODNEQzs7OztOOzs7OzsKKzJGOUE0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlBNDtMbzswO0w7MjZDMzY7Ozs7Tjs7Ozs7CisyRjlBNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QTU7TG87MDtMOzI2RDZCOzs7O047Ozs7OworMkY5QTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUE2O0xvOzA7TDsyNkNENTs7OztOOzs7OzsKKzJGOUE3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlBNztMbzswO0w7NDUyQjs7OztOOzs7OzsKKzJGOUE4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlBODtMbzswO0w7ODRGMTs7OztOOzs7OzsKKzJGOUE5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlBOTtMbzswO0w7ODRGMzs7OztOOzs7OzsKKzJGOUFBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlBQTtMbzswO0w7ODUxNjs7OztOOzs7OzsKKzJGOUFCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlBQjtMbzswO0w7MjczQ0E7Ozs7Tjs7Ozs7CisyRjlBQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QUM7TG87MDtMOzg1NjQ7Ozs7Tjs7Ozs7CisyRjlBRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QUQ7TG87MDtMOzI2RjJDOzs7O047Ozs7OworMkY5QUU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUFFO0xvOzA7TDs0NTVEOzs7O047Ozs7OworMkY5QUY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUFGO0xvOzA7TDs0NTYxOzs7O047Ozs7OworMkY5QjA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUIwO0xvOzA7TDsyNkZCMTs7OztOOzs7OzsKKzJGOUIxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlCMTtMbzswO0w7MjcwRDI7Ozs7Tjs7Ozs7CisyRjlCMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QjI7TG87MDtMOzQ1NkI7Ozs7Tjs7Ozs7CisyRjlCMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QjM7TG87MDtMOzg2NTA7Ozs7Tjs7Ozs7CisyRjlCNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QjQ7TG87MDtMOzg2NUM7Ozs7Tjs7Ozs7CisyRjlCNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QjU7TG87MDtMOzg2Njc7Ozs7Tjs7Ozs7CisyRjlCNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QjY7TG87MDtMOzg2Njk7Ozs7Tjs7Ozs7CisyRjlCNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Qjc7TG87MDtMOzg2QTk7Ozs7Tjs7Ozs7CisyRjlCODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Qjg7TG87MDtMOzg2ODg7Ozs7Tjs7Ozs7CisyRjlCOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Qjk7TG87MDtMOzg3MEU7Ozs7Tjs7Ozs7CisyRjlCQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QkE7TG87MDtMOzg2RTI7Ozs7Tjs7Ozs7CisyRjlCQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QkI7TG87MDtMOzg3Nzk7Ozs7Tjs7Ozs7CisyRjlCQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QkM7TG87MDtMOzg3Mjg7Ozs7Tjs7Ozs7CisyRjlCRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QkQ7TG87MDtMOzg3NkI7Ozs7Tjs7Ozs7CisyRjlCRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QkU7TG87MDtMOzg3ODY7Ozs7Tjs7Ozs7CisyRjlCRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QkY7TG87MDtMOzRENTc7Ozs7Tjs7Ozs7CisyRjlDMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QzA7TG87MDtMOzg3RTE7Ozs7Tjs7Ozs7CisyRjlDMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QzE7TG87MDtMOzg4MDE7Ozs7Tjs7Ozs7CisyRjlDMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QzI7TG87MDtMOzQ1Rjk7Ozs7Tjs7Ozs7CisyRjlDMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QzM7TG87MDtMOzg4NjA7Ozs7Tjs7Ozs7CisyRjlDNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QzQ7TG87MDtMOzg4NjM7Ozs7Tjs7Ozs7CisyRjlDNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QzU7TG87MDtMOzI3NjY3Ozs7O047Ozs7OworMkY5QzY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUM2O0xvOzA7TDs4OEQ3Ozs7O047Ozs7OworMkY5Qzc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUM3O0xvOzA7TDs4OERFOzs7O047Ozs7OworMkY5Qzg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUM4O0xvOzA7TDs0NjM1Ozs7O047Ozs7OworMkY5Qzk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUM5O0xvOzA7TDs4OEZBOzs7O047Ozs7OworMkY5Q0E7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUNBO0xvOzA7TDszNEJCOzs7O047Ozs7OworMkY5Q0I7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUNCO0xvOzA7TDsyNzhBRTs7OztOOzs7OzsKKzJGOUNDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlDQztMbzswO0w7Mjc5NjY7Ozs7Tjs7Ozs7CisyRjlDRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Q0Q7TG87MDtMOzQ2QkU7Ozs7Tjs7Ozs7CisyRjlDRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Q0U7TG87MDtMOzQ2Qzc7Ozs7Tjs7Ozs7CisyRjlDRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Q0Y7TG87MDtMOzhBQTA7Ozs7Tjs7Ozs7CisyRjlEMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RDA7TG87MDtMOzhBRUQ7Ozs7Tjs7Ozs7CisyRjlEMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RDE7TG87MDtMOzhCOEE7Ozs7Tjs7Ozs7CisyRjlEMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RDI7TG87MDtMOzhDNTU7Ozs7Tjs7Ozs7CisyRjlEMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RDM7TG87MDtMOzI3Q0E4Ozs7O047Ozs7OworMkY5RDQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUQ0O0xvOzA7TDs4Q0FCOzs7O047Ozs7OworMkY5RDU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUQ1O0xvOzA7TDs4Q0MxOzs7O047Ozs7OworMkY5RDY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUQ2O0xvOzA7TDs4RDFCOzs7O047Ozs7OworMkY5RDc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUQ3O0xvOzA7TDs4RDc3Ozs7O047Ozs7OworMkY5RDg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUQ4O0xvOzA7TDsyN0YyRjs7OztOOzs7OzsKKzJGOUQ5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlEOTtMbzswO0w7MjA4MDQ7Ozs7Tjs7Ozs7CisyRjlEQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5REE7TG87MDtMOzhEQ0I7Ozs7Tjs7Ozs7CisyRjlEQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5REI7TG87MDtMOzhEQkM7Ozs7Tjs7Ozs7CisyRjlEQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5REM7TG87MDtMOzhERjA7Ozs7Tjs7Ozs7CisyRjlERDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5REQ7TG87MDtMOzIwOERFOzs7O047Ozs7OworMkY5REU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOURFO0xvOzA7TDs4RUQ0Ozs7O047Ozs7OworMkY5REY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOURGO0xvOzA7TDs4RjM4Ozs7O047Ozs7OworMkY5RTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUUwO0xvOzA7TDsyODVEMjs7OztOOzs7OzsKKzJGOUUxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlFMTtMbzswO0w7Mjg1RUQ7Ozs7Tjs7Ozs7CisyRjlFMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RTI7TG87MDtMOzkwOTQ7Ozs7Tjs7Ozs7CisyRjlFMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RTM7TG87MDtMOzkwRjE7Ozs7Tjs7Ozs7CisyRjlFNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RTQ7TG87MDtMOzkxMTE7Ozs7Tjs7Ozs7CisyRjlFNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RTU7TG87MDtMOzI4NzJFOzs7O047Ozs7OworMkY5RTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUU2O0xvOzA7TDs5MTFCOzs7O047Ozs7OworMkY5RTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUU3O0xvOzA7TDs5MjM4Ozs7O047Ozs7OworMkY5RTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUU4O0xvOzA7TDs5MkQ3Ozs7O047Ozs7OworMkY5RTk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUU5O0xvOzA7TDs5MkQ4Ozs7O047Ozs7OworMkY5RUE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUVBO0xvOzA7TDs5MjdDOzs7O047Ozs7OworMkY5RUI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUVCO0xvOzA7TDs5M0Y5Ozs7O047Ozs7OworMkY5RUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUVDO0xvOzA7TDs5NDE1Ozs7O047Ozs7OworMkY5RUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUVEO0xvOzA7TDsyOEJGQTs7OztOOzs7OzsKKzJGOUVFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlFRTtMbzswO0w7OTU4Qjs7OztOOzs7OzsKKzJGOUVGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlFRjtMbzswO0w7NDk5NTs7OztOOzs7OzsKKzJGOUYwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlGMDtMbzswO0w7OTVCNzs7OztOOzs7OzsKKzJGOUYxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlGMTtMbzswO0w7MjhENzc7Ozs7Tjs7Ozs7CisyRjlGMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RjI7TG87MDtMOzQ5RTY7Ozs7Tjs7Ozs7CisyRjlGMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RjM7TG87MDtMOzk2QzM7Ozs7Tjs7Ozs7CisyRjlGNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RjQ7TG87MDtMOzVEQjI7Ozs7Tjs7Ozs7CisyRjlGNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RjU7TG87MDtMOzk3MjM7Ozs7Tjs7Ozs7CisyRjlGNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RjY7TG87MDtMOzI5MTQ1Ozs7O047Ozs7OworMkY5Rjc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUY3O0xvOzA7TDsyOTIxQTs7OztOOzs7OzsKKzJGOUY4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlGODtMbzswO0w7NEE2RTs7OztOOzs7OzsKKzJGOUY5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlGOTtMbzswO0w7NEE3Njs7OztOOzs7OzsKKzJGOUZBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlGQTtMbzswO0w7OTdFMDs7OztOOzs7OzsKKzJGOUZCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlGQjtMbzswO0w7Mjk0MEE7Ozs7Tjs7Ozs7CisyRjlGQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RkM7TG87MDtMOzRBQjI7Ozs7Tjs7Ozs7CisyRjlGRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RkQ7TG87MDtMOzI5NDk2Ozs7O047Ozs7OworMkY5RkU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUZFO0xvOzA7TDs5ODBCOzs7O047Ozs7OworMkY5RkY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUZGO0xvOzA7TDs5ODBCOzs7O047Ozs7OworMkZBMDA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTAwO0xvOzA7TDs5ODI5Ozs7O047Ozs7OworMkZBMDE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTAxO0xvOzA7TDsyOTVCNjs7OztOOzs7OzsKKzJGQTAyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkEwMjtMbzswO0w7OThFMjs7OztOOzs7OzsKKzJGQTAzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkEwMztMbzswO0w7NEIzMzs7OztOOzs7OzsKKzJGQTA0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkEwNDtMbzswO0w7OTkyOTs7OztOOzs7OzsKKzJGQTA1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkEwNTtMbzswO0w7OTlBNzs7OztOOzs7OzsKKzJGQTA2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkEwNjtMbzswO0w7OTlDMjs7OztOOzs7OzsKKzJGQTA3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkEwNztMbzswO0w7OTlGRTs7OztOOzs7OzsKKzJGQTA4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkEwODtMbzswO0w7NEJDRTs7OztOOzs7OzsKKzJGQTA5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkEwOTtMbzswO0w7MjlCMzA7Ozs7Tjs7Ozs7CisyRkEwQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMEE7TG87MDtMOzlCMTI7Ozs7Tjs7Ozs7CisyRkEwQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMEI7TG87MDtMOzlDNDA7Ozs7Tjs7Ozs7CisyRkEwQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMEM7TG87MDtMOzlDRkQ7Ozs7Tjs7Ozs7CisyRkEwRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMEQ7TG87MDtMOzRDQ0U7Ozs7Tjs7Ozs7CisyRkEwRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMEU7TG87MDtMOzRDRUQ7Ozs7Tjs7Ozs7CisyRkEwRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMEY7TG87MDtMOzlENjc7Ozs7Tjs7Ozs7CisyRkExMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMTA7TG87MDtMOzJBMENFOzs7O047Ozs7OworMkZBMTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTExO0xvOzA7TDs0Q0Y4Ozs7O047Ozs7OworMkZBMTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTEyO0xvOzA7TDsyQTEwNTs7OztOOzs7OzsKKzJGQTEzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkExMztMbzswO0w7MkEyMEU7Ozs7Tjs7Ozs7CisyRkExNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMTQ7TG87MDtMOzJBMjkxOzs7O047Ozs7OworMkZBMTU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTE1O0xvOzA7TDs5RUJCOzs7O047Ozs7OworMkZBMTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTE2O0xvOzA7TDs0RDU2Ozs7O047Ozs7OworMkZBMTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTE3O0xvOzA7TDs5RUY5Ozs7O047Ozs7OworMkZBMTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTE4O0xvOzA7TDs5RUZFOzs7O047Ozs7OworMkZBMTk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTE5O0xvOzA7TDs5RjA1Ozs7O047Ozs7OworMkZBMUE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTFBO0xvOzA7TDs5RjBGOzs7O047Ozs7OworMkZBMUI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTFCO0xvOzA7TDs5RjE2Ozs7O047Ozs7OworMkZBMUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTFDO0xvOzA7TDs5RjNCOzs7O047Ozs7OworMkZBMUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTFEO0xvOzA7TDsyQTYwMDs7OztOOzs7OzsKK0UwMDAxO0xBTkdVQUdFIFRBRztDZjswO0JOOzs7OztOOzs7OzsKK0UwMDIwO1RBRyBTUEFDRTtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDIxO1RBRyBFWENMQU1BVElPTiBNQVJLO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMjI7VEFHIFFVT1RBVElPTiBNQVJLO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMjM7VEFHIE5VTUJFUiBTSUdOO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMjQ7VEFHIERPTExBUiBTSUdOO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMjU7VEFHIFBFUkNFTlQgU0lHTjtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDI2O1RBRyBBTVBFUlNBTkQ7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAyNztUQUcgQVBPU1RST1BIRTtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDI4O1RBRyBMRUZUIFBBUkVOVEhFU0lTO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMjk7VEFHIFJJR0hUIFBBUkVOVEhFU0lTO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMkE7VEFHIEFTVEVSSVNLO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMkI7VEFHIFBMVVMgU0lHTjtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDJDO1RBRyBDT01NQTtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDJEO1RBRyBIWVBIRU4tTUlOVVM7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAyRTtUQUcgRlVMTCBTVE9QO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMkY7VEFHIFNPTElEVVM7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzMDtUQUcgRElHSVQgWkVSTztDZjswO0JOOzs7OztOOzs7OzsKK0UwMDMxO1RBRyBESUdJVCBPTkU7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzMjtUQUcgRElHSVQgVFdPO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMzM7VEFHIERJR0lUIFRIUkVFO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMzQ7VEFHIERJR0lUIEZPVVI7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzNTtUQUcgRElHSVQgRklWRTtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDM2O1RBRyBESUdJVCBTSVg7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzNztUQUcgRElHSVQgU0VWRU47Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzODtUQUcgRElHSVQgRUlHSFQ7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzOTtUQUcgRElHSVQgTklORTtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDNBO1RBRyBDT0xPTjtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDNCO1RBRyBTRU1JQ09MT047Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzQztUQUcgTEVTUy1USEFOIFNJR047Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzRDtUQUcgRVFVQUxTIFNJR047Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzRTtUQUcgR1JFQVRFUi1USEFOIFNJR047Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzRjtUQUcgUVVFU1RJT04gTUFSSztDZjswO0JOOzs7OztOOzs7OzsKK0UwMDQwO1RBRyBDT01NRVJDSUFMIEFUO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNDE7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIEE7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA0MjtUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQjtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDQzO1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBDO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNDQ7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIEQ7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA0NTtUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRTtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDQ2O1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBGO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNDc7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIEc7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA0ODtUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSDtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDQ5O1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNEE7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIEo7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA0QjtUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSztDZjswO0JOOzs7OztOOzs7OzsKK0UwMDRDO1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBMO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNEQ7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIE07Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA0RTtUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgTjtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDRGO1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBPO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNTA7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIFA7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA1MTtUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgUTtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDUyO1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBSO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNTM7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIFM7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA1NDtUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVDtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDU1O1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBVO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNTY7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIFY7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA1NztUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVztDZjswO0JOOzs7OztOOzs7OzsKK0UwMDU4O1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBYO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNTk7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIFk7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA1QTtUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgWjtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDVCO1RBRyBMRUZUIFNRVUFSRSBCUkFDS0VUO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNUM7VEFHIFJFVkVSU0UgU09MSURVUztDZjswO0JOOzs7OztOOzs7OzsKK0UwMDVEO1RBRyBSSUdIVCBTUVVBUkUgQlJBQ0tFVDtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDVFO1RBRyBDSVJDVU1GTEVYIEFDQ0VOVDtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDVGO1RBRyBMT1cgTElORTtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDYwO1RBRyBHUkFWRSBBQ0NFTlQ7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2MTtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEE7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2MjtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEI7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2MztUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEM7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2NDtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEQ7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2NTtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEU7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2NjtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEY7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2NztUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEc7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2ODtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEg7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2OTtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEk7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2QTtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEo7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2QjtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEs7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2QztUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEw7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2RDtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIE07Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2RTtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIE47Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2RjtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIE87Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3MDtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIFA7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3MTtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIFE7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3MjtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIFI7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3MztUQUcgTEFUSU4gU01BTEwgTEVUVEVSIFM7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3NDtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIFQ7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3NTtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIFU7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3NjtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIFY7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3NztUQUcgTEFUSU4gU01BTEwgTEVUVEVSIFc7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3ODtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIFg7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3OTtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIFk7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3QTtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIFo7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3QjtUQUcgTEVGVCBDVVJMWSBCUkFDS0VUO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwN0M7VEFHIFZFUlRJQ0FMIExJTkU7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3RDtUQUcgUklHSFQgQ1VSTFkgQlJBQ0tFVDtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDdFO1RBRyBUSUxERTtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDdGO0NBTkNFTCBUQUc7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitGMDAwMDs8UGxhbmUgMTUgUHJpdmF0ZSBVc2UsIEZpcnN0PjtDbzswO0w7Ozs7O047Ozs7OworRkZGRkQ7PFBsYW5lIDE1IFByaXZhdGUgVXNlLCBMYXN0PjtDbzswO0w7Ozs7O047Ozs7OworMTAwMDAwOzxQbGFuZSAxNiBQcml2YXRlIFVzZSwgRmlyc3Q+O0NvOzA7TDs7Ozs7Tjs7Ozs7CisxMEZGRkQ7PFBsYW5lIDE2IFByaXZhdGUgVXNlLCBMYXN0PjtDbzswO0w7Ozs7O047Ozs7OwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvVW5pY29kZURhdGEudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvVW5pY29kZURhdGEudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjEyNWE2OTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9Vbmljb2RlRGF0YS50eHQKQEAgLTAsMCArMSwxMzg3NCBAQAorMDAwMDs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtOVUxMOzs7OworMDAwMTs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtTVEFSVCBPRiBIRUFESU5HOzs7OworMDAwMjs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtTVEFSVCBPRiBURVhUOzs7OworMDAwMzs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtFTkQgT0YgVEVYVDs7OzsKKzAwMDQ7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047RU5EIE9GIFRSQU5TTUlTU0lPTjs7OzsKKzAwMDU7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047RU5RVUlSWTs7OzsKKzAwMDY7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047QUNLTk9XTEVER0U7Ozs7CiswMDA3Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO0JFTEw7Ozs7CiswMDA4Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO0JBQ0tTUEFDRTs7OzsKKzAwMDk7PGNvbnRyb2w+O0NjOzA7Uzs7Ozs7TjtDSEFSQUNURVIgVEFCVUxBVElPTjs7OzsKKzAwMEE7PGNvbnRyb2w+O0NjOzA7Qjs7Ozs7TjtMSU5FIEZFRUQgKExGKTs7OzsKKzAwMEI7PGNvbnRyb2w+O0NjOzA7Uzs7Ozs7TjtMSU5FIFRBQlVMQVRJT047Ozs7CiswMDBDOzxjb250cm9sPjtDYzswO1dTOzs7OztOO0ZPUk0gRkVFRCAoRkYpOzs7OworMDAwRDs8Y29udHJvbD47Q2M7MDtCOzs7OztOO0NBUlJJQUdFIFJFVFVSTiAoQ1IpOzs7OworMDAwRTs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtTSElGVCBPVVQ7Ozs7CiswMDBGOzxjb250cm9sPjtDYzswO0JOOzs7OztOO1NISUZUIElOOzs7OworMDAxMDs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtEQVRBIExJTksgRVNDQVBFOzs7OworMDAxMTs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtERVZJQ0UgQ09OVFJPTCBPTkU7Ozs7CiswMDEyOzxjb250cm9sPjtDYzswO0JOOzs7OztOO0RFVklDRSBDT05UUk9MIFRXTzs7OzsKKzAwMTM7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047REVWSUNFIENPTlRST0wgVEhSRUU7Ozs7CiswMDE0Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO0RFVklDRSBDT05UUk9MIEZPVVI7Ozs7CiswMDE1Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO05FR0FUSVZFIEFDS05PV0xFREdFOzs7OworMDAxNjs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtTWU5DSFJPTk9VUyBJRExFOzs7OworMDAxNzs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtFTkQgT0YgVFJBTlNNSVNTSU9OIEJMT0NLOzs7OworMDAxODs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtDQU5DRUw7Ozs7CiswMDE5Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO0VORCBPRiBNRURJVU07Ozs7CiswMDFBOzxjb250cm9sPjtDYzswO0JOOzs7OztOO1NVQlNUSVRVVEU7Ozs7CiswMDFCOzxjb250cm9sPjtDYzswO0JOOzs7OztOO0VTQ0FQRTs7OzsKKzAwMUM7PGNvbnRyb2w+O0NjOzA7Qjs7Ozs7TjtJTkZPUk1BVElPTiBTRVBBUkFUT1IgRk9VUjs7OzsKKzAwMUQ7PGNvbnRyb2w+O0NjOzA7Qjs7Ozs7TjtJTkZPUk1BVElPTiBTRVBBUkFUT1IgVEhSRUU7Ozs7CiswMDFFOzxjb250cm9sPjtDYzswO0I7Ozs7O047SU5GT1JNQVRJT04gU0VQQVJBVE9SIFRXTzs7OzsKKzAwMUY7PGNvbnRyb2w+O0NjOzA7Uzs7Ozs7TjtJTkZPUk1BVElPTiBTRVBBUkFUT1IgT05FOzs7OworMDAyMDtTUEFDRTtaczswO1dTOzs7OztOOzs7OzsKKzAwMjE7RVhDTEFNQVRJT04gTUFSSztQbzswO09OOzs7OztOOzs7OzsKKzAwMjI7UVVPVEFUSU9OIE1BUks7UG87MDtPTjs7Ozs7Tjs7Ozs7CiswMDIzO05VTUJFUiBTSUdOO1BvOzA7RVQ7Ozs7O047Ozs7OworMDAyNDtET0xMQVIgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzAwMjU7UEVSQ0VOVCBTSUdOO1BvOzA7RVQ7Ozs7O047Ozs7OworMDAyNjtBTVBFUlNBTkQ7UG87MDtPTjs7Ozs7Tjs7Ozs7CiswMDI3O0FQT1NUUk9QSEU7UG87MDtPTjs7Ozs7TjtBUE9TVFJPUEhFLVFVT1RFOzs7OworMDAyODtMRUZUIFBBUkVOVEhFU0lTO1BzOzA7T047Ozs7O1k7T1BFTklORyBQQVJFTlRIRVNJUzs7OzsKKzAwMjk7UklHSFQgUEFSRU5USEVTSVM7UGU7MDtPTjs7Ozs7WTtDTE9TSU5HIFBBUkVOVEhFU0lTOzs7OworMDAyQTtBU1RFUklTSztQbzswO09OOzs7OztOOzs7OzsKKzAwMkI7UExVUyBTSUdOO1NtOzA7RVQ7Ozs7O047Ozs7OworMDAyQztDT01NQTtQbzswO0NTOzs7OztOOzs7OzsKKzAwMkQ7SFlQSEVOLU1JTlVTO1BkOzA7RVQ7Ozs7O047Ozs7OworMDAyRTtGVUxMIFNUT1A7UG87MDtDUzs7Ozs7TjtQRVJJT0Q7Ozs7CiswMDJGO1NPTElEVVM7UG87MDtFUzs7Ozs7TjtTTEFTSDs7OzsKKzAwMzA7RElHSVQgWkVSTztOZDswO0VOOzswOzA7MDtOOzs7OzsKKzAwMzE7RElHSVQgT05FO05kOzA7RU47OzE7MTsxO047Ozs7OworMDAzMjtESUdJVCBUV087TmQ7MDtFTjs7MjsyOzI7Tjs7Ozs7CiswMDMzO0RJR0lUIFRIUkVFO05kOzA7RU47OzM7MzszO047Ozs7OworMDAzNDtESUdJVCBGT1VSO05kOzA7RU47OzQ7NDs0O047Ozs7OworMDAzNTtESUdJVCBGSVZFO05kOzA7RU47OzU7NTs1O047Ozs7OworMDAzNjtESUdJVCBTSVg7TmQ7MDtFTjs7Njs2OzY7Tjs7Ozs7CiswMDM3O0RJR0lUIFNFVkVOO05kOzA7RU47Ozc7Nzs3O047Ozs7OworMDAzODtESUdJVCBFSUdIVDtOZDswO0VOOzs4Ozg7ODtOOzs7OzsKKzAwMzk7RElHSVQgTklORTtOZDswO0VOOzs5Ozk7OTtOOzs7OzsKKzAwM0E7Q09MT047UG87MDtDUzs7Ozs7Tjs7Ozs7CiswMDNCO1NFTUlDT0xPTjtQbzswO09OOzs7OztOOzs7OzsKKzAwM0M7TEVTUy1USEFOIFNJR047U207MDtPTjs7Ozs7WTs7Ozs7CiswMDNEO0VRVUFMUyBTSUdOO1NtOzA7T047Ozs7O047Ozs7OworMDAzRTtHUkVBVEVSLVRIQU4gU0lHTjtTbTswO09OOzs7OztZOzs7OzsKKzAwM0Y7UVVFU1RJT04gTUFSSztQbzswO09OOzs7OztOOzs7OzsKKzAwNDA7Q09NTUVSQ0lBTCBBVDtQbzswO09OOzs7OztOOzs7OzsKKzAwNDE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQTtMdTswO0w7Ozs7O047Ozs7MDA2MTsKKzAwNDI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQjtMdTswO0w7Ozs7O047Ozs7MDA2MjsKKzAwNDM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQztMdTswO0w7Ozs7O047Ozs7MDA2MzsKKzAwNDQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRDtMdTswO0w7Ozs7O047Ozs7MDA2NDsKKzAwNDU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRTtMdTswO0w7Ozs7O047Ozs7MDA2NTsKKzAwNDY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRjtMdTswO0w7Ozs7O047Ozs7MDA2NjsKKzAwNDc7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRztMdTswO0w7Ozs7O047Ozs7MDA2NzsKKzAwNDg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSDtMdTswO0w7Ozs7O047Ozs7MDA2ODsKKzAwNDk7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSTtMdTswO0w7Ozs7O047Ozs7MDA2OTsKKzAwNEE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSjtMdTswO0w7Ozs7O047Ozs7MDA2QTsKKzAwNEI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSztMdTswO0w7Ozs7O047Ozs7MDA2QjsKKzAwNEM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTDtMdTswO0w7Ozs7O047Ozs7MDA2QzsKKzAwNEQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTTtMdTswO0w7Ozs7O047Ozs7MDA2RDsKKzAwNEU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTjtMdTswO0w7Ozs7O047Ozs7MDA2RTsKKzAwNEY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTztMdTswO0w7Ozs7O047Ozs7MDA2RjsKKzAwNTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUDtMdTswO0w7Ozs7O047Ozs7MDA3MDsKKzAwNTE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUTtMdTswO0w7Ozs7O047Ozs7MDA3MTsKKzAwNTI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUjtMdTswO0w7Ozs7O047Ozs7MDA3MjsKKzAwNTM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUztMdTswO0w7Ozs7O047Ozs7MDA3MzsKKzAwNTQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVDtMdTswO0w7Ozs7O047Ozs7MDA3NDsKKzAwNTU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVTtMdTswO0w7Ozs7O047Ozs7MDA3NTsKKzAwNTY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVjtMdTswO0w7Ozs7O047Ozs7MDA3NjsKKzAwNTc7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVztMdTswO0w7Ozs7O047Ozs7MDA3NzsKKzAwNTg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWDtMdTswO0w7Ozs7O047Ozs7MDA3ODsKKzAwNTk7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWTtMdTswO0w7Ozs7O047Ozs7MDA3OTsKKzAwNUE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWjtMdTswO0w7Ozs7O047Ozs7MDA3QTsKKzAwNUI7TEVGVCBTUVVBUkUgQlJBQ0tFVDtQczswO09OOzs7OztZO09QRU5JTkcgU1FVQVJFIEJSQUNLRVQ7Ozs7CiswMDVDO1JFVkVSU0UgU09MSURVUztQbzswO09OOzs7OztOO0JBQ0tTTEFTSDs7OzsKKzAwNUQ7UklHSFQgU1FVQVJFIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTtDTE9TSU5HIFNRVUFSRSBCUkFDS0VUOzs7OworMDA1RTtDSVJDVU1GTEVYIEFDQ0VOVDtTazswO09OOzs7OztOO1NQQUNJTkcgQ0lSQ1VNRkxFWDs7OzsKKzAwNUY7TE9XIExJTkU7UGM7MDtPTjs7Ozs7TjtTUEFDSU5HIFVOREVSU0NPUkU7Ozs7CiswMDYwO0dSQVZFIEFDQ0VOVDtTazswO09OOzs7OztOO1NQQUNJTkcgR1JBVkU7Ozs7CiswMDYxO0xBVElOIFNNQUxMIExFVFRFUiBBO0xsOzA7TDs7Ozs7Tjs7OzAwNDE7OzAwNDEKKzAwNjI7TEFUSU4gU01BTEwgTEVUVEVSIEI7TGw7MDtMOzs7OztOOzs7MDA0Mjs7MDA0MgorMDA2MztMQVRJTiBTTUFMTCBMRVRURVIgQztMbDswO0w7Ozs7O047OzswMDQzOzswMDQzCiswMDY0O0xBVElOIFNNQUxMIExFVFRFUiBEO0xsOzA7TDs7Ozs7Tjs7OzAwNDQ7OzAwNDQKKzAwNjU7TEFUSU4gU01BTEwgTEVUVEVSIEU7TGw7MDtMOzs7OztOOzs7MDA0NTs7MDA0NQorMDA2NjtMQVRJTiBTTUFMTCBMRVRURVIgRjtMbDswO0w7Ozs7O047OzswMDQ2OzswMDQ2CiswMDY3O0xBVElOIFNNQUxMIExFVFRFUiBHO0xsOzA7TDs7Ozs7Tjs7OzAwNDc7OzAwNDcKKzAwNjg7TEFUSU4gU01BTEwgTEVUVEVSIEg7TGw7MDtMOzs7OztOOzs7MDA0ODs7MDA0OAorMDA2OTtMQVRJTiBTTUFMTCBMRVRURVIgSTtMbDswO0w7Ozs7O047OzswMDQ5OzswMDQ5CiswMDZBO0xBVElOIFNNQUxMIExFVFRFUiBKO0xsOzA7TDs7Ozs7Tjs7OzAwNEE7OzAwNEEKKzAwNkI7TEFUSU4gU01BTEwgTEVUVEVSIEs7TGw7MDtMOzs7OztOOzs7MDA0Qjs7MDA0QgorMDA2QztMQVRJTiBTTUFMTCBMRVRURVIgTDtMbDswO0w7Ozs7O047OzswMDRDOzswMDRDCiswMDZEO0xBVElOIFNNQUxMIExFVFRFUiBNO0xsOzA7TDs7Ozs7Tjs7OzAwNEQ7OzAwNEQKKzAwNkU7TEFUSU4gU01BTEwgTEVUVEVSIE47TGw7MDtMOzs7OztOOzs7MDA0RTs7MDA0RQorMDA2RjtMQVRJTiBTTUFMTCBMRVRURVIgTztMbDswO0w7Ozs7O047OzswMDRGOzswMDRGCiswMDcwO0xBVElOIFNNQUxMIExFVFRFUiBQO0xsOzA7TDs7Ozs7Tjs7OzAwNTA7OzAwNTAKKzAwNzE7TEFUSU4gU01BTEwgTEVUVEVSIFE7TGw7MDtMOzs7OztOOzs7MDA1MTs7MDA1MQorMDA3MjtMQVRJTiBTTUFMTCBMRVRURVIgUjtMbDswO0w7Ozs7O047OzswMDUyOzswMDUyCiswMDczO0xBVElOIFNNQUxMIExFVFRFUiBTO0xsOzA7TDs7Ozs7Tjs7OzAwNTM7OzAwNTMKKzAwNzQ7TEFUSU4gU01BTEwgTEVUVEVSIFQ7TGw7MDtMOzs7OztOOzs7MDA1NDs7MDA1NAorMDA3NTtMQVRJTiBTTUFMTCBMRVRURVIgVTtMbDswO0w7Ozs7O047OzswMDU1OzswMDU1CiswMDc2O0xBVElOIFNNQUxMIExFVFRFUiBWO0xsOzA7TDs7Ozs7Tjs7OzAwNTY7OzAwNTYKKzAwNzc7TEFUSU4gU01BTEwgTEVUVEVSIFc7TGw7MDtMOzs7OztOOzs7MDA1Nzs7MDA1NworMDA3ODtMQVRJTiBTTUFMTCBMRVRURVIgWDtMbDswO0w7Ozs7O047OzswMDU4OzswMDU4CiswMDc5O0xBVElOIFNNQUxMIExFVFRFUiBZO0xsOzA7TDs7Ozs7Tjs7OzAwNTk7OzAwNTkKKzAwN0E7TEFUSU4gU01BTEwgTEVUVEVSIFo7TGw7MDtMOzs7OztOOzs7MDA1QTs7MDA1QQorMDA3QjtMRUZUIENVUkxZIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTtPUEVOSU5HIENVUkxZIEJSQUNLRVQ7Ozs7CiswMDdDO1ZFUlRJQ0FMIExJTkU7U207MDtPTjs7Ozs7TjtWRVJUSUNBTCBCQVI7Ozs7CiswMDdEO1JJR0hUIENVUkxZIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTtDTE9TSU5HIENVUkxZIEJSQUNLRVQ7Ozs7CiswMDdFO1RJTERFO1NtOzA7T047Ozs7O047Ozs7OworMDA3Rjs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtERUxFVEU7Ozs7CiswMDgwOzxjb250cm9sPjtDYzswO0JOOzs7OztOOzs7OzsKKzAwODE7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047Ozs7OworMDA4Mjs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtCUkVBSyBQRVJNSVRURUQgSEVSRTs7OzsKKzAwODM7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047Tk8gQlJFQUsgSEVSRTs7OzsKKzAwODQ7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047Ozs7OworMDA4NTs8Y29udHJvbD47Q2M7MDtCOzs7OztOO05FWFQgTElORSAoTkVMKTs7OzsKKzAwODY7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047U1RBUlQgT0YgU0VMRUNURUQgQVJFQTs7OzsKKzAwODc7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047RU5EIE9GIFNFTEVDVEVEIEFSRUE7Ozs7CiswMDg4Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO0NIQVJBQ1RFUiBUQUJVTEFUSU9OIFNFVDs7OzsKKzAwODk7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047Q0hBUkFDVEVSIFRBQlVMQVRJT04gV0lUSCBKVVNUSUZJQ0FUSU9OOzs7OworMDA4QTs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtMSU5FIFRBQlVMQVRJT04gU0VUOzs7OworMDA4Qjs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtQQVJUSUFMIExJTkUgRk9SV0FSRDs7OzsKKzAwOEM7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047UEFSVElBTCBMSU5FIEJBQ0tXQVJEOzs7OworMDA4RDs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtSRVZFUlNFIExJTkUgRkVFRDs7OzsKKzAwOEU7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047U0lOR0xFIFNISUZUIFRXTzs7OzsKKzAwOEY7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047U0lOR0xFIFNISUZUIFRIUkVFOzs7OworMDA5MDs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtERVZJQ0UgQ09OVFJPTCBTVFJJTkc7Ozs7CiswMDkxOzxjb250cm9sPjtDYzswO0JOOzs7OztOO1BSSVZBVEUgVVNFIE9ORTs7OzsKKzAwOTI7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047UFJJVkFURSBVU0UgVFdPOzs7OworMDA5Mzs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtTRVQgVFJBTlNNSVQgU1RBVEU7Ozs7CiswMDk0Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO0NBTkNFTCBDSEFSQUNURVI7Ozs7CiswMDk1Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO01FU1NBR0UgV0FJVElORzs7OzsKKzAwOTY7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047U1RBUlQgT0YgR1VBUkRFRCBBUkVBOzs7OworMDA5Nzs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtFTkQgT0YgR1VBUkRFRCBBUkVBOzs7OworMDA5ODs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtTVEFSVCBPRiBTVFJJTkc7Ozs7CiswMDk5Ozxjb250cm9sPjtDYzswO0JOOzs7OztOOzs7OzsKKzAwOUE7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047U0lOR0xFIENIQVJBQ1RFUiBJTlRST0RVQ0VSOzs7OworMDA5Qjs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtDT05UUk9MIFNFUVVFTkNFIElOVFJPRFVDRVI7Ozs7CiswMDlDOzxjb250cm9sPjtDYzswO0JOOzs7OztOO1NUUklORyBURVJNSU5BVE9SOzs7OworMDA5RDs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtPUEVSQVRJTkcgU1lTVEVNIENPTU1BTkQ7Ozs7CiswMDlFOzxjb250cm9sPjtDYzswO0JOOzs7OztOO1BSSVZBQ1kgTUVTU0FHRTs7OzsKKzAwOUY7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047QVBQTElDQVRJT04gUFJPR1JBTSBDT01NQU5EOzs7OworMDBBMDtOTy1CUkVBSyBTUEFDRTtaczswO0NTOzxub0JyZWFrPiAwMDIwOzs7O047Tk9OLUJSRUFLSU5HIFNQQUNFOzs7OworMDBBMTtJTlZFUlRFRCBFWENMQU1BVElPTiBNQVJLO1BvOzA7T047Ozs7O047Ozs7OworMDBBMjtDRU5UIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CiswMEEzO1BPVU5EIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CiswMEE0O0NVUlJFTkNZIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CiswMEE1O1lFTiBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMDBBNjtCUk9LRU4gQkFSO1NvOzA7T047Ozs7O047QlJPS0VOIFZFUlRJQ0FMIEJBUjs7OzsKKzAwQTc7U0VDVElPTiBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMDBBODtESUFFUkVTSVM7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMDg7Ozs7TjtTUEFDSU5HIERJQUVSRVNJUzs7OzsKKzAwQTk7Q09QWVJJR0hUIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CiswMEFBO0ZFTUlOSU5FIE9SRElOQUwgSU5ESUNBVE9SO0xsOzA7TDs8c3VwZXI+IDAwNjE7Ozs7Tjs7Ozs7CiswMEFCO0xFRlQtUE9JTlRJTkcgRE9VQkxFIEFOR0xFIFFVT1RBVElPTiBNQVJLO1BpOzA7T047Ozs7O1k7TEVGVCBQT0lOVElORyBHVUlMTEVNRVQ7Kjs7OworMDBBQztOT1QgU0lHTjtTbTswO09OOzs7OztOOzs7OzsKKzAwQUQ7U09GVCBIWVBIRU47UGQ7MDtPTjs7Ozs7Tjs7Ozs7CiswMEFFO1JFR0lTVEVSRUQgU0lHTjtTbzswO09OOzs7OztOO1JFR0lTVEVSRUQgVFJBREUgTUFSSyBTSUdOOzs7OworMDBBRjtNQUNST047U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMDQ7Ozs7TjtTUEFDSU5HIE1BQ1JPTjs7OzsKKzAwQjA7REVHUkVFIFNJR047U287MDtFVDs7Ozs7Tjs7Ozs7CiswMEIxO1BMVVMtTUlOVVMgU0lHTjtTbTswO0VUOzs7OztOO1BMVVMtT1ItTUlOVVMgU0lHTjs7OzsKKzAwQjI7U1VQRVJTQ1JJUFQgVFdPO05vOzA7RU47PHN1cGVyPiAwMDMyOzI7MjsyO047U1VQRVJTQ1JJUFQgRElHSVQgVFdPOzs7OworMDBCMztTVVBFUlNDUklQVCBUSFJFRTtObzswO0VOOzxzdXBlcj4gMDAzMzszOzM7MztOO1NVUEVSU0NSSVBUIERJR0lUIFRIUkVFOzs7OworMDBCNDtBQ1VURSBBQ0NFTlQ7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMDE7Ozs7TjtTUEFDSU5HIEFDVVRFOzs7OworMDBCNTtNSUNSTyBTSUdOO0xsOzA7TDs8Y29tcGF0PiAwM0JDOzs7O047OzswMzlDOzswMzlDCiswMEI2O1BJTENST1cgU0lHTjtTbzswO09OOzs7OztOO1BBUkFHUkFQSCBTSUdOOzs7OworMDBCNztNSURETEUgRE9UO1BvOzA7T047Ozs7O047Ozs7OworMDBCODtDRURJTExBO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzI3Ozs7O047U1BBQ0lORyBDRURJTExBOzs7OworMDBCOTtTVVBFUlNDUklQVCBPTkU7Tm87MDtFTjs8c3VwZXI+IDAwMzE7MTsxOzE7TjtTVVBFUlNDUklQVCBESUdJVCBPTkU7Ozs7CiswMEJBO01BU0NVTElORSBPUkRJTkFMIElORElDQVRPUjtMbDswO0w7PHN1cGVyPiAwMDZGOzs7O047Ozs7OworMDBCQjtSSUdIVC1QT0lOVElORyBET1VCTEUgQU5HTEUgUVVPVEFUSU9OIE1BUks7UGY7MDtPTjs7Ozs7WTtSSUdIVCBQT0lOVElORyBHVUlMTEVNRVQ7Kjs7OworMDBCQztWVUxHQVIgRlJBQ1RJT04gT05FIFFVQVJURVI7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzEgMjA0NCAwMDM0Ozs7MS80O047RlJBQ1RJT04gT05FIFFVQVJURVI7Ozs7CiswMEJEO1ZVTEdBUiBGUkFDVElPTiBPTkUgSEFMRjtObzswO09OOzxmcmFjdGlvbj4gMDAzMSAyMDQ0IDAwMzI7OzsxLzI7TjtGUkFDVElPTiBPTkUgSEFMRjs7OzsKKzAwQkU7VlVMR0FSIEZSQUNUSU9OIFRIUkVFIFFVQVJURVJTO05vOzA7T047PGZyYWN0aW9uPiAwMDMzIDIwNDQgMDAzNDs7OzMvNDtOO0ZSQUNUSU9OIFRIUkVFIFFVQVJURVJTOzs7OworMDBCRjtJTlZFUlRFRCBRVUVTVElPTiBNQVJLO1BvOzA7T047Ozs7O047Ozs7OworMDBDMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggR1JBVkU7THU7MDtMOzAwNDEgMDMwMDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgR1JBVkU7OzswMEUwOworMDBDMTtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQUNVVEU7THU7MDtMOzAwNDEgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgQUNVVEU7OzswMEUxOworMDBDMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA0MSAwMzAyOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBDSVJDVU1GTEVYOzs7MDBFMjsKKzAwQzM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIFRJTERFO0x1OzA7TDswMDQxIDAzMDM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFRJTERFOzs7MDBFMzsKKzAwQzQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDA0MSAwMzA4Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBESUFFUkVTSVM7OzswMEU0OworMDBDNTtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggUklORyBBQk9WRTtMdTswO0w7MDA0MSAwMzBBOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBSSU5HOzs7MDBFNTsKKzAwQzY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQUU7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgRTthc2ggKjs7MDBFNjsKKzAwQzc7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBXSVRIIENFRElMTEE7THU7MDtMOzAwNDMgMDMyNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEMgQ0VESUxMQTs7OzAwRTc7CiswMEM4O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBHUkFWRTtMdTswO0w7MDA0NSAwMzAwOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBHUkFWRTs7OzAwRTg7CiswMEM5O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBBQ1VURTtMdTswO0w7MDA0NSAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBBQ1VURTs7OzAwRTk7CiswMENBO0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDQ1IDAzMDI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIENJUkNVTUZMRVg7OzswMEVBOworMDBDQjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggRElBRVJFU0lTO0x1OzA7TDswMDQ1IDAzMDg7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIERJQUVSRVNJUzs7OzAwRUI7CiswMENDO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBHUkFWRTtMdTswO0w7MDA0OSAwMzAwOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBHUkFWRTs7OzAwRUM7CiswMENEO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBBQ1VURTtMdTswO0w7MDA0OSAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBBQ1VURTs7OzAwRUQ7CiswMENFO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDQ5IDAzMDI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIENJUkNVTUZMRVg7OzswMEVFOworMDBDRjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRElBRVJFU0lTO0x1OzA7TDswMDQ5IDAzMDg7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIERJQUVSRVNJUzs7OzAwRUY7CiswMEQwO0xBVElOIENBUElUQUwgTEVUVEVSIEVUSDtMdTswO0w7Ozs7O047O0ljZWxhbmRpYzs7MDBGMDsKKzAwRDE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIFRJTERFO0x1OzA7TDswMDRFIDAzMDM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFRJTERFOzs7MDBGMTsKKzAwRDI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIEdSQVZFO0x1OzA7TDswMDRGIDAzMDA7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIEdSQVZFOzs7MDBGMjsKKzAwRDM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIEFDVVRFO0x1OzA7TDswMDRGIDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIEFDVVRFOzs7MDBGMzsKKzAwRDQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNEYgMDMwMjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gQ0lSQ1VNRkxFWDs7OzAwRjQ7CiswMEQ1O0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBUSUxERTtMdTswO0w7MDA0RiAwMzAzOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBUSUxERTs7OzAwRjU7CiswMEQ2O0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBESUFFUkVTSVM7THU7MDtMOzAwNEYgMDMwODs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gRElBRVJFU0lTOzs7MDBGNjsKKzAwRDc7TVVMVElQTElDQVRJT04gU0lHTjtTbTswO09OOzs7OztOOzs7OzsKKzAwRDg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBTTEFTSDs7OzAwRjg7CiswMEQ5O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBHUkFWRTtMdTswO0w7MDA1NSAwMzAwOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBHUkFWRTs7OzAwRjk7CiswMERBO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBBQ1VURTtMdTswO0w7MDA1NSAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBBQ1VURTs7OzAwRkE7CiswMERCO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDU1IDAzMDI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIENJUkNVTUZMRVg7OzswMEZCOworMDBEQztMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTO0x1OzA7TDswMDU1IDAzMDg7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIERJQUVSRVNJUzs7OzAwRkM7CiswMEREO0xBVElOIENBUElUQUwgTEVUVEVSIFkgV0lUSCBBQ1VURTtMdTswO0w7MDA1OSAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBBQ1VURTs7OzAwRkQ7CiswMERFO0xBVElOIENBUElUQUwgTEVUVEVSIFRIT1JOO0x1OzA7TDs7Ozs7Tjs7SWNlbGFuZGljOzswMEZFOworMDBERjtMQVRJTiBTTUFMTCBMRVRURVIgU0hBUlAgUztMbDswO0w7Ozs7O047O0dlcm1hbjs7OworMDBFMDtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIEdSQVZFO0xsOzA7TDswMDYxIDAzMDA7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBHUkFWRTs7MDBDMDs7MDBDMAorMDBFMTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIEFDVVRFO0xsOzA7TDswMDYxIDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBBQ1VURTs7MDBDMTs7MDBDMQorMDBFMjtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwNjEgMDMwMjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIENJUkNVTUZMRVg7OzAwQzI7OzAwQzIKKzAwRTM7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBUSUxERTtMbDswO0w7MDA2MSAwMzAzOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgVElMREU7OzAwQzM7OzAwQzMKKzAwRTQ7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzAwNjEgMDMwODs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIERJQUVSRVNJUzs7MDBDNDs7MDBDNAorMDBFNTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIFJJTkcgQUJPVkU7TGw7MDtMOzAwNjEgMDMwQTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIFJJTkc7OzAwQzU7OzAwQzUKKzAwRTY7TEFUSU4gU01BTEwgTEVUVEVSIEFFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBFO2FzaCAqOzAwQzY7OzAwQzYKKzAwRTc7TEFUSU4gU01BTEwgTEVUVEVSIEMgV0lUSCBDRURJTExBO0xsOzA7TDswMDYzIDAzMjc7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQyBDRURJTExBOzswMEM3OzswMEM3CiswMEU4O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggR1JBVkU7TGw7MDtMOzAwNjUgMDMwMDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBFIEdSQVZFOzswMEM4OzswMEM4CiswMEU5O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQUNVVEU7TGw7MDtMOzAwNjUgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBFIEFDVVRFOzswMEM5OzswMEM5CiswMEVBO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA2NSAwMzAyOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEUgQ0lSQ1VNRkxFWDs7MDBDQTs7MDBDQQorMDBFQjtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDA2NSAwMzA4Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEUgRElBRVJFU0lTOzswMENCOzswMENCCiswMEVDO0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggR1JBVkU7TGw7MDtMOzAwNjkgMDMwMDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBJIEdSQVZFOzswMENDOzswMENDCiswMEVEO0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggQUNVVEU7TGw7MDtMOzAwNjkgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBJIEFDVVRFOzswMENEOzswMENECiswMEVFO0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA2OSAwMzAyOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEkgQ0lSQ1VNRkxFWDs7MDBDRTs7MDBDRQorMDBFRjtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDA2OSAwMzA4Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEkgRElBRVJFU0lTOzswMENGOzswMENGCiswMEYwO0xBVElOIFNNQUxMIExFVFRFUiBFVEg7TGw7MDtMOzs7OztOOztJY2VsYW5kaWM7MDBEMDs7MDBEMAorMDBGMTtMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIFRJTERFO0xsOzA7TDswMDZFIDAzMDM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTiBUSUxERTs7MDBEMTs7MDBEMQorMDBGMjtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIEdSQVZFO0xsOzA7TDswMDZGIDAzMDA7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBHUkFWRTs7MDBEMjs7MDBEMgorMDBGMztMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIEFDVVRFO0xsOzA7TDswMDZGIDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBBQ1VURTs7MDBEMzs7MDBEMworMDBGNDtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwNkYgMDMwMjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIENJUkNVTUZMRVg7OzAwRDQ7OzAwRDQKKzAwRjU7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBUSUxERTtMbDswO0w7MDA2RiAwMzAzOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gVElMREU7OzAwRDU7OzAwRDUKKzAwRjY7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBESUFFUkVTSVM7TGw7MDtMOzAwNkYgMDMwODs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIERJQUVSRVNJUzs7MDBENjs7MDBENgorMDBGNztESVZJU0lPTiBTSUdOO1NtOzA7T047Ozs7O047Ozs7OworMDBGODtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gU0xBU0g7OzAwRDg7OzAwRDgKKzAwRjk7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBHUkFWRTtMbDswO0w7MDA3NSAwMzAwOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgR1JBVkU7OzAwRDk7OzAwRDkKKzAwRkE7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBBQ1VURTtMbDswO0w7MDA3NSAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgQUNVVEU7OzAwREE7OzAwREEKKzAwRkI7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDc1IDAzMDI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBDSVJDVU1GTEVYOzswMERCOzswMERCCiswMEZDO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTO0xsOzA7TDswMDc1IDAzMDg7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBESUFFUkVTSVM7OzAwREM7OzAwREMKKzAwRkQ7TEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBBQ1VURTtMbDswO0w7MDA3OSAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFkgQUNVVEU7OzAwREQ7OzAwREQKKzAwRkU7TEFUSU4gU01BTEwgTEVUVEVSIFRIT1JOO0xsOzA7TDs7Ozs7Tjs7SWNlbGFuZGljOzAwREU7OzAwREUKKzAwRkY7TEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzAwNzkgMDMwODs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBZIERJQUVSRVNJUzs7MDE3ODs7MDE3OAorMDEwMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggTUFDUk9OO0x1OzA7TDswMDQxIDAzMDQ7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIE1BQ1JPTjs7OzAxMDE7CiswMTAxO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggTUFDUk9OO0xsOzA7TDswMDYxIDAzMDQ7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBNQUNST047OzAxMDA7OzAxMDAKKzAxMDI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEJSRVZFO0x1OzA7TDswMDQxIDAzMDY7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIEJSRVZFOzs7MDEwMzsKKzAxMDM7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBCUkVWRTtMbDswO0w7MDA2MSAwMzA2Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgQlJFVkU7OzAxMDI7OzAxMDIKKzAxMDQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIE9HT05FSztMdTswO0w7MDA0MSAwMzI4Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBPR09ORUs7OzswMTA1OworMDEwNTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIE9HT05FSztMbDswO0w7MDA2MSAwMzI4Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgT0dPTkVLOzswMTA0OzswMTA0CiswMTA2O0xBVElOIENBUElUQUwgTEVUVEVSIEMgV0lUSCBBQ1VURTtMdTswO0w7MDA0MyAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBBQ1VURTs7OzAxMDc7CiswMTA3O0xBVElOIFNNQUxMIExFVFRFUiBDIFdJVEggQUNVVEU7TGw7MDtMOzAwNjMgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBDIEFDVVRFOzswMTA2OzswMTA2CiswMTA4O0xBVElOIENBUElUQUwgTEVUVEVSIEMgV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDQzIDAzMDI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBDIENJUkNVTUZMRVg7OzswMTA5OworMDEwOTtMQVRJTiBTTUFMTCBMRVRURVIgQyBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwNjMgMDMwMjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBDIENJUkNVTUZMRVg7OzAxMDg7OzAxMDgKKzAxMEE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA0MyAwMzA3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBET1Q7OzswMTBCOworMDEwQjtMQVRJTiBTTUFMTCBMRVRURVIgQyBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA2MyAwMzA3Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEMgRE9UOzswMTBBOzswMTBBCiswMTBDO0xBVElOIENBUElUQUwgTEVUVEVSIEMgV0lUSCBDQVJPTjtMdTswO0w7MDA0MyAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBIQUNFSzs7OzAxMEQ7CiswMTBEO0xBVElOIFNNQUxMIExFVFRFUiBDIFdJVEggQ0FST047TGw7MDtMOzAwNjMgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBDIEhBQ0VLOzswMTBDOzswMTBDCiswMTBFO0xBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBDQVJPTjtMdTswO0w7MDA0NCAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBIQUNFSzs7OzAxMEY7CiswMTBGO0xBVElOIFNNQUxMIExFVFRFUiBEIFdJVEggQ0FST047TGw7MDtMOzAwNjQgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBEIEhBQ0VLOzswMTBFOzswMTBFCiswMTEwO0xBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEQgQkFSOzs7MDExMTsKKzAxMTE7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBEIEJBUjs7MDExMDs7MDExMAorMDExMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggTUFDUk9OO0x1OzA7TDswMDQ1IDAzMDQ7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIE1BQ1JPTjs7OzAxMTM7CiswMTEzO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggTUFDUk9OO0xsOzA7TDswMDY1IDAzMDQ7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRSBNQUNST047OzAxMTI7OzAxMTIKKzAxMTQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIEJSRVZFO0x1OzA7TDswMDQ1IDAzMDY7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIEJSRVZFOzs7MDExNTsKKzAxMTU7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBCUkVWRTtMbDswO0w7MDA2NSAwMzA2Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEUgQlJFVkU7OzAxMTQ7OzAxMTQKKzAxMTY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA0NSAwMzA3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBET1Q7OzswMTE3OworMDExNztMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA2NSAwMzA3Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEUgRE9UOzswMTE2OzswMTE2CiswMTE4O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBPR09ORUs7THU7MDtMOzAwNDUgMDMyODs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEUgT0dPTkVLOzs7MDExOTsKKzAxMTk7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBPR09ORUs7TGw7MDtMOzAwNjUgMDMyODs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBFIE9HT05FSzs7MDExODs7MDExOAorMDExQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0FST047THU7MDtMOzAwNDUgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEUgSEFDRUs7OzswMTFCOworMDExQjtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIENBUk9OO0xsOzA7TDswMDY1IDAzMEM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRSBIQUNFSzs7MDExQTs7MDExQQorMDExQztMQVRJTiBDQVBJVEFMIExFVFRFUiBHIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA0NyAwMzAyOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBDSVJDVU1GTEVYOzs7MDExRDsKKzAxMUQ7TEFUSU4gU01BTEwgTEVUVEVSIEcgV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDY3IDAzMDI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRyBDSVJDVU1GTEVYOzswMTFDOzswMTFDCiswMTFFO0xBVElOIENBUElUQUwgTEVUVEVSIEcgV0lUSCBCUkVWRTtMdTswO0w7MDA0NyAwMzA2Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBCUkVWRTs7OzAxMUY7CiswMTFGO0xBVElOIFNNQUxMIExFVFRFUiBHIFdJVEggQlJFVkU7TGw7MDtMOzAwNjcgMDMwNjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBHIEJSRVZFOzswMTFFOzswMTFFCiswMTIwO0xBVElOIENBUElUQUwgTEVUVEVSIEcgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNDcgMDMwNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEcgRE9UOzs7MDEyMTsKKzAxMjE7TEFUSU4gU01BTEwgTEVUVEVSIEcgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNjcgMDMwNzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBHIERPVDs7MDEyMDs7MDEyMAorMDEyMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIFdJVEggQ0VESUxMQTtMdTswO0w7MDA0NyAwMzI3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBDRURJTExBOzs7MDEyMzsKKzAxMjM7TEFUSU4gU01BTEwgTEVUVEVSIEcgV0lUSCBDRURJTExBO0xsOzA7TDswMDY3IDAzMjc7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRyBDRURJTExBOzswMTIyOzswMTIyCiswMTI0O0xBVElOIENBUElUQUwgTEVUVEVSIEggV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDQ4IDAzMDI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBIIENJUkNVTUZMRVg7OzswMTI1OworMDEyNTtMQVRJTiBTTUFMTCBMRVRURVIgSCBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwNjggMDMwMjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBIIENJUkNVTUZMRVg7OzAxMjQ7OzAxMjQKKzAxMjY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSCBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSCBCQVI7OzswMTI3OworMDEyNztMQVRJTiBTTUFMTCBMRVRURVIgSCBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEggQkFSOzswMTI2OzswMTI2CiswMTI4O0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBUSUxERTtMdTswO0w7MDA0OSAwMzAzOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBUSUxERTs7OzAxMjk7CiswMTI5O0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggVElMREU7TGw7MDtMOzAwNjkgMDMwMzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBJIFRJTERFOzswMTI4OzswMTI4CiswMTJBO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBNQUNST047THU7MDtMOzAwNDkgMDMwNDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEkgTUFDUk9OOzs7MDEyQjsKKzAxMkI7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBNQUNST047TGw7MDtMOzAwNjkgMDMwNDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBJIE1BQ1JPTjs7MDEyQTs7MDEyQQorMDEyQztMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggQlJFVkU7THU7MDtMOzAwNDkgMDMwNjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEkgQlJFVkU7OzswMTJEOworMDEyRDtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIEJSRVZFO0xsOzA7TDswMDY5IDAzMDY7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSSBCUkVWRTs7MDEyQzs7MDEyQworMDEyRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggT0dPTkVLO0x1OzA7TDswMDQ5IDAzMjg7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIE9HT05FSzs7OzAxMkY7CiswMTJGO0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggT0dPTkVLO0xsOzA7TDswMDY5IDAzMjg7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSSBPR09ORUs7OzAxMkU7OzAxMkUKKzAxMzA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA0OSAwMzA3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBET1Q7OzswMDY5OworMDEzMTtMQVRJTiBTTUFMTCBMRVRURVIgRE9UTEVTUyBJO0xsOzA7TDs7Ozs7Tjs7OzAwNDk7OzAwNDkKKzAxMzI7TEFUSU4gQ0FQSVRBTCBMSUdBVFVSRSBJSjtMdTswO0w7PGNvbXBhdD4gMDA0OSAwMDRBOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBKOzs7MDEzMzsKKzAxMzM7TEFUSU4gU01BTEwgTElHQVRVUkUgSUo7TGw7MDtMOzxjb21wYXQ+IDAwNjkgMDA2QTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBJIEo7OzAxMzI7OzAxMzIKKzAxMzQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSiBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNEEgMDMwMjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEogQ0lSQ1VNRkxFWDs7OzAxMzU7CiswMTM1O0xBVElOIFNNQUxMIExFVFRFUiBKIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA2QSAwMzAyOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEogQ0lSQ1VNRkxFWDs7MDEzNDs7MDEzNAorMDEzNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBLIFdJVEggQ0VESUxMQTtMdTswO0w7MDA0QiAwMzI3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSyBDRURJTExBOzs7MDEzNzsKKzAxMzc7TEFUSU4gU01BTEwgTEVUVEVSIEsgV0lUSCBDRURJTExBO0xsOzA7TDswMDZCIDAzMjc7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSyBDRURJTExBOzswMTM2OzswMTM2CiswMTM4O0xBVElOIFNNQUxMIExFVFRFUiBLUkE7TGw7MDtMOzs7OztOOztHcmVlbmxhbmRpYzs7OworMDEzOTtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggQUNVVEU7THU7MDtMOzAwNEMgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEwgQUNVVEU7OzswMTNBOworMDEzQTtMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIEFDVVRFO0xsOzA7TDswMDZDIDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTCBBQ1VURTs7MDEzOTs7MDEzOQorMDEzQjtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggQ0VESUxMQTtMdTswO0w7MDA0QyAwMzI3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBDRURJTExBOzs7MDEzQzsKKzAxM0M7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBDRURJTExBO0xsOzA7TDswMDZDIDAzMjc7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTCBDRURJTExBOzswMTNCOzswMTNCCiswMTNEO0xBVElOIENBUElUQUwgTEVUVEVSIEwgV0lUSCBDQVJPTjtMdTswO0w7MDA0QyAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBIQUNFSzs7OzAxM0U7CiswMTNFO0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggQ0FST047TGw7MDtMOzAwNkMgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBMIEhBQ0VLOzswMTNEOzswMTNECiswMTNGO0xBVElOIENBUElUQUwgTEVUVEVSIEwgV0lUSCBNSURETEUgRE9UO0x1OzA7TDs8Y29tcGF0PiAwMDRDIDAwQjc7Ozs7Tjs7OzswMTQwOworMDE0MDtMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIE1JRERMRSBET1Q7TGw7MDtMOzxjb21wYXQ+IDAwNkMgMDBCNzs7OztOOzs7MDEzRjs7MDEzRgorMDE0MTtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFNMQVNIOzs7MDE0MjsKKzAxNDI7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBMIFNMQVNIOzswMTQxOzswMTQxCiswMTQzO0xBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBBQ1VURTtMdTswO0w7MDA0RSAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBBQ1VURTs7OzAxNDQ7CiswMTQ0O0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggQUNVVEU7TGw7MDtMOzAwNkUgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBOIEFDVVRFOzswMTQzOzswMTQzCiswMTQ1O0xBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBDRURJTExBO0x1OzA7TDswMDRFIDAzMjc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIENFRElMTEE7OzswMTQ2OworMDE0NjtMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIENFRElMTEE7TGw7MDtMOzAwNkUgMDMyNzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBOIENFRElMTEE7OzAxNDU7OzAxNDUKKzAxNDc7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIENBUk9OO0x1OzA7TDswMDRFIDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIEhBQ0VLOzs7MDE0ODsKKzAxNDg7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBDQVJPTjtMbDswO0w7MDA2RSAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIE4gSEFDRUs7OzAxNDc7OzAxNDcKKzAxNDk7TEFUSU4gU01BTEwgTEVUVEVSIE4gUFJFQ0VERUQgQlkgQVBPU1RST1BIRTtMbDswO0w7PGNvbXBhdD4gMDJCQyAwMDZFOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEFQT1NUUk9QSEUgTjs7OzsKKzAxNEE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRU5HO0x1OzA7TDs7Ozs7Tjs7U2FtaTs7MDE0QjsKKzAxNEI7TEFUSU4gU01BTEwgTEVUVEVSIEVORztMbDswO0w7Ozs7O047O1NhbWk7MDE0QTs7MDE0QQorMDE0QztMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggTUFDUk9OO0x1OzA7TDswMDRGIDAzMDQ7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIE1BQ1JPTjs7OzAxNEQ7CiswMTREO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggTUFDUk9OO0xsOzA7TDswMDZGIDAzMDQ7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBNQUNST047OzAxNEM7OzAxNEMKKzAxNEU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIEJSRVZFO0x1OzA7TDswMDRGIDAzMDY7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIEJSRVZFOzs7MDE0RjsKKzAxNEY7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBCUkVWRTtMbDswO0w7MDA2RiAwMzA2Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gQlJFVkU7OzAxNEU7OzAxNEUKKzAxNTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIERPVUJMRSBBQ1VURTtMdTswO0w7MDA0RiAwMzBCOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBET1VCTEUgQUNVVEU7OzswMTUxOworMDE1MTtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIERPVUJMRSBBQ1VURTtMbDswO0w7MDA2RiAwMzBCOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gRE9VQkxFIEFDVVRFOzswMTUwOzswMTUwCiswMTUyO0xBVElOIENBUElUQUwgTElHQVRVUkUgT0U7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gRTs7OzAxNTM7CiswMTUzO0xBVElOIFNNQUxMIExJR0FUVVJFIE9FO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBFOzswMTUyOzswMTUyCiswMTU0O0xBVElOIENBUElUQUwgTEVUVEVSIFIgV0lUSCBBQ1VURTtMdTswO0w7MDA1MiAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBBQ1VURTs7OzAxNTU7CiswMTU1O0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggQUNVVEU7TGw7MDtMOzAwNzIgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBSIEFDVVRFOzswMTU0OzswMTU0CiswMTU2O0xBVElOIENBUElUQUwgTEVUVEVSIFIgV0lUSCBDRURJTExBO0x1OzA7TDswMDUyIDAzMjc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBSIENFRElMTEE7OzswMTU3OworMDE1NztMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIENFRElMTEE7TGw7MDtMOzAwNzIgMDMyNzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBSIENFRElMTEE7OzAxNTY7OzAxNTYKKzAxNTg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBXSVRIIENBUk9OO0x1OzA7TDswMDUyIDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBSIEhBQ0VLOzs7MDE1OTsKKzAxNTk7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBDQVJPTjtMbDswO0w7MDA3MiAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFIgSEFDRUs7OzAxNTg7OzAxNTgKKzAxNUE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBXSVRIIEFDVVRFO0x1OzA7TDswMDUzIDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIEFDVVRFOzs7MDE1QjsKKzAxNUI7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBBQ1VURTtMbDswO0w7MDA3MyAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFMgQUNVVEU7OzAxNUE7OzAxNUEKKzAxNUM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNTMgMDMwMjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFMgQ0lSQ1VNRkxFWDs7OzAxNUQ7CiswMTVEO0xBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA3MyAwMzAyOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFMgQ0lSQ1VNRkxFWDs7MDE1Qzs7MDE1QworMDE1RTtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIFdJVEggQ0VESUxMQTtMdTswO0w7MDA1MyAwMzI3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBDRURJTExBOyo7OzAxNUY7CiswMTVGO0xBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggQ0VESUxMQTtMbDswO0w7MDA3MyAwMzI3Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFMgQ0VESUxMQTsqOzAxNUU7OzAxNUUKKzAxNjA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBXSVRIIENBUk9OO0x1OzA7TDswMDUzIDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIEhBQ0VLOzs7MDE2MTsKKzAxNjE7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBDQVJPTjtMbDswO0w7MDA3MyAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFMgSEFDRUs7OzAxNjA7OzAxNjAKKzAxNjI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBXSVRIIENFRElMTEE7THU7MDtMOzAwNTQgMDMyNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFQgQ0VESUxMQTsqOzswMTYzOworMDE2MztMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIENFRElMTEE7TGw7MDtMOzAwNzQgMDMyNzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBUIENFRElMTEE7KjswMTYyOzswMTYyCiswMTY0O0xBVElOIENBUElUQUwgTEVUVEVSIFQgV0lUSCBDQVJPTjtMdTswO0w7MDA1NCAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBIQUNFSzs7OzAxNjU7CiswMTY1O0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggQ0FST047TGw7MDtMOzAwNzQgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBUIEhBQ0VLOzswMTY0OzswMTY0CiswMTY2O0xBVElOIENBUElUQUwgTEVUVEVSIFQgV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFQgQkFSOzs7MDE2NzsKKzAxNjc7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBUIEJBUjs7MDE2Njs7MDE2NgorMDE2ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggVElMREU7THU7MDtMOzAwNTUgMDMwMzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgVElMREU7OzswMTY5OworMDE2OTtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIFRJTERFO0xsOzA7TDswMDc1IDAzMDM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBUSUxERTs7MDE2ODs7MDE2OAorMDE2QTtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggTUFDUk9OO0x1OzA7TDswMDU1IDAzMDQ7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIE1BQ1JPTjs7OzAxNkI7CiswMTZCO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggTUFDUk9OO0xsOzA7TDswMDc1IDAzMDQ7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBNQUNST047OzAxNkE7OzAxNkEKKzAxNkM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEJSRVZFO0x1OzA7TDswMDU1IDAzMDY7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIEJSRVZFOzs7MDE2RDsKKzAxNkQ7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBCUkVWRTtMbDswO0w7MDA3NSAwMzA2Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgQlJFVkU7OzAxNkM7OzAxNkMKKzAxNkU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIFJJTkcgQUJPVkU7THU7MDtMOzAwNTUgMDMwQTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgUklORzs7OzAxNkY7CiswMTZGO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggUklORyBBQk9WRTtMbDswO0w7MDA3NSAwMzBBOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgUklORzs7MDE2RTs7MDE2RQorMDE3MDtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggRE9VQkxFIEFDVVRFO0x1OzA7TDswMDU1IDAzMEI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIERPVUJMRSBBQ1VURTs7OzAxNzE7CiswMTcxO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRE9VQkxFIEFDVVRFO0xsOzA7TDswMDc1IDAzMEI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBET1VCTEUgQUNVVEU7OzAxNzA7OzAxNzAKKzAxNzI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIE9HT05FSztMdTswO0w7MDA1NSAwMzI4Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBPR09ORUs7OzswMTczOworMDE3MztMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIE9HT05FSztMbDswO0w7MDA3NSAwMzI4Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgT0dPTkVLOzswMTcyOzswMTcyCiswMTc0O0xBVElOIENBUElUQUwgTEVUVEVSIFcgV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDU3IDAzMDI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBXIENJUkNVTUZMRVg7OzswMTc1OworMDE3NTtMQVRJTiBTTUFMTCBMRVRURVIgVyBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwNzcgMDMwMjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBXIENJUkNVTUZMRVg7OzAxNzQ7OzAxNzQKKzAxNzY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNTkgMDMwMjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFkgQ0lSQ1VNRkxFWDs7OzAxNzc7CiswMTc3O0xBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA3OSAwMzAyOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFkgQ0lSQ1VNRkxFWDs7MDE3Njs7MDE3NgorMDE3ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggRElBRVJFU0lTO0x1OzA7TDswMDU5IDAzMDg7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIERJQUVSRVNJUzs7OzAwRkY7CiswMTc5O0xBVElOIENBUElUQUwgTEVUVEVSIFogV0lUSCBBQ1VURTtMdTswO0w7MDA1QSAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBBQ1VURTs7OzAxN0E7CiswMTdBO0xBVElOIFNNQUxMIExFVFRFUiBaIFdJVEggQUNVVEU7TGw7MDtMOzAwN0EgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBaIEFDVVRFOzswMTc5OzswMTc5CiswMTdCO0xBVElOIENBUElUQUwgTEVUVEVSIFogV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNUEgMDMwNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFogRE9UOzs7MDE3QzsKKzAxN0M7TEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwN0EgMDMwNzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBaIERPVDs7MDE3Qjs7MDE3QgorMDE3RDtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIFdJVEggQ0FST047THU7MDtMOzAwNUEgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFogSEFDRUs7OzswMTdFOworMDE3RTtMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIENBUk9OO0xsOzA7TDswMDdBIDAzMEM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWiBIQUNFSzs7MDE3RDs7MDE3RAorMDE3RjtMQVRJTiBTTUFMTCBMRVRURVIgTE9ORyBTO0xsOzA7TDs8Y29tcGF0PiAwMDczOzs7O047OzswMDUzOzswMDUzCiswMTgwO0xBVElOIFNNQUxMIExFVFRFUiBCIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQiBCQVI7Ozs7CiswMTgxO0xBVElOIENBUElUQUwgTEVUVEVSIEIgV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBCIEhPT0s7OzswMjUzOworMDE4MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBCIFdJVEggVE9QQkFSO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBCIFRPUEJBUjs7OzAxODM7CiswMTgzO0xBVElOIFNNQUxMIExFVFRFUiBCIFdJVEggVE9QQkFSO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQiBUT1BCQVI7OzAxODI7OzAxODIKKzAxODQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVE9ORSBTSVg7THU7MDtMOzs7OztOOzs7OzAxODU7CiswMTg1O0xBVElOIFNNQUxMIExFVFRFUiBUT05FIFNJWDtMbDswO0w7Ozs7O047OzswMTg0OzswMTg0CiswMTg2O0xBVElOIENBUElUQUwgTEVUVEVSIE9QRU4gTztMdTswO0w7Ozs7O047Ozs7MDI1NDsKKzAxODc7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBXSVRIIEhPT0s7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEMgSE9PSzs7OzAxODg7CiswMTg4O0xBVElOIFNNQUxMIExFVFRFUiBDIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEMgSE9PSzs7MDE4Nzs7MDE4NworMDE4OTtMQVRJTiBDQVBJVEFMIExFVFRFUiBBRlJJQ0FOIEQ7THU7MDtMOzs7OztOOzsqOzswMjU2OworMDE4QTtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFdJVEggSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBIT09LOzs7MDI1NzsKKzAxOEI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIFRPUEJBUjtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBUT1BCQVI7OzswMThDOworMDE4QztMQVRJTiBTTUFMTCBMRVRURVIgRCBXSVRIIFRPUEJBUjtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEQgVE9QQkFSOzswMThCOzswMThCCiswMThEO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgREVMVEE7TGw7MDtMOzs7OztOOzs7OzsKKzAxOEU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUkVWRVJTRUQgRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVFVSTkVEIEU7OzswMUREOworMDE4RjtMQVRJTiBDQVBJVEFMIExFVFRFUiBTQ0hXQTtMdTswO0w7Ozs7O047Ozs7MDI1OTsKKzAxOTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgT1BFTiBFO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFUFNJTE9OOzs7MDI1QjsKKzAxOTE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRiBXSVRIIEhPT0s7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEYgSE9PSzs7OzAxOTI7CiswMTkyO0xBVElOIFNNQUxMIExFVFRFUiBGIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFNDUklQVCBGOzswMTkxOzswMTkxCiswMTkzO0xBVElOIENBUElUQUwgTEVUVEVSIEcgV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIEhPT0s7OzswMjYwOworMDE5NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBHQU1NQTtMdTswO0w7Ozs7O047Ozs7MDI2MzsKKzAxOTU7TEFUSU4gU01BTEwgTEVUVEVSIEhWO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSCBWO2h3YWlyOzAxRjY7OzAxRjYKKzAxOTY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSU9UQTtMdTswO0w7Ozs7O047Ozs7MDI2OTsKKzAxOTc7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQkFSUkVEIEk7OzswMjY4OworMDE5ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBLIFdJVEggSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSyBIT09LOzs7MDE5OTsKKzAxOTk7TEFUSU4gU01BTEwgTEVUVEVSIEsgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSyBIT09LOzswMTk4OzswMTk4CiswMTlBO0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggQkFSO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQkFSUkVEIEw7Ozs7CiswMTlCO0xBVElOIFNNQUxMIExFVFRFUiBMQU1CREEgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBCQVJSRUQgTEFNQkRBOzs7OworMDE5QztMQVRJTiBDQVBJVEFMIExFVFRFUiBUVVJORUQgTTtMdTswO0w7Ozs7O047Ozs7MDI2RjsKKzAxOUQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIExFRlQgSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBIT09LOzs7MDI3MjsKKzAxOUU7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBMT05HIFJJR0hUIExFRztMbDswO0w7Ozs7O047OzswMjIwOzswMjIwCiswMTlGO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBNSURETEUgVElMREU7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEJBUlJFRCBPOyo7OzAyNzU7CiswMUEwO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBIT1JOO0x1OzA7TDswMDRGIDAzMUI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIEhPUk47OzswMUExOworMDFBMTtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIEhPUk47TGw7MDtMOzAwNkYgMDMxQjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIEhPUk47OzAxQTA7OzAxQTAKKzAxQTI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgT0k7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gSTtnaGE7OzAxQTM7CiswMUEzO0xBVElOIFNNQUxMIExFVFRFUiBPSTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gSTtnaGE7MDFBMjs7MDFBMgorMDFBNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBQIFdJVEggSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgUCBIT09LOzs7MDFBNTsKKzAxQTU7TEFUSU4gU01BTEwgTEVUVEVSIFAgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUCBIT09LOzswMUE0OzswMUE0CiswMUE2O0xBVElOIExFVFRFUiBZUjtMdTswO0w7Ozs7O047TEFUSU4gTEVUVEVSIFkgUjsqOzswMjgwOworMDFBNztMQVRJTiBDQVBJVEFMIExFVFRFUiBUT05FIFRXTztMdTswO0w7Ozs7O047Ozs7MDFBODsKKzAxQTg7TEFUSU4gU01BTEwgTEVUVEVSIFRPTkUgVFdPO0xsOzA7TDs7Ozs7Tjs7OzAxQTc7OzAxQTcKKzAxQTk7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRVNIO0x1OzA7TDs7Ozs7Tjs7OzswMjgzOworMDFBQTtMQVRJTiBMRVRURVIgUkVWRVJTRUQgRVNIIExPT1A7TGw7MDtMOzs7OztOOzs7OzsKKzAxQUI7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBQQUxBVEFMIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBUIFBBTEFUQUwgSE9PSzs7OzsKKzAxQUM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBXSVRIIEhPT0s7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFQgSE9PSzs7OzAxQUQ7CiswMUFEO0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFQgSE9PSzs7MDFBQzs7MDFBQworMDFBRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFdJVEggUkVUUk9GTEVYIEhPT0s7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFQgUkVUUk9GTEVYIEhPT0s7OzswMjg4OworMDFBRjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggSE9STjtMdTswO0w7MDA1NSAwMzFCOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBIT1JOOzs7MDFCMDsKKzAxQjA7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBIT1JOO0xsOzA7TDswMDc1IDAzMUI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBIT1JOOzswMUFGOzswMUFGCiswMUIxO0xBVElOIENBUElUQUwgTEVUVEVSIFVQU0lMT047THU7MDtMOzs7OztOOzs7OzAyOEE7CiswMUIyO0xBVElOIENBUElUQUwgTEVUVEVSIFYgV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBTQ1JJUFQgVjs7OzAyOEI7CiswMUIzO0xBVElOIENBUElUQUwgTEVUVEVSIFkgV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIEhPT0s7OzswMUI0OworMDFCNDtMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBZIEhPT0s7OzAxQjM7OzAxQjMKKzAxQjU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBCQVI7OzswMUI2OworMDFCNjtMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFogQkFSOzswMUI1OzswMUI1CiswMUI3O0xBVElOIENBUElUQUwgTEVUVEVSIEVaSDtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgWU9HSDs7OzAyOTI7CiswMUI4O0xBVElOIENBUElUQUwgTEVUVEVSIEVaSCBSRVZFUlNFRDtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgUkVWRVJTRUQgWU9HSDs7OzAxQjk7CiswMUI5O0xBVElOIFNNQUxMIExFVFRFUiBFWkggUkVWRVJTRUQ7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBSRVZFUlNFRCBZT0dIOzswMUI4OzswMUI4CiswMUJBO0xBVElOIFNNQUxMIExFVFRFUiBFWkggV0lUSCBUQUlMO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWU9HSCBXSVRIIFRBSUw7Ozs7CiswMUJCO0xBVElOIExFVFRFUiBUV08gV0lUSCBTVFJPS0U7TG87MDtMOzs7OztOO0xBVElOIExFVFRFUiBUV08gQkFSOzs7OworMDFCQztMQVRJTiBDQVBJVEFMIExFVFRFUiBUT05FIEZJVkU7THU7MDtMOzs7OztOOzs7OzAxQkQ7CiswMUJEO0xBVElOIFNNQUxMIExFVFRFUiBUT05FIEZJVkU7TGw7MDtMOzs7OztOOzs7MDFCQzs7MDFCQworMDFCRTtMQVRJTiBMRVRURVIgSU5WRVJURUQgR0xPVFRBTCBTVE9QIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgSU5WRVJURUQgR0xPVFRBTCBTVE9QIEJBUjs7OzsKKzAxQkY7TEFUSU4gTEVUVEVSIFdZTk47TGw7MDtMOzs7OztOOzs7MDFGNzs7MDFGNworMDFDMDtMQVRJTiBMRVRURVIgREVOVEFMIENMSUNLO0xvOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgUElQRTs7OzsKKzAxQzE7TEFUSU4gTEVUVEVSIExBVEVSQUwgQ0xJQ0s7TG87MDtMOzs7OztOO0xBVElOIExFVFRFUiBET1VCTEUgUElQRTs7OzsKKzAxQzI7TEFUSU4gTEVUVEVSIEFMVkVPTEFSIENMSUNLO0xvOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgUElQRSBET1VCTEUgQkFSOzs7OworMDFDMztMQVRJTiBMRVRURVIgUkVUUk9GTEVYIENMSUNLO0xvOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgRVhDTEFNQVRJT04gTUFSSzs7OzsKKzAxQzQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRFogV0lUSCBDQVJPTjtMdTswO0w7PGNvbXBhdD4gMDA0NCAwMTdEOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBaIEhBQ0VLOzs7MDFDNjswMUM1CiswMUM1O0xBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBTTUFMTCBMRVRURVIgWiBXSVRIIENBUk9OO0x0OzA7TDs8Y29tcGF0PiAwMDQ0IDAxN0U7Ozs7TjtMQVRJTiBMRVRURVIgQ0FQSVRBTCBEIFNNQUxMIFogSEFDRUs7OzAxQzQ7MDFDNjsKKzAxQzY7TEFUSU4gU01BTEwgTEVUVEVSIERaIFdJVEggQ0FST047TGw7MDtMOzxjb21wYXQ+IDAwNjQgMDE3RTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBEIFogSEFDRUs7OzAxQzQ7OzAxQzUKKzAxQzc7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTEo7THU7MDtMOzxjb21wYXQ+IDAwNEMgMDA0QTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEwgSjs7OzAxQzk7MDFDOAorMDFDODtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggU01BTEwgTEVUVEVSIEo7THQ7MDtMOzxjb21wYXQ+IDAwNEMgMDA2QTs7OztOO0xBVElOIExFVFRFUiBDQVBJVEFMIEwgU01BTEwgSjs7MDFDNzswMUM5OworMDFDOTtMQVRJTiBTTUFMTCBMRVRURVIgTEo7TGw7MDtMOzxjb21wYXQ+IDAwNkMgMDA2QTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBMIEo7OzAxQzc7OzAxQzgKKzAxQ0E7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTko7THU7MDtMOzxjb21wYXQ+IDAwNEUgMDA0QTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE4gSjs7OzAxQ0M7MDFDQgorMDFDQjtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggU01BTEwgTEVUVEVSIEo7THQ7MDtMOzxjb21wYXQ+IDAwNEUgMDA2QTs7OztOO0xBVElOIExFVFRFUiBDQVBJVEFMIE4gU01BTEwgSjs7MDFDQTswMUNDOworMDFDQztMQVRJTiBTTUFMTCBMRVRURVIgTko7TGw7MDtMOzxjb21wYXQ+IDAwNkUgMDA2QTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBOIEo7OzAxQ0E7OzAxQ0IKKzAxQ0Q7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIENBUk9OO0x1OzA7TDswMDQxIDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIEhBQ0VLOzs7MDFDRTsKKzAxQ0U7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBDQVJPTjtMbDswO0w7MDA2MSAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgSEFDRUs7OzAxQ0Q7OzAxQ0QKKzAxQ0Y7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIENBUk9OO0x1OzA7TDswMDQ5IDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIEhBQ0VLOzs7MDFEMDsKKzAxRDA7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBDQVJPTjtMbDswO0w7MDA2OSAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEkgSEFDRUs7OzAxQ0Y7OzAxQ0YKKzAxRDE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIENBUk9OO0x1OzA7TDswMDRGIDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIEhBQ0VLOzs7MDFEMjsKKzAxRDI7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBDQVJPTjtMbDswO0w7MDA2RiAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gSEFDRUs7OzAxRDE7OzAxRDEKKzAxRDM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIENBUk9OO0x1OzA7TDswMDU1IDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIEhBQ0VLOzs7MDFENDsKKzAxRDQ7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBDQVJPTjtMbDswO0w7MDA3NSAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgSEFDRUs7OzAxRDM7OzAxRDMKKzAxRDU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUyBBTkQgTUFDUk9OO0x1OzA7TDswMERDIDAzMDQ7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIERJQUVSRVNJUyBNQUNST047OzswMUQ2OworMDFENjtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUyBBTkQgTUFDUk9OO0xsOzA7TDswMEZDIDAzMDQ7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBESUFFUkVTSVMgTUFDUk9OOzswMUQ1OzswMUQ1CiswMUQ3O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVMgQU5EIEFDVVRFO0x1OzA7TDswMERDIDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIERJQUVSRVNJUyBBQ1VURTs7OzAxRDg7CiswMUQ4O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTIEFORCBBQ1VURTtMbDswO0w7MDBGQyAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgRElBRVJFU0lTIEFDVVRFOzswMUQ3OzswMUQ3CiswMUQ5O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVMgQU5EIENBUk9OO0x1OzA7TDswMERDIDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIERJQUVSRVNJUyBIQUNFSzs7OzAxREE7CiswMURBO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTIEFORCBDQVJPTjtMbDswO0w7MDBGQyAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgRElBRVJFU0lTIEhBQ0VLOzswMUQ5OzswMUQ5CiswMURCO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVMgQU5EIEdSQVZFO0x1OzA7TDswMERDIDAzMDA7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIERJQUVSRVNJUyBHUkFWRTs7OzAxREM7CiswMURDO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTIEFORCBHUkFWRTtMbDswO0w7MDBGQyAwMzAwOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgRElBRVJFU0lTIEdSQVZFOzswMURCOzswMURCCiswMUREO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgRTtMbDswO0w7Ozs7O047OzswMThFOzswMThFCiswMURFO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBESUFFUkVTSVMgQU5EIE1BQ1JPTjtMdTswO0w7MDBDNCAwMzA0Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBESUFFUkVTSVMgTUFDUk9OOzs7MDFERjsKKzAxREY7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBESUFFUkVTSVMgQU5EIE1BQ1JPTjtMbDswO0w7MDBFNCAwMzA0Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgRElBRVJFU0lTIE1BQ1JPTjs7MDFERTs7MDFERQorMDFFMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggRE9UIEFCT1ZFIEFORCBNQUNST047THU7MDtMOzAyMjYgMDMwNDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgRE9UIE1BQ1JPTjs7OzAxRTE7CiswMUUxO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggRE9UIEFCT1ZFIEFORCBNQUNST047TGw7MDtMOzAyMjcgMDMwNDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIERPVCBNQUNST047OzAxRTA7OzAxRTAKKzAxRTI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQUUgV0lUSCBNQUNST047THU7MDtMOzAwQzYgMDMwNDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgRSBNQUNST047YXNoICo7OzAxRTM7CiswMUUzO0xBVElOIFNNQUxMIExFVFRFUiBBRSBXSVRIIE1BQ1JPTjtMbDswO0w7MDBFNiAwMzA0Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgRSBNQUNST047YXNoICo7MDFFMjs7MDFFMgorMDFFNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIEJBUjs7OzAxRTU7CiswMUU1O0xBVElOIFNNQUxMIExFVFRFUiBHIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRyBCQVI7OzAxRTQ7OzAxRTQKKzAxRTY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBXSVRIIENBUk9OO0x1OzA7TDswMDQ3IDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIEhBQ0VLOzs7MDFFNzsKKzAxRTc7TEFUSU4gU01BTEwgTEVUVEVSIEcgV0lUSCBDQVJPTjtMbDswO0w7MDA2NyAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEcgSEFDRUs7OzAxRTY7OzAxRTYKKzAxRTg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSyBXSVRIIENBUk9OO0x1OzA7TDswMDRCIDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBLIEhBQ0VLOzs7MDFFOTsKKzAxRTk7TEFUSU4gU01BTEwgTEVUVEVSIEsgV0lUSCBDQVJPTjtMbDswO0w7MDA2QiAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEsgSEFDRUs7OzAxRTg7OzAxRTgKKzAxRUE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIE9HT05FSztMdTswO0w7MDA0RiAwMzI4Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBPR09ORUs7OzswMUVCOworMDFFQjtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIE9HT05FSztMbDswO0w7MDA2RiAwMzI4Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gT0dPTkVLOzswMUVBOzswMUVBCiswMUVDO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBPR09ORUsgQU5EIE1BQ1JPTjtMdTswO0w7MDFFQSAwMzA0Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBPR09ORUsgTUFDUk9OOzs7MDFFRDsKKzAxRUQ7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBPR09ORUsgQU5EIE1BQ1JPTjtMbDswO0w7MDFFQiAwMzA0Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gT0dPTkVLIE1BQ1JPTjs7MDFFQzs7MDFFQworMDFFRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBFWkggV0lUSCBDQVJPTjtMdTswO0w7MDFCNyAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgWU9HSCBIQUNFSzs7OzAxRUY7CiswMUVGO0xBVElOIFNNQUxMIExFVFRFUiBFWkggV0lUSCBDQVJPTjtMbDswO0w7MDI5MiAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFlPR0ggSEFDRUs7OzAxRUU7OzAxRUUKKzAxRjA7TEFUSU4gU01BTEwgTEVUVEVSIEogV0lUSCBDQVJPTjtMbDswO0w7MDA2QSAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEogSEFDRUs7Ozs7CiswMUYxO0xBVElOIENBUElUQUwgTEVUVEVSIERaO0x1OzA7TDs8Y29tcGF0PiAwMDQ0IDAwNUE7Ozs7Tjs7OzswMUYzOzAxRjIKKzAxRjI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIFNNQUxMIExFVFRFUiBaO0x0OzA7TDs8Y29tcGF0PiAwMDQ0IDAwN0E7Ozs7Tjs7OzAxRjE7MDFGMzsKKzAxRjM7TEFUSU4gU01BTEwgTEVUVEVSIERaO0xsOzA7TDs8Y29tcGF0PiAwMDY0IDAwN0E7Ozs7Tjs7OzAxRjE7OzAxRjIKKzAxRjQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBXSVRIIEFDVVRFO0x1OzA7TDswMDQ3IDAzMDE7Ozs7Tjs7OzswMUY1OworMDFGNTtMQVRJTiBTTUFMTCBMRVRURVIgRyBXSVRIIEFDVVRFO0xsOzA7TDswMDY3IDAzMDE7Ozs7Tjs7OzAxRjQ7OzAxRjQKKzAxRjY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSFdBSVI7THU7MDtMOzs7OztOOzs7OzAxOTU7CiswMUY3O0xBVElOIENBUElUQUwgTEVUVEVSIFdZTk47THU7MDtMOzs7OztOOzs7OzAxQkY7CiswMUY4O0xBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBHUkFWRTtMdTswO0w7MDA0RSAwMzAwOzs7O047Ozs7MDFGOTsKKzAxRjk7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBHUkFWRTtMbDswO0w7MDA2RSAwMzAwOzs7O047OzswMUY4OzswMUY4CiswMUZBO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBSSU5HIEFCT1ZFIEFORCBBQ1VURTtMdTswO0w7MDBDNSAwMzAxOzs7O047Ozs7MDFGQjsKKzAxRkI7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBSSU5HIEFCT1ZFIEFORCBBQ1VURTtMbDswO0w7MDBFNSAwMzAxOzs7O047OzswMUZBOzswMUZBCiswMUZDO0xBVElOIENBUElUQUwgTEVUVEVSIEFFIFdJVEggQUNVVEU7THU7MDtMOzAwQzYgMDMwMTs7OztOOzthc2ggKjs7MDFGRDsKKzAxRkQ7TEFUSU4gU01BTEwgTEVUVEVSIEFFIFdJVEggQUNVVEU7TGw7MDtMOzAwRTYgMDMwMTs7OztOOzthc2ggKjswMUZDOzswMUZDCiswMUZFO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBTVFJPS0UgQU5EIEFDVVRFO0x1OzA7TDswMEQ4IDAzMDE7Ozs7Tjs7OzswMUZGOworMDFGRjtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIFNUUk9LRSBBTkQgQUNVVEU7TGw7MDtMOzAwRjggMDMwMTs7OztOOzs7MDFGRTs7MDFGRQorMDIwMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggRE9VQkxFIEdSQVZFO0x1OzA7TDswMDQxIDAzMEY7Ozs7Tjs7OzswMjAxOworMDIwMTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIERPVUJMRSBHUkFWRTtMbDswO0w7MDA2MSAwMzBGOzs7O047OzswMjAwOzswMjAwCiswMjAyO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBJTlZFUlRFRCBCUkVWRTtMdTswO0w7MDA0MSAwMzExOzs7O047Ozs7MDIwMzsKKzAyMDM7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBJTlZFUlRFRCBCUkVWRTtMbDswO0w7MDA2MSAwMzExOzs7O047OzswMjAyOzswMjAyCiswMjA0O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBET1VCTEUgR1JBVkU7THU7MDtMOzAwNDUgMDMwRjs7OztOOzs7OzAyMDU7CiswMjA1O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggRE9VQkxFIEdSQVZFO0xsOzA7TDswMDY1IDAzMEY7Ozs7Tjs7OzAyMDQ7OzAyMDQKKzAyMDY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIElOVkVSVEVEIEJSRVZFO0x1OzA7TDswMDQ1IDAzMTE7Ozs7Tjs7OzswMjA3OworMDIwNztMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIElOVkVSVEVEIEJSRVZFO0xsOzA7TDswMDY1IDAzMTE7Ozs7Tjs7OzAyMDY7OzAyMDYKKzAyMDg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERPVUJMRSBHUkFWRTtMdTswO0w7MDA0OSAwMzBGOzs7O047Ozs7MDIwOTsKKzAyMDk7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBET1VCTEUgR1JBVkU7TGw7MDtMOzAwNjkgMDMwRjs7OztOOzs7MDIwODs7MDIwOAorMDIwQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggSU5WRVJURUQgQlJFVkU7THU7MDtMOzAwNDkgMDMxMTs7OztOOzs7OzAyMEI7CiswMjBCO0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggSU5WRVJURUQgQlJFVkU7TGw7MDtMOzAwNjkgMDMxMTs7OztOOzs7MDIwQTs7MDIwQQorMDIwQztMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggRE9VQkxFIEdSQVZFO0x1OzA7TDswMDRGIDAzMEY7Ozs7Tjs7OzswMjBEOworMDIwRDtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIERPVUJMRSBHUkFWRTtMbDswO0w7MDA2RiAwMzBGOzs7O047OzswMjBDOzswMjBDCiswMjBFO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBJTlZFUlRFRCBCUkVWRTtMdTswO0w7MDA0RiAwMzExOzs7O047Ozs7MDIwRjsKKzAyMEY7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBJTlZFUlRFRCBCUkVWRTtMbDswO0w7MDA2RiAwMzExOzs7O047OzswMjBFOzswMjBFCiswMjEwO0xBVElOIENBUElUQUwgTEVUVEVSIFIgV0lUSCBET1VCTEUgR1JBVkU7THU7MDtMOzAwNTIgMDMwRjs7OztOOzs7OzAyMTE7CiswMjExO0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggRE9VQkxFIEdSQVZFO0xsOzA7TDswMDcyIDAzMEY7Ozs7Tjs7OzAyMTA7OzAyMTAKKzAyMTI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBXSVRIIElOVkVSVEVEIEJSRVZFO0x1OzA7TDswMDUyIDAzMTE7Ozs7Tjs7OzswMjEzOworMDIxMztMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIElOVkVSVEVEIEJSRVZFO0xsOzA7TDswMDcyIDAzMTE7Ozs7Tjs7OzAyMTI7OzAyMTIKKzAyMTQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIERPVUJMRSBHUkFWRTtMdTswO0w7MDA1NSAwMzBGOzs7O047Ozs7MDIxNTsKKzAyMTU7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBET1VCTEUgR1JBVkU7TGw7MDtMOzAwNzUgMDMwRjs7OztOOzs7MDIxNDs7MDIxNAorMDIxNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggSU5WRVJURUQgQlJFVkU7THU7MDtMOzAwNTUgMDMxMTs7OztOOzs7OzAyMTc7CiswMjE3O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggSU5WRVJURUQgQlJFVkU7TGw7MDtMOzAwNzUgMDMxMTs7OztOOzs7MDIxNjs7MDIxNgorMDIxODtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIFdJVEggQ09NTUEgQkVMT1c7THU7MDtMOzAwNTMgMDMyNjs7OztOOzsqOzswMjE5OworMDIxOTtMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIENPTU1BIEJFTE9XO0xsOzA7TDswMDczIDAzMjY7Ozs7Tjs7KjswMjE4OzswMjE4CiswMjFBO0xBVElOIENBUElUQUwgTEVUVEVSIFQgV0lUSCBDT01NQSBCRUxPVztMdTswO0w7MDA1NCAwMzI2Ozs7O047Oyo7OzAyMUI7CiswMjFCO0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggQ09NTUEgQkVMT1c7TGw7MDtMOzAwNzQgMDMyNjs7OztOOzsqOzAyMUE7OzAyMUEKKzAyMUM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWU9HSDtMdTswO0w7Ozs7O047Ozs7MDIxRDsKKzAyMUQ7TEFUSU4gU01BTEwgTEVUVEVSIFlPR0g7TGw7MDtMOzs7OztOOzs7MDIxQzs7MDIxQworMDIxRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBIIFdJVEggQ0FST047THU7MDtMOzAwNDggMDMwQzs7OztOOzs7OzAyMUY7CiswMjFGO0xBVElOIFNNQUxMIExFVFRFUiBIIFdJVEggQ0FST047TGw7MDtMOzAwNjggMDMwQzs7OztOOzs7MDIxRTs7MDIxRQorMDIyMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggTE9ORyBSSUdIVCBMRUc7THU7MDtMOzs7OztOOzs7OzAxOUU7CiswMjIyO0xBVElOIENBUElUQUwgTEVUVEVSIE9VO0x1OzA7TDs7Ozs7Tjs7OzswMjIzOworMDIyMztMQVRJTiBTTUFMTCBMRVRURVIgT1U7TGw7MDtMOzs7OztOOzs7MDIyMjs7MDIyMgorMDIyNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIFdJVEggSE9PSztMdTswO0w7Ozs7O047Ozs7MDIyNTsKKzAyMjU7TEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBIT09LO0xsOzA7TDs7Ozs7Tjs7OzAyMjQ7OzAyMjQKKzAyMjY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA0MSAwMzA3Ozs7O047Ozs7MDIyNzsKKzAyMjc7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNjEgMDMwNzs7OztOOzs7MDIyNjs7MDIyNgorMDIyODtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0VESUxMQTtMdTswO0w7MDA0NSAwMzI3Ozs7O047Ozs7MDIyOTsKKzAyMjk7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBDRURJTExBO0xsOzA7TDswMDY1IDAzMjc7Ozs7Tjs7OzAyMjg7OzAyMjgKKzAyMkE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIERJQUVSRVNJUyBBTkQgTUFDUk9OO0x1OzA7TDswMEQ2IDAzMDQ7Ozs7Tjs7OzswMjJCOworMDIyQjtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIERJQUVSRVNJUyBBTkQgTUFDUk9OO0xsOzA7TDswMEY2IDAzMDQ7Ozs7Tjs7OzAyMkE7OzAyMkEKKzAyMkM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIFRJTERFIEFORCBNQUNST047THU7MDtMOzAwRDUgMDMwNDs7OztOOzs7OzAyMkQ7CiswMjJEO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggVElMREUgQU5EIE1BQ1JPTjtMbDswO0w7MDBGNSAwMzA0Ozs7O047OzswMjJDOzswMjJDCiswMjJFO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNEYgMDMwNzs7OztOOzs7OzAyMkY7CiswMjJGO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDZGIDAzMDc7Ozs7Tjs7OzAyMkU7OzAyMkUKKzAyMzA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIERPVCBBQk9WRSBBTkQgTUFDUk9OO0x1OzA7TDswMjJFIDAzMDQ7Ozs7Tjs7OzswMjMxOworMDIzMTtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIERPVCBBQk9WRSBBTkQgTUFDUk9OO0xsOzA7TDswMjJGIDAzMDQ7Ozs7Tjs7OzAyMzA7OzAyMzAKKzAyMzI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIE1BQ1JPTjtMdTswO0w7MDA1OSAwMzA0Ozs7O047Ozs7MDIzMzsKKzAyMzM7TEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBNQUNST047TGw7MDtMOzAwNzkgMDMwNDs7OztOOzs7MDIzMjs7MDIzMgorMDI1MDtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIEE7TGw7MDtMOzs7OztOOzs7OzsKKzAyNTE7TEFUSU4gU01BTEwgTEVUVEVSIEFMUEhBO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgU0NSSVBUIEE7Ozs7CiswMjUyO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgQUxQSEE7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgU0NSSVBUIEE7Ozs7CiswMjUzO0xBVElOIFNNQUxMIExFVFRFUiBCIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEIgSE9PSzs7MDE4MTs7MDE4MQorMDI1NDtMQVRJTiBTTUFMTCBMRVRURVIgT1BFTiBPO0xsOzA7TDs7Ozs7Tjs7OzAxODY7OzAxODYKKzAyNTU7TEFUSU4gU01BTEwgTEVUVEVSIEMgV0lUSCBDVVJMO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQyBDVVJMOzs7OworMDI1NjtMQVRJTiBTTUFMTCBMRVRURVIgRCBXSVRIIFRBSUw7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBEIFJFVFJPRkxFWCBIT09LOzswMTg5OzswMTg5CiswMjU3O0xBVElOIFNNQUxMIExFVFRFUiBEIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEQgSE9PSzs7MDE4QTs7MDE4QQorMDI1ODtMQVRJTiBTTUFMTCBMRVRURVIgUkVWRVJTRUQgRTtMbDswO0w7Ozs7O047Ozs7OworMDI1OTtMQVRJTiBTTUFMTCBMRVRURVIgU0NIV0E7TGw7MDtMOzs7OztOOzs7MDE4Rjs7MDE4RgorMDI1QTtMQVRJTiBTTUFMTCBMRVRURVIgU0NIV0EgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgU0NIV0EgSE9PSzs7OzsKKzAyNUI7TEFUSU4gU01BTEwgTEVUVEVSIE9QRU4gRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEVQU0lMT047OzAxOTA7OzAxOTAKKzAyNUM7TEFUSU4gU01BTEwgTEVUVEVSIFJFVkVSU0VEIE9QRU4gRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFJFVkVSU0VEIEVQU0lMT047Ozs7CiswMjVEO0xBVElOIFNNQUxMIExFVFRFUiBSRVZFUlNFRCBPUEVOIEUgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUkVWRVJTRUQgRVBTSUxPTiBIT09LOzs7OworMDI1RTtMQVRJTiBTTUFMTCBMRVRURVIgQ0xPU0VEIFJFVkVSU0VEIE9QRU4gRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIENMT1NFRCBSRVZFUlNFRCBFUFNJTE9OOzs7OworMDI1RjtMQVRJTiBTTUFMTCBMRVRURVIgRE9UTEVTUyBKIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRE9UTEVTUyBKIEJBUjs7OzsKKzAyNjA7TEFUSU4gU01BTEwgTEVUVEVSIEcgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRyBIT09LOzswMTkzOzswMTkzCiswMjYxO0xBVElOIFNNQUxMIExFVFRFUiBTQ1JJUFQgRztMbDswO0w7Ozs7O047Ozs7OworMDI2MjtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBHO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjYzO0xBVElOIFNNQUxMIExFVFRFUiBHQU1NQTtMbDswO0w7Ozs7O047OzswMTk0OzswMTk0CiswMjY0O0xBVElOIFNNQUxMIExFVFRFUiBSQU1TIEhPUk47TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBCQUJZIEdBTU1BOzs7OworMDI2NTtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIEg7TGw7MDtMOzs7OztOOzs7OzsKKzAyNjY7TEFUSU4gU01BTEwgTEVUVEVSIEggV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSCBIT09LOzs7OworMDI2NztMQVRJTiBTTUFMTCBMRVRURVIgSEVORyBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBIRU5HIEhPT0s7Ozs7CiswMjY4O0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQkFSUkVEIEk7OzAxOTc7OzAxOTcKKzAyNjk7TEFUSU4gU01BTEwgTEVUVEVSIElPVEE7TGw7MDtMOzs7OztOOzs7MDE5Njs7MDE5NgorMDI2QTtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBJO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjZCO0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggTUlERExFIFRJTERFO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjZDO0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggQkVMVDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEwgQkVMVDs7OzsKKzAyNkQ7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBSRVRST0ZMRVggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEwgUkVUUk9GTEVYIEhPT0s7Ozs7CiswMjZFO0xBVElOIFNNQUxMIExFVFRFUiBMRVpIO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTCBZT0dIOzs7OworMDI2RjtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIE07TGw7MDtMOzs7OztOOzs7MDE5Qzs7MDE5QworMDI3MDtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIE0gV0lUSCBMT05HIExFRztMbDswO0w7Ozs7O047Ozs7OworMDI3MTtMQVRJTiBTTUFMTCBMRVRURVIgTSBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBNIEhPT0s7Ozs7CiswMjcyO0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggTEVGVCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTiBIT09LOzswMTlEOzswMTlECiswMjczO0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggUkVUUk9GTEVYIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBOIFJFVFJPRkxFWCBIT09LOzs7OworMDI3NDtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBOO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjc1O0xBVElOIFNNQUxMIExFVFRFUiBCQVJSRUQgTztMbDswO0w7Ozs7O047OzswMTlGOzswMTlGCiswMjc2O0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIE9FO0xsOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBPIEU7Ozs7CiswMjc3O0xBVElOIFNNQUxMIExFVFRFUiBDTE9TRUQgT01FR0E7TGw7MDtMOzs7OztOOzs7OzsKKzAyNzg7TEFUSU4gU01BTEwgTEVUVEVSIFBISTtMbDswO0w7Ozs7O047Ozs7OworMDI3OTtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIFI7TGw7MDtMOzs7OztOOzs7OzsKKzAyN0E7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBSIFdJVEggTE9ORyBMRUc7TGw7MDtMOzs7OztOOzs7OzsKKzAyN0I7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBSIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBSIEhPT0s7Ozs7CiswMjdDO0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggTE9ORyBMRUc7TGw7MDtMOzs7OztOOzs7OzsKKzAyN0Q7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBUQUlMO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUiBIT09LOzs7OworMDI3RTtMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIEZJU0hIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRklTSEhPT0sgUjs7OzsKKzAyN0Y7TEFUSU4gU01BTEwgTEVUVEVSIFJFVkVSU0VEIFIgV0lUSCBGSVNISE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFJFVkVSU0VEIEZJU0hIT09LIFI7Ozs7CiswMjgwO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIFI7TGw7MDtMOzs7OztOOzsqOzAxQTY7OzAxQTYKKzAyODE7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgSU5WRVJURUQgUjtMbDswO0w7Ozs7O047Ozs7OworMDI4MjtMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBTIEhPT0s7Ozs7CiswMjgzO0xBVElOIFNNQUxMIExFVFRFUiBFU0g7TGw7MDtMOzs7OztOOzs7MDFBOTs7MDFBOQorMDI4NDtMQVRJTiBTTUFMTCBMRVRURVIgRE9UTEVTUyBKIFdJVEggU1RST0tFIEFORCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRE9UTEVTUyBKIEJBUiBIT09LOzs7OworMDI4NTtMQVRJTiBTTUFMTCBMRVRURVIgU1FVQVQgUkVWRVJTRUQgRVNIO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjg2O0xBVElOIFNNQUxMIExFVFRFUiBFU0ggV0lUSCBDVVJMO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRVNIIENVUkw7Ozs7CiswMjg3O0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgVDtMbDswO0w7Ozs7O047Ozs7OworMDI4ODtMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIFJFVFJPRkxFWCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVCBSRVRST0ZMRVggSE9PSzs7MDFBRTs7MDFBRQorMDI4OTtMQVRJTiBTTUFMTCBMRVRURVIgVSBCQVI7TGw7MDtMOzs7OztOOzs7OzsKKzAyOEE7TEFUSU4gU01BTEwgTEVUVEVSIFVQU0lMT047TGw7MDtMOzs7OztOOzs7MDFCMTs7MDFCMQorMDI4QjtMQVRJTiBTTUFMTCBMRVRURVIgViBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBTQ1JJUFQgVjs7MDFCMjs7MDFCMgorMDI4QztMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIFY7TGw7MDtMOzs7OztOOzs7OzsKKzAyOEQ7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBXO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjhFO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgWTtMbDswO0w7Ozs7O047Ozs7OworMDI4RjtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBZO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjkwO0xBVElOIFNNQUxMIExFVFRFUiBaIFdJVEggUkVUUk9GTEVYIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBaIFJFVFJPRkxFWCBIT09LOzs7OworMDI5MTtMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIENVUkw7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBaIENVUkw7Ozs7CiswMjkyO0xBVElOIFNNQUxMIExFVFRFUiBFWkg7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBZT0dIOzswMUI3OzswMUI3CiswMjkzO0xBVElOIFNNQUxMIExFVFRFUiBFWkggV0lUSCBDVVJMO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWU9HSCBDVVJMOzs7OworMDI5NDtMQVRJTiBMRVRURVIgR0xPVFRBTCBTVE9QO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjk1O0xBVElOIExFVFRFUiBQSEFSWU5HRUFMIFZPSUNFRCBGUklDQVRJVkU7TGw7MDtMOzs7OztOO0xBVElOIExFVFRFUiBSRVZFUlNFRCBHTE9UVEFMIFNUT1A7Ozs7CiswMjk2O0xBVElOIExFVFRFUiBJTlZFUlRFRCBHTE9UVEFMIFNUT1A7TGw7MDtMOzs7OztOOzs7OzsKKzAyOTc7TEFUSU4gTEVUVEVSIFNUUkVUQ0hFRCBDO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjk4O0xBVElOIExFVFRFUiBCSUxBQklBTCBDTElDSztMbDswO0w7Ozs7O047TEFUSU4gTEVUVEVSIEJVTExTRVlFOzs7OworMDI5OTtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBCO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjlBO0xBVElOIFNNQUxMIExFVFRFUiBDTE9TRUQgT1BFTiBFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQ0xPU0VEIEVQU0lMT047Ozs7CiswMjlCO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIEcgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBHIEhPT0s7Ozs7CiswMjlDO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIEg7TGw7MDtMOzs7OztOOzs7OzsKKzAyOUQ7TEFUSU4gU01BTEwgTEVUVEVSIEogV0lUSCBDUk9TU0VELVRBSUw7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBDUk9TU0VELVRBSUwgSjs7OzsKKzAyOUU7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBLO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjlGO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIEw7TGw7MDtMOzs7OztOOzs7OzsKKzAyQTA7TEFUSU4gU01BTEwgTEVUVEVSIFEgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUSBIT09LOzs7OworMDJBMTtMQVRJTiBMRVRURVIgR0xPVFRBTCBTVE9QIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgR0xPVFRBTCBTVE9QIEJBUjs7OzsKKzAyQTI7TEFUSU4gTEVUVEVSIFJFVkVSU0VEIEdMT1RUQUwgU1RPUCBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gTEVUVEVSIFJFVkVSU0VEIEdMT1RUQUwgU1RPUCBCQVI7Ozs7CiswMkEzO0xBVElOIFNNQUxMIExFVFRFUiBEWiBESUdSQVBIO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRCBaOzs7OworMDJBNDtMQVRJTiBTTUFMTCBMRVRURVIgREVaSCBESUdSQVBIO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRCBZT0dIOzs7OworMDJBNTtMQVRJTiBTTUFMTCBMRVRURVIgRFogRElHUkFQSCBXSVRIIENVUkw7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBEIFogQ1VSTDs7OzsKKzAyQTY7TEFUSU4gU01BTEwgTEVUVEVSIFRTIERJR1JBUEg7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBUIFM7Ozs7CiswMkE3O0xBVElOIFNNQUxMIExFVFRFUiBURVNIIERJR1JBUEg7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBUIEVTSDs7OzsKKzAyQTg7TEFUSU4gU01BTEwgTEVUVEVSIFRDIERJR1JBUEggV0lUSCBDVVJMO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVCBDIENVUkw7Ozs7CiswMkE5O0xBVElOIFNNQUxMIExFVFRFUiBGRU5HIERJR1JBUEg7TGw7MDtMOzs7OztOOzs7OzsKKzAyQUE7TEFUSU4gU01BTEwgTEVUVEVSIExTIERJR1JBUEg7TGw7MDtMOzs7OztOOzs7OzsKKzAyQUI7TEFUSU4gU01BTEwgTEVUVEVSIExaIERJR1JBUEg7TGw7MDtMOzs7OztOOzs7OzsKKzAyQUM7TEFUSU4gTEVUVEVSIEJJTEFCSUFMIFBFUkNVU1NJVkU7TGw7MDtMOzs7OztOOzs7OzsKKzAyQUQ7TEFUSU4gTEVUVEVSIEJJREVOVEFMIFBFUkNVU1NJVkU7TGw7MDtMOzs7OztOOzs7OzsKKzAyQjA7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIEg7TG07MDtMOzxzdXBlcj4gMDA2ODs7OztOOzs7OzsKKzAyQjE7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIEggV0lUSCBIT09LO0xtOzA7TDs8c3VwZXI+IDAyNjY7Ozs7TjtNT0RJRklFUiBMRVRURVIgU01BTEwgSCBIT09LOzs7OworMDJCMjtNT0RJRklFUiBMRVRURVIgU01BTEwgSjtMbTswO0w7PHN1cGVyPiAwMDZBOzs7O047Ozs7OworMDJCMztNT0RJRklFUiBMRVRURVIgU01BTEwgUjtMbTswO0w7PHN1cGVyPiAwMDcyOzs7O047Ozs7OworMDJCNDtNT0RJRklFUiBMRVRURVIgU01BTEwgVFVSTkVEIFI7TG07MDtMOzxzdXBlcj4gMDI3OTs7OztOOzs7OzsKKzAyQjU7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFRVUk5FRCBSIFdJVEggSE9PSztMbTswO0w7PHN1cGVyPiAwMjdCOzs7O047TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFRVUk5FRCBSIEhPT0s7Ozs7CiswMkI2O01PRElGSUVSIExFVFRFUiBTTUFMTCBDQVBJVEFMIElOVkVSVEVEIFI7TG07MDtMOzxzdXBlcj4gMDI4MTs7OztOOzs7OzsKKzAyQjc7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFc7TG07MDtMOzxzdXBlcj4gMDA3Nzs7OztOOzs7OzsKKzAyQjg7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFk7TG07MDtMOzxzdXBlcj4gMDA3OTs7OztOOzs7OzsKKzAyQjk7TU9ESUZJRVIgTEVUVEVSIFBSSU1FO1NrOzA7T047Ozs7O047Ozs7OworMDJCQTtNT0RJRklFUiBMRVRURVIgRE9VQkxFIFBSSU1FO1NrOzA7T047Ozs7O047Ozs7OworMDJCQjtNT0RJRklFUiBMRVRURVIgVFVSTkVEIENPTU1BO0xtOzA7TDs7Ozs7Tjs7Ozs7CiswMkJDO01PRElGSUVSIExFVFRFUiBBUE9TVFJPUEhFO0xtOzA7TDs7Ozs7Tjs7Ozs7CiswMkJEO01PRElGSUVSIExFVFRFUiBSRVZFUlNFRCBDT01NQTtMbTswO0w7Ozs7O047Ozs7OworMDJCRTtNT0RJRklFUiBMRVRURVIgUklHSFQgSEFMRiBSSU5HO0xtOzA7TDs7Ozs7Tjs7Ozs7CiswMkJGO01PRElGSUVSIExFVFRFUiBMRUZUIEhBTEYgUklORztMbTswO0w7Ozs7O047Ozs7OworMDJDMDtNT0RJRklFUiBMRVRURVIgR0xPVFRBTCBTVE9QO0xtOzA7TDs7Ozs7Tjs7Ozs7CiswMkMxO01PRElGSUVSIExFVFRFUiBSRVZFUlNFRCBHTE9UVEFMIFNUT1A7TG07MDtMOzs7OztOOzs7OzsKKzAyQzI7TU9ESUZJRVIgTEVUVEVSIExFRlQgQVJST1dIRUFEO1NrOzA7T047Ozs7O047Ozs7OworMDJDMztNT0RJRklFUiBMRVRURVIgUklHSFQgQVJST1dIRUFEO1NrOzA7T047Ozs7O047Ozs7OworMDJDNDtNT0RJRklFUiBMRVRURVIgVVAgQVJST1dIRUFEO1NrOzA7T047Ozs7O047Ozs7OworMDJDNTtNT0RJRklFUiBMRVRURVIgRE9XTiBBUlJPV0hFQUQ7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkM2O01PRElGSUVSIExFVFRFUiBDSVJDVU1GTEVYIEFDQ0VOVDtTazswO09OOzs7OztOO01PRElGSUVSIExFVFRFUiBDSVJDVU1GTEVYOzs7OworMDJDNztDQVJPTjtTazswO09OOzs7OztOO01PRElGSUVSIExFVFRFUiBIQUNFSztNYW5kYXJpbiBDaGluZXNlIHRoaXJkIHRvbmU7OzsKKzAyQzg7TU9ESUZJRVIgTEVUVEVSIFZFUlRJQ0FMIExJTkU7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkM5O01PRElGSUVSIExFVFRFUiBNQUNST047U2s7MDtPTjs7Ozs7Tjs7TWFuZGFyaW4gQ2hpbmVzZSBmaXJzdCB0b25lOzs7CiswMkNBO01PRElGSUVSIExFVFRFUiBBQ1VURSBBQ0NFTlQ7U2s7MDtPTjs7Ozs7TjtNT0RJRklFUiBMRVRURVIgQUNVVEU7TWFuZGFyaW4gQ2hpbmVzZSBzZWNvbmQgdG9uZTs7OworMDJDQjtNT0RJRklFUiBMRVRURVIgR1JBVkUgQUNDRU5UO1NrOzA7T047Ozs7O047TU9ESUZJRVIgTEVUVEVSIEdSQVZFO01hbmRhcmluIENoaW5lc2UgZm91cnRoIHRvbmU7OzsKKzAyQ0M7TU9ESUZJRVIgTEVUVEVSIExPVyBWRVJUSUNBTCBMSU5FO1NrOzA7T047Ozs7O047Ozs7OworMDJDRDtNT0RJRklFUiBMRVRURVIgTE9XIE1BQ1JPTjtTazswO09OOzs7OztOOzs7OzsKKzAyQ0U7TU9ESUZJRVIgTEVUVEVSIExPVyBHUkFWRSBBQ0NFTlQ7U2s7MDtPTjs7Ozs7TjtNT0RJRklFUiBMRVRURVIgTE9XIEdSQVZFOzs7OworMDJDRjtNT0RJRklFUiBMRVRURVIgTE9XIEFDVVRFIEFDQ0VOVDtTazswO09OOzs7OztOO01PRElGSUVSIExFVFRFUiBMT1cgQUNVVEU7Ozs7CiswMkQwO01PRElGSUVSIExFVFRFUiBUUklBTkdVTEFSIENPTE9OO0xtOzA7TDs7Ozs7Tjs7Ozs7CiswMkQxO01PRElGSUVSIExFVFRFUiBIQUxGIFRSSUFOR1VMQVIgQ09MT047TG07MDtMOzs7OztOOzs7OzsKKzAyRDI7TU9ESUZJRVIgTEVUVEVSIENFTlRSRUQgUklHSFQgSEFMRiBSSU5HO1NrOzA7T047Ozs7O047TU9ESUZJRVIgTEVUVEVSIENFTlRFUkVEIFJJR0hUIEhBTEYgUklORzs7OzsKKzAyRDM7TU9ESUZJRVIgTEVUVEVSIENFTlRSRUQgTEVGVCBIQUxGIFJJTkc7U2s7MDtPTjs7Ozs7TjtNT0RJRklFUiBMRVRURVIgQ0VOVEVSRUQgTEVGVCBIQUxGIFJJTkc7Ozs7CiswMkQ0O01PRElGSUVSIExFVFRFUiBVUCBUQUNLO1NrOzA7T047Ozs7O047Ozs7OworMDJENTtNT0RJRklFUiBMRVRURVIgRE9XTiBUQUNLO1NrOzA7T047Ozs7O047Ozs7OworMDJENjtNT0RJRklFUiBMRVRURVIgUExVUyBTSUdOO1NrOzA7T047Ozs7O047Ozs7OworMDJENztNT0RJRklFUiBMRVRURVIgTUlOVVMgU0lHTjtTazswO09OOzs7OztOOzs7OzsKKzAyRDg7QlJFVkU7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMDY7Ozs7TjtTUEFDSU5HIEJSRVZFOzs7OworMDJEOTtET1QgQUJPVkU7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMDc7Ozs7TjtTUEFDSU5HIERPVCBBQk9WRTtNYW5kYXJpbiBDaGluZXNlIGxpZ2h0IHRvbmU7OzsKKzAyREE7UklORyBBQk9WRTtTazswO09OOzxjb21wYXQ+IDAwMjAgMDMwQTs7OztOO1NQQUNJTkcgUklORyBBQk9WRTs7OzsKKzAyREI7T0dPTkVLO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzI4Ozs7O047U1BBQ0lORyBPR09ORUs7Ozs7CiswMkRDO1NNQUxMIFRJTERFO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzAzOzs7O047U1BBQ0lORyBUSUxERTs7OzsKKzAyREQ7RE9VQkxFIEFDVVRFIEFDQ0VOVDtTazswO09OOzxjb21wYXQ+IDAwMjAgMDMwQjs7OztOO1NQQUNJTkcgRE9VQkxFIEFDVVRFOzs7OworMDJERTtNT0RJRklFUiBMRVRURVIgUkhPVElDIEhPT0s7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkRGO01PRElGSUVSIExFVFRFUiBDUk9TUyBBQ0NFTlQ7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkUwO01PRElGSUVSIExFVFRFUiBTTUFMTCBHQU1NQTtMbTswO0w7PHN1cGVyPiAwMjYzOzs7O047Ozs7OworMDJFMTtNT0RJRklFUiBMRVRURVIgU01BTEwgTDtMbTswO0w7PHN1cGVyPiAwMDZDOzs7O047Ozs7OworMDJFMjtNT0RJRklFUiBMRVRURVIgU01BTEwgUztMbTswO0w7PHN1cGVyPiAwMDczOzs7O047Ozs7OworMDJFMztNT0RJRklFUiBMRVRURVIgU01BTEwgWDtMbTswO0w7PHN1cGVyPiAwMDc4Ozs7O047Ozs7OworMDJFNDtNT0RJRklFUiBMRVRURVIgU01BTEwgUkVWRVJTRUQgR0xPVFRBTCBTVE9QO0xtOzA7TDs8c3VwZXI+IDAyOTU7Ozs7Tjs7Ozs7CiswMkU1O01PRElGSUVSIExFVFRFUiBFWFRSQS1ISUdIIFRPTkUgQkFSO1NrOzA7T047Ozs7O047Ozs7OworMDJFNjtNT0RJRklFUiBMRVRURVIgSElHSCBUT05FIEJBUjtTazswO09OOzs7OztOOzs7OzsKKzAyRTc7TU9ESUZJRVIgTEVUVEVSIE1JRCBUT05FIEJBUjtTazswO09OOzs7OztOOzs7OzsKKzAyRTg7TU9ESUZJRVIgTEVUVEVSIExPVyBUT05FIEJBUjtTazswO09OOzs7OztOOzs7OzsKKzAyRTk7TU9ESUZJRVIgTEVUVEVSIEVYVFJBLUxPVyBUT05FIEJBUjtTazswO09OOzs7OztOOzs7OzsKKzAyRUE7TU9ESUZJRVIgTEVUVEVSIFlJTiBERVBBUlRJTkcgVE9ORSBNQVJLO1NrOzA7T047Ozs7O047Ozs7OworMDJFQjtNT0RJRklFUiBMRVRURVIgWUFORyBERVBBUlRJTkcgVE9ORSBNQVJLO1NrOzA7T047Ozs7O047Ozs7OworMDJFQztNT0RJRklFUiBMRVRURVIgVk9JQ0lORztTazswO09OOzs7OztOOzs7OzsKKzAyRUQ7TU9ESUZJRVIgTEVUVEVSIFVOQVNQSVJBVEVEO1NrOzA7T047Ozs7O047Ozs7OworMDJFRTtNT0RJRklFUiBMRVRURVIgRE9VQkxFIEFQT1NUUk9QSEU7TG07MDtMOzs7OztOOzs7OzsKKzAzMDA7Q09NQklOSU5HIEdSQVZFIEFDQ0VOVDtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIEdSQVZFO1ZhcmlhOzs7CiswMzAxO0NPTUJJTklORyBBQ1VURSBBQ0NFTlQ7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBBQ1VURTtPeGlhLCBUb25vczs7OworMDMwMjtDT01CSU5JTkcgQ0lSQ1VNRkxFWCBBQ0NFTlQ7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBDSVJDVU1GTEVYOzs7OworMDMwMztDT01CSU5JTkcgVElMREU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBUSUxERTs7OzsKKzAzMDQ7Q09NQklOSU5HIE1BQ1JPTjtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIE1BQ1JPTjs7OzsKKzAzMDU7Q09NQklOSU5HIE9WRVJMSU5FO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgT1ZFUlNDT1JFOzs7OworMDMwNjtDT01CSU5JTkcgQlJFVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBCUkVWRTtWcmFjaHk7OzsKKzAzMDc7Q09NQklOSU5HIERPVCBBQk9WRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIERPVCBBQk9WRTs7OzsKKzAzMDg7Q09NQklOSU5HIERJQUVSRVNJUztNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIERJQUVSRVNJUztEaWFseXRpa2E7OzsKKzAzMDk7Q09NQklOSU5HIEhPT0sgQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBIT09LIEFCT1ZFOzs7OworMDMwQTtDT01CSU5JTkcgUklORyBBQk9WRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFJJTkcgQUJPVkU7Ozs7CiswMzBCO0NPTUJJTklORyBET1VCTEUgQUNVVEUgQUNDRU5UO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgRE9VQkxFIEFDVVRFOzs7OworMDMwQztDT01CSU5JTkcgQ0FST047TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBIQUNFSzs7OzsKKzAzMEQ7Q09NQklOSU5HIFZFUlRJQ0FMIExJTkUgQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBWRVJUSUNBTCBMSU5FIEFCT1ZFOzs7OworMDMwRTtDT01CSU5JTkcgRE9VQkxFIFZFUlRJQ0FMIExJTkUgQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBET1VCTEUgVkVSVElDQUwgTElORSBBQk9WRTs7OzsKKzAzMEY7Q09NQklOSU5HIERPVUJMRSBHUkFWRSBBQ0NFTlQ7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBET1VCTEUgR1JBVkU7Ozs7CiswMzEwO0NPTUJJTklORyBDQU5EUkFCSU5EVTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIENBTkRSQUJJTkRVOzs7OworMDMxMTtDT01CSU5JTkcgSU5WRVJURUQgQlJFVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBJTlZFUlRFRCBCUkVWRTs7OzsKKzAzMTI7Q09NQklOSU5HIFRVUk5FRCBDT01NQSBBQk9WRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFRVUk5FRCBDT01NQSBBQk9WRTs7OzsKKzAzMTM7Q09NQklOSU5HIENPTU1BIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgQ09NTUEgQUJPVkU7UHNpbGk7OzsKKzAzMTQ7Q09NQklOSU5HIFJFVkVSU0VEIENPTU1BIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgUkVWRVJTRUQgQ09NTUEgQUJPVkU7RGFzaWE7OzsKKzAzMTU7Q09NQklOSU5HIENPTU1BIEFCT1ZFIFJJR0hUO01uOzIzMjtOU007Ozs7O047Tk9OLVNQQUNJTkcgQ09NTUEgQUJPVkUgUklHSFQ7Ozs7CiswMzE2O0NPTUJJTklORyBHUkFWRSBBQ0NFTlQgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBHUkFWRSBCRUxPVzs7OzsKKzAzMTc7Q09NQklOSU5HIEFDVVRFIEFDQ0VOVCBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIEFDVVRFIEJFTE9XOzs7OworMDMxODtDT01CSU5JTkcgTEVGVCBUQUNLIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgTEVGVCBUQUNLIEJFTE9XOzs7OworMDMxOTtDT01CSU5JTkcgUklHSFQgVEFDSyBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFJJR0hUIFRBQ0sgQkVMT1c7Ozs7CiswMzFBO0NPTUJJTklORyBMRUZUIEFOR0xFIEFCT1ZFO01uOzIzMjtOU007Ozs7O047Tk9OLVNQQUNJTkcgTEVGVCBBTkdMRSBBQk9WRTs7OzsKKzAzMUI7Q09NQklOSU5HIEhPUk47TW47MjE2O05TTTs7Ozs7TjtOT04tU1BBQ0lORyBIT1JOOzs7OworMDMxQztDT01CSU5JTkcgTEVGVCBIQUxGIFJJTkcgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBMRUZUIEhBTEYgUklORyBCRUxPVzs7OzsKKzAzMUQ7Q09NQklOSU5HIFVQIFRBQ0sgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBVUCBUQUNLIEJFTE9XOzs7OworMDMxRTtDT01CSU5JTkcgRE9XTiBUQUNLIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgRE9XTiBUQUNLIEJFTE9XOzs7OworMDMxRjtDT01CSU5JTkcgUExVUyBTSUdOIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgUExVUyBTSUdOIEJFTE9XOzs7OworMDMyMDtDT01CSU5JTkcgTUlOVVMgU0lHTiBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIE1JTlVTIFNJR04gQkVMT1c7Ozs7CiswMzIxO0NPTUJJTklORyBQQUxBVEFMSVpFRCBIT09LIEJFTE9XO01uOzIwMjtOU007Ozs7O047Tk9OLVNQQUNJTkcgUEFMQVRBTElaRUQgSE9PSyBCRUxPVzs7OzsKKzAzMjI7Q09NQklOSU5HIFJFVFJPRkxFWCBIT09LIEJFTE9XO01uOzIwMjtOU007Ozs7O047Tk9OLVNQQUNJTkcgUkVUUk9GTEVYIEhPT0sgQkVMT1c7Ozs7CiswMzIzO0NPTUJJTklORyBET1QgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBET1QgQkVMT1c7Ozs7CiswMzI0O0NPTUJJTklORyBESUFFUkVTSVMgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBET1VCTEUgRE9UIEJFTE9XOzs7OworMDMyNTtDT01CSU5JTkcgUklORyBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFJJTkcgQkVMT1c7Ozs7CiswMzI2O0NPTUJJTklORyBDT01NQSBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIENPTU1BIEJFTE9XOzs7OworMDMyNztDT01CSU5JTkcgQ0VESUxMQTtNbjsyMDI7TlNNOzs7OztOO05PTi1TUEFDSU5HIENFRElMTEE7Ozs7CiswMzI4O0NPTUJJTklORyBPR09ORUs7TW47MjAyO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBPR09ORUs7Ozs7CiswMzI5O0NPTUJJTklORyBWRVJUSUNBTCBMSU5FIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgVkVSVElDQUwgTElORSBCRUxPVzs7OzsKKzAzMkE7Q09NQklOSU5HIEJSSURHRSBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIEJSSURHRSBCRUxPVzs7OzsKKzAzMkI7Q09NQklOSU5HIElOVkVSVEVEIERPVUJMRSBBUkNIIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgSU5WRVJURUQgRE9VQkxFIEFSQ0ggQkVMT1c7Ozs7CiswMzJDO0NPTUJJTklORyBDQVJPTiBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIEhBQ0VLIEJFTE9XOzs7OworMDMyRDtDT01CSU5JTkcgQ0lSQ1VNRkxFWCBBQ0NFTlQgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBDSVJDVU1GTEVYIEJFTE9XOzs7OworMDMyRTtDT01CSU5JTkcgQlJFVkUgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBCUkVWRSBCRUxPVzs7OzsKKzAzMkY7Q09NQklOSU5HIElOVkVSVEVEIEJSRVZFIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgSU5WRVJURUQgQlJFVkUgQkVMT1c7Ozs7CiswMzMwO0NPTUJJTklORyBUSUxERSBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFRJTERFIEJFTE9XOzs7OworMDMzMTtDT01CSU5JTkcgTUFDUk9OIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgTUFDUk9OIEJFTE9XOzs7OworMDMzMjtDT01CSU5JTkcgTE9XIExJTkU7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBVTkRFUlNDT1JFOzs7OworMDMzMztDT01CSU5JTkcgRE9VQkxFIExPVyBMSU5FO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgRE9VQkxFIFVOREVSU0NPUkU7Ozs7CiswMzM0O0NPTUJJTklORyBUSUxERSBPVkVSTEFZO01uOzE7TlNNOzs7OztOO05PTi1TUEFDSU5HIFRJTERFIE9WRVJMQVk7Ozs7CiswMzM1O0NPTUJJTklORyBTSE9SVCBTVFJPS0UgT1ZFUkxBWTtNbjsxO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBTSE9SVCBCQVIgT1ZFUkxBWTs7OzsKKzAzMzY7Q09NQklOSU5HIExPTkcgU1RST0tFIE9WRVJMQVk7TW47MTtOU007Ozs7O047Tk9OLVNQQUNJTkcgTE9ORyBCQVIgT1ZFUkxBWTs7OzsKKzAzMzc7Q09NQklOSU5HIFNIT1JUIFNPTElEVVMgT1ZFUkxBWTtNbjsxO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBTSE9SVCBTTEFTSCBPVkVSTEFZOzs7OworMDMzODtDT01CSU5JTkcgTE9ORyBTT0xJRFVTIE9WRVJMQVk7TW47MTtOU007Ozs7O047Tk9OLVNQQUNJTkcgTE9ORyBTTEFTSCBPVkVSTEFZOzs7OworMDMzOTtDT01CSU5JTkcgUklHSFQgSEFMRiBSSU5HIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgUklHSFQgSEFMRiBSSU5HIEJFTE9XOzs7OworMDMzQTtDT01CSU5JTkcgSU5WRVJURUQgQlJJREdFIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgSU5WRVJURUQgQlJJREdFIEJFTE9XOzs7OworMDMzQjtDT01CSU5JTkcgU1FVQVJFIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgU1FVQVJFIEJFTE9XOzs7OworMDMzQztDT01CSU5JTkcgU0VBR1VMTCBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFNFQUdVTEwgQkVMT1c7Ozs7CiswMzNEO0NPTUJJTklORyBYIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgWCBBQk9WRTs7OzsKKzAzM0U7Q09NQklOSU5HIFZFUlRJQ0FMIFRJTERFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgVkVSVElDQUwgVElMREU7Ozs7CiswMzNGO0NPTUJJTklORyBET1VCTEUgT1ZFUkxJTkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBET1VCTEUgT1ZFUlNDT1JFOzs7OworMDM0MDtDT01CSU5JTkcgR1JBVkUgVE9ORSBNQVJLO01uOzIzMDtOU007MDMwMDs7OztOO05PTi1TUEFDSU5HIEdSQVZFIFRPTkUgTUFSSztWaWV0bmFtZXNlOzs7CiswMzQxO0NPTUJJTklORyBBQ1VURSBUT05FIE1BUks7TW47MjMwO05TTTswMzAxOzs7O047Tk9OLVNQQUNJTkcgQUNVVEUgVE9ORSBNQVJLO1ZpZXRuYW1lc2U7OzsKKzAzNDI7Q09NQklOSU5HIEdSRUVLIFBFUklTUE9NRU5JO01uOzIzMDtOU007Ozs7O047Ozs7OworMDM0MztDT01CSU5JTkcgR1JFRUsgS09ST05JUztNbjsyMzA7TlNNOzAzMTM7Ozs7Tjs7Ozs7CiswMzQ0O0NPTUJJTklORyBHUkVFSyBESUFMWVRJS0EgVE9OT1M7TW47MjMwO05TTTswMzA4IDAzMDE7Ozs7TjtHUkVFSyBOT04tU1BBQ0lORyBESUFFUkVTSVMgVE9OT1M7Ozs7CiswMzQ1O0NPTUJJTklORyBHUkVFSyBZUE9HRUdSQU1NRU5JO01uOzI0MDtOU007Ozs7O047R1JFRUsgTk9OLVNQQUNJTkcgSU9UQSBCRUxPVzs7MDM5OTs7MDM5OQorMDM0NjtDT01CSU5JTkcgQlJJREdFIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDM0NztDT01CSU5JTkcgRVFVQUxTIFNJR04gQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswMzQ4O0NPTUJJTklORyBET1VCTEUgVkVSVElDQUwgTElORSBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzAzNDk7Q09NQklOSU5HIExFRlQgQU5HTEUgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswMzRBO0NPTUJJTklORyBOT1QgVElMREUgQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswMzRCO0NPTUJJTklORyBIT01PVEhFVElDIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDM0QztDT01CSU5JTkcgQUxNT1NUIEVRVUFMIFRPIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDM0RDtDT01CSU5JTkcgTEVGVCBSSUdIVCBBUlJPVyBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzAzNEU7Q09NQklOSU5HIFVQV0FSRFMgQVJST1cgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswMzRGO0NPTUJJTklORyBHUkFQSEVNRSBKT0lORVI7TW47MDtOU007Ozs7O047Ozs7OworMDM2MDtDT01CSU5JTkcgRE9VQkxFIFRJTERFO01uOzIzNDtOU007Ozs7O047Ozs7OworMDM2MTtDT01CSU5JTkcgRE9VQkxFIElOVkVSVEVEIEJSRVZFO01uOzIzNDtOU007Ozs7O047Ozs7OworMDM2MjtDT01CSU5JTkcgRE9VQkxFIFJJR0hUV0FSRFMgQVJST1cgQkVMT1c7TW47MjMzO05TTTs7Ozs7Tjs7Ozs7CiswMzYzO0NPTUJJTklORyBMQVRJTiBTTUFMTCBMRVRURVIgQTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzAzNjQ7Q09NQklOSU5HIExBVElOIFNNQUxMIExFVFRFUiBFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDM2NTtDT01CSU5JTkcgTEFUSU4gU01BTEwgTEVUVEVSIEk7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswMzY2O0NPTUJJTklORyBMQVRJTiBTTUFMTCBMRVRURVIgTztNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzAzNjc7Q09NQklOSU5HIExBVElOIFNNQUxMIExFVFRFUiBVO01uOzIzMDtOU007Ozs7O047Ozs7OworMDM2ODtDT01CSU5JTkcgTEFUSU4gU01BTEwgTEVUVEVSIEM7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswMzY5O0NPTUJJTklORyBMQVRJTiBTTUFMTCBMRVRURVIgRDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzAzNkE7Q09NQklOSU5HIExBVElOIFNNQUxMIExFVFRFUiBIO01uOzIzMDtOU007Ozs7O047Ozs7OworMDM2QjtDT01CSU5JTkcgTEFUSU4gU01BTEwgTEVUVEVSIE07TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswMzZDO0NPTUJJTklORyBMQVRJTiBTTUFMTCBMRVRURVIgUjtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzAzNkQ7Q09NQklOSU5HIExBVElOIFNNQUxMIExFVFRFUiBUO01uOzIzMDtOU007Ozs7O047Ozs7OworMDM2RTtDT01CSU5JTkcgTEFUSU4gU01BTEwgTEVUVEVSIFY7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswMzZGO0NPTUJJTklORyBMQVRJTiBTTUFMTCBMRVRURVIgWDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzAzNzQ7R1JFRUsgTlVNRVJBTCBTSUdOO1NrOzA7T047MDJCOTs7OztOO0dSRUVLIFVQUEVSIE5VTUVSQUwgU0lHTjtEZXhpYSBrZXJhaWE7OzsKKzAzNzU7R1JFRUsgTE9XRVIgTlVNRVJBTCBTSUdOO1NrOzA7T047Ozs7O047O0FyaXN0ZXJpIGtlcmFpYTs7OworMDM3QTtHUkVFSyBZUE9HRUdSQU1NRU5JO0xtOzA7TDs8Y29tcGF0PiAwMDIwIDAzNDU7Ozs7TjtHUkVFSyBTUEFDSU5HIElPVEEgQkVMT1c7Ozs7CiswMzdFO0dSRUVLIFFVRVNUSU9OIE1BUks7UG87MDtPTjswMDNCOzs7O047O0Vyb3RpbWF0aWtvOzs7CiswMzg0O0dSRUVLIFRPTk9TO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzAxOzs7O047R1JFRUsgU1BBQ0lORyBUT05PUzs7OzsKKzAzODU7R1JFRUsgRElBTFlUSUtBIFRPTk9TO1NrOzA7T047MDBBOCAwMzAxOzs7O047R1JFRUsgU1BBQ0lORyBESUFFUkVTSVMgVE9OT1M7Ozs7CiswMzg2O0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggVE9OT1M7THU7MDtMOzAzOTEgMDMwMTs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFRPTk9TOzs7MDNBQzsKKzAzODc7R1JFRUsgQU5PIFRFTEVJQTtQbzswO09OOzAwQjc7Ozs7Tjs7Ozs7CiswMzg4O0dSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gV0lUSCBUT05PUztMdTswO0w7MDM5NSAwMzAxOzs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVBTSUxPTiBUT05PUzs7OzAzQUQ7CiswMzg5O0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFRPTk9TO0x1OzA7TDswMzk3IDAzMDE7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgVE9OT1M7OzswM0FFOworMDM4QTtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggVE9OT1M7THU7MDtMOzAzOTkgMDMwMTs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgVE9OT1M7OzswM0FGOworMDM4QztHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OIFdJVEggVE9OT1M7THU7MDtMOzAzOUYgMDMwMTs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NSUNST04gVE9OT1M7OzswM0NDOworMDM4RTtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIFdJVEggVE9OT1M7THU7MDtMOzAzQTUgMDMwMTs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gVE9OT1M7OzswM0NEOworMDM4RjtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFRPTk9TO0x1OzA7TDswM0E5IDAzMDE7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBUT05PUzs7OzAzQ0U7CiswMzkwO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggRElBTFlUSUtBIEFORCBUT05PUztMbDswO0w7MDNDQSAwMzAxOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgRElBRVJFU0lTIFRPTk9TOzs7OworMDM5MTtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQTtMdTswO0w7Ozs7O047Ozs7MDNCMTsKKzAzOTI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQkVUQTtMdTswO0w7Ozs7O047Ozs7MDNCMjsKKzAzOTM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgR0FNTUE7THU7MDtMOzs7OztOOzs7OzAzQjM7CiswMzk0O0dSRUVLIENBUElUQUwgTEVUVEVSIERFTFRBO0x1OzA7TDs7Ozs7Tjs7OzswM0I0OworMDM5NTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OO0x1OzA7TDs7Ozs7Tjs7OzswM0I1OworMDM5NjtHUkVFSyBDQVBJVEFMIExFVFRFUiBaRVRBO0x1OzA7TDs7Ozs7Tjs7OzswM0I2OworMDM5NztHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEE7THU7MDtMOzs7OztOOzs7OzAzQjc7CiswMzk4O0dSRUVLIENBUElUQUwgTEVUVEVSIFRIRVRBO0x1OzA7TDs7Ozs7Tjs7OzswM0I4OworMDM5OTtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBO0x1OzA7TDs7Ozs7Tjs7OzswM0I5OworMDM5QTtHUkVFSyBDQVBJVEFMIExFVFRFUiBLQVBQQTtMdTswO0w7Ozs7O047Ozs7MDNCQTsKKzAzOUI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgTEFNREE7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIExBTUJEQTs7OzAzQkI7CiswMzlDO0dSRUVLIENBUElUQUwgTEVUVEVSIE1VO0x1OzA7TDs7Ozs7Tjs7OzswM0JDOworMDM5RDtHUkVFSyBDQVBJVEFMIExFVFRFUiBOVTtMdTswO0w7Ozs7O047Ozs7MDNCRDsKKzAzOUU7R1JFRUsgQ0FQSVRBTCBMRVRURVIgWEk7THU7MDtMOzs7OztOOzs7OzAzQkU7CiswMzlGO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NSUNST047THU7MDtMOzs7OztOOzs7OzAzQkY7CiswM0EwO0dSRUVLIENBUElUQUwgTEVUVEVSIFBJO0x1OzA7TDs7Ozs7Tjs7OzswM0MwOworMDNBMTtHUkVFSyBDQVBJVEFMIExFVFRFUiBSSE87THU7MDtMOzs7OztOOzs7OzAzQzE7CiswM0EzO0dSRUVLIENBUElUQUwgTEVUVEVSIFNJR01BO0x1OzA7TDs7Ozs7Tjs7OzswM0MzOworMDNBNDtHUkVFSyBDQVBJVEFMIExFVFRFUiBUQVU7THU7MDtMOzs7OztOOzs7OzAzQzQ7CiswM0E1O0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT047THU7MDtMOzs7OztOOzs7OzAzQzU7CiswM0E2O0dSRUVLIENBUElUQUwgTEVUVEVSIFBISTtMdTswO0w7Ozs7O047Ozs7MDNDNjsKKzAzQTc7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQ0hJO0x1OzA7TDs7Ozs7Tjs7OzswM0M3OworMDNBODtHUkVFSyBDQVBJVEFMIExFVFRFUiBQU0k7THU7MDtMOzs7OztOOzs7OzAzQzg7CiswM0E5O0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBO0x1OzA7TDs7Ozs7Tjs7OzswM0M5OworMDNBQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggRElBTFlUSUtBO0x1OzA7TDswMzk5IDAzMDg7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIERJQUVSRVNJUzs7OzAzQ0E7CiswM0FCO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gV0lUSCBESUFMWVRJS0E7THU7MDtMOzAzQTUgMDMwODs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gRElBRVJFU0lTOzs7MDNDQjsKKzAzQUM7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggVE9OT1M7TGw7MDtMOzAzQjEgMDMwMTs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBUT05PUzs7MDM4Njs7MDM4NgorMDNBRDtHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTiBXSVRIIFRPTk9TO0xsOzA7TDswM0I1IDAzMDE7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTiBUT05PUzs7MDM4ODs7MDM4OAorMDNBRTtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggVE9OT1M7TGw7MDtMOzAzQjcgMDMwMTs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgVE9OT1M7OzAzODk7OzAzODkKKzAzQUY7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBUT05PUztMbDswO0w7MDNCOSAwMzAxOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgVE9OT1M7OzAzOEE7OzAzOEEKKzAzQjA7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBESUFMWVRJS0EgQU5EIFRPTk9TO0xsOzA7TDswM0NCIDAzMDE7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBESUFFUkVTSVMgVE9OT1M7Ozs7CiswM0IxO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQTtMbDswO0w7Ozs7O047OzswMzkxOzswMzkxCiswM0IyO0dSRUVLIFNNQUxMIExFVFRFUiBCRVRBO0xsOzA7TDs7Ozs7Tjs7OzAzOTI7OzAzOTIKKzAzQjM7R1JFRUsgU01BTEwgTEVUVEVSIEdBTU1BO0xsOzA7TDs7Ozs7Tjs7OzAzOTM7OzAzOTMKKzAzQjQ7R1JFRUsgU01BTEwgTEVUVEVSIERFTFRBO0xsOzA7TDs7Ozs7Tjs7OzAzOTQ7OzAzOTQKKzAzQjU7R1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT047TGw7MDtMOzs7OztOOzs7MDM5NTs7MDM5NQorMDNCNjtHUkVFSyBTTUFMTCBMRVRURVIgWkVUQTtMbDswO0w7Ozs7O047OzswMzk2OzswMzk2CiswM0I3O0dSRUVLIFNNQUxMIExFVFRFUiBFVEE7TGw7MDtMOzs7OztOOzs7MDM5Nzs7MDM5NworMDNCODtHUkVFSyBTTUFMTCBMRVRURVIgVEhFVEE7TGw7MDtMOzs7OztOOzs7MDM5ODs7MDM5OAorMDNCOTtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQTtMbDswO0w7Ozs7O047OzswMzk5OzswMzk5CiswM0JBO0dSRUVLIFNNQUxMIExFVFRFUiBLQVBQQTtMbDswO0w7Ozs7O047OzswMzlBOzswMzlBCiswM0JCO0dSRUVLIFNNQUxMIExFVFRFUiBMQU1EQTtMbDswO0w7Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIExBTUJEQTs7MDM5Qjs7MDM5QgorMDNCQztHUkVFSyBTTUFMTCBMRVRURVIgTVU7TGw7MDtMOzs7OztOOzs7MDM5Qzs7MDM5QworMDNCRDtHUkVFSyBTTUFMTCBMRVRURVIgTlU7TGw7MDtMOzs7OztOOzs7MDM5RDs7MDM5RAorMDNCRTtHUkVFSyBTTUFMTCBMRVRURVIgWEk7TGw7MDtMOzs7OztOOzs7MDM5RTs7MDM5RQorMDNCRjtHUkVFSyBTTUFMTCBMRVRURVIgT01JQ1JPTjtMbDswO0w7Ozs7O047OzswMzlGOzswMzlGCiswM0MwO0dSRUVLIFNNQUxMIExFVFRFUiBQSTtMbDswO0w7Ozs7O047OzswM0EwOzswM0EwCiswM0MxO0dSRUVLIFNNQUxMIExFVFRFUiBSSE87TGw7MDtMOzs7OztOOzs7MDNBMTs7MDNBMQorMDNDMjtHUkVFSyBTTUFMTCBMRVRURVIgRklOQUwgU0lHTUE7TGw7MDtMOzs7OztOOzs7MDNBMzs7MDNBMworMDNDMztHUkVFSyBTTUFMTCBMRVRURVIgU0lHTUE7TGw7MDtMOzs7OztOOzs7MDNBMzs7MDNBMworMDNDNDtHUkVFSyBTTUFMTCBMRVRURVIgVEFVO0xsOzA7TDs7Ozs7Tjs7OzAzQTQ7OzAzQTQKKzAzQzU7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT047TGw7MDtMOzs7OztOOzs7MDNBNTs7MDNBNQorMDNDNjtHUkVFSyBTTUFMTCBMRVRURVIgUEhJO0xsOzA7TDs7Ozs7Tjs7OzAzQTY7OzAzQTYKKzAzQzc7R1JFRUsgU01BTEwgTEVUVEVSIENISTtMbDswO0w7Ozs7O047OzswM0E3OzswM0E3CiswM0M4O0dSRUVLIFNNQUxMIExFVFRFUiBQU0k7TGw7MDtMOzs7OztOOzs7MDNBODs7MDNBOAorMDNDOTtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0E7TGw7MDtMOzs7OztOOzs7MDNBOTs7MDNBOQorMDNDQTtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERJQUxZVElLQTtMbDswO0w7MDNCOSAwMzA4Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgRElBRVJFU0lTOzswM0FBOzswM0FBCiswM0NCO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggRElBTFlUSUtBO0xsOzA7TDswM0M1IDAzMDg7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBESUFFUkVTSVM7OzAzQUI7OzAzQUIKKzAzQ0M7R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gV0lUSCBUT05PUztMbDswO0w7MDNCRiAwMzAxOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gVE9OT1M7OzAzOEM7OzAzOEMKKzAzQ0Q7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBUT05PUztMbDswO0w7MDNDNSAwMzAxOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gVE9OT1M7OzAzOEU7OzAzOEUKKzAzQ0U7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggVE9OT1M7TGw7MDtMOzAzQzkgMDMwMTs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBUT05PUzs7MDM4Rjs7MDM4RgorMDNEMDtHUkVFSyBCRVRBIFNZTUJPTDtMbDswO0w7PGNvbXBhdD4gMDNCMjs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBDVVJMRUQgQkVUQTs7MDM5Mjs7MDM5MgorMDNEMTtHUkVFSyBUSEVUQSBTWU1CT0w7TGw7MDtMOzxjb21wYXQ+IDAzQjg7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgU0NSSVBUIFRIRVRBOzswMzk4OzswMzk4CiswM0QyO0dSRUVLIFVQU0lMT04gV0lUSCBIT09LIFNZTUJPTDtMdTswO0w7PGNvbXBhdD4gMDNBNTs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gSE9PSzs7OzsKKzAzRDM7R1JFRUsgVVBTSUxPTiBXSVRIIEFDVVRFIEFORCBIT09LIFNZTUJPTDtMdTswO0w7MDNEMiAwMzAxOzs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBIT09LIFRPTk9TOzs7OworMDNENDtHUkVFSyBVUFNJTE9OIFdJVEggRElBRVJFU0lTIEFORCBIT09LIFNZTUJPTDtMdTswO0w7MDNEMiAwMzA4Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBIT09LIERJQUVSRVNJUzs7OzsKKzAzRDU7R1JFRUsgUEhJIFNZTUJPTDtMbDswO0w7PGNvbXBhdD4gMDNDNjs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBTQ1JJUFQgUEhJOzswM0E2OzswM0E2CiswM0Q2O0dSRUVLIFBJIFNZTUJPTDtMbDswO0w7PGNvbXBhdD4gMDNDMDs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBQSTs7MDNBMDs7MDNBMAorMDNENztHUkVFSyBLQUkgU1lNQk9MO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswM0Q4O0dSRUVLIExFVFRFUiBBUkNIQUlDIEtPUFBBO0x1OzA7TDs7Ozs7Tjs7Kjs7MDNEOTsKKzAzRDk7R1JFRUsgU01BTEwgTEVUVEVSIEFSQ0hBSUMgS09QUEE7TGw7MDtMOzs7OztOOzsqOzAzRDg7OzAzRDgKKzAzREE7R1JFRUsgTEVUVEVSIFNUSUdNQTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgU1RJR01BOzs7MDNEQjsKKzAzREI7R1JFRUsgU01BTEwgTEVUVEVSIFNUSUdNQTtMbDswO0w7Ozs7O047OzswM0RBOzswM0RBCiswM0RDO0dSRUVLIExFVFRFUiBESUdBTU1BO0x1OzA7TDs7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBESUdBTU1BOzs7MDNERDsKKzAzREQ7R1JFRUsgU01BTEwgTEVUVEVSIERJR0FNTUE7TGw7MDtMOzs7OztOOzs7MDNEQzs7MDNEQworMDNERTtHUkVFSyBMRVRURVIgS09QUEE7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIEtPUFBBOzs7MDNERjsKKzAzREY7R1JFRUsgU01BTEwgTEVUVEVSIEtPUFBBO0xsOzA7TDs7Ozs7Tjs7OzAzREU7OzAzREUKKzAzRTA7R1JFRUsgTEVUVEVSIFNBTVBJO0x1OzA7TDs7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBTQU1QSTs7OzAzRTE7CiswM0UxO0dSRUVLIFNNQUxMIExFVFRFUiBTQU1QSTtMbDswO0w7Ozs7O047OzswM0UwOzswM0UwCiswM0UyO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBTSEVJO0x1OzA7TDs7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBTSEVJOzs7MDNFMzsKKzAzRTM7Q09QVElDIFNNQUxMIExFVFRFUiBTSEVJO0xsOzA7TDs7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgU0hFSTs7MDNFMjs7MDNFMgorMDNFNDtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgRkVJO0x1OzA7TDs7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBGRUk7OzswM0U1OworMDNFNTtDT1BUSUMgU01BTEwgTEVUVEVSIEZFSTtMbDswO0w7Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIEZFSTs7MDNFNDs7MDNFNAorMDNFNjtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgS0hFSTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgS0hFSTs7OzAzRTc7CiswM0U3O0NPUFRJQyBTTUFMTCBMRVRURVIgS0hFSTtMbDswO0w7Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIEtIRUk7OzAzRTY7OzAzRTYKKzAzRTg7Q09QVElDIENBUElUQUwgTEVUVEVSIEhPUkk7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIEhPUkk7OzswM0U5OworMDNFOTtDT1BUSUMgU01BTEwgTEVUVEVSIEhPUkk7TGw7MDtMOzs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBIT1JJOzswM0U4OzswM0U4CiswM0VBO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBHQU5HSUE7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIEdBTkdJQTs7OzAzRUI7CiswM0VCO0NPUFRJQyBTTUFMTCBMRVRURVIgR0FOR0lBO0xsOzA7TDs7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgR0FOR0lBOzswM0VBOzswM0VBCiswM0VDO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBTSElNQTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgU0hJTUE7OzswM0VEOworMDNFRDtDT1BUSUMgU01BTEwgTEVUVEVSIFNISU1BO0xsOzA7TDs7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgU0hJTUE7OzAzRUM7OzAzRUMKKzAzRUU7Q09QVElDIENBUElUQUwgTEVUVEVSIERFSTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgREVJOzs7MDNFRjsKKzAzRUY7Q09QVElDIFNNQUxMIExFVFRFUiBERUk7TGw7MDtMOzs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBERUk7OzAzRUU7OzAzRUUKKzAzRjA7R1JFRUsgS0FQUEEgU1lNQk9MO0xsOzA7TDs8Y29tcGF0PiAwM0JBOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIFNDUklQVCBLQVBQQTs7MDM5QTs7MDM5QQorMDNGMTtHUkVFSyBSSE8gU1lNQk9MO0xsOzA7TDs8Y29tcGF0PiAwM0MxOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIFRBSUxFRCBSSE87OzAzQTE7OzAzQTEKKzAzRjI7R1JFRUsgTFVOQVRFIFNJR01BIFNZTUJPTDtMbDswO0w7PGNvbXBhdD4gMDNDMjs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBMVU5BVEUgU0lHTUE7OzAzQTM7OzAzQTMKKzAzRjM7R1JFRUsgTEVUVEVSIFlPVDtMbDswO0w7Ozs7O047Ozs7OworMDNGNDtHUkVFSyBDQVBJVEFMIFRIRVRBIFNZTUJPTDtMdTswO0w7PGNvbXBhdD4gMDM5ODs7OztOOzs7OzAzQjg7CiswM0Y1O0dSRUVLIExVTkFURSBFUFNJTE9OIFNZTUJPTDtMbDswO0w7PGNvbXBhdD4gMDNCNTs7OztOOzs7MDM5NTs7MDM5NQorMDNGNjtHUkVFSyBSRVZFUlNFRCBMVU5BVEUgRVBTSUxPTiBTWU1CT0w7U207MDtPTjs7Ozs7Tjs7Ozs7CiswNDAwO0NZUklMTElDIENBUElUQUwgTEVUVEVSIElFIFdJVEggR1JBVkU7THU7MDtMOzA0MTUgMDMwMDs7OztOOzs7OzA0NTA7CiswNDAxO0NZUklMTElDIENBUElUQUwgTEVUVEVSIElPO0x1OzA7TDswNDE1IDAzMDg7Ozs7Tjs7OzswNDUxOworMDQwMjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBESkU7THU7MDtMOzs7OztOOztTZXJib2Nyb2F0aWFuOzswNDUyOworMDQwMztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBHSkU7THU7MDtMOzA0MTMgMDMwMTs7OztOOzs7OzA0NTM7CiswNDA0O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFVLUkFJTklBTiBJRTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRTs7OzA0NTQ7CiswNDA1O0NZUklMTElDIENBUElUQUwgTEVUVEVSIERaRTtMdTswO0w7Ozs7O047Ozs7MDQ1NTsKKzA0MDY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQllFTE9SVVNTSUFOLVVLUkFJTklBTiBJO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJOzs7MDQ1NjsKKzA0MDc7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWUk7THU7MDtMOzA0MDYgMDMwODs7OztOOztVa3JhaW5pYW47OzA0NTc7CiswNDA4O0NZUklMTElDIENBUElUQUwgTEVUVEVSIEpFO0x1OzA7TDs7Ozs7Tjs7OzswNDU4OworMDQwOTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBMSkU7THU7MDtMOzs7OztOOzs7OzA0NTk7CiswNDBBO0NZUklMTElDIENBUElUQUwgTEVUVEVSIE5KRTtMdTswO0w7Ozs7O047Ozs7MDQ1QTsKKzA0MEI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVFNIRTtMdTswO0w7Ozs7O047O1NlcmJvY3JvYXRpYW47OzA0NUI7CiswNDBDO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtKRTtMdTswO0w7MDQxQSAwMzAxOzs7O047Ozs7MDQ1QzsKKzA0MEQ7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSSBXSVRIIEdSQVZFO0x1OzA7TDswNDE4IDAzMDA7Ozs7Tjs7OzswNDVEOworMDQwRTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTSE9SVCBVO0x1OzA7TDswNDIzIDAzMDY7Ozs7Tjs7QnllbG9ydXNzaWFuOzswNDVFOworMDQwRjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBEWkhFO0x1OzA7TDs7Ozs7Tjs7OzswNDVGOworMDQxMDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBBO0x1OzA7TDs7Ozs7Tjs7OzswNDMwOworMDQxMTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBCRTtMdTswO0w7Ozs7O047Ozs7MDQzMTsKKzA0MTI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVkU7THU7MDtMOzs7OztOOzs7OzA0MzI7CiswNDEzO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEdIRTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgR0U7OzswNDMzOworMDQxNDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBERTtMdTswO0w7Ozs7O047Ozs7MDQzNDsKKzA0MTU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSUU7THU7MDtMOzs7OztOOzs7OzA0MzU7CiswNDE2O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFpIRTtMdTswO0w7Ozs7O047Ozs7MDQzNjsKKzA0MTc7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWkU7THU7MDtMOzs7OztOOzs7OzA0Mzc7CiswNDE4O0NZUklMTElDIENBUElUQUwgTEVUVEVSIEk7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIElJOzs7MDQzODsKKzA0MTk7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0hPUlQgSTtMdTswO0w7MDQxOCAwMzA2Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0hPUlQgSUk7OzswNDM5OworMDQxQTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLQTtMdTswO0w7Ozs7O047Ozs7MDQzQTsKKzA0MUI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRUw7THU7MDtMOzs7OztOOzs7OzA0M0I7CiswNDFDO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVNO0x1OzA7TDs7Ozs7Tjs7OzswNDNDOworMDQxRDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFTjtMdTswO0w7Ozs7O047Ozs7MDQzRDsKKzA0MUU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgTztMdTswO0w7Ozs7O047Ozs7MDQzRTsKKzA0MUY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgUEU7THU7MDtMOzs7OztOOzs7OzA0M0Y7CiswNDIwO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVSO0x1OzA7TDs7Ozs7Tjs7OzswNDQwOworMDQyMTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFUztMdTswO0w7Ozs7O047Ozs7MDQ0MTsKKzA0MjI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVEU7THU7MDtMOzs7OztOOzs7OzA0NDI7CiswNDIzO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFU7THU7MDtMOzs7OztOOzs7OzA0NDM7CiswNDI0O0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVGO0x1OzA7TDs7Ozs7Tjs7OzswNDQ0OworMDQyNTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBIQTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0hBOzs7MDQ0NTsKKzA0MjY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVFNFO0x1OzA7TDs7Ozs7Tjs7OzswNDQ2OworMDQyNztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBDSEU7THU7MDtMOzs7OztOOzs7OzA0NDc7CiswNDI4O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNIQTtMdTswO0w7Ozs7O047Ozs7MDQ0ODsKKzA0Mjk7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0hDSEE7THU7MDtMOzs7OztOOzs7OzA0NDk7CiswNDJBO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEhBUkQgU0lHTjtMdTswO0w7Ozs7O047Ozs7MDQ0QTsKKzA0MkI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWUVSVTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWUVSSTs7OzA0NEI7CiswNDJDO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNPRlQgU0lHTjtMdTswO0w7Ozs7O047Ozs7MDQ0QzsKKzA0MkQ7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgUkVWRVJTRUQgRTs7OzA0NEQ7CiswNDJFO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFlVO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJVTs7OzA0NEU7CiswNDJGO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFlBO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJQTs7OzA0NEY7CiswNDMwO0NZUklMTElDIFNNQUxMIExFVFRFUiBBO0xsOzA7TDs7Ozs7Tjs7OzA0MTA7OzA0MTAKKzA0MzE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEJFO0xsOzA7TDs7Ozs7Tjs7OzA0MTE7OzA0MTEKKzA0MzI7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFZFO0xsOzA7TDs7Ozs7Tjs7OzA0MTI7OzA0MTIKKzA0MzM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEdIRTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEdFOzswNDEzOzswNDEzCiswNDM0O0NZUklMTElDIFNNQUxMIExFVFRFUiBERTtMbDswO0w7Ozs7O047OzswNDE0OzswNDE0CiswNDM1O0NZUklMTElDIFNNQUxMIExFVFRFUiBJRTtMbDswO0w7Ozs7O047OzswNDE1OzswNDE1CiswNDM2O0NZUklMTElDIFNNQUxMIExFVFRFUiBaSEU7TGw7MDtMOzs7OztOOzs7MDQxNjs7MDQxNgorMDQzNztDWVJJTExJQyBTTUFMTCBMRVRURVIgWkU7TGw7MDtMOzs7OztOOzs7MDQxNzs7MDQxNworMDQzODtDWVJJTExJQyBTTUFMTCBMRVRURVIgSTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElJOzswNDE4OzswNDE4CiswNDM5O0NZUklMTElDIFNNQUxMIExFVFRFUiBTSE9SVCBJO0xsOzA7TDswNDM4IDAzMDY7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgU0hPUlQgSUk7OzA0MTk7OzA0MTkKKzA0M0E7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtBO0xsOzA7TDs7Ozs7Tjs7OzA0MUE7OzA0MUEKKzA0M0I7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVMO0xsOzA7TDs7Ozs7Tjs7OzA0MUI7OzA0MUIKKzA0M0M7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVNO0xsOzA7TDs7Ozs7Tjs7OzA0MUM7OzA0MUMKKzA0M0Q7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVOO0xsOzA7TDs7Ozs7Tjs7OzA0MUQ7OzA0MUQKKzA0M0U7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIE87TGw7MDtMOzs7OztOOzs7MDQxRTs7MDQxRQorMDQzRjtDWVJJTExJQyBTTUFMTCBMRVRURVIgUEU7TGw7MDtMOzs7OztOOzs7MDQxRjs7MDQxRgorMDQ0MDtDWVJJTExJQyBTTUFMTCBMRVRURVIgRVI7TGw7MDtMOzs7OztOOzs7MDQyMDs7MDQyMAorMDQ0MTtDWVJJTExJQyBTTUFMTCBMRVRURVIgRVM7TGw7MDtMOzs7OztOOzs7MDQyMTs7MDQyMQorMDQ0MjtDWVJJTExJQyBTTUFMTCBMRVRURVIgVEU7TGw7MDtMOzs7OztOOzs7MDQyMjs7MDQyMgorMDQ0MztDWVJJTExJQyBTTUFMTCBMRVRURVIgVTtMbDswO0w7Ozs7O047OzswNDIzOzswNDIzCiswNDQ0O0NZUklMTElDIFNNQUxMIExFVFRFUiBFRjtMbDswO0w7Ozs7O047OzswNDI0OzswNDI0CiswNDQ1O0NZUklMTElDIFNNQUxMIExFVFRFUiBIQTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtIQTs7MDQyNTs7MDQyNQorMDQ0NjtDWVJJTExJQyBTTUFMTCBMRVRURVIgVFNFO0xsOzA7TDs7Ozs7Tjs7OzA0MjY7OzA0MjYKKzA0NDc7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIENIRTtMbDswO0w7Ozs7O047OzswNDI3OzswNDI3CiswNDQ4O0NZUklMTElDIFNNQUxMIExFVFRFUiBTSEE7TGw7MDtMOzs7OztOOzs7MDQyODs7MDQyOAorMDQ0OTtDWVJJTExJQyBTTUFMTCBMRVRURVIgU0hDSEE7TGw7MDtMOzs7OztOOzs7MDQyOTs7MDQyOQorMDQ0QTtDWVJJTExJQyBTTUFMTCBMRVRURVIgSEFSRCBTSUdOO0xsOzA7TDs7Ozs7Tjs7OzA0MkE7OzA0MkEKKzA0NEI7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFlFUlU7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBZRVJJOzswNDJCOzswNDJCCiswNDRDO0NZUklMTElDIFNNQUxMIExFVFRFUiBTT0ZUIFNJR047TGw7MDtMOzs7OztOOzs7MDQyQzs7MDQyQworMDQ0RDtDWVJJTExJQyBTTUFMTCBMRVRURVIgRTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFJFVkVSU0VEIEU7OzA0MkQ7OzA0MkQKKzA0NEU7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFlVO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgSVU7OzA0MkU7OzA0MkUKKzA0NEY7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFlBO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgSUE7OzA0MkY7OzA0MkYKKzA0NTA7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElFIFdJVEggR1JBVkU7TGw7MDtMOzA0MzUgMDMwMDs7OztOOzs7MDQwMDs7MDQwMAorMDQ1MTtDWVJJTExJQyBTTUFMTCBMRVRURVIgSU87TGw7MDtMOzA0MzUgMDMwODs7OztOOzs7MDQwMTs7MDQwMQorMDQ1MjtDWVJJTExJQyBTTUFMTCBMRVRURVIgREpFO0xsOzA7TDs7Ozs7Tjs7U2VyYm9jcm9hdGlhbjswNDAyOzswNDAyCiswNDUzO0NZUklMTElDIFNNQUxMIExFVFRFUiBHSkU7TGw7MDtMOzA0MzMgMDMwMTs7OztOOzs7MDQwMzs7MDQwMworMDQ1NDtDWVJJTExJQyBTTUFMTCBMRVRURVIgVUtSQUlOSUFOIElFO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgRTs7MDQwNDs7MDQwNAorMDQ1NTtDWVJJTExJQyBTTUFMTCBMRVRURVIgRFpFO0xsOzA7TDs7Ozs7Tjs7OzA0MDU7OzA0MDUKKzA0NTY7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEJZRUxPUlVTU0lBTi1VS1JBSU5JQU4gSTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEk7OzA0MDY7OzA0MDYKKzA0NTc7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFlJO0xsOzA7TDswNDU2IDAzMDg7Ozs7Tjs7VWtyYWluaWFuOzA0MDc7OzA0MDcKKzA0NTg7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEpFO0xsOzA7TDs7Ozs7Tjs7OzA0MDg7OzA0MDgKKzA0NTk7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIExKRTtMbDswO0w7Ozs7O047OzswNDA5OzswNDA5CiswNDVBO0NZUklMTElDIFNNQUxMIExFVFRFUiBOSkU7TGw7MDtMOzs7OztOOzs7MDQwQTs7MDQwQQorMDQ1QjtDWVJJTExJQyBTTUFMTCBMRVRURVIgVFNIRTtMbDswO0w7Ozs7O047O1NlcmJvY3JvYXRpYW47MDQwQjs7MDQwQgorMDQ1QztDWVJJTExJQyBTTUFMTCBMRVRURVIgS0pFO0xsOzA7TDswNDNBIDAzMDE7Ozs7Tjs7OzA0MEM7OzA0MEMKKzA0NUQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEkgV0lUSCBHUkFWRTtMbDswO0w7MDQzOCAwMzAwOzs7O047OzswNDBEOzswNDBECiswNDVFO0NZUklMTElDIFNNQUxMIExFVFRFUiBTSE9SVCBVO0xsOzA7TDswNDQzIDAzMDY7Ozs7Tjs7QnllbG9ydXNzaWFuOzA0MEU7OzA0MEUKKzA0NUY7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIERaSEU7TGw7MDtMOzs7OztOOzs7MDQwRjs7MDQwRgorMDQ2MDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBPTUVHQTtMdTswO0w7Ozs7O047Ozs7MDQ2MTsKKzA0NjE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIE9NRUdBO0xsOzA7TDs7Ozs7Tjs7OzA0NjA7OzA0NjAKKzA0NjI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWUFUO0x1OzA7TDs7Ozs7Tjs7OzswNDYzOworMDQ2MztDWVJJTExJQyBTTUFMTCBMRVRURVIgWUFUO0xsOzA7TDs7Ozs7Tjs7OzA0NjI7OzA0NjIKKzA0NjQ7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSU9USUZJRUQgRTtMdTswO0w7Ozs7O047Ozs7MDQ2NTsKKzA0NjU7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElPVElGSUVEIEU7TGw7MDtMOzs7OztOOzs7MDQ2NDs7MDQ2NAorMDQ2NjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBMSVRUTEUgWVVTO0x1OzA7TDs7Ozs7Tjs7OzswNDY3OworMDQ2NztDWVJJTExJQyBTTUFMTCBMRVRURVIgTElUVExFIFlVUztMbDswO0w7Ozs7O047OzswNDY2OzswNDY2CiswNDY4O0NZUklMTElDIENBUElUQUwgTEVUVEVSIElPVElGSUVEIExJVFRMRSBZVVM7THU7MDtMOzs7OztOOzs7OzA0Njk7CiswNDY5O0NZUklMTElDIFNNQUxMIExFVFRFUiBJT1RJRklFRCBMSVRUTEUgWVVTO0xsOzA7TDs7Ozs7Tjs7OzA0Njg7OzA0NjgKKzA0NkE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQklHIFlVUztMdTswO0w7Ozs7O047Ozs7MDQ2QjsKKzA0NkI7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEJJRyBZVVM7TGw7MDtMOzs7OztOOzs7MDQ2QTs7MDQ2QQorMDQ2QztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJT1RJRklFRCBCSUcgWVVTO0x1OzA7TDs7Ozs7Tjs7OzswNDZEOworMDQ2RDtDWVJJTExJQyBTTUFMTCBMRVRURVIgSU9USUZJRUQgQklHIFlVUztMbDswO0w7Ozs7O047OzswNDZDOzswNDZDCiswNDZFO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtTSTtMdTswO0w7Ozs7O047Ozs7MDQ2RjsKKzA0NkY7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtTSTtMbDswO0w7Ozs7O047OzswNDZFOzswNDZFCiswNDcwO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFBTSTtMdTswO0w7Ozs7O047Ozs7MDQ3MTsKKzA0NzE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFBTSTtMbDswO0w7Ozs7O047OzswNDcwOzswNDcwCiswNDcyO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEZJVEE7THU7MDtMOzs7OztOOzs7OzA0NzM7CiswNDczO0NZUklMTElDIFNNQUxMIExFVFRFUiBGSVRBO0xsOzA7TDs7Ozs7Tjs7OzA0NzI7OzA0NzIKKzA0NzQ7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSVpISVRTQTtMdTswO0w7Ozs7O047Ozs7MDQ3NTsKKzA0NzU7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElaSElUU0E7TGw7MDtMOzs7OztOOzs7MDQ3NDs7MDQ3NAorMDQ3NjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJWkhJVFNBIFdJVEggRE9VQkxFIEdSQVZFIEFDQ0VOVDtMdTswO0w7MDQ3NCAwMzBGOzs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSVpISVRTQSBET1VCTEUgR1JBVkU7OzswNDc3OworMDQ3NztDWVJJTExJQyBTTUFMTCBMRVRURVIgSVpISVRTQSBXSVRIIERPVUJMRSBHUkFWRSBBQ0NFTlQ7TGw7MDtMOzA0NzUgMDMwRjs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBJWkhJVFNBIERPVUJMRSBHUkFWRTs7MDQ3Njs7MDQ3NgorMDQ3ODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBVSztMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVUsgRElHUkFQSDs7OzA0Nzk7CiswNDc5O0NZUklMTElDIFNNQUxMIExFVFRFUiBVSztMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFVLIERJR1JBUEg7OzA0Nzg7OzA0NzgKKzA0N0E7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgUk9VTkQgT01FR0E7THU7MDtMOzs7OztOOzs7OzA0N0I7CiswNDdCO0NZUklMTElDIFNNQUxMIExFVFRFUiBST1VORCBPTUVHQTtMbDswO0w7Ozs7O047OzswNDdBOzswNDdBCiswNDdDO0NZUklMTElDIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggVElUTE87THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIE9NRUdBIFRJVExPOzs7MDQ3RDsKKzA0N0Q7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggVElUTE87TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBPTUVHQSBUSVRMTzs7MDQ3Qzs7MDQ3QworMDQ3RTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBPVDtMdTswO0w7Ozs7O047Ozs7MDQ3RjsKKzA0N0Y7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIE9UO0xsOzA7TDs7Ozs7Tjs7OzA0N0U7OzA0N0UKKzA0ODA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS09QUEE7THU7MDtMOzs7OztOOzs7OzA0ODE7CiswNDgxO0NZUklMTElDIFNNQUxMIExFVFRFUiBLT1BQQTtMbDswO0w7Ozs7O047OzswNDgwOzswNDgwCiswNDgyO0NZUklMTElDIFRIT1VTQU5EUyBTSUdOO1NvOzA7TDs7Ozs7Tjs7Ozs7CiswNDgzO0NPTUJJTklORyBDWVJJTExJQyBUSVRMTztNbjsyMzA7TlNNOzs7OztOO0NZUklMTElDIE5PTi1TUEFDSU5HIFRJVExPOzs7OworMDQ4NDtDT01CSU5JTkcgQ1lSSUxMSUMgUEFMQVRBTElaQVRJT047TW47MjMwO05TTTs7Ozs7TjtDWVJJTExJQyBOT04tU1BBQ0lORyBQQUxBVEFMSVpBVElPTjs7OzsKKzA0ODU7Q09NQklOSU5HIENZUklMTElDIERBU0lBIFBORVVNQVRBO01uOzIzMDtOU007Ozs7O047Q1lSSUxMSUMgTk9OLVNQQUNJTkcgREFTSUEgUE5FVU1BVEE7Ozs7CiswNDg2O0NPTUJJTklORyBDWVJJTExJQyBQU0lMSSBQTkVVTUFUQTtNbjsyMzA7TlNNOzs7OztOO0NZUklMTElDIE5PTi1TUEFDSU5HIFBTSUxJIFBORVVNQVRBOzs7OworMDQ4ODtDT01CSU5JTkcgQ1lSSUxMSUMgSFVORFJFRCBUSE9VU0FORFMgU0lHTjtNZTswO05TTTs7Ozs7Tjs7Ozs7CiswNDg5O0NPTUJJTklORyBDWVJJTExJQyBNSUxMSU9OUyBTSUdOO01lOzA7TlNNOzs7OztOOzs7OzsKKzA0OEE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0hPUlQgSSBXSVRIIFRBSUw7THU7MDtMOzs7OztOOzs7OzA0OEI7CiswNDhCO0NZUklMTElDIFNNQUxMIExFVFRFUiBTSE9SVCBJIFdJVEggVEFJTDtMbDswO0w7Ozs7O047OzswNDhBOzswNDhBCiswNDhDO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNFTUlTT0ZUIFNJR047THU7MDtMOzs7OztOOzs7OzA0OEQ7CiswNDhEO0NZUklMTElDIFNNQUxMIExFVFRFUiBTRU1JU09GVCBTSUdOO0xsOzA7TDs7Ozs7Tjs7OzA0OEM7OzA0OEMKKzA0OEU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRVIgV0lUSCBUSUNLO0x1OzA7TDs7Ozs7Tjs7OzswNDhGOworMDQ4RjtDWVJJTExJQyBTTUFMTCBMRVRURVIgRVIgV0lUSCBUSUNLO0xsOzA7TDs7Ozs7Tjs7OzA0OEU7OzA0OEUKKzA0OTA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgR0hFIFdJVEggVVBUVVJOO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBHRSBXSVRIIFVQVFVSTjs7OzA0OTE7CiswNDkxO0NZUklMTElDIFNNQUxMIExFVFRFUiBHSEUgV0lUSCBVUFRVUk47TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBHRSBXSVRIIFVQVFVSTjs7MDQ5MDs7MDQ5MAorMDQ5MjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBHSEUgV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEdFIEJBUjs7OzA0OTM7CiswNDkzO0NZUklMTElDIFNNQUxMIExFVFRFUiBHSEUgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBHRSBCQVI7OzA0OTI7OzA0OTIKKzA0OTQ7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgR0hFIFdJVEggTUlERExFIEhPT0s7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEdFIEhPT0s7OzswNDk1OworMDQ5NTtDWVJJTExJQyBTTUFMTCBMRVRURVIgR0hFIFdJVEggTUlERExFIEhPT0s7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBHRSBIT09LOzswNDk0OzswNDk0CiswNDk2O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFpIRSBXSVRIIERFU0NFTkRFUjtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWkhFIFdJVEggUklHSFQgREVTQ0VOREVSOzs7MDQ5NzsKKzA0OTc7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFpIRSBXSVRIIERFU0NFTkRFUjtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFpIRSBXSVRIIFJJR0hUIERFU0NFTkRFUjs7MDQ5Njs7MDQ5NgorMDQ5ODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBaRSBXSVRIIERFU0NFTkRFUjtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWkUgQ0VESUxMQTs7OzA0OTk7CiswNDk5O0NZUklMTElDIFNNQUxMIExFVFRFUiBaRSBXSVRIIERFU0NFTkRFUjtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFpFIENFRElMTEE7OzA0OTg7OzA0OTgKKzA0OUE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0EgV0lUSCBERVNDRU5ERVI7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtBIFdJVEggUklHSFQgREVTQ0VOREVSOzs7MDQ5QjsKKzA0OUI7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtBIFdJVEggREVTQ0VOREVSO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgS0EgV0lUSCBSSUdIVCBERVNDRU5ERVI7OzA0OUE7OzA0OUEKKzA0OUM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0EgV0lUSCBWRVJUSUNBTCBTVFJPS0U7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtBIFZFUlRJQ0FMIEJBUjs7OzA0OUQ7CiswNDlEO0NZUklMTElDIFNNQUxMIExFVFRFUiBLQSBXSVRIIFZFUlRJQ0FMIFNUUk9LRTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtBIFZFUlRJQ0FMIEJBUjs7MDQ5Qzs7MDQ5QworMDQ5RTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLQSBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0EgQkFSOzs7MDQ5RjsKKzA0OUY7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtBIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgS0EgQkFSOzswNDlFOzswNDlFCiswNEEwO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEJBU0hLSVIgS0E7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFJFVkVSU0VEIEdFIEtBOzs7MDRBMTsKKzA0QTE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEJBU0hLSVIgS0E7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBSRVZFUlNFRCBHRSBLQTs7MDRBMDs7MDRBMAorMDRBMjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFTiBXSVRIIERFU0NFTkRFUjtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRU4gV0lUSCBSSUdIVCBERVNDRU5ERVI7OzswNEEzOworMDRBMztDWVJJTExJQyBTTUFMTCBMRVRURVIgRU4gV0lUSCBERVNDRU5ERVI7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBFTiBXSVRIIFJJR0hUIERFU0NFTkRFUjs7MDRBMjs7MDRBMgorMDRBNDtDWVJJTExJQyBDQVBJVEFMIExJR0FUVVJFIEVOIEdIRTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRU4gR0U7OzswNEE1OworMDRBNTtDWVJJTExJQyBTTUFMTCBMSUdBVFVSRSBFTiBHSEU7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBFTiBHRTs7MDRBNDs7MDRBNAorMDRBNjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBQRSBXSVRIIE1JRERMRSBIT09LO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBQRSBIT09LO0Fia2hhc2lhbjs7MDRBNzsKKzA0QTc7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFBFIFdJVEggTUlERExFIEhPT0s7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBQRSBIT09LO0Fia2hhc2lhbjswNEE2OzswNEE2CiswNEE4O0NZUklMTElDIENBUElUQUwgTEVUVEVSIEFCS0hBU0lBTiBIQTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgTyBIT09LOzs7MDRBOTsKKzA0QTk7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEFCS0hBU0lBTiBIQTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIE8gSE9PSzs7MDRBODs7MDRBOAorMDRBQTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFUyBXSVRIIERFU0NFTkRFUjtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRVMgQ0VESUxMQTs7OzA0QUI7CiswNEFCO0NZUklMTElDIFNNQUxMIExFVFRFUiBFUyBXSVRIIERFU0NFTkRFUjtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVTIENFRElMTEE7OzA0QUE7OzA0QUEKKzA0QUM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVEUgV0lUSCBERVNDRU5ERVI7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFRFIFdJVEggUklHSFQgREVTQ0VOREVSOzs7MDRBRDsKKzA0QUQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFRFIFdJVEggREVTQ0VOREVSO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgVEUgV0lUSCBSSUdIVCBERVNDRU5ERVI7OzA0QUM7OzA0QUMKKzA0QUU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU1RSQUlHSFQgVTtMdTswO0w7Ozs7O047Ozs7MDRBRjsKKzA0QUY7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNUUkFJR0hUIFU7TGw7MDtMOzs7OztOOzs7MDRBRTs7MDRBRQorMDRCMDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTVFJBSUdIVCBVIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTVFJBSUdIVCBVIEJBUjs7OzA0QjE7CiswNEIxO0NZUklMTElDIFNNQUxMIExFVFRFUiBTVFJBSUdIVCBVIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgU1RSQUlHSFQgVSBCQVI7OzA0QjA7OzA0QjAKKzA0QjI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSEEgV0lUSCBERVNDRU5ERVI7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtIQSBXSVRIIFJJR0hUIERFU0NFTkRFUjs7OzA0QjM7CiswNEIzO0NZUklMTElDIFNNQUxMIExFVFRFUiBIQSBXSVRIIERFU0NFTkRFUjtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtIQSBXSVRIIFJJR0hUIERFU0NFTkRFUjs7MDRCMjs7MDRCMgorMDRCNDtDWVJJTExJQyBDQVBJVEFMIExJR0FUVVJFIFRFIFRTRTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVEUgVFNFO0Fia2hhc2lhbjs7MDRCNTsKKzA0QjU7Q1lSSUxMSUMgU01BTEwgTElHQVRVUkUgVEUgVFNFO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgVEUgVFNFO0Fia2hhc2lhbjswNEI0OzswNEI0CiswNEI2O0NZUklMTElDIENBUElUQUwgTEVUVEVSIENIRSBXSVRIIERFU0NFTkRFUjtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQ0hFIFdJVEggUklHSFQgREVTQ0VOREVSOzs7MDRCNzsKKzA0Qjc7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIENIRSBXSVRIIERFU0NFTkRFUjtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIENIRSBXSVRIIFJJR0hUIERFU0NFTkRFUjs7MDRCNjs7MDRCNgorMDRCODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBDSEUgV0lUSCBWRVJUSUNBTCBTVFJPS0U7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIENIRSBWRVJUSUNBTCBCQVI7OzswNEI5OworMDRCOTtDWVJJTExJQyBTTUFMTCBMRVRURVIgQ0hFIFdJVEggVkVSVElDQUwgU1RST0tFO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgQ0hFIFZFUlRJQ0FMIEJBUjs7MDRCODs7MDRCOAorMDRCQTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTSEhBO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBIOzs7MDRCQjsKKzA0QkI7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNISEE7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBIOzswNEJBOzswNEJBCiswNEJDO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEFCS0hBU0lBTiBDSEU7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIElFIEhPT0s7OzswNEJEOworMDRCRDtDWVJJTExJQyBTTUFMTCBMRVRURVIgQUJLSEFTSUFOIENIRTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElFIEhPT0s7OzA0QkM7OzA0QkMKKzA0QkU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQUJLSEFTSUFOIENIRSBXSVRIIERFU0NFTkRFUjtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSUUgSE9PSyBPR09ORUs7OzswNEJGOworMDRCRjtDWVJJTExJQyBTTUFMTCBMRVRURVIgQUJLSEFTSUFOIENIRSBXSVRIIERFU0NFTkRFUjtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElFIEhPT0sgT0dPTkVLOzswNEJFOzswNEJFCiswNEMwO0NZUklMTElDIExFVFRFUiBQQUxPQ0hLQTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgTEVUVEVSIEk7Ozs7CiswNEMxO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFpIRSBXSVRIIEJSRVZFO0x1OzA7TDswNDE2IDAzMDY7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTSE9SVCBaSEU7OzswNEMyOworMDRDMjtDWVJJTExJQyBTTUFMTCBMRVRURVIgWkhFIFdJVEggQlJFVkU7TGw7MDtMOzA0MzYgMDMwNjs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBTSE9SVCBaSEU7OzA0QzE7OzA0QzEKKzA0QzM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0EgV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLQSBIT09LOzs7MDRDNDsKKzA0QzQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtBIFdJVEggSE9PSztMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtBIEhPT0s7OzA0QzM7OzA0QzMKKzA0QzU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRUwgV0lUSCBUQUlMO0x1OzA7TDs7Ozs7Tjs7OzswNEM2OworMDRDNjtDWVJJTExJQyBTTUFMTCBMRVRURVIgRUwgV0lUSCBUQUlMO0xsOzA7TDs7Ozs7Tjs7OzA0QzU7OzA0QzUKKzA0Qzc7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRU4gV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFTiBIT09LOzs7MDRDODsKKzA0Qzg7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVOIFdJVEggSE9PSztMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVOIEhPT0s7OzA0Qzc7OzA0QzcKKzA0Qzk7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRU4gV0lUSCBUQUlMO0x1OzA7TDs7Ozs7Tjs7OzswNENBOworMDRDQTtDWVJJTExJQyBTTUFMTCBMRVRURVIgRU4gV0lUSCBUQUlMO0xsOzA7TDs7Ozs7Tjs7OzA0Qzk7OzA0QzkKKzA0Q0I7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0hBS0FTU0lBTiBDSEU7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIENIRSBXSVRIIExFRlQgREVTQ0VOREVSOzs7MDRDQzsKKzA0Q0M7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtIQUtBU1NJQU4gQ0hFO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgQ0hFIFdJVEggTEVGVCBERVNDRU5ERVI7OzA0Q0I7OzA0Q0IKKzA0Q0Q7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRU0gV0lUSCBUQUlMO0x1OzA7TDs7Ozs7Tjs7OzswNENFOworMDRDRTtDWVJJTExJQyBTTUFMTCBMRVRURVIgRU0gV0lUSCBUQUlMO0xsOzA7TDs7Ozs7Tjs7OzA0Q0Q7OzA0Q0QKKzA0RDA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEJSRVZFO0x1OzA7TDswNDEwIDAzMDY7Ozs7Tjs7OzswNEQxOworMDREMTtDWVJJTExJQyBTTUFMTCBMRVRURVIgQSBXSVRIIEJSRVZFO0xsOzA7TDswNDMwIDAzMDY7Ozs7Tjs7OzA0RDA7OzA0RDAKKzA0RDI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDQxMCAwMzA4Ozs7O047Ozs7MDREMzsKKzA0RDM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEEgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzA0MzAgMDMwODs7OztOOzs7MDREMjs7MDREMgorMDRENDtDWVJJTExJQyBDQVBJVEFMIExJR0FUVVJFIEEgSUU7THU7MDtMOzs7OztOOzs7OzA0RDU7CiswNEQ1O0NZUklMTElDIFNNQUxMIExJR0FUVVJFIEEgSUU7TGw7MDtMOzs7OztOOzs7MDRENDs7MDRENAorMDRENjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJRSBXSVRIIEJSRVZFO0x1OzA7TDswNDE1IDAzMDY7Ozs7Tjs7OzswNEQ3OworMDRENztDWVJJTExJQyBTTUFMTCBMRVRURVIgSUUgV0lUSCBCUkVWRTtMbDswO0w7MDQzNSAwMzA2Ozs7O047OzswNEQ2OzswNEQ2CiswNEQ4O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNDSFdBO0x1OzA7TDs7Ozs7Tjs7OzswNEQ5OworMDREOTtDWVJJTExJQyBTTUFMTCBMRVRURVIgU0NIV0E7TGw7MDtMOzs7OztOOzs7MDREODs7MDREOAorMDREQTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTQ0hXQSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDREOCAwMzA4Ozs7O047Ozs7MDREQjsKKzA0REI7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNDSFdBIFdJVEggRElBRVJFU0lTO0xsOzA7TDswNEQ5IDAzMDg7Ozs7Tjs7OzA0REE7OzA0REEKKzA0REM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWkhFIFdJVEggRElBRVJFU0lTO0x1OzA7TDswNDE2IDAzMDg7Ozs7Tjs7OzswNEREOworMDRERDtDWVJJTExJQyBTTUFMTCBMRVRURVIgWkhFIFdJVEggRElBRVJFU0lTO0xsOzA7TDswNDM2IDAzMDg7Ozs7Tjs7OzA0REM7OzA0REMKKzA0REU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWkUgV0lUSCBESUFFUkVTSVM7THU7MDtMOzA0MTcgMDMwODs7OztOOzs7OzA0REY7CiswNERGO0NZUklMTElDIFNNQUxMIExFVFRFUiBaRSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDQzNyAwMzA4Ozs7O047OzswNERFOzswNERFCiswNEUwO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEFCS0hBU0lBTiBEWkU7THU7MDtMOzs7OztOOzs7OzA0RTE7CiswNEUxO0NZUklMTElDIFNNQUxMIExFVFRFUiBBQktIQVNJQU4gRFpFO0xsOzA7TDs7Ozs7Tjs7OzA0RTA7OzA0RTAKKzA0RTI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSSBXSVRIIE1BQ1JPTjtMdTswO0w7MDQxOCAwMzA0Ozs7O047Ozs7MDRFMzsKKzA0RTM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEkgV0lUSCBNQUNST047TGw7MDtMOzA0MzggMDMwNDs7OztOOzs7MDRFMjs7MDRFMgorMDRFNDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJIFdJVEggRElBRVJFU0lTO0x1OzA7TDswNDE4IDAzMDg7Ozs7Tjs7OzswNEU1OworMDRFNTtDWVJJTExJQyBTTUFMTCBMRVRURVIgSSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDQzOCAwMzA4Ozs7O047OzswNEU0OzswNEU0CiswNEU2O0NZUklMTElDIENBUElUQUwgTEVUVEVSIE8gV0lUSCBESUFFUkVTSVM7THU7MDtMOzA0MUUgMDMwODs7OztOOzs7OzA0RTc7CiswNEU3O0NZUklMTElDIFNNQUxMIExFVFRFUiBPIFdJVEggRElBRVJFU0lTO0xsOzA7TDswNDNFIDAzMDg7Ozs7Tjs7OzA0RTY7OzA0RTYKKzA0RTg7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQkFSUkVEIE87THU7MDtMOzs7OztOOzs7OzA0RTk7CiswNEU5O0NZUklMTElDIFNNQUxMIExFVFRFUiBCQVJSRUQgTztMbDswO0w7Ozs7O047OzswNEU4OzswNEU4CiswNEVBO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEJBUlJFRCBPIFdJVEggRElBRVJFU0lTO0x1OzA7TDswNEU4IDAzMDg7Ozs7Tjs7OzswNEVCOworMDRFQjtDWVJJTExJQyBTTUFMTCBMRVRURVIgQkFSUkVEIE8gV0lUSCBESUFFUkVTSVM7TGw7MDtMOzA0RTkgMDMwODs7OztOOzs7MDRFQTs7MDRFQQorMDRFQztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFIFdJVEggRElBRVJFU0lTO0x1OzA7TDswNDJEIDAzMDg7Ozs7Tjs7OzswNEVEOworMDRFRDtDWVJJTExJQyBTTUFMTCBMRVRURVIgRSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDQ0RCAwMzA4Ozs7O047OzswNEVDOzswNEVDCiswNEVFO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFUgV0lUSCBNQUNST047THU7MDtMOzA0MjMgMDMwNDs7OztOOzs7OzA0RUY7CiswNEVGO0NZUklMTElDIFNNQUxMIExFVFRFUiBVIFdJVEggTUFDUk9OO0xsOzA7TDswNDQzIDAzMDQ7Ozs7Tjs7OzA0RUU7OzA0RUUKKzA0RjA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDQyMyAwMzA4Ozs7O047Ozs7MDRGMTsKKzA0RjE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzA0NDMgMDMwODs7OztOOzs7MDRGMDs7MDRGMAorMDRGMjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBVIFdJVEggRE9VQkxFIEFDVVRFO0x1OzA7TDswNDIzIDAzMEI7Ozs7Tjs7OzswNEYzOworMDRGMztDWVJJTExJQyBTTUFMTCBMRVRURVIgVSBXSVRIIERPVUJMRSBBQ1VURTtMbDswO0w7MDQ0MyAwMzBCOzs7O047OzswNEYyOzswNEYyCiswNEY0O0NZUklMTElDIENBUElUQUwgTEVUVEVSIENIRSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDQyNyAwMzA4Ozs7O047Ozs7MDRGNTsKKzA0RjU7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIENIRSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDQ0NyAwMzA4Ozs7O047OzswNEY0OzswNEY0CiswNEY4O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFlFUlUgV0lUSCBESUFFUkVTSVM7THU7MDtMOzA0MkIgMDMwODs7OztOOzs7OzA0Rjk7CiswNEY5O0NZUklMTElDIFNNQUxMIExFVFRFUiBZRVJVIFdJVEggRElBRVJFU0lTO0xsOzA7TDswNDRCIDAzMDg7Ozs7Tjs7OzA0Rjg7OzA0RjgKKzA1MDA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS09NSSBERTtMdTswO0w7Ozs7O047Ozs7MDUwMTsKKzA1MDE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtPTUkgREU7TGw7MDtMOzs7OztOOzs7MDUwMDs7MDUwMAorMDUwMjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLT01JIERKRTtMdTswO0w7Ozs7O047Ozs7MDUwMzsKKzA1MDM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtPTUkgREpFO0xsOzA7TDs7Ozs7Tjs7OzA1MDI7OzA1MDIKKzA1MDQ7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS09NSSBaSkU7THU7MDtMOzs7OztOOzs7OzA1MDU7CiswNTA1O0NZUklMTElDIFNNQUxMIExFVFRFUiBLT01JIFpKRTtMbDswO0w7Ozs7O047OzswNTA0OzswNTA0CiswNTA2O0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtPTUkgRFpKRTtMdTswO0w7Ozs7O047Ozs7MDUwNzsKKzA1MDc7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtPTUkgRFpKRTtMbDswO0w7Ozs7O047OzswNTA2OzswNTA2CiswNTA4O0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtPTUkgTEpFO0x1OzA7TDs7Ozs7Tjs7OzswNTA5OworMDUwOTtDWVJJTExJQyBTTUFMTCBMRVRURVIgS09NSSBMSkU7TGw7MDtMOzs7OztOOzs7MDUwODs7MDUwOAorMDUwQTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLT01JIE5KRTtMdTswO0w7Ozs7O047Ozs7MDUwQjsKKzA1MEI7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtPTUkgTkpFO0xsOzA7TDs7Ozs7Tjs7OzA1MEE7OzA1MEEKKzA1MEM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS09NSSBTSkU7THU7MDtMOzs7OztOOzs7OzA1MEQ7CiswNTBEO0NZUklMTElDIFNNQUxMIExFVFRFUiBLT01JIFNKRTtMbDswO0w7Ozs7O047OzswNTBDOzswNTBDCiswNTBFO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtPTUkgVEpFO0x1OzA7TDs7Ozs7Tjs7OzswNTBGOworMDUwRjtDWVJJTExJQyBTTUFMTCBMRVRURVIgS09NSSBUSkU7TGw7MDtMOzs7OztOOzs7MDUwRTs7MDUwRQorMDUzMTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBBWUI7THU7MDtMOzs7OztOOzs7OzA1NjE7CiswNTMyO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIEJFTjtMdTswO0w7Ozs7O047Ozs7MDU2MjsKKzA1MzM7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgR0lNO0x1OzA7TDs7Ozs7Tjs7OzswNTYzOworMDUzNDtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBEQTtMdTswO0w7Ozs7O047Ozs7MDU2NDsKKzA1MzU7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgRUNIO0x1OzA7TDs7Ozs7Tjs7OzswNTY1OworMDUzNjtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBaQTtMdTswO0w7Ozs7O047Ozs7MDU2NjsKKzA1Mzc7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgRUg7THU7MDtMOzs7OztOOzs7OzA1Njc7CiswNTM4O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIEVUO0x1OzA7TDs7Ozs7Tjs7OzswNTY4OworMDUzOTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBUTztMdTswO0w7Ozs7O047Ozs7MDU2OTsKKzA1M0E7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgWkhFO0x1OzA7TDs7Ozs7Tjs7OzswNTZBOworMDUzQjtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBJTkk7THU7MDtMOzs7OztOOzs7OzA1NkI7CiswNTNDO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIExJV047THU7MDtMOzs7OztOOzs7OzA1NkM7CiswNTNEO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFhFSDtMdTswO0w7Ozs7O047Ozs7MDU2RDsKKzA1M0U7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgQ0E7THU7MDtMOzs7OztOOzs7OzA1NkU7CiswNTNGO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIEtFTjtMdTswO0w7Ozs7O047Ozs7MDU2RjsKKzA1NDA7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgSE87THU7MDtMOzs7OztOOzs7OzA1NzA7CiswNTQxO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIEpBO0x1OzA7TDs7Ozs7Tjs7OzswNTcxOworMDU0MjtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBHSEFEO0x1OzA7TDs7Ozs7TjtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBMQUQ7OzswNTcyOworMDU0MztBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBDSEVIO0x1OzA7TDs7Ozs7Tjs7OzswNTczOworMDU0NDtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBNRU47THU7MDtMOzs7OztOOzs7OzA1NzQ7CiswNTQ1O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFlJO0x1OzA7TDs7Ozs7Tjs7OzswNTc1OworMDU0NjtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBOT1c7THU7MDtMOzs7OztOOzs7OzA1NzY7CiswNTQ3O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFNIQTtMdTswO0w7Ozs7O047Ozs7MDU3NzsKKzA1NDg7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgVk87THU7MDtMOzs7OztOOzs7OzA1Nzg7CiswNTQ5O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIENIQTtMdTswO0w7Ozs7O047Ozs7MDU3OTsKKzA1NEE7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgUEVIO0x1OzA7TDs7Ozs7Tjs7OzswNTdBOworMDU0QjtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBKSEVIO0x1OzA7TDs7Ozs7Tjs7OzswNTdCOworMDU0QztBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBSQTtMdTswO0w7Ozs7O047Ozs7MDU3QzsKKzA1NEQ7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgU0VIO0x1OzA7TDs7Ozs7Tjs7OzswNTdEOworMDU0RTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBWRVc7THU7MDtMOzs7OztOOzs7OzA1N0U7CiswNTRGO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFRJV047THU7MDtMOzs7OztOOzs7OzA1N0Y7CiswNTUwO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFJFSDtMdTswO0w7Ozs7O047Ozs7MDU4MDsKKzA1NTE7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgQ087THU7MDtMOzs7OztOOzs7OzA1ODE7CiswNTUyO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFlJV047THU7MDtMOzs7OztOOzs7OzA1ODI7CiswNTUzO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFBJV1I7THU7MDtMOzs7OztOOzs7OzA1ODM7CiswNTU0O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIEtFSDtMdTswO0w7Ozs7O047Ozs7MDU4NDsKKzA1NTU7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgT0g7THU7MDtMOzs7OztOOzs7OzA1ODU7CiswNTU2O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIEZFSDtMdTswO0w7Ozs7O047Ozs7MDU4NjsKKzA1NTk7QVJNRU5JQU4gTU9ESUZJRVIgTEVUVEVSIExFRlQgSEFMRiBSSU5HO0xtOzA7TDs7Ozs7Tjs7Ozs7CiswNTVBO0FSTUVOSUFOIEFQT1NUUk9QSEU7UG87MDtMOzs7OztOO0FSTUVOSUFOIE1PRElGSUVSIExFVFRFUiBSSUdIVCBIQUxGIFJJTkc7Ozs7CiswNTVCO0FSTUVOSUFOIEVNUEhBU0lTIE1BUks7UG87MDtMOzs7OztOOzs7OzsKKzA1NUM7QVJNRU5JQU4gRVhDTEFNQVRJT04gTUFSSztQbzswO0w7Ozs7O047Ozs7OworMDU1RDtBUk1FTklBTiBDT01NQTtQbzswO0w7Ozs7O047Ozs7OworMDU1RTtBUk1FTklBTiBRVUVTVElPTiBNQVJLO1BvOzA7TDs7Ozs7Tjs7Ozs7CiswNTVGO0FSTUVOSUFOIEFCQlJFVklBVElPTiBNQVJLO1BvOzA7TDs7Ozs7Tjs7Ozs7CiswNTYxO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBBWUI7TGw7MDtMOzs7OztOOzs7MDUzMTs7MDUzMQorMDU2MjtBUk1FTklBTiBTTUFMTCBMRVRURVIgQkVOO0xsOzA7TDs7Ozs7Tjs7OzA1MzI7OzA1MzIKKzA1NjM7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEdJTTtMbDswO0w7Ozs7O047OzswNTMzOzswNTMzCiswNTY0O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBEQTtMbDswO0w7Ozs7O047OzswNTM0OzswNTM0CiswNTY1O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBFQ0g7TGw7MDtMOzs7OztOOzs7MDUzNTs7MDUzNQorMDU2NjtBUk1FTklBTiBTTUFMTCBMRVRURVIgWkE7TGw7MDtMOzs7OztOOzs7MDUzNjs7MDUzNgorMDU2NztBUk1FTklBTiBTTUFMTCBMRVRURVIgRUg7TGw7MDtMOzs7OztOOzs7MDUzNzs7MDUzNworMDU2ODtBUk1FTklBTiBTTUFMTCBMRVRURVIgRVQ7TGw7MDtMOzs7OztOOzs7MDUzODs7MDUzOAorMDU2OTtBUk1FTklBTiBTTUFMTCBMRVRURVIgVE87TGw7MDtMOzs7OztOOzs7MDUzOTs7MDUzOQorMDU2QTtBUk1FTklBTiBTTUFMTCBMRVRURVIgWkhFO0xsOzA7TDs7Ozs7Tjs7OzA1M0E7OzA1M0EKKzA1NkI7QVJNRU5JQU4gU01BTEwgTEVUVEVSIElOSTtMbDswO0w7Ozs7O047OzswNTNCOzswNTNCCiswNTZDO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBMSVdOO0xsOzA7TDs7Ozs7Tjs7OzA1M0M7OzA1M0MKKzA1NkQ7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFhFSDtMbDswO0w7Ozs7O047OzswNTNEOzswNTNECiswNTZFO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBDQTtMbDswO0w7Ozs7O047OzswNTNFOzswNTNFCiswNTZGO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBLRU47TGw7MDtMOzs7OztOOzs7MDUzRjs7MDUzRgorMDU3MDtBUk1FTklBTiBTTUFMTCBMRVRURVIgSE87TGw7MDtMOzs7OztOOzs7MDU0MDs7MDU0MAorMDU3MTtBUk1FTklBTiBTTUFMTCBMRVRURVIgSkE7TGw7MDtMOzs7OztOOzs7MDU0MTs7MDU0MQorMDU3MjtBUk1FTklBTiBTTUFMTCBMRVRURVIgR0hBRDtMbDswO0w7Ozs7O047QVJNRU5JQU4gU01BTEwgTEVUVEVSIExBRDs7MDU0Mjs7MDU0MgorMDU3MztBUk1FTklBTiBTTUFMTCBMRVRURVIgQ0hFSDtMbDswO0w7Ozs7O047OzswNTQzOzswNTQzCiswNTc0O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBNRU47TGw7MDtMOzs7OztOOzs7MDU0NDs7MDU0NAorMDU3NTtBUk1FTklBTiBTTUFMTCBMRVRURVIgWUk7TGw7MDtMOzs7OztOOzs7MDU0NTs7MDU0NQorMDU3NjtBUk1FTklBTiBTTUFMTCBMRVRURVIgTk9XO0xsOzA7TDs7Ozs7Tjs7OzA1NDY7OzA1NDYKKzA1Nzc7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFNIQTtMbDswO0w7Ozs7O047OzswNTQ3OzswNTQ3CiswNTc4O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBWTztMbDswO0w7Ozs7O047OzswNTQ4OzswNTQ4CiswNTc5O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBDSEE7TGw7MDtMOzs7OztOOzs7MDU0OTs7MDU0OQorMDU3QTtBUk1FTklBTiBTTUFMTCBMRVRURVIgUEVIO0xsOzA7TDs7Ozs7Tjs7OzA1NEE7OzA1NEEKKzA1N0I7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEpIRUg7TGw7MDtMOzs7OztOOzs7MDU0Qjs7MDU0QgorMDU3QztBUk1FTklBTiBTTUFMTCBMRVRURVIgUkE7TGw7MDtMOzs7OztOOzs7MDU0Qzs7MDU0QworMDU3RDtBUk1FTklBTiBTTUFMTCBMRVRURVIgU0VIO0xsOzA7TDs7Ozs7Tjs7OzA1NEQ7OzA1NEQKKzA1N0U7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFZFVztMbDswO0w7Ozs7O047OzswNTRFOzswNTRFCiswNTdGO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBUSVdOO0xsOzA7TDs7Ozs7Tjs7OzA1NEY7OzA1NEYKKzA1ODA7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFJFSDtMbDswO0w7Ozs7O047OzswNTUwOzswNTUwCiswNTgxO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBDTztMbDswO0w7Ozs7O047OzswNTUxOzswNTUxCiswNTgyO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBZSVdOO0xsOzA7TDs7Ozs7Tjs7OzA1NTI7OzA1NTIKKzA1ODM7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFBJV1I7TGw7MDtMOzs7OztOOzs7MDU1Mzs7MDU1MworMDU4NDtBUk1FTklBTiBTTUFMTCBMRVRURVIgS0VIO0xsOzA7TDs7Ozs7Tjs7OzA1NTQ7OzA1NTQKKzA1ODU7QVJNRU5JQU4gU01BTEwgTEVUVEVSIE9IO0xsOzA7TDs7Ozs7Tjs7OzA1NTU7OzA1NTUKKzA1ODY7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEZFSDtMbDswO0w7Ozs7O047OzswNTU2OzswNTU2CiswNTg3O0FSTUVOSUFOIFNNQUxMIExJR0FUVVJFIEVDSCBZSVdOO0xsOzA7TDs8Y29tcGF0PiAwNTY1IDA1ODI7Ozs7Tjs7Ozs7CiswNTg5O0FSTUVOSUFOIEZVTEwgU1RPUDtQbzswO0w7Ozs7O047QVJNRU5JQU4gUEVSSU9EOzs7OworMDU4QTtBUk1FTklBTiBIWVBIRU47UGQ7MDtPTjs7Ozs7Tjs7Ozs7CiswNTkxO0hFQlJFVyBBQ0NFTlQgRVROQUhUQTtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA1OTI7SEVCUkVXIEFDQ0VOVCBTRUdPTDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA1OTM7SEVCUkVXIEFDQ0VOVCBTSEFMU0hFTEVUO01uOzIzMDtOU007Ozs7O047Ozs7OworMDU5NDtIRUJSRVcgQUNDRU5UIFpBUUVGIFFBVEFOO01uOzIzMDtOU007Ozs7O047Ozs7OworMDU5NTtIRUJSRVcgQUNDRU5UIFpBUUVGIEdBRE9MO01uOzIzMDtOU007Ozs7O047Ozs7OworMDU5NjtIRUJSRVcgQUNDRU5UIFRJUEVIQTtNbjsyMjA7TlNNOzs7OztOOzsqOzs7CiswNTk3O0hFQlJFVyBBQ0NFTlQgUkVWSUE7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNTk4O0hFQlJFVyBBQ0NFTlQgWkFSUUE7TW47MjMwO05TTTs7Ozs7Tjs7Kjs7OworMDU5OTtIRUJSRVcgQUNDRU5UIFBBU0hUQTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA1OUE7SEVCUkVXIEFDQ0VOVCBZRVRJVjtNbjsyMjI7TlNNOzs7OztOOzs7OzsKKzA1OUI7SEVCUkVXIEFDQ0VOVCBURVZJUjtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA1OUM7SEVCUkVXIEFDQ0VOVCBHRVJFU0g7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNTlEO0hFQlJFVyBBQ0NFTlQgR0VSRVNIIE1VUURBTTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA1OUU7SEVCUkVXIEFDQ0VOVCBHRVJTSEFZSU07TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNTlGO0hFQlJFVyBBQ0NFTlQgUUFSTkVZIFBBUkE7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNUEwO0hFQlJFVyBBQ0NFTlQgVEVMSVNIQSBHRURPTEE7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNUExO0hFQlJFVyBBQ0NFTlQgUEFaRVI7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNUEzO0hFQlJFVyBBQ0NFTlQgTVVOQUg7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNUE0O0hFQlJFVyBBQ0NFTlQgTUFIQVBBS0g7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNUE1O0hFQlJFVyBBQ0NFTlQgTUVSS0hBO01uOzIyMDtOU007Ozs7O047Oyo7OzsKKzA1QTY7SEVCUkVXIEFDQ0VOVCBNRVJLSEEgS0VGVUxBO01uOzIyMDtOU007Ozs7O047Ozs7OworMDVBNztIRUJSRVcgQUNDRU5UIERBUkdBO01uOzIyMDtOU007Ozs7O047Ozs7OworMDVBODtIRUJSRVcgQUNDRU5UIFFBRE1BO01uOzIzMDtOU007Ozs7O047Oyo7OzsKKzA1QTk7SEVCUkVXIEFDQ0VOVCBURUxJU0hBIFFFVEFOQTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA1QUE7SEVCUkVXIEFDQ0VOVCBZRVJBSCBCRU4gWU9NTztNbjsyMjA7TlNNOzs7OztOOzsqOzs7CiswNUFCO0hFQlJFVyBBQ0NFTlQgT0xFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDVBQztIRUJSRVcgQUNDRU5UIElMVVk7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNUFEO0hFQlJFVyBBQ0NFTlQgREVISTtNbjsyMjI7TlNNOzs7OztOOzs7OzsKKzA1QUU7SEVCUkVXIEFDQ0VOVCBaSU5PUjtNbjsyMjg7TlNNOzs7OztOOzs7OzsKKzA1QUY7SEVCUkVXIE1BUksgTUFTT1JBIENJUkNMRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA1QjA7SEVCUkVXIFBPSU5UIFNIRVZBO01uOzEwO05TTTs7Ozs7Tjs7Ozs7CiswNUIxO0hFQlJFVyBQT0lOVCBIQVRBRiBTRUdPTDtNbjsxMTtOU007Ozs7O047Ozs7OworMDVCMjtIRUJSRVcgUE9JTlQgSEFUQUYgUEFUQUg7TW47MTI7TlNNOzs7OztOOzs7OzsKKzA1QjM7SEVCUkVXIFBPSU5UIEhBVEFGIFFBTUFUUztNbjsxMztOU007Ozs7O047Ozs7OworMDVCNDtIRUJSRVcgUE9JTlQgSElSSVE7TW47MTQ7TlNNOzs7OztOOzs7OzsKKzA1QjU7SEVCUkVXIFBPSU5UIFRTRVJFO01uOzE1O05TTTs7Ozs7Tjs7Ozs7CiswNUI2O0hFQlJFVyBQT0lOVCBTRUdPTDtNbjsxNjtOU007Ozs7O047Ozs7OworMDVCNztIRUJSRVcgUE9JTlQgUEFUQUg7TW47MTc7TlNNOzs7OztOOzs7OzsKKzA1Qjg7SEVCUkVXIFBPSU5UIFFBTUFUUztNbjsxODtOU007Ozs7O047Ozs7OworMDVCOTtIRUJSRVcgUE9JTlQgSE9MQU07TW47MTk7TlNNOzs7OztOOzs7OzsKKzA1QkI7SEVCUkVXIFBPSU5UIFFVQlVUUztNbjsyMDtOU007Ozs7O047Ozs7OworMDVCQztIRUJSRVcgUE9JTlQgREFHRVNIIE9SIE1BUElRO01uOzIxO05TTTs7Ozs7TjtIRUJSRVcgUE9JTlQgREFHRVNIO29yIHNodXJ1cTs7OworMDVCRDtIRUJSRVcgUE9JTlQgTUVURUc7TW47MjI7TlNNOzs7OztOOzsqOzs7CiswNUJFO0hFQlJFVyBQVU5DVFVBVElPTiBNQVFBRjtQbzswO1I7Ozs7O047Ozs7OworMDVCRjtIRUJSRVcgUE9JTlQgUkFGRTtNbjsyMztOU007Ozs7O047Ozs7OworMDVDMDtIRUJSRVcgUFVOQ1RVQVRJT04gUEFTRVE7UG87MDtSOzs7OztOO0hFQlJFVyBQT0lOVCBQQVNFUTsqOzs7CiswNUMxO0hFQlJFVyBQT0lOVCBTSElOIERPVDtNbjsyNDtOU007Ozs7O047Ozs7OworMDVDMjtIRUJSRVcgUE9JTlQgU0lOIERPVDtNbjsyNTtOU007Ozs7O047Ozs7OworMDVDMztIRUJSRVcgUFVOQ1RVQVRJT04gU09GIFBBU1VRO1BvOzA7Ujs7Ozs7Tjs7Kjs7OworMDVDNDtIRUJSRVcgTUFSSyBVUFBFUiBET1Q7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNUQwO0hFQlJFVyBMRVRURVIgQUxFRjtMbzswO1I7Ozs7O047Ozs7OworMDVEMTtIRUJSRVcgTEVUVEVSIEJFVDtMbzswO1I7Ozs7O047Ozs7OworMDVEMjtIRUJSRVcgTEVUVEVSIEdJTUVMO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUQzO0hFQlJFVyBMRVRURVIgREFMRVQ7TG87MDtSOzs7OztOOzs7OzsKKzA1RDQ7SEVCUkVXIExFVFRFUiBIRTtMbzswO1I7Ozs7O047Ozs7OworMDVENTtIRUJSRVcgTEVUVEVSIFZBVjtMbzswO1I7Ozs7O047Ozs7OworMDVENjtIRUJSRVcgTEVUVEVSIFpBWUlOO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUQ3O0hFQlJFVyBMRVRURVIgSEVUO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUQ4O0hFQlJFVyBMRVRURVIgVEVUO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUQ5O0hFQlJFVyBMRVRURVIgWU9EO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNURBO0hFQlJFVyBMRVRURVIgRklOQUwgS0FGO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNURCO0hFQlJFVyBMRVRURVIgS0FGO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNURDO0hFQlJFVyBMRVRURVIgTEFNRUQ7TG87MDtSOzs7OztOOzs7OzsKKzA1REQ7SEVCUkVXIExFVFRFUiBGSU5BTCBNRU07TG87MDtSOzs7OztOOzs7OzsKKzA1REU7SEVCUkVXIExFVFRFUiBNRU07TG87MDtSOzs7OztOOzs7OzsKKzA1REY7SEVCUkVXIExFVFRFUiBGSU5BTCBOVU47TG87MDtSOzs7OztOOzs7OzsKKzA1RTA7SEVCUkVXIExFVFRFUiBOVU47TG87MDtSOzs7OztOOzs7OzsKKzA1RTE7SEVCUkVXIExFVFRFUiBTQU1FS0g7TG87MDtSOzs7OztOOzs7OzsKKzA1RTI7SEVCUkVXIExFVFRFUiBBWUlOO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUUzO0hFQlJFVyBMRVRURVIgRklOQUwgUEU7TG87MDtSOzs7OztOOzs7OzsKKzA1RTQ7SEVCUkVXIExFVFRFUiBQRTtMbzswO1I7Ozs7O047Ozs7OworMDVFNTtIRUJSRVcgTEVUVEVSIEZJTkFMIFRTQURJO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUU2O0hFQlJFVyBMRVRURVIgVFNBREk7TG87MDtSOzs7OztOOzs7OzsKKzA1RTc7SEVCUkVXIExFVFRFUiBRT0Y7TG87MDtSOzs7OztOOzs7OzsKKzA1RTg7SEVCUkVXIExFVFRFUiBSRVNIO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUU5O0hFQlJFVyBMRVRURVIgU0hJTjtMbzswO1I7Ozs7O047Ozs7OworMDVFQTtIRUJSRVcgTEVUVEVSIFRBVjtMbzswO1I7Ozs7O047Ozs7OworMDVGMDtIRUJSRVcgTElHQVRVUkUgWUlERElTSCBET1VCTEUgVkFWO0xvOzA7Ujs7Ozs7TjtIRUJSRVcgTEVUVEVSIERPVUJMRSBWQVY7Ozs7CiswNUYxO0hFQlJFVyBMSUdBVFVSRSBZSURESVNIIFZBViBZT0Q7TG87MDtSOzs7OztOO0hFQlJFVyBMRVRURVIgVkFWIFlPRDs7OzsKKzA1RjI7SEVCUkVXIExJR0FUVVJFIFlJRERJU0ggRE9VQkxFIFlPRDtMbzswO1I7Ozs7O047SEVCUkVXIExFVFRFUiBET1VCTEUgWU9EOzs7OworMDVGMztIRUJSRVcgUFVOQ1RVQVRJT04gR0VSRVNIO1BvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUY0O0hFQlJFVyBQVU5DVFVBVElPTiBHRVJTSEFZSU07UG87MDtSOzs7OztOOzs7OzsKKzA2MEM7QVJBQklDIENPTU1BO1BvOzA7Q1M7Ozs7O047Ozs7OworMDYxQjtBUkFCSUMgU0VNSUNPTE9OO1BvOzA7QUw7Ozs7O047Ozs7OworMDYxRjtBUkFCSUMgUVVFU1RJT04gTUFSSztQbzswO0FMOzs7OztOOzs7OzsKKzA2MjE7QVJBQklDIExFVFRFUiBIQU1aQTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgSEFNWkFIOzs7OworMDYyMjtBUkFCSUMgTEVUVEVSIEFMRUYgV0lUSCBNQUREQSBBQk9WRTtMbzswO0FMOzA2MjcgMDY1Mzs7OztOO0FSQUJJQyBMRVRURVIgTUFEREFIIE9OIEFMRUY7Ozs7CiswNjIzO0FSQUJJQyBMRVRURVIgQUxFRiBXSVRIIEhBTVpBIEFCT1ZFO0xvOzA7QUw7MDYyNyAwNjU0Ozs7O047QVJBQklDIExFVFRFUiBIQU1aQUggT04gQUxFRjs7OzsKKzA2MjQ7QVJBQklDIExFVFRFUiBXQVcgV0lUSCBIQU1aQSBBQk9WRTtMbzswO0FMOzA2NDggMDY1NDs7OztOO0FSQUJJQyBMRVRURVIgSEFNWkFIIE9OIFdBVzs7OzsKKzA2MjU7QVJBQklDIExFVFRFUiBBTEVGIFdJVEggSEFNWkEgQkVMT1c7TG87MDtBTDswNjI3IDA2NTU7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBTVpBSCBVTkRFUiBBTEVGOzs7OworMDYyNjtBUkFCSUMgTEVUVEVSIFlFSCBXSVRIIEhBTVpBIEFCT1ZFO0xvOzA7QUw7MDY0QSAwNjU0Ozs7O047QVJBQklDIExFVFRFUiBIQU1aQUggT04gWUE7Ozs7CiswNjI3O0FSQUJJQyBMRVRURVIgQUxFRjtMbzswO0FMOzs7OztOOzs7OzsKKzA2Mjg7QVJBQklDIExFVFRFUiBCRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEJBQTs7OzsKKzA2Mjk7QVJBQklDIExFVFRFUiBURUggTUFSQlVUQTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgVEFBIE1BUkJVVEFIOzs7OworMDYyQTtBUkFCSUMgTEVUVEVSIFRFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgVEFBOzs7OworMDYyQjtBUkFCSUMgTEVUVEVSIFRIRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRIQUE7Ozs7CiswNjJDO0FSQUJJQyBMRVRURVIgSkVFTTtMbzswO0FMOzs7OztOOzs7OzsKKzA2MkQ7QVJBQklDIExFVFRFUiBIQUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBQTs7OzsKKzA2MkU7QVJBQklDIExFVFRFUiBLSEFIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBLSEFBOzs7OworMDYyRjtBUkFCSUMgTEVUVEVSIERBTDtMbzswO0FMOzs7OztOOzs7OzsKKzA2MzA7QVJBQklDIExFVFRFUiBUSEFMO0xvOzA7QUw7Ozs7O047Ozs7OworMDYzMTtBUkFCSUMgTEVUVEVSIFJFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgUkE7Ozs7CiswNjMyO0FSQUJJQyBMRVRURVIgWkFJTjtMbzswO0FMOzs7OztOOzs7OzsKKzA2MzM7QVJBQklDIExFVFRFUiBTRUVOO0xvOzA7QUw7Ozs7O047Ozs7OworMDYzNDtBUkFCSUMgTEVUVEVSIFNIRUVOO0xvOzA7QUw7Ozs7O047Ozs7OworMDYzNTtBUkFCSUMgTEVUVEVSIFNBRDtMbzswO0FMOzs7OztOOzs7OzsKKzA2MzY7QVJBQklDIExFVFRFUiBEQUQ7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjM3O0FSQUJJQyBMRVRURVIgVEFIO0xvOzA7QUw7Ozs7O047Ozs7OworMDYzODtBUkFCSUMgTEVUVEVSIFpBSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgREhBSDs7OzsKKzA2Mzk7QVJBQklDIExFVFRFUiBBSU47TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjNBO0FSQUJJQyBMRVRURVIgR0hBSU47TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjQwO0FSQUJJQyBUQVRXRUVMO0xtOzA7QUw7Ozs7O047Ozs7OworMDY0MTtBUkFCSUMgTEVUVEVSIEZFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgRkE7Ozs7CiswNjQyO0FSQUJJQyBMRVRURVIgUUFGO0xvOzA7QUw7Ozs7O047Ozs7OworMDY0MztBUkFCSUMgTEVUVEVSIEtBRjtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgQ0FGOzs7OworMDY0NDtBUkFCSUMgTEVUVEVSIExBTTtMbzswO0FMOzs7OztOOzs7OzsKKzA2NDU7QVJBQklDIExFVFRFUiBNRUVNO0xvOzA7QUw7Ozs7O047Ozs7OworMDY0NjtBUkFCSUMgTEVUVEVSIE5PT047TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjQ3O0FSQUJJQyBMRVRURVIgSEVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBIQTs7OzsKKzA2NDg7QVJBQklDIExFVFRFUiBXQVc7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjQ5O0FSQUJJQyBMRVRURVIgQUxFRiBNQUtTVVJBO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBBTEVGIE1BUVNVUkFIOzs7OworMDY0QTtBUkFCSUMgTEVUVEVSIFlFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgWUE7Ozs7CiswNjRCO0FSQUJJQyBGQVRIQVRBTjtNbjsyNztOU007Ozs7O047Ozs7OworMDY0QztBUkFCSUMgREFNTUFUQU47TW47Mjg7TlNNOzs7OztOOzs7OzsKKzA2NEQ7QVJBQklDIEtBU1JBVEFOO01uOzI5O05TTTs7Ozs7Tjs7Ozs7CiswNjRFO0FSQUJJQyBGQVRIQTtNbjszMDtOU007Ozs7O047QVJBQklDIEZBVEhBSDs7OzsKKzA2NEY7QVJBQklDIERBTU1BO01uOzMxO05TTTs7Ozs7TjtBUkFCSUMgREFNTUFIOzs7OworMDY1MDtBUkFCSUMgS0FTUkE7TW47MzI7TlNNOzs7OztOO0FSQUJJQyBLQVNSQUg7Ozs7CiswNjUxO0FSQUJJQyBTSEFEREE7TW47MzM7TlNNOzs7OztOO0FSQUJJQyBTSEFEREFIOzs7OworMDY1MjtBUkFCSUMgU1VLVU47TW47MzQ7TlNNOzs7OztOOzs7OzsKKzA2NTM7QVJBQklDIE1BRERBSCBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2NTQ7QVJBQklDIEhBTVpBIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDY1NTtBUkFCSUMgSEFNWkEgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNjYwO0FSQUJJQy1JTkRJQyBESUdJVCBaRVJPO05kOzA7QU47OzA7MDswO047Ozs7OworMDY2MTtBUkFCSUMtSU5ESUMgRElHSVQgT05FO05kOzA7QU47OzE7MTsxO047Ozs7OworMDY2MjtBUkFCSUMtSU5ESUMgRElHSVQgVFdPO05kOzA7QU47OzI7MjsyO047Ozs7OworMDY2MztBUkFCSUMtSU5ESUMgRElHSVQgVEhSRUU7TmQ7MDtBTjs7MzszOzM7Tjs7Ozs7CiswNjY0O0FSQUJJQy1JTkRJQyBESUdJVCBGT1VSO05kOzA7QU47OzQ7NDs0O047Ozs7OworMDY2NTtBUkFCSUMtSU5ESUMgRElHSVQgRklWRTtOZDswO0FOOzs1OzU7NTtOOzs7OzsKKzA2NjY7QVJBQklDLUlORElDIERJR0lUIFNJWDtOZDswO0FOOzs2OzY7NjtOOzs7OzsKKzA2Njc7QVJBQklDLUlORElDIERJR0lUIFNFVkVOO05kOzA7QU47Ozc7Nzs3O047Ozs7OworMDY2ODtBUkFCSUMtSU5ESUMgRElHSVQgRUlHSFQ7TmQ7MDtBTjs7ODs4Ozg7Tjs7Ozs7CiswNjY5O0FSQUJJQy1JTkRJQyBESUdJVCBOSU5FO05kOzA7QU47Ozk7OTs5O047Ozs7OworMDY2QTtBUkFCSUMgUEVSQ0VOVCBTSUdOO1BvOzA7RVQ7Ozs7O047Ozs7OworMDY2QjtBUkFCSUMgREVDSU1BTCBTRVBBUkFUT1I7UG87MDtBTjs7Ozs7Tjs7Ozs7CiswNjZDO0FSQUJJQyBUSE9VU0FORFMgU0VQQVJBVE9SO1BvOzA7QU47Ozs7O047Ozs7OworMDY2RDtBUkFCSUMgRklWRSBQT0lOVEVEIFNUQVI7UG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjZFO0FSQUJJQyBMRVRURVIgRE9UTEVTUyBCRUg7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjZGO0FSQUJJQyBMRVRURVIgRE9UTEVTUyBRQUY7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjcwO0FSQUJJQyBMRVRURVIgU1VQRVJTQ1JJUFQgQUxFRjtNbjszNTtOU007Ozs7O047QVJBQklDIEFMRUYgQUJPVkU7Ozs7CiswNjcxO0FSQUJJQyBMRVRURVIgQUxFRiBXQVNMQTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgSEFNWkFUIFdBU0wgT04gQUxFRjs7OzsKKzA2NzI7QVJBQklDIExFVFRFUiBBTEVGIFdJVEggV0FWWSBIQU1aQSBBQk9WRTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgV0FWWSBIQU1aQUggT04gQUxFRjs7OzsKKzA2NzM7QVJBQklDIExFVFRFUiBBTEVGIFdJVEggV0FWWSBIQU1aQSBCRUxPVztMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgV0FWWSBIQU1aQUggVU5ERVIgQUxFRjs7OzsKKzA2NzQ7QVJBQklDIExFVFRFUiBISUdIIEhBTVpBO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBISUdIIEhBTVpBSDs7OzsKKzA2NzU7QVJBQklDIExFVFRFUiBISUdIIEhBTVpBIEFMRUY7TG87MDtBTDs8Y29tcGF0PiAwNjI3IDA2NzQ7Ozs7TjtBUkFCSUMgTEVUVEVSIEhJR0ggSEFNWkFIIEFMRUY7Ozs7CiswNjc2O0FSQUJJQyBMRVRURVIgSElHSCBIQU1aQSBXQVc7TG87MDtBTDs8Y29tcGF0PiAwNjQ4IDA2NzQ7Ozs7TjtBUkFCSUMgTEVUVEVSIEhJR0ggSEFNWkFIIFdBVzs7OzsKKzA2Nzc7QVJBQklDIExFVFRFUiBVIFdJVEggSEFNWkEgQUJPVkU7TG87MDtBTDs8Y29tcGF0PiAwNkM3IDA2NzQ7Ozs7TjtBUkFCSUMgTEVUVEVSIEhJR0ggSEFNWkFIIFdBVyBXSVRIIERBTU1BSDs7OzsKKzA2Nzg7QVJBQklDIExFVFRFUiBISUdIIEhBTVpBIFlFSDtMbzswO0FMOzxjb21wYXQ+IDA2NEEgMDY3NDs7OztOO0FSQUJJQyBMRVRURVIgSElHSCBIQU1aQUggWUE7Ozs7CiswNjc5O0FSQUJJQyBMRVRURVIgVFRFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgVEFBIFdJVEggU01BTEwgVEFIOzs7OworMDY3QTtBUkFCSUMgTEVUVEVSIFRURUhFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgVEFBIFdJVEggVFdPIERPVFMgVkVSVElDQUwgQUJPVkU7Ozs7CiswNjdCO0FSQUJJQyBMRVRURVIgQkVFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgQkFBIFdJVEggVFdPIERPVFMgVkVSVElDQUwgQkVMT1c7Ozs7CiswNjdDO0FSQUJJQyBMRVRURVIgVEVIIFdJVEggUklORztMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgVEFBIFdJVEggUklORzs7OzsKKzA2N0Q7QVJBQklDIExFVFRFUiBURUggV0lUSCBUSFJFRSBET1RTIEFCT1ZFIERPV05XQVJEUztMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgVEFBIFdJVEggVEhSRUUgRE9UUyBBQk9WRSBET1dOV0FSRDs7OzsKKzA2N0U7QVJBQklDIExFVFRFUiBQRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRBQSBXSVRIIFRIUkVFIERPVFMgQkVMT1c7Ozs7CiswNjdGO0FSQUJJQyBMRVRURVIgVEVIRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRBQSBXSVRIIEZPVVIgRE9UUyBBQk9WRTs7OzsKKzA2ODA7QVJBQklDIExFVFRFUiBCRUhFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgQkFBIFdJVEggRk9VUiBET1RTIEJFTE9XOzs7OworMDY4MTtBUkFCSUMgTEVUVEVSIEhBSCBXSVRIIEhBTVpBIEFCT1ZFO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBIQU1aQUggT04gSEFBOzs7OworMDY4MjtBUkFCSUMgTEVUVEVSIEhBSCBXSVRIIFRXTyBET1RTIFZFUlRJQ0FMIEFCT1ZFO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBIQUEgV0lUSCBUV08gRE9UUyBWRVJUSUNBTCBBQk9WRTs7OzsKKzA2ODM7QVJBQklDIExFVFRFUiBOWUVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBIQUEgV0lUSCBNSURETEUgVFdPIERPVFM7Ozs7CiswNjg0O0FSQUJJQyBMRVRURVIgRFlFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgSEFBIFdJVEggTUlERExFIFRXTyBET1RTIFZFUlRJQ0FMOzs7OworMDY4NTtBUkFCSUMgTEVUVEVSIEhBSCBXSVRIIFRIUkVFIERPVFMgQUJPVkU7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBQSBXSVRIIFRIUkVFIERPVFMgQUJPVkU7Ozs7CiswNjg2O0FSQUJJQyBMRVRURVIgVENIRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBQSBXSVRIIE1JRERMRSBUSFJFRSBET1RTIERPV05XQVJEOzs7OworMDY4NztBUkFCSUMgTEVUVEVSIFRDSEVIRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBQSBXSVRIIE1JRERMRSBGT1VSIERPVFM7Ozs7CiswNjg4O0FSQUJJQyBMRVRURVIgRERBTDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgREFMIFdJVEggU01BTEwgVEFIOzs7OworMDY4OTtBUkFCSUMgTEVUVEVSIERBTCBXSVRIIFJJTkc7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjhBO0FSQUJJQyBMRVRURVIgREFMIFdJVEggRE9UIEJFTE9XO0xvOzA7QUw7Ozs7O047Ozs7OworMDY4QjtBUkFCSUMgTEVUVEVSIERBTCBXSVRIIERPVCBCRUxPVyBBTkQgU01BTEwgVEFIO0xvOzA7QUw7Ozs7O047Ozs7OworMDY4QztBUkFCSUMgTEVUVEVSIERBSEFMO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBEQUwgV0lUSCBUV08gRE9UUyBBQk9WRTs7OzsKKzA2OEQ7QVJBQklDIExFVFRFUiBEREFIQUw7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIERBTCBXSVRIIFRXTyBET1RTIEJFTE9XOzs7OworMDY4RTtBUkFCSUMgTEVUVEVSIERVTDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgREFMIFdJVEggVEhSRUUgRE9UUyBBQk9WRTs7OzsKKzA2OEY7QVJBQklDIExFVFRFUiBEQUwgV0lUSCBUSFJFRSBET1RTIEFCT1ZFIERPV05XQVJEUztMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgREFMIFdJVEggVEhSRUUgRE9UUyBBQk9WRSBET1dOV0FSRDs7OzsKKzA2OTA7QVJBQklDIExFVFRFUiBEQUwgV0lUSCBGT1VSIERPVFMgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjkxO0FSQUJJQyBMRVRURVIgUlJFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgUkEgV0lUSCBTTUFMTCBUQUg7Ozs7CiswNjkyO0FSQUJJQyBMRVRURVIgUkVIIFdJVEggU01BTEwgVjtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgUkEgV0lUSCBTTUFMTCBWOzs7OworMDY5MztBUkFCSUMgTEVUVEVSIFJFSCBXSVRIIFJJTkc7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFJBIFdJVEggUklORzs7OzsKKzA2OTQ7QVJBQklDIExFVFRFUiBSRUggV0lUSCBET1QgQkVMT1c7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFJBIFdJVEggRE9UIEJFTE9XOzs7OworMDY5NTtBUkFCSUMgTEVUVEVSIFJFSCBXSVRIIFNNQUxMIFYgQkVMT1c7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFJBIFdJVEggU01BTEwgViBCRUxPVzs7OzsKKzA2OTY7QVJBQklDIExFVFRFUiBSRUggV0lUSCBET1QgQkVMT1cgQU5EIERPVCBBQk9WRTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgUkEgV0lUSCBET1QgQkVMT1cgQU5EIERPVCBBQk9WRTs7OzsKKzA2OTc7QVJBQklDIExFVFRFUiBSRUggV0lUSCBUV08gRE9UUyBBQk9WRTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgUkEgV0lUSCBUV08gRE9UUyBBQk9WRTs7OzsKKzA2OTg7QVJBQklDIExFVFRFUiBKRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFJBIFdJVEggVEhSRUUgRE9UUyBBQk9WRTs7OzsKKzA2OTk7QVJBQklDIExFVFRFUiBSRUggV0lUSCBGT1VSIERPVFMgQUJPVkU7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFJBIFdJVEggRk9VUiBET1RTIEFCT1ZFOzs7OworMDY5QTtBUkFCSUMgTEVUVEVSIFNFRU4gV0lUSCBET1QgQkVMT1cgQU5EIERPVCBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA2OUI7QVJBQklDIExFVFRFUiBTRUVOIFdJVEggVEhSRUUgRE9UUyBCRUxPVztMbzswO0FMOzs7OztOOzs7OzsKKzA2OUM7QVJBQklDIExFVFRFUiBTRUVOIFdJVEggVEhSRUUgRE9UUyBCRUxPVyBBTkQgVEhSRUUgRE9UUyBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA2OUQ7QVJBQklDIExFVFRFUiBTQUQgV0lUSCBUV08gRE9UUyBCRUxPVztMbzswO0FMOzs7OztOOzs7OzsKKzA2OUU7QVJBQklDIExFVFRFUiBTQUQgV0lUSCBUSFJFRSBET1RTIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDY5RjtBUkFCSUMgTEVUVEVSIFRBSCBXSVRIIFRIUkVFIERPVFMgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkEwO0FSQUJJQyBMRVRURVIgQUlOIFdJVEggVEhSRUUgRE9UUyBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA2QTE7QVJBQklDIExFVFRFUiBET1RMRVNTIEZFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgRE9UTEVTUyBGQTs7OzsKKzA2QTI7QVJBQklDIExFVFRFUiBGRUggV0lUSCBET1QgTU9WRUQgQkVMT1c7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEZBIFdJVEggRE9UIE1PVkVEIEJFTE9XOzs7OworMDZBMztBUkFCSUMgTEVUVEVSIEZFSCBXSVRIIERPVCBCRUxPVztMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgRkEgV0lUSCBET1QgQkVMT1c7Ozs7CiswNkE0O0FSQUJJQyBMRVRURVIgVkVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBGQSBXSVRIIFRIUkVFIERPVFMgQUJPVkU7Ozs7CiswNkE1O0FSQUJJQyBMRVRURVIgRkVIIFdJVEggVEhSRUUgRE9UUyBCRUxPVztMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgRkEgV0lUSCBUSFJFRSBET1RTIEJFTE9XOzs7OworMDZBNjtBUkFCSUMgTEVUVEVSIFBFSEVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBGQSBXSVRIIEZPVVIgRE9UUyBBQk9WRTs7OzsKKzA2QTc7QVJBQklDIExFVFRFUiBRQUYgV0lUSCBET1QgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkE4O0FSQUJJQyBMRVRURVIgUUFGIFdJVEggVEhSRUUgRE9UUyBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA2QTk7QVJBQklDIExFVFRFUiBLRUhFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgT1BFTiBDQUY7Ozs7CiswNkFBO0FSQUJJQyBMRVRURVIgU1dBU0ggS0FGO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBTV0FTSCBDQUY7Ozs7CiswNkFCO0FSQUJJQyBMRVRURVIgS0FGIFdJVEggUklORztMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgQ0FGIFdJVEggUklORzs7OzsKKzA2QUM7QVJBQklDIExFVFRFUiBLQUYgV0lUSCBET1QgQUJPVkU7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIENBRiBXSVRIIERPVCBBQk9WRTs7OzsKKzA2QUQ7QVJBQklDIExFVFRFUiBORztMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgQ0FGIFdJVEggVEhSRUUgRE9UUyBBQk9WRTs7OzsKKzA2QUU7QVJBQklDIExFVFRFUiBLQUYgV0lUSCBUSFJFRSBET1RTIEJFTE9XO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBDQUYgV0lUSCBUSFJFRSBET1RTIEJFTE9XOzs7OworMDZBRjtBUkFCSUMgTEVUVEVSIEdBRjtMbzswO0FMOzs7OztOOzsqOzs7CiswNkIwO0FSQUJJQyBMRVRURVIgR0FGIFdJVEggUklORztMbzswO0FMOzs7OztOOzs7OzsKKzA2QjE7QVJBQklDIExFVFRFUiBOR09FSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgR0FGIFdJVEggVFdPIERPVFMgQUJPVkU7Ozs7CiswNkIyO0FSQUJJQyBMRVRURVIgR0FGIFdJVEggVFdPIERPVFMgQkVMT1c7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkIzO0FSQUJJQyBMRVRURVIgR1VFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgR0FGIFdJVEggVFdPIERPVFMgVkVSVElDQUwgQkVMT1c7Ozs7CiswNkI0O0FSQUJJQyBMRVRURVIgR0FGIFdJVEggVEhSRUUgRE9UUyBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA2QjU7QVJBQklDIExFVFRFUiBMQU0gV0lUSCBTTUFMTCBWO0xvOzA7QUw7Ozs7O047Ozs7OworMDZCNjtBUkFCSUMgTEVUVEVSIExBTSBXSVRIIERPVCBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA2Qjc7QVJBQklDIExFVFRFUiBMQU0gV0lUSCBUSFJFRSBET1RTIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDZCODtBUkFCSUMgTEVUVEVSIExBTSBXSVRIIFRIUkVFIERPVFMgQkVMT1c7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkI5O0FSQUJJQyBMRVRURVIgTk9PTiBXSVRIIERPVCBCRUxPVztMbzswO0FMOzs7OztOOzs7OzsKKzA2QkE7QVJBQklDIExFVFRFUiBOT09OIEdIVU5OQTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgRE9UTEVTUyBOT09OOzs7OworMDZCQjtBUkFCSUMgTEVUVEVSIFJOT09OO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBET1RMRVNTIE5PT04gV0lUSCBTTUFMTCBUQUg7Ozs7CiswNkJDO0FSQUJJQyBMRVRURVIgTk9PTiBXSVRIIFJJTkc7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkJEO0FSQUJJQyBMRVRURVIgTk9PTiBXSVRIIFRIUkVFIERPVFMgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkJFO0FSQUJJQyBMRVRURVIgSEVIIERPQUNIQVNITUVFO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBLTk9UVEVEIEhBOzs7OworMDZCRjtBUkFCSUMgTEVUVEVSIFRDSEVIIFdJVEggRE9UIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDZDMDtBUkFCSUMgTEVUVEVSIEhFSCBXSVRIIFlFSCBBQk9WRTtMbzswO0FMOzA2RDUgMDY1NDs7OztOO0FSQUJJQyBMRVRURVIgSEFNWkFIIE9OIEhBOzs7OworMDZDMTtBUkFCSUMgTEVUVEVSIEhFSCBHT0FMO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBIQSBHT0FMOzs7OworMDZDMjtBUkFCSUMgTEVUVEVSIEhFSCBHT0FMIFdJVEggSEFNWkEgQUJPVkU7TG87MDtBTDswNkMxIDA2NTQ7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBTVpBSCBPTiBIQSBHT0FMOzs7OworMDZDMztBUkFCSUMgTEVUVEVSIFRFSCBNQVJCVVRBIEdPQUw7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRBQSBNQVJCVVRBSCBHT0FMOzs7OworMDZDNDtBUkFCSUMgTEVUVEVSIFdBVyBXSVRIIFJJTkc7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkM1O0FSQUJJQyBMRVRURVIgS0lSR0hJWiBPRTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgV0FXIFdJVEggQkFSOzs7OworMDZDNjtBUkFCSUMgTEVUVEVSIE9FO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBXQVcgV0lUSCBTTUFMTCBWOzs7OworMDZDNztBUkFCSUMgTEVUVEVSIFU7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFdBVyBXSVRIIERBTU1BSDs7OzsKKzA2Qzg7QVJBQklDIExFVFRFUiBZVTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgV0FXIFdJVEggQUxFRiBBQk9WRTs7OzsKKzA2Qzk7QVJBQklDIExFVFRFUiBLSVJHSElaIFlVO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBXQVcgV0lUSCBJTlZFUlRFRCBTTUFMTCBWOzs7OworMDZDQTtBUkFCSUMgTEVUVEVSIFdBVyBXSVRIIFRXTyBET1RTIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDZDQjtBUkFCSUMgTEVUVEVSIFZFO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBXQVcgV0lUSCBUSFJFRSBET1RTIEFCT1ZFOzs7OworMDZDQztBUkFCSUMgTEVUVEVSIEZBUlNJIFlFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgRE9UTEVTUyBZQTs7OzsKKzA2Q0Q7QVJBQklDIExFVFRFUiBZRUggV0lUSCBUQUlMO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBZQSBXSVRIIFRBSUw7Ozs7CiswNkNFO0FSQUJJQyBMRVRURVIgWUVIIFdJVEggU01BTEwgVjtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgWUEgV0lUSCBTTUFMTCBWOzs7OworMDZDRjtBUkFCSUMgTEVUVEVSIFdBVyBXSVRIIERPVCBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA2RDA7QVJBQklDIExFVFRFUiBFO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBZQSBXSVRIIFRXTyBET1RTIFZFUlRJQ0FMIEJFTE9XOyo7OzsKKzA2RDE7QVJBQklDIExFVFRFUiBZRUggV0lUSCBUSFJFRSBET1RTIEJFTE9XO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBZQSBXSVRIIFRIUkVFIERPVFMgQkVMT1c7Ozs7CiswNkQyO0FSQUJJQyBMRVRURVIgWUVIIEJBUlJFRTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgWUEgQkFSUkVFOzs7OworMDZEMztBUkFCSUMgTEVUVEVSIFlFSCBCQVJSRUUgV0lUSCBIQU1aQSBBQk9WRTtMbzswO0FMOzA2RDIgMDY1NDs7OztOO0FSQUJJQyBMRVRURVIgSEFNWkFIIE9OIFlBIEJBUlJFRTs7OzsKKzA2RDQ7QVJBQklDIEZVTEwgU1RPUDtQbzswO0FMOzs7OztOO0FSQUJJQyBQRVJJT0Q7Ozs7CiswNkQ1O0FSQUJJQyBMRVRURVIgQUU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkQ2O0FSQUJJQyBTTUFMTCBISUdIIExJR0FUVVJFIFNBRCBXSVRIIExBTSBXSVRIIEFMRUYgTUFLU1VSQTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2RDc7QVJBQklDIFNNQUxMIEhJR0ggTElHQVRVUkUgUUFGIFdJVEggTEFNIFdJVEggQUxFRiBNQUtTVVJBO01uOzIzMDtOU007Ozs7O047Ozs7OworMDZEODtBUkFCSUMgU01BTEwgSElHSCBNRUVNIElOSVRJQUwgRk9STTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2RDk7QVJBQklDIFNNQUxMIEhJR0ggTEFNIEFMRUY7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkRBO0FSQUJJQyBTTUFMTCBISUdIIEpFRU07TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkRCO0FSQUJJQyBTTUFMTCBISUdIIFRIUkVFIERPVFM7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkRDO0FSQUJJQyBTTUFMTCBISUdIIFNFRU47TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkREO0FSQUJJQyBFTkQgT0YgQVlBSDtDZjswO0FMOzs7OztOOzs7OzsKKzA2REU7QVJBQklDIFNUQVJUIE9GIFJVQiBFTCBISVpCO01lOzA7TlNNOzs7OztOOzs7OzsKKzA2REY7QVJBQklDIFNNQUxMIEhJR0ggUk9VTkRFRCBaRVJPO01uOzIzMDtOU007Ozs7O047Ozs7OworMDZFMDtBUkFCSUMgU01BTEwgSElHSCBVUFJJR0hUIFJFQ1RBTkdVTEFSIFpFUk87TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkUxO0FSQUJJQyBTTUFMTCBISUdIIERPVExFU1MgSEVBRCBPRiBLSEFIO01uOzIzMDtOU007Ozs7O047Ozs7OworMDZFMjtBUkFCSUMgU01BTEwgSElHSCBNRUVNIElTT0xBVEVEIEZPUk07TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkUzO0FSQUJJQyBTTUFMTCBMT1cgU0VFTjtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA2RTQ7QVJBQklDIFNNQUxMIEhJR0ggTUFEREE7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkU1O0FSQUJJQyBTTUFMTCBXQVc7TG07MDtBTDs7Ozs7Tjs7Ozs7CiswNkU2O0FSQUJJQyBTTUFMTCBZRUg7TG07MDtBTDs7Ozs7Tjs7Ozs7CiswNkU3O0FSQUJJQyBTTUFMTCBISUdIIFlFSDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2RTg7QVJBQklDIFNNQUxMIEhJR0ggTk9PTjtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2RTk7QVJBQklDIFBMQUNFIE9GIFNBSkRBSDtTbzswO09OOzs7OztOOzs7OzsKKzA2RUE7QVJBQklDIEVNUFRZIENFTlRSRSBMT1cgU1RPUDtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA2RUI7QVJBQklDIEVNUFRZIENFTlRSRSBISUdIIFNUT1A7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkVDO0FSQUJJQyBST1VOREVEIEhJR0ggU1RPUCBXSVRIIEZJTExFRCBDRU5UUkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkVEO0FSQUJJQyBTTUFMTCBMT1cgTUVFTTtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA2RjA7RVhURU5ERUQgQVJBQklDLUlORElDIERJR0lUIFpFUk87TmQ7MDtFTjs7MDswOzA7TjtFQVNURVJOIEFSQUJJQy1JTkRJQyBESUdJVCBaRVJPOzs7OworMDZGMTtFWFRFTkRFRCBBUkFCSUMtSU5ESUMgRElHSVQgT05FO05kOzA7RU47OzE7MTsxO047RUFTVEVSTiBBUkFCSUMtSU5ESUMgRElHSVQgT05FOzs7OworMDZGMjtFWFRFTkRFRCBBUkFCSUMtSU5ESUMgRElHSVQgVFdPO05kOzA7RU47OzI7MjsyO047RUFTVEVSTiBBUkFCSUMtSU5ESUMgRElHSVQgVFdPOzs7OworMDZGMztFWFRFTkRFRCBBUkFCSUMtSU5ESUMgRElHSVQgVEhSRUU7TmQ7MDtFTjs7MzszOzM7TjtFQVNURVJOIEFSQUJJQy1JTkRJQyBESUdJVCBUSFJFRTs7OzsKKzA2RjQ7RVhURU5ERUQgQVJBQklDLUlORElDIERJR0lUIEZPVVI7TmQ7MDtFTjs7NDs0OzQ7TjtFQVNURVJOIEFSQUJJQy1JTkRJQyBESUdJVCBGT1VSOzs7OworMDZGNTtFWFRFTkRFRCBBUkFCSUMtSU5ESUMgRElHSVQgRklWRTtOZDswO0VOOzs1OzU7NTtOO0VBU1RFUk4gQVJBQklDLUlORElDIERJR0lUIEZJVkU7Ozs7CiswNkY2O0VYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBTSVg7TmQ7MDtFTjs7Njs2OzY7TjtFQVNURVJOIEFSQUJJQy1JTkRJQyBESUdJVCBTSVg7Ozs7CiswNkY3O0VYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBTRVZFTjtOZDswO0VOOzs3Ozc7NztOO0VBU1RFUk4gQVJBQklDLUlORElDIERJR0lUIFNFVkVOOzs7OworMDZGODtFWFRFTkRFRCBBUkFCSUMtSU5ESUMgRElHSVQgRUlHSFQ7TmQ7MDtFTjs7ODs4Ozg7TjtFQVNURVJOIEFSQUJJQy1JTkRJQyBESUdJVCBFSUdIVDs7OzsKKzA2Rjk7RVhURU5ERUQgQVJBQklDLUlORElDIERJR0lUIE5JTkU7TmQ7MDtFTjs7OTs5Ozk7TjtFQVNURVJOIEFSQUJJQy1JTkRJQyBESUdJVCBOSU5FOzs7OworMDZGQTtBUkFCSUMgTEVUVEVSIFNIRUVOIFdJVEggRE9UIEJFTE9XO0xvOzA7QUw7Ozs7O047Ozs7OworMDZGQjtBUkFCSUMgTEVUVEVSIERBRCBXSVRIIERPVCBCRUxPVztMbzswO0FMOzs7OztOOzs7OzsKKzA2RkM7QVJBQklDIExFVFRFUiBHSEFJTiBXSVRIIERPVCBCRUxPVztMbzswO0FMOzs7OztOOzs7OzsKKzA2RkQ7QVJBQklDIFNJR04gU0lOREhJIEFNUEVSU0FORDtTbzswO0FMOzs7OztOOzs7OzsKKzA2RkU7QVJBQklDIFNJR04gU0lOREhJIFBPU1RQT1NJVElPTiBNRU47U287MDtBTDs7Ozs7Tjs7Ozs7CiswNzAwO1NZUklBQyBFTkQgT0YgUEFSQUdSQVBIO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwMTtTWVJJQUMgU1VQUkFMSU5FQVIgRlVMTCBTVE9QO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwMjtTWVJJQUMgU1VCTElORUFSIEZVTEwgU1RPUDtQbzswO0FMOzs7OztOOzs7OzsKKzA3MDM7U1lSSUFDIFNVUFJBTElORUFSIENPTE9OO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwNDtTWVJJQUMgU1VCTElORUFSIENPTE9OO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwNTtTWVJJQUMgSE9SSVpPTlRBTCBDT0xPTjtQbzswO0FMOzs7OztOOzs7OzsKKzA3MDY7U1lSSUFDIENPTE9OIFNLRVdFRCBMRUZUO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwNztTWVJJQUMgQ09MT04gU0tFV0VEIFJJR0hUO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwODtTWVJJQUMgU1VQUkFMSU5FQVIgQ09MT04gU0tFV0VEIExFRlQ7UG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzA5O1NZUklBQyBTVUJMSU5FQVIgQ09MT04gU0tFV0VEIFJJR0hUO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwQTtTWVJJQUMgQ09OVFJBQ1RJT047UG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzBCO1NZUklBQyBIQVJLTEVBTiBPQkVMVVM7UG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzBDO1NZUklBQyBIQVJLTEVBTiBNRVRPQkVMVVM7UG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzBEO1NZUklBQyBIQVJLTEVBTiBBU1RFUklTQ1VTO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwRjtTWVJJQUMgQUJCUkVWSUFUSU9OIE1BUks7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CiswNzEwO1NZUklBQyBMRVRURVIgQUxBUEg7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzExO1NZUklBQyBMRVRURVIgU1VQRVJTQ1JJUFQgQUxBUEg7TW47MzY7TlNNOzs7OztOOzs7OzsKKzA3MTI7U1lSSUFDIExFVFRFUiBCRVRIO0xvOzA7QUw7Ozs7O047Ozs7OworMDcxMztTWVJJQUMgTEVUVEVSIEdBTUFMO0xvOzA7QUw7Ozs7O047Ozs7OworMDcxNDtTWVJJQUMgTEVUVEVSIEdBTUFMIEdBUlNIVU5JO0xvOzA7QUw7Ozs7O047Ozs7OworMDcxNTtTWVJJQUMgTEVUVEVSIERBTEFUSDtMbzswO0FMOzs7OztOOzs7OzsKKzA3MTY7U1lSSUFDIExFVFRFUiBET1RMRVNTIERBTEFUSCBSSVNIO0xvOzA7QUw7Ozs7O047Ozs7OworMDcxNztTWVJJQUMgTEVUVEVSIEhFO0xvOzA7QUw7Ozs7O047Ozs7OworMDcxODtTWVJJQUMgTEVUVEVSIFdBVztMbzswO0FMOzs7OztOOzs7OzsKKzA3MTk7U1lSSUFDIExFVFRFUiBaQUlOO0xvOzA7QUw7Ozs7O047Ozs7OworMDcxQTtTWVJJQUMgTEVUVEVSIEhFVEg7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzFCO1NZUklBQyBMRVRURVIgVEVUSDtMbzswO0FMOzs7OztOOzs7OzsKKzA3MUM7U1lSSUFDIExFVFRFUiBURVRIIEdBUlNIVU5JO0xvOzA7QUw7Ozs7O047Ozs7OworMDcxRDtTWVJJQUMgTEVUVEVSIFlVREg7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzFFO1NZUklBQyBMRVRURVIgWVVESCBIRTtMbzswO0FMOzs7OztOOzs7OzsKKzA3MUY7U1lSSUFDIExFVFRFUiBLQVBIO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyMDtTWVJJQUMgTEVUVEVSIExBTUFESDtMbzswO0FMOzs7OztOOzs7OzsKKzA3MjE7U1lSSUFDIExFVFRFUiBNSU07TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzIyO1NZUklBQyBMRVRURVIgTlVOO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyMztTWVJJQUMgTEVUVEVSIFNFTUtBVEg7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzI0O1NZUklBQyBMRVRURVIgRklOQUwgU0VNS0FUSDtMbzswO0FMOzs7OztOOzs7OzsKKzA3MjU7U1lSSUFDIExFVFRFUiBFO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyNjtTWVJJQUMgTEVUVEVSIFBFO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyNztTWVJJQUMgTEVUVEVSIFJFVkVSU0VEIFBFO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyODtTWVJJQUMgTEVUVEVSIFNBREhFO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyOTtTWVJJQUMgTEVUVEVSIFFBUEg7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzJBO1NZUklBQyBMRVRURVIgUklTSDtMbzswO0FMOzs7OztOOzs7OzsKKzA3MkI7U1lSSUFDIExFVFRFUiBTSElOO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyQztTWVJJQUMgTEVUVEVSIFRBVztMbzswO0FMOzs7OztOOzs7OzsKKzA3MzA7U1lSSUFDIFBUSEFIQSBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3MzE7U1lSSUFDIFBUSEFIQSBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA3MzI7U1lSSUFDIFBUSEFIQSBET1RURUQ7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNzMzO1NZUklBQyBaUUFQSEEgQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNzM0O1NZUklBQyBaUUFQSEEgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNzM1O1NZUklBQyBaUUFQSEEgRE9UVEVEO01uOzIzMDtOU007Ozs7O047Ozs7OworMDczNjtTWVJJQUMgUkJBU0EgQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNzM3O1NZUklBQyBSQkFTQSBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA3Mzg7U1lSSUFDIERPVFRFRCBaTEFNQSBIT1JJWk9OVEFMO01uOzIyMDtOU007Ozs7O047Ozs7OworMDczOTtTWVJJQUMgRE9UVEVEIFpMQU1BIEFOR1VMQVI7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNzNBO1NZUklBQyBIQkFTQSBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3M0I7U1lSSUFDIEhCQVNBIEJFTE9XO01uOzIyMDtOU007Ozs7O047Ozs7OworMDczQztTWVJJQUMgSEJBU0EtRVNBU0EgRE9UVEVEO01uOzIyMDtOU007Ozs7O047Ozs7OworMDczRDtTWVJJQUMgRVNBU0EgQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNzNFO1NZUklBQyBFU0FTQSBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA3M0Y7U1lSSUFDIFJXQUhBO01uOzIzMDtOU007Ozs7O047Ozs7OworMDc0MDtTWVJJQUMgRkVNSU5JTkUgRE9UO01uOzIzMDtOU007Ozs7O047Ozs7OworMDc0MTtTWVJJQUMgUVVTSFNIQVlBO01uOzIzMDtOU007Ozs7O047Ozs7OworMDc0MjtTWVJJQUMgUlVLS0FLSEE7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNzQzO1NZUklBQyBUV08gVkVSVElDQUwgRE9UUyBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3NDQ7U1lSSUFDIFRXTyBWRVJUSUNBTCBET1RTIEJFTE9XO01uOzIyMDtOU007Ozs7O047Ozs7OworMDc0NTtTWVJJQUMgVEhSRUUgRE9UUyBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3NDY7U1lSSUFDIFRIUkVFIERPVFMgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNzQ3O1NZUklBQyBPQkxJUVVFIExJTkUgQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNzQ4O1NZUklBQyBPQkxJUVVFIExJTkUgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNzQ5O1NZUklBQyBNVVNJQztNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3NEE7U1lSSUFDIEJBUlJFS0g7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNzgwO1RIQUFOQSBMRVRURVIgSEFBO0xvOzA7QUw7Ozs7O047Ozs7OworMDc4MTtUSEFBTkEgTEVUVEVSIFNIQVZJWUFOSTtMbzswO0FMOzs7OztOOzs7OzsKKzA3ODI7VEhBQU5BIExFVFRFUiBOT09OVTtMbzswO0FMOzs7OztOOzs7OzsKKzA3ODM7VEhBQU5BIExFVFRFUiBSQUE7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzg0O1RIQUFOQSBMRVRURVIgQkFBO0xvOzA7QUw7Ozs7O047Ozs7OworMDc4NTtUSEFBTkEgTEVUVEVSIExIQVZJWUFOSTtMbzswO0FMOzs7OztOOzs7OzsKKzA3ODY7VEhBQU5BIExFVFRFUiBLQUFGVTtMbzswO0FMOzs7OztOOzs7OzsKKzA3ODc7VEhBQU5BIExFVFRFUiBBTElGVTtMbzswO0FMOzs7OztOOzs7OzsKKzA3ODg7VEhBQU5BIExFVFRFUiBWQUFWVTtMbzswO0FMOzs7OztOOzs7OzsKKzA3ODk7VEhBQU5BIExFVFRFUiBNRUVNVTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OEE7VEhBQU5BIExFVFRFUiBGQUFGVTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OEI7VEhBQU5BIExFVFRFUiBESEFBTFU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzhDO1RIQUFOQSBMRVRURVIgVEhBQTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OEQ7VEhBQU5BIExFVFRFUiBMQUFNVTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OEU7VEhBQU5BIExFVFRFUiBHQUFGVTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OEY7VEhBQU5BIExFVFRFUiBHTkFWSVlBTkk7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzkwO1RIQUFOQSBMRVRURVIgU0VFTlU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzkxO1RIQUFOQSBMRVRURVIgREFWSVlBTkk7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzkyO1RIQUFOQSBMRVRURVIgWkFWSVlBTkk7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzkzO1RIQUFOQSBMRVRURVIgVEFWSVlBTkk7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzk0O1RIQUFOQSBMRVRURVIgWUFBO0xvOzA7QUw7Ozs7O047Ozs7OworMDc5NTtUSEFBTkEgTEVUVEVSIFBBVklZQU5JO0xvOzA7QUw7Ozs7O047Ozs7OworMDc5NjtUSEFBTkEgTEVUVEVSIEpBVklZQU5JO0xvOzA7QUw7Ozs7O047Ozs7OworMDc5NztUSEFBTkEgTEVUVEVSIENIQVZJWUFOSTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OTg7VEhBQU5BIExFVFRFUiBUVEFBO0xvOzA7QUw7Ozs7O047Ozs7OworMDc5OTtUSEFBTkEgTEVUVEVSIEhIQUE7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzlBO1RIQUFOQSBMRVRURVIgS0hBQTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OUI7VEhBQU5BIExFVFRFUiBUSEFBTFU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzlDO1RIQUFOQSBMRVRURVIgWkFBO0xvOzA7QUw7Ozs7O047Ozs7OworMDc5RDtUSEFBTkEgTEVUVEVSIFNIRUVOVTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OUU7VEhBQU5BIExFVFRFUiBTQUFESFU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzlGO1RIQUFOQSBMRVRURVIgREFBREhVO0xvOzA7QUw7Ozs7O047Ozs7OworMDdBMDtUSEFBTkEgTEVUVEVSIFRPO0xvOzA7QUw7Ozs7O047Ozs7OworMDdBMTtUSEFBTkEgTEVUVEVSIFpPO0xvOzA7QUw7Ozs7O047Ozs7OworMDdBMjtUSEFBTkEgTEVUVEVSIEFJTlU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswN0EzO1RIQUFOQSBMRVRURVIgR0hBSU5VO0xvOzA7QUw7Ozs7O047Ozs7OworMDdBNDtUSEFBTkEgTEVUVEVSIFFBQUZVO0xvOzA7QUw7Ozs7O047Ozs7OworMDdBNTtUSEFBTkEgTEVUVEVSIFdBQVZVO0xvOzA7QUw7Ozs7O047Ozs7OworMDdBNjtUSEFBTkEgQUJBRklMSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswN0E3O1RIQUFOQSBBQUJBQUZJTEk7TW47MDtOU007Ozs7O047Ozs7OworMDdBODtUSEFBTkEgSUJJRklMSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswN0E5O1RIQUFOQSBFRUJFRUZJTEk7TW47MDtOU007Ozs7O047Ozs7OworMDdBQTtUSEFBTkEgVUJVRklMSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswN0FCO1RIQUFOQSBPT0JPT0ZJTEk7TW47MDtOU007Ozs7O047Ozs7OworMDdBQztUSEFBTkEgRUJFRklMSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswN0FEO1RIQUFOQSBFWUJFWUZJTEk7TW47MDtOU007Ozs7O047Ozs7OworMDdBRTtUSEFBTkEgT0JPRklMSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswN0FGO1RIQUFOQSBPQUJPQUZJTEk7TW47MDtOU007Ozs7O047Ozs7OworMDdCMDtUSEFBTkEgU1VLVU47TW47MDtOU007Ozs7O047Ozs7OworMDdCMTtUSEFBTkEgTEVUVEVSIE5BQTtMbzswO0FMOzs7OztOOzs7OzsKKzA5MDE7REVWQU5BR0FSSSBTSUdOIENBTkRSQUJJTkRVO01uOzA7TlNNOzs7OztOOzs7OzsKKzA5MDI7REVWQU5BR0FSSSBTSUdOIEFOVVNWQVJBO01uOzA7TlNNOzs7OztOOzs7OzsKKzA5MDM7REVWQU5BR0FSSSBTSUdOIFZJU0FSR0E7TWM7MDtMOzs7OztOOzs7OzsKKzA5MDU7REVWQU5BR0FSSSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMDkwNjtERVZBTkFHQVJJIExFVFRFUiBBQTtMbzswO0w7Ozs7O047Ozs7OworMDkwNztERVZBTkFHQVJJIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTA4O0RFVkFOQUdBUkkgTEVUVEVSIElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTA5O0RFVkFOQUdBUkkgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzA5MEE7REVWQU5BR0FSSSBMRVRURVIgVVU7TG87MDtMOzs7OztOOzs7OzsKKzA5MEI7REVWQU5BR0FSSSBMRVRURVIgVk9DQUxJQyBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTBDO0RFVkFOQUdBUkkgTEVUVEVSIFZPQ0FMSUMgTDtMbzswO0w7Ozs7O047Ozs7OworMDkwRDtERVZBTkFHQVJJIExFVFRFUiBDQU5EUkEgRTtMbzswO0w7Ozs7O047Ozs7OworMDkwRTtERVZBTkFHQVJJIExFVFRFUiBTSE9SVCBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTBGO0RFVkFOQUdBUkkgTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzA5MTA7REVWQU5BR0FSSSBMRVRURVIgQUk7TG87MDtMOzs7OztOOzs7OzsKKzA5MTE7REVWQU5BR0FSSSBMRVRURVIgQ0FORFJBIE87TG87MDtMOzs7OztOOzs7OzsKKzA5MTI7REVWQU5BR0FSSSBMRVRURVIgU0hPUlQgTztMbzswO0w7Ozs7O047Ozs7OworMDkxMztERVZBTkFHQVJJIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTE0O0RFVkFOQUdBUkkgTEVUVEVSIEFVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTE1O0RFVkFOQUdBUkkgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTE2O0RFVkFOQUdBUkkgTEVUVEVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMDkxNztERVZBTkFHQVJJIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMDkxODtERVZBTkFHQVJJIExFVFRFUiBHSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MTk7REVWQU5BR0FSSSBMRVRURVIgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTFBO0RFVkFOQUdBUkkgTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTFCO0RFVkFOQUdBUkkgTEVUVEVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMDkxQztERVZBTkFHQVJJIExFVFRFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworMDkxRDtERVZBTkFHQVJJIExFVFRFUiBKSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MUU7REVWQU5BR0FSSSBMRVRURVIgTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTFGO0RFVkFOQUdBUkkgTEVUVEVSIFRUQTtMbzswO0w7Ozs7O047Ozs7OworMDkyMDtERVZBTkFHQVJJIExFVFRFUiBUVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTIxO0RFVkFOQUdBUkkgTEVUVEVSIEREQTtMbzswO0w7Ozs7O047Ozs7OworMDkyMjtERVZBTkFHQVJJIExFVFRFUiBEREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTIzO0RFVkFOQUdBUkkgTEVUVEVSIE5OQTtMbzswO0w7Ozs7O047Ozs7OworMDkyNDtERVZBTkFHQVJJIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMDkyNTtERVZBTkFHQVJJIExFVFRFUiBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MjY7REVWQU5BR0FSSSBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzA5Mjc7REVWQU5BR0FSSSBMRVRURVIgREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTI4O0RFVkFOQUdBUkkgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTI5O0RFVkFOQUdBUkkgTEVUVEVSIE5OTkE7TG87MDtMOzA5MjggMDkzQzs7OztOOzs7OzsKKzA5MkE7REVWQU5BR0FSSSBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MkI7REVWQU5BR0FSSSBMRVRURVIgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTJDO0RFVkFOQUdBUkkgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTJEO0RFVkFOQUdBUkkgTEVUVEVSIEJIQTtMbzswO0w7Ozs7O047Ozs7OworMDkyRTtERVZBTkFHQVJJIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMDkyRjtERVZBTkFHQVJJIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMDkzMDtERVZBTkFHQVJJIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMDkzMTtERVZBTkFHQVJJIExFVFRFUiBSUkE7TG87MDtMOzA5MzAgMDkzQzs7OztOOzs7OzsKKzA5MzI7REVWQU5BR0FSSSBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MzM7REVWQU5BR0FSSSBMRVRURVIgTExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTM0O0RFVkFOQUdBUkkgTEVUVEVSIExMTEE7TG87MDtMOzA5MzMgMDkzQzs7OztOOzs7OzsKKzA5MzU7REVWQU5BR0FSSSBMRVRURVIgVkE7TG87MDtMOzs7OztOOzs7OzsKKzA5MzY7REVWQU5BR0FSSSBMRVRURVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTM3O0RFVkFOQUdBUkkgTEVUVEVSIFNTQTtMbzswO0w7Ozs7O047Ozs7OworMDkzODtERVZBTkFHQVJJIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMDkzOTtERVZBTkFHQVJJIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMDkzQztERVZBTkFHQVJJIFNJR04gTlVLVEE7TW47NztOU007Ozs7O047Ozs7OworMDkzRDtERVZBTkFHQVJJIFNJR04gQVZBR1JBSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5M0U7REVWQU5BR0FSSSBWT1dFTCBTSUdOIEFBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOTNGO0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOTQwO0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBJSTtNYzswO0w7Ozs7O047Ozs7OworMDk0MTtERVZBTkFHQVJJIFZPV0VMIFNJR04gVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOTQyO0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBVVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOTQzO0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBWT0NBTElDIFI7TW47MDtOU007Ozs7O047Ozs7OworMDk0NDtERVZBTkFHQVJJIFZPV0VMIFNJR04gVk9DQUxJQyBSUjtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOTQ1O0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBDQU5EUkEgRTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOTQ2O0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBTSE9SVCBFO01uOzA7TlNNOzs7OztOOzs7OzsKKzA5NDc7REVWQU5BR0FSSSBWT1dFTCBTSUdOIEU7TW47MDtOU007Ozs7O047Ozs7OworMDk0ODtERVZBTkFHQVJJIFZPV0VMIFNJR04gQUk7TW47MDtOU007Ozs7O047Ozs7OworMDk0OTtERVZBTkFHQVJJIFZPV0VMIFNJR04gQ0FORFJBIE87TWM7MDtMOzs7OztOOzs7OzsKKzA5NEE7REVWQU5BR0FSSSBWT1dFTCBTSUdOIFNIT1JUIE87TWM7MDtMOzs7OztOOzs7OzsKKzA5NEI7REVWQU5BR0FSSSBWT1dFTCBTSUdOIE87TWM7MDtMOzs7OztOOzs7OzsKKzA5NEM7REVWQU5BR0FSSSBWT1dFTCBTSUdOIEFVO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOTREO0RFVkFOQUdBUkkgU0lHTiBWSVJBTUE7TW47OTtOU007Ozs7O047Ozs7OworMDk1MDtERVZBTkFHQVJJIE9NO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTUxO0RFVkFOQUdBUkkgU1RSRVNTIFNJR04gVURBVFRBO01uOzIzMDtOU007Ozs7O047Ozs7OworMDk1MjtERVZBTkFHQVJJIFNUUkVTUyBTSUdOIEFOVURBVFRBO01uOzIyMDtOU007Ozs7O047Ozs7OworMDk1MztERVZBTkFHQVJJIEdSQVZFIEFDQ0VOVDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA5NTQ7REVWQU5BR0FSSSBBQ1VURSBBQ0NFTlQ7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswOTU4O0RFVkFOQUdBUkkgTEVUVEVSIFFBO0xvOzA7TDswOTE1IDA5M0M7Ozs7Tjs7Ozs7CiswOTU5O0RFVkFOQUdBUkkgTEVUVEVSIEtISEE7TG87MDtMOzA5MTYgMDkzQzs7OztOOzs7OzsKKzA5NUE7REVWQU5BR0FSSSBMRVRURVIgR0hIQTtMbzswO0w7MDkxNyAwOTNDOzs7O047Ozs7OworMDk1QjtERVZBTkFHQVJJIExFVFRFUiBaQTtMbzswO0w7MDkxQyAwOTNDOzs7O047Ozs7OworMDk1QztERVZBTkFHQVJJIExFVFRFUiBERERIQTtMbzswO0w7MDkyMSAwOTNDOzs7O047Ozs7OworMDk1RDtERVZBTkFHQVJJIExFVFRFUiBSSEE7TG87MDtMOzA5MjIgMDkzQzs7OztOOzs7OzsKKzA5NUU7REVWQU5BR0FSSSBMRVRURVIgRkE7TG87MDtMOzA5MkIgMDkzQzs7OztOOzs7OzsKKzA5NUY7REVWQU5BR0FSSSBMRVRURVIgWVlBO0xvOzA7TDswOTJGIDA5M0M7Ozs7Tjs7Ozs7CiswOTYwO0RFVkFOQUdBUkkgTEVUVEVSIFZPQ0FMSUMgUlI7TG87MDtMOzs7OztOOzs7OzsKKzA5NjE7REVWQU5BR0FSSSBMRVRURVIgVk9DQUxJQyBMTDtMbzswO0w7Ozs7O047Ozs7OworMDk2MjtERVZBTkFHQVJJIFZPV0VMIFNJR04gVk9DQUxJQyBMO01uOzA7TlNNOzs7OztOOzs7OzsKKzA5NjM7REVWQU5BR0FSSSBWT1dFTCBTSUdOIFZPQ0FMSUMgTEw7TW47MDtOU007Ozs7O047Ozs7OworMDk2NDtERVZBTkFHQVJJIERBTkRBO1BvOzA7TDs7Ozs7Tjs7Ozs7CiswOTY1O0RFVkFOQUdBUkkgRE9VQkxFIERBTkRBO1BvOzA7TDs7Ozs7Tjs7Ozs7CiswOTY2O0RFVkFOQUdBUkkgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMDk2NztERVZBTkFHQVJJIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMDk2ODtERVZBTkFHQVJJIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMDk2OTtERVZBTkFHQVJJIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswOTZBO0RFVkFOQUdBUkkgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMDk2QjtERVZBTkFHQVJJIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzA5NkM7REVWQU5BR0FSSSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzA5NkQ7REVWQU5BR0FSSSBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMDk2RTtERVZBTkFHQVJJIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswOTZGO0RFVkFOQUdBUkkgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMDk3MDtERVZBTkFHQVJJIEFCQlJFVklBVElPTiBTSUdOO1BvOzA7TDs7Ozs7Tjs7Ozs7CiswOTgxO0JFTkdBTEkgU0lHTiBDQU5EUkFCSU5EVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOTgyO0JFTkdBTEkgU0lHTiBBTlVTVkFSQTtNYzswO0w7Ozs7O047Ozs7OworMDk4MztCRU5HQUxJIFNJR04gVklTQVJHQTtNYzswO0w7Ozs7O047Ozs7OworMDk4NTtCRU5HQUxJIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTg2O0JFTkdBTEkgTEVUVEVSIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTg3O0JFTkdBTEkgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzA5ODg7QkVOR0FMSSBMRVRURVIgSUk7TG87MDtMOzs7OztOOzs7OzsKKzA5ODk7QkVOR0FMSSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMDk4QTtCRU5HQUxJIExFVFRFUiBVVTtMbzswO0w7Ozs7O047Ozs7OworMDk4QjtCRU5HQUxJIExFVFRFUiBWT0NBTElDIFI7TG87MDtMOzs7OztOOzs7OzsKKzA5OEM7QkVOR0FMSSBMRVRURVIgVk9DQUxJQyBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOThGO0JFTkdBTEkgTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzA5OTA7QkVOR0FMSSBMRVRURVIgQUk7TG87MDtMOzs7OztOOzs7OzsKKzA5OTM7QkVOR0FMSSBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMDk5NDtCRU5HQUxJIExFVFRFUiBBVTtMbzswO0w7Ozs7O047Ozs7OworMDk5NTtCRU5HQUxJIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMDk5NjtCRU5HQUxJIExFVFRFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5OTc7QkVOR0FMSSBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzA5OTg7QkVOR0FMSSBMRVRURVIgR0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTk5O0JFTkdBTEkgTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMDk5QTtCRU5HQUxJIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMDk5QjtCRU5HQUxJIExFVFRFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5OUM7QkVOR0FMSSBMRVRURVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzA5OUQ7QkVOR0FMSSBMRVRURVIgSkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTlFO0JFTkdBTEkgTEVUVEVSIE5ZQTtMbzswO0w7Ozs7O047Ozs7OworMDk5RjtCRU5HQUxJIExFVFRFUiBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzA5QTA7QkVOR0FMSSBMRVRURVIgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMDlBMTtCRU5HQUxJIExFVFRFUiBEREE7TG87MDtMOzs7OztOOzs7OzsKKzA5QTI7QkVOR0FMSSBMRVRURVIgRERIQTtMbzswO0w7Ozs7O047Ozs7OworMDlBMztCRU5HQUxJIExFVFRFUiBOTkE7TG87MDtMOzs7OztOOzs7OzsKKzA5QTQ7QkVOR0FMSSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzA5QTU7QkVOR0FMSSBMRVRURVIgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUE2O0JFTkdBTEkgTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUE3O0JFTkdBTEkgTEVUVEVSIERIQTtMbzswO0w7Ozs7O047Ozs7OworMDlBODtCRU5HQUxJIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMDlBQTtCRU5HQUxJIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMDlBQjtCRU5HQUxJIExFVFRFUiBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5QUM7QkVOR0FMSSBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzA5QUQ7QkVOR0FMSSBMRVRURVIgQkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUFFO0JFTkdBTEkgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUFGO0JFTkdBTEkgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUIwO0JFTkdBTEkgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUIyO0JFTkdBTEkgTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUI2O0JFTkdBTEkgTEVUVEVSIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMDlCNztCRU5HQUxJIExFVFRFUiBTU0E7TG87MDtMOzs7OztOOzs7OzsKKzA5Qjg7QkVOR0FMSSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzA5Qjk7QkVOR0FMSSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5QkM7QkVOR0FMSSBTSUdOIE5VS1RBO01uOzc7TlNNOzs7OztOOzs7OzsKKzA5QkU7QkVOR0FMSSBWT1dFTCBTSUdOIEFBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOUJGO0JFTkdBTEkgVk9XRUwgU0lHTiBJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOUMwO0JFTkdBTEkgVk9XRUwgU0lHTiBJSTtNYzswO0w7Ozs7O047Ozs7OworMDlDMTtCRU5HQUxJIFZPV0VMIFNJR04gVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOUMyO0JFTkdBTEkgVk9XRUwgU0lHTiBVVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOUMzO0JFTkdBTEkgVk9XRUwgU0lHTiBWT0NBTElDIFI7TW47MDtOU007Ozs7O047Ozs7OworMDlDNDtCRU5HQUxJIFZPV0VMIFNJR04gVk9DQUxJQyBSUjtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOUM3O0JFTkdBTEkgVk9XRUwgU0lHTiBFO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOUM4O0JFTkdBTEkgVk9XRUwgU0lHTiBBSTtNYzswO0w7Ozs7O047Ozs7OworMDlDQjtCRU5HQUxJIFZPV0VMIFNJR04gTztNYzswO0w7MDlDNyAwOUJFOzs7O047Ozs7OworMDlDQztCRU5HQUxJIFZPV0VMIFNJR04gQVU7TWM7MDtMOzA5QzcgMDlENzs7OztOOzs7OzsKKzA5Q0Q7QkVOR0FMSSBTSUdOIFZJUkFNQTtNbjs5O05TTTs7Ozs7Tjs7Ozs7CiswOUQ3O0JFTkdBTEkgQVUgTEVOR1RIIE1BUks7TWM7MDtMOzs7OztOOzs7OzsKKzA5REM7QkVOR0FMSSBMRVRURVIgUlJBO0xvOzA7TDswOUExIDA5QkM7Ozs7Tjs7Ozs7CiswOUREO0JFTkdBTEkgTEVUVEVSIFJIQTtMbzswO0w7MDlBMiAwOUJDOzs7O047Ozs7OworMDlERjtCRU5HQUxJIExFVFRFUiBZWUE7TG87MDtMOzA5QUYgMDlCQzs7OztOOzs7OzsKKzA5RTA7QkVOR0FMSSBMRVRURVIgVk9DQUxJQyBSUjtMbzswO0w7Ozs7O047Ozs7OworMDlFMTtCRU5HQUxJIExFVFRFUiBWT0NBTElDIExMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUUyO0JFTkdBTEkgVk9XRUwgU0lHTiBWT0NBTElDIEw7TW47MDtOU007Ozs7O047Ozs7OworMDlFMztCRU5HQUxJIFZPV0VMIFNJR04gVk9DQUxJQyBMTDtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOUU2O0JFTkdBTEkgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMDlFNztCRU5HQUxJIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMDlFODtCRU5HQUxJIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMDlFOTtCRU5HQUxJIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswOUVBO0JFTkdBTEkgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMDlFQjtCRU5HQUxJIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzA5RUM7QkVOR0FMSSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzA5RUQ7QkVOR0FMSSBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMDlFRTtCRU5HQUxJIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswOUVGO0JFTkdBTEkgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMDlGMDtCRU5HQUxJIExFVFRFUiBSQSBXSVRIIE1JRERMRSBESUFHT05BTDtMbzswO0w7Ozs7O047O0Fzc2FtZXNlOzs7CiswOUYxO0JFTkdBTEkgTEVUVEVSIFJBIFdJVEggTE9XRVIgRElBR09OQUw7TG87MDtMOzs7OztOO0JFTkdBTEkgTEVUVEVSIFZBIFdJVEggTE9XRVIgRElBR09OQUw7QXNzYW1lc2U7OzsKKzA5RjI7QkVOR0FMSSBSVVBFRSBNQVJLO1NjOzA7RVQ7Ozs7O047Ozs7OworMDlGMztCRU5HQUxJIFJVUEVFIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CiswOUY0O0JFTkdBTEkgQ1VSUkVOQ1kgTlVNRVJBVE9SIE9ORTtObzswO0w7Ozs7MTtOOzs7OzsKKzA5RjU7QkVOR0FMSSBDVVJSRU5DWSBOVU1FUkFUT1IgVFdPO05vOzA7TDs7OzsyO047Ozs7OworMDlGNjtCRU5HQUxJIENVUlJFTkNZIE5VTUVSQVRPUiBUSFJFRTtObzswO0w7Ozs7MztOOzs7OzsKKzA5Rjc7QkVOR0FMSSBDVVJSRU5DWSBOVU1FUkFUT1IgRk9VUjtObzswO0w7Ozs7NDtOOzs7OzsKKzA5Rjg7QkVOR0FMSSBDVVJSRU5DWSBOVU1FUkFUT1IgT05FIExFU1MgVEhBTiBUSEUgREVOT01JTkFUT1I7Tm87MDtMOzs7OztOOzs7OzsKKzA5Rjk7QkVOR0FMSSBDVVJSRU5DWSBERU5PTUlOQVRPUiBTSVhURUVOO05vOzA7TDs7OzsxNjtOOzs7OzsKKzA5RkE7QkVOR0FMSSBJU1NIQVI7U287MDtMOzs7OztOOzs7OzsKKzBBMDI7R1VSTVVLSEkgU0lHTiBCSU5ESTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQTA1O0dVUk1VS0hJIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTA2O0dVUk1VS0hJIExFVFRFUiBBQTtMbzswO0w7Ozs7O047Ozs7OworMEEwNztHVVJNVUtISSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMEEwODtHVVJNVUtISSBMRVRURVIgSUk7TG87MDtMOzs7OztOOzs7OzsKKzBBMDk7R1VSTVVLSEkgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzBBMEE7R1VSTVVLSEkgTEVUVEVSIFVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTBGO0dVUk1VS0hJIExFVFRFUiBFRTtMbzswO0w7Ozs7O047Ozs7OworMEExMDtHVVJNVUtISSBMRVRURVIgQUk7TG87MDtMOzs7OztOOzs7OzsKKzBBMTM7R1VSTVVLSEkgTEVUVEVSIE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTE0O0dVUk1VS0hJIExFVFRFUiBBVTtMbzswO0w7Ozs7O047Ozs7OworMEExNTtHVVJNVUtISSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzBBMTY7R1VSTVVLSEkgTEVUVEVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMEExNztHVVJNVUtISSBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzBBMTg7R1VSTVVLSEkgTEVUVEVSIEdIQTtMbzswO0w7Ozs7O047Ozs7OworMEExOTtHVVJNVUtISSBMRVRURVIgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTFBO0dVUk1VS0hJIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMEExQjtHVVJNVUtISSBMRVRURVIgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTFDO0dVUk1VS0hJIExFVFRFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworMEExRDtHVVJNVUtISSBMRVRURVIgSkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTFFO0dVUk1VS0hJIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzBBMUY7R1VSTVVLSEkgTEVUVEVSIFRUQTtMbzswO0w7Ozs7O047Ozs7OworMEEyMDtHVVJNVUtISSBMRVRURVIgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEEyMTtHVVJNVUtISSBMRVRURVIgRERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTIyO0dVUk1VS0hJIExFVFRFUiBEREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTIzO0dVUk1VS0hJIExFVFRFUiBOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBBMjQ7R1VSTVVLSEkgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTI1O0dVUk1VS0hJIExFVFRFUiBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMjY7R1VSTVVLSEkgTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTI3O0dVUk1VS0hJIExFVFRFUiBESEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMjg7R1VSTVVLSEkgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTJBO0dVUk1VS0hJIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMEEyQjtHVVJNVUtISSBMRVRURVIgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTJDO0dVUk1VS0hJIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMEEyRDtHVVJNVUtISSBMRVRURVIgQkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTJFO0dVUk1VS0hJIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMEEyRjtHVVJNVUtISSBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzBBMzA7R1VSTVVLSEkgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTMyO0dVUk1VS0hJIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMEEzMztHVVJNVUtISSBMRVRURVIgTExBO0xvOzA7TDswQTMyIDBBM0M7Ozs7Tjs7Ozs7CiswQTM1O0dVUk1VS0hJIExFVFRFUiBWQTtMbzswO0w7Ozs7O047Ozs7OworMEEzNjtHVVJNVUtISSBMRVRURVIgU0hBO0xvOzA7TDswQTM4IDBBM0M7Ozs7Tjs7Ozs7CiswQTM4O0dVUk1VS0hJIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMEEzOTtHVVJNVUtISSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBM0M7R1VSTVVLSEkgU0lHTiBOVUtUQTtNbjs3O05TTTs7Ozs7Tjs7Ozs7CiswQTNFO0dVUk1VS0hJIFZPV0VMIFNJR04gQUE7TWM7MDtMOzs7OztOOzs7OzsKKzBBM0Y7R1VSTVVLSEkgVk9XRUwgU0lHTiBJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQTQwO0dVUk1VS0hJIFZPV0VMIFNJR04gSUk7TWM7MDtMOzs7OztOOzs7OzsKKzBBNDE7R1VSTVVLSEkgVk9XRUwgU0lHTiBVO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBNDI7R1VSTVVLSEkgVk9XRUwgU0lHTiBVVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQTQ3O0dVUk1VS0hJIFZPV0VMIFNJR04gRUU7TW47MDtOU007Ozs7O047Ozs7OworMEE0ODtHVVJNVUtISSBWT1dFTCBTSUdOIEFJO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBNEI7R1VSTVVLSEkgVk9XRUwgU0lHTiBPTztNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQTRDO0dVUk1VS0hJIFZPV0VMIFNJR04gQVU7TW47MDtOU007Ozs7O047Ozs7OworMEE0RDtHVVJNVUtISSBTSUdOIFZJUkFNQTtNbjs5O05TTTs7Ozs7Tjs7Ozs7CiswQTU5O0dVUk1VS0hJIExFVFRFUiBLSEhBO0xvOzA7TDswQTE2IDBBM0M7Ozs7Tjs7Ozs7CiswQTVBO0dVUk1VS0hJIExFVFRFUiBHSEhBO0xvOzA7TDswQTE3IDBBM0M7Ozs7Tjs7Ozs7CiswQTVCO0dVUk1VS0hJIExFVFRFUiBaQTtMbzswO0w7MEExQyAwQTNDOzs7O047Ozs7OworMEE1QztHVVJNVUtISSBMRVRURVIgUlJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTVFO0dVUk1VS0hJIExFVFRFUiBGQTtMbzswO0w7MEEyQiAwQTNDOzs7O047Ozs7OworMEE2NjtHVVJNVUtISSBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CiswQTY3O0dVUk1VS0hJIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMEE2ODtHVVJNVUtISSBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzBBNjk7R1VSTVVLSEkgRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzBBNkE7R1VSTVVLSEkgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMEE2QjtHVVJNVUtISSBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CiswQTZDO0dVUk1VS0hJIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMEE2RDtHVVJNVUtISSBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMEE2RTtHVVJNVUtISSBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMEE2RjtHVVJNVUtISSBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CiswQTcwO0dVUk1VS0hJIFRJUFBJO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBNzE7R1VSTVVLSEkgQUREQUs7TW47MDtOU007Ozs7O047Ozs7OworMEE3MjtHVVJNVUtISSBJUkk7TG87MDtMOzs7OztOOzs7OzsKKzBBNzM7R1VSTVVLSEkgVVJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTc0O0dVUk1VS0hJIEVLIE9OS0FSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTgxO0dVSkFSQVRJIFNJR04gQ0FORFJBQklORFU7TW47MDtOU007Ozs7O047Ozs7OworMEE4MjtHVUpBUkFUSSBTSUdOIEFOVVNWQVJBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBODM7R1VKQVJBVEkgU0lHTiBWSVNBUkdBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQTg1O0dVSkFSQVRJIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTg2O0dVSkFSQVRJIExFVFRFUiBBQTtMbzswO0w7Ozs7O047Ozs7OworMEE4NztHVUpBUkFUSSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMEE4ODtHVUpBUkFUSSBMRVRURVIgSUk7TG87MDtMOzs7OztOOzs7OzsKKzBBODk7R1VKQVJBVEkgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzBBOEE7R1VKQVJBVEkgTEVUVEVSIFVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQThCO0dVSkFSQVRJIExFVFRFUiBWT0NBTElDIFI7TG87MDtMOzs7OztOOzs7OzsKKzBBOEQ7R1VKQVJBVEkgVk9XRUwgQ0FORFJBIEU7TG87MDtMOzs7OztOOzs7OzsKKzBBOEY7R1VKQVJBVEkgTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzBBOTA7R1VKQVJBVEkgTEVUVEVSIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTkxO0dVSkFSQVRJIFZPV0VMIENBTkRSQSBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTkzO0dVSkFSQVRJIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTk0O0dVSkFSQVRJIExFVFRFUiBBVTtMbzswO0w7Ozs7O047Ozs7OworMEE5NTtHVUpBUkFUSSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzBBOTY7R1VKQVJBVEkgTEVUVEVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMEE5NztHVUpBUkFUSSBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzBBOTg7R1VKQVJBVEkgTEVUVEVSIEdIQTtMbzswO0w7Ozs7O047Ozs7OworMEE5OTtHVUpBUkFUSSBMRVRURVIgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTlBO0dVSkFSQVRJIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMEE5QjtHVUpBUkFUSSBMRVRURVIgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTlDO0dVSkFSQVRJIExFVFRFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworMEE5RDtHVUpBUkFUSSBMRVRURVIgSkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTlFO0dVSkFSQVRJIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzBBOUY7R1VKQVJBVEkgTEVUVEVSIFRUQTtMbzswO0w7Ozs7O047Ozs7OworMEFBMDtHVUpBUkFUSSBMRVRURVIgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEFBMTtHVUpBUkFUSSBMRVRURVIgRERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUEyO0dVSkFSQVRJIExFVFRFUiBEREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUEzO0dVSkFSQVRJIExFVFRFUiBOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBBQTQ7R1VKQVJBVEkgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUE1O0dVSkFSQVRJIExFVFRFUiBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQTY7R1VKQVJBVEkgTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUE3O0dVSkFSQVRJIExFVFRFUiBESEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQTg7R1VKQVJBVEkgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUFBO0dVSkFSQVRJIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMEFBQjtHVUpBUkFUSSBMRVRURVIgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUFDO0dVSkFSQVRJIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMEFBRDtHVUpBUkFUSSBMRVRURVIgQkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUFFO0dVSkFSQVRJIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMEFBRjtHVUpBUkFUSSBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzBBQjA7R1VKQVJBVEkgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUIyO0dVSkFSQVRJIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMEFCMztHVUpBUkFUSSBMRVRURVIgTExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUI1O0dVSkFSQVRJIExFVFRFUiBWQTtMbzswO0w7Ozs7O047Ozs7OworMEFCNjtHVUpBUkFUSSBMRVRURVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUI3O0dVSkFSQVRJIExFVFRFUiBTU0E7TG87MDtMOzs7OztOOzs7OzsKKzBBQjg7R1VKQVJBVEkgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUI5O0dVSkFSQVRJIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMEFCQztHVUpBUkFUSSBTSUdOIE5VS1RBO01uOzc7TlNNOzs7OztOOzs7OzsKKzBBQkQ7R1VKQVJBVEkgU0lHTiBBVkFHUkFIQTtMbzswO0w7Ozs7O047Ozs7OworMEFCRTtHVUpBUkFUSSBWT1dFTCBTSUdOIEFBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQUJGO0dVSkFSQVRJIFZPV0VMIFNJR04gSTtNYzswO0w7Ozs7O047Ozs7OworMEFDMDtHVUpBUkFUSSBWT1dFTCBTSUdOIElJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQUMxO0dVSkFSQVRJIFZPV0VMIFNJR04gVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQUMyO0dVSkFSQVRJIFZPV0VMIFNJR04gVVU7TW47MDtOU007Ozs7O047Ozs7OworMEFDMztHVUpBUkFUSSBWT1dFTCBTSUdOIFZPQ0FMSUMgUjtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQUM0O0dVSkFSQVRJIFZPV0VMIFNJR04gVk9DQUxJQyBSUjtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQUM1O0dVSkFSQVRJIFZPV0VMIFNJR04gQ0FORFJBIEU7TW47MDtOU007Ozs7O047Ozs7OworMEFDNztHVUpBUkFUSSBWT1dFTCBTSUdOIEU7TW47MDtOU007Ozs7O047Ozs7OworMEFDODtHVUpBUkFUSSBWT1dFTCBTSUdOIEFJO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBQzk7R1VKQVJBVEkgVk9XRUwgU0lHTiBDQU5EUkEgTztNYzswO0w7Ozs7O047Ozs7OworMEFDQjtHVUpBUkFUSSBWT1dFTCBTSUdOIE87TWM7MDtMOzs7OztOOzs7OzsKKzBBQ0M7R1VKQVJBVEkgVk9XRUwgU0lHTiBBVTtNYzswO0w7Ozs7O047Ozs7OworMEFDRDtHVUpBUkFUSSBTSUdOIFZJUkFNQTtNbjs5O05TTTs7Ozs7Tjs7Ozs7CiswQUQwO0dVSkFSQVRJIE9NO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUUwO0dVSkFSQVRJIExFVFRFUiBWT0NBTElDIFJSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUU2O0dVSkFSQVRJIERJR0lUIFpFUk87TmQ7MDtMOzswOzA7MDtOOzs7OzsKKzBBRTc7R1VKQVJBVEkgRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CiswQUU4O0dVSkFSQVRJIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMEFFOTtHVUpBUkFUSSBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMEFFQTtHVUpBUkFUSSBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CiswQUVCO0dVSkFSQVRJIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzBBRUM7R1VKQVJBVEkgRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CiswQUVEO0dVSkFSQVRJIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CiswQUVFO0dVSkFSQVRJIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswQUVGO0dVSkFSQVRJIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzBCMDE7T1JJWUEgU0lHTiBDQU5EUkFCSU5EVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQjAyO09SSVlBIFNJR04gQU5VU1ZBUkE7TWM7MDtMOzs7OztOOzs7OzsKKzBCMDM7T1JJWUEgU0lHTiBWSVNBUkdBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQjA1O09SSVlBIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjA2O09SSVlBIExFVFRFUiBBQTtMbzswO0w7Ozs7O047Ozs7OworMEIwNztPUklZQSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMEIwODtPUklZQSBMRVRURVIgSUk7TG87MDtMOzs7OztOOzs7OzsKKzBCMDk7T1JJWUEgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzBCMEE7T1JJWUEgTEVUVEVSIFVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjBCO09SSVlBIExFVFRFUiBWT0NBTElDIFI7TG87MDtMOzs7OztOOzs7OzsKKzBCMEM7T1JJWUEgTEVUVEVSIFZPQ0FMSUMgTDtMbzswO0w7Ozs7O047Ozs7OworMEIwRjtPUklZQSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMEIxMDtPUklZQSBMRVRURVIgQUk7TG87MDtMOzs7OztOOzs7OzsKKzBCMTM7T1JJWUEgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzBCMTQ7T1JJWUEgTEVUVEVSIEFVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjE1O09SSVlBIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMEIxNjtPUklZQSBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjE3O09SSVlBIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMEIxODtPUklZQSBMRVRURVIgR0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjE5O09SSVlBIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzBCMUE7T1JJWUEgTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjFCO09SSVlBIExFVFRFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMUM7T1JJWUEgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjFEO09SSVlBIExFVFRFUiBKSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMUU7T1JJWUEgTEVUVEVSIE5ZQTtMbzswO0w7Ozs7O047Ozs7OworMEIxRjtPUklZQSBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjIwO09SSVlBIExFVFRFUiBUVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjIxO09SSVlBIExFVFRFUiBEREE7TG87MDtMOzs7OztOOzs7OzsKKzBCMjI7T1JJWUEgTEVUVEVSIERESEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMjM7T1JJWUEgTEVUVEVSIE5OQTtMbzswO0w7Ozs7O047Ozs7OworMEIyNDtPUklZQSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMjU7T1JJWUEgTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEIyNjtPUklZQSBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzBCMjc7T1JJWUEgTEVUVEVSIERIQTtMbzswO0w7Ozs7O047Ozs7OworMEIyODtPUklZQSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzBCMkE7T1JJWUEgTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjJCO09SSVlBIExFVFRFUiBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMkM7T1JJWUEgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjJEO09SSVlBIExFVFRFUiBCSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMkU7T1JJWUEgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjJGO09SSVlBIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMEIzMDtPUklZQSBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzBCMzI7T1JJWUEgTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjMzO09SSVlBIExFVFRFUiBMTEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMzY7T1JJWUEgTEVUVEVSIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMEIzNztPUklZQSBMRVRURVIgU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjM4O09SSVlBIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMEIzOTtPUklZQSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCM0M7T1JJWUEgU0lHTiBOVUtUQTtNbjs3O05TTTs7Ozs7Tjs7Ozs7CiswQjNEO09SSVlBIFNJR04gQVZBR1JBSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCM0U7T1JJWUEgVk9XRUwgU0lHTiBBQTtNYzswO0w7Ozs7O047Ozs7OworMEIzRjtPUklZQSBWT1dFTCBTSUdOIEk7TW47MDtOU007Ozs7O047Ozs7OworMEI0MDtPUklZQSBWT1dFTCBTSUdOIElJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQjQxO09SSVlBIFZPV0VMIFNJR04gVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQjQyO09SSVlBIFZPV0VMIFNJR04gVVU7TW47MDtOU007Ozs7O047Ozs7OworMEI0MztPUklZQSBWT1dFTCBTSUdOIFZPQ0FMSUMgUjtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQjQ3O09SSVlBIFZPV0VMIFNJR04gRTtNYzswO0w7Ozs7O047Ozs7OworMEI0ODtPUklZQSBWT1dFTCBTSUdOIEFJO01jOzA7TDswQjQ3IDBCNTY7Ozs7Tjs7Ozs7CiswQjRCO09SSVlBIFZPV0VMIFNJR04gTztNYzswO0w7MEI0NyAwQjNFOzs7O047Ozs7OworMEI0QztPUklZQSBWT1dFTCBTSUdOIEFVO01jOzA7TDswQjQ3IDBCNTc7Ozs7Tjs7Ozs7CiswQjREO09SSVlBIFNJR04gVklSQU1BO01uOzk7TlNNOzs7OztOOzs7OzsKKzBCNTY7T1JJWUEgQUkgTEVOR1RIIE1BUks7TW47MDtOU007Ozs7O047Ozs7OworMEI1NztPUklZQSBBVSBMRU5HVEggTUFSSztNYzswO0w7Ozs7O047Ozs7OworMEI1QztPUklZQSBMRVRURVIgUlJBO0xvOzA7TDswQjIxIDBCM0M7Ozs7Tjs7Ozs7CiswQjVEO09SSVlBIExFVFRFUiBSSEE7TG87MDtMOzBCMjIgMEIzQzs7OztOOzs7OzsKKzBCNUY7T1JJWUEgTEVUVEVSIFlZQTtMbzswO0w7Ozs7O047Ozs7OworMEI2MDtPUklZQSBMRVRURVIgVk9DQUxJQyBSUjtMbzswO0w7Ozs7O047Ozs7OworMEI2MTtPUklZQSBMRVRURVIgVk9DQUxJQyBMTDtMbzswO0w7Ozs7O047Ozs7OworMEI2NjtPUklZQSBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CiswQjY3O09SSVlBIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMEI2ODtPUklZQSBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzBCNjk7T1JJWUEgRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzBCNkE7T1JJWUEgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMEI2QjtPUklZQSBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CiswQjZDO09SSVlBIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMEI2RDtPUklZQSBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMEI2RTtPUklZQSBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMEI2RjtPUklZQSBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CiswQjcwO09SSVlBIElTU0hBUjtTbzswO0w7Ozs7O047Ozs7OworMEI4MjtUQU1JTCBTSUdOIEFOVVNWQVJBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBCODM7VEFNSUwgU0lHTiBWSVNBUkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjg1O1RBTUlMIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjg2O1RBTUlMIExFVFRFUiBBQTtMbzswO0w7Ozs7O047Ozs7OworMEI4NztUQU1JTCBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMEI4ODtUQU1JTCBMRVRURVIgSUk7TG87MDtMOzs7OztOOzs7OzsKKzBCODk7VEFNSUwgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzBCOEE7VEFNSUwgTEVUVEVSIFVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjhFO1RBTUlMIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjhGO1RBTUlMIExFVFRFUiBFRTtMbzswO0w7Ozs7O047Ozs7OworMEI5MDtUQU1JTCBMRVRURVIgQUk7TG87MDtMOzs7OztOOzs7OzsKKzBCOTI7VEFNSUwgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzBCOTM7VEFNSUwgTEVUVEVSIE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjk0O1RBTUlMIExFVFRFUiBBVTtMbzswO0w7MEI5MiAwQkQ3Ozs7O047Ozs7OworMEI5NTtUQU1JTCBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzBCOTk7VEFNSUwgTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMEI5QTtUQU1JTCBMRVRURVIgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzBCOUM7VEFNSUwgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjlFO1RBTUlMIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzBCOUY7VEFNSUwgTEVUVEVSIFRUQTtMbzswO0w7Ozs7O047Ozs7OworMEJBMztUQU1JTCBMRVRURVIgTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkE0O1RBTUlMIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMEJBODtUQU1JTCBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzBCQTk7VEFNSUwgTEVUVEVSIE5OTkE7TG87MDtMOzs7OztOOzs7OzsKKzBCQUE7VEFNSUwgTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkFFO1RBTUlMIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMEJBRjtUQU1JTCBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzBCQjA7VEFNSUwgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkIxO1RBTUlMIExFVFRFUiBSUkE7TG87MDtMOzs7OztOOzs7OzsKKzBCQjI7VEFNSUwgTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkIzO1RBTUlMIExFVFRFUiBMTEE7TG87MDtMOzs7OztOOzs7OzsKKzBCQjQ7VEFNSUwgTEVUVEVSIExMTEE7TG87MDtMOzs7OztOOzs7OzsKKzBCQjU7VEFNSUwgTEVUVEVSIFZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkI3O1RBTUlMIExFVFRFUiBTU0E7TG87MDtMOzs7OztOOzs7OzsKKzBCQjg7VEFNSUwgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkI5O1RBTUlMIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMEJCRTtUQU1JTCBWT1dFTCBTSUdOIEFBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQkJGO1RBTUlMIFZPV0VMIFNJR04gSTtNYzswO0w7Ozs7O047Ozs7OworMEJDMDtUQU1JTCBWT1dFTCBTSUdOIElJO01uOzA7TlNNOzs7OztOOzs7OzsKKzBCQzE7VEFNSUwgVk9XRUwgU0lHTiBVO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQkMyO1RBTUlMIFZPV0VMIFNJR04gVVU7TWM7MDtMOzs7OztOOzs7OzsKKzBCQzY7VEFNSUwgVk9XRUwgU0lHTiBFO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQkM3O1RBTUlMIFZPV0VMIFNJR04gRUU7TWM7MDtMOzs7OztOOzs7OzsKKzBCQzg7VEFNSUwgVk9XRUwgU0lHTiBBSTtNYzswO0w7Ozs7O047Ozs7OworMEJDQTtUQU1JTCBWT1dFTCBTSUdOIE87TWM7MDtMOzBCQzYgMEJCRTs7OztOOzs7OzsKKzBCQ0I7VEFNSUwgVk9XRUwgU0lHTiBPTztNYzswO0w7MEJDNyAwQkJFOzs7O047Ozs7OworMEJDQztUQU1JTCBWT1dFTCBTSUdOIEFVO01jOzA7TDswQkM2IDBCRDc7Ozs7Tjs7Ozs7CiswQkNEO1RBTUlMIFNJR04gVklSQU1BO01uOzk7TlNNOzs7OztOOzs7OzsKKzBCRDc7VEFNSUwgQVUgTEVOR1RIIE1BUks7TWM7MDtMOzs7OztOOzs7OzsKKzBCRTc7VEFNSUwgRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CiswQkU4O1RBTUlMIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMEJFOTtUQU1JTCBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMEJFQTtUQU1JTCBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CiswQkVCO1RBTUlMIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzBCRUM7VEFNSUwgRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CiswQkVEO1RBTUlMIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CiswQkVFO1RBTUlMIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswQkVGO1RBTUlMIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzBCRjA7VEFNSUwgTlVNQkVSIFRFTjtObzswO0w7Ozs7MTA7Tjs7Ozs7CiswQkYxO1RBTUlMIE5VTUJFUiBPTkUgSFVORFJFRDtObzswO0w7Ozs7MTAwO047Ozs7OworMEJGMjtUQU1JTCBOVU1CRVIgT05FIFRIT1VTQU5EO05vOzA7TDs7OzsxMDAwO047Ozs7OworMEMwMTtURUxVR1UgU0lHTiBDQU5EUkFCSU5EVTtNYzswO0w7Ozs7O047Ozs7OworMEMwMjtURUxVR1UgU0lHTiBBTlVTVkFSQTtNYzswO0w7Ozs7O047Ozs7OworMEMwMztURUxVR1UgU0lHTiBWSVNBUkdBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzA1O1RFTFVHVSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMEMwNjtURUxVR1UgTEVUVEVSIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzA3O1RFTFVHVSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMEMwODtURUxVR1UgTEVUVEVSIElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzA5O1RFTFVHVSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMEMwQTtURUxVR1UgTEVUVEVSIFVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzBCO1RFTFVHVSBMRVRURVIgVk9DQUxJQyBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzBDO1RFTFVHVSBMRVRURVIgVk9DQUxJQyBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzBFO1RFTFVHVSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMEMwRjtURUxVR1UgTEVUVEVSIEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzEwO1RFTFVHVSBMRVRURVIgQUk7TG87MDtMOzs7OztOOzs7OzsKKzBDMTI7VEVMVUdVIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzEzO1RFTFVHVSBMRVRURVIgT087TG87MDtMOzs7OztOOzs7OzsKKzBDMTQ7VEVMVUdVIExFVFRFUiBBVTtMbzswO0w7Ozs7O047Ozs7OworMEMxNTtURUxVR1UgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzE2O1RFTFVHVSBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzE3O1RFTFVHVSBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzBDMTg7VEVMVUdVIExFVFRFUiBHSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMTk7VEVMVUdVIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzBDMUE7VEVMVUdVIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMEMxQjtURUxVR1UgTEVUVEVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMEMxQztURUxVR1UgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzFEO1RFTFVHVSBMRVRURVIgSkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzFFO1RFTFVHVSBMRVRURVIgTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzFGO1RFTFVHVSBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzIwO1RFTFVHVSBMRVRURVIgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEMyMTtURUxVR1UgTEVUVEVSIEREQTtMbzswO0w7Ozs7O047Ozs7OworMEMyMjtURUxVR1UgTEVUVEVSIERESEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMjM7VEVMVUdVIExFVFRFUiBOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBDMjQ7VEVMVUdVIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMEMyNTtURUxVR1UgTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEMyNjtURUxVR1UgTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzI3O1RFTFVHVSBMRVRURVIgREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzI4O1RFTFVHVSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzBDMkE7VEVMVUdVIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMEMyQjtURUxVR1UgTEVUVEVSIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMEMyQztURUxVR1UgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzJEO1RFTFVHVSBMRVRURVIgQkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzJFO1RFTFVHVSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzBDMkY7VEVMVUdVIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMEMzMDtURUxVR1UgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzMxO1RFTFVHVSBMRVRURVIgUlJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzMyO1RFTFVHVSBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMzM7VEVMVUdVIExFVFRFUiBMTEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMzU7VEVMVUdVIExFVFRFUiBWQTtMbzswO0w7Ozs7O047Ozs7OworMEMzNjtURUxVR1UgTEVUVEVSIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMEMzNztURUxVR1UgTEVUVEVSIFNTQTtMbzswO0w7Ozs7O047Ozs7OworMEMzODtURUxVR1UgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzM5O1RFTFVHVSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDM0U7VEVMVUdVIFZPV0VMIFNJR04gQUE7TW47MDtOU007Ozs7O047Ozs7OworMEMzRjtURUxVR1UgVk9XRUwgU0lHTiBJO01uOzA7TlNNOzs7OztOOzs7OzsKKzBDNDA7VEVMVUdVIFZPV0VMIFNJR04gSUk7TW47MDtOU007Ozs7O047Ozs7OworMEM0MTtURUxVR1UgVk9XRUwgU0lHTiBVO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzQyO1RFTFVHVSBWT1dFTCBTSUdOIFVVO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzQzO1RFTFVHVSBWT1dFTCBTSUdOIFZPQ0FMSUMgUjtNYzswO0w7Ozs7O047Ozs7OworMEM0NDtURUxVR1UgVk9XRUwgU0lHTiBWT0NBTElDIFJSO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzQ2O1RFTFVHVSBWT1dFTCBTSUdOIEU7TW47MDtOU007Ozs7O047Ozs7OworMEM0NztURUxVR1UgVk9XRUwgU0lHTiBFRTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQzQ4O1RFTFVHVSBWT1dFTCBTSUdOIEFJO01uOzA7TlNNOzBDNDYgMEM1Njs7OztOOzs7OzsKKzBDNEE7VEVMVUdVIFZPV0VMIFNJR04gTztNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQzRCO1RFTFVHVSBWT1dFTCBTSUdOIE9PO01uOzA7TlNNOzs7OztOOzs7OzsKKzBDNEM7VEVMVUdVIFZPV0VMIFNJR04gQVU7TW47MDtOU007Ozs7O047Ozs7OworMEM0RDtURUxVR1UgU0lHTiBWSVJBTUE7TW47OTtOU007Ozs7O047Ozs7OworMEM1NTtURUxVR1UgTEVOR1RIIE1BUks7TW47ODQ7TlNNOzs7OztOOzs7OzsKKzBDNTY7VEVMVUdVIEFJIExFTkdUSCBNQVJLO01uOzkxO05TTTs7Ozs7Tjs7Ozs7CiswQzYwO1RFTFVHVSBMRVRURVIgVk9DQUxJQyBSUjtMbzswO0w7Ozs7O047Ozs7OworMEM2MTtURUxVR1UgTEVUVEVSIFZPQ0FMSUMgTEw7TG87MDtMOzs7OztOOzs7OzsKKzBDNjY7VEVMVUdVIERJR0lUIFpFUk87TmQ7MDtMOzswOzA7MDtOOzs7OzsKKzBDNjc7VEVMVUdVIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMEM2ODtURUxVR1UgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswQzY5O1RFTFVHVSBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMEM2QTtURUxVR1UgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMEM2QjtURUxVR1UgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMEM2QztURUxVR1UgRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CiswQzZEO1RFTFVHVSBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMEM2RTtURUxVR1UgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzBDNkY7VEVMVUdVIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzBDODI7S0FOTkFEQSBTSUdOIEFOVVNWQVJBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzgzO0tBTk5BREEgU0lHTiBWSVNBUkdBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzg1O0tBTk5BREEgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzBDODY7S0FOTkFEQSBMRVRURVIgQUE7TG87MDtMOzs7OztOOzs7OzsKKzBDODc7S0FOTkFEQSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMEM4ODtLQU5OQURBIExFVFRFUiBJSTtMbzswO0w7Ozs7O047Ozs7OworMEM4OTtLQU5OQURBIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzhBO0tBTk5BREEgTEVUVEVSIFVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzhCO0tBTk5BREEgTEVUVEVSIFZPQ0FMSUMgUjtMbzswO0w7Ozs7O047Ozs7OworMEM4QztLQU5OQURBIExFVFRFUiBWT0NBTElDIEw7TG87MDtMOzs7OztOOzs7OzsKKzBDOEU7S0FOTkFEQSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMEM4RjtLQU5OQURBIExFVFRFUiBFRTtMbzswO0w7Ozs7O047Ozs7OworMEM5MDtLQU5OQURBIExFVFRFUiBBSTtMbzswO0w7Ozs7O047Ozs7OworMEM5MjtLQU5OQURBIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzkzO0tBTk5BREEgTEVUVEVSIE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzk0O0tBTk5BREEgTEVUVEVSIEFVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzk1O0tBTk5BREEgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzk2O0tBTk5BREEgTEVUVEVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMEM5NztLQU5OQURBIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMEM5ODtLQU5OQURBIExFVFRFUiBHSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDOTk7S0FOTkFEQSBMRVRURVIgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzlBO0tBTk5BREEgTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzlCO0tBTk5BREEgTEVUVEVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMEM5QztLQU5OQURBIExFVFRFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworMEM5RDtLQU5OQURBIExFVFRFUiBKSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDOUU7S0FOTkFEQSBMRVRURVIgTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzlGO0tBTk5BREEgTEVUVEVSIFRUQTtMbzswO0w7Ozs7O047Ozs7OworMENBMDtLQU5OQURBIExFVFRFUiBUVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0ExO0tBTk5BREEgTEVUVEVSIEREQTtMbzswO0w7Ozs7O047Ozs7OworMENBMjtLQU5OQURBIExFVFRFUiBEREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0EzO0tBTk5BREEgTEVUVEVSIE5OQTtMbzswO0w7Ozs7O047Ozs7OworMENBNDtLQU5OQURBIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMENBNTtLQU5OQURBIExFVFRFUiBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQTY7S0FOTkFEQSBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzBDQTc7S0FOTkFEQSBMRVRURVIgREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0E4O0tBTk5BREEgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0FBO0tBTk5BREEgTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0FCO0tBTk5BREEgTEVUVEVSIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMENBQztLQU5OQURBIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMENBRDtLQU5OQURBIExFVFRFUiBCSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQUU7S0FOTkFEQSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzBDQUY7S0FOTkFEQSBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzBDQjA7S0FOTkFEQSBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzBDQjE7S0FOTkFEQSBMRVRURVIgUlJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0IyO0tBTk5BREEgTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0IzO0tBTk5BREEgTEVUVEVSIExMQTtMbzswO0w7Ozs7O047Ozs7OworMENCNTtLQU5OQURBIExFVFRFUiBWQTtMbzswO0w7Ozs7O047Ozs7OworMENCNjtLQU5OQURBIExFVFRFUiBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQjc7S0FOTkFEQSBMRVRURVIgU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0I4O0tBTk5BREEgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0I5O0tBTk5BREEgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0JFO0tBTk5BREEgVk9XRUwgU0lHTiBBQTtNYzswO0w7Ozs7O047Ozs7OworMENCRjtLQU5OQURBIFZPV0VMIFNJR04gSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQ0MwO0tBTk5BREEgVk9XRUwgU0lHTiBJSTtNYzswO0w7MENCRiAwQ0Q1Ozs7O047Ozs7OworMENDMTtLQU5OQURBIFZPV0VMIFNJR04gVTtNYzswO0w7Ozs7O047Ozs7OworMENDMjtLQU5OQURBIFZPV0VMIFNJR04gVVU7TWM7MDtMOzs7OztOOzs7OzsKKzBDQzM7S0FOTkFEQSBWT1dFTCBTSUdOIFZPQ0FMSUMgUjtNYzswO0w7Ozs7O047Ozs7OworMENDNDtLQU5OQURBIFZPV0VMIFNJR04gVk9DQUxJQyBSUjtNYzswO0w7Ozs7O047Ozs7OworMENDNjtLQU5OQURBIFZPV0VMIFNJR04gRTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQ0M3O0tBTk5BREEgVk9XRUwgU0lHTiBFRTtNYzswO0w7MENDNiAwQ0Q1Ozs7O047Ozs7OworMENDODtLQU5OQURBIFZPV0VMIFNJR04gQUk7TWM7MDtMOzBDQzYgMENENjs7OztOOzs7OzsKKzBDQ0E7S0FOTkFEQSBWT1dFTCBTSUdOIE87TWM7MDtMOzBDQzYgMENDMjs7OztOOzs7OzsKKzBDQ0I7S0FOTkFEQSBWT1dFTCBTSUdOIE9PO01jOzA7TDswQ0NBIDBDRDU7Ozs7Tjs7Ozs7CiswQ0NDO0tBTk5BREEgVk9XRUwgU0lHTiBBVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQ0NEO0tBTk5BREEgU0lHTiBWSVJBTUE7TW47OTtOU007Ozs7O047Ozs7OworMENENTtLQU5OQURBIExFTkdUSCBNQVJLO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQ0Q2O0tBTk5BREEgQUkgTEVOR1RIIE1BUks7TWM7MDtMOzs7OztOOzs7OzsKKzBDREU7S0FOTkFEQSBMRVRURVIgRkE7TG87MDtMOzs7OztOOzs7OzsKKzBDRTA7S0FOTkFEQSBMRVRURVIgVk9DQUxJQyBSUjtMbzswO0w7Ozs7O047Ozs7OworMENFMTtLQU5OQURBIExFVFRFUiBWT0NBTElDIExMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0U2O0tBTk5BREEgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMENFNztLQU5OQURBIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMENFODtLQU5OQURBIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMENFOTtLQU5OQURBIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswQ0VBO0tBTk5BREEgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMENFQjtLQU5OQURBIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzBDRUM7S0FOTkFEQSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzBDRUQ7S0FOTkFEQSBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMENFRTtLQU5OQURBIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswQ0VGO0tBTk5BREEgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMEQwMjtNQUxBWUFMQU0gU0lHTiBBTlVTVkFSQTtNYzswO0w7Ozs7O047Ozs7OworMEQwMztNQUxBWUFMQU0gU0lHTiBWSVNBUkdBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswRDA1O01BTEFZQUxBTSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMEQwNjtNQUxBWUFMQU0gTEVUVEVSIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDA3O01BTEFZQUxBTSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMEQwODtNQUxBWUFMQU0gTEVUVEVSIElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDA5O01BTEFZQUxBTSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMEQwQTtNQUxBWUFMQU0gTEVUVEVSIFVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDBCO01BTEFZQUxBTSBMRVRURVIgVk9DQUxJQyBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDBDO01BTEFZQUxBTSBMRVRURVIgVk9DQUxJQyBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDBFO01BTEFZQUxBTSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMEQwRjtNQUxBWUFMQU0gTEVUVEVSIEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDEwO01BTEFZQUxBTSBMRVRURVIgQUk7TG87MDtMOzs7OztOOzs7OzsKKzBEMTI7TUFMQVlBTEFNIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDEzO01BTEFZQUxBTSBMRVRURVIgT087TG87MDtMOzs7OztOOzs7OzsKKzBEMTQ7TUFMQVlBTEFNIExFVFRFUiBBVTtMbzswO0w7Ozs7O047Ozs7OworMEQxNTtNQUxBWUFMQU0gTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDE2O01BTEFZQUxBTSBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDE3O01BTEFZQUxBTSBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzBEMTg7TUFMQVlBTEFNIExFVFRFUiBHSEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMTk7TUFMQVlBTEFNIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzBEMUE7TUFMQVlBTEFNIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMEQxQjtNQUxBWUFMQU0gTEVUVEVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMEQxQztNQUxBWUFMQU0gTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDFEO01BTEFZQUxBTSBMRVRURVIgSkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDFFO01BTEFZQUxBTSBMRVRURVIgTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDFGO01BTEFZQUxBTSBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDIwO01BTEFZQUxBTSBMRVRURVIgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEQyMTtNQUxBWUFMQU0gTEVUVEVSIEREQTtMbzswO0w7Ozs7O047Ozs7OworMEQyMjtNQUxBWUFMQU0gTEVUVEVSIERESEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMjM7TUFMQVlBTEFNIExFVFRFUiBOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEMjQ7TUFMQVlBTEFNIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMEQyNTtNQUxBWUFMQU0gTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEQyNjtNQUxBWUFMQU0gTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDI3O01BTEFZQUxBTSBMRVRURVIgREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDI4O01BTEFZQUxBTSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEMkE7TUFMQVlBTEFNIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMEQyQjtNQUxBWUFMQU0gTEVUVEVSIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMEQyQztNQUxBWUFMQU0gTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDJEO01BTEFZQUxBTSBMRVRURVIgQkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDJFO01BTEFZQUxBTSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzBEMkY7TUFMQVlBTEFNIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMEQzMDtNQUxBWUFMQU0gTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDMxO01BTEFZQUxBTSBMRVRURVIgUlJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDMyO01BTEFZQUxBTSBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMzM7TUFMQVlBTEFNIExFVFRFUiBMTEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMzQ7TUFMQVlBTEFNIExFVFRFUiBMTExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDM1O01BTEFZQUxBTSBMRVRURVIgVkE7TG87MDtMOzs7OztOOzs7OzsKKzBEMzY7TUFMQVlBTEFNIExFVFRFUiBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMzc7TUFMQVlBTEFNIExFVFRFUiBTU0E7TG87MDtMOzs7OztOOzs7OzsKKzBEMzg7TUFMQVlBTEFNIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMEQzOTtNQUxBWUFMQU0gTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDNFO01BTEFZQUxBTSBWT1dFTCBTSUdOIEFBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswRDNGO01BTEFZQUxBTSBWT1dFTCBTSUdOIEk7TWM7MDtMOzs7OztOOzs7OzsKKzBENDA7TUFMQVlBTEFNIFZPV0VMIFNJR04gSUk7TWM7MDtMOzs7OztOOzs7OzsKKzBENDE7TUFMQVlBTEFNIFZPV0VMIFNJR04gVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRDQyO01BTEFZQUxBTSBWT1dFTCBTSUdOIFVVO01uOzA7TlNNOzs7OztOOzs7OzsKKzBENDM7TUFMQVlBTEFNIFZPV0VMIFNJR04gVk9DQUxJQyBSO01uOzA7TlNNOzs7OztOOzs7OzsKKzBENDY7TUFMQVlBTEFNIFZPV0VMIFNJR04gRTtNYzswO0w7Ozs7O047Ozs7OworMEQ0NztNQUxBWUFMQU0gVk9XRUwgU0lHTiBFRTtNYzswO0w7Ozs7O047Ozs7OworMEQ0ODtNQUxBWUFMQU0gVk9XRUwgU0lHTiBBSTtNYzswO0w7Ozs7O047Ozs7OworMEQ0QTtNQUxBWUFMQU0gVk9XRUwgU0lHTiBPO01jOzA7TDswRDQ2IDBEM0U7Ozs7Tjs7Ozs7CiswRDRCO01BTEFZQUxBTSBWT1dFTCBTSUdOIE9PO01jOzA7TDswRDQ3IDBEM0U7Ozs7Tjs7Ozs7CiswRDRDO01BTEFZQUxBTSBWT1dFTCBTSUdOIEFVO01jOzA7TDswRDQ2IDBENTc7Ozs7Tjs7Ozs7CiswRDREO01BTEFZQUxBTSBTSUdOIFZJUkFNQTtNbjs5O05TTTs7Ozs7Tjs7Ozs7CiswRDU3O01BTEFZQUxBTSBBVSBMRU5HVEggTUFSSztNYzswO0w7Ozs7O047Ozs7OworMEQ2MDtNQUxBWUFMQU0gTEVUVEVSIFZPQ0FMSUMgUlI7TG87MDtMOzs7OztOOzs7OzsKKzBENjE7TUFMQVlBTEFNIExFVFRFUiBWT0NBTElDIExMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDY2O01BTEFZQUxBTSBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CiswRDY3O01BTEFZQUxBTSBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzBENjg7TUFMQVlBTEFNIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMEQ2OTtNQUxBWUFMQU0gRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzBENkE7TUFMQVlBTEFNIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzBENkI7TUFMQVlBTEFNIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzBENkM7TUFMQVlBTEFNIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMEQ2RDtNQUxBWUFMQU0gRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzBENkU7TUFMQVlBTEFNIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswRDZGO01BTEFZQUxBTSBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CiswRDgyO1NJTkhBTEEgU0lHTiBBTlVTVkFSQVlBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswRDgzO1NJTkhBTEEgU0lHTiBWSVNBUkdBWUE7TWM7MDtMOzs7OztOOzs7OzsKKzBEODU7U0lOSEFMQSBMRVRURVIgQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDg2O1NJTkhBTEEgTEVUVEVSIEFBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEODc7U0lOSEFMQSBMRVRURVIgQUVZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ4ODtTSU5IQUxBIExFVFRFUiBBRUVZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ4OTtTSU5IQUxBIExFVFRFUiBJWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOEE7U0lOSEFMQSBMRVRURVIgSUlZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ4QjtTSU5IQUxBIExFVFRFUiBVWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOEM7U0lOSEFMQSBMRVRURVIgVVVZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ4RDtTSU5IQUxBIExFVFRFUiBJUlVZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ4RTtTSU5IQUxBIExFVFRFUiBJUlVVWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOEY7U0lOSEFMQSBMRVRURVIgSUxVWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOTA7U0lOSEFMQSBMRVRURVIgSUxVVVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDkxO1NJTkhBTEEgTEVUVEVSIEVZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ5MjtTSU5IQUxBIExFVFRFUiBFRVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDkzO1NJTkhBTEEgTEVUVEVSIEFJWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOTQ7U0lOSEFMQSBMRVRURVIgT1lBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDk1O1NJTkhBTEEgTEVUVEVSIE9PWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOTY7U0lOSEFMQSBMRVRURVIgQVVZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ5QTtTSU5IQUxBIExFVFRFUiBBTFBBUFJBQU5BIEtBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOUI7U0lOSEFMQSBMRVRURVIgTUFIQUFQUkFBTkEgS0FZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ5QztTSU5IQUxBIExFVFRFUiBBTFBBUFJBQU5BIEdBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOUQ7U0lOSEFMQSBMRVRURVIgTUFIQUFQUkFBTkEgR0FZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ5RTtTSU5IQUxBIExFVFRFUiBLQU5UQUpBIE5BQVNJS1lBWUE7TG87MDtMOzs7OztOOzs7OzsKKzBEOUY7U0lOSEFMQSBMRVRURVIgU0FOWUFLQSBHQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREEwO1NJTkhBTEEgTEVUVEVSIEFMUEFQUkFBTkEgQ0FZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERBMTtTSU5IQUxBIExFVFRFUiBNQUhBQVBSQUFOQSBDQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREEyO1NJTkhBTEEgTEVUVEVSIEFMUEFQUkFBTkEgSkFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERBMztTSU5IQUxBIExFVFRFUiBNQUhBQVBSQUFOQSBKQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREE0O1NJTkhBTEEgTEVUVEVSIFRBQUxVSkEgTkFBU0lLWUFZQTtMbzswO0w7Ozs7O047Ozs7OworMERBNTtTSU5IQUxBIExFVFRFUiBUQUFMVUpBIFNBTllPT0dBIE5BQUtTSUtZQVlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREE2O1NJTkhBTEEgTEVUVEVSIFNBTllBS0EgSkFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERBNztTSU5IQUxBIExFVFRFUiBBTFBBUFJBQU5BIFRUQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREE4O1NJTkhBTEEgTEVUVEVSIE1BSEFBUFJBQU5BIFRUQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREE5O1NJTkhBTEEgTEVUVEVSIEFMUEFQUkFBTkEgRERBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQUE7U0lOSEFMQSBMRVRURVIgTUFIQUFQUkFBTkEgRERBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQUI7U0lOSEFMQSBMRVRURVIgTVVVUkRIQUpBIE5BWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQUM7U0lOSEFMQSBMRVRURVIgU0FOWUFLQSBEREFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERBRDtTSU5IQUxBIExFVFRFUiBBTFBBUFJBQU5BIFRBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQUU7U0lOSEFMQSBMRVRURVIgTUFIQUFQUkFBTkEgVEFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERBRjtTSU5IQUxBIExFVFRFUiBBTFBBUFJBQU5BIERBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQjA7U0lOSEFMQSBMRVRURVIgTUFIQUFQUkFBTkEgREFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERCMTtTSU5IQUxBIExFVFRFUiBEQU5UQUpBIE5BWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQjM7U0lOSEFMQSBMRVRURVIgU0FOWUFLQSBEQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREI0O1NJTkhBTEEgTEVUVEVSIEFMUEFQUkFBTkEgUEFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERCNTtTSU5IQUxBIExFVFRFUiBNQUhBQVBSQUFOQSBQQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREI2O1NJTkhBTEEgTEVUVEVSIEFMUEFQUkFBTkEgQkFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERCNztTSU5IQUxBIExFVFRFUiBNQUhBQVBSQUFOQSBCQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREI4O1NJTkhBTEEgTEVUVEVSIE1BWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQjk7U0lOSEFMQSBMRVRURVIgQU1CQSBCQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREJBO1NJTkhBTEEgTEVUVEVSIFlBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQkI7U0lOSEFMQSBMRVRURVIgUkFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERCRDtTSU5IQUxBIExFVFRFUiBEQU5UQUpBIExBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQzA7U0lOSEFMQSBMRVRURVIgVkFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERDMTtTSU5IQUxBIExFVFRFUiBUQUFMVUpBIFNBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQzI7U0lOSEFMQSBMRVRURVIgTVVVUkRIQUpBIFNBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQzM7U0lOSEFMQSBMRVRURVIgREFOVEFKQSBTQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREM0O1NJTkhBTEEgTEVUVEVSIEhBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQzU7U0lOSEFMQSBMRVRURVIgTVVVUkRIQUpBIExBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQzY7U0lOSEFMQSBMRVRURVIgRkFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERDQTtTSU5IQUxBIFNJR04gQUwtTEFLVU5BO01uOzk7TlNNOzs7OztOOzs7OzsKKzBEQ0Y7U0lOSEFMQSBWT1dFTCBTSUdOIEFFTEEtUElMTEE7TWM7MDtMOzs7OztOOzs7OzsKKzBERDA7U0lOSEFMQSBWT1dFTCBTSUdOIEtFVFRJIEFFREEtUElMTEE7TWM7MDtMOzs7OztOOzs7OzsKKzBERDE7U0lOSEFMQSBWT1dFTCBTSUdOIERJR0EgQUVEQS1QSUxMQTtNYzswO0w7Ozs7O047Ozs7OworMEREMjtTSU5IQUxBIFZPV0VMIFNJR04gS0VUVEkgSVMtUElMTEE7TW47MDtOU007Ozs7O047Ozs7OworMEREMztTSU5IQUxBIFZPV0VMIFNJR04gRElHQSBJUy1QSUxMQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswREQ0O1NJTkhBTEEgVk9XRUwgU0lHTiBLRVRUSSBQQUEtUElMTEE7TW47MDtOU007Ozs7O047Ozs7OworMERENjtTSU5IQUxBIFZPV0VMIFNJR04gRElHQSBQQUEtUElMTEE7TW47MDtOU007Ozs7O047Ozs7OworMEREODtTSU5IQUxBIFZPV0VMIFNJR04gR0FFVFRBLVBJTExBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswREQ5O1NJTkhBTEEgVk9XRUwgU0lHTiBLT01CVVZBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswRERBO1NJTkhBTEEgVk9XRUwgU0lHTiBESUdBIEtPTUJVVkE7TWM7MDtMOzBERDkgMERDQTs7OztOOzs7OzsKKzBEREI7U0lOSEFMQSBWT1dFTCBTSUdOIEtPTUJVIERFS0E7TWM7MDtMOzs7OztOOzs7OzsKKzBEREM7U0lOSEFMQSBWT1dFTCBTSUdOIEtPTUJVVkEgSEFBIEFFTEEtUElMTEE7TWM7MDtMOzBERDkgMERDRjs7OztOOzs7OzsKKzBEREQ7U0lOSEFMQSBWT1dFTCBTSUdOIEtPTUJVVkEgSEFBIERJR0EgQUVMQS1QSUxMQTtNYzswO0w7MEREQyAwRENBOzs7O047Ozs7OworMERERTtTSU5IQUxBIFZPV0VMIFNJR04gS09NQlVWQSBIQUEgR0FZQU5VS0lUVEE7TWM7MDtMOzBERDkgMERERjs7OztOOzs7OzsKKzBEREY7U0lOSEFMQSBWT1dFTCBTSUdOIEdBWUFOVUtJVFRBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswREYyO1NJTkhBTEEgVk9XRUwgU0lHTiBESUdBIEdBRVRUQS1QSUxMQTtNYzswO0w7Ozs7O047Ozs7OworMERGMztTSU5IQUxBIFZPV0VMIFNJR04gRElHQSBHQVlBTlVLSVRUQTtNYzswO0w7Ozs7O047Ozs7OworMERGNDtTSU5IQUxBIFBVTkNUVUFUSU9OIEtVTkREQUxJWUE7UG87MDtMOzs7OztOOzs7OzsKKzBFMDE7VEhBSSBDSEFSQUNURVIgS08gS0FJO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBLTyBLQUk7Ozs7CiswRTAyO1RIQUkgQ0hBUkFDVEVSIEtITyBLSEFJO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBLSE8gS0hBSTs7OzsKKzBFMDM7VEhBSSBDSEFSQUNURVIgS0hPIEtIVUFUO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBLSE8gS0hVQVQ7Ozs7CiswRTA0O1RIQUkgQ0hBUkFDVEVSIEtITyBLSFdBSTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgS0hPIEtIV0FJOzs7OworMEUwNTtUSEFJIENIQVJBQ1RFUiBLSE8gS0hPTjtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgS0hPIEtIT047Ozs7CiswRTA2O1RIQUkgQ0hBUkFDVEVSIEtITyBSQUtIQU5HO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBLSE8gUkFLSEFORzs7OzsKKzBFMDc7VEhBSSBDSEFSQUNURVIgTkdPIE5HVTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgTkdPIE5HVTs7OzsKKzBFMDg7VEhBSSBDSEFSQUNURVIgQ0hPIENIQU47TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIENITyBDSEFOOzs7OworMEUwOTtUSEFJIENIQVJBQ1RFUiBDSE8gQ0hJTkc7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIENITyBDSElORzs7OzsKKzBFMEE7VEhBSSBDSEFSQUNURVIgQ0hPIENIQU5HO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBDSE8gQ0hBTkc7Ozs7CiswRTBCO1RIQUkgQ0hBUkFDVEVSIFNPIFNPO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBTTyBTTzs7OzsKKzBFMEM7VEhBSSBDSEFSQUNURVIgQ0hPIENIT0U7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIENITyBDSE9FOzs7OworMEUwRDtUSEFJIENIQVJBQ1RFUiBZTyBZSU5HO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBZTyBZSU5HOzs7OworMEUwRTtUSEFJIENIQVJBQ1RFUiBETyBDSEFEQTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgRE8gQ0hBREE7Ozs7CiswRTBGO1RIQUkgQ0hBUkFDVEVSIFRPIFBBVEFLO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBUTyBQQVRBSzs7OzsKKzBFMTA7VEhBSSBDSEFSQUNURVIgVEhPIFRIQU47TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFRITyBUSEFOOzs7OworMEUxMTtUSEFJIENIQVJBQ1RFUiBUSE8gTkFOR01PTlRITztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgVEhPIE5BTkdNT05USE87Ozs7CiswRTEyO1RIQUkgQ0hBUkFDVEVSIFRITyBQSFVUSEFPO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBUSE8gUEhVVEhBTzs7OzsKKzBFMTM7VEhBSSBDSEFSQUNURVIgTk8gTkVOO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBOTyBORU47Ozs7CiswRTE0O1RIQUkgQ0hBUkFDVEVSIERPIERFSztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgRE8gREVLOzs7OworMEUxNTtUSEFJIENIQVJBQ1RFUiBUTyBUQU87TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFRPIFRBTzs7OzsKKzBFMTY7VEhBSSBDSEFSQUNURVIgVEhPIFRIVU5HO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBUSE8gVEhVTkc7Ozs7CiswRTE3O1RIQUkgQ0hBUkFDVEVSIFRITyBUSEFIQU47TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFRITyBUSEFIQU47Ozs7CiswRTE4O1RIQUkgQ0hBUkFDVEVSIFRITyBUSE9ORztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgVEhPIFRIT05HOzs7OworMEUxOTtUSEFJIENIQVJBQ1RFUiBOTyBOVTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgTk8gTlU7Ozs7CiswRTFBO1RIQUkgQ0hBUkFDVEVSIEJPIEJBSU1BSTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgQk8gQkFJTUFJOzs7OworMEUxQjtUSEFJIENIQVJBQ1RFUiBQTyBQTEE7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFBPIFBMQTs7OzsKKzBFMUM7VEhBSSBDSEFSQUNURVIgUEhPIFBIVU5HO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBQSE8gUEhVTkc7Ozs7CiswRTFEO1RIQUkgQ0hBUkFDVEVSIEZPIEZBO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBGTyBGQTs7OzsKKzBFMUU7VEhBSSBDSEFSQUNURVIgUEhPIFBIQU47TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFBITyBQSEFOOzs7OworMEUxRjtUSEFJIENIQVJBQ1RFUiBGTyBGQU47TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIEZPIEZBTjs7OzsKKzBFMjA7VEhBSSBDSEFSQUNURVIgUEhPIFNBTVBIQU87TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFBITyBTQU1QSEFPOzs7OworMEUyMTtUSEFJIENIQVJBQ1RFUiBNTyBNQTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgTU8gTUE7Ozs7CiswRTIyO1RIQUkgQ0hBUkFDVEVSIFlPIFlBSztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgWU8gWUFLOzs7OworMEUyMztUSEFJIENIQVJBQ1RFUiBSTyBSVUE7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFJPIFJVQTs7OzsKKzBFMjQ7VEhBSSBDSEFSQUNURVIgUlU7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFJVOzs7OworMEUyNTtUSEFJIENIQVJBQ1RFUiBMTyBMSU5HO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBMTyBMSU5HOzs7OworMEUyNjtUSEFJIENIQVJBQ1RFUiBMVTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgTFU7Ozs7CiswRTI3O1RIQUkgQ0hBUkFDVEVSIFdPIFdBRU47TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFdPIFdBRU47Ozs7CiswRTI4O1RIQUkgQ0hBUkFDVEVSIFNPIFNBTEE7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFNPIFNBTEE7Ozs7CiswRTI5O1RIQUkgQ0hBUkFDVEVSIFNPIFJVU0k7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFNPIFJVU0k7Ozs7CiswRTJBO1RIQUkgQ0hBUkFDVEVSIFNPIFNVQTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgU08gU1VBOzs7OworMEUyQjtUSEFJIENIQVJBQ1RFUiBITyBISVA7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIEhPIEhJUDs7OzsKKzBFMkM7VEhBSSBDSEFSQUNURVIgTE8gQ0hVTEE7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIExPIENIVUxBOzs7OworMEUyRDtUSEFJIENIQVJBQ1RFUiBPIEFORztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgTyBBTkc7Ozs7CiswRTJFO1RIQUkgQ0hBUkFDVEVSIEhPIE5PS0hVSztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgSE8gTk9LIEhVSzs7OzsKKzBFMkY7VEhBSSBDSEFSQUNURVIgUEFJWUFOTk9JO0xvOzA7TDs7Ozs7TjtUSEFJIFBBSSBZQU4gTk9JO3BhaXlhbiBub2k7OzsKKzBFMzA7VEhBSSBDSEFSQUNURVIgU0FSQSBBO0xvOzA7TDs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBBOzs7OworMEUzMTtUSEFJIENIQVJBQ1RFUiBNQUkgSEFOLUFLQVQ7TW47MDtOU007Ozs7O047VEhBSSBWT1dFTCBTSUdOIE1BSSBIQU4tQUtBVDs7OzsKKzBFMzI7VEhBSSBDSEFSQUNURVIgU0FSQSBBQTtMbzswO0w7Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgQUE7Ozs7CiswRTMzO1RIQUkgQ0hBUkFDVEVSIFNBUkEgQU07TG87MDtMOzxjb21wYXQ+IDBFNEQgMEUzMjs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIEFNOzs7OworMEUzNDtUSEFJIENIQVJBQ1RFUiBTQVJBIEk7TW47MDtOU007Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgSTs7OzsKKzBFMzU7VEhBSSBDSEFSQUNURVIgU0FSQSBJSTtNbjswO05TTTs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBJSTs7OzsKKzBFMzY7VEhBSSBDSEFSQUNURVIgU0FSQSBVRTtNbjswO05TTTs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBVRTs7OzsKKzBFMzc7VEhBSSBDSEFSQUNURVIgU0FSQSBVRUU7TW47MDtOU007Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgVUVFO3NhcmEgdXVlOzs7CiswRTM4O1RIQUkgQ0hBUkFDVEVSIFNBUkEgVTtNbjsxMDM7TlNNOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIFU7Ozs7CiswRTM5O1RIQUkgQ0hBUkFDVEVSIFNBUkEgVVU7TW47MTAzO05TTTs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBVVTs7OzsKKzBFM0E7VEhBSSBDSEFSQUNURVIgUEhJTlRIVTtNbjs5O05TTTs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gUEhJTlRIVTs7OzsKKzBFM0Y7VEhBSSBDVVJSRU5DWSBTWU1CT0wgQkFIVDtTYzswO0VUOzs7OztOO1RIQUkgQkFIVCBTSUdOOzs7OworMEU0MDtUSEFJIENIQVJBQ1RFUiBTQVJBIEU7TG87MDtMOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIEU7Ozs7CiswRTQxO1RIQUkgQ0hBUkFDVEVSIFNBUkEgQUU7TG87MDtMOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIEFFOzs7OworMEU0MjtUSEFJIENIQVJBQ1RFUiBTQVJBIE87TG87MDtMOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIE87Ozs7CiswRTQzO1RIQUkgQ0hBUkFDVEVSIFNBUkEgQUkgTUFJTVVBTjtMbzswO0w7Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgTUFJIE1VQU47c2FyYSBhaSBtYWkgbXVhbjs7OworMEU0NDtUSEFJIENIQVJBQ1RFUiBTQVJBIEFJIE1BSU1BTEFJO0xvOzA7TDs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBNQUkgTUFMQUk7c2FyYSBhaSBtYWkgbWFsYWk7OzsKKzBFNDU7VEhBSSBDSEFSQUNURVIgTEFLS0hBTkdZQU87TG87MDtMOzs7OztOO1RIQUkgTEFLIEtIQU5HIFlBTztsYWtraGFuZyB5YW87OzsKKzBFNDY7VEhBSSBDSEFSQUNURVIgTUFJWUFNT0s7TG07MDtMOzs7OztOO1RIQUkgTUFJIFlBTU9LO21haSB5YW1vazs7OworMEU0NztUSEFJIENIQVJBQ1RFUiBNQUlUQUlLSFU7TW47MDtOU007Ozs7O047VEhBSSBWT1dFTCBTSUdOIE1BSSBUQUkgS0hVO21haSB0YWlraHU7OzsKKzBFNDg7VEhBSSBDSEFSQUNURVIgTUFJIEVLO01uOzEwNztOU007Ozs7O047VEhBSSBUT05FIE1BSSBFSzs7OzsKKzBFNDk7VEhBSSBDSEFSQUNURVIgTUFJIFRITztNbjsxMDc7TlNNOzs7OztOO1RIQUkgVE9ORSBNQUkgVEhPOzs7OworMEU0QTtUSEFJIENIQVJBQ1RFUiBNQUkgVFJJO01uOzEwNztOU007Ozs7O047VEhBSSBUT05FIE1BSSBUUkk7Ozs7CiswRTRCO1RIQUkgQ0hBUkFDVEVSIE1BSSBDSEFUVEFXQTtNbjsxMDc7TlNNOzs7OztOO1RIQUkgVE9ORSBNQUkgQ0hBVFRBV0E7Ozs7CiswRTRDO1RIQUkgQ0hBUkFDVEVSIFRIQU5USEFLSEFUO01uOzA7TlNNOzs7OztOO1RIQUkgVEhBTlRIQUtIQVQ7Ozs7CiswRTREO1RIQUkgQ0hBUkFDVEVSIE5JS0hBSElUO01uOzA7TlNNOzs7OztOO1RIQUkgTklLS0hBSElUO25pa2toYWhpdDs7OworMEU0RTtUSEFJIENIQVJBQ1RFUiBZQU1BS0tBTjtNbjswO05TTTs7Ozs7TjtUSEFJIFlBTUFLS0FOOzs7OworMEU0RjtUSEFJIENIQVJBQ1RFUiBGT05HTUFOO1BvOzA7TDs7Ozs7TjtUSEFJIEZPTkdNQU47Ozs7CiswRTUwO1RIQUkgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMEU1MTtUSEFJIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMEU1MjtUSEFJIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMEU1MztUSEFJIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswRTU0O1RIQUkgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMEU1NTtUSEFJIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzBFNTY7VEhBSSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzBFNTc7VEhBSSBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMEU1ODtUSEFJIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswRTU5O1RIQUkgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMEU1QTtUSEFJIENIQVJBQ1RFUiBBTkdLSEFOS0hVO1BvOzA7TDs7Ozs7TjtUSEFJIEFOR0tIQU5LSFU7Ozs7CiswRTVCO1RIQUkgQ0hBUkFDVEVSIEtIT01VVDtQbzswO0w7Ozs7O047VEhBSSBLSE9NVVQ7Ozs7CiswRTgxO0xBTyBMRVRURVIgS087TG87MDtMOzs7OztOOzs7OzsKKzBFODI7TEFPIExFVFRFUiBLSE8gU1VORztMbzswO0w7Ozs7O047Ozs7OworMEU4NDtMQU8gTEVUVEVSIEtITyBUQU07TG87MDtMOzs7OztOOzs7OzsKKzBFODc7TEFPIExFVFRFUiBOR087TG87MDtMOzs7OztOOzs7OzsKKzBFODg7TEFPIExFVFRFUiBDTztMbzswO0w7Ozs7O047Ozs7OworMEU4QTtMQU8gTEVUVEVSIFNPIFRBTTtMbzswO0w7Ozs7O047Ozs7OworMEU4RDtMQU8gTEVUVEVSIE5ZTztMbzswO0w7Ozs7O047Ozs7OworMEU5NDtMQU8gTEVUVEVSIERPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRTk1O0xBTyBMRVRURVIgVE87TG87MDtMOzs7OztOOzs7OzsKKzBFOTY7TEFPIExFVFRFUiBUSE8gU1VORztMbzswO0w7Ozs7O047Ozs7OworMEU5NztMQU8gTEVUVEVSIFRITyBUQU07TG87MDtMOzs7OztOOzs7OzsKKzBFOTk7TEFPIExFVFRFUiBOTztMbzswO0w7Ozs7O047Ozs7OworMEU5QTtMQU8gTEVUVEVSIEJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRTlCO0xBTyBMRVRURVIgUE87TG87MDtMOzs7OztOOzs7OzsKKzBFOUM7TEFPIExFVFRFUiBQSE8gU1VORztMbzswO0w7Ozs7O047Ozs7OworMEU5RDtMQU8gTEVUVEVSIEZPIFRBTTtMbzswO0w7Ozs7O047Ozs7OworMEU5RTtMQU8gTEVUVEVSIFBITyBUQU07TG87MDtMOzs7OztOOzs7OzsKKzBFOUY7TEFPIExFVFRFUiBGTyBTVU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUExO0xBTyBMRVRURVIgTU87TG87MDtMOzs7OztOOzs7OzsKKzBFQTI7TEFPIExFVFRFUiBZTztMbzswO0w7Ozs7O047Ozs7OworMEVBMztMQU8gTEVUVEVSIExPIExJTkc7TG87MDtMOzs7OztOOzs7OzsKKzBFQTU7TEFPIExFVFRFUiBMTyBMT09UO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUE3O0xBTyBMRVRURVIgV087TG87MDtMOzs7OztOOzs7OzsKKzBFQUE7TEFPIExFVFRFUiBTTyBTVU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUFCO0xBTyBMRVRURVIgSE8gU1VORztMbzswO0w7Ozs7O047Ozs7OworMEVBRDtMQU8gTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzBFQUU7TEFPIExFVFRFUiBITyBUQU07TG87MDtMOzs7OztOOzs7OzsKKzBFQUY7TEFPIEVMTElQU0lTO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUIwO0xBTyBWT1dFTCBTSUdOIEE7TG87MDtMOzs7OztOOzs7OzsKKzBFQjE7TEFPIFZPV0VMIFNJR04gTUFJIEtBTjtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRUIyO0xBTyBWT1dFTCBTSUdOIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUIzO0xBTyBWT1dFTCBTSUdOIEFNO0xvOzA7TDs8Y29tcGF0PiAwRUNEIDBFQjI7Ozs7Tjs7Ozs7CiswRUI0O0xBTyBWT1dFTCBTSUdOIEk7TW47MDtOU007Ozs7O047Ozs7OworMEVCNTtMQU8gVk9XRUwgU0lHTiBJSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRUI2O0xBTyBWT1dFTCBTSUdOIFk7TW47MDtOU007Ozs7O047Ozs7OworMEVCNztMQU8gVk9XRUwgU0lHTiBZWTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRUI4O0xBTyBWT1dFTCBTSUdOIFU7TW47MTE4O05TTTs7Ozs7Tjs7Ozs7CiswRUI5O0xBTyBWT1dFTCBTSUdOIFVVO01uOzExODtOU007Ozs7O047Ozs7OworMEVCQjtMQU8gVk9XRUwgU0lHTiBNQUkgS09OO01uOzA7TlNNOzs7OztOOzs7OzsKKzBFQkM7TEFPIFNFTUlWT1dFTCBTSUdOIExPO01uOzA7TlNNOzs7OztOOzs7OzsKKzBFQkQ7TEFPIFNFTUlWT1dFTCBTSUdOIE5ZTztMbzswO0w7Ozs7O047Ozs7OworMEVDMDtMQU8gVk9XRUwgU0lHTiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUMxO0xBTyBWT1dFTCBTSUdOIEVJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUMyO0xBTyBWT1dFTCBTSUdOIE87TG87MDtMOzs7OztOOzs7OzsKKzBFQzM7TEFPIFZPV0VMIFNJR04gQVk7TG87MDtMOzs7OztOOzs7OzsKKzBFQzQ7TEFPIFZPV0VMIFNJR04gQUk7TG87MDtMOzs7OztOOzs7OzsKKzBFQzY7TEFPIEtPIExBO0xtOzA7TDs7Ozs7Tjs7Ozs7CiswRUM4O0xBTyBUT05FIE1BSSBFSztNbjsxMjI7TlNNOzs7OztOOzs7OzsKKzBFQzk7TEFPIFRPTkUgTUFJIFRITztNbjsxMjI7TlNNOzs7OztOOzs7OzsKKzBFQ0E7TEFPIFRPTkUgTUFJIFRJO01uOzEyMjtOU007Ozs7O047Ozs7OworMEVDQjtMQU8gVE9ORSBNQUkgQ0FUQVdBO01uOzEyMjtOU007Ozs7O047Ozs7OworMEVDQztMQU8gQ0FOQ0VMTEFUSU9OIE1BUks7TW47MDtOU007Ozs7O047Ozs7OworMEVDRDtMQU8gTklHR0FISVRBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBFRDA7TEFPIERJR0lUIFpFUk87TmQ7MDtMOzswOzA7MDtOOzs7OzsKKzBFRDE7TEFPIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMEVEMjtMQU8gRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswRUQzO0xBTyBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMEVENDtMQU8gRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMEVENTtMQU8gRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMEVENjtMQU8gRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CiswRUQ3O0xBTyBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMEVEODtMQU8gRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzBFRDk7TEFPIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzBFREM7TEFPIEhPIE5PO0xvOzA7TDs8Y29tcGF0PiAwRUFCIDBFOTk7Ozs7Tjs7Ozs7CiswRUREO0xBTyBITyBNTztMbzswO0w7PGNvbXBhdD4gMEVBQiAwRUExOzs7O047Ozs7OworMEYwMDtUSUJFVEFOIFNZTExBQkxFIE9NO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjAxO1RJQkVUQU4gTUFSSyBHVEVSIFlJRyBNR08gVFJVTkNBVEVEIEE7U287MDtMOzs7OztOOzt0ZXIgeWlrIGdvIGEgdGh1bmc7OzsKKzBGMDI7VElCRVRBTiBNQVJLIEdURVIgWUlHIE1HTyAtVU0gUk5BTSBCQ0FEIE1BO1NvOzA7TDs7Ozs7Tjs7dGVyIHlpayBnbyB3dW0gbmFtIGNoZXkgbWE7OzsKKzBGMDM7VElCRVRBTiBNQVJLIEdURVIgWUlHIE1HTyAtVU0gR1RFUiBUU0hFRyBNQTtTbzswO0w7Ozs7O047O3RlciB5aWsgZ28gd3VtIHRlciB0c2VrIG1hOzs7CiswRjA0O1RJQkVUQU4gTUFSSyBJTklUSUFMIFlJRyBNR08gTURVTiBNQTtQbzswO0w7Ozs7O047VElCRVRBTiBTSU5HTEUgT1JOQU1FTlQ7eWlrIGdvIGR1biBtYTs7OworMEYwNTtUSUJFVEFOIE1BUksgQ0xPU0lORyBZSUcgTUdPIFNHQUIgTUE7UG87MDtMOzs7OztOOzt5aWsgZ28ga2FiIG1hOzs7CiswRjA2O1RJQkVUQU4gTUFSSyBDQVJFVCBZSUcgTUdPIFBIVVIgU0hBRCBNQTtQbzswO0w7Ozs7O047O3lpayBnbyBwdXIgc2hleSBtYTs7OworMEYwNztUSUJFVEFOIE1BUksgWUlHIE1HTyBUU0hFRyBTSEFEIE1BO1BvOzA7TDs7Ozs7Tjs7eWlrIGdvIHRzZWsgc2hleSBtYTs7OworMEYwODtUSUJFVEFOIE1BUksgU0JSVUwgU0hBRDtQbzswO0w7Ozs7O047VElCRVRBTiBSR1lBTlNIQUQ7ZHJ1bCBzaGV5Ozs7CiswRjA5O1RJQkVUQU4gTUFSSyBCU0tVUiBZSUcgTUdPO1BvOzA7TDs7Ozs7Tjs7a3VyIHlpayBnbzs7OworMEYwQTtUSUJFVEFOIE1BUksgQktBLSBTSE9HIFlJRyBNR087UG87MDtMOzs7OztOOztrYSBzaG8geWlrIGdvOzs7CiswRjBCO1RJQkVUQU4gTUFSSyBJTlRFUlNZTExBQklDIFRTSEVHO1BvOzA7TDs7Ozs7TjtUSUJFVEFOIFRTRUc7dHNlazs7OworMEYwQztUSUJFVEFOIE1BUksgREVMSU1JVEVSIFRTSEVHIEJTVEFSO1BvOzA7TDs8bm9CcmVhaz4gMEYwQjs7OztOOzt0c2VrIHRhcjs7OworMEYwRDtUSUJFVEFOIE1BUksgU0hBRDtQbzswO0w7Ozs7O047VElCRVRBTiBTSEFEO3NoZXk7OzsKKzBGMEU7VElCRVRBTiBNQVJLIE5ZSVMgU0hBRDtQbzswO0w7Ozs7O047VElCRVRBTiBET1VCTEUgU0hBRDtueWkgc2hleTs7OworMEYwRjtUSUJFVEFOIE1BUksgVFNIRUcgU0hBRDtQbzswO0w7Ozs7O047O3RzZWsgc2hleTs7OworMEYxMDtUSUJFVEFOIE1BUksgTllJUyBUU0hFRyBTSEFEO1BvOzA7TDs7Ozs7Tjs7bnlpIHRzZWsgc2hleTs7OworMEYxMTtUSUJFVEFOIE1BUksgUklOIENIRU4gU1BVTkdTIFNIQUQ7UG87MDtMOzs7OztOO1RJQkVUQU4gUklOQ0hBTlBIVU5HU0hBRDtyaW5jaGVuIHB1bmcgc2hleTs7OworMEYxMjtUSUJFVEFOIE1BUksgUkdZQSBHUkFNIFNIQUQ7UG87MDtMOzs7OztOOztneWEgdHJhbSBzaGV5Ozs7CiswRjEzO1RJQkVUQU4gTUFSSyBDQVJFVCAtRFpVRCBSVEFHUyBNRSBMT05HIENBTjtTbzswO0w7Ozs7O047O2R6dSB0YSBtZSBsb25nIGNoZW47OzsKKzBGMTQ7VElCRVRBTiBNQVJLIEdURVIgVFNIRUc7U287MDtMOzs7OztOO1RJQkVUQU4gQ09NTUE7dGVyIHRzZWs7OzsKKzBGMTU7VElCRVRBTiBMT0dPVFlQRSBTSUdOIENIQUQgUlRBR1M7U287MDtMOzs7OztOOztjaGUgdGE7OzsKKzBGMTY7VElCRVRBTiBMT0dPVFlQRSBTSUdOIExIQUcgUlRBR1M7U287MDtMOzs7OztOOztobGFrIHRhOzs7CiswRjE3O1RJQkVUQU4gQVNUUk9MT0dJQ0FMIFNJR04gU0dSQSBHQ0FOIC1DSEFSIFJUQUdTO1NvOzA7TDs7Ozs7Tjs7dHJhY2hlbiBjaGFyIHRhOzs7CiswRjE4O1RJQkVUQU4gQVNUUk9MT0dJQ0FMIFNJR04gLUtIWVVEIFBBO01uOzIyMDtOU007Ozs7O047O2t5dSBwYTs7OworMEYxOTtUSUJFVEFOIEFTVFJPTE9HSUNBTCBTSUdOIFNET05HIFRTSFVHUztNbjsyMjA7TlNNOzs7OztOOztkb25nIHRzdTs7OworMEYxQTtUSUJFVEFOIFNJR04gUkRFTCBES0FSIEdDSUc7U287MDtMOzs7OztOOztkZWthIGNoaWc7OzsKKzBGMUI7VElCRVRBTiBTSUdOIFJERUwgREtBUiBHTllJUztTbzswO0w7Ozs7O047O2Rla2EgbnlpOzs7CiswRjFDO1RJQkVUQU4gU0lHTiBSREVMIERLQVIgR1NVTTtTbzswO0w7Ozs7O047O2Rla2Egc3VtOzs7CiswRjFEO1RJQkVUQU4gU0lHTiBSREVMIE5BRyBHQ0lHO1NvOzA7TDs7Ozs7Tjs7ZGVuYSBjaGlnOzs7CiswRjFFO1RJQkVUQU4gU0lHTiBSREVMIE5BRyBHTllJUztTbzswO0w7Ozs7O047O2RlbmEgbnlpOzs7CiswRjFGO1RJQkVUQU4gU0lHTiBSREVMIERLQVIgUkRFTCBOQUc7U287MDtMOzs7OztOOztkZWthIGRlbmE7OzsKKzBGMjA7VElCRVRBTiBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CiswRjIxO1RJQkVUQU4gRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CiswRjIyO1RJQkVUQU4gRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswRjIzO1RJQkVUQU4gRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzBGMjQ7VElCRVRBTiBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CiswRjI1O1RJQkVUQU4gRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMEYyNjtUSUJFVEFOIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMEYyNztUSUJFVEFOIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CiswRjI4O1RJQkVUQU4gRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzBGMjk7VElCRVRBTiBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CiswRjJBO1RJQkVUQU4gRElHSVQgSEFMRiBPTkU7Tm87MDtMOzs7OzEvMjtOOzs7OzsKKzBGMkI7VElCRVRBTiBESUdJVCBIQUxGIFRXTztObzswO0w7Ozs7My8yO047Ozs7OworMEYyQztUSUJFVEFOIERJR0lUIEhBTEYgVEhSRUU7Tm87MDtMOzs7OzUvMjtOOzs7OzsKKzBGMkQ7VElCRVRBTiBESUdJVCBIQUxGIEZPVVI7Tm87MDtMOzs7OzcvMjtOOzs7OzsKKzBGMkU7VElCRVRBTiBESUdJVCBIQUxGIEZJVkU7Tm87MDtMOzs7OzkvMjtOOzs7OzsKKzBGMkY7VElCRVRBTiBESUdJVCBIQUxGIFNJWDtObzswO0w7Ozs7MTEvMjtOOzs7OzsKKzBGMzA7VElCRVRBTiBESUdJVCBIQUxGIFNFVkVOO05vOzA7TDs7OzsxMy8yO047Ozs7OworMEYzMTtUSUJFVEFOIERJR0lUIEhBTEYgRUlHSFQ7Tm87MDtMOzs7OzE1LzI7Tjs7Ozs7CiswRjMyO1RJQkVUQU4gRElHSVQgSEFMRiBOSU5FO05vOzA7TDs7OzsxNy8yO047Ozs7OworMEYzMztUSUJFVEFOIERJR0lUIEhBTEYgWkVSTztObzswO0w7Ozs7LTEvMjtOOzs7OzsKKzBGMzQ7VElCRVRBTiBNQVJLIEJTRFVTIFJUQUdTO1NvOzA7TDs7Ozs7Tjs7ZHUgdGE7OzsKKzBGMzU7VElCRVRBTiBNQVJLIE5HQVMgQlpVTkcgTllJIFpMQTtNbjsyMjA7TlNNOzs7OztOO1RJQkVUQU4gSE9OT1JJRklDIFVOREVSIFJJTkc7bmdlIHp1bmcgbnlpIGRhOzs7CiswRjM2O1RJQkVUQU4gTUFSSyBDQVJFVCAtRFpVRCBSVEFHUyBCWkhJIE1JRyBDQU47U287MDtMOzs7OztOOztkenUgdGEgc2hpIG1pZyBjaGVuOzs7CiswRjM3O1RJQkVUQU4gTUFSSyBOR0FTIEJaVU5HIFNHT1IgUlRBR1M7TW47MjIwO05TTTs7Ozs7TjtUSUJFVEFOIFVOREVSIFJJTkc7bmdlIHp1bmcgZ29yIHRhOzs7CiswRjM4O1RJQkVUQU4gTUFSSyBDSEUgTUdPO1NvOzA7TDs7Ozs7Tjs7Y2hlIGdvOzs7CiswRjM5O1RJQkVUQU4gTUFSSyBUU0EgLVBIUlU7TW47MjE2O05TTTs7Ozs7TjtUSUJFVEFOIExFTklUSU9OIE1BUks7dHNhIHRydTs7OworMEYzQTtUSUJFVEFOIE1BUksgR1VHIFJUQUdTIEdZT047UHM7MDtPTjs7Ozs7Tjs7Z3VnIHRhIHl1bjs7OworMEYzQjtUSUJFVEFOIE1BUksgR1VHIFJUQUdTIEdZQVM7UGU7MDtPTjs7Ozs7Tjs7Z3VnIHRhIHllOzs7CiswRjNDO1RJQkVUQU4gTUFSSyBBTkcgS0hBTkcgR1lPTjtQczswO09OOzs7OztOO1RJQkVUQU4gTEVGVCBCUkFDRTthbmcga2FuZyB5dW47OzsKKzBGM0Q7VElCRVRBTiBNQVJLIEFORyBLSEFORyBHWUFTO1BlOzA7T047Ozs7O047VElCRVRBTiBSSUdIVCBCUkFDRTthbmcga2FuZyB5ZTs7OworMEYzRTtUSUJFVEFOIFNJR04gWUFSIFRTSEVTO01jOzA7TDs7Ozs7Tjs7eWFyIHRzZTs7OworMEYzRjtUSUJFVEFOIFNJR04gTUFSIFRTSEVTO01jOzA7TDs7Ozs7Tjs7bWFyIHRzZTs7OworMEY0MDtUSUJFVEFOIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMEY0MTtUSUJFVEFOIExFVFRFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNDI7VElCRVRBTiBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzBGNDM7VElCRVRBTiBMRVRURVIgR0hBO0xvOzA7TDswRjQyIDBGQjc7Ozs7Tjs7Ozs7CiswRjQ0O1RJQkVUQU4gTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMEY0NTtUSUJFVEFOIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMEY0NjtUSUJFVEFOIExFVFRFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNDc7VElCRVRBTiBMRVRURVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzBGNDk7VElCRVRBTiBMRVRURVIgTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjRBO1RJQkVUQU4gTEVUVEVSIFRUQTtMbzswO0w7Ozs7O047VElCRVRBTiBMRVRURVIgUkVWRVJTRUQgVEE7Ozs7CiswRjRCO1RJQkVUQU4gTEVUVEVSIFRUSEE7TG87MDtMOzs7OztOO1RJQkVUQU4gTEVUVEVSIFJFVkVSU0VEIFRIQTs7OzsKKzBGNEM7VElCRVRBTiBMRVRURVIgRERBO0xvOzA7TDs7Ozs7TjtUSUJFVEFOIExFVFRFUiBSRVZFUlNFRCBEQTs7OzsKKzBGNEQ7VElCRVRBTiBMRVRURVIgRERIQTtMbzswO0w7MEY0QyAwRkI3Ozs7O047Ozs7OworMEY0RTtUSUJFVEFOIExFVFRFUiBOTkE7TG87MDtMOzs7OztOO1RJQkVUQU4gTEVUVEVSIFJFVkVSU0VEIE5BOzs7OworMEY0RjtUSUJFVEFOIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMEY1MDtUSUJFVEFOIExFVFRFUiBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNTE7VElCRVRBTiBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzBGNTI7VElCRVRBTiBMRVRURVIgREhBO0xvOzA7TDswRjUxIDBGQjc7Ozs7Tjs7Ozs7CiswRjUzO1RJQkVUQU4gTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjU0O1RJQkVUQU4gTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjU1O1RJQkVUQU4gTEVUVEVSIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMEY1NjtUSUJFVEFOIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMEY1NztUSUJFVEFOIExFVFRFUiBCSEE7TG87MDtMOzBGNTYgMEZCNzs7OztOOzs7OzsKKzBGNTg7VElCRVRBTiBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzBGNTk7VElCRVRBTiBMRVRURVIgVFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjVBO1RJQkVUQU4gTEVUVEVSIFRTSEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNUI7VElCRVRBTiBMRVRURVIgRFpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjVDO1RJQkVUQU4gTEVUVEVSIERaSEE7TG87MDtMOzBGNUIgMEZCNzs7OztOOzs7OzsKKzBGNUQ7VElCRVRBTiBMRVRURVIgV0E7TG87MDtMOzs7OztOOzs7OzsKKzBGNUU7VElCRVRBTiBMRVRURVIgWkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjVGO1RJQkVUQU4gTEVUVEVSIFpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjYwO1RJQkVUQU4gTEVUVEVSIC1BO0xvOzA7TDs7Ozs7TjtUSUJFVEFOIExFVFRFUiBBQTs7OzsKKzBGNjE7VElCRVRBTiBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzBGNjI7VElCRVRBTiBMRVRURVIgUkE7TG87MDtMOzs7OztOOzsqOzs7CiswRjYzO1RJQkVUQU4gTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjY0O1RJQkVUQU4gTEVUVEVSIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMEY2NTtUSUJFVEFOIExFVFRFUiBTU0E7TG87MDtMOzs7OztOO1RJQkVUQU4gTEVUVEVSIFJFVkVSU0VEIFNIQTs7OzsKKzBGNjY7VElCRVRBTiBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzBGNjc7VElCRVRBTiBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNjg7VElCRVRBTiBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMEY2OTtUSUJFVEFOIExFVFRFUiBLU1NBO0xvOzA7TDswRjQwIDBGQjU7Ozs7Tjs7Ozs7CiswRjZBO1RJQkVUQU4gTEVUVEVSIEZJWEVELUZPUk0gUkE7TG87MDtMOzs7OztOOzsqOzs7CiswRjcxO1RJQkVUQU4gVk9XRUwgU0lHTiBBQTtNbjsxMjk7TlNNOzs7OztOOzs7OzsKKzBGNzI7VElCRVRBTiBWT1dFTCBTSUdOIEk7TW47MTMwO05TTTs7Ozs7Tjs7Ozs7CiswRjczO1RJQkVUQU4gVk9XRUwgU0lHTiBJSTtNbjswO05TTTswRjcxIDBGNzI7Ozs7Tjs7Ozs7CiswRjc0O1RJQkVUQU4gVk9XRUwgU0lHTiBVO01uOzEzMjtOU007Ozs7O047Ozs7OworMEY3NTtUSUJFVEFOIFZPV0VMIFNJR04gVVU7TW47MDtOU007MEY3MSAwRjc0Ozs7O047Ozs7OworMEY3NjtUSUJFVEFOIFZPV0VMIFNJR04gVk9DQUxJQyBSO01uOzA7TlNNOzBGQjIgMEY4MDs7OztOOzs7OzsKKzBGNzc7VElCRVRBTiBWT1dFTCBTSUdOIFZPQ0FMSUMgUlI7TW47MDtOU007PGNvbXBhdD4gMEZCMiAwRjgxOzs7O047Ozs7OworMEY3ODtUSUJFVEFOIFZPV0VMIFNJR04gVk9DQUxJQyBMO01uOzA7TlNNOzBGQjMgMEY4MDs7OztOOzs7OzsKKzBGNzk7VElCRVRBTiBWT1dFTCBTSUdOIFZPQ0FMSUMgTEw7TW47MDtOU007PGNvbXBhdD4gMEZCMyAwRjgxOzs7O047Ozs7OworMEY3QTtUSUJFVEFOIFZPV0VMIFNJR04gRTtNbjsxMzA7TlNNOzs7OztOOzs7OzsKKzBGN0I7VElCRVRBTiBWT1dFTCBTSUdOIEVFO01uOzEzMDtOU007Ozs7O047VElCRVRBTiBWT1dFTCBTSUdOIEFJOzs7OworMEY3QztUSUJFVEFOIFZPV0VMIFNJR04gTztNbjsxMzA7TlNNOzs7OztOOzs7OzsKKzBGN0Q7VElCRVRBTiBWT1dFTCBTSUdOIE9PO01uOzEzMDtOU007Ozs7O047VElCRVRBTiBWT1dFTCBTSUdOIEFVOzs7OworMEY3RTtUSUJFVEFOIFNJR04gUkpFUyBTVSBOR0EgUk87TW47MDtOU007Ozs7O047VElCRVRBTiBBTlVTVkFSQTtqZSBzdSBuZ2Egcm87OzsKKzBGN0Y7VElCRVRBTiBTSUdOIFJOQU0gQkNBRDtNYzswO0w7Ozs7O047VElCRVRBTiBWSVNBUkdBO25hbSBjaGV5Ozs7CiswRjgwO1RJQkVUQU4gVk9XRUwgU0lHTiBSRVZFUlNFRCBJO01uOzEzMDtOU007Ozs7O047VElCRVRBTiBWT1dFTCBTSUdOIFNIT1JUIEk7Ozs7CiswRjgxO1RJQkVUQU4gVk9XRUwgU0lHTiBSRVZFUlNFRCBJSTtNbjswO05TTTswRjcxIDBGODA7Ozs7Tjs7Ozs7CiswRjgyO1RJQkVUQU4gU0lHTiBOWUkgWkxBIE5BQSBEQTtNbjsyMzA7TlNNOzs7OztOO1RJQkVUQU4gQ0FORFJBQklORFUgV0lUSCBPUk5BTUVOVDtueWkgZGEgbmEgZGE7OzsKKzBGODM7VElCRVRBTiBTSUdOIFNOQSBMREFOO01uOzIzMDtOU007Ozs7O047VElCRVRBTiBDQU5EUkFCSU5EVTtuYW4gZGU7OzsKKzBGODQ7VElCRVRBTiBNQVJLIEhBTEFOVEE7TW47OTtOU007Ozs7O047VElCRVRBTiBWSVJBTUE7Ozs7CiswRjg1O1RJQkVUQU4gTUFSSyBQQUxVVEE7UG87MDtMOzs7OztOO1RJQkVUQU4gQ0hVQ0hFTllJR0U7Ozs7CiswRjg2O1RJQkVUQU4gU0lHTiBMQ0kgUlRBR1M7TW47MjMwO05TTTs7Ozs7Tjs7amkgdGE7OzsKKzBGODc7VElCRVRBTiBTSUdOIFlBTkcgUlRBR1M7TW47MjMwO05TTTs7Ozs7Tjs7eWFuZyB0YTs7OworMEY4ODtUSUJFVEFOIFNJR04gTENFIFRTQSBDQU47TG87MDtMOzs7OztOOztjaGUgdHNhIGNoZW47OzsKKzBGODk7VElCRVRBTiBTSUdOIE1DSFUgQ0FOO0xvOzA7TDs7Ozs7Tjs7Y2h1IGNoZW47OzsKKzBGOEE7VElCRVRBTiBTSUdOIEdSVSBDQU4gUkdZSU5HUztMbzswO0w7Ozs7O047O3RydSBjaGVuIGdpbmc7OzsKKzBGOEI7VElCRVRBTiBTSUdOIEdSVSBNRUQgUkdZSU5HUztMbzswO0w7Ozs7O047O3RydSBtZSBnaW5nOzs7CiswRjkwO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBLQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRjkxO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBLSEE7TW47MDtOU007Ozs7O047Ozs7OworMEY5MjtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgR0E7TW47MDtOU007Ozs7O047Ozs7OworMEY5MztUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgR0hBO01uOzA7TlNNOzBGOTIgMEZCNzs7OztOOzs7OzsKKzBGOTQ7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIE5HQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRjk1O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBDQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRjk2O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBDSEE7TW47MDtOU007Ozs7O047Ozs7OworMEY5NztUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgSkE7TW47MDtOU007Ozs7O047Ozs7OworMEY5OTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgTllBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGOUE7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFRUQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRjlCO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBUVEhBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGOUM7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEREQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRjlEO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBEREhBO01uOzA7TlNNOzBGOUMgMEZCNzs7OztOOzs7OzsKKzBGOUU7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIE5OQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRjlGO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBUQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkEwO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBUSEE7TW47MDtOU007Ozs7O047Ozs7OworMEZBMTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgREE7TW47MDtOU007Ozs7O047Ozs7OworMEZBMjtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgREhBO01uOzA7TlNNOzBGQTEgMEZCNzs7OztOOzs7OzsKKzBGQTM7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIE5BO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQTQ7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFBBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQTU7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFBIQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkE2O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBCQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkE3O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBCSEE7TW47MDtOU007MEZBNiAwRkI3Ozs7O047Ozs7OworMEZBODtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgTUE7TW47MDtOU007Ozs7O047Ozs7OworMEZBOTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgVFNBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQUE7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFRTSEE7TW47MDtOU007Ozs7O047Ozs7OworMEZBQjtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgRFpBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQUM7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIERaSEE7TW47MDtOU007MEZBQiAwRkI3Ozs7O047Ozs7OworMEZBRDtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgV0E7TW47MDtOU007Ozs7O047Oyo7OzsKKzBGQUU7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFpIQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkFGO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBaQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkIwO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiAtQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkIxO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBZQTtNbjswO05TTTs7Ozs7Tjs7Kjs7OworMEZCMjtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgUkE7TW47MDtOU007Ozs7O047Oyo7OzsKKzBGQjM7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIExBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQjQ7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFNIQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkI1O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBTU0E7TW47MDtOU007Ozs7O047Ozs7OworMEZCNjtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgU0E7TW47MDtOU007Ozs7O047Ozs7OworMEZCNztUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgSEE7TW47MDtOU007Ozs7O047Ozs7OworMEZCODtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkI5O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBLU1NBO01uOzA7TlNNOzBGOTAgMEZCNTs7OztOOzs7OzsKKzBGQkE7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEZJWEVELUZPUk0gV0E7TW47MDtOU007Ozs7O047Oyo7OzsKKzBGQkI7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEZJWEVELUZPUk0gWUE7TW47MDtOU007Ozs7O047Oyo7OzsKKzBGQkM7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEZJWEVELUZPUk0gUkE7TW47MDtOU007Ozs7O047Oyo7OzsKKzBGQkU7VElCRVRBTiBLVSBSVSBLSEE7U287MDtMOzs7OztOOztrdXJ1a2E7OzsKKzBGQkY7VElCRVRBTiBLVSBSVSBLSEEgQlpISSBNSUcgQ0FOO1NvOzA7TDs7Ozs7Tjs7a3VydWthIHNoaSBtaWsgY2hlbjs7OworMEZDMDtUSUJFVEFOIENBTlRJTExBVElPTiBTSUdOIEhFQVZZIEJFQVQ7U287MDtMOzs7OztOOzs7OzsKKzBGQzE7VElCRVRBTiBDQU5USUxMQVRJT04gU0lHTiBMSUdIVCBCRUFUO1NvOzA7TDs7Ozs7Tjs7Ozs7CiswRkMyO1RJQkVUQU4gQ0FOVElMTEFUSU9OIFNJR04gQ0FORyBURS1VO1NvOzA7TDs7Ozs7Tjs7Y2hhbmcgdHl1Ozs7CiswRkMzO1RJQkVUQU4gQ0FOVElMTEFUSU9OIFNJR04gU0JVQiAtQ0hBTDtTbzswO0w7Ozs7O047O2J1YiBjaGV5Ozs7CiswRkM0O1RJQkVUQU4gU1lNQk9MIERSSUwgQlU7U287MDtMOzs7OztOOztkcmlsYnU7OzsKKzBGQzU7VElCRVRBTiBTWU1CT0wgUkRPIFJKRTtTbzswO0w7Ozs7O047O2RvcmplOzs7CiswRkM2O1RJQkVUQU4gU1lNQk9MIFBBRE1BIEdEQU47TW47MjIwO05TTTs7Ozs7Tjs7cGVtYSBkZW47OzsKKzBGQzc7VElCRVRBTiBTWU1CT0wgUkRPIFJKRSBSR1lBIEdSQU07U287MDtMOzs7OztOOztkb3JqZSBneWEgZHJhbTs7OworMEZDODtUSUJFVEFOIFNZTUJPTCBQSFVSIFBBO1NvOzA7TDs7Ozs7Tjs7cGh1cmJhOzs7CiswRkM5O1RJQkVUQU4gU1lNQk9MIE5PUiBCVTtTbzswO0w7Ozs7O047O25vcmJ1Ozs7CiswRkNBO1RJQkVUQU4gU1lNQk9MIE5PUiBCVSBOWUlTIC1LSFlJTDtTbzswO0w7Ozs7O047O25vcmJ1IG55aSBraHlpOzs7CiswRkNCO1RJQkVUQU4gU1lNQk9MIE5PUiBCVSBHU1VNIC1LSFlJTDtTbzswO0w7Ozs7O047O25vcmJ1IHN1bSBraHlpOzs7CiswRkNDO1RJQkVUQU4gU1lNQk9MIE5PUiBCVSBCWkhJIC1LSFlJTDtTbzswO0w7Ozs7O047O25vcmJ1IHNoaSBraHlpOzs7CiswRkNGO1RJQkVUQU4gU0lHTiBSREVMIE5BRyBHU1VNO1NvOzA7TDs7Ozs7Tjs7ZGVuYSBzdW07OzsKKzEwMDA7TVlBTk1BUiBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzEwMDE7TVlBTk1BUiBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAyO01ZQU5NQVIgTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAzO01ZQU5NQVIgTEVUVEVSIEdIQTtMbzswO0w7Ozs7O047Ozs7OworMTAwNDtNWUFOTUFSIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzEwMDU7TVlBTk1BUiBMRVRURVIgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzEwMDY7TVlBTk1BUiBMRVRURVIgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA3O01ZQU5NQVIgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA4O01ZQU5NQVIgTEVUVEVSIEpIQTtMbzswO0w7Ozs7O047Ozs7OworMTAwOTtNWUFOTUFSIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzEwMEE7TVlBTk1BUiBMRVRURVIgTk5ZQTtMbzswO0w7Ozs7O047Ozs7OworMTAwQjtNWUFOTUFSIExFVFRFUiBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMEM7TVlBTk1BUiBMRVRURVIgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMTAwRDtNWUFOTUFSIExFVFRFUiBEREE7TG87MDtMOzs7OztOOzs7OzsKKzEwMEU7TVlBTk1BUiBMRVRURVIgRERIQTtMbzswO0w7Ozs7O047Ozs7OworMTAwRjtNWUFOTUFSIExFVFRFUiBOTkE7TG87MDtMOzs7OztOOzs7OzsKKzEwMTA7TVlBTk1BUiBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMTE7TVlBTk1BUiBMRVRURVIgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDEyO01ZQU5NQVIgTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDEzO01ZQU5NQVIgTEVUVEVSIERIQTtMbzswO0w7Ozs7O047Ozs7OworMTAxNDtNWUFOTUFSIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMTAxNTtNWUFOTUFSIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMTAxNjtNWUFOTUFSIExFVFRFUiBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMTc7TVlBTk1BUiBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzEwMTg7TVlBTk1BUiBMRVRURVIgQkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDE5O01ZQU5NQVIgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDFBO01ZQU5NQVIgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDFCO01ZQU5NQVIgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDFDO01ZQU5NQVIgTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDFEO01ZQU5NQVIgTEVUVEVSIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDFFO01ZQU5NQVIgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDFGO01ZQU5NQVIgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDIwO01ZQU5NQVIgTEVUVEVSIExMQTtMbzswO0w7Ozs7O047Ozs7OworMTAyMTtNWUFOTUFSIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDIzO01ZQU5NQVIgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzEwMjQ7TVlBTk1BUiBMRVRURVIgSUk7TG87MDtMOzs7OztOOzs7OzsKKzEwMjU7TVlBTk1BUiBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMTAyNjtNWUFOTUFSIExFVFRFUiBVVTtMbzswO0w7MTAyNSAxMDJFOzs7O047Ozs7OworMTAyNztNWUFOTUFSIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDI5O01ZQU5NQVIgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzEwMkE7TVlBTk1BUiBMRVRURVIgQVU7TG87MDtMOzs7OztOOzs7OzsKKzEwMkM7TVlBTk1BUiBWT1dFTCBTSUdOIEFBO01jOzA7TDs7Ozs7Tjs7Ozs7CisxMDJEO01ZQU5NQVIgVk9XRUwgU0lHTiBJO01uOzA7TlNNOzs7OztOOzs7OzsKKzEwMkU7TVlBTk1BUiBWT1dFTCBTSUdOIElJO01uOzA7TlNNOzs7OztOOzs7OzsKKzEwMkY7TVlBTk1BUiBWT1dFTCBTSUdOIFU7TW47MDtOU007Ozs7O047Ozs7OworMTAzMDtNWUFOTUFSIFZPV0VMIFNJR04gVVU7TW47MDtOU007Ozs7O047Ozs7OworMTAzMTtNWUFOTUFSIFZPV0VMIFNJR04gRTtNYzswO0w7Ozs7O047Ozs7OworMTAzMjtNWUFOTUFSIFZPV0VMIFNJR04gQUk7TW47MDtOU007Ozs7O047Ozs7OworMTAzNjtNWUFOTUFSIFNJR04gQU5VU1ZBUkE7TW47MDtOU007Ozs7O047Ozs7OworMTAzNztNWUFOTUFSIFNJR04gRE9UIEJFTE9XO01uOzc7TlNNOzs7OztOOzs7OzsKKzEwMzg7TVlBTk1BUiBTSUdOIFZJU0FSR0E7TWM7MDtMOzs7OztOOzs7OzsKKzEwMzk7TVlBTk1BUiBTSUdOIFZJUkFNQTtNbjs5O05TTTs7Ozs7Tjs7Ozs7CisxMDQwO01ZQU5NQVIgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMTA0MTtNWUFOTUFSIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMTA0MjtNWUFOTUFSIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMTA0MztNWUFOTUFSIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CisxMDQ0O01ZQU5NQVIgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMTA0NTtNWUFOTUFSIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzEwNDY7TVlBTk1BUiBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzEwNDc7TVlBTk1BUiBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMTA0ODtNWUFOTUFSIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CisxMDQ5O01ZQU5NQVIgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMTA0QTtNWUFOTUFSIFNJR04gTElUVExFIFNFQ1RJT047UG87MDtMOzs7OztOOzs7OzsKKzEwNEI7TVlBTk1BUiBTSUdOIFNFQ1RJT047UG87MDtMOzs7OztOOzs7OzsKKzEwNEM7TVlBTk1BUiBTWU1CT0wgTE9DQVRJVkU7UG87MDtMOzs7OztOOzs7OzsKKzEwNEQ7TVlBTk1BUiBTWU1CT0wgQ09NUExFVEVEO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxMDRFO01ZQU5NQVIgU1lNQk9MIEFGT1JFTUVOVElPTkVEO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxMDRGO01ZQU5NQVIgU1lNQk9MIEdFTklUSVZFO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxMDUwO01ZQU5NQVIgTEVUVEVSIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMTA1MTtNWUFOTUFSIExFVFRFUiBTU0E7TG87MDtMOzs7OztOOzs7OzsKKzEwNTI7TVlBTk1BUiBMRVRURVIgVk9DQUxJQyBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDUzO01ZQU5NQVIgTEVUVEVSIFZPQ0FMSUMgUlI7TG87MDtMOzs7OztOOzs7OzsKKzEwNTQ7TVlBTk1BUiBMRVRURVIgVk9DQUxJQyBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDU1O01ZQU5NQVIgTEVUVEVSIFZPQ0FMSUMgTEw7TG87MDtMOzs7OztOOzs7OzsKKzEwNTY7TVlBTk1BUiBWT1dFTCBTSUdOIFZPQ0FMSUMgUjtNYzswO0w7Ozs7O047Ozs7OworMTA1NztNWUFOTUFSIFZPV0VMIFNJR04gVk9DQUxJQyBSUjtNYzswO0w7Ozs7O047Ozs7OworMTA1ODtNWUFOTUFSIFZPV0VMIFNJR04gVk9DQUxJQyBMO01uOzA7TlNNOzs7OztOOzs7OzsKKzEwNTk7TVlBTk1BUiBWT1dFTCBTSUdOIFZPQ0FMSUMgTEw7TW47MDtOU007Ozs7O047Ozs7OworMTBBMDtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBBTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEExO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEJBTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEEyO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEdBTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEEzO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIERPTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEE0O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEVOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwQTU7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgVklOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwQTY7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgWkVOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwQTc7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgVEFOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwQTg7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgSU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBBOTtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBLQU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBBQTtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBMQVM7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBBQjtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBNQU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBBQztHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBOQVI7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBBRDtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBPTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEFFO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFBBUjtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEFGO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFpIQVI7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBCMDtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBSQUU7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBCMTtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBTQU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBCMjtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBUQVI7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBCMztHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBVTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEI0O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFBIQVI7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBCNTtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBLSEFSO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwQjY7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgR0hBTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEI3O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFFBUjtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEI4O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFNISU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBCOTtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBDSElOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwQkE7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgQ0FOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwQkI7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgSklMO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwQkM7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgQ0lMO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwQkQ7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgQ0hBUjtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEJFO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFhBTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEJGO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEpIQU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBDMDtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBIQUU7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7OworMTBDMTtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBIRTtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEMyO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEhJRTtMdTswO0w7Ozs7O047O0todXRzdXJpOzs7CisxMEMzO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFdFO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwQzQ7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgSEFSO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwQzU7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgSE9FO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzsKKzEwRDA7R0VPUkdJQU4gTEVUVEVSIEFOO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgQU47Ozs7CisxMEQxO0dFT1JHSUFOIExFVFRFUiBCQU47TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBCQU47Ozs7CisxMEQyO0dFT1JHSUFOIExFVFRFUiBHQU47TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBHQU47Ozs7CisxMEQzO0dFT1JHSUFOIExFVFRFUiBET047TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBET047Ozs7CisxMEQ0O0dFT1JHSUFOIExFVFRFUiBFTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEVOOzs7OworMTBENTtHRU9SR0lBTiBMRVRURVIgVklOO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgVklOOzs7OworMTBENjtHRU9SR0lBTiBMRVRURVIgWkVOO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgWkVOOzs7OworMTBENztHRU9SR0lBTiBMRVRURVIgVEFOO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgVEFOOzs7OworMTBEODtHRU9SR0lBTiBMRVRURVIgSU47TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBJTjs7OzsKKzEwRDk7R0VPUkdJQU4gTEVUVEVSIEtBTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEtBTjs7OzsKKzEwREE7R0VPUkdJQU4gTEVUVEVSIExBUztMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIExBUzs7OzsKKzEwREI7R0VPUkdJQU4gTEVUVEVSIE1BTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIE1BTjs7OzsKKzEwREM7R0VPUkdJQU4gTEVUVEVSIE5BUjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIE5BUjs7OzsKKzEwREQ7R0VPUkdJQU4gTEVUVEVSIE9OO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgT047Ozs7CisxMERFO0dFT1JHSUFOIExFVFRFUiBQQVI7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBQQVI7Ozs7CisxMERGO0dFT1JHSUFOIExFVFRFUiBaSEFSO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgWkhBUjs7OzsKKzEwRTA7R0VPUkdJQU4gTEVUVEVSIFJBRTtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFJBRTs7OzsKKzEwRTE7R0VPUkdJQU4gTEVUVEVSIFNBTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFNBTjs7OzsKKzEwRTI7R0VPUkdJQU4gTEVUVEVSIFRBUjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFRBUjs7OzsKKzEwRTM7R0VPUkdJQU4gTEVUVEVSIFVOO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgVU47Ozs7CisxMEU0O0dFT1JHSUFOIExFVFRFUiBQSEFSO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgUEhBUjs7OzsKKzEwRTU7R0VPUkdJQU4gTEVUVEVSIEtIQVI7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBLSEFSOzs7OworMTBFNjtHRU9SR0lBTiBMRVRURVIgR0hBTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEdIQU47Ozs7CisxMEU3O0dFT1JHSUFOIExFVFRFUiBRQVI7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBRQVI7Ozs7CisxMEU4O0dFT1JHSUFOIExFVFRFUiBTSElOO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgU0hJTjs7OzsKKzEwRTk7R0VPUkdJQU4gTEVUVEVSIENISU47TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBDSElOOzs7OworMTBFQTtHRU9SR0lBTiBMRVRURVIgQ0FOO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgQ0FOOzs7OworMTBFQjtHRU9SR0lBTiBMRVRURVIgSklMO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgSklMOzs7OworMTBFQztHRU9SR0lBTiBMRVRURVIgQ0lMO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgQ0lMOzs7OworMTBFRDtHRU9SR0lBTiBMRVRURVIgQ0hBUjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIENIQVI7Ozs7CisxMEVFO0dFT1JHSUFOIExFVFRFUiBYQU47TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBYQU47Ozs7CisxMEVGO0dFT1JHSUFOIExFVFRFUiBKSEFOO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgSkhBTjs7OzsKKzEwRjA7R0VPUkdJQU4gTEVUVEVSIEhBRTtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEhBRTs7OzsKKzEwRjE7R0VPUkdJQU4gTEVUVEVSIEhFO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgSEU7Ozs7CisxMEYyO0dFT1JHSUFOIExFVFRFUiBISUU7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBISUU7Ozs7CisxMEYzO0dFT1JHSUFOIExFVFRFUiBXRTtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFdFOzs7OworMTBGNDtHRU9SR0lBTiBMRVRURVIgSEFSO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgSEFSOzs7OworMTBGNTtHRU9SR0lBTiBMRVRURVIgSE9FO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgSE9FOzs7OworMTBGNjtHRU9SR0lBTiBMRVRURVIgRkk7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBGSTs7OzsKKzEwRjc7R0VPUkdJQU4gTEVUVEVSIFlOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMEY4O0dFT1JHSUFOIExFVFRFUiBFTElGSTtMbzswO0w7Ozs7O047Ozs7OworMTBGQjtHRU9SR0lBTiBQQVJBR1JBUEggU0VQQVJBVE9SO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxMTAwO0hBTkdVTCBDSE9TRU9ORyBLSVlFT0s7TG87MDtMOzs7OztOOztnICo7OzsKKzExMDE7SEFOR1VMIENIT1NFT05HIFNTQU5HS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Z2cgKjs7OworMTEwMjtIQU5HVUwgQ0hPU0VPTkcgTklFVU47TG87MDtMOzs7OztOOztuICo7OzsKKzExMDM7SEFOR1VMIENIT1NFT05HIFRJS0VVVDtMbzswO0w7Ozs7O047O2QgKjs7OworMTEwNDtIQU5HVUwgQ0hPU0VPTkcgU1NBTkdUSUtFVVQ7TG87MDtMOzs7OztOOztkZCAqOzs7CisxMTA1O0hBTkdVTCBDSE9TRU9ORyBSSUVVTDtMbzswO0w7Ozs7O047O3IgKjs7OworMTEwNjtIQU5HVUwgQ0hPU0VPTkcgTUlFVU07TG87MDtMOzs7OztOOzttICo7OzsKKzExMDc7SEFOR1VMIENIT1NFT05HIFBJRVVQO0xvOzA7TDs7Ozs7Tjs7YiAqOzs7CisxMTA4O0hBTkdVTCBDSE9TRU9ORyBTU0FOR1BJRVVQO0xvOzA7TDs7Ozs7Tjs7YmIgKjs7OworMTEwOTtIQU5HVUwgQ0hPU0VPTkcgU0lPUztMbzswO0w7Ozs7O047O3MgKjs7OworMTEwQTtIQU5HVUwgQ0hPU0VPTkcgU1NBTkdTSU9TO0xvOzA7TDs7Ozs7Tjs7c3MgKjs7OworMTEwQjtIQU5HVUwgQ0hPU0VPTkcgSUVVTkc7TG87MDtMOzs7OztOOzs7OzsKKzExMEM7SEFOR1VMIENIT1NFT05HIENJRVVDO0xvOzA7TDs7Ozs7Tjs7aiAqOzs7CisxMTBEO0hBTkdVTCBDSE9TRU9ORyBTU0FOR0NJRVVDO0xvOzA7TDs7Ozs7Tjs7amogKjs7OworMTEwRTtIQU5HVUwgQ0hPU0VPTkcgQ0hJRVVDSDtMbzswO0w7Ozs7O047O2MgKjs7OworMTEwRjtIQU5HVUwgQ0hPU0VPTkcgS0hJRVVLSDtMbzswO0w7Ozs7O047O2sgKjs7OworMTExMDtIQU5HVUwgQ0hPU0VPTkcgVEhJRVVUSDtMbzswO0w7Ozs7O047O3QgKjs7OworMTExMTtIQU5HVUwgQ0hPU0VPTkcgUEhJRVVQSDtMbzswO0w7Ozs7O047O3AgKjs7OworMTExMjtIQU5HVUwgQ0hPU0VPTkcgSElFVUg7TG87MDtMOzs7OztOOztoICo7OzsKKzExMTM7SEFOR1VMIENIT1NFT05HIE5JRVVOLUtJWUVPSztMbzswO0w7Ozs7O047Ozs7OworMTExNDtIQU5HVUwgQ0hPU0VPTkcgU1NBTkdOSUVVTjtMbzswO0w7Ozs7O047Ozs7OworMTExNTtIQU5HVUwgQ0hPU0VPTkcgTklFVU4tVElLRVVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTE2O0hBTkdVTCBDSE9TRU9ORyBOSUVVTi1QSUVVUDtMbzswO0w7Ozs7O047Ozs7OworMTExNztIQU5HVUwgQ0hPU0VPTkcgVElLRVVULUtJWUVPSztMbzswO0w7Ozs7O047Ozs7OworMTExODtIQU5HVUwgQ0hPU0VPTkcgUklFVUwtTklFVU47TG87MDtMOzs7OztOOzs7OzsKKzExMTk7SEFOR1VMIENIT1NFT05HIFNTQU5HUklFVUw7TG87MDtMOzs7OztOOzs7OzsKKzExMUE7SEFOR1VMIENIT1NFT05HIFJJRVVMLUhJRVVIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTFCO0hBTkdVTCBDSE9TRU9ORyBLQVBZRU9VTlJJRVVMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTFDO0hBTkdVTCBDSE9TRU9ORyBNSUVVTS1QSUVVUDtMbzswO0w7Ozs7O047Ozs7OworMTExRDtIQU5HVUwgQ0hPU0VPTkcgS0FQWUVPVU5NSUVVTTtMbzswO0w7Ozs7O047Ozs7OworMTExRTtIQU5HVUwgQ0hPU0VPTkcgUElFVVAtS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTFGO0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1OSUVVTjtMbzswO0w7Ozs7O047Ozs7OworMTEyMDtIQU5HVUwgQ0hPU0VPTkcgUElFVVAtVElLRVVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTIxO0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTIyO0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1TSU9TLUtJWUVPSztMbzswO0w7Ozs7O047Ozs7OworMTEyMztIQU5HVUwgQ0hPU0VPTkcgUElFVVAtU0lPUy1USUtFVVQ7TG87MDtMOzs7OztOOzs7OzsKKzExMjQ7SEFOR1VMIENIT1NFT05HIFBJRVVQLVNJT1MtUElFVVA7TG87MDtMOzs7OztOOzs7OzsKKzExMjU7SEFOR1VMIENIT1NFT05HIFBJRVVQLVNTQU5HU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTEyNjtIQU5HVUwgQ0hPU0VPTkcgUElFVVAtU0lPUy1DSUVVQztMbzswO0w7Ozs7O047Ozs7OworMTEyNztIQU5HVUwgQ0hPU0VPTkcgUElFVVAtQ0lFVUM7TG87MDtMOzs7OztOOzs7OzsKKzExMjg7SEFOR1VMIENIT1NFT05HIFBJRVVQLUNISUVVQ0g7TG87MDtMOzs7OztOOzs7OzsKKzExMjk7SEFOR1VMIENIT1NFT05HIFBJRVVQLVRISUVVVEg7TG87MDtMOzs7OztOOzs7OzsKKzExMkE7SEFOR1VMIENIT1NFT05HIFBJRVVQLVBISUVVUEg7TG87MDtMOzs7OztOOzs7OzsKKzExMkI7SEFOR1VMIENIT1NFT05HIEtBUFlFT1VOUElFVVA7TG87MDtMOzs7OztOOzs7OzsKKzExMkM7SEFOR1VMIENIT1NFT05HIEtBUFlFT1VOU1NBTkdQSUVVUDtMbzswO0w7Ozs7O047Ozs7OworMTEyRDtIQU5HVUwgQ0hPU0VPTkcgU0lPUy1LSVlFT0s7TG87MDtMOzs7OztOOzs7OzsKKzExMkU7SEFOR1VMIENIT1NFT05HIFNJT1MtTklFVU47TG87MDtMOzs7OztOOzs7OzsKKzExMkY7SEFOR1VMIENIT1NFT05HIFNJT1MtVElLRVVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTMwO0hBTkdVTCBDSE9TRU9ORyBTSU9TLVJJRVVMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTMxO0hBTkdVTCBDSE9TRU9ORyBTSU9TLU1JRVVNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTMyO0hBTkdVTCBDSE9TRU9ORyBTSU9TLVBJRVVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTMzO0hBTkdVTCBDSE9TRU9ORyBTSU9TLVBJRVVQLUtJWUVPSztMbzswO0w7Ozs7O047Ozs7OworMTEzNDtIQU5HVUwgQ0hPU0VPTkcgU0lPUy1TU0FOR1NJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExMzU7SEFOR1VMIENIT1NFT05HIFNJT1MtSUVVTkc7TG87MDtMOzs7OztOOzs7OzsKKzExMzY7SEFOR1VMIENIT1NFT05HIFNJT1MtQ0lFVUM7TG87MDtMOzs7OztOOzs7OzsKKzExMzc7SEFOR1VMIENIT1NFT05HIFNJT1MtQ0hJRVVDSDtMbzswO0w7Ozs7O047Ozs7OworMTEzODtIQU5HVUwgQ0hPU0VPTkcgU0lPUy1LSElFVUtIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTM5O0hBTkdVTCBDSE9TRU9ORyBTSU9TLVRISUVVVEg7TG87MDtMOzs7OztOOzs7OzsKKzExM0E7SEFOR1VMIENIT1NFT05HIFNJT1MtUEhJRVVQSDtMbzswO0w7Ozs7O047Ozs7OworMTEzQjtIQU5HVUwgQ0hPU0VPTkcgU0lPUy1ISUVVSDtMbzswO0w7Ozs7O047Ozs7OworMTEzQztIQU5HVUwgQ0hPU0VPTkcgQ0hJVFVFVU1TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTNEO0hBTkdVTCBDSE9TRU9ORyBDSElUVUVVTVNTQU5HU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTEzRTtIQU5HVUwgQ0hPU0VPTkcgQ0VPTkdDSElFVU1TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTNGO0hBTkdVTCBDSE9TRU9ORyBDRU9OR0NISUVVTVNTQU5HU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTE0MDtIQU5HVUwgQ0hPU0VPTkcgUEFOU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTE0MTtIQU5HVUwgQ0hPU0VPTkcgSUVVTkctS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTQyO0hBTkdVTCBDSE9TRU9ORyBJRVVORy1USUtFVVQ7TG87MDtMOzs7OztOOzs7OzsKKzExNDM7SEFOR1VMIENIT1NFT05HIElFVU5HLU1JRVVNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTQ0O0hBTkdVTCBDSE9TRU9ORyBJRVVORy1QSUVVUDtMbzswO0w7Ozs7O047Ozs7OworMTE0NTtIQU5HVUwgQ0hPU0VPTkcgSUVVTkctU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTE0NjtIQU5HVUwgQ0hPU0VPTkcgSUVVTkctUEFOU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTE0NztIQU5HVUwgQ0hPU0VPTkcgU1NBTkdJRVVORztMbzswO0w7Ozs7O047Ozs7OworMTE0ODtIQU5HVUwgQ0hPU0VPTkcgSUVVTkctQ0lFVUM7TG87MDtMOzs7OztOOzs7OzsKKzExNDk7SEFOR1VMIENIT1NFT05HIElFVU5HLUNISUVVQ0g7TG87MDtMOzs7OztOOzs7OzsKKzExNEE7SEFOR1VMIENIT1NFT05HIElFVU5HLVRISUVVVEg7TG87MDtMOzs7OztOOzs7OzsKKzExNEI7SEFOR1VMIENIT1NFT05HIElFVU5HLVBISUVVUEg7TG87MDtMOzs7OztOOzs7OzsKKzExNEM7SEFOR1VMIENIT1NFT05HIFlFU0lFVU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTREO0hBTkdVTCBDSE9TRU9ORyBDSUVVQy1JRVVORztMbzswO0w7Ozs7O047Ozs7OworMTE0RTtIQU5HVUwgQ0hPU0VPTkcgQ0hJVFVFVU1DSUVVQztMbzswO0w7Ozs7O047Ozs7OworMTE0RjtIQU5HVUwgQ0hPU0VPTkcgQ0hJVFVFVU1TU0FOR0NJRVVDO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTUwO0hBTkdVTCBDSE9TRU9ORyBDRU9OR0NISUVVTUNJRVVDO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTUxO0hBTkdVTCBDSE9TRU9ORyBDRU9OR0NISUVVTVNTQU5HQ0lFVUM7TG87MDtMOzs7OztOOzs7OzsKKzExNTI7SEFOR1VMIENIT1NFT05HIENISUVVQ0gtS0hJRVVLSDtMbzswO0w7Ozs7O047Ozs7OworMTE1MztIQU5HVUwgQ0hPU0VPTkcgQ0hJRVVDSC1ISUVVSDtMbzswO0w7Ozs7O047Ozs7OworMTE1NDtIQU5HVUwgQ0hPU0VPTkcgQ0hJVFVFVU1DSElFVUNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTU1O0hBTkdVTCBDSE9TRU9ORyBDRU9OR0NISUVVTUNISUVVQ0g7TG87MDtMOzs7OztOOzs7OzsKKzExNTY7SEFOR1VMIENIT1NFT05HIFBISUVVUEgtUElFVVA7TG87MDtMOzs7OztOOzs7OzsKKzExNTc7SEFOR1VMIENIT1NFT05HIEtBUFlFT1VOUEhJRVVQSDtMbzswO0w7Ozs7O047Ozs7OworMTE1ODtIQU5HVUwgQ0hPU0VPTkcgU1NBTkdISUVVSDtMbzswO0w7Ozs7O047Ozs7OworMTE1OTtIQU5HVUwgQ0hPU0VPTkcgWUVPUklOSElFVUg7TG87MDtMOzs7OztOOzs7OzsKKzExNUY7SEFOR1VMIENIT1NFT05HIEZJTExFUjtMbzswO0w7Ozs7O047Ozs7OworMTE2MDtIQU5HVUwgSlVOR1NFT05HIEZJTExFUjtMbzswO0w7Ozs7O047Ozs7OworMTE2MTtIQU5HVUwgSlVOR1NFT05HIEE7TG87MDtMOzs7OztOOzs7OzsKKzExNjI7SEFOR1VMIEpVTkdTRU9ORyBBRTtMbzswO0w7Ozs7O047Ozs7OworMTE2MztIQU5HVUwgSlVOR1NFT05HIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTY0O0hBTkdVTCBKVU5HU0VPTkcgWUFFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTY1O0hBTkdVTCBKVU5HU0VPTkcgRU87TG87MDtMOzs7OztOOzs7OzsKKzExNjY7SEFOR1VMIEpVTkdTRU9ORyBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTY3O0hBTkdVTCBKVU5HU0VPTkcgWUVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTY4O0hBTkdVTCBKVU5HU0VPTkcgWUU7TG87MDtMOzs7OztOOzs7OzsKKzExNjk7SEFOR1VMIEpVTkdTRU9ORyBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTZBO0hBTkdVTCBKVU5HU0VPTkcgV0E7TG87MDtMOzs7OztOOzs7OzsKKzExNkI7SEFOR1VMIEpVTkdTRU9ORyBXQUU7TG87MDtMOzs7OztOOzs7OzsKKzExNkM7SEFOR1VMIEpVTkdTRU9ORyBPRTtMbzswO0w7Ozs7O047Ozs7OworMTE2RDtIQU5HVUwgSlVOR1NFT05HIFlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTZFO0hBTkdVTCBKVU5HU0VPTkcgVTtMbzswO0w7Ozs7O047Ozs7OworMTE2RjtIQU5HVUwgSlVOR1NFT05HIFdFTztMbzswO0w7Ozs7O047Ozs7OworMTE3MDtIQU5HVUwgSlVOR1NFT05HIFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTcxO0hBTkdVTCBKVU5HU0VPTkcgV0k7TG87MDtMOzs7OztOOzs7OzsKKzExNzI7SEFOR1VMIEpVTkdTRU9ORyBZVTtMbzswO0w7Ozs7O047Ozs7OworMTE3MztIQU5HVUwgSlVOR1NFT05HIEVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTc0O0hBTkdVTCBKVU5HU0VPTkcgWUk7TG87MDtMOzs7OztOOzs7OzsKKzExNzU7SEFOR1VMIEpVTkdTRU9ORyBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTc2O0hBTkdVTCBKVU5HU0VPTkcgQS1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTc3O0hBTkdVTCBKVU5HU0VPTkcgQS1VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTc4O0hBTkdVTCBKVU5HU0VPTkcgWUEtTztMbzswO0w7Ozs7O047Ozs7OworMTE3OTtIQU5HVUwgSlVOR1NFT05HIFlBLVlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTdBO0hBTkdVTCBKVU5HU0VPTkcgRU8tTztMbzswO0w7Ozs7O047Ozs7OworMTE3QjtIQU5HVUwgSlVOR1NFT05HIEVPLVU7TG87MDtMOzs7OztOOzs7OzsKKzExN0M7SEFOR1VMIEpVTkdTRU9ORyBFTy1FVTtMbzswO0w7Ozs7O047Ozs7OworMTE3RDtIQU5HVUwgSlVOR1NFT05HIFlFTy1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTdFO0hBTkdVTCBKVU5HU0VPTkcgWUVPLVU7TG87MDtMOzs7OztOOzs7OzsKKzExN0Y7SEFOR1VMIEpVTkdTRU9ORyBPLUVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTgwO0hBTkdVTCBKVU5HU0VPTkcgTy1FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTgxO0hBTkdVTCBKVU5HU0VPTkcgTy1ZRTtMbzswO0w7Ozs7O047Ozs7OworMTE4MjtIQU5HVUwgSlVOR1NFT05HIE8tTztMbzswO0w7Ozs7O047Ozs7OworMTE4MztIQU5HVUwgSlVOR1NFT05HIE8tVTtMbzswO0w7Ozs7O047Ozs7OworMTE4NDtIQU5HVUwgSlVOR1NFT05HIFlPLVlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTg1O0hBTkdVTCBKVU5HU0VPTkcgWU8tWUFFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTg2O0hBTkdVTCBKVU5HU0VPTkcgWU8tWUVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTg3O0hBTkdVTCBKVU5HU0VPTkcgWU8tTztMbzswO0w7Ozs7O047Ozs7OworMTE4ODtIQU5HVUwgSlVOR1NFT05HIFlPLUk7TG87MDtMOzs7OztOOzs7OzsKKzExODk7SEFOR1VMIEpVTkdTRU9ORyBVLUE7TG87MDtMOzs7OztOOzs7OzsKKzExOEE7SEFOR1VMIEpVTkdTRU9ORyBVLUFFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMThCO0hBTkdVTCBKVU5HU0VPTkcgVS1FTy1FVTtMbzswO0w7Ozs7O047Ozs7OworMTE4QztIQU5HVUwgSlVOR1NFT05HIFUtWUU7TG87MDtMOzs7OztOOzs7OzsKKzExOEQ7SEFOR1VMIEpVTkdTRU9ORyBVLVU7TG87MDtMOzs7OztOOzs7OzsKKzExOEU7SEFOR1VMIEpVTkdTRU9ORyBZVS1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMThGO0hBTkdVTCBKVU5HU0VPTkcgWVUtRU87TG87MDtMOzs7OztOOzs7OzsKKzExOTA7SEFOR1VMIEpVTkdTRU9ORyBZVS1FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTkxO0hBTkdVTCBKVU5HU0VPTkcgWVUtWUVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTkyO0hBTkdVTCBKVU5HU0VPTkcgWVUtWUU7TG87MDtMOzs7OztOOzs7OzsKKzExOTM7SEFOR1VMIEpVTkdTRU9ORyBZVS1VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTk0O0hBTkdVTCBKVU5HU0VPTkcgWVUtSTtMbzswO0w7Ozs7O047Ozs7OworMTE5NTtIQU5HVUwgSlVOR1NFT05HIEVVLVU7TG87MDtMOzs7OztOOzs7OzsKKzExOTY7SEFOR1VMIEpVTkdTRU9ORyBFVS1FVTtMbzswO0w7Ozs7O047Ozs7OworMTE5NztIQU5HVUwgSlVOR1NFT05HIFlJLVU7TG87MDtMOzs7OztOOzs7OzsKKzExOTg7SEFOR1VMIEpVTkdTRU9ORyBJLUE7TG87MDtMOzs7OztOOzs7OzsKKzExOTk7SEFOR1VMIEpVTkdTRU9ORyBJLVlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTlBO0hBTkdVTCBKVU5HU0VPTkcgSS1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTlCO0hBTkdVTCBKVU5HU0VPTkcgSS1VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTlDO0hBTkdVTCBKVU5HU0VPTkcgSS1FVTtMbzswO0w7Ozs7O047Ozs7OworMTE5RDtIQU5HVUwgSlVOR1NFT05HIEktQVJBRUE7TG87MDtMOzs7OztOOzs7OzsKKzExOUU7SEFOR1VMIEpVTkdTRU9ORyBBUkFFQTtMbzswO0w7Ozs7O047Ozs7OworMTE5RjtIQU5HVUwgSlVOR1NFT05HIEFSQUVBLUVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUEwO0hBTkdVTCBKVU5HU0VPTkcgQVJBRUEtVTtMbzswO0w7Ozs7O047Ozs7OworMTFBMTtIQU5HVUwgSlVOR1NFT05HIEFSQUVBLUk7TG87MDtMOzs7OztOOzs7OzsKKzExQTI7SEFOR1VMIEpVTkdTRU9ORyBTU0FOR0FSQUVBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUE4O0hBTkdVTCBKT05HU0VPTkcgS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7ZyAqOzs7CisxMUE5O0hBTkdVTCBKT05HU0VPTkcgU1NBTkdLSVlFT0s7TG87MDtMOzs7OztOOztnZyAqOzs7CisxMUFBO0hBTkdVTCBKT05HU0VPTkcgS0lZRU9LLVNJT1M7TG87MDtMOzs7OztOOztncyAqOzs7CisxMUFCO0hBTkdVTCBKT05HU0VPTkcgTklFVU47TG87MDtMOzs7OztOOztuICo7OzsKKzExQUM7SEFOR1VMIEpPTkdTRU9ORyBOSUVVTi1DSUVVQztMbzswO0w7Ozs7O047O25qICo7OzsKKzExQUQ7SEFOR1VMIEpPTkdTRU9ORyBOSUVVTi1ISUVVSDtMbzswO0w7Ozs7O047O25oICo7OzsKKzExQUU7SEFOR1VMIEpPTkdTRU9ORyBUSUtFVVQ7TG87MDtMOzs7OztOOztkICo7OzsKKzExQUY7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTDtMbzswO0w7Ozs7O047O2wgKjs7OworMTFCMDtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLUtJWUVPSztMbzswO0w7Ozs7O047O2xnICo7OzsKKzExQjE7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1NSUVVTTtMbzswO0w7Ozs7O047O2xtICo7OzsKKzExQjI7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1QSUVVUDtMbzswO0w7Ozs7O047O2xiICo7OzsKKzExQjM7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1TSU9TO0xvOzA7TDs7Ozs7Tjs7bHMgKjs7OworMTFCNDtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLVRISUVVVEg7TG87MDtMOzs7OztOOztsdCAqOzs7CisxMUI1O0hBTkdVTCBKT05HU0VPTkcgUklFVUwtUEhJRVVQSDtMbzswO0w7Ozs7O047O2xwICo7OzsKKzExQjY7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1ISUVVSDtMbzswO0w7Ozs7O047O2xoICo7OzsKKzExQjc7SEFOR1VMIEpPTkdTRU9ORyBNSUVVTTtMbzswO0w7Ozs7O047O20gKjs7OworMTFCODtIQU5HVUwgSk9OR1NFT05HIFBJRVVQO0xvOzA7TDs7Ozs7Tjs7YiAqOzs7CisxMUI5O0hBTkdVTCBKT05HU0VPTkcgUElFVVAtU0lPUztMbzswO0w7Ozs7O047O2JzICo7OzsKKzExQkE7SEFOR1VMIEpPTkdTRU9ORyBTSU9TO0xvOzA7TDs7Ozs7Tjs7cyAqOzs7CisxMUJCO0hBTkdVTCBKT05HU0VPTkcgU1NBTkdTSU9TO0xvOzA7TDs7Ozs7Tjs7c3MgKjs7OworMTFCQztIQU5HVUwgSk9OR1NFT05HIElFVU5HO0xvOzA7TDs7Ozs7Tjs7bmcgKjs7OworMTFCRDtIQU5HVUwgSk9OR1NFT05HIENJRVVDO0xvOzA7TDs7Ozs7Tjs7aiAqOzs7CisxMUJFO0hBTkdVTCBKT05HU0VPTkcgQ0hJRVVDSDtMbzswO0w7Ozs7O047O2MgKjs7OworMTFCRjtIQU5HVUwgSk9OR1NFT05HIEtISUVVS0g7TG87MDtMOzs7OztOOztrICo7OzsKKzExQzA7SEFOR1VMIEpPTkdTRU9ORyBUSElFVVRIO0xvOzA7TDs7Ozs7Tjs7dCAqOzs7CisxMUMxO0hBTkdVTCBKT05HU0VPTkcgUEhJRVVQSDtMbzswO0w7Ozs7O047O3AgKjs7OworMTFDMjtIQU5HVUwgSk9OR1NFT05HIEhJRVVIO0xvOzA7TDs7Ozs7Tjs7aCAqOzs7CisxMUMzO0hBTkdVTCBKT05HU0VPTkcgS0lZRU9LLVJJRVVMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUM0O0hBTkdVTCBKT05HU0VPTkcgS0lZRU9LLVNJT1MtS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUM1O0hBTkdVTCBKT05HU0VPTkcgTklFVU4tS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUM2O0hBTkdVTCBKT05HU0VPTkcgTklFVU4tVElLRVVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUM3O0hBTkdVTCBKT05HU0VPTkcgTklFVU4tU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTFDODtIQU5HVUwgSk9OR1NFT05HIE5JRVVOLVBBTlNJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExQzk7SEFOR1VMIEpPTkdTRU9ORyBOSUVVTi1USElFVVRIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUNBO0hBTkdVTCBKT05HU0VPTkcgVElLRVVULUtJWUVPSztMbzswO0w7Ozs7O047Ozs7OworMTFDQjtIQU5HVUwgSk9OR1NFT05HIFRJS0VVVC1SSUVVTDtMbzswO0w7Ozs7O047Ozs7OworMTFDQztIQU5HVUwgSk9OR1NFT05HIFJJRVVMLUtJWUVPSy1TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUNEO0hBTkdVTCBKT05HU0VPTkcgUklFVUwtTklFVU47TG87MDtMOzs7OztOOzs7OzsKKzExQ0U7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1USUtFVVQ7TG87MDtMOzs7OztOOzs7OzsKKzExQ0Y7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1USUtFVVQtSElFVUg7TG87MDtMOzs7OztOOzs7OzsKKzExRDA7SEFOR1VMIEpPTkdTRU9ORyBTU0FOR1JJRVVMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUQxO0hBTkdVTCBKT05HU0VPTkcgUklFVUwtTUlFVU0tS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUQyO0hBTkdVTCBKT05HU0VPTkcgUklFVUwtTUlFVU0tU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTFEMztIQU5HVUwgSk9OR1NFT05HIFJJRVVMLVBJRVVQLVNJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExRDQ7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1QSUVVUC1ISUVVSDtMbzswO0w7Ozs7O047Ozs7OworMTFENTtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLUtBUFlFT1VOUElFVVA7TG87MDtMOzs7OztOOzs7OzsKKzExRDY7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1TU0FOR1NJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExRDc7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1QQU5TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUQ4O0hBTkdVTCBKT05HU0VPTkcgUklFVUwtS0hJRVVLSDtMbzswO0w7Ozs7O047Ozs7OworMTFEOTtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLVlFT1JJTkhJRVVIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMURBO0hBTkdVTCBKT05HU0VPTkcgTUlFVU0tS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMURCO0hBTkdVTCBKT05HU0VPTkcgTUlFVU0tUklFVUw7TG87MDtMOzs7OztOOzs7OzsKKzExREM7SEFOR1VMIEpPTkdTRU9ORyBNSUVVTS1QSUVVUDtMbzswO0w7Ozs7O047Ozs7OworMTFERDtIQU5HVUwgSk9OR1NFT05HIE1JRVVNLVNJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExREU7SEFOR1VMIEpPTkdTRU9ORyBNSUVVTS1TU0FOR1NJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExREY7SEFOR1VMIEpPTkdTRU9ORyBNSUVVTS1QQU5TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUUwO0hBTkdVTCBKT05HU0VPTkcgTUlFVU0tQ0hJRVVDSDtMbzswO0w7Ozs7O047Ozs7OworMTFFMTtIQU5HVUwgSk9OR1NFT05HIE1JRVVNLUhJRVVIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUUyO0hBTkdVTCBKT05HU0VPTkcgS0FQWUVPVU5NSUVVTTtMbzswO0w7Ozs7O047Ozs7OworMTFFMztIQU5HVUwgSk9OR1NFT05HIFBJRVVQLVJJRVVMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUU0O0hBTkdVTCBKT05HU0VPTkcgUElFVVAtUEhJRVVQSDtMbzswO0w7Ozs7O047Ozs7OworMTFFNTtIQU5HVUwgSk9OR1NFT05HIFBJRVVQLUhJRVVIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUU2O0hBTkdVTCBKT05HU0VPTkcgS0FQWUVPVU5QSUVVUDtMbzswO0w7Ozs7O047Ozs7OworMTFFNztIQU5HVUwgSk9OR1NFT05HIFNJT1MtS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUU4O0hBTkdVTCBKT05HU0VPTkcgU0lPUy1USUtFVVQ7TG87MDtMOzs7OztOOzs7OzsKKzExRTk7SEFOR1VMIEpPTkdTRU9ORyBTSU9TLVJJRVVMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUVBO0hBTkdVTCBKT05HU0VPTkcgU0lPUy1QSUVVUDtMbzswO0w7Ozs7O047Ozs7OworMTFFQjtIQU5HVUwgSk9OR1NFT05HIFBBTlNJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExRUM7SEFOR1VMIEpPTkdTRU9ORyBJRVVORy1LSVlFT0s7TG87MDtMOzs7OztOOzs7OzsKKzExRUQ7SEFOR1VMIEpPTkdTRU9ORyBJRVVORy1TU0FOR0tJWUVPSztMbzswO0w7Ozs7O047Ozs7OworMTFFRTtIQU5HVUwgSk9OR1NFT05HIFNTQU5HSUVVTkc7TG87MDtMOzs7OztOOzs7OzsKKzExRUY7SEFOR1VMIEpPTkdTRU9ORyBJRVVORy1LSElFVUtIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUYwO0hBTkdVTCBKT05HU0VPTkcgWUVTSUVVTkc7TG87MDtMOzs7OztOOzs7OzsKKzExRjE7SEFOR1VMIEpPTkdTRU9ORyBZRVNJRVVORy1TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUYyO0hBTkdVTCBKT05HU0VPTkcgWUVTSUVVTkctUEFOU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTFGMztIQU5HVUwgSk9OR1NFT05HIFBISUVVUEgtUElFVVA7TG87MDtMOzs7OztOOzs7OzsKKzExRjQ7SEFOR1VMIEpPTkdTRU9ORyBLQVBZRU9VTlBISUVVUEg7TG87MDtMOzs7OztOOzs7OzsKKzExRjU7SEFOR1VMIEpPTkdTRU9ORyBISUVVSC1OSUVVTjtMbzswO0w7Ozs7O047Ozs7OworMTFGNjtIQU5HVUwgSk9OR1NFT05HIEhJRVVILVJJRVVMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUY3O0hBTkdVTCBKT05HU0VPTkcgSElFVUgtTUlFVU07TG87MDtMOzs7OztOOzs7OzsKKzExRjg7SEFOR1VMIEpPTkdTRU9ORyBISUVVSC1QSUVVUDtMbzswO0w7Ozs7O047Ozs7OworMTFGOTtIQU5HVUwgSk9OR1NFT05HIFlFT1JJTkhJRVVIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAwO0VUSElPUElDIFNZTExBQkxFIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAxO0VUSElPUElDIFNZTExBQkxFIEhVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAyO0VUSElPUElDIFNZTExBQkxFIEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjAzO0VUSElPUElDIFNZTExBQkxFIEhBQTtMbzswO0w7Ozs7O047Ozs7OworMTIwNDtFVEhJT1BJQyBTWUxMQUJMRSBIRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyMDU7RVRISU9QSUMgU1lMTEFCTEUgSEU7TG87MDtMOzs7OztOOzs7OzsKKzEyMDY7RVRISU9QSUMgU1lMTEFCTEUgSE87TG87MDtMOzs7OztOOzs7OzsKKzEyMDg7RVRISU9QSUMgU1lMTEFCTEUgTEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMDk7RVRISU9QSUMgU1lMTEFCTEUgTFU7TG87MDtMOzs7OztOOzs7OzsKKzEyMEE7RVRISU9QSUMgU1lMTEFCTEUgTEk7TG87MDtMOzs7OztOOzs7OzsKKzEyMEI7RVRISU9QSUMgU1lMTEFCTEUgTEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBDO0VUSElPUElDIFNZTExBQkxFIExFRTtMbzswO0w7Ozs7O047Ozs7OworMTIwRDtFVEhJT1BJQyBTWUxMQUJMRSBMRTtMbzswO0w7Ozs7O047Ozs7OworMTIwRTtFVEhJT1BJQyBTWUxMQUJMRSBMTztMbzswO0w7Ozs7O047Ozs7OworMTIwRjtFVEhJT1BJQyBTWUxMQUJMRSBMV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyMTA7RVRISU9QSUMgU1lMTEFCTEUgSEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjExO0VUSElPUElDIFNZTExBQkxFIEhIVTtMbzswO0w7Ozs7O047Ozs7OworMTIxMjtFVEhJT1BJQyBTWUxMQUJMRSBISEk7TG87MDtMOzs7OztOOzs7OzsKKzEyMTM7RVRISU9QSUMgU1lMTEFCTEUgSEhBQTtMbzswO0w7Ozs7O047Ozs7OworMTIxNDtFVEhJT1BJQyBTWUxMQUJMRSBISEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE1O0VUSElPUElDIFNZTExBQkxFIEhIRTtMbzswO0w7Ozs7O047Ozs7OworMTIxNjtFVEhJT1BJQyBTWUxMQUJMRSBISE87TG87MDtMOzs7OztOOzs7OzsKKzEyMTc7RVRISU9QSUMgU1lMTEFCTEUgSEhXQTtMbzswO0w7Ozs7O047Ozs7OworMTIxODtFVEhJT1BJQyBTWUxMQUJMRSBNQTtMbzswO0w7Ozs7O047Ozs7OworMTIxOTtFVEhJT1BJQyBTWUxMQUJMRSBNVTtMbzswO0w7Ozs7O047Ozs7OworMTIxQTtFVEhJT1BJQyBTWUxMQUJMRSBNSTtMbzswO0w7Ozs7O047Ozs7OworMTIxQjtFVEhJT1BJQyBTWUxMQUJMRSBNQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyMUM7RVRISU9QSUMgU1lMTEFCTEUgTUVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFEO0VUSElPUElDIFNZTExBQkxFIE1FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFFO0VUSElPUElDIFNZTExBQkxFIE1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFGO0VUSElPUElDIFNZTExBQkxFIE1XQTtMbzswO0w7Ozs7O047Ozs7OworMTIyMDtFVEhJT1BJQyBTWUxMQUJMRSBTWkE7TG87MDtMOzs7OztOOzs7OzsKKzEyMjE7RVRISU9QSUMgU1lMTEFCTEUgU1pVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIyO0VUSElPUElDIFNZTExBQkxFIFNaSTtMbzswO0w7Ozs7O047Ozs7OworMTIyMztFVEhJT1BJQyBTWUxMQUJMRSBTWkFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI0O0VUSElPUElDIFNZTExBQkxFIFNaRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyMjU7RVRISU9QSUMgU1lMTEFCTEUgU1pFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI2O0VUSElPUElDIFNZTExBQkxFIFNaTztMbzswO0w7Ozs7O047Ozs7OworMTIyNztFVEhJT1BJQyBTWUxMQUJMRSBTWldBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI4O0VUSElPUElDIFNZTExBQkxFIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI5O0VUSElPUElDIFNZTExBQkxFIFJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJBO0VUSElPUElDIFNZTExBQkxFIFJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJCO0VUSElPUElDIFNZTExBQkxFIFJBQTtMbzswO0w7Ozs7O047Ozs7OworMTIyQztFVEhJT1BJQyBTWUxMQUJMRSBSRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyMkQ7RVRISU9QSUMgU1lMTEFCTEUgUkU7TG87MDtMOzs7OztOOzs7OzsKKzEyMkU7RVRISU9QSUMgU1lMTEFCTEUgUk87TG87MDtMOzs7OztOOzs7OzsKKzEyMkY7RVRISU9QSUMgU1lMTEFCTEUgUldBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMwO0VUSElPUElDIFNZTExBQkxFIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMxO0VUSElPUElDIFNZTExBQkxFIFNVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMyO0VUSElPUElDIFNZTExBQkxFIFNJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMzO0VUSElPUElDIFNZTExBQkxFIFNBQTtMbzswO0w7Ozs7O047Ozs7OworMTIzNDtFVEhJT1BJQyBTWUxMQUJMRSBTRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyMzU7RVRISU9QSUMgU1lMTEFCTEUgU0U7TG87MDtMOzs7OztOOzs7OzsKKzEyMzY7RVRISU9QSUMgU1lMTEFCTEUgU087TG87MDtMOzs7OztOOzs7OzsKKzEyMzc7RVRISU9QSUMgU1lMTEFCTEUgU1dBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM4O0VUSElPUElDIFNZTExBQkxFIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMTIzOTtFVEhJT1BJQyBTWUxMQUJMRSBTSFU7TG87MDtMOzs7OztOOzs7OzsKKzEyM0E7RVRISU9QSUMgU1lMTEFCTEUgU0hJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjNCO0VUSElPUElDIFNZTExBQkxFIFNIQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyM0M7RVRISU9QSUMgU1lMTEFCTEUgU0hFRTtMbzswO0w7Ozs7O047Ozs7OworMTIzRDtFVEhJT1BJQyBTWUxMQUJMRSBTSEU7TG87MDtMOzs7OztOOzs7OzsKKzEyM0U7RVRISU9QSUMgU1lMTEFCTEUgU0hPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjNGO0VUSElPUElDIFNZTExBQkxFIFNIV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyNDA7RVRISU9QSUMgU1lMTEFCTEUgUUE7TG87MDtMOzs7OztOOzs7OzsKKzEyNDE7RVRISU9QSUMgU1lMTEFCTEUgUVU7TG87MDtMOzs7OztOOzs7OzsKKzEyNDI7RVRISU9QSUMgU1lMTEFCTEUgUUk7TG87MDtMOzs7OztOOzs7OzsKKzEyNDM7RVRISU9QSUMgU1lMTEFCTEUgUUFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjQ0O0VUSElPUElDIFNZTExBQkxFIFFFRTtMbzswO0w7Ozs7O047Ozs7OworMTI0NTtFVEhJT1BJQyBTWUxMQUJMRSBRRTtMbzswO0w7Ozs7O047Ozs7OworMTI0NjtFVEhJT1BJQyBTWUxMQUJMRSBRTztMbzswO0w7Ozs7O047Ozs7OworMTI0ODtFVEhJT1BJQyBTWUxMQUJMRSBRV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyNEE7RVRISU9QSUMgU1lMTEFCTEUgUVdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjRCO0VUSElPUElDIFNZTExBQkxFIFFXQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyNEM7RVRISU9QSUMgU1lMTEFCTEUgUVdFRTtMbzswO0w7Ozs7O047Ozs7OworMTI0RDtFVEhJT1BJQyBTWUxMQUJMRSBRV0U7TG87MDtMOzs7OztOOzs7OzsKKzEyNTA7RVRISU9QSUMgU1lMTEFCTEUgUUhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjUxO0VUSElPUElDIFNZTExBQkxFIFFIVTtMbzswO0w7Ozs7O047Ozs7OworMTI1MjtFVEhJT1BJQyBTWUxMQUJMRSBRSEk7TG87MDtMOzs7OztOOzs7OzsKKzEyNTM7RVRISU9QSUMgU1lMTEFCTEUgUUhBQTtMbzswO0w7Ozs7O047Ozs7OworMTI1NDtFVEhJT1BJQyBTWUxMQUJMRSBRSEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjU1O0VUSElPUElDIFNZTExBQkxFIFFIRTtMbzswO0w7Ozs7O047Ozs7OworMTI1NjtFVEhJT1BJQyBTWUxMQUJMRSBRSE87TG87MDtMOzs7OztOOzs7OzsKKzEyNTg7RVRISU9QSUMgU1lMTEFCTEUgUUhXQTtMbzswO0w7Ozs7O047Ozs7OworMTI1QTtFVEhJT1BJQyBTWUxMQUJMRSBRSFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjVCO0VUSElPUElDIFNZTExBQkxFIFFIV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjVDO0VUSElPUElDIFNZTExBQkxFIFFIV0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjVEO0VUSElPUElDIFNZTExBQkxFIFFIV0U7TG87MDtMOzs7OztOOzs7OzsKKzEyNjA7RVRISU9QSUMgU1lMTEFCTEUgQkE7TG87MDtMOzs7OztOOzs7OzsKKzEyNjE7RVRISU9QSUMgU1lMTEFCTEUgQlU7TG87MDtMOzs7OztOOzs7OzsKKzEyNjI7RVRISU9QSUMgU1lMTEFCTEUgQkk7TG87MDtMOzs7OztOOzs7OzsKKzEyNjM7RVRISU9QSUMgU1lMTEFCTEUgQkFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjY0O0VUSElPUElDIFNZTExBQkxFIEJFRTtMbzswO0w7Ozs7O047Ozs7OworMTI2NTtFVEhJT1BJQyBTWUxMQUJMRSBCRTtMbzswO0w7Ozs7O047Ozs7OworMTI2NjtFVEhJT1BJQyBTWUxMQUJMRSBCTztMbzswO0w7Ozs7O047Ozs7OworMTI2NztFVEhJT1BJQyBTWUxMQUJMRSBCV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyNjg7RVRISU9QSUMgU1lMTEFCTEUgVkE7TG87MDtMOzs7OztOOzs7OzsKKzEyNjk7RVRISU9QSUMgU1lMTEFCTEUgVlU7TG87MDtMOzs7OztOOzs7OzsKKzEyNkE7RVRISU9QSUMgU1lMTEFCTEUgVkk7TG87MDtMOzs7OztOOzs7OzsKKzEyNkI7RVRISU9QSUMgU1lMTEFCTEUgVkFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjZDO0VUSElPUElDIFNZTExBQkxFIFZFRTtMbzswO0w7Ozs7O047Ozs7OworMTI2RDtFVEhJT1BJQyBTWUxMQUJMRSBWRTtMbzswO0w7Ozs7O047Ozs7OworMTI2RTtFVEhJT1BJQyBTWUxMQUJMRSBWTztMbzswO0w7Ozs7O047Ozs7OworMTI2RjtFVEhJT1BJQyBTWUxMQUJMRSBWV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyNzA7RVRISU9QSUMgU1lMTEFCTEUgVEE7TG87MDtMOzs7OztOOzs7OzsKKzEyNzE7RVRISU9QSUMgU1lMTEFCTEUgVFU7TG87MDtMOzs7OztOOzs7OzsKKzEyNzI7RVRISU9QSUMgU1lMTEFCTEUgVEk7TG87MDtMOzs7OztOOzs7OzsKKzEyNzM7RVRISU9QSUMgU1lMTEFCTEUgVEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjc0O0VUSElPUElDIFNZTExBQkxFIFRFRTtMbzswO0w7Ozs7O047Ozs7OworMTI3NTtFVEhJT1BJQyBTWUxMQUJMRSBURTtMbzswO0w7Ozs7O047Ozs7OworMTI3NjtFVEhJT1BJQyBTWUxMQUJMRSBUTztMbzswO0w7Ozs7O047Ozs7OworMTI3NztFVEhJT1BJQyBTWUxMQUJMRSBUV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyNzg7RVRISU9QSUMgU1lMTEFCTEUgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzEyNzk7RVRISU9QSUMgU1lMTEFCTEUgQ1U7TG87MDtMOzs7OztOOzs7OzsKKzEyN0E7RVRISU9QSUMgU1lMTEFCTEUgQ0k7TG87MDtMOzs7OztOOzs7OzsKKzEyN0I7RVRISU9QSUMgU1lMTEFCTEUgQ0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjdDO0VUSElPUElDIFNZTExBQkxFIENFRTtMbzswO0w7Ozs7O047Ozs7OworMTI3RDtFVEhJT1BJQyBTWUxMQUJMRSBDRTtMbzswO0w7Ozs7O047Ozs7OworMTI3RTtFVEhJT1BJQyBTWUxMQUJMRSBDTztMbzswO0w7Ozs7O047Ozs7OworMTI3RjtFVEhJT1BJQyBTWUxMQUJMRSBDV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyODA7RVRISU9QSUMgU1lMTEFCTEUgWEE7TG87MDtMOzs7OztOOzs7OzsKKzEyODE7RVRISU9QSUMgU1lMTEFCTEUgWFU7TG87MDtMOzs7OztOOzs7OzsKKzEyODI7RVRISU9QSUMgU1lMTEFCTEUgWEk7TG87MDtMOzs7OztOOzs7OzsKKzEyODM7RVRISU9QSUMgU1lMTEFCTEUgWEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjg0O0VUSElPUElDIFNZTExBQkxFIFhFRTtMbzswO0w7Ozs7O047Ozs7OworMTI4NTtFVEhJT1BJQyBTWUxMQUJMRSBYRTtMbzswO0w7Ozs7O047Ozs7OworMTI4NjtFVEhJT1BJQyBTWUxMQUJMRSBYTztMbzswO0w7Ozs7O047Ozs7OworMTI4ODtFVEhJT1BJQyBTWUxMQUJMRSBYV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyOEE7RVRISU9QSUMgU1lMTEFCTEUgWFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjhCO0VUSElPUElDIFNZTExBQkxFIFhXQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyOEM7RVRISU9QSUMgU1lMTEFCTEUgWFdFRTtMbzswO0w7Ozs7O047Ozs7OworMTI4RDtFVEhJT1BJQyBTWUxMQUJMRSBYV0U7TG87MDtMOzs7OztOOzs7OzsKKzEyOTA7RVRISU9QSUMgU1lMTEFCTEUgTkE7TG87MDtMOzs7OztOOzs7OzsKKzEyOTE7RVRISU9QSUMgU1lMTEFCTEUgTlU7TG87MDtMOzs7OztOOzs7OzsKKzEyOTI7RVRISU9QSUMgU1lMTEFCTEUgTkk7TG87MDtMOzs7OztOOzs7OzsKKzEyOTM7RVRISU9QSUMgU1lMTEFCTEUgTkFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjk0O0VUSElPUElDIFNZTExBQkxFIE5FRTtMbzswO0w7Ozs7O047Ozs7OworMTI5NTtFVEhJT1BJQyBTWUxMQUJMRSBORTtMbzswO0w7Ozs7O047Ozs7OworMTI5NjtFVEhJT1BJQyBTWUxMQUJMRSBOTztMbzswO0w7Ozs7O047Ozs7OworMTI5NztFVEhJT1BJQyBTWUxMQUJMRSBOV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyOTg7RVRISU9QSUMgU1lMTEFCTEUgTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjk5O0VUSElPUElDIFNZTExBQkxFIE5ZVTtMbzswO0w7Ozs7O047Ozs7OworMTI5QTtFVEhJT1BJQyBTWUxMQUJMRSBOWUk7TG87MDtMOzs7OztOOzs7OzsKKzEyOUI7RVRISU9QSUMgU1lMTEFCTEUgTllBQTtMbzswO0w7Ozs7O047Ozs7OworMTI5QztFVEhJT1BJQyBTWUxMQUJMRSBOWUVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjlEO0VUSElPUElDIFNZTExBQkxFIE5ZRTtMbzswO0w7Ozs7O047Ozs7OworMTI5RTtFVEhJT1BJQyBTWUxMQUJMRSBOWU87TG87MDtMOzs7OztOOzs7OzsKKzEyOUY7RVRISU9QSUMgU1lMTEFCTEUgTllXQTtMbzswO0w7Ozs7O047Ozs7OworMTJBMDtFVEhJT1BJQyBTWUxMQUJMRSBHTE9UVEFMIEE7TG87MDtMOzs7OztOOzs7OzsKKzEyQTE7RVRISU9QSUMgU1lMTEFCTEUgR0xPVFRBTCBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkEyO0VUSElPUElDIFNZTExBQkxFIEdMT1RUQUwgSTtMbzswO0w7Ozs7O047Ozs7OworMTJBMztFVEhJT1BJQyBTWUxMQUJMRSBHTE9UVEFMIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkE0O0VUSElPUElDIFNZTExBQkxFIEdMT1RUQUwgRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyQTU7RVRISU9QSUMgU1lMTEFCTEUgR0xPVFRBTCBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkE2O0VUSElPUElDIFNZTExBQkxFIEdMT1RUQUwgTztMbzswO0w7Ozs7O047Ozs7OworMTJBNztFVEhJT1BJQyBTWUxMQUJMRSBHTE9UVEFMIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkE4O0VUSElPUElDIFNZTExBQkxFIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkE5O0VUSElPUElDIFNZTExBQkxFIEtVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkFBO0VUSElPUElDIFNZTExBQkxFIEtJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkFCO0VUSElPUElDIFNZTExBQkxFIEtBQTtMbzswO0w7Ozs7O047Ozs7OworMTJBQztFVEhJT1BJQyBTWUxMQUJMRSBLRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyQUQ7RVRISU9QSUMgU1lMTEFCTEUgS0U7TG87MDtMOzs7OztOOzs7OzsKKzEyQUU7RVRISU9QSUMgU1lMTEFCTEUgS087TG87MDtMOzs7OztOOzs7OzsKKzEyQjA7RVRISU9QSUMgU1lMTEFCTEUgS1dBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkIyO0VUSElPUElDIFNZTExBQkxFIEtXSTtMbzswO0w7Ozs7O047Ozs7OworMTJCMztFVEhJT1BJQyBTWUxMQUJMRSBLV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkI0O0VUSElPUElDIFNZTExBQkxFIEtXRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyQjU7RVRISU9QSUMgU1lMTEFCTEUgS1dFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkI4O0VUSElPUElDIFNZTExBQkxFIEtYQTtMbzswO0w7Ozs7O047Ozs7OworMTJCOTtFVEhJT1BJQyBTWUxMQUJMRSBLWFU7TG87MDtMOzs7OztOOzs7OzsKKzEyQkE7RVRISU9QSUMgU1lMTEFCTEUgS1hJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkJCO0VUSElPUElDIFNZTExBQkxFIEtYQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyQkM7RVRISU9QSUMgU1lMTEFCTEUgS1hFRTtMbzswO0w7Ozs7O047Ozs7OworMTJCRDtFVEhJT1BJQyBTWUxMQUJMRSBLWEU7TG87MDtMOzs7OztOOzs7OzsKKzEyQkU7RVRISU9QSUMgU1lMTEFCTEUgS1hPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkMwO0VUSElPUElDIFNZTExBQkxFIEtYV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyQzI7RVRISU9QSUMgU1lMTEFCTEUgS1hXSTtMbzswO0w7Ozs7O047Ozs7OworMTJDMztFVEhJT1BJQyBTWUxMQUJMRSBLWFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTJDNDtFVEhJT1BJQyBTWUxMQUJMRSBLWFdFRTtMbzswO0w7Ozs7O047Ozs7OworMTJDNTtFVEhJT1BJQyBTWUxMQUJMRSBLWFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkM4O0VUSElPUElDIFNZTExBQkxFIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkM5O0VUSElPUElDIFNZTExBQkxFIFdVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkNBO0VUSElPUElDIFNZTExBQkxFIFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkNCO0VUSElPUElDIFNZTExBQkxFIFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTJDQztFVEhJT1BJQyBTWUxMQUJMRSBXRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyQ0Q7RVRISU9QSUMgU1lMTEFCTEUgV0U7TG87MDtMOzs7OztOOzs7OzsKKzEyQ0U7RVRISU9QSUMgU1lMTEFCTEUgV087TG87MDtMOzs7OztOOzs7OzsKKzEyRDA7RVRISU9QSUMgU1lMTEFCTEUgUEhBUllOR0VBTCBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkQxO0VUSElPUElDIFNZTExBQkxFIFBIQVJZTkdFQUwgVTtMbzswO0w7Ozs7O047Ozs7OworMTJEMjtFVEhJT1BJQyBTWUxMQUJMRSBQSEFSWU5HRUFMIEk7TG87MDtMOzs7OztOOzs7OzsKKzEyRDM7RVRISU9QSUMgU1lMTEFCTEUgUEhBUllOR0VBTCBBQTtMbzswO0w7Ozs7O047Ozs7OworMTJENDtFVEhJT1BJQyBTWUxMQUJMRSBQSEFSWU5HRUFMIEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkQ1O0VUSElPUElDIFNZTExBQkxFIFBIQVJZTkdFQUwgRTtMbzswO0w7Ozs7O047Ozs7OworMTJENjtFVEhJT1BJQyBTWUxMQUJMRSBQSEFSWU5HRUFMIE87TG87MDtMOzs7OztOOzs7OzsKKzEyRDg7RVRISU9QSUMgU1lMTEFCTEUgWkE7TG87MDtMOzs7OztOOzs7OzsKKzEyRDk7RVRISU9QSUMgU1lMTEFCTEUgWlU7TG87MDtMOzs7OztOOzs7OzsKKzEyREE7RVRISU9QSUMgU1lMTEFCTEUgWkk7TG87MDtMOzs7OztOOzs7OzsKKzEyREI7RVRISU9QSUMgU1lMTEFCTEUgWkFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkRDO0VUSElPUElDIFNZTExBQkxFIFpFRTtMbzswO0w7Ozs7O047Ozs7OworMTJERDtFVEhJT1BJQyBTWUxMQUJMRSBaRTtMbzswO0w7Ozs7O047Ozs7OworMTJERTtFVEhJT1BJQyBTWUxMQUJMRSBaTztMbzswO0w7Ozs7O047Ozs7OworMTJERjtFVEhJT1BJQyBTWUxMQUJMRSBaV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyRTA7RVRISU9QSUMgU1lMTEFCTEUgWkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkUxO0VUSElPUElDIFNZTExBQkxFIFpIVTtMbzswO0w7Ozs7O047Ozs7OworMTJFMjtFVEhJT1BJQyBTWUxMQUJMRSBaSEk7TG87MDtMOzs7OztOOzs7OzsKKzEyRTM7RVRISU9QSUMgU1lMTEFCTEUgWkhBQTtMbzswO0w7Ozs7O047Ozs7OworMTJFNDtFVEhJT1BJQyBTWUxMQUJMRSBaSEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkU1O0VUSElPUElDIFNZTExBQkxFIFpIRTtMbzswO0w7Ozs7O047Ozs7OworMTJFNjtFVEhJT1BJQyBTWUxMQUJMRSBaSE87TG87MDtMOzs7OztOOzs7OzsKKzEyRTc7RVRISU9QSUMgU1lMTEFCTEUgWkhXQTtMbzswO0w7Ozs7O047Ozs7OworMTJFODtFVEhJT1BJQyBTWUxMQUJMRSBZQTtMbzswO0w7Ozs7O047Ozs7OworMTJFOTtFVEhJT1BJQyBTWUxMQUJMRSBZVTtMbzswO0w7Ozs7O047Ozs7OworMTJFQTtFVEhJT1BJQyBTWUxMQUJMRSBZSTtMbzswO0w7Ozs7O047Ozs7OworMTJFQjtFVEhJT1BJQyBTWUxMQUJMRSBZQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyRUM7RVRISU9QSUMgU1lMTEFCTEUgWUVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkVEO0VUSElPUElDIFNZTExBQkxFIFlFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkVFO0VUSElPUElDIFNZTExBQkxFIFlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkYwO0VUSElPUElDIFNZTExBQkxFIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkYxO0VUSElPUElDIFNZTExBQkxFIERVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkYyO0VUSElPUElDIFNZTExBQkxFIERJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkYzO0VUSElPUElDIFNZTExBQkxFIERBQTtMbzswO0w7Ozs7O047Ozs7OworMTJGNDtFVEhJT1BJQyBTWUxMQUJMRSBERUU7TG87MDtMOzs7OztOOzs7OzsKKzEyRjU7RVRISU9QSUMgU1lMTEFCTEUgREU7TG87MDtMOzs7OztOOzs7OzsKKzEyRjY7RVRISU9QSUMgU1lMTEFCTEUgRE87TG87MDtMOzs7OztOOzs7OzsKKzEyRjc7RVRISU9QSUMgU1lMTEFCTEUgRFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkY4O0VUSElPUElDIFNZTExBQkxFIEREQTtMbzswO0w7Ozs7O047Ozs7OworMTJGOTtFVEhJT1BJQyBTWUxMQUJMRSBERFU7TG87MDtMOzs7OztOOzs7OzsKKzEyRkE7RVRISU9QSUMgU1lMTEFCTEUgRERJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkZCO0VUSElPUElDIFNZTExBQkxFIEREQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyRkM7RVRISU9QSUMgU1lMTEFCTEUgRERFRTtMbzswO0w7Ozs7O047Ozs7OworMTJGRDtFVEhJT1BJQyBTWUxMQUJMRSBEREU7TG87MDtMOzs7OztOOzs7OzsKKzEyRkU7RVRISU9QSUMgU1lMTEFCTEUgRERPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkZGO0VUSElPUElDIFNZTExBQkxFIEREV0E7TG87MDtMOzs7OztOOzs7OzsKKzEzMDA7RVRISU9QSUMgU1lMTEFCTEUgSkE7TG87MDtMOzs7OztOOzs7OzsKKzEzMDE7RVRISU9QSUMgU1lMTEFCTEUgSlU7TG87MDtMOzs7OztOOzs7OzsKKzEzMDI7RVRISU9QSUMgU1lMTEFCTEUgSkk7TG87MDtMOzs7OztOOzs7OzsKKzEzMDM7RVRISU9QSUMgU1lMTEFCTEUgSkFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzA0O0VUSElPUElDIFNZTExBQkxFIEpFRTtMbzswO0w7Ozs7O047Ozs7OworMTMwNTtFVEhJT1BJQyBTWUxMQUJMRSBKRTtMbzswO0w7Ozs7O047Ozs7OworMTMwNjtFVEhJT1BJQyBTWUxMQUJMRSBKTztMbzswO0w7Ozs7O047Ozs7OworMTMwNztFVEhJT1BJQyBTWUxMQUJMRSBKV0E7TG87MDtMOzs7OztOOzs7OzsKKzEzMDg7RVRISU9QSUMgU1lMTEFCTEUgR0E7TG87MDtMOzs7OztOOzs7OzsKKzEzMDk7RVRISU9QSUMgU1lMTEFCTEUgR1U7TG87MDtMOzs7OztOOzs7OzsKKzEzMEE7RVRISU9QSUMgU1lMTEFCTEUgR0k7TG87MDtMOzs7OztOOzs7OzsKKzEzMEI7RVRISU9QSUMgU1lMTEFCTEUgR0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzBDO0VUSElPUElDIFNZTExBQkxFIEdFRTtMbzswO0w7Ozs7O047Ozs7OworMTMwRDtFVEhJT1BJQyBTWUxMQUJMRSBHRTtMbzswO0w7Ozs7O047Ozs7OworMTMwRTtFVEhJT1BJQyBTWUxMQUJMRSBHTztMbzswO0w7Ozs7O047Ozs7OworMTMxMDtFVEhJT1BJQyBTWUxMQUJMRSBHV0E7TG87MDtMOzs7OztOOzs7OzsKKzEzMTI7RVRISU9QSUMgU1lMTEFCTEUgR1dJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzEzO0VUSElPUElDIFNZTExBQkxFIEdXQUE7TG87MDtMOzs7OztOOzs7OzsKKzEzMTQ7RVRISU9QSUMgU1lMTEFCTEUgR1dFRTtMbzswO0w7Ozs7O047Ozs7OworMTMxNTtFVEhJT1BJQyBTWUxMQUJMRSBHV0U7TG87MDtMOzs7OztOOzs7OzsKKzEzMTg7RVRISU9QSUMgU1lMTEFCTEUgR0dBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzE5O0VUSElPUElDIFNZTExBQkxFIEdHVTtMbzswO0w7Ozs7O047Ozs7OworMTMxQTtFVEhJT1BJQyBTWUxMQUJMRSBHR0k7TG87MDtMOzs7OztOOzs7OzsKKzEzMUI7RVRISU9QSUMgU1lMTEFCTEUgR0dBQTtMbzswO0w7Ozs7O047Ozs7OworMTMxQztFVEhJT1BJQyBTWUxMQUJMRSBHR0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzFEO0VUSElPUElDIFNZTExBQkxFIEdHRTtMbzswO0w7Ozs7O047Ozs7OworMTMxRTtFVEhJT1BJQyBTWUxMQUJMRSBHR087TG87MDtMOzs7OztOOzs7OzsKKzEzMjA7RVRISU9QSUMgU1lMTEFCTEUgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzIxO0VUSElPUElDIFNZTExBQkxFIFRIVTtMbzswO0w7Ozs7O047Ozs7OworMTMyMjtFVEhJT1BJQyBTWUxMQUJMRSBUSEk7TG87MDtMOzs7OztOOzs7OzsKKzEzMjM7RVRISU9QSUMgU1lMTEFCTEUgVEhBQTtMbzswO0w7Ozs7O047Ozs7OworMTMyNDtFVEhJT1BJQyBTWUxMQUJMRSBUSEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzI1O0VUSElPUElDIFNZTExBQkxFIFRIRTtMbzswO0w7Ozs7O047Ozs7OworMTMyNjtFVEhJT1BJQyBTWUxMQUJMRSBUSE87TG87MDtMOzs7OztOOzs7OzsKKzEzMjc7RVRISU9QSUMgU1lMTEFCTEUgVEhXQTtMbzswO0w7Ozs7O047Ozs7OworMTMyODtFVEhJT1BJQyBTWUxMQUJMRSBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzEzMjk7RVRISU9QSUMgU1lMTEFCTEUgQ0hVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzJBO0VUSElPUElDIFNZTExBQkxFIENISTtMbzswO0w7Ozs7O047Ozs7OworMTMyQjtFVEhJT1BJQyBTWUxMQUJMRSBDSEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzJDO0VUSElPUElDIFNZTExBQkxFIENIRUU7TG87MDtMOzs7OztOOzs7OzsKKzEzMkQ7RVRISU9QSUMgU1lMTEFCTEUgQ0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzJFO0VUSElPUElDIFNZTExBQkxFIENITztMbzswO0w7Ozs7O047Ozs7OworMTMyRjtFVEhJT1BJQyBTWUxMQUJMRSBDSFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzMwO0VUSElPUElDIFNZTExBQkxFIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMTMzMTtFVEhJT1BJQyBTWUxMQUJMRSBQSFU7TG87MDtMOzs7OztOOzs7OzsKKzEzMzI7RVRISU9QSUMgU1lMTEFCTEUgUEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzMzO0VUSElPUElDIFNZTExBQkxFIFBIQUE7TG87MDtMOzs7OztOOzs7OzsKKzEzMzQ7RVRISU9QSUMgU1lMTEFCTEUgUEhFRTtMbzswO0w7Ozs7O047Ozs7OworMTMzNTtFVEhJT1BJQyBTWUxMQUJMRSBQSEU7TG87MDtMOzs7OztOOzs7OzsKKzEzMzY7RVRISU9QSUMgU1lMTEFCTEUgUEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzM3O0VUSElPUElDIFNZTExBQkxFIFBIV0E7TG87MDtMOzs7OztOOzs7OzsKKzEzMzg7RVRISU9QSUMgU1lMTEFCTEUgVFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzM5O0VUSElPUElDIFNZTExBQkxFIFRTVTtMbzswO0w7Ozs7O047Ozs7OworMTMzQTtFVEhJT1BJQyBTWUxMQUJMRSBUU0k7TG87MDtMOzs7OztOOzs7OzsKKzEzM0I7RVRISU9QSUMgU1lMTEFCTEUgVFNBQTtMbzswO0w7Ozs7O047Ozs7OworMTMzQztFVEhJT1BJQyBTWUxMQUJMRSBUU0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzNEO0VUSElPUElDIFNZTExBQkxFIFRTRTtMbzswO0w7Ozs7O047Ozs7OworMTMzRTtFVEhJT1BJQyBTWUxMQUJMRSBUU087TG87MDtMOzs7OztOOzs7OzsKKzEzM0Y7RVRISU9QSUMgU1lMTEFCTEUgVFNXQTtMbzswO0w7Ozs7O047Ozs7OworMTM0MDtFVEhJT1BJQyBTWUxMQUJMRSBUWkE7TG87MDtMOzs7OztOOzs7OzsKKzEzNDE7RVRISU9QSUMgU1lMTEFCTEUgVFpVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzQyO0VUSElPUElDIFNZTExBQkxFIFRaSTtMbzswO0w7Ozs7O047Ozs7OworMTM0MztFVEhJT1BJQyBTWUxMQUJMRSBUWkFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzQ0O0VUSElPUElDIFNZTExBQkxFIFRaRUU7TG87MDtMOzs7OztOOzs7OzsKKzEzNDU7RVRISU9QSUMgU1lMTEFCTEUgVFpFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzQ2O0VUSElPUElDIFNZTExBQkxFIFRaTztMbzswO0w7Ozs7O047Ozs7OworMTM0ODtFVEhJT1BJQyBTWUxMQUJMRSBGQTtMbzswO0w7Ozs7O047Ozs7OworMTM0OTtFVEhJT1BJQyBTWUxMQUJMRSBGVTtMbzswO0w7Ozs7O047Ozs7OworMTM0QTtFVEhJT1BJQyBTWUxMQUJMRSBGSTtMbzswO0w7Ozs7O047Ozs7OworMTM0QjtFVEhJT1BJQyBTWUxMQUJMRSBGQUE7TG87MDtMOzs7OztOOzs7OzsKKzEzNEM7RVRISU9QSUMgU1lMTEFCTEUgRkVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzREO0VUSElPUElDIFNZTExBQkxFIEZFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzRFO0VUSElPUElDIFNZTExBQkxFIEZPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzRGO0VUSElPUElDIFNZTExBQkxFIEZXQTtMbzswO0w7Ozs7O047Ozs7OworMTM1MDtFVEhJT1BJQyBTWUxMQUJMRSBQQTtMbzswO0w7Ozs7O047Ozs7OworMTM1MTtFVEhJT1BJQyBTWUxMQUJMRSBQVTtMbzswO0w7Ozs7O047Ozs7OworMTM1MjtFVEhJT1BJQyBTWUxMQUJMRSBQSTtMbzswO0w7Ozs7O047Ozs7OworMTM1MztFVEhJT1BJQyBTWUxMQUJMRSBQQUE7TG87MDtMOzs7OztOOzs7OzsKKzEzNTQ7RVRISU9QSUMgU1lMTEFCTEUgUEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzU1O0VUSElPUElDIFNZTExBQkxFIFBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzU2O0VUSElPUElDIFNZTExBQkxFIFBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzU3O0VUSElPUElDIFNZTExBQkxFIFBXQTtMbzswO0w7Ozs7O047Ozs7OworMTM1ODtFVEhJT1BJQyBTWUxMQUJMRSBSWUE7TG87MDtMOzs7OztOOzs7OzsKKzEzNTk7RVRISU9QSUMgU1lMTEFCTEUgTVlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzVBO0VUSElPUElDIFNZTExBQkxFIEZZQTtMbzswO0w7Ozs7O047Ozs7OworMTM2MTtFVEhJT1BJQyBXT1JEU1BBQ0U7UG87MDtMOzs7OztOOzs7OzsKKzEzNjI7RVRISU9QSUMgRlVMTCBTVE9QO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxMzYzO0VUSElPUElDIENPTU1BO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxMzY0O0VUSElPUElDIFNFTUlDT0xPTjtQbzswO0w7Ozs7O047Ozs7OworMTM2NTtFVEhJT1BJQyBDT0xPTjtQbzswO0w7Ozs7O047Ozs7OworMTM2NjtFVEhJT1BJQyBQUkVGQUNFIENPTE9OO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxMzY3O0VUSElPUElDIFFVRVNUSU9OIE1BUks7UG87MDtMOzs7OztOOzs7OzsKKzEzNjg7RVRISU9QSUMgUEFSQUdSQVBIIFNFUEFSQVRPUjtQbzswO0w7Ozs7O047Ozs7OworMTM2OTtFVEhJT1BJQyBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzEzNkE7RVRISU9QSUMgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CisxMzZCO0VUSElPUElDIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CisxMzZDO0VUSElPUElDIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzEzNkQ7RVRISU9QSUMgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMTM2RTtFVEhJT1BJQyBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzEzNkY7RVRISU9QSUMgRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzEzNzA7RVRISU9QSUMgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzEzNzE7RVRISU9QSUMgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMTM3MjtFVEhJT1BJQyBOVU1CRVIgVEVOO05vOzA7TDs7OzsxMDtOOzs7OzsKKzEzNzM7RVRISU9QSUMgTlVNQkVSIFRXRU5UWTtObzswO0w7Ozs7MjA7Tjs7Ozs7CisxMzc0O0VUSElPUElDIE5VTUJFUiBUSElSVFk7Tm87MDtMOzs7OzMwO047Ozs7OworMTM3NTtFVEhJT1BJQyBOVU1CRVIgRk9SVFk7Tm87MDtMOzs7OzQwO047Ozs7OworMTM3NjtFVEhJT1BJQyBOVU1CRVIgRklGVFk7Tm87MDtMOzs7OzUwO047Ozs7OworMTM3NztFVEhJT1BJQyBOVU1CRVIgU0lYVFk7Tm87MDtMOzs7OzYwO047Ozs7OworMTM3ODtFVEhJT1BJQyBOVU1CRVIgU0VWRU5UWTtObzswO0w7Ozs7NzA7Tjs7Ozs7CisxMzc5O0VUSElPUElDIE5VTUJFUiBFSUdIVFk7Tm87MDtMOzs7OzgwO047Ozs7OworMTM3QTtFVEhJT1BJQyBOVU1CRVIgTklORVRZO05vOzA7TDs7Ozs5MDtOOzs7OzsKKzEzN0I7RVRISU9QSUMgTlVNQkVSIEhVTkRSRUQ7Tm87MDtMOzs7OzEwMDtOOzs7OzsKKzEzN0M7RVRISU9QSUMgTlVNQkVSIFRFTiBUSE9VU0FORDtObzswO0w7Ozs7MTAwMDA7Tjs7Ozs7CisxM0EwO0NIRVJPS0VFIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0ExO0NIRVJPS0VFIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0EyO0NIRVJPS0VFIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0EzO0NIRVJPS0VFIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0E0O0NIRVJPS0VFIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0E1O0NIRVJPS0VFIExFVFRFUiBWO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0E2O0NIRVJPS0VFIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMTNBNztDSEVST0tFRSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzEzQTg7Q0hFUk9LRUUgTEVUVEVSIEdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0E5O0NIRVJPS0VFIExFVFRFUiBHSTtMbzswO0w7Ozs7O047Ozs7OworMTNBQTtDSEVST0tFRSBMRVRURVIgR087TG87MDtMOzs7OztOOzs7OzsKKzEzQUI7Q0hFUk9LRUUgTEVUVEVSIEdVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0FDO0NIRVJPS0VFIExFVFRFUiBHVjtMbzswO0w7Ozs7O047Ozs7OworMTNBRDtDSEVST0tFRSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzEzQUU7Q0hFUk9LRUUgTEVUVEVSIEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0FGO0NIRVJPS0VFIExFVFRFUiBISTtMbzswO0w7Ozs7O047Ozs7OworMTNCMDtDSEVST0tFRSBMRVRURVIgSE87TG87MDtMOzs7OztOOzs7OzsKKzEzQjE7Q0hFUk9LRUUgTEVUVEVSIEhVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0IyO0NIRVJPS0VFIExFVFRFUiBIVjtMbzswO0w7Ozs7O047Ozs7OworMTNCMztDSEVST0tFRSBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzEzQjQ7Q0hFUk9LRUUgTEVUVEVSIExFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0I1O0NIRVJPS0VFIExFVFRFUiBMSTtMbzswO0w7Ozs7O047Ozs7OworMTNCNjtDSEVST0tFRSBMRVRURVIgTE87TG87MDtMOzs7OztOOzs7OzsKKzEzQjc7Q0hFUk9LRUUgTEVUVEVSIExVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0I4O0NIRVJPS0VFIExFVFRFUiBMVjtMbzswO0w7Ozs7O047Ozs7OworMTNCOTtDSEVST0tFRSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzEzQkE7Q0hFUk9LRUUgTEVUVEVSIE1FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0JCO0NIRVJPS0VFIExFVFRFUiBNSTtMbzswO0w7Ozs7O047Ozs7OworMTNCQztDSEVST0tFRSBMRVRURVIgTU87TG87MDtMOzs7OztOOzs7OzsKKzEzQkQ7Q0hFUk9LRUUgTEVUVEVSIE1VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0JFO0NIRVJPS0VFIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMTNCRjtDSEVST0tFRSBMRVRURVIgSE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0MwO0NIRVJPS0VFIExFVFRFUiBOQUg7TG87MDtMOzs7OztOOzs7OzsKKzEzQzE7Q0hFUk9LRUUgTEVUVEVSIE5FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0MyO0NIRVJPS0VFIExFVFRFUiBOSTtMbzswO0w7Ozs7O047Ozs7OworMTNDMztDSEVST0tFRSBMRVRURVIgTk87TG87MDtMOzs7OztOOzs7OzsKKzEzQzQ7Q0hFUk9LRUUgTEVUVEVSIE5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0M1O0NIRVJPS0VFIExFVFRFUiBOVjtMbzswO0w7Ozs7O047Ozs7OworMTNDNjtDSEVST0tFRSBMRVRURVIgUVVBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0M3O0NIRVJPS0VFIExFVFRFUiBRVUU7TG87MDtMOzs7OztOOzs7OzsKKzEzQzg7Q0hFUk9LRUUgTEVUVEVSIFFVSTtMbzswO0w7Ozs7O047Ozs7OworMTNDOTtDSEVST0tFRSBMRVRURVIgUVVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0NBO0NIRVJPS0VFIExFVFRFUiBRVVU7TG87MDtMOzs7OztOOzs7OzsKKzEzQ0I7Q0hFUk9LRUUgTEVUVEVSIFFVVjtMbzswO0w7Ozs7O047Ozs7OworMTNDQztDSEVST0tFRSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzEzQ0Q7Q0hFUk9LRUUgTEVUVEVSIFM7TG87MDtMOzs7OztOOzs7OzsKKzEzQ0U7Q0hFUk9LRUUgTEVUVEVSIFNFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0NGO0NIRVJPS0VFIExFVFRFUiBTSTtMbzswO0w7Ozs7O047Ozs7OworMTNEMDtDSEVST0tFRSBMRVRURVIgU087TG87MDtMOzs7OztOOzs7OzsKKzEzRDE7Q0hFUk9LRUUgTEVUVEVSIFNVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0QyO0NIRVJPS0VFIExFVFRFUiBTVjtMbzswO0w7Ozs7O047Ozs7OworMTNEMztDSEVST0tFRSBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzEzRDQ7Q0hFUk9LRUUgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0Q1O0NIRVJPS0VFIExFVFRFUiBERTtMbzswO0w7Ozs7O047Ozs7OworMTNENjtDSEVST0tFRSBMRVRURVIgVEU7TG87MDtMOzs7OztOOzs7OzsKKzEzRDc7Q0hFUk9LRUUgTEVUVEVSIERJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0Q4O0NIRVJPS0VFIExFVFRFUiBUSTtMbzswO0w7Ozs7O047Ozs7OworMTNEOTtDSEVST0tFRSBMRVRURVIgRE87TG87MDtMOzs7OztOOzs7OzsKKzEzREE7Q0hFUk9LRUUgTEVUVEVSIERVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0RCO0NIRVJPS0VFIExFVFRFUiBEVjtMbzswO0w7Ozs7O047Ozs7OworMTNEQztDSEVST0tFRSBMRVRURVIgRExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0REO0NIRVJPS0VFIExFVFRFUiBUTEE7TG87MDtMOzs7OztOOzs7OzsKKzEzREU7Q0hFUk9LRUUgTEVUVEVSIFRMRTtMbzswO0w7Ozs7O047Ozs7OworMTNERjtDSEVST0tFRSBMRVRURVIgVExJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0UwO0NIRVJPS0VFIExFVFRFUiBUTE87TG87MDtMOzs7OztOOzs7OzsKKzEzRTE7Q0hFUk9LRUUgTEVUVEVSIFRMVTtMbzswO0w7Ozs7O047Ozs7OworMTNFMjtDSEVST0tFRSBMRVRURVIgVExWO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0UzO0NIRVJPS0VFIExFVFRFUiBUU0E7TG87MDtMOzs7OztOOzs7OzsKKzEzRTQ7Q0hFUk9LRUUgTEVUVEVSIFRTRTtMbzswO0w7Ozs7O047Ozs7OworMTNFNTtDSEVST0tFRSBMRVRURVIgVFNJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0U2O0NIRVJPS0VFIExFVFRFUiBUU087TG87MDtMOzs7OztOOzs7OzsKKzEzRTc7Q0hFUk9LRUUgTEVUVEVSIFRTVTtMbzswO0w7Ozs7O047Ozs7OworMTNFODtDSEVST0tFRSBMRVRURVIgVFNWO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0U5O0NIRVJPS0VFIExFVFRFUiBXQTtMbzswO0w7Ozs7O047Ozs7OworMTNFQTtDSEVST0tFRSBMRVRURVIgV0U7TG87MDtMOzs7OztOOzs7OzsKKzEzRUI7Q0hFUk9LRUUgTEVUVEVSIFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0VDO0NIRVJPS0VFIExFVFRFUiBXTztMbzswO0w7Ozs7O047Ozs7OworMTNFRDtDSEVST0tFRSBMRVRURVIgV1U7TG87MDtMOzs7OztOOzs7OzsKKzEzRUU7Q0hFUk9LRUUgTEVUVEVSIFdWO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0VGO0NIRVJPS0VFIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMTNGMDtDSEVST0tFRSBMRVRURVIgWUU7TG87MDtMOzs7OztOOzs7OzsKKzEzRjE7Q0hFUk9LRUUgTEVUVEVSIFlJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0YyO0NIRVJPS0VFIExFVFRFUiBZTztMbzswO0w7Ozs7O047Ozs7OworMTNGMztDSEVST0tFRSBMRVRURVIgWVU7TG87MDtMOzs7OztOOzs7OzsKKzEzRjQ7Q0hFUk9LRUUgTEVUVEVSIFlWO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDAxO0NBTkFESUFOIFNZTExBQklDUyBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDAyO0NBTkFESUFOIFNZTExBQklDUyBBQUk7TG87MDtMOzs7OztOOzs7OzsKKzE0MDM7Q0FOQURJQU4gU1lMTEFCSUNTIEk7TG87MDtMOzs7OztOOzs7OzsKKzE0MDQ7Q0FOQURJQU4gU1lMTEFCSUNTIElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDA1O0NBTkFESUFOIFNZTExBQklDUyBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDA2O0NBTkFESUFOIFNZTExBQklDUyBPTztMbzswO0w7Ozs7O047Ozs7OworMTQwNztDQU5BRElBTiBTWUxMQUJJQ1MgWS1DUkVFIE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDA4O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDA5O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzE0MEE7Q0FOQURJQU4gU1lMTEFCSUNTIEE7TG87MDtMOzs7OztOOzs7OzsKKzE0MEI7Q0FOQURJQU4gU1lMTEFCSUNTIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDBDO0NBTkFESUFOIFNZTExBQklDUyBXRTtMbzswO0w7Ozs7O047Ozs7OworMTQwRDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDBFO0NBTkFESUFOIFNZTExBQklDUyBXSTtMbzswO0w7Ozs7O047Ozs7OworMTQwRjtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDEwO0NBTkFESUFOIFNZTExBQklDUyBXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0MTE7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0MTI7Q0FOQURJQU4gU1lMTEFCSUNTIFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDEzO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgV087TG87MDtMOzs7OztOOzs7OzsKKzE0MTQ7Q0FOQURJQU4gU1lMTEFCSUNTIFdPTztMbzswO0w7Ozs7O047Ozs7OworMTQxNTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFdPTztMbzswO0w7Ozs7O047Ozs7OworMTQxNjtDQU5BRElBTiBTWUxMQUJJQ1MgTkFTS0FQSSBXT087TG87MDtMOzs7OztOOzs7OzsKKzE0MTc7Q0FOQURJQU4gU1lMTEFCSUNTIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDE4O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgV0E7TG87MDtMOzs7OztOOzs7OzsKKzE0MTk7Q0FOQURJQU4gU1lMTEFCSUNTIFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTQxQTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTQxQjtDQU5BRElBTiBTWUxMQUJJQ1MgTkFTS0FQSSBXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0MUM7Q0FOQURJQU4gU1lMTEFCSUNTIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDFEO0NBTkFESUFOIFNZTExBQklDUyBZLUNSRUUgVztMbzswO0w7Ozs7O047Ozs7OworMTQxRTtDQU5BRElBTiBTWUxMQUJJQ1MgR0xPVFRBTCBTVE9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDFGO0NBTkFESUFOIFNZTExBQklDUyBGSU5BTCBBQ1VURTtMbzswO0w7Ozs7O047Ozs7OworMTQyMDtDQU5BRElBTiBTWUxMQUJJQ1MgRklOQUwgR1JBVkU7TG87MDtMOzs7OztOOzs7OzsKKzE0MjE7Q0FOQURJQU4gU1lMTEFCSUNTIEZJTkFMIEJPVFRPTSBIQUxGIFJJTkc7TG87MDtMOzs7OztOOzs7OzsKKzE0MjI7Q0FOQURJQU4gU1lMTEFCSUNTIEZJTkFMIFRPUCBIQUxGIFJJTkc7TG87MDtMOzs7OztOOzs7OzsKKzE0MjM7Q0FOQURJQU4gU1lMTEFCSUNTIEZJTkFMIFJJR0hUIEhBTEYgUklORztMbzswO0w7Ozs7O047Ozs7OworMTQyNDtDQU5BRElBTiBTWUxMQUJJQ1MgRklOQUwgUklORztMbzswO0w7Ozs7O047Ozs7OworMTQyNTtDQU5BRElBTiBTWUxMQUJJQ1MgRklOQUwgRE9VQkxFIEFDVVRFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDI2O0NBTkFESUFOIFNZTExBQklDUyBGSU5BTCBET1VCTEUgU0hPUlQgVkVSVElDQUwgU1RST0tFUztMbzswO0w7Ozs7O047Ozs7OworMTQyNztDQU5BRElBTiBTWUxMQUJJQ1MgRklOQUwgTUlERExFIERPVDtMbzswO0w7Ozs7O047Ozs7OworMTQyODtDQU5BRElBTiBTWUxMQUJJQ1MgRklOQUwgU0hPUlQgSE9SSVpPTlRBTCBTVFJPS0U7TG87MDtMOzs7OztOOzs7OzsKKzE0Mjk7Q0FOQURJQU4gU1lMTEFCSUNTIEZJTkFMIFBMVVM7TG87MDtMOzs7OztOOzs7OzsKKzE0MkE7Q0FOQURJQU4gU1lMTEFCSUNTIEZJTkFMIERPV04gVEFDSztMbzswO0w7Ozs7O047Ozs7OworMTQyQjtDQU5BRElBTiBTWUxMQUJJQ1MgRU47TG87MDtMOzs7OztOOzs7OzsKKzE0MkM7Q0FOQURJQU4gU1lMTEFCSUNTIElOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDJEO0NBTkFESUFOIFNZTExBQklDUyBPTjtMbzswO0w7Ozs7O047Ozs7OworMTQyRTtDQU5BRElBTiBTWUxMQUJJQ1MgQU47TG87MDtMOzs7OztOOzs7OzsKKzE0MkY7Q0FOQURJQU4gU1lMTEFCSUNTIFBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDMwO0NBTkFESUFOIFNZTExBQklDUyBQQUFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDMxO0NBTkFESUFOIFNZTExBQklDUyBQSTtMbzswO0w7Ozs7O047Ozs7OworMTQzMjtDQU5BRElBTiBTWUxMQUJJQ1MgUElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDMzO0NBTkFESUFOIFNZTExBQklDUyBQTztMbzswO0w7Ozs7O047Ozs7OworMTQzNDtDQU5BRElBTiBTWUxMQUJJQ1MgUE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDM1O0NBTkFESUFOIFNZTExBQklDUyBZLUNSRUUgUE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDM2O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEhFRTtMbzswO0w7Ozs7O047Ozs7OworMTQzNztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBISTtMbzswO0w7Ozs7O047Ozs7OworMTQzODtDQU5BRElBTiBTWUxMQUJJQ1MgUEE7TG87MDtMOzs7OztOOzs7OzsKKzE0Mzk7Q0FOQURJQU4gU1lMTEFCSUNTIFBBQTtMbzswO0w7Ozs7O047Ozs7OworMTQzQTtDQU5BRElBTiBTWUxMQUJJQ1MgUFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDNCO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgUFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDNDO0NBTkFESUFOIFNZTExBQklDUyBQV0k7TG87MDtMOzs7OztOOzs7OzsKKzE0M0Q7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBQV0k7TG87MDtMOzs7OztOOzs7OzsKKzE0M0U7Q0FOQURJQU4gU1lMTEFCSUNTIFBXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0M0Y7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBQV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDQwO0NBTkFESUFOIFNZTExBQklDUyBQV087TG87MDtMOzs7OztOOzs7OzsKKzE0NDE7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBQV087TG87MDtMOzs7OztOOzs7OzsKKzE0NDI7Q0FOQURJQU4gU1lMTEFCSUNTIFBXT087TG87MDtMOzs7OztOOzs7OzsKKzE0NDM7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBQV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDQ0O0NBTkFESUFOIFNZTExBQklDUyBQV0E7TG87MDtMOzs7OztOOzs7OzsKKzE0NDU7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBQV0E7TG87MDtMOzs7OztOOzs7OzsKKzE0NDY7Q0FOQURJQU4gU1lMTEFCSUNTIFBXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0NDc7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBQV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDQ4O0NBTkFESUFOIFNZTExBQklDUyBZLUNSRUUgUFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTQ0OTtDQU5BRElBTiBTWUxMQUJJQ1MgUDtMbzswO0w7Ozs7O047Ozs7OworMTQ0QTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFA7TG87MDtMOzs7OztOOzs7OzsKKzE0NEI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSDtMbzswO0w7Ozs7O047Ozs7OworMTQ0QztDQU5BRElBTiBTWUxMQUJJQ1MgVEU7TG87MDtMOzs7OztOOzs7OzsKKzE0NEQ7Q0FOQURJQU4gU1lMTEFCSUNTIFRBQUk7TG87MDtMOzs7OztOOzs7OzsKKzE0NEU7Q0FOQURJQU4gU1lMTEFCSUNTIFRJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDRGO0NBTkFESUFOIFNZTExBQklDUyBUSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0NTA7Q0FOQURJQU4gU1lMTEFCSUNTIFRPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDUxO0NBTkFESUFOIFNZTExBQklDUyBUT087TG87MDtMOzs7OztOOzs7OzsKKzE0NTI7Q0FOQURJQU4gU1lMTEFCSUNTIFktQ1JFRSBUT087TG87MDtMOzs7OztOOzs7OzsKKzE0NTM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgREVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDU0O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIERJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDU1O0NBTkFESUFOIFNZTExBQklDUyBUQTtMbzswO0w7Ozs7O047Ozs7OworMTQ1NjtDQU5BRElBTiBTWUxMQUJJQ1MgVEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDU3O0NBTkFESUFOIFNZTExBQklDUyBUV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0NTg7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBUV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0NTk7Q0FOQURJQU4gU1lMTEFCSUNTIFRXSTtMbzswO0w7Ozs7O047Ozs7OworMTQ1QTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFRXSTtMbzswO0w7Ozs7O047Ozs7OworMTQ1QjtDQU5BRElBTiBTWUxMQUJJQ1MgVFdJSTtMbzswO0w7Ozs7O047Ozs7OworMTQ1QztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFRXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0NUQ7Q0FOQURJQU4gU1lMTEFCSUNTIFRXTztMbzswO0w7Ozs7O047Ozs7OworMTQ1RTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFRXTztMbzswO0w7Ozs7O047Ozs7OworMTQ1RjtDQU5BRElBTiBTWUxMQUJJQ1MgVFdPTztMbzswO0w7Ozs7O047Ozs7OworMTQ2MDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFRXT087TG87MDtMOzs7OztOOzs7OzsKKzE0NjE7Q0FOQURJQU4gU1lMTEFCSUNTIFRXQTtMbzswO0w7Ozs7O047Ozs7OworMTQ2MjtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFRXQTtMbzswO0w7Ozs7O047Ozs7OworMTQ2MztDQU5BRElBTiBTWUxMQUJJQ1MgVFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTQ2NDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFRXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0NjU7Q0FOQURJQU4gU1lMTEFCSUNTIE5BU0tBUEkgVFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTQ2NjtDQU5BRElBTiBTWUxMQUJJQ1MgVDtMbzswO0w7Ozs7O047Ozs7OworMTQ2NztDQU5BRElBTiBTWUxMQUJJQ1MgVFRFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDY4O0NBTkFESUFOIFNZTExBQklDUyBUVEk7TG87MDtMOzs7OztOOzs7OzsKKzE0Njk7Q0FOQURJQU4gU1lMTEFCSUNTIFRUTztMbzswO0w7Ozs7O047Ozs7OworMTQ2QTtDQU5BRElBTiBTWUxMQUJJQ1MgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDZCO0NBTkFESUFOIFNZTExBQklDUyBLRTtMbzswO0w7Ozs7O047Ozs7OworMTQ2QztDQU5BRElBTiBTWUxMQUJJQ1MgS0FBSTtMbzswO0w7Ozs7O047Ozs7OworMTQ2RDtDQU5BRElBTiBTWUxMQUJJQ1MgS0k7TG87MDtMOzs7OztOOzs7OzsKKzE0NkU7Q0FOQURJQU4gU1lMTEFCSUNTIEtJSTtMbzswO0w7Ozs7O047Ozs7OworMTQ2RjtDQU5BRElBTiBTWUxMQUJJQ1MgS087TG87MDtMOzs7OztOOzs7OzsKKzE0NzA7Q0FOQURJQU4gU1lMTEFCSUNTIEtPTztMbzswO0w7Ozs7O047Ozs7OworMTQ3MTtDQU5BRElBTiBTWUxMQUJJQ1MgWS1DUkVFIEtPTztMbzswO0w7Ozs7O047Ozs7OworMTQ3MjtDQU5BRElBTiBTWUxMQUJJQ1MgS0E7TG87MDtMOzs7OztOOzs7OzsKKzE0NzM7Q0FOQURJQU4gU1lMTEFCSUNTIEtBQTtMbzswO0w7Ozs7O047Ozs7OworMTQ3NDtDQU5BRElBTiBTWUxMQUJJQ1MgS1dFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDc1O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgS1dFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDc2O0NBTkFESUFOIFNZTExBQklDUyBLV0k7TG87MDtMOzs7OztOOzs7OzsKKzE0Nzc7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBLV0k7TG87MDtMOzs7OztOOzs7OzsKKzE0Nzg7Q0FOQURJQU4gU1lMTEFCSUNTIEtXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0Nzk7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBLV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDdBO0NBTkFESUFOIFNZTExBQklDUyBLV087TG87MDtMOzs7OztOOzs7OzsKKzE0N0I7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBLV087TG87MDtMOzs7OztOOzs7OzsKKzE0N0M7Q0FOQURJQU4gU1lMTEFCSUNTIEtXT087TG87MDtMOzs7OztOOzs7OzsKKzE0N0Q7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBLV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDdFO0NBTkFESUFOIFNZTExBQklDUyBLV0E7TG87MDtMOzs7OztOOzs7OzsKKzE0N0Y7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBLV0E7TG87MDtMOzs7OztOOzs7OzsKKzE0ODA7Q0FOQURJQU4gU1lMTEFCSUNTIEtXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0ODE7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBLV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDgyO0NBTkFESUFOIFNZTExBQklDUyBOQVNLQVBJIEtXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0ODM7Q0FOQURJQU4gU1lMTEFCSUNTIEs7TG87MDtMOzs7OztOOzs7OzsKKzE0ODQ7Q0FOQURJQU4gU1lMTEFCSUNTIEtXO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDg1O0NBTkFESUFOIFNZTExBQklDUyBTT1VUSC1TTEFWRVkgS0VIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDg2O0NBTkFESUFOIFNZTExBQklDUyBTT1VUSC1TTEFWRVkgS0lIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDg3O0NBTkFESUFOIFNZTExBQklDUyBTT1VUSC1TTEFWRVkgS09IO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDg4O0NBTkFESUFOIFNZTExBQklDUyBTT1VUSC1TTEFWRVkgS0FIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDg5O0NBTkFESUFOIFNZTExBQklDUyBDRTtMbzswO0w7Ozs7O047Ozs7OworMTQ4QTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FBSTtMbzswO0w7Ozs7O047Ozs7OworMTQ4QjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0k7TG87MDtMOzs7OztOOzs7OzsKKzE0OEM7Q0FOQURJQU4gU1lMTEFCSUNTIENJSTtMbzswO0w7Ozs7O047Ozs7OworMTQ4RDtDQU5BRElBTiBTWUxMQUJJQ1MgQ087TG87MDtMOzs7OztOOzs7OzsKKzE0OEU7Q0FOQURJQU4gU1lMTEFCSUNTIENPTztMbzswO0w7Ozs7O047Ozs7OworMTQ4RjtDQU5BRElBTiBTWUxMQUJJQ1MgWS1DUkVFIENPTztMbzswO0w7Ozs7O047Ozs7OworMTQ5MDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzE0OTE7Q0FOQURJQU4gU1lMTEFCSUNTIENBQTtMbzswO0w7Ozs7O047Ozs7OworMTQ5MjtDQU5BRElBTiBTWUxMQUJJQ1MgQ1dFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDkzO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgQ1dFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDk0O0NBTkFESUFOIFNZTExBQklDUyBDV0k7TG87MDtMOzs7OztOOzs7OzsKKzE0OTU7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBDV0k7TG87MDtMOzs7OztOOzs7OzsKKzE0OTY7Q0FOQURJQU4gU1lMTEFCSUNTIENXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0OTc7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBDV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDk4O0NBTkFESUFOIFNZTExBQklDUyBDV087TG87MDtMOzs7OztOOzs7OzsKKzE0OTk7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBDV087TG87MDtMOzs7OztOOzs7OzsKKzE0OUE7Q0FOQURJQU4gU1lMTEFCSUNTIENXT087TG87MDtMOzs7OztOOzs7OzsKKzE0OUI7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBDV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDlDO0NBTkFESUFOIFNZTExBQklDUyBDV0E7TG87MDtMOzs7OztOOzs7OzsKKzE0OUQ7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBDV0E7TG87MDtMOzs7OztOOzs7OzsKKzE0OUU7Q0FOQURJQU4gU1lMTEFCSUNTIENXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0OUY7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBDV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEEwO0NBTkFESUFOIFNZTExBQklDUyBOQVNLQVBJIENXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0QTE7Q0FOQURJQU4gU1lMTEFCSUNTIEM7TG87MDtMOzs7OztOOzs7OzsKKzE0QTI7Q0FOQURJQU4gU1lMTEFCSUNTIFNBWUlTSSBUSDtMbzswO0w7Ozs7O047Ozs7OworMTRBMztDQU5BRElBTiBTWUxMQUJJQ1MgTUU7TG87MDtMOzs7OztOOzs7OzsKKzE0QTQ7Q0FOQURJQU4gU1lMTEFCSUNTIE1BQUk7TG87MDtMOzs7OztOOzs7OzsKKzE0QTU7Q0FOQURJQU4gU1lMTEFCSUNTIE1JO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEE2O0NBTkFESUFOIFNZTExBQklDUyBNSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0QTc7Q0FOQURJQU4gU1lMTEFCSUNTIE1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEE4O0NBTkFESUFOIFNZTExBQklDUyBNT087TG87MDtMOzs7OztOOzs7OzsKKzE0QTk7Q0FOQURJQU4gU1lMTEFCSUNTIFktQ1JFRSBNT087TG87MDtMOzs7OztOOzs7OzsKKzE0QUE7Q0FOQURJQU4gU1lMTEFCSUNTIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEFCO0NBTkFESUFOIFNZTExBQklDUyBNQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0QUM7Q0FOQURJQU4gU1lMTEFCSUNTIE1XRTtMbzswO0w7Ozs7O047Ozs7OworMTRBRDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIE1XRTtMbzswO0w7Ozs7O047Ozs7OworMTRBRTtDQU5BRElBTiBTWUxMQUJJQ1MgTVdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEFGO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTVdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEIwO0NBTkFESUFOIFNZTExBQklDUyBNV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEIxO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTVdJSTtMbzswO0w7Ozs7O047Ozs7OworMTRCMjtDQU5BRElBTiBTWUxMQUJJQ1MgTVdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEIzO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTVdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEI0O0NBTkFESUFOIFNZTExBQklDUyBNV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEI1O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTVdPTztMbzswO0w7Ozs7O047Ozs7OworMTRCNjtDQU5BRElBTiBTWUxMQUJJQ1MgTVdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEI3O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTVdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEI4O0NBTkFESUFOIFNZTExBQklDUyBNV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEI5O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTVdBQTtMbzswO0w7Ozs7O047Ozs7OworMTRCQTtDQU5BRElBTiBTWUxMQUJJQ1MgTkFTS0FQSSBNV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEJCO0NBTkFESUFOIFNZTExBQklDUyBNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEJDO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTTtMbzswO0w7Ozs7O047Ozs7OworMTRCRDtDQU5BRElBTiBTWUxMQUJJQ1MgTUg7TG87MDtMOzs7OztOOzs7OzsKKzE0QkU7Q0FOQURJQU4gU1lMTEFCSUNTIEFUSEFQQVNDQU4gTTtMbzswO0w7Ozs7O047Ozs7OworMTRCRjtDQU5BRElBTiBTWUxMQUJJQ1MgU0FZSVNJIE07TG87MDtMOzs7OztOOzs7OzsKKzE0QzA7Q0FOQURJQU4gU1lMTEFCSUNTIE5FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEMxO0NBTkFESUFOIFNZTExBQklDUyBOQUFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEMyO0NBTkFESUFOIFNZTExBQklDUyBOSTtMbzswO0w7Ozs7O047Ozs7OworMTRDMztDQU5BRElBTiBTWUxMQUJJQ1MgTklJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEM0O0NBTkFESUFOIFNZTExBQklDUyBOTztMbzswO0w7Ozs7O047Ozs7OworMTRDNTtDQU5BRElBTiBTWUxMQUJJQ1MgTk9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEM2O0NBTkFESUFOIFNZTExBQklDUyBZLUNSRUUgTk9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEM3O0NBTkFESUFOIFNZTExBQklDUyBOQTtMbzswO0w7Ozs7O047Ozs7OworMTRDODtDQU5BRElBTiBTWUxMQUJJQ1MgTkFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEM5O0NBTkFESUFOIFNZTExBQklDUyBOV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0Q0E7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBOV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0Q0I7Q0FOQURJQU4gU1lMTEFCSUNTIE5XQTtMbzswO0w7Ozs7O047Ozs7OworMTRDQztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIE5XQTtMbzswO0w7Ozs7O047Ozs7OworMTRDRDtDQU5BRElBTiBTWUxMQUJJQ1MgTldBQTtMbzswO0w7Ozs7O047Ozs7OworMTRDRTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIE5XQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0Q0Y7Q0FOQURJQU4gU1lMTEFCSUNTIE5BU0tBUEkgTldBQTtMbzswO0w7Ozs7O047Ozs7OworMTREMDtDQU5BRElBTiBTWUxMQUJJQ1MgTjtMbzswO0w7Ozs7O047Ozs7OworMTREMTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBORztMbzswO0w7Ozs7O047Ozs7OworMTREMjtDQU5BRElBTiBTWUxMQUJJQ1MgTkg7TG87MDtMOzs7OztOOzs7OzsKKzE0RDM7Q0FOQURJQU4gU1lMTEFCSUNTIExFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEQ0O0NBTkFESUFOIFNZTExBQklDUyBMQUFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEQ1O0NBTkFESUFOIFNZTExBQklDUyBMSTtMbzswO0w7Ozs7O047Ozs7OworMTRENjtDQU5BRElBTiBTWUxMQUJJQ1MgTElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEQ3O0NBTkFESUFOIFNZTExBQklDUyBMTztMbzswO0w7Ozs7O047Ozs7OworMTREODtDQU5BRElBTiBTWUxMQUJJQ1MgTE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEQ5O0NBTkFESUFOIFNZTExBQklDUyBZLUNSRUUgTE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNERBO0NBTkFESUFOIFNZTExBQklDUyBMQTtMbzswO0w7Ozs7O047Ozs7OworMTREQjtDQU5BRElBTiBTWUxMQUJJQ1MgTEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNERDO0NBTkFESUFOIFNZTExBQklDUyBMV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0REQ7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBMV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0REU7Q0FOQURJQU4gU1lMTEFCSUNTIExXSTtMbzswO0w7Ozs7O047Ozs7OworMTRERjtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIExXSTtMbzswO0w7Ozs7O047Ozs7OworMTRFMDtDQU5BRElBTiBTWUxMQUJJQ1MgTFdJSTtMbzswO0w7Ozs7O047Ozs7OworMTRFMTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIExXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0RTI7Q0FOQURJQU4gU1lMTEFCSUNTIExXTztMbzswO0w7Ozs7O047Ozs7OworMTRFMztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIExXTztMbzswO0w7Ozs7O047Ozs7OworMTRFNDtDQU5BRElBTiBTWUxMQUJJQ1MgTFdPTztMbzswO0w7Ozs7O047Ozs7OworMTRFNTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIExXT087TG87MDtMOzs7OztOOzs7OzsKKzE0RTY7Q0FOQURJQU4gU1lMTEFCSUNTIExXQTtMbzswO0w7Ozs7O047Ozs7OworMTRFNztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIExXQTtMbzswO0w7Ozs7O047Ozs7OworMTRFODtDQU5BRElBTiBTWUxMQUJJQ1MgTFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTRFOTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIExXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0RUE7Q0FOQURJQU4gU1lMTEFCSUNTIEw7TG87MDtMOzs7OztOOzs7OzsKKzE0RUI7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEVDO0NBTkFESUFOIFNZTExBQklDUyBNRURJQUwgTDtMbzswO0w7Ozs7O047Ozs7OworMTRFRDtDQU5BRElBTiBTWUxMQUJJQ1MgU0U7TG87MDtMOzs7OztOOzs7OzsKKzE0RUU7Q0FOQURJQU4gU1lMTEFCSUNTIFNBQUk7TG87MDtMOzs7OztOOzs7OzsKKzE0RUY7Q0FOQURJQU4gU1lMTEFCSUNTIFNJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEYwO0NBTkFESUFOIFNZTExBQklDUyBTSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0RjE7Q0FOQURJQU4gU1lMTEFCSUNTIFNPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEYyO0NBTkFESUFOIFNZTExBQklDUyBTT087TG87MDtMOzs7OztOOzs7OzsKKzE0RjM7Q0FOQURJQU4gU1lMTEFCSUNTIFktQ1JFRSBTT087TG87MDtMOzs7OztOOzs7OzsKKzE0RjQ7Q0FOQURJQU4gU1lMTEFCSUNTIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEY1O0NBTkFESUFOIFNZTExBQklDUyBTQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0RjY7Q0FOQURJQU4gU1lMTEFCSUNTIFNXRTtMbzswO0w7Ozs7O047Ozs7OworMTRGNztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFNXRTtMbzswO0w7Ozs7O047Ozs7OworMTRGODtDQU5BRElBTiBTWUxMQUJJQ1MgU1dJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEY5O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgU1dJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEZBO0NBTkFESUFOIFNZTExBQklDUyBTV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEZCO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgU1dJSTtMbzswO0w7Ozs7O047Ozs7OworMTRGQztDQU5BRElBTiBTWUxMQUJJQ1MgU1dPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEZEO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgU1dPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEZFO0NBTkFESUFOIFNZTExBQklDUyBTV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEZGO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgU1dPTztMbzswO0w7Ozs7O047Ozs7OworMTUwMDtDQU5BRElBTiBTWUxMQUJJQ1MgU1dBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTAxO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgU1dBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTAyO0NBTkFESUFOIFNZTExBQklDUyBTV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTAzO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgU1dBQTtMbzswO0w7Ozs7O047Ozs7OworMTUwNDtDQU5BRElBTiBTWUxMQUJJQ1MgTkFTS0FQSSBTV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTA1O0NBTkFESUFOIFNZTExBQklDUyBTO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTA2O0NBTkFESUFOIFNZTExBQklDUyBBVEhBUEFTQ0FOIFM7TG87MDtMOzs7OztOOzs7OzsKKzE1MDc7Q0FOQURJQU4gU1lMTEFCSUNTIFNXO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTA4O0NBTkFESUFOIFNZTExBQklDUyBCTEFDS0ZPT1QgUztMbzswO0w7Ozs7O047Ozs7OworMTUwOTtDQU5BRElBTiBTWUxMQUJJQ1MgTU9PU0UtQ1JFRSBTSztMbzswO0w7Ozs7O047Ozs7OworMTUwQTtDQU5BRElBTiBTWUxMQUJJQ1MgTkFTS0FQSSBTS1c7TG87MDtMOzs7OztOOzs7OzsKKzE1MEI7Q0FOQURJQU4gU1lMTEFCSUNTIE5BU0tBUEkgUy1XO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTBDO0NBTkFESUFOIFNZTExBQklDUyBOQVNLQVBJIFNQV0E7TG87MDtMOzs7OztOOzs7OzsKKzE1MEQ7Q0FOQURJQU4gU1lMTEFCSUNTIE5BU0tBUEkgU1RXQTtMbzswO0w7Ozs7O047Ozs7OworMTUwRTtDQU5BRElBTiBTWUxMQUJJQ1MgTkFTS0FQSSBTS1dBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTBGO0NBTkFESUFOIFNZTExBQklDUyBOQVNLQVBJIFNDV0E7TG87MDtMOzs7OztOOzs7OzsKKzE1MTA7Q0FOQURJQU4gU1lMTEFCSUNTIFNIRTtMbzswO0w7Ozs7O047Ozs7OworMTUxMTtDQU5BRElBTiBTWUxMQUJJQ1MgU0hJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTEyO0NBTkFESUFOIFNZTExBQklDUyBTSElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTEzO0NBTkFESUFOIFNZTExBQklDUyBTSE87TG87MDtMOzs7OztOOzs7OzsKKzE1MTQ7Q0FOQURJQU4gU1lMTEFCSUNTIFNIT087TG87MDtMOzs7OztOOzs7OzsKKzE1MTU7Q0FOQURJQU4gU1lMTEFCSUNTIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMTUxNjtDQU5BRElBTiBTWUxMQUJJQ1MgU0hBQTtMbzswO0w7Ozs7O047Ozs7OworMTUxNztDQU5BRElBTiBTWUxMQUJJQ1MgU0hXRTtMbzswO0w7Ozs7O047Ozs7OworMTUxODtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFNIV0U7TG87MDtMOzs7OztOOzs7OzsKKzE1MTk7Q0FOQURJQU4gU1lMTEFCSUNTIFNIV0k7TG87MDtMOzs7OztOOzs7OzsKKzE1MUE7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBTSFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTFCO0NBTkFESUFOIFNZTExBQklDUyBTSFdJSTtMbzswO0w7Ozs7O047Ozs7OworMTUxQztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFNIV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTFEO0NBTkFESUFOIFNZTExBQklDUyBTSFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTFFO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgU0hXTztMbzswO0w7Ozs7O047Ozs7OworMTUxRjtDQU5BRElBTiBTWUxMQUJJQ1MgU0hXT087TG87MDtMOzs7OztOOzs7OzsKKzE1MjA7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBTSFdPTztMbzswO0w7Ozs7O047Ozs7OworMTUyMTtDQU5BRElBTiBTWUxMQUJJQ1MgU0hXQTtMbzswO0w7Ozs7O047Ozs7OworMTUyMjtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFNIV0E7TG87MDtMOzs7OztOOzs7OzsKKzE1MjM7Q0FOQURJQU4gU1lMTEFCSUNTIFNIV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTI0O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgU0hXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1MjU7Q0FOQURJQU4gU1lMTEFCSUNTIFNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTI2O0NBTkFESUFOIFNZTExBQklDUyBZRTtMbzswO0w7Ozs7O047Ozs7OworMTUyNztDQU5BRElBTiBTWUxMQUJJQ1MgWUFBSTtMbzswO0w7Ozs7O047Ozs7OworMTUyODtDQU5BRElBTiBTWUxMQUJJQ1MgWUk7TG87MDtMOzs7OztOOzs7OzsKKzE1Mjk7Q0FOQURJQU4gU1lMTEFCSUNTIFlJSTtMbzswO0w7Ozs7O047Ozs7OworMTUyQTtDQU5BRElBTiBTWUxMQUJJQ1MgWU87TG87MDtMOzs7OztOOzs7OzsKKzE1MkI7Q0FOQURJQU4gU1lMTEFCSUNTIFlPTztMbzswO0w7Ozs7O047Ozs7OworMTUyQztDQU5BRElBTiBTWUxMQUJJQ1MgWS1DUkVFIFlPTztMbzswO0w7Ozs7O047Ozs7OworMTUyRDtDQU5BRElBTiBTWUxMQUJJQ1MgWUE7TG87MDtMOzs7OztOOzs7OzsKKzE1MkU7Q0FOQURJQU4gU1lMTEFCSUNTIFlBQTtMbzswO0w7Ozs7O047Ozs7OworMTUyRjtDQU5BRElBTiBTWUxMQUJJQ1MgWVdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTMwO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgWVdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTMxO0NBTkFESUFOIFNZTExBQklDUyBZV0k7TG87MDtMOzs7OztOOzs7OzsKKzE1MzI7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBZV0k7TG87MDtMOzs7OztOOzs7OzsKKzE1MzM7Q0FOQURJQU4gU1lMTEFCSUNTIFlXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE1MzQ7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBZV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTM1O0NBTkFESUFOIFNZTExBQklDUyBZV087TG87MDtMOzs7OztOOzs7OzsKKzE1MzY7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBZV087TG87MDtMOzs7OztOOzs7OzsKKzE1Mzc7Q0FOQURJQU4gU1lMTEFCSUNTIFlXT087TG87MDtMOzs7OztOOzs7OzsKKzE1Mzg7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBZV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTM5O0NBTkFESUFOIFNZTExBQklDUyBZV0E7TG87MDtMOzs7OztOOzs7OzsKKzE1M0E7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBZV0E7TG87MDtMOzs7OztOOzs7OzsKKzE1M0I7Q0FOQURJQU4gU1lMTEFCSUNTIFlXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1M0M7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBZV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTNEO0NBTkFESUFOIFNZTExBQklDUyBOQVNLQVBJIFlXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1M0U7Q0FOQURJQU4gU1lMTEFCSUNTIFk7TG87MDtMOzs7OztOOzs7OzsKKzE1M0Y7Q0FOQURJQU4gU1lMTEFCSUNTIEJJQkxFLUNSRUUgWTtMbzswO0w7Ozs7O047Ozs7OworMTU0MDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFk7TG87MDtMOzs7OztOOzs7OzsKKzE1NDE7Q0FOQURJQU4gU1lMTEFCSUNTIFNBWUlTSSBZSTtMbzswO0w7Ozs7O047Ozs7OworMTU0MjtDQU5BRElBTiBTWUxMQUJJQ1MgUkU7TG87MDtMOzs7OztOOzs7OzsKKzE1NDM7Q0FOQURJQU4gU1lMTEFCSUNTIFItQ1JFRSBSRTtMbzswO0w7Ozs7O047Ozs7OworMTU0NDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIExFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTQ1O0NBTkFESUFOIFNZTExBQklDUyBSQUFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTQ2O0NBTkFESUFOIFNZTExBQklDUyBSSTtMbzswO0w7Ozs7O047Ozs7OworMTU0NztDQU5BRElBTiBTWUxMQUJJQ1MgUklJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTQ4O0NBTkFESUFOIFNZTExBQklDUyBSTztMbzswO0w7Ozs7O047Ozs7OworMTU0OTtDQU5BRElBTiBTWUxMQUJJQ1MgUk9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTRBO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTE87TG87MDtMOzs7OztOOzs7OzsKKzE1NEI7Q0FOQURJQU4gU1lMTEFCSUNTIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTRDO0NBTkFESUFOIFNZTExBQklDUyBSQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1NEQ7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBMQTtMbzswO0w7Ozs7O047Ozs7OworMTU0RTtDQU5BRElBTiBTWUxMQUJJQ1MgUldBQTtMbzswO0w7Ozs7O047Ozs7OworMTU0RjtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFJXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1NTA7Q0FOQURJQU4gU1lMTEFCSUNTIFI7TG87MDtMOzs7OztOOzs7OzsKKzE1NTE7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTUyO0NBTkFESUFOIFNZTExBQklDUyBNRURJQUwgUjtMbzswO0w7Ozs7O047Ozs7OworMTU1MztDQU5BRElBTiBTWUxMQUJJQ1MgRkU7TG87MDtMOzs7OztOOzs7OzsKKzE1NTQ7Q0FOQURJQU4gU1lMTEFCSUNTIEZBQUk7TG87MDtMOzs7OztOOzs7OzsKKzE1NTU7Q0FOQURJQU4gU1lMTEFCSUNTIEZJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTU2O0NBTkFESUFOIFNZTExBQklDUyBGSUk7TG87MDtMOzs7OztOOzs7OzsKKzE1NTc7Q0FOQURJQU4gU1lMTEFCSUNTIEZPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTU4O0NBTkFESUFOIFNZTExBQklDUyBGT087TG87MDtMOzs7OztOOzs7OzsKKzE1NTk7Q0FOQURJQU4gU1lMTEFCSUNTIEZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTVBO0NBTkFESUFOIFNZTExBQklDUyBGQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1NUI7Q0FOQURJQU4gU1lMTEFCSUNTIEZXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1NUM7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBGV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTVEO0NBTkFESUFOIFNZTExBQklDUyBGO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTVFO0NBTkFESUFOIFNZTExBQklDUyBUSEU7TG87MDtMOzs7OztOOzs7OzsKKzE1NUY7Q0FOQURJQU4gU1lMTEFCSUNTIE4tQ1JFRSBUSEU7TG87MDtMOzs7OztOOzs7OzsKKzE1NjA7Q0FOQURJQU4gU1lMTEFCSUNTIFRISTtMbzswO0w7Ozs7O047Ozs7OworMTU2MTtDQU5BRElBTiBTWUxMQUJJQ1MgTi1DUkVFIFRISTtMbzswO0w7Ozs7O047Ozs7OworMTU2MjtDQU5BRElBTiBTWUxMQUJJQ1MgVEhJSTtMbzswO0w7Ozs7O047Ozs7OworMTU2MztDQU5BRElBTiBTWUxMQUJJQ1MgTi1DUkVFIFRISUk7TG87MDtMOzs7OztOOzs7OzsKKzE1NjQ7Q0FOQURJQU4gU1lMTEFCSUNTIFRITztMbzswO0w7Ozs7O047Ozs7OworMTU2NTtDQU5BRElBTiBTWUxMQUJJQ1MgVEhPTztMbzswO0w7Ozs7O047Ozs7OworMTU2NjtDQU5BRElBTiBTWUxMQUJJQ1MgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTY3O0NBTkFESUFOIFNZTExBQklDUyBUSEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTY4O0NBTkFESUFOIFNZTExBQklDUyBUSFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTU2OTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFRIV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTZBO0NBTkFESUFOIFNZTExBQklDUyBUSDtMbzswO0w7Ozs7O047Ozs7OworMTU2QjtDQU5BRElBTiBTWUxMQUJJQ1MgVFRIRTtMbzswO0w7Ozs7O047Ozs7OworMTU2QztDQU5BRElBTiBTWUxMQUJJQ1MgVFRISTtMbzswO0w7Ozs7O047Ozs7OworMTU2RDtDQU5BRElBTiBTWUxMQUJJQ1MgVFRITztMbzswO0w7Ozs7O047Ozs7OworMTU2RTtDQU5BRElBTiBTWUxMQUJJQ1MgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMTU2RjtDQU5BRElBTiBTWUxMQUJJQ1MgVFRIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTcwO0NBTkFESUFOIFNZTExBQklDUyBUWUU7TG87MDtMOzs7OztOOzs7OzsKKzE1NzE7Q0FOQURJQU4gU1lMTEFCSUNTIFRZSTtMbzswO0w7Ozs7O047Ozs7OworMTU3MjtDQU5BRElBTiBTWUxMQUJJQ1MgVFlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTczO0NBTkFESUFOIFNZTExBQklDUyBUWUE7TG87MDtMOzs7OztOOzs7OzsKKzE1NzQ7Q0FOQURJQU4gU1lMTEFCSUNTIE5VTkFWSUsgSEU7TG87MDtMOzs7OztOOzs7OzsKKzE1NzU7Q0FOQURJQU4gU1lMTEFCSUNTIE5VTkFWSUsgSEk7TG87MDtMOzs7OztOOzs7OzsKKzE1NzY7Q0FOQURJQU4gU1lMTEFCSUNTIE5VTkFWSUsgSElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTc3O0NBTkFESUFOIFNZTExBQklDUyBOVU5BVklLIEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTc4O0NBTkFESUFOIFNZTExBQklDUyBOVU5BVklLIEhPTztMbzswO0w7Ozs7O047Ozs7OworMTU3OTtDQU5BRElBTiBTWUxMQUJJQ1MgTlVOQVZJSyBIQTtMbzswO0w7Ozs7O047Ozs7OworMTU3QTtDQU5BRElBTiBTWUxMQUJJQ1MgTlVOQVZJSyBIQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1N0I7Q0FOQURJQU4gU1lMTEFCSUNTIE5VTkFWSUsgSDtMbzswO0w7Ozs7O047Ozs7OworMTU3QztDQU5BRElBTiBTWUxMQUJJQ1MgTlVOQVZVVCBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTdEO0NBTkFESUFOIFNZTExBQklDUyBISztMbzswO0w7Ozs7O047Ozs7OworMTU3RTtDQU5BRElBTiBTWUxMQUJJQ1MgUUFBSTtMbzswO0w7Ozs7O047Ozs7OworMTU3RjtDQU5BRElBTiBTWUxMQUJJQ1MgUUk7TG87MDtMOzs7OztOOzs7OzsKKzE1ODA7Q0FOQURJQU4gU1lMTEFCSUNTIFFJSTtMbzswO0w7Ozs7O047Ozs7OworMTU4MTtDQU5BRElBTiBTWUxMQUJJQ1MgUU87TG87MDtMOzs7OztOOzs7OzsKKzE1ODI7Q0FOQURJQU4gU1lMTEFCSUNTIFFPTztMbzswO0w7Ozs7O047Ozs7OworMTU4MztDQU5BRElBTiBTWUxMQUJJQ1MgUUE7TG87MDtMOzs7OztOOzs7OzsKKzE1ODQ7Q0FOQURJQU4gU1lMTEFCSUNTIFFBQTtMbzswO0w7Ozs7O047Ozs7OworMTU4NTtDQU5BRElBTiBTWUxMQUJJQ1MgUTtMbzswO0w7Ozs7O047Ozs7OworMTU4NjtDQU5BRElBTiBTWUxMQUJJQ1MgVExIRTtMbzswO0w7Ozs7O047Ozs7OworMTU4NztDQU5BRElBTiBTWUxMQUJJQ1MgVExISTtMbzswO0w7Ozs7O047Ozs7OworMTU4ODtDQU5BRElBTiBTWUxMQUJJQ1MgVExITztMbzswO0w7Ozs7O047Ozs7OworMTU4OTtDQU5BRElBTiBTWUxMQUJJQ1MgVExIQTtMbzswO0w7Ozs7O047Ozs7OworMTU4QTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFJFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNThCO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgUkk7TG87MDtMOzs7OztOOzs7OzsKKzE1OEM7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBSTztMbzswO0w7Ozs7O047Ozs7OworMTU4RDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNThFO0NBTkFESUFOIFNZTExBQklDUyBOR0FBSTtMbzswO0w7Ozs7O047Ozs7OworMTU4RjtDQU5BRElBTiBTWUxMQUJJQ1MgTkdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTkwO0NBTkFESUFOIFNZTExBQklDUyBOR0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTkxO0NBTkFESUFOIFNZTExBQklDUyBOR087TG87MDtMOzs7OztOOzs7OzsKKzE1OTI7Q0FOQURJQU4gU1lMTEFCSUNTIE5HT087TG87MDtMOzs7OztOOzs7OzsKKzE1OTM7Q0FOQURJQU4gU1lMTEFCSUNTIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMTU5NDtDQU5BRElBTiBTWUxMQUJJQ1MgTkdBQTtMbzswO0w7Ozs7O047Ozs7OworMTU5NTtDQU5BRElBTiBTWUxMQUJJQ1MgTkc7TG87MDtMOzs7OztOOzs7OzsKKzE1OTY7Q0FOQURJQU4gU1lMTEFCSUNTIE5ORztMbzswO0w7Ozs7O047Ozs7OworMTU5NztDQU5BRElBTiBTWUxMQUJJQ1MgU0FZSVNJIFNIRTtMbzswO0w7Ozs7O047Ozs7OworMTU5ODtDQU5BRElBTiBTWUxMQUJJQ1MgU0FZSVNJIFNISTtMbzswO0w7Ozs7O047Ozs7OworMTU5OTtDQU5BRElBTiBTWUxMQUJJQ1MgU0FZSVNJIFNITztMbzswO0w7Ozs7O047Ozs7OworMTU5QTtDQU5BRElBTiBTWUxMQUJJQ1MgU0FZSVNJIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMTU5QjtDQU5BRElBTiBTWUxMQUJJQ1MgV09PRFMtQ1JFRSBUSEU7TG87MDtMOzs7OztOOzs7OzsKKzE1OUM7Q0FOQURJQU4gU1lMTEFCSUNTIFdPT0RTLUNSRUUgVEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTlEO0NBTkFESUFOIFNZTExBQklDUyBXT09EUy1DUkVFIFRITztMbzswO0w7Ozs7O047Ozs7OworMTU5RTtDQU5BRElBTiBTWUxMQUJJQ1MgV09PRFMtQ1JFRSBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzE1OUY7Q0FOQURJQU4gU1lMTEFCSUNTIFdPT0RTLUNSRUUgVEg7TG87MDtMOzs7OztOOzs7OzsKKzE1QTA7Q0FOQURJQU4gU1lMTEFCSUNTIExISTtMbzswO0w7Ozs7O047Ozs7OworMTVBMTtDQU5BRElBTiBTWUxMQUJJQ1MgTEhJSTtMbzswO0w7Ozs7O047Ozs7OworMTVBMjtDQU5BRElBTiBTWUxMQUJJQ1MgTEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUEzO0NBTkFESUFOIFNZTExBQklDUyBMSE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUE0O0NBTkFESUFOIFNZTExBQklDUyBMSEE7TG87MDtMOzs7OztOOzs7OzsKKzE1QTU7Q0FOQURJQU4gU1lMTEFCSUNTIExIQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1QTY7Q0FOQURJQU4gU1lMTEFCSUNTIExIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUE3O0NBTkFESUFOIFNZTExBQklDUyBUSC1DUkVFIFRIRTtMbzswO0w7Ozs7O047Ozs7OworMTVBODtDQU5BRElBTiBTWUxMQUJJQ1MgVEgtQ1JFRSBUSEk7TG87MDtMOzs7OztOOzs7OzsKKzE1QTk7Q0FOQURJQU4gU1lMTEFCSUNTIFRILUNSRUUgVEhJSTtMbzswO0w7Ozs7O047Ozs7OworMTVBQTtDQU5BRElBTiBTWUxMQUJJQ1MgVEgtQ1JFRSBUSE87TG87MDtMOzs7OztOOzs7OzsKKzE1QUI7Q0FOQURJQU4gU1lMTEFCSUNTIFRILUNSRUUgVEhPTztMbzswO0w7Ozs7O047Ozs7OworMTVBQztDQU5BRElBTiBTWUxMQUJJQ1MgVEgtQ1JFRSBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzE1QUQ7Q0FOQURJQU4gU1lMTEFCSUNTIFRILUNSRUUgVEhBQTtMbzswO0w7Ozs7O047Ozs7OworMTVBRTtDQU5BRElBTiBTWUxMQUJJQ1MgVEgtQ1JFRSBUSDtMbzswO0w7Ozs7O047Ozs7OworMTVBRjtDQU5BRElBTiBTWUxMQUJJQ1MgQUlWSUxJSyBCO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUIwO0NBTkFESUFOIFNZTExBQklDUyBCTEFDS0ZPT1QgRTtMbzswO0w7Ozs7O047Ozs7OworMTVCMTtDQU5BRElBTiBTWUxMQUJJQ1MgQkxBQ0tGT09UIEk7TG87MDtMOzs7OztOOzs7OzsKKzE1QjI7Q0FOQURJQU4gU1lMTEFCSUNTIEJMQUNLRk9PVCBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUIzO0NBTkFESUFOIFNZTExBQklDUyBCTEFDS0ZPT1QgQTtMbzswO0w7Ozs7O047Ozs7OworMTVCNDtDQU5BRElBTiBTWUxMQUJJQ1MgQkxBQ0tGT09UIFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUI1O0NBTkFESUFOIFNZTExBQklDUyBCTEFDS0ZPT1QgV0k7TG87MDtMOzs7OztOOzs7OzsKKzE1QjY7Q0FOQURJQU4gU1lMTEFCSUNTIEJMQUNLRk9PVCBXTztMbzswO0w7Ozs7O047Ozs7OworMTVCNztDQU5BRElBTiBTWUxMQUJJQ1MgQkxBQ0tGT09UIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUI4O0NBTkFESUFOIFNZTExBQklDUyBCTEFDS0ZPT1QgTkU7TG87MDtMOzs7OztOOzs7OzsKKzE1Qjk7Q0FOQURJQU4gU1lMTEFCSUNTIEJMQUNLRk9PVCBOSTtMbzswO0w7Ozs7O047Ozs7OworMTVCQTtDQU5BRElBTiBTWUxMQUJJQ1MgQkxBQ0tGT09UIE5PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUJCO0NBTkFESUFOIFNZTExBQklDUyBCTEFDS0ZPT1QgTkE7TG87MDtMOzs7OztOOzs7OzsKKzE1QkM7Q0FOQURJQU4gU1lMTEFCSUNTIEJMQUNLRk9PVCBLRTtMbzswO0w7Ozs7O047Ozs7OworMTVCRDtDQU5BRElBTiBTWUxMQUJJQ1MgQkxBQ0tGT09UIEtJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUJFO0NBTkFESUFOIFNZTExBQklDUyBCTEFDS0ZPT1QgS087TG87MDtMOzs7OztOOzs7OzsKKzE1QkY7Q0FOQURJQU4gU1lMTEFCSUNTIEJMQUNLRk9PVCBLQTtMbzswO0w7Ozs7O047Ozs7OworMTVDMDtDQU5BRElBTiBTWUxMQUJJQ1MgU0FZSVNJIEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUMxO0NBTkFESUFOIFNZTExBQklDUyBTQVlJU0kgSEk7TG87MDtMOzs7OztOOzs7OzsKKzE1QzI7Q0FOQURJQU4gU1lMTEFCSUNTIFNBWUlTSSBITztMbzswO0w7Ozs7O047Ozs7OworMTVDMztDQU5BRElBTiBTWUxMQUJJQ1MgU0FZSVNJIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUM0O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEdIVTtMbzswO0w7Ozs7O047Ozs7OworMTVDNTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBHSE87TG87MDtMOzs7OztOOzs7OzsKKzE1QzY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgR0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUM3O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEdIRUU7TG87MDtMOzs7OztOOzs7OzsKKzE1Qzg7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgR0hJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUM5O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEdIQTtMbzswO0w7Ozs7O047Ozs7OworMTVDQTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBSVTtMbzswO0w7Ozs7O047Ozs7OworMTVDQjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBSTztMbzswO0w7Ozs7O047Ozs7OworMTVDQztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBSRTtMbzswO0w7Ozs7O047Ozs7OworMTVDRDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBSRUU7TG87MDtMOzs7OztOOzs7OzsKKzE1Q0U7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgUkk7TG87MDtMOzs7OztOOzs7OzsKKzE1Q0Y7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzE1RDA7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgV1U7TG87MDtMOzs7OztOOzs7OzsKKzE1RDE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgV087TG87MDtMOzs7OztOOzs7OzsKKzE1RDI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgV0U7TG87MDtMOzs7OztOOzs7OzsKKzE1RDM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgV0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUQ0O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUQ1O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUQ2O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEhXVTtMbzswO0w7Ozs7O047Ozs7OworMTVENztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBIV087TG87MDtMOzs7OztOOzs7OzsKKzE1RDg7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUQ5O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEhXRUU7TG87MDtMOzs7OztOOzs7OzsKKzE1REE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNURCO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEhXQTtMbzswO0w7Ozs7O047Ozs7OworMTVEQztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUSFU7TG87MDtMOzs7OztOOzs7OzsKKzE1REQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNURFO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRIRTtMbzswO0w7Ozs7O047Ozs7OworMTVERjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUSEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUUwO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRISTtMbzswO0w7Ozs7O047Ozs7OworMTVFMTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzE1RTI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFRVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUUzO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRUTztMbzswO0w7Ozs7O047Ozs7OworMTVFNDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUVEU7TG87MDtMOzs7OztOOzs7OzsKKzE1RTU7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFRFRTtMbzswO0w7Ozs7O047Ozs7OworMTVFNjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUVEk7TG87MDtMOzs7OztOOzs7OzsKKzE1RTc7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUU4O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUU5O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUVBO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUVCO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFBFRTtMbzswO0w7Ozs7O047Ozs7OworMTVFQztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBQSTtMbzswO0w7Ozs7O047Ozs7OworMTVFRDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMTVFRTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUVGO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEdVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUYwO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUYxO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUYyO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEdFRTtMbzswO0w7Ozs7O047Ozs7OworMTVGMztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBHSTtMbzswO0w7Ozs7O047Ozs7OworMTVGNDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMTVGNTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBLSFU7TG87MDtMOzs7OztOOzs7OzsKKzE1RjY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgS0hPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUY3O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEtIRTtMbzswO0w7Ozs7O047Ozs7OworMTVGODtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBLSEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUY5O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEtISTtMbzswO0w7Ozs7O047Ozs7OworMTVGQTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzE1RkI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgS0tVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUZDO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEtLTztMbzswO0w7Ozs7O047Ozs7OworMTVGRDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBLS0U7TG87MDtMOzs7OztOOzs7OzsKKzE1RkU7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgS0tFRTtMbzswO0w7Ozs7O047Ozs7OworMTVGRjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBLS0k7TG87MDtMOzs7OztOOzs7OzsKKzE2MDA7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgS0tBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjAxO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEtLO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjAyO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIE5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjAzO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIE5PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjA0O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIE5FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjA1O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIE5FRTtMbzswO0w7Ozs7O047Ozs7OworMTYwNjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBOSTtMbzswO0w7Ozs7O047Ozs7OworMTYwNztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMTYwODtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBNVTtMbzswO0w7Ozs7O047Ozs7OworMTYwOTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBNTztMbzswO0w7Ozs7O047Ozs7OworMTYwQTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBNRTtMbzswO0w7Ozs7O047Ozs7OworMTYwQjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBNRUU7TG87MDtMOzs7OztOOzs7OzsKKzE2MEM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTUk7TG87MDtMOzs7OztOOzs7OzsKKzE2MEQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzE2MEU7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgWVU7TG87MDtMOzs7OztOOzs7OzsKKzE2MEY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgWU87TG87MDtMOzs7OztOOzs7OzsKKzE2MTA7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgWUU7TG87MDtMOzs7OztOOzs7OzsKKzE2MTE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgWUVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjEyO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFlJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjEzO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjE0O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEpVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjE1O0NBTkFESUFOIFNZTExBQklDUyBTQVlJU0kgSlU7TG87MDtMOzs7OztOOzs7OzsKKzE2MTY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSk87TG87MDtMOzs7OztOOzs7OzsKKzE2MTc7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSkU7TG87MDtMOzs7OztOOzs7OzsKKzE2MTg7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSkVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjE5O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjFBO0NBTkFESUFOIFNZTExBQklDUyBTQVlJU0kgSkk7TG87MDtMOzs7OztOOzs7OzsKKzE2MUI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzE2MUM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSkpVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjFEO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEpKTztMbzswO0w7Ozs7O047Ozs7OworMTYxRTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBKSkU7TG87MDtMOzs7OztOOzs7OzsKKzE2MUY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSkpFRTtMbzswO0w7Ozs7O047Ozs7OworMTYyMDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBKSkk7TG87MDtMOzs7OztOOzs7OzsKKzE2MjE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSkpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjIyO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIExVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjIzO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIExPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjI0O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIExFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjI1O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIExFRTtMbzswO0w7Ozs7O047Ozs7OworMTYyNjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBMSTtMbzswO0w7Ozs7O047Ozs7OworMTYyNztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMTYyODtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBETFU7TG87MDtMOzs7OztOOzs7OzsKKzE2Mjk7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgRExPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjJBO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIERMRTtMbzswO0w7Ozs7O047Ozs7OworMTYyQjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBETEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjJDO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIERMSTtMbzswO0w7Ozs7O047Ozs7OworMTYyRDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBETEE7TG87MDtMOzs7OztOOzs7OzsKKzE2MkU7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTEhVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjJGO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIExITztMbzswO0w7Ozs7O047Ozs7OworMTYzMDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBMSEU7TG87MDtMOzs7OztOOzs7OzsKKzE2MzE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTEhFRTtMbzswO0w7Ozs7O047Ozs7OworMTYzMjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBMSEk7TG87MDtMOzs7OztOOzs7OzsKKzE2MzM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjM0O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRMSFU7TG87MDtMOzs7OztOOzs7OzsKKzE2MzU7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVExITztMbzswO0w7Ozs7O047Ozs7OworMTYzNjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUTEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjM3O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRMSEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjM4O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRMSEk7TG87MDtMOzs7OztOOzs7OzsKKzE2Mzk7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVExIQTtMbzswO0w7Ozs7O047Ozs7OworMTYzQTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUTFU7TG87MDtMOzs7OztOOzs7OzsKKzE2M0I7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVExPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjNDO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRMRTtMbzswO0w7Ozs7O047Ozs7OworMTYzRDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUTEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjNFO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRMSTtMbzswO0w7Ozs7O047Ozs7OworMTYzRjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUTEE7TG87MDtMOzs7OztOOzs7OzsKKzE2NDA7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgWlU7TG87MDtMOzs7OztOOzs7OzsKKzE2NDE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgWk87TG87MDtMOzs7OztOOzs7OzsKKzE2NDI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgWkU7TG87MDtMOzs7OztOOzs7OzsKKzE2NDM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgWkVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjQ0O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjQ1O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjQ2O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFo7TG87MDtMOzs7OztOOzs7OzsKKzE2NDc7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSU5JVElBTCBaO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjQ4O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIERaVTtMbzswO0w7Ozs7O047Ozs7OworMTY0OTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBEWk87TG87MDtMOzs7OztOOzs7OzsKKzE2NEE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgRFpFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjRCO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIERaRUU7TG87MDtMOzs7OztOOzs7OzsKKzE2NEM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgRFpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjREO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIERaQTtMbzswO0w7Ozs7O047Ozs7OworMTY0RTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBTVTtMbzswO0w7Ozs7O047Ozs7OworMTY0RjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBTTztMbzswO0w7Ozs7O047Ozs7OworMTY1MDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBTRTtMbzswO0w7Ozs7O047Ozs7OworMTY1MTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBTRUU7TG87MDtMOzs7OztOOzs7OzsKKzE2NTI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgU0k7TG87MDtMOzs7OztOOzs7OzsKKzE2NTM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzE2NTQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgU0hVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjU1O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFNITztMbzswO0w7Ozs7O047Ozs7OworMTY1NjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBTSEU7TG87MDtMOzs7OztOOzs7OzsKKzE2NTc7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgU0hFRTtMbzswO0w7Ozs7O047Ozs7OworMTY1ODtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBTSEk7TG87MDtMOzs7OztOOzs7OzsKKzE2NTk7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjVBO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjVCO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRTVTtMbzswO0w7Ozs7O047Ozs7OworMTY1QztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUU087TG87MDtMOzs7OztOOzs7OzsKKzE2NUQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFNFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjVFO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRTRUU7TG87MDtMOzs7OztOOzs7OzsKKzE2NUY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFNJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjYwO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRTQTtMbzswO0w7Ozs7O047Ozs7OworMTY2MTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBDSFU7TG87MDtMOzs7OztOOzs7OzsKKzE2NjI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgQ0hPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjYzO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIENIRTtMbzswO0w7Ozs7O047Ozs7OworMTY2NDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBDSEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjY1O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIENISTtMbzswO0w7Ozs7O047Ozs7OworMTY2NjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzE2Njc7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFRTVTtMbzswO0w7Ozs7O047Ozs7OworMTY2ODtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUVFNPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjY5O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRUU0U7TG87MDtMOzs7OztOOzs7OzsKKzE2NkE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFRTRUU7TG87MDtMOzs7OztOOzs7OzsKKzE2NkI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFRTSTtMbzswO0w7Ozs7O047Ozs7OworMTY2QztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUVFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjZEO0NBTkFESUFOIFNZTExBQklDUyBDSEkgU0lHTjtQbzswO0w7Ozs7O047Ozs7OworMTY2RTtDQU5BRElBTiBTWUxMQUJJQ1MgRlVMTCBTVE9QO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxNjZGO0NBTkFESUFOIFNZTExBQklDUyBRQUk7TG87MDtMOzs7OztOOzs7OzsKKzE2NzA7Q0FOQURJQU4gU1lMTEFCSUNTIE5HQUk7TG87MDtMOzs7OztOOzs7OzsKKzE2NzE7Q0FOQURJQU4gU1lMTEFCSUNTIE5OR0k7TG87MDtMOzs7OztOOzs7OzsKKzE2NzI7Q0FOQURJQU4gU1lMTEFCSUNTIE5OR0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjczO0NBTkFESUFOIFNZTExBQklDUyBOTkdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjc0O0NBTkFESUFOIFNZTExBQklDUyBOTkdPTztMbzswO0w7Ozs7O047Ozs7OworMTY3NTtDQU5BRElBTiBTWUxMQUJJQ1MgTk5HQTtMbzswO0w7Ozs7O047Ozs7OworMTY3NjtDQU5BRElBTiBTWUxMQUJJQ1MgTk5HQUE7TG87MDtMOzs7OztOOzs7OzsKKzE2ODA7T0dIQU0gU1BBQ0UgTUFSSztaczswO1dTOzs7OztOOzs7OzsKKzE2ODE7T0dIQU0gTEVUVEVSIEJFSVRIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjgyO09HSEFNIExFVFRFUiBMVUlTO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjgzO09HSEFNIExFVFRFUiBGRUFSTjtMbzswO0w7Ozs7O047Ozs7OworMTY4NDtPR0hBTSBMRVRURVIgU0FJTDtMbzswO0w7Ozs7O047Ozs7OworMTY4NTtPR0hBTSBMRVRURVIgTklPTjtMbzswO0w7Ozs7O047Ozs7OworMTY4NjtPR0hBTSBMRVRURVIgVUFUSDtMbzswO0w7Ozs7O047Ozs7OworMTY4NztPR0hBTSBMRVRURVIgREFJUjtMbzswO0w7Ozs7O047Ozs7OworMTY4ODtPR0hBTSBMRVRURVIgVElOTkU7TG87MDtMOzs7OztOOzs7OzsKKzE2ODk7T0dIQU0gTEVUVEVSIENPTEw7TG87MDtMOzs7OztOOzs7OzsKKzE2OEE7T0dIQU0gTEVUVEVSIENFSVJUO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjhCO09HSEFNIExFVFRFUiBNVUlOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjhDO09HSEFNIExFVFRFUiBHT1JUO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjhEO09HSEFNIExFVFRFUiBOR0VBREFMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjhFO09HSEFNIExFVFRFUiBTVFJBSUY7TG87MDtMOzs7OztOOzs7OzsKKzE2OEY7T0dIQU0gTEVUVEVSIFJVSVM7TG87MDtMOzs7OztOOzs7OzsKKzE2OTA7T0dIQU0gTEVUVEVSIEFJTE07TG87MDtMOzs7OztOOzs7OzsKKzE2OTE7T0dIQU0gTEVUVEVSIE9OTjtMbzswO0w7Ozs7O047Ozs7OworMTY5MjtPR0hBTSBMRVRURVIgVVI7TG87MDtMOzs7OztOOzs7OzsKKzE2OTM7T0dIQU0gTEVUVEVSIEVBREhBREg7TG87MDtMOzs7OztOOzs7OzsKKzE2OTQ7T0dIQU0gTEVUVEVSIElPREhBREg7TG87MDtMOzs7OztOOzs7OzsKKzE2OTU7T0dIQU0gTEVUVEVSIEVBQkhBREg7TG87MDtMOzs7OztOOzs7OzsKKzE2OTY7T0dIQU0gTEVUVEVSIE9SO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjk3O09HSEFNIExFVFRFUiBVSUxMRUFOTjtMbzswO0w7Ozs7O047Ozs7OworMTY5ODtPR0hBTSBMRVRURVIgSUZJTjtMbzswO0w7Ozs7O047Ozs7OworMTY5OTtPR0hBTSBMRVRURVIgRUFNSEFOQ0hPTEw7TG87MDtMOzs7OztOOzs7OzsKKzE2OUE7T0dIQU0gTEVUVEVSIFBFSVRIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjlCO09HSEFNIEZFQVRIRVIgTUFSSztQczswO09OOzs7OztOOzs7OzsKKzE2OUM7T0dIQU0gUkVWRVJTRUQgRkVBVEhFUiBNQVJLO1BlOzA7T047Ozs7O047Ozs7OworMTZBMDtSVU5JQyBMRVRURVIgRkVIVSBGRU9IIEZFIEY7TG87MDtMOzs7OztOOzs7OzsKKzE2QTE7UlVOSUMgTEVUVEVSIFY7TG87MDtMOzs7OztOOzs7OzsKKzE2QTI7UlVOSUMgTEVUVEVSIFVSVVogVVIgVTtMbzswO0w7Ozs7O047Ozs7OworMTZBMztSVU5JQyBMRVRURVIgWVI7TG87MDtMOzs7OztOOzs7OzsKKzE2QTQ7UlVOSUMgTEVUVEVSIFk7TG87MDtMOzs7OztOOzs7OzsKKzE2QTU7UlVOSUMgTEVUVEVSIFc7TG87MDtMOzs7OztOOzs7OzsKKzE2QTY7UlVOSUMgTEVUVEVSIFRIVVJJU0FaIFRIVVJTIFRIT1JOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkE3O1JVTklDIExFVFRFUiBFVEg7TG87MDtMOzs7OztOOzs7OzsKKzE2QTg7UlVOSUMgTEVUVEVSIEFOU1VaIEE7TG87MDtMOzs7OztOOzs7OzsKKzE2QTk7UlVOSUMgTEVUVEVSIE9TIE87TG87MDtMOzs7OztOOzs7OzsKKzE2QUE7UlVOSUMgTEVUVEVSIEFDIEE7TG87MDtMOzs7OztOOzs7OzsKKzE2QUI7UlVOSUMgTEVUVEVSIEFFU0M7TG87MDtMOzs7OztOOzs7OzsKKzE2QUM7UlVOSUMgTEVUVEVSIExPTkctQlJBTkNILU9TUyBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkFEO1JVTklDIExFVFRFUiBTSE9SVC1UV0lHLU9TUyBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkFFO1JVTklDIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkFGO1JVTklDIExFVFRFUiBPRTtMbzswO0w7Ozs7O047Ozs7OworMTZCMDtSVU5JQyBMRVRURVIgT047TG87MDtMOzs7OztOOzs7OzsKKzE2QjE7UlVOSUMgTEVUVEVSIFJBSURPIFJBRCBSRUlEIFI7TG87MDtMOzs7OztOOzs7OzsKKzE2QjI7UlVOSUMgTEVUVEVSIEtBVU5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkIzO1JVTklDIExFVFRFUiBDRU47TG87MDtMOzs7OztOOzs7OzsKKzE2QjQ7UlVOSUMgTEVUVEVSIEtBVU4gSztMbzswO0w7Ozs7O047Ozs7OworMTZCNTtSVU5JQyBMRVRURVIgRztMbzswO0w7Ozs7O047Ozs7OworMTZCNjtSVU5JQyBMRVRURVIgRU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkI3O1JVTklDIExFVFRFUiBHRUJPIEdZRlUgRztMbzswO0w7Ozs7O047Ozs7OworMTZCODtSVU5JQyBMRVRURVIgR0FSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkI5O1JVTklDIExFVFRFUiBXVU5KTyBXWU5OIFc7TG87MDtMOzs7OztOOzs7OzsKKzE2QkE7UlVOSUMgTEVUVEVSIEhBR0xBWiBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkJCO1JVTklDIExFVFRFUiBIQUVHTCBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkJDO1JVTklDIExFVFRFUiBMT05HLUJSQU5DSC1IQUdBTEwgSDtMbzswO0w7Ozs7O047Ozs7OworMTZCRDtSVU5JQyBMRVRURVIgU0hPUlQtVFdJRy1IQUdBTEwgSDtMbzswO0w7Ozs7O047Ozs7OworMTZCRTtSVU5JQyBMRVRURVIgTkFVRElaIE5ZRCBOQVVEIE47TG87MDtMOzs7OztOOzs7OzsKKzE2QkY7UlVOSUMgTEVUVEVSIFNIT1JULVRXSUctTkFVRCBOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkMwO1JVTklDIExFVFRFUiBET1RURUQtTjtMbzswO0w7Ozs7O047Ozs7OworMTZDMTtSVU5JQyBMRVRURVIgSVNBWiBJUyBJU1MgSTtMbzswO0w7Ozs7O047Ozs7OworMTZDMjtSVU5JQyBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMTZDMztSVU5JQyBMRVRURVIgSkVSQU4gSjtMbzswO0w7Ozs7O047Ozs7OworMTZDNDtSVU5JQyBMRVRURVIgR0VSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkM1O1JVTklDIExFVFRFUiBMT05HLUJSQU5DSC1BUiBBRTtMbzswO0w7Ozs7O047Ozs7OworMTZDNjtSVU5JQyBMRVRURVIgU0hPUlQtVFdJRy1BUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkM3O1JVTklDIExFVFRFUiBJV0FaIEVPSDtMbzswO0w7Ozs7O047Ozs7OworMTZDODtSVU5JQyBMRVRURVIgUEVSVEhPIFBFT1JUSCBQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkM5O1JVTklDIExFVFRFUiBBTEdJWiBFT0xIWDtMbzswO0w7Ozs7O047Ozs7OworMTZDQTtSVU5JQyBMRVRURVIgU09XSUxPIFM7TG87MDtMOzs7OztOOzs7OzsKKzE2Q0I7UlVOSUMgTEVUVEVSIFNJR0VMIExPTkctQlJBTkNILVNPTCBTO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkNDO1JVTklDIExFVFRFUiBTSE9SVC1UV0lHLVNPTCBTO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkNEO1JVTklDIExFVFRFUiBDO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkNFO1JVTklDIExFVFRFUiBaO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkNGO1JVTklDIExFVFRFUiBUSVdBWiBUSVIgVFlSIFQ7TG87MDtMOzs7OztOOzs7OzsKKzE2RDA7UlVOSUMgTEVUVEVSIFNIT1JULVRXSUctVFlSIFQ7TG87MDtMOzs7OztOOzs7OzsKKzE2RDE7UlVOSUMgTEVUVEVSIEQ7TG87MDtMOzs7OztOOzs7OzsKKzE2RDI7UlVOSUMgTEVUVEVSIEJFUktBTkFOIEJFT1JDIEJKQVJLQU4gQjtMbzswO0w7Ozs7O047Ozs7OworMTZEMztSVU5JQyBMRVRURVIgU0hPUlQtVFdJRy1CSkFSS0FOIEI7TG87MDtMOzs7OztOOzs7OzsKKzE2RDQ7UlVOSUMgTEVUVEVSIERPVFRFRC1QO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkQ1O1JVTklDIExFVFRFUiBPUEVOLVA7TG87MDtMOzs7OztOOzs7OzsKKzE2RDY7UlVOSUMgTEVUVEVSIEVIV0FaIEVIIEU7TG87MDtMOzs7OztOOzs7OzsKKzE2RDc7UlVOSUMgTEVUVEVSIE1BTk5BWiBNQU4gTTtMbzswO0w7Ozs7O047Ozs7OworMTZEODtSVU5JQyBMRVRURVIgTE9ORy1CUkFOQ0gtTUFEUiBNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkQ5O1JVTklDIExFVFRFUiBTSE9SVC1UV0lHLU1BRFIgTTtMbzswO0w7Ozs7O047Ozs7OworMTZEQTtSVU5JQyBMRVRURVIgTEFVS0FaIExBR1UgTE9HUiBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkRCO1JVTklDIExFVFRFUiBET1RURUQtTDtMbzswO0w7Ozs7O047Ozs7OworMTZEQztSVU5JQyBMRVRURVIgSU5HV0FaO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkREO1JVTklDIExFVFRFUiBJTkc7TG87MDtMOzs7OztOOzs7OzsKKzE2REU7UlVOSUMgTEVUVEVSIERBR0FaIERBRUcgRDtMbzswO0w7Ozs7O047Ozs7OworMTZERjtSVU5JQyBMRVRURVIgT1RIQUxBTiBFVEhFTCBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkUwO1JVTklDIExFVFRFUiBFQVI7TG87MDtMOzs7OztOOzs7OzsKKzE2RTE7UlVOSUMgTEVUVEVSIElPUjtMbzswO0w7Ozs7O047Ozs7OworMTZFMjtSVU5JQyBMRVRURVIgQ1dFT1JUSDtMbzswO0w7Ozs7O047Ozs7OworMTZFMztSVU5JQyBMRVRURVIgQ0FMQztMbzswO0w7Ozs7O047Ozs7OworMTZFNDtSVU5JQyBMRVRURVIgQ0VBTEM7TG87MDtMOzs7OztOOzs7OzsKKzE2RTU7UlVOSUMgTEVUVEVSIFNUQU47TG87MDtMOzs7OztOOzs7OzsKKzE2RTY7UlVOSUMgTEVUVEVSIExPTkctQlJBTkNILVlSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkU3O1JVTklDIExFVFRFUiBTSE9SVC1UV0lHLVlSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkU4O1JVTklDIExFVFRFUiBJQ0VMQU5ESUMtWVI7TG87MDtMOzs7OztOOzs7OzsKKzE2RTk7UlVOSUMgTEVUVEVSIFE7TG87MDtMOzs7OztOOzs7OzsKKzE2RUE7UlVOSUMgTEVUVEVSIFg7TG87MDtMOzs7OztOOzs7OzsKKzE2RUI7UlVOSUMgU0lOR0xFIFBVTkNUVUFUSU9OO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxNkVDO1JVTklDIE1VTFRJUExFIFBVTkNUVUFUSU9OO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxNkVEO1JVTklDIENST1NTIFBVTkNUVUFUSU9OO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxNkVFO1JVTklDIEFSTEFVRyBTWU1CT0w7Tmw7MDtMOzs7OzE3O047O2dvbGRlbiBudW1iZXIgMTc7OzsKKzE2RUY7UlVOSUMgVFZJTUFEVVIgU1lNQk9MO05sOzA7TDs7OzsxODtOOztnb2xkZW4gbnVtYmVyIDE4Ozs7CisxNkYwO1JVTklDIEJFTEdUSE9SIFNZTUJPTDtObDswO0w7Ozs7MTk7Tjs7Z29sZGVuIG51bWJlciAxOTs7OworMTcwMDtUQUdBTE9HIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzAxO1RBR0FMT0cgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzE3MDI7VEFHQUxPRyBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMTcwMztUQUdBTE9HIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMTcwNDtUQUdBTE9HIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMTcwNTtUQUdBTE9HIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzE3MDY7VEFHQUxPRyBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzE3MDc7VEFHQUxPRyBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzE3MDg7VEFHQUxPRyBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzE3MDk7VEFHQUxPRyBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzE3MEE7VEFHQUxPRyBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzE3MEI7VEFHQUxPRyBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzE3MEM7VEFHQUxPRyBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzE3MEU7VEFHQUxPRyBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzE3MEY7VEFHQUxPRyBMRVRURVIgV0E7TG87MDtMOzs7OztOOzs7OzsKKzE3MTA7VEFHQUxPRyBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzE3MTE7VEFHQUxPRyBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzE3MTI7VEFHQUxPRyBWT1dFTCBTSUdOIEk7TW47MDtOU007Ozs7O047Ozs7OworMTcxMztUQUdBTE9HIFZPV0VMIFNJR04gVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxNzE0O1RBR0FMT0cgU0lHTiBWSVJBTUE7TW47OTtOU007Ozs7O047Ozs7OworMTcyMDtIQU5VTk9PIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzIxO0hBTlVOT08gTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzE3MjI7SEFOVU5PTyBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMTcyMztIQU5VTk9PIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMTcyNDtIQU5VTk9PIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMTcyNTtIQU5VTk9PIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzE3MjY7SEFOVU5PTyBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzE3Mjc7SEFOVU5PTyBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzE3Mjg7SEFOVU5PTyBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzE3Mjk7SEFOVU5PTyBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzE3MkE7SEFOVU5PTyBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzE3MkI7SEFOVU5PTyBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzE3MkM7SEFOVU5PTyBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzE3MkQ7SEFOVU5PTyBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzE3MkU7SEFOVU5PTyBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzE3MkY7SEFOVU5PTyBMRVRURVIgV0E7TG87MDtMOzs7OztOOzs7OzsKKzE3MzA7SEFOVU5PTyBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzE3MzE7SEFOVU5PTyBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzE3MzI7SEFOVU5PTyBWT1dFTCBTSUdOIEk7TW47MDtOU007Ozs7O047Ozs7OworMTczMztIQU5VTk9PIFZPV0VMIFNJR04gVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxNzM0O0hBTlVOT08gU0lHTiBQQU1VRFBPRDtNbjs5O05TTTs7Ozs7Tjs7Ozs7CisxNzM1O1BISUxJUFBJTkUgU0lOR0xFIFBVTkNUVUFUSU9OO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxNzM2O1BISUxJUFBJTkUgRE9VQkxFIFBVTkNUVUFUSU9OO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxNzQwO0JVSElEIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzQxO0JVSElEIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzQyO0JVSElEIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzQzO0JVSElEIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMTc0NDtCVUhJRCBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzE3NDU7QlVISUQgTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMTc0NjtCVUhJRCBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzE3NDc7QlVISUQgTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzQ4O0JVSElEIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMTc0OTtCVUhJRCBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzE3NEE7QlVISUQgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzRCO0JVSElEIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMTc0QztCVUhJRCBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzE3NEQ7QlVISUQgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzRFO0JVSElEIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMTc0RjtCVUhJRCBMRVRURVIgV0E7TG87MDtMOzs7OztOOzs7OzsKKzE3NTA7QlVISUQgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzUxO0JVSElEIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMTc1MjtCVUhJRCBWT1dFTCBTSUdOIEk7TW47MDtOU007Ozs7O047Ozs7OworMTc1MztCVUhJRCBWT1dFTCBTSUdOIFU7TW47MDtOU007Ozs7O047Ozs7OworMTc2MDtUQUdCQU5XQSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMTc2MTtUQUdCQU5XQSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMTc2MjtUQUdCQU5XQSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMTc2MztUQUdCQU5XQSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzE3NjQ7VEFHQkFOV0EgTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzY1O1RBR0JBTldBIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzE3NjY7VEFHQkFOV0EgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzY3O1RBR0JBTldBIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMTc2ODtUQUdCQU5XQSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzE3Njk7VEFHQkFOV0EgTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzZBO1RBR0JBTldBIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMTc2QjtUQUdCQU5XQSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzE3NkM7VEFHQkFOV0EgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzZFO1RBR0JBTldBIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMTc2RjtUQUdCQU5XQSBMRVRURVIgV0E7TG87MDtMOzs7OztOOzs7OzsKKzE3NzA7VEFHQkFOV0EgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzcyO1RBR0JBTldBIFZPV0VMIFNJR04gSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxNzczO1RBR0JBTldBIFZPV0VMIFNJR04gVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxNzgwO0tITUVSIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMTc4MTtLSE1FUiBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzgyO0tITUVSIExFVFRFUiBLTztMbzswO0w7Ozs7O047Ozs7OworMTc4MztLSE1FUiBMRVRURVIgS0hPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzg0O0tITUVSIExFVFRFUiBOR087TG87MDtMOzs7OztOOzs7OzsKKzE3ODU7S0hNRVIgTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzg2O0tITUVSIExFVFRFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzE3ODc7S0hNRVIgTEVUVEVSIENPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzg4O0tITUVSIExFVFRFUiBDSE87TG87MDtMOzs7OztOOzs7OzsKKzE3ODk7S0hNRVIgTEVUVEVSIE5ZTztMbzswO0w7Ozs7O047Ozs7OworMTc4QTtLSE1FUiBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzE3OEI7S0hNRVIgTEVUVEVSIFRUSEE7TG87MDtMOzs7OztOOzs7OzsKKzE3OEM7S0hNRVIgTEVUVEVSIERPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzhEO0tITUVSIExFVFRFUiBUVEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzhFO0tITUVSIExFVFRFUiBOTk87TG87MDtMOzs7OztOOzs7OzsKKzE3OEY7S0hNRVIgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzkwO0tITUVSIExFVFRFUiBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzE3OTE7S0hNRVIgTEVUVEVSIFRPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzkyO0tITUVSIExFVFRFUiBUSE87TG87MDtMOzs7OztOOzs7OzsKKzE3OTM7S0hNRVIgTEVUVEVSIE5PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzk0O0tITUVSIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMTc5NTtLSE1FUiBMRVRURVIgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzk2O0tITUVSIExFVFRFUiBQTztMbzswO0w7Ozs7O047Ozs7OworMTc5NztLSE1FUiBMRVRURVIgUEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzk4O0tITUVSIExFVFRFUiBNTztMbzswO0w7Ozs7O047Ozs7OworMTc5OTtLSE1FUiBMRVRURVIgWU87TG87MDtMOzs7OztOOzs7OzsKKzE3OUE7S0hNRVIgTEVUVEVSIFJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzlCO0tITUVSIExFVFRFUiBMTztMbzswO0w7Ozs7O047Ozs7OworMTc5QztLSE1FUiBMRVRURVIgVk87TG87MDtMOzs7OztOOzs7OzsKKzE3OUQ7S0hNRVIgTEVUVEVSIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMTc5RTtLSE1FUiBMRVRURVIgU1NPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzlGO0tITUVSIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMTdBMDtLSE1FUiBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzE3QTE7S0hNRVIgTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0EyO0tITUVSIExFVFRFUiBRQTtMbzswO0w7Ozs7O047Ozs7OworMTdBMztLSE1FUiBJTkRFUEVOREVOVCBWT1dFTCBRQVE7TG87MDtMOzs7OztOOzs7OzsKKzE3QTQ7S0hNRVIgSU5ERVBFTkRFTlQgVk9XRUwgUUFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0E1O0tITUVSIElOREVQRU5ERU5UIFZPV0VMIFFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0E2O0tITUVSIElOREVQRU5ERU5UIFZPV0VMIFFJSTtMbzswO0w7Ozs7O047Ozs7OworMTdBNztLSE1FUiBJTkRFUEVOREVOVCBWT1dFTCBRVTtMbzswO0w7Ozs7O047Ozs7OworMTdBODtLSE1FUiBJTkRFUEVOREVOVCBWT1dFTCBRVUs7TG87MDtMOzs7OztOOzs7OzsKKzE3QTk7S0hNRVIgSU5ERVBFTkRFTlQgVk9XRUwgUVVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0FBO0tITUVSIElOREVQRU5ERU5UIFZPV0VMIFFVVVY7TG87MDtMOzs7OztOOzs7OzsKKzE3QUI7S0hNRVIgSU5ERVBFTkRFTlQgVk9XRUwgUlk7TG87MDtMOzs7OztOOzs7OzsKKzE3QUM7S0hNRVIgSU5ERVBFTkRFTlQgVk9XRUwgUllZO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0FEO0tITUVSIElOREVQRU5ERU5UIFZPV0VMIExZO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0FFO0tITUVSIElOREVQRU5ERU5UIFZPV0VMIExZWTtMbzswO0w7Ozs7O047Ozs7OworMTdBRjtLSE1FUiBJTkRFUEVOREVOVCBWT1dFTCBRRTtMbzswO0w7Ozs7O047Ozs7OworMTdCMDtLSE1FUiBJTkRFUEVOREVOVCBWT1dFTCBRQUk7TG87MDtMOzs7OztOOzs7OzsKKzE3QjE7S0hNRVIgSU5ERVBFTkRFTlQgVk9XRUwgUU9PIFRZUEUgT05FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0IyO0tITUVSIElOREVQRU5ERU5UIFZPV0VMIFFPTyBUWVBFIFRXTztMbzswO0w7Ozs7O047Ozs7OworMTdCMztLSE1FUiBJTkRFUEVOREVOVCBWT1dFTCBRQVU7TG87MDtMOzs7OztOOzs7OzsKKzE3QjQ7S0hNRVIgVk9XRUwgSU5IRVJFTlQgQVE7TWM7MDtMOzs7OztOOzs7OzsKKzE3QjU7S0hNRVIgVk9XRUwgSU5IRVJFTlQgQUE7TWM7MDtMOzs7OztOOzs7OzsKKzE3QjY7S0hNRVIgVk9XRUwgU0lHTiBBQTtNYzswO0w7Ozs7O047Ozs7OworMTdCNztLSE1FUiBWT1dFTCBTSUdOIEk7TW47MDtOU007Ozs7O047Ozs7OworMTdCODtLSE1FUiBWT1dFTCBTSUdOIElJO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3Qjk7S0hNRVIgVk9XRUwgU0lHTiBZO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3QkE7S0hNRVIgVk9XRUwgU0lHTiBZWTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxN0JCO0tITUVSIFZPV0VMIFNJR04gVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxN0JDO0tITUVSIFZPV0VMIFNJR04gVVU7TW47MDtOU007Ozs7O047Ozs7OworMTdCRDtLSE1FUiBWT1dFTCBTSUdOIFVBO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3QkU7S0hNRVIgVk9XRUwgU0lHTiBPRTtNYzswO0w7Ozs7O047Ozs7OworMTdCRjtLSE1FUiBWT1dFTCBTSUdOIFlBO01jOzA7TDs7Ozs7Tjs7Ozs7CisxN0MwO0tITUVSIFZPV0VMIFNJR04gSUU7TWM7MDtMOzs7OztOOzs7OzsKKzE3QzE7S0hNRVIgVk9XRUwgU0lHTiBFO01jOzA7TDs7Ozs7Tjs7Ozs7CisxN0MyO0tITUVSIFZPV0VMIFNJR04gQUU7TWM7MDtMOzs7OztOOzs7OzsKKzE3QzM7S0hNRVIgVk9XRUwgU0lHTiBBSTtNYzswO0w7Ozs7O047Ozs7OworMTdDNDtLSE1FUiBWT1dFTCBTSUdOIE9PO01jOzA7TDs7Ozs7Tjs7Ozs7CisxN0M1O0tITUVSIFZPV0VMIFNJR04gQVU7TWM7MDtMOzs7OztOOzs7OzsKKzE3QzY7S0hNRVIgU0lHTiBOSUtBSElUO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3Qzc7S0hNRVIgU0lHTiBSRUFITVVLO01jOzA7TDs7Ozs7Tjs7Ozs7CisxN0M4O0tITUVSIFNJR04gWVVVS0FMRUFQSU5UVTtNYzswO0w7Ozs7O047Ozs7OworMTdDOTtLSE1FUiBTSUdOIE1VVVNJS0FUT0FOO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3Q0E7S0hNRVIgU0lHTiBUUklJU0FQO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3Q0I7S0hNRVIgU0lHTiBCQU5UT0M7TW47MDtOU007Ozs7O047Ozs7OworMTdDQztLSE1FUiBTSUdOIFJPQkFUO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3Q0Q7S0hNRVIgU0lHTiBUT0FOREFLSElBVDtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxN0NFO0tITUVSIFNJR04gS0FLQUJBVDtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxN0NGO0tITUVSIFNJR04gQUhTREE7TW47MDtOU007Ozs7O047Ozs7OworMTdEMDtLSE1FUiBTSUdOIFNBTVlPSyBTQU5OWUE7TW47MDtOU007Ozs7O047Ozs7OworMTdEMTtLSE1FUiBTSUdOIFZJUklBTTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxN0QyO0tITUVSIFNJR04gQ09FTkc7TW47OTtOU007Ozs7O047Ozs7OworMTdEMztLSE1FUiBTSUdOIEJBVEhBTUFTQVQ7TW47MDtOU007Ozs7O047Ozs7OworMTdENDtLSE1FUiBTSUdOIEtIQU47UG87MDtMOzs7OztOOzs7OzsKKzE3RDU7S0hNRVIgU0lHTiBCQVJJWU9PU0FOO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxN0Q2O0tITUVSIFNJR04gQ0FNTlVDIFBJSSBLVVVIO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxN0Q3O0tITUVSIFNJR04gTEVLIFRPTztMbTswO0w7Ozs7O047Ozs7OworMTdEODtLSE1FUiBTSUdOIEJFWVlBTDtQbzswO0w7Ozs7O047Ozs7OworMTdEOTtLSE1FUiBTSUdOIFBITkFFSyBNVUFOO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxN0RBO0tITUVSIFNJR04gS09PTVVVVDtQbzswO0w7Ozs7O047Ozs7OworMTdEQjtLSE1FUiBDVVJSRU5DWSBTWU1CT0wgUklFTDtTYzswO0VUOzs7OztOOzs7OzsKKzE3REM7S0hNRVIgU0lHTiBBVkFLUkFIQVNBTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0UwO0tITUVSIERJR0lUIFpFUk87TmQ7MDtMOzswOzA7MDtOOzs7OzsKKzE3RTE7S0hNRVIgRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CisxN0UyO0tITUVSIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMTdFMztLSE1FUiBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMTdFNDtLSE1FUiBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CisxN0U1O0tITUVSIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzE3RTY7S0hNRVIgRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CisxN0U3O0tITUVSIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CisxN0U4O0tITUVSIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CisxN0U5O0tITUVSIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzE4MDA7TU9OR09MSUFOIEJJUkdBO1BvOzA7T047Ozs7O047Ozs7OworMTgwMTtNT05HT0xJQU4gRUxMSVBTSVM7UG87MDtPTjs7Ozs7Tjs7Ozs7CisxODAyO01PTkdPTElBTiBDT01NQTtQbzswO09OOzs7OztOOzs7OzsKKzE4MDM7TU9OR09MSUFOIEZVTEwgU1RPUDtQbzswO09OOzs7OztOOzs7OzsKKzE4MDQ7TU9OR09MSUFOIENPTE9OO1BvOzA7T047Ozs7O047Ozs7OworMTgwNTtNT05HT0xJQU4gRk9VUiBET1RTO1BvOzA7T047Ozs7O047Ozs7OworMTgwNjtNT05HT0xJQU4gVE9ETyBTT0ZUIEhZUEhFTjtQZDswO09OOzs7OztOOzs7OzsKKzE4MDc7TU9OR09MSUFOIFNJQkUgU1lMTEFCTEUgQk9VTkRBUlkgTUFSS0VSO1BvOzA7T047Ozs7O047Ozs7OworMTgwODtNT05HT0xJQU4gTUFOQ0hVIENPTU1BO1BvOzA7T047Ozs7O047Ozs7OworMTgwOTtNT05HT0xJQU4gTUFOQ0hVIEZVTEwgU1RPUDtQbzswO09OOzs7OztOOzs7OzsKKzE4MEE7TU9OR09MSUFOIE5JUlVHVTtQbzswO09OOzs7OztOOzs7OzsKKzE4MEI7TU9OR09MSUFOIEZSRUUgVkFSSUFUSU9OIFNFTEVDVE9SIE9ORTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxODBDO01PTkdPTElBTiBGUkVFIFZBUklBVElPTiBTRUxFQ1RPUiBUV087TW47MDtOU007Ozs7O047Ozs7OworMTgwRDtNT05HT0xJQU4gRlJFRSBWQVJJQVRJT04gU0VMRUNUT1IgVEhSRUU7TW47MDtOU007Ozs7O047Ozs7OworMTgwRTtNT05HT0xJQU4gVk9XRUwgU0VQQVJBVE9SO0NmOzA7Qk47Ozs7O047Ozs7OworMTgxMDtNT05HT0xJQU4gRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMTgxMTtNT05HT0xJQU4gRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CisxODEyO01PTkdPTElBTiBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzE4MTM7TU9OR09MSUFOIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CisxODE0O01PTkdPTElBTiBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CisxODE1O01PTkdPTElBTiBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CisxODE2O01PTkdPTElBTiBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzE4MTc7TU9OR09MSUFOIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CisxODE4O01PTkdPTElBTiBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMTgxOTtNT05HT0xJQU4gRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMTgyMDtNT05HT0xJQU4gTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzE4MjE7TU9OR09MSUFOIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODIyO01PTkdPTElBTiBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMTgyMztNT05HT0xJQU4gTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzE4MjQ7TU9OR09MSUFOIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODI1O01PTkdPTElBTiBMRVRURVIgT0U7TG87MDtMOzs7OztOOzs7OzsKKzE4MjY7TU9OR09MSUFOIExFVFRFUiBVRTtMbzswO0w7Ozs7O047Ozs7OworMTgyNztNT05HT0xJQU4gTEVUVEVSIEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODI4O01PTkdPTElBTiBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzE4Mjk7TU9OR09MSUFOIExFVFRFUiBBTkc7TG87MDtMOzs7OztOOzs7OzsKKzE4MkE7TU9OR09MSUFOIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMTgyQjtNT05HT0xJQU4gTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODJDO01PTkdPTElBTiBMRVRURVIgUUE7TG87MDtMOzs7OztOOzs7OzsKKzE4MkQ7TU9OR09MSUFOIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMTgyRTtNT05HT0xJQU4gTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODJGO01PTkdPTElBTiBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzE4MzA7TU9OR09MSUFOIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMTgzMTtNT05HT0xJQU4gTEVUVEVSIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMTgzMjtNT05HT0xJQU4gTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODMzO01PTkdPTElBTiBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzE4MzQ7TU9OR09MSUFOIExFVFRFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzE4MzU7TU9OR09MSUFOIExFVFRFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworMTgzNjtNT05HT0xJQU4gTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODM3O01PTkdPTElBTiBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzE4Mzg7TU9OR09MSUFOIExFVFRFUiBXQTtMbzswO0w7Ozs7O047Ozs7OworMTgzOTtNT05HT0xJQU4gTEVUVEVSIEZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODNBO01PTkdPTElBTiBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzE4M0I7TU9OR09MSUFOIExFVFRFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzE4M0M7TU9OR09MSUFOIExFVFRFUiBUU0E7TG87MDtMOzs7OztOOzs7OzsKKzE4M0Q7TU9OR09MSUFOIExFVFRFUiBaQTtMbzswO0w7Ozs7O047Ozs7OworMTgzRTtNT05HT0xJQU4gTEVUVEVSIEhBQTtMbzswO0w7Ozs7O047Ozs7OworMTgzRjtNT05HT0xJQU4gTEVUVEVSIFpSQTtMbzswO0w7Ozs7O047Ozs7OworMTg0MDtNT05HT0xJQU4gTEVUVEVSIExIQTtMbzswO0w7Ozs7O047Ozs7OworMTg0MTtNT05HT0xJQU4gTEVUVEVSIFpISTtMbzswO0w7Ozs7O047Ozs7OworMTg0MjtNT05HT0xJQU4gTEVUVEVSIENISTtMbzswO0w7Ozs7O047Ozs7OworMTg0MztNT05HT0xJQU4gTEVUVEVSIFRPRE8gTE9ORyBWT1dFTCBTSUdOO0xtOzA7TDs7Ozs7Tjs7Ozs7CisxODQ0O01PTkdPTElBTiBMRVRURVIgVE9ETyBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODQ1O01PTkdPTElBTiBMRVRURVIgVE9ETyBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODQ2O01PTkdPTElBTiBMRVRURVIgVE9ETyBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODQ3O01PTkdPTElBTiBMRVRURVIgVE9ETyBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODQ4O01PTkdPTElBTiBMRVRURVIgVE9ETyBPRTtMbzswO0w7Ozs7O047Ozs7OworMTg0OTtNT05HT0xJQU4gTEVUVEVSIFRPRE8gVUU7TG87MDtMOzs7OztOOzs7OzsKKzE4NEE7TU9OR09MSUFOIExFVFRFUiBUT0RPIEFORztMbzswO0w7Ozs7O047Ozs7OworMTg0QjtNT05HT0xJQU4gTEVUVEVSIFRPRE8gQkE7TG87MDtMOzs7OztOOzs7OzsKKzE4NEM7TU9OR09MSUFOIExFVFRFUiBUT0RPIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODREO01PTkdPTElBTiBMRVRURVIgVE9ETyBRQTtMbzswO0w7Ozs7O047Ozs7OworMTg0RTtNT05HT0xJQU4gTEVUVEVSIFRPRE8gR0E7TG87MDtMOzs7OztOOzs7OzsKKzE4NEY7TU9OR09MSUFOIExFVFRFUiBUT0RPIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODUwO01PTkdPTElBTiBMRVRURVIgVE9ETyBUQTtMbzswO0w7Ozs7O047Ozs7OworMTg1MTtNT05HT0xJQU4gTEVUVEVSIFRPRE8gREE7TG87MDtMOzs7OztOOzs7OzsKKzE4NTI7TU9OR09MSUFOIExFVFRFUiBUT0RPIENIQTtMbzswO0w7Ozs7O047Ozs7OworMTg1MztNT05HT0xJQU4gTEVUVEVSIFRPRE8gSkE7TG87MDtMOzs7OztOOzs7OzsKKzE4NTQ7TU9OR09MSUFOIExFVFRFUiBUT0RPIFRTQTtMbzswO0w7Ozs7O047Ozs7OworMTg1NTtNT05HT0xJQU4gTEVUVEVSIFRPRE8gWUE7TG87MDtMOzs7OztOOzs7OzsKKzE4NTY7TU9OR09MSUFOIExFVFRFUiBUT0RPIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODU3O01PTkdPTElBTiBMRVRURVIgVE9ETyBLQTtMbzswO0w7Ozs7O047Ozs7OworMTg1ODtNT05HT0xJQU4gTEVUVEVSIFRPRE8gR0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODU5O01PTkdPTElBTiBMRVRURVIgVE9ETyBIQUE7TG87MDtMOzs7OztOOzs7OzsKKzE4NUE7TU9OR09MSUFOIExFVFRFUiBUT0RPIEpJQTtMbzswO0w7Ozs7O047Ozs7OworMTg1QjtNT05HT0xJQU4gTEVUVEVSIFRPRE8gTklBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODVDO01PTkdPTElBTiBMRVRURVIgVE9ETyBEWkE7TG87MDtMOzs7OztOOzs7OzsKKzE4NUQ7TU9OR09MSUFOIExFVFRFUiBTSUJFIEU7TG87MDtMOzs7OztOOzs7OzsKKzE4NUU7TU9OR09MSUFOIExFVFRFUiBTSUJFIEk7TG87MDtMOzs7OztOOzs7OzsKKzE4NUY7TU9OR09MSUFOIExFVFRFUiBTSUJFIElZO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODYwO01PTkdPTElBTiBMRVRURVIgU0lCRSBVRTtMbzswO0w7Ozs7O047Ozs7OworMTg2MTtNT05HT0xJQU4gTEVUVEVSIFNJQkUgVTtMbzswO0w7Ozs7O047Ozs7OworMTg2MjtNT05HT0xJQU4gTEVUVEVSIFNJQkUgQU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODYzO01PTkdPTElBTiBMRVRURVIgU0lCRSBLQTtMbzswO0w7Ozs7O047Ozs7OworMTg2NDtNT05HT0xJQU4gTEVUVEVSIFNJQkUgR0E7TG87MDtMOzs7OztOOzs7OzsKKzE4NjU7TU9OR09MSUFOIExFVFRFUiBTSUJFIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODY2O01PTkdPTElBTiBMRVRURVIgU0lCRSBQQTtMbzswO0w7Ozs7O047Ozs7OworMTg2NztNT05HT0xJQU4gTEVUVEVSIFNJQkUgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODY4O01PTkdPTElBTiBMRVRURVIgU0lCRSBUQTtMbzswO0w7Ozs7O047Ozs7OworMTg2OTtNT05HT0xJQU4gTEVUVEVSIFNJQkUgREE7TG87MDtMOzs7OztOOzs7OzsKKzE4NkE7TU9OR09MSUFOIExFVFRFUiBTSUJFIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODZCO01PTkdPTElBTiBMRVRURVIgU0lCRSBGQTtMbzswO0w7Ozs7O047Ozs7OworMTg2QztNT05HT0xJQU4gTEVUVEVSIFNJQkUgR0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODZEO01PTkdPTElBTiBMRVRURVIgU0lCRSBIQUE7TG87MDtMOzs7OztOOzs7OzsKKzE4NkU7TU9OR09MSUFOIExFVFRFUiBTSUJFIFRTQTtMbzswO0w7Ozs7O047Ozs7OworMTg2RjtNT05HT0xJQU4gTEVUVEVSIFNJQkUgWkE7TG87MDtMOzs7OztOOzs7OzsKKzE4NzA7TU9OR09MSUFOIExFVFRFUiBTSUJFIFJBQTtMbzswO0w7Ozs7O047Ozs7OworMTg3MTtNT05HT0xJQU4gTEVUVEVSIFNJQkUgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODcyO01PTkdPTElBTiBMRVRURVIgU0lCRSBaSEE7TG87MDtMOzs7OztOOzs7OzsKKzE4NzM7TU9OR09MSUFOIExFVFRFUiBNQU5DSFUgSTtMbzswO0w7Ozs7O047Ozs7OworMTg3NDtNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBLQTtMbzswO0w7Ozs7O047Ozs7OworMTg3NTtNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBSQTtMbzswO0w7Ozs7O047Ozs7OworMTg3NjtNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBGQTtMbzswO0w7Ozs7O047Ozs7OworMTg3NztNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBaSEE7TG87MDtMOzs7OztOOzs7OzsKKzE4ODA7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBBTlVTVkFSQSBPTkU7TG87MDtMOzs7OztOOzs7OzsKKzE4ODE7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBWSVNBUkdBIE9ORTtMbzswO0w7Ozs7O047Ozs7OworMTg4MjtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIERBTUFSVTtMbzswO0w7Ozs7O047Ozs7OworMTg4MztNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIFVCQURBTUE7TG87MDtMOzs7OztOOzs7OzsKKzE4ODQ7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBJTlZFUlRFRCBVQkFEQU1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODg1O01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgQkFMVURBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODg2O01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgVEhSRUUgQkFMVURBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODg3O01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgQTtMbzswO0w7Ozs7O047Ozs7OworMTg4ODtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIEk7TG87MDtMOzs7OztOOzs7OzsKKzE4ODk7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBLQTtMbzswO0w7Ozs7O047Ozs7OworMTg4QTtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMTg4QjtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODhDO01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODhEO01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMTg4RTtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIEREQTtMbzswO0w7Ozs7O047Ozs7OworMTg4RjtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIE5OQTtMbzswO0w7Ozs7O047Ozs7OworMTg5MDtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODkxO01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgREE7TG87MDtMOzs7OztOOzs7OzsKKzE4OTI7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBQQTtMbzswO0w7Ozs7O047Ozs7OworMTg5MztNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMTg5NDtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIFNTQTtMbzswO0w7Ozs7O047Ozs7OworMTg5NTtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIFpIQTtMbzswO0w7Ozs7O047Ozs7OworMTg5NjtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIFpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODk3O01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgQUg7TG87MDtMOzs7OztOOzs7OzsKKzE4OTg7TU9OR09MSUFOIExFVFRFUiBUT0RPIEFMSSBHQUxJIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODk5O01PTkdPTElBTiBMRVRURVIgVE9ETyBBTEkgR0FMSSBaSEE7TG87MDtMOzs7OztOOzs7OzsKKzE4OUE7TU9OR09MSUFOIExFVFRFUiBNQU5DSFUgQUxJIEdBTEkgR0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODlCO01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIEFMSSBHQUxJIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMTg5QztNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBBTEkgR0FMSSBDQTtMbzswO0w7Ozs7O047Ozs7OworMTg5RDtNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBBTEkgR0FMSSBKSEE7TG87MDtMOzs7OztOOzs7OzsKKzE4OUU7TU9OR09MSUFOIExFVFRFUiBNQU5DSFUgQUxJIEdBTEkgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODlGO01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIEFMSSBHQUxJIERESEE7TG87MDtMOzs7OztOOzs7OzsKKzE4QTA7TU9OR09MSUFOIExFVFRFUiBNQU5DSFUgQUxJIEdBTEkgVEE7TG87MDtMOzs7OztOOzs7OzsKKzE4QTE7TU9OR09MSUFOIExFVFRFUiBNQU5DSFUgQUxJIEdBTEkgREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOEEyO01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIEFMSSBHQUxJIFNTQTtMbzswO0w7Ozs7O047Ozs7OworMThBMztNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBBTEkgR0FMSSBDWUE7TG87MDtMOzs7OztOOzs7OzsKKzE4QTQ7TU9OR09MSUFOIExFVFRFUiBNQU5DSFUgQUxJIEdBTEkgWkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOEE1O01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIEFMSSBHQUxJIFpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOEE2O01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgSEFMRiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOEE3O01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgSEFMRiBZQTtMbzswO0w7Ozs7O047Ozs7OworMThBODtNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBBTEkgR0FMSSBCSEE7TG87MDtMOzs7OztOOzs7OzsKKzE4QTk7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBEQUdBTEdBO01uOzIyODtOU007Ozs7O047Ozs7OworMUUwMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggUklORyBCRUxPVztMdTswO0w7MDA0MSAwMzI1Ozs7O047Ozs7MUUwMTsKKzFFMDE7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBSSU5HIEJFTE9XO0xsOzA7TDswMDYxIDAzMjU7Ozs7Tjs7OzFFMDA7OzFFMDAKKzFFMDI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQiBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA0MiAwMzA3Ozs7O047Ozs7MUUwMzsKKzFFMDM7TEFUSU4gU01BTEwgTEVUVEVSIEIgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNjIgMDMwNzs7OztOOzs7MUUwMjs7MUUwMgorMUUwNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBCIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDQyIDAzMjM7Ozs7Tjs7OzsxRTA1OworMUUwNTtMQVRJTiBTTUFMTCBMRVRURVIgQiBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2MiAwMzIzOzs7O047OzsxRTA0OzsxRTA0CisxRTA2O0xBVElOIENBUElUQUwgTEVUVEVSIEIgV0lUSCBMSU5FIEJFTE9XO0x1OzA7TDswMDQyIDAzMzE7Ozs7Tjs7OzsxRTA3OworMUUwNztMQVRJTiBTTUFMTCBMRVRURVIgQiBXSVRIIExJTkUgQkVMT1c7TGw7MDtMOzAwNjIgMDMzMTs7OztOOzs7MUUwNjs7MUUwNgorMUUwODtMQVRJTiBDQVBJVEFMIExFVFRFUiBDIFdJVEggQ0VESUxMQSBBTkQgQUNVVEU7THU7MDtMOzAwQzcgMDMwMTs7OztOOzs7OzFFMDk7CisxRTA5O0xBVElOIFNNQUxMIExFVFRFUiBDIFdJVEggQ0VESUxMQSBBTkQgQUNVVEU7TGw7MDtMOzAwRTcgMDMwMTs7OztOOzs7MUUwODs7MUUwOAorMUUwQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDQ0IDAzMDc7Ozs7Tjs7OzsxRTBCOworMUUwQjtMQVRJTiBTTUFMTCBMRVRURVIgRCBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA2NCAwMzA3Ozs7O047OzsxRTBBOzsxRTBBCisxRTBDO0xBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNDQgMDMyMzs7OztOOzs7OzFFMEQ7CisxRTBEO0xBVElOIFNNQUxMIExFVFRFUiBEIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDY0IDAzMjM7Ozs7Tjs7OzFFMEM7OzFFMEMKKzFFMEU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIExJTkUgQkVMT1c7THU7MDtMOzAwNDQgMDMzMTs7OztOOzs7OzFFMEY7CisxRTBGO0xBVElOIFNNQUxMIExFVFRFUiBEIFdJVEggTElORSBCRUxPVztMbDswO0w7MDA2NCAwMzMxOzs7O047OzsxRTBFOzsxRTBFCisxRTEwO0xBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBDRURJTExBO0x1OzA7TDswMDQ0IDAzMjc7Ozs7Tjs7OzsxRTExOworMUUxMTtMQVRJTiBTTUFMTCBMRVRURVIgRCBXSVRIIENFRElMTEE7TGw7MDtMOzAwNjQgMDMyNzs7OztOOzs7MUUxMDs7MUUxMAorMUUxMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMdTswO0w7MDA0NCAwMzJEOzs7O047Ozs7MUUxMzsKKzFFMTM7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBDSVJDVU1GTEVYIEJFTE9XO0xsOzA7TDswMDY0IDAzMkQ7Ozs7Tjs7OzFFMTI7OzFFMTIKKzFFMTQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIE1BQ1JPTiBBTkQgR1JBVkU7THU7MDtMOzAxMTIgMDMwMDs7OztOOzs7OzFFMTU7CisxRTE1O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggTUFDUk9OIEFORCBHUkFWRTtMbDswO0w7MDExMyAwMzAwOzs7O047OzsxRTE0OzsxRTE0CisxRTE2O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBNQUNST04gQU5EIEFDVVRFO0x1OzA7TDswMTEyIDAzMDE7Ozs7Tjs7OzsxRTE3OworMUUxNztMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIE1BQ1JPTiBBTkQgQUNVVEU7TGw7MDtMOzAxMTMgMDMwMTs7OztOOzs7MUUxNjs7MUUxNgorMUUxODtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMdTswO0w7MDA0NSAwMzJEOzs7O047Ozs7MUUxOTsKKzFFMTk7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYIEJFTE9XO0xsOzA7TDswMDY1IDAzMkQ7Ozs7Tjs7OzFFMTg7OzFFMTgKKzFFMUE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIFRJTERFIEJFTE9XO0x1OzA7TDswMDQ1IDAzMzA7Ozs7Tjs7OzsxRTFCOworMUUxQjtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIFRJTERFIEJFTE9XO0xsOzA7TDswMDY1IDAzMzA7Ozs7Tjs7OzFFMUE7OzFFMUEKKzFFMUM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIENFRElMTEEgQU5EIEJSRVZFO0x1OzA7TDswMjI4IDAzMDY7Ozs7Tjs7OzsxRTFEOworMUUxRDtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIENFRElMTEEgQU5EIEJSRVZFO0xsOzA7TDswMjI5IDAzMDY7Ozs7Tjs7OzFFMUM7OzFFMUMKKzFFMUU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRiBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA0NiAwMzA3Ozs7O047Ozs7MUUxRjsKKzFFMUY7TEFUSU4gU01BTEwgTEVUVEVSIEYgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNjYgMDMwNzs7OztOOzs7MUUxRTs7MUUxRQorMUUyMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIFdJVEggTUFDUk9OO0x1OzA7TDswMDQ3IDAzMDQ7Ozs7Tjs7OzsxRTIxOworMUUyMTtMQVRJTiBTTUFMTCBMRVRURVIgRyBXSVRIIE1BQ1JPTjtMbDswO0w7MDA2NyAwMzA0Ozs7O047OzsxRTIwOzsxRTIwCisxRTIyO0xBVElOIENBUElUQUwgTEVUVEVSIEggV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNDggMDMwNzs7OztOOzs7OzFFMjM7CisxRTIzO0xBVElOIFNNQUxMIExFVFRFUiBIIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDY4IDAzMDc7Ozs7Tjs7OzFFMjI7OzFFMjIKKzFFMjQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSCBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA0OCAwMzIzOzs7O047Ozs7MUUyNTsKKzFFMjU7TEFUSU4gU01BTEwgTEVUVEVSIEggV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNjggMDMyMzs7OztOOzs7MUUyNDs7MUUyNAorMUUyNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBIIFdJVEggRElBRVJFU0lTO0x1OzA7TDswMDQ4IDAzMDg7Ozs7Tjs7OzsxRTI3OworMUUyNztMQVRJTiBTTUFMTCBMRVRURVIgSCBXSVRIIERJQUVSRVNJUztMbDswO0w7MDA2OCAwMzA4Ozs7O047OzsxRTI2OzsxRTI2CisxRTI4O0xBVElOIENBUElUQUwgTEVUVEVSIEggV0lUSCBDRURJTExBO0x1OzA7TDswMDQ4IDAzMjc7Ozs7Tjs7OzsxRTI5OworMUUyOTtMQVRJTiBTTUFMTCBMRVRURVIgSCBXSVRIIENFRElMTEE7TGw7MDtMOzAwNjggMDMyNzs7OztOOzs7MUUyODs7MUUyOAorMUUyQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBIIFdJVEggQlJFVkUgQkVMT1c7THU7MDtMOzAwNDggMDMyRTs7OztOOzs7OzFFMkI7CisxRTJCO0xBVElOIFNNQUxMIExFVFRFUiBIIFdJVEggQlJFVkUgQkVMT1c7TGw7MDtMOzAwNjggMDMyRTs7OztOOzs7MUUyQTs7MUUyQQorMUUyQztMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggVElMREUgQkVMT1c7THU7MDtMOzAwNDkgMDMzMDs7OztOOzs7OzFFMkQ7CisxRTJEO0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggVElMREUgQkVMT1c7TGw7MDtMOzAwNjkgMDMzMDs7OztOOzs7MUUyQzs7MUUyQworMUUyRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRElBRVJFU0lTIEFORCBBQ1VURTtMdTswO0w7MDBDRiAwMzAxOzs7O047Ozs7MUUyRjsKKzFFMkY7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBESUFFUkVTSVMgQU5EIEFDVVRFO0xsOzA7TDswMEVGIDAzMDE7Ozs7Tjs7OzFFMkU7OzFFMkUKKzFFMzA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSyBXSVRIIEFDVVRFO0x1OzA7TDswMDRCIDAzMDE7Ozs7Tjs7OzsxRTMxOworMUUzMTtMQVRJTiBTTUFMTCBMRVRURVIgSyBXSVRIIEFDVVRFO0xsOzA7TDswMDZCIDAzMDE7Ozs7Tjs7OzFFMzA7OzFFMzAKKzFFMzI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSyBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA0QiAwMzIzOzs7O047Ozs7MUUzMzsKKzFFMzM7TEFUSU4gU01BTEwgTEVUVEVSIEsgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNkIgMDMyMzs7OztOOzs7MUUzMjs7MUUzMgorMUUzNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBLIFdJVEggTElORSBCRUxPVztMdTswO0w7MDA0QiAwMzMxOzs7O047Ozs7MUUzNTsKKzFFMzU7TEFUSU4gU01BTEwgTEVUVEVSIEsgV0lUSCBMSU5FIEJFTE9XO0xsOzA7TDswMDZCIDAzMzE7Ozs7Tjs7OzFFMzQ7OzFFMzQKKzFFMzY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA0QyAwMzIzOzs7O047Ozs7MUUzNzsKKzFFMzc7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNkMgMDMyMzs7OztOOzs7MUUzNjs7MUUzNgorMUUzODtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggRE9UIEJFTE9XIEFORCBNQUNST047THU7MDtMOzFFMzYgMDMwNDs7OztOOzs7OzFFMzk7CisxRTM5O0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggRE9UIEJFTE9XIEFORCBNQUNST047TGw7MDtMOzFFMzcgMDMwNDs7OztOOzs7MUUzODs7MUUzOAorMUUzQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggTElORSBCRUxPVztMdTswO0w7MDA0QyAwMzMxOzs7O047Ozs7MUUzQjsKKzFFM0I7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBMSU5FIEJFTE9XO0xsOzA7TDswMDZDIDAzMzE7Ozs7Tjs7OzFFM0E7OzFFM0EKKzFFM0M7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIENJUkNVTUZMRVggQkVMT1c7THU7MDtMOzAwNEMgMDMyRDs7OztOOzs7OzFFM0Q7CisxRTNEO0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMbDswO0w7MDA2QyAwMzJEOzs7O047OzsxRTNDOzsxRTNDCisxRTNFO0xBVElOIENBUElUQUwgTEVUVEVSIE0gV0lUSCBBQ1VURTtMdTswO0w7MDA0RCAwMzAxOzs7O047Ozs7MUUzRjsKKzFFM0Y7TEFUSU4gU01BTEwgTEVUVEVSIE0gV0lUSCBBQ1VURTtMbDswO0w7MDA2RCAwMzAxOzs7O047OzsxRTNFOzsxRTNFCisxRTQwO0xBVElOIENBUElUQUwgTEVUVEVSIE0gV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNEQgMDMwNzs7OztOOzs7OzFFNDE7CisxRTQxO0xBVElOIFNNQUxMIExFVFRFUiBNIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDZEIDAzMDc7Ozs7Tjs7OzFFNDA7OzFFNDAKKzFFNDI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTSBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA0RCAwMzIzOzs7O047Ozs7MUU0MzsKKzFFNDM7TEFUSU4gU01BTEwgTEVUVEVSIE0gV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNkQgMDMyMzs7OztOOzs7MUU0Mjs7MUU0MgorMUU0NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDRFIDAzMDc7Ozs7Tjs7OzsxRTQ1OworMUU0NTtMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA2RSAwMzA3Ozs7O047OzsxRTQ0OzsxRTQ0CisxRTQ2O0xBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNEUgMDMyMzs7OztOOzs7OzFFNDc7CisxRTQ3O0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDZFIDAzMjM7Ozs7Tjs7OzFFNDY7OzFFNDYKKzFFNDg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIExJTkUgQkVMT1c7THU7MDtMOzAwNEUgMDMzMTs7OztOOzs7OzFFNDk7CisxRTQ5O0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggTElORSBCRUxPVztMbDswO0w7MDA2RSAwMzMxOzs7O047OzsxRTQ4OzsxRTQ4CisxRTRBO0xBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBDSVJDVU1GTEVYIEJFTE9XO0x1OzA7TDswMDRFIDAzMkQ7Ozs7Tjs7OzsxRTRCOworMUU0QjtMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIENJUkNVTUZMRVggQkVMT1c7TGw7MDtMOzAwNkUgMDMyRDs7OztOOzs7MUU0QTs7MUU0QQorMUU0QztMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggVElMREUgQU5EIEFDVVRFO0x1OzA7TDswMEQ1IDAzMDE7Ozs7Tjs7OzsxRTREOworMUU0RDtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIFRJTERFIEFORCBBQ1VURTtMbDswO0w7MDBGNSAwMzAxOzs7O047OzsxRTRDOzsxRTRDCisxRTRFO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBUSUxERSBBTkQgRElBRVJFU0lTO0x1OzA7TDswMEQ1IDAzMDg7Ozs7Tjs7OzsxRTRGOworMUU0RjtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIFRJTERFIEFORCBESUFFUkVTSVM7TGw7MDtMOzAwRjUgMDMwODs7OztOOzs7MUU0RTs7MUU0RQorMUU1MDtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggTUFDUk9OIEFORCBHUkFWRTtMdTswO0w7MDE0QyAwMzAwOzs7O047Ozs7MUU1MTsKKzFFNTE7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBNQUNST04gQU5EIEdSQVZFO0xsOzA7TDswMTREIDAzMDA7Ozs7Tjs7OzFFNTA7OzFFNTAKKzFFNTI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIE1BQ1JPTiBBTkQgQUNVVEU7THU7MDtMOzAxNEMgMDMwMTs7OztOOzs7OzFFNTM7CisxRTUzO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggTUFDUk9OIEFORCBBQ1VURTtMbDswO0w7MDE0RCAwMzAxOzs7O047OzsxRTUyOzsxRTUyCisxRTU0O0xBVElOIENBUElUQUwgTEVUVEVSIFAgV0lUSCBBQ1VURTtMdTswO0w7MDA1MCAwMzAxOzs7O047Ozs7MUU1NTsKKzFFNTU7TEFUSU4gU01BTEwgTEVUVEVSIFAgV0lUSCBBQ1VURTtMbDswO0w7MDA3MCAwMzAxOzs7O047OzsxRTU0OzsxRTU0CisxRTU2O0xBVElOIENBUElUQUwgTEVUVEVSIFAgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNTAgMDMwNzs7OztOOzs7OzFFNTc7CisxRTU3O0xBVElOIFNNQUxMIExFVFRFUiBQIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDcwIDAzMDc7Ozs7Tjs7OzFFNTY7OzFFNTYKKzFFNTg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA1MiAwMzA3Ozs7O047Ozs7MUU1OTsKKzFFNTk7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNzIgMDMwNzs7OztOOzs7MUU1ODs7MUU1OAorMUU1QTtMQVRJTiBDQVBJVEFMIExFVFRFUiBSIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDUyIDAzMjM7Ozs7Tjs7OzsxRTVCOworMUU1QjtMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA3MiAwMzIzOzs7O047OzsxRTVBOzsxRTVBCisxRTVDO0xBVElOIENBUElUQUwgTEVUVEVSIFIgV0lUSCBET1QgQkVMT1cgQU5EIE1BQ1JPTjtMdTswO0w7MUU1QSAwMzA0Ozs7O047Ozs7MUU1RDsKKzFFNUQ7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBET1QgQkVMT1cgQU5EIE1BQ1JPTjtMbDswO0w7MUU1QiAwMzA0Ozs7O047OzsxRTVDOzsxRTVDCisxRTVFO0xBVElOIENBUElUQUwgTEVUVEVSIFIgV0lUSCBMSU5FIEJFTE9XO0x1OzA7TDswMDUyIDAzMzE7Ozs7Tjs7OzsxRTVGOworMUU1RjtMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIExJTkUgQkVMT1c7TGw7MDtMOzAwNzIgMDMzMTs7OztOOzs7MUU1RTs7MUU1RQorMUU2MDtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDUzIDAzMDc7Ozs7Tjs7OzsxRTYxOworMUU2MTtMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA3MyAwMzA3Ozs7O047OzsxRTYwOzsxRTYwCisxRTYyO0xBVElOIENBUElUQUwgTEVUVEVSIFMgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNTMgMDMyMzs7OztOOzs7OzFFNjM7CisxRTYzO0xBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDczIDAzMjM7Ozs7Tjs7OzFFNjI7OzFFNjIKKzFFNjQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBXSVRIIEFDVVRFIEFORCBET1QgQUJPVkU7THU7MDtMOzAxNUEgMDMwNzs7OztOOzs7OzFFNjU7CisxRTY1O0xBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggQUNVVEUgQU5EIERPVCBBQk9WRTtMbDswO0w7MDE1QiAwMzA3Ozs7O047OzsxRTY0OzsxRTY0CisxRTY2O0xBVElOIENBUElUQUwgTEVUVEVSIFMgV0lUSCBDQVJPTiBBTkQgRE9UIEFCT1ZFO0x1OzA7TDswMTYwIDAzMDc7Ozs7Tjs7OzsxRTY3OworMUU2NztMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIENBUk9OIEFORCBET1QgQUJPVkU7TGw7MDtMOzAxNjEgMDMwNzs7OztOOzs7MUU2Njs7MUU2NgorMUU2ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIFdJVEggRE9UIEJFTE9XIEFORCBET1QgQUJPVkU7THU7MDtMOzFFNjIgMDMwNzs7OztOOzs7OzFFNjk7CisxRTY5O0xBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggRE9UIEJFTE9XIEFORCBET1QgQUJPVkU7TGw7MDtMOzFFNjMgMDMwNzs7OztOOzs7MUU2ODs7MUU2OAorMUU2QTtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDU0IDAzMDc7Ozs7Tjs7OzsxRTZCOworMUU2QjtMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA3NCAwMzA3Ozs7O047OzsxRTZBOzsxRTZBCisxRTZDO0xBVElOIENBUElUQUwgTEVUVEVSIFQgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNTQgMDMyMzs7OztOOzs7OzFFNkQ7CisxRTZEO0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDc0IDAzMjM7Ozs7Tjs7OzFFNkM7OzFFNkMKKzFFNkU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBXSVRIIExJTkUgQkVMT1c7THU7MDtMOzAwNTQgMDMzMTs7OztOOzs7OzFFNkY7CisxRTZGO0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggTElORSBCRUxPVztMbDswO0w7MDA3NCAwMzMxOzs7O047OzsxRTZFOzsxRTZFCisxRTcwO0xBVElOIENBUElUQUwgTEVUVEVSIFQgV0lUSCBDSVJDVU1GTEVYIEJFTE9XO0x1OzA7TDswMDU0IDAzMkQ7Ozs7Tjs7OzsxRTcxOworMUU3MTtMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIENJUkNVTUZMRVggQkVMT1c7TGw7MDtMOzAwNzQgMDMyRDs7OztOOzs7MUU3MDs7MUU3MAorMUU3MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTIEJFTE9XO0x1OzA7TDswMDU1IDAzMjQ7Ozs7Tjs7OzsxRTczOworMUU3MztMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUyBCRUxPVztMbDswO0w7MDA3NSAwMzI0Ozs7O047OzsxRTcyOzsxRTcyCisxRTc0O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBUSUxERSBCRUxPVztMdTswO0w7MDA1NSAwMzMwOzs7O047Ozs7MUU3NTsKKzFFNzU7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBUSUxERSBCRUxPVztMbDswO0w7MDA3NSAwMzMwOzs7O047OzsxRTc0OzsxRTc0CisxRTc2O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBDSVJDVU1GTEVYIEJFTE9XO0x1OzA7TDswMDU1IDAzMkQ7Ozs7Tjs7OzsxRTc3OworMUU3NztMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIENJUkNVTUZMRVggQkVMT1c7TGw7MDtMOzAwNzUgMDMyRDs7OztOOzs7MUU3Njs7MUU3NgorMUU3ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggVElMREUgQU5EIEFDVVRFO0x1OzA7TDswMTY4IDAzMDE7Ozs7Tjs7OzsxRTc5OworMUU3OTtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIFRJTERFIEFORCBBQ1VURTtMbDswO0w7MDE2OSAwMzAxOzs7O047OzsxRTc4OzsxRTc4CisxRTdBO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBNQUNST04gQU5EIERJQUVSRVNJUztMdTswO0w7MDE2QSAwMzA4Ozs7O047Ozs7MUU3QjsKKzFFN0I7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBNQUNST04gQU5EIERJQUVSRVNJUztMbDswO0w7MDE2QiAwMzA4Ozs7O047OzsxRTdBOzsxRTdBCisxRTdDO0xBVElOIENBUElUQUwgTEVUVEVSIFYgV0lUSCBUSUxERTtMdTswO0w7MDA1NiAwMzAzOzs7O047Ozs7MUU3RDsKKzFFN0Q7TEFUSU4gU01BTEwgTEVUVEVSIFYgV0lUSCBUSUxERTtMbDswO0w7MDA3NiAwMzAzOzs7O047OzsxRTdDOzsxRTdDCisxRTdFO0xBVElOIENBUElUQUwgTEVUVEVSIFYgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNTYgMDMyMzs7OztOOzs7OzFFN0Y7CisxRTdGO0xBVElOIFNNQUxMIExFVFRFUiBWIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDc2IDAzMjM7Ozs7Tjs7OzFFN0U7OzFFN0UKKzFFODA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVyBXSVRIIEdSQVZFO0x1OzA7TDswMDU3IDAzMDA7Ozs7Tjs7OzsxRTgxOworMUU4MTtMQVRJTiBTTUFMTCBMRVRURVIgVyBXSVRIIEdSQVZFO0xsOzA7TDswMDc3IDAzMDA7Ozs7Tjs7OzFFODA7OzFFODAKKzFFODI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVyBXSVRIIEFDVVRFO0x1OzA7TDswMDU3IDAzMDE7Ozs7Tjs7OzsxRTgzOworMUU4MztMQVRJTiBTTUFMTCBMRVRURVIgVyBXSVRIIEFDVVRFO0xsOzA7TDswMDc3IDAzMDE7Ozs7Tjs7OzFFODI7OzFFODIKKzFFODQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVyBXSVRIIERJQUVSRVNJUztMdTswO0w7MDA1NyAwMzA4Ozs7O047Ozs7MUU4NTsKKzFFODU7TEFUSU4gU01BTEwgTEVUVEVSIFcgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzAwNzcgMDMwODs7OztOOzs7MUU4NDs7MUU4NAorMUU4NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBXIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDU3IDAzMDc7Ozs7Tjs7OzsxRTg3OworMUU4NztMQVRJTiBTTUFMTCBMRVRURVIgVyBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA3NyAwMzA3Ozs7O047OzsxRTg2OzsxRTg2CisxRTg4O0xBVElOIENBUElUQUwgTEVUVEVSIFcgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNTcgMDMyMzs7OztOOzs7OzFFODk7CisxRTg5O0xBVElOIFNNQUxMIExFVFRFUiBXIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDc3IDAzMjM7Ozs7Tjs7OzFFODg7OzFFODgKKzFFOEE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWCBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA1OCAwMzA3Ozs7O047Ozs7MUU4QjsKKzFFOEI7TEFUSU4gU01BTEwgTEVUVEVSIFggV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNzggMDMwNzs7OztOOzs7MUU4QTs7MUU4QQorMUU4QztMQVRJTiBDQVBJVEFMIExFVFRFUiBYIFdJVEggRElBRVJFU0lTO0x1OzA7TDswMDU4IDAzMDg7Ozs7Tjs7OzsxRThEOworMUU4RDtMQVRJTiBTTUFMTCBMRVRURVIgWCBXSVRIIERJQUVSRVNJUztMbDswO0w7MDA3OCAwMzA4Ozs7O047OzsxRThDOzsxRThDCisxRThFO0xBVElOIENBUElUQUwgTEVUVEVSIFkgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNTkgMDMwNzs7OztOOzs7OzFFOEY7CisxRThGO0xBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDc5IDAzMDc7Ozs7Tjs7OzFFOEU7OzFFOEUKKzFFOTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNUEgMDMwMjs7OztOOzs7OzFFOTE7CisxRTkxO0xBVElOIFNNQUxMIExFVFRFUiBaIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA3QSAwMzAyOzs7O047OzsxRTkwOzsxRTkwCisxRTkyO0xBVElOIENBUElUQUwgTEVUVEVSIFogV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNUEgMDMyMzs7OztOOzs7OzFFOTM7CisxRTkzO0xBVElOIFNNQUxMIExFVFRFUiBaIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDdBIDAzMjM7Ozs7Tjs7OzFFOTI7OzFFOTIKKzFFOTQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBXSVRIIExJTkUgQkVMT1c7THU7MDtMOzAwNUEgMDMzMTs7OztOOzs7OzFFOTU7CisxRTk1O0xBVElOIFNNQUxMIExFVFRFUiBaIFdJVEggTElORSBCRUxPVztMbDswO0w7MDA3QSAwMzMxOzs7O047OzsxRTk0OzsxRTk0CisxRTk2O0xBVElOIFNNQUxMIExFVFRFUiBIIFdJVEggTElORSBCRUxPVztMbDswO0w7MDA2OCAwMzMxOzs7O047Ozs7OworMUU5NztMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIERJQUVSRVNJUztMbDswO0w7MDA3NCAwMzA4Ozs7O047Ozs7OworMUU5ODtMQVRJTiBTTUFMTCBMRVRURVIgVyBXSVRIIFJJTkcgQUJPVkU7TGw7MDtMOzAwNzcgMDMwQTs7OztOOzs7OzsKKzFFOTk7TEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBSSU5HIEFCT1ZFO0xsOzA7TDswMDc5IDAzMEE7Ozs7Tjs7Ozs7CisxRTlBO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggUklHSFQgSEFMRiBSSU5HO0xsOzA7TDs8Y29tcGF0PiAwMDYxIDAyQkU7Ozs7Tjs7Ozs7CisxRTlCO0xBVElOIFNNQUxMIExFVFRFUiBMT05HIFMgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAxN0YgMDMwNzs7OztOOzs7MUU2MDs7MUU2MAorMUVBMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDQxIDAzMjM7Ozs7Tjs7OzsxRUExOworMUVBMTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2MSAwMzIzOzs7O047OzsxRUEwOzsxRUEwCisxRUEyO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBIT09LIEFCT1ZFO0x1OzA7TDswMDQxIDAzMDk7Ozs7Tjs7OzsxRUEzOworMUVBMztMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIEhPT0sgQUJPVkU7TGw7MDtMOzAwNjEgMDMwOTs7OztOOzs7MUVBMjs7MUVBMgorMUVBNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWCBBTkQgQUNVVEU7THU7MDtMOzAwQzIgMDMwMTs7OztOOzs7OzFFQTU7CisxRUE1O0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWCBBTkQgQUNVVEU7TGw7MDtMOzAwRTIgMDMwMTs7OztOOzs7MUVBNDs7MUVBNAorMUVBNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWCBBTkQgR1JBVkU7THU7MDtMOzAwQzIgMDMwMDs7OztOOzs7OzFFQTc7CisxRUE3O0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWCBBTkQgR1JBVkU7TGw7MDtMOzAwRTIgMDMwMDs7OztOOzs7MUVBNjs7MUVBNgorMUVBODtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWCBBTkQgSE9PSyBBQk9WRTtMdTswO0w7MDBDMiAwMzA5Ozs7O047Ozs7MUVBOTsKKzFFQTk7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYIEFORCBIT09LIEFCT1ZFO0xsOzA7TDswMEUyIDAzMDk7Ozs7Tjs7OzFFQTg7OzFFQTgKKzFFQUE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVggQU5EIFRJTERFO0x1OzA7TDswMEMyIDAzMDM7Ozs7Tjs7OzsxRUFCOworMUVBQjtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVggQU5EIFRJTERFO0xsOzA7TDswMEUyIDAzMDM7Ozs7Tjs7OzFFQUE7OzFFQUEKKzFFQUM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVggQU5EIERPVCBCRUxPVztMdTswO0w7MUVBMCAwMzAyOzs7O047Ozs7MUVBRDsKKzFFQUQ7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYIEFORCBET1QgQkVMT1c7TGw7MDtMOzFFQTEgMDMwMjs7OztOOzs7MUVBQzs7MUVBQworMUVBRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQlJFVkUgQU5EIEFDVVRFO0x1OzA7TDswMTAyIDAzMDE7Ozs7Tjs7OzsxRUFGOworMUVBRjtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIEJSRVZFIEFORCBBQ1VURTtMbDswO0w7MDEwMyAwMzAxOzs7O047OzsxRUFFOzsxRUFFCisxRUIwO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBCUkVWRSBBTkQgR1JBVkU7THU7MDtMOzAxMDIgMDMwMDs7OztOOzs7OzFFQjE7CisxRUIxO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQlJFVkUgQU5EIEdSQVZFO0xsOzA7TDswMTAzIDAzMDA7Ozs7Tjs7OzFFQjA7OzFFQjAKKzFFQjI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEJSRVZFIEFORCBIT09LIEFCT1ZFO0x1OzA7TDswMTAyIDAzMDk7Ozs7Tjs7OzsxRUIzOworMUVCMztMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIEJSRVZFIEFORCBIT09LIEFCT1ZFO0xsOzA7TDswMTAzIDAzMDk7Ozs7Tjs7OzFFQjI7OzFFQjIKKzFFQjQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEJSRVZFIEFORCBUSUxERTtMdTswO0w7MDEwMiAwMzAzOzs7O047Ozs7MUVCNTsKKzFFQjU7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBCUkVWRSBBTkQgVElMREU7TGw7MDtMOzAxMDMgMDMwMzs7OztOOzs7MUVCNDs7MUVCNAorMUVCNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQlJFVkUgQU5EIERPVCBCRUxPVztMdTswO0w7MUVBMCAwMzA2Ozs7O047Ozs7MUVCNzsKKzFFQjc7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBCUkVWRSBBTkQgRE9UIEJFTE9XO0xsOzA7TDsxRUExIDAzMDY7Ozs7Tjs7OzFFQjY7OzFFQjYKKzFFQjg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA0NSAwMzIzOzs7O047Ozs7MUVCOTsKKzFFQjk7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNjUgMDMyMzs7OztOOzs7MUVCODs7MUVCOAorMUVCQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggSE9PSyBBQk9WRTtMdTswO0w7MDA0NSAwMzA5Ozs7O047Ozs7MUVCQjsKKzFFQkI7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBIT09LIEFCT1ZFO0xsOzA7TDswMDY1IDAzMDk7Ozs7Tjs7OzFFQkE7OzFFQkEKKzFFQkM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIFRJTERFO0x1OzA7TDswMDQ1IDAzMDM7Ozs7Tjs7OzsxRUJEOworMUVCRDtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIFRJTERFO0xsOzA7TDswMDY1IDAzMDM7Ozs7Tjs7OzFFQkM7OzFFQkMKKzFFQkU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVggQU5EIEFDVVRFO0x1OzA7TDswMENBIDAzMDE7Ozs7Tjs7OzsxRUJGOworMUVCRjtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVggQU5EIEFDVVRFO0xsOzA7TDswMEVBIDAzMDE7Ozs7Tjs7OzFFQkU7OzFFQkUKKzFFQzA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVggQU5EIEdSQVZFO0x1OzA7TDswMENBIDAzMDA7Ozs7Tjs7OzsxRUMxOworMUVDMTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVggQU5EIEdSQVZFO0xsOzA7TDswMEVBIDAzMDA7Ozs7Tjs7OzFFQzA7OzFFQzAKKzFFQzI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVggQU5EIEhPT0sgQUJPVkU7THU7MDtMOzAwQ0EgMDMwOTs7OztOOzs7OzFFQzM7CisxRUMzO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBBTkQgSE9PSyBBQk9WRTtMbDswO0w7MDBFQSAwMzA5Ozs7O047OzsxRUMyOzsxRUMyCisxRUM0O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYIEFORCBUSUxERTtMdTswO0w7MDBDQSAwMzAzOzs7O047Ozs7MUVDNTsKKzFFQzU7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYIEFORCBUSUxERTtMbDswO0w7MDBFQSAwMzAzOzs7O047OzsxRUM0OzsxRUM0CisxRUM2O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYIEFORCBET1QgQkVMT1c7THU7MDtMOzFFQjggMDMwMjs7OztOOzs7OzFFQzc7CisxRUM3O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBBTkQgRE9UIEJFTE9XO0xsOzA7TDsxRUI5IDAzMDI7Ozs7Tjs7OzFFQzY7OzFFQzYKKzFFQzg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIEhPT0sgQUJPVkU7THU7MDtMOzAwNDkgMDMwOTs7OztOOzs7OzFFQzk7CisxRUM5O0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggSE9PSyBBQk9WRTtMbDswO0w7MDA2OSAwMzA5Ozs7O047OzsxRUM4OzsxRUM4CisxRUNBO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNDkgMDMyMzs7OztOOzs7OzFFQ0I7CisxRUNCO0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDY5IDAzMjM7Ozs7Tjs7OzFFQ0E7OzFFQ0EKKzFFQ0M7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA0RiAwMzIzOzs7O047Ozs7MUVDRDsKKzFFQ0Q7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNkYgMDMyMzs7OztOOzs7MUVDQzs7MUVDQworMUVDRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggSE9PSyBBQk9WRTtMdTswO0w7MDA0RiAwMzA5Ozs7O047Ozs7MUVDRjsKKzFFQ0Y7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBIT09LIEFCT1ZFO0xsOzA7TDswMDZGIDAzMDk7Ozs7Tjs7OzFFQ0U7OzFFQ0UKKzFFRDA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVggQU5EIEFDVVRFO0x1OzA7TDswMEQ0IDAzMDE7Ozs7Tjs7OzsxRUQxOworMUVEMTtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVggQU5EIEFDVVRFO0xsOzA7TDswMEY0IDAzMDE7Ozs7Tjs7OzFFRDA7OzFFRDAKKzFFRDI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVggQU5EIEdSQVZFO0x1OzA7TDswMEQ0IDAzMDA7Ozs7Tjs7OzsxRUQzOworMUVEMztMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVggQU5EIEdSQVZFO0xsOzA7TDswMEY0IDAzMDA7Ozs7Tjs7OzFFRDI7OzFFRDIKKzFFRDQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVggQU5EIEhPT0sgQUJPVkU7THU7MDtMOzAwRDQgMDMwOTs7OztOOzs7OzFFRDU7CisxRUQ1O0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWCBBTkQgSE9PSyBBQk9WRTtMbDswO0w7MDBGNCAwMzA5Ozs7O047OzsxRUQ0OzsxRUQ0CisxRUQ2O0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYIEFORCBUSUxERTtMdTswO0w7MDBENCAwMzAzOzs7O047Ozs7MUVENzsKKzFFRDc7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYIEFORCBUSUxERTtMbDswO0w7MDBGNCAwMzAzOzs7O047OzsxRUQ2OzsxRUQ2CisxRUQ4O0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYIEFORCBET1QgQkVMT1c7THU7MDtMOzFFQ0MgMDMwMjs7OztOOzs7OzFFRDk7CisxRUQ5O0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWCBBTkQgRE9UIEJFTE9XO0xsOzA7TDsxRUNEIDAzMDI7Ozs7Tjs7OzFFRDg7OzFFRDgKKzFFREE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIEhPUk4gQU5EIEFDVVRFO0x1OzA7TDswMUEwIDAzMDE7Ozs7Tjs7OzsxRURCOworMUVEQjtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIEhPUk4gQU5EIEFDVVRFO0xsOzA7TDswMUExIDAzMDE7Ozs7Tjs7OzFFREE7OzFFREEKKzFFREM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIEhPUk4gQU5EIEdSQVZFO0x1OzA7TDswMUEwIDAzMDA7Ozs7Tjs7OzsxRUREOworMUVERDtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIEhPUk4gQU5EIEdSQVZFO0xsOzA7TDswMUExIDAzMDA7Ozs7Tjs7OzFFREM7OzFFREMKKzFFREU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIEhPUk4gQU5EIEhPT0sgQUJPVkU7THU7MDtMOzAxQTAgMDMwOTs7OztOOzs7OzFFREY7CisxRURGO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggSE9STiBBTkQgSE9PSyBBQk9WRTtMbDswO0w7MDFBMSAwMzA5Ozs7O047OzsxRURFOzsxRURFCisxRUUwO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBIT1JOIEFORCBUSUxERTtMdTswO0w7MDFBMCAwMzAzOzs7O047Ozs7MUVFMTsKKzFFRTE7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBIT1JOIEFORCBUSUxERTtMbDswO0w7MDFBMSAwMzAzOzs7O047OzsxRUUwOzsxRUUwCisxRUUyO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBIT1JOIEFORCBET1QgQkVMT1c7THU7MDtMOzAxQTAgMDMyMzs7OztOOzs7OzFFRTM7CisxRUUzO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggSE9STiBBTkQgRE9UIEJFTE9XO0xsOzA7TDswMUExIDAzMjM7Ozs7Tjs7OzFFRTI7OzFFRTIKKzFFRTQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA1NSAwMzIzOzs7O047Ozs7MUVFNTsKKzFFRTU7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNzUgMDMyMzs7OztOOzs7MUVFNDs7MUVFNAorMUVFNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggSE9PSyBBQk9WRTtMdTswO0w7MDA1NSAwMzA5Ozs7O047Ozs7MUVFNzsKKzFFRTc7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBIT09LIEFCT1ZFO0xsOzA7TDswMDc1IDAzMDk7Ozs7Tjs7OzFFRTY7OzFFRTYKKzFFRTg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEhPUk4gQU5EIEFDVVRFO0x1OzA7TDswMUFGIDAzMDE7Ozs7Tjs7OzsxRUU5OworMUVFOTtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEhPUk4gQU5EIEFDVVRFO0xsOzA7TDswMUIwIDAzMDE7Ozs7Tjs7OzFFRTg7OzFFRTgKKzFFRUE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEhPUk4gQU5EIEdSQVZFO0x1OzA7TDswMUFGIDAzMDA7Ozs7Tjs7OzsxRUVCOworMUVFQjtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEhPUk4gQU5EIEdSQVZFO0xsOzA7TDswMUIwIDAzMDA7Ozs7Tjs7OzFFRUE7OzFFRUEKKzFFRUM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEhPUk4gQU5EIEhPT0sgQUJPVkU7THU7MDtMOzAxQUYgMDMwOTs7OztOOzs7OzFFRUQ7CisxRUVEO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggSE9STiBBTkQgSE9PSyBBQk9WRTtMbDswO0w7MDFCMCAwMzA5Ozs7O047OzsxRUVDOzsxRUVDCisxRUVFO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBIT1JOIEFORCBUSUxERTtMdTswO0w7MDFBRiAwMzAzOzs7O047Ozs7MUVFRjsKKzFFRUY7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBIT1JOIEFORCBUSUxERTtMbDswO0w7MDFCMCAwMzAzOzs7O047OzsxRUVFOzsxRUVFCisxRUYwO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBIT1JOIEFORCBET1QgQkVMT1c7THU7MDtMOzAxQUYgMDMyMzs7OztOOzs7OzFFRjE7CisxRUYxO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggSE9STiBBTkQgRE9UIEJFTE9XO0xsOzA7TDswMUIwIDAzMjM7Ozs7Tjs7OzFFRjA7OzFFRjAKKzFFRjI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIEdSQVZFO0x1OzA7TDswMDU5IDAzMDA7Ozs7Tjs7OzsxRUYzOworMUVGMztMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIEdSQVZFO0xsOzA7TDswMDc5IDAzMDA7Ozs7Tjs7OzFFRjI7OzFFRjIKKzFFRjQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA1OSAwMzIzOzs7O047Ozs7MUVGNTsKKzFFRjU7TEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNzkgMDMyMzs7OztOOzs7MUVGNDs7MUVGNAorMUVGNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggSE9PSyBBQk9WRTtMdTswO0w7MDA1OSAwMzA5Ozs7O047Ozs7MUVGNzsKKzFFRjc7TEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBIT09LIEFCT1ZFO0xsOzA7TDswMDc5IDAzMDk7Ozs7Tjs7OzFFRjY7OzFFRjYKKzFFRjg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIFRJTERFO0x1OzA7TDswMDU5IDAzMDM7Ozs7Tjs7OzsxRUY5OworMUVGOTtMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIFRJTERFO0xsOzA7TDswMDc5IDAzMDM7Ozs7Tjs7OzFFRjg7OzFFRjgKKzFGMDA7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEk7TGw7MDtMOzAzQjEgMDMxMzs7OztOOzs7MUYwODs7MUYwOAorMUYwMTtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQTtMbDswO0w7MDNCMSAwMzE0Ozs7O047OzsxRjA5OzsxRjA5CisxRjAyO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBWQVJJQTtMbDswO0w7MUYwMCAwMzAwOzs7O047OzsxRjBBOzsxRjBBCisxRjAzO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBWQVJJQTtMbDswO0w7MUYwMSAwMzAwOzs7O047OzsxRjBCOzsxRjBCCisxRjA0O0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBPWElBO0xsOzA7TDsxRjAwIDAzMDE7Ozs7Tjs7OzFGMEM7OzFGMEMKKzFGMDU7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIE9YSUE7TGw7MDtMOzFGMDEgMDMwMTs7OztOOzs7MUYwRDs7MUYwRAorMUYwNjtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkk7TGw7MDtMOzFGMDAgMDM0Mjs7OztOOzs7MUYwRTs7MUYwRQorMUYwNztHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkk7TGw7MDtMOzFGMDEgMDM0Mjs7OztOOzs7MUYwRjs7MUYwRgorMUYwODtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJO0x1OzA7TDswMzkxIDAzMTM7Ozs7Tjs7OzsxRjAwOworMUYwOTtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBO0x1OzA7TDswMzkxIDAzMTQ7Ozs7Tjs7OzsxRjAxOworMUYwQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBWQVJJQTtMdTswO0w7MUYwOCAwMzAwOzs7O047Ozs7MUYwMjsKKzFGMEI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgVkFSSUE7THU7MDtMOzFGMDkgMDMwMDs7OztOOzs7OzFGMDM7CisxRjBDO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIE9YSUE7THU7MDtMOzFGMDggMDMwMTs7OztOOzs7OzFGMDQ7CisxRjBEO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIE9YSUE7THU7MDtMOzFGMDkgMDMwMTs7OztOOzs7OzFGMDU7CisxRjBFO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JO0x1OzA7TDsxRjA4IDAzNDI7Ozs7Tjs7OzsxRjA2OworMUYwRjtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSTtMdTswO0w7MUYwOSAwMzQyOzs7O047Ozs7MUYwNzsKKzFGMTA7R1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT04gV0lUSCBQU0lMSTtMbDswO0w7MDNCNSAwMzEzOzs7O047OzsxRjE4OzsxRjE4CisxRjExO0dSRUVLIFNNQUxMIExFVFRFUiBFUFNJTE9OIFdJVEggREFTSUE7TGw7MDtMOzAzQjUgMDMxNDs7OztOOzs7MUYxOTs7MUYxOQorMUYxMjtHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTiBXSVRIIFBTSUxJIEFORCBWQVJJQTtMbDswO0w7MUYxMCAwMzAwOzs7O047OzsxRjFBOzsxRjFBCisxRjEzO0dSRUVLIFNNQUxMIExFVFRFUiBFUFNJTE9OIFdJVEggREFTSUEgQU5EIFZBUklBO0xsOzA7TDsxRjExIDAzMDA7Ozs7Tjs7OzFGMUI7OzFGMUIKKzFGMTQ7R1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT04gV0lUSCBQU0lMSSBBTkQgT1hJQTtMbDswO0w7MUYxMCAwMzAxOzs7O047OzsxRjFDOzsxRjFDCisxRjE1O0dSRUVLIFNNQUxMIExFVFRFUiBFUFNJTE9OIFdJVEggREFTSUEgQU5EIE9YSUE7TGw7MDtMOzFGMTEgMDMwMTs7OztOOzs7MUYxRDs7MUYxRAorMUYxODtHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OIFdJVEggUFNJTEk7THU7MDtMOzAzOTUgMDMxMzs7OztOOzs7OzFGMTA7CisxRjE5O0dSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gV0lUSCBEQVNJQTtMdTswO0w7MDM5NSAwMzE0Ozs7O047Ozs7MUYxMTsKKzFGMUE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVBTSUxPTiBXSVRIIFBTSUxJIEFORCBWQVJJQTtMdTswO0w7MUYxOCAwMzAwOzs7O047Ozs7MUYxMjsKKzFGMUI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVBTSUxPTiBXSVRIIERBU0lBIEFORCBWQVJJQTtMdTswO0w7MUYxOSAwMzAwOzs7O047Ozs7MUYxMzsKKzFGMUM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVBTSUxPTiBXSVRIIFBTSUxJIEFORCBPWElBO0x1OzA7TDsxRjE4IDAzMDE7Ozs7Tjs7OzsxRjE0OworMUYxRDtHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OIFdJVEggREFTSUEgQU5EIE9YSUE7THU7MDtMOzFGMTkgMDMwMTs7OztOOzs7OzFGMTU7CisxRjIwO0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSTtMbDswO0w7MDNCNyAwMzEzOzs7O047OzsxRjI4OzsxRjI4CisxRjIxO0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQTtMbDswO0w7MDNCNyAwMzE0Ozs7O047OzsxRjI5OzsxRjI5CisxRjIyO0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgVkFSSUE7TGw7MDtMOzFGMjAgMDMwMDs7OztOOzs7MUYyQTs7MUYyQQorMUYyMztHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFZBUklBO0xsOzA7TDsxRjIxIDAzMDA7Ozs7Tjs7OzFGMkI7OzFGMkIKKzFGMjQ7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBPWElBO0xsOzA7TDsxRjIwIDAzMDE7Ozs7Tjs7OzFGMkM7OzFGMkMKKzFGMjU7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBPWElBO0xsOzA7TDsxRjIxIDAzMDE7Ozs7Tjs7OzFGMkQ7OzFGMkQKKzFGMjY7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MUYyMCAwMzQyOzs7O047OzsxRjJFOzsxRjJFCisxRjI3O0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkk7TGw7MDtMOzFGMjEgMDM0Mjs7OztOOzs7MUYyRjs7MUYyRgorMUYyODtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQU0lMSTtMdTswO0w7MDM5NyAwMzEzOzs7O047Ozs7MUYyMDsKKzFGMjk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggREFTSUE7THU7MDtMOzAzOTcgMDMxNDs7OztOOzs7OzFGMjE7CisxRjJBO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBWQVJJQTtMdTswO0w7MUYyOCAwMzAwOzs7O047Ozs7MUYyMjsKKzFGMkI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFZBUklBO0x1OzA7TDsxRjI5IDAzMDA7Ozs7Tjs7OzsxRjIzOworMUYyQztHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgT1hJQTtMdTswO0w7MUYyOCAwMzAxOzs7O047Ozs7MUYyNDsKKzFGMkQ7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIE9YSUE7THU7MDtMOzFGMjkgMDMwMTs7OztOOzs7OzFGMjU7CisxRjJFO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSTtMdTswO0w7MUYyOCAwMzQyOzs7O047Ozs7MUYyNjsKKzFGMkY7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JO0x1OzA7TDsxRjI5IDAzNDI7Ozs7Tjs7OzsxRjI3OworMUYzMDtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIFBTSUxJO0xsOzA7TDswM0I5IDAzMTM7Ozs7Tjs7OzFGMzg7OzFGMzgKKzFGMzE7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBEQVNJQTtMbDswO0w7MDNCOSAwMzE0Ozs7O047OzsxRjM5OzsxRjM5CisxRjMyO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggUFNJTEkgQU5EIFZBUklBO0xsOzA7TDsxRjMwIDAzMDA7Ozs7Tjs7OzFGM0E7OzFGM0EKKzFGMzM7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBEQVNJQSBBTkQgVkFSSUE7TGw7MDtMOzFGMzEgMDMwMDs7OztOOzs7MUYzQjs7MUYzQgorMUYzNDtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIFBTSUxJIEFORCBPWElBO0xsOzA7TDsxRjMwIDAzMDE7Ozs7Tjs7OzFGM0M7OzFGM0MKKzFGMzU7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBEQVNJQSBBTkQgT1hJQTtMbDswO0w7MUYzMSAwMzAxOzs7O047OzsxRjNEOzsxRjNECisxRjM2O0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JO0xsOzA7TDsxRjMwIDAzNDI7Ozs7Tjs7OzFGM0U7OzFGM0UKKzFGMzc7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkk7TGw7MDtMOzFGMzEgMDM0Mjs7OztOOzs7MUYzRjs7MUYzRgorMUYzODtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggUFNJTEk7THU7MDtMOzAzOTkgMDMxMzs7OztOOzs7OzFGMzA7CisxRjM5O0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBEQVNJQTtMdTswO0w7MDM5OSAwMzE0Ozs7O047Ozs7MUYzMTsKKzFGM0E7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIFBTSUxJIEFORCBWQVJJQTtMdTswO0w7MUYzOCAwMzAwOzs7O047Ozs7MUYzMjsKKzFGM0I7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIERBU0lBIEFORCBWQVJJQTtMdTswO0w7MUYzOSAwMzAwOzs7O047Ozs7MUYzMzsKKzFGM0M7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIFBTSUxJIEFORCBPWElBO0x1OzA7TDsxRjM4IDAzMDE7Ozs7Tjs7OzsxRjM0OworMUYzRDtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggREFTSUEgQU5EIE9YSUE7THU7MDtMOzFGMzkgMDMwMTs7OztOOzs7OzFGMzU7CisxRjNFO0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkk7THU7MDtMOzFGMzggMDM0Mjs7OztOOzs7OzFGMzY7CisxRjNGO0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkk7THU7MDtMOzFGMzkgMDM0Mjs7OztOOzs7OzFGMzc7CisxRjQwO0dSRUVLIFNNQUxMIExFVFRFUiBPTUlDUk9OIFdJVEggUFNJTEk7TGw7MDtMOzAzQkYgMDMxMzs7OztOOzs7MUY0ODs7MUY0OAorMUY0MTtHUkVFSyBTTUFMTCBMRVRURVIgT01JQ1JPTiBXSVRIIERBU0lBO0xsOzA7TDswM0JGIDAzMTQ7Ozs7Tjs7OzFGNDk7OzFGNDkKKzFGNDI7R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gV0lUSCBQU0lMSSBBTkQgVkFSSUE7TGw7MDtMOzFGNDAgMDMwMDs7OztOOzs7MUY0QTs7MUY0QQorMUY0MztHUkVFSyBTTUFMTCBMRVRURVIgT01JQ1JPTiBXSVRIIERBU0lBIEFORCBWQVJJQTtMbDswO0w7MUY0MSAwMzAwOzs7O047OzsxRjRCOzsxRjRCCisxRjQ0O0dSRUVLIFNNQUxMIExFVFRFUiBPTUlDUk9OIFdJVEggUFNJTEkgQU5EIE9YSUE7TGw7MDtMOzFGNDAgMDMwMTs7OztOOzs7MUY0Qzs7MUY0QworMUY0NTtHUkVFSyBTTUFMTCBMRVRURVIgT01JQ1JPTiBXSVRIIERBU0lBIEFORCBPWElBO0xsOzA7TDsxRjQxIDAzMDE7Ozs7Tjs7OzFGNEQ7OzFGNEQKKzFGNDg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTiBXSVRIIFBTSUxJO0x1OzA7TDswMzlGIDAzMTM7Ozs7Tjs7OzsxRjQwOworMUY0OTtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OIFdJVEggREFTSUE7THU7MDtMOzAzOUYgMDMxNDs7OztOOzs7OzFGNDE7CisxRjRBO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NSUNST04gV0lUSCBQU0lMSSBBTkQgVkFSSUE7THU7MDtMOzFGNDggMDMwMDs7OztOOzs7OzFGNDI7CisxRjRCO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NSUNST04gV0lUSCBEQVNJQSBBTkQgVkFSSUE7THU7MDtMOzFGNDkgMDMwMDs7OztOOzs7OzFGNDM7CisxRjRDO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NSUNST04gV0lUSCBQU0lMSSBBTkQgT1hJQTtMdTswO0w7MUY0OCAwMzAxOzs7O047Ozs7MUY0NDsKKzFGNEQ7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTiBXSVRIIERBU0lBIEFORCBPWElBO0x1OzA7TDsxRjQ5IDAzMDE7Ozs7Tjs7OzsxRjQ1OworMUY1MDtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIFBTSUxJO0xsOzA7TDswM0M1IDAzMTM7Ozs7Tjs7Ozs7CisxRjUxO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggREFTSUE7TGw7MDtMOzAzQzUgMDMxNDs7OztOOzs7MUY1OTs7MUY1OQorMUY1MjtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIFBTSUxJIEFORCBWQVJJQTtMbDswO0w7MUY1MCAwMzAwOzs7O047Ozs7OworMUY1MztHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIERBU0lBIEFORCBWQVJJQTtMbDswO0w7MUY1MSAwMzAwOzs7O047OzsxRjVCOzsxRjVCCisxRjU0O0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggUFNJTEkgQU5EIE9YSUE7TGw7MDtMOzFGNTAgMDMwMTs7OztOOzs7OzsKKzFGNTU7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBEQVNJQSBBTkQgT1hJQTtMbDswO0w7MUY1MSAwMzAxOzs7O047OzsxRjVEOzsxRjVECisxRjU2O0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JO0xsOzA7TDsxRjUwIDAzNDI7Ozs7Tjs7Ozs7CisxRjU3O0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JO0xsOzA7TDsxRjUxIDAzNDI7Ozs7Tjs7OzFGNUY7OzFGNUYKKzFGNTk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBXSVRIIERBU0lBO0x1OzA7TDswM0E1IDAzMTQ7Ozs7Tjs7OzsxRjUxOworMUY1QjtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIFdJVEggREFTSUEgQU5EIFZBUklBO0x1OzA7TDsxRjU5IDAzMDA7Ozs7Tjs7OzsxRjUzOworMUY1RDtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIFdJVEggREFTSUEgQU5EIE9YSUE7THU7MDtMOzFGNTkgMDMwMTs7OztOOzs7OzFGNTU7CisxRjVGO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkk7THU7MDtMOzFGNTkgMDM0Mjs7OztOOzs7OzFGNTc7CisxRjYwO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJO0xsOzA7TDswM0M5IDAzMTM7Ozs7Tjs7OzFGNjg7OzFGNjgKKzFGNjE7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUE7TGw7MDtMOzAzQzkgMDMxNDs7OztOOzs7MUY2OTs7MUY2OQorMUY2MjtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgVkFSSUE7TGw7MDtMOzFGNjAgMDMwMDs7OztOOzs7MUY2QTs7MUY2QQorMUY2MztHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgVkFSSUE7TGw7MDtMOzFGNjEgMDMwMDs7OztOOzs7MUY2Qjs7MUY2QgorMUY2NDtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgT1hJQTtMbDswO0w7MUY2MCAwMzAxOzs7O047OzsxRjZDOzsxRjZDCisxRjY1O0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBPWElBO0xsOzA7TDsxRjYxIDAzMDE7Ozs7Tjs7OzFGNkQ7OzFGNkQKKzFGNjY7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JO0xsOzA7TDsxRjYwIDAzNDI7Ozs7Tjs7OzFGNkU7OzFGNkUKKzFGNjc7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JO0xsOzA7TDsxRjYxIDAzNDI7Ozs7Tjs7OzFGNkY7OzFGNkYKKzFGNjg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSTtMdTswO0w7MDNBOSAwMzEzOzs7O047Ozs7MUY2MDsKKzFGNjk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQTtMdTswO0w7MDNBOSAwMzE0Ozs7O047Ozs7MUY2MTsKKzFGNkE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgVkFSSUE7THU7MDtMOzFGNjggMDMwMDs7OztOOzs7OzFGNjI7CisxRjZCO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFZBUklBO0x1OzA7TDsxRjY5IDAzMDA7Ozs7Tjs7OzsxRjYzOworMUY2QztHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBPWElBO0x1OzA7TDsxRjY4IDAzMDE7Ozs7Tjs7OzsxRjY0OworMUY2RDtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBPWElBO0x1OzA7TDsxRjY5IDAzMDE7Ozs7Tjs7OzsxRjY1OworMUY2RTtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSTtMdTswO0w7MUY2OCAwMzQyOzs7O047Ozs7MUY2NjsKKzFGNkY7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkk7THU7MDtMOzFGNjkgMDM0Mjs7OztOOzs7OzFGNjc7CisxRjcwO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFZBUklBO0xsOzA7TDswM0IxIDAzMDA7Ozs7Tjs7OzFGQkE7OzFGQkEKKzFGNzE7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggT1hJQTtMbDswO0w7MDNBQzs7OztOOzs7MUZCQjs7MUZCQgorMUY3MjtHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTiBXSVRIIFZBUklBO0xsOzA7TDswM0I1IDAzMDA7Ozs7Tjs7OzFGQzg7OzFGQzgKKzFGNzM7R1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT04gV0lUSCBPWElBO0xsOzA7TDswM0FEOzs7O047OzsxRkM5OzsxRkM5CisxRjc0O0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBWQVJJQTtMbDswO0w7MDNCNyAwMzAwOzs7O047OzsxRkNBOzsxRkNBCisxRjc1O0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBPWElBO0xsOzA7TDswM0FFOzs7O047OzsxRkNCOzsxRkNCCisxRjc2O0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggVkFSSUE7TGw7MDtMOzAzQjkgMDMwMDs7OztOOzs7MUZEQTs7MUZEQQorMUY3NztHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIE9YSUE7TGw7MDtMOzAzQUY7Ozs7Tjs7OzFGREI7OzFGREIKKzFGNzg7R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gV0lUSCBWQVJJQTtMbDswO0w7MDNCRiAwMzAwOzs7O047OzsxRkY4OzsxRkY4CisxRjc5O0dSRUVLIFNNQUxMIExFVFRFUiBPTUlDUk9OIFdJVEggT1hJQTtMbDswO0w7MDNDQzs7OztOOzs7MUZGOTs7MUZGOQorMUY3QTtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIFZBUklBO0xsOzA7TDswM0M1IDAzMDA7Ozs7Tjs7OzFGRUE7OzFGRUEKKzFGN0I7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBPWElBO0xsOzA7TDswM0NEOzs7O047OzsxRkVCOzsxRkVCCisxRjdDO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFZBUklBO0xsOzA7TDswM0M5IDAzMDA7Ozs7Tjs7OzFGRkE7OzFGRkEKKzFGN0Q7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggT1hJQTtMbDswO0w7MDNDRTs7OztOOzs7MUZGQjs7MUZGQgorMUY4MDtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYwMCAwMzQ1Ozs7O047OzsxRjg4OzsxRjg4CisxRjgxO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjAxIDAzNDU7Ozs7Tjs7OzFGODk7OzFGODkKKzFGODI7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjAyIDAzNDU7Ozs7Tjs7OzFGOEE7OzFGOEEKKzFGODM7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjAzIDAzNDU7Ozs7Tjs7OzFGOEI7OzFGOEIKKzFGODQ7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMDQgMDM0NTs7OztOOzs7MUY4Qzs7MUY4QworMUY4NTtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgT1hJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYwNSAwMzQ1Ozs7O047OzsxRjhEOzsxRjhECisxRjg2O0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYwNiAwMzQ1Ozs7O047OzsxRjhFOzsxRjhFCisxRjg3O0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYwNyAwMzQ1Ozs7O047OzsxRjhGOzsxRjhGCisxRjg4O0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjA4IDAzNDU7Ozs7Tjs7OzsxRjgwOworMUY4OTtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUYwOSAwMzQ1Ozs7O047Ozs7MUY4MTsKKzFGOEE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgVkFSSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjBBIDAzNDU7Ozs7Tjs7OzsxRjgyOworMUY4QjtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBWQVJJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGMEIgMDM0NTs7OztOOzs7OzFGODM7CisxRjhDO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIE9YSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjBDIDAzNDU7Ozs7Tjs7OzsxRjg0OworMUY4RDtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBPWElBIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUYwRCAwMzQ1Ozs7O047Ozs7MUY4NTsKKzFGOEU7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkkgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjBFIDAzNDU7Ozs7Tjs7OzsxRjg2OworMUY4RjtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGMEYgMDM0NTs7OztOOzs7OzFGODc7CisxRjkwO0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYyMCAwMzQ1Ozs7O047OzsxRjk4OzsxRjk4CisxRjkxO0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYyMSAwMzQ1Ozs7O047OzsxRjk5OzsxRjk5CisxRjkyO0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMjIgMDM0NTs7OztOOzs7MUY5QTs7MUY5QQorMUY5MztHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjIzIDAzNDU7Ozs7Tjs7OzFGOUI7OzFGOUIKKzFGOTQ7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBPWElBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjI0IDAzNDU7Ozs7Tjs7OzFGOUM7OzFGOUMKKzFGOTU7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBPWElBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjI1IDAzNDU7Ozs7Tjs7OzFGOUQ7OzFGOUQKKzFGOTY7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYyNiAwMzQ1Ozs7O047OzsxRjlFOzsxRjlFCisxRjk3O0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMjcgMDM0NTs7OztOOzs7MUY5Rjs7MUY5RgorMUY5ODtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGMjggMDM0NTs7OztOOzs7OzFGOTA7CisxRjk5O0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUYyOSAwMzQ1Ozs7O047Ozs7MUY5MTsKKzFGOUE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFZBUklBIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUYyQSAwMzQ1Ozs7O047Ozs7MUY5MjsKKzFGOUI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFZBUklBIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUYyQiAwMzQ1Ozs7O047Ozs7MUY5MzsKKzFGOUM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIE9YSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjJDIDAzNDU7Ozs7Tjs7OzsxRjk0OworMUY5RDtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgT1hJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGMkQgMDM0NTs7OztOOzs7OzFGOTU7CisxRjlFO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGMkUgMDM0NTs7OztOOzs7OzFGOTY7CisxRjlGO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGMkYgMDM0NTs7OztOOzs7OzFGOTc7CisxRkEwO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjYwIDAzNDU7Ozs7Tjs7OzFGQTg7OzFGQTgKKzFGQTE7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGNjEgMDM0NTs7OztOOzs7MUZBOTs7MUZBOQorMUZBMjtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGNjIgMDM0NTs7OztOOzs7MUZBQTs7MUZBQQorMUZBMztHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGNjMgMDM0NTs7OztOOzs7MUZBQjs7MUZBQgorMUZBNDtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgT1hJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUY2NCAwMzQ1Ozs7O047OzsxRkFDOzsxRkFDCisxRkE1O0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBPWElBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjY1IDAzNDU7Ozs7Tjs7OzFGQUQ7OzFGQUQKKzFGQTY7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjY2IDAzNDU7Ozs7Tjs7OzFGQUU7OzFGQUUKKzFGQTc7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjY3IDAzNDU7Ozs7Tjs7OzFGQUY7OzFGQUYKKzFGQTg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGNjggMDM0NTs7OztOOzs7OzFGQTA7CisxRkE5O0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjY5IDAzNDU7Ozs7Tjs7OzsxRkExOworMUZBQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBWQVJJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGNkEgMDM0NTs7OztOOzs7OzFGQTI7CisxRkFCO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFZBUklBIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUY2QiAwMzQ1Ozs7O047Ozs7MUZBMzsKKzFGQUM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgT1hJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGNkMgMDM0NTs7OztOOzs7OzFGQTQ7CisxRkFEO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjZEIDAzNDU7Ozs7Tjs7OzsxRkE1OworMUZBRTtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGNkUgMDM0NTs7OztOOzs7OzFGQTY7CisxRkFGO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUY2RiAwMzQ1Ozs7O047Ozs7MUZBNzsKKzFGQjA7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggVlJBQ0hZO0xsOzA7TDswM0IxIDAzMDY7Ozs7Tjs7OzFGQjg7OzFGQjgKKzFGQjE7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggTUFDUk9OO0xsOzA7TDswM0IxIDAzMDQ7Ozs7Tjs7OzFGQjk7OzFGQjkKKzFGQjI7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGNzAgMDM0NTs7OztOOzs7OzsKKzFGQjM7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggWVBPR0VHUkFNTUVOSTtMbDswO0w7MDNCMSAwMzQ1Ozs7O047OzsxRkJDOzsxRkJDCisxRkI0O0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzAzQUMgMDM0NTs7OztOOzs7OzsKKzFGQjY7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUEVSSVNQT01FTkk7TGw7MDtMOzAzQjEgMDM0Mjs7OztOOzs7OzsKKzFGQjc7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGQjYgMDM0NTs7OztOOzs7OzsKKzFGQjg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBWUkFDSFk7THU7MDtMOzAzOTEgMDMwNjs7OztOOzs7OzFGQjA7CisxRkI5O0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggTUFDUk9OO0x1OzA7TDswMzkxIDAzMDQ7Ozs7Tjs7OzsxRkIxOworMUZCQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFZBUklBO0x1OzA7TDswMzkxIDAzMDA7Ozs7Tjs7OzsxRjcwOworMUZCQjtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIE9YSUE7THU7MDtMOzAzODY7Ozs7Tjs7OzsxRjcxOworMUZCQztHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFBST1NHRUdSQU1NRU5JO0x0OzA7TDswMzkxIDAzNDU7Ozs7Tjs7OzsxRkIzOworMUZCRDtHUkVFSyBLT1JPTklTO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzEzOzs7O047Ozs7OworMUZCRTtHUkVFSyBQUk9TR0VHUkFNTUVOSTtMbDswO0w7MDNCOTs7OztOOzs7MDM5OTs7MDM5OQorMUZCRjtHUkVFSyBQU0lMSTtTazswO09OOzxjb21wYXQ+IDAwMjAgMDMxMzs7OztOOzs7OzsKKzFGQzA7R1JFRUsgUEVSSVNQT01FTkk7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzNDI7Ozs7Tjs7Ozs7CisxRkMxO0dSRUVLIERJQUxZVElLQSBBTkQgUEVSSVNQT01FTkk7U2s7MDtPTjswMEE4IDAzNDI7Ozs7Tjs7Ozs7CisxRkMyO0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUY3NCAwMzQ1Ozs7O047Ozs7OworMUZDMztHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggWVBPR0VHUkFNTUVOSTtMbDswO0w7MDNCNyAwMzQ1Ozs7O047OzsxRkNDOzsxRkNDCisxRkM0O0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBPWElBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDswM0FFIDAzNDU7Ozs7Tjs7Ozs7CisxRkM2O0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQRVJJU1BPTUVOSTtMbDswO0w7MDNCNyAwMzQyOzs7O047Ozs7OworMUZDNztHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGQzYgMDM0NTs7OztOOzs7OzsKKzFGQzg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVBTSUxPTiBXSVRIIFZBUklBO0x1OzA7TDswMzk1IDAzMDA7Ozs7Tjs7OzsxRjcyOworMUZDOTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OIFdJVEggT1hJQTtMdTswO0w7MDM4ODs7OztOOzs7OzFGNzM7CisxRkNBO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFZBUklBO0x1OzA7TDswMzk3IDAzMDA7Ozs7Tjs7OzsxRjc0OworMUZDQjtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBPWElBO0x1OzA7TDswMzg5Ozs7O047Ozs7MUY3NTsKKzFGQ0M7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzAzOTcgMDM0NTs7OztOOzs7OzFGQzM7CisxRkNEO0dSRUVLIFBTSUxJIEFORCBWQVJJQTtTazswO09OOzFGQkYgMDMwMDs7OztOOzs7OzsKKzFGQ0U7R1JFRUsgUFNJTEkgQU5EIE9YSUE7U2s7MDtPTjsxRkJGIDAzMDE7Ozs7Tjs7Ozs7CisxRkNGO0dSRUVLIFBTSUxJIEFORCBQRVJJU1BPTUVOSTtTazswO09OOzFGQkYgMDM0Mjs7OztOOzs7OzsKKzFGRDA7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBWUkFDSFk7TGw7MDtMOzAzQjkgMDMwNjs7OztOOzs7MUZEODs7MUZEOAorMUZEMTtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIE1BQ1JPTjtMbDswO0w7MDNCOSAwMzA0Ozs7O047OzsxRkQ5OzsxRkQ5CisxRkQyO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggRElBTFlUSUtBIEFORCBWQVJJQTtMbDswO0w7MDNDQSAwMzAwOzs7O047Ozs7OworMUZEMztHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERJQUxZVElLQSBBTkQgT1hJQTtMbDswO0w7MDM5MDs7OztOOzs7OzsKKzFGRDY7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBQRVJJU1BPTUVOSTtMbDswO0w7MDNCOSAwMzQyOzs7O047Ozs7OworMUZENztHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERJQUxZVElLQSBBTkQgUEVSSVNQT01FTkk7TGw7MDtMOzAzQ0EgMDM0Mjs7OztOOzs7OzsKKzFGRDg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIFZSQUNIWTtMdTswO0w7MDM5OSAwMzA2Ozs7O047Ozs7MUZEMDsKKzFGRDk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIE1BQ1JPTjtMdTswO0w7MDM5OSAwMzA0Ozs7O047Ozs7MUZEMTsKKzFGREE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIFZBUklBO0x1OzA7TDswMzk5IDAzMDA7Ozs7Tjs7OzsxRjc2OworMUZEQjtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggT1hJQTtMdTswO0w7MDM4QTs7OztOOzs7OzFGNzc7CisxRkREO0dSRUVLIERBU0lBIEFORCBWQVJJQTtTazswO09OOzFGRkUgMDMwMDs7OztOOzs7OzsKKzFGREU7R1JFRUsgREFTSUEgQU5EIE9YSUE7U2s7MDtPTjsxRkZFIDAzMDE7Ozs7Tjs7Ozs7CisxRkRGO0dSRUVLIERBU0lBIEFORCBQRVJJU1BPTUVOSTtTazswO09OOzFGRkUgMDM0Mjs7OztOOzs7OzsKKzFGRTA7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBWUkFDSFk7TGw7MDtMOzAzQzUgMDMwNjs7OztOOzs7MUZFODs7MUZFOAorMUZFMTtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIE1BQ1JPTjtMbDswO0w7MDNDNSAwMzA0Ozs7O047OzsxRkU5OzsxRkU5CisxRkUyO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggRElBTFlUSUtBIEFORCBWQVJJQTtMbDswO0w7MDNDQiAwMzAwOzs7O047Ozs7OworMUZFMztHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIERJQUxZVElLQSBBTkQgT1hJQTtMbDswO0w7MDNCMDs7OztOOzs7OzsKKzFGRTQ7R1JFRUsgU01BTEwgTEVUVEVSIFJITyBXSVRIIFBTSUxJO0xsOzA7TDswM0MxIDAzMTM7Ozs7Tjs7Ozs7CisxRkU1O0dSRUVLIFNNQUxMIExFVFRFUiBSSE8gV0lUSCBEQVNJQTtMbDswO0w7MDNDMSAwMzE0Ozs7O047OzsxRkVDOzsxRkVDCisxRkU2O0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggUEVSSVNQT01FTkk7TGw7MDtMOzAzQzUgMDM0Mjs7OztOOzs7OzsKKzFGRTc7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBESUFMWVRJS0EgQU5EIFBFUklTUE9NRU5JO0xsOzA7TDswM0NCIDAzNDI7Ozs7Tjs7Ozs7CisxRkU4O0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gV0lUSCBWUkFDSFk7THU7MDtMOzAzQTUgMDMwNjs7OztOOzs7OzFGRTA7CisxRkU5O0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gV0lUSCBNQUNST047THU7MDtMOzAzQTUgMDMwNDs7OztOOzs7OzFGRTE7CisxRkVBO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gV0lUSCBWQVJJQTtMdTswO0w7MDNBNSAwMzAwOzs7O047Ozs7MUY3QTsKKzFGRUI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBXSVRIIE9YSUE7THU7MDtMOzAzOEU7Ozs7Tjs7OzsxRjdCOworMUZFQztHUkVFSyBDQVBJVEFMIExFVFRFUiBSSE8gV0lUSCBEQVNJQTtMdTswO0w7MDNBMSAwMzE0Ozs7O047Ozs7MUZFNTsKKzFGRUQ7R1JFRUsgRElBTFlUSUtBIEFORCBWQVJJQTtTazswO09OOzAwQTggMDMwMDs7OztOOzs7OzsKKzFGRUU7R1JFRUsgRElBTFlUSUtBIEFORCBPWElBO1NrOzA7T047MDM4NTs7OztOOzs7OzsKKzFGRUY7R1JFRUsgVkFSSUE7U2s7MDtPTjswMDYwOzs7O047Ozs7OworMUZGMjtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUY3QyAwMzQ1Ozs7O047Ozs7OworMUZGMztHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBZUE9HRUdSQU1NRU5JO0xsOzA7TDswM0M5IDAzNDU7Ozs7Tjs7OzFGRkM7OzFGRkMKKzFGRjQ7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggT1hJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MDNDRSAwMzQ1Ozs7O047Ozs7OworMUZGNjtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQRVJJU1BPTUVOSTtMbDswO0w7MDNDOSAwMzQyOzs7O047Ozs7OworMUZGNztHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUZGNiAwMzQ1Ozs7O047Ozs7OworMUZGODtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OIFdJVEggVkFSSUE7THU7MDtMOzAzOUYgMDMwMDs7OztOOzs7OzFGNzg7CisxRkY5O0dSRUVLIENBUElUQUwgTEVUVEVSIE9NSUNST04gV0lUSCBPWElBO0x1OzA7TDswMzhDOzs7O047Ozs7MUY3OTsKKzFGRkE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBWQVJJQTtMdTswO0w7MDNBOSAwMzAwOzs7O047Ozs7MUY3QzsKKzFGRkI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBPWElBO0x1OzA7TDswMzhGOzs7O047Ozs7MUY3RDsKKzFGRkM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MDNBOSAwMzQ1Ozs7O047Ozs7MUZGMzsKKzFGRkQ7R1JFRUsgT1hJQTtTazswO09OOzAwQjQ7Ozs7Tjs7Ozs7CisxRkZFO0dSRUVLIERBU0lBO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzE0Ozs7O047Ozs7OworMjAwMDtFTiBRVUFEO1pzOzA7V1M7MjAwMjs7OztOOzs7OzsKKzIwMDE7RU0gUVVBRDtaczswO1dTOzIwMDM7Ozs7Tjs7Ozs7CisyMDAyO0VOIFNQQUNFO1pzOzA7V1M7PGNvbXBhdD4gMDAyMDs7OztOOzs7OzsKKzIwMDM7RU0gU1BBQ0U7WnM7MDtXUzs8Y29tcGF0PiAwMDIwOzs7O047Ozs7OworMjAwNDtUSFJFRS1QRVItRU0gU1BBQ0U7WnM7MDtXUzs8Y29tcGF0PiAwMDIwOzs7O047Ozs7OworMjAwNTtGT1VSLVBFUi1FTSBTUEFDRTtaczswO1dTOzxjb21wYXQ+IDAwMjA7Ozs7Tjs7Ozs7CisyMDA2O1NJWC1QRVItRU0gU1BBQ0U7WnM7MDtXUzs8Y29tcGF0PiAwMDIwOzs7O047Ozs7OworMjAwNztGSUdVUkUgU1BBQ0U7WnM7MDtXUzs8bm9CcmVhaz4gMDAyMDs7OztOOzs7OzsKKzIwMDg7UFVOQ1RVQVRJT04gU1BBQ0U7WnM7MDtXUzs8Y29tcGF0PiAwMDIwOzs7O047Ozs7OworMjAwOTtUSElOIFNQQUNFO1pzOzA7V1M7PGNvbXBhdD4gMDAyMDs7OztOOzs7OzsKKzIwMEE7SEFJUiBTUEFDRTtaczswO1dTOzxjb21wYXQ+IDAwMjA7Ozs7Tjs7Ozs7CisyMDBCO1pFUk8gV0lEVEggU1BBQ0U7WnM7MDtCTjs7Ozs7Tjs7Ozs7CisyMDBDO1pFUk8gV0lEVEggTk9OLUpPSU5FUjtDZjswO0JOOzs7OztOOzs7OzsKKzIwMEQ7WkVSTyBXSURUSCBKT0lORVI7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisyMDBFO0xFRlQtVE8tUklHSFQgTUFSSztDZjswO0w7Ozs7O047Ozs7OworMjAwRjtSSUdIVC1UTy1MRUZUIE1BUks7Q2Y7MDtSOzs7OztOOzs7OzsKKzIwMTA7SFlQSEVOO1BkOzA7T047Ozs7O047Ozs7OworMjAxMTtOT04tQlJFQUtJTkcgSFlQSEVOO1BkOzA7T047PG5vQnJlYWs+IDIwMTA7Ozs7Tjs7Ozs7CisyMDEyO0ZJR1VSRSBEQVNIO1BkOzA7T047Ozs7O047Ozs7OworMjAxMztFTiBEQVNIO1BkOzA7T047Ozs7O047Ozs7OworMjAxNDtFTSBEQVNIO1BkOzA7T047Ozs7O047Ozs7OworMjAxNTtIT1JJWk9OVEFMIEJBUjtQZDswO09OOzs7OztOO1FVT1RBVElPTiBEQVNIOzs7OworMjAxNjtET1VCTEUgVkVSVElDQUwgTElORTtQbzswO09OOzs7OztOO0RPVUJMRSBWRVJUSUNBTCBCQVI7Ozs7CisyMDE3O0RPVUJMRSBMT1cgTElORTtQbzswO09OOzxjb21wYXQ+IDAwMjAgMDMzMzs7OztOO1NQQUNJTkcgRE9VQkxFIFVOREVSU0NPUkU7Ozs7CisyMDE4O0xFRlQgU0lOR0xFIFFVT1RBVElPTiBNQVJLO1BpOzA7T047Ozs7O047U0lOR0xFIFRVUk5FRCBDT01NQSBRVU9UQVRJT04gTUFSSzs7OzsKKzIwMTk7UklHSFQgU0lOR0xFIFFVT1RBVElPTiBNQVJLO1BmOzA7T047Ozs7O047U0lOR0xFIENPTU1BIFFVT1RBVElPTiBNQVJLOzs7OworMjAxQTtTSU5HTEUgTE9XLTkgUVVPVEFUSU9OIE1BUks7UHM7MDtPTjs7Ozs7TjtMT1cgU0lOR0xFIENPTU1BIFFVT1RBVElPTiBNQVJLOzs7OworMjAxQjtTSU5HTEUgSElHSC1SRVZFUlNFRC05IFFVT1RBVElPTiBNQVJLO1BpOzA7T047Ozs7O047U0lOR0xFIFJFVkVSU0VEIENPTU1BIFFVT1RBVElPTiBNQVJLOzs7OworMjAxQztMRUZUIERPVUJMRSBRVU9UQVRJT04gTUFSSztQaTswO09OOzs7OztOO0RPVUJMRSBUVVJORUQgQ09NTUEgUVVPVEFUSU9OIE1BUks7Ozs7CisyMDFEO1JJR0hUIERPVUJMRSBRVU9UQVRJT04gTUFSSztQZjswO09OOzs7OztOO0RPVUJMRSBDT01NQSBRVU9UQVRJT04gTUFSSzs7OzsKKzIwMUU7RE9VQkxFIExPVy05IFFVT1RBVElPTiBNQVJLO1BzOzA7T047Ozs7O047TE9XIERPVUJMRSBDT01NQSBRVU9UQVRJT04gTUFSSzs7OzsKKzIwMUY7RE9VQkxFIEhJR0gtUkVWRVJTRUQtOSBRVU9UQVRJT04gTUFSSztQaTswO09OOzs7OztOO0RPVUJMRSBSRVZFUlNFRCBDT01NQSBRVU9UQVRJT04gTUFSSzs7OzsKKzIwMjA7REFHR0VSO1BvOzA7T047Ozs7O047Ozs7OworMjAyMTtET1VCTEUgREFHR0VSO1BvOzA7T047Ozs7O047Ozs7OworMjAyMjtCVUxMRVQ7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDIzO1RSSUFOR1VMQVIgQlVMTEVUO1BvOzA7T047Ozs7O047Ozs7OworMjAyNDtPTkUgRE9UIExFQURFUjtQbzswO09OOzxjb21wYXQ+IDAwMkU7Ozs7Tjs7Ozs7CisyMDI1O1RXTyBET1QgTEVBREVSO1BvOzA7T047PGNvbXBhdD4gMDAyRSAwMDJFOzs7O047Ozs7OworMjAyNjtIT1JJWk9OVEFMIEVMTElQU0lTO1BvOzA7T047PGNvbXBhdD4gMDAyRSAwMDJFIDAwMkU7Ozs7Tjs7Ozs7CisyMDI3O0hZUEhFTkFUSU9OIFBPSU5UO1BvOzA7T047Ozs7O047Ozs7OworMjAyODtMSU5FIFNFUEFSQVRPUjtabDswO1dTOzs7OztOOzs7OzsKKzIwMjk7UEFSQUdSQVBIIFNFUEFSQVRPUjtacDswO0I7Ozs7O047Ozs7OworMjAyQTtMRUZULVRPLVJJR0hUIEVNQkVERElORztDZjswO0xSRTs7Ozs7Tjs7Ozs7CisyMDJCO1JJR0hULVRPLUxFRlQgRU1CRURESU5HO0NmOzA7UkxFOzs7OztOOzs7OzsKKzIwMkM7UE9QIERJUkVDVElPTkFMIEZPUk1BVFRJTkc7Q2Y7MDtQREY7Ozs7O047Ozs7OworMjAyRDtMRUZULVRPLVJJR0hUIE9WRVJSSURFO0NmOzA7TFJPOzs7OztOOzs7OzsKKzIwMkU7UklHSFQtVE8tTEVGVCBPVkVSUklERTtDZjswO1JMTzs7Ozs7Tjs7Ozs7CisyMDJGO05BUlJPVyBOTy1CUkVBSyBTUEFDRTtaczswO1dTOzxub0JyZWFrPiAwMDIwOzs7O047Ozs7OworMjAzMDtQRVIgTUlMTEUgU0lHTjtQbzswO0VUOzs7OztOOzs7OzsKKzIwMzE7UEVSIFRFTiBUSE9VU0FORCBTSUdOO1BvOzA7RVQ7Ozs7O047Ozs7OworMjAzMjtQUklNRTtQbzswO0VUOzs7OztOOzs7OzsKKzIwMzM7RE9VQkxFIFBSSU1FO1BvOzA7RVQ7PGNvbXBhdD4gMjAzMiAyMDMyOzs7O047Ozs7OworMjAzNDtUUklQTEUgUFJJTUU7UG87MDtFVDs8Y29tcGF0PiAyMDMyIDIwMzIgMjAzMjs7OztOOzs7OzsKKzIwMzU7UkVWRVJTRUQgUFJJTUU7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDM2O1JFVkVSU0VEIERPVUJMRSBQUklNRTtQbzswO09OOzxjb21wYXQ+IDIwMzUgMjAzNTs7OztOOzs7OzsKKzIwMzc7UkVWRVJTRUQgVFJJUExFIFBSSU1FO1BvOzA7T047PGNvbXBhdD4gMjAzNSAyMDM1IDIwMzU7Ozs7Tjs7Ozs7CisyMDM4O0NBUkVUO1BvOzA7T047Ozs7O047Ozs7OworMjAzOTtTSU5HTEUgTEVGVC1QT0lOVElORyBBTkdMRSBRVU9UQVRJT04gTUFSSztQaTswO09OOzs7OztZO0xFRlQgUE9JTlRJTkcgU0lOR0xFIEdVSUxMRU1FVDs7OzsKKzIwM0E7U0lOR0xFIFJJR0hULVBPSU5USU5HIEFOR0xFIFFVT1RBVElPTiBNQVJLO1BmOzA7T047Ozs7O1k7UklHSFQgUE9JTlRJTkcgU0lOR0xFIEdVSUxMRU1FVDs7OzsKKzIwM0I7UkVGRVJFTkNFIE1BUks7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDNDO0RPVUJMRSBFWENMQU1BVElPTiBNQVJLO1BvOzA7T047PGNvbXBhdD4gMDAyMSAwMDIxOzs7O047Ozs7OworMjAzRDtJTlRFUlJPQkFORztQbzswO09OOzs7OztOOzs7OzsKKzIwM0U7T1ZFUkxJTkU7UG87MDtPTjs8Y29tcGF0PiAwMDIwIDAzMDU7Ozs7TjtTUEFDSU5HIE9WRVJTQ09SRTs7OzsKKzIwM0Y7VU5ERVJUSUU7UGM7MDtPTjs7Ozs7Tjs7RW5vdGlrb247OzsKKzIwNDA7Q0hBUkFDVEVSIFRJRTtQYzswO09OOzs7OztOOzs7OzsKKzIwNDE7Q0FSRVQgSU5TRVJUSU9OIFBPSU5UO1BvOzA7T047Ozs7O047Ozs7OworMjA0MjtBU1RFUklTTTtQbzswO09OOzs7OztOOzs7OzsKKzIwNDM7SFlQSEVOIEJVTExFVDtQbzswO09OOzs7OztOOzs7OzsKKzIwNDQ7RlJBQ1RJT04gU0xBU0g7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMDQ1O0xFRlQgU1FVQVJFIEJSQUNLRVQgV0lUSCBRVUlMTDtQczswO09OOzs7OztZOzs7OzsKKzIwNDY7UklHSFQgU1FVQVJFIEJSQUNLRVQgV0lUSCBRVUlMTDtQZTswO09OOzs7OztZOzs7OzsKKzIwNDc7RE9VQkxFIFFVRVNUSU9OIE1BUks7UG87MDtPTjs8Y29tcGF0PiAwMDNGIDAwM0Y7Ozs7Tjs7Ozs7CisyMDQ4O1FVRVNUSU9OIEVYQ0xBTUFUSU9OIE1BUks7UG87MDtPTjs8Y29tcGF0PiAwMDNGIDAwMjE7Ozs7Tjs7Ozs7CisyMDQ5O0VYQ0xBTUFUSU9OIFFVRVNUSU9OIE1BUks7UG87MDtPTjs8Y29tcGF0PiAwMDIxIDAwM0Y7Ozs7Tjs7Ozs7CisyMDRBO1RJUk9OSUFOIFNJR04gRVQ7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDRCO1JFVkVSU0VEIFBJTENST1cgU0lHTjtQbzswO09OOzs7OztOOzs7OzsKKzIwNEM7QkxBQ0sgTEVGVFdBUkRTIEJVTExFVDtQbzswO09OOzs7OztOOzs7OzsKKzIwNEQ7QkxBQ0sgUklHSFRXQVJEUyBCVUxMRVQ7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDRFO0xPVyBBU1RFUklTSztQbzswO09OOzs7OztOOzs7OzsKKzIwNEY7UkVWRVJTRUQgU0VNSUNPTE9OO1BvOzA7T047Ozs7O047Ozs7OworMjA1MDtDTE9TRSBVUDtQbzswO09OOzs7OztOOzs7OzsKKzIwNTE7VFdPIEFTVEVSSVNLUyBBTElHTkVEIFZFUlRJQ0FMTFk7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDUyO0NPTU1FUkNJQUwgTUlOVVMgU0lHTjtTbTswO09OOzs7OztOOzs7OzsKKzIwNTc7UVVBRFJVUExFIFBSSU1FO1BvOzA7T047PGNvbXBhdD4gMjAzMiAyMDMyIDIwMzIgMjAzMjs7OztOOzs7OzsKKzIwNUY7TUVESVVNIE1BVEhFTUFUSUNBTCBTUEFDRTtaczswO1dTOzxjb21wYXQ+IDAwMjA7Ozs7Tjs7Ozs7CisyMDYwO1dPUkQgSk9JTkVSO0NmOzA7Qk47Ozs7O047Ozs7OworMjA2MTtGVU5DVElPTiBBUFBMSUNBVElPTjtDZjswO0JOOzs7OztOOzs7OzsKKzIwNjI7SU5WSVNJQkxFIFRJTUVTO0NmOzA7Qk47Ozs7O047Ozs7OworMjA2MztJTlZJU0lCTEUgU0VQQVJBVE9SO0NmOzA7Qk47Ozs7O047Ozs7OworMjA2QTtJTkhJQklUIFNZTU1FVFJJQyBTV0FQUElORztDZjswO0JOOzs7OztOOzs7OzsKKzIwNkI7QUNUSVZBVEUgU1lNTUVUUklDIFNXQVBQSU5HO0NmOzA7Qk47Ozs7O047Ozs7OworMjA2QztJTkhJQklUIEFSQUJJQyBGT1JNIFNIQVBJTkc7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisyMDZEO0FDVElWQVRFIEFSQUJJQyBGT1JNIFNIQVBJTkc7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisyMDZFO05BVElPTkFMIERJR0lUIFNIQVBFUztDZjswO0JOOzs7OztOOzs7OzsKKzIwNkY7Tk9NSU5BTCBESUdJVCBTSEFQRVM7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisyMDcwO1NVUEVSU0NSSVBUIFpFUk87Tm87MDtFTjs8c3VwZXI+IDAwMzA7MDswOzA7TjtTVVBFUlNDUklQVCBESUdJVCBaRVJPOzs7OworMjA3MTtTVVBFUlNDUklQVCBMQVRJTiBTTUFMTCBMRVRURVIgSTtMbDswO0w7PHN1cGVyPiAwMDY5Ozs7O047Ozs7OworMjA3NDtTVVBFUlNDUklQVCBGT1VSO05vOzA7RU47PHN1cGVyPiAwMDM0OzQ7NDs0O047U1VQRVJTQ1JJUFQgRElHSVQgRk9VUjs7OzsKKzIwNzU7U1VQRVJTQ1JJUFQgRklWRTtObzswO0VOOzxzdXBlcj4gMDAzNTs1OzU7NTtOO1NVUEVSU0NSSVBUIERJR0lUIEZJVkU7Ozs7CisyMDc2O1NVUEVSU0NSSVBUIFNJWDtObzswO0VOOzxzdXBlcj4gMDAzNjs2OzY7NjtOO1NVUEVSU0NSSVBUIERJR0lUIFNJWDs7OzsKKzIwNzc7U1VQRVJTQ1JJUFQgU0VWRU47Tm87MDtFTjs8c3VwZXI+IDAwMzc7Nzs3Ozc7TjtTVVBFUlNDUklQVCBESUdJVCBTRVZFTjs7OzsKKzIwNzg7U1VQRVJTQ1JJUFQgRUlHSFQ7Tm87MDtFTjs8c3VwZXI+IDAwMzg7ODs4Ozg7TjtTVVBFUlNDUklQVCBESUdJVCBFSUdIVDs7OzsKKzIwNzk7U1VQRVJTQ1JJUFQgTklORTtObzswO0VOOzxzdXBlcj4gMDAzOTs5Ozk7OTtOO1NVUEVSU0NSSVBUIERJR0lUIE5JTkU7Ozs7CisyMDdBO1NVUEVSU0NSSVBUIFBMVVMgU0lHTjtTbTswO0VUOzxzdXBlcj4gMDAyQjs7OztOOzs7OzsKKzIwN0I7U1VQRVJTQ1JJUFQgTUlOVVM7U207MDtFVDs8c3VwZXI+IDIyMTI7Ozs7TjtTVVBFUlNDUklQVCBIWVBIRU4tTUlOVVM7Ozs7CisyMDdDO1NVUEVSU0NSSVBUIEVRVUFMUyBTSUdOO1NtOzA7T047PHN1cGVyPiAwMDNEOzs7O047Ozs7OworMjA3RDtTVVBFUlNDUklQVCBMRUZUIFBBUkVOVEhFU0lTO1BzOzA7T047PHN1cGVyPiAwMDI4Ozs7O1k7U1VQRVJTQ1JJUFQgT1BFTklORyBQQVJFTlRIRVNJUzs7OzsKKzIwN0U7U1VQRVJTQ1JJUFQgUklHSFQgUEFSRU5USEVTSVM7UGU7MDtPTjs8c3VwZXI+IDAwMjk7Ozs7WTtTVVBFUlNDUklQVCBDTE9TSU5HIFBBUkVOVEhFU0lTOzs7OworMjA3RjtTVVBFUlNDUklQVCBMQVRJTiBTTUFMTCBMRVRURVIgTjtMbDswO0w7PHN1cGVyPiAwMDZFOzs7O047Ozs7OworMjA4MDtTVUJTQ1JJUFQgWkVSTztObzswO0VOOzxzdWI+IDAwMzA7MDswOzA7TjtTVUJTQ1JJUFQgRElHSVQgWkVSTzs7OzsKKzIwODE7U1VCU0NSSVBUIE9ORTtObzswO0VOOzxzdWI+IDAwMzE7MTsxOzE7TjtTVUJTQ1JJUFQgRElHSVQgT05FOzs7OworMjA4MjtTVUJTQ1JJUFQgVFdPO05vOzA7RU47PHN1Yj4gMDAzMjsyOzI7MjtOO1NVQlNDUklQVCBESUdJVCBUV087Ozs7CisyMDgzO1NVQlNDUklQVCBUSFJFRTtObzswO0VOOzxzdWI+IDAwMzM7MzszOzM7TjtTVUJTQ1JJUFQgRElHSVQgVEhSRUU7Ozs7CisyMDg0O1NVQlNDUklQVCBGT1VSO05vOzA7RU47PHN1Yj4gMDAzNDs0OzQ7NDtOO1NVQlNDUklQVCBESUdJVCBGT1VSOzs7OworMjA4NTtTVUJTQ1JJUFQgRklWRTtObzswO0VOOzxzdWI+IDAwMzU7NTs1OzU7TjtTVUJTQ1JJUFQgRElHSVQgRklWRTs7OzsKKzIwODY7U1VCU0NSSVBUIFNJWDtObzswO0VOOzxzdWI+IDAwMzY7Njs2OzY7TjtTVUJTQ1JJUFQgRElHSVQgU0lYOzs7OworMjA4NztTVUJTQ1JJUFQgU0VWRU47Tm87MDtFTjs8c3ViPiAwMDM3Ozc7Nzs3O047U1VCU0NSSVBUIERJR0lUIFNFVkVOOzs7OworMjA4ODtTVUJTQ1JJUFQgRUlHSFQ7Tm87MDtFTjs8c3ViPiAwMDM4Ozg7ODs4O047U1VCU0NSSVBUIERJR0lUIEVJR0hUOzs7OworMjA4OTtTVUJTQ1JJUFQgTklORTtObzswO0VOOzxzdWI+IDAwMzk7OTs5Ozk7TjtTVUJTQ1JJUFQgRElHSVQgTklORTs7OzsKKzIwOEE7U1VCU0NSSVBUIFBMVVMgU0lHTjtTbTswO0VUOzxzdWI+IDAwMkI7Ozs7Tjs7Ozs7CisyMDhCO1NVQlNDUklQVCBNSU5VUztTbTswO0VUOzxzdWI+IDIyMTI7Ozs7TjtTVUJTQ1JJUFQgSFlQSEVOLU1JTlVTOzs7OworMjA4QztTVUJTQ1JJUFQgRVFVQUxTIFNJR047U207MDtPTjs8c3ViPiAwMDNEOzs7O047Ozs7OworMjA4RDtTVUJTQ1JJUFQgTEVGVCBQQVJFTlRIRVNJUztQczswO09OOzxzdWI+IDAwMjg7Ozs7WTtTVUJTQ1JJUFQgT1BFTklORyBQQVJFTlRIRVNJUzs7OzsKKzIwOEU7U1VCU0NSSVBUIFJJR0hUIFBBUkVOVEhFU0lTO1BlOzA7T047PHN1Yj4gMDAyOTs7OztZO1NVQlNDUklQVCBDTE9TSU5HIFBBUkVOVEhFU0lTOzs7OworMjBBMDtFVVJPLUNVUlJFTkNZIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEExO0NPTE9OIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEEyO0NSVVpFSVJPIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEEzO0ZSRU5DSCBGUkFOQyBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBBNDtMSVJBIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEE1O01JTEwgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQTY7TkFJUkEgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQTc7UEVTRVRBIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEE4O1JVUEVFIFNJR047U2M7MDtFVDs8Y29tcGF0PiAwMDUyIDAwNzM7Ozs7Tjs7Ozs7CisyMEE5O1dPTiBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBBQTtORVcgU0hFUUVMIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEFCO0RPTkcgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQUM7RVVSTyBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBBRDtLSVAgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQUU7VFVHUklLIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEFGO0RSQUNITUEgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQjA7R0VSTUFOIFBFTk5ZIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEIxO1BFU08gU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwRDA7Q09NQklOSU5HIExFRlQgSEFSUE9PTiBBQk9WRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIExFRlQgSEFSUE9PTiBBQk9WRTs7OzsKKzIwRDE7Q09NQklOSU5HIFJJR0hUIEhBUlBPT04gQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBSSUdIVCBIQVJQT09OIEFCT1ZFOzs7OworMjBEMjtDT01CSU5JTkcgTE9ORyBWRVJUSUNBTCBMSU5FIE9WRVJMQVk7TW47MTtOU007Ozs7O047Tk9OLVNQQUNJTkcgTE9ORyBWRVJUSUNBTCBCQVIgT1ZFUkxBWTs7OzsKKzIwRDM7Q09NQklOSU5HIFNIT1JUIFZFUlRJQ0FMIExJTkUgT1ZFUkxBWTtNbjsxO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBTSE9SVCBWRVJUSUNBTCBCQVIgT1ZFUkxBWTs7OzsKKzIwRDQ7Q09NQklOSU5HIEFOVElDTE9DS1dJU0UgQVJST1cgQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBBTlRJQ0xPQ0tXSVNFIEFSUk9XIEFCT1ZFOzs7OworMjBENTtDT01CSU5JTkcgQ0xPQ0tXSVNFIEFSUk9XIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgQ0xPQ0tXSVNFIEFSUk9XIEFCT1ZFOzs7OworMjBENjtDT01CSU5JTkcgTEVGVCBBUlJPVyBBQk9WRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIExFRlQgQVJST1cgQUJPVkU7Ozs7CisyMEQ3O0NPTUJJTklORyBSSUdIVCBBUlJPVyBBQk9WRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFJJR0hUIEFSUk9XIEFCT1ZFOzs7OworMjBEODtDT01CSU5JTkcgUklORyBPVkVSTEFZO01uOzE7TlNNOzs7OztOO05PTi1TUEFDSU5HIFJJTkcgT1ZFUkxBWTs7OzsKKzIwRDk7Q09NQklOSU5HIENMT0NLV0lTRSBSSU5HIE9WRVJMQVk7TW47MTtOU007Ozs7O047Tk9OLVNQQUNJTkcgQ0xPQ0tXSVNFIFJJTkcgT1ZFUkxBWTs7OzsKKzIwREE7Q09NQklOSU5HIEFOVElDTE9DS1dJU0UgUklORyBPVkVSTEFZO01uOzE7TlNNOzs7OztOO05PTi1TUEFDSU5HIEFOVElDTE9DS1dJU0UgUklORyBPVkVSTEFZOzs7OworMjBEQjtDT01CSU5JTkcgVEhSRUUgRE9UUyBBQk9WRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFRIUkVFIERPVFMgQUJPVkU7Ozs7CisyMERDO0NPTUJJTklORyBGT1VSIERPVFMgQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBGT1VSIERPVFMgQUJPVkU7Ozs7CisyMEREO0NPTUJJTklORyBFTkNMT1NJTkcgQ0lSQ0xFO01lOzA7TlNNOzs7OztOO0VOQ0xPU0lORyBDSVJDTEU7Ozs7CisyMERFO0NPTUJJTklORyBFTkNMT1NJTkcgU1FVQVJFO01lOzA7TlNNOzs7OztOO0VOQ0xPU0lORyBTUVVBUkU7Ozs7CisyMERGO0NPTUJJTklORyBFTkNMT1NJTkcgRElBTU9ORDtNZTswO05TTTs7Ozs7TjtFTkNMT1NJTkcgRElBTU9ORDs7OzsKKzIwRTA7Q09NQklOSU5HIEVOQ0xPU0lORyBDSVJDTEUgQkFDS1NMQVNIO01lOzA7TlNNOzs7OztOO0VOQ0xPU0lORyBDSVJDTEUgU0xBU0g7Ozs7CisyMEUxO0NPTUJJTklORyBMRUZUIFJJR0hUIEFSUk9XIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgTEVGVCBSSUdIVCBBUlJPVyBBQk9WRTs7OzsKKzIwRTI7Q09NQklOSU5HIEVOQ0xPU0lORyBTQ1JFRU47TWU7MDtOU007Ozs7O047Ozs7OworMjBFMztDT01CSU5JTkcgRU5DTE9TSU5HIEtFWUNBUDtNZTswO05TTTs7Ozs7Tjs7Ozs7CisyMEU0O0NPTUJJTklORyBFTkNMT1NJTkcgVVBXQVJEIFBPSU5USU5HIFRSSUFOR0xFO01lOzA7TlNNOzs7OztOOzs7OzsKKzIwRTU7Q09NQklOSU5HIFJFVkVSU0UgU09MSURVUyBPVkVSTEFZO01uOzE7TlNNOzs7OztOOzs7OzsKKzIwRTY7Q09NQklOSU5HIERPVUJMRSBWRVJUSUNBTCBTVFJPS0UgT1ZFUkxBWTtNbjsxO05TTTs7Ozs7Tjs7Ozs7CisyMEU3O0NPTUJJTklORyBBTk5VSVRZIFNZTUJPTDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzIwRTg7Q09NQklOSU5HIFRSSVBMRSBVTkRFUkRPVDtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzIwRTk7Q09NQklOSU5HIFdJREUgQlJJREdFIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Ozs7OworMjBFQTtDT01CSU5JTkcgTEVGVFdBUkRTIEFSUk9XIE9WRVJMQVk7TW47MTtOU007Ozs7O047Ozs7OworMjEwMDtBQ0NPVU5UIE9GO1NvOzA7T047PGNvbXBhdD4gMDA2MSAwMDJGIDAwNjM7Ozs7Tjs7Ozs7CisyMTAxO0FERFJFU1NFRCBUTyBUSEUgU1VCSkVDVDtTbzswO09OOzxjb21wYXQ+IDAwNjEgMDAyRiAwMDczOzs7O047Ozs7OworMjEwMjtET1VCTEUtU1RSVUNLIENBUElUQUwgQztMdTswO0w7PGZvbnQ+IDAwNDM7Ozs7TjtET1VCTEUtU1RSVUNLIEM7Ozs7CisyMTAzO0RFR1JFRSBDRUxTSVVTO1NvOzA7T047PGNvbXBhdD4gMDBCMCAwMDQzOzs7O047REVHUkVFUyBDRU5USUdSQURFOzs7OworMjEwNDtDRU5UUkUgTElORSBTWU1CT0w7U287MDtPTjs7Ozs7TjtDIEwgU1lNQk9MOzs7OworMjEwNTtDQVJFIE9GO1NvOzA7T047PGNvbXBhdD4gMDA2MyAwMDJGIDAwNkY7Ozs7Tjs7Ozs7CisyMTA2O0NBREEgVU5BO1NvOzA7T047PGNvbXBhdD4gMDA2MyAwMDJGIDAwNzU7Ozs7Tjs7Ozs7CisyMTA3O0VVTEVSIENPTlNUQU5UO0x1OzA7TDs8Y29tcGF0PiAwMTkwOzs7O047RVVMRVJTOzs7OworMjEwODtTQ1JVUExFO1NvOzA7T047Ozs7O047Ozs7OworMjEwOTtERUdSRUUgRkFIUkVOSEVJVDtTbzswO09OOzxjb21wYXQ+IDAwQjAgMDA0Njs7OztOO0RFR1JFRVMgRkFIUkVOSEVJVDs7OzsKKzIxMEE7U0NSSVBUIFNNQUxMIEc7TGw7MDtMOzxmb250PiAwMDY3Ozs7O047Ozs7OworMjEwQjtTQ1JJUFQgQ0FQSVRBTCBIO0x1OzA7TDs8Zm9udD4gMDA0ODs7OztOO1NDUklQVCBIOzs7OworMjEwQztCTEFDSy1MRVRURVIgQ0FQSVRBTCBIO0x1OzA7TDs8Zm9udD4gMDA0ODs7OztOO0JMQUNLLUxFVFRFUiBIOzs7OworMjEwRDtET1VCTEUtU1RSVUNLIENBUElUQUwgSDtMdTswO0w7PGZvbnQ+IDAwNDg7Ozs7TjtET1VCTEUtU1RSVUNLIEg7Ozs7CisyMTBFO1BMQU5DSyBDT05TVEFOVDtMbDswO0w7PGZvbnQ+IDAwNjg7Ozs7Tjs7Ozs7CisyMTBGO1BMQU5DSyBDT05TVEFOVCBPVkVSIFRXTyBQSTtMbDswO0w7PGZvbnQ+IDAxMjc7Ozs7TjtQTEFOQ0sgQ09OU1RBTlQgT1ZFUiAyIFBJOzs7OworMjExMDtTQ1JJUFQgQ0FQSVRBTCBJO0x1OzA7TDs8Zm9udD4gMDA0OTs7OztOO1NDUklQVCBJOzs7OworMjExMTtCTEFDSy1MRVRURVIgQ0FQSVRBTCBJO0x1OzA7TDs8Zm9udD4gMDA0OTs7OztOO0JMQUNLLUxFVFRFUiBJOzs7OworMjExMjtTQ1JJUFQgQ0FQSVRBTCBMO0x1OzA7TDs8Zm9udD4gMDA0Qzs7OztOO1NDUklQVCBMOzs7OworMjExMztTQ1JJUFQgU01BTEwgTDtMbDswO0w7PGZvbnQ+IDAwNkM7Ozs7Tjs7Ozs7CisyMTE0O0wgQiBCQVIgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjExNTtET1VCTEUtU1RSVUNLIENBUElUQUwgTjtMdTswO0w7PGZvbnQ+IDAwNEU7Ozs7TjtET1VCTEUtU1RSVUNLIE47Ozs7CisyMTE2O05VTUVSTyBTSUdOO1NvOzA7T047PGNvbXBhdD4gMDA0RSAwMDZGOzs7O047TlVNRVJPOzs7OworMjExNztTT1VORCBSRUNPUkRJTkcgQ09QWVJJR0hUO1NvOzA7T047Ozs7O047Ozs7OworMjExODtTQ1JJUFQgQ0FQSVRBTCBQO1NvOzA7T047Ozs7O047U0NSSVBUIFA7Ozs7CisyMTE5O0RPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBQO0x1OzA7TDs8Zm9udD4gMDA1MDs7OztOO0RPVUJMRS1TVFJVQ0sgUDs7OzsKKzIxMUE7RE9VQkxFLVNUUlVDSyBDQVBJVEFMIFE7THU7MDtMOzxmb250PiAwMDUxOzs7O047RE9VQkxFLVNUUlVDSyBROzs7OworMjExQjtTQ1JJUFQgQ0FQSVRBTCBSO0x1OzA7TDs8Zm9udD4gMDA1Mjs7OztOO1NDUklQVCBSOzs7OworMjExQztCTEFDSy1MRVRURVIgQ0FQSVRBTCBSO0x1OzA7TDs8Zm9udD4gMDA1Mjs7OztOO0JMQUNLLUxFVFRFUiBSOzs7OworMjExRDtET1VCTEUtU1RSVUNLIENBUElUQUwgUjtMdTswO0w7PGZvbnQ+IDAwNTI7Ozs7TjtET1VCTEUtU1RSVUNLIFI7Ozs7CisyMTFFO1BSRVNDUklQVElPTiBUQUtFO1NvOzA7T047Ozs7O047Ozs7OworMjExRjtSRVNQT05TRTtTbzswO09OOzs7OztOOzs7OzsKKzIxMjA7U0VSVklDRSBNQVJLO1NvOzA7T047PHN1cGVyPiAwMDUzIDAwNEQ7Ozs7Tjs7Ozs7CisyMTIxO1RFTEVQSE9ORSBTSUdOO1NvOzA7T047PGNvbXBhdD4gMDA1NCAwMDQ1IDAwNEM7Ozs7TjtUIEUgTCBTWU1CT0w7Ozs7CisyMTIyO1RSQURFIE1BUksgU0lHTjtTbzswO09OOzxzdXBlcj4gMDA1NCAwMDREOzs7O047VFJBREVNQVJLOzs7OworMjEyMztWRVJTSUNMRTtTbzswO09OOzs7OztOOzs7OzsKKzIxMjQ7RE9VQkxFLVNUUlVDSyBDQVBJVEFMIFo7THU7MDtMOzxmb250PiAwMDVBOzs7O047RE9VQkxFLVNUUlVDSyBaOzs7OworMjEyNTtPVU5DRSBTSUdOO1NvOzA7T047Ozs7O047T1VOQ0U7Ozs7CisyMTI2O09ITSBTSUdOO0x1OzA7TDswM0E5Ozs7O047T0hNOzs7MDNDOTsKKzIxMjc7SU5WRVJURUQgT0hNIFNJR047U287MDtPTjs7Ozs7TjtNSE87Ozs7CisyMTI4O0JMQUNLLUxFVFRFUiBDQVBJVEFMIFo7THU7MDtMOzxmb250PiAwMDVBOzs7O047QkxBQ0stTEVUVEVSIFo7Ozs7CisyMTI5O1RVUk5FRCBHUkVFSyBTTUFMTCBMRVRURVIgSU9UQTtTbzswO09OOzs7OztOOzs7OzsKKzIxMkE7S0VMVklOIFNJR047THU7MDtMOzAwNEI7Ozs7TjtERUdSRUVTIEtFTFZJTjs7OzAwNkI7CisyMTJCO0FOR1NUUk9NIFNJR047THU7MDtMOzAwQzU7Ozs7TjtBTkdTVFJPTSBVTklUOzs7MDBFNTsKKzIxMkM7U0NSSVBUIENBUElUQUwgQjtMdTswO0w7PGZvbnQ+IDAwNDI7Ozs7TjtTQ1JJUFQgQjs7OzsKKzIxMkQ7QkxBQ0stTEVUVEVSIENBUElUQUwgQztMdTswO0w7PGZvbnQ+IDAwNDM7Ozs7TjtCTEFDSy1MRVRURVIgQzs7OzsKKzIxMkU7RVNUSU1BVEVEIFNZTUJPTDtTbzswO0VUOzs7OztOOzs7OzsKKzIxMkY7U0NSSVBUIFNNQUxMIEU7TGw7MDtMOzxmb250PiAwMDY1Ozs7O047Ozs7OworMjEzMDtTQ1JJUFQgQ0FQSVRBTCBFO0x1OzA7TDs8Zm9udD4gMDA0NTs7OztOO1NDUklQVCBFOzs7OworMjEzMTtTQ1JJUFQgQ0FQSVRBTCBGO0x1OzA7TDs8Zm9udD4gMDA0Njs7OztOO1NDUklQVCBGOzs7OworMjEzMjtUVVJORUQgQ0FQSVRBTCBGO1NvOzA7T047Ozs7O047VFVSTkVEIEY7Ozs7CisyMTMzO1NDUklQVCBDQVBJVEFMIE07THU7MDtMOzxmb250PiAwMDREOzs7O047U0NSSVBUIE07Ozs7CisyMTM0O1NDUklQVCBTTUFMTCBPO0xsOzA7TDs8Zm9udD4gMDA2Rjs7OztOOzs7OzsKKzIxMzU7QUxFRiBTWU1CT0w7TG87MDtMOzxjb21wYXQ+IDA1RDA7Ozs7TjtGSVJTVCBUUkFOU0ZJTklURSBDQVJESU5BTDs7OzsKKzIxMzY7QkVUIFNZTUJPTDtMbzswO0w7PGNvbXBhdD4gMDVEMTs7OztOO1NFQ09ORCBUUkFOU0ZJTklURSBDQVJESU5BTDs7OzsKKzIxMzc7R0lNRUwgU1lNQk9MO0xvOzA7TDs8Y29tcGF0PiAwNUQyOzs7O047VEhJUkQgVFJBTlNGSU5JVEUgQ0FSRElOQUw7Ozs7CisyMTM4O0RBTEVUIFNZTUJPTDtMbzswO0w7PGNvbXBhdD4gMDVEMzs7OztOO0ZPVVJUSCBUUkFOU0ZJTklURSBDQVJESU5BTDs7OzsKKzIxMzk7SU5GT1JNQVRJT04gU09VUkNFO0xsOzA7TDs8Zm9udD4gMDA2OTs7OztOOzs7OzsKKzIxM0E7Uk9UQVRFRCBDQVBJVEFMIFE7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMTNEO0RPVUJMRS1TVFJVQ0sgU01BTEwgR0FNTUE7TGw7MDtMOzxmb250PiAwM0IzOzs7O047Ozs7OworMjEzRTtET1VCTEUtU1RSVUNLIENBUElUQUwgR0FNTUE7THU7MDtMOzxmb250PiAwMzkzOzs7O047Ozs7OworMjEzRjtET1VCTEUtU1RSVUNLIENBUElUQUwgUEk7THU7MDtMOzxmb250PiAwM0EwOzs7O047Ozs7OworMjE0MDtET1VCTEUtU1RSVUNLIE4tQVJZIFNVTU1BVElPTjtTbTswO09OOzxmb250PiAyMjExOzs7O1k7Ozs7OworMjE0MTtUVVJORUQgU0FOUy1TRVJJRiBDQVBJVEFMIEc7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMTQyO1RVUk5FRCBTQU5TLVNFUklGIENBUElUQUwgTDtTbTswO09OOzs7OztOOzs7OzsKKzIxNDM7UkVWRVJTRUQgU0FOUy1TRVJJRiBDQVBJVEFMIEw7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMTQ0O1RVUk5FRCBTQU5TLVNFUklGIENBUElUQUwgWTtTbTswO09OOzs7OztOOzs7OzsKKzIxNDU7RE9VQkxFLVNUUlVDSyBJVEFMSUMgQ0FQSVRBTCBEO0x1OzA7TDs8Zm9udD4gMDA0NDs7OztOOzs7OzsKKzIxNDY7RE9VQkxFLVNUUlVDSyBJVEFMSUMgU01BTEwgRDtMbDswO0w7PGZvbnQ+IDAwNjQ7Ozs7Tjs7Ozs7CisyMTQ3O0RPVUJMRS1TVFJVQ0sgSVRBTElDIFNNQUxMIEU7TGw7MDtMOzxmb250PiAwMDY1Ozs7O047Ozs7OworMjE0ODtET1VCTEUtU1RSVUNLIElUQUxJQyBTTUFMTCBJO0xsOzA7TDs8Zm9udD4gMDA2OTs7OztOOzs7OzsKKzIxNDk7RE9VQkxFLVNUUlVDSyBJVEFMSUMgU01BTEwgSjtMbDswO0w7PGZvbnQ+IDAwNkE7Ozs7Tjs7Ozs7CisyMTRBO1BST1BFUlRZIExJTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMTRCO1RVUk5FRCBBTVBFUlNBTkQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMTUzO1ZVTEdBUiBGUkFDVElPTiBPTkUgVEhJUkQ7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzEgMjA0NCAwMDMzOzs7MS8zO047RlJBQ1RJT04gT05FIFRISVJEOzs7OworMjE1NDtWVUxHQVIgRlJBQ1RJT04gVFdPIFRISVJEUztObzswO09OOzxmcmFjdGlvbj4gMDAzMiAyMDQ0IDAwMzM7OzsyLzM7TjtGUkFDVElPTiBUV08gVEhJUkRTOzs7OworMjE1NTtWVUxHQVIgRlJBQ1RJT04gT05FIEZJRlRIO05vOzA7T047PGZyYWN0aW9uPiAwMDMxIDIwNDQgMDAzNTs7OzEvNTtOO0ZSQUNUSU9OIE9ORSBGSUZUSDs7OzsKKzIxNTY7VlVMR0FSIEZSQUNUSU9OIFRXTyBGSUZUSFM7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzIgMjA0NCAwMDM1Ozs7Mi81O047RlJBQ1RJT04gVFdPIEZJRlRIUzs7OzsKKzIxNTc7VlVMR0FSIEZSQUNUSU9OIFRIUkVFIEZJRlRIUztObzswO09OOzxmcmFjdGlvbj4gMDAzMyAyMDQ0IDAwMzU7OzszLzU7TjtGUkFDVElPTiBUSFJFRSBGSUZUSFM7Ozs7CisyMTU4O1ZVTEdBUiBGUkFDVElPTiBGT1VSIEZJRlRIUztObzswO09OOzxmcmFjdGlvbj4gMDAzNCAyMDQ0IDAwMzU7Ozs0LzU7TjtGUkFDVElPTiBGT1VSIEZJRlRIUzs7OzsKKzIxNTk7VlVMR0FSIEZSQUNUSU9OIE9ORSBTSVhUSDtObzswO09OOzxmcmFjdGlvbj4gMDAzMSAyMDQ0IDAwMzY7OzsxLzY7TjtGUkFDVElPTiBPTkUgU0lYVEg7Ozs7CisyMTVBO1ZVTEdBUiBGUkFDVElPTiBGSVZFIFNJWFRIUztObzswO09OOzxmcmFjdGlvbj4gMDAzNSAyMDQ0IDAwMzY7Ozs1LzY7TjtGUkFDVElPTiBGSVZFIFNJWFRIUzs7OzsKKzIxNUI7VlVMR0FSIEZSQUNUSU9OIE9ORSBFSUdIVEg7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzEgMjA0NCAwMDM4Ozs7MS84O047RlJBQ1RJT04gT05FIEVJR0hUSDs7OzsKKzIxNUM7VlVMR0FSIEZSQUNUSU9OIFRIUkVFIEVJR0hUSFM7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzMgMjA0NCAwMDM4Ozs7My84O047RlJBQ1RJT04gVEhSRUUgRUlHSFRIUzs7OzsKKzIxNUQ7VlVMR0FSIEZSQUNUSU9OIEZJVkUgRUlHSFRIUztObzswO09OOzxmcmFjdGlvbj4gMDAzNSAyMDQ0IDAwMzg7Ozs1Lzg7TjtGUkFDVElPTiBGSVZFIEVJR0hUSFM7Ozs7CisyMTVFO1ZVTEdBUiBGUkFDVElPTiBTRVZFTiBFSUdIVEhTO05vOzA7T047PGZyYWN0aW9uPiAwMDM3IDIwNDQgMDAzODs7OzcvODtOO0ZSQUNUSU9OIFNFVkVOIEVJR0hUSFM7Ozs7CisyMTVGO0ZSQUNUSU9OIE5VTUVSQVRPUiBPTkU7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzEgMjA0NDs7OzE7Tjs7Ozs7CisyMTYwO1JPTUFOIE5VTUVSQUwgT05FO05sOzA7TDs8Y29tcGF0PiAwMDQ5Ozs7MTtOOzs7OzIxNzA7CisyMTYxO1JPTUFOIE5VTUVSQUwgVFdPO05sOzA7TDs8Y29tcGF0PiAwMDQ5IDAwNDk7OzsyO047Ozs7MjE3MTsKKzIxNjI7Uk9NQU4gTlVNRVJBTCBUSFJFRTtObDswO0w7PGNvbXBhdD4gMDA0OSAwMDQ5IDAwNDk7OzszO047Ozs7MjE3MjsKKzIxNjM7Uk9NQU4gTlVNRVJBTCBGT1VSO05sOzA7TDs8Y29tcGF0PiAwMDQ5IDAwNTY7Ozs0O047Ozs7MjE3MzsKKzIxNjQ7Uk9NQU4gTlVNRVJBTCBGSVZFO05sOzA7TDs8Y29tcGF0PiAwMDU2Ozs7NTtOOzs7OzIxNzQ7CisyMTY1O1JPTUFOIE5VTUVSQUwgU0lYO05sOzA7TDs8Y29tcGF0PiAwMDU2IDAwNDk7Ozs2O047Ozs7MjE3NTsKKzIxNjY7Uk9NQU4gTlVNRVJBTCBTRVZFTjtObDswO0w7PGNvbXBhdD4gMDA1NiAwMDQ5IDAwNDk7Ozs3O047Ozs7MjE3NjsKKzIxNjc7Uk9NQU4gTlVNRVJBTCBFSUdIVDtObDswO0w7PGNvbXBhdD4gMDA1NiAwMDQ5IDAwNDkgMDA0OTs7Ozg7Tjs7OzsyMTc3OworMjE2ODtST01BTiBOVU1FUkFMIE5JTkU7Tmw7MDtMOzxjb21wYXQ+IDAwNDkgMDA1ODs7Ozk7Tjs7OzsyMTc4OworMjE2OTtST01BTiBOVU1FUkFMIFRFTjtObDswO0w7PGNvbXBhdD4gMDA1ODs7OzEwO047Ozs7MjE3OTsKKzIxNkE7Uk9NQU4gTlVNRVJBTCBFTEVWRU47Tmw7MDtMOzxjb21wYXQ+IDAwNTggMDA0OTs7OzExO047Ozs7MjE3QTsKKzIxNkI7Uk9NQU4gTlVNRVJBTCBUV0VMVkU7Tmw7MDtMOzxjb21wYXQ+IDAwNTggMDA0OSAwMDQ5Ozs7MTI7Tjs7OzsyMTdCOworMjE2QztST01BTiBOVU1FUkFMIEZJRlRZO05sOzA7TDs8Y29tcGF0PiAwMDRDOzs7NTA7Tjs7OzsyMTdDOworMjE2RDtST01BTiBOVU1FUkFMIE9ORSBIVU5EUkVEO05sOzA7TDs8Y29tcGF0PiAwMDQzOzs7MTAwO047Ozs7MjE3RDsKKzIxNkU7Uk9NQU4gTlVNRVJBTCBGSVZFIEhVTkRSRUQ7Tmw7MDtMOzxjb21wYXQ+IDAwNDQ7Ozs1MDA7Tjs7OzsyMTdFOworMjE2RjtST01BTiBOVU1FUkFMIE9ORSBUSE9VU0FORDtObDswO0w7PGNvbXBhdD4gMDA0RDs7OzEwMDA7Tjs7OzsyMTdGOworMjE3MDtTTUFMTCBST01BTiBOVU1FUkFMIE9ORTtObDswO0w7PGNvbXBhdD4gMDA2OTs7OzE7Tjs7OzIxNjA7OzIxNjAKKzIxNzE7U01BTEwgUk9NQU4gTlVNRVJBTCBUV087Tmw7MDtMOzxjb21wYXQ+IDAwNjkgMDA2OTs7OzI7Tjs7OzIxNjE7OzIxNjEKKzIxNzI7U01BTEwgUk9NQU4gTlVNRVJBTCBUSFJFRTtObDswO0w7PGNvbXBhdD4gMDA2OSAwMDY5IDAwNjk7OzszO047OzsyMTYyOzsyMTYyCisyMTczO1NNQUxMIFJPTUFOIE5VTUVSQUwgRk9VUjtObDswO0w7PGNvbXBhdD4gMDA2OSAwMDc2Ozs7NDtOOzs7MjE2Mzs7MjE2MworMjE3NDtTTUFMTCBST01BTiBOVU1FUkFMIEZJVkU7Tmw7MDtMOzxjb21wYXQ+IDAwNzY7Ozs1O047OzsyMTY0OzsyMTY0CisyMTc1O1NNQUxMIFJPTUFOIE5VTUVSQUwgU0lYO05sOzA7TDs8Y29tcGF0PiAwMDc2IDAwNjk7Ozs2O047OzsyMTY1OzsyMTY1CisyMTc2O1NNQUxMIFJPTUFOIE5VTUVSQUwgU0VWRU47Tmw7MDtMOzxjb21wYXQ+IDAwNzYgMDA2OSAwMDY5Ozs7NztOOzs7MjE2Njs7MjE2NgorMjE3NztTTUFMTCBST01BTiBOVU1FUkFMIEVJR0hUO05sOzA7TDs8Y29tcGF0PiAwMDc2IDAwNjkgMDA2OSAwMDY5Ozs7ODtOOzs7MjE2Nzs7MjE2NworMjE3ODtTTUFMTCBST01BTiBOVU1FUkFMIE5JTkU7Tmw7MDtMOzxjb21wYXQ+IDAwNjkgMDA3ODs7Ozk7Tjs7OzIxNjg7OzIxNjgKKzIxNzk7U01BTEwgUk9NQU4gTlVNRVJBTCBURU47Tmw7MDtMOzxjb21wYXQ+IDAwNzg7OzsxMDtOOzs7MjE2OTs7MjE2OQorMjE3QTtTTUFMTCBST01BTiBOVU1FUkFMIEVMRVZFTjtObDswO0w7PGNvbXBhdD4gMDA3OCAwMDY5Ozs7MTE7Tjs7OzIxNkE7OzIxNkEKKzIxN0I7U01BTEwgUk9NQU4gTlVNRVJBTCBUV0VMVkU7Tmw7MDtMOzxjb21wYXQ+IDAwNzggMDA2OSAwMDY5Ozs7MTI7Tjs7OzIxNkI7OzIxNkIKKzIxN0M7U01BTEwgUk9NQU4gTlVNRVJBTCBGSUZUWTtObDswO0w7PGNvbXBhdD4gMDA2Qzs7OzUwO047OzsyMTZDOzsyMTZDCisyMTdEO1NNQUxMIFJPTUFOIE5VTUVSQUwgT05FIEhVTkRSRUQ7Tmw7MDtMOzxjb21wYXQ+IDAwNjM7OzsxMDA7Tjs7OzIxNkQ7OzIxNkQKKzIxN0U7U01BTEwgUk9NQU4gTlVNRVJBTCBGSVZFIEhVTkRSRUQ7Tmw7MDtMOzxjb21wYXQ+IDAwNjQ7Ozs1MDA7Tjs7OzIxNkU7OzIxNkUKKzIxN0Y7U01BTEwgUk9NQU4gTlVNRVJBTCBPTkUgVEhPVVNBTkQ7Tmw7MDtMOzxjb21wYXQ+IDAwNkQ7OzsxMDAwO047OzsyMTZGOzsyMTZGCisyMTgwO1JPTUFOIE5VTUVSQUwgT05FIFRIT1VTQU5EIEMgRDtObDswO0w7Ozs7MTAwMDtOOzs7OzsKKzIxODE7Uk9NQU4gTlVNRVJBTCBGSVZFIFRIT1VTQU5EO05sOzA7TDs7Ozs1MDAwO047Ozs7OworMjE4MjtST01BTiBOVU1FUkFMIFRFTiBUSE9VU0FORDtObDswO0w7Ozs7MTAwMDA7Tjs7Ozs7CisyMTgzO1JPTUFOIE5VTUVSQUwgUkVWRVJTRUQgT05FIEhVTkRSRUQ7Tmw7MDtMOzs7OztOOzs7OzsKKzIxOTA7TEVGVFdBUkRTIEFSUk9XO1NtOzA7T047Ozs7O047TEVGVCBBUlJPVzs7OzsKKzIxOTE7VVBXQVJEUyBBUlJPVztTbTswO09OOzs7OztOO1VQIEFSUk9XOzs7OworMjE5MjtSSUdIVFdBUkRTIEFSUk9XO1NtOzA7T047Ozs7O047UklHSFQgQVJST1c7Ozs7CisyMTkzO0RPV05XQVJEUyBBUlJPVztTbTswO09OOzs7OztOO0RPV04gQVJST1c7Ozs7CisyMTk0O0xFRlQgUklHSFQgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMTk1O1VQIERPV04gQVJST1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMTk2O05PUlRIIFdFU1QgQVJST1c7U287MDtPTjs7Ozs7TjtVUFBFUiBMRUZUIEFSUk9XOzs7OworMjE5NztOT1JUSCBFQVNUIEFSUk9XO1NvOzA7T047Ozs7O047VVBQRVIgUklHSFQgQVJST1c7Ozs7CisyMTk4O1NPVVRIIEVBU1QgQVJST1c7U287MDtPTjs7Ozs7TjtMT1dFUiBSSUdIVCBBUlJPVzs7OzsKKzIxOTk7U09VVEggV0VTVCBBUlJPVztTbzswO09OOzs7OztOO0xPV0VSIExFRlQgQVJST1c7Ozs7CisyMTlBO0xFRlRXQVJEUyBBUlJPVyBXSVRIIFNUUk9LRTtTbTswO09OOzIxOTAgMDMzODs7OztOO0xFRlQgQVJST1cgV0lUSCBTVFJPS0U7Ozs7CisyMTlCO1JJR0hUV0FSRFMgQVJST1cgV0lUSCBTVFJPS0U7U207MDtPTjsyMTkyIDAzMzg7Ozs7TjtSSUdIVCBBUlJPVyBXSVRIIFNUUk9LRTs7OzsKKzIxOUM7TEVGVFdBUkRTIFdBVkUgQVJST1c7U287MDtPTjs7Ozs7TjtMRUZUIFdBVkUgQVJST1c7Ozs7CisyMTlEO1JJR0hUV0FSRFMgV0FWRSBBUlJPVztTbzswO09OOzs7OztOO1JJR0hUIFdBVkUgQVJST1c7Ozs7CisyMTlFO0xFRlRXQVJEUyBUV08gSEVBREVEIEFSUk9XO1NvOzA7T047Ozs7O047TEVGVCBUV08gSEVBREVEIEFSUk9XOzs7OworMjE5RjtVUFdBUkRTIFRXTyBIRUFERUQgQVJST1c7U287MDtPTjs7Ozs7TjtVUCBUV08gSEVBREVEIEFSUk9XOzs7OworMjFBMDtSSUdIVFdBUkRTIFRXTyBIRUFERUQgQVJST1c7U207MDtPTjs7Ozs7TjtSSUdIVCBUV08gSEVBREVEIEFSUk9XOzs7OworMjFBMTtET1dOV0FSRFMgVFdPIEhFQURFRCBBUlJPVztTbzswO09OOzs7OztOO0RPV04gVFdPIEhFQURFRCBBUlJPVzs7OzsKKzIxQTI7TEVGVFdBUkRTIEFSUk9XIFdJVEggVEFJTDtTbzswO09OOzs7OztOO0xFRlQgQVJST1cgV0lUSCBUQUlMOzs7OworMjFBMztSSUdIVFdBUkRTIEFSUk9XIFdJVEggVEFJTDtTbTswO09OOzs7OztOO1JJR0hUIEFSUk9XIFdJVEggVEFJTDs7OzsKKzIxQTQ7TEVGVFdBUkRTIEFSUk9XIEZST00gQkFSO1NvOzA7T047Ozs7O047TEVGVCBBUlJPVyBGUk9NIEJBUjs7OzsKKzIxQTU7VVBXQVJEUyBBUlJPVyBGUk9NIEJBUjtTbzswO09OOzs7OztOO1VQIEFSUk9XIEZST00gQkFSOzs7OworMjFBNjtSSUdIVFdBUkRTIEFSUk9XIEZST00gQkFSO1NtOzA7T047Ozs7O047UklHSFQgQVJST1cgRlJPTSBCQVI7Ozs7CisyMUE3O0RPV05XQVJEUyBBUlJPVyBGUk9NIEJBUjtTbzswO09OOzs7OztOO0RPV04gQVJST1cgRlJPTSBCQVI7Ozs7CisyMUE4O1VQIERPV04gQVJST1cgV0lUSCBCQVNFO1NvOzA7T047Ozs7O047Ozs7OworMjFBOTtMRUZUV0FSRFMgQVJST1cgV0lUSCBIT09LO1NvOzA7T047Ozs7O047TEVGVCBBUlJPVyBXSVRIIEhPT0s7Ozs7CisyMUFBO1JJR0hUV0FSRFMgQVJST1cgV0lUSCBIT09LO1NvOzA7T047Ozs7O047UklHSFQgQVJST1cgV0lUSCBIT09LOzs7OworMjFBQjtMRUZUV0FSRFMgQVJST1cgV0lUSCBMT09QO1NvOzA7T047Ozs7O047TEVGVCBBUlJPVyBXSVRIIExPT1A7Ozs7CisyMUFDO1JJR0hUV0FSRFMgQVJST1cgV0lUSCBMT09QO1NvOzA7T047Ozs7O047UklHSFQgQVJST1cgV0lUSCBMT09QOzs7OworMjFBRDtMRUZUIFJJR0hUIFdBVkUgQVJST1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMUFFO0xFRlQgUklHSFQgQVJST1cgV0lUSCBTVFJPS0U7U207MDtPTjsyMTk0IDAzMzg7Ozs7Tjs7Ozs7CisyMUFGO0RPV05XQVJEUyBaSUdaQUcgQVJST1c7U287MDtPTjs7Ozs7TjtET1dOIFpJR1pBRyBBUlJPVzs7OzsKKzIxQjA7VVBXQVJEUyBBUlJPVyBXSVRIIFRJUCBMRUZUV0FSRFM7U287MDtPTjs7Ozs7TjtVUCBBUlJPVyBXSVRIIFRJUCBMRUZUOzs7OworMjFCMTtVUFdBUkRTIEFSUk9XIFdJVEggVElQIFJJR0hUV0FSRFM7U287MDtPTjs7Ozs7TjtVUCBBUlJPVyBXSVRIIFRJUCBSSUdIVDs7OzsKKzIxQjI7RE9XTldBUkRTIEFSUk9XIFdJVEggVElQIExFRlRXQVJEUztTbzswO09OOzs7OztOO0RPV04gQVJST1cgV0lUSCBUSVAgTEVGVDs7OzsKKzIxQjM7RE9XTldBUkRTIEFSUk9XIFdJVEggVElQIFJJR0hUV0FSRFM7U287MDtPTjs7Ozs7TjtET1dOIEFSUk9XIFdJVEggVElQIFJJR0hUOzs7OworMjFCNDtSSUdIVFdBUkRTIEFSUk9XIFdJVEggQ09STkVSIERPV05XQVJEUztTbzswO09OOzs7OztOO1JJR0hUIEFSUk9XIFdJVEggQ09STkVSIERPV047Ozs7CisyMUI1O0RPV05XQVJEUyBBUlJPVyBXSVRIIENPUk5FUiBMRUZUV0FSRFM7U287MDtPTjs7Ozs7TjtET1dOIEFSUk9XIFdJVEggQ09STkVSIExFRlQ7Ozs7CisyMUI2O0FOVElDTE9DS1dJU0UgVE9QIFNFTUlDSVJDTEUgQVJST1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMUI3O0NMT0NLV0lTRSBUT1AgU0VNSUNJUkNMRSBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIxQjg7Tk9SVEggV0VTVCBBUlJPVyBUTyBMT05HIEJBUjtTbzswO09OOzs7OztOO1VQUEVSIExFRlQgQVJST1cgVE8gTE9ORyBCQVI7Ozs7CisyMUI5O0xFRlRXQVJEUyBBUlJPVyBUTyBCQVIgT1ZFUiBSSUdIVFdBUkRTIEFSUk9XIFRPIEJBUjtTbzswO09OOzs7OztOO0xFRlQgQVJST1cgVE8gQkFSIE9WRVIgUklHSFQgQVJST1cgVE8gQkFSOzs7OworMjFCQTtBTlRJQ0xPQ0tXSVNFIE9QRU4gQ0lSQ0xFIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMjFCQjtDTE9DS1dJU0UgT1BFTiBDSVJDTEUgQVJST1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMUJDO0xFRlRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBVUFdBUkRTO1NvOzA7T047Ozs7O047TEVGVCBIQVJQT09OIFdJVEggQkFSQiBVUDs7OzsKKzIxQkQ7TEVGVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIERPV05XQVJEUztTbzswO09OOzs7OztOO0xFRlQgSEFSUE9PTiBXSVRIIEJBUkIgRE9XTjs7OzsKKzIxQkU7VVBXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBSSUdIVFdBUkRTO1NvOzA7T047Ozs7O047VVAgSEFSUE9PTiBXSVRIIEJBUkIgUklHSFQ7Ozs7CisyMUJGO1VQV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgTEVGVFdBUkRTO1NvOzA7T047Ozs7O047VVAgSEFSUE9PTiBXSVRIIEJBUkIgTEVGVDs7OzsKKzIxQzA7UklHSFRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBVUFdBUkRTO1NvOzA7T047Ozs7O047UklHSFQgSEFSUE9PTiBXSVRIIEJBUkIgVVA7Ozs7CisyMUMxO1JJR0hUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgRE9XTldBUkRTO1NvOzA7T047Ozs7O047UklHSFQgSEFSUE9PTiBXSVRIIEJBUkIgRE9XTjs7OzsKKzIxQzI7RE9XTldBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFJJR0hUV0FSRFM7U287MDtPTjs7Ozs7TjtET1dOIEhBUlBPT04gV0lUSCBCQVJCIFJJR0hUOzs7OworMjFDMztET1dOV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgTEVGVFdBUkRTO1NvOzA7T047Ozs7O047RE9XTiBIQVJQT09OIFdJVEggQkFSQiBMRUZUOzs7OworMjFDNDtSSUdIVFdBUkRTIEFSUk9XIE9WRVIgTEVGVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047UklHSFQgQVJST1cgT1ZFUiBMRUZUIEFSUk9XOzs7OworMjFDNTtVUFdBUkRTIEFSUk9XIExFRlRXQVJEUyBPRiBET1dOV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtVUCBBUlJPVyBMRUZUIE9GIERPV04gQVJST1c7Ozs7CisyMUM2O0xFRlRXQVJEUyBBUlJPVyBPVkVSIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtMRUZUIEFSUk9XIE9WRVIgUklHSFQgQVJST1c7Ozs7CisyMUM3O0xFRlRXQVJEUyBQQUlSRUQgQVJST1dTO1NvOzA7T047Ozs7O047TEVGVCBQQUlSRUQgQVJST1dTOzs7OworMjFDODtVUFdBUkRTIFBBSVJFRCBBUlJPV1M7U287MDtPTjs7Ozs7TjtVUCBQQUlSRUQgQVJST1dTOzs7OworMjFDOTtSSUdIVFdBUkRTIFBBSVJFRCBBUlJPV1M7U287MDtPTjs7Ozs7TjtSSUdIVCBQQUlSRUQgQVJST1dTOzs7OworMjFDQTtET1dOV0FSRFMgUEFJUkVEIEFSUk9XUztTbzswO09OOzs7OztOO0RPV04gUEFJUkVEIEFSUk9XUzs7OzsKKzIxQ0I7TEVGVFdBUkRTIEhBUlBPT04gT1ZFUiBSSUdIVFdBUkRTIEhBUlBPT047U287MDtPTjs7Ozs7TjtMRUZUIEhBUlBPT04gT1ZFUiBSSUdIVCBIQVJQT09OOzs7OworMjFDQztSSUdIVFdBUkRTIEhBUlBPT04gT1ZFUiBMRUZUV0FSRFMgSEFSUE9PTjtTbzswO09OOzs7OztOO1JJR0hUIEhBUlBPT04gT1ZFUiBMRUZUIEhBUlBPT047Ozs7CisyMUNEO0xFRlRXQVJEUyBET1VCTEUgQVJST1cgV0lUSCBTVFJPS0U7U287MDtPTjsyMUQwIDAzMzg7Ozs7TjtMRUZUIERPVUJMRSBBUlJPVyBXSVRIIFNUUk9LRTs7OzsKKzIxQ0U7TEVGVCBSSUdIVCBET1VCTEUgQVJST1cgV0lUSCBTVFJPS0U7U207MDtPTjsyMUQ0IDAzMzg7Ozs7Tjs7Ozs7CisyMUNGO1JJR0hUV0FSRFMgRE9VQkxFIEFSUk9XIFdJVEggU1RST0tFO1NtOzA7T047MjFEMiAwMzM4Ozs7O047UklHSFQgRE9VQkxFIEFSUk9XIFdJVEggU1RST0tFOzs7OworMjFEMDtMRUZUV0FSRFMgRE9VQkxFIEFSUk9XO1NvOzA7T047Ozs7O047TEVGVCBET1VCTEUgQVJST1c7Ozs7CisyMUQxO1VQV0FSRFMgRE9VQkxFIEFSUk9XO1NvOzA7T047Ozs7O047VVAgRE9VQkxFIEFSUk9XOzs7OworMjFEMjtSSUdIVFdBUkRTIERPVUJMRSBBUlJPVztTbTswO09OOzs7OztOO1JJR0hUIERPVUJMRSBBUlJPVzs7OzsKKzIxRDM7RE9XTldBUkRTIERPVUJMRSBBUlJPVztTbzswO09OOzs7OztOO0RPV04gRE9VQkxFIEFSUk9XOzs7OworMjFENDtMRUZUIFJJR0hUIERPVUJMRSBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzIxRDU7VVAgRE9XTiBET1VCTEUgQVJST1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMUQ2O05PUlRIIFdFU1QgRE9VQkxFIEFSUk9XO1NvOzA7T047Ozs7O047VVBQRVIgTEVGVCBET1VCTEUgQVJST1c7Ozs7CisyMUQ3O05PUlRIIEVBU1QgRE9VQkxFIEFSUk9XO1NvOzA7T047Ozs7O047VVBQRVIgUklHSFQgRE9VQkxFIEFSUk9XOzs7OworMjFEODtTT1VUSCBFQVNUIERPVUJMRSBBUlJPVztTbzswO09OOzs7OztOO0xPV0VSIFJJR0hUIERPVUJMRSBBUlJPVzs7OzsKKzIxRDk7U09VVEggV0VTVCBET1VCTEUgQVJST1c7U287MDtPTjs7Ozs7TjtMT1dFUiBMRUZUIERPVUJMRSBBUlJPVzs7OzsKKzIxREE7TEVGVFdBUkRTIFRSSVBMRSBBUlJPVztTbzswO09OOzs7OztOO0xFRlQgVFJJUExFIEFSUk9XOzs7OworMjFEQjtSSUdIVFdBUkRTIFRSSVBMRSBBUlJPVztTbzswO09OOzs7OztOO1JJR0hUIFRSSVBMRSBBUlJPVzs7OzsKKzIxREM7TEVGVFdBUkRTIFNRVUlHR0xFIEFSUk9XO1NvOzA7T047Ozs7O047TEVGVCBTUVVJR0dMRSBBUlJPVzs7OzsKKzIxREQ7UklHSFRXQVJEUyBTUVVJR0dMRSBBUlJPVztTbzswO09OOzs7OztOO1JJR0hUIFNRVUlHR0xFIEFSUk9XOzs7OworMjFERTtVUFdBUkRTIEFSUk9XIFdJVEggRE9VQkxFIFNUUk9LRTtTbzswO09OOzs7OztOO1VQIEFSUk9XIFdJVEggRE9VQkxFIFNUUk9LRTs7OzsKKzIxREY7RE9XTldBUkRTIEFSUk9XIFdJVEggRE9VQkxFIFNUUk9LRTtTbzswO09OOzs7OztOO0RPV04gQVJST1cgV0lUSCBET1VCTEUgU1RST0tFOzs7OworMjFFMDtMRUZUV0FSRFMgREFTSEVEIEFSUk9XO1NvOzA7T047Ozs7O047TEVGVCBEQVNIRUQgQVJST1c7Ozs7CisyMUUxO1VQV0FSRFMgREFTSEVEIEFSUk9XO1NvOzA7T047Ozs7O047VVAgREFTSEVEIEFSUk9XOzs7OworMjFFMjtSSUdIVFdBUkRTIERBU0hFRCBBUlJPVztTbzswO09OOzs7OztOO1JJR0hUIERBU0hFRCBBUlJPVzs7OzsKKzIxRTM7RE9XTldBUkRTIERBU0hFRCBBUlJPVztTbzswO09OOzs7OztOO0RPV04gREFTSEVEIEFSUk9XOzs7OworMjFFNDtMRUZUV0FSRFMgQVJST1cgVE8gQkFSO1NvOzA7T047Ozs7O047TEVGVCBBUlJPVyBUTyBCQVI7Ozs7CisyMUU1O1JJR0hUV0FSRFMgQVJST1cgVE8gQkFSO1NvOzA7T047Ozs7O047UklHSFQgQVJST1cgVE8gQkFSOzs7OworMjFFNjtMRUZUV0FSRFMgV0hJVEUgQVJST1c7U287MDtPTjs7Ozs7TjtXSElURSBMRUZUIEFSUk9XOzs7OworMjFFNztVUFdBUkRTIFdISVRFIEFSUk9XO1NvOzA7T047Ozs7O047V0hJVEUgVVAgQVJST1c7Ozs7CisyMUU4O1JJR0hUV0FSRFMgV0hJVEUgQVJST1c7U287MDtPTjs7Ozs7TjtXSElURSBSSUdIVCBBUlJPVzs7OzsKKzIxRTk7RE9XTldBUkRTIFdISVRFIEFSUk9XO1NvOzA7T047Ozs7O047V0hJVEUgRE9XTiBBUlJPVzs7OzsKKzIxRUE7VVBXQVJEUyBXSElURSBBUlJPVyBGUk9NIEJBUjtTbzswO09OOzs7OztOO1dISVRFIFVQIEFSUk9XIEZST00gQkFSOzs7OworMjFFQjtVUFdBUkRTIFdISVRFIEFSUk9XIE9OIFBFREVTVEFMO1NvOzA7T047Ozs7O047Ozs7OworMjFFQztVUFdBUkRTIFdISVRFIEFSUk9XIE9OIFBFREVTVEFMIFdJVEggSE9SSVpPTlRBTCBCQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMUVEO1VQV0FSRFMgV0hJVEUgQVJST1cgT04gUEVERVNUQUwgV0lUSCBWRVJUSUNBTCBCQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMUVFO1VQV0FSRFMgV0hJVEUgRE9VQkxFIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMjFFRjtVUFdBUkRTIFdISVRFIERPVUJMRSBBUlJPVyBPTiBQRURFU1RBTDtTbzswO09OOzs7OztOOzs7OzsKKzIxRjA7UklHSFRXQVJEUyBXSElURSBBUlJPVyBGUk9NIFdBTEw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMUYxO05PUlRIIFdFU1QgQVJST1cgVE8gQ09STkVSO1NvOzA7T047Ozs7O047Ozs7OworMjFGMjtTT1VUSCBFQVNUIEFSUk9XIFRPIENPUk5FUjtTbzswO09OOzs7OztOOzs7OzsKKzIxRjM7VVAgRE9XTiBXSElURSBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIxRjQ7UklHSFQgQVJST1cgV0lUSCBTTUFMTCBDSVJDTEU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMUY1O0RPV05XQVJEUyBBUlJPVyBMRUZUV0FSRFMgT0YgVVBXQVJEUyBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzIxRjY7VEhSRUUgUklHSFRXQVJEUyBBUlJPV1M7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMUY3O0xFRlRXQVJEUyBBUlJPVyBXSVRIIFZFUlRJQ0FMIFNUUk9LRTtTbTswO09OOzs7OztOOzs7OzsKKzIxRjg7UklHSFRXQVJEUyBBUlJPVyBXSVRIIFZFUlRJQ0FMIFNUUk9LRTtTbTswO09OOzs7OztOOzs7OzsKKzIxRjk7TEVGVCBSSUdIVCBBUlJPVyBXSVRIIFZFUlRJQ0FMIFNUUk9LRTtTbTswO09OOzs7OztOOzs7OzsKKzIxRkE7TEVGVFdBUkRTIEFSUk9XIFdJVEggRE9VQkxFIFZFUlRJQ0FMIFNUUk9LRTtTbTswO09OOzs7OztOOzs7OzsKKzIxRkI7UklHSFRXQVJEUyBBUlJPVyBXSVRIIERPVUJMRSBWRVJUSUNBTCBTVFJPS0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMUZDO0xFRlQgUklHSFQgQVJST1cgV0lUSCBET1VCTEUgVkVSVElDQUwgU1RST0tFO1NtOzA7T047Ozs7O047Ozs7OworMjFGRDtMRUZUV0FSRFMgT1BFTi1IRUFERUQgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMUZFO1JJR0hUV0FSRFMgT1BFTi1IRUFERUQgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMUZGO0xFRlQgUklHSFQgT1BFTi1IRUFERUQgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjAwO0ZPUiBBTEw7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjAxO0NPTVBMRU1FTlQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjAyO1BBUlRJQUwgRElGRkVSRU5USUFMO1NtOzA7T047Ozs7O1k7Ozs7OworMjIwMztUSEVSRSBFWElTVFM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjA0O1RIRVJFIERPRVMgTk9UIEVYSVNUO1NtOzA7T047MjIwMyAwMzM4Ozs7O1k7Ozs7OworMjIwNTtFTVBUWSBTRVQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjA2O0lOQ1JFTUVOVDtTbTswO09OOzs7OztOOzs7OzsKKzIyMDc7TkFCTEE7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjA4O0VMRU1FTlQgT0Y7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjA5O05PVCBBTiBFTEVNRU5UIE9GO1NtOzA7T047MjIwOCAwMzM4Ozs7O1k7Ozs7OworMjIwQTtTTUFMTCBFTEVNRU5UIE9GO1NtOzA7T047Ozs7O1k7Ozs7OworMjIwQjtDT05UQUlOUyBBUyBNRU1CRVI7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjBDO0RPRVMgTk9UIENPTlRBSU4gQVMgTUVNQkVSO1NtOzA7T047MjIwQiAwMzM4Ozs7O1k7Ozs7OworMjIwRDtTTUFMTCBDT05UQUlOUyBBUyBNRU1CRVI7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjBFO0VORCBPRiBQUk9PRjtTbTswO09OOzs7OztOOzs7OzsKKzIyMEY7Ti1BUlkgUFJPRFVDVDtTbTswO09OOzs7OztOOzs7OzsKKzIyMTA7Ti1BUlkgQ09QUk9EVUNUO1NtOzA7T047Ozs7O047Ozs7OworMjIxMTtOLUFSWSBTVU1NQVRJT047U207MDtPTjs7Ozs7WTs7Ozs7CisyMjEyO01JTlVTIFNJR047U207MDtFVDs7Ozs7Tjs7Ozs7CisyMjEzO01JTlVTLU9SLVBMVVMgU0lHTjtTbTswO0VUOzs7OztOOzs7OzsKKzIyMTQ7RE9UIFBMVVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjE1O0RJVklTSU9OIFNMQVNIO1NtOzA7T047Ozs7O1k7Ozs7OworMjIxNjtTRVQgTUlOVVM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjE3O0FTVEVSSVNLIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjIxODtSSU5HIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjIxOTtCVUxMRVQgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjFBO1NRVUFSRSBST09UO1NtOzA7T047Ozs7O1k7Ozs7OworMjIxQjtDVUJFIFJPT1Q7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjFDO0ZPVVJUSCBST09UO1NtOzA7T047Ozs7O1k7Ozs7OworMjIxRDtQUk9QT1JUSU9OQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjFFO0lORklOSVRZO1NtOzA7T047Ozs7O047Ozs7OworMjIxRjtSSUdIVCBBTkdMRTtTbTswO09OOzs7OztZOzs7OzsKKzIyMjA7QU5HTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjIxO01FQVNVUkVEIEFOR0xFO1NtOzA7T047Ozs7O1k7Ozs7OworMjIyMjtTUEhFUklDQUwgQU5HTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjIzO0RJVklERVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjI0O0RPRVMgTk9UIERJVklERTtTbTswO09OOzIyMjMgMDMzODs7OztZOzs7OzsKKzIyMjU7UEFSQUxMRUwgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjI2O05PVCBQQVJBTExFTCBUTztTbTswO09OOzIyMjUgMDMzODs7OztZOzs7OzsKKzIyMjc7TE9HSUNBTCBBTkQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjI4O0xPR0lDQUwgT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjI5O0lOVEVSU0VDVElPTjtTbTswO09OOzs7OztOOzs7OzsKKzIyMkE7VU5JT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjJCO0lOVEVHUkFMO1NtOzA7T047Ozs7O1k7Ozs7OworMjIyQztET1VCTEUgSU5URUdSQUw7U207MDtPTjs8Y29tcGF0PiAyMjJCIDIyMkI7Ozs7WTs7Ozs7CisyMjJEO1RSSVBMRSBJTlRFR1JBTDtTbTswO09OOzxjb21wYXQ+IDIyMkIgMjIyQiAyMjJCOzs7O1k7Ozs7OworMjIyRTtDT05UT1VSIElOVEVHUkFMO1NtOzA7T047Ozs7O1k7Ozs7OworMjIyRjtTVVJGQUNFIElOVEVHUkFMO1NtOzA7T047PGNvbXBhdD4gMjIyRSAyMjJFOzs7O1k7Ozs7OworMjIzMDtWT0xVTUUgSU5URUdSQUw7U207MDtPTjs8Y29tcGF0PiAyMjJFIDIyMkUgMjIyRTs7OztZOzs7OzsKKzIyMzE7Q0xPQ0tXSVNFIElOVEVHUkFMO1NtOzA7T047Ozs7O1k7Ozs7OworMjIzMjtDTE9DS1dJU0UgQ09OVE9VUiBJTlRFR1JBTDtTbTswO09OOzs7OztZOzs7OzsKKzIyMzM7QU5USUNMT0NLV0lTRSBDT05UT1VSIElOVEVHUkFMO1NtOzA7T047Ozs7O1k7Ozs7OworMjIzNDtUSEVSRUZPUkU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjM1O0JFQ0FVU0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjM2O1JBVElPO1NtOzA7T047Ozs7O047Ozs7OworMjIzNztQUk9QT1JUSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjIzODtET1QgTUlOVVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjM5O0VYQ0VTUztTbTswO09OOzs7OztZOzs7OzsKKzIyM0E7R0VPTUVUUklDIFBST1BPUlRJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjNCO0hPTU9USEVUSUM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjNDO1RJTERFIE9QRVJBVE9SO1NtOzA7T047Ozs7O1k7Ozs7OworMjIzRDtSRVZFUlNFRCBUSUxERTtTbTswO09OOzs7OztZOztsYXp5IFM7OzsKKzIyM0U7SU5WRVJURUQgTEFaWSBTO1NtOzA7T047Ozs7O1k7Ozs7OworMjIzRjtTSU5FIFdBVkU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjQwO1dSRUFUSCBQUk9EVUNUO1NtOzA7T047Ozs7O1k7Ozs7OworMjI0MTtOT1QgVElMREU7U207MDtPTjsyMjNDIDAzMzg7Ozs7WTs7Ozs7CisyMjQyO01JTlVTIFRJTERFO1NtOzA7T047Ozs7O1k7Ozs7OworMjI0MztBU1lNUFRPVElDQUxMWSBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyNDQ7Tk9UIEFTWU1QVE9USUNBTExZIEVRVUFMIFRPO1NtOzA7T047MjI0MyAwMzM4Ozs7O1k7Ozs7OworMjI0NTtBUFBST1hJTUFURUxZIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI0NjtBUFBST1hJTUFURUxZIEJVVCBOT1QgQUNUVUFMTFkgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjQ3O05FSVRIRVIgQVBQUk9YSU1BVEVMWSBOT1IgQUNUVUFMTFkgRVFVQUwgVE87U207MDtPTjsyMjQ1IDAzMzg7Ozs7WTs7Ozs7CisyMjQ4O0FMTU9TVCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyNDk7Tk9UIEFMTU9TVCBFUVVBTCBUTztTbTswO09OOzIyNDggMDMzODs7OztZOzs7OzsKKzIyNEE7QUxNT1NUIEVRVUFMIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI0QjtUUklQTEUgVElMREU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjRDO0FMTCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyNEQ7RVFVSVZBTEVOVCBUTztTbTswO09OOzs7OztOOzs7OzsKKzIyNEU7R0VPTUVUUklDQUxMWSBFUVVJVkFMRU5UIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjI0RjtESUZGRVJFTkNFIEJFVFdFRU47U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjUwO0FQUFJPQUNIRVMgVEhFIExJTUlUO1NtOzA7T047Ozs7O047Ozs7OworMjI1MTtHRU9NRVRSSUNBTExZIEVRVUFMIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjI1MjtBUFBST1hJTUFURUxZIEVRVUFMIFRPIE9SIFRIRSBJTUFHRSBPRjtTbTswO09OOzs7OztZOzs7OzsKKzIyNTM7SU1BR0UgT0YgT1IgQVBQUk9YSU1BVEVMWSBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyNTQ7Q09MT04gRVFVQUxTO1NtOzA7T047Ozs7O1k7Q09MT04gRVFVQUw7Ozs7CisyMjU1O0VRVUFMUyBDT0xPTjtTbTswO09OOzs7OztZO0VRVUFMIENPTE9OOzs7OworMjI1NjtSSU5HIElOIEVRVUFMIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjI1NztSSU5HIEVRVUFMIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjI1ODtDT1JSRVNQT05EUyBUTztTbTswO09OOzs7OztOOzs7OzsKKzIyNTk7RVNUSU1BVEVTO1NtOzA7T047Ozs7O047Ozs7OworMjI1QTtFUVVJQU5HVUxBUiBUTztTbTswO09OOzs7OztOOzs7OzsKKzIyNUI7U1RBUiBFUVVBTFM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjVDO0RFTFRBIEVRVUFMIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjI1RDtFUVVBTCBUTyBCWSBERUZJTklUSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjI1RTtNRUFTVVJFRCBCWTtTbTswO09OOzs7OztOOzs7OzsKKzIyNUY7UVVFU1RJT05FRCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyNjA7Tk9UIEVRVUFMIFRPO1NtOzA7T047MDAzRCAwMzM4Ozs7O1k7Ozs7OworMjI2MTtJREVOVElDQUwgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjYyO05PVCBJREVOVElDQUwgVE87U207MDtPTjsyMjYxIDAzMzg7Ozs7WTs7Ozs7CisyMjYzO1NUUklDVExZIEVRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjY0O0xFU1MtVEhBTiBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZO0xFU1MgVEhBTiBPUiBFUVVBTCBUTzs7OzsKKzIyNjU7R1JFQVRFUi1USEFOIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7R1JFQVRFUiBUSEFOIE9SIEVRVUFMIFRPOzs7OworMjI2NjtMRVNTLVRIQU4gT1ZFUiBFUVVBTCBUTztTbTswO09OOzs7OztZO0xFU1MgVEhBTiBPVkVSIEVRVUFMIFRPOzs7OworMjI2NztHUkVBVEVSLVRIQU4gT1ZFUiBFUVVBTCBUTztTbTswO09OOzs7OztZO0dSRUFURVIgVEhBTiBPVkVSIEVRVUFMIFRPOzs7OworMjI2ODtMRVNTLVRIQU4gQlVUIE5PVCBFUVVBTCBUTztTbTswO09OOzs7OztZO0xFU1MgVEhBTiBCVVQgTk9UIEVRVUFMIFRPOzs7OworMjI2OTtHUkVBVEVSLVRIQU4gQlVUIE5PVCBFUVVBTCBUTztTbTswO09OOzs7OztZO0dSRUFURVIgVEhBTiBCVVQgTk9UIEVRVUFMIFRPOzs7OworMjI2QTtNVUNIIExFU1MtVEhBTjtTbTswO09OOzs7OztZO01VQ0ggTEVTUyBUSEFOOzs7OworMjI2QjtNVUNIIEdSRUFURVItVEhBTjtTbTswO09OOzs7OztZO01VQ0ggR1JFQVRFUiBUSEFOOzs7OworMjI2QztCRVRXRUVOO1NtOzA7T047Ozs7O047Ozs7OworMjI2RDtOT1QgRVFVSVZBTEVOVCBUTztTbTswO09OOzIyNEQgMDMzODs7OztOOzs7OzsKKzIyNkU7Tk9UIExFU1MtVEhBTjtTbTswO09OOzAwM0MgMDMzODs7OztZO05PVCBMRVNTIFRIQU47Ozs7CisyMjZGO05PVCBHUkVBVEVSLVRIQU47U207MDtPTjswMDNFIDAzMzg7Ozs7WTtOT1QgR1JFQVRFUiBUSEFOOzs7OworMjI3MDtORUlUSEVSIExFU1MtVEhBTiBOT1IgRVFVQUwgVE87U207MDtPTjsyMjY0IDAzMzg7Ozs7WTtORUlUSEVSIExFU1MgVEhBTiBOT1IgRVFVQUwgVE87Ozs7CisyMjcxO05FSVRIRVIgR1JFQVRFUi1USEFOIE5PUiBFUVVBTCBUTztTbTswO09OOzIyNjUgMDMzODs7OztZO05FSVRIRVIgR1JFQVRFUiBUSEFOIE5PUiBFUVVBTCBUTzs7OzsKKzIyNzI7TEVTUy1USEFOIE9SIEVRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7WTtMRVNTIFRIQU4gT1IgRVFVSVZBTEVOVCBUTzs7OzsKKzIyNzM7R1JFQVRFUi1USEFOIE9SIEVRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7WTtHUkVBVEVSIFRIQU4gT1IgRVFVSVZBTEVOVCBUTzs7OzsKKzIyNzQ7TkVJVEhFUiBMRVNTLVRIQU4gTk9SIEVRVUlWQUxFTlQgVE87U207MDtPTjsyMjcyIDAzMzg7Ozs7WTtORUlUSEVSIExFU1MgVEhBTiBOT1IgRVFVSVZBTEVOVCBUTzs7OzsKKzIyNzU7TkVJVEhFUiBHUkVBVEVSLVRIQU4gTk9SIEVRVUlWQUxFTlQgVE87U207MDtPTjsyMjczIDAzMzg7Ozs7WTtORUlUSEVSIEdSRUFURVIgVEhBTiBOT1IgRVFVSVZBTEVOVCBUTzs7OzsKKzIyNzY7TEVTUy1USEFOIE9SIEdSRUFURVItVEhBTjtTbTswO09OOzs7OztZO0xFU1MgVEhBTiBPUiBHUkVBVEVSIFRIQU47Ozs7CisyMjc3O0dSRUFURVItVEhBTiBPUiBMRVNTLVRIQU47U207MDtPTjs7Ozs7WTtHUkVBVEVSIFRIQU4gT1IgTEVTUyBUSEFOOzs7OworMjI3ODtORUlUSEVSIExFU1MtVEhBTiBOT1IgR1JFQVRFUi1USEFOO1NtOzA7T047MjI3NiAwMzM4Ozs7O1k7TkVJVEhFUiBMRVNTIFRIQU4gTk9SIEdSRUFURVIgVEhBTjs7OzsKKzIyNzk7TkVJVEhFUiBHUkVBVEVSLVRIQU4gTk9SIExFU1MtVEhBTjtTbTswO09OOzIyNzcgMDMzODs7OztZO05FSVRIRVIgR1JFQVRFUiBUSEFOIE5PUiBMRVNTIFRIQU47Ozs7CisyMjdBO1BSRUNFREVTO1NtOzA7T047Ozs7O1k7Ozs7OworMjI3QjtTVUNDRUVEUztTbTswO09OOzs7OztZOzs7OzsKKzIyN0M7UFJFQ0VERVMgT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjdEO1NVQ0NFRURTIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI3RTtQUkVDRURFUyBPUiBFUVVJVkFMRU5UIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI3RjtTVUNDRUVEUyBPUiBFUVVJVkFMRU5UIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI4MDtET0VTIE5PVCBQUkVDRURFO1NtOzA7T047MjI3QSAwMzM4Ozs7O1k7Ozs7OworMjI4MTtET0VTIE5PVCBTVUNDRUVEO1NtOzA7T047MjI3QiAwMzM4Ozs7O1k7Ozs7OworMjI4MjtTVUJTRVQgT0Y7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjgzO1NVUEVSU0VUIE9GO1NtOzA7T047Ozs7O1k7Ozs7OworMjI4NDtOT1QgQSBTVUJTRVQgT0Y7U207MDtPTjsyMjgyIDAzMzg7Ozs7WTs7Ozs7CisyMjg1O05PVCBBIFNVUEVSU0VUIE9GO1NtOzA7T047MjI4MyAwMzM4Ozs7O1k7Ozs7OworMjI4NjtTVUJTRVQgT0YgT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjg3O1NVUEVSU0VUIE9GIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI4ODtORUlUSEVSIEEgU1VCU0VUIE9GIE5PUiBFUVVBTCBUTztTbTswO09OOzIyODYgMDMzODs7OztZOzs7OzsKKzIyODk7TkVJVEhFUiBBIFNVUEVSU0VUIE9GIE5PUiBFUVVBTCBUTztTbTswO09OOzIyODcgMDMzODs7OztZOzs7OzsKKzIyOEE7U1VCU0VUIE9GIFdJVEggTk9UIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7U1VCU0VUIE9GIE9SIE5PVCBFUVVBTCBUTzs7OzsKKzIyOEI7U1VQRVJTRVQgT0YgV0lUSCBOT1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTtTVVBFUlNFVCBPRiBPUiBOT1QgRVFVQUwgVE87Ozs7CisyMjhDO01VTFRJU0VUO1NtOzA7T047Ozs7O1k7Ozs7OworMjI4RDtNVUxUSVNFVCBNVUxUSVBMSUNBVElPTjtTbTswO09OOzs7OztOOzs7OzsKKzIyOEU7TVVMVElTRVQgVU5JT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjhGO1NRVUFSRSBJTUFHRSBPRjtTbTswO09OOzs7OztZOzs7OzsKKzIyOTA7U1FVQVJFIE9SSUdJTkFMIE9GO1NtOzA7T047Ozs7O1k7Ozs7OworMjI5MTtTUVVBUkUgSU1BR0UgT0YgT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjkyO1NRVUFSRSBPUklHSU5BTCBPRiBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyOTM7U1FVQVJFIENBUDtTbTswO09OOzs7OztOOzs7OzsKKzIyOTQ7U1FVQVJFIENVUDtTbTswO09OOzs7OztOOzs7OzsKKzIyOTU7Q0lSQ0xFRCBQTFVTO1NtOzA7T047Ozs7O047Ozs7OworMjI5NjtDSVJDTEVEIE1JTlVTO1NtOzA7T047Ozs7O047Ozs7OworMjI5NztDSVJDTEVEIFRJTUVTO1NtOzA7T047Ozs7O047Ozs7OworMjI5ODtDSVJDTEVEIERJVklTSU9OIFNMQVNIO1NtOzA7T047Ozs7O1k7Ozs7OworMjI5OTtDSVJDTEVEIERPVCBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzIyOUE7Q0lSQ0xFRCBSSU5HIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjI5QjtDSVJDTEVEIEFTVEVSSVNLIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjI5QztDSVJDTEVEIEVRVUFMUztTbTswO09OOzs7OztOOzs7OzsKKzIyOUQ7Q0lSQ0xFRCBEQVNIO1NtOzA7T047Ozs7O047Ozs7OworMjI5RTtTUVVBUkVEIFBMVVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjlGO1NRVUFSRUQgTUlOVVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkEwO1NRVUFSRUQgVElNRVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkExO1NRVUFSRUQgRE9UIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjJBMjtSSUdIVCBUQUNLO1NtOzA7T047Ozs7O1k7Ozs7OworMjJBMztMRUZUIFRBQ0s7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkE0O0RPV04gVEFDSztTbTswO09OOzs7OztOOzs7OzsKKzIyQTU7VVAgVEFDSztTbTswO09OOzs7OztOOzs7OzsKKzIyQTY7QVNTRVJUSU9OO1NtOzA7T047Ozs7O1k7Ozs7OworMjJBNztNT0RFTFM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkE4O1RSVUU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkE5O0ZPUkNFUztTbTswO09OOzs7OztZOzs7OzsKKzIyQUE7VFJJUExFIFZFUlRJQ0FMIEJBUiBSSUdIVCBUVVJOU1RJTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkFCO0RPVUJMRSBWRVJUSUNBTCBCQVIgRE9VQkxFIFJJR0hUIFRVUk5TVElMRTtTbTswO09OOzs7OztZOzs7OzsKKzIyQUM7RE9FUyBOT1QgUFJPVkU7U207MDtPTjsyMkEyIDAzMzg7Ozs7WTs7Ozs7CisyMkFEO05PVCBUUlVFO1NtOzA7T047MjJBOCAwMzM4Ozs7O1k7Ozs7OworMjJBRTtET0VTIE5PVCBGT1JDRTtTbTswO09OOzIyQTkgMDMzODs7OztZOzs7OzsKKzIyQUY7TkVHQVRFRCBET1VCTEUgVkVSVElDQUwgQkFSIERPVUJMRSBSSUdIVCBUVVJOU1RJTEU7U207MDtPTjsyMkFCIDAzMzg7Ozs7WTs7Ozs7CisyMkIwO1BSRUNFREVTIFVOREVSIFJFTEFUSU9OO1NtOzA7T047Ozs7O1k7Ozs7OworMjJCMTtTVUNDRUVEUyBVTkRFUiBSRUxBVElPTjtTbTswO09OOzs7OztZOzs7OzsKKzIyQjI7Tk9STUFMIFNVQkdST1VQIE9GO1NtOzA7T047Ozs7O1k7Ozs7OworMjJCMztDT05UQUlOUyBBUyBOT1JNQUwgU1VCR1JPVVA7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkI0O05PUk1BTCBTVUJHUk9VUCBPRiBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyQjU7Q09OVEFJTlMgQVMgTk9STUFMIFNVQkdST1VQIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjJCNjtPUklHSU5BTCBPRjtTbTswO09OOzs7OztZOzs7OzsKKzIyQjc7SU1BR0UgT0Y7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkI4O01VTFRJTUFQO1NtOzA7T047Ozs7O1k7Ozs7OworMjJCOTtIRVJNSVRJQU4gQ09OSlVHQVRFIE1BVFJJWDtTbTswO09OOzs7OztOOzs7OzsKKzIyQkE7SU5URVJDQUxBVEU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkJCO1hPUjtTbTswO09OOzs7OztOOzs7OzsKKzIyQkM7TkFORDtTbTswO09OOzs7OztOOzs7OzsKKzIyQkQ7Tk9SO1NtOzA7T047Ozs7O047Ozs7OworMjJCRTtSSUdIVCBBTkdMRSBXSVRIIEFSQztTbTswO09OOzs7OztZOzs7OzsKKzIyQkY7UklHSFQgVFJJQU5HTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkMwO04tQVJZIExPR0lDQUwgQU5EO1NtOzA7T047Ozs7O047Ozs7OworMjJDMTtOLUFSWSBMT0dJQ0FMIE9SO1NtOzA7T047Ozs7O047Ozs7OworMjJDMjtOLUFSWSBJTlRFUlNFQ1RJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkMzO04tQVJZIFVOSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjJDNDtESUFNT05EIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjJDNTtET1QgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkM2O1NUQVIgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkM3O0RJVklTSU9OIFRJTUVTO1NtOzA7T047Ozs7O047Ozs7OworMjJDODtCT1dUSUU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkM5O0xFRlQgTk9STUFMIEZBQ1RPUiBTRU1JRElSRUNUIFBST0RVQ1Q7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkNBO1JJR0hUIE5PUk1BTCBGQUNUT1IgU0VNSURJUkVDVCBQUk9EVUNUO1NtOzA7T047Ozs7O1k7Ozs7OworMjJDQjtMRUZUIFNFTUlESVJFQ1QgUFJPRFVDVDtTbTswO09OOzs7OztZOzs7OzsKKzIyQ0M7UklHSFQgU0VNSURJUkVDVCBQUk9EVUNUO1NtOzA7T047Ozs7O1k7Ozs7OworMjJDRDtSRVZFUlNFRCBUSUxERSBFUVVBTFM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkNFO0NVUkxZIExPR0lDQUwgT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkNGO0NVUkxZIExPR0lDQUwgQU5EO1NtOzA7T047Ozs7O047Ozs7OworMjJEMDtET1VCTEUgU1VCU0VUO1NtOzA7T047Ozs7O1k7Ozs7OworMjJEMTtET1VCTEUgU1VQRVJTRVQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkQyO0RPVUJMRSBJTlRFUlNFQ1RJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkQzO0RPVUJMRSBVTklPTjtTbTswO09OOzs7OztOOzs7OzsKKzIyRDQ7UElUQ0hGT1JLO1NtOzA7T047Ozs7O047Ozs7OworMjJENTtFUVVBTCBBTkQgUEFSQUxMRUwgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkQ2O0xFU1MtVEhBTiBXSVRIIERPVDtTbTswO09OOzs7OztZO0xFU1MgVEhBTiBXSVRIIERPVDs7OzsKKzIyRDc7R1JFQVRFUi1USEFOIFdJVEggRE9UO1NtOzA7T047Ozs7O1k7R1JFQVRFUiBUSEFOIFdJVEggRE9UOzs7OworMjJEODtWRVJZIE1VQ0ggTEVTUy1USEFOO1NtOzA7T047Ozs7O1k7VkVSWSBNVUNIIExFU1MgVEhBTjs7OzsKKzIyRDk7VkVSWSBNVUNIIEdSRUFURVItVEhBTjtTbTswO09OOzs7OztZO1ZFUlkgTVVDSCBHUkVBVEVSIFRIQU47Ozs7CisyMkRBO0xFU1MtVEhBTiBFUVVBTCBUTyBPUiBHUkVBVEVSLVRIQU47U207MDtPTjs7Ozs7WTtMRVNTIFRIQU4gRVFVQUwgVE8gT1IgR1JFQVRFUiBUSEFOOzs7OworMjJEQjtHUkVBVEVSLVRIQU4gRVFVQUwgVE8gT1IgTEVTUy1USEFOO1NtOzA7T047Ozs7O1k7R1JFQVRFUiBUSEFOIEVRVUFMIFRPIE9SIExFU1MgVEhBTjs7OzsKKzIyREM7RVFVQUwgVE8gT1IgTEVTUy1USEFOO1NtOzA7T047Ozs7O1k7RVFVQUwgVE8gT1IgTEVTUyBUSEFOOzs7OworMjJERDtFUVVBTCBUTyBPUiBHUkVBVEVSLVRIQU47U207MDtPTjs7Ozs7WTtFUVVBTCBUTyBPUiBHUkVBVEVSIFRIQU47Ozs7CisyMkRFO0VRVUFMIFRPIE9SIFBSRUNFREVTO1NtOzA7T047Ozs7O1k7Ozs7OworMjJERjtFUVVBTCBUTyBPUiBTVUNDRUVEUztTbTswO09OOzs7OztZOzs7OzsKKzIyRTA7RE9FUyBOT1QgUFJFQ0VERSBPUiBFUVVBTDtTbTswO09OOzIyN0MgMDMzODs7OztZOzs7OzsKKzIyRTE7RE9FUyBOT1QgU1VDQ0VFRCBPUiBFUVVBTDtTbTswO09OOzIyN0QgMDMzODs7OztZOzs7OzsKKzIyRTI7Tk9UIFNRVUFSRSBJTUFHRSBPRiBPUiBFUVVBTCBUTztTbTswO09OOzIyOTEgMDMzODs7OztZOzs7OzsKKzIyRTM7Tk9UIFNRVUFSRSBPUklHSU5BTCBPRiBPUiBFUVVBTCBUTztTbTswO09OOzIyOTIgMDMzODs7OztZOzs7OzsKKzIyRTQ7U1FVQVJFIElNQUdFIE9GIE9SIE5PVCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyRTU7U1FVQVJFIE9SSUdJTkFMIE9GIE9SIE5PVCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyRTY7TEVTUy1USEFOIEJVVCBOT1QgRVFVSVZBTEVOVCBUTztTbTswO09OOzs7OztZO0xFU1MgVEhBTiBCVVQgTk9UIEVRVUlWQUxFTlQgVE87Ozs7CisyMkU3O0dSRUFURVItVEhBTiBCVVQgTk9UIEVRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7WTtHUkVBVEVSIFRIQU4gQlVUIE5PVCBFUVVJVkFMRU5UIFRPOzs7OworMjJFODtQUkVDRURFUyBCVVQgTk9UIEVRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMkU5O1NVQ0NFRURTIEJVVCBOT1QgRVFVSVZBTEVOVCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyRUE7Tk9UIE5PUk1BTCBTVUJHUk9VUCBPRjtTbTswO09OOzIyQjIgMDMzODs7OztZOzs7OzsKKzIyRUI7RE9FUyBOT1QgQ09OVEFJTiBBUyBOT1JNQUwgU1VCR1JPVVA7U207MDtPTjsyMkIzIDAzMzg7Ozs7WTs7Ozs7CisyMkVDO05PVCBOT1JNQUwgU1VCR1JPVVAgT0YgT1IgRVFVQUwgVE87U207MDtPTjsyMkI0IDAzMzg7Ozs7WTs7Ozs7CisyMkVEO0RPRVMgTk9UIENPTlRBSU4gQVMgTk9STUFMIFNVQkdST1VQIE9SIEVRVUFMO1NtOzA7T047MjJCNSAwMzM4Ozs7O1k7Ozs7OworMjJFRTtWRVJUSUNBTCBFTExJUFNJUztTbTswO09OOzs7OztOOzs7OzsKKzIyRUY7TUlETElORSBIT1JJWk9OVEFMIEVMTElQU0lTO1NtOzA7T047Ozs7O047Ozs7OworMjJGMDtVUCBSSUdIVCBESUFHT05BTCBFTExJUFNJUztTbTswO09OOzs7OztZOzs7OzsKKzIyRjE7RE9XTiBSSUdIVCBESUFHT05BTCBFTExJUFNJUztTbTswO09OOzs7OztZOzs7OzsKKzIyRjI7RUxFTUVOVCBPRiBXSVRIIExPTkcgSE9SSVpPTlRBTCBTVFJPS0U7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkYzO0VMRU1FTlQgT0YgV0lUSCBWRVJUSUNBTCBCQVIgQVQgRU5EIE9GIEhPUklaT05UQUwgU1RST0tFO1NtOzA7T047Ozs7O1k7Ozs7OworMjJGNDtTTUFMTCBFTEVNRU5UIE9GIFdJVEggVkVSVElDQUwgQkFSIEFUIEVORCBPRiBIT1JJWk9OVEFMIFNUUk9LRTtTbTswO09OOzs7OztZOzs7OzsKKzIyRjU7RUxFTUVOVCBPRiBXSVRIIERPVCBBQk9WRTtTbTswO09OOzs7OztZOzs7OzsKKzIyRjY7RUxFTUVOVCBPRiBXSVRIIE9WRVJCQVI7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkY3O1NNQUxMIEVMRU1FTlQgT0YgV0lUSCBPVkVSQkFSO1NtOzA7T047Ozs7O1k7Ozs7OworMjJGODtFTEVNRU5UIE9GIFdJVEggVU5ERVJCQVI7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkY5O0VMRU1FTlQgT0YgV0lUSCBUV08gSE9SSVpPTlRBTCBTVFJPS0VTO1NtOzA7T047Ozs7O1k7Ozs7OworMjJGQTtDT05UQUlOUyBXSVRIIExPTkcgSE9SSVpPTlRBTCBTVFJPS0U7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkZCO0NPTlRBSU5TIFdJVEggVkVSVElDQUwgQkFSIEFUIEVORCBPRiBIT1JJWk9OVEFMIFNUUk9LRTtTbTswO09OOzs7OztZOzs7OzsKKzIyRkM7U01BTEwgQ09OVEFJTlMgV0lUSCBWRVJUSUNBTCBCQVIgQVQgRU5EIE9GIEhPUklaT05UQUwgU1RST0tFO1NtOzA7T047Ozs7O1k7Ozs7OworMjJGRDtDT05UQUlOUyBXSVRIIE9WRVJCQVI7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkZFO1NNQUxMIENPTlRBSU5TIFdJVEggT1ZFUkJBUjtTbTswO09OOzs7OztZOzs7OzsKKzIyRkY7WiBOT1RBVElPTiBCQUcgTUVNQkVSU0hJUDtTbTswO09OOzs7OztZOzs7OzsKKzIzMDA7RElBTUVURVIgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzIzMDE7RUxFQ1RSSUMgQVJST1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzAyO0hPVVNFO1NvOzA7T047Ozs7O047Ozs7OworMjMwMztVUCBBUlJPV0hFQUQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzA0O0RPV04gQVJST1dIRUFEO1NvOzA7T047Ozs7O047Ozs7OworMjMwNTtQUk9KRUNUSVZFO1NvOzA7T047Ozs7O047Ozs7OworMjMwNjtQRVJTUEVDVElWRTtTbzswO09OOzs7OztOOzs7OzsKKzIzMDc7V0FWWSBMSU5FO1NvOzA7T047Ozs7O047Ozs7OworMjMwODtMRUZUIENFSUxJTkc7U207MDtPTjs7Ozs7WTs7Ozs7CisyMzA5O1JJR0hUIENFSUxJTkc7U207MDtPTjs7Ozs7WTs7Ozs7CisyMzBBO0xFRlQgRkxPT1I7U207MDtPTjs7Ozs7WTs7Ozs7CisyMzBCO1JJR0hUIEZMT09SO1NtOzA7T047Ozs7O1k7Ozs7OworMjMwQztCT1RUT00gUklHSFQgQ1JPUDtTbzswO09OOzs7OztOOzs7OzsKKzIzMEQ7Qk9UVE9NIExFRlQgQ1JPUDtTbzswO09OOzs7OztOOzs7OzsKKzIzMEU7VE9QIFJJR0hUIENST1A7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzBGO1RPUCBMRUZUIENST1A7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzEwO1JFVkVSU0VEIE5PVCBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMjMxMTtTUVVBUkUgTE9aRU5HRTtTbzswO09OOzs7OztOOzs7OzsKKzIzMTI7QVJDO1NvOzA7T047Ozs7O047Ozs7OworMjMxMztTRUdNRU5UO1NvOzA7T047Ozs7O047Ozs7OworMjMxNDtTRUNUT1I7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzE1O1RFTEVQSE9ORSBSRUNPUkRFUjtTbzswO09OOzs7OztOOzs7OzsKKzIzMTY7UE9TSVRJT04gSU5ESUNBVE9SO1NvOzA7T047Ozs7O047Ozs7OworMjMxNztWSUVXREFUQSBTUVVBUkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzE4O1BMQUNFIE9GIElOVEVSRVNUIFNJR047U287MDtPTjs7Ozs7TjtDT01NQU5EIEtFWTs7OzsKKzIzMTk7VFVSTkVEIE5PVCBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMjMxQTtXQVRDSDtTbzswO09OOzs7OztOOzs7OzsKKzIzMUI7SE9VUkdMQVNTO1NvOzA7T047Ozs7O047Ozs7OworMjMxQztUT1AgTEVGVCBDT1JORVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzFEO1RPUCBSSUdIVCBDT1JORVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzFFO0JPVFRPTSBMRUZUIENPUk5FUjtTbzswO09OOzs7OztOOzs7OzsKKzIzMUY7Qk9UVE9NIFJJR0hUIENPUk5FUjtTbzswO09OOzs7OztOOzs7OzsKKzIzMjA7VE9QIEhBTEYgSU5URUdSQUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyMzIxO0JPVFRPTSBIQUxGIElOVEVHUkFMO1NtOzA7T047Ozs7O1k7Ozs7OworMjMyMjtGUk9XTjtTbzswO09OOzs7OztOOzs7OzsKKzIzMjM7U01JTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzI0O1VQIEFSUk9XSEVBRCBCRVRXRUVOIFRXTyBIT1JJWk9OVEFMIEJBUlM7U287MDtPTjs7Ozs7TjtFTlRFUiBLRVk7Ozs7CisyMzI1O09QVElPTiBLRVk7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzI2O0VSQVNFIFRPIFRIRSBSSUdIVDtTbzswO09OOzs7OztOO0RFTEVURSBUTyBUSEUgUklHSFQgS0VZOzs7OworMjMyNztYIElOIEEgUkVDVEFOR0xFIEJPWDtTbzswO09OOzs7OztOO0NMRUFSIEtFWTs7OzsKKzIzMjg7S0VZQk9BUkQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzI5O0xFRlQtUE9JTlRJTkcgQU5HTEUgQlJBQ0tFVDtQczswO09OOzMwMDg7Ozs7WTtCUkE7Ozs7CisyMzJBO1JJR0hULVBPSU5USU5HIEFOR0xFIEJSQUNLRVQ7UGU7MDtPTjszMDA5Ozs7O1k7S0VUOzs7OworMjMyQjtFUkFTRSBUTyBUSEUgTEVGVDtTbzswO09OOzs7OztOO0RFTEVURSBUTyBUSEUgTEVGVCBLRVk7Ozs7CisyMzJDO0JFTlpFTkUgUklORztTbzswO09OOzs7OztOOzs7OzsKKzIzMkQ7Q1lMSU5EUklDSVRZO1NvOzA7T047Ozs7O047Ozs7OworMjMyRTtBTEwgQVJPVU5ELVBST0ZJTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzJGO1NZTU1FVFJZO1NvOzA7T047Ozs7O047Ozs7OworMjMzMDtUT1RBTCBSVU5PVVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzMxO0RJTUVOU0lPTiBPUklHSU47U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzMyO0NPTklDQUwgVEFQRVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzMzO1NMT1BFO1NvOzA7T047Ozs7O047Ozs7OworMjMzNDtDT1VOVEVSQk9SRTtTbzswO09OOzs7OztOOzs7OzsKKzIzMzU7Q09VTlRFUlNJTks7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzM2O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBJLUJFQU07U287MDtMOzs7OztOOzs7OzsKKzIzMzc7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFNRVUlTSCBRVUFEO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzM4O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIEVRVUFMO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzM5O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIERJVklERTtTbzswO0w7Ozs7O047Ozs7OworMjMzQTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBESUFNT05EO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzNCO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIEpPVDtTbzswO0w7Ozs7O047Ozs7OworMjMzQztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBDSVJDTEU7U287MDtMOzs7OztOOzs7OzsKKzIzM0Q7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIENJUkNMRSBTVElMRTtTbzswO0w7Ozs7O047Ozs7OworMjMzRTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgQ0lSQ0xFIEpPVDtTbzswO0w7Ozs7O047Ozs7OworMjMzRjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgU0xBU0ggQkFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzQwO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBCQUNLU0xBU0ggQkFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzQxO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIFNMQVNIO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzQyO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIEJBQ0tTTEFTSDtTbzswO0w7Ozs7O047Ozs7OworMjM0MztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBMRVNTLVRIQU47U287MDtMOzs7OztOOzs7OzsKKzIzNDQ7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgR1JFQVRFUi1USEFOO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzQ1O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBMRUZUV0FSRFMgVkFORTtTbzswO0w7Ozs7O047Ozs7OworMjM0NjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUklHSFRXQVJEUyBWQU5FO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzQ3O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIExFRlRXQVJEUyBBUlJPVztTbzswO0w7Ozs7O047Ozs7OworMjM0ODtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzQ5O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBDSVJDTEUgQkFDS1NMQVNIO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzRBO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBET1dOIFRBQ0sgVU5ERVJCQVI7U287MDtMOzs7OztOOzsqOzs7CisyMzRCO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBERUxUQSBTVElMRTtTbzswO0w7Ozs7O047Ozs7OworMjM0QztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBET1dOIENBUkVUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzREO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIERFTFRBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzRFO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBET1dOIFRBQ0sgSk9UO1NvOzA7TDs7Ozs7Tjs7Kjs7OworMjM0RjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgVVBXQVJEUyBWQU5FO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzUwO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIFVQV0FSRFMgQVJST1c7U287MDtMOzs7OztOOzs7OzsKKzIzNTE7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFVQIFRBQ0sgT1ZFUkJBUjtTbzswO0w7Ozs7O047Oyo7OzsKKzIzNTI7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERFTCBTVElMRTtTbzswO0w7Ozs7O047Ozs7OworMjM1MztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBVUCBDQVJFVDtTbzswO0w7Ozs7O047Ozs7OworMjM1NDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBERUw7U287MDtMOzs7OztOOzs7OzsKKzIzNTU7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFVQIFRBQ0sgSk9UO1NvOzA7TDs7Ozs7Tjs7Kjs7OworMjM1NjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgRE9XTldBUkRTIFZBTkU7U287MDtMOzs7OztOOzs7OzsKKzIzNTc7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgRE9XTldBUkRTIEFSUk9XO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzU4O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVU9URSBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM1OTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgREVMVEEgVU5ERVJCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNUE7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERJQU1PTkQgVU5ERVJCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNUI7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIEpPVCBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM1QztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgQ0lSQ0xFIFVOREVSQkFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzVEO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBVUCBTSE9FIEpPVDtTbzswO0w7Ozs7O047Ozs7OworMjM1RTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVPVEUgUVVBRDtTbzswO0w7Ozs7O047Ozs7OworMjM1RjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgQ0lSQ0xFIFNUQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNjA7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgQ09MT047U287MDtMOzs7OztOOzs7OzsKKzIzNjE7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFVQIFRBQ0sgRElBRVJFU0lTO1NvOzA7TDs7Ozs7Tjs7Kjs7OworMjM2MjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgREVMIERJQUVSRVNJUztTbzswO0w7Ozs7O047Ozs7OworMjM2MztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgU1RBUiBESUFFUkVTSVM7U287MDtMOzs7OztOOzs7OzsKKzIzNjQ7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIEpPVCBESUFFUkVTSVM7U287MDtMOzs7OztOOzs7OzsKKzIzNjU7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIENJUkNMRSBESUFFUkVTSVM7U287MDtMOzs7OztOOzs7OzsKKzIzNjY7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERPV04gU0hPRSBTVElMRTtTbzswO0w7Ozs7O047Ozs7OworMjM2NztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgTEVGVCBTSE9FIFNUSUxFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzY4O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBUSUxERSBESUFFUkVTSVM7U287MDtMOzs7OztOOzs7OzsKKzIzNjk7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIEdSRUFURVItVEhBTiBESUFFUkVTSVM7U287MDtMOzs7OztOOzs7OzsKKzIzNkE7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIENPTU1BIEJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM2QjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgREVMIFRJTERFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzZDO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBaSUxERTtTbzswO0w7Ozs7O047Ozs7OworMjM2RDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgU1RJTEUgVElMREU7U287MDtMOzs7OztOOzs7OzsKKzIzNkU7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFNFTUlDT0xPTiBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM2RjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBOT1QgRVFVQUw7U287MDtMOzs7OztOOzs7OzsKKzIzNzA7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgUVVFU1RJT047U287MDtMOzs7OztOOzs7OzsKKzIzNzE7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERPV04gQ0FSRVQgVElMREU7U287MDtMOzs7OztOOzs7OzsKKzIzNzI7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFVQIENBUkVUIFRJTERFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzczO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBJT1RBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzc0O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBSSE87U287MDtMOzs7OztOOzs7OzsKKzIzNzU7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIE9NRUdBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzc2O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBBTFBIQSBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM3NztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgRVBTSUxPTiBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM3ODtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgSU9UQSBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM3OTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgT01FR0EgVU5ERVJCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzN0E7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIEFMUEhBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzdCO05PVCBDSEVDSyBNQVJLO1NvOzA7T047Ozs7O047Ozs7OworMjM3QztSSUdIVCBBTkdMRSBXSVRIIERPV05XQVJEUyBaSUdaQUcgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMzdEO1NIT1VMREVSRUQgT1BFTiBCT1g7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzdFO0JFTEwgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM3RjtWRVJUSUNBTCBMSU5FIFdJVEggTUlERExFIERPVDtTbzswO09OOzs7OztOOzs7OzsKKzIzODA7SU5TRVJUSU9OIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzODE7Q09OVElOVU9VUyBVTkRFUkxJTkUgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM4MjtESVNDT05USU5VT1VTIFVOREVSTElORSBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzgzO0VNUEhBU0lTIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzODQ7Q09NUE9TSVRJT04gU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM4NTtXSElURSBTUVVBUkUgV0lUSCBDRU5UUkUgVkVSVElDQUwgTElORTtTbzswO09OOzs7OztOOzs7OzsKKzIzODY7RU5URVIgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM4NztBTFRFUk5BVElWRSBLRVkgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM4ODtIRUxNIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzODk7Q0lSQ0xFRCBIT1JJWk9OVEFMIEJBUiBXSVRIIE5PVENIO1NvOzA7T047Ozs7O047O3BhdXNlOzs7CisyMzhBO0NJUkNMRUQgVFJJQU5HTEUgRE9XTjtTbzswO09OOzs7OztOOzticmVhazs7OworMjM4QjtCUk9LRU4gQ0lSQ0xFIFdJVEggTk9SVEhXRVNUIEFSUk9XO1NvOzA7T047Ozs7O047O2VzY2FwZTs7OworMjM4QztVTkRPIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzOEQ7TU9OT1NUQUJMRSBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzhFO0hZU1RFUkVTSVMgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM4RjtPUEVOLUNJUkNVSVQtT1VUUFVUIEgtVFlQRSBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzkwO09QRU4tQ0lSQ1VJVC1PVVRQVVQgTC1UWVBFIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzOTE7UEFTU0lWRS1QVUxMLURPV04tT1VUUFVUIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzOTI7UEFTU0lWRS1QVUxMLVVQLU9VVFBVVCBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzkzO0RJUkVDVCBDVVJSRU5UIFNZTUJPTCBGT1JNIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzIzOTQ7U09GVFdBUkUtRlVOQ1RJT04gU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM5NTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRDtTbzswO0w7Ozs7O047Ozs7OworMjM5NjtERUNJTUFMIFNFUEFSQVRPUiBLRVkgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM5NztQUkVWSU9VUyBQQUdFO1NvOzA7T047Ozs7O047Ozs7OworMjM5ODtORVhUIFBBR0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzk5O1BSSU5UIFNDUkVFTiBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzlBO0NMRUFSIFNDUkVFTiBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzlCO0xFRlQgUEFSRU5USEVTSVMgVVBQRVIgSE9PSztTbTswO09OOzs7OztOOzs7OzsKKzIzOUM7TEVGVCBQQVJFTlRIRVNJUyBFWFRFTlNJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMzlEO0xFRlQgUEFSRU5USEVTSVMgTE9XRVIgSE9PSztTbTswO09OOzs7OztOOzs7OzsKKzIzOUU7UklHSFQgUEFSRU5USEVTSVMgVVBQRVIgSE9PSztTbTswO09OOzs7OztOOzs7OzsKKzIzOUY7UklHSFQgUEFSRU5USEVTSVMgRVhURU5TSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjNBMDtSSUdIVCBQQVJFTlRIRVNJUyBMT1dFUiBIT09LO1NtOzA7T047Ozs7O047Ozs7OworMjNBMTtMRUZUIFNRVUFSRSBCUkFDS0VUIFVQUEVSIENPUk5FUjtTbTswO09OOzs7OztOOzs7OzsKKzIzQTI7TEVGVCBTUVVBUkUgQlJBQ0tFVCBFWFRFTlNJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyM0EzO0xFRlQgU1FVQVJFIEJSQUNLRVQgTE9XRVIgQ09STkVSO1NtOzA7T047Ozs7O047Ozs7OworMjNBNDtSSUdIVCBTUVVBUkUgQlJBQ0tFVCBVUFBFUiBDT1JORVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyM0E1O1JJR0hUIFNRVUFSRSBCUkFDS0VUIEVYVEVOU0lPTjtTbTswO09OOzs7OztOOzs7OzsKKzIzQTY7UklHSFQgU1FVQVJFIEJSQUNLRVQgTE9XRVIgQ09STkVSO1NtOzA7T047Ozs7O047Ozs7OworMjNBNztMRUZUIENVUkxZIEJSQUNLRVQgVVBQRVIgSE9PSztTbTswO09OOzs7OztOOzs7OzsKKzIzQTg7TEVGVCBDVVJMWSBCUkFDS0VUIE1JRERMRSBQSUVDRTtTbTswO09OOzs7OztOOzs7OzsKKzIzQTk7TEVGVCBDVVJMWSBCUkFDS0VUIExPV0VSIEhPT0s7U207MDtPTjs7Ozs7Tjs7Ozs7CisyM0FBO0NVUkxZIEJSQUNLRVQgRVhURU5TSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjNBQjtSSUdIVCBDVVJMWSBCUkFDS0VUIFVQUEVSIEhPT0s7U207MDtPTjs7Ozs7Tjs7Ozs7CisyM0FDO1JJR0hUIENVUkxZIEJSQUNLRVQgTUlERExFIFBJRUNFO1NtOzA7T047Ozs7O047Ozs7OworMjNBRDtSSUdIVCBDVVJMWSBCUkFDS0VUIExPV0VSIEhPT0s7U207MDtPTjs7Ozs7Tjs7Ozs7CisyM0FFO0lOVEVHUkFMIEVYVEVOU0lPTjtTbTswO09OOzs7OztOOzs7OzsKKzIzQUY7SE9SSVpPTlRBTCBMSU5FIEVYVEVOU0lPTjtTbTswO09OOzs7OztOOzs7OzsKKzIzQjA7VVBQRVIgTEVGVCBPUiBMT1dFUiBSSUdIVCBDVVJMWSBCUkFDS0VUIFNFQ1RJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyM0IxO1VQUEVSIFJJR0hUIE9SIExPV0VSIExFRlQgQ1VSTFkgQlJBQ0tFVCBTRUNUSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjNCMjtTVU1NQVRJT04gVE9QO1NtOzA7T047Ozs7O047Ozs7OworMjNCMztTVU1NQVRJT04gQk9UVE9NO1NtOzA7T047Ozs7O047Ozs7OworMjNCNDtUT1AgU1FVQVJFIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7Tjs7Ozs7CisyM0I1O0JPVFRPTSBTUVVBUkUgQlJBQ0tFVDtQZTswO09OOzs7OztOOzs7OzsKKzIzQjY7Qk9UVE9NIFNRVUFSRSBCUkFDS0VUIE9WRVIgVE9QIFNRVUFSRSBCUkFDS0VUO1BvOzA7T047Ozs7O047Ozs7OworMjNCNztSQURJQ0FMIFNZTUJPTCBCT1RUT007U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0I4O0xFRlQgVkVSVElDQUwgQk9YIExJTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0I5O1JJR0hUIFZFUlRJQ0FMIEJPWCBMSU5FO1NvOzA7T047Ozs7O047Ozs7OworMjNCQTtIT1JJWk9OVEFMIFNDQU4gTElORS0xO1NvOzA7T047Ozs7O047Ozs7OworMjNCQjtIT1JJWk9OVEFMIFNDQU4gTElORS0zO1NvOzA7T047Ozs7O047Ozs7OworMjNCQztIT1JJWk9OVEFMIFNDQU4gTElORS03O1NvOzA7T047Ozs7O047Ozs7OworMjNCRDtIT1JJWk9OVEFMIFNDQU4gTElORS05O1NvOzA7T047Ozs7O047Ozs7OworMjNCRTtERU5USVNUUlkgU1lNQk9MIExJR0hUIFZFUlRJQ0FMIEFORCBUT1AgUklHSFQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0JGO0RFTlRJU1RSWSBTWU1CT0wgTElHSFQgVkVSVElDQUwgQU5EIEJPVFRPTSBSSUdIVDtTbzswO09OOzs7OztOOzs7OzsKKzIzQzA7REVOVElTVFJZIFNZTUJPTCBMSUdIVCBWRVJUSUNBTCBXSVRIIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzIzQzE7REVOVElTVFJZIFNZTUJPTCBMSUdIVCBET1dOIEFORCBIT1JJWk9OVEFMIFdJVEggQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjNDMjtERU5USVNUUlkgU1lNQk9MIExJR0hUIFVQIEFORCBIT1JJWk9OVEFMIFdJVEggQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjNDMztERU5USVNUUlkgU1lNQk9MIExJR0hUIFZFUlRJQ0FMIFdJVEggVFJJQU5HTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0M0O0RFTlRJU1RSWSBTWU1CT0wgTElHSFQgRE9XTiBBTkQgSE9SSVpPTlRBTCBXSVRIIFRSSUFOR0xFO1NvOzA7T047Ozs7O047Ozs7OworMjNDNTtERU5USVNUUlkgU1lNQk9MIExJR0hUIFVQIEFORCBIT1JJWk9OVEFMIFdJVEggVFJJQU5HTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0M2O0RFTlRJU1RSWSBTWU1CT0wgTElHSFQgVkVSVElDQUwgQU5EIFdBVkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0M3O0RFTlRJU1RSWSBTWU1CT0wgTElHSFQgRE9XTiBBTkQgSE9SSVpPTlRBTCBXSVRIIFdBVkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0M4O0RFTlRJU1RSWSBTWU1CT0wgTElHSFQgVVAgQU5EIEhPUklaT05UQUwgV0lUSCBXQVZFO1NvOzA7T047Ozs7O047Ozs7OworMjNDOTtERU5USVNUUlkgU1lNQk9MIExJR0hUIERPV04gQU5EIEhPUklaT05UQUw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0NBO0RFTlRJU1RSWSBTWU1CT0wgTElHSFQgVVAgQU5EIEhPUklaT05UQUw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0NCO0RFTlRJU1RSWSBTWU1CT0wgTElHSFQgVkVSVElDQUwgQU5EIFRPUCBMRUZUO1NvOzA7T047Ozs7O047Ozs7OworMjNDQztERU5USVNUUlkgU1lNQk9MIExJR0hUIFZFUlRJQ0FMIEFORCBCT1RUT00gTEVGVDtTbzswO09OOzs7OztOOzs7OzsKKzIzQ0Q7U1FVQVJFIEZPT1Q7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0NFO1JFVFVSTiBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNDAwO1NZTUJPTCBGT1IgTlVMTDtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIE5VTEw7Ozs7CisyNDAxO1NZTUJPTCBGT1IgU1RBUlQgT0YgSEVBRElORztTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIFNUQVJUIE9GIEhFQURJTkc7Ozs7CisyNDAyO1NZTUJPTCBGT1IgU1RBUlQgT0YgVEVYVDtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIFNUQVJUIE9GIFRFWFQ7Ozs7CisyNDAzO1NZTUJPTCBGT1IgRU5EIE9GIFRFWFQ7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBFTkQgT0YgVEVYVDs7OzsKKzI0MDQ7U1lNQk9MIEZPUiBFTkQgT0YgVFJBTlNNSVNTSU9OO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgRU5EIE9GIFRSQU5TTUlTU0lPTjs7OzsKKzI0MDU7U1lNQk9MIEZPUiBFTlFVSVJZO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgRU5RVUlSWTs7OzsKKzI0MDY7U1lNQk9MIEZPUiBBQ0tOT1dMRURHRTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEFDS05PV0xFREdFOzs7OworMjQwNztTWU1CT0wgRk9SIEJFTEw7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBCRUxMOzs7OworMjQwODtTWU1CT0wgRk9SIEJBQ0tTUEFDRTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEJBQ0tTUEFDRTs7OzsKKzI0MDk7U1lNQk9MIEZPUiBIT1JJWk9OVEFMIFRBQlVMQVRJT047U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBIT1JJWk9OVEFMIFRBQlVMQVRJT047Ozs7CisyNDBBO1NZTUJPTCBGT1IgTElORSBGRUVEO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgTElORSBGRUVEOzs7OworMjQwQjtTWU1CT0wgRk9SIFZFUlRJQ0FMIFRBQlVMQVRJT047U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBWRVJUSUNBTCBUQUJVTEFUSU9OOzs7OworMjQwQztTWU1CT0wgRk9SIEZPUk0gRkVFRDtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEZPUk0gRkVFRDs7OzsKKzI0MEQ7U1lNQk9MIEZPUiBDQVJSSUFHRSBSRVRVUk47U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBDQVJSSUFHRSBSRVRVUk47Ozs7CisyNDBFO1NZTUJPTCBGT1IgU0hJRlQgT1VUO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgU0hJRlQgT1VUOzs7OworMjQwRjtTWU1CT0wgRk9SIFNISUZUIElOO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgU0hJRlQgSU47Ozs7CisyNDEwO1NZTUJPTCBGT1IgREFUQSBMSU5LIEVTQ0FQRTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIERBVEEgTElOSyBFU0NBUEU7Ozs7CisyNDExO1NZTUJPTCBGT1IgREVWSUNFIENPTlRST0wgT05FO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgREVWSUNFIENPTlRST0wgT05FOzs7OworMjQxMjtTWU1CT0wgRk9SIERFVklDRSBDT05UUk9MIFRXTztTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIERFVklDRSBDT05UUk9MIFRXTzs7OzsKKzI0MTM7U1lNQk9MIEZPUiBERVZJQ0UgQ09OVFJPTCBUSFJFRTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIERFVklDRSBDT05UUk9MIFRIUkVFOzs7OworMjQxNDtTWU1CT0wgRk9SIERFVklDRSBDT05UUk9MIEZPVVI7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBERVZJQ0UgQ09OVFJPTCBGT1VSOzs7OworMjQxNTtTWU1CT0wgRk9SIE5FR0FUSVZFIEFDS05PV0xFREdFO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgTkVHQVRJVkUgQUNLTk9XTEVER0U7Ozs7CisyNDE2O1NZTUJPTCBGT1IgU1lOQ0hST05PVVMgSURMRTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIFNZTkNIUk9OT1VTIElETEU7Ozs7CisyNDE3O1NZTUJPTCBGT1IgRU5EIE9GIFRSQU5TTUlTU0lPTiBCTE9DSztTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEVORCBPRiBUUkFOU01JU1NJT04gQkxPQ0s7Ozs7CisyNDE4O1NZTUJPTCBGT1IgQ0FOQ0VMO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgQ0FOQ0VMOzs7OworMjQxOTtTWU1CT0wgRk9SIEVORCBPRiBNRURJVU07U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBFTkQgT0YgTUVESVVNOzs7OworMjQxQTtTWU1CT0wgRk9SIFNVQlNUSVRVVEU7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBTVUJTVElUVVRFOzs7OworMjQxQjtTWU1CT0wgRk9SIEVTQ0FQRTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEVTQ0FQRTs7OzsKKzI0MUM7U1lNQk9MIEZPUiBGSUxFIFNFUEFSQVRPUjtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEZJTEUgU0VQQVJBVE9SOzs7OworMjQxRDtTWU1CT0wgRk9SIEdST1VQIFNFUEFSQVRPUjtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEdST1VQIFNFUEFSQVRPUjs7OzsKKzI0MUU7U1lNQk9MIEZPUiBSRUNPUkQgU0VQQVJBVE9SO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgUkVDT1JEIFNFUEFSQVRPUjs7OzsKKzI0MUY7U1lNQk9MIEZPUiBVTklUIFNFUEFSQVRPUjtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIFVOSVQgU0VQQVJBVE9SOzs7OworMjQyMDtTWU1CT0wgRk9SIFNQQUNFO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgU1BBQ0U7Ozs7CisyNDIxO1NZTUJPTCBGT1IgREVMRVRFO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgREVMRVRFOzs7OworMjQyMjtCTEFOSyBTWU1CT0w7U287MDtPTjs7Ozs7TjtCTEFOSzs7OzsKKzI0MjM7T1BFTiBCT1g7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNDI0O1NZTUJPTCBGT1IgTkVXTElORTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIE5FV0xJTkU7Ozs7CisyNDI1O1NZTUJPTCBGT1IgREVMRVRFIEZPUk0gVFdPO1NvOzA7T047Ozs7O047Ozs7OworMjQyNjtTWU1CT0wgRk9SIFNVQlNUSVRVVEUgRk9STSBUV087U287MDtPTjs7Ozs7Tjs7Ozs7CisyNDQwO09DUiBIT09LO1NvOzA7T047Ozs7O047Ozs7OworMjQ0MTtPQ1IgQ0hBSVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNDQyO09DUiBGT1JLO1NvOzA7T047Ozs7O047Ozs7OworMjQ0MztPQ1IgSU5WRVJURUQgRk9SSztTbzswO09OOzs7OztOOzs7OzsKKzI0NDQ7T0NSIEJFTFQgQlVDS0xFO1NvOzA7T047Ozs7O047Ozs7OworMjQ0NTtPQ1IgQk9XIFRJRTtTbzswO09OOzs7OztOOzs7OzsKKzI0NDY7T0NSIEJSQU5DSCBCQU5LIElERU5USUZJQ0FUSU9OO1NvOzA7T047Ozs7O047Ozs7OworMjQ0NztPQ1IgQU1PVU5UIE9GIENIRUNLO1NvOzA7T047Ozs7O047Ozs7OworMjQ0ODtPQ1IgREFTSDtTbzswO09OOzs7OztOOzs7OzsKKzI0NDk7T0NSIENVU1RPTUVSIEFDQ09VTlQgTlVNQkVSO1NvOzA7T047Ozs7O047Ozs7OworMjQ0QTtPQ1IgRE9VQkxFIEJBQ0tTTEFTSDtTbzswO09OOzs7OztOOzs7OzsKKzI0NjA7Q0lSQ0xFRCBESUdJVCBPTkU7Tm87MDtFTjs8Y2lyY2xlPiAwMDMxOzsxOzE7Tjs7Ozs7CisyNDYxO0NJUkNMRUQgRElHSVQgVFdPO05vOzA7RU47PGNpcmNsZT4gMDAzMjs7MjsyO047Ozs7OworMjQ2MjtDSVJDTEVEIERJR0lUIFRIUkVFO05vOzA7RU47PGNpcmNsZT4gMDAzMzs7MzszO047Ozs7OworMjQ2MztDSVJDTEVEIERJR0lUIEZPVVI7Tm87MDtFTjs8Y2lyY2xlPiAwMDM0Ozs0OzQ7Tjs7Ozs7CisyNDY0O0NJUkNMRUQgRElHSVQgRklWRTtObzswO0VOOzxjaXJjbGU+IDAwMzU7OzU7NTtOOzs7OzsKKzI0NjU7Q0lSQ0xFRCBESUdJVCBTSVg7Tm87MDtFTjs8Y2lyY2xlPiAwMDM2Ozs2OzY7Tjs7Ozs7CisyNDY2O0NJUkNMRUQgRElHSVQgU0VWRU47Tm87MDtFTjs8Y2lyY2xlPiAwMDM3Ozs3Ozc7Tjs7Ozs7CisyNDY3O0NJUkNMRUQgRElHSVQgRUlHSFQ7Tm87MDtFTjs8Y2lyY2xlPiAwMDM4Ozs4Ozg7Tjs7Ozs7CisyNDY4O0NJUkNMRUQgRElHSVQgTklORTtObzswO0VOOzxjaXJjbGU+IDAwMzk7Ozk7OTtOOzs7OzsKKzI0Njk7Q0lSQ0xFRCBOVU1CRVIgVEVOO05vOzA7RU47PGNpcmNsZT4gMDAzMSAwMDMwOzs7MTA7Tjs7Ozs7CisyNDZBO0NJUkNMRUQgTlVNQkVSIEVMRVZFTjtObzswO0VOOzxjaXJjbGU+IDAwMzEgMDAzMTs7OzExO047Ozs7OworMjQ2QjtDSVJDTEVEIE5VTUJFUiBUV0VMVkU7Tm87MDtFTjs8Y2lyY2xlPiAwMDMxIDAwMzI7OzsxMjtOOzs7OzsKKzI0NkM7Q0lSQ0xFRCBOVU1CRVIgVEhJUlRFRU47Tm87MDtFTjs8Y2lyY2xlPiAwMDMxIDAwMzM7OzsxMztOOzs7OzsKKzI0NkQ7Q0lSQ0xFRCBOVU1CRVIgRk9VUlRFRU47Tm87MDtFTjs8Y2lyY2xlPiAwMDMxIDAwMzQ7OzsxNDtOOzs7OzsKKzI0NkU7Q0lSQ0xFRCBOVU1CRVIgRklGVEVFTjtObzswO0VOOzxjaXJjbGU+IDAwMzEgMDAzNTs7OzE1O047Ozs7OworMjQ2RjtDSVJDTEVEIE5VTUJFUiBTSVhURUVOO05vOzA7RU47PGNpcmNsZT4gMDAzMSAwMDM2Ozs7MTY7Tjs7Ozs7CisyNDcwO0NJUkNMRUQgTlVNQkVSIFNFVkVOVEVFTjtObzswO0VOOzxjaXJjbGU+IDAwMzEgMDAzNzs7OzE3O047Ozs7OworMjQ3MTtDSVJDTEVEIE5VTUJFUiBFSUdIVEVFTjtObzswO0VOOzxjaXJjbGU+IDAwMzEgMDAzODs7OzE4O047Ozs7OworMjQ3MjtDSVJDTEVEIE5VTUJFUiBOSU5FVEVFTjtObzswO0VOOzxjaXJjbGU+IDAwMzEgMDAzOTs7OzE5O047Ozs7OworMjQ3MztDSVJDTEVEIE5VTUJFUiBUV0VOVFk7Tm87MDtFTjs8Y2lyY2xlPiAwMDMyIDAwMzA7OzsyMDtOOzs7OzsKKzI0NzQ7UEFSRU5USEVTSVpFRCBESUdJVCBPTkU7Tm87MDtFTjs8Y29tcGF0PiAwMDI4IDAwMzEgMDAyOTs7MTsxO047Ozs7OworMjQ3NTtQQVJFTlRIRVNJWkVEIERJR0lUIFRXTztObzswO0VOOzxjb21wYXQ+IDAwMjggMDAzMiAwMDI5OzsyOzI7Tjs7Ozs7CisyNDc2O1BBUkVOVEhFU0laRUQgRElHSVQgVEhSRUU7Tm87MDtFTjs8Y29tcGF0PiAwMDI4IDAwMzMgMDAyOTs7MzszO047Ozs7OworMjQ3NztQQVJFTlRIRVNJWkVEIERJR0lUIEZPVVI7Tm87MDtFTjs8Y29tcGF0PiAwMDI4IDAwMzQgMDAyOTs7NDs0O047Ozs7OworMjQ3ODtQQVJFTlRIRVNJWkVEIERJR0lUIEZJVkU7Tm87MDtFTjs8Y29tcGF0PiAwMDI4IDAwMzUgMDAyOTs7NTs1O047Ozs7OworMjQ3OTtQQVJFTlRIRVNJWkVEIERJR0lUIFNJWDtObzswO0VOOzxjb21wYXQ+IDAwMjggMDAzNiAwMDI5Ozs2OzY7Tjs7Ozs7CisyNDdBO1BBUkVOVEhFU0laRUQgRElHSVQgU0VWRU47Tm87MDtFTjs8Y29tcGF0PiAwMDI4IDAwMzcgMDAyOTs7Nzs3O047Ozs7OworMjQ3QjtQQVJFTlRIRVNJWkVEIERJR0lUIEVJR0hUO05vOzA7RU47PGNvbXBhdD4gMDAyOCAwMDM4IDAwMjk7Ozg7ODtOOzs7OzsKKzI0N0M7UEFSRU5USEVTSVpFRCBESUdJVCBOSU5FO05vOzA7RU47PGNvbXBhdD4gMDAyOCAwMDM5IDAwMjk7Ozk7OTtOOzs7OzsKKzI0N0Q7UEFSRU5USEVTSVpFRCBOVU1CRVIgVEVOO05vOzA7RU47PGNvbXBhdD4gMDAyOCAwMDMxIDAwMzAgMDAyOTs7OzEwO047Ozs7OworMjQ3RTtQQVJFTlRIRVNJWkVEIE5VTUJFUiBFTEVWRU47Tm87MDtFTjs8Y29tcGF0PiAwMDI4IDAwMzEgMDAzMSAwMDI5Ozs7MTE7Tjs7Ozs7CisyNDdGO1BBUkVOVEhFU0laRUQgTlVNQkVSIFRXRUxWRTtObzswO0VOOzxjb21wYXQ+IDAwMjggMDAzMSAwMDMyIDAwMjk7OzsxMjtOOzs7OzsKKzI0ODA7UEFSRU5USEVTSVpFRCBOVU1CRVIgVEhJUlRFRU47Tm87MDtFTjs8Y29tcGF0PiAwMDI4IDAwMzEgMDAzMyAwMDI5Ozs7MTM7Tjs7Ozs7CisyNDgxO1BBUkVOVEhFU0laRUQgTlVNQkVSIEZPVVJURUVOO05vOzA7RU47PGNvbXBhdD4gMDAyOCAwMDMxIDAwMzQgMDAyOTs7OzE0O047Ozs7OworMjQ4MjtQQVJFTlRIRVNJWkVEIE5VTUJFUiBGSUZURUVOO05vOzA7RU47PGNvbXBhdD4gMDAyOCAwMDMxIDAwMzUgMDAyOTs7OzE1O047Ozs7OworMjQ4MztQQVJFTlRIRVNJWkVEIE5VTUJFUiBTSVhURUVOO05vOzA7RU47PGNvbXBhdD4gMDAyOCAwMDMxIDAwMzYgMDAyOTs7OzE2O047Ozs7OworMjQ4NDtQQVJFTlRIRVNJWkVEIE5VTUJFUiBTRVZFTlRFRU47Tm87MDtFTjs8Y29tcGF0PiAwMDI4IDAwMzEgMDAzNyAwMDI5Ozs7MTc7Tjs7Ozs7CisyNDg1O1BBUkVOVEhFU0laRUQgTlVNQkVSIEVJR0hURUVOO05vOzA7RU47PGNvbXBhdD4gMDAyOCAwMDMxIDAwMzggMDAyOTs7OzE4O047Ozs7OworMjQ4NjtQQVJFTlRIRVNJWkVEIE5VTUJFUiBOSU5FVEVFTjtObzswO0VOOzxjb21wYXQ+IDAwMjggMDAzMSAwMDM5IDAwMjk7OzsxOTtOOzs7OzsKKzI0ODc7UEFSRU5USEVTSVpFRCBOVU1CRVIgVFdFTlRZO05vOzA7RU47PGNvbXBhdD4gMDAyOCAwMDMyIDAwMzAgMDAyOTs7OzIwO047Ozs7OworMjQ4ODtESUdJVCBPTkUgRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMSAwMDJFOzsxOzE7TjtESUdJVCBPTkUgUEVSSU9EOzs7OworMjQ4OTtESUdJVCBUV08gRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMiAwMDJFOzsyOzI7TjtESUdJVCBUV08gUEVSSU9EOzs7OworMjQ4QTtESUdJVCBUSFJFRSBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDMzIDAwMkU7OzM7MztOO0RJR0lUIFRIUkVFIFBFUklPRDs7OzsKKzI0OEI7RElHSVQgRk9VUiBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDM0IDAwMkU7OzQ7NDtOO0RJR0lUIEZPVVIgUEVSSU9EOzs7OworMjQ4QztESUdJVCBGSVZFIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzUgMDAyRTs7NTs1O047RElHSVQgRklWRSBQRVJJT0Q7Ozs7CisyNDhEO0RJR0lUIFNJWCBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDM2IDAwMkU7OzY7NjtOO0RJR0lUIFNJWCBQRVJJT0Q7Ozs7CisyNDhFO0RJR0lUIFNFVkVOIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzcgMDAyRTs7Nzs3O047RElHSVQgU0VWRU4gUEVSSU9EOzs7OworMjQ4RjtESUdJVCBFSUdIVCBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDM4IDAwMkU7Ozg7ODtOO0RJR0lUIEVJR0hUIFBFUklPRDs7OzsKKzI0OTA7RElHSVQgTklORSBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDM5IDAwMkU7Ozk7OTtOO0RJR0lUIE5JTkUgUEVSSU9EOzs7OworMjQ5MTtOVU1CRVIgVEVOIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzEgMDAzMCAwMDJFOzs7MTA7TjtOVU1CRVIgVEVOIFBFUklPRDs7OzsKKzI0OTI7TlVNQkVSIEVMRVZFTiBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDMxIDAwMzEgMDAyRTs7OzExO047TlVNQkVSIEVMRVZFTiBQRVJJT0Q7Ozs7CisyNDkzO05VTUJFUiBUV0VMVkUgRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMSAwMDMyIDAwMkU7OzsxMjtOO05VTUJFUiBUV0VMVkUgUEVSSU9EOzs7OworMjQ5NDtOVU1CRVIgVEhJUlRFRU4gRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMSAwMDMzIDAwMkU7OzsxMztOO05VTUJFUiBUSElSVEVFTiBQRVJJT0Q7Ozs7CisyNDk1O05VTUJFUiBGT1VSVEVFTiBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDMxIDAwMzQgMDAyRTs7OzE0O047TlVNQkVSIEZPVVJURUVOIFBFUklPRDs7OzsKKzI0OTY7TlVNQkVSIEZJRlRFRU4gRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMSAwMDM1IDAwMkU7OzsxNTtOO05VTUJFUiBGSUZURUVOIFBFUklPRDs7OzsKKzI0OTc7TlVNQkVSIFNJWFRFRU4gRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMSAwMDM2IDAwMkU7OzsxNjtOO05VTUJFUiBTSVhURUVOIFBFUklPRDs7OzsKKzI0OTg7TlVNQkVSIFNFVkVOVEVFTiBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDMxIDAwMzcgMDAyRTs7OzE3O047TlVNQkVSIFNFVkVOVEVFTiBQRVJJT0Q7Ozs7CisyNDk5O05VTUJFUiBFSUdIVEVFTiBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDMxIDAwMzggMDAyRTs7OzE4O047TlVNQkVSIEVJR0hURUVOIFBFUklPRDs7OzsKKzI0OUE7TlVNQkVSIE5JTkVURUVOIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzEgMDAzOSAwMDJFOzs7MTk7TjtOVU1CRVIgTklORVRFRU4gUEVSSU9EOzs7OworMjQ5QjtOVU1CRVIgVFdFTlRZIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzIgMDAzMCAwMDJFOzs7MjA7TjtOVU1CRVIgVFdFTlRZIFBFUklPRDs7OzsKKzI0OUM7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDYxIDAwMjk7Ozs7Tjs7Ozs7CisyNDlEO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIEI7U287MDtMOzxjb21wYXQ+IDAwMjggMDA2MiAwMDI5Ozs7O047Ozs7OworMjQ5RTtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBDO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNjMgMDAyOTs7OztOOzs7OzsKKzI0OUY7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgRDtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDY0IDAwMjk7Ozs7Tjs7Ozs7CisyNEEwO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIEU7U287MDtMOzxjb21wYXQ+IDAwMjggMDA2NSAwMDI5Ozs7O047Ozs7OworMjRBMTtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBGO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNjYgMDAyOTs7OztOOzs7OzsKKzI0QTI7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgRztTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDY3IDAwMjk7Ozs7Tjs7Ozs7CisyNEEzO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIEg7U287MDtMOzxjb21wYXQ+IDAwMjggMDA2OCAwMDI5Ozs7O047Ozs7OworMjRBNDtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBJO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNjkgMDAyOTs7OztOOzs7OzsKKzI0QTU7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgSjtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDZBIDAwMjk7Ozs7Tjs7Ozs7CisyNEE2O1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIEs7U287MDtMOzxjb21wYXQ+IDAwMjggMDA2QiAwMDI5Ozs7O047Ozs7OworMjRBNztQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBMO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNkMgMDAyOTs7OztOOzs7OzsKKzI0QTg7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgTTtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDZEIDAwMjk7Ozs7Tjs7Ozs7CisyNEE5O1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIE47U287MDtMOzxjb21wYXQ+IDAwMjggMDA2RSAwMDI5Ozs7O047Ozs7OworMjRBQTtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBPO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNkYgMDAyOTs7OztOOzs7OzsKKzI0QUI7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgUDtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDcwIDAwMjk7Ozs7Tjs7Ozs7CisyNEFDO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIFE7U287MDtMOzxjb21wYXQ+IDAwMjggMDA3MSAwMDI5Ozs7O047Ozs7OworMjRBRDtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBSO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNzIgMDAyOTs7OztOOzs7OzsKKzI0QUU7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgUztTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDczIDAwMjk7Ozs7Tjs7Ozs7CisyNEFGO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIFQ7U287MDtMOzxjb21wYXQ+IDAwMjggMDA3NCAwMDI5Ozs7O047Ozs7OworMjRCMDtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBVO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNzUgMDAyOTs7OztOOzs7OzsKKzI0QjE7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgVjtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDc2IDAwMjk7Ozs7Tjs7Ozs7CisyNEIyO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIFc7U287MDtMOzxjb21wYXQ+IDAwMjggMDA3NyAwMDI5Ozs7O047Ozs7OworMjRCMztQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBYO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNzggMDAyOTs7OztOOzs7OzsKKzI0QjQ7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgWTtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDc5IDAwMjk7Ozs7Tjs7Ozs7CisyNEI1O1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIFo7U287MDtMOzxjb21wYXQ+IDAwMjggMDA3QSAwMDI5Ozs7O047Ozs7OworMjRCNjtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEE7U287MDtMOzxjaXJjbGU+IDAwNDE7Ozs7Tjs7OzsyNEQwOworMjRCNztDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEI7U287MDtMOzxjaXJjbGU+IDAwNDI7Ozs7Tjs7OzsyNEQxOworMjRCODtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEM7U287MDtMOzxjaXJjbGU+IDAwNDM7Ozs7Tjs7OzsyNEQyOworMjRCOTtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEQ7U287MDtMOzxjaXJjbGU+IDAwNDQ7Ozs7Tjs7OzsyNEQzOworMjRCQTtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEU7U287MDtMOzxjaXJjbGU+IDAwNDU7Ozs7Tjs7OzsyNEQ0OworMjRCQjtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEY7U287MDtMOzxjaXJjbGU+IDAwNDY7Ozs7Tjs7OzsyNEQ1OworMjRCQztDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEc7U287MDtMOzxjaXJjbGU+IDAwNDc7Ozs7Tjs7OzsyNEQ2OworMjRCRDtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEg7U287MDtMOzxjaXJjbGU+IDAwNDg7Ozs7Tjs7OzsyNEQ3OworMjRCRTtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEk7U287MDtMOzxjaXJjbGU+IDAwNDk7Ozs7Tjs7OzsyNEQ4OworMjRCRjtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEo7U287MDtMOzxjaXJjbGU+IDAwNEE7Ozs7Tjs7OzsyNEQ5OworMjRDMDtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEs7U287MDtMOzxjaXJjbGU+IDAwNEI7Ozs7Tjs7OzsyNERBOworMjRDMTtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIEw7U287MDtMOzxjaXJjbGU+IDAwNEM7Ozs7Tjs7OzsyNERCOworMjRDMjtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIE07U287MDtMOzxjaXJjbGU+IDAwNEQ7Ozs7Tjs7OzsyNERDOworMjRDMztDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIE47U287MDtMOzxjaXJjbGU+IDAwNEU7Ozs7Tjs7OzsyNEREOworMjRDNDtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIE87U287MDtMOzxjaXJjbGU+IDAwNEY7Ozs7Tjs7OzsyNERFOworMjRDNTtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFA7U287MDtMOzxjaXJjbGU+IDAwNTA7Ozs7Tjs7OzsyNERGOworMjRDNjtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFE7U287MDtMOzxjaXJjbGU+IDAwNTE7Ozs7Tjs7OzsyNEUwOworMjRDNztDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFI7U287MDtMOzxjaXJjbGU+IDAwNTI7Ozs7Tjs7OzsyNEUxOworMjRDODtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFM7U287MDtMOzxjaXJjbGU+IDAwNTM7Ozs7Tjs7OzsyNEUyOworMjRDOTtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFQ7U287MDtMOzxjaXJjbGU+IDAwNTQ7Ozs7Tjs7OzsyNEUzOworMjRDQTtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFU7U287MDtMOzxjaXJjbGU+IDAwNTU7Ozs7Tjs7OzsyNEU0OworMjRDQjtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFY7U287MDtMOzxjaXJjbGU+IDAwNTY7Ozs7Tjs7OzsyNEU1OworMjRDQztDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFc7U287MDtMOzxjaXJjbGU+IDAwNTc7Ozs7Tjs7OzsyNEU2OworMjRDRDtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFg7U287MDtMOzxjaXJjbGU+IDAwNTg7Ozs7Tjs7OzsyNEU3OworMjRDRTtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFk7U287MDtMOzxjaXJjbGU+IDAwNTk7Ozs7Tjs7OzsyNEU4OworMjRDRjtDSVJDTEVEIExBVElOIENBUElUQUwgTEVUVEVSIFo7U287MDtMOzxjaXJjbGU+IDAwNUE7Ozs7Tjs7OzsyNEU5OworMjREMDtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBBO1NvOzA7TDs8Y2lyY2xlPiAwMDYxOzs7O047OzsyNEI2OzsyNEI2CisyNEQxO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIEI7U287MDtMOzxjaXJjbGU+IDAwNjI7Ozs7Tjs7OzI0Qjc7OzI0QjcKKzI0RDI7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgQztTbzswO0w7PGNpcmNsZT4gMDA2Mzs7OztOOzs7MjRCODs7MjRCOAorMjREMztDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBEO1NvOzA7TDs8Y2lyY2xlPiAwMDY0Ozs7O047OzsyNEI5OzsyNEI5CisyNEQ0O0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIEU7U287MDtMOzxjaXJjbGU+IDAwNjU7Ozs7Tjs7OzI0QkE7OzI0QkEKKzI0RDU7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgRjtTbzswO0w7PGNpcmNsZT4gMDA2Njs7OztOOzs7MjRCQjs7MjRCQgorMjRENjtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBHO1NvOzA7TDs8Y2lyY2xlPiAwMDY3Ozs7O047OzsyNEJDOzsyNEJDCisyNEQ3O0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIEg7U287MDtMOzxjaXJjbGU+IDAwNjg7Ozs7Tjs7OzI0QkQ7OzI0QkQKKzI0RDg7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgSTtTbzswO0w7PGNpcmNsZT4gMDA2OTs7OztOOzs7MjRCRTs7MjRCRQorMjREOTtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBKO1NvOzA7TDs8Y2lyY2xlPiAwMDZBOzs7O047OzsyNEJGOzsyNEJGCisyNERBO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIEs7U287MDtMOzxjaXJjbGU+IDAwNkI7Ozs7Tjs7OzI0QzA7OzI0QzAKKzI0REI7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgTDtTbzswO0w7PGNpcmNsZT4gMDA2Qzs7OztOOzs7MjRDMTs7MjRDMQorMjREQztDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBNO1NvOzA7TDs8Y2lyY2xlPiAwMDZEOzs7O047OzsyNEMyOzsyNEMyCisyNEREO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIE47U287MDtMOzxjaXJjbGU+IDAwNkU7Ozs7Tjs7OzI0QzM7OzI0QzMKKzI0REU7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgTztTbzswO0w7PGNpcmNsZT4gMDA2Rjs7OztOOzs7MjRDNDs7MjRDNAorMjRERjtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBQO1NvOzA7TDs8Y2lyY2xlPiAwMDcwOzs7O047OzsyNEM1OzsyNEM1CisyNEUwO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIFE7U287MDtMOzxjaXJjbGU+IDAwNzE7Ozs7Tjs7OzI0QzY7OzI0QzYKKzI0RTE7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgUjtTbzswO0w7PGNpcmNsZT4gMDA3Mjs7OztOOzs7MjRDNzs7MjRDNworMjRFMjtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBTO1NvOzA7TDs8Y2lyY2xlPiAwMDczOzs7O047OzsyNEM4OzsyNEM4CisyNEUzO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIFQ7U287MDtMOzxjaXJjbGU+IDAwNzQ7Ozs7Tjs7OzI0Qzk7OzI0QzkKKzI0RTQ7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgVTtTbzswO0w7PGNpcmNsZT4gMDA3NTs7OztOOzs7MjRDQTs7MjRDQQorMjRFNTtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBWO1NvOzA7TDs8Y2lyY2xlPiAwMDc2Ozs7O047OzsyNENCOzsyNENCCisyNEU2O0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIFc7U287MDtMOzxjaXJjbGU+IDAwNzc7Ozs7Tjs7OzI0Q0M7OzI0Q0MKKzI0RTc7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgWDtTbzswO0w7PGNpcmNsZT4gMDA3ODs7OztOOzs7MjRDRDs7MjRDRAorMjRFODtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBZO1NvOzA7TDs8Y2lyY2xlPiAwMDc5Ozs7O047OzsyNENFOzsyNENFCisyNEU5O0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIFo7U287MDtMOzxjaXJjbGU+IDAwN0E7Ozs7Tjs7OzI0Q0Y7OzI0Q0YKKzI0RUE7Q0lSQ0xFRCBESUdJVCBaRVJPO05vOzA7RU47PGNpcmNsZT4gMDAzMDs7MDswO047Ozs7OworMjRFQjtORUdBVElWRSBDSVJDTEVEIE5VTUJFUiBFTEVWRU47Tm87MDtPTjs7OzsxMTtOOzs7OzsKKzI0RUM7TkVHQVRJVkUgQ0lSQ0xFRCBOVU1CRVIgVFdFTFZFO05vOzA7T047Ozs7MTI7Tjs7Ozs7CisyNEVEO05FR0FUSVZFIENJUkNMRUQgTlVNQkVSIFRISVJURUVOO05vOzA7T047Ozs7MTM7Tjs7Ozs7CisyNEVFO05FR0FUSVZFIENJUkNMRUQgTlVNQkVSIEZPVVJURUVOO05vOzA7T047Ozs7MTQ7Tjs7Ozs7CisyNEVGO05FR0FUSVZFIENJUkNMRUQgTlVNQkVSIEZJRlRFRU47Tm87MDtPTjs7OzsxNTtOOzs7OzsKKzI0RjA7TkVHQVRJVkUgQ0lSQ0xFRCBOVU1CRVIgU0lYVEVFTjtObzswO09OOzs7OzE2O047Ozs7OworMjRGMTtORUdBVElWRSBDSVJDTEVEIE5VTUJFUiBTRVZFTlRFRU47Tm87MDtPTjs7OzsxNztOOzs7OzsKKzI0RjI7TkVHQVRJVkUgQ0lSQ0xFRCBOVU1CRVIgRUlHSFRFRU47Tm87MDtPTjs7OzsxODtOOzs7OzsKKzI0RjM7TkVHQVRJVkUgQ0lSQ0xFRCBOVU1CRVIgTklORVRFRU47Tm87MDtPTjs7OzsxOTtOOzs7OzsKKzI0RjQ7TkVHQVRJVkUgQ0lSQ0xFRCBOVU1CRVIgVFdFTlRZO05vOzA7T047Ozs7MjA7Tjs7Ozs7CisyNEY1O0RPVUJMRSBDSVJDTEVEIERJR0lUIE9ORTtObzswO09OOzs7MTsxO047Ozs7OworMjRGNjtET1VCTEUgQ0lSQ0xFRCBESUdJVCBUV087Tm87MDtPTjs7OzI7MjtOOzs7OzsKKzI0Rjc7RE9VQkxFIENJUkNMRUQgRElHSVQgVEhSRUU7Tm87MDtPTjs7OzM7MztOOzs7OzsKKzI0Rjg7RE9VQkxFIENJUkNMRUQgRElHSVQgRk9VUjtObzswO09OOzs7NDs0O047Ozs7OworMjRGOTtET1VCTEUgQ0lSQ0xFRCBESUdJVCBGSVZFO05vOzA7T047Ozs1OzU7Tjs7Ozs7CisyNEZBO0RPVUJMRSBDSVJDTEVEIERJR0lUIFNJWDtObzswO09OOzs7Njs2O047Ozs7OworMjRGQjtET1VCTEUgQ0lSQ0xFRCBESUdJVCBTRVZFTjtObzswO09OOzs7Nzs3O047Ozs7OworMjRGQztET1VCTEUgQ0lSQ0xFRCBESUdJVCBFSUdIVDtObzswO09OOzs7ODs4O047Ozs7OworMjRGRDtET1VCTEUgQ0lSQ0xFRCBESUdJVCBOSU5FO05vOzA7T047Ozs5Ozk7Tjs7Ozs7CisyNEZFO0RPVUJMRSBDSVJDTEVEIE5VTUJFUiBURU47Tm87MDtPTjs7OzsxMDtOOzs7OzsKKzI1MDA7Qk9YIERSQVdJTkdTIExJR0hUIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBIT1JJWk9OVEFMOzs7OworMjUwMTtCT1ggRFJBV0lOR1MgSEVBVlkgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIEhPUklaT05UQUw7Ozs7CisyNTAyO0JPWCBEUkFXSU5HUyBMSUdIVCBWRVJUSUNBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFZFUlRJQ0FMOzs7OworMjUwMztCT1ggRFJBV0lOR1MgSEVBVlkgVkVSVElDQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBWRVJUSUNBTDs7OzsKKzI1MDQ7Qk9YIERSQVdJTkdTIExJR0hUIFRSSVBMRSBEQVNIIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBUUklQTEUgREFTSCBIT1JJWk9OVEFMOzs7OworMjUwNTtCT1ggRFJBV0lOR1MgSEVBVlkgVFJJUExFIERBU0ggSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFRSSVBMRSBEQVNIIEhPUklaT05UQUw7Ozs7CisyNTA2O0JPWCBEUkFXSU5HUyBMSUdIVCBUUklQTEUgREFTSCBWRVJUSUNBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFRSSVBMRSBEQVNIIFZFUlRJQ0FMOzs7OworMjUwNztCT1ggRFJBV0lOR1MgSEVBVlkgVFJJUExFIERBU0ggVkVSVElDQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBUUklQTEUgREFTSCBWRVJUSUNBTDs7OzsKKzI1MDg7Qk9YIERSQVdJTkdTIExJR0hUIFFVQURSVVBMRSBEQVNIIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBRVUFEUlVQTEUgREFTSCBIT1JJWk9OVEFMOzs7OworMjUwOTtCT1ggRFJBV0lOR1MgSEVBVlkgUVVBRFJVUExFIERBU0ggSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFFVQURSVVBMRSBEQVNIIEhPUklaT05UQUw7Ozs7CisyNTBBO0JPWCBEUkFXSU5HUyBMSUdIVCBRVUFEUlVQTEUgREFTSCBWRVJUSUNBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFFVQURSVVBMRSBEQVNIIFZFUlRJQ0FMOzs7OworMjUwQjtCT1ggRFJBV0lOR1MgSEVBVlkgUVVBRFJVUExFIERBU0ggVkVSVElDQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBRVUFEUlVQTEUgREFTSCBWRVJUSUNBTDs7OzsKKzI1MEM7Qk9YIERSQVdJTkdTIExJR0hUIERPV04gQU5EIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgRE9XTiBBTkQgUklHSFQ7Ozs7CisyNTBEO0JPWCBEUkFXSU5HUyBET1dOIExJR0hUIEFORCBSSUdIVCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gTElHSFQgQU5EIFJJR0hUIEhFQVZZOzs7OworMjUwRTtCT1ggRFJBV0lOR1MgRE9XTiBIRUFWWSBBTkQgUklHSFQgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIEhFQVZZIEFORCBSSUdIVCBMSUdIVDs7OzsKKzI1MEY7Qk9YIERSQVdJTkdTIEhFQVZZIERPV04gQU5EIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgRE9XTiBBTkQgUklHSFQ7Ozs7CisyNTEwO0JPWCBEUkFXSU5HUyBMSUdIVCBET1dOIEFORCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgRE9XTiBBTkQgTEVGVDs7OzsKKzI1MTE7Qk9YIERSQVdJTkdTIERPV04gTElHSFQgQU5EIExFRlQgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIExJR0hUIEFORCBMRUZUIEhFQVZZOzs7OworMjUxMjtCT1ggRFJBV0lOR1MgRE9XTiBIRUFWWSBBTkQgTEVGVCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gSEVBVlkgQU5EIExFRlQgTElHSFQ7Ozs7CisyNTEzO0JPWCBEUkFXSU5HUyBIRUFWWSBET1dOIEFORCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgRE9XTiBBTkQgTEVGVDs7OzsKKzI1MTQ7Qk9YIERSQVdJTkdTIExJR0hUIFVQIEFORCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFVQIEFORCBSSUdIVDs7OzsKKzI1MTU7Qk9YIERSQVdJTkdTIFVQIExJR0hUIEFORCBSSUdIVCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIExJR0hUIEFORCBSSUdIVCBIRUFWWTs7OzsKKzI1MTY7Qk9YIERSQVdJTkdTIFVQIEhFQVZZIEFORCBSSUdIVCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFVQIEhFQVZZIEFORCBSSUdIVCBMSUdIVDs7OzsKKzI1MTc7Qk9YIERSQVdJTkdTIEhFQVZZIFVQIEFORCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFVQIEFORCBSSUdIVDs7OzsKKzI1MTg7Qk9YIERSQVdJTkdTIExJR0hUIFVQIEFORCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgVVAgQU5EIExFRlQ7Ozs7CisyNTE5O0JPWCBEUkFXSU5HUyBVUCBMSUdIVCBBTkQgTEVGVCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIExJR0hUIEFORCBMRUZUIEhFQVZZOzs7OworMjUxQTtCT1ggRFJBV0lOR1MgVVAgSEVBVlkgQU5EIExFRlQgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBIRUFWWSBBTkQgTEVGVCBMSUdIVDs7OzsKKzI1MUI7Qk9YIERSQVdJTkdTIEhFQVZZIFVQIEFORCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVVAgQU5EIExFRlQ7Ozs7CisyNTFDO0JPWCBEUkFXSU5HUyBMSUdIVCBWRVJUSUNBTCBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBWRVJUSUNBTCBBTkQgUklHSFQ7Ozs7CisyNTFEO0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBMSUdIVCBBTkQgUklHSFQgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBWRVJUSUNBTCBMSUdIVCBBTkQgUklHSFQgSEVBVlk7Ozs7CisyNTFFO0JPWCBEUkFXSU5HUyBVUCBIRUFWWSBBTkQgUklHSFQgRE9XTiBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFVQIEhFQVZZIEFORCBSSUdIVCBET1dOIExJR0hUOzs7OworMjUxRjtCT1ggRFJBV0lOR1MgRE9XTiBIRUFWWSBBTkQgUklHSFQgVVAgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIEhFQVZZIEFORCBSSUdIVCBVUCBMSUdIVDs7OzsKKzI1MjA7Qk9YIERSQVdJTkdTIFZFUlRJQ0FMIEhFQVZZIEFORCBSSUdIVCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIEhFQVZZIEFORCBSSUdIVCBMSUdIVDs7OzsKKzI1MjE7Qk9YIERSQVdJTkdTIERPV04gTElHSFQgQU5EIFJJR0hUIFVQIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBMSUdIVCBBTkQgUklHSFQgVVAgSEVBVlk7Ozs7CisyNTIyO0JPWCBEUkFXSU5HUyBVUCBMSUdIVCBBTkQgUklHSFQgRE9XTiBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIExJR0hUIEFORCBSSUdIVCBET1dOIEhFQVZZOzs7OworMjUyMztCT1ggRFJBV0lOR1MgSEVBVlkgVkVSVElDQUwgQU5EIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVkVSVElDQUwgQU5EIFJJR0hUOzs7OworMjUyNDtCT1ggRFJBV0lOR1MgTElHSFQgVkVSVElDQUwgQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBWRVJUSUNBTCBBTkQgTEVGVDs7OzsKKzI1MjU7Qk9YIERSQVdJTkdTIFZFUlRJQ0FMIExJR0hUIEFORCBMRUZUIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgTElHSFQgQU5EIExFRlQgSEVBVlk7Ozs7CisyNTI2O0JPWCBEUkFXSU5HUyBVUCBIRUFWWSBBTkQgTEVGVCBET1dOIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgVVAgSEVBVlkgQU5EIExFRlQgRE9XTiBMSUdIVDs7OzsKKzI1Mjc7Qk9YIERSQVdJTkdTIERPV04gSEVBVlkgQU5EIExFRlQgVVAgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIEhFQVZZIEFORCBMRUZUIFVQIExJR0hUOzs7OworMjUyODtCT1ggRFJBV0lOR1MgVkVSVElDQUwgSEVBVlkgQU5EIExFRlQgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBWRVJUSUNBTCBIRUFWWSBBTkQgTEVGVCBMSUdIVDs7OzsKKzI1Mjk7Qk9YIERSQVdJTkdTIERPV04gTElHSFQgQU5EIExFRlQgVVAgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIExJR0hUIEFORCBMRUZUIFVQIEhFQVZZOzs7OworMjUyQTtCT1ggRFJBV0lOR1MgVVAgTElHSFQgQU5EIExFRlQgRE9XTiBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIExJR0hUIEFORCBMRUZUIERPV04gSEVBVlk7Ozs7CisyNTJCO0JPWCBEUkFXSU5HUyBIRUFWWSBWRVJUSUNBTCBBTkQgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFZFUlRJQ0FMIEFORCBMRUZUOzs7OworMjUyQztCT1ggRFJBV0lOR1MgTElHSFQgRE9XTiBBTkQgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIERPV04gQU5EIEhPUklaT05UQUw7Ozs7CisyNTJEO0JPWCBEUkFXSU5HUyBMRUZUIEhFQVZZIEFORCBSSUdIVCBET1dOIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTEVGVCBIRUFWWSBBTkQgUklHSFQgRE9XTiBMSUdIVDs7OzsKKzI1MkU7Qk9YIERSQVdJTkdTIFJJR0hUIEhFQVZZIEFORCBMRUZUIERPV04gTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBSSUdIVCBIRUFWWSBBTkQgTEVGVCBET1dOIExJR0hUOzs7OworMjUyRjtCT1ggRFJBV0lOR1MgRE9XTiBMSUdIVCBBTkQgSE9SSVpPTlRBTCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gTElHSFQgQU5EIEhPUklaT05UQUwgSEVBVlk7Ozs7CisyNTMwO0JPWCBEUkFXSU5HUyBET1dOIEhFQVZZIEFORCBIT1JJWk9OVEFMIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBIRUFWWSBBTkQgSE9SSVpPTlRBTCBMSUdIVDs7OzsKKzI1MzE7Qk9YIERSQVdJTkdTIFJJR0hUIExJR0hUIEFORCBMRUZUIERPV04gSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBSSUdIVCBMSUdIVCBBTkQgTEVGVCBET1dOIEhFQVZZOzs7OworMjUzMjtCT1ggRFJBV0lOR1MgTEVGVCBMSUdIVCBBTkQgUklHSFQgRE9XTiBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIExFRlQgTElHSFQgQU5EIFJJR0hUIERPV04gSEVBVlk7Ozs7CisyNTMzO0JPWCBEUkFXSU5HUyBIRUFWWSBET1dOIEFORCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgRE9XTiBBTkQgSE9SSVpPTlRBTDs7OzsKKzI1MzQ7Qk9YIERSQVdJTkdTIExJR0hUIFVQIEFORCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgVVAgQU5EIEhPUklaT05UQUw7Ozs7CisyNTM1O0JPWCBEUkFXSU5HUyBMRUZUIEhFQVZZIEFORCBSSUdIVCBVUCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExFRlQgSEVBVlkgQU5EIFJJR0hUIFVQIExJR0hUOzs7OworMjUzNjtCT1ggRFJBV0lOR1MgUklHSFQgSEVBVlkgQU5EIExFRlQgVVAgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBSSUdIVCBIRUFWWSBBTkQgTEVGVCBVUCBMSUdIVDs7OzsKKzI1Mzc7Qk9YIERSQVdJTkdTIFVQIExJR0hUIEFORCBIT1JJWk9OVEFMIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgVVAgTElHSFQgQU5EIEhPUklaT05UQUwgSEVBVlk7Ozs7CisyNTM4O0JPWCBEUkFXSU5HUyBVUCBIRUFWWSBBTkQgSE9SSVpPTlRBTCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFVQIEhFQVZZIEFORCBIT1JJWk9OVEFMIExJR0hUOzs7OworMjUzOTtCT1ggRFJBV0lOR1MgUklHSFQgTElHSFQgQU5EIExFRlQgVVAgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBSSUdIVCBMSUdIVCBBTkQgTEVGVCBVUCBIRUFWWTs7OzsKKzI1M0E7Qk9YIERSQVdJTkdTIExFRlQgTElHSFQgQU5EIFJJR0hUIFVQIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgTEVGVCBMSUdIVCBBTkQgUklHSFQgVVAgSEVBVlk7Ozs7CisyNTNCO0JPWCBEUkFXSU5HUyBIRUFWWSBVUCBBTkQgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFVQIEFORCBIT1JJWk9OVEFMOzs7OworMjUzQztCT1ggRFJBV0lOR1MgTElHSFQgVkVSVElDQUwgQU5EIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBWRVJUSUNBTCBBTkQgSE9SSVpPTlRBTDs7OzsKKzI1M0Q7Qk9YIERSQVdJTkdTIExFRlQgSEVBVlkgQU5EIFJJR0hUIFZFUlRJQ0FMIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTEVGVCBIRUFWWSBBTkQgUklHSFQgVkVSVElDQUwgTElHSFQ7Ozs7CisyNTNFO0JPWCBEUkFXSU5HUyBSSUdIVCBIRUFWWSBBTkQgTEVGVCBWRVJUSUNBTCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFJJR0hUIEhFQVZZIEFORCBMRUZUIFZFUlRJQ0FMIExJR0hUOzs7OworMjUzRjtCT1ggRFJBV0lOR1MgVkVSVElDQUwgTElHSFQgQU5EIEhPUklaT05UQUwgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBWRVJUSUNBTCBMSUdIVCBBTkQgSE9SSVpPTlRBTCBIRUFWWTs7OzsKKzI1NDA7Qk9YIERSQVdJTkdTIFVQIEhFQVZZIEFORCBET1dOIEhPUklaT05UQUwgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBIRUFWWSBBTkQgRE9XTiBIT1JJWk9OVEFMIExJR0hUOzs7OworMjU0MTtCT1ggRFJBV0lOR1MgRE9XTiBIRUFWWSBBTkQgVVAgSE9SSVpPTlRBTCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gSEVBVlkgQU5EIFVQIEhPUklaT05UQUwgTElHSFQ7Ozs7CisyNTQyO0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBIRUFWWSBBTkQgSE9SSVpPTlRBTCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIEhFQVZZIEFORCBIT1JJWk9OVEFMIExJR0hUOzs7OworMjU0MztCT1ggRFJBV0lOR1MgTEVGVCBVUCBIRUFWWSBBTkQgUklHSFQgRE9XTiBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExFRlQgVVAgSEVBVlkgQU5EIFJJR0hUIERPV04gTElHSFQ7Ozs7CisyNTQ0O0JPWCBEUkFXSU5HUyBSSUdIVCBVUCBIRUFWWSBBTkQgTEVGVCBET1dOIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgUklHSFQgVVAgSEVBVlkgQU5EIExFRlQgRE9XTiBMSUdIVDs7OzsKKzI1NDU7Qk9YIERSQVdJTkdTIExFRlQgRE9XTiBIRUFWWSBBTkQgUklHSFQgVVAgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMRUZUIERPV04gSEVBVlkgQU5EIFJJR0hUIFVQIExJR0hUOzs7OworMjU0NjtCT1ggRFJBV0lOR1MgUklHSFQgRE9XTiBIRUFWWSBBTkQgTEVGVCBVUCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFJJR0hUIERPV04gSEVBVlkgQU5EIExFRlQgVVAgTElHSFQ7Ozs7CisyNTQ3O0JPWCBEUkFXSU5HUyBET1dOIExJR0hUIEFORCBVUCBIT1JJWk9OVEFMIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBMSUdIVCBBTkQgVVAgSE9SSVpPTlRBTCBIRUFWWTs7OzsKKzI1NDg7Qk9YIERSQVdJTkdTIFVQIExJR0hUIEFORCBET1dOIEhPUklaT05UQUwgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBMSUdIVCBBTkQgRE9XTiBIT1JJWk9OVEFMIEhFQVZZOzs7OworMjU0OTtCT1ggRFJBV0lOR1MgUklHSFQgTElHSFQgQU5EIExFRlQgVkVSVElDQUwgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBSSUdIVCBMSUdIVCBBTkQgTEVGVCBWRVJUSUNBTCBIRUFWWTs7OzsKKzI1NEE7Qk9YIERSQVdJTkdTIExFRlQgTElHSFQgQU5EIFJJR0hUIFZFUlRJQ0FMIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgTEVGVCBMSUdIVCBBTkQgUklHSFQgVkVSVElDQUwgSEVBVlk7Ozs7CisyNTRCO0JPWCBEUkFXSU5HUyBIRUFWWSBWRVJUSUNBTCBBTkQgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFZFUlRJQ0FMIEFORCBIT1JJWk9OVEFMOzs7OworMjU0QztCT1ggRFJBV0lOR1MgTElHSFQgRE9VQkxFIERBU0ggSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIERPVUJMRSBEQVNIIEhPUklaT05UQUw7Ozs7CisyNTREO0JPWCBEUkFXSU5HUyBIRUFWWSBET1VCTEUgREFTSCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgRE9VQkxFIERBU0ggSE9SSVpPTlRBTDs7OzsKKzI1NEU7Qk9YIERSQVdJTkdTIExJR0hUIERPVUJMRSBEQVNIIFZFUlRJQ0FMO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgRE9VQkxFIERBU0ggVkVSVElDQUw7Ozs7CisyNTRGO0JPWCBEUkFXSU5HUyBIRUFWWSBET1VCTEUgREFTSCBWRVJUSUNBTDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIERPVUJMRSBEQVNIIFZFUlRJQ0FMOzs7OworMjU1MDtCT1ggRFJBV0lOR1MgRE9VQkxFIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBET1VCTEUgSE9SSVpPTlRBTDs7OzsKKzI1NTE7Qk9YIERSQVdJTkdTIERPVUJMRSBWRVJUSUNBTDtTbzswO09OOzs7OztOO0ZPUk1TIERPVUJMRSBWRVJUSUNBTDs7OzsKKzI1NTI7Qk9YIERSQVdJTkdTIERPV04gU0lOR0xFIEFORCBSSUdIVCBET1VCTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIFNJTkdMRSBBTkQgUklHSFQgRE9VQkxFOzs7OworMjU1MztCT1ggRFJBV0lOR1MgRE9XTiBET1VCTEUgQU5EIFJJR0hUIFNJTkdMRTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gRE9VQkxFIEFORCBSSUdIVCBTSU5HTEU7Ozs7CisyNTU0O0JPWCBEUkFXSU5HUyBET1VCTEUgRE9XTiBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBET1VCTEUgRE9XTiBBTkQgUklHSFQ7Ozs7CisyNTU1O0JPWCBEUkFXSU5HUyBET1dOIFNJTkdMRSBBTkQgTEVGVCBET1VCTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIFNJTkdMRSBBTkQgTEVGVCBET1VCTEU7Ozs7CisyNTU2O0JPWCBEUkFXSU5HUyBET1dOIERPVUJMRSBBTkQgTEVGVCBTSU5HTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIERPVUJMRSBBTkQgTEVGVCBTSU5HTEU7Ozs7CisyNTU3O0JPWCBEUkFXSU5HUyBET1VCTEUgRE9XTiBBTkQgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIERPVUJMRSBET1dOIEFORCBMRUZUOzs7OworMjU1ODtCT1ggRFJBV0lOR1MgVVAgU0lOR0xFIEFORCBSSUdIVCBET1VCTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBTSU5HTEUgQU5EIFJJR0hUIERPVUJMRTs7OzsKKzI1NTk7Qk9YIERSQVdJTkdTIFVQIERPVUJMRSBBTkQgUklHSFQgU0lOR0xFO1NvOzA7T047Ozs7O047Rk9STVMgVVAgRE9VQkxFIEFORCBSSUdIVCBTSU5HTEU7Ozs7CisyNTVBO0JPWCBEUkFXSU5HUyBET1VCTEUgVVAgQU5EIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgRE9VQkxFIFVQIEFORCBSSUdIVDs7OzsKKzI1NUI7Qk9YIERSQVdJTkdTIFVQIFNJTkdMRSBBTkQgTEVGVCBET1VCTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBTSU5HTEUgQU5EIExFRlQgRE9VQkxFOzs7OworMjU1QztCT1ggRFJBV0lOR1MgVVAgRE9VQkxFIEFORCBMRUZUIFNJTkdMRTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIERPVUJMRSBBTkQgTEVGVCBTSU5HTEU7Ozs7CisyNTVEO0JPWCBEUkFXSU5HUyBET1VCTEUgVVAgQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBET1VCTEUgVVAgQU5EIExFRlQ7Ozs7CisyNTVFO0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBTSU5HTEUgQU5EIFJJR0hUIERPVUJMRTtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIFNJTkdMRSBBTkQgUklHSFQgRE9VQkxFOzs7OworMjU1RjtCT1ggRFJBV0lOR1MgVkVSVElDQUwgRE9VQkxFIEFORCBSSUdIVCBTSU5HTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBWRVJUSUNBTCBET1VCTEUgQU5EIFJJR0hUIFNJTkdMRTs7OzsKKzI1NjA7Qk9YIERSQVdJTkdTIERPVUJMRSBWRVJUSUNBTCBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBET1VCTEUgVkVSVElDQUwgQU5EIFJJR0hUOzs7OworMjU2MTtCT1ggRFJBV0lOR1MgVkVSVElDQUwgU0lOR0xFIEFORCBMRUZUIERPVUJMRTtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIFNJTkdMRSBBTkQgTEVGVCBET1VCTEU7Ozs7CisyNTYyO0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBET1VCTEUgQU5EIExFRlQgU0lOR0xFO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgRE9VQkxFIEFORCBMRUZUIFNJTkdMRTs7OzsKKzI1NjM7Qk9YIERSQVdJTkdTIERPVUJMRSBWRVJUSUNBTCBBTkQgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIERPVUJMRSBWRVJUSUNBTCBBTkQgTEVGVDs7OzsKKzI1NjQ7Qk9YIERSQVdJTkdTIERPV04gU0lOR0xFIEFORCBIT1JJWk9OVEFMIERPVUJMRTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gU0lOR0xFIEFORCBIT1JJWk9OVEFMIERPVUJMRTs7OzsKKzI1NjU7Qk9YIERSQVdJTkdTIERPV04gRE9VQkxFIEFORCBIT1JJWk9OVEFMIFNJTkdMRTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gRE9VQkxFIEFORCBIT1JJWk9OVEFMIFNJTkdMRTs7OzsKKzI1NjY7Qk9YIERSQVdJTkdTIERPVUJMRSBET1dOIEFORCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgRE9VQkxFIERPV04gQU5EIEhPUklaT05UQUw7Ozs7CisyNTY3O0JPWCBEUkFXSU5HUyBVUCBTSU5HTEUgQU5EIEhPUklaT05UQUwgRE9VQkxFO1NvOzA7T047Ozs7O047Rk9STVMgVVAgU0lOR0xFIEFORCBIT1JJWk9OVEFMIERPVUJMRTs7OzsKKzI1Njg7Qk9YIERSQVdJTkdTIFVQIERPVUJMRSBBTkQgSE9SSVpPTlRBTCBTSU5HTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBET1VCTEUgQU5EIEhPUklaT05UQUwgU0lOR0xFOzs7OworMjU2OTtCT1ggRFJBV0lOR1MgRE9VQkxFIFVQIEFORCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgRE9VQkxFIFVQIEFORCBIT1JJWk9OVEFMOzs7OworMjU2QTtCT1ggRFJBV0lOR1MgVkVSVElDQUwgU0lOR0xFIEFORCBIT1JJWk9OVEFMIERPVUJMRTtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIFNJTkdMRSBBTkQgSE9SSVpPTlRBTCBET1VCTEU7Ozs7CisyNTZCO0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBET1VCTEUgQU5EIEhPUklaT05UQUwgU0lOR0xFO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgRE9VQkxFIEFORCBIT1JJWk9OVEFMIFNJTkdMRTs7OzsKKzI1NkM7Qk9YIERSQVdJTkdTIERPVUJMRSBWRVJUSUNBTCBBTkQgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIERPVUJMRSBWRVJUSUNBTCBBTkQgSE9SSVpPTlRBTDs7OzsKKzI1NkQ7Qk9YIERSQVdJTkdTIExJR0hUIEFSQyBET1dOIEFORCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIEFSQyBET1dOIEFORCBSSUdIVDs7OzsKKzI1NkU7Qk9YIERSQVdJTkdTIExJR0hUIEFSQyBET1dOIEFORCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgQVJDIERPV04gQU5EIExFRlQ7Ozs7CisyNTZGO0JPWCBEUkFXSU5HUyBMSUdIVCBBUkMgVVAgQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBBUkMgVVAgQU5EIExFRlQ7Ozs7CisyNTcwO0JPWCBEUkFXSU5HUyBMSUdIVCBBUkMgVVAgQU5EIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgQVJDIFVQIEFORCBSSUdIVDs7OzsKKzI1NzE7Qk9YIERSQVdJTkdTIExJR0hUIERJQUdPTkFMIFVQUEVSIFJJR0hUIFRPIExPV0VSIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBESUFHT05BTCBVUFBFUiBSSUdIVCBUTyBMT1dFUiBMRUZUOzs7OworMjU3MjtCT1ggRFJBV0lOR1MgTElHSFQgRElBR09OQUwgVVBQRVIgTEVGVCBUTyBMT1dFUiBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIERJQUdPTkFMIFVQUEVSIExFRlQgVE8gTE9XRVIgUklHSFQ7Ozs7CisyNTczO0JPWCBEUkFXSU5HUyBMSUdIVCBESUFHT05BTCBDUk9TUztTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIERJQUdPTkFMIENST1NTOzs7OworMjU3NDtCT1ggRFJBV0lOR1MgTElHSFQgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIExFRlQ7Ozs7CisyNTc1O0JPWCBEUkFXSU5HUyBMSUdIVCBVUDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFVQOzs7OworMjU3NjtCT1ggRFJBV0lOR1MgTElHSFQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBSSUdIVDs7OzsKKzI1Nzc7Qk9YIERSQVdJTkdTIExJR0hUIERPV047U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBET1dOOzs7OworMjU3ODtCT1ggRFJBV0lOR1MgSEVBVlkgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIExFRlQ7Ozs7CisyNTc5O0JPWCBEUkFXSU5HUyBIRUFWWSBVUDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFVQOzs7OworMjU3QTtCT1ggRFJBV0lOR1MgSEVBVlkgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBSSUdIVDs7OzsKKzI1N0I7Qk9YIERSQVdJTkdTIEhFQVZZIERPV047U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBET1dOOzs7OworMjU3QztCT1ggRFJBV0lOR1MgTElHSFQgTEVGVCBBTkQgSEVBVlkgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBMRUZUIEFORCBIRUFWWSBSSUdIVDs7OzsKKzI1N0Q7Qk9YIERSQVdJTkdTIExJR0hUIFVQIEFORCBIRUFWWSBET1dOO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgVVAgQU5EIEhFQVZZIERPV047Ozs7CisyNTdFO0JPWCBEUkFXSU5HUyBIRUFWWSBMRUZUIEFORCBMSUdIVCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIExFRlQgQU5EIExJR0hUIFJJR0hUOzs7OworMjU3RjtCT1ggRFJBV0lOR1MgSEVBVlkgVVAgQU5EIExJR0hUIERPV047U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBVUCBBTkQgTElHSFQgRE9XTjs7OzsKKzI1ODA7VVBQRVIgSEFMRiBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1ODE7TE9XRVIgT05FIEVJR0hUSCBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1ODI7TE9XRVIgT05FIFFVQVJURVIgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTgzO0xPV0VSIFRIUkVFIEVJR0hUSFMgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTg0O0xPV0VSIEhBTEYgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTg1O0xPV0VSIEZJVkUgRUlHSFRIUyBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1ODY7TE9XRVIgVEhSRUUgUVVBUlRFUlMgQkxPQ0s7U287MDtPTjs7Ozs7TjtMT1dFUiBUSFJFRSBRVUFSVEVSIEJMT0NLOzs7OworMjU4NztMT1dFUiBTRVZFTiBFSUdIVEhTIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4ODtGVUxMIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4OTtMRUZUIFNFVkVOIEVJR0hUSFMgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNThBO0xFRlQgVEhSRUUgUVVBUlRFUlMgQkxPQ0s7U287MDtPTjs7Ozs7TjtMRUZUIFRIUkVFIFFVQVJURVIgQkxPQ0s7Ozs7CisyNThCO0xFRlQgRklWRSBFSUdIVEhTIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4QztMRUZUIEhBTEYgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNThEO0xFRlQgVEhSRUUgRUlHSFRIUyBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1OEU7TEVGVCBPTkUgUVVBUlRFUiBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1OEY7TEVGVCBPTkUgRUlHSFRIIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU5MDtSSUdIVCBIQUxGIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU5MTtMSUdIVCBTSEFERTtTbzswO09OOzs7OztOOzs7OzsKKzI1OTI7TUVESVVNIFNIQURFO1NvOzA7T047Ozs7O047Ozs7OworMjU5MztEQVJLIFNIQURFO1NvOzA7T047Ozs7O047Ozs7OworMjU5NDtVUFBFUiBPTkUgRUlHSFRIIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU5NTtSSUdIVCBPTkUgRUlHSFRIIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU5NjtRVUFEUkFOVCBMT1dFUiBMRUZUO1NvOzA7T047Ozs7O047Ozs7OworMjU5NztRVUFEUkFOVCBMT1dFUiBSSUdIVDtTbzswO09OOzs7OztOOzs7OzsKKzI1OTg7UVVBRFJBTlQgVVBQRVIgTEVGVDtTbzswO09OOzs7OztOOzs7OzsKKzI1OTk7UVVBRFJBTlQgVVBQRVIgTEVGVCBBTkQgTE9XRVIgTEVGVCBBTkQgTE9XRVIgUklHSFQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTlBO1FVQURSQU5UIFVQUEVSIExFRlQgQU5EIExPV0VSIFJJR0hUO1NvOzA7T047Ozs7O047Ozs7OworMjU5QjtRVUFEUkFOVCBVUFBFUiBMRUZUIEFORCBVUFBFUiBSSUdIVCBBTkQgTE9XRVIgTEVGVDtTbzswO09OOzs7OztOOzs7OzsKKzI1OUM7UVVBRFJBTlQgVVBQRVIgTEVGVCBBTkQgVVBQRVIgUklHSFQgQU5EIExPV0VSIFJJR0hUO1NvOzA7T047Ozs7O047Ozs7OworMjU5RDtRVUFEUkFOVCBVUFBFUiBSSUdIVDtTbzswO09OOzs7OztOOzs7OzsKKzI1OUU7UVVBRFJBTlQgVVBQRVIgUklHSFQgQU5EIExPV0VSIExFRlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTlGO1FVQURSQU5UIFVQUEVSIFJJR0hUIEFORCBMT1dFUiBMRUZUIEFORCBMT1dFUiBSSUdIVDtTbzswO09OOzs7OztOOzs7OzsKKzI1QTA7QkxBQ0sgU1FVQVJFO1NvOzA7T047Ozs7O047Ozs7OworMjVBMTtXSElURSBTUVVBUkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUEyO1dISVRFIFNRVUFSRSBXSVRIIFJPVU5ERUQgQ09STkVSUztTbzswO09OOzs7OztOOzs7OzsKKzI1QTM7V0hJVEUgU1FVQVJFIENPTlRBSU5JTkcgQkxBQ0sgU01BTEwgU1FVQVJFO1NvOzA7T047Ozs7O047Ozs7OworMjVBNDtTUVVBUkUgV0lUSCBIT1JJWk9OVEFMIEZJTEw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUE1O1NRVUFSRSBXSVRIIFZFUlRJQ0FMIEZJTEw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUE2O1NRVUFSRSBXSVRIIE9SVEhPR09OQUwgQ1JPU1NIQVRDSCBGSUxMO1NvOzA7T047Ozs7O047Ozs7OworMjVBNztTUVVBUkUgV0lUSCBVUFBFUiBMRUZUIFRPIExPV0VSIFJJR0hUIEZJTEw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUE4O1NRVUFSRSBXSVRIIFVQUEVSIFJJR0hUIFRPIExPV0VSIExFRlQgRklMTDtTbzswO09OOzs7OztOOzs7OzsKKzI1QTk7U1FVQVJFIFdJVEggRElBR09OQUwgQ1JPU1NIQVRDSCBGSUxMO1NvOzA7T047Ozs7O047Ozs7OworMjVBQTtCTEFDSyBTTUFMTCBTUVVBUkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUFCO1dISVRFIFNNQUxMIFNRVUFSRTtTbzswO09OOzs7OztOOzs7OzsKKzI1QUM7QkxBQ0sgUkVDVEFOR0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVBRDtXSElURSBSRUNUQU5HTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUFFO0JMQUNLIFZFUlRJQ0FMIFJFQ1RBTkdMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1QUY7V0hJVEUgVkVSVElDQUwgUkVDVEFOR0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVCMDtCTEFDSyBQQVJBTExFTE9HUkFNO1NvOzA7T047Ozs7O047Ozs7OworMjVCMTtXSElURSBQQVJBTExFTE9HUkFNO1NvOzA7T047Ozs7O047Ozs7OworMjVCMjtCTEFDSyBVUC1QT0lOVElORyBUUklBTkdMRTtTbzswO09OOzs7OztOO0JMQUNLIFVQIFBPSU5USU5HIFRSSUFOR0xFOzs7OworMjVCMztXSElURSBVUC1QT0lOVElORyBUUklBTkdMRTtTbzswO09OOzs7OztOO1dISVRFIFVQIFBPSU5USU5HIFRSSUFOR0xFOzs7OworMjVCNDtCTEFDSyBVUC1QT0lOVElORyBTTUFMTCBUUklBTkdMRTtTbzswO09OOzs7OztOO0JMQUNLIFVQIFBPSU5USU5HIFNNQUxMIFRSSUFOR0xFOzs7OworMjVCNTtXSElURSBVUC1QT0lOVElORyBTTUFMTCBUUklBTkdMRTtTbzswO09OOzs7OztOO1dISVRFIFVQIFBPSU5USU5HIFNNQUxMIFRSSUFOR0xFOzs7OworMjVCNjtCTEFDSyBSSUdIVC1QT0lOVElORyBUUklBTkdMRTtTbzswO09OOzs7OztOO0JMQUNLIFJJR0hUIFBPSU5USU5HIFRSSUFOR0xFOzs7OworMjVCNztXSElURSBSSUdIVC1QT0lOVElORyBUUklBTkdMRTtTbTswO09OOzs7OztOO1dISVRFIFJJR0hUIFBPSU5USU5HIFRSSUFOR0xFOzs7OworMjVCODtCTEFDSyBSSUdIVC1QT0lOVElORyBTTUFMTCBUUklBTkdMRTtTbzswO09OOzs7OztOO0JMQUNLIFJJR0hUIFBPSU5USU5HIFNNQUxMIFRSSUFOR0xFOzs7OworMjVCOTtXSElURSBSSUdIVC1QT0lOVElORyBTTUFMTCBUUklBTkdMRTtTbzswO09OOzs7OztOO1dISVRFIFJJR0hUIFBPSU5USU5HIFNNQUxMIFRSSUFOR0xFOzs7OworMjVCQTtCTEFDSyBSSUdIVC1QT0lOVElORyBQT0lOVEVSO1NvOzA7T047Ozs7O047QkxBQ0sgUklHSFQgUE9JTlRJTkcgUE9JTlRFUjs7OzsKKzI1QkI7V0hJVEUgUklHSFQtUE9JTlRJTkcgUE9JTlRFUjtTbzswO09OOzs7OztOO1dISVRFIFJJR0hUIFBPSU5USU5HIFBPSU5URVI7Ozs7CisyNUJDO0JMQUNLIERPV04tUE9JTlRJTkcgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtCTEFDSyBET1dOIFBPSU5USU5HIFRSSUFOR0xFOzs7OworMjVCRDtXSElURSBET1dOLVBPSU5USU5HIFRSSUFOR0xFO1NvOzA7T047Ozs7O047V0hJVEUgRE9XTiBQT0lOVElORyBUUklBTkdMRTs7OzsKKzI1QkU7QkxBQ0sgRE9XTi1QT0lOVElORyBTTUFMTCBUUklBTkdMRTtTbzswO09OOzs7OztOO0JMQUNLIERPV04gUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7Ozs7CisyNUJGO1dISVRFIERPV04tUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtXSElURSBET1dOIFBPSU5USU5HIFNNQUxMIFRSSUFOR0xFOzs7OworMjVDMDtCTEFDSyBMRUZULVBPSU5USU5HIFRSSUFOR0xFO1NvOzA7T047Ozs7O047QkxBQ0sgTEVGVCBQT0lOVElORyBUUklBTkdMRTs7OzsKKzI1QzE7V0hJVEUgTEVGVC1QT0lOVElORyBUUklBTkdMRTtTbTswO09OOzs7OztOO1dISVRFIExFRlQgUE9JTlRJTkcgVFJJQU5HTEU7Ozs7CisyNUMyO0JMQUNLIExFRlQtUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtCTEFDSyBMRUZUIFBPSU5USU5HIFNNQUxMIFRSSUFOR0xFOzs7OworMjVDMztXSElURSBMRUZULVBPSU5USU5HIFNNQUxMIFRSSUFOR0xFO1NvOzA7T047Ozs7O047V0hJVEUgTEVGVCBQT0lOVElORyBTTUFMTCBUUklBTkdMRTs7OzsKKzI1QzQ7QkxBQ0sgTEVGVC1QT0lOVElORyBQT0lOVEVSO1NvOzA7T047Ozs7O047QkxBQ0sgTEVGVCBQT0lOVElORyBQT0lOVEVSOzs7OworMjVDNTtXSElURSBMRUZULVBPSU5USU5HIFBPSU5URVI7U287MDtPTjs7Ozs7TjtXSElURSBMRUZUIFBPSU5USU5HIFBPSU5URVI7Ozs7CisyNUM2O0JMQUNLIERJQU1PTkQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUM3O1dISVRFIERJQU1PTkQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUM4O1dISVRFIERJQU1PTkQgQ09OVEFJTklORyBCTEFDSyBTTUFMTCBESUFNT05EO1NvOzA7T047Ozs7O047Ozs7OworMjVDOTtGSVNIRVlFO1NvOzA7T047Ozs7O047Ozs7OworMjVDQTtMT1pFTkdFO1NvOzA7T047Ozs7O047Ozs7OworMjVDQjtXSElURSBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUNDO0RPVFRFRCBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUNEO0NJUkNMRSBXSVRIIFZFUlRJQ0FMIEZJTEw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUNFO0JVTExTRVlFO1NvOzA7T047Ozs7O047Ozs7OworMjVDRjtCTEFDSyBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUQwO0NJUkNMRSBXSVRIIExFRlQgSEFMRiBCTEFDSztTbzswO09OOzs7OztOOzs7OzsKKzI1RDE7Q0lSQ0xFIFdJVEggUklHSFQgSEFMRiBCTEFDSztTbzswO09OOzs7OztOOzs7OzsKKzI1RDI7Q0lSQ0xFIFdJVEggTE9XRVIgSEFMRiBCTEFDSztTbzswO09OOzs7OztOOzs7OzsKKzI1RDM7Q0lSQ0xFIFdJVEggVVBQRVIgSEFMRiBCTEFDSztTbzswO09OOzs7OztOOzs7OzsKKzI1RDQ7Q0lSQ0xFIFdJVEggVVBQRVIgUklHSFQgUVVBRFJBTlQgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUQ1O0NJUkNMRSBXSVRIIEFMTCBCVVQgVVBQRVIgTEVGVCBRVUFEUkFOVCBCTEFDSztTbzswO09OOzs7OztOOzs7OzsKKzI1RDY7TEVGVCBIQUxGIEJMQUNLIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1RDc7UklHSFQgSEFMRiBCTEFDSyBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUQ4O0lOVkVSU0UgQlVMTEVUO1NvOzA7T047Ozs7O047Ozs7OworMjVEOTtJTlZFUlNFIFdISVRFIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1REE7VVBQRVIgSEFMRiBJTlZFUlNFIFdISVRFIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1REI7TE9XRVIgSEFMRiBJTlZFUlNFIFdISVRFIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1REM7VVBQRVIgTEVGVCBRVUFEUkFOVCBDSVJDVUxBUiBBUkM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUREO1VQUEVSIFJJR0hUIFFVQURSQU5UIENJUkNVTEFSIEFSQztTbzswO09OOzs7OztOOzs7OzsKKzI1REU7TE9XRVIgUklHSFQgUVVBRFJBTlQgQ0lSQ1VMQVIgQVJDO1NvOzA7T047Ozs7O047Ozs7OworMjVERjtMT1dFUiBMRUZUIFFVQURSQU5UIENJUkNVTEFSIEFSQztTbzswO09OOzs7OztOOzs7OzsKKzI1RTA7VVBQRVIgSEFMRiBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUUxO0xPV0VSIEhBTEYgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVFMjtCTEFDSyBMT1dFUiBSSUdIVCBUUklBTkdMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1RTM7QkxBQ0sgTE9XRVIgTEVGVCBUUklBTkdMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1RTQ7QkxBQ0sgVVBQRVIgTEVGVCBUUklBTkdMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1RTU7QkxBQ0sgVVBQRVIgUklHSFQgVFJJQU5HTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUU2O1dISVRFIEJVTExFVDtTbzswO09OOzs7OztOOzs7OzsKKzI1RTc7U1FVQVJFIFdJVEggTEVGVCBIQUxGIEJMQUNLO1NvOzA7T047Ozs7O047Ozs7OworMjVFODtTUVVBUkUgV0lUSCBSSUdIVCBIQUxGIEJMQUNLO1NvOzA7T047Ozs7O047Ozs7OworMjVFOTtTUVVBUkUgV0lUSCBVUFBFUiBMRUZUIERJQUdPTkFMIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUVBO1NRVUFSRSBXSVRIIExPV0VSIFJJR0hUIERJQUdPTkFMIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUVCO1dISVRFIFNRVUFSRSBXSVRIIFZFUlRJQ0FMIEJJU0VDVElORyBMSU5FO1NvOzA7T047Ozs7O047Ozs7OworMjVFQztXSElURSBVUC1QT0lOVElORyBUUklBTkdMRSBXSVRIIERPVDtTbzswO09OOzs7OztOO1dISVRFIFVQIFBPSU5USU5HIFRSSUFOR0xFIFdJVEggRE9UOzs7OworMjVFRDtVUC1QT0lOVElORyBUUklBTkdMRSBXSVRIIExFRlQgSEFMRiBCTEFDSztTbzswO09OOzs7OztOO1VQIFBPSU5USU5HIFRSSUFOR0xFIFdJVEggTEVGVCBIQUxGIEJMQUNLOzs7OworMjVFRTtVUC1QT0lOVElORyBUUklBTkdMRSBXSVRIIFJJR0hUIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7TjtVUCBQT0lOVElORyBUUklBTkdMRSBXSVRIIFJJR0hUIEhBTEYgQkxBQ0s7Ozs7CisyNUVGO0xBUkdFIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1RjA7V0hJVEUgU1FVQVJFIFdJVEggVVBQRVIgTEVGVCBRVUFEUkFOVDtTbzswO09OOzs7OztOOzs7OzsKKzI1RjE7V0hJVEUgU1FVQVJFIFdJVEggTE9XRVIgTEVGVCBRVUFEUkFOVDtTbzswO09OOzs7OztOOzs7OzsKKzI1RjI7V0hJVEUgU1FVQVJFIFdJVEggTE9XRVIgUklHSFQgUVVBRFJBTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUYzO1dISVRFIFNRVUFSRSBXSVRIIFVQUEVSIFJJR0hUIFFVQURSQU5UO1NvOzA7T047Ozs7O047Ozs7OworMjVGNDtXSElURSBDSVJDTEUgV0lUSCBVUFBFUiBMRUZUIFFVQURSQU5UO1NvOzA7T047Ozs7O047Ozs7OworMjVGNTtXSElURSBDSVJDTEUgV0lUSCBMT1dFUiBMRUZUIFFVQURSQU5UO1NvOzA7T047Ozs7O047Ozs7OworMjVGNjtXSElURSBDSVJDTEUgV0lUSCBMT1dFUiBSSUdIVCBRVUFEUkFOVDtTbzswO09OOzs7OztOOzs7OzsKKzI1Rjc7V0hJVEUgQ0lSQ0xFIFdJVEggVVBQRVIgUklHSFQgUVVBRFJBTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUY4O1VQUEVSIExFRlQgVFJJQU5HTEU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyNUY5O1VQUEVSIFJJR0hUIFRSSUFOR0xFO1NtOzA7T047Ozs7O047Ozs7OworMjVGQTtMT1dFUiBMRUZUIFRSSUFOR0xFO1NtOzA7T047Ozs7O047Ozs7OworMjVGQjtXSElURSBNRURJVU0gU1FVQVJFO1NtOzA7T047Ozs7O047Ozs7OworMjVGQztCTEFDSyBNRURJVU0gU1FVQVJFO1NtOzA7T047Ozs7O047Ozs7OworMjVGRDtXSElURSBNRURJVU0gU01BTEwgU1FVQVJFO1NtOzA7T047Ozs7O047Ozs7OworMjVGRTtCTEFDSyBNRURJVU0gU01BTEwgU1FVQVJFO1NtOzA7T047Ozs7O047Ozs7OworMjVGRjtMT1dFUiBSSUdIVCBUUklBTkdMRTtTbTswO09OOzs7OztOOzs7OzsKKzI2MDA7QkxBQ0sgU1VOIFdJVEggUkFZUztTbzswO09OOzs7OztOOzs7OzsKKzI2MDE7Q0xPVUQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjAyO1VNQlJFTExBO1NvOzA7T047Ozs7O047Ozs7OworMjYwMztTTk9XTUFOO1NvOzA7T047Ozs7O047Ozs7OworMjYwNDtDT01FVDtTbzswO09OOzs7OztOOzs7OzsKKzI2MDU7QkxBQ0sgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI2MDY7V0hJVEUgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI2MDc7TElHSFROSU5HO1NvOzA7T047Ozs7O047Ozs7OworMjYwODtUSFVOREVSU1RPUk07U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjA5O1NVTjtTbzswO09OOzs7OztOOzs7OzsKKzI2MEE7QVNDRU5ESU5HIE5PREU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjBCO0RFU0NFTkRJTkcgTk9ERTtTbzswO09OOzs7OztOOzs7OzsKKzI2MEM7Q09OSlVOQ1RJT047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjBEO09QUE9TSVRJT047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjBFO0JMQUNLIFRFTEVQSE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzI2MEY7V0hJVEUgVEVMRVBIT05FO1NvOzA7T047Ozs7O047Ozs7OworMjYxMDtCQUxMT1QgQk9YO1NvOzA7T047Ozs7O047Ozs7OworMjYxMTtCQUxMT1QgQk9YIFdJVEggQ0hFQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjEyO0JBTExPVCBCT1ggV0lUSCBYO1NvOzA7T047Ozs7O047Ozs7OworMjYxMztTQUxUSVJFO1NvOzA7T047Ozs7O047Ozs7OworMjYxNjtXSElURSBTSE9HSSBQSUVDRTtTbzswO09OOzs7OztOOzs7OzsKKzI2MTc7QkxBQ0sgU0hPR0kgUElFQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjE5O1JFVkVSU0VEIFJPVEFURUQgRkxPUkFMIEhFQVJUIEJVTExFVDtTbzswO09OOzs7OztOOzs7OzsKKzI2MUE7QkxBQ0sgTEVGVCBQT0lOVElORyBJTkRFWDtTbzswO09OOzs7OztOOzs7OzsKKzI2MUI7QkxBQ0sgUklHSFQgUE9JTlRJTkcgSU5ERVg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjFDO1dISVRFIExFRlQgUE9JTlRJTkcgSU5ERVg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjFEO1dISVRFIFVQIFBPSU5USU5HIElOREVYO1NvOzA7T047Ozs7O047Ozs7OworMjYxRTtXSElURSBSSUdIVCBQT0lOVElORyBJTkRFWDtTbzswO09OOzs7OztOOzs7OzsKKzI2MUY7V0hJVEUgRE9XTiBQT0lOVElORyBJTkRFWDtTbzswO09OOzs7OztOOzs7OzsKKzI2MjA7U0tVTEwgQU5EIENST1NTQk9ORVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjIxO0NBVVRJT04gU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzI2MjI7UkFESU9BQ1RJVkUgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzI2MjM7QklPSEFaQVJEIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjI0O0NBRFVDRVVTO1NvOzA7T047Ozs7O047Ozs7OworMjYyNTtBTktIO1NvOzA7T047Ozs7O047Ozs7OworMjYyNjtPUlRIT0RPWCBDUk9TUztTbzswO09OOzs7OztOOzs7OzsKKzI2Mjc7Q0hJIFJITztTbzswO09OOzs7OztOOzs7OzsKKzI2Mjg7Q1JPU1MgT0YgTE9SUkFJTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjI5O0NST1NTIE9GIEpFUlVTQUxFTTtTbzswO09OOzs7OztOOzs7OzsKKzI2MkE7U1RBUiBBTkQgQ1JFU0NFTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjJCO0ZBUlNJIFNZTUJPTDtTbzswO09OOzs7OztOO1NZTUJPTCBPRiBJUkFOOzs7OworMjYyQztBREkgU0hBS1RJO1NvOzA7T047Ozs7O047Ozs7OworMjYyRDtIQU1NRVIgQU5EIFNJQ0tMRTtTbzswO09OOzs7OztOOzs7OzsKKzI2MkU7UEVBQ0UgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjYyRjtZSU4gWUFORztTbzswO09OOzs7OztOOzs7OzsKKzI2MzA7VFJJR1JBTSBGT1IgSEVBVkVOO1NvOzA7T047Ozs7O047Ozs7OworMjYzMTtUUklHUkFNIEZPUiBMQUtFO1NvOzA7T047Ozs7O047Ozs7OworMjYzMjtUUklHUkFNIEZPUiBGSVJFO1NvOzA7T047Ozs7O047Ozs7OworMjYzMztUUklHUkFNIEZPUiBUSFVOREVSO1NvOzA7T047Ozs7O047Ozs7OworMjYzNDtUUklHUkFNIEZPUiBXSU5EO1NvOzA7T047Ozs7O047Ozs7OworMjYzNTtUUklHUkFNIEZPUiBXQVRFUjtTbzswO09OOzs7OztOOzs7OzsKKzI2MzY7VFJJR1JBTSBGT1IgTU9VTlRBSU47U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjM3O1RSSUdSQU0gRk9SIEVBUlRIO1NvOzA7T047Ozs7O047Ozs7OworMjYzODtXSEVFTCBPRiBESEFSTUE7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjM5O1dISVRFIEZST1dOSU5HIEZBQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjNBO1dISVRFIFNNSUxJTkcgRkFDRTtTbzswO09OOzs7OztOOzs7OzsKKzI2M0I7QkxBQ0sgU01JTElORyBGQUNFO1NvOzA7T047Ozs7O047Ozs7OworMjYzQztXSElURSBTVU4gV0lUSCBSQVlTO1NvOzA7T047Ozs7O047Ozs7OworMjYzRDtGSVJTVCBRVUFSVEVSIE1PT047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjNFO0xBU1QgUVVBUlRFUiBNT09OO1NvOzA7T047Ozs7O047Ozs7OworMjYzRjtNRVJDVVJZO1NvOzA7T047Ozs7O047Ozs7OworMjY0MDtGRU1BTEUgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzI2NDE7RUFSVEg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjQyO01BTEUgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzI2NDM7SlVQSVRFUjtTbzswO09OOzs7OztOOzs7OzsKKzI2NDQ7U0FUVVJOO1NvOzA7T047Ozs7O047Ozs7OworMjY0NTtVUkFOVVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjQ2O05FUFRVTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjQ3O1BMVVRPO1NvOzA7T047Ozs7O047Ozs7OworMjY0ODtBUklFUztTbzswO09OOzs7OztOOzs7OzsKKzI2NDk7VEFVUlVTO1NvOzA7T047Ozs7O047Ozs7OworMjY0QTtHRU1JTkk7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjRCO0NBTkNFUjtTbzswO09OOzs7OztOOzs7OzsKKzI2NEM7TEVPO1NvOzA7T047Ozs7O047Ozs7OworMjY0RDtWSVJHTztTbzswO09OOzs7OztOOzs7OzsKKzI2NEU7TElCUkE7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjRGO1NDT1JQSVVTO1NvOzA7T047Ozs7O047Ozs7OworMjY1MDtTQUdJVFRBUklVUztTbzswO09OOzs7OztOOzs7OzsKKzI2NTE7Q0FQUklDT1JOO1NvOzA7T047Ozs7O047Ozs7OworMjY1MjtBUVVBUklVUztTbzswO09OOzs7OztOOzs7OzsKKzI2NTM7UElTQ0VTO1NvOzA7T047Ozs7O047Ozs7OworMjY1NDtXSElURSBDSEVTUyBLSU5HO1NvOzA7T047Ozs7O047Ozs7OworMjY1NTtXSElURSBDSEVTUyBRVUVFTjtTbzswO09OOzs7OztOOzs7OzsKKzI2NTY7V0hJVEUgQ0hFU1MgUk9PSztTbzswO09OOzs7OztOOzs7OzsKKzI2NTc7V0hJVEUgQ0hFU1MgQklTSE9QO1NvOzA7T047Ozs7O047Ozs7OworMjY1ODtXSElURSBDSEVTUyBLTklHSFQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjU5O1dISVRFIENIRVNTIFBBV047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjVBO0JMQUNLIENIRVNTIEtJTkc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjVCO0JMQUNLIENIRVNTIFFVRUVOO1NvOzA7T047Ozs7O047Ozs7OworMjY1QztCTEFDSyBDSEVTUyBST09LO1NvOzA7T047Ozs7O047Ozs7OworMjY1RDtCTEFDSyBDSEVTUyBCSVNIT1A7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjVFO0JMQUNLIENIRVNTIEtOSUdIVDtTbzswO09OOzs7OztOOzs7OzsKKzI2NUY7QkxBQ0sgQ0hFU1MgUEFXTjtTbzswO09OOzs7OztOOzs7OzsKKzI2NjA7QkxBQ0sgU1BBREUgU1VJVDtTbzswO09OOzs7OztOOzs7OzsKKzI2NjE7V0hJVEUgSEVBUlQgU1VJVDtTbzswO09OOzs7OztOOzs7OzsKKzI2NjI7V0hJVEUgRElBTU9ORCBTVUlUO1NvOzA7T047Ozs7O047Ozs7OworMjY2MztCTEFDSyBDTFVCIFNVSVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjY0O1dISVRFIFNQQURFIFNVSVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjY1O0JMQUNLIEhFQVJUIFNVSVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjY2O0JMQUNLIERJQU1PTkQgU1VJVDtTbzswO09OOzs7OztOOzs7OzsKKzI2Njc7V0hJVEUgQ0xVQiBTVUlUO1NvOzA7T047Ozs7O047Ozs7OworMjY2ODtIT1QgU1BSSU5HUztTbzswO09OOzs7OztOOzs7OzsKKzI2Njk7UVVBUlRFUiBOT1RFO1NvOzA7T047Ozs7O047Ozs7OworMjY2QTtFSUdIVEggTk9URTtTbzswO09OOzs7OztOOzs7OzsKKzI2NkI7QkVBTUVEIEVJR0hUSCBOT1RFUztTbzswO09OOzs7OztOO0JBUlJFRCBFSUdIVEggTk9URVM7Ozs7CisyNjZDO0JFQU1FRCBTSVhURUVOVEggTk9URVM7U287MDtPTjs7Ozs7TjtCQVJSRUQgU0lYVEVFTlRIIE5PVEVTOzs7OworMjY2RDtNVVNJQyBGTEFUIFNJR047U287MDtPTjs7Ozs7TjtGTEFUOzs7OworMjY2RTtNVVNJQyBOQVRVUkFMIFNJR047U287MDtPTjs7Ozs7TjtOQVRVUkFMOzs7OworMjY2RjtNVVNJQyBTSEFSUCBTSUdOO1NtOzA7T047Ozs7O047U0hBUlA7Ozs7CisyNjcwO1dFU1QgU1lSSUFDIENST1NTO1NvOzA7T047Ozs7O047Ozs7OworMjY3MTtFQVNUIFNZUklBQyBDUk9TUztTbzswO09OOzs7OztOOzs7OzsKKzI2NzI7VU5JVkVSU0FMIFJFQ1lDTElORyBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjczO1JFQ1lDTElORyBTWU1CT0wgRk9SIFRZUEUtMSBQTEFTVElDUztTbzswO09OOzs7OztOOztwZXRlOzs7CisyNjc0O1JFQ1lDTElORyBTWU1CT0wgRk9SIFRZUEUtMiBQTEFTVElDUztTbzswO09OOzs7OztOOztoZHBlOzs7CisyNjc1O1JFQ1lDTElORyBTWU1CT0wgRk9SIFRZUEUtMyBQTEFTVElDUztTbzswO09OOzs7OztOOztwdmM7OzsKKzI2NzY7UkVDWUNMSU5HIFNZTUJPTCBGT1IgVFlQRS00IFBMQVNUSUNTO1NvOzA7T047Ozs7O047O2xkcGU7OzsKKzI2Nzc7UkVDWUNMSU5HIFNZTUJPTCBGT1IgVFlQRS01IFBMQVNUSUNTO1NvOzA7T047Ozs7O047O3BwOzs7CisyNjc4O1JFQ1lDTElORyBTWU1CT0wgRk9SIFRZUEUtNiBQTEFTVElDUztTbzswO09OOzs7OztOOztwczs7OworMjY3OTtSRUNZQ0xJTkcgU1lNQk9MIEZPUiBUWVBFLTcgUExBU1RJQ1M7U287MDtPTjs7Ozs7Tjs7b3RoZXI7OzsKKzI2N0E7UkVDWUNMSU5HIFNZTUJPTCBGT1IgR0VORVJJQyBNQVRFUklBTFM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjdCO0JMQUNLIFVOSVZFUlNBTCBSRUNZQ0xJTkcgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjY3QztSRUNZQ0xFRCBQQVBFUiBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjdEO1BBUlRJQUxMWS1SRUNZQ0xFRCBQQVBFUiBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjgwO0RJRSBGQUNFLTE7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjgxO0RJRSBGQUNFLTI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjgyO0RJRSBGQUNFLTM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjgzO0RJRSBGQUNFLTQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjg0O0RJRSBGQUNFLTU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjg1O0RJRSBGQUNFLTY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjg2O1dISVRFIENJUkNMRSBXSVRIIERPVCBSSUdIVDtTbzswO09OOzs7OztOOzs7OzsKKzI2ODc7V0hJVEUgQ0lSQ0xFIFdJVEggVFdPIERPVFM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjg4O0JMQUNLIENJUkNMRSBXSVRIIFdISVRFIERPVCBSSUdIVDtTbzswO09OOzs7OztOOzs7OzsKKzI2ODk7QkxBQ0sgQ0lSQ0xFIFdJVEggVFdPIFdISVRFIERPVFM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzAxO1VQUEVSIEJMQURFIFNDSVNTT1JTO1NvOzA7T047Ozs7O047Ozs7OworMjcwMjtCTEFDSyBTQ0lTU09SUztTbzswO09OOzs7OztOOzs7OzsKKzI3MDM7TE9XRVIgQkxBREUgU0NJU1NPUlM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzA0O1dISVRFIFNDSVNTT1JTO1NvOzA7T047Ozs7O047Ozs7OworMjcwNjtURUxFUEhPTkUgTE9DQVRJT04gU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzI3MDc7VEFQRSBEUklWRTtTbzswO09OOzs7OztOOzs7OzsKKzI3MDg7QUlSUExBTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzA5O0VOVkVMT1BFO1NvOzA7T047Ozs7O047Ozs7OworMjcwQztWSUNUT1JZIEhBTkQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzBEO1dSSVRJTkcgSEFORDtTbzswO09OOzs7OztOOzs7OzsKKzI3MEU7TE9XRVIgUklHSFQgUEVOQ0lMO1NvOzA7T047Ozs7O047Ozs7OworMjcwRjtQRU5DSUw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzEwO1VQUEVSIFJJR0hUIFBFTkNJTDtTbzswO09OOzs7OztOOzs7OzsKKzI3MTE7V0hJVEUgTklCO1NvOzA7T047Ozs7O047Ozs7OworMjcxMjtCTEFDSyBOSUI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzEzO0NIRUNLIE1BUks7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzE0O0hFQVZZIENIRUNLIE1BUks7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzE1O01VTFRJUExJQ0FUSU9OIFg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzE2O0hFQVZZIE1VTFRJUExJQ0FUSU9OIFg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzE3O0JBTExPVCBYO1NvOzA7T047Ozs7O047Ozs7OworMjcxODtIRUFWWSBCQUxMT1QgWDtTbzswO09OOzs7OztOOzs7OzsKKzI3MTk7T1VUTElORUQgR1JFRUsgQ1JPU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzFBO0hFQVZZIEdSRUVLIENST1NTO1NvOzA7T047Ozs7O047Ozs7OworMjcxQjtPUEVOIENFTlRSRSBDUk9TUztTbzswO09OOzs7OztOO09QRU4gQ0VOVEVSIENST1NTOzs7OworMjcxQztIRUFWWSBPUEVOIENFTlRSRSBDUk9TUztTbzswO09OOzs7OztOO0hFQVZZIE9QRU4gQ0VOVEVSIENST1NTOzs7OworMjcxRDtMQVRJTiBDUk9TUztTbzswO09OOzs7OztOOzs7OzsKKzI3MUU7U0hBRE9XRUQgV0hJVEUgTEFUSU4gQ1JPU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzFGO09VVExJTkVEIExBVElOIENST1NTO1NvOzA7T047Ozs7O047Ozs7OworMjcyMDtNQUxURVNFIENST1NTO1NvOzA7T047Ozs7O047Ozs7OworMjcyMTtTVEFSIE9GIERBVklEO1NvOzA7T047Ozs7O047Ozs7OworMjcyMjtGT1VSIFRFQVJEUk9QLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3MjM7Rk9VUiBCQUxMT09OLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3MjQ7SEVBVlkgRk9VUiBCQUxMT09OLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3MjU7Rk9VUiBDTFVCLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3MjY7QkxBQ0sgRk9VUiBQT0lOVEVEIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzI3O1dISVRFIEZPVVIgUE9JTlRFRCBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjcyOTtTVFJFU1MgT1VUTElORUQgV0hJVEUgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MkE7Q0lSQ0xFRCBXSElURSBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjcyQjtPUEVOIENFTlRSRSBCTEFDSyBTVEFSO1NvOzA7T047Ozs7O047T1BFTiBDRU5URVIgQkxBQ0sgU1RBUjs7OzsKKzI3MkM7QkxBQ0sgQ0VOVFJFIFdISVRFIFNUQVI7U287MDtPTjs7Ozs7TjtCTEFDSyBDRU5URVIgV0hJVEUgU1RBUjs7OzsKKzI3MkQ7T1VUTElORUQgQkxBQ0sgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MkU7SEVBVlkgT1VUTElORUQgQkxBQ0sgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MkY7UElOV0hFRUwgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MzA7U0hBRE9XRUQgV0hJVEUgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MzE7SEVBVlkgQVNURVJJU0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzMyO09QRU4gQ0VOVFJFIEFTVEVSSVNLO1NvOzA7T047Ozs7O047T1BFTiBDRU5URVIgQVNURVJJU0s7Ozs7CisyNzMzO0VJR0hUIFNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3MzQ7RUlHSFQgUE9JTlRFRCBCTEFDSyBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjczNTtFSUdIVCBQT0lOVEVEIFBJTldIRUVMIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzM2O1NJWCBQT0lOVEVEIEJMQUNLIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzM3O0VJR0hUIFBPSU5URUQgUkVDVElMSU5FQVIgQkxBQ0sgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3Mzg7SEVBVlkgRUlHSFQgUE9JTlRFRCBSRUNUSUxJTkVBUiBCTEFDSyBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjczOTtUV0VMVkUgUE9JTlRFRCBCTEFDSyBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjczQTtTSVhURUVOIFBPSU5URUQgQVNURVJJU0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzNCO1RFQVJEUk9QLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3M0M7T1BFTiBDRU5UUkUgVEVBUkRST1AtU1BPS0VEIEFTVEVSSVNLO1NvOzA7T047Ozs7O047T1BFTiBDRU5URVIgVEVBUkRST1AtU1BPS0VEIEFTVEVSSVNLOzs7OworMjczRDtIRUFWWSBURUFSRFJPUC1TUE9LRUQgQVNURVJJU0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzNFO1NJWCBQRVRBTExFRCBCTEFDSyBBTkQgV0hJVEUgRkxPUkVUVEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzNGO0JMQUNLIEZMT1JFVFRFO1NvOzA7T047Ozs7O047Ozs7OworMjc0MDtXSElURSBGTE9SRVRURTtTbzswO09OOzs7OztOOzs7OzsKKzI3NDE7RUlHSFQgUEVUQUxMRUQgT1VUTElORUQgQkxBQ0sgRkxPUkVUVEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzQyO0NJUkNMRUQgT1BFTiBDRU5UUkUgRUlHSFQgUE9JTlRFRCBTVEFSO1NvOzA7T047Ozs7O047Q0lSQ0xFRCBPUEVOIENFTlRFUiBFSUdIVCBQT0lOVEVEIFNUQVI7Ozs7CisyNzQzO0hFQVZZIFRFQVJEUk9QLVNQT0tFRCBQSU5XSEVFTCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3NDQ7U05PV0ZMQUtFO1NvOzA7T047Ozs7O047Ozs7OworMjc0NTtUSUdIVCBUUklGT0xJQVRFIFNOT1dGTEFLRTtTbzswO09OOzs7OztOOzs7OzsKKzI3NDY7SEVBVlkgQ0hFVlJPTiBTTk9XRkxBS0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzQ3O1NQQVJLTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzQ4O0hFQVZZIFNQQVJLTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzQ5O0JBTExPT04tU1BPS0VEIEFTVEVSSVNLO1NvOzA7T047Ozs7O047Ozs7OworMjc0QTtFSUdIVCBURUFSRFJPUC1TUE9LRUQgUFJPUEVMTEVSIEFTVEVSSVNLO1NvOzA7T047Ozs7O047Ozs7OworMjc0QjtIRUFWWSBFSUdIVCBURUFSRFJPUC1TUE9LRUQgUFJPUEVMTEVSIEFTVEVSSVNLO1NvOzA7T047Ozs7O047Ozs7OworMjc0RDtTSEFET1dFRCBXSElURSBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzRGO0xPV0VSIFJJR0hUIERST1AtU0hBRE9XRUQgV0hJVEUgU1FVQVJFO1NvOzA7T047Ozs7O047Ozs7OworMjc1MDtVUFBFUiBSSUdIVCBEUk9QLVNIQURPV0VEIFdISVRFIFNRVUFSRTtTbzswO09OOzs7OztOOzs7OzsKKzI3NTE7TE9XRVIgUklHSFQgU0hBRE9XRUQgV0hJVEUgU1FVQVJFO1NvOzA7T047Ozs7O047Ozs7OworMjc1MjtVUFBFUiBSSUdIVCBTSEFET1dFRCBXSElURSBTUVVBUkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzU2O0JMQUNLIERJQU1PTkQgTUlOVVMgV0hJVEUgWDtTbzswO09OOzs7OztOOzs7OzsKKzI3NTg7TElHSFQgVkVSVElDQUwgQkFSO1NvOzA7T047Ozs7O047Ozs7OworMjc1OTtNRURJVU0gVkVSVElDQUwgQkFSO1NvOzA7T047Ozs7O047Ozs7OworMjc1QTtIRUFWWSBWRVJUSUNBTCBCQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzVCO0hFQVZZIFNJTkdMRSBUVVJORUQgQ09NTUEgUVVPVEFUSU9OIE1BUksgT1JOQU1FTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzVDO0hFQVZZIFNJTkdMRSBDT01NQSBRVU9UQVRJT04gTUFSSyBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NUQ7SEVBVlkgRE9VQkxFIFRVUk5FRCBDT01NQSBRVU9UQVRJT04gTUFSSyBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NUU7SEVBVlkgRE9VQkxFIENPTU1BIFFVT1RBVElPTiBNQVJLIE9STkFNRU5UO1NvOzA7T047Ozs7O047Ozs7OworMjc2MTtDVVJWRUQgU1RFTSBQQVJBR1JBUEggU0lHTiBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NjI7SEVBVlkgRVhDTEFNQVRJT04gTUFSSyBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NjM7SEVBVlkgSEVBUlQgRVhDTEFNQVRJT04gTUFSSyBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NjQ7SEVBVlkgQkxBQ0sgSEVBUlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzY1O1JPVEFURUQgSEVBVlkgQkxBQ0sgSEVBUlQgQlVMTEVUO1NvOzA7T047Ozs7O047Ozs7OworMjc2NjtGTE9SQUwgSEVBUlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzY3O1JPVEFURUQgRkxPUkFMIEhFQVJUIEJVTExFVDtTbzswO09OOzs7OztOOzs7OzsKKzI3Njg7TUVESVVNIExFRlQgUEFSRU5USEVTSVMgT1JOQU1FTlQ7UHM7MDtPTjs7Ozs7WTs7Ozs7CisyNzY5O01FRElVTSBSSUdIVCBQQVJFTlRIRVNJUyBPUk5BTUVOVDtQZTswO09OOzs7OztZOzs7OzsKKzI3NkE7TUVESVVNIEZMQVRURU5FRCBMRUZUIFBBUkVOVEhFU0lTIE9STkFNRU5UO1BzOzA7T047Ozs7O1k7Ozs7OworMjc2QjtNRURJVU0gRkxBVFRFTkVEIFJJR0hUIFBBUkVOVEhFU0lTIE9STkFNRU5UO1BlOzA7T047Ozs7O1k7Ozs7OworMjc2QztNRURJVU0gTEVGVC1QT0lOVElORyBBTkdMRSBCUkFDS0VUIE9STkFNRU5UO1BzOzA7T047Ozs7O1k7Ozs7OworMjc2RDtNRURJVU0gUklHSFQtUE9JTlRJTkcgQU5HTEUgQlJBQ0tFVCBPUk5BTUVOVDtQZTswO09OOzs7OztZOzs7OzsKKzI3NkU7SEVBVlkgTEVGVC1QT0lOVElORyBBTkdMRSBRVU9UQVRJT04gTUFSSyBPUk5BTUVOVDtQczswO09OOzs7OztZOzs7OzsKKzI3NkY7SEVBVlkgUklHSFQtUE9JTlRJTkcgQU5HTEUgUVVPVEFUSU9OIE1BUksgT1JOQU1FTlQ7UGU7MDtPTjs7Ozs7WTs7Ozs7CisyNzcwO0hFQVZZIExFRlQtUE9JTlRJTkcgQU5HTEUgQlJBQ0tFVCBPUk5BTUVOVDtQczswO09OOzs7OztZOzs7OzsKKzI3NzE7SEVBVlkgUklHSFQtUE9JTlRJTkcgQU5HTEUgQlJBQ0tFVCBPUk5BTUVOVDtQZTswO09OOzs7OztZOzs7OzsKKzI3NzI7TElHSFQgTEVGVCBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUIE9STkFNRU5UO1BzOzA7T047Ozs7O1k7Ozs7OworMjc3MztMSUdIVCBSSUdIVCBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUIE9STkFNRU5UO1BlOzA7T047Ozs7O1k7Ozs7OworMjc3NDtNRURJVU0gTEVGVCBDVVJMWSBCUkFDS0VUIE9STkFNRU5UO1BzOzA7T047Ozs7O1k7Ozs7OworMjc3NTtNRURJVU0gUklHSFQgQ1VSTFkgQlJBQ0tFVCBPUk5BTUVOVDtQZTswO09OOzs7OztZOzs7OzsKKzI3NzY7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIE9ORTtObzswO09OOzs7MTsxO047SU5WRVJTRSBDSVJDTEVEIERJR0lUIE9ORTs7OzsKKzI3Nzc7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIFRXTztObzswO09OOzs7MjsyO047SU5WRVJTRSBDSVJDTEVEIERJR0lUIFRXTzs7OzsKKzI3Nzg7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIFRIUkVFO05vOzA7T047OzszOzM7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgVEhSRUU7Ozs7CisyNzc5O0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBESUdJVCBGT1VSO05vOzA7T047Ozs0OzQ7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgRk9VUjs7OzsKKzI3N0E7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIEZJVkU7Tm87MDtPTjs7OzU7NTtOO0lOVkVSU0UgQ0lSQ0xFRCBESUdJVCBGSVZFOzs7OworMjc3QjtESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgRElHSVQgU0lYO05vOzA7T047Ozs2OzY7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgU0lYOzs7OworMjc3QztESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgRElHSVQgU0VWRU47Tm87MDtPTjs7Ozc7NztOO0lOVkVSU0UgQ0lSQ0xFRCBESUdJVCBTRVZFTjs7OzsKKzI3N0Q7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIEVJR0hUO05vOzA7T047Ozs4Ozg7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgRUlHSFQ7Ozs7CisyNzdFO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBESUdJVCBOSU5FO05vOzA7T047Ozs5Ozk7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgTklORTs7OzsKKzI3N0Y7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIE5VTUJFUiBURU47Tm87MDtPTjs7OzsxMDtOO0lOVkVSU0UgQ0lSQ0xFRCBOVU1CRVIgVEVOOzs7OworMjc4MDtESU5HQkFUIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBPTkU7Tm87MDtPTjs7OzE7MTtOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBPTkU7Ozs7CisyNzgxO0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFRXTztObzswO09OOzs7MjsyO047Q0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFRXTzs7OzsKKzI3ODI7RElOR0JBVCBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgVEhSRUU7Tm87MDtPTjs7OzM7MztOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBUSFJFRTs7OzsKKzI3ODM7RElOR0JBVCBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgRk9VUjtObzswO09OOzs7NDs0O047Q0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZPVVI7Ozs7CisyNzg0O0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZJVkU7Tm87MDtPTjs7OzU7NTtOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBGSVZFOzs7OworMjc4NTtESU5HQkFUIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBTSVg7Tm87MDtPTjs7OzY7NjtOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBTSVg7Ozs7CisyNzg2O0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFNFVkVOO05vOzA7T047Ozs3Ozc7TjtDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgU0VWRU47Ozs7CisyNzg3O0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEVJR0hUO05vOzA7T047Ozs4Ozg7TjtDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgRUlHSFQ7Ozs7CisyNzg4O0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIE5JTkU7Tm87MDtPTjs7Ozk7OTtOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBOSU5FOzs7OworMjc4OTtESU5HQkFUIENJUkNMRUQgU0FOUy1TRVJJRiBOVU1CRVIgVEVOO05vOzA7T047Ozs7MTA7TjtDSVJDTEVEIFNBTlMtU0VSSUYgTlVNQkVSIFRFTjs7OzsKKzI3OEE7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgT05FO05vOzA7T047OzsxOzE7TjtJTlZFUlNFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBPTkU7Ozs7CisyNzhCO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFRXTztObzswO09OOzs7MjsyO047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgVFdPOzs7OworMjc4QztESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBUSFJFRTtObzswO09OOzs7MzszO047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgVEhSRUU7Ozs7CisyNzhEO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZPVVI7Tm87MDtPTjs7OzQ7NDtOO0lOVkVSU0UgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZPVVI7Ozs7CisyNzhFO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZJVkU7Tm87MDtPTjs7OzU7NTtOO0lOVkVSU0UgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZJVkU7Ozs7CisyNzhGO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFNJWDtObzswO09OOzs7Njs2O047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgU0lYOzs7OworMjc5MDtESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBTRVZFTjtObzswO09OOzs7Nzs3O047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgU0VWRU47Ozs7CisyNzkxO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEVJR0hUO05vOzA7T047Ozs4Ozg7TjtJTlZFUlNFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBFSUdIVDs7OzsKKzI3OTI7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgTklORTtObzswO09OOzs7OTs5O047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgTklORTs7OzsKKzI3OTM7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIFNBTlMtU0VSSUYgTlVNQkVSIFRFTjtObzswO09OOzs7OzEwO047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgTlVNQkVSIFRFTjs7OzsKKzI3OTQ7SEVBVlkgV0lERS1IRUFERUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFdJREUtSEVBREVEIFJJR0hUIEFSUk9XOzs7OworMjc5ODtIRUFWWSBTT1VUSCBFQVNUIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgTE9XRVIgUklHSFQgQVJST1c7Ozs7CisyNzk5O0hFQVZZIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBSSUdIVCBBUlJPVzs7OzsKKzI3OUE7SEVBVlkgTk9SVEggRUFTVCBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFVQUEVSIFJJR0hUIEFSUk9XOzs7OworMjc5QjtEUkFGVElORyBQT0lOVCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047RFJBRlRJTkcgUE9JTlQgUklHSFQgQVJST1c7Ozs7CisyNzlDO0hFQVZZIFJPVU5ELVRJUFBFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgUk9VTkQtVElQUEVEIFJJR0hUIEFSUk9XOzs7OworMjc5RDtUUklBTkdMRS1IRUFERUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO1RSSUFOR0xFLUhFQURFRCBSSUdIVCBBUlJPVzs7OzsKKzI3OUU7SEVBVlkgVFJJQU5HTEUtSEVBREVEIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBUUklBTkdMRS1IRUFERUQgUklHSFQgQVJST1c7Ozs7CisyNzlGO0RBU0hFRCBUUklBTkdMRS1IRUFERUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0RBU0hFRCBUUklBTkdMRS1IRUFERUQgUklHSFQgQVJST1c7Ozs7CisyN0EwO0hFQVZZIERBU0hFRCBUUklBTkdMRS1IRUFERUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIERBU0hFRCBUUklBTkdMRS1IRUFERUQgUklHSFQgQVJST1c7Ozs7CisyN0ExO0JMQUNLIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtCTEFDSyBSSUdIVCBBUlJPVzs7OzsKKzI3QTI7VEhSRUUtRCBUT1AtTElHSFRFRCBSSUdIVFdBUkRTIEFSUk9XSEVBRDtTbzswO09OOzs7OztOO1RIUkVFLUQgVE9QLUxJR0hURUQgUklHSFQgQVJST1dIRUFEOzs7OworMjdBMztUSFJFRS1EIEJPVFRPTS1MSUdIVEVEIFJJR0hUV0FSRFMgQVJST1dIRUFEO1NvOzA7T047Ozs7O047VEhSRUUtRCBCT1RUT00tTElHSFRFRCBSSUdIVCBBUlJPV0hFQUQ7Ozs7CisyN0E0O0JMQUNLIFJJR0hUV0FSRFMgQVJST1dIRUFEO1NvOzA7T047Ozs7O047QkxBQ0sgUklHSFQgQVJST1dIRUFEOzs7OworMjdBNTtIRUFWWSBCTEFDSyBDVVJWRUQgRE9XTldBUkRTIEFORCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgQkxBQ0sgQ1VSVkVEIERPV04gQU5EIFJJR0hUIEFSUk9XOzs7OworMjdBNjtIRUFWWSBCTEFDSyBDVVJWRUQgVVBXQVJEUyBBTkQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIEJMQUNLIENVUlZFRCBVUCBBTkQgUklHSFQgQVJST1c7Ozs7CisyN0E3O1NRVUFUIEJMQUNLIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtTUVVBVCBCTEFDSyBSSUdIVCBBUlJPVzs7OzsKKzI3QTg7SEVBVlkgQ09OQ0FWRS1QT0lOVEVEIEJMQUNLIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBDT05DQVZFLVBPSU5URUQgQkxBQ0sgUklHSFQgQVJST1c7Ozs7CisyN0E5O1JJR0hULVNIQURFRCBXSElURSBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047UklHSFQtU0hBREVEIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdBQTtMRUZULVNIQURFRCBXSElURSBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047TEVGVC1TSEFERUQgV0hJVEUgUklHSFQgQVJST1c7Ozs7CisyN0FCO0JBQ0stVElMVEVEIFNIQURPV0VEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtCQUNLLVRJTFRFRCBTSEFET1dFRCBXSElURSBSSUdIVCBBUlJPVzs7OzsKKzI3QUM7RlJPTlQtVElMVEVEIFNIQURPV0VEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtGUk9OVC1USUxURUQgU0hBRE9XRUQgV0hJVEUgUklHSFQgQVJST1c7Ozs7CisyN0FEO0hFQVZZIExPV0VSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBMT1dFUiBSSUdIVC1TSEFET1dFRCBXSElURSBSSUdIVCBBUlJPVzs7OzsKKzI3QUU7SEVBVlkgVVBQRVIgUklHSFQtU0hBRE9XRUQgV0hJVEUgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFVQUEVSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdBRjtOT1RDSEVEIExPV0VSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtOT1RDSEVEIExPV0VSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdCMTtOT1RDSEVEIFVQUEVSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtOT1RDSEVEIFVQUEVSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdCMjtDSVJDTEVEIEhFQVZZIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtDSVJDTEVEIEhFQVZZIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdCMztXSElURS1GRUFUSEVSRUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO1dISVRFLUZFQVRIRVJFRCBSSUdIVCBBUlJPVzs7OzsKKzI3QjQ7QkxBQ0stRkVBVEhFUkVEIFNPVVRIIEVBU1QgQVJST1c7U287MDtPTjs7Ozs7TjtCTEFDSy1GRUFUSEVSRUQgTE9XRVIgUklHSFQgQVJST1c7Ozs7CisyN0I1O0JMQUNLLUZFQVRIRVJFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047QkxBQ0stRkVBVEhFUkVEIFJJR0hUIEFSUk9XOzs7OworMjdCNjtCTEFDSy1GRUFUSEVSRUQgTk9SVEggRUFTVCBBUlJPVztTbzswO09OOzs7OztOO0JMQUNLLUZFQVRIRVJFRCBVUFBFUiBSSUdIVCBBUlJPVzs7OzsKKzI3Qjc7SEVBVlkgQkxBQ0stRkVBVEhFUkVEIFNPVVRIIEVBU1QgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBCTEFDSy1GRUFUSEVSRUQgTE9XRVIgUklHSFQgQVJST1c7Ozs7CisyN0I4O0hFQVZZIEJMQUNLLUZFQVRIRVJFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgQkxBQ0stRkVBVEhFUkVEIFJJR0hUIEFSUk9XOzs7OworMjdCOTtIRUFWWSBCTEFDSy1GRUFUSEVSRUQgTk9SVEggRUFTVCBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIEJMQUNLLUZFQVRIRVJFRCBVUFBFUiBSSUdIVCBBUlJPVzs7OzsKKzI3QkE7VEVBUkRST1AtQkFSQkVEIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtURUFSRFJPUC1CQVJCRUQgUklHSFQgQVJST1c7Ozs7CisyN0JCO0hFQVZZIFRFQVJEUk9QLVNIQU5LRUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFRFQVJEUk9QLVNIQU5LRUQgUklHSFQgQVJST1c7Ozs7CisyN0JDO1dFREdFLVRBSUxFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047V0VER0UtVEFJTEVEIFJJR0hUIEFSUk9XOzs7OworMjdCRDtIRUFWWSBXRURHRS1UQUlMRUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFdFREdFLVRBSUxFRCBSSUdIVCBBUlJPVzs7OzsKKzI3QkU7T1BFTi1PVVRMSU5FRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047T1BFTi1PVVRMSU5FRCBSSUdIVCBBUlJPVzs7OzsKKzI3RDA7V0hJVEUgRElBTU9ORCBXSVRIIENFTlRSRUQgRE9UO1NtOzA7T047Ozs7O047Ozs7OworMjdEMTtBTkQgV0lUSCBET1Q7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0QyO0VMRU1FTlQgT0YgT1BFTklORyBVUFdBUkRTO1NtOzA7T047Ozs7O047Ozs7OworMjdEMztMT1dFUiBSSUdIVCBDT1JORVIgV0lUSCBET1Q7U207MDtPTjs7Ozs7WTs7Ozs7CisyN0Q0O1VQUEVSIExFRlQgQ09STkVSIFdJVEggRE9UO1NtOzA7T047Ozs7O1k7Ozs7OworMjdENTtMRUZUIE9VVEVSIEpPSU47U207MDtPTjs7Ozs7WTs7Ozs7CisyN0Q2O1JJR0hUIE9VVEVSIEpPSU47U207MDtPTjs7Ozs7WTs7Ozs7CisyN0Q3O0ZVTEwgT1VURVIgSk9JTjtTbTswO09OOzs7OztOOzs7OzsKKzI3RDg7TEFSR0UgVVAgVEFDSztTbTswO09OOzs7OztOOzs7OzsKKzI3RDk7TEFSR0UgRE9XTiBUQUNLO1NtOzA7T047Ozs7O047Ozs7OworMjdEQTtMRUZUIEFORCBSSUdIVCBET1VCTEUgVFVSTlNUSUxFO1NtOzA7T047Ozs7O047Ozs7OworMjdEQjtMRUZUIEFORCBSSUdIVCBUQUNLO1NtOzA7T047Ozs7O047Ozs7OworMjdEQztMRUZUIE1VTFRJTUFQO1NtOzA7T047Ozs7O1k7Ozs7OworMjdERDtMT05HIFJJR0hUIFRBQ0s7U207MDtPTjs7Ozs7WTs7Ozs7CisyN0RFO0xPTkcgTEVGVCBUQUNLO1NtOzA7T047Ozs7O1k7Ozs7OworMjdERjtVUCBUQUNLIFdJVEggQ0lSQ0xFIEFCT1ZFO1NtOzA7T047Ozs7O047Ozs7OworMjdFMDtMT1pFTkdFIERJVklERUQgQlkgSE9SSVpPTlRBTCBSVUxFO1NtOzA7T047Ozs7O047Ozs7OworMjdFMTtXSElURSBDT05DQVZFLVNJREVEIERJQU1PTkQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0UyO1dISVRFIENPTkNBVkUtU0lERUQgRElBTU9ORCBXSVRIIExFRlRXQVJEUyBUSUNLO1NtOzA7T047Ozs7O1k7Ozs7OworMjdFMztXSElURSBDT05DQVZFLVNJREVEIERJQU1PTkQgV0lUSCBSSUdIVFdBUkRTIFRJQ0s7U207MDtPTjs7Ozs7WTs7Ozs7CisyN0U0O1dISVRFIFNRVUFSRSBXSVRIIExFRlRXQVJEUyBUSUNLO1NtOzA7T047Ozs7O1k7Ozs7OworMjdFNTtXSElURSBTUVVBUkUgV0lUSCBSSUdIVFdBUkRTIFRJQ0s7U207MDtPTjs7Ozs7WTs7Ozs7CisyN0U2O01BVEhFTUFUSUNBTCBMRUZUIFdISVRFIFNRVUFSRSBCUkFDS0VUO1BzOzA7T047Ozs7O1k7Ozs7OworMjdFNztNQVRIRU1BVElDQUwgUklHSFQgV0hJVEUgU1FVQVJFIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTs7Ozs7CisyN0U4O01BVEhFTUFUSUNBTCBMRUZUIEFOR0xFIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTs7Ozs7CisyN0U5O01BVEhFTUFUSUNBTCBSSUdIVCBBTkdMRSBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Ozs7OworMjdFQTtNQVRIRU1BVElDQUwgTEVGVCBET1VCTEUgQU5HTEUgQlJBQ0tFVDtQczswO09OOzs7OztZOzs7OzsKKzI3RUI7TUFUSEVNQVRJQ0FMIFJJR0hUIERPVUJMRSBBTkdMRSBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Ozs7OworMjdGMDtVUFdBUkRTIFFVQURSVVBMRSBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI3RjE7RE9XTldBUkRTIFFVQURSVVBMRSBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI3RjI7QU5USUNMT0NLV0lTRSBHQVBQRUQgQ0lSQ0xFIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjdGMztDTE9DS1dJU0UgR0FQUEVEIENJUkNMRSBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI3RjQ7UklHSFQgQVJST1cgV0lUSCBDSVJDTEVEIFBMVVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0Y1O0xPTkcgTEVGVFdBUkRTIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjdGNjtMT05HIFJJR0hUV0FSRFMgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0Y3O0xPTkcgTEVGVCBSSUdIVCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI3Rjg7TE9ORyBMRUZUV0FSRFMgRE9VQkxFIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjdGOTtMT05HIFJJR0hUV0FSRFMgRE9VQkxFIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjdGQTtMT05HIExFRlQgUklHSFQgRE9VQkxFIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjdGQjtMT05HIExFRlRXQVJEUyBBUlJPVyBGUk9NIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI3RkM7TE9ORyBSSUdIVFdBUkRTIEFSUk9XIEZST00gQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjdGRDtMT05HIExFRlRXQVJEUyBET1VCTEUgQVJST1cgRlJPTSBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0ZFO0xPTkcgUklHSFRXQVJEUyBET1VCTEUgQVJST1cgRlJPTSBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0ZGO0xPTkcgUklHSFRXQVJEUyBTUVVJR0dMRSBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI4MDA7QlJBSUxMRSBQQVRURVJOIEJMQU5LO1NvOzA7T047Ozs7O047Ozs7OworMjgwMTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xO1NvOzA7T047Ozs7O047Ozs7OworMjgwMjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yO1NvOzA7T047Ozs7O047Ozs7OworMjgwMztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjtTbzswO09OOzs7OztOOzs7OzsKKzI4MDQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMztTbzswO09OOzs7OztOOzs7OzsKKzI4MDU7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODA2O0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzO1NvOzA7T047Ozs7O047Ozs7OworMjgwNztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODA4O0JSQUlMTEUgUEFUVEVSTiBET1RTLTQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODA5O0JSQUlMTEUgUEFUVEVSTiBET1RTLTE0O1NvOzA7T047Ozs7O047Ozs7OworMjgwQTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNDtTbzswO09OOzs7OztOOzs7OzsKKzI4MEI7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI0O1NvOzA7T047Ozs7O047Ozs7OworMjgwQztCUkFJTExFIFBBVFRFUk4gRE9UUy0zNDtTbzswO09OOzs7OztOOzs7OzsKKzI4MEQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM0O1NvOzA7T047Ozs7O047Ozs7OworMjgwRTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODBGO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODEwO0JSQUlMTEUgUEFUVEVSTiBET1RTLTU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODExO0JSQUlMTEUgUEFUVEVSTiBET1RTLTE1O1NvOzA7T047Ozs7O047Ozs7OworMjgxMjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNTtTbzswO09OOzs7OztOOzs7OzsKKzI4MTM7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI1O1NvOzA7T047Ozs7O047Ozs7OworMjgxNDtCUkFJTExFIFBBVFRFUk4gRE9UUy0zNTtTbzswO09OOzs7OztOOzs7OzsKKzI4MTU7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM1O1NvOzA7T047Ozs7O047Ozs7OworMjgxNjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODE3O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODE4O0JSQUlMTEUgUEFUVEVSTiBET1RTLTQ1O1NvOzA7T047Ozs7O047Ozs7OworMjgxOTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNDU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODFBO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI0NTtTbzswO09OOzs7OztOOzs7OzsKKzI4MUI7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI0NTtTbzswO09OOzs7OztOOzs7OzsKKzI4MUM7QlJBSUxMRSBQQVRURVJOIERPVFMtMzQ1O1NvOzA7T047Ozs7O047Ozs7OworMjgxRDtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzQ1O1NvOzA7T047Ozs7O047Ozs7OworMjgxRTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzQ1O1NvOzA7T047Ozs7O047Ozs7OworMjgxRjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM0NTtTbzswO09OOzs7OztOOzs7OzsKKzI4MjA7QlJBSUxMRSBQQVRURVJOIERPVFMtNjtTbzswO09OOzs7OztOOzs7OzsKKzI4MjE7QlJBSUxMRSBQQVRURVJOIERPVFMtMTY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODIyO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI2O1NvOzA7T047Ozs7O047Ozs7OworMjgyMztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODI0O0JSQUlMTEUgUEFUVEVSTiBET1RTLTM2O1NvOzA7T047Ozs7O047Ozs7OworMjgyNTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODI2O0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNjtTbzswO09OOzs7OztOOzs7OzsKKzI4Mjc7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNjtTbzswO09OOzs7OztOOzs7OzsKKzI4Mjg7QlJBSUxMRSBQQVRURVJOIERPVFMtNDY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODI5O0JSQUlMTEUgUEFUVEVSTiBET1RTLTE0NjtTbzswO09OOzs7OztOOzs7OzsKKzI4MkE7QlJBSUxMRSBQQVRURVJOIERPVFMtMjQ2O1NvOzA7T047Ozs7O047Ozs7OworMjgyQjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjQ2O1NvOzA7T047Ozs7O047Ozs7OworMjgyQztCUkFJTExFIFBBVFRFUk4gRE9UUy0zNDY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODJEO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNDY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODJFO0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNDY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODJGO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzQ2O1NvOzA7T047Ozs7O047Ozs7OworMjgzMDtCUkFJTExFIFBBVFRFUk4gRE9UUy01NjtTbzswO09OOzs7OztOOzs7OzsKKzI4MzE7QlJBSUxMRSBQQVRURVJOIERPVFMtMTU2O1NvOzA7T047Ozs7O047Ozs7OworMjgzMjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNTY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODMzO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNTY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODM0O0JSQUlMTEUgUEFUVEVSTiBET1RTLTM1NjtTbzswO09OOzs7OztOOzs7OzsKKzI4MzU7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM1NjtTbzswO09OOzs7OztOOzs7OzsKKzI4MzY7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM1NjtTbzswO09OOzs7OztOOzs7OzsKKzI4Mzc7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNTY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODM4O0JSQUlMTEUgUEFUVEVSTiBET1RTLTQ1NjtTbzswO09OOzs7OztOOzs7OzsKKzI4Mzk7QlJBSUxMRSBQQVRURVJOIERPVFMtMTQ1NjtTbzswO09OOzs7OztOOzs7OzsKKzI4M0E7QlJBSUxMRSBQQVRURVJOIERPVFMtMjQ1NjtTbzswO09OOzs7OztOOzs7OzsKKzI4M0I7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI0NTY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODNDO0JSQUlMTEUgUEFUVEVSTiBET1RTLTM0NTY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODNEO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNDU2O1NvOzA7T047Ozs7O047Ozs7OworMjgzRTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzQ1NjtTbzswO09OOzs7OztOOzs7OzsKKzI4M0Y7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNDU2O1NvOzA7T047Ozs7O047Ozs7OworMjg0MDtCUkFJTExFIFBBVFRFUk4gRE9UUy03O1NvOzA7T047Ozs7O047Ozs7OworMjg0MTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNztTbzswO09OOzs7OztOOzs7OzsKKzI4NDI7QlJBSUxMRSBQQVRURVJOIERPVFMtMjc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODQzO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNztTbzswO09OOzs7OztOOzs7OzsKKzI4NDQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMzc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODQ1O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNztTbzswO09OOzs7OztOOzs7OzsKKzI4NDY7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM3O1NvOzA7T047Ozs7O047Ozs7OworMjg0NztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM3O1NvOzA7T047Ozs7O047Ozs7OworMjg0ODtCUkFJTExFIFBBVFRFUk4gRE9UUy00NztTbzswO09OOzs7OztOOzs7OzsKKzI4NDk7QlJBSUxMRSBQQVRURVJOIERPVFMtMTQ3O1NvOzA7T047Ozs7O047Ozs7OworMjg0QTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNDc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODRCO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNDc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODRDO0JSQUlMTEUgUEFUVEVSTiBET1RTLTM0NztTbzswO09OOzs7OztOOzs7OzsKKzI4NEQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM0NztTbzswO09OOzs7OztOOzs7OzsKKzI4NEU7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM0NztTbzswO09OOzs7OztOOzs7OzsKKzI4NEY7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNDc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODUwO0JSQUlMTEUgUEFUVEVSTiBET1RTLTU3O1NvOzA7T047Ozs7O047Ozs7OworMjg1MTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNTc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODUyO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI1NztTbzswO09OOzs7OztOOzs7OzsKKzI4NTM7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI1NztTbzswO09OOzs7OztOOzs7OzsKKzI4NTQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMzU3O1NvOzA7T047Ozs7O047Ozs7OworMjg1NTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzU3O1NvOzA7T047Ozs7O047Ozs7OworMjg1NjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzU3O1NvOzA7T047Ozs7O047Ozs7OworMjg1NztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM1NztTbzswO09OOzs7OztOOzs7OzsKKzI4NTg7QlJBSUxMRSBQQVRURVJOIERPVFMtNDU3O1NvOzA7T047Ozs7O047Ozs7OworMjg1OTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNDU3O1NvOzA7T047Ozs7O047Ozs7OworMjg1QTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNDU3O1NvOzA7T047Ozs7O047Ozs7OworMjg1QjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjQ1NztTbzswO09OOzs7OztOOzs7OzsKKzI4NUM7QlJBSUxMRSBQQVRURVJOIERPVFMtMzQ1NztTbzswO09OOzs7OztOOzs7OzsKKzI4NUQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM0NTc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODVFO0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNDU3O1NvOzA7T047Ozs7O047Ozs7OworMjg1RjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM0NTc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODYwO0JSQUlMTEUgUEFUVEVSTiBET1RTLTY3O1NvOzA7T047Ozs7O047Ozs7OworMjg2MTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNjc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODYyO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI2NztTbzswO09OOzs7OztOOzs7OzsKKzI4NjM7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI2NztTbzswO09OOzs7OztOOzs7OzsKKzI4NjQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMzY3O1NvOzA7T047Ozs7O047Ozs7OworMjg2NTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzY3O1NvOzA7T047Ozs7O047Ozs7OworMjg2NjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzY3O1NvOzA7T047Ozs7O047Ozs7OworMjg2NztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM2NztTbzswO09OOzs7OztOOzs7OzsKKzI4Njg7QlJBSUxMRSBQQVRURVJOIERPVFMtNDY3O1NvOzA7T047Ozs7O047Ozs7OworMjg2OTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNDY3O1NvOzA7T047Ozs7O047Ozs7OworMjg2QTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNDY3O1NvOzA7T047Ozs7O047Ozs7OworMjg2QjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjQ2NztTbzswO09OOzs7OztOOzs7OzsKKzI4NkM7QlJBSUxMRSBQQVRURVJOIERPVFMtMzQ2NztTbzswO09OOzs7OztOOzs7OzsKKzI4NkQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM0Njc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODZFO0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNDY3O1NvOzA7T047Ozs7O047Ozs7OworMjg2RjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM0Njc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODcwO0JSQUlMTEUgUEFUVEVSTiBET1RTLTU2NztTbzswO09OOzs7OztOOzs7OzsKKzI4NzE7QlJBSUxMRSBQQVRURVJOIERPVFMtMTU2NztTbzswO09OOzs7OztOOzs7OzsKKzI4NzI7QlJBSUxMRSBQQVRURVJOIERPVFMtMjU2NztTbzswO09OOzs7OztOOzs7OzsKKzI4NzM7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI1Njc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODc0O0JSQUlMTEUgUEFUVEVSTiBET1RTLTM1Njc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODc1O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNTY3O1NvOzA7T047Ozs7O047Ozs7OworMjg3NjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzU2NztTbzswO09OOzs7OztOOzs7OzsKKzI4Nzc7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNTY3O1NvOzA7T047Ozs7O047Ozs7OworMjg3ODtCUkFJTExFIFBBVFRFUk4gRE9UUy00NTY3O1NvOzA7T047Ozs7O047Ozs7OworMjg3OTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNDU2NztTbzswO09OOzs7OztOOzs7OzsKKzI4N0E7QlJBSUxMRSBQQVRURVJOIERPVFMtMjQ1Njc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODdCO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNDU2NztTbzswO09OOzs7OztOOzs7OzsKKzI4N0M7QlJBSUxMRSBQQVRURVJOIERPVFMtMzQ1Njc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODdEO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNDU2NztTbzswO09OOzs7OztOOzs7OzsKKzI4N0U7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM0NTY3O1NvOzA7T047Ozs7O047Ozs7OworMjg3RjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM0NTY3O1NvOzA7T047Ozs7O047Ozs7OworMjg4MDtCUkFJTExFIFBBVFRFUk4gRE9UUy04O1NvOzA7T047Ozs7O047Ozs7OworMjg4MTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xODtTbzswO09OOzs7OztOOzs7OzsKKzI4ODI7QlJBSUxMRSBQQVRURVJOIERPVFMtMjg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODgzO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyODtTbzswO09OOzs7OztOOzs7OzsKKzI4ODQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODg1O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzODtTbzswO09OOzs7OztOOzs7OzsKKzI4ODY7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM4O1NvOzA7T047Ozs7O047Ozs7OworMjg4NztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM4O1NvOzA7T047Ozs7O047Ozs7OworMjg4ODtCUkFJTExFIFBBVFRFUk4gRE9UUy00ODtTbzswO09OOzs7OztOOzs7OzsKKzI4ODk7QlJBSUxMRSBQQVRURVJOIERPVFMtMTQ4O1NvOzA7T047Ozs7O047Ozs7OworMjg4QTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNDg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODhCO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNDg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODhDO0JSQUlMTEUgUEFUVEVSTiBET1RTLTM0ODtTbzswO09OOzs7OztOOzs7OzsKKzI4OEQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM0ODtTbzswO09OOzs7OztOOzs7OzsKKzI4OEU7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM0ODtTbzswO09OOzs7OztOOzs7OzsKKzI4OEY7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNDg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODkwO0JSQUlMTEUgUEFUVEVSTiBET1RTLTU4O1NvOzA7T047Ozs7O047Ozs7OworMjg5MTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNTg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODkyO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI1ODtTbzswO09OOzs7OztOOzs7OzsKKzI4OTM7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI1ODtTbzswO09OOzs7OztOOzs7OzsKKzI4OTQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMzU4O1NvOzA7T047Ozs7O047Ozs7OworMjg5NTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzU4O1NvOzA7T047Ozs7O047Ozs7OworMjg5NjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzU4O1NvOzA7T047Ozs7O047Ozs7OworMjg5NztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM1ODtTbzswO09OOzs7OztOOzs7OzsKKzI4OTg7QlJBSUxMRSBQQVRURVJOIERPVFMtNDU4O1NvOzA7T047Ozs7O047Ozs7OworMjg5OTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNDU4O1NvOzA7T047Ozs7O047Ozs7OworMjg5QTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNDU4O1NvOzA7T047Ozs7O047Ozs7OworMjg5QjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjQ1ODtTbzswO09OOzs7OztOOzs7OzsKKzI4OUM7QlJBSUxMRSBQQVRURVJOIERPVFMtMzQ1ODtTbzswO09OOzs7OztOOzs7OzsKKzI4OUQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM0NTg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyODlFO0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNDU4O1NvOzA7T047Ozs7O047Ozs7OworMjg5RjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM0NTg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEEwO0JSQUlMTEUgUEFUVEVSTiBET1RTLTY4O1NvOzA7T047Ozs7O047Ozs7OworMjhBMTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNjg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEEyO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI2ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QTM7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI2ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QTQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMzY4O1NvOzA7T047Ozs7O047Ozs7OworMjhBNTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzY4O1NvOzA7T047Ozs7O047Ozs7OworMjhBNjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzY4O1NvOzA7T047Ozs7O047Ozs7OworMjhBNztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM2ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QTg7QlJBSUxMRSBQQVRURVJOIERPVFMtNDY4O1NvOzA7T047Ozs7O047Ozs7OworMjhBOTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNDY4O1NvOzA7T047Ozs7O047Ozs7OworMjhBQTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNDY4O1NvOzA7T047Ozs7O047Ozs7OworMjhBQjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjQ2ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QUM7QlJBSUxMRSBQQVRURVJOIERPVFMtMzQ2ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QUQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM0Njg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEFFO0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNDY4O1NvOzA7T047Ozs7O047Ozs7OworMjhBRjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM0Njg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEIwO0JSQUlMTEUgUEFUVEVSTiBET1RTLTU2ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QjE7QlJBSUxMRSBQQVRURVJOIERPVFMtMTU2ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QjI7QlJBSUxMRSBQQVRURVJOIERPVFMtMjU2ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QjM7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI1Njg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEI0O0JSQUlMTEUgUEFUVEVSTiBET1RTLTM1Njg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEI1O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNTY4O1NvOzA7T047Ozs7O047Ozs7OworMjhCNjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzU2ODtTbzswO09OOzs7OztOOzs7OzsKKzI4Qjc7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNTY4O1NvOzA7T047Ozs7O047Ozs7OworMjhCODtCUkFJTExFIFBBVFRFUk4gRE9UUy00NTY4O1NvOzA7T047Ozs7O047Ozs7OworMjhCOTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNDU2ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QkE7QlJBSUxMRSBQQVRURVJOIERPVFMtMjQ1Njg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEJCO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNDU2ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QkM7QlJBSUxMRSBQQVRURVJOIERPVFMtMzQ1Njg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEJEO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNDU2ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QkU7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM0NTY4O1NvOzA7T047Ozs7O047Ozs7OworMjhCRjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM0NTY4O1NvOzA7T047Ozs7O047Ozs7OworMjhDMDtCUkFJTExFIFBBVFRFUk4gRE9UUy03ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QzE7QlJBSUxMRSBQQVRURVJOIERPVFMtMTc4O1NvOzA7T047Ozs7O047Ozs7OworMjhDMjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEMzO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEM0O0JSQUlMTEUgUEFUVEVSTiBET1RTLTM3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QzU7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4QzY7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4Qzc7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEM4O0JSQUlMTEUgUEFUVEVSTiBET1RTLTQ3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4Qzk7QlJBSUxMRSBQQVRURVJOIERPVFMtMTQ3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4Q0E7QlJBSUxMRSBQQVRURVJOIERPVFMtMjQ3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4Q0I7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI0Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOENDO0JSQUlMTEUgUEFUVEVSTiBET1RTLTM0Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOENEO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNDc4O1NvOzA7T047Ozs7O047Ozs7OworMjhDRTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzQ3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4Q0Y7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNDc4O1NvOzA7T047Ozs7O047Ozs7OworMjhEMDtCUkFJTExFIFBBVFRFUk4gRE9UUy01Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEQxO0JSQUlMTEUgUEFUVEVSTiBET1RTLTE1Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEQyO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI1Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEQzO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNTc4O1NvOzA7T047Ozs7O047Ozs7OworMjhENDtCUkFJTExFIFBBVFRFUk4gRE9UUy0zNTc4O1NvOzA7T047Ozs7O047Ozs7OworMjhENTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzU3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RDY7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM1Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEQ3O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzU3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RDg7QlJBSUxMRSBQQVRURVJOIERPVFMtNDU3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RDk7QlJBSUxMRSBQQVRURVJOIERPVFMtMTQ1Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOERBO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI0NTc4O1NvOzA7T047Ozs7O047Ozs7OworMjhEQjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjQ1Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOERDO0JSQUlMTEUgUEFUVEVSTiBET1RTLTM0NTc4O1NvOzA7T047Ozs7O047Ozs7OworMjhERDtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzQ1Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOERFO0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNDU3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4REY7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNDU3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RTA7QlJBSUxMRSBQQVRURVJOIERPVFMtNjc4O1NvOzA7T047Ozs7O047Ozs7OworMjhFMTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNjc4O1NvOzA7T047Ozs7O047Ozs7OworMjhFMjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNjc4O1NvOzA7T047Ozs7O047Ozs7OworMjhFMztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjY3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RTQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMzY3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RTU7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM2Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEU2O0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNjc4O1NvOzA7T047Ozs7O047Ozs7OworMjhFNztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM2Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEU4O0JSQUlMTEUgUEFUVEVSTiBET1RTLTQ2Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEU5O0JSQUlMTEUgUEFUVEVSTiBET1RTLTE0Njc4O1NvOzA7T047Ozs7O047Ozs7OworMjhFQTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNDY3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RUI7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI0Njc4O1NvOzA7T047Ozs7O047Ozs7OworMjhFQztCUkFJTExFIFBBVFRFUk4gRE9UUy0zNDY3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RUQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM0Njc4O1NvOzA7T047Ozs7O047Ozs7OworMjhFRTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzQ2Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEVGO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzQ2Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEYwO0JSQUlMTEUgUEFUVEVSTiBET1RTLTU2Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEYxO0JSQUlMTEUgUEFUVEVSTiBET1RTLTE1Njc4O1NvOzA7T047Ozs7O047Ozs7OworMjhGMjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNTY3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RjM7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI1Njc4O1NvOzA7T047Ozs7O047Ozs7OworMjhGNDtCUkFJTExFIFBBVFRFUk4gRE9UUy0zNTY3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RjU7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM1Njc4O1NvOzA7T047Ozs7O047Ozs7OworMjhGNjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzU2Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEY3O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzU2Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEY4O0JSQUlMTEUgUEFUVEVSTiBET1RTLTQ1Njc4O1NvOzA7T047Ozs7O047Ozs7OworMjhGOTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNDU2Nzg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyOEZBO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI0NTY3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RkI7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI0NTY3ODtTbzswO09OOzs7OztOOzs7OzsKKzI4RkM7QlJBSUxMRSBQQVRURVJOIERPVFMtMzQ1Njc4O1NvOzA7T047Ozs7O047Ozs7OworMjhGRDtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzQ1Njc4O1NvOzA7T047Ozs7O047Ozs7OworMjhGRTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzQ1Njc4O1NvOzA7T047Ozs7O047Ozs7OworMjhGRjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM0NTY3ODtTbzswO09OOzs7OztOOzs7OzsKKzI5MDA7UklHSFRXQVJEUyBUV08tSEVBREVEIEFSUk9XIFdJVEggVkVSVElDQUwgU1RST0tFO1NtOzA7T047Ozs7O047Ozs7OworMjkwMTtSSUdIVFdBUkRTIFRXTy1IRUFERUQgQVJST1cgV0lUSCBET1VCTEUgVkVSVElDQUwgU1RST0tFO1NtOzA7T047Ozs7O047Ozs7OworMjkwMjtMRUZUV0FSRFMgRE9VQkxFIEFSUk9XIFdJVEggVkVSVElDQUwgU1RST0tFO1NtOzA7T047Ozs7O047Ozs7OworMjkwMztSSUdIVFdBUkRTIERPVUJMRSBBUlJPVyBXSVRIIFZFUlRJQ0FMIFNUUk9LRTtTbTswO09OOzs7OztOOzs7OzsKKzI5MDQ7TEVGVCBSSUdIVCBET1VCTEUgQVJST1cgV0lUSCBWRVJUSUNBTCBTVFJPS0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTA1O1JJR0hUV0FSRFMgVFdPLUhFQURFRCBBUlJPVyBGUk9NIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5MDY7TEVGVFdBUkRTIERPVUJMRSBBUlJPVyBGUk9NIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5MDc7UklHSFRXQVJEUyBET1VCTEUgQVJST1cgRlJPTSBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTA4O0RPV05XQVJEUyBBUlJPVyBXSVRIIEhPUklaT05UQUwgU1RST0tFO1NtOzA7T047Ozs7O047Ozs7OworMjkwOTtVUFdBUkRTIEFSUk9XIFdJVEggSE9SSVpPTlRBTCBTVFJPS0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTBBO1VQV0FSRFMgVFJJUExFIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjkwQjtET1dOV0FSRFMgVFJJUExFIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjkwQztMRUZUV0FSRFMgRE9VQkxFIERBU0ggQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTBEO1JJR0hUV0FSRFMgRE9VQkxFIERBU0ggQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTBFO0xFRlRXQVJEUyBUUklQTEUgREFTSCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5MEY7UklHSFRXQVJEUyBUUklQTEUgREFTSCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5MTA7UklHSFRXQVJEUyBUV08tSEVBREVEIFRSSVBMRSBEQVNIIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjkxMTtSSUdIVFdBUkRTIEFSUk9XIFdJVEggRE9UVEVEIFNURU07U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTEyO1VQV0FSRFMgQVJST1cgVE8gQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjkxMztET1dOV0FSRFMgQVJST1cgVE8gQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjkxNDtSSUdIVFdBUkRTIEFSUk9XIFdJVEggVEFJTCBXSVRIIFZFUlRJQ0FMIFNUUk9LRTtTbTswO09OOzs7OztOOzs7OzsKKzI5MTU7UklHSFRXQVJEUyBBUlJPVyBXSVRIIFRBSUwgV0lUSCBET1VCTEUgVkVSVElDQUwgU1RST0tFO1NtOzA7T047Ozs7O047Ozs7OworMjkxNjtSSUdIVFdBUkRTIFRXTy1IRUFERUQgQVJST1cgV0lUSCBUQUlMO1NtOzA7T047Ozs7O047Ozs7OworMjkxNztSSUdIVFdBUkRTIFRXTy1IRUFERUQgQVJST1cgV0lUSCBUQUlMIFdJVEggVkVSVElDQUwgU1RST0tFO1NtOzA7T047Ozs7O047Ozs7OworMjkxODtSSUdIVFdBUkRTIFRXTy1IRUFERUQgQVJST1cgV0lUSCBUQUlMIFdJVEggRE9VQkxFIFZFUlRJQ0FMIFNUUk9LRTtTbTswO09OOzs7OztOOzs7OzsKKzI5MTk7TEVGVFdBUkRTIEFSUk9XLVRBSUw7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTFBO1JJR0hUV0FSRFMgQVJST1ctVEFJTDtTbTswO09OOzs7OztOOzs7OzsKKzI5MUI7TEVGVFdBUkRTIERPVUJMRSBBUlJPVy1UQUlMO1NtOzA7T047Ozs7O047Ozs7OworMjkxQztSSUdIVFdBUkRTIERPVUJMRSBBUlJPVy1UQUlMO1NtOzA7T047Ozs7O047Ozs7OworMjkxRDtMRUZUV0FSRFMgQVJST1cgVE8gQkxBQ0sgRElBTU9ORDtTbTswO09OOzs7OztOOzs7OzsKKzI5MUU7UklHSFRXQVJEUyBBUlJPVyBUTyBCTEFDSyBESUFNT05EO1NtOzA7T047Ozs7O047Ozs7OworMjkxRjtMRUZUV0FSRFMgQVJST1cgRlJPTSBCQVIgVE8gQkxBQ0sgRElBTU9ORDtTbTswO09OOzs7OztOOzs7OzsKKzI5MjA7UklHSFRXQVJEUyBBUlJPVyBGUk9NIEJBUiBUTyBCTEFDSyBESUFNT05EO1NtOzA7T047Ozs7O047Ozs7OworMjkyMTtOT1JUSCBXRVNUIEFORCBTT1VUSCBFQVNUIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjkyMjtOT1JUSCBFQVNUIEFORCBTT1VUSCBXRVNUIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjkyMztOT1JUSCBXRVNUIEFSUk9XIFdJVEggSE9PSztTbTswO09OOzs7OztOOzs7OzsKKzI5MjQ7Tk9SVEggRUFTVCBBUlJPVyBXSVRIIEhPT0s7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTI1O1NPVVRIIEVBU1QgQVJST1cgV0lUSCBIT09LO1NtOzA7T047Ozs7O047Ozs7OworMjkyNjtTT1VUSCBXRVNUIEFSUk9XIFdJVEggSE9PSztTbTswO09OOzs7OztOOzs7OzsKKzI5Mjc7Tk9SVEggV0VTVCBBUlJPVyBBTkQgTk9SVEggRUFTVCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5Mjg7Tk9SVEggRUFTVCBBUlJPVyBBTkQgU09VVEggRUFTVCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5Mjk7U09VVEggRUFTVCBBUlJPVyBBTkQgU09VVEggV0VTVCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5MkE7U09VVEggV0VTVCBBUlJPVyBBTkQgTk9SVEggV0VTVCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5MkI7UklTSU5HIERJQUdPTkFMIENST1NTSU5HIEZBTExJTkcgRElBR09OQUw7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTJDO0ZBTExJTkcgRElBR09OQUwgQ1JPU1NJTkcgUklTSU5HIERJQUdPTkFMO1NtOzA7T047Ozs7O047Ozs7OworMjkyRDtTT1VUSCBFQVNUIEFSUk9XIENST1NTSU5HIE5PUlRIIEVBU1QgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTJFO05PUlRIIEVBU1QgQVJST1cgQ1JPU1NJTkcgU09VVEggRUFTVCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5MkY7RkFMTElORyBESUFHT05BTCBDUk9TU0lORyBOT1JUSCBFQVNUIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjkzMDtSSVNJTkcgRElBR09OQUwgQ1JPU1NJTkcgU09VVEggRUFTVCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5MzE7Tk9SVEggRUFTVCBBUlJPVyBDUk9TU0lORyBOT1JUSCBXRVNUIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjkzMjtOT1JUSCBXRVNUIEFSUk9XIENST1NTSU5HIE5PUlRIIEVBU1QgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTMzO1dBVkUgQVJST1cgUE9JTlRJTkcgRElSRUNUTFkgUklHSFQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTM0O0FSUk9XIFBPSU5USU5HIFJJR0hUV0FSRFMgVEhFTiBDVVJWSU5HIFVQV0FSRFM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTM1O0FSUk9XIFBPSU5USU5HIFJJR0hUV0FSRFMgVEhFTiBDVVJWSU5HIERPV05XQVJEUztTbTswO09OOzs7OztOOzs7OzsKKzI5MzY7QVJST1cgUE9JTlRJTkcgRE9XTldBUkRTIFRIRU4gQ1VSVklORyBMRUZUV0FSRFM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTM3O0FSUk9XIFBPSU5USU5HIERPV05XQVJEUyBUSEVOIENVUlZJTkcgUklHSFRXQVJEUztTbTswO09OOzs7OztOOzs7OzsKKzI5Mzg7UklHSFQtU0lERSBBUkMgQ0xPQ0tXSVNFIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjkzOTtMRUZULVNJREUgQVJDIEFOVElDTE9DS1dJU0UgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTNBO1RPUCBBUkMgQU5USUNMT0NLV0lTRSBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5M0I7Qk9UVE9NIEFSQyBBTlRJQ0xPQ0tXSVNFIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjkzQztUT1AgQVJDIENMT0NLV0lTRSBBUlJPVyBXSVRIIE1JTlVTO1NtOzA7T047Ozs7O047Ozs7OworMjkzRDtUT1AgQVJDIEFOVElDTE9DS1dJU0UgQVJST1cgV0lUSCBQTFVTO1NtOzA7T047Ozs7O047Ozs7OworMjkzRTtMT1dFUiBSSUdIVCBTRU1JQ0lSQ1VMQVIgQ0xPQ0tXSVNFIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjkzRjtMT1dFUiBMRUZUIFNFTUlDSVJDVUxBUiBBTlRJQ0xPQ0tXSVNFIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjk0MDtBTlRJQ0xPQ0tXSVNFIENMT1NFRCBDSVJDTEUgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTQxO0NMT0NLV0lTRSBDTE9TRUQgQ0lSQ0xFIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjk0MjtSSUdIVFdBUkRTIEFSUk9XIEFCT1ZFIFNIT1JUIExFRlRXQVJEUyBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5NDM7TEVGVFdBUkRTIEFSUk9XIEFCT1ZFIFNIT1JUIFJJR0hUV0FSRFMgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTQ0O1NIT1JUIFJJR0hUV0FSRFMgQVJST1cgQUJPVkUgTEVGVFdBUkRTIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjk0NTtSSUdIVFdBUkRTIEFSUk9XIFdJVEggUExVUyBCRUxPVztTbTswO09OOzs7OztOOzs7OzsKKzI5NDY7TEVGVFdBUkRTIEFSUk9XIFdJVEggUExVUyBCRUxPVztTbTswO09OOzs7OztOOzs7OzsKKzI5NDc7UklHSFRXQVJEUyBBUlJPVyBUSFJPVUdIIFg7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTQ4O0xFRlQgUklHSFQgQVJST1cgVEhST1VHSCBTTUFMTCBDSVJDTEU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTQ5O1VQV0FSRFMgVFdPLUhFQURFRCBBUlJPVyBGUk9NIFNNQUxMIENJUkNMRTtTbTswO09OOzs7OztOOzs7OzsKKzI5NEE7TEVGVCBCQVJCIFVQIFJJR0hUIEJBUkIgRE9XTiBIQVJQT09OO1NtOzA7T047Ozs7O047Ozs7OworMjk0QjtMRUZUIEJBUkIgRE9XTiBSSUdIVCBCQVJCIFVQIEhBUlBPT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTRDO1VQIEJBUkIgUklHSFQgRE9XTiBCQVJCIExFRlQgSEFSUE9PTjtTbTswO09OOzs7OztOOzs7OzsKKzI5NEQ7VVAgQkFSQiBMRUZUIERPV04gQkFSQiBSSUdIVCBIQVJQT09OO1NtOzA7T047Ozs7O047Ozs7OworMjk0RTtMRUZUIEJBUkIgVVAgUklHSFQgQkFSQiBVUCBIQVJQT09OO1NtOzA7T047Ozs7O047Ozs7OworMjk0RjtVUCBCQVJCIFJJR0hUIERPV04gQkFSQiBSSUdIVCBIQVJQT09OO1NtOzA7T047Ozs7O047Ozs7OworMjk1MDtMRUZUIEJBUkIgRE9XTiBSSUdIVCBCQVJCIERPV04gSEFSUE9PTjtTbTswO09OOzs7OztOOzs7OzsKKzI5NTE7VVAgQkFSQiBMRUZUIERPV04gQkFSQiBMRUZUIEhBUlBPT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTUyO0xFRlRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBVUCBUTyBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTUzO1JJR0hUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgVVAgVE8gQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjk1NDtVUFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFJJR0hUIFRPIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5NTU7RE9XTldBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFJJR0hUIFRPIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5NTY7TEVGVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIERPV04gVE8gQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjk1NztSSUdIVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIERPV04gVE8gQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjk1ODtVUFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIExFRlQgVE8gQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjk1OTtET1dOV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgTEVGVCBUTyBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTVBO0xFRlRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBVUCBGUk9NIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5NUI7UklHSFRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBVUCBGUk9NIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5NUM7VVBXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBSSUdIVCBGUk9NIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5NUQ7RE9XTldBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFJJR0hUIEZST00gQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjk1RTtMRUZUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgRE9XTiBGUk9NIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5NUY7UklHSFRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBET1dOIEZST00gQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjk2MDtVUFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIExFRlQgRlJPTSBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTYxO0RPV05XQVJEUyBIQVJQT09OIFdJVEggQkFSQiBMRUZUIEZST00gQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjk2MjtMRUZUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgVVAgQUJPVkUgTEVGVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIERPV047U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTYzO1VQV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgTEVGVCBCRVNJREUgVVBXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBSSUdIVDtTbTswO09OOzs7OztOOzs7OzsKKzI5NjQ7UklHSFRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBVUCBBQk9WRSBSSUdIVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIERPV047U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTY1O0RPV05XQVJEUyBIQVJQT09OIFdJVEggQkFSQiBMRUZUIEJFU0lERSBET1dOV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgUklHSFQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTY2O0xFRlRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBVUCBBQk9WRSBSSUdIVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFVQO1NtOzA7T047Ozs7O047Ozs7OworMjk2NztMRUZUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgRE9XTiBBQk9WRSBSSUdIVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIERPV047U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTY4O1JJR0hUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgVVAgQUJPVkUgTEVGVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFVQO1NtOzA7T047Ozs7O047Ozs7OworMjk2OTtSSUdIVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIERPV04gQUJPVkUgTEVGVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIERPV047U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTZBO0xFRlRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBVUCBBQk9WRSBMT05HIERBU0g7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTZCO0xFRlRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBET1dOIEJFTE9XIExPTkcgREFTSDtTbTswO09OOzs7OztOOzs7OzsKKzI5NkM7UklHSFRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBVUCBBQk9WRSBMT05HIERBU0g7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTZEO1JJR0hUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgRE9XTiBCRUxPVyBMT05HIERBU0g7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTZFO1VQV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgTEVGVCBCRVNJREUgRE9XTldBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFJJR0hUO1NtOzA7T047Ozs7O047Ozs7OworMjk2RjtET1dOV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgTEVGVCBCRVNJREUgVVBXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBSSUdIVDtTbTswO09OOzs7OztOOzs7OzsKKzI5NzA7UklHSFQgRE9VQkxFIEFSUk9XIFdJVEggUk9VTkRFRCBIRUFEO1NtOzA7T047Ozs7O047Ozs7OworMjk3MTtFUVVBTFMgU0lHTiBBQk9WRSBSSUdIVFdBUkRTIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjk3MjtUSUxERSBPUEVSQVRPUiBBQk9WRSBSSUdIVFdBUkRTIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjk3MztMRUZUV0FSRFMgQVJST1cgQUJPVkUgVElMREUgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTc0O1JJR0hUV0FSRFMgQVJST1cgQUJPVkUgVElMREUgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTc1O1JJR0hUV0FSRFMgQVJST1cgQUJPVkUgQUxNT1NUIEVRVUFMIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjk3NjtMRVNTLVRIQU4gQUJPVkUgTEVGVFdBUkRTIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjk3NztMRUZUV0FSRFMgQVJST1cgVEhST1VHSCBMRVNTLVRIQU47U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTc4O0dSRUFURVItVEhBTiBBQk9WRSBSSUdIVFdBUkRTIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjk3OTtTVUJTRVQgQUJPVkUgUklHSFRXQVJEUyBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5N0E7TEVGVFdBUkRTIEFSUk9XIFRIUk9VR0ggU1VCU0VUO1NtOzA7T047Ozs7O047Ozs7OworMjk3QjtTVVBFUlNFVCBBQk9WRSBMRUZUV0FSRFMgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTdDO0xFRlQgRklTSCBUQUlMO1NtOzA7T047Ozs7O047Ozs7OworMjk3RDtSSUdIVCBGSVNIIFRBSUw7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTdFO1VQIEZJU0ggVEFJTDtTbTswO09OOzs7OztOOzs7OzsKKzI5N0Y7RE9XTiBGSVNIIFRBSUw7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTgwO1RSSVBMRSBWRVJUSUNBTCBCQVIgREVMSU1JVEVSO1NtOzA7T047Ozs7O047Ozs7OworMjk4MTtaIE5PVEFUSU9OIFNQT1Q7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTgyO1ogTk9UQVRJT04gVFlQRSBDT0xPTjtTbTswO09OOzs7OztOOzs7OzsKKzI5ODM7TEVGVCBXSElURSBDVVJMWSBCUkFDS0VUO1BzOzA7T047Ozs7O1k7Ozs7OworMjk4NDtSSUdIVCBXSElURSBDVVJMWSBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Ozs7OworMjk4NTtMRUZUIFdISVRFIFBBUkVOVEhFU0lTO1BzOzA7T047Ozs7O1k7Ozs7OworMjk4NjtSSUdIVCBXSElURSBQQVJFTlRIRVNJUztQZTswO09OOzs7OztZOzs7OzsKKzI5ODc7WiBOT1RBVElPTiBMRUZUIElNQUdFIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTs7Ozs7CisyOTg4O1ogTk9UQVRJT04gUklHSFQgSU1BR0UgQlJBQ0tFVDtQZTswO09OOzs7OztZOzs7OzsKKzI5ODk7WiBOT1RBVElPTiBMRUZUIEJJTkRJTkcgQlJBQ0tFVDtQczswO09OOzs7OztZOzs7OzsKKzI5OEE7WiBOT1RBVElPTiBSSUdIVCBCSU5ESU5HIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTs7Ozs7CisyOThCO0xFRlQgU1FVQVJFIEJSQUNLRVQgV0lUSCBVTkRFUkJBUjtQczswO09OOzs7OztZOzs7OzsKKzI5OEM7UklHSFQgU1FVQVJFIEJSQUNLRVQgV0lUSCBVTkRFUkJBUjtQZTswO09OOzs7OztZOzs7OzsKKzI5OEQ7TEVGVCBTUVVBUkUgQlJBQ0tFVCBXSVRIIFRJQ0sgSU4gVE9QIENPUk5FUjtQczswO09OOzs7OztZOzs7OzsKKzI5OEU7UklHSFQgU1FVQVJFIEJSQUNLRVQgV0lUSCBUSUNLIElOIEJPVFRPTSBDT1JORVI7UGU7MDtPTjs7Ozs7WTs7Ozs7CisyOThGO0xFRlQgU1FVQVJFIEJSQUNLRVQgV0lUSCBUSUNLIElOIEJPVFRPTSBDT1JORVI7UHM7MDtPTjs7Ozs7WTs7Ozs7CisyOTkwO1JJR0hUIFNRVUFSRSBCUkFDS0VUIFdJVEggVElDSyBJTiBUT1AgQ09STkVSO1BlOzA7T047Ozs7O1k7Ozs7OworMjk5MTtMRUZUIEFOR0xFIEJSQUNLRVQgV0lUSCBET1Q7UHM7MDtPTjs7Ozs7WTs7Ozs7CisyOTkyO1JJR0hUIEFOR0xFIEJSQUNLRVQgV0lUSCBET1Q7UGU7MDtPTjs7Ozs7WTs7Ozs7CisyOTkzO0xFRlQgQVJDIExFU1MtVEhBTiBCUkFDS0VUO1BzOzA7T047Ozs7O1k7Ozs7OworMjk5NDtSSUdIVCBBUkMgR1JFQVRFUi1USEFOIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTs7Ozs7CisyOTk1O0RPVUJMRSBMRUZUIEFSQyBHUkVBVEVSLVRIQU4gQlJBQ0tFVDtQczswO09OOzs7OztZOzs7OzsKKzI5OTY7RE9VQkxFIFJJR0hUIEFSQyBMRVNTLVRIQU4gQlJBQ0tFVDtQZTswO09OOzs7OztZOzs7OzsKKzI5OTc7TEVGVCBCTEFDSyBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUO1BzOzA7T047Ozs7O1k7Ozs7OworMjk5ODtSSUdIVCBCTEFDSyBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Ozs7OworMjk5OTtET1RURUQgRkVOQ0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTlBO1ZFUlRJQ0FMIFpJR1pBRyBMSU5FO1NtOzA7T047Ozs7O047Ozs7OworMjk5QjtNRUFTVVJFRCBBTkdMRSBPUEVOSU5HIExFRlQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyOTlDO1JJR0hUIEFOR0xFIFZBUklBTlQgV0lUSCBTUVVBUkU7U207MDtPTjs7Ozs7WTs7Ozs7CisyOTlEO01FQVNVUkVEIFJJR0hUIEFOR0xFIFdJVEggRE9UO1NtOzA7T047Ozs7O1k7Ozs7OworMjk5RTtBTkdMRSBXSVRIIFMgSU5TSURFO1NtOzA7T047Ozs7O1k7Ozs7OworMjk5RjtBQ1VURSBBTkdMRTtTbTswO09OOzs7OztZOzs7OzsKKzI5QTA7U1BIRVJJQ0FMIEFOR0xFIE9QRU5JTkcgTEVGVDtTbTswO09OOzs7OztZOzs7OzsKKzI5QTE7U1BIRVJJQ0FMIEFOR0xFIE9QRU5JTkcgVVA7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUEyO1RVUk5FRCBBTkdMRTtTbTswO09OOzs7OztZOzs7OzsKKzI5QTM7UkVWRVJTRUQgQU5HTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUE0O0FOR0xFIFdJVEggVU5ERVJCQVI7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUE1O1JFVkVSU0VEIEFOR0xFIFdJVEggVU5ERVJCQVI7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUE2O09CTElRVUUgQU5HTEUgT1BFTklORyBVUDtTbTswO09OOzs7OztZOzs7OzsKKzI5QTc7T0JMSVFVRSBBTkdMRSBPUEVOSU5HIERPV047U207MDtPTjs7Ozs7WTs7Ozs7CisyOUE4O01FQVNVUkVEIEFOR0xFIFdJVEggT1BFTiBBUk0gRU5ESU5HIElOIEFSUk9XIFBPSU5USU5HIFVQIEFORCBSSUdIVDtTbTswO09OOzs7OztZOzs7OzsKKzI5QTk7TUVBU1VSRUQgQU5HTEUgV0lUSCBPUEVOIEFSTSBFTkRJTkcgSU4gQVJST1cgUE9JTlRJTkcgVVAgQU5EIExFRlQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUFBO01FQVNVUkVEIEFOR0xFIFdJVEggT1BFTiBBUk0gRU5ESU5HIElOIEFSUk9XIFBPSU5USU5HIERPV04gQU5EIFJJR0hUO1NtOzA7T047Ozs7O1k7Ozs7OworMjlBQjtNRUFTVVJFRCBBTkdMRSBXSVRIIE9QRU4gQVJNIEVORElORyBJTiBBUlJPVyBQT0lOVElORyBET1dOIEFORCBMRUZUO1NtOzA7T047Ozs7O1k7Ozs7OworMjlBQztNRUFTVVJFRCBBTkdMRSBXSVRIIE9QRU4gQVJNIEVORElORyBJTiBBUlJPVyBQT0lOVElORyBSSUdIVCBBTkQgVVA7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUFEO01FQVNVUkVEIEFOR0xFIFdJVEggT1BFTiBBUk0gRU5ESU5HIElOIEFSUk9XIFBPSU5USU5HIExFRlQgQU5EIFVQO1NtOzA7T047Ozs7O1k7Ozs7OworMjlBRTtNRUFTVVJFRCBBTkdMRSBXSVRIIE9QRU4gQVJNIEVORElORyBJTiBBUlJPVyBQT0lOVElORyBSSUdIVCBBTkQgRE9XTjtTbTswO09OOzs7OztZOzs7OzsKKzI5QUY7TUVBU1VSRUQgQU5HTEUgV0lUSCBPUEVOIEFSTSBFTkRJTkcgSU4gQVJST1cgUE9JTlRJTkcgTEVGVCBBTkQgRE9XTjtTbTswO09OOzs7OztZOzs7OzsKKzI5QjA7UkVWRVJTRUQgRU1QVFkgU0VUO1NtOzA7T047Ozs7O047Ozs7OworMjlCMTtFTVBUWSBTRVQgV0lUSCBPVkVSQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjlCMjtFTVBUWSBTRVQgV0lUSCBTTUFMTCBDSVJDTEUgQUJPVkU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUIzO0VNUFRZIFNFVCBXSVRIIFJJR0hUIEFSUk9XIEFCT1ZFO1NtOzA7T047Ozs7O047Ozs7OworMjlCNDtFTVBUWSBTRVQgV0lUSCBMRUZUIEFSUk9XIEFCT1ZFO1NtOzA7T047Ozs7O047Ozs7OworMjlCNTtDSVJDTEUgV0lUSCBIT1JJWk9OVEFMIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5QjY7Q0lSQ0xFRCBWRVJUSUNBTCBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUI3O0NJUkNMRUQgUEFSQUxMRUw7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUI4O0NJUkNMRUQgUkVWRVJTRSBTT0xJRFVTO1NtOzA7T047Ozs7O1k7Ozs7OworMjlCOTtDSVJDTEVEIFBFUlBFTkRJQ1VMQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUJBO0NJUkNMRSBESVZJREVEIEJZIEhPUklaT05UQUwgQkFSIEFORCBUT1AgSEFMRiBESVZJREVEIEJZIFZFUlRJQ0FMIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5QkI7Q0lSQ0xFIFdJVEggU1VQRVJJTVBPU0VEIFg7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUJDO0NJUkNMRUQgQU5USUNMT0NLV0lTRS1ST1RBVEVEIERJVklTSU9OIFNJR047U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUJEO1VQIEFSUk9XIFRIUk9VR0ggQ0lSQ0xFO1NtOzA7T047Ozs7O047Ozs7OworMjlCRTtDSVJDTEVEIFdISVRFIEJVTExFVDtTbTswO09OOzs7OztOOzs7OzsKKzI5QkY7Q0lSQ0xFRCBCVUxMRVQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUMwO0NJUkNMRUQgTEVTUy1USEFOO1NtOzA7T047Ozs7O1k7Ozs7OworMjlDMTtDSVJDTEVEIEdSRUFURVItVEhBTjtTbTswO09OOzs7OztZOzs7OzsKKzI5QzI7Q0lSQ0xFIFdJVEggU01BTEwgQ0lSQ0xFIFRPIFRIRSBSSUdIVDtTbTswO09OOzs7OztZOzs7OzsKKzI5QzM7Q0lSQ0xFIFdJVEggVFdPIEhPUklaT05UQUwgU1RST0tFUyBUTyBUSEUgUklHSFQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUM0O1NRVUFSRUQgUklTSU5HIERJQUdPTkFMIFNMQVNIO1NtOzA7T047Ozs7O1k7Ozs7OworMjlDNTtTUVVBUkVEIEZBTExJTkcgRElBR09OQUwgU0xBU0g7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUM2O1NRVUFSRUQgQVNURVJJU0s7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUM3O1NRVUFSRUQgU01BTEwgQ0lSQ0xFO1NtOzA7T047Ozs7O047Ozs7OworMjlDODtTUVVBUkVEIFNRVUFSRTtTbTswO09OOzs7OztOOzs7OzsKKzI5Qzk7VFdPIEpPSU5FRCBTUVVBUkVTO1NtOzA7T047Ozs7O1k7Ozs7OworMjlDQTtUUklBTkdMRSBXSVRIIERPVCBBQk9WRTtTbTswO09OOzs7OztOOzs7OzsKKzI5Q0I7VFJJQU5HTEUgV0lUSCBVTkRFUkJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5Q0M7UyBJTiBUUklBTkdMRTtTbTswO09OOzs7OztOOzs7OzsKKzI5Q0Q7VFJJQU5HTEUgV0lUSCBTRVJJRlMgQVQgQk9UVE9NO1NtOzA7T047Ozs7O047Ozs7OworMjlDRTtSSUdIVCBUUklBTkdMRSBBQk9WRSBMRUZUIFRSSUFOR0xFO1NtOzA7T047Ozs7O1k7Ozs7OworMjlDRjtMRUZUIFRSSUFOR0xFIEJFU0lERSBWRVJUSUNBTCBCQVI7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUQwO1ZFUlRJQ0FMIEJBUiBCRVNJREUgUklHSFQgVFJJQU5HTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUQxO0JPV1RJRSBXSVRIIExFRlQgSEFMRiBCTEFDSztTbTswO09OOzs7OztZOzs7OzsKKzI5RDI7Qk9XVElFIFdJVEggUklHSFQgSEFMRiBCTEFDSztTbTswO09OOzs7OztZOzs7OzsKKzI5RDM7QkxBQ0sgQk9XVElFO1NtOzA7T047Ozs7O047Ozs7OworMjlENDtUSU1FUyBXSVRIIExFRlQgSEFMRiBCTEFDSztTbTswO09OOzs7OztZOzs7OzsKKzI5RDU7VElNRVMgV0lUSCBSSUdIVCBIQUxGIEJMQUNLO1NtOzA7T047Ozs7O1k7Ozs7OworMjlENjtXSElURSBIT1VSR0xBU1M7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUQ3O0JMQUNLIEhPVVJHTEFTUztTbTswO09OOzs7OztOOzs7OzsKKzI5RDg7TEVGVCBXSUdHTFkgRkVOQ0U7UHM7MDtPTjs7Ozs7WTs7Ozs7CisyOUQ5O1JJR0hUIFdJR0dMWSBGRU5DRTtQZTswO09OOzs7OztZOzs7OzsKKzI5REE7TEVGVCBET1VCTEUgV0lHR0xZIEZFTkNFO1BzOzA7T047Ozs7O1k7Ozs7OworMjlEQjtSSUdIVCBET1VCTEUgV0lHR0xZIEZFTkNFO1BlOzA7T047Ozs7O1k7Ozs7OworMjlEQztJTkNPTVBMRVRFIElORklOSVRZO1NtOzA7T047Ozs7O1k7Ozs7OworMjlERDtUSUUgT1ZFUiBJTkZJTklUWTtTbTswO09OOzs7OztOOzs7OzsKKzI5REU7SU5GSU5JVFkgTkVHQVRFRCBXSVRIIFZFUlRJQ0FMIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5REY7RE9VQkxFLUVOREVEIE1VTFRJTUFQO1NtOzA7T047Ozs7O047Ozs7OworMjlFMDtTUVVBUkUgV0lUSCBDT05UT1VSRUQgT1VUTElORTtTbTswO09OOzs7OztOOzs7OzsKKzI5RTE7SU5DUkVBU0VTIEFTO1NtOzA7T047Ozs7O1k7Ozs7OworMjlFMjtTSFVGRkxFIFBST0RVQ1Q7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUUzO0VRVUFMUyBTSUdOIEFORCBTTEFOVEVEIFBBUkFMTEVMO1NtOzA7T047Ozs7O1k7Ozs7OworMjlFNDtFUVVBTFMgU0lHTiBBTkQgU0xBTlRFRCBQQVJBTExFTCBXSVRIIFRJTERFIEFCT1ZFO1NtOzA7T047Ozs7O1k7Ozs7OworMjlFNTtJREVOVElDQUwgVE8gQU5EIFNMQU5URUQgUEFSQUxMRUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUU2O0dMRUlDSCBTVEFSSztTbTswO09OOzs7OztOOzs7OzsKKzI5RTc7VEhFUk1PRFlOQU1JQztTbTswO09OOzs7OztOOzs7OzsKKzI5RTg7RE9XTi1QT0lOVElORyBUUklBTkdMRSBXSVRIIExFRlQgSEFMRiBCTEFDSztTbTswO09OOzs7OztZOzs7OzsKKzI5RTk7RE9XTi1QT0lOVElORyBUUklBTkdMRSBXSVRIIFJJR0hUIEhBTEYgQkxBQ0s7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUVBO0JMQUNLIERJQU1PTkQgV0lUSCBET1dOIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjlFQjtCTEFDSyBMT1pFTkdFO1NtOzA7T047Ozs7O047Ozs7OworMjlFQztXSElURSBDSVJDTEUgV0lUSCBET1dOIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjlFRDtCTEFDSyBDSVJDTEUgV0lUSCBET1dOIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjlFRTtFUlJPUi1CQVJSRUQgV0hJVEUgU1FVQVJFO1NtOzA7T047Ozs7O047Ozs7OworMjlFRjtFUlJPUi1CQVJSRUQgQkxBQ0sgU1FVQVJFO1NtOzA7T047Ozs7O047Ozs7OworMjlGMDtFUlJPUi1CQVJSRUQgV0hJVEUgRElBTU9ORDtTbTswO09OOzs7OztOOzs7OzsKKzI5RjE7RVJST1ItQkFSUkVEIEJMQUNLIERJQU1PTkQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUYyO0VSUk9SLUJBUlJFRCBXSElURSBDSVJDTEU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUYzO0VSUk9SLUJBUlJFRCBCTEFDSyBDSVJDTEU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUY0O1JVTEUtREVMQVlFRDtTbTswO09OOzs7OztZOzs7OzsKKzI5RjU7UkVWRVJTRSBTT0xJRFVTIE9QRVJBVE9SO1NtOzA7T047Ozs7O1k7Ozs7OworMjlGNjtTT0xJRFVTIFdJVEggT1ZFUkJBUjtTbTswO09OOzs7OztZOzs7OzsKKzI5Rjc7UkVWRVJTRSBTT0xJRFVTIFdJVEggSE9SSVpPTlRBTCBTVFJPS0U7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUY4O0JJRyBTT0xJRFVTO1NtOzA7T047Ozs7O1k7Ozs7OworMjlGOTtCSUcgUkVWRVJTRSBTT0xJRFVTO1NtOzA7T047Ozs7O1k7Ozs7OworMjlGQTtET1VCTEUgUExVUztTbTswO09OOzs7OztOOzs7OzsKKzI5RkI7VFJJUExFIFBMVVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUZDO0xFRlQtUE9JTlRJTkcgQ1VSVkVEIEFOR0xFIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTs7Ozs7CisyOUZEO1JJR0hULVBPSU5USU5HIENVUlZFRCBBTkdMRSBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Ozs7OworMjlGRTtUSU5ZO1NtOzA7T047Ozs7O047Ozs7OworMjlGRjtNSU5ZO1NtOzA7T047Ozs7O047Ozs7OworMkEwMDtOLUFSWSBDSVJDTEVEIERPVCBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzJBMDE7Ti1BUlkgQ0lSQ0xFRCBQTFVTIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMkEwMjtOLUFSWSBDSVJDTEVEIFRJTUVTIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMkEwMztOLUFSWSBVTklPTiBPUEVSQVRPUiBXSVRIIERPVDtTbTswO09OOzs7OztOOzs7OzsKKzJBMDQ7Ti1BUlkgVU5JT04gT1BFUkFUT1IgV0lUSCBQTFVTO1NtOzA7T047Ozs7O047Ozs7OworMkEwNTtOLUFSWSBTUVVBUkUgSU5URVJTRUNUSU9OIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMkEwNjtOLUFSWSBTUVVBUkUgVU5JT04gT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTA3O1RXTyBMT0dJQ0FMIEFORCBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzJBMDg7VFdPIExPR0lDQUwgT1IgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTA5O04tQVJZIFRJTUVTIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMkEwQTtNT0RVTE8gVFdPIFNVTTtTbTswO09OOzs7OztZOzs7OzsKKzJBMEI7U1VNTUFUSU9OIFdJVEggSU5URUdSQUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTBDO1FVQURSVVBMRSBJTlRFR1JBTCBPUEVSQVRPUjtTbTswO09OOzxjb21wYXQ+IDIyMkIgMjIyQiAyMjJCIDIyMkI7Ozs7WTs7Ozs7CisyQTBEO0ZJTklURSBQQVJUIElOVEVHUkFMO1NtOzA7T047Ozs7O1k7Ozs7OworMkEwRTtJTlRFR1JBTCBXSVRIIERPVUJMRSBTVFJPS0U7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTBGO0lOVEVHUkFMIEFWRVJBR0UgV0lUSCBTTEFTSDtTbTswO09OOzs7OztZOzs7OzsKKzJBMTA7Q0lSQ1VMQVRJT04gRlVOQ1RJT047U207MDtPTjs7Ozs7WTs7Ozs7CisyQTExO0FOVElDTE9DS1dJU0UgSU5URUdSQVRJT047U207MDtPTjs7Ozs7WTs7Ozs7CisyQTEyO0xJTkUgSU5URUdSQVRJT04gV0lUSCBSRUNUQU5HVUxBUiBQQVRIIEFST1VORCBQT0xFO1NtOzA7T047Ozs7O1k7Ozs7OworMkExMztMSU5FIElOVEVHUkFUSU9OIFdJVEggU0VNSUNJUkNVTEFSIFBBVEggQVJPVU5EIFBPTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTE0O0xJTkUgSU5URUdSQVRJT04gTk9UIElOQ0xVRElORyBUSEUgUE9MRTtTbTswO09OOzs7OztZOzs7OzsKKzJBMTU7SU5URUdSQUwgQVJPVU5EIEEgUE9JTlQgT1BFUkFUT1I7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTE2O1FVQVRFUk5JT04gSU5URUdSQUwgT1BFUkFUT1I7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTE3O0lOVEVHUkFMIFdJVEggTEVGVFdBUkRTIEFSUk9XIFdJVEggSE9PSztTbTswO09OOzs7OztZOzs7OzsKKzJBMTg7SU5URUdSQUwgV0lUSCBUSU1FUyBTSUdOO1NtOzA7T047Ozs7O1k7Ozs7OworMkExOTtJTlRFR1JBTCBXSVRIIElOVEVSU0VDVElPTjtTbTswO09OOzs7OztZOzs7OzsKKzJBMUE7SU5URUdSQUwgV0lUSCBVTklPTjtTbTswO09OOzs7OztZOzs7OzsKKzJBMUI7SU5URUdSQUwgV0lUSCBPVkVSQkFSO1NtOzA7T047Ozs7O1k7Ozs7OworMkExQztJTlRFR1JBTCBXSVRIIFVOREVSQkFSO1NtOzA7T047Ozs7O1k7Ozs7OworMkExRDtKT0lOO1NtOzA7T047Ozs7O047Ozs7OworMkExRTtMQVJHRSBMRUZUIFRSSUFOR0xFIE9QRVJBVE9SO1NtOzA7T047Ozs7O1k7Ozs7OworMkExRjtaIE5PVEFUSU9OIFNDSEVNQSBDT01QT1NJVElPTjtTbTswO09OOzs7OztZOzs7OzsKKzJBMjA7WiBOT1RBVElPTiBTQ0hFTUEgUElQSU5HO1NtOzA7T047Ozs7O1k7Ozs7OworMkEyMTtaIE5PVEFUSU9OIFNDSEVNQSBQUk9KRUNUSU9OO1NtOzA7T047Ozs7O1k7Ozs7OworMkEyMjtQTFVTIFNJR04gV0lUSCBTTUFMTCBDSVJDTEUgQUJPVkU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTIzO1BMVVMgU0lHTiBXSVRIIENJUkNVTUZMRVggQUNDRU5UIEFCT1ZFO1NtOzA7T047Ozs7O047Ozs7OworMkEyNDtQTFVTIFNJR04gV0lUSCBUSUxERSBBQk9WRTtTbTswO09OOzs7OztZOzs7OzsKKzJBMjU7UExVUyBTSUdOIFdJVEggRE9UIEJFTE9XO1NtOzA7T047Ozs7O047Ozs7OworMkEyNjtQTFVTIFNJR04gV0lUSCBUSUxERSBCRUxPVztTbTswO09OOzs7OztZOzs7OzsKKzJBMjc7UExVUyBTSUdOIFdJVEggU1VCU0NSSVBUIFRXTztTbTswO09OOzs7OztOOzs7OzsKKzJBMjg7UExVUyBTSUdOIFdJVEggQkxBQ0sgVFJJQU5HTEU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTI5O01JTlVTIFNJR04gV0lUSCBDT01NQSBBQk9WRTtTbTswO09OOzs7OztZOzs7OzsKKzJBMkE7TUlOVVMgU0lHTiBXSVRIIERPVCBCRUxPVztTbTswO09OOzs7OztOOzs7OzsKKzJBMkI7TUlOVVMgU0lHTiBXSVRIIEZBTExJTkcgRE9UUztTbTswO09OOzs7OztZOzs7OzsKKzJBMkM7TUlOVVMgU0lHTiBXSVRIIFJJU0lORyBET1RTO1NtOzA7T047Ozs7O1k7Ozs7OworMkEyRDtQTFVTIFNJR04gSU4gTEVGVCBIQUxGIENJUkNMRTtTbTswO09OOzs7OztZOzs7OzsKKzJBMkU7UExVUyBTSUdOIElOIFJJR0hUIEhBTEYgQ0lSQ0xFO1NtOzA7T047Ozs7O1k7Ozs7OworMkEyRjtWRUNUT1IgT1IgQ1JPU1MgUFJPRFVDVDtTbTswO09OOzs7OztOOzs7OzsKKzJBMzA7TVVMVElQTElDQVRJT04gU0lHTiBXSVRIIERPVCBBQk9WRTtTbTswO09OOzs7OztOOzs7OzsKKzJBMzE7TVVMVElQTElDQVRJT04gU0lHTiBXSVRIIFVOREVSQkFSO1NtOzA7T047Ozs7O047Ozs7OworMkEzMjtTRU1JRElSRUNUIFBST0RVQ1QgV0lUSCBCT1RUT00gQ0xPU0VEO1NtOzA7T047Ozs7O047Ozs7OworMkEzMztTTUFTSCBQUk9EVUNUO1NtOzA7T047Ozs7O047Ozs7OworMkEzNDtNVUxUSVBMSUNBVElPTiBTSUdOIElOIExFRlQgSEFMRiBDSVJDTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTM1O01VTFRJUExJQ0FUSU9OIFNJR04gSU4gUklHSFQgSEFMRiBDSVJDTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTM2O0NJUkNMRUQgTVVMVElQTElDQVRJT04gU0lHTiBXSVRIIENJUkNVTUZMRVggQUNDRU5UO1NtOzA7T047Ozs7O047Ozs7OworMkEzNztNVUxUSVBMSUNBVElPTiBTSUdOIElOIERPVUJMRSBDSVJDTEU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTM4O0NJUkNMRUQgRElWSVNJT04gU0lHTjtTbTswO09OOzs7OztOOzs7OzsKKzJBMzk7UExVUyBTSUdOIElOIFRSSUFOR0xFO1NtOzA7T047Ozs7O047Ozs7OworMkEzQTtNSU5VUyBTSUdOIElOIFRSSUFOR0xFO1NtOzA7T047Ozs7O047Ozs7OworMkEzQjtNVUxUSVBMSUNBVElPTiBTSUdOIElOIFRSSUFOR0xFO1NtOzA7T047Ozs7O047Ozs7OworMkEzQztJTlRFUklPUiBQUk9EVUNUO1NtOzA7T047Ozs7O1k7Ozs7OworMkEzRDtSSUdIVEhBTkQgSU5URVJJT1IgUFJPRFVDVDtTbTswO09OOzs7OztZOzs7OzsKKzJBM0U7WiBOT1RBVElPTiBSRUxBVElPTkFMIENPTVBPU0lUSU9OO1NtOzA7T047Ozs7O1k7Ozs7OworMkEzRjtBTUFMR0FNQVRJT04gT1IgQ09QUk9EVUNUO1NtOzA7T047Ozs7O047Ozs7OworMkE0MDtJTlRFUlNFQ1RJT04gV0lUSCBET1Q7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTQxO1VOSU9OIFdJVEggTUlOVVMgU0lHTjtTbTswO09OOzs7OztOOzs7OzsKKzJBNDI7VU5JT04gV0lUSCBPVkVSQkFSO1NtOzA7T047Ozs7O047Ozs7OworMkE0MztJTlRFUlNFQ1RJT04gV0lUSCBPVkVSQkFSO1NtOzA7T047Ozs7O047Ozs7OworMkE0NDtJTlRFUlNFQ1RJT04gV0lUSCBMT0dJQ0FMIEFORDtTbTswO09OOzs7OztOOzs7OzsKKzJBNDU7VU5JT04gV0lUSCBMT0dJQ0FMIE9SO1NtOzA7T047Ozs7O047Ozs7OworMkE0NjtVTklPTiBBQk9WRSBJTlRFUlNFQ1RJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTQ3O0lOVEVSU0VDVElPTiBBQk9WRSBVTklPTjtTbTswO09OOzs7OztOOzs7OzsKKzJBNDg7VU5JT04gQUJPVkUgQkFSIEFCT1ZFIElOVEVSU0VDVElPTjtTbTswO09OOzs7OztOOzs7OzsKKzJBNDk7SU5URVJTRUNUSU9OIEFCT1ZFIEJBUiBBQk9WRSBVTklPTjtTbTswO09OOzs7OztOOzs7OzsKKzJBNEE7VU5JT04gQkVTSURFIEFORCBKT0lORUQgV0lUSCBVTklPTjtTbTswO09OOzs7OztOOzs7OzsKKzJBNEI7SU5URVJTRUNUSU9OIEJFU0lERSBBTkQgSk9JTkVEIFdJVEggSU5URVJTRUNUSU9OO1NtOzA7T047Ozs7O047Ozs7OworMkE0QztDTE9TRUQgVU5JT04gV0lUSCBTRVJJRlM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTREO0NMT1NFRCBJTlRFUlNFQ1RJT04gV0lUSCBTRVJJRlM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTRFO0RPVUJMRSBTUVVBUkUgSU5URVJTRUNUSU9OO1NtOzA7T047Ozs7O047Ozs7OworMkE0RjtET1VCTEUgU1FVQVJFIFVOSU9OO1NtOzA7T047Ozs7O047Ozs7OworMkE1MDtDTE9TRUQgVU5JT04gV0lUSCBTRVJJRlMgQU5EIFNNQVNIIFBST0RVQ1Q7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTUxO0xPR0lDQUwgQU5EIFdJVEggRE9UIEFCT1ZFO1NtOzA7T047Ozs7O047Ozs7OworMkE1MjtMT0dJQ0FMIE9SIFdJVEggRE9UIEFCT1ZFO1NtOzA7T047Ozs7O047Ozs7OworMkE1MztET1VCTEUgTE9HSUNBTCBBTkQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTU0O0RPVUJMRSBMT0dJQ0FMIE9SO1NtOzA7T047Ozs7O047Ozs7OworMkE1NTtUV08gSU5URVJTRUNUSU5HIExPR0lDQUwgQU5EO1NtOzA7T047Ozs7O047Ozs7OworMkE1NjtUV08gSU5URVJTRUNUSU5HIExPR0lDQUwgT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTU3O1NMT1BJTkcgTEFSR0UgT1I7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTU4O1NMT1BJTkcgTEFSR0UgQU5EO1NtOzA7T047Ozs7O1k7Ozs7OworMkE1OTtMT0dJQ0FMIE9SIE9WRVJMQVBQSU5HIExPR0lDQUwgQU5EO1NtOzA7T047Ozs7O047Ozs7OworMkE1QTtMT0dJQ0FMIEFORCBXSVRIIE1JRERMRSBTVEVNO1NtOzA7T047Ozs7O047Ozs7OworMkE1QjtMT0dJQ0FMIE9SIFdJVEggTUlERExFIFNURU07U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTVDO0xPR0lDQUwgQU5EIFdJVEggSE9SSVpPTlRBTCBEQVNIO1NtOzA7T047Ozs7O047Ozs7OworMkE1RDtMT0dJQ0FMIE9SIFdJVEggSE9SSVpPTlRBTCBEQVNIO1NtOzA7T047Ozs7O047Ozs7OworMkE1RTtMT0dJQ0FMIEFORCBXSVRIIERPVUJMRSBPVkVSQkFSO1NtOzA7T047Ozs7O047Ozs7OworMkE1RjtMT0dJQ0FMIEFORCBXSVRIIFVOREVSQkFSO1NtOzA7T047Ozs7O047Ozs7OworMkE2MDtMT0dJQ0FMIEFORCBXSVRIIERPVUJMRSBVTkRFUkJBUjtTbTswO09OOzs7OztOOzs7OzsKKzJBNjE7U01BTEwgVkVFIFdJVEggVU5ERVJCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTYyO0xPR0lDQUwgT1IgV0lUSCBET1VCTEUgT1ZFUkJBUjtTbTswO09OOzs7OztOOzs7OzsKKzJBNjM7TE9HSUNBTCBPUiBXSVRIIERPVUJMRSBVTkRFUkJBUjtTbTswO09OOzs7OztOOzs7OzsKKzJBNjQ7WiBOT1RBVElPTiBET01BSU4gQU5USVJFU1RSSUNUSU9OO1NtOzA7T047Ozs7O1k7Ozs7OworMkE2NTtaIE5PVEFUSU9OIFJBTkdFIEFOVElSRVNUUklDVElPTjtTbTswO09OOzs7OztZOzs7OzsKKzJBNjY7RVFVQUxTIFNJR04gV0lUSCBET1QgQkVMT1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTY3O0lERU5USUNBTCBXSVRIIERPVCBBQk9WRTtTbTswO09OOzs7OztOOzs7OzsKKzJBNjg7VFJJUExFIEhPUklaT05UQUwgQkFSIFdJVEggRE9VQkxFIFZFUlRJQ0FMIFNUUk9LRTtTbTswO09OOzs7OztOOzs7OzsKKzJBNjk7VFJJUExFIEhPUklaT05UQUwgQkFSIFdJVEggVFJJUExFIFZFUlRJQ0FMIFNUUk9LRTtTbTswO09OOzs7OztOOzs7OzsKKzJBNkE7VElMREUgT1BFUkFUT1IgV0lUSCBET1QgQUJPVkU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTZCO1RJTERFIE9QRVJBVE9SIFdJVEggUklTSU5HIERPVFM7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTZDO1NJTUlMQVIgTUlOVVMgU0lNSUxBUjtTbTswO09OOzs7OztZOzs7OzsKKzJBNkQ7Q09OR1JVRU5UIFdJVEggRE9UIEFCT1ZFO1NtOzA7T047Ozs7O1k7Ozs7OworMkE2RTtFUVVBTFMgV0lUSCBBU1RFUklTSztTbTswO09OOzs7OztOOzs7OzsKKzJBNkY7QUxNT1NUIEVRVUFMIFRPIFdJVEggQ0lSQ1VNRkxFWCBBQ0NFTlQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTcwO0FQUFJPWElNQVRFTFkgRVFVQUwgT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyQTcxO0VRVUFMUyBTSUdOIEFCT1ZFIFBMVVMgU0lHTjtTbTswO09OOzs7OztOOzs7OzsKKzJBNzI7UExVUyBTSUdOIEFCT1ZFIEVRVUFMUyBTSUdOO1NtOzA7T047Ozs7O047Ozs7OworMkE3MztFUVVBTFMgU0lHTiBBQk9WRSBUSUxERSBPUEVSQVRPUjtTbTswO09OOzs7OztZOzs7OzsKKzJBNzQ7RE9VQkxFIENPTE9OIEVRVUFMO1NtOzA7T047PGNvbXBhdD4gMDAzQSAwMDNBIDAwM0Q7Ozs7WTs7Ozs7CisyQTc1O1RXTyBDT05TRUNVVElWRSBFUVVBTFMgU0lHTlM7U207MDtPTjs8Y29tcGF0PiAwMDNEIDAwM0Q7Ozs7Tjs7Ozs7CisyQTc2O1RIUkVFIENPTlNFQ1VUSVZFIEVRVUFMUyBTSUdOUztTbTswO09OOzxjb21wYXQ+IDAwM0QgMDAzRCAwMDNEOzs7O047Ozs7OworMkE3NztFUVVBTFMgU0lHTiBXSVRIIFRXTyBET1RTIEFCT1ZFIEFORCBUV08gRE9UUyBCRUxPVztTbTswO09OOzs7OztOOzs7OzsKKzJBNzg7RVFVSVZBTEVOVCBXSVRIIEZPVVIgRE9UUyBBQk9WRTtTbTswO09OOzs7OztOOzs7OzsKKzJBNzk7TEVTUy1USEFOIFdJVEggQ0lSQ0xFIElOU0lERTtTbTswO09OOzs7OztZOzs7OzsKKzJBN0E7R1JFQVRFUi1USEFOIFdJVEggQ0lSQ0xFIElOU0lERTtTbTswO09OOzs7OztZOzs7OzsKKzJBN0I7TEVTUy1USEFOIFdJVEggUVVFU1RJT04gTUFSSyBBQk9WRTtTbTswO09OOzs7OztZOzs7OzsKKzJBN0M7R1JFQVRFUi1USEFOIFdJVEggUVVFU1RJT04gTUFSSyBBQk9WRTtTbTswO09OOzs7OztZOzs7OzsKKzJBN0Q7TEVTUy1USEFOIE9SIFNMQU5URUQgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyQTdFO0dSRUFURVItVEhBTiBPUiBTTEFOVEVEIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMkE3RjtMRVNTLVRIQU4gT1IgU0xBTlRFRCBFUVVBTCBUTyBXSVRIIERPVCBJTlNJREU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTgwO0dSRUFURVItVEhBTiBPUiBTTEFOVEVEIEVRVUFMIFRPIFdJVEggRE9UIElOU0lERTtTbTswO09OOzs7OztZOzs7OzsKKzJBODE7TEVTUy1USEFOIE9SIFNMQU5URUQgRVFVQUwgVE8gV0lUSCBET1QgQUJPVkU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTgyO0dSRUFURVItVEhBTiBPUiBTTEFOVEVEIEVRVUFMIFRPIFdJVEggRE9UIEFCT1ZFO1NtOzA7T047Ozs7O1k7Ozs7OworMkE4MztMRVNTLVRIQU4gT1IgU0xBTlRFRCBFUVVBTCBUTyBXSVRIIERPVCBBQk9WRSBSSUdIVDtTbTswO09OOzs7OztZOzs7OzsKKzJBODQ7R1JFQVRFUi1USEFOIE9SIFNMQU5URUQgRVFVQUwgVE8gV0lUSCBET1QgQUJPVkUgTEVGVDtTbTswO09OOzs7OztZOzs7OzsKKzJBODU7TEVTUy1USEFOIE9SIEFQUFJPWElNQVRFO1NtOzA7T047Ozs7O1k7Ozs7OworMkE4NjtHUkVBVEVSLVRIQU4gT1IgQVBQUk9YSU1BVEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTg3O0xFU1MtVEhBTiBBTkQgU0lOR0xFLUxJTkUgTk9UIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMkE4ODtHUkVBVEVSLVRIQU4gQU5EIFNJTkdMRS1MSU5FIE5PVCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzJBODk7TEVTUy1USEFOIEFORCBOT1QgQVBQUk9YSU1BVEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQThBO0dSRUFURVItVEhBTiBBTkQgTk9UIEFQUFJPWElNQVRFO1NtOzA7T047Ozs7O1k7Ozs7OworMkE4QjtMRVNTLVRIQU4gQUJPVkUgRE9VQkxFLUxJTkUgRVFVQUwgQUJPVkUgR1JFQVRFUi1USEFOO1NtOzA7T047Ozs7O1k7Ozs7OworMkE4QztHUkVBVEVSLVRIQU4gQUJPVkUgRE9VQkxFLUxJTkUgRVFVQUwgQUJPVkUgTEVTUy1USEFOO1NtOzA7T047Ozs7O1k7Ozs7OworMkE4RDtMRVNTLVRIQU4gQUJPVkUgU0lNSUxBUiBPUiBFUVVBTDtTbTswO09OOzs7OztZOzs7OzsKKzJBOEU7R1JFQVRFUi1USEFOIEFCT1ZFIFNJTUlMQVIgT1IgRVFVQUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyQThGO0xFU1MtVEhBTiBBQk9WRSBTSU1JTEFSIEFCT1ZFIEdSRUFURVItVEhBTjtTbTswO09OOzs7OztZOzs7OzsKKzJBOTA7R1JFQVRFUi1USEFOIEFCT1ZFIFNJTUlMQVIgQUJPVkUgTEVTUy1USEFOO1NtOzA7T047Ozs7O1k7Ozs7OworMkE5MTtMRVNTLVRIQU4gQUJPVkUgR1JFQVRFUi1USEFOIEFCT1ZFIERPVUJMRS1MSU5FIEVRVUFMO1NtOzA7T047Ozs7O1k7Ozs7OworMkE5MjtHUkVBVEVSLVRIQU4gQUJPVkUgTEVTUy1USEFOIEFCT1ZFIERPVUJMRS1MSU5FIEVRVUFMO1NtOzA7T047Ozs7O1k7Ozs7OworMkE5MztMRVNTLVRIQU4gQUJPVkUgU0xBTlRFRCBFUVVBTCBBQk9WRSBHUkVBVEVSLVRIQU4gQUJPVkUgU0xBTlRFRCBFUVVBTDtTbTswO09OOzs7OztZOzs7OzsKKzJBOTQ7R1JFQVRFUi1USEFOIEFCT1ZFIFNMQU5URUQgRVFVQUwgQUJPVkUgTEVTUy1USEFOIEFCT1ZFIFNMQU5URUQgRVFVQUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTk1O1NMQU5URUQgRVFVQUwgVE8gT1IgTEVTUy1USEFOO1NtOzA7T047Ozs7O1k7Ozs7OworMkE5NjtTTEFOVEVEIEVRVUFMIFRPIE9SIEdSRUFURVItVEhBTjtTbTswO09OOzs7OztZOzs7OzsKKzJBOTc7U0xBTlRFRCBFUVVBTCBUTyBPUiBMRVNTLVRIQU4gV0lUSCBET1QgSU5TSURFO1NtOzA7T047Ozs7O1k7Ozs7OworMkE5ODtTTEFOVEVEIEVRVUFMIFRPIE9SIEdSRUFURVItVEhBTiBXSVRIIERPVCBJTlNJREU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTk5O0RPVUJMRS1MSU5FIEVRVUFMIFRPIE9SIExFU1MtVEhBTjtTbTswO09OOzs7OztZOzs7OzsKKzJBOUE7RE9VQkxFLUxJTkUgRVFVQUwgVE8gT1IgR1JFQVRFUi1USEFOO1NtOzA7T047Ozs7O1k7Ozs7OworMkE5QjtET1VCTEUtTElORSBTTEFOVEVEIEVRVUFMIFRPIE9SIExFU1MtVEhBTjtTbTswO09OOzs7OztZOzs7OzsKKzJBOUM7RE9VQkxFLUxJTkUgU0xBTlRFRCBFUVVBTCBUTyBPUiBHUkVBVEVSLVRIQU47U207MDtPTjs7Ozs7WTs7Ozs7CisyQTlEO1NJTUlMQVIgT1IgTEVTUy1USEFOO1NtOzA7T047Ozs7O1k7Ozs7OworMkE5RTtTSU1JTEFSIE9SIEdSRUFURVItVEhBTjtTbTswO09OOzs7OztZOzs7OzsKKzJBOUY7U0lNSUxBUiBBQk9WRSBMRVNTLVRIQU4gQUJPVkUgRVFVQUxTIFNJR047U207MDtPTjs7Ozs7WTs7Ozs7CisyQUEwO1NJTUlMQVIgQUJPVkUgR1JFQVRFUi1USEFOIEFCT1ZFIEVRVUFMUyBTSUdOO1NtOzA7T047Ozs7O1k7Ozs7OworMkFBMTtET1VCTEUgTkVTVEVEIExFU1MtVEhBTjtTbTswO09OOzs7OztZOzs7OzsKKzJBQTI7RE9VQkxFIE5FU1RFRCBHUkVBVEVSLVRIQU47U207MDtPTjs7Ozs7WTs7Ozs7CisyQUEzO0RPVUJMRSBORVNURUQgTEVTUy1USEFOIFdJVEggVU5ERVJCQVI7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUE0O0dSRUFURVItVEhBTiBPVkVSTEFQUElORyBMRVNTLVRIQU47U207MDtPTjs7Ozs7Tjs7Ozs7CisyQUE1O0dSRUFURVItVEhBTiBCRVNJREUgTEVTUy1USEFOO1NtOzA7T047Ozs7O047Ozs7OworMkFBNjtMRVNTLVRIQU4gQ0xPU0VEIEJZIENVUlZFO1NtOzA7T047Ozs7O1k7Ozs7OworMkFBNztHUkVBVEVSLVRIQU4gQ0xPU0VEIEJZIENVUlZFO1NtOzA7T047Ozs7O1k7Ozs7OworMkFBODtMRVNTLVRIQU4gQ0xPU0VEIEJZIENVUlZFIEFCT1ZFIFNMQU5URUQgRVFVQUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUE5O0dSRUFURVItVEhBTiBDTE9TRUQgQlkgQ1VSVkUgQUJPVkUgU0xBTlRFRCBFUVVBTDtTbTswO09OOzs7OztZOzs7OzsKKzJBQUE7U01BTExFUiBUSEFOO1NtOzA7T047Ozs7O1k7Ozs7OworMkFBQjtMQVJHRVIgVEhBTjtTbTswO09OOzs7OztZOzs7OzsKKzJBQUM7U01BTExFUiBUSEFOIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMkFBRDtMQVJHRVIgVEhBTiBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzJBQUU7RVFVQUxTIFNJR04gV0lUSCBCVU1QWSBBQk9WRTtTbTswO09OOzs7OztOOzs7OzsKKzJBQUY7UFJFQ0VERVMgQUJPVkUgU0lOR0xFLUxJTkUgRVFVQUxTIFNJR047U207MDtPTjs7Ozs7WTs7Ozs7CisyQUIwO1NVQ0NFRURTIEFCT1ZFIFNJTkdMRS1MSU5FIEVRVUFMUyBTSUdOO1NtOzA7T047Ozs7O1k7Ozs7OworMkFCMTtQUkVDRURFUyBBQk9WRSBTSU5HTEUtTElORSBOT1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyQUIyO1NVQ0NFRURTIEFCT1ZFIFNJTkdMRS1MSU5FIE5PVCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzJBQjM7UFJFQ0VERVMgQUJPVkUgRVFVQUxTIFNJR047U207MDtPTjs7Ozs7WTs7Ozs7CisyQUI0O1NVQ0NFRURTIEFCT1ZFIEVRVUFMUyBTSUdOO1NtOzA7T047Ozs7O1k7Ozs7OworMkFCNTtQUkVDRURFUyBBQk9WRSBOT1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyQUI2O1NVQ0NFRURTIEFCT1ZFIE5PVCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzJBQjc7UFJFQ0VERVMgQUJPVkUgQUxNT1NUIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMkFCODtTVUNDRUVEUyBBQk9WRSBBTE1PU1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyQUI5O1BSRUNFREVTIEFCT1ZFIE5PVCBBTE1PU1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyQUJBO1NVQ0NFRURTIEFCT1ZFIE5PVCBBTE1PU1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyQUJCO0RPVUJMRSBQUkVDRURFUztTbTswO09OOzs7OztZOzs7OzsKKzJBQkM7RE9VQkxFIFNVQ0NFRURTO1NtOzA7T047Ozs7O1k7Ozs7OworMkFCRDtTVUJTRVQgV0lUSCBET1Q7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUJFO1NVUEVSU0VUIFdJVEggRE9UO1NtOzA7T047Ozs7O1k7Ozs7OworMkFCRjtTVUJTRVQgV0lUSCBQTFVTIFNJR04gQkVMT1c7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUMwO1NVUEVSU0VUIFdJVEggUExVUyBTSUdOIEJFTE9XO1NtOzA7T047Ozs7O1k7Ozs7OworMkFDMTtTVUJTRVQgV0lUSCBNVUxUSVBMSUNBVElPTiBTSUdOIEJFTE9XO1NtOzA7T047Ozs7O1k7Ozs7OworMkFDMjtTVVBFUlNFVCBXSVRIIE1VTFRJUExJQ0FUSU9OIFNJR04gQkVMT1c7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUMzO1NVQlNFVCBPRiBPUiBFUVVBTCBUTyBXSVRIIERPVCBBQk9WRTtTbTswO09OOzs7OztZOzs7OzsKKzJBQzQ7U1VQRVJTRVQgT0YgT1IgRVFVQUwgVE8gV0lUSCBET1QgQUJPVkU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUM1O1NVQlNFVCBPRiBBQk9WRSBFUVVBTFMgU0lHTjtTbTswO09OOzs7OztZOzs7OzsKKzJBQzY7U1VQRVJTRVQgT0YgQUJPVkUgRVFVQUxTIFNJR047U207MDtPTjs7Ozs7WTs7Ozs7CisyQUM3O1NVQlNFVCBPRiBBQk9WRSBUSUxERSBPUEVSQVRPUjtTbTswO09OOzs7OztZOzs7OzsKKzJBQzg7U1VQRVJTRVQgT0YgQUJPVkUgVElMREUgT1BFUkFUT1I7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUM5O1NVQlNFVCBPRiBBQk9WRSBBTE1PU1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyQUNBO1NVUEVSU0VUIE9GIEFCT1ZFIEFMTU9TVCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzJBQ0I7U1VCU0VUIE9GIEFCT1ZFIE5PVCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzJBQ0M7U1VQRVJTRVQgT0YgQUJPVkUgTk9UIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMkFDRDtTUVVBUkUgTEVGVCBPUEVOIEJPWCBPUEVSQVRPUjtTbTswO09OOzs7OztZOzs7OzsKKzJBQ0U7U1FVQVJFIFJJR0hUIE9QRU4gQk9YIE9QRVJBVE9SO1NtOzA7T047Ozs7O1k7Ozs7OworMkFDRjtDTE9TRUQgU1VCU0VUO1NtOzA7T047Ozs7O1k7Ozs7OworMkFEMDtDTE9TRUQgU1VQRVJTRVQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUQxO0NMT1NFRCBTVUJTRVQgT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyQUQyO0NMT1NFRCBTVVBFUlNFVCBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzJBRDM7U1VCU0VUIEFCT1ZFIFNVUEVSU0VUO1NtOzA7T047Ozs7O1k7Ozs7OworMkFENDtTVVBFUlNFVCBBQk9WRSBTVUJTRVQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUQ1O1NVQlNFVCBBQk9WRSBTVUJTRVQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUQ2O1NVUEVSU0VUIEFCT1ZFIFNVUEVSU0VUO1NtOzA7T047Ozs7O1k7Ozs7OworMkFENztTVVBFUlNFVCBCRVNJREUgU1VCU0VUO1NtOzA7T047Ozs7O047Ozs7OworMkFEODtTVVBFUlNFVCBCRVNJREUgQU5EIEpPSU5FRCBCWSBEQVNIIFdJVEggU1VCU0VUO1NtOzA7T047Ozs7O047Ozs7OworMkFEOTtFTEVNRU5UIE9GIE9QRU5JTkcgRE9XTldBUkRTO1NtOzA7T047Ozs7O047Ozs7OworMkFEQTtQSVRDSEZPUksgV0lUSCBURUUgVE9QO1NtOzA7T047Ozs7O047Ozs7OworMkFEQjtUUkFOU1ZFUlNBTCBJTlRFUlNFQ1RJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyQURDO0ZPUktJTkc7U207MDtPTjsyQUREIDAzMzg7Ozs7WTs7bm90IGluZGVwZW5kZW50Ozs7CisyQUREO05PTkZPUktJTkc7U207MDtPTjs7Ozs7Tjs7aW5kZXBlbmRlbnQ7OzsKKzJBREU7U0hPUlQgTEVGVCBUQUNLO1NtOzA7T047Ozs7O1k7Ozs7OworMkFERjtTSE9SVCBET1dOIFRBQ0s7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQUUwO1NIT1JUIFVQIFRBQ0s7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQUUxO1BFUlBFTkRJQ1VMQVIgV0lUSCBTO1NtOzA7T047Ozs7O047Ozs7OworMkFFMjtWRVJUSUNBTCBCQVIgVFJJUExFIFJJR0hUIFRVUk5TVElMRTtTbTswO09OOzs7OztZOzs7OzsKKzJBRTM7RE9VQkxFIFZFUlRJQ0FMIEJBUiBMRUZUIFRVUk5TVElMRTtTbTswO09OOzs7OztZOzs7OzsKKzJBRTQ7VkVSVElDQUwgQkFSIERPVUJMRSBMRUZUIFRVUk5TVElMRTtTbTswO09OOzs7OztZOzs7OzsKKzJBRTU7RE9VQkxFIFZFUlRJQ0FMIEJBUiBET1VCTEUgTEVGVCBUVVJOU1RJTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUU2O0xPTkcgREFTSCBGUk9NIExFRlQgTUVNQkVSIE9GIERPVUJMRSBWRVJUSUNBTDtTbTswO09OOzs7OztZOzs7OzsKKzJBRTc7U0hPUlQgRE9XTiBUQUNLIFdJVEggT1ZFUkJBUjtTbTswO09OOzs7OztOOzs7OzsKKzJBRTg7U0hPUlQgVVAgVEFDSyBXSVRIIFVOREVSQkFSO1NtOzA7T047Ozs7O047Ozs7OworMkFFOTtTSE9SVCBVUCBUQUNLIEFCT1ZFIFNIT1JUIERPV04gVEFDSztTbTswO09OOzs7OztOOzs7OzsKKzJBRUE7RE9VQkxFIERPV04gVEFDSztTbTswO09OOzs7OztOOzs7OzsKKzJBRUI7RE9VQkxFIFVQIFRBQ0s7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQUVDO0RPVUJMRSBTVFJPS0UgTk9UIFNJR047U207MDtPTjs7Ozs7WTs7Ozs7CisyQUVEO1JFVkVSU0VEIERPVUJMRSBTVFJPS0UgTk9UIFNJR047U207MDtPTjs7Ozs7WTs7Ozs7CisyQUVFO0RPRVMgTk9UIERJVklERSBXSVRIIFJFVkVSU0VEIE5FR0FUSU9OIFNMQVNIO1NtOzA7T047Ozs7O1k7Ozs7OworMkFFRjtWRVJUSUNBTCBMSU5FIFdJVEggQ0lSQ0xFIEFCT1ZFO1NtOzA7T047Ozs7O047Ozs7OworMkFGMDtWRVJUSUNBTCBMSU5FIFdJVEggQ0lSQ0xFIEJFTE9XO1NtOzA7T047Ozs7O047Ozs7OworMkFGMTtET1dOIFRBQ0sgV0lUSCBDSVJDTEUgQkVMT1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQUYyO1BBUkFMTEVMIFdJVEggSE9SSVpPTlRBTCBTVFJPS0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQUYzO1BBUkFMTEVMIFdJVEggVElMREUgT1BFUkFUT1I7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUY0O1RSSVBMRSBWRVJUSUNBTCBCQVIgQklOQVJZIFJFTEFUSU9OO1NtOzA7T047Ozs7O047Ozs7OworMkFGNTtUUklQTEUgVkVSVElDQUwgQkFSIFdJVEggSE9SSVpPTlRBTCBTVFJPS0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQUY2O1RSSVBMRSBDT0xPTiBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzJBRjc7VFJJUExFIE5FU1RFRCBMRVNTLVRIQU47U207MDtPTjs7Ozs7WTs7Ozs7CisyQUY4O1RSSVBMRSBORVNURUQgR1JFQVRFUi1USEFOO1NtOzA7T047Ozs7O1k7Ozs7OworMkFGOTtET1VCTEUtTElORSBTTEFOVEVEIExFU1MtVEhBTiBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzJBRkE7RE9VQkxFLUxJTkUgU0xBTlRFRCBHUkVBVEVSLVRIQU4gT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyQUZCO1RSSVBMRSBTT0xJRFVTIEJJTkFSWSBSRUxBVElPTjtTbTswO09OOzs7OztZOzs7OzsKKzJBRkM7TEFSR0UgVFJJUExFIFZFUlRJQ0FMIEJBUiBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzJBRkQ7RE9VQkxFIFNPTElEVVMgT1BFUkFUT1I7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUZFO1dISVRFIFZFUlRJQ0FMIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzJBRkY7Ti1BUlkgV0hJVEUgVkVSVElDQUwgQkFSO1NtOzA7T047Ozs7O047Ozs7OworMkU4MDtDSksgUkFESUNBTCBSRVBFQVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTgxO0NKSyBSQURJQ0FMIENMSUZGO1NvOzA7T047Ozs7O047Ozs7OworMkU4MjtDSksgUkFESUNBTCBTRUNPTkQgT05FO1NvOzA7T047Ozs7O047Ozs7OworMkU4MztDSksgUkFESUNBTCBTRUNPTkQgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkU4NDtDSksgUkFESUNBTCBTRUNPTkQgVEhSRUU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTg1O0NKSyBSQURJQ0FMIFBFUlNPTjtTbzswO09OOzs7OztOOzs7OzsKKzJFODY7Q0pLIFJBRElDQUwgQk9YO1NvOzA7T047Ozs7O047Ozs7OworMkU4NztDSksgUkFESUNBTCBUQUJMRTtTbzswO09OOzs7OztOOzs7OzsKKzJFODg7Q0pLIFJBRElDQUwgS05JRkUgT05FO1NvOzA7T047Ozs7O047Ozs7OworMkU4OTtDSksgUkFESUNBTCBLTklGRSBUV087U287MDtPTjs7Ozs7Tjs7Ozs7CisyRThBO0NKSyBSQURJQ0FMIERJVklOQVRJT047U287MDtPTjs7Ozs7Tjs7Ozs7CisyRThCO0NKSyBSQURJQ0FMIFNFQUw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRThDO0NKSyBSQURJQ0FMIFNNQUxMIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFOEQ7Q0pLIFJBRElDQUwgU01BTEwgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkU4RTtDSksgUkFESUNBTCBMQU1FIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFOEY7Q0pLIFJBRElDQUwgTEFNRSBUV087U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTkwO0NKSyBSQURJQ0FMIExBTUUgVEhSRUU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTkxO0NKSyBSQURJQ0FMIExBTUUgRk9VUjtTbzswO09OOzs7OztOOzs7OzsKKzJFOTI7Q0pLIFJBRElDQUwgU05BS0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTkzO0NKSyBSQURJQ0FMIFRIUkVBRDtTbzswO09OOzs7OztOOzs7OzsKKzJFOTQ7Q0pLIFJBRElDQUwgU05PVVQgT05FO1NvOzA7T047Ozs7O047Ozs7OworMkU5NTtDSksgUkFESUNBTCBTTk9VVCBUV087U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTk2O0NKSyBSQURJQ0FMIEhFQVJUIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFOTc7Q0pLIFJBRElDQUwgSEVBUlQgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkU5ODtDSksgUkFESUNBTCBIQU5EO1NvOzA7T047Ozs7O047Ozs7OworMkU5OTtDSksgUkFESUNBTCBSQVA7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTlCO0NKSyBSQURJQ0FMIENIT0tFO1NvOzA7T047Ozs7O047Ozs7OworMkU5QztDSksgUkFESUNBTCBTVU47U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTlEO0NKSyBSQURJQ0FMIE1PT047U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTlFO0NKSyBSQURJQ0FMIERFQVRIO1NvOzA7T047Ozs7O047Ozs7OworMkU5RjtDSksgUkFESUNBTCBNT1RIRVI7U287MDtPTjs8Y29tcGF0PiA2QkNEOzs7O047Ozs7OworMkVBMDtDSksgUkFESUNBTCBDSVZJTElBTjtTbzswO09OOzs7OztOOzs7OzsKKzJFQTE7Q0pLIFJBRElDQUwgV0FURVIgT05FO1NvOzA7T047Ozs7O047Ozs7OworMkVBMjtDSksgUkFESUNBTCBXQVRFUiBUV087U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUEzO0NKSyBSQURJQ0FMIEZJUkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUE0O0NKSyBSQURJQ0FMIFBBVyBPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUE1O0NKSyBSQURJQ0FMIFBBVyBUV087U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUE2O0NKSyBSQURJQ0FMIFNJTVBMSUZJRUQgSEFMRiBUUkVFIFRSVU5LO1NvOzA7T047Ozs7O047Ozs7OworMkVBNztDSksgUkFESUNBTCBDT1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUE4O0NKSyBSQURJQ0FMIERPRztTbzswO09OOzs7OztOOzs7OzsKKzJFQTk7Q0pLIFJBRElDQUwgSkFERTtTbzswO09OOzs7OztOOzs7OzsKKzJFQUE7Q0pLIFJBRElDQUwgQk9MVCBPRiBDTE9USDtTbzswO09OOzs7OztOOzs7OzsKKzJFQUI7Q0pLIFJBRElDQUwgRVlFO1NvOzA7T047Ozs7O047Ozs7OworMkVBQztDSksgUkFESUNBTCBTUElSSVQgT05FO1NvOzA7T047Ozs7O047Ozs7OworMkVBRDtDSksgUkFESUNBTCBTUElSSVQgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkVBRTtDSksgUkFESUNBTCBCQU1CT087U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUFGO0NKSyBSQURJQ0FMIFNJTEs7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUIwO0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBTSUxLO1NvOzA7T047Ozs7O047Ozs7OworMkVCMTtDSksgUkFESUNBTCBORVQgT05FO1NvOzA7T047Ozs7O047Ozs7OworMkVCMjtDSksgUkFESUNBTCBORVQgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkVCMztDSksgUkFESUNBTCBORVQgVEhSRUU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUI0O0NKSyBSQURJQ0FMIE5FVCBGT1VSO1NvOzA7T047Ozs7O047Ozs7OworMkVCNTtDSksgUkFESUNBTCBNRVNIO1NvOzA7T047Ozs7O047Ozs7OworMkVCNjtDSksgUkFESUNBTCBTSEVFUDtTbzswO09OOzs7OztOOzs7OzsKKzJFQjc7Q0pLIFJBRElDQUwgUkFNO1NvOzA7T047Ozs7O047Ozs7OworMkVCODtDSksgUkFESUNBTCBFV0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUI5O0NKSyBSQURJQ0FMIE9MRDtTbzswO09OOzs7OztOOzs7OzsKKzJFQkE7Q0pLIFJBRElDQUwgQlJVU0ggT05FO1NvOzA7T047Ozs7O047Ozs7OworMkVCQjtDSksgUkFESUNBTCBCUlVTSCBUV087U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUJDO0NKSyBSQURJQ0FMIE1FQVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUJEO0NKSyBSQURJQ0FMIE1PUlRBUjtTbzswO09OOzs7OztOOzs7OzsKKzJFQkU7Q0pLIFJBRElDQUwgR1JBU1MgT05FO1NvOzA7T047Ozs7O047Ozs7OworMkVCRjtDSksgUkFESUNBTCBHUkFTUyBUV087U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUMwO0NKSyBSQURJQ0FMIEdSQVNTIFRIUkVFO1NvOzA7T047Ozs7O047Ozs7OworMkVDMTtDSksgUkFESUNBTCBUSUdFUjtTbzswO09OOzs7OztOOzs7OzsKKzJFQzI7Q0pLIFJBRElDQUwgQ0xPVEhFUztTbzswO09OOzs7OztOOzs7OzsKKzJFQzM7Q0pLIFJBRElDQUwgV0VTVCBPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUM0O0NKSyBSQURJQ0FMIFdFU1QgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkVDNTtDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgU0VFO1NvOzA7T047Ozs7O047Ozs7OworMkVDNjtDSksgUkFESUNBTCBTSU1QTElGSUVEIEhPUk47U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUM3O0NKSyBSQURJQ0FMIEhPUk47U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUM4O0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBTUEVFQ0g7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUM5O0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBTSEVMTDtTbzswO09OOzs7OztOOzs7OzsKKzJFQ0E7Q0pLIFJBRElDQUwgRk9PVDtTbzswO09OOzs7OztOOzs7OzsKKzJFQ0I7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIENBUlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUNDO0NKSyBSQURJQ0FMIFNJTVBMSUZJRUQgV0FMSztTbzswO09OOzs7OztOOzs7OzsKKzJFQ0Q7Q0pLIFJBRElDQUwgV0FMSyBPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUNFO0NKSyBSQURJQ0FMIFdBTEsgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkVDRjtDSksgUkFESUNBTCBDSVRZO1NvOzA7T047Ozs7O047Ozs7OworMkVEMDtDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgR09MRDtTbzswO09OOzs7OztOOzs7OzsKKzJFRDE7Q0pLIFJBRElDQUwgTE9ORyBPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUQyO0NKSyBSQURJQ0FMIExPTkcgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkVEMztDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgTE9ORztTbzswO09OOzs7OztOOzs7OzsKKzJFRDQ7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIEdBVEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUQ1O0NKSyBSQURJQ0FMIE1PVU5EIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFRDY7Q0pLIFJBRElDQUwgTU9VTkQgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkVENztDSksgUkFESUNBTCBSQUlOO1NvOzA7T047Ozs7O047Ozs7OworMkVEODtDSksgUkFESUNBTCBCTFVFO1NvOzA7T047Ozs7O047Ozs7OworMkVEOTtDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgVEFOTkVEIExFQVRIRVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRURBO0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBMRUFGO1NvOzA7T047Ozs7O047Ozs7OworMkVEQjtDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgV0lORDtTbzswO09OOzs7OztOOzs7OzsKKzJFREM7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIEZMWTtTbzswO09OOzs7OztOOzs7OzsKKzJFREQ7Q0pLIFJBRElDQUwgRUFUIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFREU7Q0pLIFJBRElDQUwgRUFUIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzJFREY7Q0pLIFJBRElDQUwgRUFUIFRIUkVFO1NvOzA7T047Ozs7O047Ozs7OworMkVFMDtDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgRUFUO1NvOzA7T047Ozs7O047Ozs7OworMkVFMTtDSksgUkFESUNBTCBIRUFEO1NvOzA7T047Ozs7O047Ozs7OworMkVFMjtDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgSE9SU0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUUzO0NKSyBSQURJQ0FMIEJPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUU0O0NKSyBSQURJQ0FMIEdIT1NUO1NvOzA7T047Ozs7O047Ozs7OworMkVFNTtDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgRklTSDtTbzswO09OOzs7OztOOzs7OzsKKzJFRTY7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIEJJUkQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUU3O0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBTQUxUO1NvOzA7T047Ozs7O047Ozs7OworMkVFODtDSksgUkFESUNBTCBTSU1QTElGSUVEIFdIRUFUO1NvOzA7T047Ozs7O047Ozs7OworMkVFOTtDSksgUkFESUNBTCBTSU1QTElGSUVEIFlFTExPVztTbzswO09OOzs7OztOOzs7OzsKKzJFRUE7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIEZST0c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUVCO0NKSyBSQURJQ0FMIEotU0lNUExJRklFRCBFVkVOO1NvOzA7T047Ozs7O047Ozs7OworMkVFQztDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgRVZFTjtTbzswO09OOzs7OztOOzs7OzsKKzJFRUQ7Q0pLIFJBRElDQUwgSi1TSU1QTElGSUVEIFRPT1RIO1NvOzA7T047Ozs7O047Ozs7OworMkVFRTtDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgVE9PVEg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUVGO0NKSyBSQURJQ0FMIEotU0lNUExJRklFRCBEUkFHT047U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUYwO0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBEUkFHT047U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUYxO0NKSyBSQURJQ0FMIFRVUlRMRTtTbzswO09OOzs7OztOOzs7OzsKKzJFRjI7Q0pLIFJBRElDQUwgSi1TSU1QTElGSUVEIFRVUlRMRTtTbzswO09OOzs7OztOOzs7OzsKKzJFRjM7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIFRVUlRMRTtTbzswO09OOzxjb21wYXQ+IDlGOUY7Ozs7Tjs7Ozs7CisyRjAwO0tBTkdYSSBSQURJQ0FMIE9ORTtTbzswO09OOzxjb21wYXQ+IDRFMDA7Ozs7Tjs7Ozs7CisyRjAxO0tBTkdYSSBSQURJQ0FMIExJTkU7U287MDtPTjs8Y29tcGF0PiA0RTI4Ozs7O047Ozs7OworMkYwMjtLQU5HWEkgUkFESUNBTCBET1Q7U287MDtPTjs8Y29tcGF0PiA0RTM2Ozs7O047Ozs7OworMkYwMztLQU5HWEkgUkFESUNBTCBTTEFTSDtTbzswO09OOzxjb21wYXQ+IDRFM0Y7Ozs7Tjs7Ozs7CisyRjA0O0tBTkdYSSBSQURJQ0FMIFNFQ09ORDtTbzswO09OOzxjb21wYXQ+IDRFNTk7Ozs7Tjs7Ozs7CisyRjA1O0tBTkdYSSBSQURJQ0FMIEhPT0s7U287MDtPTjs8Y29tcGF0PiA0RTg1Ozs7O047Ozs7OworMkYwNjtLQU5HWEkgUkFESUNBTCBUV087U287MDtPTjs8Y29tcGF0PiA0RThDOzs7O047Ozs7OworMkYwNztLQU5HWEkgUkFESUNBTCBMSUQ7U287MDtPTjs8Y29tcGF0PiA0RUEwOzs7O047Ozs7OworMkYwODtLQU5HWEkgUkFESUNBTCBNQU47U287MDtPTjs8Y29tcGF0PiA0RUJBOzs7O047Ozs7OworMkYwOTtLQU5HWEkgUkFESUNBTCBMRUdTO1NvOzA7T047PGNvbXBhdD4gNTEzRjs7OztOOzs7OzsKKzJGMEE7S0FOR1hJIFJBRElDQUwgRU5URVI7U287MDtPTjs8Y29tcGF0PiA1MTY1Ozs7O047Ozs7OworMkYwQjtLQU5HWEkgUkFESUNBTCBFSUdIVDtTbzswO09OOzxjb21wYXQ+IDUxNkI7Ozs7Tjs7Ozs7CisyRjBDO0tBTkdYSSBSQURJQ0FMIERPV04gQk9YO1NvOzA7T047PGNvbXBhdD4gNTE4Mjs7OztOOzs7OzsKKzJGMEQ7S0FOR1hJIFJBRElDQUwgQ09WRVI7U287MDtPTjs8Y29tcGF0PiA1MTk2Ozs7O047Ozs7OworMkYwRTtLQU5HWEkgUkFESUNBTCBJQ0U7U287MDtPTjs8Y29tcGF0PiA1MUFCOzs7O047Ozs7OworMkYwRjtLQU5HWEkgUkFESUNBTCBUQUJMRTtTbzswO09OOzxjb21wYXQ+IDUxRTA7Ozs7Tjs7Ozs7CisyRjEwO0tBTkdYSSBSQURJQ0FMIE9QRU4gQk9YO1NvOzA7T047PGNvbXBhdD4gNTFGNTs7OztOOzs7OzsKKzJGMTE7S0FOR1hJIFJBRElDQUwgS05JRkU7U287MDtPTjs8Y29tcGF0PiA1MjAwOzs7O047Ozs7OworMkYxMjtLQU5HWEkgUkFESUNBTCBQT1dFUjtTbzswO09OOzxjb21wYXQ+IDUyOUI7Ozs7Tjs7Ozs7CisyRjEzO0tBTkdYSSBSQURJQ0FMIFdSQVA7U287MDtPTjs8Y29tcGF0PiA1MkY5Ozs7O047Ozs7OworMkYxNDtLQU5HWEkgUkFESUNBTCBTUE9PTjtTbzswO09OOzxjb21wYXQ+IDUzMTU7Ozs7Tjs7Ozs7CisyRjE1O0tBTkdYSSBSQURJQ0FMIFJJR0hUIE9QRU4gQk9YO1NvOzA7T047PGNvbXBhdD4gNTMxQTs7OztOOzs7OzsKKzJGMTY7S0FOR1hJIFJBRElDQUwgSElESU5HIEVOQ0xPU1VSRTtTbzswO09OOzxjb21wYXQ+IDUzMzg7Ozs7Tjs7Ozs7CisyRjE3O0tBTkdYSSBSQURJQ0FMIFRFTjtTbzswO09OOzxjb21wYXQ+IDUzNDE7Ozs7Tjs7Ozs7CisyRjE4O0tBTkdYSSBSQURJQ0FMIERJVklOQVRJT047U287MDtPTjs8Y29tcGF0PiA1MzVDOzs7O047Ozs7OworMkYxOTtLQU5HWEkgUkFESUNBTCBTRUFMO1NvOzA7T047PGNvbXBhdD4gNTM2OTs7OztOOzs7OzsKKzJGMUE7S0FOR1hJIFJBRElDQUwgQ0xJRkY7U287MDtPTjs8Y29tcGF0PiA1MzgyOzs7O047Ozs7OworMkYxQjtLQU5HWEkgUkFESUNBTCBQUklWQVRFO1NvOzA7T047PGNvbXBhdD4gNTNCNjs7OztOOzs7OzsKKzJGMUM7S0FOR1hJIFJBRElDQUwgQUdBSU47U287MDtPTjs8Y29tcGF0PiA1M0M4Ozs7O047Ozs7OworMkYxRDtLQU5HWEkgUkFESUNBTCBNT1VUSDtTbzswO09OOzxjb21wYXQ+IDUzRTM7Ozs7Tjs7Ozs7CisyRjFFO0tBTkdYSSBSQURJQ0FMIEVOQ0xPU1VSRTtTbzswO09OOzxjb21wYXQ+IDU2RDc7Ozs7Tjs7Ozs7CisyRjFGO0tBTkdYSSBSQURJQ0FMIEVBUlRIO1NvOzA7T047PGNvbXBhdD4gNTcxRjs7OztOOzs7OzsKKzJGMjA7S0FOR1hJIFJBRElDQUwgU0NIT0xBUjtTbzswO09OOzxjb21wYXQ+IDU4RUI7Ozs7Tjs7Ozs7CisyRjIxO0tBTkdYSSBSQURJQ0FMIEdPO1NvOzA7T047PGNvbXBhdD4gNTkwMjs7OztOOzs7OzsKKzJGMjI7S0FOR1hJIFJBRElDQUwgR08gU0xPV0xZO1NvOzA7T047PGNvbXBhdD4gNTkwQTs7OztOOzs7OzsKKzJGMjM7S0FOR1hJIFJBRElDQUwgRVZFTklORztTbzswO09OOzxjb21wYXQ+IDU5MTU7Ozs7Tjs7Ozs7CisyRjI0O0tBTkdYSSBSQURJQ0FMIEJJRztTbzswO09OOzxjb21wYXQ+IDU5Mjc7Ozs7Tjs7Ozs7CisyRjI1O0tBTkdYSSBSQURJQ0FMIFdPTUFOO1NvOzA7T047PGNvbXBhdD4gNTk3Mzs7OztOOzs7OzsKKzJGMjY7S0FOR1hJIFJBRElDQUwgQ0hJTEQ7U287MDtPTjs8Y29tcGF0PiA1QjUwOzs7O047Ozs7OworMkYyNztLQU5HWEkgUkFESUNBTCBST09GO1NvOzA7T047PGNvbXBhdD4gNUI4MDs7OztOOzs7OzsKKzJGMjg7S0FOR1hJIFJBRElDQUwgSU5DSDtTbzswO09OOzxjb21wYXQ+IDVCRjg7Ozs7Tjs7Ozs7CisyRjI5O0tBTkdYSSBSQURJQ0FMIFNNQUxMO1NvOzA7T047PGNvbXBhdD4gNUMwRjs7OztOOzs7OzsKKzJGMkE7S0FOR1hJIFJBRElDQUwgTEFNRTtTbzswO09OOzxjb21wYXQ+IDVDMjI7Ozs7Tjs7Ozs7CisyRjJCO0tBTkdYSSBSQURJQ0FMIENPUlBTRTtTbzswO09OOzxjb21wYXQ+IDVDMzg7Ozs7Tjs7Ozs7CisyRjJDO0tBTkdYSSBSQURJQ0FMIFNQUk9VVDtTbzswO09OOzxjb21wYXQ+IDVDNkU7Ozs7Tjs7Ozs7CisyRjJEO0tBTkdYSSBSQURJQ0FMIE1PVU5UQUlOO1NvOzA7T047PGNvbXBhdD4gNUM3MTs7OztOOzs7OzsKKzJGMkU7S0FOR1hJIFJBRElDQUwgUklWRVI7U287MDtPTjs8Y29tcGF0PiA1RERCOzs7O047Ozs7OworMkYyRjtLQU5HWEkgUkFESUNBTCBXT1JLO1NvOzA7T047PGNvbXBhdD4gNURFNTs7OztOOzs7OzsKKzJGMzA7S0FOR1hJIFJBRElDQUwgT05FU0VMRjtTbzswO09OOzxjb21wYXQ+IDVERjE7Ozs7Tjs7Ozs7CisyRjMxO0tBTkdYSSBSQURJQ0FMIFRVUkJBTjtTbzswO09OOzxjb21wYXQ+IDVERkU7Ozs7Tjs7Ozs7CisyRjMyO0tBTkdYSSBSQURJQ0FMIERSWTtTbzswO09OOzxjb21wYXQ+IDVFNzI7Ozs7Tjs7Ozs7CisyRjMzO0tBTkdYSSBSQURJQ0FMIFNIT1JUIFRIUkVBRDtTbzswO09OOzxjb21wYXQ+IDVFN0E7Ozs7Tjs7Ozs7CisyRjM0O0tBTkdYSSBSQURJQ0FMIERPVFRFRCBDTElGRjtTbzswO09OOzxjb21wYXQ+IDVFN0Y7Ozs7Tjs7Ozs7CisyRjM1O0tBTkdYSSBSQURJQ0FMIExPTkcgU1RSSURFO1NvOzA7T047PGNvbXBhdD4gNUVGNDs7OztOOzs7OzsKKzJGMzY7S0FOR1hJIFJBRElDQUwgVFdPIEhBTkRTO1NvOzA7T047PGNvbXBhdD4gNUVGRTs7OztOOzs7OzsKKzJGMzc7S0FOR1hJIFJBRElDQUwgU0hPT1Q7U287MDtPTjs8Y29tcGF0PiA1RjBCOzs7O047Ozs7OworMkYzODtLQU5HWEkgUkFESUNBTCBCT1c7U287MDtPTjs8Y29tcGF0PiA1RjEzOzs7O047Ozs7OworMkYzOTtLQU5HWEkgUkFESUNBTCBTTk9VVDtTbzswO09OOzxjb21wYXQ+IDVGNTA7Ozs7Tjs7Ozs7CisyRjNBO0tBTkdYSSBSQURJQ0FMIEJSSVNUTEU7U287MDtPTjs8Y29tcGF0PiA1RjYxOzs7O047Ozs7OworMkYzQjtLQU5HWEkgUkFESUNBTCBTVEVQO1NvOzA7T047PGNvbXBhdD4gNUY3Mzs7OztOOzs7OzsKKzJGM0M7S0FOR1hJIFJBRElDQUwgSEVBUlQ7U287MDtPTjs8Y29tcGF0PiA1RkMzOzs7O047Ozs7OworMkYzRDtLQU5HWEkgUkFESUNBTCBIQUxCRVJEO1NvOzA7T047PGNvbXBhdD4gNjIwODs7OztOOzs7OzsKKzJGM0U7S0FOR1hJIFJBRElDQUwgRE9PUjtTbzswO09OOzxjb21wYXQ+IDYyMzY7Ozs7Tjs7Ozs7CisyRjNGO0tBTkdYSSBSQURJQ0FMIEhBTkQ7U287MDtPTjs8Y29tcGF0PiA2MjRCOzs7O047Ozs7OworMkY0MDtLQU5HWEkgUkFESUNBTCBCUkFOQ0g7U287MDtPTjs8Y29tcGF0PiA2NTJGOzs7O047Ozs7OworMkY0MTtLQU5HWEkgUkFESUNBTCBSQVA7U287MDtPTjs8Y29tcGF0PiA2NTM0Ozs7O047Ozs7OworMkY0MjtLQU5HWEkgUkFESUNBTCBTQ1JJUFQ7U287MDtPTjs8Y29tcGF0PiA2NTg3Ozs7O047Ozs7OworMkY0MztLQU5HWEkgUkFESUNBTCBESVBQRVI7U287MDtPTjs8Y29tcGF0PiA2NTk3Ozs7O047Ozs7OworMkY0NDtLQU5HWEkgUkFESUNBTCBBWEU7U287MDtPTjs8Y29tcGF0PiA2NUE0Ozs7O047Ozs7OworMkY0NTtLQU5HWEkgUkFESUNBTCBTUVVBUkU7U287MDtPTjs8Y29tcGF0PiA2NUI5Ozs7O047Ozs7OworMkY0NjtLQU5HWEkgUkFESUNBTCBOT1Q7U287MDtPTjs8Y29tcGF0PiA2NUUwOzs7O047Ozs7OworMkY0NztLQU5HWEkgUkFESUNBTCBTVU47U287MDtPTjs8Y29tcGF0PiA2NUU1Ozs7O047Ozs7OworMkY0ODtLQU5HWEkgUkFESUNBTCBTQVk7U287MDtPTjs8Y29tcGF0PiA2NkYwOzs7O047Ozs7OworMkY0OTtLQU5HWEkgUkFESUNBTCBNT09OO1NvOzA7T047PGNvbXBhdD4gNjcwODs7OztOOzs7OzsKKzJGNEE7S0FOR1hJIFJBRElDQUwgVFJFRTtTbzswO09OOzxjb21wYXQ+IDY3Mjg7Ozs7Tjs7Ozs7CisyRjRCO0tBTkdYSSBSQURJQ0FMIExBQ0s7U287MDtPTjs8Y29tcGF0PiA2QjIwOzs7O047Ozs7OworMkY0QztLQU5HWEkgUkFESUNBTCBTVE9QO1NvOzA7T047PGNvbXBhdD4gNkI2Mjs7OztOOzs7OzsKKzJGNEQ7S0FOR1hJIFJBRElDQUwgREVBVEg7U287MDtPTjs8Y29tcGF0PiA2Qjc5Ozs7O047Ozs7OworMkY0RTtLQU5HWEkgUkFESUNBTCBXRUFQT047U287MDtPTjs8Y29tcGF0PiA2QkIzOzs7O047Ozs7OworMkY0RjtLQU5HWEkgUkFESUNBTCBETyBOT1Q7U287MDtPTjs8Y29tcGF0PiA2QkNCOzs7O047Ozs7OworMkY1MDtLQU5HWEkgUkFESUNBTCBDT01QQVJFO1NvOzA7T047PGNvbXBhdD4gNkJENDs7OztOOzs7OzsKKzJGNTE7S0FOR1hJIFJBRElDQUwgRlVSO1NvOzA7T047PGNvbXBhdD4gNkJEQjs7OztOOzs7OzsKKzJGNTI7S0FOR1hJIFJBRElDQUwgQ0xBTjtTbzswO09OOzxjb21wYXQ+IDZDMEY7Ozs7Tjs7Ozs7CisyRjUzO0tBTkdYSSBSQURJQ0FMIFNURUFNO1NvOzA7T047PGNvbXBhdD4gNkMxNDs7OztOOzs7OzsKKzJGNTQ7S0FOR1hJIFJBRElDQUwgV0FURVI7U287MDtPTjs8Y29tcGF0PiA2QzM0Ozs7O047Ozs7OworMkY1NTtLQU5HWEkgUkFESUNBTCBGSVJFO1NvOzA7T047PGNvbXBhdD4gNzA2Qjs7OztOOzs7OzsKKzJGNTY7S0FOR1hJIFJBRElDQUwgQ0xBVztTbzswO09OOzxjb21wYXQ+IDcyMkE7Ozs7Tjs7Ozs7CisyRjU3O0tBTkdYSSBSQURJQ0FMIEZBVEhFUjtTbzswO09OOzxjb21wYXQ+IDcyMzY7Ozs7Tjs7Ozs7CisyRjU4O0tBTkdYSSBSQURJQ0FMIERPVUJMRSBYO1NvOzA7T047PGNvbXBhdD4gNzIzQjs7OztOOzs7OzsKKzJGNTk7S0FOR1hJIFJBRElDQUwgSEFMRiBUUkVFIFRSVU5LO1NvOzA7T047PGNvbXBhdD4gNzIzRjs7OztOOzs7OzsKKzJGNUE7S0FOR1hJIFJBRElDQUwgU0xJQ0U7U287MDtPTjs8Y29tcGF0PiA3MjQ3Ozs7O047Ozs7OworMkY1QjtLQU5HWEkgUkFESUNBTCBGQU5HO1NvOzA7T047PGNvbXBhdD4gNzI1OTs7OztOOzs7OzsKKzJGNUM7S0FOR1hJIFJBRElDQUwgQ09XO1NvOzA7T047PGNvbXBhdD4gNzI1Qjs7OztOOzs7OzsKKzJGNUQ7S0FOR1hJIFJBRElDQUwgRE9HO1NvOzA7T047PGNvbXBhdD4gNzJBQzs7OztOOzs7OzsKKzJGNUU7S0FOR1hJIFJBRElDQUwgUFJPRk9VTkQ7U287MDtPTjs8Y29tcGF0PiA3Mzg0Ozs7O047Ozs7OworMkY1RjtLQU5HWEkgUkFESUNBTCBKQURFO1NvOzA7T047PGNvbXBhdD4gNzM4OTs7OztOOzs7OzsKKzJGNjA7S0FOR1hJIFJBRElDQUwgTUVMT047U287MDtPTjs8Y29tcGF0PiA3NERDOzs7O047Ozs7OworMkY2MTtLQU5HWEkgUkFESUNBTCBUSUxFO1NvOzA7T047PGNvbXBhdD4gNzRFNjs7OztOOzs7OzsKKzJGNjI7S0FOR1hJIFJBRElDQUwgU1dFRVQ7U287MDtPTjs8Y29tcGF0PiA3NTE4Ozs7O047Ozs7OworMkY2MztLQU5HWEkgUkFESUNBTCBMSUZFO1NvOzA7T047PGNvbXBhdD4gNzUxRjs7OztOOzs7OzsKKzJGNjQ7S0FOR1hJIFJBRElDQUwgVVNFO1NvOzA7T047PGNvbXBhdD4gNzUyODs7OztOOzs7OzsKKzJGNjU7S0FOR1hJIFJBRElDQUwgRklFTEQ7U287MDtPTjs8Y29tcGF0PiA3NTMwOzs7O047Ozs7OworMkY2NjtLQU5HWEkgUkFESUNBTCBCT0xUIE9GIENMT1RIO1NvOzA7T047PGNvbXBhdD4gNzU4Qjs7OztOOzs7OzsKKzJGNjc7S0FOR1hJIFJBRElDQUwgU0lDS05FU1M7U287MDtPTjs8Y29tcGF0PiA3NTkyOzs7O047Ozs7OworMkY2ODtLQU5HWEkgUkFESUNBTCBET1RURUQgVEVOVDtTbzswO09OOzxjb21wYXQ+IDc2NzY7Ozs7Tjs7Ozs7CisyRjY5O0tBTkdYSSBSQURJQ0FMIFdISVRFO1NvOzA7T047PGNvbXBhdD4gNzY3RDs7OztOOzs7OzsKKzJGNkE7S0FOR1hJIFJBRElDQUwgU0tJTjtTbzswO09OOzxjb21wYXQ+IDc2QUU7Ozs7Tjs7Ozs7CisyRjZCO0tBTkdYSSBSQURJQ0FMIERJU0g7U287MDtPTjs8Y29tcGF0PiA3NkJGOzs7O047Ozs7OworMkY2QztLQU5HWEkgUkFESUNBTCBFWUU7U287MDtPTjs8Y29tcGF0PiA3NkVFOzs7O047Ozs7OworMkY2RDtLQU5HWEkgUkFESUNBTCBTUEVBUjtTbzswO09OOzxjb21wYXQ+IDc3REI7Ozs7Tjs7Ozs7CisyRjZFO0tBTkdYSSBSQURJQ0FMIEFSUk9XO1NvOzA7T047PGNvbXBhdD4gNzdFMjs7OztOOzs7OzsKKzJGNkY7S0FOR1hJIFJBRElDQUwgU1RPTkU7U287MDtPTjs8Y29tcGF0PiA3N0YzOzs7O047Ozs7OworMkY3MDtLQU5HWEkgUkFESUNBTCBTUElSSVQ7U287MDtPTjs8Y29tcGF0PiA3OTNBOzs7O047Ozs7OworMkY3MTtLQU5HWEkgUkFESUNBTCBUUkFDSztTbzswO09OOzxjb21wYXQ+IDc5Qjg7Ozs7Tjs7Ozs7CisyRjcyO0tBTkdYSSBSQURJQ0FMIEdSQUlOO1NvOzA7T047PGNvbXBhdD4gNzlCRTs7OztOOzs7OzsKKzJGNzM7S0FOR1hJIFJBRElDQUwgQ0FWRTtTbzswO09OOzxjb21wYXQ+IDdBNzQ7Ozs7Tjs7Ozs7CisyRjc0O0tBTkdYSSBSQURJQ0FMIFNUQU5EO1NvOzA7T047PGNvbXBhdD4gN0FDQjs7OztOOzs7OzsKKzJGNzU7S0FOR1hJIFJBRElDQUwgQkFNQk9PO1NvOzA7T047PGNvbXBhdD4gN0FGOTs7OztOOzs7OzsKKzJGNzY7S0FOR1hJIFJBRElDQUwgUklDRTtTbzswO09OOzxjb21wYXQ+IDdDNzM7Ozs7Tjs7Ozs7CisyRjc3O0tBTkdYSSBSQURJQ0FMIFNJTEs7U287MDtPTjs8Y29tcGF0PiA3Q0Y4Ozs7O047Ozs7OworMkY3ODtLQU5HWEkgUkFESUNBTCBKQVI7U287MDtPTjs8Y29tcGF0PiA3RjM2Ozs7O047Ozs7OworMkY3OTtLQU5HWEkgUkFESUNBTCBORVQ7U287MDtPTjs8Y29tcGF0PiA3RjUxOzs7O047Ozs7OworMkY3QTtLQU5HWEkgUkFESUNBTCBTSEVFUDtTbzswO09OOzxjb21wYXQ+IDdGOEE7Ozs7Tjs7Ozs7CisyRjdCO0tBTkdYSSBSQURJQ0FMIEZFQVRIRVI7U287MDtPTjs8Y29tcGF0PiA3RkJEOzs7O047Ozs7OworMkY3QztLQU5HWEkgUkFESUNBTCBPTEQ7U287MDtPTjs8Y29tcGF0PiA4MDAxOzs7O047Ozs7OworMkY3RDtLQU5HWEkgUkFESUNBTCBBTkQ7U287MDtPTjs8Y29tcGF0PiA4MDBDOzs7O047Ozs7OworMkY3RTtLQU5HWEkgUkFESUNBTCBQTE9XO1NvOzA7T047PGNvbXBhdD4gODAxMjs7OztOOzs7OzsKKzJGN0Y7S0FOR1hJIFJBRElDQUwgRUFSO1NvOzA7T047PGNvbXBhdD4gODAzMzs7OztOOzs7OzsKKzJGODA7S0FOR1hJIFJBRElDQUwgQlJVU0g7U287MDtPTjs8Y29tcGF0PiA4MDdGOzs7O047Ozs7OworMkY4MTtLQU5HWEkgUkFESUNBTCBNRUFUO1NvOzA7T047PGNvbXBhdD4gODA4OTs7OztOOzs7OzsKKzJGODI7S0FOR1hJIFJBRElDQUwgTUlOSVNURVI7U287MDtPTjs8Y29tcGF0PiA4MUUzOzs7O047Ozs7OworMkY4MztLQU5HWEkgUkFESUNBTCBTRUxGO1NvOzA7T047PGNvbXBhdD4gODFFQTs7OztOOzs7OzsKKzJGODQ7S0FOR1hJIFJBRElDQUwgQVJSSVZFO1NvOzA7T047PGNvbXBhdD4gODFGMzs7OztOOzs7OzsKKzJGODU7S0FOR1hJIFJBRElDQUwgTU9SVEFSO1NvOzA7T047PGNvbXBhdD4gODFGQzs7OztOOzs7OzsKKzJGODY7S0FOR1hJIFJBRElDQUwgVE9OR1VFO1NvOzA7T047PGNvbXBhdD4gODIwQzs7OztOOzs7OzsKKzJGODc7S0FOR1hJIFJBRElDQUwgT1BQT1NFO1NvOzA7T047PGNvbXBhdD4gODIxQjs7OztOOzs7OzsKKzJGODg7S0FOR1hJIFJBRElDQUwgQk9BVDtTbzswO09OOzxjb21wYXQ+IDgyMUY7Ozs7Tjs7Ozs7CisyRjg5O0tBTkdYSSBSQURJQ0FMIFNUT1BQSU5HO1NvOzA7T047PGNvbXBhdD4gODI2RTs7OztOOzs7OzsKKzJGOEE7S0FOR1hJIFJBRElDQUwgQ09MT1I7U287MDtPTjs8Y29tcGF0PiA4MjcyOzs7O047Ozs7OworMkY4QjtLQU5HWEkgUkFESUNBTCBHUkFTUztTbzswO09OOzxjb21wYXQ+IDgyNzg7Ozs7Tjs7Ozs7CisyRjhDO0tBTkdYSSBSQURJQ0FMIFRJR0VSO1NvOzA7T047PGNvbXBhdD4gODY0RDs7OztOOzs7OzsKKzJGOEQ7S0FOR1hJIFJBRElDQUwgSU5TRUNUO1NvOzA7T047PGNvbXBhdD4gODY2Qjs7OztOOzs7OzsKKzJGOEU7S0FOR1hJIFJBRElDQUwgQkxPT0Q7U287MDtPTjs8Y29tcGF0PiA4ODQwOzs7O047Ozs7OworMkY4RjtLQU5HWEkgUkFESUNBTCBXQUxLIEVOQ0xPU1VSRTtTbzswO09OOzxjb21wYXQ+IDg4NEM7Ozs7Tjs7Ozs7CisyRjkwO0tBTkdYSSBSQURJQ0FMIENMT1RIRVM7U287MDtPTjs8Y29tcGF0PiA4ODYzOzs7O047Ozs7OworMkY5MTtLQU5HWEkgUkFESUNBTCBXRVNUO1NvOzA7T047PGNvbXBhdD4gODk3RTs7OztOOzs7OzsKKzJGOTI7S0FOR1hJIFJBRElDQUwgU0VFO1NvOzA7T047PGNvbXBhdD4gODk4Qjs7OztOOzs7OzsKKzJGOTM7S0FOR1hJIFJBRElDQUwgSE9STjtTbzswO09OOzxjb21wYXQ+IDg5RDI7Ozs7Tjs7Ozs7CisyRjk0O0tBTkdYSSBSQURJQ0FMIFNQRUVDSDtTbzswO09OOzxjb21wYXQ+IDhBMDA7Ozs7Tjs7Ozs7CisyRjk1O0tBTkdYSSBSQURJQ0FMIFZBTExFWTtTbzswO09OOzxjb21wYXQ+IDhDMzc7Ozs7Tjs7Ozs7CisyRjk2O0tBTkdYSSBSQURJQ0FMIEJFQU47U287MDtPTjs8Y29tcGF0PiA4QzQ2Ozs7O047Ozs7OworMkY5NztLQU5HWEkgUkFESUNBTCBQSUc7U287MDtPTjs8Y29tcGF0PiA4QzU1Ozs7O047Ozs7OworMkY5ODtLQU5HWEkgUkFESUNBTCBCQURHRVI7U287MDtPTjs8Y29tcGF0PiA4Qzc4Ozs7O047Ozs7OworMkY5OTtLQU5HWEkgUkFESUNBTCBTSEVMTDtTbzswO09OOzxjb21wYXQ+IDhDOUQ7Ozs7Tjs7Ozs7CisyRjlBO0tBTkdYSSBSQURJQ0FMIFJFRDtTbzswO09OOzxjb21wYXQ+IDhENjQ7Ozs7Tjs7Ozs7CisyRjlCO0tBTkdYSSBSQURJQ0FMIFJVTjtTbzswO09OOzxjb21wYXQ+IDhENzA7Ozs7Tjs7Ozs7CisyRjlDO0tBTkdYSSBSQURJQ0FMIEZPT1Q7U287MDtPTjs8Y29tcGF0PiA4REIzOzs7O047Ozs7OworMkY5RDtLQU5HWEkgUkFESUNBTCBCT0RZO1NvOzA7T047PGNvbXBhdD4gOEVBQjs7OztOOzs7OzsKKzJGOUU7S0FOR1hJIFJBRElDQUwgQ0FSVDtTbzswO09OOzxjb21wYXQ+IDhFQ0E7Ozs7Tjs7Ozs7CisyRjlGO0tBTkdYSSBSQURJQ0FMIEJJVFRFUjtTbzswO09OOzxjb21wYXQ+IDhGOUI7Ozs7Tjs7Ozs7CisyRkEwO0tBTkdYSSBSQURJQ0FMIE1PUk5JTkc7U287MDtPTjs8Y29tcGF0PiA4RkIwOzs7O047Ozs7OworMkZBMTtLQU5HWEkgUkFESUNBTCBXQUxLO1NvOzA7T047PGNvbXBhdD4gOEZCNTs7OztOOzs7OzsKKzJGQTI7S0FOR1hJIFJBRElDQUwgQ0lUWTtTbzswO09OOzxjb21wYXQ+IDkwOTE7Ozs7Tjs7Ozs7CisyRkEzO0tBTkdYSSBSQURJQ0FMIFdJTkU7U287MDtPTjs8Y29tcGF0PiA5MTQ5Ozs7O047Ozs7OworMkZBNDtLQU5HWEkgUkFESUNBTCBESVNUSU5HVUlTSDtTbzswO09OOzxjb21wYXQ+IDkxQzY7Ozs7Tjs7Ozs7CisyRkE1O0tBTkdYSSBSQURJQ0FMIFZJTExBR0U7U287MDtPTjs8Y29tcGF0PiA5MUNDOzs7O047Ozs7OworMkZBNjtLQU5HWEkgUkFESUNBTCBHT0xEO1NvOzA7T047PGNvbXBhdD4gOTFEMTs7OztOOzs7OzsKKzJGQTc7S0FOR1hJIFJBRElDQUwgTE9ORztTbzswO09OOzxjb21wYXQ+IDk1Nzc7Ozs7Tjs7Ozs7CisyRkE4O0tBTkdYSSBSQURJQ0FMIEdBVEU7U287MDtPTjs8Y29tcGF0PiA5NTgwOzs7O047Ozs7OworMkZBOTtLQU5HWEkgUkFESUNBTCBNT1VORDtTbzswO09OOzxjb21wYXQ+IDk2MUM7Ozs7Tjs7Ozs7CisyRkFBO0tBTkdYSSBSQURJQ0FMIFNMQVZFO1NvOzA7T047PGNvbXBhdD4gOTZCNjs7OztOOzs7OzsKKzJGQUI7S0FOR1hJIFJBRElDQUwgU0hPUlQgVEFJTEVEIEJJUkQ7U287MDtPTjs8Y29tcGF0PiA5NkI5Ozs7O047Ozs7OworMkZBQztLQU5HWEkgUkFESUNBTCBSQUlOO1NvOzA7T047PGNvbXBhdD4gOTZFODs7OztOOzs7OzsKKzJGQUQ7S0FOR1hJIFJBRElDQUwgQkxVRTtTbzswO09OOzxjb21wYXQ+IDk3NTE7Ozs7Tjs7Ozs7CisyRkFFO0tBTkdYSSBSQURJQ0FMIFdST05HO1NvOzA7T047PGNvbXBhdD4gOTc1RTs7OztOOzs7OzsKKzJGQUY7S0FOR1hJIFJBRElDQUwgRkFDRTtTbzswO09OOzxjb21wYXQ+IDk3NjI7Ozs7Tjs7Ozs7CisyRkIwO0tBTkdYSSBSQURJQ0FMIExFQVRIRVI7U287MDtPTjs8Y29tcGF0PiA5NzY5Ozs7O047Ozs7OworMkZCMTtLQU5HWEkgUkFESUNBTCBUQU5ORUQgTEVBVEhFUjtTbzswO09OOzxjb21wYXQ+IDk3Q0I7Ozs7Tjs7Ozs7CisyRkIyO0tBTkdYSSBSQURJQ0FMIExFRUs7U287MDtPTjs8Y29tcGF0PiA5N0VEOzs7O047Ozs7OworMkZCMztLQU5HWEkgUkFESUNBTCBTT1VORDtTbzswO09OOzxjb21wYXQ+IDk3RjM7Ozs7Tjs7Ozs7CisyRkI0O0tBTkdYSSBSQURJQ0FMIExFQUY7U287MDtPTjs8Y29tcGF0PiA5ODAxOzs7O047Ozs7OworMkZCNTtLQU5HWEkgUkFESUNBTCBXSU5EO1NvOzA7T047PGNvbXBhdD4gOThBODs7OztOOzs7OzsKKzJGQjY7S0FOR1hJIFJBRElDQUwgRkxZO1NvOzA7T047PGNvbXBhdD4gOThEQjs7OztOOzs7OzsKKzJGQjc7S0FOR1hJIFJBRElDQUwgRUFUO1NvOzA7T047PGNvbXBhdD4gOThERjs7OztOOzs7OzsKKzJGQjg7S0FOR1hJIFJBRElDQUwgSEVBRDtTbzswO09OOzxjb21wYXQ+IDk5OTY7Ozs7Tjs7Ozs7CisyRkI5O0tBTkdYSSBSQURJQ0FMIEZSQUdSQU5UO1NvOzA7T047PGNvbXBhdD4gOTk5OTs7OztOOzs7OzsKKzJGQkE7S0FOR1hJIFJBRElDQUwgSE9SU0U7U287MDtPTjs8Y29tcGF0PiA5OUFDOzs7O047Ozs7OworMkZCQjtLQU5HWEkgUkFESUNBTCBCT05FO1NvOzA7T047PGNvbXBhdD4gOUFBODs7OztOOzs7OzsKKzJGQkM7S0FOR1hJIFJBRElDQUwgVEFMTDtTbzswO09OOzxjb21wYXQ+IDlBRDg7Ozs7Tjs7Ozs7CisyRkJEO0tBTkdYSSBSQURJQ0FMIEhBSVI7U287MDtPTjs8Y29tcGF0PiA5QURGOzs7O047Ozs7OworMkZCRTtLQU5HWEkgUkFESUNBTCBGSUdIVDtTbzswO09OOzxjb21wYXQ+IDlCMjU7Ozs7Tjs7Ozs7CisyRkJGO0tBTkdYSSBSQURJQ0FMIFNBQ1JJRklDSUFMIFdJTkU7U287MDtPTjs8Y29tcGF0PiA5QjJGOzs7O047Ozs7OworMkZDMDtLQU5HWEkgUkFESUNBTCBDQVVMRFJPTjtTbzswO09OOzxjb21wYXQ+IDlCMzI7Ozs7Tjs7Ozs7CisyRkMxO0tBTkdYSSBSQURJQ0FMIEdIT1NUO1NvOzA7T047PGNvbXBhdD4gOUIzQzs7OztOOzs7OzsKKzJGQzI7S0FOR1hJIFJBRElDQUwgRklTSDtTbzswO09OOzxjb21wYXQ+IDlCNUE7Ozs7Tjs7Ozs7CisyRkMzO0tBTkdYSSBSQURJQ0FMIEJJUkQ7U287MDtPTjs8Y29tcGF0PiA5Q0U1Ozs7O047Ozs7OworMkZDNDtLQU5HWEkgUkFESUNBTCBTQUxUO1NvOzA7T047PGNvbXBhdD4gOUU3NTs7OztOOzs7OzsKKzJGQzU7S0FOR1hJIFJBRElDQUwgREVFUjtTbzswO09OOzxjb21wYXQ+IDlFN0Y7Ozs7Tjs7Ozs7CisyRkM2O0tBTkdYSSBSQURJQ0FMIFdIRUFUO1NvOzA7T047PGNvbXBhdD4gOUVBNTs7OztOOzs7OzsKKzJGQzc7S0FOR1hJIFJBRElDQUwgSEVNUDtTbzswO09OOzxjb21wYXQ+IDlFQkI7Ozs7Tjs7Ozs7CisyRkM4O0tBTkdYSSBSQURJQ0FMIFlFTExPVztTbzswO09OOzxjb21wYXQ+IDlFQzM7Ozs7Tjs7Ozs7CisyRkM5O0tBTkdYSSBSQURJQ0FMIE1JTExFVDtTbzswO09OOzxjb21wYXQ+IDlFQ0Q7Ozs7Tjs7Ozs7CisyRkNBO0tBTkdYSSBSQURJQ0FMIEJMQUNLO1NvOzA7T047PGNvbXBhdD4gOUVEMTs7OztOOzs7OzsKKzJGQ0I7S0FOR1hJIFJBRElDQUwgRU1CUk9JREVSWTtTbzswO09OOzxjb21wYXQ+IDlFRjk7Ozs7Tjs7Ozs7CisyRkNDO0tBTkdYSSBSQURJQ0FMIEZST0c7U287MDtPTjs8Y29tcGF0PiA5RUZEOzs7O047Ozs7OworMkZDRDtLQU5HWEkgUkFESUNBTCBUUklQT0Q7U287MDtPTjs8Y29tcGF0PiA5RjBFOzs7O047Ozs7OworMkZDRTtLQU5HWEkgUkFESUNBTCBEUlVNO1NvOzA7T047PGNvbXBhdD4gOUYxMzs7OztOOzs7OzsKKzJGQ0Y7S0FOR1hJIFJBRElDQUwgUkFUO1NvOzA7T047PGNvbXBhdD4gOUYyMDs7OztOOzs7OzsKKzJGRDA7S0FOR1hJIFJBRElDQUwgTk9TRTtTbzswO09OOzxjb21wYXQ+IDlGM0I7Ozs7Tjs7Ozs7CisyRkQxO0tBTkdYSSBSQURJQ0FMIEVWRU47U287MDtPTjs8Y29tcGF0PiA5RjRBOzs7O047Ozs7OworMkZEMjtLQU5HWEkgUkFESUNBTCBUT09USDtTbzswO09OOzxjb21wYXQ+IDlGNTI7Ozs7Tjs7Ozs7CisyRkQzO0tBTkdYSSBSQURJQ0FMIERSQUdPTjtTbzswO09OOzxjb21wYXQ+IDlGOEQ7Ozs7Tjs7Ozs7CisyRkQ0O0tBTkdYSSBSQURJQ0FMIFRVUlRMRTtTbzswO09OOzxjb21wYXQ+IDlGOUM7Ozs7Tjs7Ozs7CisyRkQ1O0tBTkdYSSBSQURJQ0FMIEZMVVRFO1NvOzA7T047PGNvbXBhdD4gOUZBMDs7OztOOzs7OzsKKzJGRjA7SURFT0dSQVBISUMgREVTQ1JJUFRJT04gQ0hBUkFDVEVSIExFRlQgVE8gUklHSFQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRkYxO0lERU9HUkFQSElDIERFU0NSSVBUSU9OIENIQVJBQ1RFUiBBQk9WRSBUTyBCRUxPVztTbzswO09OOzs7OztOOzs7OzsKKzJGRjI7SURFT0dSQVBISUMgREVTQ1JJUFRJT04gQ0hBUkFDVEVSIExFRlQgVE8gTUlERExFIEFORCBSSUdIVDtTbzswO09OOzs7OztOOzs7OzsKKzJGRjM7SURFT0dSQVBISUMgREVTQ1JJUFRJT04gQ0hBUkFDVEVSIEFCT1ZFIFRPIE1JRERMRSBBTkQgQkVMT1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRkY0O0lERU9HUkFQSElDIERFU0NSSVBUSU9OIENIQVJBQ1RFUiBGVUxMIFNVUlJPVU5EO1NvOzA7T047Ozs7O047Ozs7OworMkZGNTtJREVPR1JBUEhJQyBERVNDUklQVElPTiBDSEFSQUNURVIgU1VSUk9VTkQgRlJPTSBBQk9WRTtTbzswO09OOzs7OztOOzs7OzsKKzJGRjY7SURFT0dSQVBISUMgREVTQ1JJUFRJT04gQ0hBUkFDVEVSIFNVUlJPVU5EIEZST00gQkVMT1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRkY3O0lERU9HUkFQSElDIERFU0NSSVBUSU9OIENIQVJBQ1RFUiBTVVJST1VORCBGUk9NIExFRlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRkY4O0lERU9HUkFQSElDIERFU0NSSVBUSU9OIENIQVJBQ1RFUiBTVVJST1VORCBGUk9NIFVQUEVSIExFRlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRkY5O0lERU9HUkFQSElDIERFU0NSSVBUSU9OIENIQVJBQ1RFUiBTVVJST1VORCBGUk9NIFVQUEVSIFJJR0hUO1NvOzA7T047Ozs7O047Ozs7OworMkZGQTtJREVPR1JBUEhJQyBERVNDUklQVElPTiBDSEFSQUNURVIgU1VSUk9VTkQgRlJPTSBMT1dFUiBMRUZUO1NvOzA7T047Ozs7O047Ozs7OworMkZGQjtJREVPR1JBUEhJQyBERVNDUklQVElPTiBDSEFSQUNURVIgT1ZFUkxBSUQ7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMDAwO0lERU9HUkFQSElDIFNQQUNFO1pzOzA7V1M7PHdpZGU+IDAwMjA7Ozs7Tjs7Ozs7CiszMDAxO0lERU9HUkFQSElDIENPTU1BO1BvOzA7T047Ozs7O047Ozs7OworMzAwMjtJREVPR1JBUEhJQyBGVUxMIFNUT1A7UG87MDtPTjs7Ozs7TjtJREVPR1JBUEhJQyBQRVJJT0Q7Ozs7CiszMDAzO0RJVFRPIE1BUks7UG87MDtPTjs7Ozs7Tjs7Ozs7CiszMDA0O0pBUEFORVNFIElORFVTVFJJQUwgU1RBTkRBUkQgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMzAwNTtJREVPR1JBUEhJQyBJVEVSQVRJT04gTUFSSztMbTswO0w7Ozs7O047Ozs7OworMzAwNjtJREVPR1JBUEhJQyBDTE9TSU5HIE1BUks7TG87MDtMOzs7OztOOzs7OzsKKzMwMDc7SURFT0dSQVBISUMgTlVNQkVSIFpFUk87Tmw7MDtMOzs7OzA7Tjs7Ozs7CiszMDA4O0xFRlQgQU5HTEUgQlJBQ0tFVDtQczswO09OOzs7OztZO09QRU5JTkcgQU5HTEUgQlJBQ0tFVDs7OzsKKzMwMDk7UklHSFQgQU5HTEUgQlJBQ0tFVDtQZTswO09OOzs7OztZO0NMT1NJTkcgQU5HTEUgQlJBQ0tFVDs7OzsKKzMwMEE7TEVGVCBET1VCTEUgQU5HTEUgQlJBQ0tFVDtQczswO09OOzs7OztZO09QRU5JTkcgRE9VQkxFIEFOR0xFIEJSQUNLRVQ7Ozs7CiszMDBCO1JJR0hUIERPVUJMRSBBTkdMRSBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Q0xPU0lORyBET1VCTEUgQU5HTEUgQlJBQ0tFVDs7OzsKKzMwMEM7TEVGVCBDT1JORVIgQlJBQ0tFVDtQczswO09OOzs7OztZO09QRU5JTkcgQ09STkVSIEJSQUNLRVQ7Ozs7CiszMDBEO1JJR0hUIENPUk5FUiBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Q0xPU0lORyBDT1JORVIgQlJBQ0tFVDs7OzsKKzMwMEU7TEVGVCBXSElURSBDT1JORVIgQlJBQ0tFVDtQczswO09OOzs7OztZO09QRU5JTkcgV0hJVEUgQ09STkVSIEJSQUNLRVQ7Ozs7CiszMDBGO1JJR0hUIFdISVRFIENPUk5FUiBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Q0xPU0lORyBXSElURSBDT1JORVIgQlJBQ0tFVDs7OzsKKzMwMTA7TEVGVCBCTEFDSyBMRU5USUNVTEFSIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTtPUEVOSU5HIEJMQUNLIExFTlRJQ1VMQVIgQlJBQ0tFVDs7OzsKKzMwMTE7UklHSFQgQkxBQ0sgTEVOVElDVUxBUiBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Q0xPU0lORyBCTEFDSyBMRU5USUNVTEFSIEJSQUNLRVQ7Ozs7CiszMDEyO1BPU1RBTCBNQVJLO1NvOzA7T047Ozs7O047Ozs7OworMzAxMztHRVRBIE1BUks7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMDE0O0xFRlQgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDtQczswO09OOzs7OztZO09QRU5JTkcgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDs7OzsKKzMwMTU7UklHSFQgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDtQZTswO09OOzs7OztZO0NMT1NJTkcgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDs7OzsKKzMwMTY7TEVGVCBXSElURSBMRU5USUNVTEFSIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTtPUEVOSU5HIFdISVRFIExFTlRJQ1VMQVIgQlJBQ0tFVDs7OzsKKzMwMTc7UklHSFQgV0hJVEUgTEVOVElDVUxBUiBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Q0xPU0lORyBXSElURSBMRU5USUNVTEFSIEJSQUNLRVQ7Ozs7CiszMDE4O0xFRlQgV0hJVEUgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDtQczswO09OOzs7OztZO09QRU5JTkcgV0hJVEUgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDs7OzsKKzMwMTk7UklHSFQgV0hJVEUgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDtQZTswO09OOzs7OztZO0NMT1NJTkcgV0hJVEUgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDs7OzsKKzMwMUE7TEVGVCBXSElURSBTUVVBUkUgQlJBQ0tFVDtQczswO09OOzs7OztZO09QRU5JTkcgV0hJVEUgU1FVQVJFIEJSQUNLRVQ7Ozs7CiszMDFCO1JJR0hUIFdISVRFIFNRVUFSRSBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Q0xPU0lORyBXSElURSBTUVVBUkUgQlJBQ0tFVDs7OzsKKzMwMUM7V0FWRSBEQVNIO1BkOzA7T047Ozs7O047Ozs7OworMzAxRDtSRVZFUlNFRCBET1VCTEUgUFJJTUUgUVVPVEFUSU9OIE1BUks7UHM7MDtPTjs7Ozs7Tjs7Ozs7CiszMDFFO0RPVUJMRSBQUklNRSBRVU9UQVRJT04gTUFSSztQZTswO09OOzs7OztOOzs7OzsKKzMwMUY7TE9XIERPVUJMRSBQUklNRSBRVU9UQVRJT04gTUFSSztQZTswO09OOzs7OztOOzs7OzsKKzMwMjA7UE9TVEFMIE1BUksgRkFDRTtTbzswO09OOzs7OztOOzs7OzsKKzMwMjE7SEFOR1pIT1UgTlVNRVJBTCBPTkU7Tmw7MDtMOzs7OzE7Tjs7Ozs7CiszMDIyO0hBTkdaSE9VIE5VTUVSQUwgVFdPO05sOzA7TDs7OzsyO047Ozs7OworMzAyMztIQU5HWkhPVSBOVU1FUkFMIFRIUkVFO05sOzA7TDs7OzszO047Ozs7OworMzAyNDtIQU5HWkhPVSBOVU1FUkFMIEZPVVI7Tmw7MDtMOzs7OzQ7Tjs7Ozs7CiszMDI1O0hBTkdaSE9VIE5VTUVSQUwgRklWRTtObDswO0w7Ozs7NTtOOzs7OzsKKzMwMjY7SEFOR1pIT1UgTlVNRVJBTCBTSVg7Tmw7MDtMOzs7OzY7Tjs7Ozs7CiszMDI3O0hBTkdaSE9VIE5VTUVSQUwgU0VWRU47Tmw7MDtMOzs7Ozc7Tjs7Ozs7CiszMDI4O0hBTkdaSE9VIE5VTUVSQUwgRUlHSFQ7Tmw7MDtMOzs7Ozg7Tjs7Ozs7CiszMDI5O0hBTkdaSE9VIE5VTUVSQUwgTklORTtObDswO0w7Ozs7OTtOOzs7OzsKKzMwMkE7SURFT0dSQVBISUMgTEVWRUwgVE9ORSBNQVJLO01uOzIxODtOU007Ozs7O047Ozs7OworMzAyQjtJREVPR1JBUEhJQyBSSVNJTkcgVE9ORSBNQVJLO01uOzIyODtOU007Ozs7O047Ozs7OworMzAyQztJREVPR1JBUEhJQyBERVBBUlRJTkcgVE9ORSBNQVJLO01uOzIzMjtOU007Ozs7O047Ozs7OworMzAyRDtJREVPR1JBUEhJQyBFTlRFUklORyBUT05FIE1BUks7TW47MjIyO05TTTs7Ozs7Tjs7Ozs7CiszMDJFO0hBTkdVTCBTSU5HTEUgRE9UIFRPTkUgTUFSSztNbjsyMjQ7TlNNOzs7OztOOzs7OzsKKzMwMkY7SEFOR1VMIERPVUJMRSBET1QgVE9ORSBNQVJLO01uOzIyNDtOU007Ozs7O047Ozs7OworMzAzMDtXQVZZIERBU0g7UGQ7MDtPTjs7Ozs7Tjs7Ozs7CiszMDMxO1ZFUlRJQ0FMIEtBTkEgUkVQRUFUIE1BUks7TG07MDtMOzs7OztOOzs7OzsKKzMwMzI7VkVSVElDQUwgS0FOQSBSRVBFQVQgV0lUSCBWT0lDRUQgU09VTkQgTUFSSztMbTswO0w7Ozs7O047Ozs7OworMzAzMztWRVJUSUNBTCBLQU5BIFJFUEVBVCBNQVJLIFVQUEVSIEhBTEY7TG07MDtMOzs7OztOOzs7OzsKKzMwMzQ7VkVSVElDQUwgS0FOQSBSRVBFQVQgV0lUSCBWT0lDRUQgU09VTkQgTUFSSyBVUFBFUiBIQUxGO0xtOzA7TDs7Ozs7Tjs7Ozs7CiszMDM1O1ZFUlRJQ0FMIEtBTkEgUkVQRUFUIE1BUksgTE9XRVIgSEFMRjtMbTswO0w7Ozs7O047Ozs7OworMzAzNjtDSVJDTEVEIFBPU1RBTCBNQVJLO1NvOzA7T047PGNvbXBhdD4gMzAxMjs7OztOOzs7OzsKKzMwMzc7SURFT0dSQVBISUMgVEVMRUdSQVBIIExJTkUgRkVFRCBTRVBBUkFUT1IgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMzAzODtIQU5HWkhPVSBOVU1FUkFMIFRFTjtObDswO0w7PGNvbXBhdD4gNTM0MTs7OzEwO047Ozs7OworMzAzOTtIQU5HWkhPVSBOVU1FUkFMIFRXRU5UWTtObDswO0w7PGNvbXBhdD4gNTM0NDs7OzIwO047Ozs7OworMzAzQTtIQU5HWkhPVSBOVU1FUkFMIFRISVJUWTtObDswO0w7PGNvbXBhdD4gNTM0NTs7OzMwO047Ozs7OworMzAzQjtWRVJUSUNBTCBJREVPR1JBUEhJQyBJVEVSQVRJT04gTUFSSztMbTswO0w7Ozs7O047Ozs7OworMzAzQztNQVNVIE1BUks7TG87MDtMOzs7OztOOzs7OzsKKzMwM0Q7UEFSVCBBTFRFUk5BVElPTiBNQVJLO1BvOzA7T047Ozs7O047Ozs7OworMzAzRTtJREVPR1JBUEhJQyBWQVJJQVRJT04gSU5ESUNBVE9SO1NvOzA7T047Ozs7O047Ozs7OworMzAzRjtJREVPR1JBUEhJQyBIQUxGIEZJTEwgU1BBQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMDQxO0hJUkFHQU5BIExFVFRFUiBTTUFMTCBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDQyO0hJUkFHQU5BIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDQzO0hJUkFHQU5BIExFVFRFUiBTTUFMTCBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDQ0O0hJUkFHQU5BIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDQ1O0hJUkFHQU5BIExFVFRFUiBTTUFMTCBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDQ2O0hJUkFHQU5BIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDQ3O0hJUkFHQU5BIExFVFRFUiBTTUFMTCBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDQ4O0hJUkFHQU5BIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDQ5O0hJUkFHQU5BIExFVFRFUiBTTUFMTCBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDRBO0hJUkFHQU5BIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDRCO0hJUkFHQU5BIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMzA0QztISVJBR0FOQSBMRVRURVIgR0E7TG87MDtMOzMwNEIgMzA5OTs7OztOOzs7OzsKKzMwNEQ7SElSQUdBTkEgTEVUVEVSIEtJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDRFO0hJUkFHQU5BIExFVFRFUiBHSTtMbzswO0w7MzA0RCAzMDk5Ozs7O047Ozs7OworMzA0RjtISVJBR0FOQSBMRVRURVIgS1U7TG87MDtMOzs7OztOOzs7OzsKKzMwNTA7SElSQUdBTkEgTEVUVEVSIEdVO0xvOzA7TDszMDRGIDMwOTk7Ozs7Tjs7Ozs7CiszMDUxO0hJUkFHQU5BIExFVFRFUiBLRTtMbzswO0w7Ozs7O047Ozs7OworMzA1MjtISVJBR0FOQSBMRVRURVIgR0U7TG87MDtMOzMwNTEgMzA5OTs7OztOOzs7OzsKKzMwNTM7SElSQUdBTkEgTEVUVEVSIEtPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDU0O0hJUkFHQU5BIExFVFRFUiBHTztMbzswO0w7MzA1MyAzMDk5Ozs7O047Ozs7OworMzA1NTtISVJBR0FOQSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzMwNTY7SElSQUdBTkEgTEVUVEVSIFpBO0xvOzA7TDszMDU1IDMwOTk7Ozs7Tjs7Ozs7CiszMDU3O0hJUkFHQU5BIExFVFRFUiBTSTtMbzswO0w7Ozs7O047Ozs7OworMzA1ODtISVJBR0FOQSBMRVRURVIgWkk7TG87MDtMOzMwNTcgMzA5OTs7OztOOzs7OzsKKzMwNTk7SElSQUdBTkEgTEVUVEVSIFNVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDVBO0hJUkFHQU5BIExFVFRFUiBaVTtMbzswO0w7MzA1OSAzMDk5Ozs7O047Ozs7OworMzA1QjtISVJBR0FOQSBMRVRURVIgU0U7TG87MDtMOzs7OztOOzs7OzsKKzMwNUM7SElSQUdBTkEgTEVUVEVSIFpFO0xvOzA7TDszMDVCIDMwOTk7Ozs7Tjs7Ozs7CiszMDVEO0hJUkFHQU5BIExFVFRFUiBTTztMbzswO0w7Ozs7O047Ozs7OworMzA1RTtISVJBR0FOQSBMRVRURVIgWk87TG87MDtMOzMwNUQgMzA5OTs7OztOOzs7OzsKKzMwNUY7SElSQUdBTkEgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDYwO0hJUkFHQU5BIExFVFRFUiBEQTtMbzswO0w7MzA1RiAzMDk5Ozs7O047Ozs7OworMzA2MTtISVJBR0FOQSBMRVRURVIgVEk7TG87MDtMOzs7OztOOzs7OzsKKzMwNjI7SElSQUdBTkEgTEVUVEVSIERJO0xvOzA7TDszMDYxIDMwOTk7Ozs7Tjs7Ozs7CiszMDYzO0hJUkFHQU5BIExFVFRFUiBTTUFMTCBUVTtMbzswO0w7Ozs7O047Ozs7OworMzA2NDtISVJBR0FOQSBMRVRURVIgVFU7TG87MDtMOzs7OztOOzs7OzsKKzMwNjU7SElSQUdBTkEgTEVUVEVSIERVO0xvOzA7TDszMDY0IDMwOTk7Ozs7Tjs7Ozs7CiszMDY2O0hJUkFHQU5BIExFVFRFUiBURTtMbzswO0w7Ozs7O047Ozs7OworMzA2NztISVJBR0FOQSBMRVRURVIgREU7TG87MDtMOzMwNjYgMzA5OTs7OztOOzs7OzsKKzMwNjg7SElSQUdBTkEgTEVUVEVSIFRPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDY5O0hJUkFHQU5BIExFVFRFUiBETztMbzswO0w7MzA2OCAzMDk5Ozs7O047Ozs7OworMzA2QTtISVJBR0FOQSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzMwNkI7SElSQUdBTkEgTEVUVEVSIE5JO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDZDO0hJUkFHQU5BIExFVFRFUiBOVTtMbzswO0w7Ozs7O047Ozs7OworMzA2RDtISVJBR0FOQSBMRVRURVIgTkU7TG87MDtMOzs7OztOOzs7OzsKKzMwNkU7SElSQUdBTkEgTEVUVEVSIE5PO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDZGO0hJUkFHQU5BIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMzA3MDtISVJBR0FOQSBMRVRURVIgQkE7TG87MDtMOzMwNkYgMzA5OTs7OztOOzs7OzsKKzMwNzE7SElSQUdBTkEgTEVUVEVSIFBBO0xvOzA7TDszMDZGIDMwOUE7Ozs7Tjs7Ozs7CiszMDcyO0hJUkFHQU5BIExFVFRFUiBISTtMbzswO0w7Ozs7O047Ozs7OworMzA3MztISVJBR0FOQSBMRVRURVIgQkk7TG87MDtMOzMwNzIgMzA5OTs7OztOOzs7OzsKKzMwNzQ7SElSQUdBTkEgTEVUVEVSIFBJO0xvOzA7TDszMDcyIDMwOUE7Ozs7Tjs7Ozs7CiszMDc1O0hJUkFHQU5BIExFVFRFUiBIVTtMbzswO0w7Ozs7O047Ozs7OworMzA3NjtISVJBR0FOQSBMRVRURVIgQlU7TG87MDtMOzMwNzUgMzA5OTs7OztOOzs7OzsKKzMwNzc7SElSQUdBTkEgTEVUVEVSIFBVO0xvOzA7TDszMDc1IDMwOUE7Ozs7Tjs7Ozs7CiszMDc4O0hJUkFHQU5BIExFVFRFUiBIRTtMbzswO0w7Ozs7O047Ozs7OworMzA3OTtISVJBR0FOQSBMRVRURVIgQkU7TG87MDtMOzMwNzggMzA5OTs7OztOOzs7OzsKKzMwN0E7SElSQUdBTkEgTEVUVEVSIFBFO0xvOzA7TDszMDc4IDMwOUE7Ozs7Tjs7Ozs7CiszMDdCO0hJUkFHQU5BIExFVFRFUiBITztMbzswO0w7Ozs7O047Ozs7OworMzA3QztISVJBR0FOQSBMRVRURVIgQk87TG87MDtMOzMwN0IgMzA5OTs7OztOOzs7OzsKKzMwN0Q7SElSQUdBTkEgTEVUVEVSIFBPO0xvOzA7TDszMDdCIDMwOUE7Ozs7Tjs7Ozs7CiszMDdFO0hJUkFHQU5BIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMzA3RjtISVJBR0FOQSBMRVRURVIgTUk7TG87MDtMOzs7OztOOzs7OzsKKzMwODA7SElSQUdBTkEgTEVUVEVSIE1VO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDgxO0hJUkFHQU5BIExFVFRFUiBNRTtMbzswO0w7Ozs7O047Ozs7OworMzA4MjtISVJBR0FOQSBMRVRURVIgTU87TG87MDtMOzs7OztOOzs7OzsKKzMwODM7SElSQUdBTkEgTEVUVEVSIFNNQUxMIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDg0O0hJUkFHQU5BIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMzA4NTtISVJBR0FOQSBMRVRURVIgU01BTEwgWVU7TG87MDtMOzs7OztOOzs7OzsKKzMwODY7SElSQUdBTkEgTEVUVEVSIFlVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDg3O0hJUkFHQU5BIExFVFRFUiBTTUFMTCBZTztMbzswO0w7Ozs7O047Ozs7OworMzA4ODtISVJBR0FOQSBMRVRURVIgWU87TG87MDtMOzs7OztOOzs7OzsKKzMwODk7SElSQUdBTkEgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDhBO0hJUkFHQU5BIExFVFRFUiBSSTtMbzswO0w7Ozs7O047Ozs7OworMzA4QjtISVJBR0FOQSBMRVRURVIgUlU7TG87MDtMOzs7OztOOzs7OzsKKzMwOEM7SElSQUdBTkEgTEVUVEVSIFJFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDhEO0hJUkFHQU5BIExFVFRFUiBSTztMbzswO0w7Ozs7O047Ozs7OworMzA4RTtISVJBR0FOQSBMRVRURVIgU01BTEwgV0E7TG87MDtMOzs7OztOOzs7OzsKKzMwOEY7SElSQUdBTkEgTEVUVEVSIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDkwO0hJUkFHQU5BIExFVFRFUiBXSTtMbzswO0w7Ozs7O047Ozs7OworMzA5MTtISVJBR0FOQSBMRVRURVIgV0U7TG87MDtMOzs7OztOOzs7OzsKKzMwOTI7SElSQUdBTkEgTEVUVEVSIFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDkzO0hJUkFHQU5BIExFVFRFUiBOO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDk0O0hJUkFHQU5BIExFVFRFUiBWVTtMbzswO0w7MzA0NiAzMDk5Ozs7O047Ozs7OworMzA5NTtISVJBR0FOQSBMRVRURVIgU01BTEwgS0E7TG87MDtMOzs7OztOOzs7OzsKKzMwOTY7SElSQUdBTkEgTEVUVEVSIFNNQUxMIEtFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDk5O0NPTUJJTklORyBLQVRBS0FOQS1ISVJBR0FOQSBWT0lDRUQgU09VTkQgTUFSSztNbjs4O05TTTs7Ozs7TjtOT04tU1BBQ0lORyBLQVRBS0FOQS1ISVJBR0FOQSBWT0lDRUQgU09VTkQgTUFSSzs7OzsKKzMwOUE7Q09NQklOSU5HIEtBVEFLQU5BLUhJUkFHQU5BIFNFTUktVk9JQ0VEIFNPVU5EIE1BUks7TW47ODtOU007Ozs7O047Tk9OLVNQQUNJTkcgS0FUQUtBTkEtSElSQUdBTkEgU0VNSS1WT0lDRUQgU09VTkQgTUFSSzs7OzsKKzMwOUI7S0FUQUtBTkEtSElSQUdBTkEgVk9JQ0VEIFNPVU5EIE1BUks7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDMwOTk7Ozs7Tjs7Ozs7CiszMDlDO0tBVEFLQU5BLUhJUkFHQU5BIFNFTUktVk9JQ0VEIFNPVU5EIE1BUks7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDMwOUE7Ozs7Tjs7Ozs7CiszMDlEO0hJUkFHQU5BIElURVJBVElPTiBNQVJLO0xtOzA7TDs7Ozs7Tjs7Ozs7CiszMDlFO0hJUkFHQU5BIFZPSUNFRCBJVEVSQVRJT04gTUFSSztMbTswO0w7MzA5RCAzMDk5Ozs7O047Ozs7OworMzA5RjtISVJBR0FOQSBESUdSQVBIIFlPUkk7TG87MDtMOzx2ZXJ0aWNhbD4gMzA4OCAzMDhBOzs7O047Ozs7OworMzBBMDtLQVRBS0FOQS1ISVJBR0FOQSBET1VCTEUgSFlQSEVOO1BkOzA7T047Ozs7O047Ozs7OworMzBBMTtLQVRBS0FOQSBMRVRURVIgU01BTEwgQTtMbzswO0w7Ozs7O047Ozs7OworMzBBMjtLQVRBS0FOQSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMzBBMztLQVRBS0FOQSBMRVRURVIgU01BTEwgSTtMbzswO0w7Ozs7O047Ozs7OworMzBBNDtLQVRBS0FOQSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMzBBNTtLQVRBS0FOQSBMRVRURVIgU01BTEwgVTtMbzswO0w7Ozs7O047Ozs7OworMzBBNjtLQVRBS0FOQSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMzBBNztLQVRBS0FOQSBMRVRURVIgU01BTEwgRTtMbzswO0w7Ozs7O047Ozs7OworMzBBODtLQVRBS0FOQSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMzBBOTtLQVRBS0FOQSBMRVRURVIgU01BTEwgTztMbzswO0w7Ozs7O047Ozs7OworMzBBQTtLQVRBS0FOQSBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMzBBQjtLQVRBS0FOQSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzMwQUM7S0FUQUtBTkEgTEVUVEVSIEdBO0xvOzA7TDszMEFCIDMwOTk7Ozs7Tjs7Ozs7CiszMEFEO0tBVEFLQU5BIExFVFRFUiBLSTtMbzswO0w7Ozs7O047Ozs7OworMzBBRTtLQVRBS0FOQSBMRVRURVIgR0k7TG87MDtMOzMwQUQgMzA5OTs7OztOOzs7OzsKKzMwQUY7S0FUQUtBTkEgTEVUVEVSIEtVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEIwO0tBVEFLQU5BIExFVFRFUiBHVTtMbzswO0w7MzBBRiAzMDk5Ozs7O047Ozs7OworMzBCMTtLQVRBS0FOQSBMRVRURVIgS0U7TG87MDtMOzs7OztOOzs7OzsKKzMwQjI7S0FUQUtBTkEgTEVUVEVSIEdFO0xvOzA7TDszMEIxIDMwOTk7Ozs7Tjs7Ozs7CiszMEIzO0tBVEFLQU5BIExFVFRFUiBLTztMbzswO0w7Ozs7O047Ozs7OworMzBCNDtLQVRBS0FOQSBMRVRURVIgR087TG87MDtMOzMwQjMgMzA5OTs7OztOOzs7OzsKKzMwQjU7S0FUQUtBTkEgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEI2O0tBVEFLQU5BIExFVFRFUiBaQTtMbzswO0w7MzBCNSAzMDk5Ozs7O047Ozs7OworMzBCNztLQVRBS0FOQSBMRVRURVIgU0k7TG87MDtMOzs7OztOOzs7OzsKKzMwQjg7S0FUQUtBTkEgTEVUVEVSIFpJO0xvOzA7TDszMEI3IDMwOTk7Ozs7Tjs7Ozs7CiszMEI5O0tBVEFLQU5BIExFVFRFUiBTVTtMbzswO0w7Ozs7O047Ozs7OworMzBCQTtLQVRBS0FOQSBMRVRURVIgWlU7TG87MDtMOzMwQjkgMzA5OTs7OztOOzs7OzsKKzMwQkI7S0FUQUtBTkEgTEVUVEVSIFNFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEJDO0tBVEFLQU5BIExFVFRFUiBaRTtMbzswO0w7MzBCQiAzMDk5Ozs7O047Ozs7OworMzBCRDtLQVRBS0FOQSBMRVRURVIgU087TG87MDtMOzs7OztOOzs7OzsKKzMwQkU7S0FUQUtBTkEgTEVUVEVSIFpPO0xvOzA7TDszMEJEIDMwOTk7Ozs7Tjs7Ozs7CiszMEJGO0tBVEFLQU5BIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMzBDMDtLQVRBS0FOQSBMRVRURVIgREE7TG87MDtMOzMwQkYgMzA5OTs7OztOOzs7OzsKKzMwQzE7S0FUQUtBTkEgTEVUVEVSIFRJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEMyO0tBVEFLQU5BIExFVFRFUiBESTtMbzswO0w7MzBDMSAzMDk5Ozs7O047Ozs7OworMzBDMztLQVRBS0FOQSBMRVRURVIgU01BTEwgVFU7TG87MDtMOzs7OztOOzs7OzsKKzMwQzQ7S0FUQUtBTkEgTEVUVEVSIFRVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEM1O0tBVEFLQU5BIExFVFRFUiBEVTtMbzswO0w7MzBDNCAzMDk5Ozs7O047Ozs7OworMzBDNjtLQVRBS0FOQSBMRVRURVIgVEU7TG87MDtMOzs7OztOOzs7OzsKKzMwQzc7S0FUQUtBTkEgTEVUVEVSIERFO0xvOzA7TDszMEM2IDMwOTk7Ozs7Tjs7Ozs7CiszMEM4O0tBVEFLQU5BIExFVFRFUiBUTztMbzswO0w7Ozs7O047Ozs7OworMzBDOTtLQVRBS0FOQSBMRVRURVIgRE87TG87MDtMOzMwQzggMzA5OTs7OztOOzs7OzsKKzMwQ0E7S0FUQUtBTkEgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMENCO0tBVEFLQU5BIExFVFRFUiBOSTtMbzswO0w7Ozs7O047Ozs7OworMzBDQztLQVRBS0FOQSBMRVRURVIgTlU7TG87MDtMOzs7OztOOzs7OzsKKzMwQ0Q7S0FUQUtBTkEgTEVUVEVSIE5FO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMENFO0tBVEFLQU5BIExFVFRFUiBOTztMbzswO0w7Ozs7O047Ozs7OworMzBDRjtLQVRBS0FOQSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzMwRDA7S0FUQUtBTkEgTEVUVEVSIEJBO0xvOzA7TDszMENGIDMwOTk7Ozs7Tjs7Ozs7CiszMEQxO0tBVEFLQU5BIExFVFRFUiBQQTtMbzswO0w7MzBDRiAzMDlBOzs7O047Ozs7OworMzBEMjtLQVRBS0FOQSBMRVRURVIgSEk7TG87MDtMOzs7OztOOzs7OzsKKzMwRDM7S0FUQUtBTkEgTEVUVEVSIEJJO0xvOzA7TDszMEQyIDMwOTk7Ozs7Tjs7Ozs7CiszMEQ0O0tBVEFLQU5BIExFVFRFUiBQSTtMbzswO0w7MzBEMiAzMDlBOzs7O047Ozs7OworMzBENTtLQVRBS0FOQSBMRVRURVIgSFU7TG87MDtMOzs7OztOOzs7OzsKKzMwRDY7S0FUQUtBTkEgTEVUVEVSIEJVO0xvOzA7TDszMEQ1IDMwOTk7Ozs7Tjs7Ozs7CiszMEQ3O0tBVEFLQU5BIExFVFRFUiBQVTtMbzswO0w7MzBENSAzMDlBOzs7O047Ozs7OworMzBEODtLQVRBS0FOQSBMRVRURVIgSEU7TG87MDtMOzs7OztOOzs7OzsKKzMwRDk7S0FUQUtBTkEgTEVUVEVSIEJFO0xvOzA7TDszMEQ4IDMwOTk7Ozs7Tjs7Ozs7CiszMERBO0tBVEFLQU5BIExFVFRFUiBQRTtMbzswO0w7MzBEOCAzMDlBOzs7O047Ozs7OworMzBEQjtLQVRBS0FOQSBMRVRURVIgSE87TG87MDtMOzs7OztOOzs7OzsKKzMwREM7S0FUQUtBTkEgTEVUVEVSIEJPO0xvOzA7TDszMERCIDMwOTk7Ozs7Tjs7Ozs7CiszMEREO0tBVEFLQU5BIExFVFRFUiBQTztMbzswO0w7MzBEQiAzMDlBOzs7O047Ozs7OworMzBERTtLQVRBS0FOQSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzMwREY7S0FUQUtBTkEgTEVUVEVSIE1JO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEUwO0tBVEFLQU5BIExFVFRFUiBNVTtMbzswO0w7Ozs7O047Ozs7OworMzBFMTtLQVRBS0FOQSBMRVRURVIgTUU7TG87MDtMOzs7OztOOzs7OzsKKzMwRTI7S0FUQUtBTkEgTEVUVEVSIE1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEUzO0tBVEFLQU5BIExFVFRFUiBTTUFMTCBZQTtMbzswO0w7Ozs7O047Ozs7OworMzBFNDtLQVRBS0FOQSBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzMwRTU7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIFlVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEU2O0tBVEFLQU5BIExFVFRFUiBZVTtMbzswO0w7Ozs7O047Ozs7OworMzBFNztLQVRBS0FOQSBMRVRURVIgU01BTEwgWU87TG87MDtMOzs7OztOOzs7OzsKKzMwRTg7S0FUQUtBTkEgTEVUVEVSIFlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEU5O0tBVEFLQU5BIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMzBFQTtLQVRBS0FOQSBMRVRURVIgUkk7TG87MDtMOzs7OztOOzs7OzsKKzMwRUI7S0FUQUtBTkEgTEVUVEVSIFJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEVDO0tBVEFLQU5BIExFVFRFUiBSRTtMbzswO0w7Ozs7O047Ozs7OworMzBFRDtLQVRBS0FOQSBMRVRURVIgUk87TG87MDtMOzs7OztOOzs7OzsKKzMwRUU7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEVGO0tBVEFLQU5BIExFVFRFUiBXQTtMbzswO0w7Ozs7O047Ozs7OworMzBGMDtLQVRBS0FOQSBMRVRURVIgV0k7TG87MDtMOzs7OztOOzs7OzsKKzMwRjE7S0FUQUtBTkEgTEVUVEVSIFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEYyO0tBVEFLQU5BIExFVFRFUiBXTztMbzswO0w7Ozs7O047Ozs7OworMzBGMztLQVRBS0FOQSBMRVRURVIgTjtMbzswO0w7Ozs7O047Ozs7OworMzBGNDtLQVRBS0FOQSBMRVRURVIgVlU7TG87MDtMOzMwQTYgMzA5OTs7OztOOzs7OzsKKzMwRjU7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEY2O0tBVEFLQU5BIExFVFRFUiBTTUFMTCBLRTtMbzswO0w7Ozs7O047Ozs7OworMzBGNztLQVRBS0FOQSBMRVRURVIgVkE7TG87MDtMOzMwRUYgMzA5OTs7OztOOzs7OzsKKzMwRjg7S0FUQUtBTkEgTEVUVEVSIFZJO0xvOzA7TDszMEYwIDMwOTk7Ozs7Tjs7Ozs7CiszMEY5O0tBVEFLQU5BIExFVFRFUiBWRTtMbzswO0w7MzBGMSAzMDk5Ozs7O047Ozs7OworMzBGQTtLQVRBS0FOQSBMRVRURVIgVk87TG87MDtMOzMwRjIgMzA5OTs7OztOOzs7OzsKKzMwRkI7S0FUQUtBTkEgTUlERExFIERPVDtQYzswO09OOzs7OztOOzs7OzsKKzMwRkM7S0FUQUtBTkEtSElSQUdBTkEgUFJPTE9OR0VEIFNPVU5EIE1BUks7TG07MDtMOzs7OztOOzs7OzsKKzMwRkQ7S0FUQUtBTkEgSVRFUkFUSU9OIE1BUks7TG07MDtMOzs7OztOOzs7OzsKKzMwRkU7S0FUQUtBTkEgVk9JQ0VEIElURVJBVElPTiBNQVJLO0xtOzA7TDszMEZEIDMwOTk7Ozs7Tjs7Ozs7CiszMEZGO0tBVEFLQU5BIERJR1JBUEggS09UTztMbzswO0w7PHZlcnRpY2FsPiAzMEIzIDMwQzg7Ozs7Tjs7Ozs7CiszMTA1O0JPUE9NT0ZPIExFVFRFUiBCO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTA2O0JPUE9NT0ZPIExFVFRFUiBQO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTA3O0JPUE9NT0ZPIExFVFRFUiBNO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTA4O0JPUE9NT0ZPIExFVFRFUiBGO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTA5O0JPUE9NT0ZPIExFVFRFUiBEO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTBBO0JPUE9NT0ZPIExFVFRFUiBUO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTBCO0JPUE9NT0ZPIExFVFRFUiBOO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTBDO0JPUE9NT0ZPIExFVFRFUiBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTBEO0JPUE9NT0ZPIExFVFRFUiBHO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTBFO0JPUE9NT0ZPIExFVFRFUiBLO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTBGO0JPUE9NT0ZPIExFVFRFUiBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTEwO0JPUE9NT0ZPIExFVFRFUiBKO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTExO0JPUE9NT0ZPIExFVFRFUiBRO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTEyO0JPUE9NT0ZPIExFVFRFUiBYO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTEzO0JPUE9NT0ZPIExFVFRFUiBaSDtMbzswO0w7Ozs7O047Ozs7OworMzExNDtCT1BPTU9GTyBMRVRURVIgQ0g7TG87MDtMOzs7OztOOzs7OzsKKzMxMTU7Qk9QT01PRk8gTEVUVEVSIFNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTE2O0JPUE9NT0ZPIExFVFRFUiBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTE3O0JPUE9NT0ZPIExFVFRFUiBaO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTE4O0JPUE9NT0ZPIExFVFRFUiBDO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTE5O0JPUE9NT0ZPIExFVFRFUiBTO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTFBO0JPUE9NT0ZPIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTFCO0JPUE9NT0ZPIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTFDO0JPUE9NT0ZPIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTFEO0JPUE9NT0ZPIExFVFRFUiBFSDtMbzswO0w7Ozs7O047Ozs7OworMzExRTtCT1BPTU9GTyBMRVRURVIgQUk7TG87MDtMOzs7OztOOzs7OzsKKzMxMUY7Qk9QT01PRk8gTEVUVEVSIEVJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTIwO0JPUE9NT0ZPIExFVFRFUiBBVTtMbzswO0w7Ozs7O047Ozs7OworMzEyMTtCT1BPTU9GTyBMRVRURVIgT1U7TG87MDtMOzs7OztOOzs7OzsKKzMxMjI7Qk9QT01PRk8gTEVUVEVSIEFOO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTIzO0JPUE9NT0ZPIExFVFRFUiBFTjtMbzswO0w7Ozs7O047Ozs7OworMzEyNDtCT1BPTU9GTyBMRVRURVIgQU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTI1O0JPUE9NT0ZPIExFVFRFUiBFTkc7TG87MDtMOzs7OztOOzs7OzsKKzMxMjY7Qk9QT01PRk8gTEVUVEVSIEVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTI3O0JPUE9NT0ZPIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTI4O0JPUE9NT0ZPIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTI5O0JPUE9NT0ZPIExFVFRFUiBJVTtMbzswO0w7Ozs7O047Ozs7OworMzEyQTtCT1BPTU9GTyBMRVRURVIgVjtMbzswO0w7Ozs7O047Ozs7OworMzEyQjtCT1BPTU9GTyBMRVRURVIgTkc7TG87MDtMOzs7OztOOzs7OzsKKzMxMkM7Qk9QT01PRk8gTEVUVEVSIEdOO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTMxO0hBTkdVTCBMRVRURVIgS0lZRU9LO0xvOzA7TDs8Y29tcGF0PiAxMTAwOzs7O047SEFOR1VMIExFVFRFUiBHSVlFT0c7Ozs7CiszMTMyO0hBTkdVTCBMRVRURVIgU1NBTkdLSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExMDE7Ozs7TjtIQU5HVUwgTEVUVEVSIFNTQU5HIEdJWUVPRzs7OzsKKzMxMzM7SEFOR1VMIExFVFRFUiBLSVlFT0stU0lPUztMbzswO0w7PGNvbXBhdD4gMTFBQTs7OztOO0hBTkdVTCBMRVRURVIgR0lZRU9HIFNJT1M7Ozs7CiszMTM0O0hBTkdVTCBMRVRURVIgTklFVU47TG87MDtMOzxjb21wYXQ+IDExMDI7Ozs7Tjs7Ozs7CiszMTM1O0hBTkdVTCBMRVRURVIgTklFVU4tQ0lFVUM7TG87MDtMOzxjb21wYXQ+IDExQUM7Ozs7TjtIQU5HVUwgTEVUVEVSIE5JRVVOIEpJRVVKOzs7OworMzEzNjtIQU5HVUwgTEVUVEVSIE5JRVVOLUhJRVVIO0xvOzA7TDs8Y29tcGF0PiAxMUFEOzs7O047SEFOR1VMIExFVFRFUiBOSUVVTiBISUVVSDs7OzsKKzMxMzc7SEFOR1VMIExFVFRFUiBUSUtFVVQ7TG87MDtMOzxjb21wYXQ+IDExMDM7Ozs7TjtIQU5HVUwgTEVUVEVSIERJR0VVRDs7OzsKKzMxMzg7SEFOR1VMIExFVFRFUiBTU0FOR1RJS0VVVDtMbzswO0w7PGNvbXBhdD4gMTEwNDs7OztOO0hBTkdVTCBMRVRURVIgU1NBTkcgRElHRVVEOzs7OworMzEzOTtIQU5HVUwgTEVUVEVSIFJJRVVMO0xvOzA7TDs8Y29tcGF0PiAxMTA1Ozs7O047SEFOR1VMIExFVFRFUiBMSUVVTDs7OzsKKzMxM0E7SEFOR1VMIExFVFRFUiBSSUVVTC1LSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExQjA7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIEdJWUVPRzs7OzsKKzMxM0I7SEFOR1VMIExFVFRFUiBSSUVVTC1NSUVVTTtMbzswO0w7PGNvbXBhdD4gMTFCMTs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgTUlFVU07Ozs7CiszMTNDO0hBTkdVTCBMRVRURVIgUklFVUwtUElFVVA7TG87MDtMOzxjb21wYXQ+IDExQjI7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIEJJRVVCOzs7OworMzEzRDtIQU5HVUwgTEVUVEVSIFJJRVVMLVNJT1M7TG87MDtMOzxjb21wYXQ+IDExQjM7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIFNJT1M7Ozs7CiszMTNFO0hBTkdVTCBMRVRURVIgUklFVUwtVEhJRVVUSDtMbzswO0w7PGNvbXBhdD4gMTFCNDs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgVElFVVQ7Ozs7CiszMTNGO0hBTkdVTCBMRVRURVIgUklFVUwtUEhJRVVQSDtMbzswO0w7PGNvbXBhdD4gMTFCNTs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgUElFVVA7Ozs7CiszMTQwO0hBTkdVTCBMRVRURVIgUklFVUwtSElFVUg7TG87MDtMOzxjb21wYXQ+IDExMUE7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIEhJRVVIOzs7OworMzE0MTtIQU5HVUwgTEVUVEVSIE1JRVVNO0xvOzA7TDs8Y29tcGF0PiAxMTA2Ozs7O047Ozs7OworMzE0MjtIQU5HVUwgTEVUVEVSIFBJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMTA3Ozs7O047SEFOR1VMIExFVFRFUiBCSUVVQjs7OzsKKzMxNDM7SEFOR1VMIExFVFRFUiBTU0FOR1BJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMTA4Ozs7O047SEFOR1VMIExFVFRFUiBTU0FORyBCSUVVQjs7OzsKKzMxNDQ7SEFOR1VMIExFVFRFUiBQSUVVUC1TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMTIxOzs7O047SEFOR1VMIExFVFRFUiBCSUVVQiBTSU9TOzs7OworMzE0NTtIQU5HVUwgTEVUVEVSIFNJT1M7TG87MDtMOzxjb21wYXQ+IDExMDk7Ozs7Tjs7Ozs7CiszMTQ2O0hBTkdVTCBMRVRURVIgU1NBTkdTSU9TO0xvOzA7TDs8Y29tcGF0PiAxMTBBOzs7O047SEFOR1VMIExFVFRFUiBTU0FORyBTSU9TOzs7OworMzE0NztIQU5HVUwgTEVUVEVSIElFVU5HO0xvOzA7TDs8Y29tcGF0PiAxMTBCOzs7O047Ozs7OworMzE0ODtIQU5HVUwgTEVUVEVSIENJRVVDO0xvOzA7TDs8Y29tcGF0PiAxMTBDOzs7O047SEFOR1VMIExFVFRFUiBKSUVVSjs7OzsKKzMxNDk7SEFOR1VMIExFVFRFUiBTU0FOR0NJRVVDO0xvOzA7TDs8Y29tcGF0PiAxMTBEOzs7O047SEFOR1VMIExFVFRFUiBTU0FORyBKSUVVSjs7OzsKKzMxNEE7SEFOR1VMIExFVFRFUiBDSElFVUNIO0xvOzA7TDs8Y29tcGF0PiAxMTBFOzs7O047SEFOR1VMIExFVFRFUiBDSUVVQzs7OzsKKzMxNEI7SEFOR1VMIExFVFRFUiBLSElFVUtIO0xvOzA7TDs8Y29tcGF0PiAxMTBGOzs7O047SEFOR1VMIExFVFRFUiBLSVlFT0s7Ozs7CiszMTRDO0hBTkdVTCBMRVRURVIgVEhJRVVUSDtMbzswO0w7PGNvbXBhdD4gMTExMDs7OztOO0hBTkdVTCBMRVRURVIgVElFVVQ7Ozs7CiszMTREO0hBTkdVTCBMRVRURVIgUEhJRVVQSDtMbzswO0w7PGNvbXBhdD4gMTExMTs7OztOO0hBTkdVTCBMRVRURVIgUElFVVA7Ozs7CiszMTRFO0hBTkdVTCBMRVRURVIgSElFVUg7TG87MDtMOzxjb21wYXQ+IDExMTI7Ozs7Tjs7Ozs7CiszMTRGO0hBTkdVTCBMRVRURVIgQTtMbzswO0w7PGNvbXBhdD4gMTE2MTs7OztOOzs7OzsKKzMxNTA7SEFOR1VMIExFVFRFUiBBRTtMbzswO0w7PGNvbXBhdD4gMTE2Mjs7OztOOzs7OzsKKzMxNTE7SEFOR1VMIExFVFRFUiBZQTtMbzswO0w7PGNvbXBhdD4gMTE2Mzs7OztOOzs7OzsKKzMxNTI7SEFOR1VMIExFVFRFUiBZQUU7TG87MDtMOzxjb21wYXQ+IDExNjQ7Ozs7Tjs7Ozs7CiszMTUzO0hBTkdVTCBMRVRURVIgRU87TG87MDtMOzxjb21wYXQ+IDExNjU7Ozs7Tjs7Ozs7CiszMTU0O0hBTkdVTCBMRVRURVIgRTtMbzswO0w7PGNvbXBhdD4gMTE2Njs7OztOOzs7OzsKKzMxNTU7SEFOR1VMIExFVFRFUiBZRU87TG87MDtMOzxjb21wYXQ+IDExNjc7Ozs7Tjs7Ozs7CiszMTU2O0hBTkdVTCBMRVRURVIgWUU7TG87MDtMOzxjb21wYXQ+IDExNjg7Ozs7Tjs7Ozs7CiszMTU3O0hBTkdVTCBMRVRURVIgTztMbzswO0w7PGNvbXBhdD4gMTE2OTs7OztOOzs7OzsKKzMxNTg7SEFOR1VMIExFVFRFUiBXQTtMbzswO0w7PGNvbXBhdD4gMTE2QTs7OztOOzs7OzsKKzMxNTk7SEFOR1VMIExFVFRFUiBXQUU7TG87MDtMOzxjb21wYXQ+IDExNkI7Ozs7Tjs7Ozs7CiszMTVBO0hBTkdVTCBMRVRURVIgT0U7TG87MDtMOzxjb21wYXQ+IDExNkM7Ozs7Tjs7Ozs7CiszMTVCO0hBTkdVTCBMRVRURVIgWU87TG87MDtMOzxjb21wYXQ+IDExNkQ7Ozs7Tjs7Ozs7CiszMTVDO0hBTkdVTCBMRVRURVIgVTtMbzswO0w7PGNvbXBhdD4gMTE2RTs7OztOOzs7OzsKKzMxNUQ7SEFOR1VMIExFVFRFUiBXRU87TG87MDtMOzxjb21wYXQ+IDExNkY7Ozs7Tjs7Ozs7CiszMTVFO0hBTkdVTCBMRVRURVIgV0U7TG87MDtMOzxjb21wYXQ+IDExNzA7Ozs7Tjs7Ozs7CiszMTVGO0hBTkdVTCBMRVRURVIgV0k7TG87MDtMOzxjb21wYXQ+IDExNzE7Ozs7Tjs7Ozs7CiszMTYwO0hBTkdVTCBMRVRURVIgWVU7TG87MDtMOzxjb21wYXQ+IDExNzI7Ozs7Tjs7Ozs7CiszMTYxO0hBTkdVTCBMRVRURVIgRVU7TG87MDtMOzxjb21wYXQ+IDExNzM7Ozs7Tjs7Ozs7CiszMTYyO0hBTkdVTCBMRVRURVIgWUk7TG87MDtMOzxjb21wYXQ+IDExNzQ7Ozs7Tjs7Ozs7CiszMTYzO0hBTkdVTCBMRVRURVIgSTtMbzswO0w7PGNvbXBhdD4gMTE3NTs7OztOOzs7OzsKKzMxNjQ7SEFOR1VMIEZJTExFUjtMbzswO0w7PGNvbXBhdD4gMTE2MDs7OztOO0hBTkdVTCBDQUUgT007Ozs7CiszMTY1O0hBTkdVTCBMRVRURVIgU1NBTkdOSUVVTjtMbzswO0w7PGNvbXBhdD4gMTExNDs7OztOO0hBTkdVTCBMRVRURVIgU1NBTkcgTklFVU47Ozs7CiszMTY2O0hBTkdVTCBMRVRURVIgTklFVU4tVElLRVVUO0xvOzA7TDs8Y29tcGF0PiAxMTE1Ozs7O047SEFOR1VMIExFVFRFUiBOSUVVTiBESUdFVUQ7Ozs7CiszMTY3O0hBTkdVTCBMRVRURVIgTklFVU4tU0lPUztMbzswO0w7PGNvbXBhdD4gMTFDNzs7OztOO0hBTkdVTCBMRVRURVIgTklFVU4gU0lPUzs7OzsKKzMxNjg7SEFOR1VMIExFVFRFUiBOSUVVTi1QQU5TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUM4Ozs7O047SEFOR1VMIExFVFRFUiBOSUVVTiBCQU4gQ0hJIEVVTTs7OzsKKzMxNjk7SEFOR1VMIExFVFRFUiBSSUVVTC1LSVlFT0stU0lPUztMbzswO0w7PGNvbXBhdD4gMTFDQzs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgR0lZRU9HIFNJT1M7Ozs7CiszMTZBO0hBTkdVTCBMRVRURVIgUklFVUwtVElLRVVUO0xvOzA7TDs8Y29tcGF0PiAxMUNFOzs7O047SEFOR1VMIExFVFRFUiBMSUVVTCBESUdFVUQ7Ozs7CiszMTZCO0hBTkdVTCBMRVRURVIgUklFVUwtUElFVVAtU0lPUztMbzswO0w7PGNvbXBhdD4gMTFEMzs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgQklFVUIgU0lPUzs7OzsKKzMxNkM7SEFOR1VMIExFVFRFUiBSSUVVTC1QQU5TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUQ3Ozs7O047SEFOR1VMIExFVFRFUiBMSUVVTCBCQU4gQ0hJIEVVTTs7OzsKKzMxNkQ7SEFOR1VMIExFVFRFUiBSSUVVTC1ZRU9SSU5ISUVVSDtMbzswO0w7PGNvbXBhdD4gMTFEOTs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgWUVPTElOIEhJRVVIOzs7OworMzE2RTtIQU5HVUwgTEVUVEVSIE1JRVVNLVBJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMTFDOzs7O047SEFOR1VMIExFVFRFUiBNSUVVTSBCSUVVQjs7OzsKKzMxNkY7SEFOR1VMIExFVFRFUiBNSUVVTS1TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUREOzs7O047SEFOR1VMIExFVFRFUiBNSUVVTSBTSU9TOzs7OworMzE3MDtIQU5HVUwgTEVUVEVSIE1JRVVNLVBBTlNJT1M7TG87MDtMOzxjb21wYXQ+IDExREY7Ozs7TjtIQU5HVUwgTEVUVEVSIEJJRVVCIEJBTiBDSEkgRVVNOzs7OworMzE3MTtIQU5HVUwgTEVUVEVSIEtBUFlFT1VOTUlFVU07TG87MDtMOzxjb21wYXQ+IDExMUQ7Ozs7TjtIQU5HVUwgTEVUVEVSIE1JRVVNIFNVTiBHWUVPTkcgRVVNOzs7OworMzE3MjtIQU5HVUwgTEVUVEVSIFBJRVVQLUtJWUVPSztMbzswO0w7PGNvbXBhdD4gMTExRTs7OztOO0hBTkdVTCBMRVRURVIgQklFVUIgR0lZRU9HOzs7OworMzE3MztIQU5HVUwgTEVUVEVSIFBJRVVQLVRJS0VVVDtMbzswO0w7PGNvbXBhdD4gMTEyMDs7OztOO0hBTkdVTCBMRVRURVIgQklFVUIgRElHRVVEOzs7OworMzE3NDtIQU5HVUwgTEVUVEVSIFBJRVVQLVNJT1MtS0lZRU9LO0xvOzA7TDs8Y29tcGF0PiAxMTIyOzs7O047SEFOR1VMIExFVFRFUiBCSUVVQiBTSU9TIEdJWUVPRzs7OzsKKzMxNzU7SEFOR1VMIExFVFRFUiBQSUVVUC1TSU9TLVRJS0VVVDtMbzswO0w7PGNvbXBhdD4gMTEyMzs7OztOO0hBTkdVTCBMRVRURVIgQklFVUIgU0lPUyBESUdFVUQ7Ozs7CiszMTc2O0hBTkdVTCBMRVRURVIgUElFVVAtQ0lFVUM7TG87MDtMOzxjb21wYXQ+IDExMjc7Ozs7TjtIQU5HVUwgTEVUVEVSIEJJRVVCIEpJRVVKOzs7OworMzE3NztIQU5HVUwgTEVUVEVSIFBJRVVQLVRISUVVVEg7TG87MDtMOzxjb21wYXQ+IDExMjk7Ozs7TjtIQU5HVUwgTEVUVEVSIEJJRVVCIFRJRVVUOzs7OworMzE3ODtIQU5HVUwgTEVUVEVSIEtBUFlFT1VOUElFVVA7TG87MDtMOzxjb21wYXQ+IDExMkI7Ozs7TjtIQU5HVUwgTEVUVEVSIEJJRVVCIFNVTiBHWUVPTkcgRVVNOzs7OworMzE3OTtIQU5HVUwgTEVUVEVSIEtBUFlFT1VOU1NBTkdQSUVVUDtMbzswO0w7PGNvbXBhdD4gMTEyQzs7OztOO0hBTkdVTCBMRVRURVIgU1NBTkcgQklFVUIgU1VOIEdZRU9ORyBFVU07Ozs7CiszMTdBO0hBTkdVTCBMRVRURVIgU0lPUy1LSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExMkQ7Ozs7TjtIQU5HVUwgTEVUVEVSIFNJT1MgR0lZRU9HOzs7OworMzE3QjtIQU5HVUwgTEVUVEVSIFNJT1MtTklFVU47TG87MDtMOzxjb21wYXQ+IDExMkU7Ozs7TjtIQU5HVUwgTEVUVEVSIFNJT1MgTklFVU47Ozs7CiszMTdDO0hBTkdVTCBMRVRURVIgU0lPUy1USUtFVVQ7TG87MDtMOzxjb21wYXQ+IDExMkY7Ozs7TjtIQU5HVUwgTEVUVEVSIFNJT1MgRElHRVVEOzs7OworMzE3RDtIQU5HVUwgTEVUVEVSIFNJT1MtUElFVVA7TG87MDtMOzxjb21wYXQ+IDExMzI7Ozs7TjtIQU5HVUwgTEVUVEVSIFNJT1MgQklFVUI7Ozs7CiszMTdFO0hBTkdVTCBMRVRURVIgU0lPUy1DSUVVQztMbzswO0w7PGNvbXBhdD4gMTEzNjs7OztOO0hBTkdVTCBMRVRURVIgU0lPUyBKSUVVSjs7OzsKKzMxN0Y7SEFOR1VMIExFVFRFUiBQQU5TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMTQwOzs7O047SEFOR1VMIExFVFRFUiBCQU4gQ0hJIEVVTTs7OzsKKzMxODA7SEFOR1VMIExFVFRFUiBTU0FOR0lFVU5HO0xvOzA7TDs8Y29tcGF0PiAxMTQ3Ozs7O047SEFOR1VMIExFVFRFUiBTU0FORyBJRVVORzs7OzsKKzMxODE7SEFOR1VMIExFVFRFUiBZRVNJRVVORztMbzswO0w7PGNvbXBhdD4gMTE0Qzs7OztOO0hBTkdVTCBMRVRURVIgTkdJRVVORzs7OzsKKzMxODI7SEFOR1VMIExFVFRFUiBZRVNJRVVORy1TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUYxOzs7O047SEFOR1VMIExFVFRFUiBOR0lFVU5HIFNJT1M7Ozs7CiszMTgzO0hBTkdVTCBMRVRURVIgWUVTSUVVTkctUEFOU0lPUztMbzswO0w7PGNvbXBhdD4gMTFGMjs7OztOO0hBTkdVTCBMRVRURVIgTkdJRVVORyBCQU4gQ0hJIEVVTTs7OzsKKzMxODQ7SEFOR1VMIExFVFRFUiBLQVBZRU9VTlBISUVVUEg7TG87MDtMOzxjb21wYXQ+IDExNTc7Ozs7TjtIQU5HVUwgTEVUVEVSIFBJRVVQIFNVTiBHWUVPTkcgRVVNOzs7OworMzE4NTtIQU5HVUwgTEVUVEVSIFNTQU5HSElFVUg7TG87MDtMOzxjb21wYXQ+IDExNTg7Ozs7TjtIQU5HVUwgTEVUVEVSIFNTQU5HIEhJRVVIOzs7OworMzE4NjtIQU5HVUwgTEVUVEVSIFlFT1JJTkhJRVVIO0xvOzA7TDs8Y29tcGF0PiAxMTU5Ozs7O047SEFOR1VMIExFVFRFUiBZRU9MSU4gSElFVUg7Ozs7CiszMTg3O0hBTkdVTCBMRVRURVIgWU8tWUE7TG87MDtMOzxjb21wYXQ+IDExODQ7Ozs7TjtIQU5HVUwgTEVUVEVSIFlPWUE7Ozs7CiszMTg4O0hBTkdVTCBMRVRURVIgWU8tWUFFO0xvOzA7TDs8Y29tcGF0PiAxMTg1Ozs7O047SEFOR1VMIExFVFRFUiBZT1lBRTs7OzsKKzMxODk7SEFOR1VMIExFVFRFUiBZTy1JO0xvOzA7TDs8Y29tcGF0PiAxMTg4Ozs7O047SEFOR1VMIExFVFRFUiBZT0k7Ozs7CiszMThBO0hBTkdVTCBMRVRURVIgWVUtWUVPO0xvOzA7TDs8Y29tcGF0PiAxMTkxOzs7O047SEFOR1VMIExFVFRFUiBZVVlFTzs7OzsKKzMxOEI7SEFOR1VMIExFVFRFUiBZVS1ZRTtMbzswO0w7PGNvbXBhdD4gMTE5Mjs7OztOO0hBTkdVTCBMRVRURVIgWVVZRTs7OzsKKzMxOEM7SEFOR1VMIExFVFRFUiBZVS1JO0xvOzA7TDs8Y29tcGF0PiAxMTk0Ozs7O047SEFOR1VMIExFVFRFUiBZVUk7Ozs7CiszMThEO0hBTkdVTCBMRVRURVIgQVJBRUE7TG87MDtMOzxjb21wYXQ+IDExOUU7Ozs7TjtIQU5HVUwgTEVUVEVSIEFMQUUgQTs7OzsKKzMxOEU7SEFOR1VMIExFVFRFUiBBUkFFQUU7TG87MDtMOzxjb21wYXQ+IDExQTE7Ozs7TjtIQU5HVUwgTEVUVEVSIEFMQUUgQUU7Ozs7CiszMTkwO0lERU9HUkFQSElDIEFOTk9UQVRJT04gTElOS0lORyBNQVJLO1NvOzA7TDs7Ozs7TjtLQU5CVU4gVEFURVRFTjtLYW5idW4gVGF0ZXRlbjs7OworMzE5MTtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIFJFVkVSU0UgTUFSSztTbzswO0w7Ozs7O047S0FFUklURU4gUkU7S2Flcml0ZW47OzsKKzMxOTI7SURFT0dSQVBISUMgQU5OT1RBVElPTiBPTkUgTUFSSztObzswO0w7PHN1cGVyPiA0RTAwOzs7MTtOO0tBRVJJVEVOIElUSTtLYWVyaXRlbjs7OworMzE5MztJREVPR1JBUEhJQyBBTk5PVEFUSU9OIFRXTyBNQVJLO05vOzA7TDs8c3VwZXI+IDRFOEM7OzsyO047S0FFUklURU4gTkk7S2Flcml0ZW47OzsKKzMxOTQ7SURFT0dSQVBISUMgQU5OT1RBVElPTiBUSFJFRSBNQVJLO05vOzA7TDs8c3VwZXI+IDRFMDk7OzszO047S0FFUklURU4gU0FOO0thZXJpdGVuOzs7CiszMTk1O0lERU9HUkFQSElDIEFOTk9UQVRJT04gRk9VUiBNQVJLO05vOzA7TDs8c3VwZXI+IDU2REI7Ozs0O047S0FFUklURU4gU0k7S2Flcml0ZW47OzsKKzMxOTY7SURFT0dSQVBISUMgQU5OT1RBVElPTiBUT1AgTUFSSztTbzswO0w7PHN1cGVyPiA0RTBBOzs7O047S0FFUklURU4gWllPVTtLYWVyaXRlbjs7OworMzE5NztJREVPR1JBUEhJQyBBTk5PVEFUSU9OIE1JRERMRSBNQVJLO1NvOzA7TDs8c3VwZXI+IDRFMkQ7Ozs7TjtLQUVSSVRFTiBUWVVVO0thZXJpdGVuOzs7CiszMTk4O0lERU9HUkFQSElDIEFOTk9UQVRJT04gQk9UVE9NIE1BUks7U287MDtMOzxzdXBlcj4gNEUwQjs7OztOO0tBRVJJVEVOIEdFO0thZXJpdGVuOzs7CiszMTk5O0lERU9HUkFQSElDIEFOTk9UQVRJT04gRklSU1QgTUFSSztTbzswO0w7PHN1cGVyPiA3NTMyOzs7O047S0FFUklURU4gS09VO0thZXJpdGVuOzs7CiszMTlBO0lERU9HUkFQSElDIEFOTk9UQVRJT04gU0VDT05EIE1BUks7U287MDtMOzxzdXBlcj4gNEU1OTs7OztOO0tBRVJJVEVOIE9UVTtLYWVyaXRlbjs7OworMzE5QjtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIFRISVJEIE1BUks7U287MDtMOzxzdXBlcj4gNEUxOTs7OztOO0tBRVJJVEVOIEhFSTtLYWVyaXRlbjs7OworMzE5QztJREVPR1JBUEhJQyBBTk5PVEFUSU9OIEZPVVJUSCBNQVJLO1NvOzA7TDs8c3VwZXI+IDRFMDE7Ozs7TjtLQUVSSVRFTiBURUk7S2Flcml0ZW47OzsKKzMxOUQ7SURFT0dSQVBISUMgQU5OT1RBVElPTiBIRUFWRU4gTUFSSztTbzswO0w7PHN1cGVyPiA1OTI5Ozs7O047S0FFUklURU4gVEVOO0thZXJpdGVuOzs7CiszMTlFO0lERU9HUkFQSElDIEFOTk9UQVRJT04gRUFSVEggTUFSSztTbzswO0w7PHN1cGVyPiA1NzMwOzs7O047S0FFUklURU4gVEk7S2Flcml0ZW47OzsKKzMxOUY7SURFT0dSQVBISUMgQU5OT1RBVElPTiBNQU4gTUFSSztTbzswO0w7PHN1cGVyPiA0RUJBOzs7O047S0FFUklURU4gWklOO0thZXJpdGVuOzs7CiszMUEwO0JPUE9NT0ZPIExFVFRFUiBCVTtMbzswO0w7Ozs7O047Ozs7OworMzFBMTtCT1BPTU9GTyBMRVRURVIgWkk7TG87MDtMOzs7OztOOzs7OzsKKzMxQTI7Qk9QT01PRk8gTEVUVEVSIEpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUEzO0JPUE9NT0ZPIExFVFRFUiBHVTtMbzswO0w7Ozs7O047Ozs7OworMzFBNDtCT1BPTU9GTyBMRVRURVIgRUU7TG87MDtMOzs7OztOOzs7OzsKKzMxQTU7Qk9QT01PRk8gTEVUVEVSIEVOTjtMbzswO0w7Ozs7O047Ozs7OworMzFBNjtCT1BPTU9GTyBMRVRURVIgT087TG87MDtMOzs7OztOOzs7OzsKKzMxQTc7Qk9QT01PRk8gTEVUVEVSIE9OTjtMbzswO0w7Ozs7O047Ozs7OworMzFBODtCT1BPTU9GTyBMRVRURVIgSVI7TG87MDtMOzs7OztOOzs7OzsKKzMxQTk7Qk9QT01PRk8gTEVUVEVSIEFOTjtMbzswO0w7Ozs7O047Ozs7OworMzFBQTtCT1BPTU9GTyBMRVRURVIgSU5OO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUFCO0JPUE9NT0ZPIExFVFRFUiBVTk47TG87MDtMOzs7OztOOzs7OzsKKzMxQUM7Qk9QT01PRk8gTEVUVEVSIElNO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUFEO0JPUE9NT0ZPIExFVFRFUiBOR0c7TG87MDtMOzs7OztOOzs7OzsKKzMxQUU7Qk9QT01PRk8gTEVUVEVSIEFJTk47TG87MDtMOzs7OztOOzs7OzsKKzMxQUY7Qk9QT01PRk8gTEVUVEVSIEFVTk47TG87MDtMOzs7OztOOzs7OzsKKzMxQjA7Qk9QT01PRk8gTEVUVEVSIEFNO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUIxO0JPUE9NT0ZPIExFVFRFUiBPTTtMbzswO0w7Ozs7O047Ozs7OworMzFCMjtCT1BPTU9GTyBMRVRURVIgT05HO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUIzO0JPUE9NT0ZPIExFVFRFUiBJTk5OO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUI0O0JPUE9NT0ZPIEZJTkFMIExFVFRFUiBQO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUI1O0JPUE9NT0ZPIEZJTkFMIExFVFRFUiBUO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUI2O0JPUE9NT0ZPIEZJTkFMIExFVFRFUiBLO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUI3O0JPUE9NT0ZPIEZJTkFMIExFVFRFUiBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUYwO0tBVEFLQU5BIExFVFRFUiBTTUFMTCBLVTtMbzswO0w7Ozs7O047Ozs7OworMzFGMTtLQVRBS0FOQSBMRVRURVIgU01BTEwgU0k7TG87MDtMOzs7OztOOzs7OzsKKzMxRjI7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIFNVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUYzO0tBVEFLQU5BIExFVFRFUiBTTUFMTCBUTztMbzswO0w7Ozs7O047Ozs7OworMzFGNDtLQVRBS0FOQSBMRVRURVIgU01BTEwgTlU7TG87MDtMOzs7OztOOzs7OzsKKzMxRjU7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUY2O0tBVEFLQU5BIExFVFRFUiBTTUFMTCBISTtMbzswO0w7Ozs7O047Ozs7OworMzFGNztLQVRBS0FOQSBMRVRURVIgU01BTEwgSFU7TG87MDtMOzs7OztOOzs7OzsKKzMxRjg7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUY5O0tBVEFLQU5BIExFVFRFUiBTTUFMTCBITztMbzswO0w7Ozs7O047Ozs7OworMzFGQTtLQVRBS0FOQSBMRVRURVIgU01BTEwgTVU7TG87MDtMOzs7OztOOzs7OzsKKzMxRkI7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUZDO0tBVEFLQU5BIExFVFRFUiBTTUFMTCBSSTtMbzswO0w7Ozs7O047Ozs7OworMzFGRDtLQVRBS0FOQSBMRVRURVIgU01BTEwgUlU7TG87MDtMOzs7OztOOzs7OzsKKzMxRkU7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIFJFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUZGO0tBVEFLQU5BIExFVFRFUiBTTUFMTCBSTztMbzswO0w7Ozs7O047Ozs7OworMzIwMDtQQVJFTlRIRVNJWkVEIEhBTkdVTCBLSVlFT0s7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwMCAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgR0lZRU9HOzs7OworMzIwMTtQQVJFTlRIRVNJWkVEIEhBTkdVTCBOSUVVTjtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTAyIDAwMjk7Ozs7Tjs7Ozs7CiszMjAyO1BBUkVOVEhFU0laRUQgSEFOR1VMIFRJS0VVVDtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTAzIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBESUdFVUQ7Ozs7CiszMjAzO1BBUkVOVEhFU0laRUQgSEFOR1VMIFJJRVVMO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDUgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIExJRVVMOzs7OworMzIwNDtQQVJFTlRIRVNJWkVEIEhBTkdVTCBNSUVVTTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTA2IDAwMjk7Ozs7Tjs7Ozs7CiszMjA1O1BBUkVOVEhFU0laRUQgSEFOR1VMIFBJRVVQO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDcgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIEJJRVVCOzs7OworMzIwNjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBTSU9TO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDkgMDAyOTs7OztOOzs7OzsKKzMyMDc7UEFSRU5USEVTSVpFRCBIQU5HVUwgSUVVTkc7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwQiAwMDI5Ozs7O047Ozs7OworMzIwODtQQVJFTlRIRVNJWkVEIEhBTkdVTCBDSUVVQztTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTBDIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBKSUVVSjs7OzsKKzMyMDk7UEFSRU5USEVTSVpFRCBIQU5HVUwgQ0hJRVVDSDtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTBFIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBDSUVVQzs7OzsKKzMyMEE7UEFSRU5USEVTSVpFRCBIQU5HVUwgS0hJRVVLSDtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTBGIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBLSVlFT0s7Ozs7CiszMjBCO1BBUkVOVEhFU0laRUQgSEFOR1VMIFRISUVVVEg7U287MDtMOzxjb21wYXQ+IDAwMjggMTExMCAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgVElFVVQ7Ozs7CiszMjBDO1BBUkVOVEhFU0laRUQgSEFOR1VMIFBISUVVUEg7U287MDtMOzxjb21wYXQ+IDAwMjggMTExMSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgUElFVVA7Ozs7CiszMjBEO1BBUkVOVEhFU0laRUQgSEFOR1VMIEhJRVVIO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMTIgMDAyOTs7OztOOzs7OzsKKzMyMEU7UEFSRU5USEVTSVpFRCBIQU5HVUwgS0lZRU9LIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwMCAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBHQTs7OzsKKzMyMEY7UEFSRU5USEVTSVpFRCBIQU5HVUwgTklFVU4gQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTAyIDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIE5BOzs7OworMzIxMDtQQVJFTlRIRVNJWkVEIEhBTkdVTCBUSUtFVVQgQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTAzIDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIERBOzs7OworMzIxMTtQQVJFTlRIRVNJWkVEIEhBTkdVTCBSSUVVTCBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDUgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgTEE7Ozs7CiszMjEyO1BBUkVOVEhFU0laRUQgSEFOR1VMIE1JRVVNIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwNiAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBNQTs7OzsKKzMyMTM7UEFSRU5USEVTSVpFRCBIQU5HVUwgUElFVVAgQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTA3IDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIEJBOzs7OworMzIxNDtQQVJFTlRIRVNJWkVEIEhBTkdVTCBTSU9TIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwOSAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBTQTs7OzsKKzMyMTU7UEFSRU5USEVTSVpFRCBIQU5HVUwgSUVVTkcgQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTBCIDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIEE7Ozs7CiszMjE2O1BBUkVOVEhFU0laRUQgSEFOR1VMIENJRVVDIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwQyAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBKQTs7OzsKKzMyMTc7UEFSRU5USEVTSVpFRCBIQU5HVUwgQ0hJRVVDSCBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMEUgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgQ0E7Ozs7CiszMjE4O1BBUkVOVEhFU0laRUQgSEFOR1VMIEtISUVVS0ggQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTBGIDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIEtBOzs7OworMzIxOTtQQVJFTlRIRVNJWkVEIEhBTkdVTCBUSElFVVRIIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTExMCAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBUQTs7OzsKKzMyMUE7UEFSRU5USEVTSVpFRCBIQU5HVUwgUEhJRVVQSCBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMTEgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgUEE7Ozs7CiszMjFCO1BBUkVOVEhFU0laRUQgSEFOR1VMIEhJRVVIIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTExMiAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBIQTs7OzsKKzMyMUM7UEFSRU5USEVTSVpFRCBIQU5HVUwgQ0lFVUMgVTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTBDIDExNkUgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIEpVOzs7OworMzIyMDtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBPTkU7Tm87MDtMOzxjb21wYXQ+IDAwMjggNEUwMCAwMDI5Ozs7MTtOOzs7OzsKKzMyMjE7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggVFdPO05vOzA7TDs8Y29tcGF0PiAwMDI4IDRFOEMgMDAyOTs7OzI7Tjs7Ozs7CiszMjIyO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFRIUkVFO05vOzA7TDs8Y29tcGF0PiAwMDI4IDRFMDkgMDAyOTs7OzM7Tjs7Ozs7CiszMjIzO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIEZPVVI7Tm87MDtMOzxjb21wYXQ+IDAwMjggNTZEQiAwMDI5Ozs7NDtOOzs7OzsKKzMyMjQ7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggRklWRTtObzswO0w7PGNvbXBhdD4gMDAyOCA0RTk0IDAwMjk7Ozs1O047Ozs7OworMzIyNTtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBTSVg7Tm87MDtMOzxjb21wYXQ+IDAwMjggNTE2RCAwMDI5Ozs7NjtOOzs7OzsKKzMyMjY7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggU0VWRU47Tm87MDtMOzxjb21wYXQ+IDAwMjggNEUwMyAwMDI5Ozs7NztOOzs7OzsKKzMyMjc7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggRUlHSFQ7Tm87MDtMOzxjb21wYXQ+IDAwMjggNTE2QiAwMDI5Ozs7ODtOOzs7OzsKKzMyMjg7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggTklORTtObzswO0w7PGNvbXBhdD4gMDAyOCA0RTVEIDAwMjk7Ozs5O047Ozs7OworMzIyOTtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBURU47Tm87MDtMOzxjb21wYXQ+IDAwMjggNTM0MSAwMDI5Ozs7MTA7Tjs7Ozs7CiszMjJBO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIE1PT047U287MDtMOzxjb21wYXQ+IDAwMjggNjcwOCAwMDI5Ozs7O047Ozs7OworMzIyQjtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBGSVJFO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDcwNkIgMDAyOTs7OztOOzs7OzsKKzMyMkM7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggV0FURVI7U287MDtMOzxjb21wYXQ+IDAwMjggNkMzNCAwMDI5Ozs7O047Ozs7OworMzIyRDtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBXT09EO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDY3MjggMDAyOTs7OztOOzs7OzsKKzMyMkU7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggTUVUQUw7U287MDtMOzxjb21wYXQ+IDAwMjggOTFEMSAwMDI5Ozs7O047Ozs7OworMzIyRjtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBFQVJUSDtTbzswO0w7PGNvbXBhdD4gMDAyOCA1NzFGIDAwMjk7Ozs7Tjs7Ozs7CiszMjMwO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFNVTjtTbzswO0w7PGNvbXBhdD4gMDAyOCA2NUU1IDAwMjk7Ozs7Tjs7Ozs7CiszMjMxO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFNUT0NLO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDY4MkEgMDAyOTs7OztOOzs7OzsKKzMyMzI7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggSEFWRTtTbzswO0w7PGNvbXBhdD4gMDAyOCA2NzA5IDAwMjk7Ozs7Tjs7Ozs7CiszMjMzO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFNPQ0lFVFk7U287MDtMOzxjb21wYXQ+IDAwMjggNzkzRSAwMDI5Ozs7O047Ozs7OworMzIzNDtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBOQU1FO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDU0MEQgMDAyOTs7OztOOzs7OzsKKzMyMzU7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggU1BFQ0lBTDtTbzswO0w7PGNvbXBhdD4gMDAyOCA3Mjc5IDAwMjk7Ozs7Tjs7Ozs7CiszMjM2O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIEZJTkFOQ0lBTDtTbzswO0w7PGNvbXBhdD4gMDAyOCA4Q0ExIDAwMjk7Ozs7Tjs7Ozs7CiszMjM3O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIENPTkdSQVRVTEFUSU9OO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDc5NUQgMDAyOTs7OztOOzs7OzsKKzMyMzg7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggTEFCT1I7U287MDtMOzxjb21wYXQ+IDAwMjggNTJCNCAwMDI5Ozs7O047Ozs7OworMzIzOTtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBSRVBSRVNFTlQ7U287MDtMOzxjb21wYXQ+IDAwMjggNEVFMyAwMDI5Ozs7O047Ozs7OworMzIzQTtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBDQUxMO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDU0N0MgMDAyOTs7OztOOzs7OzsKKzMyM0I7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggU1RVRFk7U287MDtMOzxjb21wYXQ+IDAwMjggNUI2NiAwMDI5Ozs7O047Ozs7OworMzIzQztQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBTVVBFUlZJU0U7U287MDtMOzxjb21wYXQ+IDAwMjggNzZFMyAwMDI5Ozs7O047Ozs7OworMzIzRDtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBFTlRFUlBSSVNFO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDRGMDEgMDAyOTs7OztOOzs7OzsKKzMyM0U7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggUkVTT1VSQ0U7U287MDtMOzxjb21wYXQ+IDAwMjggOENDNyAwMDI5Ozs7O047Ozs7OworMzIzRjtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBBTExJQU5DRTtTbzswO0w7PGNvbXBhdD4gMDAyOCA1MzU0IDAwMjk7Ozs7Tjs7Ozs7CiszMjQwO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIEZFU1RJVkFMO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDc5NkQgMDAyOTs7OztOOzs7OzsKKzMyNDE7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggUkVTVDtTbzswO0w7PGNvbXBhdD4gMDAyOCA0RjExIDAwMjk7Ozs7Tjs7Ozs7CiszMjQyO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFNFTEY7U287MDtMOzxjb21wYXQ+IDAwMjggODFFQSAwMDI5Ozs7O047Ozs7OworMzI0MztQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBSRUFDSDtTbzswO0w7PGNvbXBhdD4gMDAyOCA4MUYzIDAwMjk7Ozs7Tjs7Ozs7CiszMjUxO0NJUkNMRUQgTlVNQkVSIFRXRU5UWSBPTkU7Tm87MDtPTjs8Y2lyY2xlPiAwMDMyIDAwMzE7OzsyMTtOOzs7OzsKKzMyNTI7Q0lSQ0xFRCBOVU1CRVIgVFdFTlRZIFRXTztObzswO09OOzxjaXJjbGU+IDAwMzIgMDAzMjs7OzIyO047Ozs7OworMzI1MztDSVJDTEVEIE5VTUJFUiBUV0VOVFkgVEhSRUU7Tm87MDtPTjs8Y2lyY2xlPiAwMDMyIDAwMzM7OzsyMztOOzs7OzsKKzMyNTQ7Q0lSQ0xFRCBOVU1CRVIgVFdFTlRZIEZPVVI7Tm87MDtPTjs8Y2lyY2xlPiAwMDMyIDAwMzQ7OzsyNDtOOzs7OzsKKzMyNTU7Q0lSQ0xFRCBOVU1CRVIgVFdFTlRZIEZJVkU7Tm87MDtPTjs8Y2lyY2xlPiAwMDMyIDAwMzU7OzsyNTtOOzs7OzsKKzMyNTY7Q0lSQ0xFRCBOVU1CRVIgVFdFTlRZIFNJWDtObzswO09OOzxjaXJjbGU+IDAwMzIgMDAzNjs7OzI2O047Ozs7OworMzI1NztDSVJDTEVEIE5VTUJFUiBUV0VOVFkgU0VWRU47Tm87MDtPTjs8Y2lyY2xlPiAwMDMyIDAwMzc7OzsyNztOOzs7OzsKKzMyNTg7Q0lSQ0xFRCBOVU1CRVIgVFdFTlRZIEVJR0hUO05vOzA7T047PGNpcmNsZT4gMDAzMiAwMDM4Ozs7Mjg7Tjs7Ozs7CiszMjU5O0NJUkNMRUQgTlVNQkVSIFRXRU5UWSBOSU5FO05vOzA7T047PGNpcmNsZT4gMDAzMiAwMDM5Ozs7Mjk7Tjs7Ozs7CiszMjVBO0NJUkNMRUQgTlVNQkVSIFRISVJUWTtObzswO09OOzxjaXJjbGU+IDAwMzMgMDAzMDs7OzMwO047Ozs7OworMzI1QjtDSVJDTEVEIE5VTUJFUiBUSElSVFkgT05FO05vOzA7T047PGNpcmNsZT4gMDAzMyAwMDMxOzs7MzE7Tjs7Ozs7CiszMjVDO0NJUkNMRUQgTlVNQkVSIFRISVJUWSBUV087Tm87MDtPTjs8Y2lyY2xlPiAwMDMzIDAwMzI7OzszMjtOOzs7OzsKKzMyNUQ7Q0lSQ0xFRCBOVU1CRVIgVEhJUlRZIFRIUkVFO05vOzA7T047PGNpcmNsZT4gMDAzMyAwMDMzOzs7MzM7Tjs7Ozs7CiszMjVFO0NJUkNMRUQgTlVNQkVSIFRISVJUWSBGT1VSO05vOzA7T047PGNpcmNsZT4gMDAzMyAwMDM0Ozs7MzQ7Tjs7Ozs7CiszMjVGO0NJUkNMRUQgTlVNQkVSIFRISVJUWSBGSVZFO05vOzA7T047PGNpcmNsZT4gMDAzMyAwMDM1Ozs7MzU7Tjs7Ozs7CiszMjYwO0NJUkNMRUQgSEFOR1VMIEtJWUVPSztTbzswO0w7PGNpcmNsZT4gMTEwMDs7OztOO0NJUkNMRUQgSEFOR1VMIEdJWUVPRzs7OzsKKzMyNjE7Q0lSQ0xFRCBIQU5HVUwgTklFVU47U287MDtMOzxjaXJjbGU+IDExMDI7Ozs7Tjs7Ozs7CiszMjYyO0NJUkNMRUQgSEFOR1VMIFRJS0VVVDtTbzswO0w7PGNpcmNsZT4gMTEwMzs7OztOO0NJUkNMRUQgSEFOR1VMIERJR0VVRDs7OzsKKzMyNjM7Q0lSQ0xFRCBIQU5HVUwgUklFVUw7U287MDtMOzxjaXJjbGU+IDExMDU7Ozs7TjtDSVJDTEVEIEhBTkdVTCBMSUVVTDs7OzsKKzMyNjQ7Q0lSQ0xFRCBIQU5HVUwgTUlFVU07U287MDtMOzxjaXJjbGU+IDExMDY7Ozs7Tjs7Ozs7CiszMjY1O0NJUkNMRUQgSEFOR1VMIFBJRVVQO1NvOzA7TDs8Y2lyY2xlPiAxMTA3Ozs7O047Q0lSQ0xFRCBIQU5HVUwgQklFVUI7Ozs7CiszMjY2O0NJUkNMRUQgSEFOR1VMIFNJT1M7U287MDtMOzxjaXJjbGU+IDExMDk7Ozs7Tjs7Ozs7CiszMjY3O0NJUkNMRUQgSEFOR1VMIElFVU5HO1NvOzA7TDs8Y2lyY2xlPiAxMTBCOzs7O047Ozs7OworMzI2ODtDSVJDTEVEIEhBTkdVTCBDSUVVQztTbzswO0w7PGNpcmNsZT4gMTEwQzs7OztOO0NJUkNMRUQgSEFOR1VMIEpJRVVKOzs7OworMzI2OTtDSVJDTEVEIEhBTkdVTCBDSElFVUNIO1NvOzA7TDs8Y2lyY2xlPiAxMTBFOzs7O047Q0lSQ0xFRCBIQU5HVUwgQ0lFVUM7Ozs7CiszMjZBO0NJUkNMRUQgSEFOR1VMIEtISUVVS0g7U287MDtMOzxjaXJjbGU+IDExMEY7Ozs7TjtDSVJDTEVEIEhBTkdVTCBLSVlFT0s7Ozs7CiszMjZCO0NJUkNMRUQgSEFOR1VMIFRISUVVVEg7U287MDtMOzxjaXJjbGU+IDExMTA7Ozs7TjtDSVJDTEVEIEhBTkdVTCBUSUVVVDs7OzsKKzMyNkM7Q0lSQ0xFRCBIQU5HVUwgUEhJRVVQSDtTbzswO0w7PGNpcmNsZT4gMTExMTs7OztOO0NJUkNMRUQgSEFOR1VMIFBJRVVQOzs7OworMzI2RDtDSVJDTEVEIEhBTkdVTCBISUVVSDtTbzswO0w7PGNpcmNsZT4gMTExMjs7OztOOzs7OzsKKzMyNkU7Q0lSQ0xFRCBIQU5HVUwgS0lZRU9LIEE7U287MDtMOzxjaXJjbGU+IDExMDAgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIEdBOzs7OworMzI2RjtDSVJDTEVEIEhBTkdVTCBOSUVVTiBBO1NvOzA7TDs8Y2lyY2xlPiAxMTAyIDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBOQTs7OzsKKzMyNzA7Q0lSQ0xFRCBIQU5HVUwgVElLRVVUIEE7U287MDtMOzxjaXJjbGU+IDExMDMgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIERBOzs7OworMzI3MTtDSVJDTEVEIEhBTkdVTCBSSUVVTCBBO1NvOzA7TDs8Y2lyY2xlPiAxMTA1IDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBMQTs7OzsKKzMyNzI7Q0lSQ0xFRCBIQU5HVUwgTUlFVU0gQTtTbzswO0w7PGNpcmNsZT4gMTEwNiAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgTUE7Ozs7CiszMjczO0NJUkNMRUQgSEFOR1VMIFBJRVVQIEE7U287MDtMOzxjaXJjbGU+IDExMDcgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIEJBOzs7OworMzI3NDtDSVJDTEVEIEhBTkdVTCBTSU9TIEE7U287MDtMOzxjaXJjbGU+IDExMDkgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIFNBOzs7OworMzI3NTtDSVJDTEVEIEhBTkdVTCBJRVVORyBBO1NvOzA7TDs8Y2lyY2xlPiAxMTBCIDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBBOzs7OworMzI3NjtDSVJDTEVEIEhBTkdVTCBDSUVVQyBBO1NvOzA7TDs8Y2lyY2xlPiAxMTBDIDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBKQTs7OzsKKzMyNzc7Q0lSQ0xFRCBIQU5HVUwgQ0hJRVVDSCBBO1NvOzA7TDs8Y2lyY2xlPiAxMTBFIDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBDQTs7OzsKKzMyNzg7Q0lSQ0xFRCBIQU5HVUwgS0hJRVVLSCBBO1NvOzA7TDs8Y2lyY2xlPiAxMTBGIDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBLQTs7OzsKKzMyNzk7Q0lSQ0xFRCBIQU5HVUwgVEhJRVVUSCBBO1NvOzA7TDs8Y2lyY2xlPiAxMTEwIDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBUQTs7OzsKKzMyN0E7Q0lSQ0xFRCBIQU5HVUwgUEhJRVVQSCBBO1NvOzA7TDs8Y2lyY2xlPiAxMTExIDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBQQTs7OzsKKzMyN0I7Q0lSQ0xFRCBIQU5HVUwgSElFVUggQTtTbzswO0w7PGNpcmNsZT4gMTExMiAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgSEE7Ozs7CiszMjdGO0tPUkVBTiBTVEFOREFSRCBTWU1CT0w7U287MDtMOzs7OztOOzs7OzsKKzMyODA7Q0lSQ0xFRCBJREVPR1JBUEggT05FO05vOzA7TDs8Y2lyY2xlPiA0RTAwOzs7MTtOOzs7OzsKKzMyODE7Q0lSQ0xFRCBJREVPR1JBUEggVFdPO05vOzA7TDs8Y2lyY2xlPiA0RThDOzs7MjtOOzs7OzsKKzMyODI7Q0lSQ0xFRCBJREVPR1JBUEggVEhSRUU7Tm87MDtMOzxjaXJjbGU+IDRFMDk7OzszO047Ozs7OworMzI4MztDSVJDTEVEIElERU9HUkFQSCBGT1VSO05vOzA7TDs8Y2lyY2xlPiA1NkRCOzs7NDtOOzs7OzsKKzMyODQ7Q0lSQ0xFRCBJREVPR1JBUEggRklWRTtObzswO0w7PGNpcmNsZT4gNEU5NDs7OzU7Tjs7Ozs7CiszMjg1O0NJUkNMRUQgSURFT0dSQVBIIFNJWDtObzswO0w7PGNpcmNsZT4gNTE2RDs7OzY7Tjs7Ozs7CiszMjg2O0NJUkNMRUQgSURFT0dSQVBIIFNFVkVOO05vOzA7TDs8Y2lyY2xlPiA0RTAzOzs7NztOOzs7OzsKKzMyODc7Q0lSQ0xFRCBJREVPR1JBUEggRUlHSFQ7Tm87MDtMOzxjaXJjbGU+IDUxNkI7Ozs4O047Ozs7OworMzI4ODtDSVJDTEVEIElERU9HUkFQSCBOSU5FO05vOzA7TDs8Y2lyY2xlPiA0RTVEOzs7OTtOOzs7OzsKKzMyODk7Q0lSQ0xFRCBJREVPR1JBUEggVEVOO05vOzA7TDs8Y2lyY2xlPiA1MzQxOzs7MTA7Tjs7Ozs7CiszMjhBO0NJUkNMRUQgSURFT0dSQVBIIE1PT047U287MDtMOzxjaXJjbGU+IDY3MDg7Ozs7Tjs7Ozs7CiszMjhCO0NJUkNMRUQgSURFT0dSQVBIIEZJUkU7U287MDtMOzxjaXJjbGU+IDcwNkI7Ozs7Tjs7Ozs7CiszMjhDO0NJUkNMRUQgSURFT0dSQVBIIFdBVEVSO1NvOzA7TDs8Y2lyY2xlPiA2QzM0Ozs7O047Ozs7OworMzI4RDtDSVJDTEVEIElERU9HUkFQSCBXT09EO1NvOzA7TDs8Y2lyY2xlPiA2NzI4Ozs7O047Ozs7OworMzI4RTtDSVJDTEVEIElERU9HUkFQSCBNRVRBTDtTbzswO0w7PGNpcmNsZT4gOTFEMTs7OztOOzs7OzsKKzMyOEY7Q0lSQ0xFRCBJREVPR1JBUEggRUFSVEg7U287MDtMOzxjaXJjbGU+IDU3MUY7Ozs7Tjs7Ozs7CiszMjkwO0NJUkNMRUQgSURFT0dSQVBIIFNVTjtTbzswO0w7PGNpcmNsZT4gNjVFNTs7OztOOzs7OzsKKzMyOTE7Q0lSQ0xFRCBJREVPR1JBUEggU1RPQ0s7U287MDtMOzxjaXJjbGU+IDY4MkE7Ozs7Tjs7Ozs7CiszMjkyO0NJUkNMRUQgSURFT0dSQVBIIEhBVkU7U287MDtMOzxjaXJjbGU+IDY3MDk7Ozs7Tjs7Ozs7CiszMjkzO0NJUkNMRUQgSURFT0dSQVBIIFNPQ0lFVFk7U287MDtMOzxjaXJjbGU+IDc5M0U7Ozs7Tjs7Ozs7CiszMjk0O0NJUkNMRUQgSURFT0dSQVBIIE5BTUU7U287MDtMOzxjaXJjbGU+IDU0MEQ7Ozs7Tjs7Ozs7CiszMjk1O0NJUkNMRUQgSURFT0dSQVBIIFNQRUNJQUw7U287MDtMOzxjaXJjbGU+IDcyNzk7Ozs7Tjs7Ozs7CiszMjk2O0NJUkNMRUQgSURFT0dSQVBIIEZJTkFOQ0lBTDtTbzswO0w7PGNpcmNsZT4gOENBMTs7OztOOzs7OzsKKzMyOTc7Q0lSQ0xFRCBJREVPR1JBUEggQ09OR1JBVFVMQVRJT047U287MDtMOzxjaXJjbGU+IDc5NUQ7Ozs7Tjs7Ozs7CiszMjk4O0NJUkNMRUQgSURFT0dSQVBIIExBQk9SO1NvOzA7TDs8Y2lyY2xlPiA1MkI0Ozs7O047Ozs7OworMzI5OTtDSVJDTEVEIElERU9HUkFQSCBTRUNSRVQ7U287MDtMOzxjaXJjbGU+IDc5RDg7Ozs7Tjs7Ozs7CiszMjlBO0NJUkNMRUQgSURFT0dSQVBIIE1BTEU7U287MDtMOzxjaXJjbGU+IDc1Mzc7Ozs7Tjs7Ozs7CiszMjlCO0NJUkNMRUQgSURFT0dSQVBIIEZFTUFMRTtTbzswO0w7PGNpcmNsZT4gNTk3Mzs7OztOOzs7OzsKKzMyOUM7Q0lSQ0xFRCBJREVPR1JBUEggU1VJVEFCTEU7U287MDtMOzxjaXJjbGU+IDkwNjk7Ozs7Tjs7Ozs7CiszMjlEO0NJUkNMRUQgSURFT0dSQVBIIEVYQ0VMTEVOVDtTbzswO0w7PGNpcmNsZT4gNTEyQTs7OztOOzs7OzsKKzMyOUU7Q0lSQ0xFRCBJREVPR1JBUEggUFJJTlQ7U287MDtMOzxjaXJjbGU+IDUzNzA7Ozs7Tjs7Ozs7CiszMjlGO0NJUkNMRUQgSURFT0dSQVBIIEFUVEVOVElPTjtTbzswO0w7PGNpcmNsZT4gNkNFODs7OztOOzs7OzsKKzMyQTA7Q0lSQ0xFRCBJREVPR1JBUEggSVRFTTtTbzswO0w7PGNpcmNsZT4gOTgwNTs7OztOOzs7OzsKKzMyQTE7Q0lSQ0xFRCBJREVPR1JBUEggUkVTVDtTbzswO0w7PGNpcmNsZT4gNEYxMTs7OztOOzs7OzsKKzMyQTI7Q0lSQ0xFRCBJREVPR1JBUEggQ09QWTtTbzswO0w7PGNpcmNsZT4gNTE5OTs7OztOOzs7OzsKKzMyQTM7Q0lSQ0xFRCBJREVPR1JBUEggQ09SUkVDVDtTbzswO0w7PGNpcmNsZT4gNkI2Mzs7OztOOzs7OzsKKzMyQTQ7Q0lSQ0xFRCBJREVPR1JBUEggSElHSDtTbzswO0w7PGNpcmNsZT4gNEUwQTs7OztOOzs7OzsKKzMyQTU7Q0lSQ0xFRCBJREVPR1JBUEggQ0VOVFJFO1NvOzA7TDs8Y2lyY2xlPiA0RTJEOzs7O047Q0lSQ0xFRCBJREVPR1JBUEggQ0VOVEVSOzs7OworMzJBNjtDSVJDTEVEIElERU9HUkFQSCBMT1c7U287MDtMOzxjaXJjbGU+IDRFMEI7Ozs7Tjs7Ozs7CiszMkE3O0NJUkNMRUQgSURFT0dSQVBIIExFRlQ7U287MDtMOzxjaXJjbGU+IDVERTY7Ozs7Tjs7Ozs7CiszMkE4O0NJUkNMRUQgSURFT0dSQVBIIFJJR0hUO1NvOzA7TDs8Y2lyY2xlPiA1M0YzOzs7O047Ozs7OworMzJBOTtDSVJDTEVEIElERU9HUkFQSCBNRURJQ0lORTtTbzswO0w7PGNpcmNsZT4gNTMzQjs7OztOOzs7OzsKKzMyQUE7Q0lSQ0xFRCBJREVPR1JBUEggUkVMSUdJT047U287MDtMOzxjaXJjbGU+IDVCOTc7Ozs7Tjs7Ozs7CiszMkFCO0NJUkNMRUQgSURFT0dSQVBIIFNUVURZO1NvOzA7TDs8Y2lyY2xlPiA1QjY2Ozs7O047Ozs7OworMzJBQztDSVJDTEVEIElERU9HUkFQSCBTVVBFUlZJU0U7U287MDtMOzxjaXJjbGU+IDc2RTM7Ozs7Tjs7Ozs7CiszMkFEO0NJUkNMRUQgSURFT0dSQVBIIEVOVEVSUFJJU0U7U287MDtMOzxjaXJjbGU+IDRGMDE7Ozs7Tjs7Ozs7CiszMkFFO0NJUkNMRUQgSURFT0dSQVBIIFJFU09VUkNFO1NvOzA7TDs8Y2lyY2xlPiA4Q0M3Ozs7O047Ozs7OworMzJBRjtDSVJDTEVEIElERU9HUkFQSCBBTExJQU5DRTtTbzswO0w7PGNpcmNsZT4gNTM1NDs7OztOOzs7OzsKKzMyQjA7Q0lSQ0xFRCBJREVPR1JBUEggTklHSFQ7U287MDtMOzxjaXJjbGU+IDU5MUM7Ozs7Tjs7Ozs7CiszMkIxO0NJUkNMRUQgTlVNQkVSIFRISVJUWSBTSVg7Tm87MDtPTjs8Y2lyY2xlPiAwMDMzIDAwMzY7OzszNjtOOzs7OzsKKzMyQjI7Q0lSQ0xFRCBOVU1CRVIgVEhJUlRZIFNFVkVOO05vOzA7T047PGNpcmNsZT4gMDAzMyAwMDM3Ozs7Mzc7Tjs7Ozs7CiszMkIzO0NJUkNMRUQgTlVNQkVSIFRISVJUWSBFSUdIVDtObzswO09OOzxjaXJjbGU+IDAwMzMgMDAzODs7OzM4O047Ozs7OworMzJCNDtDSVJDTEVEIE5VTUJFUiBUSElSVFkgTklORTtObzswO09OOzxjaXJjbGU+IDAwMzMgMDAzOTs7OzM5O047Ozs7OworMzJCNTtDSVJDTEVEIE5VTUJFUiBGT1JUWTtObzswO09OOzxjaXJjbGU+IDAwMzQgMDAzMDs7OzQwO047Ozs7OworMzJCNjtDSVJDTEVEIE5VTUJFUiBGT1JUWSBPTkU7Tm87MDtPTjs8Y2lyY2xlPiAwMDM0IDAwMzE7Ozs0MTtOOzs7OzsKKzMyQjc7Q0lSQ0xFRCBOVU1CRVIgRk9SVFkgVFdPO05vOzA7T047PGNpcmNsZT4gMDAzNCAwMDMyOzs7NDI7Tjs7Ozs7CiszMkI4O0NJUkNMRUQgTlVNQkVSIEZPUlRZIFRIUkVFO05vOzA7T047PGNpcmNsZT4gMDAzNCAwMDMzOzs7NDM7Tjs7Ozs7CiszMkI5O0NJUkNMRUQgTlVNQkVSIEZPUlRZIEZPVVI7Tm87MDtPTjs8Y2lyY2xlPiAwMDM0IDAwMzQ7Ozs0NDtOOzs7OzsKKzMyQkE7Q0lSQ0xFRCBOVU1CRVIgRk9SVFkgRklWRTtObzswO09OOzxjaXJjbGU+IDAwMzQgMDAzNTs7OzQ1O047Ozs7OworMzJCQjtDSVJDTEVEIE5VTUJFUiBGT1JUWSBTSVg7Tm87MDtPTjs8Y2lyY2xlPiAwMDM0IDAwMzY7Ozs0NjtOOzs7OzsKKzMyQkM7Q0lSQ0xFRCBOVU1CRVIgRk9SVFkgU0VWRU47Tm87MDtPTjs8Y2lyY2xlPiAwMDM0IDAwMzc7Ozs0NztOOzs7OzsKKzMyQkQ7Q0lSQ0xFRCBOVU1CRVIgRk9SVFkgRUlHSFQ7Tm87MDtPTjs8Y2lyY2xlPiAwMDM0IDAwMzg7Ozs0ODtOOzs7OzsKKzMyQkU7Q0lSQ0xFRCBOVU1CRVIgRk9SVFkgTklORTtObzswO09OOzxjaXJjbGU+IDAwMzQgMDAzOTs7OzQ5O047Ozs7OworMzJCRjtDSVJDTEVEIE5VTUJFUiBGSUZUWTtObzswO09OOzxjaXJjbGU+IDAwMzUgMDAzMDs7OzUwO047Ozs7OworMzJDMDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBKQU5VQVJZO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDY3MDg7Ozs7Tjs7Ozs7CiszMkMxO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEZFQlJVQVJZO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDY3MDg7Ozs7Tjs7Ozs7CiszMkMyO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIE1BUkNIO1NvOzA7TDs8Y29tcGF0PiAwMDMzIDY3MDg7Ozs7Tjs7Ozs7CiszMkMzO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEFQUklMO1NvOzA7TDs8Y29tcGF0PiAwMDM0IDY3MDg7Ozs7Tjs7Ozs7CiszMkM0O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIE1BWTtTbzswO0w7PGNvbXBhdD4gMDAzNSA2NzA4Ozs7O047Ozs7OworMzJDNTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBKVU5FO1NvOzA7TDs8Y29tcGF0PiAwMDM2IDY3MDg7Ozs7Tjs7Ozs7CiszMkM2O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEpVTFk7U287MDtMOzxjb21wYXQ+IDAwMzcgNjcwODs7OztOOzs7OzsKKzMyQzc7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgQVVHVVNUO1NvOzA7TDs8Y29tcGF0PiAwMDM4IDY3MDg7Ozs7Tjs7Ozs7CiszMkM4O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIFNFUFRFTUJFUjtTbzswO0w7PGNvbXBhdD4gMDAzOSA2NzA4Ozs7O047Ozs7OworMzJDOTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBPQ1RPQkVSO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzAgNjcwODs7OztOOzs7OzsKKzMyQ0E7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgTk9WRU1CRVI7U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzMSA2NzA4Ozs7O047Ozs7OworMzJDQjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBERUNFTUJFUjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDMyIDY3MDg7Ozs7Tjs7Ozs7CiszMkQwO0NJUkNMRUQgS0FUQUtBTkEgQTtTbzswO0w7PGNpcmNsZT4gMzBBMjs7OztOOzs7OzsKKzMyRDE7Q0lSQ0xFRCBLQVRBS0FOQSBJO1NvOzA7TDs8Y2lyY2xlPiAzMEE0Ozs7O047Ozs7OworMzJEMjtDSVJDTEVEIEtBVEFLQU5BIFU7U287MDtMOzxjaXJjbGU+IDMwQTY7Ozs7Tjs7Ozs7CiszMkQzO0NJUkNMRUQgS0FUQUtBTkEgRTtTbzswO0w7PGNpcmNsZT4gMzBBODs7OztOOzs7OzsKKzMyRDQ7Q0lSQ0xFRCBLQVRBS0FOQSBPO1NvOzA7TDs8Y2lyY2xlPiAzMEFBOzs7O047Ozs7OworMzJENTtDSVJDTEVEIEtBVEFLQU5BIEtBO1NvOzA7TDs8Y2lyY2xlPiAzMEFCOzs7O047Ozs7OworMzJENjtDSVJDTEVEIEtBVEFLQU5BIEtJO1NvOzA7TDs8Y2lyY2xlPiAzMEFEOzs7O047Ozs7OworMzJENztDSVJDTEVEIEtBVEFLQU5BIEtVO1NvOzA7TDs8Y2lyY2xlPiAzMEFGOzs7O047Ozs7OworMzJEODtDSVJDTEVEIEtBVEFLQU5BIEtFO1NvOzA7TDs8Y2lyY2xlPiAzMEIxOzs7O047Ozs7OworMzJEOTtDSVJDTEVEIEtBVEFLQU5BIEtPO1NvOzA7TDs8Y2lyY2xlPiAzMEIzOzs7O047Ozs7OworMzJEQTtDSVJDTEVEIEtBVEFLQU5BIFNBO1NvOzA7TDs8Y2lyY2xlPiAzMEI1Ozs7O047Ozs7OworMzJEQjtDSVJDTEVEIEtBVEFLQU5BIFNJO1NvOzA7TDs8Y2lyY2xlPiAzMEI3Ozs7O047Ozs7OworMzJEQztDSVJDTEVEIEtBVEFLQU5BIFNVO1NvOzA7TDs8Y2lyY2xlPiAzMEI5Ozs7O047Ozs7OworMzJERDtDSVJDTEVEIEtBVEFLQU5BIFNFO1NvOzA7TDs8Y2lyY2xlPiAzMEJCOzs7O047Ozs7OworMzJERTtDSVJDTEVEIEtBVEFLQU5BIFNPO1NvOzA7TDs8Y2lyY2xlPiAzMEJEOzs7O047Ozs7OworMzJERjtDSVJDTEVEIEtBVEFLQU5BIFRBO1NvOzA7TDs8Y2lyY2xlPiAzMEJGOzs7O047Ozs7OworMzJFMDtDSVJDTEVEIEtBVEFLQU5BIFRJO1NvOzA7TDs8Y2lyY2xlPiAzMEMxOzs7O047Ozs7OworMzJFMTtDSVJDTEVEIEtBVEFLQU5BIFRVO1NvOzA7TDs8Y2lyY2xlPiAzMEM0Ozs7O047Ozs7OworMzJFMjtDSVJDTEVEIEtBVEFLQU5BIFRFO1NvOzA7TDs8Y2lyY2xlPiAzMEM2Ozs7O047Ozs7OworMzJFMztDSVJDTEVEIEtBVEFLQU5BIFRPO1NvOzA7TDs8Y2lyY2xlPiAzMEM4Ozs7O047Ozs7OworMzJFNDtDSVJDTEVEIEtBVEFLQU5BIE5BO1NvOzA7TDs8Y2lyY2xlPiAzMENBOzs7O047Ozs7OworMzJFNTtDSVJDTEVEIEtBVEFLQU5BIE5JO1NvOzA7TDs8Y2lyY2xlPiAzMENCOzs7O047Ozs7OworMzJFNjtDSVJDTEVEIEtBVEFLQU5BIE5VO1NvOzA7TDs8Y2lyY2xlPiAzMENDOzs7O047Ozs7OworMzJFNztDSVJDTEVEIEtBVEFLQU5BIE5FO1NvOzA7TDs8Y2lyY2xlPiAzMENEOzs7O047Ozs7OworMzJFODtDSVJDTEVEIEtBVEFLQU5BIE5PO1NvOzA7TDs8Y2lyY2xlPiAzMENFOzs7O047Ozs7OworMzJFOTtDSVJDTEVEIEtBVEFLQU5BIEhBO1NvOzA7TDs8Y2lyY2xlPiAzMENGOzs7O047Ozs7OworMzJFQTtDSVJDTEVEIEtBVEFLQU5BIEhJO1NvOzA7TDs8Y2lyY2xlPiAzMEQyOzs7O047Ozs7OworMzJFQjtDSVJDTEVEIEtBVEFLQU5BIEhVO1NvOzA7TDs8Y2lyY2xlPiAzMEQ1Ozs7O047Ozs7OworMzJFQztDSVJDTEVEIEtBVEFLQU5BIEhFO1NvOzA7TDs8Y2lyY2xlPiAzMEQ4Ozs7O047Ozs7OworMzJFRDtDSVJDTEVEIEtBVEFLQU5BIEhPO1NvOzA7TDs8Y2lyY2xlPiAzMERCOzs7O047Ozs7OworMzJFRTtDSVJDTEVEIEtBVEFLQU5BIE1BO1NvOzA7TDs8Y2lyY2xlPiAzMERFOzs7O047Ozs7OworMzJFRjtDSVJDTEVEIEtBVEFLQU5BIE1JO1NvOzA7TDs8Y2lyY2xlPiAzMERGOzs7O047Ozs7OworMzJGMDtDSVJDTEVEIEtBVEFLQU5BIE1VO1NvOzA7TDs8Y2lyY2xlPiAzMEUwOzs7O047Ozs7OworMzJGMTtDSVJDTEVEIEtBVEFLQU5BIE1FO1NvOzA7TDs8Y2lyY2xlPiAzMEUxOzs7O047Ozs7OworMzJGMjtDSVJDTEVEIEtBVEFLQU5BIE1PO1NvOzA7TDs8Y2lyY2xlPiAzMEUyOzs7O047Ozs7OworMzJGMztDSVJDTEVEIEtBVEFLQU5BIFlBO1NvOzA7TDs8Y2lyY2xlPiAzMEU0Ozs7O047Ozs7OworMzJGNDtDSVJDTEVEIEtBVEFLQU5BIFlVO1NvOzA7TDs8Y2lyY2xlPiAzMEU2Ozs7O047Ozs7OworMzJGNTtDSVJDTEVEIEtBVEFLQU5BIFlPO1NvOzA7TDs8Y2lyY2xlPiAzMEU4Ozs7O047Ozs7OworMzJGNjtDSVJDTEVEIEtBVEFLQU5BIFJBO1NvOzA7TDs8Y2lyY2xlPiAzMEU5Ozs7O047Ozs7OworMzJGNztDSVJDTEVEIEtBVEFLQU5BIFJJO1NvOzA7TDs8Y2lyY2xlPiAzMEVBOzs7O047Ozs7OworMzJGODtDSVJDTEVEIEtBVEFLQU5BIFJVO1NvOzA7TDs8Y2lyY2xlPiAzMEVCOzs7O047Ozs7OworMzJGOTtDSVJDTEVEIEtBVEFLQU5BIFJFO1NvOzA7TDs8Y2lyY2xlPiAzMEVDOzs7O047Ozs7OworMzJGQTtDSVJDTEVEIEtBVEFLQU5BIFJPO1NvOzA7TDs8Y2lyY2xlPiAzMEVEOzs7O047Ozs7OworMzJGQjtDSVJDTEVEIEtBVEFLQU5BIFdBO1NvOzA7TDs8Y2lyY2xlPiAzMEVGOzs7O047Ozs7OworMzJGQztDSVJDTEVEIEtBVEFLQU5BIFdJO1NvOzA7TDs8Y2lyY2xlPiAzMEYwOzs7O047Ozs7OworMzJGRDtDSVJDTEVEIEtBVEFLQU5BIFdFO1NvOzA7TDs8Y2lyY2xlPiAzMEYxOzs7O047Ozs7OworMzJGRTtDSVJDTEVEIEtBVEFLQU5BIFdPO1NvOzA7TDs8Y2lyY2xlPiAzMEYyOzs7O047Ozs7OworMzMwMDtTUVVBUkUgQVBBQVRPO1NvOzA7TDs8c3F1YXJlPiAzMEEyIDMwRDEgMzBGQyAzMEM4Ozs7O047U1FVQVJFRCBBUEFBVE87Ozs7CiszMzAxO1NRVUFSRSBBUlVIVUE7U287MDtMOzxzcXVhcmU+IDMwQTIgMzBFQiAzMEQ1IDMwQTE7Ozs7TjtTUVVBUkVEIEFSVUhVQTs7OzsKKzMzMDI7U1FVQVJFIEFOUEVBO1NvOzA7TDs8c3F1YXJlPiAzMEEyIDMwRjMgMzBEQSAzMEEyOzs7O047U1FVQVJFRCBBTlBFQTs7OzsKKzMzMDM7U1FVQVJFIEFBUlU7U287MDtMOzxzcXVhcmU+IDMwQTIgMzBGQyAzMEVCOzs7O047U1FVQVJFRCBBQVJVOzs7OworMzMwNDtTUVVBUkUgSU5JTkdVO1NvOzA7TDs8c3F1YXJlPiAzMEE0IDMwQ0IgMzBGMyAzMEIwOzs7O047U1FVQVJFRCBJTklOR1U7Ozs7CiszMzA1O1NRVUFSRSBJTlRJO1NvOzA7TDs8c3F1YXJlPiAzMEE0IDMwRjMgMzBDMTs7OztOO1NRVUFSRUQgSU5USTs7OzsKKzMzMDY7U1FVQVJFIFVPTjtTbzswO0w7PHNxdWFyZT4gMzBBNiAzMEE5IDMwRjM7Ozs7TjtTUVVBUkVEIFVPTjs7OzsKKzMzMDc7U1FVQVJFIEVTVUtVVURPO1NvOzA7TDs8c3F1YXJlPiAzMEE4IDMwQjkgMzBBRiAzMEZDIDMwQzk7Ozs7TjtTUVVBUkVEIEVTVUtVVURPOzs7OworMzMwODtTUVVBUkUgRUVLQUE7U287MDtMOzxzcXVhcmU+IDMwQTggMzBGQyAzMEFCIDMwRkM7Ozs7TjtTUVVBUkVEIEVFS0FBOzs7OworMzMwOTtTUVVBUkUgT05TVTtTbzswO0w7PHNxdWFyZT4gMzBBQSAzMEYzIDMwQjk7Ozs7TjtTUVVBUkVEIE9OU1U7Ozs7CiszMzBBO1NRVUFSRSBPT01VO1NvOzA7TDs8c3F1YXJlPiAzMEFBIDMwRkMgMzBFMDs7OztOO1NRVUFSRUQgT09NVTs7OzsKKzMzMEI7U1FVQVJFIEtBSVJJO1NvOzA7TDs8c3F1YXJlPiAzMEFCIDMwQTQgMzBFQTs7OztOO1NRVUFSRUQgS0FJUkk7Ozs7CiszMzBDO1NRVUFSRSBLQVJBVFRPO1NvOzA7TDs8c3F1YXJlPiAzMEFCIDMwRTkgMzBDMyAzMEM4Ozs7O047U1FVQVJFRCBLQVJBVFRPOzs7OworMzMwRDtTUVVBUkUgS0FST1JJSTtTbzswO0w7PHNxdWFyZT4gMzBBQiAzMEVEIDMwRUEgMzBGQzs7OztOO1NRVUFSRUQgS0FST1JJSTs7OzsKKzMzMEU7U1FVQVJFIEdBUk9OO1NvOzA7TDs8c3F1YXJlPiAzMEFDIDMwRUQgMzBGMzs7OztOO1NRVUFSRUQgR0FST047Ozs7CiszMzBGO1NRVUFSRSBHQU5NQTtTbzswO0w7PHNxdWFyZT4gMzBBQyAzMEYzIDMwREU7Ozs7TjtTUVVBUkVEIEdBTk1BOzs7OworMzMxMDtTUVVBUkUgR0lHQTtTbzswO0w7PHNxdWFyZT4gMzBBRSAzMEFDOzs7O047U1FVQVJFRCBHSUdBOzs7OworMzMxMTtTUVVBUkUgR0lOSUk7U287MDtMOzxzcXVhcmU+IDMwQUUgMzBDQiAzMEZDOzs7O047U1FVQVJFRCBHSU5JSTs7OzsKKzMzMTI7U1FVQVJFIEtZVVJJSTtTbzswO0w7PHNxdWFyZT4gMzBBRCAzMEU1IDMwRUEgMzBGQzs7OztOO1NRVUFSRUQgS1lVUklJOzs7OworMzMxMztTUVVBUkUgR0lSVURBQTtTbzswO0w7PHNxdWFyZT4gMzBBRSAzMEVCIDMwQzAgMzBGQzs7OztOO1NRVUFSRUQgR0lSVURBQTs7OzsKKzMzMTQ7U1FVQVJFIEtJUk87U287MDtMOzxzcXVhcmU+IDMwQUQgMzBFRDs7OztOO1NRVUFSRUQgS0lSTzs7OzsKKzMzMTU7U1FVQVJFIEtJUk9HVVJBTVU7U287MDtMOzxzcXVhcmU+IDMwQUQgMzBFRCAzMEIwIDMwRTkgMzBFMDs7OztOO1NRVUFSRUQgS0lST0dVUkFNVTs7OzsKKzMzMTY7U1FVQVJFIEtJUk9NRUVUT1JVO1NvOzA7TDs8c3F1YXJlPiAzMEFEIDMwRUQgMzBFMSAzMEZDIDMwQzggMzBFQjs7OztOO1NRVUFSRUQgS0lST01FRVRPUlU7Ozs7CiszMzE3O1NRVUFSRSBLSVJPV0FUVE87U287MDtMOzxzcXVhcmU+IDMwQUQgMzBFRCAzMEVGIDMwQzMgMzBDODs7OztOO1NRVUFSRUQgS0lST1dBVFRPOzs7OworMzMxODtTUVVBUkUgR1VSQU1VO1NvOzA7TDs8c3F1YXJlPiAzMEIwIDMwRTkgMzBFMDs7OztOO1NRVUFSRUQgR1VSQU1VOzs7OworMzMxOTtTUVVBUkUgR1VSQU1VVE9OO1NvOzA7TDs8c3F1YXJlPiAzMEIwIDMwRTkgMzBFMCAzMEM4IDMwRjM7Ozs7TjtTUVVBUkVEIEdVUkFNVVRPTjs7OzsKKzMzMUE7U1FVQVJFIEtVUlVaRUlSTztTbzswO0w7PHNxdWFyZT4gMzBBRiAzMEVCIDMwQkMgMzBBNCAzMEVEOzs7O047U1FVQVJFRCBLVVJVWkVJUk87Ozs7CiszMzFCO1NRVUFSRSBLVVJPT05FO1NvOzA7TDs8c3F1YXJlPiAzMEFGIDMwRUQgMzBGQyAzMENEOzs7O047U1FVQVJFRCBLVVJPT05FOzs7OworMzMxQztTUVVBUkUgS0VFU1U7U287MDtMOzxzcXVhcmU+IDMwQjEgMzBGQyAzMEI5Ozs7O047U1FVQVJFRCBLRUVTVTs7OzsKKzMzMUQ7U1FVQVJFIEtPUlVOQTtTbzswO0w7PHNxdWFyZT4gMzBCMyAzMEVCIDMwQ0E7Ozs7TjtTUVVBUkVEIEtPUlVOQTs7OzsKKzMzMUU7U1FVQVJFIEtPT1BPO1NvOzA7TDs8c3F1YXJlPiAzMEIzIDMwRkMgMzBERDs7OztOO1NRVUFSRUQgS09PUE87Ozs7CiszMzFGO1NRVUFSRSBTQUlLVVJVO1NvOzA7TDs8c3F1YXJlPiAzMEI1IDMwQTQgMzBBRiAzMEVCOzs7O047U1FVQVJFRCBTQUlLVVJVOzs7OworMzMyMDtTUVVBUkUgU0FOVElJTVU7U287MDtMOzxzcXVhcmU+IDMwQjUgMzBGMyAzMEMxIDMwRkMgMzBFMDs7OztOO1NRVUFSRUQgU0FOVElJTVU7Ozs7CiszMzIxO1NRVUFSRSBTSVJJTkdVO1NvOzA7TDs8c3F1YXJlPiAzMEI3IDMwRUEgMzBGMyAzMEIwOzs7O047U1FVQVJFRCBTSVJJTkdVOzs7OworMzMyMjtTUVVBUkUgU0VOVEk7U287MDtMOzxzcXVhcmU+IDMwQkIgMzBGMyAzMEMxOzs7O047U1FVQVJFRCBTRU5USTs7OzsKKzMzMjM7U1FVQVJFIFNFTlRPO1NvOzA7TDs8c3F1YXJlPiAzMEJCIDMwRjMgMzBDODs7OztOO1NRVUFSRUQgU0VOVE87Ozs7CiszMzI0O1NRVUFSRSBEQUFTVTtTbzswO0w7PHNxdWFyZT4gMzBDMCAzMEZDIDMwQjk7Ozs7TjtTUVVBUkVEIERBQVNVOzs7OworMzMyNTtTUVVBUkUgREVTSTtTbzswO0w7PHNxdWFyZT4gMzBDNyAzMEI3Ozs7O047U1FVQVJFRCBERVNJOzs7OworMzMyNjtTUVVBUkUgRE9SVTtTbzswO0w7PHNxdWFyZT4gMzBDOSAzMEVCOzs7O047U1FVQVJFRCBET1JVOzs7OworMzMyNztTUVVBUkUgVE9OO1NvOzA7TDs8c3F1YXJlPiAzMEM4IDMwRjM7Ozs7TjtTUVVBUkVEIFRPTjs7OzsKKzMzMjg7U1FVQVJFIE5BTk87U287MDtMOzxzcXVhcmU+IDMwQ0EgMzBDRTs7OztOO1NRVUFSRUQgTkFOTzs7OzsKKzMzMjk7U1FVQVJFIE5PVFRPO1NvOzA7TDs8c3F1YXJlPiAzMENFIDMwQzMgMzBDODs7OztOO1NRVUFSRUQgTk9UVE87Ozs7CiszMzJBO1NRVUFSRSBIQUlUVTtTbzswO0w7PHNxdWFyZT4gMzBDRiAzMEE0IDMwQzQ7Ozs7TjtTUVVBUkVEIEhBSVRVOzs7OworMzMyQjtTUVVBUkUgUEFBU0VOVE87U287MDtMOzxzcXVhcmU+IDMwRDEgMzBGQyAzMEJCIDMwRjMgMzBDODs7OztOO1NRVUFSRUQgUEFBU0VOVE87Ozs7CiszMzJDO1NRVUFSRSBQQUFUVTtTbzswO0w7PHNxdWFyZT4gMzBEMSAzMEZDIDMwQzQ7Ozs7TjtTUVVBUkVEIFBBQVRVOzs7OworMzMyRDtTUVVBUkUgQkFBUkVSVTtTbzswO0w7PHNxdWFyZT4gMzBEMCAzMEZDIDMwRUMgMzBFQjs7OztOO1NRVUFSRUQgQkFBUkVSVTs7OzsKKzMzMkU7U1FVQVJFIFBJQVNVVE9SVTtTbzswO0w7PHNxdWFyZT4gMzBENCAzMEEyIDMwQjkgMzBDOCAzMEVCOzs7O047U1FVQVJFRCBQSUFTVVRPUlU7Ozs7CiszMzJGO1NRVUFSRSBQSUtVUlU7U287MDtMOzxzcXVhcmU+IDMwRDQgMzBBRiAzMEVCOzs7O047U1FVQVJFRCBQSUtVUlU7Ozs7CiszMzMwO1NRVUFSRSBQSUtPO1NvOzA7TDs8c3F1YXJlPiAzMEQ0IDMwQjM7Ozs7TjtTUVVBUkVEIFBJS087Ozs7CiszMzMxO1NRVUFSRSBCSVJVO1NvOzA7TDs8c3F1YXJlPiAzMEQzIDMwRUI7Ozs7TjtTUVVBUkVEIEJJUlU7Ozs7CiszMzMyO1NRVUFSRSBIVUFSQURETztTbzswO0w7PHNxdWFyZT4gMzBENSAzMEExIDMwRTkgMzBDMyAzMEM5Ozs7O047U1FVQVJFRCBIVUFSQURETzs7OzsKKzMzMzM7U1FVQVJFIEhVSUlUTztTbzswO0w7PHNxdWFyZT4gMzBENSAzMEEzIDMwRkMgMzBDODs7OztOO1NRVUFSRUQgSFVJSVRPOzs7OworMzMzNDtTUVVBUkUgQlVTU1lFUlU7U287MDtMOzxzcXVhcmU+IDMwRDYgMzBDMyAzMEI3IDMwQTcgMzBFQjs7OztOO1NRVUFSRUQgQlVTU1lFUlU7Ozs7CiszMzM1O1NRVUFSRSBIVVJBTjtTbzswO0w7PHNxdWFyZT4gMzBENSAzMEU5IDMwRjM7Ozs7TjtTUVVBUkVEIEhVUkFOOzs7OworMzMzNjtTUVVBUkUgSEVLVVRBQVJVO1NvOzA7TDs8c3F1YXJlPiAzMEQ4IDMwQUYgMzBCRiAzMEZDIDMwRUI7Ozs7TjtTUVVBUkVEIEhFS1VUQUFSVTs7OzsKKzMzMzc7U1FVQVJFIFBFU087U287MDtMOzxzcXVhcmU+IDMwREEgMzBCRDs7OztOO1NRVUFSRUQgUEVTTzs7OzsKKzMzMzg7U1FVQVJFIFBFTklISTtTbzswO0w7PHNxdWFyZT4gMzBEQSAzMENCIDMwRDI7Ozs7TjtTUVVBUkVEIFBFTklISTs7OzsKKzMzMzk7U1FVQVJFIEhFUlVUVTtTbzswO0w7PHNxdWFyZT4gMzBEOCAzMEVCIDMwQzQ7Ozs7TjtTUVVBUkVEIEhFUlVUVTs7OzsKKzMzM0E7U1FVQVJFIFBFTlNVO1NvOzA7TDs8c3F1YXJlPiAzMERBIDMwRjMgMzBCOTs7OztOO1NRVUFSRUQgUEVOU1U7Ozs7CiszMzNCO1NRVUFSRSBQRUVaSTtTbzswO0w7PHNxdWFyZT4gMzBEQSAzMEZDIDMwQjg7Ozs7TjtTUVVBUkVEIFBFRVpJOzs7OworMzMzQztTUVVBUkUgQkVFVEE7U287MDtMOzxzcXVhcmU+IDMwRDkgMzBGQyAzMEJGOzs7O047U1FVQVJFRCBCRUVUQTs7OzsKKzMzM0Q7U1FVQVJFIFBPSU5UTztTbzswO0w7PHNxdWFyZT4gMzBERCAzMEE0IDMwRjMgMzBDODs7OztOO1NRVUFSRUQgUE9JTlRPOzs7OworMzMzRTtTUVVBUkUgQk9SVVRPO1NvOzA7TDs8c3F1YXJlPiAzMERDIDMwRUIgMzBDODs7OztOO1NRVUFSRUQgQk9SVVRPOzs7OworMzMzRjtTUVVBUkUgSE9OO1NvOzA7TDs8c3F1YXJlPiAzMERCIDMwRjM7Ozs7TjtTUVVBUkVEIEhPTjs7OzsKKzMzNDA7U1FVQVJFIFBPTkRPO1NvOzA7TDs8c3F1YXJlPiAzMEREIDMwRjMgMzBDOTs7OztOO1NRVUFSRUQgUE9ORE87Ozs7CiszMzQxO1NRVUFSRSBIT09SVTtTbzswO0w7PHNxdWFyZT4gMzBEQiAzMEZDIDMwRUI7Ozs7TjtTUVVBUkVEIEhPT1JVOzs7OworMzM0MjtTUVVBUkUgSE9PTjtTbzswO0w7PHNxdWFyZT4gMzBEQiAzMEZDIDMwRjM7Ozs7TjtTUVVBUkVEIEhPT047Ozs7CiszMzQzO1NRVUFSRSBNQUlLVVJPO1NvOzA7TDs8c3F1YXJlPiAzMERFIDMwQTQgMzBBRiAzMEVEOzs7O047U1FVQVJFRCBNQUlLVVJPOzs7OworMzM0NDtTUVVBUkUgTUFJUlU7U287MDtMOzxzcXVhcmU+IDMwREUgMzBBNCAzMEVCOzs7O047U1FVQVJFRCBNQUlSVTs7OzsKKzMzNDU7U1FVQVJFIE1BSEhBO1NvOzA7TDs8c3F1YXJlPiAzMERFIDMwQzMgMzBDRjs7OztOO1NRVUFSRUQgTUFISEE7Ozs7CiszMzQ2O1NRVUFSRSBNQVJVS1U7U287MDtMOzxzcXVhcmU+IDMwREUgMzBFQiAzMEFGOzs7O047U1FVQVJFRCBNQVJVS1U7Ozs7CiszMzQ3O1NRVUFSRSBNQU5TWU9OO1NvOzA7TDs8c3F1YXJlPiAzMERFIDMwRjMgMzBCNyAzMEU3IDMwRjM7Ozs7TjtTUVVBUkVEIE1BTlNZT047Ozs7CiszMzQ4O1NRVUFSRSBNSUtVUk9OO1NvOzA7TDs8c3F1YXJlPiAzMERGIDMwQUYgMzBFRCAzMEYzOzs7O047U1FVQVJFRCBNSUtVUk9OOzs7OworMzM0OTtTUVVBUkUgTUlSSTtTbzswO0w7PHNxdWFyZT4gMzBERiAzMEVBOzs7O047U1FVQVJFRCBNSVJJOzs7OworMzM0QTtTUVVBUkUgTUlSSUJBQVJVO1NvOzA7TDs8c3F1YXJlPiAzMERGIDMwRUEgMzBEMCAzMEZDIDMwRUI7Ozs7TjtTUVVBUkVEIE1JUklCQUFSVTs7OzsKKzMzNEI7U1FVQVJFIE1FR0E7U287MDtMOzxzcXVhcmU+IDMwRTEgMzBBQzs7OztOO1NRVUFSRUQgTUVHQTs7OzsKKzMzNEM7U1FVQVJFIE1FR0FUT047U287MDtMOzxzcXVhcmU+IDMwRTEgMzBBQyAzMEM4IDMwRjM7Ozs7TjtTUVVBUkVEIE1FR0FUT047Ozs7CiszMzREO1NRVUFSRSBNRUVUT1JVO1NvOzA7TDs8c3F1YXJlPiAzMEUxIDMwRkMgMzBDOCAzMEVCOzs7O047U1FVQVJFRCBNRUVUT1JVOzs7OworMzM0RTtTUVVBUkUgWUFBRE87U287MDtMOzxzcXVhcmU+IDMwRTQgMzBGQyAzMEM5Ozs7O047U1FVQVJFRCBZQUFETzs7OzsKKzMzNEY7U1FVQVJFIFlBQVJVO1NvOzA7TDs8c3F1YXJlPiAzMEU0IDMwRkMgMzBFQjs7OztOO1NRVUFSRUQgWUFBUlU7Ozs7CiszMzUwO1NRVUFSRSBZVUFOO1NvOzA7TDs8c3F1YXJlPiAzMEU2IDMwQTIgMzBGMzs7OztOO1NRVUFSRUQgWVVBTjs7OzsKKzMzNTE7U1FVQVJFIFJJVFRPUlU7U287MDtMOzxzcXVhcmU+IDMwRUEgMzBDMyAzMEM4IDMwRUI7Ozs7TjtTUVVBUkVEIFJJVFRPUlU7Ozs7CiszMzUyO1NRVUFSRSBSSVJBO1NvOzA7TDs8c3F1YXJlPiAzMEVBIDMwRTk7Ozs7TjtTUVVBUkVEIFJJUkE7Ozs7CiszMzUzO1NRVUFSRSBSVVBJSTtTbzswO0w7PHNxdWFyZT4gMzBFQiAzMEQ0IDMwRkM7Ozs7TjtTUVVBUkVEIFJVUElJOzs7OworMzM1NDtTUVVBUkUgUlVVQlVSVTtTbzswO0w7PHNxdWFyZT4gMzBFQiAzMEZDIDMwRDYgMzBFQjs7OztOO1NRVUFSRUQgUlVVQlVSVTs7OzsKKzMzNTU7U1FVQVJFIFJFTVU7U287MDtMOzxzcXVhcmU+IDMwRUMgMzBFMDs7OztOO1NRVUFSRUQgUkVNVTs7OzsKKzMzNTY7U1FVQVJFIFJFTlRPR0VOO1NvOzA7TDs8c3F1YXJlPiAzMEVDIDMwRjMgMzBDOCAzMEIyIDMwRjM7Ozs7TjtTUVVBUkVEIFJFTlRPR0VOOzs7OworMzM1NztTUVVBUkUgV0FUVE87U287MDtMOzxzcXVhcmU+IDMwRUYgMzBDMyAzMEM4Ozs7O047U1FVQVJFRCBXQVRUTzs7OzsKKzMzNTg7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBaRVJPO1NvOzA7TDs8Y29tcGF0PiAwMDMwIDcwQjk7Ozs7Tjs7Ozs7CiszMzU5O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgT05FO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDcwQjk7Ozs7Tjs7Ozs7CiszMzVBO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgVFdPO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDcwQjk7Ozs7Tjs7Ozs7CiszMzVCO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgVEhSRUU7U287MDtMOzxjb21wYXQ+IDAwMzMgNzBCOTs7OztOOzs7OzsKKzMzNUM7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBGT1VSO1NvOzA7TDs8Y29tcGF0PiAwMDM0IDcwQjk7Ozs7Tjs7Ozs7CiszMzVEO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgRklWRTtTbzswO0w7PGNvbXBhdD4gMDAzNSA3MEI5Ozs7O047Ozs7OworMzM1RTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFNJWDtTbzswO0w7PGNvbXBhdD4gMDAzNiA3MEI5Ozs7O047Ozs7OworMzM1RjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFNFVkVOO1NvOzA7TDs8Y29tcGF0PiAwMDM3IDcwQjk7Ozs7Tjs7Ozs7CiszMzYwO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgRUlHSFQ7U287MDtMOzxjb21wYXQ+IDAwMzggNzBCOTs7OztOOzs7OzsKKzMzNjE7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBOSU5FO1NvOzA7TDs8Y29tcGF0PiAwMDM5IDcwQjk7Ozs7Tjs7Ozs7CiszMzYyO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgVEVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzAgNzBCOTs7OztOOzs7OzsKKzMzNjM7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBFTEVWRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzMSA3MEI5Ozs7O047Ozs7OworMzM2NDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFRXRUxWRTtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDMyIDcwQjk7Ozs7Tjs7Ozs7CiszMzY1O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgVEhJUlRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzMyA3MEI5Ozs7O047Ozs7OworMzM2NjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIEZPVVJURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzQgNzBCOTs7OztOOzs7OzsKKzMzNjc7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBGSUZURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzUgNzBCOTs7OztOOzs7OzsKKzMzNjg7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBTSVhURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzYgNzBCOTs7OztOOzs7OzsKKzMzNjk7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBTRVZFTlRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzNyA3MEI5Ozs7O047Ozs7OworMzM2QTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIEVJR0hURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzggNzBCOTs7OztOOzs7OzsKKzMzNkI7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBOSU5FVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDM5IDcwQjk7Ozs7Tjs7Ozs7CiszMzZDO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgVFdFTlRZO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzAgNzBCOTs7OztOOzs7OzsKKzMzNkQ7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBUV0VOVFktT05FO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzEgNzBCOTs7OztOOzs7OzsKKzMzNkU7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBUV0VOVFktVFdPO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzIgNzBCOTs7OztOOzs7OzsKKzMzNkY7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBUV0VOVFktVEhSRUU7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzMyA3MEI5Ozs7O047Ozs7OworMzM3MDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFRXRU5UWS1GT1VSO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzQgNzBCOTs7OztOOzs7OzsKKzMzNzE7U1FVQVJFIEhQQTtTbzswO0w7PHNxdWFyZT4gMDA2OCAwMDUwIDAwNjE7Ozs7Tjs7Ozs7CiszMzcyO1NRVUFSRSBEQTtTbzswO0w7PHNxdWFyZT4gMDA2NCAwMDYxOzs7O047Ozs7OworMzM3MztTUVVBUkUgQVU7U287MDtMOzxzcXVhcmU+IDAwNDEgMDA1NTs7OztOOzs7OzsKKzMzNzQ7U1FVQVJFIEJBUjtTbzswO0w7PHNxdWFyZT4gMDA2MiAwMDYxIDAwNzI7Ozs7Tjs7Ozs7CiszMzc1O1NRVUFSRSBPVjtTbzswO0w7PHNxdWFyZT4gMDA2RiAwMDU2Ozs7O047Ozs7OworMzM3NjtTUVVBUkUgUEM7U287MDtMOzxzcXVhcmU+IDAwNzAgMDA2Mzs7OztOOzs7OzsKKzMzN0I7U1FVQVJFIEVSQSBOQU1FIEhFSVNFSTtTbzswO0w7PHNxdWFyZT4gNUU3MyA2MjEwOzs7O047U1FVQVJFRCBUV08gSURFT0dSQVBIUyBFUkEgTkFNRSBIRUlTRUk7Ozs7CiszMzdDO1NRVUFSRSBFUkEgTkFNRSBTWU9VV0E7U287MDtMOzxzcXVhcmU+IDY2MkQgNTQ4Qzs7OztOO1NRVUFSRUQgVFdPIElERU9HUkFQSFMgRVJBIE5BTUUgU1lPVVdBOzs7OworMzM3RDtTUVVBUkUgRVJBIE5BTUUgVEFJU1lPVTtTbzswO0w7PHNxdWFyZT4gNTkyNyA2QjYzOzs7O047U1FVQVJFRCBUV08gSURFT0dSQVBIUyBFUkEgTkFNRSBUQUlTWU9VOzs7OworMzM3RTtTUVVBUkUgRVJBIE5BTUUgTUVJWkk7U287MDtMOzxzcXVhcmU+IDY2MEUgNkNCQjs7OztOO1NRVUFSRUQgVFdPIElERU9HUkFQSFMgRVJBIE5BTUUgTUVJWkk7Ozs7CiszMzdGO1NRVUFSRSBDT1JQT1JBVElPTjtTbzswO0w7PHNxdWFyZT4gNjgyQSA1RjBGIDRGMUEgNzkzRTs7OztOO1NRVUFSRUQgRk9VUiBJREVPR1JBUEhTIENPUlBPUkFUSU9OOzs7OworMzM4MDtTUVVBUkUgUEEgQU1QUztTbzswO0w7PHNxdWFyZT4gMDA3MCAwMDQxOzs7O047U1FVQVJFRCBQQSBBTVBTOzs7OworMzM4MTtTUVVBUkUgTkE7U287MDtMOzxzcXVhcmU+IDAwNkUgMDA0MTs7OztOO1NRVUFSRUQgTkE7Ozs7CiszMzgyO1NRVUFSRSBNVSBBO1NvOzA7TDs8c3F1YXJlPiAwM0JDIDAwNDE7Ozs7TjtTUVVBUkVEIE1VIEE7Ozs7CiszMzgzO1NRVUFSRSBNQTtTbzswO0w7PHNxdWFyZT4gMDA2RCAwMDQxOzs7O047U1FVQVJFRCBNQTs7OzsKKzMzODQ7U1FVQVJFIEtBO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDAwNDE7Ozs7TjtTUVVBUkVEIEtBOzs7OworMzM4NTtTUVVBUkUgS0I7U287MDtMOzxzcXVhcmU+IDAwNEIgMDA0Mjs7OztOO1NRVUFSRUQgS0I7Ozs7CiszMzg2O1NRVUFSRSBNQjtTbzswO0w7PHNxdWFyZT4gMDA0RCAwMDQyOzs7O047U1FVQVJFRCBNQjs7OzsKKzMzODc7U1FVQVJFIEdCO1NvOzA7TDs8c3F1YXJlPiAwMDQ3IDAwNDI7Ozs7TjtTUVVBUkVEIEdCOzs7OworMzM4ODtTUVVBUkUgQ0FMO1NvOzA7TDs8c3F1YXJlPiAwMDYzIDAwNjEgMDA2Qzs7OztOO1NRVUFSRUQgQ0FMOzs7OworMzM4OTtTUVVBUkUgS0NBTDtTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDYzIDAwNjEgMDA2Qzs7OztOO1NRVUFSRUQgS0NBTDs7OzsKKzMzOEE7U1FVQVJFIFBGO1NvOzA7TDs8c3F1YXJlPiAwMDcwIDAwNDY7Ozs7TjtTUVVBUkVEIFBGOzs7OworMzM4QjtTUVVBUkUgTkY7U287MDtMOzxzcXVhcmU+IDAwNkUgMDA0Njs7OztOO1NRVUFSRUQgTkY7Ozs7CiszMzhDO1NRVUFSRSBNVSBGO1NvOzA7TDs8c3F1YXJlPiAwM0JDIDAwNDY7Ozs7TjtTUVVBUkVEIE1VIEY7Ozs7CiszMzhEO1NRVUFSRSBNVSBHO1NvOzA7TDs8c3F1YXJlPiAwM0JDIDAwNjc7Ozs7TjtTUVVBUkVEIE1VIEc7Ozs7CiszMzhFO1NRVUFSRSBNRztTbzswO0w7PHNxdWFyZT4gMDA2RCAwMDY3Ozs7O047U1FVQVJFRCBNRzs7OzsKKzMzOEY7U1FVQVJFIEtHO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDAwNjc7Ozs7TjtTUVVBUkVEIEtHOzs7OworMzM5MDtTUVVBUkUgSFo7U287MDtMOzxzcXVhcmU+IDAwNDggMDA3QTs7OztOO1NRVUFSRUQgSFo7Ozs7CiszMzkxO1NRVUFSRSBLSFo7U287MDtMOzxzcXVhcmU+IDAwNkIgMDA0OCAwMDdBOzs7O047U1FVQVJFRCBLSFo7Ozs7CiszMzkyO1NRVUFSRSBNSFo7U287MDtMOzxzcXVhcmU+IDAwNEQgMDA0OCAwMDdBOzs7O047U1FVQVJFRCBNSFo7Ozs7CiszMzkzO1NRVUFSRSBHSFo7U287MDtMOzxzcXVhcmU+IDAwNDcgMDA0OCAwMDdBOzs7O047U1FVQVJFRCBHSFo7Ozs7CiszMzk0O1NRVUFSRSBUSFo7U287MDtMOzxzcXVhcmU+IDAwNTQgMDA0OCAwMDdBOzs7O047U1FVQVJFRCBUSFo7Ozs7CiszMzk1O1NRVUFSRSBNVSBMO1NvOzA7TDs8c3F1YXJlPiAwM0JDIDIxMTM7Ozs7TjtTUVVBUkVEIE1VIEw7Ozs7CiszMzk2O1NRVUFSRSBNTDtTbzswO0w7PHNxdWFyZT4gMDA2RCAyMTEzOzs7O047U1FVQVJFRCBNTDs7OzsKKzMzOTc7U1FVQVJFIERMO1NvOzA7TDs8c3F1YXJlPiAwMDY0IDIxMTM7Ozs7TjtTUVVBUkVEIERMOzs7OworMzM5ODtTUVVBUkUgS0w7U287MDtMOzxzcXVhcmU+IDAwNkIgMjExMzs7OztOO1NRVUFSRUQgS0w7Ozs7CiszMzk5O1NRVUFSRSBGTTtTbzswO0w7PHNxdWFyZT4gMDA2NiAwMDZEOzs7O047U1FVQVJFRCBGTTs7OzsKKzMzOUE7U1FVQVJFIE5NO1NvOzA7TDs8c3F1YXJlPiAwMDZFIDAwNkQ7Ozs7TjtTUVVBUkVEIE5NOzs7OworMzM5QjtTUVVBUkUgTVUgTTtTbzswO0w7PHNxdWFyZT4gMDNCQyAwMDZEOzs7O047U1FVQVJFRCBNVSBNOzs7OworMzM5QztTUVVBUkUgTU07U287MDtMOzxzcXVhcmU+IDAwNkQgMDA2RDs7OztOO1NRVUFSRUQgTU07Ozs7CiszMzlEO1NRVUFSRSBDTTtTbzswO0w7PHNxdWFyZT4gMDA2MyAwMDZEOzs7O047U1FVQVJFRCBDTTs7OzsKKzMzOUU7U1FVQVJFIEtNO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDAwNkQ7Ozs7TjtTUVVBUkVEIEtNOzs7OworMzM5RjtTUVVBUkUgTU0gU1FVQVJFRDtTbzswO0w7PHNxdWFyZT4gMDA2RCAwMDZEIDAwQjI7Ozs7TjtTUVVBUkVEIE1NIFNRVUFSRUQ7Ozs7CiszM0EwO1NRVUFSRSBDTSBTUVVBUkVEO1NvOzA7TDs8c3F1YXJlPiAwMDYzIDAwNkQgMDBCMjs7OztOO1NRVUFSRUQgQ00gU1FVQVJFRDs7OzsKKzMzQTE7U1FVQVJFIE0gU1FVQVJFRDtTbzswO0w7PHNxdWFyZT4gMDA2RCAwMEIyOzs7O047U1FVQVJFRCBNIFNRVUFSRUQ7Ozs7CiszM0EyO1NRVUFSRSBLTSBTUVVBUkVEO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDAwNkQgMDBCMjs7OztOO1NRVUFSRUQgS00gU1FVQVJFRDs7OzsKKzMzQTM7U1FVQVJFIE1NIENVQkVEO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNkQgMDBCMzs7OztOO1NRVUFSRUQgTU0gQ1VCRUQ7Ozs7CiszM0E0O1NRVUFSRSBDTSBDVUJFRDtTbzswO0w7PHNxdWFyZT4gMDA2MyAwMDZEIDAwQjM7Ozs7TjtTUVVBUkVEIENNIENVQkVEOzs7OworMzNBNTtTUVVBUkUgTSBDVUJFRDtTbzswO0w7PHNxdWFyZT4gMDA2RCAwMEIzOzs7O047U1FVQVJFRCBNIENVQkVEOzs7OworMzNBNjtTUVVBUkUgS00gQ1VCRUQ7U287MDtMOzxzcXVhcmU+IDAwNkIgMDA2RCAwMEIzOzs7O047U1FVQVJFRCBLTSBDVUJFRDs7OzsKKzMzQTc7U1FVQVJFIE0gT1ZFUiBTO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDIyMTUgMDA3Mzs7OztOO1NRVUFSRUQgTSBPVkVSIFM7Ozs7CiszM0E4O1NRVUFSRSBNIE9WRVIgUyBTUVVBUkVEO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDIyMTUgMDA3MyAwMEIyOzs7O047U1FVQVJFRCBNIE9WRVIgUyBTUVVBUkVEOzs7OworMzNBOTtTUVVBUkUgUEE7U287MDtMOzxzcXVhcmU+IDAwNTAgMDA2MTs7OztOO1NRVUFSRUQgUEE7Ozs7CiszM0FBO1NRVUFSRSBLUEE7U287MDtMOzxzcXVhcmU+IDAwNkIgMDA1MCAwMDYxOzs7O047U1FVQVJFRCBLUEE7Ozs7CiszM0FCO1NRVUFSRSBNUEE7U287MDtMOzxzcXVhcmU+IDAwNEQgMDA1MCAwMDYxOzs7O047U1FVQVJFRCBNUEE7Ozs7CiszM0FDO1NRVUFSRSBHUEE7U287MDtMOzxzcXVhcmU+IDAwNDcgMDA1MCAwMDYxOzs7O047U1FVQVJFRCBHUEE7Ozs7CiszM0FEO1NRVUFSRSBSQUQ7U287MDtMOzxzcXVhcmU+IDAwNzIgMDA2MSAwMDY0Ozs7O047U1FVQVJFRCBSQUQ7Ozs7CiszM0FFO1NRVUFSRSBSQUQgT1ZFUiBTO1NvOzA7TDs8c3F1YXJlPiAwMDcyIDAwNjEgMDA2NCAyMjE1IDAwNzM7Ozs7TjtTUVVBUkVEIFJBRCBPVkVSIFM7Ozs7CiszM0FGO1NRVUFSRSBSQUQgT1ZFUiBTIFNRVUFSRUQ7U287MDtMOzxzcXVhcmU+IDAwNzIgMDA2MSAwMDY0IDIyMTUgMDA3MyAwMEIyOzs7O047U1FVQVJFRCBSQUQgT1ZFUiBTIFNRVUFSRUQ7Ozs7CiszM0IwO1NRVUFSRSBQUztTbzswO0w7PHNxdWFyZT4gMDA3MCAwMDczOzs7O047U1FVQVJFRCBQUzs7OzsKKzMzQjE7U1FVQVJFIE5TO1NvOzA7TDs8c3F1YXJlPiAwMDZFIDAwNzM7Ozs7TjtTUVVBUkVEIE5TOzs7OworMzNCMjtTUVVBUkUgTVUgUztTbzswO0w7PHNxdWFyZT4gMDNCQyAwMDczOzs7O047U1FVQVJFRCBNVSBTOzs7OworMzNCMztTUVVBUkUgTVM7U287MDtMOzxzcXVhcmU+IDAwNkQgMDA3Mzs7OztOO1NRVUFSRUQgTVM7Ozs7CiszM0I0O1NRVUFSRSBQVjtTbzswO0w7PHNxdWFyZT4gMDA3MCAwMDU2Ozs7O047U1FVQVJFRCBQVjs7OzsKKzMzQjU7U1FVQVJFIE5WO1NvOzA7TDs8c3F1YXJlPiAwMDZFIDAwNTY7Ozs7TjtTUVVBUkVEIE5WOzs7OworMzNCNjtTUVVBUkUgTVUgVjtTbzswO0w7PHNxdWFyZT4gMDNCQyAwMDU2Ozs7O047U1FVQVJFRCBNVSBWOzs7OworMzNCNztTUVVBUkUgTVY7U287MDtMOzxzcXVhcmU+IDAwNkQgMDA1Njs7OztOO1NRVUFSRUQgTVY7Ozs7CiszM0I4O1NRVUFSRSBLVjtTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDU2Ozs7O047U1FVQVJFRCBLVjs7OzsKKzMzQjk7U1FVQVJFIE1WIE1FR0E7U287MDtMOzxzcXVhcmU+IDAwNEQgMDA1Njs7OztOO1NRVUFSRUQgTVYgTUVHQTs7OzsKKzMzQkE7U1FVQVJFIFBXO1NvOzA7TDs8c3F1YXJlPiAwMDcwIDAwNTc7Ozs7TjtTUVVBUkVEIFBXOzs7OworMzNCQjtTUVVBUkUgTlc7U287MDtMOzxzcXVhcmU+IDAwNkUgMDA1Nzs7OztOO1NRVUFSRUQgTlc7Ozs7CiszM0JDO1NRVUFSRSBNVSBXO1NvOzA7TDs8c3F1YXJlPiAwM0JDIDAwNTc7Ozs7TjtTUVVBUkVEIE1VIFc7Ozs7CiszM0JEO1NRVUFSRSBNVztTbzswO0w7PHNxdWFyZT4gMDA2RCAwMDU3Ozs7O047U1FVQVJFRCBNVzs7OzsKKzMzQkU7U1FVQVJFIEtXO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDAwNTc7Ozs7TjtTUVVBUkVEIEtXOzs7OworMzNCRjtTUVVBUkUgTVcgTUVHQTtTbzswO0w7PHNxdWFyZT4gMDA0RCAwMDU3Ozs7O047U1FVQVJFRCBNVyBNRUdBOzs7OworMzNDMDtTUVVBUkUgSyBPSE07U287MDtMOzxzcXVhcmU+IDAwNkIgMDNBOTs7OztOO1NRVUFSRUQgSyBPSE07Ozs7CiszM0MxO1NRVUFSRSBNIE9ITTtTbzswO0w7PHNxdWFyZT4gMDA0RCAwM0E5Ozs7O047U1FVQVJFRCBNIE9ITTs7OzsKKzMzQzI7U1FVQVJFIEFNO1NvOzA7TDs8c3F1YXJlPiAwMDYxIDAwMkUgMDA2RCAwMDJFOzs7O047U1FVQVJFRCBBTTs7OzsKKzMzQzM7U1FVQVJFIEJRO1NvOzA7TDs8c3F1YXJlPiAwMDQyIDAwNzE7Ozs7TjtTUVVBUkVEIEJROzs7OworMzNDNDtTUVVBUkUgQ0M7U287MDtMOzxzcXVhcmU+IDAwNjMgMDA2Mzs7OztOO1NRVUFSRUQgQ0M7Ozs7CiszM0M1O1NRVUFSRSBDRDtTbzswO0w7PHNxdWFyZT4gMDA2MyAwMDY0Ozs7O047U1FVQVJFRCBDRDs7OzsKKzMzQzY7U1FVQVJFIEMgT1ZFUiBLRztTbzswO0w7PHNxdWFyZT4gMDA0MyAyMjE1IDAwNkIgMDA2Nzs7OztOO1NRVUFSRUQgQyBPVkVSIEtHOzs7OworMzNDNztTUVVBUkUgQ087U287MDtMOzxzcXVhcmU+IDAwNDMgMDA2RiAwMDJFOzs7O047U1FVQVJFRCBDTzs7OzsKKzMzQzg7U1FVQVJFIERCO1NvOzA7TDs8c3F1YXJlPiAwMDY0IDAwNDI7Ozs7TjtTUVVBUkVEIERCOzs7OworMzNDOTtTUVVBUkUgR1k7U287MDtMOzxzcXVhcmU+IDAwNDcgMDA3OTs7OztOO1NRVUFSRUQgR1k7Ozs7CiszM0NBO1NRVUFSRSBIQTtTbzswO0w7PHNxdWFyZT4gMDA2OCAwMDYxOzs7O047U1FVQVJFRCBIQTs7OzsKKzMzQ0I7U1FVQVJFIEhQO1NvOzA7TDs8c3F1YXJlPiAwMDQ4IDAwNTA7Ozs7TjtTUVVBUkVEIEhQOzs7OworMzNDQztTUVVBUkUgSU47U287MDtMOzxzcXVhcmU+IDAwNjkgMDA2RTs7OztOO1NRVUFSRUQgSU47Ozs7CiszM0NEO1NRVUFSRSBLSztTbzswO0w7PHNxdWFyZT4gMDA0QiAwMDRCOzs7O047U1FVQVJFRCBLSzs7OzsKKzMzQ0U7U1FVQVJFIEtNIENBUElUQUw7U287MDtMOzxzcXVhcmU+IDAwNEIgMDA0RDs7OztOO1NRVUFSRUQgS00gQ0FQSVRBTDs7OzsKKzMzQ0Y7U1FVQVJFIEtUO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDAwNzQ7Ozs7TjtTUVVBUkVEIEtUOzs7OworMzNEMDtTUVVBUkUgTE07U287MDtMOzxzcXVhcmU+IDAwNkMgMDA2RDs7OztOO1NRVUFSRUQgTE07Ozs7CiszM0QxO1NRVUFSRSBMTjtTbzswO0w7PHNxdWFyZT4gMDA2QyAwMDZFOzs7O047U1FVQVJFRCBMTjs7OzsKKzMzRDI7U1FVQVJFIExPRztTbzswO0w7PHNxdWFyZT4gMDA2QyAwMDZGIDAwNjc7Ozs7TjtTUVVBUkVEIExPRzs7OzsKKzMzRDM7U1FVQVJFIExYO1NvOzA7TDs8c3F1YXJlPiAwMDZDIDAwNzg7Ozs7TjtTUVVBUkVEIExYOzs7OworMzNENDtTUVVBUkUgTUIgU01BTEw7U287MDtMOzxzcXVhcmU+IDAwNkQgMDA2Mjs7OztOO1NRVUFSRUQgTUIgU01BTEw7Ozs7CiszM0Q1O1NRVUFSRSBNSUw7U287MDtMOzxzcXVhcmU+IDAwNkQgMDA2OSAwMDZDOzs7O047U1FVQVJFRCBNSUw7Ozs7CiszM0Q2O1NRVUFSRSBNT0w7U287MDtMOzxzcXVhcmU+IDAwNkQgMDA2RiAwMDZDOzs7O047U1FVQVJFRCBNT0w7Ozs7CiszM0Q3O1NRVUFSRSBQSDtTbzswO0w7PHNxdWFyZT4gMDA1MCAwMDQ4Ozs7O047U1FVQVJFRCBQSDs7OzsKKzMzRDg7U1FVQVJFIFBNO1NvOzA7TDs8c3F1YXJlPiAwMDcwIDAwMkUgMDA2RCAwMDJFOzs7O047U1FVQVJFRCBQTTs7OzsKKzMzRDk7U1FVQVJFIFBQTTtTbzswO0w7PHNxdWFyZT4gMDA1MCAwMDUwIDAwNEQ7Ozs7TjtTUVVBUkVEIFBQTTs7OzsKKzMzREE7U1FVQVJFIFBSO1NvOzA7TDs8c3F1YXJlPiAwMDUwIDAwNTI7Ozs7TjtTUVVBUkVEIFBSOzs7OworMzNEQjtTUVVBUkUgU1I7U287MDtMOzxzcXVhcmU+IDAwNzMgMDA3Mjs7OztOO1NRVUFSRUQgU1I7Ozs7CiszM0RDO1NRVUFSRSBTVjtTbzswO0w7PHNxdWFyZT4gMDA1MyAwMDc2Ozs7O047U1FVQVJFRCBTVjs7OzsKKzMzREQ7U1FVQVJFIFdCO1NvOzA7TDs8c3F1YXJlPiAwMDU3IDAwNjI7Ozs7TjtTUVVBUkVEIFdCOzs7OworMzNFMDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgT05FO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDY1RTU7Ozs7Tjs7Ozs7CiszM0UxO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUV087U287MDtMOzxjb21wYXQ+IDAwMzIgNjVFNTs7OztOOzs7OzsKKzMzRTI7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRIUkVFO1NvOzA7TDs8Y29tcGF0PiAwMDMzIDY1RTU7Ozs7Tjs7Ozs7CiszM0UzO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBGT1VSO1NvOzA7TDs8Y29tcGF0PiAwMDM0IDY1RTU7Ozs7Tjs7Ozs7CiszM0U0O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBGSVZFO1NvOzA7TDs8Y29tcGF0PiAwMDM1IDY1RTU7Ozs7Tjs7Ozs7CiszM0U1O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBTSVg7U287MDtMOzxjb21wYXQ+IDAwMzYgNjVFNTs7OztOOzs7OzsKKzMzRTY7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFNFVkVOO1NvOzA7TDs8Y29tcGF0PiAwMDM3IDY1RTU7Ozs7Tjs7Ozs7CiszM0U3O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBFSUdIVDtTbzswO0w7PGNvbXBhdD4gMDAzOCA2NUU1Ozs7O047Ozs7OworMzNFODtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgTklORTtTbzswO0w7PGNvbXBhdD4gMDAzOSA2NUU1Ozs7O047Ozs7OworMzNFOTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVEVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzAgNjVFNTs7OztOOzs7OzsKKzMzRUE7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIEVMRVZFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDMxIDY1RTU7Ozs7Tjs7Ozs7CiszM0VCO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUV0VMVkU7U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzMiA2NUU1Ozs7O047Ozs7OworMzNFQztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVEhJUlRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzMyA2NUU1Ozs7O047Ozs7OworMzNFRDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgRk9VUlRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzNCA2NUU1Ozs7O047Ozs7OworMzNFRTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgRklGVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDM1IDY1RTU7Ozs7Tjs7Ozs7CiszM0VGO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBTSVhURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzYgNjVFNTs7OztOOzs7OzsKKzMzRjA7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFNFVkVOVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDM3IDY1RTU7Ozs7Tjs7Ozs7CiszM0YxO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBFSUdIVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDM4IDY1RTU7Ozs7Tjs7Ozs7CiszM0YyO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBOSU5FVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDM5IDY1RTU7Ozs7Tjs7Ozs7CiszM0YzO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUV0VOVFk7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzMCA2NUU1Ozs7O047Ozs7OworMzNGNDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZLU9ORTtTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDMxIDY1RTU7Ozs7Tjs7Ozs7CiszM0Y1O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUV0VOVFktVFdPO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzIgNjVFNTs7OztOOzs7OzsKKzMzRjY7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRXRU5UWS1USFJFRTtTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDMzIDY1RTU7Ozs7Tjs7Ozs7CiszM0Y3O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUV0VOVFktRk9VUjtTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDM0IDY1RTU7Ozs7Tjs7Ozs7CiszM0Y4O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUV0VOVFktRklWRTtTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDM1IDY1RTU7Ozs7Tjs7Ozs7CiszM0Y5O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUV0VOVFktU0lYO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzYgNjVFNTs7OztOOzs7OzsKKzMzRkE7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRXRU5UWS1TRVZFTjtTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDM3IDY1RTU7Ozs7Tjs7Ozs7CiszM0ZCO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUV0VOVFktRUlHSFQ7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzOCA2NUU1Ozs7O047Ozs7OworMzNGQztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZLU5JTkU7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzOSA2NUU1Ozs7O047Ozs7OworMzNGRDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVEhJUlRZO1NvOzA7TDs8Y29tcGF0PiAwMDMzIDAwMzAgNjVFNTs7OztOOzs7OzsKKzMzRkU7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRISVJUWS1PTkU7U287MDtMOzxjb21wYXQ+IDAwMzMgMDAzMSA2NUU1Ozs7O047Ozs7OworMzQwMDs8Q0pLIElkZW9ncmFwaCBFeHRlbnNpb24gQSwgRmlyc3Q+O0xvOzA7TDs7Ozs7Tjs7Ozs7Cis0REI1OzxDSksgSWRlb2dyYXBoIEV4dGVuc2lvbiBBLCBMYXN0PjtMbzswO0w7Ozs7O047Ozs7OworNEUwMDs8Q0pLIElkZW9ncmFwaCwgRmlyc3Q+O0xvOzA7TDs7Ozs7Tjs7Ozs7Cis5RkE1OzxDSksgSWRlb2dyYXBoLCBMYXN0PjtMbzswO0w7Ozs7O047Ozs7OworQTAwMDtZSSBTWUxMQUJMRSBJVDtMbzswO0w7Ozs7O047Ozs7OworQTAwMTtZSSBTWUxMQUJMRSBJWDtMbzswO0w7Ozs7O047Ozs7OworQTAwMjtZSSBTWUxMQUJMRSBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDAzO1lJIFNZTExBQkxFIElQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDA0O1lJIFNZTExBQkxFIElFVDtMbzswO0w7Ozs7O047Ozs7OworQTAwNTtZSSBTWUxMQUJMRSBJRVg7TG87MDtMOzs7OztOOzs7OzsKK0EwMDY7WUkgU1lMTEFCTEUgSUU7TG87MDtMOzs7OztOOzs7OzsKK0EwMDc7WUkgU1lMTEFCTEUgSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDA4O1lJIFNZTExBQkxFIEFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDA5O1lJIFNZTExBQkxFIEFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDBBO1lJIFNZTExBQkxFIEE7TG87MDtMOzs7OztOOzs7OzsKK0EwMEI7WUkgU1lMTEFCTEUgQVA7TG87MDtMOzs7OztOOzs7OzsKK0EwMEM7WUkgU1lMTEFCTEUgVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDBEO1lJIFNZTExBQkxFIFVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDBFO1lJIFNZTExBQkxFIFVPUDtMbzswO0w7Ozs7O047Ozs7OworQTAwRjtZSSBTWUxMQUJMRSBPVDtMbzswO0w7Ozs7O047Ozs7OworQTAxMDtZSSBTWUxMQUJMRSBPWDtMbzswO0w7Ozs7O047Ozs7OworQTAxMTtZSSBTWUxMQUJMRSBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDEyO1lJIFNZTExBQkxFIE9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDEzO1lJIFNZTExBQkxFIEVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDE0O1lJIFNZTExBQkxFIEU7TG87MDtMOzs7OztOOzs7OzsKK0EwMTU7WUkgU1lMTEFCTEUgV1U7TG87MDtMOzs7OztOOzs7OzsKK0EwMTY7WUkgU1lMTEFCTEUgQklUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDE3O1lJIFNZTExBQkxFIEJJWDtMbzswO0w7Ozs7O047Ozs7OworQTAxODtZSSBTWUxMQUJMRSBCSTtMbzswO0w7Ozs7O047Ozs7OworQTAxOTtZSSBTWUxMQUJMRSBCSVA7TG87MDtMOzs7OztOOzs7OzsKK0EwMUE7WUkgU1lMTEFCTEUgQklFVDtMbzswO0w7Ozs7O047Ozs7OworQTAxQjtZSSBTWUxMQUJMRSBCSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDFDO1lJIFNZTExBQkxFIEJJRTtMbzswO0w7Ozs7O047Ozs7OworQTAxRDtZSSBTWUxMQUJMRSBCSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDFFO1lJIFNZTExBQkxFIEJBVDtMbzswO0w7Ozs7O047Ozs7OworQTAxRjtZSSBTWUxMQUJMRSBCQVg7TG87MDtMOzs7OztOOzs7OzsKK0EwMjA7WUkgU1lMTEFCTEUgQkE7TG87MDtMOzs7OztOOzs7OzsKK0EwMjE7WUkgU1lMTEFCTEUgQkFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDIyO1lJIFNZTExBQkxFIEJVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EwMjM7WUkgU1lMTEFCTEUgQlVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDI0O1lJIFNZTExBQkxFIEJVT1A7TG87MDtMOzs7OztOOzs7OzsKK0EwMjU7WUkgU1lMTEFCTEUgQk9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDI2O1lJIFNZTExBQkxFIEJPWDtMbzswO0w7Ozs7O047Ozs7OworQTAyNztZSSBTWUxMQUJMRSBCTztMbzswO0w7Ozs7O047Ozs7OworQTAyODtZSSBTWUxMQUJMRSBCT1A7TG87MDtMOzs7OztOOzs7OzsKK0EwMjk7WUkgU1lMTEFCTEUgQkVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDJBO1lJIFNZTExBQkxFIEJFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDJCO1lJIFNZTExBQkxFIEJFUDtMbzswO0w7Ozs7O047Ozs7OworQTAyQztZSSBTWUxMQUJMRSBCVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwMkQ7WUkgU1lMTEFCTEUgQlVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDJFO1lJIFNZTExBQkxFIEJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDJGO1lJIFNZTExBQkxFIEJVUDtMbzswO0w7Ozs7O047Ozs7OworQTAzMDtZSSBTWUxMQUJMRSBCVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDMxO1lJIFNZTExBQkxFIEJVUjtMbzswO0w7Ozs7O047Ozs7OworQTAzMjtZSSBTWUxMQUJMRSBCWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwMzM7WUkgU1lMTEFCTEUgQllYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDM0O1lJIFNZTExBQkxFIEJZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDM1O1lJIFNZTExBQkxFIEJZUDtMbzswO0w7Ozs7O047Ozs7OworQTAzNjtZSSBTWUxMQUJMRSBCWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDM3O1lJIFNZTExBQkxFIEJZUjtMbzswO0w7Ozs7O047Ozs7OworQTAzODtZSSBTWUxMQUJMRSBQSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwMzk7WUkgU1lMTEFCTEUgUElYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDNBO1lJIFNZTExBQkxFIFBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDNCO1lJIFNZTExBQkxFIFBJUDtMbzswO0w7Ozs7O047Ozs7OworQTAzQztZSSBTWUxMQUJMRSBQSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDNEO1lJIFNZTExBQkxFIFBJRTtMbzswO0w7Ozs7O047Ozs7OworQTAzRTtZSSBTWUxMQUJMRSBQSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDNGO1lJIFNZTExBQkxFIFBBVDtMbzswO0w7Ozs7O047Ozs7OworQTA0MDtZSSBTWUxMQUJMRSBQQVg7TG87MDtMOzs7OztOOzs7OzsKK0EwNDE7WUkgU1lMTEFCTEUgUEE7TG87MDtMOzs7OztOOzs7OzsKK0EwNDI7WUkgU1lMTEFCTEUgUEFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDQzO1lJIFNZTExBQkxFIFBVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EwNDQ7WUkgU1lMTEFCTEUgUFVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDQ1O1lJIFNZTExBQkxFIFBVT1A7TG87MDtMOzs7OztOOzs7OzsKK0EwNDY7WUkgU1lMTEFCTEUgUE9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDQ3O1lJIFNZTExBQkxFIFBPWDtMbzswO0w7Ozs7O047Ozs7OworQTA0ODtZSSBTWUxMQUJMRSBQTztMbzswO0w7Ozs7O047Ozs7OworQTA0OTtZSSBTWUxMQUJMRSBQT1A7TG87MDtMOzs7OztOOzs7OzsKK0EwNEE7WUkgU1lMTEFCTEUgUFVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDRCO1lJIFNZTExBQkxFIFBVWDtMbzswO0w7Ozs7O047Ozs7OworQTA0QztZSSBTWUxMQUJMRSBQVTtMbzswO0w7Ozs7O047Ozs7OworQTA0RDtZSSBTWUxMQUJMRSBQVVA7TG87MDtMOzs7OztOOzs7OzsKK0EwNEU7WUkgU1lMTEFCTEUgUFVSWDtMbzswO0w7Ozs7O047Ozs7OworQTA0RjtZSSBTWUxMQUJMRSBQVVI7TG87MDtMOzs7OztOOzs7OzsKK0EwNTA7WUkgU1lMTEFCTEUgUFlUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDUxO1lJIFNZTExBQkxFIFBZWDtMbzswO0w7Ozs7O047Ozs7OworQTA1MjtZSSBTWUxMQUJMRSBQWTtMbzswO0w7Ozs7O047Ozs7OworQTA1MztZSSBTWUxMQUJMRSBQWVA7TG87MDtMOzs7OztOOzs7OzsKK0EwNTQ7WUkgU1lMTEFCTEUgUFlSWDtMbzswO0w7Ozs7O047Ozs7OworQTA1NTtZSSBTWUxMQUJMRSBQWVI7TG87MDtMOzs7OztOOzs7OzsKK0EwNTY7WUkgU1lMTEFCTEUgQkJJVDtMbzswO0w7Ozs7O047Ozs7OworQTA1NztZSSBTWUxMQUJMRSBCQklYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDU4O1lJIFNZTExBQkxFIEJCSTtMbzswO0w7Ozs7O047Ozs7OworQTA1OTtZSSBTWUxMQUJMRSBCQklQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDVBO1lJIFNZTExBQkxFIEJCSUVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDVCO1lJIFNZTExBQkxFIEJCSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDVDO1lJIFNZTExBQkxFIEJCSUU7TG87MDtMOzs7OztOOzs7OzsKK0EwNUQ7WUkgU1lMTEFCTEUgQkJJRVA7TG87MDtMOzs7OztOOzs7OzsKK0EwNUU7WUkgU1lMTEFCTEUgQkJBVDtMbzswO0w7Ozs7O047Ozs7OworQTA1RjtZSSBTWUxMQUJMRSBCQkFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDYwO1lJIFNZTExBQkxFIEJCQTtMbzswO0w7Ozs7O047Ozs7OworQTA2MTtZSSBTWUxMQUJMRSBCQkFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDYyO1lJIFNZTExBQkxFIEJCVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDYzO1lJIFNZTExBQkxFIEJCVU87TG87MDtMOzs7OztOOzs7OzsKK0EwNjQ7WUkgU1lMTEFCTEUgQkJVT1A7TG87MDtMOzs7OztOOzs7OzsKK0EwNjU7WUkgU1lMTEFCTEUgQkJPVDtMbzswO0w7Ozs7O047Ozs7OworQTA2NjtZSSBTWUxMQUJMRSBCQk9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDY3O1lJIFNZTExBQkxFIEJCTztMbzswO0w7Ozs7O047Ozs7OworQTA2ODtZSSBTWUxMQUJMRSBCQk9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDY5O1lJIFNZTExBQkxFIEJCRVg7TG87MDtMOzs7OztOOzs7OzsKK0EwNkE7WUkgU1lMTEFCTEUgQkJFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDZCO1lJIFNZTExBQkxFIEJCRVA7TG87MDtMOzs7OztOOzs7OzsKK0EwNkM7WUkgU1lMTEFCTEUgQkJVVDtMbzswO0w7Ozs7O047Ozs7OworQTA2RDtZSSBTWUxMQUJMRSBCQlVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDZFO1lJIFNZTExBQkxFIEJCVTtMbzswO0w7Ozs7O047Ozs7OworQTA2RjtZSSBTWUxMQUJMRSBCQlVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDcwO1lJIFNZTExBQkxFIEJCVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDcxO1lJIFNZTExBQkxFIEJCVVI7TG87MDtMOzs7OztOOzs7OzsKK0EwNzI7WUkgU1lMTEFCTEUgQkJZVDtMbzswO0w7Ozs7O047Ozs7OworQTA3MztZSSBTWUxMQUJMRSBCQllYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDc0O1lJIFNZTExBQkxFIEJCWTtMbzswO0w7Ozs7O047Ozs7OworQTA3NTtZSSBTWUxMQUJMRSBCQllQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDc2O1lJIFNZTExBQkxFIE5CSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwNzc7WUkgU1lMTEFCTEUgTkJJWDtMbzswO0w7Ozs7O047Ozs7OworQTA3ODtZSSBTWUxMQUJMRSBOQkk7TG87MDtMOzs7OztOOzs7OzsKK0EwNzk7WUkgU1lMTEFCTEUgTkJJUDtMbzswO0w7Ozs7O047Ozs7OworQTA3QTtZSSBTWUxMQUJMRSBOQklFWDtMbzswO0w7Ozs7O047Ozs7OworQTA3QjtZSSBTWUxMQUJMRSBOQklFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDdDO1lJIFNZTExBQkxFIE5CSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDdEO1lJIFNZTExBQkxFIE5CQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwN0U7WUkgU1lMTEFCTEUgTkJBWDtMbzswO0w7Ozs7O047Ozs7OworQTA3RjtZSSBTWUxMQUJMRSBOQkE7TG87MDtMOzs7OztOOzs7OzsKK0EwODA7WUkgU1lMTEFCTEUgTkJBUDtMbzswO0w7Ozs7O047Ozs7OworQTA4MTtZSSBTWUxMQUJMRSBOQk9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDgyO1lJIFNZTExBQkxFIE5CT1g7TG87MDtMOzs7OztOOzs7OzsKK0EwODM7WUkgU1lMTEFCTEUgTkJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDg0O1lJIFNZTExBQkxFIE5CT1A7TG87MDtMOzs7OztOOzs7OzsKK0EwODU7WUkgU1lMTEFCTEUgTkJVVDtMbzswO0w7Ozs7O047Ozs7OworQTA4NjtZSSBTWUxMQUJMRSBOQlVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDg3O1lJIFNZTExBQkxFIE5CVTtMbzswO0w7Ozs7O047Ozs7OworQTA4ODtZSSBTWUxMQUJMRSBOQlVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDg5O1lJIFNZTExBQkxFIE5CVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDhBO1lJIFNZTExBQkxFIE5CVVI7TG87MDtMOzs7OztOOzs7OzsKK0EwOEI7WUkgU1lMTEFCTEUgTkJZVDtMbzswO0w7Ozs7O047Ozs7OworQTA4QztZSSBTWUxMQUJMRSBOQllYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDhEO1lJIFNZTExBQkxFIE5CWTtMbzswO0w7Ozs7O047Ozs7OworQTA4RTtZSSBTWUxMQUJMRSBOQllQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDhGO1lJIFNZTExBQkxFIE5CWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDkwO1lJIFNZTExBQkxFIE5CWVI7TG87MDtMOzs7OztOOzs7OzsKK0EwOTE7WUkgU1lMTEFCTEUgSE1JVDtMbzswO0w7Ozs7O047Ozs7OworQTA5MjtZSSBTWUxMQUJMRSBITUlYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDkzO1lJIFNZTExBQkxFIEhNSTtMbzswO0w7Ozs7O047Ozs7OworQTA5NDtZSSBTWUxMQUJMRSBITUlQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDk1O1lJIFNZTExBQkxFIEhNSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDk2O1lJIFNZTExBQkxFIEhNSUU7TG87MDtMOzs7OztOOzs7OzsKK0EwOTc7WUkgU1lMTEFCTEUgSE1JRVA7TG87MDtMOzs7OztOOzs7OzsKK0EwOTg7WUkgU1lMTEFCTEUgSE1BVDtMbzswO0w7Ozs7O047Ozs7OworQTA5OTtZSSBTWUxMQUJMRSBITUFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDlBO1lJIFNZTExBQkxFIEhNQTtMbzswO0w7Ozs7O047Ozs7OworQTA5QjtZSSBTWUxMQUJMRSBITUFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDlDO1lJIFNZTExBQkxFIEhNVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDlEO1lJIFNZTExBQkxFIEhNVU87TG87MDtMOzs7OztOOzs7OzsKK0EwOUU7WUkgU1lMTEFCTEUgSE1VT1A7TG87MDtMOzs7OztOOzs7OzsKK0EwOUY7WUkgU1lMTEFCTEUgSE1PVDtMbzswO0w7Ozs7O047Ozs7OworQTBBMDtZSSBTWUxMQUJMRSBITU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEExO1lJIFNZTExBQkxFIEhNTztMbzswO0w7Ozs7O047Ozs7OworQTBBMjtZSSBTWUxMQUJMRSBITU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEEzO1lJIFNZTExBQkxFIEhNVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwQTQ7WUkgU1lMTEFCTEUgSE1VWDtMbzswO0w7Ozs7O047Ozs7OworQTBBNTtZSSBTWUxMQUJMRSBITVU7TG87MDtMOzs7OztOOzs7OzsKK0EwQTY7WUkgU1lMTEFCTEUgSE1VUDtMbzswO0w7Ozs7O047Ozs7OworQTBBNztZSSBTWUxMQUJMRSBITVVSWDtMbzswO0w7Ozs7O047Ozs7OworQTBBODtZSSBTWUxMQUJMRSBITVVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEE5O1lJIFNZTExBQkxFIEhNWVg7TG87MDtMOzs7OztOOzs7OzsKK0EwQUE7WUkgU1lMTEFCTEUgSE1ZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEFCO1lJIFNZTExBQkxFIEhNWVA7TG87MDtMOzs7OztOOzs7OzsKK0EwQUM7WUkgU1lMTEFCTEUgSE1ZUlg7TG87MDtMOzs7OztOOzs7OzsKK0EwQUQ7WUkgU1lMTEFCTEUgSE1ZUjtMbzswO0w7Ozs7O047Ozs7OworQTBBRTtZSSBTWUxMQUJMRSBNSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwQUY7WUkgU1lMTEFCTEUgTUlYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEIwO1lJIFNZTExBQkxFIE1JO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEIxO1lJIFNZTExBQkxFIE1JUDtMbzswO0w7Ozs7O047Ozs7OworQTBCMjtZSSBTWUxMQUJMRSBNSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEIzO1lJIFNZTExBQkxFIE1JRTtMbzswO0w7Ozs7O047Ozs7OworQTBCNDtZSSBTWUxMQUJMRSBNSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEI1O1lJIFNZTExBQkxFIE1BVDtMbzswO0w7Ozs7O047Ozs7OworQTBCNjtZSSBTWUxMQUJMRSBNQVg7TG87MDtMOzs7OztOOzs7OzsKK0EwQjc7WUkgU1lMTEFCTEUgTUE7TG87MDtMOzs7OztOOzs7OzsKK0EwQjg7WUkgU1lMTEFCTEUgTUFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEI5O1lJIFNZTExBQkxFIE1VT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EwQkE7WUkgU1lMTEFCTEUgTVVPWDtMbzswO0w7Ozs7O047Ozs7OworQTBCQjtZSSBTWUxMQUJMRSBNVU87TG87MDtMOzs7OztOOzs7OzsKK0EwQkM7WUkgU1lMTEFCTEUgTVVPUDtMbzswO0w7Ozs7O047Ozs7OworQTBCRDtZSSBTWUxMQUJMRSBNT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EwQkU7WUkgU1lMTEFCTEUgTU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEJGO1lJIFNZTExBQkxFIE1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEMwO1lJIFNZTExBQkxFIE1PUDtMbzswO0w7Ozs7O047Ozs7OworQTBDMTtZSSBTWUxMQUJMRSBNRVg7TG87MDtMOzs7OztOOzs7OzsKK0EwQzI7WUkgU1lMTEFCTEUgTUU7TG87MDtMOzs7OztOOzs7OzsKK0EwQzM7WUkgU1lMTEFCTEUgTVVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEM0O1lJIFNZTExBQkxFIE1VWDtMbzswO0w7Ozs7O047Ozs7OworQTBDNTtZSSBTWUxMQUJMRSBNVTtMbzswO0w7Ozs7O047Ozs7OworQTBDNjtZSSBTWUxMQUJMRSBNVVA7TG87MDtMOzs7OztOOzs7OzsKK0EwQzc7WUkgU1lMTEFCTEUgTVVSWDtMbzswO0w7Ozs7O047Ozs7OworQTBDODtZSSBTWUxMQUJMRSBNVVI7TG87MDtMOzs7OztOOzs7OzsKK0EwQzk7WUkgU1lMTEFCTEUgTVlUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMENBO1lJIFNZTExBQkxFIE1ZWDtMbzswO0w7Ozs7O047Ozs7OworQTBDQjtZSSBTWUxMQUJMRSBNWTtMbzswO0w7Ozs7O047Ozs7OworQTBDQztZSSBTWUxMQUJMRSBNWVA7TG87MDtMOzs7OztOOzs7OzsKK0EwQ0Q7WUkgU1lMTEFCTEUgRklUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMENFO1lJIFNZTExBQkxFIEZJWDtMbzswO0w7Ozs7O047Ozs7OworQTBDRjtZSSBTWUxMQUJMRSBGSTtMbzswO0w7Ozs7O047Ozs7OworQTBEMDtZSSBTWUxMQUJMRSBGSVA7TG87MDtMOzs7OztOOzs7OzsKK0EwRDE7WUkgU1lMTEFCTEUgRkFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEQyO1lJIFNZTExBQkxFIEZBWDtMbzswO0w7Ozs7O047Ozs7OworQTBEMztZSSBTWUxMQUJMRSBGQTtMbzswO0w7Ozs7O047Ozs7OworQTBENDtZSSBTWUxMQUJMRSBGQVA7TG87MDtMOzs7OztOOzs7OzsKK0EwRDU7WUkgU1lMTEFCTEUgRk9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEQ2O1lJIFNZTExBQkxFIEZPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEQ3O1lJIFNZTExBQkxFIEZPUDtMbzswO0w7Ozs7O047Ozs7OworQTBEODtZSSBTWUxMQUJMRSBGVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwRDk7WUkgU1lMTEFCTEUgRlVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMERBO1lJIFNZTExBQkxFIEZVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMERCO1lJIFNZTExBQkxFIEZVUDtMbzswO0w7Ozs7O047Ozs7OworQTBEQztZSSBTWUxMQUJMRSBGVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEREO1lJIFNZTExBQkxFIEZVUjtMbzswO0w7Ozs7O047Ozs7OworQTBERTtZSSBTWUxMQUJMRSBGWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwREY7WUkgU1lMTEFCTEUgRllYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEUwO1lJIFNZTExBQkxFIEZZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEUxO1lJIFNZTExBQkxFIEZZUDtMbzswO0w7Ozs7O047Ozs7OworQTBFMjtZSSBTWUxMQUJMRSBWSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwRTM7WUkgU1lMTEFCTEUgVklYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEU0O1lJIFNZTExBQkxFIFZJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEU1O1lJIFNZTExBQkxFIFZJUDtMbzswO0w7Ozs7O047Ozs7OworQTBFNjtZSSBTWUxMQUJMRSBWSUVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEU3O1lJIFNZTExBQkxFIFZJRVg7TG87MDtMOzs7OztOOzs7OzsKK0EwRTg7WUkgU1lMTEFCTEUgVklFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEU5O1lJIFNZTExBQkxFIFZJRVA7TG87MDtMOzs7OztOOzs7OzsKK0EwRUE7WUkgU1lMTEFCTEUgVkFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEVCO1lJIFNZTExBQkxFIFZBWDtMbzswO0w7Ozs7O047Ozs7OworQTBFQztZSSBTWUxMQUJMRSBWQTtMbzswO0w7Ozs7O047Ozs7OworQTBFRDtZSSBTWUxMQUJMRSBWQVA7TG87MDtMOzs7OztOOzs7OzsKK0EwRUU7WUkgU1lMTEFCTEUgVk9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEVGO1lJIFNZTExBQkxFIFZPWDtMbzswO0w7Ozs7O047Ozs7OworQTBGMDtZSSBTWUxMQUJMRSBWTztMbzswO0w7Ozs7O047Ozs7OworQTBGMTtZSSBTWUxMQUJMRSBWT1A7TG87MDtMOzs7OztOOzs7OzsKK0EwRjI7WUkgU1lMTEFCTEUgVkVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEYzO1lJIFNZTExBQkxFIFZFUDtMbzswO0w7Ozs7O047Ozs7OworQTBGNDtZSSBTWUxMQUJMRSBWVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwRjU7WUkgU1lMTEFCTEUgVlVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEY2O1lJIFNZTExBQkxFIFZVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEY3O1lJIFNZTExBQkxFIFZVUDtMbzswO0w7Ozs7O047Ozs7OworQTBGODtZSSBTWUxMQUJMRSBWVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEY5O1lJIFNZTExBQkxFIFZVUjtMbzswO0w7Ozs7O047Ozs7OworQTBGQTtZSSBTWUxMQUJMRSBWWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwRkI7WUkgU1lMTEFCTEUgVllYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEZDO1lJIFNZTExBQkxFIFZZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEZEO1lJIFNZTExBQkxFIFZZUDtMbzswO0w7Ozs7O047Ozs7OworQTBGRTtZSSBTWUxMQUJMRSBWWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEZGO1lJIFNZTExBQkxFIFZZUjtMbzswO0w7Ozs7O047Ozs7OworQTEwMDtZSSBTWUxMQUJMRSBESVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExMDE7WUkgU1lMTEFCTEUgRElYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTAyO1lJIFNZTExBQkxFIERJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTAzO1lJIFNZTExBQkxFIERJUDtMbzswO0w7Ozs7O047Ozs7OworQTEwNDtZSSBTWUxMQUJMRSBESUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTA1O1lJIFNZTExBQkxFIERJRTtMbzswO0w7Ozs7O047Ozs7OworQTEwNjtZSSBTWUxMQUJMRSBESUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTA3O1lJIFNZTExBQkxFIERBVDtMbzswO0w7Ozs7O047Ozs7OworQTEwODtZSSBTWUxMQUJMRSBEQVg7TG87MDtMOzs7OztOOzs7OzsKK0ExMDk7WUkgU1lMTEFCTEUgREE7TG87MDtMOzs7OztOOzs7OzsKK0ExMEE7WUkgU1lMTEFCTEUgREFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTBCO1lJIFNZTExBQkxFIERVT1g7TG87MDtMOzs7OztOOzs7OzsKK0ExMEM7WUkgU1lMTEFCTEUgRFVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTBEO1lJIFNZTExBQkxFIERPVDtMbzswO0w7Ozs7O047Ozs7OworQTEwRTtZSSBTWUxMQUJMRSBET1g7TG87MDtMOzs7OztOOzs7OzsKK0ExMEY7WUkgU1lMTEFCTEUgRE87TG87MDtMOzs7OztOOzs7OzsKK0ExMTA7WUkgU1lMTEFCTEUgRE9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTExO1lJIFNZTExBQkxFIERFWDtMbzswO0w7Ozs7O047Ozs7OworQTExMjtZSSBTWUxMQUJMRSBERTtMbzswO0w7Ozs7O047Ozs7OworQTExMztZSSBTWUxMQUJMRSBERVA7TG87MDtMOzs7OztOOzs7OzsKK0ExMTQ7WUkgU1lMTEFCTEUgRFVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTE1O1lJIFNZTExBQkxFIERVWDtMbzswO0w7Ozs7O047Ozs7OworQTExNjtZSSBTWUxMQUJMRSBEVTtMbzswO0w7Ozs7O047Ozs7OworQTExNztZSSBTWUxMQUJMRSBEVVA7TG87MDtMOzs7OztOOzs7OzsKK0ExMTg7WUkgU1lMTEFCTEUgRFVSWDtMbzswO0w7Ozs7O047Ozs7OworQTExOTtZSSBTWUxMQUJMRSBEVVI7TG87MDtMOzs7OztOOzs7OzsKK0ExMUE7WUkgU1lMTEFCTEUgVElUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTFCO1lJIFNZTExBQkxFIFRJWDtMbzswO0w7Ozs7O047Ozs7OworQTExQztZSSBTWUxMQUJMRSBUSTtMbzswO0w7Ozs7O047Ozs7OworQTExRDtZSSBTWUxMQUJMRSBUSVA7TG87MDtMOzs7OztOOzs7OzsKK0ExMUU7WUkgU1lMTEFCTEUgVElFWDtMbzswO0w7Ozs7O047Ozs7OworQTExRjtZSSBTWUxMQUJMRSBUSUU7TG87MDtMOzs7OztOOzs7OzsKK0ExMjA7WUkgU1lMTEFCTEUgVElFUDtMbzswO0w7Ozs7O047Ozs7OworQTEyMTtZSSBTWUxMQUJMRSBUQVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExMjI7WUkgU1lMTEFCTEUgVEFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTIzO1lJIFNZTExBQkxFIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTI0O1lJIFNZTExBQkxFIFRBUDtMbzswO0w7Ozs7O047Ozs7OworQTEyNTtZSSBTWUxMQUJMRSBUVU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTI2O1lJIFNZTExBQkxFIFRVT1g7TG87MDtMOzs7OztOOzs7OzsKK0ExMjc7WUkgU1lMTEFCTEUgVFVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTI4O1lJIFNZTExBQkxFIFRVT1A7TG87MDtMOzs7OztOOzs7OzsKK0ExMjk7WUkgU1lMTEFCTEUgVE9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTJBO1lJIFNZTExBQkxFIFRPWDtMbzswO0w7Ozs7O047Ozs7OworQTEyQjtZSSBTWUxMQUJMRSBUTztMbzswO0w7Ozs7O047Ozs7OworQTEyQztZSSBTWUxMQUJMRSBUT1A7TG87MDtMOzs7OztOOzs7OzsKK0ExMkQ7WUkgU1lMTEFCTEUgVEVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTJFO1lJIFNZTExBQkxFIFRFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTJGO1lJIFNZTExBQkxFIFRFUDtMbzswO0w7Ozs7O047Ozs7OworQTEzMDtZSSBTWUxMQUJMRSBUVVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExMzE7WUkgU1lMTEFCTEUgVFVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTMyO1lJIFNZTExBQkxFIFRVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTMzO1lJIFNZTExBQkxFIFRVUDtMbzswO0w7Ozs7O047Ozs7OworQTEzNDtZSSBTWUxMQUJMRSBUVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTM1O1lJIFNZTExBQkxFIFRVUjtMbzswO0w7Ozs7O047Ozs7OworQTEzNjtZSSBTWUxMQUJMRSBERElUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTM3O1lJIFNZTExBQkxFIERESVg7TG87MDtMOzs7OztOOzs7OzsKK0ExMzg7WUkgU1lMTEFCTEUgRERJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTM5O1lJIFNZTExBQkxFIERESVA7TG87MDtMOzs7OztOOzs7OzsKK0ExM0E7WUkgU1lMTEFCTEUgRERJRVg7TG87MDtMOzs7OztOOzs7OzsKK0ExM0I7WUkgU1lMTEFCTEUgRERJRTtMbzswO0w7Ozs7O047Ozs7OworQTEzQztZSSBTWUxMQUJMRSBERElFUDtMbzswO0w7Ozs7O047Ozs7OworQTEzRDtZSSBTWUxMQUJMRSBEREFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTNFO1lJIFNZTExBQkxFIEREQVg7TG87MDtMOzs7OztOOzs7OzsKK0ExM0Y7WUkgU1lMTEFCTEUgRERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTQwO1lJIFNZTExBQkxFIEREQVA7TG87MDtMOzs7OztOOzs7OzsKK0ExNDE7WUkgU1lMTEFCTEUgRERVT1g7TG87MDtMOzs7OztOOzs7OzsKK0ExNDI7WUkgU1lMTEFCTEUgRERVTztMbzswO0w7Ozs7O047Ozs7OworQTE0MztZSSBTWUxMQUJMRSBERFVPUDtMbzswO0w7Ozs7O047Ozs7OworQTE0NDtZSSBTWUxMQUJMRSBERE9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTQ1O1lJIFNZTExBQkxFIERET1g7TG87MDtMOzs7OztOOzs7OzsKK0ExNDY7WUkgU1lMTEFCTEUgRERPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTQ3O1lJIFNZTExBQkxFIERET1A7TG87MDtMOzs7OztOOzs7OzsKK0ExNDg7WUkgU1lMTEFCTEUgRERFWDtMbzswO0w7Ozs7O047Ozs7OworQTE0OTtZSSBTWUxMQUJMRSBEREU7TG87MDtMOzs7OztOOzs7OzsKK0ExNEE7WUkgU1lMTEFCTEUgRERFUDtMbzswO0w7Ozs7O047Ozs7OworQTE0QjtZSSBTWUxMQUJMRSBERFVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTRDO1lJIFNZTExBQkxFIEREVVg7TG87MDtMOzs7OztOOzs7OzsKK0ExNEQ7WUkgU1lMTEFCTEUgRERVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTRFO1lJIFNZTExBQkxFIEREVVA7TG87MDtMOzs7OztOOzs7OzsKK0ExNEY7WUkgU1lMTEFCTEUgRERVUlg7TG87MDtMOzs7OztOOzs7OzsKK0ExNTA7WUkgU1lMTEFCTEUgRERVUjtMbzswO0w7Ozs7O047Ozs7OworQTE1MTtZSSBTWUxMQUJMRSBORElUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTUyO1lJIFNZTExBQkxFIE5ESVg7TG87MDtMOzs7OztOOzs7OzsKK0ExNTM7WUkgU1lMTEFCTEUgTkRJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTU0O1lJIFNZTExBQkxFIE5ESVA7TG87MDtMOzs7OztOOzs7OzsKK0ExNTU7WUkgU1lMTEFCTEUgTkRJRVg7TG87MDtMOzs7OztOOzs7OzsKK0ExNTY7WUkgU1lMTEFCTEUgTkRJRTtMbzswO0w7Ozs7O047Ozs7OworQTE1NztZSSBTWUxMQUJMRSBOREFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTU4O1lJIFNZTExBQkxFIE5EQVg7TG87MDtMOzs7OztOOzs7OzsKK0ExNTk7WUkgU1lMTEFCTEUgTkRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTVBO1lJIFNZTExBQkxFIE5EQVA7TG87MDtMOzs7OztOOzs7OzsKK0ExNUI7WUkgU1lMTEFCTEUgTkRPVDtMbzswO0w7Ozs7O047Ozs7OworQTE1QztZSSBTWUxMQUJMRSBORE9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTVEO1lJIFNZTExBQkxFIE5ETztMbzswO0w7Ozs7O047Ozs7OworQTE1RTtZSSBTWUxMQUJMRSBORE9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTVGO1lJIFNZTExBQkxFIE5ERVg7TG87MDtMOzs7OztOOzs7OzsKK0ExNjA7WUkgU1lMTEFCTEUgTkRFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTYxO1lJIFNZTExBQkxFIE5ERVA7TG87MDtMOzs7OztOOzs7OzsKK0ExNjI7WUkgU1lMTEFCTEUgTkRVVDtMbzswO0w7Ozs7O047Ozs7OworQTE2MztZSSBTWUxMQUJMRSBORFVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTY0O1lJIFNZTExBQkxFIE5EVTtMbzswO0w7Ozs7O047Ozs7OworQTE2NTtZSSBTWUxMQUJMRSBORFVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTY2O1lJIFNZTExBQkxFIE5EVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTY3O1lJIFNZTExBQkxFIE5EVVI7TG87MDtMOzs7OztOOzs7OzsKK0ExNjg7WUkgU1lMTEFCTEUgSE5JVDtMbzswO0w7Ozs7O047Ozs7OworQTE2OTtZSSBTWUxMQUJMRSBITklYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTZBO1lJIFNZTExBQkxFIEhOSTtMbzswO0w7Ozs7O047Ozs7OworQTE2QjtZSSBTWUxMQUJMRSBITklQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTZDO1lJIFNZTExBQkxFIEhOSUVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTZEO1lJIFNZTExBQkxFIEhOSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTZFO1lJIFNZTExBQkxFIEhOSUU7TG87MDtMOzs7OztOOzs7OzsKK0ExNkY7WUkgU1lMTEFCTEUgSE5JRVA7TG87MDtMOzs7OztOOzs7OzsKK0ExNzA7WUkgU1lMTEFCTEUgSE5BVDtMbzswO0w7Ozs7O047Ozs7OworQTE3MTtZSSBTWUxMQUJMRSBITkFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTcyO1lJIFNZTExBQkxFIEhOQTtMbzswO0w7Ozs7O047Ozs7OworQTE3MztZSSBTWUxMQUJMRSBITkFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTc0O1lJIFNZTExBQkxFIEhOVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTc1O1lJIFNZTExBQkxFIEhOVU87TG87MDtMOzs7OztOOzs7OzsKK0ExNzY7WUkgU1lMTEFCTEUgSE5PVDtMbzswO0w7Ozs7O047Ozs7OworQTE3NztZSSBTWUxMQUJMRSBITk9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTc4O1lJIFNZTExBQkxFIEhOT1A7TG87MDtMOzs7OztOOzs7OzsKK0ExNzk7WUkgU1lMTEFCTEUgSE5FWDtMbzswO0w7Ozs7O047Ozs7OworQTE3QTtZSSBTWUxMQUJMRSBITkU7TG87MDtMOzs7OztOOzs7OzsKK0ExN0I7WUkgU1lMTEFCTEUgSE5FUDtMbzswO0w7Ozs7O047Ozs7OworQTE3QztZSSBTWUxMQUJMRSBITlVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTdEO1lJIFNZTExBQkxFIE5JVDtMbzswO0w7Ozs7O047Ozs7OworQTE3RTtZSSBTWUxMQUJMRSBOSVg7TG87MDtMOzs7OztOOzs7OzsKK0ExN0Y7WUkgU1lMTEFCTEUgTkk7TG87MDtMOzs7OztOOzs7OzsKK0ExODA7WUkgU1lMTEFCTEUgTklQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTgxO1lJIFNZTExBQkxFIE5JRVg7TG87MDtMOzs7OztOOzs7OzsKK0ExODI7WUkgU1lMTEFCTEUgTklFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTgzO1lJIFNZTExBQkxFIE5JRVA7TG87MDtMOzs7OztOOzs7OzsKK0ExODQ7WUkgU1lMTEFCTEUgTkFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTg1O1lJIFNZTExBQkxFIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTg2O1lJIFNZTExBQkxFIE5BUDtMbzswO0w7Ozs7O047Ozs7OworQTE4NztZSSBTWUxMQUJMRSBOVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTg4O1lJIFNZTExBQkxFIE5VTztMbzswO0w7Ozs7O047Ozs7OworQTE4OTtZSSBTWUxMQUJMRSBOVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMThBO1lJIFNZTExBQkxFIE5PVDtMbzswO0w7Ozs7O047Ozs7OworQTE4QjtZSSBTWUxMQUJMRSBOT1g7TG87MDtMOzs7OztOOzs7OzsKK0ExOEM7WUkgU1lMTEFCTEUgTk87TG87MDtMOzs7OztOOzs7OzsKK0ExOEQ7WUkgU1lMTEFCTEUgTk9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMThFO1lJIFNZTExBQkxFIE5FWDtMbzswO0w7Ozs7O047Ozs7OworQTE4RjtZSSBTWUxMQUJMRSBORTtMbzswO0w7Ozs7O047Ozs7OworQTE5MDtZSSBTWUxMQUJMRSBORVA7TG87MDtMOzs7OztOOzs7OzsKK0ExOTE7WUkgU1lMTEFCTEUgTlVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTkyO1lJIFNZTExBQkxFIE5VWDtMbzswO0w7Ozs7O047Ozs7OworQTE5MztZSSBTWUxMQUJMRSBOVTtMbzswO0w7Ozs7O047Ozs7OworQTE5NDtZSSBTWUxMQUJMRSBOVVA7TG87MDtMOzs7OztOOzs7OzsKK0ExOTU7WUkgU1lMTEFCTEUgTlVSWDtMbzswO0w7Ozs7O047Ozs7OworQTE5NjtZSSBTWUxMQUJMRSBOVVI7TG87MDtMOzs7OztOOzs7OzsKK0ExOTc7WUkgU1lMTEFCTEUgSExJVDtMbzswO0w7Ozs7O047Ozs7OworQTE5ODtZSSBTWUxMQUJMRSBITElYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTk5O1lJIFNZTExBQkxFIEhMSTtMbzswO0w7Ozs7O047Ozs7OworQTE5QTtZSSBTWUxMQUJMRSBITElQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTlCO1lJIFNZTExBQkxFIEhMSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTlDO1lJIFNZTExBQkxFIEhMSUU7TG87MDtMOzs7OztOOzs7OzsKK0ExOUQ7WUkgU1lMTEFCTEUgSExJRVA7TG87MDtMOzs7OztOOzs7OzsKK0ExOUU7WUkgU1lMTEFCTEUgSExBVDtMbzswO0w7Ozs7O047Ozs7OworQTE5RjtZSSBTWUxMQUJMRSBITEFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUEwO1lJIFNZTExBQkxFIEhMQTtMbzswO0w7Ozs7O047Ozs7OworQTFBMTtZSSBTWUxMQUJMRSBITEFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUEyO1lJIFNZTExBQkxFIEhMVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUEzO1lJIFNZTExBQkxFIEhMVU87TG87MDtMOzs7OztOOzs7OzsKK0ExQTQ7WUkgU1lMTEFCTEUgSExVT1A7TG87MDtMOzs7OztOOzs7OzsKK0ExQTU7WUkgU1lMTEFCTEUgSExPWDtMbzswO0w7Ozs7O047Ozs7OworQTFBNjtZSSBTWUxMQUJMRSBITE87TG87MDtMOzs7OztOOzs7OzsKK0ExQTc7WUkgU1lMTEFCTEUgSExPUDtMbzswO0w7Ozs7O047Ozs7OworQTFBODtZSSBTWUxMQUJMRSBITEVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUE5O1lJIFNZTExBQkxFIEhMRTtMbzswO0w7Ozs7O047Ozs7OworQTFBQTtZSSBTWUxMQUJMRSBITEVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUFCO1lJIFNZTExBQkxFIEhMVVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExQUM7WUkgU1lMTEFCTEUgSExVWDtMbzswO0w7Ozs7O047Ozs7OworQTFBRDtZSSBTWUxMQUJMRSBITFU7TG87MDtMOzs7OztOOzs7OzsKK0ExQUU7WUkgU1lMTEFCTEUgSExVUDtMbzswO0w7Ozs7O047Ozs7OworQTFBRjtZSSBTWUxMQUJMRSBITFVSWDtMbzswO0w7Ozs7O047Ozs7OworQTFCMDtZSSBTWUxMQUJMRSBITFVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUIxO1lJIFNZTExBQkxFIEhMWVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExQjI7WUkgU1lMTEFCTEUgSExZWDtMbzswO0w7Ozs7O047Ozs7OworQTFCMztZSSBTWUxMQUJMRSBITFk7TG87MDtMOzs7OztOOzs7OzsKK0ExQjQ7WUkgU1lMTEFCTEUgSExZUDtMbzswO0w7Ozs7O047Ozs7OworQTFCNTtZSSBTWUxMQUJMRSBITFlSWDtMbzswO0w7Ozs7O047Ozs7OworQTFCNjtZSSBTWUxMQUJMRSBITFlSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUI3O1lJIFNZTExBQkxFIExJVDtMbzswO0w7Ozs7O047Ozs7OworQTFCODtZSSBTWUxMQUJMRSBMSVg7TG87MDtMOzs7OztOOzs7OzsKK0ExQjk7WUkgU1lMTEFCTEUgTEk7TG87MDtMOzs7OztOOzs7OzsKK0ExQkE7WUkgU1lMTEFCTEUgTElQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUJCO1lJIFNZTExBQkxFIExJRVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExQkM7WUkgU1lMTEFCTEUgTElFWDtMbzswO0w7Ozs7O047Ozs7OworQTFCRDtZSSBTWUxMQUJMRSBMSUU7TG87MDtMOzs7OztOOzs7OzsKK0ExQkU7WUkgU1lMTEFCTEUgTElFUDtMbzswO0w7Ozs7O047Ozs7OworQTFCRjtZSSBTWUxMQUJMRSBMQVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExQzA7WUkgU1lMTEFCTEUgTEFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUMxO1lJIFNZTExBQkxFIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUMyO1lJIFNZTExBQkxFIExBUDtMbzswO0w7Ozs7O047Ozs7OworQTFDMztZSSBTWUxMQUJMRSBMVU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUM0O1lJIFNZTExBQkxFIExVT1g7TG87MDtMOzs7OztOOzs7OzsKK0ExQzU7WUkgU1lMTEFCTEUgTFVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUM2O1lJIFNZTExBQkxFIExVT1A7TG87MDtMOzs7OztOOzs7OzsKK0ExQzc7WUkgU1lMTEFCTEUgTE9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUM4O1lJIFNZTExBQkxFIExPWDtMbzswO0w7Ozs7O047Ozs7OworQTFDOTtZSSBTWUxMQUJMRSBMTztMbzswO0w7Ozs7O047Ozs7OworQTFDQTtZSSBTWUxMQUJMRSBMT1A7TG87MDtMOzs7OztOOzs7OzsKK0ExQ0I7WUkgU1lMTEFCTEUgTEVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUNDO1lJIFNZTExBQkxFIExFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUNEO1lJIFNZTExBQkxFIExFUDtMbzswO0w7Ozs7O047Ozs7OworQTFDRTtZSSBTWUxMQUJMRSBMVVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExQ0Y7WUkgU1lMTEFCTEUgTFVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUQwO1lJIFNZTExBQkxFIExVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUQxO1lJIFNZTExBQkxFIExVUDtMbzswO0w7Ozs7O047Ozs7OworQTFEMjtZSSBTWUxMQUJMRSBMVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUQzO1lJIFNZTExBQkxFIExVUjtMbzswO0w7Ozs7O047Ozs7OworQTFENDtZSSBTWUxMQUJMRSBMWVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExRDU7WUkgU1lMTEFCTEUgTFlYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUQ2O1lJIFNZTExBQkxFIExZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUQ3O1lJIFNZTExBQkxFIExZUDtMbzswO0w7Ozs7O047Ozs7OworQTFEODtZSSBTWUxMQUJMRSBMWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUQ5O1lJIFNZTExBQkxFIExZUjtMbzswO0w7Ozs7O047Ozs7OworQTFEQTtZSSBTWUxMQUJMRSBHSVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExREI7WUkgU1lMTEFCTEUgR0lYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMURDO1lJIFNZTExBQkxFIEdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUREO1lJIFNZTExBQkxFIEdJUDtMbzswO0w7Ozs7O047Ozs7OworQTFERTtZSSBTWUxMQUJMRSBHSUVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMURGO1lJIFNZTExBQkxFIEdJRVg7TG87MDtMOzs7OztOOzs7OzsKK0ExRTA7WUkgU1lMTEFCTEUgR0lFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUUxO1lJIFNZTExBQkxFIEdJRVA7TG87MDtMOzs7OztOOzs7OzsKK0ExRTI7WUkgU1lMTEFCTEUgR0FUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUUzO1lJIFNZTExBQkxFIEdBWDtMbzswO0w7Ozs7O047Ozs7OworQTFFNDtZSSBTWUxMQUJMRSBHQTtMbzswO0w7Ozs7O047Ozs7OworQTFFNTtZSSBTWUxMQUJMRSBHQVA7TG87MDtMOzs7OztOOzs7OzsKK0ExRTY7WUkgU1lMTEFCTEUgR1VPVDtMbzswO0w7Ozs7O047Ozs7OworQTFFNztZSSBTWUxMQUJMRSBHVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUU4O1lJIFNZTExBQkxFIEdVTztMbzswO0w7Ozs7O047Ozs7OworQTFFOTtZSSBTWUxMQUJMRSBHVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUVBO1lJIFNZTExBQkxFIEdPVDtMbzswO0w7Ozs7O047Ozs7OworQTFFQjtZSSBTWUxMQUJMRSBHT1g7TG87MDtMOzs7OztOOzs7OzsKK0ExRUM7WUkgU1lMTEFCTEUgR087TG87MDtMOzs7OztOOzs7OzsKK0ExRUQ7WUkgU1lMTEFCTEUgR09QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUVFO1lJIFNZTExBQkxFIEdFVDtMbzswO0w7Ozs7O047Ozs7OworQTFFRjtZSSBTWUxMQUJMRSBHRVg7TG87MDtMOzs7OztOOzs7OzsKK0ExRjA7WUkgU1lMTEFCTEUgR0U7TG87MDtMOzs7OztOOzs7OzsKK0ExRjE7WUkgU1lMTEFCTEUgR0VQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUYyO1lJIFNZTExBQkxFIEdVVDtMbzswO0w7Ozs7O047Ozs7OworQTFGMztZSSBTWUxMQUJMRSBHVVg7TG87MDtMOzs7OztOOzs7OzsKK0ExRjQ7WUkgU1lMTEFCTEUgR1U7TG87MDtMOzs7OztOOzs7OzsKK0ExRjU7WUkgU1lMTEFCTEUgR1VQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUY2O1lJIFNZTExBQkxFIEdVUlg7TG87MDtMOzs7OztOOzs7OzsKK0ExRjc7WUkgU1lMTEFCTEUgR1VSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUY4O1lJIFNZTExBQkxFIEtJVDtMbzswO0w7Ozs7O047Ozs7OworQTFGOTtZSSBTWUxMQUJMRSBLSVg7TG87MDtMOzs7OztOOzs7OzsKK0ExRkE7WUkgU1lMTEFCTEUgS0k7TG87MDtMOzs7OztOOzs7OzsKK0ExRkI7WUkgU1lMTEFCTEUgS0lQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUZDO1lJIFNZTExBQkxFIEtJRVg7TG87MDtMOzs7OztOOzs7OzsKK0ExRkQ7WUkgU1lMTEFCTEUgS0lFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUZFO1lJIFNZTExBQkxFIEtJRVA7TG87MDtMOzs7OztOOzs7OzsKK0ExRkY7WUkgU1lMTEFCTEUgS0FUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjAwO1lJIFNZTExBQkxFIEtBWDtMbzswO0w7Ozs7O047Ozs7OworQTIwMTtZSSBTWUxMQUJMRSBLQTtMbzswO0w7Ozs7O047Ozs7OworQTIwMjtZSSBTWUxMQUJMRSBLQVA7TG87MDtMOzs7OztOOzs7OzsKK0EyMDM7WUkgU1lMTEFCTEUgS1VPWDtMbzswO0w7Ozs7O047Ozs7OworQTIwNDtZSSBTWUxMQUJMRSBLVU87TG87MDtMOzs7OztOOzs7OzsKK0EyMDU7WUkgU1lMTEFCTEUgS1VPUDtMbzswO0w7Ozs7O047Ozs7OworQTIwNjtZSSBTWUxMQUJMRSBLT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EyMDc7WUkgU1lMTEFCTEUgS09YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjA4O1lJIFNZTExBQkxFIEtPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjA5O1lJIFNZTExBQkxFIEtPUDtMbzswO0w7Ozs7O047Ozs7OworQTIwQTtZSSBTWUxMQUJMRSBLRVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyMEI7WUkgU1lMTEFCTEUgS0VYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjBDO1lJIFNZTExBQkxFIEtFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjBEO1lJIFNZTExBQkxFIEtFUDtMbzswO0w7Ozs7O047Ozs7OworQTIwRTtZSSBTWUxMQUJMRSBLVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyMEY7WUkgU1lMTEFCTEUgS1VYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjEwO1lJIFNZTExBQkxFIEtVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjExO1lJIFNZTExBQkxFIEtVUDtMbzswO0w7Ozs7O047Ozs7OworQTIxMjtZSSBTWUxMQUJMRSBLVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjEzO1lJIFNZTExBQkxFIEtVUjtMbzswO0w7Ozs7O047Ozs7OworQTIxNDtZSSBTWUxMQUJMRSBHR0lUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjE1O1lJIFNZTExBQkxFIEdHSVg7TG87MDtMOzs7OztOOzs7OzsKK0EyMTY7WUkgU1lMTEFCTEUgR0dJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjE3O1lJIFNZTExBQkxFIEdHSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjE4O1lJIFNZTExBQkxFIEdHSUU7TG87MDtMOzs7OztOOzs7OzsKK0EyMTk7WUkgU1lMTEFCTEUgR0dJRVA7TG87MDtMOzs7OztOOzs7OzsKK0EyMUE7WUkgU1lMTEFCTEUgR0dBVDtMbzswO0w7Ozs7O047Ozs7OworQTIxQjtZSSBTWUxMQUJMRSBHR0FYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjFDO1lJIFNZTExBQkxFIEdHQTtMbzswO0w7Ozs7O047Ozs7OworQTIxRDtZSSBTWUxMQUJMRSBHR0FQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjFFO1lJIFNZTExBQkxFIEdHVU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjFGO1lJIFNZTExBQkxFIEdHVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjIwO1lJIFNZTExBQkxFIEdHVU87TG87MDtMOzs7OztOOzs7OzsKK0EyMjE7WUkgU1lMTEFCTEUgR0dVT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyMjI7WUkgU1lMTEFCTEUgR0dPVDtMbzswO0w7Ozs7O047Ozs7OworQTIyMztZSSBTWUxMQUJMRSBHR09YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjI0O1lJIFNZTExBQkxFIEdHTztMbzswO0w7Ozs7O047Ozs7OworQTIyNTtZSSBTWUxMQUJMRSBHR09QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjI2O1lJIFNZTExBQkxFIEdHRVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyMjc7WUkgU1lMTEFCTEUgR0dFWDtMbzswO0w7Ozs7O047Ozs7OworQTIyODtZSSBTWUxMQUJMRSBHR0U7TG87MDtMOzs7OztOOzs7OzsKK0EyMjk7WUkgU1lMTEFCTEUgR0dFUDtMbzswO0w7Ozs7O047Ozs7OworQTIyQTtZSSBTWUxMQUJMRSBHR1VUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjJCO1lJIFNZTExBQkxFIEdHVVg7TG87MDtMOzs7OztOOzs7OzsKK0EyMkM7WUkgU1lMTEFCTEUgR0dVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjJEO1lJIFNZTExBQkxFIEdHVVA7TG87MDtMOzs7OztOOzs7OzsKK0EyMkU7WUkgU1lMTEFCTEUgR0dVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EyMkY7WUkgU1lMTEFCTEUgR0dVUjtMbzswO0w7Ozs7O047Ozs7OworQTIzMDtZSSBTWUxMQUJMRSBNR0lFWDtMbzswO0w7Ozs7O047Ozs7OworQTIzMTtZSSBTWUxMQUJMRSBNR0lFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjMyO1lJIFNZTExBQkxFIE1HQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyMzM7WUkgU1lMTEFCTEUgTUdBWDtMbzswO0w7Ozs7O047Ozs7OworQTIzNDtZSSBTWUxMQUJMRSBNR0E7TG87MDtMOzs7OztOOzs7OzsKK0EyMzU7WUkgU1lMTEFCTEUgTUdBUDtMbzswO0w7Ozs7O047Ozs7OworQTIzNjtZSSBTWUxMQUJMRSBNR1VPWDtMbzswO0w7Ozs7O047Ozs7OworQTIzNztZSSBTWUxMQUJMRSBNR1VPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjM4O1lJIFNZTExBQkxFIE1HVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjM5O1lJIFNZTExBQkxFIE1HT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EyM0E7WUkgU1lMTEFCTEUgTUdPWDtMbzswO0w7Ozs7O047Ozs7OworQTIzQjtZSSBTWUxMQUJMRSBNR087TG87MDtMOzs7OztOOzs7OzsKK0EyM0M7WUkgU1lMTEFCTEUgTUdPUDtMbzswO0w7Ozs7O047Ozs7OworQTIzRDtZSSBTWUxMQUJMRSBNR0VYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjNFO1lJIFNZTExBQkxFIE1HRTtMbzswO0w7Ozs7O047Ozs7OworQTIzRjtZSSBTWUxMQUJMRSBNR0VQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjQwO1lJIFNZTExBQkxFIE1HVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyNDE7WUkgU1lMTEFCTEUgTUdVWDtMbzswO0w7Ozs7O047Ozs7OworQTI0MjtZSSBTWUxMQUJMRSBNR1U7TG87MDtMOzs7OztOOzs7OzsKK0EyNDM7WUkgU1lMTEFCTEUgTUdVUDtMbzswO0w7Ozs7O047Ozs7OworQTI0NDtZSSBTWUxMQUJMRSBNR1VSWDtMbzswO0w7Ozs7O047Ozs7OworQTI0NTtZSSBTWUxMQUJMRSBNR1VSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjQ2O1lJIFNZTExBQkxFIEhYSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyNDc7WUkgU1lMTEFCTEUgSFhJWDtMbzswO0w7Ozs7O047Ozs7OworQTI0ODtZSSBTWUxMQUJMRSBIWEk7TG87MDtMOzs7OztOOzs7OzsKK0EyNDk7WUkgU1lMTEFCTEUgSFhJUDtMbzswO0w7Ozs7O047Ozs7OworQTI0QTtZSSBTWUxMQUJMRSBIWElFVDtMbzswO0w7Ozs7O047Ozs7OworQTI0QjtZSSBTWUxMQUJMRSBIWElFWDtMbzswO0w7Ozs7O047Ozs7OworQTI0QztZSSBTWUxMQUJMRSBIWElFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjREO1lJIFNZTExBQkxFIEhYSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjRFO1lJIFNZTExBQkxFIEhYQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyNEY7WUkgU1lMTEFCTEUgSFhBWDtMbzswO0w7Ozs7O047Ozs7OworQTI1MDtZSSBTWUxMQUJMRSBIWEE7TG87MDtMOzs7OztOOzs7OzsKK0EyNTE7WUkgU1lMTEFCTEUgSFhBUDtMbzswO0w7Ozs7O047Ozs7OworQTI1MjtZSSBTWUxMQUJMRSBIWFVPVDtMbzswO0w7Ozs7O047Ozs7OworQTI1MztZSSBTWUxMQUJMRSBIWFVPWDtMbzswO0w7Ozs7O047Ozs7OworQTI1NDtZSSBTWUxMQUJMRSBIWFVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjU1O1lJIFNZTExBQkxFIEhYVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjU2O1lJIFNZTExBQkxFIEhYT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EyNTc7WUkgU1lMTEFCTEUgSFhPWDtMbzswO0w7Ozs7O047Ozs7OworQTI1ODtZSSBTWUxMQUJMRSBIWE87TG87MDtMOzs7OztOOzs7OzsKK0EyNTk7WUkgU1lMTEFCTEUgSFhPUDtMbzswO0w7Ozs7O047Ozs7OworQTI1QTtZSSBTWUxMQUJMRSBIWEVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjVCO1lJIFNZTExBQkxFIEhYRTtMbzswO0w7Ozs7O047Ozs7OworQTI1QztZSSBTWUxMQUJMRSBIWEVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjVEO1lJIFNZTExBQkxFIE5HSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjVFO1lJIFNZTExBQkxFIE5HSUU7TG87MDtMOzs7OztOOzs7OzsKK0EyNUY7WUkgU1lMTEFCTEUgTkdJRVA7TG87MDtMOzs7OztOOzs7OzsKK0EyNjA7WUkgU1lMTEFCTEUgTkdBVDtMbzswO0w7Ozs7O047Ozs7OworQTI2MTtZSSBTWUxMQUJMRSBOR0FYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjYyO1lJIFNZTExBQkxFIE5HQTtMbzswO0w7Ozs7O047Ozs7OworQTI2MztZSSBTWUxMQUJMRSBOR0FQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjY0O1lJIFNZTExBQkxFIE5HVU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjY1O1lJIFNZTExBQkxFIE5HVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjY2O1lJIFNZTExBQkxFIE5HVU87TG87MDtMOzs7OztOOzs7OzsKK0EyNjc7WUkgU1lMTEFCTEUgTkdPVDtMbzswO0w7Ozs7O047Ozs7OworQTI2ODtZSSBTWUxMQUJMRSBOR09YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjY5O1lJIFNZTExBQkxFIE5HTztMbzswO0w7Ozs7O047Ozs7OworQTI2QTtZSSBTWUxMQUJMRSBOR09QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjZCO1lJIFNZTExBQkxFIE5HRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyNkM7WUkgU1lMTEFCTEUgTkdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjZEO1lJIFNZTExBQkxFIE5HRVA7TG87MDtMOzs7OztOOzs7OzsKK0EyNkU7WUkgU1lMTEFCTEUgSElUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjZGO1lJIFNZTExBQkxFIEhJRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyNzA7WUkgU1lMTEFCTEUgSElFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjcxO1lJIFNZTExBQkxFIEhBVDtMbzswO0w7Ozs7O047Ozs7OworQTI3MjtZSSBTWUxMQUJMRSBIQVg7TG87MDtMOzs7OztOOzs7OzsKK0EyNzM7WUkgU1lMTEFCTEUgSEE7TG87MDtMOzs7OztOOzs7OzsKK0EyNzQ7WUkgU1lMTEFCTEUgSEFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjc1O1lJIFNZTExBQkxFIEhVT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EyNzY7WUkgU1lMTEFCTEUgSFVPWDtMbzswO0w7Ozs7O047Ozs7OworQTI3NztZSSBTWUxMQUJMRSBIVU87TG87MDtMOzs7OztOOzs7OzsKK0EyNzg7WUkgU1lMTEFCTEUgSFVPUDtMbzswO0w7Ozs7O047Ozs7OworQTI3OTtZSSBTWUxMQUJMRSBIT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EyN0E7WUkgU1lMTEFCTEUgSE9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjdCO1lJIFNZTExBQkxFIEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjdDO1lJIFNZTExBQkxFIEhPUDtMbzswO0w7Ozs7O047Ozs7OworQTI3RDtZSSBTWUxMQUJMRSBIRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyN0U7WUkgU1lMTEFCTEUgSEU7TG87MDtMOzs7OztOOzs7OzsKK0EyN0Y7WUkgU1lMTEFCTEUgSEVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjgwO1lJIFNZTExBQkxFIFdBVDtMbzswO0w7Ozs7O047Ozs7OworQTI4MTtZSSBTWUxMQUJMRSBXQVg7TG87MDtMOzs7OztOOzs7OzsKK0EyODI7WUkgU1lMTEFCTEUgV0E7TG87MDtMOzs7OztOOzs7OzsKK0EyODM7WUkgU1lMTEFCTEUgV0FQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjg0O1lJIFNZTExBQkxFIFdVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyODU7WUkgU1lMTEFCTEUgV1VPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjg2O1lJIFNZTExBQkxFIFdVT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyODc7WUkgU1lMTEFCTEUgV09YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjg4O1lJIFNZTExBQkxFIFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjg5O1lJIFNZTExBQkxFIFdPUDtMbzswO0w7Ozs7O047Ozs7OworQTI4QTtZSSBTWUxMQUJMRSBXRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyOEI7WUkgU1lMTEFCTEUgV0U7TG87MDtMOzs7OztOOzs7OzsKK0EyOEM7WUkgU1lMTEFCTEUgV0VQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjhEO1lJIFNZTExBQkxFIFpJVDtMbzswO0w7Ozs7O047Ozs7OworQTI4RTtZSSBTWUxMQUJMRSBaSVg7TG87MDtMOzs7OztOOzs7OzsKK0EyOEY7WUkgU1lMTEFCTEUgWkk7TG87MDtMOzs7OztOOzs7OzsKK0EyOTA7WUkgU1lMTEFCTEUgWklQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjkxO1lJIFNZTExBQkxFIFpJRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyOTI7WUkgU1lMTEFCTEUgWklFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjkzO1lJIFNZTExBQkxFIFpJRVA7TG87MDtMOzs7OztOOzs7OzsKK0EyOTQ7WUkgU1lMTEFCTEUgWkFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjk1O1lJIFNZTExBQkxFIFpBWDtMbzswO0w7Ozs7O047Ozs7OworQTI5NjtZSSBTWUxMQUJMRSBaQTtMbzswO0w7Ozs7O047Ozs7OworQTI5NztZSSBTWUxMQUJMRSBaQVA7TG87MDtMOzs7OztOOzs7OzsKK0EyOTg7WUkgU1lMTEFCTEUgWlVPWDtMbzswO0w7Ozs7O047Ozs7OworQTI5OTtZSSBTWUxMQUJMRSBaVU87TG87MDtMOzs7OztOOzs7OzsKK0EyOUE7WUkgU1lMTEFCTEUgWlVPUDtMbzswO0w7Ozs7O047Ozs7OworQTI5QjtZSSBTWUxMQUJMRSBaT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EyOUM7WUkgU1lMTEFCTEUgWk9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjlEO1lJIFNZTExBQkxFIFpPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjlFO1lJIFNZTExBQkxFIFpPUDtMbzswO0w7Ozs7O047Ozs7OworQTI5RjtZSSBTWUxMQUJMRSBaRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyQTA7WUkgU1lMTEFCTEUgWkU7TG87MDtMOzs7OztOOzs7OzsKK0EyQTE7WUkgU1lMTEFCTEUgWkVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkEyO1lJIFNZTExBQkxFIFpVVDtMbzswO0w7Ozs7O047Ozs7OworQTJBMztZSSBTWUxMQUJMRSBaVVg7TG87MDtMOzs7OztOOzs7OzsKK0EyQTQ7WUkgU1lMTEFCTEUgWlU7TG87MDtMOzs7OztOOzs7OzsKK0EyQTU7WUkgU1lMTEFCTEUgWlVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkE2O1lJIFNZTExBQkxFIFpVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EyQTc7WUkgU1lMTEFCTEUgWlVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkE4O1lJIFNZTExBQkxFIFpZVDtMbzswO0w7Ozs7O047Ozs7OworQTJBOTtZSSBTWUxMQUJMRSBaWVg7TG87MDtMOzs7OztOOzs7OzsKK0EyQUE7WUkgU1lMTEFCTEUgWlk7TG87MDtMOzs7OztOOzs7OzsKK0EyQUI7WUkgU1lMTEFCTEUgWllQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkFDO1lJIFNZTExBQkxFIFpZUlg7TG87MDtMOzs7OztOOzs7OzsKK0EyQUQ7WUkgU1lMTEFCTEUgWllSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkFFO1lJIFNZTExBQkxFIENJVDtMbzswO0w7Ozs7O047Ozs7OworQTJBRjtZSSBTWUxMQUJMRSBDSVg7TG87MDtMOzs7OztOOzs7OzsKK0EyQjA7WUkgU1lMTEFCTEUgQ0k7TG87MDtMOzs7OztOOzs7OzsKK0EyQjE7WUkgU1lMTEFCTEUgQ0lQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkIyO1lJIFNZTExBQkxFIENJRVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyQjM7WUkgU1lMTEFCTEUgQ0lFWDtMbzswO0w7Ozs7O047Ozs7OworQTJCNDtZSSBTWUxMQUJMRSBDSUU7TG87MDtMOzs7OztOOzs7OzsKK0EyQjU7WUkgU1lMTEFCTEUgQ0lFUDtMbzswO0w7Ozs7O047Ozs7OworQTJCNjtZSSBTWUxMQUJMRSBDQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyQjc7WUkgU1lMTEFCTEUgQ0FYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkI4O1lJIFNZTExBQkxFIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkI5O1lJIFNZTExBQkxFIENBUDtMbzswO0w7Ozs7O047Ozs7OworQTJCQTtZSSBTWUxMQUJMRSBDVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkJCO1lJIFNZTExBQkxFIENVTztMbzswO0w7Ozs7O047Ozs7OworQTJCQztZSSBTWUxMQUJMRSBDVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkJEO1lJIFNZTExBQkxFIENPVDtMbzswO0w7Ozs7O047Ozs7OworQTJCRTtZSSBTWUxMQUJMRSBDT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyQkY7WUkgU1lMTEFCTEUgQ087TG87MDtMOzs7OztOOzs7OzsKK0EyQzA7WUkgU1lMTEFCTEUgQ09QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkMxO1lJIFNZTExBQkxFIENFWDtMbzswO0w7Ozs7O047Ozs7OworQTJDMjtZSSBTWUxMQUJMRSBDRTtMbzswO0w7Ozs7O047Ozs7OworQTJDMztZSSBTWUxMQUJMRSBDRVA7TG87MDtMOzs7OztOOzs7OzsKK0EyQzQ7WUkgU1lMTEFCTEUgQ1VUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkM1O1lJIFNZTExBQkxFIENVWDtMbzswO0w7Ozs7O047Ozs7OworQTJDNjtZSSBTWUxMQUJMRSBDVTtMbzswO0w7Ozs7O047Ozs7OworQTJDNztZSSBTWUxMQUJMRSBDVVA7TG87MDtMOzs7OztOOzs7OzsKK0EyQzg7WUkgU1lMTEFCTEUgQ1VSWDtMbzswO0w7Ozs7O047Ozs7OworQTJDOTtZSSBTWUxMQUJMRSBDVVI7TG87MDtMOzs7OztOOzs7OzsKK0EyQ0E7WUkgU1lMTEFCTEUgQ1lUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkNCO1lJIFNZTExBQkxFIENZWDtMbzswO0w7Ozs7O047Ozs7OworQTJDQztZSSBTWUxMQUJMRSBDWTtMbzswO0w7Ozs7O047Ozs7OworQTJDRDtZSSBTWUxMQUJMRSBDWVA7TG87MDtMOzs7OztOOzs7OzsKK0EyQ0U7WUkgU1lMTEFCTEUgQ1lSWDtMbzswO0w7Ozs7O047Ozs7OworQTJDRjtZSSBTWUxMQUJMRSBDWVI7TG87MDtMOzs7OztOOzs7OzsKK0EyRDA7WUkgU1lMTEFCTEUgWlpJVDtMbzswO0w7Ozs7O047Ozs7OworQTJEMTtZSSBTWUxMQUJMRSBaWklYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkQyO1lJIFNZTExBQkxFIFpaSTtMbzswO0w7Ozs7O047Ozs7OworQTJEMztZSSBTWUxMQUJMRSBaWklQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkQ0O1lJIFNZTExBQkxFIFpaSUVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkQ1O1lJIFNZTExBQkxFIFpaSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkQ2O1lJIFNZTExBQkxFIFpaSUU7TG87MDtMOzs7OztOOzs7OzsKK0EyRDc7WUkgU1lMTEFCTEUgWlpJRVA7TG87MDtMOzs7OztOOzs7OzsKK0EyRDg7WUkgU1lMTEFCTEUgWlpBVDtMbzswO0w7Ozs7O047Ozs7OworQTJEOTtZSSBTWUxMQUJMRSBaWkFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkRBO1lJIFNZTExBQkxFIFpaQTtMbzswO0w7Ozs7O047Ozs7OworQTJEQjtZSSBTWUxMQUJMRSBaWkFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkRDO1lJIFNZTExBQkxFIFpaT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyREQ7WUkgU1lMTEFCTEUgWlpPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkRFO1lJIFNZTExBQkxFIFpaT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyREY7WUkgU1lMTEFCTEUgWlpFWDtMbzswO0w7Ozs7O047Ozs7OworQTJFMDtZSSBTWUxMQUJMRSBaWkU7TG87MDtMOzs7OztOOzs7OzsKK0EyRTE7WUkgU1lMTEFCTEUgWlpFUDtMbzswO0w7Ozs7O047Ozs7OworQTJFMjtZSSBTWUxMQUJMRSBaWlVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkUzO1lJIFNZTExBQkxFIFpaVTtMbzswO0w7Ozs7O047Ozs7OworQTJFNDtZSSBTWUxMQUJMRSBaWlVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkU1O1lJIFNZTExBQkxFIFpaVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkU2O1lJIFNZTExBQkxFIFpaVVI7TG87MDtMOzs7OztOOzs7OzsKK0EyRTc7WUkgU1lMTEFCTEUgWlpZVDtMbzswO0w7Ozs7O047Ozs7OworQTJFODtZSSBTWUxMQUJMRSBaWllYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkU5O1lJIFNZTExBQkxFIFpaWTtMbzswO0w7Ozs7O047Ozs7OworQTJFQTtZSSBTWUxMQUJMRSBaWllQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkVCO1lJIFNZTExBQkxFIFpaWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkVDO1lJIFNZTExBQkxFIFpaWVI7TG87MDtMOzs7OztOOzs7OzsKK0EyRUQ7WUkgU1lMTEFCTEUgTlpJVDtMbzswO0w7Ozs7O047Ozs7OworQTJFRTtZSSBTWUxMQUJMRSBOWklYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkVGO1lJIFNZTExBQkxFIE5aSTtMbzswO0w7Ozs7O047Ozs7OworQTJGMDtZSSBTWUxMQUJMRSBOWklQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkYxO1lJIFNZTExBQkxFIE5aSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkYyO1lJIFNZTExBQkxFIE5aSUU7TG87MDtMOzs7OztOOzs7OzsKK0EyRjM7WUkgU1lMTEFCTEUgTlpJRVA7TG87MDtMOzs7OztOOzs7OzsKK0EyRjQ7WUkgU1lMTEFCTEUgTlpBVDtMbzswO0w7Ozs7O047Ozs7OworQTJGNTtZSSBTWUxMQUJMRSBOWkFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkY2O1lJIFNZTExBQkxFIE5aQTtMbzswO0w7Ozs7O047Ozs7OworQTJGNztZSSBTWUxMQUJMRSBOWkFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkY4O1lJIFNZTExBQkxFIE5aVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkY5O1lJIFNZTExBQkxFIE5aVU87TG87MDtMOzs7OztOOzs7OzsKK0EyRkE7WUkgU1lMTEFCTEUgTlpPWDtMbzswO0w7Ozs7O047Ozs7OworQTJGQjtZSSBTWUxMQUJMRSBOWk9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkZDO1lJIFNZTExBQkxFIE5aRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyRkQ7WUkgU1lMTEFCTEUgTlpFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkZFO1lJIFNZTExBQkxFIE5aVVg7TG87MDtMOzs7OztOOzs7OzsKK0EyRkY7WUkgU1lMTEFCTEUgTlpVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzAwO1lJIFNZTExBQkxFIE5aVVA7TG87MDtMOzs7OztOOzs7OzsKK0EzMDE7WUkgU1lMTEFCTEUgTlpVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzMDI7WUkgU1lMTEFCTEUgTlpVUjtMbzswO0w7Ozs7O047Ozs7OworQTMwMztZSSBTWUxMQUJMRSBOWllUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzA0O1lJIFNZTExBQkxFIE5aWVg7TG87MDtMOzs7OztOOzs7OzsKK0EzMDU7WUkgU1lMTEFCTEUgTlpZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzA2O1lJIFNZTExBQkxFIE5aWVA7TG87MDtMOzs7OztOOzs7OzsKK0EzMDc7WUkgU1lMTEFCTEUgTlpZUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzMDg7WUkgU1lMTEFCTEUgTlpZUjtMbzswO0w7Ozs7O047Ozs7OworQTMwOTtZSSBTWUxMQUJMRSBTSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzMEE7WUkgU1lMTEFCTEUgU0lYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzBCO1lJIFNZTExBQkxFIFNJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzBDO1lJIFNZTExBQkxFIFNJUDtMbzswO0w7Ozs7O047Ozs7OworQTMwRDtZSSBTWUxMQUJMRSBTSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzBFO1lJIFNZTExBQkxFIFNJRTtMbzswO0w7Ozs7O047Ozs7OworQTMwRjtZSSBTWUxMQUJMRSBTSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzEwO1lJIFNZTExBQkxFIFNBVDtMbzswO0w7Ozs7O047Ozs7OworQTMxMTtZSSBTWUxMQUJMRSBTQVg7TG87MDtMOzs7OztOOzs7OzsKK0EzMTI7WUkgU1lMTEFCTEUgU0E7TG87MDtMOzs7OztOOzs7OzsKK0EzMTM7WUkgU1lMTEFCTEUgU0FQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzE0O1lJIFNZTExBQkxFIFNVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EzMTU7WUkgU1lMTEFCTEUgU1VPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzE2O1lJIFNZTExBQkxFIFNVT1A7TG87MDtMOzs7OztOOzs7OzsKK0EzMTc7WUkgU1lMTEFCTEUgU09UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzE4O1lJIFNZTExBQkxFIFNPWDtMbzswO0w7Ozs7O047Ozs7OworQTMxOTtZSSBTWUxMQUJMRSBTTztMbzswO0w7Ozs7O047Ozs7OworQTMxQTtZSSBTWUxMQUJMRSBTT1A7TG87MDtMOzs7OztOOzs7OzsKK0EzMUI7WUkgU1lMTEFCTEUgU0VYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzFDO1lJIFNZTExBQkxFIFNFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzFEO1lJIFNZTExBQkxFIFNFUDtMbzswO0w7Ozs7O047Ozs7OworQTMxRTtZSSBTWUxMQUJMRSBTVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzMUY7WUkgU1lMTEFCTEUgU1VYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzIwO1lJIFNZTExBQkxFIFNVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzIxO1lJIFNZTExBQkxFIFNVUDtMbzswO0w7Ozs7O047Ozs7OworQTMyMjtZSSBTWUxMQUJMRSBTVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzIzO1lJIFNZTExBQkxFIFNVUjtMbzswO0w7Ozs7O047Ozs7OworQTMyNDtZSSBTWUxMQUJMRSBTWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzMjU7WUkgU1lMTEFCTEUgU1lYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzI2O1lJIFNZTExBQkxFIFNZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzI3O1lJIFNZTExBQkxFIFNZUDtMbzswO0w7Ozs7O047Ozs7OworQTMyODtZSSBTWUxMQUJMRSBTWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzI5O1lJIFNZTExBQkxFIFNZUjtMbzswO0w7Ozs7O047Ozs7OworQTMyQTtZSSBTWUxMQUJMRSBTU0lUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzJCO1lJIFNZTExBQkxFIFNTSVg7TG87MDtMOzs7OztOOzs7OzsKK0EzMkM7WUkgU1lMTEFCTEUgU1NJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzJEO1lJIFNZTExBQkxFIFNTSVA7TG87MDtMOzs7OztOOzs7OzsKK0EzMkU7WUkgU1lMTEFCTEUgU1NJRVg7TG87MDtMOzs7OztOOzs7OzsKK0EzMkY7WUkgU1lMTEFCTEUgU1NJRTtMbzswO0w7Ozs7O047Ozs7OworQTMzMDtZSSBTWUxMQUJMRSBTU0lFUDtMbzswO0w7Ozs7O047Ozs7OworQTMzMTtZSSBTWUxMQUJMRSBTU0FUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzMyO1lJIFNZTExBQkxFIFNTQVg7TG87MDtMOzs7OztOOzs7OzsKK0EzMzM7WUkgU1lMTEFCTEUgU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzM0O1lJIFNZTExBQkxFIFNTQVA7TG87MDtMOzs7OztOOzs7OzsKK0EzMzU7WUkgU1lMTEFCTEUgU1NPVDtMbzswO0w7Ozs7O047Ozs7OworQTMzNjtZSSBTWUxMQUJMRSBTU09YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzM3O1lJIFNZTExBQkxFIFNTTztMbzswO0w7Ozs7O047Ozs7OworQTMzODtZSSBTWUxMQUJMRSBTU09QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzM5O1lJIFNZTExBQkxFIFNTRVg7TG87MDtMOzs7OztOOzs7OzsKK0EzM0E7WUkgU1lMTEFCTEUgU1NFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzNCO1lJIFNZTExBQkxFIFNTRVA7TG87MDtMOzs7OztOOzs7OzsKK0EzM0M7WUkgU1lMTEFCTEUgU1NVVDtMbzswO0w7Ozs7O047Ozs7OworQTMzRDtZSSBTWUxMQUJMRSBTU1VYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzNFO1lJIFNZTExBQkxFIFNTVTtMbzswO0w7Ozs7O047Ozs7OworQTMzRjtZSSBTWUxMQUJMRSBTU1VQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzQwO1lJIFNZTExBQkxFIFNTWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzNDE7WUkgU1lMTEFCTEUgU1NZWDtMbzswO0w7Ozs7O047Ozs7OworQTM0MjtZSSBTWUxMQUJMRSBTU1k7TG87MDtMOzs7OztOOzs7OzsKK0EzNDM7WUkgU1lMTEFCTEUgU1NZUDtMbzswO0w7Ozs7O047Ozs7OworQTM0NDtZSSBTWUxMQUJMRSBTU1lSWDtMbzswO0w7Ozs7O047Ozs7OworQTM0NTtZSSBTWUxMQUJMRSBTU1lSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzQ2O1lJIFNZTExBQkxFIFpIQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzNDc7WUkgU1lMTEFCTEUgWkhBWDtMbzswO0w7Ozs7O047Ozs7OworQTM0ODtZSSBTWUxMQUJMRSBaSEE7TG87MDtMOzs7OztOOzs7OzsKK0EzNDk7WUkgU1lMTEFCTEUgWkhBUDtMbzswO0w7Ozs7O047Ozs7OworQTM0QTtZSSBTWUxMQUJMRSBaSFVPWDtMbzswO0w7Ozs7O047Ozs7OworQTM0QjtZSSBTWUxMQUJMRSBaSFVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzRDO1lJIFNZTExBQkxFIFpIVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzREO1lJIFNZTExBQkxFIFpIT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EzNEU7WUkgU1lMTEFCTEUgWkhPWDtMbzswO0w7Ozs7O047Ozs7OworQTM0RjtZSSBTWUxMQUJMRSBaSE87TG87MDtMOzs7OztOOzs7OzsKK0EzNTA7WUkgU1lMTEFCTEUgWkhPUDtMbzswO0w7Ozs7O047Ozs7OworQTM1MTtZSSBTWUxMQUJMRSBaSEVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzUyO1lJIFNZTExBQkxFIFpIRVg7TG87MDtMOzs7OztOOzs7OzsKK0EzNTM7WUkgU1lMTEFCTEUgWkhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzU0O1lJIFNZTExBQkxFIFpIRVA7TG87MDtMOzs7OztOOzs7OzsKK0EzNTU7WUkgU1lMTEFCTEUgWkhVVDtMbzswO0w7Ozs7O047Ozs7OworQTM1NjtZSSBTWUxMQUJMRSBaSFVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzU3O1lJIFNZTExBQkxFIFpIVTtMbzswO0w7Ozs7O047Ozs7OworQTM1ODtZSSBTWUxMQUJMRSBaSFVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzU5O1lJIFNZTExBQkxFIFpIVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzVBO1lJIFNZTExBQkxFIFpIVVI7TG87MDtMOzs7OztOOzs7OzsKK0EzNUI7WUkgU1lMTEFCTEUgWkhZVDtMbzswO0w7Ozs7O047Ozs7OworQTM1QztZSSBTWUxMQUJMRSBaSFlYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzVEO1lJIFNZTExBQkxFIFpIWTtMbzswO0w7Ozs7O047Ozs7OworQTM1RTtZSSBTWUxMQUJMRSBaSFlQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzVGO1lJIFNZTExBQkxFIFpIWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzYwO1lJIFNZTExBQkxFIFpIWVI7TG87MDtMOzs7OztOOzs7OzsKK0EzNjE7WUkgU1lMTEFCTEUgQ0hBVDtMbzswO0w7Ozs7O047Ozs7OworQTM2MjtZSSBTWUxMQUJMRSBDSEFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzYzO1lJIFNZTExBQkxFIENIQTtMbzswO0w7Ozs7O047Ozs7OworQTM2NDtZSSBTWUxMQUJMRSBDSEFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzY1O1lJIFNZTExBQkxFIENIVU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzY2O1lJIFNZTExBQkxFIENIVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzY3O1lJIFNZTExBQkxFIENIVU87TG87MDtMOzs7OztOOzs7OzsKK0EzNjg7WUkgU1lMTEFCTEUgQ0hVT1A7TG87MDtMOzs7OztOOzs7OzsKK0EzNjk7WUkgU1lMTEFCTEUgQ0hPVDtMbzswO0w7Ozs7O047Ozs7OworQTM2QTtZSSBTWUxMQUJMRSBDSE9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzZCO1lJIFNZTExBQkxFIENITztMbzswO0w7Ozs7O047Ozs7OworQTM2QztZSSBTWUxMQUJMRSBDSE9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzZEO1lJIFNZTExBQkxFIENIRVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzNkU7WUkgU1lMTEFCTEUgQ0hFWDtMbzswO0w7Ozs7O047Ozs7OworQTM2RjtZSSBTWUxMQUJMRSBDSEU7TG87MDtMOzs7OztOOzs7OzsKK0EzNzA7WUkgU1lMTEFCTEUgQ0hFUDtMbzswO0w7Ozs7O047Ozs7OworQTM3MTtZSSBTWUxMQUJMRSBDSFVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzcyO1lJIFNZTExBQkxFIENIVTtMbzswO0w7Ozs7O047Ozs7OworQTM3MztZSSBTWUxMQUJMRSBDSFVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzc0O1lJIFNZTExBQkxFIENIVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzc1O1lJIFNZTExBQkxFIENIVVI7TG87MDtMOzs7OztOOzs7OzsKK0EzNzY7WUkgU1lMTEFCTEUgQ0hZVDtMbzswO0w7Ozs7O047Ozs7OworQTM3NztZSSBTWUxMQUJMRSBDSFlYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzc4O1lJIFNZTExBQkxFIENIWTtMbzswO0w7Ozs7O047Ozs7OworQTM3OTtZSSBTWUxMQUJMRSBDSFlQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzdBO1lJIFNZTExBQkxFIENIWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzdCO1lJIFNZTExBQkxFIENIWVI7TG87MDtMOzs7OztOOzs7OzsKK0EzN0M7WUkgU1lMTEFCTEUgUlJBWDtMbzswO0w7Ozs7O047Ozs7OworQTM3RDtZSSBTWUxMQUJMRSBSUkE7TG87MDtMOzs7OztOOzs7OzsKK0EzN0U7WUkgU1lMTEFCTEUgUlJVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EzN0Y7WUkgU1lMTEFCTEUgUlJVTztMbzswO0w7Ozs7O047Ozs7OworQTM4MDtZSSBTWUxMQUJMRSBSUk9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzgxO1lJIFNZTExBQkxFIFJST1g7TG87MDtMOzs7OztOOzs7OzsKK0EzODI7WUkgU1lMTEFCTEUgUlJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzgzO1lJIFNZTExBQkxFIFJST1A7TG87MDtMOzs7OztOOzs7OzsKK0EzODQ7WUkgU1lMTEFCTEUgUlJFVDtMbzswO0w7Ozs7O047Ozs7OworQTM4NTtZSSBTWUxMQUJMRSBSUkVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzg2O1lJIFNZTExBQkxFIFJSRTtMbzswO0w7Ozs7O047Ozs7OworQTM4NztZSSBTWUxMQUJMRSBSUkVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzg4O1lJIFNZTExBQkxFIFJSVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzODk7WUkgU1lMTEFCTEUgUlJVWDtMbzswO0w7Ozs7O047Ozs7OworQTM4QTtZSSBTWUxMQUJMRSBSUlU7TG87MDtMOzs7OztOOzs7OzsKK0EzOEI7WUkgU1lMTEFCTEUgUlJVUDtMbzswO0w7Ozs7O047Ozs7OworQTM4QztZSSBTWUxMQUJMRSBSUlVSWDtMbzswO0w7Ozs7O047Ozs7OworQTM4RDtZSSBTWUxMQUJMRSBSUlVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzhFO1lJIFNZTExBQkxFIFJSWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzOEY7WUkgU1lMTEFCTEUgUlJZWDtMbzswO0w7Ozs7O047Ozs7OworQTM5MDtZSSBTWUxMQUJMRSBSUlk7TG87MDtMOzs7OztOOzs7OzsKK0EzOTE7WUkgU1lMTEFCTEUgUlJZUDtMbzswO0w7Ozs7O047Ozs7OworQTM5MjtZSSBTWUxMQUJMRSBSUllSWDtMbzswO0w7Ozs7O047Ozs7OworQTM5MztZSSBTWUxMQUJMRSBSUllSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzk0O1lJIFNZTExBQkxFIE5SQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzOTU7WUkgU1lMTEFCTEUgTlJBWDtMbzswO0w7Ozs7O047Ozs7OworQTM5NjtZSSBTWUxMQUJMRSBOUkE7TG87MDtMOzs7OztOOzs7OzsKK0EzOTc7WUkgU1lMTEFCTEUgTlJBUDtMbzswO0w7Ozs7O047Ozs7OworQTM5ODtZSSBTWUxMQUJMRSBOUk9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzk5O1lJIFNZTExBQkxFIE5STztMbzswO0w7Ozs7O047Ozs7OworQTM5QTtZSSBTWUxMQUJMRSBOUk9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzlCO1lJIFNZTExBQkxFIE5SRVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzOUM7WUkgU1lMTEFCTEUgTlJFWDtMbzswO0w7Ozs7O047Ozs7OworQTM5RDtZSSBTWUxMQUJMRSBOUkU7TG87MDtMOzs7OztOOzs7OzsKK0EzOUU7WUkgU1lMTEFCTEUgTlJFUDtMbzswO0w7Ozs7O047Ozs7OworQTM5RjtZSSBTWUxMQUJMRSBOUlVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0EwO1lJIFNZTExBQkxFIE5SVVg7TG87MDtMOzs7OztOOzs7OzsKK0EzQTE7WUkgU1lMTEFCTEUgTlJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0EyO1lJIFNZTExBQkxFIE5SVVA7TG87MDtMOzs7OztOOzs7OzsKK0EzQTM7WUkgU1lMTEFCTEUgTlJVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzQTQ7WUkgU1lMTEFCTEUgTlJVUjtMbzswO0w7Ozs7O047Ozs7OworQTNBNTtZSSBTWUxMQUJMRSBOUllUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0E2O1lJIFNZTExBQkxFIE5SWVg7TG87MDtMOzs7OztOOzs7OzsKK0EzQTc7WUkgU1lMTEFCTEUgTlJZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0E4O1lJIFNZTExBQkxFIE5SWVA7TG87MDtMOzs7OztOOzs7OzsKK0EzQTk7WUkgU1lMTEFCTEUgTlJZUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzQUE7WUkgU1lMTEFCTEUgTlJZUjtMbzswO0w7Ozs7O047Ozs7OworQTNBQjtZSSBTWUxMQUJMRSBTSEFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0FDO1lJIFNZTExBQkxFIFNIQVg7TG87MDtMOzs7OztOOzs7OzsKK0EzQUQ7WUkgU1lMTEFCTEUgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0FFO1lJIFNZTExBQkxFIFNIQVA7TG87MDtMOzs7OztOOzs7OzsKK0EzQUY7WUkgU1lMTEFCTEUgU0hVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EzQjA7WUkgU1lMTEFCTEUgU0hVTztMbzswO0w7Ozs7O047Ozs7OworQTNCMTtZSSBTWUxMQUJMRSBTSFVPUDtMbzswO0w7Ozs7O047Ozs7OworQTNCMjtZSSBTWUxMQUJMRSBTSE9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0IzO1lJIFNZTExBQkxFIFNIT1g7TG87MDtMOzs7OztOOzs7OzsKK0EzQjQ7WUkgU1lMTEFCTEUgU0hPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0I1O1lJIFNZTExBQkxFIFNIT1A7TG87MDtMOzs7OztOOzs7OzsKK0EzQjY7WUkgU1lMTEFCTEUgU0hFVDtMbzswO0w7Ozs7O047Ozs7OworQTNCNztZSSBTWUxMQUJMRSBTSEVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0I4O1lJIFNZTExBQkxFIFNIRTtMbzswO0w7Ozs7O047Ozs7OworQTNCOTtZSSBTWUxMQUJMRSBTSEVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0JBO1lJIFNZTExBQkxFIFNIVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzQkI7WUkgU1lMTEFCTEUgU0hVWDtMbzswO0w7Ozs7O047Ozs7OworQTNCQztZSSBTWUxMQUJMRSBTSFU7TG87MDtMOzs7OztOOzs7OzsKK0EzQkQ7WUkgU1lMTEFCTEUgU0hVUDtMbzswO0w7Ozs7O047Ozs7OworQTNCRTtZSSBTWUxMQUJMRSBTSFVSWDtMbzswO0w7Ozs7O047Ozs7OworQTNCRjtZSSBTWUxMQUJMRSBTSFVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0MwO1lJIFNZTExBQkxFIFNIWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzQzE7WUkgU1lMTEFCTEUgU0hZWDtMbzswO0w7Ozs7O047Ozs7OworQTNDMjtZSSBTWUxMQUJMRSBTSFk7TG87MDtMOzs7OztOOzs7OzsKK0EzQzM7WUkgU1lMTEFCTEUgU0hZUDtMbzswO0w7Ozs7O047Ozs7OworQTNDNDtZSSBTWUxMQUJMRSBTSFlSWDtMbzswO0w7Ozs7O047Ozs7OworQTNDNTtZSSBTWUxMQUJMRSBTSFlSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0M2O1lJIFNZTExBQkxFIFJBVDtMbzswO0w7Ozs7O047Ozs7OworQTNDNztZSSBTWUxMQUJMRSBSQVg7TG87MDtMOzs7OztOOzs7OzsKK0EzQzg7WUkgU1lMTEFCTEUgUkE7TG87MDtMOzs7OztOOzs7OzsKK0EzQzk7WUkgU1lMTEFCTEUgUkFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0NBO1lJIFNZTExBQkxFIFJVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EzQ0I7WUkgU1lMTEFCTEUgUlVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0NDO1lJIFNZTExBQkxFIFJVT1A7TG87MDtMOzs7OztOOzs7OzsKK0EzQ0Q7WUkgU1lMTEFCTEUgUk9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0NFO1lJIFNZTExBQkxFIFJPWDtMbzswO0w7Ozs7O047Ozs7OworQTNDRjtZSSBTWUxMQUJMRSBSTztMbzswO0w7Ozs7O047Ozs7OworQTNEMDtZSSBTWUxMQUJMRSBST1A7TG87MDtMOzs7OztOOzs7OzsKK0EzRDE7WUkgU1lMTEFCTEUgUkVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0QyO1lJIFNZTExBQkxFIFJFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0QzO1lJIFNZTExBQkxFIFJFUDtMbzswO0w7Ozs7O047Ozs7OworQTNENDtZSSBTWUxMQUJMRSBSVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzRDU7WUkgU1lMTEFCTEUgUlVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0Q2O1lJIFNZTExBQkxFIFJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0Q3O1lJIFNZTExBQkxFIFJVUDtMbzswO0w7Ozs7O047Ozs7OworQTNEODtZSSBTWUxMQUJMRSBSVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0Q5O1lJIFNZTExBQkxFIFJVUjtMbzswO0w7Ozs7O047Ozs7OworQTNEQTtZSSBTWUxMQUJMRSBSWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzREI7WUkgU1lMTEFCTEUgUllYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0RDO1lJIFNZTExBQkxFIFJZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0REO1lJIFNZTExBQkxFIFJZUDtMbzswO0w7Ozs7O047Ozs7OworQTNERTtZSSBTWUxMQUJMRSBSWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0RGO1lJIFNZTExBQkxFIFJZUjtMbzswO0w7Ozs7O047Ozs7OworQTNFMDtZSSBTWUxMQUJMRSBKSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzRTE7WUkgU1lMTEFCTEUgSklYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0UyO1lJIFNZTExBQkxFIEpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0UzO1lJIFNZTExBQkxFIEpJUDtMbzswO0w7Ozs7O047Ozs7OworQTNFNDtZSSBTWUxMQUJMRSBKSUVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0U1O1lJIFNZTExBQkxFIEpJRVg7TG87MDtMOzs7OztOOzs7OzsKK0EzRTY7WUkgU1lMTEFCTEUgSklFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0U3O1lJIFNZTExBQkxFIEpJRVA7TG87MDtMOzs7OztOOzs7OzsKK0EzRTg7WUkgU1lMTEFCTEUgSlVPVDtMbzswO0w7Ozs7O047Ozs7OworQTNFOTtZSSBTWUxMQUJMRSBKVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0VBO1lJIFNZTExBQkxFIEpVTztMbzswO0w7Ozs7O047Ozs7OworQTNFQjtZSSBTWUxMQUJMRSBKVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0VDO1lJIFNZTExBQkxFIEpPVDtMbzswO0w7Ozs7O047Ozs7OworQTNFRDtZSSBTWUxMQUJMRSBKT1g7TG87MDtMOzs7OztOOzs7OzsKK0EzRUU7WUkgU1lMTEFCTEUgSk87TG87MDtMOzs7OztOOzs7OzsKK0EzRUY7WUkgU1lMTEFCTEUgSk9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0YwO1lJIFNZTExBQkxFIEpVVDtMbzswO0w7Ozs7O047Ozs7OworQTNGMTtZSSBTWUxMQUJMRSBKVVg7TG87MDtMOzs7OztOOzs7OzsKK0EzRjI7WUkgU1lMTEFCTEUgSlU7TG87MDtMOzs7OztOOzs7OzsKK0EzRjM7WUkgU1lMTEFCTEUgSlVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0Y0O1lJIFNZTExBQkxFIEpVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzRjU7WUkgU1lMTEFCTEUgSlVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0Y2O1lJIFNZTExBQkxFIEpZVDtMbzswO0w7Ozs7O047Ozs7OworQTNGNztZSSBTWUxMQUJMRSBKWVg7TG87MDtMOzs7OztOOzs7OzsKK0EzRjg7WUkgU1lMTEFCTEUgSlk7TG87MDtMOzs7OztOOzs7OzsKK0EzRjk7WUkgU1lMTEFCTEUgSllQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0ZBO1lJIFNZTExBQkxFIEpZUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzRkI7WUkgU1lMTEFCTEUgSllSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0ZDO1lJIFNZTExBQkxFIFFJVDtMbzswO0w7Ozs7O047Ozs7OworQTNGRDtZSSBTWUxMQUJMRSBRSVg7TG87MDtMOzs7OztOOzs7OzsKK0EzRkU7WUkgU1lMTEFCTEUgUUk7TG87MDtMOzs7OztOOzs7OzsKK0EzRkY7WUkgU1lMTEFCTEUgUUlQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDAwO1lJIFNZTExBQkxFIFFJRVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0MDE7WUkgU1lMTEFCTEUgUUlFWDtMbzswO0w7Ozs7O047Ozs7OworQTQwMjtZSSBTWUxMQUJMRSBRSUU7TG87MDtMOzs7OztOOzs7OzsKK0E0MDM7WUkgU1lMTEFCTEUgUUlFUDtMbzswO0w7Ozs7O047Ozs7OworQTQwNDtZSSBTWUxMQUJMRSBRVU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDA1O1lJIFNZTExBQkxFIFFVT1g7TG87MDtMOzs7OztOOzs7OzsKK0E0MDY7WUkgU1lMTEFCTEUgUVVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDA3O1lJIFNZTExBQkxFIFFVT1A7TG87MDtMOzs7OztOOzs7OzsKK0E0MDg7WUkgU1lMTEFCTEUgUU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDA5O1lJIFNZTExBQkxFIFFPWDtMbzswO0w7Ozs7O047Ozs7OworQTQwQTtZSSBTWUxMQUJMRSBRTztMbzswO0w7Ozs7O047Ozs7OworQTQwQjtZSSBTWUxMQUJMRSBRT1A7TG87MDtMOzs7OztOOzs7OzsKK0E0MEM7WUkgU1lMTEFCTEUgUVVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDBEO1lJIFNZTExBQkxFIFFVWDtMbzswO0w7Ozs7O047Ozs7OworQTQwRTtZSSBTWUxMQUJMRSBRVTtMbzswO0w7Ozs7O047Ozs7OworQTQwRjtZSSBTWUxMQUJMRSBRVVA7TG87MDtMOzs7OztOOzs7OzsKK0E0MTA7WUkgU1lMTEFCTEUgUVVSWDtMbzswO0w7Ozs7O047Ozs7OworQTQxMTtZSSBTWUxMQUJMRSBRVVI7TG87MDtMOzs7OztOOzs7OzsKK0E0MTI7WUkgU1lMTEFCTEUgUVlUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDEzO1lJIFNZTExBQkxFIFFZWDtMbzswO0w7Ozs7O047Ozs7OworQTQxNDtZSSBTWUxMQUJMRSBRWTtMbzswO0w7Ozs7O047Ozs7OworQTQxNTtZSSBTWUxMQUJMRSBRWVA7TG87MDtMOzs7OztOOzs7OzsKK0E0MTY7WUkgU1lMTEFCTEUgUVlSWDtMbzswO0w7Ozs7O047Ozs7OworQTQxNztZSSBTWUxMQUJMRSBRWVI7TG87MDtMOzs7OztOOzs7OzsKK0E0MTg7WUkgU1lMTEFCTEUgSkpJVDtMbzswO0w7Ozs7O047Ozs7OworQTQxOTtZSSBTWUxMQUJMRSBKSklYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDFBO1lJIFNZTExBQkxFIEpKSTtMbzswO0w7Ozs7O047Ozs7OworQTQxQjtZSSBTWUxMQUJMRSBKSklQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDFDO1lJIFNZTExBQkxFIEpKSUVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDFEO1lJIFNZTExBQkxFIEpKSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDFFO1lJIFNZTExBQkxFIEpKSUU7TG87MDtMOzs7OztOOzs7OzsKK0E0MUY7WUkgU1lMTEFCTEUgSkpJRVA7TG87MDtMOzs7OztOOzs7OzsKK0E0MjA7WUkgU1lMTEFCTEUgSkpVT1g7TG87MDtMOzs7OztOOzs7OzsKK0E0MjE7WUkgU1lMTEFCTEUgSkpVTztMbzswO0w7Ozs7O047Ozs7OworQTQyMjtZSSBTWUxMQUJMRSBKSlVPUDtMbzswO0w7Ozs7O047Ozs7OworQTQyMztZSSBTWUxMQUJMRSBKSk9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDI0O1lJIFNZTExBQkxFIEpKT1g7TG87MDtMOzs7OztOOzs7OzsKK0E0MjU7WUkgU1lMTEFCTEUgSkpPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDI2O1lJIFNZTExBQkxFIEpKT1A7TG87MDtMOzs7OztOOzs7OzsKK0E0Mjc7WUkgU1lMTEFCTEUgSkpVVDtMbzswO0w7Ozs7O047Ozs7OworQTQyODtZSSBTWUxMQUJMRSBKSlVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDI5O1lJIFNZTExBQkxFIEpKVTtMbzswO0w7Ozs7O047Ozs7OworQTQyQTtZSSBTWUxMQUJMRSBKSlVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDJCO1lJIFNZTExBQkxFIEpKVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDJDO1lJIFNZTExBQkxFIEpKVVI7TG87MDtMOzs7OztOOzs7OzsKK0E0MkQ7WUkgU1lMTEFCTEUgSkpZVDtMbzswO0w7Ozs7O047Ozs7OworQTQyRTtZSSBTWUxMQUJMRSBKSllYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDJGO1lJIFNZTExBQkxFIEpKWTtMbzswO0w7Ozs7O047Ozs7OworQTQzMDtZSSBTWUxMQUJMRSBKSllQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDMxO1lJIFNZTExBQkxFIE5KSVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0MzI7WUkgU1lMTEFCTEUgTkpJWDtMbzswO0w7Ozs7O047Ozs7OworQTQzMztZSSBTWUxMQUJMRSBOSkk7TG87MDtMOzs7OztOOzs7OzsKK0E0MzQ7WUkgU1lMTEFCTEUgTkpJUDtMbzswO0w7Ozs7O047Ozs7OworQTQzNTtZSSBTWUxMQUJMRSBOSklFVDtMbzswO0w7Ozs7O047Ozs7OworQTQzNjtZSSBTWUxMQUJMRSBOSklFWDtMbzswO0w7Ozs7O047Ozs7OworQTQzNztZSSBTWUxMQUJMRSBOSklFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDM4O1lJIFNZTExBQkxFIE5KSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDM5O1lJIFNZTExBQkxFIE5KVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDNBO1lJIFNZTExBQkxFIE5KVU87TG87MDtMOzs7OztOOzs7OzsKK0E0M0I7WUkgU1lMTEFCTEUgTkpPVDtMbzswO0w7Ozs7O047Ozs7OworQTQzQztZSSBTWUxMQUJMRSBOSk9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDNEO1lJIFNZTExBQkxFIE5KTztMbzswO0w7Ozs7O047Ozs7OworQTQzRTtZSSBTWUxMQUJMRSBOSk9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDNGO1lJIFNZTExBQkxFIE5KVVg7TG87MDtMOzs7OztOOzs7OzsKK0E0NDA7WUkgU1lMTEFCTEUgTkpVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDQxO1lJIFNZTExBQkxFIE5KVVA7TG87MDtMOzs7OztOOzs7OzsKK0E0NDI7WUkgU1lMTEFCTEUgTkpVUlg7TG87MDtMOzs7OztOOzs7OzsKK0E0NDM7WUkgU1lMTEFCTEUgTkpVUjtMbzswO0w7Ozs7O047Ozs7OworQTQ0NDtZSSBTWUxMQUJMRSBOSllUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDQ1O1lJIFNZTExBQkxFIE5KWVg7TG87MDtMOzs7OztOOzs7OzsKK0E0NDY7WUkgU1lMTEFCTEUgTkpZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDQ3O1lJIFNZTExBQkxFIE5KWVA7TG87MDtMOzs7OztOOzs7OzsKK0E0NDg7WUkgU1lMTEFCTEUgTkpZUlg7TG87MDtMOzs7OztOOzs7OzsKK0E0NDk7WUkgU1lMTEFCTEUgTkpZUjtMbzswO0w7Ozs7O047Ozs7OworQTQ0QTtZSSBTWUxMQUJMRSBOWUlUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDRCO1lJIFNZTExBQkxFIE5ZSVg7TG87MDtMOzs7OztOOzs7OzsKK0E0NEM7WUkgU1lMTEFCTEUgTllJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDREO1lJIFNZTExBQkxFIE5ZSVA7TG87MDtMOzs7OztOOzs7OzsKK0E0NEU7WUkgU1lMTEFCTEUgTllJRVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0NEY7WUkgU1lMTEFCTEUgTllJRVg7TG87MDtMOzs7OztOOzs7OzsKK0E0NTA7WUkgU1lMTEFCTEUgTllJRTtMbzswO0w7Ozs7O047Ozs7OworQTQ1MTtZSSBTWUxMQUJMRSBOWUlFUDtMbzswO0w7Ozs7O047Ozs7OworQTQ1MjtZSSBTWUxMQUJMRSBOWVVPWDtMbzswO0w7Ozs7O047Ozs7OworQTQ1MztZSSBTWUxMQUJMRSBOWVVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDU0O1lJIFNZTExBQkxFIE5ZVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDU1O1lJIFNZTExBQkxFIE5ZT1Q7TG87MDtMOzs7OztOOzs7OzsKK0E0NTY7WUkgU1lMTEFCTEUgTllPWDtMbzswO0w7Ozs7O047Ozs7OworQTQ1NztZSSBTWUxMQUJMRSBOWU87TG87MDtMOzs7OztOOzs7OzsKK0E0NTg7WUkgU1lMTEFCTEUgTllPUDtMbzswO0w7Ozs7O047Ozs7OworQTQ1OTtZSSBTWUxMQUJMRSBOWVVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDVBO1lJIFNZTExBQkxFIE5ZVVg7TG87MDtMOzs7OztOOzs7OzsKK0E0NUI7WUkgU1lMTEFCTEUgTllVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDVDO1lJIFNZTExBQkxFIE5ZVVA7TG87MDtMOzs7OztOOzs7OzsKK0E0NUQ7WUkgU1lMTEFCTEUgWElUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDVFO1lJIFNZTExBQkxFIFhJWDtMbzswO0w7Ozs7O047Ozs7OworQTQ1RjtZSSBTWUxMQUJMRSBYSTtMbzswO0w7Ozs7O047Ozs7OworQTQ2MDtZSSBTWUxMQUJMRSBYSVA7TG87MDtMOzs7OztOOzs7OzsKK0E0NjE7WUkgU1lMTEFCTEUgWElFVDtMbzswO0w7Ozs7O047Ozs7OworQTQ2MjtZSSBTWUxMQUJMRSBYSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDYzO1lJIFNZTExBQkxFIFhJRTtMbzswO0w7Ozs7O047Ozs7OworQTQ2NDtZSSBTWUxMQUJMRSBYSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDY1O1lJIFNZTExBQkxFIFhVT1g7TG87MDtMOzs7OztOOzs7OzsKK0E0NjY7WUkgU1lMTEFCTEUgWFVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDY3O1lJIFNZTExBQkxFIFhPVDtMbzswO0w7Ozs7O047Ozs7OworQTQ2ODtZSSBTWUxMQUJMRSBYT1g7TG87MDtMOzs7OztOOzs7OzsKK0E0Njk7WUkgU1lMTEFCTEUgWE87TG87MDtMOzs7OztOOzs7OzsKK0E0NkE7WUkgU1lMTEFCTEUgWE9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDZCO1lJIFNZTExBQkxFIFhZVDtMbzswO0w7Ozs7O047Ozs7OworQTQ2QztZSSBTWUxMQUJMRSBYWVg7TG87MDtMOzs7OztOOzs7OzsKK0E0NkQ7WUkgU1lMTEFCTEUgWFk7TG87MDtMOzs7OztOOzs7OzsKK0E0NkU7WUkgU1lMTEFCTEUgWFlQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDZGO1lJIFNZTExBQkxFIFhZUlg7TG87MDtMOzs7OztOOzs7OzsKK0E0NzA7WUkgU1lMTEFCTEUgWFlSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDcxO1lJIFNZTExBQkxFIFlJVDtMbzswO0w7Ozs7O047Ozs7OworQTQ3MjtZSSBTWUxMQUJMRSBZSVg7TG87MDtMOzs7OztOOzs7OzsKK0E0NzM7WUkgU1lMTEFCTEUgWUk7TG87MDtMOzs7OztOOzs7OzsKK0E0NzQ7WUkgU1lMTEFCTEUgWUlQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDc1O1lJIFNZTExBQkxFIFlJRVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0NzY7WUkgU1lMTEFCTEUgWUlFWDtMbzswO0w7Ozs7O047Ozs7OworQTQ3NztZSSBTWUxMQUJMRSBZSUU7TG87MDtMOzs7OztOOzs7OzsKK0E0Nzg7WUkgU1lMTEFCTEUgWUlFUDtMbzswO0w7Ozs7O047Ozs7OworQTQ3OTtZSSBTWUxMQUJMRSBZVU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDdBO1lJIFNZTExBQkxFIFlVT1g7TG87MDtMOzs7OztOOzs7OzsKK0E0N0I7WUkgU1lMTEFCTEUgWVVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDdDO1lJIFNZTExBQkxFIFlVT1A7TG87MDtMOzs7OztOOzs7OzsKK0E0N0Q7WUkgU1lMTEFCTEUgWU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDdFO1lJIFNZTExBQkxFIFlPWDtMbzswO0w7Ozs7O047Ozs7OworQTQ3RjtZSSBTWUxMQUJMRSBZTztMbzswO0w7Ozs7O047Ozs7OworQTQ4MDtZSSBTWUxMQUJMRSBZT1A7TG87MDtMOzs7OztOOzs7OzsKK0E0ODE7WUkgU1lMTEFCTEUgWVVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDgyO1lJIFNZTExBQkxFIFlVWDtMbzswO0w7Ozs7O047Ozs7OworQTQ4MztZSSBTWUxMQUJMRSBZVTtMbzswO0w7Ozs7O047Ozs7OworQTQ4NDtZSSBTWUxMQUJMRSBZVVA7TG87MDtMOzs7OztOOzs7OzsKK0E0ODU7WUkgU1lMTEFCTEUgWVVSWDtMbzswO0w7Ozs7O047Ozs7OworQTQ4NjtZSSBTWUxMQUJMRSBZVVI7TG87MDtMOzs7OztOOzs7OzsKK0E0ODc7WUkgU1lMTEFCTEUgWVlUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDg4O1lJIFNZTExBQkxFIFlZWDtMbzswO0w7Ozs7O047Ozs7OworQTQ4OTtZSSBTWUxMQUJMRSBZWTtMbzswO0w7Ozs7O047Ozs7OworQTQ4QTtZSSBTWUxMQUJMRSBZWVA7TG87MDtMOzs7OztOOzs7OzsKK0E0OEI7WUkgU1lMTEFCTEUgWVlSWDtMbzswO0w7Ozs7O047Ozs7OworQTQ4QztZSSBTWUxMQUJMRSBZWVI7TG87MDtMOzs7OztOOzs7OzsKK0E0OTA7WUkgUkFESUNBTCBRT1Q7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNDkxO1lJIFJBRElDQUwgTEk7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNDkyO1lJIFJBRElDQUwgS0lUO1NvOzA7T047Ozs7O047Ozs7OworQTQ5MztZSSBSQURJQ0FMIE5ZSVA7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNDk0O1lJIFJBRElDQUwgQ1lQO1NvOzA7T047Ozs7O047Ozs7OworQTQ5NTtZSSBSQURJQ0FMIFNTSTtTbzswO09OOzs7OztOOzs7OzsKK0E0OTY7WUkgUkFESUNBTCBHR09QO1NvOzA7T047Ozs7O047Ozs7OworQTQ5NztZSSBSQURJQ0FMIEdFUDtTbzswO09OOzs7OztOOzs7OzsKK0E0OTg7WUkgUkFESUNBTCBNSTtTbzswO09OOzs7OztOOzs7OzsKK0E0OTk7WUkgUkFESUNBTCBIWElUO1NvOzA7T047Ozs7O047Ozs7OworQTQ5QTtZSSBSQURJQ0FMIExZUjtTbzswO09OOzs7OztOOzs7OzsKK0E0OUI7WUkgUkFESUNBTCBCQlVUO1NvOzA7T047Ozs7O047Ozs7OworQTQ5QztZSSBSQURJQ0FMIE1PUDtTbzswO09OOzs7OztOOzs7OzsKK0E0OUQ7WUkgUkFESUNBTCBZTztTbzswO09OOzs7OztOOzs7OzsKK0E0OUU7WUkgUkFESUNBTCBQVVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNDlGO1lJIFJBRElDQUwgSFhVTztTbzswO09OOzs7OztOOzs7OzsKK0E0QTA7WUkgUkFESUNBTCBUQVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEExO1lJIFJBRElDQUwgR0E7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEEyO1lJIFJBRElDQUwgWlVQO1NvOzA7T047Ozs7O047Ozs7OworQTRBMztZSSBSQURJQ0FMIENZVDtTbzswO09OOzs7OztOOzs7OzsKK0E0QTQ7WUkgUkFESUNBTCBERFVSO1NvOzA7T047Ozs7O047Ozs7OworQTRBNTtZSSBSQURJQ0FMIEJVUjtTbzswO09OOzs7OztOOzs7OzsKK0E0QTY7WUkgUkFESUNBTCBHR1VPO1NvOzA7T047Ozs7O047Ozs7OworQTRBNztZSSBSQURJQ0FMIE5ZT1A7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEE4O1lJIFJBRElDQUwgVFU7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEE5O1lJIFJBRElDQUwgT1A7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEFBO1lJIFJBRElDQUwgSkpVVDtTbzswO09OOzs7OztOOzs7OzsKK0E0QUI7WUkgUkFESUNBTCBaT1Q7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEFDO1lJIFJBRElDQUwgUFlUO1NvOzA7T047Ozs7O047Ozs7OworQTRBRDtZSSBSQURJQ0FMIEhNTztTbzswO09OOzs7OztOOzs7OzsKK0E0QUU7WUkgUkFESUNBTCBZSVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEFGO1lJIFJBRElDQUwgVlVSO1NvOzA7T047Ozs7O047Ozs7OworQTRCMDtZSSBSQURJQ0FMIFNIWTtTbzswO09OOzs7OztOOzs7OzsKK0E0QjE7WUkgUkFESUNBTCBWRVA7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEIyO1lJIFJBRElDQUwgWkE7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEIzO1lJIFJBRElDQUwgSk87U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEI0O1lJIFJBRElDQUwgTlpVUDtTbzswO09OOzs7OztOOzs7OzsKK0E0QjU7WUkgUkFESUNBTCBKSlk7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEI2O1lJIFJBRElDQUwgR09UO1NvOzA7T047Ozs7O047Ozs7OworQTRCNztZSSBSQURJQ0FMIEpKSUU7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEI4O1lJIFJBRElDQUwgV087U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEI5O1lJIFJBRElDQUwgRFU7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEJBO1lJIFJBRElDQUwgU0hVUjtTbzswO09OOzs7OztOOzs7OzsKK0E0QkI7WUkgUkFESUNBTCBMSUU7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEJDO1lJIFJBRElDQUwgQ1k7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEJEO1lJIFJBRElDQUwgQ1VPUDtTbzswO09OOzs7OztOOzs7OzsKK0E0QkU7WUkgUkFESUNBTCBDSVA7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEJGO1lJIFJBRElDQUwgSFhPUDtTbzswO09OOzs7OztOOzs7OzsKK0E0QzA7WUkgUkFESUNBTCBTSEFUO1NvOzA7T047Ozs7O047Ozs7OworQTRDMTtZSSBSQURJQ0FMIFpVUjtTbzswO09OOzs7OztOOzs7OzsKK0E0QzI7WUkgUkFESUNBTCBTSE9QO1NvOzA7T047Ozs7O047Ozs7OworQTRDMztZSSBSQURJQ0FMIENIRTtTbzswO09OOzs7OztOOzs7OzsKK0E0QzQ7WUkgUkFESUNBTCBaWklFVDtTbzswO09OOzs7OztOOzs7OzsKK0E0QzU7WUkgUkFESUNBTCBOQklFO1NvOzA7T047Ozs7O047Ozs7OworQTRDNjtZSSBSQURJQ0FMIEtFO1NvOzA7T047Ozs7O047Ozs7OworQUMwMDs8SGFuZ3VsIFN5bGxhYmxlLCBGaXJzdD47TG87MDtMOzs7OztOOzs7OzsKK0Q3QTM7PEhhbmd1bCBTeWxsYWJsZSwgTGFzdD47TG87MDtMOzs7OztOOzs7OzsKK0Q4MDA7PE5vbiBQcml2YXRlIFVzZSBIaWdoIFN1cnJvZ2F0ZSwgRmlyc3Q+O0NzOzA7TDs7Ozs7Tjs7Ozs7CitEQjdGOzxOb24gUHJpdmF0ZSBVc2UgSGlnaCBTdXJyb2dhdGUsIExhc3Q+O0NzOzA7TDs7Ozs7Tjs7Ozs7CitEQjgwOzxQcml2YXRlIFVzZSBIaWdoIFN1cnJvZ2F0ZSwgRmlyc3Q+O0NzOzA7TDs7Ozs7Tjs7Ozs7CitEQkZGOzxQcml2YXRlIFVzZSBIaWdoIFN1cnJvZ2F0ZSwgTGFzdD47Q3M7MDtMOzs7OztOOzs7OzsKK0RDMDA7PExvdyBTdXJyb2dhdGUsIEZpcnN0PjtDczswO0w7Ozs7O047Ozs7OworREZGRjs8TG93IFN1cnJvZ2F0ZSwgTGFzdD47Q3M7MDtMOzs7OztOOzs7OzsKK0UwMDA7PFByaXZhdGUgVXNlLCBGaXJzdD47Q287MDtMOzs7OztOOzs7OzsKK0Y4RkY7PFByaXZhdGUgVXNlLCBMYXN0PjtDbzswO0w7Ozs7O047Ozs7OworRjkwMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwMDtMbzswO0w7OEM0ODs7OztOOzs7OzsKK0Y5MDE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MDE7TG87MDtMOzY2RjQ7Ozs7Tjs7Ozs7CitGOTAyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTAyO0xvOzA7TDs4RUNBOzs7O047Ozs7OworRjkwMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwMztMbzswO0w7OENDODs7OztOOzs7OzsKK0Y5MDQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MDQ7TG87MDtMOzZFRDE7Ozs7Tjs7Ozs7CitGOTA1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTA1O0xvOzA7TDs0RTMyOzs7O047Ozs7OworRjkwNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwNjtMbzswO0w7NTNFNTs7OztOOzs7OzsKK0Y5MDc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MDc7TG87MDtMOzlGOUM7Ozs7Tjs7Ozs7CitGOTA4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTA4O0xvOzA7TDs5RjlDOzs7O047Ozs7OworRjkwOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwOTtMbzswO0w7NTk1MTs7OztOOzs7OzsKK0Y5MEE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MEE7TG87MDtMOzkxRDE7Ozs7Tjs7Ozs7CitGOTBCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTBCO0xvOzA7TDs1NTg3Ozs7O047Ozs7OworRjkwQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwQztMbzswO0w7NTk0ODs7OztOOzs7OzsKK0Y5MEQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MEQ7TG87MDtMOzYxRjY7Ozs7Tjs7Ozs7CitGOTBFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTBFO0xvOzA7TDs3NjY5Ozs7O047Ozs7OworRjkwRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwRjtMbzswO0w7N0Y4NTs7OztOOzs7OzsKK0Y5MTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MTA7TG87MDtMOzg2M0Y7Ozs7Tjs7Ozs7CitGOTExO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTExO0xvOzA7TDs4N0JBOzs7O047Ozs7OworRjkxMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxMjtMbzswO0w7ODhGODs7OztOOzs7OzsKK0Y5MTM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MTM7TG87MDtMOzkwOEY7Ozs7Tjs7Ozs7CitGOTE0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTE0O0xvOzA7TDs2QTAyOzs7O047Ozs7OworRjkxNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxNTtMbzswO0w7NkQxQjs7OztOOzs7OzsKK0Y5MTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MTY7TG87MDtMOzcwRDk7Ozs7Tjs7Ozs7CitGOTE3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTE3O0xvOzA7TDs3M0RFOzs7O047Ozs7OworRjkxODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxODtMbzswO0w7ODQzRDs7OztOOzs7OzsKK0Y5MTk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MTk7TG87MDtMOzkxNkE7Ozs7Tjs7Ozs7CitGOTFBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTFBO0xvOzA7TDs5OUYxOzs7O047Ozs7OworRjkxQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxQjtMbzswO0w7NEU4Mjs7OztOOzs7OzsKK0Y5MUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MUM7TG87MDtMOzUzNzU7Ozs7Tjs7Ozs7CitGOTFEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTFEO0xvOzA7TDs2QjA0Ozs7O047Ozs7OworRjkxRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxRTtMbzswO0w7NzIxQjs7OztOOzs7OzsKK0Y5MUY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MUY7TG87MDtMOzg2MkQ7Ozs7Tjs7Ozs7CitGOTIwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTIwO0xvOzA7TDs5RTFFOzs7O047Ozs7OworRjkyMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyMTtMbzswO0w7NUQ1MDs7OztOOzs7OzsKK0Y5MjI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MjI7TG87MDtMOzZGRUI7Ozs7Tjs7Ozs7CitGOTIzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTIzO0xvOzA7TDs4NUNEOzs7O047Ozs7OworRjkyNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyNDtMbzswO0w7ODk2NDs7OztOOzs7OzsKK0Y5MjU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MjU7TG87MDtMOzYyQzk7Ozs7Tjs7Ozs7CitGOTI2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTI2O0xvOzA7TDs4MUQ4Ozs7O047Ozs7OworRjkyNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyNztMbzswO0w7ODgxRjs7OztOOzs7OzsKK0Y5Mjg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Mjg7TG87MDtMOzVFQ0E7Ozs7Tjs7Ozs7CitGOTI5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTI5O0xvOzA7TDs2NzE3Ozs7O047Ozs7OworRjkyQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyQTtMbzswO0w7NkQ2QTs7OztOOzs7OzsKK0Y5MkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MkI7TG87MDtMOzcyRkM7Ozs7Tjs7Ozs7CitGOTJDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTJDO0xvOzA7TDs5MENFOzs7O047Ozs7OworRjkyRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyRDtMbzswO0w7NEY4Njs7OztOOzs7OzsKK0Y5MkU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MkU7TG87MDtMOzUxQjc7Ozs7Tjs7Ozs7CitGOTJGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTJGO0xvOzA7TDs1MkRFOzs7O047Ozs7OworRjkzMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzMDtMbzswO0w7NjRDNDs7OztOOzs7OzsKK0Y5MzE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MzE7TG87MDtMOzZBRDM7Ozs7Tjs7Ozs7CitGOTMyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTMyO0xvOzA7TDs3MjEwOzs7O047Ozs7OworRjkzMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzMztMbzswO0w7NzZFNzs7OztOOzs7OzsKK0Y5MzQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MzQ7TG87MDtMOzgwMDE7Ozs7Tjs7Ozs7CitGOTM1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTM1O0xvOzA7TDs4NjA2Ozs7O047Ozs7OworRjkzNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzNjtMbzswO0w7ODY1Qzs7OztOOzs7OzsKK0Y5Mzc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Mzc7TG87MDtMOzhERUY7Ozs7Tjs7Ozs7CitGOTM4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTM4O0xvOzA7TDs5NzMyOzs7O047Ozs7OworRjkzOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzOTtMbzswO0w7OUI2Rjs7OztOOzs7OzsKK0Y5M0E7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5M0E7TG87MDtMOzlERkE7Ozs7Tjs7Ozs7CitGOTNCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTNCO0xvOzA7TDs3ODhDOzs7O047Ozs7OworRjkzQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzQztMbzswO0w7Nzk3Rjs7OztOOzs7OzsKK0Y5M0Q7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5M0Q7TG87MDtMOzdEQTA7Ozs7Tjs7Ozs7CitGOTNFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTNFO0xvOzA7TDs4M0M5Ozs7O047Ozs7OworRjkzRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzRjtMbzswO0w7OTMwNDs7OztOOzs7OzsKK0Y5NDA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NDA7TG87MDtMOzlFN0Y7Ozs7Tjs7Ozs7CitGOTQxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTQxO0xvOzA7TDs4QUQ2Ozs7O047Ozs7OworRjk0MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0MjtMbzswO0w7NThERjs7OztOOzs7OzsKK0Y5NDM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NDM7TG87MDtMOzVGMDQ7Ozs7Tjs7Ozs7CitGOTQ0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTQ0O0xvOzA7TDs3QzYwOzs7O047Ozs7OworRjk0NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0NTtMbzswO0w7ODA3RTs7OztOOzs7OzsKK0Y5NDY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NDY7TG87MDtMOzcyNjI7Ozs7Tjs7Ozs7CitGOTQ3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTQ3O0xvOzA7TDs3OENBOzs7O047Ozs7OworRjk0ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0ODtMbzswO0w7OENDMjs7OztOOzs7OzsKK0Y5NDk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NDk7TG87MDtMOzk2Rjc7Ozs7Tjs7Ozs7CitGOTRBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTRBO0xvOzA7TDs1OEQ4Ozs7O047Ozs7OworRjk0QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0QjtMbzswO0w7NUM2Mjs7OztOOzs7OzsKK0Y5NEM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NEM7TG87MDtMOzZBMTM7Ozs7Tjs7Ozs7CitGOTREO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTREO0xvOzA7TDs2RERBOzs7O047Ozs7OworRjk0RTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0RTtMbzswO0w7NkYwRjs7OztOOzs7OzsKK0Y5NEY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NEY7TG87MDtMOzdEMkY7Ozs7Tjs7Ozs7CitGOTUwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTUwO0xvOzA7TDs3RTM3Ozs7O047Ozs7OworRjk1MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1MTtMbzswO0w7OTY0Qjs7OztOOzs7OzsKK0Y5NTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NTI7TG87MDtMOzUyRDI7Ozs7Tjs7Ozs7CitGOTUzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTUzO0xvOzA7TDs4MDhCOzs7O047Ozs7OworRjk1NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1NDtMbzswO0w7NTFEQzs7OztOOzs7OzsKK0Y5NTU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NTU7TG87MDtMOzUxQ0M7Ozs7Tjs7Ozs7CitGOTU2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTU2O0xvOzA7TDs3QTFDOzs7O047Ozs7OworRjk1NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1NztMbzswO0w7N0RCRTs7OztOOzs7OzsKK0Y5NTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NTg7TG87MDtMOzgzRjE7Ozs7Tjs7Ozs7CitGOTU5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTU5O0xvOzA7TDs5Njc1Ozs7O047Ozs7OworRjk1QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1QTtMbzswO0w7OEI4MDs7OztOOzs7OzsKK0Y5NUI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NUI7TG87MDtMOzYyQ0Y7Ozs7Tjs7Ozs7CitGOTVDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTVDO0xvOzA7TDs2QTAyOzs7O047Ozs7OworRjk1RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1RDtMbzswO0w7OEFGRTs7OztOOzs7OzsKK0Y5NUU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NUU7TG87MDtMOzRFMzk7Ozs7Tjs7Ozs7CitGOTVGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTVGO0xvOzA7TDs1QkU3Ozs7O047Ozs7OworRjk2MDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2MDtMbzswO0w7NjAxMjs7OztOOzs7OzsKK0Y5NjE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NjE7TG87MDtMOzczODc7Ozs7Tjs7Ozs7CitGOTYyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTYyO0xvOzA7TDs3NTcwOzs7O047Ozs7OworRjk2MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2MztMbzswO0w7NTMxNzs7OztOOzs7OzsKK0Y5NjQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NjQ7TG87MDtMOzc4RkI7Ozs7Tjs7Ozs7CitGOTY1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTY1O0xvOzA7TDs0RkJGOzs7O047Ozs7OworRjk2NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2NjtMbzswO0w7NUZBOTs7OztOOzs7OzsKK0Y5Njc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Njc7TG87MDtMOzRFMEQ7Ozs7Tjs7Ozs7CitGOTY4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTY4O0xvOzA7TDs2Q0NDOzs7O047Ozs7OworRjk2OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2OTtMbzswO0w7NjU3ODs7OztOOzs7OzsKK0Y5NkE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NkE7TG87MDtMOzdEMjI7Ozs7Tjs7Ozs7CitGOTZCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTZCO0xvOzA7TDs1M0MzOzs7O047Ozs7OworRjk2QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2QztMbzswO0w7NTg1RTs7OztOOzs7OzsKK0Y5NkQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NkQ7TG87MDtMOzc3MDE7Ozs7Tjs7Ozs7CitGOTZFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTZFO0xvOzA7TDs4NDQ5Ozs7O047Ozs7OworRjk2RjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2RjtMbzswO0w7OEFBQTs7OztOOzs7OzsKK0Y5NzA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NzA7TG87MDtMOzZCQkE7Ozs7Tjs7Ozs7CitGOTcxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTcxO0xvOzA7TDs4RkIwOzs7O047Ozs7OworRjk3MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3MjtMbzswO0w7NkM4ODs7OztOOzs7OzsKK0Y5NzM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NzM7TG87MDtMOzYyRkU7Ozs7Tjs7Ozs7CitGOTc0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTc0O0xvOzA7TDs4MkU1Ozs7O047Ozs7OworRjk3NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3NTtMbzswO0w7NjNBMDs7OztOOzs7OzsKK0Y5NzY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NzY7TG87MDtMOzc1NjU7Ozs7Tjs7Ozs7CitGOTc3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTc3O0xvOzA7TDs0RUFFOzs7O047Ozs7OworRjk3ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3ODtMbzswO0w7NTE2OTs7OztOOzs7OzsKK0Y5Nzk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Nzk7TG87MDtMOzUxQzk7Ozs7Tjs7Ozs7CitGOTdBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTdBO0xvOzA7TDs2ODgxOzs7O047Ozs7OworRjk3QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3QjtMbzswO0w7N0NFNzs7OztOOzs7OzsKK0Y5N0M7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5N0M7TG87MDtMOzgyNkY7Ozs7Tjs7Ozs7CitGOTdEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTdEO0xvOzA7TDs4QUQyOzs7O047Ozs7OworRjk3RTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3RTtMbzswO0w7OTFDRjs7OztOOzs7OzsKK0Y5N0Y7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5N0Y7TG87MDtMOzUyRjU7Ozs7Tjs7Ozs7CitGOTgwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTgwO0xvOzA7TDs1NDQyOzs7O047Ozs7OworRjk4MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4MTtMbzswO0w7NTk3Mzs7OztOOzs7OzsKK0Y5ODI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5ODI7TG87MDtMOzVFRUM7Ozs7Tjs7Ozs7CitGOTgzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTgzO0xvOzA7TDs2NUM1Ozs7O047Ozs7OworRjk4NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4NDtMbzswO0w7NkZGRTs7OztOOzs7OzsKK0Y5ODU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5ODU7TG87MDtMOzc5MkE7Ozs7Tjs7Ozs7CitGOTg2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTg2O0xvOzA7TDs5NUFEOzs7O047Ozs7OworRjk4NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4NztMbzswO0w7OUE2QTs7OztOOzs7OzsKK0Y5ODg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5ODg7TG87MDtMOzlFOTc7Ozs7Tjs7Ozs7CitGOTg5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTg5O0xvOzA7TDs5RUNFOzs7O047Ozs7OworRjk4QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4QTtMbzswO0w7NTI5Qjs7OztOOzs7OzsKK0Y5OEI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OEI7TG87MDtMOzY2QzY7Ozs7Tjs7Ozs7CitGOThDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOThDO0xvOzA7TDs2Qjc3Ozs7O047Ozs7OworRjk4RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4RDtMbzswO0w7OEY2Mjs7OztOOzs7OzsKK0Y5OEU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OEU7TG87MDtMOzVFNzQ7Ozs7Tjs7Ozs7CitGOThGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOThGO0xvOzA7TDs2MTkwOzs7O047Ozs7OworRjk5MDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5MDtMbzswO0w7NjIwMDs7OztOOzs7OzsKK0Y5OTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OTE7TG87MDtMOzY0OUE7Ozs7Tjs7Ozs7CitGOTkyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTkyO0xvOzA7TDs2RjIzOzs7O047Ozs7OworRjk5MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5MztMbzswO0w7NzE0OTs7OztOOzs7OzsKK0Y5OTQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OTQ7TG87MDtMOzc0ODk7Ozs7Tjs7Ozs7CitGOTk1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTk1O0xvOzA7TDs3OUNBOzs7O047Ozs7OworRjk5NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5NjtMbzswO0w7N0RGNDs7OztOOzs7OzsKK0Y5OTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OTc7TG87MDtMOzgwNkY7Ozs7Tjs7Ozs7CitGOTk4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTk4O0xvOzA7TDs4RjI2Ozs7O047Ozs7OworRjk5OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5OTtMbzswO0w7ODRFRTs7OztOOzs7OzsKK0Y5OUE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OUE7TG87MDtMOzkwMjM7Ozs7Tjs7Ozs7CitGOTlCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTlCO0xvOzA7TDs5MzRBOzs7O047Ozs7OworRjk5QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5QztMbzswO0w7NTIxNzs7OztOOzs7OzsKK0Y5OUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OUQ7TG87MDtMOzUyQTM7Ozs7Tjs7Ozs7CitGOTlFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTlFO0xvOzA7TDs1NEJEOzs7O047Ozs7OworRjk5RjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5RjtMbzswO0w7NzBDODs7OztOOzs7OzsKK0Y5QTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QTA7TG87MDtMOzg4QzI7Ozs7Tjs7Ozs7CitGOUExO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUExO0xvOzA7TDs4QUFBOzs7O047Ozs7OworRjlBMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBMjtMbzswO0w7NUVDOTs7OztOOzs7OzsKK0Y5QTM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QTM7TG87MDtMOzVGRjU7Ozs7Tjs7Ozs7CitGOUE0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUE0O0xvOzA7TDs2MzdCOzs7O047Ozs7OworRjlBNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBNTtMbzswO0w7NkJBRTs7OztOOzs7OzsKK0Y5QTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QTY7TG87MDtMOzdDM0U7Ozs7Tjs7Ozs7CitGOUE3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUE3O0xvOzA7TDs3Mzc1Ozs7O047Ozs7OworRjlBODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBODtMbzswO0w7NEVFNDs7OztOOzs7OzsKK0Y5QTk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QTk7TG87MDtMOzU2Rjk7Ozs7Tjs7Ozs7CitGOUFBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUFBO0xvOzA7TDs1QkU3Ozs7O047Ozs7OworRjlBQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBQjtMbzswO0w7NURCQTs7OztOOzs7OzsKK0Y5QUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QUM7TG87MDtMOzYwMUM7Ozs7Tjs7Ozs7CitGOUFEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUFEO0xvOzA7TDs3M0IyOzs7O047Ozs7OworRjlBRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBRTtMbzswO0w7NzQ2OTs7OztOOzs7OzsKK0Y5QUY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QUY7TG87MDtMOzdGOUE7Ozs7Tjs7Ozs7CitGOUIwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUIwO0xvOzA7TDs4MDQ2Ozs7O047Ozs7OworRjlCMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCMTtMbzswO0w7OTIzNDs7OztOOzs7OzsKK0Y5QjI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QjI7TG87MDtMOzk2RjY7Ozs7Tjs7Ozs7CitGOUIzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUIzO0xvOzA7TDs5NzQ4Ozs7O047Ozs7OworRjlCNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCNDtMbzswO0w7OTgxODs7OztOOzs7OzsKK0Y5QjU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QjU7TG87MDtMOzRGOEI7Ozs7Tjs7Ozs7CitGOUI2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUI2O0xvOzA7TDs3OUFFOzs7O047Ozs7OworRjlCNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCNztMbzswO0w7OTFCNDs7OztOOzs7OzsKK0Y5Qjg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Qjg7TG87MDtMOzk2Qjg7Ozs7Tjs7Ozs7CitGOUI5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUI5O0xvOzA7TDs2MEUxOzs7O047Ozs7OworRjlCQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCQTtMbzswO0w7NEU4Njs7OztOOzs7OzsKK0Y5QkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QkI7TG87MDtMOzUwREE7Ozs7Tjs7Ozs7CitGOUJDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUJDO0xvOzA7TDs1QkVFOzs7O047Ozs7OworRjlCRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCRDtMbzswO0w7NUMzRjs7OztOOzs7OzsKK0Y5QkU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QkU7TG87MDtMOzY1OTk7Ozs7Tjs7Ozs7CitGOUJGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUJGO0xvOzA7TDs2QTAyOzs7O047Ozs7OworRjlDMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDMDtMbzswO0w7NzFDRTs7OztOOzs7OzsKK0Y5QzE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QzE7TG87MDtMOzc2NDI7Ozs7Tjs7Ozs7CitGOUMyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUMyO0xvOzA7TDs4NEZDOzs7O047Ozs7OworRjlDMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDMztMbzswO0w7OTA3Qzs7OztOOzs7OzsKK0Y5QzQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QzQ7TG87MDtMOzlGOEQ7Ozs7Tjs7Ozs7CitGOUM1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUM1O0xvOzA7TDs2Njg4Ozs7O047Ozs7OworRjlDNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDNjtMbzswO0w7OTYyRTs7OztOOzs7OzsKK0Y5Qzc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Qzc7TG87MDtMOzUyODk7Ozs7Tjs7Ozs7CitGOUM4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUM4O0xvOzA7TDs2NzdCOzs7O047Ozs7OworRjlDOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDOTtMbzswO0w7NjdGMzs7OztOOzs7OzsKK0Y5Q0E7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Q0E7TG87MDtMOzZENDE7Ozs7Tjs7Ozs7CitGOUNCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUNCO0xvOzA7TDs2RTlDOzs7O047Ozs7OworRjlDQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDQztMbzswO0w7NzQwOTs7OztOOzs7OzsKK0Y5Q0Q7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Q0Q7TG87MDtMOzc1NTk7Ozs7Tjs7Ozs7CitGOUNFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUNFO0xvOzA7TDs3ODZCOzs7O047Ozs7OworRjlDRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDRjtMbzswO0w7N0QxMDs7OztOOzs7OzsKK0Y5RDA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RDA7TG87MDtMOzk4NUU7Ozs7Tjs7Ozs7CitGOUQxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUQxO0xvOzA7TDs1MTZEOzs7O047Ozs7OworRjlEMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlEMjtMbzswO0w7NjIyRTs7OztOOzs7OzsKK0Y5RDM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RDM7TG87MDtMOzk2Nzg7Ozs7Tjs7Ozs7CitGOUQ0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUQ0O0xvOzA7TDs1MDJCOzs7O047Ozs7OworRjlENTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlENTtMbzswO0w7NUQxOTs7OztOOzs7OzsKK0Y5RDY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RDY7TG87MDtMOzZERUE7Ozs7Tjs7Ozs7CitGOUQ3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUQ3O0xvOzA7TDs4RjJBOzs7O047Ozs7OworRjlEODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlEODtMbzswO0w7NUY4Qjs7OztOOzs7OzsKK0Y5RDk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RDk7TG87MDtMOzYxNDQ7Ozs7Tjs7Ozs7CitGOURBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOURBO0xvOzA7TDs2ODE3Ozs7O047Ozs7OworRjlEQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlEQjtMbzswO0w7NzM4Nzs7OztOOzs7OzsKK0Y5REM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5REM7TG87MDtMOzk2ODY7Ozs7Tjs7Ozs7CitGOUREO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUREO0xvOzA7TDs1MjI5Ozs7O047Ozs7OworRjlERTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlERTtMbzswO0w7NTQwRjs7OztOOzs7OzsKK0Y5REY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5REY7TG87MDtMOzVDNjU7Ozs7Tjs7Ozs7CitGOUUwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUUwO0xvOzA7TDs2NjEzOzs7O047Ozs7OworRjlFMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFMTtMbzswO0w7Njc0RTs7OztOOzs7OzsKK0Y5RTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RTI7TG87MDtMOzY4QTg7Ozs7Tjs7Ozs7CitGOUUzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUUzO0xvOzA7TDs2Q0U1Ozs7O047Ozs7OworRjlFNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFNDtMbzswO0w7NzQwNjs7OztOOzs7OzsKK0Y5RTU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RTU7TG87MDtMOzc1RTI7Ozs7Tjs7Ozs7CitGOUU2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUU2O0xvOzA7TDs3Rjc5Ozs7O047Ozs7OworRjlFNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFNztMbzswO0w7ODhDRjs7OztOOzs7OzsKK0Y5RTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RTg7TG87MDtMOzg4RTE7Ozs7Tjs7Ozs7CitGOUU5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUU5O0xvOzA7TDs5MUNDOzs7O047Ozs7OworRjlFQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFQTtMbzswO0w7OTZFMjs7OztOOzs7OzsKK0Y5RUI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RUI7TG87MDtMOzUzM0Y7Ozs7Tjs7Ozs7CitGOUVDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUVDO0xvOzA7TDs2RUJBOzs7O047Ozs7OworRjlFRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFRDtMbzswO0w7NTQxRDs7OztOOzs7OzsKK0Y5RUU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RUU7TG87MDtMOzcxRDA7Ozs7Tjs7Ozs7CitGOUVGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUVGO0xvOzA7TDs3NDk4Ozs7O047Ozs7OworRjlGMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGMDtMbzswO0w7ODVGQTs7OztOOzs7OzsKK0Y5RjE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RjE7TG87MDtMOzk2QTM7Ozs7Tjs7Ozs7CitGOUYyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUYyO0xvOzA7TDs5QzU3Ozs7O047Ozs7OworRjlGMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGMztMbzswO0w7OUU5Rjs7OztOOzs7OzsKK0Y5RjQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RjQ7TG87MDtMOzY3OTc7Ozs7Tjs7Ozs7CitGOUY1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUY1O0xvOzA7TDs2RENCOzs7O047Ozs7OworRjlGNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGNjtMbzswO0w7ODFFODs7OztOOzs7OzsKK0Y5Rjc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Rjc7TG87MDtMOzdBQ0I7Ozs7Tjs7Ozs7CitGOUY4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUY4O0xvOzA7TDs3QjIwOzs7O047Ozs7OworRjlGOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGOTtMbzswO0w7N0M5Mjs7OztOOzs7OzsKK0Y5RkE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RkE7TG87MDtMOzcyQzA7Ozs7Tjs7Ozs7CitGOUZCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUZCO0xvOzA7TDs3MDk5Ozs7O047Ozs7OworRjlGQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGQztMbzswO0w7OEI1ODs7OztOOzs7OzsKK0Y5RkQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RkQ7TG87MDtMOzRFQzA7Ozs7Tjs7Ozs7CitGOUZFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUZFO0xvOzA7TDs4MzM2Ozs7O047Ozs7OworRjlGRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGRjtMbzswO0w7NTIzQTs7OztOOzs7OzsKK0ZBMDA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMDA7TG87MDtMOzUyMDc7Ozs7Tjs7Ozs7CitGQTAxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTAxO0xvOzA7TDs1RUE2Ozs7O047Ozs7OworRkEwMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwMjtMbzswO0w7NjJEMzs7OztOOzs7OzsKK0ZBMDM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMDM7TG87MDtMOzdDRDY7Ozs7Tjs7Ozs7CitGQTA0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTA0O0xvOzA7TDs1Qjg1Ozs7O047Ozs7OworRkEwNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwNTtMbzswO0w7NkQxRTs7OztOOzs7OzsKK0ZBMDY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMDY7TG87MDtMOzY2QjQ7Ozs7Tjs7Ozs7CitGQTA3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTA3O0xvOzA7TDs4RjNCOzs7O047Ozs7OworRkEwODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwODtMbzswO0w7ODg0Qzs7OztOOzs7OzsKK0ZBMDk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMDk7TG87MDtMOzk2NEQ7Ozs7Tjs7Ozs7CitGQTBBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTBBO0xvOzA7TDs4OThCOzs7O047Ozs7OworRkEwQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwQjtMbzswO0w7NUVEMzs7OztOOzs7OzsKK0ZBMEM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMEM7TG87MDtMOzUxNDA7Ozs7Tjs7Ozs7CitGQTBEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTBEO0xvOzA7TDs1NUMwOzs7O047Ozs7OworRkEwRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwRTtMbzswO0w7Ozs7O047Ozs7OworRkEwRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwRjtMbzswO0w7Ozs7O047Ozs7OworRkExMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExMDtMbzswO0w7NTg1QTs7OztOOzs7OzsKK0ZBMTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMTE7TG87MDtMOzs7OztOOzs7OzsKK0ZBMTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMTI7TG87MDtMOzY2NzQ7Ozs7Tjs7Ozs7CitGQTEzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTEzO0xvOzA7TDs7Ozs7Tjs7Ozs7CitGQTE0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTE0O0xvOzA7TDs7Ozs7Tjs7Ozs7CitGQTE1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTE1O0xvOzA7TDs1MURFOzs7O047Ozs7OworRkExNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExNjtMbzswO0w7NzMyQTs7OztOOzs7OzsKK0ZBMTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMTc7TG87MDtMOzc2Q0E7Ozs7Tjs7Ozs7CitGQTE4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTE4O0xvOzA7TDs3OTNDOzs7O047Ozs7OworRkExOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExOTtMbzswO0w7Nzk1RTs7OztOOzs7OzsKK0ZBMUE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMUE7TG87MDtMOzc5NjU7Ozs7Tjs7Ozs7CitGQTFCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTFCO0xvOzA7TDs3OThGOzs7O047Ozs7OworRkExQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExQztMbzswO0w7OTc1Njs7OztOOzs7OzsKK0ZBMUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMUQ7TG87MDtMOzdDQkU7Ozs7Tjs7Ozs7CitGQTFFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTFFO0xvOzA7TDs3RkJEOzs7O047Ozs7OworRkExRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExRjtMbzswO0w7Ozs7O047Oyo7OzsKK0ZBMjA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMjA7TG87MDtMOzg2MTI7Ozs7Tjs7Ozs7CitGQTIxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTIxO0xvOzA7TDs7Ozs7Tjs7Ozs7CitGQTIyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTIyO0xvOzA7TDs4QUY4Ozs7O047Ozs7OworRkEyMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyMztMbzswO0w7Ozs7O047Oyo7OzsKK0ZBMjQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMjQ7TG87MDtMOzs7OztOOzs7OzsKK0ZBMjU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMjU7TG87MDtMOzkwMzg7Ozs7Tjs7Ozs7CitGQTI2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTI2O0xvOzA7TDs5MEZEOzs7O047Ozs7OworRkEyNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyNztMbzswO0w7Ozs7O047Ozs7OworRkEyODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyODtMbzswO0w7Ozs7O047Ozs7OworRkEyOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyOTtMbzswO0w7Ozs7O047Ozs7OworRkEyQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyQTtMbzswO0w7OThFRjs7OztOOzs7OzsKK0ZBMkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMkI7TG87MDtMOzk4RkM7Ozs7Tjs7Ozs7CitGQTJDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTJDO0xvOzA7TDs5OTI4Ozs7O047Ozs7OworRkEyRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyRDtMbzswO0w7OURCNDs7OztOOzs7OzsKK0ZBMzA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMzA7TG87MDtMOzRGQUU7Ozs7Tjs7Ozs7CitGQTMxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTMxO0xvOzA7TDs1MEU3Ozs7O047Ozs7OworRkEzMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEzMjtMbzswO0w7NTE0RDs7OztOOzs7OzsKK0ZBMzM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMzM7TG87MDtMOzUyQzk7Ozs7Tjs7Ozs7CitGQTM0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTM0O0xvOzA7TDs1MkU0Ozs7O047Ozs7OworRkEzNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEzNTtMbzswO0w7NTM1MTs7OztOOzs7OzsKK0ZBMzY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMzY7TG87MDtMOzU1OUQ7Ozs7Tjs7Ozs7CitGQTM3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTM3O0xvOzA7TDs1NjA2Ozs7O047Ozs7OworRkEzODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEzODtMbzswO0w7NTY2ODs7OztOOzs7OzsKK0ZBMzk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMzk7TG87MDtMOzU4NDA7Ozs7Tjs7Ozs7CitGQTNBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTNBO0xvOzA7TDs1OEE4Ozs7O047Ozs7OworRkEzQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEzQjtMbzswO0w7NUM2NDs7OztOOzs7OzsKK0ZBM0M7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBM0M7TG87MDtMOzVDNkU7Ozs7Tjs7Ozs7CitGQTNEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTNEO0xvOzA7TDs2MDk0Ozs7O047Ozs7OworRkEzRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEzRTtMbzswO0w7NjE2ODs7OztOOzs7OzsKK0ZBM0Y7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBM0Y7TG87MDtMOzYxOEU7Ozs7Tjs7Ozs7CitGQTQwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTQwO0xvOzA7TDs2MUYyOzs7O047Ozs7OworRkE0MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE0MTtMbzswO0w7NjU0Rjs7OztOOzs7OzsKK0ZBNDI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNDI7TG87MDtMOzY1RTI7Ozs7Tjs7Ozs7CitGQTQzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTQzO0xvOzA7TDs2NjkxOzs7O047Ozs7OworRkE0NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE0NDtMbzswO0w7Njg4NTs7OztOOzs7OzsKK0ZBNDU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNDU7TG87MDtMOzZENzc7Ozs7Tjs7Ozs7CitGQTQ2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTQ2O0xvOzA7TDs2RTFBOzs7O047Ozs7OworRkE0NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE0NztMbzswO0w7NkYyMjs7OztOOzs7OzsKK0ZBNDg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNDg7TG87MDtMOzcxNkU7Ozs7Tjs7Ozs7CitGQTQ5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTQ5O0xvOzA7TDs3MjJCOzs7O047Ozs7OworRkE0QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE0QTtMbzswO0w7NzQyMjs7OztOOzs7OzsKK0ZBNEI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNEI7TG87MDtMOzc4OTE7Ozs7Tjs7Ozs7CitGQTRDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTRDO0xvOzA7TDs3OTNFOzs7O047Ozs7OworRkE0RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE0RDtMbzswO0w7Nzk0OTs7OztOOzs7OzsKK0ZBNEU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNEU7TG87MDtMOzc5NDg7Ozs7Tjs7Ozs7CitGQTRGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTRGO0xvOzA7TDs3OTUwOzs7O047Ozs7OworRkE1MDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE1MDtMbzswO0w7Nzk1Njs7OztOOzs7OzsKK0ZBNTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNTE7TG87MDtMOzc5NUQ7Ozs7Tjs7Ozs7CitGQTUyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTUyO0xvOzA7TDs3OThEOzs7O047Ozs7OworRkE1MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE1MztMbzswO0w7Nzk4RTs7OztOOzs7OzsKK0ZBNTQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNTQ7TG87MDtMOzdBNDA7Ozs7Tjs7Ozs7CitGQTU1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTU1O0xvOzA7TDs3QTgxOzs7O047Ozs7OworRkE1NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE1NjtMbzswO0w7N0JDMDs7OztOOzs7OzsKK0ZBNTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNTc7TG87MDtMOzdERjQ7Ozs7Tjs7Ozs7CitGQTU4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTU4O0xvOzA7TDs3RTA5Ozs7O047Ozs7OworRkE1OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE1OTtMbzswO0w7N0U0MTs7OztOOzs7OzsKK0ZBNUE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNUE7TG87MDtMOzdGNzI7Ozs7Tjs7Ozs7CitGQTVCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTVCO0xvOzA7TDs4MDA1Ozs7O047Ozs7OworRkE1QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE1QztMbzswO0w7ODFFRDs7OztOOzs7OzsKK0ZBNUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNUQ7TG87MDtMOzgyNzk7Ozs7Tjs7Ozs7CitGQTVFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTVFO0xvOzA7TDs4Mjc5Ozs7O047Ozs7OworRkE1RjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE1RjtMbzswO0w7ODQ1Nzs7OztOOzs7OzsKK0ZBNjA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNjA7TG87MDtMOzg5MTA7Ozs7Tjs7Ozs7CitGQTYxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTYxO0xvOzA7TDs4OTk2Ozs7O047Ozs7OworRkE2MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE2MjtMbzswO0w7OEIwMTs7OztOOzs7OzsKK0ZBNjM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNjM7TG87MDtMOzhCMzk7Ozs7Tjs7Ozs7CitGQTY0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTY0O0xvOzA7TDs4Q0QzOzs7O047Ozs7OworRkE2NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE2NTtMbzswO0w7OEQwODs7OztOOzs7OzsKK0ZBNjY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNjY7TG87MDtMOzhGQjY7Ozs7Tjs7Ozs7CitGQTY3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTY3O0xvOzA7TDs5MDM4Ozs7O047Ozs7OworRkE2ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE2ODtMbzswO0w7OTZFMzs7OztOOzs7OzsKK0ZBNjk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNjk7TG87MDtMOzk3RkY7Ozs7Tjs7Ozs7CitGQTZBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTZBO0xvOzA7TDs5ODNCOzs7O047Ozs7OworRkIwMDtMQVRJTiBTTUFMTCBMSUdBVFVSRSBGRjtMbDswO0w7PGNvbXBhdD4gMDA2NiAwMDY2Ozs7O047Ozs7OworRkIwMTtMQVRJTiBTTUFMTCBMSUdBVFVSRSBGSTtMbDswO0w7PGNvbXBhdD4gMDA2NiAwMDY5Ozs7O047Ozs7OworRkIwMjtMQVRJTiBTTUFMTCBMSUdBVFVSRSBGTDtMbDswO0w7PGNvbXBhdD4gMDA2NiAwMDZDOzs7O047Ozs7OworRkIwMztMQVRJTiBTTUFMTCBMSUdBVFVSRSBGRkk7TGw7MDtMOzxjb21wYXQ+IDAwNjYgMDA2NiAwMDY5Ozs7O047Ozs7OworRkIwNDtMQVRJTiBTTUFMTCBMSUdBVFVSRSBGRkw7TGw7MDtMOzxjb21wYXQ+IDAwNjYgMDA2NiAwMDZDOzs7O047Ozs7OworRkIwNTtMQVRJTiBTTUFMTCBMSUdBVFVSRSBMT05HIFMgVDtMbDswO0w7PGNvbXBhdD4gMDE3RiAwMDc0Ozs7O047Ozs7OworRkIwNjtMQVRJTiBTTUFMTCBMSUdBVFVSRSBTVDtMbDswO0w7PGNvbXBhdD4gMDA3MyAwMDc0Ozs7O047Ozs7OworRkIxMztBUk1FTklBTiBTTUFMTCBMSUdBVFVSRSBNRU4gTk9XO0xsOzA7TDs8Y29tcGF0PiAwNTc0IDA1NzY7Ozs7Tjs7Ozs7CitGQjE0O0FSTUVOSUFOIFNNQUxMIExJR0FUVVJFIE1FTiBFQ0g7TGw7MDtMOzxjb21wYXQ+IDA1NzQgMDU2NTs7OztOOzs7OzsKK0ZCMTU7QVJNRU5JQU4gU01BTEwgTElHQVRVUkUgTUVOIElOSTtMbDswO0w7PGNvbXBhdD4gMDU3NCAwNTZCOzs7O047Ozs7OworRkIxNjtBUk1FTklBTiBTTUFMTCBMSUdBVFVSRSBWRVcgTk9XO0xsOzA7TDs8Y29tcGF0PiAwNTdFIDA1NzY7Ozs7Tjs7Ozs7CitGQjE3O0FSTUVOSUFOIFNNQUxMIExJR0FUVVJFIE1FTiBYRUg7TGw7MDtMOzxjb21wYXQ+IDA1NzQgMDU2RDs7OztOOzs7OzsKK0ZCMUQ7SEVCUkVXIExFVFRFUiBZT0QgV0lUSCBISVJJUTtMbzswO1I7MDVEOSAwNUI0Ozs7O047Ozs7OworRkIxRTtIRUJSRVcgUE9JTlQgSlVERU8tU1BBTklTSCBWQVJJS0E7TW47MjY7TlNNOzs7OztOO0hFQlJFVyBQT0lOVCBWQVJJS0E7Ozs7CitGQjFGO0hFQlJFVyBMSUdBVFVSRSBZSURESVNIIFlPRCBZT0QgUEFUQUg7TG87MDtSOzA1RjIgMDVCNzs7OztOOzs7OzsKK0ZCMjA7SEVCUkVXIExFVFRFUiBBTFRFUk5BVElWRSBBWUlOO0xvOzA7Ujs8Zm9udD4gMDVFMjs7OztOOzs7OzsKK0ZCMjE7SEVCUkVXIExFVFRFUiBXSURFIEFMRUY7TG87MDtSOzxmb250PiAwNUQwOzs7O047Ozs7OworRkIyMjtIRUJSRVcgTEVUVEVSIFdJREUgREFMRVQ7TG87MDtSOzxmb250PiAwNUQzOzs7O047Ozs7OworRkIyMztIRUJSRVcgTEVUVEVSIFdJREUgSEU7TG87MDtSOzxmb250PiAwNUQ0Ozs7O047Ozs7OworRkIyNDtIRUJSRVcgTEVUVEVSIFdJREUgS0FGO0xvOzA7Ujs8Zm9udD4gMDVEQjs7OztOOzs7OzsKK0ZCMjU7SEVCUkVXIExFVFRFUiBXSURFIExBTUVEO0xvOzA7Ujs8Zm9udD4gMDVEQzs7OztOOzs7OzsKK0ZCMjY7SEVCUkVXIExFVFRFUiBXSURFIEZJTkFMIE1FTTtMbzswO1I7PGZvbnQ+IDA1REQ7Ozs7Tjs7Ozs7CitGQjI3O0hFQlJFVyBMRVRURVIgV0lERSBSRVNIO0xvOzA7Ujs8Zm9udD4gMDVFODs7OztOOzs7OzsKK0ZCMjg7SEVCUkVXIExFVFRFUiBXSURFIFRBVjtMbzswO1I7PGZvbnQ+IDA1RUE7Ozs7Tjs7Ozs7CitGQjI5O0hFQlJFVyBMRVRURVIgQUxURVJOQVRJVkUgUExVUyBTSUdOO1NtOzA7RVQ7PGZvbnQ+IDAwMkI7Ozs7Tjs7Ozs7CitGQjJBO0hFQlJFVyBMRVRURVIgU0hJTiBXSVRIIFNISU4gRE9UO0xvOzA7UjswNUU5IDA1QzE7Ozs7Tjs7Ozs7CitGQjJCO0hFQlJFVyBMRVRURVIgU0hJTiBXSVRIIFNJTiBET1Q7TG87MDtSOzA1RTkgMDVDMjs7OztOOzs7OzsKK0ZCMkM7SEVCUkVXIExFVFRFUiBTSElOIFdJVEggREFHRVNIIEFORCBTSElOIERPVDtMbzswO1I7RkI0OSAwNUMxOzs7O047Ozs7OworRkIyRDtIRUJSRVcgTEVUVEVSIFNISU4gV0lUSCBEQUdFU0ggQU5EIFNJTiBET1Q7TG87MDtSO0ZCNDkgMDVDMjs7OztOOzs7OzsKK0ZCMkU7SEVCUkVXIExFVFRFUiBBTEVGIFdJVEggUEFUQUg7TG87MDtSOzA1RDAgMDVCNzs7OztOOzs7OzsKK0ZCMkY7SEVCUkVXIExFVFRFUiBBTEVGIFdJVEggUUFNQVRTO0xvOzA7UjswNUQwIDA1Qjg7Ozs7Tjs7Ozs7CitGQjMwO0hFQlJFVyBMRVRURVIgQUxFRiBXSVRIIE1BUElRO0xvOzA7UjswNUQwIDA1QkM7Ozs7Tjs7Ozs7CitGQjMxO0hFQlJFVyBMRVRURVIgQkVUIFdJVEggREFHRVNIO0xvOzA7UjswNUQxIDA1QkM7Ozs7Tjs7Ozs7CitGQjMyO0hFQlJFVyBMRVRURVIgR0lNRUwgV0lUSCBEQUdFU0g7TG87MDtSOzA1RDIgMDVCQzs7OztOOzs7OzsKK0ZCMzM7SEVCUkVXIExFVFRFUiBEQUxFVCBXSVRIIERBR0VTSDtMbzswO1I7MDVEMyAwNUJDOzs7O047Ozs7OworRkIzNDtIRUJSRVcgTEVUVEVSIEhFIFdJVEggTUFQSVE7TG87MDtSOzA1RDQgMDVCQzs7OztOOzs7OzsKK0ZCMzU7SEVCUkVXIExFVFRFUiBWQVYgV0lUSCBEQUdFU0g7TG87MDtSOzA1RDUgMDVCQzs7OztOOzs7OzsKK0ZCMzY7SEVCUkVXIExFVFRFUiBaQVlJTiBXSVRIIERBR0VTSDtMbzswO1I7MDVENiAwNUJDOzs7O047Ozs7OworRkIzODtIRUJSRVcgTEVUVEVSIFRFVCBXSVRIIERBR0VTSDtMbzswO1I7MDVEOCAwNUJDOzs7O047Ozs7OworRkIzOTtIRUJSRVcgTEVUVEVSIFlPRCBXSVRIIERBR0VTSDtMbzswO1I7MDVEOSAwNUJDOzs7O047Ozs7OworRkIzQTtIRUJSRVcgTEVUVEVSIEZJTkFMIEtBRiBXSVRIIERBR0VTSDtMbzswO1I7MDVEQSAwNUJDOzs7O047Ozs7OworRkIzQjtIRUJSRVcgTEVUVEVSIEtBRiBXSVRIIERBR0VTSDtMbzswO1I7MDVEQiAwNUJDOzs7O047Ozs7OworRkIzQztIRUJSRVcgTEVUVEVSIExBTUVEIFdJVEggREFHRVNIO0xvOzA7UjswNURDIDA1QkM7Ozs7Tjs7Ozs7CitGQjNFO0hFQlJFVyBMRVRURVIgTUVNIFdJVEggREFHRVNIO0xvOzA7UjswNURFIDA1QkM7Ozs7Tjs7Ozs7CitGQjQwO0hFQlJFVyBMRVRURVIgTlVOIFdJVEggREFHRVNIO0xvOzA7UjswNUUwIDA1QkM7Ozs7Tjs7Ozs7CitGQjQxO0hFQlJFVyBMRVRURVIgU0FNRUtIIFdJVEggREFHRVNIO0xvOzA7UjswNUUxIDA1QkM7Ozs7Tjs7Ozs7CitGQjQzO0hFQlJFVyBMRVRURVIgRklOQUwgUEUgV0lUSCBEQUdFU0g7TG87MDtSOzA1RTMgMDVCQzs7OztOOzs7OzsKK0ZCNDQ7SEVCUkVXIExFVFRFUiBQRSBXSVRIIERBR0VTSDtMbzswO1I7MDVFNCAwNUJDOzs7O047Ozs7OworRkI0NjtIRUJSRVcgTEVUVEVSIFRTQURJIFdJVEggREFHRVNIO0xvOzA7UjswNUU2IDA1QkM7Ozs7Tjs7Ozs7CitGQjQ3O0hFQlJFVyBMRVRURVIgUU9GIFdJVEggREFHRVNIO0xvOzA7UjswNUU3IDA1QkM7Ozs7Tjs7Ozs7CitGQjQ4O0hFQlJFVyBMRVRURVIgUkVTSCBXSVRIIERBR0VTSDtMbzswO1I7MDVFOCAwNUJDOzs7O047Ozs7OworRkI0OTtIRUJSRVcgTEVUVEVSIFNISU4gV0lUSCBEQUdFU0g7TG87MDtSOzA1RTkgMDVCQzs7OztOOzs7OzsKK0ZCNEE7SEVCUkVXIExFVFRFUiBUQVYgV0lUSCBEQUdFU0g7TG87MDtSOzA1RUEgMDVCQzs7OztOOzs7OzsKK0ZCNEI7SEVCUkVXIExFVFRFUiBWQVYgV0lUSCBIT0xBTTtMbzswO1I7MDVENSAwNUI5Ozs7O047Ozs7OworRkI0QztIRUJSRVcgTEVUVEVSIEJFVCBXSVRIIFJBRkU7TG87MDtSOzA1RDEgMDVCRjs7OztOOzs7OzsKK0ZCNEQ7SEVCUkVXIExFVFRFUiBLQUYgV0lUSCBSQUZFO0xvOzA7UjswNURCIDA1QkY7Ozs7Tjs7Ozs7CitGQjRFO0hFQlJFVyBMRVRURVIgUEUgV0lUSCBSQUZFO0xvOzA7UjswNUU0IDA1QkY7Ozs7Tjs7Ozs7CitGQjRGO0hFQlJFVyBMSUdBVFVSRSBBTEVGIExBTUVEO0xvOzA7Ujs8Y29tcGF0PiAwNUQwIDA1REM7Ozs7Tjs7Ozs7CitGQjUwO0FSQUJJQyBMRVRURVIgQUxFRiBXQVNMQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjcxOzs7O047Ozs7OworRkI1MTtBUkFCSUMgTEVUVEVSIEFMRUYgV0FTTEEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY3MTs7OztOOzs7OzsKK0ZCNTI7QVJBQklDIExFVFRFUiBCRUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2N0I7Ozs7Tjs7Ozs7CitGQjUzO0FSQUJJQyBMRVRURVIgQkVFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjdCOzs7O047Ozs7OworRkI1NDtBUkFCSUMgTEVUVEVSIEJFRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2N0I7Ozs7Tjs7Ozs7CitGQjU1O0FSQUJJQyBMRVRURVIgQkVFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2N0I7Ozs7Tjs7Ozs7CitGQjU2O0FSQUJJQyBMRVRURVIgUEVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2N0U7Ozs7Tjs7Ozs7CitGQjU3O0FSQUJJQyBMRVRURVIgUEVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2N0U7Ozs7Tjs7Ozs7CitGQjU4O0FSQUJJQyBMRVRURVIgUEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjdFOzs7O047Ozs7OworRkI1OTtBUkFCSUMgTEVUVEVSIFBFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2N0U7Ozs7Tjs7Ozs7CitGQjVBO0FSQUJJQyBMRVRURVIgQkVIRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY4MDs7OztOOzs7OzsKK0ZCNUI7QVJBQklDIExFVFRFUiBCRUhFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjgwOzs7O047Ozs7OworRkI1QztBUkFCSUMgTEVUVEVSIEJFSEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjgwOzs7O047Ozs7OworRkI1RDtBUkFCSUMgTEVUVEVSIEJFSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY4MDs7OztOOzs7OzsKK0ZCNUU7QVJBQklDIExFVFRFUiBUVEVIRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY3QTs7OztOOzs7OzsKK0ZCNUY7QVJBQklDIExFVFRFUiBUVEVIRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY3QTs7OztOOzs7OzsKK0ZCNjA7QVJBQklDIExFVFRFUiBUVEVIRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2N0E7Ozs7Tjs7Ozs7CitGQjYxO0FSQUJJQyBMRVRURVIgVFRFSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY3QTs7OztOOzs7OzsKK0ZCNjI7QVJBQklDIExFVFRFUiBURUhFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjdGOzs7O047Ozs7OworRkI2MztBUkFCSUMgTEVUVEVSIFRFSEVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2N0Y7Ozs7Tjs7Ozs7CitGQjY0O0FSQUJJQyBMRVRURVIgVEVIRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2N0Y7Ozs7Tjs7Ozs7CitGQjY1O0FSQUJJQyBMRVRURVIgVEVIRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjdGOzs7O047Ozs7OworRkI2NjtBUkFCSUMgTEVUVEVSIFRURUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY3OTs7OztOOzs7OzsKK0ZCNjc7QVJBQklDIExFVFRFUiBUVEVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2Nzk7Ozs7Tjs7Ozs7CitGQjY4O0FSQUJJQyBMRVRURVIgVFRFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY3OTs7OztOOzs7OzsKK0ZCNjk7QVJBQklDIExFVFRFUiBUVEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY3OTs7OztOOzs7OzsKK0ZCNkE7QVJBQklDIExFVFRFUiBWRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZBNDs7OztOOzs7OzsKK0ZCNkI7QVJBQklDIExFVFRFUiBWRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZBNDs7OztOOzs7OzsKK0ZCNkM7QVJBQklDIExFVFRFUiBWRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2QTQ7Ozs7Tjs7Ozs7CitGQjZEO0FSQUJJQyBMRVRURVIgVkVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDZBNDs7OztOOzs7OzsKK0ZCNkU7QVJBQklDIExFVFRFUiBQRUhFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkE2Ozs7O047Ozs7OworRkI2RjtBUkFCSUMgTEVUVEVSIFBFSEVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2QTY7Ozs7Tjs7Ozs7CitGQjcwO0FSQUJJQyBMRVRURVIgUEVIRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2QTY7Ozs7Tjs7Ozs7CitGQjcxO0FSQUJJQyBMRVRURVIgUEVIRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNkE2Ozs7O047Ozs7OworRkI3MjtBUkFCSUMgTEVUVEVSIERZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY4NDs7OztOOzs7OzsKK0ZCNzM7QVJBQklDIExFVFRFUiBEWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2ODQ7Ozs7Tjs7Ozs7CitGQjc0O0FSQUJJQyBMRVRURVIgRFlFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY4NDs7OztOOzs7OzsKK0ZCNzU7QVJBQklDIExFVFRFUiBEWUVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY4NDs7OztOOzs7OzsKK0ZCNzY7QVJBQklDIExFVFRFUiBOWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2ODM7Ozs7Tjs7Ozs7CitGQjc3O0FSQUJJQyBMRVRURVIgTllFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjgzOzs7O047Ozs7OworRkI3ODtBUkFCSUMgTEVUVEVSIE5ZRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2ODM7Ozs7Tjs7Ozs7CitGQjc5O0FSQUJJQyBMRVRURVIgTllFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2ODM7Ozs7Tjs7Ozs7CitGQjdBO0FSQUJJQyBMRVRURVIgVENIRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY4Njs7OztOOzs7OzsKK0ZCN0I7QVJBQklDIExFVFRFUiBUQ0hFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjg2Ozs7O047Ozs7OworRkI3QztBUkFCSUMgTEVUVEVSIFRDSEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjg2Ozs7O047Ozs7OworRkI3RDtBUkFCSUMgTEVUVEVSIFRDSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY4Njs7OztOOzs7OzsKK0ZCN0U7QVJBQklDIExFVFRFUiBUQ0hFSEVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2ODc7Ozs7Tjs7Ozs7CitGQjdGO0FSQUJJQyBMRVRURVIgVENIRUhFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjg3Ozs7O047Ozs7OworRkI4MDtBUkFCSUMgTEVUVEVSIFRDSEVIRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2ODc7Ozs7Tjs7Ozs7CitGQjgxO0FSQUJJQyBMRVRURVIgVENIRUhFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2ODc7Ozs7Tjs7Ozs7CitGQjgyO0FSQUJJQyBMRVRURVIgRERBSEFMIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2OEQ7Ozs7Tjs7Ozs7CitGQjgzO0FSQUJJQyBMRVRURVIgRERBSEFMIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2OEQ7Ozs7Tjs7Ozs7CitGQjg0O0FSQUJJQyBMRVRURVIgREFIQUwgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY4Qzs7OztOOzs7OzsKK0ZCODU7QVJBQklDIExFVFRFUiBEQUhBTCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjhDOzs7O047Ozs7OworRkI4NjtBUkFCSUMgTEVUVEVSIERVTCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjhFOzs7O047Ozs7OworRkI4NztBUkFCSUMgTEVUVEVSIERVTCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjhFOzs7O047Ozs7OworRkI4ODtBUkFCSUMgTEVUVEVSIEREQUwgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY4ODs7OztOOzs7OzsKK0ZCODk7QVJBQklDIExFVFRFUiBEREFMIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2ODg7Ozs7Tjs7Ozs7CitGQjhBO0FSQUJJQyBMRVRURVIgSkVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2OTg7Ozs7Tjs7Ozs7CitGQjhCO0FSQUJJQyBMRVRURVIgSkVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2OTg7Ozs7Tjs7Ozs7CitGQjhDO0FSQUJJQyBMRVRURVIgUlJFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjkxOzs7O047Ozs7OworRkI4RDtBUkFCSUMgTEVUVEVSIFJSRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY5MTs7OztOOzs7OzsKK0ZCOEU7QVJBQklDIExFVFRFUiBLRUhFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkE5Ozs7O047Ozs7OworRkI4RjtBUkFCSUMgTEVUVEVSIEtFSEVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2QTk7Ozs7Tjs7Ozs7CitGQjkwO0FSQUJJQyBMRVRURVIgS0VIRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2QTk7Ozs7Tjs7Ozs7CitGQjkxO0FSQUJJQyBMRVRURVIgS0VIRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNkE5Ozs7O047Ozs7OworRkI5MjtBUkFCSUMgTEVUVEVSIEdBRiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkFGOzs7O047Ozs7OworRkI5MztBUkFCSUMgTEVUVEVSIEdBRiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkFGOzs7O047Ozs7OworRkI5NDtBUkFCSUMgTEVUVEVSIEdBRiBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDZBRjs7OztOOzs7OzsKK0ZCOTU7QVJBQklDIExFVFRFUiBHQUYgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNkFGOzs7O047Ozs7OworRkI5NjtBUkFCSUMgTEVUVEVSIEdVRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZCMzs7OztOOzs7OzsKK0ZCOTc7QVJBQklDIExFVFRFUiBHVUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2QjM7Ozs7Tjs7Ozs7CitGQjk4O0FSQUJJQyBMRVRURVIgR1VFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDZCMzs7OztOOzs7OzsKK0ZCOTk7QVJBQklDIExFVFRFUiBHVUVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDZCMzs7OztOOzs7OzsKK0ZCOUE7QVJBQklDIExFVFRFUiBOR09FSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkIxOzs7O047Ozs7OworRkI5QjtBUkFCSUMgTEVUVEVSIE5HT0VIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2QjE7Ozs7Tjs7Ozs7CitGQjlDO0FSQUJJQyBMRVRURVIgTkdPRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2QjE7Ozs7Tjs7Ozs7CitGQjlEO0FSQUJJQyBMRVRURVIgTkdPRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNkIxOzs7O047Ozs7OworRkI5RTtBUkFCSUMgTEVUVEVSIE5PT04gR0hVTk5BIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2QkE7Ozs7Tjs7Ozs7CitGQjlGO0FSQUJJQyBMRVRURVIgTk9PTiBHSFVOTkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZCQTs7OztOOzs7OzsKK0ZCQTA7QVJBQklDIExFVFRFUiBSTk9PTiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkJCOzs7O047Ozs7OworRkJBMTtBUkFCSUMgTEVUVEVSIFJOT09OIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2QkI7Ozs7Tjs7Ozs7CitGQkEyO0FSQUJJQyBMRVRURVIgUk5PT04gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2QkI7Ozs7Tjs7Ozs7CitGQkEzO0FSQUJJQyBMRVRURVIgUk5PT04gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNkJCOzs7O047Ozs7OworRkJBNDtBUkFCSUMgTEVUVEVSIEhFSCBXSVRIIFlFSCBBQk9WRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkMwOzs7O047Ozs7OworRkJBNTtBUkFCSUMgTEVUVEVSIEhFSCBXSVRIIFlFSCBBQk9WRSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkMwOzs7O047Ozs7OworRkJBNjtBUkFCSUMgTEVUVEVSIEhFSCBHT0FMIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2QzE7Ozs7Tjs7Ozs7CitGQkE3O0FSQUJJQyBMRVRURVIgSEVIIEdPQUwgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZDMTs7OztOOzs7OzsKK0ZCQTg7QVJBQklDIExFVFRFUiBIRUggR09BTCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDZDMTs7OztOOzs7OzsKK0ZCQTk7QVJBQklDIExFVFRFUiBIRUggR09BTCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2QzE7Ozs7Tjs7Ozs7CitGQkFBO0FSQUJJQyBMRVRURVIgSEVIIERPQUNIQVNITUVFIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2QkU7Ozs7Tjs7Ozs7CitGQkFCO0FSQUJJQyBMRVRURVIgSEVIIERPQUNIQVNITUVFIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2QkU7Ozs7Tjs7Ozs7CitGQkFDO0FSQUJJQyBMRVRURVIgSEVIIERPQUNIQVNITUVFIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNkJFOzs7O047Ozs7OworRkJBRDtBUkFCSUMgTEVUVEVSIEhFSCBET0FDSEFTSE1FRSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2QkU7Ozs7Tjs7Ozs7CitGQkFFO0FSQUJJQyBMRVRURVIgWUVIIEJBUlJFRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkQyOzs7O047Ozs7OworRkJBRjtBUkFCSUMgTEVUVEVSIFlFSCBCQVJSRUUgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZEMjs7OztOOzs7OzsKK0ZCQjA7QVJBQklDIExFVFRFUiBZRUggQkFSUkVFIFdJVEggSEFNWkEgQUJPVkUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZEMzs7OztOOzs7OzsKK0ZCQjE7QVJBQklDIExFVFRFUiBZRUggQkFSUkVFIFdJVEggSEFNWkEgQUJPVkUgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZEMzs7OztOOzs7OzsKK0ZCRDM7QVJBQklDIExFVFRFUiBORyBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkFEOzs7O047Ozs7OworRkJENDtBUkFCSUMgTEVUVEVSIE5HIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2QUQ7Ozs7Tjs7Ozs7CitGQkQ1O0FSQUJJQyBMRVRURVIgTkcgSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2QUQ7Ozs7Tjs7Ozs7CitGQkQ2O0FSQUJJQyBMRVRURVIgTkcgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNkFEOzs7O047Ozs7OworRkJENztBUkFCSUMgTEVUVEVSIFUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZDNzs7OztOOzs7OzsKK0ZCRDg7QVJBQklDIExFVFRFUiBVIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2Qzc7Ozs7Tjs7Ozs7CitGQkQ5O0FSQUJJQyBMRVRURVIgT0UgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZDNjs7OztOOzs7OzsKK0ZCREE7QVJBQklDIExFVFRFUiBPRSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkM2Ozs7O047Ozs7OworRkJEQjtBUkFCSUMgTEVUVEVSIFlVIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2Qzg7Ozs7Tjs7Ozs7CitGQkRDO0FSQUJJQyBMRVRURVIgWVUgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZDODs7OztOOzs7OzsKK0ZCREQ7QVJBQklDIExFVFRFUiBVIFdJVEggSEFNWkEgQUJPVkUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY3Nzs7OztOOzs7OzsKK0ZCREU7QVJBQklDIExFVFRFUiBWRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkNCOzs7O047Ozs7OworRkJERjtBUkFCSUMgTEVUVEVSIFZFIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2Q0I7Ozs7Tjs7Ozs7CitGQkUwO0FSQUJJQyBMRVRURVIgS0lSR0hJWiBPRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkM1Ozs7O047Ozs7OworRkJFMTtBUkFCSUMgTEVUVEVSIEtJUkdISVogT0UgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZDNTs7OztOOzs7OzsKK0ZCRTI7QVJBQklDIExFVFRFUiBLSVJHSElaIFlVIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2Qzk7Ozs7Tjs7Ozs7CitGQkUzO0FSQUJJQyBMRVRURVIgS0lSR0hJWiBZVSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkM5Ozs7O047Ozs7OworRkJFNDtBUkFCSUMgTEVUVEVSIEUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZEMDs7OztOOzs7OzsKK0ZCRTU7QVJBQklDIExFVFRFUiBFIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2RDA7Ozs7Tjs7Ozs7CitGQkU2O0FSQUJJQyBMRVRURVIgRSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDZEMDs7OztOOzs7OzsKK0ZCRTc7QVJBQklDIExFVFRFUiBFIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDZEMDs7OztOOzs7OzsKK0ZCRTg7QVJBQklDIExFVFRFUiBVSUdIVVIgS0FaQUtIIEtJUkdISVogQUxFRiBNQUtTVVJBIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ5Ozs7O047Ozs7OworRkJFOTtBUkFCSUMgTEVUVEVSIFVJR0hVUiBLQVpBS0ggS0lSR0hJWiBBTEVGIE1BS1NVUkEgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQ5Ozs7O047Ozs7OworRkJFQTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBBTEVGIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjYgMDYyNzs7OztOOzs7OzsKK0ZCRUI7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggQUxFRiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI2IDA2Mjc7Ozs7Tjs7Ozs7CitGQkVDO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEFFIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjYgMDZENTs7OztOOzs7OzsKK0ZCRUQ7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggQUUgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNiAwNkQ1Ozs7O047Ozs7OworRkJFRTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBXQVcgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyNiAwNjQ4Ozs7O047Ozs7OworRkJFRjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBXQVcgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNiAwNjQ4Ozs7O047Ozs7OworRkJGMDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBVIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjYgMDZDNzs7OztOOzs7OzsKK0ZCRjE7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggVSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI2IDA2Qzc7Ozs7Tjs7Ozs7CitGQkYyO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIE9FIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjYgMDZDNjs7OztOOzs7OzsKK0ZCRjM7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggT0UgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNiAwNkM2Ozs7O047Ozs7OworRkJGNDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBZVSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI2IDA2Qzg7Ozs7Tjs7Ozs7CitGQkY1O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIFlVIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjYgMDZDODs7OztOOzs7OzsKK0ZCRjY7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI2IDA2RDA7Ozs7Tjs7Ozs7CitGQkY3O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEUgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNiAwNkQwOzs7O047Ozs7OworRkJGODtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBFIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjI2IDA2RDA7Ozs7Tjs7Ozs7CitGQkY5O0FSQUJJQyBMSUdBVFVSRSBVSUdIVVIgS0lSR0hJWiBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI2IDA2NDk7Ozs7Tjs7Ozs7CitGQkZBO0FSQUJJQyBMSUdBVFVSRSBVSUdIVVIgS0lSR0hJWiBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI2IDA2NDk7Ozs7Tjs7Ozs7CitGQkZCO0FSQUJJQyBMSUdBVFVSRSBVSUdIVVIgS0lSR0hJWiBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEFMRUYgTUFLU1VSQSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyNiAwNjQ5Ozs7O047Ozs7OworRkJGQztBUkFCSUMgTEVUVEVSIEZBUlNJIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkNDOzs7O047Ozs7OworRkJGRDtBUkFCSUMgTEVUVEVSIEZBUlNJIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkNDOzs7O047Ozs7OworRkJGRTtBUkFCSUMgTEVUVEVSIEZBUlNJIFlFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDZDQzs7OztOOzs7OzsKK0ZCRkY7QVJBQklDIExFVFRFUiBGQVJTSSBZRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNkNDOzs7O047Ozs7OworRkMwMDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjYgMDYyQzs7OztOOzs7OzsKK0ZDMDE7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjYgMDYyRDs7OztOOzs7OzsKK0ZDMDI7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI2IDA2NDU7Ozs7Tjs7Ozs7CitGQzAzO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI2IDA2NDk7Ozs7Tjs7Ozs7CitGQzA0O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI2IDA2NEE7Ozs7Tjs7Ozs7CitGQzA1O0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjggMDYyQzs7OztOOzs7OzsKK0ZDMDY7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI4IDA2MkQ7Ozs7Tjs7Ozs7CitGQzA3O0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBLSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjggMDYyRTs7OztOOzs7OzsKK0ZDMDg7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyOCAwNjQ1Ozs7O047Ozs7OworRkMwOTtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjggMDY0OTs7OztOOzs7OzsKK0ZDMEE7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI4IDA2NEE7Ozs7Tjs7Ozs7CitGQzBCO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkEgMDYyQzs7OztOOzs7OzsKK0ZDMEM7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJBIDA2MkQ7Ozs7Tjs7Ozs7CitGQzBEO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBLSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkEgMDYyRTs7OztOOzs7OzsKK0ZDMEU7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyQSAwNjQ1Ozs7O047Ozs7OworRkMwRjtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkEgMDY0OTs7OztOOzs7OzsKK0ZDMTA7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJBIDA2NEE7Ozs7Tjs7Ozs7CitGQzExO0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJCIDA2MkM7Ozs7Tjs7Ozs7CitGQzEyO0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJCIDA2NDU7Ozs7Tjs7Ozs7CitGQzEzO0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkIgMDY0OTs7OztOOzs7OzsKK0ZDMTQ7QVJBQklDIExJR0FUVVJFIFRIRUggV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyQiAwNjRBOzs7O047Ozs7OworRkMxNTtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJDIDA2MkQ7Ozs7Tjs7Ozs7CitGQzE2O0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJDIDA2NDU7Ozs7Tjs7Ozs7CitGQzE3O0FSQUJJQyBMSUdBVFVSRSBIQUggV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkQgMDYyQzs7OztOOzs7OzsKK0ZDMTg7QVJBQklDIExJR0FUVVJFIEhBSCBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyRCAwNjQ1Ozs7O047Ozs7OworRkMxOTtBUkFCSUMgTElHQVRVUkUgS0hBSCBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyRSAwNjJDOzs7O047Ozs7OworRkMxQTtBUkFCSUMgTElHQVRVUkUgS0hBSCBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJFIDA2MkQ7Ozs7Tjs7Ozs7CitGQzFCO0FSQUJJQyBMSUdBVFVSRSBLSEFIIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJFIDA2NDU7Ozs7Tjs7Ozs7CitGQzFDO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjMzIDA2MkM7Ozs7Tjs7Ozs7CitGQzFEO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzMgMDYyRDs7OztOOzs7OzsKK0ZDMUU7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBLSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzMgMDYyRTs7OztOOzs7OzsKK0ZDMUY7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzMgMDY0NTs7OztOOzs7OzsKK0ZDMjA7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM1IDA2MkQ7Ozs7Tjs7Ozs7CitGQzIxO0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzUgMDY0NTs7OztOOzs7OzsKK0ZDMjI7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNiAwNjJDOzs7O047Ozs7OworRkMyMztBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzYgMDYyRDs7OztOOzs7OzsKK0ZDMjQ7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEtIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNiAwNjJFOzs7O047Ozs7OworRkMyNTtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM2IDA2NDU7Ozs7Tjs7Ozs7CitGQzI2O0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNyAwNjJEOzs7O047Ozs7OworRkMyNztBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM3IDA2NDU7Ozs7Tjs7Ozs7CitGQzI4O0FSQUJJQyBMSUdBVFVSRSBaQUggV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzggMDY0NTs7OztOOzs7OzsKK0ZDMjk7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzOSAwNjJDOzs7O047Ozs7OworRkMyQTtBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM5IDA2NDU7Ozs7Tjs7Ozs7CitGQzJCO0FSQUJJQyBMSUdBVFVSRSBHSEFJTiBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzQSAwNjJDOzs7O047Ozs7OworRkMyQztBUkFCSUMgTElHQVRVUkUgR0hBSU4gV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2M0EgMDY0NTs7OztOOzs7OzsKK0ZDMkQ7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MSAwNjJDOzs7O047Ozs7OworRkMyRTtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDEgMDYyRDs7OztOOzs7OzsKK0ZDMkY7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIEtIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MSAwNjJFOzs7O047Ozs7OworRkMzMDtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQxIDA2NDU7Ozs7Tjs7Ozs7CitGQzMxO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MSAwNjQ5Ozs7O047Ozs7OworRkMzMjtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDEgMDY0QTs7OztOOzs7OzsKK0ZDMzM7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQyIDA2MkQ7Ozs7Tjs7Ozs7CitGQzM0O0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDIgMDY0NTs7OztOOzs7OzsKK0ZDMzU7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQyIDA2NDk7Ozs7Tjs7Ozs7CitGQzM2O0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MiAwNjRBOzs7O047Ozs7OworRkMzNztBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggQUxFRiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQzIDA2Mjc7Ozs7Tjs7Ozs7CitGQzM4O0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDMgMDYyQzs7OztOOzs7OzsKK0ZDMzk7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQzIDA2MkQ7Ozs7Tjs7Ozs7CitGQzNBO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBLSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDMgMDYyRTs7OztOOzs7OzsKK0ZDM0I7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIExBTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQzIDA2NDQ7Ozs7Tjs7Ozs7CitGQzNDO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDMgMDY0NTs7OztOOzs7OzsKK0ZDM0Q7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQzIDA2NDk7Ozs7Tjs7Ozs7CitGQzNFO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MyAwNjRBOzs7O047Ozs7OworRkMzRjtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ0IDA2MkM7Ozs7Tjs7Ozs7CitGQzQwO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NCAwNjJEOzs7O047Ozs7OworRkM0MTtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ0IDA2MkU7Ozs7Tjs7Ozs7CitGQzQyO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDQgMDY0NTs7OztOOzs7OzsKK0ZDNDM7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ0IDA2NDk7Ozs7Tjs7Ozs7CitGQzQ0O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NCAwNjRBOzs7O047Ozs7OworRkM0NTtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NSAwNjJDOzs7O047Ozs7OworRkM0NjtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGQzQ3O0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ1IDA2MkU7Ozs7Tjs7Ozs7CitGQzQ4O0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGQzQ5O0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDUgMDY0OTs7OztOOzs7OzsKK0ZDNEE7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NSAwNjRBOzs7O047Ozs7OworRkM0QjtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NiAwNjJDOzs7O047Ozs7OworRkM0QztBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ2IDA2MkQ7Ozs7Tjs7Ozs7CitGQzREO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ2IDA2MkU7Ozs7Tjs7Ozs7CitGQzRFO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ2IDA2NDU7Ozs7Tjs7Ozs7CitGQzRGO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDYgMDY0OTs7OztOOzs7OzsKK0ZDNTA7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NiAwNjRBOzs7O047Ozs7OworRkM1MTtBUkFCSUMgTElHQVRVUkUgSEVIIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ3IDA2MkM7Ozs7Tjs7Ozs7CitGQzUyO0FSQUJJQyBMSUdBVFVSRSBIRUggV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDcgMDY0NTs7OztOOzs7OzsKK0ZDNTM7QVJBQklDIExJR0FUVVJFIEhFSCBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ3IDA2NDk7Ozs7Tjs7Ozs7CitGQzU0O0FSQUJJQyBMSUdBVFVSRSBIRUggV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NyAwNjRBOzs7O047Ozs7OworRkM1NTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjRBIDA2MkM7Ozs7Tjs7Ozs7CitGQzU2O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0QSAwNjJEOzs7O047Ozs7OworRkM1NztBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjRBIDA2MkU7Ozs7Tjs7Ozs7CitGQzU4O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NEEgMDY0NTs7OztOOzs7OzsKK0ZDNTk7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjRBIDA2NDk7Ozs7Tjs7Ozs7CitGQzVBO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0QSAwNjRBOzs7O047Ozs7OworRkM1QjtBUkFCSUMgTElHQVRVUkUgVEhBTCBXSVRIIFNVUEVSU0NSSVBUIEFMRUYgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzMCAwNjcwOzs7O047Ozs7OworRkM1QztBUkFCSUMgTElHQVRVUkUgUkVIIFdJVEggU1VQRVJTQ1JJUFQgQUxFRiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjMxIDA2NzA7Ozs7Tjs7Ozs7CitGQzVEO0FSQUJJQyBMSUdBVFVSRSBBTEVGIE1BS1NVUkEgV0lUSCBTVVBFUlNDUklQVCBBTEVGIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDkgMDY3MDs7OztOOzs7OzsKK0ZDNUU7QVJBQklDIExJR0FUVVJFIFNIQUREQSBXSVRIIERBTU1BVEFOIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDAwMjAgMDY0QyAwNjUxOzs7O047Ozs7OworRkM1RjtBUkFCSUMgTElHQVRVUkUgU0hBRERBIFdJVEggS0FTUkFUQU4gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDAyMCAwNjREIDA2NTE7Ozs7Tjs7Ozs7CitGQzYwO0FSQUJJQyBMSUdBVFVSRSBTSEFEREEgV0lUSCBGQVRIQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwMDIwIDA2NEUgMDY1MTs7OztOOzs7OzsKK0ZDNjE7QVJBQklDIExJR0FUVVJFIFNIQUREQSBXSVRIIERBTU1BIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDAwMjAgMDY0RiAwNjUxOzs7O047Ozs7OworRkM2MjtBUkFCSUMgTElHQVRVUkUgU0hBRERBIFdJVEggS0FTUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDAyMCAwNjUwIDA2NTE7Ozs7Tjs7Ozs7CitGQzYzO0FSQUJJQyBMSUdBVFVSRSBTSEFEREEgV0lUSCBTVVBFUlNDUklQVCBBTEVGIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDAwMjAgMDY1MSAwNjcwOzs7O047Ozs7OworRkM2NDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBSRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNiAwNjMxOzs7O047Ozs7OworRkM2NTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBaQUlOIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjYgMDYzMjs7OztOOzs7OzsKK0ZDNjY7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI2IDA2NDU7Ozs7Tjs7Ozs7CitGQzY3O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIE5PT04gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNiAwNjQ2Ozs7O047Ozs7OworRkM2ODtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNiAwNjQ5Ozs7O047Ozs7OworRkM2OTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNiAwNjRBOzs7O047Ozs7OworRkM2QTtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggUkVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjggMDYzMTs7OztOOzs7OzsKK0ZDNkI7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIFpBSU4gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyOCAwNjMyOzs7O047Ozs7OworRkM2QztBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI4IDA2NDU7Ozs7Tjs7Ozs7CitGQzZEO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBOT09OIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjggMDY0Njs7OztOOzs7OzsKK0ZDNkU7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI4IDA2NDk7Ozs7Tjs7Ozs7CitGQzZGO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyOCAwNjRBOzs7O047Ozs7OworRkM3MDtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggUkVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkEgMDYzMTs7OztOOzs7OzsKK0ZDNzE7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIFpBSU4gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQSAwNjMyOzs7O047Ozs7OworRkM3MjtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJBIDA2NDU7Ozs7Tjs7Ozs7CitGQzczO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBOT09OIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkEgMDY0Njs7OztOOzs7OzsKK0ZDNzQ7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJBIDA2NDk7Ozs7Tjs7Ozs7CitGQzc1O0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQSAwNjRBOzs7O047Ozs7OworRkM3NjtBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIFJFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJCIDA2MzE7Ozs7Tjs7Ozs7CitGQzc3O0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggWkFJTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJCIDA2MzI7Ozs7Tjs7Ozs7CitGQzc4O0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJCIDA2NDU7Ozs7Tjs7Ozs7CitGQzc5O0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggTk9PTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJCIDA2NDY7Ozs7Tjs7Ozs7CitGQzdBO0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkIgMDY0OTs7OztOOzs7OzsKK0ZDN0I7QVJBQklDIExJR0FUVVJFIFRIRUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQiAwNjRBOzs7O047Ozs7OworRkM3QztBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDEgMDY0OTs7OztOOzs7OzsKK0ZDN0Q7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQxIDA2NEE7Ozs7Tjs7Ozs7CitGQzdFO0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0MiAwNjQ5Ozs7O047Ozs7OworRkM3RjtBUkFCSUMgTElHQVRVUkUgUUFGIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDIgMDY0QTs7OztOOzs7OzsKK0ZDODA7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIEFMRUYgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0MyAwNjI3Ozs7O047Ozs7OworRkM4MTtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggTEFNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDMgMDY0NDs7OztOOzs7OzsKK0ZDODI7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0MyAwNjQ1Ozs7O047Ozs7OworRkM4MztBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDMgMDY0OTs7OztOOzs7OzsKK0ZDODQ7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQzIDA2NEE7Ozs7Tjs7Ozs7CitGQzg1O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDQgMDY0NTs7OztOOzs7OzsKK0ZDODY7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ0IDA2NDk7Ozs7Tjs7Ozs7CitGQzg3O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NCAwNjRBOzs7O047Ozs7OworRkM4ODtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEFMRUYgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NSAwNjI3Ozs7O047Ozs7OworRkM4OTtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NSAwNjQ1Ozs7O047Ozs7OworRkM4QTtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIFJFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ2IDA2MzE7Ozs7Tjs7Ozs7CitGQzhCO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggWkFJTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ2IDA2MzI7Ozs7Tjs7Ozs7CitGQzhDO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ2IDA2NDU7Ozs7Tjs7Ozs7CitGQzhEO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggTk9PTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ2IDA2NDY7Ozs7Tjs7Ozs7CitGQzhFO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDYgMDY0OTs7OztOOzs7OzsKK0ZDOEY7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NiAwNjRBOzs7O047Ozs7OworRkM5MDtBUkFCSUMgTElHQVRVUkUgQUxFRiBNQUtTVVJBIFdJVEggU1VQRVJTQ1JJUFQgQUxFRiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ5IDA2NzA7Ozs7Tjs7Ozs7CitGQzkxO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBSRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0QSAwNjMxOzs7O047Ozs7OworRkM5MjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggWkFJTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjRBIDA2MzI7Ozs7Tjs7Ozs7CitGQzkzO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NEEgMDY0NTs7OztOOzs7OzsKK0ZDOTQ7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIE5PT04gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0QSAwNjQ2Ozs7O047Ozs7OworRkM5NTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NEEgMDY0OTs7OztOOzs7OzsKK0ZDOTY7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjRBIDA2NEE7Ozs7Tjs7Ozs7CitGQzk3O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MjYgMDYyQzs7OztOOzs7OzsKK0ZDOTg7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjI2IDA2MkQ7Ozs7Tjs7Ozs7CitGQzk5O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MjYgMDYyRTs7OztOOzs7OzsKK0ZDOUE7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyNiAwNjQ1Ozs7O047Ozs7OworRkM5QjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBIRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MjYgMDY0Nzs7OztOOzs7OzsKK0ZDOUM7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MjggMDYyQzs7OztOOzs7OzsKK0ZDOUQ7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyOCAwNjJEOzs7O047Ozs7OworRkM5RTtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyOCAwNjJFOzs7O047Ozs7OworRkM5RjtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyOCAwNjQ1Ozs7O047Ozs7OworRkNBMDtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggSEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjI4IDA2NDc7Ozs7Tjs7Ozs7CitGQ0ExO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJBIDA2MkM7Ozs7Tjs7Ozs7CitGQ0EyO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkEgMDYyRDs7OztOOzs7OzsKK0ZDQTM7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkEgMDYyRTs7OztOOzs7OzsKK0ZDQTQ7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkEgMDY0NTs7OztOOzs7OzsKK0ZDQTU7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEhFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQSAwNjQ3Ozs7O047Ozs7OworRkNBNjtBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkIgMDY0NTs7OztOOzs7OzsKK0ZDQTc7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkMgMDYyRDs7OztOOzs7OzsKK0ZDQTg7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJDIDA2NDU7Ozs7Tjs7Ozs7CitGQ0E5O0FSQUJJQyBMSUdBVFVSRSBIQUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJEIDA2MkM7Ozs7Tjs7Ozs7CitGQ0FBO0FSQUJJQyBMSUdBVFVSRSBIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJEIDA2NDU7Ozs7Tjs7Ozs7CitGQ0FCO0FSQUJJQyBMSUdBVFVSRSBLSEFIIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyRSAwNjJDOzs7O047Ozs7OworRkNBQztBUkFCSUMgTElHQVRVUkUgS0hBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkUgMDY0NTs7OztOOzs7OzsKK0ZDQUQ7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjMzIDA2MkM7Ozs7Tjs7Ozs7CitGQ0FFO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjMzIDA2MkQ7Ozs7Tjs7Ozs7CitGQ0FGO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzMyAwNjJFOzs7O047Ozs7OworRkNCMDtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzMgMDY0NTs7OztOOzs7OzsKK0ZDQjE7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNSAwNjJEOzs7O047Ozs7OworRkNCMjtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNSAwNjJFOzs7O047Ozs7OworRkNCMztBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNSAwNjQ1Ozs7O047Ozs7OworRkNCNDtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNiAwNjJDOzs7O047Ozs7OworRkNCNTtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM2IDA2MkQ7Ozs7Tjs7Ozs7CitGQ0I2O0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM2IDA2MkU7Ozs7Tjs7Ozs7CitGQ0I3O0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM2IDA2NDU7Ozs7Tjs7Ozs7CitGQ0I4O0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzcgMDYyRDs7OztOOzs7OzsKK0ZDQjk7QVJBQklDIExJR0FUVVJFIFpBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzggMDY0NTs7OztOOzs7OzsKK0ZDQkE7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzkgMDYyQzs7OztOOzs7OzsKK0ZDQkI7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzkgMDY0NTs7OztOOzs7OzsKK0ZDQkM7QVJBQklDIExJR0FUVVJFIEdIQUlOIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzQSAwNjJDOzs7O047Ozs7OworRkNCRDtBUkFCSUMgTElHQVRVUkUgR0hBSU4gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjNBIDA2NDU7Ozs7Tjs7Ozs7CitGQ0JFO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQxIDA2MkM7Ozs7Tjs7Ozs7CitGQ0JGO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDEgMDYyRDs7OztOOzs7OzsKK0ZDQzA7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDEgMDYyRTs7OztOOzs7OzsKK0ZDQzE7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDEgMDY0NTs7OztOOzs7OzsKK0ZDQzI7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0MiAwNjJEOzs7O047Ozs7OworRkNDMztBUkFCSUMgTElHQVRVUkUgUUFGIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0MiAwNjQ1Ozs7O047Ozs7OworRkNDNDtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0MyAwNjJDOzs7O047Ozs7OworRkNDNTtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQzIDA2MkQ7Ozs7Tjs7Ozs7CitGQ0M2O0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQzIDA2MkU7Ozs7Tjs7Ozs7CitGQ0M3O0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBMQU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDMgMDY0NDs7OztOOzs7OzsKK0ZDQzg7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDMgMDY0NTs7OztOOzs7OzsKK0ZDQzk7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDQgMDYyQzs7OztOOzs7OzsKK0ZDQ0E7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NCAwNjJEOzs7O047Ozs7OworRkNDQjtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NCAwNjJFOzs7O047Ozs7OworRkNDQztBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NCAwNjQ1Ozs7O047Ozs7OworRkNDRDtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ0IDA2NDc7Ozs7Tjs7Ozs7CitGQ0NFO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NSAwNjJDOzs7O047Ozs7OworRkNDRjtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NSAwNjJEOzs7O047Ozs7OworRkNEMDtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDUgMDYyRTs7OztOOzs7OzsKK0ZDRDE7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGQ0QyO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NiAwNjJDOzs7O047Ozs7OworRkNEMztBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NiAwNjJEOzs7O047Ozs7OworRkNENDtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDYgMDYyRTs7OztOOzs7OzsKK0ZDRDU7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ2IDA2NDU7Ozs7Tjs7Ozs7CitGQ0Q2O0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ2IDA2NDc7Ozs7Tjs7Ozs7CitGQ0Q3O0FSQUJJQyBMSUdBVFVSRSBIRUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ3IDA2MkM7Ozs7Tjs7Ozs7CitGQ0Q4O0FSQUJJQyBMSUdBVFVSRSBIRUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ3IDA2NDU7Ozs7Tjs7Ozs7CitGQ0Q5O0FSQUJJQyBMSUdBVFVSRSBIRUggV0lUSCBTVVBFUlNDUklQVCBBTEVGIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ3IDA2NzA7Ozs7Tjs7Ozs7CitGQ0RBO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjRBIDA2MkM7Ozs7Tjs7Ozs7CitGQ0RCO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NEEgMDYyRDs7OztOOzs7OzsKK0ZDREM7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NEEgMDYyRTs7OztOOzs7OzsKK0ZDREQ7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NEEgMDY0NTs7OztOOzs7OzsKK0ZDREU7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0QSAwNjQ3Ozs7O047Ozs7OworRkNERjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYyNiAwNjQ1Ozs7O047Ozs7OworRkNFMDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBIRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjI2IDA2NDc7Ozs7Tjs7Ozs7CitGQ0UxO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYyOCAwNjQ1Ozs7O047Ozs7OworRkNFMjtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYyOCAwNjQ3Ozs7O047Ozs7OworRkNFMztBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MkEgMDY0NTs7OztOOzs7OzsKK0ZDRTQ7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEhFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MkEgMDY0Nzs7OztOOzs7OzsKK0ZDRTU7QVJBQklDIExJR0FUVVJFIFRIRUggV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYyQiAwNjQ1Ozs7O047Ozs7OworRkNFNjtBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIEhFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MkIgMDY0Nzs7OztOOzs7OzsKK0ZDRTc7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzMyAwNjQ1Ozs7O047Ozs7OworRkNFODtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEhFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MzMgMDY0Nzs7OztOOzs7OzsKK0ZDRTk7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MzQgMDY0NTs7OztOOzs7OzsKK0ZDRUE7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzNCAwNjQ3Ozs7O047Ozs7OworRkNFQjtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggTEFNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0MyAwNjQ0Ozs7O047Ozs7OworRkNFQztBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDMgMDY0NTs7OztOOzs7OzsKK0ZDRUQ7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIE1FRU0gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQ0IDA2NDU7Ozs7Tjs7Ozs7CitGQ0VFO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDYgMDY0NTs7OztOOzs7OzsKK0ZDRUY7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBIRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQ2IDA2NDc7Ozs7Tjs7Ozs7CitGQ0YwO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0QSAwNjQ1Ozs7O047Ozs7OworRkNGMTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0QSAwNjQ3Ozs7O047Ozs7OworRkNGMjtBUkFCSUMgTElHQVRVUkUgU0hBRERBIFdJVEggRkFUSEEgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQwIDA2NEUgMDY1MTs7OztOOzs7OzsKK0ZDRjM7QVJBQklDIExJR0FUVVJFIFNIQUREQSBXSVRIIERBTU1BIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0MCAwNjRGIDA2NTE7Ozs7Tjs7Ozs7CitGQ0Y0O0FSQUJJQyBMSUdBVFVSRSBTSEFEREEgV0lUSCBLQVNSQSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDAgMDY1MCAwNjUxOzs7O047Ozs7OworRkNGNTtBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzcgMDY0OTs7OztOOzs7OzsKK0ZDRjY7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM3IDA2NEE7Ozs7Tjs7Ozs7CitGQ0Y3O0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzOSAwNjQ5Ozs7O047Ozs7OworRkNGODtBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzkgMDY0QTs7OztOOzs7OzsKK0ZDRjk7QVJBQklDIExJR0FUVVJFIEdIQUlOIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2M0EgMDY0OTs7OztOOzs7OzsKK0ZDRkE7QVJBQklDIExJR0FUVVJFIEdIQUlOIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2M0EgMDY0QTs7OztOOzs7OzsKK0ZDRkI7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzMyAwNjQ5Ozs7O047Ozs7OworRkNGQztBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjMzIDA2NEE7Ozs7Tjs7Ozs7CitGQ0ZEO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM0IDA2NDk7Ozs7Tjs7Ozs7CitGQ0ZFO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM0IDA2NEE7Ozs7Tjs7Ozs7CitGQ0ZGO0FSQUJJQyBMSUdBVFVSRSBIQUggV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyRCAwNjQ5Ozs7O047Ozs7OworRkQwMDtBUkFCSUMgTElHQVRVUkUgSEFIIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkQgMDY0QTs7OztOOzs7OzsKK0ZEMDE7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyQyAwNjQ5Ozs7O047Ozs7OworRkQwMjtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJDIDA2NEE7Ozs7Tjs7Ozs7CitGRDAzO0FSQUJJQyBMSUdBVFVSRSBLSEFIIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkUgMDY0OTs7OztOOzs7OzsKK0ZEMDQ7QVJBQklDIExJR0FUVVJFIEtIQUggV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyRSAwNjRBOzs7O047Ozs7OworRkQwNTtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzUgMDY0OTs7OztOOzs7OzsKK0ZEMDY7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM1IDA2NEE7Ozs7Tjs7Ozs7CitGRDA3O0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNiAwNjQ5Ozs7O047Ozs7OworRkQwODtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzYgMDY0QTs7OztOOzs7OzsKK0ZEMDk7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM0IDA2MkM7Ozs7Tjs7Ozs7CitGRDBBO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM0IDA2MkQ7Ozs7Tjs7Ozs7CitGRDBCO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEtIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNCAwNjJFOzs7O047Ozs7OworRkQwQztBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzQgMDY0NTs7OztOOzs7OzsKK0ZEMEQ7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggUkVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzQgMDYzMTs7OztOOzs7OzsKK0ZEMEU7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBSRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzMyAwNjMxOzs7O047Ozs7OworRkQwRjtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggUkVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzUgMDYzMTs7OztOOzs7OzsKK0ZEMTA7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIFJFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM2IDA2MzE7Ozs7Tjs7Ozs7CitGRDExO0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNyAwNjQ5Ozs7O047Ozs7OworRkQxMjtBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzcgMDY0QTs7OztOOzs7OzsKK0ZEMTM7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM5IDA2NDk7Ozs7Tjs7Ozs7CitGRDE0O0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzOSAwNjRBOzs7O047Ozs7OworRkQxNTtBUkFCSUMgTElHQVRVUkUgR0hBSU4gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzQSAwNjQ5Ozs7O047Ozs7OworRkQxNjtBUkFCSUMgTElHQVRVUkUgR0hBSU4gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzQSAwNjRBOzs7O047Ozs7OworRkQxNztBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjMzIDA2NDk7Ozs7Tjs7Ozs7CitGRDE4O0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzMgMDY0QTs7OztOOzs7OzsKK0ZEMTk7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzQgMDY0OTs7OztOOzs7OzsKK0ZEMUE7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzQgMDY0QTs7OztOOzs7OzsKK0ZEMUI7QVJBQklDIExJR0FUVVJFIEhBSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJEIDA2NDk7Ozs7Tjs7Ozs7CitGRDFDO0FSQUJJQyBMSUdBVFVSRSBIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyRCAwNjRBOzs7O047Ozs7OworRkQxRDtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJDIDA2NDk7Ozs7Tjs7Ozs7CitGRDFFO0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkMgMDY0QTs7OztOOzs7OzsKK0ZEMUY7QVJBQklDIExJR0FUVVJFIEtIQUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyRSAwNjQ5Ozs7O047Ozs7OworRkQyMDtBUkFCSUMgTElHQVRVUkUgS0hBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJFIDA2NEE7Ozs7Tjs7Ozs7CitGRDIxO0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNSAwNjQ5Ozs7O047Ozs7OworRkQyMjtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzUgMDY0QTs7OztOOzs7OzsKK0ZEMjM7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM2IDA2NDk7Ozs7Tjs7Ozs7CitGRDI0O0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNiAwNjRBOzs7O047Ozs7OworRkQyNTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBKRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzQgMDYyQzs7OztOOzs7OzsKK0ZEMjY7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSEFIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzQgMDYyRDs7OztOOzs7OzsKK0ZEMjc7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggS0hBSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM0IDA2MkU7Ozs7Tjs7Ozs7CitGRDI4O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNCAwNjQ1Ozs7O047Ozs7OworRkQyOTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBSRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNCAwNjMxOzs7O047Ozs7OworRkQyQTtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIFJFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjMzIDA2MzE7Ozs7Tjs7Ozs7CitGRDJCO0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBSRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNSAwNjMxOzs7O047Ozs7OworRkQyQztBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggUkVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzYgMDYzMTs7OztOOzs7OzsKK0ZEMkQ7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNCAwNjJDOzs7O047Ozs7OworRkQyRTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzQgMDYyRDs7OztOOzs7OzsKK0ZEMkY7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNCAwNjJFOzs7O047Ozs7OworRkQzMDtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM0IDA2NDU7Ozs7Tjs7Ozs7CitGRDMxO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggSEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjMzIDA2NDc7Ozs7Tjs7Ozs7CitGRDMyO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEhFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNCAwNjQ3Ozs7O047Ozs7OworRkQzMztBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNyAwNjQ1Ozs7O047Ozs7OworRkQzNDtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEpFRU0gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjMzIDA2MkM7Ozs7Tjs7Ozs7CitGRDM1O0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggSEFIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzMyAwNjJEOzs7O047Ozs7OworRkQzNjtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEtIQUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjMzIDA2MkU7Ozs7Tjs7Ozs7CitGRDM3O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEpFRU0gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjM0IDA2MkM7Ozs7Tjs7Ozs7CitGRDM4O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEhBSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MzQgMDYyRDs7OztOOzs7OzsKK0ZEMzk7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggS0hBSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MzQgMDYyRTs7OztOOzs7OzsKK0ZEM0E7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIE1FRU0gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjM3IDA2NDU7Ozs7Tjs7Ozs7CitGRDNCO0FSQUJJQyBMSUdBVFVSRSBaQUggV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzOCAwNjQ1Ozs7O047Ozs7OworRkQzQztBUkFCSUMgTElHQVRVUkUgQUxFRiBXSVRIIEZBVEhBVEFOIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjcgMDY0Qjs7OztOOzs7OzsKK0ZEM0Q7QVJBQklDIExJR0FUVVJFIEFMRUYgV0lUSCBGQVRIQVRBTiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI3IDA2NEI7Ozs7Tjs7Ozs7CitGRDNFO09STkFURSBMRUZUIFBBUkVOVEhFU0lTO1BzOzA7T047Ozs7O047Ozs7OworRkQzRjtPUk5BVEUgUklHSFQgUEFSRU5USEVTSVM7UGU7MDtPTjs7Ozs7Tjs7Ozs7CitGRDUwO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBKRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQSAwNjJDIDA2NDU7Ozs7Tjs7Ozs7CitGRDUxO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBIQUggV0lUSCBKRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkEgMDYyRCAwNjJDOzs7O047Ozs7OworRkQ1MjtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggSEFIIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQSAwNjJEIDA2MkM7Ozs7Tjs7Ozs7CitGRDUzO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJBIDA2MkQgMDY0NTs7OztOOzs7OzsKK0ZENTQ7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEtIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJBIDA2MkUgMDY0NTs7OztOOzs7OzsKK0ZENTU7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIE1FRU0gV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJBIDA2NDUgMDYyQzs7OztOOzs7OzsKK0ZENTY7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIE1FRU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkEgMDY0NSAwNjJEOzs7O047Ozs7OworRkQ1NztBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggTUVFTSBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkEgMDY0NSAwNjJFOzs7O047Ozs7OworRkQ1ODtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIE1FRU0gV0lUSCBIQUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQyAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGRDU5O0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggTUVFTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQyAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGRDVBO0FSQUJJQyBMSUdBVFVSRSBIQUggV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkQgMDY0NSAwNjRBOzs7O047Ozs7OworRkQ1QjtBUkFCSUMgTElHQVRVUkUgSEFIIFdJVEggTUVFTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJEIDA2NDUgMDY0OTs7OztOOzs7OzsKK0ZENUM7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBIQUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjMzIDA2MkQgMDYyQzs7OztOOzs7OzsKK0ZENUQ7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBKRUVNIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjMzIDA2MkMgMDYyRDs7OztOOzs7OzsKK0ZENUU7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBKRUVNIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzMgMDYyQyAwNjQ5Ozs7O047Ozs7OworRkQ1RjtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIE1FRU0gV0lUSCBIQUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzMyAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGRDYwO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggTUVFTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzMyAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGRDYxO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggTUVFTSBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzMgMDY0NSAwNjJDOzs7O047Ozs7OworRkQ2MjtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIE1FRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzMgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ2MztBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIE1FRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjMzIDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZENjQ7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIEhBSCBXSVRIIEhBSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM1IDA2MkQgMDYyRDs7OztOOzs7OzsKK0ZENjU7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIEhBSCBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNSAwNjJEIDA2MkQ7Ozs7Tjs7Ozs7CitGRDY2O0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBNRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM1IDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZENjc7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSEFIIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM0IDA2MkQgMDY0NTs7OztOOzs7OzsKK0ZENjg7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNCAwNjJEIDA2NDU7Ozs7Tjs7Ozs7CitGRDY5O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEpFRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNCAwNjJDIDA2NEE7Ozs7Tjs7Ozs7CitGRDZBO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIE1FRU0gV0lUSCBLSEFIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzQgMDY0NSAwNjJFOzs7O047Ozs7OworRkQ2QjtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBNRUVNIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNCAwNjQ1IDA2MkU7Ozs7Tjs7Ozs7CitGRDZDO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIE1FRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzQgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ2RDtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBNRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNCAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGRDZFO0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBIQUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNiAwNjJEIDA2NDk7Ozs7Tjs7Ozs7CitGRDZGO0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBLSEFIIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM2IDA2MkUgMDY0NTs7OztOOzs7OzsKK0ZENzA7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEtIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM2IDA2MkUgMDY0NTs7OztOOzs7OzsKK0ZENzE7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIE1FRU0gV0lUSCBIQUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNyAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGRDcyO0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBNRUVNIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM3IDA2NDUgMDYyRDs7OztOOzs7OzsKK0ZENzM7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIE1FRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM3IDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZENzQ7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNyAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGRDc1O0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBKRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM5IDA2MkMgMDY0NTs7OztOOzs7OzsKK0ZENzY7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIE1FRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzkgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ3NztBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggTUVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzkgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ3ODtBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggTUVFTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM5IDA2NDUgMDY0OTs7OztOOzs7OzsKK0ZENzk7QVJBQklDIExJR0FUVVJFIEdIQUlOIFdJVEggTUVFTSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzQSAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGRDdBO0FSQUJJQyBMSUdBVFVSRSBHSEFJTiBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzQSAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGRDdCO0FSQUJJQyBMSUdBVFVSRSBHSEFJTiBXSVRIIE1FRU0gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzQSAwNjQ1IDA2NDk7Ozs7Tjs7Ozs7CitGRDdDO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBLSEFIIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQxIDA2MkUgMDY0NTs7OztOOzs7OzsKK0ZEN0Q7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIEtIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQxIDA2MkUgMDY0NTs7OztOOzs7OzsKK0ZEN0U7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIE1FRU0gV0lUSCBIQUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0MiAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGRDdGO0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBNRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQyIDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZEODA7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEhBSCBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NCAwNjJEIDA2NDU7Ozs7Tjs7Ozs7CitGRDgxO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NCAwNjJEIDA2NEE7Ozs7Tjs7Ozs7CitGRDgyO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBIQUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NCAwNjJEIDA2NDk7Ozs7Tjs7Ozs7CitGRDgzO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBKRUVNIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NCAwNjJDIDA2MkM7Ozs7Tjs7Ozs7CitGRDg0O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBKRUVNIFdJVEggSkVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ0IDA2MkMgMDYyQzs7OztOOzs7OzsKK0ZEODU7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEtIQUggV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDQgMDYyRSAwNjQ1Ozs7O047Ozs7OworRkQ4NjtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggS0hBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDQgMDYyRSAwNjQ1Ozs7O047Ozs7OworRkQ4NztBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggTUVFTSBXSVRIIEhBSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ0IDA2NDUgMDYyRDs7OztOOzs7OzsKK0ZEODg7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIE1FRU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDQgMDY0NSAwNjJEOzs7O047Ozs7OworRkQ4OTtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEhBSCBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDUgMDYyRCAwNjJDOzs7O047Ozs7OworRkQ4QTtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEhBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDUgMDYyRCAwNjQ1Ozs7O047Ozs7OworRkQ4QjtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEhBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ1IDA2MkQgMDY0QTs7OztOOzs7OzsKK0ZEOEM7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBKRUVNIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ1IDA2MkMgMDYyRDs7OztOOzs7OzsKK0ZEOEQ7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBKRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NSAwNjJDIDA2NDU7Ozs7Tjs7Ozs7CitGRDhFO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggS0hBSCBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDUgMDYyRSAwNjJDOzs7O047Ozs7OworRkQ4RjtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEtIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ1IDA2MkUgMDY0NTs7OztOOzs7OzsKK0ZEOTI7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBKRUVNIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NSAwNjJDIDA2MkU7Ozs7Tjs7Ozs7CitGRDkzO0FSQUJJQyBMSUdBVFVSRSBIRUggV0lUSCBNRUVNIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NyAwNjQ1IDA2MkM7Ozs7Tjs7Ozs7CitGRDk0O0FSQUJJQyBMSUdBVFVSRSBIRUggV0lUSCBNRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NyAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGRDk1O0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NiAwNjJEIDA2NDU7Ozs7Tjs7Ozs7CitGRDk2O0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSEFIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDYgMDYyRCAwNjQ5Ozs7O047Ozs7OworRkQ5NztBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEpFRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDYgMDYyQyAwNjQ1Ozs7O047Ozs7OworRkQ5ODtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEpFRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ2IDA2MkMgMDY0NTs7OztOOzs7OzsKK0ZEOTk7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBKRUVNIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDYgMDYyQyAwNjQ5Ozs7O047Ozs7OworRkQ5QTtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NiAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGRDlCO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggTUVFTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ2IDA2NDUgMDY0OTs7OztOOzs7OzsKK0ZEOUM7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIE1FRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NEEgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ5RDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggTUVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NEEgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ5RTtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggS0hBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI4IDA2MkUgMDY0QTs7OztOOzs7OzsKK0ZEOUY7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEpFRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQSAwNjJDIDA2NEE7Ozs7Tjs7Ozs7CitGREEwO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBKRUVNIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkEgMDYyQyAwNjQ5Ozs7O047Ozs7OworRkRBMTtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggS0hBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJBIDA2MkUgMDY0QTs7OztOOzs7OzsKK0ZEQTI7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEtIQUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQSAwNjJFIDA2NDk7Ozs7Tjs7Ozs7CitGREEzO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkEgMDY0NSAwNjRBOzs7O047Ozs7OworRkRBNDtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggTUVFTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJBIDA2NDUgMDY0OTs7OztOOzs7OzsKK0ZEQTU7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkMgMDY0NSAwNjRBOzs7O047Ozs7OworRkRBNjtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIEhBSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJDIDA2MkQgMDY0OTs7OztOOzs7OzsKK0ZEQTc7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBNRUVNIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkMgMDY0NSAwNjQ5Ozs7O047Ozs7OworRkRBODtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEtIQUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzMyAwNjJFIDA2NDk7Ozs7Tjs7Ozs7CitGREE5O0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNSAwNjJEIDA2NEE7Ozs7Tjs7Ozs7CitGREFBO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEhBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM0IDA2MkQgMDY0QTs7OztOOzs7OzsKK0ZEQUI7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEhBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM2IDA2MkQgMDY0QTs7OztOOzs7OzsKK0ZEQUM7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEpFRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NCAwNjJDIDA2NEE7Ozs7Tjs7Ozs7CitGREFEO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDQgMDY0NSAwNjRBOzs7O047Ozs7OworRkRBRTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NEEgMDYyRCAwNjRBOzs7O047Ozs7OworRkRBRjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSkVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjRBIDA2MkMgMDY0QTs7OztOOzs7OzsKK0ZEQjA7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0QSAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGREIxO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggTUVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ1IDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZEQjI7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0MiAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGREIzO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDYgMDYyRCAwNjRBOzs7O047Ozs7OworRkRCNDtBUkFCSUMgTElHQVRVUkUgUUFGIFdJVEggTUVFTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0MiAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGREI1O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ0IDA2MkQgMDY0NTs7OztOOzs7OzsKK0ZEQjY7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzOSAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGREI3O0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDMgMDY0NSAwNjRBOzs7O047Ozs7OworRkRCODtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEpFRU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDYgMDYyQyAwNjJEOzs7O047Ozs7OworRkRCOTtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEtIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NSAwNjJFIDA2NEE7Ozs7Tjs7Ozs7CitGREJBO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBKRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NCAwNjJDIDA2NDU7Ozs7Tjs7Ozs7CitGREJCO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBNRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQzIDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZEQkM7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEpFRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDQgMDYyQyAwNjQ1Ozs7O047Ozs7OworRkRCRDtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEpFRU0gV0lUSCBIQUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NiAwNjJDIDA2MkQ7Ozs7Tjs7Ozs7CitGREJFO0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkMgMDYyRCAwNjRBOzs7O047Ozs7OworRkRCRjtBUkFCSUMgTElHQVRVUkUgSEFIIFdJVEggSkVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJEIDA2MkMgMDY0QTs7OztOOzs7OzsKK0ZEQzA7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBKRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDUgMDYyQyAwNjRBOzs7O047Ozs7OworRkRDMTtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggTUVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQxIDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZEQzI7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEhBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI4IDA2MkQgMDY0QTs7OztOOzs7OzsKK0ZEQzM7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIE1FRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQzIDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZEQzQ7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIEpFRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM5IDA2MkMgMDY0NTs7OztOOzs7OzsKK0ZEQzU7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIE1FRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM1IDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZEQzY7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBLSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzMgMDYyRSAwNjRBOzs7O047Ozs7OworRkRDNztBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEpFRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NiAwNjJDIDA2NEE7Ozs7Tjs7Ozs7CitGREYwO0FSQUJJQyBMSUdBVFVSRSBTQUxMQSBVU0VEIEFTIEtPUkFOSUMgU1RPUCBTSUdOIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzUgMDY0NCAwNkQyOzs7O047Ozs7OworRkRGMTtBUkFCSUMgTElHQVRVUkUgUUFMQSBVU0VEIEFTIEtPUkFOSUMgU1RPUCBTSUdOIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDIgMDY0NCAwNkQyOzs7O047Ozs7OworRkRGMjtBUkFCSUMgTElHQVRVUkUgQUxMQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyNyAwNjQ0IDA2NDQgMDY0Nzs7OztOOzs7OzsKK0ZERjM7QVJBQklDIExJR0FUVVJFIEFLQkFSIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjcgMDY0MyAwNjI4IDA2MzE7Ozs7Tjs7Ozs7CitGREY0O0FSQUJJQyBMSUdBVFVSRSBNT0hBTU1BRCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ1IDA2MkQgMDY0NSAwNjJGOzs7O047Ozs7OworRkRGNTtBUkFCSUMgTElHQVRVUkUgU0FMQU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNSAwNjQ0IDA2MzkgMDY0NTs7OztOOzs7OzsKK0ZERjY7QVJBQklDIExJR0FUVVJFIFJBU09VTCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjMxIDA2MzMgMDY0OCAwNjQ0Ozs7O047Ozs7OworRkRGNztBUkFCSUMgTElHQVRVUkUgQUxBWUhFIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzkgMDY0NCAwNjRBIDA2NDc7Ozs7Tjs7Ozs7CitGREY4O0FSQUJJQyBMSUdBVFVSRSBXQVNBTExBTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ4IDA2MzMgMDY0NCAwNjQ1Ozs7O047Ozs7OworRkRGOTtBUkFCSUMgTElHQVRVUkUgU0FMTEEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNSAwNjQ0IDA2NDk7Ozs7Tjs7Ozs7CitGREZBO0FSQUJJQyBMSUdBVFVSRSBTQUxMQUxMQUhPVSBBTEFZSEUgV0FTQUxMQU07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzUgMDY0NCAwNjQ5IDAwMjAgMDYyNyAwNjQ0IDA2NDQgMDY0NyAwMDIwIDA2MzkgMDY0NCAwNjRBIDA2NDcgMDAyMCAwNjQ4IDA2MzMgMDY0NCAwNjQ1Ozs7O047QVJBQklDIExFVFRFUiBTQUxMQUxMQUhPVSBBTEFZSEUgV0FTQUxMQU07Ozs7CitGREZCO0FSQUJJQyBMSUdBVFVSRSBKQUxMQUpBTEFMT1VIT1U7TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkMgMDY0NCAwMDIwIDA2MkMgMDY0NCAwNjI3IDA2NDQgMDY0Nzs7OztOO0FSQUJJQyBMRVRURVIgSkFMTEFKQUxBTE9VSE9VOzs7OworRkRGQztSSUFMIFNJR047U2M7MDtBTDs8aXNvbGF0ZWQ+IDA2MzEgMDZDQyAwNjI3IDA2NDQ7Ozs7Tjs7Ozs7CitGRTAwO1ZBUklBVElPTiBTRUxFQ1RPUi0xO01uOzA7TlNNOzs7OztOOzs7OzsKK0ZFMDE7VkFSSUFUSU9OIFNFTEVDVE9SLTI7TW47MDtOU007Ozs7O047Ozs7OworRkUwMjtWQVJJQVRJT04gU0VMRUNUT1ItMztNbjswO05TTTs7Ozs7Tjs7Ozs7CitGRTAzO1ZBUklBVElPTiBTRUxFQ1RPUi00O01uOzA7TlNNOzs7OztOOzs7OzsKK0ZFMDQ7VkFSSUFUSU9OIFNFTEVDVE9SLTU7TW47MDtOU007Ozs7O047Ozs7OworRkUwNTtWQVJJQVRJT04gU0VMRUNUT1ItNjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitGRTA2O1ZBUklBVElPTiBTRUxFQ1RPUi03O01uOzA7TlNNOzs7OztOOzs7OzsKK0ZFMDc7VkFSSUFUSU9OIFNFTEVDVE9SLTg7TW47MDtOU007Ozs7O047Ozs7OworRkUwODtWQVJJQVRJT04gU0VMRUNUT1ItOTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitGRTA5O1ZBUklBVElPTiBTRUxFQ1RPUi0xMDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitGRTBBO1ZBUklBVElPTiBTRUxFQ1RPUi0xMTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitGRTBCO1ZBUklBVElPTiBTRUxFQ1RPUi0xMjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitGRTBDO1ZBUklBVElPTiBTRUxFQ1RPUi0xMztNbjswO05TTTs7Ozs7Tjs7Ozs7CitGRTBEO1ZBUklBVElPTiBTRUxFQ1RPUi0xNDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitGRTBFO1ZBUklBVElPTiBTRUxFQ1RPUi0xNTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitGRTBGO1ZBUklBVElPTiBTRUxFQ1RPUi0xNjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitGRTIwO0NPTUJJTklORyBMSUdBVFVSRSBMRUZUIEhBTEY7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CitGRTIxO0NPTUJJTklORyBMSUdBVFVSRSBSSUdIVCBIQUxGO01uOzIzMDtOU007Ozs7O047Ozs7OworRkUyMjtDT01CSU5JTkcgRE9VQkxFIFRJTERFIExFRlQgSEFMRjtNbjsyMzA7TlNNOzs7OztOOzs7OzsKK0ZFMjM7Q09NQklOSU5HIERPVUJMRSBUSUxERSBSSUdIVCBIQUxGO01uOzIzMDtOU007Ozs7O047Ozs7OworRkUzMDtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgVFdPIERPVCBMRUFERVI7UG87MDtPTjs8dmVydGljYWw+IDIwMjU7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgVFdPIERPVCBMRUFERVI7Ozs7CitGRTMxO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBFTSBEQVNIO1BkOzA7T047PHZlcnRpY2FsPiAyMDE0Ozs7O047R0xZUEggRk9SIFZFUlRJQ0FMIEVNIERBU0g7Ozs7CitGRTMyO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBFTiBEQVNIO1BkOzA7T047PHZlcnRpY2FsPiAyMDEzOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIEVOIERBU0g7Ozs7CitGRTMzO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBMT1cgTElORTtQYzswO09OOzx2ZXJ0aWNhbD4gMDA1Rjs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBTUEFDSU5HIFVOREVSU0NPUkU7Ozs7CitGRTM0O1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBXQVZZIExPVyBMSU5FO1BjOzA7T047PHZlcnRpY2FsPiAwMDVGOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIFNQQUNJTkcgV0FWWSBVTkRFUlNDT1JFOzs7OworRkUzNTtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgTEVGVCBQQVJFTlRIRVNJUztQczswO09OOzx2ZXJ0aWNhbD4gMDAyODs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBPUEVOSU5HIFBBUkVOVEhFU0lTOzs7OworRkUzNjtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgUklHSFQgUEFSRU5USEVTSVM7UGU7MDtPTjs8dmVydGljYWw+IDAwMjk7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgQ0xPU0lORyBQQVJFTlRIRVNJUzs7OzsKK0ZFMzc7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIExFRlQgQ1VSTFkgQlJBQ0tFVDtQczswO09OOzx2ZXJ0aWNhbD4gMDA3Qjs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBPUEVOSU5HIENVUkxZIEJSQUNLRVQ7Ozs7CitGRTM4O1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBSSUdIVCBDVVJMWSBCUkFDS0VUO1BlOzA7T047PHZlcnRpY2FsPiAwMDdEOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIENMT1NJTkcgQ1VSTFkgQlJBQ0tFVDs7OzsKK0ZFMzk7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIExFRlQgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDtQczswO09OOzx2ZXJ0aWNhbD4gMzAxNDs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBPUEVOSU5HIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7Ozs7CitGRTNBO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBSSUdIVCBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUO1BlOzA7T047PHZlcnRpY2FsPiAzMDE1Ozs7O047R0xZUEggRk9SIFZFUlRJQ0FMIENMT1NJTkcgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDs7OzsKK0ZFM0I7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIExFRlQgQkxBQ0sgTEVOVElDVUxBUiBCUkFDS0VUO1BzOzA7T047PHZlcnRpY2FsPiAzMDEwOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIE9QRU5JTkcgQkxBQ0sgTEVOVElDVUxBUiBCUkFDS0VUOzs7OworRkUzQztQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgUklHSFQgQkxBQ0sgTEVOVElDVUxBUiBCUkFDS0VUO1BlOzA7T047PHZlcnRpY2FsPiAzMDExOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIENMT1NJTkcgQkxBQ0sgTEVOVElDVUxBUiBCUkFDS0VUOzs7OworRkUzRDtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgTEVGVCBET1VCTEUgQU5HTEUgQlJBQ0tFVDtQczswO09OOzx2ZXJ0aWNhbD4gMzAwQTs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBPUEVOSU5HIERPVUJMRSBBTkdMRSBCUkFDS0VUOzs7OworRkUzRTtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgUklHSFQgRE9VQkxFIEFOR0xFIEJSQUNLRVQ7UGU7MDtPTjs8dmVydGljYWw+IDMwMEI7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgQ0xPU0lORyBET1VCTEUgQU5HTEUgQlJBQ0tFVDs7OzsKK0ZFM0Y7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIExFRlQgQU5HTEUgQlJBQ0tFVDtQczswO09OOzx2ZXJ0aWNhbD4gMzAwODs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBPUEVOSU5HIEFOR0xFIEJSQUNLRVQ7Ozs7CitGRTQwO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBSSUdIVCBBTkdMRSBCUkFDS0VUO1BlOzA7T047PHZlcnRpY2FsPiAzMDA5Ozs7O047R0xZUEggRk9SIFZFUlRJQ0FMIENMT1NJTkcgQU5HTEUgQlJBQ0tFVDs7OzsKK0ZFNDE7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIExFRlQgQ09STkVSIEJSQUNLRVQ7UHM7MDtPTjs8dmVydGljYWw+IDMwMEM7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgT1BFTklORyBDT1JORVIgQlJBQ0tFVDs7OzsKK0ZFNDI7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIFJJR0hUIENPUk5FUiBCUkFDS0VUO1BlOzA7T047PHZlcnRpY2FsPiAzMDBEOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIENMT1NJTkcgQ09STkVSIEJSQUNLRVQ7Ozs7CitGRTQzO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBMRUZUIFdISVRFIENPUk5FUiBCUkFDS0VUO1BzOzA7T047PHZlcnRpY2FsPiAzMDBFOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIE9QRU5JTkcgV0hJVEUgQ09STkVSIEJSQUNLRVQ7Ozs7CitGRTQ0O1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBSSUdIVCBXSElURSBDT1JORVIgQlJBQ0tFVDtQZTswO09OOzx2ZXJ0aWNhbD4gMzAwRjs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBDTE9TSU5HIFdISVRFIENPUk5FUiBCUkFDS0VUOzs7OworRkU0NTtTRVNBTUUgRE9UO1BvOzA7T047Ozs7O047Ozs7OworRkU0NjtXSElURSBTRVNBTUUgRE9UO1BvOzA7T047Ozs7O047Ozs7OworRkU0OTtEQVNIRUQgT1ZFUkxJTkU7UG87MDtPTjs8Y29tcGF0PiAyMDNFOzs7O047U1BBQ0lORyBEQVNIRUQgT1ZFUlNDT1JFOzs7OworRkU0QTtDRU5UUkVMSU5FIE9WRVJMSU5FO1BvOzA7T047PGNvbXBhdD4gMjAzRTs7OztOO1NQQUNJTkcgQ0VOVEVSTElORSBPVkVSU0NPUkU7Ozs7CitGRTRCO1dBVlkgT1ZFUkxJTkU7UG87MDtPTjs8Y29tcGF0PiAyMDNFOzs7O047U1BBQ0lORyBXQVZZIE9WRVJTQ09SRTs7OzsKK0ZFNEM7RE9VQkxFIFdBVlkgT1ZFUkxJTkU7UG87MDtPTjs8Y29tcGF0PiAyMDNFOzs7O047U1BBQ0lORyBET1VCTEUgV0FWWSBPVkVSU0NPUkU7Ozs7CitGRTREO0RBU0hFRCBMT1cgTElORTtQYzswO09OOzxjb21wYXQ+IDAwNUY7Ozs7TjtTUEFDSU5HIERBU0hFRCBVTkRFUlNDT1JFOzs7OworRkU0RTtDRU5UUkVMSU5FIExPVyBMSU5FO1BjOzA7T047PGNvbXBhdD4gMDA1Rjs7OztOO1NQQUNJTkcgQ0VOVEVSTElORSBVTkRFUlNDT1JFOzs7OworRkU0RjtXQVZZIExPVyBMSU5FO1BjOzA7T047PGNvbXBhdD4gMDA1Rjs7OztOO1NQQUNJTkcgV0FWWSBVTkRFUlNDT1JFOzs7OworRkU1MDtTTUFMTCBDT01NQTtQbzswO0NTOzxzbWFsbD4gMDAyQzs7OztOOzs7OzsKK0ZFNTE7U01BTEwgSURFT0dSQVBISUMgQ09NTUE7UG87MDtPTjs8c21hbGw+IDMwMDE7Ozs7Tjs7Ozs7CitGRTUyO1NNQUxMIEZVTEwgU1RPUDtQbzswO0NTOzxzbWFsbD4gMDAyRTs7OztOO1NNQUxMIFBFUklPRDs7OzsKK0ZFNTQ7U01BTEwgU0VNSUNPTE9OO1BvOzA7T047PHNtYWxsPiAwMDNCOzs7O047Ozs7OworRkU1NTtTTUFMTCBDT0xPTjtQbzswO0NTOzxzbWFsbD4gMDAzQTs7OztOOzs7OzsKK0ZFNTY7U01BTEwgUVVFU1RJT04gTUFSSztQbzswO09OOzxzbWFsbD4gMDAzRjs7OztOOzs7OzsKK0ZFNTc7U01BTEwgRVhDTEFNQVRJT04gTUFSSztQbzswO09OOzxzbWFsbD4gMDAyMTs7OztOOzs7OzsKK0ZFNTg7U01BTEwgRU0gREFTSDtQZDswO09OOzxzbWFsbD4gMjAxNDs7OztOOzs7OzsKK0ZFNTk7U01BTEwgTEVGVCBQQVJFTlRIRVNJUztQczswO09OOzxzbWFsbD4gMDAyODs7OztOO1NNQUxMIE9QRU5JTkcgUEFSRU5USEVTSVM7Ozs7CitGRTVBO1NNQUxMIFJJR0hUIFBBUkVOVEhFU0lTO1BlOzA7T047PHNtYWxsPiAwMDI5Ozs7O047U01BTEwgQ0xPU0lORyBQQVJFTlRIRVNJUzs7OzsKK0ZFNUI7U01BTEwgTEVGVCBDVVJMWSBCUkFDS0VUO1BzOzA7T047PHNtYWxsPiAwMDdCOzs7O047U01BTEwgT1BFTklORyBDVVJMWSBCUkFDS0VUOzs7OworRkU1QztTTUFMTCBSSUdIVCBDVVJMWSBCUkFDS0VUO1BlOzA7T047PHNtYWxsPiAwMDdEOzs7O047U01BTEwgQ0xPU0lORyBDVVJMWSBCUkFDS0VUOzs7OworRkU1RDtTTUFMTCBMRUZUIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7UHM7MDtPTjs8c21hbGw+IDMwMTQ7Ozs7TjtTTUFMTCBPUEVOSU5HIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7Ozs7CitGRTVFO1NNQUxMIFJJR0hUIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7UGU7MDtPTjs8c21hbGw+IDMwMTU7Ozs7TjtTTUFMTCBDTE9TSU5HIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7Ozs7CitGRTVGO1NNQUxMIE5VTUJFUiBTSUdOO1BvOzA7RVQ7PHNtYWxsPiAwMDIzOzs7O047Ozs7OworRkU2MDtTTUFMTCBBTVBFUlNBTkQ7UG87MDtPTjs8c21hbGw+IDAwMjY7Ozs7Tjs7Ozs7CitGRTYxO1NNQUxMIEFTVEVSSVNLO1BvOzA7T047PHNtYWxsPiAwMDJBOzs7O047Ozs7OworRkU2MjtTTUFMTCBQTFVTIFNJR047U207MDtFVDs8c21hbGw+IDAwMkI7Ozs7Tjs7Ozs7CitGRTYzO1NNQUxMIEhZUEhFTi1NSU5VUztQZDswO0VUOzxzbWFsbD4gMDAyRDs7OztOOzs7OzsKK0ZFNjQ7U01BTEwgTEVTUy1USEFOIFNJR047U207MDtPTjs8c21hbGw+IDAwM0M7Ozs7Tjs7Ozs7CitGRTY1O1NNQUxMIEdSRUFURVItVEhBTiBTSUdOO1NtOzA7T047PHNtYWxsPiAwMDNFOzs7O047Ozs7OworRkU2NjtTTUFMTCBFUVVBTFMgU0lHTjtTbTswO09OOzxzbWFsbD4gMDAzRDs7OztOOzs7OzsKK0ZFNjg7U01BTEwgUkVWRVJTRSBTT0xJRFVTO1BvOzA7T047PHNtYWxsPiAwMDVDOzs7O047U01BTEwgQkFDS1NMQVNIOzs7OworRkU2OTtTTUFMTCBET0xMQVIgU0lHTjtTYzswO0VUOzxzbWFsbD4gMDAyNDs7OztOOzs7OzsKK0ZFNkE7U01BTEwgUEVSQ0VOVCBTSUdOO1BvOzA7RVQ7PHNtYWxsPiAwMDI1Ozs7O047Ozs7OworRkU2QjtTTUFMTCBDT01NRVJDSUFMIEFUO1BvOzA7T047PHNtYWxsPiAwMDQwOzs7O047Ozs7OworRkU3MDtBUkFCSUMgRkFUSEFUQU4gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDAyMCAwNjRCOzs7O047QVJBQklDIFNQQUNJTkcgRkFUSEFUQU47Ozs7CitGRTcxO0FSQUJJQyBUQVRXRUVMIFdJVEggRkFUSEFUQU4gQUJPVkU7TG87MDtBTDs8bWVkaWFsPiAwNjQwIDA2NEI7Ozs7TjtBUkFCSUMgRkFUSEFUQU4gT04gVEFUV0VFTDs7OzsKK0ZFNzI7QVJBQklDIERBTU1BVEFOIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDAwMjAgMDY0Qzs7OztOO0FSQUJJQyBTUEFDSU5HIERBTU1BVEFOOzs7OworRkU3MztBUkFCSUMgVEFJTCBGUkFHTUVOVDtMbzswO0FMOzs7OztOOzs7OzsKK0ZFNzQ7QVJBQklDIEtBU1JBVEFOIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDAwMjAgMDY0RDs7OztOO0FSQUJJQyBTUEFDSU5HIEtBU1JBVEFOOzs7OworRkU3NjtBUkFCSUMgRkFUSEEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDAyMCAwNjRFOzs7O047QVJBQklDIFNQQUNJTkcgRkFUSEFIOzs7OworRkU3NztBUkFCSUMgRkFUSEEgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQwIDA2NEU7Ozs7TjtBUkFCSUMgRkFUSEFIIE9OIFRBVFdFRUw7Ozs7CitGRTc4O0FSQUJJQyBEQU1NQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwMDIwIDA2NEY7Ozs7TjtBUkFCSUMgU1BBQ0lORyBEQU1NQUg7Ozs7CitGRTc5O0FSQUJJQyBEQU1NQSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDAgMDY0Rjs7OztOO0FSQUJJQyBEQU1NQUggT04gVEFUV0VFTDs7OzsKK0ZFN0E7QVJBQklDIEtBU1JBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDAwMjAgMDY1MDs7OztOO0FSQUJJQyBTUEFDSU5HIEtBU1JBSDs7OzsKK0ZFN0I7QVJBQklDIEtBU1JBIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0MCAwNjUwOzs7O047QVJBQklDIEtBU1JBSCBPTiBUQVRXRUVMOzs7OworRkU3QztBUkFCSUMgU0hBRERBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDAwMjAgMDY1MTs7OztOO0FSQUJJQyBTUEFDSU5HIFNIQUREQUg7Ozs7CitGRTdEO0FSQUJJQyBTSEFEREEgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQwIDA2NTE7Ozs7TjtBUkFCSUMgU0hBRERBSCBPTiBUQVRXRUVMOzs7OworRkU3RTtBUkFCSUMgU1VLVU4gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDAyMCAwNjUyOzs7O047QVJBQklDIFNQQUNJTkcgU1VLVU47Ozs7CitGRTdGO0FSQUJJQyBTVUtVTiBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDAgMDY1Mjs7OztOO0FSQUJJQyBTVUtVTiBPTiBUQVRXRUVMOzs7OworRkU4MDtBUkFCSUMgTEVUVEVSIEhBTVpBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjE7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgSEFNWkFIOzs7OworRkU4MTtBUkFCSUMgTEVUVEVSIEFMRUYgV0lUSCBNQUREQSBBQk9WRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjIyOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIE1BRERBSCBPTiBBTEVGOzs7OworRkU4MjtBUkFCSUMgTEVUVEVSIEFMRUYgV0lUSCBNQUREQSBBQk9WRSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjIyOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBNQUREQUggT04gQUxFRjs7OzsKK0ZFODM7QVJBQklDIExFVFRFUiBBTEVGIFdJVEggSEFNWkEgQUJPVkUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyMzs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBIQU1aQUggT04gQUxFRjs7OzsKK0ZFODQ7QVJBQklDIExFVFRFUiBBTEVGIFdJVEggSEFNWkEgQUJPVkUgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyMzs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgSEFNWkFIIE9OIEFMRUY7Ozs7CitGRTg1O0FSQUJJQyBMRVRURVIgV0FXIFdJVEggSEFNWkEgQUJPVkUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyNDs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBIQU1aQUggT04gV0FXOzs7OworRkU4NjtBUkFCSUMgTEVUVEVSIFdBVyBXSVRIIEhBTVpBIEFCT1ZFIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjQ7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEhBTVpBSCBPTiBXQVc7Ozs7CitGRTg3O0FSQUJJQyBMRVRURVIgQUxFRiBXSVRIIEhBTVpBIEJFTE9XIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjU7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgSEFNWkFIIFVOREVSIEFMRUY7Ozs7CitGRTg4O0FSQUJJQyBMRVRURVIgQUxFRiBXSVRIIEhBTVpBIEJFTE9XIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjU7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEhBTVpBSCBVTkRFUiBBTEVGOzs7OworRkU4OTtBUkFCSUMgTEVUVEVSIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjY7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgSEFNWkFIIE9OIFlBOzs7OworRkU4QTtBUkFCSUMgTEVUVEVSIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjY7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEhBTVpBSCBPTiBZQTs7OzsKK0ZFOEI7QVJBQklDIExFVFRFUiBZRUggV0lUSCBIQU1aQSBBQk9WRSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyNjs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBIQU1aQUggT04gWUE7Ozs7CitGRThDO0FSQUJJQyBMRVRURVIgWUVIIFdJVEggSEFNWkEgQUJPVkUgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjI2Ozs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgSEFNWkFIIE9OIFlBOzs7OworRkU4RDtBUkFCSUMgTEVUVEVSIEFMRUYgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyNzs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBBTEVGOzs7OworRkU4RTtBUkFCSUMgTEVUVEVSIEFMRUYgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNzs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgQUxFRjs7OzsKK0ZFOEY7QVJBQklDIExFVFRFUiBCRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyODs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBCQUE7Ozs7CitGRTkwO0FSQUJJQyBMRVRURVIgQkVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2Mjg7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEJBQTs7OzsKK0ZFOTE7QVJBQklDIExFVFRFUiBCRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2Mjg7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgQkFBOzs7OworRkU5MjtBUkFCSUMgTEVUVEVSIEJFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2Mjg7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBCQUE7Ozs7CitGRTkzO0FSQUJJQyBMRVRURVIgVEVIIE1BUkJVVEEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyOTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBUQUEgTUFSQlVUQUg7Ozs7CitGRTk0O0FSQUJJQyBMRVRURVIgVEVIIE1BUkJVVEEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyOTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgVEFBIE1BUkJVVEFIOzs7OworRkU5NTtBUkFCSUMgTEVUVEVSIFRFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJBOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFRBQTs7OzsKK0ZFOTY7QVJBQklDIExFVFRFUiBURUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgVEFBOzs7OworRkU5NztBUkFCSUMgTEVUVEVSIFRFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQTs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBUQUE7Ozs7CitGRTk4O0FSQUJJQyBMRVRURVIgVEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYyQTs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIFRBQTs7OzsKK0ZFOTk7QVJBQklDIExFVFRFUiBUSEVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkI7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgVEhBQTs7OzsKK0ZFOUE7QVJBQklDIExFVFRFUiBUSEVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkI7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFRIQUE7Ozs7CitGRTlCO0FSQUJJQyBMRVRURVIgVEhFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQjs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBUSEFBOzs7OworRkU5QztBUkFCSUMgTEVUVEVSIFRIRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjJCOzs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgVEhBQTs7OzsKK0ZFOUQ7QVJBQklDIExFVFRFUiBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkM7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgSkVFTTs7OzsKK0ZFOUU7QVJBQklDIExFVFRFUiBKRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkM7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEpFRU07Ozs7CitGRTlGO0FSQUJJQyBMRVRURVIgSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQzs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBKRUVNOzs7OworRkVBMDtBUkFCSUMgTEVUVEVSIEpFRU0gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjJDOzs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgSkVFTTs7OzsKK0ZFQTE7QVJBQklDIExFVFRFUiBIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyRDs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBIQUE7Ozs7CitGRUEyO0FSQUJJQyBMRVRURVIgSEFIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkQ7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEhBQTs7OzsKK0ZFQTM7QVJBQklDIExFVFRFUiBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkQ7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgSEFBOzs7OworRkVBNDtBUkFCSUMgTEVUVEVSIEhBSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MkQ7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBIQUE7Ozs7CitGRUE1O0FSQUJJQyBMRVRURVIgS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJFOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEtIQUE7Ozs7CitGRUE2O0FSQUJJQyBMRVRURVIgS0hBSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJFOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBLSEFBOzs7OworRkVBNztBUkFCSUMgTEVUVEVSIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkU7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgS0hBQTs7OzsKK0ZFQTg7QVJBQklDIExFVFRFUiBLSEFIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYyRTs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIEtIQUE7Ozs7CitGRUE5O0FSQUJJQyBMRVRURVIgREFMIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkY7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgREFMOzs7OworRkVBQTtBUkFCSUMgTEVUVEVSIERBTCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJGOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBEQUw7Ozs7CitGRUFCO0FSQUJJQyBMRVRURVIgVEhBTCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjMwOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFRIQUw7Ozs7CitGRUFDO0FSQUJJQyBMRVRURVIgVEhBTCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjMwOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBUSEFMOzs7OworRkVBRDtBUkFCSUMgTEVUVEVSIFJFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjMxOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFJBOzs7OworRkVBRTtBUkFCSUMgTEVUVEVSIFJFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjMxOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBSQTs7OzsKK0ZFQUY7QVJBQklDIExFVFRFUiBaQUlOIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzI7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgWkFJTjs7OzsKK0ZFQjA7QVJBQklDIExFVFRFUiBaQUlOIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzI7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFpBSU47Ozs7CitGRUIxO0FSQUJJQyBMRVRURVIgU0VFTiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjMzOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFNFRU47Ozs7CitGRUIyO0FSQUJJQyBMRVRURVIgU0VFTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjMzOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBTRUVOOzs7OworRkVCMztBUkFCSUMgTEVUVEVSIFNFRU4gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzM7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgU0VFTjs7OzsKK0ZFQjQ7QVJBQklDIExFVFRFUiBTRUVOIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzMzs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIFNFRU47Ozs7CitGRUI1O0FSQUJJQyBMRVRURVIgU0hFRU4gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNDs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBTSEVFTjs7OzsKK0ZFQjY7QVJBQklDIExFVFRFUiBTSEVFTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM0Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBTSEVFTjs7OzsKK0ZFQjc7QVJBQklDIExFVFRFUiBTSEVFTiBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNDs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBTSEVFTjs7OzsKK0ZFQjg7QVJBQklDIExFVFRFUiBTSEVFTiBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MzQ7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBTSEVFTjs7OzsKK0ZFQjk7QVJBQklDIExFVFRFUiBTQUQgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBTQUQ7Ozs7CitGRUJBO0FSQUJJQyBMRVRURVIgU0FEIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzU7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFNBRDs7OzsKK0ZFQkI7QVJBQklDIExFVFRFUiBTQUQgSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzU7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgU0FEOzs7OworRkVCQztBUkFCSUMgTEVUVEVSIFNBRCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MzU7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBTQUQ7Ozs7CitGRUJEO0FSQUJJQyBMRVRURVIgREFEIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzY7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgREFEOzs7OworRkVCRTtBUkFCSUMgTEVUVEVSIERBRCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM2Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBEQUQ7Ozs7CitGRUJGO0FSQUJJQyBMRVRURVIgREFEIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM2Ozs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIERBRDs7OzsKK0ZFQzA7QVJBQklDIExFVFRFUiBEQUQgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjM2Ozs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgREFEOzs7OworRkVDMTtBUkFCSUMgTEVUVEVSIFRBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM3Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFRBSDs7OzsKK0ZFQzI7QVJBQklDIExFVFRFUiBUQUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNzs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgVEFIOzs7OworRkVDMztBUkFCSUMgTEVUVEVSIFRBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNzs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBUQUg7Ozs7CitGRUM0O0FSQUJJQyBMRVRURVIgVEFIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzNzs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIFRBSDs7OzsKK0ZFQzU7QVJBQklDIExFVFRFUiBaQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzODs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBESEFIOzs7OworRkVDNjtBUkFCSUMgTEVUVEVSIFpBSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM4Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBESEFIOzs7OworRkVDNztBUkFCSUMgTEVUVEVSIFpBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzODs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBESEFIOzs7OworRkVDODtBUkFCSUMgTEVUVEVSIFpBSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2Mzg7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBESEFIOzs7OworRkVDOTtBUkFCSUMgTEVUVEVSIEFJTiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM5Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEFJTjs7OzsKK0ZFQ0E7QVJBQklDIExFVFRFUiBBSU4gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzOTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgQUlOOzs7OworRkVDQjtBUkFCSUMgTEVUVEVSIEFJTiBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzOTs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBBSU47Ozs7CitGRUNDO0FSQUJJQyBMRVRURVIgQUlOIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzOTs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIEFJTjs7OzsKK0ZFQ0Q7QVJBQklDIExFVFRFUiBHSEFJTiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjNBOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEdIQUlOOzs7OworRkVDRTtBUkFCSUMgTEVUVEVSIEdIQUlOIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2M0E7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEdIQUlOOzs7OworRkVDRjtBUkFCSUMgTEVUVEVSIEdIQUlOIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjNBOzs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIEdIQUlOOzs7OworRkVEMDtBUkFCSUMgTEVUVEVSIEdIQUlOIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzQTs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIEdIQUlOOzs7OworRkVEMTtBUkFCSUMgTEVUVEVSIEZFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQxOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEZBOzs7OworRkVEMjtBUkFCSUMgTEVUVEVSIEZFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQxOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBGQTs7OzsKK0ZFRDM7QVJBQklDIExFVFRFUiBGRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDE7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgRkE7Ozs7CitGRUQ0O0FSQUJJQyBMRVRURVIgRkVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0MTs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIEZBOzs7OworRkVENTtBUkFCSUMgTEVUVEVSIFFBRiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQyOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFFBRjs7OzsKK0ZFRDY7QVJBQklDIExFVFRFUiBRQUYgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0Mjs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgUUFGOzs7OworRkVENztBUkFCSUMgTEVUVEVSIFFBRiBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0Mjs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBRQUY7Ozs7CitGRUQ4O0FSQUJJQyBMRVRURVIgUUFGIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0Mjs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIFFBRjs7OzsKK0ZFRDk7QVJBQklDIExFVFRFUiBLQUYgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0Mzs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBDQUY7Ozs7CitGRURBO0FSQUJJQyBMRVRURVIgS0FGIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDM7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIENBRjs7OzsKK0ZFREI7QVJBQklDIExFVFRFUiBLQUYgSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDM7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgQ0FGOzs7OworRkVEQztBUkFCSUMgTEVUVEVSIEtBRiBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDM7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBDQUY7Ozs7CitGRUREO0FSQUJJQyBMRVRURVIgTEFNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDQ7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgTEFNOzs7OworRkVERTtBUkFCSUMgTEVUVEVSIExBTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ0Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBMQU07Ozs7CitGRURGO0FSQUJJQyBMRVRURVIgTEFNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ0Ozs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIExBTTs7OzsKK0ZFRTA7QVJBQklDIExFVFRFUiBMQU0gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQ0Ozs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgTEFNOzs7OworRkVFMTtBUkFCSUMgTEVUVEVSIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBNRUVNOzs7OworRkVFMjtBUkFCSUMgTEVUVEVSIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgTUVFTTs7OzsKK0ZFRTM7QVJBQklDIExFVFRFUiBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ1Ozs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIE1FRU07Ozs7CitGRUU0O0FSQUJJQyBMRVRURVIgTUVFTSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDU7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBNRUVNOzs7OworRkVFNTtBUkFCSUMgTEVUVEVSIE5PT04gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0Njs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBOT09OOzs7OworRkVFNjtBUkFCSUMgTEVUVEVSIE5PT04gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0Njs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgTk9PTjs7OzsKK0ZFRTc7QVJBQklDIExFVFRFUiBOT09OIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ2Ozs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIE5PT047Ozs7CitGRUU4O0FSQUJJQyBMRVRURVIgTk9PTiBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDY7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBOT09OOzs7OworRkVFOTtBUkFCSUMgTEVUVEVSIEhFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ3Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEhBOzs7OworRkVFQTtBUkFCSUMgTEVUVEVSIEhFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ3Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBIQTs7OzsKK0ZFRUI7QVJBQklDIExFVFRFUiBIRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDc7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgSEE7Ozs7CitGRUVDO0FSQUJJQyBMRVRURVIgSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0Nzs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIEhBOzs7OworRkVFRDtBUkFCSUMgTEVUVEVSIFdBVyBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ4Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFdBVzs7OzsKK0ZFRUU7QVJBQklDIExFVFRFUiBXQVcgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0ODs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgV0FXOzs7OworRkVFRjtBUkFCSUMgTEVUVEVSIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ5Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEFMRUYgTUFRU1VSQUg7Ozs7CitGRUYwO0FSQUJJQyBMRVRURVIgQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDk7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEFMRUYgTUFRU1VSQUg7Ozs7CitGRUYxO0FSQUJJQyBMRVRURVIgWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NEE7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgWUE7Ozs7CitGRUYyO0FSQUJJQyBMRVRURVIgWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NEE7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFlBOzs7OworRkVGMztBUkFCSUMgTEVUVEVSIFlFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0QTs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBZQTs7OzsKK0ZFRjQ7QVJBQklDIExFVFRFUiBZRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjRBOzs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgWUE7Ozs7CitGRUY1O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBBTEVGIFdJVEggTUFEREEgQUJPVkUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NCAwNjIyOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIE1BRERBSCBPTiBMSUdBVFVSRSBMQU0gQUxFRjs7OzsKK0ZFRjY7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEFMRUYgV0lUSCBNQUREQSBBQk9WRSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ0IDA2MjI7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIE1BRERBSCBPTiBMSUdBVFVSRSBMQU0gQUxFRjs7OzsKK0ZFRjc7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEFMRUYgV0lUSCBIQU1aQSBBQk9WRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ0IDA2MjM7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgSEFNWkFIIE9OIExJR0FUVVJFIExBTSBBTEVGOzs7OworRkVGODtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggQUxFRiBXSVRIIEhBTVpBIEFCT1ZFIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDQgMDYyMzs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgSEFNWkFIIE9OIExJR0FUVVJFIExBTSBBTEVGOzs7OworRkVGOTtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggQUxFRiBXSVRIIEhBTVpBIEJFTE9XIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDQgMDYyNTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBIQU1aQUggVU5ERVIgTElHQVRVUkUgTEFNIEFMRUY7Ozs7CitGRUZBO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBBTEVGIFdJVEggSEFNWkEgQkVMT1cgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NCAwNjI1Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBIQU1aQUggVU5ERVIgTElHQVRVUkUgTEFNIEFMRUY7Ozs7CitGRUZCO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBBTEVGIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDQgMDYyNzs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBMSUdBVFVSRSBMQU0gQUxFRjs7OzsKK0ZFRkM7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEFMRUYgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NCAwNjI3Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBMSUdBVFVSRSBMQU0gQUxFRjs7OzsKK0ZFRkY7WkVSTyBXSURUSCBOTy1CUkVBSyBTUEFDRTtDZjswO0JOOzs7OztOO0JZVEUgT1JERVIgTUFSSzs7OzsKK0ZGMDE7RlVMTFdJRFRIIEVYQ0xBTUFUSU9OIE1BUks7UG87MDtPTjs8d2lkZT4gMDAyMTs7OztOOzs7OzsKK0ZGMDI7RlVMTFdJRFRIIFFVT1RBVElPTiBNQVJLO1BvOzA7T047PHdpZGU+IDAwMjI7Ozs7Tjs7Ozs7CitGRjAzO0ZVTExXSURUSCBOVU1CRVIgU0lHTjtQbzswO0VUOzx3aWRlPiAwMDIzOzs7O047Ozs7OworRkYwNDtGVUxMV0lEVEggRE9MTEFSIFNJR047U2M7MDtFVDs8d2lkZT4gMDAyNDs7OztOOzs7OzsKK0ZGMDU7RlVMTFdJRFRIIFBFUkNFTlQgU0lHTjtQbzswO0VUOzx3aWRlPiAwMDI1Ozs7O047Ozs7OworRkYwNjtGVUxMV0lEVEggQU1QRVJTQU5EO1BvOzA7T047PHdpZGU+IDAwMjY7Ozs7Tjs7Ozs7CitGRjA3O0ZVTExXSURUSCBBUE9TVFJPUEhFO1BvOzA7T047PHdpZGU+IDAwMjc7Ozs7Tjs7Ozs7CitGRjA4O0ZVTExXSURUSCBMRUZUIFBBUkVOVEhFU0lTO1BzOzA7T047PHdpZGU+IDAwMjg7Ozs7WTtGVUxMV0lEVEggT1BFTklORyBQQVJFTlRIRVNJUzs7OzsKK0ZGMDk7RlVMTFdJRFRIIFJJR0hUIFBBUkVOVEhFU0lTO1BlOzA7T047PHdpZGU+IDAwMjk7Ozs7WTtGVUxMV0lEVEggQ0xPU0lORyBQQVJFTlRIRVNJUzs7OzsKK0ZGMEE7RlVMTFdJRFRIIEFTVEVSSVNLO1BvOzA7T047PHdpZGU+IDAwMkE7Ozs7Tjs7Ozs7CitGRjBCO0ZVTExXSURUSCBQTFVTIFNJR047U207MDtFVDs8d2lkZT4gMDAyQjs7OztOOzs7OzsKK0ZGMEM7RlVMTFdJRFRIIENPTU1BO1BvOzA7Q1M7PHdpZGU+IDAwMkM7Ozs7Tjs7Ozs7CitGRjBEO0ZVTExXSURUSCBIWVBIRU4tTUlOVVM7UGQ7MDtFVDs8d2lkZT4gMDAyRDs7OztOOzs7OzsKK0ZGMEU7RlVMTFdJRFRIIEZVTEwgU1RPUDtQbzswO0NTOzx3aWRlPiAwMDJFOzs7O047RlVMTFdJRFRIIFBFUklPRDs7OzsKK0ZGMEY7RlVMTFdJRFRIIFNPTElEVVM7UG87MDtFUzs8d2lkZT4gMDAyRjs7OztOO0ZVTExXSURUSCBTTEFTSDs7OzsKK0ZGMTA7RlVMTFdJRFRIIERJR0lUIFpFUk87TmQ7MDtFTjs8d2lkZT4gMDAzMDswOzA7MDtOOzs7OzsKK0ZGMTE7RlVMTFdJRFRIIERJR0lUIE9ORTtOZDswO0VOOzx3aWRlPiAwMDMxOzE7MTsxO047Ozs7OworRkYxMjtGVUxMV0lEVEggRElHSVQgVFdPO05kOzA7RU47PHdpZGU+IDAwMzI7MjsyOzI7Tjs7Ozs7CitGRjEzO0ZVTExXSURUSCBESUdJVCBUSFJFRTtOZDswO0VOOzx3aWRlPiAwMDMzOzM7MzszO047Ozs7OworRkYxNDtGVUxMV0lEVEggRElHSVQgRk9VUjtOZDswO0VOOzx3aWRlPiAwMDM0OzQ7NDs0O047Ozs7OworRkYxNTtGVUxMV0lEVEggRElHSVQgRklWRTtOZDswO0VOOzx3aWRlPiAwMDM1OzU7NTs1O047Ozs7OworRkYxNjtGVUxMV0lEVEggRElHSVQgU0lYO05kOzA7RU47PHdpZGU+IDAwMzY7Njs2OzY7Tjs7Ozs7CitGRjE3O0ZVTExXSURUSCBESUdJVCBTRVZFTjtOZDswO0VOOzx3aWRlPiAwMDM3Ozc7Nzs3O047Ozs7OworRkYxODtGVUxMV0lEVEggRElHSVQgRUlHSFQ7TmQ7MDtFTjs8d2lkZT4gMDAzODs4Ozg7ODtOOzs7OzsKK0ZGMTk7RlVMTFdJRFRIIERJR0lUIE5JTkU7TmQ7MDtFTjs8d2lkZT4gMDAzOTs5Ozk7OTtOOzs7OzsKK0ZGMUE7RlVMTFdJRFRIIENPTE9OO1BvOzA7Q1M7PHdpZGU+IDAwM0E7Ozs7Tjs7Ozs7CitGRjFCO0ZVTExXSURUSCBTRU1JQ09MT047UG87MDtPTjs8d2lkZT4gMDAzQjs7OztOOzs7OzsKK0ZGMUM7RlVMTFdJRFRIIExFU1MtVEhBTiBTSUdOO1NtOzA7T047PHdpZGU+IDAwM0M7Ozs7WTs7Ozs7CitGRjFEO0ZVTExXSURUSCBFUVVBTFMgU0lHTjtTbTswO09OOzx3aWRlPiAwMDNEOzs7O047Ozs7OworRkYxRTtGVUxMV0lEVEggR1JFQVRFUi1USEFOIFNJR047U207MDtPTjs8d2lkZT4gMDAzRTs7OztZOzs7OzsKK0ZGMUY7RlVMTFdJRFRIIFFVRVNUSU9OIE1BUks7UG87MDtPTjs8d2lkZT4gMDAzRjs7OztOOzs7OzsKK0ZGMjA7RlVMTFdJRFRIIENPTU1FUkNJQUwgQVQ7UG87MDtPTjs8d2lkZT4gMDA0MDs7OztOOzs7OzsKK0ZGMjE7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEE7THU7MDtMOzx3aWRlPiAwMDQxOzs7O047Ozs7RkY0MTsKK0ZGMjI7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEI7THU7MDtMOzx3aWRlPiAwMDQyOzs7O047Ozs7RkY0MjsKK0ZGMjM7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEM7THU7MDtMOzx3aWRlPiAwMDQzOzs7O047Ozs7RkY0MzsKK0ZGMjQ7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEQ7THU7MDtMOzx3aWRlPiAwMDQ0Ozs7O047Ozs7RkY0NDsKK0ZGMjU7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEU7THU7MDtMOzx3aWRlPiAwMDQ1Ozs7O047Ozs7RkY0NTsKK0ZGMjY7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEY7THU7MDtMOzx3aWRlPiAwMDQ2Ozs7O047Ozs7RkY0NjsKK0ZGMjc7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEc7THU7MDtMOzx3aWRlPiAwMDQ3Ozs7O047Ozs7RkY0NzsKK0ZGMjg7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEg7THU7MDtMOzx3aWRlPiAwMDQ4Ozs7O047Ozs7RkY0ODsKK0ZGMjk7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEk7THU7MDtMOzx3aWRlPiAwMDQ5Ozs7O047Ozs7RkY0OTsKK0ZGMkE7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEo7THU7MDtMOzx3aWRlPiAwMDRBOzs7O047Ozs7RkY0QTsKK0ZGMkI7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEs7THU7MDtMOzx3aWRlPiAwMDRCOzs7O047Ozs7RkY0QjsKK0ZGMkM7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEw7THU7MDtMOzx3aWRlPiAwMDRDOzs7O047Ozs7RkY0QzsKK0ZGMkQ7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIE07THU7MDtMOzx3aWRlPiAwMDREOzs7O047Ozs7RkY0RDsKK0ZGMkU7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIE47THU7MDtMOzx3aWRlPiAwMDRFOzs7O047Ozs7RkY0RTsKK0ZGMkY7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIE87THU7MDtMOzx3aWRlPiAwMDRGOzs7O047Ozs7RkY0RjsKK0ZGMzA7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFA7THU7MDtMOzx3aWRlPiAwMDUwOzs7O047Ozs7RkY1MDsKK0ZGMzE7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFE7THU7MDtMOzx3aWRlPiAwMDUxOzs7O047Ozs7RkY1MTsKK0ZGMzI7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFI7THU7MDtMOzx3aWRlPiAwMDUyOzs7O047Ozs7RkY1MjsKK0ZGMzM7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFM7THU7MDtMOzx3aWRlPiAwMDUzOzs7O047Ozs7RkY1MzsKK0ZGMzQ7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFQ7THU7MDtMOzx3aWRlPiAwMDU0Ozs7O047Ozs7RkY1NDsKK0ZGMzU7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFU7THU7MDtMOzx3aWRlPiAwMDU1Ozs7O047Ozs7RkY1NTsKK0ZGMzY7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFY7THU7MDtMOzx3aWRlPiAwMDU2Ozs7O047Ozs7RkY1NjsKK0ZGMzc7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFc7THU7MDtMOzx3aWRlPiAwMDU3Ozs7O047Ozs7RkY1NzsKK0ZGMzg7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFg7THU7MDtMOzx3aWRlPiAwMDU4Ozs7O047Ozs7RkY1ODsKK0ZGMzk7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFk7THU7MDtMOzx3aWRlPiAwMDU5Ozs7O047Ozs7RkY1OTsKK0ZGM0E7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFo7THU7MDtMOzx3aWRlPiAwMDVBOzs7O047Ozs7RkY1QTsKK0ZGM0I7RlVMTFdJRFRIIExFRlQgU1FVQVJFIEJSQUNLRVQ7UHM7MDtPTjs8d2lkZT4gMDA1Qjs7OztZO0ZVTExXSURUSCBPUEVOSU5HIFNRVUFSRSBCUkFDS0VUOzs7OworRkYzQztGVUxMV0lEVEggUkVWRVJTRSBTT0xJRFVTO1BvOzA7T047PHdpZGU+IDAwNUM7Ozs7TjtGVUxMV0lEVEggQkFDS1NMQVNIOzs7OworRkYzRDtGVUxMV0lEVEggUklHSFQgU1FVQVJFIEJSQUNLRVQ7UGU7MDtPTjs8d2lkZT4gMDA1RDs7OztZO0ZVTExXSURUSCBDTE9TSU5HIFNRVUFSRSBCUkFDS0VUOzs7OworRkYzRTtGVUxMV0lEVEggQ0lSQ1VNRkxFWCBBQ0NFTlQ7U2s7MDtPTjs8d2lkZT4gMDA1RTs7OztOO0ZVTExXSURUSCBTUEFDSU5HIENJUkNVTUZMRVg7Ozs7CitGRjNGO0ZVTExXSURUSCBMT1cgTElORTtQYzswO09OOzx3aWRlPiAwMDVGOzs7O047RlVMTFdJRFRIIFNQQUNJTkcgVU5ERVJTQ09SRTs7OzsKK0ZGNDA7RlVMTFdJRFRIIEdSQVZFIEFDQ0VOVDtTazswO09OOzx3aWRlPiAwMDYwOzs7O047RlVMTFdJRFRIIFNQQUNJTkcgR1JBVkU7Ozs7CitGRjQxO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgQTtMbDswO0w7PHdpZGU+IDAwNjE7Ozs7Tjs7O0ZGMjE7O0ZGMjEKK0ZGNDI7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBCO0xsOzA7TDs8d2lkZT4gMDA2Mjs7OztOOzs7RkYyMjs7RkYyMgorRkY0MztGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEM7TGw7MDtMOzx3aWRlPiAwMDYzOzs7O047OztGRjIzOztGRjIzCitGRjQ0O0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgRDtMbDswO0w7PHdpZGU+IDAwNjQ7Ozs7Tjs7O0ZGMjQ7O0ZGMjQKK0ZGNDU7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBFO0xsOzA7TDs8d2lkZT4gMDA2NTs7OztOOzs7RkYyNTs7RkYyNQorRkY0NjtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEY7TGw7MDtMOzx3aWRlPiAwMDY2Ozs7O047OztGRjI2OztGRjI2CitGRjQ3O0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgRztMbDswO0w7PHdpZGU+IDAwNjc7Ozs7Tjs7O0ZGMjc7O0ZGMjcKK0ZGNDg7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBIO0xsOzA7TDs8d2lkZT4gMDA2ODs7OztOOzs7RkYyODs7RkYyOAorRkY0OTtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEk7TGw7MDtMOzx3aWRlPiAwMDY5Ozs7O047OztGRjI5OztGRjI5CitGRjRBO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgSjtMbDswO0w7PHdpZGU+IDAwNkE7Ozs7Tjs7O0ZGMkE7O0ZGMkEKK0ZGNEI7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBLO0xsOzA7TDs8d2lkZT4gMDA2Qjs7OztOOzs7RkYyQjs7RkYyQgorRkY0QztGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEw7TGw7MDtMOzx3aWRlPiAwMDZDOzs7O047OztGRjJDOztGRjJDCitGRjREO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgTTtMbDswO0w7PHdpZGU+IDAwNkQ7Ozs7Tjs7O0ZGMkQ7O0ZGMkQKK0ZGNEU7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBOO0xsOzA7TDs8d2lkZT4gMDA2RTs7OztOOzs7RkYyRTs7RkYyRQorRkY0RjtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIE87TGw7MDtMOzx3aWRlPiAwMDZGOzs7O047OztGRjJGOztGRjJGCitGRjUwO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgUDtMbDswO0w7PHdpZGU+IDAwNzA7Ozs7Tjs7O0ZGMzA7O0ZGMzAKK0ZGNTE7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBRO0xsOzA7TDs8d2lkZT4gMDA3MTs7OztOOzs7RkYzMTs7RkYzMQorRkY1MjtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIFI7TGw7MDtMOzx3aWRlPiAwMDcyOzs7O047OztGRjMyOztGRjMyCitGRjUzO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgUztMbDswO0w7PHdpZGU+IDAwNzM7Ozs7Tjs7O0ZGMzM7O0ZGMzMKK0ZGNTQ7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBUO0xsOzA7TDs8d2lkZT4gMDA3NDs7OztOOzs7RkYzNDs7RkYzNAorRkY1NTtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIFU7TGw7MDtMOzx3aWRlPiAwMDc1Ozs7O047OztGRjM1OztGRjM1CitGRjU2O0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgVjtMbDswO0w7PHdpZGU+IDAwNzY7Ozs7Tjs7O0ZGMzY7O0ZGMzYKK0ZGNTc7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBXO0xsOzA7TDs8d2lkZT4gMDA3Nzs7OztOOzs7RkYzNzs7RkYzNworRkY1ODtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIFg7TGw7MDtMOzx3aWRlPiAwMDc4Ozs7O047OztGRjM4OztGRjM4CitGRjU5O0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgWTtMbDswO0w7PHdpZGU+IDAwNzk7Ozs7Tjs7O0ZGMzk7O0ZGMzkKK0ZGNUE7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBaO0xsOzA7TDs8d2lkZT4gMDA3QTs7OztOOzs7RkYzQTs7RkYzQQorRkY1QjtGVUxMV0lEVEggTEVGVCBDVVJMWSBCUkFDS0VUO1BzOzA7T047PHdpZGU+IDAwN0I7Ozs7WTtGVUxMV0lEVEggT1BFTklORyBDVVJMWSBCUkFDS0VUOzs7OworRkY1QztGVUxMV0lEVEggVkVSVElDQUwgTElORTtTbTswO09OOzx3aWRlPiAwMDdDOzs7O047RlVMTFdJRFRIIFZFUlRJQ0FMIEJBUjs7OzsKK0ZGNUQ7RlVMTFdJRFRIIFJJR0hUIENVUkxZIEJSQUNLRVQ7UGU7MDtPTjs8d2lkZT4gMDA3RDs7OztZO0ZVTExXSURUSCBDTE9TSU5HIENVUkxZIEJSQUNLRVQ7Ozs7CitGRjVFO0ZVTExXSURUSCBUSUxERTtTbTswO09OOzx3aWRlPiAwMDdFOzs7O047RlVMTFdJRFRIIFNQQUNJTkcgVElMREU7Ozs7CitGRjVGO0ZVTExXSURUSCBMRUZUIFdISVRFIFBBUkVOVEhFU0lTO1BzOzA7T047PHdpZGU+IDI5ODU7Ozs7WTs7Kjs7OworRkY2MDtGVUxMV0lEVEggUklHSFQgV0hJVEUgUEFSRU5USEVTSVM7UGU7MDtPTjs8d2lkZT4gMjk4Njs7OztZOzsqOzs7CitGRjYxO0hBTEZXSURUSCBJREVPR1JBUEhJQyBGVUxMIFNUT1A7UG87MDtPTjs8bmFycm93PiAzMDAyOzs7O047SEFMRldJRFRIIElERU9HUkFQSElDIFBFUklPRDs7OzsKK0ZGNjI7SEFMRldJRFRIIExFRlQgQ09STkVSIEJSQUNLRVQ7UHM7MDtPTjs8bmFycm93PiAzMDBDOzs7O1k7SEFMRldJRFRIIE9QRU5JTkcgQ09STkVSIEJSQUNLRVQ7Ozs7CitGRjYzO0hBTEZXSURUSCBSSUdIVCBDT1JORVIgQlJBQ0tFVDtQZTswO09OOzxuYXJyb3c+IDMwMEQ7Ozs7WTtIQUxGV0lEVEggQ0xPU0lORyBDT1JORVIgQlJBQ0tFVDs7OzsKK0ZGNjQ7SEFMRldJRFRIIElERU9HUkFQSElDIENPTU1BO1BvOzA7T047PG5hcnJvdz4gMzAwMTs7OztOOzs7OzsKK0ZGNjU7SEFMRldJRFRIIEtBVEFLQU5BIE1JRERMRSBET1Q7UGM7MDtPTjs8bmFycm93PiAzMEZCOzs7O047Ozs7OworRkY2NjtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFdPO0xvOzA7TDs8bmFycm93PiAzMEYyOzs7O047Ozs7OworRkY2NztIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFNNQUxMIEE7TG87MDtMOzxuYXJyb3c+IDMwQTE7Ozs7Tjs7Ozs7CitGRjY4O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU01BTEwgSTtMbzswO0w7PG5hcnJvdz4gMzBBMzs7OztOOzs7OzsKK0ZGNjk7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTUFMTCBVO0xvOzA7TDs8bmFycm93PiAzMEE1Ozs7O047Ozs7OworRkY2QTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFNNQUxMIEU7TG87MDtMOzxuYXJyb3c+IDMwQTc7Ozs7Tjs7Ozs7CitGRjZCO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU01BTEwgTztMbzswO0w7PG5hcnJvdz4gMzBBOTs7OztOOzs7OzsKK0ZGNkM7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTUFMTCBZQTtMbzswO0w7PG5hcnJvdz4gMzBFMzs7OztOOzs7OzsKK0ZGNkQ7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTUFMTCBZVTtMbzswO0w7PG5hcnJvdz4gMzBFNTs7OztOOzs7OzsKK0ZGNkU7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTUFMTCBZTztMbzswO0w7PG5hcnJvdz4gMzBFNzs7OztOOzs7OzsKK0ZGNkY7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTUFMTCBUVTtMbzswO0w7PG5hcnJvdz4gMzBDMzs7OztOOzs7OzsKK0ZGNzA7SEFMRldJRFRIIEtBVEFLQU5BLUhJUkFHQU5BIFBST0xPTkdFRCBTT1VORCBNQVJLO0xtOzA7TDs8bmFycm93PiAzMEZDOzs7O047Ozs7OworRkY3MTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIEE7TG87MDtMOzxuYXJyb3c+IDMwQTI7Ozs7Tjs7Ozs7CitGRjcyO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgSTtMbzswO0w7PG5hcnJvdz4gMzBBNDs7OztOOzs7OzsKK0ZGNzM7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBVO0xvOzA7TDs8bmFycm93PiAzMEE2Ozs7O047Ozs7OworRkY3NDtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIEU7TG87MDtMOzxuYXJyb3c+IDMwQTg7Ozs7Tjs7Ozs7CitGRjc1O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTztMbzswO0w7PG5hcnJvdz4gMzBBQTs7OztOOzs7OzsKK0ZGNzY7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBLQTtMbzswO0w7PG5hcnJvdz4gMzBBQjs7OztOOzs7OzsKK0ZGNzc7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBLSTtMbzswO0w7PG5hcnJvdz4gMzBBRDs7OztOOzs7OzsKK0ZGNzg7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBLVTtMbzswO0w7PG5hcnJvdz4gMzBBRjs7OztOOzs7OzsKK0ZGNzk7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBLRTtMbzswO0w7PG5hcnJvdz4gMzBCMTs7OztOOzs7OzsKK0ZGN0E7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBLTztMbzswO0w7PG5hcnJvdz4gMzBCMzs7OztOOzs7OzsKK0ZGN0I7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTQTtMbzswO0w7PG5hcnJvdz4gMzBCNTs7OztOOzs7OzsKK0ZGN0M7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTSTtMbzswO0w7PG5hcnJvdz4gMzBCNzs7OztOOzs7OzsKK0ZGN0Q7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTVTtMbzswO0w7PG5hcnJvdz4gMzBCOTs7OztOOzs7OzsKK0ZGN0U7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTRTtMbzswO0w7PG5hcnJvdz4gMzBCQjs7OztOOzs7OzsKK0ZGN0Y7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTztMbzswO0w7PG5hcnJvdz4gMzBCRDs7OztOOzs7OzsKK0ZGODA7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBUQTtMbzswO0w7PG5hcnJvdz4gMzBCRjs7OztOOzs7OzsKK0ZGODE7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBUSTtMbzswO0w7PG5hcnJvdz4gMzBDMTs7OztOOzs7OzsKK0ZGODI7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBUVTtMbzswO0w7PG5hcnJvdz4gMzBDNDs7OztOOzs7OzsKK0ZGODM7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBURTtMbzswO0w7PG5hcnJvdz4gMzBDNjs7OztOOzs7OzsKK0ZGODQ7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBUTztMbzswO0w7PG5hcnJvdz4gMzBDODs7OztOOzs7OzsKK0ZGODU7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBOQTtMbzswO0w7PG5hcnJvdz4gMzBDQTs7OztOOzs7OzsKK0ZGODY7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBOSTtMbzswO0w7PG5hcnJvdz4gMzBDQjs7OztOOzs7OzsKK0ZGODc7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBOVTtMbzswO0w7PG5hcnJvdz4gMzBDQzs7OztOOzs7OzsKK0ZGODg7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBORTtMbzswO0w7PG5hcnJvdz4gMzBDRDs7OztOOzs7OzsKK0ZGODk7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBOTztMbzswO0w7PG5hcnJvdz4gMzBDRTs7OztOOzs7OzsKK0ZGOEE7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBIQTtMbzswO0w7PG5hcnJvdz4gMzBDRjs7OztOOzs7OzsKK0ZGOEI7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBISTtMbzswO0w7PG5hcnJvdz4gMzBEMjs7OztOOzs7OzsKK0ZGOEM7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBIVTtMbzswO0w7PG5hcnJvdz4gMzBENTs7OztOOzs7OzsKK0ZGOEQ7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBIRTtMbzswO0w7PG5hcnJvdz4gMzBEODs7OztOOzs7OzsKK0ZGOEU7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBITztMbzswO0w7PG5hcnJvdz4gMzBEQjs7OztOOzs7OzsKK0ZGOEY7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBNQTtMbzswO0w7PG5hcnJvdz4gMzBERTs7OztOOzs7OzsKK0ZGOTA7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBNSTtMbzswO0w7PG5hcnJvdz4gMzBERjs7OztOOzs7OzsKK0ZGOTE7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBNVTtMbzswO0w7PG5hcnJvdz4gMzBFMDs7OztOOzs7OzsKK0ZGOTI7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBNRTtMbzswO0w7PG5hcnJvdz4gMzBFMTs7OztOOzs7OzsKK0ZGOTM7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBNTztMbzswO0w7PG5hcnJvdz4gMzBFMjs7OztOOzs7OzsKK0ZGOTQ7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBZQTtMbzswO0w7PG5hcnJvdz4gMzBFNDs7OztOOzs7OzsKK0ZGOTU7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBZVTtMbzswO0w7PG5hcnJvdz4gMzBFNjs7OztOOzs7OzsKK0ZGOTY7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBZTztMbzswO0w7PG5hcnJvdz4gMzBFODs7OztOOzs7OzsKK0ZGOTc7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBSQTtMbzswO0w7PG5hcnJvdz4gMzBFOTs7OztOOzs7OzsKK0ZGOTg7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBSSTtMbzswO0w7PG5hcnJvdz4gMzBFQTs7OztOOzs7OzsKK0ZGOTk7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBSVTtMbzswO0w7PG5hcnJvdz4gMzBFQjs7OztOOzs7OzsKK0ZGOUE7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBSRTtMbzswO0w7PG5hcnJvdz4gMzBFQzs7OztOOzs7OzsKK0ZGOUI7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBSTztMbzswO0w7PG5hcnJvdz4gMzBFRDs7OztOOzs7OzsKK0ZGOUM7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBXQTtMbzswO0w7PG5hcnJvdz4gMzBFRjs7OztOOzs7OzsKK0ZGOUQ7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBOO0xvOzA7TDs8bmFycm93PiAzMEYzOzs7O047Ozs7OworRkY5RTtIQUxGV0lEVEggS0FUQUtBTkEgVk9JQ0VEIFNPVU5EIE1BUks7TG07MDtMOzxuYXJyb3c+IDMwOTk7Ozs7Tjs7aGFsZndpZHRoIGthdGFrYW5hLWhpcmFnYW5hIHZvaWNlZCBzb3VuZCBtYXJrOzs7CitGRjlGO0hBTEZXSURUSCBLQVRBS0FOQSBTRU1JLVZPSUNFRCBTT1VORCBNQVJLO0xtOzA7TDs8bmFycm93PiAzMDlBOzs7O047O2hhbGZ3aWR0aCBrYXRha2FuYS1oaXJhZ2FuYSBzZW1pLXZvaWNlZCBzb3VuZCBtYXJrOzs7CitGRkEwO0hBTEZXSURUSCBIQU5HVUwgRklMTEVSO0xvOzA7TDs8bmFycm93PiAzMTY0Ozs7O047SEFMRldJRFRIIEhBTkdVTCBDQUUgT007Ozs7CitGRkExO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEtJWUVPSztMbzswO0w7PG5hcnJvdz4gMzEzMTs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEdJWUVPRzs7OzsKK0ZGQTI7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU1NBTkdLSVlFT0s7TG87MDtMOzxuYXJyb3c+IDMxMzI7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBTU0FORyBHSVlFT0c7Ozs7CitGRkEzO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEtJWUVPSy1TSU9TO0xvOzA7TDs8bmFycm93PiAzMTMzOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgR0lZRU9HIFNJT1M7Ozs7CitGRkE0O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIE5JRVVOO0xvOzA7TDs8bmFycm93PiAzMTM0Ozs7O047Ozs7OworRkZBNTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBOSUVVTi1DSUVVQztMbzswO0w7PG5hcnJvdz4gMzEzNTs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIE5JRVVOIEpJRVVKOzs7OworRkZBNjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBOSUVVTi1ISUVVSDtMbzswO0w7PG5hcnJvdz4gMzEzNjs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIE5JRVVOIEhJRVVIOzs7OworRkZBNztIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBUSUtFVVQ7TG87MDtMOzxuYXJyb3c+IDMxMzc7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBESUdFVUQ7Ozs7CitGRkE4O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFNTQU5HVElLRVVUO0xvOzA7TDs8bmFycm93PiAzMTM4Ozs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU1NBTkcgRElHRVVEOzs7OworRkZBOTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBSSUVVTDtMbzswO0w7PG5hcnJvdz4gMzEzOTs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIExJRVVMOzs7OworRkZBQTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBSSUVVTC1LSVlFT0s7TG87MDtMOzxuYXJyb3c+IDMxM0E7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBMSUVVTCBHSVlFT0c7Ozs7CitGRkFCO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFJJRVVMLU1JRVVNO0xvOzA7TDs8bmFycm93PiAzMTNCOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTElFVUwgTUlFVU07Ozs7CitGRkFDO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFJJRVVMLVBJRVVQO0xvOzA7TDs8bmFycm93PiAzMTNDOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTElFVUwgQklFVUI7Ozs7CitGRkFEO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFJJRVVMLVNJT1M7TG87MDtMOzxuYXJyb3c+IDMxM0Q7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBMSUVVTCBTSU9TOzs7OworRkZBRTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBSSUVVTC1USElFVVRIO0xvOzA7TDs8bmFycm93PiAzMTNFOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTElFVUwgVElFVVQ7Ozs7CitGRkFGO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFJJRVVMLVBISUVVUEg7TG87MDtMOzxuYXJyb3c+IDMxM0Y7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBMSUVVTCBQSUVVUDs7OzsKK0ZGQjA7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUklFVUwtSElFVUg7TG87MDtMOzxuYXJyb3c+IDMxNDA7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBMSUVVTCBISUVVSDs7OzsKK0ZGQjE7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTUlFVU07TG87MDtMOzxuYXJyb3c+IDMxNDE7Ozs7Tjs7Ozs7CitGRkIyO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFBJRVVQO0xvOzA7TDs8bmFycm93PiAzMTQyOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgQklFVUI7Ozs7CitGRkIzO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFNTQU5HUElFVVA7TG87MDtMOzxuYXJyb3c+IDMxNDM7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBTU0FORyBCSUVVQjs7OzsKK0ZGQjQ7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUElFVVAtU0lPUztMbzswO0w7PG5hcnJvdz4gMzE0NDs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEJJRVVCIFNJT1M7Ozs7CitGRkI1O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFNJT1M7TG87MDtMOzxuYXJyb3c+IDMxNDU7Ozs7Tjs7Ozs7CitGRkI2O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFNTQU5HU0lPUztMbzswO0w7PG5hcnJvdz4gMzE0Njs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFNTQU5HIFNJT1M7Ozs7CitGRkI3O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIElFVU5HO0xvOzA7TDs8bmFycm93PiAzMTQ3Ozs7O047Ozs7OworRkZCODtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBDSUVVQztMbzswO0w7PG5hcnJvdz4gMzE0ODs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEpJRVVKOzs7OworRkZCOTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBTU0FOR0NJRVVDO0xvOzA7TDs8bmFycm93PiAzMTQ5Ozs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU1NBTkcgSklFVUo7Ozs7CitGRkJBO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIENISUVVQ0g7TG87MDtMOzxuYXJyb3c+IDMxNEE7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBDSUVVQzs7OzsKK0ZGQkI7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgS0hJRVVLSDtMbzswO0w7PG5hcnJvdz4gMzE0Qjs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEtJWUVPSzs7OzsKK0ZGQkM7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgVEhJRVVUSDtMbzswO0w7PG5hcnJvdz4gMzE0Qzs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFRJRVVUOzs7OworRkZCRDtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBQSElFVVBIO0xvOzA7TDs8bmFycm93PiAzMTREOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUElFVVA7Ozs7CitGRkJFO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEhJRVVIO0xvOzA7TDs8bmFycm93PiAzMTRFOzs7O047Ozs7OworRkZDMjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBBO0xvOzA7TDs8bmFycm93PiAzMTRGOzs7O047Ozs7OworRkZDMztIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBBRTtMbzswO0w7PG5hcnJvdz4gMzE1MDs7OztOOzs7OzsKK0ZGQzQ7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgWUE7TG87MDtMOzxuYXJyb3c+IDMxNTE7Ozs7Tjs7Ozs7CitGRkM1O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFlBRTtMbzswO0w7PG5hcnJvdz4gMzE1Mjs7OztOOzs7OzsKK0ZGQzY7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgRU87TG87MDtMOzxuYXJyb3c+IDMxNTM7Ozs7Tjs7Ozs7CitGRkM3O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEU7TG87MDtMOzxuYXJyb3c+IDMxNTQ7Ozs7Tjs7Ozs7CitGRkNBO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFlFTztMbzswO0w7PG5hcnJvdz4gMzE1NTs7OztOOzs7OzsKK0ZGQ0I7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgWUU7TG87MDtMOzxuYXJyb3c+IDMxNTY7Ozs7Tjs7Ozs7CitGRkNDO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIE87TG87MDtMOzxuYXJyb3c+IDMxNTc7Ozs7Tjs7Ozs7CitGRkNEO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFdBO0xvOzA7TDs8bmFycm93PiAzMTU4Ozs7O047Ozs7OworRkZDRTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBXQUU7TG87MDtMOzxuYXJyb3c+IDMxNTk7Ozs7Tjs7Ozs7CitGRkNGO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIE9FO0xvOzA7TDs8bmFycm93PiAzMTVBOzs7O047Ozs7OworRkZEMjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBZTztMbzswO0w7PG5hcnJvdz4gMzE1Qjs7OztOOzs7OzsKK0ZGRDM7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgVTtMbzswO0w7PG5hcnJvdz4gMzE1Qzs7OztOOzs7OzsKK0ZGRDQ7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgV0VPO0xvOzA7TDs8bmFycm93PiAzMTVEOzs7O047Ozs7OworRkZENTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBXRTtMbzswO0w7PG5hcnJvdz4gMzE1RTs7OztOOzs7OzsKK0ZGRDY7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgV0k7TG87MDtMOzxuYXJyb3c+IDMxNUY7Ozs7Tjs7Ozs7CitGRkQ3O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFlVO0xvOzA7TDs8bmFycm93PiAzMTYwOzs7O047Ozs7OworRkZEQTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBFVTtMbzswO0w7PG5hcnJvdz4gMzE2MTs7OztOOzs7OzsKK0ZGREI7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgWUk7TG87MDtMOzxuYXJyb3c+IDMxNjI7Ozs7Tjs7Ozs7CitGRkRDO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEk7TG87MDtMOzxuYXJyb3c+IDMxNjM7Ozs7Tjs7Ozs7CitGRkUwO0ZVTExXSURUSCBDRU5UIFNJR047U2M7MDtFVDs8d2lkZT4gMDBBMjs7OztOOzs7OzsKK0ZGRTE7RlVMTFdJRFRIIFBPVU5EIFNJR047U2M7MDtFVDs8d2lkZT4gMDBBMzs7OztOOzs7OzsKK0ZGRTI7RlVMTFdJRFRIIE5PVCBTSUdOO1NtOzA7T047PHdpZGU+IDAwQUM7Ozs7Tjs7Ozs7CitGRkUzO0ZVTExXSURUSCBNQUNST047U2s7MDtPTjs8d2lkZT4gMDBBRjs7OztOO0ZVTExXSURUSCBTUEFDSU5HIE1BQ1JPTjsqOzs7CitGRkU0O0ZVTExXSURUSCBCUk9LRU4gQkFSO1NvOzA7T047PHdpZGU+IDAwQTY7Ozs7TjtGVUxMV0lEVEggQlJPS0VOIFZFUlRJQ0FMIEJBUjs7OzsKK0ZGRTU7RlVMTFdJRFRIIFlFTiBTSUdOO1NjOzA7RVQ7PHdpZGU+IDAwQTU7Ozs7Tjs7Ozs7CitGRkU2O0ZVTExXSURUSCBXT04gU0lHTjtTYzswO0VUOzx3aWRlPiAyMEE5Ozs7O047Ozs7OworRkZFODtIQUxGV0lEVEggRk9STVMgTElHSFQgVkVSVElDQUw7U287MDtPTjs8bmFycm93PiAyNTAyOzs7O047Ozs7OworRkZFOTtIQUxGV0lEVEggTEVGVFdBUkRTIEFSUk9XO1NtOzA7T047PG5hcnJvdz4gMjE5MDs7OztOOzs7OzsKK0ZGRUE7SEFMRldJRFRIIFVQV0FSRFMgQVJST1c7U207MDtPTjs8bmFycm93PiAyMTkxOzs7O047Ozs7OworRkZFQjtIQUxGV0lEVEggUklHSFRXQVJEUyBBUlJPVztTbTswO09OOzxuYXJyb3c+IDIxOTI7Ozs7Tjs7Ozs7CitGRkVDO0hBTEZXSURUSCBET1dOV0FSRFMgQVJST1c7U207MDtPTjs8bmFycm93PiAyMTkzOzs7O047Ozs7OworRkZFRDtIQUxGV0lEVEggQkxBQ0sgU1FVQVJFO1NvOzA7T047PG5hcnJvdz4gMjVBMDs7OztOOzs7OzsKK0ZGRUU7SEFMRldJRFRIIFdISVRFIENJUkNMRTtTbzswO09OOzxuYXJyb3c+IDI1Q0I7Ozs7Tjs7Ozs7CitGRkY5O0lOVEVSTElORUFSIEFOTk9UQVRJT04gQU5DSE9SO0NmOzA7Qk47Ozs7O047Ozs7OworRkZGQTtJTlRFUkxJTkVBUiBBTk5PVEFUSU9OIFNFUEFSQVRPUjtDZjswO0JOOzs7OztOOzs7OzsKK0ZGRkI7SU5URVJMSU5FQVIgQU5OT1RBVElPTiBURVJNSU5BVE9SO0NmOzA7Qk47Ozs7O047Ozs7OworRkZGQztPQkpFQ1QgUkVQTEFDRU1FTlQgQ0hBUkFDVEVSO1NvOzA7T047Ozs7O047Ozs7OworRkZGRDtSRVBMQUNFTUVOVCBDSEFSQUNURVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisxMDMwMDtPTEQgSVRBTElDIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMwMTtPTEQgSVRBTElDIExFVFRFUiBCRTtMbzswO0w7Ozs7O047Ozs7OworMTAzMDI7T0xEIElUQUxJQyBMRVRURVIgS0U7TG87MDtMOzs7OztOOzs7OzsKKzEwMzAzO09MRCBJVEFMSUMgTEVUVEVSIERFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMwNDtPTEQgSVRBTElDIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMwNTtPTEQgSVRBTElDIExFVFRFUiBWRTtMbzswO0w7Ozs7O047Ozs7OworMTAzMDY7T0xEIElUQUxJQyBMRVRURVIgWkU7TG87MDtMOzs7OztOOzs7OzsKKzEwMzA3O09MRCBJVEFMSUMgTEVUVEVSIEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMwODtPTEQgSVRBTElDIExFVFRFUiBUSEU7TG87MDtMOzs7OztOOzs7OzsKKzEwMzA5O09MRCBJVEFMSUMgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzEwMzBBO09MRCBJVEFMSUMgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMwQjtPTEQgSVRBTElDIExFVFRFUiBFTDtMbzswO0w7Ozs7O047Ozs7OworMTAzMEM7T0xEIElUQUxJQyBMRVRURVIgRU07TG87MDtMOzs7OztOOzs7OzsKKzEwMzBEO09MRCBJVEFMSUMgTEVUVEVSIEVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMwRTtPTEQgSVRBTElDIExFVFRFUiBFU0g7TG87MDtMOzs7OztOOzs7OzsKKzEwMzBGO09MRCBJVEFMSUMgTEVUVEVSIE87TG87MDtMOzs7OztOOztGYWxpc2Nhbjs7OworMTAzMTA7T0xEIElUQUxJQyBMRVRURVIgUEU7TG87MDtMOzs7OztOOzs7OzsKKzEwMzExO09MRCBJVEFMSUMgTEVUVEVSIFNIRTtMbzswO0w7Ozs7O047Ozs7OworMTAzMTI7T0xEIElUQUxJQyBMRVRURVIgS1U7TG87MDtMOzs7OztOOzs7OzsKKzEwMzEzO09MRCBJVEFMSUMgTEVUVEVSIEVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMxNDtPTEQgSVRBTElDIExFVFRFUiBFUztMbzswO0w7Ozs7O047Ozs7OworMTAzMTU7T0xEIElUQUxJQyBMRVRURVIgVEU7TG87MDtMOzs7OztOOzs7OzsKKzEwMzE2O09MRCBJVEFMSUMgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzEwMzE3O09MRCBJVEFMSUMgTEVUVEVSIEVLUztMbzswO0w7Ozs7O047O0ZhbGlzY2FuOzs7CisxMDMxODtPTEQgSVRBTElDIExFVFRFUiBQSEU7TG87MDtMOzs7OztOOzs7OzsKKzEwMzE5O09MRCBJVEFMSUMgTEVUVEVSIEtIRTtMbzswO0w7Ozs7O047Ozs7OworMTAzMUE7T0xEIElUQUxJQyBMRVRURVIgRUY7TG87MDtMOzs7OztOOzs7OzsKKzEwMzFCO09MRCBJVEFMSUMgTEVUVEVSIEVSUztMbzswO0w7Ozs7O047O1VtYnJpYW47OzsKKzEwMzFDO09MRCBJVEFMSUMgTEVUVEVSIENIRTtMbzswO0w7Ozs7O047O1VtYnJpYW47OzsKKzEwMzFEO09MRCBJVEFMSUMgTEVUVEVSIElJO0xvOzA7TDs7Ozs7Tjs7T3NjYW47OzsKKzEwMzFFO09MRCBJVEFMSUMgTEVUVEVSIFVVO0xvOzA7TDs7Ozs7Tjs7T3NjYW47OzsKKzEwMzIwO09MRCBJVEFMSUMgTlVNRVJBTCBPTkU7Tm87MDtMOzs7OzE7Tjs7Ozs7CisxMDMyMTtPTEQgSVRBTElDIE5VTUVSQUwgRklWRTtObzswO0w7Ozs7NTtOOzs7OzsKKzEwMzIyO09MRCBJVEFMSUMgTlVNRVJBTCBURU47Tm87MDtMOzs7OzEwO047Ozs7OworMTAzMjM7T0xEIElUQUxJQyBOVU1FUkFMIEZJRlRZO05vOzA7TDs7Ozs1MDtOOzs7OzsKKzEwMzMwO0dPVEhJQyBMRVRURVIgQUhTQTtMbzswO0w7Ozs7O047Ozs7OworMTAzMzE7R09USElDIExFVFRFUiBCQUlSS0FOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMzMjtHT1RISUMgTEVUVEVSIEdJQkE7TG87MDtMOzs7OztOOzs7OzsKKzEwMzMzO0dPVEhJQyBMRVRURVIgREFHUztMbzswO0w7Ozs7O047Ozs7OworMTAzMzQ7R09USElDIExFVFRFUiBBSUhWVVM7TG87MDtMOzs7OztOOzs7OzsKKzEwMzM1O0dPVEhJQyBMRVRURVIgUUFJUlRIUkE7TG87MDtMOzs7OztOOzs7OzsKKzEwMzM2O0dPVEhJQyBMRVRURVIgSVVKQTtMbzswO0w7Ozs7O047Ozs7OworMTAzMzc7R09USElDIExFVFRFUiBIQUdMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMzODtHT1RISUMgTEVUVEVSIFRISVVUSDtMbzswO0w7Ozs7O047Ozs7OworMTAzMzk7R09USElDIExFVFRFUiBFSVM7TG87MDtMOzs7OztOOzs7OzsKKzEwMzNBO0dPVEhJQyBMRVRURVIgS1VTTUE7TG87MDtMOzs7OztOOzs7OzsKKzEwMzNCO0dPVEhJQyBMRVRURVIgTEFHVVM7TG87MDtMOzs7OztOOzs7OzsKKzEwMzNDO0dPVEhJQyBMRVRURVIgTUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzEwMzNEO0dPVEhJQyBMRVRURVIgTkFVVEhTO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMzRTtHT1RISUMgTEVUVEVSIEpFUjtMbzswO0w7Ozs7O047Ozs7OworMTAzM0Y7R09USElDIExFVFRFUiBVUlVTO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDM0MDtHT1RISUMgTEVUVEVSIFBBSVJUSFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDM0MTtHT1RISUMgTEVUVEVSIE5JTkVUWTtMbzswO0w7Ozs7O047Ozs7OworMTAzNDI7R09USElDIExFVFRFUiBSQUlEQTtMbzswO0w7Ozs7O047Ozs7OworMTAzNDM7R09USElDIExFVFRFUiBTQVVJTDtMbzswO0w7Ozs7O047Ozs7OworMTAzNDQ7R09USElDIExFVFRFUiBURUlXUztMbzswO0w7Ozs7O047Ozs7OworMTAzNDU7R09USElDIExFVFRFUiBXSU5KQTtMbzswO0w7Ozs7O047Ozs7OworMTAzNDY7R09USElDIExFVFRFUiBGQUlIVTtMbzswO0w7Ozs7O047Ozs7OworMTAzNDc7R09USElDIExFVFRFUiBJR0dXUztMbzswO0w7Ozs7O047Ozs7OworMTAzNDg7R09USElDIExFVFRFUiBIV0FJUjtMbzswO0w7Ozs7O047Ozs7OworMTAzNDk7R09USElDIExFVFRFUiBPVEhBTDtMbzswO0w7Ozs7O047Ozs7OworMTAzNEE7R09USElDIExFVFRFUiBOSU5FIEhVTkRSRUQ7Tmw7MDtMOzs7OztOOzs7OzsKKzEwNDAwO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgTE9ORyBJO0x1OzA7TDs7Ozs7Tjs7OzsxMDQyODsKKzEwNDAxO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgTE9ORyBFO0x1OzA7TDs7Ozs7Tjs7OzsxMDQyOTsKKzEwNDAyO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgTE9ORyBBO0x1OzA7TDs7Ozs7Tjs7OzsxMDQyQTsKKzEwNDAzO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgTE9ORyBBSDtMdTswO0w7Ozs7O047Ozs7MTA0MkI7CisxMDQwNDtERVNFUkVUIENBUElUQUwgTEVUVEVSIExPTkcgTztMdTswO0w7Ozs7O047Ozs7MTA0MkM7CisxMDQwNTtERVNFUkVUIENBUElUQUwgTEVUVEVSIExPTkcgT087THU7MDtMOzs7OztOOzs7OzEwNDJEOworMTA0MDY7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBTSE9SVCBJO0x1OzA7TDs7Ozs7Tjs7OzsxMDQyRTsKKzEwNDA3O0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgU0hPUlQgRTtMdTswO0w7Ozs7O047Ozs7MTA0MkY7CisxMDQwODtERVNFUkVUIENBUElUQUwgTEVUVEVSIFNIT1JUIEE7THU7MDtMOzs7OztOOzs7OzEwNDMwOworMTA0MDk7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBTSE9SVCBBSDtMdTswO0w7Ozs7O047Ozs7MTA0MzE7CisxMDQwQTtERVNFUkVUIENBUElUQUwgTEVUVEVSIFNIT1JUIE87THU7MDtMOzs7OztOOzs7OzEwNDMyOworMTA0MEI7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBTSE9SVCBPTztMdTswO0w7Ozs7O047Ozs7MTA0MzM7CisxMDQwQztERVNFUkVUIENBUElUQUwgTEVUVEVSIEFZO0x1OzA7TDs7Ozs7Tjs7OzsxMDQzNDsKKzEwNDBEO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgT1c7THU7MDtMOzs7OztOOzs7OzEwNDM1OworMTA0MEU7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBXVTtMdTswO0w7Ozs7O047Ozs7MTA0MzY7CisxMDQwRjtERVNFUkVUIENBUElUQUwgTEVUVEVSIFlFRTtMdTswO0w7Ozs7O047Ozs7MTA0Mzc7CisxMDQxMDtERVNFUkVUIENBUElUQUwgTEVUVEVSIEg7THU7MDtMOzs7OztOOzs7OzEwNDM4OworMTA0MTE7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBQRUU7THU7MDtMOzs7OztOOzs7OzEwNDM5OworMTA0MTI7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBCRUU7THU7MDtMOzs7OztOOzs7OzEwNDNBOworMTA0MTM7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBURUU7THU7MDtMOzs7OztOOzs7OzEwNDNCOworMTA0MTQ7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBERUU7THU7MDtMOzs7OztOOzs7OzEwNDNDOworMTA0MTU7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBDSEVFO0x1OzA7TDs7Ozs7Tjs7OzsxMDQzRDsKKzEwNDE2O0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgSkVFO0x1OzA7TDs7Ozs7Tjs7OzsxMDQzRTsKKzEwNDE3O0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgS0FZO0x1OzA7TDs7Ozs7Tjs7OzsxMDQzRjsKKzEwNDE4O0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgR0FZO0x1OzA7TDs7Ozs7Tjs7OzsxMDQ0MDsKKzEwNDE5O0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgRUY7THU7MDtMOzs7OztOOzs7OzEwNDQxOworMTA0MUE7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBWRUU7THU7MDtMOzs7OztOOzs7OzEwNDQyOworMTA0MUI7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBFVEg7THU7MDtMOzs7OztOOzs7OzEwNDQzOworMTA0MUM7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBUSEVFO0x1OzA7TDs7Ozs7Tjs7OzsxMDQ0NDsKKzEwNDFEO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgRVM7THU7MDtMOzs7OztOOzs7OzEwNDQ1OworMTA0MUU7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBaRUU7THU7MDtMOzs7OztOOzs7OzEwNDQ2OworMTA0MUY7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBFU0g7THU7MDtMOzs7OztOOzs7OzEwNDQ3OworMTA0MjA7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBaSEVFO0x1OzA7TDs7Ozs7Tjs7OzsxMDQ0ODsKKzEwNDIxO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgRVI7THU7MDtMOzs7OztOOzs7OzEwNDQ5OworMTA0MjI7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBFTDtMdTswO0w7Ozs7O047Ozs7MTA0NEE7CisxMDQyMztERVNFUkVUIENBUElUQUwgTEVUVEVSIEVNO0x1OzA7TDs7Ozs7Tjs7OzsxMDQ0QjsKKzEwNDI0O0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgRU47THU7MDtMOzs7OztOOzs7OzEwNDRDOworMTA0MjU7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBFTkc7THU7MDtMOzs7OztOOzs7OzEwNDREOworMTA0Mjg7REVTRVJFVCBTTUFMTCBMRVRURVIgTE9ORyBJO0xsOzA7TDs7Ozs7Tjs7OzEwNDAwOzsxMDQwMAorMTA0Mjk7REVTRVJFVCBTTUFMTCBMRVRURVIgTE9ORyBFO0xsOzA7TDs7Ozs7Tjs7OzEwNDAxOzsxMDQwMQorMTA0MkE7REVTRVJFVCBTTUFMTCBMRVRURVIgTE9ORyBBO0xsOzA7TDs7Ozs7Tjs7OzEwNDAyOzsxMDQwMgorMTA0MkI7REVTRVJFVCBTTUFMTCBMRVRURVIgTE9ORyBBSDtMbDswO0w7Ozs7O047OzsxMDQwMzs7MTA0MDMKKzEwNDJDO0RFU0VSRVQgU01BTEwgTEVUVEVSIExPTkcgTztMbDswO0w7Ozs7O047OzsxMDQwNDs7MTA0MDQKKzEwNDJEO0RFU0VSRVQgU01BTEwgTEVUVEVSIExPTkcgT087TGw7MDtMOzs7OztOOzs7MTA0MDU7OzEwNDA1CisxMDQyRTtERVNFUkVUIFNNQUxMIExFVFRFUiBTSE9SVCBJO0xsOzA7TDs7Ozs7Tjs7OzEwNDA2OzsxMDQwNgorMTA0MkY7REVTRVJFVCBTTUFMTCBMRVRURVIgU0hPUlQgRTtMbDswO0w7Ozs7O047OzsxMDQwNzs7MTA0MDcKKzEwNDMwO0RFU0VSRVQgU01BTEwgTEVUVEVSIFNIT1JUIEE7TGw7MDtMOzs7OztOOzs7MTA0MDg7OzEwNDA4CisxMDQzMTtERVNFUkVUIFNNQUxMIExFVFRFUiBTSE9SVCBBSDtMbDswO0w7Ozs7O047OzsxMDQwOTs7MTA0MDkKKzEwNDMyO0RFU0VSRVQgU01BTEwgTEVUVEVSIFNIT1JUIE87TGw7MDtMOzs7OztOOzs7MTA0MEE7OzEwNDBBCisxMDQzMztERVNFUkVUIFNNQUxMIExFVFRFUiBTSE9SVCBPTztMbDswO0w7Ozs7O047OzsxMDQwQjs7MTA0MEIKKzEwNDM0O0RFU0VSRVQgU01BTEwgTEVUVEVSIEFZO0xsOzA7TDs7Ozs7Tjs7OzEwNDBDOzsxMDQwQworMTA0MzU7REVTRVJFVCBTTUFMTCBMRVRURVIgT1c7TGw7MDtMOzs7OztOOzs7MTA0MEQ7OzEwNDBECisxMDQzNjtERVNFUkVUIFNNQUxMIExFVFRFUiBXVTtMbDswO0w7Ozs7O047OzsxMDQwRTs7MTA0MEUKKzEwNDM3O0RFU0VSRVQgU01BTEwgTEVUVEVSIFlFRTtMbDswO0w7Ozs7O047OzsxMDQwRjs7MTA0MEYKKzEwNDM4O0RFU0VSRVQgU01BTEwgTEVUVEVSIEg7TGw7MDtMOzs7OztOOzs7MTA0MTA7OzEwNDEwCisxMDQzOTtERVNFUkVUIFNNQUxMIExFVFRFUiBQRUU7TGw7MDtMOzs7OztOOzs7MTA0MTE7OzEwNDExCisxMDQzQTtERVNFUkVUIFNNQUxMIExFVFRFUiBCRUU7TGw7MDtMOzs7OztOOzs7MTA0MTI7OzEwNDEyCisxMDQzQjtERVNFUkVUIFNNQUxMIExFVFRFUiBURUU7TGw7MDtMOzs7OztOOzs7MTA0MTM7OzEwNDEzCisxMDQzQztERVNFUkVUIFNNQUxMIExFVFRFUiBERUU7TGw7MDtMOzs7OztOOzs7MTA0MTQ7OzEwNDE0CisxMDQzRDtERVNFUkVUIFNNQUxMIExFVFRFUiBDSEVFO0xsOzA7TDs7Ozs7Tjs7OzEwNDE1OzsxMDQxNQorMTA0M0U7REVTRVJFVCBTTUFMTCBMRVRURVIgSkVFO0xsOzA7TDs7Ozs7Tjs7OzEwNDE2OzsxMDQxNgorMTA0M0Y7REVTRVJFVCBTTUFMTCBMRVRURVIgS0FZO0xsOzA7TDs7Ozs7Tjs7OzEwNDE3OzsxMDQxNworMTA0NDA7REVTRVJFVCBTTUFMTCBMRVRURVIgR0FZO0xsOzA7TDs7Ozs7Tjs7OzEwNDE4OzsxMDQxOAorMTA0NDE7REVTRVJFVCBTTUFMTCBMRVRURVIgRUY7TGw7MDtMOzs7OztOOzs7MTA0MTk7OzEwNDE5CisxMDQ0MjtERVNFUkVUIFNNQUxMIExFVFRFUiBWRUU7TGw7MDtMOzs7OztOOzs7MTA0MUE7OzEwNDFBCisxMDQ0MztERVNFUkVUIFNNQUxMIExFVFRFUiBFVEg7TGw7MDtMOzs7OztOOzs7MTA0MUI7OzEwNDFCCisxMDQ0NDtERVNFUkVUIFNNQUxMIExFVFRFUiBUSEVFO0xsOzA7TDs7Ozs7Tjs7OzEwNDFDOzsxMDQxQworMTA0NDU7REVTRVJFVCBTTUFMTCBMRVRURVIgRVM7TGw7MDtMOzs7OztOOzs7MTA0MUQ7OzEwNDFECisxMDQ0NjtERVNFUkVUIFNNQUxMIExFVFRFUiBaRUU7TGw7MDtMOzs7OztOOzs7MTA0MUU7OzEwNDFFCisxMDQ0NztERVNFUkVUIFNNQUxMIExFVFRFUiBFU0g7TGw7MDtMOzs7OztOOzs7MTA0MUY7OzEwNDFGCisxMDQ0ODtERVNFUkVUIFNNQUxMIExFVFRFUiBaSEVFO0xsOzA7TDs7Ozs7Tjs7OzEwNDIwOzsxMDQyMAorMTA0NDk7REVTRVJFVCBTTUFMTCBMRVRURVIgRVI7TGw7MDtMOzs7OztOOzs7MTA0MjE7OzEwNDIxCisxMDQ0QTtERVNFUkVUIFNNQUxMIExFVFRFUiBFTDtMbDswO0w7Ozs7O047OzsxMDQyMjs7MTA0MjIKKzEwNDRCO0RFU0VSRVQgU01BTEwgTEVUVEVSIEVNO0xsOzA7TDs7Ozs7Tjs7OzEwNDIzOzsxMDQyMworMTA0NEM7REVTRVJFVCBTTUFMTCBMRVRURVIgRU47TGw7MDtMOzs7OztOOzs7MTA0MjQ7OzEwNDI0CisxMDQ0RDtERVNFUkVUIFNNQUxMIExFVFRFUiBFTkc7TGw7MDtMOzs7OztOOzs7MTA0MjU7OzEwNDI1CisxRDAwMDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgUFNJTEk7U287MDtMOzs7OztOOzs7OzsKKzFEMDAxO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBEQVNFSUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDAyO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBQRVJJU1BPTUVOSTtTbzswO0w7Ozs7O047Ozs7OworMUQwMDM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE9YRUlBIEVLRk9OSVRJS09OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAwNDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgT1hFSUEgRElQTEk7U287MDtMOzs7OztOOzs7OzsKKzFEMDA1O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBWQVJFSUEgRUtGT05JVElLT047U287MDtMOzs7OztOOzs7OzsKKzFEMDA2O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBWQVJFSUEgRElQTEk7U287MDtMOzs7OztOOzs7OzsKKzFEMDA3O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLQVRISVNUSTtTbzswO0w7Ozs7O047Ozs7OworMUQwMDg7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFNZUk1BVElLSTtTbzswO0w7Ozs7O047Ozs7OworMUQwMDk7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBBUkFLTElUSUtJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAwQTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgWVBPS1JJU0lTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAwQjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgWVBPS1JJU0lTIERJUExJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAwQztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS1JFTUFTVEk7U287MDtMOzs7OztOOzs7OzsKKzFEMDBEO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBUEVTTyBFS0ZPTklUSUtPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwMEU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEVYTyBFS0ZPTklUSUtPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwMEY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRFTEVJQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMTA7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtFTlRJTUFUQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMTE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFQT1NUUk9GT1M7U287MDtMOzs7OztOOzs7OzsKKzFEMDEyO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBUE9TVFJPRk9TIERJUExJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAxMztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgU1lORVZNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMTQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRISVRBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAxNTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgT0xJR09OIEFSQ0hBSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAxNjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgR09SR09OIEFSQ0hBSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAxNztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgUFNJTE9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAxODtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQ0hBTUlMT047U287MDtMOzs7OztOOzs7OzsKKzFEMDE5O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBWQVRIWTtTbzswO0w7Ozs7O047Ozs7OworMUQwMUE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIElTT04gQVJDSEFJT047U287MDtMOzs7OztOOzs7OzsKKzFEMDFCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLRU5USU1BIEFSQ0hBSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAxQztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS0VOVElNQVRBIEFSQ0hBSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAxRDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgU0FYSU1BVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMDFFO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBQQVJJQ0hPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwMUY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFNUQVZST1MgQVBPREVYSUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDIwO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBPWEVJQUkgQVJDSEFJT047U287MDtMOzs7OztOOzs7OzsKKzFEMDIxO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBWQVJFSUFJIEFSQ0hBSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAyMjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQVBPREVSTUEgQVJDSEFJT047U287MDtMOzs7OztOOzs7OzsKKzFEMDIzO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBUE9USEVNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMjQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtMQVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMjU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFJFVk1BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAyNjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgUElBU01BIEFSQ0hBSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAyNztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgVElOQUdNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMjg7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFOQVRSSUNISVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMjk7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFNFSVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMkE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFNZTkFHTUEgQVJDSEFJT047U287MDtMOzs7OztOOzs7OzsKKzFEMDJCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTWU5BR01BIE1FVEEgU1RBVlJPVTtTbzswO0w7Ozs7O047Ozs7OworMUQwMkM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE9ZUkFOSVNNQSBBUkNIQUlPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwMkQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRIRU1BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAyRTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgTEVNT0k7U287MDtMOzs7OztOOzs7OzsKKzFEMDJGO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBEWU87U287MDtMOzs7OztOOzs7OzsKKzFEMDMwO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBUUklBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAzMTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgVEVTU0VSQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMzI7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtSQVRJTUFUQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMzM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFQRVNPIEVYTyBORU87U287MDtMOzs7OztOOzs7OzsKKzFEMDM0O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGVEhPUkEgQVJDSEFJT047U287MDtMOzs7OztOOzs7OzsKKzFEMDM1O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBJTUlGVEhPUkE7U287MDtMOzs7OztOOzs7OzsKKzFEMDM2O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBUUk9NSUtPTiBBUkNIQUlPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwMzc7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtBVEFWQSBUUk9NSUtPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwMzg7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBFTEFTVE9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAzOTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgUFNJRklTVE9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAzQTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS09OVEVWTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDNCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBDSE9SRVZNQSBBUkNIQUlPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwM0M7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFJBUElTTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDNEO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBQQVJBS0FMRVNNQSBBUkNIQUlPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwM0U7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBBUkFLTElUSUtJIEFSQ0hBSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAzRjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgSUNIQURJTjtTbzswO0w7Ozs7O047Ozs7OworMUQwNDA7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE5BTkE7U287MDtMOzs7OztOOzs7OzsKKzFEMDQxO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBQRVRBU01BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA0MjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS09OVEVWTUEgQUxMTztTbzswO0w7Ozs7O047Ozs7OworMUQwNDM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRST01JS09OIEFMTE87U287MDtMOzs7OztOOzs7OzsKKzFEMDQ0O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTVFJBR0dJU01BVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMDQ1O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBHUk9OVEhJU01BVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMDQ2O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBJU09OIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwNDc7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE9MSUdPTiBORU87U287MDtMOzs7OztOOzs7OzsKKzFEMDQ4O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBPWEVJQSBORU87U287MDtMOzs7OztOOzs7OzsKKzFEMDQ5O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBQRVRBU1RJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA0QTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS09VRklTTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDRCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBQRVRBU1RPS09VRklTTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDRDO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLUkFUSU1PS09VRklTTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDREO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBQRUxBU1RPTiBORU87U287MDtMOzs7OztOOzs7OzsKKzFEMDRFO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLRU5USU1BVEEgTkVPIEFOTztTbzswO0w7Ozs7O047Ozs7OworMUQwNEY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtFTlRJTUEgTkVPIEFOTztTbzswO0w7Ozs7O047Ozs7OworMUQwNTA7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFlQU0lMSTtTbzswO0w7Ozs7O047Ozs7OworMUQwNTE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFQT1NUUk9GT1MgTkVPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA1MjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQVBPU1RST0ZPSSBTWU5ERVNNT1MgTkVPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA1MztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgWVBPUlJPSTtTbzswO0w7Ozs7O047Ozs7OworMUQwNTQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtSQVRJTU9ZUE9SUk9PTjtTbzswO0w7Ozs7O047Ozs7OworMUQwNTU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEVMQUZST047U287MDtMOzs7OztOOzs7OzsKKzFEMDU2O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBDSEFNSUxJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA1NztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgTUlLUk9OIElTT047U287MDtMOzs7OztOOzs7OzsKKzFEMDU4O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBWQVJFSUEgTkVPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA1OTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgUElBU01BIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwNUE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBTSUZJU1RPTiBORU87U287MDtMOzs7OztOOzs7OzsKKzFEMDVCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBPTUFMT047U287MDtMOzs7OztOOzs7OzsKKzFEMDVDO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBTlRJS0VOT01BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA1RDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgTFlHSVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNUU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBBUkFLTElUSUtJIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwNUY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBBUkFLQUxFU01BIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwNjA7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEVURVJPTiBQQVJBS0FMRVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNjE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtZTElTTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDYyO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBTlRJS0VOT0tZTElTTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDYzO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBUUk9NSUtPTiBORU87U287MDtMOzs7OztOOzs7OzsKKzFEMDY0O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBFS1NUUkVQVE9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA2NTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgU1lOQUdNQSBORU87U287MDtMOzs7OztOOzs7OzsKKzFEMDY2O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTWVJNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNjc7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIENIT1JFVk1BIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwNjg7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEVQRUdFUk1BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA2OTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgU0VJU01BIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwNkE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFhJUk9OIEtMQVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNkI7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRST01JS09QU0lGSVNUT047U287MDtMOzs7OztOOzs7OzsKKzFEMDZDO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBQU0lGSVNUT0xZR0lTTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDZEO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBUUk9NSUtPTFlHSVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNkU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRST01JS09QQVJBS0FMRVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNkY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBTSUZJU1RPUEFSQUtBTEVTTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDcwO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBUUk9NSUtPU1lOQUdNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNzE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBTSUZJU1RPU1lOQUdNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNzI7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEdPUkdPU1lOVEhFVE9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA3MztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQVJHT1NZTlRIRVRPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwNzQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEVURVJPTiBBUkdPU1lOVEhFVE9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA3NTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgT1lSQU5JU01BIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwNzY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRIRU1BVElTTU9TIEVTTztTbzswO0w7Ozs7O047Ozs7OworMUQwNzc7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRIRU1BVElTTU9TIEVYTztTbzswO0w7Ozs7O047Ozs7OworMUQwNzg7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRIRU1BIEFQTE9VTjtTbzswO0w7Ozs7O047Ozs7OworMUQwNzk7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRIRVMgS0FJIEFQT1RIRVM7U287MDtMOzs7OztOOzs7OzsKKzFEMDdBO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLQVRBVkFTTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDdCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBFTkRPRk9OT047U287MDtMOzs7OztOOzs7OzsKKzFEMDdDO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBZRkVOIEtBVE87U287MDtMOzs7OztOOzs7OzsKKzFEMDdEO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBZRkVOIEFOTztTbzswO0w7Ozs7O047Ozs7OworMUQwN0U7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFNUQVZST1M7U287MDtMOzs7OztOOzs7OzsKKzFEMDdGO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLTEFTTUEgQU5PO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA4MDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElQTEkgQVJDSEFJT047U287MDtMOzs7OztOOzs7OzsKKzFEMDgxO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLUkFUSU1BIEFSQ0hBSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA4MjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS1JBVElNQSBBTExPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA4MztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS1JBVElNQSBORU87U287MDtMOzs7OztOOzs7OzsKKzFEMDg0O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBUE9ERVJNQSBORU87U287MDtMOzs7OztOOzs7OzsKKzFEMDg1O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBUExJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA4NjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElQTEk7U287MDtMOzs7OztOOzs7OzsKKzFEMDg3O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBUUklQTEk7U287MDtMOzs7OztOOzs7OzsKKzFEMDg4O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBURVRSQVBMSTtTbzswO0w7Ozs7O047Ozs7OworMUQwODk7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtPUk9OSVM7U287MDtMOzs7OztOOzs7OzsKKzFEMDhBO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBMRUlNTUEgRU5PUyBDSFJPTk9VO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA4QjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgTEVJTU1BIERZTyBDSFJPTk9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA4QztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgTEVJTU1BIFRSSU9OIENIUk9OT047U287MDtMOzs7OztOOzs7OzsKKzFEMDhEO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBMRUlNTUEgVEVTU0FST04gQ0hST05PTjtTbzswO0w7Ozs7O047Ozs7OworMUQwOEU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIExFSU1NQSBJTUlTRU9TIENIUk9OT1U7U287MDtMOzs7OztOOzs7OzsKKzFEMDhGO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBHT1JHT04gTkVPIEFOTztTbzswO0w7Ozs7O047Ozs7OworMUQwOTA7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEdPUkdPTiBQQVJFU1RJR01FTk9OIEFSSVNURVJBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA5MTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgR09SR09OIFBBUkVTVElHTUVOT04gREVYSUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDkyO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBESUdPUkdPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwOTM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIERJR09SR09OIFBBUkVTVElHTUVOT04gQVJJU1RFUkEgS0FUTztTbzswO0w7Ozs7O047Ozs7OworMUQwOTQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIERJR09SR09OIFBBUkVTVElHTUVOT04gQVJJU1RFUkEgQU5PO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA5NTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElHT1JHT04gUEFSRVNUSUdNRU5PTiBERVhJQTtTbzswO0w7Ozs7O047Ozs7OworMUQwOTY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRSSUdPUkdPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwOTc7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFSR09OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA5ODtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgSU1JRElBUkdPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwOTk7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIERJQVJHT047U287MDtMOzs7OztOOzs7OzsKKzFEMDlBO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBR09HSSBQT0xJIEFSR0k7U287MDtMOzs7OztOOzs7OzsKKzFEMDlCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBR09HSSBBUkdPVEVSSTtTbzswO0w7Ozs7O047Ozs7OworMUQwOUM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFHT0dJIEFSR0k7U287MDtMOzs7OztOOzs7OzsKKzFEMDlEO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBR09HSSBNRVRSSUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDlFO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBR09HSSBNRVNJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA5RjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQUdPR0kgR09SR0k7U287MDtMOzs7OztOOzs7OzsKKzFEMEEwO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBR09HSSBHT1JHT1RFUkk7U287MDtMOzs7OztOOzs7OzsKKzFEMEExO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBR09HSSBQT0xJIEdPUkdJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBBMjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgTUFSVFlSSUEgUFJPVE9TIElDSE9TO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBBMztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgTUFSVFlSSUEgQUxMSSBQUk9UT1MgSUNIT1M7U287MDtMOzs7OztOOzs7OzsKKzFEMEE0O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBNQVJUWVJJQSBERVlURVJPUyBJQ0hPUztTbzswO0w7Ozs7O047Ozs7OworMUQwQTU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE1BUlRZUklBIEFMTEkgREVZVEVST1MgSUNIT1M7U287MDtMOzs7OztOOzs7OzsKKzFEMEE2O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBNQVJUWVJJQSBUUklUT1MgSUNIT1M7U287MDtMOzs7OztOOzs7OzsKKzFEMEE3O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBNQVJUWVJJQSBUUklGT05JQVM7U287MDtMOzs7OztOOzs7OzsKKzFEMEE4O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBNQVJUWVJJQSBURVRBUlRPUyBJQ0hPUztTbzswO0w7Ozs7O047Ozs7OworMUQwQTk7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE1BUlRZUklBIFRFVEFSVE9TIExFR0VUT1MgSUNIT1M7U287MDtMOzs7OztOOzs7OzsKKzFEMEFBO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBNQVJUWVJJQSBMRUdFVE9TIElDSE9TO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBBQjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgTUFSVFlSSUEgUExBR0lPUyBJQ0hPUztTbzswO0w7Ozs7O047Ozs7OworMUQwQUM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIElTQUtJQSBURUxPVVMgSUNISU1BVE9TO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBBRDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQVBPU1RST0ZPSSBURUxPVVMgSUNISU1BVE9TO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBBRTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRkFORVJPU0lTIFRFVFJBRk9OSUFTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBBRjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRkFORVJPU0lTIE1PTk9GT05JQVM7U287MDtMOzs7OztOOzs7OzsKKzFEMEIwO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGQU5FUk9TSVMgRElGT05JQVM7U287MDtMOzs7OztOOzs7OzsKKzFEMEIxO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBNQVJUWVJJQSBWQVJZUyBJQ0hPUztTbzswO0w7Ozs7O047Ozs7OworMUQwQjI7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE1BUlRZUklBIFBST1RPVkFSWVMgSUNIT1M7U287MDtMOzs7OztOOzs7OzsKKzFEMEIzO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBNQVJUWVJJQSBQTEFHSU9TIFRFVEFSVE9TIElDSE9TO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBCNDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgR09SVEhNSUtPTiBOIEFQTE9VTjtTbzswO0w7Ozs7O047Ozs7OworMUQwQjU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEdPUlRITUlLT04gTiBESVBMT1VOO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBCNjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRU5BUlhJUyBLQUkgRlRIT1JBIFZPVTtTbzswO0w7Ozs7O047Ozs7OworMUQwQjc7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIElNSUZPTk9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBCODtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgSU1JRlRIT1JPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwQjk7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBBUkNIQUlPTiBERVlURVJPVSBJQ0hPVTtTbzswO0w7Ozs7O047Ozs7OworMUQwQkE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBESUFUT05JS0kgUEE7U287MDtMOzs7OztOOzs7OzsKKzFEMEJCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGVEhPUkEgRElBVE9OSUtJIE5BTkE7U287MDtMOzs7OztOOzs7OzsKKzFEMEJDO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGVEhPUkEgTkFPUyBJQ0hPUztTbzswO0w7Ozs7O047Ozs7OworMUQwQkQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBESUFUT05JS0kgREk7U287MDtMOzs7OztOOzs7OzsKKzFEMEJFO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGVEhPUkEgU0tMSVJPTiBESUFUT05PTiBESTtTbzswO0w7Ozs7O047Ozs7OworMUQwQkY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBESUFUT05JS0kgS0U7U287MDtMOzs7OztOOzs7OzsKKzFEMEMwO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGVEhPUkEgRElBVE9OSUtJIFpPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBDMTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRlRIT1JBIERJQVRPTklLSSBOSSBLQVRPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBDMjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRlRIT1JBIERJQVRPTklLSSBOSSBBTk87U287MDtMOzs7OztOOzs7OzsKKzFEMEMzO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGVEhPUkEgTUFMQUtPTiBDSFJPTUEgRElGT05JQVM7U287MDtMOzs7OztOOzs7OzsKKzFEMEM0O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGVEhPUkEgTUFMQUtPTiBDSFJPTUEgTU9OT0ZPTklBUztTbzswO0w7Ozs7O047Ozs7OworMUQwQzU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZIVE9SQSBTS0xJUk9OIENIUk9NQSBWQVNJUztTbzswO0w7Ozs7O047Ozs7OworMUQwQzY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBTS0xJUk9OIENIUk9NQSBTWU5BRkk7U287MDtMOzs7OztOOzs7OzsKKzFEMEM3O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGVEhPUkEgTkVOQU5PO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBDODtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQ0hST0EgWllHT1M7U287MDtMOzs7OztOOzs7OzsKKzFEMEM5O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBDSFJPQSBLTElUT047U287MDtMOzs7OztOOzs7OzsKKzFEMENBO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBDSFJPQSBTUEFUSEk7U287MDtMOzs7OztOOzs7OzsKKzFEMENCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGVEhPUkEgSSBZRkVTSVMgVEVUQVJUSU1PUklPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwQ0M7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBFTkFSTU9OSU9TIEFOVElGT05JQTtTbzswO0w7Ozs7O047Ozs7OworMUQwQ0Q7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFlGRVNJUyBUUklUSU1PUklPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwQ0U7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIERJRVNJUyBUUklUSU1PUklPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwQ0Y7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIERJRVNJUyBURVRBUlRJTU9SSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBEMDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElFU0lTIEFQTEkgRFlPIERPREVLQVRBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBEMTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElFU0lTIE1PTk9HUkFNTU9TIFRFU1NFUkEgRE9ERUtBVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMEQyO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBESUVTSVMgRElHUkFNTU9TIEVYIERPREVLQVRBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBEMztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElFU0lTIFRSSUdSQU1NT1MgT0tUTyBET0RFS0FUQTtTbzswO0w7Ozs7O047Ozs7OworMUQwRDQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFlGRVNJUyBBUExJIERZTyBET0RFS0FUQTtTbzswO0w7Ozs7O047Ozs7OworMUQwRDU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFlGRVNJUyBNT05PR1JBTU1PUyBURVNTRVJBIERPREVLQVRBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBENjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgWUZFU0lTIERJR1JBTU1PUyBFWCBET0RFS0FUQTtTbzswO0w7Ozs7O047Ozs7OworMUQwRDc7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFlGRVNJUyBUUklHUkFNTU9TIE9LVE8gRE9ERUtBVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMEQ4O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBHRU5JS0kgRElFU0lTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBEOTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgR0VOSUtJIFlGRVNJUztTbzswO0w7Ozs7O047Ozs7OworMUQwREE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIERJQVNUT0xJIEFQTEkgTUlLUkk7U287MDtMOzs7OztOOzs7OzsKKzFEMERCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBESUFTVE9MSSBBUExJIE1FR0FMSTtTbzswO0w7Ozs7O047Ozs7OworMUQwREM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIERJQVNUT0xJIERJUExJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBERDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElBU1RPTEkgVEhFU0VPUztTbzswO0w7Ozs7O047Ozs7OworMUQwREU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFNJTUFOU0lTIFRIRVNFT1M7U287MDtMOzs7OztOOzs7OzsKKzFEMERGO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTSU1BTlNJUyBUSEVTRU9TIERJU0lNT1U7U287MDtMOzs7OztOOzs7OzsKKzFEMEUwO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTSU1BTlNJUyBUSEVTRU9TIFRSSVNJTU9VO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBFMTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgU0lNQU5TSVMgVEhFU0VPUyBURVRSQVNJTU9VO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBFMjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgU0lNQU5TSVMgQVJTRU9TO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBFMztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgU0lNQU5TSVMgQVJTRU9TIERJU0lNT1U7U287MDtMOzs7OztOOzs7OzsKKzFEMEU0O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTSU1BTlNJUyBBUlNFT1MgVFJJU0lNT1U7U287MDtMOzs7OztOOzs7OzsKKzFEMEU1O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTSU1BTlNJUyBBUlNFT1MgVEVUUkFTSU1PVTtTbzswO0w7Ozs7O047Ozs7OworMUQwRTY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIERJR1JBTU1BIEdHO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBFNztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElGVE9HR09TIE9VO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBFODtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgU1RJR01BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBFOTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQVJLVElLTyBQQTtTbzswO0w7Ozs7O047Ozs7OworMUQwRUE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFSS1RJS08gVk9VO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBFQjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQVJLVElLTyBHQTtTbzswO0w7Ozs7O047Ozs7OworMUQwRUM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFSS1RJS08gREk7U287MDtMOzs7OztOOzs7OzsKKzFEMEVEO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBUktUSUtPIEtFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBFRTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQVJLVElLTyBaTztTbzswO0w7Ozs7O047Ozs7OworMUQwRUY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFSS1RJS08gTkk7U287MDtMOzs7OztOOzs7OzsKKzFEMEYwO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLRU5USU1BVEEgTkVPIE1FU087U287MDtMOzs7OztOOzs7OzsKKzFEMEYxO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLRU5USU1BIE5FTyBNRVNPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBGMjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS0VOVElNQVRBIE5FTyBLQVRPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBGMztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS0VOVElNQSBORU8gS0FUTztTbzswO0w7Ozs7O047Ozs7OworMUQwRjQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtMQVNNQSBLQVRPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBGNTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgR09SR09OIE5FTyBLQVRPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEwMDtNVVNJQ0FMIFNZTUJPTCBTSU5HTEUgQkFSTElORTtTbzswO0w7Ozs7O047Ozs7OworMUQxMDE7TVVTSUNBTCBTWU1CT0wgRE9VQkxFIEJBUkxJTkU7U287MDtMOzs7OztOOzs7OzsKKzFEMTAyO01VU0lDQUwgU1lNQk9MIEZJTkFMIEJBUkxJTkU7U287MDtMOzs7OztOOzs7OzsKKzFEMTAzO01VU0lDQUwgU1lNQk9MIFJFVkVSU0UgRklOQUwgQkFSTElORTtTbzswO0w7Ozs7O047Ozs7OworMUQxMDQ7TVVTSUNBTCBTWU1CT0wgREFTSEVEIEJBUkxJTkU7U287MDtMOzs7OztOOzs7OzsKKzFEMTA1O01VU0lDQUwgU1lNQk9MIFNIT1JUIEJBUkxJTkU7U287MDtMOzs7OztOOzs7OzsKKzFEMTA2O01VU0lDQUwgU1lNQk9MIExFRlQgUkVQRUFUIFNJR047U287MDtMOzs7OztOOzs7OzsKKzFEMTA3O01VU0lDQUwgU1lNQk9MIFJJR0hUIFJFUEVBVCBTSUdOO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEwODtNVVNJQ0FMIFNZTUJPTCBSRVBFQVQgRE9UUztTbzswO0w7Ozs7O047Ozs7OworMUQxMDk7TVVTSUNBTCBTWU1CT0wgREFMIFNFR05PO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEwQTtNVVNJQ0FMIFNZTUJPTCBEQSBDQVBPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEwQjtNVVNJQ0FMIFNZTUJPTCBTRUdOTztTbzswO0w7Ozs7O047Ozs7OworMUQxMEM7TVVTSUNBTCBTWU1CT0wgQ09EQTtTbzswO0w7Ozs7O047Ozs7OworMUQxMEQ7TVVTSUNBTCBTWU1CT0wgUkVQRUFURUQgRklHVVJFLTE7U287MDtMOzs7OztOOzs7OzsKKzFEMTBFO01VU0lDQUwgU1lNQk9MIFJFUEVBVEVEIEZJR1VSRS0yO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEwRjtNVVNJQ0FMIFNZTUJPTCBSRVBFQVRFRCBGSUdVUkUtMztTbzswO0w7Ozs7O047Ozs7OworMUQxMTA7TVVTSUNBTCBTWU1CT0wgRkVSTUFUQTtTbzswO0w7Ozs7O047Ozs7OworMUQxMTE7TVVTSUNBTCBTWU1CT0wgRkVSTUFUQSBCRUxPVztTbzswO0w7Ozs7O047Ozs7OworMUQxMTI7TVVTSUNBTCBTWU1CT0wgQlJFQVRIIE1BUks7U287MDtMOzs7OztOOzs7OzsKKzFEMTEzO01VU0lDQUwgU1lNQk9MIENBRVNVUkE7U287MDtMOzs7OztOOzs7OzsKKzFEMTE0O01VU0lDQUwgU1lNQk9MIEJSQUNFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDExNTtNVVNJQ0FMIFNZTUJPTCBCUkFDS0VUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDExNjtNVVNJQ0FMIFNZTUJPTCBPTkUtTElORSBTVEFGRjtTbzswO0w7Ozs7O047Ozs7OworMUQxMTc7TVVTSUNBTCBTWU1CT0wgVFdPLUxJTkUgU1RBRkY7U287MDtMOzs7OztOOzs7OzsKKzFEMTE4O01VU0lDQUwgU1lNQk9MIFRIUkVFLUxJTkUgU1RBRkY7U287MDtMOzs7OztOOzs7OzsKKzFEMTE5O01VU0lDQUwgU1lNQk9MIEZPVVItTElORSBTVEFGRjtTbzswO0w7Ozs7O047Ozs7OworMUQxMUE7TVVTSUNBTCBTWU1CT0wgRklWRS1MSU5FIFNUQUZGO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDExQjtNVVNJQ0FMIFNZTUJPTCBTSVgtTElORSBTVEFGRjtTbzswO0w7Ozs7O047Ozs7OworMUQxMUM7TVVTSUNBTCBTWU1CT0wgU0lYLVNUUklORyBGUkVUQk9BUkQ7U287MDtMOzs7OztOOzs7OzsKKzFEMTFEO01VU0lDQUwgU1lNQk9MIEZPVVItU1RSSU5HIEZSRVRCT0FSRDtTbzswO0w7Ozs7O047Ozs7OworMUQxMUU7TVVTSUNBTCBTWU1CT0wgRyBDTEVGO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDExRjtNVVNJQ0FMIFNZTUJPTCBHIENMRUYgT1RUQVZBIEFMVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMTIwO01VU0lDQUwgU1lNQk9MIEcgQ0xFRiBPVFRBVkEgQkFTU0E7U287MDtMOzs7OztOOzs7OzsKKzFEMTIxO01VU0lDQUwgU1lNQk9MIEMgQ0xFRjtTbzswO0w7Ozs7O047Ozs7OworMUQxMjI7TVVTSUNBTCBTWU1CT0wgRiBDTEVGO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEyMztNVVNJQ0FMIFNZTUJPTCBGIENMRUYgT1RUQVZBIEFMVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMTI0O01VU0lDQUwgU1lNQk9MIEYgQ0xFRiBPVFRBVkEgQkFTU0E7U287MDtMOzs7OztOOzs7OzsKKzFEMTI1O01VU0lDQUwgU1lNQk9MIERSVU0gQ0xFRi0xO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEyNjtNVVNJQ0FMIFNZTUJPTCBEUlVNIENMRUYtMjtTbzswO0w7Ozs7O047Ozs7OworMUQxMkE7TVVTSUNBTCBTWU1CT0wgRE9VQkxFIFNIQVJQO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEyQjtNVVNJQ0FMIFNZTUJPTCBET1VCTEUgRkxBVDtTbzswO0w7Ozs7O047Ozs7OworMUQxMkM7TVVTSUNBTCBTWU1CT0wgRkxBVCBVUDtTbzswO0w7Ozs7O047Ozs7OworMUQxMkQ7TVVTSUNBTCBTWU1CT0wgRkxBVCBET1dOO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEyRTtNVVNJQ0FMIFNZTUJPTCBOQVRVUkFMIFVQO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEyRjtNVVNJQ0FMIFNZTUJPTCBOQVRVUkFMIERPV047U287MDtMOzs7OztOOzs7OzsKKzFEMTMwO01VU0lDQUwgU1lNQk9MIFNIQVJQIFVQO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEzMTtNVVNJQ0FMIFNZTUJPTCBTSEFSUCBET1dOO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEzMjtNVVNJQ0FMIFNZTUJPTCBRVUFSVEVSIFRPTkUgU0hBUlA7U287MDtMOzs7OztOOzs7OzsKKzFEMTMzO01VU0lDQUwgU1lNQk9MIFFVQVJURVIgVE9ORSBGTEFUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEzNDtNVVNJQ0FMIFNZTUJPTCBDT01NT04gVElNRTtTbzswO0w7Ozs7O047Ozs7OworMUQxMzU7TVVTSUNBTCBTWU1CT0wgQ1VUIFRJTUU7U287MDtMOzs7OztOOzs7OzsKKzFEMTM2O01VU0lDQUwgU1lNQk9MIE9UVEFWQSBBTFRBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEzNztNVVNJQ0FMIFNZTUJPTCBPVFRBVkEgQkFTU0E7U287MDtMOzs7OztOOzs7OzsKKzFEMTM4O01VU0lDQUwgU1lNQk9MIFFVSU5ESUNFU0lNQSBBTFRBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEzOTtNVVNJQ0FMIFNZTUJPTCBRVUlORElDRVNJTUEgQkFTU0E7U287MDtMOzs7OztOOzs7OzsKKzFEMTNBO01VU0lDQUwgU1lNQk9MIE1VTFRJIFJFU1Q7U287MDtMOzs7OztOOzs7OzsKKzFEMTNCO01VU0lDQUwgU1lNQk9MIFdIT0xFIFJFU1Q7U287MDtMOzs7OztOOzs7OzsKKzFEMTNDO01VU0lDQUwgU1lNQk9MIEhBTEYgUkVTVDtTbzswO0w7Ozs7O047Ozs7OworMUQxM0Q7TVVTSUNBTCBTWU1CT0wgUVVBUlRFUiBSRVNUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEzRTtNVVNJQ0FMIFNZTUJPTCBFSUdIVEggUkVTVDtTbzswO0w7Ozs7O047Ozs7OworMUQxM0Y7TVVTSUNBTCBTWU1CT0wgU0lYVEVFTlRIIFJFU1Q7U287MDtMOzs7OztOOzs7OzsKKzFEMTQwO01VU0lDQUwgU1lNQk9MIFRISVJUWS1TRUNPTkQgUkVTVDtTbzswO0w7Ozs7O047Ozs7OworMUQxNDE7TVVTSUNBTCBTWU1CT0wgU0lYVFktRk9VUlRIIFJFU1Q7U287MDtMOzs7OztOOzs7OzsKKzFEMTQyO01VU0lDQUwgU1lNQk9MIE9ORSBIVU5EUkVEIFRXRU5UWS1FSUdIVEggUkVTVDtTbzswO0w7Ozs7O047Ozs7OworMUQxNDM7TVVTSUNBTCBTWU1CT0wgWCBOT1RFSEVBRDtTbzswO0w7Ozs7O047Ozs7OworMUQxNDQ7TVVTSUNBTCBTWU1CT0wgUExVUyBOT1RFSEVBRDtTbzswO0w7Ozs7O047Ozs7OworMUQxNDU7TVVTSUNBTCBTWU1CT0wgQ0lSQ0xFIFggTk9URUhFQUQ7U287MDtMOzs7OztOOzs7OzsKKzFEMTQ2O01VU0lDQUwgU1lNQk9MIFNRVUFSRSBOT1RFSEVBRCBXSElURTtTbzswO0w7Ozs7O047Ozs7OworMUQxNDc7TVVTSUNBTCBTWU1CT0wgU1FVQVJFIE5PVEVIRUFEIEJMQUNLO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE0ODtNVVNJQ0FMIFNZTUJPTCBUUklBTkdMRSBOT1RFSEVBRCBVUCBXSElURTtTbzswO0w7Ozs7O047Ozs7OworMUQxNDk7TVVTSUNBTCBTWU1CT0wgVFJJQU5HTEUgTk9URUhFQUQgVVAgQkxBQ0s7U287MDtMOzs7OztOOzs7OzsKKzFEMTRBO01VU0lDQUwgU1lNQk9MIFRSSUFOR0xFIE5PVEVIRUFEIExFRlQgV0hJVEU7U287MDtMOzs7OztOOzs7OzsKKzFEMTRCO01VU0lDQUwgU1lNQk9MIFRSSUFOR0xFIE5PVEVIRUFEIExFRlQgQkxBQ0s7U287MDtMOzs7OztOOzs7OzsKKzFEMTRDO01VU0lDQUwgU1lNQk9MIFRSSUFOR0xFIE5PVEVIRUFEIFJJR0hUIFdISVRFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE0RDtNVVNJQ0FMIFNZTUJPTCBUUklBTkdMRSBOT1RFSEVBRCBSSUdIVCBCTEFDSztTbzswO0w7Ozs7O047Ozs7OworMUQxNEU7TVVTSUNBTCBTWU1CT0wgVFJJQU5HTEUgTk9URUhFQUQgRE9XTiBXSElURTtTbzswO0w7Ozs7O047Ozs7OworMUQxNEY7TVVTSUNBTCBTWU1CT0wgVFJJQU5HTEUgTk9URUhFQUQgRE9XTiBCTEFDSztTbzswO0w7Ozs7O047Ozs7OworMUQxNTA7TVVTSUNBTCBTWU1CT0wgVFJJQU5HTEUgTk9URUhFQUQgVVAgUklHSFQgV0hJVEU7U287MDtMOzs7OztOOzs7OzsKKzFEMTUxO01VU0lDQUwgU1lNQk9MIFRSSUFOR0xFIE5PVEVIRUFEIFVQIFJJR0hUIEJMQUNLO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE1MjtNVVNJQ0FMIFNZTUJPTCBNT09OIE5PVEVIRUFEIFdISVRFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE1MztNVVNJQ0FMIFNZTUJPTCBNT09OIE5PVEVIRUFEIEJMQUNLO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE1NDtNVVNJQ0FMIFNZTUJPTCBUUklBTkdMRS1ST1VORCBOT1RFSEVBRCBET1dOIFdISVRFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE1NTtNVVNJQ0FMIFNZTUJPTCBUUklBTkdMRS1ST1VORCBOT1RFSEVBRCBET1dOIEJMQUNLO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE1NjtNVVNJQ0FMIFNZTUJPTCBQQVJFTlRIRVNJUyBOT1RFSEVBRDtTbzswO0w7Ozs7O047Ozs7OworMUQxNTc7TVVTSUNBTCBTWU1CT0wgVk9JRCBOT1RFSEVBRDtTbzswO0w7Ozs7O047Ozs7OworMUQxNTg7TVVTSUNBTCBTWU1CT0wgTk9URUhFQUQgQkxBQ0s7U287MDtMOzs7OztOOzs7OzsKKzFEMTU5O01VU0lDQUwgU1lNQk9MIE5VTEwgTk9URUhFQUQ7U287MDtMOzs7OztOOzs7OzsKKzFEMTVBO01VU0lDQUwgU1lNQk9MIENMVVNURVIgTk9URUhFQUQgV0hJVEU7U287MDtMOzs7OztOOzs7OzsKKzFEMTVCO01VU0lDQUwgU1lNQk9MIENMVVNURVIgTk9URUhFQUQgQkxBQ0s7U287MDtMOzs7OztOOzs7OzsKKzFEMTVDO01VU0lDQUwgU1lNQk9MIEJSRVZFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE1RDtNVVNJQ0FMIFNZTUJPTCBXSE9MRSBOT1RFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE1RTtNVVNJQ0FMIFNZTUJPTCBIQUxGIE5PVEU7U287MDtMOzFEMTU3IDFEMTY1Ozs7O047Ozs7OworMUQxNUY7TVVTSUNBTCBTWU1CT0wgUVVBUlRFUiBOT1RFO1NvOzA7TDsxRDE1OCAxRDE2NTs7OztOOzs7OzsKKzFEMTYwO01VU0lDQUwgU1lNQk9MIEVJR0hUSCBOT1RFO1NvOzA7TDsxRDE1RiAxRDE2RTs7OztOOzs7OzsKKzFEMTYxO01VU0lDQUwgU1lNQk9MIFNJWFRFRU5USCBOT1RFO1NvOzA7TDsxRDE1RiAxRDE2Rjs7OztOOzs7OzsKKzFEMTYyO01VU0lDQUwgU1lNQk9MIFRISVJUWS1TRUNPTkQgTk9URTtTbzswO0w7MUQxNUYgMUQxNzA7Ozs7Tjs7Ozs7CisxRDE2MztNVVNJQ0FMIFNZTUJPTCBTSVhUWS1GT1VSVEggTk9URTtTbzswO0w7MUQxNUYgMUQxNzE7Ozs7Tjs7Ozs7CisxRDE2NDtNVVNJQ0FMIFNZTUJPTCBPTkUgSFVORFJFRCBUV0VOVFktRUlHSFRIIE5PVEU7U287MDtMOzFEMTVGIDFEMTcyOzs7O047Ozs7OworMUQxNjU7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIFNURU07TWM7MjE2O0w7Ozs7O047Ozs7OworMUQxNjY7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIFNQUkVDSEdFU0FORyBTVEVNO01jOzIxNjtMOzs7OztOOzs7OzsKKzFEMTY3O01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBUUkVNT0xPLTE7TW47MTtOU007Ozs7O047Ozs7OworMUQxNjg7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIFRSRU1PTE8tMjtNbjsxO05TTTs7Ozs7Tjs7Ozs7CisxRDE2OTtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgVFJFTU9MTy0zO01uOzE7TlNNOzs7OztOOzs7OzsKKzFEMTZBO01VU0lDQUwgU1lNQk9MIEZJTkdFUkVEIFRSRU1PTE8tMTtTbzswO0w7Ozs7O047Ozs7OworMUQxNkI7TVVTSUNBTCBTWU1CT0wgRklOR0VSRUQgVFJFTU9MTy0yO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE2QztNVVNJQ0FMIFNZTUJPTCBGSU5HRVJFRCBUUkVNT0xPLTM7U287MDtMOzs7OztOOzs7OzsKKzFEMTZEO01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBBVUdNRU5UQVRJT04gRE9UO01jOzIyNjtMOzs7OztOOzs7OzsKKzFEMTZFO01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBGTEFHLTE7TWM7MjE2O0w7Ozs7O047Ozs7OworMUQxNkY7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIEZMQUctMjtNYzsyMTY7TDs7Ozs7Tjs7Ozs7CisxRDE3MDtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgRkxBRy0zO01jOzIxNjtMOzs7OztOOzs7OzsKKzFEMTcxO01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBGTEFHLTQ7TWM7MjE2O0w7Ozs7O047Ozs7OworMUQxNzI7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIEZMQUctNTtNYzsyMTY7TDs7Ozs7Tjs7Ozs7CisxRDE3MztNVVNJQ0FMIFNZTUJPTCBCRUdJTiBCRUFNO0NmOzA7Qk47Ozs7O047Ozs7OworMUQxNzQ7TVVTSUNBTCBTWU1CT0wgRU5EIEJFQU07Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisxRDE3NTtNVVNJQ0FMIFNZTUJPTCBCRUdJTiBUSUU7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisxRDE3NjtNVVNJQ0FMIFNZTUJPTCBFTkQgVElFO0NmOzA7Qk47Ozs7O047Ozs7OworMUQxNzc7TVVTSUNBTCBTWU1CT0wgQkVHSU4gU0xVUjtDZjswO0JOOzs7OztOOzs7OzsKKzFEMTc4O01VU0lDQUwgU1lNQk9MIEVORCBTTFVSO0NmOzA7Qk47Ozs7O047Ozs7OworMUQxNzk7TVVTSUNBTCBTWU1CT0wgQkVHSU4gUEhSQVNFO0NmOzA7Qk47Ozs7O047Ozs7OworMUQxN0E7TVVTSUNBTCBTWU1CT0wgRU5EIFBIUkFTRTtDZjswO0JOOzs7OztOOzs7OzsKKzFEMTdCO01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBBQ0NFTlQ7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CisxRDE3QztNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgU1RBQ0NBVE87TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CisxRDE3RDtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgVEVOVVRPO01uOzIyMDtOU007Ozs7O047Ozs7OworMUQxN0U7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIFNUQUNDQVRJU1NJTU87TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CisxRDE3RjtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgTUFSQ0FUTztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzFEMTgwO01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBNQVJDQVRPLVNUQUNDQVRPO01uOzIyMDtOU007Ozs7O047Ozs7OworMUQxODE7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIEFDQ0VOVC1TVEFDQ0FUTztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzFEMTgyO01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBMT1VSRTtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzFEMTgzO01VU0lDQUwgU1lNQk9MIEFSUEVHR0lBVE8gVVA7U287MDtMOzs7OztOOzs7OzsKKzFEMTg0O01VU0lDQUwgU1lNQk9MIEFSUEVHR0lBVE8gRE9XTjtTbzswO0w7Ozs7O047Ozs7OworMUQxODU7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIERPSVQ7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxRDE4NjtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgUklQO01uOzIzMDtOU007Ozs7O047Ozs7OworMUQxODc7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIEZMSVA7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxRDE4ODtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgU01FQVI7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxRDE4OTtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgQkVORDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzFEMThBO01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBET1VCTEUgVE9OR1VFO01uOzIyMDtOU007Ozs7O047Ozs7OworMUQxOEI7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIFRSSVBMRSBUT05HVUU7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CisxRDE4QztNVVNJQ0FMIFNZTUJPTCBSSU5GT1JaQU5ETztTbzswO0w7Ozs7O047Ozs7OworMUQxOEQ7TVVTSUNBTCBTWU1CT0wgU1VCSVRPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE4RTtNVVNJQ0FMIFNZTUJPTCBaO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE4RjtNVVNJQ0FMIFNZTUJPTCBQSUFOTztTbzswO0w7Ozs7O047Ozs7OworMUQxOTA7TVVTSUNBTCBTWU1CT0wgTUVaWk87U287MDtMOzs7OztOOzs7OzsKKzFEMTkxO01VU0lDQUwgU1lNQk9MIEZPUlRFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE5MjtNVVNJQ0FMIFNZTUJPTCBDUkVTQ0VORE87U287MDtMOzs7OztOOzs7OzsKKzFEMTkzO01VU0lDQUwgU1lNQk9MIERFQ1JFU0NFTkRPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE5NDtNVVNJQ0FMIFNZTUJPTCBHUkFDRSBOT1RFIFNMQVNIO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE5NTtNVVNJQ0FMIFNZTUJPTCBHUkFDRSBOT1RFIE5PIFNMQVNIO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE5NjtNVVNJQ0FMIFNZTUJPTCBUUjtTbzswO0w7Ozs7O047Ozs7OworMUQxOTc7TVVTSUNBTCBTWU1CT0wgVFVSTjtTbzswO0w7Ozs7O047Ozs7OworMUQxOTg7TVVTSUNBTCBTWU1CT0wgSU5WRVJURUQgVFVSTjtTbzswO0w7Ozs7O047Ozs7OworMUQxOTk7TVVTSUNBTCBTWU1CT0wgVFVSTiBTTEFTSDtTbzswO0w7Ozs7O047Ozs7OworMUQxOUE7TVVTSUNBTCBTWU1CT0wgVFVSTiBVUDtTbzswO0w7Ozs7O047Ozs7OworMUQxOUI7TVVTSUNBTCBTWU1CT0wgT1JOQU1FTlQgU1RST0tFLTE7U287MDtMOzs7OztOOzs7OzsKKzFEMTlDO01VU0lDQUwgU1lNQk9MIE9STkFNRU5UIFNUUk9LRS0yO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE5RDtNVVNJQ0FMIFNZTUJPTCBPUk5BTUVOVCBTVFJPS0UtMztTbzswO0w7Ozs7O047Ozs7OworMUQxOUU7TVVTSUNBTCBTWU1CT0wgT1JOQU1FTlQgU1RST0tFLTQ7U287MDtMOzs7OztOOzs7OzsKKzFEMTlGO01VU0lDQUwgU1lNQk9MIE9STkFNRU5UIFNUUk9LRS01O1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFBMDtNVVNJQ0FMIFNZTUJPTCBPUk5BTUVOVCBTVFJPS0UtNjtTbzswO0w7Ozs7O047Ozs7OworMUQxQTE7TVVTSUNBTCBTWU1CT0wgT1JOQU1FTlQgU1RST0tFLTc7U287MDtMOzs7OztOOzs7OzsKKzFEMUEyO01VU0lDQUwgU1lNQk9MIE9STkFNRU5UIFNUUk9LRS04O1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFBMztNVVNJQ0FMIFNZTUJPTCBPUk5BTUVOVCBTVFJPS0UtOTtTbzswO0w7Ozs7O047Ozs7OworMUQxQTQ7TVVTSUNBTCBTWU1CT0wgT1JOQU1FTlQgU1RST0tFLTEwO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFBNTtNVVNJQ0FMIFNZTUJPTCBPUk5BTUVOVCBTVFJPS0UtMTE7U287MDtMOzs7OztOOzs7OzsKKzFEMUE2O01VU0lDQUwgU1lNQk9MIEhBVVBUU1RJTU1FO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFBNztNVVNJQ0FMIFNZTUJPTCBORUJFTlNUSU1NRTtTbzswO0w7Ozs7O047Ozs7OworMUQxQTg7TVVTSUNBTCBTWU1CT0wgRU5EIE9GIFNUSU1NRTtTbzswO0w7Ozs7O047Ozs7OworMUQxQTk7TVVTSUNBTCBTWU1CT0wgREVHUkVFIFNMQVNIO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFBQTtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgRE9XTiBCT1c7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxRDFBQjtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgVVAgQk9XO01uOzIzMDtOU007Ozs7O047Ozs7OworMUQxQUM7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIEhBUk1PTklDO01uOzIzMDtOU007Ozs7O047Ozs7OworMUQxQUQ7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIFNOQVAgUElaWklDQVRPO01uOzIzMDtOU007Ozs7O047Ozs7OworMUQxQUU7TVVTSUNBTCBTWU1CT0wgUEVEQUwgTUFSSztTbzswO0w7Ozs7O047Ozs7OworMUQxQUY7TVVTSUNBTCBTWU1CT0wgUEVEQUwgVVAgTUFSSztTbzswO0w7Ozs7O047Ozs7OworMUQxQjA7TVVTSUNBTCBTWU1CT0wgSEFMRiBQRURBTCBNQVJLO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFCMTtNVVNJQ0FMIFNZTUJPTCBHTElTU0FORE8gVVA7U287MDtMOzs7OztOOzs7OzsKKzFEMUIyO01VU0lDQUwgU1lNQk9MIEdMSVNTQU5ETyBET1dOO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFCMztNVVNJQ0FMIFNZTUJPTCBXSVRIIEZJTkdFUk5BSUxTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFCNDtNVVNJQ0FMIFNZTUJPTCBEQU1QO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFCNTtNVVNJQ0FMIFNZTUJPTCBEQU1QIEFMTDtTbzswO0w7Ozs7O047Ozs7OworMUQxQjY7TVVTSUNBTCBTWU1CT0wgTUFYSU1BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFCNztNVVNJQ0FMIFNZTUJPTCBMT05HQTtTbzswO0w7Ozs7O047Ozs7OworMUQxQjg7TVVTSUNBTCBTWU1CT0wgQlJFVklTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFCOTtNVVNJQ0FMIFNZTUJPTCBTRU1JQlJFVklTIFdISVRFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFCQTtNVVNJQ0FMIFNZTUJPTCBTRU1JQlJFVklTIEJMQUNLO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFCQjtNVVNJQ0FMIFNZTUJPTCBNSU5JTUE7U287MDtMOzFEMUI5IDFEMTY1Ozs7O047Ozs7OworMUQxQkM7TVVTSUNBTCBTWU1CT0wgTUlOSU1BIEJMQUNLO1NvOzA7TDsxRDFCQSAxRDE2NTs7OztOOzs7OzsKKzFEMUJEO01VU0lDQUwgU1lNQk9MIFNFTUlNSU5JTUEgV0hJVEU7U287MDtMOzFEMUJCIDFEMTZFOzs7O047Ozs7OworMUQxQkU7TVVTSUNBTCBTWU1CT0wgU0VNSU1JTklNQSBCTEFDSztTbzswO0w7MUQxQkMgMUQxNkU7Ozs7Tjs7Ozs7CisxRDFCRjtNVVNJQ0FMIFNZTUJPTCBGVVNBIFdISVRFO1NvOzA7TDsxRDFCQiAxRDE2Rjs7OztOOzs7OzsKKzFEMUMwO01VU0lDQUwgU1lNQk9MIEZVU0EgQkxBQ0s7U287MDtMOzFEMUJDIDFEMTZGOzs7O047Ozs7OworMUQxQzE7TVVTSUNBTCBTWU1CT0wgTE9OR0EgUEVSRkVDVEEgUkVTVDtTbzswO0w7Ozs7O047Ozs7OworMUQxQzI7TVVTSUNBTCBTWU1CT0wgTE9OR0EgSU1QRVJGRUNUQSBSRVNUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFDMztNVVNJQ0FMIFNZTUJPTCBCUkVWSVMgUkVTVDtTbzswO0w7Ozs7O047Ozs7OworMUQxQzQ7TVVTSUNBTCBTWU1CT0wgU0VNSUJSRVZJUyBSRVNUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFDNTtNVVNJQ0FMIFNZTUJPTCBNSU5JTUEgUkVTVDtTbzswO0w7Ozs7O047Ozs7OworMUQxQzY7TVVTSUNBTCBTWU1CT0wgU0VNSU1JTklNQSBSRVNUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFDNztNVVNJQ0FMIFNZTUJPTCBURU1QVVMgUEVSRkVDVFVNIENVTSBQUk9MQVRJT05FIFBFUkZFQ1RBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFDODtNVVNJQ0FMIFNZTUJPTCBURU1QVVMgUEVSRkVDVFVNIENVTSBQUk9MQVRJT05FIElNUEVSRkVDVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMUM5O01VU0lDQUwgU1lNQk9MIFRFTVBVUyBQRVJGRUNUVU0gQ1VNIFBST0xBVElPTkUgUEVSRkVDVEEgRElNSU5VVElPTi0xO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFDQTtNVVNJQ0FMIFNZTUJPTCBURU1QVVMgSU1QRVJGRUNUVU0gQ1VNIFBST0xBVElPTkUgUEVSRkVDVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMUNCO01VU0lDQUwgU1lNQk9MIFRFTVBVUyBJTVBFUkZFQ1RVTSBDVU0gUFJPTEFUSU9ORSBJTVBFUkZFQ1RBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFDQztNVVNJQ0FMIFNZTUJPTCBURU1QVVMgSU1QRVJGRUNUVU0gQ1VNIFBST0xBVElPTkUgSU1QRVJGRUNUQSBESU1JTlVUSU9OLTE7U287MDtMOzs7OztOOzs7OzsKKzFEMUNEO01VU0lDQUwgU1lNQk9MIFRFTVBVUyBJTVBFUkZFQ1RVTSBDVU0gUFJPTEFUSU9ORSBJTVBFUkZFQ1RBIERJTUlOVVRJT04tMjtTbzswO0w7Ozs7O047Ozs7OworMUQxQ0U7TVVTSUNBTCBTWU1CT0wgVEVNUFVTIElNUEVSRkVDVFVNIENVTSBQUk9MQVRJT05FIElNUEVSRkVDVEEgRElNSU5VVElPTi0zO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFDRjtNVVNJQ0FMIFNZTUJPTCBDUk9JWDtTbzswO0w7Ozs7O047Ozs7OworMUQxRDA7TVVTSUNBTCBTWU1CT0wgR1JFR09SSUFOIEMgQ0xFRjtTbzswO0w7Ozs7O047Ozs7OworMUQxRDE7TVVTSUNBTCBTWU1CT0wgR1JFR09SSUFOIEYgQ0xFRjtTbzswO0w7Ozs7O047Ozs7OworMUQxRDI7TVVTSUNBTCBTWU1CT0wgU1FVQVJFIEI7U287MDtMOzs7OztOOzs7OzsKKzFEMUQzO01VU0lDQUwgU1lNQk9MIFZJUkdBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFENDtNVVNJQ0FMIFNZTUJPTCBQT0RBVFVTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFENTtNVVNJQ0FMIFNZTUJPTCBDTElWSVM7U287MDtMOzs7OztOOzs7OzsKKzFEMUQ2O01VU0lDQUwgU1lNQk9MIFNDQU5ESUNVUztTbzswO0w7Ozs7O047Ozs7OworMUQxRDc7TVVTSUNBTCBTWU1CT0wgQ0xJTUFDVVM7U287MDtMOzs7OztOOzs7OzsKKzFEMUQ4O01VU0lDQUwgU1lNQk9MIFRPUkNVTFVTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFEOTtNVVNJQ0FMIFNZTUJPTCBQT1JSRUNUVVM7U287MDtMOzs7OztOOzs7OzsKKzFEMURBO01VU0lDQUwgU1lNQk9MIFBPUlJFQ1RVUyBGTEVYVVM7U287MDtMOzs7OztOOzs7OzsKKzFEMURCO01VU0lDQUwgU1lNQk9MIFNDQU5ESUNVUyBGTEVYVVM7U287MDtMOzs7OztOOzs7OzsKKzFEMURDO01VU0lDQUwgU1lNQk9MIFRPUkNVTFVTIFJFU1VQSU5VUztTbzswO0w7Ozs7O047Ozs7OworMUQxREQ7TVVTSUNBTCBTWU1CT0wgUEVTIFNVQlBVTkNUSVM7U287MDtMOzs7OztOOzs7OzsKKzFENDAwO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgQTtMdTswO0w7PGZvbnQ+IDAwNDE7Ozs7Tjs7Ozs7CisxRDQwMTtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIEI7THU7MDtMOzxmb250PiAwMDQyOzs7O047Ozs7OworMUQ0MDI7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBDO0x1OzA7TDs8Zm9udD4gMDA0Mzs7OztOOzs7OzsKKzFENDAzO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgRDtMdTswO0w7PGZvbnQ+IDAwNDQ7Ozs7Tjs7Ozs7CisxRDQwNDtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIEU7THU7MDtMOzxmb250PiAwMDQ1Ozs7O047Ozs7OworMUQ0MDU7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBGO0x1OzA7TDs8Zm9udD4gMDA0Njs7OztOOzs7OzsKKzFENDA2O01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgRztMdTswO0w7PGZvbnQ+IDAwNDc7Ozs7Tjs7Ozs7CisxRDQwNztNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIEg7THU7MDtMOzxmb250PiAwMDQ4Ozs7O047Ozs7OworMUQ0MDg7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBJO0x1OzA7TDs8Zm9udD4gMDA0OTs7OztOOzs7OzsKKzFENDA5O01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgSjtMdTswO0w7PGZvbnQ+IDAwNEE7Ozs7Tjs7Ozs7CisxRDQwQTtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIEs7THU7MDtMOzxmb250PiAwMDRCOzs7O047Ozs7OworMUQ0MEI7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBMO0x1OzA7TDs8Zm9udD4gMDA0Qzs7OztOOzs7OzsKKzFENDBDO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgTTtMdTswO0w7PGZvbnQ+IDAwNEQ7Ozs7Tjs7Ozs7CisxRDQwRDtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIE47THU7MDtMOzxmb250PiAwMDRFOzs7O047Ozs7OworMUQ0MEU7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBPO0x1OzA7TDs8Zm9udD4gMDA0Rjs7OztOOzs7OzsKKzFENDBGO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgUDtMdTswO0w7PGZvbnQ+IDAwNTA7Ozs7Tjs7Ozs7CisxRDQxMDtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFE7THU7MDtMOzxmb250PiAwMDUxOzs7O047Ozs7OworMUQ0MTE7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBSO0x1OzA7TDs8Zm9udD4gMDA1Mjs7OztOOzs7OzsKKzFENDEyO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgUztMdTswO0w7PGZvbnQ+IDAwNTM7Ozs7Tjs7Ozs7CisxRDQxMztNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFQ7THU7MDtMOzxmb250PiAwMDU0Ozs7O047Ozs7OworMUQ0MTQ7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBVO0x1OzA7TDs8Zm9udD4gMDA1NTs7OztOOzs7OzsKKzFENDE1O01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgVjtMdTswO0w7PGZvbnQ+IDAwNTY7Ozs7Tjs7Ozs7CisxRDQxNjtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFc7THU7MDtMOzxmb250PiAwMDU3Ozs7O047Ozs7OworMUQ0MTc7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBYO0x1OzA7TDs8Zm9udD4gMDA1ODs7OztOOzs7OzsKKzFENDE4O01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgWTtMdTswO0w7PGZvbnQ+IDAwNTk7Ozs7Tjs7Ozs7CisxRDQxOTtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFo7THU7MDtMOzxmb250PiAwMDVBOzs7O047Ozs7OworMUQ0MUE7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgQTtMbDswO0w7PGZvbnQ+IDAwNjE7Ozs7Tjs7Ozs7CisxRDQxQjtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBCO0xsOzA7TDs8Zm9udD4gMDA2Mjs7OztOOzs7OzsKKzFENDFDO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIEM7TGw7MDtMOzxmb250PiAwMDYzOzs7O047Ozs7OworMUQ0MUQ7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgRDtMbDswO0w7PGZvbnQ+IDAwNjQ7Ozs7Tjs7Ozs7CisxRDQxRTtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBFO0xsOzA7TDs8Zm9udD4gMDA2NTs7OztOOzs7OzsKKzFENDFGO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIEY7TGw7MDtMOzxmb250PiAwMDY2Ozs7O047Ozs7OworMUQ0MjA7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgRztMbDswO0w7PGZvbnQ+IDAwNjc7Ozs7Tjs7Ozs7CisxRDQyMTtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBIO0xsOzA7TDs8Zm9udD4gMDA2ODs7OztOOzs7OzsKKzFENDIyO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIEk7TGw7MDtMOzxmb250PiAwMDY5Ozs7O047Ozs7OworMUQ0MjM7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgSjtMbDswO0w7PGZvbnQ+IDAwNkE7Ozs7Tjs7Ozs7CisxRDQyNDtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBLO0xsOzA7TDs8Zm9udD4gMDA2Qjs7OztOOzs7OzsKKzFENDI1O01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIEw7TGw7MDtMOzxmb250PiAwMDZDOzs7O047Ozs7OworMUQ0MjY7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgTTtMbDswO0w7PGZvbnQ+IDAwNkQ7Ozs7Tjs7Ozs7CisxRDQyNztNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBOO0xsOzA7TDs8Zm9udD4gMDA2RTs7OztOOzs7OzsKKzFENDI4O01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIE87TGw7MDtMOzxmb250PiAwMDZGOzs7O047Ozs7OworMUQ0Mjk7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgUDtMbDswO0w7PGZvbnQ+IDAwNzA7Ozs7Tjs7Ozs7CisxRDQyQTtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBRO0xsOzA7TDs8Zm9udD4gMDA3MTs7OztOOzs7OzsKKzFENDJCO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIFI7TGw7MDtMOzxmb250PiAwMDcyOzs7O047Ozs7OworMUQ0MkM7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgUztMbDswO0w7PGZvbnQ+IDAwNzM7Ozs7Tjs7Ozs7CisxRDQyRDtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBUO0xsOzA7TDs8Zm9udD4gMDA3NDs7OztOOzs7OzsKKzFENDJFO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIFU7TGw7MDtMOzxmb250PiAwMDc1Ozs7O047Ozs7OworMUQ0MkY7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgVjtMbDswO0w7PGZvbnQ+IDAwNzY7Ozs7Tjs7Ozs7CisxRDQzMDtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBXO0xsOzA7TDs8Zm9udD4gMDA3Nzs7OztOOzs7OzsKKzFENDMxO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIFg7TGw7MDtMOzxmb250PiAwMDc4Ozs7O047Ozs7OworMUQ0MzI7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgWTtMbDswO0w7PGZvbnQ+IDAwNzk7Ozs7Tjs7Ozs7CisxRDQzMztNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBaO0xsOzA7TDs8Zm9udD4gMDA3QTs7OztOOzs7OzsKKzFENDM0O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBBO0x1OzA7TDs8Zm9udD4gMDA0MTs7OztOOzs7OzsKKzFENDM1O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBCO0x1OzA7TDs8Zm9udD4gMDA0Mjs7OztOOzs7OzsKKzFENDM2O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBDO0x1OzA7TDs8Zm9udD4gMDA0Mzs7OztOOzs7OzsKKzFENDM3O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBEO0x1OzA7TDs8Zm9udD4gMDA0NDs7OztOOzs7OzsKKzFENDM4O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBFO0x1OzA7TDs8Zm9udD4gMDA0NTs7OztOOzs7OzsKKzFENDM5O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBGO0x1OzA7TDs8Zm9udD4gMDA0Njs7OztOOzs7OzsKKzFENDNBO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBHO0x1OzA7TDs8Zm9udD4gMDA0Nzs7OztOOzs7OzsKKzFENDNCO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBIO0x1OzA7TDs8Zm9udD4gMDA0ODs7OztOOzs7OzsKKzFENDNDO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBJO0x1OzA7TDs8Zm9udD4gMDA0OTs7OztOOzs7OzsKKzFENDNEO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBKO0x1OzA7TDs8Zm9udD4gMDA0QTs7OztOOzs7OzsKKzFENDNFO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBLO0x1OzA7TDs8Zm9udD4gMDA0Qjs7OztOOzs7OzsKKzFENDNGO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBMO0x1OzA7TDs8Zm9udD4gMDA0Qzs7OztOOzs7OzsKKzFENDQwO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBNO0x1OzA7TDs8Zm9udD4gMDA0RDs7OztOOzs7OzsKKzFENDQxO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBOO0x1OzA7TDs8Zm9udD4gMDA0RTs7OztOOzs7OzsKKzFENDQyO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBPO0x1OzA7TDs8Zm9udD4gMDA0Rjs7OztOOzs7OzsKKzFENDQzO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBQO0x1OzA7TDs8Zm9udD4gMDA1MDs7OztOOzs7OzsKKzFENDQ0O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBRO0x1OzA7TDs8Zm9udD4gMDA1MTs7OztOOzs7OzsKKzFENDQ1O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBSO0x1OzA7TDs8Zm9udD4gMDA1Mjs7OztOOzs7OzsKKzFENDQ2O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBTO0x1OzA7TDs8Zm9udD4gMDA1Mzs7OztOOzs7OzsKKzFENDQ3O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBUO0x1OzA7TDs8Zm9udD4gMDA1NDs7OztOOzs7OzsKKzFENDQ4O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBVO0x1OzA7TDs8Zm9udD4gMDA1NTs7OztOOzs7OzsKKzFENDQ5O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBWO0x1OzA7TDs8Zm9udD4gMDA1Njs7OztOOzs7OzsKKzFENDRBO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBXO0x1OzA7TDs8Zm9udD4gMDA1Nzs7OztOOzs7OzsKKzFENDRCO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBYO0x1OzA7TDs8Zm9udD4gMDA1ODs7OztOOzs7OzsKKzFENDRDO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBZO0x1OzA7TDs8Zm9udD4gMDA1OTs7OztOOzs7OzsKKzFENDREO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBaO0x1OzA7TDs8Zm9udD4gMDA1QTs7OztOOzs7OzsKKzFENDRFO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgQTtMbDswO0w7PGZvbnQ+IDAwNjE7Ozs7Tjs7Ozs7CisxRDQ0RjtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIEI7TGw7MDtMOzxmb250PiAwMDYyOzs7O047Ozs7OworMUQ0NTA7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBDO0xsOzA7TDs8Zm9udD4gMDA2Mzs7OztOOzs7OzsKKzFENDUxO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgRDtMbDswO0w7PGZvbnQ+IDAwNjQ7Ozs7Tjs7Ozs7CisxRDQ1MjtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIEU7TGw7MDtMOzxmb250PiAwMDY1Ozs7O047Ozs7OworMUQ0NTM7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBGO0xsOzA7TDs8Zm9udD4gMDA2Njs7OztOOzs7OzsKKzFENDU0O01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgRztMbDswO0w7PGZvbnQ+IDAwNjc7Ozs7Tjs7Ozs7CisxRDQ1NjtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIEk7TGw7MDtMOzxmb250PiAwMDY5Ozs7O047Ozs7OworMUQ0NTc7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBKO0xsOzA7TDs8Zm9udD4gMDA2QTs7OztOOzs7OzsKKzFENDU4O01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgSztMbDswO0w7PGZvbnQ+IDAwNkI7Ozs7Tjs7Ozs7CisxRDQ1OTtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIEw7TGw7MDtMOzxmb250PiAwMDZDOzs7O047Ozs7OworMUQ0NUE7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBNO0xsOzA7TDs8Zm9udD4gMDA2RDs7OztOOzs7OzsKKzFENDVCO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgTjtMbDswO0w7PGZvbnQ+IDAwNkU7Ozs7Tjs7Ozs7CisxRDQ1QztNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIE87TGw7MDtMOzxmb250PiAwMDZGOzs7O047Ozs7OworMUQ0NUQ7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBQO0xsOzA7TDs8Zm9udD4gMDA3MDs7OztOOzs7OzsKKzFENDVFO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgUTtMbDswO0w7PGZvbnQ+IDAwNzE7Ozs7Tjs7Ozs7CisxRDQ1RjtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFI7TGw7MDtMOzxmb250PiAwMDcyOzs7O047Ozs7OworMUQ0NjA7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBTO0xsOzA7TDs8Zm9udD4gMDA3Mzs7OztOOzs7OzsKKzFENDYxO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgVDtMbDswO0w7PGZvbnQ+IDAwNzQ7Ozs7Tjs7Ozs7CisxRDQ2MjtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFU7TGw7MDtMOzxmb250PiAwMDc1Ozs7O047Ozs7OworMUQ0NjM7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBWO0xsOzA7TDs8Zm9udD4gMDA3Njs7OztOOzs7OzsKKzFENDY0O01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgVztMbDswO0w7PGZvbnQ+IDAwNzc7Ozs7Tjs7Ozs7CisxRDQ2NTtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFg7TGw7MDtMOzxmb250PiAwMDc4Ozs7O047Ozs7OworMUQ0NjY7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBZO0xsOzA7TDs8Zm9udD4gMDA3OTs7OztOOzs7OzsKKzFENDY3O01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgWjtMbDswO0w7PGZvbnQ+IDAwN0E7Ozs7Tjs7Ozs7CisxRDQ2ODtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBBO0x1OzA7TDs8Zm9udD4gMDA0MTs7OztOOzs7OzsKKzFENDY5O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIEI7THU7MDtMOzxmb250PiAwMDQyOzs7O047Ozs7OworMUQ0NkE7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgQztMdTswO0w7PGZvbnQ+IDAwNDM7Ozs7Tjs7Ozs7CisxRDQ2QjtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBEO0x1OzA7TDs8Zm9udD4gMDA0NDs7OztOOzs7OzsKKzFENDZDO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIEU7THU7MDtMOzxmb250PiAwMDQ1Ozs7O047Ozs7OworMUQ0NkQ7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgRjtMdTswO0w7PGZvbnQ+IDAwNDY7Ozs7Tjs7Ozs7CisxRDQ2RTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBHO0x1OzA7TDs8Zm9udD4gMDA0Nzs7OztOOzs7OzsKKzFENDZGO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIEg7THU7MDtMOzxmb250PiAwMDQ4Ozs7O047Ozs7OworMUQ0NzA7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgSTtMdTswO0w7PGZvbnQ+IDAwNDk7Ozs7Tjs7Ozs7CisxRDQ3MTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBKO0x1OzA7TDs8Zm9udD4gMDA0QTs7OztOOzs7OzsKKzFENDcyO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIEs7THU7MDtMOzxmb250PiAwMDRCOzs7O047Ozs7OworMUQ0NzM7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgTDtMdTswO0w7PGZvbnQ+IDAwNEM7Ozs7Tjs7Ozs7CisxRDQ3NDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBNO0x1OzA7TDs8Zm9udD4gMDA0RDs7OztOOzs7OzsKKzFENDc1O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIE47THU7MDtMOzxmb250PiAwMDRFOzs7O047Ozs7OworMUQ0NzY7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgTztMdTswO0w7PGZvbnQ+IDAwNEY7Ozs7Tjs7Ozs7CisxRDQ3NztNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBQO0x1OzA7TDs8Zm9udD4gMDA1MDs7OztOOzs7OzsKKzFENDc4O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIFE7THU7MDtMOzxmb250PiAwMDUxOzs7O047Ozs7OworMUQ0Nzk7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgUjtMdTswO0w7PGZvbnQ+IDAwNTI7Ozs7Tjs7Ozs7CisxRDQ3QTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBTO0x1OzA7TDs8Zm9udD4gMDA1Mzs7OztOOzs7OzsKKzFENDdCO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIFQ7THU7MDtMOzxmb250PiAwMDU0Ozs7O047Ozs7OworMUQ0N0M7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgVTtMdTswO0w7PGZvbnQ+IDAwNTU7Ozs7Tjs7Ozs7CisxRDQ3RDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBWO0x1OzA7TDs8Zm9udD4gMDA1Njs7OztOOzs7OzsKKzFENDdFO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIFc7THU7MDtMOzxmb250PiAwMDU3Ozs7O047Ozs7OworMUQ0N0Y7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgWDtMdTswO0w7PGZvbnQ+IDAwNTg7Ozs7Tjs7Ozs7CisxRDQ4MDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBZO0x1OzA7TDs8Zm9udD4gMDA1OTs7OztOOzs7OzsKKzFENDgxO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIFo7THU7MDtMOzxmb250PiAwMDVBOzs7O047Ozs7OworMUQ0ODI7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEE7TGw7MDtMOzxmb250PiAwMDYxOzs7O047Ozs7OworMUQ0ODM7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEI7TGw7MDtMOzxmb250PiAwMDYyOzs7O047Ozs7OworMUQ0ODQ7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEM7TGw7MDtMOzxmb250PiAwMDYzOzs7O047Ozs7OworMUQ0ODU7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEQ7TGw7MDtMOzxmb250PiAwMDY0Ozs7O047Ozs7OworMUQ0ODY7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEU7TGw7MDtMOzxmb250PiAwMDY1Ozs7O047Ozs7OworMUQ0ODc7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEY7TGw7MDtMOzxmb250PiAwMDY2Ozs7O047Ozs7OworMUQ0ODg7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEc7TGw7MDtMOzxmb250PiAwMDY3Ozs7O047Ozs7OworMUQ0ODk7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEg7TGw7MDtMOzxmb250PiAwMDY4Ozs7O047Ozs7OworMUQ0OEE7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEk7TGw7MDtMOzxmb250PiAwMDY5Ozs7O047Ozs7OworMUQ0OEI7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEo7TGw7MDtMOzxmb250PiAwMDZBOzs7O047Ozs7OworMUQ0OEM7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEs7TGw7MDtMOzxmb250PiAwMDZCOzs7O047Ozs7OworMUQ0OEQ7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEw7TGw7MDtMOzxmb250PiAwMDZDOzs7O047Ozs7OworMUQ0OEU7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIE07TGw7MDtMOzxmb250PiAwMDZEOzs7O047Ozs7OworMUQ0OEY7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIE47TGw7MDtMOzxmb250PiAwMDZFOzs7O047Ozs7OworMUQ0OTA7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIE87TGw7MDtMOzxmb250PiAwMDZGOzs7O047Ozs7OworMUQ0OTE7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFA7TGw7MDtMOzxmb250PiAwMDcwOzs7O047Ozs7OworMUQ0OTI7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFE7TGw7MDtMOzxmb250PiAwMDcxOzs7O047Ozs7OworMUQ0OTM7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFI7TGw7MDtMOzxmb250PiAwMDcyOzs7O047Ozs7OworMUQ0OTQ7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFM7TGw7MDtMOzxmb250PiAwMDczOzs7O047Ozs7OworMUQ0OTU7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFQ7TGw7MDtMOzxmb250PiAwMDc0Ozs7O047Ozs7OworMUQ0OTY7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFU7TGw7MDtMOzxmb250PiAwMDc1Ozs7O047Ozs7OworMUQ0OTc7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFY7TGw7MDtMOzxmb250PiAwMDc2Ozs7O047Ozs7OworMUQ0OTg7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFc7TGw7MDtMOzxmb250PiAwMDc3Ozs7O047Ozs7OworMUQ0OTk7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFg7TGw7MDtMOzxmb250PiAwMDc4Ozs7O047Ozs7OworMUQ0OUE7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFk7TGw7MDtMOzxmb250PiAwMDc5Ozs7O047Ozs7OworMUQ0OUI7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFo7TGw7MDtMOzxmb250PiAwMDdBOzs7O047Ozs7OworMUQ0OUM7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIEE7THU7MDtMOzxmb250PiAwMDQxOzs7O047Ozs7OworMUQ0OUU7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIEM7THU7MDtMOzxmb250PiAwMDQzOzs7O047Ozs7OworMUQ0OUY7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIEQ7THU7MDtMOzxmb250PiAwMDQ0Ozs7O047Ozs7OworMUQ0QTI7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIEc7THU7MDtMOzxmb250PiAwMDQ3Ozs7O047Ozs7OworMUQ0QTU7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIEo7THU7MDtMOzxmb250PiAwMDRBOzs7O047Ozs7OworMUQ0QTY7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIEs7THU7MDtMOzxmb250PiAwMDRCOzs7O047Ozs7OworMUQ0QTk7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIE47THU7MDtMOzxmb250PiAwMDRFOzs7O047Ozs7OworMUQ0QUE7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIE87THU7MDtMOzxmb250PiAwMDRGOzs7O047Ozs7OworMUQ0QUI7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFA7THU7MDtMOzxmb250PiAwMDUwOzs7O047Ozs7OworMUQ0QUM7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFE7THU7MDtMOzxmb250PiAwMDUxOzs7O047Ozs7OworMUQ0QUU7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFM7THU7MDtMOzxmb250PiAwMDUzOzs7O047Ozs7OworMUQ0QUY7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFQ7THU7MDtMOzxmb250PiAwMDU0Ozs7O047Ozs7OworMUQ0QjA7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFU7THU7MDtMOzxmb250PiAwMDU1Ozs7O047Ozs7OworMUQ0QjE7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFY7THU7MDtMOzxmb250PiAwMDU2Ozs7O047Ozs7OworMUQ0QjI7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFc7THU7MDtMOzxmb250PiAwMDU3Ozs7O047Ozs7OworMUQ0QjM7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFg7THU7MDtMOzxmb250PiAwMDU4Ozs7O047Ozs7OworMUQ0QjQ7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFk7THU7MDtMOzxmb250PiAwMDU5Ozs7O047Ozs7OworMUQ0QjU7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFo7THU7MDtMOzxmb250PiAwMDVBOzs7O047Ozs7OworMUQ0QjY7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBBO0xsOzA7TDs8Zm9udD4gMDA2MTs7OztOOzs7OzsKKzFENEI3O01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgQjtMbDswO0w7PGZvbnQ+IDAwNjI7Ozs7Tjs7Ozs7CisxRDRCODtNQVRIRU1BVElDQUwgU0NSSVBUIFNNQUxMIEM7TGw7MDtMOzxmb250PiAwMDYzOzs7O047Ozs7OworMUQ0Qjk7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBEO0xsOzA7TDs8Zm9udD4gMDA2NDs7OztOOzs7OzsKKzFENEJCO01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgRjtMbDswO0w7PGZvbnQ+IDAwNjY7Ozs7Tjs7Ozs7CisxRDRCRDtNQVRIRU1BVElDQUwgU0NSSVBUIFNNQUxMIEg7TGw7MDtMOzxmb250PiAwMDY4Ozs7O047Ozs7OworMUQ0QkU7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBJO0xsOzA7TDs8Zm9udD4gMDA2OTs7OztOOzs7OzsKKzFENEJGO01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgSjtMbDswO0w7PGZvbnQ+IDAwNkE7Ozs7Tjs7Ozs7CisxRDRDMDtNQVRIRU1BVElDQUwgU0NSSVBUIFNNQUxMIEs7TGw7MDtMOzxmb250PiAwMDZCOzs7O047Ozs7OworMUQ0QzI7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBNO0xsOzA7TDs8Zm9udD4gMDA2RDs7OztOOzs7OzsKKzFENEMzO01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgTjtMbDswO0w7PGZvbnQ+IDAwNkU7Ozs7Tjs7Ozs7CisxRDRDNTtNQVRIRU1BVElDQUwgU0NSSVBUIFNNQUxMIFA7TGw7MDtMOzxmb250PiAwMDcwOzs7O047Ozs7OworMUQ0QzY7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBRO0xsOzA7TDs8Zm9udD4gMDA3MTs7OztOOzs7OzsKKzFENEM3O01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgUjtMbDswO0w7PGZvbnQ+IDAwNzI7Ozs7Tjs7Ozs7CisxRDRDODtNQVRIRU1BVElDQUwgU0NSSVBUIFNNQUxMIFM7TGw7MDtMOzxmb250PiAwMDczOzs7O047Ozs7OworMUQ0Qzk7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBUO0xsOzA7TDs8Zm9udD4gMDA3NDs7OztOOzs7OzsKKzFENENBO01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgVTtMbDswO0w7PGZvbnQ+IDAwNzU7Ozs7Tjs7Ozs7CisxRDRDQjtNQVRIRU1BVElDQUwgU0NSSVBUIFNNQUxMIFY7TGw7MDtMOzxmb250PiAwMDc2Ozs7O047Ozs7OworMUQ0Q0M7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBXO0xsOzA7TDs8Zm9udD4gMDA3Nzs7OztOOzs7OzsKKzFENENEO01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgWDtMbDswO0w7PGZvbnQ+IDAwNzg7Ozs7Tjs7Ozs7CisxRDRDRTtNQVRIRU1BVElDQUwgU0NSSVBUIFNNQUxMIFk7TGw7MDtMOzxmb250PiAwMDc5Ozs7O047Ozs7OworMUQ0Q0Y7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBaO0xsOzA7TDs8Zm9udD4gMDA3QTs7OztOOzs7OzsKKzFENEQwO01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIEE7THU7MDtMOzxmb250PiAwMDQxOzs7O047Ozs7OworMUQ0RDE7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgQjtMdTswO0w7PGZvbnQ+IDAwNDI7Ozs7Tjs7Ozs7CisxRDREMjtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBDO0x1OzA7TDs8Zm9udD4gMDA0Mzs7OztOOzs7OzsKKzFENEQzO01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIEQ7THU7MDtMOzxmb250PiAwMDQ0Ozs7O047Ozs7OworMUQ0RDQ7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgRTtMdTswO0w7PGZvbnQ+IDAwNDU7Ozs7Tjs7Ozs7CisxRDRENTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBGO0x1OzA7TDs8Zm9udD4gMDA0Njs7OztOOzs7OzsKKzFENEQ2O01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIEc7THU7MDtMOzxmb250PiAwMDQ3Ozs7O047Ozs7OworMUQ0RDc7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgSDtMdTswO0w7PGZvbnQ+IDAwNDg7Ozs7Tjs7Ozs7CisxRDREODtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBJO0x1OzA7TDs8Zm9udD4gMDA0OTs7OztOOzs7OzsKKzFENEQ5O01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIEo7THU7MDtMOzxmb250PiAwMDRBOzs7O047Ozs7OworMUQ0REE7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgSztMdTswO0w7PGZvbnQ+IDAwNEI7Ozs7Tjs7Ozs7CisxRDREQjtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBMO0x1OzA7TDs8Zm9udD4gMDA0Qzs7OztOOzs7OzsKKzFENERDO01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIE07THU7MDtMOzxmb250PiAwMDREOzs7O047Ozs7OworMUQ0REQ7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgTjtMdTswO0w7PGZvbnQ+IDAwNEU7Ozs7Tjs7Ozs7CisxRDRERTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBPO0x1OzA7TDs8Zm9udD4gMDA0Rjs7OztOOzs7OzsKKzFENERGO01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIFA7THU7MDtMOzxmb250PiAwMDUwOzs7O047Ozs7OworMUQ0RTA7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgUTtMdTswO0w7PGZvbnQ+IDAwNTE7Ozs7Tjs7Ozs7CisxRDRFMTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBSO0x1OzA7TDs8Zm9udD4gMDA1Mjs7OztOOzs7OzsKKzFENEUyO01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIFM7THU7MDtMOzxmb250PiAwMDUzOzs7O047Ozs7OworMUQ0RTM7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgVDtMdTswO0w7PGZvbnQ+IDAwNTQ7Ozs7Tjs7Ozs7CisxRDRFNDtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBVO0x1OzA7TDs8Zm9udD4gMDA1NTs7OztOOzs7OzsKKzFENEU1O01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIFY7THU7MDtMOzxmb250PiAwMDU2Ozs7O047Ozs7OworMUQ0RTY7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgVztMdTswO0w7PGZvbnQ+IDAwNTc7Ozs7Tjs7Ozs7CisxRDRFNztNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBYO0x1OzA7TDs8Zm9udD4gMDA1ODs7OztOOzs7OzsKKzFENEU4O01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIFk7THU7MDtMOzxmb250PiAwMDU5Ozs7O047Ozs7OworMUQ0RTk7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgWjtMdTswO0w7PGZvbnQ+IDAwNUE7Ozs7Tjs7Ozs7CisxRDRFQTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgQTtMbDswO0w7PGZvbnQ+IDAwNjE7Ozs7Tjs7Ozs7CisxRDRFQjtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgQjtMbDswO0w7PGZvbnQ+IDAwNjI7Ozs7Tjs7Ozs7CisxRDRFQztNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgQztMbDswO0w7PGZvbnQ+IDAwNjM7Ozs7Tjs7Ozs7CisxRDRFRDtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgRDtMbDswO0w7PGZvbnQ+IDAwNjQ7Ozs7Tjs7Ozs7CisxRDRFRTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgRTtMbDswO0w7PGZvbnQ+IDAwNjU7Ozs7Tjs7Ozs7CisxRDRFRjtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgRjtMbDswO0w7PGZvbnQ+IDAwNjY7Ozs7Tjs7Ozs7CisxRDRGMDtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgRztMbDswO0w7PGZvbnQ+IDAwNjc7Ozs7Tjs7Ozs7CisxRDRGMTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgSDtMbDswO0w7PGZvbnQ+IDAwNjg7Ozs7Tjs7Ozs7CisxRDRGMjtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgSTtMbDswO0w7PGZvbnQ+IDAwNjk7Ozs7Tjs7Ozs7CisxRDRGMztNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgSjtMbDswO0w7PGZvbnQ+IDAwNkE7Ozs7Tjs7Ozs7CisxRDRGNDtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgSztMbDswO0w7PGZvbnQ+IDAwNkI7Ozs7Tjs7Ozs7CisxRDRGNTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgTDtMbDswO0w7PGZvbnQ+IDAwNkM7Ozs7Tjs7Ozs7CisxRDRGNjtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgTTtMbDswO0w7PGZvbnQ+IDAwNkQ7Ozs7Tjs7Ozs7CisxRDRGNztNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgTjtMbDswO0w7PGZvbnQ+IDAwNkU7Ozs7Tjs7Ozs7CisxRDRGODtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgTztMbDswO0w7PGZvbnQ+IDAwNkY7Ozs7Tjs7Ozs7CisxRDRGOTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgUDtMbDswO0w7PGZvbnQ+IDAwNzA7Ozs7Tjs7Ozs7CisxRDRGQTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgUTtMbDswO0w7PGZvbnQ+IDAwNzE7Ozs7Tjs7Ozs7CisxRDRGQjtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgUjtMbDswO0w7PGZvbnQ+IDAwNzI7Ozs7Tjs7Ozs7CisxRDRGQztNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgUztMbDswO0w7PGZvbnQ+IDAwNzM7Ozs7Tjs7Ozs7CisxRDRGRDtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgVDtMbDswO0w7PGZvbnQ+IDAwNzQ7Ozs7Tjs7Ozs7CisxRDRGRTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgVTtMbDswO0w7PGZvbnQ+IDAwNzU7Ozs7Tjs7Ozs7CisxRDRGRjtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgVjtMbDswO0w7PGZvbnQ+IDAwNzY7Ozs7Tjs7Ozs7CisxRDUwMDtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgVztMbDswO0w7PGZvbnQ+IDAwNzc7Ozs7Tjs7Ozs7CisxRDUwMTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgWDtMbDswO0w7PGZvbnQ+IDAwNzg7Ozs7Tjs7Ozs7CisxRDUwMjtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgWTtMbDswO0w7PGZvbnQ+IDAwNzk7Ozs7Tjs7Ozs7CisxRDUwMztNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgU01BTEwgWjtMbDswO0w7PGZvbnQ+IDAwN0E7Ozs7Tjs7Ozs7CisxRDUwNDtNQVRIRU1BVElDQUwgRlJBS1RVUiBDQVBJVEFMIEE7THU7MDtMOzxmb250PiAwMDQxOzs7O047Ozs7OworMUQ1MDU7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgQ0FQSVRBTCBCO0x1OzA7TDs8Zm9udD4gMDA0Mjs7OztOOzs7OzsKKzFENTA3O01BVEhFTUFUSUNBTCBGUkFLVFVSIENBUElUQUwgRDtMdTswO0w7PGZvbnQ+IDAwNDQ7Ozs7Tjs7Ozs7CisxRDUwODtNQVRIRU1BVElDQUwgRlJBS1RVUiBDQVBJVEFMIEU7THU7MDtMOzxmb250PiAwMDQ1Ozs7O047Ozs7OworMUQ1MDk7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgQ0FQSVRBTCBGO0x1OzA7TDs8Zm9udD4gMDA0Njs7OztOOzs7OzsKKzFENTBBO01BVEhFTUFUSUNBTCBGUkFLVFVSIENBUElUQUwgRztMdTswO0w7PGZvbnQ+IDAwNDc7Ozs7Tjs7Ozs7CisxRDUwRDtNQVRIRU1BVElDQUwgRlJBS1RVUiBDQVBJVEFMIEo7THU7MDtMOzxmb250PiAwMDRBOzs7O047Ozs7OworMUQ1MEU7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgQ0FQSVRBTCBLO0x1OzA7TDs8Zm9udD4gMDA0Qjs7OztOOzs7OzsKKzFENTBGO01BVEhFTUFUSUNBTCBGUkFLVFVSIENBUElUQUwgTDtMdTswO0w7PGZvbnQ+IDAwNEM7Ozs7Tjs7Ozs7CisxRDUxMDtNQVRIRU1BVElDQUwgRlJBS1RVUiBDQVBJVEFMIE07THU7MDtMOzxmb250PiAwMDREOzs7O047Ozs7OworMUQ1MTE7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgQ0FQSVRBTCBOO0x1OzA7TDs8Zm9udD4gMDA0RTs7OztOOzs7OzsKKzFENTEyO01BVEhFTUFUSUNBTCBGUkFLVFVSIENBUElUQUwgTztMdTswO0w7PGZvbnQ+IDAwNEY7Ozs7Tjs7Ozs7CisxRDUxMztNQVRIRU1BVElDQUwgRlJBS1RVUiBDQVBJVEFMIFA7THU7MDtMOzxmb250PiAwMDUwOzs7O047Ozs7OworMUQ1MTQ7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgQ0FQSVRBTCBRO0x1OzA7TDs8Zm9udD4gMDA1MTs7OztOOzs7OzsKKzFENTE2O01BVEhFTUFUSUNBTCBGUkFLVFVSIENBUElUQUwgUztMdTswO0w7PGZvbnQ+IDAwNTM7Ozs7Tjs7Ozs7CisxRDUxNztNQVRIRU1BVElDQUwgRlJBS1RVUiBDQVBJVEFMIFQ7THU7MDtMOzxmb250PiAwMDU0Ozs7O047Ozs7OworMUQ1MTg7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgQ0FQSVRBTCBVO0x1OzA7TDs8Zm9udD4gMDA1NTs7OztOOzs7OzsKKzFENTE5O01BVEhFTUFUSUNBTCBGUkFLVFVSIENBUElUQUwgVjtMdTswO0w7PGZvbnQ+IDAwNTY7Ozs7Tjs7Ozs7CisxRDUxQTtNQVRIRU1BVElDQUwgRlJBS1RVUiBDQVBJVEFMIFc7THU7MDtMOzxmb250PiAwMDU3Ozs7O047Ozs7OworMUQ1MUI7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgQ0FQSVRBTCBYO0x1OzA7TDs8Zm9udD4gMDA1ODs7OztOOzs7OzsKKzFENTFDO01BVEhFTUFUSUNBTCBGUkFLVFVSIENBUElUQUwgWTtMdTswO0w7PGZvbnQ+IDAwNTk7Ozs7Tjs7Ozs7CisxRDUxRTtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBBO0xsOzA7TDs8Zm9udD4gMDA2MTs7OztOOzs7OzsKKzFENTFGO01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIEI7TGw7MDtMOzxmb250PiAwMDYyOzs7O047Ozs7OworMUQ1MjA7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgQztMbDswO0w7PGZvbnQ+IDAwNjM7Ozs7Tjs7Ozs7CisxRDUyMTtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBEO0xsOzA7TDs8Zm9udD4gMDA2NDs7OztOOzs7OzsKKzFENTIyO01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIEU7TGw7MDtMOzxmb250PiAwMDY1Ozs7O047Ozs7OworMUQ1MjM7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgRjtMbDswO0w7PGZvbnQ+IDAwNjY7Ozs7Tjs7Ozs7CisxRDUyNDtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBHO0xsOzA7TDs8Zm9udD4gMDA2Nzs7OztOOzs7OzsKKzFENTI1O01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIEg7TGw7MDtMOzxmb250PiAwMDY4Ozs7O047Ozs7OworMUQ1MjY7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgSTtMbDswO0w7PGZvbnQ+IDAwNjk7Ozs7Tjs7Ozs7CisxRDUyNztNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBKO0xsOzA7TDs8Zm9udD4gMDA2QTs7OztOOzs7OzsKKzFENTI4O01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIEs7TGw7MDtMOzxmb250PiAwMDZCOzs7O047Ozs7OworMUQ1Mjk7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgTDtMbDswO0w7PGZvbnQ+IDAwNkM7Ozs7Tjs7Ozs7CisxRDUyQTtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBNO0xsOzA7TDs8Zm9udD4gMDA2RDs7OztOOzs7OzsKKzFENTJCO01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIE47TGw7MDtMOzxmb250PiAwMDZFOzs7O047Ozs7OworMUQ1MkM7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgTztMbDswO0w7PGZvbnQ+IDAwNkY7Ozs7Tjs7Ozs7CisxRDUyRDtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBQO0xsOzA7TDs8Zm9udD4gMDA3MDs7OztOOzs7OzsKKzFENTJFO01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIFE7TGw7MDtMOzxmb250PiAwMDcxOzs7O047Ozs7OworMUQ1MkY7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgUjtMbDswO0w7PGZvbnQ+IDAwNzI7Ozs7Tjs7Ozs7CisxRDUzMDtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBTO0xsOzA7TDs8Zm9udD4gMDA3Mzs7OztOOzs7OzsKKzFENTMxO01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIFQ7TGw7MDtMOzxmb250PiAwMDc0Ozs7O047Ozs7OworMUQ1MzI7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgVTtMbDswO0w7PGZvbnQ+IDAwNzU7Ozs7Tjs7Ozs7CisxRDUzMztNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBWO0xsOzA7TDs8Zm9udD4gMDA3Njs7OztOOzs7OzsKKzFENTM0O01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIFc7TGw7MDtMOzxmb250PiAwMDc3Ozs7O047Ozs7OworMUQ1MzU7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgWDtMbDswO0w7PGZvbnQ+IDAwNzg7Ozs7Tjs7Ozs7CisxRDUzNjtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBZO0xsOzA7TDs8Zm9udD4gMDA3OTs7OztOOzs7OzsKKzFENTM3O01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIFo7TGw7MDtMOzxmb250PiAwMDdBOzs7O047Ozs7OworMUQ1Mzg7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBBO0x1OzA7TDs8Zm9udD4gMDA0MTs7OztOOzs7OzsKKzFENTM5O01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIENBUElUQUwgQjtMdTswO0w7PGZvbnQ+IDAwNDI7Ozs7Tjs7Ozs7CisxRDUzQjtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBDQVBJVEFMIEQ7THU7MDtMOzxmb250PiAwMDQ0Ozs7O047Ozs7OworMUQ1M0M7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBFO0x1OzA7TDs8Zm9udD4gMDA0NTs7OztOOzs7OzsKKzFENTNEO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIENBUElUQUwgRjtMdTswO0w7PGZvbnQ+IDAwNDY7Ozs7Tjs7Ozs7CisxRDUzRTtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBDQVBJVEFMIEc7THU7MDtMOzxmb250PiAwMDQ3Ozs7O047Ozs7OworMUQ1NDA7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBJO0x1OzA7TDs8Zm9udD4gMDA0OTs7OztOOzs7OzsKKzFENTQxO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIENBUElUQUwgSjtMdTswO0w7PGZvbnQ+IDAwNEE7Ozs7Tjs7Ozs7CisxRDU0MjtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBDQVBJVEFMIEs7THU7MDtMOzxmb250PiAwMDRCOzs7O047Ozs7OworMUQ1NDM7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBMO0x1OzA7TDs8Zm9udD4gMDA0Qzs7OztOOzs7OzsKKzFENTQ0O01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIENBUElUQUwgTTtMdTswO0w7PGZvbnQ+IDAwNEQ7Ozs7Tjs7Ozs7CisxRDU0NjtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBDQVBJVEFMIE87THU7MDtMOzxmb250PiAwMDRGOzs7O047Ozs7OworMUQ1NEE7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBTO0x1OzA7TDs8Zm9udD4gMDA1Mzs7OztOOzs7OzsKKzFENTRCO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIENBUElUQUwgVDtMdTswO0w7PGZvbnQ+IDAwNTQ7Ozs7Tjs7Ozs7CisxRDU0QztNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBDQVBJVEFMIFU7THU7MDtMOzxmb250PiAwMDU1Ozs7O047Ozs7OworMUQ1NEQ7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBWO0x1OzA7TDs8Zm9udD4gMDA1Njs7OztOOzs7OzsKKzFENTRFO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIENBUElUQUwgVztMdTswO0w7PGZvbnQ+IDAwNTc7Ozs7Tjs7Ozs7CisxRDU0RjtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBDQVBJVEFMIFg7THU7MDtMOzxmb250PiAwMDU4Ozs7O047Ozs7OworMUQ1NTA7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBZO0x1OzA7TDs8Zm9udD4gMDA1OTs7OztOOzs7OzsKKzFENTUyO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIEE7TGw7MDtMOzxmb250PiAwMDYxOzs7O047Ozs7OworMUQ1NTM7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgQjtMbDswO0w7PGZvbnQ+IDAwNjI7Ozs7Tjs7Ozs7CisxRDU1NDtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBDO0xsOzA7TDs8Zm9udD4gMDA2Mzs7OztOOzs7OzsKKzFENTU1O01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIEQ7TGw7MDtMOzxmb250PiAwMDY0Ozs7O047Ozs7OworMUQ1NTY7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgRTtMbDswO0w7PGZvbnQ+IDAwNjU7Ozs7Tjs7Ozs7CisxRDU1NztNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBGO0xsOzA7TDs8Zm9udD4gMDA2Njs7OztOOzs7OzsKKzFENTU4O01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIEc7TGw7MDtMOzxmb250PiAwMDY3Ozs7O047Ozs7OworMUQ1NTk7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgSDtMbDswO0w7PGZvbnQ+IDAwNjg7Ozs7Tjs7Ozs7CisxRDU1QTtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBJO0xsOzA7TDs8Zm9udD4gMDA2OTs7OztOOzs7OzsKKzFENTVCO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIEo7TGw7MDtMOzxmb250PiAwMDZBOzs7O047Ozs7OworMUQ1NUM7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgSztMbDswO0w7PGZvbnQ+IDAwNkI7Ozs7Tjs7Ozs7CisxRDU1RDtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBMO0xsOzA7TDs8Zm9udD4gMDA2Qzs7OztOOzs7OzsKKzFENTVFO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIE07TGw7MDtMOzxmb250PiAwMDZEOzs7O047Ozs7OworMUQ1NUY7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgTjtMbDswO0w7PGZvbnQ+IDAwNkU7Ozs7Tjs7Ozs7CisxRDU2MDtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBPO0xsOzA7TDs8Zm9udD4gMDA2Rjs7OztOOzs7OzsKKzFENTYxO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIFA7TGw7MDtMOzxmb250PiAwMDcwOzs7O047Ozs7OworMUQ1NjI7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgUTtMbDswO0w7PGZvbnQ+IDAwNzE7Ozs7Tjs7Ozs7CisxRDU2MztNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBSO0xsOzA7TDs8Zm9udD4gMDA3Mjs7OztOOzs7OzsKKzFENTY0O01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIFM7TGw7MDtMOzxmb250PiAwMDczOzs7O047Ozs7OworMUQ1NjU7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgVDtMbDswO0w7PGZvbnQ+IDAwNzQ7Ozs7Tjs7Ozs7CisxRDU2NjtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBVO0xsOzA7TDs8Zm9udD4gMDA3NTs7OztOOzs7OzsKKzFENTY3O01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIFY7TGw7MDtMOzxmb250PiAwMDc2Ozs7O047Ozs7OworMUQ1Njg7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgVztMbDswO0w7PGZvbnQ+IDAwNzc7Ozs7Tjs7Ozs7CisxRDU2OTtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBYO0xsOzA7TDs8Zm9udD4gMDA3ODs7OztOOzs7OzsKKzFENTZBO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIFk7TGw7MDtMOzxmb250PiAwMDc5Ozs7O047Ozs7OworMUQ1NkI7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgWjtMbDswO0w7PGZvbnQ+IDAwN0E7Ozs7Tjs7Ozs7CisxRDU2QztNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgQTtMdTswO0w7PGZvbnQ+IDAwNDE7Ozs7Tjs7Ozs7CisxRDU2RDtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgQjtMdTswO0w7PGZvbnQ+IDAwNDI7Ozs7Tjs7Ozs7CisxRDU2RTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgQztMdTswO0w7PGZvbnQ+IDAwNDM7Ozs7Tjs7Ozs7CisxRDU2RjtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgRDtMdTswO0w7PGZvbnQ+IDAwNDQ7Ozs7Tjs7Ozs7CisxRDU3MDtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgRTtMdTswO0w7PGZvbnQ+IDAwNDU7Ozs7Tjs7Ozs7CisxRDU3MTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgRjtMdTswO0w7PGZvbnQ+IDAwNDY7Ozs7Tjs7Ozs7CisxRDU3MjtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgRztMdTswO0w7PGZvbnQ+IDAwNDc7Ozs7Tjs7Ozs7CisxRDU3MztNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgSDtMdTswO0w7PGZvbnQ+IDAwNDg7Ozs7Tjs7Ozs7CisxRDU3NDtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgSTtMdTswO0w7PGZvbnQ+IDAwNDk7Ozs7Tjs7Ozs7CisxRDU3NTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgSjtMdTswO0w7PGZvbnQ+IDAwNEE7Ozs7Tjs7Ozs7CisxRDU3NjtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgSztMdTswO0w7PGZvbnQ+IDAwNEI7Ozs7Tjs7Ozs7CisxRDU3NztNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgTDtMdTswO0w7PGZvbnQ+IDAwNEM7Ozs7Tjs7Ozs7CisxRDU3ODtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgTTtMdTswO0w7PGZvbnQ+IDAwNEQ7Ozs7Tjs7Ozs7CisxRDU3OTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgTjtMdTswO0w7PGZvbnQ+IDAwNEU7Ozs7Tjs7Ozs7CisxRDU3QTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgTztMdTswO0w7PGZvbnQ+IDAwNEY7Ozs7Tjs7Ozs7CisxRDU3QjtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgUDtMdTswO0w7PGZvbnQ+IDAwNTA7Ozs7Tjs7Ozs7CisxRDU3QztNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgUTtMdTswO0w7PGZvbnQ+IDAwNTE7Ozs7Tjs7Ozs7CisxRDU3RDtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgUjtMdTswO0w7PGZvbnQ+IDAwNTI7Ozs7Tjs7Ozs7CisxRDU3RTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgUztMdTswO0w7PGZvbnQ+IDAwNTM7Ozs7Tjs7Ozs7CisxRDU3RjtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgVDtMdTswO0w7PGZvbnQ+IDAwNTQ7Ozs7Tjs7Ozs7CisxRDU4MDtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgVTtMdTswO0w7PGZvbnQ+IDAwNTU7Ozs7Tjs7Ozs7CisxRDU4MTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgVjtMdTswO0w7PGZvbnQ+IDAwNTY7Ozs7Tjs7Ozs7CisxRDU4MjtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgVztMdTswO0w7PGZvbnQ+IDAwNTc7Ozs7Tjs7Ozs7CisxRDU4MztNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgWDtMdTswO0w7PGZvbnQ+IDAwNTg7Ozs7Tjs7Ozs7CisxRDU4NDtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgWTtMdTswO0w7PGZvbnQ+IDAwNTk7Ozs7Tjs7Ozs7CisxRDU4NTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIENBUElUQUwgWjtMdTswO0w7PGZvbnQ+IDAwNUE7Ozs7Tjs7Ozs7CisxRDU4NjtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIEE7TGw7MDtMOzxmb250PiAwMDYxOzs7O047Ozs7OworMUQ1ODc7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBCO0xsOzA7TDs8Zm9udD4gMDA2Mjs7OztOOzs7OzsKKzFENTg4O01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgQztMbDswO0w7PGZvbnQ+IDAwNjM7Ozs7Tjs7Ozs7CisxRDU4OTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIEQ7TGw7MDtMOzxmb250PiAwMDY0Ozs7O047Ozs7OworMUQ1OEE7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBFO0xsOzA7TDs8Zm9udD4gMDA2NTs7OztOOzs7OzsKKzFENThCO01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgRjtMbDswO0w7PGZvbnQ+IDAwNjY7Ozs7Tjs7Ozs7CisxRDU4QztNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIEc7TGw7MDtMOzxmb250PiAwMDY3Ozs7O047Ozs7OworMUQ1OEQ7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBIO0xsOzA7TDs8Zm9udD4gMDA2ODs7OztOOzs7OzsKKzFENThFO01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgSTtMbDswO0w7PGZvbnQ+IDAwNjk7Ozs7Tjs7Ozs7CisxRDU4RjtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIEo7TGw7MDtMOzxmb250PiAwMDZBOzs7O047Ozs7OworMUQ1OTA7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBLO0xsOzA7TDs8Zm9udD4gMDA2Qjs7OztOOzs7OzsKKzFENTkxO01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgTDtMbDswO0w7PGZvbnQ+IDAwNkM7Ozs7Tjs7Ozs7CisxRDU5MjtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIE07TGw7MDtMOzxmb250PiAwMDZEOzs7O047Ozs7OworMUQ1OTM7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBOO0xsOzA7TDs8Zm9udD4gMDA2RTs7OztOOzs7OzsKKzFENTk0O01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgTztMbDswO0w7PGZvbnQ+IDAwNkY7Ozs7Tjs7Ozs7CisxRDU5NTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIFA7TGw7MDtMOzxmb250PiAwMDcwOzs7O047Ozs7OworMUQ1OTY7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBRO0xsOzA7TDs8Zm9udD4gMDA3MTs7OztOOzs7OzsKKzFENTk3O01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgUjtMbDswO0w7PGZvbnQ+IDAwNzI7Ozs7Tjs7Ozs7CisxRDU5ODtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIFM7TGw7MDtMOzxmb250PiAwMDczOzs7O047Ozs7OworMUQ1OTk7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBUO0xsOzA7TDs8Zm9udD4gMDA3NDs7OztOOzs7OzsKKzFENTlBO01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgVTtMbDswO0w7PGZvbnQ+IDAwNzU7Ozs7Tjs7Ozs7CisxRDU5QjtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIFY7TGw7MDtMOzxmb250PiAwMDc2Ozs7O047Ozs7OworMUQ1OUM7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBXO0xsOzA7TDs8Zm9udD4gMDA3Nzs7OztOOzs7OzsKKzFENTlEO01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgWDtMbDswO0w7PGZvbnQ+IDAwNzg7Ozs7Tjs7Ozs7CisxRDU5RTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIFk7TGw7MDtMOzxmb250PiAwMDc5Ozs7O047Ozs7OworMUQ1OUY7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBaO0xsOzA7TDs8Zm9udD4gMDA3QTs7OztOOzs7OzsKKzFENUEwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgQTtMdTswO0w7PGZvbnQ+IDAwNDE7Ozs7Tjs7Ozs7CisxRDVBMTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIEI7THU7MDtMOzxmb250PiAwMDQyOzs7O047Ozs7OworMUQ1QTI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBDO0x1OzA7TDs8Zm9udD4gMDA0Mzs7OztOOzs7OzsKKzFENUEzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgRDtMdTswO0w7PGZvbnQ+IDAwNDQ7Ozs7Tjs7Ozs7CisxRDVBNDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIEU7THU7MDtMOzxmb250PiAwMDQ1Ozs7O047Ozs7OworMUQ1QTU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBGO0x1OzA7TDs8Zm9udD4gMDA0Njs7OztOOzs7OzsKKzFENUE2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgRztMdTswO0w7PGZvbnQ+IDAwNDc7Ozs7Tjs7Ozs7CisxRDVBNztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIEg7THU7MDtMOzxmb250PiAwMDQ4Ozs7O047Ozs7OworMUQ1QTg7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBJO0x1OzA7TDs8Zm9udD4gMDA0OTs7OztOOzs7OzsKKzFENUE5O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgSjtMdTswO0w7PGZvbnQ+IDAwNEE7Ozs7Tjs7Ozs7CisxRDVBQTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIEs7THU7MDtMOzxmb250PiAwMDRCOzs7O047Ozs7OworMUQ1QUI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBMO0x1OzA7TDs8Zm9udD4gMDA0Qzs7OztOOzs7OzsKKzFENUFDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgTTtMdTswO0w7PGZvbnQ+IDAwNEQ7Ozs7Tjs7Ozs7CisxRDVBRDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIE47THU7MDtMOzxmb250PiAwMDRFOzs7O047Ozs7OworMUQ1QUU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBPO0x1OzA7TDs8Zm9udD4gMDA0Rjs7OztOOzs7OzsKKzFENUFGO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgUDtMdTswO0w7PGZvbnQ+IDAwNTA7Ozs7Tjs7Ozs7CisxRDVCMDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIFE7THU7MDtMOzxmb250PiAwMDUxOzs7O047Ozs7OworMUQ1QjE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBSO0x1OzA7TDs8Zm9udD4gMDA1Mjs7OztOOzs7OzsKKzFENUIyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgUztMdTswO0w7PGZvbnQ+IDAwNTM7Ozs7Tjs7Ozs7CisxRDVCMztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIFQ7THU7MDtMOzxmb250PiAwMDU0Ozs7O047Ozs7OworMUQ1QjQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBVO0x1OzA7TDs8Zm9udD4gMDA1NTs7OztOOzs7OzsKKzFENUI1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgVjtMdTswO0w7PGZvbnQ+IDAwNTY7Ozs7Tjs7Ozs7CisxRDVCNjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIFc7THU7MDtMOzxmb250PiAwMDU3Ozs7O047Ozs7OworMUQ1Qjc7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBYO0x1OzA7TDs8Zm9udD4gMDA1ODs7OztOOzs7OzsKKzFENUI4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgWTtMdTswO0w7PGZvbnQ+IDAwNTk7Ozs7Tjs7Ozs7CisxRDVCOTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIFo7THU7MDtMOzxmb250PiAwMDVBOzs7O047Ozs7OworMUQ1QkE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgQTtMbDswO0w7PGZvbnQ+IDAwNjE7Ozs7Tjs7Ozs7CisxRDVCQjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBCO0xsOzA7TDs8Zm9udD4gMDA2Mjs7OztOOzs7OzsKKzFENUJDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIEM7TGw7MDtMOzxmb250PiAwMDYzOzs7O047Ozs7OworMUQ1QkQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgRDtMbDswO0w7PGZvbnQ+IDAwNjQ7Ozs7Tjs7Ozs7CisxRDVCRTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBFO0xsOzA7TDs8Zm9udD4gMDA2NTs7OztOOzs7OzsKKzFENUJGO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIEY7TGw7MDtMOzxmb250PiAwMDY2Ozs7O047Ozs7OworMUQ1QzA7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgRztMbDswO0w7PGZvbnQ+IDAwNjc7Ozs7Tjs7Ozs7CisxRDVDMTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBIO0xsOzA7TDs8Zm9udD4gMDA2ODs7OztOOzs7OzsKKzFENUMyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIEk7TGw7MDtMOzxmb250PiAwMDY5Ozs7O047Ozs7OworMUQ1QzM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgSjtMbDswO0w7PGZvbnQ+IDAwNkE7Ozs7Tjs7Ozs7CisxRDVDNDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBLO0xsOzA7TDs8Zm9udD4gMDA2Qjs7OztOOzs7OzsKKzFENUM1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIEw7TGw7MDtMOzxmb250PiAwMDZDOzs7O047Ozs7OworMUQ1QzY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgTTtMbDswO0w7PGZvbnQ+IDAwNkQ7Ozs7Tjs7Ozs7CisxRDVDNztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBOO0xsOzA7TDs8Zm9udD4gMDA2RTs7OztOOzs7OzsKKzFENUM4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIE87TGw7MDtMOzxmb250PiAwMDZGOzs7O047Ozs7OworMUQ1Qzk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgUDtMbDswO0w7PGZvbnQ+IDAwNzA7Ozs7Tjs7Ozs7CisxRDVDQTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBRO0xsOzA7TDs8Zm9udD4gMDA3MTs7OztOOzs7OzsKKzFENUNCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIFI7TGw7MDtMOzxmb250PiAwMDcyOzs7O047Ozs7OworMUQ1Q0M7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgUztMbDswO0w7PGZvbnQ+IDAwNzM7Ozs7Tjs7Ozs7CisxRDVDRDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBUO0xsOzA7TDs8Zm9udD4gMDA3NDs7OztOOzs7OzsKKzFENUNFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIFU7TGw7MDtMOzxmb250PiAwMDc1Ozs7O047Ozs7OworMUQ1Q0Y7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgVjtMbDswO0w7PGZvbnQ+IDAwNzY7Ozs7Tjs7Ozs7CisxRDVEMDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBXO0xsOzA7TDs8Zm9udD4gMDA3Nzs7OztOOzs7OzsKKzFENUQxO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIFg7TGw7MDtMOzxmb250PiAwMDc4Ozs7O047Ozs7OworMUQ1RDI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgWTtMbDswO0w7PGZvbnQ+IDAwNzk7Ozs7Tjs7Ozs7CisxRDVEMztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBaO0xsOzA7TDs8Zm9udD4gMDA3QTs7OztOOzs7OzsKKzFENUQ0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBBO0x1OzA7TDs8Zm9udD4gMDA0MTs7OztOOzs7OzsKKzFENUQ1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBCO0x1OzA7TDs8Zm9udD4gMDA0Mjs7OztOOzs7OzsKKzFENUQ2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBDO0x1OzA7TDs8Zm9udD4gMDA0Mzs7OztOOzs7OzsKKzFENUQ3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBEO0x1OzA7TDs8Zm9udD4gMDA0NDs7OztOOzs7OzsKKzFENUQ4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBFO0x1OzA7TDs8Zm9udD4gMDA0NTs7OztOOzs7OzsKKzFENUQ5O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBGO0x1OzA7TDs8Zm9udD4gMDA0Njs7OztOOzs7OzsKKzFENURBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBHO0x1OzA7TDs8Zm9udD4gMDA0Nzs7OztOOzs7OzsKKzFENURCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBIO0x1OzA7TDs8Zm9udD4gMDA0ODs7OztOOzs7OzsKKzFENURDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBJO0x1OzA7TDs8Zm9udD4gMDA0OTs7OztOOzs7OzsKKzFENUREO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBKO0x1OzA7TDs8Zm9udD4gMDA0QTs7OztOOzs7OzsKKzFENURFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBLO0x1OzA7TDs8Zm9udD4gMDA0Qjs7OztOOzs7OzsKKzFENURGO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBMO0x1OzA7TDs8Zm9udD4gMDA0Qzs7OztOOzs7OzsKKzFENUUwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBNO0x1OzA7TDs8Zm9udD4gMDA0RDs7OztOOzs7OzsKKzFENUUxO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBOO0x1OzA7TDs8Zm9udD4gMDA0RTs7OztOOzs7OzsKKzFENUUyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBPO0x1OzA7TDs8Zm9udD4gMDA0Rjs7OztOOzs7OzsKKzFENUUzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBQO0x1OzA7TDs8Zm9udD4gMDA1MDs7OztOOzs7OzsKKzFENUU0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBRO0x1OzA7TDs8Zm9udD4gMDA1MTs7OztOOzs7OzsKKzFENUU1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBSO0x1OzA7TDs8Zm9udD4gMDA1Mjs7OztOOzs7OzsKKzFENUU2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBTO0x1OzA7TDs8Zm9udD4gMDA1Mzs7OztOOzs7OzsKKzFENUU3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBUO0x1OzA7TDs8Zm9udD4gMDA1NDs7OztOOzs7OzsKKzFENUU4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBVO0x1OzA7TDs8Zm9udD4gMDA1NTs7OztOOzs7OzsKKzFENUU5O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBWO0x1OzA7TDs8Zm9udD4gMDA1Njs7OztOOzs7OzsKKzFENUVBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBXO0x1OzA7TDs8Zm9udD4gMDA1Nzs7OztOOzs7OzsKKzFENUVCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBYO0x1OzA7TDs8Zm9udD4gMDA1ODs7OztOOzs7OzsKKzFENUVDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBZO0x1OzA7TDs8Zm9udD4gMDA1OTs7OztOOzs7OzsKKzFENUVEO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBaO0x1OzA7TDs8Zm9udD4gMDA1QTs7OztOOzs7OzsKKzFENUVFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgQTtMbDswO0w7PGZvbnQ+IDAwNjE7Ozs7Tjs7Ozs7CisxRDVFRjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIEI7TGw7MDtMOzxmb250PiAwMDYyOzs7O047Ozs7OworMUQ1RjA7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBDO0xsOzA7TDs8Zm9udD4gMDA2Mzs7OztOOzs7OzsKKzFENUYxO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgRDtMbDswO0w7PGZvbnQ+IDAwNjQ7Ozs7Tjs7Ozs7CisxRDVGMjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIEU7TGw7MDtMOzxmb250PiAwMDY1Ozs7O047Ozs7OworMUQ1RjM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBGO0xsOzA7TDs8Zm9udD4gMDA2Njs7OztOOzs7OzsKKzFENUY0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgRztMbDswO0w7PGZvbnQ+IDAwNjc7Ozs7Tjs7Ozs7CisxRDVGNTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIEg7TGw7MDtMOzxmb250PiAwMDY4Ozs7O047Ozs7OworMUQ1RjY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBJO0xsOzA7TDs8Zm9udD4gMDA2OTs7OztOOzs7OzsKKzFENUY3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgSjtMbDswO0w7PGZvbnQ+IDAwNkE7Ozs7Tjs7Ozs7CisxRDVGODtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIEs7TGw7MDtMOzxmb250PiAwMDZCOzs7O047Ozs7OworMUQ1Rjk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBMO0xsOzA7TDs8Zm9udD4gMDA2Qzs7OztOOzs7OzsKKzFENUZBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgTTtMbDswO0w7PGZvbnQ+IDAwNkQ7Ozs7Tjs7Ozs7CisxRDVGQjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIE47TGw7MDtMOzxmb250PiAwMDZFOzs7O047Ozs7OworMUQ1RkM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBPO0xsOzA7TDs8Zm9udD4gMDA2Rjs7OztOOzs7OzsKKzFENUZEO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgUDtMbDswO0w7PGZvbnQ+IDAwNzA7Ozs7Tjs7Ozs7CisxRDVGRTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIFE7TGw7MDtMOzxmb250PiAwMDcxOzs7O047Ozs7OworMUQ1RkY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBSO0xsOzA7TDs8Zm9udD4gMDA3Mjs7OztOOzs7OzsKKzFENjAwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgUztMbDswO0w7PGZvbnQ+IDAwNzM7Ozs7Tjs7Ozs7CisxRDYwMTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIFQ7TGw7MDtMOzxmb250PiAwMDc0Ozs7O047Ozs7OworMUQ2MDI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBVO0xsOzA7TDs8Zm9udD4gMDA3NTs7OztOOzs7OzsKKzFENjAzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgVjtMbDswO0w7PGZvbnQ+IDAwNzY7Ozs7Tjs7Ozs7CisxRDYwNDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIFc7TGw7MDtMOzxmb250PiAwMDc3Ozs7O047Ozs7OworMUQ2MDU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBYO0xsOzA7TDs8Zm9udD4gMDA3ODs7OztOOzs7OzsKKzFENjA2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgWTtMbDswO0w7PGZvbnQ+IDAwNzk7Ozs7Tjs7Ozs7CisxRDYwNztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIFo7TGw7MDtMOzxmb250PiAwMDdBOzs7O047Ozs7OworMUQ2MDg7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgQTtMdTswO0w7PGZvbnQ+IDAwNDE7Ozs7Tjs7Ozs7CisxRDYwOTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBCO0x1OzA7TDs8Zm9udD4gMDA0Mjs7OztOOzs7OzsKKzFENjBBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIEM7THU7MDtMOzxmb250PiAwMDQzOzs7O047Ozs7OworMUQ2MEI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgRDtMdTswO0w7PGZvbnQ+IDAwNDQ7Ozs7Tjs7Ozs7CisxRDYwQztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBFO0x1OzA7TDs8Zm9udD4gMDA0NTs7OztOOzs7OzsKKzFENjBEO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIEY7THU7MDtMOzxmb250PiAwMDQ2Ozs7O047Ozs7OworMUQ2MEU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgRztMdTswO0w7PGZvbnQ+IDAwNDc7Ozs7Tjs7Ozs7CisxRDYwRjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBIO0x1OzA7TDs8Zm9udD4gMDA0ODs7OztOOzs7OzsKKzFENjEwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIEk7THU7MDtMOzxmb250PiAwMDQ5Ozs7O047Ozs7OworMUQ2MTE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgSjtMdTswO0w7PGZvbnQ+IDAwNEE7Ozs7Tjs7Ozs7CisxRDYxMjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBLO0x1OzA7TDs8Zm9udD4gMDA0Qjs7OztOOzs7OzsKKzFENjEzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIEw7THU7MDtMOzxmb250PiAwMDRDOzs7O047Ozs7OworMUQ2MTQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgTTtMdTswO0w7PGZvbnQ+IDAwNEQ7Ozs7Tjs7Ozs7CisxRDYxNTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBOO0x1OzA7TDs8Zm9udD4gMDA0RTs7OztOOzs7OzsKKzFENjE2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIE87THU7MDtMOzxmb250PiAwMDRGOzs7O047Ozs7OworMUQ2MTc7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgUDtMdTswO0w7PGZvbnQ+IDAwNTA7Ozs7Tjs7Ozs7CisxRDYxODtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBRO0x1OzA7TDs8Zm9udD4gMDA1MTs7OztOOzs7OzsKKzFENjE5O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIFI7THU7MDtMOzxmb250PiAwMDUyOzs7O047Ozs7OworMUQ2MUE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgUztMdTswO0w7PGZvbnQ+IDAwNTM7Ozs7Tjs7Ozs7CisxRDYxQjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBUO0x1OzA7TDs8Zm9udD4gMDA1NDs7OztOOzs7OzsKKzFENjFDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIFU7THU7MDtMOzxmb250PiAwMDU1Ozs7O047Ozs7OworMUQ2MUQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgVjtMdTswO0w7PGZvbnQ+IDAwNTY7Ozs7Tjs7Ozs7CisxRDYxRTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBXO0x1OzA7TDs8Zm9udD4gMDA1Nzs7OztOOzs7OzsKKzFENjFGO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIFg7THU7MDtMOzxmb250PiAwMDU4Ozs7O047Ozs7OworMUQ2MjA7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgWTtMdTswO0w7PGZvbnQ+IDAwNTk7Ozs7Tjs7Ozs7CisxRDYyMTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBaO0x1OzA7TDs8Zm9udD4gMDA1QTs7OztOOzs7OzsKKzFENjIyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBBO0xsOzA7TDs8Zm9udD4gMDA2MTs7OztOOzs7OzsKKzFENjIzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBCO0xsOzA7TDs8Zm9udD4gMDA2Mjs7OztOOzs7OzsKKzFENjI0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBDO0xsOzA7TDs8Zm9udD4gMDA2Mzs7OztOOzs7OzsKKzFENjI1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBEO0xsOzA7TDs8Zm9udD4gMDA2NDs7OztOOzs7OzsKKzFENjI2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBFO0xsOzA7TDs8Zm9udD4gMDA2NTs7OztOOzs7OzsKKzFENjI3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBGO0xsOzA7TDs8Zm9udD4gMDA2Njs7OztOOzs7OzsKKzFENjI4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBHO0xsOzA7TDs8Zm9udD4gMDA2Nzs7OztOOzs7OzsKKzFENjI5O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBIO0xsOzA7TDs8Zm9udD4gMDA2ODs7OztOOzs7OzsKKzFENjJBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBJO0xsOzA7TDs8Zm9udD4gMDA2OTs7OztOOzs7OzsKKzFENjJCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBKO0xsOzA7TDs8Zm9udD4gMDA2QTs7OztOOzs7OzsKKzFENjJDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBLO0xsOzA7TDs8Zm9udD4gMDA2Qjs7OztOOzs7OzsKKzFENjJEO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBMO0xsOzA7TDs8Zm9udD4gMDA2Qzs7OztOOzs7OzsKKzFENjJFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBNO0xsOzA7TDs8Zm9udD4gMDA2RDs7OztOOzs7OzsKKzFENjJGO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBOO0xsOzA7TDs8Zm9udD4gMDA2RTs7OztOOzs7OzsKKzFENjMwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBPO0xsOzA7TDs8Zm9udD4gMDA2Rjs7OztOOzs7OzsKKzFENjMxO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBQO0xsOzA7TDs8Zm9udD4gMDA3MDs7OztOOzs7OzsKKzFENjMyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBRO0xsOzA7TDs8Zm9udD4gMDA3MTs7OztOOzs7OzsKKzFENjMzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBSO0xsOzA7TDs8Zm9udD4gMDA3Mjs7OztOOzs7OzsKKzFENjM0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBTO0xsOzA7TDs8Zm9udD4gMDA3Mzs7OztOOzs7OzsKKzFENjM1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBUO0xsOzA7TDs8Zm9udD4gMDA3NDs7OztOOzs7OzsKKzFENjM2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBVO0xsOzA7TDs8Zm9udD4gMDA3NTs7OztOOzs7OzsKKzFENjM3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBWO0xsOzA7TDs8Zm9udD4gMDA3Njs7OztOOzs7OzsKKzFENjM4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBXO0xsOzA7TDs8Zm9udD4gMDA3Nzs7OztOOzs7OzsKKzFENjM5O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBYO0xsOzA7TDs8Zm9udD4gMDA3ODs7OztOOzs7OzsKKzFENjNBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBZO0xsOzA7TDs8Zm9udD4gMDA3OTs7OztOOzs7OzsKKzFENjNCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBTTUFMTCBaO0xsOzA7TDs8Zm9udD4gMDA3QTs7OztOOzs7OzsKKzFENjNDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgQTtMdTswO0w7PGZvbnQ+IDAwNDE7Ozs7Tjs7Ozs7CisxRDYzRDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIEI7THU7MDtMOzxmb250PiAwMDQyOzs7O047Ozs7OworMUQ2M0U7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBDO0x1OzA7TDs8Zm9udD4gMDA0Mzs7OztOOzs7OzsKKzFENjNGO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgRDtMdTswO0w7PGZvbnQ+IDAwNDQ7Ozs7Tjs7Ozs7CisxRDY0MDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIEU7THU7MDtMOzxmb250PiAwMDQ1Ozs7O047Ozs7OworMUQ2NDE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBGO0x1OzA7TDs8Zm9udD4gMDA0Njs7OztOOzs7OzsKKzFENjQyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgRztMdTswO0w7PGZvbnQ+IDAwNDc7Ozs7Tjs7Ozs7CisxRDY0MztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIEg7THU7MDtMOzxmb250PiAwMDQ4Ozs7O047Ozs7OworMUQ2NDQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBJO0x1OzA7TDs8Zm9udD4gMDA0OTs7OztOOzs7OzsKKzFENjQ1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgSjtMdTswO0w7PGZvbnQ+IDAwNEE7Ozs7Tjs7Ozs7CisxRDY0NjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIEs7THU7MDtMOzxmb250PiAwMDRCOzs7O047Ozs7OworMUQ2NDc7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBMO0x1OzA7TDs8Zm9udD4gMDA0Qzs7OztOOzs7OzsKKzFENjQ4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgTTtMdTswO0w7PGZvbnQ+IDAwNEQ7Ozs7Tjs7Ozs7CisxRDY0OTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIE47THU7MDtMOzxmb250PiAwMDRFOzs7O047Ozs7OworMUQ2NEE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBPO0x1OzA7TDs8Zm9udD4gMDA0Rjs7OztOOzs7OzsKKzFENjRCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgUDtMdTswO0w7PGZvbnQ+IDAwNTA7Ozs7Tjs7Ozs7CisxRDY0QztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFE7THU7MDtMOzxmb250PiAwMDUxOzs7O047Ozs7OworMUQ2NEQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBSO0x1OzA7TDs8Zm9udD4gMDA1Mjs7OztOOzs7OzsKKzFENjRFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgUztMdTswO0w7PGZvbnQ+IDAwNTM7Ozs7Tjs7Ozs7CisxRDY0RjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFQ7THU7MDtMOzxmb250PiAwMDU0Ozs7O047Ozs7OworMUQ2NTA7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBVO0x1OzA7TDs8Zm9udD4gMDA1NTs7OztOOzs7OzsKKzFENjUxO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgVjtMdTswO0w7PGZvbnQ+IDAwNTY7Ozs7Tjs7Ozs7CisxRDY1MjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFc7THU7MDtMOzxmb250PiAwMDU3Ozs7O047Ozs7OworMUQ2NTM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBYO0x1OzA7TDs8Zm9udD4gMDA1ODs7OztOOzs7OzsKKzFENjU0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgWTtMdTswO0w7PGZvbnQ+IDAwNTk7Ozs7Tjs7Ozs7CisxRDY1NTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFo7THU7MDtMOzxmb250PiAwMDVBOzs7O047Ozs7OworMUQ2NTY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgQTtMbDswO0w7PGZvbnQ+IDAwNjE7Ozs7Tjs7Ozs7CisxRDY1NztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBCO0xsOzA7TDs8Zm9udD4gMDA2Mjs7OztOOzs7OzsKKzFENjU4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIEM7TGw7MDtMOzxmb250PiAwMDYzOzs7O047Ozs7OworMUQ2NTk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgRDtMbDswO0w7PGZvbnQ+IDAwNjQ7Ozs7Tjs7Ozs7CisxRDY1QTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBFO0xsOzA7TDs8Zm9udD4gMDA2NTs7OztOOzs7OzsKKzFENjVCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIEY7TGw7MDtMOzxmb250PiAwMDY2Ozs7O047Ozs7OworMUQ2NUM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgRztMbDswO0w7PGZvbnQ+IDAwNjc7Ozs7Tjs7Ozs7CisxRDY1RDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBIO0xsOzA7TDs8Zm9udD4gMDA2ODs7OztOOzs7OzsKKzFENjVFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIEk7TGw7MDtMOzxmb250PiAwMDY5Ozs7O047Ozs7OworMUQ2NUY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgSjtMbDswO0w7PGZvbnQ+IDAwNkE7Ozs7Tjs7Ozs7CisxRDY2MDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBLO0xsOzA7TDs8Zm9udD4gMDA2Qjs7OztOOzs7OzsKKzFENjYxO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIEw7TGw7MDtMOzxmb250PiAwMDZDOzs7O047Ozs7OworMUQ2NjI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgTTtMbDswO0w7PGZvbnQ+IDAwNkQ7Ozs7Tjs7Ozs7CisxRDY2MztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBOO0xsOzA7TDs8Zm9udD4gMDA2RTs7OztOOzs7OzsKKzFENjY0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIE87TGw7MDtMOzxmb250PiAwMDZGOzs7O047Ozs7OworMUQ2NjU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgUDtMbDswO0w7PGZvbnQ+IDAwNzA7Ozs7Tjs7Ozs7CisxRDY2NjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBRO0xsOzA7TDs8Zm9udD4gMDA3MTs7OztOOzs7OzsKKzFENjY3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIFI7TGw7MDtMOzxmb250PiAwMDcyOzs7O047Ozs7OworMUQ2Njg7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgUztMbDswO0w7PGZvbnQ+IDAwNzM7Ozs7Tjs7Ozs7CisxRDY2OTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBUO0xsOzA7TDs8Zm9udD4gMDA3NDs7OztOOzs7OzsKKzFENjZBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIFU7TGw7MDtMOzxmb250PiAwMDc1Ozs7O047Ozs7OworMUQ2NkI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgVjtMbDswO0w7PGZvbnQ+IDAwNzY7Ozs7Tjs7Ozs7CisxRDY2QztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBXO0xsOzA7TDs8Zm9udD4gMDA3Nzs7OztOOzs7OzsKKzFENjZEO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIFg7TGw7MDtMOzxmb250PiAwMDc4Ozs7O047Ozs7OworMUQ2NkU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgWTtMbDswO0w7PGZvbnQ+IDAwNzk7Ozs7Tjs7Ozs7CisxRDY2RjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBaO0xsOzA7TDs8Zm9udD4gMDA3QTs7OztOOzs7OzsKKzFENjcwO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBBO0x1OzA7TDs8Zm9udD4gMDA0MTs7OztOOzs7OzsKKzFENjcxO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBCO0x1OzA7TDs8Zm9udD4gMDA0Mjs7OztOOzs7OzsKKzFENjcyO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBDO0x1OzA7TDs8Zm9udD4gMDA0Mzs7OztOOzs7OzsKKzFENjczO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBEO0x1OzA7TDs8Zm9udD4gMDA0NDs7OztOOzs7OzsKKzFENjc0O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBFO0x1OzA7TDs8Zm9udD4gMDA0NTs7OztOOzs7OzsKKzFENjc1O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBGO0x1OzA7TDs8Zm9udD4gMDA0Njs7OztOOzs7OzsKKzFENjc2O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBHO0x1OzA7TDs8Zm9udD4gMDA0Nzs7OztOOzs7OzsKKzFENjc3O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBIO0x1OzA7TDs8Zm9udD4gMDA0ODs7OztOOzs7OzsKKzFENjc4O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBJO0x1OzA7TDs8Zm9udD4gMDA0OTs7OztOOzs7OzsKKzFENjc5O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBKO0x1OzA7TDs8Zm9udD4gMDA0QTs7OztOOzs7OzsKKzFENjdBO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBLO0x1OzA7TDs8Zm9udD4gMDA0Qjs7OztOOzs7OzsKKzFENjdCO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBMO0x1OzA7TDs8Zm9udD4gMDA0Qzs7OztOOzs7OzsKKzFENjdDO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBNO0x1OzA7TDs8Zm9udD4gMDA0RDs7OztOOzs7OzsKKzFENjdEO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBOO0x1OzA7TDs8Zm9udD4gMDA0RTs7OztOOzs7OzsKKzFENjdFO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBPO0x1OzA7TDs8Zm9udD4gMDA0Rjs7OztOOzs7OzsKKzFENjdGO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBQO0x1OzA7TDs8Zm9udD4gMDA1MDs7OztOOzs7OzsKKzFENjgwO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBRO0x1OzA7TDs8Zm9udD4gMDA1MTs7OztOOzs7OzsKKzFENjgxO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBSO0x1OzA7TDs8Zm9udD4gMDA1Mjs7OztOOzs7OzsKKzFENjgyO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBTO0x1OzA7TDs8Zm9udD4gMDA1Mzs7OztOOzs7OzsKKzFENjgzO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBUO0x1OzA7TDs8Zm9udD4gMDA1NDs7OztOOzs7OzsKKzFENjg0O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBVO0x1OzA7TDs8Zm9udD4gMDA1NTs7OztOOzs7OzsKKzFENjg1O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBWO0x1OzA7TDs8Zm9udD4gMDA1Njs7OztOOzs7OzsKKzFENjg2O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBXO0x1OzA7TDs8Zm9udD4gMDA1Nzs7OztOOzs7OzsKKzFENjg3O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBYO0x1OzA7TDs8Zm9udD4gMDA1ODs7OztOOzs7OzsKKzFENjg4O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBZO0x1OzA7TDs8Zm9udD4gMDA1OTs7OztOOzs7OzsKKzFENjg5O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgQ0FQSVRBTCBaO0x1OzA7TDs8Zm9udD4gMDA1QTs7OztOOzs7OzsKKzFENjhBO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgQTtMbDswO0w7PGZvbnQ+IDAwNjE7Ozs7Tjs7Ozs7CisxRDY4QjtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIEI7TGw7MDtMOzxmb250PiAwMDYyOzs7O047Ozs7OworMUQ2OEM7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBDO0xsOzA7TDs8Zm9udD4gMDA2Mzs7OztOOzs7OzsKKzFENjhEO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgRDtMbDswO0w7PGZvbnQ+IDAwNjQ7Ozs7Tjs7Ozs7CisxRDY4RTtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIEU7TGw7MDtMOzxmb250PiAwMDY1Ozs7O047Ozs7OworMUQ2OEY7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBGO0xsOzA7TDs8Zm9udD4gMDA2Njs7OztOOzs7OzsKKzFENjkwO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgRztMbDswO0w7PGZvbnQ+IDAwNjc7Ozs7Tjs7Ozs7CisxRDY5MTtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIEg7TGw7MDtMOzxmb250PiAwMDY4Ozs7O047Ozs7OworMUQ2OTI7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBJO0xsOzA7TDs8Zm9udD4gMDA2OTs7OztOOzs7OzsKKzFENjkzO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgSjtMbDswO0w7PGZvbnQ+IDAwNkE7Ozs7Tjs7Ozs7CisxRDY5NDtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIEs7TGw7MDtMOzxmb250PiAwMDZCOzs7O047Ozs7OworMUQ2OTU7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBMO0xsOzA7TDs8Zm9udD4gMDA2Qzs7OztOOzs7OzsKKzFENjk2O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgTTtMbDswO0w7PGZvbnQ+IDAwNkQ7Ozs7Tjs7Ozs7CisxRDY5NztNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIE47TGw7MDtMOzxmb250PiAwMDZFOzs7O047Ozs7OworMUQ2OTg7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBPO0xsOzA7TDs8Zm9udD4gMDA2Rjs7OztOOzs7OzsKKzFENjk5O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgUDtMbDswO0w7PGZvbnQ+IDAwNzA7Ozs7Tjs7Ozs7CisxRDY5QTtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIFE7TGw7MDtMOzxmb250PiAwMDcxOzs7O047Ozs7OworMUQ2OUI7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBSO0xsOzA7TDs8Zm9udD4gMDA3Mjs7OztOOzs7OzsKKzFENjlDO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgUztMbDswO0w7PGZvbnQ+IDAwNzM7Ozs7Tjs7Ozs7CisxRDY5RDtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIFQ7TGw7MDtMOzxmb250PiAwMDc0Ozs7O047Ozs7OworMUQ2OUU7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBVO0xsOzA7TDs8Zm9udD4gMDA3NTs7OztOOzs7OzsKKzFENjlGO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgVjtMbDswO0w7PGZvbnQ+IDAwNzY7Ozs7Tjs7Ozs7CisxRDZBMDtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIFc7TGw7MDtMOzxmb250PiAwMDc3Ozs7O047Ozs7OworMUQ2QTE7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBYO0xsOzA7TDs8Zm9udD4gMDA3ODs7OztOOzs7OzsKKzFENkEyO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgWTtMbDswO0w7PGZvbnQ+IDAwNzk7Ozs7Tjs7Ozs7CisxRDZBMztNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIFo7TGw7MDtMOzxmb250PiAwMDdBOzs7O047Ozs7OworMUQ2QTg7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBBTFBIQTtMdTswO0w7PGZvbnQ+IDAzOTE7Ozs7Tjs7Ozs7CisxRDZBOTtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIEJFVEE7THU7MDtMOzxmb250PiAwMzkyOzs7O047Ozs7OworMUQ2QUE7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBHQU1NQTtMdTswO0w7PGZvbnQ+IDAzOTM7Ozs7Tjs7Ozs7CisxRDZBQjtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIERFTFRBO0x1OzA7TDs8Zm9udD4gMDM5NDs7OztOOzs7OzsKKzFENkFDO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgRVBTSUxPTjtMdTswO0w7PGZvbnQ+IDAzOTU7Ozs7Tjs7Ozs7CisxRDZBRDtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFpFVEE7THU7MDtMOzxmb250PiAwMzk2Ozs7O047Ozs7OworMUQ2QUU7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBFVEE7THU7MDtMOzxmb250PiAwMzk3Ozs7O047Ozs7OworMUQ2QUY7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBUSEVUQTtMdTswO0w7PGZvbnQ+IDAzOTg7Ozs7Tjs7Ozs7CisxRDZCMDtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIElPVEE7THU7MDtMOzxmb250PiAwMzk5Ozs7O047Ozs7OworMUQ2QjE7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBLQVBQQTtMdTswO0w7PGZvbnQ+IDAzOUE7Ozs7Tjs7Ozs7CisxRDZCMjtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIExBTURBO0x1OzA7TDs8Zm9udD4gMDM5Qjs7OztOOzs7OzsKKzFENkIzO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgTVU7THU7MDtMOzxmb250PiAwMzlDOzs7O047Ozs7OworMUQ2QjQ7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBOVTtMdTswO0w7PGZvbnQ+IDAzOUQ7Ozs7Tjs7Ozs7CisxRDZCNTtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFhJO0x1OzA7TDs8Zm9udD4gMDM5RTs7OztOOzs7OzsKKzFENkI2O01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgT01JQ1JPTjtMdTswO0w7PGZvbnQ+IDAzOUY7Ozs7Tjs7Ozs7CisxRDZCNztNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFBJO0x1OzA7TDs8Zm9udD4gMDNBMDs7OztOOzs7OzsKKzFENkI4O01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgUkhPO0x1OzA7TDs8Zm9udD4gMDNBMTs7OztOOzs7OzsKKzFENkI5O01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgVEhFVEEgU1lNQk9MO0x1OzA7TDs8Zm9udD4gMDNGNDs7OztOOzs7OzsKKzFENkJBO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgU0lHTUE7THU7MDtMOzxmb250PiAwM0EzOzs7O047Ozs7OworMUQ2QkI7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBUQVU7THU7MDtMOzxmb250PiAwM0E0Ozs7O047Ozs7OworMUQ2QkM7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBVUFNJTE9OO0x1OzA7TDs8Zm9udD4gMDNBNTs7OztOOzs7OzsKKzFENkJEO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgUEhJO0x1OzA7TDs8Zm9udD4gMDNBNjs7OztOOzs7OzsKKzFENkJFO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgQ0hJO0x1OzA7TDs8Zm9udD4gMDNBNzs7OztOOzs7OzsKKzFENkJGO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgUFNJO0x1OzA7TDs8Zm9udD4gMDNBODs7OztOOzs7OzsKKzFENkMwO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgT01FR0E7THU7MDtMOzxmb250PiAwM0E5Ozs7O047Ozs7OworMUQ2QzE7TUFUSEVNQVRJQ0FMIEJPTEQgTkFCTEE7U207MDtMOzxmb250PiAyMjA3Ozs7O047Ozs7OworMUQ2QzI7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgQUxQSEE7TGw7MDtMOzxmb250PiAwM0IxOzs7O047Ozs7OworMUQ2QzM7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgQkVUQTtMbDswO0w7PGZvbnQ+IDAzQjI7Ozs7Tjs7Ozs7CisxRDZDNDtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBHQU1NQTtMbDswO0w7PGZvbnQ+IDAzQjM7Ozs7Tjs7Ozs7CisxRDZDNTtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBERUxUQTtMbDswO0w7PGZvbnQ+IDAzQjQ7Ozs7Tjs7Ozs7CisxRDZDNjtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBFUFNJTE9OO0xsOzA7TDs8Zm9udD4gMDNCNTs7OztOOzs7OzsKKzFENkM3O01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIFpFVEE7TGw7MDtMOzxmb250PiAwM0I2Ozs7O047Ozs7OworMUQ2Qzg7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgRVRBO0xsOzA7TDs8Zm9udD4gMDNCNzs7OztOOzs7OzsKKzFENkM5O01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIFRIRVRBO0xsOzA7TDs8Zm9udD4gMDNCODs7OztOOzs7OzsKKzFENkNBO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIElPVEE7TGw7MDtMOzxmb250PiAwM0I5Ozs7O047Ozs7OworMUQ2Q0I7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgS0FQUEE7TGw7MDtMOzxmb250PiAwM0JBOzs7O047Ozs7OworMUQ2Q0M7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgTEFNREE7TGw7MDtMOzxmb250PiAwM0JCOzs7O047Ozs7OworMUQ2Q0Q7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgTVU7TGw7MDtMOzxmb250PiAwM0JDOzs7O047Ozs7OworMUQ2Q0U7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgTlU7TGw7MDtMOzxmb250PiAwM0JEOzs7O047Ozs7OworMUQ2Q0Y7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgWEk7TGw7MDtMOzxmb250PiAwM0JFOzs7O047Ozs7OworMUQ2RDA7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgT01JQ1JPTjtMbDswO0w7PGZvbnQ+IDAzQkY7Ozs7Tjs7Ozs7CisxRDZEMTtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBQSTtMbDswO0w7PGZvbnQ+IDAzQzA7Ozs7Tjs7Ozs7CisxRDZEMjtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBSSE87TGw7MDtMOzxmb250PiAwM0MxOzs7O047Ozs7OworMUQ2RDM7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgRklOQUwgU0lHTUE7TGw7MDtMOzxmb250PiAwM0MyOzs7O047Ozs7OworMUQ2RDQ7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgU0lHTUE7TGw7MDtMOzxmb250PiAwM0MzOzs7O047Ozs7OworMUQ2RDU7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgVEFVO0xsOzA7TDs8Zm9udD4gMDNDNDs7OztOOzs7OzsKKzFENkQ2O01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIFVQU0lMT047TGw7MDtMOzxmb250PiAwM0M1Ozs7O047Ozs7OworMUQ2RDc7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgUEhJO0xsOzA7TDs8Zm9udD4gMDNDNjs7OztOOzs7OzsKKzFENkQ4O01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIENISTtMbDswO0w7PGZvbnQ+IDAzQzc7Ozs7Tjs7Ozs7CisxRDZEOTtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBQU0k7TGw7MDtMOzxmb250PiAwM0M4Ozs7O047Ozs7OworMUQ2REE7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgT01FR0E7TGw7MDtMOzxmb250PiAwM0M5Ozs7O047Ozs7OworMUQ2REI7TUFUSEVNQVRJQ0FMIEJPTEQgUEFSVElBTCBESUZGRVJFTlRJQUw7U207MDtMOzxmb250PiAyMjAyOzs7O047Ozs7OworMUQ2REM7TUFUSEVNQVRJQ0FMIEJPTEQgRVBTSUxPTiBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0Y1Ozs7O047Ozs7OworMUQ2REQ7TUFUSEVNQVRJQ0FMIEJPTEQgVEhFVEEgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNEMTs7OztOOzs7OzsKKzFENkRFO01BVEhFTUFUSUNBTCBCT0xEIEtBUFBBIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRjA7Ozs7Tjs7Ozs7CisxRDZERjtNQVRIRU1BVElDQUwgQk9MRCBQSEkgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNENTs7OztOOzs7OzsKKzFENkUwO01BVEhFTUFUSUNBTCBCT0xEIFJITyBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0YxOzs7O047Ozs7OworMUQ2RTE7TUFUSEVNQVRJQ0FMIEJPTEQgUEkgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNENjs7OztOOzs7OzsKKzFENkUyO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBBTFBIQTtMdTswO0w7PGZvbnQ+IDAzOTE7Ozs7Tjs7Ozs7CisxRDZFMztNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgQkVUQTtMdTswO0w7PGZvbnQ+IDAzOTI7Ozs7Tjs7Ozs7CisxRDZFNDtNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgR0FNTUE7THU7MDtMOzxmb250PiAwMzkzOzs7O047Ozs7OworMUQ2RTU7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIERFTFRBO0x1OzA7TDs8Zm9udD4gMDM5NDs7OztOOzs7OzsKKzFENkU2O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBFUFNJTE9OO0x1OzA7TDs8Zm9udD4gMDM5NTs7OztOOzs7OzsKKzFENkU3O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBaRVRBO0x1OzA7TDs8Zm9udD4gMDM5Njs7OztOOzs7OzsKKzFENkU4O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBFVEE7THU7MDtMOzxmb250PiAwMzk3Ozs7O047Ozs7OworMUQ2RTk7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIFRIRVRBO0x1OzA7TDs8Zm9udD4gMDM5ODs7OztOOzs7OzsKKzFENkVBO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBJT1RBO0x1OzA7TDs8Zm9udD4gMDM5OTs7OztOOzs7OzsKKzFENkVCO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBLQVBQQTtMdTswO0w7PGZvbnQ+IDAzOUE7Ozs7Tjs7Ozs7CisxRDZFQztNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgTEFNREE7THU7MDtMOzxmb250PiAwMzlCOzs7O047Ozs7OworMUQ2RUQ7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIE1VO0x1OzA7TDs8Zm9udD4gMDM5Qzs7OztOOzs7OzsKKzFENkVFO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBOVTtMdTswO0w7PGZvbnQ+IDAzOUQ7Ozs7Tjs7Ozs7CisxRDZFRjtNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgWEk7THU7MDtMOzxmb250PiAwMzlFOzs7O047Ozs7OworMUQ2RjA7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIE9NSUNST047THU7MDtMOzxmb250PiAwMzlGOzs7O047Ozs7OworMUQ2RjE7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIFBJO0x1OzA7TDs8Zm9udD4gMDNBMDs7OztOOzs7OzsKKzFENkYyO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBSSE87THU7MDtMOzxmb250PiAwM0ExOzs7O047Ozs7OworMUQ2RjM7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIFRIRVRBIFNZTUJPTDtMdTswO0w7PGZvbnQ+IDAzRjQ7Ozs7Tjs7Ozs7CisxRDZGNDtNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgU0lHTUE7THU7MDtMOzxmb250PiAwM0EzOzs7O047Ozs7OworMUQ2RjU7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIFRBVTtMdTswO0w7PGZvbnQ+IDAzQTQ7Ozs7Tjs7Ozs7CisxRDZGNjtNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgVVBTSUxPTjtMdTswO0w7PGZvbnQ+IDAzQTU7Ozs7Tjs7Ozs7CisxRDZGNztNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgUEhJO0x1OzA7TDs8Zm9udD4gMDNBNjs7OztOOzs7OzsKKzFENkY4O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBDSEk7THU7MDtMOzxmb250PiAwM0E3Ozs7O047Ozs7OworMUQ2Rjk7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIFBTSTtMdTswO0w7PGZvbnQ+IDAzQTg7Ozs7Tjs7Ozs7CisxRDZGQTtNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgT01FR0E7THU7MDtMOzxmb250PiAwM0E5Ozs7O047Ozs7OworMUQ2RkI7TUFUSEVNQVRJQ0FMIElUQUxJQyBOQUJMQTtTbTswO0w7PGZvbnQ+IDIyMDc7Ozs7Tjs7Ozs7CisxRDZGQztNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIEFMUEhBO0xsOzA7TDs8Zm9udD4gMDNCMTs7OztOOzs7OzsKKzFENkZEO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgQkVUQTtMbDswO0w7PGZvbnQ+IDAzQjI7Ozs7Tjs7Ozs7CisxRDZGRTtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIEdBTU1BO0xsOzA7TDs8Zm9udD4gMDNCMzs7OztOOzs7OzsKKzFENkZGO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgREVMVEE7TGw7MDtMOzxmb250PiAwM0I0Ozs7O047Ozs7OworMUQ3MDA7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBFUFNJTE9OO0xsOzA7TDs8Zm9udD4gMDNCNTs7OztOOzs7OzsKKzFENzAxO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgWkVUQTtMbDswO0w7PGZvbnQ+IDAzQjY7Ozs7Tjs7Ozs7CisxRDcwMjtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIEVUQTtMbDswO0w7PGZvbnQ+IDAzQjc7Ozs7Tjs7Ozs7CisxRDcwMztNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFRIRVRBO0xsOzA7TDs8Zm9udD4gMDNCODs7OztOOzs7OzsKKzFENzA0O01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgSU9UQTtMbDswO0w7PGZvbnQ+IDAzQjk7Ozs7Tjs7Ozs7CisxRDcwNTtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIEtBUFBBO0xsOzA7TDs8Zm9udD4gMDNCQTs7OztOOzs7OzsKKzFENzA2O01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgTEFNREE7TGw7MDtMOzxmb250PiAwM0JCOzs7O047Ozs7OworMUQ3MDc7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBNVTtMbDswO0w7PGZvbnQ+IDAzQkM7Ozs7Tjs7Ozs7CisxRDcwODtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIE5VO0xsOzA7TDs8Zm9udD4gMDNCRDs7OztOOzs7OzsKKzFENzA5O01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgWEk7TGw7MDtMOzxmb250PiAwM0JFOzs7O047Ozs7OworMUQ3MEE7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBPTUlDUk9OO0xsOzA7TDs8Zm9udD4gMDNCRjs7OztOOzs7OzsKKzFENzBCO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgUEk7TGw7MDtMOzxmb250PiAwM0MwOzs7O047Ozs7OworMUQ3MEM7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBSSE87TGw7MDtMOzxmb250PiAwM0MxOzs7O047Ozs7OworMUQ3MEQ7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBGSU5BTCBTSUdNQTtMbDswO0w7PGZvbnQ+IDAzQzI7Ozs7Tjs7Ozs7CisxRDcwRTtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFNJR01BO0xsOzA7TDs8Zm9udD4gMDNDMzs7OztOOzs7OzsKKzFENzBGO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgVEFVO0xsOzA7TDs8Zm9udD4gMDNDNDs7OztOOzs7OzsKKzFENzEwO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgVVBTSUxPTjtMbDswO0w7PGZvbnQ+IDAzQzU7Ozs7Tjs7Ozs7CisxRDcxMTtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFBISTtMbDswO0w7PGZvbnQ+IDAzQzY7Ozs7Tjs7Ozs7CisxRDcxMjtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIENISTtMbDswO0w7PGZvbnQ+IDAzQzc7Ozs7Tjs7Ozs7CisxRDcxMztNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFBTSTtMbDswO0w7PGZvbnQ+IDAzQzg7Ozs7Tjs7Ozs7CisxRDcxNDtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIE9NRUdBO0xsOzA7TDs8Zm9udD4gMDNDOTs7OztOOzs7OzsKKzFENzE1O01BVEhFTUFUSUNBTCBJVEFMSUMgUEFSVElBTCBESUZGRVJFTlRJQUw7U207MDtMOzxmb250PiAyMjAyOzs7O047Ozs7OworMUQ3MTY7TUFUSEVNQVRJQ0FMIElUQUxJQyBFUFNJTE9OIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRjU7Ozs7Tjs7Ozs7CisxRDcxNztNQVRIRU1BVElDQUwgSVRBTElDIFRIRVRBIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRDE7Ozs7Tjs7Ozs7CisxRDcxODtNQVRIRU1BVElDQUwgSVRBTElDIEtBUFBBIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRjA7Ozs7Tjs7Ozs7CisxRDcxOTtNQVRIRU1BVElDQUwgSVRBTElDIFBISSBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0Q1Ozs7O047Ozs7OworMUQ3MUE7TUFUSEVNQVRJQ0FMIElUQUxJQyBSSE8gU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNGMTs7OztOOzs7OzsKKzFENzFCO01BVEhFTUFUSUNBTCBJVEFMSUMgUEkgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNENjs7OztOOzs7OzsKKzFENzFDO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIEFMUEhBO0x1OzA7TDs8Zm9udD4gMDM5MTs7OztOOzs7OzsKKzFENzFEO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIEJFVEE7THU7MDtMOzxmb250PiAwMzkyOzs7O047Ozs7OworMUQ3MUU7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgR0FNTUE7THU7MDtMOzxmb250PiAwMzkzOzs7O047Ozs7OworMUQ3MUY7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgREVMVEE7THU7MDtMOzxmb250PiAwMzk0Ozs7O047Ozs7OworMUQ3MjA7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgRVBTSUxPTjtMdTswO0w7PGZvbnQ+IDAzOTU7Ozs7Tjs7Ozs7CisxRDcyMTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBaRVRBO0x1OzA7TDs8Zm9udD4gMDM5Njs7OztOOzs7OzsKKzFENzIyO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIEVUQTtMdTswO0w7PGZvbnQ+IDAzOTc7Ozs7Tjs7Ozs7CisxRDcyMztNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBUSEVUQTtMdTswO0w7PGZvbnQ+IDAzOTg7Ozs7Tjs7Ozs7CisxRDcyNDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBJT1RBO0x1OzA7TDs8Zm9udD4gMDM5OTs7OztOOzs7OzsKKzFENzI1O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIEtBUFBBO0x1OzA7TDs8Zm9udD4gMDM5QTs7OztOOzs7OzsKKzFENzI2O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIExBTURBO0x1OzA7TDs8Zm9udD4gMDM5Qjs7OztOOzs7OzsKKzFENzI3O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIE1VO0x1OzA7TDs8Zm9udD4gMDM5Qzs7OztOOzs7OzsKKzFENzI4O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIE5VO0x1OzA7TDs8Zm9udD4gMDM5RDs7OztOOzs7OzsKKzFENzI5O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIFhJO0x1OzA7TDs8Zm9udD4gMDM5RTs7OztOOzs7OzsKKzFENzJBO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIE9NSUNST047THU7MDtMOzxmb250PiAwMzlGOzs7O047Ozs7OworMUQ3MkI7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgUEk7THU7MDtMOzxmb250PiAwM0EwOzs7O047Ozs7OworMUQ3MkM7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgUkhPO0x1OzA7TDs8Zm9udD4gMDNBMTs7OztOOzs7OzsKKzFENzJEO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIFRIRVRBIFNZTUJPTDtMdTswO0w7PGZvbnQ+IDAzRjQ7Ozs7Tjs7Ozs7CisxRDcyRTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBTSUdNQTtMdTswO0w7PGZvbnQ+IDAzQTM7Ozs7Tjs7Ozs7CisxRDcyRjtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBUQVU7THU7MDtMOzxmb250PiAwM0E0Ozs7O047Ozs7OworMUQ3MzA7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgVVBTSUxPTjtMdTswO0w7PGZvbnQ+IDAzQTU7Ozs7Tjs7Ozs7CisxRDczMTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBQSEk7THU7MDtMOzxmb250PiAwM0E2Ozs7O047Ozs7OworMUQ3MzI7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgQ0hJO0x1OzA7TDs8Zm9udD4gMDNBNzs7OztOOzs7OzsKKzFENzMzO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIFBTSTtMdTswO0w7PGZvbnQ+IDAzQTg7Ozs7Tjs7Ozs7CisxRDczNDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBPTUVHQTtMdTswO0w7PGZvbnQ+IDAzQTk7Ozs7Tjs7Ozs7CisxRDczNTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgTkFCTEE7U207MDtMOzxmb250PiAyMjA3Ozs7O047Ozs7OworMUQ3MzY7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEFMUEhBO0xsOzA7TDs8Zm9udD4gMDNCMTs7OztOOzs7OzsKKzFENzM3O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBCRVRBO0xsOzA7TDs8Zm9udD4gMDNCMjs7OztOOzs7OzsKKzFENzM4O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBHQU1NQTtMbDswO0w7PGZvbnQ+IDAzQjM7Ozs7Tjs7Ozs7CisxRDczOTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgREVMVEE7TGw7MDtMOzxmb250PiAwM0I0Ozs7O047Ozs7OworMUQ3M0E7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEVQU0lMT047TGw7MDtMOzxmb250PiAwM0I1Ozs7O047Ozs7OworMUQ3M0I7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFpFVEE7TGw7MDtMOzxmb250PiAwM0I2Ozs7O047Ozs7OworMUQ3M0M7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEVUQTtMbDswO0w7PGZvbnQ+IDAzQjc7Ozs7Tjs7Ozs7CisxRDczRDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgVEhFVEE7TGw7MDtMOzxmb250PiAwM0I4Ozs7O047Ozs7OworMUQ3M0U7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIElPVEE7TGw7MDtMOzxmb250PiAwM0I5Ozs7O047Ozs7OworMUQ3M0Y7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEtBUFBBO0xsOzA7TDs8Zm9udD4gMDNCQTs7OztOOzs7OzsKKzFENzQwO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBMQU1EQTtMbDswO0w7PGZvbnQ+IDAzQkI7Ozs7Tjs7Ozs7CisxRDc0MTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgTVU7TGw7MDtMOzxmb250PiAwM0JDOzs7O047Ozs7OworMUQ3NDI7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIE5VO0xsOzA7TDs8Zm9udD4gMDNCRDs7OztOOzs7OzsKKzFENzQzO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBYSTtMbDswO0w7PGZvbnQ+IDAzQkU7Ozs7Tjs7Ozs7CisxRDc0NDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgT01JQ1JPTjtMbDswO0w7PGZvbnQ+IDAzQkY7Ozs7Tjs7Ozs7CisxRDc0NTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgUEk7TGw7MDtMOzxmb250PiAwM0MwOzs7O047Ozs7OworMUQ3NDY7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFJITztMbDswO0w7PGZvbnQ+IDAzQzE7Ozs7Tjs7Ozs7CisxRDc0NztNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgRklOQUwgU0lHTUE7TGw7MDtMOzxmb250PiAwM0MyOzs7O047Ozs7OworMUQ3NDg7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFNJR01BO0xsOzA7TDs8Zm9udD4gMDNDMzs7OztOOzs7OzsKKzFENzQ5O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBUQVU7TGw7MDtMOzxmb250PiAwM0M0Ozs7O047Ozs7OworMUQ3NEE7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFVQU0lMT047TGw7MDtMOzxmb250PiAwM0M1Ozs7O047Ozs7OworMUQ3NEI7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFBISTtMbDswO0w7PGZvbnQ+IDAzQzY7Ozs7Tjs7Ozs7CisxRDc0QztNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgQ0hJO0xsOzA7TDs8Zm9udD4gMDNDNzs7OztOOzs7OzsKKzFENzREO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBQU0k7TGw7MDtMOzxmb250PiAwM0M4Ozs7O047Ozs7OworMUQ3NEU7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIE9NRUdBO0xsOzA7TDs8Zm9udD4gMDNDOTs7OztOOzs7OzsKKzFENzRGO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBQQVJUSUFMIERJRkZFUkVOVElBTDtTbTswO0w7PGZvbnQ+IDIyMDI7Ozs7Tjs7Ozs7CisxRDc1MDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgRVBTSUxPTiBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0Y1Ozs7O047Ozs7OworMUQ3NTE7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFRIRVRBIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRDE7Ozs7Tjs7Ozs7CisxRDc1MjtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgS0FQUEEgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNGMDs7OztOOzs7OzsKKzFENzUzO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBQSEkgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNENTs7OztOOzs7OzsKKzFENzU0O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBSSE8gU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNGMTs7OztOOzs7OzsKKzFENzU1O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBQSSBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0Q2Ozs7O047Ozs7OworMUQ3NTY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIEFMUEhBO0x1OzA7TDs8Zm9udD4gMDM5MTs7OztOOzs7OzsKKzFENzU3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBCRVRBO0x1OzA7TDs8Zm9udD4gMDM5Mjs7OztOOzs7OzsKKzFENzU4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBHQU1NQTtMdTswO0w7PGZvbnQ+IDAzOTM7Ozs7Tjs7Ozs7CisxRDc1OTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgREVMVEE7THU7MDtMOzxmb250PiAwMzk0Ozs7O047Ozs7OworMUQ3NUE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIEVQU0lMT047THU7MDtMOzxmb250PiAwMzk1Ozs7O047Ozs7OworMUQ3NUI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIFpFVEE7THU7MDtMOzxmb250PiAwMzk2Ozs7O047Ozs7OworMUQ3NUM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIEVUQTtMdTswO0w7PGZvbnQ+IDAzOTc7Ozs7Tjs7Ozs7CisxRDc1RDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgVEhFVEE7THU7MDtMOzxmb250PiAwMzk4Ozs7O047Ozs7OworMUQ3NUU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIElPVEE7THU7MDtMOzxmb250PiAwMzk5Ozs7O047Ozs7OworMUQ3NUY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIEtBUFBBO0x1OzA7TDs8Zm9udD4gMDM5QTs7OztOOzs7OzsKKzFENzYwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBMQU1EQTtMdTswO0w7PGZvbnQ+IDAzOUI7Ozs7Tjs7Ozs7CisxRDc2MTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgTVU7THU7MDtMOzxmb250PiAwMzlDOzs7O047Ozs7OworMUQ3NjI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIE5VO0x1OzA7TDs8Zm9udD4gMDM5RDs7OztOOzs7OzsKKzFENzYzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBYSTtMdTswO0w7PGZvbnQ+IDAzOUU7Ozs7Tjs7Ozs7CisxRDc2NDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgT01JQ1JPTjtMdTswO0w7PGZvbnQ+IDAzOUY7Ozs7Tjs7Ozs7CisxRDc2NTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgUEk7THU7MDtMOzxmb250PiAwM0EwOzs7O047Ozs7OworMUQ3NjY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIFJITztMdTswO0w7PGZvbnQ+IDAzQTE7Ozs7Tjs7Ozs7CisxRDc2NztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgVEhFVEEgU1lNQk9MO0x1OzA7TDs8Zm9udD4gMDNGNDs7OztOOzs7OzsKKzFENzY4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBTSUdNQTtMdTswO0w7PGZvbnQ+IDAzQTM7Ozs7Tjs7Ozs7CisxRDc2OTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgVEFVO0x1OzA7TDs8Zm9udD4gMDNBNDs7OztOOzs7OzsKKzFENzZBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBVUFNJTE9OO0x1OzA7TDs8Zm9udD4gMDNBNTs7OztOOzs7OzsKKzFENzZCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBQSEk7THU7MDtMOzxmb250PiAwM0E2Ozs7O047Ozs7OworMUQ3NkM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIENISTtMdTswO0w7PGZvbnQ+IDAzQTc7Ozs7Tjs7Ozs7CisxRDc2RDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgUFNJO0x1OzA7TDs8Zm9udD4gMDNBODs7OztOOzs7OzsKKzFENzZFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBPTUVHQTtMdTswO0w7PGZvbnQ+IDAzQTk7Ozs7Tjs7Ozs7CisxRDc2RjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIE5BQkxBO1NtOzA7TDs8Zm9udD4gMjIwNzs7OztOOzs7OzsKKzFENzcwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgQUxQSEE7TGw7MDtMOzxmb250PiAwM0IxOzs7O047Ozs7OworMUQ3NzE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBCRVRBO0xsOzA7TDs8Zm9udD4gMDNCMjs7OztOOzs7OzsKKzFENzcyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgR0FNTUE7TGw7MDtMOzxmb250PiAwM0IzOzs7O047Ozs7OworMUQ3NzM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBERUxUQTtMbDswO0w7PGZvbnQ+IDAzQjQ7Ozs7Tjs7Ozs7CisxRDc3NDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIEVQU0lMT047TGw7MDtMOzxmb250PiAwM0I1Ozs7O047Ozs7OworMUQ3NzU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBaRVRBO0xsOzA7TDs8Zm9udD4gMDNCNjs7OztOOzs7OzsKKzFENzc2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgRVRBO0xsOzA7TDs8Zm9udD4gMDNCNzs7OztOOzs7OzsKKzFENzc3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgVEhFVEE7TGw7MDtMOzxmb250PiAwM0I4Ozs7O047Ozs7OworMUQ3Nzg7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBJT1RBO0xsOzA7TDs8Zm9udD4gMDNCOTs7OztOOzs7OzsKKzFENzc5O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgS0FQUEE7TGw7MDtMOzxmb250PiAwM0JBOzs7O047Ozs7OworMUQ3N0E7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBMQU1EQTtMbDswO0w7PGZvbnQ+IDAzQkI7Ozs7Tjs7Ozs7CisxRDc3QjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIE1VO0xsOzA7TDs8Zm9udD4gMDNCQzs7OztOOzs7OzsKKzFENzdDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgTlU7TGw7MDtMOzxmb250PiAwM0JEOzs7O047Ozs7OworMUQ3N0Q7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBYSTtMbDswO0w7PGZvbnQ+IDAzQkU7Ozs7Tjs7Ozs7CisxRDc3RTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIE9NSUNST047TGw7MDtMOzxmb250PiAwM0JGOzs7O047Ozs7OworMUQ3N0Y7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBQSTtMbDswO0w7PGZvbnQ+IDAzQzA7Ozs7Tjs7Ozs7CisxRDc4MDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIFJITztMbDswO0w7PGZvbnQ+IDAzQzE7Ozs7Tjs7Ozs7CisxRDc4MTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIEZJTkFMIFNJR01BO0xsOzA7TDs8Zm9udD4gMDNDMjs7OztOOzs7OzsKKzFENzgyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgU0lHTUE7TGw7MDtMOzxmb250PiAwM0MzOzs7O047Ozs7OworMUQ3ODM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBUQVU7TGw7MDtMOzxmb250PiAwM0M0Ozs7O047Ozs7OworMUQ3ODQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBVUFNJTE9OO0xsOzA7TDs8Zm9udD4gMDNDNTs7OztOOzs7OzsKKzFENzg1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgUEhJO0xsOzA7TDs8Zm9udD4gMDNDNjs7OztOOzs7OzsKKzFENzg2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgQ0hJO0xsOzA7TDs8Zm9udD4gMDNDNzs7OztOOzs7OzsKKzFENzg3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgUFNJO0xsOzA7TDs8Zm9udD4gMDNDODs7OztOOzs7OzsKKzFENzg4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgT01FR0E7TGw7MDtMOzxmb250PiAwM0M5Ozs7O047Ozs7OworMUQ3ODk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBQQVJUSUFMIERJRkZFUkVOVElBTDtTbTswO0w7PGZvbnQ+IDIyMDI7Ozs7Tjs7Ozs7CisxRDc4QTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIEVQU0lMT04gU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNGNTs7OztOOzs7OzsKKzFENzhCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgVEhFVEEgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNEMTs7OztOOzs7OzsKKzFENzhDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgS0FQUEEgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNGMDs7OztOOzs7OzsKKzFENzhEO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgUEhJIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRDU7Ozs7Tjs7Ozs7CisxRDc4RTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFJITyBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0YxOzs7O047Ozs7OworMUQ3OEY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBQSSBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0Q2Ozs7O047Ozs7OworMUQ3OTA7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBBTFBIQTtMdTswO0w7PGZvbnQ+IDAzOTE7Ozs7Tjs7Ozs7CisxRDc5MTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIEJFVEE7THU7MDtMOzxmb250PiAwMzkyOzs7O047Ozs7OworMUQ3OTI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBHQU1NQTtMdTswO0w7PGZvbnQ+IDAzOTM7Ozs7Tjs7Ozs7CisxRDc5MztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIERFTFRBO0x1OzA7TDs8Zm9udD4gMDM5NDs7OztOOzs7OzsKKzFENzk0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgRVBTSUxPTjtMdTswO0w7PGZvbnQ+IDAzOTU7Ozs7Tjs7Ozs7CisxRDc5NTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFpFVEE7THU7MDtMOzxmb250PiAwMzk2Ozs7O047Ozs7OworMUQ3OTY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBFVEE7THU7MDtMOzxmb250PiAwMzk3Ozs7O047Ozs7OworMUQ3OTc7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBUSEVUQTtMdTswO0w7PGZvbnQ+IDAzOTg7Ozs7Tjs7Ozs7CisxRDc5ODtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIElPVEE7THU7MDtMOzxmb250PiAwMzk5Ozs7O047Ozs7OworMUQ3OTk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBLQVBQQTtMdTswO0w7PGZvbnQ+IDAzOUE7Ozs7Tjs7Ozs7CisxRDc5QTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIExBTURBO0x1OzA7TDs8Zm9udD4gMDM5Qjs7OztOOzs7OzsKKzFENzlCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgTVU7THU7MDtMOzxmb250PiAwMzlDOzs7O047Ozs7OworMUQ3OUM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBOVTtMdTswO0w7PGZvbnQ+IDAzOUQ7Ozs7Tjs7Ozs7CisxRDc5RDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFhJO0x1OzA7TDs8Zm9udD4gMDM5RTs7OztOOzs7OzsKKzFENzlFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgT01JQ1JPTjtMdTswO0w7PGZvbnQ+IDAzOUY7Ozs7Tjs7Ozs7CisxRDc5RjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFBJO0x1OzA7TDs8Zm9udD4gMDNBMDs7OztOOzs7OzsKKzFEN0EwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgUkhPO0x1OzA7TDs8Zm9udD4gMDNBMTs7OztOOzs7OzsKKzFEN0ExO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgVEhFVEEgU1lNQk9MO0x1OzA7TDs8Zm9udD4gMDNGNDs7OztOOzs7OzsKKzFEN0EyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgU0lHTUE7THU7MDtMOzxmb250PiAwM0EzOzs7O047Ozs7OworMUQ3QTM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBUQVU7THU7MDtMOzxmb250PiAwM0E0Ozs7O047Ozs7OworMUQ3QTQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBVUFNJTE9OO0x1OzA7TDs8Zm9udD4gMDNBNTs7OztOOzs7OzsKKzFEN0E1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgUEhJO0x1OzA7TDs8Zm9udD4gMDNBNjs7OztOOzs7OzsKKzFEN0E2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgQ0hJO0x1OzA7TDs8Zm9udD4gMDNBNzs7OztOOzs7OzsKKzFEN0E3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgUFNJO0x1OzA7TDs8Zm9udD4gMDNBODs7OztOOzs7OzsKKzFEN0E4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgT01FR0E7THU7MDtMOzxmb250PiAwM0E5Ozs7O047Ozs7OworMUQ3QTk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgTkFCTEE7U207MDtMOzxmb250PiAyMjA3Ozs7O047Ozs7OworMUQ3QUE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgQUxQSEE7TGw7MDtMOzxmb250PiAwM0IxOzs7O047Ozs7OworMUQ3QUI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgQkVUQTtMbDswO0w7PGZvbnQ+IDAzQjI7Ozs7Tjs7Ozs7CisxRDdBQztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBHQU1NQTtMbDswO0w7PGZvbnQ+IDAzQjM7Ozs7Tjs7Ozs7CisxRDdBRDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBERUxUQTtMbDswO0w7PGZvbnQ+IDAzQjQ7Ozs7Tjs7Ozs7CisxRDdBRTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBFUFNJTE9OO0xsOzA7TDs8Zm9udD4gMDNCNTs7OztOOzs7OzsKKzFEN0FGO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIFpFVEE7TGw7MDtMOzxmb250PiAwM0I2Ozs7O047Ozs7OworMUQ3QjA7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgRVRBO0xsOzA7TDs8Zm9udD4gMDNCNzs7OztOOzs7OzsKKzFEN0IxO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIFRIRVRBO0xsOzA7TDs8Zm9udD4gMDNCODs7OztOOzs7OzsKKzFEN0IyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIElPVEE7TGw7MDtMOzxmb250PiAwM0I5Ozs7O047Ozs7OworMUQ3QjM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgS0FQUEE7TGw7MDtMOzxmb250PiAwM0JBOzs7O047Ozs7OworMUQ3QjQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgTEFNREE7TGw7MDtMOzxmb250PiAwM0JCOzs7O047Ozs7OworMUQ3QjU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgTVU7TGw7MDtMOzxmb250PiAwM0JDOzs7O047Ozs7OworMUQ3QjY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgTlU7TGw7MDtMOzxmb250PiAwM0JEOzs7O047Ozs7OworMUQ3Qjc7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgWEk7TGw7MDtMOzxmb250PiAwM0JFOzs7O047Ozs7OworMUQ3Qjg7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgT01JQ1JPTjtMbDswO0w7PGZvbnQ+IDAzQkY7Ozs7Tjs7Ozs7CisxRDdCOTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBQSTtMbDswO0w7PGZvbnQ+IDAzQzA7Ozs7Tjs7Ozs7CisxRDdCQTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBSSE87TGw7MDtMOzxmb250PiAwM0MxOzs7O047Ozs7OworMUQ3QkI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgRklOQUwgU0lHTUE7TGw7MDtMOzxmb250PiAwM0MyOzs7O047Ozs7OworMUQ3QkM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgU0lHTUE7TGw7MDtMOzxmb250PiAwM0MzOzs7O047Ozs7OworMUQ3QkQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgVEFVO0xsOzA7TDs8Zm9udD4gMDNDNDs7OztOOzs7OzsKKzFEN0JFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIFVQU0lMT047TGw7MDtMOzxmb250PiAwM0M1Ozs7O047Ozs7OworMUQ3QkY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgUEhJO0xsOzA7TDs8Zm9udD4gMDNDNjs7OztOOzs7OzsKKzFEN0MwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIENISTtMbDswO0w7PGZvbnQ+IDAzQzc7Ozs7Tjs7Ozs7CisxRDdDMTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBQU0k7TGw7MDtMOzxmb250PiAwM0M4Ozs7O047Ozs7OworMUQ3QzI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgT01FR0E7TGw7MDtMOzxmb250PiAwM0M5Ozs7O047Ozs7OworMUQ3QzM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgUEFSVElBTCBESUZGRVJFTlRJQUw7U207MDtMOzxmb250PiAyMjAyOzs7O047Ozs7OworMUQ3QzQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgRVBTSUxPTiBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0Y1Ozs7O047Ozs7OworMUQ3QzU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgVEhFVEEgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNEMTs7OztOOzs7OzsKKzFEN0M2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIEtBUFBBIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRjA7Ozs7Tjs7Ozs7CisxRDdDNztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBQSEkgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNENTs7OztOOzs7OzsKKzFEN0M4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFJITyBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0YxOzs7O047Ozs7OworMUQ3Qzk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgUEkgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNENjs7OztOOzs7OzsKKzFEN0NFO01BVEhFTUFUSUNBTCBCT0xEIERJR0lUIFpFUk87TmQ7MDtFTjs8Zm9udD4gMDAzMDswOzA7MDtOOzs7OzsKKzFEN0NGO01BVEhFTUFUSUNBTCBCT0xEIERJR0lUIE9ORTtOZDswO0VOOzxmb250PiAwMDMxOzE7MTsxO047Ozs7OworMUQ3RDA7TUFUSEVNQVRJQ0FMIEJPTEQgRElHSVQgVFdPO05kOzA7RU47PGZvbnQ+IDAwMzI7MjsyOzI7Tjs7Ozs7CisxRDdEMTtNQVRIRU1BVElDQUwgQk9MRCBESUdJVCBUSFJFRTtOZDswO0VOOzxmb250PiAwMDMzOzM7MzszO047Ozs7OworMUQ3RDI7TUFUSEVNQVRJQ0FMIEJPTEQgRElHSVQgRk9VUjtOZDswO0VOOzxmb250PiAwMDM0OzQ7NDs0O047Ozs7OworMUQ3RDM7TUFUSEVNQVRJQ0FMIEJPTEQgRElHSVQgRklWRTtOZDswO0VOOzxmb250PiAwMDM1OzU7NTs1O047Ozs7OworMUQ3RDQ7TUFUSEVNQVRJQ0FMIEJPTEQgRElHSVQgU0lYO05kOzA7RU47PGZvbnQ+IDAwMzY7Njs2OzY7Tjs7Ozs7CisxRDdENTtNQVRIRU1BVElDQUwgQk9MRCBESUdJVCBTRVZFTjtOZDswO0VOOzxmb250PiAwMDM3Ozc7Nzs3O047Ozs7OworMUQ3RDY7TUFUSEVNQVRJQ0FMIEJPTEQgRElHSVQgRUlHSFQ7TmQ7MDtFTjs8Zm9udD4gMDAzODs4Ozg7ODtOOzs7OzsKKzFEN0Q3O01BVEhFTUFUSUNBTCBCT0xEIERJR0lUIE5JTkU7TmQ7MDtFTjs8Zm9udD4gMDAzOTs5Ozk7OTtOOzs7OzsKKzFEN0Q4O01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIERJR0lUIFpFUk87TmQ7MDtFTjs8Zm9udD4gMDAzMDswOzA7MDtOOzs7OzsKKzFEN0Q5O01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIERJR0lUIE9ORTtOZDswO0VOOzxmb250PiAwMDMxOzE7MTsxO047Ozs7OworMUQ3REE7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgRElHSVQgVFdPO05kOzA7RU47PGZvbnQ+IDAwMzI7MjsyOzI7Tjs7Ozs7CisxRDdEQjtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBESUdJVCBUSFJFRTtOZDswO0VOOzxmb250PiAwMDMzOzM7MzszO047Ozs7OworMUQ3REM7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgRElHSVQgRk9VUjtOZDswO0VOOzxmb250PiAwMDM0OzQ7NDs0O047Ozs7OworMUQ3REQ7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgRElHSVQgRklWRTtOZDswO0VOOzxmb250PiAwMDM1OzU7NTs1O047Ozs7OworMUQ3REU7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgRElHSVQgU0lYO05kOzA7RU47PGZvbnQ+IDAwMzY7Njs2OzY7Tjs7Ozs7CisxRDdERjtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBESUdJVCBTRVZFTjtOZDswO0VOOzxmb250PiAwMDM3Ozc7Nzs3O047Ozs7OworMUQ3RTA7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgRElHSVQgRUlHSFQ7TmQ7MDtFTjs8Zm9udD4gMDAzODs4Ozg7ODtOOzs7OzsKKzFEN0UxO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIERJR0lUIE5JTkU7TmQ7MDtFTjs8Zm9udD4gMDAzOTs5Ozk7OTtOOzs7OzsKKzFEN0UyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIERJR0lUIFpFUk87TmQ7MDtFTjs8Zm9udD4gMDAzMDswOzA7MDtOOzs7OzsKKzFEN0UzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIERJR0lUIE9ORTtOZDswO0VOOzxmb250PiAwMDMxOzE7MTsxO047Ozs7OworMUQ3RTQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgRElHSVQgVFdPO05kOzA7RU47PGZvbnQ+IDAwMzI7MjsyOzI7Tjs7Ozs7CisxRDdFNTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBESUdJVCBUSFJFRTtOZDswO0VOOzxmb250PiAwMDMzOzM7MzszO047Ozs7OworMUQ3RTY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgRElHSVQgRk9VUjtOZDswO0VOOzxmb250PiAwMDM0OzQ7NDs0O047Ozs7OworMUQ3RTc7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgRElHSVQgRklWRTtOZDswO0VOOzxmb250PiAwMDM1OzU7NTs1O047Ozs7OworMUQ3RTg7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgRElHSVQgU0lYO05kOzA7RU47PGZvbnQ+IDAwMzY7Njs2OzY7Tjs7Ozs7CisxRDdFOTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBESUdJVCBTRVZFTjtOZDswO0VOOzxmb250PiAwMDM3Ozc7Nzs3O047Ozs7OworMUQ3RUE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgRElHSVQgRUlHSFQ7TmQ7MDtFTjs8Zm9udD4gMDAzODs4Ozg7ODtOOzs7OzsKKzFEN0VCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIERJR0lUIE5JTkU7TmQ7MDtFTjs8Zm9udD4gMDAzOTs5Ozk7OTtOOzs7OzsKKzFEN0VDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgRElHSVQgWkVSTztOZDswO0VOOzxmb250PiAwMDMwOzA7MDswO047Ozs7OworMUQ3RUQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBESUdJVCBPTkU7TmQ7MDtFTjs8Zm9udD4gMDAzMTsxOzE7MTtOOzs7OzsKKzFEN0VFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgRElHSVQgVFdPO05kOzA7RU47PGZvbnQ+IDAwMzI7MjsyOzI7Tjs7Ozs7CisxRDdFRjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIERJR0lUIFRIUkVFO05kOzA7RU47PGZvbnQ+IDAwMzM7MzszOzM7Tjs7Ozs7CisxRDdGMDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIERJR0lUIEZPVVI7TmQ7MDtFTjs8Zm9udD4gMDAzNDs0OzQ7NDtOOzs7OzsKKzFEN0YxO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgRElHSVQgRklWRTtOZDswO0VOOzxmb250PiAwMDM1OzU7NTs1O047Ozs7OworMUQ3RjI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBESUdJVCBTSVg7TmQ7MDtFTjs8Zm9udD4gMDAzNjs2OzY7NjtOOzs7OzsKKzFEN0YzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgRElHSVQgU0VWRU47TmQ7MDtFTjs8Zm9udD4gMDAzNzs3Ozc7NztOOzs7OzsKKzFEN0Y0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgRElHSVQgRUlHSFQ7TmQ7MDtFTjs8Zm9udD4gMDAzODs4Ozg7ODtOOzs7OzsKKzFEN0Y1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgRElHSVQgTklORTtOZDswO0VOOzxmb250PiAwMDM5Ozk7OTs5O047Ozs7OworMUQ3RjY7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBESUdJVCBaRVJPO05kOzA7RU47PGZvbnQ+IDAwMzA7MDswOzA7Tjs7Ozs7CisxRDdGNztNQVRIRU1BVElDQUwgTU9OT1NQQUNFIERJR0lUIE9ORTtOZDswO0VOOzxmb250PiAwMDMxOzE7MTsxO047Ozs7OworMUQ3Rjg7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBESUdJVCBUV087TmQ7MDtFTjs8Zm9udD4gMDAzMjsyOzI7MjtOOzs7OzsKKzFEN0Y5O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgRElHSVQgVEhSRUU7TmQ7MDtFTjs8Zm9udD4gMDAzMzszOzM7MztOOzs7OzsKKzFEN0ZBO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgRElHSVQgRk9VUjtOZDswO0VOOzxmb250PiAwMDM0OzQ7NDs0O047Ozs7OworMUQ3RkI7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBESUdJVCBGSVZFO05kOzA7RU47PGZvbnQ+IDAwMzU7NTs1OzU7Tjs7Ozs7CisxRDdGQztNQVRIRU1BVElDQUwgTU9OT1NQQUNFIERJR0lUIFNJWDtOZDswO0VOOzxmb250PiAwMDM2OzY7Njs2O047Ozs7OworMUQ3RkQ7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBESUdJVCBTRVZFTjtOZDswO0VOOzxmb250PiAwMDM3Ozc7Nzs3O047Ozs7OworMUQ3RkU7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBESUdJVCBFSUdIVDtOZDswO0VOOzxmb250PiAwMDM4Ozg7ODs4O047Ozs7OworMUQ3RkY7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBESUdJVCBOSU5FO05kOzA7RU47PGZvbnQ+IDAwMzk7OTs5Ozk7Tjs7Ozs7CisyMDAwMDs8Q0pLIElkZW9ncmFwaCBFeHRlbnNpb24gQiwgRmlyc3Q+O0xvOzA7TDs7Ozs7Tjs7Ozs7CisyQTZENjs8Q0pLIElkZW9ncmFwaCBFeHRlbnNpb24gQiwgTGFzdD47TG87MDtMOzs7OztOOzs7OzsKKzJGODAwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgwMDtMbzswO0w7NEUzRDs7OztOOzs7OzsKKzJGODAxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgwMTtMbzswO0w7NEUzODs7OztOOzs7OzsKKzJGODAyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgwMjtMbzswO0w7NEU0MTs7OztOOzs7OzsKKzJGODAzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgwMztMbzswO0w7MjAxMjI7Ozs7Tjs7Ozs7CisyRjgwNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MDQ7TG87MDtMOzRGNjA7Ozs7Tjs7Ozs7CisyRjgwNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MDU7TG87MDtMOzRGQUU7Ozs7Tjs7Ozs7CisyRjgwNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MDY7TG87MDtMOzRGQkI7Ozs7Tjs7Ozs7CisyRjgwNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MDc7TG87MDtMOzUwMDI7Ozs7Tjs7Ozs7CisyRjgwODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MDg7TG87MDtMOzUwN0E7Ozs7Tjs7Ozs7CisyRjgwOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MDk7TG87MDtMOzUwOTk7Ozs7Tjs7Ozs7CisyRjgwQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MEE7TG87MDtMOzUwRTc7Ozs7Tjs7Ozs7CisyRjgwQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MEI7TG87MDtMOzUwQ0Y7Ozs7Tjs7Ozs7CisyRjgwQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MEM7TG87MDtMOzM0OUU7Ozs7Tjs7Ozs7CisyRjgwRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MEQ7TG87MDtMOzIwNjNBOzs7O047Ozs7OworMkY4MEU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODBFO0xvOzA7TDs1MTREOzs7O047Ozs7OworMkY4MEY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODBGO0xvOzA7TDs1MTU0Ozs7O047Ozs7OworMkY4MTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODEwO0xvOzA7TDs1MTY0Ozs7O047Ozs7OworMkY4MTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODExO0xvOzA7TDs1MTc3Ozs7O047Ozs7OworMkY4MTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODEyO0xvOzA7TDsyMDUxQzs7OztOOzs7OzsKKzJGODEzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgxMztMbzswO0w7MzRCOTs7OztOOzs7OzsKKzJGODE0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgxNDtMbzswO0w7NTE2Nzs7OztOOzs7OzsKKzJGODE1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgxNTtMbzswO0w7NTE4RDs7OztOOzs7OzsKKzJGODE2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgxNjtMbzswO0w7MjA1NEI7Ozs7Tjs7Ozs7CisyRjgxNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MTc7TG87MDtMOzUxOTc7Ozs7Tjs7Ozs7CisyRjgxODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MTg7TG87MDtMOzUxQTQ7Ozs7Tjs7Ozs7CisyRjgxOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MTk7TG87MDtMOzRFQ0M7Ozs7Tjs7Ozs7CisyRjgxQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MUE7TG87MDtMOzUxQUM7Ozs7Tjs7Ozs7CisyRjgxQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MUI7TG87MDtMOzUxQjU7Ozs7Tjs7Ozs7CisyRjgxQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MUM7TG87MDtMOzI5MURGOzs7O047Ozs7OworMkY4MUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODFEO0xvOzA7TDs1MUY1Ozs7O047Ozs7OworMkY4MUU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODFFO0xvOzA7TDs1MjAzOzs7O047Ozs7OworMkY4MUY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODFGO0xvOzA7TDszNERGOzs7O047Ozs7OworMkY4MjA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODIwO0xvOzA7TDs1MjNCOzs7O047Ozs7OworMkY4MjE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODIxO0xvOzA7TDs1MjQ2Ozs7O047Ozs7OworMkY4MjI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODIyO0xvOzA7TDs1MjcyOzs7O047Ozs7OworMkY4MjM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODIzO0xvOzA7TDs1Mjc3Ozs7O047Ozs7OworMkY4MjQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODI0O0xvOzA7TDszNTE1Ozs7O047Ozs7OworMkY4MjU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODI1O0xvOzA7TDs1MkM3Ozs7O047Ozs7OworMkY4MjY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODI2O0xvOzA7TDs1MkM5Ozs7O047Ozs7OworMkY4Mjc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODI3O0xvOzA7TDs1MkU0Ozs7O047Ozs7OworMkY4Mjg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODI4O0xvOzA7TDs1MkZBOzs7O047Ozs7OworMkY4Mjk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODI5O0xvOzA7TDs1MzA1Ozs7O047Ozs7OworMkY4MkE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODJBO0xvOzA7TDs1MzA2Ozs7O047Ozs7OworMkY4MkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODJCO0xvOzA7TDs1MzE3Ozs7O047Ozs7OworMkY4MkM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODJDO0xvOzA7TDs1MzQ5Ozs7O047Ozs7OworMkY4MkQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODJEO0xvOzA7TDs1MzUxOzs7O047Ozs7OworMkY4MkU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODJFO0xvOzA7TDs1MzVBOzs7O047Ozs7OworMkY4MkY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODJGO0xvOzA7TDs1MzczOzs7O047Ozs7OworMkY4MzA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODMwO0xvOzA7TDs1MzdEOzs7O047Ozs7OworMkY4MzE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODMxO0xvOzA7TDs1MzdGOzs7O047Ozs7OworMkY4MzI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODMyO0xvOzA7TDs1MzdGOzs7O047Ozs7OworMkY4MzM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODMzO0xvOzA7TDs1MzdGOzs7O047Ozs7OworMkY4MzQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODM0O0xvOzA7TDsyMEEyQzs7OztOOzs7OzsKKzJGODM1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgzNTtMbzswO0w7NzA3MDs7OztOOzs7OzsKKzJGODM2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgzNjtMbzswO0w7NTNDQTs7OztOOzs7OzsKKzJGODM3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgzNztMbzswO0w7NTNERjs7OztOOzs7OzsKKzJGODM4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgzODtMbzswO0w7MjBCNjM7Ozs7Tjs7Ozs7CisyRjgzOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Mzk7TG87MDtMOzUzRUI7Ozs7Tjs7Ozs7CisyRjgzQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4M0E7TG87MDtMOzUzRjE7Ozs7Tjs7Ozs7CisyRjgzQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4M0I7TG87MDtMOzU0MDY7Ozs7Tjs7Ozs7CisyRjgzQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4M0M7TG87MDtMOzU0OUU7Ozs7Tjs7Ozs7CisyRjgzRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4M0Q7TG87MDtMOzU0Mzg7Ozs7Tjs7Ozs7CisyRjgzRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4M0U7TG87MDtMOzU0NDg7Ozs7Tjs7Ozs7CisyRjgzRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4M0Y7TG87MDtMOzU0Njg7Ozs7Tjs7Ozs7CisyRjg0MDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NDA7TG87MDtMOzU0QTI7Ozs7Tjs7Ozs7CisyRjg0MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NDE7TG87MDtMOzU0RjY7Ozs7Tjs7Ozs7CisyRjg0MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NDI7TG87MDtMOzU1MTA7Ozs7Tjs7Ozs7CisyRjg0MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NDM7TG87MDtMOzU1NTM7Ozs7Tjs7Ozs7CisyRjg0NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NDQ7TG87MDtMOzU1NjM7Ozs7Tjs7Ozs7CisyRjg0NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NDU7TG87MDtMOzU1ODQ7Ozs7Tjs7Ozs7CisyRjg0NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NDY7TG87MDtMOzU1ODQ7Ozs7Tjs7Ozs7CisyRjg0NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NDc7TG87MDtMOzU1OTk7Ozs7Tjs7Ozs7CisyRjg0ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NDg7TG87MDtMOzU1QUI7Ozs7Tjs7Ozs7CisyRjg0OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NDk7TG87MDtMOzU1QjM7Ozs7Tjs7Ozs7CisyRjg0QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NEE7TG87MDtMOzU1QzI7Ozs7Tjs7Ozs7CisyRjg0QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NEI7TG87MDtMOzU3MTY7Ozs7Tjs7Ozs7CisyRjg0QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NEM7TG87MDtMOzU2MDY7Ozs7Tjs7Ozs7CisyRjg0RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NEQ7TG87MDtMOzU3MTc7Ozs7Tjs7Ozs7CisyRjg0RTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NEU7TG87MDtMOzU2NTE7Ozs7Tjs7Ozs7CisyRjg0RjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NEY7TG87MDtMOzU2NzQ7Ozs7Tjs7Ozs7CisyRjg1MDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NTA7TG87MDtMOzUyMDc7Ozs7Tjs7Ozs7CisyRjg1MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NTE7TG87MDtMOzU4RUU7Ozs7Tjs7Ozs7CisyRjg1MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NTI7TG87MDtMOzU3Q0U7Ozs7Tjs7Ozs7CisyRjg1MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NTM7TG87MDtMOzU3RjQ7Ozs7Tjs7Ozs7CisyRjg1NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NTQ7TG87MDtMOzU4MEQ7Ozs7Tjs7Ozs7CisyRjg1NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NTU7TG87MDtMOzU3OEI7Ozs7Tjs7Ozs7CisyRjg1NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NTY7TG87MDtMOzU4MzI7Ozs7Tjs7Ozs7CisyRjg1NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NTc7TG87MDtMOzU4MzE7Ozs7Tjs7Ozs7CisyRjg1ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NTg7TG87MDtMOzU4QUM7Ozs7Tjs7Ozs7CisyRjg1OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NTk7TG87MDtMOzIxNEU0Ozs7O047Ozs7OworMkY4NUE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODVBO0xvOzA7TDs1OEYyOzs7O047Ozs7OworMkY4NUI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODVCO0xvOzA7TDs1OEY3Ozs7O047Ozs7OworMkY4NUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODVDO0xvOzA7TDs1OTA2Ozs7O047Ozs7OworMkY4NUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODVEO0xvOzA7TDs1OTFBOzs7O047Ozs7OworMkY4NUU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODVFO0xvOzA7TDs1OTIyOzs7O047Ozs7OworMkY4NUY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODVGO0xvOzA7TDs1OTYyOzs7O047Ozs7OworMkY4NjA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODYwO0xvOzA7TDsyMTZBODs7OztOOzs7OzsKKzJGODYxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg2MTtMbzswO0w7MjE2RUE7Ozs7Tjs7Ozs7CisyRjg2MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NjI7TG87MDtMOzU5RUM7Ozs7Tjs7Ozs7CisyRjg2MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NjM7TG87MDtMOzVBMUI7Ozs7Tjs7Ozs7CisyRjg2NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NjQ7TG87MDtMOzVBMjc7Ozs7Tjs7Ozs7CisyRjg2NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NjU7TG87MDtMOzU5RDg7Ozs7Tjs7Ozs7CisyRjg2NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NjY7TG87MDtMOzVBNjY7Ozs7Tjs7Ozs7CisyRjg2NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Njc7TG87MDtMOzM2RUU7Ozs7Tjs7Ozs7CisyRjg2ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Njg7TG87MDtMOzIxMzZBOzs7O047Ozs7OworMkY4Njk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODY5O0xvOzA7TDs1QjA4Ozs7O047Ozs7OworMkY4NkE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODZBO0xvOzA7TDs1QjNFOzs7O047Ozs7OworMkY4NkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODZCO0xvOzA7TDs1QjNFOzs7O047Ozs7OworMkY4NkM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODZDO0xvOzA7TDsyMTlDODs7OztOOzs7OzsKKzJGODZEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg2RDtMbzswO0w7NUJDMzs7OztOOzs7OzsKKzJGODZFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg2RTtMbzswO0w7NUJEODs7OztOOzs7OzsKKzJGODZGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg2RjtMbzswO0w7NUJFNzs7OztOOzs7OzsKKzJGODcwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg3MDtMbzswO0w7NUJGMzs7OztOOzs7OzsKKzJGODcxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg3MTtMbzswO0w7MjFCMTg7Ozs7Tjs7Ozs7CisyRjg3MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NzI7TG87MDtMOzVCRkY7Ozs7Tjs7Ozs7CisyRjg3MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NzM7TG87MDtMOzVDMDY7Ozs7Tjs7Ozs7CisyRjg3NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NzQ7TG87MDtMOzVGMzM7Ozs7Tjs7Ozs7CisyRjg3NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NzU7TG87MDtMOzVDMjI7Ozs7Tjs7Ozs7CisyRjg3NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NzY7TG87MDtMOzM3ODE7Ozs7Tjs7Ozs7CisyRjg3NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Nzc7TG87MDtMOzVDNjA7Ozs7Tjs7Ozs7CisyRjg3ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Nzg7TG87MDtMOzVDNkU7Ozs7Tjs7Ozs7CisyRjg3OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Nzk7TG87MDtMOzVDQzA7Ozs7Tjs7Ozs7CisyRjg3QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4N0E7TG87MDtMOzVDOEQ7Ozs7Tjs7Ozs7CisyRjg3QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4N0I7TG87MDtMOzIxREU0Ozs7O047Ozs7OworMkY4N0M7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODdDO0xvOzA7TDs1RDQzOzs7O047Ozs7OworMkY4N0Q7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODdEO0xvOzA7TDsyMURFNjs7OztOOzs7OzsKKzJGODdFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg3RTtMbzswO0w7NUQ2RTs7OztOOzs7OzsKKzJGODdGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg3RjtMbzswO0w7NUQ2Qjs7OztOOzs7OzsKKzJGODgwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4MDtMbzswO0w7NUQ3Qzs7OztOOzs7OzsKKzJGODgxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4MTtMbzswO0w7NURFMTs7OztOOzs7OzsKKzJGODgyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4MjtMbzswO0w7NURFMjs7OztOOzs7OzsKKzJGODgzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4MztMbzswO0w7MzgyRjs7OztOOzs7OzsKKzJGODg0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4NDtMbzswO0w7NURGRDs7OztOOzs7OzsKKzJGODg1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4NTtMbzswO0w7NUUyODs7OztOOzs7OzsKKzJGODg2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4NjtMbzswO0w7NUUzRDs7OztOOzs7OzsKKzJGODg3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4NztMbzswO0w7NUU2OTs7OztOOzs7OzsKKzJGODg4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4ODtMbzswO0w7Mzg2Mjs7OztOOzs7OzsKKzJGODg5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4OTtMbzswO0w7MjIxODM7Ozs7Tjs7Ozs7CisyRjg4QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OEE7TG87MDtMOzM4N0M7Ozs7Tjs7Ozs7CisyRjg4QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OEI7TG87MDtMOzVFQjA7Ozs7Tjs7Ozs7CisyRjg4QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OEM7TG87MDtMOzVFQjM7Ozs7Tjs7Ozs7CisyRjg4RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OEQ7TG87MDtMOzVFQjY7Ozs7Tjs7Ozs7CisyRjg4RTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OEU7TG87MDtMOzVFQ0E7Ozs7Tjs7Ozs7CisyRjg4RjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OEY7TG87MDtMOzJBMzkyOzs7O047Ozs7OworMkY4OTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODkwO0xvOzA7TDs1RUZFOzs7O047Ozs7OworMkY4OTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODkxO0xvOzA7TDsyMjMzMTs7OztOOzs7OzsKKzJGODkyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5MjtMbzswO0w7MjIzMzE7Ozs7Tjs7Ozs7CisyRjg5MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OTM7TG87MDtMOzgyMDE7Ozs7Tjs7Ozs7CisyRjg5NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OTQ7TG87MDtMOzVGMjI7Ozs7Tjs7Ozs7CisyRjg5NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OTU7TG87MDtMOzVGMjI7Ozs7Tjs7Ozs7CisyRjg5NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OTY7TG87MDtMOzM4Qzc7Ozs7Tjs7Ozs7CisyRjg5NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OTc7TG87MDtMOzIzMkI4Ozs7O047Ozs7OworMkY4OTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODk4O0xvOzA7TDsyNjFEQTs7OztOOzs7OzsKKzJGODk5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5OTtMbzswO0w7NUY2Mjs7OztOOzs7OzsKKzJGODlBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5QTtMbzswO0w7NUY2Qjs7OztOOzs7OzsKKzJGODlCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5QjtMbzswO0w7MzhFMzs7OztOOzs7OzsKKzJGODlDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5QztMbzswO0w7NUY5QTs7OztOOzs7OzsKKzJGODlEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5RDtMbzswO0w7NUZDRDs7OztOOzs7OzsKKzJGODlFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5RTtMbzswO0w7NUZENzs7OztOOzs7OzsKKzJGODlGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5RjtMbzswO0w7NUZGOTs7OztOOzs7OzsKKzJGOEEwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhBMDtMbzswO0w7NjA4MTs7OztOOzs7OzsKKzJGOEExO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhBMTtMbzswO0w7MzkzQTs7OztOOzs7OzsKKzJGOEEyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhBMjtMbzswO0w7MzkxQzs7OztOOzs7OzsKKzJGOEEzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhBMztMbzswO0w7NjA5NDs7OztOOzs7OzsKKzJGOEE0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhBNDtMbzswO0w7MjI2RDQ7Ozs7Tjs7Ozs7CisyRjhBNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QTU7TG87MDtMOzYwQzc7Ozs7Tjs7Ozs7CisyRjhBNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QTY7TG87MDtMOzYxNDg7Ozs7Tjs7Ozs7CisyRjhBNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QTc7TG87MDtMOzYxNEM7Ozs7Tjs7Ozs7CisyRjhBODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QTg7TG87MDtMOzYxNEU7Ozs7Tjs7Ozs7CisyRjhBOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QTk7TG87MDtMOzYxNEM7Ozs7Tjs7Ozs7CisyRjhBQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QUE7TG87MDtMOzYxN0E7Ozs7Tjs7Ozs7CisyRjhBQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QUI7TG87MDtMOzYxOEU7Ozs7Tjs7Ozs7CisyRjhBQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QUM7TG87MDtMOzYxQjI7Ozs7Tjs7Ozs7CisyRjhBRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QUQ7TG87MDtMOzYxQTQ7Ozs7Tjs7Ozs7CisyRjhBRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QUU7TG87MDtMOzYxQUY7Ozs7Tjs7Ozs7CisyRjhBRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QUY7TG87MDtMOzYxREU7Ozs7Tjs7Ozs7CisyRjhCMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QjA7TG87MDtMOzYxRjI7Ozs7Tjs7Ozs7CisyRjhCMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QjE7TG87MDtMOzYxRjY7Ozs7Tjs7Ozs7CisyRjhCMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QjI7TG87MDtMOzYyMTA7Ozs7Tjs7Ozs7CisyRjhCMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QjM7TG87MDtMOzYyMUI7Ozs7Tjs7Ozs7CisyRjhCNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QjQ7TG87MDtMOzYyNUQ7Ozs7Tjs7Ozs7CisyRjhCNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QjU7TG87MDtMOzYyQjE7Ozs7Tjs7Ozs7CisyRjhCNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QjY7TG87MDtMOzYyRDQ7Ozs7Tjs7Ozs7CisyRjhCNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Qjc7TG87MDtMOzYzNTA7Ozs7Tjs7Ozs7CisyRjhCODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Qjg7TG87MDtMOzIyQjBDOzs7O047Ozs7OworMkY4Qjk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEI5O0xvOzA7TDs2MzNEOzs7O047Ozs7OworMkY4QkE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEJBO0xvOzA7TDs2MkZDOzs7O047Ozs7OworMkY4QkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEJCO0xvOzA7TDs2MzY4Ozs7O047Ozs7OworMkY4QkM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEJDO0xvOzA7TDs2MzgzOzs7O047Ozs7OworMkY4QkQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEJEO0xvOzA7TDs2M0U0Ozs7O047Ozs7OworMkY4QkU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEJFO0xvOzA7TDsyMkJGMTs7OztOOzs7OzsKKzJGOEJGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhCRjtMbzswO0w7NjQyMjs7OztOOzs7OzsKKzJGOEMwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDMDtMbzswO0w7NjNDNTs7OztOOzs7OzsKKzJGOEMxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDMTtMbzswO0w7NjNBOTs7OztOOzs7OzsKKzJGOEMyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDMjtMbzswO0w7M0EyRTs7OztOOzs7OzsKKzJGOEMzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDMztMbzswO0w7NjQ2OTs7OztOOzs7OzsKKzJGOEM0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDNDtMbzswO0w7NjQ3RTs7OztOOzs7OzsKKzJGOEM1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDNTtMbzswO0w7NjQ5RDs7OztOOzs7OzsKKzJGOEM2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDNjtMbzswO0w7NjQ3Nzs7OztOOzs7OzsKKzJGOEM3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDNztMbzswO0w7M0E2Qzs7OztOOzs7OzsKKzJGOEM4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDODtMbzswO0w7NjU0Rjs7OztOOzs7OzsKKzJGOEM5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDOTtMbzswO0w7NjU2Qzs7OztOOzs7OzsKKzJGOENBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDQTtMbzswO0w7MjMwMEE7Ozs7Tjs7Ozs7CisyRjhDQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Q0I7TG87MDtMOzY1RTM7Ozs7Tjs7Ozs7CisyRjhDQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Q0M7TG87MDtMOzY2Rjg7Ozs7Tjs7Ozs7CisyRjhDRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Q0Q7TG87MDtMOzY2NDk7Ozs7Tjs7Ozs7CisyRjhDRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Q0U7TG87MDtMOzNCMTk7Ozs7Tjs7Ozs7CisyRjhDRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Q0Y7TG87MDtMOzY2OTE7Ozs7Tjs7Ozs7CisyRjhEMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDA7TG87MDtMOzNCMDg7Ozs7Tjs7Ozs7CisyRjhEMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDE7TG87MDtMOzNBRTQ7Ozs7Tjs7Ozs7CisyRjhEMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDI7TG87MDtMOzUxOTI7Ozs7Tjs7Ozs7CisyRjhEMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDM7TG87MDtMOzUxOTU7Ozs7Tjs7Ozs7CisyRjhENDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDQ7TG87MDtMOzY3MDA7Ozs7Tjs7Ozs7CisyRjhENTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDU7TG87MDtMOzY2OUM7Ozs7Tjs7Ozs7CisyRjhENjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDY7TG87MDtMOzgwQUQ7Ozs7Tjs7Ozs7CisyRjhENztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDc7TG87MDtMOzQzRDk7Ozs7Tjs7Ozs7CisyRjhEODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDg7TG87MDtMOzY3MTc7Ozs7Tjs7Ozs7CisyRjhEOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDk7TG87MDtMOzY3MUI7Ozs7Tjs7Ozs7CisyRjhEQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4REE7TG87MDtMOzY3MjE7Ozs7Tjs7Ozs7CisyRjhEQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4REI7TG87MDtMOzY3NUU7Ozs7Tjs7Ozs7CisyRjhEQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4REM7TG87MDtMOzY3NTM7Ozs7Tjs7Ozs7CisyRjhERDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4REQ7TG87MDtMOzIzM0MzOzs7O047Ozs7OworMkY4REU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOERFO0xvOzA7TDszQjQ5Ozs7O047Ozs7OworMkY4REY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOERGO0xvOzA7TDs2N0ZBOzs7O047Ozs7OworMkY4RTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEUwO0xvOzA7TDs2Nzg1Ozs7O047Ozs7OworMkY4RTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEUxO0xvOzA7TDs2ODUyOzs7O047Ozs7OworMkY4RTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEUyO0xvOzA7TDs2ODg1Ozs7O047Ozs7OworMkY4RTM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEUzO0xvOzA7TDsyMzQ2RDs7OztOOzs7OzsKKzJGOEU0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFNDtMbzswO0w7Njg4RTs7OztOOzs7OzsKKzJGOEU1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFNTtMbzswO0w7NjgxRjs7OztOOzs7OzsKKzJGOEU2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFNjtMbzswO0w7NjkxNDs7OztOOzs7OzsKKzJGOEU3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFNztMbzswO0w7M0I5RDs7OztOOzs7OzsKKzJGOEU4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFODtMbzswO0w7Njk0Mjs7OztOOzs7OzsKKzJGOEU5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFOTtMbzswO0w7NjlBMzs7OztOOzs7OzsKKzJGOEVBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFQTtMbzswO0w7NjlFQTs7OztOOzs7OzsKKzJGOEVCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFQjtMbzswO0w7NkFBODs7OztOOzs7OzsKKzJGOEVDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFQztMbzswO0w7MjM2QTM7Ozs7Tjs7Ozs7CisyRjhFRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RUQ7TG87MDtMOzZBREI7Ozs7Tjs7Ozs7CisyRjhFRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RUU7TG87MDtMOzNDMTg7Ozs7Tjs7Ozs7CisyRjhFRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RUY7TG87MDtMOzZCMjE7Ozs7Tjs7Ozs7CisyRjhGMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RjA7TG87MDtMOzIzOEE3Ozs7O047Ozs7OworMkY4RjE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEYxO0xvOzA7TDs2QjU0Ozs7O047Ozs7OworMkY4RjI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEYyO0xvOzA7TDszQzRFOzs7O047Ozs7OworMkY4RjM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEYzO0xvOzA7TDs2QjcyOzs7O047Ozs7OworMkY4RjQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEY0O0xvOzA7TDs2QjlGOzs7O047Ozs7OworMkY4RjU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEY1O0xvOzA7TDs2QkJBOzs7O047Ozs7OworMkY4RjY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEY2O0xvOzA7TDs2QkJCOzs7O047Ozs7OworMkY4Rjc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEY3O0xvOzA7TDsyM0E4RDs7OztOOzs7OzsKKzJGOEY4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhGODtMbzswO0w7MjFEMEI7Ozs7Tjs7Ozs7CisyRjhGOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Rjk7TG87MDtMOzIzQUZBOzs7O047Ozs7OworMkY4RkE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEZBO0xvOzA7TDs2QzRFOzs7O047Ozs7OworMkY4RkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEZCO0xvOzA7TDsyM0NCQzs7OztOOzs7OzsKKzJGOEZDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhGQztMbzswO0w7NkNCRjs7OztOOzs7OzsKKzJGOEZEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhGRDtMbzswO0w7NkNDRDs7OztOOzs7OzsKKzJGOEZFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhGRTtMbzswO0w7NkM2Nzs7OztOOzs7OzsKKzJGOEZGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhGRjtMbzswO0w7NkQxNjs7OztOOzs7OzsKKzJGOTAwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkwMDtMbzswO0w7NkQzRTs7OztOOzs7OzsKKzJGOTAxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkwMTtMbzswO0w7NkQ3Nzs7OztOOzs7OzsKKzJGOTAyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkwMjtMbzswO0w7NkQ0MTs7OztOOzs7OzsKKzJGOTAzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkwMztMbzswO0w7NkQ2OTs7OztOOzs7OzsKKzJGOTA0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkwNDtMbzswO0w7NkQ3ODs7OztOOzs7OzsKKzJGOTA1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkwNTtMbzswO0w7NkQ4NTs7OztOOzs7OzsKKzJGOTA2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkwNjtMbzswO0w7MjNEMUU7Ozs7Tjs7Ozs7CisyRjkwNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MDc7TG87MDtMOzZEMzQ7Ozs7Tjs7Ozs7CisyRjkwODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MDg7TG87MDtMOzZFMkY7Ozs7Tjs7Ozs7CisyRjkwOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MDk7TG87MDtMOzZFNkU7Ozs7Tjs7Ozs7CisyRjkwQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MEE7TG87MDtMOzNEMzM7Ozs7Tjs7Ozs7CisyRjkwQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MEI7TG87MDtMOzZFQ0I7Ozs7Tjs7Ozs7CisyRjkwQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MEM7TG87MDtMOzZFQzc7Ozs7Tjs7Ozs7CisyRjkwRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MEQ7TG87MDtMOzIzRUQxOzs7O047Ozs7OworMkY5MEU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTBFO0xvOzA7TDs2REY5Ozs7O047Ozs7OworMkY5MEY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTBGO0xvOzA7TDs2RjZFOzs7O047Ozs7OworMkY5MTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTEwO0xvOzA7TDsyM0Y1RTs7OztOOzs7OzsKKzJGOTExO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkxMTtMbzswO0w7MjNGOEU7Ozs7Tjs7Ozs7CisyRjkxMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MTI7TG87MDtMOzZGQzY7Ozs7Tjs7Ozs7CisyRjkxMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MTM7TG87MDtMOzcwMzk7Ozs7Tjs7Ozs7CisyRjkxNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MTQ7TG87MDtMOzcwMUU7Ozs7Tjs7Ozs7CisyRjkxNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MTU7TG87MDtMOzcwMUI7Ozs7Tjs7Ozs7CisyRjkxNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MTY7TG87MDtMOzNEOTY7Ozs7Tjs7Ozs7CisyRjkxNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MTc7TG87MDtMOzcwNEE7Ozs7Tjs7Ozs7CisyRjkxODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MTg7TG87MDtMOzcwN0Q7Ozs7Tjs7Ozs7CisyRjkxOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MTk7TG87MDtMOzcwNzc7Ozs7Tjs7Ozs7CisyRjkxQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MUE7TG87MDtMOzcwQUQ7Ozs7Tjs7Ozs7CisyRjkxQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MUI7TG87MDtMOzIwNTI1Ozs7O047Ozs7OworMkY5MUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTFDO0xvOzA7TDs3MTQ1Ozs7O047Ozs7OworMkY5MUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTFEO0xvOzA7TDsyNDI2Mzs7OztOOzs7OzsKKzJGOTFFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkxRTtMbzswO0w7NzE5Qzs7OztOOzs7OzsKKzJGOTFGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkxRjtMbzswO0w7NDNBQjs7OztOOzs7OzsKKzJGOTIwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyMDtMbzswO0w7NzIyODs7OztOOzs7OzsKKzJGOTIxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyMTtMbzswO0w7NzIzNTs7OztOOzs7OzsKKzJGOTIyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyMjtMbzswO0w7NzI1MDs7OztOOzs7OzsKKzJGOTIzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyMztMbzswO0w7MjQ2MDg7Ozs7Tjs7Ozs7CisyRjkyNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MjQ7TG87MDtMOzcyODA7Ozs7Tjs7Ozs7CisyRjkyNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MjU7TG87MDtMOzcyOTU7Ozs7Tjs7Ozs7CisyRjkyNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MjY7TG87MDtMOzI0NzM1Ozs7O047Ozs7OworMkY5Mjc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTI3O0xvOzA7TDsyNDgxNDs7OztOOzs7OzsKKzJGOTI4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyODtMbzswO0w7NzM3QTs7OztOOzs7OzsKKzJGOTI5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyOTtMbzswO0w7NzM4Qjs7OztOOzs7OzsKKzJGOTJBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyQTtMbzswO0w7M0VBQzs7OztOOzs7OzsKKzJGOTJCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyQjtMbzswO0w7NzNBNTs7OztOOzs7OzsKKzJGOTJDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyQztMbzswO0w7M0VCODs7OztOOzs7OzsKKzJGOTJEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyRDtMbzswO0w7M0VCODs7OztOOzs7OzsKKzJGOTJFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyRTtMbzswO0w7NzQ0Nzs7OztOOzs7OzsKKzJGOTJGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyRjtMbzswO0w7NzQ1Qzs7OztOOzs7OzsKKzJGOTMwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkzMDtMbzswO0w7NzQ3MTs7OztOOzs7OzsKKzJGOTMxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkzMTtMbzswO0w7NzQ4NTs7OztOOzs7OzsKKzJGOTMyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkzMjtMbzswO0w7NzRDQTs7OztOOzs7OzsKKzJGOTMzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkzMztMbzswO0w7M0YxQjs7OztOOzs7OzsKKzJGOTM0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkzNDtMbzswO0w7NzUyNDs7OztOOzs7OzsKKzJGOTM1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkzNTtMbzswO0w7MjRDMzY7Ozs7Tjs7Ozs7CisyRjkzNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MzY7TG87MDtMOzc1M0U7Ozs7Tjs7Ozs7CisyRjkzNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Mzc7TG87MDtMOzI0QzkyOzs7O047Ozs7OworMkY5Mzg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTM4O0xvOzA7TDs3NTcwOzs7O047Ozs7OworMkY5Mzk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTM5O0xvOzA7TDsyMjE5Rjs7OztOOzs7OzsKKzJGOTNBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkzQTtMbzswO0w7NzYxMDs7OztOOzs7OzsKKzJGOTNCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkzQjtMbzswO0w7MjRGQTE7Ozs7Tjs7Ozs7CisyRjkzQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5M0M7TG87MDtMOzI0RkI4Ozs7O047Ozs7OworMkY5M0Q7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTNEO0xvOzA7TDsyNTA0NDs7OztOOzs7OzsKKzJGOTNFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkzRTtMbzswO0w7M0ZGQzs7OztOOzs7OzsKKzJGOTNGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkzRjtMbzswO0w7NDAwODs7OztOOzs7OzsKKzJGOTQwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk0MDtMbzswO0w7NzZGNDs7OztOOzs7OzsKKzJGOTQxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk0MTtMbzswO0w7MjUwRjM7Ozs7Tjs7Ozs7CisyRjk0MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NDI7TG87MDtMOzI1MEYyOzs7O047Ozs7OworMkY5NDM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTQzO0xvOzA7TDsyNTExOTs7OztOOzs7OzsKKzJGOTQ0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk0NDtMbzswO0w7MjUxMzM7Ozs7Tjs7Ozs7CisyRjk0NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NDU7TG87MDtMOzc3MUU7Ozs7Tjs7Ozs7CisyRjk0NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NDY7TG87MDtMOzc3MUY7Ozs7Tjs7Ozs7CisyRjk0NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NDc7TG87MDtMOzc3MUY7Ozs7Tjs7Ozs7CisyRjk0ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NDg7TG87MDtMOzc3NEE7Ozs7Tjs7Ozs7CisyRjk0OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NDk7TG87MDtMOzQwMzk7Ozs7Tjs7Ozs7CisyRjk0QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NEE7TG87MDtMOzc3OEI7Ozs7Tjs7Ozs7CisyRjk0QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NEI7TG87MDtMOzQwNDY7Ozs7Tjs7Ozs7CisyRjk0QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NEM7TG87MDtMOzQwOTY7Ozs7Tjs7Ozs7CisyRjk0RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NEQ7TG87MDtMOzI1NDFEOzs7O047Ozs7OworMkY5NEU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTRFO0xvOzA7TDs3ODRFOzs7O047Ozs7OworMkY5NEY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTRGO0xvOzA7TDs3ODhDOzs7O047Ozs7OworMkY5NTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTUwO0xvOzA7TDs3OENDOzs7O047Ozs7OworMkY5NTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTUxO0xvOzA7TDs0MEUzOzs7O047Ozs7OworMkY5NTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTUyO0xvOzA7TDsyNTYyNjs7OztOOzs7OzsKKzJGOTUzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk1MztMbzswO0w7Nzk1Njs7OztOOzs7OzsKKzJGOTU0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk1NDtMbzswO0w7MjU2OUE7Ozs7Tjs7Ozs7CisyRjk1NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NTU7TG87MDtMOzI1NkM1Ozs7O047Ozs7OworMkY5NTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTU2O0xvOzA7TDs3OThGOzs7O047Ozs7OworMkY5NTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTU3O0xvOzA7TDs3OUVCOzs7O047Ozs7OworMkY5NTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTU4O0xvOzA7TDs0MTJGOzs7O047Ozs7OworMkY5NTk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTU5O0xvOzA7TDs3QTQwOzs7O047Ozs7OworMkY5NUE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTVBO0xvOzA7TDs3QTRBOzs7O047Ozs7OworMkY5NUI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTVCO0xvOzA7TDs3QTRGOzs7O047Ozs7OworMkY5NUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTVDO0xvOzA7TDsyNTk3Qzs7OztOOzs7OzsKKzJGOTVEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk1RDtMbzswO0w7MjVBQTc7Ozs7Tjs7Ozs7CisyRjk1RTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NUU7TG87MDtMOzI1QUE3Ozs7O047Ozs7OworMkY5NUY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTVGO0xvOzA7TDs3QUFFOzs7O047Ozs7OworMkY5NjA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTYwO0xvOzA7TDs0MjAyOzs7O047Ozs7OworMkY5NjE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTYxO0xvOzA7TDsyNUJBQjs7OztOOzs7OzsKKzJGOTYyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk2MjtMbzswO0w7N0JDNjs7OztOOzs7OzsKKzJGOTYzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk2MztMbzswO0w7N0JDOTs7OztOOzs7OzsKKzJGOTY0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk2NDtMbzswO0w7NDIyNzs7OztOOzs7OzsKKzJGOTY1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk2NTtMbzswO0w7MjVDODA7Ozs7Tjs7Ozs7CisyRjk2NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NjY7TG87MDtMOzdDRDI7Ozs7Tjs7Ozs7CisyRjk2NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Njc7TG87MDtMOzQyQTA7Ozs7Tjs7Ozs7CisyRjk2ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Njg7TG87MDtMOzdDRTg7Ozs7Tjs7Ozs7CisyRjk2OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Njk7TG87MDtMOzdDRTM7Ozs7Tjs7Ozs7CisyRjk2QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NkE7TG87MDtMOzdEMDA7Ozs7Tjs7Ozs7CisyRjk2QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NkI7TG87MDtMOzI1Rjg2Ozs7O047Ozs7OworMkY5NkM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTZDO0xvOzA7TDs3RDYzOzs7O047Ozs7OworMkY5NkQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTZEO0xvOzA7TDs0MzAxOzs7O047Ozs7OworMkY5NkU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTZFO0xvOzA7TDs3REM3Ozs7O047Ozs7OworMkY5NkY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTZGO0xvOzA7TDs3RTAyOzs7O047Ozs7OworMkY5NzA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTcwO0xvOzA7TDs3RTQ1Ozs7O047Ozs7OworMkY5NzE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTcxO0xvOzA7TDs0MzM0Ozs7O047Ozs7OworMkY5NzI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTcyO0xvOzA7TDsyNjIyODs7OztOOzs7OzsKKzJGOTczO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk3MztMbzswO0w7MjYyNDc7Ozs7Tjs7Ozs7CisyRjk3NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NzQ7TG87MDtMOzQzNTk7Ozs7Tjs7Ozs7CisyRjk3NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NzU7TG87MDtMOzI2MkQ5Ozs7O047Ozs7OworMkY5NzY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTc2O0xvOzA7TDs3RjdBOzs7O047Ozs7OworMkY5Nzc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTc3O0xvOzA7TDsyNjMzRTs7OztOOzs7OzsKKzJGOTc4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk3ODtMbzswO0w7N0Y5NTs7OztOOzs7OzsKKzJGOTc5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk3OTtMbzswO0w7N0ZGQTs7OztOOzs7OzsKKzJGOTdBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk3QTtMbzswO0w7ODAwNTs7OztOOzs7OzsKKzJGOTdCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk3QjtMbzswO0w7MjY0REE7Ozs7Tjs7Ozs7CisyRjk3QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5N0M7TG87MDtMOzI2NTIzOzs7O047Ozs7OworMkY5N0Q7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTdEO0xvOzA7TDs4MDYwOzs7O047Ozs7OworMkY5N0U7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTdFO0xvOzA7TDsyNjVBODs7OztOOzs7OzsKKzJGOTdGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk3RjtMbzswO0w7ODA3MDs7OztOOzs7OzsKKzJGOTgwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk4MDtMbzswO0w7MjMzNUY7Ozs7Tjs7Ozs7CisyRjk4MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5ODE7TG87MDtMOzQzRDU7Ozs7Tjs7Ozs7CisyRjk4MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5ODI7TG87MDtMOzgwQjI7Ozs7Tjs7Ozs7CisyRjk4MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5ODM7TG87MDtMOzgxMDM7Ozs7Tjs7Ozs7CisyRjk4NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5ODQ7TG87MDtMOzQ0MEI7Ozs7Tjs7Ozs7CisyRjk4NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5ODU7TG87MDtMOzgxM0U7Ozs7Tjs7Ozs7CisyRjk4NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5ODY7TG87MDtMOzVBQjU7Ozs7Tjs7Ozs7CisyRjk4NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5ODc7TG87MDtMOzI2N0E3Ozs7O047Ozs7OworMkY5ODg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTg4O0xvOzA7TDsyNjdCNTs7OztOOzs7OzsKKzJGOTg5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk4OTtMbzswO0w7MjMzOTM7Ozs7Tjs7Ozs7CisyRjk4QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5OEE7TG87MDtMOzIzMzlDOzs7O047Ozs7OworMkY5OEI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOThCO0xvOzA7TDs4MjAxOzs7O047Ozs7OworMkY5OEM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOThDO0xvOzA7TDs4MjA0Ozs7O047Ozs7OworMkY5OEQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOThEO0xvOzA7TDs4RjlFOzs7O047Ozs7OworMkY5OEU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOThFO0xvOzA7TDs0NDZCOzs7O047Ozs7OworMkY5OEY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOThGO0xvOzA7TDs4MjkxOzs7O047Ozs7OworMkY5OTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTkwO0xvOzA7TDs4MjhCOzs7O047Ozs7OworMkY5OTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTkxO0xvOzA7TDs4MjlEOzs7O047Ozs7OworMkY5OTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTkyO0xvOzA7TDs1MkIzOzs7O047Ozs7OworMkY5OTM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTkzO0xvOzA7TDs4MkIxOzs7O047Ozs7OworMkY5OTQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTk0O0xvOzA7TDs4MkIzOzs7O047Ozs7OworMkY5OTU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTk1O0xvOzA7TDs4MkJEOzs7O047Ozs7OworMkY5OTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTk2O0xvOzA7TDs4MkU2Ozs7O047Ozs7OworMkY5OTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTk3O0xvOzA7TDsyNkIzQzs7OztOOzs7OzsKKzJGOTk4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5ODtMbzswO0w7ODJFNTs7OztOOzs7OzsKKzJGOTk5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5OTtMbzswO0w7ODMxRDs7OztOOzs7OzsKKzJGOTlBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5QTtMbzswO0w7ODM2Mzs7OztOOzs7OzsKKzJGOTlCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5QjtMbzswO0w7ODNBRDs7OztOOzs7OzsKKzJGOTlDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5QztMbzswO0w7ODMyMzs7OztOOzs7OzsKKzJGOTlEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5RDtMbzswO0w7ODNCRDs7OztOOzs7OzsKKzJGOTlFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5RTtMbzswO0w7ODNFNzs7OztOOzs7OzsKKzJGOTlGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5RjtMbzswO0w7ODQ1Nzs7OztOOzs7OzsKKzJGOUEwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlBMDtMbzswO0w7ODM1Mzs7OztOOzs7OzsKKzJGOUExO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlBMTtMbzswO0w7ODNDQTs7OztOOzs7OzsKKzJGOUEyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlBMjtMbzswO0w7ODNDQzs7OztOOzs7OzsKKzJGOUEzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlBMztMbzswO0w7ODNEQzs7OztOOzs7OzsKKzJGOUE0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlBNDtMbzswO0w7MjZDMzY7Ozs7Tjs7Ozs7CisyRjlBNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QTU7TG87MDtMOzI2RDZCOzs7O047Ozs7OworMkY5QTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUE2O0xvOzA7TDsyNkNENTs7OztOOzs7OzsKKzJGOUE3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlBNztMbzswO0w7NDUyQjs7OztOOzs7OzsKKzJGOUE4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlBODtMbzswO0w7ODRGMTs7OztOOzs7OzsKKzJGOUE5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlBOTtMbzswO0w7ODRGMzs7OztOOzs7OzsKKzJGOUFBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlBQTtMbzswO0w7ODUxNjs7OztOOzs7OzsKKzJGOUFCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlBQjtMbzswO0w7MjczQ0E7Ozs7Tjs7Ozs7CisyRjlBQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QUM7TG87MDtMOzg1NjQ7Ozs7Tjs7Ozs7CisyRjlBRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QUQ7TG87MDtMOzI2RjJDOzs7O047Ozs7OworMkY5QUU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUFFO0xvOzA7TDs0NTVEOzs7O047Ozs7OworMkY5QUY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUFGO0xvOzA7TDs0NTYxOzs7O047Ozs7OworMkY5QjA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUIwO0xvOzA7TDsyNkZCMTs7OztOOzs7OzsKKzJGOUIxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlCMTtMbzswO0w7MjcwRDI7Ozs7Tjs7Ozs7CisyRjlCMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QjI7TG87MDtMOzQ1NkI7Ozs7Tjs7Ozs7CisyRjlCMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QjM7TG87MDtMOzg2NTA7Ozs7Tjs7Ozs7CisyRjlCNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QjQ7TG87MDtMOzg2NUM7Ozs7Tjs7Ozs7CisyRjlCNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QjU7TG87MDtMOzg2Njc7Ozs7Tjs7Ozs7CisyRjlCNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QjY7TG87MDtMOzg2Njk7Ozs7Tjs7Ozs7CisyRjlCNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Qjc7TG87MDtMOzg2QTk7Ozs7Tjs7Ozs7CisyRjlCODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Qjg7TG87MDtMOzg2ODg7Ozs7Tjs7Ozs7CisyRjlCOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Qjk7TG87MDtMOzg3MEU7Ozs7Tjs7Ozs7CisyRjlCQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QkE7TG87MDtMOzg2RTI7Ozs7Tjs7Ozs7CisyRjlCQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QkI7TG87MDtMOzg3Nzk7Ozs7Tjs7Ozs7CisyRjlCQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QkM7TG87MDtMOzg3Mjg7Ozs7Tjs7Ozs7CisyRjlCRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QkQ7TG87MDtMOzg3NkI7Ozs7Tjs7Ozs7CisyRjlCRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QkU7TG87MDtMOzg3ODY7Ozs7Tjs7Ozs7CisyRjlCRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QkY7TG87MDtMOzRENTc7Ozs7Tjs7Ozs7CisyRjlDMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QzA7TG87MDtMOzg3RTE7Ozs7Tjs7Ozs7CisyRjlDMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QzE7TG87MDtMOzg4MDE7Ozs7Tjs7Ozs7CisyRjlDMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QzI7TG87MDtMOzQ1Rjk7Ozs7Tjs7Ozs7CisyRjlDMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QzM7TG87MDtMOzg4NjA7Ozs7Tjs7Ozs7CisyRjlDNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QzQ7TG87MDtMOzg4NjM7Ozs7Tjs7Ozs7CisyRjlDNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QzU7TG87MDtMOzI3NjY3Ozs7O047Ozs7OworMkY5QzY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUM2O0xvOzA7TDs4OEQ3Ozs7O047Ozs7OworMkY5Qzc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUM3O0xvOzA7TDs4OERFOzs7O047Ozs7OworMkY5Qzg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUM4O0xvOzA7TDs0NjM1Ozs7O047Ozs7OworMkY5Qzk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUM5O0xvOzA7TDs4OEZBOzs7O047Ozs7OworMkY5Q0E7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUNBO0xvOzA7TDszNEJCOzs7O047Ozs7OworMkY5Q0I7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUNCO0xvOzA7TDsyNzhBRTs7OztOOzs7OzsKKzJGOUNDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlDQztMbzswO0w7Mjc5NjY7Ozs7Tjs7Ozs7CisyRjlDRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Q0Q7TG87MDtMOzQ2QkU7Ozs7Tjs7Ozs7CisyRjlDRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Q0U7TG87MDtMOzQ2Qzc7Ozs7Tjs7Ozs7CisyRjlDRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Q0Y7TG87MDtMOzhBQTA7Ozs7Tjs7Ozs7CisyRjlEMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RDA7TG87MDtMOzhBRUQ7Ozs7Tjs7Ozs7CisyRjlEMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RDE7TG87MDtMOzhCOEE7Ozs7Tjs7Ozs7CisyRjlEMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RDI7TG87MDtMOzhDNTU7Ozs7Tjs7Ozs7CisyRjlEMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RDM7TG87MDtMOzI3Q0E4Ozs7O047Ozs7OworMkY5RDQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUQ0O0xvOzA7TDs4Q0FCOzs7O047Ozs7OworMkY5RDU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUQ1O0xvOzA7TDs4Q0MxOzs7O047Ozs7OworMkY5RDY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUQ2O0xvOzA7TDs4RDFCOzs7O047Ozs7OworMkY5RDc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUQ3O0xvOzA7TDs4RDc3Ozs7O047Ozs7OworMkY5RDg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUQ4O0xvOzA7TDsyN0YyRjs7OztOOzs7OzsKKzJGOUQ5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlEOTtMbzswO0w7MjA4MDQ7Ozs7Tjs7Ozs7CisyRjlEQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5REE7TG87MDtMOzhEQ0I7Ozs7Tjs7Ozs7CisyRjlEQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5REI7TG87MDtMOzhEQkM7Ozs7Tjs7Ozs7CisyRjlEQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5REM7TG87MDtMOzhERjA7Ozs7Tjs7Ozs7CisyRjlERDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5REQ7TG87MDtMOzIwOERFOzs7O047Ozs7OworMkY5REU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOURFO0xvOzA7TDs4RUQ0Ozs7O047Ozs7OworMkY5REY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOURGO0xvOzA7TDs4RjM4Ozs7O047Ozs7OworMkY5RTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUUwO0xvOzA7TDsyODVEMjs7OztOOzs7OzsKKzJGOUUxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlFMTtMbzswO0w7Mjg1RUQ7Ozs7Tjs7Ozs7CisyRjlFMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RTI7TG87MDtMOzkwOTQ7Ozs7Tjs7Ozs7CisyRjlFMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RTM7TG87MDtMOzkwRjE7Ozs7Tjs7Ozs7CisyRjlFNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RTQ7TG87MDtMOzkxMTE7Ozs7Tjs7Ozs7CisyRjlFNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RTU7TG87MDtMOzI4NzJFOzs7O047Ozs7OworMkY5RTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUU2O0xvOzA7TDs5MTFCOzs7O047Ozs7OworMkY5RTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUU3O0xvOzA7TDs5MjM4Ozs7O047Ozs7OworMkY5RTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUU4O0xvOzA7TDs5MkQ3Ozs7O047Ozs7OworMkY5RTk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUU5O0xvOzA7TDs5MkQ4Ozs7O047Ozs7OworMkY5RUE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUVBO0xvOzA7TDs5MjdDOzs7O047Ozs7OworMkY5RUI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUVCO0xvOzA7TDs5M0Y5Ozs7O047Ozs7OworMkY5RUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUVDO0xvOzA7TDs5NDE1Ozs7O047Ozs7OworMkY5RUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUVEO0xvOzA7TDsyOEJGQTs7OztOOzs7OzsKKzJGOUVFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlFRTtMbzswO0w7OTU4Qjs7OztOOzs7OzsKKzJGOUVGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlFRjtMbzswO0w7NDk5NTs7OztOOzs7OzsKKzJGOUYwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlGMDtMbzswO0w7OTVCNzs7OztOOzs7OzsKKzJGOUYxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlGMTtMbzswO0w7MjhENzc7Ozs7Tjs7Ozs7CisyRjlGMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RjI7TG87MDtMOzQ5RTY7Ozs7Tjs7Ozs7CisyRjlGMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RjM7TG87MDtMOzk2QzM7Ozs7Tjs7Ozs7CisyRjlGNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RjQ7TG87MDtMOzVEQjI7Ozs7Tjs7Ozs7CisyRjlGNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RjU7TG87MDtMOzk3MjM7Ozs7Tjs7Ozs7CisyRjlGNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RjY7TG87MDtMOzI5MTQ1Ozs7O047Ozs7OworMkY5Rjc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUY3O0xvOzA7TDsyOTIxQTs7OztOOzs7OzsKKzJGOUY4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlGODtMbzswO0w7NEE2RTs7OztOOzs7OzsKKzJGOUY5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlGOTtMbzswO0w7NEE3Njs7OztOOzs7OzsKKzJGOUZBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlGQTtMbzswO0w7OTdFMDs7OztOOzs7OzsKKzJGOUZCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlGQjtMbzswO0w7Mjk0MEE7Ozs7Tjs7Ozs7CisyRjlGQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RkM7TG87MDtMOzRBQjI7Ozs7Tjs7Ozs7CisyRjlGRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RkQ7TG87MDtMOzI5NDk2Ozs7O047Ozs7OworMkY5RkU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUZFO0xvOzA7TDs5ODBCOzs7O047Ozs7OworMkY5RkY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUZGO0xvOzA7TDs5ODBCOzs7O047Ozs7OworMkZBMDA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTAwO0xvOzA7TDs5ODI5Ozs7O047Ozs7OworMkZBMDE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTAxO0xvOzA7TDsyOTVCNjs7OztOOzs7OzsKKzJGQTAyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkEwMjtMbzswO0w7OThFMjs7OztOOzs7OzsKKzJGQTAzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkEwMztMbzswO0w7NEIzMzs7OztOOzs7OzsKKzJGQTA0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkEwNDtMbzswO0w7OTkyOTs7OztOOzs7OzsKKzJGQTA1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkEwNTtMbzswO0w7OTlBNzs7OztOOzs7OzsKKzJGQTA2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkEwNjtMbzswO0w7OTlDMjs7OztOOzs7OzsKKzJGQTA3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkEwNztMbzswO0w7OTlGRTs7OztOOzs7OzsKKzJGQTA4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkEwODtMbzswO0w7NEJDRTs7OztOOzs7OzsKKzJGQTA5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkEwOTtMbzswO0w7MjlCMzA7Ozs7Tjs7Ozs7CisyRkEwQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMEE7TG87MDtMOzlCMTI7Ozs7Tjs7Ozs7CisyRkEwQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMEI7TG87MDtMOzlDNDA7Ozs7Tjs7Ozs7CisyRkEwQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMEM7TG87MDtMOzlDRkQ7Ozs7Tjs7Ozs7CisyRkEwRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMEQ7TG87MDtMOzRDQ0U7Ozs7Tjs7Ozs7CisyRkEwRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMEU7TG87MDtMOzRDRUQ7Ozs7Tjs7Ozs7CisyRkEwRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMEY7TG87MDtMOzlENjc7Ozs7Tjs7Ozs7CisyRkExMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMTA7TG87MDtMOzJBMENFOzs7O047Ozs7OworMkZBMTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTExO0xvOzA7TDs0Q0Y4Ozs7O047Ozs7OworMkZBMTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTEyO0xvOzA7TDsyQTEwNTs7OztOOzs7OzsKKzJGQTEzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkExMztMbzswO0w7MkEyMEU7Ozs7Tjs7Ozs7CisyRkExNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMTQ7TG87MDtMOzJBMjkxOzs7O047Ozs7OworMkZBMTU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTE1O0xvOzA7TDs5RUJCOzs7O047Ozs7OworMkZBMTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTE2O0xvOzA7TDs0RDU2Ozs7O047Ozs7OworMkZBMTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTE3O0xvOzA7TDs5RUY5Ozs7O047Ozs7OworMkZBMTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTE4O0xvOzA7TDs5RUZFOzs7O047Ozs7OworMkZBMTk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTE5O0xvOzA7TDs5RjA1Ozs7O047Ozs7OworMkZBMUE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTFBO0xvOzA7TDs5RjBGOzs7O047Ozs7OworMkZBMUI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTFCO0xvOzA7TDs5RjE2Ozs7O047Ozs7OworMkZBMUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTFDO0xvOzA7TDs5RjNCOzs7O047Ozs7OworMkZBMUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTFEO0xvOzA7TDsyQTYwMDs7OztOOzs7OzsKK0UwMDAxO0xBTkdVQUdFIFRBRztDZjswO0JOOzs7OztOOzs7OzsKK0UwMDIwO1RBRyBTUEFDRTtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDIxO1RBRyBFWENMQU1BVElPTiBNQVJLO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMjI7VEFHIFFVT1RBVElPTiBNQVJLO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMjM7VEFHIE5VTUJFUiBTSUdOO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMjQ7VEFHIERPTExBUiBTSUdOO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMjU7VEFHIFBFUkNFTlQgU0lHTjtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDI2O1RBRyBBTVBFUlNBTkQ7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAyNztUQUcgQVBPU1RST1BIRTtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDI4O1RBRyBMRUZUIFBBUkVOVEhFU0lTO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMjk7VEFHIFJJR0hUIFBBUkVOVEhFU0lTO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMkE7VEFHIEFTVEVSSVNLO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMkI7VEFHIFBMVVMgU0lHTjtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDJDO1RBRyBDT01NQTtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDJEO1RBRyBIWVBIRU4tTUlOVVM7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAyRTtUQUcgRlVMTCBTVE9QO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMkY7VEFHIFNPTElEVVM7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzMDtUQUcgRElHSVQgWkVSTztDZjswO0JOOzs7OztOOzs7OzsKK0UwMDMxO1RBRyBESUdJVCBPTkU7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzMjtUQUcgRElHSVQgVFdPO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMzM7VEFHIERJR0lUIFRIUkVFO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMzQ7VEFHIERJR0lUIEZPVVI7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzNTtUQUcgRElHSVQgRklWRTtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDM2O1RBRyBESUdJVCBTSVg7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzNztUQUcgRElHSVQgU0VWRU47Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzODtUQUcgRElHSVQgRUlHSFQ7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzOTtUQUcgRElHSVQgTklORTtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDNBO1RBRyBDT0xPTjtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDNCO1RBRyBTRU1JQ09MT047Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzQztUQUcgTEVTUy1USEFOIFNJR047Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzRDtUQUcgRVFVQUxTIFNJR047Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzRTtUQUcgR1JFQVRFUi1USEFOIFNJR047Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzRjtUQUcgUVVFU1RJT04gTUFSSztDZjswO0JOOzs7OztOOzs7OzsKK0UwMDQwO1RBRyBDT01NRVJDSUFMIEFUO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNDE7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIEE7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA0MjtUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQjtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDQzO1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBDO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNDQ7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIEQ7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA0NTtUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRTtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDQ2O1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBGO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNDc7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIEc7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA0ODtUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSDtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDQ5O1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNEE7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIEo7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA0QjtUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSztDZjswO0JOOzs7OztOOzs7OzsKK0UwMDRDO1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBMO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNEQ7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIE07Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA0RTtUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgTjtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDRGO1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBPO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNTA7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIFA7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA1MTtUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgUTtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDUyO1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBSO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNTM7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIFM7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA1NDtUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVDtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDU1O1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBVO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNTY7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIFY7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA1NztUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVztDZjswO0JOOzs7OztOOzs7OzsKK0UwMDU4O1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBYO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNTk7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIFk7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA1QTtUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgWjtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDVCO1RBRyBMRUZUIFNRVUFSRSBCUkFDS0VUO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNUM7VEFHIFJFVkVSU0UgU09MSURVUztDZjswO0JOOzs7OztOOzs7OzsKK0UwMDVEO1RBRyBSSUdIVCBTUVVBUkUgQlJBQ0tFVDtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDVFO1RBRyBDSVJDVU1GTEVYIEFDQ0VOVDtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDVGO1RBRyBMT1cgTElORTtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDYwO1RBRyBHUkFWRSBBQ0NFTlQ7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2MTtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEE7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2MjtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEI7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2MztUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEM7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2NDtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEQ7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2NTtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEU7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2NjtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEY7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2NztUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEc7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2ODtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEg7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2OTtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEk7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2QTtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEo7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2QjtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEs7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2QztUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEw7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2RDtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIE07Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2RTtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIE47Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2RjtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIE87Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3MDtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIFA7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3MTtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIFE7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3MjtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIFI7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3MztUQUcgTEFUSU4gU01BTEwgTEVUVEVSIFM7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3NDtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIFQ7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3NTtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIFU7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3NjtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIFY7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3NztUQUcgTEFUSU4gU01BTEwgTEVUVEVSIFc7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3ODtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIFg7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3OTtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIFk7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3QTtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIFo7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3QjtUQUcgTEVGVCBDVVJMWSBCUkFDS0VUO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwN0M7VEFHIFZFUlRJQ0FMIExJTkU7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3RDtUQUcgUklHSFQgQ1VSTFkgQlJBQ0tFVDtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDdFO1RBRyBUSUxERTtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDdGO0NBTkNFTCBUQUc7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitGMDAwMDs8UGxhbmUgMTUgUHJpdmF0ZSBVc2UsIEZpcnN0PjtDbzswO0w7Ozs7O047Ozs7OworRkZGRkQ7PFBsYW5lIDE1IFByaXZhdGUgVXNlLCBMYXN0PjtDbzswO0w7Ozs7O047Ozs7OworMTAwMDAwOzxQbGFuZSAxNiBQcml2YXRlIFVzZSwgRmlyc3Q+O0NvOzA7TDs7Ozs7Tjs7Ozs7CisxMEZGRkQ7PFBsYW5lIDE2IFByaXZhdGUgVXNlLCBMYXN0PjtDbzswO0w7Ozs7O047Ozs7OwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NhbGVuZGFyL0NhbGVuZGFyQXBwLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2FsZW5kYXIvQ2FsZW5kYXJBcHAuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yOTYxOTI2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NhbGVuZGFyL0NhbGVuZGFyQXBwLmphdmEKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTctMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NhbGVuZGFyL0NhbGVuZGFyQXBwLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTkgMDQ6MTA6MjMgJCAKKyAqICRSZXZpc2lvbjogMS43ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kZW1vLmNhbGVuZGFyOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LmRlbW8uKjsKKworaW1wb3J0IGphdmEuYXBwbGV0LkFwcGxldDsKK2ltcG9ydCBqYXZhLmF3dC4qOworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lio7CitpbXBvcnQgamF2YS5uZXQuKjsKK2ltcG9ydCBqYXZhLmlvLio7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYuZGVtby5pbXBsLio7CisKKy8qKgorICogQ2FsZW5kYXJBcHAgZGVtb25zdHJhdGVzIGhvdyBDYWxlbmRhciB3b3Jrcy4KKyAqLworcHVibGljIGNsYXNzIENhbGVuZGFyQXBwIGV4dGVuZHMgRGVtb0FwcGxldAoreworICAgIC8qKgorICAgICAqIFRoZSBtYWluIGZ1bmN0aW9uIHdoaWNoIGRlZmluZXMgdGhlIGJlaGF2aW9yIG9mIHRoZSBDYWxlbmRhckRlbW8KKyAgICAgKiBhcHBsZXQgd2hlbiBhbiBhcHBsZXQgaXMgc3RhcnRlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJndltdKSB7CisKKyAgICAgICAgbmV3IENhbGVuZGFyQXBwKCkuc2hvd0RlbW8oKTsKKyAgICB9CisKKyAgICAvKiBUaGlzIGNyZWF0ZXMgYSBDYWxlbmRhckZyYW1lIGZvciB0aGUgZGVtbyBhcHBsZXQuICovCisgICAgcHVibGljIEZyYW1lIGNyZWF0ZURlbW9GcmFtZShEZW1vQXBwbGV0IGFwcGxldCkgeworICAgICAgICByZXR1cm4gbmV3IENhbGVuZGFyRnJhbWUoYXBwbGV0KTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2FsZW5kYXIvQ2FsZW5kYXJDYWxjLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2FsZW5kYXIvQ2FsZW5kYXJDYWxjLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGNiN2Y3NAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9jYWxlbmRhci9DYWxlbmRhckNhbGMuamF2YQpAQCAtMCwwICsxLDU4NiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTctMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NhbGVuZGFyL0NhbGVuZGFyQ2FsYy5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE5IDA0OjEwOjIzICQgCisgKiAkUmV2aXNpb246IDEuMTEgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRlbW8uY2FsZW5kYXI7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYuZGVtby4qOworCitpbXBvcnQgamF2YS5hcHBsZXQuQXBwbGV0OworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEuYXd0Lio7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuKjsKKworLy9pbXBvcnQgamF2YS50ZXh0LkRhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0OworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworCisvL2ltcG9ydCBqYXZhLnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKKy8vaW1wb3J0IGphdmEudXRpbC5HcmVnb3JpYW5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyOworLy9pbXBvcnQgamF2YS51dGlsLlRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi5kZW1vLmltcGwuKjsKKworaW1wb3J0IGphdmF4LnN3aW5nLio7CisKKy8qKgorICogQ2FsZW5kYXJDYWxjIGRlbW9uc3RyYXRlcyBob3cgRGF0ZS9UaW1lIGZvcm1hdHRlciB3b3Jrcy4KKyAqLworcHVibGljIGNsYXNzIENhbGVuZGFyQ2FsYyBleHRlbmRzIERlbW9BcHBsZXQKK3sKKyAgICAvKioKKyAgICAgKiBUaGUgbWFpbiBmdW5jdGlvbiB3aGljaCBkZWZpbmVzIHRoZSBiZWhhdmlvciBvZiB0aGUgTXVsdGlDYWxlbmRhckRlbW8KKyAgICAgKiBhcHBsZXQgd2hlbiBhbiBhcHBsZXQgaXMgc3RhcnRlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJndltdKSB7CisgICAgICAgIG5ldyBDYWxlbmRhckNhbGMoKS5zaG93RGVtbygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgY3JlYXRlcyBhIENhbGVuZGFyQ2FsY0ZyYW1lIGZvciB0aGUgZGVtbyBhcHBsZXQuCisgICAgICovCisgICAgcHVibGljIEZyYW1lIGNyZWF0ZURlbW9GcmFtZShEZW1vQXBwbGV0IGFwcGxldCkgeworICAgICAgICByZXR1cm4gbmV3IENhbGVuZGFyQ2FsY0ZyYW1lKGFwcGxldCk7CisgICAgfQorfQorCisvKioKKyAqIEEgRnJhbWUgaXMgYSB0b3AtbGV2ZWwgd2luZG93IHdpdGggYSB0aXRsZS4gVGhlIGRlZmF1bHQgbGF5b3V0IGZvciBhIGZyYW1lCisgKiBpcyBCb3JkZXJMYXlvdXQuICBUaGUgQ2FsZW5kYXJDYWxjRnJhbWUgY2xhc3MgZGVmaW5lcyB0aGUgd2luZG93IGxheW91dCBvZgorICogTXVsdGlDYWxlbmRhckRlbW8uCisgKi8KK2NsYXNzIENhbGVuZGFyQ2FsY0ZyYW1lIGV4dGVuZHMgRnJhbWUgaW1wbGVtZW50cyBBY3Rpb25MaXN0ZW5lcgoreworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyAgICAgY3JlZGl0U3RyaW5nID0gIiI7CisKKyAgICBzdGF0aWMgZmluYWwgTG9jYWxlW10gbG9jYWxlcyA9IERlbW9VdGlsaXR5LmdldEc3TG9jYWxlcygpOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiAgICBERUJVRyA9IGZhbHNlOworCisgICAgcHJpdmF0ZSBEZW1vQXBwbGV0ICAgICAgICAgICAgICBhcHBsZXQ7CisgICAgcHJpdmF0ZSBsb25nICAgICAgICAgICAgICAgICAgICB0aW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBSb2xsQWRkRmllbGQga1JvbGxBZGRGaWVsZHNbXSA9IHsKKyAgICAgICAgbmV3IFJvbGxBZGRGaWVsZChDYWxlbmRhci5ZRUFSLCAgICAgICAgICAgICAgICAgIlllYXIiICksCisgICAgICAgIG5ldyBSb2xsQWRkRmllbGQoQ2FsZW5kYXIuTU9OVEgsICAgICAgICAgICAgICAgICJNb250aCIgKSwKKyAgICAgICAgbmV3IFJvbGxBZGRGaWVsZChDYWxlbmRhci5XRUVLX09GX01PTlRILCAgICAgICAgIldlZWsgb2YgTW9udGgiICksCisgICAgICAgIG5ldyBSb2xsQWRkRmllbGQoQ2FsZW5kYXIuV0VFS19PRl9ZRUFSLCAgICAgICAgICJXZWVrIG9mIFllYXIiICksCisgICAgICAgIG5ldyBSb2xsQWRkRmllbGQoQ2FsZW5kYXIuREFZX09GX01PTlRILCAgICAgICAgICJEYXkgb2YgTW9udGgiICksCisgICAgICAgIG5ldyBSb2xsQWRkRmllbGQoQ2FsZW5kYXIuREFZX09GX1dFRUssICAgICAgICAgICJEYXkgb2YgV2VlayIgKSwKKyAgICAgICAgbmV3IFJvbGxBZGRGaWVsZChDYWxlbmRhci5EQVlfT0ZfV0VFS19JTl9NT05USCwgIkRheSBvZiBXZWVrIGluIE1vbnRoIiApLAorICAgICAgICBuZXcgUm9sbEFkZEZpZWxkKENhbGVuZGFyLkRBWV9PRl9ZRUFSLCAgICAgICAgICAiRGF5IG9mIFllYXIiICksCisgICAgICAgIG5ldyBSb2xsQWRkRmllbGQoQ2FsZW5kYXIuQU1fUE0sICAgICAgICAgICAgICAgICJBTS9QTSIgKSwKKyAgICAgICAgbmV3IFJvbGxBZGRGaWVsZChDYWxlbmRhci5IT1VSX09GX0RBWSwgICAgICAgICAgIkhvdXIgb2YgZGF5IiApLAorICAgICAgICBuZXcgUm9sbEFkZEZpZWxkKENhbGVuZGFyLkhPVVIsICAgICAgICAgICAgICAgICAiSG91ciIgKSwKKyAgICAgICAgbmV3IFJvbGxBZGRGaWVsZChDYWxlbmRhci5NSU5VVEUsICAgICAgICAgICAgICAgIk1pbnV0ZSIgKSwKKyAgICAgICAgbmV3IFJvbGxBZGRGaWVsZChDYWxlbmRhci5TRUNPTkQsICAgICAgICAgICAgICAgIlNlY29uZCIgKSwKKyAgICB9OworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIG5ldyBDYWxlbmRhckNhbGNGcmFtZSB0aGF0IGlzIGluaXRpYWxseSBpbnZpc2libGUuCisgICAgICovCisgICAgcHVibGljIENhbGVuZGFyQ2FsY0ZyYW1lKERlbW9BcHBsZXQgYXBwbGV0KQorICAgIHsKKyAgICAgICAgc3VwZXIoIk11bHRpcGxlIENhbGVuZGFyIERlbW8iKTsKKyAgICAgICAgdGhpcy5hcHBsZXQgPSBhcHBsZXQ7CisgICAgICAgIGluaXQoKTsKKyAgICAgICAgc3RhcnQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXplcyB0aGUgYXBwbGV0LiBZb3UgbmV2ZXIgbmVlZCB0byBjYWxsIHRoaXMgZGlyZWN0bHksIGl0CisgICAgICogaXMgY2FsbGVkIGF1dG9tYXRpY2FsbHkgYnkgdGhlIHN5c3RlbSBvbmNlIHRoZSBhcHBsZXQgaXMgY3JlYXRlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBpbml0KCkKKyAgICB7CisgICAgICAgIGJ1aWxkR1VJKCk7CisKKyAgICAgICAgcGF0dGVyblRleHQuc2V0VGV4dCggY2FsZW5kYXJzWzBdLnRvUGF0dGVybigpICk7CisKKyAgICAgICAgLy8gRm9yY2UgYW4gdXBkYXRlIG9mIHRoZSBkaXNwbGF5CisgICAgICAgIGNpdHlDaGFuZ2VkKCk7CisgICAgICAgIG1pbGxpc0Zvcm1hdCgpOworICAgICAgICBlbmFibGVFdmVudHMoS2V5RXZlbnQuS0VZX1JFTEVBU0VEKTsKKyAgICAgICAgZW5hYmxlRXZlbnRzKFdpbmRvd0V2ZW50LldJTkRPV19DTE9TSU5HKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHBhY2thZ2UgcHJpdmF0ZQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgdm9pZCBhZGRXaXRoRm9udChDb250YWluZXIgY29udGFpbmVyLCBDb21wb25lbnQgZm9vLCBGb250IGZvbnQpIHsKKyAgICAgICAgaWYgKGZvbnQgIT0gbnVsbCkKKyAgICAgICAgICAgIGZvby5zZXRGb250KGZvbnQpOworICAgICAgICBjb250YWluZXIuYWRkKGZvbyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2FsbGVkIHRvIHN0YXJ0IHRoZSBhcHBsZXQuIFlvdSBuZXZlciBuZWVkIHRvIGNhbGwgdGhpcyBtZXRob2QKKyAgICAgKiBkaXJlY3RseSwgaXQgaXMgY2FsbGVkIHdoZW4gdGhlIGFwcGxldCdzIGRvY3VtZW50IGlzIHZpc2l0ZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc3RhcnQoKQorICAgIHsKKyAgICAgICAgLy8gZG8gbm90aGluZworICAgIH0KKworICAgIFRleHRGaWVsZCBwYXR0ZXJuVGV4dDsKKworICAgIENob2ljZSBkYXRlTWVudTsKKyAgICBDaG9pY2UgbG9jYWxlTWVudTsKKworICAgIEJ1dHRvbiB1cDsKKyAgICBCdXR0b24gZG93bjsKKworICAgIENoZWNrYm94IGdldFJvbGw7CisgICAgQ2hlY2tib3ggZ2V0QWRkOworCisgICAgcHVibGljIHZvaWQgYnVpbGRHVUkoKQorICAgIHsKKyAgICAgICAgc2V0QmFja2dyb3VuZChEZW1vVXRpbGl0eS5iZ0NvbG9yKTsKKyAgICAgICAgc2V0TGF5b3V0KG5ldyBGbG93TGF5b3V0KCkpOyAvLyBzaG91bGRuJ3QgYmUgbmVjZXNzYXJ5LCBidXQgaXQgaXMuCisKKy8vIFRJVExFCisgICAgICAgIExhYmVsIGxhYmVsMT1uZXcgTGFiZWwoIkNhbGVuZGFyIENvbnZlcnRlciIsIExhYmVsLkNFTlRFUik7CisgICAgICAgIGxhYmVsMS5zZXRGb250KERlbW9VdGlsaXR5LnRpdGxlRm9udCk7CisgICAgICAgIGFkZChsYWJlbDEpOworICAgICAgICBhZGQoRGVtb1V0aWxpdHkuY3JlYXRlU3BhY2VyKCkpOworCisvLyBJTyBQYW5lbAorICAgICAgICBQYW5lbCB0b3BQYW5lbCA9IG5ldyBQYW5lbCgpOworICAgICAgICB0b3BQYW5lbC5zZXRMYXlvdXQobmV3IEZsb3dMYXlvdXQoKSk7CisKKyAgICAgICAgQ2hlY2tib3hHcm91cCBncm91cDE9IG5ldyBDaGVja2JveEdyb3VwKCk7CisKKyAgICAgICAgLy8gU2V0IHVwIHRoZSBjb250cm9scyBmb3IgZWFjaCBjYWxlbmRhciB3ZSdyZSBkZW1vbnN0cmF0aW5nCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2FsZW5kYXJzLmxlbmd0aDsgaSsrKQorICAgICAgICB7CisgICAgICAgICAgICBMYWJlbCBsYWJlbCA9IG5ldyBMYWJlbChjYWxlbmRhcnNbaV0ubmFtZSwgTGFiZWwuUklHSFQpOworICAgICAgICAgICAgbGFiZWwuc2V0Rm9udChEZW1vVXRpbGl0eS5sYWJlbEZvbnQpOworICAgICAgICAgICAgdG9wUGFuZWwuYWRkKGxhYmVsKTsKKworICAgICAgICAgICAgdG9wUGFuZWwuYWRkKGNhbGVuZGFyc1tpXS50ZXh0KTsKKworICAgICAgICAgICAgZmluYWwgaW50IGogPSBpOworICAgICAgICAgICAgY2FsZW5kYXJzW2ldLnRleHQuYWRkQWN0aW9uTGlzdGVuZXIoIG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgICAgICB0ZXh0Q2hhbmdlZChqKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ICk7CisKKyAgICAgICAgICAgIGNhbGVuZGFyc1tpXS5yb2xsQWRkLnNldENoZWNrYm94R3JvdXAoZ3JvdXAxKTsKKyAgICAgICAgICAgIHRvcFBhbmVsLmFkZChjYWxlbmRhcnNbaV0ucm9sbEFkZCk7CisgICAgICAgIH0KKyAgICAgICAgY2FsZW5kYXJzWzBdLnJvbGxBZGQuc2V0U3RhdGUodHJ1ZSk7ICAgIC8vIE1ha2UgdGhlIGZpcnN0IG9uZSBzZWxlY3RlZAorCisgICAgICAgIExhYmVsIGxhYmVsND1uZXcgTGFiZWwoIlBhdHRlcm4iLCBMYWJlbC5SSUdIVCk7CisgICAgICAgIGxhYmVsNC5zZXRGb250KERlbW9VdGlsaXR5LmxhYmVsRm9udCk7CisgICAgICAgIHRvcFBhbmVsLmFkZChsYWJlbDQpOworCisgICAgICAgIHBhdHRlcm5UZXh0PW5ldyBUZXh0RmllbGQoRklFTERfQ09MVU1OUyk7CisgICAgICAgIHBhdHRlcm5UZXh0LnNldEZvbnQoRGVtb1V0aWxpdHkuZWRpdEZvbnQpOworICAgICAgICB0b3BQYW5lbC5hZGQocGF0dGVyblRleHQpOworICAgICAgICB0b3BQYW5lbC5hZGQobmV3IExhYmVsKCIiKSk7CisKKyAgICAgICAgRGVtb1V0aWxpdHkuZml4R3JpZCh0b3BQYW5lbCwzKTsKKyAgICAgICAgYWRkKHRvcFBhbmVsKTsKKyAgICAgICAgYWRkKERlbW9VdGlsaXR5LmNyZWF0ZVNwYWNlcigpKTsKKworLy8gUk9MTCAvIEFERAorICAgICAgICBQYW5lbCByb2xsQWRkUGFuZWw9bmV3IFBhbmVsKCk7CisgICAgICAgIHsKKyAgICAgICAgICAgIHJvbGxBZGRQYW5lbC5zZXRMYXlvdXQobmV3IEZsb3dMYXlvdXQoKSk7CisKKyAgICAgICAgICAgIFBhbmVsIHJvbGxBZGRCb3hlcyA9IG5ldyBQYW5lbCgpOworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJvbGxBZGRCb3hlcy5zZXRMYXlvdXQobmV3IEdyaWRMYXlvdXQoMiwxKSk7CisgICAgICAgICAgICAgICAgQ2hlY2tib3hHcm91cCBncm91cDI9IG5ldyBDaGVja2JveEdyb3VwKCk7CisgICAgICAgICAgICAgICAgZ2V0Um9sbCA9IG5ldyBDaGVja2JveCgiUm9sbCIsZ3JvdXAyLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgZ2V0QWRkID0gbmV3IENoZWNrYm94KCJBZGQiLGdyb3VwMiwgdHJ1ZSk7CisKKyAgICAgICAgICAgICAgICByb2xsQWRkQm94ZXMuYWRkKGdldFJvbGwpOworICAgICAgICAgICAgICAgIHJvbGxBZGRCb3hlcy5hZGQoZ2V0QWRkKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgTGFiZWwgZGF0ZUxhYmVsPW5ldyBMYWJlbCgiRGF0ZSBGaWVsZHMiKTsKKyAgICAgICAgICAgIGRhdGVMYWJlbC5zZXRGb250KERlbW9VdGlsaXR5LmxhYmVsRm9udCk7CisKKyAgICAgICAgICAgIGRhdGVNZW51PSBuZXcgQ2hvaWNlKCk7CisgICAgICAgICAgICBkYXRlTWVudS5zZXRCYWNrZ3JvdW5kKERlbW9VdGlsaXR5LmNob2ljZUNvbG9yKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwga1JvbGxBZGRGaWVsZHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBkYXRlTWVudS5hZGRJdGVtKGtSb2xsQWRkRmllbGRzW2ldLm5hbWUpOworICAgICAgICAgICAgICAgIGlmIChrUm9sbEFkZEZpZWxkc1tpXS5maWVsZCA9PSBDYWxlbmRhci5NT05USCkgeworICAgICAgICAgICAgICAgICAgICBkYXRlTWVudS5zZWxlY3QoaSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBQYW5lbCB1cERvd24gPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB1cERvd24uc2V0TGF5b3V0KG5ldyBHcmlkTGF5b3V0KDIsMSkpOworCisgICAgICAgICAgICAgICAgLy8gKioqIElmIHRoZSBpbWFnZXMgYXJlIG5vdCBmb3VuZCwgd2UgdXNlIHRoZSBsYWJlbC4KKyAgICAgICAgICAgICAgICB1cCA9IG5ldyBCdXR0b24oIl4iKTsKKyAgICAgICAgICAgICAgICBkb3duID0gbmV3IEJ1dHRvbigidiIpOworICAgICAgICAgICAgICAgIHVwLnNldEJhY2tncm91bmQoRGVtb1V0aWxpdHkuYmdDb2xvcik7CisgICAgICAgICAgICAgICAgZG93bi5zZXRCYWNrZ3JvdW5kKERlbW9VdGlsaXR5LmJnQ29sb3IpOworICAgICAgICAgICAgICAgIHVwRG93bi5hZGQodXApOworICAgICAgICAgICAgICAgIHVwRG93bi5hZGQoZG93bik7CisgICAgICAgICAgICAgICAgdXAuYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgICAgICAgICAgZG93bi5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcm9sbEFkZFBhbmVsLmFkZChkYXRlTGFiZWwpOworICAgICAgICAgICAgcm9sbEFkZFBhbmVsLmFkZChkYXRlTWVudSk7CisgICAgICAgICAgICByb2xsQWRkUGFuZWwuYWRkKHJvbGxBZGRCb3hlcyk7CisgICAgICAgICAgICByb2xsQWRkUGFuZWwuYWRkKHVwRG93bik7CisKKyAgICAgICAgfQorICAgICAgICBQYW5lbCBsb2NhbGVQYW5lbCA9IG5ldyBQYW5lbCgpOworICAgICAgICB7CisgICAgICAgICAgICAvLyBNYWtlIHRoZSBsb2NhbGUgcG9wdXAgbWVudXMKKyAgICAgICAgICAgIGxvY2FsZU1lbnU9IG5ldyBDaG9pY2UoKTsKKyAgICAgICAgICAgIExvY2FsZSBkZWZhdWx0TG9jYWxlID0gTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgICAgIGludCBiZXN0TWF0Y2ggPSAtMSwgdGhpc01hdGNoID0gLTE7CisgICAgICAgICAgICBpbnQgc2VsZWN0TWUgPSAwOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoaSA+IDAgJiYgbG9jYWxlc1tpXS5nZXRMYW5ndWFnZSgpLmVxdWFscyhsb2NhbGVzW2ktMV0uZ2V0TGFuZ3VhZ2UoKSkgfHwKKyAgICAgICAgICAgICAgICAgICAgaSA8IGxvY2FsZXMubGVuZ3RoIC0gMSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlc1tpXS5nZXRMYW5ndWFnZSgpLmVxdWFscyhsb2NhbGVzW2krMV0uZ2V0TGFuZ3VhZ2UoKSkpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBsb2NhbGVNZW51LmFkZEl0ZW0oIGxvY2FsZXNbaV0uZ2V0RGlzcGxheU5hbWUoKSApOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGxvY2FsZU1lbnUuYWRkSXRlbSggbG9jYWxlc1tpXS5nZXREaXNwbGF5TGFuZ3VhZ2UoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHRoaXNNYXRjaCA9IERlbW9VdGlsaXR5LmNvbXBhcmVMb2NhbGVzKGxvY2FsZXNbaV0sIGRlZmF1bHRMb2NhbGUpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmICh0aGlzTWF0Y2ggPj0gYmVzdE1hdGNoKSB7CisgICAgICAgICAgICAgICAgICAgIGJlc3RNYXRjaCA9IHRoaXNNYXRjaDsKKyAgICAgICAgICAgICAgICAgICAgc2VsZWN0TWUgPSBpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbG9jYWxlTWVudS5zZXRCYWNrZ3JvdW5kKERlbW9VdGlsaXR5LmNob2ljZUNvbG9yKTsKKyAgICAgICAgICAgIGxvY2FsZU1lbnUuc2VsZWN0KHNlbGVjdE1lKTsKKworICAgICAgICAgICAgTGFiZWwgbG9jYWxlTGFiZWwgPW5ldyBMYWJlbCgiRGlzcGxheSBMb2NhbGUiKTsKKyAgICAgICAgICAgIGxvY2FsZUxhYmVsLnNldEZvbnQoRGVtb1V0aWxpdHkubGFiZWxGb250KTsKKworICAgICAgICAgICAgbG9jYWxlUGFuZWwuYWRkKGxvY2FsZUxhYmVsKTsKKyAgICAgICAgICAgIGxvY2FsZVBhbmVsLmFkZChsb2NhbGVNZW51KTsKKyAgICAgICAgICAgIERlbW9VdGlsaXR5LmZpeEdyaWQobG9jYWxlUGFuZWwsMik7CisKKyAgICAgICAgICAgIGxvY2FsZU1lbnUuYWRkSXRlbUxpc3RlbmVyKCBuZXcgSXRlbUxpc3RlbmVyKCkgeworICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIGl0ZW1TdGF0ZUNoYW5nZWQoSXRlbUV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICAgICAgTG9jYWxlIGxvYyA9IGxvY2FsZXNbbG9jYWxlTWVudS5nZXRTZWxlY3RlZEluZGV4KCldOworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNoYW5nZSBsb2NhbGUgdG8gIiArIGxvYy5nZXREaXNwbGF5TmFtZSgpKTsKKworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNhbGVuZGFycy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJzW2ldLnNldExvY2FsZShsb2MpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG1pbGxpc0Zvcm1hdCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gKTsKKyAgICAgICAgfQorICAgICAgICBhZGQocm9sbEFkZFBhbmVsKTsKKyAgICAgICAgYWRkKERlbW9VdGlsaXR5LmNyZWF0ZVNwYWNlcigpKTsKKyAgICAgICAgYWRkKGxvY2FsZVBhbmVsKTsKKyAgICAgICAgYWRkKERlbW9VdGlsaXR5LmNyZWF0ZVNwYWNlcigpKTsKKworLy8gQ09QWVJJR0hUCisgICAgICAgIFBhbmVsIGNvcHlyaWdodFBhbmVsID0gbmV3IFBhbmVsKCk7CisgICAgICAgIGFkZFdpdGhGb250IChjb3B5cmlnaHRQYW5lbCxuZXcgTGFiZWwoRGVtb1V0aWxpdHkuY29weXJpZ2h0MSwgTGFiZWwuTEVGVCksCisgICAgICAgICAgICBEZW1vVXRpbGl0eS5jcmVkaXRGb250KTsKKyAgICAgICAgRGVtb1V0aWxpdHkuZml4R3JpZChjb3B5cmlnaHRQYW5lbCwxKTsKKyAgICAgICAgYWRkKGNvcHlyaWdodFBhbmVsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHVzZXJzIGNoYW5nZSB0aGUgcGF0dGVybiB0ZXh0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEZvcm1hdEZyb21QYXR0ZXJuKCkgeworICAgICAgICBTdHJpbmcgdGltZVBhdHRlcm4gPSBwYXR0ZXJuVGV4dC5nZXRUZXh0KCk7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjYWxlbmRhcnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGNhbGVuZGFyc1tpXS5hcHBseVBhdHRlcm4odGltZVBhdHRlcm4pOworICAgICAgICB9CisKKyAgICAgICAgbWlsbGlzRm9ybWF0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiBpdCBpcyBuZWNlc3NhcnkgdG8gcGFyc2UgdGhlIHRpbWUKKyAgICAgKiBzdHJpbmcgaW4gb25lIG9mIHRoZSBmb3JtYXR0ZWQgZGF0ZSBmaWVsZHMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXh0Q2hhbmdlZChpbnQgaW5kZXgpIHsKKyAgICAgICAgU3RyaW5nIHJpZ2h0U3RyaW5nID0gY2FsZW5kYXJzW2luZGV4XS50ZXh0LmdldFRleHQoKTsKKworICAgICAgICBQYXJzZVBvc2l0aW9uIHN0YXR1cyA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworCisgICAgICAgIGlmIChyaWdodFN0cmluZy5sZW5ndGgoKSA9PSAwKQorICAgICAgICB7CisgICAgICAgICAgICBlcnJvclRleHQoIkVycm9yOiBubyBpbnB1dCB0byBwYXJzZSEiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBEYXRlIGRhdGUgPSBjYWxlbmRhcnNbaW5kZXhdLmZvcm1hdC5wYXJzZShyaWdodFN0cmluZywgc3RhdHVzKTsKKyAgICAgICAgICAgIHRpbWUgPSBkYXRlLmdldFRpbWUoKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2FsZW5kYXJzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGkgIT0gaW5kZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJzW2ldLnRleHQuc2V0VGV4dCgiRVJST1IiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlcnJvclRleHQoIkV4Y2VwdGlvbjogIiArIGUuZ2V0Q2xhc3MoKS50b1N0cmluZygpICsgIiBwYXJzaW5nOiAiK3JpZ2h0U3RyaW5nKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGludCBzdGFydCA9IGNhbGVuZGFyc1tpbmRleF0udGV4dC5nZXRTZWxlY3Rpb25TdGFydCgpOworICAgICAgICBpbnQgZW5kID0gY2FsZW5kYXJzW2luZGV4XS50ZXh0LmdldFNlbGVjdGlvbkVuZCgpOworCisgICAgICAgIG1pbGxpc0Zvcm1hdCgpOworCisgICAgICAgIGNhbGVuZGFyc1tpbmRleF0udGV4dC5zZWxlY3Qoc3RhcnQsZW5kKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIGl0IGlzIG5lY2Vzc2FyeSB0byBmb3JtYXQgdGhlIHRpbWUKKyAgICAgKiBpbiB0aGUgIk1pbGxpcyIgdGV4dCBmaWVsZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBtaWxsaXNGb3JtYXQoKSB7CisgICAgICAgIFN0cmluZyBvdXQgPSAiIjsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNhbGVuZGFycy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBvdXQgPSBjYWxlbmRhcnNbaV0uZm9ybWF0LmZvcm1hdChuZXcgRGF0ZSh0aW1lKSk7CisgICAgICAgICAgICAgICAgY2FsZW5kYXJzW2ldLnRleHQuc2V0VGV4dChvdXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgY2FsZW5kYXJzW2ldLnRleHQuc2V0VGV4dCgiRVJST1IiKTsKKyAgICAgICAgICAgICAgICBlcnJvclRleHQoIkV4Y2VwdGlvbjogIiArIGUuZ2V0Q2xhc3MoKS50b1N0cmluZygpICsgIiBmb3JtYXR0aW5nICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGNhbGVuZGFyc1tpXS5uYW1lICsgIiAiICsgdGltZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gdXNlcnMgY2hhbmdlIHRoZSBwYXR0ZXJuIHRleHQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgcGF0dGVyblRleHRDaGFuZ2VkKCkgeworICAgICAgICBzZXRGb3JtYXRGcm9tUGF0dGVybigpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gdXNlcnMgc2VsZWN0IGEgbmV3IHJlcHJlc2VudGF0aXZlIGNpdHkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgY2l0eUNoYW5nZWQoKSB7CisgICAgICAgIFRpbWVab25lIHRpbWVab25lID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2FsZW5kYXJzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBjYWxlbmRhcnNbaV0uZm9ybWF0LnNldFRpbWVab25lKHRpbWVab25lKTsKKyAgICAgICAgfQorICAgICAgICBtaWxsaXNGb3JtYXQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHVzZXJzIHNlbGVjdCBhIG5ldyB0aW1lIGZpZWxkCisgICAgICogdG8gYWRkIG9yIHJvbGwgaXRzIHZhbHVlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGRhdGVGaWVsZENoYW5nZWQoYm9vbGVhbiB1cCkgeworICAgICAgICBpbnQgZmllbGQgPSBrUm9sbEFkZEZpZWxkc1tkYXRlTWVudS5nZXRTZWxlY3RlZEluZGV4KCldLmZpZWxkOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2FsZW5kYXJzLmxlbmd0aDsgaSsrKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoY2FsZW5kYXJzW2ldLnJvbGxBZGQuZ2V0U3RhdGUoKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBDYWxlbmRhciBjID0gY2FsZW5kYXJzW2ldLmNhbGVuZGFyOworICAgICAgICAgICAgICAgIGMuc2V0VGltZShuZXcgRGF0ZSh0aW1lKSk7CisKKyAgICAgICAgICAgICAgICBpZiAoZ2V0QWRkLmdldFN0YXRlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgYy5hZGQoZmllbGQsIHVwID8gMSA6IC0xKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBjLnJvbGwoZmllbGQsIHVwKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICB0aW1lID0gYy5nZXRUaW1lKCkuZ2V0VGltZSgpOworICAgICAgICAgICAgICAgIG1pbGxpc0Zvcm1hdCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJpbnQgb3V0IHRoZSBlcnJvciBtZXNzYWdlIHdoaWxlIGRlYnVnZ2luZyB0aGlzIHByb2dyYW0uCisgICAgICovCisgICAgcHVibGljIHZvaWQgZXJyb3JUZXh0KFN0cmluZyBzKQorICAgIHsKKyAgICAgICAgaWYgKHRydWUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihzKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDYWxsZWQgaWYgYW4gYWN0aW9uIG9jY3VycyBpbiB0aGUgQ2FsZW5kYXJDYWxjRnJhbWUgb2JqZWN0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBldnQpCisgICAgeworICAgICAgICAvLyAqKiogQnV0dG9uIGV2ZW50cyBhcmUgaGFuZGxlZCBoZXJlLgorICAgICAgICBPYmplY3Qgb2JqID0gZXZ0LmdldFNvdXJjZSgpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImFjdGlvbiAiICsgb2JqKTsKKyAgICAgICAgaWYgKG9iaiBpbnN0YW5jZW9mIEJ1dHRvbikgeworICAgICAgICAgICAgaWYgKGV2dC5nZXRTb3VyY2UoKSA9PSB1cCkgeworICAgICAgICAgICAgICAgIGRhdGVGaWVsZENoYW5nZWQoZmFsc2UpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgaWYgKGV2dC5nZXRTb3VyY2UoKSA9PSBkb3duKSB7CisgICAgICAgICAgICAgICAgICAgIGRhdGVGaWVsZENoYW5nZWQodHJ1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogSGFuZGxlcyB0aGUgZXZlbnQuIFJldHVybnMgdHJ1ZSBpZiB0aGUgZXZlbnQgaXMgaGFuZGxlZCBhbmQgc2hvdWxkIG5vdAorICAgICAqIGJlIHBhc3NlZCB0byB0aGUgcGFyZW50IG9mIHRoaXMgY29tcG9uZW50LiBUaGUgZGVmYXVsdCBldmVudCBoYW5kbGVyCisgICAgICogY2FsbHMgc29tZSBoZWxwZXIgbWV0aG9kcyB0byBtYWtlIGxpZmUgZWFzaWVyIG9uIHRoZSBwcm9ncmFtbWVyLgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIHByb2Nlc3NLZXlFdmVudChLZXlFdmVudCBldnQpCisgICAgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImtleSAiICsgZXZ0KTsKKyAgICAgICAgaWYgKGV2dC5nZXRJRCgpID09IEtleUV2ZW50LktFWV9SRUxFQVNFRCkgeyAKKyAgICAgICAgICAgIGlmIChldnQuZ2V0U291cmNlKCkgPT0gcGF0dGVyblRleHQpIHsKKyAgICAgICAgICAgICAgICBwYXR0ZXJuVGV4dENoYW5nZWQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2FsZW5kYXJzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChldnQuZ2V0U291cmNlKCkgPT0gY2FsZW5kYXJzW2ldLnRleHQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRleHRDaGFuZ2VkKGkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIHByb2Nlc3NXaW5kb3dFdmVudChXaW5kb3dFdmVudCBldnQpIAorICAgIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJ3aW5kb3cgIiArIGV2dCk7CisgICAgICAgIGlmIChldnQuZ2V0SUQoKSA9PSBXaW5kb3dFdmVudC5XSU5ET1dfQ0xPU0lORyAmJiAKKyAgICAgICAgICAgIGV2dC5nZXRTb3VyY2UoKSA9PSB0aGlzKSB7CisgICAgICAgICAgICB0aGlzLmhpZGUoKTsKKyAgICAgICAgICAgIHRoaXMuZGlzcG9zZSgpOworCisgICAgICAgICAgICBpZiAoYXBwbGV0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgIGFwcGxldC5kZW1vQ2xvc2VkKCk7CisgICAgICAgICAgICB9IGVsc2UgU3lzdGVtLmV4aXQoMCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoKKyAgICBwcm90ZWN0ZWQgdm9pZCBwcm9jZXNzRXZlbnQoQVdURXZlbnQgZXZ0KQorICAgIHsKKyAgICAgICAgaWYgKGV2dC5nZXRJRCgpID09IEFXVEV2ZW50LiBFdmVudC5BQ1RJT05fRVZFTlQgJiYgZXZ0LnRhcmdldCA9PSB1cCkgeworICAgICAgICAgICAgZGF0ZUZpZWxkQ2hhbmdlZCh0cnVlKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGV2dC5pZCA9PSBFdmVudC5BQ1RJT05fRVZFTlQgJiYgZXZ0LnRhcmdldCA9PSBkb3duKSB7CisgICAgICAgICAgICBkYXRlRmllbGRDaGFuZ2VkKGZhbHNlKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorICAgICovCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgICAgICAgIEZJRUxEX0NPTFVNTlMgPSAzNTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgICAgIERFRkFVTFRfRk9STUFUID0gIkVFRUUgTU1NTSBkLCB5eXl5IEciOworCisKKyAgICBjbGFzcyBDYWxlbmRhclJlYyB7CisgICAgICAgIHB1YmxpYyBDYWxlbmRhclJlYyhTdHJpbmcgbmFtZVN0ciwgQ2FsZW5kYXIgY2FsKQorICAgICAgICB7CisgICAgICAgICAgICBuYW1lID0gbmFtZVN0cjsKKyAgICAgICAgICAgIGNhbGVuZGFyID0gY2FsOworICAgICAgICAgICAgcm9sbEFkZCA9IG5ldyBDaGVja2JveCgpOworCisgICAgICAgICAgICB0ZXh0ID0gbmV3IEpUZXh0RmllbGQoIiIsRklFTERfQ09MVU1OUyk7CisgICAgICAgICAgICB0ZXh0LnNldEZvbnQoRGVtb1V0aWxpdHkuZWRpdEZvbnQpOworCisgICAgICAgICAgICBmb3JtYXQgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShjYWwsIERhdGVGb3JtYXQuRlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICAgICAgLy9mb3JtYXQuYXBwbHlQYXR0ZXJuKERFRkFVTFRfRk9STUFUKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHNldExvY2FsZShMb2NhbGUgbG9jKSB7CisgICAgICAgICAgICBTdHJpbmcgcGF0dGVybiA9IHRvUGF0dGVybigpOworCisgICAgICAgICAgICBmb3JtYXQgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShjYWxlbmRhciwgRGF0ZUZvcm1hdC5GVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jKTsKKyAgICAgICAgICAgIGFwcGx5UGF0dGVybihwYXR0ZXJuKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIGFwcGx5UGF0dGVybihTdHJpbmcgcGF0dGVybikgeworICAgICAgICAgICAgaWYgKGZvcm1hdCBpbnN0YW5jZW9mIFNpbXBsZURhdGVGb3JtYXQpIHsKKyAgICAgICAgICAgICAgICAoKFNpbXBsZURhdGVGb3JtYXQpZm9ybWF0KS5hcHBseVBhdHRlcm4ocGF0dGVybik7CisvL2hleSB7YWx9IC0gCisvLyAgICAgICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0IGluc3RhbmNlb2YgamF2YS50ZXh0LlNpbXBsZURhdGVGb3JtYXQpIHsKKy8vICAgICAgICAgICAgICAgICgoamF2YS50ZXh0LlNpbXBsZURhdGVGb3JtYXQpZm9ybWF0KS5hcHBseVBhdHRlcm4ocGF0dGVybik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgU3RyaW5nIHRvUGF0dGVybigpIHsKKyAgICAgICAgICAgIGlmIChmb3JtYXQgaW5zdGFuY2VvZiBTaW1wbGVEYXRlRm9ybWF0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuICgoU2ltcGxlRGF0ZUZvcm1hdClmb3JtYXQpLnRvUGF0dGVybigpOworLy9oZXkge2FsfSAtIAorLy8gICAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdCBpbnN0YW5jZW9mIGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0KSB7CisvLyAgICAgICAgICAgICAgICByZXR1cm4gKChqYXZhLnRleHQuU2ltcGxlRGF0ZUZvcm1hdClmb3JtYXQpLnRvUGF0dGVybigpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBDYWxlbmRhciAgY2FsZW5kYXI7CisgICAgICAgIERhdGVGb3JtYXQgICAgICAgICAgZm9ybWF0OworICAgICAgICBTdHJpbmcgICAgICAgICAgICAgIG5hbWU7CisgICAgICAgIEpUZXh0RmllbGQgICAgICAgICAgIHRleHQ7CisgICAgICAgIENoZWNrYm94ICAgICAgICAgICAgcm9sbEFkZDsKKyAgICB9OworCisgICAgcHJpdmF0ZSBmaW5hbCBDYWxlbmRhclJlY1tdIGNhbGVuZGFycyA9IHsKKyAgICAgICAgbmV3IENhbGVuZGFyUmVjKCJHcmVnb3JpYW4iLCAgICAgICAgbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCkpLAorICAgICAgICBuZXcgQ2FsZW5kYXJSZWMoIkhlYnJldyIsICAgICAgICAgICBuZXcgSGVicmV3Q2FsZW5kYXIoKSksCisgICAgICAgIG5ldyBDYWxlbmRhclJlYygiSXNsYW1pYyAoY2l2aWwpIiwgIG1ha2VJc2xhbWljKHRydWUpKSwKKyAgICAgICAgbmV3IENhbGVuZGFyUmVjKCJJc2xhbWljICh0cnVlKSIsICAgbWFrZUlzbGFtaWMoZmFsc2UpKSwKKyAgICAgICAgbmV3IENhbGVuZGFyUmVjKCJCdWRkaGlzdCIsICAgICAgICAgbmV3IEJ1ZGRoaXN0Q2FsZW5kYXIoKSksCisgICAgICAgIG5ldyBDYWxlbmRhclJlYygiSmFwYW5lc2UiLCAgICAgICAgIG5ldyBKYXBhbmVzZUNhbGVuZGFyKCkpLAorLy8gICAgICAgIG5ldyBDYWxlbmRhclJlYygiQ2hpbmVzZSIsICAgICAgICAgIG5ldyBDaGluZXNlQ2FsZW5kYXIoKSksCisgICAgfTsKKworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIENhbGVuZGFyIG1ha2VJc2xhbWljKGJvb2xlYW4gY2l2aWwpIHsKKyAgICAgICAgSXNsYW1pY0NhbGVuZGFyIGNhbCA9IG5ldyBJc2xhbWljQ2FsZW5kYXIoKTsKKyAgICAgICAgY2FsLnNldENpdmlsKGNpdmlsKTsKKyAgICAgICAgcmV0dXJuIGNhbDsKKyAgICB9OworfTsKKworY2xhc3MgUm9sbEFkZEZpZWxkIHsKKyAgICBSb2xsQWRkRmllbGQoaW50IGZpZWxkLCBTdHJpbmcgbmFtZSkgeworICAgICAgICB0aGlzLmZpZWxkID0gZmllbGQ7CisgICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CisgICAgfQorICAgIGludCBmaWVsZDsKKyAgICBTdHJpbmcgbmFtZTsKK307CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2FsZW5kYXIvQ2FsZW5kYXJGcmFtZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NhbGVuZGFyL0NhbGVuZGFyRnJhbWUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42ZjA0OTA3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NhbGVuZGFyL0NhbGVuZGFyRnJhbWUuamF2YQpAQCAtMCwwICsxLDQzNiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTctMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NhbGVuZGFyL0NhbGVuZGFyRnJhbWUuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xOSAwNDoxMDoyMyAkIAorICogJFJldmlzaW9uOiAxLjEwICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kZW1vLmNhbGVuZGFyOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LmRlbW8uKjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuSGVicmV3Q2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5CdWRkaGlzdENhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuSmFwYW5lc2VDYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLklzbGFtaWNDYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQ7CisvL2ltcG9ydCBqYXZhLnV0aWwuU2ltcGxlVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5TaW1wbGVUaW1lWm9uZTsKK2ltcG9ydCBqYXZhLmFwcGxldC5BcHBsZXQ7CitpbXBvcnQgamF2YS5hd3QuKjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC4qOworaW1wb3J0IGphdmEubmV0Lio7CitpbXBvcnQgamF2YS5pby4qOworLy9pbXBvcnQgamF2YS50ZXh0LkRhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0OworaW1wb3J0IGphdmEudGV4dC5NZXNzYWdlRm9ybWF0OworLy9pbXBvcnQgamF2YS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CisvL2ltcG9ydCBqYXZhLnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5HcmVnb3JpYW5DYWxlbmRhcjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLlJlc291cmNlQnVuZGxlOworLy9pbXBvcnQgamF2YS51dGlsLlRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LmRlbW8uaW1wbC4qOworCisvKioKKyAqIEEgRnJhbWUgaXMgYSB0b3AtbGV2ZWwgd2luZG93IHdpdGggYSB0aXRsZS4gVGhlIGRlZmF1bHQgbGF5b3V0IGZvciBhIGZyYW1lCisgKiBpcyBCb3JkZXJMYXlvdXQuICBUaGUgQ2FsZW5kYXJGcmFtZSBjbGFzcyBkZWZpbmVzIHRoZSB3aW5kb3cgbGF5b3V0IG9mCisgKiBDYWxlbmRhckRlbW8uCisgKi8KK2NsYXNzIENhbGVuZGFyRnJhbWUgZXh0ZW5kcyBGcmFtZQoreworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUcgPSBmYWxzZTsKKworICAgIHByaXZhdGUgRGVtb0FwcGxldCBhcHBsZXQ7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IENhbGVuZGFyRnJhbWUgdGhhdCBpcyBpbml0aWFsbHkgaW52aXNpYmxlLgorICAgICAqLworICAgIHB1YmxpYyBDYWxlbmRhckZyYW1lKERlbW9BcHBsZXQgbXlBcHBsZXQpCisgICAgeworICAgICAgICBzdXBlcigiQ2FsZW5kYXIgRGVtbyIpOworICAgICAgICB0aGlzLmFwcGxldCA9IG15QXBwbGV0OworICAgICAgICBpbml0KCk7CisKKyAgICAgICAgLy8gV2hlbiB0aGUgd2luZG93IGlzIGNsb3NlZCwgd2Ugd2FudCB0byBzaHV0IGRvd24gdGhlIGFwcGxldCBvciBhcHBsaWNhdGlvbgorICAgICAgICBhZGRXaW5kb3dMaXN0ZW5lcigKKyAgICAgICAgICAgIG5ldyBXaW5kb3dBZGFwdGVyKCkgeworICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgZSkgeworICAgICAgICAgICAgICAgICAgICBzZXRWaXNpYmxlKGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgZGlzcG9zZSgpOworCisgICAgICAgICAgICAgICAgICAgIGlmIChhcHBsZXQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGV0LmRlbW9DbG9zZWQoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIFN5c3RlbS5leGl0KDApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gKTsKKyAgICB9CisKKyAgICBwcml2YXRlIENob2ljZSAgICAgICAgICBkaXNwbGF5TWVudTsKKyAgICBwcml2YXRlIExvY2FsZVtdICAgICAgICBsb2NhbGVzID0gRGVtb1V0aWxpdHkuZ2V0RzdMb2NhbGVzKCk7CisKKyAgICBwcml2YXRlIENhbGVuZGFyICAgICAgICBjYWxlbmRhcnNbXSAgID0gbmV3IENhbGVuZGFyWzJdOworICAgIHByaXZhdGUgQ2hvaWNlICAgICAgICAgIGNhbE1lbnVbXSAgICAgPSBuZXcgQ2hvaWNlWzJdOworICAgIHByaXZhdGUgQ29sb3JlZExhYmVsICAgIG1vbnRoTGFiZWxbXSAgPSBuZXcgQ29sb3JlZExhYmVsWzJdOworICAgIHByaXZhdGUgRGF0ZUZvcm1hdCAgICAgIG1vbnRoRm9ybWF0W10gPSBuZXcgRGF0ZUZvcm1hdFsyXTsKKworICAgIHByaXZhdGUgQnV0dG9uICAgICAgICAgIHByZXZZZWFyOworICAgIHByaXZhdGUgQnV0dG9uICAgICAgICAgIHByZXZNb250aDsKKyAgICBwcml2YXRlIEJ1dHRvbiAgICAgICAgICBnb3RvVG9kYXk7CisgICAgcHJpdmF0ZSBCdXR0b24gICAgICAgICAgbmV4dE1vbnRoOworICAgIHByaXZhdGUgQnV0dG9uICAgICAgICAgIG5leHRZZWFyOworICAgIHByaXZhdGUgQ2FsZW5kYXJQYW5lbCAgIGNhbGVuZGFyUGFuZWw7CisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGFkZChDb250YWluZXIgY29udGFpbmVyLCBDb21wb25lbnQgY29tcG9uZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdyaWRCYWdMYXlvdXQgZywgR3JpZEJhZ0NvbnN0cmFpbnRzIGMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGdyaWR3aWR0aCwgaW50IHdlaWdodHgpCisgICAgeworICAgICAgICBjLmdyaWR3aWR0aCA9IGdyaWR3aWR0aDsKKyAgICAgICAgYy53ZWlnaHR4ID0gd2VpZ2h0eDsKKyAgICAgICAgZy5zZXRDb25zdHJhaW50cyhjb21wb25lbnQsIGMpOworICAgICAgICBjb250YWluZXIuYWRkKGNvbXBvbmVudCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZXMgdGhlIGFwcGxldC4gWW91IG5ldmVyIG5lZWQgdG8gY2FsbCB0aGlzIGRpcmVjdGx5LCBpdAorICAgICAqIGlzIGNhbGxlZCBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBzeXN0ZW0gb25jZSB0aGUgYXBwbGV0IGlzIGNyZWF0ZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgaW5pdCgpIHsKKyAgICAgICAgc2V0QmFja2dyb3VuZChEZW1vVXRpbGl0eS5iZ0NvbG9yKTsKKyAgICAgICAgc2V0TGF5b3V0KG5ldyBCb3JkZXJMYXlvdXQoMTAsMTApKTsKKworICAgICAgICBQYW5lbCB0b3BQYW5lbCA9IG5ldyBQYW5lbCgpOworICAgICAgICBHcmlkQmFnTGF5b3V0IGcgPSBuZXcgR3JpZEJhZ0xheW91dCgpOworICAgICAgICB0b3BQYW5lbC5zZXRMYXlvdXQoZyk7CisgICAgICAgIEdyaWRCYWdDb25zdHJhaW50cyBjID0gbmV3IEdyaWRCYWdDb25zdHJhaW50cygpOworICAgICAgICBjLmZpbGwgPSBHcmlkQmFnQ29uc3RyYWludHMuSE9SSVpPTlRBTDsKKworICAgICAgICAvLyBCdWlsZCB0aGUgdHdvIG1lbnVzIGZvciBzZWxlY3Rpbmcgd2hpY2ggY2FsZW5kYXIgaXMgZGlzcGxheWVkLAorICAgICAgICAvLyBwbHVzIHRoZSBtb250aC95ZWFyIGxhYmVsIGZvciBlYWNoIGNhbGVuZGFyCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMjsgaSsrKSB7CisgICAgICAgICAgICBjYWxNZW51W2ldID0gbmV3IENob2ljZSgpOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBDQUxFTkRBUlMubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgICAgICBjYWxNZW51W2ldLmFkZEl0ZW0oQ0FMRU5EQVJTW2pdLm5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FsTWVudVtpXS5zZXRCYWNrZ3JvdW5kKERlbW9VdGlsaXR5LmNob2ljZUNvbG9yKTsKKyAgICAgICAgICAgIGNhbE1lbnVbaV0uc2VsZWN0KGkpOworICAgICAgICAgICAgY2FsTWVudVtpXS5hZGRJdGVtTGlzdGVuZXIobmV3IENhbE1lbnVMaXN0ZW5lcigpKTsKKworICAgICAgICAgICAgLy8gTGFiZWwgZm9yIHRoZSBjdXJyZW50IG1vbnRoIG5hbWUKKyAgICAgICAgICAgIG1vbnRoTGFiZWxbaV0gPSBuZXcgQ29sb3JlZExhYmVsKCIiLCBDT0xPUlNbaV0pOworICAgICAgICAgICAgbW9udGhMYWJlbFtpXS5zZXRGb250KERlbW9VdGlsaXR5LnRpdGxlRm9udCk7CisKKyAgICAgICAgICAgIC8vIEFuZCB0aGUgZGVmYXVsdCBjYWxlbmRhciB0byB1c2UgZm9yIHRoaXMgc2xvdAorICAgICAgICAgICAgY2FsZW5kYXJzW2ldID0gQ0FMRU5EQVJTW2ldLmNhbGVuZGFyOworCisgICAgICAgICAgICBhZGQodG9wUGFuZWwsIGNhbE1lbnVbaV0sIGcsIGMsIDUsIDApOworICAgICAgICAgICAgYWRkKHRvcFBhbmVsLCBtb250aExhYmVsW2ldLCBnLCBjLCBHcmlkQmFnQ29uc3RyYWludHMuUkVNQUlOREVSLCAxKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE5vdyBhZGQgdGhlIG5leHQvcHJldmlvdXMgeWVhci9tb250aCBidXR0b25zOgorICAgICAgICBwcmV2WWVhciA9IG5ldyBCdXR0b24oIjw8Iik7CisgICAgICAgIHByZXZZZWFyLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBBZGRBY3Rpb24oQ2FsZW5kYXIuWUVBUiwgLTEpKTsKKworICAgICAgICBwcmV2TW9udGggPSBuZXcgQnV0dG9uKCI8Iik7CisgICAgICAgIHByZXZNb250aC5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgQWRkQWN0aW9uKENhbGVuZGFyLk1PTlRILCAtMSkpOworCisgICAgICAgIGdvdG9Ub2RheSA9IG5ldyBCdXR0b24oIlRvZGF5Iik7CisgICAgICAgIGdvdG9Ub2RheS5hZGRBY3Rpb25MaXN0ZW5lciggbmV3IEFjdGlvbkxpc3RlbmVyKCkKKyAgICAgICAgeworICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBjYWxlbmRhclBhbmVsLnNldERhdGUoIG5ldyBEYXRlKCkgKTsKKyAgICAgICAgICAgICAgICB1cGRhdGVNb250aE5hbWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSApOworCisgICAgICAgIG5leHRNb250aCA9IG5ldyBCdXR0b24oIj4iKTsKKyAgICAgICAgbmV4dE1vbnRoLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBBZGRBY3Rpb24oQ2FsZW5kYXIuTU9OVEgsIDEpKTsKKworICAgICAgICBuZXh0WWVhciA9IG5ldyBCdXR0b24oIj4+Iik7CisgICAgICAgIG5leHRZZWFyLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBBZGRBY3Rpb24oQ2FsZW5kYXIuWUVBUiwgMSkpOworCisgICAgICAgIGMuZmlsbCA9IEdyaWRCYWdDb25zdHJhaW50cy5OT05FOworICAgICAgICBhZGQodG9wUGFuZWwsIHByZXZZZWFyLCAgZywgYywgMSwgMCk7CisgICAgICAgIGFkZCh0b3BQYW5lbCwgcHJldk1vbnRoLCBnLCBjLCAxLCAwKTsKKyAgICAgICAgYWRkKHRvcFBhbmVsLCBnb3RvVG9kYXksIGcsIGMsIDEsIDApOworICAgICAgICBhZGQodG9wUGFuZWwsIG5leHRNb250aCwgZywgYywgMSwgMCk7CisgICAgICAgIGFkZCh0b3BQYW5lbCwgbmV4dFllYXIsICBnLCBjLCAxLCAwKTsKKworICAgICAgICAvLyBOb3cgYWRkIHRoZSBtZW51IGZvciBzZWxlY3RpbmcgdGhlIGRpc3BsYXkgbGFuZ3VhZ2UKKyAgICAgICAgUGFuZWwgZGlzcGxheVBhbmVsID0gbmV3IFBhbmVsKCk7CisgICAgICAgIHsKKyAgICAgICAgICAgIGRpc3BsYXlNZW51ID0gbmV3IENob2ljZSgpOworICAgICAgICAgICAgTG9jYWxlIGRlZmF1bHRMb2NhbGUgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICAgICAgaW50IGJlc3RNYXRjaCA9IC0xLCB0aGlzTWF0Y2ggPSAtMTsKKyAgICAgICAgICAgIGludCBzZWxlY3RNZSA9IDA7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChpID4gMCAmJgorICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlc1tpXS5nZXRMYW5ndWFnZSgpLmVxdWFscyhsb2NhbGVzW2ktMV0uZ2V0TGFuZ3VhZ2UoKSkgfHwKKyAgICAgICAgICAgICAgICAgICAgaSA8IGxvY2FsZXMubGVuZ3RoIC0gMSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlc1tpXS5nZXRMYW5ndWFnZSgpLmVxdWFscyhsb2NhbGVzW2krMV0uZ2V0TGFuZ3VhZ2UoKSkpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TWVudS5hZGRJdGVtKCBsb2NhbGVzW2ldLmdldERpc3BsYXlOYW1lKCkgKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TWVudS5hZGRJdGVtKCBsb2NhbGVzW2ldLmdldERpc3BsYXlMYW5ndWFnZSgpKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICB0aGlzTWF0Y2ggPSBEZW1vVXRpbGl0eS5jb21wYXJlTG9jYWxlcyhsb2NhbGVzW2ldLCBkZWZhdWx0TG9jYWxlKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAodGhpc01hdGNoID49IGJlc3RNYXRjaCkgeworICAgICAgICAgICAgICAgICAgICBiZXN0TWF0Y2ggPSB0aGlzTWF0Y2g7CisgICAgICAgICAgICAgICAgICAgIHNlbGVjdE1lID0gaTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGRpc3BsYXlNZW51LnNldEJhY2tncm91bmQoRGVtb1V0aWxpdHkuY2hvaWNlQ29sb3IpOworICAgICAgICAgICAgZGlzcGxheU1lbnUuc2VsZWN0KHNlbGVjdE1lKTsKKworICAgICAgICAgICAgZGlzcGxheU1lbnUuYWRkSXRlbUxpc3RlbmVyKCBuZXcgSXRlbUxpc3RlbmVyKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgaXRlbVN0YXRlQ2hhbmdlZChJdGVtRXZlbnQgZSkgeworICAgICAgICAgICAgICAgICAgICBMb2NhbGUgbG9jID0gbG9jYWxlc1tkaXNwbGF5TWVudS5nZXRTZWxlY3RlZEluZGV4KCldOworICAgICAgICAgICAgICAgICAgICBjYWxlbmRhclBhbmVsLnNldExvY2FsZSggbG9jICk7CisgICAgICAgICAgICAgICAgICAgIG1vbnRoRm9ybWF0WzBdID0gbW9udGhGb3JtYXRbMV0gPSBudWxsOworICAgICAgICAgICAgICAgICAgICB1cGRhdGVNb250aE5hbWUoKTsKKyAgICAgICAgICAgICAgICAgICAgcmVwYWludCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gKTsKKworICAgICAgICAgICAgTGFiZWwgbDEgPSBuZXcgTGFiZWwoIkRpc3BsYXkgTGFuZ3VhZ2U6IiwgTGFiZWwuUklHSFQpOworICAgICAgICAgICAgbDEuc2V0Rm9udChEZW1vVXRpbGl0eS5sYWJlbEZvbnQpOworCisgICAgICAgICAgICBkaXNwbGF5UGFuZWwuc2V0TGF5b3V0KG5ldyBGbG93TGF5b3V0KCkpOworICAgICAgICAgICAgZGlzcGxheVBhbmVsLmFkZChsMSk7CisgICAgICAgICAgICBkaXNwbGF5UGFuZWwuYWRkKGRpc3BsYXlNZW51KTsKKworICAgICAgICB9CisgICAgICAgIGMuZmlsbCA9IEdyaWRCYWdDb25zdHJhaW50cy5OT05FOworICAgICAgICBjLmFuY2hvciA9IEdyaWRCYWdDb25zdHJhaW50cy5FQVNUOworCisgICAgICAgIGFkZCh0b3BQYW5lbCwgZGlzcGxheVBhbmVsLCBnLCBjLCBHcmlkQmFnQ29uc3RyYWludHMuUkVNQUlOREVSLCAwKTsKKworICAgICAgICAvLyBUaGUgdGl0bGUsIGJ1dHRvbnMsIGV0Yy4gZ28gaW4gYSBwYW5lbCBhdCB0aGUgdG9wIG9mIHRoZSB3aW5kb3cKKyAgICAgICAgYWRkKCJOb3J0aCIsIHRvcFBhbmVsKTsKKworICAgICAgICAvLyBUaGUgY29weXJpZ2h0IG5vdGljZSBnb2VzIGF0IHRoZSBib3R0b20gb2YgdGhlIHdpbmRvdworICAgICAgICBMYWJlbCBjb3B5cmlnaHQgPSBuZXcgTGFiZWwoRGVtb1V0aWxpdHkuY29weXJpZ2h0MSwgTGFiZWwuTEVGVCk7CisgICAgICAgIGNvcHlyaWdodC5zZXRGb250KERlbW9VdGlsaXR5LmNyZWRpdEZvbnQpOworICAgICAgICBhZGQoIlNvdXRoIiwgY29weXJpZ2h0KTsKKworICAgICAgICAvLyBOb3cgY3JlYXRlIHRoZSBiaWcgY2FsZW5kYXIgcGFuZWwgYW5kIHN0aWNrIGl0IGluIHRoZSBtaWRkbGUKKyAgICAgICAgY2FsZW5kYXJQYW5lbCA9IG5ldyBDYWxlbmRhclBhbmVsKCBsb2NhbGVzW2Rpc3BsYXlNZW51LmdldFNlbGVjdGVkSW5kZXgoKV0gKTsKKyAgICAgICAgYWRkKCJDZW50ZXIiLCBjYWxlbmRhclBhbmVsKTsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDI7IGkrKykgeworICAgICAgICAgICAgY2FsZW5kYXJQYW5lbC5zZXRDYWxlbmRhcihpLCBjYWxlbmRhcnNbaV0pOworICAgICAgICAgICAgY2FsZW5kYXJQYW5lbC5zZXRDb2xvcihpLCBDT0xPUlNbaV0pOworICAgICAgICB9CisKKyAgICAgICAgdXBkYXRlTW9udGhOYW1lKCk7CisgICAgfTsKKworCisgICAgcHJpdmF0ZSB2b2lkIHVwZGF0ZU1vbnRoTmFtZSgpCisgICAgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAyOyBpKyspIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBpZiAobW9udGhGb3JtYXRbaV0gPT0gbnVsbCkgeyAgICAgLy8gVE9ETzogb3B0aW1pemUKKyAgICAgICAgICAgICAgICAgICAgICAgIERhdGVGb3JtYXQgZiA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFyc1tpXSwgRGF0ZUZvcm1hdC5NRURJVU0sIC0xLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlc1tkaXNwbGF5TWVudS5nZXRTZWxlY3RlZEluZGV4KCldKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmIGluc3RhbmNlb2YgY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0IGYxID0gKGNvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdCkgZjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmMS5hcHBseVBhdHRlcm4oIk1NTU0sIHl5eXkgRyIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYxLnNldFRpbWVab25lKG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiVVRDIikpOworLy9oZXkge2FsfSAtCisvLyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZiBpbnN0YW5jZW9mIGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0KSB7CisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLnRleHQuU2ltcGxlRGF0ZUZvcm1hdCBmMSA9IChqYXZhLnRleHQuU2ltcGxlRGF0ZUZvcm1hdCkgZjsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYxLmFwcGx5UGF0dGVybigiTU1NTSwgeXl5eSBHIik7CisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmMS5zZXRUaW1lWm9uZShuZXcgU2ltcGxlVGltZVpvbmUoMCwgIlVUQyIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRoRm9ybWF0W2ldID0gZjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gY2F0Y2ggKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIC8vaGV5IHtsd30gLSB0aGVyZSdzIHNvbWV0aGluZyB3cm9uZyBpbiB0aGlzIHJvdXRpbmUgdGhhdCBjdWFzZXMgZXhjZXB0aW9ucy4KKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGUpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIG1vbnRoTGFiZWxbaV0uc2V0VGV4dCggbW9udGhGb3JtYXRbaV0uZm9ybWF0KCBjYWxlbmRhclBhbmVsLmZpcnN0T2ZNb250aCgpICkpOworICAgICAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENhbE1lbnVMaXN0ZW5lciByZXNwb25kcyB0byBldmVudHMgaW4gdGhlIHR3byBwb3B1cCBtZW51cyB0aGF0IHNlbGVjdAorICAgICAqIHRoZSBjYWxlbmRhciBzeXN0ZW1zIHRvIGJlIHVzZWQgaW4gdGhlIGRpc3BsYXkuICBJdCBmaWd1cmVzIG91dCB3aGljaAorICAgICAqIG9mIHRoZSB0d28gbWVudXMgdGhlIGV2ZW50IG9jY3VycmVkIGluIGFuZCB1cGRhdGVzIHRoZSBjb3JyZXNwb25kaW5nCisgICAgICogZWxlbWVudCBvZiB0aGUgY2FsZW5kYXJzW10gYXJyYXkgdG8gbWF0Y2ggdGhlIG5ldyBzZWxlY3Rpb24uCisgICAgICovCisgICAgcHJpdmF0ZSBjbGFzcyBDYWxNZW51TGlzdGVuZXIgaW1wbGVtZW50cyBJdGVtTGlzdGVuZXIKKyAgICB7CisgICAgICAgICBwdWJsaWMgdm9pZCBpdGVtU3RhdGVDaGFuZ2VkKEl0ZW1FdmVudCBlKQorICAgICAgICAgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjYWxNZW51Lmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmIChlLmdldEl0ZW1TZWxlY3RhYmxlKCkgPT0gY2FsTWVudVtpXSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIC8vIFdlIGZvdW5kIHRoZSBtZW51IHRoYXQgdGhlIGV2ZW50IGhhcHBlbmVkIGluLgorICAgICAgICAgICAgICAgICAgICAvLyBGaWd1cmUgb3V0IHdoaWNoIG5ldyBjYWxlbmRhciB0aGV5IHNlbGVjdGVkLgorICAgICAgICAgICAgICAgICAgICBDYWxlbmRhciBuZXdDYWwgPSBDQUxFTkRBUlNbIGNhbE1lbnVbaV0uZ2V0U2VsZWN0ZWRJbmRleCgpIF0uY2FsZW5kYXI7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5ld0NhbCAhPSBjYWxlbmRhcnNbaV0pCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIGFueSBvZiB0aGUgb3RoZXIgbWVudXMgYXJlIHNldCB0byB0aGUgc2FtZSBuZXcgY2FsZW5kYXIKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlJ3JlIGFib3V0IHRvIHVzZSBmb3IgdGhpcyBtZW51LCBzZXQgdGhlbSB0byB0aGUgY3VycmVudAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2FsZW5kYXIgZnJvbSAqdGhpcyogbWVudSBzbyB3ZSB3b24ndCBoYXZlIHR3byB0aGUgc2FtZQorICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBjYWxlbmRhcnMubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaiAhPSBpICYmIGNhbGVuZGFyc1tqXSA9PSBuZXdDYWwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJzW2pdID0gY2FsZW5kYXJzW2ldOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxlbmRhclBhbmVsLnNldENhbGVuZGFyKGosIGNhbGVuZGFyc1tqXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRoRm9ybWF0W2pdID0gbnVsbDsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IENBTEVOREFSUy5sZW5ndGg7IGsrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNhbGVuZGFyc1tqXSA9PSBDQUxFTkRBUlNba10uY2FsZW5kYXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxNZW51W2pdLnNlbGVjdChrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5vdyB1cGRhdGUgdGhpcyBtZW51IHRvIHVzZSB0aGUgbmV3IGNhbGVuZGFyIHRoZSB1c2VyIHNlbGVjdGVkCisgICAgICAgICAgICAgICAgICAgICAgICBjYWxlbmRhcnNbaV0gPSBuZXdDYWw7CisgICAgICAgICAgICAgICAgICAgICAgICBjYWxlbmRhclBhbmVsLnNldENhbGVuZGFyKGksIG5ld0NhbCk7CisgICAgICAgICAgICAgICAgICAgICAgICBtb250aEZvcm1hdFtpXSA9IG51bGw7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZU1vbnRoTmFtZSgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICB9OworCisgICAgLyoqCisgICAgICogQWRkQWN0aW9uIGhhbmRsZXMgdGhlIG5leHQvcHJldmlvdXMgeWVhci9tb250aCBidXR0b25zLi4uCisgICAgICovCisgICAgcHJpdmF0ZSBjbGFzcyBBZGRBY3Rpb24gaW1wbGVtZW50cyBBY3Rpb25MaXN0ZW5lciB7CisgICAgICAgIEFkZEFjdGlvbihpbnQgZmllbGQsIGludCBhbW91bnQpIHsKKyAgICAgICAgICAgIHRoaXMuZmllbGQgPSBmaWVsZDsKKyAgICAgICAgICAgIHRoaXMuYW1vdW50ID0gYW1vdW50OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgIGNhbGVuZGFyUGFuZWwuYWRkKGZpZWxkLCBhbW91bnQpOworICAgICAgICAgICAgdXBkYXRlTW9udGhOYW1lKCk7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIGludCBmaWVsZCwgYW1vdW50OworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbG9yZWRMYWJlbCBpcyBzaW1pbGFyIHRvIGphdmEuYXd0LkxhYmVsLCB3aXRoIHR3byBkaWZmZXJlbmNlczoKKyAgICAgKgorICAgICAqICAtIFlvdSBjYW4gc2V0IGl0cyB0ZXh0IGNvbG9yCisgICAgICoKKyAgICAgKiAgLSBJdCBkcmF3cyB0ZXh0IHVzaW5nIGRyYXdTdHJpbmcgcmF0aGVyIHRoYW4gdXNpbmcgYSBob3N0LXNwZWNpZmljCisgICAgICogICAgIlBlZXIiIG9iamVjdCBsaWtlIEFXVCBkb2VzLiAgT24gMS4yLCB1c2luZyBkcmF3U3RyaW5nIGdpdmVzCisgICAgICogICAgdXMgQmlkaSByZW9yZGVyaW5nIGZvciBmcmVlLgorICAgICAqLworICAgIHN0YXRpYyBwcml2YXRlIGNsYXNzIENvbG9yZWRMYWJlbCBleHRlbmRzIENvbXBvbmVudCB7CisgICAgICAgIHB1YmxpYyBDb2xvcmVkTGFiZWwoU3RyaW5nIGxhYmVsKSB7CisgICAgICAgICAgICB0ZXh0ID0gbGFiZWw7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgQ29sb3JlZExhYmVsKFN0cmluZyBsYWJlbCwgQ29sb3IgYykgeworICAgICAgICAgICAgdGV4dCA9IGxhYmVsOworICAgICAgICAgICAgY29sb3IgPSBjOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgc2V0VGV4dChTdHJpbmcgbGFiZWwpIHsKKyAgICAgICAgICAgIHRleHQgPSBsYWJlbDsKKyAgICAgICAgICAgIHJlcGFpbnQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHNldEZvbnQoRm9udCBmKSB7CisgICAgICAgICAgICBmb250ID0gZjsKKyAgICAgICAgICAgIHJlcGFpbnQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHBhaW50KEdyYXBoaWNzIGcpIHsKKyAgICAgICAgICAgIEZvbnRNZXRyaWNzIGZtID0gZy5nZXRGb250TWV0cmljcyhmb250KTsKKworICAgICAgICAgICAgUmVjdGFuZ2xlIGJvdW5kcyA9IGdldEJvdW5kcygpOworCisgICAgICAgICAgICBnLnNldENvbG9yKGNvbG9yKTsKKyAgICAgICAgICAgIGcuc2V0Rm9udChmb250KTsKKyAgICAgICAgICAgIGcuZHJhd1N0cmluZyh0ZXh0LCBmbS5zdHJpbmdXaWR0aCgiXHUwMGEwIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgYm91bmRzLmhlaWdodC8yICsgZm0uZ2V0SGVpZ2h0KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAtIGZtLmdldEFzY2VudCgpICsgZm0uZ2V0TGVhZGluZygpLzIpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIERpbWVuc2lvbiBnZXRQcmVmZXJyZWRTaXplKCkgeworICAgICAgICAgICAgcmV0dXJuIGdldE1pbmltdW1TaXplKCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgRGltZW5zaW9uIGdldE1pbmltdW1TaXplKCkgeworICAgICAgICAgICAgRm9udE1ldHJpY3MgZm0gPSBnZXRGb250TWV0cmljcyhmb250KTsKKworICAgICAgICAgICAgcmV0dXJuIG5ldyBEaW1lbnNpb24oIGZtLnN0cmluZ1dpZHRoKHRleHQpICsgMipmbS5zdHJpbmdXaWR0aCgiXHUwMGEwIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm0uZ2V0SGVpZ2h0KCkgKyBmbS5nZXRMZWFkaW5nKCkqMik7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgdGV4dDsKKyAgICAgICAgQ29sb3IgY29sb3IgPSBDb2xvci5ibGFjazsKKyAgICAgICAgRm9udCBmb250ID0gRGVtb1V0aWxpdHkubGFiZWxGb250OworICAgIH0KKworICAgIC8qKgorICAgICAqIFByaW50IG91dCB0aGUgZXJyb3IgbWVzc2FnZSB3aGlsZSBkZWJ1Z2dpbmcgdGhpcyBwcm9ncmFtLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGVycm9yVGV4dChTdHJpbmcgcykKKyAgICB7CisgICAgICAgIGlmIChERUJVRykKKyAgICAgICAgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHMpOworICAgICAgICB9CisgICAgfQorCisgICAgY2xhc3MgQ2FsZW5kYXJSZWMgeworICAgICAgICBwdWJsaWMgQ2FsZW5kYXJSZWMoU3RyaW5nIG5hbWVTdHIsIENhbGVuZGFyIGNhbCkKKyAgICAgICAgeworICAgICAgICAgICAgbmFtZSA9IG5hbWVTdHI7CisgICAgICAgICAgICBjYWxlbmRhciA9IGNhbDsKKyAgICAgICAgfQorCisgICAgICAgIENhbGVuZGFyICBjYWxlbmRhcjsKKyAgICAgICAgU3RyaW5nICAgICAgICAgICAgICBuYW1lOworICAgIH07CisKKyAgICBwcml2YXRlIGZpbmFsIENhbGVuZGFyUmVjW10gQ0FMRU5EQVJTID0geworICAgICAgICBuZXcgQ2FsZW5kYXJSZWMoIkdyZWdvcmlhbiBDYWxlbmRhciIsICAgICAgIG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpKSwKKyAgICAgICAgbmV3IENhbGVuZGFyUmVjKCJIZWJyZXcgQ2FsZW5kYXIiLCAgICAgICAgICBuZXcgSGVicmV3Q2FsZW5kYXIoKSksCisgICAgICAgIG5ldyBDYWxlbmRhclJlYygiSXNsYW1pYyBDYWxlbmRhciIsICAgICAgICAgbWFrZUlzbGFtaWMoZmFsc2UpKSwKKyAgICAgICAgbmV3IENhbGVuZGFyUmVjKCJJc2xhbWljIENpdmlsIENhbGVuZGFyICIsICBtYWtlSXNsYW1pYyh0cnVlKSksCisgICAgICAgIG5ldyBDYWxlbmRhclJlYygiQnVkZGhpc3QgQ2FsZW5kYXIiLCAgICAgICAgbmV3IEJ1ZGRoaXN0Q2FsZW5kYXIoKSksCisgICAgICAgIG5ldyBDYWxlbmRhclJlYygiSmFwYW5lc2UgQ2FsZW5kYXIiLCAgICAgICAgbmV3IEphcGFuZXNlQ2FsZW5kYXIoKSksCisgICAgfTsKKworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIENhbGVuZGFyIG1ha2VJc2xhbWljKGJvb2xlYW4gY2l2aWwpIHsKKyAgICAgICAgSXNsYW1pY0NhbGVuZGFyIGNhbCA9IG5ldyBJc2xhbWljQ2FsZW5kYXIoKTsKKyAgICAgICAgY2FsLnNldENpdmlsKGNpdmlsKTsKKyAgICAgICAgcmV0dXJuIGNhbDsKKyAgICB9OworCisgICAgc3RhdGljIGZpbmFsIENvbG9yW10gQ09MT1JTID0geyBDb2xvci5ibHVlLCBDb2xvci5ibGFjayB9OworfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2FsZW5kYXIvQ2FsZW5kYXJQYW5lbC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NhbGVuZGFyL0NhbGVuZGFyUGFuZWwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xZDA1YzU5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NhbGVuZGFyL0NhbGVuZGFyUGFuZWwuamF2YQpAQCAtMCwwICsxLDM3MSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTctMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NhbGVuZGFyL0NhbGVuZGFyUGFuZWwuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xOSAwNDoxMDoyMyAkIAorICogJFJldmlzaW9uOiAxLjkgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRlbW8uY2FsZW5kYXI7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYuZGVtby4qOworCitpbXBvcnQgamF2YS5hcHBsZXQuQXBwbGV0OworaW1wb3J0IGphdmEuYXd0Lio7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuKjsKKy8vaW1wb3J0IGphdmEudXRpbC4qOworaW1wb3J0IGphdmEubmV0Lio7CitpbXBvcnQgamF2YS5pby4qOworCisvL2ltcG9ydCBqYXZhLnRleHQuRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQ7CisvL2ltcG9ydCBqYXZhLnV0aWwuU2ltcGxlVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5TaW1wbGVUaW1lWm9uZTsKKy8vaW1wb3J0IGphdmEudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYuZGVtby5pbXBsLio7CisKK2NsYXNzIENhbGVuZGFyUGFuZWwgZXh0ZW5kcyBDYW52YXMgeworCisgICAgcHVibGljIENhbGVuZGFyUGFuZWwoIExvY2FsZSBsb2NhbGUgKSB7CisgICAgICAgIHNldExvY2FsZShsb2NhbGUpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldExvY2FsZShMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIGlmIChmRGlzcGxheUxvY2FsZSA9PSBudWxsIHx8ICFmRGlzcGxheUxvY2FsZS5lcXVhbHMobG9jYWxlKSkgeworICAgICAgICAgICAgZkRpc3BsYXlMb2NhbGUgPSBsb2NhbGU7CisgICAgICAgICAgICBkaXJ0eSA9IHRydWU7CisKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZkNhbGVuZGFyLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGZDYWxlbmRhcltpXSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGZTeW1ib2xzW2ldID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKGZDYWxlbmRhcltpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkRpc3BsYXlMb2NhbGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN0cmluZyBsYW5nID0gbG9jYWxlLmdldExhbmd1YWdlKCk7CisgICAgICAgICAgICBsZWZ0VG9SaWdodCA9ICEobGFuZy5lcXVhbHMoIml3IikgfHwgbGFuZy5lcXVhbHMoImFyIikpOworCisgICAgICAgICAgICByZXBhaW50KCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXREYXRlKERhdGUgZGF0ZSkgeworICAgICAgICBmU3RhcnRPZk1vbnRoID0gZGF0ZTsKKyAgICAgICAgZGlydHkgPSB0cnVlOworICAgICAgICByZXBhaW50KCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYWRkKGludCBmaWVsZCwgaW50IGRlbHRhKQorICAgIHsKKyAgICAgICAgc3luY2hyb25pemVkKGZDYWxlbmRhcikgeworICAgICAgICAgICAgZkNhbGVuZGFyWzBdLnNldFRpbWUoZlN0YXJ0T2ZNb250aCk7CisgICAgICAgICAgICBmQ2FsZW5kYXJbMF0uYWRkKGZpZWxkLCBkZWx0YSk7CisgICAgICAgICAgICBmU3RhcnRPZk1vbnRoID0gZkNhbGVuZGFyWzBdLmdldFRpbWUoKTsKKyAgICAgICAgfQorICAgICAgICBkaXJ0eSA9IHRydWU7CisgICAgICAgIHJlcGFpbnQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRDb2xvcihpbnQgaW5kZXgsIENvbG9yIGMpIHsKKyAgICAgICAgZkNvbG9yW2luZGV4XSA9IGM7CisgICAgICAgIHJlcGFpbnQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRDYWxlbmRhcihpbnQgaW5kZXgsIENhbGVuZGFyIGMpIHsKKyAgICAgICAgRGF0ZSBkYXRlID0gKGZDYWxlbmRhcltpbmRleF0gPT0gbnVsbCkgPyBuZXcgRGF0ZSgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZkNhbGVuZGFyW2luZGV4XS5nZXRUaW1lKCk7CisKKyAgICAgICAgZkNhbGVuZGFyW2luZGV4XSA9IGM7CisgICAgICAgIGZDYWxlbmRhcltpbmRleF0uc2V0VGltZShkYXRlKTsKKworICAgICAgICBmU3ltYm9sc1tpbmRleF0gPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoYywgZkRpc3BsYXlMb2NhbGUpOworICAgICAgICBkaXJ0eSA9IHRydWU7CisgICAgICAgIHJlcGFpbnQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgQ2FsZW5kYXIgZ2V0Q2FsZW5kYXIoaW50IGluZGV4KSB7CisgICAgICAgIHJldHVybiBmQ2FsZW5kYXJbaW5kZXhdOworICAgIH0KKworICAgIHB1YmxpYyBMb2NhbGUgZ2V0RGlzcGxheUxvY2FsZSgpIHsKKyAgICAgICAgcmV0dXJuIGZEaXNwbGF5TG9jYWxlOworICAgIH0KKworICAgIHB1YmxpYyBEYXRlIGZpcnN0T2ZNb250aCgpIHsKKyAgICAgICAgcmV0dXJuIGZTdGFydE9mTW9udGg7CisgICAgfQorCisgICAgcHJpdmF0ZSBEYXRlIHN0YXJ0T2ZNb250aChEYXRlIGRhdGVJbk1vbnRoKQorICAgIHsKKyAgICAgICAgc3luY2hyb25pemVkKGZDYWxlbmRhcikgeworICAgICAgICAgICAgZkNhbGVuZGFyWzBdLnNldFRpbWUoZGF0ZUluTW9udGgpOworCisgICAgICAgICAgICBpbnQgZXJhID0gZkNhbGVuZGFyWzBdLmdldChDYWxlbmRhci5FUkEpOworICAgICAgICAgICAgaW50IHllYXIgPSBmQ2FsZW5kYXJbMF0uZ2V0KENhbGVuZGFyLllFQVIpOworICAgICAgICAgICAgaW50IG1vbnRoID0gZkNhbGVuZGFyWzBdLmdldChDYWxlbmRhci5NT05USCk7CisKKyAgICAgICAgICAgIGZDYWxlbmRhclswXS5jbGVhcigpOworICAgICAgICAgICAgZkNhbGVuZGFyWzBdLnNldChDYWxlbmRhci5FUkEsIGVyYSk7CisgICAgICAgICAgICBmQ2FsZW5kYXJbMF0uc2V0KENhbGVuZGFyLllFQVIsIHllYXIpOworICAgICAgICAgICAgZkNhbGVuZGFyWzBdLnNldChDYWxlbmRhci5NT05USCwgbW9udGgpOworICAgICAgICAgICAgZkNhbGVuZGFyWzBdLnNldChDYWxlbmRhci5EQVRFLCAxKTsKKworICAgICAgICAgICAgcmV0dXJuIGZDYWxlbmRhclswXS5nZXRUaW1lKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgY2FsY3VsYXRlKCkKKyAgICB7CisgICAgICAgIC8vCisgICAgICAgIC8vIEFzIGEgd29ya2Fyb3VuZCBmb3IgSkRLIDEuMS4zIGFuZCBiZWxvdywgd2hlcmUgQ2FsZW5kYXJzIGFuZCB0aW1lCisgICAgICAgIC8vIHpvbmVzIGFyZSBhIGJpdCBnb29meSwgYWx3YXlzIHNldCBteSBjYWxlbmRhcidzIHRpbWUgem9uZSB0byBVVEMuCisgICAgICAgIC8vIFlvdSB3b3VsZCB0aGluayBJIHdvdWxkIHdhbnQgdG8gZG8gdGhpcyBpbiB0aGUgInNldCIgZnVuY3Rpb24gYWJvdmUsCisgICAgICAgIC8vIGJ1dCBpZiBJIGRvIHRoYXQsIHRoZSBwcm9ncmFtIGhhbmdzIHdoZW4gdGhpcyBjbGFzcyBpcyBsb2FkZWQsCisgICAgICAgIC8vIHBlcmhhcHMgZHVlIHRvIHNvbWUgc29ydCBvZiBzdGF0aWMgaW5pdGlhbGl6YXRpb24gb3JkZXJpbmcgcHJvYmxlbS4KKyAgICAgICAgLy8gU28gSSBkbyBpdCBoZXJlIGluc3RlYWQuCisgICAgICAgIC8vCisgICAgICAgIGZDYWxlbmRhclswXS5zZXRUaW1lWm9uZShuZXcgU2ltcGxlVGltZVpvbmUoMCwgIlVUQyIpKTsKKworICAgICAgICBDYWxlbmRhciBjID0gKENhbGVuZGFyKWZDYWxlbmRhclswXS5jbG9uZSgpOyAvLyBUZW1wb3JhcnkgY29weQorCisgICAgICAgIGZTdGFydE9mTW9udGggPSBzdGFydE9mTW9udGgoZlN0YXJ0T2ZNb250aCk7CisKKyAgICAgICAgLy8gU3Rhc2ggYXdheSBhIGZldyB1c2VmdWwgY29uc3RhbnRzIGZvciB0aGlzIGNhbGVuZGFyIGFuZCBkaXNwbGF5CisgICAgICAgIG1pbkRheSA9IGMuZ2V0TWluaW11bShDYWxlbmRhci5EQVlfT0ZfV0VFSyk7CisgICAgICAgIGRheXNJbldlZWsgPSBjLmdldE1heGltdW0oQ2FsZW5kYXIuREFZX09GX1dFRUspIC0gbWluRGF5ICsgMTsKKworICAgICAgICBmaXJzdERheU9mV2VlayA9IENhbGVuZGFyLmdldEluc3RhbmNlKGZEaXNwbGF5TG9jYWxlKS5nZXRGaXJzdERheU9mV2VlaygpOworCisgICAgICAgIC8vIFN0YXNoIGF3YXkgYSBEYXRlIGZvciB0aGUgc3RhcnQgb2YgdGhpcyBtb250aAorCisgICAgICAgIC8vIEZpbmQgdGhlIGRheSBvZiB3ZWVrIG9mIHRoZSBmaXJzdCBkYXkgaW4gdGhpcyBtb250aAorICAgICAgICBjLnNldFRpbWUoZlN0YXJ0T2ZNb250aCk7CisgICAgICAgIGZpcnN0RGF5SW5Nb250aCA9IGMuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKTsKKyAgICAgICAgaW50IGZpcnN0V2VlayA9IGMuZ2V0KENhbGVuZGFyLldFRUtfT0ZfTU9OVEgpOworCisgICAgICAgIC8vIE5vdyBmaW5kIHRoZSAjIG9mIGRheXMgaW4gdGhlIG1vbnRoCisgICAgICAgIGMucm9sbChDYWxlbmRhci5EQVRFLCBmYWxzZSk7CisgICAgICAgIGRheXNJbk1vbnRoID0gYy5nZXQoQ2FsZW5kYXIuREFURSk7CisKKyAgICAgICAgLy8gRmluYWxseSwgZmluZCB0aGUgZW5kIG9mIHRoZSBtb250aCwgaS5lLiB0aGUgc3RhcnQgb2YgdGhlIG5leHQgb25lCisgICAgICAgIGMucm9sbChDYWxlbmRhci5EQVRFLCB0cnVlKTsKKyAgICAgICAgYy5hZGQoQ2FsZW5kYXIuTU9OVEgsIDEpOworICAgICAgICBjLmdldFRpbWUoKTsgICAgICAgIC8vIEpESyAxLjEuMiBidWcgd29ya2Fyb3VuZAorICAgICAgICBjLmFkZChDYWxlbmRhci5TRUNPTkQsIC0xKTsKKyAgICAgICAgRGF0ZSBlbmRPZk1vbnRoID0gYy5nZXRUaW1lKCk7CisgICAgICAgIGVuZE9mTW9udGggPSBudWxsOworICAgICAgICBpbnQgbGFzdFdlZWsgPSBjLmdldChDYWxlbmRhci5XRUVLX09GX01PTlRIKTsKKworICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIG51bWJlciBvZiBmdWxsIG9yIHBhcnRpYWwgd2Vla3MgaW4gdGhpcyBtb250aC4KKyAgICAgICAgbnVtV2Vla3MgPSBsYXN0V2VlayAtIGZpcnN0V2VlayArIDE7CisKKyAgICAgICAgZGlydHkgPSBmYWxzZTsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgaW50IFhJTlNFVCA9IDQ7CisgICAgc3RhdGljIGZpbmFsIGludCBZSU5TRVQgPSAyOworCisgICAgLyoKKyAgICAgKiBDb252ZXJ0IGZyb20gdGhlIGRheSBudW1iZXIgd2l0aGluIGEgbW9udGggKDEtYmFzZWQpCisgICAgICogdG8gdGhlIGNlbGwgY29vcmRpbmF0ZXMgb24gdGhlIGNhbGVuZGFyICgwLWJhc2VkKQorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBkYXRlVG9DZWxsKGludCBkYXRlLCBQb2ludCBwb3MpCisgICAgeworICAgICAgICBpbnQgY2VsbCA9IChkYXRlICsgZmlyc3REYXlJbk1vbnRoIC0gZmlyc3REYXlPZldlZWsgLSBtaW5EYXkpOworICAgICAgICBpZiAoZmlyc3REYXlJbk1vbnRoIDwgZmlyc3REYXlPZldlZWspIHsKKyAgICAgICAgICAgIGNlbGwgKz0gZGF5c0luV2VlazsKKyAgICAgICAgfQorCisgICAgICAgIHBvcy54ID0gY2VsbCAlIGRheXNJbldlZWs7CisgICAgICAgIHBvcy55ID0gY2VsbCAvIGRheXNJbldlZWs7CisgICAgfQorICAgIHByaXZhdGUgUG9pbnQgZGF0ZVRvQ2VsbChpbnQgZGF0ZSkgeworICAgICAgICBQb2ludCBwID0gbmV3IFBvaW50KDAsMCk7CisgICAgICAgIGRhdGVUb0NlbGwoZGF0ZSwgcCk7CisgICAgICAgIHJldHVybiBwOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHBhaW50KEdyYXBoaWNzIGcpIHsKKworICAgICAgICBpZiAoZGlydHkpIHsKKyAgICAgICAgICAgIGNhbGN1bGF0ZSgpOworICAgICAgICB9CisKKyAgICAgICAgUG9pbnQgY2VsbFBvcyA9IG5ldyBQb2ludCgwLDApOyAgICAgLy8gVGVtcG9yYXJ5IHZhcmlhYmxlCisgICAgICAgIERpbWVuc2lvbiBkID0gdGhpcy5nZXRTaXplKCk7CisKKyAgICAgICAgZy5zZXRDb2xvcihDb2xvci5saWdodEdyYXkpOworICAgICAgICBnLmZpbGxSZWN0KDAsMCxkLndpZHRoLGQuaGVpZ2h0KTsKKworICAgICAgICAvLyBEcmF3IHRoZSBkYXkgbmFtZXMgYXQgdGhlIHRvcAorICAgICAgICBnLnNldENvbG9yKENvbG9yLmJsYWNrKTsKKyAgICAgICAgZy5zZXRGb250KERlbW9VdGlsaXR5LmxhYmVsRm9udCk7CisgICAgICAgIEZvbnRNZXRyaWNzIGZtID0gZy5nZXRGb250TWV0cmljcygpOworICAgICAgICBpbnQgbGFiZWxIZWlnaHQgPSBmbS5nZXRIZWlnaHQoKSArIFlJTlNFVCAqIDI7CisKKyAgICAgICAgaW50IHYgPSBmbS5nZXRBc2NlbnQoKSArIFlJTlNFVDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkYXlzSW5XZWVrOyBpKyspIHsKKyAgICAgICAgICAgIGludCBkYXlOdW0gPSAoaSArIG1pbkRheSArIGZpcnN0RGF5T2ZXZWVrIC0gMikgJSBkYXlzSW5XZWVrICsgMTsKKyAgICAgICAgICAgIFN0cmluZyBkYXlOYW1lID0gZlN5bWJvbHNbMF0uZ2V0V2Vla2RheXMoKVtkYXlOdW1dOworCisKKyAgICAgICAgICAgIGRvdWJsZSBoOworICAgICAgICAgICAgaWYgKGxlZnRUb1JpZ2h0KSB7CisgICAgICAgICAgICAgICAgaCA9IGQud2lkdGgqKGkgKyAwLjUpIC8gZGF5c0luV2VlazsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaCA9IGQud2lkdGgqKGRheXNJbldlZWsgLSBpIC0gMC41KSAvIGRheXNJbldlZWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBoIC09IGZtLnN0cmluZ1dpZHRoKGRheU5hbWUpIC8gMjsKKworICAgICAgICAgICAgZy5kcmF3U3RyaW5nKGRheU5hbWUsIChpbnQpaCwgdik7CisgICAgICAgIH0KKworICAgICAgICBkb3VibGUgY2VsbEhlaWdodCA9IChkLmhlaWdodCAtIGxhYmVsSGVpZ2h0IC0gMSkgLyBudW1XZWVrczsKKyAgICAgICAgZG91YmxlIGNlbGxXaWR0aCA9IChkb3VibGUpKGQud2lkdGggLSAxKSAvIGRheXNJbldlZWs7CisKKyAgICAgICAgLy8gRHJhdyBhIHdoaXRlIGJhY2tncm91bmQgaW4gdGhlIHBhcnQgb2YgdGhlIGNhbGVuZGFyCisgICAgICAgIC8vIHRoYXQgZGlzcGxheXMgdGhpcyBtb250aC4KKyAgICAgICAgLy8gRmlyc3QgZmlndXJlIG91dCBob3cgbXVjaCBvZiB0aGUgZmlyc3Qgd2VlayBzaG91bGQgYmUgc2hhZGVkLgorICAgICAgICB7CisgICAgICAgICAgICBnLnNldENvbG9yKENvbG9yLndoaXRlKTsKKyAgICAgICAgICAgIGRhdGVUb0NlbGwoMSwgY2VsbFBvcyk7CisgICAgICAgICAgICBpbnQgd2lkdGggPSAoaW50KShjZWxsUG9zLngqY2VsbFdpZHRoKTsgIC8vIFdpZHRoIG9mIHVuc2hhZGVkIGFyZWEKKworICAgICAgICAgICAgaWYgKGxlZnRUb1JpZ2h0KSB7CisgICAgICAgICAgICAgICAgZy5maWxsUmVjdCgoaW50KSh3aWR0aCksIGxhYmVsSGVpZ2h0ICwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGQud2lkdGggLSB3aWR0aCwgKGludCljZWxsSGVpZ2h0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZy5maWxsUmVjdCgwLCBsYWJlbEhlaWdodCAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBkLndpZHRoIC0gd2lkdGgsIChpbnQpY2VsbEhlaWdodCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIEFsbCBvZiB0aGUgaW50ZXJtZWRpYXRlIHdlZWtzIGdldCBzaGFkZWQgY29tcGxldGVseQorICAgICAgICAgICAgZy5maWxsUmVjdCgwLCAoaW50KShsYWJlbEhlaWdodCArIGNlbGxIZWlnaHQpLAorICAgICAgICAgICAgICAgICAgICAgICAgZC53aWR0aCwgKGludCkoY2VsbEhlaWdodCAqIChudW1XZWVrcyAtIDIpKSk7CisKKyAgICAgICAgICAgIC8vIE5vdyBmaWd1cmUgb3V0IHRoZSBsYXN0IHdlZWsuCisgICAgICAgICAgICBkYXRlVG9DZWxsKGRheXNJbk1vbnRoLCBjZWxsUG9zKTsKKyAgICAgICAgICAgIHdpZHRoID0gKGludCkoKGNlbGxQb3MueCsxKSpjZWxsV2lkdGgpOyAgLy8gV2lkdGggb2Ygc2hhZGVkIGFyZWEKKworICAgICAgICAgICAgaWYgKGxlZnRUb1JpZ2h0KSB7CisgICAgICAgICAgICAgICAgZy5maWxsUmVjdCgwLCAoaW50KShsYWJlbEhlaWdodCArIChudW1XZWVrcy0xKSAqIGNlbGxIZWlnaHQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgsIChpbnQpY2VsbEhlaWdodCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGcuZmlsbFJlY3QoZC53aWR0aCAtIHdpZHRoLCAoaW50KShsYWJlbEhlaWdodCArIChudW1XZWVrcy0xKSAqIGNlbGxIZWlnaHQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgsIChpbnQpY2VsbEhlaWdodCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgfQorICAgICAgICAvLyBEcmF3IHRoZSBYL1kgZ3JpZCBsaW5lcworICAgICAgICBnLnNldENvbG9yKENvbG9yLmJsYWNrKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gbnVtV2Vla3M7IGkrKykgeworICAgICAgICAgICAgaW50IHkgPSAoaW50KShsYWJlbEhlaWdodCArIGkgKiBjZWxsSGVpZ2h0KTsKKyAgICAgICAgICAgIGcuZHJhd0xpbmUoMCwgeSwgZC53aWR0aCAtIDEsIHkpOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IGRheXNJbldlZWs7IGkrKykgeworICAgICAgICAgICAgaW50IHggPSAoaW50KShpICogY2VsbFdpZHRoKTsKKyAgICAgICAgICAgIGcuZHJhd0xpbmUoeCwgbGFiZWxIZWlnaHQsIHgsIGQuaGVpZ2h0IC0gMSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBOb3cgbG9vcCB0aHJvdWdoIGFsbCBvZiB0aGUgZGF5cyBpbiB0aGUgbW9udGgsIGZpZ3VyZSBvdXQgd2hlcmUKKyAgICAgICAgLy8gdGhleSBnbyBpbiB0aGUgZ3JpZCwgYW5kIGRyYXcgdGhlIGRheSAjIGZvciBlYWNoIG9uZQorCisgICAgICAgIC8vIEZpZ3VyZSBvdXQgdGhlIGRhdGUgb2YgdGhlIGZpcnN0IGNlbGwgaW4gdGhlIGNhbGVuZGFyIGRpc3BsYXkKKyAgICAgICAgaW50IGNlbGwgPSAoMSArIGZpcnN0RGF5SW5Nb250aCAtIGZpcnN0RGF5T2ZXZWVrIC0gbWluRGF5KTsKKyAgICAgICAgaWYgKGZpcnN0RGF5SW5Nb250aCA8IGZpcnN0RGF5T2ZXZWVrKSB7CisgICAgICAgICAgICBjZWxsICs9IGRheXNJbldlZWs7CisgICAgICAgIH0KKworICAgICAgICBDYWxlbmRhciBjID0gKENhbGVuZGFyKWZDYWxlbmRhclswXS5jbG9uZSgpOworICAgICAgICBjLnNldFRpbWUoZlN0YXJ0T2ZNb250aCk7CisgICAgICAgIGMuYWRkKENhbGVuZGFyLkRBVEUsIC1jZWxsKTsKKworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCisgICAgICAgIGZvciAoaW50IHJvdyA9IDA7IHJvdyA8IG51bVdlZWtzOyByb3crKykgeworICAgICAgICAgICAgZm9yIChpbnQgY29sID0gMDsgY29sIDwgZGF5c0luV2VlazsgY29sKyspIHsKKworICAgICAgICAgICAgICAgIGcuc2V0Rm9udChEZW1vVXRpbGl0eS5udW1iZXJGb250KTsKKyAgICAgICAgICAgICAgICBnLnNldENvbG9yKENvbG9yLmJsYWNrKTsKKyAgICAgICAgICAgICAgICBmbSA9IGcuZ2V0Rm9udE1ldHJpY3MoKTsKKworICAgICAgICAgICAgICAgIGludCBjZWxseDsKKyAgICAgICAgICAgICAgICBpZiAobGVmdFRvUmlnaHQpIHsKKyAgICAgICAgICAgICAgICAgICAgY2VsbHggPSAoaW50KSgoY29sKSAqIGNlbGxXaWR0aCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgY2VsbHggPSAoaW50KSgoZGF5c0luV2VlayAtIGNvbCAtIDEpICogY2VsbFdpZHRoKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpbnQgY2VsbHkgPSAoaW50KShyb3cgKiBjZWxsSGVpZ2h0ICsgbGFiZWxIZWlnaHQpOworCisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAyOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgZkNhbGVuZGFyW2ldLnNldFRpbWUoYy5nZXRUaW1lKCkpOworCisgICAgICAgICAgICAgICAgICAgIGludCBkYXRlID0gZkNhbGVuZGFyW2ldLmdldChDYWxlbmRhci5EQVRFKTsKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChkYXRlKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGRheU51bSA9IGJ1ZmZlci50b1N0cmluZygpOworCisgICAgICAgICAgICAgICAgICAgIGludCB4OworCisgICAgICAgICAgICAgICAgICAgIGlmIChsZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgICAgICAgICAgICAgeCA9IGNlbGx4ICsgKGludCljZWxsV2lkdGggLSBYSU5TRVQgLSBmbS5zdHJpbmdXaWR0aChkYXlOdW0pOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgeCA9IGNlbGx4ICsgWElOU0VUOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGludCB5ID0gY2VsbHkgKyArIGZtLmdldEFzY2VudCgpICsgWUlOU0VUICsgaSAqIGZtLmdldEhlaWdodCgpOworCisgICAgICAgICAgICAgICAgICAgIGlmIChmQ29sb3JbaV0gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZy5zZXRDb2xvcihmQ29sb3JbaV0pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGcuZHJhd1N0cmluZyhkYXlOdW0sIHgsIHkpOworCisgICAgICAgICAgICAgICAgICAgIGlmIChkYXRlID09IDEgfHwgcm93ID09IDAgJiYgY29sID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGcuc2V0Rm9udChEZW1vVXRpbGl0eS5udW1iZXJGb250KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBtb250aCA9IGZTeW1ib2xzW2ldLmdldE1vbnRocygpWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmQ2FsZW5kYXJbaV0uZ2V0KENhbGVuZGFyLk1PTlRIKV07CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHggPSBjZWxseCArIFhJTlNFVDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeCA9IGNlbGx4ICsgKGludCljZWxsV2lkdGggLSBYSU5TRVQgLSBmbS5zdHJpbmdXaWR0aChtb250aCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBnLmRyYXdTdHJpbmcobW9udGgsIHgsIHkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgYy5hZGQoQ2FsZW5kYXIuREFURSwgMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBJbXBvcnRhbnQgc3RhdGUgdmFyaWFibGVzCisgICAgcHJpdmF0ZSBDYWxlbmRhcltdICAgICAgICAgIGZDYWxlbmRhciA9IG5ldyBDYWxlbmRhcls0XTsKKyAgICBwcml2YXRlIENvbG9yW10gICAgICAgICAgICAgZkNvbG9yID0gbmV3IENvbG9yWzRdOworCisgICAgcHJpdmF0ZSBMb2NhbGUgICAgICAgICAgICAgIGZEaXNwbGF5TG9jYWxlOworICAgIHByaXZhdGUgRGF0ZUZvcm1hdFN5bWJvbHNbXSBmU3ltYm9scyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9sc1s0XTsKKworICAgIHByaXZhdGUgRGF0ZSAgICAgICAgICAgICAgICBmU3RhcnRPZk1vbnRoID0gbmV3IERhdGUoKTsgICAgIC8vIDAwOjAwOjAwIG9uIGZpcnN0IGRheSBvZiBtb250aAorCisgICAgLy8gQ2FjaGVkIGNhbGN1bGF0aW9ucyB0byBtYWtlIGRyYXdpbmcgZmFzdGVyLgorICAgIHByaXZhdGUgdHJhbnNpZW50IGludCAgICAgICBtaW5EYXk7ICAgICAgICAgICAvLyBNaW5pbXVtIGxlZ2FsIGRheSAjCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50ICAgICAgIGRheXNJbldlZWs7ICAgICAgIC8vICMgb2YgZGF5cyBpbiBhIHdlZWsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBpbnQgICAgICAgZmlyc3REYXlPZldlZWs7ICAgLy8gRmlyc3QgZGF5IHRvIGRpc3BsYXkgaW4gd2VlaworICAgIHByaXZhdGUgdHJhbnNpZW50IGludCAgICAgICBudW1XZWVrczsgICAgICAgICAvLyAjIGZ1bGwgb3IgcGFydGlhbCB3ZWVrcyBpbiBtb250aAorICAgIHByaXZhdGUgdHJhbnNpZW50IGludCAgICAgICBkYXlzSW5Nb250aDsgICAgICAvLyAjIGRheXMgaW4gdGhpcyBtb250aAorICAgIHByaXZhdGUgdHJhbnNpZW50IGludCAgICAgICBmaXJzdERheUluTW9udGg7ICAvLyBEYXkgb2Ygd2VlayBvZiBmaXJzdCBkYXkgaW4gbW9udGgKKyAgICBwcml2YXRlIHRyYW5zaWVudCBib29sZWFuICAgbGVmdFRvUmlnaHQ7CisKKyAgICBwcml2YXRlIHRyYW5zaWVudCBib29sZWFuIGRpcnR5ID0gdHJ1ZTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9jYWxlbmRhci9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2FsZW5kYXIvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQ2NTIwMDEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2FsZW5kYXIvcGFja2FnZS5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCAzLjIgRmluYWwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworICAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2FsZW5kYXIvcGFja2FnZS5odG1sLHYgJAorICAkUmV2aXNpb246IDEuMSAkCisgICREYXRlOiAyMDAwLzAzLzE1IDA2OjI4OjQ4ICQKKy0tPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiPgorQ2FsZW5kYXIgZGVtbyBhcHBsaWNhdGlvbnMgaW5jbHVkaW5nIGRhdGUvdGltZSBhcml0aG1ldGljLgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9ob2xpZGF5L0hvbGlkYXlCb3JkZXJQYW5lbC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2hvbGlkYXkvSG9saWRheUJvcmRlclBhbmVsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjJiMTIxYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9ob2xpZGF5L0hvbGlkYXlCb3JkZXJQYW5lbC5qYXZhCkBAIC0wLDAgKzEsNTUxIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ny0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaG9saWRheS9Ib2xpZGF5Qm9yZGVyUGFuZWwuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNDo1NSAkIAorICogJFJldmlzaW9uOiAxLjUgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kZW1vLmhvbGlkYXk7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYuZGVtby4qOworaW1wb3J0IGphdmEuYXd0Lio7CisKKy8qKgorICogVmFyaW91cyBncmFwaGljYWwgYm9yZGVycy4gVGhlIGJvcmRlciBpdHNlbGYgaXMgYSBQYW5lbCBzbyB0aGF0IGl0IGNhbgorICogY29udGFpbiBvdGhlciBDb21wb25lbnRzIChpLmUuIGl0IGJvcmRlcnMgc29tZXRoaW5nKS4gWW91IHVzZSB0aGUKKyAqIEhvbGlkYXlCb3JkZXJQYW5lbCBsaWtlIGFueSBvdGhlciBQYW5lbDogeW91IHNldCB0aGUgbGF5b3V0IHRoYXQgeW91IHByZWZlciBhbmQKKyAqIGFkZCBDb21wb25lbnRzIHRvIGl0LiBCZXdhcmUgdGhhdCBhIG51bGwgbGF5b3V0IGRvZXMgbm90IG9iZXkgdGhlIGluc2V0cworICogb2YgdGhlIHBhbmVsIHNvIGlmIHlvdSB1c2UgbnVsbCBsYXlvdXRzLCBhZGp1c3QgeW91ciBtZWFzdXJlbWVudHMgdG8KKyAqIGhhbmRsZSB0aGUgYm9yZGVyIGJ5IGNhbGxpbmcgaW5zZXRzKCkuCisgKgorICogQGF1dGhvciAgQW5keSBDbGFyaywgVGFsaWdlbnQgSW5jLgorICogQHZlcnNpb24gMS4wCisgKi8KK3B1YmxpYyBjbGFzcyBIb2xpZGF5Qm9yZGVyUGFuZWwgZXh0ZW5kcyBQYW5lbCB7CisgICAgLy8gQ29uc3RhbnRzCisKKyAgICAvKiogU29saWQgYm9yZGVyLiAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFNPTElEID0gMDsKKyAgICAvKiogQSByYWlzZWQgYm9yZGVyLiAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFJBSVNFRCA9IDE7CisgICAgLyoqIEEgbG93ZXJlZCBib3JkZXIuICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTE9XRVJFRCA9IDI7CisgICAgLyoqIEFuIGV0Y2hlZCBpbiBib3JkZXIuICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSU4gPSAzOworICAgIC8qKiBBbiBldGNoZWQgb3V0IGJvcmRlci4gKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBPVVQgPSA0OworCisgICAgLyoqIExlZnQgYWxpZ25tZW50LiAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IExFRlQgPSAwOworICAgIC8qKiBDZW50ZXIgYWxpZ25tZW50LiAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IENFTlRFUiA9IDE7CisgICAgLyoqIFJpZ2h0IGFsaWdubWVudC4gKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBSSUdIVCA9IDI7CisKKyAgICAvKiogRGVmYXVsdCBzdHlsZSAoSU4pLiAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERFRkFVTFRfU1RZTEUgPSBJTjsKKyAgICAvKiogRGVmYXVsdCB0aGlja25lc3MgKDEwKS4gKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBERUZBVUxUX1RISUNLTkVTUyA9IDEwOworICAgIC8qKiBEZWZhdWx0IHRoaWNrbmVzcyBmb3Igc29saWQgYm9yZGVycyAoNCkuICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREVGQVVMVF9TT0xJRF9USElDS05FU1MgPSA0OworICAgIC8qKiBEZWZhdWx0IHRoaWNrbmVzcyBmb3IgcmFpc2VkIGJvcmRlcnMgKDIpLiAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERFRkFVTFRfUkFJU0VEX1RISUNLTkVTUyA9IDI7CisgICAgLyoqIERlZmF1bHQgdGhpY2tuZXNzIGZvciBsb3dlcmVkIGJvcmRlcnMgKDIpLiAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERFRkFVTFRfTE9XRVJFRF9USElDS05FU1MgPSAyOworICAgIC8qKiBEZWZhdWx0IHRoaWNrbmVzcyBmb3IgZXRjaGVkLWluIGJvcmRlcnMgKDEwKS4gKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBERUZBVUxUX0lOX1RISUNLTkVTUyA9IDEwOworICAgIC8qKiBEZWZhdWx0IHRoaWNrbmVzcyBmb3IgZXRjaGVkLW91dCBib3JkZXJzICgxMCkuICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREVGQVVMVF9PVVRfVEhJQ0tORVNTID0gMTA7CisgICAgLyoqIERlZmF1bHQgZ2FwIGJldHdlZW4gYm9yZGVyIGFuZCBjb250YWluZWQgY29tcG9uZW50ICg1KS4gKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBERUZBVUxUX0dBUCA9IDU7CisgICAgLyoqIERlZmF1bHQgY29sb3IgKGJsYWNrKS4gQXBwbGllcyB0byBTT0xJRCBhbmQgZXRjaGVkIGJvcmRlcnMuICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBDb2xvciBERUZBVUxUX0NPTE9SID0gQ29sb3IuYmxhY2s7CisKKyAgICAvKiogRGVmYXVsdCBmb250IChUaW1lc1JvbWFuLFBMQUlOLDE0KS4gT25seSBhcHBsaWVzIHRvIGV0Y2hlZCBib3JkZXJzLiAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRm9udCBERUZBVUxUX0ZPTlQgPSBuZXcgRm9udCgiVGltZXNSb21hbiIsIEZvbnQuUExBSU4sIDE0KTsKKyAgICAvKiogRGVmYXVsdCBhbGlnbm1lbnQgKExFRlQpLiBPbmx5IGFwcGxpZXMgdG8gZXRjaGVkIGJvcmRlcnMuICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREVGQVVMVF9BTElHTk1FTlQgPSBMRUZUOworCisgICAgLy8gRGF0YQorICAgIHByaXZhdGUgaW50IHN0eWxlOworICAgIHByaXZhdGUgaW50IHRoaWNrbmVzczsKKyAgICBwcml2YXRlIGludCBnYXA7CisgICAgcHJpdmF0ZSBDb2xvciBjb2xvcjsKKworICAgIHByaXZhdGUgRm9udCBmb250OworICAgIHByaXZhdGUgU3RyaW5nIHRleHQ7CisgICAgcHJpdmF0ZSBpbnQgYWxpZ25tZW50OworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IuIE1ha2VzIGRlZmF1bHQgYm9yZGVyLgorICAgICAqLworICAgIHB1YmxpYyBIb2xpZGF5Qm9yZGVyUGFuZWwoKSB7CisKKyAgICAgICAgLy8gaW5pdGlhbGl6ZSBkYXRhCisgICAgICAgIHN0eWxlICAgICAgID0gREVGQVVMVF9TVFlMRTsKKyAgICAgICAgdGhpY2tuZXNzICAgPSBERUZBVUxUX1RISUNLTkVTUzsKKyAgICAgICAgZ2FwICAgICAgICAgPSBERUZBVUxUX0dBUDsKKyAgICAgICAgY29sb3IgICAgICAgPSBERUZBVUxUX0NPTE9SOworCisgICAgICAgIHRleHQgICAgICAgID0gbnVsbDsKKyAgICAgICAgZm9udCAgICAgICAgPSBERUZBVUxUX0ZPTlQ7CisgICAgICAgIGFsaWdubWVudCAgID0gREVGQVVMVF9BTElHTk1FTlQ7CisKKyAgICAgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IuIE1ha2VzIGFuIGV0Y2hlZCBJTiBib3JkZXIgd2l0aCBnaXZlbiB0ZXh0IGNhcHRpb24uCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCAgVGV4dCBjYXB0aW9uCisgICAgICovCisgICAgcHVibGljIEhvbGlkYXlCb3JkZXJQYW5lbChTdHJpbmcgdGV4dCkgeworICAgICAgICB0aGlzKCk7CisKKyAgICAgICAgc3R5bGUgPSBJTjsKKyAgICAgICAgdGhpcy50ZXh0ID0gdGV4dDsKKyAgICAgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IuIE1ha2VzIFNPTElEIGJvcmRlciB3aXRoIGNvbG9yIGFuZCB0aGlja25lc3MgZ2l2ZW4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gY29sb3IgICAgIFRoZSBjb2xvciBmb3IgdGhlIGJvcmRlci4KKyAgICAgKiBAcGFyYW0gdGhpY2tuZXNzIFRoZSB0aGlja25lc3Mgb2YgdGhlIGJvcmRlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgSG9saWRheUJvcmRlclBhbmVsKENvbG9yIGNvbG9yLCBpbnQgdGhpY2tuZXNzKSB7CisgICAgICAgIHRoaXMoKTsKKworICAgICAgICBzdHlsZSA9IFNPTElEOworICAgICAgICB0aGlzLmNvbG9yID0gY29sb3I7CisgICAgICAgIHRoaXMudGhpY2tuZXNzID0gdGhpY2tuZXNzOworICAgICAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rvci4gTWFrZXMgYSBib3JkZXIgb2YgdGhlIGdpdmVuIHN0eWxlIHdpdGggdGhlIGRlZmF1bHQKKyAgICAgKiB0aGlja25lc3MgZm9yIHRoYXQgc3R5bGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3R5bGUgVGhlIHN0eWxlIGZvciB0aGlzIGJvcmRlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgSG9saWRheUJvcmRlclBhbmVsKGludCBzdHlsZSkgeworICAgICAgICB0aGlzKCk7CisKKyAgICAgICAgLy8gc2V0IHRoaWNrbmVzcyBhcHByb3ByaWF0ZSB0byB0aGlzIHN0eWxlCisgICAgICAgIGludCB0aGlja25lc3M7CisgICAgICAgIHN3aXRjaCAoc3R5bGUpIHsKKyAgICAgICAgICAgIGNhc2UgU09MSUQ6IHRoaWNrbmVzcyA9IERFRkFVTFRfU09MSURfVEhJQ0tORVNTOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgUkFJU0VEOiB0aGlja25lc3MgPSBERUZBVUxUX1JBSVNFRF9USElDS05FU1M7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBMT1dFUkVEOiB0aGlja25lc3MgPSBERUZBVUxUX0xPV0VSRURfVEhJQ0tORVNTOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgSU46IHRoaWNrbmVzcyA9IERFRkFVTFRfSU5fVEhJQ0tORVNTOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgT1VUOiB0aGlja25lc3MgPSBERUZBVUxUX09VVF9USElDS05FU1M7IGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICB0aGlja25lc3MgPSBERUZBVUxUX1RISUNLTkVTUzsKKyAgICAgICAgICAgIH0KKworICAgICAgICB0aGlzLnN0eWxlID0gc3R5bGU7CisgICAgICAgIHRoaXMudGhpY2tuZXNzID0gdGhpY2tuZXNzOworICAgICAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rvci4gTWFrZXMgYm9yZGVyIHdpdGggZ2l2ZW4gc3R5bGUgYW5kIHRoaWNrbmVzcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHlsZSAgICAgVGhlIHN0eWxlIGZvciB0aGlzIGJvcmRlci4KKyAgICAgKiBAcGFyYW0gdGhpY2tuZXNzIFRoZSB0aGlja25lc3MgZm9yIHRoaXMgYm9yZGVyLgorICAgICAqLworICAgIHB1YmxpYyBIb2xpZGF5Qm9yZGVyUGFuZWwoaW50IHN0eWxlLCBpbnQgdGhpY2tuZXNzKSB7CisgICAgICAgIHRoaXMoKTsKKworICAgICAgICB0aGlzLnN0eWxlID0gc3R5bGU7CisgICAgICAgIHRoaXMudGhpY2tuZXNzID0gdGhpY2tuZXNzOworICAgICAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBpbnNldHMgb2YgdGhpcyBwYW5lbC4uCisgICAgICovCisgICAgcHVibGljIEluc2V0cyBnZXRJbnNldHMoKSB7CisgICAgICAgIGludCBhZGp1c3RtZW50ID0gMDsKKworICAgICAgICAvLyBhZGp1c3QgZm9yIHRleHQgc3RyaW5nCisgICAgICAgIGlmIChzdHlsZSA9PSBJTiB8fCBzdHlsZSA9PSBPVVQpIHsKKyAgICAgICAgICAgIGlmICh0ZXh0ICE9IG51bGwgJiYgdGV4dC5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAvLyBzZXQgZm9udCBhbmQgZ2V0IGluZm8KKyAgICAgICAgICAgICAgICAgICAgaW50IGhlaWdodCA9IGdldEdyYXBoaWNzKCkuZ2V0Rm9udE1ldHJpY3MoZm9udCkuZ2V0SGVpZ2h0KCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChoZWlnaHQgPiB0aGlja25lc3MpCisgICAgICAgICAgICAgICAgICAgICAgICBhZGp1c3RtZW50ID0gaGVpZ2h0IC0gdGhpY2tuZXNzOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIG5vdGhpbmc6IGp1c3QgaW4gY2FzZSB0aGVyZSBpcyBubyBncmFwaGljcyBjb250ZXh0CisgICAgICAgICAgICAgICAgICAgIC8vICAgYXQgdGhlIGJlZ2lubmluZy4KKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgLy8gcmV0dXJuIGFwcHJvcHJpYXRlIGluc2V0cworICAgICAgICBpbnQgZGlzdCA9IHRoaWNrbmVzcyArIGdhcDsKKyAgICAgICAgcmV0dXJuIG5ldyBJbnNldHMoZGlzdCArIGFkanVzdG1lbnQsIGRpc3QsIGRpc3QsIGRpc3QpOworICAgICAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBzdHlsZSBvZiB0aGUgYm9yZGVyCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3R5bGUgVGhlIG5ldyBzdHlsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgSG9saWRheUJvcmRlclBhbmVsIHNldFN0eWxlKGludCBzdHlsZSkgeworCisgICAgICAgIC8vIHNldCB0aGUgc3R5bGUgYW5kIHJlLWxheW91dCB0aGUgcGFuZWwKKyAgICAgICAgdGhpcy5zdHlsZSA9IHN0eWxlOworICAgICAgICBkb0xheW91dCgpOworICAgICAgICByZXBhaW50KCk7CisKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHN0eWxlIG9mIHRoZSBib3JkZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFN0eWxlKCkgeworCisgICAgICAgIHJldHVybiBzdHlsZTsKKyAgICAgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgdGhpY2tuZXNzIG9mIHRoZSBib3JkZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGhpY2tuZXNzIFRoZSBuZXcgdGhpY2tuZXNzCisgICAgICovCisgICAgcHVibGljIEhvbGlkYXlCb3JkZXJQYW5lbCBzZXRUaGlja25lc3MoaW50IHRoaWNrbmVzcykgeworCisgICAgICAgIGlmICh0aGlja25lc3MgPiAwKSB7CisgICAgICAgICAgICB0aGlzLnRoaWNrbmVzcyA9IHRoaWNrbmVzczsKKyAgICAgICAgICAgIGRvTGF5b3V0KCk7CisgICAgICAgICAgICByZXBhaW50KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHRoaWNrbmVzcyBvZiB0aGUgYm9yZGVyLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0VGhpY2tuZXNzKCkgeworCisgICAgICAgIHJldHVybiB0aGlja25lc3M7CisgICAgICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGdhcCBiZXR3ZWVuIHRoZSBib3JkZXIgYW5kIHRoZSBjb250YWluZWQgQ29tcG9uZW50LgorICAgICAqCisgICAgICogQHBhcmFtIGdhcCBUaGUgbmV3IGdhcCwgaW4gcGl4ZWxzLgorICAgICAqLworICAgIHB1YmxpYyBIb2xpZGF5Qm9yZGVyUGFuZWwgc2V0R2FwKGludCBnYXApIHsKKworICAgICAgICBpZiAoZ2FwID4gLTEpIHsKKyAgICAgICAgICAgIHRoaXMuZ2FwID0gZ2FwOworICAgICAgICAgICAgZG9MYXlvdXQoKTsKKyAgICAgICAgICAgIHJlcGFpbnQoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZ2FwIGJldHdlZW4gdGhlIGJvcmRlciBhbmQgdGhlIGNvbnRhaW5lZCBDb21wb25lbnQuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRHYXAoKSB7CisKKyAgICAgICAgcmV0dXJuIGdhcDsKKyAgICAgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY3VycmVudCBjb2xvciBmb3IgU09MSUQgYm9yZGVycyBhbmQgdGhlIGNhcHRpb24gdGV4dAorICAgICAqIGNvbG9yIGZvciBldGNoZWQgYm9yZGVycy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjb2xvciBUaGUgbmV3IGNvbG9yLgorICAgICAqLworICAgIHB1YmxpYyBIb2xpZGF5Qm9yZGVyUGFuZWwgc2V0Q29sb3IoQ29sb3IgY29sb3IpIHsKKworICAgICAgICB0aGlzLmNvbG9yID0gY29sb3I7CisgICAgICAgIGlmIChzdHlsZSA9PSBTT0xJRCB8fCBzdHlsZSA9PSBJTiB8fCBzdHlsZSA9PSBPVVQpCisgICAgICAgICAgICByZXBhaW50KCk7CisKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGN1cnJlbnQgY29sb3IgZm9yIFNPTElEIGJvcmRlcnMgYW5kIHRoZSBjYXB0aW9uCisgICAgICogdGV4dCBjb2xvciBmb3IgZXRjaGVkIGJvcmRlcnMuCisgICAgICovCisgICAgcHVibGljIENvbG9yIGdldENvbG9yKCkgeworCisgICAgICAgIHJldHVybiBjb2xvcjsKKyAgICAgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgZm9udC4gT25seSBhcHBsaWVzIHRvIGV0Y2hlZCBib3JkZXJzLgorICAgICAqLworICAgIHB1YmxpYyBIb2xpZGF5Qm9yZGVyUGFuZWwgc2V0VGV4dEZvbnQoRm9udCBmb250KSB7CisKKyAgICAgICAgLy8gc2V0IGZvbnQKKyAgICAgICAgaWYgKGZvbnQgIT0gbnVsbCkgeworICAgICAgICAgICAgdGhpcy5mb250ID0gZm9udDsKKyAgICAgICAgICAgIGlmIChzdHlsZSA9PSBJTiB8fCBzdHlsZSA9PSBPVVQpIHsKKyAgICAgICAgICAgICAgICBkb0xheW91dCgpOworICAgICAgICAgICAgICAgIHJlcGFpbnQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGZvbnQgb2YgdGhlIHRleHQuIE9ubHkgYXBwbGllcyB0byBldGNoZWQgYm9yZGVycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgRm9udCBnZXRUZXh0Rm9udCgpIHsKKworICAgICAgICByZXR1cm4gZm9udDsKKyAgICAgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgdGV4dC4gT25seSBhcHBsaWVzIHRvIGV0Y2hlZCBib3JkZXJzLgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgIFRoZSBuZXcgdGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgSG9saWRheUJvcmRlclBhbmVsIHNldFRleHQoU3RyaW5nIHRleHQpIHsKKworICAgICAgICB0aGlzLnRleHQgPSB0ZXh0OworICAgICAgICBpZiAoc3R5bGUgPT0gSU4gfHwgc3R5bGUgPT0gT1VUKSB7CisgICAgICAgICAgICBkb0xheW91dCgpOworICAgICAgICAgICAgcmVwYWludCgpOworICAgICAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB0ZXh0LiBPbmx5IGFwcGxpZXMgdG8gZXRjaGVkIGJvcmRlcnMuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRUZXh0KCkgeworCisgICAgICAgIHJldHVybiB0ZXh0OworICAgICAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB0ZXh0IGFsaWdubWVudC4gT25seSBhcHBsaWVzIHRvIGV0Y2hlZCBib3JkZXJzLgorICAgICAqCisgICAgICogQHBhcmFtIGFsaWdubWVudCBUaGUgbmV3IGFsaWdubWVudC4KKyAgICAgKi8KKyAgICBwdWJsaWMgSG9saWRheUJvcmRlclBhbmVsIHNldEFsaWdubWVudChpbnQgYWxpZ25tZW50KSB7CisKKyAgICAgICAgdGhpcy5hbGlnbm1lbnQgPSBhbGlnbm1lbnQ7CisgICAgICAgIGlmIChzdHlsZSA9PSBJTiB8fCBzdHlsZSA9PSBPVVQpIHsKKyAgICAgICAgICAgIGRvTGF5b3V0KCk7CisgICAgICAgICAgICByZXBhaW50KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHRleHQgYWxpZ25tZW50LgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0QWxpZ25tZW50KCkgeworCisgICAgICAgIHJldHVybiBhbGlnbm1lbnQ7CisgICAgICAgIH0KKworICAgIC8qKgorICAgICAqIFJlcGFpbnRzIHRoZSBib3JkZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZyBUaGUgZ3JhcGhpY3MgY29udGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwYWludChHcmFwaGljcyBnKSB7CisKKyAgICAgICAgLy8gZ2V0IGN1cnJlbnQgZGltZW5zaW9ucworICAgICAgICBEaW1lbnNpb24gc2l6ZSA9IGdldFNpemUoKTsKKyAgICAgICAgaW50IHdpZHRoID0gc2l6ZS53aWR0aDsKKyAgICAgICAgaW50IGhlaWdodCA9IHNpemUuaGVpZ2h0OworCisgICAgICAgIC8vIHNldCBjb2xvcnMKKyAgICAgICAgQ29sb3IgbGlnaHQgPSBnZXRCYWNrZ3JvdW5kKCkuYnJpZ2h0ZXIoKS5icmlnaHRlcigpLmJyaWdodGVyKCk7CisgICAgICAgIENvbG9yIGRhcmsgPSBnZXRCYWNrZ3JvdW5kKCkuZGFya2VyKCkuZGFya2VyKCkuZGFya2VyKCk7CisKKyAgICAgICAgLy8gRHJhdyBib3JkZXIKKyAgICAgICAgc3dpdGNoIChzdHlsZSkgeworICAgICAgICAgICAgY2FzZSBSQUlTRUQ6ICAgIC8vIDNEIEJvcmRlciAoaW4gb3Igb3V0KQorICAgICAgICAgICAgY2FzZSBMT1dFUkVEOgorICAgICAgICAgICAgICAgIENvbG9yIHRvcGxlZnQgPSBudWxsOworICAgICAgICAgICAgICAgIENvbG9yIGJvdHRvbXJpZ2h0ID0gbnVsbDsKKworICAgICAgICAgICAgICAgIC8vIHNldCBjb2xvcnMKKyAgICAgICAgICAgICAgICBpZiAoc3R5bGUgPT0gUkFJU0VEKSB7CisgICAgICAgICAgICAgICAgICAgIHRvcGxlZnQgPSBsaWdodDsKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tcmlnaHQgPSBkYXJrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHRvcGxlZnQgPSBkYXJrOworICAgICAgICAgICAgICAgICAgICBib3R0b21yaWdodCA9IGxpZ2h0OworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBkcmF3IGJvcmRlcgorICAgICAgICAgICAgICAgIGcuc2V0Q29sb3IodG9wbGVmdCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0aGlja25lc3M7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBnLmRyYXdMaW5lKGksIGksIHdpZHRoIC0gaSAtIDIsIGkpOworICAgICAgICAgICAgICAgICAgICBnLmRyYXdMaW5lKGksIGkgKyAxLCBpLCBoZWlnaHQgLSBpIC0gMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBnLnNldENvbG9yKGJvdHRvbXJpZ2h0KTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRoaWNrbmVzczsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIGcuZHJhd0xpbmUoaSArIDEsIGhlaWdodCAtIGkgLSAxLCB3aWR0aCAtIGkgLSAxLCBoZWlnaHQgLSBpIC0gMSk7CisgICAgICAgICAgICAgICAgICAgIGcuZHJhd0xpbmUod2lkdGggLSBpIC0gMSwgaSwgd2lkdGggLSBpIC0gMSwgaGVpZ2h0IC0gaSAtIDIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgSU46ICAgIC8vIEV0Y2hlZCBCb3JkZXIgKGluIG9yIG91dCkKKyAgICAgICAgICAgIGNhc2UgT1VUOgorICAgICAgICAgICAgICAgIGludCBhZGp1c3QxID0gMDsKKyAgICAgICAgICAgICAgICBpbnQgYWRqdXN0MiA9IDA7CisKKyAgICAgICAgICAgICAgICAvLyBzZXQgZm9udCBhbmQgZ2V0IGluZm8KKyAgICAgICAgICAgICAgICBGb250IG9sZGZvbnQgPSBnLmdldEZvbnQoKTsKKyAgICAgICAgICAgICAgICBnLnNldEZvbnQoZm9udCk7CisgICAgICAgICAgICAgICAgRm9udE1ldHJpY3MgZm0gPSBnLmdldEZvbnRNZXRyaWNzKCk7CisgICAgICAgICAgICAgICAgaW50IGFzY2VudCA9IGZtLmdldEFzY2VudCgpOworCisgICAgICAgICAgICAgICAgLy8gc2V0IGFkanVzdG1lbnQKKyAgICAgICAgICAgICAgICBpZiAoc3R5bGUgPT0gSU4pCisgICAgICAgICAgICAgICAgICAgIGFkanVzdDEgPSAxOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgYWRqdXN0MiA9IDE7CisKKyAgICAgICAgICAgICAgICAvLyBDYWxjdWxhdGUgYWRqdXN0bWVudCBmb3IgdGV4dAorICAgICAgICAgICAgICAgIGludCBhZGp1c3RtZW50ID0gMDsKKyAgICAgICAgICAgICAgICBpZiAodGV4dCAhPSBudWxsICYmIHRleHQubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChhc2NlbnQgPiB0aGlja25lc3MpCisgICAgICAgICAgICAgICAgICAgICAgICBhZGp1c3RtZW50ID0gKGFzY2VudCAtIHRoaWNrbmVzcykgLyAyOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBUaGUgYWRqdXN0bWVudCBpcyB0aGVyZSBzbyB0aGF0IHdlIGFsd2F5cyBkcmF3IHRoZQorICAgICAgICAgICAgICAgIC8vIGxpZ2h0IHJlY3RhbmdsZSBmaXJzdC4gT3RoZXJ3aXNlLCB5b3VyIGV5ZSBwaWNrcyB1cAorICAgICAgICAgICAgICAgIC8vIHRoZSBkaXNjcmVwYW5jeSB3aGVyZSB0aGUgbGlnaHQgcmVjdC4gcGFzc2VzIG92ZXIKKyAgICAgICAgICAgICAgICAvLyB0aGUgZGFya2VyIHJlY3QuCisgICAgICAgICAgICAgICAgaW50IHggPSB0aGlja25lc3MgLyAyOworICAgICAgICAgICAgICAgIGludCB5ID0gdGhpY2tuZXNzIC8gMiArIGFkanVzdG1lbnQ7CisgICAgICAgICAgICAgICAgaW50IHcgPSB3aWR0aCAtIHRoaWNrbmVzcyAtIDE7CisgICAgICAgICAgICAgICAgaW50IGggPSBoZWlnaHQgLSB0aGlja25lc3MgLSAxIC0gYWRqdXN0bWVudDsKKworICAgICAgICAgICAgICAgIC8vIGRyYXcgcmVjdGFuZ2xlcworICAgICAgICAgICAgICAgIGcuc2V0Q29sb3IobGlnaHQpOworICAgICAgICAgICAgICAgIGcuZHJhd1JlY3QoeCArIGFkanVzdDEsIHkgKyBhZGp1c3QxLCB3LCBoKTsKKyAgICAgICAgICAgICAgICBnLnNldENvbG9yKGRhcmspOworICAgICAgICAgICAgICAgIGcuZHJhd1JlY3QoeCArIGFkanVzdDIsIHkgKyBhZGp1c3QyLCB3LCBoKTsKKworICAgICAgICAgICAgICAgIC8vIGRyYXcgdGV4dCwgaWYgYXBwbGljYWJsZQorICAgICAgICAgICAgICAgIGlmICh0ZXh0ICE9IG51bGwgJiYgdGV4dC5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gY2FsY3VsYXRlIGRyYXdpbmcgYXJlYQorICAgICAgICAgICAgICAgICAgICBpbnQgZm9udGhlaWdodCA9IGZtLmdldEhlaWdodCgpOworICAgICAgICAgICAgICAgICAgICBpbnQgc3Ryd2lkdGggPSBmbS5zdHJpbmdXaWR0aCh0ZXh0KTsKKworICAgICAgICAgICAgICAgICAgICBpbnQgdGV4dHdpZHRoID0gd2lkdGggLSAyICogKHRoaWNrbmVzcyArIDUpOworICAgICAgICAgICAgICAgICAgICBpZiAoc3Ryd2lkdGggPiB0ZXh0d2lkdGgpCisgICAgICAgICAgICAgICAgICAgICAgICBzdHJ3aWR0aCA9IHRleHR3aWR0aDsKKworICAgICAgICAgICAgICAgICAgICAvLyBjYWxjdWxhdGUgb2Zmc2V0IGZvciBhbGlnbm1lbnQKKyAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldDsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChhbGlnbm1lbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgQ0VOVEVSOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCA9ICh3aWR0aCAtIHN0cndpZHRoKSAvIDI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFJJR0hUOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCA9IHdpZHRoIC0gc3Ryd2lkdGggLSB0aGlja25lc3MgLSA1OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBMRUZUOgorICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogLy8gYXNzdW1lIGxlZnQgYWxpZ25tZW50IGlmIGludmFsaWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgPSB0aGlja25lc3MgKyA1OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8vIGNsZWFyIGRyYXdpbmcgYXJlYSBhbmQgc2V0IGNsaXBwaW5nIHJlZ2lvbgorICAgICAgICAgICAgICAgICAgICBnLmNsZWFyUmVjdChvZmZzZXQgLSA1LCAwLCBzdHJ3aWR0aCAgKyAxMCwgZm9udGhlaWdodCk7CisgICAgICAgICAgICAgICAgICAgIGcuY2xpcFJlY3Qob2Zmc2V0LCAwLCBzdHJ3aWR0aCwgZm9udGhlaWdodCk7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gZHJhdyB0ZXh0CisgICAgICAgICAgICAgICAgICAgIGcuc2V0Q29sb3IoY29sb3IpOworICAgICAgICAgICAgICAgICAgICBnLmRyYXdTdHJpbmcodGV4dCwgb2Zmc2V0LCBhc2NlbnQpOworCisgICAgICAgICAgICAgICAgICAgIC8vIHJlc3RvcmUgb2xkIGNsaXBwaW5nIGFyZWEKKyAgICAgICAgICAgICAgICAgICAgZy5jbGlwUmVjdCgwLCAwLCB3aWR0aCwgaGVpZ2h0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZy5zZXRGb250KG9sZGZvbnQpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIFNPTElEOgorICAgICAgICAgICAgZGVmYXVsdDogLy8gYXNzdW1lIFNPTElECisgICAgICAgICAgICAgICAgZy5zZXRDb2xvcihjb2xvcik7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0aGlja25lc3M7IGkrKykKKyAgICAgICAgICAgICAgICAgICAgZy5kcmF3UmVjdChpLCBpLCB3aWR0aCAtIDIgKiBpIC0gMSwgaGVpZ2h0IC0gMiAqIGkgLSAxKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBzZXR0aW5ncyBvZiB0aGlzIEhvbGlkYXlCb3JkZXJQYW5lbCBpbnN0YW5jZSBhcyBhIHN0cmluZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgc3RyID0gbmV3IFN0cmluZ0J1ZmZlcigiSG9saWRheUJvcmRlclBhbmVsWyIpOworCisgICAgICAgIC8vIHN0eWxlCisgICAgICAgIHN0ci5hcHBlbmQoInN0eWxlPSIpOworICAgICAgICBzd2l0Y2ggKHN0eWxlKSB7CisgICAgICAgICAgICBjYXNlIFNPTElEOiBzdHIuYXBwZW5kKCJTT0xJRCIpOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgUkFJU0VEOiBzdHIuYXBwZW5kKCJSQUlTRUQiKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIExPV0VSRUQ6IHN0ci5hcHBlbmQoIkxPV0VSRUQiKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIElOOiBzdHIuYXBwZW5kKCJJTiIpOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgT1VUOiBzdHIuYXBwZW5kKCJPVVQiKTsgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OiBzdHIuYXBwZW5kKCJ1bmtub3duIik7CisgICAgICAgICAgICB9CisgICAgICAgIHN0ci5hcHBlbmQoIiwiKTsKKworICAgICAgICAvLyB0aGlja25lc3MKKyAgICAgICAgc3RyLmFwcGVuZCgidGhpY2tuZXNzPSIpOworICAgICAgICBzdHIuYXBwZW5kKHRoaWNrbmVzcyk7CisgICAgICAgIHN0ci5hcHBlbmQoIiwiKTsKKworICAgICAgICAvLyBnYXAKKyAgICAgICAgc3RyLmFwcGVuZCgiZ2FwPSIpOworICAgICAgICBzdHIuYXBwZW5kKGdhcCk7CisgICAgICAgIHN0ci5hcHBlbmQoIiwiKTsKKworICAgICAgICAvLyBjb2xvcgorICAgICAgICBzdHIuYXBwZW5kKGNvbG9yKTsKKyAgICAgICAgc3RyLmFwcGVuZCgiLCIpOworCisgICAgICAgIC8vIGZvbnQKKyAgICAgICAgc3RyLmFwcGVuZChmb250KTsKKyAgICAgICAgc3RyLmFwcGVuZCgiLCIpOworCisgICAgICAgIC8vIHRleHQKKyAgICAgICAgc3RyLmFwcGVuZCgidGV4dD0iKTsKKyAgICAgICAgc3RyLmFwcGVuZCh0ZXh0KTsKKyAgICAgICAgc3RyLmFwcGVuZCgiLCIpOworCisgICAgICAgIC8vIGFsaWdubWVudAorICAgICAgICBzdHIuYXBwZW5kKCJhbGlnbm1lbnQ9Iik7CisgICAgICAgIHN3aXRjaCAoYWxpZ25tZW50KSB7CisgICAgICAgICAgICBjYXNlIExFRlQ6IHN0ci5hcHBlbmQoIkxFRlQiKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENFTlRFUjogc3RyLmFwcGVuZCgiQ0VOVEVSIik7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBSSUdIVDogc3RyLmFwcGVuZCgiUklHSFQiKTsgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OiBzdHIuYXBwZW5kKCJ1bmtub3duIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgc3RyLmFwcGVuZCgiXSIpOworCisgICAgICAgIHJldHVybiBzdHIudG9TdHJpbmcoKTsKKyAgICAgICAgfQorCisgICAgfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaG9saWRheS9Ib2xpZGF5Q2FsZW5kYXJEZW1vLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaG9saWRheS9Ib2xpZGF5Q2FsZW5kYXJEZW1vLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTdhZjMwNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9ob2xpZGF5L0hvbGlkYXlDYWxlbmRhckRlbW8uamF2YQpAQCAtMCwwICsxLDcyMiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2hvbGlkYXkvSG9saWRheUNhbGVuZGFyRGVtby5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE5IDA0OjEwOjIzICQgCisgKiAkUmV2aXNpb246IDEuOSAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby5ob2xpZGF5OworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LmRlbW8uKjsKK2ltcG9ydCBqYXZhLmFwcGxldC5BcHBsZXQ7CitpbXBvcnQgamF2YS5hd3QuKjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC4qOworLy9pbXBvcnQgamF2YS51dGlsLio7CitpbXBvcnQgamF2YS5uZXQuKjsKK2ltcG9ydCBqYXZhLmlvLio7CisKKy8vaW1wb3J0IGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdDsKK2ltcG9ydCBqYXZhLnRleHQuRGF0ZUZvcm1hdFN5bWJvbHM7CisvL2ltcG9ydCBqYXZhLnV0aWwuU2ltcGxlVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5TaW1wbGVUaW1lWm9uZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LmRlbW8uaW1wbC4qOworCisvKioKKyAqIENhbGVuZGFyRGVtbyBkZW1vbnN0cmF0ZXMgaG93IENhbGVuZGFyIHdvcmtzLgorICovCitwdWJsaWMgY2xhc3MgSG9saWRheUNhbGVuZGFyRGVtbyBleHRlbmRzIERlbW9BcHBsZXQgCit7CisgICAgLyoqCisgICAgICogVGhlIG1haW4gZnVuY3Rpb24gd2hpY2ggZGVmaW5lcyB0aGUgYmVoYXZpb3Igb2YgdGhlIENhbGVuZGFyRGVtbworICAgICAqIGFwcGxldCB3aGVuIGFuIGFwcGxldCBpcyBzdGFydGVkLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmd2W10pIHsKKworICAgICAgICBuZXcgSG9saWRheUNhbGVuZGFyRGVtbygpLnNob3dEZW1vKCk7CisgICAgfQorCisgICAgLyogVGhpcyBjcmVhdGVzIGEgQ2FsZW5kYXJGcmFtZSBmb3IgdGhlIGRlbW8gYXBwbGV0LiAqLworICAgIHB1YmxpYyBGcmFtZSBjcmVhdGVEZW1vRnJhbWUoRGVtb0FwcGxldCBhcHBsZXQpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDYWxlbmRhckZyYW1lKGFwcGxldCk7CisgICAgfQorCisJLyoqCisJKiBBIEZyYW1lIGlzIGEgdG9wLWxldmVsIHdpbmRvdyB3aXRoIGEgdGl0bGUuIFRoZSBkZWZhdWx0IGxheW91dCBmb3IgYSBmcmFtZQorCSogaXMgQm9yZGVyTGF5b3V0LiAgVGhlIENhbGVuZGFyRnJhbWUgY2xhc3MgZGVmaW5lcyB0aGUgd2luZG93IGxheW91dCBvZgorCSogQ2FsZW5kYXJEZW1vLgorCSovCisJcHJpdmF0ZSBzdGF0aWMgY2xhc3MgQ2FsZW5kYXJGcmFtZSBleHRlbmRzIEZyYW1lIGltcGxlbWVudHMgQWN0aW9uTGlzdGVuZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSXRlbUxpc3RlbmVyCisJeworICAgIAlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgY3JlZGl0U3RyaW5nID0gIiI7CisKKyAgICAJcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IGZhbHNlOworCisgICAgCXByaXZhdGUgTG9jYWxlIGN1ckxvY2FsZSA9IExvY2FsZS5VUzsKKworICAgIAlwcml2YXRlIERlbW9BcHBsZXQgYXBwbGV0OworCisgICAgCXByaXZhdGUgc3RhdGljIGZpbmFsIExvY2FsZVtdIGNhbGVuZGFycyA9IHsKKyAgICAgICAgCS8vbmV3IExvY2FsZSgiZGUiLCJBVCIpLAorICAgICAgICAJTG9jYWxlLkNBTkFEQSwKKyAgICAgICAgCUxvY2FsZS5DQU5BREFfRlJFTkNILAorICAgICAgICAJTG9jYWxlLkZSQU5DRSwKKyAgICAgICAgCUxvY2FsZS5HRVJNQU5ZLAorICAgICAgICAJbmV3IExvY2FsZSgiaXciLCJJTCIpLAorICAgICAgICAJbmV3IExvY2FsZSgiZWwiLCJHUiIpLAorICAgICAgICAJLy9uZXcgTG9jYWxlKCJlcyIsIk1YIiksCisgICAgICAgIAlMb2NhbGUuVUssCisgICAgICAgIAlMb2NhbGUuVVMsCisgICAgCX07CisgICAgCXByaXZhdGUgc3RhdGljIGZpbmFsIExvY2FsZVtdIGRpc3BsYXlzID0geworICAgICAgICAJTG9jYWxlLkNBTkFEQSwKKyAgICAgICAgCUxvY2FsZS5VSywKKyAgICAgICAgCUxvY2FsZS5VUywKKyAgICAgICAgCUxvY2FsZS5GUkFOQ0UsCisgICAgICAgIAlMb2NhbGUuQ0FOQURBX0ZSRU5DSCwKKyAgICAgICAgCS8vbmV3IExvY2FsZSgiZGUiLCJBVCIpLAorICAgICAgICAJTG9jYWxlLkdFUk1BTiwKKyAgICAgICAgCW5ldyBMb2NhbGUoImVsIiwiR1IiKSwKKyAgICAgICAgCS8vbmV3IExvY2FsZSgiaXciLCJJTCIpLAorICAgICAgICAJbmV3IExvY2FsZSgiZXMiLCJNWCIpLAorICAgIAl9OworCisgICAgCS8qKgorICAgIAkqIENvbnN0cnVjdHMgYSBuZXcgQ2FsZW5kYXJGcmFtZSB0aGF0IGlzIGluaXRpYWxseSBpbnZpc2libGUuCisgICAgCSovCisgICAgCXB1YmxpYyBDYWxlbmRhckZyYW1lKERlbW9BcHBsZXQgYXBwbGV0KQorICAgIAl7CisgICAgICAgIAlzdXBlcigiQ2FsZW5kYXIgRGVtbyIpOworICAgICAgICAJdGhpcy5hcHBsZXQgPSBhcHBsZXQ7CisgICAgICAgIAlpbml0KCk7CisgICAgICAgIAlzdGFydCgpOworICAgICAgICAJZW5hYmxlRXZlbnRzKFdpbmRvd0V2ZW50LldJTkRPV19DTE9TSU5HKTsKKyAgICAJfQorCisgICAgCS8qKgorICAgIAkqIEluaXRpYWxpemVzIHRoZSBhcHBsZXQuIFlvdSBuZXZlciBuZWVkIHRvIGNhbGwgdGhpcyBkaXJlY3RseSwgaXQKKyAgICAJKiBpcyBjYWxsZWQgYXV0b21hdGljYWxseSBieSB0aGUgc3lzdGVtIG9uY2UgdGhlIGFwcGxldCBpcyBjcmVhdGVkLgorICAgIAkqLworICAgIAlwdWJsaWMgdm9pZCBpbml0KCkKKyAgICAJeworICAgICAgICAJLy8gR2V0IEc3IGxvY2FsZXMgb25seSBmb3IgZGVtbyBwdXJwb3NlLiBUbyBnZXQgYWxsIHRoZSBsb2NhbGVzCisgICAgICAgIAkvLyBzdXBwb3J0ZWQsIHN3aXRjaCB0byBjYWxsaW5nIENhbGVuZGFyLmdldEF2YWlsYWJsZUxvY2FsZXMoKS4KKyAgICAgICAgCS8vIGNvbW1lbnRlZAorICAgICAgICAJbG9jYWxlcyA9IGRpc3BsYXlzOworCisgICAgICAgIAlidWlsZEdVSSgpOworICAgIAl9CisKKyAgICAJLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAJLy8gcGFja2FnZSBwcml2YXRlCisgICAgCS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCXZvaWQgYWRkV2l0aEZvbnQoQ29udGFpbmVyIGNvbnRhaW5lciwgQ29tcG9uZW50IGZvbywgRm9udCBmb250KSB7CisgICAgICAgIAlpZiAoZm9udCAhPSBudWxsKQorICAgICAgICAgICAgCWZvby5zZXRGb250KGZvbnQpOworICAgICAgICAJY29udGFpbmVyLmFkZChmb28pOworICAgIAl9CisKKyAgICAJLyoqCisgICAgCSogQ2FsbGVkIHRvIHN0YXJ0IHRoZSBhcHBsZXQuIFlvdSBuZXZlciBuZWVkIHRvIGNhbGwgdGhpcyBtZXRob2QKKyAgICAJKiBkaXJlY3RseSwgaXQgaXMgY2FsbGVkIHdoZW4gdGhlIGFwcGxldCdzIGRvY3VtZW50IGlzIHZpc2l0ZWQuCisgICAgCSovCisgICAgCXB1YmxpYyB2b2lkIHN0YXJ0KCkKKyAgICAJeworICAgICAgICAJLy8gZG8gbm90aGluZworICAgIAl9CisKKyAgICAJcHJpdmF0ZSBDaG9pY2UgICAgICAgICAgbG9jYWxlTWVudTsKKyAgICAJcHJpdmF0ZSBDaG9pY2UgICAgICAgICAgZGlzcGxheU1lbnU7CisgICAgCXByaXZhdGUgTG9jYWxlW10gICAgICAgIGxvY2FsZXM7CisKKyAgICAJcHJpdmF0ZSBMYWJlbCAgICAgICAgICAgbW9udGhMYWJlbDsKKyAgICAJcHJpdmF0ZSBCdXR0b24gICAgICAgICAgcHJldlllYXI7CisgICAgCXByaXZhdGUgQnV0dG9uICAgICAgICAgIHByZXZNb250aDsKKyAgICAJcHJpdmF0ZSBCdXR0b24gICAgICAgICAgZ290b1RvZGF5OworICAgIAlwcml2YXRlIEJ1dHRvbiAgICAgICAgICBuZXh0TW9udGg7CisgICAgCXByaXZhdGUgQnV0dG9uICAgICAgICAgIG5leHRZZWFyOworICAgIAlwcml2YXRlIENhbGVuZGFyUGFuZWwgICBjYWxlbmRhclBhbmVsOworCisgICAgCXByaXZhdGUgc3RhdGljIGZpbmFsIExvY2FsZSBrRmlyc3RMb2NhbGUgPSBMb2NhbGUuVVM7CisKKyAgICAJcHJpdmF0ZSBzdGF0aWMgdm9pZCBhZGQoQ29udGFpbmVyIGNvbnRhaW5lciwgQ29tcG9uZW50IGNvbXBvbmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAJR3JpZEJhZ0xheW91dCBnLCBHcmlkQmFnQ29uc3RyYWludHMgYykKKyAgICAJeworICAgICAgICAJZy5zZXRDb25zdHJhaW50cyhjb21wb25lbnQsIGMpOworICAgICAgICAJY29udGFpbmVyLmFkZChjb21wb25lbnQpOworICAgIAl9CisKKyAgICAJcHVibGljIHZvaWQgYnVpbGRHVUkoKQorICAgIAl7CisgICAgICAgIAlzZXRCYWNrZ3JvdW5kKERlbW9VdGlsaXR5LmJnQ29sb3IpOworICAgICAgICAJc2V0TGF5b3V0KG5ldyBCb3JkZXJMYXlvdXQoMTAsMTApKTsKKworICAgICAgICAJLy8gTGFiZWwgZm9yIHRoZSBkZW1vJ3MgdGl0bGUKKyAgICAgICAgCUxhYmVsIHRpdGxlTGFiZWwgPSBuZXcgTGFiZWwoIkNhbGVuZGFyIERlbW8iLCBMYWJlbC5DRU5URVIpOworICAgICAgICAJdGl0bGVMYWJlbC5zZXRGb250KERlbW9VdGlsaXR5LnRpdGxlRm9udCk7CisKKyAgICAgICAgCS8vIExhYmVsIGZvciB0aGUgY3VycmVudCBtb250aCBuYW1lCisgICAgICAgIAltb250aExhYmVsID0gbmV3IExhYmVsKCIiLCBMYWJlbC5MRUZUKTsKKyAgICAgICAgCW1vbnRoTGFiZWwuc2V0Rm9udChuZXcgRm9udChEZW1vVXRpbGl0eS50aXRsZUZvbnQuZ2V0TmFtZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCURlbW9VdGlsaXR5LnRpdGxlRm9udC5nZXRTdHlsZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCShEZW1vVXRpbGl0eS50aXRsZUZvbnQuZ2V0U2l6ZSgpICogMykvMikpOworCisgICAgICAgIAkvLyBNYWtlIHRoZSBsb2NhbGUgcG9wdXAgbWVudXMKKyAgICAgICAgCWxvY2FsZU1lbnU9IG5ldyBDaG9pY2UoKTsKKyAgICAgICAgCWxvY2FsZU1lbnUuYWRkSXRlbUxpc3RlbmVyKHRoaXMpOworICAgICAgICAJaW50IHNlbGVjdE1lID0gMDsKKyAgICAgICAgCQorICAgICAgICAJZm9yIChpbnQgaSA9IDA7IGkgPCBjYWxlbmRhcnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIAlpZiAoaSA+IDAgJiYKKyAgICAgICAgICAgICAgICAgICAgCWNhbGVuZGFyc1tpXS5nZXRDb3VudHJ5KCkuZXF1YWxzKGNhbGVuZGFyc1tpLTFdLmdldENvdW50cnkoKSkgfHwKKyAgICAgICAgICAgICAgICAJaSA8IGNhbGVuZGFycy5sZW5ndGggLSAxICYmCisgICAgICAgICAgICAgICAgICAgIAljYWxlbmRhcnNbaV0uZ2V0Q291bnRyeSgpLmVxdWFscyhjYWxlbmRhcnNbaSsxXS5nZXRDb3VudHJ5KCkpKQorICAgICAgICAgICAgCXsKKyAgICAgICAgICAgICAgICAJbG9jYWxlTWVudS5hZGRJdGVtKGNhbGVuZGFyc1tpXS5nZXREaXNwbGF5Q291bnRyeSgpICsgIiAoIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAljYWxlbmRhcnNbaV0uZ2V0RGlzcGxheUxhbmd1YWdlKCkgKyAiKSIpOworICAgICAgICAgICAgCX0gZWxzZSB7CisgICAgICAgICAgICAgICAgCWxvY2FsZU1lbnUuYWRkSXRlbSggY2FsZW5kYXJzW2ldLmdldERpc3BsYXlDb3VudHJ5KCkgKTsKKyAgICAgICAgICAgIAl9CisgICAgICAgICAgICAJCisgICAgICAgICAgICAJaWYgKGNhbGVuZGFyc1tpXS5lcXVhbHMoa0ZpcnN0TG9jYWxlKSkgeworICAgICAgICAgICAgICAgIAlzZWxlY3RNZSA9IGk7CisgICAgICAgICAgICAJfQorICAgICAgICAJfQorICAgICAgICAJCisgICAgICAgIAlsb2NhbGVNZW51LnNldEJhY2tncm91bmQoRGVtb1V0aWxpdHkuY2hvaWNlQ29sb3IpOworICAgICAgICAJbG9jYWxlTWVudS5zZWxlY3Qoc2VsZWN0TWUpOworCisgICAgICAgIAlkaXNwbGF5TWVudSA9IG5ldyBDaG9pY2UoKTsKKyAgICAgICAgCWRpc3BsYXlNZW51LmFkZEl0ZW1MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgCQorICAgICAgICAJc2VsZWN0TWUgPSAwOworICAgICAgICAJZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAJaWYgKGkgPiAwICYmCisgICAgICAgICAgICAgICAgICAgIAlsb2NhbGVzW2ldLmdldExhbmd1YWdlKCkuZXF1YWxzKGxvY2FsZXNbaS0xXS5nZXRMYW5ndWFnZSgpKSB8fAorICAgICAgICAgICAgICAgIAlpIDwgbG9jYWxlcy5sZW5ndGggLSAxICYmCisgICAgICAgICAgICAgICAgICAgIAlsb2NhbGVzW2ldLmdldExhbmd1YWdlKCkuZXF1YWxzKGxvY2FsZXNbaSsxXS5nZXRMYW5ndWFnZSgpKSkKKyAgICAgICAgICAgIAl7CisgICAgICAgICAgICAgICAgCWRpc3BsYXlNZW51LmFkZEl0ZW0oIGxvY2FsZXNbaV0uZ2V0RGlzcGxheU5hbWUoKSApOworICAgICAgICAgICAgCX0gZWxzZSB7CisgICAgICAgICAgICAgICAgCWRpc3BsYXlNZW51LmFkZEl0ZW0oIGxvY2FsZXNbaV0uZ2V0RGlzcGxheUxhbmd1YWdlKCkpOworICAgICAgICAgICAgCX0KKyAgICAgICAgICAgIAkKKyAgICAgICAgICAgIAlpZiAobG9jYWxlc1tpXS5lcXVhbHMoa0ZpcnN0TG9jYWxlKSkgeworICAgICAgICAgICAgCSAgICBzZWxlY3RNZSA9IGk7CisgICAgICAgICAgICAJfQorICAgICAgICAJfQorICAgICAgICAJCisgICAgICAgIAlkaXNwbGF5TWVudS5zZXRCYWNrZ3JvdW5kKERlbW9VdGlsaXR5LmNob2ljZUNvbG9yKTsKKyAgICAgICAgCWRpc3BsYXlNZW51LnNlbGVjdChzZWxlY3RNZSk7CisKKyAgICAgICAgCS8vIE1ha2UgYWxsIHRoZSBuZXh0L3ByZXZpb3VzL3RvZGF5IGJ1dHRvbnMKKyAgICAgICAgCXByZXZZZWFyID0gbmV3IEJ1dHRvbigiPDwiKTsKKyAgICAgICAgCXByZXZZZWFyLmFkZEFjdGlvbkxpc3RlbmVyKHRoaXMpOworICAgICAgICAJcHJldk1vbnRoID0gbmV3IEJ1dHRvbigiPCIpOworICAgICAgICAJcHJldk1vbnRoLmFkZEFjdGlvbkxpc3RlbmVyKHRoaXMpOworICAgICAgICAJZ290b1RvZGF5ID0gbmV3IEJ1dHRvbigiVG9kYXkiKTsKKyAgICAgICAgCWdvdG9Ub2RheS5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgCW5leHRNb250aCA9IG5ldyBCdXR0b24oIj4iKTsKKyAgICAgICAgCW5leHRNb250aC5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgCW5leHRZZWFyID0gbmV3IEJ1dHRvbigiPj4iKTsKKyAgICAgICAgCW5leHRZZWFyLmFkZEFjdGlvbkxpc3RlbmVyKHRoaXMpOworCisgICAgICAgIAkvLyBUaGUgbW9udGggbmFtZSBhbmQgdGhlIGNvbnRyb2wgYnV0dG9ucyBhcmUgYnVuY2hlZCB0b2dldGhlcgorICAgICAgICAJUGFuZWwgbW9udGhQYW5lbCA9IG5ldyBQYW5lbCgpOworICAgICAgICAJeworICAgICAgICAgICAgCUdyaWRCYWdMYXlvdXQgZyA9IG5ldyBHcmlkQmFnTGF5b3V0KCk7CisgICAgICAgICAgICAJR3JpZEJhZ0NvbnN0cmFpbnRzIGMgPSBuZXcgR3JpZEJhZ0NvbnN0cmFpbnRzKCk7CisgICAgICAgICAgICAJbW9udGhQYW5lbC5zZXRMYXlvdXQoZyk7CisKKyAgICAgICAgICAgIAljLndlaWdodHggPSAxOworICAgICAgICAgICAgCWMud2VpZ2h0eSA9IDE7CisKKyAgICAgICAgICAgIAljLmdyaWR3aWR0aCA9IDE7CisgICAgICAgICAgICAJYy5maWxsID0gR3JpZEJhZ0NvbnN0cmFpbnRzLkhPUklaT05UQUw7CisgICAgICAgICAgICAJYy5ncmlkd2lkdGggPSBHcmlkQmFnQ29uc3RyYWludHMuUkVNQUlOREVSOworICAgICAgICAgICAgCWFkZChtb250aFBhbmVsLCBtb250aExhYmVsLCBnLCBjKTsKKworICAgICAgICAgICAgCWMuZ3JpZHdpZHRoID0gMTsKKyAgICAgICAgICAgIAlhZGQobW9udGhQYW5lbCwgcHJldlllYXIsIGcsIGMpOworICAgICAgICAgICAgCWFkZChtb250aFBhbmVsLCBwcmV2TW9udGgsIGcsIGMpOworICAgICAgICAgICAgCWFkZChtb250aFBhbmVsLCBnb3RvVG9kYXksIGcsIGMpOworICAgICAgICAgICAgCWFkZChtb250aFBhbmVsLCBuZXh0TW9udGgsIGcsIGMpOworICAgICAgICAgICAgCWMuZ3JpZHdpZHRoID0gR3JpZEJhZ0NvbnN0cmFpbnRzLlJFTUFJTkRFUjsKKyAgICAgICAgICAgIAlhZGQobW9udGhQYW5lbCwgbmV4dFllYXIsIGcsIGMpOworICAgICAgICAJfQorCisgICAgICAgIAkvLyBTdGljayB0aGUgbWVudSBhbmQgYnV0dG9ucyBpbiBhIGxpdHRsZSAiY29udHJvbCBwYW5lbCIKKyAgICAgICAgCVBhbmVsIG1lbnVQYW5lbCA9IG5ldyBQYW5lbCgpOworICAgICAgICAJeworICAgICAgICAgICAgCUdyaWRCYWdMYXlvdXQgZyA9IG5ldyBHcmlkQmFnTGF5b3V0KCk7CisgICAgICAgICAgICAJR3JpZEJhZ0NvbnN0cmFpbnRzIGMgPSBuZXcgR3JpZEJhZ0NvbnN0cmFpbnRzKCk7CisgICAgICAgICAgICAJbWVudVBhbmVsLnNldExheW91dChnKTsKKworICAgICAgICAgICAgCWMud2VpZ2h0eCA9IDE7CisgICAgICAgICAgICAJYy53ZWlnaHR5ID0gMTsKKworICAgICAgICAgICAgCWMuZmlsbCA9IEdyaWRCYWdDb25zdHJhaW50cy5IT1JJWk9OVEFMOworCisgICAgICAgICAgICAJYy5ncmlkd2lkdGggPSBHcmlkQmFnQ29uc3RyYWludHMuUkVMQVRJVkU7CisgICAgICAgICAgICAJTGFiZWwgbDEgPSBuZXcgTGFiZWwoIkhvbGlkYXlzIik7CisgICAgICAgICAgICAJbDEuc2V0Rm9udChEZW1vVXRpbGl0eS5sYWJlbEZvbnQpOworICAgICAgICAgICAgCWFkZChtZW51UGFuZWwsIGwxLCBnLCBjKTsKKworICAgICAgICAgICAgCWMuZ3JpZHdpZHRoID0gR3JpZEJhZ0NvbnN0cmFpbnRzLlJFTUFJTkRFUjsKKyAgICAgICAgICAgIAlhZGQobWVudVBhbmVsLCBsb2NhbGVNZW51LCBnLCBjKTsKKworICAgICAgICAgICAgCWMuZ3JpZHdpZHRoID0gR3JpZEJhZ0NvbnN0cmFpbnRzLlJFTEFUSVZFOworICAgICAgICAgICAgCUxhYmVsIGwyID0gbmV3IExhYmVsKCJEaXNwbGF5OiIpOworICAgICAgICAgICAgCWwyLnNldEZvbnQoRGVtb1V0aWxpdHkubGFiZWxGb250KTsKKyAgICAgICAgICAgIAlhZGQobWVudVBhbmVsLCBsMiwgZywgYyk7CisKKyAgICAgICAgICAgIAljLmdyaWR3aWR0aCA9IEdyaWRCYWdDb25zdHJhaW50cy5SRU1BSU5ERVI7CisgICAgICAgICAgICAJYWRkKG1lbnVQYW5lbCwgZGlzcGxheU1lbnUsIGcsIGMpOworICAgICAgICAJfQorCisgICAgICAgIAkvLyBUaGUgdGl0bGUsIGJ1dHRvbnMsIGV0Yy4gZ28gaW4gYSBwYW5lbCBhdCB0aGUgdG9wIG9mIHRoZSB3aW5kb3cKKyAgICAgICAgCVBhbmVsIHRvcFBhbmVsID0gbmV3IFBhbmVsKCk7CisgICAgICAgIAl7CisgICAgICAgICAgICAJdG9wUGFuZWwuc2V0TGF5b3V0KG5ldyBCb3JkZXJMYXlvdXQoKSk7CisKKyAgICAgICAgICAgIAkvL3RvcFBhbmVsLmFkZCgiTm9ydGgiLCB0aXRsZUxhYmVsKTsKKyAgICAgICAgICAgIAl0b3BQYW5lbC5hZGQoIkNlbnRlciIsIG1vbnRoUGFuZWwpOworICAgICAgICAgICAgCXRvcFBhbmVsLmFkZCgiRWFzdCIsIG1lbnVQYW5lbCk7CisgICAgICAgIAl9CisgICAgICAgIAlhZGQoIk5vcnRoIiwgdG9wUGFuZWwpOworCisgICAgICAgIAkvLyBUaGUgY29weXJpZ2h0IG5vdGljZSBnb2VzIGF0IHRoZSBib3R0b20gb2YgdGhlIHdpbmRvdworICAgICAgICAJTGFiZWwgY29weXJpZ2h0ID0gbmV3IExhYmVsKERlbW9VdGlsaXR5LmNvcHlyaWdodDEsIExhYmVsLkxFRlQpOworICAgICAgICAJY29weXJpZ2h0LnNldEZvbnQoRGVtb1V0aWxpdHkuY3JlZGl0Rm9udCk7CisgICAgICAgIAlhZGQoIlNvdXRoIiwgY29weXJpZ2h0KTsKKworICAgICAgICAJLy8gTm93IGNyZWF0ZSB0aGUgYmlnIGNhbGVuZGFyIHBhbmVsIGFuZCBzdGljayBpdCBpbiB0aGUgbWlkZGxlCisgICAgICAgIAljYWxlbmRhclBhbmVsID0gbmV3IENhbGVuZGFyUGFuZWwoIGtGaXJzdExvY2FsZSApOworICAgICAgICAJYWRkKCJDZW50ZXIiLCBjYWxlbmRhclBhbmVsKTsKKworICAgICAgICAJdXBkYXRlTW9udGhOYW1lKCk7CisgICAgCX0KKworICAgIAlwcml2YXRlIHZvaWQgdXBkYXRlTW9udGhOYW1lKCkKKyAgICAJeworICAgICAgICAJU2ltcGxlRGF0ZUZvcm1hdCBmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIk1NTU0geXl5eXkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAljYWxlbmRhclBhbmVsLmdldERpc3BsYXlMb2NhbGUoKSk7CisgICAgICAgIAlmLnNldENhbGVuZGFyKGNhbGVuZGFyUGFuZWwuZ2V0Q2FsZW5kYXIoKSk7CisgICAgICAgIAlmLnNldFRpbWVab25lKG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiVVRDIikpOyAgICAgICAgLy8gSkRLIDEuMS4yIHdvcmthcm91bmQKKyAgICAgICAgCW1vbnRoTGFiZWwuc2V0VGV4dCggZi5mb3JtYXQoIGNhbGVuZGFyUGFuZWwuZmlyc3RPZk1vbnRoKCkgKSk7CisgICAgCX0KKyAgICAJCisgICAgCS8qKgorICAgIAkqIEhhbmRsZXMgdGhlIGV2ZW50LiBSZXR1cm5zIHRydWUgaWYgdGhlIGV2ZW50IGlzIGhhbmRsZWQgYW5kIHNob3VsZCBub3QKKyAgICAJKiBiZSBwYXNzZWQgdG8gdGhlIHBhcmVudCBvZiB0aGlzIGNvbXBvbmVudC4gVGhlIGRlZmF1bHQgZXZlbnQgaGFuZGxlcgorICAgIAkqIGNhbGxzIHNvbWUgaGVscGVyIG1ldGhvZHMgdG8gbWFrZSBsaWZlIGVhc2llciBvbiB0aGUgcHJvZ3JhbW1lci4KKyAgICAJKi8KKyAgICAJcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpCisgICAgCXsKKyAgICAJICAgIE9iamVjdCBvYmogPSBlLmdldFNvdXJjZSgpOworICAgIAkgICAgCisgICAgCSAgICAvLyAqKiogQnV0dG9uIGV2ZW50cyBhcmUgaGFuZGxlZCBoZXJlLgorICAgICAgICAJaWYgKG9iaiBpbnN0YW5jZW9mIEJ1dHRvbikgeworICAgICAgICAgICAgCWlmIChvYmogPT0gbmV4dE1vbnRoKSB7CisgICAgICAgICAgICAgICAgCWNhbGVuZGFyUGFuZWwuYWRkKENhbGVuZGFyLk1PTlRILCArMSk7CisgICAgICAgICAgICAJfQorICAgICAgICAgICAgCWVsc2UKKyAgICAgICAgICAgIAlpZiAob2JqID09IHByZXZNb250aCkgeworICAgICAgICAgICAgICAgIAljYWxlbmRhclBhbmVsLmFkZChDYWxlbmRhci5NT05USCwgLTEpOworICAgICAgICAgICAgCX0KKyAgICAgICAgICAgIAllbHNlCisgICAgICAgICAgICAJaWYgKG9iaiA9PSBwcmV2WWVhcikgeworICAgICAgICAgICAgICAgIAljYWxlbmRhclBhbmVsLmFkZChDYWxlbmRhci5ZRUFSLCAtMSk7CisgICAgICAgICAgICAJfQorICAgICAgICAgICAgCWVsc2UKKyAgICAgICAgICAgIAlpZiAob2JqID09IG5leHRZZWFyKSB7CisgICAgICAgICAgICAgICAgCWNhbGVuZGFyUGFuZWwuYWRkKENhbGVuZGFyLllFQVIsICsxKTsKKyAgICAgICAgICAgIAl9CisgICAgICAgICAgICAJZWxzZQorICAgICAgICAgICAgCWlmIChvYmogPT0gZ290b1RvZGF5KSB7CisgICAgICAgICAgICAgICAgCWNhbGVuZGFyUGFuZWwuc2V0KCBuZXcgRGF0ZSgpICk7CisgICAgICAgICAgICAJfQorICAgICAgICAgICAgCXVwZGF0ZU1vbnRoTmFtZSgpOworICAgICAgICAJfQorICAgIAl9CisgICAgCQorICAgIAlwdWJsaWMgdm9pZCBpdGVtU3RhdGVDaGFuZ2VkKEl0ZW1FdmVudCBlKQorICAgICAgICB7CisgICAgICAgICAgICBPYmplY3Qgb2JqID0gZS5nZXRTb3VyY2UoKTsKKyAgICAgICAgICAgIGlmIChvYmogPT0gbG9jYWxlTWVudSkgeworICAgICAgICAgICAgCWNhbGVuZGFyUGFuZWwuc2V0Q2FsZW5kYXJMb2NhbGUoY2FsZW5kYXJzW2xvY2FsZU1lbnUuZ2V0U2VsZWN0ZWRJbmRleCgpXSk7CisgICAgICAgICAgICAJdXBkYXRlTW9udGhOYW1lKCk7CisgICAgICAgIAl9CisgICAgICAgIAllbHNlIAorICAgICAgICAJICAgIGlmIChvYmogPT0gZGlzcGxheU1lbnUpIHsKKyAgICAgICAgICAgIAkgICAgY2FsZW5kYXJQYW5lbC5zZXREaXNwbGF5TG9jYWxlKGxvY2FsZXNbZGlzcGxheU1lbnUuZ2V0U2VsZWN0ZWRJbmRleCgpXSk7CisgICAgICAgICAgICAJICAgIHVwZGF0ZU1vbnRoTmFtZSgpOworICAgICAgICAgICAgCX0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgCSogUHJpbnQgb3V0IHRoZSBlcnJvciBtZXNzYWdlIHdoaWxlIGRlYnVnZ2luZyB0aGlzIHByb2dyYW0uCisgICAgCSovCisgICAgCXB1YmxpYyB2b2lkIGVycm9yVGV4dChTdHJpbmcgcykKKyAgICAJeworICAgICAgICAJaWYgKERFQlVHKQorICAgICAgICAJeworICAgICAgICAgICAgCVN5c3RlbS5vdXQucHJpbnRsbihzKTsKKyAgICAgICAgCX0KKyAgICAJfQorICAgIAkKKyAgICAJcHJvdGVjdGVkIHZvaWQgcHJvY2Vzc1dpbmRvd0V2ZW50KFdpbmRvd0V2ZW50IGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZXZlbnQgIiArIGUpOworICAgICAgICAgICAgaWYgKGUuZ2V0SUQoKSA9PSBXaW5kb3dFdmVudC5XSU5ET1dfQ0xPU0lORykgeworICAgICAgICAgICAgCXRoaXMuaGlkZSgpOworICAgICAgICAgICAgCXRoaXMuZGlzcG9zZSgpOworCisgICAgICAgICAgICAJaWYgKGFwcGxldCAhPSBudWxsKSB7CisgICAgICAgICAgICAJICAgIGFwcGxldC5kZW1vQ2xvc2VkKCk7CisgICAgICAgICAgICAJfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmV4aXQoMCk7CisgICAgICAgICAgICAJfQorICAgICAgICAJfQorICAgICAgICB9CisJfQorCisKKwlwcml2YXRlIHN0YXRpYyBjbGFzcyBDYWxlbmRhclBhbmVsIGV4dGVuZHMgQ2FudmFzIHsKKworICAgIAlwdWJsaWMgQ2FsZW5kYXJQYW5lbCggTG9jYWxlIGxvY2FsZSApIHsKKyAgICAgICAgCXNldChsb2NhbGUsIGxvY2FsZSwgbmV3IERhdGUoKSk7CisgICAgCX0KKworICAgIAlwdWJsaWMgdm9pZCBzZXRDYWxlbmRhckxvY2FsZShMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIAlzZXQobG9jYWxlLCBmRGlzcGxheUxvY2FsZSwgZkNhbGVuZGFyLmdldFRpbWUoKSk7CisgICAgCX0KKworICAgIAlwdWJsaWMgdm9pZCBzZXREaXNwbGF5TG9jYWxlKExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgCXNldChmQ2FsZW5kYXJMb2NhbGUsIGxvY2FsZSwgZkNhbGVuZGFyLmdldFRpbWUoKSk7CisgICAgCX0KKworICAgIAlwdWJsaWMgdm9pZCBzZXQoRGF0ZSBkYXRlKSB7CisgICAgICAgIAlzZXQoZkNhbGVuZGFyTG9jYWxlLCBmRGlzcGxheUxvY2FsZSwgZGF0ZSk7CisgICAgCX0KKworICAgIAlwdWJsaWMgdm9pZCBzZXQoTG9jYWxlIGxvYywgTG9jYWxlIGRpc3BsYXksIERhdGUgZGF0ZSkKKyAgICAJeworICAgICAgICAJaWYgKGZDYWxlbmRhckxvY2FsZSA9PSBudWxsIHx8ICFsb2MuZXF1YWxzKGZDYWxlbmRhckxvY2FsZSkpIHsKKyAgICAgICAgICAgIAlmQ2FsZW5kYXJMb2NhbGUgPSBsb2M7CisgICAgICAgICAgICAJZkNhbGVuZGFyID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoZkNhbGVuZGFyTG9jYWxlKTsKKyAgICAgICAgICAgIAlmQWxsSG9saWRheXMgPSBIb2xpZGF5LmdldEhvbGlkYXlzKGZDYWxlbmRhckxvY2FsZSk7CisgICAgICAgIAl9CisgICAgICAgIAlpZiAoZkRpc3BsYXlMb2NhbGUgPT0gbnVsbCB8fCAhZGlzcGxheS5lcXVhbHMoZkRpc3BsYXlMb2NhbGUpKSB7CisgICAgICAgICAgICAJZkRpc3BsYXlMb2NhbGUgPSBkaXNwbGF5OworICAgICAgICAgICAgCWZTeW1ib2xzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKGZEaXNwbGF5TG9jYWxlKTsKKyAgICAgICAgCX0KKworICAgICAgICAJZlN0YXJ0T2ZNb250aCA9IGRhdGU7CisKKyAgICAgICAgCWRpcnR5ID0gdHJ1ZTsKKyAgICAgICAgCXJlcGFpbnQoKTsKKyAgICAJfQorCisgICAgCXB1YmxpYyB2b2lkIGFkZChpbnQgZmllbGQsIGludCBkZWx0YSkKKyAgICAJeworICAgICAgICAJc3luY2hyb25pemVkKGZDYWxlbmRhcikgeworICAgICAgICAgICAgCWZDYWxlbmRhci5zZXRUaW1lKGZTdGFydE9mTW9udGgpOworICAgICAgICAgICAgCWZDYWxlbmRhci5hZGQoZmllbGQsIGRlbHRhKTsKKyAgICAgICAgICAgIAlmU3RhcnRPZk1vbnRoID0gZkNhbGVuZGFyLmdldFRpbWUoKTsKKyAgICAgICAgCX0KKyAgICAgICAgCWRpcnR5ID0gdHJ1ZTsKKyAgICAgICAgCXJlcGFpbnQoKTsKKyAgICAJfQorCisgICAgCXB1YmxpYyBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyIGdldENhbGVuZGFyKCkgeworICAgICAgICAJcmV0dXJuIGZDYWxlbmRhcjsKKyAgICAJfQorCisgICAgCXB1YmxpYyBMb2NhbGUgZ2V0Q2FsZW5kYXJMb2NhbGUoKSB7CisgICAgICAgIAlyZXR1cm4gZkNhbGVuZGFyTG9jYWxlOworICAgIAl9CisKKyAgICAJcHVibGljIExvY2FsZSBnZXREaXNwbGF5TG9jYWxlKCkgeworICAgICAgICAJcmV0dXJuIGZEaXNwbGF5TG9jYWxlOworICAgIAl9CisKKworICAgIAlwdWJsaWMgRGF0ZSBmaXJzdE9mTW9udGgoKSB7CisgICAgICAgIAlyZXR1cm4gZlN0YXJ0T2ZNb250aDsKKyAgICAJfQorCisgICAgCXByaXZhdGUgRGF0ZSBzdGFydE9mTW9udGgoRGF0ZSBkYXRlSW5Nb250aCkKKyAgICAJeworICAgICAgICAJc3luY2hyb25pemVkKGZDYWxlbmRhcikgeworICAgICAgICAgICAgCWZDYWxlbmRhci5zZXRUaW1lKGRhdGVJbk1vbnRoKTsgICAgICAgICAgICAgLy8gVE9ETzogc3luY2hyb25pemF0aW9uCisKKyAgICAgICAgICAgIAlpbnQgZXJhID0gZkNhbGVuZGFyLmdldChDYWxlbmRhci5FUkEpOworICAgICAgICAgICAgCWludCB5ZWFyID0gZkNhbGVuZGFyLmdldChDYWxlbmRhci5ZRUFSKTsKKyAgICAgICAgICAgIAlpbnQgbW9udGggPSBmQ2FsZW5kYXIuZ2V0KENhbGVuZGFyLk1PTlRIKTsKKworICAgICAgICAgICAgCWZDYWxlbmRhci5jbGVhcigpOworICAgICAgICAgICAgCWZDYWxlbmRhci5zZXQoQ2FsZW5kYXIuRVJBLCBlcmEpOworICAgICAgICAgICAgCWZDYWxlbmRhci5zZXQoQ2FsZW5kYXIuWUVBUiwgeWVhcik7CisgICAgICAgICAgICAJZkNhbGVuZGFyLnNldChDYWxlbmRhci5NT05USCwgbW9udGgpOworICAgICAgICAgICAgCWZDYWxlbmRhci5zZXQoQ2FsZW5kYXIuREFURSwgMSk7CisKKyAgICAgICAgICAgIAlyZXR1cm4gZkNhbGVuZGFyLmdldFRpbWUoKTsKKyAgICAgICAgCX0KKyAgICAJfQorCisgICAgCXByaXZhdGUgdm9pZCBjYWxjdWxhdGUoKQorICAgIAl7CisgICAgICAgIAkvLworICAgICAgICAJLy8gQXMgYSB3b3JrYXJvdW5kIGZvciBKREsgMS4xLjMgYW5kIGJlbG93LCB3aGVyZSBDYWxlbmRhcnMgYW5kIHRpbWUKKyAgICAgICAgCS8vIHpvbmVzIGFyZSBhIGJpdCBnb29meSwgYWx3YXlzIHNldCBteSBjYWxlbmRhcidzIHRpbWUgem9uZSB0byBVVEMuCisgICAgICAgIAkvLyBZb3Ugd291bGQgdGhpbmsgSSB3b3VsZCB3YW50IHRvIGRvIHRoaXMgaW4gdGhlICJzZXQiIGZ1bmN0aW9uIGFib3ZlLAorICAgICAgICAJLy8gYnV0IGlmIEkgZG8gdGhhdCwgdGhlIHByb2dyYW0gaGFuZ3Mgd2hlbiB0aGlzIGNsYXNzIGlzIGxvYWRlZCwKKyAgICAgICAgCS8vIHBlcmhhcHMgZHVlIHRvIHNvbWUgc29ydCBvZiBzdGF0aWMgaW5pdGlhbGl6YXRpb24gb3JkZXJpbmcgcHJvYmxlbS4KKyAgICAgICAgCS8vIFNvIEkgZG8gaXQgaGVyZSBpbnN0ZWFkLgorICAgICAgICAJLy8KKyAgICAgICAgCWZDYWxlbmRhci5zZXRUaW1lWm9uZShuZXcgU2ltcGxlVGltZVpvbmUoMCwgIlVUQyIpKTsKKworICAgICAgICAJQ2FsZW5kYXIgYyA9IChDYWxlbmRhcilmQ2FsZW5kYXIuY2xvbmUoKTsgLy8gVGVtcG9yYXJ5IGNvcHkKKworICAgICAgICAJZlN0YXJ0T2ZNb250aCA9IHN0YXJ0T2ZNb250aChmU3RhcnRPZk1vbnRoKTsKKworICAgICAgICAJLy8gU3Rhc2ggYXdheSBhIGZldyB1c2VmdWwgY29uc3RhbnRzIGZvciB0aGlzIGNhbGVuZGFyIGFuZCBkaXNwbGF5CisgICAgICAgIAltaW5EYXkgPSBjLmdldE1pbmltdW0oQ2FsZW5kYXIuREFZX09GX1dFRUspOworICAgICAgICAJZGF5c0luV2VlayA9IGMuZ2V0TWF4aW11bShDYWxlbmRhci5EQVlfT0ZfV0VFSykgLSBtaW5EYXkgKyAxOworCisgICAgICAgIAlmaXJzdERheU9mV2VlayA9IENhbGVuZGFyLmdldEluc3RhbmNlKGZEaXNwbGF5TG9jYWxlKS5nZXRGaXJzdERheU9mV2VlaygpOworCisgICAgICAgIAkvLyBTdGFzaCBhd2F5IGEgRGF0ZSBmb3IgdGhlIHN0YXJ0IG9mIHRoaXMgbW9udGgKKworICAgICAgICAJLy8gRmluZCB0aGUgZGF5IG9mIHdlZWsgb2YgdGhlIGZpcnN0IGRheSBpbiB0aGlzIG1vbnRoCisgICAgICAgIAljLnNldFRpbWUoZlN0YXJ0T2ZNb250aCk7CisgICAgICAgIAlmaXJzdERheUluTW9udGggPSBjLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSyk7CisKKyAgICAgICAgCS8vIE5vdyBmaW5kIHRoZSAjIG9mIGRheXMgaW4gdGhlIG1vbnRoCisgICAgICAgIAljLnJvbGwoQ2FsZW5kYXIuREFURSwgZmFsc2UpOworICAgICAgICAJZGF5c0luTW9udGggPSBjLmdldChDYWxlbmRhci5EQVRFKTsKKworICAgICAgICAJLy8gRmluYWxseSwgZmluZCB0aGUgZW5kIG9mIHRoZSBtb250aCwgaS5lLiB0aGUgc3RhcnQgb2YgdGhlIG5leHQgb25lCisgICAgICAgIAljLnJvbGwoQ2FsZW5kYXIuREFURSwgdHJ1ZSk7CisgICAgICAgIAljLmFkZChDYWxlbmRhci5NT05USCwgMSk7CisgICAgICAgIAljLmdldFRpbWUoKTsgICAgICAgIC8vIEpESyAxLjEuMiBidWcgd29ya2Fyb3VuZAorICAgICAgICAJYy5hZGQoQ2FsZW5kYXIuU0VDT05ELCAtMSk7CisgICAgICAgIAlEYXRlIGVuZE9mTW9udGggPSBjLmdldFRpbWUoKTsKKworICAgICAgICAJLy8KKyAgICAgICAgCS8vIENhbGN1bGF0ZSB0aGUgbnVtYmVyIG9mIGZ1bGwgb3IgcGFydGlhbCB3ZWVrcyBpbiB0aGlzIG1vbnRoLgorICAgICAgICAJLy8gVG8gZG8gdGhpcyBJIGNhbiBqdXN0IHJldXNlIHRoZSBjb2RlIHRoYXQgY2FsY3VsYXRlcyB3aGljaAorICAgICAgICAJLy8gY2FsZW5kYXIgY2VsbCBjb250YWlucyBhIGdpdmVuIGRhdGUuCisgICAgICAgIAkvLworICAgICAgICAJbnVtV2Vla3MgPSBkYXRlVG9DZWxsKGRheXNJbk1vbnRoKS55IC0gZGF0ZVRvQ2VsbCgxKS55ICsgMTsKKworICAgICAgICAJLy8gUmVtZW1iZXIgd2hpY2ggaG9saWRheXMgZmFsbCBvbiB3aGljaCBkYXlzIGluIHRoaXMgbW9udGgsCisgICAgICAgIAkvLyB0byBzYXZlIHRoZSB0cm91YmxlIG9mIGhhdmluZyB0byBkbyBpdCBsYXRlcgorICAgICAgICAJZkhvbGlkYXlzLnNldFNpemUoMCk7CisKKyAgICAgICAgCWZvciAoaW50IGggPSAwOyBoIDwgZkFsbEhvbGlkYXlzLmxlbmd0aDsgaCsrKQorICAgICAgICAJeworICAgICAgICAgICAgCURhdGUgZCA9IGZTdGFydE9mTW9udGg7CisgICAgICAgICAgICAJd2hpbGUgKCAoZCA9IGZBbGxIb2xpZGF5c1toXS5maXJzdEJldHdlZW4oZCwgZW5kT2ZNb250aCkgKSAhPSBudWxsKQorICAgICAgICAgICAgCXsKKyAgICAgICAgICAgICAgICAJYy5zZXRUaW1lKGQpOworICAgICAgICAgICAgICAgIAlmSG9saWRheXMuYWRkRWxlbWVudCggbmV3IEhvbGlkYXlJbmZvKGMuZ2V0KENhbGVuZGFyLkRBVEUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAlmQWxsSG9saWRheXNbaF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCWZBbGxIb2xpZGF5c1toXS5nZXREaXNwbGF5TmFtZShmRGlzcGxheUxvY2FsZSkgKSk7CisKKyAgICAgICAgICAgICAgICAJZC5zZXRUaW1lKCBkLmdldFRpbWUoKSArIDEwMDAgKTsgICAgLy8gImQrKyIKKyAgICAgICAgICAgIAl9CisgICAgICAgIAl9CisgICAgICAgIAlkaXJ0eSA9IGZhbHNlOworICAgIAl9CisKKyAgICAJc3RhdGljIGZpbmFsIGludCBJTlNFVCA9IDI7CisKKyAgICAJLyoKKyAgICAJKiBDb252ZXJ0IGZyb20gdGhlIGRheSBudW1iZXIgd2l0aGluIGEgbW9udGggKDEtYmFzZWQpCisgICAgCSogdG8gdGhlIGNlbGwgY29vcmRpbmF0ZXMgb24gdGhlIGNhbGVuZGFyICgwLWJhc2VkKQorICAgIAkqLworICAgIAlwcml2YXRlIHZvaWQgZGF0ZVRvQ2VsbChpbnQgZGF0ZSwgUG9pbnQgcG9zKQorICAgIAl7CisgICAgICAgIAlpbnQgY2VsbCA9IChkYXRlICsgZmlyc3REYXlJbk1vbnRoIC0gZmlyc3REYXlPZldlZWsgLSBtaW5EYXkpOworICAgICAgICAJaWYgKGZpcnN0RGF5SW5Nb250aCA8IGZpcnN0RGF5T2ZXZWVrKSB7CisgICAgICAgICAgICAJY2VsbCArPSBkYXlzSW5XZWVrOworICAgICAgICAJfQorCisgICAgICAgIAlwb3MueCA9IGNlbGwgJSBkYXlzSW5XZWVrOworICAgICAgICAJcG9zLnkgPSBjZWxsIC8gZGF5c0luV2VlazsKKyAgICAJfQorICAgIAlwcml2YXRlIFBvaW50IGRhdGVUb0NlbGwoaW50IGRhdGUpIHsKKyAgICAgICAgCVBvaW50IHAgPSBuZXcgUG9pbnQoMCwwKTsKKyAgICAgICAgCWRhdGVUb0NlbGwoZGF0ZSwgcCk7CisgICAgICAgIAlyZXR1cm4gcDsKKyAgICAJfQorCisgICAgCXB1YmxpYyB2b2lkIHBhaW50KEdyYXBoaWNzIGcpIHsKKworICAgICAgICAJaWYgKGRpcnR5KSB7CisgICAgICAgICAgICAJY2FsY3VsYXRlKCk7CisgICAgICAgIAl9CisKKyAgICAgICAgCVBvaW50IGNlbGxQb3MgPSBuZXcgUG9pbnQoMCwwKTsgICAgIC8vIFRlbXBvcmFyeSB2YXJpYWJsZQorICAgICAgICAJRGltZW5zaW9uIGQgPSBnZXRTaXplKCk7CisKKyAgICAgICAgCWcuc2V0Q29sb3IoRGVtb1V0aWxpdHkuYmdDb2xvcik7CisgICAgICAgIAlnLmZpbGxSZWN0KDAsMCxkLndpZHRoLGQuaGVpZ2h0KTsKKworICAgICAgICAJLy8gRHJhdyB0aGUgZGF5IG5hbWVzIGF0IHRoZSB0b3AKKyAgICAgICAgCWcuc2V0Q29sb3IoQ29sb3IuYmxhY2spOworICAgICAgICAJZy5zZXRGb250KERlbW9VdGlsaXR5LmxhYmVsRm9udCk7CisgICAgICAgIAlGb250TWV0cmljcyBmbSA9IGcuZ2V0Rm9udE1ldHJpY3MoKTsKKyAgICAgICAgCWludCBsYWJlbEhlaWdodCA9IGZtLmdldEhlaWdodCgpICsgSU5TRVQgKiAyOworCisgICAgICAgIAlpbnQgdiA9IGZtLmdldEFzY2VudCgpICsgSU5TRVQ7CisgICAgICAgIAlmb3IgKGludCBpID0gMDsgaSA8IGRheXNJbldlZWs7IGkrKykgeworICAgICAgICAgICAgCWludCBkYXlOdW0gPSAoaSArIG1pbkRheSArIGZpcnN0RGF5T2ZXZWVrIC0gMikgJSBkYXlzSW5XZWVrICsgMTsKKyAgICAgICAgICAgIAlTdHJpbmcgZGF5TmFtZSA9IGZTeW1ib2xzLmdldFdlZWtkYXlzKClbZGF5TnVtXTsKKworICAgICAgICAgICAgCWludCBoID0gKGludCkgKGQud2lkdGggKiAoaSArIDAuNSkpIC8gZGF5c0luV2VlazsKKyAgICAgICAgICAgIAloIC09IGZtLnN0cmluZ1dpZHRoKGRheU5hbWUpIC8gMjsKKworICAgICAgICAgICAgCWcuZHJhd1N0cmluZyhkYXlOYW1lLCBoLCB2KTsKKyAgICAgICAgCX0KKworICAgICAgICAJZG91YmxlIGNlbGxIZWlnaHQgPSAoZC5oZWlnaHQgLSBsYWJlbEhlaWdodCAtIDEpIC8gbnVtV2Vla3M7CisgICAgICAgIAlkb3VibGUgY2VsbFdpZHRoID0gKGRvdWJsZSkoZC53aWR0aCAtIDEpIC8gZGF5c0luV2VlazsKKworICAgICAgICAJLy8gRHJhdyBhIHdoaXRlIGJhY2tncm91bmQgaW4gdGhlIHBhcnQgb2YgdGhlIGNhbGVuZGFyCisgICAgICAgIAkvLyB0aGF0IGRpc3BsYXlzIHRoaXMgbW9udGguCisgICAgICAgIAkvLyBGaXJzdCBmaWd1cmUgb3V0IGhvdyBtdWNoIG9mIHRoZSBmaXJzdCB3ZWVrIHNob3VsZCBiZSBzaGFkZWQuCisgICAgICAgIAl7CisgICAgICAgICAgICAJZy5zZXRDb2xvcihDb2xvci53aGl0ZSk7CisgICAgICAgICAgICAJZGF0ZVRvQ2VsbCgxLCBjZWxsUG9zKTsKKyAgICAgICAgICAgIAlpbnQgd2lkdGggPSAoaW50KShjZWxsUG9zLngqY2VsbFdpZHRoKTsgIC8vIFdpZHRoIG9mIHVuc2hhZGVkIGFyZWEKKworICAgICAgICAgICAgCWcuZmlsbFJlY3QoKGludCkod2lkdGgpLCBsYWJlbEhlaWdodCAsCisgICAgICAgICAgICAgICAgICAgIAkoaW50KShkLndpZHRoIC0gd2lkdGgpLCAoaW50KWNlbGxIZWlnaHQpOworCisgICAgICAgICAgICAJLy8gQWxsIG9mIHRoZSBpbnRlcm1lZGlhdGUgd2Vla3MgZ2V0IHNoYWRlZCBjb21wbGV0ZWx5CisgICAgICAgICAgICAJZy5maWxsUmVjdCgwLCAoaW50KShsYWJlbEhlaWdodCArIGNlbGxIZWlnaHQpLAorICAgICAgICAgICAgICAgICAgICAgICAgCWQud2lkdGgsIChpbnQpKGNlbGxIZWlnaHQgKiAobnVtV2Vla3MgLSAyKSkpOworCisgICAgICAgICAgICAJLy8gTm93IGZpZ3VyZSBvdXQgdGhlIGxhc3Qgd2Vlay4KKyAgICAgICAgICAgIAlkYXRlVG9DZWxsKGRheXNJbk1vbnRoLCBjZWxsUG9zKTsKKyAgICAgICAgICAgIAl3aWR0aCA9IChpbnQpKChjZWxsUG9zLngrMSkqY2VsbFdpZHRoKTsgIC8vIFdpZHRoIG9mIHNoYWRlZCBhcmVhCisKKyAgICAgICAgICAgIAlnLmZpbGxSZWN0KDAsIChpbnQpKGxhYmVsSGVpZ2h0ICsgKG51bVdlZWtzLTEpICogY2VsbEhlaWdodCksCisgICAgICAgICAgICAgICAgICAgICAgICAJd2lkdGgsIChpbnQpKGNlbGxIZWlnaHQpKTsKKworICAgICAgICAJfQorICAgICAgICAJLy8gRHJhdyB0aGUgWC9ZIGdyaWQgbGluZXMKKyAgICAgICAgCWcuc2V0Q29sb3IoQ29sb3IuYmxhY2spOworICAgICAgICAJZm9yIChpbnQgaSA9IDA7IGkgPD0gbnVtV2Vla3M7IGkrKykgeworICAgICAgICAgICAgCWludCB5ID0gKGludCkobGFiZWxIZWlnaHQgKyBpICogY2VsbEhlaWdodCk7CisgICAgICAgICAgICAJZy5kcmF3TGluZSgwLCB5LCBkLndpZHRoIC0gMSwgeSk7CisgICAgICAgIAl9CisgICAgICAgIAlmb3IgKGludCBpID0gMDsgaSA8PSBkYXlzSW5XZWVrOyBpKyspIHsKKyAgICAgICAgICAgIAlpbnQgeCA9IChpbnQpKGkgKiBjZWxsV2lkdGgpOworICAgICAgICAgICAgCWcuZHJhd0xpbmUoeCwgbGFiZWxIZWlnaHQsIHgsIGQuaGVpZ2h0IC0gMSk7CisgICAgICAgIAl9CisKKyAgICAgICAgCS8vIE5vdyBsb29wIHRocm91Z2ggYWxsIG9mIHRoZSBkYXlzIGluIHRoZSBtb250aCwgZmlndXJlIG91dCB3aGVyZQorICAgICAgICAJLy8gdGhleSBnbyBpbiB0aGUgZ3JpZCwgYW5kIGRyYXcgdGhlIGRheSAjIGZvciBlYWNoIG9uZQorICAgICAgICAJRm9udCBudW1iZXJGb250ID0gbmV3IEZvbnQoIkhlbHZldGljYSIsRm9udC5QTEFJTiwxMik7CisgICAgICAgIAkvLyBub3QgdXNlZCBGb250IGhvbGlkYXlGb250ID0gRGVtb1V0aWxpdHkuY3JlZGl0Rm9udDsKKworICAgICAgICAJQ2FsZW5kYXIgYyA9IChDYWxlbmRhcilmQ2FsZW5kYXIuY2xvbmUoKTsKKyAgICAgICAgCWMuc2V0VGltZShmU3RhcnRPZk1vbnRoKTsKKworICAgICAgICAJZm9yIChpbnQgaSA9IDEsIGggPSAwOyBpIDw9IGRheXNJbk1vbnRoOyBpKyspIHsKKyAgICAgICAgICAgIAlnLnNldEZvbnQobnVtYmVyRm9udCk7CisgICAgICAgICAgICAJZy5zZXRDb2xvcihDb2xvci5ibGFjayk7CisgICAgICAgICAgICAJZm0gPSBnLmdldEZvbnRNZXRyaWNzKCk7CisKKyAgICAgICAgICAgIAlkYXRlVG9DZWxsKGksIGNlbGxQb3MpOworICAgICAgICAgICAgCWludCB4ID0gKGludCkoKGNlbGxQb3MueCArIDEpICogY2VsbFdpZHRoKTsKKyAgICAgICAgICAgIAlpbnQgeSA9IChpbnQpKGNlbGxQb3MueSAqIGNlbGxIZWlnaHQgKyBsYWJlbEhlaWdodCk7CisKKyAgICAgICAgICAgIAlTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgCWJ1ZmZlci5hcHBlbmQoaSk7CisgICAgICAgICAgICAJU3RyaW5nIGRheU51bSA9IGJ1ZmZlci50b1N0cmluZygpOworCisgICAgICAgICAgICAJeCA9IHggLSBJTlNFVCAtIGZtLnN0cmluZ1dpZHRoKGRheU51bSk7CisgICAgICAgICAgICAJeSA9IHkgKyBmbS5nZXRBc2NlbnQoKSArIElOU0VUOworCisgICAgICAgICAgICAJZy5kcmF3U3RyaW5nKGRheU51bSwgeCwgeSk7CisKKyAgICAgICAgICAgIAkvLyBTZWUgaWYgYW55IG9mIHRoZSBob2xpZGF5cyBsYW5kIG9uIHRoaXMgZGF5Li4uLgorICAgICAgICAgICAgCUhvbGlkYXlJbmZvIGluZm8gPSBudWxsOworICAgICAgICAgICAgCWludCBjb3VudCA9IDA7CisKKyAgICAgICAgICAgIAkvLyBDb29yZGluYXRlcyBvZiBsb3dlci1sZWZ0IGNvcm5lciBvZiBjZWxsLgorICAgICAgICAgICAgCXggPSAoaW50KSgoY2VsbFBvcy54KSAqIGNlbGxXaWR0aCk7CisgICAgICAgICAgICAJeSA9IChpbnQpKChjZWxsUG9zLnkrMSkgKiBjZWxsSGVpZ2h0KSArIGxhYmVsSGVpZ2h0OworCisgICAgICAgICAgICAJd2hpbGUgKGggPCBmSG9saWRheXMuc2l6ZSgpICYmCisgICAgICAgICAgICAgICAgICAgIAkoaW5mbyA9IChIb2xpZGF5SW5mbylmSG9saWRheXMuZWxlbWVudEF0KGgpKS5kYXRlIDw9IGkpCisgICAgICAgICAgICAJeworICAgICAgICAgICAgICAgIAlpZiAoaW5mby5kYXRlID09IGkpIHsKKyAgICAgICAgICAgICAgICAgICAgCS8vIERyYXcgdGhlIGhvbGlkYXkgaGVyZS4KKyAgICAgICAgICAgICAgICAgICAgCWcuc2V0Rm9udChudW1iZXJGb250KTsKKyAgICAgICAgICAgICAgICAgICAgCWcuc2V0Q29sb3IoQ29sb3IucmVkKTsKKworICAgICAgICAgICAgICAgICAgICAJRGVtb1RleHRCb3ggYm94ID0gbmV3IERlbW9UZXh0Qm94KGcsIGluZm8ubmFtZSwgKGludCkoY2VsbFdpZHRoIC0gSU5TRVQpKTsKKyAgICAgICAgICAgICAgICAgICAgCWJveC5kcmF3KGcsIHggKyBJTlNFVCwgeSAtIElOU0VUIC0gYm94LmdldEhlaWdodCgpKTsKKworICAgICAgICAgICAgICAgICAgICAJeSAtPSAoYm94LmdldEhlaWdodCgpICsgSU5TRVQpOworICAgICAgICAgICAgICAgICAgICAJY291bnQrKzsKKyAgICAgICAgICAgICAgICAJfQorICAgICAgICAgICAgICAgIAloKys7CisgICAgICAgICAgICAJfQorICAgICAgICAJfQorICAgIAl9CisKKyAgICAJLy8gSW1wb3J0YW50IHN0YXRlIHZhcmlhYmxlcworICAgIAlwcml2YXRlIExvY2FsZSAgICAgICAgICAgICAgZkNhbGVuZGFyTG9jYWxlOyAgICAvLyBXaG9zZSBjYWxlbmRhcgorICAgIAlwcml2YXRlIENhbGVuZGFyICAgICAgICAgICAgZkNhbGVuZGFyOyAgICAgICAgICAvLyBDYWxlbmRhciBmb3IgY2FsY3VsYXRpb25zCisKKyAgICAJcHJpdmF0ZSBMb2NhbGUgICAgICAgICAgICAgIGZEaXNwbGF5TG9jYWxlOyAgICAgLy8gSG93IHRvIGRpc3BsYXkgaXQKKyAgICAJcHJpdmF0ZSBEYXRlRm9ybWF0U3ltYm9scyAgIGZTeW1ib2xzOyAgICAgICAgICAgLy8gU3ltYm9scyBmb3IgZHJhd2luZworCisgICAgCXByaXZhdGUgRGF0ZSAgICAgICAgICAgICAgICBmU3RhcnRPZk1vbnRoOyAgICAgIC8vIDAwOjAwOjAwIG9uIGZpcnN0IGRheSBvZiBtb250aAorCisgICAgCS8vIENhY2hlZCBjYWxjdWxhdGlvbnMgdG8gbWFrZSBkcmF3aW5nIGZhc3Rlci4KKyAgICAJcHJpdmF0ZSB0cmFuc2llbnQgaW50IG1pbkRheTsgICAgICAgICAgIC8vIE1pbmltdW0gbGVnYWwgZGF5ICMKKyAgICAJcHJpdmF0ZSB0cmFuc2llbnQgaW50IGRheXNJbldlZWs7ICAgICAgIC8vICMgb2YgZGF5cyBpbiBhIHdlZWsKKyAgICAJcHJpdmF0ZSB0cmFuc2llbnQgaW50IGZpcnN0RGF5T2ZXZWVrOyAgIC8vIEZpcnN0IGRheSB0byBkaXNwbGF5IGluIHdlZWsKKyAgICAJcHJpdmF0ZSB0cmFuc2llbnQgaW50IG51bVdlZWtzOyAgICAgICAgIC8vICMgZnVsbCBvciBwYXJ0aWFsIHdlZWtzIGluIG1vbnRoCisgICAgCXByaXZhdGUgdHJhbnNpZW50IGludCBkYXlzSW5Nb250aDsgICAgICAvLyAjIGRheXMgaW4gdGhpcyBtb250aAorICAgIAlwcml2YXRlIHRyYW5zaWVudCBpbnQgZmlyc3REYXlJbk1vbnRoOyAgLy8gRGF5IG9mIHdlZWsgb2YgZmlyc3QgZGF5IGluIG1vbnRoCisKKyAgICAJcHJpdmF0ZSB0cmFuc2llbnQgSG9saWRheVtdIGZBbGxIb2xpZGF5czsKKyAgICAJcHJpdmF0ZSB0cmFuc2llbnQgVmVjdG9yICAgIGZIb2xpZGF5cyA9IG5ldyBWZWN0b3IoNSw1KTsKKworICAgIAlwcml2YXRlIHRyYW5zaWVudCBib29sZWFuIGRpcnR5ID0gdHJ1ZTsKKwl9CisKKwlwcml2YXRlIHN0YXRpYyBjbGFzcyBIb2xpZGF5SW5mbyB7CisgICAgCXB1YmxpYyBIb2xpZGF5SW5mbyhpbnQgZGF0ZSwgSG9saWRheSBob2xpZGF5LCBTdHJpbmcgbmFtZSkgeworICAgICAgICAJdGhpcy5kYXRlID0gZGF0ZTsKKyAgICAgICAgCXRoaXMuaG9saWRheSA9IGhvbGlkYXk7CisgICAgICAgIAl0aGlzLm5hbWUgPSBuYW1lOworICAgIAl9CisKKyAgICAJcHVibGljIEhvbGlkYXkgaG9saWRheTsKKyAgICAJcHVibGljIGludCBkYXRlOworICAgIAlwdWJsaWMgU3RyaW5nIG5hbWU7CisJfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaG9saWRheS9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaG9saWRheS9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWZhM2U0YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9ob2xpZGF5L3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKyAgJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2hvbGlkYXkvcGFja2FnZS5odG1sLHYgJAorICAkUmV2aXNpb246IDEuMSAkCisgICREYXRlOiAyMDAwLzAzLzE1IDA2OjU0OjUwICQKKy0tPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiPgorSG9saWRheSBkZW1vIGFwcGxpY2F0aW9uLgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9pbXBsL0FwcGxldEZyYW1lLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaW1wbC9BcHBsZXRGcmFtZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg5ZDY3OGQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaW1wbC9BcHBsZXRGcmFtZS5qYXZhCkBAIC0wLDAgKzEsMTUyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaW1wbC9BcHBsZXRGcmFtZS5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA0OjU2ICQgCisgKiAkUmV2aXNpb246IDEuNCAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRlbW8uaW1wbDsKK2ltcG9ydCBqYXZhLmFwcGxldC4qOworaW1wb3J0IGphdmEubmV0LlVSTDsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEuYXd0Lio7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuKjsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CisKKy8qKgorICogPHA+QSBGcmFtZSB0aGF0IHJ1bnMgYW4gQXBwbGV0IHdpdGhpbiBpdHNlbGYsIG1ha2luZyBpdCBwb3NzaWJsZQorICogZm9yIGFuIGFwcGxldCB0byBydW4gYXMgYW4gYXBwbGljYXRpb24uICBVc2FnZToKKyAqCisgKiA8cHJlPgorICogcHVibGljIGNsYXNzIE15QXBwbGV0IGV4dGVuZHMgQXBwbGV0IHsKKyAqICAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB7CisgKiAgICAgICAgIE15QXBwbGV0IGFwcGxldCA9IG5ldyBNeUFwcGxldCgpOworICogICAgICAgICBuZXcgQXBwbGV0RnJhbWUoIk15IEFwcGxldCBSdW5uaW5nIEFzIEFuIEFwcCIsIGFwcGxldCwgNjQwLCA0ODApOworICogICAgIH0KKyAqICAgICAuLi4KKyAqIH0KKyAqIDxwcmU+CisgKgorICogPHA+Q29weXJpZ2h0ICZjb3B5OyBJQk0gQ29ycG9yYXRpb24gMTk5OS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogQGF1dGhvciBBbGFuIExpdQorICogQHZlcnNpb24gJFJDU2ZpbGU6IEFwcGxldEZyYW1lLmphdmEsdiAkICRSZXZpc2lvbjogMS40ICQgJERhdGU6IDIwMDIvMDIvMTYgMDM6MDQ6NTYgJAorICovCitwdWJsaWMgY2xhc3MgQXBwbGV0RnJhbWUgZXh0ZW5kcyBGcmFtZSBpbXBsZW1lbnRzIEFwcGxldFN0dWIsIEFwcGxldENvbnRleHQgeworCisgICAgQXBwbGV0IGFwcGxldDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAiXHUwMEE5IElCTSBDb3Jwb3JhdGlvbiAxOTk5LiBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgRnJhbWUgcnVubmluZyB0aGUgZ2l2ZW4gQXBwbGV0IHdpdGggdGhlIGRlZmF1bHQgc2l6ZQorICAgICAqIG9mIDY0MCBieSA0ODAuCisgICAgICogV2hlbiB0aGUgRnJhbWUgaXMgY2xvc2VkLCB0aGUgYXBwbGV0J3Mgc3RvcCgpIG1ldGhvZCBpcyBjYWxsZWQsCisgICAgICogdGhlIEZyYW1lIGlzIGRpc3Bvc2UoKWQgb2YsIGFuZCBTeXN0ZW0uZXhpdCgwKSBpcyBjYWxsZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbmFtZSB0aGUgRnJhbWUgdGl0bGUKKyAgICAgKiBAcGFyYW0gYXBwbGV0IHRoZSBhcHBsZXQgdG8gYmUgcnVuCisgICAgICovCisgICAgcHVibGljIEFwcGxldEZyYW1lKFN0cmluZyBuYW1lLCBBcHBsZXQgYXBwbGV0KSB7CisgICAgICAgIHRoaXMobmFtZSwgYXBwbGV0LCA2NDAsIDQ4MCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgRnJhbWUgcnVubmluZyB0aGUgZ2l2ZW4gQXBwbGV0IHdpdGggdGhlIGdpdmVuIHNpemUuCisgICAgICogV2hlbiB0aGUgRnJhbWUgaXMgY2xvc2VkLCB0aGUgYXBwbGV0J3Mgc3RvcCgpIG1ldGhvZCBpcyBjYWxsZWQsCisgICAgICogdGhlIEZyYW1lIGlzIGRpc3Bvc2UoKWQgb2YsIGFuZCBTeXN0ZW0uZXhpdCgwKSBpcyBjYWxsZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbmFtZSB0aGUgRnJhbWUgdGl0bGUKKyAgICAgKiBAcGFyYW0gYXBwbGV0IHRoZSBhcHBsZXQgdG8gYmUgcnVuCisgICAgICogQHBhcmFtIHdpZHRoIHdpZHRoIG9mIHRoZSBGcmFtZQorICAgICAqIEBwYXJhbSBoZWlnaHQgaGVpZ2h0IG9mIHRoZSBGcmFtZQorICAgICAqLworICAgIHB1YmxpYyBBcHBsZXRGcmFtZShTdHJpbmcgbmFtZSwgQXBwbGV0IGFwcGxldCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KSB7CisgICAgICAgIHN1cGVyKG5hbWUpOworICAgICAgICB0aGlzLmFwcGxldCA9IGFwcGxldDsKKyAgICAgICAgYXBwbGV0LnNldFN0dWIodGhpcyk7CisKKyAgICAgICAgc2V0U2l6ZSh3aWR0aCwgaGVpZ2h0KTsKKyAgICAgICAgYWRkKCJDZW50ZXIiLCBhcHBsZXQpOworICAgICAgICBzaG93KCk7CisgICAgICAgIGFkZFdpbmRvd0xpc3RlbmVyKG5ldyBXaW5kb3dBZGFwdGVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgd2luZG93Q2xvc2luZyhXaW5kb3dFdmVudCBlKSB7CisgICAgICAgICAgICAgICAgQXBwbGV0RnJhbWUudGhpcy5hcHBsZXQuc3RvcCgpOworICAgICAgICAgICAgICAgIGRpc3Bvc2UoKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXhpdCgwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAgICAgICAgYXBwbGV0LmluaXQoKTsKKyAgICAgICAgYXBwbGV0LnN0YXJ0KCk7CisgICAgfQorCisgICAgLy8gQXBwbGV0U3R1YiBBUEkKKyAgICBwdWJsaWMgdm9pZCBhcHBsZXRSZXNpemUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KSB7CisgICAgICAgIHNldFNpemUod2lkdGgsIGhlaWdodCk7CisgICAgfQorCisgICAgcHVibGljIEFwcGxldENvbnRleHQgZ2V0QXBwbGV0Q29udGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgcHVibGljIFVSTCBnZXRDb2RlQmFzZSgpIHsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgcHVibGljIFVSTCBnZXREb2N1bWVudEJhc2UoKSB7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIGdldFBhcmFtZXRlcihTdHJpbmcgbmFtZSkgeworICAgICAgICByZXR1cm4gIlBBUkFNRVRFUiI7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaXNBY3RpdmUoKSB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAKKyAgICAKKyAgICAvLyBBcHBsZXRDb250ZXh0IEFQSQorICAgIHB1YmxpYyBBcHBsZXQgZ2V0QXBwbGV0KFN0cmluZyBuYW1lKSB7CisgICAgICAgIHJldHVybiBhcHBsZXQ7CisgICAgfQorCisgICAgcHVibGljIEVudW1lcmF0aW9uIGdldEFwcGxldHMoKSB7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHB1YmxpYyBBdWRpb0NsaXAgZ2V0QXVkaW9DbGlwKFVSTCB1cmwpIHsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgcHVibGljIEltYWdlIGdldEltYWdlKFVSTCB1cmwpIHsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2hvd0RvY3VtZW50KFVSTCB1cmwpIHt9CisgICAgcHVibGljIHZvaWQgc2hvd0RvY3VtZW50KFVSTCB1cmwsIFN0cmluZyB0YXJnZXQpIHt9CisKKyAgICBwdWJsaWMgdm9pZCBzaG93U3RhdHVzKFN0cmluZyBzdGF0dXMpIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHN0YXR1cyk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHNldFN0cmVhbShTdHJpbmcga2V5LCBJbnB1dFN0cmVhbSBzdHJlYW0pIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBJbnB1dFN0cmVhbSBnZXRTdHJlYW0oU3RyaW5nIGtleSkgeworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisgICAgCisgICAgcHVibGljIEl0ZXJhdG9yIGdldFN0cmVhbUtleXMoKSB7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9pbXBsL0RlbW9BcHBsZXQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9pbXBsL0RlbW9BcHBsZXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yMTUzZTQyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2ltcGwvRGVtb0FwcGxldC5qYXZhCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk3LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9pbXBsL0RlbW9BcHBsZXQuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xOSAwNDoxMDoyMyAkIAorICogJFJldmlzaW9uOiAxLjYgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRlbW8uaW1wbDsKKworaW1wb3J0IGphdmEuYXBwbGV0LkFwcGxldDsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEuYXd0Lio7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuKjsKKworcHVibGljIGFic3RyYWN0IGNsYXNzIERlbW9BcHBsZXQgZXh0ZW5kcyBqYXZhLmFwcGxldC5BcHBsZXQgeworICAgIHByaXZhdGUgQnV0dG9uICAgZGVtb0J1dHRvbjsKKyAgICBwcml2YXRlIEZyYW1lICAgIGRlbW9GcmFtZTsKKwlwcml2YXRlIHN0YXRpYyBpbnQgZGVtb0ZyYW1lQ291bnQgPSAwOworCisgICAgcHJvdGVjdGVkIGFic3RyYWN0IEZyYW1lIGNyZWF0ZURlbW9GcmFtZShEZW1vQXBwbGV0IGFwcGxldCk7CisgICAgcHJvdGVjdGVkIERpbWVuc2lvbiBnZXREZWZhdWx0RnJhbWVTaXplKERlbW9BcHBsZXQgYXBwbGV0LCBGcmFtZSBmKSB7CisgICAgCXJldHVybiBuZXcgRGltZW5zaW9uKDcwMCwgNTUwKTsKKyAgICB9CisKKyAgICAvL0NyZWF0ZSBhIGJ1dHRvbiB0aGF0IHdpbGwgZGlzcGxheSB0aGUgZGVtbworICAgIHB1YmxpYyB2b2lkIGluaXQoKQorICAgIHsKKyAgICAgICAgc2V0QmFja2dyb3VuZChDb2xvci53aGl0ZSk7CisgICAgICAgIGRlbW9CdXR0b24gPSBuZXcgQnV0dG9uKCJEZW1vIik7CisgICAgICAgIGRlbW9CdXR0b24uc2V0QmFja2dyb3VuZChDb2xvci55ZWxsb3cpOworICAgICAgICBhZGQoIGRlbW9CdXR0b24gKTsKKworICAgICAgICBkZW1vQnV0dG9uLmFkZEFjdGlvbkxpc3RlbmVyKCBuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoZS5nZXRJRCgpID09IEFjdGlvbkV2ZW50LkFDVElPTl9QRVJGT1JNRUQpIHsKKyAgICAgICAgICAgICAgICAgICAgZGVtb0J1dHRvbi5zZXRMYWJlbCgibG9hZGluZyIpOworCisgICAgICAgICAgICAgICAgICAgIGlmIChkZW1vRnJhbWUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICBkZW1vRnJhbWUgPSBjcmVhdGVEZW1vRnJhbWUoRGVtb0FwcGxldC50aGlzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgc2hvd0RlbW8oKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGRlbW9CdXR0b24uc2V0TGFiZWwoIkRlbW8iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgfQorICAgICAgICB9ICk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2hvd0RlbW8oKQorICAgIHsKKyAgICAJZGVtb0ZyYW1lID0gY3JlYXRlRGVtb0ZyYW1lKHRoaXMpOworICAgICAgICBkZW1vRnJhbWUuZG9MYXlvdXQoKTsKKyAgICAgICAgRGltZW5zaW9uIGQgPSBnZXREZWZhdWx0RnJhbWVTaXplKHRoaXMsIGRlbW9GcmFtZSk7CisgICAgICAgIGRlbW9GcmFtZS5zZXRTaXplKGQud2lkdGgsIGQuaGVpZ2h0KTsKKyAgICAgICAgZGVtb0ZyYW1lLnNob3coKTsKKwkJZGVtb0ZyYW1lT3BlbmVkKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZGVtb0Nsb3NlZCgpCisgICAgeworICAgICAgICBkZW1vRnJhbWUgPSBudWxsOworCQlkZW1vRnJhbWVDbG9zZWQoKTsKKyAgICB9CisKKwlwcm90ZWN0ZWQgc3RhdGljIHZvaWQgZGVtb0ZyYW1lT3BlbmVkKCkgeworCQlkZW1vRnJhbWVDb3VudCsrOworICAgIH0KKwlwcm90ZWN0ZWQgc3RhdGljIHZvaWQgZGVtb0ZyYW1lQ2xvc2VkKCkgeworCQlpZiAoLS1kZW1vRnJhbWVDb3VudCA9PSAwKSB7CisJCQlTeXN0ZW0uZXhpdCgwKTsKKwkJfQorICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2ltcGwvRGVtb1RleHRCb3guamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9pbXBsL0RlbW9UZXh0Qm94LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmJmNTNlMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9pbXBsL0RlbW9UZXh0Qm94LmphdmEKQEAgLTAsMCArMSwxMDEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk3LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9pbXBsL0RlbW9UZXh0Qm94LmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTkgMDQ6MTA6MjMgJCAKKyAqICRSZXZpc2lvbjogMS40ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby5pbXBsOworCisKK2ltcG9ydCBqYXZhLnRleHQuQnJlYWtJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLmF3dC4qOworCitwdWJsaWMgY2xhc3MgRGVtb1RleHRCb3ggeworCisgICAgcHVibGljIERlbW9UZXh0Qm94KEdyYXBoaWNzIGcsIFN0cmluZyB0ZXh0LCBpbnQgd2lkdGgpCisgICAgeworICAgICAgICB0aGlzLnRleHQgPSB0ZXh0OworICAgICAgICB0aGlzLmNoYXJzID0gbmV3IGNoYXJbdGV4dC5sZW5ndGgoKV07CisgICAgICAgIHRleHQuZ2V0Q2hhcnMoMCwgdGV4dC5sZW5ndGgoKSwgY2hhcnMsIDApOworCisgICAgICAgIHRoaXMud2lkdGggPSB3aWR0aDsKKyAgICAgICAgdGhpcy5wb3J0ID0gZzsKKyAgICAgICAgdGhpcy5tZXRyaWNzID0gZy5nZXRGb250TWV0cmljcygpOworCisgICAgICAgIGJyZWFrVGV4dCgpOworICAgIH0KKworICAgIHB1YmxpYyAgaW50IGdldEhlaWdodCgpIHsKKyAgICAgICAgcmV0dXJuIChuYnJlYWtzICsgMSkgKiBtZXRyaWNzLmdldEhlaWdodCgpOworICAgIH0KKworICAgIHB1YmxpYyAgdm9pZCBkcmF3KEdyYXBoaWNzIGcsIGludCB4LCBpbnQgeSkKKyAgICB7CisgICAgICAgIGludCBpbmRleCA9IDA7CisKKyAgICAgICAgeSArPSBtZXRyaWNzLmdldEFzY2VudCgpOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbmJyZWFrczsgaSsrKQorICAgICAgICB7CisgICAgICAgICAgICBnLmRyYXdDaGFycyhjaGFycywgaW5kZXgsIGJyZWFrUG9zW2ldIC0gaW5kZXgsIHgsIHkpOworICAgICAgICAgICAgaW5kZXggPSBicmVha1Bvc1tpXTsKKyAgICAgICAgICAgIHkgKz0gbWV0cmljcy5nZXRIZWlnaHQoKTsKKyAgICAgICAgfQorCisgICAgICAgIGcuZHJhd0NoYXJzKGNoYXJzLCBpbmRleCwgY2hhcnMubGVuZ3RoIC0gaW5kZXgsIHgsIHkpOworICAgIH0KKworCisgICAgcHJpdmF0ZSB2b2lkIGJyZWFrVGV4dCgpCisgICAgeworICAgICAgICBpZiAobWV0cmljcy5jaGFyc1dpZHRoKGNoYXJzLCAwLCBjaGFycy5sZW5ndGgpID4gd2lkdGgpCisgICAgICAgIHsKKyAgICAgICAgICAgIEJyZWFrSXRlcmF0b3IgaXRlciA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKCk7CisgICAgICAgICAgICBpdGVyLnNldFRleHQodGV4dCk7CisKKyAgICAgICAgICAgIGludCBzdGFydCA9IGl0ZXIuZmlyc3QoKTsKKyAgICAgICAgICAgIGludCBlbmQgPSBzdGFydDsKKyAgICAgICAgICAgIGludCBwb3M7CisKKyAgICAgICAgICAgIHdoaWxlICggKHBvcyA9IGl0ZXIubmV4dCgpKSAhPSBCcmVha0l0ZXJhdG9yLkRPTkUgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGludCB3ID0gbWV0cmljcy5jaGFyc1dpZHRoKGNoYXJzLCBzdGFydCwgcG9zIC0gc3RhcnQpOworICAgICAgICAgICAgICAgIGlmICh3ID4gd2lkdGgpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAvLyBXZSd2ZSBnb25lIHBhc3QgdGhlIG1heGltdW0gd2lkdGgsIHNvIGJyZWFrIHRoZSBsaW5lCisgICAgICAgICAgICAgICAgICAgIGlmIChlbmQgPiBzdGFydCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlcmUgd2FzIGF0IGxlYXN0IG9uZSBicmVhayBwb3NpdGlvbiBiZWZvcmUgdGhpcyBwb2ludAorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtQb3NbbmJyZWFrcysrXSA9IGVuZDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gZW5kOworICAgICAgICAgICAgICAgICAgICAgICAgZW5kID0gcG9zOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlcmUgd2VyZW4ndCBhbnkgYnJlYWsgcG9zaXRpb25zIGJlZm9yZSB0aGlzIG9uZSwgc28KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxldCB0aGlzIHdvcmQgb3ZlcmZsb3cgdGhlIG1hcmdpbiAoeXVjaykKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrUG9zW25icmVha3MrK10gPSBwb3M7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCA9IGVuZCA9IHBvczsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBjdXJyZW50IHBvc2l0aW9uIHN0aWxsIGZpdHMgb24gdGhlIGxpbmU7IGl0J3MgdGhlIGJlc3QKKyAgICAgICAgICAgICAgICAgICAgLy8gdGVudGF0aXZlIGJyZWFrIHBvc2l0aW9uIHdlIGhhdmUgc28gZmFyLgorICAgICAgICAgICAgICAgICAgICBlbmQgPSBwb3M7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIFN0cmluZyAgICAgICAgICB0ZXh0OworICAgIHByaXZhdGUgY2hhcltdICAgICAgICAgIGNoYXJzOworICAgIHByaXZhdGUgR3JhcGhpY3MgICAgICAgIHBvcnQ7CisgICAgcHJpdmF0ZSBGb250TWV0cmljcyAgICAgbWV0cmljczsKKyAgICBwcml2YXRlIGludCAgICAgICAgICAgICB3aWR0aDsKKworICAgIHByaXZhdGUgaW50W10gICAgICAgICAgIGJyZWFrUG9zID0gbmV3IGludFsxMF07IC8vIFRPRE86IGdldCByZWFsCisgICAgcHJpdmF0ZSBpbnQgICAgICAgICAgICAgbmJyZWFrcyA9IDA7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2ltcGwvRGVtb1V0aWxpdHkuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9pbXBsL0RlbW9VdGlsaXR5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2Y1YWZkZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9pbXBsL0RlbW9VdGlsaXR5LmphdmEKQEAgLTAsMCArMSwxMzQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk3LTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9pbXBsL0RlbW9VdGlsaXR5LmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDgvMDEgMjA6Mjc6MjAgJCAKKyAqICRSZXZpc2lvbjogMS44ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby5pbXBsOworCitpbXBvcnQgamF2YS5hd3QuKjsKK2ltcG9ydCBqYXZhLmxhbmcuKjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworcHVibGljIGNsYXNzIERlbW9VdGlsaXR5Cit7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBGb250IHRpdGxlRm9udCA9IG5ldyBGb250KCJUaW1lc1JvbWFuIixGb250LkJPTEQsMTgpOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRm9udCBsYWJlbEZvbnQgPSBuZXcgRm9udCgiVGltZXNSb21hbiIsRm9udC5CT0xELDE0KTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEZvbnQgY2hvaWNlRm9udCA9IG5ldyBGb250KCJIZWx2ZXRpY2EiLEZvbnQuQk9MRCwxMik7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBGb250IGVkaXRGb250ID0gbmV3IEZvbnQoIkhlbHZldGljYSIsRm9udC5QTEFJTiwxNCk7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBGb250IGNyZWRpdEZvbnQgPSBuZXcgRm9udCgiSGVsdmV0aWNhIixGb250LlBMQUlOLDEwKTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEZvbnQgbnVtYmVyRm9udCA9IG5ldyBGb250KCJzYW5zc2VyaWYiLCBGb250LlBMQUlOLCAxNCk7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIENvbG9yIGJnQ29sb3IgPSBDb2xvci5saWdodEdyYXk7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBDb2xvciBjaG9pY2VDb2xvciA9IENvbG9yLndoaXRlOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0MSA9CisgICAgICAgICJDb3B5cmlnaHQgKEMpIElCTSBDb3JwIGFuZCBvdGhlcnMuIDE5OTcgLSAyMDAyIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworCisgICAgLyoqCisgICAgUHJvdmlkZXMgZWFzeSB3YXkgdG8gdXNlIGJhc2ljIGZ1bmN0aW9ucyBvZiBHcmlkQmFnTGF5b3V0LCB3aXRob3V0CisgICAgdGhlIGNvbXBsaWNhdGlvbnMuIEFmdGVyIGJ1aWxkaW5nIGEgcGFuZWwsIGFuZCBpbnNlcnRpbmcgYWxsIHRoZQorICAgICogc3ViY29tcG9uZW50cywgY2FsbCB0aGlzIHRvIGxheSBpdCBvdXQgaW4gdGhlIGRlc2lyZWQgbnVtYmVyIG9mIGNvbHVtbnMuCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgZml4R3JpZChDb250YWluZXIgY29udCwgaW50IGNvbHVtbnMpIHsKKyAgICAgICAgR3JpZEJhZ0xheW91dCBncmlkYmFnID0gbmV3IEdyaWRCYWdMYXlvdXQoKTsKKyAgICAgICAgY29udC5zZXRMYXlvdXQoZ3JpZGJhZyk7CisKKyAgICAgICAgR3JpZEJhZ0NvbnN0cmFpbnRzIGMgPSBuZXcgR3JpZEJhZ0NvbnN0cmFpbnRzKCk7CisgICAgICAgIGMuZmlsbCA9IEdyaWRCYWdDb25zdHJhaW50cy5WRVJUSUNBTDsKKyAgICAgICAgYy53ZWlnaHR4ID0gMS4wOworICAgICAgICBjLmluc2V0cyA9IG5ldyBJbnNldHMoMiwyLDIsMik7CisKKyAgICAgICAgQ29tcG9uZW50W10gY29tcG9uZW50cyA9IGNvbnQuZ2V0Q29tcG9uZW50cygpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvbXBvbmVudHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIC8vIG5vdCB1c2VkIGludCBjb2xOdW1iZXIgPSBpJWNvbHVtbnM7CisgICAgICAgICAgICBjLmdyaWR3aWR0aCA9IDE7ICAgIC8vIGRlZmF1bHQKKyAgICAgICAgICAgIGlmICgoaSVjb2x1bW5zKSA9PSBjb2x1bW5zIC0gMSkKKyAgICAgICAgICAgICAgICBjLmdyaWR3aWR0aCA9IEdyaWRCYWdDb25zdHJhaW50cy5SRU1BSU5ERVI7ICAgIC8vIGxhc3QgaW4gZ3JpZAorICAgICAgICAgICAgaWYgKGNvbXBvbmVudHNbaV0gaW5zdGFuY2VvZiBMYWJlbCkgeworICAgICAgICAgICAgICAgIHN3aXRjaCAoKChMYWJlbCljb21wb25lbnRzW2ldKS5nZXRBbGlnbm1lbnQoKSkgeworICAgICAgICAgICAgICAgIGNhc2UgTGFiZWwuQ0VOVEVSOiBjLmFuY2hvciA9IEdyaWRCYWdDb25zdHJhaW50cy5DRU5URVI7IGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgTGFiZWwuTEVGVDogYy5hbmNob3IgPSBHcmlkQmFnQ29uc3RyYWludHMuV0VTVDsgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBMYWJlbC5SSUdIVDogYy5hbmNob3IgPSBHcmlkQmFnQ29uc3RyYWludHMuRUFTVDsgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZ3JpZGJhZy5zZXRDb25zdHJhaW50cyhjb21wb25lbnRzW2ldLCBjKTsKKyAgICAgICAgfQorCisgICAgfQorCisgICAgLyoqCisgICAgUHJvdmlkZXMgZWFzeSB3YXkgdG8gY2hhbmdlIHRoZSBzcGFjaW5nIGFyb3VuZCBhbiBvYmplY3QgaW4gYSBHcmlkQmFnTGF5b3V0LgorICAgIENhbGwgQUZURVIgZml4R3JpZEJhZywgcGFzc2luZyBpbiB0aGUgY29udGFpbmVyLCB0aGUgY29tcG9uZW50LCBhbmQgdGhlCisgICAgbmV3IGluc2V0cy4KKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBzZXRJbnNldHMoQ29udGFpbmVyIGNvbnQsIENvbXBvbmVudCBjb21wLCBJbnNldHMgaW5zZXRzKSB7CisgICAgICAgIEdyaWRCYWdMYXlvdXQgZ2JsID0gKEdyaWRCYWdMYXlvdXQpY29udC5nZXRMYXlvdXQoKTsKKyAgICAgICAgR3JpZEJhZ0NvbnN0cmFpbnRzIGcgPSBnYmwuZ2V0Q29uc3RyYWludHMoY29tcCk7CisgICAgICAgIGcuaW5zZXRzID0gaW5zZXRzOworICAgICAgICBnYmwuc2V0Q29uc3RyYWludHMoY29tcCxnKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIFBhbmVsIGNyZWF0ZVNwYWNlcigpIHsKKyAgICAgICAgUGFuZWwgc3BhY2VyID0gbmV3IFBhbmVsKCk7CisgICAgICAgIHNwYWNlci5zZXRMYXlvdXQobnVsbCk7CisgICAgICAgIHNwYWNlci5zZXRTaXplKDEwMDAsIDEpOworICAgICAgICByZXR1cm4gc3BhY2VyOworICAgIH0KKworICAgIC8vIHRvIGF2b2lkIGdvb2Z5IHVwZGF0ZXMgYW5kIG1pc3BsYWNlZCBjdXJzb3JzCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHNldFRleHQoVGV4dENvbXBvbmVudCBhcmVhLCBTdHJpbmcgbmV3VGV4dCkgeworICAgICAgICBTdHJpbmcgZm9vID0gYXJlYS5nZXRUZXh0KCk7CisgICAgICAgIGlmIChmb28uZXF1YWxzKG5ld1RleHQpKSByZXR1cm47CisgICAgICAgIGFyZWEuc2V0VGV4dChuZXdUZXh0KTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29tcGFyZXMgdHdvIGxvY2Fscy4gUmV0dXJuIHZhbHVlIGlzIG5lZ2F0aXZlCisgICAgICogaWYgdGhleSdyZSBkaWZmZXJlbnQsIGFuZCBtb3JlIHBvc2l0aXZlIHRoZSBtb3JlCisgICAgICogZmllbGRzIHRoYXQgbWF0Y2guCisgICAgICovCisgICAgIAorICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvbXBhcmVMb2NhbGVzKExvY2FsZSBsMSwgTG9jYWxlIGwyKQorICAgIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IC0xOworICAgICAgICAKKyAgICAgICAgaWYgKGwxLmdldExhbmd1YWdlKCkuZXF1YWxzKGwyLmdldExhbmd1YWdlKCkpKSB7CisgICAgICAgICAgICByZXN1bHQgKz0gMTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGwxLmdldENvdW50cnkoKS5lcXVhbHMobDIuZ2V0Q291bnRyeSgpKSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCArPSAxOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChsMS5nZXRWYXJpYW50KCkuZXF1YWxzKGwyLmdldFZhcmlhbnQoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIEc3IGxvY2FsZSBsaXN0IGZvciBkZW1vcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIExvY2FsZVtdIGdldEc3TG9jYWxlcygpIHsKKyAgICAgICAgcmV0dXJuIGxvY2FsZUxpc3Q7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIExvY2FsZVtdIGxvY2FsZUxpc3QgPSB7CisgICAgICAgIG5ldyBMb2NhbGUoIkRBIiwgIkRLIiwgIiIpLAorICAgICAgICBuZXcgTG9jYWxlKCJFTiIsICJVUyIsICIiKSwKKyAgICAgICAgbmV3IExvY2FsZSgiRU4iLCAiR0IiLCAiIiksCisgICAgICAgIG5ldyBMb2NhbGUoIkVOIiwgIkNBIiwgIiIpLAorICAgICAgICBuZXcgTG9jYWxlKCJGUiIsICJGUiIsICIiKSwKKyAgICAgICAgbmV3IExvY2FsZSgiRlIiLCAiQ0EiLCAiIiksCisgICAgICAgIG5ldyBMb2NhbGUoIkRFIiwgIkRFIiwgIiIpLAorICAgICAgICBuZXcgTG9jYWxlKCJJVCIsICJJVCIsICIiKSwKKyAgICAvL25ldyBMb2NhbGUoIkpBIiwgIkpQIiwgIiIpLAorICAgIH07Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaW1wbC9EdW1iVGV4dENvbXBvbmVudC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2ltcGwvRHVtYlRleHRDb21wb25lbnQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yZmM0MTg0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2ltcGwvRHVtYlRleHRDb21wb25lbnQuamF2YQpAQCAtMCwwICsxLDgwNCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2ltcGwvRHVtYlRleHRDb21wb25lbnQuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMy8xOSAwMDoxNzowMSAkIAorICogJFJldmlzaW9uOiAxLjYgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kZW1vLmltcGw7CitpbXBvcnQgamF2YS5hd3QuKjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC4qOworaW1wb3J0IGphdmEudGV4dC4qOworaW1wb3J0IGphdmEuYXd0LmRhdGF0cmFuc2Zlci4qOworCisvLyBMSVU6IENoYW5nZWQgZnJvbSBmaW5hbCB0byBub24tZmluYWwKK3B1YmxpYyBjbGFzcyBEdW1iVGV4dENvbXBvbmVudCBleHRlbmRzIENhbnZhcworICBpbXBsZW1lbnRzIEtleUxpc3RlbmVyLCBNb3VzZUxpc3RlbmVyLCBNb3VzZU1vdGlvbkxpc3RlbmVyLCBGb2N1c0xpc3RlbmVyCisgIHsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodCA9CisgICAgICAiQ29weXJpZ2h0IFx1MDBBOSAxOTk4LCBNYXJrIERhdmlzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiI7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgc3RhdGljIGJvb2xlYW4gREVCVUcgPSBmYWxzZTsKKworICAgIHByaXZhdGUgU3RyaW5nIGNvbnRlbnRzID0gIiI7CisgICAgcHJpdmF0ZSBTZWxlY3Rpb24gc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbigpOworICAgIHByaXZhdGUgaW50IGFjdGl2ZVN0YXJ0ID0gLTE7CisgICAgcHJpdmF0ZSBib29sZWFuIGVkaXRhYmxlID0gdHJ1ZTsKKworICAgIHByaXZhdGUgdHJhbnNpZW50IFNlbGVjdGlvbiB0ZW1wU2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbigpOworICAgIHByaXZhdGUgdHJhbnNpZW50IGJvb2xlYW4gZm9jdXM7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgQnJlYWtJdGVyYXRvciBsaW5lQnJlYWtlciA9IEJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKCk7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgQnJlYWtJdGVyYXRvciB3b3JkQnJlYWtlciA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKCk7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgQnJlYWtJdGVyYXRvciBjaGFyQnJlYWtlciA9IEJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoKTsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBpbnQgbGluZUFzY2VudDsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBpbnQgbGluZUhlaWdodDsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBpbnQgbGluZUxlYWRpbmc7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50IGxhc3RIZWlnaHQgPSAxMDsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBpbnQgbGFzdFdpZHRoID0gNTA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1BWF9MSU5FUyA9IDIwMDsgLy8gTElVOiBVc2Ugc3ltYm9saWMgbmFtZQorICAgIHByaXZhdGUgdHJhbnNpZW50IGludFtdIGxpbmVTdGFydHMgPSBuZXcgaW50W01BWF9MSU5FU107IC8vIExJVQorICAgIHByaXZhdGUgdHJhbnNpZW50IGludCBsaW5lQ291bnQgPSAxOworCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgYm9vbGVhbiB2YWxpZCA9IGZhbHNlOworICAgIHByaXZhdGUgdHJhbnNpZW50IEZvbnRNZXRyaWNzIGZtOworICAgIHByaXZhdGUgdHJhbnNpZW50IGJvb2xlYW4gcmVkb0xpbmVzID0gdHJ1ZTsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBib29sZWFuIGRvdWJsZUNsaWNrID0gZmFsc2U7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgVGV4dExpc3RlbmVyIHRleHRMaXN0ZW5lcjsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBBY3Rpb25MaXN0ZW5lciBzZWxlY3Rpb25MaXN0ZW5lcjsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBJbWFnZSBjYWNoZUltYWdlOworICAgIHByaXZhdGUgdHJhbnNpZW50IERpbWVuc2lvbiBteVNpemU7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50IHhJbnNldCA9IDU7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50IHlJbnNldCA9IDU7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgUG9pbnQgc3RhcnRQb2ludCA9IG5ldyBQb2ludCgpOworICAgIHByaXZhdGUgdHJhbnNpZW50IFBvaW50IGVuZFBvaW50ID0gbmV3IFBvaW50KCk7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgUG9pbnQgY2FyZXRQb2ludCA9IG5ldyBQb2ludCgpOworICAgIHByaXZhdGUgdHJhbnNpZW50IFBvaW50IGFjdGl2ZVBvaW50ID0gbmV3IFBvaW50KCk7CisgICAgCisgICAgLy9wcml2YXRlIHRyYW5zaWVudCBzdGF0aWMgU3RyaW5nIGNsaXBCb2FyZDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgQ1IgPSAnXDAxNSc7IC8vIExJVQorCisgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIHB1YmxpYyBEdW1iVGV4dENvbXBvbmVudCgpIHsKKyAgICAgICAgYWRkTW91c2VMaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgYWRkTW91c2VNb3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgYWRkS2V5TGlzdGVuZXIodGhpcyk7CisgICAgICAgIGFkZEZvY3VzTGlzdGVuZXIodGhpcyk7CisgICAgICAgIHNldEN1cnNvcihDdXJzb3IuZ2V0UHJlZGVmaW5lZEN1cnNvcihDdXJzb3IuVEVYVF9DVVJTT1IpKTsKKworICAgIH0KKworLy8gPT09PT09PT09PT09PT09PSBFdmVudHMgPT09PT09PT09PT09PT09PT09PT0KKworICAgIHB1YmxpYyBib29sZWFuIGlzRm9jdXNUcmF2ZXJzYWJsZSgpIHsgcmV0dXJuIHRydWU7IH0KKworCXB1YmxpYyB2b2lkIGFkZEFjdGlvbkxpc3RlbmVyKEFjdGlvbkxpc3RlbmVyIGwpIHsKKyAgICAgICAgc2VsZWN0aW9uTGlzdGVuZXIgPSBBV1RFdmVudE11bHRpY2FzdGVyLmFkZChzZWxlY3Rpb25MaXN0ZW5lciwgbCk7CisJfQorCisJcHVibGljIHZvaWQgcmVtb3ZlQWN0aW9uTGlzdGVuZXIoQWN0aW9uTGlzdGVuZXIgbCkgeworICAgICAgICBzZWxlY3Rpb25MaXN0ZW5lciA9IEFXVEV2ZW50TXVsdGljYXN0ZXIucmVtb3ZlKHNlbGVjdGlvbkxpc3RlbmVyLCBsKTsKKwl9CisKKwlwdWJsaWMgdm9pZCBhZGRUZXh0TGlzdGVuZXIoVGV4dExpc3RlbmVyIGwpIHsKKyAgICAgICAgdGV4dExpc3RlbmVyID0gQVdURXZlbnRNdWx0aWNhc3Rlci5hZGQodGV4dExpc3RlbmVyLCBsKTsKKwl9CisKKwlwdWJsaWMgdm9pZCByZW1vdmVUZXh0TGlzdGVuZXIoVGV4dExpc3RlbmVyIGwpIHsKKyAgICAgICAgdGV4dExpc3RlbmVyID0gQVdURXZlbnRNdWx0aWNhc3Rlci5yZW1vdmUodGV4dExpc3RlbmVyLCBsKTsKKwl9CisKKyAgICBwcml2YXRlIHRyYW5zaWVudCBib29sZWFuIHByZXNzZWQ7CisKKwlwdWJsaWMgdm9pZCBtb3VzZVByZXNzZWQoTW91c2VFdmVudCBlKSB7CisJICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJtb3VzZVByZXNzZWQiKTsKKwkgICAgaWYgKHByZXNzZWQpIHsKKwkgICAgICAgIHNlbGVjdChlLGZhbHNlKTsKKwkgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRvdWJsZUNsaWNrID0gZS5nZXRDbGlja0NvdW50KCkgPiAxOworICAgICAgICAgICAgcmVxdWVzdEZvY3VzKCk7CisgICAgICAgICAgICBzZWxlY3QoZSwgdHJ1ZSk7CisgICAgCSAgICBwcmVzc2VkID0gdHJ1ZTsKKwkgICAgfQorCX0KKworCXB1YmxpYyB2b2lkIG1vdXNlRHJhZ2dlZChNb3VzZUV2ZW50IGUpIHsKKwkgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIm1vdXNlRHJhZ2dlZCIpOworCSAgICBzZWxlY3QoZSwgZmFsc2UpOworCX0KKworCXB1YmxpYyB2b2lkIG1vdXNlUmVsZWFzZWQoTW91c2VFdmVudCBlKSB7CisJICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJtb3VzZVJlbGVhc2VkIik7CisJICAgIHByZXNzZWQgPSBmYWxzZTsKKwl9CisKKwlwdWJsaWMgdm9pZCBtb3VzZUVudGVyZWQoTW91c2VFdmVudCBlKSB7CisJICAgIC8vaWYgKHByZXNzZWQpIHNlbGVjdChlLCBmYWxzZSk7CisJfQorCisJcHVibGljIHZvaWQgbW91c2VFeGl0ZWQoTW91c2VFdmVudCBlKXsKKwkgICAgLy9pZiAocHJlc3NlZCkgc2VsZWN0KGUsIGZhbHNlKTsKKwl9CisKKwlwdWJsaWMgdm9pZCBtb3VzZUNsaWNrZWQoTW91c2VFdmVudCBlKSB7fQorCXB1YmxpYyB2b2lkIG1vdXNlTW92ZWQoTW91c2VFdmVudCBlKSB7fQorCisKKyAgICBwdWJsaWMgdm9pZCBmb2N1c0dhaW5lZChGb2N1c0V2ZW50IGUpIHsKKwkgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oImZvY3VzR2FpbmVkIik7CisJICAgIGZvY3VzID0gdHJ1ZTsKKwkgICAgdmFsaWQgPSBmYWxzZTsKKwkgICAgcmVwYWludCgxNik7CisJfQorCXB1YmxpYyB2b2lkIGZvY3VzTG9zdChGb2N1c0V2ZW50IGUpIHsKKwkgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oImZvY3VzTG9zdCIpOworCSAgICBmb2N1cyA9IGZhbHNlOworCSAgICB2YWxpZCA9IGZhbHNlOworCSAgICByZXBhaW50KDE2KTsKKwl9CisKKyAgICBwdWJsaWMgdm9pZCBzZWxlY3QoTW91c2VFdmVudCBlLCBib29sZWFuIGZpcnN0KSB7CisgICAgICAgIHNldEtleVN0YXJ0KC0xKTsKKwkgICAgcG9pbnQyT2Zmc2V0KGUuZ2V0UG9pbnQoKSwgdGVtcFNlbGVjdGlvbik7CisgICAgICAgIGlmIChmaXJzdCkgeworICAgICAgICAgICAgaWYgKChlLmdldE1vZGlmaWVycygpICYgSW5wdXRFdmVudC5TSElGVF9NQVNLKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgdGVtcFNlbGVjdGlvbi5hbmNob3IgPSB0ZW1wU2VsZWN0aW9uLmNhcmV0OworICAgICAgICAgICAgfQorCSAgICB9CisJICAgIC8vIGZpeCB3b3JkcworCSAgICBpZiAoZG91YmxlQ2xpY2spIHsKKwkgICAgICAgIHRlbXBTZWxlY3Rpb24uZXhwYW5kKHdvcmRCcmVha2VyKTsKKwkgICAgfQorCSAgICBzZWxlY3QodGVtcFNlbGVjdGlvbik7CisgICAgfQorICAgIAorCXB1YmxpYyB2b2lkIGtleVByZXNzZWQoS2V5RXZlbnQgZSkgeworICAgICAgICBpbnQgY29kZSA9IGUuZ2V0S2V5Q29kZSgpOworICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigia2V5UHJlc3NlZCAiCisgICAgICAgICAgKyBoZXgoKGNoYXIpY29kZSkgKyAiLCAiICsgaGV4KChjaGFyKWUuZ2V0TW9kaWZpZXJzKCkpKTsKKyAgICAgICAgaW50IHN0YXJ0ID0gc2VsZWN0aW9uLmdldFN0YXJ0KCk7CisgICAgICAgIGludCBlbmQgPSBzZWxlY3Rpb24uZ2V0RW5kKCk7CisgICAgICAgIGJvb2xlYW4gc2hpZnQgPSAoZS5nZXRNb2RpZmllcnMoKSAmIEtleUV2ZW50LlNISUZUX01BU0spICE9IDA7CisgICAgICAgIGJvb2xlYW4gY3RybCA9IChlLmdldE1vZGlmaWVycygpICYgS2V5RXZlbnQuQ1RSTF9NQVNLKSAhPSAwOworICAgICAgICAgICAgICAgIAorICAgICAgICBzd2l0Y2ggKGNvZGUpIHsKKyAgICAgICAgY2FzZSBLZXlFdmVudC5WS19ROgorICAgICAgICAgICAgaWYgKCFjdHJsIHx8ICFlZGl0YWJsZSkgYnJlYWs7CisgICAgICAgICAgICBzZXRLZXlTdGFydCgtMSk7CisgICAgICAgICAgICBmaXhIZXgoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEtleUV2ZW50LlZLX1Y6CisgICAgICAgICAgICBpZiAoIWN0cmwpIGJyZWFrOworICAgICAgICAgICAgaWYgKCFlZGl0YWJsZSkgeworICAgICAgICAgICAgICAgIHRoaXMuZ2V0VG9vbGtpdCgpLmJlZXAoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcGFzdGUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0M6CisgICAgICAgICAgICBpZiAoIWN0cmwpIGJyZWFrOworICAgICAgICAgICAgY29weSgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfWDoKKyAgICAgICAgICAgIGlmICghY3RybCkgYnJlYWs7CisgICAgICAgICAgICBpZiAoIWVkaXRhYmxlKSB7CisgICAgICAgICAgICAgICAgdGhpcy5nZXRUb29sa2l0KCkuYmVlcCgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBjb3B5KCk7CisgICAgICAgICAgICAgICAgaW5zZXJ0VGV4dCgiIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBLZXlFdmVudC5WS19BOgorICAgICAgICAgICAgaWYgKCFjdHJsKSBicmVhazsKKyAgICAgICAgICAgIHNldEtleVN0YXJ0KC0xKTsKKyAgICAgICAgICAgIHNlbGVjdChJbnRlZ2VyLk1BWF9WQUxVRSwgMCwgZmFsc2UpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfUklHSFQ6CisgICAgICAgICAgICBzZXRLZXlTdGFydCgtMSk7CisgICAgICAgICAgICB0ZW1wU2VsZWN0aW9uLnNldChzZWxlY3Rpb24pOworICAgICAgICAgICAgdGVtcFNlbGVjdGlvbi5uZXh0Qm91bmQoY3RybCA/IHdvcmRCcmVha2VyIDogY2hhckJyZWFrZXIsICsxLCBzaGlmdCk7CisgICAgICAgICAgICBzZWxlY3QodGVtcFNlbGVjdGlvbik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBLZXlFdmVudC5WS19MRUZUOgorICAgICAgICAgICAgc2V0S2V5U3RhcnQoLTEpOworICAgICAgICAgICAgdGVtcFNlbGVjdGlvbi5zZXQoc2VsZWN0aW9uKTsKKyAgICAgICAgICAgIHRlbXBTZWxlY3Rpb24ubmV4dEJvdW5kKGN0cmwgPyB3b3JkQnJlYWtlciA6IGNoYXJCcmVha2VyLCAtMSwgc2hpZnQpOworICAgICAgICAgICAgc2VsZWN0KHRlbXBTZWxlY3Rpb24pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfVVA6IC8vIExJVTogQWRkIHN1cHBvcnQgZm9yIHVwIGFycm93CisgICAgICAgICAgICBzZXRLZXlTdGFydCgtMSk7CisgICAgICAgICAgICB0ZW1wU2VsZWN0aW9uLnNldChzZWxlY3Rpb24pOworICAgICAgICAgICAgdGVtcFNlbGVjdGlvbi5jYXJldCA9IGxpbmVEZWx0YSh0ZW1wU2VsZWN0aW9uLmNhcmV0LCAtMSk7CisgICAgICAgICAgICBpZiAoIXNoaWZ0KSB7CisgICAgICAgICAgICAgICAgdGVtcFNlbGVjdGlvbi5hbmNob3IgPSB0ZW1wU2VsZWN0aW9uLmNhcmV0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgc2VsZWN0KHRlbXBTZWxlY3Rpb24pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfRE9XTjogLy8gTElVOiBBZGQgc3VwcG9ydCBmb3IgZG93biBhcnJvdworICAgICAgICAgICAgc2V0S2V5U3RhcnQoLTEpOworICAgICAgICAgICAgdGVtcFNlbGVjdGlvbi5zZXQoc2VsZWN0aW9uKTsKKyAgICAgICAgICAgIHRlbXBTZWxlY3Rpb24uY2FyZXQgPSBsaW5lRGVsdGEodGVtcFNlbGVjdGlvbi5jYXJldCwgKzEpOworICAgICAgICAgICAgaWYgKCFzaGlmdCkgeworICAgICAgICAgICAgICAgIHRlbXBTZWxlY3Rpb24uYW5jaG9yID0gdGVtcFNlbGVjdGlvbi5jYXJldDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNlbGVjdCh0ZW1wU2VsZWN0aW9uKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0RFTEVURTogLy8gTElVOiBBZGQgZGVsZXRlIGtleSBzdXBwb3J0CisgICAgICAgICAgICBpZiAoIWVkaXRhYmxlKSBicmVhazsKKyAgICAgICAgICAgIHNldEtleVN0YXJ0KC0xKTsKKyAgICAgICAgICAgIGlmIChjb250ZW50cy5sZW5ndGgoKSA9PSAwKSBicmVhazsKKyAgICAgICAgICAgIHN0YXJ0ID0gc2VsZWN0aW9uLmdldFN0YXJ0KCk7CisgICAgICAgICAgICBlbmQgPSBzZWxlY3Rpb24uZ2V0RW5kKCk7CisgICAgICAgICAgICBpZiAoc3RhcnQgPT0gZW5kKSB7CisgICAgICAgICAgICAgICAgKytlbmQ7CisgICAgICAgICAgICAgICAgaWYgKGVuZCA+IGNvbnRlbnRzLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGdldFRvb2xraXQoKS5iZWVwKCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXBsYWNlUmFuZ2UoIiIsIHN0YXJ0LCBlbmQpOworICAgICAgICAgICAgYnJlYWs7ICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIGNvcHkoKSB7CisgICAgICAgIENsaXBib2FyZCBjYiA9IHRoaXMuZ2V0VG9vbGtpdCgpLmdldFN5c3RlbUNsaXBib2FyZCgpOworICAgICAgICBTdHJpbmdTZWxlY3Rpb24gc3MgPSBuZXcgU3RyaW5nU2VsZWN0aW9uKAorICAgICAgICAgICAgY29udGVudHMuc3Vic3RyaW5nKHNlbGVjdGlvbi5nZXRTdGFydCgpLCBzZWxlY3Rpb24uZ2V0RW5kKCkpKTsKKyAgICAgICAgY2Iuc2V0Q29udGVudHMoc3MsIHNzKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBwYXN0ZSAoKSB7CisgICAgICAgIENsaXBib2FyZCBjYiA9IHRoaXMuZ2V0VG9vbGtpdCgpLmdldFN5c3RlbUNsaXBib2FyZCgpOworICAgICAgICBUcmFuc2ZlcmFibGUgdCA9IGNiLmdldENvbnRlbnRzKHRoaXMpOworICAgICAgICBpZiAodCA9PSBudWxsKSB7CisgICAgICAgICAgICB0aGlzLmdldFRvb2xraXQoKS5iZWVwKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFN0cmluZyB0ZW1wID0gKFN0cmluZykgdC5nZXRUcmFuc2ZlckRhdGEoRGF0YUZsYXZvci5zdHJpbmdGbGF2b3IpOworICAgICAgICAgICAgaW5zZXJ0VGV4dCh0ZW1wKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRoaXMuZ2V0VG9vbGtpdCgpLmJlZXAoKTsKKyAgICAgICAgfSAgICAgICAgICAgIAorICAgIH0KKworICAgIC8qKgorICAgICAqIExJVTogR2l2ZW4gYW4gb2Zmc2V0IGludG8gY29udGVudHMsIG1vdmVzIHVwIG9yIGRvd24gYnkgbGluZXMsCisgICAgICogYWNjb3JkaW5nIHRvIGxpbmVTdGFydHNbXS4KKyAgICAgKiBAcGFyYW0gb2ZmIHRoZSBvZmZzZXQgaW50byBjb250ZW50cworICAgICAqIEBwYXJhbSBkZWx0YSBob3cgbWFueSBsaW5lcyB0byBtb3ZlIHVwICg8IDApIG9yIGRvd24gKD4gMCkKKyAgICAgKiBAcmV0dXJuIHRoZSBuZXcgb2Zmc2V0IGludG8gY29udGVudHMKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBsaW5lRGVsdGEoaW50IG9mZiwgaW50IGRlbHRhKSB7CisgICAgICAgIGludCBsaW5lID0gZmluZExpbmUob2ZmLCBmYWxzZSk7CisgICAgICAgIGludCBwb3NJbkxpbmUgPSBvZmYgLSBsaW5lU3RhcnRzW2xpbmVdOworICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4oIm9mZj0iICsgb2ZmICsgIiBhdCAiICsgbGluZSArICI6IiArIHBvc0luTGluZSk7CisgICAgICAgIGxpbmUgKz0gZGVsdGE7CisgICAgICAgIGlmIChsaW5lIDwgMCkgeworICAgICAgICAgICAgbGluZSA9IHBvc0luTGluZSA9IDA7CisgICAgICAgIH0gZWxzZSBpZiAobGluZSA+PSBsaW5lQ291bnQpIHsKKyAgICAgICAgICAgIHJldHVybiBjb250ZW50cy5sZW5ndGgoKTsKKyAgICAgICAgfQorICAgICAgICBvZmYgPSBsaW5lU3RhcnRzW2xpbmVdICsgcG9zSW5MaW5lOworICAgICAgICBpZiAob2ZmID49IGxpbmVTdGFydHNbbGluZSsxXSkgeworICAgICAgICAgICAgb2ZmID0gbGluZVN0YXJ0c1tsaW5lKzFdIC0gMTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gb2ZmOworICAgIH0KKyAgICAgIAorCXB1YmxpYyB2b2lkIGtleVJlbGVhc2VkKEtleUV2ZW50IGUpIHsKKyAgICAgICAgaW50IGNvZGUgPSBlLmdldEtleUNvZGUoKTsKKyAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oImtleVJlbGVhc2VkICIKKyAgICAgICAgICArIGhleCgoY2hhciljb2RlKSArICIsICIgKyBoZXgoKGNoYXIpZS5nZXRNb2RpZmllcnMoKSkpOworICAgIH0KKworCXB1YmxpYyB2b2lkIGtleVR5cGVkKEtleUV2ZW50IGUpIHsKKyAgICAgICAgY2hhciBjaCA9IGUuZ2V0S2V5Q2hhcigpOworICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigia2V5VHlwZWQgIgorICAgICAgICAgICsgaGV4KChjaGFyKWNoKSArICIsICIgKyBoZXgoKGNoYXIpZS5nZXRNb2RpZmllcnMoKSkpOworICAgICAgICBpZiAoKGUuZ2V0TW9kaWZpZXJzKCkgJiBLZXlFdmVudC5DVFJMX01BU0spICE9IDApIHJldHVybjsKKyAgICAgICAgaW50IHN0YXJ0LCBlbmQ7CisgICAgICAgIHN3aXRjaCAoY2gpIHsKKyAgICAgICAgY2FzZSBLZXlFdmVudC5DSEFSX1VOREVGSU5FRDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0JBQ0tfU1BBQ0U6CisgICAgICAgICAgICAvL3NldEtleVN0YXJ0KC0xKTsKKyAgICAgICAgICAgIGlmICghZWRpdGFibGUpIGJyZWFrOworICAgICAgICAgICAgaWYgKGNvbnRlbnRzLmxlbmd0aCgpID09IDApIGJyZWFrOworICAgICAgICAgICAgc3RhcnQgPSBzZWxlY3Rpb24uZ2V0U3RhcnQoKTsKKyAgICAgICAgICAgIGVuZCA9IHNlbGVjdGlvbi5nZXRFbmQoKTsKKyAgICAgICAgICAgIGlmIChzdGFydCA9PSBlbmQpIHsKKyAgICAgICAgICAgICAgICAtLXN0YXJ0OworICAgICAgICAgICAgICAgIGlmIChzdGFydCA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZ2V0VG9vbGtpdCgpLmJlZXAoKTsgLy8gTElVOiBBZGQgYXVkaW8gZmVlZGJhY2sgb2YgTk9QCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXBsYWNlUmFuZ2UoIiIsIHN0YXJ0LCBlbmQpOworICAgICAgICAgICAgYnJlYWs7ICAgICAgICAKKyAgICAgICAgY2FzZSBLZXlFdmVudC5WS19ERUxFVEU6CisgICAgICAgICAgICAvL3NldEtleVN0YXJ0KC0xKTsKKyAgICAgICAgICAgIGlmICghZWRpdGFibGUpIGJyZWFrOworICAgICAgICAgICAgaWYgKGNvbnRlbnRzLmxlbmd0aCgpID09IDApIGJyZWFrOworICAgICAgICAgICAgc3RhcnQgPSBzZWxlY3Rpb24uZ2V0U3RhcnQoKTsKKyAgICAgICAgICAgIGVuZCA9IHNlbGVjdGlvbi5nZXRFbmQoKTsKKyAgICAgICAgICAgIGlmIChzdGFydCA9PSBlbmQpIHsKKyAgICAgICAgICAgICAgICArK2VuZDsKKyAgICAgICAgICAgICAgICBpZiAoZW5kID4gY29udGVudHMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZ2V0VG9vbGtpdCgpLmJlZXAoKTsgLy8gTElVOiBBZGQgYXVkaW8gZmVlZGJhY2sgb2YgTk9QCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXBsYWNlUmFuZ2UoIiIsIHN0YXJ0LCBlbmQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBpZiAoIWVkaXRhYmxlKSBicmVhazsKKyAgICAgICAgICAgIC8vIExJVTogRGlzcGF0Y2ggdG8gc3ViY2xhc3MgQVBJCisgICAgICAgICAgICBoYW5kbGVLZXlUeXBlZChlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gTElVOiBTdWJjbGFzcyBBUEkgZm9yIGhhbmRsaW5nIG9mIGtleSB0eXBpbmcKKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVLZXlUeXBlZChLZXlFdmVudCBlKSB7CisgICAgICAgIGluc2VydFRleHQoU3RyaW5nLnZhbHVlT2YoZS5nZXRLZXlDaGFyKCkpKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgc2V0S2V5U3RhcnQoaW50IGtleVN0YXJ0KSB7CisgICAgICAgIGlmIChhY3RpdmVTdGFydCAhPSBrZXlTdGFydCkgeworICAgICAgICAgICAgYWN0aXZlU3RhcnQgPSBrZXlTdGFydDsKKyAgICAgICAgICAgIHJlcGFpbnQoMTApOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIHZhbGlkYXRlS2V5U3RhcnQoKSB7CisgICAgCWlmIChhY3RpdmVTdGFydCA+IHNlbGVjdGlvbi5nZXRTdGFydCgpKSB7CisgICAgICAgICAgICBhY3RpdmVTdGFydCA9IHNlbGVjdGlvbi5nZXRTdGFydCgpOworICAgICAgICAgICAgcmVwYWludCgxMCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIGludCBnZXRLZXlTdGFydCgpIHsKKyAgICAgICAgcmV0dXJuIGFjdGl2ZVN0YXJ0OworICAgIH0KKworLy8gPT09PT09PT09PT09PT09PT09PT09IENvbnRyb2wgPT09PT09PT09PT09PT09PT09PT09PQorCisgICAgcHVibGljIHN5bmNocm9uaXplZCB2b2lkIHNldEVkaXRhYmxlKGJvb2xlYW4gYikgeworICAgICAgICBlZGl0YWJsZSA9IGI7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaXNFZGl0YWJsZSgpIHsKKyAgICAgICAgcmV0dXJuIGVkaXRhYmxlOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNlbGVjdChTZWxlY3Rpb24gbmV3U2VsZWN0aW9uKSB7CisgICAgICAgIG5ld1NlbGVjdGlvbi5waW4oY29udGVudHMpOworICAgICAgICBpZiAoIXNlbGVjdGlvbi5lcXVhbHMobmV3U2VsZWN0aW9uKSkgeworICAgICAgICAgICAgc2VsZWN0aW9uLnNldChuZXdTZWxlY3Rpb24pOworICAgICAgICAgICAgaWYgKHNlbGVjdGlvbkxpc3RlbmVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzZWxlY3Rpb25MaXN0ZW5lci5hY3Rpb25QZXJmb3JtZWQoCisgICAgICAgICAgICAgICAgICBuZXcgQWN0aW9uRXZlbnQodGhpcywgQWN0aW9uRXZlbnQuQUNUSU9OX1BFUkZPUk1FRCwKKyAgICAgICAgICAgICAgICAgICAgIlNlbGVjdGlvbiBDaGFuZ2VkIiwgMCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVwYWludCgxMCk7CisgICAgICAgICAgICB2YWxpZCA9IGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2VsZWN0KGludCBzdGFydCwgaW50IGVuZCkgeworICAgICAgICBzZWxlY3Qoc3RhcnQsIGVuZCwgZmFsc2UpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNlbGVjdChpbnQgc3RhcnQsIGludCBlbmQsIGJvb2xlYW4gY2xpY2tBZnRlcikgeworICAgICAgICB0ZW1wU2VsZWN0aW9uLnNldChzdGFydCwgZW5kLCBjbGlja0FmdGVyKTsKKyAgICAgICAgc2VsZWN0KHRlbXBTZWxlY3Rpb24pOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0U2VsZWN0aW9uU3RhcnQoKSB7CisgICAgICAgIHJldHVybiBzZWxlY3Rpb24uZ2V0U3RhcnQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldFNlbGVjdGlvbkVuZCgpIHsKKyAgICAgICAgcmV0dXJuIHNlbGVjdGlvbi5nZXRFbmQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRCb3VuZHMoaW50IHgsIGludCB5LCBpbnQgdywgaW50IGgpIHsKKyAgICAgICAgc3VwZXIuc2V0Qm91bmRzKHgseSx3LGgpOworICAgICAgICByZWRvTGluZXMgPSB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBEaW1lbnNpb24gZ2V0UHJlZmVycmVkU2l6ZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEaW1lbnNpb24obGFzdFdpZHRoLGxhc3RIZWlnaHQpOworICAgIH0KKworICAgIHB1YmxpYyBEaW1lbnNpb24gZ2V0TWF4aW11bVNpemUoKSB7CisgICAgICAgIHJldHVybiBuZXcgRGltZW5zaW9uKGxhc3RXaWR0aCxsYXN0SGVpZ2h0KTsKKyAgICB9CisKKyAgICBwdWJsaWMgRGltZW5zaW9uIGdldE1pbmltdW1TaXplKCkgeworICAgICAgICByZXR1cm4gbmV3IERpbWVuc2lvbihsYXN0SGVpZ2h0LGxhc3RIZWlnaHQpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFRleHQoU3RyaW5nIHRleHQpIHsKKyAgICAgICAgc2V0VGV4dDIodGV4dCk7CisgICAgICAgIHNlbGVjdCh0ZW1wU2VsZWN0aW9uLnNldChzZWxlY3Rpb24pLnBpbihjb250ZW50cykpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFRleHQyKFN0cmluZyB0ZXh0KSB7CisgICAgICAgIGNvbnRlbnRzID0gdGV4dDsKKyAgICAgICAgY2hhckJyZWFrZXIuc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgd29yZEJyZWFrZXIuc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgbGluZUJyZWFrZXIuc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgcmVkb0xpbmVzID0gdHJ1ZTsKKyAgICAgICAgaWYgKHRleHRMaXN0ZW5lciAhPSBudWxsKQorICAgICAgICAgICAgdGV4dExpc3RlbmVyLnRleHRWYWx1ZUNoYW5nZWQoCisgICAgICAgICAgICAgIG5ldyBUZXh0RXZlbnQodGhpcywgVGV4dEV2ZW50LlRFWFRfVkFMVUVfQ0hBTkdFRCkpOworICAgICAgICByZXBhaW50KDE2KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBpbnNlcnRUZXh0KFN0cmluZyB0ZXh0KSB7CisgICAgICAgIGlmIChhY3RpdmVTdGFydCA9PSAtMSkgYWN0aXZlU3RhcnQgPSBzZWxlY3Rpb24uZ2V0U3RhcnQoKTsKKyAgICAgICAgcmVwbGFjZVJhbmdlKHRleHQsIHNlbGVjdGlvbi5nZXRTdGFydCgpLCBzZWxlY3Rpb24uZ2V0RW5kKCkpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlcGxhY2VSYW5nZShTdHJpbmcgcywgaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgIHNldFRleHQyKGNvbnRlbnRzLnN1YnN0cmluZygwLHN0YXJ0KSArIHMKKyAgICAgICAgICArIGNvbnRlbnRzLnN1YnN0cmluZyhlbmQpKTsKKyAgICAgICAgc2VsZWN0KHRlbXBTZWxlY3Rpb24uc2V0KHNlbGVjdGlvbikuCisgICAgICAgICAgZml4QWZ0ZXJSZXBsYWNlKHN0YXJ0LCBlbmQsIHMubGVuZ3RoKCkpKTsKKyAgICAgICAgdmFsaWRhdGVLZXlTdGFydCgpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0VGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIGNvbnRlbnRzOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldEZvbnQoRm9udCBmb250KSB7CisgICAgICAgIHN1cGVyLnNldEZvbnQoZm9udCk7CisgICAgICAgIHJlZG9MaW5lcyA9IHRydWU7CisgICAgICAgIHJlcGFpbnQoMTYpOworICAgIH0KKworICAgIC8vID09PT09PT09PT09PT09PT09PSBHcmFwaGljcyA9PT09PT09PT09PT09PT09PT09PT09CisKKyAgICBwdWJsaWMgdm9pZCB1cGRhdGUoR3JhcGhpY3MgZykgeworICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigidXBkYXRlIik7CisgICAgICAgIHBhaW50KGcpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHBhaW50KEdyYXBoaWNzIGcpIHsKKyAgICAgICAgbXlTaXplID0gZ2V0U2l6ZSgpOworICAgICAgICBpZiAoY2FjaGVJbWFnZSA9PSBudWxsCisgICAgICAgICAgfHwgY2FjaGVJbWFnZS5nZXRIZWlnaHQodGhpcykgIT0gbXlTaXplLmhlaWdodAorICAgICAgICAgIHx8IGNhY2hlSW1hZ2UuZ2V0V2lkdGgodGhpcykgIT0gbXlTaXplLndpZHRoKSB7CisgICAgICAgICAgICBjYWNoZUltYWdlID0gY3JlYXRlSW1hZ2UobXlTaXplLndpZHRoLCBteVNpemUuaGVpZ2h0KTsKKyAgICAgICAgICAgIHZhbGlkID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCF2YWxpZCB8fCByZWRvTGluZXMpIHsKKyAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJwYWludGluZyIpOworICAgICAgICAgICAgcGFpbnQyKGNhY2hlSW1hZ2UuZ2V0R3JhcGhpY3MoKSk7CisgICAgICAgICAgICB2YWxpZCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgLy9nZXRUb29sa2l0KCkuc3luYygpOworICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiY29weWluZyIpOworICAgICAgICBnLmRyYXdJbWFnZShjYWNoZUltYWdlLAorICAgICAgICAgIDAsIDAsIG15U2l6ZS53aWR0aCwgbXlTaXplLmhlaWdodCwKKyAgICAgICAgICAwLCAwLCBteVNpemUud2lkdGgsIG15U2l6ZS5oZWlnaHQsCisgICAgICAgICAgdGhpcyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcGFpbnQyKEdyYXBoaWNzIGcpIHsKKyAgICAgICAgZy5jbGVhclJlY3QoMCwgMCwgbXlTaXplLndpZHRoLCBteVNpemUuaGVpZ2h0KTsKKyAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oInByaW50Iik7CisgICAgICAgIGlmIChmb2N1cykgZy5zZXRDb2xvcihDb2xvci5ibGFjayk7CisgICAgICAgIGVsc2UgZy5zZXRDb2xvcihDb2xvci5ncmF5KTsKKyAgICAgICAgZy5kcmF3UmVjdCgwLDAsbXlTaXplLndpZHRoLTEsbXlTaXplLmhlaWdodC0xKTsKKyAgICAgICAgZy5zZXRDbGlwKDEsMSwKKyAgICAgICAgICBteVNpemUud2lkdGgtMixteVNpemUuaGVpZ2h0LTIpOworICAgICAgICBnLnNldENvbG9yKENvbG9yLmJsYWNrKTsKKyAgICAgICAgZy5zZXRGb250KGdldEZvbnQoKSk7CisgICAgICAgIGZtID0gZy5nZXRGb250TWV0cmljcygpOworICAgICAgICBsaW5lQXNjZW50ID0gZm0uZ2V0QXNjZW50KCk7CisgICAgICAgIGxpbmVMZWFkaW5nID0gZm0uZ2V0TGVhZGluZygpOworICAgICAgICBsaW5lSGVpZ2h0ID0gbGluZUFzY2VudCArIGZtLmdldERlc2NlbnQoKSArIGxpbmVMZWFkaW5nOworICAgICAgICBpbnQgeSA9IHlJbnNldCArIGxpbmVBc2NlbnQ7CisgICAgICAgIFN0cmluZyBsYXN0U3Vic3RyaW5nID0gIiI7CisgICAgICAgIGlmIChyZWRvTGluZXMpIGZpeExpbmVTdGFydHMobXlTaXplLndpZHRoLXhJbnNldC14SW5zZXQpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxpbmVDb3VudDsgeSArPSBsaW5lSGVpZ2h0LCArK2kpIHsKKyAgICAgICAgICAgIC8vIExJVTogRG9uJ3QgZGlzcGxheSB0ZXJtaW5hdGluZyBeTSBjaGFyYWN0ZXJzCisgICAgICAgICAgICBpbnQgbGltID0gbGluZVN0YXJ0c1tpKzFdOworICAgICAgICAgICAgaWYgKGxpbSA+IDAgJiYgY29udGVudHMubGVuZ3RoKCkgPiAwICYmCisgICAgICAgICAgICAgICAgY29udGVudHMuY2hhckF0KGxpbS0xKSA9PSBDUikgLS1saW07CisgICAgICAgICAgICBsYXN0U3Vic3RyaW5nID0gY29udGVudHMuc3Vic3RyaW5nKGxpbmVTdGFydHNbaV0sbGltKTsKKyAgICAgICAgICAgIGcuZHJhd1N0cmluZyhsYXN0U3Vic3RyaW5nLCB4SW5zZXQsIHkpOworICAgICAgICB9CisgICAgICAgIGRyYXdTZWxlY3Rpb24oZywgbGFzdFN1YnN0cmluZyk7CisgICAgICAgIGxhc3RIZWlnaHQgPSB5ICsgeUluc2V0IC0gbGluZUhlaWdodCArIHlJbnNldDsKKyAgICAgICAgbGFzdFdpZHRoID0gbXlTaXplLndpZHRoLXhJbnNldC14SW5zZXQ7CisgICAgfQorCisgICAgdm9pZCBwYWludFJlY3QoR3JhcGhpY3MgZywgaW50IHgsIGludCB5LCBpbnQgdywgaW50IGgpIHsKKyAgICAgICAgaWYgKGZvY3VzKSB7CisgICAgICAgICAgICBnLmZpbGxSZWN0KHgsIHksIHcsIGgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZy5kcmF3UmVjdCh4LCB5LCB3LTEsIGgtMSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBkcmF3U2VsZWN0aW9uKEdyYXBoaWNzIGcsIFN0cmluZyBsYXN0U3Vic3RyaW5nKSB7CisgICAgICAgIGcuc2V0WE9STW9kZShDb2xvci5ibGFjayk7CisgICAgICAgIGlmIChhY3RpdmVTdGFydCAhPSAtMSkgeworICAgICAgICAgICAgb2Zmc2V0MlBvaW50KGFjdGl2ZVN0YXJ0LCBmYWxzZSwgYWN0aXZlUG9pbnQpOworICAgICAgICAgICAgZy5zZXRDb2xvcihDb2xvci5tYWdlbnRhKTsKKyAgICAgICAgICAgIGludCBsaW5lID0gYWN0aXZlUG9pbnQueCAtIDE7CisgICAgICAgICAgICBnLmZpbGxSZWN0KGxpbmUsIGFjdGl2ZVBvaW50LnksIDEsIGxpbmVIZWlnaHQpOworICAgICAgICB9CisgICAgICAgIGlmIChzZWxlY3Rpb24uaXNDYXJldCgpKSB7CisgICAgICAgICAgICBvZmZzZXQyUG9pbnQoc2VsZWN0aW9uLmNhcmV0LCBzZWxlY3Rpb24uY2xpY2tBZnRlciwgY2FyZXRQb2ludCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoZm9jdXMpIGcuc2V0Q29sb3IoQ29sb3IuYmx1ZSk7CisgICAgICAgICAgICBlbHNlIGcuc2V0Q29sb3IoQ29sb3IueWVsbG93KTsKKyAgICAgICAgICAgIG9mZnNldDJQb2ludChzZWxlY3Rpb24uZ2V0U3RhcnQoKSwgdHJ1ZSwgc3RhcnRQb2ludCk7CisgICAgICAgICAgICBvZmZzZXQyUG9pbnQoc2VsZWN0aW9uLmdldEVuZCgpLCBmYWxzZSwgZW5kUG9pbnQpOworICAgICAgICAgICAgaWYgKHNlbGVjdGlvbi5nZXRTdGFydCgpID09IHNlbGVjdGlvbi5jYXJldCkKKyAgICAgICAgICAgICAgICBjYXJldFBvaW50LnNldExvY2F0aW9uKHN0YXJ0UG9pbnQpOworICAgICAgICAgICAgZWxzZSBjYXJldFBvaW50LnNldExvY2F0aW9uKGVuZFBvaW50KTsKKyAgICAgICAgICAgIGlmIChzdGFydFBvaW50LnkgPT0gZW5kUG9pbnQueSkgeworICAgICAgICAgICAgICAgIHBhaW50UmVjdChnLCBzdGFydFBvaW50LngsIHN0YXJ0UG9pbnQueSwKKyAgICAgICAgICAgICAgICAgIE1hdGgubWF4KDEsZW5kUG9pbnQueC1zdGFydFBvaW50LngpLCBsaW5lSGVpZ2h0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcGFpbnRSZWN0KGcsIHN0YXJ0UG9pbnQueCwgc3RhcnRQb2ludC55LAorICAgICAgICAgICAgICAgICAgKG15U2l6ZS53aWR0aC14SW5zZXQpLXN0YXJ0UG9pbnQueCwgbGluZUhlaWdodCk7CisgICAgICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQueSArIGxpbmVIZWlnaHQgPCBlbmRQb2ludC55KQorICAgICAgICAgICAgICAgICAgcGFpbnRSZWN0KGcsIHhJbnNldCwgc3RhcnRQb2ludC55ICsgbGluZUhlaWdodCwKKyAgICAgICAgICAgICAgICAgIChteVNpemUud2lkdGgteEluc2V0KS14SW5zZXQsIGVuZFBvaW50LnkgLSBzdGFydFBvaW50LnkgLSBsaW5lSGVpZ2h0KTsKKyAgICAgICAgICAgICAgICBwYWludFJlY3QoZywgeEluc2V0LCBlbmRQb2ludC55LCBlbmRQb2ludC54LXhJbnNldCwgbGluZUhlaWdodCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZvY3VzIHx8IHNlbGVjdGlvbi5pc0NhcmV0KCkpIHsKKyAgICAgICAgICAgIGlmIChmb2N1cykgZy5zZXRDb2xvcihDb2xvci5ncmVlbik7CisgICAgICAgICAgICBlbHNlIGcuc2V0Q29sb3IoQ29sb3IucmVkKTsKKyAgICAgICAgICAgIGludCBsaW5lID0gY2FyZXRQb2ludC54IC0gKHNlbGVjdGlvbi5jbGlja0FmdGVyID8gMCA6IDEpOworICAgICAgICAgICAgZy5maWxsUmVjdChsaW5lLCBjYXJldFBvaW50LnksIDEsIGxpbmVIZWlnaHQpOworICAgICAgICAgICAgaW50IHcgPSBsaW5lSGVpZ2h0LzEyICsgMTsKKyAgICAgICAgICAgIGludCBicmFjZXMgPSBsaW5lIC0gKHNlbGVjdGlvbi5jbGlja0FmdGVyID8gLTEgOiB3KTsKKyAgICAgICAgICAgIGcuZmlsbFJlY3QoYnJhY2VzLCBjYXJldFBvaW50LnksIHcsIDEpOworICAgICAgICAgICAgZy5maWxsUmVjdChicmFjZXMsIGNhcmV0UG9pbnQueSArIGxpbmVIZWlnaHQgLSAxLCB3LCAxKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBQb2ludCBvZmZzZXQyUG9pbnQoaW50IG9mZiwgYm9vbGVhbiBzdGFydCwgUG9pbnQgcCkgeworICAgICAgICBpbnQgbGluZSA9IGZpbmRMaW5lKG9mZiwgc3RhcnQpOworICAgICAgICBpbnQgd2lkdGggPSAwOworICAgICAgICB0cnkgeworICAgICAgICAgICAgd2lkdGggPSBmbS5zdHJpbmdXaWR0aCgKKyAgICAgICAgICAgICAgY29udGVudHMuc3Vic3RyaW5nKGxpbmVTdGFydHNbbGluZV0sIG9mZikpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGUpOworICAgICAgICB9CisgICAgICAgIHAueCA9IHdpZHRoICsgeEluc2V0OworICAgICAgICBpZiAocC54ID4gbXlTaXplLndpZHRoIC0geEluc2V0KQorICAgICAgICAgICAgcC54ID0gbXlTaXplLndpZHRoIC0geEluc2V0OworICAgICAgICBwLnkgPSBsaW5lSGVpZ2h0ICogbGluZSArIHlJbnNldDsKKyAgICAgICAgcmV0dXJuIHA7CisgICAgfQorCisgICAgcHJpdmF0ZSBpbnQgZmluZExpbmUoaW50IG9mZiwgYm9vbGVhbiBzdGFydCkgeworICAgICAgICAvLyBpZiBpdCBpcyBzdGFydCwgdGhlbiBnbyB0byB0aGUgbmV4dCBsaW5lIQorICAgICAgICBpZiAoc3RhcnQpICsrb2ZmOworICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IGxpbmVDb3VudDsgKytpKSB7CisgICAgICAgICAgICAvLyBMSVU6IFRoaXMgd2FzIDw9IDsgY2hhbmdlZCB0byA8IHRvIG1ha2UgY2FyZXQgYWZ0ZXIKKyAgICAgICAgICAgIC8vIGZpbmFsIENSIGluIGxpbmUgYXBwZWFyIGF0IFNUQVJUIG9mIG5leHQgbGluZS4KKyAgICAgICAgICAgIGlmIChvZmYgPCBsaW5lU3RhcnRzW2ldKSByZXR1cm4gaS0xOworICAgICAgICB9CisgICAgICAgIC8vIExJVTogQ2hlY2sgZm9yIHNwZWNpYWwgY2FzZTsgYWZ0ZXIgQ1IgYXQgZW5kIG9mIHRoZSBsYXN0IGxpbmUKKyAgICAgICAgaWYgKG9mZiA9PSBsaW5lU3RhcnRzW2xpbmVDb3VudF0gJiYKKyAgICAgICAgICAgIG9mZiA+IDAgJiYgY29udGVudHMubGVuZ3RoKCkgPiAwICYmIGNvbnRlbnRzLmNoYXJBdChvZmYtMSkgPT0gQ1IpIHsKKyAgICAgICAgICAgIHJldHVybiBsaW5lQ291bnQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxpbmVDb3VudC0xOworICAgIH0KKworICAgIC8vIG9mZnNldHMgb24gYW55IGxpbmUgd2lsbCBnbyBmcm9tIHN0YXJ0LHRydWUgdG8gZW5kLGZhbHNlCisgICAgLy8gZXhjbHVkaW5nIHN0YXJ0LGZhbHNlIGFuZCBlbmQsdHJ1ZQorICAgIHB1YmxpYyBTZWxlY3Rpb24gcG9pbnQyT2Zmc2V0KFBvaW50IHAsIFNlbGVjdGlvbiBvKSB7CisgICAgICAgIGlmIChwLnkgPCB5SW5zZXQpIHsKKyAgICAgICAgICAgIG8uY2FyZXQgPSAwOworICAgICAgICAgICAgby5jbGlja0FmdGVyID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBvOworICAgICAgICB9CisgICAgICAgIGludCBsaW5lID0gKHAueSAtIHlJbnNldCkvbGluZUhlaWdodDsKKyAgICAgICAgaWYgKGxpbmUgPj0gbGluZUNvdW50KSB7CisgICAgICAgICAgICBvLmNhcmV0ID0gY29udGVudHMubGVuZ3RoKCk7CisgICAgICAgICAgICBvLmNsaWNrQWZ0ZXIgPSBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybiBvOworICAgICAgICB9CisgICAgICAgIGludCB0YXJnZXQgPSBwLnggLSB4SW5zZXQ7CisgICAgICAgIGlmICh0YXJnZXQgPD0gMCkgeworICAgICAgICAgICAgby5jYXJldCA9IGxpbmVTdGFydHNbbGluZV07CisgICAgICAgICAgICBvLmNsaWNrQWZ0ZXIgPSB0cnVlOworICAgICAgICAgICAgcmV0dXJuIG87CisgICAgICAgIH0KKyAgICAgICAgaW50IGxvd0d1ZXNzID0gbGluZVN0YXJ0c1tsaW5lXTsKKyAgICAgICAgaW50IGxvd1dpZHRoID0gMDsKKyAgICAgICAgaW50IGhpZ2hHdWVzcyA9IGxpbmVTdGFydHNbbGluZSsxXTsKKyAgICAgICAgaW50IGhpZ2hXaWR0aCA9IGZtLnN0cmluZ1dpZHRoKGNvbnRlbnRzLnN1YnN0cmluZyhsaW5lU3RhcnRzW2xpbmVdLGhpZ2hHdWVzcykpOworICAgICAgICBpZiAodGFyZ2V0ID49IGhpZ2hXaWR0aCkgeworICAgICAgICAgICAgby5jYXJldCA9IGxpbmVTdGFydHNbbGluZSsxXTsKKyAgICAgICAgICAgIG8uY2xpY2tBZnRlciA9IGZhbHNlOworICAgICAgICAgICAgcmV0dXJuIG87CisgICAgICAgIH0KKyAgICAgICAgd2hpbGUgKGxvd0d1ZXNzIDwgaGlnaEd1ZXNzIC0gMSkgeworICAgICAgICAgICAgaW50IGd1ZXNzID0gKGxvd0d1ZXNzICsgaGlnaEd1ZXNzKS8yOworICAgICAgICAgICAgaW50IHdpZHRoID0gZm0uc3RyaW5nV2lkdGgoY29udGVudHMuc3Vic3RyaW5nKGxpbmVTdGFydHNbbGluZV0sZ3Vlc3MpKTsKKyAgICAgICAgICAgIGlmICh3aWR0aCA8PSB0YXJnZXQpIHsKKyAgICAgICAgICAgICAgICBsb3dHdWVzcyA9IGd1ZXNzOworICAgICAgICAgICAgICAgIGxvd1dpZHRoID0gd2lkdGg7CisgICAgICAgICAgICAgICAgaWYgKHdpZHRoID09IHRhcmdldCkgYnJlYWs7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGhpZ2hHdWVzcyA9IGd1ZXNzOworICAgICAgICAgICAgICAgIGhpZ2hXaWR0aCA9IHdpZHRoOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIGF0IGVuZCwgZWl0aGVyIGxvd1dpZHRoIDwgdGFyZ2V0IDwgd2lkdGgobG93KzEpLCBvciBsb3dXaWR0aCA9IHRhcmdldAorICAgICAgICBpbnQgaGlnaEJvdW5kID0gY2hhckJyZWFrZXIuZm9sbG93aW5nKGxvd0d1ZXNzKTsKKyAgICAgICAgaW50IGxvd0JvdW5kID0gY2hhckJyZWFrZXIucHJldmlvdXMoKTsKKyAgICAgICAgLy8gd2UgYXJlIG5vdyBhdCBjaGFyYWN0ZXIgYm91bmRhcmllcworICAgICAgICBpZiAobG93Qm91bmQgIT0gbG93R3Vlc3MpCisgICAgICAgICAgICBsb3dXaWR0aCA9IGZtLnN0cmluZ1dpZHRoKGNvbnRlbnRzLnN1YnN0cmluZyhsaW5lU3RhcnRzW2xpbmVdLGxvd0JvdW5kKSk7CisgICAgICAgIGlmIChoaWdoQm91bmQgIT0gaGlnaEd1ZXNzKQorICAgICAgICAgICAgaGlnaFdpZHRoID0gZm0uc3RyaW5nV2lkdGgoY29udGVudHMuc3Vic3RyaW5nKGxpbmVTdGFydHNbbGluZV0saGlnaEJvdW5kKSk7CisgICAgICAgIC8vIHdlIG5vdyBoYXZlIHRoZSByaWdodCB3aWR0aHMKKyAgICAgICAgaWYgKHRhcmdldCAtIGxvd1dpZHRoIDwgaGlnaFdpZHRoIC0gdGFyZ2V0KSB7CisgICAgICAgICAgICBvLmNhcmV0ID0gbG93Qm91bmQ7CisgICAgICAgICAgICBvLmNsaWNrQWZ0ZXIgPSB0cnVlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgby5jYXJldCA9IGhpZ2hCb3VuZDsKKyAgICAgICAgICAgIG8uY2xpY2tBZnRlciA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIC8vIHdlIG5vdyBoYXZlIHRoZSBjbG9zZXN0IQorICAgICAgICByZXR1cm4gbzsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZml4TGluZVN0YXJ0cyhpbnQgd2lkdGgpIHsKKyAgICAgICAgbGluZUNvdW50ID0gMTsKKyAgICAgICAgbGluZVN0YXJ0c1swXSA9IDA7CisgICAgICAgIGlmIChjb250ZW50cy5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICBsaW5lU3RhcnRzWzFdID0gMDsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpbnQgZW5kID0gMDsKKyAgICAgICAgLy8gTElVOiBBZGQgY2hlY2sgZm9yIE1BWF9MSU5FUworICAgICAgICBmb3IgKGludCBzdGFydCA9IDA7IHN0YXJ0IDwgY29udGVudHMubGVuZ3RoKCkgJiYgbGluZUNvdW50IDwgTUFYX0xJTkVTOworICAgICAgICAgICAgIHN0YXJ0ID0gZW5kKSB7CisgICAgICAgICAgICBlbmQgPSBuZXh0TGluZShmbSwgc3RhcnQsIHdpZHRoKTsKKyAgICAgICAgICAgIGxpbmVTdGFydHNbbGluZUNvdW50KytdID0gZW5kOworICAgICAgICAgICAgaWYgKGVuZCA9PSBzdGFydCkgeyAvLyBMSVU6IEFzc2VydGlvbgorICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJuZXh0TGluZSBicm9rZW4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAtLWxpbmVDb3VudDsKKyAgICAgICAgcmVkb0xpbmVzID0gZmFsc2U7CisgICAgfQorCisgICAgLy8gTElVOiBFbmhhbmNlZCB0byB3cmFwIGxvbmcgbGluZXMuICBCdWcgd2l0aCByZXR1cm4gb2Ygc3RhcnQgZml4ZWQuCisgICAgcHVibGljIGludCBuZXh0TGluZShGb250TWV0cmljcyBmbSwgaW50IHN0YXJ0LCBpbnQgd2lkdGgpIHsKKyAgICAgICAgaW50IGxlbiA9IGNvbnRlbnRzLmxlbmd0aCgpOworICAgICAgICBmb3IgKGludCBpID0gc3RhcnQ7IGkgPCBsZW47ICsraSkgeworICAgICAgICAgICAgLy8gY2hlY2sgZm9yIGxpbmUgc2VwYXJhdG9yCisgICAgICAgICAgICBjaGFyIGNoID0gKGNvbnRlbnRzLmNoYXJBdChpKSk7CisgICAgICAgICAgICBpZiAoY2ggPj0gMHgwMDBBICYmIGNoIDw9IDB4MDAwRCB8fCBjaCA9PSAweDIwMjggfHwgY2ggPT0gMHgyMDI5KSB7CisgICAgICAgICAgICAgICAgbGVuID0gaSArIDE7CisgICAgICAgICAgICAgICAgaWYgKGNoID09IDB4MDAwRCAmJiBpKzEgPCBsZW4gJiYgY29udGVudHMuY2hhckF0KGkrMSkgPT0gMHgwMDBBKSAvLyBjcmxmCisgICAgICAgICAgICAgICAgICAgICsrbGVuOyAvLyBncmFiIGV4dHJhIGNoYXIKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgc3ViamVjdCA9IGNvbnRlbnRzLnN1YnN0cmluZyhzdGFydCxsZW4pOworICAgICAgICBpZiAodmlzaWJsZVdpZHRoKGZtLCBzdWJqZWN0KSA8PSB3aWR0aCkKKyAgICAgICAgICByZXR1cm4gbGVuOworCisgICAgICAgIC8vIExJVTogUmVtYWluZGVyIG9mIHRoaXMgbWV0aG9kIHJld3JpdHRlbiB0byBhY2NvbW9kYXRlIGxpbmVzCisgICAgICAgIC8vIGxvbmdlciB0aGFuIHRoZSBjb21wb25lbnQgd2lkdGggYnkgZmlyc3QgdHJ5aW5nIHRvIGJyZWFrCisgICAgICAgIC8vIGludG8gbGluZXM7IHRoZW4gd29yZHM7IGZpbmFsbHkgY2hhcnMuCisgICAgICAgIGludCBuID0gZmluZEZpdHRpbmdCcmVhayhmbSwgc3ViamVjdCwgd2lkdGgsIGxpbmVCcmVha2VyKTsKKyAgICAgICAgaWYgKG4gPT0gMCkgeworICAgICAgICAgICAgbiA9IGZpbmRGaXR0aW5nQnJlYWsoZm0sIHN1YmplY3QsIHdpZHRoLCB3b3JkQnJlYWtlcik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG4gPT0gMCkgeworICAgICAgICAgICAgbiA9IGZpbmRGaXR0aW5nQnJlYWsoZm0sIHN1YmplY3QsIHdpZHRoLCBjaGFyQnJlYWtlcik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG4gPiAwID8gc3RhcnQgKyBuIDogbGVuOworICAgIH0KKworICAgIC8qKgorICAgICAqIExJVTogRmluZHMgdGhlIGxvbmdlc3Qgc3Vic3RyaW5nIHRoYXQgZml0cyBhIGdpdmVuIHdpZHRoCisgICAgICogY29tcG9zZWQgb2Ygc3VidW5pdHMgcmV0dXJuZWQgYnkgYSBCcmVha0l0ZXJhdG9yLiAgSWYgdGhlIHNtYWxsZXN0CisgICAgICogc3VidW5pdCBpcyB0b28gbG9uZywgcmV0dXJucyAwLgorICAgICAqIEBwYXJhbSBmbSBtZXRyaWNzIHRvIHVzZQorICAgICAqIEBwYXJhbSBsaW5lIHRoZSBzdHJpbmcgdG8gYmUgZml4IGludG8gd2lkdGgKKyAgICAgKiBAcGFyYW0gd2lkdGggbGluZS5zdWJzdHJpbmcoMCwgcmVzdWx0KSBtdXN0IGJlIDw9IHdpZHRoCisgICAgICogQHBhcmFtIGJyZWFrZXIgdGhlIEJyZWFrSXRlcmF0b3IgdGhhdCB3aWxsIGJlIHVzZWQgdG8gZmluZCBzdWJ1bml0cworICAgICAqIEByZXR1cm4gbWF4aW11bSBjaGFyYWN0ZXJzLCBhdCBib3VuZGFyaWVzIHJldHVybmVkIGJ5IGJyZWFrZXIsCisgICAgICogdGhhdCBmaXQgaW50byB3aWR0aCwgb3IgemVybyBvbiBmYWlsdXJlCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZmluZEZpdHRpbmdCcmVhayhGb250TWV0cmljcyBmbSwgU3RyaW5nIGxpbmUsIGludCB3aWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrSXRlcmF0b3IgYnJlYWtlcikgeworICAgICAgICBicmVha2VyLnNldFRleHQobGluZSk7CisgICAgICAgIGludCBsYXN0ID0gYnJlYWtlci5maXJzdCgpOworICAgICAgICBpbnQgZW5kID0gYnJlYWtlci5uZXh0KCk7CisgICAgICAgIHdoaWxlIChlbmQgIT0gQnJlYWtJdGVyYXRvci5ET05FICYmCisgICAgICAgICAgICAgICB2aXNpYmxlV2lkdGgoZm0sIGxpbmUuc3Vic3RyaW5nKDAsIGVuZCkpIDw9IHdpZHRoKSB7CisgICAgICAgICAgICBsYXN0ID0gZW5kOworICAgICAgICAgICAgZW5kID0gYnJlYWtlci5uZXh0KCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxhc3Q7CisgICAgfQorCisgICAgcHVibGljIGludCB2aXNpYmxlV2lkdGgoRm9udE1ldHJpY3MgZm0sIFN0cmluZyBzKSB7CisgICAgICAgIGludCBpOworICAgICAgICBmb3IgKGkgPSBzLmxlbmd0aCgpLTE7IGkgPj0gMDsgLS1pKSB7CisgICAgICAgICAgICBjaGFyIGNoID0gcy5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoIShjaCA9PSAnICcgfHwgY2ggPj0gMHgwMDBBICYmIGNoIDw9IDB4MDAwRCB8fCBjaCA9PSAweDIwMjggfHwgY2ggPT0gMHgyMDI5KSkKKyAgICAgICAgICAgICAgcmV0dXJuIGZtLnN0cmluZ1dpZHRoKHMuc3Vic3RyaW5nKDAsaSsxKSk7OworICAgICAgICB9CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworLy8gPT09PT09PT09PT09PT09IFV0aWxpdHkgPT09PT09PT09PT09PT09PT09PT0KKworICAgIHByaXZhdGUgdm9pZCBmaXhIZXgoKSB7CisgICAgICAgIGlmIChzZWxlY3Rpb24uZ2V0RW5kKCkgPT0gMCkgcmV0dXJuOworICAgICAgICBpbnQgc3RvcmUgPSAwOworICAgICAgICBpbnQgcGxhY2VzID0gMTsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgaW50IG1pbiA9IE1hdGgubWluKDgsc2VsZWN0aW9uLmdldEVuZCgpKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtaW47ICsraSkgeworICAgICAgICAgICAgY2hhciBjaCA9IGNvbnRlbnRzLmNoYXJBdChzZWxlY3Rpb24uZ2V0RW5kKCktMS1pKTsKKyAgICAgICAgICAgIGludCB2YWx1ZSA9IENoYXJhY3Rlci5nZXROdW1lcmljVmFsdWUoY2gpOworICAgICAgICAgICAgaWYgKHZhbHVlIDwgMCB8fCB2YWx1ZSA+IDE1KSBicmVhazsKKyAgICAgICAgICAgIHN0b3JlICs9IHBsYWNlcyAqIHZhbHVlOworICAgICAgICAgICAgKytjb3VudDsKKyAgICAgICAgICAgIHBsYWNlcyAqPSAxNjsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgYWRkID0gIiI7CisgICAgICAgIGludCBib3R0b20gPSBzdG9yZSAmIDB4RkZGRjsKKyAgICAgICAgaWYgKHN0b3JlID49IDB4RDgwMDAwMDAgJiYgc3RvcmUgPCAweERDMDAwMDAwCisgICAgICAgICAgJiYgYm90dG9tID49IDB4REMwMCAmJiBib3R0b20gPCAweEUwMDApIHsgLy8gc3Vycm9nYXRlcworICAgICAgICAgICAgYWRkID0gIiIgKyAoY2hhcikoc3RvcmUgPj4gMTYpICsgKGNoYXIpYm90dG9tOworICAgICAgICB9IGVsc2UgaWYgKHN0b3JlID4gMHhGRkZGICYmIHN0b3JlIDw9IDB4MTBGRkZGKSB7CisgICAgICAgICAgICBzdG9yZSAtPSAweDEwMDAwOworICAgICAgICAgICAgYWRkID0gIiIgKyAoY2hhcikoKChzdG9yZSA+PiAxMCkgJiAweDNGRikgKyAweEQ4MDApCisgICAgICAgICAgICAgICsgKGNoYXIpKChzdG9yZSAmIDB4M0ZGKSArIDB4REMwMCk7CisgICAgICAgICAgICAgIAorICAgICAgICB9IGVsc2UgaWYgKGNvdW50ID49IDQpIHsKKyAgICAgICAgICAgIGNvdW50ID0gNDsKKyAgICAgICAgICAgIGFkZCA9ICIiKyhjaGFyKShzdG9yZSAmIDB4RkZGRik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBjb3VudCA9IDE7CisgICAgICAgICAgICBjaGFyIGNoID0gY29udGVudHMuY2hhckF0KHNlbGVjdGlvbi5nZXRFbmQoKS0xKTsKKyAgICAgICAgICAgIGFkZCA9IGhleChjaCk7CisgICAgICAgICAgICBpZiAoY2ggPj0gMHhEQzAwICYmIGNoIDw9IDB4REZGRiAmJiBzZWxlY3Rpb24uZ2V0RW5kKCkgPiAxKSB7CisgICAgICAgICAgICAgICAgY2ggPSBjb250ZW50cy5jaGFyQXQoc2VsZWN0aW9uLmdldEVuZCgpLTIpOworICAgICAgICAgICAgICAgIGlmIChjaCA+PSAweEQ4MDAgJiYgY2ggPD0gMHhEQkZGKSB7CisgICAgICAgICAgICAgICAgICAgIGNvdW50ID0gMjsKKyAgICAgICAgICAgICAgICAgICAgYWRkID0gaGV4KGNoKSArIGFkZDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmVwbGFjZVJhbmdlKGFkZCwgc2VsZWN0aW9uLmdldEVuZCgpLWNvdW50LCBzZWxlY3Rpb24uZ2V0RW5kKCkpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGhleChjaGFyIGNoKSB7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSBJbnRlZ2VyLnRvU3RyaW5nKGNoLDE2KS50b1VwcGVyQ2FzZSgpOworICAgICAgICByZXN1bHQgPSAiMDAwMCIuc3Vic3RyaW5nKHJlc3VsdC5sZW5ndGgoKSw0KSArIHJlc3VsdDsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaW1wbC9TZWxlY3Rpb24uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9pbXBsL1NlbGVjdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU5YzEzY2QKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaW1wbC9TZWxlY3Rpb24uamF2YQpAQCAtMCwwICsxLDE2NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2ltcGwvU2VsZWN0aW9uLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDQ6NTcgJCAKKyAqICRSZXZpc2lvbjogMS4yICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby5pbXBsOworaW1wb3J0IGphdmEudGV4dC4qOworCitwdWJsaWMgZmluYWwgY2xhc3MgU2VsZWN0aW9uIHsKKworICAgIHB1YmxpYyBpbnQgYW5jaG9yOworICAgIHB1YmxpYyBpbnQgY2FyZXQ7CisgICAgcHVibGljIGJvb2xlYW4gY2xpY2tBZnRlcjsKKworICAgIHB1YmxpYyBpbnQgZ2V0U3RhcnQoKSB7CisgICAgICAgIHJldHVybiBhbmNob3IgPCBjYXJldCA/IGFuY2hvciA6IGNhcmV0OworICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0RW5kKCkgeworICAgICAgICByZXR1cm4gYW5jaG9yID4gY2FyZXQgPyBhbmNob3IgOiBjYXJldDsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBpc0NhcmV0KCkgeworICAgICAgICByZXR1cm4gYW5jaG9yID09IGNhcmV0OworICAgIH0KKworICAgIHB1YmxpYyBTZWxlY3Rpb24gc2V0KFNlbGVjdGlvbiBvdGhlcikgeworICAgICAgICBhbmNob3IgPSBvdGhlci5hbmNob3I7CisgICAgICAgIGNhcmV0ID0gb3RoZXIuY2FyZXQ7CisgICAgICAgIGNsaWNrQWZ0ZXIgPSBvdGhlci5jbGlja0FmdGVyOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBwdWJsaWMgU2VsZWN0aW9uIHNldChpbnQgYW5jaG9yLCBpbnQgY2FyZXQsIGJvb2xlYW4gY2xpY2tBZnRlcikgeworICAgICAgICB0aGlzLmFuY2hvciA9IGFuY2hvcjsKKyAgICAgICAgdGhpcy5jYXJldCA9IGNhcmV0OworICAgICAgICB0aGlzLmNsaWNrQWZ0ZXIgPSBjbGlja0FmdGVyOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG90aGVyKSB7CisgICAgICAgIFNlbGVjdGlvbiBvdGhlcjIgPSAoU2VsZWN0aW9uKW90aGVyOworICAgICAgICByZXR1cm4gYW5jaG9yID09IG90aGVyMi5hbmNob3IKKyAgICAgICAgICAmJiBjYXJldCA9PSBvdGhlcjIuY2FyZXQKKyAgICAgICAgICAmJiBjbGlja0FmdGVyID09IG90aGVyMi5jbGlja0FmdGVyOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGlzTGVzc1RoYW4oU2VsZWN0aW9uIG90aGVyKSB7CisgICAgICAgIHJldHVybiBnZXRTdGFydCgpIDwgb3RoZXIuZ2V0RW5kKCk7CisgICAgfQorCisgICAgcHVibGljIFNlbGVjdGlvbiBwaW4oU3RyaW5nIHRleHQpIHsKKyAgICAgICAgaWYgKGFuY2hvciA+IHRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGFuY2hvciA9IHRleHQubGVuZ3RoKCk7CisgICAgICAgIH0gZWxzZSBpZiAoYW5jaG9yIDwgMCkgeworICAgICAgICAgICAgYW5jaG9yID0gMDsKKyAgICAgICAgfQorICAgICAgICBpZiAoY2FyZXQgPiB0ZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICBjYXJldCA9IHRleHQubGVuZ3RoKCk7CisgICAgICAgICAgICBjbGlja0FmdGVyID0gdHJ1ZTsKKyAgICAgICAgfSBlbHNlIGlmIChjYXJldCA8IDApIHsKKyAgICAgICAgICAgIGNhcmV0ID0gMDsKKyAgICAgICAgICAgIGNsaWNrQWZ0ZXIgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBwdWJsaWMgU2VsZWN0aW9uIHN3YXAoU2VsZWN0aW9uIGFmdGVyKSB7CisgICAgICAgIGludCB0ZW1wID0gYW5jaG9yOworICAgICAgICBhbmNob3IgPSBhZnRlci5hbmNob3I7CisgICAgICAgIGFmdGVyLmFuY2hvciA9IHRlbXA7CisgICAgICAgIHRlbXAgPSBjYXJldDsKKyAgICAgICAgY2FyZXQgPSBhZnRlci5jYXJldDsKKyAgICAgICAgYWZ0ZXIuY2FyZXQgPSB0ZW1wOworICAgICAgICBib29sZWFuIGIgPSBjbGlja0FmdGVyOworICAgICAgICBjbGlja0FmdGVyID0gYWZ0ZXIuY2xpY2tBZnRlcjsKKyAgICAgICAgYWZ0ZXIuY2xpY2tBZnRlciA9IGI7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIHB1YmxpYyBTZWxlY3Rpb24gZml4QWZ0ZXJSZXBsYWNlKGludCBzdGFydCwgaW50IGVuZCwgaW50IGxlbikgeworICAgICAgICBpZiAoYW5jaG9yID49IHN0YXJ0KSB7CisgICAgICAgICAgICBpZiAoYW5jaG9yIDwgZW5kKSBhbmNob3IgPSBlbmQ7CisgICAgICAgICAgICBhbmNob3IgPSBzdGFydCArIGxlbiArIGFuY2hvciAtIGVuZDsKKyAgICAgICAgfQorICAgICAgICBpZiAoY2FyZXQgPj0gc3RhcnQpIHsKKyAgICAgICAgICAgIGlmIChjYXJldCA8IGVuZCkgY2FyZXQgPSBlbmQ7CisgICAgICAgICAgICBjYXJldCA9IHN0YXJ0ICsgbGVuICsgY2FyZXQgLSBlbmQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgICAgIC8vIE1hYyAmIFdpbmRvd3MgY29uc2lkZXJhYmx5IGRpZmZlcmVudAorICAgICAgICAvLyBNYWM6IGVuZCsrLiBJZiBzdGFydCE9ZW5kLCBzdGFydD1lbmQKKyAgICAgICAgLy8gIFNISUZUOiBtb3ZlIGVuZCByaWdodAorICAgICAgICAvLyAgQ1RMOiBubyBkaWZmZXJlbnQKKyAgICAgICAgLy8gV2luZG93czoKKyAgICAgICAgLy8gIFVOU0hJRlRFRDogaWYgc3RhcnQhPWVuZCwgc3RhcnQgPSBlbmQsIGVsc2Ugc3RhcnQ9ZW5kPWVuZCsxOworICAgICAgICAvLyAgICAgICBhbmNob3IgPSB0aXAgPSBzdGFydAorICAgICAgICAvLyAgU0hJRlQ6IHRpcCsrCisgICAgICAgIC8vICBDVEw6IGlmIHN0YXJ0IT1lbmQsIHN0YXJ0ID0gZW5kID0gbmV4dGJvdW5kKGVuZC0xKSwKKyAgICAgICAgLy8gICBlbHNlIHN0YXJ0PWVuZD1uZXh0Ym91bmQoZW5kKQorICAgICAgICAvLyAgICAgICBhbmNob3IgPSB0aXAgPSBzdGFydAorICAgICAgICAvLyAgQ1RML1NISUZUOiB0aXAgPSBuZXh0Ym91bmQodGlwKQorCisgICAgcHVibGljIFNlbGVjdGlvbiBuZXh0Qm91bmQoQnJlYWtJdGVyYXRvciBicmVha2VyLAorICAgICAgaW50IGRpcmVjdGlvbiwgYm9vbGVhbiBleHRlbmQpIHsKKyAgICAgICAgaWYgKCFleHRlbmQgJiYgYW5jaG9yICE9IGNhcmV0KSBjYXJldCAtPSBkaXJlY3Rpb247CisgICAgICAgIGNhcmV0ID0gbmV4dChjYXJldCwgYnJlYWtlciwgZGlyZWN0aW9uLCB0cnVlKTsKKyAgICAgICAgaWYgKCFleHRlbmQpIGFuY2hvciA9IGNhcmV0OworICAgICAgICBjbGlja0FmdGVyID0gZmFsc2U7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8vIGV4cGFuZCBzdGFydCBhbmQgZW5kIHRvIHdvcmQgYnJlYWtzLS1pZiB0aGV5IGFyZSBub3QgYWxyZWFkeSBvbiBvbmUKKyAgICBwdWJsaWMgdm9pZCBleHBhbmQoQnJlYWtJdGVyYXRvciBicmVha2VyKSB7CisgICAgICAgIGlmIChhbmNob3IgPD0gY2FyZXQpIHsKKyAgICAgICAgICAgIGFuY2hvciA9IG5leHQoYW5jaG9yLGJyZWFrZXIsLTEsZmFsc2UpOworICAgICAgICAgICAgY2FyZXQgPSBuZXh0KGNhcmV0LGJyZWFrZXIsMSxmYWxzZSk7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBicmVha2VyLmZvbGxvd2luZyhhbmNob3IpOworICAgICAgICAgICAgICAgIGFuY2hvciA9IGJyZWFrZXIucHJldmlvdXMoKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7fQorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBjYXJldCA9IGJyZWFrZXIuZm9sbG93aW5nKGNhcmV0LTEpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHt9CisgICAgICAgICAgICAqLworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYW5jaG9yID0gbmV4dChhbmNob3IsYnJlYWtlciwxLGZhbHNlKTsKKyAgICAgICAgICAgIGNhcmV0ID0gbmV4dChjYXJldCxicmVha2VyLC0xLGZhbHNlKTsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGJyZWFrZXIuZm9sbG93aW5nKGNhcmV0KTsKKyAgICAgICAgICAgICAgICBjYXJldCA9IGJyZWFrZXIucHJldmlvdXMoKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7fQorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBhbmNob3IgPSBicmVha2VyLmZvbGxvd2luZyhhbmNob3ItMSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkge30KKyAgICAgICAgICAgICovCisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBkaWZmZXJlbnQgPSBmYWxzZSAtIG1vdmUgdG8gbmV4dCBib3VuZGFyeSwgdW5sZXNzIG9uIG9uZQorICAgIC8vIHRydWUgLSBtb3ZlIHRvIG5leHQgYm91bmRhcnksIGV2ZW4gaWYgb24gb25lCisgICAgcHVibGljIHN0YXRpYyBpbnQgbmV4dChpbnQgcG9zaXRpb24sIEJyZWFrSXRlcmF0b3IgYnJlYWtlciwKKyAgICAgIGludCBkaXJlY3Rpb24sIGJvb2xlYW4gZGlmZmVyZW50KSB7CisgICAgICAgIGlmICghZGlmZmVyZW50KSBwb3NpdGlvbiAtPSBkaXJlY3Rpb247CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpZiAoZGlyZWN0aW9uID4gMCkgeworICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gYnJlYWtlci5mb2xsb3dpbmcocG9zaXRpb24pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBicmVha2VyLmZvbGxvd2luZyhwb3NpdGlvbi0xKTsKKyAgICAgICAgICAgICAgICBwb3NpdGlvbiA9IGJyZWFrZXIucHJldmlvdXMoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHt9CisgICAgICAgIHJldHVybiBwb3NpdGlvbjsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9pbXBsL3BhY2thZ2UuaHRtbCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9pbXBsL3BhY2thZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43NDk4YzZiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2ltcGwvcGFja2FnZS5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCAzLjIgRmluYWwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworICAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaW1wbC9wYWNrYWdlLmh0bWwsdiAkCisgICRSZXZpc2lvbjogMS4xICQKKyAgJERhdGU6IDIwMDAvMDMvMTUgMTc6NDM6NDAgJAorLS0+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CitTaGFyZWQgdXRpbGl0aWVzIGZvciBkZW1vIGFwcGxpY2F0aW9ucyBhbmQgQXBwbGV0cy4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJiaS9CcmVha0l0ZXJhdG9yUnVsZXNfZW5fVVNfREVNTy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3JiYmkvQnJlYWtJdGVyYXRvclJ1bGVzX2VuX1VTX0RFTU8uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kZWQyNTUyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3JiYmkvQnJlYWtJdGVyYXRvclJ1bGVzX2VuX1VTX0RFTU8uamF2YQpAQCAtMCwwICsxLDIyMyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3JiYmkvQnJlYWtJdGVyYXRvclJ1bGVzX2VuX1VTX0RFTU8uamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xOSAwNDoxMDoyMyAkIAorICogJFJldmlzaW9uOiAxLjggJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kZW1vLnJiYmk7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworaW1wb3J0IGphdmEubmV0LlVSTDsKKworLyoqCisgKiBUaGlzIHJlc291cmNlIGJ1bmRsZSBpcyBpbmNsdWRlZCBmb3IgdGVzdGluZyBhbmQgZGVtb25zdHJhdGlvbiBwdXJwb3NlcyBvbmx5LgorICogSXQgYXBwbGllcyB0aGUgZGljdGlvbmFyeS1iYXNlZCBhbGdvcml0aG0gdG8gRW5nbGlzaCB0ZXh0IHRoYXQgaGFzIGhhZCBhbGwgdGhlCisgKiBzcGFjZXMgcmVtb3ZlZC4gIE9uY2Ugd2UgaGF2ZSBnb29kIHRlc3QgY2FzZXMgZm9yIFRoYWksIHdlIHdpbGwgcmVwbGFjZSB0aGlzCisgKiB3aXRoIGdvb2QgcmVzb3VyY2UgZGF0YSAoYW5kIGEgZ29vZCBkaWN0aW9uYXJ5IGZpbGUpIGZvciBUaGFpCisgKi8KK3B1YmxpYyBjbGFzcyBCcmVha0l0ZXJhdG9yUnVsZXNfZW5fVVNfREVNTyBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVVJMIHVybCA9CisgICAgICAgIEJyZWFrSXRlcmF0b3JSdWxlc19lbl9VU19ERU1PLmNsYXNzLmdldFJlc291cmNlKCIvY29tL2libS9kYXRhL21pc2MvZW5nbGlzaC5kaWN0Iik7CisgICAgCisgICAgcHVibGljIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICAgICAgIHJldHVybiBjb250ZW50czsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0W11bXSBjb250ZW50cyA9IHsKKyAgICAgICAgLy8gbmFtZXMgb2YgY2xhc3NlcyB0byBpbnN0YW50aWF0ZSBmb3IgdGhlIGRpZmZlcmVudCBraW5kcyBvZiBicmVhaworICAgICAgICAvLyBpdGVyYXRvci4gIE5vdGljZSB3ZSdyZSBub3cgdXNpbmcgRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvcgorICAgICAgICAvLyBmb3Igd29yZCBhbmQgbGluZSBicmVha2luZy4KKyAgICAgICAgeyAiQnJlYWtJdGVyYXRvckNsYXNzZXMiLAorICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgIlJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IiLCAgICAgICAgICAgLy8gY2hhcmFjdGVyLWJyZWFrIGl0ZXJhdG9yIGNsYXNzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvciIsICAgICAvLyB3b3JkLWJyZWFrIGl0ZXJhdG9yIGNsYXNzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvciIsICAgICAvLyBsaW5lLWJyZWFrIGl0ZXJhdG9yIGNsYXNzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiUnVsZUJhc2VkQnJlYWtJdGVyYXRvciIgfSAgICAgICAgICAvLyBzZW50ZW5jZS1icmVhayBpdGVyYXRvciBjbGFzcworICAgICAgICB9LAorICAgICAgICAKKyAgICAgICAgLy8gVGhlc2UgYXJlIHRoZSBzYW1lIHdvcmQtYnJlYWtpbmcgcnVsZXMgYXMgYXJlIHNwZWNpZmllZCBpbiB0aGUgZGVmYXVsdAorICAgICAgICAvLyByZXNvdXJjZSwgZXhjZXB0IHRoYXQgdGhlIExhdGluIGxldHRlcnMsIGFwb3N0cm9waGUsIGFuZCBoeXBoZW4gYXJlCisgICAgICAgIC8vIHNwZWNpZmllZCBhcyBkaWN0aW9uYXJ5IGNoYXJhY3RlcnMKKyAgICAgICAgeyAiV29yZEJyZWFrUnVsZXMiLAorICAgICAgICAgICAgLy8gaWdub3JlIG5vbi1zcGFjaW5nIG1hcmtzLCBlbmNsb3NpbmcgbWFya3MsIGFuZCBmb3JtYXQgY2hhcmFjdGVycywKKyAgICAgICAgICAgIC8vIGFsbCBvZiB3aGljaCBzaG91bGQgbm90IGluZmx1ZW5jZSB0aGUgYWxnb3JpdGhtCisgICAgICAgICAgICAiJF9pZ25vcmVfPVtbOk1uOl1bOk1lOl1bOkNmOl1dOyIKKworICAgICAgICAgICAgLy8gbG93ZXIgYW5kIHVwcGVyIGNhc2UgUm9tYW4gbGV0dGVycywgYXBvc3Ryb3BoeSBhbmQgZGFzaCBhcmUKKyAgICAgICAgICAgIC8vIGluIHRoZSBFbmdsaXNoIGRpY3Rpb25hcnkKKyAgICAgICAgICAgICsgIiRfZGljdGlvbmFyeV89W2EtekEtWlxcJ1xcLV07IgorCisgICAgICAgICAgICAvLyBIaW5kaSBwaHJhc2Ugc2VwYXJhdG9yLCBrYW5qaSwga2F0YWthbmEsIGhpcmFnYW5hLCBDSksgZGlhY3JpdGljYWxzLAorICAgICAgICAgICAgLy8gb3RoZXIgbGV0dGVycywgYW5kIGRpZ2l0cworICAgICAgICAgICAgKyAiJGRhbmRhPVtcdTA5NjRcdTA5NjVdOyIKKyAgICAgICAgICAgICsgIiRrYW5qaT1bXHUzMDA1XHU0ZTAwLVx1OWZhNVx1ZjkwMC1cdWZhMmRdOyIKKyAgICAgICAgICAgICsgIiRrYXRhPVtcdTMwOTktXHUzMDljXHUzMGExLVx1MzBmZV07IgorICAgICAgICAgICAgKyAiJGhpcmE9W1x1MzA0MS1cdTMwOWVcdTMwZmNdOyIKKyAgICAgICAgICAgICsgIiRsZXQ9W1tbOkw6XVs6TWM6XV0tWyRrYW5qaSRrYXRhJGhpcmFdXTsiCisgICAgICAgICAgICArICIkZGd0PVs6TjpdOyIKKworICAgICAgICAgICAgLy8gcHVuY3R1YXRpb24gdGhhdCBjYW4gb2NjdXIgaW4gdGhlIG1pZGRsZSBvZiBhIHdvcmQ6IGN1cnJlbnRseQorICAgICAgICAgICAgLy8gZGFzaGVzLCBhcG9zdHJvcGhlcywgYW5kIHF1b3RhdGlvbiBtYXJrcworICAgICAgICAgICAgKyAiJG1pZF93b3JkPVtbOlBkOl1cdTAwYWRcdTIwMjdcXFwiXFxcJ107IgorCisgICAgICAgICAgICAvLyBwdW5jdHVhdGlvbiB0aGF0IGNhbiBvY2N1ciBpbiB0aGUgbWlkZGxlIG9mIGEgbnVtYmVyOiBjdXJyZW50bHkKKyAgICAgICAgICAgIC8vIGFwb3N0cm9waGVzLCBxb3V0YXRpb24gbWFya3MsIHBlcmlvZHMsIGNvbW1hcywgYW5kIHRoZSBBcmFiaWMKKyAgICAgICAgICAgIC8vIGRlY2ltYWwgcG9pbnQKKyAgICAgICAgICAgICsgIiRtaWRfbnVtPVtcXFwiXFxcJ1xcLFx1MDY2YlxcLl07IgorCisgICAgICAgICAgICAvLyBwdW5jdHVhdGlvbiB0aGF0IGNhbiBvY2N1ciBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgbnVtYmVyOiBjdXJyZW50bHkKKyAgICAgICAgICAgIC8vIHRoZSBwZXJpb2QsIHRoZSBudW1iZXIgc2lnbiwgYW5kIGFsbCBjdXJyZW5jeSBzeW1ib2xzIGV4Y2VwdCB0aGUgY2VudHMgc2lnbgorICAgICAgICAgICAgKyAiJHByZV9udW09W1tbOlNjOl0tW1x1MDBhMl1dXFwjXFwuXTsiCisKKyAgICAgICAgICAgIC8vIHB1bmN0dWF0aW9uIHRoYXQgY2FuIG9jY3VyIGF0IHRoZSBlbmQgb2YgYSBudW1iZXI6IGN1cnJlbnRseQorICAgICAgICAgICAgLy8gdGhlIHBlcmNlbnQsIHBlci10aG91c2FuZCwgcGVyLXRlbi10aG91c2FuZCwgYW5kIEFyYWJpYyBwZXJjZW50CisgICAgICAgICAgICAvLyBzaWducywgdGhlIGNlbnRzIHNpZ24sIGFuZCB0aGUgYW1wZXJzYW5kCisgICAgICAgICAgICArICIkcG9zdF9udW09W1xcJVxcJlx1MDBhMlx1MDY2YVx1MjAzMFx1MjAzMV07IgorCisgICAgICAgICAgICAvLyBsaW5lIHNlcGFyYXRvcnM6IGN1cnJlbnRseSBMRiwgRkYsIFBTLCBhbmQgTFMKKyAgICAgICAgICAgICsgIiRscz1bXG5cdTAwMGNcdTIwMjhcdTIwMjldOyIKKworICAgICAgICAgICAgLy8gd2hpdGVzcGFjZTogYWxsIHNwYWNlIHNlcGFyYXRvcnMgYW5kIHRoZSB0YWIgY2hhcmFjdGVyCisgICAgICAgICAgICArICIkd3M9W1s6WnM6XVx0XTsiCisKKyAgICAgICAgICAgIC8vIGEgd29yZCBpcyBhIHNlcXVlbmNlIG9mIGxldHRlcnMgdGhhdCBtYXkgY29udGFpbiBpbnRlcm5hbAorICAgICAgICAgICAgLy8gcHVuY3R1YXRpb24sIGFzIGxvbmcgYXMgaXQgYmVnaW5zIGFuZCBlbmRzIHdpdGggYSBsZXR0ZXIgYW5kCisgICAgICAgICAgICAvLyBuZXZlciBjb250YWlucyB0d28gcHVuY3R1YXRpb24gbWFya3MgaW4gYSByb3cKKyAgICAgICAgICAgICsgIiR3b3JkPSgkbGV0KygkbWlkX3dvcmQkbGV0KykqJGRhbmRhPyk7IgorCisgICAgICAgICAgICAvLyBhIG51bWJlciBpcyBhIHNlcXVlbmNlIG9mIGRpZ2l0cyB0aGF0IG1heSBjb250YWluIGludGVybmFsCisgICAgICAgICAgICAvLyBwdW5jdHVhdGlvbiwgYXMgbG9uZyBhcyBpdCBiZWdpbnMgYW5kIGVuZHMgd2l0aCBhIGRpZ2l0IGFuZAorICAgICAgICAgICAgLy8gbmV2ZXIgY29udGFpbnMgdHdvIHB1bmN0dWF0aW9uIG1hcmtzIGluIGEgcm93LgorICAgICAgICAgICAgKyAiJG51bWJlcj0oJGRndCsoJG1pZF9udW0kZGd0KykqKTsiCisKKyAgICAgICAgICAgIC8vIGJyZWFrIGFmdGVyIGV2ZXJ5IGNoYXJhY3Rlciwgd2l0aCB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbnMKKyAgICAgICAgICAgIC8vICh0aGlzIHdpbGwgY2F1c2UgcHVuY3R1YXRpb24gbWFya3MgdGhhdCBhcmVuJ3QgY29uc2lkZXJlZAorICAgICAgICAgICAgLy8gcGFydCBvZiB3b3JkcyBvciBudW1iZXJzIHRvIGJlIHRyZWF0ZWQgYXMgd29yZHMgdW50byB0aGVtc2VsdmVzKQorICAgICAgICAgICAgKyAiLjsiCisKKyAgICAgICAgICAgIC8vIGtlZXAgdG9nZXRoZXIgYW55IHNlcXVlbmNlIG9mIGNvbnRpZ3VvdXMgd29yZHMgYW5kIG51bWJlcnMKKyAgICAgICAgICAgIC8vIChpbmNsdWRpbmcganVzdCBvbmUgb2YgZWl0aGVyKSwgcGx1cyBhbiBvcHRpb25hbCB0cmFpbGluZworICAgICAgICAgICAgLy8gbnVtYmVyLXN1ZmZpeCBjaGFyYWN0ZXIKKyAgICAgICAgICAgICsgIiR3b3JkPygkbnVtYmVyJHdvcmQpKigkbnVtYmVyJHBvc3RfbnVtPyk/OyIKKworICAgICAgICAgICAgLy8ga2VlcCB0b2dldGhlciBhbmQgc2VxdWVuY2Ugb2YgY29udGlndW91cyB3b3JkcyBhbmQgbnVtYmVycworICAgICAgICAgICAgLy8gdGhhdCBzdGFydHMgd2l0aCBhIG51bWJlci1wcmVmaXggY2hhcmFjdGVyIGFuZCBhIG51bWJlciwKKyAgICAgICAgICAgIC8vIGFuZCBtYXkgZW5kIHdpdGggYSBudW1iZXItc3VmZml4IGNoYXJhY3RlcgorICAgICAgICAgICAgKyAiJHByZV9udW0oJG51bWJlciR3b3JkKSooJG51bWJlciRwb3N0X251bT8pPzsiCisKKyAgICAgICAgICAgIC8vIGtlZXAgdG9nZXRoZXIgcnVucyBvZiB3aGl0ZXNwYWNlIChvcHRpb25hbGx5IHdpdGggYSBzaW5nbGUgdHJhaWxpbmcKKyAgICAgICAgICAgIC8vIGxpbmUgc2VwYXJhdG9yIG9yIENSTEYgc2VxdWVuY2UpCisgICAgICAgICAgICArICIkd3MqXHI/JGxzPzsiCisKKyAgICAgICAgICAgIC8vIGtlZXAgdG9nZXRoZXIgcnVucyBvZiBLYXRha2FuYQorICAgICAgICAgICAgKyAiJGthdGEqOyIKKworICAgICAgICAgICAgLy8ga2VlcCB0b2dldGhlciBydW5zIG9mIEhpcmFnYW5hCisgICAgICAgICAgICArICIkaGlyYSo7IgorCisgICAgICAgICAgICAvLyBrZWVwIHRvZ2V0aGVyIHJ1bnMgb2YgS2FuamkKKyAgICAgICAgICAgICsgIiRrYW5qaSo7In0sCisgICAgICAgIAorICAgICAgICAvLyBUaGVzZSBhcmUgdGhlIHNhbWUgbGluZS1icmVha2luZyBydWxlcyBhcyBhcmUgc3BlY2lmaWVkIGluIHRoZSBkZWZhdWx0CisgICAgICAgIC8vIHJlc291cmNlLCBleGNlcHQgdGhhdCB0aGUgTGF0aW4gbGV0dGVycywgYXBvc3Ryb3BoZSwgYW5kIGh5cGhlbiBhcmUKKyAgICAgICAgLy8gc3BlY2lmaWVkIGFzIGRpY3Rpb25hcnkgY2hhcmFjdGVycworICAgICAgICB7ICJMaW5lQnJlYWtSdWxlcyIsCisgICAgICAgICAgICAvLyBpZ25vcmUgbm9uLXNwYWNpbmcgbWFya3MsIGVuY2xvc2luZyBtYXJrcywgYW5kIGZvcm1hdCBjaGFyYWN0ZXJzCisgICAgICAgICAgICAiJF9pZ25vcmVfPVtbOk1uOl1bOk1lOl1bOkNmOl1dOyIKKworICAgICAgICAgICAgLy8gbG93ZXIgYW5kIHVwcGVyIGNhc2UgUm9tYW4gbGV0dGVycywgYXBvc3Ryb3BoeSBhbmQgZGFzaAorICAgICAgICAgICAgLy8gYXJlIGluIHRoZSBFbmdsaXNoIGRpY3Rpb25hcnkKKyAgICAgICAgICAgICsgIiRfZGljdGlvbmFyeV89W2EtekEtWlxcJ1xcLV07IgorCisgICAgICAgICAgICAvLyBIaW5kaSBwaHJhc2Ugc2VwYXJhdG9ycworICAgICAgICAgICAgKyAiJGRhbmRhPVtcdTA5NjRcdTA5NjVdOyIKKworICAgICAgICAgICAgLy8gY2hhcmFjdGVycyB0aGF0IGFsd2F5cyBjYXVzZSBhIGJyZWFrOiBFVFgsIHRhYiwgTEYsIEZGLCBMUywgYW5kIFBTCisgICAgICAgICAgICArICIkYnJlYWs9W1x1MDAwM1x0XG5cZlx1MjAyOFx1MjAyOV07IgorCisgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzIHRoYXQgYWx3YXlzIHByZXZlbnQgYSBicmVhazogdGhlIG5vbi1icmVha2luZyBzcGFjZQorICAgICAgICAgICAgLy8gYW5kIHNpbWlsYXIgY2hhcmFjdGVycworICAgICAgICAgICAgKyAiJG5ic3A9W1x1MDBhMFx1MjAwN1x1MjAxMVx1ZmVmZl07IgorCisgICAgICAgICAgICAvLyB3aGl0ZXNwYWNlOiBzcGFjZSBzZXBhcmF0b3JzIGFuZCBjb250cm9sIGNoYXJhY3RlcnMsIGV4Y2VwdCBmb3IKKyAgICAgICAgICAgIC8vIENSIGFuZCB0aGUgb3RoZXIgY2hhcmFjdGVycyBtZW50aW9uZWQgYWJvdmUKKyAgICAgICAgICAgICsgIiRzcGFjZT1bW1s6WnM6XVs6Q2M6XV0tWyRuYnNwJGJyZWFrXHJdXTsiCisKKyAgICAgICAgICAgIC8vIGRhc2hlczogZGFzaCBwdW5jdHVhdGlvbiBhbmQgdGhlIGRpc2NyZXRpb25hcnkgaHlwaGVuLCBleGNlcHQgZm9yCisgICAgICAgICAgICAvLyBub24tYnJlYWtpbmcgaHlwaGVucworICAgICAgICAgICAgKyAiJGRhc2g9W1tbOlBkOl1cdTAwYWRdLVskbmJzcF1dOyIKKworICAgICAgICAgICAgLy8gY2hhcmFjdGVycyB0aGF0IHN0aWNrIHRvIGEgd29yZCBpZiB0aGV5IHByZWNlZGUgaXQ6IGN1cnJlbmN5IHN5bWJvbHMKKyAgICAgICAgICAgIC8vIChleGNlcHQgdGhlIGNlbnRzIHNpZ24pIGFuZCBzdGFydGluZyBwdW5jdHVhdGlvbgorICAgICAgICAgICAgKyAiJHByZV93b3JkPVtbWzpTYzpdLVtcdTAwYTJdXVs6UHM6XVxcXCJcXFwnXTsiCisKKyAgICAgICAgICAgIC8vIGNoYXJhY3RlcnMgdGhhdCBzdGljayB0byBhIHdvcmQgaWYgdGhleSBmb2xsb3cgaXQ6IGVuZGluZyBwdW5jdHVhdGlvbiwKKyAgICAgICAgICAgIC8vIG90aGVyIHB1bmN0dWF0aW9uIHRoYXQgdXN1YWxseSBvY2N1cnMgYXQgdGhlIGVuZCBvZiBhIHNlbnRlbmNlLAorICAgICAgICAgICAgLy8gc21hbGwgS2FuYSBjaGFyYWN0ZXJzLCBzb21lIENKSyBkaWFjcml0aWNzLCBldGMuCisgICAgICAgICAgICArICIkcG9zdF93b3JkPVtbOlBlOl1cXCFcXFwiXFxcJ1xcJVxcLlxcLFxcOlxcO1xcP1x1MDBhMlx1MDBiMFx1MDY2YVx1MjAzMC1cdTIwMzQiCisgICAgICAgICAgICAgICAgICAgICsgIlx1MjEwM1x1MjEwNVx1MjEwOVx1MzAwMVx1MzAwMlx1MzAwNVx1MzA0MVx1MzA0M1x1MzA0NVx1MzA0N1x1MzA0OVx1MzA2MyIKKyAgICAgICAgICAgICAgICAgICAgKyAiXHUzMDgzXHUzMDg1XHUzMDg3XHUzMDhlXHUzMDk5LVx1MzA5ZVx1MzBhMVx1MzBhM1x1MzBhNVx1MzBhN1x1MzBhOSIKKyAgICAgICAgICAgICAgICAgICAgKyAiXHUzMGMzXHUzMGUzXHUzMGU1XHUzMGU3XHUzMGVlXHUzMGY1XHUzMGY2XHUzMGZjLVx1MzBmZVx1ZmYwMVx1ZmYwYyIKKyAgICAgICAgICAgICAgICAgICAgKyAiXHVmZjBlXHVmZjFmXTsiCisKKyAgICAgICAgICAgIC8vIEthbmppOiBhY3R1YWxseSBpbmNsdWRlcyBib3RoIEthbmppIGFuZCBLYW5hLCBleGNlcHQgZm9yIHNtYWxsIEthbmEgYW5kCisgICAgICAgICAgICAvLyBDSksgZGlhY3JpdGljcworICAgICAgICAgICAgKyAiJGthbmppPVtbXHU0ZTAwLVx1OWZhNVx1ZjkwMC1cdWZhMmRcdTMwNDEtXHUzMDk0XHUzMGExLVx1MzBmYV0tWyRwb3N0X3dvcmQkX2lnbm9yZV9dXTsiCisKKyAgICAgICAgICAgIC8vIGRpZ2l0cworICAgICAgICAgICAgKyAiJGRpZ2l0PVtbOk5kOl1bOk5vOl1dOyIKKworICAgICAgICAgICAgLy8gcHVuY3R1YXRpb24gdGhhdCBjYW4gb2NjdXIgaW4gdGhlIG1pZGRsZSBvZiBhIG51bWJlcjogcGVyaW9kcyBhbmQgY29tbWFzCisgICAgICAgICAgICArICIkbWlkX251bT1bXFwuXFwsXTsiCisKKyAgICAgICAgICAgIC8vIGV2ZXJ5dGhpbmcgbm90IG1lbnRpb25lZCBhYm92ZSwgcGx1cyB0aGUgcXVvdGUgbWFya3MgKHdoaWNoIGFyZSBib3RoCisgICAgICAgICAgICAvLyA8cHJlLXdvcmQ+LCA8cG9zdC13b3JkPiwgYW5kIDxjaGFyPikKKyAgICAgICAgICAgICsgIiRjaGFyPVteJGJyZWFrJHNwYWNlJGRhc2gka2FuamkkbmJzcCRfaWdub3JlXyRwcmVfd29yZCRwb3N0X3dvcmQkbWlkX251bSRkYW5kYVxyXFxcIlxcXCddOyIKKworICAgICAgICAgICAgLy8gYSAibnVtYmVyIiBpcyBhIHJ1biBvZiBwcmVmaXggY2hhcmFjdGVycyBhbmQgZGFzaGVzLCBmb2xsb3dlZCBieSBvbmUgb3IKKyAgICAgICAgICAgIC8vIG1vcmUgZGlnaXRzIHdpdGggaXNvbGF0ZWQgbnVtYmVyLXB1bmN0dWF0aW9uIGNoYXJhY3RlcnMgaW50ZXJzcGVyc2VkCisgICAgICAgICAgICArICIkbnVtYmVyPShbJHByZV93b3JkJGRhc2hdKiRkaWdpdCsoJG1pZF9udW0kZGlnaXQrKSopOyIKKworICAgICAgICAgICAgLy8gdGhlIGJhc2ljIGNvcmUgb2YgYSB3b3JkIGNhbiBiZSBlaXRoZXIgYSAibnVtYmVyIiBhcyBkZWZpbmVkIGFib3ZlLCBhIHNpbmdsZQorICAgICAgICAgICAgLy8gIkthbmppIiBjaGFyYWN0ZXIsIG9yIGEgcnVuIG9mIGFueSBudW1iZXIgb2Ygbm90LWV4cGxpY2l0bHktbWVudGlvbmVkCisgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzICh0aGlzIGluY2x1ZGVzIExhdGluIGxldHRlcnMpCisgICAgICAgICAgICArICIkd29yZF9jb3JlPShbJHByZV93b3JkJGNoYXJdKnwka2Fuaml8JG51bWJlcik7IgorCisgICAgICAgICAgICAvLyBhIHdvcmQgbWF5IGVuZCB3aXRoIGFuIG9wdGlvbmFsIHN1ZmZpeCB0aGF0IGJlIGVpdGhlciBhIHJ1biBvZiBvbmUgb3IKKyAgICAgICAgICAgIC8vIG1vcmUgZGFzaGVzIG9yIGEgcnVuIG9mIHdvcmQtc3VmZml4IGNoYXJhY3RlcnMsIGZvbGxvd2VkIGJ5IGFuIG9wdGlvbmFsCisgICAgICAgICAgICAvLyBydW4gb2Ygd2hpdGVzcGFjZQorICAgICAgICAgICAgKyAiJHdvcmRfc3VmZml4PSgoJGRhc2grfCRwb3N0X3dvcmQqKSRzcGFjZSopOyIKKworICAgICAgICAgICAgLy8gYSB3b3JkLCB0aHVzLCBpcyBhbiBvcHRpb25hbCBydW4gb2Ygd29yZC1wcmVmaXggY2hhcmFjdGVycywgZm9sbG93ZWQgYnkKKyAgICAgICAgICAgIC8vIGEgd29yZCBjb3JlIGFuZCBhIHdvcmQgc3VmZml4ICh0aGUgc3ludGF4IG9mIDx3b3JkLWNvcmU+IGFuZCA8d29yZC1zdWZmaXg+CisgICAgICAgICAgICAvLyBhY3R1YWxseSBhbGxvd3MgZWl0aGVyIG9mIHRoZW0gdG8gbWF0Y2ggdGhlIGVtcHR5IHN0cmluZywgcHV0dGluZyBhIGJyZWFrCisgICAgICAgICAgICAvLyBiZXR3ZWVuIHRoaW5ncyBsaWtlICIpKCIgb3IgImFhYShhYWEiCisgICAgICAgICAgICArICIkd29yZD0oJHByZV93b3JkKiR3b3JkX2NvcmUkd29yZF9zdWZmaXgpOyIKKworICAgICAgICAgICAgLy8gZmluYWxseSwgdGhlIHJ1bGUgdGhhdCBkb2VzIHRoZSB3b3JrOiBLZWVwIHRvZ2V0aGVyIGFueSBydW4gb2Ygd29yZHMgdGhhdAorICAgICAgICAgICAgLy8gYXJlIGpvaW5lZCBieSBydW5zIG9mIG9uZSBvZiBtb3JlIG5vbi1zcGFjaW5nIG1hcmsuICBBbHNvIGtlZXAgYSB0cmFpbGluZworICAgICAgICAgICAgLy8gbGluZS1icmVhayBjaGFyYWN0ZXIgb3IgQ1JMRiBjb21iaW5hdGlvbiB3aXRoIHRoZSB3b3JkLiAgKGxpbmUgc2VwYXJhdG9ycworICAgICAgICAgICAgLy8gIndpbiIgb3ZlciBuYnNwJ3MpCisgICAgICAgICAgICArICIkd29yZCgkbmJzcCskd29yZCkqXHI/JGJyZWFrPzsiIH0sCisgICAgICAgICAgICAKKyAgICAgICAgLy8gdGhlc2UgdHdvIHJlc291cmNlcyBzcGVjaWZ5IHRoZSBwYXRobmFtZXMgb2YgdGhlIGRpY3Rpb25hcnkgZmlsZXMgdG8KKyAgICAgICAgLy8gdXNlIGZvciB3b3JkIGJyZWFraW5nIGFuZCBsaW5lIGJyZWFraW5nLiAgQm90aCBjdXJyZW50bHkgcmVmZXIgdG8gCisgICAgICAgIC8vIGEgZmlsZSBjYWxsZWQgZW5nbGlzaC5kaWN0IHBsYWNlZCBpbiBjb20uaWJtLmljdS5pbXBsLmRhdGEKKyAgICAgICAgLy8gc29tZXdoZXJlIGluIHRoZSBjbGFzcyBwYXRoLiAgSXQncyBpbXBvcnRhbnQgdG8gbm90ZSB0aGF0CisgICAgICAgIC8vIGVuZ2xpc2guZGljdCB3YXMgY3JlYXRlZCBmb3IgdGVzdGluZyBwdXJwb3NlcyBvbmx5LCBhbmQgZG9lc24ndAorICAgICAgICAvLyBjb21lIGFueXdoZXJlIGNsb3NlIHRvIGJlaW5nIGFuIGV4aGF1c3RpdmUgZGljdGlvbmFyeSBvZiBFbmdsaXNoCisgICAgICAgIC8vIHdvcmRzIChiYXNpY2FsbHksIGl0IGNvbnRhaW5zIGFsbCB0aGUgd29yZHMgaW4gdGhlIERlY2xhcmF0aW9uIG9mCisgICAgICAgIC8vIEluZGVwZW5kZW5jZSwgYW5kIHRoZSBSZXZpc2VkIFN0YW5kYXJkIFZlcnNpb24gb2YgdGhlIGJvb2sgb2YgR2VuZXNpcywKKyAgICAgICAgLy8gcGx1cyBhIGZldyBvdGhlciB3b3JkcyB0aHJvd24gaW4gdG8gc2hvdyBtb3JlIGludGVyZXN0aW5nIGNhc2VzKS4KKyAgICAgICAgLy8geyAiV29yZEJyZWFrRGljdGlvbmFyeSIsICJjb21cXGlibVxcdGV4dFxccmVzb3VyY2VzXFxlbmdsaXNoLmRpY3QiIH0sCisgICAgICAgIC8vIHsgIkxpbmVCcmVha0RpY3Rpb25hcnkiLCAiY29tXFxpYm1cXHRleHRcXHJlc291cmNlc1xcZW5nbGlzaC5kaWN0IiB9CisgICAgICAgIHsgIldvcmRCcmVha0RpY3Rpb25hcnkiLCB1cmwgfSwKKyAgICAgICAgeyAiTGluZUJyZWFrRGljdGlvbmFyeSIsIHVybCB9CisgICAgfTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9yYmJpL0RCQklEZW1vLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJiaS9EQkJJRGVtby5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY1MGJkMmQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJiaS9EQkJJRGVtby5qYXZhCkBAIC0wLDAgKzEsNDY5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJiaS9EQkJJRGVtby5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzA4LzAxIDIwOjI3OjIwICQgCisgKiAkUmV2aXNpb246IDEuMTIgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kZW1vLnJiYmk7CisKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi5kZW1vLio7CitpbXBvcnQgamF2YS5hcHBsZXQuQXBwbGV0OworaW1wb3J0IGphdmEuYXd0Lio7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93RXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuS2V5RXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuSXRlbUxpc3RlbmVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lkl0ZW1FdmVudDsKK2ltcG9ydCBqYXZheC5zd2luZy5KVGV4dEFyZWE7CitpbXBvcnQgamF2YXguc3dpbmcuSlNjcm9sbFBhbmU7CitpbXBvcnQgamF2YXguc3dpbmcuQm9yZGVyRmFjdG9yeTsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYuZGVtby5pbXBsLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yOworCitwdWJsaWMgY2xhc3MgREJCSURlbW8gZXh0ZW5kcyBEZW1vQXBwbGV0Cit7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3ZbXSkgeworICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChuZXcgTG9jYWxlKCJlbiIsICJVUyIsICJERU1PIikpOworCQluZXcgREJCSURlbW8oKS5zaG93RGVtbygpOworICAgIH0KKworICAgIHB1YmxpYyBGcmFtZSBjcmVhdGVEZW1vRnJhbWUoRGVtb0FwcGxldCBhcHBsZXQpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEQkJJRnJhbWUoYXBwbGV0KTsKKyAgICB9Cit9CisKKworCitjbGFzcyBEQkJJRnJhbWUgZXh0ZW5kcyBGcmFtZSBpbXBsZW1lbnRzIEl0ZW1MaXN0ZW5lcgoreworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjcmVkaXRTdHJpbmcgPQorICAgICAgICAidjEuMWE5LCBEZW1vIjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGSUVMRF9DT0xVTU5TID0gNDU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgRm9udCBjaG9pY2VGb250ID0gbnVsbDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gZmFsc2U7CisgICAgcHJpdmF0ZSBEZW1vQXBwbGV0IGFwcGxldDsKKworICAgIGZpbmFsIFN0cmluZyByaWdodCA9ICItLT4iOworICAgIGZpbmFsIFN0cmluZyBsZWZ0ID0gIjwtLSI7CisKKyAgICBwcml2YXRlIEJyZWFrSXRlcmF0b3IgZW51bTsKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzY3RybGRvd25fID0gZmFsc2U7CisKK0pUZXh0QXJlYSB0ZXh0OworLy8gICAgVGV4dEFyZWEgdGV4dDsKKyAgICBDaG9pY2UgYm91bmQ7CisKKyAgICBwdWJsaWMgREJCSUZyYW1lKERlbW9BcHBsZXQgYXBwbGV0KQorICAgIHsKKyAgICAgICAgdGhpcy5hcHBsZXQgPSBhcHBsZXQ7CisgICAgICAgIGluaXQoKTsKKyAgICAgICAgc3RhcnQoKTsKKyAgICB9CisKKworCisgICAgcHVibGljIHZvaWQgcnVuKCkKKyAgICB7CisgICAgICAgIC8qCisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGNoZWNrQ2hhbmdlKCk7CisgICAgICAgICAgICAgICAgVGhyZWFkLnNsZWVwKDI1MCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoSW50ZXJydXB0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoVGhyb3dhYmxlIGUpIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAqLworICAgIH0KKworICAgIGludCBzLCBlOworICAgIGludCB0cywgdGU7CisKKyAgICBwdWJsaWMgdm9pZCBjaGVja0NoYW5nZSgpCisgICAgeworLy8gICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiY2hlY2tDaGFuZ2UuLi4iKTsKKyAgICAgICAgaWYgKCh0ZXh0LmdldFNlbGVjdGlvblN0YXJ0KCkgJiAweDdGRkYpICE9IHRzIHx8CisgICAgICAgICAgICAodGV4dC5nZXRTZWxlY3Rpb25FbmQoKSAmIDB4N0ZGRikgIT0gdGUpIHsKKworICAgICAgICAgICAgLy8gbm90IHVzZWQgaW50IHRlbXBTID0gdGV4dC5nZXRTZWxlY3Rpb25TdGFydCgpICYgMHg3RkZGOworICAgICAgICAgICAgLy8gbm90IHVzZWQgaW50IHRlbXBFID0gdGV4dC5nZXRTZWxlY3Rpb25FbmQoKSAmIDB4N0ZGRjsKKworLy8gICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI+Iik7CisvLyAgICAgICAgICBzZWxlY3QoMCwgMCk7CisvLyAgICAgICAgICBzZWxlY3QodGVtcFMsIHRlbXBFKTsKKyAgICAgICAgICAgIC8vc2VsZWN0KHRlbXBTIC0gKHRzIC0gcyksIHRlbXBFIC0gKHRlIC0gZSkpOworLy8gICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI8Iik7CisKKworLy8gICAgICAgICAgaWYgKHMgIT0gdHMgfHwgZSAhPSB0ZSkgU3lzdGVtLm91dC5wcmludGxuKCIgICAgIHMoIitzKyIpIHRzKCIrdHMrIikgZSgiK2UrIikgdGUoIit0ZSsiKSIpOworLy8gICAgICAgICAgaWYgKHRlbXBTICE9IHRzIHx8IHRlbXBFICE9IHRlKSBTeXN0ZW0ub3V0LnByaW50bG4oIj5zKCIrcysiKSB0ZW1wUygiK3RlbXBTKyIpIGUoIitlKyIpIHRlbXBFKCIrdGVtcEUrIikiKTsKKy8vICAgICAgICAgIHNlbGVjdChzIC0gKHRzIC0gcyksIGUgLSAodGUgLSBlKSk7CisvLyAgICAgICAgICBpZiAodGVtcFMgIT0gdHMgfHwgdGVtcEUgIT0gdGUpIFN5c3RlbS5vdXQucHJpbnRsbigicygiK3MrIikgdGVtcFMoIit0ZW1wUysiKSBlKCIrZSsiKSB0ZW1wRSgiK3RlbXBFKyIpIik7CisKKy8vICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigibGtkc2xrc2oiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNlbGVjdChpbnQgc0luLCBpbnQgZUluKQorICAgIHsKKyAgICAgICAgcyA9IHNJbjsKKyAgICAgICAgZSA9IGVJbjsKKyAgICAgICAgdGV4dC5zZWxlY3QocywgZSk7CisgICAgICAgIHRzID0gdGV4dC5nZXRTZWxlY3Rpb25TdGFydCgpICYgMHg3RkZGOworICAgICAgICB0ZSA9IHRleHQuZ2V0U2VsZWN0aW9uRW5kKCkgJiAweDdGRkY7CisvLyAgICAgICAgaWYgKHMgIT0gdHMgfHwgZSAhPSB0ZSkgeworLy8gICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIj5zKCIrcysiKSB0cygiK3RzKyIpIGUoIitlKyIpIHRlKCIrdGUrIikiKTsKKy8vICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgICAiKyh0cy1zKSsiLCIrKHRlLWUpKTsKKy8vICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIGludCBnZXRTZWxlY3Rpb25TdGFydCgpCisgICAgeworICAgICAgICBjaGVja0NoYW5nZSgpOworLy8gICAgICByZXR1cm4gczsKKyAgICAgICAgcmV0dXJuIHRleHQuZ2V0U2VsZWN0aW9uU3RhcnQoKSAmIDB4N0ZGRjsKKyAgICB9CisKKworICAgIHB1YmxpYyBpbnQgZ2V0U2VsZWN0aW9uRW5kKCkKKyAgICB7CisgICAgICAgIGNoZWNrQ2hhbmdlKCk7CisvLyAgICAgIHJldHVybiBlOworICAgICAgICByZXR1cm4gdGV4dC5nZXRTZWxlY3Rpb25FbmQoKSAmIDB4N0ZGRjsKKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgc3luY2hyb25pemVkIHZvaWQgc2VsZWN0UmFuZ2UoaW50IHMsIGludCBlKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIC8vaWYgKGdldFNlbGVjdGlvblN0YXJ0KCkgIT0gcyB8fCBnZXRTZWxlY3Rpb25FbmQoKSAhPSBlKSB7CisgICAgICAgICAgICAgICAgLy90ZXh0LnNlbGVjdChzLCBlKTsKKyAgICAgICAgICAgICAgICBzZWxlY3QocyxlKTsKKyAgICAgICAgICAgIC8vfQorLy8gICAgICAgICAgaWYgKGdldFNlbGVjdGlvblN0YXJ0KCkgIT0gcyB8fCBnZXRTZWxlY3Rpb25FbmQoKSAhPSBlKSB7CisvLyAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJBR0ghIHNlbGVjdCgiK3MrIiwiK2UrIikgLT4gKCIrCisvLyAgICAgICAgICAgICAgZ2V0U2VsZWN0aW9uU3RhcnQoKSsiLCIrZ2V0U2VsZWN0aW9uRW5kKCkrIikiKTsKKy8vICAgICAgICAgICAgICB0ZXh0LnNlbGVjdChzIC0gKGdldFNlbGVjdGlvblN0YXJ0KCkgLSBzKSwgZSAtIChnZXRTZWxlY3Rpb25FbmQoKSAtIGUpKTsKKy8vICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGV4cCkgeworICAgICAgICAgICAgZXJyb3JUZXh0KGV4cC50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKworCisKKyAgICBwdWJsaWMgdm9pZCBpbml0KCkKKyAgICB7CisgICAgICAgIGJ1aWxkR1VJKCk7CisgICAgfQorCisKKyAgICBwdWJsaWMgdm9pZCBzdGFydCgpCisgICAgeworICAgIH0KKworCisgICAgdm9pZCBhZGRXaXRoRm9udChDb250YWluZXIgY29udGFpbmVyLCBDb21wb25lbnQgZm9vLCBGb250IGZvbnQpIHsKKyAgICAgICAgaWYgKGZvbnQgIT0gbnVsbCkKKyAgICAgICAgICAgIGZvby5zZXRGb250KGZvbnQpOworICAgICAgICBjb250YWluZXIuYWRkKGZvbyk7CisgICAgfQorCisKKworICAgcHVibGljIHZvaWQgYnVpbGRHVUkoKQorICAgIHsKKyAgICAgICAgc2V0QmFja2dyb3VuZChEZW1vVXRpbGl0eS5iZ0NvbG9yKTsKKyAgICAgICAgc2V0TGF5b3V0KG5ldyBCb3JkZXJMYXlvdXQoKSk7CisKKyAgICAgICBQYW5lbCB0b3BQYW5lbCA9IG5ldyBQYW5lbCgpOworCisgICAgICAgICAgICBMYWJlbCB0aXRsZUxhYmVsID0KKyAgICAgICAgICAgICAgICBuZXcgTGFiZWwoIlRleHQgQm91bmRhcnkgRGVtbyIsIExhYmVsLkNFTlRFUik7CisgICAgICAgICAgICB0aXRsZUxhYmVsLnNldEZvbnQoRGVtb1V0aWxpdHkudGl0bGVGb250KTsKKyAgICAgICAgICAgIHRvcFBhbmVsLmFkZCh0aXRsZUxhYmVsKTsKKworICAgICAgICAgICAgLy9MYWJlbCBkZW1vPW5ldyBMYWJlbChjcmVkaXRTdHJpbmcsIExhYmVsLkNFTlRFUik7CisgICAgICAgICAgICAvL2RlbW8uc2V0Rm9udChEZW1vVXRpbGl0eS5jcmVkaXRGb250KTsKKyAgICAgICAgICAgIC8vdG9wUGFuZWwuYWRkKGRlbW8pOworCisgICAgICAgICAgICBQYW5lbCBjaG9pY2VQYW5lbCA9IG5ldyBQYW5lbCgpOworCisgICAgICAgICAgICBMYWJlbCBkZW1vMT1uZXcgTGFiZWwoIkJvdW5kYXJpZXMiLCBMYWJlbC5MRUZUKTsKKyAgICAgICAgICAgIGRlbW8xLnNldEZvbnQoRGVtb1V0aWxpdHkubGFiZWxGb250KTsKKyAgICAgICAgICAgIGNob2ljZVBhbmVsLmFkZChkZW1vMSk7CisKKyAgICAgICAgICAgIGJvdW5kID0gbmV3IENob2ljZSgpOworICAgICAgICAgICAgICAgIGJvdW5kLnNldEJhY2tncm91bmQoRGVtb1V0aWxpdHkuY2hvaWNlQ29sb3IpOworICAgICAgICAgICAgYm91bmQuYWRkSXRlbSgiU2VudGVuY2UiKTsKKyAgICAgICAgICAgIGJvdW5kLmFkZEl0ZW0oIkxpbmUgQnJlYWsiKTsKKyAgICAgICAgICAgIGJvdW5kLmFkZEl0ZW0oIldvcmQiKTsKKyAgICAgICAgICAgIGJvdW5kLmFkZEl0ZW0oIkNoYXIiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYm91bmQuYWRkSXRlbUxpc3RlbmVyKHRoaXMpOworICAgICAgICAgICAgaWYgKGNob2ljZUZvbnQgIT0gbnVsbCkKKyAgICAgICAgICAgICAgICBib3VuZC5zZXRGb250KGNob2ljZUZvbnQpOworCisgICAgICAgICAgICBjaG9pY2VQYW5lbC5hZGQoYm91bmQpOworICAgICAgICAgICAgdG9wUGFuZWwuYWRkKGNob2ljZVBhbmVsKTsKKworICAgICAgICAgICAgRGVtb1V0aWxpdHkuZml4R3JpZCh0b3BQYW5lbCwxKTsKKworCisgICAgICAgIGFkZCgiTm9ydGgiLCB0b3BQYW5lbCk7CisKKworICAgICAgICAgICAgaW50IFJPV1MgPSAxNTsKKyAgICAgICAgICAgIGludCBDT0xVTU5TID0gNTA7CisvLyAgICAgICAgICAgIHRleHQgPSBuZXcgVGV4dEFyZWEoZ2V0SW5pdGlhbFRleHQoKSwgUk9XUywgQ09MVU1OUyk7Cit0ZXh0ID0gbmV3IEpUZXh0QXJlYShnZXRJbml0aWFsVGV4dCgpLCBST1dTLCBDT0xVTU5TKTsKK3RleHQuc2V0TGluZVdyYXAodHJ1ZSk7Cit0ZXh0LnNldFdyYXBTdHlsZVdvcmQodHJ1ZSk7CisgICAgICAgICAgICB0ZXh0LnNldEVkaXRhYmxlKHRydWUpOworICAgICAgICAgICAgdGV4dC5zZWxlY3RBbGwoKTsKKyAgICAgICAgICAgIHRleHQuc2V0Rm9udChEZW1vVXRpbGl0eS5lZGl0Rm9udCk7CisgICAgICAgICAgICB0ZXh0LnNldEJvcmRlcihCb3JkZXJGYWN0b3J5LmNyZWF0ZUVtcHR5Qm9yZGVyKDIsIDIsIDIsIDIpKTsKKworICAgICAgICBhZGQoIkNlbnRlciIsIG5ldyBKU2Nyb2xsUGFuZSh0ZXh0LCBKU2Nyb2xsUGFuZS5WRVJUSUNBTF9TQ1JPTExCQVJfQUxXQVlTLAorICAgICAgICAgICAgICAgICAgICAgICAgSlNjcm9sbFBhbmUuSE9SSVpPTlRBTF9TQ1JPTExCQVJfTkVWRVIpKTsKKworICAgICAgICBQYW5lbCBjb3B5cmlnaHRQYW5lbCA9IG5ldyBQYW5lbCgpOworICAgICAgICBhZGRXaXRoRm9udCAoY29weXJpZ2h0UGFuZWwsCisgICAgICAgICAgICBuZXcgTGFiZWwoRGVtb1V0aWxpdHkuY29weXJpZ2h0MSwgTGFiZWwuTEVGVCksRGVtb1V0aWxpdHkuY3JlZGl0Rm9udCk7CisgICAgICAgIERlbW9VdGlsaXR5LmZpeEdyaWQoY29weXJpZ2h0UGFuZWwsMSk7CisgICAgICAgIGFkZCgiU291dGgiLCBjb3B5cmlnaHRQYW5lbCk7CisKKyAgICAgICAgLy9sYXlvdXQoKTsKKyAgICAgICAgaGFuZGxlRW51bUNoYW5nZWQoKTsKKyAgICAgICAgCisgICAgICAgIGVuYWJsZUV2ZW50cyhXaW5kb3dFdmVudC5XSU5ET1dfQ0xPU0lORyk7CisgICAgICAgIGVuYWJsZUV2ZW50cyhLZXlFdmVudC5LRVlfUFJFU1NFRCk7CisgICAgICAgIGVuYWJsZUV2ZW50cyhLZXlFdmVudC5LRVlfUkVMRUFTRUQpOworCisgICAgICAgIC8vIChuZXcgVGhyZWFkKHRoaXMpKS5zdGFydCgpOworICAgIH0KKworCisKKyAgICBwdWJsaWMgU3RyaW5nIGdldEluaXRpYWxUZXh0KCkKKyAgICB7CisgICAgICAgIHJldHVybgorIldoZW4saW50aGVjb3Vyc2VvZmh1bWFuZXZlbnRzLGl0YmVjb21lc25lY2Vzc2FyeWZvcm9uZXBlb3BsZXRvZGlzc29sdmV0aGVwb2xpdGljYWxib25kc3doaWNoaGF2ZSIKKysgImNvbm5lY3RlZHRoZW13aXRoYW5vdGhlcixhbmR0b2Fzc3VtZWFtb25ndGhlcG93ZXJzb2Z0aGVlYXJ0aCx0aGVzZXBhcmF0ZWFuZGVxdWFsc3RhdGlvbnRvd2hpY2h0aGVsYXdzIgorKyAib2ZuYXR1cmVhbmRvZm5hdHVyZSdzR29kZW50aXRsZXRoZW0sYWRlY2VudHJlc3BlY3R0b3RoZW9waW5pb25zb2ZtYW5raW5kcmVxdWlyZXN0aGF0dGhleXNob3VsZGRlY2xhcmV0aGUiCisrICJjYXVzZXN3aGljaGltcGVsdGhlbXRvdGhlc2VwYXJhdGlvbi5cbiIKKysgIldlaG9sZHRoZXNldHJ1dGhzdG9iZXNlbGYtZXZpZGVudCx0aGF0YWxsbWVuYXJlY3JlYXRlZGVxdWFsLHRoYXR0aGV5YXJlZW5kb3dlZGJ5dGhlaXJDcmVhdG9yd2l0aGNlcnRhaW4iCisrICJ1bmFsaWVuYWJsZXJpZ2h0cyx0aGF0YW1vbmd0aGVzZWFyZWxpZmUsbGliZXJ0eWFuZHRoZXB1cnN1aXRvZmhhcHBpbmVzcy5UaGF0dG9zZWN1cmV0aGVzZXJpZ2h0cyxnb3Zlcm5tZW50c2FyZSIKKysgImluc3RpdHV0ZWRhbW9uZ21lbixkZXJpdmluZ3RoZWlyanVzdHBvd2Vyc2Zyb210aGVjb25zZW50b2Z0aGVnb3Zlcm5lZC5UaGF0d2hlbmV2ZXJhbnlmb3Jtb2Znb3Zlcm5tZW50IgorKyAiYmVjb21lc2Rlc3RydWN0aXZldG90aGVzZWVuZHMsaXRpc3RoZXJpZ2h0b2Z0aGVwZW9wbGV0b2FsdGVyb3J0b2Fib2xpc2hpdCxhbmR0b2luc3RpdHV0ZW5ld2dvdmVybm1lbnQsbGF5aW5nIgorKyAiaXRzZm91bmRhdGlvbm9uc3VjaHByaW5jaXBsZXNhbmRvcmdhbml6aW5naXRzcG93ZXJzaW5zdWNoZm9ybSxhc3RvdGhlbXNoYWxsc2VlbW1vc3RsaWtlbHl0b2VmZmVjdHRoZWlyc2FmZXR5IgorKyAiYW5kaGFwcGluZXNzLlBydWRlbmNlLGluZGVlZCx3aWxsZGljdGF0ZXRoYXRnb3Zlcm5tZW50c2xvbmdlc3RhYmxpc2hlZHNob3VsZG5vdGJlY2hhbmdlZGZvcmxpZ2h0YW5kdHJhbnNpZW50IgorKyAiY2F1c2VzO2FuZGFjY29yZGluZ2x5YWxsZXhwZXJpZW5jZWhhdGhzaG93bnRoYXRtYW5raW5kYXJlbW9yZWRpc3Bvc2VkdG9zdWZmZXIsd2hpbGVldmlsc2FyZXN1ZmZlcmFibGUsdGhhbiIKKysgInRvcmlnaHR0aGVtc2VsdmVzYnlhYm9saXNoaW5ndGhlZm9ybXN0b3doaWNodGhleWFyZWFjY3VzdG9tZWQuQnV0d2hlbmFsb25ndHJhaW5vZmFidXNlc2FuZHVzdXJwYXRpb25zLCIKKysgInB1cnN1aW5naW52YXJpYWJseXRoZXNhbWVvYmplY3RldmluY2VzYWRlc2lnbnRvcmVkdWNldGhlbXVuZGVyYWJzb2x1dGVkZXNwb3Rpc20saXRpc3RoZWlycmlnaHQsaXRpc3RoZWlyZHV0eSwiCisrICJ0b3Rocm93b2Zmc3VjaGdvdmVybm1lbnQsYW5kdG9wcm92aWRlbmV3Z3VhcmRzZm9ydGhlaXJmdXR1cmVzZWN1cml0eS4tLVN1Y2hoYXNiZWVudGhlcGF0aWVudHN1ZmZlcmFuY2VvZiIKKysgInRoZXNlY29sb25pZXM7YW5kc3VjaGlzbm93dGhlbmVjZXNzaXR5d2hpY2hjb25zdHJhaW5zdGhlbXRvYWx0ZXJ0aGVpcmZvcm1lcnN5c3RlbXNvZmdvdmVybm1lbnQuVGhlaGlzdG9yeSIKKysgIm9mdGhlcHJlc2VudEtpbmdvZkdyZWF0QnJpdGFpbmlzYWhpc3RvcnlvZnJlcGVhdGVkaW5qdXJpZXNhbmR1c3VycGF0aW9ucyxhbGxoYXZpbmdpbmRpcmVjdG9iamVjdHRoZSIKKysgImVzdGFibGlzaG1lbnRvZmFuYWJzb2x1dGV0eXJhbm55b3ZlcnRoZXNlc3RhdGVzLlRvcHJvdmV0aGlzLGxldGZhY3RzYmVzdWJtaXR0ZWR0b2FjYW5kaWR3b3JsZC5cbiIKKysgIkhlaGFzcmVmdXNlZGhpc2Fzc2VudHRvbGF3cyx0aGVtb3N0d2hvbGVzb21lYW5kbmVjZXNzYXJ5Zm9ydGhlcHVibGljZ29vZC5cbiIKKysgIkhlaGFzZm9yYmlkZGVuaGlzZ292ZXJub3JzdG9wYXNzbGF3c29maW1tZWRpYXRlYW5kcHJlc3NpbmdpbXBvcnRhbmNlLHVubGVzc3N1c3BlbmRlZGludGhlaXJvcGVyYXRpb250aWxsIgorKyAiaGlzYXNzZW50c2hvdWxkYmVvYnRhaW5lZDthbmR3aGVuc29zdXNwZW5kZWQsaGVoYXN1dHRlcmx5bmVnbGVjdGVkdG9hdHRlbmR0b3RoZW0uXG4iCisrICJIZWhhc3JlZnVzZWR0b3Bhc3NvdGhlcmxhd3Nmb3J0aGVhY2NvbW1vZGF0aW9ub2ZsYXJnZWRpc3RyaWN0c29mcGVvcGxlLHVubGVzc3Rob3NlcGVvcGxld291bGRyZWxpbnF1aXNoIgorKyAidGhlcmlnaHRvZnJlcHJlc2VudGF0aW9uaW50aGVsZWdpc2xhdHVyZSxhcmlnaHRpbmVzdGltYWJsZXRvdGhlbWFuZGZvcm1pZGFibGV0b3R5cmFudHNvbmx5LlxuIgorKyAiSGVoYXNjYWxsZWR0b2dldGhlcmxlZ2lzbGF0aXZlYm9kaWVzYXRwbGFjZXN1bnVzdWFsLHVuY29tZm9ydGFibGUsYW5kZGlzdGFudGZyb210aGVkZXBvc2l0b3J5b2Z0aGVpcnB1YmxpYyIKKysgInJlY29yZHMsZm9ydGhlc29sZXB1cnBvc2VvZmZhdGlndWluZ3RoZW1pbnRvY29tcGxpYW5jZXdpdGhoaXNtZWFzdXJlcy5cbiIKKysgIkhlaGFzZGlzc29sdmVkcmVwcmVzZW50YXRpdmVob3VzZXNyZXBlYXRlZGx5LGZvcm9wcG9zaW5nd2l0aG1hbmx5ZmlybW5lc3NoaXNpbnZhc2lvbnNvbnRoZXJpZ2h0c29mdGhlcGVvcGxlLlxuIgorKyAiSGVoYXNyZWZ1c2VkZm9yYWxvbmd0aW1lLGFmdGVyc3VjaGRpc3NvbHV0aW9ucyx0b2NhdXNlb3RoZXJzdG9iZWVsZWN0ZWQ7d2hlcmVieXRoZWxlZ2lzbGF0aXZlcG93ZXJzLCIKKysgImluY2FwYWJsZW9mYW5uaWhpbGF0aW9uLGhhdmVyZXR1cm5lZHRvdGhlcGVvcGxlYXRsYXJnZWZvcnRoZWlyZXhlcmNpc2U7dGhlc3RhdGVyZW1haW5pbmdpbnRoZW1lYW50aW1lZXhwb3NlZCIKKysgInRvYWxsdGhlZGFuZ2Vyc29maW52YXNpb25mcm9td2l0aG91dCxhbmRjb252dWxzaW9uc3dpdGhpbi5cbiIKKysgIkhlaGFzZW5kZWF2b3JlZHRvcHJldmVudHRoZXBvcHVsYXRpb25vZnRoZXNlc3RhdGVzO2ZvcnRoYXRwdXJwb3Nlb2JzdHJ1Y3Rpbmd0aGVsYXdzZm9ybmF0dXJhbGl6YXRpb25vZiIKKysgImZvcmVpZ25lcnM7cmVmdXNpbmd0b3Bhc3NvdGhlcnN0b2VuY291cmFnZXRoZWlybWlncmF0aW9uaGl0aGVyLGFuZHJhaXNpbmd0aGVjb25kaXRpb25zb2ZuZXdhcHByb3ByaWF0aW9uc29mIgorKyAibGFuZHMuXG4iCisrICJIZWhhc29ic3RydWN0ZWR0aGVhZG1pbmlzdHJhdGlvbm9manVzdGljZSxieXJlZnVzaW5naGlzYXNzZW50dG9sYXdzZm9yZXN0YWJsaXNoaW5nanVkaWNpYXJ5cG93ZXJzLlxuIgorKyAiSGVoYXNtYWRlanVkZ2VzZGVwZW5kZW50b25oaXN3aWxsYWxvbmUsZm9ydGhldGVudXJlb2Z0aGVpcm9mZmljZXMsYW5kdGhlYW1vdW50YW5kcGF5bWVudG9mdGhlaXJzYWxhcmllcy5cbiIKKysgIkhlaGFzZXJlY3RlZGFtdWx0aXR1ZGVvZm5ld29mZmljZXMsYW5kc2VudGhpdGhlcnN3YXJtc29mb2ZmaWNlcnN0b2hhcmFzc291cnBlb3BsZSxhbmRlYXRvdXR0aGVpciIKKysgInN1YnN0YW5jZS5cbiIKKysgIkhlaGFza2VwdGFtb25ndXMsaW50aW1lc29mcGVhY2Usc3RhbmRpbmdhcm1pZXN3aXRob3V0dGhlY29uc2VudG9mb3VybGVnaXNsYXR1cmUuXG4iCisrICJIZWhhc2FmZmVjdGVkdG9yZW5kZXJ0aGVtaWxpdGFyeWluZGVwZW5kZW50b2ZhbmRzdXBlcmlvcnRvY2l2aWxwb3dlci5cbiIKKysgIkhlaGFzY29tYmluZWR3aXRob3RoZXJzdG9zdWJqZWN0dXN0b2FqdXJpc2RpY3Rpb25mb3JlaWdudG9vdXJjb25zdGl0dXRpb24sYW5kdW5hY2tub3dsZWRnZWRieW91cmxhd3M7IgorKyAiZ2l2aW5naGlzYXNzZW50dG90aGVpcmFjdHNvZnByZXRlbmRlZGxlZ2lzbGF0aW9uOlxuIgorKyAiRm9ycXVhcnRlcmluZ2xhcmdlYm9kaWVzb2Zhcm1lZHRyb29wc2Ftb25ndXM6XG4iCisrICJGb3Jwcm90ZWN0aW5ndGhlbSxieW1vY2t0cmlhbCxmcm9tcHVuaXNobWVudGZvcmFueW11cmRlcnN3aGljaHRoZXlzaG91bGRjb21taXRvbnRoZWluaGFiaXRhbnRzb2Z0aGVzZSIKKysgInN0YXRlczpcbiIKKysgIkZvcmN1dHRpbmdvZmZvdXJ0cmFkZXdpdGhhbGxwYXJ0c29mdGhld29ybGQ6XG4iCisrICJGb3JpbXBvc2luZ3RheGVzb251c3dpdGhvdXRvdXJjb25zZW50OlxuIgorKyAiRm9yZGVwcml2aW5ndXNpbm1hbnljYXNlcyxvZnRoZWJlbmVmaXRzb2Z0cmlhbGJ5anVyeTpcbiIKKysgIkZvcnRyYW5zcG9ydGluZ3VzYmV5b25kc2Vhc3RvYmV0cmllZGZvcnByZXRlbmRlZG9mZmVuc2VzOlxuIgorKyAiRm9yYWJvbGlzaGluZ3RoZWZyZWVzeXN0ZW1vZkVuZ2xpc2hsYXdzaW5hbmVpZ2hib3Jpbmdwcm92aW5jZSxlc3RhYmxpc2hpbmd0aGVyZWluYW5hcmJpdHJhcnlnb3Zlcm5tZW50LGFuZCIKKysgImVubGFyZ2luZ2l0c2JvdW5kYXJpZXNzb2FzdG9yZW5kZXJpdGF0b25jZWFuZXhhbXBsZWFuZGZpdGluc3RydW1lbnRmb3JpbnRyb2R1Y2luZ3RoZXNhbWVhYnNvbHV0ZXJ1bGVpbnRoZXNlIgorKyAiY29sb25pZXM6XG4iCisrICJGb3J0YWtpbmdhd2F5b3VyY2hhcnRlcnMsYWJvbGlzaGluZ291cm1vc3R2YWx1YWJsZWxhd3MsYW5kYWx0ZXJpbmdmdW5kYW1lbnRhbGx5dGhlZm9ybXNvZm91cmdvdmVybm1lbnRzOlxuIgorKyAiRm9yc3VzcGVuZGluZ291cm93bmxlZ2lzbGF0dXJlcyxhbmRkZWNsYXJpbmd0aGVtc2VsdmVzaW52ZXN0ZWR3aXRocG93ZXJ0b2xlZ2lzbGF0ZWZvcnVzaW5hbGxjYXNlc3doYXRzb2V2ZXIuXG4iCisrICJIZWhhc2FiZGljYXRlZGdvdmVybm1lbnRoZXJlLGJ5ZGVjbGFyaW5ndXNvdXRvZmhpc3Byb3RlY3Rpb25hbmR3YWdpbmd3YXJhZ2FpbnN0dXMuXG4iCisrICJIZWhhc3BsdW5kZXJlZG91cnNlYXMscmF2YWdlZG91cmNvYXN0cyxidXJuZWRvdXJ0b3ducyxhbmRkZXN0cm95ZWR0aGVsaXZlc29mb3VycGVvcGxlLlxuIgorKyAiSGVpc2F0dGhpc3RpbWV0cmFuc3BvcnRpbmdsYXJnZWFybWllc29mZm9yZWlnbm1lcmNlbmFyaWVzdG9jb21wbGV0ZXRoZXdvcmtzb2ZkZWF0aCxkZXNvbGF0aW9uYW5kdHlyYW5ueSwiCisrICJhbHJlYWR5YmVndW53aXRoY2lyY3Vtc3RhbmNlc29mY3J1ZWx0eWFuZHBlcmZpZHlzY2FyY2VseXBhcmFsbGVsZWRpbnRoZW1vc3RiYXJiYXJvdXNhZ2VzLGFuZHRvdGFsbHl1bndvcnRoeSIKKysgInRoZWhlYWRvZmFjaXZpbGl6ZWRuYXRpb24uXG4iCisrICJIZWhhc2NvbnN0cmFpbmVkb3VyZmVsbG93Y2l0aXplbnN0YWtlbmNhcHRpdmVvbnRoZWhpZ2hzZWFzdG9iZWFyYXJtc2FnYWluc3R0aGVpcmNvdW50cnksdG9iZWNvbWV0aGUiCisrICJleGVjdXRpb25lcnNvZnRoZWlyZnJpZW5kc2FuZGJyZXRocmVuLG9ydG9mYWxsdGhlbXNlbHZlc2J5dGhlaXJoYW5kcy5cbiIKKysgIkhlaGFzZXhjaXRlZGRvbWVzdGljaW5zdXJyZWN0aW9uc2Ftb25nc3R1cyxhbmRoYXNlbmRlYXZvcmVkdG9icmluZ29udGhlaW5oYWJpdGFudHNvZm91cmZyb250aWVycyx0aGUiCisrICJtZXJjaWxlc3NJbmRpYW5zYXZhZ2VzLHdob3Nla25vd25ydWxlb2Z3YXJmYXJlLGlzdW5kaXN0aW5ndWlzaGVkZGVzdHJ1Y3Rpb25vZmFsbGFnZXMsc2V4ZXNhbmRjb25kaXRpb25zLlxuIgorKyAiSW5ldmVyeXN0YWdlb2Z0aGVzZW9wcHJlc3Npb25zd2VoYXZlcGV0aXRpb25lZGZvcnJlZHJlc3NpbnRoZW1vc3RodW1ibGV0ZXJtczpvdXJyZXBlYXRlZHBldGl0aW9uc2hhdmUiCisrICJiZWVuYW5zd2VyZWRvbmx5YnlyZXBlYXRlZGluanVyeS5BcHJpbmNlLHdob3NlY2hhcmFjdGVyaXN0aHVzbWFya2VkYnlldmVyeWFjdHdoaWNobWF5ZGVmaW5lYXR5cmFudCxpcyIKKysgInVuZml0dG9iZXRoZXJ1bGVyb2ZhZnJlZXBlb3BsZS5cbiIKKysgIk5vcmhhdmV3ZWJlZW53YW50aW5naW5hdHRlbnRpb250b291ckJyaXRpc2hicmV0aHJlbi5XZWhhdmV3YXJuZWR0aGVtZnJvbXRpbWV0b3RpbWVvZmF0dGVtcHRzYnl0aGVpciIKKysgImxlZ2lzbGF0dXJldG9leHRlbmRhbnVud2FycmFudGFibGVqdXJpc2RpY3Rpb25vdmVydXMuV2VoYXZlcmVtaW5kZWR0aGVtb2Z0aGVjaXJjdW1zdGFuY2Vzb2ZvdXJlbWlncmF0aW9uIgorKyAiYW5kc2V0dGxlbWVudGhlcmUuV2VoYXZlYXBwZWFsZWR0b3RoZWlybmF0aXZlanVzdGljZWFuZG1hZ25hbmltaXR5LGFuZHdlaGF2ZWNvbmp1cmVkdGhlbWJ5dGhldGllc29mb3VyIgorKyAiY29tbW9ua2luZHJlZHRvZGlzYXZvd3RoZXNldXN1cnBhdGlvbnMsd2hpY2gsd291bGRpbmV2aXRhYmx5aW50ZXJydXB0b3VyY29ubmVjdGlvbnNhbmRjb3JyZXNwb25kZW5jZS5XZSIKKysgIm11c3QsdGhlcmVmb3JlLGFjcXVpZXNjZWludGhlbmVjZXNzaXR5LHdoaWNoZGVub3VuY2Vzb3Vyc2VwYXJhdGlvbixhbmRob2xkdGhlbSxhc3dlaG9sZHRoZXJlc3RvZm1hbmtpbmQsIgorKyAiZW5lbWllc2lud2FyLGlucGVhY2VmcmllbmRzLlxuIgorKyAiV2UsdGhlcmVmb3JlLHRoZXJlcHJlc2VudGF0aXZlc29mdGhlVW5pdGVkU3RhdGVzb2ZBbWVyaWNhLGluR2VuZXJhbENvbmdyZXNzLGFzc2VtYmxlZCxhcHBlYWxpbmd0b3RoZSIKKysgIlN1cHJlbWVKdWRnZW9mdGhld29ybGRmb3J0aGVyZWN0aXR1ZGVvZm91cmludGVudGlvbnMsZG8saW50aGVuYW1lLGFuZGJ5dGhlYXV0aG9yaXR5b2Z0aGVnb29kcGVvcGxlb2YiCisrICJ0aGVzZWNvbG9uaWVzLHNvbGVtbmx5cHVibGlzaGFuZGRlY2xhcmUsdGhhdHRoZXNldW5pdGVkY29sb25pZXNhcmUsYW5kb2ZyaWdodG91Z2h0dG9iZWZyZWVhbmRpbmRlcGVuZGVudCIKKysgInN0YXRlczt0aGF0dGhleWFyZWFic29sdmVkZnJvbWFsbGFsbGVnaWFuY2V0b3RoZUJyaXRpc2hDcm93bixhbmR0aGF0YWxscG9saXRpY2FsY29ubmVjdGlvbmJldHdlZW50aGVtYW5kdGhlIgorKyAic3RhdGVvZkdyZWF0QnJpdGFpbixpc2FuZG91Z2h0dG9iZXRvdGFsbHlkaXNzb2x2ZWQ7YW5kdGhhdGFzZnJlZWFuZGluZGVwZW5kZW50c3RhdGVzLHRoZXloYXZlZnVsbHBvd2VydG8iCisrICJsZXZleXdhcixjb25jbHVkZXBlYWNlLGNvbnRyYWN0YWxsaWFuY2VzLGVzdGFibGlzaGNvbW1lcmNlLGFuZHRvZG9hbGxvdGhlcmFjdHNhbmR0aGluZ3N3aGljaGluZGVwZW5kZW50IgorKyAic3RhdGVzbWF5b2ZyaWdodGRvLkFuZGZvcnRoZXN1cHBvcnRvZnRoaXNkZWNsYXJhdGlvbix3aXRoYWZpcm1yZWxpYW5jZW9udGhlcHJvdGVjdGlvbm9mRGl2aW5lUHJvdmlkZW5jZSx3ZSIKKysgIm11dHVhbGx5cGxlZGdldG9lYWNob3RoZXJvdXJsaXZlcyxvdXJmb3J0dW5lc2FuZG91cnNhY3JlZGhvbm9yLlxuIjsKKyAgICB9CisKKworICAgIHB1YmxpYyB2b2lkIGhhbmRsZUVudW1DaGFuZ2VkKCkKKyAgICB7CisgICAgICAgIFN0cmluZyBzID0gYm91bmQuZ2V0U2VsZWN0ZWRJdGVtKCk7CisgICAgICAgIGlmIChzLmVxdWFscygiQ2hhciIpKSB7CisgICAgICAgICAgICBlcnJvclRleHQoImdldENoYXJhY3Rlckluc3RhbmNlIik7CisgICAgICAgICAgICBlbnVtID0gQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHMuZXF1YWxzKCJXb3JkIikpIHsKKyAgICAgICAgICAgIGVycm9yVGV4dCgiZ2V0V29yZEluc3RhbmNlIik7CisgICAgICAgICAgICBlbnVtID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChzLmVxdWFscygiTGluZSBCcmVhayIpKSB7CisgICAgICAgICAgICBlcnJvclRleHQoImdldExpbmVJbnN0YW5jZSIpOworICAgICAgICAgICAgZW51bSA9IEJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSAvKiBpZiAocy5lcXVhbHMoIlNlbnRlbmNlIikpICovIHsKKyAgICAgICAgICAgIGVycm9yVGV4dCgiZ2V0U2VudGVuY2VJbnN0YW5jZSIpOworICAgICAgICAgICAgZW51bSA9IEJyZWFrSXRlcmF0b3IuZ2V0U2VudGVuY2VJbnN0YW5jZSgpOworICAgICAgICB9CisgICAgICAgIGVudW0uc2V0VGV4dCh0ZXh0LmdldFRleHQoKSk7CisgICAgICAgIHNlbGVjdFJhbmdlKDAsIDApOworICAgICAgICAvL3RleHQuc2VsZWN0KDAsMCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgaGFuZGxlRm9yd2FyZCgpCisgICAgeworICAgICAgICB0cnkgeworLy8gICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJlbnRlcmluZyBoYW5kbGVGb3J3YXJkIik7CisgICAgICAgICAgICBlbnVtLnNldFRleHQodGV4dC5nZXRUZXh0KCkpOworICAgICAgICAgICAgaW50IG9sZFN0YXJ0ID0gZ2V0U2VsZWN0aW9uU3RhcnQoKTsKKyAgICAgICAgICAgIGludCBvbGRFbmQgPSBnZXRTZWxlY3Rpb25FbmQoKTsKKworLy8gICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJoYW5kbGVGb3J3YXJkOiBvbGRTdGFydD0iICsgb2xkU3RhcnQgKyAiLCBvbGRFbmQ9IiArIG9sZEVuZCk7CisKKyAgICAgICAgICAgIGlmIChvbGRFbmQgPCAxKSB7CisgICAgICAgICAgICAgICAgc2VsZWN0UmFuZ2UoMCwgZW51bS5mb2xsb3dpbmcoMCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaW50IHMgPSBlbnVtLmZvbGxvd2luZyhvbGRFbmQtMSk7CisgICAgICAgICAgICAgICAgaW50IGUgPSBlbnVtLm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAoZSA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICBlID0gczsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc2VsZWN0UmFuZ2UocywgZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvL3RleHQuc2VsZWN0KHMsIGUpOworICAgICAgICAgICAgZXJyb3JUZXh0KCI8IiArIG9sZFN0YXJ0ICsgIiwiICsgb2xkRW5kICsgIj4gLT4gPCIgKworICAgICAgICAgICAgICAgIHMgKyAiLCIgKyBlICsgIj4iKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGV4cCkgeworICAgICAgICAgICAgZXJyb3JUZXh0KGV4cC50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGhhbmRsZUJhY2t3YXJkKCkKKyAgICB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBlbnVtLnNldFRleHQodGV4dC5nZXRUZXh0KCkpOworICAgICAgICAgICAgaW50IG9sZFN0YXJ0ID0gZ2V0U2VsZWN0aW9uU3RhcnQoKTsKKyAgICAgICAgICAgIGludCBvbGRFbmQgPSBnZXRTZWxlY3Rpb25FbmQoKTsKKyAgICAgICAgICAgIGlmIChvbGRTdGFydCA8IDEpIHsKKyAgICAgICAgICAgICAgICBzZWxlY3RSYW5nZSgwLCAwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGludCBlID0gZW51bS5mb2xsb3dpbmcob2xkU3RhcnQtMSk7CisgICAgICAgICAgICAgICAgaW50IHMgPSBlbnVtLnByZXZpb3VzKCk7CisgICAgICAgICAgICAgICAgc2VsZWN0UmFuZ2UocywgZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvL3RleHQuc2VsZWN0KHMsIGUpOworICAgICAgICAgICAgZXJyb3JUZXh0KCI8IiArIG9sZFN0YXJ0ICsgIiwiICsgb2xkRW5kICsgIj4gLT4gPCIgKyBzICsgIiwiICsgZSArICI+Iik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBleHApIHsKKyAgICAgICAgICAgIGVycm9yVGV4dChleHAudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBpdGVtU3RhdGVDaGFuZ2VkKEl0ZW1FdmVudCBldnQpCisgICAgeworICAgICAgICBpZiAoZXZ0LmdldFNvdXJjZSgpIGluc3RhbmNlb2YgQ2hvaWNlKSB7CisgICAgICAgICAgICBoYW5kbGVFbnVtQ2hhbmdlZCgpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZXJyb3JUZXh0KFN0cmluZyBzKQorICAgIHsKKyAgICAgICBpZiAoREVCVUcpCisgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihzKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgcHJvY2Vzc1dpbmRvd0V2ZW50KFdpbmRvd0V2ZW50IGV2dCkKKyAgICB7CisgICAgICAgIGlmIChldnQuZ2V0SUQoKSA9PSBXaW5kb3dFdmVudC5XSU5ET1dfQ0xPU0lORyAmJiAKKyAgICAgICAgICAgIGV2dC5nZXRXaW5kb3coKSA9PSB0aGlzKSB7CisgICAgICAgICAgICBoaWRlKCk7CisgICAgICAgICAgICBkaXNwb3NlKCk7CisgICAgICAgICAgICBpZiAoYXBwbGV0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBhcHBsZXQuZGVtb0Nsb3NlZCgpOworICAgICAgICAgICAgfSBlbHNlIFN5c3RlbS5leGl0KDApOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIHByb2Nlc3NLZXlFdmVudChLZXlFdmVudCBldnQpCisgICAgeworICAgICAgICBzd2l0Y2ggKGV2dC5nZXRJRCgpKSB7CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LktFWV9QUkVTU0VEIDoKKyAgICAgICAgICAgICAgICBpZiAoZXZ0LmdldEtleUNvZGUoKSA9PSBLZXlFdmVudC5WS19DT05UUk9MKSB7CisgICAgICAgICAgICAgICAgICAgIGlzY3RybGRvd25fID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LktFWV9SRUxFQVNFRCA6CisgICAgICAgICAgICAgICAgLy8ga2V5IGRldGVjdGlvbiBmb3IgbGVmdCBhbmQgcmlnaHQgYnV0dG9ucyBhcmUgcmVtb3ZlZAorICAgICAgICAgICAgICAgIC8vIHRvIGVtdWxhdGUgdGhlIG9sZCByZWxlYXNlIGJlaGF2aW91cgorICAgICAgICAgICAgICAgIGludCBrZXkgPSBldnQuZ2V0S2V5Q29kZSgpOworICAgICAgICAgICAgICAgIGlmIChrZXkgPT0gS2V5RXZlbnQuVktfTiAmJiBpc2N0cmxkb3duXykgeworICAgICAgICAgICAgICAgICAgICBoYW5kbGVGb3J3YXJkKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgCisgICAgICAgICAgICAgICAgaWYgKGtleSA9PSBLZXlFdmVudC5WS19QICYmIGlzY3RybGRvd25fKSB7CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZUJhY2t3YXJkKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgCisgICAgICAgICAgICAgICAgaWYgKGtleSA9PSBLZXlFdmVudC5WS19DT05UUk9MKSB7CisgICAgICAgICAgICAgICAgICAgIGlzY3RybGRvd25fID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3JiYmkvUkJCSURlbW8uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9yYmJpL1JCQklEZW1vLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGQyYjM4MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9yYmJpL1JCQklEZW1vLmphdmEKQEAgLTAsMCArMSw0NTIgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9yYmJpL1JCQklEZW1vLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDgvMDEgMjA6Mjc6MjEgJCAKKyAqICRSZXZpc2lvbjogMS43ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby5yYmJpOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LmRlbW8uKjsKK2ltcG9ydCBqYXZhLmFwcGxldC5BcHBsZXQ7CitpbXBvcnQgamF2YS5hd3QuKjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5LZXlFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5JdGVtTGlzdGVuZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuSXRlbUV2ZW50OworaW1wb3J0IGphdmF4LnN3aW5nLkpUZXh0QXJlYTsKK2ltcG9ydCBqYXZheC5zd2luZy5KU2Nyb2xsUGFuZTsKK2ltcG9ydCBqYXZheC5zd2luZy5Cb3JkZXJGYWN0b3J5OworaW1wb3J0IGphdmEudXRpbC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi5kZW1vLmltcGwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3I7CisKK3B1YmxpYyBjbGFzcyBSQkJJRGVtbyBleHRlbmRzIERlbW9BcHBsZXQKK3sKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJndltdKSB7CisgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KG5ldyBMb2NhbGUoImVuIiwgIlVTIikpOworCQluZXcgUkJCSURlbW8oKS5zaG93RGVtbygpOworICAgIH0KKworICAgIHB1YmxpYyBGcmFtZSBjcmVhdGVEZW1vRnJhbWUoRGVtb0FwcGxldCBhcHBsZXQpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBSQkJJRnJhbWUoYXBwbGV0KTsKKyAgICB9Cit9CisKKworCitjbGFzcyBSQkJJRnJhbWUgZXh0ZW5kcyBGcmFtZSBpbXBsZW1lbnRzIEl0ZW1MaXN0ZW5lcgoreworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjcmVkaXRTdHJpbmcgPQorICAgICAgICAidjEuMWE5LCBEZW1vIjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGSUVMRF9DT0xVTU5TID0gNDU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgRm9udCBjaG9pY2VGb250ID0gbnVsbDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gZmFsc2U7CisgICAgcHJpdmF0ZSBEZW1vQXBwbGV0IGFwcGxldDsKKworICAgIGZpbmFsIFN0cmluZyByaWdodCA9ICItLT4iOworICAgIGZpbmFsIFN0cmluZyBsZWZ0ID0gIjwtLSI7CisKKyAgICBwcml2YXRlIEJyZWFrSXRlcmF0b3IgZW51bTsKKyAgICBwcml2YXRlIGJvb2xlYW4gICAgICAgaXNjdHJsZG93bl8gPSBmYWxzZTsKKworSlRleHRBcmVhIHRleHQ7CisvLyAgICBUZXh0QXJlYSB0ZXh0OworICAgIENob2ljZSBib3VuZDsKKworICAgIHB1YmxpYyBSQkJJRnJhbWUoRGVtb0FwcGxldCBhcHBsZXQpCisgICAgeworICAgICAgICB0aGlzLmFwcGxldCA9IGFwcGxldDsKKyAgICAgICAgaW5pdCgpOworICAgICAgICBzdGFydCgpOworICAgIH0KKworCisKKyAgICBwdWJsaWMgdm9pZCBydW4oKQorICAgIHsKKyAgICAgICAgLyoKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgY2hlY2tDaGFuZ2UoKTsKKyAgICAgICAgICAgICAgICBUaHJlYWQuc2xlZXAoMjUwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChUaHJvd2FibGUgZSkgeworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgICovCisgICAgfQorCisgICAgaW50IHMsIGU7CisgICAgaW50IHRzLCB0ZTsKKworICAgIHB1YmxpYyB2b2lkIGNoZWNrQ2hhbmdlKCkKKyAgICB7CisvLyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJjaGVja0NoYW5nZS4uLiIpOworICAgICAgICBpZiAoKHRleHQuZ2V0U2VsZWN0aW9uU3RhcnQoKSAmIDB4N0ZGRikgIT0gdHMgfHwKKyAgICAgICAgICAgICh0ZXh0LmdldFNlbGVjdGlvbkVuZCgpICYgMHg3RkZGKSAhPSB0ZSkgeworCisgICAgICAgICAgICAvLyBub3QgdXNlZCBpbnQgdGVtcFMgPSB0ZXh0LmdldFNlbGVjdGlvblN0YXJ0KCkgJiAweDdGRkY7CisgICAgICAgICAgICAvLyBub3QgdXNlZCBpbnQgdGVtcEUgPSB0ZXh0LmdldFNlbGVjdGlvbkVuZCgpICYgMHg3RkZGOworCisvLyAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIj4iKTsKKy8vICAgICAgICAgIHNlbGVjdCgwLCAwKTsKKy8vICAgICAgICAgIHNlbGVjdCh0ZW1wUywgdGVtcEUpOworICAgICAgICAgICAgLy9zZWxlY3QodGVtcFMgLSAodHMgLSBzKSwgdGVtcEUgLSAodGUgLSBlKSk7CisvLyAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIjwiKTsKKworCisvLyAgICAgICAgICBpZiAocyAhPSB0cyB8fCBlICE9IHRlKSBTeXN0ZW0ub3V0LnByaW50bG4oIiAgICAgcygiK3MrIikgdHMoIit0cysiKSBlKCIrZSsiKSB0ZSgiK3RlKyIpIik7CisvLyAgICAgICAgICBpZiAodGVtcFMgIT0gdHMgfHwgdGVtcEUgIT0gdGUpIFN5c3RlbS5vdXQucHJpbnRsbigiPnMoIitzKyIpIHRlbXBTKCIrdGVtcFMrIikgZSgiK2UrIikgdGVtcEUoIit0ZW1wRSsiKSIpOworLy8gICAgICAgICAgc2VsZWN0KHMgLSAodHMgLSBzKSwgZSAtICh0ZSAtIGUpKTsKKy8vICAgICAgICAgIGlmICh0ZW1wUyAhPSB0cyB8fCB0ZW1wRSAhPSB0ZSkgU3lzdGVtLm91dC5wcmludGxuKCJzKCIrcysiKSB0ZW1wUygiK3RlbXBTKyIpIGUoIitlKyIpIHRlbXBFKCIrdGVtcEUrIikiKTsKKworLy8gICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJsa2RzbGtzaiIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2VsZWN0KGludCBzSW4sIGludCBlSW4pCisgICAgeworICAgICAgICBzID0gc0luOworICAgICAgICBlID0gZUluOworICAgICAgICB0ZXh0LnNlbGVjdChzLCBlKTsKKyAgICAgICAgdHMgPSB0ZXh0LmdldFNlbGVjdGlvblN0YXJ0KCkgJiAweDdGRkY7CisgICAgICAgIHRlID0gdGV4dC5nZXRTZWxlY3Rpb25FbmQoKSAmIDB4N0ZGRjsKKy8vICAgICAgICBpZiAocyAhPSB0cyB8fCBlICE9IHRlKSB7CisvLyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiPnMoIitzKyIpIHRzKCIrdHMrIikgZSgiK2UrIikgdGUoIit0ZSsiKSIpOworLy8gICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiAgICIrKHRzLXMpKyIsIisodGUtZSkpOworLy8gICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldFNlbGVjdGlvblN0YXJ0KCkKKyAgICB7CisgICAgICAgIGNoZWNrQ2hhbmdlKCk7CisvLyAgICAgIHJldHVybiBzOworICAgICAgICByZXR1cm4gdGV4dC5nZXRTZWxlY3Rpb25TdGFydCgpICYgMHg3RkZGOworICAgIH0KKworCisgICAgcHVibGljIGludCBnZXRTZWxlY3Rpb25FbmQoKQorICAgIHsKKyAgICAgICAgY2hlY2tDaGFuZ2UoKTsKKy8vICAgICAgcmV0dXJuIGU7CisgICAgICAgIHJldHVybiB0ZXh0LmdldFNlbGVjdGlvbkVuZCgpICYgMHg3RkZGOworICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCBzeW5jaHJvbml6ZWQgdm9pZCBzZWxlY3RSYW5nZShpbnQgcywgaW50IGUpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgLy9pZiAoZ2V0U2VsZWN0aW9uU3RhcnQoKSAhPSBzIHx8IGdldFNlbGVjdGlvbkVuZCgpICE9IGUpIHsKKyAgICAgICAgICAgICAgICAvL3RleHQuc2VsZWN0KHMsIGUpOworICAgICAgICAgICAgICAgIHNlbGVjdChzLGUpOworICAgICAgICAgICAgLy99CisvLyAgICAgICAgICBpZiAoZ2V0U2VsZWN0aW9uU3RhcnQoKSAhPSBzIHx8IGdldFNlbGVjdGlvbkVuZCgpICE9IGUpIHsKKy8vICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkFHSCEgc2VsZWN0KCIrcysiLCIrZSsiKSAtPiAoIisKKy8vICAgICAgICAgICAgICBnZXRTZWxlY3Rpb25TdGFydCgpKyIsIitnZXRTZWxlY3Rpb25FbmQoKSsiKSIpOworLy8gICAgICAgICAgICAgIHRleHQuc2VsZWN0KHMgLSAoZ2V0U2VsZWN0aW9uU3RhcnQoKSAtIHMpLCBlIC0gKGdldFNlbGVjdGlvbkVuZCgpIC0gZSkpOworLy8gICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZXhwKSB7CisgICAgICAgICAgICBlcnJvclRleHQoZXhwLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorCisKKworICAgIHB1YmxpYyB2b2lkIGluaXQoKQorICAgIHsKKyAgICAgICAgYnVpbGRHVUkoKTsKKyAgICB9CisKKworICAgIHB1YmxpYyB2b2lkIHN0YXJ0KCkKKyAgICB7CisgICAgfQorCisKKyAgICB2b2lkIGFkZFdpdGhGb250KENvbnRhaW5lciBjb250YWluZXIsIENvbXBvbmVudCBmb28sIEZvbnQgZm9udCkgeworICAgICAgICBpZiAoZm9udCAhPSBudWxsKQorICAgICAgICAgICAgZm9vLnNldEZvbnQoZm9udCk7CisgICAgICAgIGNvbnRhaW5lci5hZGQoZm9vKTsKKyAgICB9CisKKworCisgICBwdWJsaWMgdm9pZCBidWlsZEdVSSgpCisgICAgeworICAgICAgICBzZXRCYWNrZ3JvdW5kKERlbW9VdGlsaXR5LmJnQ29sb3IpOworICAgICAgICBzZXRMYXlvdXQobmV3IEJvcmRlckxheW91dCgpKTsKKworICAgICAgIFBhbmVsIHRvcFBhbmVsID0gbmV3IFBhbmVsKCk7CisKKyAgICAgICAgICAgIExhYmVsIHRpdGxlTGFiZWwgPQorICAgICAgICAgICAgICAgIG5ldyBMYWJlbCgiRGV2YSBUZXh0IEJvdW5kYXJ5IERlbW8iLCBMYWJlbC5DRU5URVIpOworICAgICAgICAgICAgdGl0bGVMYWJlbC5zZXRGb250KERlbW9VdGlsaXR5LnRpdGxlRm9udCk7CisgICAgICAgICAgICB0b3BQYW5lbC5hZGQodGl0bGVMYWJlbCk7CisKKyAgICAgICAgICAgIC8vTGFiZWwgZGVtbz1uZXcgTGFiZWwoY3JlZGl0U3RyaW5nLCBMYWJlbC5DRU5URVIpOworICAgICAgICAgICAgLy9kZW1vLnNldEZvbnQoRGVtb1V0aWxpdHkuY3JlZGl0Rm9udCk7CisgICAgICAgICAgICAvL3RvcFBhbmVsLmFkZChkZW1vKTsKKworICAgICAgICAgICAgUGFuZWwgY2hvaWNlUGFuZWwgPSBuZXcgUGFuZWwoKTsKKworICAgICAgICAgICAgTGFiZWwgZGVtbzE9bmV3IExhYmVsKCJCb3VuZGFyaWVzIiwgTGFiZWwuTEVGVCk7CisgICAgICAgICAgICBkZW1vMS5zZXRGb250KERlbW9VdGlsaXR5LmxhYmVsRm9udCk7CisgICAgICAgICAgICBjaG9pY2VQYW5lbC5hZGQoZGVtbzEpOworCisgICAgICAgICAgICBib3VuZCA9IG5ldyBDaG9pY2UoKTsKKyAgICAgICAgICAgICAgICBib3VuZC5zZXRCYWNrZ3JvdW5kKERlbW9VdGlsaXR5LmNob2ljZUNvbG9yKTsKKyAgICAgICAgICAgIGJvdW5kLmFkZEl0ZW0oIlNlbnRlbmNlIik7CisgICAgICAgICAgICBib3VuZC5hZGRJdGVtKCJMaW5lIEJyZWFrIik7CisgICAgICAgICAgICBib3VuZC5hZGRJdGVtKCJXb3JkIik7CisgICAgICAgICAgICBib3VuZC5hZGRJdGVtKCJDaGFyIik7CisgICAgICAgICAgICBib3VuZC5hZGRJdGVtTGlzdGVuZXIodGhpcyk7CisgICAgICAgICAgICBpZiAoY2hvaWNlRm9udCAhPSBudWxsKQorICAgICAgICAgICAgICAgIGJvdW5kLnNldEZvbnQoY2hvaWNlRm9udCk7CisKKyAgICAgICAgICAgIGNob2ljZVBhbmVsLmFkZChib3VuZCk7CisgICAgICAgICAgICB0b3BQYW5lbC5hZGQoY2hvaWNlUGFuZWwpOworCisgICAgICAgICAgICBEZW1vVXRpbGl0eS5maXhHcmlkKHRvcFBhbmVsLDEpOworCisKKyAgICAgICAgYWRkKCJOb3J0aCIsIHRvcFBhbmVsKTsKKworCisgICAgICAgICAgICBpbnQgUk9XUyA9IDE1OworICAgICAgICAgICAgaW50IENPTFVNTlMgPSA1MDsKKy8vICAgICAgICAgICAgdGV4dCA9IG5ldyBUZXh0QXJlYShnZXRJbml0aWFsVGV4dCgpLCBST1dTLCBDT0xVTU5TKTsKKyAgICAgICAgICAgIHRleHQgPSBuZXcgSlRleHRBcmVhKGdldEluaXRpYWxUZXh0KCksIFJPV1MsIENPTFVNTlMpOworICAgICAgICAgICAgdGV4dC5zZXRMaW5lV3JhcCh0cnVlKTsKKyAgICAgICAgICAgIHRleHQuc2V0V3JhcFN0eWxlV29yZCh0cnVlKTsKKyAgICAgICAgICAgIHRleHQuc2V0RWRpdGFibGUodHJ1ZSk7CisgICAgICAgICAgICB0ZXh0LnNlbGVjdEFsbCgpOworICAgICAgICAgICAgdGV4dC5zZXRGb250KG5ldyBGb250KCJEZXZhbmFnYXJpIE1UIGZvciBJQk0iLCBGb250LlBMQUlOLCA0OCkpOworICAgICAgICAgICAgdGV4dC5zZXRCb3JkZXIoQm9yZGVyRmFjdG9yeS5jcmVhdGVFbXB0eUJvcmRlcigyLCAyLCAyLCAyKSk7CisKKyAgICAgICAgYWRkKCJDZW50ZXIiLCBuZXcgSlNjcm9sbFBhbmUodGV4dCwgSlNjcm9sbFBhbmUuVkVSVElDQUxfU0NST0xMQkFSX0FMV0FZUywKKyAgICAgICAgICAgICAgICAgICAgICAgIEpTY3JvbGxQYW5lLkhPUklaT05UQUxfU0NST0xMQkFSX05FVkVSKSk7CisKKyAgICAgICAgUGFuZWwgY29weXJpZ2h0UGFuZWwgPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgYWRkV2l0aEZvbnQgKGNvcHlyaWdodFBhbmVsLAorICAgICAgICAgICAgbmV3IExhYmVsKERlbW9VdGlsaXR5LmNvcHlyaWdodDEsIExhYmVsLkxFRlQpLERlbW9VdGlsaXR5LmNyZWRpdEZvbnQpOworICAgICAgICBEZW1vVXRpbGl0eS5maXhHcmlkKGNvcHlyaWdodFBhbmVsLDEpOworICAgICAgICBhZGQoIlNvdXRoIiwgY29weXJpZ2h0UGFuZWwpOworCisgICAgICAgIC8vbGF5b3V0KCk7CisgICAgICAgIGhhbmRsZUVudW1DaGFuZ2VkKCk7CisgICAgICAgIAorICAgICAgICBlbmFibGVFdmVudHMoV2luZG93RXZlbnQuV0lORE9XX0NMT1NJTkcpOworICAgICAgICBlbmFibGVFdmVudHMoS2V5RXZlbnQuS0VZX1BSRVNTRUQpOworICAgICAgICBlbmFibGVFdmVudHMoS2V5RXZlbnQuS0VZX1JFTEVBU0VEKTsgICAgCisKKyAgICAgICAgLy8gKG5ldyBUaHJlYWQodGhpcykpLnN0YXJ0KCk7CisgICAgfQorCisKKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0SW5pdGlhbFRleHQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuCisgICAgICAgICAgICAiXHUwOTM2XHUwOTRkXHUwOTMwXHUwOTQwXHUwOTJlXHUwOTI2XHUwOTRkICIgKworICAgICAgICAgICAgIlx1MDkyZFx1MDkxN1x1MDkzNVx1MDkyNlx1MDk0ZFx1MDkxN1x1MDk0MFx1MDkyNFx1MDkzZSAiICsKKyAgICAgICAgICAgICJcdTA5MDVcdTA5MjdcdTA5NGRcdTA5MmZcdTA5M2VcdTA5MmYgIiArCisgICAgICAgICAgICAiXHUwOTA1XHUwOTMwXHUwOTRkXHUwOTFjXHUwOTQxXHUwOTI4ICIgKworICAgICAgICAgICAgIlx1MDkzNVx1MDkzZlx1MDkzN1x1MDkzZVx1MDkyNiAiICsKKyAgICAgICAgICAgICJcdTA5MmZcdTA5NGJcdTA5MTcgIiArCisgICAgICAgICAgICAiXHUwOTI3XHUwOTQzXHUwOTI0XHUwOTMwXHUwOTNlXHUwOTM3XHUwOTRkXHUwOTFmXHUwOTRkXHUwOTMwICIgKworICAgICAgICAgICAgIlx1MDkwOVx1MDkzNVx1MDkzRVx1MDkxQVx1MDk0MyAiICsKKyAgICAgICAgICAgICJcdTA5MjdcdTA5MzBcdTA5NGRcdTA5MmVcdTA5MTVcdTA5NGRcdTA5MzdcdTA5NDdcdTA5MjRcdTA5NGRcdTA5MzBcdTA5NDcgIiArCisgICAgICAgICAgICAiXHUwOTE1XHUwOTQxXHUwOTMwXHUwOTQxXHUwOTE1XHUwOTRkXHUwOTM3XHUwOTQ3XHUwOTI0XHUwOTRkXHUwOTMwXHUwOTQ3ICIgKworICAgICAgICAgICAgIlx1MDkzOFx1MDkyZVx1MDkzNVx1MDk0N1x1MDkyNFx1MDkzZSAiICsKKyAgICAgICAgICAgICJcdTA5MmZcdTA5NDFcdTA5MmZcdTA5NDFcdTA5MjRcdTA5NGRcdTA5MzhcdTA5MzVcdTA5MDMgIiArCisgICAgICAgICAgICAiXHUwOTJlXHUwOTNlXHUwOTJlXHUwOTE1XHUwOTNlXHUwOTAzICIgKworICAgICAgICAgICAgIlx1MDkyYVx1MDkzZVx1MDkyM1x1MDk0ZFx1MDkyMVx1MDkzNVx1MDkzZVx1MDkzNlx1MDk0ZFx1MDkxYVx1MDk0OFx1MDkzNSAiICsKKyAgICAgICAgICAgICJcdTA5MTVcdTA5M2ZcdTA5MmVcdTA5MTVcdTA5NDFcdTA5MzBcdTA5NGRcdTA5MzVcdTA5MjQgIiArCisgICAgICAgICAgICAiXHUwOTM4XHUwOTAyXHUwOTFjXHUwOTM1IjsKKyAgICB9CisKKworICAgIHB1YmxpYyB2b2lkIGhhbmRsZUVudW1DaGFuZ2VkKCkKKyAgICB7CisgICAgICAgIFN0cmluZyBzID0gYm91bmQuZ2V0U2VsZWN0ZWRJdGVtKCk7CisgICAgICAgIGlmIChzLmVxdWFscygiQ2hhciIpKSB7CisgICAgICAgICAgICBlcnJvclRleHQoImdldENoYXJhY3Rlckluc3RhbmNlIik7CisgICAgICAgICAgICBlbnVtID0gQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHMuZXF1YWxzKCJXb3JkIikpIHsKKyAgICAgICAgICAgIGVycm9yVGV4dCgidFdvcmRCcmVhayIpOworICAgICAgICAgICAgZW51bSA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAocy5lcXVhbHMoIkxpbmUgQnJlYWsiKSkgeworICAgICAgICAgICAgZXJyb3JUZXh0KCJnZXRMaW5lSW5zdGFuY2UiKTsKKyAgICAgICAgICAgIGVudW0gPSBCcmVha0l0ZXJhdG9yLmdldExpbmVJbnN0YW5jZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgLyogaWYgKHMuZXF1YWxzKCJTZW50ZW5jZSIpKSAqLyB7CisgICAgICAgICAgICBlcnJvclRleHQoImdldFNlbnRlbmNlSW5zdGFuY2UiKTsKKyAgICAgICAgICAgIGVudW0gPSBCcmVha0l0ZXJhdG9yLmdldFNlbnRlbmNlSW5zdGFuY2UoKTsKKyAgICAgICAgfQorICAgICAgICBlbnVtLnNldFRleHQodGV4dC5nZXRUZXh0KCkpOworICAgICAgICBzZWxlY3RSYW5nZSgwLCAwKTsKKyAgICAgICAgLy90ZXh0LnNlbGVjdCgwLDApOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGhhbmRsZUZvcndhcmQoKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKy8vICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZW50ZXJpbmcgaGFuZGxlRm9yd2FyZCIpOworICAgICAgICAgICAgZW51bS5zZXRUZXh0KHRleHQuZ2V0VGV4dCgpKTsKKyAgICAgICAgICAgIGludCBvbGRTdGFydCA9IGdldFNlbGVjdGlvblN0YXJ0KCk7CisgICAgICAgICAgICBpbnQgb2xkRW5kID0gZ2V0U2VsZWN0aW9uRW5kKCk7CisKKy8vICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiaGFuZGxlRm9yd2FyZDogb2xkU3RhcnQ9IiArIG9sZFN0YXJ0ICsgIiwgb2xkRW5kPSIgKyBvbGRFbmQpOworCisgICAgICAgICAgICBpZiAob2xkRW5kIDwgMSkgeworICAgICAgICAgICAgICAgIHNlbGVjdFJhbmdlKDAsIGVudW0uZm9sbG93aW5nKDApKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGludCBzID0gZW51bS5mb2xsb3dpbmcob2xkRW5kLTEpOworICAgICAgICAgICAgICAgIGludCBlID0gZW51bS5uZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKGUgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgZSA9IHM7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNlbGVjdFJhbmdlKHMsIGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy90ZXh0LnNlbGVjdChzLCBlKTsKKyAgICAgICAgICAgIGVycm9yVGV4dCgiPCIgKyBvbGRTdGFydCArICIsIiArIG9sZEVuZCArICI+IC0+IDwiICsKKyAgICAgICAgICAgICAgICBzICsgIiwiICsgZSArICI+Iik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBleHApIHsKKyAgICAgICAgICAgIGVycm9yVGV4dChleHAudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBoYW5kbGVCYWNrd2FyZCgpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgZW51bS5zZXRUZXh0KHRleHQuZ2V0VGV4dCgpKTsKKyAgICAgICAgICAgIGludCBvbGRTdGFydCA9IGdldFNlbGVjdGlvblN0YXJ0KCk7CisgICAgICAgICAgICBpbnQgb2xkRW5kID0gZ2V0U2VsZWN0aW9uRW5kKCk7CisgICAgICAgICAgICBpZiAob2xkU3RhcnQgPCAxKSB7CisgICAgICAgICAgICAgICAgc2VsZWN0UmFuZ2UoMCwgMCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbnQgZSA9IGVudW0uZm9sbG93aW5nKG9sZFN0YXJ0LTEpOworICAgICAgICAgICAgICAgIGludCBzID0gZW51bS5wcmV2aW91cygpOworICAgICAgICAgICAgICAgIHNlbGVjdFJhbmdlKHMsIGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy90ZXh0LnNlbGVjdChzLCBlKTsKKyAgICAgICAgICAgIGVycm9yVGV4dCgiPCIgKyBvbGRTdGFydCArICIsIiArIG9sZEVuZCArICI+IC0+IDwiICsgcyArICIsIiArIGUgKyAiPiIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZXhwKSB7CisgICAgICAgICAgICBlcnJvclRleHQoZXhwLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICBwdWJsaWMgYm9vbGVhbiBhY3Rpb24oRXZlbnQgZXZ0LCBPYmplY3Qgb2JqKQorICAgIHsKKworICAgICAgICBpZihldnQudGFyZ2V0IGluc3RhbmNlb2YgQnV0dG9uICYmIGxlZnQuZXF1YWxzKG9iaikpCisgICAgICAgIHsKKyAgICAgICAgICAgIGhhbmRsZUJhY2t3YXJkKCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmKGV2dC50YXJnZXQgaW5zdGFuY2VvZiBCdXR0b24gJiYgcmlnaHQuZXF1YWxzKG9iaikpCisgICAgICAgIHsKKyAgICAgICAgICAgIGhhbmRsZUZvcndhcmQoKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYoZXZ0LnRhcmdldCBpbnN0YW5jZW9mIENob2ljZSkKKyAgICAgICAgeworICAgICAgICAgICAgaGFuZGxlRW51bUNoYW5nZWQoKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBoYW5kbGVFdmVudChFdmVudCBldnQpCisgICAgeworICAgICAgICBpZiAoZXZ0LmlkID09IEV2ZW50LktFWV9QUkVTUyB8fCBldnQuaWQgPT0gRXZlbnQuS0VZX0FDVElPTikgeworICAgICAgICAgICAgaWYgKGV2dC5rZXkgPT0gRXZlbnQuUklHSFQgfHwgKGV2dC5rZXkgPT0gMHgwRSAmJiBldnQuY29udHJvbERvd24oKSkpIHsKKyAgICAgICAgICAgICAgICBoYW5kbGVGb3J3YXJkKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChldnQua2V5ID09IEV2ZW50LkxFRlQgfHwgKGV2dC5rZXkgPT0gMHgxMCAmJiBldnQuY29udHJvbERvd24oKSkpIHsKKyAgICAgICAgICAgICAgICBoYW5kbGVCYWNrd2FyZCgpOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgaWYgKGV2dC5pZCA9PSBFdmVudC5XSU5ET1dfREVTVFJPWSAmJiBldnQudGFyZ2V0ID09IHRoaXMpIHsKKyAgICAgICAgICAgIHRoaXMuaGlkZSgpOworICAgICAgICAgICAgdGhpcy5kaXNwb3NlKCk7CisgICAgICAgICAgICAgICAgaWYgKGFwcGxldCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICBhcHBsZXQuZGVtb0Nsb3NlZCgpOworICAgICAgICAgICAgICAgfSBlbHNlIFN5c3RlbS5leGl0KDApOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN1cGVyLmhhbmRsZUV2ZW50KGV2dCk7CisgICAgfSovCisKKyAgICBwdWJsaWMgdm9pZCBpdGVtU3RhdGVDaGFuZ2VkKEl0ZW1FdmVudCBldnQpCisgICAgeworICAgICAgICBpZiAoZXZ0LmdldFNvdXJjZSgpIGluc3RhbmNlb2YgQ2hvaWNlKSB7CisgICAgICAgICAgICBoYW5kbGVFbnVtQ2hhbmdlZCgpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZXJyb3JUZXh0KFN0cmluZyBzKQorICAgIHsKKyAgICAgICBpZiAoREVCVUcpCisgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihzKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgcHJvY2Vzc1dpbmRvd0V2ZW50KFdpbmRvd0V2ZW50IGV2dCkKKyAgICB7CisgICAgICAgIGlmIChldnQuZ2V0SUQoKSA9PSBXaW5kb3dFdmVudC5XSU5ET1dfQ0xPU0lORyAmJiAKKyAgICAgICAgICAgIGV2dC5nZXRXaW5kb3coKSA9PSB0aGlzKSB7CisgICAgICAgICAgICBoaWRlKCk7CisgICAgICAgICAgICBkaXNwb3NlKCk7CisgICAgICAgICAgICBpZiAoYXBwbGV0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBhcHBsZXQuZGVtb0Nsb3NlZCgpOworICAgICAgICAgICAgfSBlbHNlIFN5c3RlbS5leGl0KDApOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIHByb2Nlc3NLZXlFdmVudChLZXlFdmVudCBldnQpCisgICAgeworICAgICAgICBzd2l0Y2ggKGV2dC5nZXRJRCgpKSB7CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LktFWV9QUkVTU0VEIDoKKyAgICAgICAgICAgICAgICBpZiAoZXZ0LmdldEtleUNvZGUoKSA9PSBLZXlFdmVudC5WS19DT05UUk9MKSB7CisgICAgICAgICAgICAgICAgICAgIGlzY3RybGRvd25fID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LktFWV9SRUxFQVNFRCA6CisgICAgICAgICAgICAgICAgLy8ga2V5IGRldGVjdGlvbiBmb3IgbGVmdCBhbmQgcmlnaHQgYnV0dG9ucyBhcmUgcmVtb3ZlZAorICAgICAgICAgICAgICAgIC8vIHRvIGVtdWxhdGUgdGhlIG9sZCByZWxlYXNlIGJlaGF2aW91cgorICAgICAgICAgICAgICAgIGludCBrZXkgPSBldnQuZ2V0S2V5Q29kZSgpOworICAgICAgICAgICAgICAgIGlmIChrZXkgPT0gS2V5RXZlbnQuVktfTiAmJiBpc2N0cmxkb3duXykgeworICAgICAgICAgICAgICAgICAgICBoYW5kbGVGb3J3YXJkKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgCisgICAgICAgICAgICAgICAgaWYgKGtleSA9PSBLZXlFdmVudC5WS19QICYmIGlzY3RybGRvd25fKSB7CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZUJhY2t3YXJkKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgCisgICAgICAgICAgICAgICAgaWYgKGtleSA9PSBLZXlFdmVudC5WS19DT05UUk9MKSB7CisgICAgICAgICAgICAgICAgICAgIGlzY3RybGRvd25fID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3JiYmkvVGV4dEJvdW5kRGVtby5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3JiYmkvVGV4dEJvdW5kRGVtby5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjZhYWI5M2MKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJiaS9UZXh0Qm91bmREZW1vLmphdmEKQEAgLTAsMCArMSw0MzMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9yYmJpL1RleHRCb3VuZERlbW8uamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wOC8wMSAyMDoyNzoyMSAkIAorICogJFJldmlzaW9uOiAxLjkgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kZW1vLnJiYmk7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYuZGVtby4qOworaW1wb3J0IGphdmEuYXBwbGV0LkFwcGxldDsKK2ltcG9ydCBqYXZhLmF3dC4qOworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lkl0ZW1MaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5JdGVtRXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuS2V5RXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93RXZlbnQ7CitpbXBvcnQgamF2YXguc3dpbmcuSlRleHRBcmVhOworaW1wb3J0IGphdmF4LnN3aW5nLkpTY3JvbGxQYW5lOworaW1wb3J0IGphdmF4LnN3aW5nLkJvcmRlckZhY3Rvcnk7CitpbXBvcnQgamF2YS51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LmRlbW8uaW1wbC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvcjsKKworcHVibGljIGNsYXNzIFRleHRCb3VuZERlbW8gZXh0ZW5kcyBEZW1vQXBwbGV0Cit7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3ZbXSkgeworICAgICAgICBuZXcgVGV4dEJvdW5kRGVtbygpLnNob3dEZW1vKCk7CisgICAgfQorCisgICAgcHVibGljIEZyYW1lIGNyZWF0ZURlbW9GcmFtZShEZW1vQXBwbGV0IGFwcGxldCkgeworICAgICAgICByZXR1cm4gbmV3IFRleHRCb3VuZEZyYW1lKGFwcGxldCk7CisgICAgfQorfQorCisKKworY2xhc3MgVGV4dEJvdW5kRnJhbWUgZXh0ZW5kcyBGcmFtZSBpbXBsZW1lbnRzIEl0ZW1MaXN0ZW5lcgoreworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjcmVkaXRTdHJpbmcgPQorICAgICAgICAidjEuMWE5LCBEZW1vIjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGSUVMRF9DT0xVTU5TID0gNDU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgRm9udCBjaG9pY2VGb250ID0gbnVsbDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gZmFsc2U7CisgICAgcHJpdmF0ZSBEZW1vQXBwbGV0IGFwcGxldDsKKworICAgIGZpbmFsIFN0cmluZyByaWdodCA9ICItLT4iOworICAgIGZpbmFsIFN0cmluZyBsZWZ0ID0gIjwtLSI7CisKKyAgICBwcml2YXRlIEJyZWFrSXRlcmF0b3IgZW51bTsKKyAgICBwcml2YXRlIGJvb2xlYW4gaXNjdHJsZG93bl8gPSBmYWxzZTsKKworSlRleHRBcmVhIHRleHQ7CisvLyAgICBUZXh0QXJlYSB0ZXh0OworICAgIENob2ljZSBib3VuZDsKKworICAgIHB1YmxpYyBUZXh0Qm91bmRGcmFtZShEZW1vQXBwbGV0IGFwcGxldCkKKyAgICB7CisgICAgICAgIHRoaXMuYXBwbGV0ID0gYXBwbGV0OworICAgICAgICBpbml0KCk7CisgICAgICAgIHN0YXJ0KCk7CisgICAgfQorCisKKworICAgIHB1YmxpYyB2b2lkIHJ1bigpCisgICAgeworICAgICAgICAvKgorICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBjaGVja0NoYW5nZSgpOworICAgICAgICAgICAgICAgIFRocmVhZC5zbGVlcCgyNTApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKFRocm93YWJsZSBlKSB7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgKi8KKyAgICB9CisKKyAgICBpbnQgcywgZTsKKyAgICBpbnQgdHMsIHRlOworCisgICAgcHVibGljIHZvaWQgY2hlY2tDaGFuZ2UoKQorICAgIHsKKy8vICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImNoZWNrQ2hhbmdlLi4uIik7CisgICAgICAgIGlmICgodGV4dC5nZXRTZWxlY3Rpb25TdGFydCgpICYgMHg3RkZGKSAhPSB0cyB8fAorICAgICAgICAgICAgKHRleHQuZ2V0U2VsZWN0aW9uRW5kKCkgJiAweDdGRkYpICE9IHRlKSB7CisKKyAgICAgICAgICAgIC8vIG5vdCB1c2VkIGludCB0ZW1wUyA9IHRleHQuZ2V0U2VsZWN0aW9uU3RhcnQoKSAmIDB4N0ZGRjsKKyAgICAgICAgICAgIC8vIG5vdCB1c2VkIGludCB0ZW1wRSA9IHRleHQuZ2V0U2VsZWN0aW9uRW5kKCkgJiAweDdGRkY7CisKKy8vICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiPiIpOworLy8gICAgICAgICAgc2VsZWN0KDAsIDApOworLy8gICAgICAgICAgc2VsZWN0KHRlbXBTLCB0ZW1wRSk7CisgICAgICAgICAgICAvL3NlbGVjdCh0ZW1wUyAtICh0cyAtIHMpLCB0ZW1wRSAtICh0ZSAtIGUpKTsKKy8vICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiPCIpOworCisKKy8vICAgICAgICAgIGlmIChzICE9IHRzIHx8IGUgIT0gdGUpIFN5c3RlbS5vdXQucHJpbnRsbigiICAgICBzKCIrcysiKSB0cygiK3RzKyIpIGUoIitlKyIpIHRlKCIrdGUrIikiKTsKKy8vICAgICAgICAgIGlmICh0ZW1wUyAhPSB0cyB8fCB0ZW1wRSAhPSB0ZSkgU3lzdGVtLm91dC5wcmludGxuKCI+cygiK3MrIikgdGVtcFMoIit0ZW1wUysiKSBlKCIrZSsiKSB0ZW1wRSgiK3RlbXBFKyIpIik7CisvLyAgICAgICAgICBzZWxlY3QocyAtICh0cyAtIHMpLCBlIC0gKHRlIC0gZSkpOworLy8gICAgICAgICAgaWYgKHRlbXBTICE9IHRzIHx8IHRlbXBFICE9IHRlKSBTeXN0ZW0ub3V0LnByaW50bG4oInMoIitzKyIpIHRlbXBTKCIrdGVtcFMrIikgZSgiK2UrIikgdGVtcEUoIit0ZW1wRSsiKSIpOworCisvLyAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImxrZHNsa3NqIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZWxlY3QoaW50IHNJbiwgaW50IGVJbikKKyAgICB7CisgICAgICAgIHMgPSBzSW47CisgICAgICAgIGUgPSBlSW47CisgICAgICAgIHRleHQuc2VsZWN0KHMsIGUpOworICAgICAgICB0cyA9IHRleHQuZ2V0U2VsZWN0aW9uU3RhcnQoKSAmIDB4N0ZGRjsKKyAgICAgICAgdGUgPSB0ZXh0LmdldFNlbGVjdGlvbkVuZCgpICYgMHg3RkZGOworLy8gICAgICAgIGlmIChzICE9IHRzIHx8IGUgIT0gdGUpIHsKKy8vICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI+cygiK3MrIikgdHMoIit0cysiKSBlKCIrZSsiKSB0ZSgiK3RlKyIpIik7CisvLyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiICAgIisodHMtcykrIiwiKyh0ZS1lKSk7CisvLyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0U2VsZWN0aW9uU3RhcnQoKQorICAgIHsKKyAgICAgICAgY2hlY2tDaGFuZ2UoKTsKKy8vICAgICAgcmV0dXJuIHM7CisgICAgICAgIHJldHVybiB0ZXh0LmdldFNlbGVjdGlvblN0YXJ0KCkgJiAweDdGRkY7CisgICAgfQorCisKKyAgICBwdWJsaWMgaW50IGdldFNlbGVjdGlvbkVuZCgpCisgICAgeworICAgICAgICBjaGVja0NoYW5nZSgpOworLy8gICAgICByZXR1cm4gZTsKKyAgICAgICAgcmV0dXJuIHRleHQuZ2V0U2VsZWN0aW9uRW5kKCkgJiAweDdGRkY7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIHN5bmNocm9uaXplZCB2b2lkIHNlbGVjdFJhbmdlKGludCBzLCBpbnQgZSkKKyAgICB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAvL2lmIChnZXRTZWxlY3Rpb25TdGFydCgpICE9IHMgfHwgZ2V0U2VsZWN0aW9uRW5kKCkgIT0gZSkgeworICAgICAgICAgICAgICAgIC8vdGV4dC5zZWxlY3QocywgZSk7CisgICAgICAgICAgICAgICAgc2VsZWN0KHMsZSk7CisgICAgICAgICAgICAvL30KKy8vICAgICAgICAgIGlmIChnZXRTZWxlY3Rpb25TdGFydCgpICE9IHMgfHwgZ2V0U2VsZWN0aW9uRW5kKCkgIT0gZSkgeworLy8gICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQUdIISBzZWxlY3QoIitzKyIsIitlKyIpIC0+ICgiKworLy8gICAgICAgICAgICAgIGdldFNlbGVjdGlvblN0YXJ0KCkrIiwiK2dldFNlbGVjdGlvbkVuZCgpKyIpIik7CisvLyAgICAgICAgICAgICAgdGV4dC5zZWxlY3QocyAtIChnZXRTZWxlY3Rpb25TdGFydCgpIC0gcyksIGUgLSAoZ2V0U2VsZWN0aW9uRW5kKCkgLSBlKSk7CisvLyAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBleHApIHsKKyAgICAgICAgICAgIGVycm9yVGV4dChleHAudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisKKworCisgICAgcHVibGljIHZvaWQgaW5pdCgpCisgICAgeworICAgICAgICBidWlsZEdVSSgpOworICAgIH0KKworCisgICAgcHVibGljIHZvaWQgc3RhcnQoKQorICAgIHsKKyAgICB9CisKKworICAgIHZvaWQgYWRkV2l0aEZvbnQoQ29udGFpbmVyIGNvbnRhaW5lciwgQ29tcG9uZW50IGZvbywgRm9udCBmb250KSB7CisgICAgICAgIGlmIChmb250ICE9IG51bGwpCisgICAgICAgICAgICBmb28uc2V0Rm9udChmb250KTsKKyAgICAgICAgY29udGFpbmVyLmFkZChmb28pOworICAgIH0KKworCisKKyAgIHB1YmxpYyB2b2lkIGJ1aWxkR1VJKCkKKyAgICB7CisgICAgICAgIHNldEJhY2tncm91bmQoRGVtb1V0aWxpdHkuYmdDb2xvcik7CisgICAgICAgIHNldExheW91dChuZXcgQm9yZGVyTGF5b3V0KCkpOworCisgICAgICAgUGFuZWwgdG9wUGFuZWwgPSBuZXcgUGFuZWwoKTsKKworICAgICAgICAgICAgTGFiZWwgdGl0bGVMYWJlbCA9CisgICAgICAgICAgICAgICAgbmV3IExhYmVsKCJUZXh0IEJvdW5kYXJ5IERlbW8iLCBMYWJlbC5DRU5URVIpOworICAgICAgICAgICAgdGl0bGVMYWJlbC5zZXRGb250KERlbW9VdGlsaXR5LnRpdGxlRm9udCk7CisgICAgICAgICAgICB0b3BQYW5lbC5hZGQodGl0bGVMYWJlbCk7CisKKyAgICAgICAgICAgIC8vTGFiZWwgZGVtbz1uZXcgTGFiZWwoY3JlZGl0U3RyaW5nLCBMYWJlbC5DRU5URVIpOworICAgICAgICAgICAgLy9kZW1vLnNldEZvbnQoRGVtb1V0aWxpdHkuY3JlZGl0Rm9udCk7CisgICAgICAgICAgICAvL3RvcFBhbmVsLmFkZChkZW1vKTsKKworICAgICAgICAgICAgUGFuZWwgY2hvaWNlUGFuZWwgPSBuZXcgUGFuZWwoKTsKKworICAgICAgICAgICAgTGFiZWwgZGVtbzE9bmV3IExhYmVsKCJCb3VuZGFyaWVzIiwgTGFiZWwuTEVGVCk7CisgICAgICAgICAgICBkZW1vMS5zZXRGb250KERlbW9VdGlsaXR5LmxhYmVsRm9udCk7CisgICAgICAgICAgICBjaG9pY2VQYW5lbC5hZGQoZGVtbzEpOworCisgICAgICAgICAgICBib3VuZCA9IG5ldyBDaG9pY2UoKTsKKyAgICAgICAgICAgICAgICBib3VuZC5zZXRCYWNrZ3JvdW5kKERlbW9VdGlsaXR5LmNob2ljZUNvbG9yKTsKKyAgICAgICAgICAgIGJvdW5kLmFkZEl0ZW0oIlNlbnRlbmNlIik7CisgICAgICAgICAgICBib3VuZC5hZGRJdGVtKCJMaW5lIEJyZWFrIik7CisgICAgICAgICAgICBib3VuZC5hZGRJdGVtKCJXb3JkIik7CisgICAgICAgICAgICBib3VuZC5hZGRJdGVtKCJDaGFyIik7CisgICAgICAgICAgICBib3VuZC5hZGRJdGVtTGlzdGVuZXIodGhpcyk7CisgICAgICAgICAgICBpZiAoY2hvaWNlRm9udCAhPSBudWxsKQorICAgICAgICAgICAgICAgIGJvdW5kLnNldEZvbnQoY2hvaWNlRm9udCk7CisKKyAgICAgICAgICAgIGNob2ljZVBhbmVsLmFkZChib3VuZCk7CisgICAgICAgICAgICB0b3BQYW5lbC5hZGQoY2hvaWNlUGFuZWwpOworCisgICAgICAgICAgICBEZW1vVXRpbGl0eS5maXhHcmlkKHRvcFBhbmVsLDEpOworCisKKyAgICAgICAgYWRkKCJOb3J0aCIsIHRvcFBhbmVsKTsKKworCisgICAgICAgICAgICBpbnQgUk9XUyA9IDE1OworICAgICAgICAgICAgaW50IENPTFVNTlMgPSA1MDsKKy8vICAgICAgICAgICAgdGV4dCA9IG5ldyBUZXh0QXJlYShnZXRJbml0aWFsVGV4dCgpLCBST1dTLCBDT0xVTU5TKTsKK3RleHQgPSBuZXcgSlRleHRBcmVhKGdldEluaXRpYWxUZXh0KCksIFJPV1MsIENPTFVNTlMpOwordGV4dC5zZXRMaW5lV3JhcCh0cnVlKTsKK3RleHQuc2V0V3JhcFN0eWxlV29yZCh0cnVlKTsKKyAgICAgICAgICAgIHRleHQuc2V0RWRpdGFibGUodHJ1ZSk7CisgICAgICAgICAgICB0ZXh0LnNlbGVjdEFsbCgpOworICAgICAgICAgICAgdGV4dC5zZXRGb250KERlbW9VdGlsaXR5LmVkaXRGb250KTsKKyAgICAgICAgICAgIHRleHQuc2V0Qm9yZGVyKEJvcmRlckZhY3RvcnkuY3JlYXRlRW1wdHlCb3JkZXIoMiwgMiwgMiwgMikpOworCisgICAgICAgIGFkZCgiQ2VudGVyIiwgbmV3IEpTY3JvbGxQYW5lKHRleHQsIEpTY3JvbGxQYW5lLlZFUlRJQ0FMX1NDUk9MTEJBUl9BTFdBWVMsCisgICAgICAgICAgICAgICAgICAgICAgICBKU2Nyb2xsUGFuZS5IT1JJWk9OVEFMX1NDUk9MTEJBUl9ORVZFUikpOworCisgICAgICAgIFBhbmVsIGNvcHlyaWdodFBhbmVsID0gbmV3IFBhbmVsKCk7CisgICAgICAgIGFkZFdpdGhGb250IChjb3B5cmlnaHRQYW5lbCwKKyAgICAgICAgICAgIG5ldyBMYWJlbChEZW1vVXRpbGl0eS5jb3B5cmlnaHQxLCBMYWJlbC5MRUZUKSxEZW1vVXRpbGl0eS5jcmVkaXRGb250KTsKKyAgICAgICAgRGVtb1V0aWxpdHkuZml4R3JpZChjb3B5cmlnaHRQYW5lbCwxKTsKKyAgICAgICAgYWRkKCJTb3V0aCIsIGNvcHlyaWdodFBhbmVsKTsKKworICAgICAgICAvL2xheW91dCgpOworICAgICAgICBoYW5kbGVFbnVtQ2hhbmdlZCgpOworICAgICAgICAKKyAgICAgICAgZW5hYmxlRXZlbnRzKFdpbmRvd0V2ZW50LldJTkRPV19DTE9TSU5HKTsKKyAgICAgICAgZW5hYmxlRXZlbnRzKEtleUV2ZW50LktFWV9QUkVTU0VEKTsKKyAgICAgICAgZW5hYmxlRXZlbnRzKEtleUV2ZW50LktFWV9SRUxFQVNFRCk7CisKKyAgICAgICAgLy8gKG5ldyBUaHJlYWQodGhpcykpLnN0YXJ0KCk7CisgICAgfQorCisKKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0SW5pdGlhbFRleHQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuCisgICAgLyoKKyAgICAgICAgICAgICJcIlRoaXMgaXMgYSBzZW50ZW5jZS5cIiBUaGlzIGlzIG5vdC5cIiBcImJlY2F1c2UuIEFuZCBnby4gIiArCisgICAgICAgICAgICAiVGhpcyBpcyBhIHNpbXBsZSAwMTIuNTY2LDUgc2FtcGxlIHNlbnRlbmNlLiBcbiIrCisgICAgICAgICAgICAiSXQgZG9lcyBub3QgaGF2ZSB0byBtYWtlIGFueSBzZW5zZSBhcyB5b3UgY2FuIHNlZS4gXG4iKworICAgICAgICAgICAgIk5lbCBtZXp6byBkZWwgY2FtbWluIGRpIG5vc3RyYSB2aXRhLCBtaSByaXRyb3ZhaSBpbiAiKworICAgICAgICAgICAgICAgICJ1bmEgc2VsdmEgb3NjdXJhLiBcbiIrCisgICAgICAgICAgICAiQ2hlIGxhIGRyaXR0YSB2aWEgYXZlbyBzbWFycml0YS4gXG4iKworICAgICAgICAgICAgIkhlIHNhaWQsIHRoYXQgSSBzYWlkLCB0aGF0IHlvdSBzYWlkISEgXG4iKworICAgICAgICAgICAgIkRvbid0IHJvY2sgdGhlIGJvYXQuXG5cbiIrCisgICAgICAgICAgICAiQmVjYXVzZSBJIGFtIHRoZSBkYWRkeSwgdGhhdCBpcyB3aHkuIFxuIisKKyAgICAgICAgICAgICJOb3Qgb24gbXkgdGltZSAoZWwgdGltby4pISBcbiIrCisgICAgICAgICAgICAiVGFiXHRUYWJcclRhYlx0V293LiIrCisgICAgICAgICAgICAiU28gd2hhdCEhXG5cbiIrCisgICAgICAgICAgICAiSXMgdGhpcyBhIHF1ZXN0aW9uPz8/ICAiICsKKyAgICAgICAgICAgICJJIHdvbmRlci4uLkhtbS5cbiIgKworICAgICAgICAgICAgIkhhcnJpcyB0aHVtYmVkIGRvd24gc2V2ZXJhbCwgaW5jbHVkaW5nIFwiQXdheSBXZSBHb1wiICIrCisgICAgICAgICAgICAgICAgIih3aGljaCBiZWNhbWUgdGhlIGh1Z2Ugc3VjY2VzcyBPa2xhaG9tYSEpLiBcbiIrCisgICAgICAgICAgICAiT25lIHNwZWNpZXMsIEIuIGFudGhyYWNpcywgaXMgaGlnaGx5IHZpcnVsZW50LlxuIisKKyAgICAgICAgICAgICJXb2xmIHNhaWQgYWJvdXQgU291bmRlcjogXCJCZWF1dGlmdWxseSB0aG91Z2h0LW91dCBhbmQgIisKKyAgICAgICAgICAgICAgICAiZGlyZWN0ZWQuXCJcbiIrCisgICAgICAgICAgICAiSGF2ZSB5b3UgZXZlciBzYWlkLCBcIlRoaXMgaXMgd2hlcmUgSSBzaGFsbCBsaXZlXCI/IFxuIisKKyAgICAgICAgICAgICJIZSAxMDAwLDIzMyw0NTYuMDAwIGFuc3dlcmVkLCBcIllvdSBtYXkgbm90IVwiIFxuIisKKyAgICAgICAgICAgICJBbm90aGVyIHBvcHVsYXIgc2F5aW5nIGlzOiBcIkhvdyBkbyB5b3UgZG8/XCIuIFxuIisKKyAgICAgICAgICAgICJXaGF0IGlzIHRoZSBwcm9wZXIgdXNlIG9mIHRoZSBhYmJyZXZpYXRpb24gcHAuPyBcbiIrCisgICAgICAgICAgICAiWWVzLCBJIGFtIDEsMjMuMzIyJSBkZWZpbmF0ZWxseSAxMlwiIHRhbGwhISI7CisgICAgKi8KKyAgICAgICAgICAgICIoXCJUaGlzIGlzIGEgY29tcGxldGUgc2VudGVuY2UuXCIpIFRoaXMgaXMgKFwibm90LlwiKSBhbHNvLiAgIgorICAgICAgICAgICAgKyJBbiBhYmJyZXZpYXRpb24gaW4gdGhlIG1pZGRsZSwgZXRjLiBhbmQgb25lIGF0IHRoZSBlbmQsIGV0Yy4gIisKKyAgICAgICAgICAgICAgICAiVGhpcyAiCisgICAgICAgICAgICArImlzIGEgc2ltcGxlIHNhbXBsZSAwMTIuNTY2LDUgc2VudGVuY2UuIEl0IGRvZXNuJ3QgIgorICAgICAgICAgICAgKyJoYXZlIHRvIG1ha2UgYW55IHNlbnNlLCBhcyB5b3UgY2FuIHNlZS4gTmVsIG1lenpvIGRlbCAgYyIKKyAgICAgICAgICAgICsiYW1taW4gZGkgbm9zdHJhIHZpdGEsIG1pIHJpdHJvdmFpIGluIHVuYSBzZWx2YSBvc2N1cmEuIENoZSAiCisgICAgICAgICAgICArImxhIGRyaXR0YSB2aWEgYXZlbyBzbWFycml0YS4gTm90IG9uIG15IHRpbWUgKGVsIHRpbW8uKSEgQW5kICIKKyAgICAgICAgICAgICsidGFidWxhdGVkIGNvbHVtbnM6IFx0Q29sMVx0Q29sMlx0Myw0NTYlLlx0ICIKKyAgICAgICAgICAgICsiSXMgdGhpcyBhIHF1ZXN0aW9uPz8/ICBJIHdvbmRlci4uLiBIbW0uIEhhcnJpcyB0aHVtYmVkICIKKyAgICAgICAgICAgICsiZG93biBzZXZlcmFsLCBpbmNsdWRpbmcgXCJBd2F5IFdlIEdvXCIgKHdoaWNoIGJlY2FtZSB0aGUgICIKKyAgICAgICAgICAgICsiaHVnZSBzdWNjZXNzIE9rbGFob21hISkuIE9uZSBzcGVjaWVzLCBCLiBhbnRocmFjaXMsIGlzICAiCisgICAgICAgICAgICArImhpZ2hseSB2aXJ1bGVudC4gV29sZiBzYWlkIGFib3V0IFNvdW5kZXI6IFwiQmVhdXRpZnVsbHkgICIKKyAgICAgICAgICAgICsidGhvdWdodC1vdXQgYW5kIGRpcmVjdGVkLlwiIEhhdmUgeW91IGV2ZXIgc2FpZCwgXCJUaGlzIGlzICIrCisgICAgICAgICAgICAgICAgIndoZXJlIEkgIgorICAgICAgICAgICAgKyJzaGFsbCBsaXZlXCI/IEhlIHNhaWQgMTAwMCwyMzMsNDU2LjAwMCBhbmQgYW5zd2VyZWQsIFwiWW91ICIrCisgICAgICAgICAgICAgICAgIm1heSBub3QhXCIgICIKKyAgICAgICAgICAgICsiQW5vdGhlciBwb3B1bGFyIHNheWluZyBpczogXCJIb3cgZG8geW91IGRvP1wiLiBXaGF0IGlzIHRoZSAgIgorICAgICAgICAgICAgKyJwcm9wZXIgdXNlIG9mIHRoZSBhYmJyZXZpYXRpb24gcHAuPyBZZXMsIEkgYW0gMTJcJyAzXCIgdGFsbCEhIjsKKyAgICB9CisKKworICAgIHB1YmxpYyB2b2lkIGhhbmRsZUVudW1DaGFuZ2VkKCkKKyAgICB7CisgICAgICAgIFN0cmluZyBzID0gYm91bmQuZ2V0U2VsZWN0ZWRJdGVtKCk7CisgICAgICAgIGlmIChzLmVxdWFscygiQ2hhciIpKSB7CisgICAgICAgICAgICBlcnJvclRleHQoImdldENoYXJhY3Rlckluc3RhbmNlIik7CisgICAgICAgICAgICBlbnVtID0gQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHMuZXF1YWxzKCJXb3JkIikpIHsKKyAgICAgICAgICAgIGVycm9yVGV4dCgidFdvcmRCcmVhayIpOworICAgICAgICAgICAgZW51bSA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAocy5lcXVhbHMoIkxpbmUgQnJlYWsiKSkgeworICAgICAgICAgICAgZXJyb3JUZXh0KCJnZXRMaW5lSW5zdGFuY2UiKTsKKyAgICAgICAgICAgIGVudW0gPSBCcmVha0l0ZXJhdG9yLmdldExpbmVJbnN0YW5jZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgLyogaWYgKHMuZXF1YWxzKCJTZW50ZW5jZSIpKSAqLyB7CisgICAgICAgICAgICBlcnJvclRleHQoImdldFNlbnRlbmNlSW5zdGFuY2UiKTsKKyAgICAgICAgICAgIGVudW0gPSBCcmVha0l0ZXJhdG9yLmdldFNlbnRlbmNlSW5zdGFuY2UoKTsKKyAgICAgICAgfQorICAgICAgICBlbnVtLnNldFRleHQodGV4dC5nZXRUZXh0KCkpOworICAgICAgICBzZWxlY3RSYW5nZSgwLCAwKTsKKyAgICAgICAgLy90ZXh0LnNlbGVjdCgwLDApOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGhhbmRsZUZvcndhcmQoKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKy8vICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZW50ZXJpbmcgaGFuZGxlRm9yd2FyZCIpOworICAgICAgICAgICAgZW51bS5zZXRUZXh0KHRleHQuZ2V0VGV4dCgpKTsKKyAgICAgICAgICAgIGludCBvbGRTdGFydCA9IGdldFNlbGVjdGlvblN0YXJ0KCk7CisgICAgICAgICAgICBpbnQgb2xkRW5kID0gZ2V0U2VsZWN0aW9uRW5kKCk7CisKKy8vICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiaGFuZGxlRm9yd2FyZDogb2xkU3RhcnQ9IiArIG9sZFN0YXJ0ICsgIiwgb2xkRW5kPSIgKyBvbGRFbmQpOworCisgICAgICAgICAgICBpZiAob2xkRW5kIDwgMSkgeworICAgICAgICAgICAgICAgIHNlbGVjdFJhbmdlKDAsIGVudW0uZm9sbG93aW5nKDApKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGludCBzID0gZW51bS5mb2xsb3dpbmcob2xkRW5kLTEpOworICAgICAgICAgICAgICAgIGludCBlID0gZW51bS5uZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKGUgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgZSA9IHM7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNlbGVjdFJhbmdlKHMsIGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy90ZXh0LnNlbGVjdChzLCBlKTsKKyAgICAgICAgICAgIGVycm9yVGV4dCgiPCIgKyBvbGRTdGFydCArICIsIiArIG9sZEVuZCArICI+IC0+IDwiICsKKyAgICAgICAgICAgICAgICBzICsgIiwiICsgZSArICI+Iik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBleHApIHsKKyAgICAgICAgICAgIGVycm9yVGV4dChleHAudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBoYW5kbGVCYWNrd2FyZCgpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgZW51bS5zZXRUZXh0KHRleHQuZ2V0VGV4dCgpKTsKKyAgICAgICAgICAgIGludCBvbGRTdGFydCA9IGdldFNlbGVjdGlvblN0YXJ0KCk7CisgICAgICAgICAgICBpbnQgb2xkRW5kID0gZ2V0U2VsZWN0aW9uRW5kKCk7CisgICAgICAgICAgICBpZiAob2xkU3RhcnQgPCAxKSB7CisgICAgICAgICAgICAgICAgc2VsZWN0UmFuZ2UoMCwgMCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbnQgZSA9IGVudW0uZm9sbG93aW5nKG9sZFN0YXJ0LTEpOworICAgICAgICAgICAgICAgIGludCBzID0gZW51bS5wcmV2aW91cygpOworICAgICAgICAgICAgICAgIHNlbGVjdFJhbmdlKHMsIGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy90ZXh0LnNlbGVjdChzLCBlKTsKKyAgICAgICAgICAgIGVycm9yVGV4dCgiPCIgKyBvbGRTdGFydCArICIsIiArIG9sZEVuZCArICI+IC0+IDwiICsgcyArICIsIiArIGUgKyAiPiIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZXhwKSB7CisgICAgICAgICAgICBlcnJvclRleHQoZXhwLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgaXRlbVN0YXRlQ2hhbmdlZChJdGVtRXZlbnQgZXZ0KQorICAgIHsKKyAgICAgICAgaWYgKGV2dC5nZXRTb3VyY2UoKSBpbnN0YW5jZW9mIENob2ljZSkgeworICAgICAgICAgICAgaGFuZGxlRW51bUNoYW5nZWQoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGVycm9yVGV4dChTdHJpbmcgcykKKyAgICB7CisgICAgICAgaWYgKERFQlVHKQorICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocyk7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIHByb2Nlc3NXaW5kb3dFdmVudChXaW5kb3dFdmVudCBldnQpCisgICAgeworICAgICAgICBpZiAoZXZ0LmdldElEKCkgPT0gV2luZG93RXZlbnQuV0lORE9XX0NMT1NJTkcgJiYgCisgICAgICAgICAgICBldnQuZ2V0V2luZG93KCkgPT0gdGhpcykgeworICAgICAgICAgICAgaGlkZSgpOworICAgICAgICAgICAgZGlzcG9zZSgpOworICAgICAgICAgICAgaWYgKGFwcGxldCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgYXBwbGV0LmRlbW9DbG9zZWQoKTsKKyAgICAgICAgICAgIH0gZWxzZSBTeXN0ZW0uZXhpdCgwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCBwcm9jZXNzS2V5RXZlbnQoS2V5RXZlbnQgZXZ0KQorICAgIHsKKyAgICAgICAgc3dpdGNoIChldnQuZ2V0SUQoKSkgeworICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5LRVlfUFJFU1NFRCA6CisgICAgICAgICAgICAgICAgaWYgKGV2dC5nZXRLZXlDb2RlKCkgPT0gS2V5RXZlbnQuVktfQ09OVFJPTCkgeworICAgICAgICAgICAgICAgICAgICBpc2N0cmxkb3duXyA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5LRVlfUkVMRUFTRUQgOgorICAgICAgICAgICAgICAgIC8vIGtleSBkZXRlY3Rpb24gZm9yIGxlZnQgYW5kIHJpZ2h0IGJ1dHRvbnMgYXJlIHJlbW92ZWQKKyAgICAgICAgICAgICAgICAvLyB0byBlbXVsYXRlIHRoZSBvbGQgcmVsZWFzZSBiZWhhdmlvdXIKKyAgICAgICAgICAgICAgICBpbnQga2V5ID0gZXZ0LmdldEtleUNvZGUoKTsKKyAgICAgICAgICAgICAgICBpZiAoa2V5ID09IEtleUV2ZW50LlZLX04gJiYgaXNjdHJsZG93bl8pIHsKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlRm9yd2FyZCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIAorICAgICAgICAgICAgICAgIGlmIChrZXkgPT0gS2V5RXZlbnQuVktfUCAmJiBpc2N0cmxkb3duXykgeworICAgICAgICAgICAgICAgICAgICBoYW5kbGVCYWNrd2FyZCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgaWYgKGtleSA9PSBLZXlFdmVudC5WS19DT05UUk9MKSB7CisgICAgICAgICAgICAgICAgICAgIGlzY3RybGRvd25fID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3JiYmkvcGFja2FnZS5odG1sIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3JiYmkvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjk1ZDZmYTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJiaS9wYWNrYWdlLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMiBGaW5hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisgICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9yYmJpL3BhY2thZ2UuaHRtbCx2ICQKKyAgJFJldmlzaW9uOiAxLjEgJAorICAkRGF0ZTogMjAwMC8wMy8xNSAxNzo0Mzo1MyAkCistLT4KKzwvaGVhZD4KKzxib2R5IGJnY29sb3I9IndoaXRlIj4KK1J1bGVCYXNlZEJyZWFrSXRlcmF0b3IgYW5kIERpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IgZGVtbyBhcHBsaWNhdGlvbnMuCis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3JibmYvUmJuZkRlbW8uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9yYm5mL1JibmZEZW1vLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDcyMjMwMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9yYm5mL1JibmZEZW1vLmphdmEKQEAgLTAsMCArMSw1MzMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9yYm5mL1JibmZEZW1vLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTkgMDQ6MTA6MjQgJCAKKyAqICRSZXZpc2lvbjogMS40ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby5yYm5mOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LmRlbW8uKjsKK2ltcG9ydCBqYXZhLmFwcGxldC5BcHBsZXQ7CitpbXBvcnQgamF2YS5hd3QuKjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC4qOworaW1wb3J0IGphdmEudGV4dC5EZWNpbWFsRm9ybWF0OworaW1wb3J0IGphdmEudGV4dC5CcmVha0l0ZXJhdG9yOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LmRlbW8uaW1wbC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuUnVsZUJhc2VkTnVtYmVyRm9ybWF0OworCitwdWJsaWMgY2xhc3MgUmJuZkRlbW8gZXh0ZW5kcyBEZW1vQXBwbGV0IHsKKyAgICAvKioKKyAgICAgKiBQdXRzIGEgY29weXJpZ2h0IGluIHRoZSAuY2xhc3MgZmlsZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHROb3RpY2UKKyAgICAgICAgPSAiQ29weXJpZ2h0IFx1MDBhOTE5OTctMTk5OCBJQk0gQ29ycC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIC8qCisgICAgICogY29kZSB0byBydW4gdGhlIGRlbW8gYXMgYW4gYXBwbGljYXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmd2KSB7CisgICAgCW5ldyBSYm5mRGVtbygpLnNob3dEZW1vKCk7CisgICAgfQorCisgICAgcHJvdGVjdGVkIERpbWVuc2lvbiBnZXREZWZhdWx0RnJhbWVTaXplKERlbW9BcHBsZXQgYXBwbGV0LCBGcmFtZSBmKSB7CisgICAgCXJldHVybiBuZXcgRGltZW5zaW9uKDQzMCwyNzApOworICAgIH0KKworICAgIHByb3RlY3RlZCBGcmFtZSBjcmVhdGVEZW1vRnJhbWUoRGVtb0FwcGxldCBhcHBsZXQpIHsKKyAgICAgICAgZmluYWwgRnJhbWUgd2luZG93ID0gbmV3IEZyYW1lKCJOdW1iZXIgU3BlbGxvdXQgRGVtbyIpOworICAgICAgICB3aW5kb3cuc2V0U2l6ZSg4MDAsIDYwMCk7CisgICAgICAgIHdpbmRvdy5zZXRMYXlvdXQobmV3IEJvcmRlckxheW91dCgpKTsKKworICAgICAgICBQYW5lbCBtYWluUGFuZWwgPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgbWFpblBhbmVsLnNldExheW91dChuZXcgR3JpZExheW91dCgxLDIpKTsKKworICAgICAgICBjb21tZW50YXJ5RmllbGQgPSBuZXcgVGV4dEFyZWEoIiIsIDAsIDAsIFRleHRBcmVhLlNDUk9MTEJBUlNfVkVSVElDQUxfT05MWSk7CisgICAgICAgIGNvbW1lbnRhcnlGaWVsZC5zZXRTaXplKDgwMCwgNTApOworICAgICAgICBjb21tZW50YXJ5RmllbGQuc2V0VGV4dChSYm5mU2FtcGxlUnVsZVNldHMuc2FtcGxlUnVsZVNldENvbW1lbnRhcnlbMF0pOworICAgICAgICBjb21tZW50YXJ5RmllbGQuc2V0RWRpdGFibGUoZmFsc2UpOworICAgICAgICBjb21tZW50YXJ5RmllbGQuc2V0Rm9udChuZXcgRm9udCgiSGVsdmV0aWNhIiwgRm9udC5QTEFJTiwgMTQpKTsKKworICAgICAgICBzcGVsbG91dEZvcm1hdHRlciA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoUmJuZlNhbXBsZVJ1bGVTZXRzLnVzRW5nbGlzaCwgTG9jYWxlLlVTKTsKKyAgICAgICAgc3BlbGxvdXRGb3JtYXR0ZXIuc2V0TGVuaWVudFBhcnNlTW9kZShsZW5pZW50UGFyc2UpOworICAgICAgICBwb3B1bGF0ZVJ1bGVTZXRNZW51KCk7CisgICAgICAgIG51bWJlckZvcm1hdHRlciA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLCMjMC4jIyMjIyMjIyMjIik7CisgICAgICAgIHBhcnNlUG9zaXRpb24gPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgdGhlTnVtYmVyID0gMDsKKworICAgICAgICBudW1iZXJGaWVsZCA9IG5ldyBUZXh0RmllbGQoKTsKKyAgICAgICAgbnVtYmVyRmllbGQuc2V0Rm9udChuZXcgRm9udCgiU2VyaWYiLCBGb250LlBMQUlOLCAyNCkpOworICAgICAgICB0ZXh0RmllbGQgPSBuZXcgRGVtb1RleHRGaWVsZEhvbGRlcigpOworICAgICAgICB0ZXh0RmllbGQuc2V0Rm9udChuZXcgRm9udCgiU2VyaWYiLCBGb250LlBMQUlOLCAyNCkpOworICAgICAgICBydWxlc0ZpZWxkID0gbmV3IERlbW9UZXh0RmllbGRIb2xkZXIoKTsKKyAgICAgICAgcnVsZXNGaWVsZC5zZXRGb250KG5ldyBGb250KCJTZXJpZiIsIEZvbnQuUExBSU4sIDE0KSk7CisgICAgICAgIGxlbmllbnRQYXJzZUJ1dHRvbiA9IG5ldyBDaGVja2JveCgiTGVuaWVudCBwYXJzZSIsIGxlbmllbnRQYXJzZSk7CisKKyAgICAgICAgbnVtYmVyRmllbGQuYWRkVGV4dExpc3RlbmVyKG5ldyBUZXh0TGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCB0ZXh0VmFsdWVDaGFuZ2VkKFRleHRFdmVudCBlKSB7CisgICAgICAgICAgICAgICAgaWYgKCFudW1iZXJGaWVsZEhhc0ZvY3VzKQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgICAgICBTdHJpbmcgZmllbGRUZXh0ID0gKChUZXh0Q29tcG9uZW50KShlLmdldFNvdXJjZSgpKSkuZ2V0VGV4dCgpOworICAgICAgICAgICAgICAgIHBhcnNlUG9zaXRpb24uc2V0SW5kZXgoMCk7CisgICAgICAgICAgICAgICAgTnVtYmVyIHRlbXAgPSBudW1iZXJGb3JtYXR0ZXIucGFyc2UoZmllbGRUZXh0LCBwYXJzZVBvc2l0aW9uKTsKKyAgICAgICAgICAgICAgICBpZiAodGVtcCA9PSBudWxsIHx8IHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHRoZU51bWJlciA9IDA7CisgICAgICAgICAgICAgICAgICAgIHRleHRGaWVsZC5zZXRUZXh0KCJQQVJTRSBFUlJPUiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdGhlTnVtYmVyID0gdGVtcC5kb3VibGVWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICB0ZXh0RmllbGQuc2V0VGV4dChzcGVsbG91dEZvcm1hdHRlci5mb3JtYXQodGhlTnVtYmVyLCBydWxlU2V0TmFtZSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSApOworCisgICAgICAgIG51bWJlckZpZWxkLmFkZEZvY3VzTGlzdGVuZXIobmV3IEZvY3VzQWRhcHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGZvY3VzTG9zdChGb2N1c0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBudW1iZXJGaWVsZEhhc0ZvY3VzID0gZmFsc2U7CisgICAgICAgICAgICAgICAgbnVtYmVyRmllbGQuc2V0VGV4dChudW1iZXJGb3JtYXR0ZXIuZm9ybWF0KHRoZU51bWJlcikpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgdm9pZCBmb2N1c0dhaW5lZChGb2N1c0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBudW1iZXJGaWVsZEhhc0ZvY3VzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBudW1iZXJGaWVsZC5zZWxlY3RBbGwoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSApOworCisgICAgICAgIHRleHRGaWVsZC5hZGRLZXlMaXN0ZW5lcihuZXcgS2V5QWRhcHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGtleVR5cGVkKEtleUV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoZS5nZXRLZXlDaGFyKCkgPT0gJ1x0JykgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZmllbGRUZXh0ID0gKChUZXh0Q29tcG9uZW50KShlLmdldFNvdXJjZSgpKSkuZ2V0VGV4dCgpOworICAgICAgICAgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEluZGV4KDApOworICAgICAgICAgICAgICAgICAgICB0aGVOdW1iZXIgPSBzcGVsbG91dEZvcm1hdHRlci5wYXJzZShmaWVsZFRleHQsIHBhcnNlUG9zaXRpb24pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmRvdWJsZVZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChwYXJzZVBvc2l0aW9uLmdldEluZGV4KCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGhlTnVtYmVyID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlckZpZWxkLnNldFRleHQoIlBBUlNFIEVSUk9SIik7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0RmllbGQuc2VsZWN0QWxsKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpIDwgZmllbGRUZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0RmllbGQuc2VsZWN0KHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSwgZmllbGRUZXh0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlckZpZWxkLnNldFRleHQobnVtYmVyRm9ybWF0dGVyLmZvcm1hdCh0aGVOdW1iZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRleHRGaWVsZC5zZWxlY3RBbGwoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlckZpZWxkLnNldFRleHQobnVtYmVyRm9ybWF0dGVyLmZvcm1hdCh0aGVOdW1iZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlLmNvbnN1bWUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gKTsKKworICAgICAgICB0ZXh0RmllbGQuYWRkRm9jdXNMaXN0ZW5lcihuZXcgRm9jdXNBZGFwdGVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgZm9jdXNMb3N0KEZvY3VzRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBmaWVsZFRleHQgPSAoKFRleHRDb21wb25lbnQpKGUuZ2V0U291cmNlKCkpKS5nZXRUZXh0KCk7CisgICAgICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRJbmRleCgwKTsKKyAgICAgICAgICAgICAgICB0aGVOdW1iZXIgPSBzcGVsbG91dEZvcm1hdHRlci5wYXJzZShmaWVsZFRleHQsIHBhcnNlUG9zaXRpb24pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5kb3VibGVWYWx1ZSgpOworICAgICAgICAgICAgICAgIGlmIChwYXJzZVBvc2l0aW9uLmdldEluZGV4KCkgPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgbnVtYmVyRmllbGQuc2V0VGV4dCgiUEFSU0UgRVJST1IiKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIG51bWJlckZpZWxkLnNldFRleHQobnVtYmVyRm9ybWF0dGVyLmZvcm1hdCh0aGVOdW1iZXIpKTsKKyAgICAgICAgICAgICAgICB0ZXh0RmllbGQuc2V0VGV4dCh0ZXh0RmllbGQuZ2V0VGV4dCgpKTsgLy8gdGV4dEZpZWxkLnJlcGFpbnQoKSBkaWRuJ3Qgd29yayByaWdodAorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgdm9pZCBmb2N1c0dhaW5lZChGb2N1c0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICB0ZXh0RmllbGQuc2VsZWN0QWxsKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gKTsKKworICAgICAgICBydWxlc0ZpZWxkLmFkZEtleUxpc3RlbmVyKG5ldyBLZXlBZGFwdGVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQga2V5VHlwZWQoS2V5RXZlbnQgZSkgeworICAgICAgICAgICAgICAgIGlmIChlLmdldEtleUNoYXIoKSA9PSAnXHQnKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBmaWVsZFRleHQgPSAoKFRleHRDb21wb25lbnQpKGUuZ2V0U291cmNlKCkpKS5nZXRUZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChmb3JtYXR0ZXJNZW51LmdldFNlbGVjdGVkSXRlbSgpLmVxdWFscygiQ3VzdG9tIikgfHwgIWZpZWxkVGV4dC5lcXVhbHMoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSYm5mU2FtcGxlUnVsZVNldHMuc2FtcGxlUnVsZVNldHNbZm9ybWF0dGVyTWVudS5nZXRTZWxlY3RlZEluZGV4KCldKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgdGVtcCA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoZmllbGRUZXh0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wLnNldExlbmllbnRQYXJzZU1vZGUobGVuaWVudFBhcnNlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3B1bGF0ZVJ1bGVTZXRNZW51KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlbGxvdXRGb3JtYXR0ZXIgPSB0ZW1wOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbVJ1bGVTZXQgPSBmaWVsZFRleHQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVyTWVudS5zZWxlY3QoIkN1c3RvbSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnRhcnlGaWVsZC5zZXRUZXh0KFJibmZTYW1wbGVSdWxlU2V0cy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FtcGxlUnVsZVNldENvbW1lbnRhcnlbUmJuZlNhbXBsZVJ1bGVTZXRzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYW1wbGVSdWxlU2V0Q29tbWVudGFyeS5sZW5ndGggLSAxXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVkaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIHgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0RmllbGQuc2V0VGV4dCh4LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGUuY29uc3VtZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSApOworCisgICAgICAgIHJ1bGVzRmllbGQuYWRkRm9jdXNMaXN0ZW5lcihuZXcgRm9jdXNBZGFwdGVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgZm9jdXNMb3N0KEZvY3VzRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBmaWVsZFRleHQgPSAoKFRleHRDb21wb25lbnQpKGUuZ2V0U291cmNlKCkpKS5nZXRUZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKGZvcm1hdHRlck1lbnUuZ2V0U2VsZWN0ZWRJdGVtKCkuZXF1YWxzKCJDdXN0b20iKSB8fCAhZmllbGRUZXh0LmVxdWFscygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmJuZlNhbXBsZVJ1bGVTZXRzLnNhbXBsZVJ1bGVTZXRzW2Zvcm1hdHRlck1lbnUuZ2V0U2VsZWN0ZWRJbmRleCgpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCB0ZW1wID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChmaWVsZFRleHQpOworICAgICAgICAgICAgICAgICAgICAgICAgdGVtcC5zZXRMZW5pZW50UGFyc2VNb2RlKGxlbmllbnRQYXJzZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBwb3B1bGF0ZVJ1bGVTZXRNZW51KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBzcGVsbG91dEZvcm1hdHRlciA9IHRlbXA7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21SdWxlU2V0ID0gZmllbGRUZXh0OworICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVyTWVudS5zZWxlY3QoIkN1c3RvbSIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVkaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiB4KSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0RmllbGQuc2V0VGV4dCh4LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJ1bGVzRmllbGQuc2V0VGV4dChydWxlc0ZpZWxkLmdldFRleHQoKSk7IC8vIHJ1bGVzRmllbGQucmVwYWludCgpIGRpZG4ndCB3b3JrIHJpZ2h0CisgICAgICAgICAgICB9CisgICAgICAgIH0gKTsKKworICAgICAgICBsZW5pZW50UGFyc2VCdXR0b24uYWRkSXRlbUxpc3RlbmVyKG5ldyBJdGVtTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBpdGVtU3RhdGVDaGFuZ2VkKEl0ZW1FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgbGVuaWVudFBhcnNlID0gbGVuaWVudFBhcnNlQnV0dG9uLmdldFN0YXRlKCk7CisgICAgICAgICAgICAgICAgc3BlbGxvdXRGb3JtYXR0ZXIuc2V0TGVuaWVudFBhcnNlTW9kZShsZW5pZW50UGFyc2UpOworICAgICAgICAgICAgfQorICAgICAgICB9ICk7CisKKyAgICAgICAgbnVtYmVyRmllbGQuc2V0VGV4dChudW1iZXJGb3JtYXR0ZXIuZm9ybWF0KHRoZU51bWJlcikpOworICAgICAgICBudW1iZXJGaWVsZC5zZWxlY3RBbGwoKTsKKyAgICAgICAgdGV4dEZpZWxkLnNldFRleHQoc3BlbGxvdXRGb3JtYXR0ZXIuZm9ybWF0KHRoZU51bWJlciwgcnVsZVNldE5hbWUpKTsKKworICAgICAgICBQYW5lbCBsZWZ0UGFuZWwgPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgbGVmdFBhbmVsLnNldExheW91dChuZXcgQm9yZGVyTGF5b3V0KCkpOworICAgICAgICBQYW5lbCBwYW5lbCA9IG5ldyBQYW5lbCgpOworICAgICAgICBwYW5lbC5zZXRMYXlvdXQobmV3IEJvcmRlckxheW91dCgpKTsKKyAgICAgICAgUGFuZWwgcGFuZWwxID0gbmV3IFBhbmVsKCk7CisgICAgICAgIHBhbmVsMS5zZXRMYXlvdXQobmV3IEdyaWRMYXlvdXQoMywgMSkpOworICAgICAgICBwYW5lbDEuYWRkKG5ldyBQYW5lbCgpKTsKKyAgICAgICAgcGFuZWwxLmFkZChudW1iZXJGaWVsZCwgIkNlbnRlciIpOworICAgICAgICBwYW5lbDEuYWRkKGxlbmllbnRQYXJzZUJ1dHRvbik7CisgICAgICAgIHBhbmVsLmFkZChwYW5lbDEsICJDZW50ZXIiKTsKKyAgICAgICAgUGFuZWwgcGFuZWwyID0gbmV3IFBhbmVsKCk7CisgICAgICAgIHBhbmVsMi5zZXRMYXlvdXQobmV3IEdyaWRMYXlvdXQoMywgMykpOworICAgICAgICBCdXR0b24gYnV0dG9uID0gbmV3IEJ1dHRvbigiKzEwMCIpOworICAgICAgICBidXR0b24uYWRkQWN0aW9uTGlzdGVuZXIoIG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgcm9sbCgxMDApOworICAgICAgICAgICAgfQorICAgICAgICB9ICk7CisgICAgICAgIHBhbmVsMi5hZGQoYnV0dG9uKTsKKyAgICAgICAgYnV0dG9uID0gbmV3IEJ1dHRvbigiKzEwIik7CisgICAgICAgIGJ1dHRvbi5hZGRBY3Rpb25MaXN0ZW5lciggbmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICByb2xsKDEwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSApOworICAgICAgICBwYW5lbDIuYWRkKGJ1dHRvbik7CisgICAgICAgIGJ1dHRvbiA9IG5ldyBCdXR0b24oIisxIik7CisgICAgICAgIGJ1dHRvbi5hZGRBY3Rpb25MaXN0ZW5lciggbmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICByb2xsKDEpOworICAgICAgICAgICAgfQorICAgICAgICB9ICk7CisgICAgICAgIHBhbmVsMi5hZGQoYnV0dG9uKTsKKyAgICAgICAgYnV0dG9uID0gbmV3IEJ1dHRvbigiPCIpOworICAgICAgICBidXR0b24uYWRkQWN0aW9uTGlzdGVuZXIoIG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgdGhlTnVtYmVyICo9IDEwOworICAgICAgICAgICAgICAgIHJlZGlzcGxheSgpOworICAgICAgICAgICAgfQorICAgICAgICB9ICk7CisgICAgICAgIHBhbmVsMi5hZGQoYnV0dG9uKTsKKyAgICAgICAgcGFuZWwyLmFkZChuZXcgUGFuZWwoKSk7CisgICAgICAgIGJ1dHRvbiA9IG5ldyBCdXR0b24oIj4iKTsKKyAgICAgICAgYnV0dG9uLmFkZEFjdGlvbkxpc3RlbmVyKCBuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIHRoZU51bWJlciAvPSAxMDsKKyAgICAgICAgICAgICAgICByZWRpc3BsYXkoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSApOworICAgICAgICBwYW5lbDIuYWRkKGJ1dHRvbik7CisgICAgICAgIGJ1dHRvbiA9IG5ldyBCdXR0b24oIi0xMDAiKTsKKyAgICAgICAgYnV0dG9uLmFkZEFjdGlvbkxpc3RlbmVyKCBuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIHJvbGwoLTEwMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gKTsKKyAgICAgICAgcGFuZWwyLmFkZChidXR0b24pOworICAgICAgICBidXR0b24gPSBuZXcgQnV0dG9uKCItMTAiKTsKKyAgICAgICAgYnV0dG9uLmFkZEFjdGlvbkxpc3RlbmVyKCBuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIHJvbGwoLTEwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSApOworICAgICAgICBwYW5lbDIuYWRkKGJ1dHRvbik7CisgICAgICAgIGJ1dHRvbiA9IG5ldyBCdXR0b24oIi0xIik7CisgICAgICAgIGJ1dHRvbi5hZGRBY3Rpb25MaXN0ZW5lciggbmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICByb2xsKC0xKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSApOworICAgICAgICBwYW5lbDIuYWRkKGJ1dHRvbik7CisgICAgICAgIHBhbmVsLmFkZChwYW5lbDIsICJFYXN0Iik7CisgICAgICAgIGxlZnRQYW5lbC5hZGQocGFuZWwsICJOb3J0aCIpOworICAgICAgICBsZWZ0UGFuZWwuYWRkKHRleHRGaWVsZCwgIkNlbnRlciIpOworCisgICAgICAgIFBhbmVsIHJpZ2h0UGFuZWwgPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgcmlnaHRQYW5lbC5zZXRMYXlvdXQobmV3IEJvcmRlckxheW91dCgpKTsKKyAgICAgICAgZm9ybWF0dGVyTWVudSA9IG5ldyBDaG9pY2UoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBSYm5mU2FtcGxlUnVsZVNldHMuc2FtcGxlUnVsZVNldE5hbWVzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgZm9ybWF0dGVyTWVudS5hZGRJdGVtKFJibmZTYW1wbGVSdWxlU2V0cy5zYW1wbGVSdWxlU2V0TmFtZXNbaV0pOworICAgICAgICBmb3JtYXR0ZXJNZW51LmFkZEl0ZW0oIkN1c3RvbSIpOworICAgICAgICBmb3JtYXR0ZXJNZW51LmFkZEl0ZW1MaXN0ZW5lcihuZXcgSXRlbUxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgaXRlbVN0YXRlQ2hhbmdlZChJdGVtRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIENob2ljZSBzb3VyY2UgPSAoQ2hvaWNlKShlLmdldFNvdXJjZSgpKTsKKyAgICAgICAgICAgICAgICBpbnQgaXRlbSA9IHNvdXJjZS5nZXRTZWxlY3RlZEluZGV4KCk7CisgICAgICAgICAgICAgICAgTG9jYWxlIGxvY2FsZSA9IFJibmZTYW1wbGVSdWxlU2V0cy5zYW1wbGVSdWxlU2V0TG9jYWxlc1tpdGVtXTsKKworICAgICAgICAgICAgICAgIGNvbW1lbnRhcnlGaWVsZC5zZXRUZXh0KFJibmZTYW1wbGVSdWxlU2V0cy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FtcGxlUnVsZVNldENvbW1lbnRhcnlbaXRlbV0pOworCisgICAgICAgICAgICAgICAgaWYgKGxvY2FsZSAhPSBudWxsICYmIChsb2NhbGUuZ2V0TGFuZ3VhZ2UoKS5lcXVhbHMoIml3IikKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IGxvY2FsZS5nZXRMYW5ndWFnZSgpLmVxdWFscygicnUiKSB8fCBsb2NhbGUuZ2V0TGFuZ3VhZ2UoKS5lcXVhbHMoImphIikKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IGxvY2FsZS5nZXRMYW5ndWFnZSgpLmVxdWFscygiZWwiKQorICAgICAgICAgICAgICAgICAgICAgICAgfHwgbG9jYWxlLmdldExhbmd1YWdlKCkuZXF1YWxzKCJ6aCIpKSkgeworICAgICAgICAgICAgICAgICAgICB0ZXh0RmllbGQudG9nZ2xlUGFuZXMoZmFsc2UpOworICAgICAgICAgICAgICAgICAgICBydWxlc0ZpZWxkLnRvZ2dsZVBhbmVzKGZhbHNlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHRleHRGaWVsZC50b2dnbGVQYW5lcyh0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgcnVsZXNGaWVsZC50b2dnbGVQYW5lcyh0cnVlKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBtYWtlTmV3U3BlbGxvdXRGb3JtYXR0ZXIoKTsKKyAgICAgICAgICAgICAgICByZWRpc3BsYXkoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSApOworCisgICAgICAgIHJ1bGVTZXRNZW51ID0gbmV3IENob2ljZSgpOworICAgICAgICBwb3B1bGF0ZVJ1bGVTZXRNZW51KCk7CisKKyAgICAgICAgcnVsZVNldE1lbnUuYWRkSXRlbUxpc3RlbmVyKG5ldyBJdGVtTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBpdGVtU3RhdGVDaGFuZ2VkKEl0ZW1FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgcnVsZVNldE5hbWUgPSBydWxlU2V0TWVudS5nZXRTZWxlY3RlZEl0ZW0oKTsKKyAgICAgICAgICAgICAgICByZWRpc3BsYXkoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSApOworCisgICAgICAgIFBhbmVsIG1lbnVQYW5lbCA9IG5ldyBQYW5lbCgpOworICAgICAgICBtZW51UGFuZWwuc2V0TGF5b3V0KG5ldyBHcmlkTGF5b3V0KDEsIDIpKTsKKyAgICAgICAgbWVudVBhbmVsLmFkZChmb3JtYXR0ZXJNZW51KTsKKyAgICAgICAgbWVudVBhbmVsLmFkZChydWxlU2V0TWVudSk7CisgICAgICAgIHJpZ2h0UGFuZWwuYWRkKG1lbnVQYW5lbCwgIk5vcnRoIik7CisKKyAgICAgICAgcnVsZXNGaWVsZC5zZXRUZXh0KFJibmZTYW1wbGVSdWxlU2V0cy5zYW1wbGVSdWxlU2V0c1tmb3JtYXR0ZXJNZW51LmdldFNlbGVjdGVkSW5kZXgoKV0pOworICAgICAgICByaWdodFBhbmVsLmFkZChydWxlc0ZpZWxkLCAiQ2VudGVyIik7CisKKyAgICAgICAgbWFpblBhbmVsLmFkZChsZWZ0UGFuZWwpOworICAgICAgICBtYWluUGFuZWwuYWRkKHJpZ2h0UGFuZWwpOworCisgICAgICAgIHdpbmRvdy5hZGQobWFpblBhbmVsLCAiQ2VudGVyIik7CisgICAgICAgIHdpbmRvdy5hZGQoY29tbWVudGFyeUZpZWxkLCAiU291dGgiKTsKKworICAgICAgICB3aW5kb3cuZG9MYXlvdXQoKTsKKyAgICAgICAgd2luZG93LnNob3coKTsKKyAgICAgICAgcmV0dXJuIHdpbmRvdzsKKyAgICB9CisKKyAgICB2b2lkIHJvbGwoaW50IGRlbHRhKSB7CisgICAgICAgIHRoZU51bWJlciArPSBkZWx0YTsKKyAgICAgICAgcmVkaXNwbGF5KCk7CisgICAgfQorCisgICAgdm9pZCByZWRpc3BsYXkoKSB7CisgICAgICAgIG51bWJlckZpZWxkLnNldFRleHQobnVtYmVyRm9ybWF0dGVyLmZvcm1hdCh0aGVOdW1iZXIpKTsKKyAgICAgICAgdGV4dEZpZWxkLnNldFRleHQoc3BlbGxvdXRGb3JtYXR0ZXIuZm9ybWF0KHRoZU51bWJlciwgcnVsZVNldE5hbWUpKTsKKyAgICB9CisKKyAgICB2b2lkIG1ha2VOZXdTcGVsbG91dEZvcm1hdHRlcigpIHsKKyAgICAgICAgaW50IGl0ZW0gPSBmb3JtYXR0ZXJNZW51LmdldFNlbGVjdGVkSW5kZXgoKTsKKyAgICAgICAgU3RyaW5nIGZvcm1hdHRlck1lbnVJdGVtID0gZm9ybWF0dGVyTWVudS5nZXRTZWxlY3RlZEl0ZW0oKTsKKworICAgICAgICBpZiAoZm9ybWF0dGVyTWVudUl0ZW0uZXF1YWxzKCJDdXN0b20iKSkgeworICAgICAgICAgICAgcnVsZXNGaWVsZC5zZXRUZXh0KGN1c3RvbVJ1bGVTZXQpOworICAgICAgICAgICAgc3BlbGxvdXRGb3JtYXR0ZXIgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KGN1c3RvbVJ1bGVTZXQpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcnVsZXNGaWVsZC5zZXRUZXh0KFJibmZTYW1wbGVSdWxlU2V0cy5zYW1wbGVSdWxlU2V0c1tpdGVtXSk7CisKKyAgICAgICAgICAgIExvY2FsZSBsb2NhbGUgPSBSYm5mU2FtcGxlUnVsZVNldHMuc2FtcGxlUnVsZVNldExvY2FsZXNbaXRlbV07CisgICAgICAgICAgICBpZiAobG9jYWxlID09IG51bGwpCisgICAgICAgICAgICAgICAgbG9jYWxlID0gTG9jYWxlLmdldERlZmF1bHQoKTsKKworICAgICAgICAgICAgc3BlbGxvdXRGb3JtYXR0ZXIgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KFJibmZTYW1wbGVSdWxlU2V0cy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYW1wbGVSdWxlU2V0c1tpdGVtXSwgbG9jYWxlKTsKKyAgICAgICAgfQorICAgICAgICBzcGVsbG91dEZvcm1hdHRlci5zZXRMZW5pZW50UGFyc2VNb2RlKGxlbmllbnRQYXJzZSk7CisgICAgICAgIHBvcHVsYXRlUnVsZVNldE1lbnUoKTsKKyAgICB9CisKKyAgICB2b2lkIHBvcHVsYXRlUnVsZVNldE1lbnUoKSB7CisgICAgICAgIFN0cmluZ1tdIHJ1bGVTZXROYW1lcyA9IHNwZWxsb3V0Rm9ybWF0dGVyLmdldFJ1bGVTZXROYW1lcygpOworCisgICAgICAgIGlmIChydWxlU2V0TWVudSAhPSBudWxsKSB7CisgICAgICAgICAgICBydWxlU2V0TWVudS5yZW1vdmVBbGwoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcnVsZVNldE5hbWVzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgICAgIHJ1bGVTZXRNZW51LmFkZEl0ZW0ocnVsZVNldE5hbWVzW2ldKTsKKworICAgICAgICAgICAgcnVsZVNldE5hbWUgPSBydWxlU2V0TWVudS5nZXRTZWxlY3RlZEl0ZW0oKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgICAgICBydWxlU2V0TmFtZSA9IHJ1bGVTZXROYW1lc1swXTsKKyAgICB9CisKKyAgICBwcml2YXRlIEZyYW1lIGRlbW9XaW5kb3cgPSBudWxsOworCisgICAgcHJpdmF0ZSBUZXh0Q29tcG9uZW50IG51bWJlckZpZWxkOworICAgIHByaXZhdGUgRGVtb1RleHRGaWVsZEhvbGRlciB0ZXh0RmllbGQ7CisgICAgcHJpdmF0ZSBEZW1vVGV4dEZpZWxkSG9sZGVyIHJ1bGVzRmllbGQ7CisgICAgcHJpdmF0ZSBUZXh0Q29tcG9uZW50IGNvbW1lbnRhcnlGaWVsZDsKKyAgICBwcml2YXRlIENoZWNrYm94IGxlbmllbnRQYXJzZUJ1dHRvbjsKKworICAgIHByaXZhdGUgYm9vbGVhbiBudW1iZXJGaWVsZEhhc0ZvY3VzID0gdHJ1ZTsKKworICAgIHByaXZhdGUgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IHNwZWxsb3V0Rm9ybWF0dGVyOworICAgIHByaXZhdGUgRGVjaW1hbEZvcm1hdCBudW1iZXJGb3JtYXR0ZXI7CisgICAgcHJpdmF0ZSBQYXJzZVBvc2l0aW9uIHBhcnNlUG9zaXRpb247CisKKyAgICBwcml2YXRlIGJvb2xlYW4gbGVuaWVudFBhcnNlID0gdHJ1ZTsKKworICAgIHByaXZhdGUgZG91YmxlIHRoZU51bWJlciA9IDA7CisgICAgcHJpdmF0ZSBib29sZWFuIGNhbkVkaXQgPSB0cnVlOworCisgICAgcHJpdmF0ZSBDaG9pY2UgZm9ybWF0dGVyTWVudTsKKyAgICBwcml2YXRlIENob2ljZSBydWxlU2V0TWVudTsKKyAgICBwcml2YXRlIFN0cmluZyBydWxlU2V0TmFtZTsKKworICAgIHByaXZhdGUgU3RyaW5nIGN1c3RvbVJ1bGVTZXQgPSAiTk8gUlVMRVMhIjsKK30KKworY2xhc3MgRGVtb1RleHRGaWVsZCBleHRlbmRzIENvbXBvbmVudCB7CisgICAgcHVibGljIERlbW9UZXh0RmllbGQoKSB7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0VGV4dChTdHJpbmcgdGV4dCkgeworICAgICAgICB0aGlzLnRleHQgPSB0ZXh0OworICAgICAgICB0aGlzLnJlcGFpbnQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldFRleHQoKSB7CisgICAgICAgIHJldHVybiB0ZXh0OworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHBhaW50KEdyYXBoaWNzIGcpIHsKKyAgICAgICAgRm9udCBmb250ID0gZ2V0Rm9udCgpOworICAgICAgICBGb250TWV0cmljcyBmbSA9IGcuZ2V0Rm9udE1ldHJpY3MoKTsKKyAgICAgICAgZy5zZXRGb250KGZvbnQpOworICAgICAgICBTdHJpbmcgdGV4dCA9IGdldFRleHQoKTsKKyAgICAgICAgQnJlYWtJdGVyYXRvciBiaSA9IEJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKCk7CisgICAgICAgIGJpLnNldFRleHQodGV4dCk7CisgICAgICAgIGludCBsaW5lSGVpZ2h0ID0gZm0uZ2V0SGVpZ2h0KCk7CisgICAgICAgIGludCB3aWR0aCA9IGdldFNpemUoKS53aWR0aDsKKyAgICAgICAgaW50IHBlblkgPSBmbS5nZXRBc2NlbnQoKTsKKyAgICAgICAgaW50IGxpbmVTdGFydCA9IDA7CisgICAgICAgIGludCB0ZW1wTGluZUVuZCA9IGJpLmZpcnN0KCk7CisgICAgICAgIGludCBsaW5lRW5kID0gMDsKKyAgICAgICAgaW50IG1heExpbmVFbmQgPSAwOworICAgICAgICB0b3RhbEhlaWdodCA9IDA7CisKKyAgICAgICAgd2hpbGUgKGxpbmVTdGFydCA8IHRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIG1heExpbmVFbmQgPSB0ZXh0LmluZGV4T2YoJ1xuJywgbGluZVN0YXJ0KTsKKyAgICAgICAgICAgIGlmIChtYXhMaW5lRW5kID09IC0xKQorICAgICAgICAgICAgICAgIG1heExpbmVFbmQgPSBJbnRlZ2VyLk1BWF9WQUxVRTsKKyAgICAgICAgICAgIHdoaWxlICh0ZW1wTGluZUVuZCAhPSBCcmVha0l0ZXJhdG9yLkRPTkUgJiYgZm0uc3RyaW5nV2lkdGgodGV4dC5zdWJzdHJpbmcoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZVN0YXJ0LCB0ZW1wTGluZUVuZCkpIDwgd2lkdGgpIHsKKyAgICAgICAgICAgICAgICBsaW5lRW5kID0gdGVtcExpbmVFbmQ7CisgICAgICAgICAgICAgICAgdGVtcExpbmVFbmQgPSBiaS5uZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobGluZVN0YXJ0ID49IGxpbmVFbmQpIHsKKyAgICAgICAgICAgICAgICBpZiAodGVtcExpbmVFbmQgPT0gQnJlYWtJdGVyYXRvci5ET05FKQorICAgICAgICAgICAgICAgICAgICBsaW5lRW5kID0gdGV4dC5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGxpbmVFbmQgPSB0ZW1wTGluZUVuZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChsaW5lRW5kID4gbWF4TGluZUVuZCkKKyAgICAgICAgICAgICAgICBsaW5lRW5kID0gbWF4TGluZUVuZDsKKyAgICAgICAgICAgIGcuZHJhd1N0cmluZyh0ZXh0LnN1YnN0cmluZyhsaW5lU3RhcnQsIGxpbmVFbmQpLCAwLCBwZW5ZKTsKKyAgICAgICAgICAgIHBlblkgKz0gbGluZUhlaWdodDsKKyAgICAgICAgICAgIHRvdGFsSGVpZ2h0ICs9IGxpbmVIZWlnaHQ7CisgICAgICAgICAgICBsaW5lU3RhcnQgPSBsaW5lRW5kOworICAgICAgICAgICAgaWYgKGxpbmVTdGFydCA8IHRleHQubGVuZ3RoKCkgJiYgdGV4dC5jaGFyQXQobGluZVN0YXJ0KSA9PSAnXG4nKQorICAgICAgICAgICAgICAgICsrbGluZVN0YXJ0OworICAgICAgICB9CisgICAgfQorCisvKgorICAgIHB1YmxpYyBEaW1lbnNpb24gZ2V0UHJlZmVycmVkU2l6ZSgpIHsKKyAgICAgICAgRGltZW5zaW9uIHNpemUgPSBnZXRQYXJlbnQoKS5nZXRTaXplKCk7CisgICAgICAgIHJldHVybiBuZXcgRGltZW5zaW9uKHNpemUud2lkdGgsIHRvdGFsSGVpZ2h0KTsKKyAgICB9CisqLworCisgICAgcHJpdmF0ZSBTdHJpbmcgdGV4dDsKKyAgICBwcml2YXRlIGludCB0b3RhbEhlaWdodDsKK30KKworY2xhc3MgRGVtb1RleHRGaWVsZEhvbGRlciBleHRlbmRzIFBhbmVsIHsKKyAgICBwdWJsaWMgRGVtb1RleHRGaWVsZEhvbGRlcigpIHsKKyAgICAgICAgdGYxID0gbmV3IFRleHRBcmVhKCIiLCAwLCAwLCBUZXh0QXJlYS5TQ1JPTExCQVJTX1ZFUlRJQ0FMX09OTFkpOworICAgICAgICB0ZjIgPSBuZXcgRGVtb1RleHRGaWVsZCgpOworICAgICAgICBzcCA9IG5ldyBTY3JvbGxQYW5lKCk7CisKKyAgICAgICAgc2V0TGF5b3V0KG5ldyBDYXJkTGF5b3V0KCkpOworCisgICAgICAgIHNwLmFkZCh0ZjIsICJUZXh0RmllbGQxIik7CisgICAgICAgIHNwLnNldFZpc2libGUoZmFsc2UpOworICAgICAgICBhZGQodGYxLCAiVGVzdEZpZWxkMiIpOworICAgICAgICBhZGQoc3AsICJTY3JvbGxQYW5lIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYWRkRm9jdXNMaXN0ZW5lcihGb2N1c0xpc3RlbmVyIGwpIHsKKyAgICAgICAgdGYxLmFkZEZvY3VzTGlzdGVuZXIobCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYWRkS2V5TGlzdGVuZXIoS2V5TGlzdGVuZXIgbCkgeworICAgICAgICB0ZjEuYWRkS2V5TGlzdGVuZXIobCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0VGV4dChTdHJpbmcgdGV4dCkgeworICAgICAgICB0ZjEuc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgdGYyLnNldFRleHQodGV4dCk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXRUZXh0KCkgeworICAgICAgICByZXR1cm4gdGYxLmdldFRleHQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZWxlY3QoaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgIHRmMS5zZWxlY3Qoc3RhcnQsIGVuZCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2VsZWN0QWxsKCkgeworICAgICAgICB0ZjEuc2VsZWN0QWxsKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdG9nZ2xlUGFuZXMoYm9vbGVhbiBjYW5TaG93UmVhbFRleHRGaWVsZCkgeworICAgICAgICBpZiAoY2FuU2hvd1JlYWxUZXh0RmllbGQgIT0gc2hvd2luZ1JlYWxUZXh0RmllbGQpIHsKKyAgICAgICAgICAgIENhcmRMYXlvdXQgbGF5b3V0ID0gKENhcmRMYXlvdXQpKGdldExheW91dCgpKTsKKyAgICAgICAgICAgIGxheW91dC5uZXh0KHRoaXMpOworICAgICAgICAgICAgc2hvd2luZ1JlYWxUZXh0RmllbGQgPSBjYW5TaG93UmVhbFRleHRGaWVsZDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgVGV4dEFyZWEgdGYxID0gbnVsbDsKKyAgICBwcml2YXRlIERlbW9UZXh0RmllbGQgdGYyID0gbnVsbDsKKyAgICBwcml2YXRlIFNjcm9sbFBhbmUgc3AgPSBudWxsOworICAgIHByaXZhdGUgYm9vbGVhbiBzaG93aW5nUmVhbFRleHRGaWVsZCA9IHRydWU7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJuZi9SYm5mU2FtcGxlUnVsZVNldHMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9yYm5mL1JibmZTYW1wbGVSdWxlU2V0cy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjlmOGE2OWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJuZi9SYm5mU2FtcGxlUnVsZVNldHMuamF2YQpAQCAtMCwwICsxLDE5NDkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9yYm5mL1JibmZTYW1wbGVSdWxlU2V0cy5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA0OjU5ICQgCisgKiAkUmV2aXNpb246IDEuMyAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRlbW8ucmJuZjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi5kZW1vLio7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworLyoqCisgKiBBIGNvbGxlY3Rpb24gb2YgZXhhbXBsZSBydWxlIHNldHMgZm9yIHVzZSB3aXRoIFJ1bGVCYXNlZE51bWJlckZvcm1hdC4KKyAqIFRoZXNlIGV4YW1wbGVzIGFyZSBpbnRlbmRlZCB0byBzZXJ2ZSBib3RoIGFzIGRlbW9uc3RyYXRpb25zIG9mIHdoYXQgY2FuCisgKiBiZSBkb25lIHdpdGggdGhpcyBmcmFtZXdvcmssIGFuZCBhcyBzdGFydGluZyBwb2ludHMgZm9yIGRlc2lnbmluZyBuZXcKKyAqIHJ1bGUgc2V0cy4KKyAqCisgKiBGb3IgdGhvc2UgdGhhdCBjbGFpbSB0byByZXByZXNlbnQgbnVtYmVyLXNwZWxsb3V0IHJ1bGVzIGZvciBsYW5ndWFnZXMKKyAqIG90aGVyIHRoYW4gVS5TLiBFbmdsaXNoLCB3ZSBtYWtlIG5vIGNsYWltcyBvZiBlaXRoZXIgYWNjdXJhY3kgb3IKKyAqIGNvbXBsZXRlbmVzcy4gIEluIGZhY3QsIHdlIGtub3cgdGhlbSB0byBiZSBpbmNvbXBsZXRlLCBhbmQgc3VzcGVjdAorICogbW9zdCBoYXZlIG1pc3Rha2VzIGluIHRoZW0uICBJZiB5b3Ugc2VlIHNvbWV0aGluZyB0aGF0IHlvdSBrbm93IGlzIHdyb25nLAorICogcGxlYXNlIHRlbGwgdXMhCisgKgorICogQGF1dGhvciBSaWNoYXJkIEdpbGxhbQorICogQHZlcnNpb24gJFZlcnNpb24kICREYXRlOiAyMDAyLzAyLzE2IDAzOjA0OjU5ICQKKyAqLworcHVibGljIGNsYXNzIFJibmZTYW1wbGVSdWxlU2V0cyB7CisgICAgLyoqCisgICAgICogUHV0cyBhIGNvcHlyaWdodCBpbiB0aGUgLmNsYXNzIGZpbGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0Tm90aWNlCisgICAgICAgID0gIkNvcHlyaWdodCBcdTAwYTkxOTk3LTE5OTggSUJNIENvcnAuICBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIFNwZWxsb3V0IHJ1bGVzIGZvciB2YXJpb3VzIGxhbmd1YWdlcworICAgIC8vCisgICAgLy8gVGhlIGZvbGxvd2luZyBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZGVzY3JpcHRpb25zIHNob3cgdGhlIHJ1bGVzIGZvcgorICAgIC8vIHNwZWxsaW5nIG91dCBudW1lcmljIHZhbHVlcyBpbiB2YXJpb3VzIGxhbmd1YWdlcy4gIEFzIG1lbnRpb25lZAorICAgIC8vIGJlZm9yZSwgd2UgY2Fubm90IHZvdWNoIGZvciB0aGUgYWNjdXJhY3kgb3IgY29tcGxldGVuZXNzIG9mIHRoaXMKKyAgICAvLyBkYXRhLCBhbHRob3VnaCB3ZSBiZWxpZXZlIGl0J3MgcHJldHR5IGNsb3NlLiAgQmFzaWNhbGx5LCB0aGlzCisgICAgLy8gcmVwcmVzZW50cyBvbmUgZGF5J3Mgd29ydGggb2YgV2ViLXN1cmZpbmcuICBJZiB5b3UgY2FuIHN1cHBseSB0aGUKKyAgICAvLyBtaXNzaW5nIGluZm9ybWF0aW9uIGluIGFueSBvZiB0aGVzZSBydWxlIHNldHMsIG9yIGlmIHlvdSBmaW5kIGVycm9ycywKKyAgICAvLyBvciBpZiB5b3UgY2FuIHN1cHBseSBzcGVsbG91dCBydWxlcyBmb3IgbGFuZ3VhZ2VzIHRoYXQgYXJlbid0IHNob3duCisgICAgLy8gaGVyZSwgd2Ugd2FudCB0byBoZWFyIGZyb20geW91IQorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBTcGVsbG91dCBydWxlcyBmb3IgVS5TLiBFbmdsaXNoLiAgVGhpcyBkZW1vbnN0cmF0aW9uIHZlcnNpb24gb2YgdGhlCisgICAgICogVS5TLiBFbmdsaXNoIHNwZWxsb3V0IHJ1bGVzIGhhcyBmb3VyIHZhcmlhbnRzOiAxKSAlc2ltcGxpZmllZCBpcyBhCisgICAgICogc2V0IG9mIHJ1bGVzIHNob3dpbmcgdGhlIHNpbXBsZSBtZXRob2Qgb2Ygc3BlbGxpbmcgb3V0IG51bWJlcnMgaW4KKyAgICAgKiBFbmdsaXNoOiAyODkgaXMgZm9ybWF0dGVkIGFzICJ0d28gaHVuZHJlZCBlaWdodHktbmluZSIuICAyKSAlYWx0LXRlZW5zCisgICAgICogaXMgdGhlIHNhbWUgYXMgJXNpbXBsaWZpZWQsIGV4Y2VwdCB0aGF0IHZhbHVlcyBiZXR3ZWVuIDEsMDAwIGFuZCA5LDk5OQorICAgICAqIHdob3NlIGh1bmRyZWRzIHBsYWNlIGlzbid0IHplcm8gYXJlIGZvcm1hdHRlZCBpbiBodW5kcmVkcy4gIEZvciBleGFtcGxlLAorICAgICAqIDEsOTgzIGlzIGZvcm1hdHRlZCBhcyAibmluZXRlZW4gaHVuZHJlZCBlaWdodHktdGhyZWUsIiBhbmQgMiwxODMgaXMKKyAgICAgKiBmb3JtYXR0ZWQgYXMgInR3ZW50eS1vbmUgaHVuZHJlZCBlaWdodHktdGhyZWUsIiBidXQgMiwwODMgaXMgc3RpbGwKKyAgICAgKiBmb3JtYXR0ZWQgYXMgInR3byB0aG91c2FuZCBlaWdodHktdGhyZWUuIiAgMykgJW9yZGluYWwgZm9ybWF0cyB0aGUKKyAgICAgKiB2YWx1ZXMgYXMgb3JkaW5hbCBudW1iZXJzIGluIEVuZ2xpc2ggKGUuZy4sIDI4OSBpcyAidHdvIGh1bmRyZWQgZWlnaHR5LQorICAgICAqIG5pbnRoIikuICA0KSAlZGVmYXVsdCB1c2VzIGEgbW9yZSBjb21wbGljYXRlZCBhbGdvcml0aG0gdG8gZm9ybWF0CisgICAgICogbnVtYmVycyBpbiBhIG1vcmUgbmF0dXJhbCB3YXk6IDI4OSBpcyBmb3JtYXR0ZWQgYXMgInR3byBodW5kcmVkIEFORAorICAgICAqIGVpZ2h0eS1uaW5lIiBhbmQgY29tbWFzIGFyZSBpbnNlcnRlZCBiZXR3ZWVuIHRoZSB0aG91c2FuZHMgZ3JvdXBzIGZvcgorICAgICAqIHZhbHVlcyBhYm92ZSAxMDAsMDAwLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIHVzRW5nbGlzaCA9CisgICAgICAgIC8vIFRoaXMgcnVsZSBzZXQgc2hvd3MgdGhlIG5vcm1hbCBzaW1wbGUgZm9ybWF0dGluZyBydWxlcyBmb3IgRW5nbGlzaAorICAgICAgICAiJXNpbXBsaWZpZWQ6XG4iCisgICAgICAgICAgICAgICAvLyBuZWdhdGl2ZSBudW1iZXIgcnVsZS4gIFRoaXMgcnVsZSBpcyB1c2VkIHRvIGZvcm1hdCBuZWdhdGl2ZQorICAgICAgICAgICAgICAgLy8gbnVtYmVycy4gIFRoZSByZXN1bHQgb2YgZm9ybWF0dGluZyB0aGUgbnVtYmVyJ3MgYWJzb2x1dGUKKyAgICAgICAgICAgICAgIC8vIHZhbHVlIGlzIHBsYWNlZCB3aGVyZSB0aGUgPj4gaXMuCisgICAgICAgICsgIiAgICAteDogbWludXMgPj47XG4iCisgICAgICAgICAgICAgICAvLyBmYWN0aW9uIHJ1bGUuICBUaGlzIHJ1bGUgaXMgdXNlZCBmb3IgZm9ybWF0dGluZyBudW1iZXJzCisgICAgICAgICAgICAgICAvLyB3aXRoIGZyYWN0aW9uYWwgcGFydHMuICBUaGUgcmVzdWx0IG9mIGZvcm1hdHRpbmcgdGhlCisgICAgICAgICAgICAgICAvLyBudW1iZXIncyBpbnRlZ3JhbCBwYXJ0IGlzIHN1YnN0aXR1dGVkIGZvciB0aGUgPDwsIGFuZAorICAgICAgICAgICAgICAgLy8gdGhlIHJlc3VsdCBvZiBmb3JtYXR0aW5nIHRoZSBudW1iZXIncyBmcmFjdGlvbmFsIHBhcnQKKyAgICAgICAgICAgICAgIC8vIChvbmUgZGlnaXQgYXQgYSB0aW1lLCBlLmcuLCAwLjEyMyBpcyAiemVybyBwb2ludCBvbmUgdHdvCisgICAgICAgICAgICAgICAvLyB0aHJlZSIpIHJlcGxhY2VzIHRoZSA+Pi4KKyAgICAgICAgKyAiICAgIHgueDogPDwgcG9pbnQgPj47XG4iCisgICAgICAgICAgICAgICAvLyB0aGUgcnVsZXMgZm9yIHRoZSB2YWx1ZXMgZnJvbSAwIHRvIDE5IGFyZSBzaW1wbHkgdGhlCisgICAgICAgICAgICAgICAvLyB3b3JkcyBmb3IgdGhvc2UgbnVtYmVycworICAgICAgICArICIgICAgemVybzsgb25lOyB0d287IHRocmVlOyBmb3VyOyBmaXZlOyBzaXg7IHNldmVuOyBlaWdodDsgbmluZTtcbiIKKyAgICAgICAgKyAiICAgIHRlbjsgZWxldmVuOyB0d2VsdmU7IHRoaXJ0ZWVuOyBmb3VydGVlbjsgZmlmdGVlbjsgc2l4dGVlbjtcbiIKKyAgICAgICAgKyAiICAgICAgICBzZXZlbnRlZW47IGVpZ2h0ZWVuOyBuaW5ldGVlbjtcbiIKKyAgICAgICAgICAgICAgIC8vIGJlZ2lubmluZyBhdCAyMCwgd2UgdXNlIHRoZSA+PiB0byBtYXJrIHRoZSBwb3NpdGlvbiB3aGVyZQorICAgICAgICAgICAgICAgLy8gdGhlIHJlc3VsdCBvZiBmb3JtYXR0aW5nIHRoZSBudW1iZXIncyBvbmVzIGRpZ2l0LiAgVGh1cywKKyAgICAgICAgICAgICAgIC8vIHdlIG9ubHkgbmVlZCBhIG5ldyBydWxlIGF0IGV2ZXJ5IG11bHRpcGxlIG9mIDEwLiAgVGV4dCBpbgorICAgICAgICAgICAgICAgLy8gYmFja2V0cyBpcyBvbWl0dGVkIGlmIHRoZSB2YWx1ZSBiZWluZyBmb3JtYXR0ZWQgaXMgYW4KKyAgICAgICAgICAgICAgIC8vIGV2ZW4gbXVsdGlwbGUgb2YgMTAuCisgICAgICAgICsgIiAgICAyMDogdHdlbnR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICAzMDogdGhpcnR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA0MDogZm9ydHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDUwOiBmaWZ0eVstPj5dO1xuIgorICAgICAgICArICIgICAgNjA6IHNpeHR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA3MDogc2V2ZW50eVstPj5dO1xuIgorICAgICAgICArICIgICAgODA6IGVpZ2h0eVstPj5dO1xuIgorICAgICAgICArICIgICAgOTA6IG5pbmV0eVstPj5dO1xuIgorICAgICAgICAgICAgICAgLy8gYmVnaW5uaW5nIGF0IDEwMCwgd2UgY2FuIHVzZSA8PCB0byBtYXJrIHRoZSBwb3NpdGlvbiB3aGVyZQorICAgICAgICAgICAgICAgLy8gdGhlIHJlc3VsdCBvZiBmb3JtYXR0aW5nIHRoZSBtdWx0aXBsZSBvZiAxMDAgaXMgdG8gYmUKKyAgICAgICAgICAgICAgIC8vIGluc2VydGVkLiAgTm90aWNlIGFsc28gdGhhdCB0aGUgbWVhbmluZyBvZiA+PiBoYXMgc2hpZnRlZDoKKyAgICAgICAgICAgICAgIC8vIGhlcmUsIGl0IHJlZmVycyB0byBib3RoIHRoZSBvbmVzIHBsYWNlIGFuZCB0aGUgdGVucyBwbGFjZS4KKyAgICAgICAgICAgICAgIC8vIFRoZSBtZWFuaW5ncyBvZiB0aGUgPDwgYW5kID4+IHRva2VucyBkZXBlbmQgb24gdGhlIGJhc2UgdmFsdWUKKyAgICAgICAgICAgICAgIC8vIG9mIHRoZSBydWxlLiAgQSBydWxlJ3MgZGl2aXNvciBpcyAodXN1YWxseSkgdGhlIGhpZ2hlc3QKKyAgICAgICAgICAgICAgIC8vIHBvd2VyIG9mIDEwIHRoYXQgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBydWxlJ3MgYmFzZQorICAgICAgICAgICAgICAgLy8gdmFsdWUuICBUaGUgdmFsdWUgYmVpbmcgZm9ybWF0dGVkIGlzIGRpdmlkZWQgYnkgdGhlIHJ1bGUncworICAgICAgICAgICAgICAgLy8gZGl2aXNvciwgYW5kIHRoZSBpbnRlZ3JhbCBxdW90aWVudCBpcyB1c2VkIHRvIGdldCB0aGUgdGV4dAorICAgICAgICAgICAgICAgLy8gZm9yIDw8LCB3aGlsZSB0aGUgcmVtYWluZGVyIGlzIHVzZWQgdG8gcHJvZHVjZSB0aGUgdGV4dAorICAgICAgICAgICAgICAgLy8gZm9yID4+LiAgQWdhaW4sIHRleHQgaW4gYnJhY2tldHMgaXMgb21pdHRlZCBpZiB0aGUgdmFsdWUKKyAgICAgICAgICAgICAgIC8vIGJlaW5nIGZvcm1hdHRlZCBpcyBhbiBldmVuIG11bHRpcGxlIG9mIHRoZSBydWxlJ3MgZGl2aXNvcgorICAgICAgICAgICAgICAgLy8gKGluIHRoaXMgY2FzZSwgYW4gZXZlbiBtdWx0aXBsZSBvZiAxMDApCisgICAgICAgICsgIiAgICAxMDA6IDw8IGh1bmRyZWRbID4+XTtcbiIKKyAgICAgICAgICAgICAgIC8vIFRoZSBydWxlcyBmb3IgdGhlIGhpZ2hlciBudW1iZXJzIHdvcmsgdGhlIHNhbWUgd2F5IGFzIHRoZQorICAgICAgICAgICAgICAgLy8gcnVsZSBmb3IgMTAwOiBBZ2FpbiwgdGhlIDw8IGFuZCA+PiB0b2tlbnMgZGVwZW5kIG9uIHRoZQorICAgICAgICAgICAgICAgLy8gcnVsZSdzIGRpdmlzb3IsIHdoaWNoIGZvciBhbGwgdGhlc2UgcnVsZXMgaXMgYWxzbyB0aGUgcnVsZSdzCisgICAgICAgICAgICAgICAvLyBiYXNlIHZhbHVlLiAgVG8gZ3JvdXAgYnkgdGhvdXNhbmQsIHdlIHNpbXBseSBkb24ndCBoYXZlIGFueQorICAgICAgICAgICAgICAgLy8gcnVsZXMgYmV0d2VlbiAxLDAwMCBhbmQgMSwwMDAsMDAwLgorICAgICAgICArICIgICAgMTAwMDogPDwgdGhvdXNhbmRbID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMDogPDwgbWlsbGlvblsgPj5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMDogPDwgYmlsbGlvblsgPj5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMCwwMDA6IDw8IHRyaWxsaW9uWyA+Pl07XG4iCisgICAgICAgICAgICAgICAvLyBvdmVyZmxvdyBydWxlLiAgVGhpcyBydWxlIHNwZWNpZmllcyB0aGF0IHZhbHVlcyBvZiBhCisgICAgICAgICAgICAgICAvLyBxdWFkcmlsbGlvbiBvciBtb3JlIGFyZSBzaG93biBpbiBudW1lcmFscyByYXRoZXIgdGhhbiB3b3Jkcy4KKyAgICAgICAgICAgICAgIC8vIFRoZSA9PSB0b2tlbiBtZWFucyB0byBmb3JtYXQgKHdpdGggbmV3IHJ1bGVzKSB0aGUgdmFsdWUKKyAgICAgICAgICAgICAgIC8vIGJlaW5nIGZvcm1hdHRlZCBieSB0aGlzIHJ1bGUgYW5kIHBsYWNlIHRoZSByZXN1bHQgd2hlcmUKKyAgICAgICAgICAgICAgIC8vIHRoZSA9PSBpcy4gIFRoZSAjLCMjMCBpbnNpZGUgdGhlID09IHNpZ25zIGlzIGEKKyAgICAgICAgICAgICAgIC8vIERlY2ltYWxGb3JtYXQgcGF0dGVybi4gIEl0IHNwZWNpZmllcyB0aGF0IHRoZSB2YWx1ZSBzaG91bGQKKyAgICAgICAgICAgICAgIC8vIGJlIGZvcm1hdHRlZCB3aXRoIGEgRGVjaW1hbEZvcm1hdCBvYmplY3QsIGFuZCB0aGF0IGl0CisgICAgICAgICAgICAgICAvLyBzaG91bGQgYmUgZm9ybWF0dGVkIHdpdGggbm8gZGVjaW1hbCBwbGFjZXMsIGF0IGxlYXN0IG9uZQorICAgICAgICAgICAgICAgLy8gZGlnaXQsIGFuZCBhIHRob3VzYW5kcyBzZXBhcmF0b3IuCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07XG4iCisKKyAgICAgICAgLy8gVGhpcyBydWxlIHNldCBmb3JtYXRzIG51bWJlcnMgYmV0d2VlbiAxLDAwMCBhbmQgOSw5OTkgc29tZXdoYXQKKyAgICAgICAgLy8gZGlmZmVyZW50bHk6IElmIHRoZSBodW5kcmVkcyBkaWdpdCBpcyBub3QgemVybywgdGhlIGZpcnN0IHR3bworICAgICAgICAvLyBkaWdpdHMgYXJlIHRyZWF0ZWQgYXMgYSBudW1iZXIgb2YgaHVuZHJlZHMuICBGb3IgZXhhbXBsZSwgMiwxOTcKKyAgICAgICAgLy8gd291bGQgY29tZSBvdXQgYXMgInR3ZW50eS1vbmUgaHVuZHJlZCBuaW5ldHktc2V2ZW4uIgorICAgICAgICArICIlYWx0LXRlZW5zOlxuIgorICAgICAgICAgICAgICAgLy8ganVzdCB1c2UgJXNpbXBsaWZpZWQgdG8gZm9ybWF0IHZhbHVlcyBiZWxvdyAxLDAwMAorICAgICAgICArICIgICAgPSVzaW1wbGlmaWVkPTtcbiIKKyAgICAgICAgICAgICAgIC8vIHZhbHVlcyBiZXR3ZWVuIDEsMDAwIGFuZCA5LDk5OSBhcmUgZGVsZWdhdGVkIHRvICUlYWx0LWh1bmRyZWRzCisgICAgICAgICAgICAgICAvLyBmb3IgZm9ybWF0dGluZy4gIFRoZSA+IGFmdGVyICIxMDAwIiBkZWNyZWFzZXMgdGhlIGV4cG9uZW50CisgICAgICAgICAgICAgICAvLyBvZiB0aGUgcnVsZSdzIHJhZGl4IGJ5IG9uZSwgY2F1c2luZyB0aGUgcnVsZSdzIGRpdmlzb3IKKyAgICAgICAgICAgICAgIC8vIHRvIGJlIDEwMCBpbnN0ZWFkIG9mIDEsMDAwLiAgVGhpcyBjYXVzZXMgdGhlIGZpcnN0IFRXTworICAgICAgICAgICAgICAgLy8gZGlnaXRzIG9mIHRoZSBudW1iZXIsIGluc3RlYWQgb2YganVzdCB0aGUgZmlyc3QgZGlnaXQsCisgICAgICAgICAgICAgICAvLyB0byBiZSBzZW50IHRvICUlYWx0LWh1bmRyZWRzCisgICAgICAgICsgIiAgICAxMDAwPjogPCUlYWx0LWh1bmRyZWRzPFsgPj5dO1xuIgorICAgICAgICAgICAgICAgLy8gZm9yIHZhbHVlcyBvZiAxMCwwMDAgYW5kIG1vcmUsIHdlIGFnYWluIGp1c3QgdXNlICVzaW1wbGlmaWVkCisgICAgICAgICsgIiAgICAxMCwwMDA6ID0lc2ltcGxpZmllZD07XG4iCisgICAgICAgIC8vIFRoaXMgcnVsZSBzZXQgdXNlcyBzb21lIG9ic2N1cmUgdm9vZG9vIG9mIHRoZSBkZXNjcmlwdGlvbiBsYW5ndWFnZQorICAgICAgICAvLyB0byBmb3JtYXQgdGhlIGZpcnN0IHR3byBkaWdpdHMgb2YgYSB2YWx1ZSBpbiB0aGUgdGhvdXNhbmRzLgorICAgICAgICAvLyBUaGUgcnVsZSBhdCAxMCBmb3JtYXRzIHRoZSBmaXJzdCB0d28gZGlnaXRzIGFzIGEgbXVsdGlwbGUgb2YgMSwwMDAKKyAgICAgICAgLy8gYW5kIHRoZSBydWxlIGF0IDExIGZvcm1hdHMgdGhlIGZpcnN0IHR3byBkaWdpdHMgYXMgYSBtdWx0aXBsZSBvZgorICAgICAgICAvLyAxMDAuICBUaGlzIHdvcmtzIGJlY2F1c2Ugb2Ygc29tZXRoaW5nIGtub3duIGFzIHRoZSAicm9sbGJhY2sgcnVsZSI6CisgICAgICAgIC8vIGlmIHRoZSBydWxlIGFwcGxpY2FibGUgdG8gdGhlIHZhbHVlIGJlaW5nIGZvcm1hdHRlZCBoYXMgdHdvCisgICAgICAgIC8vIHN1YnN0aXR1dGlvbnMsIHRoZSB2YWx1ZSBiZWluZyBmb3JtYXR0ZWQgaXMgYW4gZXZlbiBtdWx0aXBsZSBvZgorICAgICAgICAvLyB0aGUgcnVsZSdzIGRpdmlzb3IsIGFuZCB0aGUgcnVsZSdzIGJhc2UgdmFsdWUgSVNOJ1QgYW4gZXZlbiBtdWx0aXBsZQorICAgICAgICAvLyBpZiB0aGUgcnVsZSdzIGRpdmlzb3IsIHRoZW4gdGhlIHJ1bGUgdGhhdCBwcmVjZWRlcyB0aGlzIG9uZSBpbiB0aGUKKyAgICAgICAgLy8gbGlzdCBpcyB1c2VkIGluc3RlYWQuICAoVGhlIFtdIG5vdGF0aW9uIGlzIGltcGxlbWVudGVkIGludGVybmFsbHkKKyAgICAgICAgLy8gdXNpbmcgdGhpcyBub3RhdGlvbjogYSBydWxlIGNvbnRhaW5pbmcgW10gaXMgc3BsaXQgaW50byB0d28gcnVsZXMsCisgICAgICAgIC8vIGFuZCB0aGUgcmlnaHQgb25lIGlzIGNob3NlbiB1c2luZyB0aGUgcm9sbGJhY2sgcnVsZS4pIEluIHRoaXMgY2FzZSwKKyAgICAgICAgLy8gaXQgbWVhbnMgdGhhdCBpZiB0aGUgZmlyc3QgdHdvIGRpZ2l0cyBhcmUgYW4gZXZlbiBtdWx0aXBsZSBvZiAxMCwKKyAgICAgICAgLy8gdGhleSdyZSBmb3JtYXR0ZWQgd2l0aCB0aGUgMTAgcnVsZSAoY29udGFpbmluZyAidGhvdXNhbmQiKSwgYW5kIGlmCisgICAgICAgIC8vIHRoZXkncmUgbm90LCB0aGV5J3JlIGZvcm1hdHRlZCB3aXRoIHRoZSAxMSBydWxlIChjb250YWluaW5nCisgICAgICAgIC8vICJodW5kcmVkIikuICAlJWVtcHR5IGlzIGEgaGFjayB0byBjYXVzZSB0aGUgcm9sbGJhY2sgcnVsZSB0byBiZQorICAgICAgICAvLyBpbnZva2VkOiBpdCBtYWtlcyB0aGUgMTEgcnVsZSBoYXZlIHR3byBzdWJzdGl0dXRpb25zLCBldmVuIHRob3VnaAorICAgICAgICAvLyB0aGUgc2Vjb25kIHN1YnN0aXR1dGlvbiAoY2FsbGluZyAlJWVtcHR5KSBkb2Vzbid0IGFjdHVhbGx5IGRvCisgICAgICAgIC8vIGFueXRoaW5nLgorICAgICAgICArICIlJWFsdC1odW5kcmVkczpcbiIKKyAgICAgICAgKyAiICAgIDA6IFNIT1VMRCBORVZFUiBHRVQgSEVSRSE7XG4iCisgICAgICAgICsgIiAgICAxMDogPCVzaW1wbGlmaWVkPCB0aG91c2FuZDtcbiIKKyAgICAgICAgKyAiICAgIDExOiA9JXNpbXBsaWZpZWQ9IGh1bmRyZWQ+JSVlbXB0eT47XG4iCisgICAgICAgICsgIiUlZW1wdHk6XG4iCisgICAgICAgICsgIiAgICAwOjsiCisKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCBpcyB0aGUgc2FtZSBhcyAlc2ltcGxpZmllZCwgZXhjZXB0IHRoYXQgaXQgZm9ybWF0cworICAgICAgICAvLyB0aGUgdmFsdWUgYXMgYW4gb3JkaW5hbCBudW1iZXI6IDIzNCBpcyBmb3JtYXR0ZWQgYXMgInR3byBodW5kcmVkCisgICAgICAgIC8vIHRoaXJ0eS1mb3VydGgiLiAgTm90aWNlIHRoZSBjYWxscyB0byBec2ltcGxpZmllZDogd2UgaGF2ZSB0bworICAgICAgICAvLyBjYWxsICVzaW1wbGlmaWVkIHRvIGF2b2lkIGdldHRpbmcgInNlY29uZCBodW5kcmVkIHRoaXJ0eS1mb3VydGguIgorICAgICAgICArICIlb3JkaW5hbDpcbiIKKyAgICAgICAgKyAiICAgIHplcm90aDsgZmlyc3Q7IHNlY29uZDsgdGhpcmQ7IGZvdXJ0aDsgZmlmdGg7IHNpeHRoOyBzZXZlbnRoO1xuIgorICAgICAgICArICIgICAgICAgIGVpZ2h0aDsgbmludGg7XG4iCisgICAgICAgICsgIiAgICB0ZW50aDsgZWxldmVudGg7IHR3ZWxmdGg7IHRoaXJ0ZWVudGg7IGZvdXJ0ZWVudGg7XG4iCisgICAgICAgICsgIiAgICAgICAgZmlmdGVlbnRoOyBzaXh0ZWVudGg7IHNldmVudGVlbnRoOyBlaWdodGVlbnRoO1xuIgorICAgICAgICArICIgICAgICAgIG5pbmV0ZWVudGg7XG4iCisgICAgICAgICsgIiAgICB0d2VudGlldGg7IHR3ZW50eS0+PjtcbiIKKyAgICAgICAgKyAiICAgIDMwOiB0aGlydGlldGg7IHRoaXJ0eS0+PjtcbiIKKyAgICAgICAgKyAiICAgIDQwOiBmb3J0aWV0aDsgZm9ydHktPj47XG4iCisgICAgICAgICsgIiAgICA1MDogZmlmdGlldGg7IGZpZnR5LT4+O1xuIgorICAgICAgICArICIgICAgNjA6IHNpeHRpZXRoOyBzaXh0eS0+PjtcbiIKKyAgICAgICAgKyAiICAgIDcwOiBzZXZlbnRpZXRoOyBzZXZlbnR5LT4+O1xuIgorICAgICAgICArICIgICAgODA6IGVpZ2h0aWV0aDsgZWlnaHR5LT4+O1xuIgorICAgICAgICArICIgICAgOTA6IG5pbmV0aWV0aDsgbmluZXR5LT4+O1xuIgorICAgICAgICArICIgICAgMTAwOiA8JXNpbXBsaWZpZWQ8IGh1bmRyZWR0aDsgPCVzaW1wbGlmaWVkPCBodW5kcmVkID4+O1xuIgorICAgICAgICArICIgICAgMTAwMDogPCVzaW1wbGlmaWVkPCB0aG91c2FuZHRoOyA8JXNpbXBsaWZpZWQ8IHRob3VzYW5kID4+O1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwOiA8JXNpbXBsaWZpZWQ8IG1pbGxpb250aDsgPCVzaW1wbGlmaWVkPCBtaWxsaW9uID4+O1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMDogPCVzaW1wbGlmaWVkPCBiaWxsaW9udGg7XG4iCisgICAgICAgICsgIiAgICAgICAgPCVzaW1wbGlmaWVkPCBiaWxsaW9uID4+O1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMCwwMDA6IDwlc2ltcGxpZmllZDwgdHJpbGxpb250aDtcbiIKKyAgICAgICAgKyAiICAgICAgICA8JXNpbXBsaWZpZWQ8IHRyaWxsaW9uID4+O1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMCwwMDAsMDAwOiA9IywjIzA9OyIKKworICAgICAgICAvLyAlZGVmYXVsdCBpcyBhIG1vcmUgZWxhYm9yYXRlIGZvcm0gb2YgJXNpbXBsaWZpZWQ7ICBJdCBpcyBiYXNpY2FsbHkKKyAgICAgICAgLy8gdGhlIHNhbWUsIGV4Y2VwdCB0aGF0IGl0IGludHJvZHVjZXMgImFuZCIgYmVmb3JlIHRoZSBvbmVzIGRpZ2l0CisgICAgICAgIC8vIHdoZW4gYXBwcm9wcmlhdGUgKGJhc2ljYWxseSwgYmV0d2VlbiB0aGUgdGVucyBhbmQgb25lcyBkaWdpdHMpIGFuZAorICAgICAgICAvLyBzZXBhcmF0ZXMgdGhlIHRob3VzYW5kcyBncm91cHMgd2l0aCBjb21tYXMgaW4gdmFsdWVzIG92ZXIgMTAwLDAwMC4KKyAgICAgICAgKyAiJWRlZmF1bHQ6XG4iCisgICAgICAgICAgICAgICAvLyBuZWdhdGl2ZS1udW1iZXIgYW5kIGZyYWN0aW9uIHJ1bGVzLiAgVGhlc2UgYXJlIHRoZSBzYW1lCisgICAgICAgICAgICAgICAvLyBhcyB0aG9zZSBmb3IgJXNpbXBsaWZpZWQsIGJ1dCBhdmUgdG8gYmUgc3RhdGVkIGhlcmUgdG9vCisgICAgICAgICAgICAgICAvLyBiZWNhdXNlIHRoaXMgaXMgYW4gZW50cnkgcG9pbnQKKyAgICAgICAgKyAiICAgIC14OiBtaW51cyA+PjtcbiIKKyAgICAgICAgKyAiICAgIHgueDogPDwgcG9pbnQgPj47XG4iCisgICAgICAgICAgICAgICAvLyBqdXN0IHVzZSAlc2ltcGxpZmllZCBmb3IgdmFsdWVzIGJlbG93IDEwMAorICAgICAgICArICIgICAgPSVzaW1wbGlmaWVkPTtcbiIKKyAgICAgICAgICAgICAgIC8vIGZvciB2YWx1ZXMgZnJvbSAxMDAgdG8gOSw5OTkgdXNlICUlYW5kIHRvIGRlY2lkZSB3aGV0aGVyIG9yCisgICAgICAgICAgICAgICAvLyBub3QgdG8gaW50ZXJwb3NlIHRoZSAiYW5kIgorICAgICAgICArICIgICAgMTAwOiA8PCBodW5kcmVkWyA+JSVhbmQ+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDA6IDw8IHRob3VzYW5kWyA+JSVhbmQ+XTtcbiIKKyAgICAgICAgICAgICAgIC8vIGZvciB2YWx1ZXMgb2YgMTAwLDAwMCBhbmQgdXAsIHVzZSAlJWNvbW1hcyB0byBpbnRlcnBvc2UgdGhlCisgICAgICAgICAgICAgICAvLyBjb21tYXMgaW4gdGhlIHJpZ2h0IHBsYWNlcyAoYW5kIGFsc28gdG8gaW50ZXJwb3NlIHRoZSAiYW5kIikKKyAgICAgICAgKyAiICAgIDEwMCwwMDA+PjogPDwgdGhvdXNhbmRbPiUlY29tbWFzPl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDA6IDw8IG1pbGxpb25bPiUlY29tbWFzPl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwOiA8PCBiaWxsaW9uWz4lJWNvbW1hcz5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMCwwMDA6IDw8IHRyaWxsaW9uWz4lJWNvbW1hcz5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMCwwMDAsMDAwOiA9IywjIzA9O1xuIgorICAgICAgICAvLyBpZiB0aGUgdmFsdWUgcGFzc2VkIHRvIHRoaXMgcnVsZSBzZXQgaXMgZ3JlYXRlciB0aGFuIDEwMCwgZG9uJ3QKKyAgICAgICAgLy8gYWRkIHRoZSAiYW5kIjsgaWYgaXQncyBsZXNzIHRoYW4gMTAwLCBhZGQgImFuZCIgYmVmb3JlIHRoZSBsYXN0CisgICAgICAgIC8vIGRpZ2l0cworICAgICAgICArICIlJWFuZDpcbiIKKyAgICAgICAgKyAiICAgIGFuZCA9JWRlZmF1bHQ9O1xuIgorICAgICAgICArICIgICAgMTAwOiA9JWRlZmF1bHQ9O1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGlzIHVzZWQgdG8gcGxhY2UgdGhlIGNvbW1hcworICAgICAgICArICIlJWNvbW1hczpcbiIKKyAgICAgICAgICAgICAgIC8vIGZvciB2YWx1ZXMgYmVsb3cgMTAwLCBhZGQgImFuZCIgKHRoZSBhcG9zdHJvcGhlIGF0IHRoZQorICAgICAgICAgICAgICAgLy8gYmVnaW5uaW5nIGlzIGlnbm9yZWQsIGJ1dCBjYXVzZXMgdGhlIHNwYWNlIHRoYXQgZm9sbG93cyBpdAorICAgICAgICAgICAgICAgLy8gdG8gYmUgc2lnbmlmaWNhbnQ6IHRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgdGhlIHJ1bGVzCisgICAgICAgICAgICAgICAvLyBjYWxsaW5nICUlY29tbWFzIGRvbid0IHB1dCBhIHNwYWNlIGJlZm9yZSBpdCkKKyAgICAgICAgKyAiICAgICcgYW5kID0lZGVmYXVsdD07XG4iCisgICAgICAgICAgICAgICAvLyBwdXQgYSBjb21tYSBhZnRlciB0aGUgdGhvdXNhbmRzIChvciB3aGF0ZXZlciBwcmVjZWRlZCB0aGUKKyAgICAgICAgICAgICAgIC8vIGh1bmRyZWRzKQorICAgICAgICArICIgICAgMTAwOiAsID0lZGVmYXVsdD07XG4iCisgICAgICAgICAgICAgICAvLyBwdXQgYSBjb21tYSBhZnRlciB0aGUgbWlsbGlvbnMgKG9yIHdoYXRldmVyIHByZWNlZGVzIHRoZQorICAgICAgICAgICAgICAgLy8gdGhvdXNhbmRzKQorICAgICAgICArICIgICAgMTAwMDogLCA8JWRlZmF1bHQ8IHRob3VzYW5kLCA+JWRlZmF1bHQ+O1xuIgorICAgICAgICAgICAgICAgLy8gYW5kIHNvIG9uLi4uCisgICAgICAgICsgIiAgICAxLDAwMCwwMDA6ICwgPSVkZWZhdWx0PTsiCisgICAgICAgIC8vICUlbGVuaWVudC1wYXJzZSBpc24ndCByZWFsbHkgYSBzZXQgb2YgbnVtYmVyIGZvcm1hdHRpbmcgcnVsZXM7CisgICAgICAgIC8vIGl0J3MgYSBzZXQgb2YgY29sbGF0aW9uIHJ1bGVzLiAgTGVuaWVudC1wYXJzZSBtb2RlIHVzZXMgYSBDb2xsYXRvcgorICAgICAgICAvLyBvYmplY3QgdG8gY29tcGFyZSBmcmFnbWVudHMgb2YgdGhlIHRleHQgYmVpbmcgcGFyc2VkIHRvIHRoZSB0ZXh0CisgICAgICAgIC8vIGluIHRoZSBydWxlcywgYWxsb3dpbmcgbW9yZSBsZWV3YXkgaW4gdGhlIG1hdGNoaW5nIHRleHQuICBUaGlzIHNldAorICAgICAgICAvLyBvZiBydWxlcyB0ZWxscyB0aGUgZm9ybWF0dGVyIHRvIGlnbm9yZSBjb21tYXMgd2hlbiBwYXJzaW5nIChpdAorICAgICAgICAvLyBhbHJlYWR5IGlnbm9yZXMgc3BhY2VzLCB3aGljaCBpcyB3aHkgd2UgcmVmZXIgdG8gdGhlIHNwYWNlOyBpdCBhbHNvCisgICAgICAgIC8vIGlnbm9yZXMgaHlwaGVucywgbWFraW5nICJ0d2VudHkgb25lIiBhbmQgInR3ZW50eS1vbmUiIHBhcnNlCisgICAgICAgIC8vIGlkZW50aWNhbGx5KQorICAgICAgICArICIlJWxlbmllbnQtcGFyc2U6XG4iCisgICAgICAgICsgIiAgICAmICcgJyAsICcsJyA7XG4iOworCisgICAgLyoqCisgICAgICogU3BlbGxvdXQgcnVsZXMgZm9yIFUuSy4gRW5nbGlzaC4gIFUuSy4gRW5nbGlzaCBoYXMgb25lIHNpZ25pZmljYW50CisgICAgICogZGlmZmVyZW5jZSBmcm9tIFUuUy4gRW5nbGlzaDogdGhlIG5hbWVzIGZvciB2YWx1ZXMgb2YgMSwwMDAsMDAwLDAwMAorICAgICAqIGFuZCBoaWdoZXIuICBJbiBBbWVyaWNhbiBFbmdsaXNoLCBlYWNoIHN1Y2Nlc3NpdmUgIi1pbGxpb24iIGlzIDEsMDAwCisgICAgICogdGltZXMgZ3JlYXRlciB0aGFuIHRoZSBwcmVjZWRpbmcgb25lOiAxLDAwMCwwMDAsMDAwIGlzICJvbmUgYmlsbGlvbiIKKyAgICAgKiBhbmQgMSwwMDAsMDAwLDAwMCwwMDAgaXMgIm9uZSB0cmlsbGlvbi4iICBJbiBCcml0aXNoIEVuZ2xpc2gsIGVhY2gKKyAgICAgKiBzdWNjZXNzaXZlICItaWxsaW9uIiBpcyBvbmUgbWlsbGlvbiB0aW1lcyBncmVhdGVyIHRoYW4gdGhlIG9uZSBiZWZvcmU6CisgICAgICogIm9uZSBiaWxsaW9uIiBpcyAxLDAwMCwwMDAsMDAwLDAwMCAob3Igd2hhdCBBbWVyaWNhbnMgd291bGQgY2FsbCBhCisgICAgICogInRyaWxsaW9uIiksIGFuZCAib25lIHRyaWxsaW9uIiBpcyAxLDAwMCwwMDAsMDAwLDAwMCwwMDAsMDAwLgorICAgICAqIDEsMDAwLDAwMCwwMDAgaW4gQnJpdGlzaCBFbmdsaXNoIGlzICJvbmUgdGhvdXNhbmQgbWlsbGlvbi4iICAoVGhpcworICAgICAqIHZhbHVlIGlzIHNvbWV0aW1lcyBjYWxsZWQgYSAibWlsbGlhcmQsIiBidXQgdGhpcyB3b3JkIHNlZW1zIHRvIGhhdmUKKyAgICAgKiBmYWxsZW4gaW50byBkaXN1c2UuKQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIHVrRW5nbGlzaCA9CisgICAgICAgICIlc2ltcGxpZmllZDpcbiIKKyAgICAgICAgKyAiICAgIC14OiBtaW51cyA+PjtcbiIKKyAgICAgICAgKyAiICAgIHgueDogPDwgcG9pbnQgPj47XG4iCisgICAgICAgICsgIiAgICB6ZXJvOyBvbmU7IHR3bzsgdGhyZWU7IGZvdXI7IGZpdmU7IHNpeDsgc2V2ZW47IGVpZ2h0OyBuaW5lO1xuIgorICAgICAgICArICIgICAgdGVuOyBlbGV2ZW47IHR3ZWx2ZTsgdGhpcnRlZW47IGZvdXJ0ZWVuOyBmaWZ0ZWVuOyBzaXh0ZWVuO1xuIgorICAgICAgICArICIgICAgICAgIHNldmVudGVlbjsgZWlnaHRlZW47IG5pbmV0ZWVuO1xuIgorICAgICAgICArICIgICAgMjA6IHR3ZW50eVstPj5dO1xuIgorICAgICAgICArICIgICAgMzA6IHRoaXJ0eVstPj5dO1xuIgorICAgICAgICArICIgICAgNDA6IGZvcnR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA1MDogZmlmdHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDYwOiBzaXh0eVstPj5dO1xuIgorICAgICAgICArICIgICAgNzA6IHNldmVudHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDgwOiBlaWdodHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDkwOiBuaW5ldHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDogPDwgaHVuZHJlZFsgPj5dO1xuIgorICAgICAgICArICIgICAgMTAwMDogPDwgdGhvdXNhbmRbID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMDogPDwgbWlsbGlvblsgPj5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMCwwMDA6IDw8IGJpbGxpb25bID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwLDAwMDogPSMsIyMwPTtcbiIKKyAgICAgICAgKyAiJWFsdC10ZWVuczpcbiIKKyAgICAgICAgKyAiICAgID0lc2ltcGxpZmllZD07XG4iCisgICAgICAgICsgIiAgICAxMDAwPjogPCUlYWx0LWh1bmRyZWRzPFsgPj5dO1xuIgorICAgICAgICArICIgICAgMTAsMDAwOiA9JXNpbXBsaWZpZWQ9O1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwOiA8PCBtaWxsaW9uWyA+JXNpbXBsaWZpZWQ+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwOiA8PCBiaWxsaW9uWyA+JXNpbXBsaWZpZWQ+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwLDAwMDogPSMsIyMwPTtcbiIKKyAgICAgICAgKyAiJSVhbHQtaHVuZHJlZHM6XG4iCisgICAgICAgICsgIiAgICAwOiBTSE9VTEQgTkVWRVIgR0VUIEhFUkUhO1xuIgorICAgICAgICArICIgICAgMTA6IDwlc2ltcGxpZmllZDwgdGhvdXNhbmQ7XG4iCisgICAgICAgICsgIiAgICAxMTogPSVzaW1wbGlmaWVkPSBodW5kcmVkPiUlZW1wdHk+O1xuIgorICAgICAgICArICIlJWVtcHR5OlxuIgorICAgICAgICArICIgICAgMDo7IgorICAgICAgICArICIlb3JkaW5hbDpcbiIKKyAgICAgICAgKyAiICAgIHplcm90aDsgZmlyc3Q7IHNlY29uZDsgdGhpcmQ7IGZvdXJ0aDsgZmlmdGg7IHNpeHRoOyBzZXZlbnRoO1xuIgorICAgICAgICArICIgICAgICAgIGVpZ2h0aDsgbmludGg7XG4iCisgICAgICAgICsgIiAgICB0ZW50aDsgZWxldmVudGg7IHR3ZWxmdGg7IHRoaXJ0ZWVudGg7IGZvdXJ0ZWVudGg7XG4iCisgICAgICAgICsgIiAgICAgICAgZmlmdGVlbnRoOyBzaXh0ZWVudGg7IHNldmVudGVlbnRoOyBlaWdodGVlbnRoO1xuIgorICAgICAgICArICIgICAgICAgIG5pbmV0ZWVudGg7XG4iCisgICAgICAgICsgIiAgICB0d2VudGlldGg7IHR3ZW50eS0+PjtcbiIKKyAgICAgICAgKyAiICAgIDMwOiB0aGlydGlldGg7IHRoaXJ0eS0+PjtcbiIKKyAgICAgICAgKyAiICAgIDQwOiBmb3J0aWV0aDsgZm9ydHktPj47XG4iCisgICAgICAgICsgIiAgICA1MDogZmlmdGlldGg7IGZpZnR5LT4+O1xuIgorICAgICAgICArICIgICAgNjA6IHNpeHRpZXRoOyBzaXh0eS0+PjtcbiIKKyAgICAgICAgKyAiICAgIDcwOiBzZXZlbnRpZXRoOyBzZXZlbnR5LT4+O1xuIgorICAgICAgICArICIgICAgODA6IGVpZ2h0aWV0aDsgZWlnaHR5LT4+O1xuIgorICAgICAgICArICIgICAgOTA6IG5pbmV0aWV0aDsgbmluZXR5LT4+O1xuIgorICAgICAgICArICIgICAgMTAwOiA8JXNpbXBsaWZpZWQ8IGh1bmRyZWR0aDsgPCVzaW1wbGlmaWVkPCBodW5kcmVkID4+O1xuIgorICAgICAgICArICIgICAgMTAwMDogPCVzaW1wbGlmaWVkPCB0aG91c2FuZHRoOyA8JXNpbXBsaWZpZWQ8IHRob3VzYW5kID4+O1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwOiA8JXNpbXBsaWZpZWQ8IG1pbGxpb250aDsgPCVzaW1wbGlmaWVkPCBtaWxsaW9uID4+O1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMCwwMDA6IDwlc2ltcGxpZmllZDwgYmlsbGlvbnRoO1xuIgorICAgICAgICArICIgICAgICAgIDwlc2ltcGxpZmllZDwgYmlsbGlvbiA+PjtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwLDAwMDogPSMsIyMwPTsiCisgICAgICAgICsgIiVkZWZhdWx0OlxuIgorICAgICAgICArICIgICAgLXg6IG1pbnVzID4+O1xuIgorICAgICAgICArICIgICAgeC54OiA8PCBwb2ludCA+PjtcbiIKKyAgICAgICAgKyAiICAgID0lc2ltcGxpZmllZD07XG4iCisgICAgICAgICsgIiAgICAxMDA6IDw8IGh1bmRyZWRbID4lJWFuZD5dO1xuIgorICAgICAgICArICIgICAgMTAwMDogPDwgdGhvdXNhbmRbID4lJWFuZD5dO1xuIgorICAgICAgICArICIgICAgMTAwLDAwMD4+OiA8PCB0aG91c2FuZFs+JSVjb21tYXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMDogPDwgbWlsbGlvbls+JSVjb21tYXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwOiA8PCBiaWxsaW9uWz4lJWNvbW1hcz5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMCwwMDAsMDAwOiA9IywjIzA9O1xuIgorICAgICAgICArICIlJWFuZDpcbiIKKyAgICAgICAgKyAiICAgIGFuZCA9JWRlZmF1bHQ9O1xuIgorICAgICAgICArICIgICAgMTAwOiA9JWRlZmF1bHQ9O1xuIgorICAgICAgICArICIlJWNvbW1hczpcbiIKKyAgICAgICAgKyAiICAgICcgYW5kID0lZGVmYXVsdD07XG4iCisgICAgICAgICsgIiAgICAxMDA6ICwgPSVkZWZhdWx0PTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDA6ICwgPCVkZWZhdWx0PCB0aG91c2FuZCwgPiVkZWZhdWx0PjtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMDogLCA9JWRlZmF1bHQ9OyIKKyAgICAgICAgKyAiJSVsZW5pZW50LXBhcnNlOlxuIgorICAgICAgICArICIgICAgJiAnICcgLCAnLCcgO1xuIjsKKyAgICAvLyBDb3VsZCBzb21lb25lIHBsZWFzZSBjb3JyZWN0IG1lIGlmIEknbSB3cm9uZyBhYm91dCAibWlsbGlhcmQiIGZhbGxpbmcKKyAgICAvLyBpbnRvIGRpc3VzZSwgb3IgaGF2ZSBtaXNzZWQgYW55IG90aGVyIGRldGFpbHMgb2YgaG93IGxhcmdlIG51bWJlcnMKKyAgICAvLyBhcmUgcmVuZGVyZWQuICBBbHNvLCBjb3VsZCBzb21lb25lIHBsZWFzZSBwcm92aWRlIG1lIHdpdGggaW5mb3JtYXRpb24KKyAgICAvLyBvbiB3aGljaCBvdGhlciBFbmdsaXNoLXNwZWFraW5nIGNvdW50cmllcyB1c2Ugd2hpY2ggc3lzdGVtPyAgUmlnaHQgbm93LAorICAgIC8vIEknbSBhc3N1bWluZyB0aGF0IHRoZSBVLlMuIHN5c3RlbSBpcyB1c2VkIGluIENhbmFkYSBhbmQgdGhhdCBhbGwgdGhlCisgICAgLy8gb3RoZXIgRW5nbGlzaC1zcGVha2luZyBjb3VudHJpZXMgZm9sbG93IHRoZSBCcml0aXNoIHN5c3RlbS4gIENhbgorICAgIC8vIHNvbWVvbmUgb3V0IHRoZXJlIGNvbmZpcm0gdGhpcz8KKworICAgIC8qKgorICAgICAqIFNwZWxsb3V0IHJ1bGVzIGZvciBTcGFuaXNoLiAgVGhlIFNwYW5pc2ggcnVsZXMgYXJlIHF1aXRlIHNpbWlsYXIgdG8KKyAgICAgKiB0aGUgRW5nbGlzaCBydWxlcywgYnV0IHRoZXJlIGFyZSBzb21lIGltcG9ydGFudCBkaWZmZXJlbmNlczoKKyAgICAgKiBGaXJzdCwgd2UgaGF2ZSB0byBwcm92aWRlIHNlcGFyYXRlIHJ1bGVzIGZvciBtb3N0IG9mIHRoZSB0d2VudGllcworICAgICAqIGJlY2F1c2UgdGhlIG9uZXMgZGlnaXQgZnJlcXVlbnRseSBwaWNrcyB1cCBhbiBhY2NlbnQgbWFyayB0aGF0IGl0CisgICAgICogZG9lc24ndCBoYXZlIHdoZW4gc3RhbmRpbmcgYWxvbmUuICBTZWNvbmQsIGVhY2ggbXVsdGlwbGUgb2YgMTAwIGhhcworICAgICAqIHRvIGJlIHNwZWNpZmllZCBzZXBhcmF0ZWx5IGJlY2F1c2UgdGhlIG11bHRpcGxpZXIgb24gMTAwIHZlcnkgb2Z0ZW4KKyAgICAgKiBjaGFuZ2VzIGZvcm0gaW4gdGhlIGNvbnRyYWN0aW9uOiA1MDAgaXMgInF1aW5pZW50b3MsIiBub3QKKyAgICAgKiAiY2luY29jaWVudG9zLiIgIEluIGFkZGl0aW9uLCB0aGUgd29yZCBmb3IgMTAwIGlzICJjaWVuIiB3aGVuCisgICAgICogc3RhbmRpbmcgYWxvbmUsIGJ1dCBjaGFuZ2VzIHRvICJjaWVudG8iIHdoZW4gZm9sbG93ZWQgYnkgbW9yZSBkaWdpdHMuCisgICAgICogVGhlcmUgYWxzbyBzb21lIG90aGVyIGRpZmZlcmVuY2VzLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIHNwYW5pc2ggPQorICAgICAgICAvLyBuZWdhdGl2ZS1udW1iZXIgYW5kIGZyYWN0aW9uIHJ1bGVzCisgICAgICAgICIteDogbWVub3MgPj47XG4iCisgICAgICAgICsgIngueDogPDwgcHVudG8gPj47XG4iCisgICAgICAgIC8vIHdvcmRzIGZvciB2YWx1ZXMgZnJvbSAwIHRvIDE5CisgICAgICAgICsgImNlcm87IHVubzsgZG9zOyB0cmVzOyBjdWF0cm87IGNpbmNvOyBzZWlzOyBzaWV0ZTsgb2NobzsgbnVldmU7XG4iCisgICAgICAgICsgImRpZXo7IG9uY2U7IGRvY2U7IHRyZWNlOyBjYXRvcmNlOyBxdWluY2U7IGRpZWNpc1x1MDBlOWlzO1xuIgorICAgICAgICArICIgICAgZGllY2lzaWV0ZTsgZGllY2lvY2hvOyBkaWVjaW51ZXZlO1xuIgorICAgICAgICAvLyB3b3JkcyBmb3IgdmFsdWVzIGZyb20gMjAgdG8gMjkgKG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBvbmVzIGRpZ2l0CisgICAgICAgIC8vIG9mdGVuIHBpY2tzIHVwIGFuIGFjY2VudCBtYXJrIGl0IGRvZXNuJ3QgaGF2ZSB3aGVuIHN0YW5kaW5nIGFsb25lKQorICAgICAgICArICJ2ZWludGU7IHZlaW50aXVubzsgdmVpbnRpZFx1MDBmM3M7IHZlaW50aXRyXHUwMGU5czsgdmVpbnRpY3VhdHJvO1xuIgorICAgICAgICArICIgICAgdmVpbnRpY2luY287IHZlaW50aXNcdTAwZTlpczsgdmVpbnRpc2lldGU7IHZlaW50aW9jaG87XG4iCisgICAgICAgICsgIiAgICB2ZWludGludWV2ZTtcbiIKKyAgICAgICAgLy8gd29yZHMgZm9yIG11bHRpcGxlcyBvZiAxMCAobm90aWNlIHRoYXQgdGhlIHRlbnMgZGlnaXQgaXMgc2VwYXJhdGVkCisgICAgICAgIC8vIGZyb20gdGhlIG9uZXMgZGlnaXQgYnkgdGhlIHdvcmQgInkiLikKKyAgICAgICAgKyAiMzA6IHRyZWludGFbIHkgPj5dO1xuIgorICAgICAgICArICI0MDogY3VhcmVudGFbIHkgPj5dO1xuIgorICAgICAgICArICI1MDogY2luY3VlbnRhWyB5ID4+XTtcbiIKKyAgICAgICAgKyAiNjA6IHNlc2VudGFbIHkgPj5dO1xuIgorICAgICAgICArICI3MDogc2V0ZW50YVsgeSA+Pl07XG4iCisgICAgICAgICsgIjgwOiBvY2hlbnRhWyB5ID4+XTtcbiIKKyAgICAgICAgKyAiOTA6IG5vdmVudGFbIHkgPj5dO1xuIgorICAgICAgICAvLyAxMDAgYnkgaXRzZWxmIGlzICJjaWVuLCIgYnV0IDEwMCBmb2xsb3dlZCBieSBzb21ldGhpbmcgaXMgImNpbmV0byIKKyAgICAgICAgKyAiMTAwOiBjaWVuO1xuIgorICAgICAgICArICIxMDE6IGNpZW50byA+PjtcbiIKKyAgICAgICAgLy8gd29yZHMgZm9yIG11bHRpcGxlcyBvZiAxMDAgKG11c3QgYmUgc3RhdGVkIGJlY2F1c2UgdGhleSdyZQorICAgICAgICAvLyByYXJlbHkgc2ltcGxlIGNvbmNhdGVuYXRpb25zKQorICAgICAgICArICIyMDA6IGRvc2NpZW50b3NbID4+XTtcbiIKKyAgICAgICAgKyAiMzAwOiB0cmVzY2llbnRvc1sgPj5dO1xuIgorICAgICAgICArICI0MDA6IGN1YXRyb2NpZW50b3NbID4+XTtcbiIKKyAgICAgICAgKyAiNTAwOiBxdWluaWVudG9zWyA+Pl07XG4iCisgICAgICAgICsgIjYwMDogc2Vpc2NpZW50b3NbID4+XTtcbiIKKyAgICAgICAgKyAiNzAwOiBzZXRlY2llbnRvc1sgPj5dO1xuIgorICAgICAgICArICI4MDA6IG9jaG9jaWVudG9zWyA+Pl07XG4iCisgICAgICAgICsgIjkwMDogbm92ZWNpZW50b3NbID4+XTtcbiIKKyAgICAgICAgLy8gZm9yIDEsMDAwLCB0aGUgbXVsdGlwbGllciBvbiAibWlsIiBpcyBvbWl0dGVkOiAyLDAwMCBpcyAiZG9zIG1pbCwiCisgICAgICAgIC8vIGJ1dCAxLDAwMCBpcyBqdXN0ICJtaWwuIgorICAgICAgICArICIxMDAwOiBtaWxbID4+XTtcbiIKKyAgICAgICAgKyAiMjAwMDogPDwgbWlsWyA+Pl07XG4iCisgICAgICAgIC8vIDEsMDAwLDAwMCBpcyAidW4gbWlsbG9uLCIgbm90ICJ1bm8gbWlsbG9uIgorICAgICAgICArICIxLDAwMCwwMDA6IHVuIG1pbGxcdTAwZjNuWyA+Pl07XG4iCisgICAgICAgICsgIjIsMDAwLDAwMDogPDwgbWlsbFx1MDBmM25bID4+XTtcbiIKKyAgICAgICAgLy8gb3ZlcmZsb3cgcnVsZQorICAgICAgICArICIxLDAwMCwwMDAsMDAwOiA9IywjIzA9IChpbmNvbXBsZXRlIGRhdGEpOyI7CisgICAgLy8gVGhlIFNwYW5pc2ggcnVsZXMgYXJlIGluY29tcGxldGUuICBJJ20gbWlzc2luZyBpbmZvcm1hdGlvbiBvbiBuZWdhdGl2ZQorICAgIC8vIG51bWJlcnMgYW5kIG51bWJlcnMgd2l0aCBmcmFjdGlvbmFsIHBhcnRzLiAgSSBhbHNvIGRvbid0IGhhdmUKKyAgICAvLyBpbmZvcm1hdGlvbiBvbiBudW1iZXJzIGhpZ2hlciB0aGFuIHRoZSBtaWxsaW9ucworCisgICAgLyoqCisgICAgICogU3BlbGxvdXQgcnVsZXMgZm9yIEZyZW5jaC4gIEZyZW5jaCBhZGRzIHNvbWUgaW50ZXJlc3RpbmcgcXVpcmtzIG9mIGl0cworICAgICAqIG93bjogMSkgVGhlIHdvcmQgImV0IiBpcyBpbnRlcnBvc2VkIGJldHdlZW4gdGhlIHRlbnMgYW5kIG9uZXMgZGlnaXRzLAorICAgICAqIGJ1dCBvbmx5IGlmIHRoZSBvbmVzIGRpZ2l0IGlmIDE6IDIwIGlzICJ2aW5ndCwiIGFuZCAyIGlzICJ2aW5ndC1kZXV4LCIKKyAgICAgKiBidXQgMjEgaXMgInZpbmd0LWV0LXVuLiIgIDIpICBUaGVyZSBhcmUgbm8gd29yZHMgZm9yIDcwLCA4MCwgb3IgOTAuCisgICAgICogInF1YXRyZS12aW5ndHMiICgiZm91ciB0d2VudGllcyIpIGlzIHVzZWQgZm9yIDgwLCBhbmQgdmFsdWVzIHByb2NlZWQKKyAgICAgKiBieSBzY29yZSBmcm9tIDYwIHRvIDk5IChlLmcuLCA3MyBpcyAic29peGFudGUtdHJlaXplIiBbInNpeHR5LXRoaXJ0ZWVuIl0pLgorICAgICAqIE51bWJlcnMgZnJvbSAxLDEwMCB0byAxLDE5OSBhcmUgcmVuZGVyZWQgYXMgaHVuZHJlZHMgcmF0aGVyIHRoYW4KKyAgICAgKiB0aG91c2FuZHM6IDEsMTAwIGlzICJvbnplIGNlbnRzIiAoImVsZXZlbiBodW5kcmVkIiksIHJhdGhlciB0aGFuCisgICAgICogIm1pbGxlIGNlbnQiICgib25lIHRob3VzYW5kIG9uZSBodW5kcmVkIikKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBmcmVuY2ggPQorICAgICAgICAvLyB0aGUgbWFpbiBydWxlIHNldAorICAgICAgICAiJW1haW46XG4iCisgICAgICAgICAgICAgICAvLyBuZWdhdGl2ZS1udW1iZXIgYW5kIGZyYWN0aW9uIHJ1bGVzCisgICAgICAgICsgIiAgICAteDogbW9pbnMgPj47XG4iCisgICAgICAgICsgIiAgICB4Lng6IDw8IHZpcmd1bGUgPj47XG4iCisgICAgICAgICAgICAgICAvLyB3b3JkcyBmb3IgbnVtYmVycyBmcm9tIDAgdG8gMTAKKyAgICAgICAgKyAiICAgIHpcdTAwZTlybzsgdW47IGRldXg7IHRyb2lzOyBxdWF0cmU7IGNpbnE7IHNpeDsgc2VwdDsgaHVpdDsgbmV1ZjtcbiIKKyAgICAgICAgKyAiICAgIGRpeDsgb256ZTsgZG91emU7IHRyZWl6ZTsgcXVhdG9yemU7IHF1aW56ZTsgc2VpemU7XG4iCisgICAgICAgICsgIiAgICAgICAgZGl4LXNlcHQ7IGRpeC1odWl0OyBkaXgtbmV1ZjtcbiIKKyAgICAgICAgICAgICAgIC8vIG9yZHMgZm9yIHRoZSBtdWx0aXBsZXMgb2YgMTA6ICUlYWx0LW9uZXMgaW5zZXJ0cyAiZXQiCisgICAgICAgICAgICAgICAvLyB3aGVuIG5lZWRlZAorICAgICAgICArICIgICAgMjA6IHZpbmd0Wy0+JSVhbHQtb25lcz5dO1xuIgorICAgICAgICArICIgICAgMzA6IHRyZW50ZVstPiUlYWx0LW9uZXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDQwOiBxdWFyYW50ZVstPiUlYWx0LW9uZXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDUwOiBjaW5xdWFudGVbLT4lJWFsdC1vbmVzPl07XG4iCisgICAgICAgICAgICAgICAvLyBydWxlIGZvciA2MC4gIFRoZSAvMjAgY2F1c2VzIHRoaXMgcnVsZSdzIG11bHRpcGxpZXIgdG8gYmUKKyAgICAgICAgICAgICAgIC8vIDIwIHJhdGhlciB0aGFuIDEwLCBhbGxvd2luaGcgdXMgdG8gcmVjdXJzZSBmb3IgYWxsIHZhbHVlcworICAgICAgICAgICAgICAgLy8gZnJvbSA2MCB0byA3OS4uLgorICAgICAgICArICIgICAgNjAvMjA6IHNvaXhhbnRlWy0+JSVhbHQtb25lcz5dO1xuIgorICAgICAgICAgICAgICAgLy8gLi4uZXhjZXB0IGZvciA3MSwgd2hpY2ggbXVzdCBiZSBzcGVjaWFsLWNhc2VkCisgICAgICAgICsgIiAgICA3MTogc29peGFudGUgZXQgb256ZTtcbiIKKyAgICAgICAgICAgICAgIC8vIGF0IDcyLCB3ZSBoYXZlIHRvIHJlcGVhdCB0aGUgcnVsZSBmb3IgNjAgdG8gZ2V0IHVzIHRvIDc5CisgICAgICAgICsgIiAgICA3Mi8yMDogc29peGFudGUtPiUlYWx0LW9uZXM+O1xuIgorICAgICAgICAgICAgICAgLy8gYXQgODAsIHdlIHN0YXRlIGEgbmV3IHJ1bGUgd2l0aCB0aGUgcGhyYXNlIGZvciA4MC4gIFNpbmNlCisgICAgICAgICAgICAgICAvLyBpdCBjaGFuZ2VzIGZvcm0gd2hlbiB0aGVyZSdzIGEgb25lcyBkaWdpdCwgd2UgbmVlZCBhIHNlY29uZAorICAgICAgICAgICAgICAgLy8gcnVsZSBhdCA4MS4gIFRoaXMgcnVsZSBhbHNvIGluY2x1ZGVzICIvMjAsIiBhbGxvd2luZyBpdCB0bworICAgICAgICAgICAgICAgLy8gYmUgdXNlZCBjb3JyZWN0bHkgZm9yIGFsbCB2YWx1ZXMgdXAgdG8gOTkKKyAgICAgICAgKyAiICAgIDgwOiBxdWF0cmUtdmluZ3RzOyA4MS8yMDogcXVhdHJlLXZpbmd0LT4+O1xuIgorICAgICAgICAgICAgICAgLy8gImNlbnQiIGJlY29tZXMgcGx1cmFsIHdoZW4gcHJlY2VkZWQgYnkgYSBtdWx0aXBsaWVyLCBhbmQKKyAgICAgICAgICAgICAgIC8vIHRoZSBtdWx0aXBsaWVyIGlzIG9taXR0ZWQgZnJvbSB0aGUgc2luZ3VsYXIgZm9ybQorICAgICAgICArICIgICAgMTAwOiBjZW50WyA+Pl07XG4iCisgICAgICAgICsgIiAgICAyMDA6IDw8IGNlbnRzWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxMDAwOiBtaWxsZVsgPj5dO1xuIgorICAgICAgICAgICAgICAgLy8gdmFsdWVzIGZyb20gMSwxMDAgdG8gMSwxOTkgYXJlIHJlbmRlcmVkIGFzICJvbnplIGNlbnRzLi4uIgorICAgICAgICAgICAgICAgLy8gaW5zdGVhZCBvZiAibWlsbGUgY2VudC4uLiIgIFRoZSA+IGFmdGVyICIxMDAwIiBkZWNyZWFzZXMKKyAgICAgICAgICAgICAgIC8vIHRoZSBydWxlJ3MgZXhwb25lbnQsIGNhdXNpbmcgaXRzIG11bHRpcGxpZXIgdG8gYmUgMTAwIGluc3RlYWQKKyAgICAgICAgICAgICAgIC8vIG9mIDEsMDAwLiAgVGhpcyBwcmV2ZW50cyB1cyBmcm9tIGdldHRpbmcgIm9uemUgY2VudHMgY2VudAorICAgICAgICAgICAgICAgLy8gdmluZ3QtZGV1eCIgKCJlbGV2ZW4gaHVuZHJlZCBvbmUgaHVuZHJlZCB0d2VudHktdHdvIikuCisgICAgICAgICsgIiAgICAxMTAwPjogb256ZSBjZW50c1sgPj5dO1xuIgorICAgICAgICAgICAgICAgLy8gYXQgMSwyMDAsIHdlIGdvIGJhY2sgdG8gZm9ybWF0aW5nIGluIHRob3VzYW5kcywgc28gd2UKKyAgICAgICAgICAgICAgIC8vIHJlcGVhdCB0aGUgcnVsZSBmb3IgMSwwMDAKKyAgICAgICAgKyAiICAgIDEyMDA6IG1pbGxlID4+O1xuIgorICAgICAgICAgICAgICAgLy8gYXQgMiwwMDAsIHRoZSBtdWx0aXBsaWVyIGlzIGFkZGVkCisgICAgICAgICsgIiAgICAyMDAwOiA8PCBtaWxsZVsgPj5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwOiA8PCBtaWxsaW9uWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwOiA8PCBtaWxsaWFyZGVbID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwOiA8PCBiaWxsaW9uWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07XG4iCisgICAgICAgIC8vICUlYWx0LW9uZXMgaXMgdXNlZCB0byBpbnNlcnQgImV0IiB3aGVuIHRoZSBvbmVzIGRpZ2l0IGlzIDEKKyAgICAgICAgKyAiJSVhbHQtb25lczpcbiIKKyAgICAgICAgKyAiICAgIDsgZXQtdW47ID0lbWFpbj07IjsKKworICAgIC8qKgorICAgICAqIFNwZWxsb3V0IHJ1bGVzIGZvciBTd2lzcyBGcmVuY2guICBTd2lzcyBGcmVuY2ggZGlmZmVycyBmcm9tIEZyZW5jaCBGcmVuY2gKKyAgICAgKiBpbiB0aGF0IGl0IGRvZXMgaGF2ZSB3b3JkcyBmb3IgNzAsIDgwLCBhbmQgOTAuICBUaGlzIHJ1bGUgc2V0IHNob3dzIHRoZW0sCisgICAgICogYW5kIGlzIHNpbXBsZXIgYXMgYSByZXN1bHQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgc3dpc3NGcmVuY2ggPQorICAgICAgICAiJW1haW46XG4iCisgICAgICAgICsgIiAgICAteDogbW9pbnMgPj47XG4iCisgICAgICAgICsgIiAgICB4Lng6IDw8IHZpcmd1bGUgPj47XG4iCisgICAgICAgICsgIiAgICB6XHUwMGU5cm87IHVuOyBkZXV4OyB0cm9pczsgcXVhdHJlOyBjaW5xOyBzaXg7IHNlcHQ7IGh1aXQ7IG5ldWY7XG4iCisgICAgICAgICsgIiAgICBkaXg7IG9uemU7IGRvdXplOyB0cmVpemU7IHF1YXRvcnplOyBxdWluemU7IHNlaXplO1xuIgorICAgICAgICArICIgICAgICAgIGRpeC1zZXB0OyBkaXgtaHVpdDsgZGl4LW5ldWY7XG4iCisgICAgICAgICsgIiAgICAyMDogdmluZ3RbLT4lJWFsdC1vbmVzPl07XG4iCisgICAgICAgICsgIiAgICAzMDogdHJlbnRlWy0+JSVhbHQtb25lcz5dO1xuIgorICAgICAgICArICIgICAgNDA6IHF1YXJhbnRlWy0+JSVhbHQtb25lcz5dO1xuIgorICAgICAgICArICIgICAgNTA6IGNpbnF1YW50ZVstPiUlYWx0LW9uZXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDYwOiBzb2l4YW50ZVstPiUlYWx0LW9uZXM+XTtcbiIKKyAgICAgICAgICAgICAgIC8vIG5vdGljZSBuZXcgd29yZHMgZm9yIDcwLCA4MCwgYW5kIDkwCisgICAgICAgICsgIiAgICA3MDogc2VwdGFudGVbLT4lJWFsdC1vbmVzPl07XG4iCisgICAgICAgICsgIiAgICA4MDogb2N0YW50ZVstPiUlYWx0LW9uZXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDkwOiBub25hbnRlWy0+JSVhbHQtb25lcz5dO1xuIgorICAgICAgICArICIgICAgMTAwOiBjZW50WyA+Pl07XG4iCisgICAgICAgICsgIiAgICAyMDA6IDw8IGNlbnRzWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxMDAwOiBtaWxsZVsgPj5dO1xuIgorICAgICAgICArICIgICAgMTEwMD46IG9uemUgY2VudHNbID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEyMDA6IG1pbGxlID4+O1xuIgorICAgICAgICArICIgICAgMjAwMDogPDwgbWlsbGVbID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMDogPDwgbWlsbGlvblsgPj5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMDogPDwgbWlsbGlhcmRlWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMDogPDwgYmlsbGlvblsgPj5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMCwwMDAsMDAwOiA9IywjIzA9O1xuIgorICAgICAgICArICIlJWFsdC1vbmVzOlxuIgorICAgICAgICArICIgICAgOyBldC11bjsgPSVtYWluPTsiOworICAgIC8vIEknbSBub3QgMTAwJSBzdXJlIGFib3V0IFN3aXNzIEZyZW5jaC4gIElzCisgICAgLy8gdGhpcyBjb3JyZWN0PyAgSXMgIm9uemUgY2VudHMiIGNvbW1vbmx5IHVzZWQgZm9yIDEsMTAwIGluIGJvdGggRnJhbmNlCisgICAgLy8gYW5kIFN3aXR6ZXJsYW5kPyAgQ2FuIHNvbWVvbmUgZmlsbCBtZSBpbiBvbiB0aGUgcnVsZXMgZm9yIHRoZSBvdGhlcgorICAgIC8vIEZyZW5jaC1zcGVha2luZyBjb3VudHJpZXM/ICBJJ3ZlIGhlYXJkIGNvbmZsaWN0aW5nIG9waW5pb25zIG9uIHdoaWNoCisgICAgLy8gdmVyc2lvbiBpcyB1c2VkIGluIENhbmFkYSwgYW5kIEkgdW5kZXJzdGFuZCB0aGVyZSdzIGFuIGFsdGVybmF0ZSBzZXQKKyAgICAvLyBvZiB3b3JkcyBmb3IgNzAsIDgwLCBhbmQgOTAgdGhhdCBpcyB1c2VkIHNvbWV3aGVyZSwgYnV0IEkgZG9uJ3Qga25vdworICAgIC8vIHdoYXQgdGhvc2Ugd29yZHMgYXJlIG9yIHdoZXJlIHRoZXkncmUgdXNlZC4KKworICAgIC8qKgorICAgICAqIFNwZWxsb3V0IHJ1bGVzIGZvciBHZXJtYW4uICBHZXJtYW4gYWxzbyBhZGRzIHNvbWUgaW50ZXJlc3RpbmcKKyAgICAgKiBjaGFyYWN0ZXJpc3RpY3MuICBGb3IgdmFsdWVzIGJlbG93IDEsMDAwLDAwMCwgbnVtYmVycyBhcmUgY3VzdG9tYXJpbHkKKyAgICAgKiB3cml0dGVuIG91dCBhcyBhIHNpbmdsZSB3b3JkLiAgQW5kIHRoZSBvbmVzIGRpZ2l0IFBSRUNFREVTIHRoZSB0ZW5zCisgICAgICogZGlnaXQgKGUuZy4sIDIzIGlzICJkcmVpdW5kendhbnppZywiIG5vdCAiendhbnppZ3VuZGRyZWkiKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBnZXJtYW4gPQorICAgICAgICAvLyAxIGlzICJlaW5zIiB3aGVuIGJ5IGl0c2VsZiwgYnV0IHR1cm5zIGludG8gImVpbiIgaW4gbW9zdAorICAgICAgICAvLyBjb21iaW5hdGlvbnMKKyAgICAgICAgIiVhbHQtb25lczpcbiIKKyAgICAgICAgKyAiICAgIG51bGw7IGVpbnM7ID0lJW1haW49O1xuIgorICAgICAgICArICIlJW1haW46XG4iCisgICAgICAgICAgICAgICAvLyB3b3JkcyBmb3IgbnVtYmVycyBmcm9tIDAgdG8gMTIuICBOb3RpY2UgdGhhdCB0aGUgdmFsdWVzCisgICAgICAgICAgICAgICAvLyBmcm9tIDEzIHRvIDE5IGNhbiBkZXJpdmVkIGFsZ29yaXRobWljYWxseSwgdW5saWtlIGluIG1vc3QKKyAgICAgICAgICAgICAgIC8vIG90aGVyIGxhbmd1YWdlcworICAgICAgICArICIgICAgbnVsbDsgZWluOyB6d2VpOyBkcmVpOyB2aWVyOyBmXHUwMGZjbmY7IHNlY2hzOyBzaWViZW47IGFjaHQ7IG5ldW47XG4iCisgICAgICAgICsgIiAgICB6ZWhuOyBlbGY7IHp3XHUwMGY2bGY7ID4+emVobjtcbiIKKyAgICAgICAgICAgICAgIC8vIHJ1bGVzIGZvciB0aGUgbXVsdGlwbGVzIG9mIDEwLiAgTm90aWNlIHRoYXQgdGhlIG9uZXMgZGlnaXQKKyAgICAgICAgICAgICAgIC8vIGdvZXMgb24gdGhlIGZyb250CisgICAgICAgICsgIiAgICAyMDogWz4+dW5kXXp3YW56aWc7XG4iCisgICAgICAgICsgIiAgICAzMDogWz4+dW5kXWRyZWlcdTAwZGZpZztcbiIKKyAgICAgICAgKyAiICAgIDQwOiBbPj51bmRddmllcnppZztcbiIKKyAgICAgICAgKyAiICAgIDUwOiBbPj51bmRdZlx1MDBmY25memlnO1xuIgorICAgICAgICArICIgICAgNjA6IFs+PnVuZF1zZWNoemlnO1xuIgorICAgICAgICArICIgICAgNzA6IFs+PnVuZF1zaWViemlnO1xuIgorICAgICAgICArICIgICAgODA6IFs+PnVuZF1hY2h0emlnO1xuIgorICAgICAgICArICIgICAgOTA6IFs+PnVuZF1uZXVuemlnO1xuIgorICAgICAgICArICIgICAgMTAwOiBodW5kZXJ0Wz4lYWx0LW9uZXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDIwMDogPDxodW5kZXJ0Wz4lYWx0LW9uZXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDA6IHRhdXNlbmRbPiVhbHQtb25lcz5dO1xuIgorICAgICAgICArICIgICAgMjAwMDogPDx0YXVzZW5kWz4lYWx0LW9uZXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMDogZWluZSBNaWxsaW9uWyA+JWFsdC1vbmVzPl07XG4iCisgICAgICAgICsgIiAgICAyLDAwMCwwMDA6IDw8IE1pbGxpb25lblsgPiVhbHQtb25lcz5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMDogZWluZSBNaWxsaWFyZGVbID4lYWx0LW9uZXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDIsMDAwLDAwMCwwMDA6IDw8IE1pbGxpYXJkZW5bID4lYWx0LW9uZXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwOiBlaW5lIEJpbGxpb25bID4lYWx0LW9uZXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDIsMDAwLDAwMCwwMDAsMDAwOiA8PCBCaWxsaW9uZW5bID4lYWx0LW9uZXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwLDAwMDogPSMsIyMwPTsiOworICAgIC8vIGFnYWluLCBJJ20gbm90IDEwMCUgc3VyZSBvZiB0aGVzZSBydWxlcy4gIEkgdGhpbmsgYm90aCAiaHVuZGVydCIgYW5kCisgICAgLy8gImVpbmh1bmRlcnQiIGFyZSBjb3JyZWN0IG9yIDEwMCwgYnV0IEknbSBub3Qgc3VyZSB3aGljaCBpcyBwcmVmZXJhYmxlCisgICAgLy8gaW4gc2l0dWF0aW9ucyB3aGVyZSB0aGlzIGZyYW1ld29yayBpcyBsaWtlbHkgdG8gYmUgdXNlZC4gIEFsc28sIGlzIGl0CisgICAgLy8gcmVhbGx5IHRydWUgdGhhdCBudW1iZXJzIGFyZSBydW4gdG9nZXRoZXIgaW50byBjb21wb3VuZCB3b3JkcyBhbGwgdGhlCisgICAgLy8gdGltZT8gIEFuZCBhZ2FpbiwgSSdtIG1pc3NpbmcgaW5mb3JtYXRpb24gb24gbmVnYXRpdmUgbnVtYmVycyBhbmQKKyAgICAvLyBkZWNpbWFzLgorCisgICAgLyoqCisgICAgICogU3BlbGxvdXQgcnVsZXMgZm9yIEl0YWxpYW4uICBMaWtlIEdlcm1hbiwgbW9zdCBJdGFsaWFuIG51bWJlcnMgYXJlCisgICAgICogd3JpdHRlbiBhcyBzaW5nbGUgd29yZHMuICBXaGF0IG1ha2VzIHRoZXNlIHJ1bGVzIGNvbXBsaWNhdGVkIGlzIHRoZSBydWxlCisgICAgICogdGhhdCBzYXlzIHRoYXQgd2hlbiBhIHdvcmQgZW5kaW5nIGluIGEgdm93ZWwgYW5kIGEgd29yZCBiZWdpbm5pbmcgd2l0aAorICAgICAqIGEgdm93ZWwgYXJlIGNvbWJpbmVkIGludG8gYSBjb21wb3VuZCwgdGhlIHZvd2VsIGlzIGRyb3BwZWQgZnJvbSB0aGUKKyAgICAgKiBlbmQgb2YgdGhlIGZpcnN0IHdvcmQ6IDE4MCBpcyAiY2VudG90dGFudGEsIiBub3QgImNlbnRvb3R0YW50YS4iCisgICAgICogVGhlIGNvbXBsZXhpdHkgb2YgdGhpcyBydWxlIHNldCBpcyB0byBwcm9kdWNlIHRoaXMgYmVoYXZpb3IuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgaXRhbGlhbiA9CisgICAgICAgIC8vIG1haW4gcnVsZSBzZXQuICBGb2xsb3dzIHRoZSBwYXR0ZXJucyBvZiB0aGUgcHJlY2VkaW5nIHJ1bGUgc2V0cywKKyAgICAgICAgLy8gZXhjZXB0IHRoYXQgdGhlIGZpbmFsIHZvd2VsIGlzIG9taXR0ZWQgZnJvbSB3b3JkcyBlbmRpbmcgaW4KKyAgICAgICAgLy8gdm93ZWxzIHdoZW4gdGhleSBhcmUgZm9sbG93ZWQgYnkgYW5vdGhlciB3b3JkOyBpbnN0ZWFkLCB3ZSBoYXZlCisgICAgICAgIC8vIHNlcGFyYXRlIHJ1bGUgc2V0cyB0aGF0IGFyZSBpZGVudGljYWwgdG8gdGhpcyBvbmUsIGV4Y2VwdCB0aGF0CisgICAgICAgIC8vIGFsbCB0aGUgd29yZHMgdGhhdCBkb24ndCBiZWdpbiB3aXRoIGEgdm93ZWwgaGF2ZSBhIHZvd2VsIHRhY2tlZAorICAgICAgICAvLyBvbnRvIHRoZW0gYXQgdGhlIGZyb250LiAgQSB3b3JkIGVuZGluZyBpbiBhIHZvd2VsIGNhbGxzIGEKKyAgICAgICAgLy8gc3Vic3RpdHV0aW9uIHRoYXQgd2lsbCBzdXBwbHkgdGhhdCB2b3dlbCwgdW5sZXNzIHRoYXQgdm93ZWwgaXMgdG8KKyAgICAgICAgLy8gYmUgZWxpZGVkLgorICAgICAgICAiJW1haW46XG4iCisgICAgICAgICsgIiAgICAteDogbWVubyA+PjtcbiIKKyAgICAgICAgKyAiICAgIHgueDogPDwgdmlyZ29sYSA+PjtcbiIKKyAgICAgICAgKyAiICAgIHplcm87IHVubzsgZHVlOyB0cmU7IHF1YXR0cm87IGNpbnF1ZTsgc2VpOyBzZXR0ZTsgb3R0bztcbiIKKyAgICAgICAgKyAiICAgICAgICBub3ZlO1xuIgorICAgICAgICArICIgICAgZGllY2k7IHVuZGljaTsgZG9kaWNpOyB0cmVkaWNpOyBxdWF0dG9yZGljaTsgcXVpbmRpY2k7IHNlZGljaTtcbiIKKyAgICAgICAgKyAiICAgICAgICBkaWNpYXNldHRlOyBkaWNpb3R0bzsgZGljaWFubm92ZTtcbiIKKyAgICAgICAgKyAiICAgIDIwOiB2ZW50aTsgdmVudD4lJXdpdGgtaT47XG4iCisgICAgICAgICsgIiAgICAzMDogdHJlbnRhOyB0cmVudD4lJXdpdGgtaT47XG4iCisgICAgICAgICsgIiAgICA0MDogcXVhcmFudGE7IHF1YXJhbnQ+JSV3aXRoLWE+O1xuIgorICAgICAgICArICIgICAgNTA6IGNpbnF1YW50YTsgY2lucXVhbnQ+JSV3aXRoLWE+O1xuIgorICAgICAgICArICIgICAgNjA6IHNlc3NhbnRhOyBzZXNzYW50PiUld2l0aC1hPjtcbiIKKyAgICAgICAgKyAiICAgIDcwOiBzZXR0YW50YTsgc2V0dGFudD4lJXdpdGgtYT47XG4iCisgICAgICAgICsgIiAgICA4MDogb3R0YW50YTsgb3R0YW50PiUld2l0aC1hPjtcbiIKKyAgICAgICAgKyAiICAgIDkwOiBub3ZhbnRhOyBub3ZhbnQ+JSV3aXRoLWE+O1xuIgorICAgICAgICArICIgICAgMTAwOiBjZW50bzsgY2VudFs+JSV3aXRoLW8+XTtcbiIKKyAgICAgICAgKyAiICAgIDIwMDogPDxjZW50bzsgPDxjZW50Wz4lJXdpdGgtbz5dO1xuIgorICAgICAgICArICIgICAgMTAwMDogbWlsbGU7IG1pbGxbPiUld2l0aC1pPl07XG4iCisgICAgICAgICsgIiAgICAyMDAwOiA8PG1pbGE7IDw8bWlsWz4lJXdpdGgtYT5dO1xuIgorICAgICAgICArICIgICAgMTAwLDAwMD4+OiA8PG1pbGFbID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMDogPSMsIyMwPSAoaW5jb21wbGV0ZSBkYXRhKTtcbiIKKyAgICAgICAgKyAiJSV3aXRoLWE6XG4iCisgICAgICAgICsgIiAgICBhemVybzsgdW5vOyBhZHVlOyBhdHJlOyBhcXVhdHRybzsgYWNpbnF1ZTsgYXNlaTsgYXNldHRlOyBvdHRvO1xuIgorICAgICAgICArICIgICAgICAgIGFub3ZlO1xuIgorICAgICAgICArICIgICAgYWRpZWNpOyB1bmRpY2k7IGFkb2RpY2k7IGF0cmVkaWNpOyBhcXVhdHRvcmRpY2k7IGFxdWluZGljaTsgYXNlZGljaTtcbiIKKyAgICAgICAgKyAiICAgICAgICBhZGljaWFzZXR0ZTsgYWRpY2lvdHRvOyBhZGljaWFubm92ZTtcbiIKKyAgICAgICAgKyAiICAgIDIwOiBhdmVudGk7IGF2ZW50PiUld2l0aC1pPjtcbiIKKyAgICAgICAgKyAiICAgIDMwOiBhdHJlbnRhOyBhdHJlbnQ+JSV3aXRoLWk+O1xuIgorICAgICAgICArICIgICAgNDA6IGFxdWFyYW50YTsgYXF1YXJhbnQ+JSV3aXRoLWE+O1xuIgorICAgICAgICArICIgICAgNTA6IGFjaW5xdWFudGE7IGFjaW5xdWFudD4lJXdpdGgtYT47XG4iCisgICAgICAgICsgIiAgICA2MDogYXNlc3NhbnRhOyBhc2Vzc2FudD4lJXdpdGgtYT47XG4iCisgICAgICAgICsgIiAgICA3MDogYXNldHRhbnRhOyBhc2V0dGFudD4lJXdpdGgtYT47XG4iCisgICAgICAgICsgIiAgICA4MDogb3R0YW50YTsgb3R0YW50PiUld2l0aC1hPjtcbiIKKyAgICAgICAgKyAiICAgIDkwOiBhbm92YW50YTsgYW5vdmFudD4lJXdpdGgtYT47XG4iCisgICAgICAgICsgIiAgICAxMDA6IGFjZW50bzsgYWNlbnRbPiUld2l0aC1vPl07XG4iCisgICAgICAgICsgIiAgICAyMDA6IDwlJXdpdGgtYTxjZW50bzsgPCUld2l0aC1hPGNlbnRbPiUld2l0aC1vPl07XG4iCisgICAgICAgICsgIiAgICAxMDAwOiBhbWlsbGU7IGFtaWxsWz4lJXdpdGgtaT5dO1xuIgorICAgICAgICArICIgICAgMjAwMDogPCUld2l0aC1hPG1pbGE7IDwlJXdpdGgtYTxtaWxbPiUld2l0aC1hPl07XG4iCisgICAgICAgICsgIiAgICAxMDAsMDAwOiA9JW1haW49O1xuIgorICAgICAgICArICIlJXdpdGgtaTpcbiIKKyAgICAgICAgKyAiICAgIGl6ZXJvOyB1bm87IGlkdWU7IGl0cmU7IGlxdWF0dHJvOyBpY2lucXVlOyBpc2VpOyBpc2V0dGU7IG90dG87XG4iCisgICAgICAgICsgIiAgICAgICAgaW5vdmU7XG4iCisgICAgICAgICsgIiAgICBpZGllY2k7IHVuZGljaTsgaWRvZGljaTsgaXRyZWRpY2k7IGlxdWF0dG9yZGljaTsgaXF1aW5kaWNpOyBpc2VkaWNpO1xuIgorICAgICAgICArICIgICAgICAgIGlkaWNpYXNldHRlOyBpZGljaW90dG87IGlkaWNpYW5ub3ZlO1xuIgorICAgICAgICArICIgICAgMjA6IGl2ZW50aTsgaXZlbnQ+JSV3aXRoLWk+O1xuIgorICAgICAgICArICIgICAgMzA6IGl0cmVudGE7IGl0cmVudD4lJXdpdGgtaT47XG4iCisgICAgICAgICsgIiAgICA0MDogaXF1YXJhbnRhOyBpcXVhcmFudD4lJXdpdGgtYT47XG4iCisgICAgICAgICsgIiAgICA1MDogaWNpbnF1YW50YTsgaWNpbnF1YW50PiUld2l0aC1hPjtcbiIKKyAgICAgICAgKyAiICAgIDYwOiBpc2Vzc2FudGE7IGlzZXNzYW50PiUld2l0aC1hPjtcbiIKKyAgICAgICAgKyAiICAgIDcwOiBpc2V0dGFudGE7IGlzZXR0YW50PiUld2l0aC1hPjtcbiIKKyAgICAgICAgKyAiICAgIDgwOiBvdHRhbnRhOyBvdHRhbnQ+JSV3aXRoLWE+O1xuIgorICAgICAgICArICIgICAgOTA6IGlub3ZhbnRhOyBpbm92YW50PiUld2l0aC1hPjtcbiIKKyAgICAgICAgKyAiICAgIDEwMDogaWNlbnRvOyBpY2VudFs+JSV3aXRoLW8+XTtcbiIKKyAgICAgICAgKyAiICAgIDIwMDogPCUld2l0aC1pPGNlbnRvOyA8JSV3aXRoLWk8Y2VudFs+JSV3aXRoLW8+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDA6IGltaWxsZTsgaW1pbGxbPiUld2l0aC1pPl07XG4iCisgICAgICAgICsgIiAgICAyMDAwOiA8JSV3aXRoLWk8bWlsYTsgPCUld2l0aC1pPG1pbFs+JSV3aXRoLWE+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMCwwMDA6ID0lbWFpbj07XG4iCisgICAgICAgICsgIiUld2l0aC1vOlxuIgorICAgICAgICArICIgICAgb3plcm87IHVubzsgb2R1ZTsgb3RyZTsgb3F1YXR0cm87IG9jaW5xdWU7IG9zZWk7IG9zZXR0ZTsgb3R0bztcbiIKKyAgICAgICAgKyAiICAgICAgICBvbm92ZTtcbiIKKyAgICAgICAgKyAiICAgIG9kaWVjaTsgdW5kaWNpOyBvZG9kaWNpOyBvdHJlZGljaTsgb3F1YXR0b3JkaWNpOyBvcXVpbmRpY2k7IG9zZWRpY2k7XG4iCisgICAgICAgICsgIiAgICAgICAgb2RpY2lhc2V0dGU7IG9kaWNpb3R0bzsgb2RpY2lhbm5vdmU7XG4iCisgICAgICAgICsgIiAgICAyMDogb3ZlbnRpOyBvdmVudD4lJXdpdGgtaT47XG4iCisgICAgICAgICsgIiAgICAzMDogb3RyZW50YTsgb3RyZW50PiUld2l0aC1pPjtcbiIKKyAgICAgICAgKyAiICAgIDQwOiBvcXVhcmFudGE7IG9xdWFyYW50PiUld2l0aC1hPjtcbiIKKyAgICAgICAgKyAiICAgIDUwOiBvY2lucXVhbnRhOyBvY2lucXVhbnQ+JSV3aXRoLWE+O1xuIgorICAgICAgICArICIgICAgNjA6IG9zZXNzYW50YTsgb3Nlc3NhbnQ+JSV3aXRoLWE+O1xuIgorICAgICAgICArICIgICAgNzA6IG9zZXR0YW50YTsgb3NldHRhbnQ+JSV3aXRoLWE+O1xuIgorICAgICAgICArICIgICAgODA6IG90dGFudGE7IG90dGFudD4lJXdpdGgtYT47XG4iCisgICAgICAgICsgIiAgICA5MDogb25vdmFudGE7IG9ub3ZhbnQ+JSV3aXRoLWE+O1xuIgorICAgICAgICArICIgICAgMTAwOiBvY2VudG87IG9jZW50Wz4lJXdpdGgtbz5dO1xuIgorICAgICAgICArICIgICAgMjAwOiA8JSV3aXRoLW88Y2VudG87IDwlJXdpdGgtbzxjZW50Wz4lJXdpdGgtbz5dO1xuIgorICAgICAgICArICIgICAgMTAwMDogb21pbGxlOyBvbWlsbFs+JSV3aXRoLWk+XTtcbiIKKyAgICAgICAgKyAiICAgIDIwMDA6IDwlJXdpdGgtbzxtaWxhOyA8JSV3aXRoLW88bWlsWz4lJXdpdGgtYT5dO1xuIgorICAgICAgICArICIgICAgMTAwLDAwMDogPSVtYWluPTtcbiI7CisgICAgLy8gQ2FuIHNvbWVvbmUgY29uZmlybSB0aGF0IEkgZGlkIHRoZSB2b3dlbC1lbGlkaW5nIHRoaW5nIHJpZ2h0PyAgSSdtCisgICAgLy8gbm90IDEwMCUgc3VyZSBJJ20gZG9pbmcgaXQgaW4gYWxsIHRoZSByaWdodCBwbGFjZXMsIG9yIGNvbXBsZXRlbHkKKyAgICAvLyBjb3JyZWN0bHkuICBBbHNvLCBJIGRvbid0IGhhdmUgaW5mb3JtYXRpb24gZm9yIG5lZ2F0aXZlcyBhbmQgZGVjaW1hbHMsCisgICAgLy8gYW5kIEkgbGFjayB3b3JkcyBmcm9yIHZhbHVlcyBmcm9tIDEsMDAwLDAwMCBvbiB1cC4KKworICAgIC8qKgorICAgICAqIFNwZWxsb3V0IHJ1bGVzIGZvciBTd2VkaXNoLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIHN3ZWRpc2ggPQorICAgICAgICAibm9sbDsgZXR0OyB0dlx1MDBlNTsgdHJlOyBmeXJhOyBmZW07IHNleDsgc2pvOyBcdTAwZTV0dGE7IG5pbztcbiIKKyAgICAgICAgKyAidGlvOyBlbHZhOyB0b2x2OyB0cmV0dG9uOyBmam9ydG9uOyBmZW10b247IHNleHRvbjsgc2p1dHRvbjsgYXJ0b247IG5pdHRvbjtcbiIKKyAgICAgICAgKyAiMjA6IHRqdWdvWz4+XTtcbiIKKyAgICAgICAgKyAiMzA6IHRyZXR0aW9bPj5dO1xuIgorICAgICAgICArICI0MDogZnlydGlvWz4+XTtcbiIKKyAgICAgICAgKyAiNTA6IGZlbXRpb1s+Pl07XG4iCisgICAgICAgICsgIjYwOiBzZXh0aW9bPj5dO1xuIgorICAgICAgICArICI3MDogc2p1dHRpb1s+Pl07XG4iCisgICAgICAgICsgIjgwOiBcdTAwZTV0dGlvWz4+XTtcbiIKKyAgICAgICAgKyAiOTA6IG5pdHRpb1s+Pl07XG4iCisgICAgICAgICsgIjEwMDogaHVuZHJhWz4+XTtcbiIKKyAgICAgICAgKyAiMjAwOiA8PGh1bmRyYVs+Pl07XG4iCisgICAgICAgICsgIjEwMDA6IHR1c2VuWyA+Pl07XG4iCisgICAgICAgICsgIjIwMDA6IDw8IHR1c2VuWyA+Pl07XG4iCisgICAgICAgICsgIjEsMDAwLDAwMDogZW4gbWlsam9uWyA+Pl07XG4iCisgICAgICAgICsgIjIsMDAwLDAwMDogPDwgbWlsam9uWyA+Pl07XG4iCisgICAgICAgICsgIjEsMDAwLDAwMCwwMDA6IGVuIG1pbGphcmRbID4+XTtcbiIKKyAgICAgICAgKyAiMiwwMDAsMDAwLDAwMDogPDwgbWlsamFyZFsgPj5dO1xuIgorICAgICAgICArICIxLDAwMCwwMDAsMDAwLDAwMDogZW4gYmlsam9uWyA+Pl07XG4iCisgICAgICAgICsgIjIsMDAwLDAwMCwwMDAsMDAwOiA8PCBiaWxqb25bID4+XTtcbiIKKyAgICAgICAgKyAiMSwwMDAsMDAwLDAwMCwwMDAsMDAwOiA9IywjIzA9IjsKKyAgICAvLyBjYW4gc29tZW9uZSBzdXBwbHkgbWUgd2l0aCBpbmZvcm1hdGlvbiBvbiBuZWdhdGl2ZXMgYW5kIGRlY2ltYWxzPworCisgICAgLyoqCisgICAgICogU3BlbGxvdXQgcnVsZXMgZm9yIER1dGNoLiAgTm90aWNlIHRoYXQgaW4gRHV0Y2gsIGFzIGluIEdlcm1hbiwKKyAgICAgKiB0aGUgb25lcyBkaWdpdCBwcmVjZWRlcyB0aGUgdGVucyBkaWdpdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBkdXRjaCA9CisgICAgICAgICIgLXg6IG1pbiA+PjtcbiIKKyAgICAgICAgKyAieC54OiA8PCBrb21tYSA+PjtcbiIKKyAgICAgICAgKyAiKHplcm8/KTsgZWVuOyB0d2VlOyBkcmllOyB2aWVyOyB2aWpmOyB6ZXM7IHpldmVuOyBhY2h0OyBuZWdlbjtcbiIKKyAgICAgICAgKyAidGllbjsgZWxmOyB0d2FhbGY7IGRlcnRpZW47IHZlZXJ0aWVuOyB2aWpmdGllbjsgemVzdGllbjtcbiIKKyAgICAgICAgKyAiemV2ZW50aWVuOyBhY2h0aWVuOyBuZWdlbnRpZW47XG4iCisgICAgICAgICsgIjIwOiBbPj4gZW4gXXR3aW50aWc7XG4iCisgICAgICAgICsgIjMwOiBbPj4gZW4gXWRlcnRpZztcbiIKKyAgICAgICAgKyAiNDA6IFs+PiBlbiBddmVlcnRpZztcbiIKKyAgICAgICAgKyAiNTA6IFs+PiBlbiBddmlqZnRpZztcbiIKKyAgICAgICAgKyAiNjA6IFs+PiBlbiBdemVzdGlnO1xuIgorICAgICAgICArICI3MDogWz4+IGVuIF16ZXZlbnRpZztcbiIKKyAgICAgICAgKyAiODA6IFs+PiBlbiBddGFjaHRpZztcbiIKKyAgICAgICAgKyAiOTA6IFs+PiBlbiBdbmVnZW50aWc7XG4iCisgICAgICAgICsgIjEwMDogPDwgaG9uZGVyZFsgPj5dO1xuIgorICAgICAgICArICIxMDAwOiA8PCBkdWl6ZW5kWyA+Pl07XG4iCisgICAgICAgICsgIjEsMDAwLDAwMDogPDwgbWlsam9lblsgPj5dO1xuIgorICAgICAgICArICIxLDAwMCwwMDAsMDAwOiA8PCBiaWxqb2VuWyA+Pl07XG4iCisgICAgICAgICsgIjEsMDAwLDAwMCwwMDAsMDAwOiA9IywjIzA9IjsKKworICAgIC8qKgorICAgICAqIFNwZWxsb3V0IHJ1bGVzIGZvciBKYXBhbmVzZS4gIEluIEphcGFuZXNlLCB0aGVyZSByZWFsbHkgaXNuJ3QgYW55CisgICAgICogZGlzdGluY3Rpb24gYmV0d2VlbiBhIG51bWJlciB3cml0dGVuIG91dCBpbiBkaWdpdHMgYW5kIGEgbnVtYmVyCisgICAgICogd3JpdHRlbiBvdXQgaW4gd29yZHM6IHRoZSBpZGVvZ3JhcGhpYyBjaGFyYWN0ZXJzIGFyZSBib3RoIGRpZ2l0cworICAgICAqIGFuZCB3b3Jkcy4gIFRoaXMgcnVsZSBzZXQgcHJvdmlkZXMgdHdvIHZhcmlhbnRzOiAgJXRyYWRpdGlvbmFsCisgICAgICogdXNlcyB0aGUgdHJhZGl0aW9uYWwgQ0pLIG51bWVyYWxzICh3aGljaCBhcmUgYWxzbyB1c2VkIGluIENoaW5hCisgICAgICogYW5kIEtvcmVhKS4gICVmaW5hbmNpYWwgdXNlcyBhbHRlcm5hdGUgaWRlb2dyYXBocyBmb3IgbWFueSBudW1iZXJzCisgICAgICogdGhhdCBhcmUgaGFyZGVyIHRvIGFsdGVyIHRoYW4gdGhlIHRyYWRpdGlvbmFsIG51bWVyYWxzIChvbmUgY291bGQKKyAgICAgKiBmYWlybHkgZWFzaWx5IGNoYW5nZSBhIG9uZSB0bworICAgICAqIGEgdGhyZWUganVzdCBieSBhZGRpbmcgdHdvIHN0cm9rZXMsIGZvciBleGFtcGxlKS4gIFRoaXMgaXMgYWxzbyBkb25lIGluCisgICAgICogdGhlIG90aGVyIGNvdW50cmllcyB1c2luZyBDaGluZXNlIGlkb2dyYXBocywgYnV0IGRpZmZlcmVudCBpZGVvZ3JhcGhzCisgICAgICogYXJlIHVzZWQgaW4gdGhvc2UgcGxhY2VzLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGphcGFuZXNlID0KKyAgICAgICAgIiVmaW5hbmNpYWw6XG4iCisgICAgICAgICsgIiAgICBcdTk2ZjY7IFx1NThmMTsgXHU1ZjEwOyBcdTUzYzI7IFx1NTZkYjsgXHU0ZjBkOyBcdTUxNmQ7IFx1NGUwMzsgXHU1MTZiOyBcdTRlNWQ7XG4iCisgICAgICAgICsgIiAgICBcdTYyZmVbPj5dO1xuIgorICAgICAgICArICIgICAgMjA6IDw8XHU2MmZlWz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDogPDxcdTc2N2VbPj5dO1xuIgorICAgICAgICArICIgICAgMTAwMDogPDxcdTUzNDNbPj5dO1xuIgorICAgICAgICArICIgICAgMTAsMDAwOiA8PFx1NGUwN1s+Pl07XG4iCisgICAgICAgICsgIiAgICAxMDAsMDAwLDAwMDogPDxcdTUxMDRbPj5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMCwwMDA6IDw8XHU1MTQ2Wz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07XG4iCisgICAgICAgICsgIiV0cmFkaXRpb25hbDpcbiIKKyAgICAgICAgKyAiICAgIFx1OTZmNjsgXHU0ZTAwOyBcdTRlOGM7IFx1NGUwOTsgXHU1NmRiOyBcdTRlOTQ7IFx1NTE2ZDsgXHU0ZTAzOyBcdTUxNmI7IFx1NGU1ZDtcbiIKKyAgICAgICAgKyAiICAgIFx1NTM0MVs+Pl07XG4iCisgICAgICAgICsgIiAgICAyMDogPDxcdTUzNDFbPj5dO1xuIgorICAgICAgICArICIgICAgMTAwOiA8PFx1NzY3ZVs+Pl07XG4iCisgICAgICAgICsgIiAgICAxMDAwOiA8PFx1NTM0M1s+Pl07XG4iCisgICAgICAgICsgIiAgICAxMCwwMDA6IDw8XHU0ZTA3Wz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMCwwMDAsMDAwOiA8PFx1NTEwNFs+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMDogPDxcdTUxNDZbPj5dO1xuIgorICAgICAgICArICIgICAgMTAsMDAwLDAwMCwwMDAsMDAwLDAwMDogPSMsIyMwPTsiOworICAgIC8vIENhbiBzb21lb25lIHN1cHBseSBtZSB3aXRoIHRoZSByaWdodCBmcmF1ZC1wcm9vZiBpZGVvZ3JhcGhzIGZvcgorICAgIC8vIFNpbXBsaWZpZWQgYW5kIFRyYWRpdGlvbmFsIENoaW5lc2UsIGFuZCBmb3IgS29yZWFuPyAgQ2FuIHNvbWVvbmUKKyAgICAvLyBzdXBwbHkgbWUgd2l0aCBpbmZvcm1hdGlvbiBvbiBuZWdhdGl2ZXMgYW5kIGRlY2ltYWxzPworCisgICAgLyoqCisgICAgICogU3BlbGxvdXQgcnVsZXMgZm9yIEdyZWVrLiAgQWdhaW4gaW4gR3JlZWsgd2UgaGF2ZSB0byBzdXBwbHkgdGhlIHdvcmRzCisgICAgICogZm9yIHRoZSBtdWx0aXBsZXMgb2YgMTAwIGJlY2F1c2UgdGhleSBjYW4ndCBiZSBkZXJpdmVkIGFsZ29yaXRobWljYWxseS4KKyAgICAgKiBBbHNvLCB0aGUgdGVucyBkZ2l0IGNoYW5nZXMgZm9ybSB3aGVuIGZvbGxvd2VkIGJ5IGEgb25lcyBkaWdpdDogYW4KKyAgICAgKiBhY2NlbnQgbWFyayBkaXNhcHBlYXJzIGZyb20gdGhlIHRlbnMgZGlnaXQgYW5kIG1vdmVzIHRvIHRoZSBvbmVzIGRpZ2l0LgorICAgICAqIFRoZXJlZm9yZSwgaW5zdGVhZCBvZiB1c2luZyB0aGUgW10gbm90YXRpb24sIHdlIGFjdHVhbGx5IGhhdmUgdG8gdXNlCisgICAgICogdHdvIHNlcGFyYXRlIHJ1bGVzIGZvciBlYWNoIG11bHRpcGxlIG9mIDEwIHRvIHNob3cgdGhlIHR3byBmb3JtcyBvZgorICAgICAqIHRoZSB3b3JkLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGdyZWVrID0KKyAgICAgICAgInplcm8gKGluY29tcGxldGUgZGF0YSk7IFx1MDNhZFx1MDNiZFx1MDNiMTsgXHUwM2I0XHUwM2NkXHUwM2JmOyBcdTAzYjRcdTAzYzFcdTAzYWZcdTAzYjE7ICIKKyAgICAgICAgKyAiXHUwM2M0XHUwM2FkXHUwM2MzXHUwM2MzXHUwM2I1XHUwM2MxXHUwM2IxOyBcdTAzYzBcdTAzYWRcdTAzYmRcdTAzYzRcdTAzYjU7ICIKKyAgICAgICAgKyAiXHUwM2FkXHUwM2JlXHUwM2I5OyBcdTAzYjVcdTAzYzBcdTAzYzRcdTAzYWM7IFx1MDNiZlx1MDNiYVx1MDNjNFx1MDNjZTsgIgorICAgICAgICArICJcdTAzYjVcdTAzYmRcdTAzYmRcdTAzYWRcdTAzYjE7XG4iCisgICAgICAgICsgIjEwOiBcdTAzYjRcdTAzYWRcdTAzYmFcdTAzYjE7ICIKKyAgICAgICAgKyAiXHUwM2FkXHUwM2JkXHUwM2I0XHUwM2I1XHUwM2JhXHUwM2IxOyBcdTAzYjRcdTAzY2VcdTAzYjRcdTAzYjVcdTAzYmFcdTAzYjE7ICIKKyAgICAgICAgKyAiXHUwM2I0XHUwM2I1XHUwM2JhXHUwM2IxPj47XG4iCisgICAgICAgICsgIjIwOiBcdTAzYjVcdTAzYWZcdTAzYmFcdTAzYmZcdTAzYzNcdTAzYjk7IFx1MDNiNVx1MDNiOVx1MDNiYVx1MDNiZlx1MDNjM1x1MDNiOT4+O1xuIgorICAgICAgICArICIzMDogXHUwM2M0XHUwM2MxXHUwM2I5XHUwM2FjXHUwM2JkXHUwM2M0XHUwM2IxOyBcdTAzYzRcdTAzYzFcdTAzYjlcdTAzYjFcdTAzYmRcdTAzYzRcdTAzYjE+PjtcbiIKKyAgICAgICAgKyAiNDA6IFx1MDNjM1x1MDNiMVx1MDNjMVx1MDNhY1x1MDNiZFx1MDNjNFx1MDNiMTsgXHUwM2MzXHUwM2IxXHUwM2MxXHUwM2IxXHUwM2JkXHUwM2M0XHUwM2IxPj47XG4iCisgICAgICAgICsgIjUwOiBcdTAzYzBcdTAzYjVcdTAzYmRcdTAzYWVcdTAzYmRcdTAzYzRcdTAzYjE7IFx1MDNjMFx1MDNiNVx1MDNiZFx1MDNiN1x1MDNiZFx1MDNjNFx1MDNiMT4+O1xuIgorICAgICAgICArICI2MDogXHUwM2I1XHUwM2JlXHUwM2FlXHUwM2JkXHUwM2M0XHUwM2IxOyBcdTAzYjVcdTAzYmVcdTAzYjdcdTAzYmRcdTAzYzRcdTAzYjE+PjtcbiIKKyAgICAgICAgKyAiNzA6IFx1MDNiNVx1MDNiMlx1MDNiNFx1MDNiZlx1MDNiY1x1MDNhZVx1MDNiZFx1MDNjNFx1MDNiMTsgIgorICAgICAgICArICJcdTAzYjVcdTAzYjJcdTAzYjRcdTAzYmZcdTAzYmNcdTAzYjdcdTAzYmRcdTAzYzRcdTAzYjE+PjtcbiIKKyAgICAgICAgKyAiODA6IFx1MDNiZlx1MDNiM1x1MDNiNFx1MDNjY1x1MDNiZFx1MDNjNFx1MDNiMTsgXHUwM2JmXHUwM2IzXHUwM2I0XHUwM2JmXHUwM2JkXHUwM2M0XHUwM2IxPj47XG4iCisgICAgICAgICsgIjkwOiBcdTAzYjVcdTAzYmRcdTAzYmRcdTAzYjVcdTAzYmRcdTAzYWVcdTAzYmRcdTAzYzRcdTAzYjE7ICIKKyAgICAgICAgKyAiXHUwM2I1XHUwM2JkXHUwM2JkXHUwM2I1XHUwM2JkXHUwM2I3XHUwM2JkXHUwM2M0XHUwM2IxPj47XG4iCisgICAgICAgICsgIjEwMDogXHUwM2I1XHUwM2JhXHUwM2IxXHUwM2M0XHUwM2NjW1x1MDNiZCA+Pl07XG4iCisgICAgICAgICsgIjIwMDogXHUwM2I0XHUwM2I5XHUwM2IxXHUwM2JhXHUwM2NjXHUwM2MzXHUwM2I5XHUwM2IxWyA+Pl07XG4iCisgICAgICAgICsgIjMwMDogXHUwM2M0XHUwM2MxXHUwM2I5XHUwM2IxXHUwM2JhXHUwM2NjXHUwM2MzXHUwM2I5XHUwM2IxWyA+Pl07XG4iCisgICAgICAgICsgIjQwMDogXHUwM2M0XHUwM2I1XHUwM2M0XHUwM2MxXHUwM2IxXHUwM2JhXHUwM2NjXHUwM2MzXHUwM2I5XHUwM2IxWyA+Pl07XG4iCisgICAgICAgICsgIjUwMDogXHUwM2MwXHUwM2I1XHUwM2JkXHUwM2M0XHUwM2IxXHUwM2JhXHUwM2NjXHUwM2MzXHUwM2I5XHUwM2IxWyA+Pl07XG4iCisgICAgICAgICsgIjYwMDogXHUwM2I1XHUwM2JlXHUwM2IxXHUwM2JhXHUwM2NjXHUwM2MzXHUwM2I5XHUwM2IxWyA+Pl07XG4iCisgICAgICAgICsgIjcwMDogXHUwM2I1XHUwM2MwXHUwM2M0XHUwM2IxXHUwM2JhXHUwM2NjXHUwM2MzXHUwM2I5XHUwM2IxWyA+Pl07XG4iCisgICAgICAgICsgIjgwMDogXHUwM2JmXHUwM2JhXHUwM2M0XHUwM2IxXHUwM2JhXHUwM2NjXHUwM2MzXHUwM2I5XHUwM2IxWyA+Pl07XG4iCisgICAgICAgICsgIjkwMDogXHUwM2I1XHUwM2JkXHUwM2JkXHUwM2I5XHUwM2IxXHUwM2JhXHUwM2NjXHUwM2MzXHUwM2I5XHUwM2IxWyA+Pl07XG4iCisgICAgICAgICsgIjEwMDA6IFx1MDNjN1x1MDNhZlx1MDNiYlx1MDNiOVx1MDNiMVsgPj5dO1xuIgorICAgICAgICArICIyMDAwOiA8PCBcdTAzYzdcdTAzYWZcdTAzYmJcdTAzYjlcdTAzYjFbID4+XTtcbiIKKyAgICAgICAgKyAiMSwwMDAsMDAwOiA8PCBcdTAzYjVcdTAzYmFcdTAzYjFcdTAzYzRcdTAzYmZcdTAzYmNcdTAzYmNcdTAzYjlcdTAzY2NcdTAzYzFcdTAzYjlcdTAzYmZbID4+XTtcbiIKKyAgICAgICAgKyAiMSwwMDAsMDAwLDAwMDogPDwgXHUwM2I0XHUwM2I5XHUwM2MzXHUwM2I1XHUwM2JhXHUwM2IxXHUwM2M0XHUwM2JmXHUwM2JjXHUwM2JjXHUwM2I5XHUwM2NjXHUwM2MxXHUwM2I5XHUwM2JmWyA+Pl07XG4iCisgICAgICAgICsgIjEsMDAwLDAwMCwwMDAsMDAwOiA9IywjIzA9IjsKKyAgICAvLyBDYW4gc29tZW9uZSBzdXBwbHkgbWUgd2l0aCBpbmZvcm1hdGlvbiBvbiBuZWdhdGl2ZXMgYW5kIGRlY2ltYWxzPworICAgIC8vIEknbSBhbHNvIG1pc3NpbmcgdGhlIHdvcmQgZm9yIHplcm8uICBDYW4gc29tZW9uZSBjbHVlIG1lIGluPworCisgICAgLyoqCisgICAgICogU3BlbGxvdXQgcnVsZXMgZm9yIFJ1c3NpYW4uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgcnVzc2lhbiA9CisgICAgICAgICJcdTA0M2RcdTA0M2VcdTA0M2JcdTA0NGM7IFx1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZDsgXHUwNDM0XHUwNDMyXHUwNDMwOyBcdTA0NDJcdTA0NDBcdTA0Mzg7ICIKKyAgICAgICAgKyAiXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDRiXHUwNDQwXHUwNDM1OyBcdTA0M2ZcdTA0NGZcdTA0NDI7IFx1MDQ0OFx1MDQzNVx1MDQ0MVx1MDQ0MjsgIgorICAgICAgICArICJcdTA0NDFcdTA0MzVcdTA0M2NcdTA0NGM7IFx1MDQzMlx1MDQzZVx1MDQ0MVx1MDQzNVx1MDQzY1x1MDQ0YzsgXHUwNDM0XHUwNDM1XHUwNDMyXHUwNDRmXHUwNDQyO1xuIgorICAgICAgICArICIxMDogXHUwNDM0XHUwNDM1XHUwNDQxXHUwNDRmXHUwNDQyOyAiCisgICAgICAgICsgIlx1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQzZFx1MDQzMFx1MDQzNFx1MDQ0Nlx1MDQzMFx1MDQ0Mlx1MDQ0YztcbiIKKyAgICAgICAgKyAiXHUwNDM0XHUwNDMyXHUwNDM1XHUwNDNkXHUwNDNkXHUwNDMwXHUwNDM0XHUwNDQ2XHUwNDMwXHUwNDQyXHUwNDRjOyAiCisgICAgICAgICsgIlx1MDQ0Mlx1MDQ0MFx1MDQzOFx1MDQzZFx1MDQzMFx1MDQzNFx1MDQ0Nlx1MDQzMFx1MDQ0Mlx1MDQ0YzsgIgorICAgICAgICArICJcdTA0NDdcdTA0MzVcdTA0NDJcdTA0NGJcdTA0NDBcdTA0M2RcdTA0MzBcdTA0MzRcdTA0NDZcdTA0MzBcdTA0NDJcdTA0NGM7XG4iCisgICAgICAgICsgIjE1OiBcdTA0M2ZcdTA0NGZcdTA0NDJcdTA0M2RcdTA0MzBcdTA0MzRcdTA0NDZcdTA0MzBcdTA0NDJcdTA0NGM7ICIKKyAgICAgICAgKyAiXHUwNDQ4XHUwNDM1XHUwNDQxXHUwNDQyXHUwNDNkXHUwNDMwXHUwNDM0XHUwNDQ2XHUwNDMwXHUwNDQyXHUwNDRjOyAiCisgICAgICAgICsgIlx1MDQ0MVx1MDQzNVx1MDQzY1x1MDQzZFx1MDQzMFx1MDQzNFx1MDQ0Nlx1MDQzMFx1MDQ0Mlx1MDQ0YzsgIgorICAgICAgICArICJcdTA0MzJcdTA0M2VcdTA0NDFcdTA0MzVcdTA0M2NcdTA0M2RcdTA0MzBcdTA0MzRcdTA0NDZcdTA0MzBcdTA0NDJcdTA0NGM7ICIKKyAgICAgICAgKyAiXHUwNDM0XHUwNDM1XHUwNDMyXHUwNDRmXHUwNDQyXHUwNDNkXHUwNDMwXHUwNDM0XHUwNDQ2XHUwNDMwXHUwNDQyXHUwNDRjO1xuIgorICAgICAgICArICIyMDogXHUwNDM0XHUwNDMyXHUwNDMwXHUwNDM0XHUwNDQ2XHUwNDMwXHUwNDQyXHUwNDRjWyA+Pl07XG4iCisgICAgICAgICsgIjMwOiBcdTA0NDJcdTA0NDBcdTA0M2JcdTA0MzRcdTA0NDZcdTA0MzBcdTA0NDJcdTA0NGNbID4+XTtcbiIKKyAgICAgICAgKyAiNDA6IFx1MDQ0MVx1MDQzZVx1MDQ0MFx1MDQzZVx1MDQzYVsgPj5dO1xuIgorICAgICAgICArICI1MDogXHUwNDNmXHUwNDRmXHUwNDQyXHUwNDRjXHUwNDM0XHUwNDM1XHUwNDQxXHUwNDRmXHUwNDQyWyA+Pl07XG4iCisgICAgICAgICsgIjYwOiBcdTA0NDhcdTA0MzVcdTA0NDFcdTA0NDJcdTA0NGNcdTA0MzRcdTA0MzVcdTA0NDFcdTA0NGZcdTA0NDJbID4+XTtcbiIKKyAgICAgICAgKyAiNzA6IFx1MDQ0MVx1MDQzNVx1MDQzY1x1MDQ0Y1x1MDQzNFx1MDQzNVx1MDQ0MVx1MDQ0Zlx1MDQ0MlsgPj5dO1xuIgorICAgICAgICArICI4MDogXHUwNDMyXHUwNDNlXHUwNDQxXHUwNDM1XHUwNDNjXHUwNDRjXHUwNDM0XHUwNDM1XHUwNDQxXHUwNDRmXHUwNDQyWyA+Pl07XG4iCisgICAgICAgICsgIjkwOiBcdTA0MzRcdTA0MzVcdTA0MzJcdTA0NGZcdTA0M2RcdTA0M2VcdTA0NDFcdTA0NDJcdTA0M2VbID4+XTtcbiIKKyAgICAgICAgKyAiMTAwOiBcdTA0NDFcdTA0NDJcdTA0M2VbID4+XTtcbiIKKyAgICAgICAgKyAiMjAwOiA8PCBcdTA0NDFcdTA0NDJcdTA0M2VbID4+XTtcbiIKKyAgICAgICAgKyAiMTAwMDogXHUwNDQyXHUwNDRiXHUwNDQxXHUwNDRmXHUwNDQ3XHUwNDMwWyA+Pl07XG4iCisgICAgICAgICsgIjIwMDA6IDw8IFx1MDQ0Mlx1MDQ0Ylx1MDQ0MVx1MDQ0Zlx1MDQ0N1x1MDQzMFsgPj5dO1xuIgorICAgICAgICArICIxLDAwMCwwMDA6IFx1MDQzY1x1MDQzOFx1MDQzYlx1MDQzYlx1MDQzOFx1MDQzZVx1MDQzZFsgPj5dO1xuIgorICAgICAgICArICIyLDAwMCwwMDA6IDw8IFx1MDQzY1x1MDQzOFx1MDQzYlx1MDQzYlx1MDQzOFx1MDQzZVx1MDQzZFsgPj5dO1xuIgorICAgICAgICArICIxLDAwMCwwMDAsMDAwOiA9IywjIzA9OyI7CisgICAgLy8gQ2FuIHNvbWVvbmUgc3VwcGx5IG1lIHdpdGggaW5mb3JtYXRpb24gb24gbmVnYXRpdmVzIGFuZCBkZWNpbWFscz8KKyAgICAvLyBIb3cgYWJvdXQgd29yZHMgZm9yIGJpbGxpb25zIGFuZCB0cmlsbGlvbnM/CisKKyAgICAvKioKKyAgICAgKiBTcGVsbG91dCBydWxlcyBmb3IgSGVicmV3LiAgSGVicmV3IGFjdHVhbGx5IGhhcyBpbmZsZWN0ZWQgZm9ybXMgZm9yCisgICAgICogbW9zdCBvZiB0aGUgbG93ZXItb3JkZXIgbnVtYmVycy4gIFRoZSBtYXNjdWxpbmUgZm9ybXMgYXJlIHNob3duCisgICAgICogaGVyZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBoZWJyZXcgPQorICAgICAgICAiemVybyAoaW5jb21wbGV0ZSBkYXRhKTsgXHUwNWQwXHUwNWQ0XHUwNWQzOyBcdTA1ZTlcdTA1ZDJcdTA1ZDlcdTA1ZDlcdTA1ZGQ7IFx1MDVlOVx1MDVkY1x1MDVkNVx1MDVlOVx1MDVkNDtcbiIKKyAgICAgICAgKyAiNDogXHUwNWQwXHUwNWQzXHUwNWQxXHUwNWU2XHUwNWQ0OyBcdTA1ZDdcdTA1ZDJcdTA1ZDVcdTA1ZDlcdTA1ZTlcdTA1ZDQ7IFx1MDVlOVx1MDVlOVx1MDVkNDtcbiIKKyAgICAgICAgKyAiNzogXHUwNWU5XHUwNWQxXHUwNWU2XHUwNWQ0OyBcdTA1ZTlcdTA1ZGVcdTA1ZDVcdTA1ZDJcdTA1ZDQ7IFx1MDVlYVx1MDVlOVx1MDVlNlx1MDVkNDtcbiIKKyAgICAgICAgKyAiMTA6IFx1MDVlNlx1MDVlOVx1MDVkM1x1MDVkNFsgPj5dO1xuIgorICAgICAgICArICIyMDogXHUwNWU2XHUwNWU5XHUwNWQzXHUwNWQ5XHUwNWRkWyA+Pl07XG4iCisgICAgICAgICsgIjMwOiBcdTA1ZTlcdTA1ZGNcdTA1ZDVcdTA1ZTlcdTA1ZDlcdTA1ZGRbID4+XTtcbiIKKyAgICAgICAgKyAiNDA6IFx1MDVkMFx1MDVkM1x1MDVkMVx1MDVlNlx1MDVkOVx1MDVkZFsgPj5dO1xuIgorICAgICAgICArICI1MDogXHUwNWQ3XHUwNWRlXHUwNWQ5XHUwNWU5XHUwNWQ5XHUwNWRkWyA+Pl07XG4iCisgICAgICAgICsgIjYwOiBcdTA1ZTlcdTA1ZTlcdTA1ZDlcdTA1ZGRbID4+XTtcbiIKKyAgICAgICAgKyAiNzA6IFx1MDVlOVx1MDVkMVx1MDVlNlx1MDVkOVx1MDVkZFsgPj5dO1xuIgorICAgICAgICArICI4MDogXHUwNWU5XHUwNWRlXHUwNWQ1XHUwNWQyXHUwNWQ5XHUwNWRkWyA+Pl07XG4iCisgICAgICAgICsgIjkwOiBcdTA1ZWFcdTA1ZTlcdTA1ZTZcdTA1ZDlcdTA1ZGRbID4+XTtcbiIKKyAgICAgICAgKyAiMTAwOiBcdTA1ZGVcdTA1ZDBcdTA1ZDRbID4+XTtcbiIKKyAgICAgICAgKyAiMjAwOiA8PCBcdTA1ZGVcdTA1ZDBcdTA1ZDRbID4+XTtcbiIKKyAgICAgICAgKyAiMTAwMDogXHUwNWQwXHUwNWRjXHUwNWUzWyA+Pl07XG4iCisgICAgICAgICsgIjIwMDA6IDw8IFx1MDVkMFx1MDVkY1x1MDVlM1sgPj5dO1xuIgorICAgICAgICArICIxLDAwMCwwMDA6ID0jLCMjMD0gKGluY29tcGxldGUgZGF0YSk7IjsKKyAgICAvLyBUaGlzIGRhdGEgaXMgd29lZnVsbHkgaW5jb21wbGV0ZS4gIENhbiBzb21lb25lIGZpbGwgbWUgaW4gb24gdGhlCisgICAgLy8gdmFyaW91cyBpbmZsZWN0ZWQgZm9ybXMgb2YgdGhlIG51bWJlcnMsIHdoaWNoIHNlZW0gdG8gYmUgbmVjZXNzYXJ5CisgICAgLy8gdG8gZG8gSGVicmV3IGNvcnJlY3RseT8gIENhbiBzb21vbmUgc3VwcGx5IG1lIHdpdGggZGF0YSBmb3IgdmFsdWVzCisgICAgLy8gZnJvbSAxLDAwMCwwMDAgb24gdXA/ICBXaGF0IGFib3V0IHRoZSB3b3JkIGZvciB6ZXJvPyAgV2hhdCBhYm91dAorICAgIC8vIGluZm9ybWF0aW9uIG9uIG5lZ2F0aXZlcyBhbmQgZGVjaW1hbHM/CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIFNpbXBsZSBleGFtcGxlcworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBUaGlzIHJ1bGUgc2V0IGFkZHMgYW4gRW5nbGlzaCBvcmRpbmFsIGFiYnJldmlhdGlvbiB0byB0aGUgZW5kIG9mIGEKKyAgICAgKiBudW1iZXIuICBGb3IgZXhhbXBsZSwgMiBpcyBmb3JtYXR0ZWQgYXMgIjJuZCIuICBQYXJzaW5nIGRvZXNuJ3Qgd29yayB3aXRoCisgICAgICogdGhpcyBydWxlIHNldC4gIFRvIHBhcnNlLCB1c2UgRGVjaW1hbEZvcm1hdCBvbiB0aGUgbnVtZXJhbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBvcmRpbmFsID0KKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCBmb3JtYXRzIHRoZSBudW1lcmFsIGFuZCBjYWxscyAlJWFiYnJldiB0bworICAgICAgICAvLyBzdXBwbHkgdGhlIGFiYnJldmlhdGlvbgorICAgICAgICAiJW1haW46XG4iCisgICAgICAgICsgIiAgICA9IywjIzA9PSUlYWJicmV2PTtcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCBzdXBwbGllcyB0aGUgYWJicmV2aWF0aW9uCisgICAgICAgICsgIiUlYWJicmV2OlxuIgorICAgICAgICAgICAgICAgLy8gdGhlIGFiYnJldmlhdGlvbnMuICBFdmVyeXRoaW5nIGZyb20gNCB0byAxOSBlbmRzIGluICJ0aCIKKyAgICAgICAgKyAiICAgIHRoOyBzdDsgbmQ7IHJkOyB0aDtcbiIKKyAgICAgICAgICAgICAgIC8vIGF0IDIwLCB3ZSBiZWdpbiByZXBlYXRpbmcgdGhlIGN5Y2xlIGV2ZXJ5IDEwICgxMyBpcyAiMTN0aCIsCisgICAgICAgICAgICAgICAvLyBidXQgMjMgYW5kIDMzIGFyZSAiMjNyZCIgYW5kICIzM3JkIikgIFdlIGRvIHRoaXMgYnkKKyAgICAgICAgICAgICAgIC8vIGlnbm9yaW5nIGFsbCBidWcgdGhlIG9uZXMgZGlnaXQgaW4gc2VsZWN0aW5nIHRoZSBhYmJyZXZpYXRpb24KKyAgICAgICAgKyAiICAgIDIwOiA+PjtcbiIKKyAgICAgICAgICAgICAgIC8vIGF0IDEwMCwgd2UgcmVwZWF0IHRoZSB3aG9sZSBjeWNsZSBieSBjb25zaWRlcmluZyBvbmx5IHRoZQorICAgICAgICAgICAgICAgLy8gdGVucyBhbmQgb25lcyBkaWdpdHMgaW4gcGlja2luZyBhbiBhYmJyZXZpYXRpb24KKyAgICAgICAgKyAiICAgIDEwMDogPj47XG4iOworCisgICAgLyoqCisgICAgICogVGhpcyBpcyBhIHNpbXBsZSBtZXNzYWdlLWZvcm1hdHRpbmcgZXhhbXBsZS4gIE5vcm1hbGx5IG9uZSB3b3VsZAorICAgICAqIHVzZSBDaG9pY2VGb3JtYXQgYW5kIE1lc3NhZ2VGb3JtYXQgdG8gZG8gc29tZXRoaW5nIHRoaXMgc2ltcGxlLAorICAgICAqIGJ1dCB0aGlzIHNob3dzIGl0IGNvdWxkIGJlIGRvbmUgd2l0aCBSdWxlQmFzZWROdW1iZXJGb3JtYXQgdG9vLgorICAgICAqIEEgbWVzc2FnZS1mb3JtYXR0aW5nIGV4YW1wbGUgdGhhdCBtaWdodCB3b3JrIGJldHRlciB3aXRoCisgICAgICogUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGFwcGVhcnMgbGF0ZXIuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgbWVzc2FnZTEgPQorICAgICAgICAvLyB0aGlzIHJ1bGUgc3Vycm91bmRzIHdoYXRldmVyIHRoZSBvdGhlciBydWxlcyBwcm9kdWNlIHdpdGggdGhlCisgICAgICAgIC8vIHJlc3Qgb2YgdGhlIHNlbnRlbmNlCisgICAgICAgICJ4LjA6IFRoZSBzZWFyY2ggZm91bmQgPDwuO1xuIgorICAgICAgICAvLyB1c2Ugd29yZHMgZm9yIHZhbHVlcyBiZWxvdyAxMCAoYW5kIGNoYW5nZSB0byAiZmlsZSIgZm9yIDEpCisgICAgICAgICsgIm5vIGZpbGVzOyBvbmUgZmlsZTsgdHdvIGZpbGVzOyB0aHJlZSBmaWxlczsgZm91ciBmaWxlczsgZml2ZSBmaWxlcztcbiIKKyAgICAgICAgKyAiICAgIHNpeCBmaWxlczsgc2V2ZW4gZmlsZXM7IGVpZ2h0IGZpbGVzOyBuaW5lIGZpbGVzO1xuIgorICAgICAgICAvLyB1c2UgbnVtZXJhbHMgZm9yIHZhbHVlcyBoaWdoZXIgdGhhbiAxMAorICAgICAgICArICI9IywjIzA9IGZpbGVzOyI7CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIEZyYWN0aW9uIGhhbmRsaW5nCisgICAgLy8KKyAgICAvLyBUaGUgbmV4dCBmZXcgZXhhbXBsZXMgc2hvdyBob3cgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGNhbiBiZSB1c2VkIGZvcgorICAgIC8vIG1vcmUgZmxleGlibGUgaGFuZGxpbmcgb2YgZnJhY3Rpb25zCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFRoaXMgZXhhbXBsZSBmb3JtYXRzIGEgbnVtYmVyIGluIG9uZSBvZiB0aGUgdHdvIHN0eWxlcyBvZnRlbiB1c2VkCisgICAgICogb24gY2hlY2tzLiAgJWRvbGxhcnMtYW5kLWh1bmRyZWR0aHMgZm9ybWF0cyBjZW50cyBhcyBodW5kcmVkdGhzIG9mCisgICAgICogYSBkb2xsYXIgKDIzLjQwIGNvbWVzIG91dCBhcyAidHdlbnR5LXRocmVlIGFuZCA0MC8xMDAgZG9sbGFycyIpLgorICAgICAqICVkb2xsYXJzLWFuZC1jZW50cyBmb3JtYXRzIGluIGRvbGxhcnMgYW5kIGNlbnRzICgyMy40MCBjb21lcyBvdXQgYXMKKyAgICAgKiAidHdlbnR5LXRocmVlIGRvbGxhcnMgYW5kIGZvcnR5IGNlbnRzIikKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBkb2xsYXJzQW5kQ2VudHMgPQorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGZvcm1hdHMgbnVtYmVycyBhcyBkb2xsYXJzIGFuZCBjZW50cworICAgICAgICAiJWRvbGxhcnMtYW5kLWNlbnRzOlxuIgorICAgICAgICAgICAgICAgLy8gaWYgdGhlIHZhbHVlIGlzIDEgb3IgbW9yZSwgcHV0ICJ4eCBkb2xsYXJzIGFuZCB5eSBjZW50cyIuCisgICAgICAgICAgICAgICAvLyB0aGUgImFuZCB5IGNlbnRzIiBwYXJ0IGlzIHN1cHByZXNzZWQgaWYgdGhlIHZhbHVlIGlzIGFuCisgICAgICAgICAgICAgICAvLyBldmVuIG51bWJlciBvZiBkb2xsYXJzCisgICAgICAgICsgIiAgICB4LjA6IDw8IFthbmQgPiUlY2VudHM+XTtcbiIKKyAgICAgICAgICAgICAgIC8vIGlmIHRoZSB2YWx1ZSBpcyBiZXR3ZWVuIDAgYW5kIDEsIHB1dCAieHggY2VudHMiCisgICAgICAgICsgIiAgICAwLng6ID4lJWNlbnRzPjtcbiIKKyAgICAgICAgICAgICAgIC8vIHRoZXNlIHRocmVlIHJ1bGVzIHRha2UgY2FyZSBvZiB0aGUgc2luZ3VsYXIgYW5kIHBsdXJhbAorICAgICAgICAgICAgICAgLy8gZm9ybXMgb2YgImRvbGxhciIgYW5kIHVzZSAlJW1haW4gdG8gZm9ybWF0IHRoZSBudW1iZXIKKyAgICAgICAgKyAiICAgIDA6IHplcm8gZG9sbGFyczsgb25lIGRvbGxhcjsgPSUlbWFpbj0gZG9sbGFycztcbiIKKyAgICAgICAgLy8gdGhlc2UgYXJlIHRoZSByZWd1bGFyIFUuUy4gRW5nbGlzaCBudW1iZXIgc3BlbGxvdXQgcnVsZXMKKyAgICAgICAgKyAiJSVtYWluOlxuIgorICAgICAgICArICIgICAgemVybzsgb25lOyB0d287IHRocmVlOyBmb3VyOyBmaXZlOyBzaXg7IHNldmVuOyBlaWdodDsgbmluZTtcbiIKKyAgICAgICAgKyAiICAgIHRlbjsgZWxldmVuOyB0d2VsdmU7IHRoaXJ0ZWVuOyBmb3VydGVlbjsgZmlmdGVlbjsgc2l4dGVlbjtcbiIKKyAgICAgICAgKyAiICAgICAgICBzZXZlbnRlZW47IGVpZ2h0ZWVuOyBuaW5ldGVlbjtcbiIKKyAgICAgICAgKyAiICAgIDIwOiB0d2VudHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDMwOiB0aGlydHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDQwOiBmb3J0eVstPj5dO1xuIgorICAgICAgICArICIgICAgNTA6IGZpZnR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA2MDogc2l4dHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDcwOiBzZXZlbnR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA4MDogZWlnaHR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA5MDogbmluZXR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICAxMDA6IDw8IGh1bmRyZWRbID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDA6IDw8IHRob3VzYW5kWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDA6IDw8IG1pbGxpb25bID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDA6IDw8IGJpbGxpb25bID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwOiA8PCB0cmlsbGlvblsgPj5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMCwwMDAsMDAwOiA9IywjIzA9O1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgdGFrZXMgY2FyZSBvZiB0aGUgZnJhY3Rpb25hbCBwYXJ0IG9mIHRoZSB2YWx1ZS4gIEl0CisgICAgICAgIC8vIG11bHRpcGxpZXMgdGhlIGZyYWN0aW9uYWwgcGFydCBvZiB0aGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZCBieQorICAgICAgICAvLyAxMDAsIGZvcm1hdHMgaXQgd2l0aCAlJW1haW4sIGFuZCB0aGVuIGFkZGVzIHRoZSB3b3JkICJjZW50IiBvcgorICAgICAgICAvLyAiY2VudHMiIHRvIHRoZSBlbmQuICAoVGhlIHRleHQgaW4gYnJhY2tldHMgaXMgb21pdHRlZCBpZiB0aGUKKyAgICAgICAgLy8gbnVtZXJhdG9yIG9mIHRoZSBmcmFjdGlvbiBpcyAxLikKKyAgICAgICAgKyAiJSVjZW50czpcbiIKKyAgICAgICAgKyAiICAgIDEwMDogPCUlbWFpbjwgY2VudFtzXTtcbiIKKworICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGZvcm1hdHMgbnVtYmVycyBhcyBkb2xsYXJzIGFuZCBodW5kcmVkdGhzIG9mIGRvbGxhcnMKKyAgICAgICAgKyAiJWRvbGxhcnMtYW5kLWh1bmRyZWR0aHM6XG4iCisgICAgICAgICAgICAgICAvLyB0aGlzIHJ1bGUgdGFrZXMgY2FyZSBvZiB0aGUgZ2VuZXJhbCBzaGVsbCBvZiB0aGUgb3V0cHV0CisgICAgICAgICAgICAgICAvLyBzdHJpbmcuICBXZSBhbHdheXMgc2hvdyB0aGUgY2VudHMsIGV2ZW4gd2hlbiB0aGVyZSBhcmVuJ3QKKyAgICAgICAgICAgICAgIC8vIGFueS4gIEJlY2F1c2Ugb2YgdGhpcywgdGhlIHdvcmQgaXMgYWx3YXlzICJkb2xsYXJzIi0tCisgICAgICAgICAgICAgICAvLyB3ZSBkb24ndCBoYXZlIHRvIHdvcnJ5IGFib3V0IHRoZSBzaW5ndWxhciBmb3JtLiAgV2UgdXNlCisgICAgICAgICAgICAgICAvLyAlJW1haW4gdG8gZm9ybWF0IHRoZSBudW1iZXIgb2YgZG9sbGFycyBhbmQgJSVodW5kcmVkdGhzIHRvCisgICAgICAgICAgICAgICAvLyBmb3JtYXQgdGhlIG51bWJlciBvZiBjZW50cworICAgICAgICArICIgICAgeC4wOiA8JSVtYWluPCBhbmQgPiUlaHVuZHJlZHRocz4vMTAwIGRvbGxhcnM7XG4iCisgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgZm9ybWF0cyB0aGUgY2VudHMgZm9yICVkb2xsYXJzLWFuZC1odW5kcmVkdGhzLgorICAgICAgICAvLyBJdCBtdWx0aXBsaWVzIHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgdGhlIG51bWJlciBieSAxMDAgYW5kIGZvcm1hdHMKKyAgICAgICAgLy8gdGhlIHJlc3VsdCB1c2luZyBhIERlY2ltYWxGb3JtYXQgKCIwMCIgdGVsbHMgdGhlIERlY2ltYWxGb3JtYXQgdG8KKyAgICAgICAgLy8gYWx3YXlzIHVzZSB0d28gZGlnaXRzLCBldmVuIGZvciBudW1iZXJzIHVuZGVyIDEwKQorICAgICAgICArICIlJWh1bmRyZWR0aHM6XG4iCisgICAgICAgICsgIiAgICAxMDA6IDwwMDw7XG4iOworCisgICAgLyoqCisgICAgICogVGhpcyBydWxlIHNldCBzaG93cyB0aGUgZnJhY3Rpb25hbCBwYXJ0IG9mIHRoZSBudW1iZXIgYXMgYSBmcmFjdGlvbgorICAgICAqIHdpdGggYSBwb3dlciBvZiAxMCBhcyB0aGUgZGVub21pbmF0b3IuICBTb21lIGxhbmd1YWdlcyBkb24ndCBzcGVsbAorICAgICAqIG91dCB0aGUgZnJhY3Rpb25hbCBwYXJ0IG9mIGEgbnVtYmVyIGFzICJwb2ludCBvbmUgdHdvIHRocmVlLCIgYnV0CisgICAgICogYWx3YXlzIHJlbmRlciBpdCBhcyBhIGZyYWN0aW9uLiAgSWYgd2Ugc3RpbGwgd2FudCB0byB0cmVhdCB0aGUgZnJhY3Rpb25hbAorICAgICAqIHBhcnQgb2YgdGhlIG51bWJlciBhcyBhIGRlY2ltYWwsIHRoZW4gdGhlIGZyYWN0aW9uJ3MgZGVub21pbmF0b3IKKyAgICAgKiBpcyBhbHdheXMgYSBwb3dlciBvZiAxMC4gIFRoaXMgZXhhbXBsZSBkb2VzIHRoYXQ6IDIzLjEyNSBpcyBmb3JtYXR0ZWQKKyAgICAgKiBhcyAidHdlbnR5LXRocmVlIGFuZCBvbmUgaHVuZHJlZCB0d2VudHktZml2ZSB0aG91c2FuZHRocyIgKGFzIG9wcG9zZWQKKyAgICAgKiB0byAidHdlbnR5LXRocmVlIHBvaW50IG9uZSB0d28gZml2ZSIgb3IgInR3ZW50eS10aHJlZSBhbmQgb25lIGVpZ2h0aCIpLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGRlY2ltYWxBc0ZyYWN0aW9uID0KKyAgICAgICAgLy8gdGhlIHJlZ3VsYXIgVS5TLiBFbmdsaXNoIHNwZWxsb3V0IHJ1bGVzLCB3aXRoIG9uZSBkaWZmZXJlbmNlCisgICAgICAgICIlbWFpbjpcbiIKKyAgICAgICAgKyAiICAgIC14OiBtaW51cyA+PjtcbiIKKyAgICAgICAgICAgICAgIC8vIHRoZSBkaWZmZXJlbmNlLiAgVGhpcyBydWxlIHVzZXMgJSVmcmFjIHRvIHNob3cgdGhlIGZyYWN0aW9uYWwKKyAgICAgICAgICAgICAgIC8vIHBhcnQgb2YgdGhlIG51bWJlci4gIFRleHQgaW4gYnJhY2tldHMgaXMgb21pdHRlZCB3aGVuIHRoZQorICAgICAgICAgICAgICAgLy8gdmFsdWUgaXMgYmV0d2VlbiAwIGFuZCAxIChjYXVzaW5nIDAuMyB0byBjb21lIG91dCBhcyAidGhyZWUKKyAgICAgICAgICAgICAgIC8vIHRlbnRocyIgaW5zdGVhZCBvZiAiemVybyBhbmQgdGhyZWUgdGVudGhzIikuCisgICAgICAgICsgIiAgICB4Lng6IFs8PCBhbmQgXT4lJWZyYWM+O1xuIgorICAgICAgICArICIgICAgemVybzsgb25lOyB0d287IHRocmVlOyBmb3VyOyBmaXZlOyBzaXg7IHNldmVuOyBlaWdodDsgbmluZTtcbiIKKyAgICAgICAgKyAiICAgIHRlbjsgZWxldmVuOyB0d2VsdmU7IHRoaXJ0ZWVuOyBmb3VydGVlbjsgZmlmdGVlbjsgc2l4dGVlbjtcbiIKKyAgICAgICAgKyAiICAgICAgICBzZXZlbnRlZW47IGVpZ2h0ZWVuOyBuaW5ldGVlbjtcbiIKKyAgICAgICAgKyAiICAgIHR3ZW50eVstPj5dO1xuIgorICAgICAgICArICIgICAgMzA6IHRoaXJ0eVstPj5dO1xuIgorICAgICAgICArICIgICAgNDA6IGZvcnR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA1MDogZmlmdHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDYwOiBzaXh0eVstPj5dO1xuIgorICAgICAgICArICIgICAgNzA6IHNldmVudHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDgwOiBlaWdodHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDkwOiBuaW5ldHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDogPDwgaHVuZHJlZFsgPj5dO1xuIgorICAgICAgICArICIgICAgMTAwMDogPDwgdGhvdXNhbmRbID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMDogPDwgbWlsbGlvblsgPj5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMDogPDwgYmlsbGlvblsgPj5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMCwwMDA6IDw8IHRyaWxsaW9uWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07XG4iCisgICAgICAgIC8vIHRoZSBydWxlIHNldCB0aGF0IGZvcm1hdHMgdGhlIGZyYWN0aW9uYWwgcGFydCBvZiB0aGUgbnVtYmVyLgorICAgICAgICAvLyBUaGUgcnVsZSB0aGF0IGlzIHVzZWQgaXMgdGhlIG9uZSB0aGF0LCB3aGVuIGl0cyBiYWFzZSB2YWx1ZSBpcworICAgICAgICAvLyBtdWx0aXBsaWVkIGJ5IHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgdGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQsCisgICAgICAgIC8vIHByb2R1Y2VzIHRoZSByZXN1bHQgY2xvc2VzdCB0byB6ZXJvLiAgVGh1cywgdGhlIGJhc2UgdmFsdWVzIGFyZQorICAgICAgICAvLyBwcm9zcGVjdGl2ZSBkZW5vbWluYXRvcnMgb2YgdGhlIGZyYWN0aW9uLiAgVGhlIDw8IG1hcmtzIHRoZSBwbGFjZQorICAgICAgICAvLyB3aGVyZSB0aGUgbnVtZXJhdG9yIG9mIHRoZSBmcmFjdGlvbiAodGhlIHJlc3VsdCBvZiBtdWx0aXBseWluZyB0aGUKKyAgICAgICAgLy8gZnJhY3Rpb25hbCBwYXJ0IG9mIHRoZSBudW1iZXIgYnkgdGhlIHJ1bGUncyBiYXNlIHZhbHVlKSBpcworICAgICAgICAvLyBwbGFjZWQuICBUZXh0IGluIGJyYWNrZXRzIGlzIG9taXR0ZWQgd2hlbiB0aGUgbnVtZXJhdG9yIGlzIDEsIGdpdmluZworICAgICAgICAvLyB1cyB0aGUgc2luZ3VsYXIgYW5kIHBsdXJhbCBmb3JtcyBvZiB0aGUgd29yZHMuCisgICAgICAgIC8vIFtJbiBsYW5ndWFnZXMgd2hlcmUgdGhlIHNpbmd1bGFyIGFuZCBwbHVyYWwgYXJlIGNvbXBsZXRlbHkgZGlmZmVyZW50CisgICAgICAgIC8vIHdvcmRzLCB0aGUgcnVsZSBjYW4ganVzdCBiZSBzdGF0ZWQgdHdpY2U6IHRoZSBzZWNvbmQgdGltZSB3aXRoCisgICAgICAgIC8vIHRoZSBwbHVyYWwgZm9ybS5dCisgICAgICAgICsgIiUlZnJhYzpcbiIKKyAgICAgICAgKyAiICAgIDEwOiA8PCB0ZW50aFtzXTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDogPDwgaHVuZHJlZHRoW3NdO1xuIgorICAgICAgICArICIgICAgMTAwMDogPDwgdGhvdXNhbmR0aFtzXTtcbiIKKyAgICAgICAgKyAiICAgIDEwLDAwMDogPDwgdGVuLXRob3VzYW5kdGhbc107XG4iCisgICAgICAgICsgIiAgICAxMDAsMDAwOiA8PCBodW5kcmVkLXRob3VzYW5kdGhbc107XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDA6IDw8IG1pbGxpb250aFtzXTsiOworCisgICAgLyoqCisgICAgICogTnVtYmVyIHdpdGggY2xvc2VzdCBmcmFjdGlvbi4gIFRoaXMgZXhhbXBsZSBmb3JtYXRzIGEgdmFsdWUgdXNpbmcKKyAgICAgKiBudW1lcmFscywgYnV0IHNob3dzIHRoZSBmcmFjdGlvbmFsIHBhcnQgYXMgYSByYXRpbyAoZnJhY3Rpb24pIHJhdGhlcgorICAgICAqIHRoYW4gYSBkZWNpbWFsLiAgVGhlIGZyYWN0aW9uIGFsd2F5cyBoYXMgYSBkZW5vbWluYXRvciBiZXR3ZWVuIDIgYW5kIDEwLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGNsb3Nlc3RGcmFjdGlvbiA9CisgICAgICAgICIlbWFpbjpcbiIKKyAgICAgICAgICAgICAgIC8vIHRoaXMgcnVsZSBmb3JtYXRzIHRoZSBudW1iZXIgaWYgaXQncyAxIG9yIG1vcmUuICBJdCBmb3JtYXRzCisgICAgICAgICAgICAgICAvLyB0aGUgaW50ZWdyYWwgcGFydCB1c2luZyBhIERlY2ltYWxGb3JtYXQgKCIjLCMjMCIgcHV0cworICAgICAgICAgICAgICAgLy8gdGhvdXNhbmRzIHNlcGFyYXRvcnMgaW4gdGhlIHJpZ2h0IHBsYWNlcykgYW5kIHRoZSBmcmFjdGlvbmFsCisgICAgICAgICAgICAgICAvLyBwYXJ0IHVzaW5nICUlZnJhYy4gIElmIHRoZXJlIGlzIG5vIGZyYWN0aW9uYWwgcGFydCwgaXQKKyAgICAgICAgICAgICAgIC8vIGp1c3Qgc2hvd3MgdGhlIGludGVncmFsIHBhcnQuCisgICAgICAgICsgIiAgICB4LjA6IDwjLCMjMDxbID4lJWZyYWM+XTtcbiIKKyAgICAgICAgICAgICAgIC8vIHRoaXMgcnVsZSBmb3JtYXRzIHRoZSBudW1iZXIgaWYgaXQncyBiZXR3ZWVuIDAgYW5kIDEuICBJdAorICAgICAgICAgICAgICAgLy8gc2hvd3Mgb25seSB0aGUgZnJhY3Rpb25hbCBwYXJ0ICgwLjUgc2hvd3MgdXAgYXMgIjEvMiwiIG5vdAorICAgICAgICAgICAgICAgLy8gIjAgMS8yIikKKyAgICAgICAgKyAiICAgIDAueDogPiUlZnJhYz47XG4iCisgICAgICAgIC8vIHRoZSBmcmFjdGlvbiBydWxlIHNldC4gIFRoaXMgd29ya3MgdGhlIHNhbWUgd2F5IGFzIHRoZSBvbmUgaW4gdGhlCisgICAgICAgIC8vIHByZWNlZGluZyBleGFtcGxlOiBXZSBtdWx0aXBseSB0aGUgZnJhY3Rpb25hbCBwYXJ0IG9mIHRoZSBudW1iZXIKKyAgICAgICAgLy8gYmVpbmcgZm9ybWF0dGVkIGJ5IGVhY2ggcnVsZSdzIGJhc2UgdmFsdWUgYW5kIHVzZSB0aGUgcnVsZSB0aGF0CisgICAgICAgIC8vIHByb2R1Y2VzIHRoZSByZXN1bHQgY2xvc2VzdCB0byAwIChvciB0aGUgZmlyc3QgcnVsZSB0aGF0IHByb2R1Y2VzIDApLgorICAgICAgICAvLyBTaW5jZSB3ZSBvbmx5IHByb3ZpZGUgcnVsZXMgZm9yIHRoZSBudW1iZXJzIGZyb20gMiB0byAxMCwgd2Uga25vdworICAgICAgICAvLyB3ZSdsbCBnZXQgYSBmcmFjdGlvbiB3aXRoIGEgZGVub21pbmF0b3IgYmV0d2VlbiAyIGFuZCAxMC4KKyAgICAgICAgLy8gIjwwPCIgY2F1c2VzIHRoZSBudW1lcmF0b3Igb2YgdGhlIGZyYWN0aW9uIHRvIGJlIGZvcm1hdHRlZAorICAgICAgICAvLyB1c2luZyBudW1lcmFscworICAgICAgICArICIlJWZyYWM6XG4iCisgICAgICAgICsgIiAgICAyOiAxLzI7XG4iCisgICAgICAgICsgIiAgICAzOiA8MDwvMztcbiIKKyAgICAgICAgKyAiICAgIDQ6IDwwPC80O1xuIgorICAgICAgICArICIgICAgNTogPDA8LzU7XG4iCisgICAgICAgICsgIiAgICA2OiA8MDwvNjtcbiIKKyAgICAgICAgKyAiICAgIDc6IDwwPC83O1xuIgorICAgICAgICArICIgICAgODogPDA8Lzg7XG4iCisgICAgICAgICsgIiAgICA5OiA8MDwvOTtcbiIKKyAgICAgICAgKyAiICAgIDEwOiA8MDwvMTA7XG4iOworCisgICAgLyoqCisgICAgICogQW1lcmljYW4gc3RvY2stcHJpY2UgZm9ybWF0dGluZy4gIE5vbi1pbnRlZ3JhbCBzdG9jayBwcmljZXMgYXJlIHN0aWxsCisgICAgICogZ2VuZXJhbGx5IHNob3duIGluIGVpZ2h0aHMgb3Igc2l4dGVlbnRocyBvZiBkb2xsYXJzIGluc3RlYWQgb2YgZG9sbGFycworICAgICAqIGFuZCBjZW50cy4gIFRoaXMgZXhhbXBsZSBmb3JtYXRzIHN0b2NrIHByaWNlcyBpbiB0aGlzIHdheSBpZiBwb3NzaWJsZSwKKyAgICAgKiBhbmQgaW4gZG9sbGFycyBhbmQgY2VudHMgaWYgbm90LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIHN0b2NrID0KKyAgICAgICAgIiVtYWluOlxuIgorICAgICAgICAgICAgICAgLy8gdGhpcyBydWxlIGZvcm1hdHMgdGhlIGludGVncmFsIHBhcnQgb2YgdGhlIG51bWJlciBpbiBudW1lcmFscworICAgICAgICAgICAgICAgLy8gYW5kIChpZiBuZWNlc3NhcnkpIHRoZSBmcmFjdGlvbmFsIHBhcnQgdXNpbmcgJSVmcmFjMQorICAgICAgICArICIgICAgeC4wOiA8IywjIzA8Wz4lJWZyYWMxPl07XG4iCisgICAgICAgICAgICAgICAvLyB0aGlzIHJ1bGUgaXMgdXNlZCBmb3IgdmFsdWVzIGJldHdlZW4gMCBhbmQgMSBhbmQgb21pdHMgdGhlCisgICAgICAgICAgICAgICAvLyBpbnRlZ3JhbCBwYXJ0CisgICAgICAgICsgIiAgICAwLng6ID4lJWZyYWMyPjtcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCBpcyB1c2VkIHRvIGZvcm1hdCB0aGUgZnJhY3Rpb25hbCBwYXJ0IG9mIHRoZSBudW1iZXIgd2hlbgorICAgICAgICAvLyB0aGVyZSdzIGFuIGludGVncmFsIHBhcnQgYmVmb3JlIGl0IChhZ2Fpbiwgd2UgdHJ5IGFsbCBkZW5vbWluYXRvcnMKKyAgICAgICAgLy8gYW5kIHVzZSB0aGUgImJlc3QiIG9uZSkKKyAgICAgICAgKyAiJSVmcmFjMTpcbiIKKyAgICAgICAgICAgICAgIC8vIGZvciBldmVuIG11bHRpcGxlcyBvZiAxLzQsIGZvcm1hdCB0aGUgZnJhY3Rpb24gdXNpbmcgdGhlCisgICAgICAgICAgICAgICAvLyB0eXBvZ3JhcGhlcidzIGZyYWN0aW9ucworICAgICAgICArICIgICAgNDogPCUlcXVhcnRlcnM8O1xuIgorICAgICAgICAgICAgICAgLy8gZm9ybWF0IHRoZSB2YWx1ZSBhcyBhIG51bWJlciBvZiBlaWdodGhzLCBzaXh0ZWVudGhzLCBvcgorICAgICAgICAgICAgICAgLy8gdGhpcnR5LXNlY29uZHMsIHdoaWNoZXZlciBwcm9kdWNlcyB0aGUgbW9zdCBhY2N1cmF0ZSB2YWx1ZS4KKyAgICAgICAgICAgICAgIC8vIFRoZSBhcG9zdHJvcGhlIGF0IHRoZSBmcm9udCBvZiB0aGVzZSBydWxlcyBpcyBpZ25vcmVkLCBidXQKKyAgICAgICAgICAgICAgIC8vIGl0IG1ha2VzIHRoZSBzcGFjZSB0aGF0IGZvbGxvd3MgaXQgc2lnbmlmaWNhbnQuICBUaGlzIHB1dHMgYQorICAgICAgICAgICAgICAgLy8gc3BhY2UgYmV0d2VlbiB0aGUgdmFsdWUncyBpbnRlZ3JhbCBhbmQgZnJhY3Rpb25hbCBwYXJ0cyBzbworICAgICAgICAgICAgICAgLy8geW91IGNhbiByZWFkIGl0CisgICAgICAgICsgIiAgICA4OiAnIDwwPC84O1xuIgorICAgICAgICArICIgICAgMTY6ICcgPDA8LzE2O1xuIgorICAgICAgICArICIgICAgMzI6ICcgPDA8LzMyO1xuIgorICAgICAgICAgICAgICAgLy8gaWYgd2UgY2FuJ3QgcmVhc29uYWJseSBmb3JtYXQgdGhlIG51bWJlciBpbiBwb3dlcnMgb2YgMiwKKyAgICAgICAgICAgICAgIC8vIHRoZW4gc2hvdyBpdCBhcyBkb2xsYXJzIGFuZCBjZW50cworICAgICAgICArICIgICAgMTAwOiAuPDAwPDtcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCBpcyB1c2VkIHdoZW4gdGhlIGZyYWN0aW9uYWwgcGFydCBvZiB0aGUgdmFsdWUgc3RhbmRzCisgICAgICAgIC8vIGFsb25lCisgICAgICAgICsgIiUlZnJhYzI6XG4iCisgICAgICAgICsgIiAgICA0OiA8JSVxdWFydGVyczw7XG4iCisgICAgICAgICAgICAgICAvLyBmb3IgZnJhY3Rpb25zIHRoYXQgd2UgY2FuJ3Qgc2hvdyB1c2luZyB0eXBvZ3JhcGhlcidzIGZyYWN0aW9ucywKKyAgICAgICAgICAgICAgIC8vIHdlIGRvbid0IGhhdmUgdG8gcHV0IGEgc3BhY2UgYmVmb3JlIHRoZSBmcmFjdGlvbgorICAgICAgICArICIgICAgODogPDA8Lzg7XG4iCisgICAgICAgICsgIiAgICAxNjogPDA8LzE2O1xuIgorICAgICAgICArICIgICAgMzI6IDwwPC8zMjtcbiIKKyAgICAgICAgICAgICAgIC8vIGJ1dCBkb2xsYXJzIGFuZCBjZW50cyBsb29rIGJldHRlciB3aXRoIGEgbGVhZGluZyAwCisgICAgICAgICsgIiAgICAxMDA6IDAuPDAwPDtcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCBmb3JtYXRzIDEvNCwgMS8yLCBhbmQgMy80IHVzaW5nIHR5cG9ncmFwaGVyJ3MgZnJhY3Rpb25zCisgICAgICAgICsgIiUlcXVhcnRlcnM6XG4iCisgICAgICAgICsgIiAgICA7IFx1MDBiYzsgXHUwMGJkOyBcdTAwYmU7XG4iCisgICAgICAgIC8vIHRoZXJlIGFyZSB0aGUgbGVuaWVudC1wYXJzZSBydWxlcy4gIFRoZXNlIGFsbG93IHRoZSB1c2VyIHRvIHR5cGUKKyAgICAgICAgLy8gIjEvNCwiICIxLzIsIiBhbmQgIjMvNCIgaW5zdGVhZCBvZiB0aGVpciB0eXBvZ3JhcGhpY2FsIGNvdW50ZXJwYXJ0cworICAgICAgICAvLyBhbmQgc3RpbGwgaGF2ZSB0aGVtIGJlIHVuZGVyc3Rvb2QgYnkgdGhlIGZvcm1hdHRlcgorICAgICAgICArICIlJWxlbmllbnQtcGFyc2U6XG4iCisgICAgICAgICsgIiAgICAmICcxLzQnICwgXHUwMGJjXG4iCisgICAgICAgICsgIiAgICAmICcxLzInICwgXHUwMGJkXG4iCisgICAgICAgICsgIiAgICAmICczLzQnICwgXHUwMGJlXG47IjsKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gQ2hhbmdpbmcgZGltZW5zaW9ucworICAgIC8vCisgICAgLy8gVGhlIG5leHQgZmV3IGV4YW1wbGVzIGRlbW9uc3RyYXRlIHVzaW5nIGEgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IHRvCisgICAgLy8gY2hhbmdlIHRoZSB1bml0cyBhIHZhbHVlIGlzIGRlbm9taW5hdGVkIGluIGRlcGVuZGluZyBvbiBpdHMgbWFnbml0dWRlCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFRoZSBleGFtcGxlIHNob3dzIGxhcmdlIG51bWJlcnMgdGhlIHdheSB0aGV5IG9mdGVuIGFwcGVhciBpcyBud2VzcGFwZXJzOgorICAgICAqIDEsMjAwLDAwMCBpcyBmb3JtYXR0ZWQgYXMgIjEuMiBtaWxsaW9uIi4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBhYmJFbmdsaXNoID0KKyAgICAgICAgIj0jLCMjMD07XG4iCisgICAgICAgIC8vIHRoaXMgaXMgZmFpcmx5IHNlbGYtZXhwbGFuYXRvcnksIGJ1dCBub3RlIHRoYXQgdGhlIDw8IHN1YnN0aXR1dGlvbgorICAgICAgICAvLyBjYW4gc2hvdyB0aGUgZnJhY3Rpb25hbCBwYXJ0IG9mIHRoZSBzdWJzdGl0dXRpb24gdmFsdWUgaWYgdGhlIHVzZXIKKyAgICAgICAgLy8gd2FudHMgaXQKKyAgICAgICAgKyAiMSwwMDAsMDAwOiA8IyMwLiMjIzwgbWlsbGlvbjtcbiIKKyAgICAgICAgKyAiMSwwMDAsMDAwLDAwMDogPCMjMC4jIyM8IGJpbGxpb247XG4iCisgICAgICAgICsgIjEsMDAwLDAwMCwwMDAsMDAwOiA8IyMwLiMjIzwgdHJpbGxpb247XG4iOworCisgICAgLyoqCisgICAgICogVGhpcyBleGFtcGxlIHRha2VzIGEgbnVtYmVyIG9mIG1ldGVycyBhbmQgZm9ybWF0cyBpdCBpbiB3aGF0ZXZlciB1bml0CisgICAgICogd2lsbCBwcm9kdWNlIGEgbnVtYmVyIHdpdGggZnJvbSBvbmUgdG8gdGhyZWUgZGlnaXRzIGJlZm9yZSB0aGUgZGVjaW1hbAorICAgICAqIHBvaW50LiAgRm9yIGV4YW1wbGUsIDIzMCwwMDAgaXMgZm9ybWF0dGVkIGFzICIyMzAga20iLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIHVuaXRzID0KKyAgICAgICAgIiVtYWluOlxuIgorICAgICAgICAgICAgICAgLy8gZm9yIHZhbHVlcyBiZXR3ZWVuIDAgYW5kIDEsIGRlbGVnYXRlIHRvICUlc21hbGwKKyAgICAgICAgKyAiICAgIDAueDogPiUlc21hbGw+O1xuIgorICAgICAgICAgICAgICAgLy8gb3RoZXJ3aXNlLCBzaG93IGJldHdlZW4gMyBhbmQgNiBzaWduaWZpY2FudCBkaWdpdHMgb2YgdGhlIHZhbHVlCisgICAgICAgICAgICAgICAvLyBhbG9uZyB3aXRoIHRoZSBtb3N0IGFwcHJvcHJpYXRlIHVuaXQKKyAgICAgICAgKyAiICAgIDA6ID0jIzAuIyMjPSBtO1xuIgorICAgICAgICArICIgICAgMSwwMDA6IDwjIzAuIyMjPCBrbTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMDogPCMjMC4jIyM8IE1tO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMDogPCMjMC4jIyM8IEdtO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMCwwMDA6IDwjLCMjMC4jIyM8IFRtO1xuIgorICAgICAgICAvLyAlJXNtYWxsIGZvcm1hdHMgdGhlIG51bWJlciB3aGVuIGl0J3MgbGVzcyB0aGVuIDEuICBJdCBtdWx0aXBsaWVzIHRoZQorICAgICAgICAvLyB2YWx1ZSBieSBvbmUgYmlsbGlvbiwgYW5kIHRoZW4gdXNlcyAlJXNtYWxsMiB0byBhY3R1YWxseSBkbyB0aGUKKyAgICAgICAgLy8gZm9ybWF0dGluZy4KKyAgICAgICAgKyAiJSVzbWFsbDpcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwOiA8JSVzbWFsbDI8O1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGFjdHVhbGx5IGZvcm1hdHMgc21hbGwgdmFsdWVzLiAgJSVzbWFsbCBwYXNzZXMgdGhpcworICAgICAgICAvLyBydWxlIHNldCBhIG51bWJlciBvZiBwaWNvbWV0ZXJzLCBhbmQgaXQgdGFrZXMgY2FyZSBvZiBzY2FsaW5nIHVwIGFzCisgICAgICAgIC8vIGFwcHJvcHJpYXRlIGluIGV4YWN0bHkgdGhlIHNhbWUgd2F5ICVtYWluIGRvZXMgKHdlIGNhbid0IG5vcm1hbGx5CisgICAgICAgIC8vIGhhbmRsZSBmcmFjdGlvbmFsIHZhbHVlcyB0aGlzIHdheTogaGVyZSwgd2UncmUgY29uY2VybmVkIGFib3V0CisgICAgICAgIC8vIG1hZ25pdHVkZTsgbW9zdCBvZiB0aGUgdGltZSwgd2UncmUgY29uY2VybmVkIGFib3V0IHByZWNzaW9uKQorICAgICAgICArICIlJXNtYWxsMjpcbiIKKyAgICAgICAgKyAiICAgIDA6ID0jIzA9IHBtO1xuIgorICAgICAgICArICIgICAgMSwwMDA6IDwjIzAuIyMjPCBubTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMDogPCMjMC4jIyM8IFx1MDBiNW07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwOiA8IyMwLiMjIzwgbW07XG4iOworCisgICAgLyoqCisgICAgICogQSBtb3JlIGNvbXBsaWNhdGVkIG1lc3NhZ2UtZm9ybWF0dGluZyBleGFtcGxlLiAgSGVyZSwgaW4gYWRkaXRpb24gdG8KKyAgICAgKiBoYW5kbGluZyB0aGUgc2luZ3VsYXIgYW5kIHBsdXJhbCB2ZXJzaW9ucyBvZiB0aGUgd29yZCwgdGhlIHZhbHVlIGlzCisgICAgICogZGVub21pbmF0ZWQgaW4gYnl0ZXMsIGtpbG9ieXRlcywgb3IgbWVnYWJ5dGVzIGRlcGVuZGluZyBvbiBpdHMgbWFnbml0dWRlLgorICAgICAqIEFsc28gbm90aWNlIHRoYXQgaXQgY29ycmVjdGx5IHRyZWF0cyBhIGtpbG9ieXRlIGFzIDEsMDI0IGJ5dGVzIChub3QgMSwwMDApLAorICAgICAqIGFuZCBhIG1lZ2FieXRlIGFzIDEsMDI0IGtpbG9ieXRlcyAobm90IDEsMDAwKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBtZXNzYWdlMiA9CisgICAgICAgIC8vIHRoaXMgcnVsZSBzdXBwbGllcyB0aGUgc2hlbGwgb2YgdGhlIHNlbnRlbmNlCisgICAgICAgICJ4LjA6IFRoZXJlIDw8IGZyZWUgc3BhY2Ugb24gdGhlIGRpc2suO1xuIgorICAgICAgICAvLyBoYW5kbGUgc2luZ3VsYXIgYW5kIHBsdXJhbCBmb3JtcyBvZiAiYnl0ZSIgKGFuZCBmb3JtYXQgMCBhcworICAgICAgICAvLyAiVGhlcmUgaXMgbm8gZnJlZSBzcGFjZS4uLiIpCisgICAgICAgICsgIjA6IGlzIG5vO1xuIgorICAgICAgICArICJpcyBvbmUgYnl0ZSBvZjtcbiIKKyAgICAgICAgKyAiYXJlID0wPSBieXRlcyBvZjtcbiIKKyAgICAgICAgLy8gZm9yIHZhbHVlcyBhYm92ZSAxLDAyNCwgZm9ybWF0IHRoZSBudW1iZXIgaW4gSyAoc2luY2UgIksiIGlzIHVzdWFsbHkKKyAgICAgICAgLy8gcHJvbW91bmNlZCAiSyIgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0J3Mgc2luZ3VsYXIgb3IgcGx1cmFsLCB3ZQorICAgICAgICAvLyBkb24ndCB3b3JyeSBhYm91dCB0aGUgcGx1cmFsIGZvcm0pLiAgVGhlICIvMTAyNCIgaGVyZSBjYXVzZXMgdXMgdG8KKyAgICAgICAgLy8gdHJlYXQgYSBLIGFzIDEsMDI0IGJ5dGVzIHJhdGhlciB0aGFuIDEsMDAwIGJ5dGVzLgorICAgICAgICArICIxMDI0LzEwMjQ6IGlzIDwwPEsgb2Y7XG4iCisgICAgICAgIC8vIGZvciB2YWx1ZXMgYWJvdXQgMSwwNDgsNTc2LCBmb3JtYXQgdGhlIG51bWJlciBpbiBNYi4gIFNpbmNlICJNYiIgaXMKKyAgICAgICAgLy8gdXN1YWxseSBwcm9tb3VuY2VkICJtZWciIGluIHNpbmd1bGFyIGFuZCAibWVncyIgaW4gcGx1cmFsLCB3ZSBkbyBoYXZlCisgICAgICAgIC8vIGJvdGggc2luZ3VsYXIgYW5kIHBsdXJhbCBmb3Jtcy4gIEFnYWluLCBub3RpY2Ugd2UgdHJlYXQgYSBtZWdhYnl0ZQorICAgICAgICAvLyBhcyAxLDAyNCBraWxvYnl0ZXMuCisgICAgICAgICsgIjEsMDQ4LDU3Ni8xMDI0OiBpcyAxIE1iIG9mO1xuIgorICAgICAgICArICIyLDA5NywxNTIvMTAyNDogYXJlIDwwPCBNYiBvZjsiOworCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBBbHRlcm5hdGUgcmFkaWNlcworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGV4YW1wbGUgZm9ybWF0cyBhIG51bWJlciBpbiBkb3plbnMgYW5kIGdyb3NzLiAgVGhpcyBpcyBpbnRlbmRlZCB0bworICAgICAqIGRlbW9uc3RyYXRlIGhvdyB0aGlzIHJ1bGUgc2V0IGNhbiBiZSB1c2VkIHRvIGZvcm1hdCBudW1iZXJzIGluIHN5c3RlbXMKKyAgICAgKiBvdGhlciB0aGFuIGJhc2UgMTAuICBUaGUgIi8xMiIgYWZ0ZXIgdGhlIHJ1bGVzJyBiYXNlIHZhbHVlcyBjb250cm9scyB0aGlzLgorICAgICAqIEFsc28gbm90aWNlIHRoYXQgdGhlIGJhc2UgZG9lc24ndCBoYXZlIHRvIGJlIGNvbnNpc3RlbnQgdGhyb3VnaG91dCB0aGUKKyAgICAgKiB3aG9sZSBydWxlIHNldDogd2UgZ28gYmFjayB0byBiYXNlIDEwIGZvciB2YWx1ZXMgb3ZlciAxLDAwMC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBkb3plbnMgPQorICAgICAgICAvLyB3b3JkcyBmb3IgbnVtYmVycy4uLgorICAgICAgICAiemVybzsgb25lOyB0d287IHRocmVlOyBmb3VyOyBmaXZlOyBzaXg7XG4iCisgICAgICAgICsgInNldmVuOyBlaWdodDsgbmluZTsgdGVuOyBlbGV2ZW47XG4iCisgICAgICAgIC8vIGZvcm1hdCB2YWx1ZXMgb3ZlciAxMiBpbiBkb3plbnMKKyAgICAgICAgKyAiMTIvMTI6IDw8IGRvemVuWyBhbmQgPj5dO1xuIgorICAgICAgICAvLyBmb3JtYXQgdmFsdWVzIG92ZXIgMTQ0IGluIGdyb3NzCisgICAgICAgICsgIjE0NC8xMjogPDwgZ3Jvc3NbLCA+Pl07XG4iCisgICAgICAgIC8vIGZvcm1hdCB2YWx1ZXMgb3ZlciAxLDAwMCBpbiB0aG91c2FuZHMKKyAgICAgICAgKyAiMTAwMDogPDwgdGhvdXNhbmRbLCA+Pl07XG4iCisgICAgICAgIC8vIG92ZXJmbG93IHJ1bGUuICBGb3JtYXQgdmFsdWVzIG92ZXIgMTAsMDAwIGluIG51bWVyYWxzCisgICAgICAgICsgIjEwLDAwMDogPSMsIyMwPTtcbiI7CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIE1ham9yIGFuZCBtaW5vciB1bml0cworICAgIC8vCisgICAgLy8gVGhlc2UgZXhhbXBsZXMgc2hvdyBob3cgYSBzaW5nbGUgdmFsdWUgY2FuIGJlIGRpdmlkZWQgdXAgaW50byBtYWpvcgorICAgIC8vIGFuZCBtaW5vciB1bml0cyB0aGF0IGRvbid0IHJlbGF0ZSB0byBlYWNoIG90aGVyIGJ5IGEgZmFjdG9yIG9mIDEwLgorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGV4YW1wbGUgZm9ybWF0cyBhIG51bWJlciBvZiBzZWNvbmRzIGluIHNleGFnZXNpbWFsIG5vdGF0aW9uCisgICAgICogKGkuZS4sIGhvdXJzLCBtaW51dGVzLCBhbmQgc2Vjb25kcykuICAld2l0aC13b3JkcyBmb3JtYXRzIGl0IHdpdGgKKyAgICAgKiB3b3JkcyAoMzc0MCBpcyAiMSBob3VyLCAyIG1pbnV0ZXMsIDIwIHNlY29uZHMiKSBhbmQgJWluLW51bWVyYWxzCisgICAgICogZm9ybWF0cyBpdCBlbnRpcmVseSBpbiBudW1lcmFscyAoMzc0MCBpcyAiMTowMjoyMCIpLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGR1cmF0aW9uSW5TZWNvbmRzID0KKyAgICAgICAgLy8gbWFpbiBydWxlIHNldCBmb3IgZm9ybWF0dGluZyB3aXRoIHdvcmRzCisgICAgICAgICIld2l0aC13b3JkczpcbiIKKyAgICAgICAgICAgICAgIC8vIHRha2UgY2FyZSBvZiBzaW5ndWxhciBhbmQgcGx1cmFsIGZvcm1zIG9mICJzZWNvbmQiCisgICAgICAgICsgIiAgICAwIHNlY29uZHM7IDEgc2Vjb25kOyA9MD0gc2Vjb25kcztcbiIKKyAgICAgICAgICAgICAgIC8vIHVzZSAlJW1pbiB0byBmb3JtYXQgdmFsdWVzIGdyZWF0ZXIgdGhhbiA2MCBzZWNvbmRzCisgICAgICAgICsgIiAgICA2MC82MDogPCUlbWluPFssID4+XTtcbiIKKyAgICAgICAgICAgICAgIC8vIHVzZSAlJWhyIHRvIGZvcm1hdCB2YWx1ZXMgZ3JlYXRlciB0aGFuIDMsNjAwIHNlY29uZHMKKyAgICAgICAgICAgICAgIC8vICh0aGUgIj4+PiIgYmVsb3cgY2F1c2VzIHVzIHRvIHNlZSB0aGUgbnVtYmVyIG9mIG1pbnV0ZXMKKyAgICAgICAgICAgICAgIC8vIHdoZW4gd2hlbiB0aGVyZSBhcmUgemVybyBtaW51dGVzKQorICAgICAgICArICIgICAgMzYwMC82MDogPCUlaHI8WywgPj4+XTtcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCB0YWtlcyBjYXJlIG9mIHRoZSBzaW5ndWxhciBhbmQgcGx1cmFsIGZvcm1zCisgICAgICAgIC8vIG9mICJtaW51dGUiCisgICAgICAgICsgIiUlbWluOlxuIgorICAgICAgICArICIgICAgMCBtaW51dGVzOyAxIG1pbnV0ZTsgPTA9IG1pbnV0ZXM7XG4iCisgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgdGFrZXMgY2FyZSBvZiB0aGUgc2luZ3VsYXIgYW5kIHBsdXJhbCBmb3JtcworICAgICAgICAvLyBvZiAiaG91ciIKKyAgICAgICAgKyAiJSVocjpcbiIKKyAgICAgICAgKyAiICAgIDAgaG91cnM7IDEgaG91cjsgPTA9IGhvdXJzO1xuIgorCisgICAgICAgIC8vIG1haW4gcnVsZSBzZXQgZm9yIGZvcm1hdHRpbmcgaW4gbnVtZXJhbHMKKyAgICAgICAgKyAiJWluLW51bWVyYWxzOlxuIgorICAgICAgICAgICAgICAgLy8gdmFsdWVzIGJlbG93IDYwIHNlY29uZHMgYXJlIHNob3duIHdpdGggInNlYy4iCisgICAgICAgICsgIiAgICA9MD0gc2VjLjtcbiIKKyAgICAgICAgICAgICAgIC8vIGhpZ2hlciB2YWx1ZXMgYXJlIHNob3duIHdpdGggY29sb25zOiAlJW1pbi1zZWMgaXMgdXNlZCBmb3IKKyAgICAgICAgICAgICAgIC8vIHZhbHVlcyBiZWxvdyAzLDYwMCBzZWNvbmRzLi4uCisgICAgICAgICsgIiAgICA2MDogPSUlbWluLXNlYz07XG4iCisgICAgICAgICAgICAgICAvLyAuLi5hbmQgJSVoci1taW4tc2VjIGlzIHVzZWQgZm9yIHZhbHVlcyBvZiAzLDYwMCBzZWNvbmRzCisgICAgICAgICAgICAgICAvLyBhbmQgYWJvdmUKKyAgICAgICAgKyAiICAgIDM2MDA6ID0lJWhyLW1pbi1zZWM9O1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgY2F1c2VzIHZhbHVlcyBvZiBsZXNzIHRoYW4gMTAgbWludXRlcyB0byBzaG93IHdpdGhvdXQKKyAgICAgICAgLy8gYSBsZWFkaW5nIHplcm8KKyAgICAgICAgKyAiJSVtaW4tc2VjOlxuIgorICAgICAgICArICIgICAgMDogOj0wMD07XG4iCisgICAgICAgICsgIiAgICA2MC82MDogPDA8Pj47XG4iCisgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgaXMgdXNlZCBmb3IgdmFsdWVzIG9mIDMsNjAwIG9yIG1vcmUuICBNaW51dGVzIGFyZSBhbHdheXMKKyAgICAgICAgLy8gc2hvd24sIGFuZCBhbHdheXMgc2hvd24gd2l0aCB0d28gZGlnaXRzCisgICAgICAgICsgIiUlaHItbWluLXNlYzpcbiIKKyAgICAgICAgKyAiICAgIDA6IDo9MDA9O1xuIgorICAgICAgICArICIgICAgNjAvNjA6IDwwMDw+PjtcbiIKKyAgICAgICAgKyAiICAgIDM2MDAvNjA6IDwjLCMjMDw6Pj4+O1xuIgorICAgICAgICAvLyB0aGUgbGVuaWVudC1wYXJzZSBydWxlcyBhbGxvdyBzZXZlcmFsIGRpZmZlcmVudCBjaGFyYWN0ZXJzIHRvIGJlIHVzZWQKKyAgICAgICAgLy8gYXMgZGVsaW1pdGVycyBiZXR3ZWVuIGhvdXJzLCBtaW51dGVzLCBhbmQgc2Vjb25kcworICAgICAgICArICIlJWxlbmllbnQtcGFyc2U6XG4iCisgICAgICAgICsgIiAgICAmIDogPSAuID0gJyAnID0gLTtcbiI7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGV4YW1wbGUgZm9ybWF0cyBhIG51bWJlciBvZiBob3VycyBpbiBzZXhhZ2VzaW1hbCBub3RhdGlvbiAoaS5lLiwKKyAgICAgKiBob3VycywgbWludXRlcywgYW5kIHNlY29uZHMpLiAgJXdpdGgtd29yZHMgZm9ybWF0cyB0aGUgdmFsdWUgdXNpbmcKKyAgICAgKiB3b3JkcyBmb3IgdGhlIHVuaXRzLCBhbmQgJWluLW51bWVyYWxzIGZvcm1hdHMgdGhlIHZhbHVlIHVzaW5nIG9ubHkKKyAgICAgKiBudW1lcmFscy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBkdXJhdGlvbkluSG91cnMgPQorICAgICAgICAvLyBtYWluIGVudHJ5IHBvaW50IGZvciBmb3JtYXR0aW5nIHdpdGggd29yZHMKKyAgICAgICAgIiV3aXRoLXdvcmRzOlxuIgorICAgICAgICAgICAgICAgLy8gdGhpcyBydWxlIG9taXRzIG1pbnV0ZXMgYW5kIHNlY29uZHMgd2hlbiB0aGUgdmFsdWUgaXMKKyAgICAgICAgICAgICAgIC8vIGFuIGV2ZW4gbnVtYmVyIG9mIGhvdXJzCisgICAgICAgICsgIiAgICB4LjA6IDw8WywgPiUlbWluLXNlYz5dO1xuIgorICAgICAgICAgICAgICAgLy8gdGhlc2UgcnVsZXMgdGFrZSBjYXJlIG9mIHRoZSBzaW5ndWxhciBhbmQgcGx1cmFsIGZvcm1zCisgICAgICAgICAgICAgICAvLyBvZiBob3VycworICAgICAgICArICIgICAgMCBob3VyczsgMSBob3VyOyA9IywjIzA9IGhvdXJzO1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IHRha2VzIHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgdGhlIG51bWJlciBhbmQgbXVsdGlwbGllcworICAgICAgICAvLyBpdCBieSAzLDYwMCAodHVybmluZyBpdCBpbnRvIGEgbnVtYmVyIG9mIHNlY29uZHMpLiAgVGhlbiBpdCBkZWxlZ2F0ZXMKKyAgICAgICAgLy8gdG8gJSVtaW4tc2VjLWltcGxlbWVudGF0aW9uIHRvIGZvcm1hdCB0aGUgcmVzdWx0aW5nIHZhbHVlCisgICAgICAgICsgIiUlbWluLXNlYzpcbiIKKyAgICAgICAgKyAiICAgIDM2MDA6ID0lJW1pbi1zZWMtaW1wbGVtZW50YXRpb249O1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGZvcm1hdHMgdGhlIHNlY29uZHMgYXMgZWl0aGVyIHNlY29uZHMgb3IgbWludXRlcyBhbmQKKyAgICAgICAgLy8gc2Vjb25kcywgYW5kIHRha2VzIGNhcmUgb2YgdGhlIHNpbmd1bGFyIGFuZCBwbHVyYWwgZm9ybXMgb2YKKyAgICAgICAgLy8gIm1pbnV0ZSIgYW5kICJzZWNvbmQiCisgICAgICAgICsgIiUlbWluLXNlYy1pbXBsZW1lbnRhdGlvbjpcbiIKKyAgICAgICAgKyAiICAgIDAgc2Vjb25kczsgMSBzZWNvbmQ7ID0wPSBzZWNvbmRzO1xuIgorICAgICAgICArICIgICAgNjAvNjA6IDEgbWludXRlWywgPj5dO1xuIgorICAgICAgICArICIgICAgMTIwLzYwOiA8MDwgbWludXRlc1ssID4+XTtcbiIKKworICAgICAgICAvLyBtYWluIGVudHJ5IHBvaW50IGZvciBmb3JtYXR0aW5nIGluIG51bWVyYWxzCisgICAgICAgICsgIiVpbi1udW1lcmFsczpcbiIKKyAgICAgICAgICAgICAgIC8vIHNob3cgbWludXRlcyBldmVuIGZvciBldmVuIG51bWJlcnMgb2YgaG91cnMKKyAgICAgICAgKyAiICAgIHguMDogPCMsIyMwPDowMDtcbiIKKyAgICAgICAgICAgICAgIC8vIGRlbGVnYXRlIHRvICUlbWluLXNlYzIgdG8gZm9ybWF0IG1pbnV0ZXMgYW5kIHNlY29uZHMKKyAgICAgICAgKyAiICAgIHgueDogPCMsIyMwPDo+JSVtaW4tc2VjMj47XG4iCisgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgZm9ybWF0cyBtaW51dGVzIHdoZW4gdGhlcmUgaXMgYW4gZXZlbiBudW1iZXIgb2YKKyAgICAgICAgLy8gbWludXRlcywgYW5kIGRlbGVnYXRlcyB0byAlJW1pbi1zZWMyLWltcGxlbWVudGF0aW9uIHdoZW4gdGhlcmUKKyAgICAgICAgLy8gYXJlIHNlY29uZHMKKyAgICAgICAgKyAiJSVtaW4tc2VjMjpcbiIKKyAgICAgICAgKyAiICAgIDYwOiA8MDA8O1xuIgorICAgICAgICArICIgICAgMzYwMDogPCUlbWluLXNlYzItaW1wbGVtZW50YXRpb248O1xuIgorICAgICAgICAvLyB0aGVzZSB0d28gcnVsZSBzZXRzIGFyZSB1c2VkIHRvIGZvcm1hdCB0aGUgbWludXRlcyBhbmQgc2Vjb25kcworICAgICAgICArICIlJW1pbi1zZWMyLWltcGxlbWVudGF0aW9uOlxuIgorICAgICAgICAgICAgICAgLy8gaWYgdGhlcmUgYXJlIGZld2VyIHRoYW4gNjAgc2Vjb25kcywgc2hvdyB0aGUgbWludXRlcyBhbnl3YXkKKyAgICAgICAgKyAiICAgIDA6IDAwOj0wMD07XG4iCisgICAgICAgICAgICAgICAvLyBpZiB0aGVyZSBhcmUgbWludXRlcywgZm9ybWF0IHRoZW0gdG9vLCBhbmQgYWx3YXlzIHVzZSAyIGRpZ2l0cworICAgICAgICAgICAgICAgLy8gZm9yIGJvdGggbWludXRlcyBhbmQgc2Vjb25kcworICAgICAgICArICIgICAgNjA6ID0lJW1pbi1zZWMzPTtcbiIKKyAgICAgICAgKyAiJSVtaW4tc2VjMzpcbiIKKyAgICAgICAgKyAiICAgIDA6IDo9MDA9O1xuIgorICAgICAgICArICIgICAgNjAvNjA6IDwwMDw+PjtcbiIKKyAgICAgICAgLy8gdGhlIGxlbmllbnQtcGFyc2UgcnVsZXMgYWxsb3cgdGhlIHVzZXIgdG8gdXNlIGFueSBvZiBzZXZlcmFsCisgICAgICAgIC8vIGNoYXJhY3RlcnMgYXMgZGVsaW1pdGVycyBiZXR3ZWVuIGhvdXJzLCBtaW51dGVzLCBhbmQgc2Vjb25kcworICAgICAgICArICIlJWxlbmllbnQtcGFyc2U6XG4iCisgICAgICAgICsgIiAgICAmIDogPSAuID0gJyAnID0gLTtcbiI7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIHJ1bGUgc2V0IGZvcm1hdHMgYSBudW1iZXIgb2YgcG91bmRzIGFzIHBvdW5kcywgc2hpbGxpbmdzLCBhbmQKKyAgICAgKiBwZW5jZSBpbiB0aGUgb2xkIEVuZ2xpc2ggc3lzdGVtIG9mIGN1cnJlbmN5LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIHBvdW5kc1NoaWxsaW5nc0FuZFBlbmNlID0KKyAgICAgICAgLy8gZm9yIHZhbHVlcyBvZiAxIG9yIG1vcmUsIGZvcm1hdCB0aGUgaW50ZWdyYWwgcGFydCB3aXRoIGEgcG91bmQKKyAgICAgICAgLy8gc2lnbiBpbiBmcm9udCwgYW5kIHNob3cgc2hpbGxpbmdzIGFuZCBwZW5jZSBpZiBuZWNlc3NhcnkKKyAgICAgICAgIiVtYWluOlxuIgorICAgICAgICArICIgICAgeC4wOiBcdTAwYTM8IywjIzA8WyA+JSVzaGlsbGluZ3MtYW5kLXBlbmNlPl07XG4iCisgICAgICAgIC8vIGZvciB2YWx1ZXMgYmV0d2VlbiAwIGFuZCAxLCBvbWl0IHRoZSBudW1iZXIgb2YgcG91bmRzCisgICAgICAgICsgIiAgICAwLng6ID4lJXBlbmNlLWFsb25lPjtcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCBpcyB1c2VkIHRvIHNob3cgc2hpbGxpbmdzIGFuZCBwZW5jZS4gIEl0IG11bHRpcGxpZXMKKyAgICAgICAgLy8gdGhlIGZyYWN0aW9uYWwgcGFydCBvZiB0aGUgbnVtYmVyIGJ5IDI0MCAodGhlIG51bWJlciBvZiBwZW5jZSBpbiBhCisgICAgICAgIC8vIHBvdW5kKSBhbmQgdXNlcyAlJXNoaWxsaW5ncy1hbmQtcGVuY2UtaW1wbGVtZW50YXRpb24gdG8gZm9ybWF0CisgICAgICAgIC8vIHRoZSByZXN1bHQKKyAgICAgICAgKyAiJSVzaGlsbGluZ3MtYW5kLXBlbmNlOlxuIgorICAgICAgICArICIgICAgMjQwOiA8JSVzaGlsbGluZ3MtYW5kLXBlbmNlLWltcGxlbWVudGF0aW9uPDtcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCBpcyB1c2VkIHRvIHNob3cgc2hpbGxpbmdzIGFuZCBwZW5jZSB3aGVuIHRoZXJlIGFyZQorICAgICAgICAvLyBubyBwb3VuZHMuICBJdCBhbHNvIG11bHRpcGxpZXMgdGhlIHZhbHVlIGJ5IDI0MCwgYW5kIHRoZW4gaXQgdXNlcworICAgICAgICAvLyAlJXBlbmNlLWFsb25lLWltcGxlbWVudGF0aW9uIHRvIGZvcm1hdCB0aGUgcmVzdWx0LgorICAgICAgICArICIlJXBlbmNlLWFsb25lOlxuIgorICAgICAgICArICIgICAgMjQwOiA8JSVwZW5jZS1hbG9uZS1pbXBsZW1lbnRhdGlvbjw7XG4iCisgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgZm9ybWF0cyBhIG51bWJlciBvZiBwZW5jZSB3aGVuIHdlIGtub3cgd2UgYWxzbworICAgICAgICAvLyBoYXZlIHBvdW5kcy4gIFdlIGFsd2F5cyBzaG93IHNoaWxsaW5ncyAod2l0aCBhIDAgaWYgbmVjZXNzYXJ5KSwKKyAgICAgICAgLy8gYnV0IG9ubHkgc2hvdyBwZW5jZSBpZiB0aGUgdmFsdWUgaXNuJ3QgYW4gZXZlbiBudW1iZXIgb2Ygc2hpbGxpbmdzCisgICAgICAgICsgIiUlc2hpbGxpbmdzLWFuZC1wZW5jZS1pbXBsZW1lbnRhdGlvbjpcbiIKKyAgICAgICAgKyAiICAgIDAvOyAwLz0wPTtcbiIKKyAgICAgICAgKyAiICAgIDEyLzEyOiA8MDwvWz4wPl07XG4iCisgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgZm9ybWF0cyBhIG51bWJlciBvZiBwZW5jZSB3aGVuIHdlIGtub3cgdGhlcmUgYXJlCisgICAgICAgIC8vIG5vIHBvdW5kcy4gIFZhbHVlcyBsZXNzIHRoYW4gYSBzaGlsbGluZyBhcmUgc2hvd24gd2l0aCAiZC4iICh0aGUKKyAgICAgICAgLy8gYWJicmV2aWF0aW9uIGZvciBwZW5jZSksIGFuZCB2YWx1ZXMgZ3JlYXRlciB0aGFuIGEgc2hpbGxpbmcgYXJlCisgICAgICAgIC8vIHNob3duIHdpdGggYSBzaGlsbGluZyBiYXIgKGFuZCB3aXRob3V0IHBlbmNlIHdoZW4gdGhlIHZhbHVlIGlzCisgICAgICAgIC8vIGFuIGV2ZW4gbnVtYmVyIG9mIHNoaWxsaW5ncykKKyAgICAgICAgKyAiJSVwZW5jZS1hbG9uZS1pbXBsZW1lbnRhdGlvbjpcbiIKKyAgICAgICAgKyAiICAgID0wPSBkLjtcbiIKKyAgICAgICAgKyAiICAgIDEyLzEyOiA8MDwvWz4wPl07XG4iOworCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBBbHRlcm5hdGUgbnVtZXJhdGlvbiBzeXN0ZW1zCisgICAgLy8KKyAgICAvLyBUaGVzZSBleGFtcGxlcyBzaG93IGhvdyBSdWxlQmFzZWROdW1iZXJGb3JtYXQgY2FuIGJlIHVzZWQgdG8gZm9ybWF0CisgICAgLy8gbnVtYmVycyB1c2luZyBub24tcG9zaXRpb25hbCBudW1lcmF0aW9uIHN5c3RlbXMuCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIEFyYWJpYyBkaWdpdHMuICBUaGlzIGV4YW1wbGUgZm9ybWF0cyBudW1iZXJzIGluIEFyYWJpYyBudW1lcmFscy4KKyAgICAgKiBOb3JtYWxseSwgeW91J2QgZG8gdGhpcyB3aXRoIERlY2ltYWxGb3JtYXQsIGJ1dCB0aGlzIHNob3dzIHRoYXQKKyAgICAgKiBSdWxlQmFzZWROdW1iZXJGb3JtYXQgY2FuIGhhbmRsZSBpdCB0b28uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgYXJhYmljTnVtZXJhbHMgPQorICAgICAgICAiMDsgMTsgMjsgMzsgNDsgNTsgNjsgNzsgODsgOTtcbiIKKyAgICAgICAgKyAiMTA6IDw8Pj47XG4iCisgICAgICAgICsgIjEwMDogPDw+Pj47XG4iCisgICAgICAgICsgIjEwMDA6IDw8LD4+PjtcbiIKKyAgICAgICAgKyAiMSwwMDAsMDAwOiA8PCw+Pj47XG4iCisgICAgICAgICsgIjEsMDAwLDAwMCwwMDA6IDw8LD4+PjtcbiIKKyAgICAgICAgKyAiMSwwMDAsMDAwLDAwMCwwMDA6IDw8LD4+PjtcbiIKKyAgICAgICAgKyAiMSwwMDAsMDAwLDAwMCwwMDAsMDAwOiA9IywjIzA9O1xuIgorICAgICAgICArICIteDogLT4+O1xuIgorICAgICAgICArICJ4Lng6IDw8Lj4+OyI7CisKKyAgICAvKioKKyAgICAgKiBXb3JkcyBmb3IgZGlnaXRzLiAgRm9sbG93cyB0aGUgc2FtZSBwYXR0ZXJuIGFzIHRoZSBBcmFiaWMtbnVtZXJhbHMKKyAgICAgKiBleGFtcGxlIGFib3ZlLCBidXQgdXNlcyB3b3JkcyBmb3IgdGhlIHZhcmlvdXMgZGlnaXRzIChlLmcuLCAxMjMgY29tZXMKKyAgICAgKiBvdXQgYXMgIm9uZSB0d28gdGhyZWUiKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyB3b3Jkc0ZvckRpZ2l0cyA9CisgICAgICAgICIteDogbWludXMgPj47XG4iCisgICAgICAgICsgIngueDogPDwgcG9pbnQgPj47XG4iCisgICAgICAgICsgInplcm87IG9uZTsgdHdvOyB0aHJlZTsgZm91cjsgZml2ZTsgc2l4O1xuIgorICAgICAgICArICIgICAgc2V2ZW47IGVpZ2h0OyBuaW5lO1xuIgorICAgICAgICArICIxMDogPDwgPj47XG4iCisgICAgICAgICsgIjEwMDogPDwgPj4+O1xuIgorICAgICAgICArICIxMDAwOiA8PCwgPj4+O1xuIgorICAgICAgICArICIxLDAwMCwwMDA6IDw8LCA+Pj47XG4iCisgICAgICAgICsgIjEsMDAwLDAwMCwwMDA6IDw8LCA+Pj47XG4iCisgICAgICAgICsgIjEsMDAwLDAwMCwwMDAsMDAwOiA8PCwgPj4+O1xuIgorICAgICAgICArICIxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07XG4iOworCisgICAgLyoqCisgICAgICogVGhpcyBleGFtcGxlIGZvcm1hdHMgbnVtYmVycyB1c2luZyBDaGluZXNlIGNoYXJhY3RlcnMgaW4gdGhlIEFyYWJpYworICAgICAqIHBsYWNlLXZhbHVlIG1ldGhvZC4gIFRoaXMgd2FzIHVzZWQgaGlzdG9yaWNhbGx5IGluIENoaW5hIGZvciBhIHdoaWxlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGNoaW5lc2VQbGFjZVZhbHVlID0KKyAgICAgICAgIlx1MzAwNzsgXHU0ZTAwOyBcdTRlOGM7IFx1NGUwOTsgXHU1NmRiOyBcdTRlOTQ7IFx1NTE2ZDsgXHU0ZTAzOyBcdTUxNmI7IFx1NGU1ZDtcbiIKKyAgICAgICAgKyAiMTA6IDw8Pj47XG4iCisgICAgICAgICsgIjEwMDogPDw+Pj47XG4iCisgICAgICAgICsgIjEwMDA6IDw8Pj4+O1xuIgorICAgICAgICArICIxLDAwMCwwMDA6IDw8Pj4+O1xuIgorICAgICAgICArICIxLDAwMCwwMDAsMDAwOiA8PD4+PjtcbiIKKyAgICAgICAgKyAiMSwwMDAsMDAwLDAwMCwwMDA6IDw8Pj4+O1xuIgorICAgICAgICArICIxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07XG4iOworCisgICAgLyoqCisgICAgICogUm9tYW4gbnVtZXJhbHMuICBUaGlzIGV4YW1wbGUgaGFzIHR3byB2YXJpYW50czogJW1vZGVybiBzaG93cyBob3cgbGFyZ2UKKyAgICAgKiBudW1iZXJzIGFyZSB1c3VhbGx5IGhhbmRsZWQgdG9kYXk7ICVoaXN0b3JpY2FsIHNlcyB0aGUgb2xkZXIgc3ltYm9scyBmb3IKKyAgICAgKiB0aG91c2FuZHMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgcm9tYW5OdW1lcmFscyA9CisgICAgICAgICIlaGlzdG9yaWNhbDpcbiIKKyAgICAgICAgKyAiICAgID0lbW9kZXJuPTtcbiIKKyAgICAgICAgICAgICAgIC8vIGluIGVhcmx5IFJvbWFuIG51bWVyYWxzLCAxLDAwMCB3YXMgc2hvd24gd2l0aCBhIGNpcmNsZQorICAgICAgICAgICAgICAgLy8gYmlzZWN0ZWQgYnkgYSB2ZXJ0aWNhbCBsaW5lLiAgQWRkaXRpb25hbCB0aG91c2FuZHMgd2VyZQorICAgICAgICAgICAgICAgLy8gc2hvd24gYnkgYWRkaW5nIG1vcmUgY29uY2VudHJpYyBjaXJjbGVzLCBhbmQgZml2ZXMgd2VyZQorICAgICAgICAgICAgICAgLy8gc2hvd24gYnkgY3V0dGluZyB0aGUgc3ltYm9sIGZvciBuZXh0LWhpZ2hlciBwb3dlciBvZiAxMAorICAgICAgICAgICAgICAgLy8gaW4gaGFsZiAodGhlIGxldHRlciBEIGZvciA1MDAgZXZvbHZlZCBmcm9tIHRoaXMpLgorICAgICAgICAgICAgICAgLy8gV2UgY291bGQgZ28gYmV5b25kIDQwLDAwMCwgYnV0IFVuaWNvZGUgZG9lc24ndCBlbmNvZGUKKyAgICAgICAgICAgICAgIC8vIHRoZSBzeW1ib2xzIGZvciBoaWdoZXIgbnVtYmVycy8KKyAgICAgICAgKyAiICAgIDEwMDA6IFx1MjE4MFs+Pl07IDIwMDA6IFx1MjE4MFx1MjE4MFs+Pl07IDMwMDA6IFx1MjE4MFx1MjE4MFx1MjE4MFs+Pl07IDQwMDA6IFx1MjE4MFx1MjE4MVs+Pl07XG4iCisgICAgICAgICsgIiAgICA1MDAwOiBcdTIxODFbPj5dOyA2MDAwOiBcdTIxODFcdTIxODBbPj5dOyA3MDAwOiBcdTIxODFcdTIxODBcdTIxODBbPj5dO1xuIgorICAgICAgICArICIgICAgODAwMDogXHUyMTgxXHUyMTgwXHUyMTgwXHUyMTgwWz4+XTsgOTAwMDogXHUyMTgwXHUyMTgyWz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwLDAwMDogXHUyMTgyWz4+XTsgMjAsMDAwOiBcdTIxODJcdTIxODJbPj5dOyAzMCwwMDA6IFx1MjE4Mlx1MjE4Mlx1MjE4Mls+Pl07XG4iCisgICAgICAgICsgIiAgICA0MCwwMDA6ID0jLCMjMD07XG4iCisgICAgICAgICsgIiVtb2Rlcm46XG4iCisgICAgICAgICsgIiAgICA7IEk7IElJOyBJSUk7IElWOyBWOyBWSTsgVklJOyBWSUlJOyBJWDtcbiIKKyAgICAgICAgKyAiICAgIDEwOiBYWz4+XTsgMjA6IFhYWz4+XTsgMzA6IFhYWFs+Pl07IDQwOiBYTFs+Pl07IDUwOiBMWz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDYwOiBMWFs+Pl07IDcwOiBMWFhbPj5dOyA4MDogTFhYWFs+Pl07IDkwOiBYQ1s+Pl07XG4iCisgICAgICAgICsgIiAgICAxMDA6IENbPj5dOyAyMDA6IENDWz4+XTsgMzAwOiBDQ0NbPj5dOyA0MDA6IENEWz4+XTsgNTAwOiBEWz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDYwMDogRENbPj5dOyA3MDA6IERDQ1s+Pl07IDgwMDogRENDQ1s+Pl07IDkwMDogQ01bPj5dO1xuIgorICAgICAgICAgICAgICAgLy8gaW4gbW9kZXJuIFJvbWFuIG51bWVyYWxzLCBoaWdoIG51bWJlcnMgYXJlIGdlbmVyYWxseSBzaG93bgorICAgICAgICAgICAgICAgLy8gYnkgcGxhY2luZyBhIGJhciBvdmVyIHRoZSBsZXR0ZXJzIGZvciB0aGUgbG93ZXIgbnVtYmVyczoKKyAgICAgICAgICAgICAgIC8vIHRoZSBiYXIgbXVsdGlwbGllZCBhIGxldHRlcidzIHZhbHVlIGJ5IDEsMDAwCisgICAgICAgICsgIiAgICAxMDAwOiBNWz4+XTsgMjAwMDogTU1bPj5dOyAzMDAwOiBNTU1bPj5dOyA0MDAwOiBNVlx1MDMwNls+Pl07XG4iCisgICAgICAgICsgIiAgICA1MDAwOiBWXHUwMzA2Wz4+XTsgNjAwMDogVlx1MDMwNk1bPj5dOyA3MDAwOiBWXHUwMzA2TU1bPj5dO1xuIgorICAgICAgICArICIgICAgODAwMDogVlx1MDMwNk1NTVs+Pl07IDkwMDA6IE1YXHUwMzA2Wz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwLDAwMDogWFx1MDMwNls+Pl07IDIwLDAwMDogWFx1MDMwNlhcdTAzMDZbPj5dOyAzMCwwMDA6IFhcdTAzMDZYXHUwMzA2WFx1MDMwNls+Pl07XG4iCisgICAgICAgICsgIiAgICA0MCwwMDA6IFhcdTAzMDZMXHUwMzA2Wz4+XTsgNTAsMDAwOiBMXHUwMzA2Wz4+XTsgNjAsMDAwOiBMXHUwMzA2WFx1MDMwNls+Pl07XG4iCisgICAgICAgICsgIiAgICA3MCwwMDA6IExcdTAzMDZYXHUwMzA2WFx1MDMwNls+Pl07IDgwLDAwMDogTFx1MDMwNlhcdTAzMDZYXHUwMzA2WFx1MDMwNls+Pl07XG4iCisgICAgICAgICsgIiAgICA5MCwwMDA6IFhcdTAzMDZDXHUwMzA2Wz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMCwwMDA6IENcdTAzMDZbPj5dOyAyMDAsMDAwOiBDXHUwMzA2Q1x1MDMwNls+Pl07IDMwMCwwMDA6IENcdTAzMDZDXHUwMzA2Wz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDQwMCwwMDA6IENcdTAzMDZEXHUwMzA2Wz4+XTsgNTAwLDAwMDogRFx1MDMwNls+Pl07IDYwMCwwMDA6IERcdTAzMDZDXHUwMzA2Wz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDcwMCwwMDA6IERcdTAzMDZDXHUwMzA2Q1x1MDMwNls+Pl07IDgwMCwwMDA6IERcdTAzMDZDXHUwMzA2Q1x1MDMwNkNcdTAzMDZbPj5dO1xuIgorICAgICAgICArICIgICAgOTAwLDAwMDogPSMsIyMwPTtcbiI7CisKKyAgICAvKioKKyAgICAgKiBIZWJyZXcgYWxwaGFiZXRpYyBudW1lcmFscy4gIEJlZm9yZSBhZG9wdGlvbiBvZiBBcmFiaWMgbnVtZXJhbHMsIEhlYnJldyBzcGVha2VycworICAgICAqIHVzZWQgdGhlIGxldHRlciBvZiB0aGVpciBhbHBoYWJldCBhcyBudW1lcmFscy4gIFRoZSBmaXJzdCBuaW5lIGxldHRlcnMgb2YKKyAgICAgKiB0aGUgYWxwaGFiZXQgcmVwZXNlbnRlZCB0aGUgdmFsdWVzIGZyb20gMSB0byA5LCB0aGUgc2Vjb25kIG5pbmUgbGV0dGVycyB0aGUKKyAgICAgKiBtdWx0aXBsZXMgb2YgMTAsIGFuZCB0aGUgcmVtYWluaW5nIGxldHRlcnMgdGhlIG11bHRpcGxlcyBvZiAxMDAuICBTaW5jZSB0aGV5CisgICAgICogcmFuIG91dCBvZiBsZXR0ZXJzIGF0IDQwMCwgdGhlIHJlbWFpbmluZyBtdWx0aXBsZXMgb2YgMTAwIHdlcmUgcmVwcmVzZW50ZWQKKyAgICAgKiB1c2luZyBjb21iaW5hdGlvbnMgb2YgdGhlIGV4aXN0aW5nIGxldHRlcnMgZm9yIHRoZSBodW5kcmVkcy4gIE51bWJlcnMgd2VyZQorICAgICAqIGRpc3Rpbmd1aXNoZWQgZnJvbSB3b3JkcyBpbiBhIG51bWJlciBvZiBkaWZmZXJlbnQgd2F5czogdGhlIHdheSBzaG93biBoZXJlCisgICAgICogdXNlcyBhIHNpbmdsZSBtYXJrIGFmdGVyIGEgbnVtYmVyIGNvbnNpc3Rpbmcgb2Ygb25lIGxldHRlciwgYW5kIGEgZG91YmxlCisgICAgICogbWFyayBiZXR3ZWVuIHRoZSBsYXN0IHR3byBsZXR0ZXJzIG9mIGEgbnVtYmVyIGNvbnNpc3Rpbmcgb2YgdHdvIG9yIG1vcmUKKyAgICAgKiBsZXR0ZXJzLiAgVHdvIGRvdHMgb3ZlciBhIGxldHRlciBtdWx0aXBsaWVkIGl0cyB2YWx1ZSBieSAxLDAwMC4gIEFsc28sIHNpbmNlCisgICAgICogdGhlIGxldHRlciBmb3IgMTAgaXMgdGhlIGZpcnN0IGxldHRlciBvZiBHb2QncyBuYW1lIGFuZCB0aGUgbGV0dGVycyBmb3IgNSBhbmQgNgorICAgICAqIGFyZSBsZXR0ZXJzIGluIEdvZCdzIG5hbWUsIHdoaWNoIHdhc24ndCBzdXBwb3NlZCB0byBiZSB3cml0dGVuIG9yIHNwb2tlbiwgMTUgYW5kCisgICAgICogMTYgd2VyZSB1c3VhbGx5IHdyaXR0ZW4gYXMgOSArIDYgYW5kIDkgKyA3IGluc3RlYWQgb2YgMTAgKyA1IGFuZCAxMCArIDYuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgaGVicmV3QWxwaGFiZXRpYyA9CisgICAgICAgIC8vIGxldHRlcnMgZm9yIHRoZSBvbmVzCisgICAgICAgICIlJW9uZXM6XG4iCisgICAgICAgICsgIiAgICAobm8gemVybyk7IFx1MDVkMDsgXHUwNWQxOyBcdTA1ZDI7IFx1MDVkMzsgXHUwNWQ0OyBcdTA1ZDU7IFx1MDVkNjsgXHUwNWQ3OyBcdTA1ZDg7XG4iCisgICAgICAgIC8vIGxldHRlcnMgZm9yIHRoZSB0ZW5zCisgICAgICAgICsgIiUldGVuczpcbiIKKyAgICAgICAgKyAiICAgIDsgXHUwNWQ5OyBcdTA1ZGI7IFx1MDVkYzsgXHUwNWRlOyBcdTA1ZTA7IFx1MDVlMTsgXHUwNWUyOyBcdTA1ZTQ7IFx1MDVlNjtcbiIKKyAgICAgICAgLy8gbGV0dGVycyBmb3IgdGhlIGZpcnN0IGZvdXIgaHVuZHJlZHMKKyAgICAgICAgKyAiJSVodW5kcmVkczpcbiIKKyAgICAgICAgKyAiICAgIDsgXHUwNWU3OyBcdTA1ZTg7IFx1MDVlOTsgXHUwNWVhO1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGlzIHVzZWQgdG8gd3JpdGUgdGhlIGNvbWJpbmF0aW9uIG9mIHRoZSB0ZW5zIGFuZCBvbmVzIGRpZ2l0cworICAgICAgICAvLyB3aGVuIHdlIGtub3cgdGhhdCBubyBvdGhlciBkaWdpdHMgcHJlY2VkZSB0aGVtOiB0aGV5IHB1dCB0aGUgbnVtZXJhbCBtYXJrcworICAgICAgICAvLyBpbiB0aGUgcmlnaHQgcGxhY2UgYW5kIHByb3Blcmx5IGhhbmRsZSAxNSBhbmQgMTYgKEknbSB1c2luZyB0aGUgbWF0aGVtYXRpY2FsCisgICAgICAgIC8vIHByaW1lIGNoYXJhY3RlcnMgZm9yIHRoZSBudW1lcmFsIG1hcmtzIGJlY2F1c2UgbXkgVW5pY29kZSBmb250IGRvZXNuJ3QKKyAgICAgICAgLy8gaW5jbHVkZSB0aGUgcmVhbCBIZWJyZXcgY2hhcmFjdGVycywgd2hpY2ggbG9vayBqdXN0IGxpa2UgdGhlIHByaW1lIG1hcmtzKQorICAgICAgICArICIlJXRlbnMtYW5kLW9uZXM6XG4iCisgICAgICAgICAgICAgICAvLyBmb3IgdmFsdWVzIGxlc3MgdGhhbiAxMCwganVzdCB1c2UgJSVvbmVzIGFuZCBwdXQgdGhlIG51bWVyYWwgbWFyaworICAgICAgICAgICAgICAgLy8gYWZ0ZXJ3YXJkCisgICAgICAgICsgIiAgICA9JSVvbmVzPVx1MjAzMjtcbiIKKyAgICAgICAgICAgICAgIC8vIHB1dCB0aGUgbnVtZXJhbCBtYXJrIGF0IHRoZSBlbmQgZm9yIDEwLCBidXQgaW4gdGhlIG1pZGRsZSBmb3IKKyAgICAgICAgICAgICAgIC8vIDExIHRocm91Z2ggMTQKKyAgICAgICAgKyAiICAgIDEwOiA8JSV0ZW5zPFx1MjAzMjsgPCUldGVuczxcdTIwMzM+JSVvbmVzPjtcbiIKKyAgICAgICAgICAgICAgIC8vIHNwZWNpYWwtY2FzZSAxNSBhbmQgMTYKKyAgICAgICAgKyAiICAgIDE1OiBcdTA1ZDhcdTIwMzNcdTA1ZDU7IDE2OiBcdTA1ZDhcdTIwMzNcdTA1ZDY7XG4iCisgICAgICAgICAgICAgICAvLyBnbyBiYWNrIHRvIHRoZSBub3JtYWwgbWV0aG9kIGF0IDE3CisgICAgICAgICsgIiAgICAxNzogPCUldGVuczxcdTIwMzM+JSVvbmVzPjtcbiIKKyAgICAgICAgICAgICAgIC8vIHJlcGVhdCB0aGUgcnVsZXMgZm9yIDEwIGFuZCAxMSB0byBjb3ZlciB0aGUgdmFsdWVzIGZyb20gMjAgdG8gOTkKKyAgICAgICAgKyAiICAgIDIwOiA8JSV0ZW5zPFx1MjAzMjsgPCUldGVuczxcdTIwMzM+JSVvbmVzPjtcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCBpcyB1c2VkIHRvIGZvcm1hdCBudW1iZXJzIGJlbG93IDEsMDAwLiAgSXQgcmVsaWVzIG9uCisgICAgICAgIC8vICUldGVucy1hbmQtb25lcyB0byBmb3JtYXQgdGhlIHRlbnMgYW5kIG9uZXMgcGxhY2VzLCBhbmQgYWRkcyBsb2dpYworICAgICAgICAvLyB0byBoYW5kbGUgdGhlIGhpZ2ggaHVuZHJlZHMgYW5kIHRoZSBudW1lcmFsIG1hcmtzIHdoZW4gdGhlcmUgaXMgbm8KKyAgICAgICAgLy8gdGVucyBkaWdpdC4gIE5vdGljZSBob3cgdGhlIHJ1bGVzIGFyZSBwYWlyZWQ6IGFsbCBvZiB0aGVzZSBwYWlycyBvZgorICAgICAgICAvLyBydWxlcyB0YWtlIGFkdmFudGFnZSBvZiB0aGUgcm9sbGJhY2sgcnVsZTogaWYgdGhlIHZhbHVlIChiZXR3ZWVuIDEwMAorICAgICAgICAvLyBhbmQgNDk5KSBpcyBhbiBldmVuIG11bHRpcGxlIG9mIDEwMCwgdGhlIHJ1bGUgZm9yIDEwMCBpcyB1c2VkOyBvdGhlcndpc2UsCisgICAgICAgIC8vIHRoZSBydWxlIGZvciAxMDEgKHRoZSBmb2xsb3dpbmcgcnVsZSkgaXMgdXNlZC4gIFRoZSBmaXJzdCBydWxlIGluIGVhY2gKKyAgICAgICAgLy8gcGFpciAodGhlIG9uZSBmb3IgdGhlIGV2ZW4gbXVsdGlwbGUpIHBsYWNlcyB0aGUgbnVtZXJhbCBtYXJrIGluIGEgZGlmZmVyZW50CisgICAgICAgIC8vIHNwb3QgdGhhbiB0aGUgc2Vjb25kIHJ1bGUgaW4gZWFjaCBwYWlyICh3aGljaCBrbm93cyB0aGVyZSBhcmUgbW9yZSBkaWdpdHMKKyAgICAgICAgLy8gYW5kIHJlbGllcyBvbiB0aGUgcnVsZSBzdXBwbHlpbmcgdGhlbSB0byBhbHNvIHN1cHBseSB0aGUgbnVtZXJhbCBtYXJrKS4KKyAgICAgICAgLy8gVGhlIGNhbGwgdG8gJSVudWxsIGluIGxpbmUgMTAgaXMgdGhlcmUgc2ltcGx5IHRvIGludm9rZSB0aGUgcm9sbGJhY2sKKyAgICAgICAgLy8gcnVsZS4KKyAgICAgICAgKyAiJSVsb3ctb3JkZXI6XG4iCisgICAgICAgICAgICAgICAvLyB0aGlzIHJ1bGUgaXMgb25seSBjYWxsZWQgd2hlbiB0aGVyZSBhcmUgb3RoZXIgY2hhcmFjdGVycyBiZWZvcmUuCisgICAgICAgICAgICAgICAvLyBJdCBwbGFjZXMgdGhlIG51bWVyYWwgbWFyayBiZWZvcmUgdGhlIGxhc3QgZGlnaXQKKyAgICAgICAgKyAiICAgIFx1MjAzMz0lJW9uZXM9O1xuIgorICAgICAgICAgICAgICAgLy8gdGhlIHJ1bGUgZm9yIDEwIHBsYWNlcyB0aGUgbnVtZXJhbCBtYXJrIGJlZm9yZSB0aGUgMTAgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAvLyAoYmVjYXVzZSB3ZSBrbm93IGl0J3MgdGhlIGxhc3QgY2hhcmFjdGVyKTsgdGhlIHJ1bGUgZm9yIDExIHJlbGllcworICAgICAgICAgICAgICAgLy8gb24gJSV0ZW5zLWFuZC1vbmVzIHRvIHBsYWNlIHRoZSBudW1lcmFsIG1hcmsKKyAgICAgICAgKyAiICAgIDEwOiBcdTIwMzM8JSV0ZW5zPDsgPSUldGVucy1hbmQtb25lcz0+JSVudWxsPjtcbiIKKyAgICAgICAgICAgICAgIC8vIHRoZSBydWxlIGZvciAxMDAgcGxhY2VzIHRoZSBudW1lcmFsIG1hcmsgYmVmb3JlIHRoZSAxMDAgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAvLyAod2Uga25vdyBpdCdzIHRoZSBsYXN0IGNoYXJhY3Rlcik7IHRoZSBydWxlIGZvciAxMDEgcmVjdXJzZXMgdG8KKyAgICAgICAgICAgICAgIC8vIGZpbGwgaW4gdGhlIHJlbWFpbmluZyBkaWdpdHMgYW5kIHRoZSBudW1lcmFsIG1hcmsKKyAgICAgICAgKyAiICAgIDEwMDogPCUlaHVuZHJlZHM8XHUyMDMyOyA8JSVodW5kcmVkczw+PjtcbiIKKyAgICAgICAgICAgICAgIC8vIHNwZWNpYWwtY2FzZSB0aGUgaHVuZHJlZHMgZnJvbSA1MDAgdG8gOTAwIGJlY2F1c2UgdGhleSBjb25zaXN0IG9mCisgICAgICAgICAgICAgICAvLyBtb3JlIHRoYW4gb25lIGNoYXJhY3RlcgorICAgICAgICArICIgICAgNTAwOiBcdTA1ZWFcdTIwMzNcdTA1ZTc7IFx1MDVlYVx1MDVlNz4+O1xuIgorICAgICAgICArICIgICAgNjAwOiBcdTA1ZWFcdTIwMzNcdTA1ZTg7IFx1MDVlYVx1MDVlOD4+O1xuIgorICAgICAgICArICIgICAgNzAwOiBcdTA1ZWFcdTIwMzNcdTA1ZTk7IFx1MDVlYVx1MDVlOT4+O1xuIgorICAgICAgICArICIgICAgODAwOiBcdTA1ZWFcdTIwMzNcdTA1ZWE7IFx1MDVlYVx1MDVlYT4+O1xuIgorICAgICAgICArICIgICAgOTAwOiBcdTA1ZWFcdTA1ZWFcdTIwMzNcdTA1ZTc7IFx1MDVlYVx1MDVlYVx1MDVlNz4+O1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGlzIHVzZWQgdG8gZm9ybWF0IHZhbHVlcyBvZiAxLDAwMCBvciBtb3JlLiAgSGVyZSwgd2UgZG9uJ3QKKyAgICAgICAgLy8gd29ycnkgYWJvdXQgdGhlIG51bWVyYWwgbWFyaywgYW5kIHdlIGFkZCB0d28gZG90cyAodGhlIFVuaWNvZGUgY29tYmluaW5nCisgICAgICAgIC8vIGRpYWVyZXNpcyBjaGFyYWN0ZXIpIHRvIGV2ZXIgbGV0dGVyCisgICAgICAgICsgIiUlaGlnaC1vcmRlcjpcbiIKKyAgICAgICAgICAgICAgIC8vIHB1dCB0aGUgb25lcyBkaWdpdCwgZm9sbG93ZWQgYnkgdGhlIGRpYWVyZXNpcworICAgICAgICArICIgICAgPSUlb25lcz1cdTAzMDg7XG4iCisgICAgICAgICAgICAgICAvLyB0aGUgdGVucyBjYW4gYmUgaGFuZGxlZCB3aXRoIHJlY3Vyc2lvbgorICAgICAgICArICIgICAgMTA6IDwlJXRlbnM8XHUwMzA4Wz4+XTtcbiIKKyAgICAgICAgICAgICAgIC8vIHN0aWxsIGhhdmUgdG8gc3BlY2lhbC1jYXNlIDE1IGFuZCAxNgorICAgICAgICArICIgICAgMTU6IFx1MDVkOFx1MDMwOFx1MDVkNVx1MDMwODsgMTY6IFx1MDVkOFx1MDAzMDc4XHUwNWQ2XHUwMzA4O1xuIgorICAgICAgICAgICAgICAgLy8gYmFjayB0byB0aGUgcmVndWxhciBydWxlcyBhdCAxNworICAgICAgICArICIgICAgMTc6IDwlJXRlbnM8XHUwMzA4Wz4+XTtcbiIKKyAgICAgICAgICAgICAgIC8vIHRoZSBodW5kcmVkcyB3aXRoIHRoZSBkb3RzIGFkZGVkIChhbmQgd2l0aG91dCB3b3JyeWluZyBhYm91dAorICAgICAgICAgICAgICAgLy8gcGxhY2luZyB0aGUgbnVtZXJhbCBtYXJrKQorICAgICAgICArICIgICAgMTAwOiA8JSVodW5kcmVkczxcdTAzMDhbPj5dO1xuIgorICAgICAgICArICIgICAgNTAwOiBcdTA1ZWFcdTAzMDhcdTA1ZTdcdTAzMDhbPj5dO1xuIgorICAgICAgICArICIgICAgNjAwOiBcdTA1ZWFcdTAzMDhcdTA1ZThcdTAzMDhbPj5dO1xuIgorICAgICAgICArICIgICAgNzAwOiBcdTA1ZWFcdTAzMDhcdTA1ZTlcdTAzMDhbPj5dO1xuIgorICAgICAgICArICIgICAgODAwOiBcdTA1ZWFcdTAzMDhcdTA1ZWFcdTAzMDhbPj5dO1xuIgorICAgICAgICArICIgICAgOTAwOiBcdTA1ZWFcdTAzMDhcdTA1ZWFcdTAzMDhcdTA1ZTdcdTAzMDhbPj5dO1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGRvZXNuJ3QgZG8gYW55dGhpbmc7IGl0J3MgdXNlZCBieSBzb21lIG90aGVyIHJ1bGVzIHRvCisgICAgICAgIC8vIGludm9rZSB0aGUgcm9sbGJhY2sgcnVsZQorICAgICAgICArICIgJSVudWxsOlxuIgorICAgICAgICArICIgICAgO1xuIgorICAgICAgICAvLyB0aGUgbWFpbiBydWxlIHNldC4KKyAgICAgICAgKyAiJW1haW46XG4iCisgICAgICAgICAgICAgICAvLyBmb3IgdmFsdWVzIGJlbG93IDEwLCBqdXN0IG91dHB1dCB0aGUgbGV0dGVyIGFuZCB0aGUgbnVtZXJhbCBtYXJrCisgICAgICAgICsgIiAgICA9JSVvbmVzPVx1MjAzMjtcbiIKKyAgICAgICAgICAgICAgIC8vIGZvciB2YWx1ZXMgZnJvbSAxMCB0byA5OSwgdXNlICUldGVucy1hbmQtb25lcyB0byBkbyB0aGUgZm9ybWF0dGluZworICAgICAgICArICIgICAgMTA6ID0lJXRlbnMtYW5kLW9uZXM9O1xuIgorICAgICAgICAgICAgICAgLy8gZm9yIHZhbHVlcyBmcm9tIDEwMCB0byA5OTksIHVzZSAlJWxvdy1vcmRlciB0byBkbyB0aGUgZm9ybWF0dGluZworICAgICAgICArICIgICAgMTAwOiA9JSVsb3ctb3JkZXI9O1xuIgorICAgICAgICAgICAgICAgLy8gZm9yIHZhbHVlcyBvZiAxLDAwMCBhbmQgb3ZlciwgdXNlICUlaGlnaC1vcmRlciB0byBkbyB0aGUgZm9ybWF0dGluZworICAgICAgICArICIgICAgMTAwMDogPCUlaGlnaC1vcmRlcjxbPiUlbG93LW9yZGVyPl07XG4iOworCisgICAgLyoqCisgICAgICogR3JlZWsgYWxwaGFiZXRpYyBudW1lcmFscy4gIFRoZSBHcmVla3MsIGJlZm9yZSBhZG9wdGluZyB0aGUgQXJhYmljIG51bWVyYWxzLAorICAgICAqIGFsc28gdXNlZCB0aGUgbGV0dGVycyBvZiB0aGVpciBhbHBoYWJldCBhcyBudW1lcmFscy4gIFRoZXJlIGFyZSB0aHJlZSBub3ctCisgICAgICogb2Jzb2xldGUgR3JlZWsgbGV0dGVycyB0aGF0IGFyZSB1c2VkIGFzIG51bWVyYWxzOyBtYW55IGZvbnRzIGRvbid0IGhhdmUgdGhlbS4KKyAgICAgKiBMYXJnZSBudW1iZXJzIHdlcmUgaGFuZGxlZCBtYW55IGRpZmZlcmVudCB3YXlzOyB0aGUgd2F5IHNob3duIGhlcmUgZGl2aWRlcworICAgICAqIGxhcmdlIG51bWJlcnMgaW50byBncm91cHMgb2YgZm91ciBsZXR0ZXJzIChmYWN0b3JzIG9mIDEwLDAwMCksIGFuZCBzZXBhcmF0ZXMKKyAgICAgKiB0aGUgZ3JvdXBzIHdpdGggdGhlIGNhcGl0YWwgbGV0dGVyIG11IChmb3IgbXlyaWFkKS4gIENhcGl0YWwgbGV0dGVycyBhcmUgdXNlZAorICAgICAqIGZvciB2YWx1ZXMgYmVsb3cgMTAsMDAwOyBzbWFsbCBsZXR0ZXJzIGZvciBoaWdoZXIgbnVtYmVycyAodG8gbWFrZSB0aGUgY2FwaXRhbAorICAgICAqIG11IHN0YW5kIG91dCkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgZ3JlZWtBbHBoYWJldGljID0KKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCBpcyB1c2VkIGZvciBmb3JtYXR0aW5nIG51bWJlcnMgYmVsb3cgMTAsMDAwLiAgSXQgdXNlcworICAgICAgICAvLyBjYXBpdGFsIGxldHRlcnMuCisgICAgICAgICIlJWxvdy1vcmRlcjpcbiIKKyAgICAgICAgKyAiICAgIChubyB6ZXJvKTsgXHUwMzkxOyBcdTAzOTI7IFx1MDM5MzsgXHUwMzk0OyBcdTAzOTU7IFx1MDNkYzsgXHUwMzk2OyBcdTAzOTc7IFx1MDM5ODtcbiIKKyAgICAgICAgKyAiICAgIDEwOiBcdTAzOTlbPj5dOyAyMDogXHUwMzlhWz4+XTsgMzA6IFx1MDM5Yls+Pl07IDQwOiBcdTAzOWNbPj5dOyA1MDogXHUwMzlkWz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDYwOiBcdTAzOWVbPj5dOyA3MDogXHUwMzlmWz4+XTsgODA6IFx1MDNhMFs+Pl07IDkwOiBcdTAzZGVbPj5dO1xuIgorICAgICAgICArICIgICAgMTAwOiBcdTAzYTFbPj5dOyAyMDA6IFx1MDNhM1s+Pl07IDMwMDogXHUwM2E0Wz4+XTsgNDAwOiBcdTAzYTVbPj5dO1xuIgorICAgICAgICArICIgICAgNTAwOiBcdTAzYTZbPj5dOyA2MDA6IFx1MDNhN1s+Pl07IDcwMDogXHUwM2E4Wz4+XTsgODAwOiBcdTAzYTlbPj5dO1xuIgorICAgICAgICArICIgICAgOTAwOiBcdTAzZTBbPj5dO1xuIgorICAgICAgICAgICAgICAgLy8gdGhlIHRob3VzYW5kcyBhcmUgcmVwcmVzZW50ZWQgYnkgdGhlIHNhbWUgbnVtYmVycyBhcyB0aGUgb25lcywgYnV0CisgICAgICAgICAgICAgICAvLyB3aXRoIGEgY29tbWEtbGlrZSBtYXJrIGFkZGVkIHRvIHRoZWlyIGxlZnQgc2hvdWxkZXIKKyAgICAgICAgKyAiICAgIDEwMDA6IFx1MDM5MVx1MDMxM1s+Pl07IDIwMDA6IFx1MDM5Mlx1MDMxM1s+Pl07IDMwMDA6IFx1MDM5M1x1MDMxM1s+Pl07XG4iCisgICAgICAgICsgIiAgICA0MDAwOiBcdTAzOTRcdTAzMTNbPj5dOyA1MDAwOiBcdTAzOTVcdTAzMTNbPj5dOyA2MDAwOiBcdTAzZGNcdTAzMTNbPj5dO1xuIgorICAgICAgICArICIgICAgNzAwMDogXHUwMzk2XHUwMzEzWz4+XTsgODAwMDogXHUwMzk3XHUwMzEzWz4+XTsgOTAwMDogXHUwMzk4XHUwMzEzWz4+XTtcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCBpcyB0aGUgc2FtZSBhcyBhYm92ZSwgYnV0IHVzZXMgbG93ZXJjYXNlIGxldHRlcnMuICBJdCBpcyB1c2VkCisgICAgICAgIC8vIGZvciBmb3JtYXR0aW5nIHRoZSBncm91cHMgaW4gbnVtYmVycyBhYm92ZSAxMCwwMDAuCisgICAgICAgICsgIiUlaGlnaC1vcmRlcjpcbiIKKyAgICAgICAgKyAiICAgIChubyB6ZXJvKTsgXHUwM2IxOyBcdTAzYjI7IFx1MDNiMzsgXHUwM2I0OyBcdTAzYjU7IFx1MDNkYzsgXHUwM2I2OyBcdTAzYjc7IFx1MDNiODtcbiIKKyAgICAgICAgKyAiICAgIDEwOiBcdTAzYjlbPj5dOyAyMDogXHUwM2JhWz4+XTsgMzA6IFx1MDNiYls+Pl07IDQwOiBcdTAzYmNbPj5dOyA1MDogXHUwM2JkWz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDYwOiBcdTAzYmVbPj5dOyA3MDogXHUwM2JmWz4+XTsgODA6IFx1MDNjMFs+Pl07IDkwOiBcdTAzZGVbPj5dO1xuIgorICAgICAgICArICIgICAgMTAwOiBcdTAzYzFbPj5dOyAyMDA6IFx1MDNjM1s+Pl07IDMwMDogXHUwM2M0Wz4+XTsgNDAwOiBcdTAzYzVbPj5dO1xuIgorICAgICAgICArICIgICAgNTAwOiBcdTAzYzZbPj5dOyA2MDA6IFx1MDNjN1s+Pl07IDcwMDogXHUwM2M4Wz4+XTsgODAwOiBcdTAzYzlbPj5dO1xuIgorICAgICAgICArICIgICAgOTAwOiBcdTAzYzBbPj5dO1xuIgorICAgICAgICArICIgICAgMTAwMDogXHUwM2IxXHUwMzEzWz4+XTsgMjAwMDogXHUwM2IyXHUwMzEzWz4+XTsgMzAwMDogXHUwM2IzXHUwMzEzWz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDQwMDA6IFx1MDNiNFx1MDMxM1s+Pl07IDUwMDA6IFx1MDNiNVx1MDMxM1s+Pl07IDYwMDA6IFx1MDNkY1x1MDMxM1s+Pl07XG4iCisgICAgICAgICsgIiAgICA3MDAwOiBcdTAzYjZcdTAzMTNbPj5dOyA4MDAwOiBcdTAzYjdcdTAzMTNbPj5dOyA5MDAwOiBcdTAzYjhcdTAzMTNbPj5dO1xuIgorICAgICAgICAvLyB0aGUgbWFpbiBydWxlIHNldAorICAgICAgICArICIlbWFpbjpcbiIKKyAgICAgICAgICAgICAgIC8vIGZvciB2YWx1ZXMgYmVsb3cgMTAsMDAwLCBqdXN0IHVzZSAlJWxvdy1vcmRlcgorICAgICAgICArICIgICAgPSUlbG93LW9yZGVyPTtcbiIKKyAgICAgICAgICAgICAgIC8vIGZvciB2YWx1ZXMgYWJvdmUgMTAsMDAwLCBzcGxpdCBpbnRvIHR3byBncm91cHMgb2YgZm91ciBkaWdpdHMKKyAgICAgICAgICAgICAgIC8vIGFuZCBmb3JtYXQgZWFjaCB3aXRoICUlaGlnaC1vcmRlciAocHV0dGluZyBhbiBNIGluIGJldHdlbikKKyAgICAgICAgKyAiICAgIDEwLDAwMDogPCUlaGlnaC1vcmRlcjxcdTAzOWM+JSVoaWdoLW9yZGVyPjtcbiIKKyAgICAgICAgICAgICAgIC8vIGZvciB2YWx1ZXMgYWJvdmUgMTAwLDAwMCwwMDAsIGFkZCBhbm90aGVyIGdyb3VwIG9udG8gdGhlIGZyb250CisgICAgICAgICAgICAgICAvLyBhbmQgYW5vdGhlciBNCisgICAgICAgICsgIiAgICAxMDAsMDAwLDAwMDogPCUlaGlnaC1vcmRlcjxcdTAzOWM+PlxuIjsKKworICAgIC8qKgorICAgICAqIEEgbGlzdCBvZiBhbGwgdGhlIHNhbXBsZSBydWxlIHNldHMsIHVzZWQgYnkgdGhlIGRlbW8gcHJvZ3JhbS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZ1tdIHNhbXBsZVJ1bGVTZXRzID0KKyAgICAgICAgeyB1c0VuZ2xpc2gsCisgICAgICAgICAgdWtFbmdsaXNoLAorICAgICAgICAgIHNwYW5pc2gsCisgICAgICAgICAgZnJlbmNoLAorICAgICAgICAgIHN3aXNzRnJlbmNoLAorICAgICAgICAgIGdlcm1hbiwKKyAgICAgICAgICBpdGFsaWFuLAorICAgICAgICAgIHN3ZWRpc2gsCisgICAgICAgICAgZHV0Y2gsCisgICAgICAgICAgamFwYW5lc2UsCisgICAgICAgICAgZ3JlZWssCisgICAgICAgICAgcnVzc2lhbiwKKyAgICAgICAgICBoZWJyZXcsCisgICAgICAgICAgb3JkaW5hbCwKKyAgICAgICAgICBtZXNzYWdlMSwKKyAgICAgICAgICBkb2xsYXJzQW5kQ2VudHMsCisgICAgICAgICAgZGVjaW1hbEFzRnJhY3Rpb24sCisgICAgICAgICAgY2xvc2VzdEZyYWN0aW9uLAorICAgICAgICAgIHN0b2NrLAorICAgICAgICAgIGFiYkVuZ2xpc2gsCisgICAgICAgICAgdW5pdHMsCisgICAgICAgICAgbWVzc2FnZTIsCisgICAgICAgICAgZG96ZW5zLAorICAgICAgICAgIGR1cmF0aW9uSW5TZWNvbmRzLAorICAgICAgICAgIGR1cmF0aW9uSW5Ib3VycywKKyAgICAgICAgICBwb3VuZHNTaGlsbGluZ3NBbmRQZW5jZSwKKyAgICAgICAgICBhcmFiaWNOdW1lcmFscywKKyAgICAgICAgICB3b3Jkc0ZvckRpZ2l0cywKKyAgICAgICAgICBjaGluZXNlUGxhY2VWYWx1ZSwKKyAgICAgICAgICByb21hbk51bWVyYWxzLAorICAgICAgICAgIGhlYnJld0FscGhhYmV0aWMsCisgICAgICAgICAgZ3JlZWtBbHBoYWJldGljIH07CisKKyAgICAvKioKKyAgICAgKiBUaGUgZGlzcGxheWFibGUgbmFtZXMgZm9yIGFsbCB0aGUgc2FtcGxlIHJ1bGUgc2V0cywgaW4gdGhlIHNhbWUgb3JkZXIgYXMKKyAgICAgKiB0aGUgcHJlY2VkaW5nIGFycmF5LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nW10gc2FtcGxlUnVsZVNldE5hbWVzID0KKyAgICAgICAgeyAiRW5nbGlzaCAoVVMpIiwKKyAgICAgICAgICAiRW5nbGlzaCAoVUspIiwKKyAgICAgICAgICAiU3BhbmlzaCIsCisgICAgICAgICAgIkZyZW5jaCAoRnJhbmNlKSIsCisgICAgICAgICAgIkZyZW5jaCAoU3dpdHplcmxhbmQpIiwKKyAgICAgICAgICAiR2VybWFuIiwKKyAgICAgICAgICAiSXRhbGlhbiIsCisgICAgICAgICAgIlN3ZWRpc2giLAorICAgICAgICAgICJEdXRjaCIsCisgICAgICAgICAgIkphcGFuZXNlIiwKKyAgICAgICAgICAiR3JlZWsiLAorICAgICAgICAgICJSdXNzaWFuIiwKKyAgICAgICAgICAiSGVicmV3IiwKKyAgICAgICAgICAiRW5nbGlzaCBvcmRpbmFsIGFiYnJldmlhdGlvbnMiLAorICAgICAgICAgICJTaW1wbGUgbWVzc2FnZSBmb3JtYXR0aW5nIiwKKyAgICAgICAgICAiRG9sbGFycyBhbmQgY2VudHMiLAorICAgICAgICAgICJEZWNpbWFscyBhcyBmcmFjdGlvbnMiLAorICAgICAgICAgICJDbG9zZXN0IGZyYWN0aW9uIiwKKyAgICAgICAgICAiU3RvY2sgcHJpY2VzIiwKKyAgICAgICAgICAiQWJicmV2aWF0ZWQgVVMgRW5nbGlzaCIsCisgICAgICAgICAgIkNoYW5naW5nIGRpbWVuc2lvbnMiLAorICAgICAgICAgICJDb21wbGV4IG1lc3NhZ2UgZm9ybWF0dGluZyIsCisgICAgICAgICAgIkRvemVucyIsCisgICAgICAgICAgIkR1cmF0aW9uICh2YWx1ZSBpbiBzZWNvbmRzKSIsCisgICAgICAgICAgIkR1cmF0aW9uICh2YWx1ZSBpbiBob3VycykiLAorICAgICAgICAgICJQb3VuZHMsIHNoaWxsaW5ncywgYW5kIHBlbmNlIiwKKyAgICAgICAgICAiQXJhYmljIG51bWVyYWxzIiwKKyAgICAgICAgICAiV29yZHMgZm9yIGRpZ2l0cyIsCisgICAgICAgICAgIkNoaW5lc2UgcGxhY2UtdmFsdWUgbm90YXRpb24iLAorICAgICAgICAgICJSb21hbiBudW1lcmFscyIsCisgICAgICAgICAgIkhlYnJldyBhaGxwaGFiZXRpYyBudW1lcmFscyIsCisgICAgICAgICAgIkdyZWVrIGFscGhhYmV0aWMgbnVtZXJhbHMiIH07CisKKyAgICAvKioKKyAgICAgKiBUaGUgYmFzZSBsb2NhbGUgZm9yIGVhY2ggb2YgdGhlIHNhbXBsZSBydWxlIHNldHMuICBUaGUgbG9jYWxlIGlzIHVzZWQgdG8KKyAgICAgKiBkZXRlcm1pbmUgRGVjaW1hbEZvcm1hdCBiZWhhdmlvciwgbGVuaWVudC1wYXJzZSBiZWhhdmlvciwgYW5kIHRleHQtZGlzcGxheQorICAgICAqIHNlbGVjdGlvbiAod2UgaGF2ZSBhIGhhY2sgaW4gaGVyZSB0byBhbGxvdyBkaXNwbGF5IG9mIG5vbi1MYXRpbiBzY3JpcHRzKS4KKyAgICAgKiBOdWxsIG1lYW5zIHRoZSBsb2NhbGUgc2V0dGluZyBpcyBpcnJlbGV2YW50IGFuZCB0aGUgZGVmYXVsdCBjYW4gYmUgdXNlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIExvY2FsZVtdIHNhbXBsZVJ1bGVTZXRMb2NhbGVzID0KKyAgICAgICAgeyBMb2NhbGUuVVMsCisgICAgICAgICAgTG9jYWxlLlVLLAorICAgICAgICAgIG5ldyBMb2NhbGUoImVzIiwgIiIsICIiKSwKKyAgICAgICAgICBMb2NhbGUuRlJBTkNFLAorICAgICAgICAgIG5ldyBMb2NhbGUoImZyIiwgIkNIIiwgIiIpLAorICAgICAgICAgIExvY2FsZS5HRVJNQU4sCisgICAgICAgICAgTG9jYWxlLklUQUxJQU4sCisgICAgICAgICAgbmV3IExvY2FsZSgic3YiLCAiIiwgIiIpLAorICAgICAgICAgIG5ldyBMb2NhbGUoIm5sIiwgIiIsICIiKSwKKyAgICAgICAgICBMb2NhbGUuSkFQQU5FU0UsCisgICAgICAgICAgbmV3IExvY2FsZSgiZWwiLCAiIiwgIiIpLAorICAgICAgICAgIG5ldyBMb2NhbGUoInJ1IiwgIiIsICIiKSwKKyAgICAgICAgICBuZXcgTG9jYWxlKCJpdyIsICIiLCAiIiksCisgICAgICAgICAgTG9jYWxlLkVOR0xJU0gsCisgICAgICAgICAgTG9jYWxlLkVOR0xJU0gsCisgICAgICAgICAgTG9jYWxlLlVTLAorICAgICAgICAgIExvY2FsZS5FTkdMSVNILAorICAgICAgICAgIG51bGwsCisgICAgICAgICAgbnVsbCwKKyAgICAgICAgICBMb2NhbGUuRU5HTElTSCwKKyAgICAgICAgICBudWxsLAorICAgICAgICAgIExvY2FsZS5FTkdMSVNILAorICAgICAgICAgIExvY2FsZS5FTkdMSVNILAorICAgICAgICAgIG51bGwsCisgICAgICAgICAgbnVsbCwKKyAgICAgICAgICBMb2NhbGUuVUssCisgICAgICAgICAgbnVsbCwKKyAgICAgICAgICBMb2NhbGUuRU5HTElTSCwKKyAgICAgICAgICBuZXcgTG9jYWxlKCJ6aCIsICIiLCAiIiksCisgICAgICAgICAgbnVsbCwKKyAgICAgICAgICBuZXcgTG9jYWxlKCJpdyIsICIiLCAiIiksCisgICAgICAgICAgbmV3IExvY2FsZSgiZWwiLCAiIiwgIiIpLAorICAgICAgICAgIG51bGwgfTsKKworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZ1tdIHNhbXBsZVJ1bGVTZXRDb21tZW50YXJ5ID0geworICAgICAgICAgICAgIlRoaXMgZGVtb25zdHJhdGlvbiB2ZXJzaW9uIG9mIHRoZSAiCisgICAgICAgICAgICArICJVLlMuIEVuZ2xpc2ggc3BlbGxvdXQgcnVsZXMgaGFzIGZvdXIgdmFyaWFudHM6IDEpICVzaW1wbGlmaWVkIGlzIGEgIgorICAgICAgICAgICAgKyAic2V0IG9mIHJ1bGVzIHNob3dpbmcgdGhlIHNpbXBsZSBtZXRob2Qgb2Ygc3BlbGxpbmcgb3V0IG51bWJlcnMgaW4gIgorICAgICAgICAgICAgKyAiRW5nbGlzaDogMjg5IGlzIGZvcm1hdHRlZCBhcyBcInR3byBodW5kcmVkIGVpZ2h0eS1uaW5lXCIuICAyKSAlYWx0LXRlZW5zICIKKyAgICAgICAgICAgICsgImlzIHRoZSBzYW1lIGFzICVzaW1wbGlmaWVkLCBleGNlcHQgdGhhdCB2YWx1ZXMgYmV0d2VlbiAxLDAwMCBhbmQgOSw5OTkgIgorICAgICAgICAgICAgKyAid2hvc2UgaHVuZHJlZHMgcGxhY2UgaXNuJ3QgemVybyBhcmUgZm9ybWF0dGVkIGluIGh1bmRyZWRzLiAgRm9yIGV4YW1wbGUsICIKKyAgICAgICAgICAgICsgIjEsOTgzIGlzIGZvcm1hdHRlZCBhcyBcIm5pbmV0ZWVuIGh1bmRyZWQgZWlnaHR5LXRocmVlLFwiIGFuZCAyLDE4MyBpcyAiCisgICAgICAgICAgICArICJmb3JtYXR0ZWQgYXMgXCJ0d2VudHktb25lIGh1bmRyZWQgZWlnaHR5LXRocmVlLFwiIGJ1dCAyLDA4MyBpcyBzdGlsbCAiCisgICAgICAgICAgICArICJmb3JtYXR0ZWQgYXMgXCJ0d28gdGhvdXNhbmQgZWlnaHR5LXRocmVlLlwiICAzKSAlb3JkaW5hbCBmb3JtYXRzIHRoZSAiCisgICAgICAgICAgICArICJ2YWx1ZXMgYXMgb3JkaW5hbCBudW1iZXJzIGluIEVuZ2xpc2ggKGUuZy4sIDI4OSBpcyBcInR3byBodW5kcmVkIGVpZ2h0eS0iCisgICAgICAgICAgICArICJuaW50aFwiKS4gIDQpICVkZWZhdWx0IHVzZXMgYSBtb3JlIGNvbXBsaWNhdGVkIGFsZ29yaXRobSB0byBmb3JtYXQgIgorICAgICAgICAgICAgKyAibnVtYmVycyBpbiBhIG1vcmUgbmF0dXJhbCB3YXk6IDI4OSBpcyBmb3JtYXR0ZWQgYXMgXCJ0d28gaHVuZHJlZCBBTkQgIgorICAgICAgICAgICAgKyAiZWlnaHR5LW5pbmVcIiBhbmQgY29tbWFzIGFyZSBpbnNlcnRlZCBiZXR3ZWVuIHRoZSB0aG91c2FuZHMgZ3JvdXBzIGZvciAiCisgICAgICAgICAgICArICJ2YWx1ZXMgYWJvdmUgMTAwLDAwMC4iLAorCisgICAgICAgICAgICAiVS5LLiBFbmdsaXNoIGhhcyBvbmUgc2lnbmlmaWNhbnQgIgorICAgICAgICAgICAgKyAiZGlmZmVyZW5jZSBmcm9tIFUuUy4gRW5nbGlzaDogdGhlIG5hbWVzIGZvciB2YWx1ZXMgb2YgMSwwMDAsMDAwLDAwMCAiCisgICAgICAgICAgICArICJhbmQgaGlnaGVyLiAgSW4gQW1lcmljYW4gRW5nbGlzaCwgZWFjaCBzdWNjZXNzaXZlIFwiLWlsbGlvblwiIGlzIDEsMDAwICIKKyAgICAgICAgICAgICsgInRpbWVzIGdyZWF0ZXIgdGhhbiB0aGUgcHJlY2VkaW5nIG9uZTogMSwwMDAsMDAwLDAwMCBpcyBcIm9uZSBiaWxsaW9uXCIgIgorICAgICAgICAgICAgKyAiYW5kIDEsMDAwLDAwMCwwMDAsMDAwIGlzIFwib25lIHRyaWxsaW9uLlwiICBJbiBCcml0aXNoIEVuZ2xpc2gsIGVhY2ggIgorICAgICAgICAgICAgKyAic3VjY2Vzc2l2ZSBcIi1pbGxpb25cIiBpcyBvbmUgbWlsbGlvbiB0aW1lcyBncmVhdGVyIHRoYW4gdGhlIG9uZSBiZWZvcmU6ICIKKyAgICAgICAgICAgICsgIlwib25lIGJpbGxpb25cIiBpcyAxLDAwMCwwMDAsMDAwLDAwMCAob3Igd2hhdCBBbWVyaWNhbnMgd291bGQgY2FsbCBhICIKKyAgICAgICAgICAgICsgIlwidHJpbGxpb25cIiksIGFuZCBcIm9uZSB0cmlsbGlvblwiIGlzIDEsMDAwLDAwMCwwMDAsMDAwLDAwMCwwMDAuICAiCisgICAgICAgICAgICArICIxLDAwMCwwMDAsMDAwIGluIEJyaXRpc2ggRW5nbGlzaCBpcyBcIm9uZSB0aG91c2FuZCBtaWxsaW9uLlwiICAoVGhpcyAiCisgICAgICAgICAgICArICJ2YWx1ZSBpcyBzb21ldGltZXMgY2FsbGVkIGEgXCJtaWxsaWFyZCxcIiBidXQgdGhpcyB3b3JkIHNlZW1zIHRvIGhhdmUgIgorICAgICAgICAgICAgKyAiZmFsbGVuIGludG8gZGlzdXNlLikiLAorCisgICAgICAgICAgICAiVGhlIFNwYW5pc2ggcnVsZXMgYXJlIHF1aXRlIHNpbWlsYXIgdG8gIgorICAgICAgICAgICAgKyAidGhlIEVuZ2xpc2ggcnVsZXMsIGJ1dCB0aGVyZSBhcmUgc29tZSBpbXBvcnRhbnQgZGlmZmVyZW5jZXM6ICIKKyAgICAgICAgICAgICsgIkZpcnN0LCB3ZSBoYXZlIHRvIHByb3ZpZGUgc2VwYXJhdGUgcnVsZXMgZm9yIG1vc3Qgb2YgdGhlIHR3ZW50aWVzICIKKyAgICAgICAgICAgICsgImJlY2F1c2UgdGhlIG9uZXMgZGlnaXQgZnJlcXVlbnRseSBwaWNrcyB1cCBhbiBhY2NlbnQgbWFyayB0aGF0IGl0ICIKKyAgICAgICAgICAgICsgImRvZXNuJ3QgaGF2ZSB3aGVuIHN0YW5kaW5nIGFsb25lLiAgU2Vjb25kLCBlYWNoIG11bHRpcGxlIG9mIDEwMCBoYXMgIgorICAgICAgICAgICAgKyAidG8gYmUgc3BlY2lmaWVkIHNlcGFyYXRlbHkgYmVjYXVzZSB0aGUgbXVsdGlwbGllciBvbiAxMDAgdmVyeSBvZnRlbiAiCisgICAgICAgICAgICArICJjaGFuZ2VzIGZvcm0gaW4gdGhlIGNvbnRyYWN0aW9uOiA1MDAgaXMgXCJxdWluaWVudG9zLFwiIG5vdCAiCisgICAgICAgICAgICArICJcImNpbmNvY2llbnRvcy5cIiAgSW4gYWRkaXRpb24sIHRoZSB3b3JkIGZvciAxMDAgaXMgXCJjaWVuXCIgd2hlbiAiCisgICAgICAgICAgICArICJzdGFuZGluZyBhbG9uZSwgYnV0IGNoYW5nZXMgdG8gXCJjaWVudG9cIiB3aGVuIGZvbGxvd2VkIGJ5IG1vcmUgZGlnaXRzLiAgIgorICAgICAgICAgICAgKyAiVGhlcmUgYWxzbyBzb21lIG90aGVyIGRpZmZlcmVuY2VzLiIsCisKKyAgICAgICAgICAgICJGcmVuY2ggYWRkcyBzb21lIGludGVyZXN0aW5nIHF1aXJrcyBvZiBpdHMgIgorICAgICAgICAgICAgKyAib3duOiAxKSBUaGUgd29yZCBcImV0XCIgaXMgaW50ZXJwb3NlZCBiZXR3ZWVuIHRoZSB0ZW5zIGFuZCBvbmVzIGRpZ2l0cywgIgorICAgICAgICAgICAgKyAiYnV0IG9ubHkgaWYgdGhlIG9uZXMgZGlnaXQgaWYgMTogMjAgaXMgXCJ2aW5ndCxcIiBhbmQgMiBpcyBcInZpbmd0LWRldXgsXCIgIgorICAgICAgICAgICAgKyAiYnV0IDIxIGlzIFwidmluZ3QtZXQtdW4uXCIgIDIpICBUaGVyZSBhcmUgbm8gd29yZHMgZm9yIDcwLCA4MCwgb3IgOTAuICAiCisgICAgICAgICAgICArICJcInF1YXRyZS12aW5ndHNcIiAoXCJmb3VyIHR3ZW50aWVzXCIpIGlzIHVzZWQgZm9yIDgwLCBhbmQgdmFsdWVzIHByb2NlZWQgIgorICAgICAgICAgICAgKyAiYnkgc2NvcmUgZnJvbSA2MCB0byA5OSAoZS5nLiwgNzMgaXMgXCJzb2l4YW50ZS10cmVpemVcIiBbXCJzaXh0eS10aGlydGVlblwiXSkuICAiCisgICAgICAgICAgICArICJOdW1iZXJzIGZyb20gMSwxMDAgdG8gMSwxOTkgYXJlIHJlbmRlcmVkIGFzIGh1bmRyZWRzIHJhdGhlciB0aGFuICIKKyAgICAgICAgICAgICsgInRob3VzYW5kczogMSwxMDAgaXMgXCJvbnplIGNlbnRzXCIgKFwiZWxldmVuIGh1bmRyZWRcIiksIHJhdGhlciB0aGFuICIKKyAgICAgICAgICAgICsgIlwibWlsbGUgY2VudFwiIChcIm9uZSB0aG91c2FuZCBvbmUgaHVuZHJlZFwiKSIsCisKKyAgICAgICAgICAgICJTd2lzcyBGcmVuY2ggZGlmZmVycyBmcm9tIEZyZW5jaCBGcmVuY2ggIgorICAgICAgICAgICAgKyAiaW4gdGhhdCBpdCBkb2VzIGhhdmUgd29yZHMgZm9yIDcwLCA4MCwgYW5kIDkwLiAgVGhpcyBydWxlIHNldCBzaG93cyB0aGVtLCAiCisgICAgICAgICAgICArICJhbmQgaXMgc2ltcGxlciBhcyBhIHJlc3VsdC4iLAorCisgICAgICAgICAgICAiR2VybWFuIGFsc28gYWRkcyBzb21lIGludGVyZXN0aW5nICIKKyAgICAgICAgICAgICsgImNoYXJhY3RlcmlzdGljcy4gIEZvciB2YWx1ZXMgYmVsb3cgMSwwMDAsMDAwLCBudW1iZXJzIGFyZSBjdXN0b21hcmlseSAiCisgICAgICAgICAgICArICJ3cml0dGVuIG91dCBhcyBhIHNpbmdsZSB3b3JkLiAgQW5kIHRoZSBvbmVzIGRpZ2l0IFBSRUNFREVTIHRoZSB0ZW5zICIKKyAgICAgICAgICAgICsgImRpZ2l0IChlLmcuLCAyMyBpcyBcImRyZWl1bmR6d2FuemlnLFwiIG5vdCBcInp3YW56aWd1bmRkcmVpXCIpLiIsCisKKyAgICAgICAgICAgICJMaWtlIEdlcm1hbiwgbW9zdCBJdGFsaWFuIG51bWJlcnMgYXJlICIKKyAgICAgICAgICAgICsgIndyaXR0ZW4gYXMgc2luZ2xlIHdvcmRzLiAgV2hhdCBtYWtlcyB0aGVzZSBydWxlcyBjb21wbGljYXRlZCBpcyB0aGUgcnVsZSAiCisgICAgICAgICAgICArICJ0aGF0IHNheXMgdGhhdCB3aGVuIGEgd29yZCBlbmRpbmcgaW4gYSB2b3dlbCBhbmQgYSB3b3JkIGJlZ2lubmluZyB3aXRoICIKKyAgICAgICAgICAgICsgImEgdm93ZWwgYXJlIGNvbWJpbmVkIGludG8gYSBjb21wb3VuZCwgdGhlIHZvd2VsIGlzIGRyb3BwZWQgZnJvbSB0aGUgIgorICAgICAgICAgICAgKyAiZW5kIG9mIHRoZSBmaXJzdCB3b3JkOiAxODAgaXMgXCJjZW50b3R0YW50YSxcIiBub3QgXCJjZW50b290dGFudGEuXCIgICIKKyAgICAgICAgICAgICsgIlRoZSBjb21wbGV4aXR5IG9mIHRoaXMgcnVsZSBzZXQgaXMgdG8gcHJvZHVjZSB0aGlzIGJlaGF2aW9yLiIsCisKKyAgICAgICAgICAgICJTcGVsbG91dCBydWxlcyBmb3IgU3dlZGlzaC4iLAorCisgICAgICAgICAgICAiU3BlbGxvdXQgcnVsZXMgZm9yIER1dGNoLiAgTm90aWNlIHRoYXQgaW4gRHV0Y2gsIGFzIGluIEdlcm1hbiwiCisgICAgICAgICAgICArICJ0aGUgb25lcyBkaWdpdCBwcmVjZWRlcyB0aGUgdGVucyBkaWdpdC4iLAorCisgICAgICAgICAgICAiSW4gSmFwYW5lc2UsIHRoZXJlIHJlYWxseSBpc24ndCBhbnkgIgorICAgICAgICAgICAgKyAiZGlzdGluY3Rpb24gYmV0d2VlbiBhIG51bWJlciB3cml0dGVuIG91dCBpbiBkaWdpdHMgYW5kIGEgbnVtYmVyICIKKyAgICAgICAgICAgICsgIndyaXR0ZW4gb3V0IGluIHdvcmRzOiB0aGUgaWRlb2dyYXBoaWMgY2hhcmFjdGVycyBhcmUgYm90aCBkaWdpdHMgIgorICAgICAgICAgICAgKyAiYW5kIHdvcmRzLiAgVGhpcyBydWxlIHNldCBwcm92aWRlcyB0d28gdmFyaWFudHM6ICAldHJhZGl0aW9uYWwgIgorICAgICAgICAgICAgKyAidXNlcyB0aGUgdHJhZGl0aW9uYWwgQ0pLIG51bWVyYWxzICh3aGljaCBhcmUgYWxzbyB1c2VkIGluIENoaW5hICIKKyAgICAgICAgICAgICsgImFuZCBLb3JlYSkuICAlZmluYW5jaWFsIHVzZXMgYWx0ZXJuYXRlIGlkZW9ncmFwaHMgZm9yIG1hbnkgbnVtYmVycyAiCisgICAgICAgICAgICArICJ0aGF0IGFyZSBoYXJkZXIgdG8gYWx0ZXIgdGhhbiB0aGUgdHJhZGl0aW9uYWwgbnVtZXJhbHMgKG9uZSBjb3VsZCAiCisgICAgICAgICAgICArICJmYWlybHkgZWFzaWx5IGNoYW5nZSBhIG9uZSB0byAiCisgICAgICAgICAgICArICJhIHRocmVlIGp1c3QgYnkgYWRkaW5nIHR3byBzdHJva2VzLCBmb3IgZXhhbXBsZSkuICBUaGlzIGlzIGFsc28gZG9uZSBpbiAiCisgICAgICAgICAgICArICJ0aGUgb3RoZXIgY291bnRyaWVzIHVzaW5nIENoaW5lc2UgaWRvZ3JhcGhzLCBidXQgZGlmZmVyZW50IGlkZW9ncmFwaHMgIgorICAgICAgICAgICAgKyAiYXJlIHVzZWQgaW4gdGhvc2UgcGxhY2VzLiIsCisKKyAgICAgICAgICAgICJBZ2FpbiBpbiBHcmVlayB3ZSBoYXZlIHRvIHN1cHBseSB0aGUgd29yZHMgIgorICAgICAgICAgICAgKyAiZm9yIHRoZSBtdWx0aXBsZXMgb2YgMTAwIGJlY2F1c2UgdGhleSBjYW4ndCBiZSBkZXJpdmVkIGFsZ29yaXRobWljYWxseS4gICIKKyAgICAgICAgICAgICsgIkFsc28sIHRoZSB0ZW5zIGRnaXQgY2hhbmdlcyBmb3JtIHdoZW4gZm9sbG93ZWQgYnkgYSBvbmVzIGRpZ2l0OiBhbiAiCisgICAgICAgICAgICArICJhY2NlbnQgbWFyayBkaXNhcHBlYXJzIGZyb20gdGhlIHRlbnMgZGlnaXQgYW5kIG1vdmVzIHRvIHRoZSBvbmVzIGRpZ2l0LiAgIgorICAgICAgICAgICAgKyAiVGhlcmVmb3JlLCBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBbXSBub3RhdGlvbiwgd2UgYWN0dWFsbHkgaGF2ZSB0byB1c2UgIgorICAgICAgICAgICAgKyAidHdvIHNlcGFyYXRlIHJ1bGVzIGZvciBlYWNoIG11bHRpcGxlIG9mIDEwIHRvIHNob3cgdGhlIHR3byBmb3JtcyBvZiAiCisgICAgICAgICAgICArICJ0aGUgd29yZC4iLAorCisgICAgICAgICAgICAiU3BlbGxvdXQgcnVsZXMgZm9yIFJ1c3NpYW4uIiwKKworICAgICAgICAgICAgIlNwZWxsb3V0IHJ1bGVzIGZvciBIZWJyZXcuICBIZWJyZXcgYWN0dWFsbHkgaGFzIGluZmxlY3RlZCBmb3JtcyBmb3IgIgorICAgICAgICAgICAgKyAibW9zdCBvZiB0aGUgbG93ZXItb3JkZXIgbnVtYmVycy4gIFRoZSBtYXNjdWxpbmUgZm9ybXMgYXJlIHNob3duICIKKyAgICAgICAgICAgICsgImhlcmUuIiwKKworICAgICAgICAgICAgIlRoaXMgcnVsZSBzZXQgYWRkcyBhbiBFbmdsaXNoIG9yZGluYWwgYWJicmV2aWF0aW9uIHRvIHRoZSBlbmQgb2YgYSAiCisgICAgICAgICAgICArICJudW1iZXIuICBGb3IgZXhhbXBsZSwgMiBpcyBmb3JtYXR0ZWQgYXMgXCIybmRcIi4gIFBhcnNpbmcgZG9lc24ndCB3b3JrIHdpdGggIgorICAgICAgICAgICAgKyAidGhpcyBydWxlIHNldC4gIFRvIHBhcnNlLCB1c2UgRGVjaW1hbEZvcm1hdCBvbiB0aGUgbnVtZXJhbC4iLAorCisgICAgICAgICAgICAiVGhpcyBpcyBhIHNpbXBsZSBtZXNzYWdlLWZvcm1hdHRpbmcgZXhhbXBsZS4gIE5vcm1hbGx5IG9uZSB3b3VsZCAiCisgICAgICAgICAgICArICJ1c2UgQ2hvaWNlRm9ybWF0IGFuZCBNZXNzYWdlRm9ybWF0IHRvIGRvIHNvbWV0aGluZyB0aGlzIHNpbXBsZSwgIgorICAgICAgICAgICAgKyAiYnV0IHRoaXMgc2hvd3MgaXQgY291bGQgYmUgZG9uZSB3aXRoIFJ1bGVCYXNlZE51bWJlckZvcm1hdCB0b28uICAiCisgICAgICAgICAgICArICJBIG1lc3NhZ2UtZm9ybWF0dGluZyBleGFtcGxlIHRoYXQgbWlnaHQgd29yayBiZXR0ZXIgd2l0aCAiCisgICAgICAgICAgICArICJSdWxlQmFzZWROdW1iZXJGb3JtYXQgYXBwZWFycyBsYXRlci4iLAorCisgICAgICAgICAgICAiVGhlIG5leHQgZmV3IGV4YW1wbGVzIGRlbW9uc3RyYXRlIGZyYWN0aW9uIGhhbmRsaW5nLiAgIgorICAgICAgICAgICAgKyAiVGhpcyBleGFtcGxlIGZvcm1hdHMgYSBudW1iZXIgaW4gb25lIG9mIHRoZSB0d28gc3R5bGVzIG9mdGVuIHVzZWQgIgorICAgICAgICAgICAgKyAib24gY2hlY2tzLiAgJWRvbGxhcnMtYW5kLWh1bmRyZWR0aHMgZm9ybWF0cyBjZW50cyBhcyBodW5kcmVkdGhzIG9mICIKKyAgICAgICAgICAgICsgImEgZG9sbGFyICgyMy40MCBjb21lcyBvdXQgYXMgXCJ0d2VudHktdGhyZWUgYW5kIDQwLzEwMCBkb2xsYXJzXCIpLiAgIgorICAgICAgICAgICAgKyAiJWRvbGxhcnMtYW5kLWNlbnRzIGZvcm1hdHMgaW4gZG9sbGFycyBhbmQgY2VudHMgKDIzLjQwIGNvbWVzIG91dCBhcyAiCisgICAgICAgICAgICArICJcInR3ZW50eS10aHJlZSBkb2xsYXJzIGFuZCBmb3J0eSBjZW50c1wiKSIsCisKKyAgICAgICAgICAgICJUaGlzIHJ1bGUgc2V0IHNob3dzIHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgdGhlIG51bWJlciBhcyBhIGZyYWN0aW9uICIKKyAgICAgICAgICAgICsgIndpdGggYSBwb3dlciBvZiAxMCBhcyB0aGUgZGVub21pbmF0b3IuICBTb21lIGxhbmd1YWdlcyBkb24ndCBzcGVsbCAiCisgICAgICAgICAgICArICJvdXQgdGhlIGZyYWN0aW9uYWwgcGFydCBvZiBhIG51bWJlciBhcyBcInBvaW50IG9uZSB0d28gdGhyZWUsXCIgYnV0ICIKKyAgICAgICAgICAgICsgImFsd2F5cyByZW5kZXIgaXQgYXMgYSBmcmFjdGlvbi4gIElmIHdlIHN0aWxsIHdhbnQgdG8gdHJlYXQgdGhlIGZyYWN0aW9uYWwgIgorICAgICAgICAgICAgKyAicGFydCBvZiB0aGUgbnVtYmVyIGFzIGEgZGVjaW1hbCwgdGhlbiB0aGUgZnJhY3Rpb24ncyBkZW5vbWluYXRvciAiCisgICAgICAgICAgICArICJpcyBhbHdheXMgYSBwb3dlciBvZiAxMC4gIFRoaXMgZXhhbXBsZSBkb2VzIHRoYXQ6IDIzLjEyNSBpcyBmb3JtYXR0ZWQgIgorICAgICAgICAgICAgKyAiYXMgXCJ0d2VudHktdGhyZWUgYW5kIG9uZSBodW5kcmVkIHR3ZW50eS1maXZlIHRob3VzYW5kdGhzXCIgKGFzIG9wcG9zZWQgIgorICAgICAgICAgICAgKyAidG8gXCJ0d2VudHktdGhyZWUgcG9pbnQgb25lIHR3byBmaXZlXCIgb3IgXCJ0d2VudHktdGhyZWUgYW5kIG9uZSBlaWdodGhcIikuIiwKKworICAgICAgICAgICAgIk51bWJlciB3aXRoIGNsb3Nlc3QgZnJhY3Rpb24uICBUaGlzIGV4YW1wbGUgZm9ybWF0cyBhIHZhbHVlIHVzaW5nICIKKyAgICAgICAgICAgICsgIm51bWVyYWxzLCBidXQgc2hvd3MgdGhlIGZyYWN0aW9uYWwgcGFydCBhcyBhIHJhdGlvIChmcmFjdGlvbikgcmF0aGVyICIKKyAgICAgICAgICAgICsgInRoYW4gYSBkZWNpbWFsLiAgVGhlIGZyYWN0aW9uIGFsd2F5cyBoYXMgYSBkZW5vbWluYXRvciBiZXR3ZWVuIDIgYW5kIDEwLiIsCisKKyAgICAgICAgICAgICJBbWVyaWNhbiBzdG9jay1wcmljZSBmb3JtYXR0aW5nLiAgTm9uLWludGVncmFsIHN0b2NrIHByaWNlcyBhcmUgc3RpbGwgIgorICAgICAgICAgICAgKyAiZ2VuZXJhbGx5IHNob3duIGluIGVpZ2h0aHMgb3Igc2l4dGVlbnRocyBvZiBkb2xsYXJzIGluc3RlYWQgb2YgZG9sbGFycyAiCisgICAgICAgICAgICArICJhbmQgY2VudHMuICBUaGlzIGV4YW1wbGUgZm9ybWF0cyBzdG9jayBwcmljZXMgaW4gdGhpcyB3YXkgaWYgcG9zc2libGUsICIKKyAgICAgICAgICAgICsgImFuZCBpbiBkb2xsYXJzIGFuZCBjZW50cyBpZiBub3QuIiwKKworICAgICAgICAgICAgIlRoZSBuZXh0IGZldyBleGFtcGxlcyBkZW1vbnN0cmF0ZSB1c2luZyBhIFJ1bGVCYXNlZE51bWJlckZvcm1hdCB0byAiCisgICAgICAgICAgICArICJjaGFuZ2UgdGhlIHVuaXRzIGEgdmFsdWUgaXMgZGVub21pbmF0ZWQgaW4gZGVwZW5kaW5nIG9uIGl0cyBtYWduaXR1ZGUuICAiCisgICAgICAgICAgICArICJUaGUgZXhhbXBsZSBzaG93cyBsYXJnZSBudW1iZXJzIHRoZSB3YXkgdGhleSBvZnRlbiBhcHBlYXIgaXMgbndlc3BhcGVyczogIgorICAgICAgICAgICAgKyAiMSwyMDAsMDAwIGlzIGZvcm1hdHRlZCBhcyBcIjEuMiBtaWxsaW9uXCIuIiwKKworICAgICAgICAgICAgIlRoaXMgZXhhbXBsZSB0YWtlcyBhIG51bWJlciBvZiBtZXRlcnMgYW5kIGZvcm1hdHMgaXQgaW4gd2hhdGV2ZXIgdW5pdCAiCisgICAgICAgICAgICArICJ3aWxsIHByb2R1Y2UgYSBudW1iZXIgd2l0aCBmcm9tIG9uZSB0byB0aHJlZSBkaWdpdHMgYmVmb3JlIHRoZSBkZWNpbWFsICIKKyAgICAgICAgICAgICsgInBvaW50LiAgRm9yIGV4YW1wbGUsIDIzMCwwMDAgaXMgZm9ybWF0dGVkIGFzIFwiMjMwIGttXCIuIiwKKworICAgICAgICAgICAgIkEgbW9yZSBjb21wbGljYXRlZCBtZXNzYWdlLWZvcm1hdHRpbmcgZXhhbXBsZS4gIEhlcmUsIGluIGFkZGl0aW9uIHRvICIKKyAgICAgICAgICAgICsgImhhbmRsaW5nIHRoZSBzaW5ndWxhciBhbmQgcGx1cmFsIHZlcnNpb25zIG9mIHRoZSB3b3JkLCB0aGUgdmFsdWUgaXMgIgorICAgICAgICAgICAgKyAiZGVub21pbmF0ZWQgaW4gYnl0ZXMsIGtpbG9ieXRlcywgb3IgbWVnYWJ5dGVzIGRlcGVuZGluZyBvbiBpdHMgbWFnbml0dWRlLiAgIgorICAgICAgICAgICAgKyAiQWxzbyBub3RpY2UgdGhhdCBpdCBjb3JyZWN0bHkgdHJlYXRzIGEga2lsb2J5dGUgYXMgMSwwMjQgYnl0ZXMgKG5vdCAxLDAwMCksICIKKyAgICAgICAgICAgICsgImFuZCBhIG1lZ2FieXRlIGFzIDEsMDI0IGtpbG9ieXRlcyAobm90IDEsMDAwKS4iLAorCisgICAgICAgICAgICAiVGhpcyBleGFtcGxlIGZvcm1hdHMgYSBudW1iZXIgaW4gZG96ZW5zIGFuZCBncm9zcy4gIFRoaXMgaXMgaW50ZW5kZWQgdG8gIgorICAgICAgICAgICAgKyAiZGVtb25zdHJhdGUgaG93IHRoaXMgcnVsZSBzZXQgY2FuIGJlIHVzZWQgdG8gZm9ybWF0IG51bWJlcnMgaW4gc3lzdGVtcyAiCisgICAgICAgICAgICArICJvdGhlciB0aGFuIGJhc2UgMTAuICBUaGUgXCIvMTJcIiBhZnRlciB0aGUgcnVsZXMnIGJhc2UgdmFsdWVzIGNvbnRyb2xzIHRoaXMuICAiCisgICAgICAgICAgICArICJBbHNvIG5vdGljZSB0aGF0IHRoZSBiYXNlIGRvZXNuJ3QgaGF2ZSB0byBiZSBjb25zaXN0ZW50IHRocm91Z2hvdXQgdGhlICIKKyAgICAgICAgICAgICsgIndob2xlIHJ1bGUgc2V0OiB3ZSBnbyBiYWNrIHRvIGJhc2UgMTAgZm9yIHZhbHVlcyBvdmVyIDEsMDAwLiIsCisKKyAgICAgICAgICAgICJUaGUgbmV4dCBmZXcgZXhhbXBsZXMgc2hvdyBob3cgYSBzaW5nbGUgdmFsdWUgY2FuIGJlIGRpdmlkZWQgdXAgaW50byBtYWpvciAiCisgICAgICAgICAgICArICJhbmQgbWlub3IgdW5pdHMgdGhhdCBkb24ndCByZWxhdGUgdG8gZWFjaCBvdGhlciBieSBhIGZhY3RvciBvZiAxMC4gICIKKyAgICAgICAgICAgICsgIlRoaXMgZXhhbXBsZSBmb3JtYXRzIGEgbnVtYmVyIG9mIHNlY29uZHMgaW4gc2V4YWdlc2ltYWwgbm90YXRpb24gIgorICAgICAgICAgICAgKyAiKGkuZS4sIGhvdXJzLCBtaW51dGVzLCBhbmQgc2Vjb25kcykuICAld2l0aC13b3JkcyBmb3JtYXRzIGl0IHdpdGggIgorICAgICAgICAgICAgKyAid29yZHMgKDM3NDAgaXMgXCIxIGhvdXIsIDIgbWludXRlcywgMjAgc2Vjb25kc1wiKSBhbmQgJWluLW51bWVyYWxzICIKKyAgICAgICAgICAgICsgImZvcm1hdHMgaXQgZW50aXJlbHkgaW4gbnVtZXJhbHMgKDM3NDAgaXMgXCIxOjAyOjIwXCIpLiIsCisKKyAgICAgICAgICAgICJUaGlzIGV4YW1wbGUgZm9ybWF0cyBhIG51bWJlciBvZiBob3VycyBpbiBzZXhhZ2VzaW1hbCBub3RhdGlvbiAoaS5lLiwgIgorICAgICAgICAgICAgKyAiaG91cnMsIG1pbnV0ZXMsIGFuZCBzZWNvbmRzKS4gICV3aXRoLXdvcmRzIGZvcm1hdHMgdGhlIHZhbHVlIHVzaW5nICIKKyAgICAgICAgICAgICsgIndvcmRzIGZvciB0aGUgdW5pdHMsIGFuZCAlaW4tbnVtZXJhbHMgZm9ybWF0cyB0aGUgdmFsdWUgdXNpbmcgb25seSAiCisgICAgICAgICAgICArICJudW1lcmFscy4iLAorCisgICAgICAgICAgICAiVGhpcyBydWxlIHNldCBmb3JtYXRzIGEgbnVtYmVyIG9mIHBvdW5kcyBhcyBwb3VuZHMsIHNoaWxsaW5ncywgYW5kICIKKyAgICAgICAgICAgICsgInBlbmNlIGluIHRoZSBvbGQgRW5nbGlzaCBzeXN0ZW0gb2YgY3VycmVuY3kuIiwKKworICAgICAgICAgICAgIlRoZXNlIGV4YW1wbGVzIHNob3cgaG93IFJ1bGVCYXNlZE51bWJlckZvcm1hdCBjYW4gYmUgdXNlZCB0byBmb3JtYXQgIgorICAgICAgICAgICAgKyAibnVtYmVycyB1c2luZyBub24tcG9zaXRpb25hbCBudW1lcmF0aW9uIHN5c3RlbXMuICAiCisgICAgICAgICAgICArICJUaGlzIGV4YW1wbGUgZm9ybWF0cyBudW1iZXJzIGluIEFyYWJpYyBudW1lcmFscy4gICIKKyAgICAgICAgICAgICsgIk5vcm1hbGx5LCB5b3UnZCBkbyB0aGlzIHdpdGggRGVjaW1hbEZvcm1hdCwgYnV0IHRoaXMgc2hvd3MgdGhhdCAiCisgICAgICAgICAgICArICJSdWxlQmFzZWROdW1iZXJGb3JtYXQgY2FuIGhhbmRsZSBpdCB0b28uIiwKKworICAgICAgICAgICAgIlRoaXMgZXhhbXBsZSBmb2xsb3dzIHRoZSBzYW1lIHBhdHRlcm4gYXMgdGhlIEFyYWJpYy1udW1lcmFscyAiCisgICAgICAgICAgICArICJleGFtcGxlLCBidXQgdXNlcyB3b3JkcyBmb3IgdGhlIHZhcmlvdXMgZGlnaXRzIChlLmcuLCAxMjMgY29tZXMgIgorICAgICAgICAgICAgKyAib3V0IGFzIFwib25lIHR3byB0aHJlZVwiKS4iLAorCisgICAgICAgICAgICAiVGhpcyBleGFtcGxlIGZvcm1hdHMgbnVtYmVycyB1c2luZyBDaGluZXNlIGNoYXJhY3RlcnMgaW4gdGhlIEFyYWJpYyAiCisgICAgICAgICAgICArICJwbGFjZS12YWx1ZSBtZXRob2QuICBUaGlzIHdhcyB1c2VkIGhpc3RvcmljYWxseSBpbiBDaGluYSBmb3IgYSB3aGlsZS4iLAorCisgICAgICAgICAgICAiUm9tYW4gbnVtZXJhbHMuICBUaGlzIGV4YW1wbGUgaGFzIHR3byB2YXJpYW50czogJW1vZGVybiBzaG93cyBob3cgbGFyZ2UgIgorICAgICAgICAgICAgKyAibnVtYmVycyBhcmUgdXN1YWxseSBoYW5kbGVkIHRvZGF5OyAlaGlzdG9yaWNhbCBzZXMgdGhlIG9sZGVyIHN5bWJvbHMgZm9yICIKKyAgICAgICAgICAgICsgInRob3VzYW5kcy4gIE5vdCBhbGwgb2YgdGhlIGNoYXJhY3RlcnMgYXJlIGRpc3BsYXlhYmxlIHdpdGggbW9zdCBmb250cy4iLAorCisgICAgICAgICAgICAiSGVicmV3IGFscGhhYmV0aWMgbnVtZXJhbHMuICBCZWZvcmUgYWRvcHRpb24gb2YgQXJhYmljIG51bWVyYWxzLCBIZWJyZXcgc3BlYWtlcnMgIgorICAgICAgICAgICAgKyAidXNlZCB0aGUgbGV0dGVyIG9mIHRoZWlyIGFscGhhYmV0IGFzIG51bWVyYWxzLiAgVGhlIGZpcnN0IG5pbmUgbGV0dGVycyBvZiAiCisgICAgICAgICAgICArICJ0aGUgYWxwaGFiZXQgcmVwZXNlbnRlZCB0aGUgdmFsdWVzIGZyb20gMSB0byA5LCB0aGUgc2Vjb25kIG5pbmUgbGV0dGVycyB0aGUgIgorICAgICAgICAgICAgKyAibXVsdGlwbGVzIG9mIDEwLCBhbmQgdGhlIHJlbWFpbmluZyBsZXR0ZXJzIHRoZSBtdWx0aXBsZXMgb2YgMTAwLiAgU2luY2UgdGhleSAiCisgICAgICAgICAgICArICJyYW4gb3V0IG9mIGxldHRlcnMgYXQgNDAwLCB0aGUgcmVtYWluaW5nIG11bHRpcGxlcyBvZiAxMDAgd2VyZSByZXByZXNlbnRlZCAiCisgICAgICAgICAgICArICJ1c2luZyBjb21iaW5hdGlvbnMgb2YgdGhlIGV4aXN0aW5nIGxldHRlcnMgZm9yIHRoZSBodW5kcmVkcy4gIE51bWJlcnMgd2VyZSAiCisgICAgICAgICAgICArICJkaXN0aW5ndWlzaGVkIGZyb20gd29yZHMgaW4gYSBudW1iZXIgb2YgZGlmZmVyZW50IHdheXM6IHRoZSB3YXkgc2hvd24gaGVyZSAiCisgICAgICAgICAgICArICJ1c2VzIGEgc2luZ2xlIG1hcmsgYWZ0ZXIgYSBudW1iZXIgY29uc2lzdGluZyBvZiBvbmUgbGV0dGVyLCBhbmQgYSBkb3VibGUgIgorICAgICAgICAgICAgKyAibWFyayBiZXR3ZWVuIHRoZSBsYXN0IHR3byBsZXR0ZXJzIG9mIGEgbnVtYmVyIGNvbnNpc3Rpbmcgb2YgdHdvIG9yIG1vcmUgIgorICAgICAgICAgICAgKyAibGV0dGVycy4gIFR3byBkb3RzIG92ZXIgYSBsZXR0ZXIgbXVsdGlwbGllZCBpdHMgdmFsdWUgYnkgMSwwMDAuICBBbHNvLCBzaW5jZSAiCisgICAgICAgICAgICArICJ0aGUgbGV0dGVyIGZvciAxMCBpcyB0aGUgZmlyc3QgbGV0dGVyIG9mIEdvZCdzIG5hbWUgYW5kIHRoZSBsZXR0ZXJzIGZvciA1IGFuZCA2ICIKKyAgICAgICAgICAgICsgImFyZSBsZXR0ZXJzIGluIEdvZCdzIG5hbWUsIHdoaWNoIHdhc24ndCBzdXBwb3NlZCB0byBiZSB3cml0dGVuIG9yIHNwb2tlbiwgMTUgYW5kICIKKyAgICAgICAgICAgICsgIjE2IHdlcmUgdXN1YWxseSB3cml0dGVuIGFzIDkgKyA2IGFuZCA5ICsgNyBpbnN0ZWFkIG9mIDEwICsgNSBhbmQgMTAgKyA2LiIsCisKKyAgICAgICAgICAgICJHcmVlayBhbHBoYWJldGljIG51bWVyYWxzLiAgVGhlIEdyZWVrcywgYmVmb3JlIGFkb3B0aW5nIHRoZSBBcmFiaWMgbnVtZXJhbHMsICIKKyAgICAgICAgICAgICsgImFsc28gdXNlZCB0aGUgbGV0dGVycyBvZiB0aGVpciBhbHBoYWJldCBhcyBudW1lcmFscy4gIFRoZXJlIGFyZSB0aHJlZSBub3ctIgorICAgICAgICAgICAgKyAib2Jzb2xldGUgR3JlZWsgbGV0dGVycyB0aGF0IGFyZSB1c2VkIGFzIG51bWVyYWxzOyBtYW55IGZvbnRzIGRvbid0IGhhdmUgdGhlbS4gICIKKyAgICAgICAgICAgICsgIkxhcmdlIG51bWJlcnMgd2VyZSBoYW5kbGVkIG1hbnkgZGlmZmVyZW50IHdheXM7IHRoZSB3YXkgc2hvd24gaGVyZSBkaXZpZGVzICIKKyAgICAgICAgICAgICsgImxhcmdlIG51bWJlcnMgaW50byBncm91cHMgb2YgZm91ciBsZXR0ZXJzIChmYWN0b3JzIG9mIDEwLDAwMCksIGFuZCBzZXBhcmF0ZXMgIgorICAgICAgICAgICAgKyAidGhlIGdyb3VwcyB3aXRoIHRoZSBjYXBpdGFsIGxldHRlciBtdSAoZm9yIG15cmlhZCkuICBDYXBpdGFsIGxldHRlcnMgYXJlIHVzZWQgIgorICAgICAgICAgICAgKyAiZm9yIHZhbHVlcyBiZWxvdyAxMCwwMDA7IHNtYWxsIGxldHRlcnMgZm9yIGhpZ2hlciBudW1iZXJzICh0byBtYWtlIHRoZSBjYXBpdGFsICIKKyAgICAgICAgICAgICsgIm11IHN0YW5kIG91dCkuIiwKKworICAgICAgICAgICAgIlRoaXMgaXMgYSBjdXN0b20gKHVzZXItZGVmaW5lZCkgcnVsZSBzZXQuIgorICAgICAgICB9OworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3JibmYvcGFja2FnZS5odG1sIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3JibmYvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMwYjg0ODQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJuZi9wYWNrYWdlLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMiBGaW5hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisgICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9yYm5mL3BhY2thZ2UuaHRtbCx2ICQKKyAgJFJldmlzaW9uOiAxLjEgJAorICAkRGF0ZTogMjAwMC8wMy8xNSAxNzo0NDowMiAkCistLT4KKzwvaGVhZD4KKzxib2R5IGJnY29sb3I9IndoaXRlIj4KK1J1bGVCYXNlZE51bWJlckZvcm1hdCBkZW1vIGFwcGxpYXRpb24uCis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L0FueVRyYW5zbGl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvQW55VHJhbnNsaXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNDBmMWM3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L0FueVRyYW5zbGl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwzMDYgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvQW55VHJhbnNsaXRlcmF0b3IuamF2YSx2ICQKKyAqICREYXRlOiAyMDAyLzA4LzEzIDIxOjUwOjQ0ICQKKyAqICRSZXZpc2lvbjogMS4zICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kZW1vLnRyYW5zbGl0OworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi5kZW1vLmltcGwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGphdmEudXRpbC4qOworCitwdWJsaWMgY2xhc3MgQW55VHJhbnNsaXRlcmF0b3IgZXh0ZW5kcyBUcmFuc2xpdGVyYXRvciB7CisJCisJc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUcgPSBmYWxzZTsKKwlwcml2YXRlIFN0cmluZyB0YXJnZXROYW1lOworCXByaXZhdGUgUnVuSXRlcmF0b3IgaXQ7CisJcHJpdmF0ZSBQb3NpdGlvbiBydW47CisJCisJCisJcHVibGljIEFueVRyYW5zbGl0ZXJhdG9yKFN0cmluZyB0YXJnZXROYW1lLCBVbmljb2RlRmlsdGVyIGZpbHRlciwgUnVuSXRlcmF0b3IgaXQpeworCQlzdXBlcigiQW55LSIgKyB0YXJnZXROYW1lLCBmaWx0ZXIpOworCQl0aGlzLnRhcmdldE5hbWUgPSB0YXJnZXROYW1lOworCQl0aGlzLml0ID0gaXQ7CisJCXJ1biA9IG5ldyBQb3NpdGlvbigpOworCX0KKwkKKwlwdWJsaWMgQW55VHJhbnNsaXRlcmF0b3IoU3RyaW5nIHRhcmdldE5hbWUsIFVuaWNvZGVGaWx0ZXIgZmlsdGVyKXsKKwkJdGhpcyh0YXJnZXROYW1lLCBmaWx0ZXIsIG5ldyBTY3JpcHRSdW5JdGVyYXRvcigpKTsKKwl9CisJCisJc3RhdGljIHByaXZhdGUgVHJhbnNsaXRlcmF0b3IgaGV4ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIlteXFx1MDAyMC1cXHUwMDdFXSBoZXgiKTsKKwkKKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVUcmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbiBvZmZzZXRzLCBib29sZWFuIGlzSW5jcmVtZW50YWwpIHsKKyAgICAJaWYgKERFQlVHKSB7CisgICAgCQlTeXN0ZW0ub3V0LnByaW50bG4oIi0gaGFuZGxlVHJhbnNsaXRlcmF0ZSAiICsgaGV4LnRyYW5zbGl0ZXJhdGUodGV4dC50b1N0cmluZygpKQorICAgIAkJCSsgIiwgIiArIHRvU3RyaW5nKG9mZnNldHMpKTsKKyAgICAJfQorCQlpdC5yZXNldCh0ZXh0LCBvZmZzZXRzKTsKKwkJCisgICAgICAgIHdoaWxlIChpdC5uZXh0KHJ1bikpIHsKKwkJCWlmICh0YXJnZXROYW1lLmVxdWFsc0lnbm9yZUNhc2UoaXQuZ2V0TmFtZSgpKSkgeworCQkJCWlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJTa2lwcGluZyBpZGVudGljYWw6ICIgKyB0YXJnZXROYW1lKTsKKwkJCQlydW4uc3RhcnQgPSBydW4ubGltaXQ7IC8vIHNob3cgd2UgcHJvY2Vzc2VkCisJCQkJY29udGludWU7IC8vIHNraXAgaWYgc2FtZQorCQkJfQorICAgICAgICAJCisJCQlUcmFuc2xpdGVyYXRvciB0OworCQkJU3RyaW5nIGlkID0gaXQuZ2V0TmFtZSgpICsgJy0nICsgdGFyZ2V0TmFtZTsKKwkJCXRyeSB7CisgICAgICAgIAkJdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKGlkKTsKKyAgICAgICAgCX0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBleCkgeworICAgICAgICAJCWlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJDb3VsZG4ndCBmaW5kOiAiICsgaWQgKyAiLCBUcnlpbmcgTGF0aW4gYXMgUGl2b3QiKTsKKwkJCQlpZCA9IGl0LmdldE5hbWUoKSArICItTGF0aW47IExhdGluLSIgKyB0YXJnZXROYW1lOworCQkJCXRyeSB7CisgICAgICAgIAkJCXQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShpZCk7CisgICAgICAgIAkJfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGV4MikgeworICAgICAgICAJCQlpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiQ291bGRuJ3QgZmluZDogIiArIGlkKTsKKyAgICAgICAgCQkJY29udGludWU7CisgICAgICAgIAkJfQorICAgICAgICAJfQorICAgICAgICAJLy8gVE9ETyBjYXRjaCBlcnJvciBsYXRlciEhCisgICAgICAgIAkJCisgICAgICAgIAlpZiAoREVCVUcpIHsKKyAgICAgICAgCQlTeXN0ZW0ub3V0LnByaW50bG4odC5nZXRJRCgpKTsKKyAgICAgICAgCQlTeXN0ZW0ub3V0LnByaW50bG4oImlucHV0OiAiICsgaGV4LnRyYW5zbGl0ZXJhdGUodGV4dC50b1N0cmluZygpKQorICAgICAgICAJCSArICIsICIgKyB0b1N0cmluZyhydW4pKTsKKyAgICAgICAgCX0KKyAgICAgICAgCQorICAgICAgICAJaWYgKGlzSW5jcmVtZW50YWwgJiYgaXQuYXRFbmQoKSkgeworICAgICAgICAJCXQudHJhbnNsaXRlcmF0ZSh0ZXh0LCBydW4pOworICAgICAgICAJfSBlbHNlIHsKKyAgICAgICAgCQl0LmZpbmlzaFRyYW5zbGl0ZXJhdGlvbih0ZXh0LCBydW4pOworICAgICAgICAJfQorICAgICAgICAJLy8gYWRqdXN0IHRoZSBvZmZzZXRzIGluIGxpbmUgd2l0aCB0aGUgY2hhbmdlcworICAgICAgICAJaXQuYWRqdXN0KHJ1bi5saW1pdCk7CisgICAgICAgIAkKKyAgICAgICAgCWlmIChERUJVRykgeworICAgICAgICAJCVN5c3RlbS5vdXQucHJpbnRsbigib3V0cHV0OiAiICsgaGV4LnRyYW5zbGl0ZXJhdGUodGV4dC50b1N0cmluZygpKQorICAgICAgICAJCSArICIsICIgKyB0b1N0cmluZyhydW4pKTsKKyAgICAgICAgCX0KKyAgICAgICAgfQorCisJCS8vIHNob3cgaG93IGZhciB3ZSBnb3QhCisJCWl0LmdldEV4cGFuc2Uob2Zmc2V0cyk7CisJCWlmIChydW4uc3RhcnQgPT0gcnVuLmxpbWl0KSBvZmZzZXRzLnN0YXJ0ID0gb2Zmc2V0cy5saW1pdDsKKwkJZWxzZSBvZmZzZXRzLnN0YXJ0ID0gcnVuLnN0YXJ0OworICAgIAlpZiAoREVCVUcpIHsKKyAgICAJCVN5c3RlbS5vdXQucHJpbnRsbigiKyBoYW5kbGVUcmFuc2xpdGVyYXRlOiAiICsgIiwgIiArIHRvU3RyaW5nKG9mZnNldHMpKTsKKyAgICAgICAgCVN5c3RlbS5vdXQucHJpbnRsbigpOworICAgIAl9CisgICAgfQorICAgIAorICAgIC8vIHNob3VsZCBiZSBtZXRob2Qgb24gUG9zaXRpb24KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB0b1N0cmluZyhQb3NpdGlvbiBvZmZzZXRzKSB7CisgICAgCXJldHVybiAiW2NzOiAiICsgb2Zmc2V0cy5jb250ZXh0U3RhcnQKKyAgICAJCQkrICIsIHM6ICIgKyBvZmZzZXRzLnN0YXJ0CisgICAgCQkJKyAiLCBsOiAiICsgb2Zmc2V0cy5saW1pdAorICAgIAkJCSsgIiwgY2w6ICIgKyBvZmZzZXRzLmNvbnRleHRMaW1pdAorICAgIAkJCSsgIl0iOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50ZXJmYWNlIFJ1bkl0ZXJhdG9yIHsKKyAgICAJcHVibGljIHZvaWQgcmVzZXQoUmVwbGFjZWFibGUgdGV4dCwgUG9zaXRpb24gZXhwYW5zZSk7CisgICAgCXB1YmxpYyB2b2lkIGdldEV4cGFuc2UoUG9zaXRpb24gcnVuKTsKKyAgICAJcHVibGljIHZvaWQgcmVzZXQoKTsKKyAgICAJcHVibGljIGJvb2xlYW4gbmV4dChQb3NpdGlvbiBydW4pOworICAgIAlwdWJsaWMgdm9pZCBnZXRDdXJyZW50KFBvc2l0aW9uIHJ1bik7CisgICAgCXB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpOworICAgIAlwdWJsaWMgdm9pZCBhZGp1c3QoaW50IG5ld0N1cnJlbnRMaW1pdCk7CisgICAgCXB1YmxpYyBib29sZWFuIGF0RW5kKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBzZXJpZXMgb2YgcmFuZ2VzIGNvcnJlc3BvbmRpbmcgdG8gc2NyaXB0cy4gVGhleSB3aWxsIGJlIG9mIHRoZSBmb3JtOgorICAgICAqIGNjY2NTU2NTU2NjY2NUVGNUY2NjYwktIHdoZXJlIGMgaXMgY29tbW9uLCBTIGlzIHRoZSBmaXJzdCBzY3JpcHQgYW5kIFQgaXMgdGhlIHNlY29uZAorICAgICAqfCAgICAgICAgICAgIHwJCQktIGZpcnN0IHJ1bgorICAgICAqICAgICAgICAgfCAgICAgICAgICAgIHwJLSBzZWNvbmQgcnVuCisgICAgICogVGhhdCBpcywgdGhlIHJ1bnMgd2lsbCBvdmVybGFwLiBUaGUgcmVhc29uIGZvciB0aGlzIGlzIHNvIHRoYXQgYSB0cmFuc2xpdGVyYXRvciBjYW4KKyAgICAgKiBjb25zaWRlciBjb21tb24gY2hhcmFjdGVycyBib3RoIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIHNjcmlwdHMuCisgICAgICogVGhlIG9ubHkgdGltZSB0aGF0IGNvbnRleHRTdGFydCAhPSBzdGFydCBpcyBmb3IgdGhlIGZpcnN0IHJ1biAKKyAgICAgKgkodGhlIGNvbnRleHQgaXMgdGhlIHN0YXJ0IGNvbnRleHQgb2YgdGhlIGVudGlyZSBleHBhbnNlKQorICAgICAqIFRoZSBvbmx5IHRpbWUgdGhhdCBjb250ZXh0TGltaXQgIT0gbGltaXQgaXMgZm9yIHRoZSBsYXN0IHJ1biAKKyAgICAgKgkodGhlIGNvbnRleHQgaXMgdGhlIGVuZCBjb250ZXh0IG9mIHRoZSBlbnRpcmUgZXhwYW5zZSkKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFNjcmlwdFJ1bkl0ZXJhdG9yIGltcGxlbWVudHMgUnVuSXRlcmF0b3IgeworICAgIAlwcml2YXRlIFJlcGxhY2VhYmxlIHRleHQ7CisgICAgCXByaXZhdGUgUG9zaXRpb24gZXhwYW5zZSA9IG5ldyBQb3NpdGlvbigpOworICAgIAlwcml2YXRlIFBvc2l0aW9uIGN1cnJlbnQgPSBuZXcgUG9zaXRpb24oKTsKKyAgICAJcHJpdmF0ZSBpbnQgc2NyaXB0OworICAgIAlwcml2YXRlIGJvb2xlYW4gZG9uZSA9IHRydWU7CisgICAgCQorCisgICAgCXB1YmxpYyB2b2lkIHJlc2V0KFJlcGxhY2VhYmxlIHRleHQsIFBvc2l0aW9uIGV4cGFuc2UpIHsKKyAgICAJCXNldCh0aGlzLmV4cGFuc2UsIGV4cGFuc2UpOworICAgIAkJdGhpcy50ZXh0ID0gdGV4dDsKKyAgICAJCXJlc2V0KCk7CisgICAgCX0KKyAgICAJCQorICAgIAlwdWJsaWMgdm9pZCByZXNldCgpIHsKKyAgICAJCWRvbmUgPSBmYWxzZTsKKyAgICAJCXRoaXMuZXhwYW5zZSA9IGV4cGFuc2U7CisgICAgCQlzY3JpcHQgPSBVU2NyaXB0LklOVkFMSURfQ09ERTsKKyAgICAJCS8vIHNldCB1cCBmaXJzdCByYW5nZSB0byBiZSBlbXB0eSwgYXQgYmVnaW5uaW5nCisgICAgCQljdXJyZW50LmNvbnRleHRTdGFydCA9IGV4cGFuc2UuY29udGV4dFN0YXJ0OworICAgIAkJY3VycmVudC5zdGFydCA9IGN1cnJlbnQubGltaXQgPSBjdXJyZW50LmNvbnRleHRMaW1pdCA9IGV4cGFuc2Uuc3RhcnQ7ICAgIAkJCisgICAgCX0KKyAgICAJCQorICAgIAlwdWJsaWMgYm9vbGVhbiBuZXh0KFBvc2l0aW9uIHJ1bikgeworICAgIAkJaWYgKGRvbmUpIHJldHVybiBmYWxzZTsKKyAgICAJCWlmIChERUJVRykgeworICAgIAkJCVN5c3RlbS5vdXQucHJpbnRsbigiK2NzOiAiICsgY3VycmVudC5jb250ZXh0U3RhcnQKKyAgICAJCQkJKyAiLCBzOiAiICsgY3VycmVudC5zdGFydAorICAgIAkJCQkrICIsIGw6ICIgKyBjdXJyZW50LmxpbWl0CisgICAgCQkJCSsgIiwgY2w6ICIgKyBjdXJyZW50LmNvbnRleHRMaW1pdCk7CisgICAgCQl9CisgICAgCQkvLyByZXNldCBzdGFydCBjb250ZXh0IHJ1biB0byB0aGUgbGFzdCBlbmQKKyAgICAJCWN1cnJlbnQuc3RhcnQgPSBjdXJyZW50LmxpbWl0OworICAgIAkJCisgICAgCQkvLyBQaGFzZSAxLiBCYWNrdXAgdGhlIFNUQVJUIHZhbHVlIHRocm91Z2ggQ09NTU9OIHVudGlsIHdlIGdldCB0byBleHBhbnNlLnN0YXJ0IG9yIGEgcmVhbCBzY3JpcHQuCisgICAgCQlpbnQgaSwgY3A7CisgICAgCQlpbnQgbGltaXQgPSBleHBhbnNlLnN0YXJ0OworICAgIAkJZm9yIChpID0gY3VycmVudC5zdGFydDsgaSA+IGxpbWl0OyBpIC09IFVURjE2LmdldENoYXJDb3VudChjcCkpIHsKKyAgICAJCQljcCA9IHRleHQuY2hhcjMyQXQoaSk7CisgICAgCQkJaW50IHNjcmlwdCA9IFVTY3JpcHQuZ2V0U2NyaXB0KGNwKTsKKyAgICAJCQlpZiAoc2NyaXB0ICE9IFVTY3JpcHQuQ09NTU9OICYmIHNjcmlwdCAhPSBVU2NyaXB0LklOSEVSSVRFRCkgYnJlYWs7CisgICAgCQl9CisgICAgCQljdXJyZW50LnN0YXJ0ID0gaTsKKyAgICAJCWN1cnJlbnQuY29udGV4dFN0YXJ0ID0gKGkgPT0gbGltaXQpID8gZXhwYW5zZS5jb250ZXh0U3RhcnQgOiBpOyAvLyBleHRlbmQgYXQgc3RhcnQKKyAgICAJCQorICAgIAkJLy8gUEhBU0UgMi4gTW92ZSB1cCB0aGUgTElNSVQgdmFsdWUgdGhyb3VnaCBDT01NT04gb3Igc2luZ2xlIHNjcmlwdCB1bnRpbCB3ZSBnZXQgdG8gZXhwYW5zZS5saW1pdAorICAgIAkJaW50IGxhc3RTY3JpcHQgPSBVU2NyaXB0LkNPTU1PTjsKKyAgICAJCWludCB2ZXJ5TGFzdFNjcmlwdCA9IFVTY3JpcHQuQ09NTU9OOworICAgIAkJbGltaXQgPSBleHBhbnNlLmxpbWl0OyAKKyAgICAJCWZvciAoaSA9IGN1cnJlbnQubGltaXQ7IGkgPCBsaW1pdDsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgCQkJY3AgPSB0ZXh0LmNoYXIzMkF0KGkpOworICAgIAkJCWludCBzY3JpcHQgPSBVU2NyaXB0LmdldFNjcmlwdChjcCk7CisgICAgCQkJaWYgKHNjcmlwdCA9PSBVU2NyaXB0LklOSEVSSVRFRCkgc2NyaXB0ID0gVVNjcmlwdC5DT01NT047CisgICAgCQkJaWYgKHNjcmlwdCAhPSBVU2NyaXB0LkNPTU1PTikgeworICAgIAkJCQkvLyBpZiB3ZSBmaW5kIGEgcmVhbCBzY3JpcHQ6CisgICAgCQkJCS8vICAgaWYgd2UgYWxyZWFkeSBoYWQgYSBzY3JpcHQsIGJhaWwKKyAgICAJCQkJLy8gICBvdGhlcndpc2Ugc2V0IG91ciBzY3JpcHQKKyAgICAJCQkJaWYgKGxhc3RTY3JpcHQgPT0gVVNjcmlwdC5DT01NT04pIGxhc3RTY3JpcHQgPSBzY3JpcHQ7CisgICAgCQkJCWVsc2UgaWYgKGxhc3RTY3JpcHQgIT0gc2NyaXB0KSBicmVhazsKKyAgICAJCQl9CisgICAgCQl9CisgICAgCQljdXJyZW50LmxpbWl0ID0gaTsKKyAgICAJCWN1cnJlbnQuY29udGV4dExpbWl0ID0gKGkgPT0gbGltaXQpID8gZXhwYW5zZS5jb250ZXh0TGltaXQgOiBpOyAvLyBleHRlbmQgYXQgZW5kCisgICAgCQlkb25lID0gKGkgPT0gbGltaXQpOworICAgIAkJc2NyaXB0ID0gbGFzdFNjcmlwdDsKKyAgICAJCQorICAgIAkJaWYgKERFQlVHKSB7CisgICAgCQkJU3lzdGVtLm91dC5wcmludGxuKCItY3M6ICIgKyBjdXJyZW50LmNvbnRleHRTdGFydAorICAgIAkJCQkrICIsIHM6ICIgKyBjdXJyZW50LnN0YXJ0CisgICAgCQkJCSsgIiwgbDogIiArIGN1cnJlbnQubGltaXQKKyAgICAJCQkJKyAiLCBjbDogIiArIGN1cnJlbnQuY29udGV4dExpbWl0KTsKKyAgICAJCX0KKyAgICAJCQorICAgIAkJc2V0KHJ1biwgY3VycmVudCk7CisgICAgCQlyZXR1cm4gdHJ1ZTsKKyAgICAJfQorICAgIAkKKyAgICAJLy8gU0hPVUxEIEJFIE1FVEhPRCBPTiBQT1NJVElPTgorICAgIAlwdWJsaWMgc3RhdGljIHZvaWQgc2V0KFBvc2l0aW9uIHJ1biwgUG9zaXRpb24gY3VycmVudCkgeworICAgIAkJcnVuLmNvbnRleHRTdGFydCA9IGN1cnJlbnQuY29udGV4dFN0YXJ0OworICAgIAkJcnVuLnN0YXJ0ID0gY3VycmVudC5zdGFydDsKKyAgICAJCXJ1bi5saW1pdCA9IGN1cnJlbnQubGltaXQ7CisgICAgCQlydW4uY29udGV4dExpbWl0ID0gY3VycmVudC5jb250ZXh0TGltaXQ7CisgICAgCX0KKyAgICAJCisgICAgCXB1YmxpYyBib29sZWFuIGF0RW5kKCkgeworICAgIAkJcmV0dXJuIGN1cnJlbnQubGltaXQgPT0gZXhwYW5zZS5saW1pdDsKKyAgICAJfQorICAgIAkKKyAgICAJcHVibGljIHZvaWQgZ2V0Q3VycmVudChQb3NpdGlvbiBydW4pIHsKKyAgICAJCXNldChydW4sIGN1cnJlbnQpOworICAgIAl9CisgICAgCQorICAgIAlwdWJsaWMgdm9pZCBnZXRFeHBhbnNlKFBvc2l0aW9uIHJ1bikgeworICAgIAkJc2V0KHJ1biwgZXhwYW5zZSk7CisgICAgCX0KKyAgICAJCisgICAgCXB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpIHsKKyAgICAJCXJldHVybiBVU2NyaXB0LmdldE5hbWUoc2NyaXB0KTsKKyAgICAJfQorICAgIAkKKyAgICAJcHVibGljIHZvaWQgYWRqdXN0KGludCBuZXdDdXJyZW50TGltaXQpIHsKKyAgICAJCWlmIChleHBhbnNlID09IG51bGwpIHsKKyAgICAJCQl0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJNdXN0IHJlc2V0KCkgYmVmb3JlIGNhbGxpbmciKTsKKyAgICAJCX0KKyAgICAJCWludCBkZWx0YSA9IG5ld0N1cnJlbnRMaW1pdCAtIGN1cnJlbnQubGltaXQ7CisgICAgCQljdXJyZW50LmxpbWl0ICs9IGRlbHRhOworICAgIAkJY3VycmVudC5jb250ZXh0TGltaXQgKz0gZGVsdGE7CisgICAgCQlleHBhbnNlLmxpbWl0ICs9IGRlbHRhOworICAgIAkJZXhwYW5zZS5jb250ZXh0TGltaXQgKz0gZGVsdGE7CisgICAgCX0KKyAgICAJCisgICAgCS8vIHJlZ2lzdGVyIEFueS1TY3JpcHQgZm9yIGV2ZXJ5IHNjcmlwdC4KKyAgICAJCisgICAgCXByaXZhdGUgc3RhdGljIFNldCBzY3JpcHRMaXN0ID0gbmV3IEhhc2hTZXQoKTsKKyAgICAJCisgICAgCXB1YmxpYyBzdGF0aWMgdm9pZCByZWdpc3RlckFueVRvU2NyaXB0KCkgeworICAgIAkJc3luY2hyb25pemVkIChzY3JpcHRMaXN0KSB7CisgICAgICAgIAkJRW51bWVyYXRpb24gc291cmNlcyA9IFRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZVNvdXJjZXMoKTsKKyAgICAgICAgCQl3aGlsZShzb3VyY2VzLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICAJCVN0cmluZyBzb3VyY2UgPSAoU3RyaW5nKSBzb3VyY2VzLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICAJCWlmIChzb3VyY2UuZXF1YWxzKCJBbnkiKSkgY29udGludWU7IC8vIHRvIGtlZXAgZnJvbSBsb29waW5nCisJICAgICAgICAgICAgCQorICAgICAgICAgICAgCQlFbnVtZXJhdGlvbiB0YXJnZXRzID0gVHJhbnNsaXRlcmF0b3IuZ2V0QXZhaWxhYmxlVGFyZ2V0cyhzb3VyY2UpOworICAgICAgICAgICAgCQl3aGlsZSh0YXJnZXRzLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICAgICAgCQlTdHJpbmcgdGFyZ2V0ID0gKFN0cmluZykgdGFyZ2V0cy5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgCQkJaWYgKFVTY3JpcHQuZ2V0Q29kZSh0YXJnZXQpID09IG51bGwpIGNvbnRpbnVlOyAvLyBTS0lQIHVubGVzcyB3ZSBoYXZlIGEgc2NyaXB0IChvciBsb2NhbGUpCisgICAgICAgICAgICAJCQlpZiAoc2NyaXB0TGlzdC5jb250YWlucyh0YXJnZXQpKSBjb250aW51ZTsgLy8gYWxyZWFkeSBlbmNvdW50ZXJlZAorICAgICAgICAgICAgCQkJc2NyaXB0TGlzdC5hZGQodGFyZ2V0KTsgLy8gb3RoZXJ3aXNlIGFkZCBmb3IgbGF0ZXIgdGVzdGluZworCSAgICAgICAgICAgIAkJCisgICAgICAgICAgICAgICAgCQlTZXQgdmFyaWFudFNldCA9IGFkZChuZXcgVHJlZVNldCgpLCBUcmFuc2xpdGVyYXRvci5nZXRBdmFpbGFibGVWYXJpYW50cyhzb3VyY2UsIHRhcmdldCkpOworICAgICAgICAgICAgICAgIAkJaWYgKHZhcmlhbnRTZXQuc2l6ZSgpIDwgMikgeworICAgIAkJCQkJCUFueVRyYW5zbGl0ZXJhdG9yIGF0ID0gbmV3IEFueVRyYW5zbGl0ZXJhdG9yKHRhcmdldCwgbnVsbCk7CisgICAgCQkJCQkJRHVtbXlGYWN0b3J5LmFkZChhdC5nZXRJRCgpLCBhdCk7CisgICAgICAgICAgICAgICAgCQl9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAJCUl0ZXJhdG9yIHZhcmlhbnRzID0gdmFyaWFudFNldC5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgICAgICAJCXdoaWxlKHZhcmlhbnRzLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgCQlTdHJpbmcgdmFyaWFudCA9IChTdHJpbmcpIHZhcmlhbnRzLm5leHQoKTsKKyAgICAJCQkJCQkJQW55VHJhbnNsaXRlcmF0b3IgYXQgPSBuZXcgQW55VHJhbnNsaXRlcmF0b3IoCisgICAgCQkJCQkJCQkodmFyaWFudC5sZW5ndGgoKSA+IDApID8gdGFyZ2V0ICsgIi8iICsgdmFyaWFudCA6IHRhcmdldCwgbnVsbCk7CisgICAgCQkJCQkJCUR1bW15RmFjdG9yeS5hZGQoYXQuZ2V0SUQoKSwgYXQpOworICAgICAgICAgICAgICAgICAgICAJCX0KKyAgICAgICAgICAgICAgICAJCX0KKyAgICAgICAgICAgIAkJfQorICAgICAgICAJCX0KKyAgICAgICAgCX0KKyAgICAJfQorICAgIAkKKyAgICAJc3RhdGljIGNsYXNzIER1bW15RmFjdG9yeSBpbXBsZW1lbnRzIFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkgeworICAgICAgICAJc3RhdGljIER1bW15RmFjdG9yeSBzaW5nbGV0b24gPSBuZXcgRHVtbXlGYWN0b3J5KCk7CisgICAgICAgIAlzdGF0aWMgSGFzaE1hcCBtID0gbmV3IEhhc2hNYXAoKTsKKworICAgICAgICAJLy8gU2luY2UgVHJhbnNsaXRlcmF0b3JzIGFyZSBpbW11dGFibGUsIHdlIGRvbid0IGhhdmUgdG8gY2xvbmUgb24gc2V0ICYgZ2V0CisgICAgICAgIAlzdGF0aWMgdm9pZCBhZGQoU3RyaW5nIElELCBUcmFuc2xpdGVyYXRvciB0KSB7CisgICAgICAgICAgICAJbS5wdXQoSUQsIHQpOworICAgICAgICAgICAgCVN5c3RlbS5vdXQucHJpbnRsbigiUmVnaXN0ZXJpbmc6ICIgKyBJRCArICIsICIgKyB0LnRvUnVsZXModHJ1ZSkpOworICAgICAgICAgICAgCVRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeShJRCwgc2luZ2xldG9uKTsKKyAgICAgICAgCX0KKyAgICAgICAgCXB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgICAgIAlyZXR1cm4gKFRyYW5zbGl0ZXJhdG9yKSBtLmdldChJRCk7CisgICAgICAgIAl9CisgICAgCX0KKyAgICAJCisgICAgCS8vIE5pY2UgbGl0dGxlIFV0aWxpdHkgZm9yIGNvbnZlcnRpbmcgRW51bWVyYXRpb24gdG8gY29sbGVjdGlvbgorICAgIAlzdGF0aWMgU2V0IGFkZChTZXQgcywgRW51bWVyYXRpb24gZW51bSkgeworICAgICAgICAJd2hpbGUoZW51bS5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgCXMuYWRkKGVudW0ubmV4dEVsZW1lbnQoKSk7CisgICAgICAgIAl9CisgICAgICAgIAlyZXR1cm4gczsKKyAgICAJfQorICAgIAkKKyAgICAJCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L0RlbW8uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9EZW1vLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjgzMjM4ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9EZW1vLmphdmEKQEAgLTAsMCArMSwxMzgxIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvRGVtby5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzA3LzI2IDE5OjU2OjU4ICQgCisgKiAkUmV2aXNpb246IDEuMjQgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kZW1vLnRyYW5zbGl0OworaW1wb3J0IGphdmEuYXBwbGV0Lio7CitpbXBvcnQgamF2YS5hd3QuKjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC4qOworaW1wb3J0IGphdmEudXRpbC4qOworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYuZGVtby5pbXBsLio7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLio7CitpbXBvcnQgamF2YS5pby4qOworCisvKioKKyAqIEEgZnJhbWUgdGhhdCBhbGxvd3MgdGhlIHVzZXIgdG8gZXhwZXJpbWVudCB3aXRoIGtleWJvYXJkCisgKiB0cmFuc2xpdGVyYXRpb24uICBUaGlzIGNsYXNzIGhhcyBhIG1haW4oKSBtZXRob2Qgc28gaXQgY2FuIGJlIHJ1bgorICogYXMgYW4gYXBwbGljYXRpb24uICBUaGUgZnJhbWUgY29udGFpbnMgYW4gZWRpdGFibGUgdGV4dCBjb21wb25lbnQKKyAqIGFuZCB1c2VzIGtleWJvYXJkIHRyYW5zbGl0ZXJhdGlvbiB0byBwcm9jZXNzIGtleWJvYXJkIGV2ZW50cy4KKyAqCisgKiA8cD5Db3B5cmlnaHQgKGMpIElCTSBDb3Jwb3JhdGlvbiAxOTk5LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAdmVyc2lvbiAkUkNTZmlsZTogRGVtby5qYXZhLHYgJCAkUmV2aXNpb246IDEuMjQgJCAkRGF0ZTogMjAwMi8wNy8yNiAxOTo1Njo1OCAkCisgKi8KK3B1YmxpYyBjbGFzcyBEZW1vIGV4dGVuZHMgRnJhbWUgeworCisgICAgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUcgPSBmYWxzZTsKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIFNUQVJUX1RFWFQgPSAiKGN1dCxcdTAzQkFcdTAzQzVcdTAzQzQsXHUwNUQwLFx1MzBBRlx1MzBDOCxcdTRFODAsXHUwOTFBXHUwOTQxXHUwOTI0XHUwOTREKSI7CisKKyAgICBUcmFuc2xpdGVyYXRvciB0cmFuc2xpdCA9IG51bGw7CisgICAgU3RyaW5nIGZvbnROYW1lID0gIkFyaWFsIFVuaWNvZGUgTVMiOworICAgIGludCBmb250U2l6ZSA9IDE4OworICAgIAorICAgIAorCisgICAgLyoKKyAgICBib29sZWFuIGNvbXBvdW5kID0gZmFsc2U7CisgICAgVHJhbnNsaXRlcmF0b3JbXSBjb21wb3VuZFRyYW5zbGl0ID0gbmV3IFRyYW5zbGl0ZXJhdG9yW01BWF9DT01QT1VORF07CisgICAgc3RhdGljIGZpbmFsIGludCBNQVhfQ09NUE9VTkQgPSAxMjg7CisgICAgaW50IGNvbXBvdW5kQ291bnQgPSAwOworICAgICovCisKKyAgICBUcmFuc2xpdGVyYXRpbmdUZXh0Q29tcG9uZW50IHRleHQgPSBudWxsOworCisgICAgTWVudSB0cmFuc2xpdE1lbnU7CisgICAgQ2hlY2tib3hNZW51SXRlbSB0cmFuc2xpdEl0ZW07CisgICAgQ2hlY2tib3hNZW51SXRlbSBub1RyYW5zbGl0SXRlbTsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgTk9fVFJBTlNMSVRFUkFUT1IgPSAiTm9uZSI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgIlx1MDBBOSBJQk0gQ29ycG9yYXRpb24gMTk5OS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBGcmFtZSBmID0gbmV3IERlbW8oNjAwLCAyMDApOworICAgICAgICBmLmFkZFdpbmRvd0xpc3RlbmVyKG5ldyBXaW5kb3dBZGFwdGVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgd2luZG93Q2xvc2luZyhXaW5kb3dFdmVudCBlKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLmV4aXQoMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICBmLnNldFZpc2libGUodHJ1ZSk7CisgICAgfQorCisJcHVibGljIERlbW8oaW50IHdpZHRoLCBpbnQgaGVpZ2h0KSB7CisgICAgICAgIHN1cGVyKCJUcmFuc2xpdGVyYXRpb24gRGVtbyIpOworCisgICAgICAgIGluaXRNZW51cygpOworCisgICAgICAgIGFkZFdpbmRvd0xpc3RlbmVyKG5ldyBXaW5kb3dBZGFwdGVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgd2luZG93Q2xvc2luZyhXaW5kb3dFdmVudCBlKSB7CisgICAgICAgICAgICAgICAgaGFuZGxlQ2xvc2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIAorICAgICAgICB0ZXh0ID0gbmV3IFRyYW5zbGl0ZXJhdGluZ1RleHRDb21wb25lbnQoKTsKKyAgICAgICAgRm9udCBmb250ID0gbmV3IEZvbnQoZm9udE5hbWUsIEZvbnQuUExBSU4sIGZvbnRTaXplKTsKKyAgICAgICAgdGV4dC5zZXRGb250KGZvbnQpOworICAgICAgICB0ZXh0LnNldFNpemUod2lkdGgsIGhlaWdodCk7CisgICAgICAgIHRleHQuc2V0VmlzaWJsZSh0cnVlKTsKKyAgICAgICAgdGV4dC5zZXRUZXh0KFNUQVJUX1RFWFQpOworICAgICAgICBhZGQodGV4dCk7CisKKyAgICAgICAgc2V0U2l6ZSh3aWR0aCwgaGVpZ2h0KTsKKyAgICAgICAgc2V0VHJhbnNsaXRlcmF0b3IoIkxhdGluLUdyZWVrIiwgbnVsbCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGluaXRNZW51cygpIHsKKyAgICAgICAgTWVudUJhciBtYmFyOworICAgICAgICBNZW51IG1lbnU7CisgICAgICAgIE1lbnVJdGVtIG1pdGVtOworICAgICAgICBDaGVja2JveE1lbnVJdGVtIGNpdGVtOworICAgICAgICAKKyAgICAgICAgc2V0TWVudUJhcihtYmFyID0gbmV3IE1lbnVCYXIoKSk7CisgICAgICAgIG1iYXIuYWRkKG1lbnUgPSBuZXcgTWVudSgiRmlsZSIpKTsKKyAgICAgICAgbWVudS5hZGQobWl0ZW0gPSBuZXcgTWVudUl0ZW0oIlF1aXQiKSk7CisgICAgICAgIG1pdGVtLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgaGFuZGxlQ2xvc2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisvKgorICAgICAgICBmaW5hbCBJdGVtTGlzdGVuZXIgc2V0VHJhbnNsaXRlcmF0b3JMaXN0ZW5lciA9IG5ldyBJdGVtTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBpdGVtU3RhdGVDaGFuZ2VkKEl0ZW1FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgQ2hlY2tib3hNZW51SXRlbSBpdGVtID0gKENoZWNrYm94TWVudUl0ZW0pIGUuZ2V0U291cmNlKCk7CisgICAgICAgICAgICAgICAgaWYgKGUuZ2V0U3RhdGVDaGFuZ2UoKSA9PSBJdGVtRXZlbnQuREVTRUxFQ1RFRCkgeworICAgICAgICAgICAgICAgICAgICAvLyBEb24ndCBsZXQgdGhlIGN1cnJlbnQgdHJhbnNsaXRlcmF0b3IgYmUgZGVzZWxlY3RlZC4KKyAgICAgICAgICAgICAgICAgICAgLy8gSnVzdCByZXNlbGVjdCBpdC4KKyAgICAgICAgICAgICAgICAgICAgaXRlbS5zZXRTdGF0ZSh0cnVlKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNvbXBvdW5kKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIEFkZGluZyBhbiBpdGVtIHRvIGEgY29tcG91bmQgdHJhbnNsaXRlcmF0b3IKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlQWRkVG9Db21wb3VuZChpdGVtLmdldExhYmVsKCkpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXRlbSAhPSB0cmFuc2xpdEl0ZW0pIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gRGVzZWxlY3QgcHJldmlvdXMgY2hvaWNlLiAgRG9uJ3QgbmVlZCB0byBjYWxsCisgICAgICAgICAgICAgICAgICAgIC8vIHNldFN0YXRlKHRydWUpIG9uIG5ldyBjaG9pY2UuCisgICAgICAgICAgICAgICAgICAgIHRyYW5zbGl0SXRlbS5zZXRTdGF0ZShmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIHRyYW5zbGl0SXRlbSA9IGl0ZW07CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZVNldFRyYW5zbGl0ZXJhdG9yKGl0ZW0uZ2V0TGFiZWwoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9OworKi8KKyAgICAgICAgLyoKKyAgICAgICAgdHJhbnNsaXRNZW51LmFkZCh0cmFuc2xpdEl0ZW0gPSBub1RyYW5zbGl0SXRlbSA9CisgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IENoZWNrYm94TWVudUl0ZW0oTk9fVFJBTlNMSVRFUkFUT1IsIHRydWUpKTsKKyAgICAgICAgbm9UcmFuc2xpdEl0ZW0uYWRkSXRlbUxpc3RlbmVyKG5ldyBJdGVtTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBpdGVtU3RhdGVDaGFuZ2VkKEl0ZW1FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgLy8gQ2FuJ3QgdW5jaGVjayBOb25lIC0tIGFueSBhY3Rpb24gaGVyZSBzZXRzIE5vbmUgdG8gdHJ1ZQorICAgICAgICAgICAgICAgIHNldE5vVHJhbnNsaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAgICAgICAgdHJhbnNsaXRNZW51LmFkZFNlcGFyYXRvcigpOworICAgICAgICAqLworCisvKgorICAgICAgICB0cmFuc2xpdE1lbnUuYWRkKGNpdGVtID0gbmV3IENoZWNrYm94TWVudUl0ZW0oIkNvbXBvdW5kIikpOworICAgICAgICBjaXRlbS5hZGRJdGVtTGlzdGVuZXIobmV3IEl0ZW1MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGl0ZW1TdGF0ZUNoYW5nZWQoSXRlbUV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBDaGVja2JveE1lbnVJdGVtIGl0ZW0gPSAoQ2hlY2tib3hNZW51SXRlbSkgZS5nZXRTb3VyY2UoKTsKKyAgICAgICAgICAgICAgICBpZiAoZS5nZXRTdGF0ZUNoYW5nZSgpID09IEl0ZW1FdmVudC5ERVNFTEVDVEVEKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIElmIGNvbXBvdW5kIGdldHMgZGVzZWxlY3RlZCwgdGhlbiBzZWxlY3QgTk9ORQorICAgICAgICAgICAgICAgICAgICBzZXROb1RyYW5zbGl0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghY29tcG91bmQpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gU3dpdGNoaW5nIGZyb20gbm9uLWNvbXBvdW5kIHRvIGNvbXBvdW5kCisgICAgICAgICAgICAgICAgICAgIHRyYW5zbGl0SXRlbS5zZXRTdGF0ZShmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIHRyYW5zbGl0SXRlbSA9IGl0ZW07CisgICAgICAgICAgICAgICAgICAgIHRyYW5zbGl0ID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgY29tcG91bmQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBjb21wb3VuZENvdW50ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPE1BWF9DT01QT1VORDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb21wb3VuZFRyYW5zbGl0W2ldID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAKKyAgICAgICAgdHJhbnNsaXRNZW51LmFkZFNlcGFyYXRvcigpOworICAgICAgICovCisKKyAgICAgICAgLyoKKyAgICAgICAgZm9yIChFbnVtZXJhdGlvbiBlPWdldFN5c3RlbVRyYW5zbGl0ZXJhdG9yTmFtZXMoKS5lbGVtZW50cygpOworICAgICAgICAgICAgIGUuaGFzTW9yZUVsZW1lbnRzKCk7ICkgeworICAgICAgICAgICAgU3RyaW5nIHMgPSAoU3RyaW5nKSBlLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICB0cmFuc2xpdE1lbnUuYWRkKGNpdGVtID0gbmV3IENoZWNrYm94TWVudUl0ZW0ocykpOworICAgICAgICAgICAgY2l0ZW0uYWRkSXRlbUxpc3RlbmVyKHNldFRyYW5zbGl0ZXJhdG9yTGlzdGVuZXIpOworICAgICAgICB9CisgICAgICAgICovCisgICAgICAgIAorICAgICAgICBNZW51IGZvbnRNZW51ID0gbmV3IE1lbnUoIkZvbnQiKTsKKyAgICAgICAgU3RyaW5nW10gZm9udHMgPSBHcmFwaGljc0Vudmlyb25tZW50LmdldExvY2FsR3JhcGhpY3NFbnZpcm9ubWVudCgpLmdldEF2YWlsYWJsZUZvbnRGYW1pbHlOYW1lcygpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZvbnRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBNZW51SXRlbSBtSXRlbSA9IG5ldyBNZW51SXRlbShmb250c1tpXSk7CisgICAgICAgICAgICBtSXRlbS5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgRm9udEFjdGlvbkxpc3RlbmVyKGZvbnRzW2ldKSk7CisgICAgICAgICAgICBmb250TWVudS5hZGQobUl0ZW0pOworICAgICAgICB9CisgICAgICAgIG1iYXIuYWRkKGZvbnRNZW51KTsKKyAgICAgICAgCisgICAgICAgIE1lbnUgc2l6ZU1lbnUgPSBuZXcgTWVudSgiU2l6ZSIpOworICAgICAgICBpbnRbXSBzaXplcyA9IHs5LCAxMCwgMTIsIDE0LCAxOCwgMjQsIDM2LCA0OCwgNzJ9OworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBNZW51SXRlbSBtSXRlbSA9IG5ldyBNZW51SXRlbSgiIiArIHNpemVzW2ldKTsKKyAgICAgICAgICAgIG1JdGVtLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBTaXplQWN0aW9uTGlzdGVuZXIoc2l6ZXNbaV0pKTsKKyAgICAgICAgICAgIHNpemVNZW51LmFkZChtSXRlbSk7CisgICAgICAgIH0KKyAgICAgICAgbWJhci5hZGQoc2l6ZU1lbnUpOworICAgICAgICAKKyAgICAgICAgdHJhbnNsaXQgPSBudWxsOworICAgICAgICAKKyAgICAgICAgbWJhci5hZGQodHJhbnNsaXRNZW51ID0gbmV3IE1lbnUoIlRyYW5zbGl0ZXJhdG9yIikpOworICAgICAgICAKKyAgICAgICAgdHJhbnNsaXRNZW51LmFkZChjb252ZXJ0U2VsZWN0aW9uSXRlbSA9IG5ldyBNZW51SXRlbSgiVHJhbnNsaXRlcmF0ZSIsIAorICAgICAgICAgICAgbmV3IE1lbnVTaG9ydGN1dChLZXlFdmVudC5WS19LKSkpOworICAgICAgICBjb252ZXJ0U2VsZWN0aW9uSXRlbS5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIGhhbmRsZUJhdGNoVHJhbnNsaXRlcmF0ZSh0cmFuc2xpdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICAKKyAgICAgICAgdHJhbnNsaXRNZW51LmFkZChzd2FwU2VsZWN0aW9uSXRlbSA9IG5ldyBNZW51SXRlbSgiUmV2ZXJzZSIsIAorICAgICAgICAgICAgbmV3IE1lbnVTaG9ydGN1dChLZXlFdmVudC5WS19TKSkpOworICAgICAgICBzd2FwU2VsZWN0aW9uSXRlbS5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgCVRyYW5zbGl0ZXJhdG9yIGludjsKKyAgICAgICAgICAgIAl0cnkgeworICAgICAgICAgICAgICAgIAlpbnYgPSB0cmFuc2xpdC5nZXRJbnZlcnNlKCk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIHgpIHsKKyAgICAgICAgICAgICAgICAJaW52ID0gbmV3IE51bGxUcmFuc2xpdGVyYXRvcigpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAlzZXRUcmFuc2xpdGVyYXRvcihpbnYuZ2V0SUQoKSwgbnVsbCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICAKKyAgICAgICAgdHJhbnNsaXRNZW51LmFkZChjb252ZXJ0VHlwaW5nSXRlbSA9IG5ldyBNZW51SXRlbSgiTm8gVHlwaW5nIENvbnZlcnNpb24iLAorICAgICAgICAgICAgbmV3IE1lbnVTaG9ydGN1dChLZXlFdmVudC5WS19UKSkpOworICAgICAgICBjb252ZXJ0VHlwaW5nSXRlbS5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIGlmICghdHJhbnNsaXRlcmF0ZVR5cGluZykgeworICAgICAgICAgICAgICAgICAgICB0ZXh0LnNldFRyYW5zbGl0ZXJhdG9yKHRyYW5zbGl0KTsKKyAgICAgICAgICAgICAgICAgICAgY29udmVydFR5cGluZ0l0ZW0uc2V0TGFiZWwoIk5vIFR5cGluZyBDb252ZXJzaW9uIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dC5mbHVzaCgpOworICAgICAgICAgICAgICAgICAgICB0ZXh0LnNldFRyYW5zbGl0ZXJhdG9yKG51bGwpOworICAgICAgICAgICAgICAgICAgICBjb252ZXJ0VHlwaW5nSXRlbS5zZXRMYWJlbCgiQ29udmVydCBUeXBpbmciKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdHJhbnNsaXRlcmF0ZVR5cGluZyA9ICF0cmFuc2xpdGVyYXRlVHlwaW5nOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgCisgICAgICAgIHRyYW5zbGl0TWVudS5hZGQoaGlzdG9yeU1lbnUgPSBuZXcgTWVudSgiUmVjZW50IikpOworICAgICAgICAKKyAgICAgICAgaGVscERpYWxvZyA9IG5ldyBJbmZvRGlhbG9nKHRoaXMsICJTaW1wbGUgRGVtbyIsICJJbnN0cnVjdGlvbnMiLAorICAgICAgICAgICAiQ1RMIEEsIFgsIEMsIFYgaGF2ZSBjdXN0b21hcnkgbWVhbmluZ3MuXG4iCisgICAgICAgICArICJBcnJvdyBrZXlzLCBkZWxldGUgYW5kIGJhY2tzcGFjZSB3b3JrLlxuIgorICAgICAgICAgKyAiVG8gZ2V0IGEgY2hhcmFjdGVyIGZyb20gaXRzIGNvbnRyb2wgcG9pbnQsIHR5cGUgdGhlIGhleCwgdGhlbiBoaXQgQ1RMIFEiCisgICAgICAgICk7CisgICAgICAgIGhlbHBEaWFsb2cuZ2V0QXJlYSgpLnNldEVkaXRhYmxlKGZhbHNlKTsKKyAgICAgICAgCisgICAgICAgCisgICAgICAgIE1lbnUgaGVscE1lbnU7CisgICAgICAgIG1iYXIuYWRkKGhlbHBNZW51ID0gbmV3IE1lbnUoIkV4dHJhcyIpKTsKKyAgICAgICAgaGVscE1lbnUuYWRkKG1pdGVtID0gbmV3IE1lbnVJdGVtKCJIZWxwIikpOworICAgICAgICBtaXRlbS5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIGhlbHBEaWFsb2cuc2hvdygpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsgICAKKyAgICAgICAgCisgICAgICAgIGhleERpYWxvZyA9IG5ldyBJbmZvRGlhbG9nKHRoaXMsICJIZXggRW50cnkiLCAiVXNlIFUrLi4uLCBcXHUuLi4sIFxceHsuLi59LCBvciAmI3guLi47IiwKKyAgICAgICAgICAgIlxcdTAwRTEiCisgICAgICAgICk7CisgICAgICAgIEJ1dHRvbiBidXR0b24gPSBuZXcgQnV0dG9uKCJJbnNlcnQiKTsKKyAgICAgICAgYnV0dG9uLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGhleFZhbHVlID0gaGV4RGlhbG9nLmdldEFyZWEoKS5nZXRUZXh0KCk7CisgICAgICAgICAgICAgICAgdGV4dC5pbnNlcnRUZXh0KGZyb21IZXgudHJhbnNsaXRlcmF0ZShoZXhWYWx1ZSkpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgaGV4RGlhbG9nLmdldEJvdHRvbSgpLmFkZChidXR0b24pOworICAgICAgICAKKyAgICAgICAgaGVscE1lbnUuYWRkKG1pdGVtID0gbmV3IE1lbnVJdGVtKCJIZXguLi4iLCAKKyAgICAgICAgICAgIG5ldyBNZW51U2hvcnRjdXQoS2V5RXZlbnQuVktfSCkpKTsKKyAgICAgICAgbWl0ZW0uYWRkQWN0aW9uTGlzdGVuZXIobmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBoZXhEaWFsb2cuc2hvdygpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgCisgICAgICAgIC8vIENvbXBvdW5kIFRyYW5zbGl0ZXJhdG9yCisgICAgICAgIAorICAgICAgICBjb21wb3VuZERpYWxvZyA9IG5ldyBJbmZvRGlhbG9nKHRoaXMsICJDb21wb3VuZCBUcmFuc2xpdGVyYXRvciIsICIiLAorICAgICAgICAgICAiW15cXHUwMDAwLVxcdTAwRkZdIGhleCIKKyAgICAgICAgKTsKKyAgICAgICAgYnV0dG9uID0gbmV3IEJ1dHRvbigiU2V0Iik7CisgICAgICAgIGJ1dHRvbi5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBjb21wb3VuZCA9ICIiOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIGNvbXBvdW5kID0gY29tcG91bmREaWFsb2cuZ2V0QXJlYSgpLmdldFRleHQoKTsKKyAgICAgICAgICAgICAgICAgICAgc2V0VHJhbnNsaXRlcmF0b3IoY29tcG91bmQsIG51bGwpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFJ1bnRpbWVFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgY29tcG91bmREaWFsb2cuZ2V0QXJlYSgpLnNldFRleHQoY29tcG91bmQgKyAiXG4iICsgZXguZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICBjb21wb3VuZERpYWxvZy5nZXRCb3R0b20oKS5hZGQoYnV0dG9uKTsKKyAgICAgICAgCisgICAgICAgIHRyYW5zbGl0TWVudS5hZGQobWl0ZW0gPSBuZXcgTWVudUl0ZW0oIk11bHRpcGxlLi4uIiwgCisgICAgICAgICAgICBuZXcgTWVudVNob3J0Y3V0KEtleUV2ZW50LlZLX00pKSk7CisgICAgICAgIG1pdGVtLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgY29tcG91bmREaWFsb2cuc2hvdygpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgCisgICAgICAgIC8vIFJ1bGVCYXNlZCBUcmFuc2xpdGVyYXRvcgorICAgICAgICAKKyAgICAgICAgcnVsZXNEaWFsb2cgPSBuZXcgSW5mb0RpYWxvZyh0aGlzLCAiUnVsZS1CYXNlZCBUcmFuc2xpdGVyYXRvciIsICIiLAorICAgICAgICAgICAiKFtBLVpdKSA+ICZIZXgoJDEpICZOYW1lKCQxKTtcclxuIiAKKyAgICAgICAgICAgICsgIiZIZXgtQW55KCQxKSA8ICgnXFwnIFt1VV0gW2EtZkEtRjAtOV0qKTtcclxuIiAKKwkJCSsgIiZOYW1lLUFueSgkMSkgPCAoJ3snIFteXFx9XSogJ30nKTsiCisgICAgICAgICk7CisgICAgICAgIGJ1dHRvbiA9IG5ldyBCdXR0b24oIlNldCIpOworICAgICAgICBidXR0b24uYWRkQWN0aW9uTGlzdGVuZXIobmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgY29tcG91bmQgPSAiIjsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBjb21wb3VuZCA9IHJ1bGVzRGlhbG9nLmdldEFyZWEoKS5nZXRUZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBpZCA9IHJ1bGVJZC5nZXRUZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIHNldFRyYW5zbGl0ZXJhdG9yKGNvbXBvdW5kLCBpZCk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoUnVudGltZUV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgICAgICAgICBydWxlc0RpYWxvZy5nZXRBcmVhKCkuc2V0VGV4dChjb21wb3VuZCArICJcbiMiICsgZXguZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICBydWxlc0RpYWxvZy5nZXRCb3R0b20oKS5hZGQoYnV0dG9uKTsKKyAgICAgICAgcnVsZUlkID0gbmV3IFRleHRGaWVsZCgidGVzdDEiLCAyMCk7CisgICAgICAgIExhYmVsIHRlbXAgPSBuZXcgTGFiZWwoIiBOYW1lOiIpOworICAgICAgICBydWxlc0RpYWxvZy5nZXRCb3R0b20oKS5hZGQodGVtcCk7CisgICAgICAgIHJ1bGVzRGlhbG9nLmdldEJvdHRvbSgpLmFkZChydWxlSWQpOworICAgICAgICAKKyAgICAgICAgCisgICAgICAgIHRyYW5zbGl0TWVudS5hZGQobWl0ZW0gPSBuZXcgTWVudUl0ZW0oIkZyb20gUnVsZXMuLi4iLCAKKyAgICAgICAgICAgIG5ldyBNZW51U2hvcnRjdXQoS2V5RXZlbnQuVktfUikpKTsKKyAgICAgICAgbWl0ZW0uYWRkQWN0aW9uTGlzdGVuZXIobmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBydWxlc0RpYWxvZy5zaG93KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICAKKyAgICAgICAgCisgICAgICAgIHRyYW5zbGl0TWVudS5hZGQobWl0ZW0gPSBuZXcgTWVudUl0ZW0oIkZyb20gRmlsZS4uLiIsIAorICAgICAgICAgICAgbmV3IE1lbnVTaG9ydGN1dChLZXlFdmVudC5WS19GKSkpOworICAgICAgICBtaXRlbS5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgRmlsZUxpc3RlbmVyKHRoaXMsIFJVTEVfRklMRSkpOworICAgICAgICAKKyAgICAgICAgdHJhbnNsaXRNZW51LmFkZChtaXRlbSA9IG5ldyBNZW51SXRlbSgiVGVzdCBGaWxlLi4uIikpOworICAgICAgICBtaXRlbS5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgRmlsZUxpc3RlbmVyKHRoaXMsIFRFU1RfRklMRSkpOworICAgICAgICAKKyAgICAgICAgLy8gRmxlc2ggb3V0IHRoZSBtZW51IHdpdGggdGhlIGluc3RhbGxlZCB0cmFuc2xpdGVyYXRvcnMKKyAgICAgICAgCisgICAgICAgIHRyYW5zbGl0TWVudS5hZGRTZXBhcmF0b3IoKTsKKyAgICAgICAgCisgICAgICAgIEl0ZXJhdG9yIHNvdXJjZXMgPSBhZGQobmV3IFRyZWVTZXQoKSwgVHJhbnNsaXRlcmF0b3IuZ2V0QXZhaWxhYmxlU291cmNlcygpKS5pdGVyYXRvcigpOworICAgICAgICB3aGlsZShzb3VyY2VzLmhhc05leHQoKSkgeworICAgICAgICAgICAgU3RyaW5nIHNvdXJjZSA9IChTdHJpbmcpIHNvdXJjZXMubmV4dCgpOworICAgICAgICAgICAgSXRlcmF0b3IgdGFyZ2V0cyA9IGFkZChuZXcgVHJlZVNldCgpLCBUcmFuc2xpdGVyYXRvci5nZXRBdmFpbGFibGVUYXJnZXRzKHNvdXJjZSkpLml0ZXJhdG9yKCk7CisgICAgICAgICAgICBNZW51IHRhcmdldE1lbnUgPSBuZXcgTWVudShzb3VyY2UpOworICAgICAgICAgICAgd2hpbGUodGFyZ2V0cy5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gKFN0cmluZykgdGFyZ2V0cy5uZXh0KCk7CisgICAgICAgICAgICAgICAgU2V0IHZhcmlhbnRTZXQgPSBhZGQobmV3IFRyZWVTZXQoKSwgVHJhbnNsaXRlcmF0b3IuZ2V0QXZhaWxhYmxlVmFyaWFudHMoc291cmNlLCB0YXJnZXQpKTsKKyAgICAgICAgICAgICAgICBpZiAodmFyaWFudFNldC5zaXplKCkgPCAyKSB7CisgICAgICAgICAgICAgICAgICAgIG1pdGVtID0gbmV3IE1lbnVJdGVtKHRhcmdldCk7CisgICAgICAgICAgICAgICAgICAgIG1pdGVtLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBUcmFuc2xpdGVyYXRpb25MaXN0ZW5lcihzb3VyY2UgKyAiLSIgKyB0YXJnZXQpKTsKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0TWVudS5hZGQobWl0ZW0pOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIEl0ZXJhdG9yIHZhcmlhbnRzID0gdmFyaWFudFNldC5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgICAgICBNZW51IHZhcmlhbnRNZW51ID0gbmV3IE1lbnUodGFyZ2V0KTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUodmFyaWFudHMuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFyaWFudCA9IChTdHJpbmcpIHZhcmlhbnRzLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBtZW51TmFtZSA9IHZhcmlhbnQubGVuZ3RoKCkgPT0gMCA/ICI8ZGVmYXVsdD4iIDogdmFyaWFudDsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCI8IiArIHNvdXJjZSArICItIiArIHRhcmdldCArICIvIiArIHZhcmlhbnQgKyAiPiwgPCIgKyBtZW51TmFtZSArICI+Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBtaXRlbSA9IG5ldyBNZW51SXRlbShtZW51TmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBtaXRlbS5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgVHJhbnNsaXRlcmF0aW9uTGlzdGVuZXIoc291cmNlICsgIi0iICsgdGFyZ2V0ICsgIi8iICsgdmFyaWFudCkpOworICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudE1lbnUuYWRkKG1pdGVtKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB0YXJnZXRNZW51LmFkZCh2YXJpYW50TWVudSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgdHJhbnNsaXRNZW51LmFkZCh0YXJnZXRNZW51KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgCisgICAgfQorICAgIAorICAgIHN0YXRpYyBmaW5hbCBpbnQgUlVMRV9GSUxFID0gMCwgVEVTVF9GSUxFID0gMTsKKyAgICAvLworICAgIHN0YXRpYyBjbGFzcyBGaWxlTGlzdGVuZXIgaW1wbGVtZW50cyBBY3Rpb25MaXN0ZW5lciB7CisgICAgICAgIERlbW8gZnJhbWU7CisgICAgICAgIGludCBjaG9pY2U7CisgICAgICAgIAorICAgICAgICBGaWxlTGlzdGVuZXIoRGVtbyBmcmFtZSwgaW50IGNob2ljZSkgeworICAgICAgICAgICAgdGhpcy5mcmFtZSA9IGZyYW1lOworICAgICAgICAgICAgdGhpcy5jaG9pY2UgPSBjaG9pY2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICBTdHJpbmcgaWQgPSBmcmFtZS50cmFuc2xpdC5nZXRJRCgpOworICAgICAgICAgICAgaW50IHNsYXNoUG9zID0gaWQuaW5kZXhPZignLycpOworICAgICAgICAgICAgU3RyaW5nIHZhcmlhbnQgPSAiIjsKKyAgICAgICAgICAgIGlmIChzbGFzaFBvcyA+PSAwKSB7CisgICAgICAgICAgICAgICAgdmFyaWFudCA9ICJfIiArIGlkLnN1YnN0cmluZyhzbGFzaFBvcysxKTsKKyAgICAgICAgICAgICAgICBpZCA9IGlkLnN1YnN0cmluZygwLCBzbGFzaFBvcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIEZpbGVEaWFsb2cgZmlsZURpYWxvZyA9IG5ldyBGaWxlRGlhbG9nKGZyYW1lLCAiSW5wdXQgRmlsZSIpOworICAgICAgICAgICAgZmlsZURpYWxvZy5zZXRGaWxlKCJUZXN0XyIgKyBpZCArICIudHh0Iik7CisgICAgICAgICAgICBmaWxlRGlhbG9nLnNob3coKTsKKyAgICAgICAgICAgIFN0cmluZyBmaWxlTmFtZSA9IGZpbGVEaWFsb2cuZ2V0RmlsZSgpOworICAgICAgICAgICAgU3RyaW5nIGZpbGVEaXJlY3RvcnkgPSBmaWxlRGlhbG9nLmdldERpcmVjdG9yeSgpOworICAgICAgICAgICAgaWYgKGZpbGVOYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBGaWxlIGYgPSBuZXcgRmlsZShmaWxlRGlyZWN0b3J5LCBmaWxlTmFtZSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjaG9pY2UgPT0gUlVMRV9GSUxFKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlYWQgc3R1ZmYgaW50byBidWZmZXIKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVJbnB1dFN0cmVhbSBmaXMgPSBuZXcgRmlsZUlucHV0U3RyZWFtKGYpOworICAgICAgICAgICAgICAgICAgICAgICAgSW5wdXRTdHJlYW1SZWFkZXIgaXNyID0gbmV3IElucHV0U3RyZWFtUmVhZGVyKGZpcywgIlVURjgiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGJyID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKGlzciwgMzIqMTAyNCk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBsaW5lID0gYnIucmVhZExpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGluZSA9PSBudWxsKSBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGluZS5sZW5ndGgoKSA+IDAgJiYgbGluZS5jaGFyQXQoMCkgPT0gJ1x1RkVGRicpIGxpbmUgPSBsaW5lLnN1YnN0cmluZygxKTsgLy8gc3RyaXAgQk9NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgnXG4nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKGxpbmUpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnIuY2xvc2UoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gVHJhbnNmb3JtIGZpbGUgbmFtZSBpbnRvIGlkCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmlsZU5hbWUuc3RhcnRzV2l0aCgiVHJhbnNsaXRlcmF0b3JfIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlTmFtZSA9IGZpbGVOYW1lLnN1YnN0cmluZygiVHJhbnNsaXRlcmF0b3JfIi5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcG9zID0gZmlsZU5hbWUuaW5kZXhPZignXycpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBvcyA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCA9IGZpbGVOYW1lOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCA9IGZpbGVOYW1lLnN1YnN0cmluZygwLCBwb3MpICsgIi0iOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwb3MyID0gZmlsZU5hbWUuaW5kZXhPZignXycsIHBvcysxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocG9zMiA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQgKz0gZmlsZU5hbWUuc3Vic3RyaW5nKHBvcysxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCArPSBmaWxlTmFtZS5zdWJzdHJpbmcocG9zKzEsIHBvczIpICsgIi8iICsgZmlsZU5hbWUuc3Vic3RyaW5nKHBvczIgKyAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBpZC5sYXN0SW5kZXhPZignLicpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBvcyA+PSAwKSBpZCA9IGlkLnN1YnN0cmluZygwLCBwb3MpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBOb3cgc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lLnNldFRyYW5zbGl0ZXJhdG9yKGJ1ZmZlci50b1N0cmluZygpLCBpZCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hvaWNlID09IFRFU1RfRklMRSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZ2VuVGVzdEZpbGUoZiwgZnJhbWUudHJhbnNsaXQsIHZhcmlhbnQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUyKSB7CisgICAgICAgICAgICAgICAgICAgIGUyLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlByb2JsZW0gb3BlbmluZy9yZWFkaW5nOiAiICsgZmlsZURpcmVjdG9yeSArICIsICIgKyBmaWxlTmFtZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZmlsZURpYWxvZy5kaXNwb3NlKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisKKyAgICBib29sZWFuIHRyYW5zbGl0ZXJhdGVUeXBpbmcgPSB0cnVlOworICAgIFRyYW5zbGl0ZXJhdG9yIGZyb21IZXggPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiSGV4LUFueSIpOworICAgIEluZm9EaWFsb2cgaGVscERpYWxvZzsKKyAgICBJbmZvRGlhbG9nIGhleERpYWxvZzsKKyAgICBJbmZvRGlhbG9nIGNvbXBvdW5kRGlhbG9nOworICAgIEluZm9EaWFsb2cgcnVsZXNEaWFsb2c7CisgICAgVGV4dEZpZWxkIHJ1bGVJZDsKKyAgICBNZW51SXRlbSBjb252ZXJ0U2VsZWN0aW9uSXRlbSA9IG51bGw7CisgICAgTWVudUl0ZW0gc3dhcFNlbGVjdGlvbkl0ZW0gPSBudWxsOworICAgIE1lbnVJdGVtIGNvbnZlcnRUeXBpbmdJdGVtID0gbnVsbDsKKyAgICBNZW51IGhpc3RvcnlNZW51OworICAgIE1hcCBoaXN0b3J5TWFwID0gbmV3IEhhc2hNYXAoKTsKKyAgICBTZXQgaGlzdG9yeVNldCA9IG5ldyBUcmVlU2V0KG5ldyBDb21wYXJhdG9yKCkgeworICAgICAgICAgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBhLCBPYmplY3QgYikgeworICAgICAgICAgICAgICAgIE1lbnVJdGVtIGFhID0gKE1lbnVJdGVtKWE7CisgICAgICAgICAgICAgICAgTWVudUl0ZW0gYmIgPSAoTWVudUl0ZW0pYjsKKyAgICAgICAgICAgICAgICByZXR1cm4gYWEuZ2V0TGFiZWwoKS5jb21wYXJlVG8oYmIuZ2V0TGFiZWwoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICAKKyAgICAvLyBBREQgRmFjdG9yeSBzaW5jZSBvdGhlcndpc2UgZ2V0SW52ZXJzZSBibG93cyBvdXQKKyAgICBzdGF0aWMgY2xhc3MgRHVtbXlGYWN0b3J5IGltcGxlbWVudHMgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSB7CisgICAgICAgIHN0YXRpYyBEdW1teUZhY3Rvcnkgc2luZ2xldG9uID0gbmV3IER1bW15RmFjdG9yeSgpOworICAgICAgICBzdGF0aWMgSGFzaE1hcCBtID0gbmV3IEhhc2hNYXAoKTsKKworICAgICAgICAvLyBTaW5jZSBUcmFuc2xpdGVyYXRvcnMgYXJlIGltbXV0YWJsZSwgd2UgZG9uJ3QgaGF2ZSB0byBjbG9uZSBvbiBzZXQgJiBnZXQKKyAgICAgICAgc3RhdGljIHZvaWQgYWRkKFN0cmluZyBJRCwgVHJhbnNsaXRlcmF0b3IgdCkgeworICAgICAgICAgICAgbS5wdXQoSUQsIHQpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJSZWdpc3RlcmluZzogIiArIElEICsgIiwgIiArIHQudG9SdWxlcyh0cnVlKSk7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoSUQsIHNpbmdsZXRvbik7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgcmV0dXJuIChUcmFuc2xpdGVyYXRvcikgbS5nZXQoSUQpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyB2b2lkIHByaW50QnJlYWtzKGludCBudW0sIFN0cmluZyB0ZXN0U291cmNlLCBCcmVha0l0ZXJhdG9yIGJpKSB7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSAiIjsKKyAgICAgICAgaW50IGxhc3RQb3MgPSAwOworICAgIAl3aGlsZSAodHJ1ZSkgeworICAgIAkgICAgaW50IHBvcyA9IGJpLm5leHQoKTsKKyAgICAJICAgIGlmIChwb3MgPT0gYmkuRE9ORSkgYnJlYWs7CisgICAgCSAgICByZXN1bHQgKz0gdGVzdFNvdXJjZS5zdWJzdHJpbmcobGFzdFBvcywgcG9zKSArICImIjsKKyAgICAJICAgIGxhc3RQb3MgPSBwb3M7CisgICAgCSAgICBTeXN0ZW0ub3V0LnByaW50bG4ocG9zKTsKKyAgICAJfQorICAgIAlTeXN0ZW0ub3V0LnByaW50bG4oIlRlc3QiICsgbnVtICsgIjogIiArIHJlc3VsdCk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyB2b2lkIHByaW50SXRlcmF0aW9uKGludCBudW0sIFN0cmluZyB0ZXN0U291cmNlLCBDaGFyYWN0ZXJJdGVyYXRvciBjaSkgeworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gIiI7CisgICAgCXdoaWxlICh0cnVlKSB7CisgICAgCSAgICBjaGFyIGNoID0gY2kubmV4dCgpOworICAgIAkgICAgaWYgKGNoID09IGNpLkRPTkUpIGJyZWFrOworICAgIAkgICAgcmVzdWx0ICs9IGNoICsgIigiICsgY2kuZ2V0SW5kZXgoKSArICIpIjsKKyAgICAJfQorICAgIAlTeXN0ZW0ub3V0LnByaW50bG4oIlRlc3QiICsgbnVtICsgIjogIiArIHJlc3VsdCk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyB2b2lkIHByaW50U291cmNlcygpIHsKKyAgICAgICAgU3RyaW5nW10gbGlzdCA9IHsiTGF0aW4tVGhhaUxvZ2ljYWwiLCAiVGhhaUxvZ2ljYWwtTGF0aW4iLCAiVGhhaS1UaGFpTG9naWNhbCIsICJUaGFpTG9naWNhbC1UaGFpIn07CisgICAgICAgIFVuaWNvZGVTZXQgYWxsID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ciA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKGxpc3RbaV0pOworICAgICAgICAgICAgVW5pY29kZVNldCBzcmMgPSB0ci5nZXRTb3VyY2VTZXQoKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihsaXN0W2ldICsgIjogIiArIHNyYy50b1BhdHRlcm4odHJ1ZSkpOworICAgICAgICAgICAgYWxsLmFkZEFsbChzcmMpOworICAgICAgICB9CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQWxsOiAiICsgYWxsLnRvUGF0dGVybih0cnVlKSk7CisgICAgICAgIFVuaWNvZGVTZXQgcmVtID0gbmV3IFVuaWNvZGVTZXQoIltbOmxhdGluOl1bOnRoYWk6XV0iKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJtaXNzaW5nIGZyb20gWzpsYXRpbjpdWzp0aGFpOl06ICIgKyBhbGwucmVtb3ZlQWxsKHJlbSkudG9QYXR0ZXJuKHRydWUpKTsKKyAgICB9CisgICAgCisgICAgLy8gMjAwRTtMRUZULVRPLVJJR0hUIE1BUks7Q2Y7MDtMOzs7OztOOzs7OzsKKworICAgIHN0YXRpYyBUcmFuc2xpdGVyYXRvciB0aXRsZSA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJ0aXRsZSIpOworICAgIHN0YXRpYyBTdHJpbmcgaGV4QW5kTmFtZVJ1bGVzID0gIiAgICAoWzpjOl0pID4gXFx1MjAwRSAmaGV4L3VuaWNvZGUoJDEpICcgKCApICcgJm5hbWUoJDEpIFxcdTIwMEUgJyAnOyIKKyAgICAgICAgKyAiKFs6bWFyazpdKSA+IFxcdTIwMEUgJmhleC91bmljb2RlKCQxKSAnICggJyBcXHUyMDBFIFx1MjVDQyAkMSBcXHUyMDBFICcgKSAnICZuYW1lKCQxKSBcXHUyMDBFICcgJzsiCisgICAgICAgICsgIiguKSA+IFxcdTIwMEUgJmhleC91bmljb2RlKCQxKSAnICggJyBcXHUyMDBFICQxIFxcdTIwMEUgJyApICcgJm5hbWUoJDEpICcgJyBcXHUyMDBFOyI7CisKKyAgICBzdGF0aWMgVHJhbnNsaXRlcmF0b3IgaGV4QW5kTmFtZSA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiYW55LWhleEFuZE5hbWUiLCAKKyAgICAgICAgaGV4QW5kTmFtZVJ1bGVzLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAKKworCisgICAgLy9zdGF0aWMgVHJhbnNsaXRlcmF0b3IgdXBwZXIgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgidXBwZXIiKTsKKyAgICAgCisgICAgc3RhdGljIGZpbmFsIGJ5dGUgTk9ORSA9IDAsIFRJVExFV09SRCA9IDEsIFRJVExFTElORSA9IDI7CisgICAgCisgICAgc3RhdGljIHZvaWQgZ2VuVGVzdEZpbGUoRmlsZSBzb3VyY2VGaWxlLCBUcmFuc2xpdGVyYXRvciB0cmFuc2xpdCwgU3RyaW5nIHZhcmlhbnQpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJSZWFkaW5nOiAiICsgc291cmNlRmlsZS5nZXRDYW5vbmljYWxQYXRoKCkpOworICAgICAgICAgICAgQnVmZmVyZWRSZWFkZXIgaW4gPSBuZXcgQnVmZmVyZWRSZWFkZXIoCisgICAgICAgICAgICAgICAgbmV3IElucHV0U3RyZWFtUmVhZGVyKAorICAgICAgICAgICAgICAgICAgICBuZXcgRmlsZUlucHV0U3RyZWFtKHNvdXJjZUZpbGUpLCAiVVRGLTgiKSk7CisgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0RmlsZSA9IHNvdXJjZUZpbGUuZ2V0Q2Fub25pY2FsUGF0aCgpOworICAgICAgICAgICAgaW50IGRvdFBvcyA9IHRhcmdldEZpbGUubGFzdEluZGV4T2YoJy4nKTsKKyAgICAgICAgICAgIGlmIChkb3RQb3MgPj0gMCkgdGFyZ2V0RmlsZSA9IHRhcmdldEZpbGUuc3Vic3RyaW5nKDAsZG90UG9zKTsKKyAgICAgICAgICAgIHRhcmdldEZpbGUgKz0gdmFyaWFudDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgRmlsZSBvdXRGaWxlID0gbmV3IEZpbGUodGFyZ2V0RmlsZSArICIuaHRtbCIpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJXcml0aW5nOiAiICsgb3V0RmlsZS5nZXRDYW5vbmljYWxQYXRoKCkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBQcmludFdyaXRlciBvdXQgPSBuZXcgUHJpbnRXcml0ZXIoCisgICAgICAgICAgICAgICAgbmV3IEJ1ZmZlcmVkV3JpdGVyKAorICAgICAgICAgICAgICAgICAgICBuZXcgT3V0cHV0U3RyZWFtV3JpdGVyKAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEZpbGVPdXRwdXRTdHJlYW0ob3V0RmlsZSksICJVVEYtOCIpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBkaXJlY3Rpb24gPSAiIjsKKyAgICAgICAgICAgIFN0cmluZyBpZCA9IHRyYW5zbGl0LmdldElEKCk7CisgICAgICAgICAgICBpZiAoaWQuaW5kZXhPZigiQXJhYmljIikgPj0gMCB8fCBpZC5pbmRleE9mKCJIZWJyZXciKSA+PSAwKSB7CisgICAgICAgICAgICAgICAgZGlyZWN0aW9uID0gIiBkaXJlY3Rpb246IHJ0bDsiOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYm9vbGVhbiB0ZXN0Um91bmRUcmlwID0gdHJ1ZTsKKyAgICAgICAgICAgIGJvb2xlYW4gZ2VuZXJhdGVTZXRzID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChpZC5zdGFydHNXaXRoKCJIYW4tIikgfHwgaWQuc3RhcnRzV2l0aCgiamEtIikpIHsKKyAgICAgICAgICAgICAgICB0ZXN0Um91bmRUcmlwID0gZmFsc2U7CisgICAgICAgICAgICAgICAgZ2VuZXJhdGVTZXRzID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0nQ29udGVudC1UeXBlJyBjb250ZW50PSd0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgnPiIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oIjxzdHlsZT48IS0tIik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigidGQsIHRoICAgICAgIHsgdmVydGljYWwtYWxpZ246IHRvcDsgYm9yZGVyOiAxcHggc29saWQgYmxhY2sgfSIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oInRkLnMgICAgICAgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjRUVFRUVFOyIgKyBkaXJlY3Rpb24gKyAiIH0iKTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCJ0ZC5yICAgICAgIHsgYmFja2dyb3VuZC1jb2xvcjogI0NDQ0NDQzsiICsgZGlyZWN0aW9uICsgIiB9Iik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigidGQubiAgICAgICB7IGJhY2tncm91bmQtY29sb3I6ICNGRkZGQ0M7IH0iKTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCJ0ZC50aXRsZSAgICAgICB7IGJvcmRlcjogMHB4IHNvbGlkIGJsYWNrfSIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oInNwYW4uZCAgICAgICB7IGJhY2tncm91bmQtY29sb3I6ICNGRjY2NjYgfSIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oInNwYW4uciAgICAgICB7IGJhY2tncm91bmQtY29sb3I6ICM2NkZGNjYgfSIpOworCisgICAgICAgICAgICBvdXQucHJpbnRsbigiYm9keSAgICAgICAgIHsgZm9udC1mYW1pbHk6ICdBcmlhbCBVbmljb2RlIE1TJywgJ0x1Y2lkYSBTYW5zIFVuaWNvZGUnLCBBcmlhbCwgc2Fucy1zZXJpZjsgbWFyZ2luOiA1IH0iKTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCItLT48L3N0eWxlPiIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oIjx0aXRsZT4iICsgaWQgKyAiIFRyYW5zbGl0ZXJhdGlvbiBDaGVjazwvdGl0bGU+PC9oZWFkPiIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oIjxib2R5IGJnY29sb3I9JyNGRkZGRkYnPjxwPlNlZSA8YSBocmVmPSdUZXN0X0luc3RydWN0aW9ucy5odG1sJz5UZXN0X0luc3RydWN0aW9ucy5odG1sPC9hPiBmb3IgZGV0YWlscy48L3A+Iik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPHRhYmxlPiIpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvL291dC5wcmludGxuKCI8dHI+PHRoIHdpZHRoPSczMyUnPlRoYWk8L3RoPjx0aCB3aWR0aD0nMzMlJz5MYXRpbjwvdGg+PHRoIHdpZHRoPSczMyUnPlRoYWk8L3RoPjwvdHI+Iik7CisgIAorICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdGwgPSB0cmFuc2xpdDsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGx0ID0gdGwuZ2V0SW52ZXJzZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciBsdEZpbHRlciA9IHRsLmdldEludmVyc2UoKTsKKyAgICAgICAgICAgIGx0RmlsdGVyLnNldEZpbHRlcihuZXcgVW5pY29kZVNldCgiWzpeTHU6XSIpKTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHRsRmlsdGVyID0gbHQuZ2V0SW52ZXJzZSgpOworICAgICAgICAgICAgdGxGaWx0ZXIuc2V0RmlsdGVyKG5ldyBVbmljb2RlU2V0KCJbOl5MdTpdIikpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvL1RyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJbOl5MdTpdIiArICBsdC5nZXRJRCgpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgQnJlYWtJdGVyYXRvciBzZW50ZW5jZUJyZWFrID0gQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGJ5dGUgdGl0bGVTZXR0aW5nID0gVElUTEVMSU5FOworICAgICAgICAgICAgYm9vbGVhbiB1cHBlcmZpbHRlciA9IGZhbHNlOworICAgICAgICAgICAgYm9vbGVhbiBmaXJzdCA9IHRydWU7CisgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBsaW5lID0gaW4ucmVhZExpbmUoKTsKKyAgICAgICAgICAgICAgICBpZiAobGluZSA9PSBudWxsKSBicmVhazsKKyAgICAgICAgICAgICAgICBsaW5lID0gbGluZS50cmltKCk7CisgICAgICAgICAgICAgICAgaWYgKGxpbmUubGVuZ3RoKCkgPT0gMCkgY29udGludWU7CisgICAgICAgICAgICAgICAgaWYgKGxpbmUuY2hhckF0KDApID09ICdcdUZFRkYnKSBsaW5lID0gbGluZS5zdWJzdHJpbmcoMSk7IC8vIHJlbW92ZSBCT00KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAobGluZS5jaGFyQXQoMCkgPT0gJyMnKSBjb250aW51ZTsgLy8gY29tbWVudHMKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAobGluZS5lcXVhbHMoIkBUSVRMRUNBU0VAIikpIHsKKyAgICAgICAgICAgICAgICAgICAgdGl0bGVTZXR0aW5nID0gVElUTEVXT1JEOworICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiPHRyPjx0ZCBjb2xzcGFuPScyJyBjbGFzcz0ndGl0bGUnPjxiPk5hbWVzPC9iPjwvdGQ+PC90cj4iKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChsaW5lLmVxdWFscygiQFVQUEVSRklMVEVSQCIpKSB7CisgICAgICAgICAgICAgICAgICAgIHVwcGVyZmlsdGVyID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChsaW5lLnN0YXJ0c1dpdGgoIkBTRVQiKSkgeworICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0IHMgPSBuZXcgVW5pY29kZVNldChsaW5lLnN1YnN0cmluZyg0KS50cmltKCkpOworICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiPHRyPjx0ZCBjb2xzcGFuPScyJyBjbGFzcz0ndGl0bGUnPjxiPkNoYXJhY3RlcnM8L2I+PC90ZD48L3RyPiIpOworICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IgaXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKHMpOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoaXQubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhZGRTZW50ZW5jZVRvVGFibGUob3V0LCBpdC5jb2RlcG9pbnQgIT0gaXQuSVNfU1RSSU5HIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gVVRGMTYudmFsdWVPZihpdC5jb2RlcG9pbnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBpdC5zdHJpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTk9ORSwgdHJ1ZSwgdGVzdFJvdW5kVHJpcCwgZmlyc3QsIHRsLCBsdCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgc2VudGVuY2VCcmVhay5zZXRUZXh0KGxpbmUpOworICAgICAgICAgICAgICAgIGludCBzdGFydCA9IDA7CisgICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGVuZCA9IHNlbnRlbmNlQnJlYWsubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBpZiAoZW5kID09IHNlbnRlbmNlQnJlYWsuRE9ORSkgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBjb3JlU2VudGVuY2UgPSBsaW5lLnN1YnN0cmluZyhzdGFydCwgZW5kKTsKKyAgICAgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIkNvcmU6ICIgKyBoZXgudHJhbnNsaXRlcmF0ZShjb3JlU2VudGVuY2UpKTsKKyAgICAgICAgICAgICAgICAgICAgZW5kID0gc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpbnQgb2xkUG9zID0gMDsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKG9sZFBvcyA8IGNvcmVTZW50ZW5jZS5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGFjaywgYmVjYXVzZSBzZW50ZW5jZSBkb2Vzbid0IHNlZW0gdG8gYmUgd29ya2luZyByaWdodAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBvcyA9IGNvcmVTZW50ZW5jZS5pbmRleE9mKCIuICIsIG9sZFBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocG9zIDwgMCkgcG9zID0gY29yZVNlbnRlbmNlLmxlbmd0aCgpOyBlbHNlIHBvcyA9IHBvcysyOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBvczIgPSBjb3JlU2VudGVuY2UuaW5kZXhPZignXHUzMDAyJywgb2xkUG9zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwb3MyIDwgMCkgcG9zMiA9IGNvcmVTZW50ZW5jZS5sZW5ndGgoKTsgZWxzZSBwb3MyID0gcG9zMiArIDE7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocG9zID4gcG9zMikgcG9zID0gcG9zMjsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzZW50ZW5jZSA9IGNvcmVTZW50ZW5jZS5zdWJzdHJpbmcob2xkUG9zLCBwb3MpLnRyaW0oKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJTZW50ZW5jZTogIiArIGhleC50cmFuc2xpdGVyYXRlKGNvcmVTZW50ZW5jZSkpOworICAgICAgICAgICAgICAgICAgICAgICAgb2xkUG9zID0gcG9zOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBhZGRTZW50ZW5jZVRvVGFibGUob3V0LCBzZW50ZW5jZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZVNldHRpbmcsIGZhbHNlLCB0ZXN0Um91bmRUcmlwLCBmaXJzdCwgdGwsIGx0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3QgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG91dC5wcmludGxuKCI8L3RhYmxlPjwvYm9keT4iKTsKKyAgICAgICAgICAgIG91dC5jbG9zZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBOb3cgd3JpdGUgdGhlIHNvdXJjZS90YXJnZXQgc2V0cworICAgICAgICAgICAgaWYgKGdlbmVyYXRlU2V0cykgeworICAgICAgICAgICAgICAgIG91dEZpbGUgPSBuZXcgRmlsZSh0YXJnZXRGaWxlICsgIl9TZXRzLmh0bWwiKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIldyaXRpbmc6ICIgKyBvdXRGaWxlLmdldENhbm9uaWNhbFBhdGgoKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgb3V0ID0gbmV3IFByaW50V3JpdGVyKAorICAgICAgICAgICAgICAgICAgICBuZXcgQnVmZmVyZWRXcml0ZXIoCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT3V0cHV0U3RyZWFtV3JpdGVyKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBGaWxlT3V0cHV0U3RyZWFtKG91dEZpbGUpLCAiVVRGLTgiKSkpOworICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8aGVhZD48bWV0YSBodHRwLWVxdWl2PSdDb250ZW50LVR5cGUnIGNvbnRlbnQ9J3RleHQvaHRtbDsgY2hhcnNldD11dGYtOCc+Iik7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIjxzdHlsZT48IS0tIik7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImJvZHkgICAgICAgICB7IGZvbnQtZmFtaWx5OiAnQXJpYWwgVW5pY29kZSBNUycsICdMdWNpZGEgU2FucyBVbmljb2RlJywgQXJpYWwsIHNhbnMtc2VyaWY7IG1hcmdpbjogNSB9Iik7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIi0tPjwvc3R5bGU+Iik7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIjx0aXRsZT4iICsgaWQgKyAiIFRyYW5zbGl0ZXJhdGlvbiBTZXRzPC90aXRsZT48L2hlYWQ+Iik7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIjxib2R5IGJnY29sb3I9JyNGRkZGRkYnPiIpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGludCBkYXNoUG9zID0gaWQuaW5kZXhPZignLScpOworICAgICAgICAgICAgICAgIGludCBzbGFzaFBvcyA9IGlkLmluZGV4T2YoJy8nKTsKKyAgICAgICAgICAgICAgICBpZiAoc2xhc2hQb3MgPCAwKSBzbGFzaFBvcyA9IGlkLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgc291cmNlU3VwZXIgPSBudWxsOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0ZW1wID0gaWQuc3Vic3RyaW5nKDAsZGFzaFBvcyk7CisgICAgICAgICAgICAgICAgICAgIGlmICh0ZW1wLmVxdWFscygiamEiKSkgc291cmNlU3VwZXIgPSBuZXcgVW5pY29kZVNldCgiW1s6SGFuOl1bOmhpcmFnYW5hOl1bOmthdGFrYW5hOl1dIik7CisgICAgICAgICAgICAgICAgICAgIGVsc2Ugc291cmNlU3VwZXIgPSBuZXcgVW5pY29kZVNldCgiW1s6IiArIHRlbXAgKyAiOl1bOk1uOl1bOk1lOl1dIik7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHt9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVW5pY29kZVNldCB0YXJnZXRTdXBlciA9IG51bGw7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0U3VwZXIgPSBuZXcgVW5pY29kZVNldCgiW1s6IiArIGlkLnN1YnN0cmluZyhkYXNoUG9zKzEsIHNsYXNoUG9zKSArICI6XVs6TW46XVs6TWU6XV0iKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkge30KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpbnQgbmZkU3R5bGUgPSBDTE9TRV9DQVNFIHwgQ0xPU0VfRkxBVFRFTiB8IENMT1NFX0NBTk9OSUNBTDsKKyAgICAgICAgICAgICAgICBpbnQgbmZrZFN0eWxlID0gbmZkU3R5bGUgfCBDTE9TRV9DT01QQVRJQklMSVRZOworICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8dWw+Iik7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIjxwPjxiPk5vbmU8L2I+PC9wPiIpOworICAgICAgICAgICAgICAgIHNob3dTZXRzKG91dCwgdHJhbnNsaXQsIGx0LCBudWxsLCBudWxsLCAwKTsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiPHA+PGI+TkZEPC9iPjwvcD4iKTsKKyAgICAgICAgICAgICAgICBzaG93U2V0cyhvdXQsIHRyYW5zbGl0LCBsdCwgc291cmNlU3VwZXIsIHRhcmdldFN1cGVyLCBuZmRTdHlsZSk7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIjxwPjxiPk5GS0Q8L2I+PC9wPiIpOworICAgICAgICAgICAgICAgIHNob3dTZXRzKG91dCwgdHJhbnNsaXQsIGx0LCBzb3VyY2VTdXBlciwgdGFyZ2V0U3VwZXIsIG5ma2RTdHlsZSk7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIjwvdWw+PC9ib2R5PiIpOworICAgICAgICAgICAgICAgIG91dC5jbG9zZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJEb25lIFdyaXRpbmciKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIHZvaWQgYWRkU2VudGVuY2VUb1RhYmxlKFByaW50V3JpdGVyIG91dCwgU3RyaW5nIHNlbnRlbmNlLCAKKyAgICAgICAgICAgIGJ5dGUgdGl0bGVTZXR0aW5nLCBib29sZWFuIGFkZE5hbWUsIGJvb2xlYW4gdGVzdFJvdW5kVHJpcCwgYm9vbGVhbiBmaXJzdCwKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHRsLCBUcmFuc2xpdGVyYXRvciBsdCkgeworICAgICAgICBpZiAoc2VudGVuY2UubGVuZ3RoKCkgPT0gMCkgcmV0dXJuOyAvLyBza2lwIGVtcHR5IGxpbmVzCisgICAgICAgIAorICAgICAgICBTdHJpbmcgb3JpZ2luYWxTaG93ID0gc2VudGVuY2U7CisgICAgICAgIFN0cmluZyBsYXRpbjsKKyAgICAgICAgbGF0aW4gPSB0bC50cmFuc2xpdGVyYXRlKHNhdmVBc2NpaS50cmFuc2xpdGVyYXRlKHNlbnRlbmNlKSk7CisKKyAgICAgICAgU3RyaW5nIGxhdGluU2hvdyA9IGxhdGluOworICAgICAgICBpZiAodGl0bGVTZXR0aW5nID09IFRJVExFV09SRCkgeworICAgICAgICAgICAgbGF0aW5TaG93ID0gdGl0bGUudHJhbnNsaXRlcmF0ZShsYXRpbik7CisgICAgICAgIH0gZWxzZSBpZiAodGl0bGVTZXR0aW5nID09IFRJVExFTElORSkgeworICAgICAgICAgICAgbGF0aW5TaG93ID0gdGl0bGVjYXNlRmlyc3RXb3JkKGxhdGluU2hvdyk7CisgICAgICAgIH0KKyAgICAgICAgbGF0aW5TaG93ID0gcmVzdG9yZUFzY2lpLnRyYW5zbGl0ZXJhdGUobGF0aW5TaG93KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBTdHJpbmcgcmV2ZXJzZTsKKyAgICAgICAgcmV2ZXJzZSA9IHJlc3RvcmVBc2NpaS50cmFuc2xpdGVyYXRlKGx0LnRyYW5zbGl0ZXJhdGUobGF0aW4pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBTdHJpbmcgTkZLRFNlbnRlbmNlID0gTm9ybWFsaXplci5ub3JtYWxpemUoc2VudGVuY2UsIE5vcm1hbGl6ZXIuTkZLRCk7CisgICAgICAgIFN0cmluZyBORktETGF0aW4gPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShsYXRpbiwgTm9ybWFsaXplci5ORktEKTsKKyAgICAgICAgU3RyaW5nIE5GS0RSZXZlcnNlID0gTm9ybWFsaXplci5ub3JtYWxpemUocmV2ZXJzZSwgTm9ybWFsaXplci5ORktEKTsKKyAgICAgICAgCisgICAgICAgIGlmIChsYXRpblNob3cubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgbGF0aW5TaG93ID0gIjxpPmVtcHR5PC9pPiI7CisgICAgICAgIH0gZWxzZSBpZiAoTkZLRFNlbnRlbmNlLmVxdWFscyhORktETGF0aW4pKSB7CisgICAgICAgICAgICBsYXRpblNob3cgPSAiPHNwYW4gY2xhc3M9J3InPiIgKyBsYXRpblNob3cgKyAiPC9zcGFuPiI7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHJldmVyc2VTaG93ID0gcmV2ZXJzZTsKKyAgICAgICAgCisgICAgICAgIGlmICh0ZXN0Um91bmRUcmlwICYmICFORktEUmV2ZXJzZS5lcXVhbHMoTkZLRFNlbnRlbmNlKSkgeworICAgICAgICAgICAgaW50IG1pbkxlbiA9IHJldmVyc2UubGVuZ3RoKCk7CisgICAgICAgICAgICBpZiAobWluTGVuID4gc2VudGVuY2UubGVuZ3RoKCkpIG1pbkxlbiA9IHNlbnRlbmNlLmxlbmd0aCgpOworICAgICAgICAgICAgaW50IGk7CisgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbWluTGVuOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAocmV2ZXJzZS5jaGFyQXQoaSkgIT0gc2VudGVuY2UuY2hhckF0KGkpKSBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vb3JpZ2luYWxTaG93ID0gc2VudGVuY2Uuc3Vic3RyaW5nKDAsaSkgKyAiPHNwYW4gY2xhc3M9J2QnPiIgKyBzZW50ZW5jZS5zdWJzdHJpbmcoaSkgKyAiPC9zcGFuPiI7CisgICAgICAgICAgICByZXZlcnNlU2hvdyA9IHJldmVyc2VTaG93Lmxlbmd0aCgpID09IDAgCisgICAgICAgICAgICAgICAgPyAiPGk+ZW1wdHk8L2k+IiAKKyAgICAgICAgICAgICAgICAvLzogcmV2ZXJzZS5zdWJzdHJpbmcoMCxpKSArICI8c3BhbiBjbGFzcz0nZCc+IiArIHJldmVyc2Uuc3Vic3RyaW5nKGkpICsgIjwvc3Bhbj4iOworICAgICAgICAgICAgICAgIDogc2hvd0RpZmZlcmVuY2Uoc2VudGVuY2UsIHJldmVyc2UpOworICAgICAgICAgICAgb3V0LnByaW50bG4oIjx0cj48dGQgY2xhc3M9J3MnIiArIChmaXJzdCA/ICIgd2lkdGg9JzUwJSc+IiA6ICI+IikgKyBvcmlnaW5hbFNob3cgCisgICAgICAgICAgICAgICAgKyAiPC90ZD48dGQgcm93U3Bhbj0nMic+IiArIGxhdGluU2hvdworICAgICAgICAgICAgICAgICsgIjwvdGQ+PC90cj48dHI+PHRkIGNsYXNzPSdyJz4iICsgcmV2ZXJzZVNob3cKKyAgICAgICAgICAgICAgICArICI8L3RkPjwvdHI+Iik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPHRyPjx0ZCBjbGFzcz0ncyciICsgKGZpcnN0ID8gIiB3aWR0aD0nNTAlJz4iIDogIj4iKSArIG9yaWdpbmFsU2hvdyAKKyAgICAgICAgICAgICAgICArICI8L3RkPjx0ZD4iICsgbGF0aW5TaG93CisgICAgICAgICAgICAgICAgKyAiPC90ZD48L3RyPiIpOworICAgICAgICB9CisgICAgICAgIGlmIChhZGROYW1lKSB7CisgICAgICAgICAgICBsYXRpblNob3cgPSBoZXhBbmROYW1lLnRyYW5zbGl0ZXJhdGUobGF0aW4pOworICAgICAgICAgICAgaWYgKGxhdGluU2hvdy5sZW5ndGgoKSA9PSAwKSBsYXRpblNob3cgPSAiPGk+ZW1wdHk8L2k+IjsKKyAgICAgICAgICAgIG9yaWdpbmFsU2hvdyA9IGhleEFuZE5hbWUudHJhbnNsaXRlcmF0ZShzZW50ZW5jZSk7CisgICAgICAgICAgICBpZiAob3JpZ2luYWxTaG93Lmxlbmd0aCgpID09IDApIG9yaWdpbmFsU2hvdyA9ICI8aT5lbXB0eTwvaT4iOworCisgICAgICAgICAgICBvdXQucHJpbnRsbigiPHRyPjx0ZCBjbGFzcz0nbic+IiArIG9yaWdpbmFsU2hvdworICAgICAgICAgICAgICAgICsgIjwvdGQ+PHRkIGNsYXNzPSduJz4iICsgbGF0aW5TaG93CisgICAgICAgICAgICAgICAgKyAiPC90ZD48L3RyPiIpOworICAgICAgICB9CisgICAgICAgIG91dC5wcmludGxuKCI8dHI+PHRkPjwvdGQ+PC90cj4iKTsKKyAgICAgICAgCisgICAgfQorICAgIAorICAgIHN0YXRpYyBTdHJpbmcgc2hvd0RpZmZlcmVuY2UoU3RyaW5nIGFzLCBTdHJpbmcgYnMpIHsKKyAgICAgICAgRGlmZmVyIGRpZmZlciA9IG5ldyBEaWZmZXIoMzAwLCAzKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50IG1heCA9IGFzLmxlbmd0aCgpOworICAgICAgICBpZiAobWF4IDwgYnMubGVuZ3RoKCkpIG1heCA9IGJzLmxlbmd0aCgpOworICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8PSBtYXg7ICsraikgeworICAgICAgICAgICAgaWYgKGogPCBhcy5sZW5ndGgoKSkgZGlmZmVyLmFkZEEoYXMuc3Vic3RyaW5nKGosIGorMSkpOworICAgICAgICAgICAgaWYgKGogPCBicy5sZW5ndGgoKSkgZGlmZmVyLmFkZEIoYnMuc3Vic3RyaW5nKGosIGorMSkpOworICAgICAgICAgICAgZGlmZmVyLmNoZWNrTWF0Y2goaiA9PSBtYXgpOworCisgICAgICAgICAgICBpZiAoZGlmZmVyLmdldEFDb3VudCgpICE9IDAgfHwgZGlmZmVyLmdldEJDb3VudCgpICE9IDApIHsKKyAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKCIuLi4iKTsKKyAgICAgICAgICAgICAgICBpZiAoZGlmZmVyLmdldEFDb3VudCgpICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgiPHNwYW4gY2xhc3M9J3InPiIpOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRpZmZlci5nZXRBQ291bnQoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKGRpZmZlci5nZXRBKGkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKCI8L3NwYW4+Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChkaWZmZXIuZ2V0QkNvdW50KCkgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKCI8c3BhbiBjbGFzcz0nZCc+Iik7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGlmZmVyLmdldEJDb3VudCgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoZGlmZmVyLmdldEIoaSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoIjwvc3Bhbj4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgiLi4uIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG91dC50b1N0cmluZygpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgdm9pZCBzaG93U2V0cyhQcmludFdyaXRlciBvdXQsIFRyYW5zbGl0ZXJhdG9yIHRyYW5zbGl0LCBUcmFuc2xpdGVyYXRvciBpbnZlcnNlLAorICAgICAgVW5pY29kZVNldCBzb3VyY2VTdXBlciwgVW5pY29kZVNldCB0YXJnZXRTdXBlciwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgb3V0LnByaW50bG4oIjxsaT5Tb3VyY2UgU2V0Ojx1bD48bGk+IiArICAgICAgICAgdG9QYXR0ZXJuKGNsb3NlVW5pY29kZVNldCh0cmFuc2xpdC5nZXRTb3VyY2VTZXQoKSwgb3B0aW9ucyksIHNvdXJjZVN1cGVyKSArICI8L2xpPjwvdWw+PC9saT4iKTsKKyAgICAgICAgb3V0LnByaW50bG4oIjxsaT5SZXZlcnNlIFRhcmdldCBTZXQ6PHVsPjxsaT4iICsgdG9QYXR0ZXJuKGNsb3NlVW5pY29kZVNldChpbnZlcnNlLmdldFRhcmdldFNldCgpLCAgb3B0aW9ucyksIHNvdXJjZVN1cGVyKSArICI8L2xpPjwvdWw+PC9saT4iKTsKKyAgICAgICAgb3V0LnByaW50bG4oIjxsaT5UYXJnZXQgU2V0Ojx1bD48bGk+IiArICAgICAgICAgdG9QYXR0ZXJuKGNsb3NlVW5pY29kZVNldCh0cmFuc2xpdC5nZXRUYXJnZXRTZXQoKSwgb3B0aW9ucyksIHRhcmdldFN1cGVyKSArICI8L2xpPjwvdWw+PC9saT4iKTsKKyAgICAgICAgb3V0LnByaW50bG4oIjxsaT5SZXZlcnNlIFNvdXJjZSBTZXQ6PHVsPjxsaT4iICsgdG9QYXR0ZXJuKGNsb3NlVW5pY29kZVNldChpbnZlcnNlLmdldFNvdXJjZVNldCgpLCAgb3B0aW9ucyksIHRhcmdldFN1cGVyKSArICI8L2xpPjwvdWw+PC9saT4iKTsKKyAgICB9CisgICAgICAgIAorICAgIHN0YXRpYyBmaW5hbCBpbnQgQ0xPU0VfQ0FTRSA9IDEsIENMT1NFX0ZMQVRURU4gPSAyLCBDTE9TRV9DQU5PTklDQUwgPSA0LCBDTE9TRV9DT01QQVRJQklMSVRZID0gODsKKyAgICAKKyAgICBzdGF0aWMgVW5pY29kZVNldCBjbG9zZVVuaWNvZGVTZXQoVW5pY29kZVNldCBzb3VyY2UsIGludCBvcHRpb25zKSB7CisgICAgICAgIGlmIChvcHRpb25zID09IDApIHJldHVybiBzb3VyY2U7CisgICAgICAgIAorICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IgaXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKHNvdXJjZSk7CisgICAgICAgIFVuaWNvZGVTZXQgYWRkaXRpb25zID0gbmV3IFVuaWNvZGVTZXQoKTsgLy8gdG8gYXZvaWQgbWVzc2luZyB1cCBpdGVyYXRvcgorICAgICAgICBVbmljb2RlU2V0IHJlbW92YWxzID0gbmV3IFVuaWNvZGVTZXQoKTsgLy8gdG8gYXZvaWQgbWVzc2luZyB1cCBpdGVyYXRvcgorICAgICAgICBTdHJpbmcgYmFzZTsKKyAgICAgICAgaW50IGNwOworICAgICAgICAKKyAgICAgICAgLy8gQWRkIGFsbCBjYXNlIGVxdWl2YWxlbnRzCisgICAgICAgIGlmICgob3B0aW9ucyAmIENMT1NFX0NBU0UpICE9IDApIHsKKyAgICAgICAgICAgIHdoaWxlIChpdC5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBjcCA9IGl0LmNvZGVwb2ludDsKKyAgICAgICAgICAgICAgICBpZiAoY3AgPT0gaXQuSVNfU1RSSU5HKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpbnQgdHlwZSA9IFVDaGFyYWN0ZXIuZ2V0VHlwZShjcCk7CisgICAgICAgICAgICAgICAgaWYgKHR5cGUgPT0gQ2hhcmFjdGVyLlVQUEVSQ0FTRV9MRVRURVIgfHwgdHlwZSA9PSBDaGFyYWN0ZXIuTE9XRVJDQVNFX0xFVFRFUiB8fCB0eXBlID09IENoYXJhY3Rlci5USVRMRUNBU0VfTEVUVEVSKSB7CisgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9ucy5hZGQoVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShVVEYxNi52YWx1ZU9mKGNwKSkpOworICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbnMuYWRkKFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoVVRGMTYudmFsdWVPZihjcCkpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzb3VyY2UuYWRkQWxsKGFkZGl0aW9ucyk7CisgICAgICAgIH0KKyAgICAgICAKKyAgICAgICAgLy8gQWRkIHRoZSBjYW5vbmljYWwgY2xvc3VyZSBvZiBhbGwgc3RyaW5ncyBhbmQgY2hhcmFjdGVycyBpbiBzb3VyY2UKKyAgICAgICAgaWYgKChvcHRpb25zICYgQ0xPU0VfQ0FOT05JQ0FMKSAhPSAwKSB7CisgICAgICAgICAgICBpdC5yZXNldCgpOworICAgICAgICAgICAgYWRkaXRpb25zLmNsZWFyKCk7CisgICAgICAgICAgICBDYW5vbmljYWxJdGVyYXRvciBjaSA9IG5ldyBDYW5vbmljYWxJdGVyYXRvcigiLiIpOworICAgICAgICAgICAgd2hpbGUgKGl0Lm5leHQoKSkgeworICAgICAgICAgICAgICAgIGlmIChpdC5jb2RlcG9pbnQgPT0gaXQuSVNfU1RSSU5HKSBiYXNlID0gaXQuc3RyaW5nOworICAgICAgICAgICAgICAgIGVsc2UgYmFzZSA9IFVURjE2LnZhbHVlT2YoaXQuY29kZXBvaW50KTsKKyAgICAgICAgICAgICAgICBjaS5zZXRTb3VyY2UoYmFzZSk7CisgICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRyaWFsID0gY2kubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBpZiAodHJpYWwgPT0gbnVsbCkgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGlmICh0cmlhbC5lcXVhbHMoYmFzZSkpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbnMuYWRkKHRyaWFsKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzb3VyY2UuYWRkQWxsKGFkZGl0aW9ucyk7CisgICAgICAgIH0KKworICAgICAgICAvLyBmbGF0dGVuIHN0cmluZ3MKKyAgICAgICAgaWYgKChvcHRpb25zICYgQ0xPU0VfRkxBVFRFTikgIT0gMCkgeworICAgICAgICAgICAgaXQucmVzZXQoKTsKKyAgICAgICAgICAgIGFkZGl0aW9ucy5jbGVhcigpOworICAgICAgICAgICAgd2hpbGUgKGl0Lm5leHQoKSkgeworICAgICAgICAgICAgICAgIGlmIChpdC5jb2RlcG9pbnQgIT0gaXQuSVNfU1RSSU5HKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBhZGRpdGlvbnMuYWRkQWxsKGl0LnN0cmluZyk7CisgICAgICAgICAgICAgICAgcmVtb3ZhbHMuYWRkKGl0LnN0cmluZyk7CisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oImZsYXR0ZW5pbmcgJyIgKyBoZXgudHJhbnNsaXRlcmF0ZShpdC5zdHJpbmcpICsgIiciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNvdXJjZS5hZGRBbGwoYWRkaXRpb25zKTsKKyAgICAgICAgICAgIHNvdXJjZS5yZW1vdmVBbGwocmVtb3ZhbHMpOworICAgICAgICB9CisgICAgICAgCisgICAgICAgIC8vIE5vdyBhZGQgZGVjb21wb3NpdGlvbnMgb2YgY2hhcmFjdGVycyBpbiBzb3VyY2UKKyAgICAgICAgaWYgKChvcHRpb25zICYgQ0xPU0VfQ09NUEFUSUJJTElUWSkgIT0gMCkgeworICAgICAgICAgICAgaXQucmVzZXQoc291cmNlKTsKKyAgICAgICAgICAgIGFkZGl0aW9ucy5jbGVhcigpOworICAgICAgICAgICAgd2hpbGUgKGl0Lm5leHQoKSkgeworICAgICAgICAgICAgICAgIGlmIChpdC5jb2RlcG9pbnQgPT0gaXQuSVNfU1RSSU5HKSBiYXNlID0gaXQuc3RyaW5nOworICAgICAgICAgICAgICAgIGVsc2UgYmFzZSA9IFVURjE2LnZhbHVlT2YoaXQuY29kZXBvaW50KTsKKyAgICAgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5pc05vcm1hbGl6ZWQoYmFzZSwgTm9ybWFsaXplci5ORktEKSkgY29udGludWU7CisgICAgICAgICAgICAgICAgU3RyaW5nIGRlY29tcCA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKGJhc2UsIE5vcm1hbGl6ZXIuTkZLRCk7CisgICAgICAgICAgICAgICAgYWRkaXRpb25zLmFkZChkZWNvbXApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc291cmNlLmFkZEFsbChhZGRpdGlvbnMpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBOb3cgYWRkIGFueSBvdGhlciBjaGFyYWN0ZXIgdGhhdCBkZWNvbXBvc2VzIHRvIGEgY2hhcmFjdGVyIGluIHNvdXJjZQorICAgICAgICAgICAgZm9yIChjcCA9IDA7IGNwIDwgMHgxMEZGRkY7ICsrY3ApIHsKKyAgICAgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNEZWZpbmVkKGNwKSkgY29udGludWU7CisgICAgICAgICAgICAgICAgaWYgKE5vcm1hbGl6ZXIuaXNOb3JtYWxpemVkKGNwLCBOb3JtYWxpemVyLk5GS0QpKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAoc291cmNlLmNvbnRhaW5zKGNwKSkgY29udGludWU7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgU3RyaW5nIGRlY29tcCA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKGNwLCBOb3JtYWxpemVyLk5GS0QpOworICAgICAgICAgICAgICAgIGlmIChzb3VyY2UuY29udGFpbnNBbGwoZGVjb21wKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4oIkFkZGluZzogIiArIEludGVnZXIudG9TdHJpbmcoY3AsMTYpICsgIiAiICsgVUNoYXJhY3Rlci5nZXROYW1lKGNwKSk7CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5hZGQoY3ApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHNvdXJjZTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIFN0cmluZyB0b1BhdHRlcm4oVW5pY29kZVNldCBzb3VyY2UsIFVuaWNvZGVTZXQgc3VwZXJzZXQpIHsKKyAgICAgICAgaWYgKHN1cGVyc2V0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHNvdXJjZS5yZW1vdmVBbGwoc3VwZXJzZXQpOworICAgICAgICAgICAgcmV0dXJuICJbIiArIHN1cGVyc2V0LnRvUGF0dGVybih0cnVlKSArICIgIiArIHNvdXJjZS50b1BhdHRlcm4odHJ1ZSkgKyAiXSI7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNvdXJjZS50b1BhdHRlcm4odHJ1ZSk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yIGJpID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoKTsKKyAgICAKKyAgICBzdGF0aWMgU3RyaW5nIHRpdGxlY2FzZUZpcnN0V29yZChTdHJpbmcgbGluZSkgeworICAgICAgICAvLyBzZWFyY2ggZm9yIGZpcnN0IHdvcmQgd2l0aCBsZXR0ZXJzLiBJZiB0aGUgZmlyc3QgbGV0dGVyIGlzIGxvd2VyLCB0aGVuIHRpdGxlY2FzZSBpdC4KKyAgICAgICAgYmkuc2V0VGV4dChsaW5lKTsKKyAgICAgICAgaW50IHN0YXJ0ID0gMDsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGludCBlbmQgPSBiaS5uZXh0KCk7CisgICAgICAgICAgICBpZiAoZW5kID09IGJpLkRPTkUpIGJyZWFrOworICAgICAgICAgICAgaW50IGZpcnN0TGV0dGVyVHlwZSA9IGdldEZpcnN0TGV0dGVyVHlwZShsaW5lLCBzdGFydCwgZW5kKTsKKyAgICAgICAgICAgIGlmIChmaXJzdExldHRlclR5cGUgIT0gQ2hhcmFjdGVyLlVOQVNTSUdORUQpIHsKKyAgICAgICAgICAgICAgICBpZiAoZmlyc3RMZXR0ZXJUeXBlICE9IENoYXJhY3Rlci5MT1dFUkNBU0VfTEVUVEVSKSBicmVhazsKKyAgICAgICAgICAgICAgICBsaW5lID0gbGluZS5zdWJzdHJpbmcoMCwgc3RhcnQpIAorICAgICAgICAgICAgICAgICAgICArIFVDaGFyYWN0ZXIudG9UaXRsZUNhc2UobGluZS5zdWJzdHJpbmcoc3RhcnQsIGVuZCksIGJpKQorICAgICAgICAgICAgICAgICAgICArIGxpbmUuc3Vic3RyaW5nKGVuZCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbmQgPSBzdGFydDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbGluZTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGZpbmFsIGludCBMRVRURVJfTUFTSyA9IAorICAgICAgICAgICgxPDxDaGFyYWN0ZXIuVVBQRVJDQVNFX0xFVFRFUikKKyAgICAgICAgfCAoMTw8Q2hhcmFjdGVyLkxPV0VSQ0FTRV9MRVRURVIpCisgICAgICAgIHwgKDE8PENoYXJhY3Rlci5USVRMRUNBU0VfTEVUVEVSKQorICAgICAgICB8ICgxPDxDaGFyYWN0ZXIuTU9ESUZJRVJfTEVUVEVSKQorICAgICAgICB8ICgxPDxDaGFyYWN0ZXIuT1RIRVJfTEVUVEVSKQorICAgICAgICA7CisgICAgCisgICAgc3RhdGljIGludCBnZXRGaXJzdExldHRlclR5cGUoU3RyaW5nIGxpbmUsIGludCBzdGFydCwgaW50IGVuZCkgeworICAgICAgICBpbnQgY3A7CisgICAgICAgIGZvciAoaW50IGkgPSBzdGFydDsgaSA8IGVuZDsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdChsaW5lLCBpKTsKKyAgICAgICAgICAgIGludCB0eXBlID0gVUNoYXJhY3Rlci5nZXRUeXBlKGNwKTsKKyAgICAgICAgICAgIGlmICgoKDE8PHR5cGUpICYgTEVUVEVSX01BU0spICE9IDApIHJldHVybiB0eXBlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBDaGFyYWN0ZXIuVU5BU1NJR05FRDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIHZvaWQgcHJpbnROYW1lcyhVbmljb2RlU2V0IHMsIFN0cmluZyB0YXJnZXRGaWxlKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBGaWxlIG91dEZpbGUgPSBuZXcgRmlsZSh0YXJnZXRGaWxlKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiV3JpdGluZzogIiArIG91dEZpbGUuZ2V0Q2Fub25pY2FsUGF0aCgpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIFByaW50V3JpdGVyIG91dCA9IG5ldyBQcmludFdyaXRlcigKKyAgICAgICAgICAgICAgICBuZXcgQnVmZmVyZWRXcml0ZXIoCisgICAgICAgICAgICAgICAgICAgIG5ldyBPdXRwdXRTdHJlYW1Xcml0ZXIoCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRmlsZU91dHB1dFN0cmVhbShvdXRGaWxlKSwgIlVURi04IikpKTsKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgbWFpbiA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgb3RoZXJzID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgICAgIFVuaWNvZGVTZXRJdGVyYXRvciBpdCA9IG5ldyBVbmljb2RlU2V0SXRlcmF0b3Iocyk7CisgICAgICAgICAgICB3aGlsZSAoaXQubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLmlzRGVmaW5lZChpdC5jb2RlcG9pbnQpKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAoIU5vcm1hbGl6ZXIuaXNOb3JtYWxpemVkKGl0LmNvZGVwb2ludCwgTm9ybWFsaXplci5ORkQpKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZWNvbXAgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShpdC5jb2RlcG9pbnQsIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgICAgICAgICAgb3RoZXJzLmFkZEFsbChkZWNvbXApOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIiAiICsgVVRGMTYudmFsdWVPZihpdC5jb2RlcG9pbnQpICsgIiA8PiBYWFggIyAiICsgVUNoYXJhY3Rlci5nZXROYW1lKGl0LmNvZGVwb2ludCkpOworICAgICAgICAgICAgICAgIG1haW4uYWRkKGl0LmNvZGVwb2ludCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChvdGhlcnMuc2l6ZSgpICE9IDApIHsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiRGVjb21wb3NlZCBjaGFyYWN0ZXJzIGZvdW5kIGFib3ZlOiAiKTsKKyAgICAgICAgICAgICAgICBvdGhlcnMucmVtb3ZlQWxsKG1haW4pOworICAgICAgICAgICAgICAgIGl0LnJlc2V0KG90aGVycyk7CisgICAgICAgICAgICAgICAgd2hpbGUgKGl0Lm5leHQoKSkgeworICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiICIgKyBVVEYxNi52YWx1ZU9mKGl0LmNvZGVwb2ludCkgKyAiIDw+IFhYWCAjICIgKyBVQ2hhcmFjdGVyLmdldE5hbWUoaXQuY29kZXBvaW50KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBvdXQuY2xvc2UoKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRG9uZSBXcml0aW5nIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBUcmFuc2xpdGVyYXRvciBoZXggPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiW15cXHUwMDIwLVxcdTAwN0VdIGhleCIpOworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgc2F2ZVJ1bGVzID0gCisgICAgICAgICAgIkEgPD4gXHVFQTQxOyBCIDw+IFx1RUE0MjsgQyA8PiBcdUVBNDM7IEQgPD4gXHVFQTQ0OyBFIDw+IFx1RUE0NTsgRiA8PiBcdUVBNDY7IEcgPD4gXHVFQTQ3OyBIIDw+IFx1RUE0ODsgSSA8PiBcdUVBNDk7ICIKKyAgICAgICAgKyAiSiA8PiBcdUVBNEE7IEsgPD4gXHVFQTRCOyBMIDw+IFx1RUE0QzsgTSA8PiBcdUVBNEQ7IE4gPD4gXHVFQTRFOyBPIDw+IFx1RUE0RjsgUCA8PiBcdUVBNTA7IFEgPD4gXHVFQTUxOyBSIDw+IFx1RUE1MjsgIgorICAgICAgICArICJTIDw+IFx1RUE1MzsgVCA8PiBcdUVBNTQ7IFUgPD4gXHVFQTU1OyBWIDw+IFx1RUE1NjsgVyA8PiBcdUVBNTc7IFggPD4gXHVFQTU4OyBZIDw+IFx1RUE1OTsgWiA8PiBcdUVBNUE7ICIKKyAgICAgICAgKyAiYSA8PiBcdUVBNjE7IGIgPD4gXHVFQTYyOyBjIDw+IFx1RUE2MzsgZCA8PiBcdUVBNjQ7IGUgPD4gXHVFQTY1OyBmIDw+IFx1RUE2NjsgZyA8PiBcdUVBNjc7IGggPD4gXHVFQTY4OyBpIDw+IFx1RUE2OTsgIgorICAgICAgICArICJqIDw+IFx1RUE2QTsgayA8PiBcdUVBNkI7IGwgPD4gXHVFQTZDOyBtIDw+IFx1RUE2RDsgbiA8PiBcdUVBNkU7IG8gPD4gXHVFQTZGOyBwIDw+IFx1RUE3MDsgcSA8PiBcdUVBNzE7IHIgPD4gXHVFQTcyOyAiCisgICAgICAgICsgInMgPD4gXHVFQTczOyB0IDw+IFx1RUE3NDsgdSA8PiBcdUVBNzU7IHYgPD4gXHVFQTc2OyB3IDw+IFx1RUE3NzsgeCA8PiBcdUVBNzg7IHkgPD4gXHVFQTc5OyB6IDw+IFx1RUE3QTsiOworICAgICAgICAKKyAgICBzdGF0aWMgVHJhbnNsaXRlcmF0b3Igc2F2ZUFzY2lpID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJhc2NpaS1zYXZlZCIsIHNhdmVSdWxlcywgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgc3RhdGljIFRyYW5zbGl0ZXJhdG9yIHJlc3RvcmVBc2NpaSA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiYXNjaWktc2F2ZWQiLCBzYXZlUnVsZXMsIFRyYW5zbGl0ZXJhdG9yLlJFVkVSU0UpOworICAgIAorICAgIHN0YXRpYyB7CisgICAgICAgIAorICAgICAgICBpZiAoZmFsc2UpIHsKKyAgICAgICAgCisgICAgICAgIGZvciAoY2hhciBpID0gJ0EnOyBpIDw9ICd6JzsgKytpKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KGkgKyAiIDw+ICIgKyBoZXgudHJhbnNsaXRlcmF0ZShTdHJpbmcudmFsdWVPZigoY2hhcikoMHhFQTAwICsgaSkpKSArICI7ICIpOworICAgICAgICB9CisKKyAgICAgICAgVW5pY29kZVNldCB4ID0gbmV3IFVuaWNvZGVTZXQoIltbOl5jY2M9MDpdJls6XmNjYz0yMzA6XV0iKTsKKyAgICAgICAgeCA9IHguY29tcGxlbWVudCgpOworICAgICAgICB4ID0geC5jb21wbGVtZW50KCk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVGVzdDogIiArIHgudG9QYXR0ZXJuKHRydWUpKTsKKyAgICAgICAgCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHkgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoInh4eCIsICIkbm90QWJvdmUgPSBbWzpeY2NjPTA6XSZbOl5jY2M9MjMwOl1dOyB1ICgkbm90QWJvdmUqKSBcdTAzMDggPiBYWFggfCAkMTsgIiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIAorICAgICAgICBTdHJpbmdbXSB0ZXN0TGlzdCA9IHsidVx1MDMwOCIsICJ1XHUwMzE2XHUwMzA4IiwgInVcdTAzMDhcdTAzMTYiLCAidVx1MDMwMVx1MDMwOCIsICJ1XHUwMzA4XHUwMzAxIn07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdExpc3QubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyB5eSA9IHkudHJhbnNsaXRlcmF0ZSh0ZXN0TGlzdFtpXSk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oaGV4LnRyYW5zbGl0ZXJhdGUodGVzdExpc3RbaV0pICsgIiA9PiAiICsgaGV4LnRyYW5zbGl0ZXJhdGUoeXkpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy9wcmludE5hbWVzKG5ldyBVbmljb2RlU2V0KCJbXHUwNjAwLVx1MDZGRl0iKSwgIkFyYWJpYy1MYXRpbi50eHQiKTsKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICAvKiAgCisgICAgICAgIEJyZWFrVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXIoKTsKKyAgICAgICAgCisgICAgCUJyZWFrVHJhbnNsaXRlcmF0b3IgdGVzdFRyYW5zID0gbmV3IEJyZWFrVHJhbnNsaXRlcmF0b3IoIkFueS1YWFgiLCBudWxsLCBudWxsLCAiJCIpOworICAgIAlTdHJpbmcgdGVzdFNvdXJjZSA9ICJUaGUgUXVpY2s6ICAgQnJvd24gZm94LS1qdW1wZWQuIjsKKyAgICAJQnJlYWtJdGVyYXRvciBiaSA9IHRlc3RUcmFucy5nZXRCcmVha0l0ZXJhdG9yKCk7CisgICAgICAgIGJpLnNldFRleHQobmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRlc3RTb3VyY2UpKTsKKyAgICAgICAgcHJpbnRCcmVha3MoMCwgdGVzdFNvdXJjZSwgYmkpOworICAgICAgICAvL2JpLnNldFRleHQoVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHRlc3RTb3VyY2UpKTsKKyAgICAgICAgLy9wcmludEJyZWFrcygxLCB0ZXN0U291cmNlLCBiaSk7CisgICAgICAgIAorICAgICAgICBwcmludEl0ZXJhdGlvbigyLCB0ZXN0U291cmNlLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGVzdFNvdXJjZSkpOworICAgICAgICAvL3ByaW50SXRlcmF0aW9uKDMsIHRlc3RTb3VyY2UsIFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZSh0ZXN0U291cmNlKSk7CisgICAgICAgIAorICAgIAkKKyAgICAJCisgICAgCVN0cmluZyB0ZXN0ID0gdGVzdFRyYW5zLnRyYW5zbGl0ZXJhdGUodGVzdFNvdXJjZSk7CisgICAgCVN5c3RlbS5vdXQucHJpbnRsbigiVGVzdDM6ICIgKyB0ZXN0KTsKKyAgICAJRHVtbXlGYWN0b3J5LmFkZCh0ZXN0VHJhbnMuZ2V0SUQoKSwgdGVzdFRyYW5zKTsKKyAgICAJKi8KKyAgICAJCisgICAgCS8vIEFueVRyYW5zbGl0ZXJhdG9yLlNjcmlwdFJ1bkl0ZXJhdG9yLnJlZ2lzdGVyQW55VG9TY3JpcHQoKTsKKyAgICAJCisgICAgCUFueVRyYW5zbGl0ZXJhdG9yIGF0ID0gbmV3IEFueVRyYW5zbGl0ZXJhdG9yKCJHcmVlayIsIG51bGwpOworICAgIAlhdC50cmFuc2xpdGVyYXRlKCIoY2F0LFx1MDNiMSxcdTA5MTUpIik7CisgICAgCUR1bW15RmFjdG9yeS5hZGQoYXQuZ2V0SUQoKSwgYXQpOworICAgIAkKKyAgICAJYXQgPSBuZXcgQW55VHJhbnNsaXRlcmF0b3IoIkRldmFuYWdhcmkiLCBudWxsKTsKKyAgICAJYXQudHJhbnNsaXRlcmF0ZSgiKGNhdCxcdTAzYjEsXHUwOTE1KSIpOworICAgIAlEdW1teUZhY3RvcnkuYWRkKGF0LmdldElEKCksIGF0KTsKKyAgICAJCisgICAgCWF0ID0gbmV3IEFueVRyYW5zbGl0ZXJhdG9yKCJMYXRpbiIsIG51bGwpOworICAgIAlhdC50cmFuc2xpdGVyYXRlKCIoY2F0LFx1MDNiMSxcdTA5MTUpIik7CisgICAgCUR1bW15RmFjdG9yeS5hZGQoYXQuZ2V0SUQoKSwgYXQpOworICAgIAkKKyAgICAgICAgRHVtbXlGYWN0b3J5LmFkZCgiQW55LWdpZiIsIFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiZ2lmIiwgIidcXCd1KC4uKSguLikgPiAnPGltZyBzcmM9XCJodHRwOi8vd3d3LnVuaWNvZGUub3JnL2dpZnMvMjQvJyAkMSAnL1UnICQxJDIgJy5naWZcIj4nOyIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpKTsgICAgCQorICAgICAgICBEdW1teUZhY3RvcnkuYWRkKCJnaWYtQW55IiwgVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1OdWxsIikpOyAgICAJCisKKyAgICAgICAgRHVtbXlGYWN0b3J5LmFkZCgiQW55LVJlbW92ZUN1cmx5IiwgVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJSZW1vdmVDdXJseSIsICJbXFx7XFx9XSA+IDsiLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKSk7ICAgIAkKKyAgICAgICAgRHVtbXlGYWN0b3J5LmFkZCgiUmVtb3ZlQ3VybHktQW55IiwgVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1OdWxsIikpOworICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUcnlpbmcgJmhleCIpOworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJoZXgyIiwgIiguKSA+ICZoZXgoJDEpOyIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlJlZ2lzdGVyaW5nIik7CisgICAgICAgIER1bW15RmFjdG9yeS5hZGQoIkFueS1oZXgyIiwgdCk7ICAgIAkKKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVHJ5aW5nICZnaWYiKTsKKyAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiZ2lmMiIsICIoLikgPiAmYW55LWdpZigkMSk7IiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUmVnaXN0ZXJpbmciKTsKKyAgICAgICAgRHVtbXlGYWN0b3J5LmFkZCgiQW55LWdpZjIiLCB0KTsgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgCisgICAgdm9pZCBzZXRUcmFuc2xpdGVyYXRvcihTdHJpbmcgbmFtZSwgU3RyaW5nIGlkKSB7CisgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJHb3Q6ICIgKyBuYW1lKTsKKyAgICAgICAgaWYgKGlkID09IG51bGwpIHsKKyAgICAgICAgCXRyYW5zbGl0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UobmFtZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgcmV2ZXJzZUlkID0gIiI7CisgICAgICAgICAgICBpbnQgcG9zID0gaWQuaW5kZXhPZignLScpOworICAgICAgICAgICAgaWYgKHBvcyA8IDApIHsKKyAgICAgICAgICAgIAlyZXZlcnNlSWQgPSBpZCArICItQW55IjsKKyAgICAgICAgICAgIAlpZCA9ICJBbnktIiArIGlkOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbnQgcG9zMiA9IGlkLmluZGV4T2YoIi8iLCBwb3MpOworICAgICAgICAgICAgICAgIGlmIChwb3MyIDwgMCkgeworICAgICAgICAgICAgCSAgICByZXZlcnNlSWQgPSBpZC5zdWJzdHJpbmcocG9zKzEpICsgIi0iICsgaWQuc3Vic3RyaW5nKDAscG9zKTsKKyAgICAgICAgICAgIAl9IGVsc2UgeworICAgICAgICAgICAgCSAgICByZXZlcnNlSWQgPSBpZC5zdWJzdHJpbmcocG9zKzEsIHBvczIpICsgIi0iICsgaWQuc3Vic3RyaW5nKDAscG9zKSArIGlkLnN1YnN0cmluZyhwb3MyKTsKKyAgICAgICAgICAgIAl9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgCQorICAgICAgICAJdHJhbnNsaXQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoaWQsIG5hbWUsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICAJaWYgKERFQlVHKSB7CisgICAgICAgIAkgICAgU3lzdGVtLm91dC5wcmludGxuKCIqKipGb3J3YXJkIFJ1bGVzIik7CisgICAgICAgIAkgICAgU3lzdGVtLm91dC5wcmludGxuKCgoUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IpdHJhbnNsaXQpLnRvUnVsZXModHJ1ZSkpOworICAgICAgICAJICAgIFN5c3RlbS5vdXQucHJpbnRsbigiKioqU291cmNlIFNldCIpOworICAgICAgICAJICAgIFN5c3RlbS5vdXQucHJpbnRsbih0cmFuc2xpdC5nZXRTb3VyY2VTZXQoKS50b1BhdHRlcm4odHJ1ZSkpOworICAgICAgICAJfQorICAgICAgICAJICAgIFN5c3RlbS5vdXQucHJpbnRsbigiKioqVGFyZ2V0IFNldCIpOworICAgICAgICAJICAgIFVuaWNvZGVTZXQgdGFyZ2V0ID0gdHJhbnNsaXQuZ2V0VGFyZ2V0U2V0KCk7CisgICAgICAgIAkgICAgU3lzdGVtLm91dC5wcmludGxuKHRhcmdldC50b1BhdHRlcm4odHJ1ZSkpOworICAgICAgICAJICAgIFVuaWNvZGVTZXQgcmVzdCA9IG5ldyBVbmljb2RlU2V0KCJbYS16XSIpLnJlbW92ZUFsbCh0YXJnZXQpOworICAgICAgICAJICAgIFN5c3RlbS5vdXQucHJpbnRsbigiKioqQVNDSUkgLSBUYXJnZXQgU2V0Iik7CisgICAgICAgIAkgICAgU3lzdGVtLm91dC5wcmludGxuKHJlc3QudG9QYXR0ZXJuKHRydWUpKTsKKyAgICAgICAgCSAgICAKKyAgICAgICAgICAgIER1bW15RmFjdG9yeS5hZGQoaWQsIHRyYW5zbGl0KTsKKyAgICAgICAgICAgIAorICAgICAgICAJVHJhbnNsaXRlcmF0b3IgdHJhbnNsaXQyID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKHJldmVyc2VJZCwgbmFtZSwgVHJhbnNsaXRlcmF0b3IuUkVWRVJTRSk7CisgICAgICAgIAlpZiAoREVCVUcpIHsKKyAgICAgICAgCSAgICBTeXN0ZW0ub3V0LnByaW50bG4oIioqKkJhY2t3YXJkIFJ1bGVzIik7CisgICAgICAgIAkgICAgU3lzdGVtLm91dC5wcmludGxuKCgoUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IpdHJhbnNsaXQyKS50b1J1bGVzKHRydWUpKTsKKyAgICAgICAgCX0KKyAgICAgICAgICAgIER1bW15RmFjdG9yeS5hZGQocmV2ZXJzZUlkLCB0cmFuc2xpdDIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciByZXYgPSB0cmFuc2xpdC5nZXRJbnZlcnNlKCk7CisgICAgICAgIAlpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiKioqSW52ZXJzZSBSdWxlcyIpOworICAgICAgICAJaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oKChSdWxlQmFzZWRUcmFuc2xpdGVyYXRvcilyZXYpLnRvUnVsZXModHJ1ZSkpOworICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgdGV4dC5mbHVzaCgpOworICAgICAgICB0ZXh0LnNldFRyYW5zbGl0ZXJhdG9yKHRyYW5zbGl0KTsKKyAgICAgICAgY29udmVydFNlbGVjdGlvbkl0ZW0uc2V0TGFiZWwoVHJhbnNsaXRlcmF0b3IuZ2V0RGlzcGxheU5hbWUodHJhbnNsaXQuZ2V0SUQoKSkpOworICAgICAgICAKKyAgICAgICAgYWRkSGlzdG9yeSh0cmFuc2xpdCk7CisgICAgICAgIAorICAgICAgICBUcmFuc2xpdGVyYXRvciBpbnY7CisgICAgICAgIHRyeSB7CisgICAgICAgIAlpbnYgPSB0cmFuc2xpdC5nZXRJbnZlcnNlKCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBleCkgeworICAgICAgICAJaW52ID0gbnVsbDsKKyAgICAgICAgfQorICAgICAgICBpZiAoaW52ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGFkZEhpc3RvcnkoaW52KTsKKyAgICAgICAgICAgIHN3YXBTZWxlY3Rpb25JdGVtLnNldEVuYWJsZWQodHJ1ZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzd2FwU2VsZWN0aW9uSXRlbS5zZXRFbmFibGVkKGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlNldCB0cmFuc2xpdGVyYXRvcjogIiArIHRyYW5zbGl0LmdldElEKCkKKyAgICAgICAgICAgICsgKGludiA9PSBudWxsID8gIiBhbmQgIiArIGludi5nZXRJRCgpIDogIiIpKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBhZGRIaXN0b3J5KFRyYW5zbGl0ZXJhdG9yIHRyYW5zbGl0KSB7CisgICAgICAgIFN0cmluZyBuYW1lID0gdHJhbnNsaXQuZ2V0SUQoKTsKKyAgICAgICAgTWVudUl0ZW0gY21pID0gKE1lbnVJdGVtKSBoaXN0b3J5TWFwLmdldChuYW1lKTsKKyAgICAgICAgaWYgKGNtaSA9PSBudWxsKSB7CisgICAgICAgICAgICBjbWkgPSBuZXcgTWVudUl0ZW0odHJhbnNsaXQuZ2V0RGlzcGxheU5hbWUobmFtZSkpOworICAgICAgICAgICAgY21pLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBUcmFuc2xpdGVyYXRpb25MaXN0ZW5lcihuYW1lKSk7CisgICAgICAgICAgICBoaXN0b3J5TWFwLnB1dChuYW1lLCBjbWkpOworICAgICAgICAgICAgaGlzdG9yeVNldC5hZGQoY21pKTsKKyAgICAgICAgICAgIGhpc3RvcnlNZW51LnJlbW92ZUFsbCgpOworICAgICAgICAgICAgSXRlcmF0b3IgaXQgPSBoaXN0b3J5U2V0Lml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgaGlzdG9yeU1lbnUuYWRkKChNZW51SXRlbSlpdC5uZXh0KCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIGNsYXNzIFRyYW5zbGl0ZXJhdGlvbkxpc3RlbmVyIGltcGxlbWVudHMgQWN0aW9uTGlzdGVuZXIsIEl0ZW1MaXN0ZW5lciB7CisgICAgICAgIFN0cmluZyBuYW1lOworICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0aW9uTGlzdGVuZXIoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgIHNldFRyYW5zbGl0ZXJhdG9yKG5hbWUsIG51bGwpOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyB2b2lkIGl0ZW1TdGF0ZUNoYW5nZWQoSXRlbUV2ZW50IGUpIHsKKyAgICAgICAgICAgIGlmIChlLmdldFN0YXRlQ2hhbmdlKCkgPT0gZS5TRUxFQ1RFRCkgeworICAgICAgICAgICAgICAgIHNldFRyYW5zbGl0ZXJhdG9yKG5hbWUsIG51bGwpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzZXRUcmFuc2xpdGVyYXRvcigiQW55LU51bGwiLCBudWxsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBjbGFzcyBGb250QWN0aW9uTGlzdGVuZXIgaW1wbGVtZW50cyBBY3Rpb25MaXN0ZW5lciB7CisgICAgICAgIFN0cmluZyBuYW1lOworICAgICAgICBwdWJsaWMgRm9udEFjdGlvbkxpc3RlbmVyKFN0cmluZyBuYW1lKSB7CisgICAgICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiRm9udDogIiArIG5hbWUpOworICAgICAgICAgICAgZm9udE5hbWUgPSBuYW1lOworICAgICAgICAgICAgdGV4dC5zZXRGb250KG5ldyBGb250KGZvbnROYW1lLCBGb250LlBMQUlOLCBmb250U2l6ZSkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIGNsYXNzIFNpemVBY3Rpb25MaXN0ZW5lciBpbXBsZW1lbnRzIEFjdGlvbkxpc3RlbmVyIHsKKyAgICAgICAgaW50IHNpemU7CisgICAgICAgIHB1YmxpYyBTaXplQWN0aW9uTGlzdGVuZXIoaW50IHNpemUpIHsKKyAgICAgICAgICAgIHRoaXMuc2l6ZSA9IHNpemU7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJTaXplOiAiICsgc2l6ZSk7CisgICAgICAgICAgICBmb250U2l6ZSA9IHNpemU7CisgICAgICAgICAgICB0ZXh0LnNldEZvbnQobmV3IEZvbnQoZm9udE5hbWUsIEZvbnQuUExBSU4sIGZvbnRTaXplKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgU2V0IGFkZChTZXQgcywgRW51bWVyYXRpb24gZW51bSkgeworICAgICAgICB3aGlsZShlbnVtLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBzLmFkZChlbnVtLm5leHRFbGVtZW50KCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBhIHNvcnRlZCBsaXN0IG9mIHRoZSBzeXN0ZW0gdHJhbnNsaXRlcmF0b3JzLgorICAgICAqLworICAgICAvKgorICAgIHByaXZhdGUgc3RhdGljIFZlY3RvciBnZXRTeXN0ZW1UcmFuc2xpdGVyYXRvck5hbWVzKCkgeworICAgICAgICBWZWN0b3IgdiA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgZm9yIChFbnVtZXJhdGlvbiBlPVRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZUlEcygpOworICAgICAgICAgICAgIGUuaGFzTW9yZUVsZW1lbnRzKCk7ICkgeworICAgICAgICAgICAgdi5hZGRFbGVtZW50KGUubmV4dEVsZW1lbnQoKSk7CisgICAgICAgIH0KKyAgICAgICAgLy8gSW5zZXJ0aW9uIHNvcnQsIE8obl4yKSBhY2NlcHRhYmxlIGZvciBzbWFsbCBuCisgICAgICAgIGZvciAoaW50IGk9MDsgaTwodi5zaXplKCktMSk7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIGEgPSAoU3RyaW5nKSB2LmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgIGZvciAoaW50IGo9aSsxOyBqPHYuc2l6ZSgpOyArK2opIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgYiA9IChTdHJpbmcpIHYuZWxlbWVudEF0KGopOworICAgICAgICAgICAgICAgIGlmIChhLmNvbXBhcmVUbyhiKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgdi5zZXRFbGVtZW50QXQoYiwgaSk7CisgICAgICAgICAgICAgICAgICAgIHYuc2V0RWxlbWVudEF0KGEsIGopOworICAgICAgICAgICAgICAgICAgICBhID0gYjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHY7CisgICAgfQorICAgICovCisKKy8qCisgICAgcHJpdmF0ZSB2b2lkIHNldE5vVHJhbnNsaXRlcmF0b3IoKSB7CisgICAgICAgIHRyYW5zbGl0SXRlbSA9IG5vVHJhbnNsaXRJdGVtOworICAgICAgICBub1RyYW5zbGl0SXRlbS5zZXRTdGF0ZSh0cnVlKTsKKyAgICAgICAgaGFuZGxlU2V0VHJhbnNsaXRlcmF0b3Iobm9UcmFuc2xpdEl0ZW0uZ2V0TGFiZWwoKSk7CisgICAgICAgIGNvbXBvdW5kID0gZmFsc2U7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTx0cmFuc2xpdE1lbnUuZ2V0SXRlbUNvdW50KCk7ICsraSkgeworICAgICAgICAgICAgTWVudUl0ZW0gaXQgPSB0cmFuc2xpdE1lbnUuZ2V0SXRlbShpKTsKKyAgICAgICAgICAgIGlmIChpdCAhPSBub1RyYW5zbGl0SXRlbSAmJiBpdCBpbnN0YW5jZW9mIENoZWNrYm94TWVudUl0ZW0pIHsKKyAgICAgICAgICAgICAgICAoKENoZWNrYm94TWVudUl0ZW0pIGl0KS5zZXRTdGF0ZShmYWxzZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisqLworLyoKKyAgICBwcml2YXRlIHZvaWQgaGFuZGxlQWRkVG9Db21wb3VuZChTdHJpbmcgbmFtZSkgeworICAgICAgICBpZiAoY29tcG91bmRDb3VudCA8IE1BWF9DT01QT1VORCkgeworICAgICAgICAgICAgY29tcG91bmRUcmFuc2xpdFtjb21wb3VuZENvdW50XSA9IGRlY29kZVRyYW5zbGl0SXRlbShuYW1lKTsKKyAgICAgICAgICAgICsrY29tcG91bmRDb3VudDsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHRbXSA9IG5ldyBUcmFuc2xpdGVyYXRvcltjb21wb3VuZENvdW50XTsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoY29tcG91bmRUcmFuc2xpdCwgMCwgdCwgMCwgY29tcG91bmRDb3VudCk7CisgICAgICAgICAgICB0cmFuc2xpdCA9IG5ldyBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKHQpOworICAgICAgICAgICAgdGV4dC5zZXRUcmFuc2xpdGVyYXRvcih0cmFuc2xpdCk7CisgICAgICAgIH0KKyAgICB9CisqLworLyoKKyAgICBwcml2YXRlIHZvaWQgaGFuZGxlU2V0VHJhbnNsaXRlcmF0b3IoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgdHJhbnNsaXQgPSBkZWNvZGVUcmFuc2xpdEl0ZW0obmFtZSk7CisgICAgICAgIHRleHQuc2V0VHJhbnNsaXRlcmF0b3IodHJhbnNsaXQpOworICAgIH0KKyAgICAqLworCisgICAgLyoqCisgICAgICogRGVjb2RlIGEgbWVudSBpdGVtIHRoYXQgbG9va3MgbGlrZSA8dHJhbnNsaXQgbmFtZT4uCisgICAgICovCisgICAgIC8qCisgICAgcHJpdmF0ZSBzdGF0aWMgVHJhbnNsaXRlcmF0b3IgZGVjb2RlVHJhbnNsaXRJdGVtKFN0cmluZyBuYW1lKSB7CisgICAgICAgIHJldHVybiAobmFtZS5lcXVhbHMoTk9fVFJBTlNMSVRFUkFUT1IpKQorICAgICAgICAgICAgPyBudWxsIDogVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UobmFtZSk7CisgICAgfQorICAgICovCisKKyAgICBwcml2YXRlIHZvaWQgaGFuZGxlQmF0Y2hUcmFuc2xpdGVyYXRlKFRyYW5zbGl0ZXJhdG9yIHRyYW5zbGl0KSB7CisgICAgICAgIGlmICh0cmFuc2xpdCA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpbnQgc3RhcnQgPSB0ZXh0LmdldFNlbGVjdGlvblN0YXJ0KCk7CisgICAgICAgIGludCBlbmQgPSB0ZXh0LmdldFNlbGVjdGlvbkVuZCgpOworICAgICAgICBSZXBsYWNlYWJsZVN0cmluZyBzID0KKyAgICAgICAgICAgIG5ldyBSZXBsYWNlYWJsZVN0cmluZyh0ZXh0LmdldFRleHQoKS5zdWJzdHJpbmcoc3RhcnQsIGVuZCkpOworCisgICAgICAgIFN0cmluZ0J1ZmZlciBsb2cgPSBudWxsOworICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgIGxvZyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGxvZy5hcHBlbmQoJyInICsgcy50b1N0cmluZygpICsgIlwiIChzdGFydCAiICsgc3RhcnQgKworICAgICAgICAgICAgICAgICAgICAgICAiLCBlbmQgIiArIGVuZCArICIpIC0+IFwiIik7CisgICAgICAgIH0KKworICAgICAgICB0cmFuc2xpdC50cmFuc2xpdGVyYXRlKHMpOworICAgICAgICBTdHJpbmcgc3RyID0gcy50b1N0cmluZygpOworCisgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgbG9nLmFwcGVuZChzdHIgKyAiXCIiKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQmF0Y2ggIiArIHRyYW5zbGl0LmdldElEKCkgKyAiOiAiICsgbG9nLnRvU3RyaW5nKCkpOworICAgICAgICB9CisKKyAgICAgICAgdGV4dC5yZXBsYWNlUmFuZ2Uoc3RyLCBzdGFydCwgZW5kKTsKKyAgICAgICAgdGV4dC5zZWxlY3Qoc3RhcnQsIHN0YXJ0ICsgc3RyLmxlbmd0aCgpKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgaGFuZGxlQ2xvc2UoKSB7CisgICAgICAgIGhlbHBEaWFsb2cuZGlzcG9zZSgpOworICAgICAgICBkaXNwb3NlKCk7CisgICAgfQorICAgIAorICAgIC8qCisgICAgY2xhc3MgSW5mb0RpYWxvZyBleHRlbmRzIERpYWxvZyB7CisgICAgICAgIHByb3RlY3RlZCBCdXR0b24gYnV0dG9uOworICAgICAgICBwcm90ZWN0ZWQgVGV4dEFyZWEgYXJlYTsKKyAgICAgICAgcHJvdGVjdGVkIERpYWxvZyBtZTsKKyAgICAgICAgcHJvdGVjdGVkIFBhbmVsIGJvdHRvbTsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBUZXh0QXJlYSBnZXRBcmVhKCkgeworICAgICAgICAgICAgcmV0dXJuIGFyZWE7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBQYW5lbCBnZXRCb3R0b20oKSB7CisgICAgICAgICAgICByZXR1cm4gYm90dG9tOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBJbmZvRGlhbG9nKEZyYW1lIHBhcmVudCwgU3RyaW5nIHRpdGxlLCBTdHJpbmcgbGFiZWwsIFN0cmluZyBtZXNzYWdlKSB7CisgICAgICAgICAgICBzdXBlcihwYXJlbnQsIHRpdGxlLCBmYWxzZSk7CisgICAgICAgICAgICBtZSA9IHRoaXM7CisgICAgICAgICAgICB0aGlzLnNldExheW91dChuZXcgQm9yZGVyTGF5b3V0KCkpOworICAgICAgICAgICAgaWYgKGxhYmVsLmxlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgICAgICB0aGlzLmFkZCgiTm9ydGgiLCBuZXcgTGFiZWwobGFiZWwpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgYXJlYSA9IG5ldyBUZXh0QXJlYShtZXNzYWdlLCA4LCA4MCwgVGV4dEFyZWEuU0NST0xMQkFSU19WRVJUSUNBTF9PTkxZKTsKKyAgICAgICAgICAgIHRoaXMuYWRkKCJDZW50ZXIiLCBhcmVhKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYnV0dG9uID0gbmV3IEJ1dHRvbigiSGlkZSIpOworICAgICAgICAgICAgYnV0dG9uLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgICAgICBtZS5oaWRlKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBib3R0b20gPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgICAgIGJvdHRvbS5zZXRMYXlvdXQobmV3IEZsb3dMYXlvdXQoRmxvd0xheW91dC5DRU5URVIsIDAsIDApKTsKKyAgICAgICAgICAgIGJvdHRvbS5hZGQoYnV0dG9uKTsKKyAgICAgICAgICAgIHRoaXMuYWRkKCJTb3V0aCIsIGJvdHRvbSk7CisgICAgICAgICAgICB0aGlzLnBhY2soKTsKKyAgICAgICAgICAgIGFkZFdpbmRvd0xpc3RlbmVyKG5ldyBXaW5kb3dBZGFwdGVyKCkgeworICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgZSkgeworICAgICAgICAgICAgICAgICAgICBtZS5oaWRlKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisgICAgKi8KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9EZW1vQXBwbGV0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvRGVtb0FwcGxldC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNjNmYwNmQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvRGVtb0FwcGxldC5qYXZhCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9EZW1vQXBwbGV0LmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDU6MDAgJCAKKyAqICRSZXZpc2lvbjogMS42ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby50cmFuc2xpdDsKK2ltcG9ydCBqYXZhLmF3dC4qOworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lio7CitpbXBvcnQgamF2YS5hcHBsZXQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYuZGVtby5pbXBsLkFwcGxldEZyYW1lOworCisvKioKKyAqIEEgc2ltcGxlIEFwcGxldCB0aGF0IHNob3dzIGEgYnV0dG9uLiAgV2hlbiBwcmVzc2VkLCB0aGUgYnV0dG9uCisgKiBzaG93cyB0aGUgRGVtb0FwcGxldEZyYW1lLiAgVGhpcyBBcHBsZXQgaXMgbWVhbnQgdG8gYmUgZW1iZWRkZWQKKyAqIGluIGEgd2ViIHBhZ2UuCisgKgorICogPHA+Q29weXJpZ2h0IChjKSBJQk0gQ29ycG9yYXRpb24gMTk5OS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogQGF1dGhvciBBbGFuIExpdQorICogQHZlcnNpb24gJFJDU2ZpbGU6IERlbW9BcHBsZXQuamF2YSx2ICQgJFJldmlzaW9uOiAxLjYgJCAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNTowMCAkCisgKi8KK3B1YmxpYyBjbGFzcyBEZW1vQXBwbGV0IGV4dGVuZHMgQXBwbGV0IHsKKworICAgIERlbW8gZnJhbWUgPSBudWxsOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAiXHUwMEE5IElCTSBDb3Jwb3JhdGlvbiAxOTk5LiBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB7CisgICAgICAgIGZpbmFsIERlbW9BcHBsZXQgYXBwbGV0ID0gbmV3IERlbW9BcHBsZXQoKTsKKyAgICAgICAgbmV3IEFwcGxldEZyYW1lKCJUcmFuc2xpdGVyYXRpb24gRGVtbyIsIGFwcGxldCwgNjQwLCA0ODApOworICAgIH0KKworCXB1YmxpYyB2b2lkIGluaXQoKSB7CisKKwkJQnV0dG9uIGJ1dHRvbiA9IG5ldyBCdXR0b24oIlRyYW5zbGl0ZXJhdGlvbiBEZW1vIik7CisJCWJ1dHRvbi5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisJCSAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworCQkgICAgICAgIGlmIChmcmFtZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGZyYW1lID0gbmV3IERlbW8oNjAwLCAyMDApOworICAgICAgICAgICAgICAgICAgICBmcmFtZS5hZGRXaW5kb3dMaXN0ZW5lcihuZXcgV2luZG93QWRhcHRlcigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgd2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmcmFtZS5zZXRWaXNpYmxlKHRydWUpOworICAgICAgICAgICAgICAgIGZyYW1lLnRvRnJvbnQoKTsKKwkJICAgIH0KKwkJfSk7CisKKwkJYWRkKGJ1dHRvbik7CisKKyAgICAgICAgRGltZW5zaW9uIHNpemUgPSBidXR0b24uZ2V0UHJlZmVycmVkU2l6ZSgpOworICAgICAgICBzaXplLndpZHRoICs9IDEwOworICAgICAgICBzaXplLmhlaWdodCArPSAxMDsKKworCQlyZXNpemUoc2l6ZSk7CisJfQorCQorICAgIHB1YmxpYyB2b2lkIHN0b3AoKSB7CisgICAgICAgIGlmIChmcmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICBmcmFtZS5kaXNwb3NlKCk7CisgICAgICAgIH0KKyAgICAgICAgZnJhbWUgPSBudWxsOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9EaWZmZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9EaWZmZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOWM4ODNiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L0RpZmZlci5qYXZhCkBAIC0wLDAgKzEsMTc3IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L0RpZmZlci5qYXZhLHYgJAorKiAkRGF0ZTogMjAwMi8wNy8yNiAyMDowOTowMSAkCisqICRSZXZpc2lvbjogMS4xICQKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRlbW8udHJhbnNsaXQ7CisKKy8qKiBWRVJZIEJhc2ljIERpZmYgcHJvZ3JhbS4gQ29tcGFyZXMgdHdvIHNlcXVlbmNlcyBvZiBvYmplY3RzIGZlZCBpbnRvIGl0LCBhbmQKKyAqIGxldHMgeW91IGtub3cgd2hlcmUgdGhleSBhcmUgZGlmZmVyZW50LgorICogQGF1dGhvciBNYXJrIERhdmlzCisgKiBAdmVyc2lvbiAxLjAKKyAqLworCitmaW5hbCBwdWJsaWMgY2xhc3MgRGlmZmVyIHsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHQgPQorICAgICAgIkNvcHlyaWdodCAoQykgMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiI7CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc3RhY2tTaXplIFRoZSBzaXplIG9mIHRoZSBsYXJnZXN0IGRpZmZlcmVuY2UgeW91IGV4cGVjdC4KKyAgICAgKiBAcGFyYW0gbWF0Y2hDb3VudCBUaGUgbnVtYmVyIG9mIGl0ZW1zIHRoYXQgaGF2ZSB0byBiZSB0aGUgc2FtZSB0byBjb3VudCBhcyBhIG1hdGNoCisgICAgICovCisgICAgcHVibGljIERpZmZlcihpbnQgc3RhY2tTaXplLCBpbnQgbWF0Y2hDb3VudCkgeworICAgICAgICB0aGlzLlNUQUNLU0laRSA9IHN0YWNrU2l6ZTsKKyAgICAgICAgdGhpcy5FUVVBTFNJWkUgPSBtYXRjaENvdW50OworICAgICAgICBhID0gbmV3IE9iamVjdFtzdGFja1NpemUrbWF0Y2hDb3VudF07CisgICAgICAgIGIgPSBuZXcgT2JqZWN0W3N0YWNrU2l6ZSttYXRjaENvdW50XTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBhZGQgKE9iamVjdCBhU3RyLCBPYmplY3QgYlN0cikgeworICAgICAgICBhZGRBKGFTdHIpOworICAgICAgICBhZGRCKGJTdHIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFkZEEgKE9iamVjdCBhU3RyKSB7CisgICAgICAgIGZsdXNoKCk7CisgICAgICAgIGFbYUNvdW50KytdID0gYVN0cjsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBhZGRCIChPYmplY3QgYlN0cikgeworICAgICAgICBmbHVzaCgpOworICAgICAgICBiW2JDb3VudCsrXSA9IGJTdHI7CisgICAgfQorCisgICAgcHVibGljIGludCBnZXRBTGluZShpbnQgb2Zmc2V0KSB7CisgICAgICAgIHJldHVybiBhTGluZSArIG1heFNhbWUgKyBvZmZzZXQ7CisgICAgfQorCisgICAgcHVibGljIE9iamVjdCBnZXRBKGludCBvZmZzZXQpIHsKKyAgICAgICAgaWYgKG9mZnNldCA8IDApIHJldHVybiBsYXN0OworICAgICAgICBpZiAob2Zmc2V0ID4gYVRvcC1tYXhTYW1lKSByZXR1cm4gbmV4dDsKKyAgICAgICAgcmV0dXJuIGFbb2Zmc2V0XTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldEFDb3VudCgpIHsKKyAgICAgICAgcmV0dXJuIGFUb3AtbWF4U2FtZTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldEJDb3VudCgpIHsKKyAgICAgICAgcmV0dXJuIGJUb3AtbWF4U2FtZTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldEJMaW5lKGludCBvZmZzZXQpIHsKKyAgICAgICAgcmV0dXJuIGJMaW5lICsgbWF4U2FtZSArIG9mZnNldDsKKyAgICB9CisKKyAgICBwdWJsaWMgT2JqZWN0IGdldEIoaW50IG9mZnNldCkgeworICAgICAgICBpZiAob2Zmc2V0IDwgMCkgcmV0dXJuIGxhc3Q7CisgICAgICAgIGlmIChvZmZzZXQgPiBiVG9wLW1heFNhbWUpIHJldHVybiBuZXh0OworICAgICAgICByZXR1cm4gYltvZmZzZXRdOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGNoZWNrTWF0Y2goYm9vbGVhbiBmaW5hbFBhc3MpIHsKKyAgICAgICAgLy8gZmluZCB0aGUgaW5pdGlhbCBzdHJpbmdzIHRoYXQgYXJlIHRoZSBzYW1lCisgICAgICAgIGludCBtYXggPSBhQ291bnQ7CisgICAgICAgIGlmIChtYXggPiBiQ291bnQpIG1heCA9IGJDb3VudDsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBtYXg7ICsraSkgeworICAgICAgICAgICAgaWYgKCFhW2ldLmVxdWFscyhiW2ldKSkgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgLy8gYXQgdGhpcyBwb2ludCwgYWxsIGl0ZW1zIHVwIHRvIGkgYXJlIGVxdWFsCisgICAgICAgIG1heFNhbWUgPSBpOworICAgICAgICBhVG9wID0gYlRvcCA9IG1heFNhbWU7CisgICAgICAgIGlmIChtYXhTYW1lID4gMCkgbGFzdCA9IGFbbWF4U2FtZS0xXTsKKyAgICAgICAgbmV4dCA9ICIiOworCisgICAgICAgIGlmIChmaW5hbFBhc3MpIHsKKyAgICAgICAgICAgIGFUb3AgPSBhQ291bnQ7CisgICAgICAgICAgICBiVG9wID0gYkNvdW50OworICAgICAgICAgICAgbmV4dCA9ICIiOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGFDb3VudCAtIG1heFNhbWUgPCBFUVVBTFNJWkUgfHwgYkNvdW50IC0gbWF4U2FtZSA8IEVRVUFMU0laRSkgcmV0dXJuOworCisgICAgICAgIC8vIG5vdyBzZWUgaWYgdGhlIGxhc3QgZmV3IGEncyBvY2N1ciBhbnl3aGVyZSBpbiB0aGUgYidzLCBvciB2aWNlIHZlcnNhCisgICAgICAgIGludCBtYXRjaCA9IGZpbmQgKGEsIGFDb3VudC1FUVVBTFNJWkUsIGFDb3VudCwgYiwgbWF4U2FtZSwgYkNvdW50KTsKKyAgICAgICAgaWYgKG1hdGNoICE9IC0xKSB7CisgICAgICAgICAgICBhVG9wID0gYUNvdW50LUVRVUFMU0laRTsKKyAgICAgICAgICAgIGJUb3AgPSBtYXRjaDsKKyAgICAgICAgICAgIG5leHQgPSBhW2FUb3BdOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1hdGNoID0gZmluZCAoYiwgYkNvdW50LUVRVUFMU0laRSwgYkNvdW50LCBhLCBtYXhTYW1lLCBhQ291bnQpOworICAgICAgICBpZiAobWF0Y2ggIT0gLTEpIHsKKyAgICAgICAgICAgIGJUb3AgPSBiQ291bnQtRVFVQUxTSVpFOworICAgICAgICAgICAgYVRvcCA9IG1hdGNoOworICAgICAgICAgICAgbmV4dCA9IGJbYlRvcF07CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYgKGFDb3VudCA+PSBTVEFDS1NJWkUgfHwgYkNvdW50ID49IFNUQUNLU0laRSkgeworICAgICAgICAgICAgLy8gZmx1c2ggc29tZSBvZiB0aGVtCisgICAgICAgICAgICBhQ291bnQgPSAoYUNvdW50ICsgbWF4U2FtZSkgLyAyOworICAgICAgICAgICAgYkNvdW50ID0gKGJDb3VudCArIG1heFNhbWUpIC8gMjsKKyAgICAgICAgICAgIG5leHQgPSAiIjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKiBDb252ZW5pZW50IHV0aWxpdHkKKyAgICAgKiBmaW5kcyBhIHNlZ21lbnQgb2YgdGhlIGZpcnN0IGFycmF5IGluIHRoZSBzZWNvbmQgYXJyYXkuCisgICAgICogQHJldHVybiAtMSBpZiBub3QgZm91bmQsIG90aGVyd2lzZSBzdGFydCBwb3NpdGlvbiBpbiBiCisgICAgICovCisKKyAgICBwdWJsaWMgaW50IGZpbmQgKE9iamVjdFtdIGEsIGludCBhU3RhcnQsIGludCBhRW5kLCBPYmplY3RbXSBiLCBpbnQgYlN0YXJ0LCBpbnQgYkVuZCkgeworICAgICAgICBpbnQgbGVuID0gYUVuZCAtIGFTdGFydDsKKyAgICAgICAgaW50IGJFbmRNaW51cyA9IGJFbmQgLSBsZW47CisgICAgICAgIHRyeUE6CisgICAgICAgIGZvciAoaW50IGkgPSBiU3RhcnQ7IGkgPD0gYkVuZE1pbnVzOyArK2kpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbGVuOyArK2opIHsKKyAgICAgICAgICAgICAgICBpZiAoIWJbaSArIGpdLmVxdWFscyhhW2FTdGFydCArIGpdKSkgY29udGludWUgdHJ5QTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBpOyAvLyB3ZSBoYXZlIGEgbWF0Y2ghCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIC8vID09PT09PT09PT09PT09PT09PT09PT0gUFJJVkFURVMgPT09PT09PT09PT09PT09PT09PT09PQorCisgICAgcHJpdmF0ZSB2b2lkIGZsdXNoKCkgeworICAgICAgICBpZiAoYVRvcCAhPSAwKSB7CisgICAgICAgICAgICBpbnQgbmV3Q291bnQgPSBhQ291bnQtYVRvcDsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYSwgYVRvcCwgYSwgMCwgbmV3Q291bnQpOworICAgICAgICAgICAgYUNvdW50ID0gbmV3Q291bnQ7CisgICAgICAgICAgICBhTGluZSArPSBhVG9wOworICAgICAgICAgICAgYVRvcCA9IDA7CisgICAgICAgIH0KKworICAgICAgICBpZiAoYlRvcCAhPSAwKSB7CisgICAgICAgICAgICBpbnQgbmV3Q291bnQgPSBiQ291bnQtYlRvcDsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYiwgYlRvcCwgYiwgMCwgbmV3Q291bnQpOworICAgICAgICAgICAgYkNvdW50ID0gbmV3Q291bnQ7CisgICAgICAgICAgICBiTGluZSArPSBiVG9wOworICAgICAgICAgICAgYlRvcCA9IDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIGludCBTVEFDS1NJWkU7CisgICAgcHJpdmF0ZSBpbnQgRVFVQUxTSVpFOworCisgICAgcHJpdmF0ZSBPYmplY3QgW10gYTsKKyAgICBwcml2YXRlIE9iamVjdCBbXSBiOworICAgIHByaXZhdGUgT2JqZWN0IGxhc3QgPSAiIjsKKyAgICBwcml2YXRlIE9iamVjdCBuZXh0ID0gIiI7CisgICAgcHJpdmF0ZSBpbnQgYUNvdW50ID0gMDsKKyAgICBwcml2YXRlIGludCBiQ291bnQgPSAwOworICAgIHByaXZhdGUgaW50IGFMaW5lID0gMTsKKyAgICBwcml2YXRlIGludCBiTGluZSA9IDE7CisgICAgcHJpdmF0ZSBpbnQgbWF4U2FtZSA9IDAsIGFUb3AgPSAwLCBiVG9wID0gMDsKKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L0luZm9EaWFsb2cuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9JbmZvRGlhbG9nLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDFiOTExMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9JbmZvRGlhbG9nLmphdmEKQEAgLTAsMCArMSw1OCBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9JbmZvRGlhbG9nLmphdmEsdiAkCisgKiAkRGF0ZTogMjAwMi8wOC8xMyAyMTo1MDo0NCAkCisgKiAkUmV2aXNpb246IDEuMiAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby50cmFuc2xpdDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC4qOworaW1wb3J0IGphdmEuYXd0Lio7CitwdWJsaWMgY2xhc3MgSW5mb0RpYWxvZyBleHRlbmRzIERpYWxvZyB7CisgICAgcHJvdGVjdGVkIEJ1dHRvbiBidXR0b247CisgICAgcHJvdGVjdGVkIFRleHRBcmVhIGFyZWE7CisgICAgcHJvdGVjdGVkIERpYWxvZyBtZTsKKyAgICBwcm90ZWN0ZWQgUGFuZWwgYm90dG9tOworICAgICAgICAKKyAgICBwdWJsaWMgVGV4dEFyZWEgZ2V0QXJlYSgpIHsKKyAgICAgICAgcmV0dXJuIGFyZWE7CisgICAgfQorICAgICAgICAKKyAgICBwdWJsaWMgUGFuZWwgZ2V0Qm90dG9tKCkgeworICAgICAgICByZXR1cm4gYm90dG9tOworICAgIH0KKyAgICAgICAgCisgICAgSW5mb0RpYWxvZyhGcmFtZSBwYXJlbnQsIFN0cmluZyB0aXRsZSwgU3RyaW5nIGxhYmVsLCBTdHJpbmcgbWVzc2FnZSkgeworICAgICAgICBzdXBlcihwYXJlbnQsIHRpdGxlLCBmYWxzZSk7CisgICAgICAgIG1lID0gdGhpczsKKyAgICAgICAgdGhpcy5zZXRMYXlvdXQobmV3IEJvcmRlckxheW91dCgpKTsKKyAgICAgICAgaWYgKGxhYmVsLmxlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgIHRoaXMuYWRkKCJOb3J0aCIsIG5ldyBMYWJlbChsYWJlbCkpOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgYXJlYSA9IG5ldyBUZXh0QXJlYShtZXNzYWdlLCA4LCA4MCwgVGV4dEFyZWEuU0NST0xMQkFSU19WRVJUSUNBTF9PTkxZKTsKKyAgICAgICAgdGhpcy5hZGQoIkNlbnRlciIsIGFyZWEpOworICAgICAgICAgICAgCisgICAgICAgIGJ1dHRvbiA9IG5ldyBCdXR0b24oIkhpZGUiKTsKKyAgICAgICAgYnV0dG9uLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgbWUuaGlkZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgYm90dG9tID0gbmV3IFBhbmVsKCk7CisgICAgICAgIGJvdHRvbS5zZXRMYXlvdXQobmV3IEZsb3dMYXlvdXQoRmxvd0xheW91dC5DRU5URVIsIDAsIDApKTsKKyAgICAgICAgYm90dG9tLmFkZChidXR0b24pOworICAgICAgICB0aGlzLmFkZCgiU291dGgiLCBib3R0b20pOworICAgICAgICB0aGlzLnBhY2soKTsKKyAgICAgICAgYWRkV2luZG93TGlzdGVuZXIobmV3IFdpbmRvd0FkYXB0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCB3aW5kb3dDbG9zaW5nKFdpbmRvd0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBtZS5oaWRlKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9UZXN0X0FyYWJpYy1MYXRpbi50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvVGVzdF9BcmFiaWMtTGF0aW4udHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlYjE5ZjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvVGVzdF9BcmFiaWMtTGF0aW4udHh0CkBAIC0wLDAgKzEsMjggQEAKK++7vyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb3B5cmlnaHQgKGMpIDE5OTktMjAwMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworIyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9UZXN0X0FyYWJpYy1MYXRpbi50eHQsdiAkCisjICREYXRlOiAyMDAyLzA3LzI2IDIwOjA5OjAxICQKKyMgJFJldmlzaW9uOiAxLjEgJAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitAVVBQRVJGSUxURVJACivZhdinINmH2Yog2KfZhNi02YHYsdipINin2YTZhdmI2K3Yr9ipICLZitmI2YbZkNmD2YjYryIg2J8KKwor2KPYs9in2LPZi9in2Iwg2KrYqti52KfZhdmEINin2YTYrdmI2KfYs9mK2Kgg2YHZgti3INmF2Lkg2KfZhNij2LHZgtin2YXYjCDZiNiq2YLZiNmFINio2KrYrtiy2YrZhiDYp9mE2KPYrdix2YEg2YjYp9mE2YXYrdin2LHZgSDYp9mE2KPYrtix2Ykg2KjYudivINij2YYg2KrZj9i52LfZiiDYsdmC2YXYpyDZhdi52YrZhtinINmE2YPZhCDZiNin2K3YryDZhdmG2YfYpy4g2YjZgtio2YQg2KfYrtiq2LHYp9i5ICLZitmI2YbZkNmD2YjYryLYjCDZg9in2YYg2YfZhtin2YMg2YXYptin2Kog2KfZhNij2YbYuNmF2Kkg2YTZhNiq2LTZgdmK2LEg2YjYqtiu2LXZiti1INmH2LDZhyDYp9mE2KPYsdmC2KfZhSDZhNmE2YXYrdin2LHZgdiMINmI2YTZhSDZitmI2KzYryDZhti42KfZhSDYqti02YHZitixINmI2KfYrdivINmK2K3YqtmI2Yog2LnZhNmJINis2YXZiti5INin2YTZhdit2KfYsdmBINin2YTYttix2YjYsdmK2KkuINmI2LnZhNmJINiz2KjZitmEINin2YTZhdir2KfZhNiMINmB2KXZhiDYp9mE2KfYqtit2KfYryDYp9mE2KPZiNix2YjYqNmKINmE2YjYrdiv2YfYjCDYp9it2KrZiNmJINin2YTYudiv2YrYryDZhdmGINin2YTYtNmB2LHYp9iqINin2YTZhdiu2KrZhNmB2Kkg2YTZiti62LfZiiDYrNmF2YrYuSDYp9mE2YTYutin2Kog2KfZhNmF2LPYqtiu2K/ZhdipINmB2Yog2KfZhNin2KrYrdin2K8uINmI2K3YqtmJINmE2Ygg2KfYudiq2KjYsdmG2Kcg2YTYutipINmI2KfYrdiv2KnYjCDZg9in2YTZhNi62Kkg2KfZhNil2YbYrNmE2YrYstmK2KnYjCDZgdil2YYg2KzYr9mI2YQg2LTZgdix2Kkg2YjYp9it2K8g2YTZhSDZitmD2YEg2YTYp9iz2KrZiti52KfYqCDYrNmF2YrYuSDYp9mE2KPYrdix2YEg2YjYudmE2KfZhdin2Kog2KfZhNiq2LHZgtmK2YUg2YjYp9mE2LHZhdmI2LIg2KfZhNmB2YbZitipINmI2KfZhNi52YTZhdmK2Kkg2KfZhNi02KfYpti52Kkg2KfZhNin2LPYqti52YXYp9mELgorCisgCisKK9mI2KrYrNiv2LEg2KfZhNmF2YTYp9it2LjYqSDYo9mGINij2YbYuNmF2Kkg2KfZhNiq2LTZgdmK2LEg2KfZhNmF2K7YqtmE2YHYqSDYqtiq2LnYp9ix2LYg2YXYuSDYqNi52LbZh9inINin2YTYqNi52LYuINmI2KjYudio2KfYsdipINij2K7YsdmJ2Iwg2YrZhdmD2YYg2KPZhiDZitiz2KrYrtiv2ZDZhSDYrNiv2YjZhNmKINi02YHYsdipINmG2YHYsyDYp9mE2LHZgtmFINmE2KrZhdir2YrZhCDZhdit2LHZgdmK2YYg2YXYrtiq2YTZgdmK2YbYjCDYo9mIINix2YLZhdmK2YYg2YXYrtiq2YTZgdmK2YYg2YTYqtmF2KvZitmEINmG2YHYsyDYp9mE2YXYrdix2YEuINmI2YTZiCDYo9iu2LDZhtinINij2Yog2KzZh9in2LIg2K3Yp9iz2YjYqNiMINmI2KjYrtin2LXYqSDYrNmH2KfYsiDYp9mE2YbYp9iv2YQgKHNlcnZlcinYjCDZgdmK2KzYqCDYo9mGINiq2YPZiNmGINmE2K/ZitmHINin2YTZgtiv2LHYqSDYudmE2Ykg2KfZhNiq2LnYp9mF2YQg2YXYuSDYudiv2K8g2YPYqNmK2LEg2YXZhiDYp9mE2LTZgdix2KfYqiDYp9mE2YXYrtiq2YTZgdip2Iwg2YjZitiq2YUg2KrYtdmF2YrZhdmHINi52YTZiSDZh9iw2Kcg2KfZhNij2LPYp9izLiDZiNmF2Lkg2LDZhNmD2Iwg2YHYudmG2K/ZhdinINiq2YXYsSDYp9mE2KjZitin2YbYp9iqINi52KjYsSDYo9mG2LjZhdipINmF2K7YqtmE2YHYqdiMINiq2YjYrNivINmH2YbYp9mDINiu2LfZiNix2Kkg2YTYttmK2KfYuSDYo9mIINiq2K3YsdmK2YEg2KjYudi2INmH2LDZhyDYp9mE2KjZitin2YbYp9iqLgorCisgCisKKyLZitmI2YbZkNmD2YjYryIg2KrYutmK2LEg2YfYsNinINmD2YTZitinICEKKwor2KrYrti12LUg2KfZhNi02YHYsdipINin2YTZhdmI2K3Yr9ipICLZitmI2YbZkNmD2YjYryIg2LHZgtmF2Kcg2YjYrdmK2K/YpyDZhNmD2YQg2YXYrdix2YEg2YHZiiDYrNmF2YrYuSDYp9mE2YTYutin2Kog2KfZhNi52KfZhNmF2YrYqdiMINmI2LDZhNmDINio2LrYtiDYp9mE2YbYuNixINi52YYg2YbZiNi5INin2YTYrdin2LPZiNioINij2Ygg2KfZhNio2LHYp9mF2Kwg2KfZhNmF2LPYqtiu2K/ZhdipLiDZiNmC2K8g2KrZhSDYqtio2YbZiiDZhdmI2KfYtdmB2KkgItmK2YjZhtmQ2YPZiNivIiDZhdmGINmC2KjZhCDZgtin2K/YqSDYp9mE2LXYp9mG2LnZitmGINmE2KPZhti42YXYqSDYp9mE2K3ZiNin2LPZitioINmB2Yog2KfZhNi52KfZhNmF2Iwg2YXYq9mEINi02LHZg9in2Kog2KLZii7YqNmKLtil2YUuIChJQk0p2Iwg2KPYqNmEIChBUFBMRSnYjCDZh9mQ2YrZktmI2YTZkNiqINio2KfZg9ix2K8gKEhld2xldHQtUGFja2FyZCkg2Iwg2YXYp9mK2YPYsdmI2LPZiNmB2KogKE1pY3Jvc29mdCnYjCDYo9mI2LHYp9mD2ZDZhCAoT3JhY2xlKSDYjCDYtdmGIChTdW4pINmI2LrZitix2YfYpy4g2YPZhdinINij2YYg2KfZhNmF2YjYp9i12YHYp9iqINmI2KfZhNmF2YLYp9mK2YrYsyDYp9mE2K3Yr9mK2KvYqSAo2YXYq9mEINmE2LrYqSDYp9mE2KjYsdmF2KzYqSAi2KzYp9mB2KciICJKQVZBIiDZiNmE2LrYqSAi2KXZg9izINil2YUg2KXZhCIgIlhNTCIg2KfZhNiq2Yog2KrYs9iq2K7Yr9mFINmE2KjYsdmF2KzYqSDYp9mE2KfZhtiq2LHZhtmK2KopINiq2KrYt9mE2Kgg2KfYs9iq2K7Yr9in2YUgItmK2YjZhtmQ2YPZiNivIi4g2LnZhNin2YjYqSDYudmE2Ykg2LDZhNmDINiMINmB2KXZhiAi2YrZiNmG2ZDZg9mI2K8iINmH2Yog2KfZhNi32LHZitmC2Kkg2KfZhNix2LPZhdmK2Kkg2YTYqti32KjZitmCINin2YTZhdmC2YrYp9izINin2YTYudin2YTZhdmKINil2YrYstmIINmh2aDZptmk2aYgIChJU08gMTA2NDYpIC4KKworIAorCivYpdmGINio2LLZiNi6INmF2YjYp9i12YHYqSAi2YrZiNmG2ZDZg9mI2K8iINmI2KrZiNmB2ZHZj9ixINin2YTYo9mG2LjZhdipINin2YTYqtmKINiq2LPYqtiu2K/ZhdmHINmI2KrYr9i52YXZh9iMINmK2LnYqtio2LEg2YXZhiDYo9mH2YUg2KfZhNin2K7Yqtix2KfYudin2Kog2KfZhNit2K/Zitir2Kkg2YHZiiDYudmI2YTZhdipINin2YTYqNix2YXYrNmK2KfYqiDZhNis2YXZiti5INin2YTZhNi62KfYqiDZgdmKINin2YTYudin2YTZhS4g2YjYpdmGINin2LPYqtiu2K/Yp9mFICLZitmI2YbZkNmD2YjYryIg2YHZiiDYudin2YTZhSDYp9mE2KfZhtiq2LHZhtmK2Kog2LPZitik2K/ZiiDYpdmE2Ykg2KrZiNmB2YrYsSDZg9io2YrYsSDZhdmC2KfYsdmG2Kkg2YXYuSDYp9iz2KrYrtiv2KfZhSDYp9mE2YXYrNmF2YjYudin2Kog2KfZhNiq2YLZhNmK2K/ZitipINmE2YTZhdit2KfYsdmBINin2YTZhdi02YHYsdipLiDZg9mF2Kcg2KPZhiDYp9iz2KrYrtiv2KfZhSAi2YrZiNmG2ZDZg9mI2K8iINiz2YrZj9mF2YPZkdmQ2YYg2KfZhNmF2KjYsdmF2Kwg2YXZhiDZg9iq2KfYqNipINin2YTYqNix2YbYp9mF2Kwg2YXYsdipINmI2KfYrdiv2KnYjCDZiNin2LPYqtiu2K/Yp9mF2Ycg2LnZhNmJINij2Yog2YbZiNi5INmF2YYg2KfZhNij2KzZh9iy2Kkg2KPZiCDYp9mE2KPZhti42YXYqdiMINmI2YTYo9mKINmE2LrYqSDYo9mIINiv2YjZhNipINmB2Yog2KfZhNi52KfZhNmFINij2YrZhtmF2Kcg2YPYp9mG2KrYjCDYr9mI2YYg2KfZhNit2KfYrNipINmE2KXYudin2K/YqSDYp9mE2KjYsdmF2KzYqSDYo9mIINil2KzYsdin2KEg2KPZiiDYqti52K/ZitmELiDZiNij2K7Zitix2KfYjCDZgdil2YYg2KfYs9iq2K7Yr9in2YUgItmK2YjZhtmQ2YPZiNivIiDYs9mK2YXZg9mGINin2YTYqNmK2KfZhtin2Kog2YXZhiDYp9mE2KfZhtiq2YLYp9mEINi52KjYsSDYp9mE2KPZhti42YXYqSDZiNin2YTYo9is2YfYstipINin2YTZhdiu2KrZhNmB2Kkg2K/ZiNmGINij2Yog2K7Yt9mI2LHYqSDZhNiq2K3YsdmK2YHZh9in2Iwg2YXZh9mF2Kcg2KrYudiv2K/YqiDYp9mE2LTYsdmD2KfYqiDYp9mE2LXYp9mG2LnYqSDZhNmE2KPZhti42YXYqSDZiNin2YTZhNi62KfYqtiMINmI2KfZhNiv2YjZhCDYp9mE2KrZiiDYqtmF2LEg2YXZhiDYrtmE2KfZhNmH2Kcg2YfYsNmHINin2YTYqNmK2KfZhtin2KouIAorCitAU0VUIFtbWzpBcmFiaWM6XSAmIFtcdTA2MDAtXHUwNkZGXV0gW+KAjlx1MDYwQ1x1MDYxQlx1MDYxRlx1MDY0MFx1MDY0Qi1cdTA2NTVcdTA2NjAtXHUwNjZDXHUwNkYwLVx1MDZGOV1dClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L1Rlc3RfR3JlZWstTGF0aW4udHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L1Rlc3RfR3JlZWstTGF0aW4udHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkYWM2YTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvVGVzdF9HcmVlay1MYXRpbi50eHQKQEAgLTAsMCArMSw3NyBAQAor77u/Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvcHlyaWdodCAoYykgMTk5OS0yMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisjIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L1Rlc3RfR3JlZWstTGF0aW4udHh0LHYgJAorIyAkRGF0ZTogMjAwMi8wNy8yNiAyMDowOTowMSAkCisjICRSZXZpc2lvbjogMS4xICQKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCivOpM65IM61zq/Ovc6xzrkgz4TOvyBVbmljb2RlPyAKKworzpcgzrrPic60zrnOus6/z4POtc67zq/OtM6xIFVuaWNvZGUgz4DPgc6/z4TOtc6vzr3Otc65IM6tzr3Osc69IM66zrHOuSDOvM6/zr3Osc60zrnOus+MIM6xz4HOuc64zrzPjCDOs865zrEgzrrOrM64zrUgz4fOsc+BzrHOus+Ezq7Pgc6xLCDOsc69zrXOvs6sz4HPhM63z4TOsSDOsc+Az4wgz4TOvyDOu861zrnPhM6/z4XPgc6zzrnOus+MIM+Dz43Pg8+EzrfOvM6xLCDOsc69zrXOvs6sz4HPhM63z4TOsSDOsc+Az4wgz4TOvyDOu86/zrPOuc+DzrzOuc66z4wsIM6xzr3Otc6+zqzPgc+EzrfPhM6xIM6xz4DPjCDPhM63zr0gzrPOu8+Oz4PPg86xLgorCivOn865IM63zrvOtc66z4TPgc6/zr3Ouc66zr/OryDPhc+Azr/Ou86/zrPOuc+Dz4TOrc+CLCDPg861IM+EzrXOu865zrrOriDOsc69zqzOu8+Fz4POtywgz4fOtc65z4HOr862zr/Ovc+EzrHOuSDOsc+AzrvPjs+CIM6xz4HOuc64zrzOv8+Nz4IuIM6Rz4DOv864zrfOus61z43Ov8+Fzr0gzrPPgc6szrzOvM6xz4TOsSDOus6xzrkgzqzOu867zr/Phc+CIM+HzrHPgc6xzrrPhM6uz4HOtc+CIM6xzr3PhM65z4PPhM6/zrnPh8+Ozr3PhM6xz4Igz4PPhM6/IM66zrHOuM6tzr3OsSDPhM6/z4XPgiDOsc+Az4wgzq3Ovc6xzr0gzrHPgc65zrjOvM+MICjOv869zr/OvM6szrbOv8+FzrzOtSDOvM6vzrEgz4TOrc+Ezr/Ouc6xIM6xzr3PhM65z4PPhM6/zrnPh86vzrEgzrrPic60zrnOus6/z4POtc67zq/OtM6xKS4gzqDPgc65zr0gz4TOt869IM61z4bOtc+Nz4HOtc+Dzrcgz4TOv8+FIFVuaWNvZGUsIM+Fz4DOrs+Bz4fOsc69IM61zrrOsc+Ezr/Ovc+EzqzOtM61z4IgzrTOuc6xz4bOv8+BzrXPhM65zrrOrc+CIM66z4nOtM65zrrOv8+DzrXOu86vzrTOtc+CLiDOm8+MzrPPiSDPgM61z4HOuc6/z4HOuc+DzrzPjs69IM68zrXOs86tzrjOv8+Fz4Igz4zOvM+Jz4IsIM+DzrUgzrrOsc68zq/OsSDOus+JzrTOuc66zr/Pg861zrvOr860zrEgzrTOtc69IM+Hz4nPgc6/z43Pg86xzr0gzrHPgc66zrXPhM6/zq8gz4fOsc+BzrHOus+Ezq7Pgc61z4I6IM67z4zOs86/z4Ugz4fOrM+BzrnOvSwgzrcgzpXPhc+Bz4nPgM6xz4rOus6uIM6Izr3Pic+Dzrcgz4fPgc61zrnOsc62z4zPhM6xzr0gz4DOu86uzrjOv8+CIM60zrnOsc+Gzr/Pgc61z4TOuc66z47OvSDOus+JzrTOuc66zr/Pg861zrvOr860z4nOvSDOs865zrEgzr3OsSDOus6xzrvPjc+IzrXOuSDPjM67zrXPgiDPhM65z4IgzrPOu8+Oz4PPg861z4Igz4TPic69IM+Hz4nPgc+Ozr0tzrzOtc67z47OvSDPhM63z4IuIM6RzrrPjM68zrEgzrrOsc65IM6zzrnOsSDOvM6vzrEgzrrOsc65IM68z4zOvc63IM6zzrvPjs+Dz4POsSwgz4zPgM+Jz4Igz4Auz4cuIM+EzrEgzpHOs86zzrvOuc66zqwsIM68zq/OsSDOus+JzrTOuc66zr/Pg861zrvOr860zrEgzrTOtc69IM61z4DOsc+BzrrOv8+Nz4POtSDOs865zrEgzr3OsSDOus6xzrvPjc+IzrXOuSDPjM67zrEgz4TOsSDOs8+BzqzOvM68zrHPhM6xLCDPg863zrzOtc6vzrEgz4PPhM6vzr7Ot8+CIM66zrHOuSDPhM61z4fOvc65zrrOrCDPg8+NzrzOss6/zrvOsSDOtc+Fz4HOtc6vzrHPgiDPh8+Bzq7Pg863z4IuCisKK86VzrrPhM+Mz4IgzrHPhc+Ezr/PjSwgzr/OuSDOus+JzrTOuc66zr/Pg861zrvOr860zrXPgiDOsc+Fz4TOrc+CIM60zrnOsc+Gz4nOvc6/z43Pg86xzr0gzrzOtc+EzrHOvs+NIM+Ezr/Phc+CLiDOiM+Ez4POuSwgzrTPjc6/IM66z4nOtM65zrrOv8+DzrXOu86vzrTOtc+CIM68z4DOv8+Bzr/Pjc+DzrHOvSDOus6szrvOu865z4PPhM6xIM69zrEgz4fPgc63z4POuc68zr/PgM6/zrnOv8+Nzr0gz4TOv869IM6vzrTOuc6/IM6xz4HOuc64zrzPjCDOs865zrEgzrTPjc6/IM60zrnOsc+Gzr/Pgc61z4TOuc66zr/Pjc+CIM+HzrHPgc6xzrrPhM6uz4HOtc+CLCDOriDOvc6xIM+Hz4HOt8+DzrnOvM6/z4DOv865zr/Pjc69IM60zrnOsc+Gzr/Pgc61z4TOuc66zr/Pjc+CIM6xz4HOuc64zrzOv8+Nz4IgzrPOuc6xIM+Ezr/OvSDOr860zrnOvyDPh86xz4HOsc66z4TOrs+BzrEuIM6azqzOuM61IM+Fz4DOv867zr/Os865z4PPhM6uz4IgKM66zrHOuSDOuc60zq/Pic+CIM61zqzOvSDOrs+EzrHOvSDOtM65zrHOus6/zrzOuc+Dz4TOrs+CKSDOrc+Az4HOtc+AzrUgzr3OsSDPhc+Azr/Pg8+EzrfPgc6vzrbOtc65IM+AzrvOrs64zr/PgiDOtM65zrHPhs6/z4HOtc+EzrnOus+Ozr0gzrrPic60zrnOus6/z4POtc67zq/OtM+Jzr3OhyDPhM6xz4XPhM+Mz4fPgc6/zr3OsSDOus6szrjOtSDPhs6/z4HOrCDPgM6/z4UgzrTOtc60zr/OvM6tzr3OsSDOvM61z4TOsc+Gzq3Pgc6/zr3PhM6xzr0gzrzOtc+EzrHOvs+NIM60zrnOsc+Gzr/Pgc61z4TOuc66z47OvSDOus+JzrTOuc66zr/Pg861zrvOr860z4nOvSDOriDOu861zrnPhM6/z4XPgc6zzrnOus+Ozr0gz4PPhc+Dz4TOt868zqzPhM+Jzr0sIM+EzrEgzrTOtc60zr/OvM6tzr3OsSDOsc+Fz4TOrCDOus65zr3OtM+Nzr3Otc+FzrHOvSDOvc6xIM6xzrvOu86/zrnPic64zr/Pjc69LgorCivOpM6/IFVuaWNvZGUgzrHOu867zqzOts61zrkgzrHPhc+Ezq4gz4TOt869IM66zrHPhM6sz4PPhM6xz4POtyEKK86kzr8gVW5pY29kZSDPgM+Bzr/PhM61zq/Ovc61zrkgzq3Ovc6xzr0gzrzOv869zrHOtM65zrrPjCDOsc+BzrnOuM68z4wgzrPOuc6xIM66zqzOuM61IM+HzrHPgc6xzrrPhM6uz4HOsSwgzrHOvc61zr7OrM+Bz4TOt8+EzrEgzrHPgM+MIM+Ezr8gzrvOtc65z4TOv8+Fz4HOs865zrrPjCDPg8+Nz4PPhM63zrzOsSwgzrHOvc61zr7OrM+Bz4TOt8+EzrEgzrHPgM+MIM+Ezr8gzrvOv86zzrnPg868zrnOus+MLCDOsc69zrXOvs6sz4HPhM63z4TOsSDOsc+Az4wgz4TOt869IM6zzrvPjs+Dz4POsS4gzqTOt869IM66z4nOtM65zrrOv8+DzrXOu86vzrTOsSBVbmljb2RlIM6tz4fOv8+Fzr0gzrHPg8+AzrHPg864zrXOryDOus6/z4HPhc+GzrHOr86/zrkgz4DOsc+BzqzOs86/zr3PhM61z4Igz4TOv8+FIM+Hz47Pgc6/z4Ugz4TPic69IM67zr/Os865z4POvM65zrrPjs69IM+Mz4DPic+CIM6/zrk6IEFwcGxlLCBIUCwgSUJNLCBKdXN0U3lzdGVtLCBNaWNyb3NvZnQsIE9yYWNsZSwgU0FQLCBTdW4sIFN5YmFzZSwgVW5pc3lzIM66zrHOuSDPgM6/zrvOu86/zq8gzqzOu867zr/OuS4gzqTOvyBVbmljb2RlIM6xz4DOsc65z4TOv8+Nzr0gz4DOv867zrvOrc+CIM+Dz43Os8+Hz4HOv869zrXPgiDPhM+Fz4DOv8+Azr/Ouc6uz4POtc65z4Igz4zPgM+Jz4Igzr/OuTogWE1MLCBKYXZhLCBFQ01BU2NyaXB0IChKYXZhU2NyaXB0KSwgTERBUCwgQ09SQkEgMy4wLCBXTUwsIM66Ls67z4AuLCDOus6xzrkgzrXOr869zrHOuSDOtyDOtc+Azq/Pg863zrzOtyDOvM6tzrjOv860zr/PgiDOtc+GzrHPgc68zr/Os86uz4Igz4TOt8+CIM+Ez4XPgM6/z4DOv86vzrfPg863z4IgSVNPL0lFQyAxMDY0Ni4gzqXPgM6/z4PPhM63z4HOr862zrXPhM6xzrkgzrHPgM+MIM+Azr/Ou867zqwgzrvOtc65z4TOv8+Fz4HOs865zrrOrCDPg8+Fz4PPhM6uzrzOsc+EzrEsIM+MzrvOv8+Fz4Igz4TOv8+Fz4Igz4PPjc+Hz4HOv869zr/Phc+CIM+AzrXPgc65zrfOs863z4TOrc+CIM6UzrnOsc60zrnOus+Ez43Ov8+FLCDOus6xzrkgz4DOv867zrvOrCDOrM67zrvOsSDPgM+Bzr/Pis+Mzr3PhM6xLiDOlyDOtc68z4bOrM69zrnPg863IM+EzrfPgiDOus+JzrTOuc66zr/Pg861zrvOr860zrHPgiBVbmljb2RlLCDOus6xzrkgzrcgzrTOuc6xzrjOtc+DzrnOvM+Mz4TOt8+EzrEgzrXPgc6zzrHOu861zq/Pic69IM+Azr/PhSDOvc6xIM+EzrfOvSDPhc+Azr/Pg8+EzrfPgc6vzrbOv8+Fzr0gzrXOr869zrHOuSDOsc+Az4wgz4TOuc+CIM+DzrfOvM6xzr3PhM65zrrPjM+EzrXPgc61z4IgzrXOvs61zrvOr86+zrXOuc+CIM+EzrfPgiDPgM+Bz4zPg8+GzrHPhM63z4Igz4TOtc+Hzr3Ov867zr/Os86vzrHPgiDOu86/zrPOuc+DzrzOuc66z47OvS4KKworzpcgzrXOvc+Dz4nOvM6sz4TPic+Dzrcgz4TOv8+FIFVuaWNvZGUgz4POtSDOtc+GzrHPgc68zr/Os86tz4Igz4DOtc67zqzPhM63Lc60zrnOsc66zr/OvM65z4PPhM6uIM6uICJtdWx0aS10aWVyZWQiIM+Az4HOv8+Dz4bOrc+BzrXOuSDPg863zrzOsc69z4TOuc66zq3PgiDOv865zrrOv869zr/OvM6vzrXPgiDPg861IM+Dz4fOrc+DzrcgzrzOtSDPhM65z4Igz4nPgiDPhM+Oz4HOsSDPhc+AzqzPgc+Hzr/Phc+DzrXPgiDOus+JzrTOuc66zr/Pg861zrvOr860zrXPgi4gzqfOrM+BzrnPgiDPg8+Ezr8gVW5pY29kZSDOrc69zrEgzrrOsc65IM68z4zOvc6/IM+Az4HOv8+Kz4zOvSDOriDOvM6vzrEgzrrOsc65IM68z4zOvc63IM+Ezr/PgM6/zrjOtc+Dzq/OsSDOlM65zrHOtM65zrrPhM+Nzr/PhSDOvM+Azr/Pgc61zq8gzr3OsSDOtc+AzrnOus6/zrnOvc+Jzr3Otc6vIM68zrUgzrTOuc6sz4bOv8+BzrEgzrvOtc65z4TOv8+Fz4HOs865zrrOrCDPg8+Fz4PPhM6uzrzOsc+EzrEsIM+DzrUgzrTOuc6sz4bOv8+BzrXPgiDOs867z47Pg8+DzrXPgiDOus6xzrkgz4fPjs+BzrXPgiwgz4fPic+Bzq/PgiDPhM63zr0gzrHOvc6szrPOus63IM61z4DOsc69zrHPgM+Bzr/Os8+BzrHOvM68zrHPhM65z4POvM6/z40uIM6Tzq/Ovc61z4TOsc65IM6tz4TPg865IM60z4XOvc6xz4TOriDOtyDOvM61z4TOsc+Gzr/Pgc6sIM60zrXOtM6/zrzOrc69z4nOvSDOsc69zqzOvM61z4POsSDPg861IM+AzrvOrs64zr/PgiDOtM65zrHPhs6/z4HOtc+EzrnOus+Ozr0gz4PPhc+Dz4TOt868zqzPhM+Jzr0gzrTOr8+Hz4nPgiDOus6vzr3OtM+Fzr3OvyDOsc67zrvOv86vz4nPg863z4IuCisKK86jz4fOtc+EzrnOus6sIM68zrUgz4TOvyDOms6/zr3Pg8+Mz4HPhM65zr/Phc68IFVuaWNvZGUKK1TOvyDOms6/zr3Pg8+Mz4HPhM65zr/Phc68IFVuaWNvZGUgzrXOr869zrHOuSDOrc69zrHPgiDOus6/zrnOvc+Jz4bOtc67zq7PgiDOv8+BzrPOsc69zrnPg868z4zPgs6HIM65zrTPgc+NzrjOt866zrUgzrPOuc6xIM69zrEgzrHOvc6xz4DPhM+Nzr7Otc65LCDOvc6xIM61z4DOtc66z4TOtc6vzr3Otc65IM66zrHOuSDOvc6xIM68zrXPhM6xzrTPjs+DzrXOuSDPhM63zr0gz4fPgc6uz4POtyDPhM63z4IgzrrPic60zrnOus6/z4POtc67zq/OtM6xz4IgVW5pY29kZSDPgM6/z4UgzrrOsc64zr/Pgc6vzrbOtc65IM+EzrfOvSDOsc69zrHPgM6xz4HOrM+Dz4TOsc+DzrcgzrrOtc65zrzOrc69zr/PhSDPg861IM+Dz43Os8+Hz4HOv869zrEgzrvOv86zzrnPg868zrnOus6sIM+Az4HOv8+Kz4zOvc+EzrEgzrrOsc65IM+Ez4XPgM6/z4DOv865zq7Pg861zrnPgi4gzpzOtc6zzqzOu86/z4IgzrHPgc65zrjOvM+Mz4IgzrXPhM6xzrnPgc61zrnPjs69IM66zrHOuSDOv8+BzrPOsc69zrnPg868z47OvSDPhM63z4IgzrTOuc61zrjOvc6/z43PgiDOss65zr/OvM63z4fOsc69zq/Osc+CIM+Fz4DOv867zr/Os865z4PPhM+Ozr0gzrrOsc65IM67zr/Os865z4POvM65zrrPjs69IM61zq/Ovc6xzrkgzrzOrc67zrcgz4TOv8+FIM6azr/Ovc+Dz4zPgc+EzrnOv8+FzrwgVW5pY29kZS4gzqTOvyDOms6/zr3Pg8+Mz4HPhM65zr/Phc68IM+Hz4HOt868zrHPhM6/zrTOv8+EzrXOr8+EzrHOuSDOvM+Mzr3OvyDOsc+Az4wgz4TOuc+CIM+Dz4XOvc60z4HOv868zq3PgiDPhM+Jzr0gzrzOtc67z47OvSDPhM6/z4UuIM6czq3Ou86/z4Igz4TOv8+FIM66zr/Ovc+Dz4zPgc+EzrnOv8+FzrwgVW5pY29kZSDOvM+Azr/Pgc61zq8gzr3OsSDOs86vzr3Otc65IM6/zrnOv8+DzrTOrs+Azr/PhM61ICjOv8+BzrPOsc69zrnPg868z4zPgiwgzrXPhM6xzrnPgc61zq/OsSDOriDOuc60zrnPjs+EzrfPgiwgzr/PgM6/z4XOtM6uz4DOv8+EzrUgz4PPhM6/zr0gzrrPjM+DzrzOvykgz4DOv8+FIM69zrEgz4XPgM6/z4PPhM63z4HOr862zrXOuSDPhM63zr0gzrrPic60zrnOus6/z4POtc67zq/OtM6xIFVuaWNvZGUgzrrOsc65IM69zrEgzrXPgM65zrjPhc68zrXOryDOvc6xIM+Dz4XOvc60z4HOrM68zrXOuSDPg8+EzrfOvSDOtc+Azq3Ous+EzrHPg863IM66zrHOuSDPg8+EzrfOvSDOtc+GzrHPgc68zr/Os86uIM+EzrfPgi4KKworzpPOuc6xIM+AzrXPgc6xzrnPhM6tz4HPiSDPgM67zrfPgc6/z4bOv8+Bzq/Otc+CLCDOss67zq3PgM61IM+EzrnPgiDOtc6+zq7PgiDOuc+Dz4TOv8+DzrXOu86vzrTOtc+COiDOk867z4nPg8+DzqzPgc65LCDOlM61zq/Os868zrHPhM6xIM+Az4HOv8+Kz4zOvc+Ez4nOvSDPg8+FzrzOss6xz4TPjs69IM68zrUgz4TOvyBVbmljb2RlLCDOpM61z4fOvc65zrrOriDOlc65z4POsc6zz4nOs86uIM66zrHOuSDOp8+Bzq7Pg865zrzOtc+CIM+AzrfOs86tz4Igz4DOu863z4HOv8+Gzr/Pgc65z47OvS4KKworKEFOQ0lFTlQpCisKK+G8hM69zrTPgc6xIM68zr/OuSDhvJTOvc69zrXPgM61LCDOvM6/4b+mz4POsSwgz4DOv867z43PhM+Bzr/PgM6/zr0sIOG9g8+CIM68zqzOu86xIM+Azr/Ou8674b2wCivPgM67zqzOs8+HzrjOtywg4byQz4DOteG9tiDOpM+Bzr/Or863z4Ig4byxzrXPgeG9uM69IM+Az4TOv867zq/Otc64z4HOv869IOG8lM+AzrXPgc+DzrXOvToKK8+Azr/Ou8674b+2zr0gzrTigJkg4byAzr3OuM+Bz47PgM+Jzr0g4by0zrTOtc69IOG8hM+Dz4TOtc6xIM66zrHhvbYgzr3PjM6/zr0g4byUzrPOvc+JLAorz4DOv867zrvhvbAgzrTigJkg4b2FIM6z4oCZIOG8kM69IM+Az4zOvc+E4b+zIM+AzqzOuM61zr0g4byEzrvOs861zrEg4b2Dzr0gzrrOsc+E4b2wIM64z4XOvM+Mzr0sCivhvIDPgc69z43OvM61zr3Ov8+CIOG8pc69IM+EzrUgz4jPhc+H4b20zr0gzrrOseG9tiDOvc+Mz4PPhM6/zr0g4byRz4TOsc6vz4HPic69Lgor4byAzrvOu+KAmSDOv+G9kM604oCZIOG9o8+CIOG8kc+EzqzPgc6/z4XPgiDhvJDPgc+Bz43Pg86xz4TOvywg4byxzq3OvM61zr3PjM+CIM+AzrXPgToKK86x4b2Qz4Thv7bOvSDOs+G9sM+BIM+Dz4bOtc+Ezq3PgeG/g8+DzrnOvSDhvIDPhM6xz4POuM6xzrvOr+G/g8+DzrnOvSDhvYTOu86/zr3PhM6/LAorzr3Ors+AzrnOv865LCDOv+G8syDOus6xz4ThvbAgzrLOv+G/ps+CIOG9mc+AzrXPgc6vzr/Ovc6/z4Ig4byozrXOu86vzr/Ouc6/CivhvKTPg864zrnOv869OiDOseG9kM+E4b2wz4Eg4b2BIM+Ezr/hv5bPg865zr0g4byAz4bOtc6vzrvOtc+Ezr8gzr3PjM+Dz4TOuc68zr/OvSDhvKbOvM6xz4EuCivPhOG/ts69IOG8gc68z4zOuM61zr0gzrPOtSwgzrjOtc6sLCDOuM+NzrPOsc+EzrXPgSDOlM65z4zPgiwgzrXhvLDPgOG9siDOus6x4b22IOG8oc684b+Wzr0uCisqCivhvJTOvc644oCZIOG8hM67zrvOv865IM684b2yzr0gz4DOrM69z4TOtc+CLCDhvYXPg86/zrkgz4bPjc6zzr/OvSDOseG8sM+A4b26zr0g4b2EzrvOtc64z4HOv869LAorzr/hvLTOus6/zrkg4byUz4POsc69LCDPgM+MzrvOtc68z4zOvSDPhM61IM+AzrXPhs61z4XOs8+Mz4TOtc+CIOG8oM604b2yIM64zqzOu86xz4PPg86xzr06CivPhOG9uM69IM604oCZIM6/4by2zr/OvSDOvc+Mz4PPhM6/z4UgzrrOtc+Hz4HOt868zq3Ovc6/zr0g4bygzrThvbIgzrPPhc69zrHOuc664b24z4IKK869z43OvM+Gzrcgz4DPjM+Ezr3OueKAmSDhvJTPgc+FzrrOtSDOms6xzrvPhc+I4b28IM604b+WzrEgzrjOtc6sz4nOvQor4byQzr0gz4PPgM6tz4PPg865IM6zzrvOsc+Gz4XPgc6/4b+Wz4POuSwgzrvOuc67zrHOuc6/zrzOrc69zrcgz4DPjM+DzrnOvSDOteG8ts69zrHOuS4KK+G8gM67zrvigJkg4b2Fz4TOtSDOtOG9tCDhvJTPhM6/z4Ig4bymzrvOuM61IM+AzrXPgc65z4DOu86/zrzOrc69z4nOvSDhvJDOvc65zrHPhc+E4b+2zr0sCivPhOG/tyDOv+G8sSDhvJDPgM61zrrOu8+Oz4POsc69z4TOvyDOuM61zr/hvbYgzr/hvLbOus+Mzr3OtM61IM69zq3Otc+DzrjOsc65CivOteG8sM+CIOG8uM64zqzOus63zr0sIM6/4b2QzrTigJkg4byUzr3OuM6xIM+AzrXPhs+FzrPOvM6tzr3Ov8+CIOG8ps61zr0g4byAzq3OuM67z4nOvQorzrrOseG9tiDOvM61z4ThvbAgzr/hvLfPg865IM+Gzq/Ou86/zrnPg865LiDOuM61zr/hvbYgzrTigJkg4byQzrvOrc6xzrnPgc6/zr0g4byFz4DOsc69z4TOtc+CCivOvc+Mz4PPhs65IM6gzr/Pg861zrnOtM6sz4nOvc6/z4I6IOG9gSDOtOKAmSDhvIDPg8+AzrXPgc+H4b2yz4IgzrzOtc69zq3Osc65zr3Otc69CivhvIDOvc+EzrnOuM6t4b+zIOG9iM60z4XPg+G/hs65IM+AzqzPgc6/z4Ig4byjzr0gzrPOseG/ls6xzr0g4byxzrrOrc+DzrjOsc65LgorKgor4byAzrvOu+KAmSDhvYEgzrzhvbLOvSDOkeG8sM64zq/Ov8+AzrHPgiDOvM61z4TOtc66zq/Osc64zrUgz4TOt867z4zOuOKAmSDhvJDPjM69z4TOsc+CLAorzpHhvLDOuM6vzr/PgM6xz4Igz4TOv+G9tiDOtM65z4fOuOG9sCDOtM61zrTOsc6vzrHPhM6xzrksIOG8lM+Dz4fOsc+Ezr/OuSDhvIDOvc60z4Hhv7bOvSwKK86/4byxIM684b2yzr0gzrTPhc+Dzr/OvM6tzr3Ov8+FIOG9mc+AzrXPgc6vzr/Ovc6/z4Igzr/hvLEgzrTigJkg4byAzr3Ouc+Mzr3PhM6/z4IsCivhvIDOvc+EzrnPjM+Jzr0gz4TOsc+Nz4HPic69IM+EzrUgzrrOseG9tiDhvIDPgc69zrXOueG/ts69IOG8kc66zrHPhM+MzrzOss63z4IuCivhvJTOvc644oCZIOG9hSDOs+KAmSDhvJDPhM6tz4HPgM61z4TOvyDOtM6xzrnPhOG9tiDPgM6xz4HOrs68zrXOvc6/z4I6IM6/4byxIM604b2yIM604b20IOG8hM67zrvOv865CivOls63zr3hvbjPgiDhvJDOveG9tiDOvM61zrPOrM+Bzr/Ouc+DzrnOvSDhvYjOu8+FzrzPgM6vzr/PhSDhvIHOuM+Bz4zOv865IOG8ps+DzrHOvS4KK8+Ezr/hv5bPg865IM604b2yIM68z43OuM+Jzr0g4bymz4HPh861IM+AzrHPhOG9tM+BIOG8gM69zrTPgeG/ts69IM+EzrUgzrjOteG/ts69IM+EzrU6CivOvM69zq7Pg86xz4TOvyDOs+G9sM+BIM66zrHPhOG9sCDOuM+FzrzhvbjOvSDhvIDOvM+NzrzOv869zr/PgiDOkeG8sM6zzq/Pg864zr/Ouc6/LAorz4TPjM69IOG/peKAmSDhvIjOs86xzrzOtc68zr3Ov869zq/OtM63z4Igz4TOt867zrXOus67z4XPhOG9uM+CIOG8lM66z4TOsc694oCZIOG9iM+Bzq3Pg8+EzrfPgjoKK8+Ezr/hv6Yg4b2FIM6z4oCZIOG8kM+AzrnOvM69zrfPg864zrXhvbbPgiDhvJTPgM614oCZIOG8gM64zrHOvc6sz4TOv865z4POuSDOvM61z4TOt8+NzrTOsToKKyoKK+KAnOG9oiDPgM+Mz4DOv865LCDOv+G8t86/zr0gzrTOriDOvc+FIM64zrXOv+G9us+CIM6yz4HOv8+Ezr/hvbYgzrHhvLDPhM65z4zPic69z4TOsc65Ogor4byQzr4g4byhzrzOrc+Jzr0gzrPOrM+BIM+GzrHPg865IM66zqzOuuKAmSDhvJTOvM68zrXOvc6xzrksIM6/4byxIM604b2yIM66zrHhvbYgzrHhvZDPhM6/4b22CivPg8+G4b+Hz4POuc69IOG8gM+EzrHPg864zrHOu86v4b+Dz4POuc69IOG9kc+A4b2yz4EgzrzPjM+Bzr/OvSDhvITOu86zzrXigJkg4byUz4fOv8+Fz4POuc69LAor4b2hz4IgzrrOseG9tiDOveG/ps69IM6R4by0zrPOuc+DzrjOv8+CIOG9kc+A4b2yz4EgzrzPjM+Bzr/OvSDhvIjPhM+BzrXOr8yIzrTOsc6/CivOs+G/hs684oCZIOG8hM67zr/Ph86/zr0gzrzOvc63z4PPhM6uzr0sIM+E4b24zr0gzrTigJkg4byUzrrPhM6xzr3OtSDOvc6/z4PPhM6uz4POsc69z4TOsSwKK8614bywzrThvbzPgiDOseG8sM+A4b26zr0g4b2EzrvOtc64z4HOv869LCDhvJDPgM614b22IM+Az4HPjCDOv+G8sSDOteG8tM+Azr/OvM61zr0g4byhzrzOteG/ls+CLAor4byZz4HOvM61zq/Osc69IM+Azq3OvM+IzrHOvc+EzrXPgiwg4byQz43Pg866zr/PgM6/zr0g4byAz4HOs861z4rPhs+Mzr3PhM63zr0sCivOvM6uz4TigJkgzrHhvZDPhOG9uM69IM66z4TOtc6vzr3Otc65zr0gzrzOrs+EzrUgzrzOvc6szrHPg864zrHOuSDhvITOus6/zrnPhM65zr06CivhvJDOuiDOs+G9sM+BIOG9iM+Bzq3Pg8+EzrHOvyDPhM6vz4POuc+CIOG8lM+Dz4POtc+EzrHOuSDhvIjPhM+BzrXOr8yIzrTOsc6/LAor4b2Bz4DPgM+Mz4TigJkg4byCzr0g4byhzrLOrs+D4b+DIM+EzrUgzrrOseG9tiDhvKfPgiDhvLHOvM61zq/Pgc61z4TOsc65IM6x4by0zrfPgi4KK+G9o8+CIOG8lM+GzrHOuOKAmSDhvJnPgc68zrXOr86xz4IsIOG8gM67zrvigJkgzr/hvZAgz4bPgc6tzr3Osc+CIM6R4bywzrPOr8+DzrjOv865zr8KK8+AzrXhv5bOuOKAmSDhvIDOs86xzrjhvbAgz4bPgc6/zr3Orc+Jzr06IM694b+mzr0gzrTigJkg4byBzrjPgc+MzrEgz4DOrM69z4TigJkg4byAz4DOrc+EzrnPg861zr0u4oCdCisKK0BTRVQgW1tbOkdyZWVrOl0mW1x1MDM3MC1cdTAzRTEgXHUwM0YwLVx1MDNGRl1dIFtcOi07P1x1MDBCN1x1MDM3RVx1MDM4N11dClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L1Rlc3RfSGFuLUxhdGluLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9UZXN0X0hhbi1MYXRpbi50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmQ0ODA2NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9UZXN0X0hhbi1MYXRpbi50eHQKQEAgLTAsMCArMSwzMCBAQAor77u/Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvcHlyaWdodCAoYykgMTk5OS0yMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisjIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L1Rlc3RfSGFuLUxhdGluLnR4dCx2ICQKKyMgJERhdGU6IDIwMDIvMDcvMjYgMjA6MDk6MDEgJAorIyAkUmV2aXNpb246IDEuMSAkCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0BVUFBFUkZJTFRFUkAKK+S7gOS5iOaYr1VuaWNvZGUo57uf5LiA56CBKT8KK1VuaWNvZGXnu5nmr4/kuKrlrZfnrKbmj5DkvpvkuobkuIDkuKrllK/kuIDnmoTmlbDlrZfvvIwKK+S4jeiuuuaYr+S7gOS5iOW5s+WPsO+8jAor5LiN6K665piv5LuA5LmI56iL5bqP77yMCivkuI3orrrmmK/ku4DkuYjor63oqIDjgIIKKwor5Z+65pys5LiK77yM6K6h566X5py65Y+q5piv5aSE55CG5pWw5a2X44CC5a6D5Lus5oyH5a6a5LiA5Liq5pWw5a2X77yM5p2l5YKo5a2Y5a2X5q+N5oiW5YW25LuW5a2X56ym44CC5Zyo5Yib6YCgVW5pY29kZeS5i+WJje+8jOacieaVsOeZvuenjeaMh+Wumui/meS6m+aVsOWtl+eahOe8lueggeezu+e7n+OAguayoeacieS4gOS4que8lueggeWPr+S7peWMheWQq+i2s+Wkn+eahOWtl+espu+8muS+i+Wmgu+8jOWNleWNleasp+W3nuWFseWQjOS9k+WwsemcgOimgeWlveWHoOenjeS4jeWQjOeahOe8lueggeadpeWMheaLrOaJgOacieeahOivreiogOOAguWNs+S9v+aYr+WNleS4gOenjeivreiogO+8jOS+i+WmguiLseivre+8jOS5n+ayoeacieWTquS4gOS4que8lueggeWPr+S7pemAgueUqOS6juaJgOacieeahOWtl+avje+8jOagh+eCueespuWPt++8jOWSjOW4uOeUqOeahOaKgOacr+espuWPt+OAggorCivov5nkupvnvJbnoIHns7vnu5/kuZ/kvJrkupLnm7jlhrLnqoHjgILkuZ/lsLHmmK/or7TvvIzkuKTnp43nvJbnoIHlj6/og73kvb/nlKjnm7jlkIznmoTmlbDlrZfku6PooajkuKTkuKrkuI3lkIznmoTlrZfnrKbvvIzmiJbkvb/nlKjkuI3lkIznmoTmlbDlrZfku6Pooajnm7jlkIznmoTlrZfnrKbjgILku7vkvZXkuIDlj7DnibnlrprnmoTorqHnrpfmnLoo54m55Yir5piv5pyN5Yqh5ZmoKemDvemcgOimgeaUr+aMgeiuuOWkmuS4jeWQjOeahOe8luegge+8jOS9huaYr++8jOS4jeiuuuS7gOS5iOaXtuWAmeaVsOaNrumAmui/h+S4jeWQjOeahOe8lueggeaIluW5s+WPsOS5i+mXtO+8jOmCo+S6m+aVsOaNruaAu+S8muacieaNn+Wdj+eahOWNsemZqeOAggorCitVbmljb2Rl5q2j5Zyo5pS55Y+Y5omA5pyJ6L+Z5LiA5YiH77yBCitVbmljb2Rl57uZ5q+P5Liq5a2X56ym5o+Q5L6b5LqG5LiA5Liq5ZSv5LiA55qE5pWw5a2X77yM5LiN6K665piv5LuA5LmI5bmz5Y+w77yM5LiN6K665piv5LuA5LmI56iL5bqP77yM5LiN6K665LuA5LmI6K+t6KiA44CCVW5pY29kZeagh+WHhuW3sue7j+iiq+i/meS6m+W3peS4mueVjOeahOmihuWvvOS7rOaJgOmHh+eUqO+8jOS+i+Wmgu+8mkFwcGxlLCBIUCwgSUJNLCBKdXN0U3lzdGVtLCBNaWNyb3NvZnQsIE9yYWNsZSwgU0FQLCBTdW4sIFN5YmFzZSwgVW5pc3lz5ZKM5YW25a6D6K645aSa5YWs5Y+444CC5pyA5paw55qE5qCH5YeG6YO96ZyA6KaBVW5pY29kZe+8jOS+i+WmglhNTCwgSmF2YSwgRUNNQVNjcmlwdCAoSmF2YVNjcmlwdCksIExEQVAsIENPUkJBIDMuMCwgV01M562J562J77yM5bm25LiU77yMVW5pY29kZeaYr+WunueOsElTTy9JRUMgMTA2NDbnmoTmraPop4TmlrnlvI/jgILorrjlpJrmk43kvZzns7vnu5/vvIzmiYDmnInmnIDmlrDnmoTmtY/op4jlmajlkozorrjlpJrlhbbku5bkuqflk4Hpg73mlK/mjIHlroPjgIJVbmljb2Rl5qCH5YeG55qE5Ye6546w5ZKM5pSv5oyB5a6D5bel5YW355qE5a2Y5Zyo77yM5piv6L+R5p2l5YWo55CD6L2v5Lu25oqA5pyv5pyA6YeN6KaB55qE5Y+R5bGV6LaL5Yq/44CCCisKK+WwhlVuaWNvZGXkuI7lrqLmiLfmnI3liqHlmajmiJblpJrlsYLlupTnlKjnqIvluo/lkoznvZHnq5nnu5PlkIjvvIzmr5Tkvb/nlKjkvKDnu5/lrZfnrKbpm4boioLnnIHotLnnlKjjgIJVbmljb2Rl5L2/5Y2V5LiA6L2v5Lu25Lqn5ZOB5oiW5Y2V5LiA572R56uZ6IO95aSf6LSv56m/5aSa5Liq5bmz5Y+w77yM6K+t6KiA5ZKM5Zu95a6277yM6ICM5LiN6ZyA6KaB6YeN5bu644CC5a6D5Y+v5bCG5pWw5o2u5Lyg6L6T5Yiw6K645aSa5LiN5ZCM55qE57O757uf77yM6ICM5peg5o2f5Z2P44CCCisKK+WFs+S6jlVuaWNvZGXlrabmnK/lrabkvJoKK1VuaWNvZGXlrabmnK/lrabkvJrmmK/kuIDkuKrpnZ7nm4jliKnnmoTnu4Tnu4fvvIzmmK/kuLrlj5HlsZXvvIzmianlsZXlkozmjqjlub/kvb/nlKhVbmljb2Rl5qCH5YeG6ICM5bu656uL55qE77yMVW5pY29kZeWtpuacr+WtpuS8muiuvueri+S6hueOsOS7o+i9r+S7tuS6p+WTgeWSjOagh+WHhuaWh+acrOeahOihqOekuuazleOAguWtpuacr+WtpuS8mueahOS8muWRmOS7o+ihqOS6huW5v+azm+mihuWfn+eahOiuoeeul+acuuWSjOi1hOiur+W3peS4mueahOWFrOWPuOWSjOe7hOe7h+OAguWtpuacr+WtpuS8muWPqueUseS8muWRmOaPkOS+m+i1hOmHkeOAglVuaWNvZGXlrabmnK/lrabkvJrnmoTkvJrlkZjotYTmoLzlvIDmlL7nu5nkuJbnlYzkuIrku7vkvZXmlK/mjIFVbmljb2Rl5qCH5YeG5ZKM5biM5pyb5Y2P5Yqp5YW25omp5bGV5ZKM5omn6KGM55qE57uE57uH5Y+K5Liq5Lq644CCCisKK+assuefpeabtOWkmuS/oeaBr++8jOivt+WPgumYheacr+ivreivjeaxh+ihqO+8jFVuaWNvZGXkuqflk4HmoLfmnKzvvIzmioDmnK/nroDku4vlkozlj4LogIPotYTmlpnjgIIKKworQ2hpbmVzZSB0cmFuc2xhdGlvbiBieSAg6buO5ZyL54+NLCBYZXJveApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9UZXN0X0hlYnJldy1MYXRpbi50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvVGVzdF9IZWJyZXctTGF0aW4udHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliYmU5MTQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvVGVzdF9IZWJyZXctTGF0aW4udHh0CkBAIC0wLDAgKzEsMzAgQEAKK++7vyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb3B5cmlnaHQgKGMpIDE5OTktMjAwMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworIyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9UZXN0X0hlYnJldy1MYXRpbi50eHQsdiAkCisjICREYXRlOiAyMDAyLzA3LzI2IDIwOjA5OjAxICQKKyMgJFJldmlzaW9uOiAxLjEgJAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitAVVBQRVJGSUxURVJACivXnteUINeW15Qg15nXldeg15nXp9eV15MgKFVuaWNvZGUpPwor15nXldeg15nXp9eV15Mg157Xp9em15Qg157Xodek16gg15nXmdeX15XXk9eZINec15vXnCDXqteVLCAKK9ec15Ag157Xqdeg15Qg16LXnCDXkNeZ15bXlSDXpNec15jXpNeV16jXnteULCAKK9ec15Ag157Xqdeg15Qg15HXkNeZ15bXlSDXqteV15vXoNeZ16osIAor15XXnNeQINee16nXoNeUINeR15DXmdeW15Ug16nXpNeULgorCivXkdeQ15XXpNefINeR16HXmdeh15ksINee15fXqdeR15nXnSDXoteV16HXp9eZ150g16jXpyDXkdee16HXpNeo15nXnS4g15TXnSDXnteQ15fXodeg15nXnSDXkNeV16rXmdeV16og15XXqteV15XXmdedINeQ15fXqNeZ150g16LXnC3XmdeT15kg15TXp9em15DXqiDXnteh16TXqCDXnNeb15wg15DXl9eTINee15TXnS4g15HXmNeo150g15TXldee16bXkCDXlNeZ15XXoNeZ16fXldeTLCDXlNeZ15Ug157XkNeV16og157Xoteo15vXldeqINen15nXk9eV15Mg16nXldeg15XXqiDXnNeU16fXpteQ16og15TXnteh16TXqNeZ150g15TXnNec15UuINeQ16Mg15zXkCDXkNeX16og157XlNefINeZ15vXnNeUINec15TXm9eZ15wg15vXnteV16og16rXldeV15nXnSDXnteh16TXp9eqLiDXnNeT15XXktee15A6INeo16cg15zXkNeZ15fXldeTINeU15DXmdeo15XXpNeQ15kg16DXk9eo16nXmdedINeb157XlCDXodeV15LXmSDXp9eZ15PXldeT15nXnSDXqdeV16DXmdedINei15wg157XoNeqINec15vXodeV16og15DXqiDXm9ecINeU16nXpNeV16og15TXnteT15XXkdeo15XXqiDXkdeVLiDXmdeq15nXqNeUINee15bXkNeqINeQ16Mg15zXqdek15Qg15HXldeT15PXqiwg15vXnteVINeQ16DXktec15nXqiDXnNee16nXnCwg15zXkCDXlNeZ15Qg15PXmSDXkdee16LXqNeb16og16fXmdeT15XXkyDXkNeX16og15HXoteR15XXqCDXm9ecINeU15DXldeq15nXldeqLCDXodeZ157XoNeZINeU16TXmdeh15XXpyDXldeU16HXntec15nXnSDXlNeY15vXoNeZ15nXnSDXqdeR16nXmdee15XXqSDXqdeV15jXoy4gCisKK9ee16LXqNeb15XXqiDXp9eZ15PXldeTINeQ15zXlSDXkNejINeh15XXqteo15XXqiDXlteVINeQ16og15bXlS4g15vXnNeV157XqCwg16nXoNeZINen15nXk9eV15PXmdedINeZ15vXldec15nXnSDXnNeU16nXqtee16kg15HXkNeV16rXlSDXnteh16TXqCDXnNep16DXmSDXqteV15nXnSDXoNeR15PXnNeZ150sINeQ15Ug15zXlNep16rXntepINeR157Xodek16jXmdedINep15XXoNeZ150g15zXkNeV16rXlSDXqteVLiDXotecINeb15wg157Xl9ep15EgKNeV15HXnteZ15XXl9eTINep16jXqteZ150pINec16rXnteV15og15HXnteh16TXqCDXqNeRINep15wg157Xoteo15vXldeqINen15nXk9eV15Mg16nXldeg15XXqjsg15DXldec150g15vXnCDXkNeZ157XqiDXqdeg16rXldeg15nXnSDXoteV15HXqNeZ150g15HXmdefINee16LXqNeb15XXqiDXp9eZ15PXldeTINeQ15Ug16TXnNeY16TXldeo157XldeqINep15XXoNeV16og16fXmdeZ150g15TXodeZ15vXldefINep15nXmdek15LXnteVLgorCivXmdeV16DXmden15XXkyDXntep16DXlCDXkNeqINeb15wg15bXlCEKK9eZ15XXoNeZ16fXldeTINee16fXpteUINee16HXpNeoINeZ15nXl9eV15PXmSDXnNeb15wg16rXlSwg15zXnNeQINeq15zXldeqINeR16TXnNeY16TXldeo157XlCwg15HXqteV15vXoNeZ16osINeQ15Ug15HXqdek15QuINeq16fXnyDXlNeZ15XXoNeZ16fXldeTINeQ15XXntelINei15wt15nXk9eZINeU157XldeR15nXnNeZ150g15HXqtei16nXmdeZ15Qg15vXnteVIEFwcGxl4oCPLCBIUOKAjywgSUJN4oCPLCBKdXN0U3lzdGVt4oCPLCBNaWNyb3NvZnTigI8sIE9yYWNsZeKAjywgU0FQ4oCPLCBTdW7igI8sIFN5YmFzZeKAjywgVW5pc3lz4oCPINeV16jXkdeZ150g15DXl9eo15nXnS4g15nXldeg15nXp9eV15Mg16DXk9eo16kg16LXnC3XmdeT15kg16rXp9eg15nXnSDXnteV15PXqNeg15nXmdedINeb157XlSBYTUzigI8sIEphdmHigI8sIEVDTUFTY3JpcHQgKEphdmFTY3JpcHQp4oCO4oCPLCBMREFQ4oCPLCBDT1JCQSAzLjDigI7igI8sIFdNTOKAjyDXldeb15PXldee15QsINeV157XlNeV15XXlCDXnNee16LXqdeUINeQ16og15TXmdeZ16nXldedINeU16jXqdee15kg16nXnCDXqten158gSVNPL0lFQyAxMDY0Ni4g15TXldeQINeg16rXnteaINei15wg15nXk9eZINee16LXqNeb15XXqiDXlNek16LXnNeUINeo15HXldeqLCDXm9ecINeU15PXpNeT16TXoNeZ150g15TXl9eT15nXqdeZ150sINeV157Xldem16jXmdedINeo15HXmdedINeQ15fXqNeZ150uINeU15XXpNei16og16rXp9efINeU15nXldeg15nXp9eV15Mg15XXltee15nXoNeV16og15TXm9ec15nXnSDXlNeq15XXnteb15nXnSDXkdeVINeg157XoNeV16og16LXnSDXlNee15LXnteV16og15TXm9ec15wt16LXldec157XmdeV16og15TXl9ep15XXkdeV16og15HXmdeV16rXqCwg15DXqdeoINee16HXqtee16DXldeqINec15DXl9eo15XXoNeUINeR15jXm9eg15XXnNeV15LXmdeZ16og15TXqteV15vXoNeULgorCivXqdeZ15zXldeRINeZ15XXoNeZ16fXldeTINeR15nXmdep15XXnteZINep16jXqi3XnNen15XXlyDXkNeVINeR15nXmdep15XXnteZ150g16jXkdeZLdep15vXkdeV16og15XXkdeQ16rXqNeZINeQ15nXoNeY16jXoNeYINee15DXpNep16gg15fXmdeh15vXldefINeg15nXm9eoINeR16LXnNeV15nXldeqINec16LXldee16og15TXqdeZ157XldepINeR16HXk9eo15XXqiDXlNeq15XXldeZ150g15TXnteh15XXqNeq15nXldeqLiDXlNeV15PXldeqINec15nXldeg15nXp9eV15MsINee15XXpteoINeq15XXm9eg15Qg15DXl9eTINeQ15Ug15DXqteoINeZ15fXmdeTINeR16jXqdeqINeZ15vXldecINec15TXqNeX15nXkSDXkNeqINeZ16LXk9eZ15Ug15zXnteS15XXldefINek15zXmNek15XXqNee15XXqiwg15DXqNem15XXqiDXldep16TXldeqINec15zXkCDXpteV16jXmiDXkdep15nXoNeV15nXmdedINee16jXl9eZ16fXmdedLiDXmdeV16DXmden15XXkyDXnteQ16TXqdeoINee16LXkdeoINeg16rXldeg15nXnSDXk9eo15og157Xoteo15vXldeqINeo15HXldeqINeV16nXldeg15XXqiDXnteR15zXmSDXqdeZ15nXpNeS157XlS4KKwor16TXqNeY15nXnSDXkNeV15PXldeqINeU16fXldeg16HXldeo16bXmdeV150g16nXnCDXmdeV16DXmden15XXkyAoVW5pY29kZSBDb25zb3J0aXVtKSAKK9eU16fXldeg16HXldeo16bXmdeV150g16nXnCDXmdeV16DXmden15XXkyDXlNeV15Ag15DXqNeS15XXnyDXnNec15Ag157XmNeo16og16jXldeV15cg16nXoNeV16HXkyDXm9eT15kg15zXpNeq15csINec15TXqNeX15nXkSDXldec16fXk9edINeQ16og15TXqdeZ157XldepINeR16rXp9efINeZ15XXoNeZ16fXldeTLCDXkNep16gg157XkteT15nXqCDXkNeqINeZ15nXpteV15Ig15TXmNen16HXmCDXkdee15XXpteo15kg16rXldeb16DXlCDXldeq16fXoNeZ150g157XldeT16jXoNeZ15nXnS4g15fXkdeo15nXnSDXkden15XXoNeh15XXqNem15nXldedINee15LXldeV158g16jXl9eRINep15wg16rXkNeS15nXk9eZ150g15XXkNeo15LXldeg15nXnSDXkdeq16LXqdeZ15nXqiDXlNee15fXqdeR15nXnSDXldei15nXkdeV15Mg15TXnteZ15PXoi4g15TXp9eV16DXodeV16jXpteZ15XXnSDXntee15XXntefINei15wt15nXk9eZINeT157XmS3Xl9eR16gg15HXnNeR15MuINeU15fXkdeo15XXqiDXkden15XXoNeh15XXqNem15nXldedINeZ15XXoNeZ16fXldeTINek16rXldeX15Qg15zXkNeo15LXldeg15nXnSDXldec15DXoNep15nXnSDXpNeo15jXmdeZ150sINeR15vXnCDXqNeX15HXmSDXlNei15XXnNedLCDXkNep16gg16rXldee15vXmdedINeR16rXp9efINeZ15XXoNeZ16fXldeTINeV157XoteV16DXmdeZ16DXmdedINec16HXmdeZ16Ig15HXlNeq16TXqteX15XXqteVINeV15TXmNee16LXqteVLgorCivXnNee15nXk9eiINeg15XXodejLCDXqNeQ15Qg157Xmdec15XXnyDXnteV16DXl9eZ150sINeo16nXmdee15Qg15fXnNen15nXqiDXqdecINee15XXpteo15nXnSDXnteV16rXkNee15nXnSDXnNeZ15XXoNeZ16fXldeTLCDXnteR15XXkCDXmNeb16DXmSDXlS0g15fXldee16jXmSDXoteW16ggW9en15nXqdeV16jXmdedINeR15DXoNeS15zXmdeqXS4KKworQFNFVCBbWzpIZWJyZXc6XSBbXHUwNUIwLVx1MDVCOVx1MDVCQi1cdTA1QkNcdTA1QzEtXHUwNUMyXHUyMTM1LVx1MjEzOF1dClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L1Rlc3RfSW5zdHJ1Y3Rpb25zLmh0bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvVGVzdF9JbnN0cnVjdGlvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNjYwMWRmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L1Rlc3RfSW5zdHJ1Y3Rpb25zLmh0bWwKQEAgLTAsMCArMSwxNTYgQEAKKzxodG1sPgorCis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtTGFuZ3VhZ2UiIGNvbnRlbnQ9ImVuLXVzIj4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXdpbmRvd3MtMTI1MiI+Cis8bWV0YSBuYW1lPSJHRU5FUkFUT1IiIGNvbnRlbnQ9Ik1pY3Jvc29mdCBGcm9udFBhZ2UgNC4wIj4KKzxtZXRhIG5hbWU9IlByb2dJZCIgY29udGVudD0iRnJvbnRQYWdlLkVkaXRvci5Eb2N1bWVudCI+Cis8dGl0bGU+TmV3IFRyYW5zbGl0ZXJhdGlvbiBUZXN0IEZpbGVzPC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHkgYmdjb2xvcj0iI0ZGRkZGRiI+CisKKzxoMj5OZXcgVHJhbnNsaXRlcmF0aW9uIFRlc3QgRmlsZXM8L2gyPgorPHA+VGhlIFRlc3RfKi5odG1sIGZpbGVzIHNob3cgdGhlIHRyYW5zbGl0ZXJhdGlvbiBvZiBjaGFyYWN0ZXJzIGZvciBnaXZlbgorbGFuZ3VhZ2VzLiBUaGUgc2FtcGxlIGZvciBlYWNoIGxhbmd1YWdlIGNvbnNpc3RzIG9mICZxdW90O1doYXQgSXMgVW5pY29kZSZxdW90OworaW4gVGhhaSwgZm9sbG93ZWQgYnkgb3RoZXIgYXZhaWxhYmxlIHRleHQuIFRoZSB0ZXh0IGlzIGJyb2tlbiBhcGFydCBpbnRvCitzZW50ZW5jZXMgZm9yIGVhc2Ugb2Ygdmlld2luZyAobm90ZTogd2Uga25vdyBvZiBzb21lIHByb2JsZW1zIHdpdGggdGhlIHNlbnRlbmNlCitydWxlcyBmb3IgSmFwYW5lc2UgYW5kIENoaW5lc2UpLiBUaGUgbGVmdCBjb2x1bW4gaXMgdGhlIG9yaWdpbmFsLCBhbmQgdGhlIHJpZ2h0CitpcyB0aGUgcm9tYW5pemF0aW9uLiBUaGUgcHJvZ3JhbSBhbHNvIGNvbnZlcnRzIGJhY2sgdG8gdGhlIG9yaWdpbmFsIHNjcmlwdC4gSWYKK3RoZXJlIGlzIGEgZGlzY3JlcGFuY3kgYmV0d2VlbiB0aGUgc291cmNlIGFuZCB0aGUgcmV2ZXJzZSB0cmFuc2Zvcm1hdGlvbiwgdGhhdAoraXMgaW5kaWNhdGVkIGJ5IG1ha2luZyB0aGUgYmFja2dyb3VuZCA8Zm9udCBjb2xvcj0iI0ZGMDAwMCI+PGI+cmVkPC9iPjwvZm9udD4KK2Zyb20gdGhhdCBwb2ludCBvbi48L3A+Cis8YmxvY2txdW90ZT4KKyAgPHA+PGk+PGI+Tm90ZTogPC9iPklmIHlvdSBoYXZlIHNvbWUgbW9yZSB0ZXh0IHRoYXQgeW91IHdvdWxkIGxpa2UgYWRkZWQgdG8gdGhlCisgIHNhbXBsZSwganVzdCBsZXQgbWUga25vdy4gSSBhbSBwYXJ0aWN1bGFybHkgaW50ZXJlc3RlZCBpbiBuYW1lIGxpc3RzLCBzaW5jZQorICB0aGV5IGFyZSB0aGUgdHlwaWNhbCBzb3VyY2UuPC9pPjwvcD4KKzwvYmxvY2txdW90ZT4KKzxoMz5TdGFuZGFyZHM8L2gzPgorPHA+VGhlIGdvYWwgaXMgdG8gZm9sbG93IGEgZ2l2ZW4gc3RhbmRhcmQsIHN1Y2ggYXMgSVNPKiBvciBVTkdFR04gd2hlcmV2ZXIKK3Bvc3NpYmxlLiBXZSBhbHNvIG5lZWQgdG8gcm91bmQtdHJpcCwgc28gaW4gc29tZSBjYXNlcywgdGhhdCBtZWFucyBhZGRpbmcgc29tZQorYWRkaXRpb25hbCBhY2NlbnQgbWFya3MgdG8gZGlzYW1iaWd1YXRlIGNoYXJhY3RlcnMuIEFuZCBvZnRlbiB0aGUgc291cmNlCitzdGFuZGFyZHMgYXJlIG1pc3Npbmcgc29tZSBjaGFyYWN0ZXJzLCBzdWNoIGFzIGNoYXJhY3RlcnMgd2l0aCBjb21iaW5pbmcgSGFtemFzCitpbiBBcmFiaWMuIFJlbWVtYmVyIHRoYXQgdGhlIGdvYWwgZm9yIHRoZXNlIGlzIHRyYW5zbGl0ZXJhdGlvbiAodW5hbWJpZ3VvdXNseQorcmVwcmVzZW50aW5nIGFsbCB0aGUgbGV0dGVycyBpbiB0aGUgb3JpZ2luYWwpLCBub3QgdHJhbnNjcmlwdGlvbiAocmVwcmVzZW50aW5nCit0aGUgYmVzdCBwcm9udW5jaWF0aW9uKS48L3A+Cis8dWw+CisgIDxsaT48Yj48YSBocmVmPSJUZXN0X1RoYWktTGF0aW4uaHRtbCI+VGhhaTwvYT46PC9iPiBJU08gMTE5NDAgJmx0OyA8YSBocmVmPSJodHRwOi8vaG9tZXBhZ2UubWFjLmNvbS9zaXJiaW5rcy9wZGYvVGhhaS5yMi5wZGYiPmh0dHA6Ly9ob21lcGFnZS5tYWMuY29tL3NpcmJpbmtzL3BkZi9UaGFpLnIyLnBkZjwvYT4KKyAgICAmZ3Q7IHBsdXMgYSBmZXcgaXRlbXM6CisgICAgPHVsPgorICAgICAgPGxpPkFjY2VudHMgbWF5IGJlIGFkZGVkIHRvIHRoZSBMYXRpbiBmb3IgZGlzYW1iaWd1YXRpb24uPC9saT4KKyAgICAgIDxsaT5JbiB0aGUgbmV4dCByZWxlYXNlLCB3ZSdkIGxpa2UgdG8gZG8gdGhlIFVOR0VHTiB2ZXJzaW9uICZsdDsgPGEgaHJlZj0iaHR0cDovL3d3dy5la2kuZWUvd2dycy9yb20xX3RoLnBkZiI+aHR0cDovL3d3dy5la2kuZWUvd2dycy9yb20xX3RoLnBkZjwvYT4KKyAgICAgICAgJmd0OyB3aGljaCBpcyBwcm9iYWJseSBtb3JlIHVzZWZ1bCAoYW5kIHJlYWRhYmxlKSwgYW5kIGZvbGxvd3MgbW9yZQorICAgICAgICBjbG9zZWx5IHRoZSBUaGFpIHN0YW5kYXJkLjwvbGk+CisgICAgICA8bGk+U3BhY2VzIGFyZSBwcm92aWRlZCBhdCB3b3JkLWJyZWFrcywgdXNpbmcgdGhlIFRoYWkgQnJlYWtJdGVyYXRvci48L2xpPgorICAgICAgPGxpPkFuIGluaGVyZW50IHZvd2VsICgmIzc4ODU7KSBpcyBhZGRlZCwgYXMgaW4gVU5HRUdOLiBUaGUgZG90IGlzIGZvcgorICAgICAgICBkaXNhbWJpZ3VhdGlvbi4KKyAgICAgICAgPHVsPgorICAgICAgICAgIDxsaT48aT5Ob3RlOiBpZiB0aGUgaW5oZXJlbnQgdm93ZWwgcG9zaXRpb25zIGNhbm5vdCBiZSBhbGdvcml0aG1pY2FsbHkKKyAgICAgICAgICAgIGRldGVybWluZWQsIGxldCBtZSBrbm93IGFuZCBJIHdpbGwgcmVtb3ZlIHRoZW0uPC9pPjwvbGk+CisgICAgICAgIDwvdWw+CisgICAgICA8L2xpPgorICAgIDwvdWw+CisgIDwvbGk+CisgIDxsaT48Yj48YSBocmVmPSJUZXN0X0FyYWJpYy1MYXRpbi5odG1sIj5BcmFiaWM8L2E+OiA8L2I+R2VuZXJhbGx5IGZvbGxvd3MKKyAgICBVTkdFR04gJmx0OyA8YSBocmVmPSJodHRwOi8vd3d3LmVraS5lZS93Z3JzL3JvbTFfYXIucGRmIj5odHRwOi8vd3d3LmVraS5lZS93Z3JzL3JvbTFfYXIucGRmPC9hPgorICAgICZndDsKKyAgICA8dWw+CisgICAgICA8bGk+QWNjZW50cyBtYXkgYmUgYWRkZWQgdG8gdGhlIExhdGluIGZvciBkaXNhbWJpZ3VhdGlvbi48L2xpPgorICAgICAgPGxpPk9jY2FzaW9uYWxseSBkZXZpYXRlcyBpbiB0aGUgZGlyZWN0aW9uIG9mIElTTyAyMzMgJmx0OyA8YSBocmVmPSJodHRwOi8vaG9tZXBhZ2UubWFjLmNvbS9zaXJiaW5rcy9wZGYvQXJhYmljLnBkZiI+aHR0cDovL2hvbWVwYWdlLm1hYy5jb20vc2lyYmlua3MvcGRmL0FyYWJpYy5wZGY8L2E+CisgICAgICAgICZndDsKKyAgICAgICAgPHVsPgorICAgICAgICAgIDxsaT53aXRoIHVuZGVyZG90IGluc3RlYWQgb2YgY2VkaWxsYSBmb3IgbGV0dGVyIGxpa2UgU0FELCBzaW5jZSB0aG9zZQorICAgICAgICAgICAgYXJlIGV4cGxpY2l0bHkgaW4gVW5pY29kZSBmb3IgdHJhbnNsaXRlcmF0aW9uIG9mIEFyYWJpYzwvbGk+CisgICAgICAgICAgPGxpPmFkZGluZyBleHRyYSBub24tQXJhYmljLWxhbmd1YWdlIGxldHRlcnMsIGxpa2UgUEVILiBOb3RlOiBub3QgYWxsCisgICAgICAgICAgICBleHRlbmRlZCBBcmFiaWMgY2hhcmFjdGVycyBhcmUgaGFuZGxlZCB5ZXQuPC9saT4KKyAgICAgICAgPC91bD4KKyAgICAgIDwvbGk+CisgICAgICA8bGk+RG9lcyA8aT5ub3Q8L2k+IGRvIGFzc2ltaWxhdGlvbiBvZiAmcXVvdDthbCZxdW90Oywgbm9yIGh5cGhlbmF0aW9uIG9mCisgICAgICAgIGl0LgorICAgICAgICA8dWw+CisgICAgICAgICAgPGxpPldoaWxlIGl0IGNvdWxkIGJlIGRvbmUsIHdlIG5lZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSBwcmVmaXgKKyAgICAgICAgICAgICZxdW90O2FsJnF1b3Q7IGNvdWxkIG9jY3VyIG90aGVyIHRoYW4gYXMgdGhlIGRlZmluaXRlIGFydGljbGUgKHNpbmNlCisgICAgICAgICAgICBubyBzcGFjZSBpcyB1c2VkKS48L2xpPgorICAgICAgICA8L3VsPgorICAgICAgPC9saT4KKyAgICAgIDxsaT5UaGlzIGlzIHRyYW5zbGl0ZXJhdGlvbi4gRm9yIDxpPnRyYW5zY3JpcHRpb248L2k+IG9uZSB3b3VsZCB3YW50IGFuCisgICAgICAgIGVuZ2luZSB0aGF0IGFkZGVkIHBvaW50cyBhcHByb3ByaWF0ZWx5IHRvIHRoZSBIZWJyZXcuPC9saT4KKyAgICA8L3VsPgorICA8L2xpPgorICA8bGk+PGI+PGEgaHJlZj0iVGVzdF9IZWJyZXctTGF0aW4uaHRtbCI+SGVicmV3PC9hPjwvYj48Yj46IDwvYj5HZW5lcmFsbHkKKyAgICBmb2xsb3dzIFVOR0VHTiAmbHQ7IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWtpLmVlL3dncnMvcm9tMV9oZS5wZGYiPmh0dHA6Ly93d3cuZWtpLmVlL3dncnMvcm9tMV9oZS5wZGY8L2E+CisgICAgJmd0Oywgd2l0aCBzb21lIGV4Y2VwdGlvbnM6CisgICAgPHVsPgorICAgICAgPGxpPkFjY2VudHMgbWF5IGJlIGFkZGVkIHRvIHRoZSBMYXRpbiBmb3IgZGlzYW1iaWd1YXRpb24uPC9saT4KKyAgICAgIDxsaT5Db21iaW5hdGlvbnMgb2YgZGFnZXNoLCBzaGluL3NpbiBkb3QgdGhhdCB3b3VsZCBwcm9kdWNlIGRpZmZlcmVudAorICAgICAgICBsZXR0ZXJzIGFyZSBub3QgeWV0IGNhbGxlZCBvdXQuPC9saT4KKyAgICAgIDxsaT5Ob3RlIHRoYXQgdGhlIGZpbmFsIGZvcm1zIGFyZSBub3QgcHJlc2VydmVkLiBUaHVzLCB3aGVuIGdvaW5nIGZyb20KKyAgICAgICAgTGF0aW4gdG8gSGVicmV3LCBhIGNoYXJhY3RlciBpcyBnaXZlbiBmaW5hbCBmb3JtIGRlcGVuZGluZyBvbiBpdHMKKyAgICAgICAgcG9zaXRpb24uCisgICAgICAgIDx1bD4KKyAgICAgICAgICA8bGk+RS5nLiAmIzE1MDI7JiMxNTAxOyYjMTUwMjsmIzE1MDE7ID0mZ3Q7IG1tbW0gPSZndDsKKyAgICAgICAgICAgICYjMTUwMjsmIzE1MDI7JiMxNTAyOyYjMTUwMTs8L2xpPgorICAgICAgICA8L3VsPgorICAgICAgPC9saT4KKyAgICAgIDxsaT5UaGlzIGlzIHRyYW5zbGl0ZXJhdGlvbi4gRm9yIDxpPnRyYW5zY3JpcHRpb248L2k+IG9uZSB3b3VsZCB3YW50IGFuCisgICAgICAgIGVuZ2luZSB0aGF0IGFkZGVkIHBvaW50cyBhcHByb3ByaWF0ZWx5IHRvIHRoZSBIZWJyZXcuPC9saT4KKyAgICAgIDxsaT5TZWUgYWxzbyAmbHQ7IDxhIGhyZWY9Imh0dHA6Ly9ob21lcGFnZS5tYWMuY29tL3NpcmJpbmtzL3BkZi9IZWJyZXcucjEucGRmIj5odHRwOi8vaG9tZXBhZ2UubWFjLmNvbS9zaXJiaW5rcy9wZGYvSGVicmV3LnIxLnBkZjwvYT4KKyAgICAgICAgJmd0OyBmb3IgdGhlIElTTyB2ZXJzaW9uLiBUaGUgQ2hpY2FnbyBNYW51YWwgb2YgU3R5bGUgaGFzIGEgY2xlYXIgdGFibGUKKyAgICAgICAgb2YgbWFwcGluZ3MgZm9yIHRoZSB2b3dlbCBtYXJrcy48L2xpPgorICAgIDwvdWw+CisgIDwvbGk+CisgIDxsaT48Yj48YSBocmVmPSJUZXN0X0hhbi1MYXRpbi5odG1sIj5IYW48L2E+OjwvYj4gVXNlcyB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5tYW5kYXJpbnRvb2xzLmNvbS9jZWRpY3QuaHRtbCI+Q0VESUNUPC9hPgorICAgIGRhdGEgcGx1cyBVbmljb2RlIFVuaWhhbiA8aT5rTWFuZGFyaW48L2k+IHZhbHVlcyBmb3IgcGlueWluLiBEb2Vzbid0CisgICAgcm91bmR0cmlwIQorICAgIDx1bD4KKyAgICAgIDxsaT48aT5Ob3RlOiA8L2k+dGhlIENoaW5lc2UgcHJvbnVuY2lhdGlvbiBvZiBIYW4gY2hhcmFjdGVycyB2YXJpZXMgYnkKKyAgICAgICAgY29udGV4dCBhbmQgZ3JhbW1hciwgdGhvdWdoIG5vd2hlcmUgbmVhciBhcyBtdWNoIGEgSmFwYW5lc2UuCisgICAgICAgIDx1bD4KKyAgICAgICAgICA8bGk+SWRlYWxseSB3ZSdkIGhhdmUgYW4gdW5kZXJseWluZyBlbmdpbmUgZm9yIHRoaXMuIEluIDIuNCB3ZSB3aWxsCisgICAgICAgICAgICBoYXZlIGEgcGx1Zy1pbiBpbnRlcmZhY2Ugc28gdGhhdCBwZW9wbGUgY291bGQgYWRkIG9uZSwgc3VjaCBhcyB0aGUKKyAgICAgICAgICAgIElCTSBlbmdpbmUuPC9saT4KKyAgICAgICAgICA8bGk+VGhlIGRhdGEgZnJvbSBDRURJQ1QgYW5kIFVuaWhhbiBkb24ndCBsaXN0IHRoZSBtb3N0IGZyZXF1ZW50CisgICAgICAgICAgICBjaG9pY2UgZmlyc3QsIHNvIHdlIHdpbGwgYmUgdXBkYXRpbmcgdGhhdC48L2xpPgorICAgICAgICA8L3VsPgorICAgICAgPC9saT4KKyAgICA8L3VsPgorICA8L2xpPgorICA8bGk+PGEgaHJlZj0iVGVzdF9HcmVlay1MYXRpbl9VTkdFR04uaHRtbCI+PGI+R3JlZWsvVU5HRUdOPC9iPjwvYT46IFVzZXMgYQorICAgIG1vZGVybiBHcmVlayB0cmFuc2xpdGVyYXRpb24sIGJhc2VkIG9uIHRoZSBVTkdFR04gcnVsZXMgYXQgJmx0OyA8YSBocmVmPSJodHRwOi8vd3d3LmVraS5lZS93Z3JzL3JvbTFfZWwucGRmIj5odHRwOi8vd3d3LmVraS5lZS93Z3JzL3JvbTFfZWwucGRmPC9hPgorICAgICZndDsuIFRoaXMgdmVyc2lvbiB3aWxsIG5vdCByb3VuZHRyaXAgYW5jaWVudCBHcmVlay48L2xpPgorICA8bGk+PGEgaHJlZj0iVGVzdF9HcmVlay1MYXRpbi5odG1sIj48Yj5HcmVlazwvYj48L2E+OiBVc2VzIGEgY2xhc3NpYyBHcmVlaworICAgIHRyYW5zbGl0ZXJhdGlvbi4gVGhpcyB2ZXJzaW9uIHdpbGwgbm90IHJvdW5kdHJpcCBtb2Rlcm4gR3JlZWsuPC9saT4KKzwvdWw+Cis8aDM+PGI+Tm90ZXM8L2I+PC9oMz4KKzxvbD4KKyAgPGxpPkZvciByZWFkYWJpbGl0eSwgdGhlIGZpbGVzIGhhdmUgYSBmZXcgb3RoZXIgdGhpbmdzIGJlc2lkZXMganVzdCB0aGUKKyAgICB0cmFuc2xpdGVyYXRpb246CisgICAgPHVsPgorICAgICAgPGxpPlRoZSBmaXJzdCB3b3JkIG9mIHRoZSBzZW50ZW5jZXMgYXJlIHRpdGxlY2FzZWQsIGFzIGFyZSBuYW1lcyAod2hlcmUgd2UKKyAgICAgICAgaGF2ZSBhIG5hbWUtbGlzdCwgc3VjaCBhcyBpbiBUaGFpKS48L2xpPgorICAgICAgPGxpPlRoZSBMYXRpbiBpbiB0aGUgb3JpZ2luYWwgaXMgbWFwcGVkIHRvIHRoZSBwcml2YXRlLXVzZSB6b25lIGJlZm9yZQorICAgICAgICBjb252ZXJzaW9uLCBhbmQgdGhlbiBhZ2FpbiBhZnRlciBjb252ZXJzaW9uLiBUaGlzIGRvZXMgaGF2ZSB0aGUgZG93bnNpZGUKKyAgICAgICAgdGhhdCBhbnkgcnVsZXMgKHN1Y2ggYXMgaW4gSGFuKSB0aGF0IG5lZWQgdG8ga25vdyB0aGUgY29udGV4dCAoZS5nLiBmb3IKKyAgICAgICAgaW5zZXJ0aW5nIHNwYWNlcyBvciBjYXBpdGFsaXphdGlvbikgd2lsbCBndW0gdXAgYSBsaXR0bGUgYml0LiBUaGlzIGlzCisgICAgICAgIGp1c3QgYW4gYXJ0aWZhY3Qgb2YgdGhlIHRlc3QgZGlzcGxheS48L2xpPgorICAgIDwvdWw+CisgIDwvbGk+CisgIDxsaT5JIGRvbid0IHRoaW5rIHRoYXQgSVNPIDExOTQwIGlzIGEgcGFydGljdWxhcmx5IGdvb2Qgd2F5IHRvIHJvbWFuaXplLCBidXQKKyAgICBpdCBpcyBhdCBsZWFzdCBjb21wbGV0ZSBhbmQgYSBzdGFuZGFyZC4gU28gd2hhdCBJIGFtIGludGVyZXN0ZWQgaW4ganVzdCBmb3IKKyAgICBub3cgaXMgd2hldGhlciB0aGUgc2FtcGxlcyBpbiB0aGUgZmlsZSBmb2xsb3cgaXQgKHdpdGggdGhlIGFib3ZlCisgICAgZXhjZXB0aW9ucykuPC9saT4KKyAgPGxpPlNvbWUgb2YgdGhlIGZpbGVzIGFsc28gaGF2ZSBhIHNldCBvZiBjaGFyYWN0ZXJzIGF0IHRoZSBlbmQsIG9uZSBjaGFyYWN0ZXIKKyAgICBwZXIgcm93LCB3aXRoIGEgZm9sbG93aW5nIHJvdyBsaXN0aW5nIHRoZSBoZXggYW5kIG5hbWUuPC9saT4KKyAgPGxpPlRoZSBzb3VyY2UgcnVsZXMgZm9yIGFsbCBvZiB0aGVzZSBpcyBpbiB0aGUgZm9sbG93aW5nIFVSTC4gU28gaWYgeW91IHdhbnQKKyAgICB0byBrbm93IHRoZSBkZXRhaWxzIG9mIGhvdyB0aGUgY2hhcmFjdGVycyBhcmUgaGFuZGxlZCwgdGhhdCBpcyB0aGUgcGxhY2UgdG8KKyAgICBsb29rLgorICAgIDx1bD4KKyAgICAgIDxsaT4mbmJzcDs8YSBocmVmPSJodHRwOi8vb3NzLnNvZnR3YXJlLmlibS5jb20vY3ZzL2ljdTRqL2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvIj5odHRwOi8vb3NzLnNvZnR3YXJlLmlibS5jb20vY3ZzL2ljdTRqL2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvPC9hPjxicj4KKyAgICAgIDwvbGk+CisgICAgPC91bD4KKyAgPC9saT4KKzwvb2w+CisKKzwvYm9keT4KKworPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L1Rlc3RfVGhhaS1MYXRpbi50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvVGVzdF9UaGFpLUxhdGluLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OGZmODBlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L1Rlc3RfVGhhaS1MYXRpbi50eHQKQEAgLTAsMCArMSw3MyBAQAor77u/Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvcHlyaWdodCAoYykgMTk5OS0yMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisjIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L1Rlc3RfVGhhaS1MYXRpbi50eHQsdiAkCisjICREYXRlOiAyMDAyLzA3LzI2IDIwOjA5OjAxICQKKyMgJFJldmlzaW9uOiAxLjEgJAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitAVVBQRVJGSUxURVJACitVbmljb2RlIOC4hOC4t+C4reC4reC4sOC5hOC4oz8KK1VuaWNvZGUg4LiB4Liz4Lir4LiZ4LiU4Lir4Lih4Liy4Lii4LmA4Lil4LiC4LmA4LiJ4Lie4Liy4Liw4Liq4Liz4Lir4Lij4Lix4Lia4LiX4Li44LiB4Lit4Lix4LiB4LiC4Lij4LiwCivguYLguJTguKLguYTguKHguYjguKrguJnguYPguIjguKfguYjguLLguYDguJvguYfguJnguYHguJ7guKXguYfguJXguJ/guK3guKPguYzguKHguYPguJQKK+C5hOC4oeC5iOC4guC4tuC5ieC4meC4geC4seC4muC4p+C5iOC4suC4iOC4sOC5gOC4m+C5h+C4meC5guC4m+C4o+C5geC4geC4o+C4oeC5g+C4lAor4LmB4Lil4Liw4LmE4Lih4LmI4Lin4LmI4Liy4LiI4Liw4LmA4Lib4LmH4LiZ4Lig4Liy4Lip4Liy4LmD4LiUCisKK+C5guC4lOC4ouC4nuC4t+C5ieC4meC4kOC4suC4meC5geC4peC5ieC4pywg4LiE4Lit4Lih4Lie4Li04Lin4LmA4LiV4Lit4Lij4LmM4LiI4Liw4LmA4LiB4Li14LmI4Lii4Lin4LiC4LmJ4Lit4LiH4LiB4Lix4Lia4LmA4Lij4Li34LmI4Lit4LiH4LiC4Lit4LiH4LiV4Lix4Lin4LmA4Lil4LiCLiDguITguK3guKHguJ7guLTguKfguYDguJXguK3guKPguYzguIjguLHguJTguYDguIHguYfguJrguJXguLHguKfguK3guLHguIHguKnguKPguYHguKXguLDguK3guLHguIHguILguKPguLDguK3guLfguYjguJnguYYg4LmC4LiU4Lii4LiB4Liy4Lij4LiB4Liz4Lir4LiZ4LiU4Lir4Lih4Liy4Lii4LmA4Lil4LiC4LmD4Lir4LmJ4Liq4Liz4Lir4Lij4Lix4Lia4LmB4LiV4LmI4Lil4Liw4LiV4Lix4LinLiDguIHguYjguK3guJnguKvguJnguYnguLLguJfguLXguYjguYogVW5pY29kZSDguIjguLDguJbguLnguIHguKrguKPguYnguLLguIfguILguLbguYnguJksIOC5hOC4lOC5ieC4oeC4teC4o+C4sOC4muC4miBlbmNvZGluZyDguK3guKLguLnguYjguKvguKXguLLguKLguKPguYnguK3guKLguKPguLDguJrguJrguKrguLPguKvguKPguLHguJrguIHguLLguKPguIHguLPguKvguJnguJTguKvguKHguLLguKLguYDguKXguILguYDguKvguKXguYjguLLguJnguLXguYkuIOC5hOC4oeC5iOC4oeC4tSBlbmNvZGluZyDguYPguJTguJfguLXguYjguKHguLXguIjguLPguJnguKfguJnguJXguLHguKfguK3guLHguIHguILguKPguLDguKHguLLguIHguYDguJ7guLXguKLguIfguJ7guK06IOC4ouC4geC4leC4seC4p+C4reC4ouC5iOC4suC4h+C5gOC4iuC5iOC4mSwg4LmA4LiJ4Lie4Liy4Liw4LmD4LiZ4LiB4Lil4Li44LmI4Lih4Liq4Lir4Lig4Liy4Lie4Lii4Li44LmC4Lij4Lib4LmA4Lie4Li14Lii4LiH4LmB4Lir4LmI4LiH4LmA4LiU4Li14Lii4LinIOC4geC5h+C4leC5ieC4reC4h+C4geC4suC4o+C4q+C4peC4suC4oiBlbmNvZGluZyDguYPguJnguIHguLLguKPguITguKPguK3guJrguITguKXguLjguKHguJfguLjguIHguKDguLLguKnguLLguYPguJnguIHguKXguLjguYjguKEuIOC4q+C4o+C4t+C4reC5geC4oeC5ieC5geC4leC5iOC5g+C4meC4oOC4suC4qeC4suC5gOC4lOC4teC5iOC4ouC4pyDguYDguIrguYjguJkg4Lig4Liy4Lip4Liy4Lit4Lix4LiH4LiB4Lik4LipIOC4geC5h+C5hOC4oeC5iOC4oeC4tSBlbmNvZGluZyDguYPguJTguJfguLXguYjguYDguJ7guLXguKLguIfguJ7guK3guKrguLPguKvguKPguLHguJrguJfguLjguIHguJXguLHguKfguK3guLHguIHguKnguKMsIOC5gOC4hOC4o+C4t+C5iOC4reC4h+C4q+C4oeC4suC4ouC4p+C4o+C4o+C4hOC4leC4reC4mSDguYHguKXguLDguKrguLHguI3guKXguLHguIHguKnguJPguYzguJfguLLguIfguYDguJfguITguJnguLTguITguJfguLXguYjguYPguIrguYnguIHguLHguJnguK3guKLguLnguYjguJfguLHguYjguKfguYTguJsuIAorCivguKPguLDguJrguJogZW5jb2Rpbmcg4LmA4Lir4Lil4LmI4Liy4LiZ4Li14LmJ4Lii4Lix4LiH4LiC4Lix4LiU4LmB4Lii4LmJ4LiH4LiL4Li24LmI4LiH4LiB4Lix4LiZ4LmB4Lil4Liw4LiB4Lix4LiZLiDguJnguLHguYjguJnguIHguYfguITguLfguK0sIOC5g+C4meC4quC4reC4hyBlbmNvZGluZyDguKrguLLguKHguLLguKPguJbguYPguIrguYnguKvguKHguLLguKLguYDguKXguILguYDguJTguLXguKLguKfguIHguLHguJnguKrguLPguKvguKPguLHguJrguJXguLHguKfguK3guLHguIHguILguKPguLDguKrguK3guIfguJXguLHguKfguJfguLXguYjguYHguJXguIHguJXguYjguLLguIfguIHguLHguJks4Lir4Lij4Li34Lit4LmD4LiK4LmJ4Lir4Lih4Liy4Lii4LmA4Lil4LiC4LiV4LmI4Liy4LiH4LiB4Lix4LiZ4Liq4Liz4Lir4Lij4Lix4Lia4Lit4Lix4LiB4LiC4Lij4Liw4LiV4Lix4Lin4LmA4LiU4Li14Lii4Lin4LiB4Lix4LiZLiDguYPguJnguKPguLDguJrguJrguITguK3guKHguJ7guLTguKfguYDguJXguK3guKPguYwgKOC5guC4lOC4ouC5gOC4ieC4nuC4suC4sOC5gOC4i+C4tOC4o+C5jOC4n+C5gOC4p+C4reC4o+C5jCkg4LiV4LmJ4Lit4LiH4Lih4Li14LiB4Liy4Lij4Liq4LiZ4Lix4Lia4Liq4LiZ4Li44LiZ4Lir4Lil4Liy4LiiIGVuY29kaW5nOyDguYHguKXguLDguYDguKHguLfguYjguK3guILguYnguK3guKHguLnguKXguJfguLXguYjguJzguYjguLLguJnguYTguJvguKHguLLguKPguLDguKvguKfguYjguLLguIfguIHguLLguKPguYDguILguYnguLLguKPguKvguLHguKrguKvguKPguLfguK3guYHguJ7guKXguYfguJXguJ/guK3guKPguYzguKHguJfguLXguYjguJXguYjguLLguIfguIHguLHguJksIOC4guC5ieC4reC4oeC4ueC4peC4meC4seC5ieC4meC4iOC4sOC5gOC4quC4teC5iOC4ouC4h+C4leC5iOC4reC4geC4suC4o+C4nOC4tOC4lOC4nuC4peC4suC4lOC5gOC4quC4teC4ouC4q+C4suC4oi4KKworVW5pY29kZSDguIjguLDguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIfguKrguLTguYjguIfguYDguKvguKXguYjguLLguJnguLHguYnguJnguJfguLHguYnguIfguKvguKHguJQhCitVbmljb2RlIOC4geC4s+C4q+C4meC4lOC4q+C4oeC4suC4ouC5gOC4peC4guC5gOC4ieC4nuC4suC4sOC4quC4s+C4q+C4o+C4seC4muC5geC4leC5iOC4peC4sOC4reC4seC4geC4guC4o+C4sCwg4LmC4LiU4Lii4LmE4Lih4LmI4Liq4LiZ4LmD4LiI4Lin4LmI4Liy4LmA4Lib4LmH4LiZ4LmB4Lie4Lil4LmH4LiV4Lif4Lit4Lij4LmM4Lih4LmD4LiULCDguYTguKHguYjguILguLbguYnguJnguIHguLHguJrguKfguYjguLLguIjguLDguYDguJvguYfguJnguYLguJvguKPguYHguIHguKPguKHguYPguJTguYHguKXguLDguYTguKHguYjguKfguYjguLLguIjguLDguYDguJvguYfguJnguKDguLLguKnguLLguYPguJQuIOC4oeC4suC4leC4o+C4kOC4suC4mSBVbmljb2RlIOC5hOC4lOC5ieC4luC4ueC4geC4meC4s+C5hOC4m+C5g+C4iuC5ieC5guC4lOC4ouC4nOC4ueC5ieC4meC4s+C5g+C4meC4reC4uOC4leC4quC4suC4q+C4geC4o+C4o+C4oSDguYDguIrguYjguJkgQXBwbGUsIEhQLCBJQk0sIEp1c3RTeXN0ZW0sIE1pY3Jvc29mdCwgT3JhY2xlLCBTQVAsIFN1biwgU3liYXNlLCBVbmlzeXMg4LmB4Lil4Liw4Lit4Li34LmI4LiZ4LmGIOC4reC4teC4geC4oeC4suC4gS4gVW5pY29kZSDguYDguJvguYfguJnguKrguLTguYjguIfguJfguLXguYjguIjguLPguYDguJvguYfguJnguKrguLPguKvguKPguLHguJrguKHguLLguJXguKPguJDguLLguJnguYPguKvguKHguYjguYYg4LmA4LiK4LmI4LiZIFhNTCwgSmF2YSwgRUNNQVNjcmlwdCAoSmF2YVNjcmlwdCksIExEQVAsIENPUkJBIDMuMCwgV01MIOC4r+C4peC4ry4sIOC5geC4peC4sOC5gOC4m+C5h+C4meC5geC4meC4p+C4l+C4suC4h+C4reC4ouC5iOC4suC4h+C5gOC4m+C5h+C4meC4l+C4suC4h+C4geC4suC4o+C5g+C4meC4geC4suC4o+C4l+C4syBJU08vSUVDIDEwNjQ2LiBVbmljb2RlIOC5hOC4lOC5ieC4o+C4seC4muC4geC4suC4o+C4quC4meC4seC4muC4quC4meC4uOC4meC5g+C4meC4o+C4sOC4muC4muC4m+C4j+C4tOC4muC4seC4leC4tOC4geC4suC4o+C4iOC4s+C4meC4p+C4meC4oeC4suC4gSwg4Lia4Lij4Liy4Lin4LmA4LiL4Lit4Lij4LmM4LmD4Lir4Lih4LmI4LmGIOC4l+C4geC4leC4seC4pywg4LmB4Lil4Liw4Lic4Lil4Li04LiV4Lig4Lix4LiT4LiR4LmM4Lit4Li34LmI4LiZ4LmGIOC4reC4teC4geC4oeC4suC4gS4g4LiB4Liy4Lij4LmA4LiB4Li04LiU4LiC4Li24LmJ4LiZ4LiC4Lit4LiHIFVuaWNvZGUgU3RhbmRhcmQg4LmB4Lil4Liw4LiX4Li54Lil4Liq4LmM4LiV4LmI4Liy4LiH4LmGIOC4l+C4teC5iOC4oeC4teC5g+C4meC4geC4suC4o+C4quC4meC4seC4muC4quC4meC4uOC4mSBVbmljb2RlLCDguYDguJvguYfguJnguKvguJnguLbguYjguIfguYPguJnguYHguJnguKfguYLguJnguYnguKHguJfguLLguIfguYDguJfguITguYLguJnguYLguKXguKLguLXguIvguK3guJ/guJXguYzguYHguKfguKPguYzguKPguLDguJTguLHguJrguYLguKXguIHguJfguLXguYjguKHguLXguITguKfguLLguKHguKrguLPguITguLHguI3guJfguLXguYjguKrguLjguJQuCisKK+C4geC4suC4o+C4o+C4p+C4oSBVbmljb2RlIOC5gOC4guC5ieC4suC5hOC4m+C5g+C4meC4o+C4sOC4muC4muC5hOC4hOC4peC5gOC4reC5h+C4meC4leC5jC3guYDguIvguLTguKPguYzguJ/guYDguKfguK3guKPguYwg4Lir4Lij4Li34Lit4LmB4Lit4LmH4Lie4Lie4Lil4Li04LmA4LiE4LiK4Lix4LiZ4LmB4Lia4LiaIG11bHRpLXRpZXJlZCDguYHguKXguLDguYDguKfguYfguJrguYTguIvguJXguYwg4LiI4Liw4LiX4Liz4LmD4Lir4LmJ4LmA4LiB4Li04LiU4LiB4Liy4Lij4Lib4Lij4Liw4Lir4Lii4Lix4LiU4LiE4LmI4Liy4LmD4LiK4LmJ4LiI4LmI4Liy4Lii4Lih4Liy4LiB4LiB4Lin4LmI4Liy4LiB4Liy4Lij4LmD4LiK4LmJ4LiK4Li44LiU4Lit4Lix4LiB4LiC4Lij4Liw4LmB4Lia4Lia4LmA4LiU4Li04LihLiBVbmljb2RlIOC4l+C4s+C5g+C4q+C5ieC4nOC4peC4tOC4leC4oOC4seC4k+C4keC5jOC4i+C4reC4n+C4leC5jOC5geC4p+C4o+C5jOC4q+C4meC4tuC5iOC4h+C5gOC4lOC4teC4ouC4pyDguKvguKPguLfguK3guYDguKfguYfguJrguYTguIvguJXguYzguYHguKvguYjguIfguYDguJTguLXguKLguKcg4Lij4Lit4LiH4Lij4Lix4Lia4LmE4LiU4LmJ4Lir4Lil4Liy4Lii4LmB4Lie4Lil4LmH4LiV4Lif4Lit4Lij4LmM4LihLCDguKvguKXguLLguKLguKDguLLguKnguLLguYHguKXguLDguKvguKXguLLguKLguJvguKPguLDguYDguJfguKjguYLguJTguKLguYTguKHguYjguJXguYnguK3guIfguJfguLPguIHguLLguKPguKPguLfguYnguK3guJvguKPguLHguJrguKPguLDguJrguJouIFVuaWNvZGUg4Lii4Lix4LiH4LiX4Liz4LmD4Lir4LmJ4LiC4LmJ4Lit4Lih4Li54Lil4Liq4Liy4Lih4Liy4Lij4LiW4LmA4LiE4Lil4Li34LmI4Lit4LiZ4Lii4LmJ4Liy4Lii4LmE4Lib4Lih4Liy4LmD4LiZ4Lir4Lil4Liy4Lii4LmGIOC4o+C4sOC4muC4muC5guC4lOC4ouC5hOC4oeC5iOC5gOC4geC4tOC4lOC4hOC4p+C4suC4oeC4nOC4tOC4lOC4nuC4peC4suC4lOC5gOC4quC4teC4ouC4q+C4suC4oi4KKwor4LmA4LiB4Li14LmI4Lii4Lin4LiB4Lix4LiaIFVuaWNvZGUgQ29uc29ydGl1bQorVW5pY29kZSBDb25zb3J0aXVtIOC5gOC4m+C5h+C4meC4reC4h+C4hOC5jOC4geC4o+C5hOC4oeC5iOC5geC4quC4p+C4h+C4q+C4suC4geC4s+C5hOC4o+C4l+C4teC5iOC4geC5iOC4reC4leC4seC5ieC4h+C4guC4tuC5ieC4meC5gOC4nuC4t+C5iOC4reC4nuC4seC4kuC4meC4siwg4LiC4Lii4Liy4Lii4LmB4Lil4Liw4Liq4LmI4LiH4LmA4Liq4Lij4Li04Lih4LiB4Liy4Lij4LmD4LiK4LmJIFVuaWNvZGUgU3RhbmRhcmQsIOC4i+C4tuC5iOC4h+C4geC4s+C4q+C4meC4lOC4o+C4ueC4m+C5geC4muC4muC4geC4suC4o+C5geC4l+C4meC4hOC5iOC4suC4guC4reC4h+C4guC5ieC4reC4hOC4p+C4suC4oeC5g+C4meC4nOC4peC4tOC4leC4oOC4seC4k+C4keC5jOC4i+C4reC4n+C4leC5jOC5geC4p+C4o+C5jOC5geC4peC4sOC4oeC4suC4leC4o+C4kOC4suC4meC5g+C4q+C4oeC5iOC5hi4g4Liq4Lih4Liy4LiK4Li04LiB4LiC4Lit4LiH4Liq4Lih4Liy4LiE4Lih4LmA4Lib4LmH4LiZ4LiV4Lix4Lin4LmB4LiX4LiZ4LiI4Liy4LiB4Lia4Lij4Li04Lip4Lix4LiX4LmB4Lil4Liw4Lit4LiH4LiE4LmM4LiB4Lij4LmD4LiZ4Lit4Li44LiV4Liq4Liy4Lir4LiB4Lij4Lij4Lih4LiE4Lit4Lih4Lie4Li04Lin4LmA4LiV4Lit4Lij4LmM4LmB4Lil4Liw4LiB4Liy4Lij4Lib4Lij4Liw4Lih4Lin4Lil4Lic4Lil4Liq4Liy4Lij4Liq4LiZ4LmA4LiX4LioLiDguKrguKHguLLguITguKHguYTguJTguYnguKPguLHguJrguIHguLLguKPguKrguJnguLHguJrguKrguJnguLjguJnguJfguLLguIfguIHguLLguKPguYDguIfguLTguJnguJzguYjguLLguJnguJfguLLguIfguITguYjguLLguJjguKPguKPguKHguYDguJnguLXguKLguKHguILguK3guIfguIHguLLguKPguYDguJvguYfguJnguKrguKHguLLguIrguLTguIHguYDguJfguYjguLLguJnguLHguYnguJkuIOC4quC4oeC4suC4iuC4tOC4geC4oOC4suC4nuC4guC4reC4hyBVbmljb2RlIENvbnNvcnRpdW0g4LmA4Lib4Li04LiU4LiB4Lin4LmJ4Liy4LiH4Liq4Liz4Lir4Lij4Lix4Lia4Lit4LiH4LiE4LmM4LiB4Lij4Lir4Lij4Li34Lit4Lia4Li44LiE4LiE4Lil4LmD4LiU4LmGIOC5g+C4meC5guC4peC4geC4l+C4teC5iOC4leC5ieC4reC4h+C4geC4suC4o+C4quC4meC4seC4muC4quC4meC4uOC4mSBVbmljb2RlIFN0YW5kYXJkIOC5geC4peC4sOC4iuC5iOC4p+C4ouC5gOC4q+C4peC4t+C4reC4geC4suC4o+C4guC4ouC4suC4ouC4leC4seC4p+C5geC4peC4sOC4geC4suC4o+C4meC4syBVbmljb2RlIOC5hOC4m+C5g+C4iuC5ieC4h+C4suC4mS4gCisKK+C4quC4s+C4q+C4o+C4seC4muC4guC5ieC4reC4oeC4ueC4peC5gOC4nuC4tOC5iOC4oeC5gOC4leC4tOC4oSwg4LmD4Lir4LmJ4LiU4Li54LiX4Li14LmIIEdsb3NzYXJ5LCBTYW1wbGUgVW5pY29kZS1FbmFibGVkIFByb2R1Y3RzLCBUZWNobmljYWwgSW50cm9kdWN0aW9uIOC5geC4peC4sCBVc2VmdWwgUmVzb3VyY2VzLgorCivguYDguJvguYfguJnguKHguJnguLjguKnguKLguYzguKrguLjguJTguJvguKPguLDguYDguKrguKPguLTguJDguYDguKXguLTguKjguITguLjguJPguITguYjguLIKK+C4geC4p+C5iOC4suC4muC4o+C4o+C4lOC4suC4neC4ueC4h+C4quC4seC4leC4p+C5jOC5gOC4lOC4o+C4seC4iOC4ieC4suC4mQor4LiI4LiH4Lid4LmI4Liy4Lif4Lix4LiZ4Lie4Lix4LiS4LiZ4Liy4Lin4Li04LiK4Liy4LiB4Liy4LijCivguK3guKLguYjguLLguKXguYnguLLguIfguJzguKXguLLguI3guKTguYXguYDguILguYjguJnguIbguYjguLLguJrguLXguJHguLLguYPguITguKMKK+C5hOC4oeC5iOC4luC4t+C4reC5guC4l+C4qeC5guC4geC4o+C4mOC5geC4iuC5iOC4h+C4i+C4seC4lOC4ruC4tuC4lOC4ruC4seC4lOC4lOC5iOC4sgor4Lir4Lix4LiU4Lit4Lig4Lix4Lii4LmA4Lir4Lih4Li34Lit4LiZ4LiB4Li14Lis4Liy4Lit4Lix4LiK4LiM4Liy4Liq4Lix4LiiCivguJvguI/guLTguJrguLHguJXguLTguJvguKPguLDguJ7guKTguJXguLTguIHguI7guIHguLPguKvguJnguJTguYPguIgKK+C4nuC4ueC4lOC4iOC4suC5g+C4q+C5ieC4iOC5iuC4sCDguYYg4LiI4LmL4LiyIOC5hiDguJnguYjguLLguJ/guLHguIfguYDguK3guKLguK8KKwor4LmB4Lir4Lil4LmI4LiH4LiX4Li14LmI4Lih4LiyIDog4Liq4Lih4Liy4LiE4Lih4LiE4Lit4Lih4Lie4Li04Lin4LmA4LiV4Lit4Lij4LmM4LmB4Lir4LmI4LiH4Lib4Lij4Liw4LmA4LiX4Lio4LmE4LiX4LiiCisKK+C4heC4meC4g+C4p+C4lCBraG8ga2h1YXQgYW5kIGtobyBraG9uCitAVElUTEVDQVNFQAor4LiB4LmK4LiB4LmA4Liu4LiHIOC5geC4i+C5iOC5geC4leC5iQor4LiB4LiK4LiB4LijIOC4qOC4o+C4suC4l+C4mOC4l+C4seC4lQor4LiB4LiV4Li04LiB4LiyIOC4reC4seC4h+C4hOC4quC4uOC4oOC4kwor4LiB4LiZ4LiBIOC4mOC4o+C4o+C4oeC4m+C4o+C4sOC4l+C4teC4mwor4LiB4LiZ4LiBIOC4p+C4h+C4qOC5jOC4l+C4reC4h+C4qOC4o+C4tQor4LiB4LiZ4LiB4LiB4LijIOC4iuC5ieC4suC4h+C5gOC4ouC5h+C4meC4ieC5iOC4swor4LiB4LiZ4LiB4LiJ4Lix4LiV4Lij4LmMIOC4luC4suC4p+C4o+C4meC4seC4meC4l+C5jAor4LiB4LiZ4LiB4LiZ4Lin4LilIOC5guC4m+C4qeC4ouC4sOC4meC4seC4meC4l+C4meC5jAor4LiB4LiZ4LiB4Lie4LijIOC4hOC4oeC4hOC4suC4ogor4LiB4LiZ4LiB4Lie4LijIOC4leC4teC4o+C5gOC4peC4tOC4qOC4nuC4suC4meC4tOC4igor4LiB4LiZ4LiB4Lie4LijIOC4nuC4seC4meC4l+C4owor4LiB4LiZ4LiB4Lie4LijIOC4qOC4o+C4teC4muC4seC4k+C4keC4tOC4lQor4LiB4LiZ4LiB4Lie4LijIOC4reC4leC4tOC4p+C4o+C4o+C4k+C4suC4nuC4seC4kuC4meC5jAor4LiB4LiZ4LiB4Lie4Lij4Lij4LiTIOC4qOC4o+C4teC4p+C4meC4suC4oOC4tOC4o+C4oeC4ouC5jAor4LiB4LiZ4LiB4Lij4Lix4LiV4LiZ4LmMIOC5gOC4geC4teC4ouC4o+C4leC4tOC4ouC4tOC5iOC4h+C4reC4seC4h+C4qOC4uOC4peC4tQor4LiB4LiZ4LiB4Lij4Lix4LiV4LiZ4LmMIOC4quC4uOC4mOC4o+C4o+C4oeC4nuC4tOC4l+C4seC4geC4qeC5jAor4LiB4LiZ4LiB4Lin4Lij4Lij4LiTIOC4hOC4h+C4hOC4suC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kAor4LiB4LiZ4LiB4Lin4Lij4Lij4LiTIOC5geC4i+C5iOC5gOC4leC4teC4ouC4pwor4LiB4LiZ4LiB4Lin4Lij4Lij4LiTIOC4muC4uOC4jeC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kAor4LiB4LiZ4LiB4Lin4Lij4Lij4LiTIOC4o+C4seC4geC4l+C4o+C4seC4nuC4ouC5jAor4LiB4LiZ4LiB4Lin4Lij4Lij4LiTIOC4quC4seC4iOC4iOC4nuC4h+C4qeC5jAor4LiB4LiZ4LiB4Lin4Lij4Lij4LiTIOC4reC4uOC5ieC4ouC4p+C4h+C4qOC5jOC5hOC4nuC4qOC4suC4pQor4LiB4LiZ4LiB4Lio4Lix4LiB4LiU4Li04LmMIOC4ouC4tOC5iOC4h+C4ouC4hwor4LiB4LiZ4LiB4LmB4LiB4LmJ4LinIOC4geC4o+C4quC4oeC4tOC4lQor4LiB4LiZ4Li04Lip4LiQ4LiyIOC4l+C4meC4uOC4luC4meC4reC4oeC4o+C4suC4qeC4juC4o+C5jAor4LiB4LiZ4Li04Lip4LiQ4LiyIOC4q+C4p+C4seC4h+C4p+C4tOC4muC4ueC4peC4ouC5jOC4geC4tOC4iAor4LiB4Lih4LilIOC4geC4suC4jeC4iOC4meC5guC4o+C4iOC4meC5jAor4LiB4Lih4LilIOC4hOC4seC4oeC4oOC4teC4o+C5jAor4LiB4Lih4LilIOC5gOC4iOC4leC4meC5jOC4oeC4h+C4hOC4peC4o+C4seC4leC4meC5jAor4LiB4Lih4LilIOC4iuC4ueC4leC4o+C4sOC4geC4ueC4peC4mOC4o+C4o+C4oQorQFNFVCBbWzp0aGFpOl0gXHUwRTAxLVx1MEUzQVx1MEU0MC1cdTBFNUJdClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L1RyYW5zbGl0ZXJhdGluZ1RleHRDb21wb25lbnQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9UcmFuc2xpdGVyYXRpbmdUZXh0Q29tcG9uZW50LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2Q2Njk3MgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9UcmFuc2xpdGVyYXRpbmdUZXh0Q29tcG9uZW50LmphdmEKQEAgLTAsMCArMSwyNjMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9UcmFuc2xpdGVyYXRpbmdUZXh0Q29tcG9uZW50LmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDMvMTkgMDA6MTc6MjcgJCAKKyAqICRSZXZpc2lvbjogMS41ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby50cmFuc2xpdDsKKworaW1wb3J0IGphdmEuYXd0Lio7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuKjsKK2ltcG9ydCBqYXZhLnRleHQuKjsKK2ltcG9ydCBqYXZhLmF3dC5kYXRhdHJhbnNmZXIuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi5kZW1vLmltcGwuKjsKKworLyoqCisgKiBBIHN1YmNsYXNzIG9mIHtAbGluayBEdW1iVGV4dENvbXBvbmVudH0gdGhhdCBwYXNzZXMga2V5IGV2ZW50cyB0aHJvdWdoCisgKiBhIHtAbGluayBjb20uaWJtLmljdS50ZXh0LlRyYW5zbGl0ZXJhdG9yfS4KKyAqCisgKiA8cD5Db3B5cmlnaHQgJmNvcHk7IElCTSBDb3Jwb3JhdGlvbiAxOTk5LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAdmVyc2lvbiAkUkNTZmlsZTogVHJhbnNsaXRlcmF0aW5nVGV4dENvbXBvbmVudC5qYXZhLHYgJCAkUmV2aXNpb246IDEuNSAkICREYXRlOiAyMDAyLzAzLzE5IDAwOjE3OjI3ICQKKyAqLworcHVibGljIGNsYXNzIFRyYW5zbGl0ZXJhdGluZ1RleHRDb21wb25lbnQgZXh0ZW5kcyBEdW1iVGV4dENvbXBvbmVudCB7CisKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIERFQlVHID0gZmFsc2U7CisKKyAgICBwcml2YXRlIFRyYW5zbGl0ZXJhdG9yIHRyYW5zbGl0ID0gbnVsbDsKKyAgICAKKyAgICAvLyBOT1RFOiBESVNBQkxFIFRIRSBTVEFSVCBBTkQgQ1VSU09SIFVOVElMIFdFIENBTiBHRVQgSVQgVE8gV09SSyBBVCBBTEwKKworICAgIC8vIEluZGV4IGludG8gZ2V0VGV4dCgpIHdoZXJlIHRoZSBzdGFydCBvZiB0cmFuc2xpdGVyYXRpb24gaXMuCisgICAgLy8gQXMgd2UgY29tbWl0IHRleHQgZHVyaW5nIHRyYW5zbGl0ZXJhdGlvbiwgd2UgYWR2YW5jZQorICAgIC8vIHRoaXMuCisgICAgLy9wcml2YXRlIGludCBzdGFydCA9IDA7CisKKyAgICAvLyBJbmRleCBpbnRvIGdldFRleHQoKSB3aGVyZSB0aGUgY3Vyc29yIGlzOyBjdXJzb3IgPj0gc3RhcnQKKyAgICAvL3ByaXZhdGUgaW50IGN1cnNvciA9IDA7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgIlx1MDBBOSBJQk0gQ29ycG9yYXRpb24gMTk5OS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IuCisgICAgICovCisgICAgcHVibGljIFRyYW5zbGl0ZXJhdGluZ1RleHRDb21wb25lbnQoKSB7CisgICAgICAgIHN1cGVyKCk7CisgICAgICAgIC8qCisgICAgICAgIGFkZEFjdGlvbkxpc3RlbmVyKG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgLy8gV2UgZ2V0IGFuIEFjdGlvbkV2ZW50IG9ubHkgd2hlbiB0aGUgc2VsZWN0aW9uIGNoYW5nZXMKKyAgICAgICAgICAgICAgICByZXNldFRyYW5zbGl0ZXJhdGlvblN0YXJ0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICAqLworICAgIH0KKworICAgIC8qKgorICAgICAqIHtAbGluayBEdW1iVGV4dENvbXBvbmVudH0gQVBJLiAgRnJhbWV3b3JrIG1ldGhvZCB0aGF0IGlzIGNhbGxlZAorICAgICAqIHdoZW4gYSA8Y29kZT5LZXlFdmVudDwvY29kZT4gaXMgcmVjZWl2ZWQuICBUaGlzIGltcGxlbWVudGF0aW9uCisgICAgICogcnVucyB0aGUgbmV3IGNoYXJhY3RlciB0aHJvdWdoIHRoZSBjdXJyZW50CisgICAgICogPGNvZGU+VHJhbnNsaXRlcmF0b3I8L2NvZGU+LCBpZiBvbmUgaXMgc2V0LCBhbmQgaW5zZXJ0cyB0aGUKKyAgICAgKiB0cmFuc2xpdGVyYXRlZCB0ZXh0IGludG8gdGhlIGJ1ZmZlci4KKyAgICAgKi8KKwlwcm90ZWN0ZWQgdm9pZCBoYW5kbGVLZXlUeXBlZChLZXlFdmVudCBlKSB7CisgICAgICAgIGNoYXIgY2ggPSBlLmdldEtleUNoYXIoKTsKKyAgICAgICAgCisgICAgICAgIGlmICh0cmFuc2xpdCA9PSBudWxsKSB7CisgICAgICAgICAgICBzZXRLZXlTdGFydCgtMSk7CisgICAgICAgICAgICBzdXBlci5oYW5kbGVLZXlUeXBlZChlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHRyYW5zbGl0ZXJhdGUoY2gsIGZhbHNlKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgZmx1c2goKSB7CisgICAgICAgIGlmICh0cmFuc2xpdCAhPSBudWxsKSB0cmFuc2xpdGVyYXRlKCdcdUZGRkYnLCB0cnVlKTsKKyAgICB9CisgICAgCisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgdHJhbnNsaXRlcmF0ZShjaGFyIGNoLCBib29sZWFuIGZsdXNoKSB7CisKKyAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgY2FzZSBtb3RpdmF0ZXMgdGhlIHR3byBsaW5lcyB0aGF0IHJlY29tcHV0ZQorICAgICAgICAvLyBzdGFydCBhbmQgY3Vyc29yIGJlbG93LgorCisgICAgICAgIC8vICAgICAgIiAgICAgIiAgIAorICAgICAgICAvLyBhIGIgYyBxIHJ8cyB0IHUgbSBtCisgICAgICAgIC8vIDAgMSAyIDMgNCA1IDYgNyA4IDkKKyAgICAgICAgLy8gICAgICAgMCAxIDIKKworICAgICAgICAvLyBzdGFydCAzLCBjdXJzb3IgNSwgc2VsIDYgLT4geyAwLCAzLCAyIH0KKyAgICAgICAgLy8gOiBuZXcgaW50W10geyAwLCBzZWwgLSBzdGFydCwgY3Vyc29yIC0gc3RhcnQgfTsKKyAgICAgICAgCisgICAgICAgIC8vIHN6Pjk5fDkKKworICAgICAgICAvLyAgICAgICIgICAgIHsgICAiCisgICAgICAgIC8vIGEgYiBjIHEgciA5IDl8OSB0IHUgbSBtCisgICAgICAgIC8vIDAgMSAyIDMgNCA1IDYgNyA4IDkgYSBiCisgICAgICAgIC8vICAgICAgIDAgMSAyIDMgNAorCisgICAgICAgIC8vIHsgMywgNSwgNCB9IC0+IHN0YXJ0IDYsIGN1cnNvciA3LCBzZWwgOAorICAgICAgICAvLyA6IHN0YXJ0ICs9IGluZGV4WzBdOworICAgICAgICAvLyA6IGN1cnNvciA9IHN0YXJ0ICsgaW5kZXhbMl0gLSBpbmRleFswXTsKKyAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgLy8gTmVlZCB0byBzYXZlIHN0YXJ0IGJlY2F1c2UgY2FsbHMgdG8gcmVwbGFjZVJhbmdlIHdpbGwgdXBkYXRlCisgICAgICAgIC8vIHN0YXJ0IGFuZCBjdXJzb3IuCisgICAgICAgIC8vaW50IHNhdmVTdGFydCA9IHN0YXJ0OworCisgICAgICAgIGludCBlbmQgPSBmbHVzaCA/IGdldFNlbGVjdGlvbkVuZCgpIDogZ2V0U2VsZWN0aW9uU3RhcnQoKTsKKyAgICAgICAgU3RyaW5nIHNvdXJjZVRleHQgPSBnZXRUZXh0KCkuc3Vic3RyaW5nKDAsZW5kKTsKKyAgICAgICAgUmVwbGFjZWFibGVTdHJpbmcgYnVmID0gbmV3IFJlcGxhY2VhYmxlU3RyaW5nKHNvdXJjZVRleHQpOworICAgICAgICAvKmJ1Zi5yZXBsYWNlKDAsIDEsIGdldFRleHQoKS5zdWJzdHJpbmcoc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0U2VsZWN0aW9uU3RhcnQoKSkpOyovCisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24gaW5kZXggPSBuZXcgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24oKTsKKyAgICAgICAgaW5kZXguY29udGV4dExpbWl0ID0gYnVmLmxlbmd0aCgpOworICAgICAgICBpbmRleC5jb250ZXh0U3RhcnQgPSAwOworICAgICAgICBpbmRleC5zdGFydCA9IGdldEtleVN0YXJ0KCk7CisgICAgICAgIGlmIChpbmRleC5zdGFydCA9PSAtMSkgaW5kZXguc3RhcnQgPSBnZXRTZWxlY3Rpb25TdGFydCgpOworICAgICAgICBpbmRleC5saW1pdCA9IGJ1Zi5sZW5ndGgoKTsKKworICAgICAgICBTdHJpbmdCdWZmZXIgbG9nID0gbnVsbDsKKyAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRyYW5zbGl0ZXJhdG9yOiAiICsgdHJhbnNsaXQuZ2V0SUQoKSk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkZyb206XHQiICsgJyInICsgYnVmLnRvU3RyaW5nKCkgKyAnIicKKyAgICAgICAgICAgICAgICArICI7IHtjczogIiArIGluZGV4LmNvbnRleHRTdGFydAorICAgICAgICAgICAgICAgICsgIiwgczogIiArIGluZGV4LnN0YXJ0CisgICAgICAgICAgICAgICAgKyAiLCBsOiAiICsgaW5kZXgubGltaXQKKyAgICAgICAgICAgICAgICArICIsIGNsOiAiICsgaW5kZXguY29udGV4dExpbWl0IAorICAgICAgICAgICAgICAgICsgIn0iICsgIjsgJyIgKyBjaCArICInIgorICAgICAgICAgICAgICAgICsgIiAiICsgZ2V0S2V5U3RhcnQoKQorICAgICAgICAgICAgKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmbHVzaCkgeworICAgICAgICAgICAgdHJhbnNsaXQuZmluaXNoVHJhbnNsaXRlcmF0aW9uKGJ1ZiwgaW5kZXgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdHJhbnNsaXQudHJhbnNsaXRlcmF0ZShidWYsIGluZGV4LCBjaCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUbzpcdCIgKyAnIicgKyBidWYudG9TdHJpbmcoKSArICciJworICAgICAgICAgICAgICAgICsgIjsge2NzOiAiICsgaW5kZXguY29udGV4dFN0YXJ0CisgICAgICAgICAgICAgICAgKyAiLCBzOiAiICsgaW5kZXguc3RhcnQKKyAgICAgICAgICAgICAgICArICIsIGw6ICIgKyBpbmRleC5saW1pdAorICAgICAgICAgICAgICAgICsgIiwgY2w6ICIgKyBpbmRleC5jb250ZXh0TGltaXQgCisgICAgICAgICAgICAgICAgKyAifSIKKyAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgIH0KKyAgICAgICAgLyoKKyAgICAgICAgYnVmLnJlcGxhY2UoYnVmLmxlbmd0aCgpLCBidWYubGVuZ3RoKCksIFN0cmluZy52YWx1ZU9mKGNoKSk7CisgICAgICAgIHRyYW5zbGl0LnRyYW5zbGl0ZXJhdGUoYnVmKTsKKyAgICAgICAgKi8KKyAgICAgICAgCisgICAgICAgIFN0cmluZyByZXN1bHQgPSBidWYudG9TdHJpbmcoKTsKKyAgICAgICAgLy9pZiAocmVzdWx0LmVxdWFscyhzb3VyY2VUZXh0ICsgY2gpKSByZXR1cm47CisgICAgICAgIAorICAgICAgICByZXBsYWNlUmFuZ2UocmVzdWx0LCAwLCBnZXRTZWxlY3Rpb25FbmQoKSk7CisgICAgICAgIHNldEtleVN0YXJ0KGluZGV4LnN0YXJ0KTsKKyAgICAgICAgCisgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgc3RhcnQgaGFzIGJlZW4gY2hhbmdlZCBieSB0aGUgY2FsbGJhY2sgdG8KKyAgICAgICAgLy8gcmVzZXRUcmFuc2xpdGVyYXRvclN0YXJ0KCkgdmlhIHJlcGxhY2VSYW5nZSgpIC0tIHNvIHVzZSBvdXIKKyAgICAgICAgLy8gbG9jYWwgY29weSwgc2F2ZVN0YXJ0LgorCisgICAgICAgIC8vIFRoZSBTVEFSVCBpbmRleCBpcyB6ZXJvLWJhc2VkLiAgT24gZW50cnkgdG8gdHJhbnNsaXRlcmF0ZSgpLAorICAgICAgICAvLyBpdCB3YXMgemVyby4gIFdlIGNhbiB0aGVyZWZvcmUganVzdCBhZGQgaXQgdG8gb3VyIG9yaWdpbmFsCisgICAgICAgIC8vIGdldFRleHQoKS1iYXNlZCBpbmRleCB2YWx1ZSBvZiBzdGFydCAoaW4gc2F2ZVN0YXJ0KSB0byBnZXQKKyAgICAgICAgLy8gdGhlIG5ldyBnZXRUZXh0KCktYmFzZWQgc3RhcnQuCisvLyAgICAgICAgc3RhcnQgPSBzYXZlU3RhcnQgKyBpbmRleC5jb250ZXh0U3RhcnQ7CisKKyAgICAgICAgLy8gTWFrZSB0aGUgY3Vyc29yIGdldFRleHQoKS1iYXNlZC4gIFRoZSBDVVJTT1IgaW5kZXggaXMgemVyby1iYXNlZC4KKy8vICAgICAgICBjdXJzb3IgPSBzdGFydCArIGluZGV4LnN0YXJ0IC0gaW5kZXguY29udGV4dFN0YXJ0OworCisvKgorICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgIFN0cmluZyBvdXQgPSBidWYudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGxvZy5hcHBlbmQob3V0LnN1YnN0cmluZygwLCBpbmRleC5jb250ZXh0U3RhcnQpKS4KKyAgICAgICAgICAgICAgICBhcHBlbmQoJ3snKS4KKyAgICAgICAgICAgICAgICBhcHBlbmQob3V0LnN1YnN0cmluZyhpbmRleC5jb250ZXh0U3RhcnQsIGluZGV4LnN0YXJ0KSkuCisgICAgICAgICAgICAgICAgYXBwZW5kKCd8JykuCisgICAgICAgICAgICAgICAgYXBwZW5kKG91dC5zdWJzdHJpbmcoaW5kZXguc3RhcnQpKS4KKyAgICAgICAgICAgICAgICBhcHBlbmQoJyInKTsKKyAgICAgICAgICAgIGxvZy5hcHBlbmQoIiwgeyIgKyBpbmRleC5jb250ZXh0U3RhcnQgKyAiLCAiICsgaW5kZXguY29udGV4dExpbWl0ICsgIiwgIiArIGluZGV4LnN0YXJ0ICsgIn0sICIpOworLy8gICAgICAgICAgICBsb2cuYXBwZW5kKCJzdGFydCAiICsgc3RhcnQgKyAiLCBjdXJzb3IgIiArIGN1cnNvcik7CisgICAgICAgICAgICBsb2cuYXBwZW5kKCIsIHNlbCAiICsgZ2V0U2VsZWN0aW9uU3RhcnQoKSk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZXNjYXBlKGxvZy50b1N0cmluZygpKSk7CisgICAgICAgIH0KKyAgICAgICAgKi8KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UudGV4dC5UcmFuc2xpdGVyYXRvcn0gYW5kIGRpcmVjdGlvbiB0bworICAgICAqIHVzZSB0byBwcm9jZXNzIGluY29taW5nIDxjb2RlPktleUV2ZW50PC9jb2RlPnMuCisgICAgICogQHBhcmFtIHQgdGhlIHtAbGluayBjb20uaWJtLmljdS50ZXh0LlRyYW5zbGl0ZXJhdG9yfSB0byB1c2UKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUcmFuc2xpdGVyYXRvcihUcmFuc2xpdGVyYXRvciB0KSB7CisgICAgICAgIC8qCisgICAgICAgIGlmICh0cmFuc2xpdCAhPSB0KSB7IC8vIFtzaWNdIHBvaW50ZXIgY29tcGFyZSBvazsgc2luZ2xldG9ucworICAgICAgICAgICAgcmVzZXRUcmFuc2xpdGVyYXRpb25TdGFydCgpOworICAgICAgICB9CisgICAgICAgICovCisgICAgICAgIHRyYW5zbGl0ID0gdDsKKyAgICB9CisKKyAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0VHJhbnNsaXRlcmF0b3IoKSB7CisgICAgICAgIHJldHVybiB0cmFuc2xpdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXNldCB0aGUgc3RhcnQgcG9pbnQgYXQgd2hpY2ggdHJhbnNsaXRlcmF0aW9uIGJlZ2lucy4gIFRoaXMKKyAgICAgKiBuZWVkcyB0byBiZSBkb25lIHdoZW4gdGhlIHVzZXIgbW92ZXMgdGhlIGN1cnNvciBvciB3aGVuIHRoZQorICAgICAqIGN1cnJlbnQge0BsaW5rIGNvbS5pYm0uaWN1LnRleHQuVHJhbnNsaXRlcmF0b3J9IGlzIGNoYW5nZWQuIAorICAgICAqLworICAgICAvKgorICAgIHByaXZhdGUgdm9pZCByZXNldFRyYW5zbGl0ZXJhdGlvblN0YXJ0KCkgeworICAgICAgICBzdGFydCA9IGdldFNlbGVjdGlvblN0YXJ0KCk7CisgICAgICAgIGN1cnNvciA9IHN0YXJ0OworICAgIH0KKyAgICAqLworCisgICAgLyoqCisgICAgICogRXNjYXBlIG5vbi1BU0NJSSBjaGFyYWN0ZXJzIGFzIFVuaWNvZGUuCisgICAgICogSlVTVCBGT1IgREVCVUdHSU5HIE9VVFBVVC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBlc2NhcGUoU3RyaW5nIHMpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHMubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgY2hhciBjID0gcy5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoYyA+PSAnICcgJiYgYyA8PSAweDAwN0YpIHsKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnXFwnKSB7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIlxcXFwiKTsgLy8gVGhhdCBpcywgIlxcIgorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCJcXHUiKTsKKyAgICAgICAgICAgICAgICBpZiAoYyA8IDB4MTAwMCkgeworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCcwJyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjIDwgMHgxMDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJzAnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjIDwgMHgxMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJzAnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKEludGVnZXIudG9IZXhTdHJpbmcoYykpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvZGVtby5iYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvZGVtby5iYXQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODA3NTliYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9kZW1vLmJhdApAQCAtMCwwICsxLDE5IEBACitSRU0gLyoKK1JFTSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCitSRU0gICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKK1JFTSAgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorUkVNICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCitSRU0gICoKK1JFTSAgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvZGVtby5iYXQsdiAkIAorUkVNICAqICREYXRlOiAyMDAwLzAzLzEwIDAzOjQ3OjQ0ICQgCitSRU0gICogJFJldmlzaW9uOiAxLjIgJAorUkVNICAqCitSRU0gICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCitSRU0gICovCitSRU0gRm9yIGJlc3QgcmVzdWx0cywgcnVuIHRoZSBkZW1vIGFzIGFuIGFwcGxldCBpbnNpZGUgb2YgTmV0c2NhcGUKK1JFTSB3aXRoIEJpdHN0cmVhbSBDeWJlcmJpdCBpbnN0YWxsZWQuCisKK1JFTSBzZXR1cCB5b3VyIEpESyAxLjEueCBwYXRoIGFuZCBjbGFzc3BhdGggaGVyZToKK2NhbGwgSkRLMTEKK3NldCBDTEFTU1BBVEg9Li4vdHJhbnNsaXQuamFyOyVDTEFTU1BBVEglCitqYXZhdyBEZW1vCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvZGVtby5odG1sIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L2RlbW8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jNjU1ZGM5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L2RlbW8uaHRtbApAQCAtMCwwICsxLDI3IEBACis8SFRNTD4KKzxIRUFEPgorPFRJVExFPlRyYW5zbGl0ZXJhdGlvbiBEZW1vPC9USVRMRT4KKzwvSEVBRD4KKzxCT0RZPgorCis8QVBQTEVUIENPREU9ImNvbS5pYm0uZGVtby50cmFuc2xpdC5EZW1vQXBwbGV0LmNsYXNzIiBXSURUSD0xNDAgSEVJR0hUPTMzPjwvQVBQTEVUPgorCis8SFI+CisKK0lmIHlvdSBkb24ndCBzZWUgYSBidXR0b24gYWJvdmUsIHRoZW4geW91ciBicm93c2VyIGlzIGZhaWxpbmcgdG8KK2xvY2F0ZSB0aGUgbmVjZXNzYXJ5IEphdmEgY2xhc3MgZmlsZXMuCisKKzxQPgorCitPbmUgd2F5IHRvIG1ha2UgdGhpcyB3b3JrIGlzIHRvIGNvcHkgdGhpcyBIVE1MIGZpbGUgdG8KKzxjb2RlPmljdTRqL3NyYzwvY29kZT4sIGFuZCBtYWtlIHN1cmUgdGhlIEphdmEgZmlsZXMgaW4gdGhlIGRpcmVjdG9yaWVzCit1bmRlciA8Y29kZT5pY3U0ai9zcmMvY29tPC9jb2RlPiBhcmUgYnVpbHQuICBUaGVuIG9wZW4gdGhpcyBIVE1MIGZpbGUKK3VzaW5nIGEgYnJvd3NlciBvciBhcHBsZXR2aWV3ZXIuCisKKzxQPgorCitGb3IgYmVzdCByZXN1bHRzLCBydW4gdGhpcyBkZW1vIGFzIGFuIGFwcGxldCB3aXRoaW4gTmV0c2NhcGUgd2l0aAorQml0c3RyZWFtIEN5YmVyYml0IGluc3RhbGxlZC4KKworPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L3BhY2thZ2UuaHRtbCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjAxNDY0OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9wYWNrYWdlLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMiBGaW5hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisgICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9wYWNrYWdlLmh0bWwsdiAkCisgICRSZXZpc2lvbjogMS4xICQKKyAgJERhdGU6IDIwMDAvMDMvMTUgMTc6NDQ6MTIgJAorLS0+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CitUcmFuc2xpdGVyYXRvciBkZW1vIGFwcGxpYXRpb24uCis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L3Jlc291cmNlcy9UcmFuc2xpdGVyYXRvcl9IYW5fUGlueWluLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9yZXNvdXJjZXMvVHJhbnNsaXRlcmF0b3JfSGFuX1Bpbnlpbi50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGY3YzIxZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9yZXNvdXJjZXMvVHJhbnNsaXRlcmF0b3JfSGFuX1Bpbnlpbi50eHQKQEAgLTAsMCArMSwyMDM2NSBAQAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvcHlyaWdodCAoYykgMTk5OS0yMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisjIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEdlbmVyYXRlZDogRnJpIEphbiAyNiAxNToxNDo0OCAyMDAxCisjIFRvb2w6IC4uXC4uXHRvb2xzXHRyYW5zbGl0XGhhbnBpbnlpbi5wbAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgSGFuLVBpbnlpbgorCisjIE1lY2hhbmljYWxseSBkZXJpdmVkIGZyb20gXGRlc2tcVW5paGFuLnR4dCAoZnRwLnVuaWNvZGUub3JnKSwgdmVyc2lvbjoKKyMKKyMJTmFtZTogICAgICAgICAgICAgVW5paGFuIGRhdGFiYXNlCisjCVVuaWNvZGUgdmVyc2lvbjogIDMuMGIxCisjCVRhYmxlIHZlcnNpb246ICAgIDEuMQorIwlEYXRlOiAgICAgICAgICAgICAyIEp1bHkgMTk5OQorIworIwlDb3B5cmlnaHQgKGMpIDE5OTYtMTk5OSBVbmljb2RlLCBJbmMuICBBbGwgUmlnaHRzIHJlc2VydmVkLgorCivkuIEgPiBkxKtuZzsgIzRFMDEKK+S4giA+IGvEg287ICM0RTAyCivkuIMgPiBxxKs7ICM0RTAzCivkuIQgPiBzaMOgbmc7ICM0RTA0CivkuIUgPiB4acOgOyAjNEUwNQor5LiHID4gbcOyOyAjNEUwNwor5LiIID4gemjDoG5nOyAjNEUwOAor5LiJID4gc8SBbjsgIzRFMDkKK+S4iiA+IHNow6BuZzsgIzRFMEEKK+S4iyA+IHhpw6A7ICM0RTBCCivkuIwgPiBqxKs7ICM0RTBDCivkuI0gPiBiw7k7ICM0RTBECivkuI4gPiB5xa07ICM0RTBFCivkuI8gPiBtacSDbjsgIzRFMEYKK+S4kCA+IGfDoGk7ICM0RTEwCivkuJEgPiBjaMWPdTsgIzRFMTEKK+S4kiA+IGNoxY91OyAjNEUxMgor5LiTID4gemh1xIFuOyAjNEUxMwor5LiUID4gcWnElTsgIzRFMTQKK+S4lSA+IHDEqzsgIzRFMTUKK+S4liA+IHNow6w7ICM0RTE2CivkuJcgPiBzaMOsOyAjNEUxNwor5LiYID4gccSrdTsgIzRFMTgKK+S4mSA+IGLErW5nOyAjNEUxOQor5LiaID4gecOoOyAjNEUxQQor5LibID4gY8Ozbmc7ICM0RTFCCivkuJwgPiBkxY1uZzsgIzRFMUMKK+S4nSA+IHPEqzsgIzRFMUQKK+S4niA+IGNow6luZzsgIzRFMUUKK+S4nyA+IGTEq3U7ICM0RTFGCivkuKAgPiBxxKt1OyAjNEUyMAor5LihID4gbGnEg25nOyAjNEUyMQor5LiiID4gZMSrdTsgIzRFMjIKK+S4oyA+IHnFj3U7ICM0RTIzCivkuKQgPiBsacSDbmc7ICM0RTI0CivkuKUgPiB5w6FuOyAjNEUyNQor5LimID4gYsOsbmc7ICM0RTI2CivkuKcgPiBzxIFuZzsgIzRFMjcKK+S4qCA+IGfFrW47ICM0RTI4CivkuKkgPiBqxKt1OyAjNEUyOQor5LiqID4gZ8OoOyAjNEUyQQor5LirID4gecSBOyAjNEUyQgor5LisID4gcWnDoW5nOyAjNEUyQwor5LitID4gemjFjW5nOyAjNEUyRAor5LiuID4gasStOyAjNEUyRQor5LivID4gamnDqDsgIzRFMkYKK+S4sCA+IGbEk25nOyAjNEUzMAor5LixID4gZ3XDoG47ICM0RTMxCivkuLIgPiBjaHXDoG47ICM0RTMyCivkuLMgPiBjaMSDbjsgIzRFMzMKK+S4tCA+IGzDrW47ICM0RTM0CivkuLUgPiB6aMWtbzsgIzRFMzUKK+S4tiA+IHpoxa07ICM0RTM2CivkuLggPiB3w6FuOyAjNEUzOAor5Li5ID4gZMSBbjsgIzRFMzkKK+S4uiA+IHfDqGk7ICM0RTNBCivkuLsgPiB6aMWtOyAjNEUzQgor5Li8ID4gasStbmc7ICM0RTNDCivkuL0gPiBsw6w7ICM0RTNECivkuL4gPiBqxa07ICM0RTNFCivkuL8gPiBwacSVOyAjNEUzRgor5LmAID4gZsO6OyAjNEU0MAor5LmBID4gecOtOyAjNEU0MQor5LmCID4gecOsOyAjNEU0Mgor5LmDID4gbsSDaTsgIzRFNDMKK+S5hSA+IGrErXU7ICM0RTQ1CivkuYYgPiBqxK11OyAjNEU0Ngor5LmHID4gemjDqTsgIzRFNDcKK+S5iCA+IHnEgW87ICM0RTQ4CivkuYkgPiB5w6w7ICM0RTQ5CivkuYsgPiB6aMSrOyAjNEU0Qgor5LmMID4gd8WrOyAjNEU0Qwor5LmNID4gemjDoDsgIzRFNEQKK+S5jiA+IGjFqzsgIzRFNEUKK+S5jyA+IGbDoTsgIzRFNEYKK+S5kCA+IGzDqDsgIzRFNTAKK+S5kSA+IHpow7JuZzsgIzRFNTEKK+S5kiA+IHDEq25nOyAjNEU1Mgor5LmTID4gcGFuZzsgIzRFNTMKK+S5lCA+IHFpw6FvOyAjNEU1NAor5LmVID4gaMWtOyAjNEU1NQor5LmWID4gZ3XEgWk7ICM0RTU2CivkuZcgPiBjaMOpbmc7ICM0RTU3CivkuZggPiBjaMOpbmc7ICM0RTU4CivkuZkgPiB5xK07ICM0RTU5CivkuZogPiB5xK1uOyAjNEU1QQor5LmcID4gbWnEkzsgIzRFNUMKK+S5nSA+IGrErXU7ICM0RTVECivkuZ4gPiBxxK07ICM0RTVFCivkuZ8gPiB5xJU7ICM0RTVGCivkuaAgPiB4w607ICM0RTYwCivkuaEgPiB4acSBbmc7ICM0RTYxCivkuaIgPiBnw6BpOyAjNEU2Mgor5LmjID4gZMSrdTsgIzRFNjMKK+S5piA+IHNoxas7ICM0RTY2CivkuaggPiBzaMStOyAjNEU2OAor5LmpID4gasSrOyAjNEU2OQor5LmqID4gbsSBbmc7ICM0RTZBCivkuasgPiBqacSBOyAjNEU2Qgor5LmtID4gc2jDrTsgIzRFNkQKK+S5sCA+IG3Eg2k7ICM0RTcwCivkubEgPiBsdcOgbjsgIzRFNzEKK+S5syA+IHLFrTsgIzRFNzMKK+S5tCA+IHh1w6k7ICM0RTc0CivkubUgPiB5xINuOyAjNEU3NQor5Lm2ID4gZsWtOyAjNEU3Ngor5Lm3ID4gc2jEgTsgIzRFNzcKK+S5uCA+IG7EgzsgIzRFNzgKK+S5uSA+IGfEgW47ICM0RTc5Civkub4gPiBnxIFuOyAjNEU3RQor5Lm/ID4gY2jDrDsgIzRFN0YKK+S6gCA+IGfFq2k7ICM0RTgwCivkuoEgPiBnxIFuOyAjNEU4MQor5LqCID4gbHXDoG47ICM0RTgyCivkuoMgPiBsw61uOyAjNEU4Mwor5LqEID4gecOsOyAjNEU4NAor5LqFID4ganXDqTsgIzRFODUKK+S6hiA+IGxpxINvOyAjNEU4Ngor5LqIID4gecO6OyAjNEU4OAor5LqJID4gemjEk25nOyAjNEU4OQor5LqKID4gc2jDrDsgIzRFOEEKK+S6iyA+IHNow6w7ICM0RThCCivkuowgPiDDqHI7ICM0RThDCivkuo0gPiBjaMO5OyAjNEU4RAor5LqOID4gecO6OyAjNEU4RQor5LqPID4gecO6OyAjNEU4Rgor5LqQID4gecO6OyAjNEU5MAor5LqRID4gecO6bjsgIzRFOTEKK+S6kiA+IGjDuTsgIzRFOTIKK+S6kyA+IHHDrTsgIzRFOTMKK+S6lCA+IHfFrTsgIzRFOTQKK+S6lSA+IGrErW5nOyAjNEU5NQor5LqWID4gc8OsOyAjNEU5Ngor5LqXID4gc8O5aTsgIzRFOTcKK+S6mCA+IGfDqG47ICM0RTk4CivkupkgPiBnw6huOyAjNEU5OQor5LqaID4gecOgOyAjNEU5QQor5LqbID4geGnEkzsgIzRFOUIKK+S6nCA+IHnDoDsgIzRFOUMKK+S6nSA+IHHDrTsgIzRFOUQKK+S6niA+IHnDoDsgIzRFOUUKK+S6nyA+IGrDrTsgIzRFOUYKK+S6oCA+IHTDs3U7ICM0RUEwCivkuqEgPiB3w6FuZzsgIzRFQTEKK+S6oiA+IGvDoG5nOyAjNEVBMgor5LqjID4gdMOgOyAjNEVBMwor5LqkID4gamnEgW87ICM0RUE0CivkuqUgPiBow6BpOyAjNEVBNQor5LqmID4gecOsOyAjNEVBNgor5LqnID4gY2jEg247ICM0RUE3CivkuqggPiBoxJNuZzsgIzRFQTgKK+S6qSA+IG3FrTsgIzRFQTkKK+S6qyA+IHhpxINuZzsgIzRFQUIKK+S6rCA+IGrEq25nOyAjNEVBQwor5LqtID4gdMOtbmc7ICM0RUFECivkuq4gPiBsacOgbmc7ICM0RUFFCivkuq8gPiB4acSDbmc7ICM0RUFGCivkurAgPiBqxKtuZzsgIzRFQjAKK+S6sSA+IHnDqDsgIzRFQjEKK+S6siA+IHHEq247ICM0RUIyCivkurMgPiBiw7M7ICM0RUIzCivkurQgPiB5w7J1OyAjNEVCNAor5Lq1ID4geGnDqDsgIzRFQjUKK+S6tiA+IGTEg247ICM0RUI2CivkurcgPiBsacOhbjsgIzRFQjcKK+S6uCA+IGTFrW87ICM0RUI4CivkurkgPiB3xJVpOyAjNEVCOQor5Lq6ID4gcsOpbjsgIzRFQkEKK+S6uyA+IHLDqW47ICM0RUJCCivkurwgPiBqw607ICM0RUJDCivkur4gPiB3w6FuZzsgIzRFQkUKK+S6vyA+IHnDrDsgIzRFQkYKK+S7gCA+IHNow607ICM0RUMwCivku4EgPiByw6luOyAjNEVDMQor5LuCID4gbMOoOyAjNEVDMgor5LuDID4gZMSrbmc7ICM0RUMzCivku4QgPiB6w6g7ICM0RUM0Civku4UgPiBqxK1uOyAjNEVDNQor5LuGID4gcMWrOyAjNEVDNgor5LuHID4gY2jDs3U7ICM0RUM3Civku4ggPiBixIE7ICM0RUM4Civku4kgPiB6aMSDbmc7ICM0RUM5Civku4ogPiBqxKtuOyAjNEVDQQor5LuLID4gamnDqDsgIzRFQ0IKK+S7jCA+IGLEq25nOyAjNEVDQwor5LuNID4gcsOpbmc7ICM0RUNECivku44gPiBjw7NuZzsgIzRFQ0UKK+S7jyA+IGbDszsgIzRFQ0YKK+S7kCA+IHPEg247ICM0RUQwCivku5EgPiBsw7puOyAjNEVEMQor5LuTID4gY8SBbmc7ICM0RUQzCivku5QgPiB6xK07ICM0RUQ0Civku5UgPiBzaMOsOyAjNEVENQor5LuWID4gdMSBOyAjNEVENgor5LuXID4gemjDoG5nOyAjNEVENwor5LuYID4gZsO5OyAjNEVEOAor5LuZID4geGnEgW47ICM0RUQ5Civku5ogPiB4acSBbjsgIzRFREEKK+S7myA+IHTFq287ICM0RURCCivku5wgPiBow7NuZzsgIzRFREMKK+S7nSA+IHTDs25nOyAjNEVERAor5LueID4gcsOobjsgIzRFREUKK+S7nyA+IHFpxIFuOyAjNEVERgor5LugID4gZ8OhbjsgIzRFRTAKK+S7oSA+IHnDrDsgIzRFRTEKK+S7oiA+IGTDrTsgIzRFRTIKK+S7oyA+IGTDoGk7ICM0RUUzCivku6QgPiBsw6xuZzsgIzRFRTQKK+S7pSA+IHnErTsgIzRFRTUKK+S7piA+IGNow6BvOyAjNEVFNgor5LunID4gY2jDoW5nOyAjNEVFNwor5LuoID4gc8SBOyAjNEVFOAor5LuqID4gecOtOyAjNEVFQQor5LurID4gbcO5OyAjNEVFQgor5LusID4gbWVuOyAjNEVFQwor5LutID4gcsOobjsgIzRFRUQKK+S7riA+IGppxIM7ICM0RUVFCivku68gPiBjaMOgbzsgIzRFRUYKK+S7sCA+IHnEg25nOyAjNEVGMAor5LuxID4gcWnDoW47ICM0RUYxCivku7IgPiB6aMOybmc7ICM0RUYyCivku7MgPiBwxK07ICM0RUYzCivku7QgPiB3w6BuOyAjNEVGNAor5Lu1ID4gd8WtOyAjNEVGNQor5Lu2ID4gamnDoG47ICM0RUY2Civku7cgPiBqacOoOyAjNEVGNwor5Lu4ID4gecSDbzsgIzRFRjgKK+S7uSA+IGbEk25nOyAjNEVGOQor5Lu6ID4gY8SBbmc7ICM0RUZBCivku7sgPiByw6huOyAjNEVGQgor5Lu8ID4gd8Ohbmc7ICM0RUZDCivku70gPiBmw6huOyAjNEVGRAor5Lu+ID4gZMSrOyAjNEVGRQor5Lu/ID4gZsSDbmc7ICM0RUZGCivkvIAgPiB6aMWNbmc7ICM0RjAwCivkvIEgPiBxxK07ICM0RjAxCivkvIIgPiBww6hpOyAjNEYwMgor5LyDID4gecO6OyAjNEYwMwor5LyEID4gZGnDoG87ICM0RjA0CivkvIUgPiBkw7luOyAjNEYwNQor5LyGID4gd8OobjsgIzRGMDYKK+S8hyA+IHnDrDsgIzRGMDcKK+S8iCA+IHjErW47ICM0RjA4CivkvIkgPiBrw6BuZzsgIzRGMDkKK+S8iiA+IHnEqzsgIzRGMEEKK+S8iyA+IGrDrTsgIzRGMEIKK+S8jCA+IMOgaTsgIzRGMEMKK+S8jSA+IHfFrTsgIzRGMEQKK+S8jiA+IGrDrDsgIzRGMEUKK+S8jyA+IGbDujsgIzRGMEYKK+S8kCA+IGbDoTsgIzRGMTAKK+S8kSA+IHjEq3U7ICM0RjExCivkvJIgPiBqw6xuOyAjNEYxMgor5LyTID4gYsSTaTsgIzRGMTMKK+S8lCA+IGTEg247ICM0RjE0CivkvJUgPiBmxas7ICM0RjE1CivkvJYgPiB0xINuZzsgIzRGMTYKK+S8lyA+IHpow7JuZzsgIzRGMTcKK+S8mCA+IHnFjXU7ICM0RjE4CivkvJkgPiBoxa1vOyAjNEYxOQor5LyaID4gaMO5aTsgIzRGMUEKK+S8myA+IHnFrTsgIzRGMUIKK+S8nCA+IGPDuWk7ICM0RjFDCivkvJ0gPiBjaHXDoW47ICM0RjFECivkvJ4gPiBzxINuOyAjNEYxRQor5LyfID4gd8SVaTsgIzRGMUYKK+S8oCA+IGNodcOhbjsgIzRGMjAKK+S8oSA+IGNoxJM7ICM0RjIxCivkvKIgPiB5w6E7ICM0RjIyCivkvKMgPiB4acOgbjsgIzRGMjMKK+S8pCA+IHNoxIFuZzsgIzRGMjQKK+S8pSA+IGNoxIFuZzsgIzRGMjUKK+S8piA+IGzDum47ICM0RjI2CivkvKcgPiBjxIFuZzsgIzRGMjcKK+S8qCA+IHjDuW47ICM0RjI4CivkvKkgPiB4w6xuOyAjNEYyOQor5LyqID4gd8SVaTsgIzRGMkEKK+S8qyA+IHpow7k7ICM0RjJCCivkvK0gPiB4dcOhbjsgIzRGMkQKK+S8riA+IG7DujsgIzRGMkUKK+S8ryA+IGLDszsgIzRGMkYKK+S8sCA+IGfFqzsgIzRGMzAKK+S8sSA+IG7ErTsgIzRGMzEKK+S8siA+IG7ErTsgIzRGMzIKK+S8syA+IHhpw6g7ICM0RjMzCivkvLQgPiBiw6BuOyAjNEYzNAor5Ly1ID4geMO5OyAjNEYzNQor5Ly2ID4gbMOtbmc7ICM0RjM2CivkvLcgPiB6aMOydTsgIzRGMzcKK+S8uCA+IHNoxJNuOyAjNEYzOAor5Ly5ID4gccWrOyAjNEYzOQor5Ly6ID4gc8OsOyAjNEYzQQor5Ly7ID4gYsSTbmc7ICM0RjNCCivkvLwgPiBzw6w7ICM0RjNDCivkvL0gPiBqacSBOyAjNEYzRAor5Ly+ID4gcMSrOyAjNEYzRQor5Ly/ID4gecOsOyAjNEYzRgor5L2AID4gc8OsOyAjNEY0MAor5L2BID4gxINpOyAjNEY0MQor5L2CID4gemjEk25nOyAjNEY0Mgor5L2DID4gZGnDoG47ICM0RjQzCivkvYQgPiBow6FuOyAjNEY0NAor5L2FID4gbcOgaTsgIzRGNDUKK+S9hiA+IGTDoG47ICM0RjQ2CivkvYcgPiB6aMO5OyAjNEY0Nwor5L2IID4gYsO5OyAjNEY0OAor5L2JID4gccWrOyAjNEY0OQor5L2KID4gYsStOyAjNEY0QQor5L2LID4gc2jDoG87ICM0RjRCCivkvYwgPiBjxK07ICM0RjRDCivkvY0gPiB3w6hpOyAjNEY0RAor5L2OID4gZMSrOyAjNEY0RQor5L2PID4gemjDuTsgIzRGNEYKK+S9kCA+IHrFrW87ICM0RjUwCivkvZEgPiB5w7J1OyAjNEY1MQor5L2SID4gecSBbmc7ICM0RjUyCivkvZMgPiB0xK07ICM0RjUzCivkvZQgPiB6aMOgbjsgIzRGNTQKK+S9lSA+IGjDqTsgIzRGNTUKK+S9liA+IGLDrDsgIzRGNTYKK+S9lyA+IHTFq287ICM0RjU3CivkvZggPiBzaMOpOyAjNEY1OAor5L2ZID4gecO6OyAjNEY1OQor5L2aID4gecOsOyAjNEY1QQor5L2bID4gZsOzOyAjNEY1Qgor5L2cID4gesO5bzsgIzRGNUMKK+S9nSA+IGvDsnU7ICM0RjVECivkvZ4gPiBuw6xuZzsgIzRGNUUKK+S9nyA+IHTDs25nOyAjNEY1Rgor5L2gID4gbsStOyAjNEY2MAor5L2hID4geHXEgW47ICM0RjYxCivkvaIgPiBxw7o7ICM0RjYyCivkvaMgPiB5w7JuZzsgIzRGNjMKK+S9pCA+IHfEgzsgIzRGNjQKK+S9pSA+IHFpxIFuOyAjNEY2NQor5L2nID4ga8SDOyAjNEY2Nwor5L2pID4gcMOoaTsgIzRGNjkKK+S9qiA+IGh1w6FpOyAjNEY2QQor5L2rID4gaMOoOyAjNEY2Qgor5L2sID4gbMSDbzsgIzRGNkMKK+S9rSA+IHhpw6FuZzsgIzRGNkQKK+S9riA+IGfDqTsgIzRGNkUKK+S9ryA+IHnDoW5nOyAjNEY2Rgor5L2wID4gYsSDaTsgIzRGNzAKK+S9sSA+IGbEgzsgIzRGNzEKK+S9siA+IG3DrW5nOyAjNEY3Mgor5L2zID4gamlhOyAjNEY3Mwor5L20ID4gw6hyOyAjNEY3NAor5L21ID4gYsOsbmc7ICM0Rjc1CivkvbYgPiBqw607ICM0Rjc2CivkvbcgPiBoxJVuOyAjNEY3Nwor5L24ID4gaMO6bzsgIzRGNzgKK+S9uSA+IGfFrWk7ICM0Rjc5CivkvbogPiBxdcOhbjsgIzRGN0EKK+S9uyA+IHRpxIFvOyAjNEY3Qgor5L28ID4gamnEg287ICM0RjdDCivkvb0gPiBjw6w7ICM0RjdECivkvb4gPiB5w6w7ICM0RjdFCivkvb8gPiBzaMStOyAjNEY3Rgor5L6AID4geMOtbmc7ICM0RjgwCivkvoEgPiBzaMSTbjsgIzRGODEKK+S+giA+IHTFq287ICM0RjgyCivkvoMgPiBrxINuOyAjNEY4Mwor5L6EID4gemjDrTsgIzRGODQKK+S+hSA+IGfEgWk7ICM0Rjg1CivkvoYgPiBsw6FpOyAjNEY4Ngor5L6HID4gecOtOyAjNEY4Nwor5L6IID4gY2jErTsgIzRGODgKK+S+iSA+IGt1xIE7ICM0Rjg5CivkvoogPiBndcSBbmc7ICM0RjhBCivkvosgPiBsw6w7ICM0RjhCCivkvowgPiB5xKtuOyAjNEY4Qwor5L6NID4gc2jDrDsgIzRGOEQKK+S+jiA+IG3ErTsgIzRGOEUKK+S+jyA+IHpoxas7ICM0RjhGCivkvpAgPiB4w7k7ICM0RjkwCivkvpEgPiB5w7J1OyAjNEY5MQor5L6SID4gxIFuOyAjNEY5Mgor5L6TID4gbMO5OyAjNEY5Mwor5L6UID4gbcOzdTsgIzRGOTQKK+S+lSA+IMOpcjsgIzRGOTUKK+S+liA+IGzDum47ICM0Rjk2CivkvpcgPiB0w7NuZzsgIzRGOTcKK+S+mCA+IGNow6A7ICM0Rjk4CivkvpkgPiBjaMOsOyAjNEY5OQor5L6aID4geMO5bjsgIzRGOUEKK+S+myA+IGfFjW5nOyAjNEY5Qgor5L6cID4gemjFjXU7ICM0RjlDCivkvp0gPiB5xKs7ICM0RjlECivkvp4gPiByxa07ICM0RjlFCivkvp8gPiBqacOgbjsgIzRGOUYKK+S+oCA+IHhpw6E7ICM0RkEwCivkvqEgPiBqacOgOyAjNEZBMQor5L6iID4gesOgaTsgIzRGQTIKK+S+oyA+IGzHmjsgIzRGQTMKK+S+pSA+IGppxINvOyAjNEZBNQor5L6mID4gemjEk247ICM0RkE2CivkvqcgPiBjw6g7ICM0RkE3CivkvqggPiBxacOhbzsgIzRGQTgKK+S+qSA+IGt1w6BpOyAjNEZBOQor5L6qID4gY2jDoWk7ICM0RkFBCivkvqsgPiBuw6xuZzsgIzRGQUIKK+S+rCA+IG7Ds25nOyAjNEZBQwor5L6tID4gasStbjsgIzRGQUQKK+S+riA+IHfFrTsgIzRGQUUKK+S+ryA+IGjDs3U7ICM0RkFGCivkvrAgPiBqxK1vbmc7ICM0RkIwCivkvrEgPiBjaMSVbmc7ICM0RkIxCivkvrIgPiB6aMOobjsgIzRGQjIKK+S+syA+IHrDuW87ICM0RkIzCivkvrQgPiBjaMWPdTsgIzRGQjQKK+S+tSA+IHHEq247ICM0RkI1CivkvrYgPiBsx5o7ICM0RkI2CivkvrcgPiBqw7o7ICM0RkI3CivkvrggPiBzaMO5OyAjNEZCOAor5L65ID4gdMStbmc7ICM0RkI5CivkvrogPiBzaMOobjsgIzRGQkEKK+S+uyA+IHTFq287ICM0RkJCCivkvrwgPiBiw7M7ICM0RkJDCivkvr0gPiBuw6FuOyAjNEZCRAor5L6+ID4gaMSBbzsgIzRGQkUKK+S+vyA+IGJpw6BuOyAjNEZCRgor5L+AID4gdMWtaTsgIzRGQzAKK+S/gSA+IHnFrTsgIzRGQzEKK+S/giA+IHjDrDsgIzRGQzIKK+S/gyA+IGPDuTsgIzRGQzMKK+S/hCA+IMOpOyAjNEZDNAor5L+FID4gccOtdTsgIzRGQzUKK+S/hiA+IHjDujsgIzRGQzYKK+S/hyA+IGt1xINuZzsgIzRGQzcKK+S/iCA+IGvDuTsgIzRGQzgKK+S/iSA+IHfDuTsgIzRGQzkKK+S/iiA+IGrDuW47ICM0RkNBCivkv4sgPiB5w6w7ICM0RkNCCivkv4wgPiBmxa07ICM0RkNDCivkv40gPiBsw6FuZzsgIzRGQ0QKK+S/jiA+IHrFrTsgIzRGQ0UKK+S/jyA+IHFpw6BvOyAjNEZDRgor5L+QID4gbMOsOyAjNEZEMAor5L+RID4gecWPbmc7ICM0RkQxCivkv5IgPiBow7luOyAjNEZEMgor5L+TID4gasOsbmc7ICM0RkQzCivkv5QgPiB4acOgbjsgIzRGRDQKK+S/lSA+IHPDoG47ICM0RkQ1Civkv5YgPiBwxINpOyAjNEZENgor5L+XID4gc8O6OyAjNEZENwor5L+YID4gZsO6OyAjNEZEOAor5L+ZID4geMSrOyAjNEZEOQor5L+aID4gbMStOyAjNEZEQQor5L+bID4gZsWtOyAjNEZEQgor5L+cID4gcMSrbmc7ICM0RkRDCivkv50gPiBixINvOyAjNEZERAor5L+eID4gecO6OyAjNEZERQor5L+fID4gc8OsOyAjNEZERgor5L+gID4geGnDoTsgIzRGRTAKK+S/oSA+IHjDrG47ICM0RkUxCivkv6IgPiB4xKt1OyAjNEZFMgor5L+jID4gecWtOyAjNEZFMwor5L+kID4gdMOsOyAjNEZFNAor5L+lID4gY2jEkzsgIzRGRTUKK+S/piA+IGNow7N1OyAjNEZFNgor5L+oID4gecSDbjsgIzRGRTgKK+S/qSA+IGxpxIM7ICM0RkU5Civkv6ogPiBsw6w7ICM0RkVBCivkv6sgPiBsw6FpOyAjNEZFQgor5L+tID4gamnEg247ICM0RkVECivkv64gPiB4xKt1OyAjNEZFRQor5L+vID4gZsWtOyAjNEZFRgor5L+wID4gaMOoOyAjNEZGMAor5L+xID4gasO5OyAjNEZGMQor5L+yID4geGnDoG87ICM0RkYyCivkv7MgPiBww6FpOyAjNEZGMwor5L+0ID4gamnDoG47ICM0RkY0Civkv7UgPiBiacOgbzsgIzRGRjUKK+S/tiA+IGNow7k7ICM0RkY2Civkv7cgPiBmw6hpOyAjNEZGNwor5L+4ID4gZsOobmc7ICM0RkY4Civkv7kgPiB5w6A7ICM0RkY5Civkv7ogPiDEg247ICM0RkZBCivkv7sgPiBiw6hpOyAjNEZGQgor5L+8ID4gecO5OyAjNEZGQwor5L+9ID4geMSrbjsgIzRGRkQKK+S/viA+IGLErTsgIzRGRkUKK+S/vyA+IGppw6BuOyAjNEZGRgor5YCAID4gY2jEgW5nOyAjNTAwMAor5YCBID4gY2jDrTsgIzUwMDEKK+WAgiA+IGLDrG5nOyAjNTAwMgor5YCDID4gesOhbjsgIzUwMDMKK+WAhCA+IHnDoW87ICM1MDA0CivlgIUgPiBjw7lpOyAjNTAwNQor5YCGID4gbGnEgzsgIzUwMDYKK+WAhyA+IHfEg247ICM1MDA3CivlgIggPiBsw6FpOyAjNTAwOAor5YCJID4gY8SBbmc7ICM1MDA5CivlgIogPiB6w7JuZzsgIzUwMEEKK+WAiyA+IGfDqDsgIzUwMEIKK+WAjCA+IGd1xIFuOyAjNTAwQwor5YCNID4gYsOoaTsgIzUwMEQKK+WAjiA+IHRpxIFuOyAjNTAwRQor5YCPID4gc2jFqzsgIzUwMEYKK+WAkCA+IHNoxas7ICM1MDEwCivlgJEgPiBtZW47ICM1MDExCivlgJIgPiBkxINvOyAjNTAxMgor5YCTID4gdMOhbjsgIzUwMTMKK+WAlCA+IGp1w6k7ICM1MDE0CivlgJUgPiBjaMO6aTsgIzUwMTUKK+WAliA+IHjDrG5nOyAjNTAxNgor5YCXID4gcMOpbmc7ICM1MDE3CivlgJggPiB0xINuZzsgIzUwMTgKK+WAmSA+IGjDsnU7ICM1MDE5CivlgJogPiB5xK07ICM1MDFBCivlgJsgPiBxxKs7ICM1MDFCCivlgJwgPiB0w6w7ICM1MDFDCivlgJ0gPiBnw6BuOyAjNTAxRAor5YCeID4gasOsbmc7ICM1MDFFCivlgJ8gPiBqacOoOyAjNTAxRgor5YCgID4gc8WraTsgIzUwMjAKK+WAoSA+IGNow6BuZzsgIzUwMjEKK+WAoiA+IGppw6k7ICM1MDIyCivlgKMgPiBmxINuZzsgIzUwMjMKK+WApCA+IHpow607ICM1MDI0CivlgKUgPiBrxY1uZzsgIzUwMjUKK+WApiA+IGp1w6BuOyAjNTAyNgor5YCnID4gesWNbmc7ICM1MDI3CivlgKggPiBqw7k7ICM1MDI4CivlgKkgPiBxacOgbjsgIzUwMjkKK+WAqiA+IG7DrTsgIzUwMkEKK+WAqyA+IGzDum47ICM1MDJCCivlgKwgPiB6aMWrbzsgIzUwMkMKK+WArSA+IHfEk2k7ICM1MDJECivlgK4gPiBsxa1vOyAjNTAyRQor5YCvID4gc8WNbmc7ICM1MDJGCivlgLAgPiBsw6luZzsgIzUwMzAKK+WAsSA+IGjDuW47ICM1MDMxCivlgLIgPiBkxY1uZzsgIzUwMzIKK+WAsyA+IHrDrDsgIzUwMzMKK+WAtCA+IGLDqG47ICM1MDM0CivlgLUgPiB3xa07ICM1MDM1CivlgLYgPiBqw7k7ICM1MDM2CivlgLcgPiBuw6BpOyAjNTAzNwor5YC4ID4gY8SDaTsgIzUwMzgKK+WAuSA+IGppxINuOyAjNTAzOQor5YC6ID4gemjDoGk7ICM1MDNBCivlgLsgPiB5xJM7ICM1MDNCCivlgLwgPiB6aMOtOyAjNTAzQwor5YC9ID4gc2jDoDsgIzUwM0QKK+WAviA+IHHEq25nOyAjNTAzRQor5YGAID4gecSrbmc7ICM1MDQwCivlgYEgPiBjaMSTbmc7ICM1MDQxCivlgYIgPiBqacSBbjsgIzUwNDIKK+WBgyA+IHnEg247ICM1MDQzCivlgYQgPiBudcOgbjsgIzUwNDQKK+WBhSA+IHpow7JuZzsgIzUwNDUKK+WBhiA+IGNoxa1uOyAjNTA0Ngor5YGHID4gamnEgzsgIzUwNDcKK+WBiCA+IGppw6k7ICM1MDQ4CivlgYkgPiB3xJVpOyAjNTA0OQor5YGKID4gecWtOyAjNTA0QQor5YGLID4gYsStbmc7ICM1MDRCCivlgYwgPiByw7lvOyAjNTA0Qwor5YGNID4gdMOtOyAjNTA0RAor5YGOID4gd8STaTsgIzUwNEUKK+WBjyA+IHBpxIFuOyAjNTA0Rgor5YGQID4gecOgbjsgIzUwNTAKK+WBkSA+IGbEk25nOyAjNTA1MQor5YGSID4gdMSDbmc7ICM1MDUyCivlgZMgPiB3w7I7ICM1MDUzCivlgZQgPiDDqDsgIzUwNTQKK+WBlSA+IHhpw6k7ICM1MDU1CivlgZYgPiBjaMSVOyAjNTA1Ngor5YGXID4gc2jElW5nOyAjNTA1Nwor5YGYID4ga8SDbjsgIzUwNTgKK+WBmSA+IGTDrDsgIzUwNTkKK+WBmiA+IHrDuW87ICM1MDVBCivlgZsgPiBjaMSBOyAjNTA1Qgor5YGcID4gdMOtbmc7ICM1MDVDCivlgZ0gPiBiw6hpOyAjNTA1RAor5YGeID4gecOoOyAjNTA1RQor5YGfID4gaHXDoW5nOyAjNTA1Rgor5YGgID4gecSDbzsgIzUwNjAKK+WBoSA+IHpow6BuOyAjNTA2MQor5YGiID4gY2jFj3U7ICM1MDYyCivlgaMgPiB5xIFuOyAjNTA2Mwor5YGkID4gecWPdTsgIzUwNjQKK+WBpSA+IGppw6BuOyAjNTA2NQor5YGmID4geMWrOyAjNTA2Ngor5YGnID4gemjEgTsgIzUwNjcKK+WBqCA+IGPEqzsgIzUwNjgKK+WBqSA+IGbDuTsgIzUwNjkKK+WBqiA+IGLEqzsgIzUwNkEKK+WBqyA+IHpow6w7ICM1MDZCCivlgawgPiB6xY9uZzsgIzUwNkMKK+WBrSA+IG1pxINuOyAjNTA2RAor5YGuID4gasOtOyAjNTA2RQor5YGvID4gecStOyAjNTA2Rgor5YGwID4geGnDqDsgIzUwNzAKK+WBsSA+IHjDum47ICM1MDcxCivlgbIgPiBzxKs7ICM1MDcyCivlgbMgPiBkdcSBbjsgIzUwNzMKK+WBtCA+IGPDqDsgIzUwNzQKK+WBtSA+IHpoxJNuOyAjNTA3NQor5YG2ID4gxY91OyAjNTA3Ngor5YG3ID4gdMWNdTsgIzUwNzcKK+WBuCA+IHTFjXU7ICM1MDc4CivlgbkgPiBiw6hpOyAjNTA3OQor5YG6ID4gesOhOyAjNTA3QQor5YG7ID4gbMeaOyAjNTA3Qgor5YG8ID4gamnDqTsgIzUwN0MKK+WBvSA+IHfElWk7ICM1MDdECivlgb4gPiBmw6huOyAjNTA3RQor5YG/ID4gY2jDoW5nOyAjNTA3Rgor5YKAID4gZ8WraTsgIzUwODAKK+WCgSA+IHPFj3U7ICM1MDgxCivlgoIgPiB6aMOsOyAjNTA4Mgor5YKDID4gc8O5OyAjNTA4Mwor5YKEID4geGnEgTsgIzUwODQKK+WChSA+IGbDuTsgIzUwODUKK+WChiA+IHl1w6BuOyAjNTA4Ngor5YKHID4gcsWPbmc7ICM1MDg3CivlgoggPiBsw6w7ICM1MDg4CivlgokgPiByw7k7ICM1MDg5CivlgoogPiB5xa1uOyAjNTA4QQor5YKLID4gZ8OydTsgIzUwOEIKK+WCjCA+IG3DoDsgIzUwOEMKK+WCjSA+IGLDoG5nOyAjNTA4RAor5YKOID4gZGnEgW47ICM1MDhFCivlgo8gPiB0w6FuZzsgIzUwOEYKK+WCkCA+IGjDoG87ICM1MDkwCivlgpEgPiBqacOpOyAjNTA5MQor5YKSID4geMSrOyAjNTA5Mgor5YKTID4gc2jDoG47ICM1MDkzCivlgpQgPiBxacOgbjsgIzUwOTQKK+WClSA+IGp1w6k7ICM1MDk1CivlgpYgPiBjxIFuZzsgIzUwOTYKK+WClyA+IGNow7k7ICM1MDk3CivlgpggPiBzxINuOyAjNTA5OAor5YKZID4gYsOoaTsgIzUwOTkKK+WCmiA+IHhpw6BvOyAjNTA5QQor5YKbID4gecWPbmc7ICM1MDlCCivlgpwgPiB5w6FvOyAjNTA5Qwor5YKdID4gdMOgbjsgIzUwOUQKK+WCniA+IHPFq287ICM1MDlFCivlgp8gPiB5xINuZzsgIzUwOUYKK+WCoCA+IGbEgTsgIzUwQTAKK+WCoSA+IGLDrG5nOyAjNTBBMQor5YKiID4gamnEgTsgIzUwQTIKK+WCoyA+IGTEg2k7ICM1MEEzCivlgqQgPiB6w6BpOyAjNTBBNAor5YKlID4gdMSDbmc7ICM1MEE1CivlgqcgPiBiw6xuOyAjNTBBNwor5YKoID4gY2jFrTsgIzUwQTgKK+WCqSA+IG7Dum87ICM1MEE5CivlgqogPiBjxIFuOyAjNTBBQQor5YKrID4gbMSVaTsgIzUwQUIKK+WCrCA+IGPFq2k7ICM1MEFDCivlgq0gPiB5xY1uZzsgIzUwQUQKK+WCriA+IHrEgW87ICM1MEFFCivlgq8gPiB6xY9uZzsgIzUwQUYKK+WCsCA+IHDDqW5nOyAjNTBCMAor5YKxID4gc8WPbmc7ICM1MEIxCivlgrIgPiDDoG87ICM1MEIyCivlgrMgPiBjaHXDoW47ICM1MEIzCivlgrQgPiB5xa07ICM1MEI0CivlgrUgPiB6aMOgaTsgIzUwQjUKK+WCtiA+IGPDsnU7ICM1MEI2CivlgrcgPiBzaMSBbmc7ICM1MEI3CivlgrggPiBxacSDbmc7ICM1MEI4CivlgrkgPiBqw6xuZzsgIzUwQjkKK+WCuiA+IGNow6w7ICM1MEJBCivlgrsgPiBzaMSDOyAjNTBCQgor5YK8ID4gaMOgbjsgIzUwQkMKK+WCvSA+IHpoxIFuZzsgIzUwQkQKK+WCviA+IHHEq25nOyAjNTBCRQor5YK/ID4gecOgbjsgIzUwQkYKK+WDgCA+IGTDrDsgIzUwQzAKK+WDgSA+IHjEqzsgIzUwQzEKK+WDgiA+IGzHmjsgIzUwQzIKK+WDgyA+IGLDqGk7ICM1MEMzCivlg4QgPiBwacOgbzsgIzUwQzQKK+WDhSA+IGrErW47ICM1MEM1Civlg4YgPiBsacOhbjsgIzUwQzYKK+WDhyA+IGzDuTsgIzUwQzcKK+WDiCA+IG3DoG47ICM1MEM4Civlg4kgPiBxacSBbjsgIzUwQzkKK+WDiiA+IHhpxIFuOyAjNTBDQQor5YOLID4gdMOgbjsgIzUwQ0IKK+WDjCA+IHnDrW5nOyAjNTBDQwor5YONID4gZMOybmc7ICM1MENECivlg44gPiB6aHXDoG47ICM1MENFCivlg48gPiB4acOgbmc7ICM1MENGCivlg5AgPiBzaMOgbjsgIzUwRDAKK+WDkSA+IHFpw6FvOyAjNTBEMQor5YOSID4gasStb25nOyAjNTBEMgor5YOTID4gdMWtaTsgIzUwRDMKK+WDlCA+IHrFrW47ICM1MEQ0Civlg5UgPiBww7o7ICM1MEQ1Civlg5YgPiB4xKs7ICM1MEQ2Civlg5cgPiBsw6FvOyAjNTBENwor5YOYID4gY2jEg25nOyAjNTBEOAor5YOZID4gZ3XEgW5nOyAjNTBEOQor5YOaID4gbGnDoW87ICM1MERBCivlg5sgPiBxxKs7ICM1MERCCivlg5wgPiBkw6huZzsgIzUwREMKK+WDnSA+IGNow6FuOyAjNTBERAor5YOeID4gd8SVaTsgIzUwREUKK+WDnyA+IGrEqzsgIzUwREYKK+WDoCA+IGbEgW47ICM1MEUwCivlg6EgPiBow7lpOyAjNTBFMQor5YOiID4gY2h1xINuOyAjNTBFMgor5YOjID4gamnDoG47ICM1MEUzCivlg6QgPiBkw6BuOyAjNTBFNAor5YOlID4gamnEg287ICM1MEU1Civlg6YgPiBqw6x1OyAjNTBFNgor5YOnID4gc8STbmc7ICM1MEU3Civlg6ggPiBmw6huOyAjNTBFOAor5YOpID4geGnDoG47ICM1MEU5Civlg6ogPiBqdcOpOyAjNTBFQQor5YOrID4gw6g7ICM1MEVCCivlg6wgPiBqacSBbzsgIzUwRUMKK+WDrSA+IGppw6BuOyAjNTBFRAor5YOuID4gdMOzbmc7ICM1MEVFCivlg68gPiBsxK1uOyAjNTBFRgor5YOwID4gYsOzOyAjNTBGMAor5YOxID4gZ8O5OyAjNTBGMQor5YOzID4gc8O5OyAjNTBGMwor5YO0ID4geGnDoG47ICM1MEY0Civlg7UgPiBqacSBbmc7ICM1MEY1Civlg7YgPiBtxK1uOyAjNTBGNgor5YO3ID4gecOoOyAjNTBGNwor5YO4ID4gasOsbjsgIzUwRjgKK+WDuSA+IGppw6A7ICM1MEY5Civlg7ogPiBxacOgbzsgIzUwRkEKK+WDuyA+IHDDrDsgIzUwRkIKK+WDvCA+IGbEk25nOyAjNTBGQwor5YO9ID4gemjDsnU7ICM1MEZECivlg74gPiDDoGk7ICM1MEZFCivlg78gPiBzw6BpOyAjNTBGRgor5YSAID4gecOtOyAjNTEwMAor5YSBID4gasO5bjsgIzUxMDEKK+WEgiA+IG7Ds25nOyAjNTEwMgor5YSDID4gY2jDoW47ICM1MTAzCivlhIQgPiB5w6w7ICM1MTA0CivlhIUgPiBkxIFuZzsgIzUxMDUKK+WEhiA+IGrErW5nOyAjNTEwNgor5YSHID4geHXEgW47ICM1MTA3CivlhIggPiBrdcOgaTsgIzUxMDgKK+WEiSA+IGppxINuOyAjNTEwOQor5YSKID4gY2jDuTsgIzUxMEEKK+WEiyA+IGTEgW47ICM1MTBCCivlhIwgPiBqacSDbzsgIzUxMEMKK+WEjSA+IHNoxIM7ICM1MTBECivlhI4gPiB6w6BpOyAjNTEwRQor5YSQID4gYsOsbjsgIzUxMTAKK+WEkSA+IMOgbjsgIzUxMTEKK+WEkiA+IHLDujsgIzUxMTIKK+WEkyA+IHTDoWk7ICM1MTEzCivlhJQgPiBjaMOzdTsgIzUxMTQKK+WElSA+IGNow6FpOyAjNTExNQor5YSWID4gbMOhbjsgIzUxMTYKK+WElyA+IG7ErTsgIzUxMTcKK+WEmCA+IGrErW47ICM1MTE4CivlhJkgPiBxacOgbjsgIzUxMTkKK+WEmiA+IG3DqW5nOyAjNTExQQor5YSbID4gd8WtOyAjNTExQgor5YScID4gbsOtbmc7ICM1MTFDCivlhJ0gPiBxw61vbmc7ICM1MTFECivlhJ4gPiBuxK07ICM1MTFFCivlhJ8gPiBjaMOhbmc7ICM1MTFGCivlhKAgPiBsacOoOyAjNTEyMAor5YShID4gbMSVaTsgIzUxMjEKK+WEoiA+IGzHmjsgIzUxMjIKK+WEoyA+IGt1w6BuZzsgIzUxMjMKK+WEpCA+IGLDoG87ICM1MTI0CivlhKUgPiBkw7o7ICM1MTI1CivlhKYgPiBiacSBbzsgIzUxMjYKK+WEpyA+IHrEg247ICM1MTI3CivlhKggPiB6aMOtOyAjNTEyOAor5YSpID4gc8OsOyAjNTEyOQor5YSqID4gecWNdTsgIzUxMkEKK+WEqyA+IGjDoW87ICM1MTJCCivlhKwgPiBjaMOobjsgIzUxMkMKK+WErSA+IGNow6huOyAjNTEyRAor5YSuID4gbMOsOyAjNTEyRQor5YSvID4gdMOpbmc7ICM1MTJGCivlhLAgPiB3xJVpOyAjNTEzMAor5YSxID4gbMWPbmc7ICM1MTMxCivlhLIgPiBjaMWtOyAjNTEzMgor5YSzID4gY2jDoG47ICM1MTMzCivlhLQgPiByw6FuZzsgIzUxMzQKK+WEtSA+IHNoxas7ICM1MTM1CivlhLYgPiBow7lpOyAjNTEzNgor5YS3ID4gbMOsOyAjNTEzNwor5YS4ID4gbMO6bzsgIzUxMzgKK+WEuSA+IHrEg247ICM1MTM5CivlhLogPiBuw7pvOyAjNTEzQQor5YS7ID4gdMSDbmc7ICM1MTNCCivlhLwgPiB5xINuOyAjNTEzQwor5YS9ID4gbMSVaTsgIzUxM0QKK+WEviA+IG7DoG5nOyAjNTEzRQor5YS/ID4gw6lyOyAjNTEzRgor5YWAID4gd8O5OyAjNTE0MAor5YWBID4gecWtbjsgIzUxNDEKK+WFgiA+IHrEgW47ICM1MTQyCivlhYMgPiB5dcOhbjsgIzUxNDMKK+WFhCA+IHjEq29uZzsgIzUxNDQKK+WFhSA+IGNoxY1uZzsgIzUxNDUKK+WFhiA+IHpow6BvOyAjNTE0Ngor5YWHID4geMSrb25nOyAjNTE0Nwor5YWIID4geGnEgW47ICM1MTQ4CivlhYkgPiBndcSBbmc7ICM1MTQ5CivlhYogPiBkw7lpOyAjNTE0QQor5YWLID4ga8OoOyAjNTE0Qgor5YWMID4gZMO5aTsgIzUxNEMKK+WFjSA+IG1pxINuOyAjNTE0RAor5YWOID4gdMO5OyAjNTE0RQor5YWPID4gY2jDoW5nOyAjNTE0Rgor5YWQID4gw6lyOyAjNTE1MAor5YWRID4gZMO5aTsgIzUxNTEKK+WFkiA+IMOpcjsgIzUxNTIKK+WFkyA+IHjEq247ICM1MTUzCivlhZQgPiB0w7k7ICM1MTU0CivlhZUgPiBzw6w7ICM1MTU1CivlhZYgPiB5xINuOyAjNTE1Ngor5YWXID4gecSDbjsgIzUxNTcKK+WFmCA+IHNoxK07ICM1MTU4CivlhZkgPiBzaMOtJyAna8OoOyAjNTE1OQor5YWaID4gZMSDbmc7ICM1MTVBCivlhZsgPiBxacSBbjsgIzUxNUIKK+WFnCA+IGTFjXU7ICM1MTVDCivlhZ0gPiBmxJNuOyAjNTE1RAor5YWeID4gbcOhbzsgIzUxNUUKK+WFnyA+IHNoxJNuOyAjNTE1Rgor5YWgID4gZMWNdTsgIzUxNjAKK+WFoSA+IGLEg2knICdrw6g7ICM1MTYxCivlhaIgPiBqxKtuZzsgIzUxNjIKK+WFoyA+IGzErTsgIzUxNjMKK+WFpCA+IGh1w6FuZzsgIzUxNjQKK+WFpSA+IHLDuTsgIzUxNjUKK+WFpiA+IHfDoW5nOyAjNTE2Ngor5YWnID4gbsOoaTsgIzUxNjcKK+WFqCA+IHF1w6FuOyAjNTE2OAor5YWpID4gbGnEg25nOyAjNTE2OQor5YWqID4gecO6OyAjNTE2QQor5YWrID4gYsSBOyAjNTE2Qgor5YWsID4gZ8WNbmc7ICM1MTZDCivlha0gPiBsw6x1OyAjNTE2RAor5YWuID4geMSrOyAjNTE2RQor5YWwID4gbMOhbjsgIzUxNzAKK+WFsSA+IGfDsm5nOyAjNTE3MQor5YWyID4gdGnEgW47ICM1MTcyCivlhbMgPiBndcSBbjsgIzUxNzMKK+WFtCA+IHjEq25nOyAjNTE3NAor5YW1ID4gYsSrbmc7ICM1MTc1CivlhbYgPiBxw607ICM1MTc2CivlhbcgPiBqw7k7ICM1MTc3CivlhbggPiBkacSDbjsgIzUxNzgKK+WFuSA+IHrEqzsgIzUxNzkKK+WFuyA+IHnEg25nOyAjNTE3Qgor5YW8ID4gamnEgW47ICM1MTdDCivlhb0gPiBzaMOydTsgIzUxN0QKK+WFviA+IGrDrDsgIzUxN0UKK+WFvyA+IHnDrDsgIzUxN0YKK+WGgCA+IGrDrDsgIzUxODAKK+WGgSA+IGNoxINuOyAjNTE4MQor5YaCID4gasSrb25nOyAjNTE4Mgor5YaDID4gbWFvOyAjNTE4Mwor5YaEID4gcsSDbjsgIzUxODQKK+WGhSA+IG7DqGk7ICM1MTg1CivlhoYgPiB5dWFuOyAjNTE4Ngor5YaHID4gbcSDbzsgIzUxODcKK+WGiCA+IGfEgW5nOyAjNTE4OAor5YaJID4gcsSDbjsgIzUxODkKK+WGiiA+IGPDqDsgIzUxOEEKK+WGiyA+IGrEq29uZzsgIzUxOEIKK+WGjCA+IGPDqDsgIzUxOEMKK+WGjSA+IHrDoGk7ICM1MThECivlho4gPiBndcSDOyAjNTE4RQor5YaPID4gasStb25nOyAjNTE4Rgor5YaQID4gbcOgbzsgIzUxOTAKK+WGkSA+IHpow7J1OyAjNTE5MQor5YaSID4gbcOydTsgIzUxOTIKK+WGkyA+IGfDsnU7ICM1MTkzCivlhpQgPiB4xa07ICM1MTk0CivlhpUgPiBtacSDbjsgIzUxOTUKK+WGliA+IG3DrDsgIzUxOTYKK+WGlyA+IHLFj25nOyAjNTE5Nwor5YaYID4gecOtbjsgIzUxOTgKK+WGmSA+IHhpxJU7ICM1MTk5CivlhpogPiBrxINuOyAjNTE5QQor5YabID4gasWrbjsgIzUxOUIKK+WGnCA+IG7Ds25nOyAjNTE5Qwor5YadID4gecOtOyAjNTE5RAor5YaeID4gbcOtOyAjNTE5RQor5YafID4gc2jDrDsgIzUxOUYKK+WGoCA+IGd1xIFuOyAjNTFBMAor5YahID4gbcOpbmc7ICM1MUExCivlhqIgPiB6aMWPbmc7ICM1MUEyCivlhqMgPiBqw7k7ICM1MUEzCivlhqQgPiB5dcSBbjsgIzUxQTQKK+WGpSA+IG3DrW5nOyAjNTFBNQor5YamID4ga8OydTsgIzUxQTYKK+WGqCA+IGbDuTsgIzUxQTgKK+WGqSA+IHhpxJU7ICM1MUE5CivlhqogPiBtw6w7ICM1MUFBCivlhqsgPiBixKtuZzsgIzUxQUIKK+WGrCA+IGTFjW5nOyAjNTFBQwor5YatID4gdMOhaTsgIzUxQUQKK+WGriA+IGfEgW5nOyAjNTFBRQor5YavID4gZsOpbmc7ICM1MUFGCivlhrAgPiBixKtuZzsgIzUxQjAKK+WGsSA+IGjDuTsgIzUxQjEKK+WGsiA+IGNoxY1uZzsgIzUxQjIKK+WGsyA+IGp1w6k7ICM1MUIzCivlhrQgPiBow7k7ICM1MUI0CivlhrUgPiBrdcOgbmc7ICM1MUI1CivlhrYgPiB5xJU7ICM1MUI2CivlhrcgPiBsxJVuZzsgIzUxQjcKK+WGuCA+IHDDoG47ICM1MUI4CivlhrkgPiBmw7o7ICM1MUI5CivlhrogPiBtxK1uOyAjNTFCQQor5Ya7ID4gZMOybmc7ICM1MUJCCivlhrwgPiB4acSDbjsgIzUxQkMKK+WGvSA+IGxpw6g7ICM1MUJECivlhr4gPiB4acOhOyAjNTFCRQor5Ya/ID4gamnEgW47ICM1MUJGCivlh4AgPiBqw6xuZzsgIzUxQzAKK+WHgSA+IHNow7k7ICM1MUMxCivlh4IgPiBtxJVpOyAjNTFDMgor5YeDID4gdMO6OyAjNTFDMwor5YeEID4gccSrOyAjNTFDNAor5YeFID4gZ8O5OyAjNTFDNQor5YeGID4gemjFrW47ICM1MUM2Civlh4cgPiBzw7JuZzsgIzUxQzcKK+WHiCA+IGrDrG5nOyAjNTFDOAor5YeJID4gbGnDoW5nOyAjNTFDOQor5YeKID4gccOsbmc7ICM1MUNBCivlh4sgPiBkacSBbzsgIzUxQ0IKK+WHjCA+IGzDrW5nOyAjNTFDQwor5YeNID4gZMOybmc7ICM1MUNECivlh44gPiBnw6BuOyAjNTFDRQor5YePID4gamnEg247ICM1MUNGCivlh5AgPiB5xKtuOyAjNTFEMAor5YeRID4gY8OydTsgIzUxRDEKK+WHkiA+IHnDrTsgIzUxRDIKK+WHkyA+IGzDrDsgIzUxRDMKK+WHlCA+IGPEgW5nOyAjNTFENAor5YeVID4gbcStbmc7ICM1MUQ1Civlh5YgPiB6aHXElW47ICM1MUQ2Civlh5cgPiBjw7ppOyAjNTFENwor5YeYID4gc8SrOyAjNTFEOAor5YeZID4gZMO6bzsgIzUxRDkKK+WHmiA+IGrDrG47ICM1MURBCivlh5sgPiBsxK1uOyAjNTFEQgor5YecID4gbMStbjsgIzUxREMKK+WHnSA+IG7DrW5nOyAjNTFERAor5YeeID4geMSrOyAjNTFERQor5YefID4gZMO6OyAjNTFERgor5YegID4gasSrOyAjNTFFMAor5YehID4gZsOhbjsgIzUxRTEKK+WHoiA+IGbDoW47ICM1MUUyCivlh6MgPiBmw6FuOyAjNTFFMwor5YekID4gZsOobmc7ICM1MUU0Civlh6UgPiBqxas7ICM1MUU1Civlh6YgPiBjaMWtOyAjNTFFNgor5YeoID4gZsSTbmc7ICM1MUU4Civlh6sgPiBmw7o7ICM1MUVCCivlh6wgPiBmxJNuZzsgIzUxRUMKK+WHrSA+IHDDrW5nOyAjNTFFRAor5YeuID4gZsSTbmc7ICM1MUVFCivlh68gPiBrxINpOyAjNTFFRgor5YewID4gaHXDoW5nOyAjNTFGMAor5YexID4ga8SDaTsgIzUxRjEKK+WHsiA+IGfEgW47ICM1MUYyCivlh7MgPiBkw6huZzsgIzUxRjMKK+WHtCA+IHDDrW5nOyAjNTFGNAor5Ye1ID4gccWrOyAjNTFGNQor5Ye2ID4geMSrb25nOyAjNTFGNgor5Ye3ID4ga3XDoGk7ICM1MUY3Civlh7ggPiB0xas7ICM1MUY4Civlh7kgPiDEgW87ICM1MUY5Civlh7ogPiBjaMWrOyAjNTFGQQor5Ye7ID4gasOtOyAjNTFGQgor5Ye8ID4gZMOgbmc7ICM1MUZDCivlh70gPiBow6FuOyAjNTFGRAor5Ye+ID4gaMOhbjsgIzUxRkUKK+WHvyA+IHrDoW87ICM1MUZGCivliIAgPiBkxIFvOyAjNTIwMAor5YiBID4gZGnEgW87ICM1MjAxCivliIIgPiBkxIFvOyAjNTIwMgor5YiDID4gcsOobjsgIzUyMDMKK+WIhCA+IHLDqG47ICM1MjA0CivliIUgPiBjaHXEgW5nOyAjNTIwNQor5YiGID4gZsSTbjsgIzUyMDYKK+WIhyA+IHFpxJM7ICM1MjA3CivliIggPiB5w6w7ICM1MjA4CivliIkgPiBqxKs7ICM1MjA5CivliIogPiBrxIFuOyAjNTIwQQor5YiLID4gcWnDoG47ICM1MjBCCivliIwgPiBjxa1uOyAjNTIwQwor5YiNID4gY2jDujsgIzUyMEQKK+WIjiA+IHfElW47ICM1MjBFCivliI8gPiBqxKs7ICM1MjBGCivliJAgPiBkxINuOyAjNTIxMAor5YiRID4geMOtbmc7ICM1MjExCivliJIgPiBodcOhOyAjNTIxMgor5YiTID4gd8OhbjsgIzUyMTMKK+WIlCA+IGp1w6k7ICM1MjE0CivliJUgPiBsw607ICM1MjE1CivliJYgPiB5dcOoOyAjNTIxNgor5YiXID4gbGnDqDsgIzUyMTcKK+WImCA+IGzDrXU7ICM1MjE4CivliJkgPiB6w6k7ICM1MjE5CivliJogPiBnxIFuZzsgIzUyMUEKK+WImyA+IGNodcOgbmc7ICM1MjFCCivliJwgPiBmw7o7ICM1MjFDCivliJ0gPiBjaMWrOyAjNTIxRAor5YieID4gccO5OyAjNTIxRQor5YifID4gasWrOyAjNTIxRgor5YigID4gc2jEgW47ICM1MjIwCivliKEgPiBtxK1uOyAjNTIyMQor5YiiID4gbMOtbmc7ICM1MjIyCivliKMgPiB6aMWNbmc7ICM1MjIzCivliKQgPiBww6BuOyAjNTIyNAor5YilID4gYmnDqTsgIzUyMjUKK+WIpiA+IGppw6k7ICM1MjI2CivliKcgPiBqacOpOyAjNTIyNwor5YioID4gYsOgbzsgIzUyMjgKK+WIqSA+IGzDrDsgIzUyMjkKK+WIqiA+IHNoxIFuOyAjNTIyQQor5YirID4gYmnDqTsgIzUyMkIKK+WIrCA+IGNoxINuOyAjNTIyQwor5YitID4gasStbmc7ICM1MjJECivliK4gPiBndcSBOyAjNTIyRQor5YivID4gZ8STbjsgIzUyMkYKK+WIsCA+IGTDoG87ICM1MjMwCivliLEgPiBjaHXDoG5nOyAjNTIzMQor5YiyID4ga8WraTsgIzUyMzIKK+WIsyA+IGvFqzsgIzUyMzMKK+WItCA+IGTDuW87ICM1MjM0CivliLUgPiDDqHI7ICM1MjM1CivliLYgPiB6aMOsOyAjNTIzNgor5Yi3ID4gc2h1xIE7ICM1MjM3CivliLggPiBxdcOgbjsgIzUyMzgKK+WIuSA+IGNow6A7ICM1MjM5CivliLogPiBjw6w7ICM1MjNBCivliLsgPiBrw6g7ICM1MjNCCivliLwgPiBqacOpOyAjNTIzQwor5Yi9ID4gZ8O5aTsgIzUyM0QKK+WIviA+IGPDrDsgIzUyM0UKK+WIvyA+IGfDuWk7ICM1MjNGCivliYAgPiBrxINpOyAjNTI0MAor5YmBID4gZMO5bzsgIzUyNDEKK+WJgiA+IGrDrDsgIzUyNDIKK+WJgyA+IHTDrDsgIzUyNDMKK+WJhCA+IGrErW5nOyAjNTI0NAor5YmFID4gbMOzdTsgIzUyNDUKK+WJhiA+IGfEk247ICM1MjQ2CivliYcgPiB6w6k7ICM1MjQ3CivliYggPiB5dcSBbjsgIzUyNDgKK+WJiSA+IGPDuW87ICM1MjQ5CivliYogPiB4dcSTOyAjNTI0QQor5YmLID4ga8OoOyAjNTI0Qgor5YmMID4gbMOgOyAjNTI0Qwor5YmNID4gcWnDoW47ICM1MjRECivliY4gPiBjaMOgOyAjNTI0RQor5YmPID4gY2h1w6BuZzsgIzUyNEYKK+WJkCA+IGd1xIM7ICM1MjUwCivliZEgPiBqacOgbjsgIzUyNTEKK+WJkiA+IGPDuW87ICM1MjUyCivliZMgPiBsw607ICM1MjUzCivliZQgPiB0xKs7ICM1MjU0CivliZUgPiBmw6hpOyAjNTI1NQor5YmWID4gcMWNdTsgIzUyNTYKK+WJlyA+IGNoxINuOyAjNTI1Nwor5YmYID4gccOtOyAjNTI1OAor5YmZID4gY2h1w6BuZzsgIzUyNTkKK+WJmiA+IHrDrDsgIzUyNUEKK+WJmyA+IGfEgW5nOyAjNTI1Qgor5YmcID4gd8SBbjsgIzUyNUMKK+WJnSA+IGLFjTsgIzUyNUQKK+WJniA+IGrEqzsgIzUyNUUKK+WJnyA+IGTFq287ICM1MjVGCivliaAgPiBxw61uZzsgIzUyNjAKK+WJoSA+IHnEg247ICM1MjYxCivliaIgPiB6aMO6bzsgIzUyNjIKK+WJoyA+IGppw6BuOyAjNTI2Mwor5YmkID4gasOsOyAjNTI2NAor5YmlID4gYsWNOyAjNTI2NQor5YmmID4gecSBbjsgIzUyNjYKK+WJpyA+IGrDuTsgIzUyNjcKK+WJqCA+IGjDuW87ICM1MjY4CivliakgPiBzaMOobmc7ICM1MjY5CivliaogPiBqacSDbjsgIzUyNkEKK+WJqyA+IGTDum87ICM1MjZCCivliawgPiBkdcSBbjsgIzUyNkMKK+WJrSA+IHfFqzsgIzUyNkQKK+WJriA+IGd1xIM7ICM1MjZFCivlia8gPiBmw7k7ICM1MjZGCivlibAgPiBzaMOobmc7ICM1MjcwCivlibEgPiBqacOgbjsgIzUyNzEKK+WJsiA+IGfEkzsgIzUyNzIKK+WJsyA+IHpoxIE7ICM1MjczCivlibQgPiBrxINpOyAjNTI3NAor5Ym1ID4gY2h1w6BuZzsgIzUyNzUKK+WJtiA+IGp1xIFuOyAjNTI3Ngor5Ym3ID4gY2jEg247ICM1Mjc3CivlibggPiB0dcOhbjsgIzUyNzgKK+WJuSA+IGzDuTsgIzUyNzkKK+WJuiA+IGzDrTsgIzUyN0EKK+WJuyA+IGbDs3U7ICM1MjdCCivlibwgPiBzaMSBbjsgIzUyN0MKK+WJvSA+IHBpw6BvOyAjNTI3RAor5Ym+ID4ga8WNdTsgIzUyN0UKK+WJvyA+IGppxINvOyAjNTI3Rgor5YqAID4gZ3XEgTsgIzUyODAKK+WKgSA+IHFpxIFvOyAjNTI4MQor5YqCID4ganXDqTsgIzUyODIKK+WKgyA+IGh1w6A7ICM1MjgzCivlioQgPiB6aMOhOyAjNTI4NAor5YqFID4gemjDuW87ICM1Mjg1CivlioYgPiBsacOhbjsgIzUyODYKK+WKhyA+IGrDuTsgIzUyODcKK+WKiCA+IHDEqzsgIzUyODgKK+WKiSA+IGzDrXU7ICM1Mjg5CivlioogPiBnw7lpOyAjNTI4QQor5YqLID4gamnEg287ICM1MjhCCivliowgPiBnw7lpOyAjNTI4Qwor5YqNID4gamnDoG47ICM1MjhECivlio4gPiBqacOgbjsgIzUyOEUKK+WKjyA+IHTEgW5nOyAjNTI4Rgor5YqQID4gaMWrbzsgIzUyOTAKK+WKkSA+IGrDrDsgIzUyOTEKK+WKkiA+IGppw6BuOyAjNTI5Mgor5YqTID4gecOsOyAjNTI5Mwor5YqUID4gamnDoG47ICM1Mjk0CivlipUgPiB6aMOtOyAjNTI5NQor5YqWID4gY2jDoW47ICM1Mjk2CivlipcgPiBjdcOhbjsgIzUyOTcKK+WKmCA+IG3DszsgIzUyOTgKK+WKmSA+IGzDrTsgIzUyOTkKK+WKmiA+IHpow7o7ICM1MjlBCivlipsgPiBsw6w7ICM1MjlCCivlipwgPiB5xIE7ICM1MjlDCivlip0gPiBxdcOgbjsgIzUyOUQKK+WKniA+IGLDoG47ICM1MjlFCivlip8gPiBnxY1uZzsgIzUyOUYKK+WKoCA+IGppxIE7ICM1MkEwCivliqEgPiB3w7k7ICM1MkExCivliqIgPiBtw6BpOyAjNTJBMgor5YqjID4gbGnDqDsgIzUyQTMKK+WKpCA+IGrDrG47ICM1MkE0CivliqUgPiBrxJNuZzsgIzUyQTUKK+WKpiA+IHhpw6k7ICM1MkE2CivliqcgPiB6aMStOyAjNTJBNwor5YqoID4gZMOybmc7ICM1MkE4CivliqkgPiB6aMO5OyAjNTJBOQor5YqqID4gbsWtOyAjNTJBQQor5YqrID4gamnDqTsgIzUyQUIKK+WKrCA+IHHDujsgIzUyQUMKK+WKrSA+IHNow6BvOyAjNTJBRAor5YquID4gecOsOyAjNTJBRQor5YqvID4gemjFqzsgIzUyQUYKK+WKsCA+IG1pxINvOyAjNTJCMAor5YqxID4gbMOsOyAjNTJCMQor5YqyID4gasOsbmc7ICM1MkIyCivlirMgPiBsw6FvOyAjNTJCMwor5Yq0ID4gbMOhbzsgIzUyQjQKK+WKtSA+IGp1w6BuOyAjNTJCNQor5Yq2ID4ga8WPdTsgIzUyQjYKK+WKtyA+IHnDoW5nOyAjNTJCNwor5Yq4ID4gd8SBOyAjNTJCOAor5Yq5ID4geGnDoG87ICM1MkI5CivlirogPiBtw7N1OyAjNTJCQQor5Yq7ID4ga3XEgW5nOyAjNTJCQgor5Yq8ID4gamnDqTsgIzUyQkMKK+WKvSA+IGxpw6g7ICM1MkJECivlir4gPiBow6k7ICM1MkJFCivlir8gPiBzaMOsOyAjNTJCRgor5YuAID4ga8OoOyAjNTJDMAor5YuBID4gasOsbmc7ICM1MkMxCivli4IgPiBow6FvOyAjNTJDMgor5YuDID4gYsOzOyAjNTJDMwor5YuEID4gbcStbjsgIzUyQzQKK+WLhSA+IGNow6w7ICM1MkM1Civli4YgPiBsw6FuZzsgIzUyQzYKK+WLhyA+IHnFj25nOyAjNTJDNwor5YuIID4gecWPbmc7ICM1MkM4Civli4kgPiBtacSDbjsgIzUyQzkKK+WLiiA+IGvDqDsgIzUyQ0EKK+WLiyA+IHjFq247ICM1MkNCCivli4wgPiBqdcOgbjsgIzUyQ0MKK+WLjSA+IHHDrW5nOyAjNTJDRAor5YuOID4gbMO5OyAjNTJDRQor5YuPID4gcMWPdTsgIzUyQ0YKK+WLkCA+IG3ElW5nOyAjNTJEMAor5YuRID4gbMOgaTsgIzUyRDEKK+WLkiA+IGzDqDsgIzUyRDIKK+WLkyA+IGvDoGk7ICM1MkQzCivli5QgPiBtacSDbjsgIzUyRDQKK+WLlSA+IGTDsm5nOyAjNTJENQor5YuWID4geMO5OyAjNTJENgor5YuXID4geMO5OyAjNTJENwor5YuYID4ga8SBbjsgIzUyRDgKK+WLmSA+IHfDuTsgIzUyRDkKK+WLmiA+IHnDrDsgIzUyREEKK+WLmyA+IHjFq247ICM1MkRCCivli5wgPiB3xJVuZzsgIzUyREMKK+WLnSA+IHNow6huZzsgIzUyREQKK+WLniA+IGzDoW87ICM1MkRFCivli58gPiBtw7k7ICM1MkRGCivli6AgPiBsw7k7ICM1MkUwCivli6EgPiBwacOgbzsgIzUyRTEKK+WLoiA+IHNow6w7ICM1MkUyCivli6MgPiBqxKs7ICM1MkUzCivli6QgPiBxw61uOyAjNTJFNAor5YulID4gcWnEg25nOyAjNTJFNQor5YumID4gamnEg287ICM1MkU2Civli6cgPiBxdcOgbjsgIzUyRTcKK+WLqCA+IHnEg25nOyAjNTJFOAor5YupID4gecOsOyAjNTJFOQor5YuqID4ganXDqTsgIzUyRUEKK+WLqyA+IGbDoW47ICM1MkVCCivli6wgPiBqdcOgbjsgIzUyRUMKK+WLrSA+IHTDs25nOyAjNTJFRAor5YuuID4gasO5OyAjNTJFRQor5YuvID4gZMSBbjsgIzUyRUYKK+WLsCA+IHhpw6k7ICM1MkYwCivli7EgPiBtw6BpOyAjNTJGMQor5YuyID4geMWrbjsgIzUyRjIKK+WLsyA+IHjFq247ICM1MkYzCivli7QgPiBsx5w7ICM1MkY0Civli7UgPiBsw6w7ICM1MkY1Civli7YgPiBjaMOoOyAjNTJGNgor5Yu3ID4gcsOhbmc7ICM1MkY3Civli7ggPiBxdcOgbjsgIzUyRjgKK+WLuSA+IGLEgW87ICM1MkY5Civli7ogPiBzaMOhbzsgIzUyRkEKK+WLuyA+IHnDum47ICM1MkZCCivli7wgPiBqxKt1OyAjNTJGQwor5Yu9ID4gYsOgbzsgIzUyRkQKK+WLviA+IGfFjXU7ICM1MkZFCivli78gPiB3w7k7ICM1MkZGCivljIAgPiB5w7puOyAjNTMwMAor5YyDID4gZ8OgaTsgIzUzMDMKK+WMhCA+IGfDoGk7ICM1MzA0CivljIUgPiBixIFvOyAjNTMwNQor5YyGID4gY8WNbmc7ICM1MzA2CivljIggPiB4xKtvbmc7ICM1MzA4CivljIkgPiBwxJNuZzsgIzUzMDkKK+WMiiA+IGrDujsgIzUzMEEKK+WMiyA+IHTDoW87ICM1MzBCCivljIwgPiBnw6k7ICM1MzBDCivljI0gPiBww7o7ICM1MzBECivljI4gPiDDoG47ICM1MzBFCivljI8gPiBww6FvOyAjNTMwRgor5YyQID4gZsO6OyAjNTMxMAor5YyRID4gZ8WNbmc7ICM1MzExCivljJIgPiBkw6E7ICM1MzEyCivljJMgPiBqw6x1OyAjNTMxMwor5YyUID4gccSrb25nOyAjNTMxNAor5YyVID4gYsStOyAjNTMxNQor5YyWID4gaHXDoDsgIzUzMTYKK+WMlyA+IGLElWk7ICM1MzE3CivljJggPiBuxINvOyAjNTMxOAor5YyZID4gY2jDrTsgIzUzMTkKK+WMmiA+IGbEgW5nOyAjNTMxQQor5YybID4gasOsdTsgIzUzMUIKK+WMnCA+IHnDrTsgIzUzMUMKK+WMnSA+IHrEgTsgIzUzMUQKK+WMniA+IGppw6BuZzsgIzUzMUUKK+WMnyA+IGvDoG5nOyAjNTMxRgor5YygID4gamnDoG5nOyAjNTMyMAor5YyhID4ga3XEgW5nOyAjNTMyMQor5YyiID4gaMWrOyAjNTMyMgor5YyjID4geGnDoTsgIzUzMjMKK+WMpCA+IHHFqzsgIzUzMjQKK+WMpSA+IGJpw6BuOyAjNTMyNQor5YymID4gZ8WtaTsgIzUzMjYKK+WMpyA+IHFpw6g7ICM1MzI3CivljKggPiB6xIFuZzsgIzUzMjgKK+WMqSA+IGt1xIFuZzsgIzUzMjkKK+WMqiA+IGbElWk7ICM1MzJBCivljKsgPiBoxas7ICM1MzJCCivljKwgPiB0w7N1OyAjNTMyQwor5YytID4gZ8WtaTsgIzUzMkQKK+WMriA+IGfDuWk7ICM1MzJFCivljK8gPiBow7lpOyAjNTMyRgor5YywID4gZMSBbjsgIzUzMzAKK+WMsSA+IGfDuWk7ICM1MzMxCivljLIgPiBsacOhbjsgIzUzMzIKK+WMsyA+IGxpw6FuOyAjNTMzMwor5Yy0ID4gc3XEg247ICM1MzM0CivljLUgPiBkw7o7ICM1MzM1CivljLYgPiBqw6x1OyAjNTMzNgor5Yy3ID4gccO6OyAjNTMzNwor5Yy4ID4geMStOyAjNTMzOAor5Yy5ID4gcMStOyAjNTMzOQor5Yy6ID4gccWrOyAjNTMzQQor5Yy7ID4gecOsOyAjNTMzQgor5Yy8ID4gcWnDoDsgIzUzM0MKK+WMvSA+IHnEg247ICM1MzNECivljL4gPiBiacSDbjsgIzUzM0UKK+WMvyA+IG7DrDsgIzUzM0YKK+WNgCA+IHHFqzsgIzUzNDAKK+WNgSA+IHNow607ICM1MzQxCivljYIgPiB4w6xuOyAjNTM0Mgor5Y2DID4gcWnEgW47ICM1MzQzCivljYQgPiBuacOgbjsgIzUzNDQKK+WNhSA+IHPDoDsgIzUzNDUKK+WNhiA+IHrDujsgIzUzNDYKK+WNhyA+IHNoxJNuZzsgIzUzNDcKK+WNiCA+IHfFrTsgIzUzNDgKK+WNiSA+IGjDuWk7ICM1MzQ5CivljYogPiBiw6BuOyAjNTM0QQor5Y2LID4gc2jDrDsgIzUzNEIKK+WNjCA+IHjDrDsgIzUzNEMKK+WNjSA+IHfDoG47ICM1MzRECivljY4gPiBodcOhOyAjNTM0RQor5Y2PID4geGnDqTsgIzUzNEYKK+WNkCA+IHfDoG47ICM1MzUwCivljZEgPiBixJNpOyAjNTM1MQor5Y2SID4gesO6OyAjNTM1Mgor5Y2TID4gemjFq287ICM1MzUzCivljZQgPiB4acOpOyAjNTM1NAor5Y2VID4gZMSBbjsgIzUzNTUKK+WNliA+IG3DoGk7ICM1MzU2CivljZcgPiBuw6FuOyAjNTM1Nwor5Y2YID4gZMSBbjsgIzUzNTgKK+WNmSA+IGrDrTsgIzUzNTkKK+WNmiA+IGLDszsgIzUzNUEKK+WNmyA+IHNodcOgaTsgIzUzNUIKK+WNnCA+IGLFrTsgIzUzNUMKK+WNnSA+IGt1w6BuZzsgIzUzNUQKK+WNniA+IGJpw6BuOyAjNTM1RQor5Y2fID4gYsWtOyAjNTM1Rgor5Y2gID4gemjEgW47ICM1MzYwCivljaEgPiBxacSDOyAjNTM2MQor5Y2iID4gbMO6OyAjNTM2Mgor5Y2jID4gecWPdTsgIzUzNjMKK+WNpCA+IGzFrTsgIzUzNjQKK+WNpSA+IHjEqzsgIzUzNjUKK+WNpiA+IGd1w6A7ICM1MzY2CivljacgPiB3w7I7ICM1MzY3CivljaggPiB4acOoOyAjNTM2OAor5Y2pID4gamnDqTsgIzUzNjkKK+WNqiA+IGppw6k7ICM1MzZBCivljasgPiB3w6hpOyAjNTM2Qgor5Y2sID4gw6FuZzsgIzUzNkMKK+WNrSA+IHHDrW9uZzsgIzUzNkQKK+WNriA+IHpoxKs7ICM1MzZFCivlja8gPiBtxINvOyAjNTM2Rgor5Y2wID4gecOsbjsgIzUzNzAKK+WNsSA+IHfEk2k7ICM1MzcxCivljbIgPiBzaMOgbzsgIzUzNzIKK+WNsyA+IGrDrTsgIzUzNzMKK+WNtCA+IHF1w6g7ICM1Mzc0CivljbUgPiBsdcSDbjsgIzUzNzUKK+WNtiA+IHNow6w7ICM1Mzc2CivljbcgPiBqdcOgbjsgIzUzNzcKK+WNuCA+IHhpw6g7ICM1Mzc4CivljbkgPiB4w7k7ICM1Mzc5CivljbogPiBqxK1uOyAjNTM3QQor5Y27ID4gcXXDqDsgIzUzN0IKK+WNvCA+IHfDuTsgIzUzN0MKK+WNvSA+IGrDrTsgIzUzN0QKK+WNviA+IMOoOyAjNTM3RQor5Y2/ID4gccSrbmc7ICM1MzdGCivljoAgPiB4xKs7ICM1MzgwCivljoIgPiBow6BuOyAjNTM4Mgor5Y6DID4gemjEgW47ICM1MzgzCivljoQgPiDDqDsgIzUzODQKK+WOhSA+IHTEq25nOyAjNTM4NQor5Y6GID4gbMOsOyAjNTM4Ngor5Y6HID4gemjDqTsgIzUzODcKK+WOiCA+IGjEg247ICM1Mzg4CivljokgPiBsw6w7ICM1Mzg5CivljoogPiB5xIM7ICM1MzhBCivljosgPiB5xIE7ICM1MzhCCivljowgPiB5w6BuOyAjNTM4Qwor5Y6NID4gc2jDqDsgIzUzOEQKK+WOjiA+IHpoxK07ICM1MzhFCivljo8gPiB6aMSDOyAjNTM4Rgor5Y6QID4gcMOhbmc7ICM1MzkwCivljpIgPiBow6k7ICM1MzkyCivljpMgPiB5w6E7ICM1MzkzCivljpQgPiB6aMOsOyAjNTM5NAor5Y6VID4gY8OoOyAjNTM5NQor5Y6WID4gcMOhbmc7ICM1Mzk2CivljpcgPiB0w607ICM1Mzk3CivljpggPiBsw607ICM1Mzk4CivljpkgPiBzaMOoOyAjNTM5OQor5Y6aID4gaMOydTsgIzUzOUEKK+WOmyA+IHTEq25nOyAjNTM5Qgor5Y6cID4gesWraTsgIzUzOUMKK+WOnSA+IGPDuW87ICM1MzlECivljp4gPiBmw6hpOyAjNTM5RQor5Y6fID4geXXDoW47ICM1MzlGCivljqAgPiBjw6g7ICM1M0EwCivljqEgPiB5dcOhbjsgIzUzQTEKK+WOoiA+IHhpxIFuZzsgIzUzQTIKK+WOoyA+IHnEg247ICM1M0EzCivljqQgPiBsw6w7ICM1M0E0CivljqUgPiBqdcOpOyAjNTNBNQor5Y6mID4gc2jDoDsgIzUzQTYKK+WOpyA+IGRpxIFuOyAjNTNBNwor5Y6oID4gY2jDujsgIzUzQTgKK+WOqSA+IGrDrHU7ICM1M0E5CivljqogPiBxw61uOyAjNTNBQQor5Y6rID4gw6FvOyAjNTNBQgor5Y6sID4gZ8WtaTsgIzUzQUMKK+WOrSA+IHnDoG47ICM1M0FECivljq4gPiBzxKs7ICM1M0FFCivljq8gPiBsw6w7ICM1M0FGCivljrAgPiBjaMSDbmc7ICM1M0IwCivljrEgPiBsw6FuOyAjNTNCMQor5Y6yID4gbMOsOyAjNTNCMgor5Y6zID4gecOhbjsgIzUzQjMKK+WOtCA+IHnEg247ICM1M0I0CivljrUgPiB5dcOhbjsgIzUzQjUKK+WOtiA+IHPEqzsgIzUzQjYKK+WOtyA+IGfFjW5nOyAjNTNCNwor5Y64ID4gbMOtbjsgIzUzQjgKK+WOuSA+IHHDrXU7ICM1M0I5CivljrogPiBxw7k7ICM1M0JBCivljrsgPiBxw7k7ICM1M0JCCivljr0gPiBsxJVpOyAjNTNCRAor5Y6+ID4gZMWrOyAjNTNCRQor5Y6/ID4geGnDoG47ICM1M0JGCivlj4AgPiB6aHXEgW47ICM1M0MwCivlj4EgPiBzxIFuOyAjNTNDMQor5Y+CID4gY8SBbjsgIzUzQzIKK+WPgyA+IGPEgW47ICM1M0MzCivlj4QgPiBjxIFuOyAjNTNDNAor5Y+FID4gY8SBbjsgIzUzQzUKK+WPhiA+IMOgaTsgIzUzQzYKK+WPhyA+IGTDoGk7ICM1M0M3Civlj4ggPiB5w7J1OyAjNTNDOAor5Y+JID4gY2hhOyAjNTNDOQor5Y+KID4gasOtOyAjNTNDQQor5Y+LID4gecWPdTsgIzUzQ0IKK+WPjCA+IHNodcSBbmc7ICM1M0NDCivlj40gPiBmxINuOyAjNTNDRAor5Y+OID4gc2jFjXU7ICM1M0NFCivlj48gPiBndcOgaTsgIzUzQ0YKK+WPkCA+IGLDoTsgIzUzRDAKK+WPkSA+IGbEgTsgIzUzRDEKK+WPkiA+IHLDuW87ICM1M0QyCivlj5MgPiBzaMOsOyAjNTNEMwor5Y+UID4gc2jFqzsgIzUzRDQKK+WPlSA+IHpow7pvOyAjNTNENQor5Y+WID4gccWrOyAjNTNENgor5Y+XID4gc2jDsnU7ICM1M0Q3Civlj5ggPiBiacOgbjsgIzUzRDgKK+WPmSA+IHjDuTsgIzUzRDkKK+WPmiA+IGppxIM7ICM1M0RBCivlj5sgPiBww6BuOyAjNTNEQgor5Y+cID4gc8WPdTsgIzUzREMKK+WPnSA+IGfDoG87ICM1M0RECivlj54gPiB3w6hpOyAjNTNERQor5Y+fID4gc8WPdTsgIzUzREYKK+WPoCA+IGRpw6k7ICM1M0UwCivlj6EgPiByw7lpOyAjNTNFMQor5Y+iID4gY8Ozbmc7ICM1M0UyCivlj6MgPiBrxY91OyAjNTNFMwor5Y+kID4gZ8WtOyAjNTNFNAor5Y+lID4gasO5OyAjNTNFNQor5Y+mID4gbMOsbmc7ICM1M0U2Civlj6cgPiBndcSDOyAjNTNFNwor5Y+oID4gdMSBbzsgIzUzRTgKK+WPqSA+IGvDsnU7ICM1M0U5Civlj6ogPiB6aMStOyAjNTNFQQor5Y+rID4gamnDoG87ICM1M0VCCivlj6wgPiB6aMOgbzsgIzUzRUMKK+WPrSA+IGLEgTsgIzUzRUQKK+WPriA+IGTEq25nOyAjNTNFRQor5Y+vID4ga8SVOyAjNTNFRgor5Y+wID4gdMOhaTsgIzUzRjAKK+WPsSA+IGNow6w7ICM1M0YxCivlj7IgPiBzaMStOyAjNTNGMgor5Y+zID4gecOydTsgIzUzRjMKK+WPtCA+IHHDrXU7ICM1M0Y0Civlj7UgPiBwxY87ICM1M0Y1Civlj7YgPiB4acOpOyAjNTNGNgor5Y+3ID4gaMOgbzsgIzUzRjcKK+WPuCA+IHPEqzsgIzUzRjgKK+WPuSA+IHTDoG47ICM1M0Y5Civlj7ogPiBjaMStOyAjNTNGQQor5Y+7ID4gbMOoOyAjNTNGQgor5Y+8ID4gZGnEgW87ICM1M0ZDCivlj70gPiBqxKs7ICM1M0ZECivlj78gPiBoxY1uZzsgIzUzRkYKK+WQgCA+IG1pxJM7ICM1NDAwCivlkIEgPiB4xas7ICM1NDAxCivlkIIgPiBtw6FuZzsgIzU0MDIKK+WQgyA+IGNoxKs7ICM1NDAzCivlkIQgPiBnw6g7ICM1NDA0CivlkIUgPiB4dcSBbjsgIzU0MDUKK+WQhiA+IHnEgW87ICM1NDA2CivlkIcgPiB6xK07ICM1NDA3CivlkIggPiBow6k7ICM1NDA4CivlkIkgPiBqw607ICM1NDA5CivlkIogPiBkacOgbzsgIzU0MEEKK+WQiyA+IGPDuW47ICM1NDBCCivlkIwgPiB0w7NuZzsgIzU0MEMKK+WQjSA+IG3DrW5nOyAjNTQwRAor5ZCOID4gaMOydTsgIzU0MEUKK+WQjyA+IGzDrDsgIzU0MEYKK+WQkCA+IHTFrTsgIzU0MTAKK+WQkSA+IHhpw6BuZzsgIzU0MTEKK+WQkiA+IHpow6A7ICM1NDEyCivlkJMgPiB4acOgOyAjNTQxMwor5ZCUID4gecSVOyAjNTQxNAor5ZCVID4gbMeaOyAjNTQxNQor5ZCWID4gxIE7ICM1NDE2CivlkJcgPiBtYTsgIzU0MTcKK+WQmCA+IMWPdTsgIzU0MTgKK+WQmSA+IHh1xJM7ICM1NDE5CivlkJogPiB5xKs7ICM1NDFBCivlkJsgPiBqxatuOyAjNTQxQgor5ZCcID4gY2jFj3U7ICM1NDFDCivlkJ0gPiBsw6xuOyAjNTQxRAor5ZCeID4gdMWrbjsgIzU0MUUKK+WQnyA+IHnDrW47ICM1NDFGCivlkKAgPiBmw6hpOyAjNTQyMAor5ZChID4gYsStOyAjNTQyMQor5ZCiID4gccOsbjsgIzU0MjIKK+WQoyA+IHHDrG47ICM1NDIzCivlkKQgPiBqacOoOyAjNTQyNAor5ZClID4gYsO5OyAjNTQyNQor5ZCmID4gZsWPdTsgIzU0MjYKK+WQpyA+IGJhOyAjNTQyNwor5ZCoID4gZMWrbjsgIzU0MjgKK+WQqSA+IGbEk247ICM1NDI5CivlkKogPiDDqTsgIzU0MkEKK+WQqyA+IGjDoW47ICM1NDJCCivlkKwgPiB0xKtuZzsgIzU0MkMKK+WQrSA+IGjDoW5nOyAjNTQyRAor5ZCuID4gc2jFrW47ICM1NDJFCivlkK8gPiBxxK07ICM1NDJGCivlkLAgPiBow7NuZzsgIzU0MzAKK+WQsSA+IHpoxKs7ICM1NDMxCivlkLIgPiBzaMSVbjsgIzU0MzIKK+WQsyA+IHfDujsgIzU0MzMKK+WQtCA+IHfDujsgIzU0MzQKK+WQtSA+IGNoxINvOyAjNTQzNQor5ZC2ID4gbsOoOyAjNTQzNgor5ZC3ID4geHXDqDsgIzU0MzcKK+WQuCA+IHjEqzsgIzU0MzgKK+WQuSA+IGNoxatpOyAjNTQzOQor5ZC6ID4gZMWNdTsgIzU0M0EKK+WQuyA+IHfElW47ICM1NDNCCivlkLwgPiBoxY91OyAjNTQzQwor5ZC9ID4gw7N1OyAjNTQzRAor5ZC+ID4gd8O6OyAjNTQzRQor5ZC/ID4gZ8OgbzsgIzU0M0YKK+WRgCA+IHnEgTsgIzU0NDAKK+WRgSA+IGrDuW47ICM1NDQxCivlkYIgPiBsx5o7ICM1NDQyCivlkYMgPiDDqDsgIzU0NDMKK+WRhCA+IGfDqTsgIzU0NDQKK+WRhSA+IG3DqWk7ICM1NDQ1CivlkYYgPiDDoWk7ICM1NDQ2CivlkYcgPiBxxK07ICM1NDQ3CivlkYggPiBjaMOpbmc7ICM1NDQ4CivlkYkgPiB3w7o7ICM1NDQ5CivlkYogPiBnw6BvOyAjNTQ0QQor5ZGLID4gZsWrOyAjNTQ0Qgor5ZGMID4gamnDoG87ICM1NDRDCivlkY0gPiBoxY1uZzsgIzU0NEQKK+WRjiA+IGNoxK07ICM1NDRFCivlkY8gPiBzaMSTbmc7ICM1NDRGCivlkZAgPiBuw6g7ICM1NDUwCivlkZEgPiB0xatuOyAjNTQ1MQor5ZGSID4gZsWtOyAjNTQ1Mgor5ZGTID4gecOsOyAjNTQ1Mwor5ZGUID4gZMSBaTsgIzU0NTQKK+WRlSA+IMWNdTsgIzU0NTUKK+WRliA+IGzDrDsgIzU0NTYKK+WRlyA+IGLDoGk7ICM1NDU3CivlkZggPiB5dcOhbjsgIzU0NTgKK+WRmSA+IGt1xIFpOyAjNTQ1OQor5ZGbID4gcWnEgW5nOyAjNTQ1Qgor5ZGcID4gd8WrOyAjNTQ1Qwor5ZGdID4gw6g7ICM1NDVECivlkZ4gPiBzaMSrOyAjNTQ1RQor5ZGfID4gcXXEg247ICM1NDVGCivlkaAgPiBwxJNuOyAjNTQ2MAor5ZGhID4gd8SVbjsgIzU0NjEKK+WRoiA+IG7DrTsgIzU0NjIKK+WRoyA+IG3MgTsgIzU0NjMKK+WRpCA+IGzErW5nOyAjNTQ2NAor5ZGlID4gcsSDbjsgIzU0NjUKK+WRpiA+IHnFjXU7ICM1NDY2CivlkacgPiBkxK07ICM1NDY3CivlkaggPiB6aMWNdTsgIzU0NjgKK+WRqSA+IHNow6w7ICM1NDY5CivlkaogPiB6aMOydTsgIzU0NkEKK+WRqyA+IHRpxJM7ICM1NDZCCivlkawgPiB4w6w7ICM1NDZDCivlka0gPiB5w6w7ICM1NDZECivlka4gPiBxw6w7ICM1NDZFCivlka8gPiBww61uZzsgIzU0NkYKK+WRsCA+IHrErTsgIzU0NzAKK+WRsSA+IGfFqzsgIzU0NzEKK+WRsiA+IHrEqzsgIzU0NzIKK+WRsyA+IHfDqGk7ICM1NDczCivlkbQgPiB4xas7ICM1NDc0CivlkbUgPiBoxJM7ICM1NDc1CivlkbYgPiBuw6FvOyAjNTQ3Ngor5ZG3ID4geGnEgTsgIzU0NzcKK+WRuCA+IHDEk2k7ICM1NDc4CivlkbkgPiB5w6w7ICM1NDc5CivlkbogPiB4acSBbzsgIzU0N0EKK+WRuyA+IHNoxJNuOyAjNTQ3Qgor5ZG8ID4gaMWrOyAjNTQ3Qwor5ZG9ID4gbcOsbmc7ICM1NDdECivlkb4gPiBkw6E7ICM1NDdFCivlkb8gPiBxxas7ICM1NDdGCivlkoAgPiBqxa07ICM1NDgwCivlkoEgPiBnw6htOyAjNTQ4MQor5ZKCID4gesSBOyAjNTQ4Mgor5ZKDID4gdMWrbzsgIzU0ODMKK+WShCA+IGTFq287ICM1NDg0CivlkoUgPiBww7J1OyAjNTQ4NQor5ZKGID4gcMOhbzsgIzU0ODYKK+WShyA+IGLDrDsgIzU0ODcKK+WSiCA+IGbDujsgIzU0ODgKK+WSiSA+IHnEgW5nOyAjNTQ4OQor5ZKKID4gaMOpOyAjNTQ4QQor5ZKLID4gemjDoDsgIzU0OEIKK+WSjCA+IGjDqTsgIzU0OEMKK+WSjSA+IGjEgWk7ICM1NDhECivlko4gPiBqw6x1OyAjNTQ4RQor5ZKPID4gecWPbmc7ICM1NDhGCivlkpAgPiBmw7k7ICM1NDkwCivlkpEgPiBxdcOoOyAjNTQ5MQor5ZKSID4gemjDsnU7ICM1NDkyCivlkpMgPiB3xIM7ICM1NDkzCivlkpQgPiBrxIM7ICM1NDk0CivlkpUgPiBnxas7ICM1NDk1CivlkpYgPiBrxIE7ICM1NDk2CivlkpcgPiB6xa1vOyAjNTQ5Nwor5ZKYID4gYsO5OyAjNTQ5OAor5ZKZID4gbMOzbmc7ICM1NDk5CivlkpogPiBkxY1uZzsgIzU0OUEKK+WSmyA+IG7DrW5nOyAjNTQ5Qgor5ZKdID4gc8SrOyAjNTQ5RAor5ZKeID4geGnDoG47ICM1NDlFCivlkp8gPiBow7lvOyAjNTQ5Rgor5ZKgID4gccOsOyAjNTRBMAor5ZKhID4gw6hyOyAjNTRBMQor5ZKiID4gw6g7ICM1NEEyCivlkqMgPiBndcSBbmc7ICM1NEEzCivlkqQgPiB6aMOgOyAjNTRBNAor5ZKlID4geMOsOyAjNTRBNQor5ZKmID4gecOtOyAjNTRBNgor5ZKnID4gbGnElTsgIzU0QTcKK+WSqCA+IHrEqzsgIzU0QTgKK+WSqSA+IG1pxJM7ICM1NEE5CivlkqogPiBtxKs7ICM1NEFBCivlkqsgPiB6aMStOyAjNTRBQgor5ZKsID4gecSDbzsgIzU0QUMKK+WSrSA+IGrEqzsgIzU0QUQKK+WSriA+IHpow7J1OyAjNTRBRQor5ZKvID4gZ8STOyAjNTRBRgor5ZKwID4gc2h1w6BpOyAjNTRCMAor5ZKxID4gesOhbjsgIzU0QjEKK+WSsiA+IHhpw6BvOyAjNTRCMgor5ZKzID4ga8OpOyAjNTRCMwor5ZK0ID4gaMWraTsgIzU0QjQKK+WStSA+IGt1xIE7ICM1NEI1CivlkrYgPiBodcOgaTsgIzU0QjYKK+WStyA+IHTDoW87ICM1NEI3CivlkrggPiB4acOhbjsgIzU0QjgKK+WSuSA+IMOoOyAjNTRCOQor5ZK6ID4geHXEgW47ICM1NEJBCivlkrsgPiB4xKt1OyAjNTRCQgor5ZK8ID4gd8SBaTsgIzU0QkMKK+WSvSA+IHnEgW47ICM1NEJECivlkr4gPiBsxINvOyAjNTRCRQor5ZK/ID4gecSrOyAjNTRCRgor5ZOAID4gxIFpOyAjNTRDMAor5ZOBID4gcMStbjsgIzU0QzEKK+WTgiA+IHNoxJVuOyAjNTRDMgor5ZODID4gdMOzbmc7ICM1NEMzCivlk4QgPiBoxY1uZzsgIzU0QzQKK+WThSA+IHjEq29uZzsgIzU0QzUKK+WThiA+IGNoxK07ICM1NEM2Civlk4cgPiB3xIE7ICM1NEM3Civlk4ggPiBoxIE7ICM1NEM4Civlk4kgPiB6xIFpOyAjNTRDOQor5ZOKID4gecO5OyAjNTRDQQor5ZOLID4gZMOsOyAjNTRDQgor5ZOMID4gcMOgaTsgIzU0Q0MKK+WTjSA+IHhpxINuZzsgIzU0Q0QKK+WTjiA+IMSBaTsgIzU0Q0UKK+WTjyA+IGjElW47ICM1NENGCivlk5AgPiBrdcSBbmc7ICM1NEQwCivlk5EgPiB5xIM7ICM1NEQxCivlk5IgPiBkxIE7ICM1NEQyCivlk5MgPiB4acSBbzsgIzU0RDMKK+WTlCA+IGLDrDsgIzU0RDQKK+WTlSA+IHl1xJU7ICM1NEQ1Civlk5cgPiBodcSBOyAjNTRENwor5ZOZID4ga3XDoGk7ICM1NEQ5Civlk5ogPiBkxa1vOyAjNTREQQor5ZOcID4gasOsOyAjNTREQwor5ZOdID4gbsOzbmc7ICM1NERECivlk54gPiBtxY11OyAjNTRERQor5ZOfID4geW87ICM1NERGCivlk6AgPiBow6BvOyAjNTRFMAor5ZOhID4geXXDoW47ICM1NEUxCivlk6IgPiBsw7JuZzsgIzU0RTIKK+WToyA+IHDFj3U7ICM1NEUzCivlk6QgPiBtw6FuZzsgIzU0RTQKK+WTpSA+IGfEkzsgIzU0RTUKK+WTpiA+IMOpOyAjNTRFNgor5ZOnID4gY2jEqzsgIzU0RTcKK+WTqCA+IHNow6BvOyAjNTRFOAor5ZOpID4gbMSrOyAjNTRFOQor5ZOqID4gbsSDOyAjNTRFQQor5ZOrID4gesO6OyAjNTRFQgor5ZOsID4gaMOpOyAjNTRFQwor5ZOtID4ga8WrOyAjNTRFRAor5ZOuID4geGnEgW87ICM1NEVFCivlk68gPiB4acOgbjsgIzU0RUYKK+WTsCA+IGzDoW87ICM1NEYwCivlk7EgPiBixY07ICM1NEYxCivlk7IgPiB6aMOpOyAjNTRGMgor5ZOzID4gemjEgTsgIzU0RjMKK+WTtCA+IGxpw6BuZzsgIzU0RjQKK+WTtSA+IGLEgTsgIzU0RjUKK+WTtiA+IG1pxJM7ICM1NEY2Civlk7cgPiBsw6g7ICM1NEY3Civlk7ggPiBzxatpOyAjNTRGOAor5ZO5ID4gZsOzdTsgIzU0RjkKK+WTuiA+IGLFrTsgIzU0RkEKK+WTuyA+IGjDoG47ICM1NEZCCivlk7wgPiBoxJNuZzsgIzU0RkMKK+WTvSA+IGfElW5nOyAjNTRGRAor5ZO+ID4gc2jFq287ICM1NEZFCivlk78gPiBnxJU7ICM1NEZGCivllIAgPiB5xY91OyAjNTUwMAor5ZSBID4gecOgbjsgIzU1MDEKK+WUgiA+IGfFrTsgIzU1MDIKK+WUgyA+IGfFrTsgIzU1MDMKK+WUhCA+IGLDoGk7ICM1NTA0CivllIUgPiBoxIFuOyAjNTUwNQor5ZSGID4gc8WrbzsgIzU1MDYKK+WUhyA+IGNow7puOyAjNTUwNwor5ZSIID4gecOsOyAjNTUwOAor5ZSJID4gxIFpOyAjNTUwOQor5ZSKID4gamnDoTsgIzU1MEEKK+WUiyA+IHTFrTsgIzU1MEIKK+WUjCA+IHhpw6FuOyAjNTUwQwor5ZSNID4gaHXEg247ICM1NTBECivllI4gPiBsxKs7ICM1NTBFCivllI8gPiB4xKs7ICM1NTBGCivllJAgPiB0w6FuZzsgIzU1MTAKK+WUkSA+IHrDuW87ICM1NTExCivllJIgPiBxw611OyAjNTUxMgor5ZSTID4gY2jEkzsgIzU1MTMKK+WUlCA+IHfDujsgIzU1MTQKK+WUlSA+IHrDoG87ICM1NTE1CivllJYgPiB5xIM7ICM1NTE2CivllJcgPiBkxY11OyAjNTUxNwor5ZSYID4gccStOyAjNTUxOAor5ZSZID4gZMOtOyAjNTUxOQor5ZSaID4gccOsbjsgIzU1MUEKK+WUmyA+IG3DoDsgIzU1MUIKK+WUnSA+IGjFj25nOyAjNTUxRAor5ZSeID4gZMWPdTsgIzU1MUUKK+WUoCA+IGzDoW87ICM1NTIwCivllKEgPiBsacSDbmc7ICM1NTIxCivllKIgPiBzxa1vOyAjNTUyMgor5ZSjID4gesOgbzsgIzU1MjMKK+WUpCA+IGh1w6BuOyAjNTUyNAor5ZSmID4gc2jEgTsgIzU1MjYKK+WUpyA+IGrEqzsgIzU1MjcKK+WUqCA+IHrFrW87ICM1NTI4CivllKkgPiB3xY07ICM1NTI5CivllKogPiBmxJVuZzsgIzU1MkEKK+WUqyA+IHnDrW47ICM1NTJCCivllKwgPiBoxa07ICM1NTJDCivllK0gPiBxxKs7ICM1NTJECivllK4gPiBzaMOydTsgIzU1MkUKK+WUryA+IHfDqWk7ICM1NTJGCivllLAgPiBzaHXEgTsgIzU1MzAKK+WUsSA+IGNow6BuZzsgIzU1MzEKK+WUsiA+IMOpcjsgIzU1MzIKK+WUsyA+IGzDrDsgIzU1MzMKK+WUtCA+IHFpw6BuZzsgIzU1MzQKK+WUtSA+IMSDbjsgIzU1MzUKK+WUtiA+IGppw6g7ICM1NTM2CivllLcgPiB5xY07ICM1NTM3CivllLggPiBuacOgbjsgIzU1MzgKK+WUuSA+IHnFqzsgIzU1MzkKK+WUuiA+IHRpxINuOyAjNTUzQQor5ZS7ID4gbMSDaTsgIzU1M0IKK+WUvCA+IHNow6A7ICM1NTNDCivllL0gPiB4xKs7ICM1NTNECivllL4gPiB0w7lvOyAjNTUzRQor5ZS/ID4gaMWrOyAjNTUzRgor5ZWAID4gw6FpOyAjNTU0MAor5ZWBID4gemjFjXU7ICM1NTQxCivllYIgPiBuw7J1OyAjNTU0Mgor5ZWDID4ga8SVbjsgIzU1NDMKK+WVhCA+IHpow7pvOyAjNTU0NAor5ZWFID4gemjDum87ICM1NTQ1CivllYYgPiBzaMSBbmc7ICM1NTQ2CivllYcgPiBkw607ICM1NTQ3CivllYggPiBow6huZzsgIzU1NDgKK+WViSA+IGzDoW47ICM1NTQ5CivllYogPiBhOyAjNTU0QQor5ZWLID4geGnEgW87ICM1NTRCCivllYwgPiB4acSBbmc7ICM1NTRDCivllY0gPiB0xatuOyAjNTU0RAor5ZWOID4gd8WtOyAjNTU0RQor5ZWPID4gd8OobjsgIzU1NEYKK+WVkCA+IGPDuWk7ICM1NTUwCivllZEgPiBzaMOgOyAjNTU1MQor5ZWSID4gaMWrOyAjNTU1Mgor5ZWTID4gccStOyAjNTU1Mwor5ZWUID4gccStOyAjNTU1NAor5ZWVID4gdMOhbzsgIzU1NTUKK+WVliA+IGTDoG47ICM1NTU2CivllZcgPiBkw6BuOyAjNTU1Nwor5ZWYID4gecOoOyAjNTU1OAor5ZWZID4gesStOyAjNTU1OQor5ZWaID4gYsStOyAjNTU1QQor5ZWbID4gY8O5aTsgIzU1NUIKK+WVnCA+IGNow7lvOyAjNTU1Qwor5ZWdID4gaMOpOyAjNTU1RAor5ZWeID4gecSDOyAjNTU1RQor5ZWfID4gccStOyAjNTU1Rgor5ZWgID4gemjDqTsgIzU1NjAKK+WVoSA+IHDEk2k7ICM1NTYxCivllaIgPiBsacSDbmc7ICM1NTYyCivllaMgPiB4acOhbjsgIzU1NjMKK+WVpCA+IHDDrTsgIzU1NjQKK+WVpSA+IHNow6A7ICM1NTY1CivllaYgPiBsYTsgIzU1NjYKK+WVpyA+IHrDqTsgIzU1NjcKK+WVqCA+IHHEq25nOyAjNTU2OAor5ZWpID4gZ3XDoDsgIzU1NjkKK+WVqiA+IHDEgTsgIzU1NkEKK+WVqyA+IHpoxJU7ICM1NTZCCivllawgPiBzw6g7ICM1NTZDCivlla0gPiB6aHXDoG47ICM1NTZECivlla4gPiBuacOoOyAjNTU2RQor5ZWvID4gZ3VvOyAjNTU2Rgor5ZWwID4gbMWrbzsgIzU1NzAKK+WVsSA+IHnEgW47ICM1NTcxCivllbIgPiBkw6w7ICM1NTcyCivllbMgPiBxdcOhbjsgIzU1NzMKK+WVtCA+IHTEgW47ICM1NTc0CivllbUgPiBibzsgIzU1NzUKK+WVtiA+IGTDrG5nOyAjNTU3Ngor5ZW3ID4gbMSBbmc7ICM1NTc3CivllbggPiB4acOgbzsgIzU1NzgKK+WVuiA+IHTDoW5nOyAjNTU3QQor5ZW7ID4gY2jDrDsgIzU1N0IKK+WVvCA+IHTDrTsgIzU1N0MKK+WVvSA+IMOhbjsgIzU1N0QKK+WVviA+IGrEq3U7ICM1NTdFCivllb8gPiBkw6BuOyAjNTU3Rgor5ZaAID4ga8OoOyAjNTU4MAor5ZaBID4gecOzbmc7ICM1NTgxCivlloIgPiB3w6hpOyAjNTU4Mgor5ZaDID4gbsOhbjsgIzU1ODMKK+WWhCA+IHNow6BuOyAjNTU4NAor5ZaFID4gecO5OyAjNTU4NQor5ZaGID4gemjDqTsgIzU1ODYKK+WWhyA+IGzEgzsgIzU1ODcKK+WWiCA+IGppxJM7ICM1NTg4CivllokgPiBow7N1OyAjNTU4OQor5ZaKID4gaMSDbjsgIzU1OEEKK+WWiyA+IGRpw6k7ICM1NThCCivllowgPiB6aMWNdTsgIzU1OEMKK+WWjSA+IGNow6FpOyAjNTU4RAor5ZaOID4gd8SBaTsgIzU1OEUKK+WWjyA+IHLElTsgIzU1OEYKK+WWkCA+IHnDuTsgIzU1OTAKK+WWkSA+IHnEq247ICM1NTkxCivllpIgPiB6w6FuOyAjNTU5Mgor5ZaTID4gecSBbzsgIzU1OTMKK+WWlCA+IHfFjTsgIzU1OTQKK+WWlSA+IG1pxINuOyAjNTU5NQor5ZaWID4gaMO6OyAjNTU5Ngor5ZaXID4gecWtbjsgIzU1OTcKK+WWmCA+IGNodcSDbjsgIzU1OTgKK+WWmSA+IGjDuWk7ICM1NTk5CivllpogPiBodcOgbjsgIzU1OUEKK+WWmyA+IGh1w6BuOyAjNTU5Qgor5ZacID4geMStOyAjNTU5Qwor5ZadID4gaMSTOyAjNTU5RAor5ZaeID4gasSrOyAjNTU5RQor5ZafID4ga8O5aTsgIzU1OUYKK+WWoCA+IHpoxY9uZzsgIzU1QTAKK+WWoSA+IHfElWk7ICM1NUExCivllqIgPiBzaMOgOyAjNTVBMgor5ZajID4geMWtOyAjNTVBMwor5ZakID4gaHXDoW5nOyAjNTVBNAor5ZalID4gZMO5OyAjNTVBNQor5ZamID4gbmnDqDsgIzU1QTYKK+WWpyA+IDF4dcSBbjsgIzU1QTcKK+WWqCA+IGxpw6BuZzsgIzU1QTgKK+WWqSA+IHnDuTsgIzU1QTkKK+WWqiA+IHPEgW5nOyAjNTVBQQor5ZarID4gY2jEqzsgIzU1QUIKK+WWrCA+IHFpw6FvOyAjNTVBQwor5ZatID4gecOgbjsgIzU1QUQKK+WWriA+IGTEgW47ICM1NUFFCivllq8gPiBwxJNuOyAjNTVBRgor5ZawID4gY8SBbjsgIzU1QjAKK+WWsSA+IGzDrTsgIzU1QjEKK+WWsiA+IHlvOyAjNTVCMgor5ZazID4gemjEgTsgIzU1QjMKK+WWtCA+IHfEk2k7ICM1NUI0CivllrUgPiBtacSBbzsgIzU1QjUKK+WWtiA+IHnDrW5nOyAjNTVCNgor5Za3ID4gcMSTbjsgIzU1QjcKK+WWuSA+IGvDumk7ICM1NUI5CivllrogPiB4w6w7ICM1NUJBCivllrsgPiB5w7k7ICM1NUJCCivllrwgPiBqacOpOyAjNTVCQwor5Za9ID4gbG91OyAjNTVCRAor5Za+ID4ga8O5OyAjNTVCRQor5Za/ID4gc8OgbzsgIzU1QkYKK+WXgCA+IGjDuW87ICM1NUMwCivll4EgPiB0w607ICM1NUMxCivll4IgPiB5w6FvOyAjNTVDMgor5ZeDID4gaMOoOyAjNTVDMwor5ZeEID4gw6E7ICM1NUM0Civll4UgPiB4w6x1OyAjNTVDNQor5ZeGID4gcWnEgW5nOyAjNTVDNgor5ZeHID4gc8OoOyAjNTVDNwor5ZeIID4gecWNbmc7ICM1NUM4Civll4kgPiBzw7k7ICM1NUM5Civll4ogPiBoxY9uZzsgIzU1Q0EKK+WXiyA+IHhpw6k7ICM1NUNCCivll4wgPiB5w6w7ICM1NUNDCivll40gPiBzxatvOyAjNTVDRAor5ZeOID4gbWE7ICM1NUNFCivll48gPiBjaMSBOyAjNTVDRgor5ZeQID4gaMOgaTsgIzU1RDAKK+WXkSA+IGvDqDsgIzU1RDEKK+WXkiA+IHTDoDsgIzU1RDIKK+WXkyA+IHPEg25nOyAjNTVEMwor5ZeUID4gdGnDoW47ICM1NUQ0Civll5UgPiByw7k7ICM1NUQ1Civll5YgPiBzxY11OyAjNTVENgor5ZeXID4gd8SBOyAjNTVENwor5ZeYID4gasSrOyAjNTVEOAor5ZeZID4gcMSDbmc7ICM1NUQ5Civll5ogPiB3xas7ICM1NURBCivll5sgPiB4acOhbjsgIzU1REIKK+WXnCA+IHNow6w7ICM1NURDCivll50gPiBnw6k7ICM1NURECivll54gPiB6xKs7ICM1NURFCivll58gPiBqacSTOyAjNTVERgor5ZegID4gbMO5bzsgIzU1RTAKK+WXoSA+IHfEk25nOyAjNTVFMQor5ZeiID4gd8OgOyAjNTVFMgor5ZejID4gc8OsOyAjNTVFMwor5ZekID4gY2jEqzsgIzU1RTQKK+WXpSA+IGjDoW87ICM1NUU1Civll6YgPiBzxatvOyAjNTVFNgor5ZenID4gamnEgScgJ2zDum47ICM1NUU3Civll6ggPiBoxINpOyAjNTVFOAor5ZepID4gc8WtbzsgIzU1RTkKK+WXqiA+IHHDrW47ICM1NUVBCivll6sgPiBuacOoOyAjNTVFQgor5ZesID4gaMSTOyAjNTVFQwor5ZeuID4gc8OgaTsgIzU1RUUKK+WXryA+IG7MgGc7ICM1NUVGCivll7AgPiBnw6g7ICM1NUYwCivll7EgPiBuw6E7ICM1NUYxCivll7IgPiBkacSDOyAjNTVGMgor5ZezID4gw6BpOyAjNTVGMwor5Ze1ID4gdMWNbmc7ICM1NUY1Civll7YgPiBiw6w7ICM1NUY2Civll7cgPiDDoW87ICM1NUY3Civll7ggPiDDoW87ICM1NUY4Civll7kgPiBsacOhbjsgIzU1RjkKK+WXuiA+IGPFq2k7ICM1NUZBCivll7sgPiB6aMSTOyAjNTVGQgor5Ze8ID4gbcOyOyAjNTVGQwor5Ze9ID4gc8OydTsgIzU1RkQKK+WXviA+IHPFj3U7ICM1NUZFCivll78gPiB0xINuOyAjNTVGRgor5ZiAID4gZMOtOyAjNTYwMAor5ZiBID4gccSrOyAjNTYwMQor5ZiCID4gamnDoG87ICM1NjAyCivlmIMgPiBjaMWNbmc7ICM1NjAzCivlmIQgPiBqacSBbzsgIzU2MDQKK+WYhSA+IGvEg2k7ICM1NjA1CivlmIYgPiB0w6BuOyAjNTYwNgor5ZiHID4gc8SBbjsgIzU2MDcKK+WYiCA+IGPDoW87ICM1NjA4CivlmIkgPiBqacSBOyAjNTYwOQor5ZiKID4gw6FpOyAjNTYwQQor5ZiLID4geGnEgW87ICM1NjBCCivlmIwgPiBwacSBbzsgIzU2MEMKK+WYjSA+IGxvdTsgIzU2MEQKK+WYjiA+IGfEgTsgIzU2MEUKK+WYjyA+IGfFrTsgIzU2MEYKK+WYkCA+IHhpxIFvOyAjNTYxMAor5ZiRID4gaMWrOyAjNTYxMQor5ZiSID4gaMO5aTsgIzU2MTIKK+WYkyA+IGd1bzsgIzU2MTMKK+WYlCA+IMWNdTsgIzU2MTQKK+WYlSA+IHhpxIFuOyAjNTYxNQor5ZiWID4gesOpOyAjNTYxNgor5ZiXID4gY2jDoW5nOyAjNTYxNwor5ZiYID4geMWrOyAjNTYxOAor5ZiZID4gcMOzOyAjNTYxOQor5ZiaID4gZMOpOyAjNTYxQQor5ZibID4gbWE7ICM1NjFCCivlmJwgPiBtw6A7ICM1NjFDCivlmJ0gPiBow7o7ICM1NjFECivlmJ4gPiBsZWk7ICM1NjFFCivlmJ8gPiBkxas7ICM1NjFGCivlmKAgPiBnxIE7ICM1NjIwCivlmKEgPiB0xIFuZzsgIzU2MjEKK+WYoiA+IHnElTsgIzU2MjIKK+WYoyA+IGLEk25nOyAjNTYyMwor5ZikID4gecSrbmc7ICM1NjI0CivlmKYgPiBqacOgbzsgIzU2MjYKK+WYpyA+IG3EqzsgIzU2MjcKK+WYqCA+IHhpw6BvOyAjNTYyOAor5ZipID4gaHXEgTsgIzU2MjkKK+WYqiA+IG3Eg2k7ICM1NjJBCivlmKsgPiByw6FuOyAjNTYyQgor5ZisID4gesWrbzsgIzU2MkMKK+WYrSA+IHDEk25nOyAjNTYyRAor5ZiuID4gbMOhbzsgIzU2MkUKK+WYryA+IHhpw6BvOyAjNTYyRgor5ZiwID4gasSrOyAjNTYzMAor5ZixID4gemjFrTsgIzU2MzEKK+WYsiA+IGNow6FvOyAjNTYzMgor5ZizID4ga8O5aTsgIzU2MzMKK+WYtCA+IHrFrWk7ICM1NjM0CivlmLUgPiB4acSBbzsgIzU2MzUKK+WYtiA+IHPEqzsgIzU2MzYKK+WYtyA+IGjDoW87ICM1NjM3CivlmLggPiBmxa07ICM1NjM4CivlmLkgPiBsacOhbzsgIzU2MzkKK+WYuiA+IHFpw6FvOyAjNTYzQQor5Zi7ID4geMSrOyAjNTYzQgor5Zi8ID4geMOsdTsgIzU2M0MKK+WYvSA+IHTEgW47ICM1NjNECivlmL4gPiB0w6FuOyAjNTYzRQor5Zi/ID4gbcOyOyAjNTYzRgor5ZmAID4geMO5bjsgIzU2NDAKK+WZgSA+IMSVOyAjNTY0MQor5ZmCID4gesWtbjsgIzU2NDIKK+WZgyA+IGbEgW47ICM1NjQzCivlmYQgPiBjaMSrOyAjNTY0NAor5ZmFID4gaMWraTsgIzU2NDUKK+WZhiA+IHrEg247ICM1NjQ2CivlmYcgPiBjaHXDoW5nOyAjNTY0Nwor5ZmIID4gY8O5OyAjNTY0OAor5ZmJID4gZMOgbjsgIzU2NDkKK+WZiiA+IHnDuTsgIzU2NEEKK+WZiyA+IHTFq247ICM1NjRCCivlmYwgPiBjaMSTbmc7ICM1NjRDCivlmY0gPiBqacOgbzsgIzU2NEQKK+WZjiA+IHnEkzsgIzU2NEUKK+WZjyA+IHjEqzsgIzU2NEYKK+WZkCA+IHHDrDsgIzU2NTAKK+WZkSA+IGjDoW87ICM1NjUxCivlmZIgPiBsacOhbjsgIzU2NTIKK+WZkyA+IHjFqzsgIzU2NTMKK+WZlCA+IGTEk25nOyAjNTY1NAor5ZmVID4gaMWraTsgIzU2NTUKK+WZliA+IHnDrW47ICM1NjU2CivlmZcgPiBwxas7ICM1NjU3CivlmZggPiBqdcSTOyAjNTY1OAor5ZmZID4gccOtbjsgIzU2NTkKK+WZmiA+IHjDum47ICM1NjVBCivlmZsgPiBuacOoOyAjNTY1Qgor5ZmcID4gbMWrOyAjNTY1Qwor5ZmdID4gc8SrOyAjNTY1RAor5ZmeID4gecSDbjsgIzU2NUUKK+WZnyA+IHnDrG5nOyAjNTY1Rgor5ZmgID4gZMSBOyAjNTY2MAor5ZmhID4gZMSBbjsgIzU2NjEKK+WZoiA+IHnFrTsgIzU2NjIKK+WZoyA+IHpow7J1OyAjNTY2Mwor5ZmkID4gasOsbjsgIzU2NjQKK+WZpSA+IG7Ds25nOyAjNTY2NQor5ZmmID4geXXElTsgIzU2NjYKK+WZpyA+IGjDuWk7ICM1NjY3CivlmaggPiBxw6w7ICM1NjY4CivlmakgPiDDqDsgIzU2NjkKK+WZqiA+IHrDoG87ICM1NjZBCivlmasgPiB5xKs7ICM1NjZCCivlmawgPiBzaMOsOyAjNTY2Qwor5ZmtID4gamnDoG87ICM1NjZECivlma4gPiB5dcSBbjsgIzU2NkUKK+WZryA+IMOgaTsgIzU2NkYKK+WZsCA+IHnFjW5nOyAjNTY3MAor5ZmxID4ganXDqTsgIzU2NzEKK+WZsiA+IGt1w6BpOyAjNTY3Mgor5ZmzID4gecWtOyAjNTY3Mwor5Zm0ID4gcMSTbjsgIzU2NzQKK+WZtSA+IGTDoG87ICM1Njc1CivlmbYgPiBnw6k7ICM1Njc2CivlmbcgPiB4xKtuOyAjNTY3Nwor5Zm4ID4gZMWrbjsgIzU2NzgKK+WZuSA+IGTEgW5nOyAjNTY3OQor5Zm7ID4gc2FpOyAjNTY3Qgor5Zm8ID4gcMSrOyAjNTY3Qwor5Zm9ID4gcMStOyAjNTY3RAor5Zm+ID4gecSrbjsgIzU2N0UKK+WZvyA+IHrFrWk7ICM1NjdGCivlmoAgPiBuw61uZzsgIzU2ODAKK+WagSA+IGTDrTsgIzU2ODEKK+WagiA+IGzDoG47ICM1NjgyCivlmoMgPiB0xIE7ICM1NjgzCivlmoQgPiBow7lvOyAjNTY4NAor5ZqFID4gcsO6OyAjNTY4NQor5ZqGID4gaMSBbzsgIzU2ODYKK+WahyA+IHhpw6A7ICM1Njg3CivlmoggPiB5w6A7ICM1Njg4CivlmokgPiBkxatvOyAjNTY4OQor5ZqKID4geMOsOyAjNTY4QQor5ZqLID4gY2jDs3U7ICM1NjhCCivlmowgPiBqw6w7ICM1NjhDCivlmo0gPiBqw6xuOyAjNTY4RAor5ZqOID4gaMOhbzsgIzU2OEUKK+WajyA+IHTDrDsgIzU2OEYKK+WakCA+IGNow6FuZzsgIzU2OTAKK+WakyA+IGPEgTsgIzU2OTMKK+WalCA+IHTDrDsgIzU2OTQKK+WalSA+IGzFqzsgIzU2OTUKK+WaliA+IGjDuWk7ICM1Njk2CivlmpcgPiBiw7M7ICM1Njk3CivlmpggPiB5xY11OyAjNTY5OAor5ZqZID4gbmnDqDsgIzU2OTkKK+WamiA+IHnDrW47ICM1NjlBCivlmpsgPiBow7k7ICM1NjlCCivlmpwgPiBtw7I7ICM1NjlDCivlmp0gPiBodcSBbmc7ICM1NjlECivlmp4gPiB6aMOpOyAjNTY5RQor5ZqfID4gbMOtOyAjNTY5Rgor5ZqgID4gbMOtdTsgIzU2QTAKK+WaoiA+IG7DoW5nOyAjNTZBMgor5ZqjID4geGnEgW87ICM1NkEzCivlmqQgPiBtw7M7ICM1NkE0CivlmqUgPiB5w6BuOyAjNTZBNQor5ZqmID4gbMOsOyAjNTZBNgor5ZqnID4gbMO6OyAjNTZBNwor5ZqoID4gbMOzbmc7ICM1NkE4CivlmqkgPiBmw7o7ICM1NkE5CivlmqogPiBkw6BuOyAjNTZBQQor5ZqrID4gY2jDqG47ICM1NkFCCivlmqwgPiBww61uOyAjNTZBQwor5ZqtID4gcMStOyAjNTZBRAor5ZquID4geGnDoG5nOyAjNTZBRQor5ZqvID4gaMO5bzsgIzU2QUYKK+WasCA+IG3DszsgIzU2QjAKK+WasSA+IHjDrDsgIzU2QjEKK+WasiA+IGTFrW87ICM1NkIyCivlmrMgPiBrw7k7ICM1NkIzCivlmrQgPiB5w6FuOyAjNTZCNAor5Zq1ID4gY2jDoW47ICM1NkI1CivlmrYgPiB5xKtuZzsgIzU2QjYKK+WatyA+IHLEg25nOyAjNTZCNwor5Zq4ID4gZGnEg247ICM1NkI4CivlmrkgPiBsxIE7ICM1NkI5CivlmrogPiB0w6A7ICM1NkJBCivlmrsgPiB4acSBbzsgIzU2QkIKK+WavCA+IGppw6FvOyAjNTZCQwor5Zq9ID4gY2jDuW87ICM1NkJECivlmr4gPiBodcSBbjsgIzU2QkUKK+WavyA+IGjDuW87ICM1NkJGCivlm4AgPiB6aHXDoG47ICM1NkMwCivlm4EgPiBuacOoOyAjNTZDMQor5ZuCID4geGnEgW87ICM1NkMyCivlm4MgPiBjw6A7ICM1NkMzCivlm4QgPiBsw607ICM1NkM0Civlm4UgPiBjaMSDbjsgIzU2QzUKK+WbhiA+IGNow6BpOyAjNTZDNgor5ZuHID4gbMOsOyAjNTZDNwor5ZuIID4gecOsOyAjNTZDOAor5ZuJID4gbMWrbzsgIzU2QzkKK+WbiiA+IG7DoW5nOyAjNTZDQQor5ZuLID4gesOgbjsgIzU2Q0IKK+WbjCA+IHPFqzsgIzU2Q0MKK+WbjSA+IHjErTsgIzU2Q0QKK+WbjyA+IGppxIFuOyAjNTZDRgor5ZuQID4gesOhOyAjNTZEMAor5ZuRID4gemjFrTsgIzU2RDEKK+WbkiA+IGzDoW47ICM1NkQyCivlm5MgPiBuacOoOyAjNTZEMwor5ZuUID4gbsSBbmc7ICM1NkQ0Civlm5cgPiB3w6lpOyAjNTZENwor5ZuYID4gaMO6aTsgIzU2RDgKK+WbmSA+IHnEq247ICM1NkQ5Civlm5ogPiBxw611OyAjNTZEQQor5ZubID4gc8OsOyAjNTZEQgor5ZucID4gbsOtbjsgIzU2REMKK+WbnSA+IGppxINuOyAjNTZERAor5ZueID4gaMO6aTsgIzU2REUKK+WbnyA+IHjDrG47ICM1NkRGCivlm6AgPiB5xKtuOyAjNTZFMAor5ZuhID4gbsSBbjsgIzU2RTEKK+WboiA+IHR1w6FuOyAjNTZFMgor5ZujID4gdHXDoW47ICM1NkUzCivlm6QgPiBkw7luOyAjNTZFNAor5ZulID4ga8Ogbmc7ICM1NkU1Civlm6YgPiB5dcSBbjsgIzU2RTYKK+WbpyA+IGrErW9uZzsgIzU2RTcKK+WbqCA+IHBpxIFuOyAjNTZFOAor5ZupID4gecO5bjsgIzU2RTkKK+WbqiA+IGPFjW5nOyAjNTZFQQor5ZurID4gaMO6OyAjNTZFQgor5ZusID4gaMO6aTsgIzU2RUMKK+WbrSA+IHl1w6FuOyAjNTZFRAor5ZuuID4gecOzdTsgIzU2RUUKK+WbryA+IGfDum87ICM1NkVGCivlm7AgPiBrw7luOyAjNTZGMAor5ZuxID4gY8WNbmc7ICM1NkYxCivlm7IgPiB3w6lpOyAjNTZGMgor5ZuzID4gdMO6OyAjNTZGMwor5Zu0ID4gd8OpaTsgIzU2RjQKK+WbtSA+IGzDum47ICM1NkY1Civlm7YgPiBnw7pvOyAjNTZGNgor5Zu3ID4gccWrbjsgIzU2RjcKK+WbuCA+IHLDrDsgIzU2RjgKK+WbuSA+IGzDrW5nOyAjNTZGOQor5Zu6ID4gZ8O5OyAjNTZGQQor5Zu7ID4gZ8O6bzsgIzU2RkIKK+WbvCA+IHTEgWk7ICM1NkZDCivlm70gPiBnw7pvOyAjNTZGRAor5Zu+ID4gdMO6OyAjNTZGRQor5Zu/ID4gecOydTsgIzU2RkYKK+WcgCA+IGfDum87ICM1NzAwCivlnIEgPiB5w61uOyAjNTcwMQor5ZyCID4gaMO5bjsgIzU3MDIKK+WcgyA+IHDFrTsgIzU3MDMKK+WchCA+IHnFrTsgIzU3MDQKK+WchSA+IGjDoW47ICM1NzA1CivlnIYgPiB5dcOhbjsgIzU3MDYKK+WchyA+IGzDum47ICM1NzA3CivlnIggPiBxdcSBbjsgIzU3MDgKK+WciSA+IHnFrTsgIzU3MDkKK+WciiA+IHHEq25nOyAjNTcwQQor5ZyLID4gZ8O6bzsgIzU3MEIKK+WcjCA+IGNodcOhbjsgIzU3MEMKK+WcjSA+IHfDqWk7ICM1NzBECivlnI4gPiB5dcOhbjsgIzU3MEUKK+WcjyA+IHF1xIFuOyAjNTcwRgor5ZyQID4ga8WrOyAjNTcxMAor5ZyRID4gZsO5OyAjNTcxMQor5ZySID4geXXDoW47ICM1NzEyCivlnJMgPiB5dcOhbjsgIzU3MTMKK+WclCA+IMOoOyAjNTcxNAor5ZyVID4gdMO6JyAnc2jFqycgJ2d1xINuOyAjNTcxNQor5ZyWID4gdMO6OyAjNTcxNgor5ZyXID4gdMO6OyAjNTcxNwor5ZyYID4gdHXDoW47ICM1NzE4CivlnJkgPiBsx5xlOyAjNTcxOQor5ZyaID4gaMO5aTsgIzU3MUEKK+WcmyA+IHnDrDsgIzU3MUIKK+WcnCA+IHl1w6FuOyAjNTcxQwor5ZydID4gbHXDoW47ICM1NzFECivlnJ4gPiBsdcOhbjsgIzU3MUUKK+WcnyA+IHTFrTsgIzU3MUYKK+WcoCA+IHnDoDsgIzU3MjAKK+WcoSA+IHTFrTsgIzU3MjEKK+WcoiA+IHTEq25nOyAjNTcyMgor5ZyjID4gc2jDqG5nOyAjNTcyMwor5ZykID4gcMWtOyAjNTcyNAor5ZylID4gbMO5OyAjNTcyNQor5ZynID4gecSBOyAjNTcyNwor5ZyoID4gesOgaTsgIzU3MjgKK+WcqSA+IHfDqWk7ICM1NzI5CivlnKogPiBnxJM7ICM1NzJBCivlnKsgPiB5w7k7ICM1NzJCCivlnKwgPiB3xas7ICM1NzJDCivlnK0gPiBnxatpOyAjNTcyRAor5ZyuID4gcMStOyAjNTcyRQor5ZyvID4gecOtOyAjNTcyRgor5ZywID4gZMOsOyAjNTczMAor5ZyxID4gcWnEgW47ICM1NzMxCivlnLIgPiBxacSBbjsgIzU3MzIKK+WcsyA+IHpow6huOyAjNTczMwor5Zy0ID4gemjDum87ICM1NzM0CivlnLUgPiBkw6BuZzsgIzU3MzUKK+WctiA+IHFpw6A7ICM1NzM2CivlnLkgPiBrdcOgbmc7ICM1NzM5CivlnLogPiBjaMOhbmc7ICM1NzNBCivlnLsgPiBxw607ICM1NzNCCivlnLwgPiBuacOoOyAjNTczQwor5Zy9ID4gbcOyOyAjNTczRAor5Zy+ID4gasOtOyAjNTczRQor5Zy/ID4gamnDoTsgIzU3M0YKK+WdgCA+IHpoxK07ICM1NzQwCivlnYEgPiB6aMStOyAjNTc0MQor5Z2CID4gYsSDbjsgIzU3NDIKK+WdgyA+IHjFq247ICM1NzQzCivlnYQgPiB0w7N1OyAjNTc0NAor5Z2FID4gccStbjsgIzU3NDUKK+WdhiA+IGbDqW47ICM1NzQ2CivlnYcgPiBqxatuOyAjNTc0Nwor5Z2IID4ga8STbmc7ICM1NzQ4CivlnYkgPiB0w7puOyAjNTc0OQor5Z2KID4gZsSBbmc7ICM1NzRBCivlnYsgPiBmw6huOyAjNTc0Qgor5Z2MID4gYsOobjsgIzU3NEMKK+WdjSA+IHTEgW47ICM1NzRECivlnY4gPiBrxINuOyAjNTc0RQor5Z2PID4gcMSrOyAjNTc0Rgor5Z2QID4gesO5bzsgIzU3NTAKK+WdkSA+IGvEk25nOyAjNTc1MQor5Z2SID4gYsOsOyAjNTc1Mgor5Z2TID4geMOtbmc7ICM1NzUzCivlnZQgPiBkw6w7ICM1NzU0CivlnZUgPiBqxKtuZzsgIzU3NTUKK+WdliA+IGrDrDsgIzU3NTYKK+WdlyA+IGt1w6BpOyAjNTc1Nwor5Z2YID4gZMStOyAjNTc1OAor5Z2ZID4gasSrbmc7ICM1NzU5CivlnZogPiBqacSBbjsgIzU3NUEKK+WdmyA+IHTDoW47ICM1NzVCCivlnZwgPiBsw6w7ICM1NzVDCivlnZ0gPiBiw6A7ICM1NzVECivlnZ4gPiB3w7k7ICM1NzVFCivlnZ8gPiBmw6luOyAjNTc1Rgor5Z2gID4gemjDuWk7ICM1NzYwCivlnaEgPiBwxY07ICM1NzYxCivlnaIgPiBwxINuOyAjNTc2Mgor5Z2jID4gdMSBbmc7ICM1NzYzCivlnaQgPiBrxatuOyAjNTc2NAor5Z2lID4gccWrOyAjNTc2NQor5Z2mID4gdMSDbjsgIzU3NjYKK+WdpyA+IHpoxKs7ICM1NzY3CivlnaggPiB0w7pvOyAjNTc2OAor5Z2pID4gZ8SBbjsgIzU3NjkKK+WdqiA+IHDDrW5nOyAjNTc2QQor5Z2rID4gZGnDoG47ICM1NzZCCivlnawgPiBndcOgOyAjNTc2Qwor5Z2tID4gbsOtOyAjNTc2RAor5Z2uID4gdMOhaTsgIzU3NkUKK+WdryA+IHDEqzsgIzU3NkYKK+WdsCA+IGrEq29uZzsgIzU3NzAKK+WdsSA+IHnEg25nOyAjNTc3MQor5Z2yID4gZsOzOyAjNTc3Mgor5Z2zID4gw6BvOyAjNTc3Mwor5Z20ID4gbMOsdTsgIzU3NzQKK+WdtSA+IHHEq3U7ICM1Nzc1CivlnbYgPiBtw7k7ICM1Nzc2CivlnbcgPiBrxJU7ICM1Nzc3CivlnbggPiBnw7J1OyAjNTc3OAor5Z25ID4geHXDqDsgIzU3NzkKK+WduiA+IGLDoTsgIzU3N0EKK+WduyA+IGNow607ICM1NzdCCivlnbwgPiBjaMOoOyAjNTc3Qwor5Z29ID4gbMOtbmc7ICM1NzdECivlnb4gPiB6aMO5OyAjNTc3RQor5Z2/ID4gZsO5OyAjNTc3Rgor5Z6AID4gaMWrOyAjNTc4MAor5Z6BID4gemjDrDsgIzU3ODEKK+WegiA+IGNow7ppOyAjNTc4Mgor5Z6DID4gbMSBOyAjNTc4Mwor5Z6EID4gbMWPbmc7ICM1Nzg0CivlnoUgPiBsxY9uZzsgIzU3ODUKK+WehiA+IGzDujsgIzU3ODYKK+WehyA+IMOgbzsgIzU3ODcKK+WeiSA+IHDDoW87ICM1Nzg5CivlnosgPiB4w61uZzsgIzU3OEIKK+WejCA+IGTDsm5nOyAjNTc4Qwor5Z6NID4gasOsOyAjNTc4RAor5Z6OID4ga8OoOyAjNTc4RQor5Z6PID4gbMO5OyAjNTc4Rgor5Z6QID4gY8OtOyAjNTc5MAor5Z6RID4gY2jErTsgIzU3OTEKK+WekiA+IGzElWk7ICM1NzkyCivlnpMgPiBnxIFpOyAjNTc5Mwor5Z6UID4gecSrbjsgIzU3OTQKK+WelSA+IGjDsnU7ICM1Nzk1CivlnpYgPiBkxatpOyAjNTc5Ngor5Z6XID4gemjDoG87ICM1Nzk3CivlnpggPiBmw7o7ICM1Nzk4CivlnpkgPiBndcSBbmc7ICM1Nzk5CivlnpogPiB5w6FvOyAjNTc5QQor5Z6bID4gZMWtbzsgIzU3OUIKK+WenCA+IGTFrW87ICM1NzlDCivlnp0gPiBnxa1pOyAjNTc5RAor5Z6eID4gY2jDoTsgIzU3OUUKK+WenyA+IHnDoW5nOyAjNTc5Rgor5Z6gID4gecOtbjsgIzU3QTAKK+WeoSA+IGbDoTsgIzU3QTEKK+WeoiA+IGfDsnU7ICM1N0EyCivlnqMgPiB5dcOhbjsgIzU3QTMKK+WepCA+IGRpw6k7ICM1N0E0CivlnqUgPiB4acOpOyAjNTdBNQor5Z6mID4ga8SVbjsgIzU3QTYKK+WepyA+IGrEq29uZzsgIzU3QTcKK+WeqCA+IHNoxY91OyAjNTdBOAor5Z6pID4gw6g7ICM1N0E5CivlnqsgPiBkacOgbjsgIzU3QUIKK+WerCA+IGjDs25nOyAjNTdBQwor5Z6tID4gd8O5OyAjNTdBRAor5Z6uID4ga3XEgzsgIzU3QUUKK+WesSA+IGTDoG5nOyAjNTdCMQor5Z6yID4ga8SDaTsgIzU3QjIKK+WetCA+IG7Eg287ICM1N0I0CivlnrUgPiDEg247ICM1N0I1CivlnrYgPiB4xKtuZzsgIzU3QjYKK+WetyA+IHhpw6BuOyAjNTdCNwor5Z64ID4gaHXDoG47ICM1N0I4CivlnrkgPiBixIFuZzsgIzU3QjkKK+WeuiA+IHDEk2k7ICM1N0JBCivlnrsgPiBiw6A7ICM1N0JCCivlnrwgPiB5w6w7ICM1N0JDCivlnr0gPiB5w6xuOyAjNTdCRAor5Z6+ID4gaMOgbjsgIzU3QkUKK+WevyA+IHjDuTsgIzU3QkYKK+WfgCA+IGNow7ppOyAjNTdDMAor5Z+BID4gY8OpbjsgIzU3QzEKK+WfgiA+IGfElW5nOyAjNTdDMgor5Z+DID4gxIFpOyAjNTdDMwor5Z+EID4gcMOpbmc7ICM1N0M0Civln4UgPiBmw6FuZzsgIzU3QzUKK+WfhiA+IHF1w6g7ICM1N0M2Civln4cgPiB5xY9uZzsgIzU3QzcKK+WfiCA+IHjDuW47ICM1N0M4Civln4kgPiBqacOhOyAjNTdDOQor5Z+KID4gZMOsOyAjNTdDQQor5Z+LID4gbcOhaTsgIzU3Q0IKK+WfjCA+IGzDoG5nOyAjNTdDQwor5Z+NID4geHXDoG47ICM1N0NECivln44gPiBjaMOpbmc7ICM1N0NFCivln48gPiB5w6FuOyAjNTdDRgor5Z+QID4gasSrbjsgIzU3RDAKK+WfkSA+IHpow6k7ICM1N0QxCivln5IgPiBsw6hpOyAjNTdEMgor5Z+TID4gbGnDqDsgIzU3RDMKK+WflCA+IGLDuTsgIzU3RDQKK+WflSA+IGNow6luZzsgIzU3RDUKK+WflyA+IGLDuTsgIzU3RDcKK+WfmCA+IHNow607ICM1N0Q4Civln5kgPiB4xatuOyAjNTdEOQor5Z+aID4gZ8WrbzsgIzU3REEKK+WfmyA+IGrEq29uZzsgIzU3REIKK+WfnCA+IHnElTsgIzU3REMKK+WfnSA+IG5pw6BuOyAjNTdERAor5Z+eID4gZMStOyAjNTdERQor5Z+fID4gecO5OyAjNTdERgor5Z+gID4gYsO5OyAjNTdFMAor5Z+hID4gecOgOyAjNTdFMQor5Z+iID4ganXEg247ICM1N0UyCivln6MgPiBzw7lpOyAjNTdFMwor5Z+kID4gcMOtOyAjNTdFNAor5Z+lID4gY2jEk25nOyAjNTdFNQor5Z+mID4gd8SDbjsgIzU3RTYKK+WfpyA+IGrDuTsgIzU3RTcKK+WfqCA+IGzFrW47ICM1N0U4Civln6kgPiB6aMSTbmc7ICM1N0U5Civln6ogPiBrxY1uZzsgIzU3RUEKK+WfqyA+IGNoxY9uZzsgIzU3RUIKK+WfrCA+IGTFjW5nOyAjNTdFQwor5Z+tID4gZMOgaTsgIzU3RUQKK+WfriA+IHTDoG47ICM1N0VFCivln68gPiDEg247ICM1N0VGCivln7AgPiBjw6BpOyAjNTdGMAor5Z+xID4gc2jDujsgIzU3RjEKK+WfsiA+IGLElW5nOyAjNTdGMgor5Z+zID4ga8SDbjsgIzU3RjMKK+WftCA+IHpow607ICM1N0Y0Civln7UgPiBkxa1vOyAjNTdGNQor5Z+2ID4gecOsOyAjNTdGNgor5Z+3ID4gemjDrTsgIzU3RjcKK+WfuCA+IHnDrDsgIzU3RjgKK+WfuSA+IHDDqWk7ICM1N0Y5Civln7ogPiBqxKs7ICM1N0ZBCivln7sgPiB6aMWtbjsgIzU3RkIKK+WfvCA+IHHDrTsgIzU3RkMKK+WfvSA+IHPDoG87ICM1N0ZECivln74gPiBqw7k7ICM1N0ZFCivln78gPiBuw607ICM1N0ZGCivloIAgPiBrxas7ICM1ODAwCivloIEgPiBrw6g7ICM1ODAxCivloIIgPiB0w6FuZzsgIzU4MDIKK+WggyA+IGvFq247ICM1ODAzCivloIQgPiBuw6w7ICM1ODA0CivloIUgPiBqacSBbjsgIzU4MDUKK+WghiA+IGTFq2k7ICM1ODA2CivloIcgPiBqxK1uOyAjNTgwNwor5aCIID4gZ8SBbmc7ICM1ODA4CivloIkgPiB5w7k7ICM1ODA5CivloIogPiDDqDsgIzU4MEEKK+WgiyA+IHDDqW5nOyAjNTgwQgor5aCMID4gZ8O5OyAjNTgwQwor5aCNID4gdMO5OyAjNTgwRAor5aCOID4gbMOobmc7ICM1ODBFCivloJAgPiB5w6E7ICM1ODEwCivloJEgPiBxacOgbjsgIzU4MTEKK+WgkyA+IMOgbjsgIzU4MTMKK+WglSA+IGTDuW87ICM1ODE1CivloJYgPiBuxINvOyAjNTgxNgor5aCXID4gdMWrOyAjNTgxNwor5aCYID4gY2jDqW5nOyAjNTgxOAor5aCZID4gecSrbjsgIzU4MTkKK+WgmiA+IGjDum47ICM1ODFBCivloJsgPiBiw6w7ICM1ODFCCivloJwgPiBsacOgbjsgIzU4MUMKK+WgnSA+IGfFq287ICM1ODFECivloJ4gPiBkacOpOyAjNTgxRQor5aCfID4gemh1w6BuOyAjNTgxRgor5aCgID4gaMOydTsgIzU4MjAKK+WgoSA+IGLEg287ICM1ODIxCivloKIgPiBixINvOyAjNTgyMgor5aCjID4gecO6OyAjNTgyMwor5aCkID4gZMSrOyAjNTgyNAor5aClID4gbcOhbzsgIzU4MjUKK+WgpiA+IGppxJM7ICM1ODI2CivloKcgPiBydcOhbjsgIzU4MjcKK+WgqCA+IMOoOyAjNTgyOAor5aCpID4gZ8Oobmc7ICM1ODI5CivloKogPiBrxIFuOyAjNTgyQQor5aCrID4gesWNbmc7ICM1ODJCCivloKwgPiB5w7o7ICM1ODJDCivloK0gPiBodcOhbmc7ICM1ODJECivloK4gPiDDqDsgIzU4MkUKK+WgryA+IHnDoW87ICM1ODJGCivloLAgPiB5w6BuOyAjNTgzMAor5aCxID4gYsOgbzsgIzU4MzEKK+WgsiA+IGrDrTsgIzU4MzIKK+WgsyA+IG3DqWk7ICM1ODMzCivloLQgPiBjaMOhbmc7ICM1ODM0CivloLUgPiBkxa07ICM1ODM1CivloLYgPiB0w7pvOyAjNTgzNgor5aC3ID4gecOsbjsgIzU4MzcKK+WguCA+IGbDqW5nOyAjNTgzOAor5aC5ID4gemjDsm5nOyAjNTgzOQor5aC6ID4gamnDqDsgIzU4M0EKK+WguyA+IHpoxJNuOyAjNTgzQgor5aC8ID4gZsSTbmc7ICM1ODNDCivloL0gPiBnxIFuZzsgIzU4M0QKK+WgviA+IGNodcSDbjsgIzU4M0UKK+WgvyA+IGppxINuOyAjNTgzRgor5aGCID4geGnDoG5nOyAjNTg0Mgor5aGDID4gaHXEgW5nOyAjNTg0Mwor5aGEID4gbMOpbmc7ICM1ODQ0CivloYUgPiBkdcOgbjsgIzU4NDUKK+WhhyA+IHh1xIFuOyAjNTg0Nwor5aGIID4gasOsOyAjNTg0OAor5aGJID4gasOtOyAjNTg0OQor5aGKID4ga3XDoGk7ICM1ODRBCivloYsgPiB5w61uZzsgIzU4NEIKK+WhjCA+IHTEgTsgIzU4NEMKK+WhjSA+IGNow6luZzsgIzU4NEQKK+WhjiA+IHnFj25nOyAjNTg0RQor5aGPID4ga8SDaTsgIzU4NEYKK+WhkCA+IHPDuTsgIzU4NTAKK+WhkSA+IHPDuTsgIzU4NTEKK+WhkiA+IHNow607ICM1ODUyCivloZMgPiBtw6w7ICM1ODUzCivloZQgPiB0xIM7ICM1ODU0CivloZUgPiB3xJVuZzsgIzU4NTUKK+WhliA+IGNow6luZzsgIzU4NTYKK+WhlyA+IHTDujsgIzU4NTcKK+WhmCA+IHTDoW5nOyAjNTg1OAor5aGZID4gcXXDqDsgIzU4NTkKK+WhmiA+IHpoxY9uZzsgIzU4NUEKK+WhmyA+IGzDrDsgIzU4NUIKK+WhnCA+IHDDqW5nOyAjNTg1Qwor5aGdID4gYsOgbmc7ICM1ODVECivloZ4gPiBzxIFpOyAjNTg1RQor5aGfID4gesOgbmc7ICM1ODVGCivloaAgPiBkxatpOyAjNTg2MAor5aGhID4gdGnDoW47ICM1ODYxCivloaIgPiB3w7k7ICM1ODYyCivloaMgPiBjaMSVbmc7ICM1ODYzCivloaQgPiB4xatuOyAjNTg2NAor5aGlID4gZ8OpOyAjNTg2NQor5aGmID4gemjDqG47ICM1ODY2CivloacgPiDDoGk7ICM1ODY3CivloaggPiBnxY1uZzsgIzU4NjgKK+WhqSA+IHnDoW47ICM1ODY5CivloaogPiBrxINuOyAjNTg2QQor5aGrID4gdGnDoW47ICM1ODZCCivloawgPiB5dcOhbjsgIzU4NkMKK+WhrSA+IHfEk247ICM1ODZECivloa4gPiB4acOoOyAjNTg2RQor5aGvID4gbMOsdTsgIzU4NkYKK+WhsSA+IGzEg25nOyAjNTg3MQor5aGyID4gY2jDoW5nOyAjNTg3Mgor5aGzID4gcMOpbmc7ICM1ODczCivlobQgPiBiw6huZzsgIzU4NzQKK+WhtSA+IGNow6luOyAjNTg3NQor5aG2ID4gY8O5OyAjNTg3Ngor5aG3ID4gbMWtOyAjNTg3Nwor5aG4ID4gxY91OyAjNTg3OAor5aG5ID4gcWnDoG47ICM1ODc5CivlobogPiBtw6lpOyAjNTg3QQor5aG7ID4gbcOyOyAjNTg3Qgor5aG8ID4gemh1xIFuOyAjNTg3Qwor5aG9ID4gc2h1xINuZzsgIzU4N0QKK+WhviA+IHNow7o7ICM1ODdFCivlob8gPiBsxY91OyAjNTg3Rgor5aKAID4gY2jDrTsgIzU4ODAKK+WigSA+IG3DoG47ICM1ODgxCivlooIgPiBiacSBbzsgIzU4ODIKK+WigyA+IGrDrG5nOyAjNTg4Mwor5aKEID4gccSrOyAjNTg4NAor5aKFID4gc2jDuTsgIzU4ODUKK+WihiA+IGTDrDsgIzU4ODYKK+WihyA+IHpoxIFuZzsgIzU4ODcKK+WiiCA+IGvDoG47ICM1ODg4CivlookgPiB5xY1uZzsgIzU4ODkKK+WiiiA+IGRpw6BuOyAjNTg4QQor5aKLID4gY2jElW47ICM1ODhCCivloowgPiB6aMSrOyAjNTg4Qwor5aKNID4geMOsOyAjNTg4RAor5aKOID4gZ8WrbzsgIzU4OEUKK+WijyA+IHFpxINuZzsgIzU4OEYKK+WikCA+IGrDrG47ICM1ODkwCivlopEgPiBkxKs7ICM1ODkxCivlopIgPiBzaMSBbmc7ICM1ODkyCivlopMgPiBtw7k7ICM1ODkzCivlopQgPiBjxatpOyAjNTg5NAor5aKVID4gecOgbjsgIzU4OTUKK+WiliA+IHTEgzsgIzU4OTYKK+WilyA+IHrEk25nOyAjNTg5Nwor5aKYID4gccOtOyAjNTg5OAor5aKZID4gcWnDoW5nOyAjNTg5OQor5aKaID4gbGnDoW5nOyAjNTg5QQor5aKcID4gemjDuWk7ICM1ODlDCivlop0gPiBxacSBbzsgIzU4OUQKK+WiniA+IHrEk25nOyAjNTg5RQor5aKfID4geMWrOyAjNTg5Rgor5aKgID4gc2jDoG47ICM1OEEwCivloqEgPiBzaMOgbjsgIzU4QTEKK+WioiA+IGLDoTsgIzU4QTIKK+WioyA+IHDFqzsgIzU4QTMKK+WipCA+IGt1w6BpOyAjNThBNAor5aKlID4gZMWPbmc7ICM1OEE1CivloqYgPiBmw6FuOyAjNThBNgor5aKnID4gcXXDqDsgIzU4QTcKK+WiqCA+IG3DsjsgIzU4QTgKK+WiqSA+IGTFq247ICM1OEE5CivloqogPiBkxatuOyAjNThBQQor5aKrID4gZMWrbjsgIzU4QUIKK+WirCA+IGTDrDsgIzU4QUMKK+WirSA+IHNow6huZzsgIzU4QUQKK+WiriA+IGTDuW87ICM1OEFFCivloq8gPiBkw7lvOyAjNThBRgor5aKwID4gdMOhbjsgIzU4QjAKK+WisSA+IGTDqG5nOyAjNThCMQor5aKyID4gd8WtOyAjNThCMgor5aKzID4gZsOpbjsgIzU4QjMKK+WitCA+IGh1w6FuZzsgIzU4QjQKK+WitSA+IHTDoW47ICM1OEI1CivlorYgPiBkxIE7ICM1OEI2CivlorcgPiB5w6g7ICM1OEI3CivlorogPiB5w7k7ICM1OEJBCivlorsgPiBxacOhbmc7ICM1OEJCCivlorwgPiBqxKs7ICM1OEJDCivlor0gPiBxacSBbzsgIzU4QkQKK+WiviA+IGvElW47ICM1OEJFCivlor8gPiB5w6w7ICM1OEJGCivlo4AgPiBww607ICM1OEMwCivlo4EgPiBiw6w7ICM1OEMxCivlo4IgPiBkacOgbjsgIzU4QzIKK+WjgyA+IGppxIFuZzsgIzU4QzMKK+WjhCA+IHnElTsgIzU4QzQKK+WjhSA+IHnFjW5nOyAjNThDNQor5aOGID4gYsOzOyAjNThDNgor5aOHID4gdMOhbjsgIzU4QzcKK+WjiCA+IGzEg247ICM1OEM4Civlo4kgPiBqw7k7ICM1OEM5Civlo4ogPiBodcOgaTsgIzU4Q0EKK+WjiyA+IGTDoG5nOyAjNThDQgor5aOMID4gcsSDbmc7ICM1OENDCivlo40gPiBxacOgbjsgIzU4Q0QKK+WjjiA+IHjFq247ICM1OENFCivlo48gPiBsw6BuOyAjNThDRgor5aOQID4geMStOyAjNThEMAor5aORID4gaMOoOyAjNThEMQor5aOSID4gw6BpOyAjNThEMgor5aOTID4gecSBOyAjNThEMwor5aOUID4gZMSDbzsgIzU4RDQKK+WjlSA+IGjDoW87ICM1OEQ1Civlo5YgPiBydcOhbjsgIzU4RDYKK+WjmCA+IGzElWk7ICM1OEQ4Civlo5kgPiBrdcOgbmc7ICM1OEQ5Civlo5ogPiBsw7o7ICM1OERBCivlo5sgPiB5w6FuOyAjNThEQgor5aOcID4gdMOhbjsgIzU4REMKK+WjnSA+IHfDqWk7ICM1OERECivlo54gPiBodcOgaTsgIzU4REUKK+WjnyA+IGzFj25nOyAjNThERgor5aOgID4gbMWPbmc7ICM1OEUwCivlo6EgPiByw7lpOyAjNThFMQor5aOiID4gbMOsOyAjNThFMgor5aOjID4gbMOtbjsgIzU4RTMKK+WjpCA+IHLEg25nOyAjNThFNAor5aOmID4geMWrbjsgIzU4RTYKK+WjpyA+IHnDoW47ICM1OEU3Civlo6ggPiBsw6lpOyAjNThFOAor5aOpID4gYsOgOyAjNThFOQor5aOrID4gc2jDrDsgIzU4RUIKK+WjrCA+IHLDqW47ICM1OEVDCivlo64gPiB6aHXDoG5nOyAjNThFRQor5aOvID4gemh1w6BuZzsgIzU4RUYKK+WjsCA+IHNoxJNuZzsgIzU4RjAKK+WjsSA+IHnEqzsgIzU4RjEKK+WjsiA+IG3DoGk7ICM1OEYyCivlo7MgPiBrw6k7ICM1OEYzCivlo7QgPiB6aMWtOyAjNThGNAor5aO1ID4gemh1w6BuZzsgIzU4RjUKK+WjtiA+IGjDujsgIzU4RjYKK+WjtyA+IGjDujsgIzU4RjcKK+WjuCA+IGvFrW47ICM1OEY4Civlo7kgPiB5xKs7ICM1OEY5Civlo7ogPiBow7o7ICM1OEZBCivlo7sgPiB4w7k7ICM1OEZCCivlo7wgPiBrxa1uOyAjNThGQwor5aO9ID4gc2jDsnU7ICM1OEZECivlo74gPiBtxINuZzsgIzU4RkUKK+WjvyA+IHrFrW47ICM1OEZGCivlpIAgPiBzaMOydTsgIzU5MDAKK+WkgSA+IHnEqzsgIzU5MDEKK+WkgiA+IHpoxK07ICM1OTAyCivlpIMgPiBnxas7ICM1OTAzCivlpIQgPiBjaMO5OyAjNTkwNAor5aSFID4gamnDoG5nOyAjNTkwNQor5aSGID4gZsSTbmc7ICM1OTA2CivlpIcgPiBiw6hpOyAjNTkwNwor5aSJID4gYmnDoG47ICM1OTA5CivlpIogPiBzxatpOyAjNTkwQQor5aSLID4gccWrbjsgIzU5MEIKK+WkjCA+IGzDrW5nOyAjNTkwQwor5aSNID4gZsO5OyAjNTkwRAor5aSOID4gesO5bzsgIzU5MEUKK+WkjyA+IHhpw6A7ICM1OTBGCivlpJAgPiB4w6xvbmc7ICM1OTEwCivlpJIgPiBuw6FvOyAjNTkxMgor5aSTID4geGnDoDsgIzU5MTMKK+WklCA+IGvDumk7ICM1OTE0CivlpJUgPiB4xKs7ICM1OTE1CivlpJYgPiB3w6BpOyAjNTkxNgor5aSXID4geXXDoG47ICM1OTE3CivlpJggPiBtxINvOyAjNTkxOAor5aSZID4gc8O5OyAjNTkxOQor5aSaID4gZMWrbzsgIzU5MUEKK+WkmyA+IGTFq287ICM1OTFCCivlpJwgPiB5w6g7ICM1OTFDCivlpJ0gPiBxw61uZzsgIzU5MUQKK+WknyA+IGfDsnU7ICM1OTFGCivlpKAgPiBnw7J1OyAjNTkyMAor5aShID4gccOsOyAjNTkyMQor5aSiID4gbcOobmc7ICM1OTIyCivlpKMgPiBtw6huZzsgIzU5MjMKK+WkpCA+IHnDrW47ICM1OTI0CivlpKUgPiBoxa1vOyAjNTkyNQor5aSmID4gY2jDqG47ICM1OTI2CivlpKcgPiBkw6A7ICM1OTI3CivlpKggPiB6w6g7ICM1OTI4CivlpKkgPiB0acSBbjsgIzU5MjkKK+WkqiA+IHTDoGk7ICM1OTJBCivlpKsgPiBmxas7ICM1OTJCCivlpKwgPiBndcOgaTsgIzU5MkMKK+WkrSA+IHnEg287ICM1OTJECivlpK4gPiB5xIFuZzsgIzU5MkUKK+WkryA+IGjEgW5nOyAjNTkyRgor5aSwID4gZ8SDbzsgIzU5MzAKK+WksSA+IHNoxKs7ICM1OTMxCivlpLIgPiBixJVuOyAjNTkzMgor5aSzID4gdMOgaTsgIzU5MzMKK+WktCA+IHTDs3U7ICM1OTM0CivlpLUgPiB5xINuOyAjNTkzNQor5aS2ID4gYsStOyAjNTkzNgor5aS3ID4gecOtOyAjNTkzNwor5aS4ID4ga3XEgTsgIzU5MzgKK+WkuSA+IGppxIE7ICM1OTM5CivlpLogPiBkw7pvOyAjNTkzQQor5aS8ID4ga3XEg25nOyAjNTkzQwor5aS9ID4gecO5bjsgIzU5M0QKK+WkviA+IGppxIE7ICM1OTNFCivlpL8gPiBwxIE7ICM1OTNGCivlpYAgPiDEk247ICM1OTQwCivlpYEgPiBsacOhbjsgIzU5NDEKK+WlgiA+IGh1w6BuOyAjNTk0Mgor5aWDID4gZMOsOyAjNTk0Mwor5aWEID4gecSDbjsgIzU5NDQKK+WlhSA+IHDDoG87ICM1OTQ1CivlpYYgPiBxdcSDbjsgIzU5NDYKK+WlhyA+IHHDrTsgIzU5NDcKK+WliCA+IG7DoGk7ICM1OTQ4CivlpYkgPiBmw6huZzsgIzU5NDkKK+WliiA+IHhpw6k7ICM1OTRBCivlpYsgPiBmw6huOyAjNTk0Qgor5aWMID4gZGnEg247ICM1OTRDCivlpY4gPiBrw7ppOyAjNTk0RQor5aWPID4gesOydTsgIzU5NEYKK+WlkCA+IGh1w6BuOyAjNTk1MAor5aWRID4gccOsOyAjNTk1MQor5aWSID4ga8SBaTsgIzU5NTIKK+WlkyA+IHpow6A7ICM1OTUzCivlpZQgPiBixJNuOyAjNTk1NAor5aWVID4gecOsOyAjNTk1NQor5aWWID4gamnEg25nOyAjNTk1Ngor5aWXID4gdMOgbzsgIzU5NTcKK+WlmCA+IHrDoG5nOyAjNTk1OAor5aWZID4gYsSVbjsgIzU5NTkKK+WlmiA+IHjEqzsgIzU5NUEKK+WlmyA+IHhpxINuZzsgIzU5NUIKK+WlnCA+IGbElWk7ICM1OTVDCivlpZ0gPiBkacSBbzsgIzU5NUQKK+WlniA+IHjDuW47ICM1OTVFCivlpZ8gPiBrxJNuZzsgIzU5NUYKK+WloCA+IGRpw6BuOyAjNTk2MAor5aWhID4gw6BvOyAjNTk2MQor5aWiID4gc2jEkzsgIzU5NjIKK+WloyA+IHfElW5nOyAjNTk2Mwor5aWkID4gcMSDbjsgIzU5NjQKK+WlpSA+IMOgbzsgIzU5NjUKK+WlpiA+IHfDuTsgIzU5NjYKK+WlpyA+IMOgbzsgIzU5NjcKK+WlqCA+IGppxINuZzsgIzU5NjgKK+WlqSA+IGxpw6FuOyAjNTk2OQor5aWqID4gZMO6bzsgIzU5NkEKK+WlqyA+IHnFq247ICM1OTZCCivlpawgPiBqacSDbmc7ICM1OTZDCivlpa0gPiBzaMOsOyAjNTk2RAor5aWuID4gZsOobjsgIzU5NkUKK+WlryA+IGjDuW87ICM1OTZGCivlpbAgPiBiw6w7ICM1OTcwCivlpbEgPiBsacOhbjsgIzU5NzEKK+WlsiA+IGTFrW87ICM1OTcyCivlpbMgPiBux5o7ICM1OTczCivlpbQgPiBuw7o7ICM1OTc0CivlpbUgPiBkxKtuZzsgIzU5NzUKK+WltiA+IG7Eg2k7ICM1OTc2CivlpbcgPiBxacSBbjsgIzU5NzcKK+WluCA+IGppxIFuOyAjNTk3OAor5aW5ID4gdMSBOyAjNTk3OQor5aW6ID4gasStdTsgIzU5N0EKK+WluyA+IG7DoW47ICM1OTdCCivlpbwgPiBjaMOgOyAjNTk3Qwor5aW9ID4gaMSDbzsgIzU5N0QKK+WlviA+IHhpxIFuOyAjNTk3RQor5aW/ID4gZsOgbjsgIzU5N0YKK+WmgCA+IGrErTsgIzU5ODAKK+WmgSA+IHNow7lvOyAjNTk4MQor5aaCID4gcsO6OyAjNTk4Mgor5aaDID4gZsSTaTsgIzU5ODMKK+WmhCA+IHfDoG5nOyAjNTk4NAor5aaFID4gaMOzbmc7ICM1OTg1CivlpoYgPiB6aHXEgW5nOyAjNTk4Ngor5aaHID4gZsO5OyAjNTk4Nwor5aaIID4gbcSBOyAjNTk4OAor5aaJID4gZMSBbjsgIzU5ODkKK+WmiiA+IHLDqG47ICM1OThBCivlposgPiBmxas7ICM1OThCCivlpowgPiBqw6xuZzsgIzU5OEMKK+WmjSA+IHnDoW47ICM1OThECivlpo4gPiB4acOoOyAjNTk4RQor5aaPID4gd8OobjsgIzU5OEYKK+WmkCA+IHpoxY1uZzsgIzU5OTAKK+WmkSA+IHDEgTsgIzU5OTEKK+WmkiA+IGTDuTsgIzU5OTIKK+WmkyA+IGrDrDsgIzU5OTMKK+WmlCA+IGvEk25nOyAjNTk5NAor5aaVID4gemjDsm5nOyAjNTk5NQor5aaWID4gecSBbzsgIzU5OTYKK+WmlyA+IGrDrG47ICM1OTk3CivlppggPiB5w7puOyAjNTk5OAor5aaZID4gbWnDoG87ICM1OTk5CivlppogPiBwxJNpOyAjNTk5QQor5aacID4geXXDqDsgIzU5OUMKK+WmnSA+IHpodcSBbmc7ICM1OTlECivlpp4gPiBuxKt1OyAjNTk5RQor5aafID4gecOgbjsgIzU5OUYKK+WmoCA+IG7DoDsgIzU5QTAKK+WmoSA+IHjEq247ICM1OUExCivlpqIgPiBmw6luOyAjNTlBMgor5aajID4gYsStOyAjNTlBMwor5aakID4gecO6OyAjNTlBNAor5aalID4gdMWtbzsgIzU5QTUKK+WmpiA+IGbEk25nOyAjNTlBNgor5aanID4geXXDoW47ICM1OUE3CivlpqggPiBmw6FuZzsgIzU5QTgKK+WmqSA+IHfFrTsgIzU5QTkKK+WmqiA+IHnDuTsgIzU5QUEKK+WmqyA+IGfFq2k7ICM1OUFCCivlpqwgPiBkw7k7ICM1OUFDCivlpq0gPiBiw6E7ICM1OUFECivlpq4gPiBuxKs7ICM1OUFFCivlpq8gPiB6aMOzdTsgIzU5QUYKK+WmsCA+IHpow7pvOyAjNTlCMAor5aaxID4gemjEgW87ICM1OUIxCivlprIgPiBkw6E7ICM1OUIyCivlprMgPiBuxINpOyAjNTlCMwor5aa0ID4geXXEg247ICM1OUI0CivlprUgPiB0xY91OyAjNTlCNQor5aa2ID4geHXDoW47ICM1OUI2CivlprcgPiB6aMOtOyAjNTlCNwor5aa4ID4gxJM7ICM1OUI4CivlprkgPiBtw6hpOyAjNTlCOQor5aa6ID4gbcOyOyAjNTlCQQor5aa7ID4gccSrOyAjNTlCQgor5aa8ID4gYsOsOyAjNTlCQwor5aa9ID4gc2jEk247ICM1OUJECivlpr4gPiBxacOoOyAjNTlCRQor5aa/ID4gxJM7ICM1OUJGCivlp4AgPiBow6k7ICM1OUMwCivlp4EgPiB4xa07ICM1OUMxCivlp4IgPiBmw6E7ICM1OUMyCivlp4MgPiB6aMSTbmc7ICM1OUMzCivlp4QgPiBtw61uOyAjNTlDNAor5aeFID4gYsOgbjsgIzU5QzUKK+WnhiA+IG3FrTsgIzU5QzYKK+WnhyA+IGbFqzsgIzU5QzcKK+WniCA+IGzDrW5nOyAjNTlDOAor5aeJID4gesStOyAjNTlDOQor5aeKID4gesStOyAjNTlDQQor5aeLID4gc2jErTsgIzU5Q0IKK+WnjCA+IHLEg247ICM1OUNDCivlp40gPiBzaMSBbjsgIzU5Q0QKK+WnjiA+IHnEgW5nOyAjNTlDRQor5aePID4gbcOhbjsgIzU5Q0YKK+WnkCA+IGppxJU7ICM1OUQwCivlp5EgPiBnxas7ICM1OUQxCivlp5IgPiBzw6w7ICM1OUQyCivlp5MgPiB4w6xuZzsgIzU5RDMKK+WnlCA+IHfElWk7ICM1OUQ0Civlp5UgPiB6xKs7ICM1OUQ1Civlp5YgPiBqw7k7ICM1OUQ2Civlp5cgPiBzaMSBbjsgIzU5RDcKK+WnmCA+IHDEq247ICM1OUQ4Civlp5kgPiByw6huOyAjNTlEOQor5aeaID4gecOhbzsgIzU5REEKK+WnmyA+IHTFj25nOyAjNTlEQgor5aecID4gamnEgW5nOyAjNTlEQwor5aedID4gc2jFqzsgIzU5REQKK+WnniA+IGrDrTsgIzU5REUKK+WnnyA+IGfEgWk7ICM1OURGCivlp6AgPiBzaMOgbmc7ICM1OUUwCivlp6EgPiBrw7lvOyAjNTlFMQor5aeiID4ganXEgW47ICM1OUUyCivlp6MgPiBqacSBbzsgIzU5RTMKK+WnpCA+IGfDsnU7ICM1OUU0Civlp6UgPiBtxa07ICM1OUU1Civlp6YgPiBqacSBbjsgIzU5RTYKK+WnpyA+IGppxIFuOyAjNTlFNwor5aeoID4gecOtOyAjNTlFOAor5aepID4gbmnDoG47ICM1OUU5Civlp6ogPiB6aMOtOyAjNTlFQQor5aerID4gasSrOyAjNTlFQgor5aesID4gasSrOyAjNTlFQwor5aetID4geGnDoG47ICM1OUVECivlp64gPiBow6luZzsgIzU5RUUKK+WnryA+IGd1xIFuZzsgIzU5RUYKK+WnsCA+IGrFq247ICM1OUYwCivlp7EgPiBrdcSBOyAjNTlGMQor5aeyID4gecOgbjsgIzU5RjIKK+WnsyA+IG3ErW5nOyAjNTlGMwor5ae0ID4gbGnDqDsgIzU5RjQKK+WntSA+IHDDqGk7ICM1OUY1Civlp7YgPiB5xINuOyAjNTlGNgor5ae3ID4gecOydTsgIzU5RjcKK+WnuCA+IHnDoW47ICM1OUY4Civlp7kgPiBjaMOgOyAjNTlGOQor5ae6ID4gc2jEk247ICM1OUZBCivlp7sgPiB5xKtuOyAjNTlGQgor5ae8ID4gY2jErTsgIzU5RkMKK+WnvSA+IGfFrWk7ICM1OUZECivlp74gPiBxdcSBbjsgIzU5RkUKK+WnvyA+IHrEqzsgIzU5RkYKK+WogCA+IHPFjW5nOyAjNUEwMAor5aiBID4gd8STaTsgIzVBMDEKK+WogiA+IGjDs25nOyAjNUEwMgor5aiDID4gd8OhOyAjNUEwMwor5aiEID4gbMOzdTsgIzVBMDQKK+WohSA+IHnDoDsgIzVBMDUKK+WohiA+IHLEg287ICM1QTA2CivlqIcgPiBqacSBbzsgIzVBMDcKK+WoiCA+IGx1w6FuOyAjNUEwOAor5aiJID4gcMSrbmc7ICM1QTA5CivlqIogPiB4acOgbjsgIzVBMEEKK+WoiyA+IHNow6BvOyAjNUEwQgor5aiMID4gbMStOyAjNUEwQwor5aiNID4gY2jDqW5nOyAjNUEwRAor5aiOID4geGnDoG87ICM1QTBFCivlqI8gPiBtw6FuZzsgIzVBMEYKK+WokCA+IGZ1OyAjNUExMAor5aiRID4gc8WrbzsgIzVBMTEKK+WokiA+IHfFrTsgIzVBMTIKK+WokyA+IHfElWk7ICM1QTEzCivlqJQgPiBrw6g7ICM1QTE0CivlqJUgPiBsw6BpOyAjNUExNQor5aiWID4gY2jDuW87ICM1QTE2CivlqJcgPiBkw6xuZzsgIzVBMTcKK+WomCA+IG5pw6FuZzsgIzVBMTgKK+WomSA+IHjDrW5nOyAjNUExOQor5aiaID4gbsOhbjsgIzVBMUEKK+WomyA+IHnDujsgIzVBMUIKK+WonCA+IG7Dum87ICM1QTFDCivlqJ0gPiBwxJNpOyAjNUExRAor5aieID4gbsSVaTsgIzVBMUUKK+WonyA+IGp1xIFuOyAjNUExRgor5aigID4gc2jEk247ICM1QTIwCivlqKEgPiB6aMOsOyAjNUEyMQor5aiiID4gaMOhbjsgIzVBMjIKK+WooyA+IGTDrDsgIzVBMjMKK+WopCA+IHpodcSBbmc7ICM1QTI0CivlqKUgPiDDqTsgIzVBMjUKK+WopiA+IHDDrW47ICM1QTI2CivlqKcgPiB0w7lpOyAjNUEyNwor5aioID4gaMOgbjsgIzVBMjgKK+WoqSA+IG1pxINuOyAjNUEyOQor5aiqID4gd8O6OyAjNUEyQQor5airID4gecOhbjsgIzVBMkIKK+WorCA+IHfFrTsgIzVBMkMKK+WorSA+IHjEqzsgIzVBMkQKK+WoriA+IHnDoW47ICM1QTJFCivlqK8gPiB5w7o7ICM1QTJGCivlqLAgPiBzw6w7ICM1QTMwCivlqLEgPiB5w7o7ICM1QTMxCivlqLIgPiB3xIE7ICM1QTMyCivlqLQgPiB4acOhbjsgIzVBMzQKK+WotSA+IGrFqzsgIzVBMzUKK+WotiA+IHHFrTsgIzVBMzYKK+WotyA+IHNow7lpOyAjNUEzNwor5ai4ID4gccSrOyAjNUEzOAor5ai5ID4geGnDoW47ICM1QTM5CivlqLogPiB6aMWraTsgIzVBM0EKK+WouyA+IGTFjW5nOyAjNUEzQgor5ai8ID4gY2jEgW5nOyAjNUEzQwor5ai9ID4gbMO5OyAjNUEzRAor5ai+ID4gxINpOyAjNUEzRQor5ai/ID4gxJM7ICM1QTNGCivlqYAgPiDEkzsgIzVBNDAKK+WpgSA+IGzDs3U7ICM1QTQxCivlqYIgPiBtacOhbjsgIzVBNDIKK+WpgyA+IGPDs25nOyAjNUE0Mwor5amEID4gcMWPdTsgIzVBNDQKK+WphSA+IGrDujsgIzVBNDUKK+WphiA+IHDDszsgIzVBNDYKK+WphyA+IGPEg2k7ICM1QTQ3CivlqYggPiBkw61uZzsgIzVBNDgKK+WpiSA+IHfEg247ICM1QTQ5CivlqYogPiBiacSDbzsgIzVBNEEKK+WpiyA+IHhpxIFvOyAjNUE0Qgor5amMID4gc2jFrTsgIzVBNEMKK+WpjSA+IHHErTsgIzVBNEQKK+WpjiA+IGjFq2k7ICM1QTRFCivlqY8gPiBmw7k7ICM1QTRGCivlqZAgPiDEkzsgIzVBNTAKK+WpkSA+IHfFjzsgIzVBNTEKK+WpkiA+IHTDoW47ICM1QTUyCivlqZMgPiBmxJNpOyAjNUE1Mwor5amUID4gd2VpOyAjNUE1NAor5amVID4gamnDqTsgIzVBNTUKK+WpliA+IHRpxIFuOyAjNUE1Ngor5amXID4gbsOtOyAjNUE1Nwor5amYID4gcXXDoW47ICM1QTU4CivlqZkgPiBqw6xuZzsgIzVBNTkKK+WpmiA+IGjFq247ICM1QTVBCivlqZsgPiBqxKtuZzsgIzVBNUIKK+WpnCA+IHFpxIFuOyAjNUE1Qwor5amdID4gZGnDoG47ICM1QTVECivlqZ4gPiB4w6xuZzsgIzVBNUUKK+WpnyA+IGjDuTsgIzVBNUYKK+WpoCA+IHfDoDsgIzVBNjAKK+WpoSA+IGzDoWk7ICM1QTYxCivlqaIgPiBiw6w7ICM1QTYyCivlqaMgPiB5xKtuOyAjNUE2Mwor5amkID4gY2jFjXU7ICM1QTY0CivlqaUgPiBjaMO5bzsgIzVBNjUKK+WppiA+IGbDuTsgIzVBNjYKK+WppyA+IGrDrG5nOyAjNUE2Nwor5amoID4gbMO6bjsgIzVBNjgKK+WpqSA+IHnDoG47ICM1QTY5CivlqaogPiBsw6FuOyAjNUE2QQor5amrID4ga8WrbjsgIzVBNkIKK+WprCA+IHnDrW47ICM1QTZDCivlqa0gPiB5w6A7ICM1QTZECivlqa4gPiBqdTsgIzVBNkUKK+WpryA+IGzDrDsgIzVBNkYKK+WpsCA+IGRpxINuOyAjNUE3MAor5amxID4geGnDoW47ICM1QTcxCivlqbMgPiBodcOgOyAjNUE3Mwor5am0ID4gecSrbmc7ICM1QTc0CivlqbUgPiBjaMOhbjsgIzVBNzUKK+WptiA+IHNoxJVuOyAjNUE3Ngor5am3ID4gdMOtbmc7ICM1QTc3CivlqbggPiBkw6BuZzsgIzVBNzgKK+WpuSA+IHnEg287ICM1QTc5CivlqbogPiB3w7k7ICM1QTdBCivlqbsgPiBuw6BuOyAjNUE3Qgor5am8ID4gcsO5bzsgIzVBN0MKK+WpvSA+IGppxIM7ICM1QTdECivlqb4gPiB0xY11OyAjNUE3RQor5am/ID4geMO5OyAjNUE3Rgor5aqAID4gecO6OyAjNUE4MAor5aqBID4gd8STaTsgIzVBODEKK+WqgiA+IHTDrTsgIzVBODIKK+WqgyA+IHLDs3U7ICM1QTgzCivlqoQgPiBtxJVpOyAjNUE4NAor5aqFID4gZMSBbjsgIzVBODUKK+WqhiA+IHJ1xINuOyAjNUE4Ngor5aqHID4gccSrbjsgIzVBODcKK+WqiCA+IGh1aTsgIzVBODgKK+WqiSA+IHfFqzsgIzVBODkKK+WqiiA+IHFpw6FuOyAjNUE4QQor5aqLID4gY2jFq247ICM1QThCCivlqowgPiBtw6FvOyAjNUE4Qwor5aqNID4gZsO5OyAjNUE4RAor5aqOID4gamnElTsgIzVBOEUKK+WqjyA+IGR1xIFuOyAjNUE4Rgor5aqQID4geMSrOyAjNUE5MAor5aqRID4gemjDsm5nOyAjNUE5MQor5aqSID4gbcOpaTsgIzVBOTIKK+WqkyA+IGh1w6FuZzsgIzVBOTMKK+WqlCA+IG1pw6FuOyAjNUE5NAor5aqVID4gxIFuOyAjNUE5NQor5aqWID4gecSrbmc7ICM1QTk2CivlqpcgPiB4dcSBbjsgIzVBOTcKK+WqmCA+IGppZTsgIzVBOTgKK+WqmSA+IHfEk2k7ICM1QTk5CivlqpogPiBtw6hpOyAjNUE5QQor5aqbID4geXXDoG47ICM1QTlCCivlqpwgPiB6aMSTbjsgIzVBOUMKK+WqnSA+IHHEq3U7ICM1QTlECivlqp4gPiB0w607ICM1QTlFCivlqp8gPiB4acOoOyAjNUE5Rgor5aqgID4gdMWtbzsgIzVBQTAKK+WqoSA+IGxpw6BuOyAjNUFBMQor5aqiID4gbcOgbzsgIzVBQTIKK+WqoyA+IHLEg247ICM1QUEzCivlqqQgPiBzxKs7ICM1QUE0CivlqqUgPiBwacSBbjsgIzVBQTUKK+WqpiA+IHfDqGk7ICM1QUE2CivlqqcgPiB3xIE7ICM1QUE3CivlqqggPiBqw6x1OyAjNUFBOAor5aqpID4gaMO6OyAjNUFBOQor5aqqID4gxINvOyAjNUFBQQor5aqtID4geMWrOyAjNUFBRAor5aquID4gdMWNdTsgIzVBQUUKK+WqryA+IGfFq2k7ICM1QUFGCivlqrAgPiB6xY11OyAjNUFCMAor5aqxID4gecOhbzsgIzVBQjEKK+WqsiA+IHDDrDsgIzVBQjIKK+WqsyA+IHjDrTsgIzVBQjMKK+WqtCA+IHl1w6FuOyAjNUFCNAor5aq1ID4gecOsbmc7ICM1QUI1CivlqrYgPiByw7NuZzsgIzVBQjYKK+WqtyA+IHLDuTsgIzVBQjcKK+WquCA+IGNoxKs7ICM1QUI4CivlqrkgPiBsw611OyAjNUFCOQor5aq6ID4gbcSVaTsgIzVBQkEKK+WquyA+IHDDoW47ICM1QUJCCivlqrwgPiDEg287ICM1QUJDCivlqr0gPiBtxIE7ICM1QUJECivlqr4gPiBnw7J1OyAjNUFCRQor5aq/ID4ga8O5aTsgIzVBQkYKK+WrgCA+IHHDrW47ICM1QUMwCivlq4EgPiBqacOgOyAjNUFDMQor5auCID4gc8SDbzsgIzVBQzIKK+WrgyA+IHpoxJNuOyAjNUFDMwor5auEID4geXXDoW47ICM1QUM0Civlq4UgPiBjaMSBOyAjNUFDNQor5auGID4gecOzbmc7ICM1QUM2Civlq4cgPiBtw61uZzsgIzVBQzcKK+WriCA+IHnEq25nOyAjNUFDOAor5auJID4gasOtOyAjNUFDOQor5auKID4gc8O5OyAjNUFDQQor5auLID4gbmnEg287ICM1QUNCCivlq4wgPiB4acOhbjsgIzVBQ0MKK+WrjSA+IHTEgW87ICM1QUNECivlq44gPiBww6FuZzsgIzVBQ0UKK+WrjyA+IGzDoW5nOyAjNUFDRgor5auQID4gbsSDbzsgIzVBRDAKK+WrkSA+IGLDoW87ICM1QUQxCivlq5IgPiDDoGk7ICM1QUQyCivlq5MgPiBww6w7ICM1QUQzCivlq5QgPiBww61uOyAjNUFENAor5auVID4gecOsOyAjNUFENQor5auWID4gcGnDoG87ICM1QUQ2Civlq5cgPiB5w7k7ICM1QUQ3Civlq5ggPiBsw6lpOyAjNUFEOAor5auZID4geHXDoW47ICM1QUQ5Civlq5ogPiBtw6BuOyAjNUFEQQor5aubID4gecSrOyAjNUFEQgor5aucID4gemjEgW5nOyAjNUFEQwor5audID4ga8SBbmc7ICM1QURECivlq54gPiB5w7NuZzsgIzVBREUKK+WrnyA+IG7DrDsgIzVBREYKK+WroCA+IGzDrTsgIzVBRTAKK+WroSA+IGTDrTsgIzVBRTEKK+WroiA+IGfFq2k7ICM1QUUyCivlq6MgPiB5xIFuOyAjNUFFMwor5aukID4gasOsbjsgIzVBRTQKK+WrpSA+IHpodcSBbjsgIzVBRTUKK+WrpiA+IGNow6FuZzsgIzVBRTYKK+WrpyA+IGPDqDsgIzVBRTcKK+WrqCA+IGjEgW47ICM1QUU4Civlq6kgPiBuw6huOyAjNUFFOQor5auqID4gbMOgbzsgIzVBRUEKK+WrqyA+IG3DszsgIzVBRUIKK+WrrCA+IHpoxJM7ICM1QUVDCivlq60gPiBow7k7ICM1QUVECivlq64gPiBow7k7ICM1QUVFCivlq68gPiDDoG87ICM1QUVGCivlq7AgPiBuw6huOyAjNUFGMAor5auxID4gcWnDoW5nOyAjNUFGMQor5auzID4gcGnDqDsgIzVBRjMKK+WrtCA+IGfFqzsgIzVBRjQKK+WrtSA+IHfFrTsgIzVBRjUKK+WrtiA+IGppw6FvOyAjNUFGNgor5au3ID4gdMWtbzsgIzVBRjcKK+WruCA+IHpoxINuOyAjNUFGOAor5au5ID4gbcOhbzsgIzVBRjkKK+WruiA+IHhpw6FuOyAjNUFGQQor5au7ID4geGnDoW47ICM1QUZCCivlq7wgPiBtw7I7ICM1QUZDCivlq70gPiBsacOhbzsgIzVBRkQKK+WrviA+IGxpw6FuOyAjNUFGRQor5au/ID4gaHXDoDsgIzVBRkYKK+WsgCA+IGfFq2k7ICM1QjAwCivlrIEgPiBkxJNuZzsgIzVCMDEKK+WsgiA+IHpoxKs7ICM1QjAyCivlrIMgPiB4xas7ICM1QjAzCivlrIQgPiB5aTsgIzVCMDQKK+WshSA+IGh1w6E7ICM1QjA1CivlrIYgPiB4xKs7ICM1QjA2CivlrIcgPiBow7lpOyAjNUIwNwor5ayIID4gcsSDbzsgIzVCMDgKK+WsiSA+IHjEqzsgIzVCMDkKK+WsiiA+IHnDoG47ICM1QjBBCivlrIsgPiBjaMOhbjsgIzVCMEIKK+WsjCA+IGppxIFvOyAjNUIwQwor5ayNID4gbcSVaTsgIzVCMEQKK+WsjiA+IGbDoG47ICM1QjBFCivlrI8gPiBmxIFuOyAjNUIwRgor5ayQID4geGnEgW47ICM1QjEwCivlrJEgPiB5w6w7ICM1QjExCivlrJIgPiB3w6hpOyAjNUIxMgor5ayTID4gamnDoG87ICM1QjEzCivlrJQgPiBmw7k7ICM1QjE0CivlrJUgPiBzaMOsOyAjNUIxNQor5ayWID4gYsOsOyAjNUIxNgor5ayXID4gc2jDoG47ICM1QjE3CivlrJggPiBzw7lpOyAjNUIxOAor5ayZID4gcWnDoW5nOyAjNUIxOQor5ayaID4gbGnEg247ICM1QjFBCivlrJsgPiBodcOhbjsgIzVCMUIKK+WsnCA+IHhpbjsgIzVCMUMKK+WsnSA+IG5pxINvOyAjNUIxRAor5ayeID4gZMWPbmc7ICM1QjFFCivlrJ8gPiB5w6w7ICM1QjFGCivlrKAgPiBjw6FuOyAjNUIyMAor5ayhID4gw6BpOyAjNUIyMQor5ayiID4gbmnDoW5nOyAjNUIyMgor5ayjID4gbsOpbmc7ICM1QjIzCivlrKQgPiBtxIE7ICM1QjI0CivlrKUgPiB0acSDbzsgIzVCMjUKK+WspiA+IGNow7N1OyAjNUIyNgor5aynID4gasOsbjsgIzVCMjcKK+WsqCA+IGPDrTsgIzVCMjgKK+WsqSA+IHnDujsgIzVCMjkKK+WsqiA+IHDDrW47ICM1QjJBCivlrKsgPiB5b25nOyAjNUIyQgor5aysID4geMWrOyAjNUIyQwor5aytID4gbsSDaTsgIzVCMkQKK+WsriA+IHnEgW47ICM1QjJFCivlrK8gPiB0w6FpOyAjNUIyRgor5aywID4gecSrbmc7ICM1QjMwCivlrLEgPiBjw6FuOyAjNUIzMQor5ayyID4gbmnEg287ICM1QjMyCivlrLMgPiB3bzsgIzVCMzMKK+WstCA+IHnDrW5nOyAjNUIzNAor5ay1ID4gbWnDoW47ICM1QjM1CivlrLcgPiBtxIE7ICM1QjM3CivlrLggPiBzaMSVbjsgIzVCMzgKK+WsuSA+IHjDrG5nOyAjNUIzOQor5ay6ID4gbsOsOyAjNUIzQQor5ay7ID4gZMO6OyAjNUIzQgor5ay8ID4gbMStdTsgIzVCM0MKK+WsvSA+IHl1xIFuOyAjNUIzRAor5ay+ID4gbMSDbjsgIzVCM0UKK+WsvyA+IHnDoG47ICM1QjNGCivlrYAgPiBzaHXEgW5nOyAjNUI0MAor5a2BID4gbMOtbmc7ICM1QjQxCivlrYIgPiBqacSDbzsgIzVCNDIKK+WtgyA+IG5pw6FuZzsgIzVCNDMKK+WthCA+IGzEg247ICM1QjQ0CivlrYUgPiB4acSBbjsgIzVCNDUKK+WthiA+IHnEq25nOyAjNUI0Ngor5a2HID4gc2h1xIFuZzsgIzVCNDcKK+WtiCA+IHNodcSBaTsgIzVCNDgKK+WtiSA+IHF1w6FuOyAjNUI0OQor5a2KID4gbcStOyAjNUI0QQor5a2LID4gbMOtOyAjNUI0Qgor5a2MID4gbHXDoW47ICM1QjRDCivlrY0gPiB5w6FuOyAjNUI0RAor5a2OID4gemjFrTsgIzVCNEUKK+WtjyA+IGzEg247ICM1QjRGCivlrZAgPiB6xK07ICM1QjUwCivlrZEgPiBqacOpOyAjNUI1MQor5a2SID4ganXDqTsgIzVCNTIKK+WtkyA+IGp1w6k7ICM1QjUzCivlrZQgPiBrxY9uZzsgIzVCNTQKK+WtlSA+IHnDuW47ICM1QjU1CivlrZYgPiB6xKs7ICM1QjU2CivlrZcgPiB6w6w7ICM1QjU3CivlrZggPiBjw7puOyAjNUI1OAor5a2ZID4gc8WrbjsgIzVCNTkKK+WtmiA+IGbDujsgIzVCNUEKK+WtmyA+IGLDqGk7ICM1QjVCCivlrZwgPiB6xKs7ICM1QjVDCivlrZ0gPiB4acOgbzsgIzVCNUQKK+WtniA+IHjDrG47ICM1QjVFCivlrZ8gPiBtw6huZzsgIzVCNUYKK+WtoCA+IHPDrDsgIzVCNjAKK+WtoSA+IHTEgWk7ICM1QjYxCivlraIgPiBixIFvOyAjNUI2Mgor5a2jID4gasOsOyAjNUI2Mwor5a2kID4gZ8WrOyAjNUI2NAor5a2lID4gbsO6OyAjNUI2NQor5a2mID4geHXDqTsgIzVCNjYKK+WtqCA+IHpodcSDbjsgIzVCNjgKK+WtqSA+IGjDoWk7ICM1QjY5CivlraogPiBsdcOhbjsgIzVCNkEKK+WtqyA+IHPFq247ICM1QjZCCivlrawgPiBodcOgaTsgIzVCNkMKK+WtrSA+IG1pxJM7ICM1QjZECivlra4gPiBjw7NuZzsgIzVCNkUKK+WtryA+IHFpxIFuOyAjNUI2Rgor5a2wID4gc2jDujsgIzVCNzAKK+WtsSA+IGNow6FuOyAjNUI3MQor5a2yID4gecSBOyAjNUI3Mgor5a2zID4gesSrOyAjNUI3Mwor5a20ID4gbsStOyAjNUI3NAor5a21ID4gZsWrOyAjNUI3NQor5a22ID4gesSrOyAjNUI3Ngor5a23ID4gbMOtOyAjNUI3Nwor5a24ID4geHXDqTsgIzVCNzgKK+WtuSA+IGLDsjsgIzVCNzkKK+WtuiA+IHLDujsgIzVCN0EKK+WtuyA+IGzDoWk7ICM1QjdCCivlrbwgPiBuacOoOyAjNUI3Qwor5a29ID4gbmnDqDsgIzVCN0QKK+WtviA+IHnEq25nOyAjNUI3RQor5a2/ID4gbHXDoW47ICM1QjdGCivlroAgPiBtacOhbjsgIzVCODAKK+WugSA+IHpow7k7ICM1QjgxCivlroIgPiByxY9uZzsgIzVCODIKK+WugyA+IHTEgTsgIzVCODMKK+WuhCA+IGfFrWk7ICM1Qjg0CivlroUgPiB6aMOhaTsgIzVCODUKK+WuhiA+IHHDrW9uZzsgIzVCODYKK+WuhyA+IHnFrTsgIzVCODcKK+WuiCA+IHNoxY91OyAjNUI4OAor5a6JID4gxIFuOyAjNUI4OQor5a6KID4gdMO6OyAjNUI4QQor5a6LID4gc8Oybmc7ICM1QjhCCivlrowgPiB3w6FuOyAjNUI4Qwor5a6NID4gcsOydTsgIzVCOEQKK+WujiA+IHnEg287ICM1QjhFCivlro8gPiBow7NuZzsgIzVCOEYKK+WukCA+IHnDrTsgIzVCOTAKK+WukSA+IGrErW5nOyAjNUI5MQor5a6SID4gemjFq247ICM1QjkyCivlrpMgPiBtw6w7ICM1QjkzCivlrpQgPiB6aMWtOyAjNUI5NAor5a6VID4gZMOgbmc7ICM1Qjk1CivlrpYgPiBow7NuZzsgIzVCOTYKK+WulyA+IHrFjW5nOyAjNUI5Nwor5a6YID4gZ3XEgW47ICM1Qjk4CivlrpkgPiB6aMOydTsgIzVCOTkKK+WumiA+IGTDrG5nOyAjNUI5QQor5a6bID4gd8SDbjsgIzVCOUIKK+WunCA+IHnDrTsgIzVCOUMKK+WunSA+IGLEg287ICM1QjlECivlrp4gPiBzaMOtOyAjNUI5RQor5a6fID4gc2jDrTsgIzVCOUYKK+WuoCA+IGNoxY9uZzsgIzVCQTAKK+WuoSA+IHNoxJVuOyAjNUJBMQor5a6iID4ga8OoOyAjNUJBMgor5a6jID4geHXEgW47ICM1QkEzCivlrqQgPiBzaMOsOyAjNUJBNAor5a6lID4gecOydTsgIzVCQTUKK+WupiA+IGh1w6BuOyAjNUJBNgor5a6nID4gecOtOyAjNUJBNwor5a6oID4gdGnEg287ICM1QkE4CivlrqkgPiBzaMStOyAjNUJBOQor5a6qID4geGnDoG47ICM1QkFBCivlrqsgPiBnxY1uZzsgIzVCQUIKK+WurCA+IGNow6luZzsgIzVCQUMKK+WurSA+IHHDum47ICM1QkFECivlrq4gPiBnxY1uZzsgIzVCQUUKK+WuryA+IHhpxIFvOyAjNUJBRgor5a6wID4gesSDaTsgIzVCQjAKK+WusSA+IHpow6A7ICM1QkIxCivlrrIgPiBixINvOyAjNUJCMgor5a6zID4gaMOgaTsgIzVCQjMKK+WutCA+IHnDoG47ICM1QkI0CivlrrUgPiB4acSBbzsgIzVCQjUKK+WutiA+IGppxIE7ICM1QkI2CivlrrcgPiBzaMSVbjsgIzVCQjcKK+WuuCA+IGNow6luOyAjNUJCOAor5a65ID4gcsOzbmc7ICM1QkI5CivlrrogPiBodcSDbmc7ICM1QkJBCivlrrsgPiBtw6w7ICM1QkJCCivlrrwgPiBrw7J1OyAjNUJCQwor5a69ID4ga3XEgW47ICM1QkJECivlrr4gPiBixKtuOyAjNUJCRQor5a6/ID4gc8O5OyAjNUJCRgor5a+AID4gY8OgaTsgIzVCQzAKK+WvgSA+IHrEg247ICM1QkMxCivlr4IgPiBqw6w7ICM1QkMyCivlr4MgPiB5dcSBbjsgIzVCQzMKK+WvhCA+IGrDrDsgIzVCQzQKK+WvhSA+IHnDrW47ICM1QkM1Civlr4YgPiBtw6w7ICM1QkM2Civlr4cgPiBrw7J1OyAjNUJDNwor5a+IID4gccSrbmc7ICM1QkM4Civlr4kgPiBxdcOoOyAjNUJDOQor5a+KID4gemjEk247ICM1QkNBCivlr4sgPiBqacSDbjsgIzVCQ0IKK+WvjCA+IGbDuTsgIzVCQ0MKK+WvjSA+IG7DrW5nOyAjNUJDRAor5a+OID4gYsOsbmc7ICM1QkNFCivlr48gPiBodcOhbjsgIzVCQ0YKK+WvkCA+IG3DqGk7ICM1QkQwCivlr5EgPiBxxK1uOyAjNUJEMQor5a+SID4gaMOhbjsgIzVCRDIKK+WvkyA+IHnDuTsgIzVCRDMKK+WvlCA+IHNow607ICM1QkQ0Civlr5UgPiBuw61uZzsgIzVCRDUKK+WvliA+IHHDrG47ICM1QkQ2Civlr5cgPiBuw61uZzsgIzVCRDcKK+WvmCA+IHpow6w7ICM1QkQ4Civlr5kgPiB5xa07ICM1QkQ5Civlr5ogPiBixINvOyAjNUJEQQor5a+bID4ga3XEgW47ICM1QkRCCivlr5wgPiBuw61uZzsgIzVCREMKK+WvnSA+IHHErW47ICM1QkRECivlr54gPiBtw7I7ICM1QkRFCivlr58gPiBjaMOhOyAjNUJERgor5a+gID4gasO5OyAjNUJFMAor5a+hID4gZ3XEgzsgIzVCRTEKK+WvoiA+IHHErW47ICM1QkUyCivlr6MgPiBoxas7ICM1QkUzCivlr6QgPiB3w7k7ICM1QkU0Civlr6UgPiBsacOhbzsgIzVCRTUKK+WvpiA+IHNow607ICM1QkU2Civlr6cgPiB6aMO5OyAjNUJFNwor5a+oID4gemjDoGk7ICM1QkU4Civlr6kgPiBzaMSVbjsgIzVCRTkKK+WvqiA+IHfElWk7ICM1QkVBCivlr6sgPiB4acSVOyAjNUJFQgor5a+sID4ga3XEgW47ICM1QkVDCivlr60gPiBow7lpOyAjNUJFRAor5a+uID4gbGnDoW87ICM1QkVFCivlr68gPiBqw7luOyAjNUJFRgor5a+wID4gaHXDoW47ICM1QkYwCivlr7EgPiB5w6w7ICM1QkYxCivlr7IgPiB5w607ICM1QkYyCivlr7MgPiBixINvOyAjNUJGMwor5a+0ID4gccOsbjsgIzVCRjQKK+WvtSA+IGNoxY9uZzsgIzVCRjUKK+WvtiA+IGLEg287ICM1QkY2Civlr7cgPiBmxJNuZzsgIzVCRjcKK+WvuCA+IGPDuW47ICM1QkY4Civlr7kgPiBkw7lpOyAjNUJGOQor5a+6ID4gc8OsOyAjNUJGQQor5a+7ID4geMO6bjsgIzVCRkIKK+WvvCA+IGTEg287ICM1QkZDCivlr70gPiBsx5w7ICM1QkZECivlr74gPiBkw7lpOyAjNUJGRQor5a+/ID4gc2jDsnU7ICM1QkZGCivlsIAgPiBwxY87ICM1QzAwCivlsIEgPiBmxJNuZzsgIzVDMDEKK+WwgiA+IHpodcSBbjsgIzVDMDIKK+WwgyA+IGbFqzsgIzVDMDMKK+WwhCA+IHNow6g7ICM1QzA0CivlsIUgPiBrw6g7ICM1QzA1CivlsIYgPiBqacSBbmc7ICM1QzA2CivlsIcgPiBqacSBbmc7ICM1QzA3CivlsIggPiB6aHXEgW47ICM1QzA4CivlsIkgPiB3w6hpOyAjNUMwOQor5bCKID4gesWrbjsgIzVDMEEKK+WwiyA+IHjDum47ICM1QzBCCivlsIwgPiBzaMO5OyAjNUMwQwor5bCNID4gZMO5aTsgIzVDMEQKK+WwjiA+IGTEg287ICM1QzBFCivlsI8gPiB4acSDbzsgIzVDMEYKK+WwkCA+IGrEqzsgIzVDMTAKK+WwkSA+IHNoxINvOyAjNUMxMQor5bCSID4gxJVyOyAjNUMxMgor5bCTID4gxJVyOyAjNUMxMwor5bCUID4gxJVyOyAjNUMxNAor5bCVID4gZ8SDOyAjNUMxNQor5bCWID4gamnEgW47ICM1QzE2CivlsJcgPiBzaMO6OyAjNUMxNwor5bCYID4gY2jDqW47ICM1QzE4CivlsJkgPiBzaMOgbmc7ICM1QzE5CivlsJogPiBzaMOgbmc7ICM1QzFBCivlsJsgPiBtbzsgIzVDMUIKK+WwnCA+IGfDoTsgIzVDMUMKK+WwnSA+IGNow6FuZzsgIzVDMUQKK+WwniA+IGxpw6BvOyAjNUMxRQor5bCfID4geGnEg247ICM1QzFGCivlsKAgPiB4acSDbjsgIzVDMjAKK+WwoiA+IHfEgW5nOyAjNUMyMgor5bCjID4gd8SBbmc7ICM1QzIzCivlsKQgPiB5w7N1OyAjNUMyNAor5bClID4gbGnDoG87ICM1QzI1CivlsKYgPiBsacOgbzsgIzVDMjYKK+WwpyA+IHnDoW87ICM1QzI3CivlsKggPiBtw6FuZzsgIzVDMjgKK+WwqSA+IHfEgW5nOyAjNUMyOQor5bCqID4gd8SBbmc7ICM1QzJBCivlsKsgPiB3xIFuZzsgIzVDMkIKK+WwrCA+IGfDoDsgIzVDMkMKK+WwrSA+IHnDoW87ICM1QzJECivlsK4gPiBkw7lvOyAjNUMyRQor5bCvID4ga8O5aTsgIzVDMkYKK+WwsCA+IHpoxY9uZzsgIzVDMzAKK+WwsSA+IGrDrHU7ICM1QzMxCivlsLIgPiBnxIFuOyAjNUMzMgor5bCzID4gZ8WtOyAjNUMzMwor5bC0ID4gZ8SBbjsgIzVDMzQKK+WwtSA+IHTDumk7ICM1QzM1CivlsLYgPiBnxIFuOyAjNUMzNgor5bC3ID4gZ8SBbjsgIzVDMzcKK+WwuCA+IHNoxKs7ICM1QzM4CivlsLkgPiB5xK1uOyAjNUMzOQor5bC6ID4gY2jErTsgIzVDM0EKK+WwuyA+IGvEgW87ICM1QzNCCivlsLwgPiBuw607ICM1QzNDCivlsL0gPiBqxK1uOyAjNUMzRAor5bC+ID4gd8SVaTsgIzVDM0UKK+WwvyA+IG5pw6BvOyAjNUMzRgor5bGAID4gasO6OyAjNUM0MAor5bGBID4gcMOsOyAjNUM0MQor5bGCID4gY8Opbmc7ICM1QzQyCivlsYMgPiB4w6w7ICM1QzQzCivlsYQgPiBixKs7ICM1QzQ0CivlsYUgPiBqxas7ICM1QzQ1CivlsYYgPiBqacOoOyAjNUM0Ngor5bGHID4gdGnDoW47ICM1QzQ3CivlsYggPiBxxas7ICM1QzQ4CivlsYkgPiB0w6w7ICM1QzQ5CivlsYogPiBqacOoOyAjNUM0QQor5bGLID4gd8WrOyAjNUM0Qgor5bGMID4gZGnEg287ICM1QzRDCivlsY0gPiBzaMSrOyAjNUM0RAor5bGOID4gc2jErTsgIzVDNEUKK+WxjyA+IHDDrW5nOyAjNUM0Rgor5bGQID4gasSrOyAjNUM1MAor5bGRID4geGnDqDsgIzVDNTEKK+WxkiA+IGNow6luOyAjNUM1Mgor5bGTID4geMOsOyAjNUM1Mwor5bGUID4gbsOtOyAjNUM1NAor5bGVID4gemjEg247ICM1QzU1CivlsZYgPiB4xKs7ICM1QzU2CivlsZggPiBtxINuOyAjNUM1OAor5bGZID4gxJM7ICM1QzU5CivlsZogPiBsw7J1OyAjNUM1QQor5bGbID4gcMOtbmc7ICM1QzVCCivlsZwgPiB0w6w7ICM1QzVDCivlsZ0gPiBmw6hpOyAjNUM1RAor5bGeID4gc2jFrTsgIzVDNUUKK+WxnyA+IHhpw6g7ICM1QzVGCivlsaAgPiB0w7o7ICM1QzYwCivlsaEgPiBsx5o7ICM1QzYxCivlsaIgPiBsx5o7ICM1QzYyCivlsaMgPiB4xK07ICM1QzYzCivlsaQgPiBjw6luZzsgIzVDNjQKK+WxpSA+IGzHmjsgIzVDNjUKK+WxpiA+IGrDuTsgIzVDNjYKK+WxpyA+IHhpw6g7ICM1QzY3CivlsaggPiBqw7k7ICM1QzY4CivlsakgPiBqdcSTOyAjNUM2OQor5bGqID4gbGnDoW87ICM1QzZBCivlsasgPiBqdcOpOyAjNUM2Qgor5bGsID4gc2jFrTsgIzVDNkMKK+WxrSA+IHjDrDsgIzVDNkQKK+WxriA+IGNow6g7ICM1QzZFCivlsa8gPiB0w7puOyAjNUM2Rgor5bGwID4gbsOsOyAjNUM3MAor5bGxID4gc2jEgW47ICM1QzcxCivlsbMgPiB4acSBbjsgIzVDNzMKK+WxtCA+IGzDrDsgIzVDNzQKK+WxtSA+IHh1xJM7ICM1Qzc1CivlsbggPiBsw7NuZzsgIzVDNzgKK+WxuSA+IHnDrDsgIzVDNzkKK+WxuiA+IHHErTsgIzVDN0EKK+WxuyA+IHLDqG47ICM1QzdCCivlsbwgPiB3w7k7ICM1QzdDCivlsb0gPiBow6BuOyAjNUM3RAor5bG+ID4gc2jEk247ICM1QzdFCivlsb8gPiB5xa07ICM1QzdGCivlsoAgPiBjaMWrOyAjNUM4MAor5bKBID4gc8O5aTsgIzVDODEKK+WygiA+IHHErTsgIzVDODIKK+WyhCA+IHl1w6g7ICM1Qzg0CivlsoUgPiBixINuOyAjNUM4NQor5bKGID4gecSDbzsgIzVDODYKK+WyhyA+IMOhbmc7ICM1Qzg3CivlsoggPiB5w6E7ICM1Qzg4CivlsokgPiB3w7k7ICM1Qzg5CivlsoogPiBqacOpOyAjNUM4QQor5bKLID4gw6g7ICM1QzhCCivlsowgPiBqw607ICM1QzhDCivlso0gPiBxacSBbjsgIzVDOEQKK+WyjiA+IGbEk247ICM1QzhFCivlso8gPiB5dcOhbjsgIzVDOEYKK+WykCA+IHHDrTsgIzVDOTAKK+WykSA+IGPDqW47ICM1QzkxCivlspIgPiBxacOhbjsgIzVDOTIKK+WykyA+IHHDrTsgIzVDOTMKK+WylCA+IGNow6A7ICM1Qzk0CivlspUgPiBqacOoOyAjNUM5NQor5bKWID4gccWrOyAjNUM5Ngor5bKXID4gZ8SDbmc7ICM1Qzk3CivlspggPiB4acOgbjsgIzVDOTgKK+WymSA+IMOgbzsgIzVDOTkKK+WymiA+IGzDoW47ICM1QzlBCivlspsgPiBkxINvOyAjNUM5Qgor5bKcID4gYsSBOyAjNUM5Qwor5bKdID4gesO5bzsgIzVDOUQKK+WyniA+IHrDuW87ICM1QzlFCivlsp8gPiB5xINuZzsgIzVDOUYKK+WyoCA+IGrDuTsgIzVDQTAKK+WyoSA+IGfEgW5nOyAjNUNBMQor5bKiID4ga8SVOyAjNUNBMgor5bKjID4gZ8WPdTsgIzVDQTMKK+WypCA+IHh1w6g7ICM1Q0E0CivlsqUgPiBixJNpOyAjNUNBNQor5bKmID4gbMOsOyAjNUNBNgor5bKnID4gdGnDoW87ICM1Q0E3CivlsqggPiBqxas7ICM1Q0E4CivlsqkgPiB5w6FuOyAjNUNBOQor5bKqID4gZsO6OyAjNUNBQQor5bKrID4geMOsdTsgIzVDQUIKK+WyrCA+IGppxIM7ICM1Q0FDCivlsq0gPiBsw61uZzsgIzVDQUQKK+WyriA+IHTDum87ICM1Q0FFCivlsq8gPiBwxJNpOyAjNUNBRgor5bKwID4gecWPdTsgIzVDQjAKK+WysSA+IGTDoGk7ICM1Q0IxCivlsrIgPiBrdcOgbmc7ICM1Q0IyCivlsrMgPiB5dcOoOyAjNUNCMwor5bK0ID4gccWrOyAjNUNCNAor5bK1ID4gaMO5OyAjNUNCNQor5bK2ID4gcMOyOyAjNUNCNgor5bK3ID4gbcOtbjsgIzVDQjcKK+WyuCA+IMOgbjsgIzVDQjgKK+WyuSA+IHRpw6FvOyAjNUNCOQor5bK6ID4gbMOtbmc7ICM1Q0JBCivlsrsgPiBjaMOtOyAjNUNCQgor5bK9ID4gZMWNbmc7ICM1Q0JECivlsr8gPiBrxatpOyAjNUNCRgor5bOAID4geMOsdTsgIzVDQzAKK+WzgSA+IG3Eg287ICM1Q0MxCivls4IgPiB0w7NuZzsgIzVDQzIKK+WzgyA+IHh1w6k7ICM1Q0MzCivls4QgPiB5w6w7ICM1Q0M0Civls4YgPiBoxJM7ICM1Q0M2Civls4cgPiBrxJM7ICM1Q0M3Civls4ggPiBsw7lvOyAjNUNDOAor5bOJID4gxJM7ICM1Q0M5Civls4ogPiBmw7k7ICM1Q0NBCivls4sgPiB4w7puOyAjNUNDQgor5bOMID4gZGnDqTsgIzVDQ0MKK+WzjSA+IGzDuTsgIzVDQ0QKK+WzjiA+IMSBbjsgIzVDQ0UKK+WzjyA+IMSVcjsgIzVDQ0YKK+WzkCA+IGfEgWk7ICM1Q0QwCivls5EgPiBxdcOhbjsgIzVDRDEKK+WzkiA+IHTDs25nOyAjNUNEMgor5bOTID4gecOtOyAjNUNEMwor5bOUID4gbcWtOyAjNUNENAor5bOVID4gc2jDrTsgIzVDRDUKK+WzliA+IMSBbjsgIzVDRDYKK+WzlyA+IHfDqWk7ICM1Q0Q3Civls5ggPiBoxas7ICM1Q0Q4Civls5kgPiB6aMOsOyAjNUNEOQor5bOaID4gbcOsOyAjNUNEQQor5bObID4gbMStOyAjNUNEQgor5bOcID4gasSrOyAjNUNEQwor5bOdID4gdMOzbmc7ICM1Q0RECivls54gPiB3w6lpOyAjNUNERQor5bOfID4gecOydTsgIzVDREYKK+WzoSA+IHhpw6E7ICM1Q0UxCivls6IgPiBsxK07ICM1Q0UyCivls6MgPiB5w6FvOyAjNUNFMwor5bOkID4gamnDoG87ICM1Q0U0Civls6UgPiB6aMSTbmc7ICM1Q0U1Civls6YgPiBsdcOhbjsgIzVDRTYKK+WzpyA+IGppxIFvOyAjNUNFNwor5bOoID4gw6k7ICM1Q0U4Civls6kgPiDDqTsgIzVDRTkKK+WzqiA+IHnDuTsgIzVDRUEKK+WzqyA+IHnDqTsgIzVDRUIKK+WzrCA+IGLFqzsgIzVDRUMKK+WzrSA+IHFpw6BvOyAjNUNFRAor5bOuID4gccWrbjsgIzVDRUUKK+WzryA+IGbEk25nOyAjNUNFRgor5bOwID4gZsSTbmc7ICM1Q0YwCivls7EgPiBuw6FvOyAjNUNGMQor5bOyID4gbMStOyAjNUNGMgor5bOzID4gecOzdTsgIzVDRjMKK+WztCA+IHhpw6BuOyAjNUNGNAor5bO1ID4gaMOzbmc7ICM1Q0Y1Civls7YgPiBkxINvOyAjNUNGNgor5bO3ID4gc2jEk247ICM1Q0Y3Civls7ggPiBjaMOpbmc7ICM1Q0Y4Civls7kgPiB0w7o7ICM1Q0Y5Civls7ogPiBnxJVuZzsgIzVDRkEKK+WzuyA+IGrDuW47ICM1Q0ZCCivls7wgPiBow6BvOyAjNUNGQwor5bO9ID4geGnDoTsgIzVDRkQKK+WzviA+IHnEq247ICM1Q0ZFCivls78gPiB5xa07ICM1Q0ZGCivltIAgPiBsw6BuZzsgIzVEMDAKK+W0gSA+IGvEg247ICM1RDAxCivltIIgPiBsw6FvOyAjNUQwMgor5bSDID4gbMOhaTsgIzVEMDMKK+W0hCA+IHhpxINuOyAjNUQwNAor5bSFID4gcXXDqDsgIzVEMDUKK+W0hiA+IGvFjW5nOyAjNUQwNgor5bSHID4gY2jDs25nOyAjNUQwNwor5bSIID4gY2jDs25nOyAjNUQwOAor5bSJID4gdMOgOyAjNUQwOQor5bSKID4gbGluOyAjNUQwQQor5bSLID4gaHXDoTsgIzVEMEIKK+W0jCA+IGrFqzsgIzVEMEMKK+W0jSA+IGzDoWk7ICM1RDBECivltI4gPiBxw607ICM1RDBFCivltI8gPiBtw61uOyAjNUQwRgor5bSQID4ga8WrbjsgIzVEMTAKK+W0kSA+IGvFq247ICM1RDExCivltJIgPiB6w7o7ICM1RDEyCivltJMgPiBnw7k7ICM1RDEzCivltJQgPiBjxatpOyAjNUQxNAor5bSVID4gecOhOyAjNUQxNQor5bSWID4gecOhOyAjNUQxNgor5bSXID4gZ8SDbmc7ICM1RDE3CivltJggPiBsw7puOyAjNUQxOAor5bSZID4gbMO6bjsgIzVEMTkKK+W0miA+IGzDqW5nOyAjNUQxQQor5bSbID4ganXDqTsgIzVEMUIKK+W0nCA+IGTFq287ICM1RDFDCivltJ0gPiB6aMSTbmc7ICM1RDFECivltJ4gPiBnxatvOyAjNUQxRQor5bSfID4gecOtbjsgIzVEMUYKK+W0oCA+IGTFjW5nOyAjNUQyMAor5bShID4gaMOhbjsgIzVEMjEKK+W0oiA+IHpoxJNuZzsgIzVEMjIKK+W0oyA+IHfElWk7ICM1RDIzCivltKQgPiB5w6FvOyAjNUQyNAor5bSlID4gcMStOyAjNUQyNQor5bSmID4gecSBbjsgIzVEMjYKK+W0pyA+IHPFjW5nOyAjNUQyNwor5bSoID4gamnDqTsgIzVEMjgKK+W0qSA+IGLEk25nOyAjNUQyOQor5bSqID4gesO6OyAjNUQyQQor5bSrID4ganXDqTsgIzVEMkIKK+W0rCA+IGTFjW5nOyAjNUQyQwor5bStID4gemjEg247ICM1RDJECivltK4gPiBnw7k7ICM1RDJFCivltK8gPiB5w61uOyAjNUQyRgor5bSxID4gesOpOyAjNUQzMQor5bSyID4gaHXDoW5nOyAjNUQzMgor5bSzID4gecO6OyAjNUQzMwor5bS0ID4gd8STaTsgIzVEMzQKK+W0tSA+IHnDoW5nOyAjNUQzNQor5bS2ID4gZsSTbmc7ICM1RDM2CivltLcgPiBxw611OyAjNUQzNwor5bS4ID4gZMO5bjsgIzVEMzgKK+W0uSA+IHTDrTsgIzVEMzkKK+W0uiA+IHnErTsgIzVEM0EKK+W0uyA+IHpow6w7ICM1RDNCCivltLwgPiBzaMOsOyAjNUQzQwor5bS9ID4gesSDaTsgIzVEM0QKK+W0viA+IHnEg287ICM1RDNFCivltL8gPiDDqDsgIzVEM0YKK+W1gCA+IHpow7k7ICM1RDQwCivltYEgPiBrxIFuOyAjNUQ0MQor5bWCID4gbMecOyAjNUQ0Mgor5bWDID4gecSDbjsgIzVENDMKK+W1hCA+IG3ElWk7ICM1RDQ0CivltYUgPiBnxIFuOyAjNUQ0NQor5bWGID4gasSrOyAjNUQ0Ngor5bWHID4gasSrOyAjNUQ0Nwor5bWIID4gaHXEg247ICM1RDQ4CivltYkgPiB0w61uZzsgIzVENDkKK+W1iiA+IHNow6huZzsgIzVENEEKK+W1iyA+IG3DqWk7ICM1RDRCCivltYwgPiBxacOgbjsgIzVENEMKK+W1jSA+IHfDuTsgIzVENEQKK+W1jiA+IHnDujsgIzVENEUKK+W1jyA+IHrFjW5nOyAjNUQ0Rgor5bWQID4gbMOhbjsgIzVENTAKK+W1kSA+IGp1w6k7ICM1RDUxCivltZIgPiB5w6FuOyAjNUQ1Mgor5bWTID4gecOhbjsgIzVENTMKK+W1lCA+IHfElWk7ICM1RDU0CivltZUgPiB6xY1uZzsgIzVENTUKK+W1liA+IGNow6E7ICM1RDU2CivltZcgPiBzw7lpOyAjNUQ1Nwor5bWYID4gcsOzbmc7ICM1RDU4CivltZogPiBxxKtuOyAjNUQ1QQor5bWbID4gecO6OyAjNUQ1Qgor5bWdID4gbMWPdTsgIzVENUQKK+W1niA+IHTDujsgIzVENUUKK+W1nyA+IGTFq2k7ICM1RDVGCivltaAgPiB4xKs7ICM1RDYwCivltaEgPiB3xJNuZzsgIzVENjEKK+W1oiA+IGPEgW5nOyAjNUQ2Mgor5bWjID4gZMSBbmc7ICM1RDYzCivltaQgPiBow7NuZzsgIzVENjQKK+W1pSA+IGppw6k7ICM1RDY1CivltaYgPiDDoWk7ICM1RDY2CivltacgPiBsw611OyAjNUQ2Nwor5bWoID4gd8WtOyAjNUQ2OAor5bWpID4gc8WNbmc7ICM1RDY5CivltaogPiBxacSBbzsgIzVENkEKK+W1qyA+IHrEqzsgIzVENkIKK+W1rCA+IHfDqWk7ICM1RDZDCivlta0gPiBixJNuZzsgIzVENkQKK+W1riA+IGRpxIFuOyAjNUQ2RQor5bWvID4gY8O6bzsgIzVENkYKK+W1sCA+IHFpxINuOyAjNUQ3MAor5bWxID4gecWPbmc7ICM1RDcxCivltbIgPiBuacOoOyAjNUQ3Mgor5bWzID4gY8O6bzsgIzVENzMKK+W1tCA+IGrDrTsgIzVENzQKK+W1tyA+IHPFj25nOyAjNUQ3Nwor5bW4ID4gesWNbmc7ICM1RDc4CivltbkgPiBqacOgbmc7ICM1RDc5CivltbogPiBsacOhbzsgIzVEN0EKK+W1uyA+IGthbmc7ICM1RDdCCivltbwgPiBjaMSDbjsgIzVEN0MKK+W1vSA+IGRpw6k7ICM1RDdECivltb4gPiBjxJNuOyAjNUQ3RQor5bW/ID4gZMStbmc7ICM1RDdGCivltoAgPiB0xas7ICM1RDgwCivltoEgPiBsxY91OyAjNUQ4MQor5baCID4gemjDoG5nOyAjNUQ4Mgor5baDID4gemjEg247ICM1RDgzCivltoQgPiB6aMSDbjsgIzVEODQKK+W2hSA+IMOhbzsgIzVEODUKK+W2hiA+IGPDoW87ICM1RDg2CivltocgPiBxxas7ICM1RDg3CivltoggPiBxacSBbmc7ICM1RDg4CivltokgPiB6xatpOyAjNUQ4OQor5baKID4gesWtaTsgIzVEOEEKK+W2iyA+IGTEg287ICM1RDhCCivltowgPiBkxINvOyAjNUQ4Qwor5baNID4geMOtOyAjNUQ4RAor5baOID4gecO5OyAjNUQ4RQor5baPID4gYsOzOyAjNUQ4Rgor5baQID4gbMOzbmc7ICM1RDkwCivltpEgPiB4acSDbmc7ICM1RDkxCivltpIgPiBjw6luZzsgIzVEOTIKK+W2kyA+IGLFjTsgIzVEOTMKK+W2lCA+IHHEq247ICM1RDk0CivltpUgPiBqacSBbzsgIzVEOTUKK+W2liA+IHnEg247ICM1RDk2CivltpcgPiBsw6FvOyAjNUQ5Nwor5baYID4gemjDoG47ICM1RDk4CivltpkgPiBsw61uOyAjNUQ5OQor5baaID4gbGnDoW87ICM1RDlBCivltpsgPiBsacOhbzsgIzVEOUIKK+W2nCA+IGrEq247ICM1RDlDCivltp0gPiBkw6huZzsgIzVEOUQKK+W2niA+IGTDuW87ICM1RDlFCivltp8gPiB6xatuOyAjNUQ5Rgor5bagID4gamnDoG87ICM1REEwCivltqEgPiBnw7lpOyAjNURBMQor5baiID4gecOhbzsgIzVEQTIKK+W2oyA+IHFpw6FvOyAjNURBMwor5bakID4gecOhbzsgIzVEQTQKK+W2pSA+IGp1w6k7ICM1REE1CivltqYgPiB6aMSBbjsgIzVEQTYKK+W2pyA+IHnDrDsgIzVEQTcKK+W2qCA+IHh1w6k7ICM1REE4CivltqkgPiBuw6FvOyAjNURBOQor5baqID4gecOoOyAjNURBQQor5barID4gecOoOyAjNURBQgor5basID4gecOtOyAjNURBQwor5batID4gw6g7ICM1REFECivltq4gPiB4acSDbjsgIzVEQUUKK+W2ryA+IGrDrTsgIzVEQUYKK+W2sCA+IHhpw6g7ICM1REIwCivltrEgPiBrxJU7ICM1REIxCivltrIgPiB4xKs7ICM1REIyCivltrMgPiBkw6w7ICM1REIzCivltrQgPiDDoG87ICM1REI0CivltrUgPiB6xa1pOyAjNURCNQor5ba3ID4gbsOsOyAjNURCNwor5ba4ID4gcsOzbmc7ICM1REI4CivltrkgPiBkxINvOyAjNURCOQor5ba6ID4gbMStbmc7ICM1REJBCivltrsgPiB6w6E7ICM1REJCCivltrwgPiB5xa07ICM1REJDCivltr0gPiB5dcOoOyAjNURCRAor5ba+ID4gecStbjsgIzVEQkUKK+W3gCA+IGppxJM7ICM1REMwCivlt4EgPiBsw6w7ICM1REMxCivlt4IgPiBzxa1pOyAjNURDMgor5beDID4gbMOzbmc7ICM1REMzCivlt4QgPiBsw7NuZzsgIzVEQzQKK+W3hSA+IGRpxIFuOyAjNURDNQor5beGID4gecOtbmc7ICM1REM2Civlt4cgPiB4xKs7ICM1REM3Civlt4ggPiBqw7o7ICM1REM4Civlt4kgPiBjaMOhbjsgIzVEQzkKK+W3iiA+IHnErW5nOyAjNURDQQor5beLID4ga8WraTsgIzVEQ0IKK+W3jCA+IHnDoW47ICM1RENDCivlt40gPiB3xJNpOyAjNURDRAor5beOID4gbsOhbzsgIzVEQ0UKK+W3jyA+IHF1w6FuOyAjNURDRgor5beQID4gY2jEg287ICM1REQwCivlt5EgPiBjdcOhbjsgIzVERDEKK+W3kiA+IGx1w6FuOyAjNUREMgor5beTID4gZGnEgW47ICM1REQzCivlt5QgPiBkacSBbjsgIzVERDQKK+W3liA+IHnDoW47ICM1REQ2Civlt5cgPiB5w6FuOyAjNURENwor5beYID4gecSDbjsgIzVERDgKK+W3mSA+IG7DoW87ICM1REQ5Civlt5ogPiB5xINuOyAjNUREQQor5bebID4gY2h1xIFuOyAjNUREQgor5becID4gZ8O5aTsgIzVEREMKK+W3nSA+IGNodcSBbjsgIzVEREQKK+W3niA+IHpoxY11OyAjNURERQor5befID4gaHXEgW5nOyAjNURERgor5begID4gasSrbmc7ICM1REUwCivlt6EgPiB4w7puOyAjNURFMQor5beiID4gY2jDoW87ICM1REUyCivlt6MgPiBjaMOhbzsgIzVERTMKK+W3pCA+IGxpxJM7ICM1REU0Civlt6UgPiBnxY1uZzsgIzVERTUKK+W3piA+IHrFrW87ICM1REU2Civlt6cgPiBxacSDbzsgIzVERTcKK+W3qCA+IGrDuTsgIzVERTgKK+W3qSA+IGfFj25nOyAjNURFOQor5berID4gd8WrOyAjNURFQgor5beuID4gY2jEgWk7ICM1REVFCivlt68gPiBxw611OyAjNURFRgor5bewID4gccOtdTsgIzVERjAKK+W3sSA+IGrErTsgIzVERjEKK+W3siA+IHnErTsgIzVERjIKK+W3syA+IHPDrDsgIzVERjMKK+W3tCA+IGLEgTsgIzVERjQKK+W3tSA+IHpoxKs7ICM1REY1Civlt7YgPiB6aMSBbzsgIzVERjYKK+W3tyA+IHhpw6BuZzsgIzVERjcKK+W3uCA+IHnDrTsgIzVERjgKK+W3uSA+IGrErW47ICM1REY5Civlt7ogPiB4w7luOyAjNURGQQor5be7ID4ganXDoG47ICM1REZCCivlt70gPiB4w7luOyAjNURGRAor5be+ID4gasSrbjsgIzVERkUKK+W3vyA+IGbDujsgIzVERkYKK+W4gCA+IHrEgTsgIzVFMDAKK+W4gSA+IGLDrDsgIzVFMDEKK+W4giA+IHNow6w7ICM1RTAyCivluIMgPiBiw7k7ICM1RTAzCivluIQgPiBkxKtuZzsgIzVFMDQKK+W4hSA+IHNodcOgaTsgIzVFMDUKK+W4hiA+IGbEgW47ICM1RTA2CivluIcgPiBuacOoOyAjNUUwNwor5biIID4gc2jEqzsgIzVFMDgKK+W4iSA+IGbEk247ICM1RTA5CivluIogPiBww6A7ICM1RTBBCivluIsgPiB6aMStOyAjNUUwQgor5biMID4geMSrOyAjNUUwQwor5biNID4gaMO5OyAjNUUwRAor5biOID4gZMOgbjsgIzVFMEUKK+W4jyA+IHfDqWk7ICM1RTBGCivluJAgPiB6aMOgbmc7ICM1RTEwCivluJEgPiB0xINuZzsgIzVFMTEKK+W4kiA+IGTDoGk7ICM1RTEyCivluJMgPiBtw6A7ICM1RTEzCivluJQgPiBww6hpOyAjNUUxNAor5biVID4gcMOgOyAjNUUxNQor5biWID4gdGnEkzsgIzVFMTYKK+W4lyA+IGbDujsgIzVFMTcKK+W4mCA+IGxpw6FuOyAjNUUxOAor5biZID4gemjDrDsgIzVFMTkKK+W4miA+IHpoxY91OyAjNUUxQQor5bibID4gYsOzOyAjNUUxQgor5bicID4gemjDrDsgIzVFMUMKK+W4nSA+IGTDrDsgIzVFMUQKK+W4niA+IG3DsjsgIzVFMUUKK+W4nyA+IHnDrDsgIzVFMUYKK+W4oCA+IHnDrDsgIzVFMjAKK+W4oSA+IHDDrW5nOyAjNUUyMQor5biiID4gcWnDoDsgIzVFMjIKK+W4oyA+IGp1w6BuOyAjNUUyMwor5bikID4gcsO6OyAjNUUyNAor5bilID4gc2h1w6BpOyAjNUUyNQor5bimID4gZMOgaTsgIzVFMjYKK+W4pyA+IHpow6huZzsgIzVFMjcKK+W4qCA+IHNow7lpOyAjNUUyOAor5bipID4gcWnDoG87ICM1RTI5CivluKogPiB6aMSTbjsgIzVFMkEKK+W4qyA+IHNoxKs7ICM1RTJCCivluKwgPiBxw7puOyAjNUUyQwor5bitID4geMOtOyAjNUUyRAor5biuID4gYsSBbmc7ICM1RTJFCivluK8gPiBkw6BpOyAjNUUyRgor5biwID4gZ8WraTsgIzVFMzAKK+W4sSA+IGNow7N1OyAjNUUzMQor5biyID4gcMOtbmc7ICM1RTMyCivluLMgPiB6aMOgbmc7ICM1RTMzCivluLQgPiBzaMSBOyAjNUUzNAor5bi1ID4gd8SBbjsgIzVFMzUKK+W4tiA+IGTDoGk7ICM1RTM2CivluLcgPiB3w6lpOyAjNUUzNwor5bi4ID4gY2jDoW5nOyAjNUUzOAor5bi5ID4gc2jDoDsgIzVFMzkKK+W4uiA+IHHDrTsgIzVFM0EKK+W4uyA+IHrDqTsgIzVFM0IKK+W4vCA+IGfDum87ICM1RTNDCivluL0gPiBtw6BvOyAjNUUzRAor5bi+ID4gZMWtOyAjNUUzRQor5bi/ID4gaMOzdTsgIzVFM0YKK+W5gCA+IHpow6huZzsgIzVFNDAKK+W5gSA+IHjFqzsgIzVFNDEKK+W5giA+IG3DrDsgIzVFNDIKK+W5gyA+IHfDqWk7ICM1RTQzCivluYQgPiB3w7I7ICM1RTQ0CivluYUgPiBmw7o7ICM1RTQ1CivluYYgPiB5w6w7ICM1RTQ2CivluYcgPiBixIFuZzsgIzVFNDcKK+W5iCA+IHDDrW5nOyAjNUU0OAor5bmKID4gZ8WNbmc7ICM1RTRBCivluYsgPiBww6FuOyAjNUU0Qgor5bmMID4gaHXEg25nOyAjNUU0Qwor5bmNID4gZMSBbzsgIzVFNEQKK+W5jiA+IG3DrDsgIzVFNEUKK+W5jyA+IGppxIE7ICM1RTRGCivluZAgPiB0w6luZzsgIzVFNTAKK+W5kSA+IGjFq2k7ICM1RTUxCivluZIgPiB6aMWNbmc7ICM1RTUyCivluZMgPiBzaMSBbjsgIzVFNTMKK+W5lCA+IG3DoG47ICM1RTU0CivluZUgPiBtw7k7ICM1RTU1CivluZYgPiBiacSBbzsgIzVFNTYKK+W5lyA+IGfDum87ICM1RTU3CivluZggPiB6w6k7ICM1RTU4CivluZkgPiBtw7k7ICM1RTU5CivluZogPiBixIFuZzsgIzVFNUEKK+W5myA+IHpow6BuZzsgIzVFNUIKK+W5nCA+IGrErW9uZzsgIzVFNUMKK+W5nSA+IGNoxINuOyAjNUU1RAor5bmeID4gZsO6OyAjNUU1RQor5bmfID4gemjDrDsgIzVFNUYKK+W5oCA+IGjFqzsgIzVFNjAKK+W5oSA+IGbEgW47ICM1RTYxCivluaIgPiBjaHXDoW5nOyAjNUU2Mgor5bmjID4gYsOsOyAjNUU2Mwor5bmmID4gbcOsOyAjNUU2Ngor5bmnID4gcWnEgW87ICM1RTY3CivluaggPiBjaMSBbjsgIzVFNjgKK+W5qSA+IGbDqW47ICM1RTY5CivluaogPiBtw6luZzsgIzVFNkEKK+W5qyA+IGLEgW5nOyAjNUU2Qgor5bmsID4gY2jDs3U7ICM1RTZDCivlua0gPiBtacOoOyAjNUU2RAor5bmuID4gY2jDujsgIzVFNkUKK+W5ryA+IGppw6k7ICM1RTZGCivlubAgPiB4acSDbjsgIzVFNzAKK+W5sSA+IGzDoW47ICM1RTcxCivlubIgPiBnxIFuOyAjNUU3Mgor5bmzID4gcMOtbmc7ICM1RTczCivlubQgPiBuacOhbjsgIzVFNzQKK+W5tSA+IHFpxIFuOyAjNUU3NQor5bm2ID4gYsOsbmc7ICM1RTc2CivlubcgPiBiw6xuZzsgIzVFNzcKK+W5uCA+IHjDrG5nOyAjNUU3OAor5bm5ID4gZ8OgbjsgIzVFNzkKK+W5uiA+IHnEgW87ICM1RTdBCivlubsgPiBodcOgbjsgIzVFN0IKK+W5vCA+IHnDsnU7ICM1RTdDCivlub0gPiB5xY11OyAjNUU3RAor5bm+ID4gasStOyAjNUU3RQor5bm/ID4gecSDbjsgIzVFN0YKK+W6gCA+IHDErTsgIzVFODAKK+W6gSA+IHTEq25nOyAjNUU4MQor5bqCID4gesOoOyAjNUU4Mgor5bqDID4gZ3XEg25nOyAjNUU4Mwor5bqEID4gemh1xIFuZzsgIzVFODQKK+W6hSA+IG1vOyAjNUU4NQor5bqGID4gccOsbmc7ICM1RTg2CivluocgPiBiw6w7ICM1RTg3CivluoggPiBxw61uOyAjNUU4OAor5bqJID4gZMO5bjsgIzVFODkKK+W6iiA+IGNodcOhbmc7ICM1RThBCivluosgPiBnxa1pOyAjNUU4Qgor5bqMID4gecSDOyAjNUU4Qwor5bqNID4gYsOgaTsgIzVFOEQKK+W6jiA+IGppw6g7ICM1RThFCivluo8gPiB4w7k7ICM1RThGCivlupAgPiBsw7o7ICM1RTkwCivlupEgPiB3xa07ICM1RTkxCivlupMgPiBrw7k7ICM1RTkzCivlupQgPiB5w6xuZzsgIzVFOTQKK+W6lSA+IGTErTsgIzVFOTUKK+W6liA+IHDDoW87ICM1RTk2CivlupcgPiBkacOgbjsgIzVFOTcKK+W6mCA+IHnEgTsgIzVFOTgKK+W6mSA+IG1pw6BvOyAjNUU5OQor5bqaID4gZ8STbmc7ICM1RTlBCivlupsgPiBjxKs7ICM1RTlCCivlupwgPiBmxa07ICM1RTlDCivlup0gPiB0w7NuZzsgIzVFOUQKK+W6niA+IHDDoW5nOyAjNUU5RQor5bqfID4gZsOoaTsgIzVFOUYKK+W6oCA+IHhpw6FuZzsgIzVFQTAKK+W6oSA+IHnErTsgIzVFQTEKK+W6oiA+IHpow6w7ICM1RUEyCivluqMgPiB0acSBbzsgIzVFQTMKK+W6pCA+IHpow6w7ICM1RUE0CivluqUgPiB4xKt1OyAjNUVBNQor5bqmID4gZMO5OyAjNUVBNgor5bqnID4gesO5bzsgIzVFQTcKK+W6qCA+IHhpxIFvOyAjNUVBOAor5bqpID4gdMO6OyAjNUVBOQor5bqqID4gZ8WtaTsgIzVFQUEKK+W6qyA+IGvDuTsgIzVFQUIKK+W6rCA+IHDDoW5nOyAjNUVBQwor5bqtID4gdMOtbmc7ICM1RUFECivluq4gPiB5xY91OyAjNUVBRQor5bqvID4gYsWrOyAjNUVBRgor5bqwID4gZMSrbmc7ICM1RUIwCivlurEgPiBjaMSVbmc7ICM1RUIxCivlurIgPiBsw6FpOyAjNUVCMgor5bqzID4gYsSTaTsgIzVFQjMKK+W6tCA+IGrDrTsgIzVFQjQKK+W6tSA+IMSBbjsgIzVFQjUKK+W6tiA+IHNow7k7ICM1RUI2CivlurcgPiBrxIFuZzsgIzVFQjcKK+W6uCA+IHnFjW5nOyAjNUVCOAor5bq5ID4gdMWtbzsgIzVFQjkKK+W6uiA+IHPFjW5nOyAjNUVCQQor5bq7ID4gc2jDuTsgIzVFQkIKK+W6vCA+IHHErW5nOyAjNUVCQwor5bq9ID4gecO5OyAjNUVCRAor5bq+ID4gecWtOyAjNUVCRQor5bq/ID4gbWnDoG87ICM1RUJGCivlu4AgPiBzxY11OyAjNUVDMAor5buBID4gY8OoOyAjNUVDMQor5buCID4geGnEgW5nOyAjNUVDMgor5buDID4gZsOoaTsgIzVFQzMKK+W7hCA+IGrDrHU7ICM1RUM0Civlu4UgPiBow6k7ICM1RUM1Civlu4YgPiBow7lpOyAjNUVDNgor5buHID4gbMOsdTsgIzVFQzcKK+W7iCA+IHNow6A7ICM1RUM4Civlu4kgPiBsacOhbjsgIzVFQzkKK+W7iiA+IGzDoW5nOyAjNUVDQQor5buLID4gc8WNdTsgIzVFQ0IKK+W7jCA+IGppw6BuOyAjNUVDQwor5buNID4gcMWPdTsgIzVFQ0QKK+W7jiA+IHHErW5nOyAjNUVDRQor5buPID4gasOsdTsgIzVFQ0YKK+W7kCA+IGrDrHU7ICM1RUQwCivlu5EgPiBxw61uOyAjNUVEMQor5buSID4gw6FvOyAjNUVEMgor5buTID4ga8O5bzsgIzVFRDMKK+W7lCA+IGzDs3U7ICM1RUQ0Civlu5UgPiB5xKtuOyAjNUVENQor5buWID4gbGnDoG87ICM1RUQ2Civlu5cgPiBkw6BpOyAjNUVENwor5buYID4gbMO5OyAjNUVEOAor5buZID4gecOsOyAjNUVEOQor5buaID4gY2jDujsgIzVFREEKK+W7myA+IGNow6FuOyAjNUVEQgor5bucID4gdMWrOyAjNUVEQwor5budID4gc8SrOyAjNUVERAor5bueID4geMSrbjsgIzVFREUKK+W7nyA+IG1pw6BvOyAjNUVERgor5bugID4gY2jEg25nOyAjNUVFMAor5buhID4gd8WtOyAjNUVFMQor5buiID4gZsOoaTsgIzVFRTIKK+W7oyA+IGd1xINuZzsgIzVFRTMKK+W7pSA+IGt1w6BpOyAjNUVFNQor5bumID4gYsOsOyAjNUVFNgor5bunID4gcWnDoW5nOyAjNUVFNwor5buoID4geGnDqDsgIzVFRTgKK+W7qSA+IGzErW47ICM1RUU5Civlu6ogPiBsxK1uOyAjNUVFQQor5burID4gbGnDoW87ICM1RUVCCivlu6wgPiBsw7o7ICM1RUVDCivlu64gPiB5w61uZzsgIzVFRUUKK+W7ryA+IHhpxIFuOyAjNUVFRgor5buwID4gdMSrbmc7ICM1RUYwCivlu7EgPiB5xY1uZzsgIzVFRjEKK+W7siA+IGzDrTsgIzVFRjIKK+W7syA+IHTEq25nOyAjNUVGMwor5bu0ID4gecStbjsgIzVFRjQKK+W7tSA+IHjDum47ICM1RUY1Civlu7YgPiB5w6FuOyAjNUVGNgor5bu3ID4gdMOtbmc7ICM1RUY3Civlu7ggPiBkw607ICM1RUY4Civlu7kgPiBww7I7ICM1RUY5Civlu7ogPiBqacOgbjsgIzVFRkEKK+W7uyA+IGjDumk7ICM1RUZCCivlu7wgPiBuxINpOyAjNUVGQwor5bu9ID4gaMO6aTsgIzVFRkQKK+W7viA+IGfDsm5nOyAjNUVGRQor5bu/ID4gbmnDoG47ICM1RUZGCivlvIAgPiBrxIFpOyAjNUYwMAor5byBID4gYmnDoG47ICM1RjAxCivlvIIgPiB5w6w7ICM1RjAyCivlvIMgPiBxw6w7ICM1RjAzCivlvIQgPiBuw7JuZzsgIzVGMDQKK+W8hSA+IGbDqW47ICM1RjA1CivlvIYgPiBqxa07ICM1RjA2CivlvIcgPiB5xINuOyAjNUYwNwor5byIID4gecOsOyAjNUYwOAor5byJID4gesOgbmc7ICM1RjA5CivlvIogPiBiw6w7ICM1RjBBCivlvIsgPiB5w6w7ICM1RjBCCivlvIwgPiB5xKs7ICM1RjBDCivlvI0gPiDDqHI7ICM1RjBECivlvI4gPiBzxIFuOyAjNUYwRQor5byPID4gc2jDrDsgIzVGMEYKK+W8kCA+IMOocjsgIzVGMTAKK+W8kSA+IHNow6w7ICM1RjExCivlvJIgPiBzaMOsOyAjNUYxMgor5byTID4gZ8WNbmc7ICM1RjEzCivlvJQgPiBkacOgbzsgIzVGMTQKK+W8lSA+IHnErW47ICM1RjE1CivlvJYgPiBow7k7ICM1RjE2CivlvJcgPiBmw7o7ICM1RjE3CivlvJggPiBow7NuZzsgIzVGMTgKK+W8mSA+IHfFqzsgIzVGMTkKK+W8miA+IHTDumk7ICM1RjFBCivlvJsgPiBjaMOtOyAjNUYxQgor5bycID4gamnDoG5nOyAjNUYxQwor5bydID4gYsOgOyAjNUYxRAor5byeID4gc2jElW47ICM1RjFFCivlvJ8gPiBkw6w7ICM1RjFGCivlvKAgPiB6aMSBbmc7ICM1RjIwCivlvKEgPiBqdcOpOyAjNUYyMQor5byiID4gdMSBbzsgIzVGMjIKK+W8oyA+IGbFrTsgIzVGMjMKK+W8pCA+IGTErTsgIzVGMjQKK+W8pSA+IG3DrTsgIzVGMjUKK+W8piA+IHhpw6FuOyAjNUYyNgor5bynID4gaMO6OyAjNUYyNwor5byoID4gY2jEgW87ICM1RjI4CivlvKkgPiBuxa07ICM1RjI5CivlvKogPiBqw6xuZzsgIzVGMkEKK+W8qyA+IHpoxJVuOyAjNUYyQgor5bysID4gecOtOyAjNUYyQwor5bytID4gbcStOyAjNUYyRAor5byuID4gcXXEgW47ICM1RjJFCivlvK8gPiB3xIFuOyAjNUYyRgor5bywID4gc2jEgW87ICM1RjMwCivlvLEgPiByw7lvOyAjNUYzMQor5byyID4geHXEgW47ICM1RjMyCivlvLMgPiBqw6xuZzsgIzVGMzMKK+W8tCA+IGTFq247ICM1RjM0CivlvLUgPiB6aMSBbmc7ICM1RjM1CivlvLYgPiBqacOgbmc7ICM1RjM2CivlvLcgPiBxacOhbmc7ICM1RjM3CivlvLggPiBww6luZzsgIzVGMzgKK+W8uSA+IGTDoG47ICM1RjM5CivlvLogPiBxacOhbmc7ICM1RjNBCivlvLsgPiBiw6w7ICM1RjNCCivlvLwgPiBiw6w7ICM1RjNDCivlvL0gPiBzaMOoOyAjNUYzRAor5by+ID4gZMOgbjsgIzVGM0UKK+W8vyA+IGppxINuOyAjNUYzRgor5b2AID4gZ8OydTsgIzVGNDAKK+W9giA+IGbEgTsgIzVGNDIKK+W9gyA+IGLDrDsgIzVGNDMKK+W9hCA+IGvFjXU7ICM1RjQ0CivlvYYgPiBiacOoOyAjNUY0Ngor5b2HID4geGnEgW87ICM1RjQ3CivlvYggPiBkw6BuOyAjNUY0OAor5b2JID4ga8O5bzsgIzVGNDkKK+W9iiA+IHFpw6FuZzsgIzVGNEEKK+W9iyA+IGjDs25nOyAjNUY0Qgor5b2MID4gbcOtOyAjNUY0Qwor5b2NID4ga8O5bzsgIzVGNEQKK+W9jiA+IHfEgW47ICM1RjRFCivlvY8gPiBqdcOpOyAjNUY0Rgor5b2QID4gasOsOyAjNUY1MAor5b2RID4gasOsOyAjNUY1MQor5b2SID4gZ8WraTsgIzVGNTIKK+W9kyA+IGTEgW5nOyAjNUY1Mwor5b2UID4gbMO5OyAjNUY1NAor5b2VID4gbMO5OyAjNUY1NQor5b2WID4gdHXDoG47ICM1RjU2CivlvZcgPiBow7lpOyAjNUY1Nwor5b2YID4gemjDrDsgIzVGNTgKK+W9mSA+IGjDuWk7ICM1RjU5CivlvZogPiBow7lpOyAjNUY1QQor5b2bID4gecOtOyAjNUY1Qgor5b2cID4gecOtOyAjNUY1Qwor5b2dID4gecOtOyAjNUY1RAor5b2eID4gecOtOyAjNUY1RQor5b2fID4gaMO5bzsgIzVGNUYKK+W9oCA+IGjDuW87ICM1RjYwCivlvaEgPiBzaMSBbjsgIzVGNjEKK+W9oiA+IHjDrW5nOyAjNUY2Mgor5b2jID4gd8OpbjsgIzVGNjMKK+W9pCA+IHTDs25nOyAjNUY2NAor5b2lID4gecOgbjsgIzVGNjUKK+W9piA+IHnDoG47ICM1RjY2CivlvacgPiB5w7k7ICM1RjY3CivlvaggPiBjaMSrOyAjNUY2OAor5b2pID4gY8SDaTsgIzVGNjkKK+W9qiA+IGJpxIFvOyAjNUY2QQor5b2rID4gZGnEgW87ICM1RjZCCivlvawgPiBixKtuOyAjNUY2Qwor5b2tID4gcMOpbmc7ICM1RjZECivlva4gPiB5xY9uZzsgIzVGNkUKK+W9ryA+IHBpxIFvOyAjNUY2Rgor5b2wID4gemjEgW5nOyAjNUY3MAor5b2xID4gecStbmc7ICM1RjcxCivlvbIgPiBjaMSrOyAjNUY3Mgor5b2zID4gY2jDrDsgIzVGNzMKK+W9tCA+IHpow7pvOyAjNUY3NAor5b21ID4gdMWtbzsgIzVGNzUKK+W9tiA+IGrDrTsgIzVGNzYKK+W9tyA+IHDDoW5nOyAjNUY3Nwor5b24ID4gemjFjW5nOyAjNUY3OAor5b25ID4gecOsOyAjNUY3OQor5b26ID4gd8Ohbmc7ICM1RjdBCivlvbsgPiBjaMOoOyAjNUY3Qgor5b28ID4gYsStOyAjNUY3Qwor5b29ID4gY2jDrTsgIzVGN0QKK+W9viA+IGzErW5nOyAjNUY3RQor5b2/ID4gZsO6OyAjNUY3Rgor5b6AID4gd8SDbmc7ICM1RjgwCivlvoEgPiB6aMSTbmc7ICM1RjgxCivlvoIgPiBjw7o7ICM1RjgyCivlvoMgPiB3xINuZzsgIzVGODMKK+W+hCA+IGrDrG5nOyAjNUY4NAor5b6FID4gZMOgaTsgIzVGODUKK+W+hiA+IHjEqzsgIzVGODYKK+W+hyA+IHjDuW47ICM1Rjg3CivlvoggPiBoxJVuOyAjNUY4OAor5b6JID4gecOhbmc7ICM1Rjg5CivlvoogPiBodcOhaTsgIzVGOEEKK+W+iyA+IGzHnDsgIzVGOEIKK+W+jCA+IGjDsnU7ICM1RjhDCivlvo0gPiB3xIE7ICM1RjhECivlvo4gPiBjaMSVbmc7ICM1RjhFCivlvo8gPiB6aMOsOyAjNUY4Rgor5b6QID4geMO6OyAjNUY5MAor5b6RID4gasOsbmc7ICM1RjkxCivlvpIgPiB0w7o7ICM1RjkyCivlvpMgPiBjw7NuZzsgIzVGOTMKK+W+lSA+IGzDoWk7ICM1Rjk1CivlvpYgPiBjw7NuZzsgIzVGOTYKK+W+lyA+IGTDqTsgIzVGOTcKK+W+mCA+IHDDoWk7ICM1Rjk4CivlvpkgPiB4xK07ICM1Rjk5CivlvpsgPiBxw6w7ICM1RjlCCivlvpwgPiBjaMOhbmc7ICM1RjlDCivlvp0gPiB6aMOsOyAjNUY5RAor5b6eID4gY8Ozbmc7ICM1RjlFCivlvp8gPiB6aMWNdTsgIzVGOUYKK+W+oCA+IGzDoWk7ICM1RkEwCivlvqEgPiB5w7k7ICM1RkExCivlvqIgPiB4acOoOyAjNUZBMgor5b6jID4gamnDqDsgIzVGQTMKK+W+pCA+IGppw6BuOyAjNUZBNAor5b6lID4gY2jDrTsgIzVGQTUKK+W+piA+IGppxIM7ICM1RkE2CivlvqcgPiBiacOgbjsgIzVGQTcKK+W+qCA+IGh1w6FuZzsgIzVGQTgKK+W+qSA+IGbDuTsgIzVGQTkKK+W+qiA+IHjDum47ICM1RkFBCivlvqsgPiB3xJVpOyAjNUZBQgor5b6sID4gcMOhbmc7ICM1RkFDCivlvq0gPiB5w6FvOyAjNUZBRAor5b6uID4gd8STaTsgIzVGQUUKK+W+ryA+IHjEqzsgIzVGQUYKK+W+sCA+IHpoxJNuZzsgIzVGQjAKK+W+sSA+IHBpw6BvOyAjNUZCMQor5b6yID4gY2jDrTsgIzVGQjIKK+W+syA+IGTDqTsgIzVGQjMKK+W+tCA+IHpoxJNuZzsgIzVGQjQKK+W+tSA+IHpoxJNuZzsgIzVGQjUKK+W+tiA+IGJpw6g7ICM1RkI2CivlvrcgPiBkw6k7ICM1RkI3CivlvrggPiBjaMWNbmc7ICM1RkI4CivlvrkgPiBjaMOoOyAjNUZCOQor5b66ID4gamnEg287ICM1RkJBCivlvrsgPiB3w6hpOyAjNUZCQgor5b68ID4gamnDoG87ICM1RkJDCivlvr0gPiBoxatpOyAjNUZCRAor5b6+ID4gbcOpaTsgIzVGQkUKK+W+vyA+IGzDsm5nOyAjNUZCRgor5b+AID4geGnEgW5nOyAjNUZDMAor5b+BID4gYsOgbzsgIzVGQzEKK+W/giA+IHHDujsgIzVGQzIKK+W/gyA+IHjEq247ICM1RkMzCivlv4QgPiBzaMO5JyAneMSrbicgJ3DDoW5nOyAjNUZDNAor5b+FID4gYsOsOyAjNUZDNQor5b+GID4gecOsOyAjNUZDNgor5b+HID4gbMOoOyAjNUZDNwor5b+IID4gcsOpbjsgIzVGQzgKK+W/iSA+IGTEgW87ICM1RkM5Civlv4ogPiBkw6xuZzsgIzVGQ0EKK+W/iyA+IGfEg2k7ICM1RkNCCivlv4wgPiBqw6w7ICM1RkNDCivlv40gPiByxJVuOyAjNUZDRAor5b+OID4gcsOpbjsgIzVGQ0UKK+W/jyA+IGNow6BuOyAjNUZDRgor5b+QID4gdMSDbjsgIzVGRDAKK+W/kSA+IHTDqDsgIzVGRDEKK+W/kiA+IHTDqDsgIzVGRDIKK+W/kyA+IGfEgW47ICM1RkQzCivlv5QgPiBxw6w7ICM1RkQ0Civlv5UgPiBzaMOsOyAjNUZENQor5b+WID4gY8WtbjsgIzVGRDYKK+W/lyA+IHpow6w7ICM1RkQ3Civlv5ggPiB3w6BuZzsgIzVGRDgKK+W/mSA+IG3DoW5nOyAjNUZEOQor5b+aID4geMSrOyAjNUZEQQor5b+bID4gZsOhbjsgIzVGREIKK+W/nCA+IHnEq25nOyAjNUZEQwor5b+dID4gdGnEg247ICM1RkRECivlv54gPiBtw61uOyAjNUZERQor5b+fID4gbcOtbjsgIzVGREYKK+W/oCA+IHpoxY1uZzsgIzVGRTAKK+W/oSA+IGNoxY1uZzsgIzVGRTEKK+W/oiA+IHfDuTsgIzVGRTIKK+W/oyA+IGrDrTsgIzVGRTMKK+W/pCA+IHfFrTsgIzVGRTQKK+W/pSA+IHjDrDsgIzVGRTUKK+W/piA+IHnDqDsgIzVGRTYKK+W/pyA+IHnFjXU7ICM1RkU3Civlv6ggPiB3w6BuOyAjNUZFOAor5b+pID4gY8WNbmc7ICM1RkU5Civlv6ogPiB6aMWNbmc7ICM1RkVBCivlv6sgPiBrdcOgaTsgIzVGRUIKK+W/rCA+IHnDuTsgIzVGRUMKK+W/rSA+IGJpw6BuOyAjNUZFRAor5b+uID4gemjDrDsgIzVGRUUKK+W/ryA+IHHDrTsgIzVGRUYKK+W/sCA+IGPDuWk7ICM1RkYwCivlv7EgPiBjaMOpbjsgIzVGRjEKK+W/siA+IHTDoGk7ICM1RkYyCivlv7MgPiB0w7puOyAjNUZGMwor5b+0ID4gcWnDoW47ICM1RkY0Civlv7UgPiBuacOgbjsgIzVGRjUKK+W/tiA+IGjDum47ICM1RkY2Civlv7cgPiB4xKtvbmc7ICM1RkY3Civlv7ggPiBuxK11OyAjNUZGOAor5b+5ID4gd8SDbmc7ICM1RkY5Civlv7ogPiB4acSBbjsgIzVGRkEKK+W/uyA+IHjEq247ICM1RkZCCivlv7wgPiBrxIFuZzsgIzVGRkMKK+W/vSA+IGjFqzsgIzVGRkQKK+W/viA+IGvDoGk7ICM1RkZFCivlv78gPiBmw6huOyAjNUZGRgor5oCAID4gaHXDoWk7ICM2MDAwCivmgIEgPiB0w6BpOyAjNjAwMQor5oCCID4gc8WPbmc7ICM2MDAyCivmgIMgPiB3xa07ICM2MDAzCivmgIQgPiDDsnU7ICM2MDA0CivmgIUgPiBjaMOgbmc7ICM2MDA1CivmgIYgPiBjaHXDoG5nOyAjNjAwNgor5oCHID4gasO5OyAjNjAwNwor5oCIID4gecOsOyAjNjAwOAor5oCJID4gYsSDbzsgIzYwMDkKK+aAiiA+IGNoxIFvOyAjNjAwQQor5oCLID4gbcOtbjsgIzYwMEIKK+aAjCA+IHDEk2k7ICM2MDBDCivmgI0gPiB6w7lvOyAjNjAwRAor5oCOID4gesSVbjsgIzYwMEUKK+aAjyA+IHnDoG5nOyAjNjAwRgor5oCQID4ga8OydTsgIzYwMTAKK+aAkSA+IGLDoG47ICM2MDExCivmgJIgPiBuw7k7ICM2MDEyCivmgJMgPiBuw6FvOyAjNjAxMwor5oCUID4gemjEk25nOyAjNjAxNAor5oCVID4gcMOgOyAjNjAxNQor5oCWID4gYsO5OyAjNjAxNgor5oCXID4gdGnEkzsgIzYwMTcKK+aAmCA+IGfDuTsgIzYwMTgKK+aAmSA+IGjDuTsgIzYwMTkKK+aAmiA+IGrDuTsgIzYwMUEKK+aAmyA+IGTDoTsgIzYwMUIKK+aAnCA+IGxpw6FuOyAjNjAxQwor5oCdID4gc8SrOyAjNjAxRAor5oCeID4gY2jFjXU7ICM2MDFFCivmgJ8gPiBkw6w7ICM2MDFGCivmgKAgPiBkw6BpOyAjNjAyMAor5oChID4gecOtOyAjNjAyMQor5oCiID4gdMO6OyAjNjAyMgor5oCjID4gecOzdTsgIzYwMjMKK+aApCA+IGbFqzsgIzYwMjQKK+aApSA+IGrDrTsgIzYwMjUKK+aApiA+IHDEk25nOyAjNjAyNgor5oCnID4geMOsbmc7ICM2MDI3CivmgKggPiB5dcOgbjsgIzYwMjgKK+aAqSA+IG7DrTsgIzYwMjkKK+aAqiA+IGd1w6BpOyAjNjAyQQor5oCrID4gZsO6OyAjNjAyQgor5oCsID4geMOsOyAjNjAyQwor5oCtID4gYsOsOyAjNjAyRAor5oCuID4gecWNdTsgIzYwMkUKK+aAryA+IHFpw6g7ICM2MDJGCivmgLAgPiB4dcOgbjsgIzYwMzAKK+aAsSA+IGPFjW5nOyAjNjAzMQor5oCyID4gYsStbmc7ICM2MDMyCivmgLMgPiBodcSDbmc7ICM2MDMzCivmgLQgPiB4w7k7ICM2MDM0CivmgLUgPiBjaMO5OyAjNjAzNQor5oC2ID4gcMSrOyAjNjAzNgor5oC3ID4geMSrOyAjNjAzNwor5oC4ID4geMSrOyAjNjAzOAor5oC5ID4gdMSBbjsgIzYwMzkKK+aAuyA+IHrFj25nOyAjNjAzQgor5oC8ID4gZMO5aTsgIzYwM0MKK+aAvyA+IHnDrDsgIzYwM0YKK+aBgCA+IGNoxK07ICM2MDQwCivmgYEgPiByw6huOyAjNjA0MQor5oGCID4geMO6bjsgIzYwNDIKK+aBgyA+IHNow6w7ICM2MDQzCivmgYQgPiB4w6w7ICM2MDQ0CivmgYUgPiBsxINvOyAjNjA0NQor5oGGID4gaMOpbmc7ICM2MDQ2CivmgYcgPiBrdcSBbmc7ICM2MDQ3CivmgYggPiBtw7o7ICM2MDQ4CivmgYkgPiB6aMStOyAjNjA0OQor5oGKID4geGnDqTsgIzYwNEEKK+aBiyA+IGxpw6BuOyAjNjA0Qgor5oGMID4gdGnEgW87ICM2MDRDCivmgY0gPiBodcSDbmc7ICM2MDRECivmgY4gPiBkacOpOyAjNjA0RQor5oGPID4gaMSDbzsgIzYwNEYKK+aBkCA+IGvFj25nOyAjNjA1MAor5oGRID4gZ8WtaTsgIzYwNTEKK+aBkiA+IGjDqW5nOyAjNjA1Mgor5oGTID4geMSrOyAjNjA1Mwor5oGUID4geGnDoG87ICM2MDU0CivmgZUgPiBzaMO5OyAjNjA1NQor5oGWID4gc8SrOyAjNjA1Ngor5oGXID4ga3XEgzsgIzYwNTcKK+aBmCA+IHHEq3U7ICM2MDU4CivmgZkgPiB5w6BuZzsgIzYwNTkKK+aBmiA+IGjDuWk7ICM2MDVBCivmgZsgPiBow7ppOyAjNjA1Qgor5oGcID4gY2jDrDsgIzYwNUMKK+aBnSA+IGppw6E7ICM2MDVECivmgZ4gPiB5w607ICM2MDVFCivmgZ8gPiB4xKtvbmc7ICM2MDVGCivmgaAgPiBndcOgaTsgIzYwNjAKK+aBoSA+IGzDrG47ICM2MDYxCivmgaIgPiBoxatpOyAjNjA2Mgor5oGjID4gesOsOyAjNjA2Mwor5oGkID4geMO5OyAjNjA2NAor5oGlID4gY2jErTsgIzYwNjUKK+aBpiA+IHhpw6BuZzsgIzYwNjYKK+aBpyA+IG7HnDsgIzYwNjcKK+aBqCA+IGjDqG47ICM2MDY4CivmgakgPiDEk247ICM2MDY5CivmgaogPiBrw6g7ICM2MDZBCivmgasgPiB0xY1uZzsgIzYwNkIKK+aBrCA+IHRpw6FuOyAjNjA2Qwor5oGtID4gZ8WNbmc7ICM2MDZECivmga4gPiBxdcOhbjsgIzYwNkUKK+aBryA+IHjEqzsgIzYwNkYKK+aBsCA+IHFpw6A7ICM2MDcwCivmgbEgPiB5dcOoOyAjNjA3MQor5oGyID4gcMSTbmc7ICM2MDcyCivmgbMgPiBrxJVuOyAjNjA3Mwor5oG0ID4gZMOpOyAjNjA3NAor5oG1ID4gaMO5aTsgIzYwNzUKK+aBtiA+IMOoOyAjNjA3Ngor5oG4ID4gdMOybmc7ICM2MDc4CivmgbkgPiB5w6BuOyAjNjA3OQor5oG6ID4ga8SDaTsgIzYwN0EKK+aBuyA+IGPDqDsgIzYwN0IKK+aBvCA+IG7Eg287ICM2MDdDCivmgb0gPiB5w7luOyAjNjA3RAor5oG+ID4gbcOhbmc7ICM2MDdFCivmgb8gPiB5xY9uZzsgIzYwN0YKK+aCgCA+IHnFj25nOyAjNjA4MAor5oKBID4geXXEgW47ICM2MDgxCivmgoIgPiBwxKs7ICM2MDgyCivmgoMgPiBrxa1uOyAjNjA4Mwor5oKEID4gcWnEg287ICM2MDg0CivmgoUgPiB5dcOoOyAjNjA4NQor5oKGID4gecO5OyAjNjA4Ngor5oKHID4gecO5OyAjNjA4Nwor5oKIID4gamnDqDsgIzYwODgKK+aCiSA+IHjEqzsgIzYwODkKK+aCiiA+IHpow6k7ICM2MDhBCivmgosgPiBsw6xuOyAjNjA4Qgor5oKMID4gdMOsOyAjNjA4Qwor5oKNID4gaMOgbjsgIzYwOEQKK+aCjiA+IGjDoG87ICM2MDhFCivmgo8gPiBxacOoOyAjNjA4Rgor5oKQID4gdMOsOyAjNjA5MAor5oKRID4gYsO5OyAjNjA5MQor5oKSID4gecOsOyAjNjA5Mgor5oKTID4gcWnDoG47ICM2MDkzCivmgpQgPiBoxa1pOyAjNjA5NAor5oKVID4geMSrOyAjNjA5NQor5oKWID4gYsOoaTsgIzYwOTYKK+aClyA+IG3DoW47ICM2MDk3CivmgpggPiB5xKs7ICM2MDk4CivmgpkgPiBoxJNuZzsgIzYwOTkKK+aCmiA+IHPFj25nOyAjNjA5QQor5oKbID4gcXXEgW47ICM2MDlCCivmgpwgPiBjaMSVbmc7ICM2MDlDCivmgp0gPiBoxatpOyAjNjA5RAor5oKeID4gd8O5OyAjNjA5RQor5oKfID4gd8O5OyAjNjA5Rgor5oKgID4gecWNdTsgIzYwQTAKK+aCoSA+IGzDrTsgIzYwQTEKK+aCoiA+IGxpw6BuZzsgIzYwQTIKK+aCoyA+IGh1w6BuOyAjNjBBMwor5oKkID4gY8WNbmc7ICM2MEE0CivmgqUgPiB5w6w7ICM2MEE1CivmgqYgPiB5dcOoOyAjNjBBNgor5oKnID4gbMOsOyAjNjBBNwor5oKoID4gbsOtbjsgIzYwQTgKK+aCqSA+IG7Eg287ICM2MEE5CivmgqogPiDDqDsgIzYwQUEKK+aCqyA+IHF1w6g7ICM2MEFCCivmgqwgPiB4dcOhbjsgIzYwQUMKK+aCrSA+IHFpxIFuOyAjNjBBRAor5oKuID4gd8O5OyAjNjBBRQor5oKvID4gbcStbjsgIzYwQUYKK+aCsCA+IGPDs25nOyAjNjBCMAor5oKxID4gZsSVaTsgIzYwQjEKK+aCsiA+IGLEk2k7ICM2MEIyCivmgrMgPiBkw7pvOyAjNjBCMwor5oK0ID4gY8O5aTsgIzYwQjQKK+aCtSA+IGNow6BuZzsgIzYwQjUKK+aCtiA+IG3DqG47ICM2MEI2CivmgrcgPiBsw6w7ICM2MEI3CivmgrggPiBqw6w7ICM2MEI4CivmgrkgPiBndcOgbjsgIzYwQjkKK+aCuiA+IGd1w6BuOyAjNjBCQQor5oK7ID4geMOsbmc7ICM2MEJCCivmgrwgPiBkw6BvOyAjNjBCQwor5oK9ID4gccSrOyAjNjBCRAor5oK+ID4ga8WNbmc7ICM2MEJFCivmgr8gPiB0acSDbjsgIzYwQkYKK+aDgCA+IGzDum47ICM2MEMwCivmg4EgPiB4xKs7ICM2MEMxCivmg4IgPiBrxINuOyAjNjBDMgor5oODID4ga8WrbjsgIzYwQzMKK+aDhCA+IG7DrDsgIzYwQzQKK+aDhSA+IHHDrW5nOyAjNjBDNQor5oOGID4gY2jDs3U7ICM2MEM2Civmg4cgPiBkxatuOyAjNjBDNwor5oOIID4gZ8WtbzsgIzYwQzgKK+aDiSA+IGNoxIFuOyAjNjBDOQor5oOKID4gbGnDoW5nOyAjNjBDQQor5oOLID4gd8SDbjsgIzYwQ0IKK+aDjCA+IHl1xIFuOyAjNjBDQwor5oONID4gasSrbjsgIzYwQ0QKK+aDjiA+IGrDrDsgIzYwQ0UKK+aDjyA+IGzDrW47ICM2MENGCivmg5AgPiB5w7k7ICM2MEQwCivmg5EgPiBow7lvOyAjNjBEMQor5oOSID4gaMOpOyAjNjBEMgor5oOTID4gcXXDoW47ICM2MEQzCivmg5QgPiB0w6FuOyAjNjBENAor5oOVID4gdMOsOyAjNjBENQor5oOWID4gdMOsOyAjNjBENgor5oOXID4gbmnEkzsgIzYwRDcKK+aDmCA+IHfEg25nOyAjNjBEOAor5oOZID4gY2jDuW87ICM2MEQ5Civmg5ogPiBixas7ICM2MERBCivmg5sgPiBoxatuOyAjNjBEQgor5oOcID4geMSrOyAjNjBEQwor5oOdID4gdMSDbmc7ICM2MERECivmg54gPiB4xKtuOyAjNjBERQor5oOfID4gd8OpaTsgIzYwREYKK+aDoCA+IGjDuWk7ICM2MEUwCivmg6EgPiDDqDsgIzYwRTEKK+aDoiA+IHLFrWk7ICM2MEUyCivmg6MgPiB6xY9uZzsgIzYwRTMKK+aDpCA+IGppxIFuOyAjNjBFNAor5oOlID4gecWPbmc7ICM2MEU1Civmg6YgPiBkacOgbjsgIzYwRTYKK+aDpyA+IGrDuTsgIzYwRTcKK+aDqCA+IGPEg247ICM2MEU4Civmg6kgPiBjaMOpbmc7ICM2MEU5Civmg6ogPiBkw6k7ICM2MEVBCivmg6sgPiBiw6hpOyAjNjBFQgor5oOsID4gcWnDqDsgIzYwRUMKK+aDrSA+IGPDoW47ICM2MEVECivmg64gPiBkw6BuOyAjNjBFRQor5oOvID4gZ3XDoG47ICM2MEVGCivmg7AgPiBkw7lvOyAjNjBGMAor5oOxID4gbsSDbzsgIzYwRjEKK+aDsiA+IHnDuW47ICM2MEYyCivmg7MgPiB4acSDbmc7ICM2MEYzCivmg7QgPiB6aMO5aTsgIzYwRjQKK+aDtSA+IGRpw6g7ICM2MEY1Civmg7YgPiBodcOhbmc7ICM2MEY2Civmg7cgPiBjaMWtbjsgIzYwRjcKK+aDuCA+IHHDrW9uZzsgIzYwRjgKK+aDuSA+IHLElTsgIzYwRjkKK+aDuiA+IHjEq25nOyAjNjBGQQor5oO7ID4gY8OoOyAjNjBGQgor5oO8ID4gYmnEg247ICM2MEZDCivmg70gPiBoxatuOyAjNjBGRAor5oO+ID4gesWNbmc7ICM2MEZFCivmg78gPiB0w607ICM2MEZGCivmhIAgPiBxacSDbzsgIzYxMDAKK+aEgSA+IGNow7N1OyAjNjEwMQor5oSCID4gYsOoaTsgIzYxMDIKK+aEgyA+IHh1xIFuOyAjNjEwMwor5oSEID4gd8STaTsgIzYxMDQKK+aEhSA+IGfDqTsgIzYxMDUKK+aEhiA+IHFpxIFuOyAjNjEwNgor5oSHID4gd8SVaTsgIzYxMDcKK+aEiCA+IHnDuTsgIzYxMDgKK+aEiSA+IHnDujsgIzYxMDkKK+aEiiA+IGLDrDsgIzYxMEEKK+aEiyA+IHh1xIFuOyAjNjEwQgor5oSMID4gaHXDoG47ICM2MTBDCivmhI0gPiBtxK1uOyAjNjEwRAor5oSOID4gYsOsOyAjNjEwRQor5oSPID4gecOsOyAjNjEwRgor5oSQID4gbWnEg247ICM2MTEwCivmhJEgPiB5xY9uZzsgIzYxMTEKK+aEkiA+IGvDoGk7ICM2MTEyCivmhJMgPiBkw6BuZzsgIzYxMTMKK+aElCA+IHnEq247ICM2MTE0CivmhJUgPiDDqDsgIzYxMTUKK+aEliA+IGNow6luOyAjNjExNgor5oSXID4gbcOydTsgIzYxMTcKK+aEmCA+IGvDqDsgIzYxMTgKK+aEmSA+IGvDqDsgIzYxMTkKK+aEmiA+IHnDujsgIzYxMUEKK+aEmyA+IMOgaTsgIzYxMUIKK+aEnCA+IHFpw6g7ICM2MTFDCivmhJ0gPiB5xINuOyAjNjExRAor5oSeID4gbsO5bzsgIzYxMUUKK+aEnyA+IGfEg247ICM2MTFGCivmhKAgPiB5w7luOyAjNjEyMAor5oShID4gesWPbmc7ICM2MTIxCivmhKIgPiBzxIFpOyAjNjEyMgor5oSjID4gbMOpbmc7ICM2MTIzCivmhKQgPiBmw6huOyAjNjEyNAor5oSmID4ga8O5aTsgIzYxMjYKK+aEpyA+IGvDuWk7ICM2MTI3CivmhKggPiBxdcOoOyAjNjEyOAor5oSpID4gZ8WNbmc7ICM2MTI5CivmhKogPiB5w7puOyAjNjEyQQor5oSrID4gc8O5OyAjNjEyQgor5oSsID4gc8O5OyAjNjEyQwor5oStID4gccOtOyAjNjEyRAor5oSuID4gecOhbzsgIzYxMkUKK+aEryA+IHPFj25nOyAjNjEyRgor5oSwID4gaHXEg25nOyAjNjEzMAor5oSxID4gasOtOyAjNjEzMQor5oSyID4gZ8WtOyAjNjEzMgor5oSzID4gasO5OyAjNjEzMwor5oS0ID4gY2h1w6BuZzsgIzYxMzQKK+aEtSA+IG7DrDsgIzYxMzUKK+aEtiA+IHhpw6k7ICM2MTM2CivmhLcgPiBrxINpOyAjNjEzNwor5oS4ID4gemjElW5nOyAjNjEzOAor5oS5ID4gecWPbmc7ICM2MTM5CivmhLogPiBjxINvOyAjNjEzQQor5oS7ID4gc8O5bjsgIzYxM0IKK+aEvCA+IHNow6huOyAjNjEzQwor5oS9ID4gYsOzOyAjNjEzRAor5oS+ID4ga8OgaTsgIzYxM0UKK+aEvyA+IHl1w6BuOyAjNjEzRgor5oWAID4geGnDqTsgIzYxNDAKK+aFgSA+IGjDuW47ICM2MTQxCivmhYIgPiB5xY9uZzsgIzYxNDIKK+aFgyA+IHnEg25nOyAjNjE0Mwor5oWEID4gbMOsOyAjNjE0NAor5oWFID4gc8SBbzsgIzYxNDUKK+aFhiA+IHTEgW87ICM2MTQ2CivmhYcgPiB5xKtuOyAjNjE0Nwor5oWIID4gY8OtOyAjNjE0OAor5oWJID4geMO5OyAjNjE0OQor5oWKID4gcWnDoG47ICM2MTRBCivmhYsgPiB0w6BpOyAjNjE0Qgor5oWMID4gaHXEgW5nOyAjNjE0Qwor5oWNID4gecO5bjsgIzYxNEQKK+aFjiA+IHNow6huOyAjNjE0RQor5oWPID4gbcStbmc7ICM2MTRGCivmhZEgPiBzaMOoOyAjNjE1MQor5oWSID4gY8Ozbmc7ICM2MTUyCivmhZMgPiBwacOgbzsgIzYxNTMKK+aFlCA+IG3DsjsgIzYxNTQKK+aFlSA+IG3DuTsgIzYxNTUKK+aFliA+IGfDum87ICM2MTU2CivmhZcgPiBjaMOsOyAjNjE1Nwor5oWYID4gY8SDbjsgIzYxNTgKK+aFmSA+IGPDoW47ICM2MTU5CivmhZogPiBjw6FuOyAjNjE1QQor5oWbID4gY8O6aTsgIzYxNUIKK+aFnCA+IG3ErW47ICM2MTVDCivmhZ0gPiB0w6g7ICM2MTVECivmhZ4gPiB6aMSBbmc7ICM2MTVFCivmhZ8gPiB0w7JuZzsgIzYxNUYKK+aFoCA+IMOgbzsgIzYxNjAKK+aFoSA+IHNodcSDbmc7ICM2MTYxCivmhaIgPiBtw6BuOyAjNjE2Mgor5oWjID4gZ3XDoG47ICM2MTYzCivmhaQgPiBxdcOoOyAjNjE2NAor5oWlID4gesOgbzsgIzYxNjUKK+aFpiA+IGrDrHU7ICM2MTY2CivmhacgPiBow7lpOyAjNjE2Nwor5oWoID4ga8SDaTsgIzYxNjgKK+aFqSA+IGxpw6FuOyAjNjE2OQor5oWqID4gw7J1OyAjNjE2QQor5oWrID4gc8WPbmc7ICM2MTZCCivmhawgPiBqxK1uOyAjNjE2Qwor5oWtID4gecOsbjsgIzYxNkQKK+aFriA+IGzHnDsgIzYxNkUKK+aFryA+IHNoxIFuZzsgIzYxNkYKK+aFsCA+IHfDqGk7ICM2MTcwCivmhbEgPiB0dcOhbjsgIzYxNzEKK+aFsiA+IG3DoW47ICM2MTcyCivmhbMgPiBxacSBbjsgIzYxNzMKK+aFtCA+IHNow6g7ICM2MTc0CivmhbUgPiB5xY1uZzsgIzYxNzUKK+aFtiA+IHHDrG5nOyAjNjE3Ngor5oW3ID4ga8SBbmc7ICM2MTc3CivmhbggPiBkw6w7ICM2MTc4CivmhbkgPiB6aMOtOyAjNjE3OQor5oW6ID4gbMOzdTsgIzYxN0EKK+aFuyA+IGp1w6BuOyAjNjE3Qgor5oW8ID4gccSrOyAjNjE3Qwor5oW9ID4gccSrOyAjNjE3RAor5oW+ID4gecO5OyAjNjE3RQor5oW/ID4gcMOtbmc7ICM2MTdGCivmhoAgPiBsacOhbzsgIzYxODAKK+aGgSA+IGPFjW5nOyAjNjE4MQor5oaCID4gecWNdTsgIzYxODIKK+aGgyA+IGNoxY1uZzsgIzYxODMKK+aGhCA+IHpow6w7ICM2MTg0CivmhoUgPiB0w7JuZzsgIzYxODUKK+aGhiA+IGNoxJNuZzsgIzYxODYKK+aGhyA+IHHDrDsgIzYxODcKK+aGiCA+IHHFqzsgIzYxODgKK+aGiSA+IHDDqW5nOyAjNjE4OQor5oaKID4gYsOoaTsgIzYxOEEKK+aGiyA+IGJpxJM7ICM2MThCCivmhowgPiBjaMO6bjsgIzYxOEMKK+aGjSA+IGppxIFvOyAjNjE4RAor5oaOID4gesSTbmc7ICM2MThFCivmho8gPiBjaMOsOyAjNjE4Rgor5oaQID4gbGnDoW47ICM2MTkwCivmhpEgPiBww61uZzsgIzYxOTEKK+aGkiA+IGvDuWk7ICM2MTkyCivmhpMgPiBow7lpOyAjNjE5Mwor5oaUID4gcWnDoW87ICM2MTk0CivmhpUgPiBjaMOpbmc7ICM2MTk1CivmhpYgPiB5w6xuOyAjNjE5Ngor5oaXID4gecOsbjsgIzYxOTcKK+aGmCA+IHjErTsgIzYxOTgKK+aGmSA+IHjErTsgIzYxOTkKK+aGmiA+IGTDoG47ICM2MTlBCivmhpsgPiB0w6FuOyAjNjE5Qgor5oacID4gZMWtbzsgIzYxOUMKK+aGnSA+IGTDuWk7ICM2MTlECivmhp4gPiBkw7lpOyAjNjE5RQor5oafID4gc8O5OyAjNjE5Rgor5oagID4ganXDqTsgIzYxQTAKK+aGoSA+IGPDqDsgIzYxQTEKK+aGoiA+IHhpxIFvOyAjNjFBMgor5oajID4gZsOhbjsgIzYxQTMKK+aGpCA+IGbDqG47ICM2MUE0CivmhqUgPiBsw6FvOyAjNjFBNQor5oamID4gbMOgbzsgIzYxQTYKK+aGpyA+IGNoxY1uZzsgIzYxQTcKK+aGqCA+IGjEgW47ICM2MUE4CivmhqkgPiBxw6w7ICM2MUE5CivmhqogPiB4acOhbjsgIzYxQUEKK+aGqyA+IG3ErW47ICM2MUFCCivmhqwgPiBqxK1uZzsgIzYxQUMKK+aGrSA+IGxpxINvOyAjNjFBRAor5oauID4gd8WtOyAjNjFBRQor5oavID4gY8SDbjsgIzYxQUYKK+aGsCA+IGp1w6k7ICM2MUIwCivmhrEgPiBjw7k7ICM2MUIxCivmhrIgPiB4acOgbjsgIzYxQjIKK+aGsyA+IHTEg247ICM2MUIzCivmhrQgPiBzaMOpbmc7ICM2MUI0CivmhrUgPiBwxKs7ICM2MUI1CivmhrYgPiB5w6w7ICM2MUI2CivmhrcgPiBjaMWtOyAjNjFCNwor5oa4ID4geGnEgW47ICM2MUI4CivmhrkgPiBuw6FvOyAjNjFCOQor5oa6ID4gZMOgbjsgIzYxQkEKK+aGuyA+IHTEg247ICM2MUJCCivmhrwgPiBqxK1uZzsgIzYxQkMKK+aGvSA+IHPFjW5nOyAjNjFCRAor5oa+ID4gaMOgbjsgIzYxQkUKK+aGvyA+IGppxIFvOyAjNjFCRgor5oeAID4gd8OgaTsgIzYxQzAKK+aHgSA+IGh1w6FuOyAjNjFDMQor5oeCID4gZMWPbmc7ICM2MUMyCivmh4MgPiBxw61uOyAjNjFDMwor5oeEID4gccOtbjsgIzYxQzQKK+aHhSA+IHHDujsgIzYxQzUKK+aHhiA+IGPEg287ICM2MUM2Civmh4cgPiBrxJVuOyAjNjFDNwor5oeIID4geGnDqDsgIzYxQzgKK+aHiSA+IHnDrG5nOyAjNjFDOQor5oeKID4gw6BvOyAjNjFDQQor5oeLID4gbcOgbzsgIzYxQ0IKK+aHjCA+IHnDrDsgIzYxQ0MKK+aHjSA+IGzErW47ICM2MUNECivmh44gPiBzw6g7ICM2MUNFCivmh48gPiBqw7luOyAjNjFDRgor5oeQID4gaHXDoWk7ICM2MUQwCivmh5EgPiBtw6huOyAjNjFEMQor5oeSID4gbMSDbjsgIzYxRDIKK+aHkyA+IMOgaTsgIzYxRDMKK+aHlCA+IGzErW47ICM2MUQ0Civmh5UgPiB5xIFuOyAjNjFENQor5oeWID4gZ3XEgTsgIzYxRDYKK+aHlyA+IHhpw6A7ICM2MUQ3Civmh5ggPiBjaMOsOyAjNjFEOAor5oeZID4gecWtOyAjNjFEOQor5oeaID4gecOsbjsgIzYxREEKK+aHmyA+IGTEgWk7ICM2MURCCivmh5wgPiBtw6huZzsgIzYxREMKK+aHnSA+IMOgaTsgIzYxREQKK+aHniA+IG3DqW5nOyAjNjFERQor5oefID4gZMO5aTsgIzYxREYKK+aHoCA+IHHDrTsgIzYxRTAKK+aHoSA+IG3FjzsgIzYxRTEKK+aHoiA+IGzDoW47ICM2MUUyCivmh6MgPiBtw6huOyAjNjFFMwor5oekID4gY2jDs3U7ICM2MUU0Civmh6UgPiB6aMOsOyAjNjFFNQor5oemID4gbsO5bzsgIzYxRTYKK+aHpyA+IG7DuW87ICM2MUU3Civmh6ggPiB5xIFuOyAjNjFFOAor5oepID4gecSDbmc7ICM2MUU5Civmh6ogPiBiw7M7ICM2MUVBCivmh6sgPiB6aMOtOyAjNjFFQgor5oesID4ga3XDoG5nOyAjNjFFQwor5oetID4ga3XDoG5nOyAjNjFFRAor5oeuID4gecWPdTsgIzYxRUUKK+aHryA+IGbFqzsgIzYxRUYKK+aHsCA+IGzDrXU7ICM2MUYwCivmh7EgPiBtacOoOyAjNjFGMQor5oeyID4gY2jDqW5nOyAjNjFGMgor5oe0ID4gY2jDoG47ICM2MUY0Civmh7UgPiBtw6luZzsgIzYxRjUKK+aHtiA+IGzEg247ICM2MUY2Civmh7cgPiBodcOhaTsgIzYxRjcKK+aHuCA+IHh1w6FuOyAjNjFGOAor5oe5ID4gcsOgbmc7ICM2MUY5Civmh7ogPiBjaMOgbjsgIzYxRkEKK+aHuyA+IGrDrDsgIzYxRkIKK+aHvCA+IGrDuTsgIzYxRkMKK+aHvSA+IGh1xIFuOyAjNjFGRAor5oe+ID4gc2jDqDsgIzYxRkUKK+aHvyA+IHnDrDsgIzYxRkYKK+aIgCA+IGxpw6BuOyAjNjIwMAor5oiBID4gbsSDbjsgIzYyMDEKK+aIgiA+IG3DrTsgIzYyMDIKK+aIgyA+IHTEg25nOyAjNjIwMwor5oiEID4ganXDqTsgIzYyMDQKK+aIhSA+IGfDoG5nOyAjNjIwNQor5oiGID4gZ8Ogbmc7ICM2MjA2CivmiIcgPiBnw6BuZzsgIzYyMDcKK+aIiCA+IGfEkzsgIzYyMDgKK+aIiSA+IHl1w6g7ICM2MjA5CivmiIogPiB3w7k7ICM2MjBBCivmiIsgPiBqacSBbjsgIzYyMEIKK+aIjCA+IHjFqzsgIzYyMEMKK+aIjSA+IHNow7k7ICM2MjBECivmiI4gPiByw7NuZzsgIzYyMEUKK+aIjyA+IHjDrDsgIzYyMEYKK+aIkCA+IGNow6luZzsgIzYyMTAKK+aIkSA+IHfFjzsgIzYyMTEKK+aIkiA+IGppw6g7ICM2MjEyCivmiJMgPiBnxJM7ICM2MjEzCivmiJQgPiBqacSBbjsgIzYyMTQKK+aIlSA+IHFpxIFuZzsgIzYyMTUKK+aIliA+IGjDuW87ICM2MjE2CivmiJcgPiBxacSBbmc7ICM2MjE3CivmiJggPiB6aMOgbjsgIzYyMTgKK+aImSA+IGTDsm5nOyAjNjIxOQor5oiaID4gccSrOyAjNjIxQQor5oibID4gamnDoTsgIzYyMUIKK+aInCA+IGRpw6k7ICM2MjFDCivmiJ0gPiB6w6lpOyAjNjIxRAor5oieID4gamnDoTsgIzYyMUUKK+aInyA+IGrErTsgIzYyMUYKK+aIoCA+IHNow6w7ICM2MjIwCivmiKEgPiBrxIFuOyAjNjIyMQor5oiiID4gasOtOyAjNjIyMgor5oijID4ga8O6aTsgIzYyMjMKK+aIpCA+IGfDoGk7ICM2MjI0CivmiKUgPiBkxJVuZzsgIzYyMjUKK+aIpiA+IHpow6BuOyAjNjIyNgor5oinID4gY2h1xIFuZzsgIzYyMjcKK+aIqCA+IGfEkzsgIzYyMjgKK+aIqSA+IGppxINuOyAjNjIyOQor5oiqID4gamnDqTsgIzYyMkEKK+aIqyA+IHnDuTsgIzYyMkIKK+aIrCA+IGppxINuOyAjNjIyQwor5oitID4gecSDbjsgIzYyMkQKK+aIriA+IGzDuTsgIzYyMkUKK+aIryA+IHjDrDsgIzYyMkYKK+aIsCA+IHpow6BuOyAjNjIzMAor5oixID4geMOsOyAjNjIzMQor5oiyID4geMOsOyAjNjIzMgor5oizID4gY2jFq287ICM2MjMzCivmiLQgPiBkw6BpOyAjNjIzNAor5oi1ID4gccO6OyAjNjIzNQor5oi2ID4gaMO5OyAjNjIzNgor5oi3ID4gaMO5OyAjNjIzNwor5oi4ID4gaMO5OyAjNjIzOAor5oi5ID4gw6g7ICM2MjM5CivmiLogPiBzaMOsOyAjNjIzQQor5oi7ID4gbMOsOyAjNjIzQgor5oi8ID4gbcSDbzsgIzYyM0MKK+aIvSA+IGjDuTsgIzYyM0QKK+aIviA+IGzDrDsgIzYyM0UKK+aIvyA+IGbDoW5nOyAjNjIzRgor5omAID4gc8WtbzsgIzYyNDAKK+aJgSA+IGJpxINuOyAjNjI0MQor5omCID4gZGnDoG47ICM2MjQyCivmiYMgPiBqxKtvbmc7ICM2MjQzCivmiYQgPiBzaMSDbmc7ICM2MjQ0CivmiYUgPiB5w607ICM2MjQ1CivmiYYgPiB5xK07ICM2MjQ2CivmiYcgPiBzaMOgbjsgIzYyNDcKK+aJiCA+IGjDuTsgIzYyNDgKK+aJiSA+IGbEk2k7ICM2MjQ5CivmiYogPiB5xINuOyAjNjI0QQor5omLID4gc2jFj3U7ICM2MjRCCivmiYwgPiB0zIQnICdzaMWPdScgJ3DDoW5nOyAjNjI0Qwor5omNID4gY8OhaTsgIzYyNEQKK+aJjiA+IHpoxIE7ICM2MjRFCivmiY8gPiBxw611OyAjNjI0Rgor5omQID4gbMOoOyAjNjI1MAor5omRID4gYsWrOyAjNjI1MQor5omSID4gYsSBOyAjNjI1Mgor5omTID4gZMSDOyAjNjI1Mwor5omUID4gcsSTbmc7ICM2MjU0CivmiZUgPiBmw7o7ICM2MjU1CivmiZcgPiB6w6BpOyAjNjI1Nwor5omYID4gdMWrbzsgIzYyNTgKK+aJmSA+IHpow6BuZzsgIzYyNTkKK+aJmiA+IGRpxIFvOyAjNjI1QQor5ombID4ga8Ohbmc7ICM2MjVCCivmiZwgPiB5xas7ICM2MjVDCivmiZ0gPiBrxas7ICM2MjVECivmiZ4gPiBow6BuOyAjNjI1RQor5omfID4gc2jEk247ICM2MjVGCivmiaAgPiBjaMSBOyAjNjI2MAor5omhID4gecStOyAjNjI2MQor5omiID4gZ8WtOyAjNjI2Mgor5omjID4ga8OydTsgIzYyNjMKK+aJpCA+IHfDuTsgIzYyNjQKK+aJpSA+IHTFq287ICM2MjY1CivmiaYgPiBxacSBbjsgIzYyNjYKK+aJpyA+IHpow607ICM2MjY3CivmiaggPiByw6huOyAjNjI2OAor5ompID4ga8O5bzsgIzYyNjkKK+aJqiA+IG3DqW47ICM2MjZBCivmiasgPiBzxINvOyAjNjI2Qgor5omsID4gecOhbmc7ICM2MjZDCivmia0gPiBuxK11OyAjNjI2RAor5omuID4gYsOgbjsgIzYyNkUKK+aJryA+IGNoxJU7ICM2MjZGCivmibAgPiByxINvOyAjNjI3MAor5omxID4geMSrOyAjNjI3MQor5omyID4gcWnDoW47ICM2MjcyCivmibMgPiBixIFuOyAjNjI3Mwor5om0ID4gamnDoTsgIzYyNzQKK+aJtSA+IHnDujsgIzYyNzUKK+aJtiA+IGbDujsgIzYyNzYKK+aJtyA+IMOgbzsgIzYyNzcKK+aJuCA+IHjEqzsgIzYyNzgKK+aJuSA+IHDEqzsgIzYyNzkKK+aJuiA+IHpoxK07ICM2MjdBCivmibsgPiB6w6w7ICM2MjdCCivmibwgPiDDqDsgIzYyN0MKK+aJvSA+IGTDuW47ICM2MjdECivmib4gPiB6aMSDbzsgIzYyN0UKK+aJvyA+IGNow6luZzsgIzYyN0YKK+aKgCA+IGrDrDsgIzYyODAKK+aKgSA+IHnEg247ICM2MjgxCivmioIgPiBrdcOhbmc7ICM2MjgyCivmioMgPiBiacOgbjsgIzYyODMKK+aKhCA+IGNoxIFvOyAjNjI4NAor5oqFID4gasWrOyAjNjI4NQor5oqGID4gd8OobjsgIzYyODYKK+aKhyA+IGjDujsgIzYyODcKK+aKiCA+IHl1w6g7ICM2Mjg4CivmiokgPiBqdcOpOyAjNjI4OQor5oqKID4gYsSDOyAjNjI4QQor5oqLID4gccOsbjsgIzYyOEIKK+aKjCA+IHpoxJVuOyAjNjI4Qwor5oqNID4gemjElW5nOyAjNjI4RAor5oqOID4gecWtbjsgIzYyOEUKK+aKjyA+IHfDoW47ICM2MjhGCivmipAgPiBuw7k7ICM2MjkwCivmipEgPiB5w6w7ICM2MjkxCivmipIgPiBzaMWrOyAjNjI5Mgor5oqTID4gemh1xIE7ICM2MjkzCivmipQgPiBww7N1OyAjNjI5NAor5oqVID4gdMOzdTsgIzYyOTUKK+aKliA+IGTFj3U7ICM2Mjk2CivmipcgPiBrw6BuZzsgIzYyOTcKK+aKmCA+IHpow6k7ICM2Mjk4CivmipkgPiBww7N1OyAjNjI5OQor5oqaID4gZsWtOyAjNjI5QQor5oqbID4gcMSBbzsgIzYyOUIKK+aKnCA+IGLDoTsgIzYyOUMKK+aKnSA+IMSDbzsgIzYyOUQKK+aKniA+IHrDqTsgIzYyOUUKK+aKnyA+IHR1w6FuOyAjNjI5Rgor5oqgID4ga8WNdTsgIzYyQTAKK+aKoSA+IGzDum47ICM2MkExCivmiqIgPiBxacSDbmc7ICM2MkEyCivmiqQgPiBow7k7ICM2MkE0CivmiqUgPiBiw6BvOyAjNjJBNQor5oqmID4gYsStbmc7ICM2MkE2CivmiqcgPiB6aMStOyAjNjJBNwor5oqoID4gcMSTbmc7ICM2MkE4CivmiqkgPiB0xIFuOyAjNjJBOQor5oqqID4gcMWrOyAjNjJBQQor5oqrID4gcMSrOyAjNjJBQgor5oqsID4gdMOhaTsgIzYyQUMKK+aKrSA+IHnEg287ICM2MkFECivmiq4gPiB6aMSVbjsgIzYyQUUKK+aKryA+IHpoxIE7ICM2MkFGCivmirAgPiB5xINuZzsgIzYyQjAKK+aKsSA+IGLDoG87ICM2MkIxCivmirIgPiBoxJM7ICM2MkIyCivmirMgPiBuxK07ICM2MkIzCivmirQgPiB5w6w7ICM2MkI0CivmirUgPiBkxK07ICM2MkI1CivmirYgPiBjaMOsOyAjNjJCNgor5oq3ID4gcMSrOyAjNjJCNwor5oq4ID4gesSBOyAjNjJCOAor5oq5ID4gbcWPOyAjNjJCOQor5oq6ID4gbcWPOyAjNjJCQQor5oq7ID4gc2jDqG47ICM2MkJCCivmirwgPiB5xIE7ICM2MkJDCivmir0gPiBjaMWNdTsgIzYyQkQKK+aKviA+IHHFqzsgIzYyQkUKK+aKvyA+IG3ErW47ICM2MkJGCivmi4AgPiBjaMO5OyAjNjJDMAor5ouBID4gamnEgTsgIzYyQzEKK+aLgiA+IGbDujsgIzYyQzIKK+aLgyA+IHpoxINuOyAjNjJDMwor5ouEID4gemjFrTsgIzYyQzQKK+aLhSA+IGTDoG47ICM2MkM1Civmi4YgPiBjaMSBaTsgIzYyQzYKK+aLhyA+IG3FrTsgIzYyQzcKK+aLiCA+IG5pw6FuOyAjNjJDOAor5ouJID4gbMSBOyAjNjJDOQor5ouKID4gZsWtOyAjNjJDQQor5ouLID4gcMSBbzsgIzYyQ0IKK+aLjCA+IGLDoG47ICM2MkNDCivmi40gPiBwxIFpOyAjNjJDRAor5ouOID4gbMSrbmc7ICM2MkNFCivmi48gPiBuw6E7ICM2MkNGCivmi5AgPiBndcSDaTsgIzYyRDAKK+aLkSA+IHFpw6FuOyAjNjJEMQor5ouSID4gasO5OyAjNjJEMgor5ouTID4gdMO5bzsgIzYyRDMKK+aLlCA+IGLDoTsgIzYyRDQKK+aLlSA+IHTFq287ICM2MkQ1Civmi5YgPiB0xatvOyAjNjJENgor5ouXID4gxINvOyAjNjJENwor5ouYID4gasWrOyAjNjJEOAor5ouZID4gemjDum87ICM2MkQ5Civmi5ogPiBww6BuOyAjNjJEQQor5oubID4gemjEgW87ICM2MkRCCivmi5wgPiBiw6BpOyAjNjJEQwor5oudID4gYsOgaTsgIzYyREQKK+aLniA+IGTErTsgIzYyREUKK+aLnyA+IG7ErTsgIzYyREYKK+aLoCA+IGrDuTsgIzYyRTAKK+aLoSA+IGvDuW87ICM2MkUxCivmi6IgPiBsxY9uZzsgIzYyRTIKK+aLoyA+IGppxINuOyAjNjJFMwor5oulID4gecWPbmc7ICM2MkU1Civmi6YgPiBsw6FuOyAjNjJFNgor5ounID4gbsOtbmc7ICM2MkU3Civmi6ggPiBixY07ICM2MkU4Civmi6kgPiB6w6k7ICM2MkU5Civmi6ogPiBxacSBbjsgIzYyRUEKK+aLqyA+IGjDqW47ICM2MkVCCivmi6wgPiBndcSBOyAjNjJFQwor5outID4gc2jDrDsgIzYyRUQKK+aLriA+IGppw6k7ICM2MkVFCivmi68gPiB6aMSVbmc7ICM2MkVGCivmi7AgPiBuxK1uOyAjNjJGMAor5ouxID4gZ8WPbmc7ICM2MkYxCivmi7IgPiBnxY9uZzsgIzYyRjIKK+aLsyA+IHF1w6FuOyAjNjJGMwor5ou0ID4gc2h1xIFuOyAjNjJGNAor5ou1ID4gY8O6bjsgIzYyRjUKK+aLtiA+IHrEg247ICM2MkY2Civmi7cgPiBrxINvOyAjNjJGNwor5ou4ID4gY2jErTsgIzYyRjgKK+aLuSA+IHhpw6k7ICM2MkY5Civmi7ogPiBjw6g7ICM2MkZBCivmi7sgPiBoxatpOyAjNjJGQgor5ou8ID4gcMSrbjsgIzYyRkMKK+aLvSA+IHpodcSBaTsgIzYyRkQKK+aLviA+IHNow607ICM2MkZFCivmi78gPiBuw6E7ICM2MkZGCivmjIAgPiBiw7I7ICM2MzAwCivmjIEgPiBjaMOtOyAjNjMwMQor5oyCID4gZ3XDoDsgIzYzMDIKK+aMgyA+IHpow6w7ICM2MzAzCivmjIQgPiBrw7lvOyAjNjMwNAor5oyFID4gZMWtbzsgIzYzMDUKK+aMhiA+IGTFrW87ICM2MzA2CivmjIcgPiB6aMStOyAjNjMwNwor5oyIID4gcWnDqDsgIzYzMDgKK+aMiSA+IMOgbjsgIzYzMDkKK+aMiiA+IG7Dsm5nOyAjNjMwQQor5oyLID4gemjDqG47ICM2MzBCCivmjIwgPiBnw6k7ICM2MzBDCivmjI0gPiBqacOgbzsgIzYzMEQKK+aMjiA+IGvFqzsgIzYzMEUKK+aMjyA+IGTDsm5nOyAjNjMwRgor5oyQID4gcsO6OyAjNjMxMAor5oyRID4gdGnEgW87ICM2MzExCivmjJIgPiBsacOoOyAjNjMxMgor5oyTID4gemjEgTsgIzYzMTMKK+aMlCA+IGzHmjsgIzYzMTQKK+aMlSA+IGRpw6k7ICM2MzE1CivmjJYgPiB3xIE7ICM2MzE2CivmjJcgPiBqdcOpOyAjNjMxNwor5oyZID4gasWtOyAjNjMxOQor5oyaID4gemjDrDsgIzYzMUEKK+aMmyA+IGx1w6FuOyAjNjMxQgor5oycID4gecOgOyAjNjMxQwor5oydID4gemh1xIE7ICM2MzFECivmjJ4gPiB0w6A7ICM2MzFFCivmjJ8gPiB4acOpOyAjNjMxRgor5oygID4gbsOhbzsgIzYzMjAKK+aMoSA+IGTEg25nOyAjNjMyMQor5oyiID4gamnEg287ICM2MzIyCivmjKMgPiB6aMSTbmc7ICM2MzIzCivmjKQgPiBqxK07ICM2MzI0CivmjKUgPiBoxatpOyAjNjMyNQor5oymID4geMO6bjsgIzYzMjYKK+aMqCA+IMSBaTsgIzYzMjgKK+aMqSA+IHTFq287ICM2MzI5CivmjKogPiBuw7pvOyAjNjMyQQor5oyrID4gY8O5bzsgIzYzMkIKK+aMrCA+IGLDszsgIzYzMkMKK+aMrSA+IGfElW5nOyAjNjMyRAor5oyuID4gdMStOyAjNjMyRQor5oyvID4gemjDqG47ICM2MzJGCivmjLAgPiBjaMOpbmc7ICM2MzMwCivmjLEgPiBzxatvOyAjNjMzMQor5oyyID4gc8WrbzsgIzYzMzIKK+aMsyA+IGvEk25nOyAjNjMzMwor5oy0ID4gbcSVaTsgIzYzMzQKK+aMtSA+IGzDsm5nOyAjNjMzNQor5oy2ID4gasO6OyAjNjMzNgor5oy3ID4gcMOpbmc7ICM2MzM3CivmjLggPiBqacSDbjsgIzYzMzgKK+aMuSA+IHnDrDsgIzYzMzkKK+aMuiA+IHTErW5nOyAjNjMzQQor5oy7ID4gc2jEgW47ICM2MzNCCivmjLwgPiBuw7lvOyAjNjMzQwor5oy9ID4gd8SDbjsgIzYzM0QKK+aMviA+IHhpw6k7ICM2MzNFCivmjL8gPiBjaMSBOyAjNjMzRgor5o2AID4gZsSTbmc7ICM2MzQwCivmjYEgPiBqacSDbzsgIzYzNDEKK+aNgiA+IHfFrTsgIzYzNDIKK+aNgyA+IGrDuW47ICM2MzQzCivmjYQgPiBqw6x1OyAjNjM0NAor5o2FID4gdMWPbmc7ICM2MzQ1CivmjYYgPiBrxa1uOyAjNjM0Ngor5o2HID4gaMO5bzsgIzYzNDcKK+aNiCA+IHTDujsgIzYzNDgKK+aNiSA+IHpoxatvOyAjNjM0OQor5o2KID4gcMOzdTsgIzYzNEEKK+aNiyA+IGzDqDsgIzYzNEIKK+aNjCA+IGLEgTsgIzYzNEMKK+aNjSA+IGjDoG47ICM2MzRECivmjY4gPiBzaMSBbzsgIzYzNEUKK+aNjyA+IG5pxJM7ICM2MzRGCivmjZAgPiBqdcSBbjsgIzYzNTAKK+aNkSA+IHrDqTsgIzYzNTEKK+aNkiA+IHPFj25nOyAjNjM1Mgor5o2TID4gecOpOyAjNjM1Mwor5o2UID4ganXDqTsgIzYzNTQKK+aNlSA+IGLFrTsgIzYzNTUKK+aNliA+IGh1w6FuOyAjNjM1Ngor5o2XID4gYsO5OyAjNjM1Nwor5o2YID4gesO5bjsgIzYzNTgKK+aNmSA+IHnDrDsgIzYzNTkKK+aNmiA+IHpoxIFpOyAjNjM1QQor5o2bID4gbMeaOyAjNjM1Qgor5o2cID4gc8WNdTsgIzYzNUMKK+aNnSA+IHTFq287ICM2MzVECivmjZ4gPiBsxIFvOyAjNjM1RQor5o2fID4gc8WtbjsgIzYzNUYKK+aNoCA+IGLEgW5nOyAjNjM2MAor5o2hID4gamnEg247ICM2MzYxCivmjaIgPiBodcOgbjsgIzYzNjIKK+aNoyA+IGTEg287ICM2MzYzCivmjaUgPiB3w6BuOyAjNjM2NQor5o2mID4gccOtbjsgIzYzNjYKK+aNpyA+IHDElW5nOyAjNjM2Nwor5o2oID4gc2jElTsgIzYzNjgKK+aNqSA+IGxpw6g7ICM2MzY5CivmjaogPiBtw61uOyAjNjM2QQor5o2rID4gbcOpbjsgIzYzNkIKK+aNrCA+IGbFrTsgIzYzNkMKK+aNrSA+IGLEg2k7ICM2MzZECivmja4gPiBqw7k7ICM2MzZFCivmja8gPiBkxINvOyAjNjM2Rgor5o2wID4gd8WPOyAjNjM3MAor5o2xID4gw6FpOyAjNjM3MQor5o2yID4ganXEg247ICM2MzcyCivmjbMgPiB5dcOoOyAjNjM3Mwor5o20ID4gesWPbmc7ICM2Mzc0CivmjbUgPiBjaMSVbjsgIzYzNzUKK+aNtiA+IGNow7ppOyAjNjM3Ngor5o23ID4gamnDqTsgIzYzNzcKK+aNuCA+IHTFqzsgIzYzNzgKK+aNuSA+IGLDqG47ICM2Mzc5CivmjbogPiBuw6A7ICM2MzdBCivmjbsgPiBuacSDbjsgIzYzN0IKK+aNvCA+IG7Dum87ICM2MzdDCivmjb0gPiB6w7o7ICM2MzdECivmjb4gPiB3w7I7ICM2MzdFCivmjb8gPiB4xKs7ICM2MzdGCivmjoAgPiB4acSBbjsgIzYzODAKK+aOgSA+IGNow6luZzsgIzYzODEKK+aOgiA+IGRpxIFuOyAjNjM4Mgor5o6DID4gc8SDbzsgIzYzODMKK+aOhCA+IGzDum47ICM2Mzg0CivmjoUgPiBxw6xuZzsgIzYzODUKK+aOhiA+IGfEgW5nOyAjNjM4Ngor5o6HID4gZMO6bzsgIzYzODcKK+aOiCA+IHNow7J1OyAjNjM4OAor5o6JID4gZGnDoG87ICM2Mzg5CivmjoogPiBww7N1OyAjNjM4QQor5o6LID4gZMStOyAjNjM4Qgor5o6MID4gemjEg25nOyAjNjM4Qwor5o6NID4gZ8WtbjsgIzYzOEQKK+aOjiA+IGrErTsgIzYzOEUKK+aOjyA+IHTEgW87ICM2MzhGCivmjpAgPiBxacSBOyAjNjM5MAor5o6RID4gccOtOyAjNjM5MQor5o6SID4gcMOhaTsgIzYzOTIKK+aOkyA+IHNow7o7ICM2MzkzCivmjpQgPiBxacSBbjsgIzYzOTQKK+aOlSA+IGzDrG5nOyAjNjM5NQor5o6WID4gecOsOyAjNjM5Ngor5o6XID4gecOgOyAjNjM5Nwor5o6YID4ganXDqTsgIzYzOTgKK+aOmSA+IHpoxJNuZzsgIzYzOTkKK+aOmiA+IGxpxINuZzsgIzYzOUEKK+aOmyA+IGd1w6A7ICM2MzlCCivmjpwgPiB5xK07ICM2MzlDCivmjp0gPiBow7lvOyAjNjM5RAor5o6eID4gc2jDoG47ICM2MzlFCivmjp8gPiB6aMSVbmc7ICM2MzlGCivmjqAgPiBsx5xlOyAjNjNBMAor5o6hID4gY8SDaTsgIzYzQTEKK+aOoiA+IHTDoG47ICM2M0EyCivmjqMgPiBjaMOoOyAjNjNBMwor5o6kID4gYsSrbmc7ICM2M0E0CivmjqUgPiBqacSTOyAjNjNBNQor5o6mID4gdMOsOyAjNjNBNgor5o6nID4ga8Oybmc7ICM2M0E3CivmjqggPiB0xatpOyAjNjNBOAor5o6pID4gecSDbjsgIzYzQTkKK+aOqiA+IGPDuW87ICM2M0FBCivmjqsgPiB6xY11OyAjNjNBQgor5o6sID4gasO6OyAjNjNBQwor5o6tID4gdGnDoG47ICM2M0FECivmjq4gPiBxacOhbjsgIzYzQUUKK+aOryA+IGvDqG47ICM2M0FGCivmjrAgPiBixIFpOyAjNjNCMAor5o6xID4gc2jFj3U7ICM2M0IxCivmjrIgPiBqacSTOyAjNjNCMgor5o6zID4gbMWtOyAjNjNCMwor5o60ID4gZ8O6bzsgIzYzQjQKK+aOtyA+IHpow607ICM2M0I3CivmjrggPiBkxINuOyAjNjNCOAor5o66ID4geGnEgW47ICM2M0JBCivmjrsgPiBzxIFvOyAjNjNCQgor5o68ID4gZ3XDoG47ICM2M0JDCivmjr0gPiBww6huZzsgIzYzQkQKK+aOviA+IHl1w6BuOyAjNjNCRQor5o6/ID4gbsO5bzsgIzYzQkYKK+aPgCA+IGppxINuOyAjNjNDMAor5o+BID4gemjEk247ICM2M0MxCivmj4IgPiBqxKt1OyAjNjNDMgor5o+DID4gamnEgW47ICM2M0MzCivmj4QgPiB5w7o7ICM2M0M0Civmj4UgPiB5w6FuOyAjNjNDNQor5o+GID4ga8O6aTsgIzYzQzYKK+aPhyA+IG7Eg247ICM2M0M3Civmj4ggPiBoxY1uZzsgIzYzQzgKK+aPiSA+IHLDs3U7ICM2M0M5Civmj4ogPiBww6w7ICM2M0NBCivmj4sgPiB3xJNpOyAjNjNDQgor5o+MID4gc8SBaTsgIzYzQ0MKK+aPjSA+IHrDsnU7ICM2M0NECivmj44gPiB4dcSBbjsgIzYzQ0UKK+aPjyA+IG1pw6FvOyAjNjNDRgor5o+QID4gdMOtOyAjNjNEMAor5o+RID4gbmnEkzsgIzYzRDEKK+aPkiA+IGNoxIE7ICM2M0QyCivmj5MgPiBzaMOsOyAjNjNEMwor5o+UID4gesWPbmc7ICM2M0Q0Civmj5UgPiB6aMOobjsgIzYzRDUKK+aPliA+IHnEqzsgIzYzRDYKK+aPlyA+IHNoxa1uOyAjNjNENwor5o+YID4gaMOpbmc7ICM2M0Q4Civmj5kgPiBiacOgbjsgIzYzRDkKK+aPmiA+IHnDoW5nOyAjNjNEQQor5o+bID4gaHXDoG47ICM2M0RCCivmj5wgPiB5xINuOyAjNjNEQwor5o+dID4genXDoG47ICM2M0RECivmj54gPiDEg247ICM2M0RFCivmj58gPiB4xas7ICM2M0RGCivmj6AgPiB5w6A7ICM2M0UwCivmj6EgPiB3w7I7ICM2M0UxCivmj6IgPiBrw6g7ICM2M0UyCivmj6MgPiBjaHXEg2k7ICM2M0UzCivmj6QgPiBqw607ICM2M0U0Civmj6UgPiB0w6w7ICM2M0U1Civmj6YgPiBsw6E7ICM2M0U2Civmj6cgPiBsw6A7ICM2M0U3Civmj6ggPiBjaMOpbmc7ICM2M0U4Civmj6kgPiBrxIFpOyAjNjNFOQor5o+qID4gasSrdTsgIzYzRUEKK+aPqyA+IGrEq3U7ICM2M0VCCivmj6wgPiB0w7o7ICM2M0VDCivmj60gPiBqacSTOyAjNjNFRAor5o+uID4gaMWraTsgIzYzRUUKK+aPryA+IGfEk25nOyAjNjNFRgor5o+wID4gY2jDsm5nOyAjNjNGMAor5o+xID4gc2jDuW87ICM2M0YxCivmj7IgPiBzaMOpOyAjNjNGMgor5o+zID4geGnDqDsgIzYzRjMKK+aPtCA+IHl1w6FuOyAjNjNGNAor5o+1ID4gcWnDoW47ICM2M0Y1Civmj7YgPiB5w6k7ICM2M0Y2Civmj7cgPiBjaMSBOyAjNjNGNwor5o+4ID4gemjEgTsgIzYzRjgKK+aPuSA+IGLEk2k7ICM2M0Y5Civmj7ogPiB5w6FvOyAjNjNGQQor5o+9ID4gbMSDbjsgIzYzRkQKK+aPviA+IHfDqG47ICM2M0ZFCivmj78gPiBxw6xuOyAjNjNGRgor5pCAID4gY2jEgW47ICM2NDAwCivmkIEgPiBnxJM7ICM2NDAxCivmkIIgPiBsxY91OyAjNjQwMgor5pCDID4gesWPbmc7ICM2NDAzCivmkIQgPiBnxJNuZzsgIzY0MDQKK+aQhSA+IGppxINvOyAjNjQwNQor5pCGID4gZ8OydTsgIzY0MDYKK+aQhyA+IHHDrG47ICM2NDA3CivmkIggPiB5xY9uZzsgIzY0MDgKK+aQiSA+IHF1w6g7ICM2NDA5CivmkIogPiBjaMWNdTsgIzY0MEEKK+aQiyA+IGNoxK07ICM2NDBCCivmkIwgPiB6aMSDbjsgIzY0MEMKK+aQjSA+IHPFrW47ICM2NDBECivmkI4gPiBzxatuOyAjNjQwRQor5pCPID4gYsOzOyAjNjQwRgor5pCQID4gY2jDuTsgIzY0MTAKK+aQkSA+IHLFj25nOyAjNjQxMQor5pCSID4gYsOobmc7ICM2NDEyCivmkJMgPiBjxatvOyAjNjQxMwor5pCUID4gc8SBbzsgIzY0MTQKK+aQlSA+IGvDqDsgIzY0MTUKK+aQliA+IHnDoW87ICM2NDE2CivmkJcgPiBkxINvOyAjNjQxNwor5pCYID4gemjEqzsgIzY0MTgKK+aQmSA+IG7DuTsgIzY0MTkKK+aQmiA+IHhpw6k7ICM2NDFBCivmkJsgPiBqacSBbjsgIzY0MUIKK+aQnCA+IHPFjXU7ICM2NDFDCivmkJ0gPiBxxK11OyAjNjQxRAor5pCeID4gZ8SDbzsgIzY0MUUKK+aQnyA+IHhpxINuOyAjNjQxRgor5pCgID4gc2jDuW87ICM2NDIwCivmkKEgPiBzxINuZzsgIzY0MjEKK+aQoiA+IGrDrG47ICM2NDIyCivmkKMgPiBtacOoOyAjNjQyMwor5pCkID4gw6g7ICM2NDI0CivmkKUgPiBjaMO6aTsgIzY0MjUKK+aQpiA+IG7DuW87ICM2NDI2CivmkKcgPiBzaMSBbjsgIzY0MjcKK+aQqCA+IHTDoDsgIzY0MjgKK+aQqSA+IGppw6k7ICM2NDI5CivmkKogPiB0w6FuZzsgIzY0MkEKK+aQqyA+IHDDoW47ICM2NDJCCivmkKwgPiBixIFuOyAjNjQyQwor5pCtID4gZMSBOyAjNjQyRAor5pCuID4gbMOsOyAjNjQyRQor5pCvID4gdMSBbzsgIzY0MkYKK+aQsCA+IGjDujsgIzY0MzAKK+aQsSA+IHpow6w7ICM2NDMxCivmkLIgPiB3xIE7ICM2NDMyCivmkLMgPiB4acOhOyAjNjQzMwor5pC0ID4gcWnEgW47ICM2NDM0CivmkLUgPiB3w6huOyAjNjQzNQor5pC2ID4gcWnEg25nOyAjNjQzNgor5pC3ID4gdGnDoW47ICM2NDM3CivmkLggPiB6aMSTbjsgIzY0MzgKK+aQuSA+IMOoOyAjNjQzOQor5pC6ID4geMSrOyAjNjQzQQor5pC7ID4gbsO5bzsgIzY0M0IKK+aQvCA+IHF1w6FuOyAjNjQzQwor5pC9ID4gY2jDoTsgIzY0M0QKK+aQviA+IHpow6A7ICM2NDNFCivmkL8gPiBnw6k7ICM2NDNGCivmkYAgPiB3xa07ICM2NDQwCivmkYEgPiDDqG47ICM2NDQxCivmkYIgPiBzaMOoOyAjNjQ0Mgor5pGDID4ga8Ohbmc7ICM2NDQzCivmkYQgPiBzaMOoOyAjNjQ0NAor5pGFID4gc2jFqzsgIzY0NDUKK+aRhiA+IGLEg2k7ICM2NDQ2CivmkYcgPiB5w6FvOyAjNjQ0Nwor5pGIID4gYsOsbjsgIzY0NDgKK+aRiSA+IHPFjXU7ICM2NDQ5CivmkYogPiB0xIFuOyAjNjQ0QQor5pGLID4gc8OgOyAjNjQ0Qgor5pGMID4gY2jEg247ICM2NDRDCivmkY0gPiBzxatvOyAjNjQ0RAor5pGOID4gbGnDoW87ICM2NDRFCivmkY8gPiBjaMWNbmc7ICM2NDRGCivmkZAgPiBjaHXEgW5nOyAjNjQ1MAor5pGRID4gZ8O6bzsgIzY0NTEKK+aRkiA+IGLDrG5nOyAjNjQ1Mgor5pGTID4gZsOpbmc7ICM2NDUzCivmkZQgPiBzaHXEgWk7ICM2NDU0CivmkZUgPiBkw6w7ICM2NDU1CivmkZYgPiBxw6w7ICM2NDU2CivmkZcgPiBzb3U7ICM2NDU3CivmkZggPiB6aMSBaTsgIzY0NTgKK+aRmSA+IGxpxINuOyAjNjQ1OQor5pGaID4gdMOhbmc7ICM2NDVBCivmkZsgPiBjaMSrOyAjNjQ1Qgor5pGcID4gZ3XDoG47ICM2NDVDCivmkZ0gPiBsw7k7ICM2NDVECivmkZ4gPiBsw7pvOyAjNjQ1RQor5pGfID4gbMWPdTsgIzY0NUYKK+aRoCA+IHrFj25nOyAjNjQ2MAor5pGhID4gZ8OgaTsgIzY0NjEKK+aRoiA+IGjDuTsgIzY0NjIKK+aRoyA+IHpoxIE7ICM2NDYzCivmkaQgPiBjaHXEg25nOyAjNjQ2NAor5pGlID4gdMOgbmc7ICM2NDY1CivmkaYgPiBodcOgOyAjNjQ2Ngor5pGnID4gY8WraTsgIzY0NjcKK+aRqCA+IG7DoWk7ICM2NDY4CivmkakgPiBtw7M7ICM2NDY5CivmkaogPiBqacSBbmc7ICM2NDZBCivmkasgPiBnxatpOyAjNjQ2Qgor5pGsID4gecOsbmc7ICM2NDZDCivmka0gPiB6aMOtOyAjNjQ2RAor5pGuID4gw6FvOyAjNjQ2RQor5pGvID4gemjDrDsgIzY0NkYKK+aRsCA+IG5pw6g7ICM2NDcwCivmkbEgPiBtw6FuOyAjNjQ3MQor5pGyID4gc2jDoG47ICM2NDcyCivmkbMgPiBrxY11OyAjNjQ3Mwor5pG0ID4gc2jFqzsgIzY0NzQKK+aRtSA+IHPFrW87ICM2NDc1CivmkbYgPiB0dcOhbjsgIzY0NzYKK+aRtyA+IGppxINvOyAjNjQ3Nwor5pG4ID4gbcWNOyAjNjQ3OAor5pG5ID4gbcOzOyAjNjQ3OQor5pG6ID4gemjDqTsgIzY0N0EKK+aRuyA+IHhpxIFuOyAjNjQ3Qgor5pG8ID4ga8STbmc7ICM2NDdDCivmkb0gPiBwacSDbzsgIzY0N0QKK+aRviA+IGppw6BuZzsgIzY0N0UKK+aRvyA+IHnEq247ICM2NDdGCivmkoAgPiBnw7J1OyAjNjQ4MAor5pKBID4gcWnEgW47ICM2NDgxCivmkoIgPiBsx5xlOyAjNjQ4Mgor5pKDID4gasOtOyAjNjQ4Mwor5pKEID4gecSrbmc7ICM2NDg0CivmkoUgPiBqdcSTOyAjNjQ4NQor5pKGID4gcGnEkzsgIzY0ODYKK+aShyA+IHBpxJU7ICM2NDg3CivmkoggPiBsxIFvOyAjNjQ4OAor5pKJID4gZMWrbjsgIzY0ODkKK+aSiiA+IHhpw6BuOyAjNjQ4QQor5pKLID4gcnXDoW47ICM2NDhCCivmkowgPiBrw7lpOyAjNjQ4Qwor5pKNID4gesSDbjsgIzY0OEQKK+aSjiA+IHnDrDsgIzY0OEUKK+aSjyA+IHjDum47ICM2NDhGCivmkpAgPiBjaMSTbmc7ICM2NDkwCivmkpEgPiBjaMSTbmc7ICM2NDkxCivmkpIgPiBzxIM7ICM2NDkyCivmkpMgPiBuw6FvOyAjNjQ5Mwor5pKUID4gaMOobmc7ICM2NDk0CivmkpUgPiBzxKs7ICM2NDk1CivmkpYgPiBxacSDbjsgIzY0OTYKK+aSlyA+IGh1w6FuZzsgIzY0OTcKK+aSmCA+IGTEgTsgIzY0OTgKK+aSmSA+IHrFrW47ICM2NDk5CivmkpogPiBuacSDbjsgIzY0OUEKK+aSmyA+IGzErW47ICM2NDlCCivmkpwgPiB6aMSVbmc7ICM2NDlDCivmkp0gPiBoxatpOyAjNjQ5RAor5pKeID4gemh1w6BuZzsgIzY0OUUKK+aSnyA+IGppxINvOyAjNjQ5Rgor5pKgID4gasStOyAjNjRBMAor5pKhID4gY8SBbzsgIzY0QTEKK+aSoiA+IGTEg247ICM2NEEyCivmkqMgPiBkxINuOyAjNjRBMwor5pKkID4gY2jDqDsgIzY0QTQKK+aSpSA+IGLFjTsgIzY0QTUKK+aSpiA+IGNoxJU7ICM2NEE2CivmkqcgPiBqdcOpOyAjNjRBNwor5pKoID4geGnEgW87ICM2NEE4CivmkqkgPiBsacOhbzsgIzY0QTkKK+aSqiA+IGLDqG47ICM2NEFBCivmkqsgPiBmxa07ICM2NEFCCivmkqwgPiBxacOgbzsgIzY0QUMKK+aSrSA+IGLDsjsgIzY0QUQKK+aSriA+IGPFq287ICM2NEFFCivmkq8gPiB6aMO6bzsgIzY0QUYKK+aSsCA+IHpodcOgbjsgIzY0QjAKK+aSsSA+IHTFrW87ICM2NEIxCivmkrIgPiBwxas7ICM2NEIyCivmkrMgPiBxw6xuOyAjNjRCMwor5pK0ID4gZMWrbjsgIzY0QjQKK+aStSA+IG5pxINuOyAjNjRCNQor5pK3ID4geGnDqTsgIzY0QjcKK+aSuCA+IGzFrTsgIzY0QjgKK+aSuSA+IGppxINvOyAjNjRCOQor5pK6ID4gY3XEgW47ICM2NEJBCivmkrsgPiB0w6A7ICM2NEJCCivmkrwgPiBow6BuOyAjNjRCQwor5pK9ID4gcWnDoG87ICM2NEJECivmkr4gPiB6aHXEgTsgIzY0QkUKK+aSvyA+IGppxINuOyAjNjRCRgor5pOAID4gZ8SDbjsgIzY0QzAKK+aTgSA+IHnFj25nOyAjNjRDMQor5pOCID4gbMOpaTsgIzY0QzIKK+aTgyA+IGvFrW87ICM2NEMzCivmk4QgPiBsxa07ICM2NEM0Civmk4UgPiBzaMOgbjsgIzY0QzUKK+aThiA+IHpow7pvOyAjNjRDNgor5pOHID4gesOpOyAjNjRDNwor5pOIID4gcMWrOyAjNjRDOAor5pOJID4gY2jDuW87ICM2NEM5Civmk4ogPiBqw607ICM2NENBCivmk4sgPiBkxINuZzsgIzY0Q0IKK+aTjCA+IHPFrW87ICM2NENDCivmk40gPiBjxIFvOyAjNjRDRAor5pOOID4gccOtbmc7ICM2NENFCivmk48gPiBqw6xuZzsgIzY0Q0YKK+aTkCA+IGh1w6BuOyAjNjREMAor5pORID4gamnEkzsgIzY0RDEKK+aTkiA+IHHDrW47ICM2NEQyCivmk5MgPiBrdcSDaTsgIzY0RDMKK+aTlCA+IGTEgW47ICM2NEQ0Civmk5UgPiB4xKs7ICM2NEQ1Civmk5YgPiBnxJU7ICM2NEQ2Civmk5cgPiBww6w7ICM2NEQ3Civmk5ggPiBiw7I7ICM2NEQ4Civmk5kgPiDDoG87ICM2NEQ5Civmk5ogPiBqw7k7ICM2NERBCivmk5sgPiB5w6g7ICM2NERCCivmk54gPiBzxY91OyAjNjRERQor5pOfID4gbcOtOyAjNjRERgor5pOgID4gasStOyAjNjRFMAor5pOhID4gdMOhaTsgIzY0RTEKK+aToiA+IHpow7pvOyAjNjRFMgor5pOjID4gZMSDbzsgIzY0RTMKK+aTpCA+IHjErW5nOyAjNjRFNAor5pOlID4gbMSDbjsgIzY0RTUKK+aTpiA+IGPEgTsgIzY0RTYKK+aTpyA+IGrFrTsgIzY0RTcKK+aTqCA+IHnDqTsgIzY0RTgKK+aTqSA+IHLFrTsgIzY0RTkKK+aTqiA+IHnDqDsgIzY0RUEKK+aTqyA+IHnDqDsgIzY0RUIKK+aTrCA+IG7ErTsgIzY0RUMKK+aTrSA+IGjDuTsgIzY0RUQKK+aTriA+IGrDrTsgIzY0RUUKK+aTryA+IGLDrG47ICM2NEVGCivmk7AgPiBuw61uZzsgIzY0RjAKK+aTsSA+IGfEkzsgIzY0RjEKK+aTsiA+IHpow607ICM2NEYyCivmk7MgPiBqacOpOyAjNjRGMwor5pO0ID4ga8O5bzsgIzY0RjQKK+aTtSA+IG3DszsgIzY0RjUKK+aTtiA+IGppw6BuOyAjNjRGNgor5pO3ID4geGnDqTsgIzY0RjcKK+aTuCA+IGxpw6g7ICM2NEY4Civmk7kgPiB0xIFuOyAjNjRGOQor5pO6ID4gYsSDaTsgIzY0RkEKK+aTuyA+IHPFj3U7ICM2NEZCCivmk7wgPiBsxa07ICM2NEZDCivmk70gPiBsx5xlOyAjNjRGRAor5pO+ID4gcsSDbzsgIzY0RkUKK+aTvyA+IHpow607ICM2NEZGCivmlIAgPiBwxIFuOyAjNjUwMAor5pSBID4gecSDbmc7ICM2NTAxCivmlIIgPiBsw6hpOyAjNjUwMgor5pSDID4gc8OgOyAjNjUwMwor5pSEID4gc2jFqzsgIzY1MDQKK+aUhSA+IHrEg247ICM2NTA1CivmlIYgPiBuacSDbjsgIzY1MDYKK+aUhyA+IHhpxINuOyAjNjUwNwor5pSIID4gasO5bjsgIzY1MDgKK+aUiSA+IGjDuW87ICM2NTA5CivmlIogPiBsw6w7ICM2NTBBCivmlIsgPiBsw6A7ICM2NTBCCivmlIwgPiBow6BuOyAjNjUwQwor5pSNID4gecOtbmc7ICM2NTBECivmlI4gPiBsw7o7ICM2NTBFCivmlI8gPiBsxY9uZzsgIzY1MEYKK+aUkCA+IHFpxIFuOyAjNjUxMAor5pSRID4gcWnEgW47ICM2NTExCivmlJIgPiB6xINuOyAjNjUxMgor5pSTID4gcWnEgW47ICM2NTEzCivmlJQgPiBsw6FuOyAjNjUxNAor5pSVID4gc8SBbjsgIzY1MTUKK+aUliA+IHnEq25nOyAjNjUxNgor5pSXID4gbcOpaTsgIzY1MTcKK+aUmCA+IHLDoW5nOyAjNjUxOAor5pSZID4gY2jEgW47ICM2NTE5CivmlJsgPiBjdcSBbjsgIzY1MUIKK+aUnCA+IHjEqzsgIzY1MUMKK+aUnSA+IHNow6g7ICM2NTFECivmlJ4gPiBsxa1vOyAjNjUxRQor5pSfID4gasO5bjsgIzY1MUYKK+aUoCA+IG3DrTsgIzY1MjAKK+aUoSA+IGzDrTsgIzY1MjEKK+aUoiA+IHrEg247ICM2NTIyCivmlKMgPiBsx5hhbjsgIzY1MjMKK+aUpCA+IHTEgW47ICM2NTI0CivmlKUgPiB6dcOgbjsgIzY1MjUKK+aUpiA+IGzDrDsgIzY1MjYKK+aUpyA+IGRpxIFuOyAjNjUyNwor5pSoID4gd8SBOyAjNjUyOAor5pSpID4gZMSDbmc7ICM2NTI5CivmlKogPiBqacSDbzsgIzY1MkEKK+aUqyA+IGp1w6k7ICM2NTJCCivmlKwgPiBsxINuOyAjNjUyQwor5pStID4gbMOsOyAjNjUyRAor5pSuID4gbsSDbmc7ICM2NTJFCivmlK8gPiB6aMSrOyAjNjUyRgor5pSwID4gZ8O5aTsgIzY1MzAKK+aUsSA+IGfFrWk7ICM2NTMxCivmlLIgPiBxxKs7ICM2NTMyCivmlLMgPiB4w61uOyAjNjUzMwor5pS0ID4gcMWrOyAjNjUzNAor5pS1ID4gc8WraTsgIzY1MzUKK+aUtiA+IHNoxY11OyAjNjUzNgor5pS3ID4ga8OhbzsgIzY1MzcKK+aUuCA+IHnFjXU7ICM2NTM4CivmlLkgPiBnxINpOyAjNjUzOQor5pS6ID4gecStOyAjNjUzQQor5pS7ID4gZ8WNbmc7ICM2NTNCCivmlLwgPiBnxIFuOyAjNjUzQwor5pS9ID4gYsSBbjsgIzY1M0QKK+aUviA+IGbDoG5nOyAjNjUzRQor5pS/ID4gemjDqG5nOyAjNjUzRgor5pWAID4gYsOzOyAjNjU0MAor5pWBID4gZGnEgW47ICM2NTQxCivmlYIgPiBrw7J1OyAjNjU0Mgor5pWDID4gbcStbjsgIzY1NDMKK+aVhCA+IHfDuTsgIzY1NDQKK+aVhSA+IGfDuTsgIzY1NDUKK+aVhiA+IGjDqTsgIzY1NDYKK+aVhyA+IGPDqDsgIzY1NDcKK+aViCA+IHhpw6BvOyAjNjU0OAor5pWJID4gbcStOyAjNjU0OQor5pWKID4gY2jDuTsgIzY1NEEKK+aViyA+IGfDqTsgIzY1NEIKK+aVjCA+IGTDrTsgIzY1NEMKK+aVjSA+IHjDuTsgIzY1NEQKK+aVjiA+IGppw6BvOyAjNjU0RQor5pWPID4gbcStbjsgIzY1NEYKK+aVkCA+IGNow6luOyAjNjU1MAor5pWRID4gasOsdTsgIzY1NTEKK+aVkiA+IHpow6huOyAjNjU1Mgor5pWTID4gZMO6bzsgIzY1NTMKK+aVlCA+IHnFrTsgIzY1NTQKK+aVlSA+IGNow6w7ICM2NTU1CivmlZYgPiDDoW87ICM2NTU2CivmlZcgPiBiw6BpOyAjNjU1Nwor5pWYID4geMO5OyAjNjU1OAor5pWZID4gamnDoG87ICM2NTU5CivmlZogPiBkw7pvOyAjNjU1QQor5pWbID4gbGnDoG47ICM2NTVCCivmlZwgPiBuacOoOyAjNjU1Qwor5pWdID4gYsOsOyAjNjU1RAor5pWeID4gY2jEg25nOyAjNjU1RQor5pWfID4gZGnEg247ICM2NTVGCivmlaAgPiBkw7pvOyAjNjU2MAor5pWhID4gecOsOyAjNjU2MQor5pWiID4gZ8SDbjsgIzY1NjIKK+aVoyA+IHPDoG47ICM2NTYzCivmlaQgPiBrxJU7ICM2NTY0CivmlaUgPiB5w6BuOyAjNjU2NQor5pWmID4gZMWrbjsgIzY1NjYKK+aVpyA+IHHErTsgIzY1NjcKK+aVqCA+IGTFj3U7ICM2NTY4CivmlakgPiB4acOgbzsgIzY1NjkKK+aVqiA+IGTDum87ICM2NTZBCivmlasgPiBqacOgbzsgIzY1NkIKK+aVrCA+IGrDrG5nOyAjNjU2Qwor5pWtID4gecOhbmc7ICM2NTZECivmla4gPiB4acOhOyAjNjU2RQor5pWvID4gbcOtbjsgIzY1NkYKK+aVsCA+IHNow7k7ICM2NTcwCivmlbEgPiDDoWk7ICM2NTcxCivmlbIgPiBxacSBbzsgIzY1NzIKK+aVsyA+IMOhaTsgIzY1NzMKK+aVtCA+IHpoxJVuZzsgIzY1NzQKK+aVtSA+IGTDrTsgIzY1NzUKK+aVtiA+IHpow6huOyAjNjU3Ngor5pW3ID4gZsWrOyAjNjU3Nwor5pW4ID4gc2jDuTsgIzY1NzgKK+aVuSA+IGxpw6FvOyAjNjU3OQor5pW6ID4gccWrOyAjNjU3QQor5pW7ID4geMOsb25nOyAjNjU3Qgor5pW8ID4geMStOyAjNjU3Qwor5pW9ID4gamnEg287ICM2NTdECivmlb8gPiBqacSDbzsgIzY1N0YKK+aWgCA+IHpow7pvOyAjNjU4MAor5paBID4gecOsOyAjNjU4MQor5paCID4gbGnDoG47ICM2NTgyCivmloMgPiBiw6w7ICM2NTgzCivmloQgPiBsw6w7ICM2NTg0CivmloUgPiB4acOgbzsgIzY1ODUKK+aWhiA+IHhpw6BvOyAjNjU4Ngor5paHID4gd8OpbjsgIzY1ODcKK+aWiCA+IHh1w6k7ICM2NTg4CivmlokgPiBxw607ICM2NTg5CivmloogPiBxw607ICM2NThBCivmlosgPiB6aMSBaTsgIzY1OEIKK+aWjCA+IGLEq247ICM2NThDCivmlo0gPiBqdcOpOyAjNjU4RAor5paOID4gemjEgWk7ICM2NThFCivmlpAgPiBmxJVpOyAjNjU5MAor5paRID4gYsSBbjsgIzY1OTEKK+aWkiA+IGLEgW47ICM2NTkyCivmlpMgPiBsw6FuOyAjNjU5Mwor5paUID4gecWtOyAjNjU5NAor5paVID4gbMOhbjsgIzY1OTUKK+aWliA+IHfElWk7ICM2NTk2CivmlpcgPiBkxY91OyAjNjU5Nwor5paYID4gc2jEk25nOyAjNjU5OAor5paZID4gbGnDoG87ICM2NTk5CivmlpogPiBqacSDOyAjNjU5QQor5pabID4gaMO6OyAjNjU5Qgor5pacID4geGnDqTsgIzY1OUMKK+aWnSA+IGppxIM7ICM2NTlECivmlp4gPiB5xa07ICM2NTlFCivmlp8gPiB6aMSTbjsgIzY1OUYKK+aWoCA+IGppw6BvOyAjNjVBMAor5pahID4gd8OyOyAjNjVBMQor5paiID4gdMWPdTsgIzY1QTIKK+aWoyA+IGNow7k7ICM2NUEzCivmlqQgPiBqxKtuOyAjNjVBNAor5palID4gY2jDrDsgIzY1QTUKK+aWpiA+IHnDrW47ICM2NUE2CivmlqcgPiBmxa07ICM2NUE3CivmlqggPiBxacSBbmc7ICM2NUE4CivmlqkgPiB6aMSDbjsgIzY1QTkKK+aWqiA+IHHDujsgIzY1QUEKK+aWqyA+IHpow7pvOyAjNjVBQgor5pasID4gemjEg247ICM2NUFDCivmlq0gPiBkdcOgbjsgIzY1QUQKK+aWriA+IHpow7pvOyAjNjVBRQor5pavID4gc8SrOyAjNjVBRgor5pawID4geMSrbjsgIzY1QjAKK+aWsSA+IHpow7pvOyAjNjVCMQor5payID4gemjDum87ICM2NUIyCivmlrMgPiBxw61uOyAjNjVCMwor5pa0ID4gbMOtbjsgIzY1QjQKK+aWtSA+IHpow7pvOyAjNjVCNQor5pa2ID4gY2jDuTsgIzY1QjYKK+aWtyA+IGR1w6BuOyAjNjVCNwor5pa4ID4gemjFrTsgIzY1QjgKK+aWuSA+IGbEgW5nOyAjNjVCOQor5pa6ID4geGnDqDsgIzY1QkEKK+aWuyA+IGjDoW5nOyAjNjVCQgor5pa8ID4gecO6OyAjNjVCQwor5pa9ID4gc2jEqzsgIzY1QkQKK+aWviA+IHDDqGk7ICM2NUJFCivmlr8gPiB5w7N1OyAjNjVCRgor5peBID4gcMOhbmc7ICM2NUMxCivml4IgPiBxw607ICM2NUMyCivml4MgPiB6aMSBbjsgIzY1QzMKK+aXhCA+IG3DoW87ICM2NUM0Civml4UgPiBsx5o7ICM2NUM1Civml4YgPiBww6hpOyAjNjVDNgor5peHID4gcMSrOyAjNjVDNwor5peIID4gbMOtdTsgIzY1QzgKK+aXiSA+IGbFqzsgIzY1QzkKK+aXiiA+IGbEg25nOyAjNjVDQQor5peLID4geHXDoW47ICM2NUNCCivml4wgPiBqxKtuZzsgIzY1Q0MKK+aXjSA+IGrEq25nOyAjNjVDRAor5peOID4gbsStOyAjNjVDRQor5pePID4gesO6OyAjNjVDRgor5peQID4gemjDoG87ICM2NUQwCivml5EgPiB5xK07ICM2NUQxCivml5IgPiBsw611OyAjNjVEMgor5peTID4gc2jEgW87ICM2NUQzCivml5QgPiBqacOgbjsgIzY1RDQKK+aXliA+IHnErTsgIzY1RDYKK+aXlyA+IHHDrTsgIzY1RDcKK+aXmCA+IHpow6w7ICM2NUQ4Civml5kgPiBmxIFuOyAjNjVEOQor5peaID4gcGnEgW87ICM2NURBCivml5sgPiBmxIFuOyAjNjVEQgor5pecID4gemjEgW47ICM2NURDCivml50gPiBndcOgaTsgIzY1REQKK+aXniA+IHPDuWk7ICM2NURFCivml58gPiB5w7o7ICM2NURGCivml6AgPiB3w7o7ICM2NUUwCivml6EgPiBqw6w7ICM2NUUxCivml6IgPiBqw6w7ICM2NUUyCivml6MgPiBqw6w7ICM2NUUzCivml6QgPiBow7lvOyAjNjVFNAor5pelID4gcsOsOyAjNjVFNQor5pemID4gZMOgbjsgIzY1RTYKK+aXpyA+IGrDrHU7ICM2NUU3Civml6ggPiB6aMStOyAjNjVFOAor5pepID4gesSDbzsgIzY1RTkKK+aXqiA+IHhpw6k7ICM2NUVBCivml6sgPiB0acSBbzsgIzY1RUIKK+aXrCA+IHjDum47ICM2NUVDCivml60gPiB4w7k7ICM2NUVECivml64gPiB4w7k7ICM2NUVFCivml68gPiB4w7k7ICM2NUVGCivml7AgPiBnw6BuOyAjNjVGMAor5pexID4gaMOgbjsgIzY1RjEKK+aXsiA+IHTDoWk7ICM2NUYyCivml7MgPiBkw6w7ICM2NUYzCivml7QgPiB4xas7ICM2NUY0Civml7UgPiBjaMSDbjsgIzY1RjUKK+aXtiA+IHNow607ICM2NUY2Civml7cgPiBrdcOgbmc7ICM2NUY3Civml7ggPiB5w6FuZzsgIzY1RjgKK+aXuSA+IHNow607ICM2NUY5Civml7ogPiB3w6BuZzsgIzY1RkEKK+aXuyA+IG3DrW47ICM2NUZCCivml7wgPiBtw61uOyAjNjVGQwor5pe9ID4gdMWrbjsgIzY1RkQKK+aXviA+IGNoxatuOyAjNjVGRQor5pe/ID4gd8WtOyAjNjVGRgor5piAID4gecO6bjsgIzY2MDAKK+aYgSA+IGLDqGk7ICM2NjAxCivmmIIgPiDDoW5nOyAjNjYwMgor5piDID4gesOoOyAjNjYwMwor5piEID4gYsSDbjsgIzY2MDQKK+aYhSA+IGppw6k7ICM2NjA1CivmmIYgPiBrxatuOyAjNjYwNgor5piHID4gc2jEk25nOyAjNjYwNwor5piIID4gaMO5OyAjNjYwOAor5piJID4gZsSDbmc7ICM2NjA5CivmmIogPiBow6BvOyAjNjYwQQor5piLID4gZ8O5aTsgIzY2MEIKK+aYjCA+IGNoxIFuZzsgIzY2MEMKK+aYjSA+IHh1xIFuOyAjNjYwRAor5piOID4gbcOtbmc7ICM2NjBFCivmmI8gPiBoxatuOyAjNjYwRgor5piQID4gZsSTbjsgIzY2MTAKK+aYkSA+IHHErW47ICM2NjExCivmmJIgPiBoxas7ICM2NjEyCivmmJMgPiB5w6w7ICM2NjEzCivmmJQgPiB4w607ICM2NjE0CivmmJUgPiB4xKtuOyAjNjYxNQor5piWID4gecOhbjsgIzY2MTYKK+aYlyA+IHrDqDsgIzY2MTcKK+aYmCA+IGbEg25nOyAjNjYxOAor5piZID4gdMOhbjsgIzY2MTkKK+aYmiA+IHNow6huOyAjNjYxQQor5pibID4gasO5OyAjNjYxQgor5picID4gecOhbmc7ICM2NjFDCivmmJ0gPiB6xINuOyAjNjYxRAor5pieID4gYsStbmc7ICM2NjFFCivmmJ8gPiB4xKtuZzsgIzY2MUYKK+aYoCA+IHnDrG5nOyAjNjYyMAor5pihID4geHXDoG47ICM2NjIxCivmmKIgPiBwxJVpOyAjNjYyMgor5pijID4gemjElW47ICM2NjIzCivmmKQgPiBsxKtuZzsgIzY2MjQKK+aYpSA+IGNoxatuOyAjNjYyNQor5pimID4gaMOgbzsgIzY2MjYKK+aYpyA+IG3DqGk7ICM2NjI3CivmmKggPiB6w7pvOyAjNjYyOAor5pipID4gbcOyOyAjNjYyOQor5piqID4gYmnDoG47ICM2NjJBCivmmKsgPiB4xa07ICM2NjJCCivmmKwgPiBoxatuOyAjNjYyQwor5pitID4gemjEgW87ICM2NjJECivmmK4gPiB6w7JuZzsgIzY2MkUKK+aYryA+IHNow6w7ICM2NjJGCivmmLAgPiBzaMOsOyAjNjYzMAor5pixID4gecO5OyAjNjYzMQor5piyID4gZsOoaTsgIzY2MzIKK+aYsyA+IGRpw6k7ICM2NjMzCivmmLQgPiBtxINvOyAjNjYzNAor5pi1ID4gbsOsOyAjNjYzNQor5pi2ID4gY2jEg25nOyAjNjYzNgor5pi3ID4gd8STbjsgIzY2MzcKK+aYuCA+IGTFjW5nOyAjNjYzOAor5pi5ID4gxINpOyAjNjYzOQor5pi6ID4gYsStbmc7ICM2NjNBCivmmLsgPiDDoW5nOyAjNjYzQgor5pi8ID4gemjDsnU7ICM2NjNDCivmmL0gPiBsw7NuZzsgIzY2M0QKK+aYviA+IHhpxINuOyAjNjYzRQor5pi/ID4ga3XDoG5nOyAjNjYzRgor5pmAID4gdGnEg287ICM2NjQwCivmmYEgPiBjaMOhbzsgIzY2NDEKK+aZgiA+IHNow607ICM2NjQyCivmmYMgPiBodcSDbmc7ICM2NjQzCivmmYQgPiBodcSDbmc7ICM2NjQ0CivmmYUgPiB4dcSBbjsgIzY2NDUKK+aZhiA+IGvDumk7ICM2NjQ2CivmmYcgPiB4xas7ICM2NjQ3CivmmYggPiBqacSDbzsgIzY2NDgKK+aZiSA+IGrDrG47ICM2NjQ5CivmmYogPiB6aMStOyAjNjY0QQor5pmLID4gasOsbjsgIzY2NEIKK+aZjCA+IHNoxINuZzsgIzY2NEMKK+aZjSA+IHTDs25nOyAjNjY0RAor5pmOID4gaMWPbmc7ICM2NjRFCivmmY8gPiB5w6BuOyAjNjY0Rgor5pmQID4gZ8SBaTsgIzY2NTAKK+aZkSA+IHhpxINuZzsgIzY2NTEKK+aZkiA+IHNow6BpOyAjNjY1Mgor5pmTID4geGnEg287ICM2NjUzCivmmZQgPiB5xJM7ICM2NjU0CivmmZUgPiB5xatuOyAjNjY1NQor5pmWID4gaMWraTsgIzY2NTYKK+aZlyA+IGjDoW47ICM2NjU3CivmmZggPiBow6BuOyAjNjY1OAor5pmZID4gasO5bjsgIzY2NTkKK+aZmiA+IHfEg247ICM2NjVBCivmmZsgPiB4acOgbjsgIzY2NUIKK+aZnCA+IGvFq247ICM2NjVDCivmmZ0gPiB6aMOydTsgIzY2NUQKK+aZniA+IHjEqzsgIzY2NUUKK+aZnyA+IGNow6luZzsgIzY2NUYKK+aZoCA+IHNow6luZzsgIzY2NjAKK+aZoSA+IGLFqzsgIzY2NjEKK+aZoiA+IHpoxJM7ICM2NjYyCivmmaMgPiB6aMSTOyAjNjY2Mwor5pmkID4gd8O5OyAjNjY2NAor5pmlID4gaMOgbjsgIzY2NjUKK+aZpiA+IGjDuWk7ICM2NjY2CivmmacgPiBow6BvOyAjNjY2Nwor5pmoID4gY2jDqW47ICM2NjY4CivmmakgPiB3xINuOyAjNjY2OQor5pmqID4gdGnEg247ICM2NjZBCivmmasgPiB6aMO6bzsgIzY2NkIKK+aZrCA+IHrDuWk7ICM2NjZDCivmma0gPiB6aMWPdTsgIzY2NkQKK+aZriA+IHDFrTsgIzY2NkUKK+aZryA+IGrErW5nOyAjNjY2Rgor5pmwID4geMSrOyAjNjY3MAor5pmxID4gc2jEg247ICM2NjcxCivmmbIgPiB5xK07ICM2NjcyCivmmbMgPiB4w6w7ICM2NjczCivmmbQgPiBxw61uZzsgIzY2NzQKK+aZtSA+IHHErTsgIzY2NzUKK+aZtiA+IGrEq25nOyAjNjY3Ngor5pm3ID4gZ8WtaTsgIzY2NzcKK+aZuCA+IHpoxJVuOyAjNjY3OAor5pm5ID4gecOsOyAjNjY3OQor5pm6ID4gemjDrDsgIzY2N0EKK+aZuyA+IMSDbjsgIzY2N0IKK+aZvCA+IHfEg247ICM2NjdDCivmmb0gPiBsw61uOyAjNjY3RAor5pm+ID4gbGnDoG5nOyAjNjY3RQor5pm/ID4gY2jEgW5nOyAjNjY3Rgor5pqAID4gd8SDbmc7ICM2NjgwCivmmoEgPiB4acSDbzsgIzY2ODEKK+aagiA+IHrDoG47ICM2NjgyCivmmoQgPiB4dcSBbjsgIzY2ODQKK+aahSA+IHh1xINuOyAjNjY4NQor5pqGID4gecOtOyAjNjY4Ngor5pqHID4geGnDoTsgIzY2ODcKK+aaiCA+IHnFq247ICM2Njg4CivmmokgPiBoxatpOyAjNjY4OQor5pqKID4gZsWtOyAjNjY4QQor5pqLID4gbcStbjsgIzY2OEIKK+aajCA+IGvDumk7ICM2NjhDCivmmo0gPiBow6g7ICM2NjhECivmmo4gPiB5w6xuZzsgIzY2OEUKK+aajyA+IGTFrTsgIzY2OEYKK+aakCA+IHfElWk7ICM2NjkwCivmmpEgPiBzaMWtOyAjNjY5MQor5pqSID4gccOtbmc7ICM2NjkyCivmmpMgPiBtw6BvOyAjNjY5Mwor5pqUID4gbsOhbjsgIzY2OTQKK+aalSA+IGppxINuOyAjNjY5NQor5pqWID4gbnXEg247ICM2Njk2CivmmpcgPiDDoG47ICM2Njk3CivmmpggPiB5w6FuZzsgIzY2OTgKK+aamSA+IGNoxatuOyAjNjY5OQor5pqaID4gecOhbzsgIzY2OUEKK+aamyA+IHPFrW87ICM2NjlCCivmmpwgPiBqw6xuOyAjNjY5Qwor5pqdID4gbcOtbmc7ICM2NjlECivmmp4gPiBqacSDbzsgIzY2OUUKK+aanyA+IGvEg2k7ICM2NjlGCivmmqAgPiBnxINvOyAjNjZBMAor5pqhID4gd8SVbmc7ICM2NkExCivmmqIgPiBjaMOgbmc7ICM2NkEyCivmmqMgPiBxw6w7ICM2NkEzCivmmqQgPiBow6BvOyAjNjZBNAor5pqlID4gecOgbjsgIzY2QTUKK+aapiA+IGzDrDsgIzY2QTYKK+aapyA+IMOgaTsgIzY2QTcKK+aaqCA+IGrDrDsgIzY2QTgKK+aaqSA+IGfDuWk7ICM2NkE5CivmmqogPiBtxJVuOyAjNjZBQQor5pqrID4gesOgbjsgIzY2QUIKK+aarCA+IHhpw6g7ICM2NkFDCivmmq0gPiBow6BvOyAjNjZBRAor5pquID4gbcO5OyAjNjZBRQor5pqvID4gbcOyOyAjNjZBRgor5pqwID4gY8WNbmc7ICM2NkIwCivmmrEgPiBuw6w7ICM2NkIxCivmmrIgPiB6aMSBbmc7ICM2NkIyCivmmrMgPiBow7lpOyAjNjZCMwor5pq0ID4gYsOgbzsgIzY2QjQKK+aatSA+IGjDoG47ICM2NkI1CivmmrYgPiB4dcOhbjsgIzY2QjYKK+aatyA+IGNodcOhbjsgIzY2QjcKK+aauCA+IGxpw6FvOyAjNjZCOAor5pq5ID4geGnEgW47ICM2NkI5CivmmrogPiBkw6BuOyAjNjZCQQor5pq7ID4gasStbmc7ICM2NkJCCivmmrwgPiBwacSTOyAjNjZCQwor5pq9ID4gbMOtbjsgIzY2QkQKK+aaviA+IHTFq247ICM2NkJFCivmmr8gPiB4xK07ICM2NkJGCivmm4AgPiB5w6w7ICM2NkMwCivmm4EgPiBqw6w7ICM2NkMxCivmm4IgPiBodcOgbmc7ICM2NkMyCivmm4MgPiB0w6BpOyAjNjZDMwor5puEID4gecOoOyAjNjZDNAor5puFID4gecOoOyAjNjZDNQor5puGID4gbMOsOyAjNjZDNgor5puHID4gdMOhbjsgIzY2QzcKK+abiCA+IHTDs25nOyAjNjZDOAor5puJID4geGnEg287ICM2NkM5Civmm4ogPiBmw6hpOyAjNjZDQQor5puLID4gccStbjsgIzY2Q0IKK+abjCA+IHpow6BvOyAjNjZDQwor5puNID4gaMOgbzsgIzY2Q0QKK+abjiA+IHnDrDsgIzY2Q0UKK+abjyA+IHhpw6BuZzsgIzY2Q0YKK+abkCA+IHjEq25nOyAjNjZEMAor5puRID4gc8STbjsgIzY2RDEKK+abkiA+IGppxINvOyAjNjZEMgor5puTID4gYsOgbzsgIzY2RDMKK+ablCA+IGrDrG5nOyAjNjZENAor5puVID4geWnDoG47ICM2NkQ1Civmm5YgPiDDoGk7ICM2NkQ2Civmm5cgPiB5w6g7ICM2NkQ3Civmm5ggPiByw7o7ICM2NkQ4Civmm5kgPiBzaMO5OyAjNjZEOQor5puaID4gbcOpbmc7ICM2NkRBCivmm5sgPiB4xatuOyAjNjZEQgor5pucID4gecOgbzsgIzY2REMKK+abnSA+IHDDuTsgIzY2REQKK+abniA+IGzDrDsgIzY2REUKK+abnyA+IGNow6luOyAjNjZERgor5pugID4ga3XDoG5nOyAjNjZFMAor5puhID4gZGnDqTsgIzY2RTEKK+aboyA+IHnDoG47ICM2NkUzCivmm6QgPiBow7lvOyAjNjZFNAor5pulID4gbMO6OyAjNjZFNQor5pumID4geMSrOyAjNjZFNgor5punID4gcsOzbmc7ICM2NkU3Civmm6ggPiBsw7NuZzsgIzY2RTgKK+abqSA+IG7Eg25nOyAjNjZFOQor5puqID4gbMWtbzsgIzY2RUEKK+abqyA+IGx1w6FuOyAjNjZFQgor5pusID4gc2jDoGk7ICM2NkVDCivmm60gPiB0xINuZzsgIzY2RUQKK+abriA+IHnEg247ICM2NkVFCivmm68gPiBjaMO6OyAjNjZFRgor5puwID4geXXEkzsgIzY2RjAKK+absSA+IHl1xJM7ICM2NkYxCivmm7IgPiBxxa07ICM2NkYyCivmm7MgPiB5w6w7ICM2NkYzCivmm7QgPiBnw6huZzsgIzY2RjQKK+abtSA+IHnDqDsgIzY2RjUKK+abtiA+IGjFqzsgIzY2RjYKK+abtyA+IGjDqTsgIzY2RjcKK+abuCA+IHNoxas7ICM2NkY4Civmm7kgPiBjw6FvOyAjNjZGOQor5pu6ID4gY8OhbzsgIzY2RkEKK+abvCA+IG3DoG47ICM2NkZDCivmm70gPiBjxJNuZzsgIzY2RkQKK+abviA+IGPDqW5nOyAjNjZGRQor5pu/ID4gdMOsOyAjNjZGRgor5pyAID4gesO5aTsgIzY3MDAKK+acgSA+IGPEg247ICM2NzAxCivmnIIgPiB4w7k7ICM2NzAyCivmnIMgPiBow7lpOyAjNjcwMwor5pyEID4gecOsbjsgIzY3MDQKK+achSA+IHFpw6g7ICM2NzA1CivmnIYgPiBmxJNuOyAjNjcwNgor5pyHID4gcMOtOyAjNjcwNwor5pyIID4geXXDqDsgIzY3MDgKK+aciSA+IHnFj3U7ICM2NzA5CivmnIogPiBydcSDbjsgIzY3MEEKK+aciyA+IHDDqW5nOyAjNjcwQgor5pyMID4gYsSBbjsgIzY3MEMKK+acjSA+IGbDujsgIzY3MEQKK+acjiA+IGzDrW5nOyAjNjcwRQor5pyPID4gZsSVaTsgIzY3MEYKK+ackCA+IHHDujsgIzY3MTAKK+ackiA+IG7HnDsgIzY3MTIKK+ackyA+IHRpw6BvOyAjNjcxMwor5pyUID4gc2jDuW87ICM2NzE0CivmnJUgPiB6aMOobjsgIzY3MTUKK+acliA+IGzEg25nOyAjNjcxNgor5pyXID4gbMSDbmc7ICM2NzE3CivmnJggPiBqdcSBbjsgIzY3MTgKK+acmSA+IG3DrW5nOyAjNjcxOQor5pyaID4gaHXEgW5nOyAjNjcxQQor5pybID4gd8Ogbmc7ICM2NzFCCivmnJwgPiB0xatuOyAjNjcxQwor5pydID4gemjEgW87ICM2NzFECivmnJ4gPiBqxKs7ICM2NzFFCivmnJ8gPiBxw607ICM2NzFGCivmnKAgPiB5xKtuZzsgIzY3MjAKK+acoSA+IHrFjW5nOyAjNjcyMQor5pyiID4gd8Ogbmc7ICM2NzIyCivmnKMgPiB0w7NuZzsgIzY3MjMKK+acpCA+IGzEg25nOyAjNjcyNAor5pymID4gbcOpbmc7ICM2NzI2CivmnKcgPiBsw7NuZzsgIzY3MjcKK+acqCA+IG3DuTsgIzY3MjgKK+acqSA+IGTElW5nOyAjNjcyOQor5pyqID4gd8OoaTsgIzY3MkEKK+acqyA+IG3DsjsgIzY3MkIKK+acrCA+IGLElW47ICM2NzJDCivmnK0gPiB6aMOhOyAjNjcyRAor5pyuID4gemjDujsgIzY3MkUKK+acryA+IHpow7o7ICM2NzJGCivmnLEgPiB6aMWrOyAjNjczMQor5pyyID4gcsOpbjsgIzY3MzIKK+acsyA+IGLEgTsgIzY3MzMKK+actCA+IHDDsjsgIzY3MzQKK+actSA+IGTFrW87ICM2NzM1CivmnLYgPiBkxa1vOyAjNjczNgor5py3ID4gZMSBbzsgIzY3MzcKK+acuCA+IGzDrDsgIzY3MzgKK+acuSA+IHHDrXU7ICM2NzM5CivmnLogPiBqxKs7ICM2NzNBCivmnLsgPiBqxKt1OyAjNjczQgor5py8ID4gYsStOyAjNjczQwor5py9ID4geMStdTsgIzY3M0QKK+acviA+IHTDrW5nOyAjNjczRQor5py/ID4gY8OsOyAjNjczRgor5p2AID4gc2jEgTsgIzY3NDAKK+adgiA+IHrDoTsgIzY3NDIKK+adgyA+IHF1w6FuOyAjNjc0Mwor5p2EID4gcWnEgW47ICM2NzQ0CivmnYUgPiB5w7o7ICM2NzQ1CivmnYYgPiBnxIFuOyAjNjc0Ngor5p2HID4gd8WrOyAjNjc0Nwor5p2IID4gY2jEgTsgIzY3NDgKK+adiSA+IHNoxIFuOyAjNjc0OQor5p2KID4geMO6bjsgIzY3NEEKK+adiyA+IGbEgW47ICM2NzRCCivmnYwgPiB3w7k7ICM2NzRDCivmnY0gPiB6xK07ICM2NzRECivmnY4gPiBsxK07ICM2NzRFCivmnY8gPiB4w6xuZzsgIzY3NEYKK+adkCA+IGPDoWk7ICM2NzUwCivmnZEgPiBjxatuOyAjNjc1MQor5p2SID4gcsOobjsgIzY3NTIKK+adkyA+IHNow6FvOyAjNjc1Mwor5p2UID4gdMWrbzsgIzY3NTQKK+adlSA+IGTDrDsgIzY3NTUKK+adliA+IHpow6BuZzsgIzY3NTYKK+adlyA+IG3DoW5nOyAjNjc1Nwor5p2YID4gY2jDrDsgIzY3NTgKK+admSA+IHnDrDsgIzY3NTkKK+admiA+IGfFrTsgIzY3NUEKK+admyA+IGfFjW5nOyAjNjc1Qgor5p2cID4gZMO5OyAjNjc1Qwor5p2dID4gecOtOyAjNjc1RAor5p2eID4gccStOyAjNjc1RQor5p2fID4gc2jDuTsgIzY3NUYKK+adoCA+IGfEgW5nOyAjNjc2MAor5p2hID4gdGnDoW87ICM2NzYxCivmnaUgPiBsw6FpOyAjNjc2NQor5p2nID4gbcOhbmc7ICM2NzY3CivmnaggPiB5w6FuZzsgIzY3NjgKK+adqSA+IG3DoDsgIzY3NjkKK+adqiA+IG1pxINvOyAjNjc2QQor5p2rID4gc8OsOyAjNjc2Qgor5p2sID4geXXDoW47ICM2NzZDCivmna0gPiBow6FuZzsgIzY3NkQKK+adriA+IGbDqGk7ICM2NzZFCivmna8gPiBixJNpOyAjNjc2Rgor5p2wID4gamnDqTsgIzY3NzAKK+adsSA+IGTFjW5nOyAjNjc3MQor5p2yID4gZ8SDbzsgIzY3NzIKK+adsyA+IHnEg287ICM2NzczCivmnbQgPiB4acSBbjsgIzY3NzQKK+adtSA+IGNoxa07ICM2Nzc1CivmnbYgPiBxxatuOyAjNjc3Ngor5p23ID4gcMOhOyAjNjc3Nwor5p24ID4gc2jFqzsgIzY3NzgKK+aduSA+IGh1w6A7ICM2Nzc5CivmnbogPiB4xKtuOyAjNjc3QQor5p27ID4gY2jFj3U7ICM2NzdCCivmnbwgPiB6aMO5OyAjNjc3Qwor5p29ID4gY2jFj3U7ICM2NzdECivmnb4gPiBzxY1uZzsgIzY3N0UKK+advyA+IGLEg247ICM2NzdGCivmnoAgPiBzxY1uZzsgIzY3ODAKK+aegSA+IGrDrTsgIzY3ODEKK+aegiA+IHl1w6g7ICM2NzgyCivmnoMgPiBqw6xuOyAjNjc4Mwor5p6EID4gZ8WNdTsgIzY3ODQKK+aehSA+IGrEqzsgIzY3ODUKK+aehiA+IG3DoW87ICM2Nzg2CivmnocgPiBww607ICM2Nzg3CivmnoggPiBiw6w7ICM2Nzg4CivmnokgPiB3xINuZzsgIzY3ODkKK+aeiiA+IMOgbmc7ICM2NzhBCivmnosgPiBmxIFuZzsgIzY3OEIKK+aejCA+IGbDqW47ICM2NzhDCivmno0gPiB5w6w7ICM2NzhECivmno4gPiBmw7o7ICM2NzhFCivmno8gPiBuw6FuOyAjNjc4Rgor5p6QID4geMSrOyAjNjc5MAor5p6RID4gaMO5OyAjNjc5MQor5p6SID4gecOhOyAjNjc5Mgor5p6TID4gZMWPdTsgIzY3OTMKK+aelCA+IHjDum47ICM2Nzk0CivmnpUgPiB6aMSVbjsgIzY3OTUKK+aeliA+IHnEgW87ICM2Nzk2CivmnpcgPiBsw61uOyAjNjc5Nwor5p6YID4gcsO5aTsgIzY3OTgKK+aemSA+IMOpOyAjNjc5OQor5p6aID4gbcOpaTsgIzY3OUEKK+aemyA+IHpow6BvOyAjNjc5Qgor5p6cID4gZ8WtbzsgIzY3OUMKK+aenSA+IHpoxKs7ICM2NzlECivmnp4gPiBjxY1uZzsgIzY3OUUKK+aenyA+IHnDuW47ICM2NzlGCivmnqEgPiBkxY91OyAjNjdBMQor5p6iID4gc2jFqzsgIzY3QTIKK+aeoyA+IHrEg287ICM2N0EzCivmnqUgPiBsw6w7ICM2N0E1CivmnqcgPiBqacOgbjsgIzY3QTcKK+aeqCA+IGNow6luZzsgIzY3QTgKK+aeqiA+IHFpxIFuZzsgIzY3QUEKK+aeqyA+IGbEk25nOyAjNjdBQgor5p6sID4gbsOhbjsgIzY3QUMKK+aerSA+IHhpxIFvOyAjNjdBRAor5p6uID4geGnEgW47ICM2N0FFCivmnq8gPiBrxas7ICM2N0FGCivmnrAgPiBww61uZzsgIzY3QjAKK+aesSA+IHnDrTsgIzY3QjEKK+aesiA+IHjErTsgIzY3QjIKK+aesyA+IHpoxKs7ICM2N0IzCivmnrQgPiBndcSDaTsgIzY3QjQKK+aetSA+IHhpxIFvOyAjNjdCNQor5p62ID4gamnDoDsgIzY3QjYKK+aetyA+IGppxIE7ICM2N0I3CivmnrggPiBnxY91OyAjNjdCOAor5p65ID4gZsWrOyAjNjdCOQor5p66ID4gbcOyOyAjNjdCQQor5p67ID4gecOsOyAjNjdCQgor5p68ID4gecOoOyAjNjdCQwor5p69ID4gecOoOyAjNjdCRAor5p6+ID4gc2jDrDsgIzY3QkUKK+aevyA+IG5pw6g7ICM2N0JGCivmn4AgPiBixK07ICM2N0MwCivmn4EgPiBkw7lvOyAjNjdDMQor5p+CID4gecOtOyAjNjdDMgor5p+DID4gbMOtbmc7ICM2N0MzCivmn4QgPiBixK1uZzsgIzY3QzQKK+afhSA+IG7ErTsgIzY3QzUKK+afhiA+IGzEgTsgIzY3QzYKK+afhyA+IGjDqTsgIzY3QzcKK+afiCA+IHDDoW47ICM2N0M4Civmn4kgPiBmw6FuOyAjNjdDOQor5p+KID4gemjFjW5nOyAjNjdDQQor5p+LID4gZMOgaTsgIzY3Q0IKK+afjCA+IGPDrTsgIzY3Q0MKK+afjSA+IHnEgW5nOyAjNjdDRAor5p+OID4gZsWrOyAjNjdDRQor5p+PID4gYsOzOyAjNjdDRgor5p+QID4gbcWPdTsgIzY3RDAKK+afkSA+IGfEgW47ICM2N0QxCivmn5IgPiBxxKs7ICM2N0QyCivmn5MgPiByxINuOyAjNjdEMwor5p+UID4gcsOzdTsgIzY3RDQKK+aflSA+IG3DoG87ICM2N0Q1Civmn5YgPiB6aMSBbzsgIzY3RDYKK+aflyA+IHPFjW5nOyAjNjdENwor5p+YID4gemjDqDsgIzY3RDgKK+afmSA+IHhpw6E7ICM2N0Q5Civmn5ogPiB5w7J1OyAjNjdEQQor5p+bID4gc2jEk247ICM2N0RCCivmn5wgPiBqxa07ICM2N0RDCivmn50gPiB0w7lvOyAjNjdERAor5p+eID4gesO5bzsgIzY3REUKK+afnyA+IG7DoW47ICM2N0RGCivmn6AgPiBuw61uZzsgIzY3RTAKK+afoSA+IHnFj25nOyAjNjdFMQor5p+iID4gZMStOyAjNjdFMgor5p+jID4gemjDrTsgIzY3RTMKK+afpCA+IHpoxIE7ICM2N0U0Civmn6UgPiBjaMOhOyAjNjdFNQor5p+mID4gZMOgbjsgIzY3RTYKK+afpyA+IGfFqzsgIzY3RTcKK+afqCA+IHB1OyAjNjdFOAor5p+pID4gasOsdTsgIzY3RTkKK+afqiA+IMSBbzsgIzY3RUEKK+afqyA+IGbDujsgIzY3RUIKK+afrCA+IGppxINuOyAjNjdFQwor5p+tID4gYsWNOyAjNjdFRAor5p+uID4gZMO5bzsgIzY3RUUKK+afryA+IGvEkzsgIzY3RUYKK+afsCA+IG7DoGk7ICM2N0YwCivmn7EgPiB6aMO5OyAjNjdGMQor5p+yID4gYsOsOyAjNjdGMgor5p+zID4gbMStdTsgIzY3RjMKK+aftCA+IGNow6FpOyAjNjdGNAor5p+1ID4gemjDoDsgIzY3RjUKK+aftiA+IHPDrDsgIzY3RjYKK+aftyA+IHpow7k7ICM2N0Y3Civmn7ggPiBwxJNpOyAjNjdGOAor5p+5ID4gc2jDrDsgIzY3RjkKK+afuiA+IGd1xINpOyAjNjdGQQor5p+7ID4gY2jDoTsgIzY3RkIKK+afvCA+IHnEg287ICM2N0ZDCivmn70gPiBqdcOpOyAjNjdGRAor5p++ID4gasOsdTsgIzY3RkUKK+afvyA+IHNow6w7ICM2N0ZGCivmoIAgPiB6aMSrOyAjNjgwMAor5qCBID4gbMStdTsgIzY4MDEKK+aggiA+IG3DqWk7ICM2ODAyCivmoIQgPiByw7NuZzsgIzY4MDQKK+aghSA+IHpow6A7ICM2ODA1CivmoIcgPiBiacSBbzsgIzY4MDcKK+agiCA+IHpow6BuOyAjNjgwOAor5qCJID4gamnDqTsgIzY4MDkKK+agiiA+IGzDs25nOyAjNjgwQQor5qCLID4gZMOybmc7ICM2ODBCCivmoIwgPiBsw7o7ICM2ODBDCivmoI4gPiBsw6w7ICM2ODBFCivmoI8gPiBsw6FuOyAjNjgwRgor5qCQID4gecWPbmc7ICM2ODEwCivmoJEgPiBzaMO5OyAjNjgxMQor5qCSID4geMO6bjsgIzY4MTIKK+agkyA+IHNodcSBbjsgIzY4MTMKK+aglCA+IHHDrDsgIzY4MTQKK+aglSA+IHpoxJNuOyAjNjgxNQor5qCWID4gccSrOyAjNjgxNgor5qCXID4gbMOsOyAjNjgxNwor5qCYID4gecStOyAjNjgxOAor5qCZID4geGnDoW5nOyAjNjgxOQor5qCaID4gemjDqG47ICM2ODFBCivmoJsgPiBsw6w7ICM2ODFCCivmoJwgPiBzw7k7ICM2ODFDCivmoJ0gPiBndcSBOyAjNjgxRAor5qCeID4ga8SBbjsgIzY4MUUKK+agnyA+IGLEq25nOyAjNjgxRgor5qCgID4gcsSVbjsgIzY4MjAKK+agoSA+IHhpw6BvOyAjNjgyMQor5qCiID4gYsOzOyAjNjgyMgor5qCjID4gcsSVbjsgIzY4MjMKK+agpCA+IGLDrG5nOyAjNjgyNAor5qClID4gesSrOyAjNjgyNQor5qCmID4gY2jDs3U7ICM2ODI2CivmoKcgPiB5w6w7ICM2ODI3CivmoKggPiBqacOpOyAjNjgyOAor5qCpID4geMWtOyAjNjgyOQor5qCqID4gemjFqzsgIzY4MkEKK+agqyA+IGppw6BuOyAjNjgyQgor5qCsID4gesO5aTsgIzY4MkMKK+agrSA+IMOpcjsgIzY4MkQKK+agriA+IMSVcjsgIzY4MkUKK+agryA+IHnFj3U7ICM2ODJGCivmoLAgPiBmw6E7ICM2ODMwCivmoLEgPiBnxY9uZzsgIzY4MzEKK+agsiA+IGvEg287ICM2ODMyCivmoLMgPiBsxINvOyAjNjgzMwor5qC0ID4gemjEgW47ICM2ODM0CivmoLUgPiBsw6w7ICM2ODM1CivmoLYgPiB5aW47ICM2ODM2CivmoLcgPiB5w6FuZzsgIzY4MzcKK+aguCA+IGjDqTsgIzY4MzgKK+aguSA+IGfEk247ICM2ODM5CivmoLogPiB6aMStOyAjNjgzQQor5qC7ID4gY2jDrDsgIzY4M0IKK+agvCA+IGfDqTsgIzY4M0MKK+agvSA+IHrEgWk7ICM2ODNECivmoL4gPiBsdcOhbjsgIzY4M0UKK+agvyA+IGbDujsgIzY4M0YKK+ahgCA+IGppw6k7ICM2ODQwCivmoYEgPiBow6FuZzsgIzY4NDEKK+ahgiA+IGfDuWk7ICM2ODQyCivmoYMgPiB0w6FvOyAjNjg0Mwor5qGEID4gZ3XDoG5nOyAjNjg0NAor5qGFID4gd8OpaTsgIzY4NDUKK+ahhiA+IGt1w6BuZzsgIzY4NDYKK+ahhyA+IHLDujsgIzY4NDcKK+ahiCA+IMOgbjsgIzY4NDgKK+ahiSA+IMOgbjsgIzY4NDkKK+ahiiA+IGp1w6BuOyAjNjg0QQor5qGLID4gecOtOyAjNjg0Qgor5qGMID4gemjFq287ICM2ODRDCivmoY0gPiBrxas7ICM2ODRECivmoY4gPiB6aMOtOyAjNjg0RQor5qGPID4gccOtb25nOyAjNjg0Rgor5qGQID4gdMOzbmc7ICM2ODUwCivmoZEgPiBzxIFuZzsgIzY4NTEKK+ahkiA+IHPEgW5nOyAjNjg1Mgor5qGTID4gaHXDoW47ICM2ODUzCivmoZQgPiBqacOpOyAjNjg1NAor5qGVID4gasOsdTsgIzY4NTUKK+ahliA+IHh1w6g7ICM2ODU2CivmoZcgPiBkw7lvOyAjNjg1Nwor5qGYID4gemjDuWk7ICM2ODU4CivmoZkgPiB5w7o7ICM2ODU5CivmoZogPiB6xINuOyAjNjg1QQor5qGcID4gecSrbmc7ICM2ODVDCivmoZ8gPiB6aMOgbjsgIzY4NUYKK+ahoCA+IHnDoTsgIzY4NjAKK+ahoSA+IG7DoW87ICM2ODYxCivmoaIgPiB6aMSTbjsgIzY4NjIKK+ahoyA+IGTEg25nOyAjNjg2Mwor5qGkID4gccSrOyAjNjg2NAor5qGlID4gcWnDoW87ICM2ODY1CivmoaYgPiBodcOgOyAjNjg2Ngor5qGnID4ga3XDoGk7ICM2ODY3CivmoaggPiBqacSDbmc7ICM2ODY4CivmoakgPiB6aHXEgW5nOyAjNjg2OQor5qGqID4geMO6bjsgIzY4NkEKK+ahqyA+IHPFq287ICM2ODZCCivmoawgPiBzaMSBOyAjNjg2Qwor5qGtID4gemjEk247ICM2ODZECivmoa4gPiBixJNpOyAjNjg2RQor5qGvID4gdMSrbmc7ICM2ODZGCivmobAgPiBndcSBOyAjNjg3MAor5qGxID4gasOsbmc7ICM2ODcxCivmobIgPiBiw7M7ICM2ODcyCivmobMgPiBiw6huOyAjNjg3Mwor5qG0ID4gZsO6OyAjNjg3NAor5qG1ID4gcsWtaTsgIzY4NzUKK+ahtiA+IHTFj25nOyAjNjg3Ngor5qG3ID4ganXDqTsgIzY4NzcKK+ahuCA+IHjEqzsgIzY4NzgKK+ahuSA+IGzDoW5nOyAjNjg3OQor5qG6ID4gbMStdTsgIzY4N0EKK+ahuyA+IGbEk25nOyAjNjg3Qgor5qG8ID4gccSrOyAjNjg3Qwor5qG9ID4gd8SVbjsgIzY4N0QKK+ahviA+IGrFq247ICM2ODdFCivmob8gPiBnxINuOyAjNjg3Rgor5qKAID4gY8O5OyAjNjg4MAor5qKBID4gbGnDoW5nOyAjNjg4MQor5qKCID4gccOtdTsgIzY4ODIKK+aigyA+IHTErW5nOyAjNjg4Mwor5qKEID4gecWPdTsgIzY4ODQKK+aihSA+IG3DqWk7ICM2ODg1CivmooYgPiBixIFuZzsgIzY4ODYKK+aihyA+IGzDsm5nOyAjNjg4Nwor5qKIID4gcMSTbmc7ICM2ODg4CivmookgPiB6aHXEgW5nOyAjNjg4OQor5qKKID4gZMOsOyAjNjg4QQor5qKLID4geHXEgW47ICM2ODhCCivmoowgPiB0w7o7ICM2ODhDCivmoo0gPiB6w6BvOyAjNjg4RAor5qKOID4gxIFvOyAjNjg4RQor5qKPID4gZ8O5OyAjNjg4Rgor5qKQID4gYsOsOyAjNjg5MAor5qKRID4gZMOtOyAjNjg5MQor5qKSID4gaMOhbjsgIzY4OTIKK+aikyA+IHrErTsgIzY4OTMKK+ailCA+IHpoxKs7ICM2ODk0CivmopUgPiByw6huOyAjNjg5NQor5qKWID4gYsOoaTsgIzY4OTYKK+ailyA+IGfElW5nOyAjNjg5Nwor5qKYID4gamnDoG47ICM2ODk4CivmopkgPiBodcOgbjsgIzY4OTkKK+aimiA+IHfEg247ICM2ODlBCivmopsgPiBuw7pvOyAjNjg5Qgor5qKcID4gamnDoTsgIzY4OUMKK+ainSA+IHRpw6FvOyAjNjg5RAor5qKeID4gasOsOyAjNjg5RQor5qKfID4geGnEgW87ICM2ODlGCivmoqAgPiBsx5o7ICM2OEEwCivmoqEgPiBodcOhbjsgIzY4QTEKK+aioiA+IHNoxIFvOyAjNjhBMgor5qKjID4gY8OpbjsgIzY4QTMKK+aipCA+IGbDqW47ICM2OEE0CivmoqUgPiBzxY1uZzsgIzY4QTUKK+aipiA+IG3DqG5nOyAjNjhBNgor5qKnID4gd8O6OyAjNjhBNwor5qKoID4gbMOtOyAjNjhBOAor5qKpID4gbMOtOyAjNjhBOQor5qKqID4gZMOydTsgIzY4QUEKK+aiqyA+IGPEk247ICM2OEFCCivmoqwgPiB5xK1uZzsgIzY4QUMKK+airSA+IHPFq287ICM2OEFECivmoq4gPiBqw7o7ICM2OEFFCivmoq8gPiB0xKs7ICM2OEFGCivmorAgPiBqacOoOyAjNjhCMAor5qKxID4ga8WtbjsgIzY4QjEKK+aisiA+IHpow7pvOyAjNjhCMgor5qKzID4gc2jFqzsgIzY4QjMKK+aitCA+IGNoxIFuOyAjNjhCNAor5qK1ID4gZsOgbjsgIzY4QjUKK+aitiA+IHfElWk7ICM2OEI2CivmorcgPiBqw6xuZzsgIzY4QjcKK+aiuCA+IGzDrTsgIzY4QjgKK+aiuSA+IGLEq25nOyAjNjhCOQor5qK8ID4gdMOhbzsgIzY4QkMKK+aivSA+IHpow6w7ICM2OEJECivmor4gPiBsw6FpOyAjNjhCRQor5qK/ID4gbGnDoW47ICM2OEJGCivmo4AgPiBqacSDbjsgIzY4QzAKK+ajgSA+IHpow7pvOyAjNjhDMQor5qOCID4gbMOtbmc7ICM2OEMyCivmo4MgPiBsw607ICM2OEMzCivmo4QgPiBxw6w7ICM2OEM0Civmo4UgPiBiw6xuZzsgIzY4QzUKK+ajhiA+IHpoxatuOyAjNjhDNgor5qOHID4gY8WNbmc7ICM2OEM3Civmo4ggPiBxacOgbjsgIzY4QzgKK+ajiSA+IG1pw6FuOyAjNjhDOQor5qOKID4gccOtOyAjNjhDQQor5qOLID4gccOtOyAjNjhDQgor5qOMID4gY8SDaTsgIzY4Q0MKK+ajjSA+IGfDuW47ICM2OENECivmo44gPiBjaMOhbjsgIzY4Q0UKK+ajjyA+IHTDqDsgIzY4Q0YKK+ajkCA+IGbElWk7ICM2OEQwCivmo5EgPiBww6FpOyAjNjhEMQor5qOSID4gYsOgbmc7ICM2OEQyCivmo5MgPiBwxY91OyAjNjhEMwor5qOUID4gaMWrbjsgIzY4RDQKK+ajlSA+IHrFjW5nOyAjNjhENQor5qOWID4gY2jDqW5nOyAjNjhENgor5qOXID4gesSDbzsgIzY4RDcKK+ajmCA+IGrDrTsgIzY4RDgKK+ajmSA+IGzDrDsgIzY4RDkKK+ajmiA+IHDDqW5nOyAjNjhEQQor5qObID4gecO5OyAjNjhEQgor5qOcID4gecO5OyAjNjhEQwor5qOdID4gZ8O5OyAjNjhERAor5qOeID4gaMO6bjsgIzY4REUKK+ajnyA+IGTDsm5nOyAjNjhERgor5qOgID4gdMOhbmc7ICM2OEUwCivmo6EgPiBnxIFuZzsgIzY4RTEKK+ajoiA+IHfEg25nOyAjNjhFMgor5qOjID4gZMOsOyAjNjhFMwor5qOkID4geMOtOyAjNjhFNAor5qOlID4gZsOhbjsgIzY4RTUKK+ajpiA+IGNoxJNuZzsgIzY4RTYKK+ajpyA+IHpow6BuOyAjNjhFNwor5qOoID4gccStOyAjNjhFOAor5qOpID4geXXEgW47ICM2OEU5Civmo6ogPiB5xINuOyAjNjhFQQor5qOrID4gecO5OyAjNjhFQgor5qOsID4gcXXEgW47ICM2OEVDCivmo60gPiB5w6w7ICM2OEVECivmo64gPiBzxJNuOyAjNjhFRQor5qOvID4gcsSVbjsgIzY4RUYKK+ajsCA+IGNow7ppOyAjNjhGMAor5qOxID4gbMOpbmc7ICM2OEYxCivmo7IgPiBxxKs7ICM2OEYyCivmo7MgPiB6aMO6bzsgIzY4RjMKK+ajtCA+IGbDujsgIzY4RjQKK+ajtSA+IGvEkzsgIzY4RjUKK+ajtiA+IGzDoWk7ICM2OEY2Civmo7cgPiB6xY11OyAjNjhGNwor5qO4ID4gesWNdTsgIzY4RjgKK+ajuSA+IHpoxatvOyAjNjhGOQor5qO6ID4gZ3XEgW47ICM2OEZBCivmo7sgPiBmw6luOyAjNjhGQgor5qO8ID4gZsOpbjsgIzY4RkMKK+ajvSA+IGNoxJNuOyAjNjhGRAor5qO+ID4gccOtb25nOyAjNjhGRQor5qO/ID4gbmnDqDsgIzY4RkYKK+akgCA+IHfEg247ICM2OTAwCivmpIEgPiBnxa1vOyAjNjkwMQor5qSCID4gbMO5OyAjNjkwMgor5qSDID4gaMOhbzsgIzY5MDMKK+akhCA+IGppxJM7ICM2OTA0CivmpIUgPiB5xK07ICM2OTA1CivmpIYgPiBjaMOzdTsgIzY5MDYKK+akhyA+IGrFrTsgIzY5MDcKK+akiCA+IGrDujsgIzY5MDgKK+akiSA+IGNow6luZzsgIzY5MDkKK+akiiA+IHrDum87ICM2OTBBCivmpIsgPiBsacOhbmc7ICM2OTBCCivmpIwgPiBxacSBbmc7ICM2OTBDCivmpI0gPiB6aMOtOyAjNjkwRAor5qSOID4gemjFq2k7ICM2OTBFCivmpI8gPiB5xIE7ICM2OTBGCivmpJAgPiBqxas7ICM2OTEwCivmpJEgPiBixJNpOyAjNjkxMQor5qSSID4gamnEgW87ICM2OTEyCivmpJMgPiB6aMO6bzsgIzY5MTMKK+aklCA+IHrEqzsgIzY5MTQKK+aklSA+IGLEq247ICM2OTE1CivmpJYgPiBww6luZzsgIzY5MTYKK+aklyA+IGTDrG5nOyAjNjkxNwor5qSYID4gY2jFrTsgIzY5MTgKK+aknCA+IGppxINuOyAjNjkxQwor5qSdID4gZ8WraTsgIzY5MUQKK+akniA+IHjDrDsgIzY5MUUKK+aknyA+IGTDujsgIzY5MUYKK+akoCA+IHFpw6BuOyAjNjkyMAor5qSkID4gbMO6bzsgIzY5MjQKK+akpSA+IHpoxKs7ICM2OTI1CivmpKogPiBww6huZzsgIzY5MkEKK+akqyA+IHpoxINuOyAjNjkyQgor5qStID4gdMWtbzsgIzY5MkQKK+akriA+IHPEk247ICM2OTJFCivmpK8gPiBkw7pvOyAjNjkyRgor5qSwID4gecOpOyAjNjkzMAor5qSxID4gZsOydTsgIzY5MzEKK+aksiA+IHfElWk7ICM2OTMyCivmpLMgPiB3xJNpOyAjNjkzMwor5qS0ID4gZHXDoG47ICM2OTM0CivmpLUgPiBqacSDOyAjNjkzNQor5qS2ID4gesWNbmc7ICM2OTM2CivmpLcgPiBqacSBbjsgIzY5MzcKK+akuCA+IHnDrTsgIzY5MzgKK+akuSA+IHNow6huOyAjNjkzOQor5qS6ID4geMOtOyAjNjkzQQor5qS7ID4gecOgbjsgIzY5M0IKK+akvCA+IHnEg247ICM2OTNDCivmpL0gPiBjaHXDoW47ICM2OTNECivmpL4gPiB6aMOgbjsgIzY5M0UKK+akvyA+IGNoxatuOyAjNjkzRgor5qWAID4gecWtOyAjNjk0MAor5qWBID4gaMOpOyAjNjk0MQor5qWCID4gemjEgTsgIzY5NDIKK+algyA+IHfDsjsgIzY5NDMKK+alhCA+IHBpw6FuOyAjNjk0NAor5qWFID4gYsOsOyAjNjk0NQor5qWGID4gecSBbzsgIzY5NDYKK+alhyA+IGjDuW87ICM2OTQ3CivmpYggPiB4xas7ICM2OTQ4CivmpYkgPiByw7lvOyAjNjk0OQor5qWKID4gecOhbmc7ICM2OTRBCivmpYsgPiBsw6A7ICM2OTRCCivmpYwgPiB5w6FuOyAjNjk0Qwor5qWNID4gYsSVbjsgIzY5NEQKK+aljiA+IGjDum47ICM2OTRFCivmpY8gPiBrw7ppOyAjNjk0Rgor5qWQID4gamnDqDsgIzY5NTAKK+alkSA+IGvDumk7ICM2OTUxCivmpZIgPiBzxKs7ICM2OTUyCivmpZMgPiBmxJNuZzsgIzY5NTMKK+allCA+IHhpw6g7ICM2OTU0CivmpZUgPiB0xa1vOyAjNjk1NQor5qWWID4gemjDrDsgIzY5NTYKK+allyA+IGppw6BuOyAjNjk1Nwor5qWYID4gbcO5OyAjNjk1OAor5qWZID4gbcOgbzsgIzY5NTkKK+almiA+IGNoxa07ICM2OTVBCivmpZsgPiBow7k7ICM2OTVCCivmpZwgPiBow7o7ICM2OTVDCivmpZ0gPiBsacOgbjsgIzY5NUQKK+alniA+IGzDqW5nOyAjNjk1RQor5qWfID4gdMOtbmc7ICM2OTVGCivmpaAgPiBuw6FuOyAjNjk2MAor5qWhID4gecO6OyAjNjk2MQor5qWiID4gecOzdTsgIzY5NjIKK+aloyA+IG3DqWk7ICM2OTYzCivmpaQgPiBzxY9uZzsgIzY5NjQKK+alpSA+IHh1w6BuOyAjNjk2NQor5qWmID4geHXDoG47ICM2OTY2CivmpacgPiB5xKtuZzsgIzY5NjcKK+alqCA+IHpoxJNuOyAjNjk2OAor5qWpID4gcGnDoW47ICM2OTY5CivmpaogPiB5w6g7ICM2OTZBCivmpasgPiBqw607ICM2OTZCCivmpawgPiBqacOpOyAjNjk2Qwor5qWtID4gecOoOyAjNjk2RAor5qWuID4gY2jFrTsgIzY5NkUKK+alryA+IHNoxa1uOyAjNjk2Rgor5qWwID4gecO6OyAjNjk3MAor5qWxID4gY8OydTsgIzY5NzEKK+alsiA+IHfEk2k7ICM2OTcyCivmpbMgPiBtw6lpOyAjNjk3Mwor5qW0ID4gZMOsOyAjNjk3NAor5qW1ID4gasOtOyAjNjk3NQor5qW2ID4gamnDqTsgIzY5NzYKK+altyA+IGvEg2k7ICM2OTc3CivmpbggPiBxxKt1OyAjNjk3OAor5qW5ID4gecOtbmc7ICM2OTc5CivmpbogPiByw7N1OyAjNjk3QQor5qW7ID4gaMOpbmc7ICM2OTdCCivmpbwgPiBsw7N1OyAjNjk3Qwor5qW9ID4gbMOoOyAjNjk3RAor5qaAID4gcMStbjsgIzY5ODAKK+amgiA+IGfDoGk7ICM2OTgyCivmpoMgPiB0w6FuOyAjNjk4Mwor5qaEID4gbMSDbjsgIzY5ODQKK+amhSA+IHnDum47ICM2OTg1CivmpoYgPiB5w7o7ICM2OTg2CivmpocgPiBjaMOobjsgIzY5ODcKK+amiCA+IGzHmDsgIzY5ODgKK+amiSA+IGrFrTsgIzY5ODkKK+amjSA+IHhpw6g7ICM2OThECivmpo4gPiBqacSDOyAjNjk4RQor5qaPID4gecOsOyAjNjk4Rgor5qaQID4gemjEg247ICM2OTkwCivmppEgPiBmw7k7ICM2OTkxCivmppIgPiBuw6BpOyAjNjk5Mgor5qaTID4gbcOsOyAjNjk5Mwor5qaUID4gbMOhbmc7ICM2OTk0CivmppUgPiByw7NuZzsgIzY5OTUKK+amliA+IGfFrTsgIzY5OTYKK+amlyA+IGppw6BuOyAjNjk5Nwor5qaYID4gasWtOyAjNjk5OAor5qaZID4gdMSDOyAjNjk5OQor5qaaID4gecSDbzsgIzY5OUEKK+ammyA+IHpoxJNuOyAjNjk5Qgor5qacID4gYsSDbmc7ICM2OTlDCivmpp0gPiBzaMSBOyAjNjk5RAor5qaeID4geXXDoW47ICM2OTlFCivmpp8gPiB6xK07ICM2OTlGCivmpqAgPiBtxKtuZzsgIzY5QTAKK+amoSA+IHPDuTsgIzY5QTEKK+amoiA+IGppw6A7ICM2OUEyCivmpqMgPiB5w6FvOyAjNjlBMwor5qakID4gamnDqTsgIzY5QTQKK+ampSA+IGh1xINuZzsgIzY5QTUKK+ampiA+IGfDoG47ICM2OUE2CivmpqcgPiBmxJVpOyAjNjlBNwor5qaoID4gemjDoDsgIzY5QTgKK+amqSA+IHFpw6FuOyAjNjlBOQor5qaqID4gbcOgOyAjNjlBQQor5qarID4gc8WtbjsgIzY5QUIKK+amrCA+IHl1w6FuOyAjNjlBQwor5qatID4geGnDqDsgIzY5QUQKK+amriA+IHLDs25nOyAjNjlBRQor5qavID4gc2jDrTsgIzY5QUYKK+amsCA+IHpoxKs7ICM2OUIwCivmprEgPiBjxatpOyAjNjlCMQor5qayID4gecO6bjsgIzY5QjIKK+amsyA+IHTDrW5nOyAjNjlCMwor5qa0ID4gbMOtdTsgIzY5QjQKK+amtSA+IHLDs25nOyAjNjlCNQor5qa2ID4gdMOhbmc7ICM2OUI2CivmprcgPiBxdcOoOyAjNjlCNwor5qa4ID4gemjEgWk7ICM2OUI4CivmprkgPiBzxKs7ICM2OUI5CivmprogPiBzaMOobmc7ICM2OUJBCivmprsgPiB0w6A7ICM2OUJCCivmprwgPiBrw6g7ICM2OUJDCivmpr0gPiB4xKs7ICM2OUJECivmpr4gPiBnw7k7ICM2OUJFCivmpr8gPiBxxKs7ICM2OUJGCivmp4AgPiBrxINvOyAjNjlDMAor5qeBID4gZ8SDbzsgIzY5QzEKK+angiA+IHPFq247ICM2OUMyCivmp4MgPiBww6FuOyAjNjlDMwor5qeEID4gdMSBbzsgIzY5QzQKK+anhSA+IGfDqTsgIzY5QzUKK+anhiA+IHjDum47ICM2OUM2Civmp4cgPiBkacSBbjsgIzY5QzcKK+aniCA+IG7DsnU7ICM2OUM4Civmp4kgPiBqw607ICM2OUM5Civmp4ogPiBzaMO5bzsgIzY5Q0EKK+aniyA+IGfDsnU7ICM2OUNCCivmp4wgPiBjaMO6aTsgIzY5Q0MKK+anjSA+IHFpxIFuZzsgIzY5Q0QKK+anjiA+IGNoxIE7ICM2OUNFCivmp48gPiBxacSDbjsgIzY5Q0YKK+ankCA+IGh1w6FpOyAjNjlEMAor5qeRID4gbcOpaTsgIzY5RDEKK+ankiA+IHjDuTsgIzY5RDIKK+ankyA+IGfDoG5nOyAjNjlEMwor5qeUID4gZ8SBbzsgIzY5RDQKK+anlSA+IHpow7pvOyAjNjlENQor5qeWID4gdMO5bzsgIzY5RDYKK+anmCA+IHnDoG5nOyAjNjlEOAor5qeZID4gZGnEgW47ICM2OUQ5Civmp5ogPiBqacSDOyAjNjlEQQor5qebID4gamnDoG47ICM2OURCCivmp5wgPiB6w7lpOyAjNjlEQwor5qefID4gYsSrbjsgIzY5REYKK+anoCA+IHpoxas7ICM2OUUwCivmp6IgPiB4w607ICM2OUUyCivmp6MgPiBxxK07ICM2OUUzCivmp6QgPiBsacOhbjsgIzY5RTQKK+anpSA+IGjDuWk7ICM2OUU1Civmp6YgPiB5w7NuZzsgIzY5RTYKK+anpyA+IHFpw6BuOyAjNjlFNwor5qeoID4gZ8WtbzsgIzY5RTgKK+anqSA+IGfDoGk7ICM2OUU5Civmp6ogPiBnw6BpOyAjNjlFQQor5qerID4gdHXDoW47ICM2OUVCCivmp6wgPiBodcOgOyAjNjlFQwor5qetID4gY8O5OyAjNjlFRAor5qeuID4gc8STbjsgIzY5RUUKK+anryA+IGPFq2k7ICM2OUVGCivmp7AgPiBiw6huZzsgIzY5RjAKK+ansSA+IHnFj3U7ICM2OUYxCivmp7IgPiBow7o7ICM2OUYyCivmp7MgPiBqacSDbmc7ICM2OUYzCivmp7QgPiBow7k7ICM2OUY0Civmp7UgPiBodcOgbjsgIzY5RjUKK+antiA+IGvDuWk7ICM2OUY2Civmp7cgPiB5w6w7ICM2OUY3Civmp7ggPiBuacOoOyAjNjlGOAor5qe5ID4gZ8SBbzsgIzY5RjkKK+anuiA+IGvEgW5nOyAjNjlGQQor5qe7ID4gZ8WraTsgIzY5RkIKK+anvCA+IGfFq2k7ICM2OUZDCivmp70gPiBjw6FvOyAjNjlGRAor5qe+ID4gbcOhbjsgIzY5RkUKK+anvyA+IGrErW47ICM2OUZGCivmqIAgPiBkw6w7ICM2QTAwCivmqIEgPiB6aHXEgW5nOyAjNkEwMQor5qiCID4gbMOoOyAjNkEwMgor5qiDID4gbMOhbmc7ICM2QTAzCivmqIQgPiBjaMOpbjsgIzZBMDQKK+aohSA+IGPFjW5nOyAjNkEwNQor5qiGID4gbMOtOyAjNkEwNgor5qiHID4geMSrdTsgIzZBMDcKK+aoiCA+IHHDrW5nOyAjNkEwOAor5qiJID4gc2h1xINuZzsgIzZBMDkKK+aoiiA+IGbDoW47ICM2QTBBCivmqIsgPiB0xY1uZzsgIzZBMEIKK+aojCA+IGd1w6BuOyAjNkEwQwor5qiNID4gasSrOyAjNkEwRAor5qiOID4gc8WrbzsgIzZBMEUKK+aojyA+IGzElWk7ICM2QTBGCivmqJAgPiBsxa07ICM2QTEwCivmqJEgPiBsacOhbmc7ICM2QTExCivmqJIgPiBtw6w7ICM2QTEyCivmqJMgPiBsw7N1OyAjNkExMwor5qiUID4gY2jDoW87ICM2QTE0CivmqJUgPiBzw7k7ICM2QTE1CivmqJYgPiBrxJM7ICM2QTE2CivmqJcgPiBzaMWrOyAjNkExNwor5qiYID4gdMOhbmc7ICM2QTE4CivmqJkgPiBiacSBbzsgIzZBMTkKK+aomiA+IGzDuTsgIzZBMUEKK+aomyA+IGrEq3U7ICM2QTFCCivmqJwgPiBzaMO5OyAjNkExQwor5qidID4gemjEgTsgIzZBMUQKK+aoniA+IHNoxas7ICM2QTFFCivmqJ8gPiB6aMSBbmc7ICM2QTFGCivmqKAgPiBtw6luOyAjNkEyMAor5qihID4gbcOzOyAjNkEyMQor5qiiID4gbmnEg287ICM2QTIyCivmqKMgPiB5w6BuZzsgIzZBMjMKK+aopCA+IHRpw6FvOyAjNkEyNAor5qilID4gcMOpbmc7ICM2QTI1CivmqKYgPiB6aMO5OyAjNkEyNgor5qinID4gc2jEgTsgIzZBMjcKK+aoqCA+IHjEqzsgIzZBMjgKK+aoqSA+IHF1w6FuOyAjNkEyOQor5qiqID4gaMOpbmc7ICM2QTJBCivmqKsgPiBqacSBbjsgIzZBMkIKK+aorCA+IGPFjW5nOyAjNkEyQwor5qivID4gcWnDoW5nOyAjNkEyRgor5qixID4gecSrbmc7ICM2QTMxCivmqLIgPiDDqHI7ICM2QTMyCivmqLMgPiB4w61uOyAjNkEzMwor5qi0ID4gemjDrTsgIzZBMzQKK+aotSA+IHFpw6FvOyAjNkEzNQor5qi2ID4gesWraTsgIzZBMzYKK+aotyA+IGPFjW5nOyAjNkEzNwor5qi4ID4gcMO6OyAjNkEzOAor5qi5ID4gc2jDuTsgIzZBMzkKK+aouiA+IGh1w6A7ICM2QTNBCivmqLsgPiBrw7lpOyAjNkEzQgor5qi8ID4gemjEk247ICM2QTNDCivmqL0gPiB6xatuOyAjNkEzRAor5qi+ID4geXXDqDsgIzZBM0UKK+aovyA+IHpoxINuOyAjNkEzRgor5qmAID4geMSrOyAjNkE0MAor5qmBID4geMO6bjsgIzZBNDEKK+apgiA+IGRpw6BuOyAjNkE0Mgor5qmDID4gZsSBOyAjNkE0Mwor5qmEID4gZ8SDbjsgIzZBNDQKK+aphSA+IG3DszsgIzZBNDUKK+aphiA+IHfFrTsgIzZBNDYKK+aphyA+IHFpxIFvOyAjNkE0Nwor5qmIID4gbsOhbzsgIzZBNDgKK+apiSA+IGzDrG47ICM2QTQ5CivmqYogPiBsw611OyAjNkE0QQor5qmLID4gcWnDoW87ICM2QTRCCivmqYwgPiB4acOgbjsgIzZBNEMKK+apjSA+IHLDuW47ICM2QTRECivmqY4gPiBmw6FuOyAjNkE0RQor5qmPID4gemjEg247ICM2QTRGCivmqZAgPiB0w7lvOyAjNkE1MAor5qmRID4gbMSDbzsgIzZBNTEKK+apkiA+IHnDum47ICM2QTUyCivmqZMgPiBzaMO5bjsgIzZBNTMKK+aplCA+IHTDumk7ICM2QTU0CivmqZUgPiBjaMSTbmc7ICM2QTU1CivmqZYgPiB0w6FuZzsgIzZBNTYKK+aplyA+IG3DqW5nOyAjNkE1Nwor5qmYID4gasO6OyAjNkE1OAor5qmZID4gY2jDqW5nOyAjNkE1OQor5qmaID4gc8O5OyAjNkE1QQor5qmbID4ganXDqTsgIzZBNUIKK+apnCA+IGp1w6k7ICM2QTVDCivmqZ0gPiB0xIFuOyAjNkE1RAor5qmeID4gaMO5aTsgIzZBNUUKK+apnyA+IGrEqzsgIzZBNUYKK+apoCA+IG7FrW87ICM2QTYwCivmqaEgPiB4acOgbmc7ICM2QTYxCivmqaIgPiB0xa1vOyAjNkE2Mgor5qmjID4gbsStbmc7ICM2QTYzCivmqaQgPiByxa1pOyAjNkE2NAor5qmlID4gemjFqzsgIzZBNjUKK+appiA+IGNodcOhbmc7ICM2QTY2CivmqacgPiB6xJNuZzsgIzZBNjcKK+apqCA+IGbDqW47ICM2QTY4CivmqakgPiBxw61vbmc7ICM2QTY5CivmqaogPiByxINuOyAjNkE2QQor5qmrID4gaMOpbmc7ICM2QTZCCivmqawgPiBjw6luOyAjNkE2Qwor5qmtID4gZ8WrOyAjNkE2RAor5qmuID4gbMStdTsgIzZBNkUKK+apryA+IGzDoG87ICM2QTZGCivmqbAgPiBnxIFvOyAjNkE3MAor5qmxID4gY2jDujsgIzZBNzEKK+aptiA+IGrDrTsgIzZBNzYKK+aptyA+IGTFjXU7ICM2QTc3CivmqbkgPiBsxa07ICM2QTc5CivmqbwgPiB5dcOhbjsgIzZBN0MKK+apvSA+IHTDoDsgIzZBN0QKK+apviA+IHNoxas7ICM2QTdFCivmqb8gPiBqacSBbmc7ICM2QTdGCivmqoAgPiB0w6FuOyAjNkE4MAor5qqBID4gbMStbjsgIzZBODEKK+aqgiA+IG7Ds25nOyAjNkE4Mgor5qqDID4gecStbjsgIzZBODMKK+aqhCA+IHjDrTsgIzZBODQKK+aqhSA+IHPDuWk7ICM2QTg1CivmqoYgPiBzaMSBbjsgIzZBODYKK+aqhyA+IHrDuWk7ICM2QTg3CivmqoggPiB4dcOhbjsgIzZBODgKK+aqiSA+IGNoxJNuZzsgIzZBODkKK+aqiiA+IGfDoG47ICM2QThBCivmqosgPiBqxas7ICM2QThCCivmqowgPiB6w7lpOyAjNkE4Qwor5qqNID4gecOsOyAjNkE4RAor5qqOID4gccOtbjsgIzZBOEUKK+aqjyA+IHDFrTsgIzZBOEYKK+aqkCA+IHnDoW47ICM2QTkwCivmqpEgPiBsw6lpOyAjNkE5MQor5qqSID4gZsSTbmc7ICM2QTkyCivmqpMgPiBoxa1pOyAjNkE5Mwor5qqUID4gZMSDbmc7ICM2QTk0CivmqpUgPiBqw6w7ICM2QTk1CivmqpYgPiBzw7lpOyAjNkE5Ngor5qqXID4gYsOyOyAjNkE5Nwor5qqYID4gYsOsOyAjNkE5OAor5qqZID4gZMStbmc7ICM2QTk5CivmqpogPiBjaMWtOyAjNkE5QQor5qqbID4gemh1xIE7ICM2QTlCCivmqpwgPiBrdcOgaTsgIzZBOUMKK+aqnSA+IGrDrTsgIzZBOUQKK+aqniA+IGppxJU7ICM2QTlFCivmqp8gPiBqacSDOyAjNkE5Rgor5qqgID4gccOtbmc7ICM2QUEwCivmqqEgPiB6aMOoOyAjNkFBMQor5qqiID4gamnEg247ICM2QUEyCivmqqMgPiBxacOhbmc7ICM2QUEzCivmqqQgPiBkw6BvOyAjNkFBNAor5qqlID4gecStOyAjNkFBNQor5qqmID4gYmnEg287ICM2QUE2CivmqqcgPiBzxY1uZzsgIzZBQTcKK+aqqCA+IHNoxJM7ICM2QUE4CivmqqkgPiBsxK1uOyAjNkFBOQor5qqrID4gY2jDoTsgIzZBQUIKK+aqrCA+IG3DqW5nOyAjNkFBQwor5qqtID4gecOtbjsgIzZBQUQKK+aqriA+IHTDoW87ICM2QUFFCivmqq8gPiB0w6FpOyAjNkFBRgor5qqwID4gbWnDoW47ICM2QUIwCivmqrEgPiBxw607ICM2QUIxCivmqrIgPiB0w7NhbjsgIzZBQjIKK+aqsyA+IGLEq247ICM2QUIzCivmqrQgPiBow7lvOyAjNkFCNAor5qq1ID4gasOsOyAjNkFCNQor5qq2ID4gcWnEgW47ICM2QUI2CivmqrcgPiBtw607ICM2QUI3CivmqrggPiBuw61uZzsgIzZBQjgKK+aquSA+IHnEqzsgIzZBQjkKK+aquiA+IGfEg287ICM2QUJBCivmqrsgPiBqacOgbjsgIzZBQkIKK+aqvCA+IHnDrG47ICM2QUJDCivmqr0gPiDDqXI7ICM2QUJECivmqr4gPiBxxK1uZzsgIzZBQkUKK+aqvyA+IHnEg247ICM2QUJGCivmq4AgPiBxw607ICM2QUMwCivmq4EgPiBtw6w7ICM2QUMxCivmq4IgPiB6aMOgbzsgIzZBQzIKK+argyA+IGfDuWk7ICM2QUMzCivmq4QgPiBjaMWrbjsgIzZBQzQKK+arhSA+IGrEqzsgIzZBQzUKK+arhiA+IGvDumk7ICM2QUM2Civmq4cgPiBww7M7ICM2QUM3Civmq4ggPiBkw6huZzsgIzZBQzgKK+ariSA+IGNow7o7ICM2QUM5Civmq4sgPiBtacOhbjsgIzZBQ0IKK+arjCA+IHnFjXU7ICM2QUNDCivmq40gPiB6aMOsOyAjNkFDRAor5quOID4gZ3XDoG5nOyAjNkFDRQor5quPID4gcWnEgW47ICM2QUNGCivmq5AgPiBsxJVpOyAjNkFEMAor5quRID4gbMSVaTsgIzZBRDEKK+arkiA+IHPDoDsgIzZBRDIKK+arkyA+IGzFrTsgIzZBRDMKK+arlCA+IGzDrDsgIzZBRDQKK+arlSA+IGN1w6FuOyAjNkFENQor5quWID4gbMeYOyAjNkFENgor5quXID4gbWnDqDsgIzZBRDcKK+armCA+IGjDuWk7ICM2QUQ4Civmq5kgPiDFjXU7ICM2QUQ5Civmq5ogPiBsx5g7ICM2QURBCivmq5sgPiBqacOpOyAjNkFEQgor5qucID4gZ8SBbzsgIzZBREMKK+arnSA+IGTDujsgIzZBREQKK+arniA+IHl1w6FuOyAjNkFERQor5qufID4gbMOsOyAjNkFERgor5qugID4gZsOoaTsgIzZBRTAKK+aroSA+IHpow7pvOyAjNkFFMQor5quiID4gc8WPdTsgIzZBRTIKK+aroyA+IGxpw6FuOyAjNkFFMwor5qulID4gY2jDujsgIzZBRTUKK+arpyA+IHpoxas7ICM2QUU3Civmq6ggPiBsw7o7ICM2QUU4Civmq6kgPiB5w6FuOyAjNkFFOQor5quqID4gbMOsOyAjNkFFQQor5qurID4gemjFqzsgIzZBRUIKK+arrCA+IGNow6huOyAjNkFFQwor5qutID4gamnDqTsgIzZBRUQKK+arriA+IMOoOyAjNkFFRQor5quvID4gc8WrOyAjNkFFRgor5quwID4gaHXDoWk7ICM2QUYwCivmq7EgPiBuacOoOyAjNkFGMQor5quyID4gecO5OyAjNkFGMgor5quzID4gbMOzbmc7ICM2QUYzCivmq7QgPiBsw6BpOyAjNkFGNAor5qu2ID4geGnEg247ICM2QUY2Civmq7ggPiBqxa07ICM2QUY4Civmq7kgPiB4acSBbzsgIzZBRjkKK+aruiA+IGzDrW5nOyAjNkFGQQor5qu7ID4gecSrbmc7ICM2QUZCCivmq7wgPiBqacSBbjsgIzZBRkMKK+arvSA+IHnErW47ICM2QUZECivmq74gPiB5w7N1OyAjNkFGRQor5qu/ID4gecOtbmc7ICM2QUZGCivmrIAgPiB4acSBbmc7ICM2QjAwCivmrIEgPiBuw7NuZzsgIzZCMDEKK+asgiA+IGLDszsgIzZCMDIKK+asgyA+IGNow6FuOyAjNkIwMwor5qyEID4gbMOhbjsgIzZCMDQKK+ashSA+IGrFrTsgIzZCMDUKK+ashiA+IHNodcSBbmc7ICM2QjA2CivmrIcgPiBzaMOoOyAjNkIwNwor5qyIID4gd8OpaTsgIzZCMDgKK+asiSA+IGPDsm5nOyAjNkIwOQor5qyKID4gcXXDoW47ICM2QjBBCivmrIsgPiBxw7o7ICM2QjBCCivmrI4gPiB5w7k7ICM2QjBFCivmrI8gPiBsw7pvOyAjNkIwRgor5qyQID4gbMStOyAjNkIxMAor5qyRID4gesOgbjsgIzZCMTEKK+askiA+IGx1w6FuOyAjNkIxMgor5qyTID4gZMSDbmc7ICM2QjEzCivmrJQgPiBqdcOpOyAjNkIxNAor5qyWID4gbMSDbjsgIzZCMTYKK+aslyA+IGzDoW47ICM2QjE3CivmrJggPiB6aMWtOyAjNkIxOAor5qyZID4gbMOpaTsgIzZCMTkKK+asmiA+IGzErTsgIzZCMUEKK+asmyA+IGLDoDsgIzZCMUIKK+asnCA+IG7DoW5nOyAjNkIxQwor5qydID4gecO5OyAjNkIxRAor5qyeID4gbMOtbmc7ICM2QjFFCivmrKAgPiBxacOgbjsgIzZCMjAKK+asoSA+IGPDrDsgIzZCMjEKK+asoiA+IGh1xIFuOyAjNkIyMgor5qyjID4geMSrbjsgIzZCMjMKK+aspCA+IHnDujsgIzZCMjQKK+aspSA+IHnDuTsgIzZCMjUKK+aspiA+IHFpxIFuOyAjNkIyNgor5qynID4gxY11OyAjNkIyNwor5qyoID4geMWrOyAjNkIyOAor5qypID4gY2jEgW87ICM2QjI5CivmrKogPiBjaMO5OyAjNkIyQQor5qyrID4gY2jEqzsgIzZCMkIKK+asrCA+IGvDoGk7ICM2QjJDCivmrK0gPiB5w6w7ICM2QjJECivmrK4gPiBqdcOpOyAjNkIyRQor5qyvID4geMOtOyAjNkIyRgor5qywID4geMWrOyAjNkIzMAor5qyxID4geGnDoDsgIzZCMzEKK+assiA+IHnDuTsgIzZCMzIKK+assyA+IGt1w6BpOyAjNkIzMwor5qy0ID4gbMOhbmc7ICM2QjM0CivmrLUgPiBrdcSDbjsgIzZCMzUKK+astiA+IHNow7lvOyAjNkIzNgor5qy3ID4geMSrOyAjNkIzNwor5qy4ID4gxINpOyAjNkIzOAor5qy5ID4gecSrOyAjNkIzOQor5qy6ID4gccSrOyAjNkIzQQor5qy7ID4gaMWrOyAjNkIzQgor5qy8ID4gY2jErTsgIzZCM0MKK+asvSA+IHHEq247ICM2QjNECivmrL4gPiBrdcSDbjsgIzZCM0UKK+asvyA+IGvEg247ICM2QjNGCivmrYAgPiBrdcSDbjsgIzZCNDAKK+atgSA+IGvEg247ICM2QjQxCivmrYIgPiBjaHXDoW47ICM2QjQyCivmrYMgPiBzaMOgOyAjNkI0Mwor5q2EID4gZ3VhOyAjNkI0NAor5q2FID4gecSrbjsgIzZCNDUKK+athiA+IHjEq247ICM2QjQ2CivmrYcgPiB4acSTOyAjNkI0Nwor5q2IID4gecO6OyAjNkI0OAor5q2JID4gcWnDoG47ICM2QjQ5CivmrYogPiB4acSBbzsgIzZCNEEKK+atiyA+IHnDrTsgIzZCNEIKK+atjCA+IGfEkzsgIzZCNEMKK+atjSA+IHfFqzsgIzZCNEQKK+atjiA+IHTDoG47ICM2QjRFCivmrY8gPiBqw6xuOyAjNkI0Rgor5q2QID4gxY11OyAjNkI1MAor5q2RID4gaMWrOyAjNkI1MQor5q2SID4gdMOsOyAjNkI1Mgor5q2TID4gaHXEgW47ICM2QjUzCivmrZQgPiB4xas7ICM2QjU0CivmrZUgPiBww6huOyAjNkI1NQor5q2WID4geMSrOyAjNkI1Ngor5q2XID4geGnDoG87ICM2QjU3CivmrZggPiB4xas7ICM2QjU4CivmrZkgPiB4w6w7ICM2QjU5CivmrZsgPiBsacOgbjsgIzZCNUIKK+atnCA+IGNow7k7ICM2QjVDCivmrZ0gPiB5w6w7ICM2QjVECivmrZ4gPiBrxINuOyAjNkI1RQor5q2fID4gecO6OyAjNkI1Rgor5q2gID4gY2jDuW87ICM2QjYwCivmraEgPiBodcSBbjsgIzZCNjEKK+atoiA+IHpoxK07ICM2QjYyCivmraMgPiB6aMOobmc7ICM2QjYzCivmraQgPiBjxK07ICM2QjY0CivmraUgPiBiw7k7ICM2QjY1CivmraYgPiB3xa07ICM2QjY2CivmracgPiBxw607ICM2QjY3CivmraggPiBiw7k7ICM2QjY4CivmrakgPiBiw7k7ICM2QjY5CivmraogPiB3xIFpOyAjNkI2QQor5q2rID4gasO5OyAjNkI2Qgor5q2sID4gcWnDoW47ICM2QjZDCivmra0gPiBjaMOtOyAjNkI2RAor5q2uID4gc8OoOyAjNkI2RQor5q2vID4gY2jErTsgIzZCNkYKK+atsCA+IHPDqDsgIzZCNzAKK+atsSA+IHpoxY9uZzsgIzZCNzEKK+atsiA+IHPDuWk7ICM2QjcyCivmrbMgPiBzw7lpOyAjNkI3Mwor5q20ID4gbMOsOyAjNkI3NAor5q21ID4gY8O5bzsgIzZCNzUKK+attiA+IHnDujsgIzZCNzYKK+attyA+IGzDrDsgIzZCNzcKK+atuCA+IGfFq2k7ICM2Qjc4CivmrbkgPiBkxINpOyAjNkI3OQor5q26ID4gZMSDaTsgIzZCN0EKK+atuyA+IHPErTsgIzZCN0IKK+atvCA+IGppxIFuOyAjNkI3Qwor5q29ID4gemjDqTsgIzZCN0QKK+atviA+IG3DsjsgIzZCN0UKK+atvyA+IG3DsjsgIzZCN0YKK+augCA+IHnEg287ICM2QjgwCivmroEgPiBtw7I7ICM2QjgxCivmroIgPiBjw7o7ICM2QjgyCivmroMgPiB5xIFuZzsgIzZCODMKK+auhCA+IHRpxINuOyAjNkI4NAor5q6FID4gc2jEk25nOyAjNkI4NQor5q6GID4gZMOgaTsgIzZCODYKK+auhyA+IHNoxIFuZzsgIzZCODcKK+auiCA+IHjDuTsgIzZCODgKK+auiSA+IHjDuW47ICM2Qjg5CivmroogPiBzaMWrOyAjNkI4QQor5q6LID4gY8OhbjsgIzZCOEIKK+aujCA+IGp1w6k7ICM2QjhDCivmro0gPiBwacSDbzsgIzZCOEQKK+aujiA+IHFpw6A7ICM2QjhFCivmro8gPiBxw6x1OyAjNkI4Rgor5q6QID4gc8O5OyAjNkI5MAor5q6RID4gccOtbmc7ICM2QjkxCivmrpIgPiB5xa1uOyAjNkI5Mgor5q6TID4gbGnDoG47ICM2QjkzCivmrpQgPiB5w6w7ICM2Qjk0CivmrpUgPiBmxY91OyAjNkI5NQor5q6WID4gemjDrTsgIzZCOTYKK+aulyA+IHnDqDsgIzZCOTcKK+aumCA+IGPDoW47ICM2Qjk4CivmrpkgPiBoxatuOyAjNkI5OQor5q6aID4gZMSBbjsgIzZCOUEKK+aumyA+IGrDrTsgIzZCOUIKK+aunCA+IHnDqDsgIzZCOUMKK+aunSA+IHpoZW47ICM2QjlECivmrp4gPiB5xa1uOyAjNkI5RQor5q6fID4gd8STbjsgIzZCOUYKK+auoCA+IGNow7J1OyAjNkJBMAor5q6hID4gYsOsbjsgIzZCQTEKK+auoiA+IHTDrDsgIzZCQTIKK+auoyA+IGrErW47ICM2QkEzCivmrqQgPiBzaMSBbmc7ICM2QkE0CivmrqUgPiB5w61uOyAjNkJBNQor5q6mID4gZGnEgW87ICM2QkE2CivmrqcgPiBjw7k7ICM2QkE3CivmrqggPiBow7lpOyAjNkJBOAor5q6pID4gY3XDoG47ICM2QkE5CivmrqogPiB5w6w7ICM2QkFBCivmrqsgPiBkxIFuOyAjNkJBQgor5q6sID4gZMO5OyAjNkJBQwor5q6tID4gamnEgW5nOyAjNkJBRAor5q6uID4gbGnDoG47ICM2QkFFCivmrq8gPiBiw6xuOyAjNkJBRgor5q6wID4gZMO6OyAjNkJCMAor5q6yID4gamnEgW47ICM2QkIyCivmrrMgPiBzaMWrOyAjNkJCMwor5q60ID4gxY11OyAjNkJCNAor5q61ID4gZHXDoG47ICM2QkI1CivmrrYgPiB6aMO5OyAjNkJCNgor5q63ID4gecSrbjsgIzZCQjcKK+auuCA+IHHDrG5nOyAjNkJCOAor5q65ID4gecOsOyAjNkJCOQor5q66ID4gc2jEgTsgIzZCQkEKK+auuyA+IHF1w6g7ICM2QkJCCivmrrwgPiBrw6k7ICM2QkJDCivmrr0gPiB5w6FvOyAjNkJCRAor5q6+ID4gasO5bjsgIzZCQkUKK+auvyA+IGRpw6BuOyAjNkJCRgor5q+AID4gaMWtaTsgIzZCQzAKK+avgSA+IGjFrWk7ICM2QkMxCivmr4IgPiBnxa07ICM2QkMyCivmr4MgPiBxdcOoOyAjNkJDMwor5q+EID4gasSrOyAjNkJDNAor5q+FID4gecOsOyAjNkJDNQor5q+GID4gxY11OyAjNkJDNgor5q+HID4gaMWtaTsgIzZCQzcKK+aviCA+IGR1w6BuOyAjNkJDOAor5q+JID4gecSrOyAjNkJDOQor5q+KID4geGnEgW87ICM2QkNBCivmr4sgPiB3w7o7ICM2QkNCCivmr4wgPiBndcOgbjsgIzZCQ0MKK+avjSA+IG3FrTsgIzZCQ0QKK+avjiA+IG3ElWk7ICM2QkNFCivmr48gPiBtxJVpOyAjNkJDRgor5q+QID4gxINpOyAjNkJEMAor5q+RID4gesWtbzsgIzZCRDEKK+avkiA+IGTDujsgIzZCRDIKK+avkyA+IHnDuTsgIzZCRDMKK+avlCA+IGLErTsgIzZCRDQKK+avlSA+IGLDrDsgIzZCRDUKK+avliA+IGLDrDsgIzZCRDYKK+avlyA+IHDDrTsgIzZCRDcKK+avmCA+IHDDrTsgIzZCRDgKK+avmSA+IGLDrDsgIzZCRDkKK+avmiA+IGNow6FuOyAjNkJEQQor5q+bID4gbcOhbzsgIzZCREIKK+avniA+IHDDujsgIzZCREUKK+avoCA+IGppxIE7ICM2QkUwCivmr6EgPiB6aMSBbjsgIzZCRTEKK+avoiA+IHPEgWk7ICM2QkUyCivmr6MgPiBtw7k7ICM2QkUzCivmr6QgPiB0w7lvOyAjNkJFNAor5q+lID4geMO6bjsgIzZCRTUKK+avpiA+IMOocjsgIzZCRTYKK+avpyA+IHLDs25nOyAjNkJFNwor5q+oID4geGnEg247ICM2QkU4Civmr6kgPiBqw7o7ICM2QkU5Civmr6ogPiBtw7o7ICM2QkVBCivmr6sgPiBow6FvOyAjNkJFQgor5q+sID4gccOtdTsgIzZCRUMKK+avrSA+IGTDsnU7ICM2QkVECivmr68gPiB0xINuOyAjNkJFRgor5q+wID4gcMOpaTsgIzZCRjAKK+avsSA+IGrDujsgIzZCRjEKK+avsiA+IGTDum87ICM2QkYyCivmr7MgPiBjw7lpOyAjNkJGMwor5q+0ID4gYsSrOyAjNkJGNAor5q+1ID4gc8SBbjsgIzZCRjUKK+avtyA+IG3DoG87ICM2QkY3Civmr7ggPiBzxatpOyAjNkJGOAor5q+5ID4gecWrOyAjNkJGOQor5q+6ID4gecWrOyAjNkJGQQor5q+7ID4gdMO5bzsgIzZCRkIKK+avvCA+IGjDqTsgIzZCRkMKK+avvSA+IGppw6BuOyAjNkJGRAor5q++ID4gdMOgOyAjNkJGRQor5q+/ID4gc8SBbjsgIzZCRkYKK+awgCA+IGzHmDsgIzZDMDAKK+awgSA+IG3DujsgIzZDMDEKK+awgiA+IGzDrTsgIzZDMDIKK+awgyA+IHTDs25nOyAjNkMwMwor5rCEID4gcsWPbmc7ICM2QzA0CivmsIUgPiBjaMSDbmc7ICM2QzA1CivmsIYgPiBwxa07ICM2QzA2CivmsIcgPiBsw7pvOyAjNkMwNwor5rCIID4gemjEgW47ICM2QzA4CivmsIkgPiBzw6BvOyAjNkMwOQor5rCKID4gemjEgW47ICM2QzBBCivmsIsgPiBtw6luZzsgIzZDMEIKK+awjCA+IGzDum87ICM2QzBDCivmsI0gPiBxw7o7ICM2QzBECivmsI4gPiBkacOpOyAjNkMwRQor5rCPID4gc2jDrDsgIzZDMEYKK+awkCA+IGTErTsgIzZDMTAKK+awkSA+IG3DrW47ICM2QzExCivmsJIgPiBqdcOpOyAjNkMxMgor5rCTID4gbcOhbmc7ICM2QzEzCivmsJQgPiBxw6w7ICM2QzE0CivmsJUgPiBwacSTOyAjNkMxNQor5rCWID4gbsSDaTsgIzZDMTYKK+awlyA+IHHDrDsgIzZDMTcKK+awmCA+IGTEgW87ICM2QzE4CivmsJkgPiB4acSBbjsgIzZDMTkKK+awmiA+IGNodcSBbjsgIzZDMUEKK+awmyA+IGbEk247ICM2QzFCCivmsJwgPiByw6w7ICM2QzFDCivmsJ0gPiBuw6hpOyAjNkMxRAor5rCfID4gZsO6OyAjNkMxRgor5rCgID4gc2jEk247ICM2QzIwCivmsKEgPiBkxY1uZzsgIzZDMjEKK+awoiA+IHHEq25nOyAjNkMyMgor5rCjID4gccOsOyAjNkMyMwor5rCkID4gecSrbjsgIzZDMjQKK+awpSA+IHjEqzsgIzZDMjUKK+awpiA+IGjDoGk7ICM2QzI2CivmsKcgPiB5xINuZzsgIzZDMjcKK+awqCA+IMSBbjsgIzZDMjgKK+awqSA+IHnDoDsgIzZDMjkKK+awqiA+IGvDqDsgIzZDMkEKK+awqyA+IHHEq25nOyAjNkMyQgor5rCsID4gecOgOyAjNkMyQwor5rCtID4gZMWNbmc7ICM2QzJECivmsK4gPiBkw6BuOyAjNkMyRQor5rCvID4gbMecOyAjNkMyRgor5rCwID4gccSrbmc7ICM2QzMwCivmsLEgPiB5xINuZzsgIzZDMzEKK+awsiA+IHnFq247ICM2QzMyCivmsLMgPiB5xatuOyAjNkMzMwor5rC0ID4gc2jFrWk7ICM2QzM0CivmsLUgPiBzxIFuJyAnZGnEg24nICdzaMWtaTsgIzZDMzUKK+awtiA+IHpoxJVuZzsgIzZDMzYKK+awtyA+IGLEq25nOyAjNkMzNwor5rC4ID4gecWPbmc7ICM2QzM4CivmsLkgPiBkw6BuZzsgIzZDMzkKK+awuyA+IGzDqDsgIzZDM0IKK+awvCA+IG7DrDsgIzZDM0MKK+awvSA+IHTFrW47ICM2QzNECivmsL4gPiBmw6BuOyAjNkMzRQor5rC/ID4gZ8WtaTsgIzZDM0YKK+axgCA+IHTEq25nOyAjNkM0MAor5rGBID4gemjEqzsgIzZDNDEKK+axgiA+IHHDrXU7ICM2QzQyCivmsYMgPiBixKtuOyAjNkM0Mwor5rGEID4gesOoOyAjNkM0NAor5rGFID4gbWnEg247ICM2QzQ1CivmsYYgPiBjdcSBbjsgIzZDNDYKK+axhyA+IGjDuWk7ICM2QzQ3CivmsYggPiBkacSBbzsgIzZDNDgKK+axiSA+IHnDrDsgIzZDNDkKK+axiiA+IGNow6A7ICM2QzRBCivmsYsgPiB6aMO6bzsgIzZDNEIKK+axjCA+IGNodcOgbjsgIzZDNEMKK+axjSA+IHfDoW47ICM2QzRECivmsY4gPiBmw6BuOyAjNkM0RQor5rGPID4gZMOgaTsgIzZDNEYKK+axkCA+IHjDrDsgIzZDNTAKK+axkSA+IHTFq287ICM2QzUxCivmsZIgPiBtw6FuZzsgIzZDNTIKK+axkyA+IHHDrXU7ICM2QzUzCivmsZQgPiBxw6w7ICM2QzU0CivmsZUgPiBzaMOgbjsgIzZDNTUKK+axliA+IHDDoGk7ICM2QzU2CivmsZcgPiBow6BuOyAjNkM1Nwor5rGYID4gcWnEgW47ICM2QzU4CivmsZkgPiB3xas7ICM2QzU5CivmsZogPiB3xas7ICM2QzVBCivmsZsgPiB4w7luOyAjNkM1Qgor5rGcID4gc8OsOyAjNkM1Qwor5rGdID4gcsWtOyAjNkM1RAor5rGeID4gZ8WPbmc7ICM2QzVFCivmsZ8gPiBqacSBbmc7ICM2QzVGCivmsaAgPiBjaMOtOyAjNkM2MAor5rGhID4gd8WrOyAjNkM2MQor5rGkID4gdMSBbmc7ICM2QzY0CivmsaUgPiB6aMSrOyAjNkM2NQor5rGmID4gY2jDrTsgIzZDNjYKK+axpyA+IHFpxIFuOyAjNkM2Nwor5rGoID4gbcOsOyAjNkM2OAor5rGpID4gecO5OyAjNkM2OQor5rGqID4gd8SBbmc7ICM2QzZBCivmsasgPiBxw6xuZzsgIzZDNkIKK+axrCA+IGrErW5nOyAjNkM2Qwor5rGtID4gcsO5aTsgIzZDNkQKK+axriA+IGrFq247ICM2QzZFCivmsa8gPiBow7NuZzsgIzZDNkYKK+axsCA+IHTDoGk7ICM2QzcwCivmsbEgPiBxdcSDbjsgIzZDNzEKK+axsiA+IGrDrTsgIzZDNzIKK+axsyA+IGJpw6BuOyAjNkM3Mwor5rG0ID4gYmnDoG47ICM2Qzc0CivmsbUgPiBnw6BuOyAjNkM3NQor5rG2ID4gd8OobjsgIzZDNzYKK+axtyA+IHpoxY1uZzsgIzZDNzcKK+axuCA+IGbEgW5nOyAjNkM3OAor5rG5ID4geMSrb25nOyAjNkM3OQor5rG6ID4ganXDqTsgIzZDN0EKK+axuyA+IGjEg25nOyAjNkM3Qgor5rG8ID4gbmnFjXU7ICM2QzdDCivmsb0gPiBxw6w7ICM2QzdECivmsb4gPiBmw6luOyAjNkM3RQor5rG/ID4geMO5OyAjNkM3Rgor5rKAID4geMO5OyAjNkM4MAor5rKBID4gccOsbjsgIzZDODEKK+aygiA+IHnDrTsgIzZDODIKK+aygyA+IHfDsjsgIzZDODMKK+ayhCA+IHnDum47ICM2Qzg0CivmsoUgPiB5dcOhbjsgIzZDODUKK+ayhiA+IGjDoW5nOyAjNkM4Ngor5rKHID4gecSDbjsgIzZDODcKK+ayiCA+IGNow6luOyAjNkM4OAor5rKJID4gY2jDqW47ICM2Qzg5CivmsoogPiBkw6BuOyAjNkM4QQor5rKLID4gecOzdTsgIzZDOEIKK+ayjCA+IGTDuW47ICM2QzhDCivmso0gPiBow7k7ICM2QzhECivmso4gPiBow7lvOyAjNkM4RQor5rKPID4gcWnEkzsgIzZDOEYKK+aykCA+IG3DuTsgIzZDOTAKK+aykSA+IHLDs3U7ICM2QzkxCivmspIgPiBtw6lpOyAjNkM5Mgor5rKTID4gdMOgOyAjNkM5Mwor5rKUID4gbWnEg247ICM2Qzk0CivmspUgPiB3w7k7ICM2Qzk1CivmspYgPiBjaMWNbmc7ICM2Qzk2CivmspcgPiB0acSBbjsgIzZDOTcKK+aymCA+IGLErTsgIzZDOTgKK+aymSA+IHNoxIE7ICM2Qzk5CivmspogPiB6aMStOyAjNkM5QQor5rKbID4gcMOoaTsgIzZDOUIKK+aynCA+IHDDoG47ICM2QzlDCivmsp0gPiB6aMWtaTsgIzZDOUQKK+ayniA+IHrEgTsgIzZDOUUKK+aynyA+IGfFjXU7ICM2QzlGCivmsqAgPiBsw611OyAjNkNBMAor5rKhID4gbcOpaTsgIzZDQTEKK+ayoiA+IHrDqTsgIzZDQTIKK+ayoyA+IGbEk25nOyAjNkNBMwor5rKkID4gw7J1OyAjNkNBNAor5rKlID4gbMOsOyAjNkNBNQor5rKmID4gbMO6bjsgIzZDQTYKK+aypyA+IGPEgW5nOyAjNkNBNwor5rKoID4gZsOpbmc7ICM2Q0E4CivmsqkgPiB3w6lpOyAjNkNBOQor5rKqID4gaMO5OyAjNkNBQQor5rKrID4gbcOyOyAjNkNBQgor5rKsID4gbcOoaTsgIzZDQUMKK+ayrSA+IHNow7k7ICM2Q0FECivmsq4gPiBqxas7ICM2Q0FFCivmsq8gPiB6xINuOyAjNkNBRgor5rKwID4gdMWrbzsgIzZDQjAKK+aysSA+IHTDum87ICM2Q0IxCivmsrIgPiB0w7pvOyAjNkNCMgor5rKzID4gaMOpOyAjNkNCMwor5rK0ID4gbMOsOyAjNkNCNAor5rK1ID4gbcStOyAjNkNCNQor5rK2ID4gecOtOyAjNkNCNgor5rK3ID4gZsSBOyAjNkNCNwor5rK4ID4gZsOoaTsgIzZDQjgKK+ayuSA+IHnDs3U7ICM2Q0I5CivmsrogPiB0acOhbjsgIzZDQkEKK+ayuyA+IHpow6w7ICM2Q0JCCivmsrwgPiB6aMSDbzsgIzZDQkMKK+ayvSA+IGfFqzsgIzZDQkQKK+ayviA+IHpoxIFuOyAjNkNCRQor5rK/ID4gecOhbjsgIzZDQkYKK+azgCA+IHPEqzsgIzZDQzAKK+azgSA+IGt1w6BuZzsgIzZDQzEKK+azgiA+IGrErW9uZzsgIzZDQzIKK+azgyA+IGrDuTsgIzZDQzMKK+azhCA+IHhpw6g7ICM2Q0M0Civms4UgPiBxw611OyAjNkNDNQor5rOGID4gecSrOyAjNkNDNgor5rOHID4gamnEgTsgIzZDQzcKK+aziCA+IHpoxY1uZzsgIzZDQzgKK+aziSA+IHF1w6FuOyAjNkNDOQor5rOKID4gYsOzOyAjNkNDQQor5rOLID4gaMO5aTsgIzZDQ0IKK+azjCA+IG3DrDsgIzZDQ0MKK+azjSA+IGLEk247ICM2Q0NECivms44gPiB6aMO6bzsgIzZDQ0UKK+azjyA+IGNow7k7ICM2Q0NGCivms5AgPiBsw6g7ICM2Q0QwCivms5EgPiB5xY91OyAjNkNEMQor5rOSID4gZ8WrOyAjNkNEMgor5rOTID4gaMOzbmc7ICM2Q0QzCivms5QgPiBnxIFuOyAjNkNENAor5rOVID4gZsSDOyAjNkNENQor5rOWID4gbcSDbzsgIzZDRDYKK+azlyA+IHPDrDsgIzZDRDcKK+azmCA+IGjFqzsgIzZDRDgKK+azmSA+IHDDrW5nOyAjNkNEOQor5rOaID4gY8StOyAjNkNEQQor5rObID4gZsOgbjsgIzZDREIKK+aznCA+IGNow607ICM2Q0RDCivms50gPiBzw7k7ICM2Q0RECivms54gPiBuw6xuZzsgIzZDREUKK+aznyA+IGNoxJNuZzsgIzZDREYKK+azoCA+IGzDrW5nOyAjNkNFMAor5rOhID4gcMOgbzsgIzZDRTEKK+azoiA+IGLFjTsgIzZDRTIKK+azoyA+IHHDrDsgIzZDRTMKK+azpCA+IHPDrDsgIzZDRTQKK+azpSA+IG7DrTsgIzZDRTUKK+azpiA+IGrDujsgIzZDRTYKK+azpyA+IHl1w6g7ICM2Q0U3Civms6ggPiB6aMO5OyAjNkNFOAor5rOpID4gc2jEk25nOyAjNkNFOQor5rOqID4gbMOoaTsgIzZDRUEKK+azqyA+IHh1w6BuOyAjNkNFQgor5rOsID4geHXDqDsgIzZDRUMKK+azrSA+IGbFqzsgIzZDRUQKK+azriA+IHDDoG47ICM2Q0VFCivms68gPiBtxK1uOyAjNkNFRgor5rOwID4gdMOgaTsgIzZDRjAKK+azsSA+IHnEgW5nOyAjNkNGMQor5rOyID4gasStOyAjNkNGMgor5rOzID4gecWPbmc7ICM2Q0YzCivms7QgPiBndcOgbjsgIzZDRjQKK+aztSA+IGLDqG5nOyAjNkNGNQor5rO2ID4geHXDqTsgIzZDRjYKK+aztyA+IGzDs25nOyAjNkNGNwor5rO4ID4gbMO6OyAjNkNGOAor5rO6ID4gYsOzOyAjNkNGQQor5rO7ID4geGnDqDsgIzZDRkIKK+azvCA+IHDFjTsgIzZDRkMKK+azvSA+IHrDqTsgIzZDRkQKK+azviA+IGrEq25nOyAjNkNGRQor5rO/ID4gecOtbjsgIzZDRkYKK+a0gCA+IHpoxY11OyAjNkQwMAor5rSBID4gasOtOyAjNkQwMQor5rSCID4gecOsOyAjNkQwMgor5rSDID4gaMWraTsgIzZEMDMKK+a0hCA+IGjDumk7ICM2RDA0CivmtIUgPiB6xa1pOyAjNkQwNQor5rSGID4gY2jDqW5nOyAjNkQwNgor5rSHID4gecSrbjsgIzZEMDcKK+a0iCA+IHfDqWk7ICM2RDA4CivmtIkgPiBow7J1OyAjNkQwOQor5rSKID4gamnDoG47ICM2RDBBCivmtIsgPiB5w6FuZzsgIzZEMEIKK+a0jCA+IGxpw6g7ICM2RDBDCivmtI0gPiBzw6w7ICM2RDBECivmtI4gPiBqw6w7ICM2RDBFCivmtI8gPiDDqXI7ICM2RDBGCivmtJAgPiB4w61uZzsgIzZEMTAKK+a0kSA+IGbDujsgIzZEMTEKK+a0kiA+IHPEgzsgIzZEMTIKK+a0kyA+IHPFrW87ICM2RDEzCivmtJQgPiB6aMStOyAjNkQxNAor5rSVID4gecSrbjsgIzZEMTUKK+a0liA+IHfDujsgIzZEMTYKK+a0lyA+IHjErTsgIzZEMTcKK+a0mCA+IGvEg287ICM2RDE4CivmtJkgPiB6aMWrOyAjNkQxOQor5rSaID4gamnDoG5nOyAjNkQxQQor5rSbID4gbMO5bzsgIzZEMUIKK+a0nSA+IMOgbjsgIzZEMUQKK+a0niA+IGTDsm5nOyAjNkQxRQor5rSfID4gecOtOyAjNkQxRgor5rSgID4gbcOzdTsgIzZEMjAKK+a0oSA+IGzElWk7ICM2RDIxCivmtKIgPiB5xKs7ICM2RDIyCivmtKMgPiBtxK07ICM2RDIzCivmtKQgPiBxdcOhbjsgIzZEMjQKK+a0pSA+IGrEq247ICM2RDI1CivmtKYgPiBtw7I7ICM2RDI2CivmtKcgPiB3xJVpOyAjNkQyNwor5rSoID4geGnDoW87ICM2RDI4CivmtKkgPiB4acOoOyAjNkQyOQor5rSqID4gaMOzbmc7ICM2RDJBCivmtKsgPiB4w7k7ICM2RDJCCivmtKwgPiBzaMO5bzsgIzZEMkMKK+a0rSA+IGt1xIFuZzsgIzZEMkQKK+a0riA+IHTEgW87ICM2RDJFCivmtK8gPiBxacOoOyAjNkQyRgor5rSwID4gasO5OyAjNkQzMAor5rSxID4gxJVyOyAjNkQzMQor5rSyID4gemjFjXU7ICM2RDMyCivmtLMgPiByw7k7ICM2RDMzCivmtLQgPiBww61uZzsgIzZEMzQKK+a0tSA+IHjDum47ICM2RDM1CivmtLYgPiB4xKtvbmc7ICM2RDM2CivmtLcgPiB6aMOsOyAjNkQzNwor5rS4ID4gZ3XEgW5nOyAjNkQzOAor5rS5ID4gaHXDoW47ICM2RDM5CivmtLogPiBtw61uZzsgIzZEM0EKK+a0uyA+IGjDum87ICM2RDNCCivmtLwgPiB3xIE7ICM2RDNDCivmtL0gPiBxacOgOyAjNkQzRAor5rS+ID4gcMOgaTsgIzZEM0UKK+a0vyA+IHfFqzsgIzZEM0YKK+a1gCA+IHHFrTsgIzZENDAKK+a1gSA+IGzDrXU7ICM2RDQxCivmtYIgPiB5w6w7ICM2RDQyCivmtYMgPiBqacOhOyAjNkQ0Mwor5rWEID4gasOsbmc7ICM2RDQ0CivmtYUgPiBxacSDbjsgIzZENDUKK+a1hiA+IGppxIFuZzsgIzZENDYKK+a1hyA+IGppxIFvOyAjNkQ0Nwor5rWIID4gY2jDqW5nOyAjNkQ0OAor5rWJID4gc2jEqzsgIzZENDkKK+a1iiA+IHpow7pvOyAjNkQ0QQor5rWLID4gY8OoOyAjNkQ0Qgor5rWNID4ga3XDoGk7ICM2RDRECivmtY4gPiBqw6w7ICM2RDRFCivmtY8gPiBsw611OyAjNkQ0Rgor5rWQID4gY2jEg247ICM2RDUwCivmtZEgPiBow7puOyAjNkQ1MQor5rWSID4gaMWtOyAjNkQ1Mgor5rWTID4gbsOzbmc7ICM2RDUzCivmtZQgPiB4w7puOyAjNkQ1NAor5rWVID4gasOsbjsgIzZENTUKK+a1liA+IGxpw6g7ICM2RDU2CivmtZcgPiBxw611OyAjNkQ1Nwor5rWYID4gd8SVaTsgIzZENTgKK+a1mSA+IHpow6g7ICM2RDU5CivmtZogPiBqw7luOyAjNkQ1QQor5rWbID4gaMOgbjsgIzZENUIKK+a1nCA+IGLEgW5nOyAjNkQ1Qwor5rWdID4gbcOhbmc7ICM2RDVECivmtZ4gPiB6aMO6bzsgIzZENUUKK+a1nyA+IHnDs3U7ICM2RDVGCivmtaAgPiB4xKs7ICM2RDYwCivmtaEgPiBiw7M7ICM2RDYxCivmtaIgPiBkw7J1OyAjNkQ2Mgor5rWjID4gd8SDbjsgIzZENjMKK+a1pCA+IGjDs25nOyAjNkQ2NAor5rWlID4gecOsOyAjNkQ2NQor5rWmID4gcMWtOyAjNkQ2Ngor5rWnID4gecStbmc7ICM2RDY3CivmtaggPiBsxINuOyAjNkQ2OAor5rWpID4gaMOgbzsgIzZENjkKK+a1qiA+IGzDoG5nOyAjNkQ2QQor5rWrID4gaMSDbjsgIzZENkIKK+a1rCA+IGzErTsgIzZENkMKK+a1rSA+IGfEk25nOyAjNkQ2RAor5rWuID4gZsO6OyAjNkQ2RQor5rWvID4gd8O6OyAjNkQ2Rgor5rWwID4gbGnDoG47ICM2RDcwCivmtbEgPiBjaMO6bjsgIzZENzEKK+a1siA+IGbDqW5nOyAjNkQ3Mgor5rWzID4gecOsOyAjNkQ3Mwor5rW0ID4gecO5OyAjNkQ3NAor5rW1ID4gdMOzbmc7ICM2RDc1CivmtbYgPiBsw6FvOyAjNkQ3Ngor5rW3ID4gaMSDaTsgIzZENzcKK+a1uCA+IGrDrG47ICM2RDc4CivmtbkgPiBqacOhOyAjNkQ3OQor5rW6ID4gY2jFjW5nOyAjNkQ3QQor5rW7ID4gd8SVbmc7ICM2RDdCCivmtbwgPiBtxJVpOyAjNkQ3Qwor5rW9ID4gc8WraTsgIzZEN0QKK+a1viA+IGNoxJNuZzsgIzZEN0UKK+a1vyA+IHDDqGk7ICM2RDdGCivmtoAgPiB4acOgbjsgIzZEODAKK+a2gSA+IHNow6huOyAjNkQ4MQor5raCID4gdMO6OyAjNkQ4Mgor5raDID4ga8O5bjsgIzZEODMKK+a2hCA+IHDEq247ICM2RDg0CivmtoUgPiBuacOoOyAjNkQ4NQor5raGID4gaMOgbjsgIzZEODYKK+a2hyA+IGrEq25nOyAjNkQ4Nwor5raIID4geGnEgW87ICM2RDg4CivmtokgPiBzaMOoOyAjNkQ4OQor5raKID4gbmnDoG47ICM2RDhBCivmtosgPiB0xas7ICM2RDhCCivmtowgPiB5xY9uZzsgIzZEOEMKK+a2jSA+IHhpw6BvOyAjNkQ4RAor5raOID4geGnDoW47ICM2RDhFCivmto8gPiB0xK1uZzsgIzZEOEYKK+a2kCA+IMOpOyAjNkQ5MAor5raRID4gc8O5OyAjNkQ5MQor5raSID4gdMWrbjsgIzZEOTIKK+a2kyA+IGp1xIFuOyAjNkQ5Mwor5raUID4gY8OpbjsgIzZEOTQKK+a2lSA+IHTDrDsgIzZEOTUKK+a2liA+IGzDrDsgIzZEOTYKK+a2lyA+IHNow7lpOyAjNkQ5Nwor5raYID4gc8OsOyAjNkQ5OAor5raZID4gbMOoaTsgIzZEOTkKK+a2miA+IHNow7lpOyAjNkQ5QQor5rabID4gdMSBbzsgIzZEOUIKK+a2nCA+IGTDujsgIzZEOUMKK+a2nSA+IGzDoG87ICM2RDlECivmtp4gPiBsw6FpOyAjNkQ5RQor5rafID4gbGnDoW47ICM2RDlGCivmtqAgPiB3w6lpOyAjNkRBMAor5rahID4gd8WNOyAjNkRBMQor5raiID4gecO6bjsgIzZEQTIKK+a2oyA+IGh1w6BuOyAjNkRBMwor5rakID4gZMOtOyAjNkRBNAor5ramID4gcsO5bjsgIzZEQTYKK+a2pyA+IGppw6BuOyAjNkRBNwor5raoID4gemjEg25nOyAjNkRBOAor5rapID4gc8OoOyAjNkRBOQor5raqID4gZsO6OyAjNkRBQQor5rarID4gZ3XDoG47ICM2REFCCivmtqwgPiB4w6xuZzsgIzZEQUMKK+a2rSA+IHNow7J1OyAjNkRBRAor5rauID4gc2h1w6BuOyAjNkRBRQor5ravID4gecOhOyAjNkRBRgor5rawID4gY2jDuW87ICM2REIwCivmtrEgPiB6aMOgbmc7ICM2REIxCivmtrIgPiB5w6g7ICM2REIyCivmtrMgPiBrxY1uZzsgIzZEQjMKK+a2tCA+IHfDsjsgIzZEQjQKK+a2tSA+IGjDoW47ICM2REI1CivmtrYgPiB0xatvOyAjNkRCNgor5ra3ID4gZMWNbmc7ICM2REI3CivmtrggPiBow6k7ICM2REI4CivmtrkgPiB3xY07ICM2REI5CivmtrogPiBqxas7ICM2REJBCivmtrsgPiBnw6BuOyAjNkRCQgor5ra8ID4gbGnDoW5nOyAjNkRCQwor5ra9ID4gaMWrbjsgIzZEQkQKK+a2viA+IHTDoDsgIzZEQkUKK+a2vyA+IHpow7pvOyAjNkRCRgor5reAID4gZGnDoG47ICM2REMwCivmt4EgPiBxacOoOyAjNkRDMQor5reCID4gZMOpOyAjNkRDMgor5reDID4ganXDoG47ICM2REMzCivmt4QgPiB6xKs7ICM2REM0Civmt4UgPiB4xKs7ICM2REM1Civmt4YgPiB5w6FvOyAjNkRDNgor5reHID4gccOtOyAjNkRDNwor5reIID4gZ8WtOyAjNkRDOAor5reJID4gZ8WtbzsgIzZEQzkKK+a3iiA+IGjDoG47ICM2RENBCivmt4sgPiBsw61uOyAjNkRDQgor5reMID4gdMSDbmc7ICM2RENDCivmt40gPiB6aMWNdTsgIzZEQ0QKK+a3jiA+IHDElW5nOyAjNkRDRQor5rePID4gaMOgbzsgIzZEQ0YKK+a3kCA+IGNoxIFuZzsgIzZERDAKK+a3kSA+IHNow7o7ICM2REQxCivmt5IgPiBxxKs7ICM2REQyCivmt5MgPiBmxIFuZzsgIzZERDMKK+a3lCA+IGNow6w7ICM2REQ0Civmt5UgPiBsw7k7ICM2REQ1Civmt5YgPiBuw6BvOyAjNkRENgor5reXID4gasO6OyAjNkRENwor5reYID4gdMOhbzsgIzZERDgKK+a3mSA+IGPDs25nOyAjNkREOQor5reaID4gbMOoaTsgIzZEREEKK+a3myA+IHpow6w7ICM2RERCCivmt5wgPiBww6luZzsgIzZEREMKK+a3nSA+IGbDqWk7ICM2RERECivmt54gPiBzxY1uZzsgIzZEREUKK+a3nyA+IHRpxINuOyAjNkRERgor5regID4gcMOsOyAjNkRFMAor5rehID4gZMOgbjsgIzZERTEKK+a3oiA+IHnDuTsgIzZERTIKK+a3oyA+IG7DrTsgIzZERTMKK+a3pCA+IHnFqzsgIzZERTQKK+a3pSA+IGzDuTsgIzZERTUKK+a3piA+IGfDoG47ICM2REU2Civmt6cgPiBtw6w7ICM2REU3Civmt6ggPiBqw6xuZzsgIzZERTgKK+a3qSA+IGzDrW5nOyAjNkRFOQor5reqID4gbMO6bjsgIzZERUEKK+a3qyA+IHnDrW47ICM2REVCCivmt6wgPiBjw7lpOyAjNkRFQwor5retID4gccO6OyAjNkRFRAor5reuID4gaHXDoWk7ICM2REVFCivmt68gPiB5w7k7ICM2REVGCivmt7AgPiBuacOgbjsgIzZERjAKK+a3sSA+IHNoxJNuOyAjNkRGMQor5reyID4gcGnDoW87ICM2REYyCivmt7MgPiBjaMO6bjsgIzZERjMKK+a3tCA+IHfDoDsgIzZERjQKK+a3tSA+IHl1xIFuOyAjNkRGNQor5re2ID4gbMOhaTsgIzZERjYKK+a3tyA+IGjFrW47ICM2REY3Civmt7ggPiBxxKtuZzsgIzZERjgKK+a3uSA+IHnEgW47ICM2REY5Civmt7ogPiBxacSDbjsgIzZERkEKK+a3uyA+IHRpxIFuOyAjNkRGQgor5re8ID4gbWnEg287ICM2REZDCivmt70gPiB6aMStOyAjNkRGRAor5re+ID4gecStbjsgIzZERkUKK+a3vyA+IG3DrDsgIzZERkYKK+a4gCA+IGLEk247ICM2RTAwCivmuIEgPiB5dcSBbjsgIzZFMDEKK+a4giA+IHfDqG47ICM2RTAyCivmuIMgPiByw6g7ICM2RTAzCivmuIQgPiBmxJNpOyAjNkUwNAor5riFID4gccSrbmc7ICM2RTA1CivmuIYgPiB5dcSBbjsgIzZFMDYKK+a4hyA+IGvElTsgIzZFMDcKK+a4iCA+IGrDrDsgIzZFMDgKK+a4iSA+IHNow6g7ICM2RTA5CivmuIogPiB5dcSBbjsgIzZFMEEKK+a4jCA+IGzDuTsgIzZFMEMKK+a4jSA+IHrDrDsgIzZFMEQKK+a4jiA+IGTDujsgIzZFMEUKK+a4kCA+IGppw6BuOyAjNkUxMAor5riRID4gbcStbjsgIzZFMTEKK+a4kiA+IHDDrDsgIzZFMTIKK+a4lCA+IHnDujsgIzZFMTQKK+a4lSA+IHl1xIFuOyAjNkUxNQor5riWID4gc2jElW47ICM2RTE2CivmuJcgPiBzaMOobjsgIzZFMTcKK+a4mCA+IHLDs3U7ICM2RTE4CivmuJkgPiBodcOgbjsgIzZFMTkKK+a4miA+IHpoxa07ICM2RTFBCivmuJsgPiBqacSDbjsgIzZFMUIKK+a4nCA+IG51xINuOyAjNkUxQwor5ridID4gecO6OyAjNkUxRAor5rieID4gccOtdTsgIzZFMUUKK+a4nyA+IHTDrW5nOyAjNkUxRgor5rigID4gccO6OyAjNkUyMAor5rihID4gZMO5OyAjNkUyMQor5riiID4gZsOpbmc7ICM2RTIyCivmuKMgPiB6aMSBOyAjNkUyMwor5rikID4gYsOzOyAjNkUyNAor5rilID4gd8OyOyAjNkUyNQor5rimID4gd8WNOyAjNkUyNgor5rinID4gZMOsOyAjNkUyNwor5rioID4gd8STaTsgIzZFMjgKK+a4qSA+IHfEk247ICM2RTI5CivmuKogPiByw7o7ICM2RTJBCivmuKsgPiB4acOoOyAjNkUyQgor5risID4gY8OoOyAjNkUyQwor5ritID4gd8OoaTsgIzZFMkQKK+a4riA+IGfEkzsgIzZFMkUKK+a4ryA+IGfEg25nOyAjNkUyRgor5riwID4gecSDbjsgIzZFMzAKK+a4sSA+IGjDs25nOyAjNkUzMQor5riyID4geHXDoG47ICM2RTMyCivmuLMgPiBtxK07ICM2RTMzCivmuLQgPiBrxJU7ICM2RTM0CivmuLUgPiBtw6FvOyAjNkUzNQor5ri2ID4gecSrbmc7ICM2RTM2CivmuLcgPiB5xINuOyAjNkUzNwor5ri4ID4gecOzdTsgIzZFMzgKK+a4uSA+IGjFjW5nOyAjNkUzOQor5ri6ID4gbWnEg287ICM2RTNBCivmuLsgPiB4xK1uZzsgIzZFM0IKK+a4vCA+IG3ElWk7ICM2RTNDCivmuL0gPiB6xIFpOyAjNkUzRAor5ri+ID4gaMO6bjsgIzZFM0UKK+a4vyA+IG7DoGk7ICM2RTNGCivmuYAgPiBrw7ppOyAjNkU0MAor5rmBID4gc2jDrTsgIzZFNDEKK+a5giA+IMOoOyAjNkU0Mgor5rmDID4gcMOgaTsgIzZFNDMKK+a5hCA+IG3DqWk7ICM2RTQ0CivmuYUgPiBsacOgbjsgIzZFNDUKK+a5hiA+IHHDrDsgIzZFNDYKK+a5hyA+IHHDrDsgIzZFNDcKK+a5iCA+IG3DqWk7ICM2RTQ4CivmuYkgPiB0acOhbjsgIzZFNDkKK+a5iiA+IGPDsnU7ICM2RTRBCivmuYsgPiB3w6lpOyAjNkU0Qgor5rmMID4gY8SBbjsgIzZFNEMKK+a5jSA+IHR1xIFuOyAjNkU0RAor5rmOID4gbWnEg247ICM2RTRFCivmuY8gPiBow7lpOyAjNkU0Rgor5rmQID4gbcOyOyAjNkU1MAor5rmRID4geMWtOyAjNkU1MQor5rmSID4gasOtOyAjNkU1Mgor5rmTID4gcMOpbjsgIzZFNTMKK+a5lCA+IGppxIFuOyAjNkU1NAor5rmVID4gamnEg247ICM2RTU1CivmuZYgPiBow7o7ICM2RTU2CivmuZcgPiBmw6huZzsgIzZFNTcKK+a5mCA+IHhpxIFuZzsgIzZFNTgKK+a5mSA+IHnDrDsgIzZFNTkKK+a5miA+IHnDrG47ICM2RTVBCivmuZsgPiB6aMOgbjsgIzZFNUIKK+a5nCA+IHNow607ICM2RTVDCivmuZ0gPiBqacSTOyAjNkU1RAor5rmeID4gY2jDqW5nOyAjNkU1RQor5rmfID4gaHXDoW5nOyAjNkU1Rgor5rmgID4gdMOgbjsgIzZFNjAKK+a5oSA+IHnDujsgIzZFNjEKK+a5oiA+IGLDrDsgIzZFNjIKK+a5oyA+IG3ErW47ICM2RTYzCivmuaQgPiBzaMSrOyAjNkU2NAor5rmlID4gdMO6OyAjNkU2NQor5rmmID4gc2jEk25nOyAjNkU2Ngor5rmnID4gecWPbmc7ICM2RTY3CivmuaggPiBxw7k7ICM2RTY4CivmuakgPiB6aMOybmc7ICM2RTY5CivmuaogPiBzdcOoaTsgIzZFNkEKK+a5qyA+IGrEq3U7ICM2RTZCCivmuawgPiBqacSDbzsgIzZFNkMKK+a5rSA+IHFpw7N1OyAjNkU2RAor5rmuID4gecSrbjsgIzZFNkUKK+a5ryA+IHTEgW5nOyAjNkU2Rgor5rmwID4gbMOzbmc7ICM2RTcwCivmubEgPiBow7lvOyAjNkU3MQor5rmyID4geXXDoW47ICM2RTcyCivmubMgPiBuxINuOyAjNkU3Mwor5rm0ID4gYsOgbjsgIzZFNzQKK+a5tSA+IHnFj3U7ICM2RTc1CivmubYgPiBxdcOhbjsgIzZFNzYKK+a5tyA+IGNow7ppOyAjNkU3Nwor5rm4ID4gbGnDoG5nOyAjNkU3OAor5rm5ID4gY2jDoW47ICM2RTc5CivmubogPiB5w6FuOyAjNkU3QQor5rm7ID4gY2jDum47ICM2RTdCCivmubwgPiBuacOoOyAjNkU3Qwor5rm9ID4gesSrOyAjNkU3RAor5rm+ID4gd8SBbjsgIzZFN0UKK+a5vyA+IHNoxKs7ICM2RTdGCivmuoAgPiBtxINuOyAjNkU4MAor5rqBID4gecOtbmc7ICM2RTgxCivmuoMgPiBrw7lpOyAjNkU4Mwor5rqFID4gamnDoG47ICM2RTg1CivmuoYgPiB4w7k7ICM2RTg2CivmuocgPiBsx5o7ICM2RTg3CivmuoggPiBnxatpOyAjNkU4OAor5rqJID4gZ8OgaTsgIzZFODkKK+a6jCA+IHDFjTsgIzZFOEMKK+a6jSA+IGrDrG47ICM2RThECivmuo4gPiBnw7lpOyAjNkU4RQor5rqPID4gdMOhbmc7ICM2RThGCivmupAgPiB5dcOhbjsgIzZFOTAKK+a6kSA+IHPFrW87ICM2RTkxCivmupIgPiB5dcOhbjsgIzZFOTIKK+a6kyA+IGxpw6FuOyAjNkU5Mwor5rqUID4gecSDbzsgIzZFOTQKK+a6lSA+IG3DqG5nOyAjNkU5NQor5rqWID4gemjFrW47ICM2RTk2CivmupcgPiBzaMOpbmc7ICM2RTk3CivmupggPiBrw6g7ICM2RTk4CivmupkgPiB0w6BpOyAjNkU5OQor5rqaID4gZMOhOyAjNkU5QQor5rqbID4gd8SBOyAjNkU5Qgor5rqcID4gbMSrdTsgIzZFOUMKK+a6nSA+IGfFjXU7ICM2RTlECivmup4gPiBzxIFvOyAjNkU5RQor5rqfID4gbcOtbmc7ICM2RTlGCivmuqAgPiB6aMOgOyAjNkVBMAor5rqhID4gc2jDrTsgIzZFQTEKK+a6oiA+IHnDrDsgIzZFQTIKK+a6oyA+IGzDum47ICM2RUEzCivmuqQgPiBtxIM7ICM2RUE0CivmuqUgPiBwxa07ICM2RUE1CivmuqYgPiB3w6lpOyAjNkVBNgor5rqnID4gbMOsOyAjNkVBNwor5rqoID4gY8OhaTsgIzZFQTgKK+a6qSA+IHfDuTsgIzZFQTkKK+a6qiA+IHjEqzsgIzZFQUEKK+a6qyA+IHfEk247ICM2RUFCCivmuqwgPiBxacSBbmc7ICM2RUFDCivmuq0gPiB6w6k7ICM2RUFECivmuq4gPiBzaMSrOyAjNkVBRQor5rqvID4gc8O5OyAjNkVBRgor5rqwID4gecSrOyAjNkVCMAor5rqxID4gemjEk247ICM2RUIxCivmurIgPiBzxY11OyAjNkVCMgor5rqzID4gecO6bjsgIzZFQjMKK+a6tCA+IHjDrHU7ICM2RUI0CivmurUgPiB5xKtuOyAjNkVCNQor5rq2ID4gcsOzbmc7ICM2RUI2CivmurcgPiBow7luOyAjNkVCNwor5rq4ID4gc8O5OyAjNkVCOAor5rq5ID4gc8O5OyAjNkVCOQor5rq6ID4gbsOsOyAjNkVCQQor5rq7ID4gdMOgOyAjNkVCQgor5rq8ID4gc2jEqzsgIzZFQkMKK+a6vSA+IHLDuTsgIzZFQkQKK+a6viA+IHfEk2k7ICM2RUJFCivmur8gPiBww6BuOyAjNkVCRgor5ruAID4gY2jDuTsgIzZFQzAKK+a7gSA+IGNow7o7ICM2RUMxCivmu4IgPiBwxIFuZzsgIzZFQzIKK+a7gyA+IHfElW5nOyAjNkVDMwor5ruEID4gY8SBbmc7ICM2RUM0Civmu4UgPiBtacOoOyAjNkVDNQor5ruGID4gaMOpOyAjNkVDNgor5ruHID4gZGnEgW47ICM2RUM3Civmu4ggPiBow6BvOyAjNkVDOAor5ruJID4gaHXEg25nOyAjNkVDOQor5ruKID4geMOsOyAjNkVDQQor5ruLID4gesSrOyAjNkVDQgor5ruMID4gZMOtOyAjNkVDQwor5ruNID4gemjErTsgIzZFQ0QKK+a7jiA+IHnDrW5nOyAjNkVDRQor5ruPID4gZsWtOyAjNkVDRgor5ruQID4gamnDqTsgIzZFRDAKK+a7kSA+IGh1w6E7ICM2RUQxCivmu5IgPiBnxJM7ICM2RUQyCivmu5MgPiB6xK07ICM2RUQzCivmu5QgPiB0xIFvOyAjNkVENAor5ruVID4gdMOpbmc7ICM2RUQ1Civmu5YgPiBzxatpOyAjNkVENgor5ruXID4gYsStOyAjNkVENwor5ruYID4gamnDoG87ICM2RUQ4Civmu5kgPiBow7lpOyAjNkVEOQor5ruaID4gZ8WtbjsgIzZFREEKK+a7myA+IHnDrW47ICM2RURCCivmu5wgPiBnxIFvOyAjNkVEQwor5rudID4gbMOzbmc7ICM2RURECivmu54gPiB6aMOsOyAjNkVERQor5rufID4gecOgbjsgIzZFREYKK+a7oCA+IHNow6g7ICM2RUUwCivmu6EgPiBtxINuOyAjNkVFMQor5ruiID4gecOsbmc7ICM2RUUyCivmu6MgPiBjaMO6bjsgIzZFRTMKK+a7pCA+IGzHnDsgIzZFRTQKK+a7pSA+IGzDoG47ICM2RUU1Civmu6YgPiBsdcOhbjsgIzZFRTYKK+a7qCA+IGLEq247ICM2RUU4Civmu6kgPiB0xIFuOyAjNkVFOQor5ruqID4gecO5OyAjNkVFQQor5rurID4gc8WPdTsgIzZFRUIKK+a7rCA+IGjDuTsgIzZFRUMKK+a7rSA+IGLDrDsgIzZFRUQKK+a7riA+IGJpxIFvOyAjNkVFRQor5ruvID4gemjDrDsgIzZFRUYKK+a7sCA+IGppxINuZzsgIzZFRjAKK+a7sSA+IGvDsnU7ICM2RUYxCivmu7IgPiBzaMOobjsgIzZFRjIKK+a7syA+IHNoxIFuZzsgIzZFRjMKK+a7tCA+IGTEqzsgIzZFRjQKK+a7tSA+IG3DrDsgIzZFRjUKK+a7tiA+IMOhbzsgIzZFRjYKK+a7tyA+IGzFrTsgIzZFRjcKK+a7uCA+IGjFrTsgIzZFRjgKK+a7uSA+IGjFqzsgIzZFRjkKK+a7uiA+IHnDs3U7ICM2RUZBCivmu7sgPiBjaMSDbjsgIzZFRkIKK+a7vCA+IGbDoG47ICM2RUZDCivmu70gPiB5w7NuZzsgIzZFRkQKK+a7viA+IGfFrW47ICM2RUZFCivmu78gPiBtxINuOyAjNkVGRgor5ryAID4gccOsbmc7ICM2RjAwCivmvIEgPiB5w7o7ICM2RjAxCivmvIIgPiBwacSBbzsgIzZGMDIKK+a8gyA+IGrDrTsgIzZGMDMKK+a8hCA+IHnDoTsgIzZGMDQKK+a8hSA+IGppxINvOyAjNkYwNQor5ryGID4gccSrOyAjNkYwNgor5ryHID4geMStOyAjNkYwNwor5ryIID4gasOsOyAjNkYwOAor5ryJID4gbMO5OyAjNkYwOQor5ryKID4gbMeaOyAjNkYwQQor5ryLID4gbMOzbmc7ICM2RjBCCivmvIwgPiBqxK1uOyAjNkYwQwor5ryNID4gZ8O6bzsgIzZGMEQKK+a8jiA+IGPDs25nOyAjNkYwRQor5ryPID4gbMOydTsgIzZGMEYKK+a8kCA+IHpow607ICM2RjEwCivmvJEgPiBnw6BpOyAjNkYxMQor5rySID4gcWnDoW5nOyAjNkYxMgor5ryTID4gbMOtOyAjNkYxMwor5ryUID4gecSDbjsgIzZGMTQKK+a8lSA+IGPDoW87ICM2RjE1CivmvJYgPiBqacOgbzsgIzZGMTYKK+a8lyA+IGPFjW5nOyAjNkYxNwor5ryYID4gccO6bjsgIzZGMTgKK+a8mSA+IHR1w6FuOyAjNkYxOQor5ryaID4gw7J1OyAjNkYxQQor5rybID4gdMOpbmc7ICM2RjFCCivmvJwgPiB5xJU7ICM2RjFDCivmvJ0gPiB4w607ICM2RjFECivmvJ4gPiBtw6w7ICM2RjFFCivmvJ8gPiB0w6FuZzsgIzZGMUYKK+a8oCA+IG3DsjsgIzZGMjAKK+a8oSA+IHNoxIFuZzsgIzZGMjEKK+a8oiA+IGjDoG47ICM2RjIyCivmvKMgPiBsacOhbjsgIzZGMjMKK+a8pCA+IGzEg247ICM2RjI0CivmvKUgPiB3xIE7ICM2RjI1CivmvKYgPiBsw607ICM2RjI2CivmvKcgPiBxacOhbjsgIzZGMjcKK+a8qCA+IGbDqW5nOyAjNkYyOAor5rypID4geHXDoW47ICM2RjI5CivmvKogPiB5xKs7ICM2RjJBCivmvKsgPiBtw6BuOyAjNkYyQgor5rysID4gesOsOyAjNkYyQwor5rytID4gbcSDbmc7ICM2RjJECivmvK4gPiBrxIFuZzsgIzZGMkUKK+a8ryA+IGzElWk7ICM2RjJGCivmvLAgPiBwxJNuZzsgIzZGMzAKK+a8sSA+IHNow7k7ICM2RjMxCivmvLIgPiB6aMSDbmc7ICM2RjMyCivmvLMgPiB6aMSBbmc7ICM2RjMzCivmvLQgPiBjaMOzbmc7ICM2RjM0CivmvLUgPiB4w7k7ICM2RjM1CivmvLYgPiBodcOgbjsgIzZGMzYKK+a8tyA+IGvDuW87ICM2RjM3CivmvLggPiBqacOgbjsgIzZGMzgKK+a8uSA+IHnEgW47ICM2RjM5CivmvLogPiBjaHXEg25nOyAjNkYzQQor5ry7ID4gbGnDoW87ICM2RjNCCivmvLwgPiBjxa1pOyAjNkYzQwor5ry9ID4gdMOtOyAjNkYzRAor5ry+ID4gecOgbmc7ICM2RjNFCivmvL8gPiBqacSBbmc7ICM2RjNGCivmvYAgPiBjw7NuZzsgIzZGNDAKK+a9gSA+IHnErW5nOyAjNkY0MQor5r2CID4gaMOzbmc7ICM2RjQyCivmvYMgPiB4w7puOyAjNkY0Mwor5r2EID4gc2jDuTsgIzZGNDQKK+a9hSA+IGd1w6BuOyAjNkY0NQor5r2GID4gecOtbmc7ICM2RjQ2CivmvYcgPiB4acSBbzsgIzZGNDcKK+a9iiA+IHjDuTsgIzZGNEEKK+a9iyA+IGxpw6BuOyAjNkY0Qgor5r2MID4gemjDrDsgIzZGNEMKK+a9jSA+IHfDqWk7ICM2RjRECivmvY4gPiBww6w7ICM2RjRFCivmvY8gPiBqdcOpOyAjNkY0Rgor5r2QID4gamnDoG87ICM2RjUwCivmvZEgPiBwxY07ICM2RjUxCivmvZIgPiBkw6BuZzsgIzZGNTIKK+a9kyA+IGjDuWk7ICM2RjUzCivmvZQgPiBqacOpOyAjNkY1NAor5r2VID4gd8WtOyAjNkY1NQor5r2WID4gcMOhOyAjNkY1Ngor5r2XID4gasOtOyAjNkY1Nwor5r2YID4gcMSBbjsgIzZGNTgKK+a9mSA+IGfDumk7ICM2RjU5CivmvZogPiB4acSBbzsgIzZGNUEKK+a9myA+IHFpw6FuOyAjNkY1Qgor5r2cID4gcWnDoW47ICM2RjVDCivmvZ0gPiB4xKs7ICM2RjVECivmvZ4gPiBsw7k7ICM2RjVFCivmvZ8gPiB4w6w7ICM2RjVGCivmvaAgPiB4dcOgbjsgIzZGNjAKK+a9oSA+IGTDuW47ICM2RjYxCivmvaIgPiBodcOhbmc7ICM2RjYyCivmvaMgPiBtxK1uOyAjNkY2Mwor5r2kID4gcsO5bjsgIzZGNjQKK+a9pSA+IHPDuTsgIzZGNjUKK+a9piA+IGxpw6FvOyAjNkY2Ngor5r2nID4gemjEk247ICM2RjY3CivmvaggPiB6aMWNbmc7ICM2RjY4CivmvakgPiB5w6w7ICM2RjY5CivmvaogPiBkw607ICM2RjZBCivmvasgPiB3xIFuOyAjNkY2Qgor5r2sID4gZMOgbjsgIzZGNkMKK+a9rSA+IHTDoW47ICM2RjZECivmva4gPiBjaMOhbzsgIzZGNkUKK+a9ryA+IHjDum47ICM2RjZGCivmvbAgPiBrw7lpOyAjNkY3MAor5r2xID4geWllOyAjNkY3MQor5r2yID4gc2jDoG87ICM2RjcyCivmvbMgPiB0w7o7ICM2RjczCivmvbQgPiB6aMWrOyAjNkY3NAor5r21ID4gc8OgbjsgIzZGNzUKK+a9tiA+IGjEk2k7ICM2Rjc2CivmvbcgPiBixK07ICM2Rjc3CivmvbggPiBzaMSBbjsgIzZGNzgKK+a9uSA+IGNow6FuOyAjNkY3OQor5r26ID4gY2jDoW47ICM2RjdBCivmvbsgPiBzaMWtOyAjNkY3Qgor5r28ID4gdMOzbmc7ICM2RjdDCivmvb0gPiBwxa07ICM2RjdECivmvb4gPiBsw61uOyAjNkY3RQor5r2/ID4gd8OpaTsgIzZGN0YKK+a+gCA+IHPDqDsgIzZGODAKK+a+gSA+IHPDqDsgIzZGODEKK+a+giA+IGNow6luZzsgIzZGODIKK+a+gyA+IGrDrG9uZzsgIzZGODMKK+a+hCA+IGNow6luZzsgIzZGODQKK+a+hSA+IGh1w6A7ICM2Rjg1CivmvoYgPiBqacSBbzsgIzZGODYKK+a+hyA+IGzDoG87ICM2Rjg3CivmvoggPiBjaMOoOyAjNkY4OAor5r6JID4gZ8SDbjsgIzZGODkKK+a+iiA+IGPFq247ICM2RjhBCivmvosgPiBow6huZzsgIzZGOEIKK+a+jCA+IHPEqzsgIzZGOEMKK+a+jSA+IHNow7k7ICM2RjhECivmvo4gPiBww6luZzsgIzZGOEUKK+a+jyA+IGjDoG47ICM2RjhGCivmvpAgPiB5w7puOyAjNkY5MAor5r6RID4gbMOsdTsgIzZGOTEKK+a+kiA+IGjDsm5nOyAjNkY5Mgor5r6TID4gZsO6OyAjNkY5Mwor5r6UID4gaMOgbzsgIzZGOTQKK+a+lSA+IGjDqTsgIzZGOTUKK+a+liA+IHhpxIFuOyAjNkY5Ngor5r6XID4gamnDoG47ICM2Rjk3CivmvpggPiBzaMSBbjsgIzZGOTgKK+a+mSA+IHjDrDsgIzZGOTkKK+a+nCA+IGzDoW47ICM2RjlDCivmvp4gPiB5w7o7ICM2RjlFCivmvp8gPiBsxK1uOyAjNkY5Rgor5r6gID4gbcStbjsgIzZGQTAKK+a+oSA+IHrEg287ICM2RkExCivmvqIgPiBkxIFuZzsgIzZGQTIKK+a+oyA+IHfEg247ICM2RkEzCivmvqQgPiB6w6k7ICM2RkE0CivmvqUgPiB4acOoOyAjNkZBNQor5r6mID4gecO5OyAjNkZBNgor5r6nID4gbMStOyAjNkZBNwor5r6oID4gc2jDrDsgIzZGQTgKK+a+qSA+IHh1w6k7ICM2RkE5CivmvqogPiBsw61uZzsgIzZGQUEKK+a+qyA+IG3DoG47ICM2RkFCCivmvqwgPiB6xKs7ICM2RkFDCivmvq0gPiB5xY1uZzsgIzZGQUQKK+a+riA+IGt1w6BpOyAjNkZBRQor5r6vID4gY8OgbjsgIzZGQUYKK+a+sCA+IGxpw6BuOyAjNkZCMAor5r6xID4gZGnDoG47ICM2RkIxCivmvrIgPiB5w6g7ICM2RkIyCivmvrMgPiDDoG87ICM2RkIzCivmvrQgPiBodcOhbjsgIzZGQjQKK+a+tSA+IHpoxJNuOyAjNkZCNQor5r62ID4gY2jDoW47ICM2RkI2CivmvrcgPiBtw6BuOyAjNkZCNwor5r64ID4gZMSDbjsgIzZGQjgKK+a+uSA+IGTDoG47ICM2RkI5CivmvrogPiB5w6w7ICM2RkJBCivmvrsgPiBzw7lpOyAjNkZCQgor5r68ID4gcMOsOyAjNkZCQwor5r69ID4gasO5OyAjNkZCRAor5r6+ID4gdMOgOyAjNkZCRQor5r6/ID4gccOtbjsgIzZGQkYKK+a/gCA+IGrEqzsgIzZGQzAKK+a/gSA+IHpow7pvOyAjNkZDMQor5r+CID4gbGnDoW47ICM2RkMyCivmv4MgPiBuw7NuZzsgIzZGQzMKK+a/hCA+IGfFq287ICM2RkM0Civmv4UgPiBqw6xuOyAjNkZDNQor5r+GID4gZsOpbjsgIzZGQzYKK+a/hyA+IHPDqDsgIzZGQzcKK+a/iCA+IGrDrTsgIzZGQzgKK+a/iSA+IHPFq2k7ICM2RkM5Civmv4ogPiBow7lpOyAjNkZDQQor5r+LID4gY2jFrTsgIzZGQ0IKK+a/jCA+IHTDoDsgIzZGQ0MKK+a/jSA+IHPFjW5nOyAjNkZDRAor5r+OID4gZMStbmc7ICM2RkNFCivmv5AgPiB6aMWtOyAjNkZEMAor5r+RID4gbMOgaTsgIzZGRDEKK+a/kiA+IGLEq247ICM2RkQyCivmv5MgPiBsacOhbjsgIzZGRDMKK+a/lCA+IG3ErTsgIzZGRDQKK+a/lSA+IHNoxKs7ICM2RkQ1Civmv5YgPiBzaMO5OyAjNkZENgor5r+XID4gbcOsOyAjNkZENwor5r+YID4gbsOsbmc7ICM2RkQ4Civmv5kgPiB5w61uZzsgIzZGRDkKK+a/miA+IHnDrW5nOyAjNkZEQQor5r+bID4gbcOpbmc7ICM2RkRCCivmv5wgPiBqw6xuOyAjNkZEQwor5r+dID4gccOtOyAjNkZERAor5r+eID4gcMOsOyAjNkZERQor5r+fID4gasOsOyAjNkZERgor5r+gID4gaMOhbzsgIzZGRTAKK+a/oSA+IHLDujsgIzZGRTEKK+a/oiA+IHrFrWk7ICM2RkUyCivmv6MgPiB3w7I7ICM2RkUzCivmv6QgPiB0xIFvOyAjNkZFNAor5r+lID4gecOsbjsgIzZGRTUKK+a/piA+IHnErW47ICM2RkU2Civmv6cgPiBkw7lpOyAjNkZFNwor5r+oID4gY8OtOyAjNkZFOAor5r+pID4gaMO5bzsgIzZGRTkKK+a/qiA+IGrDrG5nOyAjNkZFQQor5r+rID4gbMOgbjsgIzZGRUIKK+a/rCA+IGrDuW47ICM2RkVDCivmv60gPiDDoGk7ICM2RkVECivmv64gPiBwxas7ICM2RkVFCivmv68gPiB6aMO6bzsgIzZGRUYKK+a/sCA+IHfDqWk7ICM2RkYwCivmv7EgPiBixKtuOyAjNkZGMQor5r+yID4gZ8WtOyAjNkZGMgor5r+zID4gcWnDoW47ICM2RkYzCivmv7QgPiB4w61uZzsgIzZGRjQKK+a/tiA+IGvDuW87ICM2RkY2Civmv7cgPiBmw6hpOyAjNkZGNwor5r+6ID4gamnDoG47ICM2RkZBCivmv7sgPiB3xJVpOyAjNkZGQgor5r+8ID4gbMO5bzsgIzZGRkMKK+a/vSA+IHrDoG47ICM2RkZECivmv74gPiBsx5w7ICM2RkZFCivmv78gPiBsw6w7ICM2RkZGCivngIAgPiB5xY11OyAjNzAwMAor54CBID4gecOgbmc7ICM3MDAxCivngIIgPiBsxa07ICM3MDAyCivngIMgPiBzw6w7ICM3MDAzCivngIQgPiBqacOpOyAjNzAwNAor54CFID4gecOsbmc7ICM3MDA1CivngIYgPiBkw7o7ICM3MDA2CivngIcgPiB3xINuZzsgIzcwMDcKK+eAiCA+IGjFq2k7ICM3MDA4CivngIkgPiB4acOoOyAjNzAwOQor54CKID4gcMOhbjsgIzcwMEEKK+eAiyA+IHNoxJVuOyAjNzAwQgor54CMID4gYmnEgW87ICM3MDBDCivngI0gPiBjaMOhbjsgIzcwMEQKK+eAjiA+IG3DsjsgIzcwMEUKK+eAjyA+IGzDrXU7ICM3MDBGCivngJAgPiBqacSBbjsgIzcwMTAKK+eAkSA+IHDDuTsgIzcwMTEKK+eAkiA+IHPDqDsgIzcwMTIKK+eAkyA+IGNow6luZzsgIzcwMTMKK+eAlCA+IGfFrTsgIzcwMTQKK+eAlSA+IGLEq247ICM3MDE1CivngJYgPiBow7lvOyAjNzAxNgor54CXID4geGnDoG47ICM3MDE3CivngJggPiBsw7o7ICM3MDE4CivngJkgPiBxxKtuOyAjNzAxOQor54CaID4gaMOgbjsgIzcwMUEKK+eAmyA+IHnDrW5nOyAjNzAxQgor54CcID4gecWNbmc7ICM3MDFDCivngJ0gPiBsw6w7ICM3MDFECivngJ4gPiBqw6xuZzsgIzcwMUUKK+eAnyA+IHhpxIFvOyAjNzAxRgor54CgID4gecOtbmc7ICM3MDIwCivngKEgPiBzxa1pOyAjNzAyMQor54CiID4gd8OpaTsgIzcwMjIKK+eAoyA+IHhpw6g7ICM3MDIzCivngKQgPiBodcOhaTsgIzcwMjQKK+eApSA+IGjDoG87ICM3MDI1CivngKYgPiB6aMWrOyAjNzAyNgor54CnID4gbMOzbmc7ICM3MDI3CivngKggPiBsw6BpOyAjNzAyOAor54CpID4gZMO5aTsgIzcwMjkKK+eAqiA+IGbDoW47ICM3MDJBCivngKsgPiBow7o7ICM3MDJCCivngKwgPiBsw6BpOyAjNzAyQwor54CvID4gecOtbmc7ICM3MDJGCivngLAgPiBtw607ICM3MDMwCivngLEgPiBqw6w7ICM3MDMxCivngLIgPiBsacOgbjsgIzcwMzIKK+eAsyA+IGppw6BuOyAjNzAzMwor54C0ID4gecStbmc7ICM3MDM0CivngLUgPiBmw6huOyAjNzAzNQor54C2ID4gbMOtbjsgIzcwMzYKK+eAtyA+IHnDrDsgIzcwMzcKK+eAuCA+IGppxIFuOyAjNzAzOAor54C5ID4geXXDqDsgIzcwMzkKK+eAuiA+IGNow6FuOyAjNzAzQQor54C7ID4gZMOgaTsgIzcwM0IKK+eAvCA+IHLDoW5nOyAjNzAzQwor54C9ID4gamnEg247ICM3MDNECivngL4gPiBsw6FuOyAjNzAzRQor54C/ID4gZsOhbjsgIzcwM0YKK+eBgCA+IHNodcOgbmc7ICM3MDQwCivngYEgPiB5dcSBbjsgIzcwNDEKK+eBgiA+IHpow7pvOyAjNzA0Mgor54GDID4gZsSTbmc7ICM3MDQzCivngYQgPiBzaMOoOyAjNzA0NAor54GFID4gbMSVaTsgIzcwNDUKK+eBhiA+IGzDoW47ICM3MDQ2CivngYcgPiBjw7NuZzsgIzcwNDcKK+eBiCA+IHHDujsgIzcwNDgKK+eBiSA+IHnFjW5nOyAjNzA0OQor54GKID4gcWnDoW47ICM3MDRBCivngYsgPiBmxIM7ICM3MDRCCivngYwgPiBndcOgbjsgIzcwNEMKK+eBjSA+IHF1w6g7ICM3MDRECivngY4gPiB5w6BuOyAjNzA0RQor54GPID4gaMOgbzsgIzcwNEYKK+eBkSA+IHPEgzsgIzcwNTEKK+eBkiA+IHrDoG47ICM3MDUyCivngZMgPiBsdcOhbjsgIzcwNTMKK+eBlCA+IHnDoG47ICM3MDU0CivngZUgPiBsw607ICM3MDU1CivngZYgPiBtxK07ICM3MDU2CivngZcgPiBzaMOgbjsgIzcwNTcKK+eBmCA+IHTEgW47ICM3MDU4CivngZkgPiBkxINuZzsgIzcwNTkKK+eBmiA+IGppxINvOyAjNzA1QQor54GbID4gY2jEg247ICM3MDVCCivngZ0gPiBow6BvOyAjNzA1RAor54GeID4gYsOgOyAjNzA1RQor54GfID4gemjDujsgIzcwNUYKK+eBoCA+IGzEg247ICM3MDYwCivngaEgPiBsw6FuOyAjNzA2MQor54GiID4gbsSDbmc7ICM3MDYyCivngaMgPiB3xIFuOyAjNzA2Mwor54GkID4gbHXDoW47ICM3MDY0CivngaUgPiB4w7puOyAjNzA2NQor54GmID4geGnEg247ICM3MDY2CivngacgPiB5w6BuOyAjNzA2Nwor54GoID4gZ8SDbjsgIzcwNjgKK+eBqSA+IHnDoG47ICM3MDY5CivngaogPiB5w7k7ICM3MDZBCivngasgPiBoxa1vOyAjNzA2Qgor54GsID4gc8OsJyAnZGnEg24nICdoxa1vOyAjNzA2Qwor54GtID4gbWnDqDsgIzcwNkQKK+eBriA+IGd1xIFuZzsgIzcwNkUKK+eBryA+IGTEk25nOyAjNzA2Rgor54GwID4gaMWraTsgIzcwNzAKK+eBsSA+IHhpxIFvOyAjNzA3MQor54GyID4geGnEgW87ICM3MDcyCivngbMgPiBoxasxOyAjNzA3Mwor54G0ID4gaMOzbmc7ICM3MDc0CivngbUgPiBsw61uZzsgIzcwNzUKK+eBtiA+IHrDoG87ICM3MDc2CivngbcgPiB6aHXDoG47ICM3MDc3CivngbggPiBqxK11OyAjNzA3OAor54G5ID4gemjDoDsgIzcwNzkKK+eBuiA+IHhpw6g7ICM3MDdBCivngbsgPiBjaMOsOyAjNzA3Qgor54G8ID4gemjDum87ICM3MDdDCivngb0gPiB6xIFpOyAjNzA3RAor54G+ID4gesSBaTsgIzcwN0UKK+eBvyA+IGPDoG47ICM3MDdGCivngoAgPiB5w6FuZzsgIzcwODAKK+eCgSA+IHHDrDsgIzcwODEKK+eCgiA+IHpoxY1uZzsgIzcwODIKK+eCgyA+IGbDqW47ICM3MDgzCivngoQgPiBuxK11OyAjNzA4NAor54KFID4gasStb25nOyAjNzA4NQor54KGID4gd8OpbjsgIzcwODYKK+eChyA+IHDDsjsgIzcwODcKK+eCiCA+IHnDrDsgIzcwODgKK+eCiSA+IGzDujsgIzcwODkKK+eCiiA+IGNoxatpOyAjNzA4QQor54KLID4gcMSrOyAjNzA4Qgor54KMID4ga8OgaTsgIzcwOEMKK+eCjSA+IHDDoG47ICM3MDhECivngo4gPiB5w6FuOyAjNzA4RQor54KPID4ga8OgaTsgIzcwOEYKK+eCkCA+IHDDoG5nOyAjNzA5MAor54KRID4gbcO5OyAjNzA5MQor54KSID4gY2jEg287ICM3MDkyCivngpMgPiBsacOgbzsgIzcwOTMKK+eClCA+IGfDuWk7ICM3MDk0CivngpUgPiBrw6BuZzsgIzcwOTUKK+eCliA+IHTFq247ICM3MDk2CivngpcgPiBndcSBbmc7ICM3MDk3CivngpggPiB4xKtuOyAjNzA5OAor54KZID4gemjDrDsgIzcwOTkKK+eCmiA+IGd1YW5nOyAjNzA5QQor54KbID4gZ3XEgW5nOyAjNzA5Qgor54KcID4gd8SVaTsgIzcwOUMKK+eCnSA+IHFpw6BuZzsgIzcwOUQKK+eCnyA+IGTDoTsgIzcwOUYKK+eCoCA+IHhpw6E7ICM3MEEwCivngqEgPiB6aMSTbmc7ICM3MEExCivngqIgPiB6aMO6OyAjNzBBMgor54KjID4ga8SVOyAjNzBBMwor54KkID4gemjDoG87ICM3MEE0CivngqUgPiBmw7o7ICM3MEE1CivngqYgPiBiw6E7ICM3MEE2CivngqcgPiBkw7lvOyAjNzBBNwor54KoID4gZMO5bzsgIzcwQTgKK+eCqSA+IGzDrG5nOyAjNzBBOQor54KqID4gemjDum87ICM3MEFBCivngqsgPiB4dcOgbjsgIzcwQUIKK+eCrCA+IGrDuTsgIzcwQUMKK+eCrSA+IHTDoG47ICM3MEFECivngq4gPiBww6BvOyAjNzBBRQor54KvID4gasStb25nOyAjNzBBRgor54KwID4gcMOhbzsgIzcwQjAKK+eCsSA+IHTDoWk7ICM3MEIxCivngrIgPiB0w6FpOyAjNzBCMgor54KzID4gYsStbmc7ICM3MEIzCivngrQgPiB5xINuZzsgIzcwQjQKK+eCtSA+IHTFjW5nOyAjNzBCNQor54K2ID4gaMSBbjsgIzcwQjYKK+eCtyA+IHpow7k7ICM3MEI3CivngrggPiB6aMOgOyAjNzBCOAor54K5ID4gZGnEg247ICM3MEI5CivngrogPiB3w6hpOyAjNzBCQQor54K7ID4gc2jDrTsgIzcwQkIKK+eCvCA+IGxpw6BuOyAjNzBCQwor54K9ID4gY2jDrDsgIzcwQkQKK+eCviA+IGh1xINuZzsgIzcwQkUKK+eDgCA+IGjFqzsgIzcwQzAKK+eDgSA+IHNow7lvOyAjNzBDMQor54OCID4gbMOgbjsgIzcwQzIKK+eDgyA+IGrErW5nOyAjNzBDMwor54OEID4gamnEg287ICM3MEM0Civng4UgPiB4w7k7ICM3MEM1Civng4YgPiB4w61uZzsgIzcwQzYKK+eDhyA+IHF1w6BuOyAjNzBDNwor54OIID4gbGnDqDsgIzcwQzgKK+eDiSA+IGh1w6BuOyAjNzBDOQor54OKID4gecOhbmc7ICM3MENBCivng4sgPiB4acSBbzsgIzcwQ0IKK+eDjCA+IHjEq3U7ICM3MENDCivng40gPiB4acSDbjsgIzcwQ0QKK+eDjiA+IHnDrW47ICM3MENFCivng48gPiB3xas7ICM3MENGCivng5AgPiB6aMWNdTsgIzcwRDAKK+eDkSA+IHnDoW87ICM3MEQxCivng5IgPiBzaMOsOyAjNzBEMgor54OTID4gd8STaTsgIzcwRDMKK+eDlCA+IHTDs25nOyAjNzBENAor54OVID4geHXDqDsgIzcwRDUKK+eDliA+IHrEgWk7ICM3MEQ2Civng5cgPiBrw6BpOyAjNzBENwor54OYID4gaMWNbmc7ICM3MEQ4Civng5kgPiBsw7lvOyAjNzBEOQor54OaID4geGnDoTsgIzcwREEKK+eDmyA+IHpow7o7ICM3MERCCivng5wgPiB4dcSDbjsgIzcwREMKK+eDnSA+IHpoxJNuZzsgIzcwREQKK+eDniA+IHDDsjsgIzcwREUKK+eDnyA+IHnEgW47ICM3MERGCivng6AgPiBoxa1pOyAjNzBFMAor54OhID4gZ3XEgW5nOyAjNzBFMQor54OiID4gemjDqDsgIzcwRTIKK+eDoyA+IGjFq2k7ICM3MEUzCivng6QgPiBrxINvOyAjNzBFNAor54OmID4gZsOhbjsgIzcwRTYKK+eDpyA+IHNoxIFvOyAjNzBFNwor54OoID4gecOoOyAjNzBFOAor54OpID4gaMO5aTsgIzcwRTkKK+eDqyA+IHTDoG5nOyAjNzBFQgor54OsID4gasOsbjsgIzcwRUMKK+eDrSA+IHLDqDsgIzcwRUQKK+eDryA+IHjEqzsgIzcwRUYKK+eDsCA+IGbDujsgIzcwRjAKK+eDsSA+IGrErW9uZzsgIzcwRjEKK+eDsiA+IGNow6g7ICM3MEYyCivng7MgPiBwxa07ICM3MEYzCivng7QgPiBqxK1uZzsgIzcwRjQKK+eDtSA+IHpow7pvOyAjNzBGNQor54O2ID4gdMStbmc7ICM3MEY2Civng7cgPiB3w6FuOyAjNzBGNwor54O4ID4gaMSDaTsgIzcwRjgKK+eDuSA+IHDEk25nOyAjNzBGOQor54O6ID4gbMSDbmc7ICM3MEZBCivng7sgPiBzaMSBbjsgIzcwRkIKK+eDvCA+IGjFqzsgIzcwRkMKK+eDvSA+IGbEk25nOyAjNzBGRAor54O+ID4gY2jDrDsgIzcwRkUKK+eDvyA+IHLDs25nOyAjNzBGRgor54SAID4gaMO6OyAjNzEwMAor54SBID4geGk7ICM3MTAxCivnhIIgPiBzaMO6OyAjNzEwMgor54SDID4gaMOoOyAjNzEwMwor54SEID4geMWrbjsgIzcxMDQKK+eEhSA+IGvDuTsgIzcxMDUKK+eEhiA+IGp1w6k7ICM3MTA2CivnhIcgPiB4acSBbzsgIzcxMDcKK+eEiCA+IHjEqzsgIzcxMDgKK+eEiSA+IHnEgW47ICM3MTA5CivnhIogPiBow6BuOyAjNzEwQQor54SLID4gemh1w6BuZzsgIzcxMEIKK+eEjCA+IGrDuW47ICM3MTBDCivnhI0gPiBkw6w7ICM3MTBECivnhI4gPiB4acOoOyAjNzEwRQor54SPID4gasOtOyAjNzEwRgor54SQID4gd8O5OyAjNzExMAor54STID4gaMOhbjsgIzcxMTMKK+eElCA+IHnDoG47ICM3MTE0CivnhJUgPiBodcOgbjsgIzcxMTUKK+eEliA+IG3DqG47ICM3MTE2CivnhJcgPiBqw7o7ICM3MTE3CivnhJggPiBjaMOzdTsgIzcxMTgKK+eEmSA+IGLDqGk7ICM3MTE5CivnhJogPiBmw6luOyAjNzExQQor54SbID4gbMOsbjsgIzcxMUIKK+eEnCA+IGvFq247ICM3MTFDCivnhJ0gPiBow7luOyAjNzExRAor54SeID4gdMWrbjsgIzcxMUUKK+eEnyA+IHjDrTsgIzcxMUYKK+eEoCA+IGPDuWk7ICM3MTIwCivnhKEgPiB3w7o7ICM3MTIxCivnhKIgPiBoxY1uZzsgIzcxMjIKK+eEoyA+IGrDuTsgIzcxMjMKK+eEpCA+IGbFrTsgIzcxMjQKK+eEpSA+IHfDsjsgIzcxMjUKK+eEpiA+IGppxIFvOyAjNzEyNgor54SnID4gY8WNbmc7ICM3MTI3CivnhKggPiBmw6huZzsgIzcxMjgKK+eEqSA+IHDEq25nOyAjNzEyOQor54SqID4gccSrb25nOyAjNzEyQQor54SrID4gcsO5bzsgIzcxMkIKK+eErCA+IHjDrTsgIzcxMkMKK+eErSA+IHHDrW9uZzsgIzcxMkQKK+eEriA+IHjDrG47ICM3MTJFCivnhK8gPiB6aMO6bzsgIzcxMkYKK+eEsCA+IHnDoG47ICM3MTMwCivnhLEgPiB5w6BuOyAjNzEzMQor54SyID4gecOsOyAjNzEzMgor54SzID4ganXDqTsgIzcxMzMKK+eEtCA+IHnDuTsgIzcxMzQKK+eEtSA+IGfDoG5nOyAjNzEzNQor54S2ID4gcsOhbjsgIzcxMzYKK+eEtyA+IHDDrTsgIzcxMzcKK+eEuCA+IGfFrTsgIzcxMzgKK+eEuiA+IHNoxJNuZzsgIzcxM0EKK+eEuyA+IGNow6BuZzsgIzcxM0IKK+eEvCA+IHNoxIFvOyAjNzEzQwor54WBID4gY2jDqW47ICM3MTQxCivnhYIgPiBow6g7ICM3MTQyCivnhYMgPiBrxa1pOyAjNzE0Mwor54WEID4gemjFjW5nOyAjNzE0NAor54WFID4gZHXDoG47ICM3MTQ1CivnhYYgPiB4acSBOyAjNzE0Ngor54WHID4gaMWraTsgIzcxNDcKK+eFiCA+IGbDqG5nOyAjNzE0OAor54WJID4gbGnDoG47ICM3MTQ5CivnhYogPiB4dcSBbjsgIzcxNEEKK+eFiyA+IHjEq25nOyAjNzE0Qgor54WMID4gaHXDoW5nOyAjNzE0Qwor54WNID4gamnEg287ICM3MTRECivnhY4gPiBqacSBbjsgIzcxNEUKK+eFjyA+IGLDrDsgIzcxNEYKK+eFkCA+IHnEq25nOyAjNzE1MAor54WRID4gemjFrTsgIzcxNTEKK+eFkiA+IHfElWk7ICM3MTUyCivnhZMgPiB0dcSBbjsgIzcxNTMKK+eFlCA+IHRpw6BuOyAjNzE1NAor54WVID4geMSrOyAjNzE1NQor54WWID4gbnXEg247ICM3MTU2CivnhZcgPiBudcSDbjsgIzcxNTcKK+eFmCA+IGNow6FuOyAjNzE1OAor54WZID4gecSBbjsgIzcxNTkKK+eFmiA+IGrErW9uZzsgIzcxNUEKK+eFmyA+IGrErW9uZzsgIzcxNUIKK+eFnCA+IHnDuTsgIzcxNUMKK+eFnSA+IG3DqGk7ICM3MTVECivnhZ4gPiBzaMOgOyAjNzE1RQor54WfID4gd8OoaTsgIzcxNUYKK+eFoCA+IHnDqDsgIzcxNjAKK+eFoSA+IHjDrG47ICM3MTYxCivnhaIgPiBxw61vbmc7ICM3MTYyCivnhaMgPiByxY91OyAjNzE2Mwor54WkID4gbcOpaTsgIzcxNjQKK+eFpSA+IGh1w6BuOyAjNzE2NQor54WmID4geMWtOyAjNzE2Ngor54WnID4gemjDoG87ICM3MTY3CivnhaggPiB3xJNpOyAjNzE2OAor54WpID4gZsOhbjsgIzcxNjkKK+eFqiA+IHHDrXU7ICM3MTZBCivnhasgPiBzw7lpOyAjNzE2Qgor54WsID4gecOhbmc7ICM3MTZDCivnha0gPiBsacOoOyAjNzE2RAor54WuID4gemjFrTsgIzcxNkUKK+eFryA+IGppZTsgIzcxNkYKK+eFsCA+IGfDoG87ICM3MTcwCivnhbEgPiBndcSBOyAjNzE3MQor54WyID4gYsOgbzsgIzcxNzIKK+eFsyA+IGjDujsgIzcxNzMKK+eFtCA+IHnFq247ICM3MTc0CivnhbUgPiB4acSBOyAjNzE3NQor54W4ID4gYmnEgW47ICM3MTc4CivnhbkgPiBnw7J1OyAjNzE3OQor54W6ID4gdMO5aTsgIzcxN0EKK+eFuyA+IHTDoW5nOyAjNzE3Qgor54W8ID4gY2jEg287ICM3MTdDCivnhb0gPiBzaMSBbjsgIzcxN0QKK+eFviA+IG47ICM3MTdFCivnhb8gPiBiw7M7ICM3MTdGCivnhoAgPiBodcSDbmc7ICM3MTgwCivnhoEgPiB4acOpOyAjNzE4MQor54aCID4geMOsOyAjNzE4Mgor54aDID4gd8O5OyAjNzE4Mwor54aEID4geMOtOyAjNzE4NAor54aFID4gecO6bjsgIzcxODUKK+eGhiA+IGjDqTsgIzcxODYKK+eGhyA+IGjDqDsgIzcxODcKK+eGiCA+IHjEqzsgIzcxODgKK+eGiSA+IHnDum47ICM3MTg5CivnhoogPiB4w61vbmc7ICM3MThBCivnhosgPiBuw6FpOyAjNzE4Qgor54aMID4gc2jDoG47ICM3MThDCivnho0gPiBxaW9uZzsgIzcxOEQKK+eGjiA+IHnDoG87ICM3MThFCivnho8gPiB4xatuOyAjNzE4Rgor54aQID4gbcOsOyAjNzE5MAor54aRID4gbGnDoW47ICM3MTkxCivnhpIgPiB5w61uZzsgIzcxOTIKK+eGkyA+IHfDqG47ICM3MTkzCivnhpQgPiByw7NuZzsgIzcxOTQKK+eGlyA+IHFpw6BuZzsgIzcxOTcKK+eGmCA+IGzEq3U7ICM3MTk4CivnhpkgPiB4xKs7ICM3MTk5CivnhpogPiBiw6w7ICM3MTlBCivnhpsgPiBiacSBbzsgIzcxOUIKK+eGnCA+IHrFj25nOyAjNzE5Qwor54adID4gbMO5OyAjNzE5RAor54aeID4gamnEgW47ICM3MTlFCivnhp8gPiBzaMOzdTsgIzcxOUYKK+eGoCA+IHnDrDsgIzcxQTAKK+eGoSA+IGzDs3U7ICM3MUExCivnhqIgPiBmxJNuZzsgIzcxQTIKK+eGoyA+IHPFq2k7ICM3MUEzCivnhqQgPiB5w6w7ICM3MUE0CivnhqUgPiB0xY1uZzsgIzcxQTUKK+eGpiA+IGp1w6k7ICM3MUE2CivnhqcgPiB6xY1uZzsgIzcxQTcKK+eGqCA+IHnDuW47ICM3MUE4CivnhqkgPiBow7k7ICM3MUE5CivnhqogPiB5w607ICM3MUFBCivnhqsgPiB6aMOsOyAjNzFBQgor54asID4gw6FvOyAjNzFBQwor54atID4gd8OoaTsgIzcxQUQKK+eGriA+IGxpw6FvOyAjNzFBRQor54avID4gaMOgbjsgIzcxQUYKK+eGsCA+IMWNdTsgIzcxQjAKK+eGsSA+IHLDqDsgIzcxQjEKK+eGsiA+IGrErW9uZzsgIzcxQjIKK+eGsyA+IG3DoG47ICM3MUIzCivnhrUgPiBzaMSBbmc7ICM3MUI1CivnhrYgPiBjdcOgbjsgIzcxQjYKK+eGtyA+IHrEk25nOyAjNzFCNwor54a4ID4gamnEgW47ICM3MUI4CivnhrkgPiB4xKs7ICM3MUI5CivnhrogPiB4xKs7ICM3MUJBCivnhrsgPiB4xKs7ICM3MUJCCivnhrwgPiB5w6w7ICM3MUJDCivnhr0gPiB4acOgbzsgIzcxQkQKK+eGviA+IGNow6w7ICM3MUJFCivnhr8gPiBodcOhbmc7ICM3MUJGCivnh4AgPiBjaMSDbjsgIzcxQzAKK+eHgSA+IHnDqDsgIzcxQzEKK+eHgiA+IHFpw6FuOyAjNzFDMgor54eDID4gcsOhbjsgIzcxQzMKK+eHhCA+IHnDoG47ICM3MUM0Civnh4UgPiB4acOhbjsgIzcxQzUKK+eHhiA+IHFpw6FvOyAjNzFDNgor54eHID4gesO5bjsgIzcxQzcKK+eHiCA+IGTEk25nOyAjNzFDOAor54eJID4gZMO5bjsgIzcxQzkKK+eHiiA+IHNoxJNuOyAjNzFDQQor54eLID4gamnEgW87ICM3MUNCCivnh4wgPiBmw6luOyAjNzFDQwor54eNID4gc8SrOyAjNzFDRAor54eOID4gbGnDoG87ICM3MUNFCivnh48gPiB5w7k7ICM3MUNGCivnh5AgPiBsw61uOyAjNzFEMAor54eRID4gdMOzbmc7ICM3MUQxCivnh5IgPiBzaMSBbzsgIzcxRDIKK+eHkyA+IGbEk247ICM3MUQzCivnh5QgPiBmw6FuOyAjNzFENAor54eVID4gecOgbjsgIzcxRDUKK+eHliA+IHjDum47ICM3MUQ2Civnh5cgPiBsw6BuOyAjNzFENwor54eYID4gbcSVaTsgIzcxRDgKK+eHmSA+IHTDoG5nOyAjNzFEOQor54eaID4gecSrOyAjNzFEQQor54ebID4gasStbmc7ICM3MURCCivnh5wgPiBtw6huOyAjNzFEQwor54efID4gecOtbmc7ICM3MURGCivnh6AgPiB5w7k7ICM3MUUwCivnh6EgPiB5w6w7ICM3MUUxCivnh6IgPiB4dcOpOyAjNzFFMgor54ejID4gbMOhbjsgIzcxRTMKK+eHpCA+IHTDoGk7ICM3MUU0Civnh6UgPiB6w6BvOyAjNzFFNQor54emID4gY8OgbjsgIzcxRTYKK+eHpyA+IHPDuWk7ICM3MUU3Civnh6ggPiB4xKs7ICM3MUU4Civnh6kgPiBxdcOoOyAjNzFFOQor54eqID4gY8WNbmc7ICM3MUVBCivnh6sgPiBsacOhbjsgIzcxRUIKK+eHrCA+IGjFrWk7ICM3MUVDCivnh60gPiB6aMO6OyAjNzFFRAor54euID4geGnDqDsgIzcxRUUKK+eHryA+IGzDrW5nOyAjNzFFRgor54ewID4gd8STaTsgIzcxRjAKK+eHsSA+IHnDrDsgIzcxRjEKK+eHsiA+IHhpw6k7ICM3MUYyCivnh7MgPiB6aMOgbzsgIzcxRjMKK+eHtCA+IGjDuWk7ICM3MUY0Civnh7cgPiBsw6FuOyAjNzFGNwor54e4ID4gcsO6OyAjNzFGOAor54e5ID4geGnEg247ICM3MUY5Civnh7ogPiBrxINvOyAjNzFGQQor54e7ID4geMWrbjsgIzcxRkIKK+eHvCA+IGrDrG47ICM3MUZDCivnh70gPiBjaMOzdTsgIzcxRkQKK+eHviA+IGNow7N1OyAjNzFGRQor54e/ID4gecOgbzsgIzcxRkYKK+eIgCA+IGjDqDsgIzcyMDAKK+eIgSA+IGzDoG47ICM3MjAxCivniIIgPiBiacSBbzsgIzcyMDIKK+eIgyA+IHLDs25nOyAjNzIwMwor54iEID4gbMOsOyAjNzIwNAor54iFID4gbcOyOyAjNzIwNQor54iGID4gYsOgbzsgIzcyMDYKK+eIhyA+IHLDuW87ICM3MjA3CivniIggPiBsx5g7ICM3MjA4CivniIkgPiBsw6A7ICM3MjA5CivniIogPiDDoW87ICM3MjBBCivniIsgPiB4w7luOyAjNzIwQgor54iMID4ga3XDoG5nOyAjNzIwQwor54iNID4gc2jDuW87ICM3MjBECivniI8gPiBsw6w7ICM3MjBGCivniJAgPiBsw7o7ICM3MjEwCivniJEgPiBqdcOpOyAjNzIxMQor54iSID4gbGnDoG87ICM3MjEyCivniJMgPiB5w6BuOyAjNzIxMwor54iUID4geMSrOyAjNzIxNAor54iVID4geGnDqDsgIzcyMTUKK+eIliA+IGzDs25nOyAjNzIxNgor54iXID4gecOoOyAjNzIxNwor54iZID4gcsSDbmc7ICM3MjE5CivniJogPiB5dcOoOyAjNzIxQQor54ibID4gbMOgbjsgIzcyMUIKK+eInCA+IGPDs25nOyAjNzIxQwor54idID4ganXDqTsgIzcyMUQKK+eIniA+IHTDs25nOyAjNzIxRQor54ifID4gZ3XDoG47ICM3MjFGCivniKEgPiBjaMOoOyAjNzIyMQor54iiID4gbcOtOyAjNzIyMgor54ijID4gdMSDbmc7ICM3MjIzCivniKQgPiBsw6BuOyAjNzIyNAor54ilID4gemjDujsgIzcyMjUKK+eIpyA+IGzDrW5nOyAjNzIyNwor54ioID4gY3XDoG47ICM3MjI4CivniKkgPiB5w7k7ICM3MjI5CivniKogPiB6aHXEgzsgIzcyMkEKK+eIrCA+IHDDoTsgIzcyMkMKK+eIrSA+IHpoxJNuZzsgIzcyMkQKK+eIriA+IHDDoW87ICM3MjJFCivniK8gPiBjaMSTbmc7ICM3MjJGCivniLAgPiB5dcOhbjsgIzcyMzAKK+eIsSA+IMOgaTsgIzcyMzEKK+eIsiA+IHfDqGk7ICM3MjMyCivniLQgPiBqdcOpOyAjNzIzNAor54i1ID4ganXDqTsgIzcyMzUKK+eItiA+IGbDuTsgIzcyMzYKK+eItyA+IHnDqTsgIzcyMzcKK+eIuCA+IGLDoDsgIzcyMzgKK+eIuSA+IGRpxJM7ICM3MjM5CivniLogPiB5w6k7ICM3MjNBCivniLsgPiB5w6FvOyAjNzIzQgor54i8ID4gesWtOyAjNzIzQwor54i9ID4gc2h1xINuZzsgIzcyM0QKK+eIviA+IMSVcjsgIzcyM0UKK+eIvyA+IHFpw6FuZzsgIzcyM0YKK+eJgCA+IGNodcOhbmc7ICM3MjQwCivniYEgPiBnxJM7ICM3MjQxCivniYIgPiB6xIFuZzsgIzcyNDIKK+eJgyA+IGRpw6k7ICM3MjQzCivniYQgPiBxacSBbmc7ICM3MjQ0CivniYUgPiB5w7NuZzsgIzcyNDUKK+eJhiA+IHFpw6FuZzsgIzcyNDYKK+eJhyA+IHBpw6BuOyAjNzI0Nwor54mIID4gYsSDbjsgIzcyNDgKK+eJiSA+IHDDoG47ICM3MjQ5CivniYogPiBzaMOhbzsgIzcyNEEKK+eJiyA+IGppxIFuOyAjNzI0Qgor54mMID4gcMOhaTsgIzcyNEMKK+eJjSA+IGTDujsgIzcyNEQKK+eJjiA+IGNodcSBbmc7ICM3MjRFCivniY8gPiB0w7N1OyAjNzI0Rgor54mQID4gemjDoTsgIzcyNTAKK+eJkSA+IGJpxIFuOyAjNzI1MQor54mSID4gZGnDqTsgIzcyNTIKK+eJkyA+IGLEg25nOyAjNzI1Mwor54mUID4gYsOzOyAjNzI1NAor54mVID4gY2h1xIFuZzsgIzcyNTUKK+eJliA+IHnFj3U7ICM3MjU2CivniZggPiBkw7o7ICM3MjU4CivniZkgPiB5w6E7ICM3MjU5CivniZogPiBjaMOobmc7ICM3MjVBCivniZsgPiBuw611OyAjNzI1Qgor54mdID4gcMOsbjsgIzcyNUQKK+eJniA+IGrEq3U7ICM3MjVFCivniZ8gPiBtw7N1OyAjNzI1Rgor54mgID4gdMWrbzsgIzcyNjAKK+eJoSA+IG3FrTsgIzcyNjEKK+eJoiA+IGzDoW87ICM3MjYyCivniaMgPiByw6huOyAjNzI2Mwor54mkID4gbcOhbmc7ICM3MjY0CivniaUgPiBmxIFuZzsgIzcyNjUKK+eJpiA+IG3DoW87ICM3MjY2CivniacgPiBtw7k7ICM3MjY3CivniaggPiBnxIFuZzsgIzcyNjgKK+eJqSA+IHfDuTsgIzcyNjkKK+eJqiA+IHnDoG47ICM3MjZBCivniasgPiBnxJM7ICM3MjZCCivniawgPiBiw6hpOyAjNzI2Qwor54mtID4gc8OsOyAjNzI2RAor54muID4gamnDoG47ICM3MjZFCivnia8gPiBnxa07ICM3MjZGCivnibAgPiB5w7J1OyAjNzI3MAor54mxID4gZ8STOyAjNzI3MQor54myID4gc2jEk25nOyAjNzI3Mgor54mzID4gbcWtOyAjNzI3Mwor54m0ID4gZMStOyAjNzI3NAor54m1ID4gcWnEgW47ICM3Mjc1CivnibYgPiBxdcOgbjsgIzcyNzYKK+eJtyA+IHF1w6FuOyAjNzI3Nwor54m4ID4gesOsOyAjNzI3OAor54m5ID4gdMOoOyAjNzI3OQor54m6ID4geMSrOyAjNzI3QQor54m7ID4gbcOhbmc7ICM3MjdCCivnibwgPiBrxJNuZzsgIzcyN0MKK+eJvSA+IHFpxIFuOyAjNzI3RAor54m+ID4gd8O6OyAjNzI3RQor54m/ID4gZ8O5OyAjNzI3Rgor54qAID4geMSrOyAjNzI4MAor54qBID4gbMOtOyAjNzI4MQor54qCID4gbMOtOyAjNzI4Mgor54qDID4gcMWPdTsgIzcyODMKK+eKhCA+IGrEqzsgIzcyODQKK+eKhSA+IGfEgW5nOyAjNzI4NQor54qGID4gemjDrTsgIzcyODYKK+eKhyA+IGLEk247ICM3Mjg3CivnioggPiBxdcOhbjsgIzcyODgKK+eKiSA+IHLDum47ICM3Mjg5CivnioogPiBkw7o7ICM3MjhBCivniosgPiBqw7k7ICM3MjhCCivniowgPiBqacSBOyAjNzI4Qwor54qNID4gamnEgW47ICM3MjhECivnio4gPiBmxJNuZzsgIzcyOEUKK+eKjyA+IHBpxIFuOyAjNzI4Rgor54qQID4ga8STOyAjNzI5MAor54qRID4gasO6OyAjNzI5MQor54qSID4ga8OgbzsgIzcyOTIKK+eKkyA+IGNow7o7ICM3MjkzCivnipQgPiB4w6w7ICM3Mjk0CivnipUgPiBiw6hpOyAjNzI5NQor54qWID4gbMO5bzsgIzcyOTYKK+eKlyA+IGppw6g7ICM3Mjk3CivnipggPiBtw6E7ICM3Mjk4CivnipkgPiBzxIFuOyAjNzI5OQor54qaID4gd8OoaTsgIzcyOUEKK+eKmyA+IGzDrTsgIzcyOUIKK+eKnCA+IGTFq247ICM3MjlDCivnip0gPiB0w7NuZzsgIzcyOUQKK+eKnyA+IGppw6BuZzsgIzcyOUYKK+eKoSA+IGzDrDsgIzcyQTEKK+eKoiA+IGTDujsgIzcyQTIKK+eKoyA+IGxpw6g7ICM3MkEzCivniqQgPiBww607ICM3MkE0CivniqUgPiBwacSDbzsgIzcyQTUKK+eKpiA+IGLDoG87ICM3MkE2CivniqcgPiB4xKs7ICM3MkE3CivniqggPiBjaMWNdTsgIzcyQTgKK+eKqSA+IHfDqGk7ICM3MkE5CivniqogPiBrw7ppOyAjNzJBQQor54qrID4gY2jFjXU7ICM3MkFCCivniqwgPiBxdcSDbjsgIzcyQUMKK+eKrSA+IGbEg24nICdxdcSDbicgJ3DDoW5nOyAjNzJBRAor54quID4gYsOhOyAjNzJBRQor54qvID4gZsOgbjsgIzcyQUYKK+eKsCA+IHHDrXU7ICM3MkIwCivnirEgPiBqxK07ICM3MkIxCivnirIgPiBjw6FpOyAjNzJCMgor54qzID4gY2jDum87ICM3MkIzCivnirQgPiDDoG47ICM3MkI0CivnirUgPiBqacOpOyAjNzJCNQor54q2ID4gemh1w6BuZzsgIzcyQjYKK+eKtyA+IGd1xINuZzsgIzcyQjcKK+eKuCA+IG3DoDsgIzcyQjgKK+eKuSA+IHnDs3U7ICM3MkI5CivnirogPiBrw6BuZzsgIzcyQkEKK+eKuyA+IGLDszsgIzcyQkIKK+eKvCA+IGjFj3U7ICM3MkJDCivnir0gPiB5w6E7ICM3MkJECivnir4gPiB5w61uOyAjNzJCRQor54q/ID4gaHXEgW47ICM3MkJGCivni4AgPiB6aHXDoG5nOyAjNzJDMAor54uBID4gecWtbjsgIzcyQzEKK+eLgiA+IGt1w6FuZzsgIzcyQzIKK+eLgyA+IG7ErXU7ICM3MkMzCivni4QgPiBkw607ICM3MkM0Civni4UgPiBxxKtuZzsgIzcyQzUKK+eLhiA+IHpow7JuZzsgIzcyQzYKK+eLhyA+IG3DuTsgIzcyQzcKK+eLiCA+IGLDqGk7ICM3MkM4Civni4kgPiBwxKs7ICM3MkM5Civni4ogPiBqw7o7ICM3MkNBCivni4sgPiBuw607ICM3MkNCCivni4wgPiBzaMSTbmc7ICM3MkNDCivni40gPiBww6FvOyAjNzJDRAor54uOID4geGnDoTsgIzcyQ0UKK+eLjyA+IHTDum87ICM3MkNGCivni5AgPiBow7o7ICM3MkQwCivni5EgPiBsw61uZzsgIzcyRDEKK+eLkiA+IGbDqGk7ICM3MkQyCivni5MgPiBwxKs7ICM3MkQzCivni5QgPiBuxK07ICM3MkQ0Civni5UgPiDEg287ICM3MkQ1Civni5YgPiB5w7J1OyAjNzJENgor54uXID4gZ8WPdTsgIzcyRDcKK+eLmCA+IHl1w6g7ICM3MkQ4Civni5kgPiBqxas7ICM3MkQ5Civni5ogPiBkw6BuOyAjNzJEQQor54ubID4gcMOyOyAjNzJEQgor54ucID4gZ8WtOyAjNzJEQwor54udID4geGnEg247ICM3MkRECivni54gPiBuw61uZzsgIzcyREUKK+eLnyA+IGh1w6FuOyAjNzJERgor54ugID4gaMSVbjsgIzcyRTAKK+eLoSA+IGppxINvOyAjNzJFMQor54uiID4gaMOpOyAjNzJFMgor54ujID4gemjDoG87ICM3MkUzCivni6QgPiBqw607ICM3MkU0Civni6UgPiB4w7luOyAjNzJFNQor54umID4gc2jEgW47ICM3MkU2Civni6cgPiB0w6A7ICM3MkU3Civni6ggPiByw7NuZzsgIzcyRTgKK+eLqSA+IHNow7J1OyAjNzJFOQor54uqID4gdMWNbmc7ICM3MkVBCivni6sgPiBsxINvOyAjNzJFQgor54usID4gZMO6OyAjNzJFQwor54utID4geGnDoTsgIzcyRUQKK+eLriA+IHNoxKs7ICM3MkVFCivni68gPiBodcOhOyAjNzJFRgor54uwID4gemjEk25nOyAjNzJGMAor54uxID4gecO5OyAjNzJGMQor54uyID4gc8WrbjsgIzcyRjIKK+eLsyA+IHnDujsgIzcyRjMKK+eLtCA+IGLDrDsgIzcyRjQKK+eLtSA+IG3DoW5nOyAjNzJGNQor54u2ID4geMStOyAjNzJGNgor54u3ID4ganXDoG47ICM3MkY3Civni7ggPiBsw607ICM3MkY4Civni7kgPiB4acOhOyAjNzJGOQor54u6ID4gecOtbjsgIzcyRkEKK+eLuyA+IHN1xIFuOyAjNzJGQgor54u8ID4gbMOhbmc7ICM3MkZDCivni70gPiBiw6hpOyAjNzJGRAor54u+ID4gemjDrDsgIzcyRkUKK+eLvyA+IHnDoW47ICM3MkZGCivnjIAgPiBzaMSBOyAjNzMwMAor54yBID4gbMOsOyAjNzMwMQor54yCID4gaMOgbjsgIzczMDIKK+eMgyA+IHhpxINuOyAjNzMwMwor54yEID4gasSrbmc7ICM3MzA0CivnjIUgPiBww6FpOyAjNzMwNQor54yGID4gZsSTaTsgIzczMDYKK+eMhyA+IHnDoW87ICM3MzA3CivnjIggPiBiw6A7ICM3MzA4CivnjIkgPiBxw607ICM3MzA5CivnjIogPiBuw607ICM3MzBBCivnjIsgPiBiacSBbzsgIzczMEIKK+eMjCA+IHnDrG47ICM3MzBDCivnjI0gPiBsw6FpOyAjNzMwRAor54yOID4geMOtOyAjNzMwRQor54yPID4gamnEgW47ICM3MzBGCivnjJAgPiBxacSBbmc7ICM3MzEwCivnjJEgPiBrxatuOyAjNzMxMQor54ySID4gecSBbjsgIzczMTIKK+eMkyA+IGfFrW87ICM3MzEzCivnjJQgPiB6w7JuZzsgIzczMTQKK+eMlSA+IG3DrTsgIzczMTUKK+eMliA+IGNoxIFuZzsgIzczMTYKK+eMlyA+IHnEqzsgIzczMTcKK+eMmCA+IHpow6w7ICM3MzE4CivnjJkgPiB6aMSTbmc7ICM3MzE5CivnjJogPiB5w6E7ICM3MzFBCivnjJsgPiBtxJVuZzsgIzczMUIKK+eMnCA+IGPEgWk7ICM3MzFDCivnjJ0gPiBjw7k7ICM3MzFECivnjJ4gPiBzaMOoOyAjNzMxRQor54yhID4gbMO6bzsgIzczMjEKK+eMoiA+IGjDujsgIzczMjIKK+eMoyA+IHrFjW5nOyAjNzMyMwor54ykID4gasOsOyAjNzMyNAor54ylID4gd8SVaTsgIzczMjUKK+eMpiA+IGbEk25nOyAjNzMyNgor54ynID4gd8WNOyAjNzMyNwor54yoID4geXXDoW47ICM3MzI4CivnjKkgPiB4xKtuZzsgIzczMjkKK+eMqiA+IHpoxas7ICM3MzJBCivnjKsgPiBtxIFvOyAjNzMyQgor54ysID4gd8OoaTsgIzczMkMKK+eMrSA+IHl1w6FuOyAjNzMyRAor54yuID4geGnDoG47ICM3MzJFCivnjK8gPiB0dcSBbjsgIzczMkYKK+eMsCA+IHnDoDsgIzczMzAKK+eMsSA+IG7DoW87ICM3MzMxCivnjLIgPiB4acSTOyAjNzMzMgor54yzID4gamnEgTsgIzczMzMKK+eMtCA+IGjDs3U7ICM3MzM0CivnjLUgPiBiacSBbjsgIzczMzUKK+eMtiA+IHnDs3U7ICM3MzM2CivnjLcgPiB5w7N1OyAjNzMzNwor54y4ID4gbcOpaTsgIzczMzgKK+eMuSA+IHpoxIE7ICM3MzM5CivnjLogPiB5w6FvOyAjNzMzQQor54y7ID4gc8WrbjsgIzczM0IKK+eMvCA+IGLDszsgIzczM0MKK+eMvSA+IG3DrW5nOyAjNzMzRAor54y+ID4gaHXDoTsgIzczM0UKK+eMvyA+IHl1w6FuOyAjNzMzRgor542AID4gc8WNdTsgIzczNDAKK+eNgSA+IG3DoDsgIzczNDEKK+eNgiA+IHl1w6FuOyAjNzM0Mgor542DID4gZMSBaTsgIzczNDMKK+eNhCA+IHnDuTsgIzczNDQKK+eNhSA+IHNoxKs7ICM3MzQ1CivnjYYgPiBow6FvOyAjNzM0Ngor542IID4gecOsOyAjNzM0OAor542JID4gemjEk247ICM3MzQ5CivnjYogPiBjaHXDoG5nOyAjNzM0QQor542LID4gaMOhbzsgIzczNEIKK+eNjCA+IG3DoG47ICM3MzRDCivnjY0gPiBqw6xuZzsgIzczNEQKK+eNjiA+IGppxINuZzsgIzczNEUKK+eNjyA+IG3DujsgIzczNEYKK+eNkCA+IHpoxIFuZzsgIzczNTAKK+eNkSA+IGNow6FuOyAjNzM1MQor542SID4gw6FvOyAjNzM1Mgor542TID4gw6FvOyAjNzM1Mwor542UID4gaMOhbzsgIzczNTQKK+eNlSA+IGPFq2k7ICM3MzU1CivnjZYgPiBmw6luOyAjNzM1Ngor542XID4ganXDqTsgIzczNTcKK+eNmCA+IGLDrDsgIzczNTgKK+eNmSA+IGLDrDsgIzczNTkKK+eNmiA+IGh1w6FuZzsgIzczNUEKK+eNmyA+IHDDujsgIzczNUIKK+eNnCA+IGzDrW47ICM3MzVDCivnjZ0gPiB5w7k7ICM3MzVECivnjZ4gPiB0w7NuZzsgIzczNUUKK+eNnyA+IHnDoG87ICM3MzVGCivnjaAgPiBsacOhbzsgIzczNjAKK+eNoSA+IHNow7lvOyAjNzM2MQor542iID4geGnEgW87ICM3MzYyCivnjaUgPiB4w607ICM3MzY1CivnjaYgPiBnw6k7ICM3MzY2CivnjacgPiBqdcOgbjsgIzczNjcKK+eNqCA+IGTDujsgIzczNjgKK+eNqSA+IGjDuWk7ICM3MzY5CivnjaogPiBrdcOgaTsgIzczNkEKK+eNqyA+IHhpxINuOyAjNzM2Qgor542sID4geGnDqDsgIzczNkMKK+eNrSA+IHTDoDsgIzczNkQKK+eNriA+IHhpxINuOyAjNzM2RQor542vID4geMWrbjsgIzczNkYKK+eNsCA+IG7DrW5nOyAjNzM3MAor542xID4gcMOtbjsgIzczNzEKK+eNsiA+IGjDuW87ICM3MzcyCivnjbMgPiBuw7J1OyAjNzM3Mwor5420ID4gbcOpbmc7ICM3Mzc0CivnjbUgPiBsacOoOyAjNzM3NQor5422ID4gbsOhbzsgIzczNzYKK+eNtyA+IGd1xINuZzsgIzczNzcKK+eNuCA+IHNow7J1OyAjNzM3OAor5425ID4gbMO6OyAjNzM3OQor5426ID4gdMOgOyAjNzM3QQor5427ID4geGnDoG47ICM3MzdCCivnjbwgPiBtw607ICM3MzdDCivnjb0gPiByw6FuZzsgIzczN0QKK+eNviA+IGh1xIFuOyAjNzM3RQor542/ID4gbsOhbzsgIzczN0YKK+eOgCA+IGzDum87ICM3MzgwCivnjoEgPiB4acSDbjsgIzczODEKK+eOgiA+IHHDrTsgIzczODIKK+eOgyA+IGp1w6k7ICM3MzgzCivnjoQgPiB4dcOhbjsgIzczODQKK+eOhSA+IG1pw6BvOyAjNzM4NQor546GID4gesSrOyAjNzM4Ngor546HID4gbMecOyAjNzM4Nwor546IID4gbMO6OyAjNzM4OAor546JID4gecO5OyAjNzM4OQor546KID4gc8O5OyAjNzM4QQor546LID4gd8Ohbmc7ICM3MzhCCivnjowgPiBxw611OyAjNzM4Qwor546NID4gZ8SDOyAjNzM4RAor546OID4gZMSrbmc7ICM3MzhFCivnjo8gPiBsw6g7ICM3MzhGCivnjpAgPiBixIE7ICM3MzkwCivnjpEgPiBqxKs7ICM3MzkxCivnjpIgPiBow7NuZzsgIzczOTIKK+eOkyA+IGTDrDsgIzczOTMKK+eOlCA+IHF1w6BuOyAjNzM5NAor546VID4gZ8SBbjsgIzczOTUKK+eOliA+IGrErXU7ICM3Mzk2CivnjpcgPiB5w7o7ICM3Mzk3CivnjpggPiBqxK07ICM3Mzk4CivnjpkgPiB5w7o7ICM3Mzk5CivnjpogPiB5w6FuZzsgIzczOUEKK+eOmyA+IG3EgzsgIzczOUIKK+eOnCA+IGfFjW5nOyAjNzM5Qwor546dID4gd8WtOyAjNzM5RAor546eID4gZsWrOyAjNzM5RQor546fID4gd8OpbjsgIzczOUYKK+eOoCA+IGppw6g7ICM3M0EwCivnjqEgPiB5w6A7ICM3M0ExCivnjqIgPiBmw6luOyAjNzNBMgor546jID4gYmnDoG47ICM3M0EzCivnjqQgPiBixJVuZzsgIzczQTQKK+eOpSA+IHl1w6g7ICM3M0E1CivnjqYgPiBqdcOpOyAjNzNBNgor546nID4gecWtbjsgIzczQTcKK+eOqCA+IGp1w6k7ICM3M0E4CivnjqkgPiB3w6FuOyAjNzNBOQor546qID4gamnEgW47ICM3M0FBCivnjqsgPiBtw6lpOyAjNzNBQgor546sID4gZMSDbjsgIzczQUMKK+eOrSA+IHDDrTsgIzczQUQKK+eOriA+IHfElWk7ICM3M0FFCivnjq8gPiBodcOhbjsgIzczQUYKK+eOsCA+IHhpw6BuOyAjNzNCMAor546xID4gcWnEgW5nOyAjNzNCMQor546yID4gbMOtbmc7ICM3M0IyCivnjrMgPiBkw6BpOyAjNzNCMwor5460ID4gecOsOyAjNzNCNAor5461ID4gw6FuOyAjNzNCNQor5462ID4gcMOtbmc7ICM3M0I2CivnjrcgPiBkacOgbjsgIzczQjcKK+eOuCA+IGbDujsgIzczQjgKK+eOuSA+IHh1w6FuOyAjNzNCOQor5466ID4geMStOyAjNzNCQQor5467ID4gYsWNOyAjNzNCQgor5468ID4gY8StOyAjNzNCQwor5469ID4gZ8WPdTsgIzczQkQKK+eOviA+IGppxIM7ICM3M0JFCivnjr8gPiBzaMOhbzsgIzczQkYKK+ePgCA+IHDDsjsgIzczQzAKK+ePgSA+IGPDrTsgIzczQzEKK+ePgiA+IGvEkzsgIzczQzIKK+ePgyA+IHLEg247ICM3M0MzCivnj4QgPiBzaMSTbmc7ICM3M0M0Civnj4UgPiBzaMSTbjsgIzczQzUKK+ePhiA+IHnDrTsgIzczQzYKK+ePhyA+IHrFrTsgIzczQzcKK+ePiCA+IGppxIE7ICM3M0M4Civnj4kgPiBtw61uOyAjNzNDOQor54+KID4gc2jEgW47ICM3M0NBCivnj4sgPiBsxK11OyAjNzNDQgor54+MID4gYsOsOyAjNzNDQwor54+NID4gemjEk247ICM3M0NECivnj44gPiB6aMSTbjsgIzczQ0UKK+ePjyA+IGp1w6k7ICM3M0NGCivnj5AgPiBmw6A7ICM3M0QwCivnj5EgPiBsw7NuZzsgIzczRDEKK+ePkiA+IGrEq247ICM3M0QyCivnj5MgPiBqacOgbzsgIzczRDMKK+ePlCA+IGppw6BuOyAjNzNENAor54+VID4gbMOsOyAjNzNENQor54+WID4gZ3XEgW5nOyAjNzNENgor54+XID4geGnEgW47ICM3M0Q3Civnj5ggPiB6aMWNdTsgIzczRDgKK+ePmSA+IGfFj25nOyAjNzNEOQor54+aID4gecSBbjsgIzczREEKK+ePmyA+IHjDrHU7ICM3M0RCCivnj5wgPiB5w6FuZzsgIzczREMKK+ePnSA+IHjFrTsgIzczREQKK+ePniA+IGzDuW87ICM3M0RFCivnj58gPiBzw7k7ICM3M0RGCivnj6AgPiB6aMWrOyAjNzNFMAor54+hID4gccOtbjsgIzczRTEKK+ePoiA+IGvDqG47ICM3M0UyCivnj6MgPiB4w7puOyAjNzNFMwor54+kID4gYsSDbzsgIzczRTQKK+ePpSA+IMSVcjsgIzczRTUKK+ePpiA+IHhpw6BuZzsgIzczRTYKK+ePpyA+IHnDoW87ICM3M0U3Civnj6ggPiB4acOhOyAjNzNFOAor54+pID4gaMOpbmc7ICM3M0U5Civnj6ogPiBnxatpOyAjNzNFQQor54+rID4gY2jFjW5nOyAjNzNFQgor54+sID4geMO5OyAjNzNFQwor54+tID4gYsSBbjsgIzczRUQKK+ePriA+IHDDqGk7ICM3M0VFCivnj7AgPiBkxIFuZzsgIzczRjAKK+ePsiA+IGjDum47ICM3M0YyCivnj7MgPiB3w6luOyAjNzNGMwor54+0ID4gw6k7ICM3M0Y0Civnj7UgPiBjaMOpbmc7ICM3M0Y1Civnj7YgPiB0w607ICM3M0Y2Civnj7cgPiB3xa07ICM3M0Y3Civnj7ggPiB3w7o7ICM3M0Y4Civnj7kgPiBjaMOpbmc7ICM3M0Y5Civnj7ogPiBqw7luOyAjNzNGQQor54+7ID4gbcOpaTsgIzczRkIKK+ePvCA+IGLDqGk7ICM3M0ZDCivnj70gPiB0xK1uZzsgIzczRkQKK+ePviA+IHhpw6BuOyAjNzNGRQor54+/ID4gY2jDuW87ICM3M0ZGCivnkIAgPiBow6FuOyAjNzQwMAor55CBID4geHVhbjsgIzc0MDEKK+eQgiA+IHnDoW47ICM3NDAyCivnkIMgPiBxw611OyAjNzQwMwor55CEID4gcXXEg247ICM3NDA0CivnkIUgPiBsw6FuZzsgIzc0MDUKK+eQhiA+IGzErTsgIzc0MDYKK+eQhyA+IHjDrHU7ICM3NDA3CivnkIggPiBmw7o7ICM3NDA4CivnkIkgPiBsw611OyAjNzQwOQor55CKID4gecOpOyAjNzQwQQor55CLID4geMSrOyAjNzQwQgor55CMID4gbMOtbmc7ICM3NDBDCivnkI0gPiBsw6w7ICM3NDBECivnkI4gPiBqw6xuOyAjNzQwRQor55CPID4gbGnDoW47ICM3NDBGCivnkJAgPiBzxa1vOyAjNzQxMAor55CTID4gd8OhbjsgIzc0MTMKK+eQlCA+IGRpw6BuOyAjNzQxNAor55CVID4gcMOtbjsgIzc0MTUKK+eQliA+IHpoxINuOyAjNzQxNgor55CXID4gY8O5aTsgIzc0MTcKK+eQmCA+IG3DrW47ICM3NDE4CivnkJkgPiB5w7k7ICM3NDE5CivnkJogPiBqxas7ICM3NDFBCivnkJsgPiBjaMSTbjsgIzc0MUIKK+eQnCA+IGzDoWk7ICM3NDFDCivnkJ0gPiB3w6luOyAjNzQxRAor55CeID4gc2jDqG5nOyAjNzQxRQor55CfID4gd8OpaTsgIzc0MUYKK+eQoCA+IGRpxINuOyAjNzQyMAor55ChID4gY2jDuTsgIzc0MjEKK+eQoiA+IHpow7pvOyAjNzQyMgor55CjID4gcMSVaTsgIzc0MjMKK+eQpCA+IGNoxJNuZzsgIzc0MjQKK+eQpSA+IGjFrTsgIzc0MjUKK+eQpiA+IHHDrTsgIzc0MjYKK+eQpyA+IMOoOyAjNzQyNwor55CoID4ga8WrbjsgIzc0MjgKK+eQqSA+IGNoxIFuZzsgIzc0MjkKK+eQqiA+IHHDrTsgIzc0MkEKK+eQqyA+IGLElW5nOyAjNzQyQgor55CsID4gd8SDbjsgIzc0MkMKK+eQrSA+IGzDuTsgIzc0MkQKK+eQriA+IGPDs25nOyAjNzQyRQor55CvID4gZ3XEg247ICM3NDJGCivnkLAgPiB5xINuOyAjNzQzMAor55CxID4gZGnEgW87ICM3NDMxCivnkLIgPiBiw6hpOyAjNzQzMgor55CzID4gbMOtbjsgIzc0MzMKK+eQtCA+IHHDrW47ICM3NDM0CivnkLUgPiBww607ICM3NDM1CivnkLYgPiBww6E7ICM3NDM2CivnkLcgPiBxdcOoOyAjNzQzNwor55C4ID4gemjDum87ICM3NDM4CivnkLkgPiBxw61uOyAjNzQzOQor55C6ID4gZsOgOyAjNzQzQQor55C8ID4gccOtb25nOyAjNzQzQwor55C9ID4gZMWtOyAjNzQzRAor55C+ID4gamnDqDsgIzc0M0UKK+eQvyA+IGjDum47ICM3NDNGCivnkYAgPiB5xa07ICM3NDQwCivnkYEgPiBtw6BvOyAjNzQ0MQor55GCID4gbcOpaTsgIzc0NDIKK+eRgyA+IGNodW47ICM3NDQzCivnkYQgPiB4dcSBbjsgIzc0NDQKK+eRhSA+IHTDrTsgIzc0NDUKK+eRhiA+IHjEq25nOyAjNzQ0Ngor55GHID4gZMOgaTsgIzc0NDcKK+eRiCA+IHLDs3U7ICM3NDQ4CivnkYkgPiBtw61uOyAjNzQ0OQor55GKID4gemjEk247ICM3NDRBCivnkYsgPiB3xJVpOyAjNzQ0Qgor55GMID4gcnXEg247ICM3NDRDCivnkY0gPiBodcOgbjsgIzc0NEQKK+eRjiA+IGppxJM7ICM3NDRFCivnkY8gPiBjaHXEgW47ICM3NDRGCivnkZAgPiBqacSDbjsgIzc0NTAKK+eRkSA+IHpodcOgbjsgIzc0NTEKK+eRkiA+IHnDoW5nOyAjNzQ1Mgor55GTID4gbGnDoG47ICM3NDUzCivnkZQgPiBxdcOhbjsgIzc0NTQKK+eRlSA+IHhpw6E7ICM3NDU1CivnkZYgPiBkdcOgbjsgIzc0NTYKK+eRlyA+IHl1w6BuOyAjNzQ1Nwor55GYID4gecOpOyAjNzQ1OAor55GZID4gbsSDbzsgIzc0NTkKK+eRmiA+IGjDujsgIzc0NUEKK+eRmyA+IHnEq25nOyAjNzQ1Qgor55GcID4gecO6OyAjNzQ1Qwor55GdID4gaHXDoW5nOyAjNzQ1RAor55GeID4gcsO5aTsgIzc0NUUKK+eRnyA+IHPDqDsgIzc0NUYKK+eRoCA+IGzDrXU7ICM3NDYwCivnkaEgPiBzaGk7ICM3NDYxCivnkaIgPiByw7NuZzsgIzc0NjIKK+eRoyA+IHPFrW87ICM3NDYzCivnkaQgPiB5w6FvOyAjNzQ2NAor55GlID4gd8STbjsgIzc0NjUKK+eRpiA+IHfFqzsgIzc0NjYKK+eRpyA+IGrEq247ICM3NDY3CivnkaggPiBqw6xuOyAjNzQ2OAor55GpID4gecOtbmc7ICM3NDY5CivnkaogPiBtxIM7ICM3NDZBCivnkasgPiB0xIFvOyAjNzQ2Qgor55GsID4gbMOtdTsgIzc0NkMKK+eRrSA+IHTDoW5nOyAjNzQ2RAor55GuID4gbMOsOyAjNzQ2RQor55GvID4gbMOhbmc7ICM3NDZGCivnkbAgPiBnxatpOyAjNzQ3MAor55GxID4gemjDqG47ICM3NDcxCivnkbIgPiBxacSBbmc7ICM3NDcyCivnkbMgPiBjxa1vOyAjNzQ3Mwor55G0ID4ganXDqTsgIzc0NzQKK+eRtSA+IHpoxINvOyAjNzQ3NQor55G2ID4gecOhbzsgIzc0NzYKK+eRtyA+IMOgaTsgIzc0NzcKK+eRuCA+IGLEq247ICM3NDc4CivnkbkgPiB0w7o7ICM3NDc5CivnkbogPiBjaMOhbmc7ICM3NDdBCivnkbsgPiBrxatuOyAjNzQ3Qgor55G8ID4gemh1xIFuOyAjNzQ3Qwor55G9ID4gY8WNbmc7ICM3NDdECivnkb4gPiBqxK1uOyAjNzQ3RQor55G/ID4gecSrOyAjNzQ3Rgor55KAID4gY8WtaTsgIzc0ODAKK+eSgSA+IGPFjW5nOyAjNzQ4MQor55KCID4gccOtOyAjNzQ4Mgor55KDID4gbMOtOyAjNzQ4Mwor55KEID4gecStbmc7ICM3NDg0CivnkoUgPiBzxa1vOyAjNzQ4NQor55KGID4gccOtdTsgIzc0ODYKK+eShyA+IHh1w6FuOyAjNzQ4Nwor55KIID4gw6FvOyAjNzQ4OAor55KJID4gbGnDoW47ICM3NDg5CivnkoogPiBtw6FuOyAjNzQ4QQor55KLID4gemjEgW5nOyAjNzQ4Qgor55KMID4gecOtbjsgIzc0OEMKK+eSjiA+IHnEq25nOyAjNzQ4RQor55KPID4gemjDrDsgIzc0OEYKK+eSkCA+IGzDuTsgIzc0OTAKK+eSkSA+IHfDujsgIzc0OTEKK+eSkiA+IGTEk25nOyAjNzQ5Mgor55KTID4geGnDsnU7ICM3NDkzCivnkpQgPiB6xJNuZzsgIzc0OTQKK+eSlSA+IHjDum47ICM3NDk1CivnkpYgPiBxw7o7ICM3NDk2CivnkpcgPiBkw6BuZzsgIzc0OTcKK+eSmCA+IGzDrW47ICM3NDk4CivnkpkgPiBsacOhbzsgIzc0OTkKK+eSmiA+IHHDrW9uZzsgIzc0OUEKK+eSmyA+IHPDuTsgIzc0OUIKK+eSnCA+IGh1w6FuZzsgIzc0OUMKK+eSnSA+IGfFq2k7ICM3NDlECivnkp4gPiBww7o7ICM3NDlFCivnkp8gPiBqxK1uZzsgIzc0OUYKK+eSoCA+IGbDoW47ICM3NEEwCivnkqEgPiBqw6xuOyAjNzRBMQor55KiID4gbMOtdTsgIzc0QTIKK+eSoyA+IGrEqzsgIzc0QTMKK+eSpSA+IGrErW5nOyAjNzRBNQor55KmID4gw6BpOyAjNzRBNgor55KnID4gYsOsOyAjNzRBNwor55KoID4gY8OgbjsgIzc0QTgKK+eSqSA+IHHDujsgIzc0QTkKK+eSqiA+IHrEg287ICM3NEFBCivnkqsgPiBkxIFuZzsgIzc0QUIKK+eSrCA+IGppxINvOyAjNzRBQwor55KtID4gZ8O5bjsgIzc0QUQKK+eSriA+IHTEg247ICM3NEFFCivnkq8gPiBow7lpOyAjNzRBRgor55KwID4gaHXDoW47ICM3NEIwCivnkrEgPiBzw6g7ICM3NEIxCivnkrIgPiBzw7lpOyAjNzRCMgor55KzID4gdGnDoW47ICM3NEIzCivnkrUgPiB5w7o7ICM3NEI1CivnkrYgPiBqw6xuOyAjNzRCNgor55K3ID4gbMO6OyAjNzRCNwor55K4ID4gYsSrbjsgIzc0QjgKK+eSuSA+IHNow7J1OyAjNzRCOQor55K6ID4gd8OobjsgIzc0QkEKK+eSuyA+IHrFrWk7ICM3NEJCCivnkrwgPiBsw6FuOyAjNzRCQwor55K9ID4geMStOyAjNzRCRAor55K+ID4gasOsOyAjNzRCRQor55K/ID4geHXDoW47ICM3NEJGCivnk4AgPiBydcSDbjsgIzc0QzAKK+eTgSA+IGjDuW87ICM3NEMxCivnk4IgPiBnw6BpOyAjNzRDMgor55ODID4gbMOpaTsgIzc0QzMKK+eThCA+IGTDujsgIzc0QzQKK+eThSA+IGzDrDsgIzc0QzUKK+eThiA+IHpow607ICM3NEM2Civnk4cgPiByw7N1OyAjNzRDNwor55OIID4gbMOtOyAjNzRDOAor55OJID4gesOgbjsgIzc0QzkKK+eTiiA+IHHDrW9uZzsgIzc0Q0EKK+eTiyA+IHpow6k7ICM3NENCCivnk4wgPiBnxatpOyAjNzRDQwor55ONID4gc8O5aTsgIzc0Q0QKK+eTjiA+IGzDoDsgIzc0Q0UKK+eTjyA+IGzDs25nOyAjNzRDRgor55OQID4gbMO6OyAjNzREMAor55ORID4gbMOsOyAjNzREMQor55OSID4gesOgbjsgIzc0RDIKK+eTkyA+IGzDoG47ICM3NEQzCivnk5QgPiB5xKtuZzsgIzc0RDQKK+eTlSA+IG3DrTsgIzc0RDUKK+eTliA+IHhpxIFuZzsgIzc0RDYKK+eTlyA+IHjEqzsgIzc0RDcKK+eTmCA+IGd1w6BuOyAjNzREOAor55OZID4gZMOgbzsgIzc0RDkKK+eTmiA+IHrDoG47ICM3NERBCivnk5sgPiBodcOhbjsgIzc0REIKK+eTnCA+IGd1xIE7ICM3NERDCivnk50gPiBiw7M7ICM3NERECivnk54gPiBkacOpOyAjNzRERQor55OfID4gYsOhbzsgIzc0REYKK+eToCA+IGjDuTsgIzc0RTAKK+eToSA+IHpow607ICM3NEUxCivnk6IgPiBwacOhbzsgIzc0RTIKK+eToyA+IGLDoG47ICM3NEUzCivnk6QgPiByw6FuZzsgIzc0RTQKK+eTpSA+IGzDrDsgIzc0RTUKK+eTpiA+IHfEgzsgIzc0RTYKK+eTqCA+IGppxIFuZzsgIzc0RTgKK+eTqSA+IHFpw6FuJyAnd8SDOyAjNzRFOQor55OqID4gZsSDbjsgIzc0RUEKK+eTqyA+IHDDqW47ICM3NEVCCivnk6wgPiBmxINuZzsgIzc0RUMKK+eTrSA+IGTEg247ICM3NEVECivnk64gPiB3w6huZzsgIzc0RUUKK+eTryA+IMWNdTsgIzc0RUYKK+eTsyA+IGjDujsgIzc0RjMKK+eTtCA+IGzDrW5nOyAjNzRGNAor55O1ID4gecOtOyAjNzRGNQor55O2ID4gcMOtbmc7ICM3NEY2Civnk7cgPiBjw607ICM3NEY3Civnk7kgPiBqdcOgbjsgIzc0RjkKK+eTuiA+IGNow6FuZzsgIzc0RkEKK+eTuyA+IGNoxKs7ICM3NEZCCivnk70gPiBkw6BuZzsgIzc0RkQKK+eTviA+IG3ElW5nOyAjNzRGRQor55O/ID4gcMWPdTsgIzc0RkYKK+eUgCA+IHpow7lpOyAjNzUwMAor55SBID4gcMOtbmc7ICM3NTAxCivnlIIgPiBiacSBbjsgIzc1MDIKK+eUgyA+IHpow7J1OyAjNzUwMwor55SEID4gemjEk247ICM3NTA0CivnlIYgPiBjw607ICM3NTA2CivnlIcgPiB5xKtuZzsgIzc1MDcKK+eUiCA+IHHDrDsgIzc1MDgKK+eUiSA+IHhpw6FuOyAjNzUwOQor55SKID4gbMWPdTsgIzc1MEEKK+eUiyA+IGTDrDsgIzc1MEIKK+eUjCA+IMWNdTsgIzc1MEMKK+eUjSA+IG3DqW5nOyAjNzUwRAor55SOID4gemh1xIFuOyAjNzUwRQor55SPID4gcMOobmc7ICM3NTBGCivnlJAgPiBsw61uOyAjNzUxMAor55SRID4gesOobmc7ICM3NTExCivnlJIgPiB3xa07ICM3NTEyCivnlJMgPiBww6w7ICM3NTEzCivnlJQgPiBkxIFuOyAjNzUxNAor55SVID4gd8Oobmc7ICM3NTE1CivnlJYgPiB5xKtuZzsgIzc1MTYKK+eUlyA+IHnEg247ICM3NTE3CivnlJggPiBnxIFuOyAjNzUxOAor55SZID4gZMOgaTsgIzc1MTkKK+eUmiA+IHNow6luOyAjNzUxQQor55SbID4gdGnDoW47ICM3NTFCCivnlJwgPiB0acOhbjsgIzc1MUMKK+eUnSA+IGjEgW47ICM3NTFECivnlJ4gPiBjaMOhbmc7ICM3NTFFCivnlJ8gPiBzaMSTbmc7ICM3NTFGCivnlKAgPiBxw61uZzsgIzc1MjAKK+eUoSA+IHNoxJNuZzsgIzc1MjEKK+eUoiA+IGNoxINuOyAjNzUyMgor55SjID4gY2jEg247ICM3NTIzCivnlKQgPiByw7ppOyAjNzUyNAor55SlID4gc2jEk25nOyAjNzUyNQor55SmID4gc8WrOyAjNzUyNgor55SnID4gc8STbjsgIzc1MjcKK+eUqCA+IHnDsm5nOyAjNzUyOAor55SpID4gc2h1xINpOyAjNzUyOQor55SqID4gbMO5OyAjNzUyQQor55SrID4gZsWtOyAjNzUyQgor55SsID4gecWPbmc7ICM3NTJDCivnlK0gPiBiw6luZzsgIzc1MkQKK+eUriA+IGbDqG5nOyAjNzUyRQor55SvID4gbsOtbmc7ICM3NTJGCivnlLAgPiB0acOhbjsgIzc1MzAKK+eUsSA+IHnDs3U7ICM3NTMxCivnlLIgPiBqacSDOyAjNzUzMgor55SzID4gc2jEk247ICM3NTMzCivnlLQgPiB6aMOhOyAjNzUzNAor55S1ID4gZGnDoG47ICM3NTM1CivnlLYgPiBmw7o7ICM3NTM2CivnlLcgPiBuw6FuOyAjNzUzNwor55S4ID4gZGnDoG47ICM3NTM4CivnlLkgPiBww61uZzsgIzc1MzkKK+eUuiA+IHTErW5nOyAjNzUzQQor55S7ID4gaHXDoDsgIzc1M0IKK+eUvCA+IHTErW5nOyAjNzUzQwor55S9ID4gcXXEg247ICM3NTNECivnlL4gPiB6xKs7ICM3NTNFCivnlL8gPiBtw6luZzsgIzc1M0YKK+eVgCA+IGLDrDsgIzc1NDAKK+eVgSA+IHHDrTsgIzc1NDEKK+eVgiA+IGzDrHU7ICM3NTQyCivnlYMgPiB4w7puOyAjNzU0Mwor55WEID4gbMOtdTsgIzc1NDQKK+eVhSA+IGNow6BuZzsgIzc1NDUKK+eVhiA+IG3FrTsgIzc1NDYKK+eVhyA+IHnDum47ICM3NTQ3CivnlYggPiBmw6BuOyAjNzU0OAor55WJID4gZsO6OyAjNzU0OQor55WKID4gZ8STbmc7ICM3NTRBCivnlYsgPiB0acOhbjsgIzc1NEIKK+eVjCA+IGppw6g7ICM3NTRDCivnlY0gPiBqacOoOyAjNzU0RAor55WOID4gcXXEg247ICM3NTRFCivnlY8gPiB3w6hpOyAjNzU0Rgor55WQID4gZsO6OyAjNzU1MAor55WRID4gdGnDoW47ICM3NTUxCivnlZIgPiBtxa07ICM3NTUyCivnlZQgPiBww6BuOyAjNzU1NAor55WVID4gamnEgW5nOyAjNzU1NQor55WWID4gd8SBOyAjNzU1Ngor55WXID4gZMOhOyAjNzU1Nwor55WYID4gbsOhbjsgIzc1NTgKK+eVmSA+IGzDrXU7ICM3NTU5CivnlZogPiBixJVuOyAjNzU1QQor55WbID4gemjElW47ICM3NTVCCivnlZwgPiBjaMO5OyAjNzU1Qwor55WdID4gbcWtOyAjNzU1RAor55WeID4gbcWtOyAjNzU1RQor55WfID4gY8OoOyAjNzU1Rgor55WhID4gZ8SBaTsgIzc1NjEKK+eVoiA+IGLDrDsgIzc1NjIKK+eVoyA+IGTDoTsgIzc1NjMKK+eVpCA+IHpow6w7ICM3NTY0CivnlaUgPiBsx5xlOyAjNzU2NQor55WmID4gccOtOyAjNzU2Ngor55WnID4gbMecZTsgIzc1NjcKK+eVqCA+IHDEgW47ICM3NTY4CivnlaogPiBmxIFuOyAjNzU2QQor55WrID4gaHXDoDsgIzc1NkIKK+eVrCA+IHnDujsgIzc1NkMKK+eVrSA+IHnDujsgIzc1NkQKK+eVriA+IG3FrTsgIzc1NkUKK+eVryA+IGrDuW47ICM3NTZGCivnlbAgPiB5w6w7ICM3NTcwCivnlbEgPiBsw611OyAjNzU3MQor55WyID4gecO6OyAjNzU3Mgor55WzID4gZGnDqTsgIzc1NzMKK+eVtCA+IGNow7N1OyAjNzU3NAor55W1ID4gaHXDoDsgIzc1NzUKK+eVtiA+IGTEgW5nOyAjNzU3Ngor55W3ID4gY2jDuW87ICM3NTc3CivnlbggPiBqxKs7ICM3NTc4CivnlbkgPiB3xINuOyAjNzU3OQor55W6ID4gamnEgW5nOyAjNzU3QQor55W7ID4gc2jDqW5nOyAjNzU3Qgor55W8ID4gY2jDoG5nOyAjNzU3Qwor55W9ID4gdHXEg247ICM3NTdECivnlb4gPiBsw6lpOyAjNzU3RQor55W/ID4gasSrOyAjNzU3Rgor55aAID4gY2jEgTsgIzc1ODAKK+eWgSA+IGzDrXU7ICM3NTgxCivnloMgPiB0dcSDbjsgIzc1ODMKK+eWhCA+IGzDrW47ICM3NTg0CivnloUgPiBqacSBbmc7ICM3NTg1CivnloYgPiBqacSBbmc7ICM3NTg2CivnlocgPiBjaMOzdTsgIzc1ODcKK+eWiCA+IGLDsjsgIzc1ODgKK+eWiSA+IGRpw6k7ICM3NTg5CivnloogPiBkacOpOyAjNzU4QQor55aLID4gcMStOyAjNzU4Qgor55aMID4gbmnDqDsgIzc1OEMKK+eWjSA+IGTDoG47ICM3NThECivnlo4gPiBzaMWrOyAjNzU4RQor55aPID4gc2jFqzsgIzc1OEYKK+eWkCA+IHpow6w7ICM3NTkwCivnlpEgPiB5w607ICM3NTkxCivnlpIgPiBjaHXDoW5nOyAjNzU5Mgor55aTID4gbsSDaTsgIzc1OTMKK+eWlCA+IGTEq25nOyAjNzU5NAor55aVID4gYsStOyAjNzU5NQor55aWID4gamnDqTsgIzc1OTYKK+eWlyA+IGxpw6FvOyAjNzU5Nwor55aYID4gZ8WNbmc7ICM3NTk4CivnlpkgPiBnxJM7ICM3NTk5CivnlpogPiBqw6x1OyAjNzU5QQor55abID4gemjFj3U7ICM3NTlCCivnlpwgPiB4acOgOyAjNzU5Qwor55adID4gc2jDoG47ICM3NTlECivnlp4gPiB4xas7ICM3NTlFCivnlp8gPiBux5xlOyAjNzU5Rgor55agID4gbMOsOyAjNzVBMAor55ahID4gecOhbmc7ICM3NUExCivnlqIgPiBjaMOobjsgIzc1QTIKK+eWoyA+IHnDs3U7ICM3NUEzCivnlqQgPiBixIE7ICM3NUE0CivnlqUgPiBqacOoOyAjNzVBNQor55amID4ganXDqTsgIzc1QTYKK+eWpyA+IHpoxKs7ICM3NUE3CivnlqggPiB4acSBOyAjNzVBOAor55apID4gY8O5aTsgIzc1QTkKK+eWqiA+IGLDrDsgIzc1QUEKK+eWqyA+IHnDrDsgIzc1QUIKK+eWrCA+IGzDrDsgIzc1QUMKK+eWrSA+IHrDsm5nOyAjNzVBRAor55auID4gY2h1xIFuZzsgIzc1QUUKK+eWryA+IGbEk25nOyAjNzVBRgor55awID4gemjDuTsgIzc1QjAKK+eWsSA+IHDDoG87ICM3NUIxCivnlrIgPiBww607ICM3NUIyCivnlrMgPiBnxIFuOyAjNzVCMwor55a0ID4ga8STOyAjNzVCNAor55a1ID4gY8SrOyAjNzVCNQor55a2ID4geGnDqDsgIzc1QjYKK+eWtyA+IHHDrTsgIzc1QjcKK+eWuCA+IGTEg247ICM3NUI4CivnlrkgPiB6aMSVbjsgIzc1QjkKK+eWuiA+IGbDoTsgIzc1QkEKK+eWuyA+IHpoxK07ICM3NUJCCivnlrwgPiB0w6luZzsgIzc1QkMKK+eWvSA+IGrFqzsgIzc1QkQKK+eWviA+IGrDrTsgIzc1QkUKK+eWvyA+IGbDqGk7ICM3NUJGCivnl4AgPiBxw7o7ICM3NUMwCivnl4EgPiBkacOgbjsgIzc1QzEKK+eXgiA+IGppxIE7ICM3NUMyCivnl4MgPiB4acOhbjsgIzc1QzMKK+eXhCA+IGNow6E7ICM3NUM0Civnl4UgPiBiw6xuZzsgIzc1QzUKK+eXhiA+IG7DrDsgIzc1QzYKK+eXhyA+IHpow6huZzsgIzc1QzcKK+eXiCA+IHnFjW5nOyAjNzVDOAor55eJID4gasOsbmc7ICM3NUM5Civnl4ogPiBxdcOhbjsgIzc1Q0EKK+eXiyA+IGNow7NuZzsgIzc1Q0IKK+eXjCA+IHTFjW5nOyAjNzVDQwor55eNID4gecOtOyAjNzVDRAor55eOID4ga8SBaTsgIzc1Q0UKK+eXjyA+IHfElWk7ICM3NUNGCivnl5AgPiBow7ppOyAjNzVEMAor55eRID4gZMWtbzsgIzc1RDEKK+eXkiA+IHnEg25nOyAjNzVEMgor55eTID4gY2jDrDsgIzc1RDMKK+eXlCA+IHpow6w7ICM3NUQ0Civnl5UgPiBow6luOyAjNzVENQor55eWID4gecSDOyAjNzVENgor55eXID4gbcOoaTsgIzc1RDcKK+eXmCA+IGTDsnU7ICM3NUQ4Civnl5kgPiBqw6xuZzsgIzc1RDkKK+eXmiA+IHhpxIFvOyAjNzVEQQor55ebID4gdMOybmc7ICM3NURCCivnl5wgPiB0xas7ICM3NURDCivnl50gPiBtw6FuZzsgIzc1REQKK+eXniA+IHDErTsgIzc1REUKK+eXnyA+IHhpxIFvOyAjNzVERgor55egID4gc3XEgW47ICM3NUUwCivnl6EgPiBwxas7ICM3NUUxCivnl6IgPiBsw6w7ICM3NUUyCivnl6MgPiB6aMOsOyAjNzVFMwor55ekID4gY8O6bzsgIzc1RTQKK+eXpSA+IGTDum87ICM3NUU1Civnl6YgPiB3w7k7ICM3NUU2Civnl6cgPiBzaMSBOyAjNzVFNwor55eoID4gbMOhbzsgIzc1RTgKK+eXqSA+IHNow7J1OyAjNzVFOQor55eqID4gaHXDoG47ICM3NUVBCivnl6sgPiB4acOhbjsgIzc1RUIKK+eXrCA+IHnDrDsgIzc1RUMKK+eXrSA+IHDDqW5nOyAjNzVFRAor55euID4gemjDoG5nOyAjNzVFRQor55evID4gZ3XEg247ICM3NUVGCivnl7AgPiB0w6FuOyAjNzVGMAor55exID4gZsOoaTsgIzc1RjEKK+eXsiA+IG3DoTsgIzc1RjIKK+eXsyA+IGzDrW47ICM3NUYzCivnl7QgPiBjaMSrOyAjNzVGNAor55e1ID4gasOsOyAjNzVGNQor55e2ID4gZGnEg247ICM3NUY2Civnl7cgPiDEgW47ICM3NUY3Civnl7ggPiBjaMOsOyAjNzVGOAor55e5ID4gYsOsOyAjNzVGOQor55e6ID4gYsSTaTsgIzc1RkEKK+eXuyA+IG3DrW47ICM3NUZCCivnl7wgPiBnxas7ICM3NUZDCivnl70gPiBkxatpOyAjNzVGRAor55e+ID4gxJM7ICM3NUZFCivnl78gPiB3xJVpOyAjNzVGRgor55iAID4gecWrOyAjNzYwMAor55iBID4gY8O5aTsgIzc2MDEKK+eYgiA+IHnEgzsgIzc2MDIKK+eYgyA+IHpoxa07ICM3NjAzCivnmIQgPiBjw7k7ICM3NjA0CivnmIUgPiBkw6BuOyAjNzYwNQor55iGID4gc2jDqG47ICM3NjA2CivnmIcgPiB6aMWtbmc7ICM3NjA3CivnmIggPiBqw6w7ICM3NjA4CivnmIkgPiB5w7k7ICM3NjA5CivnmIogPiBow7N1OyAjNzYwQQor55iLID4gZsSTbmc7ICM3NjBCCivnmIwgPiBsw6A7ICM3NjBDCivnmI0gPiB5w6FuZzsgIzc2MEQKK+eYjiA+IHNow6huOyAjNzYwRQor55iPID4gdMO6OyAjNzYwRgor55iQID4gecWtOyAjNzYxMAor55iRID4gZ3XEgTsgIzc2MTEKK+eYkiA+IHfDqW47ICM3NjEyCivnmJMgPiBodcOgbjsgIzc2MTMKK+eYlCA+IGvDuTsgIzc2MTQKK+eYlSA+IGppxIM7ICM3NjE1CivnmJYgPiB5xKtuOyAjNzYxNgor55iXID4gecOsOyAjNzYxNwor55iYID4gbMeYOyAjNzYxOAor55iZID4gc8SBbzsgIzc2MTkKK+eYmiA+IGp1w6k7ICM3NjFBCivnmJsgPiBjaMOsOyAjNzYxQgor55icID4geMOtOyAjNzYxQwor55idID4gZ3XEgW47ICM3NjFECivnmJ4gPiB5w6w7ICM3NjFFCivnmJ8gPiB3xJNuOyAjNzYxRgor55igID4gasOtOyAjNzYyMAor55ihID4gY2h1xIFuZzsgIzc2MjEKK+eYoiA+IGLEgW47ICM3NjIyCivnmKMgPiBsxJVpOyAjNzYyMwor55ikID4gbMOtdTsgIzc2MjQKK+eYpSA+IGNow6BpOyAjNzYyNQor55imID4gc2jDsnU7ICM3NjI2CivnmKcgPiBux5xlOyAjNzYyNwor55ioID4gZGnEgW47ICM3NjI4CivnmKkgPiBkxIE7ICM3NjI5CivnmKogPiBwacSTOyAjNzYyQQor55irID4gdMSBbjsgIzc2MkIKK+eYrCA+IHpow6BuZzsgIzc2MkMKK+eYrSA+IGJpxIFvOyAjNzYyRAor55iuID4gc2hlbjsgIzc2MkUKK+eYryA+IGPDuTsgIzc2MkYKK+eYsCA+IGzFrW87ICM3NjMwCivnmLEgPiB5w6w7ICM3NjMxCivnmLIgPiB6w7JuZzsgIzc2MzIKK+eYsyA+IGNoxY11OyAjNzYzMwor55i0ID4gemjDoG5nOyAjNzYzNAor55i1ID4gemjDoGk7ICM3NjM1CivnmLYgPiBzw7J1OyAjNzYzNgor55i3ID4gc8WtbzsgIzc2MzcKK+eYuCA+IHF1w6k7ICM3NjM4CivnmLkgPiBkacOgbzsgIzc2MzkKK+eYuiA+IGzDsnU7ICM3NjNBCivnmLsgPiBsx5g7ICM3NjNCCivnmLwgPiBtw7I7ICM3NjNDCivnmL0gPiBqw6xuOyAjNzYzRAor55i+ID4gecStbjsgIzc2M0UKK+eYvyA+IHnErW5nOyAjNzYzRgor55mAID4gaHXDoW5nOyAjNzY0MAor55mBID4gZsO6OyAjNzY0MQor55mCID4gbGnDoW87ICM3NjQyCivnmYMgPiBsw7NuZzsgIzc2NDMKK+eZhCA+IHFpw6FvOyAjNzY0NAor55mFID4gbMOtdTsgIzc2NDUKK+eZhiA+IGzDoW87ICM3NjQ2CivnmYcgPiB4acOhbjsgIzc2NDcKK+eZiCA+IGbDqGk7ICM3NjQ4CivnmYkgPiBkw6BuOyAjNzY0OQor55mKID4gecOsbjsgIzc2NEEKK+eZiyA+IGjDqDsgIzc2NEIKK+eZjCA+IHnDoW47ICM3NjRDCivnmY0gPiBixIFuOyAjNzY0RAor55mOID4geGnDoW47ICM3NjRFCivnmY8gPiBndcSBbjsgIzc2NEYKK+eZkCA+IGd1w6BpOyAjNzY1MAor55mRID4gbsOzbmc7ICM3NjUxCivnmZIgPiB5w7k7ICM3NjUyCivnmZMgPiB3w6lpOyAjNzY1Mwor55mUID4gecOsOyAjNzY1NAor55mVID4gecWNbmc7ICM3NjU1CivnmZYgPiBwxK07ICM3NjU2CivnmZcgPiBsxJVpOyAjNzY1Nwor55mYID4gbMOsOyAjNzY1OAor55mZID4gc2jFrTsgIzc2NTkKK+eZmiA+IGTDoG47ICM3NjVBCivnmZsgPiBsxK1uOyAjNzY1Qgor55mcID4gZGnDoG47ICM3NjVDCivnmZ0gPiBsxK1uOyAjNzY1RAor55meID4gbMOgaTsgIzc2NUUKK+eZnyA+IHBpxJM7ICM3NjVGCivnmaAgPiBqw6w7ICM3NjYwCivnmaEgPiBjaMSrOyAjNzY2MQor55miID4gecSDbmc7ICM3NjYyCivnmaMgPiB4acSDbjsgIzc2NjMKK+eZpCA+IGppw6k7ICM3NjY0CivnmaUgPiB6aMSTbmc7ICM3NjY1CivnmacgPiBsw6w7ICM3NjY3CivnmaggPiBow7lvOyAjNzY2OAor55mpID4gbMOgaTsgIzc2NjkKK+eZqyA+IGRpxIFuOyAjNzY2Qgor55msID4geGnEg247ICM3NjZDCivnma0gPiB5xK1uZzsgIzc2NkQKK+eZriA+IHnErW47ICM3NjZFCivnma8gPiBxw7o7ICM3NjZGCivnmbAgPiB5xY1uZzsgIzc2NzAKK+eZsSA+IHTEgW47ICM3NjcxCivnmbIgPiBkacSBbjsgIzc2NzIKK+eZsyA+IGzFrW87ICM3NjczCivnmbQgPiBsx5hhbjsgIzc2NzQKK+eZtSA+IGx1w6FuOyAjNzY3NQor55m2ID4gYsWNOyAjNzY3Ngor55m4ID4gZ8WtaTsgIzc2NzgKK+eZuSA+IHDFjTsgIzc2NzkKK+eZuiA+IGbEgTsgIzc2N0EKK+eZuyA+IGTEk25nOyAjNzY3Qgor55m8ID4gZsSBOyAjNzY3Qwor55m9ID4gYsOhaTsgIzc2N0QKK+eZviA+IGLEg2k7ICM3NjdFCivnmb8gPiBxacOpOyAjNzY3Rgor55qAID4gYsSrOyAjNzY4MAor55qBID4gesOgbzsgIzc2ODEKK+eagiA+IHrDoG87ICM3NjgyCivnmoMgPiBtw6BvOyAjNzY4Mwor55qEID4gZGU7ICM3Njg0CivnmoUgPiBwxIE7ICM3Njg1CivnmoYgPiBqacSTOyAjNzY4Ngor55qHID4gaHXDoW5nOyAjNzY4Nwor55qIID4gZ8WraTsgIzc2ODgKK+eaiSA+IGPErTsgIzc2ODkKK+eaiiA+IGzDrW5nOyAjNzY4QQor55qLID4gZ8SBbzsgIzc2OEIKK+eajCA+IG3DsjsgIzc2OEMKK+eajSA+IGrDrTsgIzc2OEQKK+eajiA+IGppxINvOyAjNzY4RQor55qPID4gcMSVbmc7ICM3NjhGCivnmpAgPiBnxIFvOyAjNzY5MAor55qRID4gw6FpOyAjNzY5MQor55qSID4gw6k7ICM3NjkyCivnmpMgPiBow6BvOyAjNzY5Mwor55qUID4gaMOgbjsgIzc2OTQKK+ealSA+IGLEqzsgIzc2OTUKK+ealiA+IHfEg247ICM3Njk2CivnmpcgPiBjaMOzdTsgIzc2OTcKK+eamCA+IHFpw6BuOyAjNzY5OAor55qZID4geMSrOyAjNzY5OQor55qaID4gw6FpOyAjNzY5QQor55qbID4gasStb25nOyAjNzY5Qgor55qcID4gaMOgbzsgIzc2OUMKK+eanSA+IGh1xINuZzsgIzc2OUQKK+eaniA+IGjDoG87ICM3NjlFCivnmp8gPiB6w6k7ICM3NjlGCivnmqAgPiBjxa1pOyAjNzZBMAor55qhID4gaMOgbzsgIzc2QTEKK+eaoiA+IHhpxINvOyAjNzZBMgor55qjID4gecOoOyAjNzZBMwor55qkID4gcMOzOyAjNzZBNAor55qlID4gaMOgbzsgIzc2QTUKK+eapiA+IGppxINvOyAjNzZBNgor55qnID4gw6BpOyAjNzZBNwor55qoID4geMSrbmc7ICM3NkE4CivnmqkgPiBodcOgbmc7ICM3NkE5CivnmqogPiBsw6w7ICM3NkFBCivnmqsgPiBwacSDbzsgIzc2QUIKK+earCA+IGjDqDsgIzc2QUMKK+earSA+IGppw6BvOyAjNzZBRAor55quID4gcMOtOyAjNzZBRQor55qvID4gZ8SDbjsgIzc2QUYKK+easCA+IHDDoG87ICM3NkIwCivnmrEgPiB6aMOydTsgIzc2QjEKK+easiA+IGrFq247ICM3NkIyCivnmrMgPiBxw611OyAjNzZCMwor55q0ID4gY8WrbjsgIzc2QjQKK+eatSA+IHF1w6g7ICM3NkI1CivnmrYgPiB6aMSBOyAjNzZCNgor55q3ID4gZ8WtOyAjNzZCNwor55q4ID4gasWrbjsgIzc2QjgKK+eauSA+IGrFq247ICM3NkI5CivnmrogPiB6aMOydTsgIzc2QkEKK+eauyA+IHpoxIE7ICM3NkJCCivnmrwgPiBnxa07ICM3NkJDCivnmr0gPiB6aMSDbjsgIzc2QkQKK+eaviA+IGTDujsgIzc2QkUKK+eavyA+IG3ErW47ICM3NkJGCivnm4AgPiBxxK07ICM3NkMwCivnm4EgPiB5w61uZzsgIzc2QzEKK+ebgiA+IHnDujsgIzc2QzIKK+ebgyA+IGLEk2k7ICM3NkMzCivnm4QgPiB6aMSBbzsgIzc2QzQKK+ebhSA+IHpoxY1uZzsgIzc2QzUKK+ebhiA+IHDDqW47ICM3NkM2Civnm4cgPiBow6k7ICM3NkM3Civnm4ggPiB5w61uZzsgIzc2QzgKK+ebiSA+IGjDqTsgIzc2QzkKK+ebiiA+IHnDrDsgIzc2Q0EKK+ebiyA+IGLFjTsgIzc2Q0IKK+ebjCA+IHfEg247ICM3NkNDCivnm40gPiBow6k7ICM3NkNECivnm44gPiDDoG5nOyAjNzZDRQor55uPID4gemjEg247ICM3NkNGCivnm5AgPiB5w6FuOyAjNzZEMAor55uRID4gamnEgW47ICM3NkQxCivnm5IgPiBow6k7ICM3NkQyCivnm5MgPiB5xas7ICM3NkQzCivnm5QgPiBrxatpOyAjNzZENAor55uVID4gZsOgbjsgIzc2RDUKK+ebliA+IGfDoGk7ICM3NkQ2Civnm5cgPiBkw6BvOyAjNzZENwor55uYID4gcMOhbjsgIzc2RDgKK+ebmSA+IGbFrTsgIzc2RDkKK+ebmiA+IHHDrXU7ICM3NkRBCivnm5sgPiBzaMOobmc7ICM3NkRCCivnm5wgPiBkw6BvOyAjNzZEQwor55udID4gbMO5OyAjNzZERAor55ueID4gemjEg247ICM3NkRFCivnm58gPiBtw6luZzsgIzc2REYKK+eboCA+IGzErTsgIzc2RTAKK+eboSA+IGrDrG47ICM3NkUxCivnm6IgPiB4w7k7ICM3NkUyCivnm6MgPiBqacSBbjsgIzc2RTMKK+ebpCA+IHDDoW47ICM3NkU0Civnm6UgPiBndcOgbjsgIzc2RTUKK+ebpiA+IMSBbjsgIzc2RTYKK+ebpyA+IGzDujsgIzc2RTcKK+ebqCA+IHNoxa07ICM3NkU4Civnm6kgPiB6aMWNdTsgIzc2RTkKK+ebqiA+IGTDoG5nOyAjNzZFQQor55urID4gxIFuOyAjNzZFQgor55usID4gZ8WtOyAjNzZFQwor55utID4gbMOsOyAjNzZFRAor55uuID4gbcO5OyAjNzZFRQor55uvID4gY2jDqW5nOyAjNzZFRgor55uwID4gZ8SDbjsgIzc2RjAKK+ebsSA+IHjFqzsgIzc2RjEKK+ebsiA+IG3DoW5nOyAjNzZGMgor55uzID4gbcOhbmc7ICM3NkYzCivnm7QgPiB6aMOtOyAjNzZGNAor55u1ID4gccOsOyAjNzZGNQor55u2ID4gcnXEg247ICM3NkY2Civnm7cgPiB0acOhbjsgIzc2RjcKK+ebuCA+IHhpxIFuZzsgIzc2RjgKK+ebuSA+IGTDuW47ICM3NkY5Civnm7ogPiB4xKtuOyAjNzZGQQor55u7ID4geMOsOyAjNzZGQgor55u8ID4gcMOgbjsgIzc2RkMKK+ebvSA+IGbEk25nOyAjNzZGRAor55u+ID4gZMO5bjsgIzc2RkUKK+ebvyA+IG3DrW47ICM3NkZGCivnnIAgPiBtw61uZzsgIzc3MDAKK+ecgSA+IHNoxJVuZzsgIzc3MDEKK+ecgiA+IHNow6w7ICM3NzAyCivnnIMgPiB5w7puOyAjNzcwMwor55yEID4gbWnEg247ICM3NzA0CivnnIUgPiBwxIFuOyAjNzcwNQor55yGID4gZsSDbmc7ICM3NzA2CivnnIcgPiBtacSDbzsgIzc3MDcKK+eciCA+IGTEgW47ICM3NzA4CivnnIkgPiBtw6lpOyAjNzcwOQor55yKID4gbcOgbzsgIzc3MEEKK+eciyA+IGvDoG47ICM3NzBCCivnnIwgPiB4acOgbjsgIzc3MEMKK+ecjSA+IMWNdTsgIzc3MEQKK+ecjiA+IHNow6w7ICM3NzBFCivnnI8gPiB5xIFuZzsgIzc3MEYKK+eckCA+IHpoxJNuZzsgIzc3MTAKK+eckSA+IHnEg287ICM3NzExCivnnJIgPiBzaMOobjsgIzc3MTIKK+eckyA+IGjDuW87ICM3NzEzCivnnJQgPiBkw6A7ICM3NzE0CivnnJUgPiB6aMSVbjsgIzc3MTUKK+ecliA+IGt1w6BuZzsgIzc3MTYKK+eclyA+IGrFqzsgIzc3MTcKK+ecmCA+IHNow6huOyAjNzcxOAor55yZID4gY2jDrDsgIzc3MTkKK+ecmiA+IHNoxJVuZzsgIzc3MUEKK+ecmyA+IG3DqGk7ICM3NzFCCivnnJwgPiBtw7I7ICM3NzFDCivnnJ0gPiB6aMO5OyAjNzcxRAor55yeID4gemjEk247ICM3NzFFCivnnJ8gPiB6aMSTbjsgIzc3MUYKK+ecoCA+IG1pw6FuOyAjNzcyMAor55yhID4gZMSrOyAjNzcyMQor55yiID4geXXEgW47ICM3NzIyCivnnKMgPiBkacOpOyAjNzcyMwor55ykID4gecOtOyAjNzcyNAor55ylID4gesOsOyAjNzcyNQor55ymID4gesOsOyAjNzcyNgor55ynID4gY2jEg287ICM3NzI3CivnnKggPiB6aMSDOyAjNzcyOAor55ypID4geHXDoG47ICM3NzI5CivnnKogPiBixK1uZzsgIzc3MkEKK+ecqyA+IG3ErTsgIzc3MkIKK+ecrCA+IGzDs25nOyAjNzcyQwor55ytID4gc8WraTsgIzc3MkQKK+ecriA+IGTDsm5nOyAjNzcyRQor55yvID4gbcStOyAjNzcyRgor55ywID4gZGnDqTsgIzc3MzAKK+ecsSA+IHnDrTsgIzc3MzEKK+ecsiA+IMOocjsgIzc3MzIKK+ecsyA+IG3ErW5nOyAjNzczMwor55y0ID4geHXDoG47ICM3NzM0CivnnLUgPiBjaMSrOyAjNzczNQor55y2ID4ga3XDoG5nOyAjNzczNgor55y3ID4ganXDoG47ICM3NzM3CivnnLggPiBtw7N1OyAjNzczOAor55y5ID4gemjDqG47ICM3NzM5CivnnLogPiB0acOgbzsgIzc3M0EKK+ecuyA+IHnDoW5nOyAjNzczQgor55y8ID4gecSDbjsgIzc3M0MKK+ecvSA+IG3DsjsgIzc3M0QKK+ecviA+IHpow7JuZzsgIzc3M0UKK+ecvyA+IG3DoGk7ICM3NzNGCivnnYAgPiB6aMOhbzsgIzc3NDAKK+edgSA+IHpoxJNuZzsgIzc3NDEKK+edgiA+IG3DqWk7ICM3NzQyCivnnYMgPiBqw7luOyAjNzc0Mwor552EID4gc2jDoG87ICM3NzQ0CivnnYUgPiBow6BuOyAjNzc0NQor552GID4gaHXEg247ICM3NzQ2CivnnYcgPiBkw6w7ICM3NzQ3CivnnYggPiBjaMSVbmc7ICM3NzQ4CivnnYkgPiBjxatvOyAjNzc0OQor552KID4ganXDoG47ICM3NzRBCivnnYsgPiDDqTsgIzc3NEIKK+edjCA+IHfEg247ICM3NzRDCivnnY0gPiB4acOgbjsgIzc3NEQKK+edjiA+IHjEqzsgIzc3NEUKK+edjyA+IGvDuW47ICM3NzRGCivnnZAgPiBsw6BpOyAjNzc1MAor552RID4gamnEg247ICM3NzUxCivnnZIgPiBzaMSDbjsgIzc3NTIKK+edkyA+IHRpxINuOyAjNzc1Mwor552UID4gaMWtbjsgIzc3NTQKK+edlSA+IHfEg247ICM3NzU1CivnnZYgPiBsw61uZzsgIzc3NTYKK+edlyA+IHNow6w7ICM3NzU3CivnnZggPiBxw61vbmc7ICM3NzU4CivnnZkgPiBsacOoOyAjNzc1OQor552aID4gecOhaTsgIzc3NUEKK+edmyA+IGrEq25nOyAjNzc1Qgor552cID4gemjEk25nOyAjNzc1Qwor552dID4gbMOtOyAjNzc1RAor552eID4gbMOgaTsgIzc3NUUKK+ednyA+IHPDuWk7ICM3NzVGCivnnaAgPiBqdcOgbjsgIzc3NjAKK+edoSA+IHNow7lpOyAjNzc2MQor552iID4gc8WraTsgIzc3NjIKK+edoyA+IGTFqzsgIzc3NjMKK+edpCA+IGLDrDsgIzc3NjQKK+edpSA+IGLDrDsgIzc3NjUKK+edpiA+IG3DuTsgIzc3NjYKK+edpyA+IGjFq247ICM3NzY3CivnnaggPiBuw6w7ICM3NzY4CivnnakgPiBsw7k7ICM3NzY5CivnnaogPiB5w6w7ICM3NzZBCivnnasgPiBqacOpOyAjNzc2Qgor552sID4gY8SDaTsgIzc3NkMKK+edrSA+IHpoxY91OyAjNzc2RAor552uID4gecO6OyAjNzc2RQor552vID4gaMWrbjsgIzc3NkYKK+edsCA+IG3DoDsgIzc3NzAKK+edsSA+IHhpw6A7ICM3NzcxCivnnbIgPiB4xK1uZzsgIzc3NzIKK+edsyA+IHjEqzsgIzc3NzMKK+edtCA+IGfDuW47ICM3Nzc0CivnnbUgPiBjYWk7ICM3Nzc1CivnnbYgPiBjaMWtbjsgIzc3NzYKK+edtyA+IGppxIFuOyAjNzc3Nwor5524ID4gbcOoaTsgIzc3NzgKK+eduSA+IGTFrTsgIzc3NzkKK+eduiA+IGjDs3U7ICM3NzdBCivnnbsgPiB4dcSBbjsgIzc3N0IKK+edvCA+IHTDrDsgIzc3N0MKK+edvSA+IGvDumk7ICM3NzdECivnnb4gPiBnxIFvOyAjNzc3RQor552/ID4gcsO5aTsgIzc3N0YKK+eegCA+IG3DsnU7ICM3NzgwCivnnoEgPiB4w7k7ICM3NzgxCivnnoIgPiBmxIE7ICM3NzgyCivnnoMgPiB3xJNuOyAjNzc4Mwor556EID4gbWnDoW87ICM3Nzg0CivnnoUgPiBjaMWPdTsgIzc3ODUKK+eehiA+IGvDuWk7ICM3Nzg2CivnnocgPiBtxKs7ICM3Nzg3CivnnoggPiB3xJVuZzsgIzc3ODgKK+eeiSA+IGvDsnU7ICM3Nzg5CivnnoogPiBkw6BuZzsgIzc3OEEKK+eeiyA+IGNoxJNuOyAjNzc4Qgor556MID4ga8STOyAjNzc4Qwor556NID4gc8WPdTsgIzc3OEQKK+eejiA+IHhpxIE7ICM3NzhFCivnno8gPiBxw61vbmc7ICM3NzhGCivnnpAgPiBtw6BvOyAjNzc5MAor556RID4gbcOtbmc7ICM3NzkxCivnnpIgPiBtw6FuOyAjNzc5Mgor556TID4gc2jDuWk7ICM3NzkzCivnnpQgPiB6w6k7ICM3Nzk0CivnnpUgPiB6aMOgbmc7ICM3Nzk1CivnnpYgPiB5w6w7ICM3Nzk2CivnnpcgPiBkacSBbzsgIzc3OTcKK+eemCA+IMWNdTsgIzc3OTgKK+eemSA+IG3DsjsgIzc3OTkKK+eemiA+IHNow7luOyAjNzc5QQor556bID4gY8WNbmc7ICM3NzlCCivnnpwgPiBsxY11OyAjNzc5Qwor556dID4gY2jEqzsgIzc3OUQKK+eeniA+IG3DoW47ICM3NzlFCivnnp8gPiBwacSDbzsgIzc3OUYKK+eeoCA+IGNoxJNuZzsgIzc3QTAKK+eeoSA+IGrDrDsgIzc3QTEKK+eeoiA+IG3DqW5nOyAjNzdBMgor556kID4gcsO6bjsgIzc3QTQKK+eepSA+IHBpxJM7ICM3N0E1CivnnqYgPiB4xKs7ICM3N0E2CivnnqcgPiBxacOhbzsgIzc3QTcKK+eeqCA+IHDDujsgIzc3QTgKK+eeqSA+IHpoxa07ICM3N0E5CivnnqogPiBkw6huZzsgIzc3QUEKK+eeqyA+IHNoxJVuOyAjNzdBQgor556sID4gc2jDuW47ICM3N0FDCivnnq0gPiBsacSDbzsgIzc3QUQKK+eeriA+IGNow6g7ICM3N0FFCivnnq8gPiB4acOhbjsgIzc3QUYKK+eesCA+IGvDoG47ICM3N0IwCivnnrEgPiB5w6g7ICM3N0IxCivnnrIgPiB4w7k7ICM3N0IyCivnnrMgPiB0w7NuZzsgIzc3QjMKK+eetCA+IG3Ds3U7ICM3N0I0CivnnrUgPiBsw61uOyAjNzdCNQor5562ID4ga8O5aTsgIzc3QjYKK+eetyA+IHhpw6FuOyAjNzdCNwor5564ID4gecOoOyAjNzdCOAor5565ID4gw6BpOyAjNzdCOQor5566ID4gaMO5aTsgIzc3QkEKK+eeuyA+IHpoxIFuOyAjNzdCQgor5568ID4gamnEg247ICM3N0JDCivnnr0gPiBnxa07ICM3N0JECivnnr4gPiB6aMOgbzsgIzc3QkUKK+eevyA+IHHFqzsgIzc3QkYKK+efgCA+IHfDqWk7ICM3N0MwCivnn4EgPiBjaMWPdTsgIzc3QzEKK+efgiA+IHPDoG87ICM3N0MyCivnn4MgPiBuxK1uZzsgIzc3QzMKK+efhCA+IHjFq247ICM3N0M0Civnn4UgPiB5w6BvOyAjNzdDNQor55+GID4gaMO5bzsgIzc3QzYKK+efhyA+IG3DqW5nOyAjNzdDNwor55+IID4gbWnDoW47ICM3N0M4Civnn4kgPiBixKtuOyAjNzdDOQor55+KID4gbWnDoW47ICM3N0NBCivnn4sgPiBsw6w7ICM3N0NCCivnn4wgPiBrdcOgbmc7ICM3N0NDCivnn40gPiBqdcOpOyAjNzdDRAor55+OID4geHXEgW47ICM3N0NFCivnn48gPiBtacOhbjsgIzc3Q0YKK+efkCA+IGjDuW87ICM3N0QwCivnn5EgPiBsw7o7ICM3N0QxCivnn5IgPiBtw6luZzsgIzc3RDIKK+efkyA+IGzDs25nOyAjNzdEMwor55+UID4gZ3XDoG47ICM3N0Q0Civnn5UgPiBtxINuOyAjNzdENQor55+WID4geMStOyAjNzdENgor55+XID4gY2jDuTsgIzc3RDcKK+efmCA+IHTEg25nOyAjNzdEOAor55+ZID4ga8OgbjsgIzc3RDkKK+efmiA+IHpoxa07ICM3N0RBCivnn5sgPiBtw6FvOyAjNzdEQgor55+cID4gasSrbjsgIzc3REMKK+efnSA+IGzDrW47ICM3N0RECivnn54gPiB5w7k7ICM3N0RFCivnn58gPiBzaMO5bzsgIzc3REYKK+efoCA+IGPDqDsgIzc3RTAKK+efoSA+IGp1w6k7ICM3N0UxCivnn6IgPiBzaMStOyAjNzdFMgor55+jID4gecStOyAjNzdFMwor55+kID4gc2jElW47ICM3N0U0Civnn6UgPiB6aMSrOyAjNzdFNQor55+mID4gaMOzdTsgIzc3RTYKK+efpyA+IHNoxJVuOyAjNzdFNwor55+oID4gecStbmc7ICM3N0U4Civnn6kgPiBqxa07ICM3N0U5Civnn6ogPiB6aMWNdTsgIzc3RUEKK+efqyA+IGppxINvOyAjNzdFQgor55+sID4gY8O6bzsgIzc3RUMKK+efrSA+IGR1xINuOyAjNzdFRAor55+uID4gxINpOyAjNzdFRQor55+vID4gamnEg287ICM3N0VGCivnn7AgPiB6xJNuZzsgIzc3RjAKK+efsSA+IGjDuW87ICM3N0YxCivnn7IgPiBixINpOyAjNzdGMgor55+zID4gc2jDrTsgIzc3RjMKK+eftCA+IGTDrG5nOyAjNzdGNAor55+1ID4gccOsOyAjNzdGNQor55+2ID4gasSrOyAjNzdGNgor55+3ID4gesStOyAjNzdGNwor55+4ID4gZ8SBbjsgIzc3RjgKK+efuSA+IHfDuTsgIzc3RjkKK+efuiA+IHTFq287ICM3N0ZBCivnn7sgPiBrw7k7ICM3N0ZCCivnn7wgPiBxacSBbmc7ICM3N0ZDCivnn70gPiB4w6w7ICM3N0ZECivnn74gPiBmw6FuOyAjNzdGRQor55+/ID4ga3XDoG5nOyAjNzdGRgor56CAID4gZMOgbmc7ICM3ODAwCivnoIEgPiBtxIM7ICM3ODAxCivnoIIgPiBzaMSBOyAjNzgwMgor56CDID4gZMSBbjsgIzc4MDMKK+eghCA+IGp1w6k7ICM3ODA0CivnoIUgPiBsw6w7ICM3ODA1CivnoIYgPiBmxas7ICM3ODA2CivnoIcgPiBtw61uOyAjNzgwNwor56CIID4gbsWtbzsgIzc4MDgKK+egiSA+IGjDuW87ICM3ODA5CivnoIogPiBrw6BuZzsgIzc4MEEKK+egiyA+IHpoxK07ICM3ODBCCivnoIwgPiBxw6w7ICM3ODBDCivnoI0gPiBrxINuOyAjNzgwRAor56COID4gamnDqDsgIzc4MEUKK+egjyA+IGbEk247ICM3ODBGCivnoJAgPiDDqDsgIzc4MTAKK+egkSA+IHnDoDsgIzc4MTEKK+egkiA+IHDEqzsgIzc4MTIKK+egkyA+IHpow6k7ICM3ODEzCivnoJQgPiB5w6FuOyAjNzgxNAor56CVID4gc8O5aTsgIzc4MTUKK+egliA+IHpodcSBbjsgIzc4MTYKK+eglyA+IGNoxJM7ICM3ODE3CivnoJggPiBkw7luOyAjNzgxOAor56CZID4gcMSBbjsgIzc4MTkKK+egmiA+IHnDoG47ICM3ODFBCivnoJwgPiBmxJNuZzsgIzc4MUMKK+egnSA+IGbDoTsgIzc4MUQKK+egniA+IG3DsjsgIzc4MUUKK+egnyA+IHpow6A7ICM3ODFGCivnoKAgPiBxxas7ICM3ODIwCivnoKEgPiB5w7k7ICM3ODIxCivnoKIgPiBsxa1vOyAjNzgyMgor56CjID4gdMO6bzsgIzc4MjMKK+egpCA+IHTDum87ICM3ODI0CivnoKUgPiBkxK07ICM3ODI1CivnoKYgPiB6aMOgaTsgIzc4MjYKK+egpyA+IHpoxJNuOyAjNzgyNwor56CoID4gw6BpOyAjNzgyOAor56CpID4gZsOoaTsgIzc4MjkKK+egqiA+IG3FrTsgIzc4MkEKK+egqyA+IHpoxa07ICM3ODJCCivnoKwgPiBsw6w7ICM3ODJDCivnoK0gPiBiacSBbjsgIzc4MkQKK+egriA+IG7FrTsgIzc4MkUKK+egryA+IHDEq25nOyAjNzgyRgor56CwID4gcMSTbmc7ICM3ODMwCivnoLEgPiBsw61uZzsgIzc4MzEKK+egsiA+IHDDoG87ICM3ODMyCivnoLMgPiBsw6g7ICM3ODMzCivnoLQgPiBww7I7ICM3ODM0CivnoLUgPiBixY07ICM3ODM1CivnoLYgPiBww7I7ICM3ODM2CivnoLcgPiBzaMSTbjsgIzc4MzcKK+eguCA+IHrDoTsgIzc4MzgKK+eguSA+IG7FrW87ICM3ODM5CivnoLogPiBsw6w7ICM3ODNBCivnoLsgPiBsw7NuZzsgIzc4M0IKK+egvCA+IHTDs25nOyAjNzgzQwor56C+ID4gbMOsOyAjNzgzRQor56GAID4gY2jFrTsgIzc4NDAKK+ehgSA+IGvEk25nOyAjNzg0MQor56GCID4gcXXDoW47ICM3ODQyCivnoYMgPiB6aMWrOyAjNzg0Mwor56GEID4ga3XEgW5nOyAjNzg0NAor56GFID4gaMO5bzsgIzc4NDUKK+ehhiA+IMOoOyAjNzg0Ngor56GHID4gbsOhbzsgIzc4NDcKK+ehiCA+IGppw6E7ICM3ODQ4CivnoYkgPiBsw7k7ICM3ODQ5CivnoYogPiB3xJVpOyAjNzg0QQor56GLID4gw6BpOyAjNzg0Qgor56GMID4gbMO5bzsgIzc4NEMKK+ehjSA+IGvDqG47ICM3ODRECivnoY4gPiB4w61uZzsgIzc4NEUKK+ehjyA+IHnDoW47ICM3ODRGCivnoZAgPiB0w7NuZzsgIzc4NTAKK+ehkSA+IHDEk25nOyAjNzg1MQor56GSID4geMSrOyAjNzg1Mgor56GUID4gaMOzbmc7ICM3ODU0CivnoZUgPiBzaMO5bzsgIzc4NTUKK+ehliA+IHhpw6E7ICM3ODU2CivnoZcgPiBxacSBbzsgIzc4NTcKK+ehmSA+IHfDqGk7ICM3ODU5CivnoZogPiBxacOhbzsgIzc4NUEKK+ehnCA+IGvEk25nOyAjNzg1Qwor56GdID4geGnEgW87ICM3ODVECivnoZ4gPiBxdcOoOyAjNzg1RQor56GfID4gY2jDoG47ICM3ODVGCivnoaAgPiBsxINuZzsgIzc4NjAKK+ehoSA+IGjDs25nOyAjNzg2MQor56GiID4gecO6OyAjNzg2Mgor56GjID4geGnEgW87ICM3ODYzCivnoaQgPiB4acOhOyAjNzg2NAor56GlID4gbcSDbmc7ICM3ODY1CivnoaYgPiBsw7JuZzsgIzc4NjYKK+ehpyA+IMStb25nOyAjNzg2Nwor56GoID4gY2jEkzsgIzc4NjgKK+ehqSA+IGNow6g7ICM3ODY5CivnoaogPiDDqTsgIzc4NkEKK+ehqyA+IGzDrXU7ICM3ODZCCivnoawgPiB5w6xuZzsgIzc4NkMKK+ehrSA+IG3DoW5nOyAjNzg2RAor56GuID4gcXXDqDsgIzc4NkUKK+ehryA+IHnDoG47ICM3ODZGCivnobAgPiBzaMSBOyAjNzg3MAor56GxID4ga8WtbjsgIzc4NzEKK+ehsiA+IHnDuTsgIzc4NzIKK+ehtSA+IGzFrTsgIzc4NzUKK+ehtiA+IGNoxJVuOyAjNzg3Ngor56G3ID4gamnEg247ICM3ODc3CivnobggPiBudcOoOyAjNzg3OAor56G5ID4gc8WNbmc7ICM3ODc5CivnobogPiB6aMO6bzsgIzc4N0EKK+ehuyA+IGvEk25nOyAjNzg3Qgor56G8ID4gcMOpbmc7ICM3ODdDCivnob0gPiB5xINuOyAjNzg3RAor56G+ID4gemjDuWk7ICM3ODdFCivnob8gPiBrxY1uZzsgIzc4N0YKK+eigCA+IGPDqW5nOyAjNzg4MAor56KBID4gccOtOyAjNzg4MQor56KCID4gesOybmc7ICM3ODgyCivnooMgPiBxw6xuZzsgIzc4ODMKK+eihCA+IGzDrW47ICM3ODg0CivnooUgPiBqxatuOyAjNzg4NQor56KGID4gYsWNOyAjNzg4Ngor56KHID4gZMOsbmc7ICM3ODg3CivnooggPiBtw61uOyAjNzg4OAor56KJID4gZGnEgW87ICM3ODg5CivnooogPiBqacSBbjsgIzc4OEEKK+eiiyA+IGjDqDsgIzc4OEIKK+eijCA+IGzDuTsgIzc4OEMKK+eijSA+IMOgaTsgIzc4OEQKK+eijiA+IHPDuWk7ICM3ODhFCivnoo8gPiBxdcOoOyAjNzg4Rgor56KQID4gbMOtbmc7ICM3ODkwCivnopEgPiBixJNpOyAjNzg5MQor56KSID4gecOtbjsgIzc4OTIKK+eikyA+IGTDuWk7ICM3ODkzCivnopQgPiB3xa07ICM3ODk0CivnopUgPiBxw607ICM3ODk1CivnopYgPiBsw7luOyAjNzg5Ngor56KXID4gd8SDbjsgIzc4OTcKK+eimCA+IGRpxINuOyAjNzg5OAor56KZID4gZ8SBbmc7ICM3ODk5CivnopogPiBww6lpOyAjNzg5QQor56KbID4gccOsOyAjNzg5Qgor56KcID4gY2jElW47ICM3ODlDCivnop0gPiBydcSDbjsgIzc4OUQKK+einiA+IHnDoW47ICM3ODlFCivnop8gPiBkacOpOyAjNzg5Rgor56KgID4gZMOsbmc7ICM3OEEwCivnoqEgPiBkw7o7ICM3OEExCivnoqIgPiB0w7pvOyAjNzhBMgor56KjID4gamnDqTsgIzc4QTMKK+eipCA+IHnEq25nOyAjNzhBNAor56KlID4gYmnEg247ICM3OEE1CivnoqYgPiBrw6g7ICM3OEE2CivnoqcgPiBiw6w7ICM3OEE3CivnoqggPiB3xJNpOyAjNzhBOAor56KpID4gc2jDuW87ICM3OEE5CivnoqogPiB6aMSTbjsgIzc4QUEKK+eiqyA+IGR1w6BuOyAjNzhBQgor56KsID4geGnDoTsgIzc4QUMKK+eirSA+IGTDoG5nOyAjNzhBRAor56KuID4gdMOtOyAjNzhBRQor56KvID4gbsSDbzsgIzc4QUYKK+eisCA+IHDDqG5nOyAjNzhCMAor56KxID4gamnEg247ICM3OEIxCivnorIgPiBkw6w7ICM3OEIyCivnorMgPiB0w6BuOyAjNzhCMwor56K0ID4gY2jDoTsgIzc4QjQKK+eitiA+IHHDrDsgIzc4QjYKK+eiuCA+IGbEk25nOyAjNzhCOAor56K5ID4geHXDoG47ICM3OEI5CivnorogPiBxdcOoOyAjNzhCQQor56K7ID4gcXXDqDsgIzc4QkIKK+eivCA+IG3EgzsgIzc4QkMKK+eivSA+IGfFjW5nOyAjNzhCRAor56K+ID4gbmnDoG47ICM3OEJFCivnor8gPiBzw7k7ICM3OEJGCivno4AgPiDDqTsgIzc4QzAKK+ejgSA+IGPDrTsgIzc4QzEKK+ejgiA+IGzDrHU7ICM3OEMyCivno4MgPiBzxKs7ICM3OEMzCivno4QgPiB0w6FuZzsgIzc4QzQKK+ejhSA+IGLDoG5nOyAjNzhDNQor56OGID4gaHXDoTsgIzc4QzYKK+ejhyA+IHDEqzsgIzc4QzcKK+ejiCA+IHfElWk7ICM3OEM4Civno4kgPiBzxINuZzsgIzc4QzkKK+ejiiA+IGzElWk7ICM3OENBCivno4sgPiBjxatvOyAjNzhDQgor56OMID4gemjEk247ICM3OENDCivno40gPiB4acOhOyAjNzhDRAor56OOID4gccSrOyAjNzhDRQor56OPID4gbGnDoW47ICM3OENGCivno5AgPiBww6FuOyAjNzhEMAor56ORID4gd8OoaTsgIzc4RDEKK+ejkiA+IHnFrW47ICM3OEQyCivno5MgPiBkxatpOyAjNzhEMwor56OUID4gemjDqTsgIzc4RDQKK+ejlSA+IGvEkzsgIzc4RDUKK+ejliA+IGzEgTsgIzc4RDYKK+ejmCA+IHHDrG5nOyAjNzhEOAor56OZID4gZ8WtbjsgIzc4RDkKK+ejmiA+IHpodcSBbjsgIzc4REEKK+ejmyA+IGNow6FuOyAjNzhEQgor56OcID4gccOsOyAjNzhEQwor56OdID4gw6FvOyAjNzhERAor56OeID4gcMSTbmc7ICM3OERFCivno58gPiBsw7k7ICM3OERGCivno6AgPiBsxa07ICM3OEUwCivno6EgPiBrw6BuOyAjNzhFMQor56OiID4gcWnEg25nOyAjNzhFMgor56OjID4gY2jElW47ICM3OEUzCivno6QgPiB5xK1uOyAjNzhFNAor56OlID4gbMSVaTsgIzc4RTUKK+ejpiA+IGJpxIFvOyAjNzhFNgor56OnID4gccOsOyAjNzhFNwor56OoID4gbcOzOyAjNzhFOAor56OpID4gccSrOyAjNzhFOQor56OqID4gY8WraTsgIzc4RUEKK+ejqyA+IHrFjW5nOyAjNzhFQgor56OsID4gccOsbmc7ICM3OEVDCivno60gPiBjaMO5bzsgIzc4RUQKK+ejryA+IGrEqzsgIzc4RUYKK+ejsCA+IHNow6BuOyAjNzhGMAor56OxID4gbMOhbzsgIzc4RjEKK+ejsiA+IHHDujsgIzc4RjIKK+ejsyA+IHrEk25nOyAjNzhGMwor56O0ID4gZMOobmc7ICM3OEY0Civno7UgPiBqacOgbjsgIzc4RjUKK+ejtiA+IHjDrDsgIzc4RjYKK+ejtyA+IGzDrG47ICM3OEY3Civno7ggPiBkw6xuZzsgIzc4RjgKK+ejuSA+IGRpw6BuOyAjNzhGOQor56O6ID4gaHXDoW5nOyAjNzhGQQor56O7ID4gcMOhbjsgIzc4RkIKK+ejvCA+IHrDoTsgIzc4RkMKK+ejvSA+IHFpxIFvOyAjNzhGRAor56O+ID4gZMSrOyAjNzhGRQor56O/ID4gbMOsOyAjNzhGRgor56SBID4gamnEgW87ICM3OTAxCivnpIMgPiB6aMSDbmc7ICM3OTAzCivnpIQgPiBxacOhbzsgIzc5MDQKK+ekhSA+IGTFq247ICM3OTA1CivnpIYgPiB4acSDbjsgIzc5MDYKK+ekhyA+IHnDuTsgIzc5MDcKK+ekiCA+IHpow7lpOyAjNzkwOAor56SJID4gaMOpOyAjNzkwOQor56SKID4gaMO5bzsgIzc5MEEKK+ekiyA+IHpow6FpOyAjNzkwQgor56SMID4gbMOoaTsgIzc5MEMKK+ekjSA+IGvElTsgIzc5MEQKK+ekjiA+IGNoxa07ICM3OTBFCivnpI8gPiBqw607ICM3OTBGCivnpJAgPiBxdcOoOyAjNzkxMAor56SRID4gZMOgbmc7ICM3OTExCivnpJIgPiB5xK07ICM3OTEyCivnpJMgPiBqacSBbmc7ICM3OTEzCivnpJQgPiBww6w7ICM3OTE0CivnpJUgPiBwxKs7ICM3OTE1CivnpJYgPiB5w7k7ICM3OTE2CivnpJcgPiBwxKtuOyAjNzkxNwor56SYID4gccOsOyAjNzkxOAor56SZID4gw6BpOyAjNzkxOQor56SaID4ga8OgaTsgIzc5MUEKK+ekmyA+IGppxIFuOyAjNzkxQgor56ScID4gecO5OyAjNzkxQwor56SdID4gcnXEg247ICM3OTFECivnpJ4gPiBtw6luZzsgIzc5MUUKK+eknyA+IHDDoG87ICM3OTFGCivnpKAgPiBjw607ICM3OTIwCivnpKMgPiBtacOoOyAjNzkyMwor56SkID4gY8SDOyAjNzkyNAor56SlID4geGnDoW47ICM3OTI1CivnpKYgPiBrdcOgbmc7ICM3OTI2CivnpKcgPiBsw6hpOyAjNzkyNwor56SoID4gbMSVaTsgIzc5MjgKK+ekqSA+IHpow6w7ICM3OTI5CivnpKogPiBsw6w7ICM3OTJBCivnpKsgPiBsw6w7ICM3OTJCCivnpKwgPiBmw6FuOyAjNzkyQwor56StID4gcXXDqDsgIzc5MkQKK+ekriA+IHDDoG87ICM3OTJFCivnpK8gPiB5xKtuZzsgIzc5MkYKK+eksCA+IGzDrDsgIzc5MzAKK+eksSA+IGzDs25nOyAjNzkzMQor56SyID4gbMOzbmc7ICM3OTMyCivnpLMgPiBtw7I7ICM3OTMzCivnpLQgPiBiw7M7ICM3OTM0CivnpLUgPiBzaHXEgW5nOyAjNzkzNQor56S2ID4gZ3XDoG47ICM3OTM2CivnpLcgPiBsw6FuOyAjNzkzNwor56S4ID4gesSDbjsgIzc5MzgKK+ekuSA+IHnDoW47ICM3OTM5CivnpLogPiBzaMOsOyAjNzkzQQor56S7ID4gc2jDrCcgJ3rDrCcgJ3DDoW5nOyAjNzkzQgor56S8ID4gbMStOyAjNzkzQwor56S9ID4gcsOpbmc7ICM3OTNECivnpL4gPiBzaMOoOyAjNzkzRQor56S/ID4geXXDqDsgIzc5M0YKK+elgCA+IHPDrDsgIzc5NDAKK+elgSA+IHHDrTsgIzc5NDEKK+elgiA+IHTEgTsgIzc5NDIKK+elgyA+IG3DoDsgIzc5NDMKK+elhCA+IHhpw6g7ICM3OTQ0CivnpYUgPiB4acSBbjsgIzc5NDUKK+elhiA+IHhpxIFuOyAjNzk0Ngor56WHID4gemjEqzsgIzc5NDcKK+eliCA+IHHDrTsgIzc5NDgKK+eliSA+IHpoxK07ICM3OTQ5CivnpYogPiBixJNuZzsgIzc5NEEKK+eliyA+IGTDuWk7ICM3OTRCCivnpYwgPiB6aMOybmc7ICM3OTRDCivnpY4gPiB5xKs7ICM3OTRFCivnpY8gPiBzaMOtOyAjNzk0Rgor56WQID4gecOydTsgIzc5NTAKK+elkSA+IHpow6w7ICM3OTUxCivnpZIgPiB0acOhbzsgIzc5NTIKK+elkyA+IGbDujsgIzc5NTMKK+ellCA+IGbDuTsgIzc5NTQKK+ellSA+IG3DrDsgIzc5NTUKK+elliA+IHrFrTsgIzc5NTYKK+ellyA+IHpoxKs7ICM3OTU3CivnpZggPiBzdcOgbjsgIzc5NTgKK+elmSA+IG3DqGk7ICM3OTU5CivnpZogPiB6w7lvOyAjNzk1QQor56WbID4gccWrOyAjNzk1Qgor56WcID4gaMO5OyAjNzk1Qwor56WdID4gemjDuTsgIzc5NUQKK+elniA+IHNow6luOyAjNzk1RQor56WfID4gc8O5aTsgIzc5NUYKK+eloCA+IGPDrTsgIzc5NjAKK+eloSA+IGNow6FpOyAjNzk2MQor56WiID4gbcOtOyAjNzk2Mgor56WjID4gbMeaOyAjNzk2Mwor56WkID4gecWtOyAjNzk2NAor56WlID4geGnDoW5nOyAjNzk2NQor56WmID4gd8O6OyAjNzk2Ngor56WnID4gdGnEgW87ICM3OTY3CivnpaggPiBwacOgbzsgIzc5NjgKK+elqSA+IHpoxas7ICM3OTY5CivnpaogPiBnxa1pOyAjNzk2QQor56WrID4geGnDoTsgIzc5NkIKK+elrCA+IHpoxKs7ICM3OTZDCivnpa0gPiBqw6w7ICM3OTZECivnpa4gPiBnw6BvOyAjNzk2RQor56WvID4gemjEk247ICM3OTZGCivnpbAgPiBnw6BvOyAjNzk3MAor56WxID4gc2jDuWk7ICM3OTcxCivnpbIgPiBqxKtuOyAjNzk3Mgor56WzID4gY2jElW47ICM3OTczCivnpbQgPiBnxIFpOyAjNzk3NAor56W1ID4ga8WtbjsgIzc5NzUKK+eltiA+IGTDrDsgIzc5NzYKK+eltyA+IGTEg287ICM3OTc3CivnpbggPiBow7lvOyAjNzk3OAor56W5ID4gdMOhbzsgIzc5NzkKK+eluiA+IHHDrTsgIzc5N0EKK+eluyA+IGfDuTsgIzc5N0IKK+elvCA+IGd1w6BuOyAjNzk3Qwor56W9ID4gesO5aTsgIzc5N0QKK+elviA+IGzDrW5nOyAjNzk3RQor56W/ID4gbMO5OyAjNzk3Rgor56aAID4gYsStbmc7ICM3OTgwCivnpoEgPiBqw6xuOyAjNzk4MQor56aCID4gZMSDbzsgIzc5ODIKK+emgyA+IHpow607ICM3OTgzCivnpoQgPiBsw7k7ICM3OTg0CivnpoUgPiBzaMOgbjsgIzc5ODUKK+emhiA+IGLEk2k7ICM3OTg2CivnpocgPiB6aMSVOyAjNzk4Nwor56aIID4gaMWraTsgIzc5ODgKK+emiSA+IHnFj3U7ICM3OTg5CivnpoogPiB4w6w7ICM3OThBCivnposgPiB5xKtuOyAjNzk4Qgor56aMID4gesSrOyAjNzk4Qwor56aNID4gaMO5bzsgIzc5OEQKK+emjiA+IHpoxJNuOyAjNzk4RQor56aPID4gZsO6OyAjNzk4Rgor56aQID4geXXDoG47ICM3OTkwCivnppEgPiB3w7o7ICM3OTkxCivnppIgPiB4acSDbjsgIzc5OTIKK+emkyA+IHnDoW5nOyAjNzk5Mwor56aUID4gdMOtOyAjNzk5NAor56aVID4gecSrOyAjNzk5NQor56aWID4gbcOpaTsgIzc5OTYKK+emlyA+IHPEqzsgIzc5OTcKK+emmCA+IGTDrDsgIzc5OTgKK+emmiA+IHpow7pvOyAjNzk5QQor56abID4gemjEk247ICM3OTlCCivnppwgPiB5xY9uZzsgIzc5OUMKK+emnSA+IGrDrTsgIzc5OUQKK+emniA+IGfDoG87ICM3OTlFCivnpp8gPiB0w6FuZzsgIzc5OUYKK+emoCA+IHPEqzsgIzc5QTAKK+emoSA+IG3DoDsgIzc5QTEKK+emoiA+IHTEgTsgIzc5QTIKK+empCA+IHh1xIFuOyAjNzlBNAor56alID4gccOtOyAjNzlBNQor56amID4gecO5OyAjNzlBNgor56anID4geMSrOyAjNzlBNwor56aoID4gasSrOyAjNzlBOAor56apID4gc8OsOyAjNzlBOQor56aqID4gY2jDoW47ICM3OUFBCivnpqsgPiB0xINuOyAjNzlBQgor56asID4ga3XDoGk7ICM3OUFDCivnpq0gPiBzw7lpOyAjNzlBRAor56auID4gbMStOyAjNzlBRQor56avID4gbsOzbmc7ICM3OUFGCivnprAgPiBuxK07ICM3OUIwCivnprEgPiBkxINvOyAjNzlCMQor56ayID4gbMOsOyAjNzlCMgor56azID4gcsOhbmc7ICM3OUIzCivnprQgPiB5dcOoOyAjNzlCNAor56a1ID4gdMOtOyAjNzlCNQor56a2ID4gesSDbjsgIzc5QjYKK+emtyA+IGzDqGk7ICM3OUI3CivnprggPiByw7N1OyAjNzlCOAor56a5ID4gecWtOyAjNzlCOQor56a6ID4gecO6OyAjNzlCQQor56a7ID4gY2jEqzsgIzc5QkIKK+emvCA+IHhpw6g7ICM3OUJDCivnpr0gPiBxw61uOyAjNzlCRAor56a+ID4gaMOpOyAjNzlCRQor56a/ID4gdMWrOyAjNzlCRgor56eAID4geMOsdTsgIzc5QzAKK+engSA+IHPEqzsgIzc5QzEKK+engiA+IHLDqW47ICM3OUMyCivnp4MgPiB0xas7ICM3OUMzCivnp4QgPiB6xK07ICM3OUM0Civnp4UgPiBjaMOhOyAjNzlDNQor56eGID4gZ8SDbjsgIzc5QzYKK+enhyA+IHnDrDsgIzc5QzcKK+eniCA+IHhpxIFuOyAjNzlDOAor56eJID4gYsStbmc7ICM3OUM5Civnp4ogPiBuacOhbjsgIzc5Q0EKK+eniyA+IHHEq3U7ICM3OUNCCivnp4wgPiBxxKt1OyAjNzlDQwor56eNID4gY2jDs25nOyAjNzlDRAor56eOID4gZsOpbjsgIzc5Q0UKK+enjyA+IGjDoG87ICM3OUNGCivnp5AgPiB5w7puOyAjNzlEMAor56eRID4ga8STOyAjNzlEMQor56eSID4gbWnEg287ICM3OUQyCivnp5MgPiB6aMSrOyAjNzlEMwor56eUID4gZ8STbmc7ICM3OUQ0Civnp5UgPiBixK07ICM3OUQ1Civnp5YgPiB6aMSrOyAjNzlENgor56eXID4gecO5OyAjNzlENwor56eYID4gbcOsOyAjNzlEOAor56eZID4ga8O5OyAjNzlEOQor56eaID4gYsOgbjsgIzc5REEKK+enmyA+IHDEqzsgIzc5REIKK+ennCA+IG7DrTsgIzc5REMKK+ennSA+IGzDrDsgIzc5REQKK+enniA+IHnDs3U7ICM3OURFCivnp58gPiB6xas7ICM3OURGCivnp6AgPiBwxKs7ICM3OUUwCivnp6EgPiBiw6E7ICM3OUUxCivnp6IgPiBsw61uZzsgIzc5RTIKK+enoyA+IG3DsjsgIzc5RTMKK+enpCA+IGNow6huZzsgIzc5RTQKK+enpSA+IG5pw6FuOyAjNzlFNQor56emID4gccOtbjsgIzc5RTYKK+enpyA+IHnEgW5nOyAjNzlFNwor56eoID4gesO6bzsgIzc5RTgKK+enqSA+IHpow6w7ICM3OUU5Civnp6ogPiB6aMSrOyAjNzlFQQor56erID4gc2jDujsgIzc5RUIKK+enrCA+IGrDuTsgIzc5RUMKK+enrSA+IHrErTsgIzc5RUQKK+enriA+IGjDum87ICM3OUVFCivnp68gPiBqxKs7ICM3OUVGCivnp7AgPiBjaMSTbmc7ICM3OUYwCivnp7EgPiB0w7NuZzsgIzc5RjEKK+ensiA+IHpow6w7ICM3OUYyCivnp7MgPiBow7pvOyAjNzlGMwor56e0ID4gaMOpOyAjNzlGNAor56e1ID4gecSrbjsgIzc5RjUKK+entiA+IHrEqzsgIzc5RjYKK+entyA+IHpow607ICM3OUY3Civnp7ggPiBqacSTOyAjNzlGOAor56e5ID4gcsSVbjsgIzc5RjkKK+enuiA+IGTDuTsgIzc5RkEKK+enuyA+IHnDrTsgIzc5RkIKK+envCA+IHpoxas7ICM3OUZDCivnp70gPiBow7lpOyAjNzlGRAor56e+ID4gbsOzbmc7ICM3OUZFCivnp78gPiBmxa07ICM3OUZGCivnqIAgPiB4xKs7ICM3QTAwCivnqIEgPiBrxINvOyAjN0EwMQor56iCID4gbMOhbmc7ICM3QTAyCivnqIMgPiBmxas7ICM3QTAzCivnqIQgPiB6w6g7ICM3QTA0CivnqIUgPiBzaMO5aTsgIzdBMDUKK+eohiA+IGzHmjsgIzdBMDYKK+eohyA+IGvFrW47ICM3QTA3CivnqIggPiBnxINuOyAjN0EwOAor56iJID4gZ8STbmc7ICM3QTA5CivnqIogPiB0w607ICM3QTBBCivnqIsgPiBjaMOpbmc7ICM3QTBCCivnqIwgPiB0w7o7ICM3QTBDCivnqI0gPiBzaMSBbzsgIzdBMEQKK+eojiA+IHNow7lpOyAjN0EwRQor56iPID4gecOgOyAjN0EwRgor56iQID4gbMWtbjsgIzdBMTAKK+eokSA+IGzDuTsgIzdBMTEKK+eokiA+IGfDuTsgIzdBMTIKK+eokyA+IHrDum87ICM3QTEzCivnqJQgPiByxJVuOyAjN0ExNAor56iVID4gemjDuW47ICM3QTE1CivnqJYgPiBiw6BuZzsgIzdBMTYKK+eolyA+IGLDoGk7ICM3QTE3CivnqJggPiBqxKs7ICM3QTE4CivnqJkgPiB6aMOtOyAjN0ExOQor56iaID4gemjDrDsgIzdBMUEKK+eomyA+IGvFrW47ICM3QTFCCivnqJwgPiBsw6luZzsgIzdBMUMKK+eonSA+IHDDqW5nOyAjN0ExRAor56ieID4ga8STOyAjN0ExRQor56ifID4gYsStbmc7ICM3QTFGCivnqKAgPiBjaMOzdTsgIzdBMjAKK+eooSA+IHrDujsgIzdBMjEKK+eooiA+IHnDuTsgIzdBMjIKK+eooyA+IHPFqzsgIzdBMjMKK+eopCA+IGzHnGU7ICM3QTI0CivnqKYgPiB5xKs7ICM3QTI2CivnqKcgPiB4w6w7ICM3QTI3CivnqKggPiBiacSBbjsgIzdBMjgKK+eoqSA+IGrDrDsgIzdBMjkKK+eoqiA+IGbDuTsgIzdBMkEKK+eoqyA+IGLEqzsgIzdBMkIKK+eorCA+IG7DuW87ICM3QTJDCivnqK0gPiBqacSTOyAjN0EyRAor56iuID4gemjFj25nOyAjN0EyRQor56ivID4gesWNbmc7ICM3QTJGCivnqLAgPiB4xas7ICM3QTMwCivnqLEgPiBjaMSTbmc7ICM3QTMxCivnqLIgPiBkw6BvOyAjN0EzMgor56izID4gd8SVbjsgIzdBMzMKK+eotCA+IGxpw6FuOyAjN0EzNAor56i1ID4gesSrOyAjN0EzNQor56i2ID4gecO5OyAjN0EzNgor56i3ID4gasOsOyAjN0EzNwor56i4ID4geMO5OyAjN0EzOAor56i5ID4gemjElW47ICM3QTM5CivnqLogPiB6aMOsOyAjN0EzQQor56i7ID4gZMOgbzsgIzdBM0IKK+eovCA+IGppw6A7ICM3QTNDCivnqL0gPiBqxKs7ICM3QTNECivnqL4gPiBnxINvOyAjN0EzRQor56i/ID4gZ8SDbzsgIzdBM0YKK+epgCA+IGfFrTsgIzdBNDAKK+epgSA+IHLDs25nOyAjN0E0MQor56mCID4gc8O5aTsgIzdBNDIKK+ephCA+IGrDrDsgIzdBNDQKK+ephSA+IGvEgW5nOyAjN0E0NQor56mGID4gbcO5OyAjN0E0Ngor56mHID4gc2jEgW47ICM3QTQ3CivnqYggPiBtw6luOyAjN0E0OAor56mJID4gemjDrDsgIzdBNDkKK+epiiA+IGrDrDsgIzdBNEEKK+epiyA+IGzDuTsgIzdBNEIKK+epjCA+IHPFqzsgIzdBNEMKK+epjSA+IGrEqzsgIzdBNEQKK+epjiA+IHnErW5nOyAjN0E0RQor56mPID4gd8SVbjsgIzdBNEYKK+epkCA+IHHEq3U7ICM3QTUwCivnqZEgPiBzw6g7ICM3QTUxCivnqZMgPiB5w6w7ICM3QTUzCivnqZQgPiBodcOhbmc7ICM3QTU0CivnqZUgPiBxacOoOyAjN0E1NQor56mWID4gasStOyAjN0E1Ngor56mXID4gc8O5aTsgIzdBNTcKK+epmCA+IHhpxIFvOyAjN0E1OAor56mZID4gcMO6OyAjN0E1OQor56maID4gamnEgW87ICM3QTVBCivnqZsgPiB6aMWrbzsgIzdBNUIKK+epnCA+IHTDs25nOyAjN0E1Qwor56meID4gbMeaOyAjN0E1RQor56mfID4gc8O5aTsgIzdBNUYKK+epoCA+IG7Ds25nOyAjN0E2MAor56mhID4gc8OoOyAjN0E2MQor56miID4gaMO5aTsgIzdBNjIKK+epoyA+IHLDoW5nOyAjN0E2Mwor56mkID4gbsO5bzsgIzdBNjQKK+eppSA+IHnDuTsgIzdBNjUKK+eppiA+IGJpbjsgIzdBNjYKK+eppyA+IGrDrDsgIzdBNjcKK+epqCA+IHTDumk7ICM3QTY4CivnqakgPiB3xJVuOyAjN0E2OQor56mqID4gY2jEk25nOyAjN0E2QQor56mrID4gaMO5bzsgIzdBNkIKK+eprCA+IGfFj25nOyAjN0E2Qwor56mtID4gbMeaOyAjN0E2RAor56muID4gYmnEgW87ICM3QTZFCivnqbAgPiByw6FuZzsgIzdBNzAKK+epsSA+IHpoxatvOyAjN0E3MQor56myID4gbMOtOyAjN0E3Mgor56mzID4gesOgbjsgIzdBNzMKK+eptCA+IHh1w6g7ICM3QTc0CivnqbUgPiB3xIE7ICM3QTc1CivnqbYgPiBqw6x1OyAjN0E3Ngor56m3ID4gccOtb25nOyAjN0E3Nwor56m4ID4geMOsOyAjN0E3OAor56m5ID4gccSrb25nOyAjN0E3OQor56m6ID4ga8WNbmc7ICM3QTdBCivnqbsgPiB5xas7ICM3QTdCCivnqbwgPiBzxJNuOyAjN0E3Qwor56m9ID4gasStbmc7ICM3QTdECivnqb4gPiB5w6BvOyAjN0E3RQor56m/ID4gY2h1xIFuOyAjN0E3Rgor56qAID4gemjFq247ICM3QTgwCivnqoEgPiB0w7o7ICM3QTgxCivnqoIgPiBsw6FvOyAjN0E4Mgor56qDID4gcWnDqDsgIzdBODMKK+eqhCA+IHpoxINpOyAjN0E4NAor56qFID4gecSDbzsgIzdBODUKK+eqhiA+IGJpxINuOyAjN0E4Ngor56qHID4gYsOhbzsgIzdBODcKK+eqiCA+IHnEg287ICM3QTg4CivnqokgPiBixK1uZzsgIzdBODkKK+eqiiA+IHfEgTsgIzdBOEEKK+eqiyA+IHpow7o7ICM3QThCCivnqowgPiBqacOgbzsgIzdBOEMKK+eqjSA+IHFpw6BvOyAjN0E4RAor56qOID4gZGnDoG87ICM3QThFCivnqo8gPiB3xas7ICM3QThGCivnqpAgPiBnxatpOyAjN0E5MAor56qRID4gecOhbzsgIzdBOTEKK+eqkiA+IHpow6w7ICM3QTkyCivnqpMgPiBjaHXEgW5nOyAjN0E5Mwor56qUID4gecSDbzsgIzdBOTQKK+eqlSA+IHRpxINvOyAjN0E5NQor56qWID4gamnDoG87ICM3QTk2CivnqpcgPiBjaHXEgW5nOyAjN0E5Nwor56qYID4gasStb25nOyAjN0E5OAor56qZID4geGnEgW87ICM3QTk5CivnqpogPiBjaMOpbmc7ICM3QTlBCivnqpsgPiBrw7J1OyAjN0E5Qgor56qcID4gY3XDoG47ICM3QTlDCivnqp0gPiB3xY07ICM3QTlECivnqp4gPiBkw6BuOyAjN0E5RQor56qfID4ga8WrOyAjN0E5Rgor56qgID4ga8STOyAjN0FBMAor56qhID4gemjDuWk7ICM3QUExCivnqqIgPiB4w7k7ICM3QUEyCivnqqMgPiBzw7k7ICM3QUEzCivnqqQgPiBndWFuOyAjN0FBNAor56qlID4ga8WraTsgIzdBQTUKK+eqpiA+IGTDsnU7ICM3QUE2CivnqqggPiB5w6xuOyAjN0FBOAor56qpID4gd8WNOyAjN0FBOQor56qqID4gd8SBOyAjN0FBQQor56qrID4gecOgOyAjN0FBQgor56qsID4gecO6OyAjN0FBQwor56qtID4gasO5OyAjN0FBRAor56quID4gccOtb25nOyAjN0FBRQor56qvID4gecOhbzsgIzdBQUYKK+eqsCA+IHnDoW87ICM3QUIwCivnqrEgPiB0acOgbzsgIzdBQjEKK+eqsiA+IGNow6FvOyAjN0FCMgor56qzID4gecWtOyAjN0FCMwor56q0ID4gdGnDoW47ICM3QUI0CivnqrUgPiBkacOgbzsgIzdBQjUKK+eqtiA+IGrDuTsgIzdBQjYKK+eqtyA+IGxpw6FvOyAjN0FCNwor56q4ID4geMSrOyAjN0FCOAor56q5ID4gd8O5OyAjN0FCOQor56q6ID4ga8WraTsgIzdBQkEKK+equyA+IGNodcSBbmc7ICM3QUJCCivnqrwgPiB6aMSBbzsgIzdBQkMKK+eqviA+IGt1xINuOyAjN0FCRQor56q/ID4gbMOzbmc7ICM3QUJGCivnq4AgPiBjaMSTbmc7ICM3QUMwCivnq4EgPiBjw7lpOyAjN0FDMQor56uCID4gcGnDoW87ICM3QUMyCivnq4MgPiB6w6BvOyAjN0FDMwor56uEID4gY3XDoG47ICM3QUM0Civnq4UgPiBxacOgbzsgIzdBQzUKK+erhiA+IHHDrW9uZzsgIzdBQzYKK+erhyA+IGTDsnU7ICM3QUM3Civnq4ggPiB6w6BvOyAjN0FDOAor56uJID4gbMWPbmc7ICM3QUM5Civnq4ogPiBxacOoOyAjN0FDQQor56uLID4gbMOsOyAjN0FDQgor56uMID4gY2jDuTsgIzdBQ0MKK+erjSA+IHNow60nICdnxY1uZycgJ3NoxJNuZzsgIzdBQ0QKK+erjiA+IGbDsnU7ICM3QUNFCivnq48gPiBxacSBbicgJ2fFjW5nJyAnc2jEk25nOyAjN0FDRgor56uQID4gY2jDuTsgIzdBRDAKK+erkSA+IGjDs25nOyAjN0FEMQor56uSID4gccOtOyAjN0FEMgor56uTID4gcWnEgW4nICdmxJNuJyAnemjEqycgJ3nEqycgJ2fFjW5nJyAnc2jEk25nOyAjN0FEMwor56uUID4gZ8WNbmcnICdzaMSTbmc7ICM3QUQ0Civnq5UgPiBzaMOtJyAnZsSTbicgJ3poxKsnICd5xKsnICdnxY1uZycgJ3NoxJNuZzsgIzdBRDUKK+erliA+IHNow7k7ICM3QUQ2Civnq5cgPiBtacOgbzsgIzdBRDcKK+ermCA+IGrFrTsgIzdBRDgKK+ermSA+IHpow6BuOyAjN0FEOQor56uaID4gemjDuTsgIzdBREEKK+ermyA+IGzDrW5nOyAjN0FEQgor56ucID4gbMOzbmc7ICM3QURDCivnq50gPiBiw6xuZzsgIzdBREQKK+erniA+IGrDrG5nOyAjN0FERQor56ufID4gasOsbmc7ICM3QURGCivnq6AgPiB6aMSBbmc7ICM3QUUwCivnq6EgPiB5xKsnICdnxY1uZycgJ3NoxJNuZycgJ2RlJyAnecSrJyAnYsSDaScgJ2LDqGk7ICM3QUUxCivnq6IgPiBzw6w7ICM3QUUyCivnq6MgPiBqw7luOyAjN0FFMwor56ukID4gaMOzbmc7ICM3QUU0Civnq6UgPiB0w7NuZzsgIzdBRTUKK+erpiA+IHPFj25nOyAjN0FFNgor56unID4gasOsbmc7ICM3QUU3Civnq6ggPiBkacOgbzsgIzdBRTgKK+erqSA+IHnDrDsgIzdBRTkKK+erqiA+IHNow7k7ICM3QUVBCivnq6sgPiBqw6xuZzsgIzdBRUIKK+errCA+IHHFrTsgIzdBRUMKK+errSA+IGppw6k7ICM3QUVECivnq64gPiBww61uZzsgIzdBRUUKK+erryA+IGR1xIFuOyAjN0FFRgor56uwID4gc2jDoW87ICM3QUYwCivnq7EgPiB6aHXEg247ICM3QUYxCivnq7IgPiBjw6luZzsgIzdBRjIKK+ersyA+IGTEk25nOyAjN0FGMwor56u0ID4gY8WraTsgIzdBRjQKK+ertSA+IGh1xIFpOyAjN0FGNQor56u2ID4gasOsbmc7ICM3QUY2Civnq7cgPiBrw6BuOyAjN0FGNwor56u4ID4gasOsbmc7ICM3QUY4Civnq7kgPiB6aMO6OyAjN0FGOQor56u6ID4gemjDujsgIzdBRkEKK+eruyA+IGzDqDsgIzdBRkIKK+ervCA+IHDDqW5nOyAjN0FGQwor56u9ID4gecO6OyAjN0FGRAor56u+ID4gY2jDrTsgIzdBRkUKK+ervyA+IGfEgW47ICM3QUZGCivnrIAgPiBtw6FuZzsgIzdCMDAKK+esgSA+IHpow7o7ICM3QjAxCivnrIMgPiBkxa07ICM3QjAzCivnrIQgPiBqxKs7ICM3QjA0CivnrIUgPiB4acOhbzsgIzdCMDUKK+eshiA+IGLEgTsgIzdCMDYKK+eshyA+IHN1w6BuOyAjN0IwNwor56yIID4gasOtOyAjN0IwOAor56yJID4gemjElW47ICM3QjA5CivnrIogPiB6aMOgbzsgIzdCMEEKK+esiyA+IHPFrW47ICM3QjBCCivnrIwgPiB5w6E7ICM3QjBDCivnrI0gPiB6aMO5aTsgIzdCMEQKK+esjiA+IHl1w6FuOyAjN0IwRQor56yPID4gaMO5OyAjN0IwRgor56yQID4gZ8SBbmc7ICM3QjEwCivnrJEgPiB4acOgbzsgIzdCMTEKK+eskiA+IGPDqW47ICM3QjEyCivnrJMgPiBww607ICM3QjEzCivnrJQgPiBixK07ICM3QjE0CivnrJUgPiBqacSDbjsgIzdCMTUKK+esliA+IHnErTsgIzdCMTYKK+eslyA+IGTFjW5nOyAjN0IxNwor56yYID4gc2jEgW47ICM3QjE4CivnrJkgPiBzaMSTbmc7ICM3QjE5CivnrJogPiB4acOhOyAjN0IxQQor56ybID4gZMOtOyAjN0IxQgor56ycID4gemjDujsgIzdCMUMKK+esnSA+IG7DoDsgIzdCMUQKK+esniA+IGNoxKs7ICM3QjFFCivnrJ8gPiBnxas7ICM3QjFGCivnrKAgPiBsw6w7ICM3QjIwCivnrKEgPiBxacOoOyAjN0IyMQor56yiID4gbcStbjsgIzdCMjIKK+esoyA+IGLEgW87ICM3QjIzCivnrKQgPiB0acOhbzsgIzdCMjQKK+espSA+IHPDrDsgIzdCMjUKK+espiA+IGbDujsgIzdCMjYKK+espyA+IGPDqDsgIzdCMjcKK+esqCA+IGLDqG47ICM3QjI4CivnrKkgPiBww6hpOyAjN0IyOQor56yqID4gZMOhOyAjN0IyQQor56yrID4gesStOyAjN0IyQgor56ysID4gZMOsOyAjN0IyQwor56ytID4gbMOtbmc7ICM3QjJECivnrK4gPiB6w6k7ICM3QjJFCivnrK8gPiBuw7o7ICM3QjJGCivnrLAgPiBmw7o7ICM3QjMwCivnrLEgPiBnxY91OyAjN0IzMQor56yyID4gZsSBbjsgIzdCMzIKK+essyA+IGppxIE7ICM3QjMzCivnrLQgPiBnxJU7ICM3QjM0CivnrLUgPiBmw6BuOyAjN0IzNQor56y2ID4gc2jErTsgIzdCMzYKK+estyA+IG3Eg287ICM3QjM3CivnrLggPiBwxY87ICM3QjM4CivnrLogPiBqacSBbjsgIzdCM0EKK+esuyA+IHHDrW9uZzsgIzdCM0IKK+esvCA+IGzDs25nOyAjN0IzQwor56y+ID4gYmnEgW47ICM3QjNFCivnrL8gPiBsw7lvOyAjN0IzRgor562AID4gZ8O5aTsgIzdCNDAKK+etgSA+IHHFrTsgIzdCNDEKK+etgiA+IGNow607ICM3QjQyCivnrYMgPiB5xKtuOyAjN0I0Mwor562EID4gecOgbzsgIzdCNDQKK+ethSA+IHhpxINuOyAjN0I0NQor562GID4gYsStOyAjN0I0Ngor562HID4gccOtb25nOyAjN0I0Nwor562IID4gZ3XEgTsgIzdCNDgKK+etiSA+IGTElW5nOyAjN0I0OQor562KID4gamnEg287ICM3QjRBCivnrYsgPiBqxKtuOyAjN0I0Qgor562MID4gcXXDoW47ICM3QjRDCivnrY0gPiBzxa1uOyAjN0I0RAor562OID4gcsO6OyAjN0I0RQor562PID4gZsOhOyAjN0I0Rgor562QID4ga3XEgW5nOyAjN0I1MAor562RID4gemjDujsgIzdCNTEKK+etkiA+IHTFj25nOyAjN0I1Mgor562TID4gasSrOyAjN0I1Mwor562UID4gZMOhOyAjN0I1NAor562VID4geMOtbmc7ICM3QjU1CivnrZYgPiBjw6g7ICM3QjU2CivnrZcgPiB6aMOybmc7ICM3QjU3CivnrZggPiBrw7J1OyAjN0I1OAor562ZID4gbMOhaTsgIzdCNTkKK+etmiA+IGLDrDsgIzdCNUEKK+etmyA+IHNoxIFpOyAjN0I1Qgor562cID4gZMSBbmc7ICM3QjVDCivnrZ0gPiB6aMSTbmc7ICM3QjVECivnrZ4gPiBjw6g7ICM3QjVFCivnrZ8gPiBmxas7ICM3QjVGCivnraAgPiB5w7puOyAjN0I2MAor562hID4gdMO6OyAjN0I2MQor562iID4gcMOhOyAjN0I2Mgor562jID4gbMOsOyAjN0I2Mwor562kID4gbMOhbmc7ICM3QjY0CivnraUgPiBqxa07ICM3QjY1CivnraYgPiBndcSDbjsgIzdCNjYKK+etpyA+IGppxINuOyAjN0I2Nwor562oID4gaMOhbjsgIzdCNjgKK+etqSA+IHTDs25nOyAjN0I2OQor562qID4geGnDoTsgIzdCNkEKK+etqyA+IHpow6w7ICM3QjZCCivnrawgPiBjaMOpbmc7ICM3QjZDCivnra0gPiBzdcOgbjsgIzdCNkQKK+etriA+IHNow6w7ICM3QjZFCivnra8gPiB6aMO5OyAjN0I2Rgor562wID4gesO6bzsgIzdCNzAKK+etsSA+IHhpxINvOyAjN0I3MQor562yID4gc2jEgW87ICM3QjcyCivnrbMgPiB0w61uZzsgIzdCNzMKK+ettCA+IGPDqDsgIzdCNzQKK+ettSA+IHnDoW47ICM3Qjc1CivnrbYgPiBnxINvOyAjN0I3Ngor5623ID4ga3XDoGk7ICM3Qjc3CivnrbggPiBnxIFuOyAjN0I3OAor5625ID4gY2jDs3U7ICM3Qjc5CivnrbsgPiBnw6BuZzsgIzdCN0IKK+etvCA+IHnDum47ICM3QjdDCivnrb4gPiBxacSBbjsgIzdCN0UKK+etvyA+IHhpxINvOyAjN0I3Rgor566AID4gamnEg247ICM3QjgwCivnroEgPiBww7o7ICM3QjgxCivnroIgPiBsw6FpOyAjN0I4Mgor566DID4gesWNdTsgIzdCODMKK+euhCA+IGLDrDsgIzdCODQKK+euhSA+IGLDrDsgIzdCODUKK+euhiA+IGLDrDsgIzdCODYKK+euhyA+IGfDqDsgIzdCODcKK+euiCA+IGNow607ICM3Qjg4CivnrokgPiBndcSDaTsgIzdCODkKK+euiiA+IHnFqzsgIzdCOEEKK+euiyA+IGppxIFuOyAjN0I4Qgor566MID4gemjDoG87ICM3QjhDCivnro0gPiBnxas7ICM3QjhECivnro4gPiBjaMOtOyAjN0I4RQor566PID4gemjEk25nOyAjN0I4Rgor566QID4gasSrbmc7ICM3QjkwCivnrpEgPiBzaMOgOyAjN0I5MQor566SID4gemjFj3U7ICM3QjkyCivnrpMgPiBsw7k7ICM3QjkzCivnrpQgPiBiw7M7ICM3Qjk0CivnrpUgPiBqxKs7ICM3Qjk1CivnrpYgPiBsw61uOyAjN0I5Ngor566XID4gc3XDoG47ICM3Qjk3CivnrpggPiBqw7luOyAjN0I5OAor566ZID4gZsO6OyAjN0I5OQor566aID4gemjDoTsgIzdCOUEKK+eumyA+IGfFqzsgIzdCOUIKK+eunCA+IGvFjW5nOyAjN0I5Qwor566dID4gcWnDoW47ICM3QjlECivnrp4gPiBxdcSBbjsgIzdCOUUKK+eunyA+IGrDuW47ICM3QjlGCivnrqAgPiBjaMO6aTsgIzdCQTAKK+euoSA+IGd1xINuOyAjN0JBMQor566iID4geXXEgW47ICM3QkEyCivnrqMgPiBjw6g7ICM3QkEzCivnrqQgPiBqw7o7ICM3QkE0CivnrqUgPiBixY87ICM3QkE1CivnrqYgPiB6w6k7ICM3QkE2CivnrqcgPiBxacOoOyAjN0JBNwor566oID4gdMO5bzsgIzdCQTgKK+euqSA+IGzDum87ICM3QkE5CivnrqogPiBkxIFuOyAjN0JBQQor566rID4geGnEgW87ICM3QkFCCivnrqwgPiByw7lvOyAjN0JBQwor566tID4gamnDoG47ICM3QkFECivnrq4gPiB4dWFuOyAjN0JBRQor566vID4gYmnEgW47ICM3QkFGCivnrrAgPiBzxa1uOyAjN0JCMAor566xID4geGnEgW5nOyAjN0JCMQor566yID4geGnEg247ICM3QkIyCivnrrMgPiBww61uZzsgIzdCQjMKK+eutCA+IHpoxJNuOyAjN0JCNAor5661ID4gc2jElW5nOyAjN0JCNQor5662ID4gaMO6OyAjN0JCNgor5663ID4gc2jEqzsgIzdCQjcKK+euuCA+IHpow7k7ICM3QkI4CivnrrkgPiB5dcSTOyAjN0JCOQor5666ID4gY2jFrW47ICM3QkJBCivnrrsgPiBsx5w7ICM3QkJCCivnrrwgPiB3xas7ICM3QkJDCivnrr0gPiBkxY9uZzsgIzdCQkQKK+euviA+IHhpxIFvOyAjN0JCRQor566/ID4gasOtOyAjN0JCRgor56+AID4gamnDqTsgIzdCQzAKK+evgSA+IGh1w6FuZzsgIzdCQzEKK+evgiA+IHjEq25nOyAjN0JDMgor56+DID4gbcOpaTsgIzdCQzMKK+evhCA+IGbDoG47ICM3QkM0Civnr4UgPiBjaMO6aTsgIzdCQzUKK+evhiA+IHpodcOgbjsgIzdCQzYKK+evhyA+IHBpxIFuOyAjN0JDNwor56+IID4gZsSTbmc7ICM3QkM4Civnr4kgPiB6aMO6OyAjN0JDOQor56+KID4gaMOzbmc7ICM3QkNBCivnr4sgPiBxacOoOyAjN0JDQgor56+MID4gaMOzdTsgIzdCQ0MKK+evjSA+IHHEq3U7ICM3QkNECivnr44gPiBtacSDbzsgIzdCQ0UKK+evjyA+IHFpw6BuOyAjN0JDRgor56+RID4ga8O5aTsgIzdCRDEKK+evkyA+IGzFj3U7ICM3QkQzCivnr5QgPiB5w7puOyAjN0JENAor56+VID4gaMOpOyAjN0JENQor56+WID4gdMOhbmc7ICM3QkQ2Civnr5cgPiB5dcOoOyAjN0JENwor56+YID4gY2jFjXU7ICM3QkQ4Civnr5kgPiBnxIFvOyAjN0JEOQor56+aID4gZsSVaTsgIzdCREEKK+evmyA+IHLDuW87ICM3QkRCCivnr5wgPiB6aMSTbmc7ICM3QkRDCivnr50gPiBnxY11OyAjN0JERAor56+eID4gbmnDqDsgIzdCREUKK+evnyA+IHFpw6BuOyAjN0JERgor56+gID4geGnEg287ICM3QkUwCivnr6EgPiBjdcOgbjsgIzdCRTEKK+evoiA+IGfFjW5nOyAjN0JFMgor56+jID4gcMOhbmc7ICM3QkUzCivnr6QgPiBkxa07ICM3QkU0Civnr6UgPiBsw6w7ICM3QkU1Civnr6YgPiBiw6w7ICM3QkU2Civnr6cgPiB6aMO6bzsgIzdCRTcKK+evqCA+IGNow7o7ICM3QkU4Civnr6kgPiBzaMSBaTsgIzdCRTkKK+evqiA+IGNow607ICM3QkVBCivnr6sgPiB6aMO6OyAjN0JFQgor56+sID4gcWnEgW5nOyAjN0JFQwor56+tID4gbMOzbmc7ICM3QkVECivnr64gPiBsw6FuOyAjN0JFRQor56+vID4gamnEgW47ICM3QkVGCivnr7AgPiBiw7k7ICM3QkYwCivnr7EgPiBsw607ICM3QkYxCivnr7IgPiBow7lpOyAjN0JGMgor56+zID4gYsOsOyAjN0JGMwor56+0ID4gZMOtOyAjN0JGNAor56+1ID4gY8WNbmc7ICM3QkY1Civnr7YgPiB5xIFuOyAjN0JGNgor56+3ID4gcMOpbmc7ICM3QkY3Civnr7ggPiBzxJNuOyAjN0JGOAor56+5ID4gemh1w6BuOyAjN0JGOQor56+6ID4gcMOhaTsgIzdCRkEKK+evuyA+IHBpw6BvOyAjN0JGQgor56+8ID4gZMWNdTsgIzdCRkMKK+evvSA+IHnFrTsgIzdCRkQKK+evviA+IG1pw6g7ICM3QkZFCivnr78gPiB6aHXEgW47ICM3QkZGCivnsIAgPiB6w6k7ICM3QzAwCivnsIEgPiB4xK07ICM3QzAxCivnsIIgPiBnw7pvOyAjN0MwMgor57CDID4gecOtOyAjN0MwMwor57CEID4gaMO5OyAjN0MwNAor57CFID4gY2jEg247ICM3QzA1CivnsIYgPiBrw7J1OyAjN0MwNgor57CHID4gY8O5OyAjN0MwNwor57CIID4gcMOtbmc7ICM3QzA4CivnsIkgPiBjaMOydTsgIzdDMDkKK+ewiiA+IGrEqzsgIzdDMEEKK+ewiyA+IGfFrWk7ICM3QzBCCivnsIwgPiBzw7k7ICM3QzBDCivnsI0gPiBsxY91OyAjN0MwRAor57COID4gemjDoDsgIzdDMEUKK+ewjyA+IGzDuTsgIzdDMEYKK+ewkCA+IG5pxINuOyAjN0MxMAor57CRID4gc8WrbzsgIzdDMTEKK+ewkiA+IGN1w6BuOyAjN0MxMgor57CUID4gc8WrbzsgIzdDMTQKK+ewlSA+IGzDqDsgIzdDMTUKK+ewliA+IGR1w6BuOyAjN0MxNgor57CYID4geGnEgW87ICM3QzE4CivnsJkgPiBiw7M7ICM3QzE5CivnsJogPiBtw6w7ICM3QzFBCivnsJsgPiBzxKs7ICM3QzFCCivnsJwgPiBkw6BuZzsgIzdDMUMKK+ewnSA+IGxpw6FvOyAjN0MxRAor57CeID4gZMSBbjsgIzdDMUUKK+ewnyA+IGRpw6BuOyAjN0MxRgor57CgID4gZsWtOyAjN0MyMAor57ChID4gamnEg247ICM3QzIxCivnsKIgPiBtxK1uOyAjN0MyMgor57CjID4ga8O5aTsgIzdDMjMKK+ewpCA+IGTDoGk7ICM3QzI0CivnsKUgPiBxacOhbzsgIzdDMjUKK+ewpiA+IGTEk25nOyAjN0MyNgor57CnID4gaHXDoW5nOyAjN0MyNwor57CoID4gc8WtbjsgIzdDMjgKK+ewqSA+IGzDoW87ICM3QzI5CivnsKogPiB6xIFuOyAjN0MyQQor57CrID4geGnEgW87ICM3QzJCCivnsKwgPiBkw7k7ICM3QzJDCivnsK0gPiBzaMOsOyAjN0MyRAor57CuID4gesSBbjsgIzdDMkUKK+ewsCA+IHDDoWk7ICM3QzMwCivnsLIgPiBww6FpOyAjN0MzMgor57CzID4gZ8OgbjsgIzdDMzMKK+ewtCA+IGrDuTsgIzdDMzQKK+ewtSA+IGTDuTsgIzdDMzUKK+ewtiA+IGzDuTsgIzdDMzYKK+ewtyA+IHnDoW47ICM3QzM3CivnsLggPiBiw7I7ICM3QzM4CivnsLkgPiBkxIFuZzsgIzdDMzkKK+ewuiA+IHPDoGk7ICM3QzNBCivnsLsgPiBrxJM7ICM3QzNCCivnsLwgPiBsw7NuZzsgIzdDM0MKK+ewvSA+IHFpxIFuOyAjN0MzRAor57C+ID4gbGnDoW47ICM3QzNFCivnsL8gPiBiw7M7ICM3QzNGCivnsYAgPiB6aMOydTsgIzdDNDAKK+exgSA+IGzDoGk7ICM3QzQxCivnsYMgPiBsw6FuOyAjN0M0Mwor57GEID4ga8O5aTsgIzdDNDQKK+exhSA+IHnDujsgIzdDNDUKK+exhiA+IHl1w6g7ICM3QzQ2CivnsYcgPiBow6FvOyAjN0M0Nwor57GIID4gemjEk247ICM3QzQ4CivnsYkgPiB0w6FpOyAjN0M0OQor57GKID4gdMOsOyAjN0M0QQor57GLID4gbcOtOyAjN0M0Qgor57GMID4gY2jDs3U7ICM3QzRDCivnsY0gPiBqw607ICM3QzRECivnsZAgPiB0w6luZzsgIzdDNTAKK+exkSA+IHpodcOgbjsgIzdDNTEKK+exkiA+IHpow7J1OyAjN0M1Mgor57GTID4gZsSBbjsgIzdDNTMKK+exlCA+IHPFj3U7ICM3QzU0CivnsZUgPiB6aMOydTsgIzdDNTUKK+exlyA+IHpow7pvOyAjN0M1Nwor57GYID4gdMOpbmc7ICM3QzU4CivnsZkgPiBsw7k7ICM3QzU5CivnsZogPiBsw7o7ICM3QzVBCivnsZsgPiBqacSBbjsgIzdDNUIKK+exnCA+IHTDuW87ICM3QzVDCivnsZ0gPiB5w61uZzsgIzdDNUQKK+exniA+IHnDuTsgIzdDNUUKK+exnyA+IGzDoGk7ICM3QzVGCivnsaAgPiBsw7NuZzsgIzdDNjAKK+exoiA+IGxpw6FuOyAjN0M2Mgor57GjID4gbMOhbjsgIzdDNjMKK+expCA+IHFpxIFuOyAjN0M2NAor57GlID4geXXDqDsgIzdDNjUKK+expiA+IHpoxY1uZzsgIzdDNjYKK+expyA+IHHDujsgIzdDNjcKK+exqCA+IGxpw6FuOyAjN0M2OAor57GpID4gYmnEgW47ICM3QzY5CivnsaogPiBkdcOgbjsgIzdDNkEKK+exqyA+IHp1xINuOyAjN0M2Qgor57GsID4gbMOtOyAjN0M2Qwor57GtID4gc8SrOyAjN0M2RAor57GuID4gbMO6bzsgIzdDNkUKK+exryA+IHnDrW5nOyAjN0M2Rgor57GwID4geXXDqDsgIzdDNzAKK+exsSA+IHpow7pvOyAjN0M3MQor57GyID4geMWrOyAjN0M3Mgor57GzID4gbcStOyAjN0M3Mwor57G0ID4gZMOtOyAjN0M3NAor57G1ID4gZsOhbjsgIzdDNzUKK+extiA+IHNoxJNuOyAjN0M3Ngor57G3ID4gemjDqTsgIzdDNzcKK+exuCA+IHNoxJNuOyAjN0M3OAor57G5ID4gbseaOyAjN0M3OQor57G6ID4geGnDqTsgIzdDN0EKK+exuyA+IGzDqGk7ICM3QzdCCivnsbwgPiB4acSBbjsgIzdDN0MKK+exvSA+IHrErTsgIzdDN0QKK+exviA+IG7DrTsgIzdDN0UKK+exvyA+IGPDuW47ICM3QzdGCivnsoEgPiBxacSBbjsgIzdDODEKK+eygyA+IGLErTsgIzdDODMKK+eyhCA+IGLEg247ICM3Qzg0CivnsoUgPiB3w7k7ICM3Qzg1CivnsoYgPiBzaMSBOyAjN0M4Ngor57KHID4ga8SBbmc7ICM3Qzg3CivnsoggPiByxY91OyAjN0M4OAor57KJID4gZsSVbjsgIzdDODkKK+eyiiA+IGLDrDsgIzdDOEEKK+eyiyA+IGPDuWk7ICM3QzhCCivnso0gPiBsw607ICM3QzhECivnso4gPiBjaMStOyAjN0M4RQor57KRID4gYsSBOyAjN0M5MQor57KSID4gbMOsOyAjN0M5Mgor57KTID4gZ8SBbjsgIzdDOTMKK+eylCA+IGrDuTsgIzdDOTQKK+eylSA+IHDDsjsgIzdDOTUKK+eyliA+IG3DsjsgIzdDOTYKK+eylyA+IGPFqzsgIzdDOTcKK+eymCA+IG5pw6FuOyAjN0M5OAor57KZID4gemjDsnU7ICM3Qzk5CivnspogPiBsw607ICM3QzlBCivnspsgPiBzw7k7ICM3QzlCCivnspwgPiB0acOgbzsgIzdDOUMKK+eynSA+IGzDrDsgIzdDOUQKK+eyniA+IHHEqzsgIzdDOUUKK+eynyA+IHPDuTsgIzdDOUYKK+eyoCA+IGjDs25nOyAjN0NBMAor57KhID4gdMOzbmc7ICM3Q0ExCivnsqIgPiB6xKs7ICM3Q0EyCivnsqMgPiBjw6g7ICM3Q0EzCivnsqQgPiB5dcOoOyAjN0NBNAor57KlID4gemjFjXU7ICM3Q0E1CivnsqYgPiBsw6xuOyAjN0NBNgor57KnID4gemh1xIFuZzsgIzdDQTcKK+eyqCA+IGLEg2k7ICM3Q0E4CivnsqogPiBmw6huOyAjN0NBQQor57KuID4gbGnDoW5nOyAjN0NBRQor57KvID4geGnDoG47ICM3Q0FGCivnsrAgPiBmw7o7ICM3Q0IwCivnsrEgPiBsacOhbmc7ICM3Q0IxCivnsrIgPiBjw6BuOyAjN0NCMgor57KzID4gZ8STbmc7ICM3Q0IzCivnsrQgPiBsxK07ICM3Q0I0CivnsrUgPiB5dcOoOyAjN0NCNQor57K2ID4gbMO5OyAjN0NCNgor57K3ID4gasO6OyAjN0NCNwor57K4ID4gccOtOyAjN0NCOAor57K5ID4gY8O5aTsgIzdDQjkKK+eyuiA+IGLDoGk7ICM3Q0JBCivnsrsgPiB6aMSBbmc7ICM3Q0JCCivnsrwgPiBsw61uOyAjN0NCQwor57K9ID4gesOybmc7ICM3Q0JECivnsr4gPiBqxKtuZzsgIzdDQkUKK+eyvyA+IGfFrW87ICM3Q0JGCivns4EgPiBzxIFuOyAjN0NDMQor57OCID4gc8SDbjsgIzdDQzIKK+ezgyA+IHTDoW5nOyAjN0NDMwor57OEID4gYmnEgW47ICM3Q0M0Civns4UgPiByxY91OyAjN0NDNQor57OGID4gbWnDoG47ICM3Q0M2Civns4cgPiBow7N1OyAjN0NDNwor57OIID4geMWtOyAjN0NDOAor57OJID4gesOybmc7ICM3Q0M5Civns4ogPiBow7o7ICM3Q0NBCivns4sgPiBqacOgbjsgIzdDQ0IKK+ezjCA+IHrDoW47ICM3Q0NDCivns40gPiBjw607ICM3Q0NECivns44gPiBsw607ICM3Q0NFCivns48gPiB4acOoOyAjN0NDRgor57OQID4gZsWrOyAjN0NEMAor57ORID4gbsOsOyAjN0NEMQor57OSID4gYsOoaTsgIzdDRDIKK+ezkyA+IGfFrTsgIzdDRDMKK+ezlCA+IHjErXU7ICM3Q0Q0Civns5UgPiBnxIFvOyAjN0NENQor57OWID4gdMOhbmc7ICM3Q0Q2Civns5cgPiBxxK11OyAjN0NENwor57OZID4gY8SBbzsgIzdDRDkKK+ezmiA+IHpodcSBbmc7ICM3Q0RBCivns5sgPiB0w6FuZzsgIzdDREIKK+eznCA+IG3DrTsgIzdDREMKK+eznSA+IHPEgW47ICM3Q0RECivns54gPiBmw6huOyAjN0NERQor57OfID4gesSBbzsgIzdDREYKK+ezoCA+IGvEgW5nOyAjN0NFMAor57OhID4gamnDoG5nOyAjN0NFMQor57OiID4gbcOzOyAjN0NFMgor57OjID4gc8SDbjsgIzdDRTMKK+ezpCA+IHPEg247ICM3Q0U0Civns6UgPiBuw7lvOyAjN0NFNQor57OmID4geMSrOyAjN0NFNgor57OnID4gbGnDoW5nOyAjN0NFNwor57OoID4gamnDoG5nOyAjN0NFOAor57OpID4ga3XDoGk7ICM3Q0U5Civns6ogPiBiw7M7ICM3Q0VBCivns6sgPiBodcOhbjsgIzdDRUIKK+ezrSA+IHrDsm5nOyAjN0NFRAor57OuID4geGnDoG47ICM3Q0VFCivns68gPiBuw7lvOyAjN0NFRgor57OwID4gdHXDoW47ICM3Q0YwCivns7EgPiBuacOoOyAjN0NGMQor57OyID4gbMOsOyAjN0NGMgor57OzID4gesO5bzsgIzdDRjMKK+eztCA+IGTDrTsgIzdDRjQKK+eztSA+IG5pw6g7ICM3Q0Y1Civns7YgPiB0acOgbzsgIzdDRjYKK+eztyA+IGzDoW47ICM3Q0Y3Civns7ggPiBtw6w7ICM3Q0Y4Civns7kgPiBqacSDbycgJ3PEqycgJ3DDoW5nOyAjN0NGOQor57O6ID4gasSrdTsgIzdDRkEKK+ezuyA+IHjDrDsgIzdDRkIKK+ezvCA+IGfFjW5nOyAjN0NGQwor57O9ID4gemjElW5nOyAjN0NGRAor57O+ID4gasSrdTsgIzdDRkUKK+ezvyA+IHnDsnU7ICM3Q0ZGCivntIAgPiBqw6w7ICM3RDAwCivntIEgPiBjaMOgOyAjN0QwMQor57SCID4gemjDsnU7ICM3RDAyCivntIMgPiB4w7puOyAjN0QwMwor57SEID4geXXEkzsgIzdEMDQKK+e0hSA+IGjDs25nOyAjN0QwNQor57SGID4gecWrOyAjN0QwNgor57SHID4gaMOpOyAjN0QwNwor57SIID4gd8OhbjsgIzdEMDgKK+e0iSA+IHLDqG47ICM3RDA5CivntIogPiB3w6huOyAjN0QwQQor57SLID4gd8OpbjsgIzdEMEIKK+e0jCA+IHHDrXU7ICM3RDBDCivntI0gPiBuw6A7ICM3RDBECivntI4gPiB6xKs7ICM3RDBFCivntI8gPiB0xY91OyAjN0QwRgor57SQID4gbsStdTsgIzdEMTAKK+e0kSA+IGbDs3U7ICM3RDExCivntJIgPiBqacOoOyAjN0QxMgor57STID4gc2jFqzsgIzdEMTMKK+e0lCA+IGNow7puOyAjN0QxNAor57SVID4gcMOtOyAjN0QxNQor57SWID4gecStbjsgIzdEMTYKK+e0lyA+IHNoxIE7ICM3RDE3CivntJggPiBow7NuZzsgIzdEMTgKK+e0mSA+IHpoxK07ICM3RDE5CivntJogPiBqw607ICM3RDFBCivntJsgPiBmxJNuOyAjN0QxQgor57ScID4gecO6bjsgIzdEMUMKK+e0nSA+IHLDqW47ICM3RDFECivntJ4gPiBkxINuOyAjN0QxRQor57SfID4gasSrbjsgIzdEMUYKK+e0oCA+IHPDuTsgIzdEMjAKK+e0oSA+IGbEg25nOyAjN0QyMQor57SiID4gc8WtbzsgIzdEMjIKK+e0oyA+IGPDuWk7ICM3RDIzCivntKQgPiBqxK11OyAjN0QyNAor57SlID4gemjDoTsgIzdEMjUKK+e0pyA+IGrErW47ICM3RDI3CivntKggPiBmw7k7ICM3RDI4CivntKkgPiB6aMOsOyAjN0QyOQor57SqID4gY8StOyAjN0QyQQor57SrID4gesStOyAjN0QyQgor57SsID4gY2jDs3U7ICM3RDJDCivntK0gPiBow7NuZzsgIzdEMkQKK+e0riA+IHpow6E7ICM3RDJFCivntK8gPiBsw6hpOyAjN0QyRgor57SwID4geMOsOyAjN0QzMAor57SxID4gZsO6OyAjN0QzMQor57SyID4geGnDqDsgIzdEMzIKK+e0syA+IHNoxJNuOyAjN0QzMwor57S0ID4gYsOoaTsgIzdEMzQKK+e0tSA+IHpow7k7ICM3RDM1CivntLYgPiBxxa07ICM3RDM2CivntLcgPiBsw61uZzsgIzdEMzcKK+e0uCA+IHpow7k7ICM3RDM4CivntLkgPiBzaMOgbzsgIzdEMzkKK+e0uiA+IGfDoG47ICM3RDNBCivntLsgPiB5xIFuZzsgIzdEM0IKK+e0vCA+IGbDujsgIzdEM0MKK+e0vSA+IHTDum87ICM3RDNECivntL4gPiB6aMSVbjsgIzdEM0UKK+e0vyA+IGTDoGk7ICM3RDNGCivntYAgPiB6aMO6bzsgIzdENDAKK+e1gSA+IHNoxKs7ICM3RDQxCivntYIgPiB6aMWNbmc7ICM3RDQyCivntYMgPiB4acOhbjsgIzdENDMKK+e1hCA+IHrFrTsgIzdENDQKK+e1hSA+IGrErW9uZzsgIzdENDUKK+e1hiA+IGLDoG47ICM3RDQ2CivntYcgPiBqw7k7ICM3RDQ3CivntYggPiBtw7I7ICM3RDQ4CivntYkgPiBzaMO5OyAjN0Q0OQor57WKID4gesO5aTsgIzdENEEKK+e1jCA+IGrEq25nOyAjN0Q0Qwor57WNID4gcsOpbjsgIzdENEQKK+e1jiA+IGjDqG5nOyAjN0Q0RQor57WPID4geGnDqDsgIzdENEYKK+e1kCA+IGppw6k7ICM3RDUwCivntZEgPiB6aMWrOyAjN0Q1MQor57WSID4gY2jDs3U7ICM3RDUyCivntZMgPiBndcOgOyAjN0Q1Mwor57WUID4gYsSDaTsgIzdENTQKK+e1lSA+IGp1w6k7ICM3RDU1CivntZYgPiBrdcOgbmc7ICM3RDU2CivntZcgPiBow7o7ICM3RDU3CivntZggPiBjw6w7ICM3RDU4CivntZkgPiBnxJNuZzsgIzdENTkKK+e1miA+IGfEk25nOyAjN0Q1QQor57WbID4gdMSBbzsgIzdENUIKK+e1nCA+IHhpw6k7ICM3RDVDCivntZ0gPiBrw7k7ICM3RDVECivntZ4gPiBqacSDbzsgIzdENUUKK+e1nyA+IHF1xIFuOyAjN0Q1Rgor57WgID4gZ8SDaTsgIzdENjAKK+e1oSA+IGzDuW87ICM3RDYxCivntaIgPiB4dcOgbjsgIzdENjIKK+e1oyA+IGLEq25nOyAjN0Q2Mwor57WkID4geGnDoG47ICM3RDY0CivntaUgPiBmw7o7ICM3RDY1CivntaYgPiBnxJVpOyAjN0Q2Ngor57WnID4gdMOzbmc7ICM3RDY3CivntaggPiByw7NuZzsgIzdENjgKK+e1qSA+IHRpw6BvOyAjN0Q2OQor57WqID4gecSrbjsgIzdENkEKK+e1qyA+IGzElWk7ICM3RDZCCivntawgPiB4acOoOyAjN0Q2Qwor57WtID4gcXXDoG47ICM3RDZECivnta4gPiB4w7k7ICM3RDZFCivnta8gPiBsx5xuOyAjN0Q2Rgor57WwID4gZGnDqTsgIzdENzAKK+e1sSA+IHTFj25nOyAjN0Q3MQor57WyID4gc8SrOyAjN0Q3Mgor57WzID4gamnDoG5nOyAjN0Q3Mwor57W0ID4geGnDoW5nOyAjN0Q3NAor57W1ID4gaMO5aTsgIzdENzUKK+e1tiA+IGp1w6k7ICM3RDc2CivntbcgPiB6aMOtOyAjN0Q3Nwor57W4ID4gamnEg247ICM3RDc4CivntbkgPiBqdcOgbjsgIzdENzkKK+e1uiA+IGNoxKs7ICM3RDdBCivntbsgPiBtacSDbjsgIzdEN0IKK+e1vCA+IHpoxJVuOyAjN0Q3Qwor57W9ID4gbMeaOyAjN0Q3RAor57W+ID4gY2jDqW5nOyAjN0Q3RQor57W/ID4gccOtdTsgIzdEN0YKK+e2gCA+IHNoxas7ICM3RDgwCivntoEgPiBixINuZzsgIzdEODEKK+e2giA+IHTFj25nOyAjN0Q4Mgor57aDID4geGnEgW87ICM3RDgzCivntoQgPiB3w6BuOyAjN0Q4NAor57aFID4gccSrbjsgIzdEODUKK+e2hiA+IGfElW5nOyAjN0Q4Ngor57aHID4geMStdTsgIzdEODcKK+e2iCA+IHTDrTsgIzdEODgKK+e2iSA+IHjDrHU7ICM3RDg5CivntoogPiB4acOpOyAjN0Q4QQor57aLID4gaMOzbmc7ICM3RDhCCivntowgPiB4w6w7ICM3RDhDCivnto0gPiBmw7o7ICM3RDhECivnto4gPiB0xKtuZzsgIzdEOEUKK+e2jyA+IHPFq2k7ICM3RDhGCivntpAgPiBkw7lpOyAjN0Q5MAor57aRID4ga8WtbjsgIzdEOTEKK+e2kiA+IGbFqzsgIzdEOTIKK+e2kyA+IGrEq25nOyAjN0Q5Mwor57aUID4gaMO5OyAjN0Q5NAor57aVID4gemjEqzsgIzdEOTUKK+e2liA+IHnDoW47ICM3RDk2CivntpcgPiBqxK1vbmc7ICM3RDk3CivntpggPiBmw6luZzsgIzdEOTgKK+e2mSA+IGrDrDsgIzdEOTkKK+e2nCA+IHrDsm5nOyAjN0Q5Qwor57adID4gbMOtbjsgIzdEOUQKK+e2niA+IGTFrW87ICM3RDlFCivntp8gPiBsw6w7ICM3RDlGCivntqAgPiBsx5w7ICM3REEwCivntqEgPiBsacOhbmc7ICM3REExCivntqIgPiBjaMOzdTsgIzdEQTIKK+e2oyA+IHF1xINuOyAjN0RBMwor57akID4gc2jDoG87ICM3REE0CivntqUgPiBxw6w7ICM3REE1CivntqYgPiBxw607ICM3REE2CivntqcgPiB6aMWtbjsgIzdEQTcKK+e2qCA+IHHDrTsgIzdEQTgKK+e2qSA+IHfEg247ICM3REE5CivntqogPiBxacOgbjsgIzdEQUEKK+e2qyA+IHhpw6BuOyAjN0RBQgor57asID4gc2jDsnU7ICM3REFDCivntq0gPiB3w6lpOyAjN0RBRAor57auID4gccStOyAjN0RBRQor57avID4gdMOhbzsgIzdEQUYKK+e2sCA+IHfEg247ICM3REIwCivntrEgPiBnxIFuZzsgIzdEQjEKK+e2siA+IHfEg25nOyAjN0RCMgor57azID4gYsSTbmc7ICM3REIzCivntrQgPiB6aMO5aTsgIzdEQjQKK+e2tSA+IGPEg2k7ICM3REI1CivntrYgPiBnxa1vOyAjN0RCNgor57a3ID4gY8O5aTsgIzdEQjcKK+e2uCA+IGzDum47ICM3REI4CivntrkgPiBsxK11OyAjN0RCOQor57a6ID4gccStOyAjN0RCQQor57a7ID4gemjDoG47ICM3REJCCivntrwgPiBixJNpOyAjN0RCQwor57a9ID4gY2jDuW87ICM3REJECivntr4gPiBsw61uZzsgIzdEQkUKK+e2vyA+IG1pw6FuOyAjN0RCRgor57eAID4gccSrOyAjN0RDMAor57eBID4gcWnDqDsgIzdEQzEKK+e3giA+IHTEgW47ICM3REMyCivnt4MgPiB6xY1uZzsgIzdEQzMKK+e3hCA+IGfFrW47ICM3REM0Civnt4UgPiB6xY11OyAjN0RDNQor57eGID4gecOsOyAjN0RDNgor57eHID4gesSrOyAjN0RDNwor57eIID4geMOsbmc7ICM3REM4Civnt4kgPiBsacSDbmc7ICM3REM5Civnt4ogPiBqxK1uOyAjN0RDQQor57eLID4gZsSTaTsgIzdEQ0IKK+e3jCA+IHLDumk7ICM3RENDCivnt40gPiBtw61uOyAjN0RDRAor57eOID4gecO5OyAjN0RDRQor57ePID4gesWPbmc7ICM3RENGCivnt5AgPiBmw6FuOyAjN0REMAor57eRID4gbMecOyAjN0REMQor57eSID4geMO5OyAjN0REMgor57eTID4geWluZ2w7ICM3REQzCivnt5QgPiB6aMOgbmc7ICM3REQ0Civnt5YgPiB4w7k7ICM3REQ2Civnt5cgPiB4acSBbmc7ICM3REQ3Civnt5ggPiBqacSBbjsgIzdERDgKK+e3mSA+IGvDqDsgIzdERDkKK+e3miA+IHhpw6BuOyAjN0REQQor57ebID4gcnXEg247ICM3RERCCivnt5wgPiBtacOhbjsgIzdEREMKK+e3nSA+IHHDrDsgIzdEREQKK+e3niA+IGR1w6BuOyAjN0RERQor57efID4gemjDsm5nOyAjN0RERgor57egID4gZMOsOyAjN0RFMAor57ehID4gbcOtbjsgIzdERTEKK+e3oiA+IG1pw6FvOyAjN0RFMgor57ejID4geXXDoW47ICM3REUzCivnt6QgPiB4acOoOyAjN0RFNAor57elID4gYsSDbzsgIzdERTUKK+e3piA+IHPEqzsgIzdERTYKK+e3pyA+IHHEq3U7ICM3REU3Civnt6ggPiBiacSBbjsgIzdERTgKK+e3qSA+IGh1xINuOyAjN0RFOQor57eqID4gZ8STbmc7ICM3REVBCivnt6sgPiBjxY1uZzsgIzdERUIKK+e3rCA+IG1pxINuOyAjN0RFQwor57etID4gd8OoaTsgIzdERUQKK+e3riA+IGbDuTsgIzdERUUKK+e3ryA+IHfElWk7ICM3REVGCivnt7AgPiB5w7o7ICM3REYwCivnt7EgPiBnxY11OyAjN0RGMQor57eyID4gbWnEg287ICM3REYyCivnt7MgPiB4acOpOyAjN0RGMwor57e0ID4gbGnDoG47ICM3REY0Civnt7UgPiB6xY1uZzsgIzdERjUKK+e3tiA+IGJpw6BuOyAjN0RGNgor57e3ID4gecO5bjsgIzdERjcKK+e3uCA+IHnEq247ICM3REY4Civnt7kgPiB0w607ICM3REY5Civnt7ogPiBndcSBOyAjN0RGQQor57e7ID4gemjDrDsgIzdERkIKK+e3vCA+IHnFq247ICM3REZDCivnt70gPiBjaMSTbmc7ICM3REZECivnt74gPiBjaMOhbjsgIzdERkUKK+e3vyA+IGTDoGk7ICM3REZGCivnuIAgPiB4acOhOyAjN0UwMAor57iBID4geXXDoW47ICM3RTAxCivnuIIgPiB6xY9uZzsgIzdFMDIKK+e4gyA+IHjFqzsgIzdFMDMKK+e4hiA+IGfEk25nOyAjN0UwNgor57iIID4gecOtbmc7ICM3RTA4CivnuIkgPiBqw6xuOyAjN0UwOQor57iKID4gecOsOyAjN0UwQQor57iLID4gemjDuWk7ICM3RTBCCivnuIwgPiBuw6w7ICM3RTBDCivnuI0gPiBixIFuZzsgIzdFMEQKK+e4jiA+IGfFrTsgIzdFMEUKK+e4jyA+IHDDoW47ICM3RTBGCivnuJAgPiB6aMOydTsgIzdFMTAKK+e4kSA+IGppxIFuOyAjN0UxMQor57iSID4gY8WtbzsgIzdFMTIKK+e4kyA+IHF1xINuOyAjN0UxMwor57iUID4gc2h1xINuZzsgIzdFMTQKK+e4lSA+IHnFq247ICM3RTE1CivnuJYgPiB4acOhOyAjN0UxNgor57iXID4gc2h1xIFpOyAjN0UxNwor57iYID4geMSrOyAjN0UxOAor57iZID4gcsOzbmc7ICM3RTE5CivnuJogPiB0xIFvOyAjN0UxQQor57ibID4gZsO6OyAjN0UxQgor57icID4gecO6bjsgIzdFMUMKK+e4nSA+IHpoxJNuOyAjN0UxRAor57ieID4gZ8SDbzsgIzdFMUUKK+e4nyA+IHLDuTsgIzdFMUYKK+e4oCA+IGjDujsgIzdFMjAKK+e4oSA+IHrEg2k7ICM3RTIxCivnuKIgPiB0w6luZzsgIzdFMjIKK+e4oyA+IHhpw6BuOyAjN0UyMwor57ikID4gc8O5OyAjN0UyNAor57ilID4gemjElW47ICM3RTI1CivnuKYgPiB6w7JuZzsgIzdFMjYKK+e4pyA+IHTEgW87ICM3RTI3CivnuKkgPiBjw6BpOyAjN0UyOQor57iqID4gYsOsOyAjN0UyQQor57irID4gZsOpbmc7ICM3RTJCCivnuKwgPiBjw7k7ICM3RTJDCivnuK0gPiBsw607ICM3RTJECivnuK4gPiBzxatvOyAjN0UyRQor57ivID4gecStbjsgIzdFMkYKK+e4sCA+IHjErTsgIzdFMzAKK+e4sSA+IHrDsm5nOyAjN0UzMQor57iyID4gbMOpaTsgIzdFMzIKK+e4syA+IHpodcOgbjsgIzdFMzMKK+e4tCA+IHFpxIFuOyAjN0UzNAor57i1ID4gbcOgbjsgIzdFMzUKK+e4tiA+IHpow607ICM3RTM2CivnuLcgPiBsx5o7ICM3RTM3CivnuLggPiBtw7I7ICM3RTM4CivnuLkgPiBwacSDbzsgIzdFMzkKK+e4uiA+IGxpw6FuOyAjN0UzQQor57i7ID4gbcOtOyAjN0UzQgor57i8ID4geHXDoG47ICM3RTNDCivnuL0gPiB6xY9uZzsgIzdFM0QKK+e4viA+IGrEqzsgIzdFM0UKK+e4vyA+IHNoxIFuOyAjN0UzRgor57mAID4gc8O5aTsgIzdFNDAKK+e5gSA+IGbDoW47ICM3RTQxCivnuYIgPiBzaHXDoGk7ICM3RTQyCivnuYMgPiBixJNuZzsgIzdFNDMKK+e5hCA+IHnEqzsgIzdFNDQKK+e5hSA+IHPEgW87ICM3RTQ1CivnuYYgPiBtw7N1OyAjN0U0Ngor57mHID4gemjDsnU7ICM3RTQ3CivnuYggPiBxacSDbmc7ICM3RTQ4CivnuYkgPiBow7puOyAjN0U0OQor57mLID4geMOsOyAjN0U0Qgor57mNID4geMOsdTsgIzdFNEQKK+e5jiA+IHLDoW47ICM3RTRFCivnuY8gPiB4dcOgbjsgIzdFNEYKK+e5kCA+IGjDuWk7ICM3RTUwCivnuZEgPiBxacSBbzsgIzdFNTEKK+e5kiA+IHrEk25nOyAjN0U1Mgor57mTID4gesWtbzsgIzdFNTMKK+e5lCA+IHpoxKs7ICM3RTU0CivnuZUgPiBzaMOgbjsgIzdFNTUKK+e5liA+IHPEg247ICM3RTU2CivnuZcgPiBsw61uOyAjN0U1Nwor57mYID4gecO5OyAjN0U1OAor57mZID4gZsSBbjsgIzdFNTkKK+e5miA+IGxpw6FvOyAjN0U1QQor57mbID4gY2jDuW87ICM3RTVCCivnuZwgPiB6xatuOyAjN0U1Qwor57mdID4gamnDoG47ICM3RTVECivnuZ4gPiByw6BvOyAjN0U1RQor57mfID4gY2jEg247ICM3RTVGCivnuaAgPiByxa1pOyAjN0U2MAor57mhID4geMOsdTsgIzdFNjEKK+e5oiA+IGjDuWk7ICM3RTYyCivnuaMgPiBodcOgOyAjN0U2Mwor57mkID4genXEg247ICM3RTY0CivnuaUgPiB4xKs7ICM3RTY1CivnuaYgPiBxacSDbmc7ICM3RTY2CivnuaggPiBkw6E7ICM3RTY4CivnuakgPiBzaMOpbmc7ICM3RTY5CivnuaogPiBow7lpOyAjN0U2QQor57mrID4geMOsOyAjN0U2Qgor57msID4gc8OoOyAjN0U2Qwor57mtID4gamnEg247ICM3RTZECivnua4gPiBqacSBbmc7ICM3RTZFCivnua8gPiBodcOhbjsgIzdFNkYKK+e5sCA+IHrEg287ICM3RTcwCivnubEgPiBjxY1uZzsgIzdFNzEKK+e5siA+IGppw6g7ICM3RTcyCivnubMgPiBqacSDbzsgIzdFNzMKK+e5tCA+IGLDsjsgIzdFNzQKK+e5tSA+IGNow6FuOyAjN0U3NQor57m2ID4gecOsOyAjN0U3Ngor57m3ID4gbsOhbzsgIzdFNzcKK+e5uCA+IHPDuWk7ICM3RTc4CivnubkgPiB5w6w7ICM3RTc5CivnubogPiBzaMSDaTsgIzdFN0EKK+e5uyA+IHjFqzsgIzdFN0IKK+e5vCA+IGrDrDsgIzdFN0MKK+e5vSA+IGLEq247ICM3RTdECivnub4gPiBxacSDbjsgIzdFN0UKK+e5vyA+IGzDoW47ICM3RTdGCivnuoAgPiBww7o7ICM3RTgwCivnuoEgPiB4xatuOyAjN0U4MQor57qCID4genXEg247ICM3RTgyCivnuoMgPiBxw607ICM3RTgzCivnuoQgPiBww6luZzsgIzdFODQKK+e6hSA+IGzDrDsgIzdFODUKK+e6hiA+IG3DsjsgIzdFODYKK+e6hyA+IGzDqGk7ICM3RTg3CivnuoggPiB4acOpOyAjN0U4OAor57qJID4genXEg247ICM3RTg5CivnuoogPiBrdcOgbmc7ICM3RThBCivnuosgPiB5xY11OyAjN0U4Qgor57qMID4geMO5OyAjN0U4Qwor57qNID4gbMOpaTsgIzdFOEQKK+e6jiA+IHhpxIFuOyAjN0U4RQor57qPID4gY2jDoW47ICM3RThGCivnupEgPiBsw7o7ICM3RTkxCivnupIgPiBjaMOhbjsgIzdFOTIKK+e6kyA+IHnEq25nOyAjN0U5Mwor57qUID4gY8OhaTsgIzdFOTQKK+e6lSA+IHhpxIFuZzsgIzdFOTUKK+e6liA+IHhpxIFuOyAjN0U5Ngor57qXID4gesWraTsgIzdFOTcKK+e6mCA+IHp1xINuOyAjN0U5OAor57qZID4gbMO5bzsgIzdFOTkKK+e6miA+IHjErTsgIzdFOUEKK+e6myA+IGTDoG87ICM3RTlCCivnupwgPiBsw6BuOyAjN0U5Qwor57qdID4gbMOpaTsgIzdFOUQKK+e6niA+IGxpw6BuOyAjN0U5RQor57qfID4gc8SrOyAjN0U5Rgor57qgID4gasSrdTsgIzdFQTAKK+e6oSA+IHnFqzsgIzdFQTEKK+e6oiA+IGjDs25nOyAjN0VBMgor57qjID4gemjDsnU7ICM3RUEzCivnuqQgPiB4acSBbjsgIzdFQTQKK+e6pSA+IGjDqTsgIzdFQTUKK+e6piA+IHl1xJM7ICM3RUE2CivnuqcgPiBqw607ICM3RUE3CivnuqggPiB3w6FuOyAjN0VBOAor57qpID4ga3XDoG5nOyAjN0VBOQor57qqID4gasOsOyAjN0VBQQor57qrID4gcsOobjsgIzdFQUIKK+e6rCA+IHfElWk7ICM3RUFDCivnuq0gPiB5w7puOyAjN0VBRAor57quID4gaMOzbmc7ICM3RUFFCivnuq8gPiBjaMO6bjsgIzdFQUYKK+e6sCA+IHDDrTsgIzdFQjAKK+e6sSA+IHNoxIE7ICM3RUIxCivnurIgPiBnxIFuZzsgIzdFQjIKK+e6syA+IG7DoDsgIzdFQjMKK+e6tCA+IHLDqW47ICM3RUI0CivnurUgPiB6w7JuZzsgIzdFQjUKK+e6tiA+IGzDum47ICM3RUI2CivnurcgPiBmxJNuOyAjN0VCNwor57q4ID4gemjErTsgIzdFQjgKK+e6uSA+IHfDqW47ICM3RUI5CivnurogPiBmxINuZzsgIzdFQkEKK+e6uyA+IHpow7k7ICM3RUJCCivnurwgPiB5xK1uOyAjN0VCQwor57q9ID4gbsStdTsgIzdFQkQKK+e6viA+IHNoxas7ICM3RUJFCivnur8gPiB4acOgbjsgIzdFQkYKK+e7gCA+IGfDoG47ICM3RUMwCivnu4EgPiB4acOoOyAjN0VDMQor57uCID4gZsO6OyAjN0VDMgor57uDID4gbGnDoG47ICM3RUMzCivnu4QgPiB6xa07ICM3RUM0Civnu4UgPiBzaMSTbjsgIzdFQzUKK+e7hiA+IHjDrDsgIzdFQzYKK+e7hyA+IHpoxKs7ICM3RUM3Civnu4ggPiB6aMWNbmc7ICM3RUM4Civnu4kgPiB6aMOydTsgIzdFQzkKK+e7iiA+IGLDoG47ICM3RUNBCivnu4sgPiBmw7o7ICM3RUNCCivnu4wgPiB6aMO6bzsgIzdFQ0MKK+e7jSA+IHNow6BvOyAjN0VDRAor57uOID4gecOsOyAjN0VDRQor57uPID4gasSrbmc7ICM3RUNGCivnu5AgPiBkw6BpOyAjN0VEMAor57uRID4gYsSDbmc7ICM3RUQxCivnu5IgPiByw7NuZzsgIzdFRDIKK+e7kyA+IGppw6k7ICM3RUQzCivnu5QgPiBrw7k7ICM3RUQ0Civnu5UgPiByw6BvOyAjN0VENQor57uWID4gZGnDqTsgIzdFRDYKK+e7lyA+IGjDqG5nOyAjN0VENwor57uYID4gaMO5aTsgIzdFRDgKK+e7mSA+IGfElWk7ICM3RUQ5Civnu5ogPiB4dcOgbjsgIzdFREEKK+e7myA+IGppw6BuZzsgIzdFREIKK+e7nCA+IGzDuW87ICM3RURDCivnu50gPiBqdcOpOyAjN0VERAor57ueID4gamnEg287ICM3RURFCivnu58gPiB0xY9uZzsgIzdFREYKK+e7oCA+IGfElW5nOyAjN0VFMAor57uhID4geGnEgW87ICM3RUUxCivnu6IgPiBqdcOgbjsgIzdFRTIKK+e7oyA+IHjDrHU7ICM3RUUzCivnu6QgPiB4w6w7ICM3RUU0Civnu6UgPiBzxatpOyAjN0VFNQor57umID4gdMSBbzsgIzdFRTYKK+e7pyA+IGrDrDsgIzdFRTcKK+e7qCA+IHTDrTsgIzdFRTgKK+e7qSA+IGrEqzsgIzdFRTkKK+e7qiA+IHjDuTsgIzdFRUEKK+e7qyA+IGzDrW5nOyAjN0VFQgor57utID4geMO5OyAjN0VFRAor57uuID4gccStOyAjN0VFRQor57uvID4gZsSTaTsgIzdFRUYKK+e7sCA+IGNow7lvOyAjN0VGMAor57uxID4gemjEg25nOyAjN0VGMQor57uyID4gZ8WtbjsgIzdFRjIKK+e7syA+IHNow6luZzsgIzdFRjMKK+e7tCA+IHfDqWk7ICM3RUY0Civnu7UgPiBtacOhbjsgIzdFRjUKK+e7tiA+IHNow7J1OyAjN0VGNgor57u3ID4gYsSTbmc7ICM3RUY3Civnu7ggPiBjaMOzdTsgIzdFRjgKK+e7uSA+IHTDoW87ICM3RUY5Civnu7ogPiBsxK11OyAjN0VGQQor57u7ID4gcXXEg247ICM3RUZCCivnu7wgPiB6w7JuZzsgIzdFRkMKK+e7vSA+IHpow6BuOyAjN0VGRAor57u+ID4gd8SDbjsgIzdFRkUKK+e7vyA+IGzHnDsgIzdFRkYKK+e8gCA+IHpow7lpOyAjN0YwMAor57yBID4gesSrOyAjN0YwMQor57yCID4ga8OoOyAjN0YwMgor57yDID4geGnEgW5nOyAjN0YwMwor57yEID4gamnEgW47ICM3RjA0CivnvIUgPiBtacSDbjsgIzdGMDUKK+e8hiA+IGzDoG47ICM3RjA2CivnvIcgPiB0w607ICM3RjA3CivnvIggPiBtacSDbzsgIzdGMDgKK+e8iSA+IHHDrDsgIzdGMDkKK+e8iiA+IHnFq247ICM3RjBBCivnvIsgPiBow7lpOyAjN0YwQgor57yMID4gc8SrOyAjN0YwQwor57yNID4gZMWtbzsgIzdGMEQKK+e8jiA+IGR1w6BuOyAjN0YwRQor57yPID4gYmnDoG47ICM3RjBGCivnvJAgPiB4acOgbjsgIzdGMTAKK+e8kSA+IGfFjXU7ICM3RjExCivnvJIgPiB6aMO5aTsgIzdGMTIKK+e8kyA+IGh1xINuOyAjN0YxMwor57yUID4gZMOsOyAjN0YxNAor57yVID4gbMeaOyAjN0YxNQor57yWID4gYmnEgW47ICM3RjE2CivnvJcgPiBtw61uOyAjN0YxNwor57yYID4geXXDoW47ICM3RjE4CivnvJkgPiBqw6xuOyAjN0YxOQor57yaID4gZsO6OyAjN0YxQQor57ybID4gcsO5OyAjN0YxQgor57ycID4gemjEk247ICM3RjFDCivnvJ0gPiBmw6luZzsgIzdGMUQKK+e8niA+IHNodcSBaTsgIzdGMUUKK+e8nyA+IGfEg287ICM3RjFGCivnvKAgPiBjaMOhbjsgIzdGMjAKK+e8oSA+IGzDrTsgIzdGMjEKK+e8oiA+IHnDrDsgIzdGMjIKK+e8oyA+IGppxIFuOyAjN0YyMwor57ykID4gYsSrbjsgIzdGMjQKK+e8pSA+IHBpxINvOyAjN0YyNQor57ymID4gbcOgbjsgIzdGMjYKK+e8pyA+IGzDqWk7ICM3RjI3CivnvKggPiB5xKtuZzsgIzdGMjgKK+e8qSA+IHPFq287ICM3RjI5CivnvKogPiBtw7N1OyAjN0YyQQor57yrID4gc8SBbzsgIzdGMkIKK+e8rCA+IHhpw6k7ICM3RjJDCivnvK0gPiBsacOhbzsgIzdGMkQKK+e8riA+IHNow6BuOyAjN0YyRQor57yvID4gesSTbmc7ICM3RjJGCivnvLAgPiBqacSBbmc7ICM3RjMwCivnvLEgPiBxacSDbjsgIzdGMzEKK+e8siA+IHrEg287ICM3RjMyCivnvLMgPiBodcOhbjsgIzdGMzMKK+e8tCA+IGppxINvOyAjN0YzNAor57y1ID4genXEg247ICM3RjM1CivnvLYgPiBmxY91OyAjN0YzNgor57y3ID4geGnDqDsgIzdGMzcKK+e8uCA+IGfEgW5nOyAjN0YzOAor57y5ID4gZsWPdTsgIzdGMzkKK+e8uiA+IHF1xJM7ICM3RjNBCivnvLsgPiBmxY91OyAjN0YzQgor57y9ID4gYsWNOyAjN0YzRAor57y+ID4gcMOtbmc7ICM3RjNFCivnvL8gPiBow7J1OyAjN0YzRgor572BID4gZ8SBbmc7ICM3RjQxCivnvYIgPiB5xKtuZzsgIzdGNDIKK+e9gyA+IHnEq25nOyAjN0Y0Mwor572EID4gccOsbmc7ICM3RjQ0CivnvYUgPiB4acOgOyAjN0Y0NQor572GID4gZ3XDoG47ICM3RjQ2CivnvYcgPiB6xatuOyAjN0Y0Nwor572IID4gdMOhbjsgIzdGNDgKK+e9iiA+IHHDrDsgIzdGNEEKK+e9iyA+IHfDqG5nOyAjN0Y0Qgor572MID4gecSrbmc7ICM3RjRDCivnvY0gPiBsw6lpOyAjN0Y0RAor572OID4gdMOhbjsgIzdGNEUKK+e9jyA+IGzDujsgIzdGNEYKK+e9kCA+IGd1w6BuOyAjN0Y1MAor572RID4gd8SDbmc7ICM3RjUxCivnvZIgPiB3xINuZzsgIzdGNTIKK+e9kyA+IGfEgW5nOyAjN0Y1Mwor572UID4gd8SDbmc7ICM3RjU0CivnvZUgPiBoxINuOyAjN0Y1NQor572XID4gbMWrbzsgIzdGNTcKK+e9mCA+IGbDujsgIzdGNTgKK+e9mSA+IG3DrTsgIzdGNTkKK+e9miA+IGbDoTsgIzdGNUEKK+e9myA+IGfFqzsgIzdGNUIKK+e9nCA+IHpoxa07ICM3RjVDCivnvZ0gPiBqxas7ICM3RjVECivnvZ4gPiBtw6FvOyAjN0Y1RQor572fID4gZ8WtOyAjN0Y1Rgor572gID4gbcOtbjsgIzdGNjAKK+e9oSA+IGfEgW5nOyAjN0Y2MQor572iID4gYsOgOyAjN0Y2Mgor572jID4gZ3XDoDsgIzdGNjMKK+e9pCA+IHTDrTsgIzdGNjQKK+e9pSA+IGp1w6BuOyAjN0Y2NQor572mID4gZsWrOyAjN0Y2Ngor572nID4gbMOtbjsgIzdGNjcKK+e9qCA+IHnEg247ICM3RjY4CivnvakgPiB6aMOgbzsgIzdGNjkKK+e9qiA+IHrDuWk7ICM3RjZBCivnvasgPiBndcOgOyAjN0Y2Qgor572sID4gemjDum87ICM3RjZDCivnva0gPiB5w7k7ICM3RjZECivnva4gPiB6aMOsOyAjN0Y2RQor572vID4gxINuOyAjN0Y2Rgor572wID4gZsOhOyAjN0Y3MAor572xID4gbsSDbjsgIzdGNzEKK+e9siA+IHNoxa07ICM3RjcyCivnvbMgPiBzxKs7ICM3RjczCivnvbQgPiBww607ICM3Rjc0CivnvbUgPiBtw6A7ICM3Rjc1CivnvbYgPiBsxK11OyAjN0Y3Ngor5723ID4gYsOgOyAjN0Y3Nwor5724ID4gZsOhOyAjN0Y3OAor5725ID4gbMOtOyAjN0Y3OQor5726ID4gY2jEgW87ICM3RjdBCivnvbsgPiB3w6hpOyAjN0Y3Qgor5728ID4gYsOsOyAjN0Y3Qwor5729ID4gasOsOyAjN0Y3RAor572+ID4gesSTbmc7ICM3RjdFCivnvb8gPiB0w7NuZzsgIzdGN0YKK+e+gCA+IGzErXU7ICM3RjgwCivnvoEgPiBqxKs7ICM3RjgxCivnvoIgPiBqdcOgbjsgIzdGODIKK+e+gyA+IG3DrDsgIzdGODMKK+e+hCA+IHpow6BvOyAjN0Y4NAor576FID4gbMO6bzsgIzdGODUKK+e+hiA+IHDDrTsgIzdGODYKK+e+hyA+IGrEqzsgIzdGODcKK+e+iCA+IGrEqzsgIzdGODgKK+e+iSA+IGx1w6FuOyAjN0Y4OQor576KID4gecOhbmc7ICM3RjhBCivnvosgPiBtacSTOyAjN0Y4Qgor576MID4gcWnEgW5nOyAjN0Y4Qwor576NID4gdMOgOyAjN0Y4RAor576OID4gbcSVaTsgIzdGOEUKK+e+jyA+IHnDoW5nOyAjN0Y4Rgor576QID4gecWPdTsgIzdGOTAKK+e+kSA+IHnFj3U7ICM3RjkxCivnvpIgPiBmw6luOyAjN0Y5Mgor576TID4gYsSBOyAjN0Y5Mwor576UID4gZ8SBbzsgIzdGOTQKK+e+lSA+IHnDoG5nOyAjN0Y5NQor576WID4gZ8WtOyAjN0Y5Ngor576XID4gcWnEgW5nOyAjN0Y5Nwor576YID4gesSBbmc7ICM3Rjk4CivnvpkgPiBnxIFvOyAjN0Y5OQor576aID4gbMOtbmc7ICM3RjlBCivnvpsgPiB5w6w7ICM3RjlCCivnvpwgPiB6aMO5OyAjN0Y5Qwor576dID4gZMSrOyAjN0Y5RAor576eID4geMSrdTsgIzdGOUUKK+e+nyA+IHFpxIFuOyAjN0Y5Rgor576gID4gecOtOyAjN0ZBMAor576hID4geGnDoG47ICM3RkExCivnvqIgPiByw7NuZzsgIzdGQTIKK+e+oyA+IHHDum47ICM3RkEzCivnvqQgPiBxw7puOyAjN0ZBNAor576lID4gcWnEgW47ICM3RkE1CivnvqYgPiBodcOhbjsgIzdGQTYKK+e+pyA+IHrFq2k7ICM3RkE3CivnvqggPiB4acOgbjsgIzdGQTgKK+e+qSA+IHnDrDsgIzdGQTkKK+e+qyA+IHFpxIFuZzsgIzdGQUIKK+e+rCA+IHhpw6FuOyAjN0ZBQwor576tID4gecO6OyAjN0ZBRAor576uID4gZ8STbmc7ICM3RkFFCivnvq8gPiBqacOpOyAjN0ZBRgor576wID4gdMSBbmc7ICM3RkIwCivnvrEgPiB5dcOhbjsgIzdGQjEKK+e+siA+IHjEqzsgIzdGQjIKK+e+syA+IGbDoW47ICM3RkIzCivnvrQgPiBzaMSBbjsgIzdGQjQKK+e+tSA+IGbElW47ICM3RkI1CivnvrYgPiBzaMSBbjsgIzdGQjYKK+e+tyA+IGxpxINuOyAjN0ZCNwor5764ID4gbMOpaTsgIzdGQjgKK+e+uSA+IGfEk25nOyAjN0ZCOQor5766ID4gbsOzdTsgIzdGQkEKK+e+uyA+IHFpw6BuZzsgIzdGQkIKK+e+vCA+IGNow6BuOyAjN0ZCQwor5769ID4gecWtOyAjN0ZCRAor576+ID4gZ8Oybmc7ICM3RkJFCivnvr8gPiB5w6w7ICM3RkJGCivnv4AgPiBjaMOzbmc7ICM3RkMwCivnv4EgPiB3xJNuZzsgIzdGQzEKK+e/giA+IGbEk247ICM3RkMyCivnv4MgPiBow7NuZzsgIzdGQzMKK+e/hCA+IGNow6w7ICM3RkM0Civnv4UgPiBjaMOsOyAjN0ZDNQor57+GID4gY8O5aTsgIzdGQzYKK+e/hyA+IGbDujsgIzdGQzcKK+e/iCA+IHhpw6E7ICM3RkM4Civnv4kgPiBwxJVuOyAjN0ZDOQor57+KID4gecOsOyAjN0ZDQQor57+LID4gbMSBOyAjN0ZDQgor57+MID4gecOsOyAjN0ZDQwor57+NID4gcMSrOyAjN0ZDRAor57+OID4gbMOtbmc7ICM3RkNFCivnv48gPiBsw6x1OyAjN0ZDRgor57+QID4gemjDrDsgIzdGRDAKK+e/kSA+IHHDujsgIzdGRDEKK+e/kiA+IHjDrTsgIzdGRDIKK+e/kyA+IHhpw6k7ICM3RkQzCivnv5QgPiB4acOhbmc7ICM3RkQ0Civnv5UgPiB4w6w7ICM3RkQ1Civnv5YgPiB4w6w7ICM3RkQ2Civnv5cgPiBxw607ICM3RkQ3Civnv5ggPiBxacOhbzsgIzdGRDgKK+e/mSA+IGjDuWk7ICM3RkQ5Civnv5ogPiBoxatpOyAjN0ZEQQor57+bID4geGnEgW87ICM3RkRCCivnv5wgPiBzw6g7ICM3RkRDCivnv50gPiBow7NuZzsgIzdGREQKK+e/niA+IGppxIFuZzsgIzdGREUKK+e/nyA+IGTDrTsgIzdGREYKK+e/oCA+IGPDuWk7ICM3RkUwCivnv6EgPiBmxJVpOyAjN0ZFMQor57+iID4gdMSBbzsgIzdGRTIKK+e/oyA+IHNow6A7ICM3RkUzCivnv6QgPiBjaMOsOyAjN0ZFNAor57+lID4gemjDuTsgIzdGRTUKK+e/piA+IGppxINuOyAjN0ZFNgor57+nID4geHXEgW47ICM3RkU3Civnv6ggPiBzaMOsOyAjN0ZFOAor57+pID4gcGnEgW47ICM3RkU5Civnv6ogPiB6xY1uZzsgIzdGRUEKK+e/qyA+IHfDoG47ICM3RkVCCivnv6wgPiBoxatpOyAjN0ZFQwor57+tID4gaMOzdTsgIzdGRUQKK+e/riA+IGjDqTsgIzdGRUUKK+e/ryA+IGjDqDsgIzdGRUYKK+e/sCA+IGjDoG47ICM3RkYwCivnv7EgPiDDoW87ICM3RkYxCivnv7IgPiBwacSBbzsgIzdGRjIKK+e/syA+IHnDrDsgIzdGRjMKK+e/tCA+IGxpw6FuOyAjN0ZGNAor57+1ID4gccO6OyAjN0ZGNQor57+3ID4gbMOtbjsgIzdGRjcKK+e/uCA+IHDElW47ICM3RkY4Civnv7kgPiBxacOhbzsgIzdGRjkKK+e/uiA+IMOhbzsgIzdGRkEKK+e/uyA+IGbEgW47ICM3RkZCCivnv7wgPiB5w6w7ICM3RkZDCivnv70gPiBow7lpOyAjN0ZGRAor57++ID4geHXEgW47ICM3RkZFCivnv78gPiBkw6BvOyAjN0ZGRgor6ICAID4gecOgbzsgIzgwMDAKK+iAgSA+IGzEg287ICM4MDAxCivogIMgPiBrxINvOyAjODAwMwor6ICEID4gbcOgbzsgIzgwMDQKK+iAhSA+IHpoxJU7ICM4MDA1CivogIYgPiBxw607ICM4MDA2CivogIcgPiBnxY91OyAjODAwNwor6ICIID4gZ8WPdTsgIzgwMDgKK+iAiSA+IGfFj3U7ICM4MDA5CivogIogPiBkacOoOyAjODAwQQor6ICLID4gZGnDqDsgIzgwMEIKK+iAjCA+IMOpcjsgIzgwMEMKK+iAjSA+IHNodcSDOyAjODAwRAor6ICOID4gcnXEg247ICM4MDBFCivogI8gPiDDqXI7ICM4MDBGCivogJAgPiBuw6BpOyAjODAxMAor6ICRID4gemh1xIFuOyAjODAxMQor6ICSID4gbMSVaTsgIzgwMTIKK+iAkyA+IHTEq25nOyAjODAxMwor6ICUID4gesStOyAjODAxNAor6ICVID4gZ8STbmc7ICM4MDE1CivogJYgPiBjaMOgbzsgIzgwMTYKK+iAlyA+IGjDoG87ICM4MDE3CivogJggPiB5w7puOyAjODAxOAor6ICZID4gcMOhOyAjODAxOQor6ICaID4gcMSrOyAjODAxQQor6ICbID4gY2jDrTsgIzgwMUIKK+iAnCA+IHPDrDsgIzgwMUMKK+iAnSA+IGNow7o7ICM4MDFECivogJ4gPiBqacSBOyAjODAxRQor6ICfID4gasO5OyAjODAxRgor6ICgID4gaMOpOyAjODAyMAor6IChID4gY2jDujsgIzgwMjEKK+iAoiA+IGzDoG87ICM4MDIyCivogKMgPiBsxa1uOyAjODAyMwor6ICkID4gasOtOyAjODAyNAor6IClID4gdMSDbmc7ICM4MDI1CivogKYgPiDFj3U7ICM4MDI2CivogKcgPiBsw7N1OyAjODAyNwor6ICoID4gbsOydTsgIzgwMjgKK+iAqSA+IGfFjXU7ICM4MDI5CivogKogPiBwxINuZzsgIzgwMkEKK+iAqyA+IHrDqTsgIzgwMkIKK+iArCA+IGzDs3U7ICM4MDJDCivogK0gPiBqxKs7ICM4MDJECivogK4gPiBsw6BvOyAjODAyRQor6ICvID4gaMO5bzsgIzgwMkYKK+iAsCA+IHnFjXU7ICM4MDMwCivogLEgPiBtw7I7ICM4MDMxCivogLIgPiBodcOhaTsgIzgwMzIKK+iAsyA+IMSVcjsgIzgwMzMKK+iAtCA+IHpow6k7ICM4MDM0CivogLUgPiB0xKtuZzsgIzgwMzUKK+iAtiA+IHnDqTsgIzgwMzYKK+iAtyA+IGTEgTsgIzgwMzcKK+iAuCA+IHPFj25nOyAjODAzOAor6IC5ID4gccOtbjsgIzgwMzkKK+iAuiA+IHnDum47ICM4MDNBCivogLsgPiBjaMStOyAjODAzQgor6IC8ID4gZMSBbjsgIzgwM0MKK+iAvSA+IGTEgW47ICM4MDNECivogL4gPiBow7NuZzsgIzgwM0UKK+iAvyA+IGfElW5nOyAjODAzRgor6IGAID4gemjDrTsgIzgwNDAKK+iBgiA+IG5pw6g7ICM4MDQyCivogYMgPiBkxIFuOyAjODA0Mwor6IGEID4gemjElW47ICM4MDQ0CivogYUgPiBjaMOoOyAjODA0NQor6IGGID4gbMOtbmc7ICM4MDQ2CivogYcgPiB6aMSTbmc7ICM4MDQ3CivogYggPiB5xY91OyAjODA0OAor6IGJID4gd8SBOyAjODA0OQor6IGKID4gbGnDoW87ICM4MDRBCivogYsgPiBsw7NuZzsgIzgwNEIKK+iBjCA+IHpow607ICM4MDRDCivogY0gPiBuw61uZzsgIzgwNEQKK+iBjiA+IHRpxIFvOyAjODA0RQor6IGPID4gw6lyOyAjODA0Rgor6IGQID4gecOgOyAjODA1MAor6IGRID4gZGnDqTsgIzgwNTEKK+iBkiA+IGd1xIE7ICM4MDUyCivogZQgPiBsacOhbjsgIzgwNTQKK+iBlSA+IGjDoG87ICM4MDU1CivogZYgPiBzaMOobmc7ICM4MDU2CivogZcgPiBsacOoOyAjODA1Nwor6IGYID4gcMOsbjsgIzgwNTgKK+iBmSA+IGrEq25nOyAjODA1OQor6IGaID4gasO5OyAjODA1QQor6IGbID4gYsOsOyAjODA1Qgor6IGcID4gZMStOyAjODA1Qwor6IGdID4gZ8O6bzsgIzgwNUQKK+iBniA+IHfDqW47ICM4MDVFCivogZ8gPiB4w7k7ICM4MDVGCivogaAgPiBww61uZzsgIzgwNjAKK+iBoSA+IGPFjW5nOyAjODA2MQor6IGkID4gdMOtbmc7ICM4MDY0CivogaUgPiB5xa07ICM4MDY1CivogaYgPiBjxY1uZzsgIzgwNjYKK+iBpyA+IGvDumk7ICM4MDY3CivogakgPiBrw7lpOyAjODA2OQor6IGqID4gY8WNbmc7ICM4MDZBCivogasgPiBsacOhbjsgIzgwNkIKK+iBrCA+IHfElW5nOyAjODA2Qwor6IGtID4ga8O5aTsgIzgwNkQKK+iBriA+IGxpw6FuOyAjODA2RQor6IGvID4gbGnDoW47ICM4MDZGCivogbAgPiBjxY1uZzsgIzgwNzAKK+iBsSA+IMOhbzsgIzgwNzEKK+iBsiA+IHNoxJNuZzsgIzgwNzIKK+iBsyA+IHPFj25nOyAjODA3Mwor6IG0ID4gdMSrbmc7ICM4MDc0CivogbUgPiBrw7lpOyAjODA3NQor6IG2ID4gbmnDqDsgIzgwNzYKK+iBtyA+IHpow607ICM4MDc3CivogbggPiBkxIFuOyAjODA3OAor6IG5ID4gbsOtbmc7ICM4MDc5CivogbogPiBxaWU7ICM4MDdBCivogbsgPiBqxKs7ICM4MDdCCivogbwgPiB0xKtuZzsgIzgwN0MKK+iBvSA+IHTEq25nOyAjODA3RAor6IG+ID4gbMOzbmc7ICM4MDdFCivogb8gPiB5w7k7ICM4MDdGCivogoAgPiB5w7k7ICM4MDgwCivogoEgPiB6aMOgbzsgIzgwODEKK+iCgiA+IHPDrDsgIzgwODIKK+iCgyA+IHPDuTsgIzgwODMKK+iChCA+IHnDrDsgIzgwODQKK+iChSA+IHPDuTsgIzgwODUKK+iChiA+IHPDrDsgIzgwODYKK+iChyA+IHpow6BvOyAjODA4Nwor6IKIID4gemjDoG87ICM4MDg4CivogokgPiByw7J1OyAjODA4OQor6IKKID4gecOsOyAjODA4QQor6IKLID4gbMOoOyAjODA4Qgor6IKMID4gasSrOyAjODA4Qwor6IKNID4gccOtdTsgIzgwOEQKK+iCjiA+IGvElW47ICM4MDhFCivogo8gPiBjw6BvOyAjODA4Rgor6IKQID4gZ8STOyAjODA5MAor6IKRID4gZMOsOyAjODA5MQor6IKSID4gaHXDoW47ICM4MDkyCivogpMgPiBodcSBbmc7ICM4MDkzCivogpQgPiB5xK07ICM4MDk0CivogpUgPiByw6huOyAjODA5NQor6IKWID4geGnDoG87ICM4MDk2CivogpcgPiByxa07ICM4MDk3CivogpggPiB6aMWPdTsgIzgwOTgKK+iCmSA+IHl1xIFuOyAjODA5OQor6IKaID4gZMO5OyAjODA5QQor6IKbID4gZ8SBbmc7ICM4MDlCCivogpwgPiByw7NuZzsgIzgwOUMKK+iCnSA+IGfEgW47ICM4MDlECivogp4gPiBjaMSBOyAjODA5RQor6IKfID4gd8OyOyAjODA5Rgor6IKgID4gY2jDoW5nOyAjODBBMAor6IKhID4gZ8WtOyAjODBBMQor6IKiID4gemjEqzsgIzgwQTIKK+iCoyA+IGjDoW47ICM4MEEzCivogqQgPiBmxas7ICM4MEE0CivogqUgPiBmw6lpOyAjODBBNQor6IKmID4gZsOpbjsgIzgwQTYKK+iCpyA+IHDEk2k7ICM4MEE3CivogqggPiBww6BuZzsgIzgwQTgKK+iCqSA+IGppxIFuOyAjODBBOQor6IKqID4gZsOhbmc7ICM4MEFBCivogqsgPiB6aMWrbjsgIzgwQUIKK+iCrCA+IHnDs3U7ICM4MEFDCivogq0gPiBuw6A7ICM4MEFECivogq4gPiBow6FuZzsgIzgwQUUKK+iCryA+IGvElW47ICM4MEFGCivogrAgPiByw6FuOyAjODBCMAor6IKxID4gZ8WNbmc7ICM4MEIxCivogrIgPiB5w7k7ICM4MEIyCivogrMgPiB3xJVuOyAjODBCMwor6IK0ID4gecOhbzsgIzgwQjQKK+iCtSA+IGrDrG47ICM4MEI1CivogrYgPiBww607ICM4MEI2CivogrcgPiBxacSBbjsgIzgwQjcKK+iCuCA+IHjDrDsgIzgwQjgKK+iCuSA+IHjEqzsgIzgwQjkKK+iCuiA+IGbDqGk7ICM4MEJBCivogrsgPiBrxJVuOyAjODBCQgor6IK8ID4gasStbmc7ICM4MEJDCivogr0gPiB0w6BpOyAjODBCRAor6IK+ID4gc2jDqG47ICM4MEJFCivogr8gPiB6aMWPbmc7ICM4MEJGCivog4AgPiB6aMOgbmc7ICM4MEMwCivog4EgPiB4acOpOyAjODBDMQor6IOCID4gc2jEk247ICM4MEMyCivog4MgPiB3w6hpOyAjODBDMwor6IOEID4gemjDsnU7ICM4MEM0Civog4UgPiBkacOpOyAjODBDNQor6IOGID4gZMSDbjsgIzgwQzYKK+iDhyA+IGbDqGk7ICM4MEM3Civog4ggPiBiw6E7ICM4MEM4Civog4kgPiBiw7M7ICM4MEM5Civog4ogPiBxw7o7ICM4MENBCivog4sgPiB0acOhbjsgIzgwQ0IKK+iDjCA+IGLDqGk7ICM4MENDCivog40gPiBndcSBOyAjODBDRAor6IOOID4gdMSBaTsgIzgwQ0UKK+iDjyA+IHrErTsgIzgwQ0YKK+iDkCA+IGvFqzsgIzgwRDAKK+iDkSA+IHpoxKs7ICM4MEQxCivog5IgPiBuw6w7ICM4MEQyCivog5MgPiBww61uZzsgIzgwRDMKK+iDlCA+IHrDrDsgIzgwRDQKK+iDlSA+IGbDuTsgIzgwRDUKK+iDliA+IHDDoG5nOyAjODBENgor6IOXID4gemjEk247ICM4MEQ3Civog5ggPiB4acOhbjsgIzgwRDgKK+iDmSA+IHrDuW87ICM4MEQ5Civog5ogPiBwxJNpOyAjODBEQQor6IObID4gamnEgzsgIzgwREIKK+iDnCA+IHNow6huZzsgIzgwREMKK+iDnSA+IHpoxKs7ICM4MERECivog54gPiBixIFvOyAjODBERQor6IOfID4gbcWtOyAjODBERgor6IOgID4gccWrOyAjODBFMAor6IOhID4gaMO6OyAjODBFMQor6IOiID4ga8STOyAjODBFMgor6IOjID4gecStOyAjODBFMwor6IOkID4gecOsbjsgIzgwRTQKK+iDpSA+IHjFqzsgIzgwRTUKK+iDpiA+IHnEgW5nOyAjODBFNgor6IOnID4gbMOzbmc7ICM4MEU3Civog6ggPiBkw7JuZzsgIzgwRTgKK+iDqSA+IGvEgzsgIzgwRTkKK+iDqiA+IGzDujsgIzgwRUEKK+iDqyA+IGrDrG5nOyAjODBFQgor6IOsID4gbsWtOyAjODBFQwor6IOtID4gecSBbjsgIzgwRUQKK+iDriA+IHDDoW5nOyAjODBFRQor6IOvID4ga3XDoDsgIzgwRUYKK+iDsCA+IHnDrTsgIzgwRjAKK+iDsSA+IGd1xIFuZzsgIzgwRjEKK+iDsiA+IGfEgWk7ICM4MEYyCivog7MgPiBnxJM7ICM4MEYzCivog7QgPiBkw7JuZzsgIzgwRjQKK+iDtSA+IHpow6w7ICM4MEY1Civog7YgPiB4acOhbzsgIzgwRjYKK+iDtyA+IHjEq29uZzsgIzgwRjcKK+iDuCA+IHjEq29uZzsgIzgwRjgKK+iDuSA+IMOpcjsgIzgwRjkKK+iDuiA+IMOoOyAjODBGQQor6IO7ID4geMOtbmc7ICM4MEZCCivog7wgPiBwacOhbjsgIzgwRkMKK+iDvSA+IG7DqW5nOyAjODBGRAor6IO+ID4gesOsOyAjODBGRQor6IO/ID4gZ3VpOyAjODBGRgor6ISAID4gY2jDqW5nOyAjODEwMAor6ISBID4gdGnDoG87ICM4MTAxCivohIIgPiB6aMSrOyAjODEwMgor6ISDID4gY8O5aTsgIzgxMDMKK+iEhCA+IG3DqWk7ICM4MTA0CivohIUgPiB4acOpOyAjODEwNQor6ISGID4gY8O5aTsgIzgxMDYKK+iEhyA+IHhpw6k7ICM4MTA3CivohIggPiBtw7I7ICM4MTA4CivohIkgPiBtw6BpOyAjODEwOQor6ISKID4gasOtOyAjODEwQQor6ISNID4ga3XDoGk7ICM4MTBECivohI4gPiBzw6A7ICM4MTBFCivohI8gPiB6xIFuZzsgIzgxMEYKK+iEkCA+IHHDrTsgIzgxMTAKK+iEkSA+IG7Eg287ICM4MTExCivohJIgPiBtxK07ICM4MTEyCivohJMgPiBuw7NuZzsgIzgxMTMKK+iElCA+IGx1w6FuOyAjODExNAor6ISVID4gd8SDbjsgIzgxMTUKK+iEliA+IGLDszsgIzgxMTYKK+iElyA+IHfElW47ICM4MTE3CivohJggPiBndcSDbjsgIzgxMTgKK+iEmSA+IHHDrXU7ICM4MTE5CivohJogPiBqacSDbzsgIzgxMUEKK+iEmyA+IGrDrG5nOyAjODExQgor6IScID4gcsOzdTsgIzgxMUMKK+iEnSA+IGjEk25nOyAjODExRAor6ISeID4gY8WtbzsgIzgxMUUKK+iEnyA+IGxpw6g7ICM4MTFGCivohKAgPiBzaMSBbjsgIzgxMjAKK+iEoSA+IHTErW5nOyAjODEyMQor6ISiID4gbcOpaTsgIzgxMjIKK+iEoyA+IGNow7puOyAjODEyMwor6ISkID4gc2jDqG47ICM4MTI0CivohKUgPiB4acOpOyAjODEyNQor6ISmID4gZGU7ICM4MTI2CivohKcgPiB6xatpOyAjODEyNwor6ISoID4gY8O5OyAjODEyOAor6ISpID4geMSrdTsgIzgxMjkKK+iEqiA+IHjDrG47ICM4MTJBCivohKsgPiB0xatvOyAjODEyQgor6ISsID4gcMSBbzsgIzgxMkMKK+iErSA+IGNow6luZzsgIzgxMkQKK+iEriA+IG7ElWk7ICM4MTJFCivohK8gPiBmxa07ICM4MTJGCivohLAgPiBkw7J1OyAjODEzMAor6ISxID4gdMWrbzsgIzgxMzEKK+iEsiA+IG5pw6BvOyAjODEzMgor6IS0ID4gcMStOyAjODEzNAor6IS1ID4gZ8WtOyAjODEzNQor6IS2ID4gZ3XEgTsgIzgxMzYKK+iEtyA+IGzDrDsgIzgxMzcKK+iEuCA+IGxpxINuOyAjODEzOAor6IS5ID4gemjDoG5nOyAjODEzOQor6IS6ID4gY8O5aTsgIzgxM0EKK+iEuyA+IGppw6k7ICM4MTNCCivohLwgPiBsacSDbmc7ICM4MTNDCivohL0gPiB6aMWNdTsgIzgxM0QKK+iEviA+IHDDrTsgIzgxM0UKK+iEvyA+IGJpxIFvOyAjODEzRgor6IWAID4gbMO6bjsgIzgxNDAKK+iFgSA+IHBpw6FuOyAjODE0MQor6IWCID4gZ8O5bzsgIzgxNDIKK+iFgyA+IGvDuWk7ICM4MTQzCivohYQgPiBjaMO6aTsgIzgxNDQKK+iFhSA+IGTDoG47ICM4MTQ1CivohYYgPiB0acSDbjsgIzgxNDYKK+iFhyA+IG7ElWk7ICM4MTQ3CivohYggPiBqxKtuZzsgIzgxNDgKK+iFiSA+IGppxJM7ICM4MTQ5CivohYogPiBsw6A7ICM4MTRBCivohYsgPiB5w6w7ICM4MTRCCivohYwgPiDEgW47ICM4MTRDCivohY0gPiByxJVuOyAjODE0RAor6IWOID4gc2jDqG47ICM4MTRFCivohY8gPiBjaMO5bzsgIzgxNEYKK+iFkCA+IGbFrTsgIzgxNTAKK+iFkSA+IGbFrTsgIzgxNTEKK+iFkiA+IGrFqzsgIzgxNTIKK+iFkyA+IGbDqWk7ICM4MTUzCivohZQgPiBxacSBbmc7ICM4MTU0CivohZUgPiB3w6BuOyAjODE1NQor6IWWID4gZMOybmc7ICM4MTU2CivohZcgPiBww607ICM4MTU3CivohZggPiBnw7pvOyAjODE1OAor6IWZID4gesWNbmc7ICM4MTU5CivohZogPiBkw6xuZzsgIzgxNUEKK+iFmyA+IHfFqzsgIzgxNUIKK+iFnCA+IG3DqWk7ICM4MTVDCivohZ0gPiBydcSDbjsgIzgxNUQKK+iFniA+IHpodcOgbjsgIzgxNUUKK+iFnyA+IHpow6w7ICM4MTVGCivohaAgPiBjw7J1OyAjODE2MAor6IWhID4gZ3XEgTsgIzgxNjEKK+iFoiA+IMWPdTsgIzgxNjIKK+iFoyA+IGTDrDsgIzgxNjMKK+iFpCA+IMSBbjsgIzgxNjQKK+iFpSA+IHjEq25nOyAjODE2NQor6IWmID4gbsSDbzsgIzgxNjYKK+iFpyA+IHnDujsgIzgxNjcKK+iFqCA+IGNodcSDbjsgIzgxNjgKK+iFqSA+IG7Eg247ICM4MTY5CivohaogPiB5w7luOyAjODE2QQor6IWrID4gemjFj25nOyAjODE2Qgor6IWsID4gcsOzdTsgIzgxNkMKK+iFrSA+IMOoOyAjODE2RAor6IWuID4gc8SBaTsgIzgxNkUKK+iFryA+IHTDujsgIzgxNkYKK+iFsCA+IHnEgW87ICM4MTcwCivohbEgPiBqacOgbjsgIzgxNzEKK+iFsiA+IHfElWk7ICM4MTcyCivohbMgPiBqacSDbzsgIzgxNzMKK+iFtCA+IHnDujsgIzgxNzQKK+iFtSA+IGppxIE7ICM4MTc1CivohbYgPiBkdcOgbjsgIzgxNzYKK+iFtyA+IGLDrDsgIzgxNzcKK+iFuCA+IGNow6FuZzsgIzgxNzgKK+iFuSA+IGbDuTsgIzgxNzkKK+iFuiA+IHhpw6BuOyAjODE3QQor6IW7ID4gbsOsOyAjODE3Qgor6IW8ID4gbWnEg247ICM4MTdDCivohb0gPiB3w6A7ICM4MTdECivohb4gPiB0w6luZzsgIzgxN0UKK+iFvyA+IHTFrWk7ICM4MTdGCivohoAgPiBixINuZzsgIzgxODAKK+iGgSA+IHFpxIFuOyAjODE4MQor6IaCID4gbMeaOyAjODE4Mgor6IaDID4gd8OgOyAjODE4Mwor6IaEID4gc8OydTsgIzgxODQKK+iGhSA+IHTDoW5nOyAjODE4NQor6IaGID4gc8O5OyAjODE4Ngor6IaHID4gemjDuWk7ICM4MTg3CivohoggPiBnw6k7ICM4MTg4CivohokgPiB5w6w7ICM4MTg5CivohoogPiBiw7M7ICM4MThBCivohosgPiBsacOhbzsgIzgxOEIKK+iGjCA+IGrDrTsgIzgxOEMKK+iGjSA+IHDDrTsgIzgxOEQKK+iGjiA+IHhpw6k7ICM4MThFCivoho8gPiBnxIFvOyAjODE4Rgor6IaQID4gbMeaOyAjODE5MAor6IaRID4gYsOsbjsgIzgxOTEKK+iGkiA+IG91OyAjODE5Mgor6IaTID4gY2jDoW5nOyAjODE5Mwor6IaUID4gbMO5OyAjODE5NAor6IaVID4gZ8O6bzsgIzgxOTUKK+iGliA+IHDEgW5nOyAjODE5Ngor6IaXID4gY2h1w6FpOyAjODE5Nwor6IaYID4gcGnEg287ICM4MTk4CivohpkgPiBqacSDbmc7ICM4MTk5CivohpogPiBmxas7ICM4MTlBCivohpsgPiB0w6FuZzsgIzgxOUIKK+iGnCA+IG3DsjsgIzgxOUMKK+iGnSA+IHjEqzsgIzgxOUQKK+iGniA+IHpodcSBbjsgIzgxOUUKK+iGnyA+IGzHnDsgIzgxOUYKK+iGoCA+IGppxIFvOyAjODFBMAor6IahID4gecOsbmc7ICM4MUExCivohqIgPiBsx5g7ICM4MUEyCivohqMgPiB6aMOsOyAjODFBMwor6IalID4gY2jFq247ICM4MUE1CivohqYgPiBsacSDbjsgIzgxQTYKK+iGpyA+IHTDs25nOyAjODFBNwor6IaoID4gcMOpbmc7ICM4MUE4CivohqkgPiBuw6w7ICM4MUE5CivohqogPiB6aMOgOyAjODFBQQor6IarID4gbGnDoW87ICM4MUFCCivohqwgPiBjw7lpOyAjODFBQwor6IatID4gZ8WraTsgIzgxQUQKK+iGriA+IHhpxIFvOyAjODFBRQor6IavID4gdMSTbmc7ICM4MUFGCivohrAgPiBmw6FuOyAjODFCMAor6IaxID4gemjDrTsgIzgxQjEKK+iGsiA+IGppxIFvOyAjODFCMgor6IazID4gc2jDoG47ICM4MUIzCivohrQgPiB3w7o7ICM4MUI0CivohrUgPiBjw7lpOyAjODFCNQor6Ia2ID4gcsO5bjsgIzgxQjYKK+iGtyA+IHhpxIFuZzsgIzgxQjcKK+iGuCA+IHPFrWk7ICM4MUI4CivohrkgPiBmw6huOyAjODFCOQor6Ia6ID4gecSrbmc7ICM4MUJBCivohrsgPiB0xINuOyAjODFCQgor6Ia8ID4gemh1xIE7ICM4MUJDCivohr0gPiBkxINuOyAjODFCRAor6Ia+ID4ga3XDoGk7ICM4MUJFCivohr8gPiBuw7NuZzsgIzgxQkYKK+iHgCA+IHTDum47ICM4MUMwCivoh4EgPiBsacOhbjsgIzgxQzEKK+iHgiA+IGLDrDsgIzgxQzIKK+iHgyA+IHnFj25nOyAjODFDMwor6IeEID4ganXDqTsgIzgxQzQKK+iHhSA+IGNow7k7ICM4MUM1Civoh4YgPiB5w6w7ICM4MUM2Civoh4cgPiBqdcSDbjsgIzgxQzcKK+iHiCA+IGzDoDsgIzgxQzgKK+iHiSA+IGxpxINuOyAjODFDOQor6IeKID4gc8SBbzsgIzgxQ0EKK+iHiyA+IHTDum47ICM4MUNCCivoh4wgPiBnxa07ICM4MUNDCivoh40gPiBxw607ICM4MUNECivoh44gPiBjw7lpOyAjODFDRQor6IePID4gYsOsbjsgIzgxQ0YKK+iHkCA+IHjFq247ICM4MUQwCivoh5EgPiByw7o7ICM4MUQxCivoh5IgPiBow7lvOyAjODFEMgor6IeTID4gesOgbmc7ICM4MUQzCivoh5QgPiB4acOgbjsgIzgxRDQKK+iHlSA+IGJpxIFvOyAjODFENQor6IeWID4geMOsbmc7ICM4MUQ2Civoh5cgPiBrdcSBbjsgIzgxRDcKK+iHmCA+IGzDoDsgIzgxRDgKK+iHmSA+IHnEgW47ICM4MUQ5Civoh5ogPiBsw7o7ICM4MURBCivoh5sgPiBow7lvOyAjODFEQgor6IecID4gesSBbmc7ICM4MURDCivoh50gPiBsxa1vOyAjODFERAor6IeeID4gccO6OyAjODFERQor6IefID4gesOgbmc7ICM4MURGCivoh6AgPiBsdcOhbjsgIzgxRTAKK+iHoSA+IG7DrTsgIzgxRTEKK+iHoiA+IHrEgW5nOyAjODFFMgor6IejID4gY2jDqW47ICM4MUUzCivoh6QgPiBxacSBbjsgIzgxRTQKK+iHpSA+IHfDsjsgIzgxRTUKK+iHpiA+IGd1w6BuZzsgIzgxRTYKK+iHpyA+IHrDoW5nOyAjODFFNwor6IeoID4gbMOtbjsgIzgxRTgKK+iHqSA+IGd1w6BuZzsgIzgxRTkKK+iHqiA+IHrDrDsgIzgxRUEKK+iHqyA+IGppxINvOyAjODFFQgor6IesID4gbmnDqDsgIzgxRUMKK+iHrSA+IGNow7J1OyAjODFFRAor6IeuID4gasOsOyAjODFFRQor6IevID4gZ8SBbzsgIzgxRUYKK+iHsCA+IGNow7J1OyAjODFGMAor6IexID4gbWnDoW47ICM4MUYxCivoh7IgPiBuacOoOyAjODFGMgor6IezID4gemjDrDsgIzgxRjMKK+iHtCA+IHpow6w7ICM4MUY0Civoh7UgPiBnw6k7ICM4MUY1Civoh7YgPiBqacOgbjsgIzgxRjYKK+iHtyA+IGRpw6k7ICM4MUY3Civoh7ggPiB6aMOsOyAjODFGOAor6Ie5ID4geMSrdTsgIzgxRjkKK+iHuiA+IHTDoWk7ICM4MUZBCivoh7sgPiB6aMSTbjsgIzgxRkIKK+iHvCA+IGrDrHU7ICM4MUZDCivoh70gPiB4acOgbjsgIzgxRkQKK+iHviA+IHnDujsgIzgxRkUKK+iHvyA+IGNoxIE7ICM4MUZGCivoiIAgPiB5xINvOyAjODIwMAor6IiBID4gecO6OyAjODIwMQor6IiCID4gY2jFjW5nOyAjODIwMgor6IiDID4geMOsOyAjODIwMwor6IiEID4geMOsOyAjODIwNAor6IiFID4gasOsdTsgIzgyMDUKK+iIhiA+IHnDujsgIzgyMDYKK+iIhyA+IHnFrTsgIzgyMDcKK+iIiCA+IHjEq25nOyAjODIwOAor6IiJID4gasWtOyAjODIwOQor6IiKID4gasOsdTsgIzgyMEEKK+iIiyA+IHjDrG47ICM4MjBCCivoiIwgPiBzaMOpOyAjODIwQwor6IiNID4gc2jDqDsgIzgyMEQKK+iIjyA+IGrErXU7ICM4MjBGCivoiJAgPiBzaMOsOyAjODIxMAor6IiRID4gdMSBbjsgIzgyMTEKK+iIkiA+IHNoxas7ICM4MjEyCivoiJMgPiBzaMOsOyAjODIxMwor6IiUID4gdGnEg247ICM4MjE0CivoiJUgPiBkw6BuOyAjODIxNQor6IiWID4gcMO5OyAjODIxNgor6IiXID4gcMO5OyAjODIxNwor6IiYID4gZ3XEg247ICM4MjE4CivoiJkgPiBodcOgOyAjODIxOQor6IiaID4gdMSBbjsgIzgyMUEKK+iImyA+IGNodcSDbjsgIzgyMUIKK+iInCA+IHNow7luOyAjODIxQwor6IidID4geGnDoTsgIzgyMUQKK+iIniA+IHfFrTsgIzgyMUUKK+iInyA+IHpoxY11OyAjODIxRgor6IigID4gZMSBbzsgIzgyMjAKK+iIoSA+IGfEgW5nOyAjODIyMQor6IiiID4gc2jEgW47ICM4MjIyCivoiKMgPiB5xK07ICM4MjIzCivoiKUgPiBwxIE7ICM4MjI1CivoiKYgPiB0w6BpOyAjODIyNgor6IinID4gZsOhbjsgIzgyMjcKK+iIqCA+IGLEg247ICM4MjI4CivoiKkgPiBjaHXDoW47ICM4MjI5CivoiKogPiBow6FuZzsgIzgyMkEKK+iIqyA+IGbEg25nOyAjODIyQgor6IisID4gYsSBbjsgIzgyMkMKK+iIrSA+IHF1w6g7ICM4MjJECivoiK8gPiB6aMWNbmc7ICM4MjJGCivoiLAgPiBqacOgbjsgIzgyMzAKK+iIsSA+IGPEgW5nOyAjODIzMQor6IiyID4gbMOtbmc7ICM4MjMyCivoiLMgPiB6aMO6OyAjODIzMwor6Ii0ID4gesOpOyAjODIzNAor6Ii1ID4gZMO5bzsgIzgyMzUKK+iItiA+IGLDszsgIzgyMzYKK+iItyA+IHhpw6FuOyAjODIzNwor6Ii4ID4gZ8SVOyAjODIzOAor6Ii5ID4gY2h1w6FuOyAjODIzOQor6Ii6ID4gamnDoTsgIzgyM0EKK+iIuyA+IGzFrTsgIzgyM0IKK+iIvCA+IGjDs25nOyAjODIzQwor6Ii9ID4gcMOhbmc7ICM4MjNECivoiL4gPiB4xKs7ICM4MjNFCivoiYAgPiBmw7o7ICM4MjQwCivoiYEgPiB6w6BvOyAjODI0MQor6ImCID4gZsOpbmc7ICM4MjQyCivoiYMgPiBsw607ICM4MjQzCivoiYQgPiBzaMSBbzsgIzgyNDQKK+iJhSA+IHnDujsgIzgyNDUKK+iJhiA+IGzDoW5nOyAjODI0Ngor6ImHID4gdMStbmc7ICM4MjQ3CivoiYkgPiB3xJVpOyAjODI0OQor6ImKID4gYsOzOyAjODI0QQor6ImLID4gbcSVbmc7ICM4MjRCCivoiYwgPiBuacOgbjsgIzgyNEMKK+iJjSA+IGrFqzsgIzgyNEQKK+iJjiA+IGh1w6FuZzsgIzgyNEUKK+iJjyA+IHNoxY91OyAjODI0Rgor6ImQID4gesWNbmc7ICM4MjUwCivoiZEgPiBiacOgbjsgIzgyNTEKK+iJkiA+IG3DoG87ICM4MjUyCivoiZMgPiBkacOpOyAjODI1Mwor6ImVID4gYsOgbmc7ICM4MjU1CivoiZYgPiBjaMSBOyAjODI1Ngor6ImXID4gecOsOyAjODI1Nwor6ImYID4gc8SBbzsgIzgyNTgKK+iJmSA+IGPEgW5nOyAjODI1OQor6ImaID4gY8OhbzsgIzgyNUEKK+iJmyA+IGzDs3U7ICM4MjVCCivoiZwgPiBkw6BpOyAjODI1Qwor6ImeID4gecOgbzsgIzgyNUUKK+iJnyA+IHTDs25nOyAjODI1Rgor6ImhID4gZMSBbmc7ICM4MjYxCivoiaIgPiB0w6FuOyAjODI2Mgor6ImjID4gbMWtOyAjODI2Mwor6ImkID4gecStOyAjODI2NAor6ImlID4gamnDqDsgIzgyNjUKK+iJpiA+IGppw6BuOyAjODI2Ngor6ImnID4gaMO5bzsgIzgyNjcKK+iJqCA+IG3DqW5nOyAjODI2OAor6ImpID4gccOtOyAjODI2OQor6ImqID4gbMWtOyAjODI2QQor6ImrID4gbMO6OyAjODI2Qgor6ImsID4gY2jDoW47ICM4MjZDCivoia0gPiBzaHXEgW5nOyAjODI2RAor6ImuID4gZ8OobjsgIzgyNkUKK+iJryA+IGxpw6FuZzsgIzgyNkYKK+iJsCA+IGppxIFuOyAjODI3MAor6ImxID4gamnEgW47ICM4MjcxCivoibIgPiBzw6g7ICM4MjcyCivoibMgPiB5w6BuOyAjODI3Mwor6Im0ID4gZsO6OyAjODI3NAor6Im1ID4gcMOtbmc7ICM4Mjc1CivoibYgPiB5w6BuOyAjODI3Ngor6Im3ID4gecOgbjsgIzgyNzcKK+iJuCA+IGPEg287ICM4Mjc4CivoibkgPiBjxINvJyAnesOsJyAndMOzdTsgIzgyNzkKK+iJuiA+IHnDrDsgIzgyN0EKK+iJuyA+IGzDqDsgIzgyN0IKK+iJvCA+IHTEq25nOyAjODI3Qwor6Im9ID4gccOtdTsgIzgyN0QKK+iJviA+IMOgaTsgIzgyN0UKK+iJvyA+IG7Eg2k7ICM4MjdGCivoioAgPiB0acOhbzsgIzgyODAKK+iKgSA+IGppxIFvOyAjODI4MQor6IqCID4gamnDqTsgIzgyODIKK+iKgyA+IHDDqW5nOyAjODI4Mwor6IqEID4gd8OhbjsgIzgyODQKK+iKhSA+IHnDrDsgIzgyODUKK+iKhiA+IGNoxIFpOyAjODI4Ngor6IqHID4gbWnDoW47ICM4Mjg3CivoioggPiBtacSTOyAjODI4OAor6IqJID4gZ8SBbjsgIzgyODkKK+iKiiA+IHFpxIFuOyAjODI4QQor6IqLID4gecO5OyAjODI4Qgor6IqMID4gecO5OyAjODI4Qwor6IqNID4gc2jDuW87ICM4MjhECivoio4gPiBxxKtvbmc7ICM4MjhFCivoio8gPiB0xa07ICM4MjhGCivoipAgPiB4acOgOyAjODI5MAor6IqRID4gccStOyAjODI5MQor6IqSID4gbcOhbmc7ICM4MjkyCivoipMgPiB6xK07ICM4MjkzCivoipQgPiBoxa1pOyAjODI5NAor6IqVID4gc8WraTsgIzgyOTUKK+iKliA+IHpow6w7ICM4Mjk2CivoipcgPiB4acSBbmc7ICM4Mjk3CivoipggPiBixKs7ICM4Mjk4CivoipkgPiBmw7o7ICM4Mjk5CivoipogPiB0w7puOyAjODI5QQor6IqbID4gd8SVaTsgIzgyOUIKK+iKnCA+IHfDujsgIzgyOUMKK+iKnSA+IHpoxKs7ICM4MjlECivoip4gPiBxxK07ICM4MjlFCivoip8gPiBzaMSBbjsgIzgyOUYKK+iKoCA+IHfDqW47ICM4MkEwCivoiqEgPiBxacOgbjsgIzgyQTEKK+iKoiA+IHLDqW47ICM4MkEyCivoiqMgPiBmxY91OyAjODJBMwor6IqkID4ga8WNdTsgIzgyQTQKK+iKpSA+IGppw6g7ICM4MkE1CivoiqYgPiBsw7o7ICM4MkE2CivoiqcgPiB4w7k7ICM4MkE3CivoiqggPiBqw607ICM4MkE4CivoiqkgPiBxw61uOyAjODJBOQor6IqqID4gccOtOyAjODJBQQor6IqrID4geXXDoW47ICM4MkFCCivoiqwgPiBmxJNuOyAjODJBQwor6IqtID4gYsSBOyAjODJBRAor6IquID4gcsO5aTsgIzgyQUUKK+iKryA+IHjEq247ICM4MkFGCivoirAgPiBqw6w7ICM4MkIwCivoirEgPiBodcSBOyAjODJCMQor6IqyID4gaHXEgTsgIzgyQjIKK+iKsyA+IGbEgW5nOyAjODJCMwor6Iq0ID4gd8O5OyAjODJCNAor6Iq1ID4ganXDqTsgIzgyQjUKK+iKtiA+IGfFjXU7ICM4MkI2CivoircgPiB6aMStOyAjODJCNwor6Iq4ID4gecO6bjsgIzgyQjgKK+iKuSA+IHHDrW47ICM4MkI5CivoirogPiDEg287ICM4MkJBCivoirsgPiBjaMO6OyAjODJCQgor6Iq8ID4gbcOgbzsgIzgyQkMKK+iKvSA+IHnDoTsgIzgyQkQKK+iKviA+IGbDqGk7ICM4MkJFCivoir8gPiByw6huZzsgIzgyQkYKK+iLgCA+IGjDoW5nOyAjODJDMAor6IuBID4gY8WNbmc7ICM4MkMxCivoi4IgPiB5w61uOyAjODJDMgor6IuDID4gecWPdTsgIzgyQzMKK+iLhCA+IGJpw6BuOyAjODJDNAor6IuFID4gecOsOyAjODJDNQor6IuHID4gd8SVaTsgIzgyQzcKK+iLiCA+IGzDrDsgIzgyQzgKK+iLiSA+IHDErTsgIzgyQzkKK+iLiiA+IMOoOyAjODJDQQor6IuLID4geGnDoG47ICM4MkNCCivoi4wgPiBjaMOhbmc7ICM4MkNDCivoi40gPiBjxIFuZzsgIzgyQ0QKK+iLjiA+IG3DqW5nOyAjODJDRQor6IuPID4gc8WrOyAjODJDRgor6IuQID4gecOtOyAjODJEMAor6IuRID4geXXDoG47ICM4MkQxCivoi5IgPiByxINuOyAjODJEMgor6IuTID4gbMOtbmc7ICM4MkQzCivoi5QgPiB0w6FpOyAjODJENAor6IuVID4gdGnDoW87ICM4MkQ1Civoi5YgPiBkxK07ICM4MkQ2Civoi5cgPiBtacOhbzsgIzgyRDcKK+iLmCA+IHHErW9uZzsgIzgyRDgKK+iLmSA+IGzDrDsgIzgyRDkKK+iLmiA+IHnDsm5nOyAjODJEQQor6IubID4ga8STOyAjODJEQgor6IucID4gbcO5OyAjODJEQwor6IudID4gcMOoaTsgIzgyREQKK+iLniA+IGLEgW87ICM4MkRFCivoi58gPiBnxY91OyAjODJERgor6IugID4gbcOtbjsgIzgyRTAKK+iLoSA+IHnErTsgIzgyRTEKK+iLoiA+IHnErTsgIzgyRTIKK+iLoyA+IGrDuTsgIzgyRTMKK+iLpCA+IHDErTsgIzgyRTQKK+iLpSA+IHLDuW87ICM4MkU1Civoi6YgPiBrxa07ICM4MkU2Civoi6cgPiB6aMO5OyAjODJFNwor6IuoID4gbsStOyAjODJFOAor6IupID4gYsOzOyAjODJFOQor6IuqID4gYsStbmc7ICM4MkVBCivoi6sgPiBzaMSBbjsgIzgyRUIKK+iLrCA+IHHDrXU7ICM4MkVDCivoi60gPiB5xINvOyAjODJFRAor6IuuID4geGnEgW47ICM4MkVFCivoi68gPiBixJVuOyAjODJFRgor6IuwID4gaMOzbmc7ICM4MkYwCivoi7EgPiB5xKtuZzsgIzgyRjEKK+iLsiA+IHpoxIM7ICM4MkYyCivoi7MgPiBkxY1uZzsgIzgyRjMKK+iLtCA+IGrFqzsgIzgyRjQKK+iLtSA+IGRpw6k7ICM4MkY1Civoi7YgPiBuacOpOyAjODJGNgor6Iu3ID4gZ8SBbjsgIzgyRjcKK+iLuCA+IGjFqzsgIzgyRjgKK+iLuSA+IHDDrW5nOyAjODJGOQor6Iu6ID4gbcOpaTsgIzgyRkEKK+iLuyA+IGbDujsgIzgyRkIKK+iLvCA+IHNoxJNuZzsgIzgyRkMKK+iLvSA+IGfFqzsgIzgyRkQKK+iLviA+IGLDrDsgIzgyRkUKK+iLvyA+IHfDqGk7ICM4MkZGCivojIAgPiBmw7o7ICM4MzAwCivojIEgPiB6aMO6bzsgIzgzMDEKK+iMgiA+IG3DoG87ICM4MzAyCivojIMgPiBmw6BuOyAjODMwMwor6IyEID4gcWnDqTsgIzgzMDQKK+iMhSA+IG3DoW87ICM4MzA1CivojIYgPiBtxINvOyAjODMwNgor6IyHID4gYsOhOyAjODMwNwor6IyIID4gesStOyAjODMwOAor6IyJID4gbcOyOyAjODMwOQor6IyKID4gesSrOyAjODMwQQor6IyLID4gZMStOyAjODMwQgor6IyMID4gY2jDrTsgIzgzMEMKK+iMjSA+IGrDrDsgIzgzMEQKK+iMjiA+IGrEq25nOyAjODMwRQor6IyPID4gbMOzbmc7ICM4MzBGCivojJEgPiBuacSDbzsgIzgzMTEKK+iMkyA+IHh1w6k7ICM4MzEzCivojJQgPiB5w61uZzsgIzgzMTQKK+iMlSA+IHHDrW9uZzsgIzgzMTUKK+iMliA+IGfDqTsgIzgzMTYKK+iMlyA+IG3ErW5nOyAjODMxNwor6IyYID4gbMOsOyAjODMxOAor6IyZID4gcsOzbmc7ICM4MzE5CivojJogPiB5w6xuOyAjODMxQQor6IybID4gZ8OobjsgIzgzMUIKK+iMnCA+IHFpw6BuOyAjODMxQwor6IydID4gY2jEg2k7ICM4MzFECivojJ4gPiBjaMOpbjsgIzgzMUUKK+iMnyA+IHnDuTsgIzgzMUYKK+iMoCA+IHjEq3U7ICM4MzIwCivojKEgPiB6w6w7ICM4MzIxCivojKIgPiBsacOoOyAjODMyMgor6IyjID4gd8O6OyAjODMyMwor6IykID4gasOsOyAjODMyNAor6IylID4ga8WraTsgIzgzMjUKK+iMpiA+IGPDqDsgIzgzMjYKK+iMpyA+IGNow7NuZzsgIzgzMjcKK+iMqCA+IGPDrTsgIzgzMjgKK+iMqSA+IGfFj3U7ICM4MzI5CivojKogPiBndcSBbmc7ICM4MzJBCivojKsgPiBtw6FuZzsgIzgzMkIKK+iMrCA+IGNow607ICM4MzJDCivojK0gPiBqacSBbzsgIzgzMkQKK+iMriA+IGppxIFvOyAjODMyRQor6IyvID4gZsO6OyAjODMyRgor6IywID4gecO6OyAjODMzMAor6IyxID4gemjFqzsgIzgzMzEKK+iMsiA+IHrEqzsgIzgzMzIKK+iMsyA+IGppxIFuZzsgIzgzMzMKK+iMtCA+IGjDumk7ICM4MzM0CivojLUgPiB5xKtuOyAjODMzNQor6Iy2ID4gY2jDoTsgIzgzMzYKK+iMtyA+IGbDoTsgIzgzMzcKK+iMuCA+IHLDs25nOyAjODMzOAor6Iy5ID4gcsO6OyAjODMzOQor6Iy6ID4gY2jFjW5nOyAjODMzQQor6Iy7ID4gbcSDbmc7ICM4MzNCCivojLwgPiB0w7NuZzsgIzgzM0MKK+iMvSA+IHpow7JuZzsgIzgzM0QKK+iMvyA+IHpow7o7ICM4MzNGCivojYAgPiB4w7puOyAjODM0MAor6I2BID4gaHXDoW47ICM4MzQxCivojYIgPiBrdcSBOyAjODM0Mgor6I2DID4gcXXDoW47ICM4MzQzCivojYQgPiBnxIFpOyAjODM0NAor6I2FID4gZMSBOyAjODM0NQor6I2GID4gasSrbmc7ICM4MzQ2CivojYcgPiB4w6xuZzsgIzgzNDcKK+iNiCA+IHF1w6BuOyAjODM0OAor6I2JID4gY8SDbzsgIzgzNDkKK+iNiiA+IGrEq25nOyAjODM0QQor6I2LID4gw6lyOyAjODM0Qgor6I2MID4gw6BuOyAjODM0Qwor6I2NID4gc2jFjXU7ICM4MzRECivojY4gPiBjaMOtOyAjODM0RQor6I2PID4gcsSVbjsgIzgzNEYKK+iNkCA+IGppw6BuOyAjODM1MAor6I2RID4gdMOtOyAjODM1MQor6I2SID4gaHXEgW5nOyAjODM1Mgor6I2TID4gcMOtbmc7ICM4MzUzCivojZQgPiBsw6w7ICM4MzU0CivojZUgPiBqxKtuOyAjODM1NQor6I2WID4gbMSDbzsgIzgzNTYKK+iNlyA+IHNow7k7ICM4MzU3CivojZggPiB6aHXEgW5nOyAjODM1OAor6I2ZID4gZMOhOyAjODM1OQor6I2aID4gamnDoTsgIzgzNUEKK+iNmyA+IHLDoW87ICM4MzVCCivojZwgPiBiw6w7ICM4MzVDCivojZ0gPiB6w6k7ICM4MzVECivojZ4gPiBxacOhbzsgIzgzNUUKK+iNnyA+IGjDuWk7ICM4MzVGCivojaAgPiBxw607ICM4MzYwCivojaEgPiBkw6BuZzsgIzgzNjEKK+iNoyA+IHLDs25nOyAjODM2Mwor6I2kID4gaMWrbjsgIzgzNjQKK+iNpSA+IHnDrW5nOyAjODM2NQor6I2mID4gbMO5bzsgIzgzNjYKK+iNpyA+IHnDrW5nOyAjODM2Nwor6I2oID4geMO6bjsgIzgzNjgKK+iNqSA+IGrDrG47ICM4MzY5CivojaogPiBzxatuOyAjODM2QQor6I2rID4gecOsbjsgIzgzNkIKK+iNrCA+IG3Eg2k7ICM4MzZDCivoja0gPiBow7NuZzsgIzgzNkQKK+iNriA+IHpow7J1OyAjODM2RQor6I2vID4gecOgbzsgIzgzNkYKK+iNsCA+IGTDuTsgIzgzNzAKK+iNsSA+IHfElWk7ICM4MzcxCivojbIgPiBjaMO5OyAjODM3Mgor6I2zID4gZMOydTsgIzgzNzMKK+iNtCA+IGbFqzsgIzgzNzQKK+iNtSA+IHLElW47ICM4Mzc1CivojbYgPiB5w61uOyAjODM3Ngor6I23ID4gaMOpOyAjODM3Nwor6I24ID4gYsOtOyAjODM3OAor6I25ID4gYsO5OyAjODM3OQor6I26ID4gecO6bjsgIzgzN0EKK+iNuyA+IGTDrTsgIzgzN0IKK+iNvCA+IHTDujsgIzgzN0MKK+iNvSA+IHPFq2k7ICM4MzdECivojb4gPiBzxatpOyAjODM3RQor6I2/ID4gY2jDqW5nOyAjODM3Rgor6I6AID4gY2jDqW47ICM4MzgwCivojoEgPiB3w7o7ICM4MzgxCivojoIgPiBiacOpOyAjODM4Mgor6I6DID4geMSrOyAjODM4Mwor6I6EID4gZ8SVbmc7ICM4Mzg0CivojoUgPiBsw6w7ICM4Mzg1CivojoYgPiBmxa07ICM4Mzg2CivojocgPiB6aMO5OyAjODM4Nwor6I6IID4gbcOyOyAjODM4OAor6I6JID4gbMOsOyAjODM4OQor6I6KID4gemh1xIFuZzsgIzgzOEEKK+iOiyA+IGrDrTsgIzgzOEIKK+iOjCA+IGTDum87ICM4MzhDCivojo0gPiBxw611OyAjODM4RAor6I6OID4gc2jEgTsgIzgzOEUKK+iOjyA+IHPFq287ICM4MzhGCivojpAgPiBjaMOpbjsgIzgzOTAKK+iOkSA+IGbEk25nOyAjODM5MQor6I6SID4gasWtOyAjODM5Mgor6I6TID4gbcOpaTsgIzgzOTMKK+iOlCA+IG3DqW5nOyAjODM5NAor6I6VID4geMOsbmc7ICM4Mzk1CivojpYgPiBqxKtuZzsgIzgzOTYKK+iOlyA+IGNoxJM7ICM4Mzk3CivojpggPiB4xKtuOyAjODM5OAor6I6ZID4gasWrbjsgIzgzOTkKK+iOmiA+IHnDoW47ICM4MzlBCivojpsgPiB0w61uZzsgIzgzOUIKK+iOnCA+IGRpw6BvOyAjODM5Qwor6I6dID4gY8O5bzsgIzgzOUQKK+iOniA+IHfEg247ICM4MzlFCivojp8gPiBow6BuOyAjODM5Rgor6I6gID4gecWPdTsgIzgzQTAKK+iOoSA+IGPDuW87ICM4M0ExCivojqIgPiBqacOhOyAjODNBMgor6I6jID4gd8Ohbmc7ICM4M0EzCivojqQgPiB5w7N1OyAjODNBNAor6I6lID4gbsStdTsgIzgzQTUKK+iOpiA+IHNoxIFvOyAjODNBNgor6I6nID4geGnDoG47ICM4M0E3CivojqggPiBsw6FuZzsgIzgzQTgKK+iOqSA+IGbDujsgIzgzQTkKK+iOqiA+IMOpOyAjODNBQQor6I6rID4gbcOyOyAjODNBQgor6I6sID4gd8OobjsgIzgzQUMKK+iOrSA+IGppw6k7ICM4M0FECivojq4gPiBuw6FuOyAjODNBRQor6I6vID4gbcO5OyAjODNBRgor6I6wID4ga8SDbjsgIzgzQjAKK+iOsSA+IGzDoWk7ICM4M0IxCivojrIgPiBsacOhbjsgIzgzQjIKK+iOsyA+IHNow607ICM4M0IzCivojrQgPiB3xY07ICM4M0I0CivojrYgPiBsacSDbjsgIzgzQjYKK+iOtyA+IGjDuW87ICM4M0I3CivojrggPiB5w7N1OyAjODNCOAor6I65ID4gecOtbmc7ICM4M0I5CivojrogPiB5xKtuZzsgIzgzQkEKK+iOvCA+IGNow7puOyAjODNCQwor6I69ID4gbcSDbmc7ICM4M0JECivojr4gPiBtxINuZzsgIzgzQkUKK+iOvyA+IGPDrDsgIzgzQkYKK+iPgCA+IHfEg247ICM4M0MwCivoj4EgPiBqxKtuZzsgIzgzQzEKK+iPgiA+IGTEqzsgIzgzQzIKK+iPgyA+IHHDujsgIzgzQzMKK+iPhCA+IGTFjW5nOyAjODNDNAor6I+FID4gamnEgW47ICM4M0M1Civoj4YgPiB6xY11OyAjODNDNgor6I+HID4gZ8WrOyAjODNDNwor6I+IID4gbMSBOyAjODNDOAor6I+JID4gbMO5OyAjODNDOQor6I+KID4gasO6OyAjODNDQQor6I+LID4gd8OoaTsgIzgzQ0IKK+iPjCA+IGrDuW47ICM4M0NDCivoj40gPiBuacOoOyAjODNDRAor6I+OID4ga8WrbjsgIzgzQ0UKK+iPjyA+IGjDqTsgIzgzQ0YKK+iPkCA+IHDDujsgIzgzRDAKK+iPkSA+IHrEqzsgIzgzRDEKK+iPkiA+IGfEg287ICM4M0QyCivoj5MgPiBnxa1vOyAjODNEMwor6I+UID4gZsO6OyAjODNENAor6I+VID4gbMO6bjsgIzgzRDUKK+iPliA+IGNoxIFuZzsgIzgzRDYKK+iPlyA+IGNow7N1OyAjODNENwor6I+YID4gc8WNbmc7ICM4M0Q4Civoj5kgPiBjaMO6aTsgIzgzRDkKK+iPmiA+IHpow6BuOyAjODNEQQor6I+bID4gbcOpbjsgIzgzREIKK+iPnCA+IGPDoGk7ICM4M0RDCivoj50gPiBiw6E7ICM4M0RECivoj54gPiBsw607ICM4M0RFCivoj58gPiB0w7k7ICM4M0RGCivoj6AgPiBixY07ICM4M0UwCivoj6EgPiBow6BuOyAjODNFMQor6I+iID4gYsOgbzsgIzgzRTIKK+iPoyA+IHHDrG47ICM4M0UzCivoj6QgPiBqdcSDbjsgIzgzRTQKK+iPpSA+IHjEqzsgIzgzRTUKK+iPpiA+IHHDrW47ICM4M0U2Civoj6cgPiBkxK07ICM4M0U3Civoj6ggPiBqacSTOyAjODNFOAor6I+pID4gcMO6OyAjODNFOQor6I+qID4gZMOgbmc7ICM4M0VBCivoj6sgPiBqxK1uOyAjODNFQgor6I+sID4gemjEg287ICM4M0VDCivoj60gPiB0w6FpOyAjODNFRAor6I+uID4gZ8STbmc7ICM4M0VFCivoj68gPiBodcOhOyAjODNFRgor6I+wID4gZ8WrOyAjODNGMAor6I+xID4gbMOtbmc7ICM4M0YxCivoj7IgPiBmxJNpOyAjODNGMgor6I+zID4gasSrbjsgIzgzRjMKK+iPtCA+IMSBbjsgIzgzRjQKK+iPtSA+IHfEg25nOyAjODNGNQor6I+2ID4gYsSVbmc7ICM4M0Y2Civoj7cgPiB6aMWPdTsgIzgzRjcKK+iPuCA+IHnEgW47ICM4M0Y4Civoj7kgPiBqxas7ICM4M0Y5Civoj7ogPiBqacSBbjsgIzgzRkEKK+iPuyA+IGzErW47ICM4M0ZCCivoj7wgPiB0xINuOyAjODNGQwor6I+9ID4gc2jDujsgIzgzRkQKK+iPviA+IHRpw6FuOyAjODNGRQor6I+/ID4gZMOgbzsgIzgzRkYKK+iQgCA+IGjFrTsgIzg0MDAKK+iQgSA+IHHDrTsgIzg0MDEKK+iQgiA+IGjDqTsgIzg0MDIKK+iQgyA+IGPDuWk7ICM4NDAzCivokIQgPiB0w6FvOyAjODQwNAor6JCFID4gY2jFq247ICM4NDA1CivokIYgPiBixJNpOyAjODQwNgor6JCHID4gY2jDoW5nOyAjODQwNwor6JCIID4gaHXDoW47ICM4NDA4CivokIkgPiBmw6lpOyAjODQwOQor6JCKID4gbMOhaTsgIzg0MEEKK+iQiyA+IHHEqzsgIzg0MEIKK+iQjCA+IG3DqW5nOyAjODQwQwor6JCNID4gcMOtbmc7ICM4NDBECivokI4gPiB3xJNpOyAjODQwRQor6JCPID4gZMOgbjsgIzg0MEYKK+iQkCA+IHNow6A7ICM4NDEwCivokJEgPiBodcOhbjsgIzg0MTEKK+iQkiA+IHnEg247ICM4NDEyCivokJMgPiB5w607ICM4NDEzCivokJQgPiB0acOhbzsgIzg0MTQKK+iQlSA+IHHDrTsgIzg0MTUKK+iQliA+IHfEg247ICM4NDE2CivokJcgPiBjw6g7ICM4NDE3CivokJggPiBuw6BpOyAjODQxOAor6JCaID4gdMO5bzsgIzg0MUEKK+iQmyA+IGrEq3U7ICM4NDFCCivokJwgPiB0acSTOyAjODQxQwor6JCdID4gbMO6bzsgIzg0MUQKK+iQoCA+IG3DqW5nOyAjODQyMAor6JCkID4gecOtbmc7ICM4NDI0CivokKUgPiB5w61uZzsgIzg0MjUKK+iQpiA+IHnDrW5nOyAjODQyNgor6JCnID4geGnEgW87ICM4NDI3CivokKggPiBzw6A7ICM4NDI4CivokKkgPiBxxKt1OyAjODQyOQor6JCqID4ga8STOyAjODQyQQor6JCrID4geGnDoG5nOyAjODQyQgor6JCsID4gd8OgbjsgIzg0MkMKK+iQrSA+IHnFrTsgIzg0MkQKK+iQriA+IHnDuTsgIzg0MkUKK+iQryA+IGbDuTsgIzg0MkYKK+iQsCA+IGxpw6BuOyAjODQzMAor6JCxID4geHXEgW47ICM4NDMxCivokLIgPiB5dcOhbjsgIzg0MzIKK+iQsyA+IG7DoW47ICM4NDMzCivokLQgPiB6w6k7ICM4NDM0CivokLUgPiB3xY07ICM4NDM1CivokLYgPiBjaMWtbjsgIzg0MzYKK+iQtyA+IHhpxIFvOyAjODQzNwor6JC4ID4gecO6OyAjODQzOAor6JC5ID4gcGnEgW47ICM4NDM5CivokLogPiBtw6BvOyAjODQzQQor6JC7ID4gxIFuOyAjODQzQgor6JC8ID4gw6g7ICM4NDNDCivokL0gPiBsw7lvOyAjODQzRAor6JC+ID4gecOtbmc7ICM4NDNFCivokL8gPiBow7pvOyAjODQzRgor6JGAID4gZ3XEgTsgIzg0NDAKK+iRgSA+IGppxIFuZzsgIzg0NDEKK+iRgiA+IG1pxINuOyAjODQ0Mgor6JGDID4gesO6bzsgIzg0NDMKK+iRhCA+IHrDuW87ICM4NDQ0CivokYUgPiBqxas7ICM4NDQ1CivokYYgPiBixINvOyAjODQ0Ngor6JGHID4gcsOzdTsgIzg0NDcKK+iRiCA+IHjErTsgIzg0NDgKK+iRiSA+IHhpw6k7ICM4NDQ5CivokYogPiDEgW47ICM4NDRBCivokYsgPiBxw7o7ICM4NDRCCivokYwgPiBqacSBbjsgIzg0NEMKK+iRjSA+IGbDujsgIzg0NEQKK+iRjiA+IGzHnDsgIzg0NEUKK+iRjyA+IGrEq25nOyAjODQ0Rgor6JGQID4gcMOpbjsgIzg0NTAKK+iRkSA+IGbEk25nOyAjODQ1MQor6JGSID4gaMOzbmc7ICM4NDUyCivokZMgPiBow7NuZzsgIzg0NTMKK+iRlCA+IGjDs3U7ICM4NDU0CivokZUgPiB5w6FuOyAjODQ1NQor6JGWID4gdMO6OyAjODQ1Ngor6JGXID4gemjDuTsgIzg0NTcKK+iRmCA+IHrEqzsgIzg0NTgKK+iRmSA+IHhpxIFuZzsgIzg0NTkKK+iRmiA+IHNow6huOyAjODQ1QQor6JGbID4gZ8SVOyAjODQ1Qgor6JGcID4gamnDqTsgIzg0NUMKK+iRnSA+IGrDrG5nOyAjODQ1RAor6JGeID4gbcStOyAjODQ1RQor6JGfID4gaHXDoW5nOyAjODQ1Rgor6JGgID4gc2jEk247ICM4NDYwCivokaEgPiBww7o7ICM4NDYxCivokaIgPiBnw6BpOyAjODQ2Mgor6JGjID4gZMWPbmc7ICM4NDYzCivokaQgPiB6aMOydTsgIzg0NjQKK+iRpSA+IHFpw6FuOyAjODQ2NQor6JGmID4gd8SVaTsgIzg0NjYKK+iRpyA+IGLDszsgIzg0NjcKK+iRqCA+IHfEk2k7ICM4NDY4CivokakgPiBwxIE7ICM4NDY5CivokaogPiBqw6w7ICM4NDZBCivokasgPiBow7o7ICM4NDZCCivokawgPiB6w6BuZzsgIzg0NkMKK+iRrSA+IGppxIE7ICM4NDZECivoka4gPiBkdcOgbjsgIzg0NkUKK+iRryA+IHnDoG87ICM4NDZGCivokbAgPiBqw7luOyAjODQ3MAor6JGxID4gY8WNbmc7ICM4NDcxCivokbIgPiBxdcOhbjsgIzg0NzIKK+iRsyA+IHfEk2k7ICM4NDczCivokbQgPiB4acOhbjsgIzg0NzQKK+iRtSA+IGvDumk7ICM4NDc1CivokbYgPiB0w61uZzsgIzg0NzYKK+iRtyA+IGjFq247ICM4NDc3CivokbggPiB4xK07ICM4NDc4CivokbkgPiBzaMSrOyAjODQ3OQor6JG6ID4gccOsOyAjODQ3QQor6JG7ID4gbMOhbjsgIzg0N0IKK+iRvCA+IHrFjW5nOyAjODQ3Qwor6JG9ID4gecSBbzsgIzg0N0QKK+iRviA+IHl1xIFuOyAjODQ3RQor6JG/ID4gbcOpaTsgIzg0N0YKK+iSgCA+IHnFq247ICM4NDgwCivokoEgPiBzaMO5OyAjODQ4MQor6JKCID4gZMOsOyAjODQ4Mgor6JKDID4gemh1w6BuOyAjODQ4Mwor6JKEID4gZ3XEgW47ICM4NDg0CivokoYgPiB4dcSTOyAjODQ4Ngor6JKHID4gY2jEg247ICM4NDg3CivokoggPiBrxINpOyAjODQ4OAor6JKJID4ga8O5aTsgIzg0ODkKK+iSiyA+IGppxINuZzsgIzg0OEIKK+iSjCA+IGzDs3U7ICM4NDhDCivoko0gPiB3w6lpOyAjODQ4RAor6JKOID4gcMOgaTsgIzg0OEUKK+iSkCA+IHPFjXU7ICM4NDkwCivokpEgPiB5xKtuOyAjODQ5MQor6JKSID4gc2jEqzsgIzg0OTIKK+iSkyA+IGNow7puOyAjODQ5Mwor6JKUID4gc2jDrTsgIzg0OTQKK+iSlSA+IHnFq247ICM4NDk1CivokpYgPiB6aMSTbjsgIzg0OTYKK+iSlyA+IGzDoG5nOyAjODQ5Nwor6JKYID4gbsO6OyAjODQ5OAor6JKZID4gbcOpbmc7ICM4NDk5CivokpogPiBow6k7ICM4NDlBCivokpsgPiBxdcSTOyAjODQ5Qgor6JKcID4gc3XDoG47ICM4NDlDCivokp0gPiB5dcOhbjsgIzg0OUQKK+iSniA+IGzDrDsgIzg0OUUKK+iSnyA+IGrFrTsgIzg0OUYKK+iSoCA+IHjDrTsgIzg0QTAKK+iSoSA+IHDDoW5nOyAjODRBMQor6JKiID4gY2jDujsgIzg0QTIKK+iSoyA+IHjDujsgIzg0QTMKK+iSpCA+IHTDujsgIzg0QTQKK+iSpSA+IGzDrXU7ICM4NEE1CivokqYgPiB3w7I7ICM4NEE2CivokqcgPiB6aMSTbjsgIzg0QTcKK+iSqCA+IHFpw6BuOyAjODRBOAor6JKpID4gesWrOyAjODRBOQor6JKqID4gcMOyOyAjODRBQQor6JKrID4gY8WrbzsgIzg0QUIKK+iSrCA+IHl1xIFuOyAjODRBQwor6JKtID4gY2jDujsgIzg0QUQKK+iSriA+IHnDuTsgIzg0QUUKK+iSryA+IGt1xINpOyAjODRBRgor6JKwID4gcMOhbjsgIzg0QjAKK+iSsSA+IHDDujsgIzg0QjEKK+iSsiA+IHDDujsgIzg0QjIKK+iSsyA+IG7DoDsgIzg0QjMKK+iStCA+IHNow7lvOyAjODRCNAor6JK1ID4geMSrOyAjODRCNQor6JK2ID4gZsOpbjsgIzg0QjYKK+iStyA+IHnDum47ICM4NEI3CivokrggPiB6aMSTbmc7ICM4NEI4CivokrkgPiBqacSBbjsgIzg0QjkKK+iSuiA+IGrDrTsgIzg0QkEKK+iSuyA+IHLDuW87ICM4NEJCCivokrwgPiBjxIFuZzsgIzg0QkMKK+iSvSA+IMSTbjsgIzg0QkQKK+iSviA+IG3DrTsgIzg0QkUKK+iSvyA+IGjEgW87ICM4NEJGCivok4AgPiBzxatuOyAjODRDMAor6JOBID4gemjEk247ICM4NEMxCivok4IgPiBtw61uZzsgIzg0QzIKK+iTgyA+IHNvdTsgIzg0QzMKK+iThCA+IHjDuTsgIzg0QzQKK+iThSA+IGzDrXU7ICM4NEM1Civok4YgPiB4w607ICM4NEM2Civok4cgPiBnxa07ICM4NEM3Civok4ggPiBsw6FuZzsgIzg0QzgKK+iTiSA+IHLDs25nOyAjODRDOQor6JOKID4gd8SVbmc7ICM4NENBCivok4sgPiBnw6BpOyAjODRDQgor6JOMID4gY8O5bzsgIzg0Q0MKK+iTjSA+IHNoxKs7ICM4NENECivok44gPiB0w6FuZzsgIzg0Q0UKK+iTjyA+IGzFrW87ICM4NENGCivok5AgPiByw7k7ICM4NEQwCivok5EgPiBzxatvOyAjODREMQor6JOSID4geGnEgW47ICM4NEQyCivok5MgPiBiw6hpOyAjODREMwor6JOUID4gecSDbzsgIzg0RDQKK+iTlSA+IGfDuWk7ICM4NEQ1Civok5YgPiBixKs7ICM4NEQ2Civok5cgPiB6xY9uZzsgIzg0RDcKK+iTmCA+IGfFrW47ICM4NEQ4Civok5ogPiB4xKt1OyAjODREQQor6JObID4gY8OoOyAjODREQgor6JOdID4gbMOhbjsgIzg0REQKK+iTnyA+IGrDrDsgIzg0REYKK+iToCA+IGzDrTsgIzg0RTAKK+iToSA+IGPEgW47ICM4NEUxCivok6IgPiBsw6FuZzsgIzg0RTIKK+iToyA+IHnDuTsgIzg0RTMKK+iTpSA+IHnDrG5nOyAjODRFNQor6JOmID4gbcOyOyAjODRFNgor6JOnID4gZGnDoG87ICM4NEU3Civok6ggPiB0acSBbzsgIzg0RTgKK+iTqSA+IG3DoG87ICM4NEU5Civok6ogPiB0xY1uZzsgIzg0RUEKK+iTqyA+IHpow7o7ICM4NEVCCivok6wgPiBww6luZzsgIzg0RUMKK+iTrSA+IMSBbjsgIzg0RUQKK+iTriA+IGxpw6FuOyAjODRFRQor6JOvID4gY8WNbmc7ICM4NEVGCivok7AgPiB4xK07ICM4NEYwCivok7EgPiBww61uZzsgIzg0RjEKK+iTsiA+IHHEq3U7ICM4NEYyCivok7MgPiBqw6xuOyAjODRGMwor6JO0ID4gY2jDum47ICM4NEY0Civok7UgPiBqacOpOyAjODRGNQor6JO2ID4gd8SVaTsgIzg0RjYKK+iTtyA+IHTFq2k7ICM4NEY3Civok7ggPiBjw6FvOyAjODRGOAor6JO5ID4gecWtOyAjODRGOQor6JO6ID4gecOsOyAjODRGQQor6JO7ID4gasOtOyAjODRGQgor6JO8ID4gbGnEg287ICM4NEZDCivok70gPiBiw6w7ICM4NEZECivok74gPiBsxa07ICM4NEZFCivok78gPiBzw7k7ICM4NEZGCivolIAgPiBiw7k7ICM4NTAwCivolIEgPiB6aMSBbmc7ICM4NTAxCivolIIgPiBsw7pvOyAjODUwMgor6JSDID4gamnDoG5nOyAjODUwMwor6JSEID4gbcOgbjsgIzg1MDQKK+iUhSA+IHnDoW47ICM4NTA1CivolIYgPiBsw61uZzsgIzg1MDYKK+iUhyA+IGrDrDsgIzg1MDcKK+iUiCA+IHBpxINvOyAjODUwOAor6JSJID4gZ8WtbjsgIzg1MDkKK+iUiiA+IGjEg247ICM4NTBBCivolIsgPiBkw607ICM4NTBCCivolIwgPiBzw7k7ICM4NTBDCivolI0gPiBsw7k7ICM4NTBECivolI4gPiBzaMOoOyAjODUwRQor6JSPID4gc2jEgW5nOyAjODUwRgor6JSQID4gZMOtOyAjODUxMAor6JSRID4gbWnDqDsgIzg1MTEKK+iUkiA+IHjFq247ICM4NTEyCivolJMgPiBtw6BuOyAjODUxMwor6JSUID4gYsOzOyAjODUxNAor6JSVID4gZMOsOyAjODUxNQor6JSWID4gY8O6bzsgIzg1MTYKK+iUlyA+IHpow6g7ICM4NTE3CivolJggPiBzxJNuOyAjODUxOAor6JSZID4geHXDoG47ICM4NTE5CivolJogPiB3w6hpOyAjODUxQQor6JSbID4gaMO6OyAjODUxQgor6JScID4gw6FvOyAjODUxQwor6JSdID4gbcStOyAjODUxRAor6JSeID4gbMOzdTsgIzg1MUUKK+iUnyA+IGPDuTsgIzg1MUYKK+iUoCA+IHpoxY1uZzsgIzg1MjAKK+iUoSA+IGPDoGk7ICM4NTIxCivolKIgPiBww7M7ICM4NTIyCivolKMgPiBqacSDbmc7ICM4NTIzCivolKQgPiBtw6w7ICM4NTI0CivolKUgPiBjxY1uZzsgIzg1MjUKK+iUpiA+IG5pxINvOyAjODUyNgor6JSnID4gaMO5aTsgIzg1MjcKK+iUqCA+IGrDuW47ICM4NTI4CivolKkgPiB5w61uOyAjODUyOQor6JSqID4gamnDoG47ICM4NTJBCivolKsgPiB5xIFuOyAjODUyQgor6JSsID4gc2jFqzsgIzg1MkMKK+iUrSA+IHnDrG47ICM4NTJECivolK4gPiBrw7lpOyAjODUyRQor6JSvID4gY2jDqW47ICM4NTJGCivolLAgPiBow7k7ICM4NTMwCivolLEgPiBzaMSBOyAjODUzMQor6JSyID4ga8OydTsgIzg1MzIKK+iUsyA+IHFpw6BuOyAjODUzMwor6JS0ID4gbcOhOyAjODUzNAor6JS1ID4gesSBbmc7ICM4NTM1CivolLcgPiBxacOhbmc7ICM4NTM3CivolLggPiBkxY11OyAjODUzOAor6JS5ID4gbGnDoG47ICM4NTM5CivolLogPiBsw6xuOyAjODUzQQor6JS7ID4ga8OydTsgIzg1M0IKK+iUvCA+IMSDaTsgIzg1M0MKK+iUvSA+IGLDrDsgIzg1M0QKK+iUviA+IGzDrTsgIzg1M0UKK+iUvyA+IHfDqWk7ICM4NTNGCivolYAgPiBqw607ICM4NTQwCivolYEgPiB4w7puOyAjODU0MQor6JWCID4gc2jDqG5nOyAjODU0Mgor6JWDID4gZsOhbjsgIzg1NDMKK+iVhCA+IG3DqW5nOyAjODU0NAor6JWFID4gxY91OyAjODU0NQor6JWGID4gY2jEg247ICM4NTQ2CivolYcgPiBkacSDbjsgIzg1NDcKK+iViCA+IHjDuW47ICM4NTQ4CivolYkgPiBqacSBbzsgIzg1NDkKK+iViiA+IHLFrWk7ICM4NTRBCivolYsgPiByxa1pOyAjODU0Qgor6JWMID4gbMSVaTsgIzg1NEMKK+iVjSA+IHnDujsgIzg1NEQKK+iVjiA+IHFpw6FvOyAjODU0RQor6JWPID4gY2jDujsgIzg1NEYKK+iVkCA+IGh1w6E7ICM4NTUwCivolZEgPiBqacSBbjsgIzg1NTEKK+iVkiA+IG3Eg2k7ICM4NTUyCivolZMgPiB5w7puOyAjODU1Mwor6JWUID4gYsSBbzsgIzg1NTQKK+iVlSA+IHnDs3U7ICM4NTU1CivolZYgPiBxw7o7ICM4NTU2CivolZcgPiBsw7k7ICM4NTU3CivolZggPiByw6FvOyAjODU1OAor6JWZID4gaMO5aTsgIzg1NTkKK+iVmiA+IMOoOyAjODU1QQor6JWbID4gdMOpbmc7ICM4NTVCCivolZwgPiBmxJVpOyAjODU1Qwor6JWdID4ganXDqTsgIzg1NUQKK+iVniA+IHrDuWk7ICM4NTVFCivolZ8gPiBmw6A7ICM4NTVGCivolaAgPiByw7o7ICM4NTYwCivolaEgPiBmw6luOyAjODU2MQor6JWiID4ga8O5aTsgIzg1NjIKK+iVoyA+IHNow7luOyAjODU2Mwor6JWkID4gcsO6aTsgIzg1NjQKK+iVpSA+IHnEgzsgIzg1NjUKK+iVpiA+IHjFqzsgIzg1NjYKK+iVpyA+IGbDuTsgIzg1NjcKK+iVqCA+IGp1w6k7ICM4NTY4CivolakgPiBkw6BuZzsgIzg1NjkKK+iVqiA+IHfDujsgIzg1NkEKK+iVqyA+IHTDs25nOyAjODU2Qgor6JWsID4gc8SrOyAjODU2Qwor6JWtID4geGnEgW87ICM4NTZECivola4gPiB4w6w7ICM4NTZFCivola8gPiBsw7NuZzsgIzg1NkYKK+iVsCA+IHnDuW47ICM4NTcwCivolbIgPiBxw607ICM4NTcyCivolbMgPiBqacSBbjsgIzg1NzMKK+iVtCA+IHnDuW47ICM4NTc0CivolbUgPiBzxatuOyAjODU3NQor6JW2ID4gbMOtbmc7ICM4NTc2CivolbcgPiB5w7k7ICM4NTc3CivolbggPiB4acOhOyAjODU3OAor6JW5ID4gecWNbmc7ICM4NTc5CivolbogPiBqw607ICM4NTdBCivolbsgPiBow7JuZzsgIzg1N0IKK+iVvCA+IHPDrDsgIzg1N0MKK+iVvSA+IG7Ds25nOyAjODU3RAor6JW+ID4gbMSVaTsgIzg1N0UKK+iVvyA+IHh1xIFuOyAjODU3Rgor6JaAID4gecO5bjsgIzg1ODAKK+iWgSA+IHnDuTsgIzg1ODEKK+iWgiA+IHjDrTsgIzg1ODIKK+iWgyA+IGjDoG87ICM4NTgzCivoloQgPiBiw7M7ICM4NTg0CivoloUgPiBoxIFvOyAjODU4NQor6JaGID4gw6BpOyAjODU4Ngor6JaHID4gd8OpaTsgIzg1ODcKK+iWiCA+IGjDuWk7ICM4NTg4CivolokgPiB3w6hpOyAjODU4OQor6JaKID4gasOsOyAjODU4QQor6JaLID4gY8SrOyAjODU4Qgor6JaMID4geGnEgW5nOyAjODU4Qwor6JaNID4gbHXDoG47ICM4NThECivolo4gPiBtacOoOyAjODU4RQor6JaPID4gecOsOyAjODU4Rgor6JaQID4gbMOpbmc7ICM4NTkwCivolpEgPiBqacSBbmc7ICM4NTkxCivolpIgPiBjw6BuOyAjODU5Mgor6JaTID4gc2jEk247ICM4NTkzCivolpQgPiBxacOhbmc7ICM4NTk0CivolpUgPiBsacOhbjsgIzg1OTUKK+iWliA+IGvEkzsgIzg1OTYKK+iWlyA+IHl1w6FuOyAjODU5Nwor6JaYID4gZMOhOyAjODU5OAor6JaZID4gdMOsOyAjODU5OQor6JaaID4gdMOhbmc7ICM4NTlBCivolpsgPiB4acSTOyAjODU5Qgor6JacID4gYsOsOyAjODU5Qwor6JadID4gemjDoW47ICM4NTlECivolp4gPiBzxatuOyAjODU5RQor6JafID4gbGnEg247ICM4NTlGCivolqAgPiBmw6FuOyAjODVBMAor6JahID4gZMStbmc7ICM4NUExCivolqIgPiBqacSTOyAjODVBMgor6JajID4gZ8WtOyAjODVBMwor6JakID4geGnDqDsgIzg1QTQKK+iWpSA+IHNoxa07ICM4NUE1CivolqYgPiBqacOgbjsgIzg1QTYKK+iWpyA+IGvEg287ICM4NUE3CivolqggPiBoxY1uZzsgIzg1QTgKK+iWqSA+IHPDoDsgIzg1QTkKK+iWqiA+IHjEq247ICM4NUFBCivolqsgPiB4xatuOyAjODVBQgor6JasID4gecOgbzsgIzg1QUMKK+iWriA+IHPFj3U7ICM4NUFFCivolq8gPiBzaMWtOyAjODVBRgor6JawID4geMWrbjsgIzg1QjAKK+iWsSA+IGTDuWk7ICM4NUIxCivolrIgPiBww61uOyAjODVCMgor6JazID4gd8SVaTsgIzg1QjMKK+iWtCA+IG7DqW5nOyAjODVCNAor6Ja1ID4gY2jDs3U7ICM4NUI1CivolrYgPiBtw6FpOyAjODVCNgor6Ja3ID4gcsO6OyAjODVCNwor6Ja4ID4gcGnEgW87ICM4NUI4CivolrkgPiB0w6FpOyAjODVCOQor6Ja6ID4gccOtOyAjODVCQQor6Ja7ID4gesSDbzsgIzg1QkIKK+iWvCA+IGNow6luOyAjODVCQwor6Ja9ID4gemjEk247ICM4NUJECivolr4gPiDElXI7ICM4NUJFCivolr8gPiBuxK07ICM4NUJGCivol4AgPiB5w61uZzsgIzg1QzAKK+iXgSA+IGfEg287ICM4NUMxCivol4IgPiBjw7JuZzsgIzg1QzIKK+iXgyA+IHhpxIFvOyAjODVDMwor6JeEID4gccOtOyAjODVDNAor6JeFID4gZsOhOyAjODVDNQor6JeGID4gamnEg247ICM4NUM2Civol4cgPiB4w7k7ICM4NUM3Civol4ggPiBrxatpOyAjODVDOAor6JeJID4gamnDqDsgIzg1QzkKK+iXiiA+IGJpxINuOyAjODVDQQor6JeLID4gZGnDoG87ICM4NUNCCivol4wgPiBtw6w7ICM4NUNDCivol40gPiBsw6FuOyAjODVDRAor6JeOID4gasOsbjsgIzg1Q0UKK+iXjyA+IGPDoW5nOyAjODVDRgor6JeQID4gbWnEg287ICM4NUQwCivol5EgPiBxw61vbmc7ICM4NUQxCivol5IgPiBxacOoOyAjODVEMgor6JeTID4geGnEg247ICM4NUQzCivol5UgPiDFj3U7ICM4NUQ1Civol5YgPiB4acOhbjsgIzg1RDYKK+iXlyA+IHPDuTsgIzg1RDcKK+iXmCA+IGzHmDsgIzg1RDgKK+iXmSA+IHnDrDsgIzg1RDkKK+iXmiA+IHjDuTsgIzg1REEKK+iXmyA+IHhpxJU7ICM4NURCCivol5wgPiBsw607ICM4NURDCivol50gPiB5w6w7ICM4NURECivol54gPiBsxIM7ICM4NURFCivol58gPiBsxJVpOyAjODVERgor6JegID4geGnDoG87ICM4NUUwCivol6EgPiBkw607ICM4NUUxCivol6IgPiB6aMStOyAjODVFMgor6JejID4gYsSTaTsgIzg1RTMKK+iXpCA+IHTDqW5nOyAjODVFNAor6JelID4gecOgbzsgIzg1RTUKK+iXpiA+IG3DsjsgIzg1RTYKK+iXpyA+IGh1xINuOyAjODVFNwor6JeoID4gcGnEg287ICM4NUU4Civol6kgPiBmw6FuOyAjODVFOQor6JeqID4gc8WPdTsgIzg1RUEKK+iXqyA+IHTDoW47ICM4NUVCCivol6wgPiB0xatpOyAjODVFQwor6JetID4gccOtb25nOyAjODVFRAor6JeuID4gcWnDoW87ICM4NUVFCivol68gPiB3w6hpOyAjODVFRgor6JewID4gbMOtdTsgIzg1RjAKK+iXsSA+IGjDuWk7ICM4NUYxCivol7MgPiBnxINvOyAjODVGMwor6Je0ID4gecO5bjsgIzg1RjQKK+iXtiA+IGzDrDsgIzg1RjYKK+iXtyA+IHNoxa07ICM4NUY3Civol7ggPiBjaMO6OyAjODVGOAor6Je5ID4gxINpOyAjODVGOQor6Je6ID4gbMOsbjsgIzg1RkEKK+iXuyA+IHrEg287ICM4NUZCCivol7wgPiB4dcSBbjsgIzg1RkMKK+iXvSA+IGNow6huOyAjODVGRAor6Je+ID4gbMOgaTsgIzg1RkUKK+iXvyA+IGjDuW87ICM4NUZGCivomIAgPiB0w7lvOyAjODYwMAor6JiBID4gd8O5OyAjODYwMQor6JiCID4gcsWtaTsgIzg2MDIKK+iYgyA+IHLFrWk7ICM4NjAzCivomIQgPiBxw607ICM4NjA0CivomIUgPiBow6luZzsgIzg2MDUKK+iYhiA+IGzDujsgIzg2MDYKK+iYhyA+IHPFqzsgIzg2MDcKK+iYiCA+IHTDumk7ICM4NjA4CivomIkgPiBtw6FuZzsgIzg2MDkKK+iYiiA+IHnDuW47ICM4NjBBCivomIsgPiBww61uOyAjODYwQgor6JiMID4gecWtOyAjODYwQwor6JiNID4geMWrbjsgIzg2MEQKK+iYjiA+IGrDrDsgIzg2MEUKK+iYjyA+IGrEq29uZzsgIzg2MEYKK+iYkCA+IHhpxIFuOyAjODYxMAor6JiRID4gbcOzOyAjODYxMQor6JiTID4gc8WrOyAjODYxMwor6JiUID4gasSrb25nOyAjODYxNAor6JiWID4gbmnDqDsgIzg2MTYKK+iYlyA+IGLDsjsgIzg2MTcKK+iYmCA+IHLDoW5nOyAjODYxOAor6JiZID4gecOsOyAjODYxOQor6JiaID4geGnEg247ICM4NjFBCivomJsgPiB5w7o7ICM4NjFCCivomJwgPiBqw7o7ICM4NjFDCivomJ0gPiBsacOgbjsgIzg2MUQKK+iYniA+IGxpw6BuOyAjODYxRQor6JifID4gecStbjsgIzg2MUYKK+iYoCA+IHFpw6FuZzsgIzg2MjAKK+iYoSA+IHnEq25nOyAjODYyMQor6JiiID4gbMOzbmc7ICM4NjIyCivomKMgPiB0w7JuZzsgIzg2MjMKK+iYpCA+IHfElWk7ICM4NjI0CivomKUgPiB5dcOoOyAjODYyNQor6JimID4gbMOtbmc7ICM4NjI2CivomKcgPiBxw7o7ICM4NjI3CivomKggPiB5w6FvOyAjODYyOAor6JipID4gZsOhbjsgIzg2MjkKK+iYqiA+IG3DrTsgIzg2MkEKK+iYqyA+IGzDoW47ICM4NjJCCivomKwgPiBrxatpOyAjODYyQwor6JitID4gbMOhbjsgIzg2MkQKK+iYriA+IGrDrDsgIzg2MkUKK+iYryA+IGTDoG5nOyAjODYyRgor6JixID4gbMOoaTsgIzg2MzEKK+iYsiA+IGzDqWk7ICM4NjMyCivomLMgPiBodcSDOyAjODYzMwor6Ji0ID4gZsSTbmc7ICM4NjM0CivomLUgPiB6aMOtOyAjODYzNQor6Ji2ID4gd8OoaTsgIzg2MzYKK+iYtyA+IGvDumk7ICM4NjM3CivomLggPiB6aMOgbjsgIzg2MzgKK+iYuSA+IGh1w6BpOyAjODYzOQor6Ji6ID4gbMOtOyAjODYzQQor6Ji7ID4gasOsOyAjODYzQgor6Ji8ID4gbcOtOyAjODYzQwor6Ji9ID4gbMSVaTsgIzg2M0QKK+iYviA+IGh1w6BpOyAjODYzRQor6Ji/ID4gbMO6bzsgIzg2M0YKK+iZgCA+IGrEqzsgIzg2NDAKK+iZgSA+IGvDumk7ICM4NjQxCivomYIgPiBsw7k7ICM4NjQyCivomYMgPiBqacSBbjsgIzg2NDMKK+iZhiA+IGzDqWk7ICM4NjQ2CivomYcgPiBxdcSDbjsgIzg2NDcKK+iZiCA+IHhpxIFvOyAjODY0OAor6JmJID4gecOsOyAjODY0OQor6JmKID4gbHXDoW47ICM4NjRBCivomYsgPiBtw6luOyAjODY0Qgor6JmMID4gYmnEkzsgIzg2NEMKK+iZjSA+IGjFqzsgIzg2NEQKK+iZjiA+IGjFrTsgIzg2NEUKK+iZjyA+IGzFrTsgIzg2NEYKK+iZkCA+IG7HnGU7ICM4NjUwCivomZEgPiBsx5w7ICM4NjUxCivomZIgPiBzxKs7ICM4NjUyCivomZMgPiB4acSBbzsgIzg2NTMKK+iZlCA+IHFpw6FuOyAjODY1NAor6JmVID4gY2jDuTsgIzg2NTUKK+iZliA+IGjFqzsgIzg2NTYKK+iZlyA+IHjFqzsgIzg2NTcKK+iZmCA+IGPDum87ICM4NjU4CivomZkgPiBmw7o7ICM4NjU5CivomZogPiB4xas7ICM4NjVBCivomZsgPiB4xas7ICM4NjVCCivomZwgPiBsxa07ICM4NjVDCivomZ0gPiBoxa07ICM4NjVECivomZ4gPiB5w7o7ICM4NjVFCivomZ8gPiBow6BvOyAjODY1Rgor6JmgID4gamnEg287ICM4NjYwCivomaEgPiBqw7k7ICM4NjYxCivomaIgPiBnw7pvOyAjODY2Mgor6JmjID4gYsOgbzsgIzg2NjMKK+iZpCA+IHnDoW47ICM4NjY0CivomaUgPiB6aMOgbjsgIzg2NjUKK+iZpiA+IHpow6BuOyAjODY2Ngor6JmnID4ga8WraTsgIzg2NjcKK+iZqCA+IGLEgW47ICM4NjY4CivomakgPiB4w6w7ICM4NjY5CivomaogPiBzaMO6OyAjODY2QQor6JmrID4gY2jDs25nOyAjODY2Qgor6JmsID4gccOtdTsgIzg2NkMKK+iZrSA+IGRpxIFvOyAjODY2RAor6JmuID4gasSrOyAjODY2RQor6JmvID4gccOtdTsgIzg2NkYKK+iZsCA+IGNow6luZzsgIzg2NzAKK+iZsSA+IHNoxKs7ICM4NjcxCivombMgPiBkw6w7ICM4NjczCivombQgPiB6aMOpOyAjODY3NAor6Jm1ID4gc2jDqTsgIzg2NzUKK+iZtiA+IHnFqzsgIzg2NzYKK+iZtyA+IGfEgW47ICM4Njc3CivombggPiB6xK07ICM4Njc4CivombkgPiBow7NuZzsgIzg2NzkKK+iZuiA+IGjFrWk7ICM4NjdBCivombsgPiBtw6luZzsgIzg2N0IKK+iZvCA+IGfDqDsgIzg2N0MKK+iZvSA+IHPFq2k7ICM4NjdECivomb4gPiB4acSBOyAjODY3RQor6Jm/ID4gY2jDoGk7ICM4NjdGCivomoAgPiBzaMOtOyAjODY4MAor6JqBID4gecStOyAjODY4MQor6JqCID4gbcSDOyAjODY4Mgor6JqDID4geGnDoG5nOyAjODY4Mwor6JqEID4gZsSBbmc7ICM4Njg0CivomoUgPiDDqDsgIzg2ODUKK+iahiA+IHDEgTsgIzg2ODYKK+iahyA+IGNoxK07ICM4Njg3CivomoggPiBxacSBbjsgIzg2ODgKK+iaiSA+IHfDqW47ICM4Njg5CivomoogPiB3w6luOyAjODY4QQor6JqLID4gcsO5aTsgIzg2OEIKK+iajCA+IGLDoG5nOyAjODY4Qwor6JqNID4gYsStOyAjODY4RAor6JqOID4geXXDqDsgIzg2OEUKK+iajyA+IHl1w6g7ICM4NjhGCivompAgPiBqxatuOyAjODY5MAor6JqRID4gccOtOyAjODY5MQor6JqSID4gcsOhbjsgIzg2OTIKK+iakyA+IHnErW47ICM4NjkzCivompQgPiBxw607ICM4Njk0CivompUgPiB0acSDbjsgIzg2OTUKK+ialiA+IHl1w6FuOyAjODY5Ngor6JqXID4ganXDqTsgIzg2OTcKK+iamCA+IGjDumk7ICM4Njk4CivompkgPiBxw61uOyAjODY5OQor6JqaID4gccOtOyAjODY5QQor6JqbID4gemjDsm5nOyAjODY5Qgor6JqcID4gecOhOyAjODY5Qwor6JqdID4gY8OsOyAjODY5RAor6JqeID4gbcO5OyAjODY5RQor6JqfID4gd8Ohbmc7ICM4NjlGCivomqAgPiBmw6luOyAjODZBMAor6JqhID4gZsOpbjsgIzg2QTEKK+iaoiA+IGjDoW5nOyAjODZBMgor6JqjID4gZ8WNbmc7ICM4NkEzCivomqQgPiB6xINvOyAjODZBNAor6JqlID4gZsWtOyAjODZBNQor6JqmID4gcsOhbjsgIzg2QTYKK+iapyA+IGppw6g7ICM4NkE3CivomqggPiBmw7o7ICM4NkE4CivomqkgPiBjaMSrOyAjODZBOQor6JqqID4gZMWPdTsgIzg2QUEKK+iaqyA+IHBpw6FvOyAjODZBQgor6JqsID4geGnDoG47ICM4NkFDCivomq0gPiBuw607ICM4NkFECivomq4gPiB0w6g7ICM4NkFFCivomq8gPiBxxKt1OyAjODZBRgor6JqwID4gecOzdTsgIzg2QjAKK+iasSA+IHpow6A7ICM4NkIxCivomrIgPiBww61uZzsgIzg2QjIKK+iasyA+IGNow607ICM4NkIzCivomrQgPiB5xY91OyAjODZCNAor6Jq1ID4gaMOpOyAjODZCNQor6Jq2ID4gaMSBbjsgIzg2QjYKK+iatyA+IGrDuTsgIzg2QjcKK+iauCA+IGzDrDsgIzg2QjgKK+iauSA+IGbDuTsgIzg2QjkKK+iauiA+IHLDoW47ICM4NkJBCivomrsgPiB6aMOhOyAjODZCQgor6Jq8ID4gZ8WPdTsgIzg2QkMKK+iavSA+IHDDrTsgIzg2QkQKK+iaviA+IGLFjzsgIzg2QkUKK+iavyA+IHhpw6FuOyAjODZCRgor6JuAID4gemjDuTsgIzg2QzAKK+ibgSA+IGRpxIFvOyAjODZDMQor6JuCID4gYmnElTsgIzg2QzIKK+ibgyA+IGLErW5nOyAjODZDMwor6JuEID4gZ8WrOyAjODZDNAor6JuFID4gcsOhbjsgIzg2QzUKK+ibhiA+IHHFqzsgIzg2QzYKK+ibhyA+IHNow6k7ICM4NkM3Civom4ggPiB0acOoOyAjODZDOAor6JuJID4gbMOtbmc7ICM4NkM5Civom4ogPiBnxa07ICM4NkNBCivom4sgPiBkw6BuOyAjODZDQgor6JuMID4gZ8WtOyAjODZDQwor6JuNID4gecOtbmc7ICM4NkNECivom44gPiBsw6w7ICM4NkNFCivom48gPiBjaMSTbmc7ICM4NkNGCivom5AgPiBxxas7ICM4NkQwCivom5EgPiBtw7N1OyAjODZEMQor6JuSID4gZ8OpOyAjODZEMgor6JuTID4gY8OsOyAjODZEMwor6JuUID4gaMO6aTsgIzg2RDQKK+iblSA+IGjDumk7ICM4NkQ1Civom5YgPiBtw6FuZzsgIzg2RDYKK+iblyA+IGbDuTsgIzg2RDcKK+ibmCA+IHnDoW5nOyAjODZEOAor6JuZID4gd8SBOyAjODZEOQor6JuaID4gbGnDqDsgIzg2REEKK+ibmyA+IHpoxas7ICM4NkRCCivom5wgPiB5xKs7ICM4NkRDCivom50gPiB4acOhbjsgIzg2REQKK+ibniA+IGvDuW87ICM4NkRFCivom58gPiBqacSBbzsgIzg2REYKK+iboCA+IGzDrDsgIzg2RTAKK+iboSA+IHnDrDsgIzg2RTEKK+iboiA+IHDDrW5nOyAjODZFMgor6JujID4gasSrOyAjODZFMwor6JukID4gaMOhOyAjODZFNAor6JulID4gc2jDqTsgIzg2RTUKK+ibpiA+IHnDrTsgIzg2RTYKK+ibpyA+IHfEg25nOyAjODZFNwor6JuoID4gbcOyOyAjODZFOAor6JupID4gccOtb25nOyAjODZFOQor6JuqID4gcWnDqDsgIzg2RUEKK+ibqyA+IGfFrWk7ICM4NkVCCivom6wgPiBnxY9uZzsgIzg2RUMKK+ibrSA+IHpow6w7ICM4NkVECivom64gPiBtw6FuOyAjODZFRQor6JuwID4gemjDrTsgIzg2RjAKK+ibsSA+IGppw6E7ICM4NkYxCivom7IgPiByw6FvOyAjODZGMgor6JuzID4gc8SrOyAjODZGMwor6Ju0ID4gccOtOyAjODZGNAor6Ju1ID4geMSrbmc7ICM4NkY1Civom7YgPiBsacOoOyAjODZGNgor6Ju3ID4gccOtdTsgIzg2RjcKK+ibuCA+IHNoxIFvOyAjODZGOAor6Ju5ID4gecWPbmc7ICM4NkY5Civom7ogPiBqacOhOyAjODZGQQor6Ju7ID4gc2jDuWk7ICM4NkZCCivom7wgPiBjaMSTOyAjODZGQwor6Ju9ID4gYsOgaTsgIzg2RkQKK+ibviA+IMOpOyAjODZGRQor6Ju/ID4gaMOgbjsgIzg2RkYKK+icgCA+IHNoxa07ICM4NzAwCivonIEgPiB4dcOhbjsgIzg3MDEKK+icgiA+IGbEk25nOyAjODcwMgor6JyDID4gc2jDqG47ICM4NzAzCivonIQgPiB6aMOobjsgIzg3MDQKK+ichSA+IGbFrTsgIzg3MDUKK+ichiA+IHhpw6BuOyAjODcwNgor6JyHID4gemjDqTsgIzg3MDcKK+iciCA+IHfDujsgIzg3MDgKK+iciSA+IGbDujsgIzg3MDkKK+iciiA+IGzDrTsgIzg3MEEKK+iciyA+IGzDoW5nOyAjODcwQgor6JyMID4gYsOsOyAjODcwQwor6JyNID4gY2jDujsgIzg3MEQKK+icjiA+IHl1xIFuOyAjODcwRQor6JyPID4gecWPdTsgIzg3MEYKK+ickCA+IGppw6k7ICM4NzEwCivonJEgPiBkw6BuOyAjODcxMQor6JySID4gecOhbjsgIzg3MTIKK+ickyA+IHTDrW5nOyAjODcxMwor6JyUID4gZGnDoG47ICM4NzE0CivonJUgPiBzaMO5aTsgIzg3MTUKK+icliA+IGjDumk7ICM4NzE2CivonJcgPiBndcSBOyAjODcxNwor6JyYID4gemjEqzsgIzg3MTgKK+icmSA+IHPFjW5nOyAjODcxOQor6JyaID4gZsSTaTsgIzg3MUEKK+icmyA+IGrFqzsgIzg3MUIKK+icnCA+IG3DrDsgIzg3MUMKK+icnSA+IHHDrTsgIzg3MUQKK+icniA+IHHDrTsgIzg3MUUKK+icnyA+IHnDuTsgIzg3MUYKK+icoCA+IGrFrW47ICM4NzIwCivonKEgPiB6aMOgOyAjODcyMQor6JyiID4gbcSVbmc7ICM4NzIyCivonKMgPiBxacSBbmc7ICM4NzIzCivonKQgPiBzxKs7ICM4NzI0CivonKUgPiB4xKs7ICM4NzI1CivonKYgPiBsw7puOyAjODcyNgor6JynID4gbMOsOyAjODcyNwor6JyoID4gZGnDqTsgIzg3MjgKK+icqSA+IHRpw6FvOyAjODcyOQor6JyqID4gdMSBbzsgIzg3MkEKK+icqyA+IGvFq247ICM4NzJCCivonKwgPiBnxIFuOyAjODcyQwor6JytID4gaMOgbjsgIzg3MkQKK+icriA+IHnDuTsgIzg3MkUKK+icryA+IGLDoG5nOyAjODcyRgor6JywID4gZsOpaTsgIzg3MzAKK+icsSA+IHDDrTsgIzg3MzEKK+icsiA+IHfElWk7ICM4NzMyCivonLMgPiBkxatuOyAjODczMwor6Jy0ID4gecOsOyAjODczNAor6Jy1ID4geXXEgW47ICM4NzM1CivonLYgPiBzw7k7ICM4NzM2CivonLcgPiBxdcOhbjsgIzg3MzcKK+icuCA+IHFpxINuOyAjODczOAor6Jy5ID4gcsO5aTsgIzg3MzkKK+icuiA+IG7DrTsgIzg3M0EKK+icuyA+IHHEq25nOyAjODczQgor6Jy8ID4gd8OoaTsgIzg3M0MKK+icvSA+IGxpxINuZzsgIzg3M0QKK+icviA+IGfFrW87ICM4NzNFCivonL8gPiB3xIFuOyAjODczRgor6J2AID4gZMWNbmc7ICM4NzQwCivonYEgPiDDqDsgIzg3NDEKK+idgiA+IGLEg247ICM4NzQyCivonYMgPiBkw6w7ICM4NzQzCivonYQgPiB3xINuZzsgIzg3NDQKK+idhSA+IGPDoW47ICM4NzQ1CivonYYgPiB5xINuZzsgIzg3NDYKK+idhyA+IHnDrW5nOyAjODc0Nwor6J2IID4gZ8WrbzsgIzg3NDgKK+idiSA+IGNow6FuOyAjODc0OQor6J2LID4gbMOgOyAjODc0Qgor6J2MID4ga8STOyAjODc0Qwor6J2NID4gasOtOyAjODc0RAor6J2OID4gaMOpOyAjODc0RQor6J2PID4gdMOtbmc7ICM4NzRGCivonZAgPiBtw6BpOyAjODc1MAor6J2RID4geMWrOyAjODc1MQor6J2SID4gbWnDoW47ICM4NzUyCivonZMgPiB5w7o7ICM4NzUzCivonZQgPiBqacSTOyAjODc1NAor6J2VID4gc2jDrTsgIzg3NTUKK+idliA+IHh1xIFuOyAjODc1Ngor6J2XID4gaHXDoW5nOyAjODc1Nwor6J2YID4gecSDbjsgIzg3NTgKK+idmSA+IGJpxIFuOyAjODc1OQor6J2aID4gcsOzdTsgIzg3NUEKK+idmyA+IHfEk2k7ICM4NzVCCivonZwgPiBmw7k7ICM4NzVDCivonZ0gPiB5dcOhbjsgIzg3NUQKK+idniA+IG3DqGk7ICM4NzVFCivonZ8gPiB3w6hpOyAjODc1Rgor6J2gID4gZsO6OyAjODc2MAor6J2hID4gcnXEg247ICM4NzYxCivonaIgPiB4acOpOyAjODc2Mgor6J2jID4gecOzdTsgIzg3NjMKK+idpCA+IHHDrXU7ICM4NzY0CivonaUgPiBtw6FvOyAjODc2NQor6J2mID4geGnEgTsgIzg3NjYKK+idpyA+IHnEq25nOyAjODc2Nwor6J2oID4gc2jEqzsgIzg3NjgKK+idqSA+IGNow7NuZzsgIzg3NjkKK+idqiA+IHTEgW5nOyAjODc2QQor6J2rID4gemjFqzsgIzg3NkIKK+idrCA+IHrFjW5nOyAjODc2Qwor6J2tID4gdMOtOyAjODc2RAor6J2uID4gZsO5OyAjODc2RQor6J2vID4geXXDoW47ICM4NzZGCivonbAgPiBoxa1pOyAjODc3MAor6J2xID4gbcOpbmc7ICM4NzcxCivonbIgPiBsw6A7ICM4NzcyCivonbMgPiBkw7o7ICM4NzczCivonbQgPiBow7o7ICM4Nzc0CivonbUgPiBxxKt1OyAjODc3NQor6J22ID4gZGnDqTsgIzg3NzYKK+idtyA+IGzDrDsgIzg3NzcKK+iduCA+IGd1xIE7ICM4Nzc4CivonbkgPiB5xatuOyAjODc3OQor6J26ID4gasWtOyAjODc3QQor6J27ID4gbsSDbjsgIzg3N0IKK+idvCA+IGzDs3U7ICM4NzdDCivonb0gPiBxxa1uOyAjODc3RAor6J2+ID4gcsOzbmc7ICM4NzdFCivonb8gPiB5w61uZzsgIzg3N0YKK+iegCA+IGppxIFuZzsgIzg3ODAKK+iegiA+IGzDoW5nOyAjODc4Mgor6J6DID4gcMOhbmc7ICM4NzgzCivonoQgPiBzxKs7ICM4Nzg0CivonoUgPiB4xKs7ICM4Nzg1CivonoYgPiBjw6w7ICM4Nzg2CivonocgPiB4xKs7ICM4Nzg3CivonoggPiB5dcOhbjsgIzg3ODgKK+ieiSA+IHfEk25nOyAjODc4OQor6J6KID4gbGnDoW47ICM4NzhBCivonosgPiBzxY11OyAjODc4Qgor6J6MID4gYsSBbjsgIzg3OEMKK+iejSA+IHLDs25nOyAjODc4RAor6J6OID4gcsOzbmc7ICM4NzhFCivono8gPiBqw607ICM4NzhGCivonpAgPiB3xas7ICM4NzkwCivonpEgPiBxw6x1OyAjODc5MQor6J6SID4gaMOgbjsgIzg3OTIKK+iekyA+IHHDrW47ICM4NzkzCivonpQgPiB5w607ICM4Nzk0CivonpUgPiBixKs7ICM4Nzk1CivonpYgPiBodcOhOyAjODc5Ngor6J6XID4gdMOhbmc7ICM4Nzk3CivonpggPiB5xK07ICM4Nzk4CivonpkgPiBkw7k7ICM4Nzk5CivonpogPiBuw6BpOyAjODc5QQor6J6bID4gaMOpOyAjODc5Qgor6J6cID4gaMO6OyAjODc5Qwor6J6dID4gaMO5aTsgIzg3OUQKK+ieniA+IG3EgzsgIzg3OUUKK+ienyA+IG3DrW5nOyAjODc5Rgor6J6gID4gecOsOyAjODdBMAor6J6hID4gd8OpbjsgIzg3QTEKK+ieoiA+IHnDrW5nOyAjODdBMgor6J6jID4gdMOpbmc7ICM4N0EzCivonqQgPiB5xa07ICM4N0E0CivonqUgPiBjxIFuZzsgIzg3QTUKK+ieqCA+IG3Eg247ICM4N0E4CivonqogPiBzaMSBbmc7ICM4N0FBCivonqsgPiB6aMSTOyAjODdBQgor6J6sID4gY8OhbzsgIzg3QUMKK+ierSA+IGNoxKs7ICM4N0FECivonq4gPiBkw6w7ICM4N0FFCivonq8gPiDDoW87ICM4N0FGCivonrAgPiBsw7k7ICM4N0IwCivonrEgPiB3w6hpOyAjODdCMQor6J6yID4gemjDrDsgIzg3QjIKK+iesyA+IHTDoW5nOyAjODdCMwor6J60ID4gY2jDqW47ICM4N0I0CivonrUgPiBwacSBbzsgIzg3QjUKK+ietiA+IHHDujsgIzg3QjYKK+ietyA+IHDDrTsgIzg3QjcKK+ieuCA+IHnDujsgIzg3QjgKK+ieuSA+IGppw6BuOyAjODdCOQor6J66ID4gbMO6bzsgIzg3QkEKK+ieuyA+IGzDs3U7ICM4N0JCCivonrwgPiBxxK1uOyAjODdCQwor6J69ID4gemjFjW5nOyAjODdCRAor6J6+ID4gecStbjsgIzg3QkUKK+ievyA+IGppxIFuZzsgIzg3QkYKK+ifgCA+IHNodcOgaTsgIzg3QzAKK+ifgSA+IHfDqW47ICM4N0MxCivon4IgPiBqacSBbzsgIzg3QzIKK+ifgyA+IHfDoG47ICM4N0MzCivon4QgPiB6aMOtOyAjODdDNAor6J+FID4gemjDqDsgIzg3QzUKK+ifhiA+IG3DoTsgIzg3QzYKK+ifhyA+IG3DoTsgIzg3QzcKK+ifiCA+IGfFq287ICM4N0M4Civon4kgPiBsw611OyAjODdDOQor6J+KID4gbcOhbzsgIzg3Q0EKK+ifiyA+IHjEqzsgIzg3Q0IKK+ifjCA+IGPFjW5nOyAjODdDQwor6J+NID4gbMOtOyAjODdDRAor6J+OID4gbcSDbjsgIzg3Q0UKK+ifjyA+IHhpxIFvOyAjODdDRgor6J+RID4gemjEgW5nOyAjODdEMQor6J+SID4gbcSDbmc7ICM4N0QyCivon5MgPiB4acOgbmc7ICM4N0QzCivon5QgPiBtw7I7ICM4N0Q0Civon5UgPiB6xatpOyAjODdENQor6J+WID4gc8SrOyAjODdENgor6J+XID4gccSrdTsgIzg3RDcKK+ifmCA+IHTDqDsgIzg3RDgKK+ifmSA+IHpow607ICM4N0Q5Civon5ogPiBww6luZzsgIzg3REEKK+ifmyA+IHDDqW5nOyAjODdEQgor6J+cID4gamnEg287ICM4N0RDCivon50gPiBxw7o7ICM4N0RECivon54gPiBiacOpOyAjODdERQor6J+fID4gbGnDoW87ICM4N0RGCivon6AgPiBww6FuOyAjODdFMAor6J+hID4gZ8WtaTsgIzg3RTEKK+ifoiA+IHjErTsgIzg3RTIKK+ifoyA+IGrErTsgIzg3RTMKK+ifpCA+IHpodcSBbjsgIzg3RTQKK+ifpSA+IGh1w6FuZzsgIzg3RTUKK+ifpiA+IGbDqGk7ICM4N0U2Civon6cgPiBsw6FvOyAjODdFNwor6J+oID4ganXDqTsgIzg3RTgKK+ifqSA+IGp1w6k7ICM4N0U5Civon6ogPiBow7lpOyAjODdFQQor6J+rID4gecOtbjsgIzg3RUIKK+ifrCA+IGNow6FuOyAjODdFQwor6J+tID4gamnEgW87ICM4N0VECivon64gPiBzaMOgbjsgIzg3RUUKK+ifryA+IHLDoW87ICM4N0VGCivon7AgPiB4acSBbzsgIzg3RjAKK+ifsSA+IG3Ds3U7ICM4N0YxCivon7IgPiBjaMOzbmc7ICM4N0YyCivon7MgPiB4w7puOyAjODdGMwor6J+0ID4gc8SrOyAjODdGNAor6J+2ID4gY2jEk25nOyAjODdGNgor6J+3ID4gZMSBbmc7ICM4N0Y3Civon7ggPiBsxK07ICM4N0Y4Civon7kgPiB4acOoOyAjODdGOQor6J+6ID4gc2jDoG47ICM4N0ZBCivon7sgPiB5xK07ICM4N0ZCCivon7wgPiBqxK1uZzsgIzg3RkMKK+ifvSA+IGTDoTsgIzg3RkQKK+ifviA+IGNow6FuOyAjODdGRQor6J+/ID4gccOsOyAjODdGRgor6KCAID4gY8SrOyAjODgwMAor6KCBID4geGnDoG5nOyAjODgwMQor6KCCID4gc2jDqDsgIzg4MDIKK+iggyA+IGzFrW87ICM4ODAzCivooIQgPiBxw61uOyAjODgwNAor6KCFID4gecOtbmc7ICM4ODA1CivooIYgPiBjaMOgaTsgIzg4MDYKK+ighyA+IGzDrDsgIzg4MDcKK+igiCA+IHrDqTsgIzg4MDgKK+igiSA+IHh1xIFuOyAjODgwOQor6KCKID4gbGnDoW47ICM4ODBBCivooIsgPiB6aMO6OyAjODgwQgor6KCMID4gesOpOyAjODgwQwor6KCNID4geGnEkzsgIzg4MEQKK+igjiA+IG3Eg25nOyAjODgwRQor6KCPID4geGnDqDsgIzg4MEYKK+igkCA+IHHDrTsgIzg4MTAKK+igkSA+IHLDs25nOyAjODgxMQor6KCSID4gamnEg247ICM4ODEyCivooJMgPiBtxJVuZzsgIzg4MTMKK+iglCA+IGjDoW87ICM4ODE0CivooJUgPiBydcSDbjsgIzg4MTUKK+igliA+IGjDuW87ICM4ODE2CivooJcgPiB6aMO6bzsgIzg4MTcKK+igmCA+IGppw6k7ICM4ODE4CivooJkgPiBixKtuOyAjODgxOQor6KCaID4gaMOoOyAjODgxQQor6KCbID4gbWnDqDsgIzg4MUIKK+ignCA+IGbDoW47ICM4ODFDCivooJ0gPiBsw6lpOyAjODgxRAor6KCeID4gamnDqTsgIzg4MUUKK+ignyA+IGzDoDsgIzg4MUYKK+igoCA+IG3DrDsgIzg4MjAKK+igoSA+IGzErTsgIzg4MjEKK+igoiA+IGNoxa1uOyAjODgyMgor6KCjID4gbMOsOyAjODgyMwor6KCkID4gccSrdTsgIzg4MjQKK+igpSA+IG5pw6g7ICM4ODI1CivooKYgPiBsw7o7ICM4ODI2CivooKcgPiBkw7k7ICM4ODI3CivooKggPiB4acSBbzsgIzg4MjgKK+igqSA+IHpoxas7ICM4ODI5CivooKogPiBsw7NuZzsgIzg4MkEKK+igqyA+IGzDrDsgIzg4MkIKK+igrCA+IGzDs25nOyAjODgyQwor6KCtID4gZsSTbmc7ICM4ODJECivooK4gPiB5xJM7ICM4ODJFCivooK8gPiBiw6huZzsgIzg4MkYKK+igsCA+IHNow6BuZzsgIzg4MzAKK+igsSA+IGfFrTsgIzg4MzEKK+igsiA+IGp1xIFuOyAjODgzMgor6KCzID4gecSrbmc7ICM4ODMzCivooLUgPiB4xKs7ICM4ODM1CivooLYgPiBjw6FuOyAjODgzNgor6KC3ID4gccO6OyAjODgzNwor6KC4ID4gcXXDoW47ICM4ODM4CivooLkgPiBkw7k7ICM4ODM5CivooLogPiBjw6FuOyAjODgzQQor6KC7ID4gbcOhbjsgIzg4M0IKK+igvCA+IGp1w6k7ICM4ODNDCivooL0gPiBqacOpOyAjODgzRAor6KC+ID4gemjDujsgIzg4M0UKK+igvyA+IHpow6E7ICM4ODNGCivooYAgPiB4acSVOyAjODg0MAor6KGBID4gaHXEgW5nOyAjODg0MQor6KGCID4gbsOsdTsgIzg4NDIKK+ihgyA+IHDEk2k7ICM4ODQzCivooYQgPiBux5w7ICM4ODQ0CivooYUgPiB4w6xuOyAjODg0NQor6KGGID4gemjDsm5nOyAjODg0Ngor6KGHID4gbcOyOyAjODg0Nwor6KGIID4gw6hyOyAjODg0OAor6KGJID4ga8OoOyAjODg0OQor6KGKID4gbWnDqDsgIzg4NEEKK+ihiyA+IHjDrDsgIzg4NEIKK+ihjCA+IHjDrW5nOyAjODg0Qwor6KGNID4gecSDbjsgIzg4NEQKK+ihjiA+IGvDoG47ICM4ODRFCivooY8gPiB5dcOgbjsgIzg4NEYKK+ihkSA+IGzDrW5nOyAjODg1MQor6KGSID4geHXDoG47ICM4ODUyCivooZMgPiBzaMO5OyAjODg1Mwor6KGUID4geGnDoW47ICM4ODU0CivooZUgPiB0w7JuZzsgIzg4NTUKK+ihliA+IGzDsm5nOyAjODg1Ngor6KGXID4gamnEkzsgIzg4NTcKK+ihmCA+IHhpw6FuOyAjODg1OAor6KGZID4gecOhOyAjODg1OQor6KGaID4gaMO6OyAjODg1QQor6KGbID4gd8OoaTsgIzg4NUIKK+ihnCA+IGTDoG87ICM4ODVDCivooZ0gPiBjaMWNbmc7ICM4ODVECivooZ4gPiB3w6hpOyAjODg1RQor6KGfID4gZMOgbzsgIzg4NUYKK+ihoCA+IHpoxatuOyAjODg2MAor6KGhID4gaMOpbmc7ICM4ODYxCivooaIgPiBxw7o7ICM4ODYyCivooaMgPiB5xKs7ICM4ODYzCivooaQgPiB5xKsnICd6w6wnICdww6FuZzsgIzg4NjQKK+ihpSA+IGLFrTsgIzg4NjUKK+ihpiA+IGfEg247ICM4ODY2CivooacgPiB5w7o7ICM4ODY3CivooaggPiBiacSDbzsgIzg4NjgKK+ihqSA+IGNow6A7ICM4ODY5CivooaogPiB5xK07ICM4ODZBCivooasgPiBzaMSBbjsgIzg4NkIKK+ihrCA+IGNow6huOyAjODg2Qwor6KGtID4gZsWrOyAjODg2RAor6KGuID4gZ8WtbjsgIzg4NkUKK+ihryA+IGbEk247ICM4ODZGCivoobAgPiBzaHXEgWk7ICM4ODcwCivoobEgPiBqacOpOyAjODg3MQor6KGyID4gbsOgOyAjODg3Mgor6KGzID4gemjFjW5nOyAjODg3Mwor6KG0ID4gZMSDbjsgIzg4NzQKK+ihtSA+IHLDrDsgIzg4NzUKK+ihtiA+IHpow7JuZzsgIzg4NzYKK+ihtyA+IHpoxY1uZzsgIzg4NzcKK+ihuCA+IHhpw6g7ICM4ODc4CivoobkgPiBxw607ICM4ODc5CivoobogPiB4acOpOyAjODg3QQor6KG7ID4gcsOhbjsgIzg4N0IKK+ihvCA+IHpoxKs7ICM4ODdDCivoob0gPiByw6huOyAjODg3RAor6KG+ID4gccSrbjsgIzg4N0UKK+ihvyA+IGrEq247ICM4ODdGCivoooAgPiBqxatuOyAjODg4MAor6KKBID4geXXDoW47ICM4ODgxCivoooIgPiBtw6hpOyAjODg4Mgor6KKDID4gY2jDoGk7ICM4ODgzCivoooQgPiDEg287ICM4ODg0CivoooUgPiBuacSDbzsgIzg4ODUKK+iihiA+IGjFq2k7ICM4ODg2CivooocgPiByw6FuOyAjODg4Nwor6KKIID4gamnEgTsgIzg4ODgKK+iiiSA+IHTDum87ICM4ODg5CivoooogPiBsxK1uZzsgIzg4OEEKK+iiiyA+IGTDoGk7ICM4ODhCCivooowgPiBiw6BvOyAjODg4Qwor6KKNID4gcMOhbzsgIzg4OEQKK+iijiA+IHnDoG87ICM4ODhFCivooo8gPiB6w7lvOyAjODg4Rgor6KKQID4gYsOsOyAjODg5MAor6KKRID4gc2jDoG87ICM4ODkxCivoopIgPiB0xINuOyAjODg5Mgor6KKTID4gasWtOyAjODg5Mwor6KKUID4gaMOoOyAjODg5NAor6KKVID4gc2jDuTsgIzg4OTUKK+iiliA+IHjDrHU7ICM4ODk2CivoopcgPiB6aMSVbjsgIzg4OTcKK+iimCA+IHnDrTsgIzg4OTgKK+iimSA+IHDDoDsgIzg4OTkKK+iimiA+IGLFjTsgIzg4OUEKK+iimyA+IGTEqzsgIzg4OUIKK+iinCA+IHfDoDsgIzg4OUMKK+iinSA+IGbDuTsgIzg4OUQKK+iiniA+IGfFrW47ICM4ODlFCivoop8gPiB6aMOsOyAjODg5Rgor6KKgID4gemjDrDsgIzg4QTAKK+iioSA+IHLDoW47ICM4OEExCivooqIgPiBww6BuOyAjODhBMgor6KKjID4gecOsOyAjODhBMwor6KKkID4gbcOgbzsgIzg4QTQKK+iipSA+IHR1bzsgIzg4QTUKK+iipiA+IG7DoDsgIzg4QTYKK+iipyA+IGvFjXU7ICM4OEE3CivooqggPiB4acOgbjsgIzg4QTgKK+iiqSA+IGNoxIFuOyAjODhBOQor6KKqID4gccWrOyAjODhBQQor6KKrID4gYsOoaTsgIzg4QUIKK+iirCA+IGfFrW47ICM4OEFDCivooq0gPiB4w607ICM4OEFECivooq8gPiBiw7M7ICM4OEFGCivoorEgPiBmw7o7ICM4OEIxCivoorIgPiB5w607ICM4OEIyCivoorMgPiBjaMStOyAjODhCMwor6KK0ID4ga8O5OyAjODhCNAor6KK1ID4gcsOobjsgIzg4QjUKK+iitiA+IGppw6BuZzsgIzg4QjYKK+iityA+IGppw6E7ICM4OEI3CivoorggPiBjw7puOyAjODhCOAor6KK5ID4gbcOyOyAjODhCOQor6KK6ID4gamnDqTsgIzg4QkEKK+iiuyA+IMOpcjsgIzg4QkIKK+iivCA+IGzDuW87ICM4OEJDCivoor0gPiByw7o7ICM4OEJECivoor4gPiB6aMWrOyAjODhCRQor6KK/ID4gZ8WraTsgIzg4QkYKK+ijgCA+IHnEq247ICM4OEMwCivoo4EgPiBjw6FpOyAjODhDMQor6KOCID4gbGnDqDsgIzg4QzIKK+ijhSA+IHpodcSBbmc7ICM4OEM1Civoo4YgPiBkxIFuZzsgIzg4QzYKK+ijiCA+IGvFq247ICM4OEM4Civoo4kgPiBrw6huOyAjODhDOQor6KOKID4gbmnEg287ICM4OENBCivoo4sgPiBzaMO5OyAjODhDQgor6KOMID4gamnDoTsgIzg4Q0MKK+ijjSA+IGvFrW47ICM4OENECivoo44gPiBjaMOpbmc7ICM4OENFCivoo48gPiBsxK07ICM4OENGCivoo5AgPiBqdcSBbjsgIzg4RDAKK+ijkSA+IHNoxJNuOyAjODhEMQor6KOSID4gcMOzdTsgIzg4RDIKK+ijkyA+IGfDqTsgIzg4RDMKK+ijlCA+IHnDrDsgIzg4RDQKK+ijlSA+IHnDuTsgIzg4RDUKK+ijliA+IHpoxJVuOyAjODhENgor6KOXID4gbMOtdTsgIzg4RDcKK+ijmCA+IHHDrXU7ICM4OEQ4Civoo5kgPiBxw7puOyAjODhEOQor6KOaID4gasOsOyAjODhEQQor6KObID4gecOsOyAjODhEQgor6KOcID4gYsWtOyAjODhEQwor6KOdID4gemh1xIFuZzsgIzg4REQKK+ijniA+IHNow7lpOyAjODhERQor6KOfID4gc2jEgTsgIzg4REYKK+ijoCA+IHHDum47ICM4OEUwCivoo6EgPiBsxK07ICM4OEUxCivoo6IgPiBsacOhbjsgIzg4RTIKK+ijoyA+IGxpw6BuOyAjODhFMwor6KOkID4ga8O5OyAjODhFNAor6KOlID4gamnEg247ICM4OEU1Civoo6YgPiBmw7N1OyAjODhFNgor6KOnID4gY2jEgW47ICM4OEU3Civoo6ggPiBiw6w7ICM4OEU4Civoo6kgPiBnxatuOyAjODhFOQor6KOqID4gdMOhbzsgIzg4RUEKK+ijqyA+IHl1w6BuOyAjODhFQgor6KOsID4gbMOtbmc7ICM4OEVDCivoo60gPiBjaMStOyAjODhFRAor6KOuID4gY2jEgW5nOyAjODhFRQor6KOvID4gY2jDs3U7ICM4OEVGCivoo7AgPiBkw7pvOyAjODhGMAor6KOxID4gYmnEg287ICM4OEYxCivoo7IgPiBsacSDbmc7ICM4OEYyCivoo7MgPiBjaMOhbmc7ICM4OEYzCivoo7QgPiBww6lpOyAjODhGNAor6KO1ID4gcMOpaTsgIzg4RjUKK+ijtiA+IGbEk2k7ICM4OEY2Civoo7cgPiB5dcSBbjsgIzg4RjcKK+ijuCA+IGzFrW87ICM4OEY4Civoo7kgPiBnxa1vOyAjODhGOQor6KO6ID4gecSDbjsgIzg4RkEKK+ijuyA+IGTFrTsgIzg4RkIKK+ijvCA+IHjDrTsgIzg4RkMKK+ijvSA+IHpow6w7ICM4OEZECivoo74gPiBqxas7ICM4OEZFCivoo78gPiBxxK07ICM4OEZGCivopIAgPiBqw6w7ICM4OTAwCivopIEgPiB6aMOtOyAjODkwMQor6KSCID4gZ3XDoDsgIzg5MDIKK+ikgyA+IGvDqG47ICM4OTAzCivopIUgPiB0w6w7ICM4OTA1CivopIYgPiB0w607ICM4OTA2CivopIcgPiBmw7k7ICM4OTA3CivopIggPiBjaMOzbmc7ICM4OTA4CivopIkgPiB4acSTOyAjODkwOQor6KSKID4gYmnEg247ICM4OTBBCivopIsgPiBkacOpOyAjODkwQgor6KSMID4ga8WrbjsgIzg5MEMKK+ikjSA+IGR1xIFuOyAjODkwRAor6KSOID4geMOsdTsgIzg5MEUKK+ikjyA+IHjDrHU7ICM4OTBGCivopJAgPiBow6k7ICM4OTEwCivopJEgPiB5dcOgbjsgIzg5MTEKK+ikkiA+IGLEgW87ICM4OTEyCivopJMgPiBixINvOyAjODkxMwor6KSUID4gZsO5OyAjODkxNAor6KSVID4gecO6OyAjODkxNQor6KSWID4gdHXDoG47ICM4OTE2CivopJcgPiB5xINuOyAjODkxNwor6KSYID4gaMWraTsgIzg5MTgKK+ikmSA+IGLDqGk7ICM4OTE5CivopJogPiBjaMWtOyAjODkxQQor6KSbID4gbMeaOyAjODkxQgor6KSeID4gecWtbjsgIzg5MUUKK+iknyA+IGTDoTsgIzg5MUYKK+ikoCA+IGfFjXU7ICM4OTIwCivopKEgPiBkxIE7ICM4OTIxCivopKIgPiBodcOhaTsgIzg5MjIKK+ikoyA+IHLDs25nOyAjODkyMwor6KSkID4geXXDoG47ICM4OTI0CivopKUgPiByw7k7ICM4OTI1CivopKYgPiBuw6BpOyAjODkyNgor6KSnID4gasStb25nOyAjODkyNwor6KSoID4gc8WtbzsgIzg5MjgKK+ikqSA+IGLEgW47ICM4OTI5CivopKogPiB0w7luOyAjODkyQQor6KSrID4gY2jErTsgIzg5MkIKK+ikrCA+IHPEg25nOyAjODkyQwor6KStID4gbmnEg287ICM4OTJECivopK4gPiB5xKtuZzsgIzg5MkUKK+ikryA+IGppw6g7ICM4OTJGCivopLAgPiBxacSBbjsgIzg5MzAKK+iksSA+IGh1w6FpOyAjODkzMQor6KSyID4ga8O5OyAjODkzMgor6KSzID4gbGnDoW47ICM4OTMzCivopLQgPiBixINvOyAjODkzNAor6KS1ID4gbMOtOyAjODkzNQor6KS2ID4gemjDqTsgIzg5MzYKK+iktyA+IHNoxKs7ICM4OTM3CivopLggPiBsx5o7ICM4OTM4CivopLkgPiB5w6w7ICM4OTM5CivopLogPiBkacOpOyAjODkzQQor6KS7ID4geGnDqDsgIzg5M0IKK+ikvCA+IHhpxIFuOyAjODkzQwor6KS9ID4gd8OoaTsgIzg5M0QKK+ikviA+IGJpxINvOyAjODkzRQor6KS/ID4gY8OhbzsgIzg5M0YKK+ilgCA+IGrEqzsgIzg5NDAKK+ilgSA+IGppxINuZzsgIzg5NDEKK+ilgiA+IHPEk247ICM4OTQyCivopYMgPiBixIFvOyAjODk0Mwor6KWEID4geGnEgW5nOyAjODk0NAor6KWGID4gcMO6OyAjODk0Ngor6KWHID4gamnEg247ICM4OTQ3CivopYggPiB6aHXDoG47ICM4OTQ4CivopYkgPiBqacOgbjsgIzg5NDkKK+iliiA+IHrDuWk7ICM4OTRBCivopYsgPiBqw607ICM4OTRCCivopYwgPiBkxIFuOyAjODk0Qwor6KWNID4gesOhOyAjODk0RAor6KWOID4gZsOhbjsgIzg5NEUKK+iljyA+IGLDszsgIzg5NEYKK+ilkCA+IHhpw6BuZzsgIzg5NTAKK+ilkSA+IHjDrW47ICM4OTUxCivopZIgPiBiacOpOyAjODk1Mgor6KWTID4gcsOhbzsgIzg5NTMKK+illCA+IG3Eg247ICM4OTU0CivopZUgPiBsw6FuOyAjODk1NQor6KWWID4gxINvOyAjODk1Ngor6KWXID4gZMO6bzsgIzg5NTcKK+ilmCA+IGfDuWk7ICM4OTU4CivopZkgPiBjw6BvOyAjODk1OQor6KWaID4gc8O5aTsgIzg5NUEKK+ilmyA+IG7Ds25nOyAjODk1Qgor6KWcID4gY2jEgW47ICM4OTVDCivopZ0gPiBsacOgbjsgIzg5NUQKK+ilniA+IGLDrDsgIzg5NUUKK+ilnyA+IGrEq247ICM4OTVGCivopaAgPiBkxIFuZzsgIzg5NjAKK+iloSA+IHNow7o7ICM4OTYxCivopaIgPiB0xINuOyAjODk2Mgor6KWjID4gYsOsOyAjODk2Mwor6KWkID4gbMOhbjsgIzg5NjQKK+ilpSA+IHDDujsgIzg5NjUKK+ilpiA+IHLDujsgIzg5NjYKK+ilpyA+IHpoxK07ICM4OTY3CivopakgPiBzaMWtOyAjODk2OQor6KWqID4gd8OgOyAjODk2QQor6KWrID4gc2jDrDsgIzg5NkIKK+ilrCA+IGLEg2k7ICM4OTZDCivopa0gPiB4acOpOyAjODk2RAor6KWuID4gYsOzOyAjODk2RQor6KWvID4gY2jDqG47ICM4OTZGCivopbAgPiBsw6BpOyAjODk3MAor6KWxID4gbMOzbmc7ICM4OTcxCivopbIgPiB4w607ICM4OTcyCivopbMgPiB4acSBbjsgIzg5NzMKK+iltCA+IGzDoW47ICM4OTc0CivopbUgPiB6aMOpOyAjODk3NQor6KW2ID4gZMOgaTsgIzg5NzYKK+iluCA+IHrDoG47ICM4OTc4CivopbkgPiBzaMSrOyAjODk3OQor6KW6ID4gamnEg247ICM4OTdBCivopbsgPiBww6BuOyAjODk3Qgor6KW8ID4gecOsOyAjODk3Qwor6KW+ID4gecOgOyAjODk3RQor6KW/ID4geMSrOyAjODk3Rgor6KaAID4geMSrOyAjODk4MAor6KaBID4gecOgbzsgIzg5ODEKK+imgiA+IGbElW5nOyAjODk4Mgor6KaDID4gdMOhbjsgIzg5ODMKK+imhSA+IGJpw6BvOyAjODk4NQor6KaGID4gZsO5OyAjODk4Ngor6KaHID4gYsOgOyAjODk4Nwor6KaIID4gaMOpOyAjODk4OAor6KaJID4gasSrOyAjODk4OQor6KaKID4gasSrOyAjODk4QQor6KaLID4gamnDoG47ICM4OThCCivopowgPiBndcSBbjsgIzg5OEMKK+imjSA+IGJpw6BuOyAjODk4RAor6KaOID4gecOgbjsgIzg5OEUKK+imjyA+IGfFq2k7ICM4OThGCivoppAgPiBqdcOpOyAjODk5MAor6KaRID4gcGnEg247ICM4OTkxCivoppIgPiBtw6FvOyAjODk5Mgor6KaTID4gbcOsOyAjODk5Mwor6KaUID4gbcOsOyAjODk5NAor6KaVID4gbWnDqDsgIzg5OTUKK+imliA+IHNow6w7ICM4OTk2CivoppcgPiBzxKs7ICM4OTk3CivoppggPiB6aMSBbjsgIzg5OTgKK+immSA+IGzDum87ICM4OTk5CivoppogPiBqdcOpOyAjODk5QQor6KabID4gbcOsOyAjODk5Qgor6KacID4gdGnDoG87ICM4OTlDCivopp0gPiBsacOhbjsgIzg5OUQKK+imniA+IHnDoG87ICM4OTlFCivopp8gPiB6aMOsOyAjODk5Rgor6KagID4gasWrbjsgIzg5QTAKK+imoSA+IHjDrTsgIzg5QTEKK+imoiA+IHNoxINuOyAjODlBMgor6KajID4gd8STaTsgIzg5QTMKK+impCA+IHjDrDsgIzg5QTQKK+impSA+IHRpxINuOyAjODlBNQor6KamID4gecO6OyAjODlBNgor6KanID4gbMSDbjsgIzg5QTcKK+imqCA+IMOoOyAjODlBOAor6KapID4gZMWtOyAjODlBOQor6KaqID4gccSrbjsgIzg5QUEKK+imqyA+IHDEg25nOyAjODlBQgor6KasID4gasOsOyAjODlBQwor6KatID4gbcOtbmc7ICM4OUFECivopq4gPiB5w61uZzsgIzg5QUUKK+imryA+IGfDsnU7ICM4OUFGCivoprAgPiBxw7k7ICM4OUIwCivoprEgPiB6aMOgbjsgIzg5QjEKK+imsiA+IGrErW47ICM4OUIyCivoprMgPiBndcSBbjsgIzg5QjMKK+imtCA+IGTEk25nOyAjODlCNAor6Ka1ID4gamnDoG47ICM4OUI1CivoprYgPiBsw7pvOyAjODlCNgor6Ka3ID4gccO5OyAjODlCNwor6Ka4ID4gamnDoG47ICM4OUI4CivoprkgPiB3w6lpOyAjODlCOQor6Ka6ID4ganXDqTsgIzg5QkEKK+imuyA+IHHDuTsgIzg5QkIKK+imvCA+IGzDum87ICM4OUJDCivopr0gPiBsxINuOyAjODlCRAor6Ka+ID4gc2jElW47ICM4OUJFCivopr8gPiBkw607ICM4OUJGCivop4AgPiBndcSBbjsgIzg5QzAKK+ingSA+IGppw6BuOyAjODlDMQor6KeCID4gZ3XEgW47ICM4OUMyCivop4MgPiB5w6BuOyAjODlDMwor6KeEID4gZ8WraTsgIzg5QzQKK+inhSA+IG3DrDsgIzg5QzUKK+inhiA+IHNow6w7ICM4OUM2Civop4cgPiB6aMSBbjsgIzg5QzcKK+iniCA+IGzEg247ICM4OUM4Civop4kgPiBqdcOpOyAjODlDOQor6KeKID4gasOsOyAjODlDQQor6KeLID4geMOtOyAjODlDQgor6KeMID4gZMOtOyAjODlDQwor6KeNID4gdGnEg247ICM4OUNECivop44gPiB5w7o7ICM4OUNFCivop48gPiBnw7J1OyAjODlDRgor6KeQID4gasStbjsgIzg5RDAKK+inkSA+IHHDuTsgIzg5RDEKK+inkiA+IGppxINvOyAjODlEMgor6KeTID4gasSrdTsgIzg5RDMKK+inlCA+IGrEq247ICM4OUQ0Civop5UgPiBjxas7ICM4OUQ1Civop5YgPiBqdcOpOyAjODlENgor6KeXID4gemjDrDsgIzg5RDcKK+inmCA+IGNow6BvOyAjODlEOAor6KeZID4gasOtOyAjODlEOQor6KeaID4gZ8WrOyAjODlEQQor6KebID4gZMOgbjsgIzg5REIKK+innCA+IHrFrWk7ICM4OURDCivop50gPiBkxK07ICM4OURECivop54gPiBzaMSBbmc7ICM4OURFCivop58gPiBodcOgOyAjODlERgor6KegID4gcXXDoW47ICM4OUUwCivop6EgPiBnw6k7ICM4OUUxCivop6IgPiBjaMOsOyAjODlFMgor6KejID4gamnElTsgIzg5RTMKK+inpCA+IGfFrWk7ICM4OUU0Civop6UgPiBnxY1uZzsgIzg5RTUKK+inpiA+IGjDs25nOyAjODlFNgor6KenID4gamnElTsgIzg5RTcKK+inqCA+IGjDuW47ICM4OUU4Civop6kgPiBxw611OyAjODlFOQor6KeqID4geMSrbmc7ICM4OUVBCivop6sgPiBzw7k7ICM4OUVCCivop6wgPiBuw607ICM4OUVDCivop60gPiBqxKs7ICM4OUVECivop64gPiBsw7k7ICM4OUVFCivop68gPiB6aMOsOyAjODlFRgor6KewID4gemjEgTsgIzg5RjAKK+insSA+IGLDrDsgIzg5RjEKK+insiA+IHjEq25nOyAjODlGMgor6KezID4gaMO6OyAjODlGMwor6Ke0ID4gc2jEgW5nOyAjODlGNAor6Ke1ID4gZ8WNbmc7ICM4OUY1Civop7YgPiB6aMOsOyAjODlGNgor6Ke3ID4geHXDqTsgIzg5RjcKK+inuCA+IGNow7k7ICM4OUY4Civop7kgPiB4xKs7ICM4OUY5Civop7ogPiB5w607ICM4OUZBCivop7sgPiBsw7k7ICM4OUZCCivop7wgPiBqdcOpOyAjODlGQwor6Ke9ID4geMSrOyAjODlGRAor6Ke+ID4gecOgbjsgIzg5RkUKK+invyA+IHjEqzsgIzg5RkYKK+iogCA+IHnDoW47ICM4QTAwCivoqIEgPiB5w6FuJyAnesOsJyAncMOhbmc7ICM4QTAxCivoqIIgPiBkw6xuZzsgIzhBMDIKK+iogyA+IGbDuTsgIzhBMDMKK+iohCA+IHHDrXU7ICM4QTA0CivoqIUgPiBxw611OyAjOEEwNQor6KiGID4gamnDoG87ICM4QTA2CivoqIcgPiBoxY1uZzsgIzhBMDcKK+ioiCA+IGrDrDsgIzhBMDgKK+ioiSA+IGbDoG47ICM4QTA5CivoqIogPiB4w7luOyAjOEEwQQor6KiLID4gZGnDoG87ICM4QTBCCivoqIwgPiBow7NuZzsgIzhBMEMKK+iojSA+IGNow6A7ICM4QTBECivoqI4gPiB0xINvOyAjOEEwRQor6KiPID4geMWrOyAjOEEwRgor6KiQID4gamnDqTsgIzhBMTAKK+iokSA+IHnDrTsgIzhBMTEKK+iokiA+IHLDqG47ICM4QTEyCivoqJMgPiB4w7luOyAjOEExMwor6KiUID4gecOtbjsgIzhBMTQKK+iolSA+IHNow6BuOyAjOEExNQor6KiWID4gccOsOyAjOEExNgor6KiXID4gdMWrbzsgIzhBMTcKK+iomCA+IGrDrDsgIzhBMTgKK+iomSA+IHjDuW47ICM4QTE5CivoqJogPiB5w61uOyAjOEExQQor6KibID4gw6k7ICM4QTFCCivoqJwgPiBmxJNuOyAjOEExQwor6KidID4gecOgOyAjOEExRAor6KieID4gecSBbzsgIzhBMUUKK+ionyA+IHPDsm5nOyAjOEExRgor6KigID4gc2jElW47ICM4QTIwCivoqKEgPiB5w61uOyAjOEEyMQor6KiiID4geMSrbjsgIzhBMjIKK+iooyA+IGp1w6k7ICM4QTIzCivoqKQgPiB4acOhbzsgIzhBMjQKK+iopSA+IG7DqDsgIzhBMjUKK+iopiA+IGNow6luOyAjOEEyNgor6KinID4gecOzdTsgIzhBMjcKK+ioqCA+IHpoxK07ICM4QTI4CivoqKkgPiB4xKtvbmc7ICM4QTI5CivoqKogPiBmxINuZzsgIzhBMkEKK+ioqyA+IHjDrG47ICM4QTJCCivoqKwgPiBjaMSBbzsgIzhBMkMKK+iorSA+IHNow6g7ICM4QTJECivoqK4gPiB4acSBbjsgIzhBMkUKK+ioryA+IHNoxIM7ICM4QTJGCivoqLAgPiB0w7puOyAjOEEzMAor6KixID4geMWtOyAjOEEzMQor6KiyID4gecOsOyAjOEEzMgor6KizID4gecOsOyAjOEEzMwor6Ki0ID4gc8O5OyAjOEEzNAor6Ki1ID4gY2jEqzsgIzhBMzUKK+iotiA+IGjEkzsgIzhBMzYKK+iotyA+IHNoxJNuOyAjOEEzNwor6Ki4ID4gaMOpOyAjOEEzOAor6Ki5ID4geMO5OyAjOEEzOQor6Ki6ID4gemjElW47ICM4QTNBCivoqLsgPiB6aMO5OyAjOEEzQgor6Ki8ID4gemjDqG5nOyAjOEEzQwor6Ki9ID4gZ8OydTsgIzhBM0QKK+ioviA+IHrErTsgIzhBM0UKK+iovyA+IHrErTsgIzhBM0YKK+ipgCA+IHpoxIFuOyAjOEE0MAor6KmBID4gZ8WtOyAjOEE0MQor6KmCID4gZsO5OyAjOEE0Mgor6KmDID4gcXXEg247ICM4QTQzCivoqYQgPiBkacOpOyAjOEE0NAor6KmFID4gbMOtbmc7ICM4QTQ1CivoqYYgPiBkxK07ICM4QTQ2CivoqYcgPiB5w6BuZzsgIzhBNDcKK+ipiCA+IGzDrDsgIzhBNDgKK+ipiSA+IG7DoW87ICM4QTQ5CivoqYogPiBww6BuOyAjOEE0QQor6KmLID4gemjDsnU7ICM4QTRCCivoqYwgPiBnw6BuOyAjOEE0Qwor6KmNID4gecOsOyAjOEE0RAor6KmOID4gasO5OyAjOEE0RQor6KmPID4gw6BvOyAjOEE0Rgor6KmQID4gemjDoDsgIzhBNTAKK+ipkSA+IHTDum87ICM4QTUxCivoqZIgPiB5w607ICM4QTUyCivoqZMgPiBxxa07ICM4QTUzCivoqZQgPiB6aMOgbzsgIzhBNTQKK+iplSA+IHDDrW5nOyAjOEE1NQor6KmWID4gYsOsOyAjOEE1Ngor6KmXID4geMOsb25nOyAjOEE1Nwor6KmYID4gccO5OyAjOEE1OAor6KmZID4gYsOhOyAjOEE1OQor6KmaID4gZMOhOyAjOEE1QQor6KmbID4gesWtOyAjOEE1Qgor6KmcID4gdMSBbzsgIzhBNUMKK+ipnSA+IHpoxa07ICM4QTVECivoqZ4gPiBjw607ICM4QTVFCivoqZ8gPiB6aMOpOyAjOEE1Rgor6KmgID4gecWPbmc7ICM4QTYwCivoqaEgPiB4xa07ICM4QTYxCivoqaIgPiB4w7puOyAjOEE2Mgor6KmjID4gecOsOyAjOEE2Mwor6KmkID4gaHXEg25nOyAjOEE2NAor6KmlID4gaMOpOyAjOEE2NQor6KmmID4gc2jDrDsgIzhBNjYKK+ippyA+IGNow6E7ICM4QTY3CivoqaggPiBqacSBbzsgIzhBNjgKK+ipqSA+IHNoxKs7ICM4QTY5CivoqaogPiBoxJVuOyAjOEE2QQor6KmrID4gY2jDoDsgIzhBNkIKK+iprCA+IGfDsnU7ICM4QTZDCivoqa0gPiBnxa1pOyAjOEE2RAor6KmuID4gcXXDoW47ICM4QTZFCivoqa8gPiBow7lpOyAjOEE2Rgor6KmwID4gamnDqTsgIzhBNzAKK+ipsSA+IGh1w6A7ICM4QTcxCivoqbIgPiBnxIFpOyAjOEE3Mgor6KmzID4geGnDoW5nOyAjOEE3Mwor6Km0ID4gd8STaTsgIzhBNzQKK+iptSA+IHNoxJNuOyAjOEE3NQor6Km2ID4gY2jDs3U7ICM4QTc2CivoqbcgPiB0w7NuZzsgIzhBNzcKK+ipuCA+IG3DrTsgIzhBNzgKK+ipuSA+IHpoxIFuOyAjOEE3OQor6Km6ID4gbcOsbmc7ICM4QTdBCivoqbsgPiDDqDsgIzhBN0IKK+ipvCA+IGjFq2k7ICM4QTdDCivoqb0gPiB5w6FuOyAjOEE3RAor6Km+ID4geMSrb25nOyAjOEE3RQor6Km/ID4gZ3XDoDsgIzhBN0YKK+iqgCA+IMOocjsgIzhBODAKK+iqgSA+IGLElW5nOyAjOEE4MQor6KqCID4gdGnEg287ICM4QTgyCivoqoMgPiBjaMStOyAjOEE4Mwor6KqEID4gbMSVaTsgIzhBODQKK+iqhSA+IHpoxas7ICM4QTg1CivoqoYgPiBrdcSBbmc7ICM4QTg2CivoqocgPiBrdcSBOyAjOEE4Nwor6KqIID4gd8O6OyAjOEE4OAor6KqJID4gecO5OyAjOEE4OQor6KqKID4gdMOpbmc7ICM4QThBCivoqosgPiBqw6w7ICM4QThCCivoqowgPiB6aMOsOyAjOEE4Qwor6KqNID4gcsOobjsgIzhBOEQKK+iqjiA+IHPDuTsgIzhBOEUKK+iqjyA+IGzEg25nOyAjOEE4Rgor6KqQID4gw6k7ICM4QTkwCivoqpEgPiBrdcOhbmc7ICM4QTkxCivoqpIgPiDDqDsgIzhBOTIKK+iqkyA+IHNow6w7ICM4QTkzCivoqpQgPiB0xK1uZzsgIzhBOTQKK+iqlSA+IGTDoG47ICM4QTk1CivoqpYgPiBiw7M7ICM4QTk2CivoqpcgPiBjaMOhbjsgIzhBOTcKK+iqmCA+IHnDsnU7ICM4QTk4CivoqpkgPiBow6luZzsgIzhBOTkKK+iqmiA+IHFpw6BvOyAjOEE5QQor6KqbID4gccSrbjsgIzhBOUIKK+iqnCA+IHNodcOgOyAjOEE5Qwor6KqdID4gxIFuOyAjOEE5RAor6KqeID4gecWtOyAjOEE5RQor6KqfID4geGnDoG87ICM4QTlGCivoqqAgPiBjaMOpbmc7ICM4QUEwCivoqqEgPiBqacOoOyAjOEFBMQor6KqiID4geGnDoG47ICM4QUEyCivoqqMgPiB3w7o7ICM4QUEzCivoqqQgPiB3w7k7ICM4QUE0CivoqqUgPiBnw6BvOyAjOEFBNQor6KqmID4gc8Oybmc7ICM4QUE2CivoqqcgPiBwxa07ICM4QUE3CivoqqggPiBow7lpOyAjOEFBOAor6KqpID4gasOsbmc7ICM4QUE5CivoqqogPiBzaMWrbzsgIzhBQUEKK+iqqyA+IHpow6huOyAjOEFBQgor6KqsID4gc2jFq287ICM4QUFDCivoqq0gPiBkw7o7ICM4QUFECivoqq8gPiBjaMOgbmc7ICM4QUFGCivoqrAgPiBzaMO6aTsgIzhBQjAKK+iqsSA+IGppw6k7ICM4QUIxCivoqrIgPiBrw6g7ICM4QUIyCivoqrMgPiBxxas7ICM4QUIzCivoqrQgPiBjw7NuZzsgIzhBQjQKK+iqtSA+IHhpw6FvOyAjOEFCNQor6Kq2ID4gc8O5aTsgIzhBQjYKK+iqtyA+IHfEg25nOyAjOEFCNwor6Kq4ID4geHXDoW47ICM4QUI4CivoqrkgPiBmxJVpOyAjOEFCOQor6Kq6ID4gY2jEqzsgIzhBQkEKK+iquyA+IHTDoDsgIzhBQkIKK+iqvCA+IHnDrTsgIzhBQkMKK+iqvSA+IG7DoTsgIzhBQkQKK+iqviA+IHnDrW47ICM4QUJFCivoqr8gPiBkacOgbzsgIzhBQkYKK+irgCA+IHDErTsgIzhBQzAKK+irgSA+IGNow7lvOyAjOEFDMQor6KuCID4gY2jEg247ICM4QUMyCivoq4MgPiBjaMSTbjsgIzhBQzMKK+irhCA+IHpoxatuOyAjOEFDNAor6KuFID4gasSrOyAjOEFDNQor6KuGID4gccSrOyAjOEFDNgor6KuHID4gdMOhbjsgIzhBQzcKK+iriCA+IHpow7lpOyAjOEFDOAor6KuJID4gd8SVaTsgIzhBQzkKK+iriiA+IGrDujsgIzhBQ0EKK+iriyA+IHHErW5nOyAjOEFDQgor6KuMID4gamnDoG47ICM4QUNDCivoq40gPiB6aMSTbmc7ICM4QUNECivoq44gPiB6w6k7ICM4QUNFCivoq48gPiB6xY11OyAjOEFDRgor6KuQID4gcWnEgW47ICM4QUQwCivoq5EgPiB6aMO6bzsgIzhBRDEKK+irkiA+IGxpw6BuZzsgIzhBRDIKK+irkyA+IGppw6BuOyAjOEFEMwor6KuUID4gemjDuTsgIzhBRDQKK+irlSA+IGjDoW87ICM4QUQ1Civoq5YgPiBsw7luOyAjOEFENgor6KuXID4gc2jElW47ICM4QUQ3Civoq5ggPiBiacSDbzsgIzhBRDgKK+irmSA+IGh1w6BpOyAjOEFEOQor6KuaID4gcGnDoW47ICM4QURBCivoq5sgPiB5w7o7ICM4QURCCivoq5wgPiBkacOpOyAjOEFEQwor6KudID4geMWtOyAjOEFERAor6KueID4gcGnDoW47ICM4QURFCivoq58gPiBzaMOsOyAjOEFERgor6KugID4geHXEgW47ICM4QUUwCivoq6EgPiBzaMOsOyAjOEFFMQor6KuiID4gaMO5bjsgIzhBRTIKK+iroyA+IGh1w6A7ICM4QUUzCivoq6QgPiDDqDsgIzhBRTQKK+irpSA+IHpow7JuZzsgIzhBRTUKK+irpiA+IGTDrDsgIzhBRTYKK+irpyA+IHhpw6k7ICM4QUU3Civoq6ggPiBmw7o7ICM4QUU4Civoq6kgPiBwxa07ICM4QUU5Civoq6ogPiB0w61uZzsgIzhBRUEKK+irqyA+IGppw6BuOyAjOEFFQgor6KusID4gccStOyAjOEFFQwor6KutID4gecO5OyAjOEFFRAor6KuuID4gesSrOyAjOEFFRQor6KuvID4gY2h1w6FuOyAjOEFFRgor6KuwID4geMStOyAjOEFGMAor6KuxID4gaMO5aTsgIzhBRjEKK+irsiA+IHnEq247ICM4QUYyCivoq7MgPiDEgW47ICM4QUYzCivoq7QgPiB4acOhbjsgIzhBRjQKK+irtSA+IG7DoW47ICM4QUY1Civoq7YgPiBjaMOpbjsgIzhBRjYKK+irtyA+IGbEk25nOyAjOEFGNwor6Ku4ID4gemjFqzsgIzhBRjgKK+iruSA+IHnDoW5nOyAjOEFGOQor6Ku6ID4gecOgbjsgIzhBRkEKK+iruyA+IGjEk25nOyAjOEFGQgor6Ku8ID4geHXEgW47ICM4QUZDCivoq70gPiBnw6k7ICM4QUZECivoq74gPiBuw7lvOyAjOEFGRQor6Ku/ID4gccOsOyAjOEFGRgor6KyAID4gbcOzdTsgIzhCMDAKK+isgSA+IHnDqDsgIzhCMDEKK+isgiA+IHfDqGk7ICM4QjAyCivorIQgPiB0w6luZzsgIzhCMDQKK+ishSA+IHrFjXU7ICM4QjA1CivorIYgPiBzaMOgbjsgIzhCMDYKK+ishyA+IGppxINuOyAjOEIwNwor6KyIID4gYsOzOyAjOEIwOAor6KyJID4ga8O5MTsgIzhCMDkKK+isiiA+IGh1xINuZzsgIzhCMEEKK+isiyA+IGjDuW87ICM4QjBCCivorIwgPiBnxJM7ICM4QjBDCivorI0gPiB5w61uZzsgIzhCMEQKK+isjiA+IG3DrTsgIzhCMEUKK+isjyA+IHhpxINvOyAjOEIwRgor6KyQID4gbcOsOyAjOEIxMAor6KyRID4geMOsOyAjOEIxMQor6KySID4gcWnEgW5nOyAjOEIxMgor6KyTID4gY2jEk247ICM4QjEzCivorJQgPiBux5xlOyAjOEIxNAor6KyVID4gdMOtOyAjOEIxNQor6KyWID4gc8O5OyAjOEIxNgor6KyXID4gYsOgbmc7ICM4QjE3CivorJggPiBjaMOtOyAjOEIxOAor6KyZID4gcWnEgW47ICM4QjE5CivorJogPiBzaMOsOyAjOEIxQQor6KybID4gamnEg25nOyAjOEIxQgor6KycID4geXXDoG47ICM4QjFDCivorJ0gPiB4acOoOyAjOEIxRAor6KyeID4geHXDqDsgIzhCMUUKK+isnyA+IHTEgW87ICM4QjFGCivorKAgPiB5w6FvOyAjOEIyMAor6KyhID4gecOhbzsgIzhCMjEKK+isoyA+IHnDujsgIzhCMjMKK+ispCA+IGJpxIFvOyAjOEIyNAor6KylID4gY8Oybmc7ICM4QjI1CivorKYgPiBxw6xuZzsgIzhCMjYKK+ispyA+IGzDrTsgIzhCMjcKK+isqCA+IG3DszsgIzhCMjgKK+isqSA+IG3DsjsgIzhCMjkKK+isqiA+IHNoxIFuZzsgIzhCMkEKK+isqyA+IHpow6k7ICM4QjJCCivorKwgPiBtw6x1OyAjOEIyQwor6KytID4gamnEg247ICM4QjJECivorK4gPiB6w6k7ICM4QjJFCivorK8gPiBqacSTOyAjOEIyRgor6KywID4gbGnDoW47ICM4QjMwCivorLEgPiBsw7N1OyAjOEIzMQor6KyyID4gY8SBbjsgIzhCMzIKK+issyA+IMWNdTsgIzhCMzMKK+istCA+IGd1w6BuOyAjOEIzNAor6Ky1ID4geMOtOyAjOEIzNQor6Ky2ID4gemjDum87ICM4QjM2CivorLcgPiDDoW87ICM4QjM3CivorLggPiDDoW87ICM4QjM4CivorLkgPiBqxK1uOyAjOEIzOQor6Ky6ID4gemjDqTsgIzhCM0EKK+isuyA+IHnDrTsgIzhCM0IKK+isvCA+IGjDuTsgIzhCM0MKK+isvSA+IGppw6BuZzsgIzhCM0QKK+isviA+IG3DoW47ICM4QjNFCivorL8gPiBjaMOhbzsgIzhCM0YKK+itgCA+IGjDoG47ICM4QjQwCivorYEgPiBodcOhOyAjOEI0MQor6K2CID4gY2jEg247ICM4QjQyCivorYMgPiB4xas7ICM4QjQzCivorYQgPiB6xJNuZzsgIzhCNDQKK+ithSA+IHPDqDsgIzhCNDUKK+ithiA+IHjEqzsgIzhCNDYKK+ithyA+IHNoxJM7ICM4QjQ3CivorYggPiBkw7lpOyAjOEI0OAor6K2JID4gemjDqG5nOyAjOEI0OQor6K2KID4gbsOhbzsgIzhCNEEKK+itiyA+IGzDoW47ICM4QjRCCivorYwgPiDDqTsgIzhCNEMKK+itjSA+IHnDrG5nOyAjOEI0RAor6K2OID4ganXDqTsgIzhCNEUKK+itjyA+IGrEqzsgIzhCNEYKK+itkCA+IHrFrW47ICM4QjUwCivorZEgPiBqacSDbzsgIzhCNTEKK+itkiA+IGLDsjsgIzhCNTIKK+itkyA+IGjDuWk7ICM4QjUzCivorZQgPiB6aHXDoG47ICM4QjU0CivorZUgPiBtw7o7ICM4QjU1CivorZYgPiB6w6huOyAjOEI1Ngor6K2XID4gemjDoTsgIzhCNTcKK+itmCA+IHNow6w7ICM4QjU4CivorZkgPiBxacOhbzsgIzhCNTkKK+itmiA+IHTDoW47ICM4QjVBCivorZsgPiB6w6huOyAjOEI1Qgor6K2cID4gcMWtOyAjOEI1Qwor6K2dID4gc2jDqW5nOyAjOEI1RAor6K2eID4geHXEgW47ICM4QjVFCivorZ8gPiB6w6BvOyAjOEI1Rgor6K2gID4gdMSBbjsgIzhCNjAKK+itoSA+IGTEg25nOyAjOEI2MQor6K2iID4gc8O5aTsgIzhCNjIKK+itoyA+IHFpxIFuOyAjOEI2Mwor6K2kID4gasSrOyAjOEI2NAor6K2lID4gamnDoG87ICM4QjY1CivoraYgPiBqxK1uZzsgIzhCNjYKK+itpyA+IGxpw6FuOyAjOEI2Nwor6K2oID4gbsOzdTsgIzhCNjgKK+itqSA+IHnEqzsgIzhCNjkKK+itqiA+IMOgaTsgIzhCNkEKK+itqyA+IHpoxIFuOyAjOEI2Qgor6K2sID4gcMOsOyAjOEI2Qwor6K2tID4gaMWtaTsgIzhCNkQKK+itriA+IGh1w6A7ICM4QjZFCivora8gPiB5w6w7ICM4QjZGCivorbAgPiB5w6w7ICM4QjcwCivorbEgPiBzaMOgbjsgIzhCNzEKK+itsiA+IHLDoG5nOyAjOEI3Mgor6K2zID4gbsOydTsgIzhCNzMKK+ittCA+IHFpxINuOyAjOEI3NAor6K21ID4gemjDuWk7ICM4Qjc1CivorbYgPiB0w6A7ICM4Qjc2CivorbcgPiBow7k7ICM4Qjc3CivorbggPiB6aMWNdTsgIzhCNzgKK+ituSA+IGjDoW87ICM4Qjc5CivorbogPiB5w6g7ICM4QjdBCivorbsgPiB5xKtuZzsgIzhCN0IKK+itvCA+IGppw6BuOyAjOEI3Qwor6K29ID4gecO5OyAjOEI3RAor6K2+ID4gamnEg247ICM4QjdFCivorb8gPiBow7lpOyAjOEI3Rgor6K6AID4gZMO6OyAjOEI4MAor6K6BID4gemjDqTsgIzhCODEKK+iugiA+IHh1w6BuOyAjOEI4Mgor6K6DID4gesOgbjsgIzhCODMKK+iuhCA+IGzElWk7ICM4Qjg0CivoroUgPiBzaMSVbjsgIzhCODUKK+iuhiA+IHfDqGk7ICM4Qjg2CivorocgPiBjaMSDbjsgIzhCODcKK+iuiCA+IGzDrDsgIzhCODgKK+iuiSA+IHnDrTsgIzhCODkKK+iuiiA+IGJpw6BuOyAjOEI4QQor6K6LID4gemjDqTsgIzhCOEIKK+iujCA+IHnDoG47ICM4QjhDCivoro0gPiDDqDsgIzhCOEQKK+iujiA+IGNow7N1OyAjOEI4RQor6K6PID4gd8OoaTsgIzhCOEYKK+iukCA+IGNow7N1OyAjOEI5MAor6K6RID4gecOgbzsgIzhCOTEKK+iukiA+IGNow6FuOyAjOEI5Mgor6K6TID4gcsOgbmc7ICM4QjkzCivorpQgPiB5xK1uOyAjOEI5NAor6K6VID4gbMOhbjsgIzhCOTUKK+iuliA+IGNow6huOyAjOEI5Ngor6K6XID4gaMO5bzsgIzhCOTcKK+iumCA+IHpow6k7ICM4Qjk4CivorpkgPiBodcSBbjsgIzhCOTkKK+iumiA+IHrDoG47ICM4QjlBCivorpsgPiB5w6w7ICM4QjlCCivorpwgPiBkxINuZzsgIzhCOUMKK+iunSA+IHpoxIFuOyAjOEI5RAor6K6eID4gecOgbjsgIzhCOUUKK+iunyA+IGTDujsgIzhCOUYKK+iuoCA+IHnDoW47ICM4QkEwCivorqEgPiBqw6w7ICM4QkExCivorqIgPiBkw6xuZzsgIzhCQTIKK+iuoyA+IGbDuTsgIzhCQTMKK+iupCA+IHLDqG47ICM4QkE0CivorqUgPiBqxKs7ICM4QkE1CivorqYgPiBqacOpOyAjOEJBNgor6K6nID4gaMOzbmc7ICM4QkE3CivorqggPiB0xINvOyAjOEJBOAor6K6pID4gcsOgbmc7ICM4QkE5CivorqogPiBzaMOgbjsgIzhCQUEKK+iuqyA+IHHDrDsgIzhCQUIKK+iurCA+IHTFq287ICM4QkFDCivorq0gPiB4w7luOyAjOEJBRAor6K6uID4gecOsOyAjOEJBRQor6K6vID4geMO5bjsgIzhCQUYKK+iusCA+IGrDrDsgIzhCQjAKK+iusSA+IHLDqG47ICM4QkIxCivorrIgPiBqacSDbmc7ICM4QkIyCivorrMgPiBow7lpOyAjOEJCMwor6K60ID4gxY11OyAjOEJCNAor6K61ID4gasO5OyAjOEJCNQor6K62ID4gecOgOyAjOEJCNgor6K63ID4gbsOoOyAjOEJCNwor6K64ID4geMWtOyAjOEJCOAor6K65ID4gw6k7ICM4QkI5CivorrogPiBsw7luOyAjOEJCQQor6K67ID4geMSrb25nOyAjOEJCQgor6K68ID4gc8Oybmc7ICM4QkJDCivorr0gPiBmxJNuZzsgIzhCQkQKK+iuviA+IHNow6g7ICM4QkJFCivorr8gPiBmxINuZzsgIzhCQkYKK+ivgCA+IGp1w6k7ICM4QkMwCivor4EgPiB6aMOobmc7ICM4QkMxCivor4IgPiBnxa07ICM4QkMyCivor4MgPiBoxJM7ICM4QkMzCivor4QgPiBww61uZzsgIzhCQzQKK+ivhSA+IHrFrTsgIzhCQzUKK+ivhiA+IHNow6w7ICM4QkM2Civor4cgPiB4w6xvbmc7ICM4QkM3Civor4ggPiB6aMOgOyAjOEJDOAor6K+JID4gc8O5OyAjOEJDOQor6K+KID4gemjElW47ICM4QkNBCivor4sgPiBkxK07ICM4QkNCCivor4wgPiB6xY11OyAjOEJDQwor6K+NID4gY8OtOyAjOEJDRAor6K+OID4gccO5OyAjOEJDRQor6K+PID4gemjDoG87ICM4QkNGCivor5AgPiBiw6w7ICM4QkQwCivor5EgPiB5w6w7ICM4QkQxCivor5IgPiB5w607ICM4QkQyCivor5MgPiBrdcSBbmc7ICM4QkQzCivor5QgPiBsxJVpOyAjOEJENAor6K+VID4gc2jDrDsgIzhCRDUKK+ivliA+IGd1w6A7ICM4QkQ2Civor5cgPiBzaMSrOyAjOEJENwor6K+YID4gamnDqTsgIzhCRDgKK+ivmSA+IGjFq2k7ICM4QkQ5Civor5ogPiBjaMOpbmc7ICM4QkRBCivor5sgPiB6aMWrOyAjOEJEQgor6K+cID4gc2jEk247ICM4QkRDCivor50gPiBodcOgOyAjOEJERAor6K+eID4gZMOgbjsgIzhCREUKK+ivnyA+IGfDsnU7ICM4QkRGCivor6AgPiBxdcOhbjsgIzhCRTAKK+ivoSA+IGfFrWk7ICM4QkUxCivor6IgPiB4w7puOyAjOEJFMgor6K+jID4gecOsOyAjOEJFMwor6K+kID4gemjEk25nOyAjOEJFNAor6K+lID4gZ8SBaTsgIzhCRTUKK+ivpiA+IHhpw6FuZzsgIzhCRTYKK+ivpyA+IGNow6A7ICM4QkU3Civor6ggPiBow7luOyAjOEJFOAor6K+pID4geMWtOyAjOEJFOQor6K+qID4gemjFjXU7ICM4QkVBCivor6sgPiBqacOoOyAjOEJFQgor6K+sID4gd8O6OyAjOEJFQwor6K+tID4gecWtOyAjOEJFRAor6K+uID4gcWnDoG87ICM4QkVFCivor68gPiB3w7k7ICM4QkVGCivor7AgPiBnw6BvOyAjOEJGMAor6K+xID4gecOydTsgIzhCRjEKK+ivsiA+IGjDuWk7ICM4QkYyCivor7MgPiBrdcOhbmc7ICM4QkYzCivor7QgPiBzaMWrbzsgIzhCRjQKK+ivtSA+IHPDsm5nOyAjOEJGNQor6K+2ID4gxIFpOyAjOEJGNgor6K+3ID4gccStbmc7ICM4QkY3Civor7ggPiB6aMWrOyAjOEJGOAor6K+5ID4gesWNdTsgIzhCRjkKK+ivuiA+IG7DuW87ICM4QkZBCivor7sgPiBkw7o7ICM4QkZCCivor7wgPiB6aMO6bzsgIzhCRkMKK+ivvSA+IGbElWk7ICM4QkZECivor74gPiBrw6g7ICM4QkZFCivor78gPiB3xJVpOyAjOEJGRgor6LCAID4gecO6OyAjOEMwMAor6LCBID4gc2jDumk7ICM4QzAxCivosIIgPiBzaMSVbjsgIzhDMDIKK+iwgyA+IGRpw6BvOyAjOEMwMwor6LCEID4gY2jEg247ICM4QzA0CivosIUgPiBsacOgbmc7ICM4QzA1CivosIYgPiB6aMWrbjsgIzhDMDYKK+iwhyA+IHPDuWk7ICM4QzA3CivosIggPiB0w6FuOyAjOEMwOAor6LCJID4gc2jElW47ICM4QzA5CivosIogPiB5w607ICM4QzBBCivosIsgPiBtw7N1OyAjOEMwQgor6LCMID4gY2jDqW47ICM4QzBDCivosI0gPiBkacOpOyAjOEMwRAor6LCOID4gaHXEg25nOyAjOEMwRQor6LCPID4gamnDoG47ICM4QzBGCivosJAgPiB4acOpOyAjOEMxMAor6LCRID4gbsecZTsgIzhDMTEKK+iwkiA+IHnDqDsgIzhDMTIKK+iwkyA+IHfDqGk7ICM4QzEzCivosJQgPiDDqDsgIzhDMTQKK+iwlSA+IHnDuTsgIzhDMTUKK+iwliA+IHh1xIFuOyAjOEMxNgor6LCXID4gY2jDoW47ICM4QzE3CivosJggPiB6xKs7ICM4QzE4CivosJkgPiDEgW47ICM4QzE5CivosJogPiB5w6BuOyAjOEMxQQor6LCbID4gZMOsOyAjOEMxQgor6LCcID4gbcOtOyAjOEMxQwor6LCdID4gcGnDoW47ICM4QzFECivosJ4gPiB4xa07ICM4QzFFCivosJ8gPiBtw7M7ICM4QzFGCivosKAgPiBkxINuZzsgIzhDMjAKK+iwoSA+IHPDuTsgIzhDMjEKK+iwoiA+IHhpw6g7ICM4QzIyCivosKMgPiB5w6FvOyAjOEMyMwor6LCkID4gYsOgbmc7ICM4QzI0CivosKUgPiBzaMOsOyAjOEMyNQor6LCmID4gcWnEgW47ICM4QzI2CivosKcgPiBtw6w7ICM4QzI3CivosKggPiBqxK1uOyAjOEMyOAor6LCpID4gbcOhbjsgIzhDMjkKK+iwqiA+IHpow6k7ICM4QzJBCivosKsgPiBqacSDbjsgIzhDMkIKK+iwrCA+IG3DrHU7ICM4QzJDCivosK0gPiB0w6FuOyAjOEMyRAor6LCuID4gesOobjsgIzhDMkUKK+iwryA+IHFpw6FvOyAjOEMyRgor6LCwID4gbMOhbjsgIzhDMzAKK+iwsSA+IHDFrTsgIzhDMzEKK+iwsiA+IGp1w6k7ICM4QzMyCivosLMgPiB5w6BuOyAjOEMzMwor6LC0ID4gcWnEg247ICM4QzM0CivosLUgPiB6aMSBbjsgIzhDMzUKK+iwtiA+IGNow6huOyAjOEMzNgor6LC3ID4gZ8WtOyAjOEMzNwor6LC4ID4gcWnEgW47ICM4QzM4CivosLkgPiBow7NuZzsgIzhDMzkKK+iwuiA+IHhpxIE7ICM4QzNBCivosLsgPiBqdcOpOyAjOEMzQgor6LC8ID4gaMOzbmc7ICM4QzNDCivosL0gPiBoxIFuOyAjOEMzRAor6LC+ID4gaMWNbmc7ICM4QzNFCivosL8gPiB4xKs7ICM4QzNGCivosYAgPiB4xKs7ICM4QzQwCivosYEgPiBow7lvOyAjOEM0MQor6LGCID4gbGnDoW87ICM4QzQyCivosYMgPiBoxINuOyAjOEM0Mwor6LGEID4gZMO6OyAjOEM0NAor6LGFID4gbMOzbmc7ICM4QzQ1CivosYYgPiBkw7J1OyAjOEM0Ngor6LGHID4gamnEgW5nOyAjOEM0Nwor6LGIID4gccStOyAjOEM0OAor6LGJID4gc2jDrDsgIzhDNDkKK+ixiiA+IGzErTsgIzhDNEEKK+ixiyA+IGTEk25nOyAjOEM0Qgor6LGMID4gd8SBbjsgIzhDNEMKK+ixjSA+IGLEqzsgIzhDNEQKK+ixjiA+IHNow7k7ICM4QzRFCivosY8gPiB4acOgbjsgIzhDNEYKK+ixkCA+IGbEk25nOyAjOEM1MAor6LGRID4gemjDrDsgIzhDNTEKK+ixkiA+IHpow6w7ICM4QzUyCivosZMgPiB5w6BuOyAjOEM1Mwor6LGUID4gecOgbjsgIzhDNTQKK+ixlSA+IHNoxK07ICM4QzU1CivosZYgPiBjaMO5OyAjOEM1Ngor6LGXID4gaMWraTsgIzhDNTcKK+ixmCA+IHTDum47ICM4QzU4CivosZkgPiB5w6w7ICM4QzU5CivosZogPiB0w7puOyAjOEM1QQor6LGbID4gecOsOyAjOEM1Qgor6LGcID4gamnEgW47ICM4QzVDCivosZ0gPiBixIE7ICM4QzVECivosZ4gPiBow7J1OyAjOEM1RQor6LGfID4gw6g7ICM4QzVGCivosaAgPiBjw7o7ICM4QzYwCivosaEgPiB4acOgbmc7ICM4QzYxCivosaIgPiBodcOgbjsgIzhDNjIKK+ixoyA+IGppxIFuOyAjOEM2Mwor6LGkID4ga8SVbjsgIzhDNjQKK+ixpSA+IGfEgWk7ICM4QzY1CivosaYgPiBxw7o7ICM4QzY2CivosacgPiBmxas7ICM4QzY3CivosaggPiB4xKs7ICM4QzY4CivosakgPiBixKtuOyAjOEM2OQor6LGqID4gaMOhbzsgIzhDNkEKK+ixqyA+IHnDuTsgIzhDNkIKK+ixrCA+IHpoxas7ICM4QzZDCivosa0gPiBqacSBOyAjOEM2RAor6LGvID4geMSrOyAjOEM2Rgor6LGwID4gYsOzOyAjOEM3MAor6LGxID4gd8STbjsgIzhDNzEKK+ixsiA+IGh1w6FuOyAjOEM3Mgor6LGzID4gYsSrbjsgIzhDNzMKK+ixtCA+IGTDrTsgIzhDNzQKK+ixtSA+IHrFjW5nOyAjOEM3NQor6LG2ID4gZsOpbjsgIzhDNzYKK+ixtyA+IHnDrDsgIzhDNzcKK+ixuCA+IHpow6w7ICM4Qzc4CivosbkgPiBiw6BvOyAjOEM3OQor6LG6ID4gY2jDoWk7ICM4QzdBCivosbsgPiBow6BuOyAjOEM3Qgor6LG8ID4gcMOtOyAjOEM3Qwor6LG9ID4gbsOgOyAjOEM3RAor6LG+ID4gcMSrOyAjOEM3RQor6LG/ID4gZ8WPdTsgIzhDN0YKK+iygCA+IG7DoDsgIzhDODAKK+iygSA+IHnDsnU7ICM4QzgxCivosoIgPiBkacSBbzsgIzhDODIKK+iygyA+IG3DsjsgIzhDODMKK+iyhCA+IHPDrDsgIzhDODQKK+iyhSA+IHjEq3U7ICM4Qzg1CivosoYgPiBodcOhbjsgIzhDODYKK+iyhyA+IGvFq247ICM4Qzg3CivosoggPiBow6k7ICM4Qzg4CivosokgPiBow6k7ICM4Qzg5CivosoogPiBtw7I7ICM4QzhBCivososgPiBow6BuOyAjOEM4Qgor6LKMID4gbcOgbzsgIzhDOEMKK+iyjSA+IGzDrTsgIzhDOEQKK+iyjiA+IG7DrTsgIzhDOEUKK+iyjyA+IGLErTsgIzhDOEYKK+iykCA+IHnFrTsgIzhDOTAKK+iykSA+IGppxIE7ICM4QzkxCivospIgPiB0dcSBbjsgIzhDOTIKK+iykyA+IG3EgW87ICM4QzkzCivospQgPiBww607ICM4Qzk0CivospUgPiB4xKs7ICM4Qzk1CivospYgPiDDqDsgIzhDOTYKK+iylyA+IGrDuTsgIzhDOTcKK+iymCA+IG3DsjsgIzhDOTgKK+iymSA+IGNoxas7ICM4Qzk5CivospogPiB0w6FuOyAjOEM5QQor6LKbID4gaHXEgW47ICM4QzlCCivospwgPiBqdcOpOyAjOEM5Qwor6LKdID4gYsOoaTsgIzhDOUQKK+iyniA+IHpoxJNuOyAjOEM5RQor6LKfID4geXXDoW47ICM4QzlGCivosqAgPiBmw7k7ICM4Q0EwCivosqEgPiBjw6FpOyAjOENBMQor6LKiID4gZ8Oybmc7ICM4Q0EyCivosqMgPiB0w6g7ICM4Q0EzCivosqQgPiB5w607ICM4Q0E0CivosqUgPiBow6FuZzsgIzhDQTUKK+iypiA+IHfDoG47ICM4Q0E2CivosqcgPiBww61uOyAjOENBNwor6LKoID4gaMO5bzsgIzhDQTgKK+iyqSA+IGbDoG47ICM4Q0E5CivosqogPiB0xIFuOyAjOENBQQor6LKrID4gZ3XDoG47ICM4Q0FCCivosqwgPiB6w6k7ICM4Q0FDCivosq0gPiB6aMOtOyAjOENBRAor6LKuID4gw6hyOyAjOENBRQor6LKvID4gemjFrTsgIzhDQUYKK+iysCA+IHNow6w7ICM4Q0IwCivosrEgPiBiw6w7ICM4Q0IxCivosrIgPiB6xKs7ICM4Q0IyCivosrMgPiDDqHI7ICM4Q0IzCivosrQgPiBnw7lpOyAjOENCNAor6LK1ID4gcGnEg247ICM4Q0I1CivosrYgPiBiacSDbjsgIzhDQjYKK+iytyA+IG3Eg2k7ICM4Q0I3CivosrggPiBkw6BpOyAjOENCOAor6LK5ID4gc2jDqG5nOyAjOENCOQor6LK6ID4ga3XDoG5nOyAjOENCQQor6LK7ID4gZsOoaTsgIzhDQkIKK+iyvCA+IHRpxJM7ICM4Q0JDCivosr0gPiB5w607ICM4Q0JECivosr4gPiBjaMOtOyAjOENCRQor6LK/ID4gbcOgbzsgIzhDQkYKK+izgCA+IGjDqDsgIzhDQzAKK+izgSA+IGLDrDsgIzhDQzEKK+izgiA+IGzDuTsgIzhDQzIKK+izgyA+IHLDqG47ICM4Q0MzCivos4QgPiBow7lpOyAjOENDNAor6LOFID4gZ8SBaTsgIzhDQzUKK+izhiA+IHBpw6FuOyAjOENDNgor6LOHID4gesSrOyAjOENDNwor6LOIID4gamnEgzsgIzhDQzgKK+iziSA+IHjDuTsgIzhDQzkKK+iziiA+IHrDqWk7ICM4Q0NBCivos4sgPiBqacSDbzsgIzhDQ0IKK+izjCA+IGfDoGk7ICM4Q0NDCivos40gPiB6xIFuZzsgIzhDQ0QKK+izjiA+IGppw6BuOyAjOENDRQor6LOPID4gecOsbmc7ICM4Q0NGCivos5AgPiB4w7luOyAjOENEMAor6LORID4gemjDqG47ICM4Q0QxCivos5IgPiBzaMSTOyAjOENEMgor6LOTID4gYsSrbjsgIzhDRDMKK+izlCA+IGLEq247ICM4Q0Q0Civos5UgPiBxw611OyAjOENENQor6LOWID4gc2jEkzsgIzhDRDYKK+izlyA+IGNodcOgbjsgIzhDRDcKK+izmCA+IHrEgW5nOyAjOENEOAor6LOZID4gemjFjXU7ICM4Q0Q5Civos5ogPiBsw6BpOyAjOENEQQor6LObID4gesOgbjsgIzhDREIKK+iznCA+IHPDrDsgIzhDREMKK+iznSA+IGNoxJNuOyAjOENERAor6LOeID4gc2jEg25nOyAjOENERQor6LOfID4gdGnEg247ICM4Q0RGCivos6AgPiBww6lpOyAjOENFMAor6LOhID4gZ8STbmc7ICM4Q0UxCivos6IgPiB4acOhbjsgIzhDRTIKK+izoyA+IG3DoGk7ICM4Q0UzCivos6QgPiBqacOgbjsgIzhDRTQKK+izpSA+IHPDuWk7ICM4Q0U1Civos6YgPiBmw7k7ICM4Q0U2Civos6cgPiB0w6BuOyAjOENFNwor6LOoID4gY8Ozbmc7ICM4Q0U4Civos6kgPiBjw7NuZzsgIzhDRTkKK+izqiA+IHpow607ICM4Q0VBCivos6sgPiBqxKs7ICM4Q0VCCivos6wgPiB6aMOgbmc7ICM4Q0VDCivos60gPiBkxa07ICM4Q0VECivos64gPiBqw6xuOyAjOENFRQor6LOvID4geMSrb25nOyAjOENFRgor6LOwID4gc2jFrW47ICM4Q0YwCivos7EgPiB5xa1uOyAjOENGMQor6LOyID4gYsSDbzsgIzhDRjIKK+izsyA+IHrEgWk7ICM4Q0YzCivos7QgPiBsw6BpOyAjOENGNAor6LO1ID4gZsOobmc7ICM4Q0Y1Civos7YgPiBjw6BuZzsgIzhDRjYKK+iztyA+IGrEqzsgIzhDRjcKK+izuCA+IHNow6huZzsgIzhDRjgKK+izuSA+IMOgaTsgIzhDRjkKK+izuiA+IHpodcOgbjsgIzhDRkEKK+izuyA+IGbDuTsgIzhDRkIKK+izvCA+IGfDsnU7ICM4Q0ZDCivos70gPiBzw6BpOyAjOENGRAor6LO+ID4gesOpOyAjOENGRQor6LO/ID4gbGnDoW87ICM4Q0ZGCivotIAgPiB3w6hpOyAjOEQwMAor6LSBID4gYsOgaTsgIzhEMDEKK+i0giA+IGNoxJVuOyAjOEQwMgor6LSDID4gemh1w6BuOyAjOEQwMwor6LSEID4gemjDrDsgIzhEMDQKK+i0hSA+IHpow7lpOyAjOEQwNQor6LSGID4gYmnEgW87ICM4RDA2CivotIcgPiB5xatuOyAjOEQwNwor6LSIID4gesOobmc7ICM4RDA4CivotIkgPiB0xINuOyAjOEQwOQor6LSKID4gesOgbjsgIzhEMEEKK+i0iyA+IHnDoG47ICM4RDBCCivotI0gPiBzaMOgbjsgIzhEMEQKK+i0jiA+IHfDoG47ICM4RDBFCivotI8gPiB5w61uZzsgIzhEMEYKK+i0kCA+IGrDrG47ICM4RDEwCivotJEgPiBnxINuOyAjOEQxMQor6LSSID4geGnDoW47ICM4RDEyCivotJMgPiB6xIFuZzsgIzhEMTMKK+i0lCA+IGLDrDsgIzhEMTQKK+i0lSA+IGTDujsgIzhEMTUKK+i0liA+IHNow7o7ICM4RDE2CivotJcgPiB5w6BuOyAjOEQxNwor6LSZID4geHXDoG47ICM4RDE5CivotJogPiBsw7JuZzsgIzhEMUEKK+i0myA+IGfDoG47ICM4RDFCCivotJwgPiB6xIFuZzsgIzhEMUMKK+i0nSA+IGLDqGk7ICM4RDFECivotJ4gPiB6aMSTbjsgIzhEMUUKK+i0nyA+IGbDuTsgIzhEMUYKK+i0oCA+IHl1w6FuOyAjOEQyMAor6LShID4gZ8Oybmc7ICM4RDIxCivotKIgPiBjw6FpOyAjOEQyMgor6LSjID4gesOpOyAjOEQyMwor6LSkID4geGnDoW47ICM4RDI0CivotKUgPiBiw6BpOyAjOEQyNQor6LSmID4gemjDoG5nOyAjOEQyNgor6LSnID4gaMO5bzsgIzhEMjcKK+i0qCA+IHpow607ICM4RDI4CivotKkgPiBmw6BuOyAjOEQyOQor6LSqID4gdMSBbjsgIzhEMkEKK+i0qyA+IHDDrW47ICM4RDJCCivotKwgPiBiacSDbjsgIzhEMkMKK+i0rSA+IGfDsnU7ICM4RDJECivotK4gPiB6aMWtOyAjOEQyRQor6LSvID4gZ3XDoG47ICM4RDJGCivotLAgPiDDqHI7ICM4RDMwCivotLEgPiBqacOgbjsgIzhEMzEKK+i0siA+IGLDrDsgIzhEMzIKK+i0syA+IHNow6w7ICM4RDMzCivotLQgPiB0acSTOyAjOEQzNAor6LS1ID4gZ8O5aTsgIzhEMzUKK+i0tiA+IGt1w6BuZzsgIzhEMzYKK+i0tyA+IGTDoGk7ICM4RDM3CivotLggPiBtw6BvOyAjOEQzOAor6LS5ID4gZsOoaTsgIzhEMzkKK+i0uiA+IGjDqDsgIzhEM0EKK+i0uyA+IHnDrTsgIzhEM0IKK+i0vCA+IHrDqWk7ICM4RDNDCivotL0gPiB6aMOsOyAjOEQzRAor6LS+ID4gamnEgzsgIzhEM0UKK+i0vyA+IGjDuWk7ICM4RDNGCivotYAgPiB6xKs7ICM4RDQwCivotYEgPiByw6huOyAjOEQ0MQor6LWCID4gbMO5OyAjOEQ0Mgor6LWDID4gesSBbmc7ICM4RDQzCivotYQgPiB6xKs7ICM4RDQ0CivotYUgPiBnxIFpOyAjOEQ0NQor6LWGID4gasOsbjsgIzhENDYKK+i1hyA+IHHDrXU7ICM4RDQ3CivotYggPiB6aMOobjsgIzhENDgKK+i1iSA+IGzDoGk7ICM4RDQ5CivotYogPiBzaMSTOyAjOEQ0QQor6LWLID4gZsO5OyAjOEQ0Qgor6LWMID4gZMWtOyAjOEQ0Qwor6LWNID4gasSrOyAjOEQ0RAor6LWOID4gc2jDujsgIzhENEUKK+i1jyA+IHNoxINuZzsgIzhENEYKK+i1kCA+IHPDrDsgIzhENTAKK+i1kSA+IGLDrDsgIzhENTEKK+i1kiA+IHpoxY11OyAjOEQ1Mgor6LWTID4gZ8STbmc7ICM4RDUzCivotZQgPiBww6lpOyAjOEQ1NAor6LWVID4gdMOgbjsgIzhENTUKK+i1liA+IGzDoGk7ICM4RDU2CivotZcgPiBmw6huZzsgIzhENTcKK+i1mCA+IHpow7lpOyAjOEQ1OAor6LWZID4gZsO5OyAjOEQ1OQor6LWaID4gemh1w6BuOyAjOEQ1QQor6LWbID4gc8OgaTsgIzhENUIKK+i1nCA+IHrDqTsgIzhENUMKK+i1nSA+IHnDoG47ICM4RDVECivotZ4gPiB6w6BuOyAjOEQ1RQor6LWfID4gecWrbjsgIzhENUYKK+i1oCA+IHrDqG5nOyAjOEQ2MAor6LWhID4gc2jDoG47ICM4RDYxCivotaIgPiB5w61uZzsgIzhENjIKK+i1oyA+IGfDoG47ICM4RDYzCivotaQgPiBjaMOsOyAjOEQ2NAor6LWlID4geMOsOyAjOEQ2NQor6LWmID4gc2jDqDsgIzhENjYKK+i1pyA+IG7Eg247ICM4RDY3CivotaggPiB4w61vbmc7ICM4RDY4CivotakgPiB4w6w7ICM4RDY5CivotaogPiBjaMSTbmc7ICM4RDZBCivotasgPiBow6g7ICM4RDZCCivotawgPiBjaMSTbmc7ICM4RDZDCivota0gPiB6aMSVOyAjOEQ2RAor6LWuID4geGnDoTsgIzhENkUKK+i1ryA+IHTDoW5nOyAjOEQ2Rgor6LWwID4gesWPdTsgIzhENzAKK+i1sSA+IHrFj3U7ICM4RDcxCivotbIgPiBsw6w7ICM4RDcyCivotbMgPiBqxK11OyAjOEQ3Mwor6LW0ID4gZsO5OyAjOEQ3NAor6LW1ID4gemjDoG87ICM4RDc1CivotbYgPiBnxINuOyAjOEQ3Ngor6LW3ID4gccStOyAjOEQ3Nwor6LW4ID4gc2jDoG47ICM4RDc4CivotbkgPiBxw61vbmc7ICM4RDc5CivotbogPiBxw61uOyAjOEQ3QQor6LW7ID4geGnEg247ICM4RDdCCivotbwgPiBjxKs7ICM4RDdDCivotb0gPiBqdcOpOyAjOEQ3RAor6LW+ID4gccStbjsgIzhEN0UKK+i1vyA+IGNow607ICM4RDdGCivotoAgPiBjxKs7ICM4RDgwCivotoEgPiBjaMOobjsgIzhEODEKK+i2giA+IGNow6huOyAjOEQ4Mgor6LaDID4gZGnDqTsgIzhEODMKK+i2hCA+IGrFqzsgIzhEODQKK+i2hSA+IGNoxIFvOyAjOEQ4NQor6LaGID4gZMSrOyAjOEQ4Ngor6LaHID4gc8OoOyAjOEQ4Nwor6LaIID4gemjEgW47ICM4RDg4CivotokgPiB6aMO6OyAjOEQ4OQor6LaKID4geXXDqDsgIzhEOEEKK+i2iyA+IHHFqzsgIzhEOEIKK+i2jCA+IGppw6k7ICM4RDhDCivoto0gPiBjaMOtOyAjOEQ4RAor6LaOID4gY2jDujsgIzhEOEUKK+i2jyA+IGd1xIE7ICM4RDhGCivotpAgPiB4dcOoOyAjOEQ5MAor6LaRID4gY8SrOyAjOEQ5MQor6LaSID4gdGnDoW87ICM4RDkyCivotpMgPiBkxa1vOyAjOEQ5Mwor6LaUID4gbGnDqDsgIzhEOTQKK+i2lSA+IGfEg247ICM4RDk1CivotpYgPiBzxatvOyAjOEQ5Ngor6LaXID4gY8O5OyAjOEQ5Nwor6LaYID4geMOtOyAjOEQ5OAor6LaZID4gemjDoG87ICM4RDk5CivotpogPiBzw7k7ICM4RDlBCivotpsgPiB5xK1uOyAjOEQ5Qgor6LacID4gasO6OyAjOEQ5Qwor6LadID4gamnDoG47ICM4RDlECivotp4gPiBxdcOoOyAjOEQ5RQor6LafID4gdMOgbmc7ICM4RDlGCivotqAgPiBjaMO5bzsgIzhEQTAKK+i2oSA+IGPFrWk7ICM4REExCivotqIgPiBsw7k7ICM4REEyCivotqMgPiBxw7k7ICM4REEzCivotqQgPiBkw6BuZzsgIzhEQTQKK+i2pSA+IHHEq3U7ICM4REE1CivotqYgPiB6xKs7ICM4REE2CivotqcgPiB0w607ICM4REE3CivotqggPiBxxas7ICM4REE4CivotqkgPiBjaMOsOyAjOERBOQor6LaqID4gaHXDoW5nOyAjOERBQQor6LarID4gcWnDoW87ICM4REFCCivotqwgPiBxacOhbzsgIzhEQUMKK+i2rSA+IHnDoG87ICM4REFECivotq4gPiB6w6BvOyAjOERBRQor6LavID4gdMOsOyAjOERBRgor6LaxID4gesSDbjsgIzhEQjEKK+i2siA+IHrEg247ICM4REIyCivotrMgPiB6w7o7ICM4REIzCivotrQgPiBwxIE7ICM4REI0CivotrUgPiBiw6BvOyAjOERCNQor6La2ID4ga8O5OyAjOERCNgor6La3ID4ga8STOyAjOERCNwor6La4ID4gZMWtbjsgIzhEQjgKK+i2uSA+IGp1w6k7ICM4REI5CivotrogPiBmxas7ICM4REJBCivotrsgPiBjaMSVbjsgIzhEQkIKK+i2vCA+IGppxINuOyAjOERCQwor6La9ID4gZsOgbmc7ICM4REJECivotr4gPiB6aMStOyAjOERCRQor6La/ID4gc8OgOyAjOERCRgor6LeAID4geXXDqDsgIzhEQzAKK+i3gSA+IHDDoTsgIzhEQzEKK+i3giA+IHHDrTsgIzhEQzIKK+i3gyA+IHl1w6g7ICM4REMzCivot4QgPiBxacSBbmc7ICM4REM0Civot4UgPiB0w7lvOyAjOERDNQor6LeGID4gdMOhaTsgIzhEQzYKK+i3hyA+IHnDrDsgIzhEQzcKK+i3iCA+IG5pxINuOyAjOERDOAor6LeJID4gbMOtbmc7ICM4REM5Civot4ogPiBtw6hpOyAjOERDQQor6LeLID4gYsOhOyAjOERDQgor6LeMID4gZGnEkzsgIzhEQ0MKK+i3jSA+IGvFqzsgIzhEQ0QKK+i3jiA+IHTDum87ICM4RENFCivot48gPiBqacSBOyAjOERDRgor6LeQID4gY8StOyAjOEREMAor6LeRID4gcMSDbzsgIzhERDEKK+i3kiA+IHFpxIM7ICM4REQyCivot5MgPiB6aMO5OyAjOEREMwor6LeUID4gasWrOyAjOERENAor6LeVID4gZGnDqTsgIzhERDUKK+i3liA+IHpoxKs7ICM4REQ2Civot5cgPiBmxas7ICM4REQ3Civot5ggPiBww6FuOyAjOEREOAor6LeZID4gasWtOyAjOEREOQor6LeaID4gc2jEgW47ICM4RERBCivot5sgPiBixY87ICM4RERCCivot5wgPiBuw607ICM4RERDCivot50gPiBqw7k7ICM4RERECivot54gPiBsw6w7ICM4RERFCivot58gPiBnxJNuOyAjOERERgor6LegID4gecOtOyAjOERFMAor6LehID4gasSrOyAjOERFMQor6LeiID4gZMOgaTsgIzhERTIKK+i3oyA+IHhpxINuOyAjOERFMwor6LekID4gamnEgW87ICM4REU0Civot6UgPiBkw7lvOyAjOERFNQor6LemID4gemjFqzsgIzhERTYKK+i3pyA+IHpodcSBbjsgIzhERTcKK+i3qCA+IGt1w6A7ICM4REU4Civot6kgPiB6aHXEg2k7ICM4REU5Civot6ogPiBnw7lpOyAjOERFQQor6LerID4gccOtb25nOyAjOERFQgor6LesID4ga8WtaTsgIzhERUMKK+i3rSA+IHhpw6FuZzsgIzhERUQKK+i3riA+IGNow6w7ICM4REVFCivot68gPiBsw7k7ICM4REVGCivot7AgPiBiw6huZzsgIzhERjAKK+i3sSA+IHpow6w7ICM4REYxCivot7IgPiBqacOhOyAjOERGMgor6LezID4gdGnDoG87ICM4REYzCivot7QgPiBjxINpOyAjOERGNAor6Le1ID4gamnDoG47ICM4REY1Civot7YgPiB0w6A7ICM4REY2Civot7cgPiBxacSBbzsgIzhERjcKK+i3uCA+IGLDrDsgIzhERjgKK+i3uSA+IHhpxIFuOyAjOERGOQor6Le6ID4gZMO5bzsgIzhERkEKK+i3uyA+IGrEqzsgIzhERkIKK+i3vCA+IGrDujsgIzhERkMKK+i3vSA+IGrDrDsgIzhERkQKK+i3viA+IHNow7o7ICM4REZFCivot78gPiB0w7o7ICM4REZGCivouIAgPiBjaMO5OyAjOEUwMAor6LiBID4gasOsbmc7ICM4RTAxCivouIIgPiBuacOoOyAjOEUwMgor6LiDID4geGnEgW87ICM4RTAzCivouIQgPiBiw7M7ICM4RTA0CivouIUgPiBjaMOsOyAjOEUwNQor6LiGID4gccWrbjsgIzhFMDYKK+i4hyA+IG3Fj3U7ICM4RTA3CivouIggPiBzaMWrOyAjOEUwOAor6LiJID4gbMOhbmc7ICM4RTA5CivouIogPiB5xY9uZzsgIzhFMEEKK+i4iyA+IGppxINvOyAjOEUwQgor6LiMID4gY2jDs3U7ICM4RTBDCivouI0gPiBxacSBbzsgIzhFMEQKK+i4jyA+IHTDoDsgIzhFMEYKK+i4kCA+IGppw6BuOyAjOEUxMAor6LiRID4gccOtOyAjOEUxMQor6LiSID4gd8WNOyAjOEUxMgor6LiTID4gd8SVaTsgIzhFMTMKK+i4lCA+IHpow7pvOyAjOEUxNAor6LiVID4gamnDqTsgIzhFMTUKK+i4liA+IGrDrTsgIzhFMTYKK+i4lyA+IG5pxJM7ICM4RTE3CivouJggPiBqw7o7ICM4RTE4CivouJkgPiBqxas7ICM4RTE5CivouJogPiBsw7puOyAjOEUxQQor6LibID4gbMO5OyAjOEUxQgor6LicID4gbMOobmc7ICM4RTFDCivouJ0gPiBodcOhaTsgIzhFMUQKK+i4niA+IGrDuTsgIzhFMUUKK+i4nyA+IGNow607ICM4RTFGCivouKAgPiB3xINuOyAjOEUyMAor6LihID4gcXXDoW47ICM4RTIxCivouKIgPiB0xKs7ICM4RTIyCivouKMgPiBiw7M7ICM4RTIzCivouKQgPiB6w7o7ICM4RTI0CivouKUgPiBxacOoOyAjOEUyNQor6LimID4gasStOyAjOEUyNgor6LinID4gY8O5OyAjOEUyNwor6LioID4gesWNbmc7ICM4RTI4CivouKkgPiBjxINpOyAjOEUyOQor6LiqID4gesWNbmc7ICM4RTJBCivouKsgPiBww6huZzsgIzhFMkIKK+i4rCA+IHpow6w7ICM4RTJDCivouK0gPiB6aMSTbmc7ICM4RTJECivouK4gPiBkacSDbjsgIzhFMkUKK+i4ryA+IHpow607ICM4RTJGCivouLAgPiB5w7o7ICM4RTMwCivouLEgPiBkw7lvOyAjOEUzMQor6LiyID4gZMO5bjsgIzhFMzIKK+i4syA+IGNoxa1uOyAjOEUzMwor6Li0ID4gecWPbmc7ICM4RTM0CivouLUgPiB6aMWPbmc7ICM4RTM1CivouLYgPiBkw6w7ICM4RTM2CivouLcgPiB6aMSVOyAjOEUzNwor6Li4ID4gY2jElW47ICM4RTM4CivouLkgPiBjaHXDoGk7ICM4RTM5CivouLogPiBqacOgbjsgIzhFM0EKK+i4uyA+IGd1xIE7ICM4RTNCCivouLwgPiB0w6FuZzsgIzhFM0MKK+i4vSA+IGrFrTsgIzhFM0QKK+i4viA+IGbDujsgIzhFM0UKK+i4vyA+IHrDujsgIzhFM0YKK+i5gCA+IGRpw6k7ICM4RTQwCivouYEgPiBwacOhbjsgIzhFNDEKK+i5giA+IHLDs3U7ICM4RTQyCivouYMgPiBuw7lvOyAjOEU0Mwor6LmEID4gdMOtOyAjOEU0NAor6LmFID4gY2jEgzsgIzhFNDUKK+i5hiA+IHTFrWk7ICM4RTQ2CivouYcgPiBqacSDbjsgIzhFNDcKK+i5iCA+IGTDoG87ICM4RTQ4CivouYkgPiBjxatvOyAjOEU0OQor6LmKID4geMSrOyAjOEU0QQor6LmLID4gdMOgOyAjOEU0Qgor6LmMID4gcWnEgW5nOyAjOEU0Qwor6LmNID4gemjEg247ICM4RTRECivouY4gPiBkacSBbjsgIzhFNEUKK+i5jyA+IHTDrTsgIzhFNEYKK+i5kCA+IGrDrTsgIzhFNTAKK+i5kSA+IG5pw6g7ICM4RTUxCivouZIgPiBtw6FuOyAjOEU1Mgor6LmTID4gbMSrdTsgIzhFNTMKK+i5lCA+IHpow6BuOyAjOEU1NAor6LmVID4gYsOsOyAjOEU1NQor6LmWID4gY2jFjW5nOyAjOEU1Ngor6LmXID4gbMO5OyAjOEU1Nwor6LmYID4gbGnDoW87ICM4RTU4CivouZkgPiBjw7k7ICM4RTU5CivouZogPiB0xIFuZzsgIzhFNUEKK+i5myA+IGTDoGk7ICM4RTVCCivouZwgPiBzxatvOyAjOEU1Qwor6LmdID4geMStOyAjOEU1RAor6LmeID4ga8WtaTsgIzhFNUUKK+i5nyA+IGrEqzsgIzhFNUYKK+i5oCA+IHpow607ICM4RTYwCivouaEgPiBxacSBbmc7ICM4RTYxCivouaIgPiBkw607ICM4RTYyCivouaMgPiBtw6FuOyAjOEU2Mwor6LmkID4gesWNbmc7ICM4RTY0CivouaUgPiBsacOhbjsgIzhFNjUKK+i5piA+IGLDqG5nOyAjOEU2Ngor6LmnID4gesSBbzsgIzhFNjcKK+i5qCA+IG5pxINuOyAjOEU2OAor6LmpID4gYmnDqTsgIzhFNjkKK+i5qiA+IHTDumk7ICM4RTZBCivouasgPiBqw7o7ICM4RTZCCivouawgPiBkw6huZzsgIzhFNkMKK+i5rSA+IGPDqG5nOyAjOEU2RAor6LmuID4geGnEgW47ICM4RTZFCivoua8gPiBmw6FuOyAjOEU2Rgor6LmwID4gY2jDujsgIzhFNzAKK+i5sSA+IHpoxY1uZzsgIzhFNzEKK+i5siA+IGTFq247ICM4RTcyCivoubMgPiBixY07ICM4RTczCivoubQgPiBjw7k7ICM4RTc0CivoubUgPiB6w7o7ICM4RTc1CivoubYgPiBqdcOpOyAjOEU3Ngor6Lm3ID4ganXDqTsgIzhFNzcKK+i5uCA+IGzDrG47ICM4RTc4CivoubkgPiB0w6A7ICM4RTc5CivoubogPiBxacSBbzsgIzhFN0EKK+i5uyA+IHFpxIFvOyAjOEU3Qgor6Lm8ID4gcMO6OyAjOEU3Qwor6Lm9ID4gbGnEgW87ICM4RTdECivoub4gPiBkxatuOyAjOEU3RQor6Lm/ID4gY3XEgW47ICM4RTdGCivouoAgPiBrdcOgbmc7ICM4RTgwCivouoEgPiB6w6BvOyAjOEU4MQor6LqCID4gdMOgOyAjOEU4Mgor6LqDID4gYsOsOyAjOEU4Mwor6LqEID4gYsOsOyAjOEU4NAor6LqFID4gemjDujsgIzhFODUKK+i6hiA+IGrDuTsgIzhFODYKK+i6hyA+IGNow7o7ICM4RTg3CivouoggPiBxacOgbzsgIzhFODgKK+i6iSA+IGTFrW47ICM4RTg5CivouoogPiBjaMOzdTsgIzhFOEEKK+i6iyA+IGrEqzsgIzhFOEIKK+i6jCA+IHfFrTsgIzhFOEMKK+i6jSA+IHl1w6g7ICM4RThECivouo4gPiBuacSDbjsgIzhFOEUKK+i6jyA+IGzDrG47ICM4RThGCivoupAgPiBsacOoOyAjOEU5MAor6LqRID4gemjDrTsgIzhFOTEKK+i6kiA+IGzDrDsgIzhFOTIKK+i6kyA+IHpow6w7ICM4RTkzCivoupQgPiBjaMOhbjsgIzhFOTQKK+i6lSA+IGNow7o7ICM4RTk1CivoupYgPiBkdcOgbjsgIzhFOTYKK+i6lyA+IHfDqGk7ICM4RTk3CivoupggPiBsw7NuZzsgIzhFOTgKK+i6mSA+IGzDrG47ICM4RTk5CivoupogPiB4acSBbjsgIzhFOUEKK+i6myA+IHfDqGk7ICM4RTlCCivoupwgPiB6dcSBbjsgIzhFOUMKK+i6nSA+IGzDoW47ICM4RTlECivoup4gPiB4acOoOyAjOEU5RQor6LqfID4gcsOhbmc7ICM4RTlGCivouqAgPiB4acSVOyAjOEVBMAor6LqhID4gbmnDqDsgIzhFQTEKK+i6oiA+IHTDoDsgIzhFQTIKK+i6oyA+IHHDujsgIzhFQTMKK+i6pCA+IGppw6g7ICM4RUE0CivouqUgPiBjdcSBbjsgIzhFQTUKK+i6piA+IHp1xIFuOyAjOEVBNgor6LqnID4geMStOyAjOEVBNwor6LqoID4ga8O6aTsgIzhFQTgKK+i6qSA+IGp1w6k7ICM4RUE5CivouqogPiBsw6xuOyAjOEVBQQor6LqrID4gc2jEk247ICM4RUFCCivouqwgPiBnxY1uZzsgIzhFQUMKK+i6rSA+IGTEgW47ICM4RUFECivouq8gPiBxxas7ICM4RUFGCivourAgPiB0xK07ICM4RUIwCivourEgPiBkxa1vOyAjOEVCMQor6LqyID4gZMWtbzsgIzhFQjIKK+i6syA+IGfFjW5nOyAjOEVCMwor6Lq0ID4gbMOhbmc7ICM4RUI0CivourYgPiBsxa1vOyAjOEVCNgor6Lq3ID4gxINpOyAjOEVCNwor6Lq4ID4gasSrOyAjOEVCOAor6Lq5ID4gasO6OyAjOEVCOQor6Lq6ID4gdMSDbmc7ICM4RUJBCivour0gPiB5xINuOyAjOEVCRAor6Lq/ID4ga8SBbmc7ICM4RUJGCivou4AgPiBxxas7ICM4RUMwCivou4EgPiBsw7N1OyAjOEVDMQor6LuCID4gbMOgbzsgIzhFQzIKK+i7gyA+IHTFrW87ICM4RUMzCivou4QgPiB6aMOtOyAjOEVDNAor6LuGID4gdMStOyAjOEVDNgor6LuHID4gZMOgbzsgIzhFQzcKK+i7iSA+IHnDuTsgIzhFQzkKK+i7iiA+IGNoxJM7ICM4RUNBCivou4sgPiB5w6A7ICM4RUNCCivou4wgPiBnxa1pOyAjOEVDQwor6LuNID4gasWrbjsgIzhFQ0QKK+i7jiA+IHfDqGk7ICM4RUNFCivou48gPiB5dcOoOyAjOEVDRgor6LuQID4geMOsbjsgIzhFRDAKK+i7kSA+IGTDrDsgIzhFRDEKK+i7kiA+IHh1xIFuOyAjOEVEMgor6LuTID4gZsOgbjsgIzhFRDMKK+i7lCA+IHLDqG47ICM4RUQ0Civou5UgPiBzaMSBbjsgIzhFRDUKK+i7liA+IHFpw6FuZzsgIzhFRDYKK+i7lyA+IHNoxas7ICM4RUQ3Civou5ggPiB0w7puOyAjOEVEOAor6LuZID4gY2jDqW47ICM4RUQ5Civou5ogPiBkw6BpOyAjOEVEQQor6LubID4gw6g7ICM4RURCCivou5wgPiBuw6A7ICM4RURDCivou50gPiBxw607ICM4RURECivou54gPiBtw6FvOyAjOEVERQor6LufID4gcnXEg247ICM4RURGCivou6AgPiByw6huOyAjOEVFMAor6LuhID4gZsSDbjsgIzhFRTEKK+i7oiA+IHpodcSDbjsgIzhFRTIKK+i7oyA+IGjFjW5nOyAjOEVFMwor6LukID4gaMWrOyAjOEVFNAor6LulID4gccO6OyAjOEVFNQor6LumID4gaHXDoG5nOyAjOEVFNgor6LunID4gZMStOyAjOEVFNwor6LuoID4gbMOtbmc7ICM4RUU4Civou6kgPiBkw6BpOyAjOEVFOQor6LuqID4gxIFvOyAjOEVFQQor6LurID4gemjElW47ICM4RUVCCivou6wgPiBmw6BuOyAjOEVFQwor6LutID4ga3XEgW5nOyAjOEVFRAor6LuuID4gxINuZzsgIzhFRUUKK+i7ryA+IHDEk25nOyAjOEVFRgor6LuwID4gYsOoaTsgIzhFRjAKK+i7sSA+IGfFqzsgIzhFRjEKK+i7siA+IGvFqzsgIzhFRjIKK+i7syA+IHDDoW87ICM4RUYzCivou7QgPiB6aMO5OyAjOEVGNAor6Lu1ID4gcsWPbmc7ICM4RUY1Civou7YgPiDDqDsgIzhFRjYKK+i7tyA+IGLDoTsgIzhFRjcKK+i7uCA+IHpow7N1OyAjOEVGOAor6Lu5ID4gemjErTsgIzhFRjkKK+i7uiA+IHnDoW87ICM4RUZBCivou7sgPiBrxJM7ICM4RUZCCivou7wgPiB5w6w7ICM4RUZDCivou70gPiBxxKtuZzsgIzhFRkQKK+i7viA+IHNow6w7ICM4RUZFCivou78gPiBww61uZzsgIzhFRkYKK+i8gCA+IMOpcjsgIzhGMDAKK+i8gSA+IHHDrW9uZzsgIzhGMDEKK+i8giA+IGrDujsgIzhGMDIKK+i8gyA+IGppw6BvOyAjOEYwMwor6LyEID4gZ3XEgW5nOyAjOEYwNAor6LyFID4gbMO5OyAjOEYwNQor6LyGID4ga8SDaTsgIzhGMDYKK+i8hyA+IHF1w6FuOyAjOEYwNwor6LyIID4gemjFjXU7ICM4RjA4CivovIkgPiB6w6BpOyAjOEYwOQor6LyKID4gemjDrDsgIzhGMEEKK+i8iyA+IHNoxJM7ICM4RjBCCivovIwgPiBsacOgbmc7ICM4RjBDCivovI0gPiB5w7k7ICM4RjBECivovI4gPiBzaMSBbzsgIzhGMEUKK+i8jyA+IHnDs3U7ICM4RjBGCivovJAgPiBodcSDbjsgIzhGMTAKK+i8kSA+IHnFrW47ICM4RjExCivovJIgPiB6aMOpOyAjOEYxMgor6LyTID4gd8SDbjsgIzhGMTMKK+i8lCA+IGbFrTsgIzhGMTQKK+i8lSA+IHHEq25nOyAjOEYxNQor6LyWID4gemjFjXU7ICM4RjE2CivovJcgPiBuw607ICM4RjE3CivovJggPiBsw61uZzsgIzhGMTgKK+i8mSA+IHpow6k7ICM4RjE5CivovJogPiB6aMOgbjsgIzhGMUEKK+i8myA+IGxpw6BuZzsgIzhGMUIKK+i8nCA+IHrEqzsgIzhGMUMKK+i8nSA+IGjFq2k7ICM4RjFECivovJ4gPiB3xINuZzsgIzhGMUUKK+i8nyA+IGNow7lvOyAjOEYxRgor6LygID4gZ8WtbzsgIzhGMjAKK+i8oSA+IGvEg247ICM4RjIxCivovKIgPiB5xK07ICM4RjIyCivovKMgPiBww6luZzsgIzhGMjMKK+i8pCA+IHFpw6BuOyAjOEYyNAor6LylID4gZ8WtbjsgIzhGMjUKK+i8piA+IG5pxINuOyAjOEYyNgor6LynID4gcGnDoW47ICM4RjI3CivovKggPiBndcSDbjsgIzhGMjgKK+i8qSA+IGLDqGk7ICM4RjI5CivovKogPiBsw7puOyAjOEYyQQor6LyrID4gcMOhaTsgIzhGMkIKK+i8rCA+IGxpw6FuZzsgIzhGMkMKK+i8rSA+IHJ1xINuOyAjOEYyRAor6LyuID4gcsOzdTsgIzhGMkUKK+i8ryA+IGrDrTsgIzhGMkYKK+i8sCA+IHnDoW5nOyAjOEYzMAor6LyxID4geGnDoW47ICM4RjMxCivovLIgPiBjaHXDoW47ICM4RjMyCivovLMgPiBjw7J1OyAjOEYzMwor6Ly0ID4gccWrbjsgIzhGMzQKK+i8tSA+IGfDqTsgIzhGMzUKK+i8tiA+IHnDs3U7ICM4RjM2CivovLcgPiBoxY1uZzsgIzhGMzcKK+i8uCA+IHNoxas7ICM4RjM4CivovLkgPiBmw7k7ICM4RjM5CivovLogPiB6xKs7ICM4RjNBCivovLsgPiBmw7o7ICM4RjNCCivovLwgPiB3xJNuOyAjOEYzQwor6Ly9ID4gYsOobjsgIzhGM0QKK+i8viA+IHpoxINuOyAjOEYzRQor6Ly/ID4gecO6OyAjOEYzRgor6L2AID4gd8STbjsgIzhGNDAKK+i9gSA+IHTEgW87ICM4RjQxCivovYIgPiBnxa07ICM4RjQyCivovYMgPiB6aMSTbjsgIzhGNDMKK+i9hCA+IHhpw6E7ICM4RjQ0CivovYUgPiB5dcOhbjsgIzhGNDUKK+i9hiA+IGzDuTsgIzhGNDYKK+i9hyA+IGrEq3U7ICM4RjQ3CivovYggPiBjaMOhbzsgIzhGNDgKK+i9iSA+IHpodcSDbjsgIzhGNDkKK+i9iiA+IHfDqGk7ICM4RjRBCivovYsgPiBow7puOyAjOEY0Qgor6L2NID4gY2jDqDsgIzhGNEQKK+i9jiA+IGppw6BvOyAjOEY0RQor6L2PID4gemjDoG47ICM4RjRGCivovZAgPiBww7o7ICM4RjUwCivovZEgPiBsxINvOyAjOEY1MQor6L2SID4gZsOpbjsgIzhGNTIKK+i9kyA+IGbEgW47ICM4RjUzCivovZQgPiBsw61uOyAjOEY1NAor6L2VID4gZ8OpOyAjOEY1NQor6L2WID4gc8OoOyAjOEY1Ngor6L2XID4ga8SDbjsgIzhGNTcKK+i9mCA+IGh1w6BuOyAjOEY1OAor6L2ZID4gecStOyAjOEY1OQor6L2aID4gasOtOyAjOEY1QQor6L2bID4gZMO5aTsgIzhGNUIKK+i9nCA+IMOpcjsgIzhGNUMKK+i9nSA+IHnDujsgIzhGNUQKK+i9niA+IHhpw6BuOyAjOEY1RQor6L2fID4gaMWNbmc7ICM4RjVGCivovaAgPiBsxJVpOyAjOEY2MAor6L2hID4gcMOoaTsgIzhGNjEKK+i9oiA+IGzDrDsgIzhGNjIKK+i9oyA+IGzDrDsgIzhGNjMKK+i9pCA+IGzDujsgIzhGNjQKK+i9pSA+IGzDrG47ICM4RjY1CivovaYgPiBjaMSTOyAjOEY2Ngor6L2nID4gecOgOyAjOEY2Nwor6L2oID4gZ8WtaTsgIzhGNjgKK+i9qSA+IHh1xIFuOyAjOEY2OQor6L2qID4gZMOsOyAjOEY2QQor6L2rID4gcsOobjsgIzhGNkIKK+i9rCA+IHpodcSDbjsgIzhGNkMKK+i9rSA+IMOoOyAjOEY2RAor6L2uID4gbMO6bjsgIzhGNkUKK+i9ryA+IHJ1xINuOyAjOEY2Rgor6L2wID4gaMWNbmc7ICM4RjcwCivovbEgPiBrxas7ICM4RjcxCivovbIgPiBrxJM7ICM4RjcyCivovbMgPiBsw7o7ICM4RjczCivovbQgPiB6aMOzdTsgIzhGNzQKK+i9tSA+IHpoxK07ICM4Rjc1CivovbYgPiB5w6w7ICM4Rjc2CivovbcgPiBoxas7ICM4Rjc3CivovbggPiB6aMSVbjsgIzhGNzgKK+i9uSA+IGzDrDsgIzhGNzkKK+i9uiA+IHnDoW87ICM4RjdBCivovbsgPiBxxKtuZzsgIzhGN0IKK+i9vCA+IHNow6w7ICM4RjdDCivovb0gPiB6w6BpOyAjOEY3RAor6L2+ID4gemjDrDsgIzhGN0UKK+i9vyA+IGppw6BvOyAjOEY3Rgor6L6AID4gemjFjXU7ICM4RjgwCivovoEgPiBxdcOhbjsgIzhGODEKK+i+giA+IGzDuTsgIzhGODIKK+i+gyA+IGppw6BvOyAjOEY4Mwor6L6EID4gemjDqTsgIzhGODQKK+i+hSA+IGbFrTsgIzhGODUKK+i+hiA+IGxpw6BuZzsgIzhGODYKK+i+hyA+IG5pxINuOyAjOEY4Nwor6L6IID4gYsOoaTsgIzhGODgKK+i+iSA+IGjFq2k7ICM4Rjg5CivovoogPiBnxa1uOyAjOEY4QQor6L6LID4gd8SDbmc7ICM4RjhCCivovowgPiBsacOhbmc7ICM4RjhDCivovo0gPiBjaMO5bzsgIzhGOEQKK+i+jiA+IHrEqzsgIzhGOEUKK+i+jyA+IGPDsnU7ICM4RjhGCivovpAgPiBmw7o7ICM4RjkwCivovpEgPiBqw607ICM4RjkxCivovpIgPiB3xJNuOyAjOEY5Mgor6L6TID4gc2jFqzsgIzhGOTMKK+i+lCA+IHDDqGk7ICM4Rjk0CivovpUgPiB5dcOhbjsgIzhGOTUKK+i+liA+IHhpw6E7ICM4Rjk2CivovpcgPiB6aMSDbjsgIzhGOTcKK+i+mCA+IGzDuTsgIzhGOTgKK+i+mSA+IGNow6g7ICM4Rjk5CivovpogPiBsw61uOyAjOEY5QQor6L6bID4geMSrbjsgIzhGOUIKK+i+nCA+IGfFqzsgIzhGOUMKK+i+nSA+IGPDrTsgIzhGOUQKK+i+niA+IGPDrTsgIzhGOUUKK+i+nyA+IHDDrDsgIzhGOUYKK+i+oCA+IHrDuWk7ICM4RkEwCivovqEgPiBiacOgbjsgIzhGQTEKK+i+oiA+IGzDoDsgIzhGQTIKK+i+oyA+IGzDoDsgIzhGQTMKK+i+pCA+IGPDrTsgIzhGQTQKK+i+pSA+IHh1xJM7ICM4RkE1CivovqYgPiBiw6BuOyAjOEZBNgor6L6nID4gYmnDoG47ICM4RkE3CivovqggPiBiacOgbjsgIzhGQTgKK+i+qSA+IGJpw6BuOyAjOEZBOQor6L6rID4gYmnDoG47ICM4RkFCCivovqwgPiBixIFuOyAjOEZBQwor6L6tID4gY8OtOyAjOEZBRAor6L6uID4gYmnDoG47ICM4RkFFCivovq8gPiBiacOgbjsgIzhGQUYKK+i+sCA+IGNow6luOyAjOEZCMAor6L6xID4gcsO5OyAjOEZCMQor6L6yID4gbsOzbmc7ICM4RkIyCivovrMgPiBuw7NuZzsgIzhGQjMKK+i+tCA+IHpoxJVuOyAjOEZCNAor6L61ID4gY2jDuW87ICM4RkI1CivovrYgPiBjaMO5bzsgIzhGQjYKK+i+uCA+IHLDqW5nOyAjOEZCOAor6L65ID4gYmnEgW47ICM4RkI5CivovrogPiBiacSBbjsgIzhGQkEKK+i+vSA+IGxpw6FvOyAjOEZCRAor6L6+ID4gZMOhOyAjOEZCRQor6L6/ID4gY2jEgW47ICM4RkJGCivov4AgPiBnxIFuOyAjOEZDMAor6L+BID4gcWnEgW47ICM4RkMxCivov4IgPiB5xas7ICM4RkMyCivov4MgPiB5xas7ICM4RkMzCivov4QgPiBxw6w7ICM4RkM0Civov4UgPiB4w7luOyAjOEZDNQor6L+GID4gecStOyAjOEZDNgor6L+HID4gZ8O5bzsgIzhGQzcKK+i/iCA+IG3DoGk7ICM4RkM4Civov4kgPiBxw607ICM4RkM5Civov4ogPiB6xIE7ICM4RkNBCivov4sgPiB3w6BuZzsgIzhGQ0IKK+i/jCA+IGppYTsgIzhGQ0MKK+i/jSA+IHpoxatuOyAjOEZDRAor6L+OID4gecOtbmc7ICM4RkNFCivov48gPiB0w6w7ICM4RkNGCivov5AgPiB5w7luOyAjOEZEMAor6L+RID4gasOsbjsgIzhGRDEKK+i/kiA+IGjDoW5nOyAjOEZEMgor6L+TID4gecOgOyAjOEZEMwor6L+UID4gZsSDbjsgIzhGRDQKK+i/lSA+IHfDuTsgIzhGRDUKK+i/liA+IGTDoTsgIzhGRDYKK+i/lyA+IMOpOyAjOEZENwor6L+YID4gaHXDoW47ICM4RkQ4Civov5kgPiB6aMOoOyAjOEZEOQor6L+bID4gasOsbjsgIzhGREIKK+i/nCA+IHl1xINuOyAjOEZEQwor6L+dID4gd8OpaTsgIzhGREQKK+i/niA+IGxpw6FuOyAjOEZERQor6L+fID4gY2jDrTsgIzhGREYKK+i/oCA+IGNow6g7ICM4RkUwCivov6EgPiBuw6w7ICM4RkUxCivov6IgPiB0acOhbzsgIzhGRTIKK+i/oyA+IHpow6w7ICM4RkUzCivov6QgPiB5xK07ICM4RkU0Civov6UgPiBqxK1vbmc7ICM4RkU1Civov6YgPiBqacSBOyAjOEZFNgor6L+nID4gY2jDqW47ICM4RkU3Civov6ggPiBkw6BpOyAjOEZFOAor6L+pID4gxJVyOyAjOEZFOQor6L+qID4gZMOtOyAjOEZFQQor6L+rID4gcMOyOyAjOEZFQgor6L+sID4gd8SDbmc7ICM4RkVDCivov60gPiBkacOpOyAjOEZFRAor6L+uID4gesOpOyAjOEZFRQor6L+vID4gdMOhbzsgIzhGRUYKK+i/sCA+IHNow7k7ICM4RkYwCivov7EgPiB0w7pvOyAjOEZGMQor6L+zID4gasOsbmc7ICM4RkYzCivov7QgPiBow7ppOyAjOEZGNAor6L+1ID4gdMOzbmc7ICM4RkY1Civov7YgPiB5w7J1OyAjOEZGNgor6L+3ID4gbcOtOyAjOEZGNwor6L+4ID4gYsOobmc7ICM4RkY4Civov7kgPiBqxKs7ICM4RkY5Civov7ogPiBuxINpOyAjOEZGQQor6L+7ID4gecOtOyAjOEZGQgor6L+8ID4gamnDqTsgIzhGRkMKK+i/vSA+IHpoxatpOyAjOEZGRAor6L++ID4gbGnDqDsgIzhGRkUKK+i/vyA+IHjDuW47ICM4RkZGCivpgIAgPiB0w7lpOyAjOTAwMAor6YCBID4gc8Oybmc7ICM5MDAxCivpgIIgPiBndcSBOyAjOTAwMgor6YCDID4gdMOhbzsgIzkwMDMKK+mAhCA+IHDDoW5nOyAjOTAwNAor6YCFID4gaMOydTsgIzkwMDUKK+mAhiA+IG7DrDsgIzkwMDYKK+mAhyA+IGTDuW47ICM5MDA3CivpgIggPiBqxK1vbmc7ICM5MDA4CivpgIkgPiB4dcSDbjsgIzkwMDkKK+mAiiA+IHjDuW47ICM5MDBBCivpgIsgPiBixas7ICM5MDBCCivpgIwgPiB5w7N1OyAjOTAwQwor6YCNID4geGnEgW87ICM5MDBECivpgI4gPiBxw611OyAjOTAwRQor6YCPID4gdMOydTsgIzkwMEYKK+mAkCA+IHpow7o7ICM5MDEwCivpgJEgPiBxw611OyAjOTAxMQor6YCSID4gZMOsOyAjOTAxMgor6YCTID4gZMOsOyAjOTAxMwor6YCUID4gdMO6OyAjOTAxNAor6YCVID4gasOsbmc7ICM5MDE1CivpgJYgPiB0w6w7ICM5MDE2CivpgJcgPiBkw7J1OyAjOTAxNwor6YCYID4gecStOyAjOTAxOAor6YCZID4gemjDqDsgIzkwMTkKK+mAmiA+IHTFjW5nOyAjOTAxQQor6YCbID4gZ3XDoG5nOyAjOTAxQgor6YCcID4gd8O5OyAjOTAxQwor6YCdID4gc2jDrDsgIzkwMUQKK+mAniA+IGNoxJVuZzsgIzkwMUUKK+mAnyA+IHPDuTsgIzkwMUYKK+mAoCA+IHrDoG87ICM5MDIwCivpgKEgPiBxxatuOyAjOTAyMQor6YCiID4gZsOpbmc7ICM5MDIyCivpgKMgPiBsacOhbjsgIzkwMjMKK+mApCA+IHPDuW87ICM5MDI0CivpgKUgPiBow7ppOyAjOTAyNQor6YCmID4gbMStOyAjOTAyNgor6YCoID4gbMOhaTsgIzkwMjgKK+mAqSA+IGLDqG47ICM5MDI5CivpgKogPiBjw7lvOyAjOTAyQQor6YCrID4ganXDqTsgIzkwMkIKK+mArCA+IGLDqG5nOyAjOTAyQwor6YCtID4gaHXDoG47ICM5MDJECivpgK4gPiBkw6BpOyAjOTAyRQor6YCvID4gbMO5OyAjOTAyRgor6YCwID4gecOzdTsgIzkwMzAKK+mAsSA+IHpoxY11OyAjOTAzMQor6YCyID4gasOsbjsgIzkwMzIKK+mAsyA+IHnDuTsgIzkwMzMKK+mAtCA+IGNow7lvOyAjOTAzNAor6YC1ID4ga8O6aTsgIzkwMzUKK+mAtiA+IHfEk2k7ICM5MDM2CivpgLcgPiB0w6w7ICM5MDM3CivpgLggPiB5w6w7ICM5MDM4CivpgLkgPiBkw6E7ICM5MDM5CivpgLogPiB5dcSDbjsgIzkwM0EKK+mAuyA+IGzDum87ICM5MDNCCivpgLwgPiBixKs7ICM5MDNDCivpgL0gPiBuw7lvOyAjOTAzRAor6YC+ID4gecO6OyAjOTAzRQor6YC/ID4gZMOgbmc7ICM5MDNGCivpgYAgPiBzw7ppOyAjOTA0MAor6YGBID4gZMO5bjsgIzkwNDEKK+mBgiA+IHPDuWk7ICM5MDQyCivpgYMgPiB5xINuOyAjOTA0Mwor6YGEID4gY2h1w6FuOyAjOTA0NAor6YGFID4gY2jDrTsgIzkwNDUKK+mBhiA+IHTDrTsgIzkwNDYKK+mBhyA+IHnDuTsgIzkwNDcKK+mBiCA+IHNow607ICM5MDQ4CivpgYkgPiB6aMSTbjsgIzkwNDkKK+mBiiA+IHnDs3U7ICM5MDRBCivpgYsgPiB5w7luOyAjOTA0Qgor6YGMID4gw6g7ICM5MDRDCivpgY0gPiBiacOgbjsgIzkwNEQKK+mBjiA+IGfDuW87ICM5MDRFCivpgY8gPiDDqDsgIzkwNEYKK+mBkCA+IHhpw6E7ICM5MDUwCivpgZEgPiBodcOhbmc7ICM5MDUxCivpgZIgPiBxw611OyAjOTA1Mgor6YGTID4gZMOgbzsgIzkwNTMKK+mBlCA+IGTDoTsgIzkwNTQKK+mBlSA+IHfDqWk7ICM5MDU1CivpgZcgPiB5w607ICM5MDU3CivpgZggPiBnw7J1OyAjOTA1OAor6YGZID4gecOhbzsgIzkwNTkKK+mBmiA+IGNow7k7ICM5MDVBCivpgZsgPiBsw611OyAjOTA1Qgor6YGcID4geMO5bjsgIzkwNUMKK+mBnSA+IHTDoDsgIzkwNUQKK+mBniA+IGTDrDsgIzkwNUUKK+mBnyA+IGNow607ICM5MDVGCivpgaAgPiB5dcSDbjsgIzkwNjAKK+mBoSA+IHPDuTsgIzkwNjEKK+mBoiA+IHTDoDsgIzkwNjIKK+mBoyA+IHFpxINuOyAjOTA2Mwor6YGlID4gecOhbzsgIzkwNjUKK+mBpiA+IGd1w6BuOyAjOTA2Ngor6YGnID4gemjEgW5nOyAjOTA2Nwor6YGoID4gw6FvOyAjOTA2OAor6YGpID4gc2jDrDsgIzkwNjkKK+mBqiA+IGPDqDsgIzkwNkEKK+mBqyA+IGNow6w7ICM5MDZCCivpgawgPiBzw7k7ICM5MDZDCivpga0gPiB6xIFvOyAjOTA2RAor6YGuID4gemjEkzsgIzkwNkUKK+mBryA+IGTDuW47ICM5MDZGCivpgbAgPiBkw6w7ICM5MDcwCivpgbEgPiBsw7N1OyAjOTA3MQor6YGyID4gY2jDrTsgIzkwNzIKK+mBsyA+IGPFq287ICM5MDczCivpgbQgPiBsw61uOyAjOTA3NAor6YG1ID4gesWrbjsgIzkwNzUKK+mBtiA+IHLDoG87ICM5MDc2CivpgbcgPiBxacSBbjsgIzkwNzcKK+mBuCA+IHh1xINuOyAjOTA3OAor6YG5ID4gecO5OyAjOTA3OQor6YG6ID4gecOtOyAjOTA3QQor6YG7ID4gd8O5OyAjOTA3Qgor6YG8ID4gbGnDoW87ICM5MDdDCivpgb0gPiBqw7k7ICM5MDdECivpgb4gPiBzaMOsOyAjOTA3RQor6YG/ID4gYsOsOyAjOTA3Rgor6YKAID4gecSBbzsgIzkwODAKK+mCgSA+IG3DoGk7ICM5MDgxCivpgoIgPiB4acOoOyAjOTA4Mgor6YKDID4gc8O5aTsgIzkwODMKK+mChCA+IGh1w6FuOyAjOTA4NAor6YKFID4gemjEgW47ICM5MDg1CivpgoYgPiB0w6luZzsgIzkwODYKK+mChyA+IMSVcjsgIzkwODcKK+mCiCA+IG1pxINvOyAjOTA4OAor6YKJID4gYmnEgW47ICM5MDg5CivpgoogPiBiacSBbjsgIzkwOEEKK+mCiyA+IGzDoTsgIzkwOEIKK+mCjCA+IGzDrTsgIzkwOEMKK+mCjSA+IHl1w6FuOyAjOTA4RAor6YKOID4gecOhbzsgIzkwOEUKK+mCjyA+IGzDum87ICM5MDhGCivpgpAgPiBsxK07ICM5MDkwCivpgpEgPiB5w6w7ICM5MDkxCivpgpIgPiB0w61uZzsgIzkwOTIKK+mCkyA+IGTDqG5nOyAjOTA5Mwor6YKUID4gccStOyAjOTA5NAor6YKVID4gecWNbmc7ICM5MDk1CivpgpYgPiBzaMSBbjsgIzkwOTYKK+mClyA+IGjDoW47ICM5MDk3CivpgpggPiB5w7o7ICM5MDk4CivpgpkgPiBtw6FuZzsgIzkwOTkKK+mCmiA+IHLDujsgIzkwOUEKK+mCmyA+IHHDrW9uZzsgIzkwOUIKK+mCnSA+IGt1w6BuZzsgIzkwOUQKK+mCniA+IGbFqzsgIzkwOUUKK+mCnyA+IGvDoG5nOyAjOTA5Rgor6YKgID4gYsSrbjsgIzkwQTAKK+mCoSA+IGbEgW5nOyAjOTBBMQor6YKiID4geMOtbmc7ICM5MEEyCivpgqMgPiBuw6A7ICM5MEEzCivpgqQgPiB4aW47ICM5MEE0CivpgqUgPiBzaMSVbjsgIzkwQTUKK+mCpiA+IGLEgW5nOyAjOTBBNgor6YKnID4geXXDoW47ICM5MEE3CivpgqggPiBjxatuOyAjOTBBOAor6YKpID4gaMWtbzsgIzkwQTkKK+mCqiA+IHhpw6k7ICM5MEFBCivpgqsgPiBixIFuZzsgIzkwQUIKK+mCrCA+IHfFqzsgIzkwQUMKK+mCrSA+IGrDuTsgIzkwQUQKK+mCriA+IHnDs3U7ICM5MEFFCivpgq8gPiBow6FuOyAjOTBBRgor6YKwID4gdMOhaTsgIzkwQjAKK+mCsSA+IHHEq3U7ICM5MEIxCivpgrIgPiBiw6w7ICM5MEIyCivpgrMgPiBww6lpOyAjOTBCMwor6YK0ID4gYsStbmc7ICM5MEI0CivpgrUgPiBzaMOgbzsgIzkwQjUKK+mCtiA+IGLDqGk7ICM5MEI2CivpgrcgPiB3xIM7ICM5MEI3CivpgrggPiBkxK07ICM5MEI4CivpgrkgPiB6xY11OyAjOTBCOQor6YK6ID4gecOoOyAjOTBCQQor6YK7ID4gbMOtbjsgIzkwQkIKK+mCvCA+IGt1xIFuZzsgIzkwQkMKK+mCvSA+IGfFq2k7ICM5MEJECivpgr4gPiB6aMWrOyAjOTBCRQor6YK/ID4gc2jEqzsgIzkwQkYKK+mDgCA+IGvFqzsgIzkwQzAKK+mDgSA+IHnDuTsgIzkwQzEKK+mDgiA+IGfEgWk7ICM5MEMyCivpg4MgPiBnw6k7ICM5MEMzCivpg4QgPiB4w6w7ICM5MEM0Civpg4UgPiB6aMOsOyAjOTBDNQor6YOGID4gasOtOyAjOTBDNgor6YOHID4geMO6bjsgIzkwQzcKK+mDiCA+IGjDsnU7ICM5MEM4Civpg4kgPiB4w61uZzsgIzkwQzkKK+mDiiA+IGppxIFvOyAjOTBDQQor6YOLID4geMOtOyAjOTBDQgor6YOMID4gZ8WraTsgIzkwQ0MKK+mDjSA+IG7Dum87ICM5MENECivpg44gPiBsw6FuZzsgIzkwQ0UKK+mDjyA+IGppw6E7ICM5MENGCivpg5AgPiBrdcOgaTsgIzkwRDAKK+mDkSA+IHpow6huZzsgIzkwRDEKK+mDkyA+IHnDuW47ICM5MEQzCivpg5QgPiB5w6FuOyAjOTBENAor6YOVID4gY2jDqW5nOyAjOTBENQor6YOWID4gZMWNdTsgIzkwRDYKK+mDlyA+IGNoxKs7ICM5MEQ3Civpg5ggPiBsx5o7ICM5MEQ4Civpg5kgPiBmxa07ICM5MEQ5Civpg5ogPiB3w7o7ICM5MERBCivpg5sgPiBmw7o7ICM5MERCCivpg5wgPiBnw6BvOyAjOTBEQwor6YOdID4gaMSDbzsgIzkwREQKK+mDniA+IGzDoW5nOyAjOTBERQor6YOfID4gamnDoTsgIzkwREYKK+mDoCA+IGfElW5nOyAjOTBFMAor6YOhID4gasO5bjsgIzkwRTEKK+mDoiA+IHnErW5nOyAjOTBFMgor6YOjID4gYsOzOyAjOTBFMwor6YOkID4geMOsOyAjOTBFNAor6YOlID4gYsOoaTsgIzkwRTUKK+mDpiA+IGzDrDsgIzkwRTYKK+mDpyA+IHnDum47ICM5MEU3Civpg6ggPiBiw7k7ICM5MEU4Civpg6kgPiB4acOhbzsgIzkwRTkKK+mDqiA+IHHEqzsgIzkwRUEKK+mDqyA+IHDDrTsgIzkwRUIKK+mDrCA+IHHEq25nOyAjOTBFQwor6YOtID4gZ8WrbzsgIzkwRUQKK+mDriA+IHpob3U7ICM5MEVFCivpg68gPiB0w6FuOyAjOTBFRgor6YOwID4gesWNdTsgIzkwRjAKK+mDsSA+IHDDrW5nOyAjOTBGMQor6YOyID4gbMOhaTsgIzkwRjIKK+mDsyA+IG7DrTsgIzkwRjMKK+mDtCA+IGNoxJNuOyAjOTBGNAor6YO1ID4gecOzdTsgIzkwRjUKK+mDtiA+IGLDuTsgIzkwRjYKK+mDtyA+IHhpxIFuZzsgIzkwRjcKK+mDuCA+IGTEgW47ICM5MEY4Civpg7kgPiBqw7o7ICM5MEY5Civpg7ogPiB5xY1uZzsgIzkwRkEKK+mDuyA+IHFpxIFvOyAjOTBGQgor6YO8ID4gecSrOyAjOTBGQwor6YO9ID4gZMWrOyAjOTBGRAor6YO+ID4gecSDbjsgIzkwRkUKK+mDvyA+IG3DqWk7ICM5MEZGCivphIAgPiByw7lvOyAjOTEwMAor6YSBID4gYsOoaTsgIzkxMDEKK+mEgiA+IMOoOyAjOTEwMgor6YSDID4gecO6OyAjOTEwMwor6YSEID4ganXDoG47ICM5MTA0CivphIUgPiB5xa07ICM5MTA1CivphIYgPiB5w7luOyAjOTEwNgor6YSHID4gaMOydTsgIzkxMDcKK+mEiCA+IGvDumk7ICM5MTA4CivphIkgPiB4acSBbmc7ICM5MTA5CivphIogPiB4acSBbmc7ICM5MTBBCivphIsgPiBzxY11OyAjOTEwQgor6YSMID4gdMOhbmc7ICM5MTBDCivphI0gPiBtw61uZzsgIzkxMEQKK+mEjiA+IHjDrDsgIzkxMEUKK+mEjyA+IHLDuTsgIzkxMEYKK+mEkCA+IGNow7k7ICM5MTEwCivphJEgPiB6xKs7ICM5MTExCivphJIgPiB6xY11OyAjOTExMgor6YSTID4gasO6OyAjOTExMwor6YSUID4gd8WrOyAjOTExNAor6YSVID4geGnEgW5nOyAjOTExNQor6YSWID4gecO6bjsgIzkxMTYKK+mElyA+IGjDoG87ICM5MTE3CivphJggPiB5xY1uZzsgIzkxMTgKK+mEmSA+IGLErTsgIzkxMTkKK+mEmiA+IG3DsjsgIzkxMUEKK+mEmyA+IGNow6FvOyAjOTExQgor6YScID4gZsWrOyAjOTExQwor6YSdID4gbGnEg287ICM5MTFECivphJ4gPiB5w61uOyAjOTExRQor6YSfID4gemh1xIFuOyAjOTExRgor6YSgID4gaMO5OyAjOTEyMAor6YShID4gcWnEgW87ICM5MTIxCivphKIgPiB5xIFuOyAjOTEyMgor6YSjID4gemjEgW5nOyAjOTEyMwor6YSkID4gZsOgbjsgIzkxMjQKK+mEpSA+IHFpxIFvOyAjOTEyNQor6YSmID4geMWtOyAjOTEyNgor6YSnID4gZMOobmc7ICM5MTI3CivphKggPiBiw6w7ICM5MTI4CivphKkgPiB4w61uOyAjOTEyOQor6YSqID4gYsOsOyAjOTEyQQor6YSrID4gY8Opbmc7ICM5MTJCCivphKwgPiB3w6lpOyAjOTEyQwor6YStID4gemjDqG5nOyAjOTEyRAor6YSuID4gbcOgbzsgIzkxMkUKK+mEryA+IHNow6BuOyAjOTEyRgor6YSwID4gbMOtbjsgIzkxMzAKK+mEsSA+IHDDszsgIzkxMzEKK+mEsiA+IGTEgW47ICM5MTMyCivphLMgPiBtw6luZzsgIzkxMzMKK+mEtCA+IHnDqDsgIzkxMzQKK+mEtSA+IGPEgW87ICM5MTM1CivphLYgPiBrdcOgaTsgIzkxMzYKK+mEtyA+IGbEk25nOyAjOTEzNwor6YS4ID4gbcOpbmc7ICM5MTM4CivphLkgPiB6xY11OyAjOTEzOQor6YS6ID4ga3XDoG5nOyAjOTEzQQor6YS7ID4gbGnDoW47ICM5MTNCCivphLwgPiB6w6BuOyAjOTEzQwor6YS9ID4gY2jDoW47ICM5MTNECivphL4gPiB5xY11OyAjOTEzRQor6YS/ID4gccOtOyAjOTEzRgor6YWAID4gecSBbjsgIzkxNDAKK+mFgSA+IGNow6FuOyAjOTE0MQor6YWCID4gesOgbjsgIzkxNDIKK+mFgyA+IGzDrW5nOyAjOTE0Mwor6YWEID4gaHXEgW47ICM5MTQ0CivphYUgPiB4xKs7ICM5MTQ1CivphYYgPiBmxJNuZzsgIzkxNDYKK+mFhyA+IHrDoG47ICM5MTQ3CivphYggPiBsw6w7ICM5MTQ4CivphYkgPiB5xY91OyAjOTE0OQor6YWKID4gZMStbmc7ICM5MTRBCivphYsgPiBxw611OyAjOTE0Qgor6YWMID4gemjDum87ICM5MTRDCivphY0gPiBww6hpOyAjOTE0RAor6YWOID4gemjDsnU7ICM5MTRFCivphY8gPiB5w607ICM5MTRGCivphZAgPiBoxINuZzsgIzkxNTAKK+mFkSA+IHnFrTsgIzkxNTEKK+mFkiA+IGrErXU7ICM5MTUyCivphZMgPiB5xINuOyAjOTE1Mwor6YWUID4gesO5aTsgIzkxNTQKK+mFlSA+IG3DoW87ICM5MTU1CivphZYgPiBkxIFuOyAjOTE1Ngor6YWXID4geMO5OyAjOTE1Nwor6YWYID4gdMOzdTsgIzkxNTgKK+mFmSA+IHpoxJNuOyAjOTE1OQor6YWaID4gZsSTbjsgIzkxNUEKK+mFnSA+IHnDuW47ICM5MTVECivphZ4gPiB0w6BpOyAjOTE1RQor6YWfID4gdGnEgW47ICM5MTVGCivphaAgPiBxacSDOyAjOTE2MAor6YWhID4gdMO6bzsgIzkxNjEKK+mFoiA+IHrDuW87ICM5MTYyCivphaMgPiBoxIFuOyAjOTE2Mwor6YWkID4gZ8WrOyAjOTE2NAor6YWlID4gc8WrOyAjOTE2NQor6YWmID4gcMOyOyAjOTE2Ngor6YWnID4gY2jDs3U7ICM5MTY3CivphaggPiB6w6BpOyAjOTE2OAor6YWpID4gbcOtbmc7ICM5MTY5CivphaogPiBsw7lvOyAjOTE2QQor6YWrID4gY2jDuW87ICM5MTZCCivphawgPiBjaMOzdTsgIzkxNkMKK+mFrSA+IHnDsnU7ICM5MTZECivpha4gPiB0w7NuZzsgIzkxNkUKK+mFryA+IHpoxK07ICM5MTZGCivphbAgPiB4acSBbjsgIzkxNzAKK+mFsSA+IGppw6BuZzsgIzkxNzEKK+mFsiA+IGNow6luZzsgIzkxNzIKK+mFsyA+IHnDrG47ICM5MTczCivphbQgPiB0w7o7ICM5MTc0CivphbUgPiB4acOgbzsgIzkxNzUKK+mFtiA+IG3DqWk7ICM5MTc2CivphbcgPiBrw7k7ICM5MTc3CivphbggPiBzdcSBbjsgIzkxNzgKK+mFuSA+IGzDqGk7ICM5MTc5CivphbogPiBww7o7ICM5MTdBCivphbsgPiB6w7lpOyAjOTE3Qgor6YW8ID4gaMSDaTsgIzkxN0MKK+mFvSA+IHnDoG47ICM5MTdECivphb4gPiB4xK07ICM5MTdFCivphb8gPiBuacOgbmc7ICM5MTdGCivphoAgPiB3w6lpOyAjOTE4MAor6YaBID4gbMO5OyAjOTE4MQor6YaCID4gbMSDbjsgIzkxODIKK+mGgyA+IHnEgW47ICM5MTgzCivphoQgPiB0w6FvOyAjOTE4NAor6YaFID4gcMSTaTsgIzkxODUKK+mGhiA+IHpoxINuOyAjOTE4Ngor6YaHID4gY2jDum47ICM5MTg3CivphoggPiB0w6FuOyAjOTE4OAor6YaJID4gesO5aTsgIzkxODkKK+mGiiA+IGNow7lvOyAjOTE4QQor6YaLID4gY8O5OyAjOTE4Qgor6YaMID4ga8WrbjsgIzkxOEMKK+mGjSA+IHTDrTsgIzkxOEQKK+mGjiA+IG1pw6FuOyAjOTE4RQor6YaPID4gZMWrOyAjOTE4Rgor6YaQID4gaMO6OyAjOTE5MAor6YaRID4geMWtOyAjOTE5MQor6YaSID4geMStbmc7ICM5MTkyCivphpMgPiB0xINuOyAjOTE5Mwor6YaUID4gasSrdTsgIzkxOTQKK+mGlSA+IGNow7puOyAjOTE5NQor6YaWID4gecO5bjsgIzkxOTYKK+mGlyA+IHDDsjsgIzkxOTcKK+mGmCA+IGvDqDsgIzkxOTgKK+mGmSA+IHPFjXU7ICM5MTk5CivphpogPiBtw607ICM5MTlBCivphpsgPiBxdcOhbjsgIzkxOUIKK+mGnCA+IGNoxY91OyAjOTE5Qwor6YadID4gY8O6bzsgIzkxOUQKK+mGniA+IHnDuW47ICM5MTlFCivphp8gPiB5w7JuZzsgIzkxOUYKK+mGoCA+IMOgbmc7ICM5MUEwCivphqEgPiB6aMOgOyAjOTFBMQor6YaiID4gaMSDaTsgIzkxQTIKK+mGoyA+IHTDoW5nOyAjOTFBMwor6YakID4gamnDoG5nOyAjOTFBNAor6YalID4gcGnEg287ICM5MUE1CivphqYgPiBzaMSDbjsgIzkxQTYKK+mGpyA+IHnDuTsgIzkxQTcKK+mGqCA+IGzDrTsgIzkxQTgKK+mGqSA+IHrDoW87ICM5MUE5CivphqogPiBsw6FvOyAjOTFBQQor6YarID4gecSrOyAjOTFBQgor6YasID4gamnDoG5nOyAjOTFBQwor6YatID4gcMWrOyAjOTFBRAor6YauID4gamnDoG87ICM5MUFFCivphq8gPiB4xKs7ICM5MUFGCivphrAgPiB0w6FuOyAjOTFCMAor6YaxID4gcMOyOyAjOTFCMQor6YayID4gbsOzbmc7ICM5MUIyCivphrMgPiB5w6w7ICM5MUIzCivphrQgPiBsxK07ICM5MUI0CivphrUgPiBqw7k7ICM5MUI1CivphrYgPiBqacOgbzsgIzkxQjYKK+mGtyA+IHnDrDsgIzkxQjcKK+mGuCA+IG5pw6BuZzsgIzkxQjgKK+mGuSA+IHLDujsgIzkxQjkKK+mGuiA+IHjFq247ICM5MUJBCivphrsgPiBjaMOzdTsgIzkxQkIKK+mGvCA+IHnDoG47ICM5MUJDCivphr0gPiBsw61uZzsgIzkxQkQKK+mGviA+IG3DrTsgIzkxQkUKK+mGvyA+IG3DrTsgIzkxQkYKK+mHgCA+IG5pw6BuZzsgIzkxQzAKK+mHgSA+IHjDrG47ICM5MUMxCivph4IgPiBqacOgbzsgIzkxQzIKK+mHgyA+IHjErTsgIzkxQzMKK+mHhCA+IG3DrTsgIzkxQzQKK+mHhSA+IHnDoG47ICM5MUM1Civph4YgPiBiacOgbjsgIzkxQzYKK+mHhyA+IGPEg2k7ICM5MUM3Civph4ggPiBzaMOsOyAjOTFDOAor6YeJID4gecOydTsgIzkxQzkKK+mHiiA+IHNow6w7ICM5MUNBCivph4sgPiBzaMOsOyAjOTFDQgor6YeMID4gbMStOyAjOTFDQwor6YeNID4gemjDsm5nOyAjOTFDRAor6YeOID4gecSVOyAjOTFDRQor6YePID4gbGnDoG5nOyAjOTFDRgor6YeQID4gbMOtOyAjOTFEMAor6YeRID4gasSrbjsgIzkxRDEKK+mHkiA+IGrEq24nICd6w6wnICdww6FuZzsgIzkxRDIKK+mHkyA+IHHDrXU7ICM5MUQzCivph5QgPiB5xK07ICM5MUQ0Civph5UgPiBkacSDbzsgIzkxRDUKK+mHliA+IGTEgW87ICM5MUQ2Civph5cgPiB6aMSBbzsgIzkxRDcKK+mHmCA+IGTEq25nOyAjOTFEOAor6YeZID4gcMOyOyAjOTFEOQor6YeaID4gccOtdTsgIzkxREEKK+mHmyA+IGjDqTsgIzkxREIKK+mHnCA+IGbFrTsgIzkxREMKK+mHnSA+IHpoxJNuOyAjOTFERAor6YeeID4gemjDrTsgIzkxREUKK+mHnyA+IGLEgTsgIzkxREYKK+mHoCA+IGx1w6BuOyAjOTFFMAor6YehID4gZsWtOyAjOTFFMQor6YeiID4gbsOhaTsgIzkxRTIKK+mHoyA+IGRpw6BvOyAjOTFFMwor6YekID4gc2jDoG47ICM5MUU0Civph6UgPiBxacSDbzsgIzkxRTUKK+mHpiA+IGvDsnU7ICM5MUU2Civph6cgPiBjaHXDoG47ICM5MUU3Civph6ggPiB6xK07ICM5MUU4Civph6kgPiBmw6FuOyAjOTFFOQor6YeqID4gecO6OyAjOTFFQQor6YerID4gaHXDoTsgIzkxRUIKK+mHrCA+IGjDoG47ICM5MUVDCivph60gPiBnxY1uZzsgIzkxRUQKK+mHriA+IHHDrTsgIzkxRUUKK+mHryA+IG3DoW5nOyAjOTFFRgor6YewID4gcsOsOyAjOTFGMAor6YexID4gZMOsOyAjOTFGMQor6YeyID4gc8OsOyAjOTFGMgor6YezID4geMOsOyAjOTFGMwor6Ye0ID4gecOsOyAjOTFGNAor6Ye1ID4gY2jEgWk7ICM5MUY1Civph7YgPiBzaMSrOyAjOTFGNgor6Ye3ID4gdMWtOyAjOTFGNwor6Ye4ID4geMOsOyAjOTFGOAor6Ye5ID4gbseaOyAjOTFGOQor6Ye6ID4gcWnEgW47ICM5MUZBCivph7wgPiBqacOgbjsgIzkxRkMKK+mHvSA+IHDEqzsgIzkxRkQKK+mHviA+IHnDqTsgIzkxRkUKK+mHvyA+IHnDrW47ICM5MUZGCivpiIAgPiBixIM7ICM5MjAwCivpiIEgPiBmxIFuZzsgIzkyMDEKK+mIgiA+IGNow6luOyAjOTIwMgor6YiDID4geMOtbmc7ICM5MjAzCivpiIQgPiB0xY91OyAjOTIwNAor6YiFID4geXXDqDsgIzkyMDUKK+mIhiA+IHnDoW47ICM5MjA2CivpiIcgPiBmxas7ICM5MjA3CivpiIggPiBwxKs7ICM5MjA4CivpiIkgPiBuw6A7ICM5MjA5CivpiIogPiB4xKtuOyAjOTIwQQor6YiLID4gw6k7ICM5MjBCCivpiIwgPiBqdcOpOyAjOTIwQwor6YiNID4gZMO5bjsgIzkyMEQKK+mIjiA+IGfFjXU7ICM5MjBFCivpiI8gPiB5xK1uOyAjOTIwRgor6YiQID4gcWnDoW47ICM5MjEwCivpiJEgPiBixINuOyAjOTIxMQor6YiSID4gasOtOyAjOTIxMgor6YiTID4gcsOpbjsgIzkyMTMKK+mIlCA+IGNoxIFvOyAjOTIxNAor6YiVID4gbsStdTsgIzkyMTUKK+mIliA+IGbEk247ICM5MjE2CivpiJcgPiB5xa1uOyAjOTIxNwor6YiYID4gasStOyAjOTIxOAor6YiZID4gccOtbjsgIzkyMTkKK+mImiA+IHDDrTsgIzkyMUEKK+mImyA+IGfFq287ICM5MjFCCivpiJwgPiBow7NuZzsgIzkyMUMKK+mInSA+IHnDrW47ICM5MjFECivpiJ4gPiBqxatuOyAjOTIxRQor6YifID4gc2jEqzsgIzkyMUYKK+mIoCA+IHnDrDsgIzkyMjAKK+mIoSA+IHpoxY1uZzsgIzkyMjEKK+mIoiA+IG5pxJM7ICM5MjIyCivpiKMgPiBnw6BpOyAjOTIyMwor6YikID4gcsOsOyAjOTIyNAor6YilID4gaMO6bzsgIzkyMjUKK+mIpiA+IHTDoGk7ICM5MjI2CivpiKcgPiBrw6BuZzsgIzkyMjcKK+mIrCA+IGTDum87ICM5MjJDCivpiK0gPiB6xKs7ICM5MjJECivpiK4gPiBuxK07ICM5MjJFCivpiK8gPiB0w7o7ICM5MjJGCivpiLAgPiBzaMOsOyAjOTIzMAor6YixID4gbcOtbjsgIzkyMzEKK+mIsiA+IGfFqzsgIzkyMzIKK+mIsyA+IMSTOyAjOTIzMwor6Yi0ID4gbMOtbmc7ICM5MjM0CivpiLUgPiBiw6xuZzsgIzkyMzUKK+mItiA+IHnDrTsgIzkyMzYKK+mItyA+IGfFqzsgIzkyMzcKK+mIuCA+IGLDoTsgIzkyMzgKK+mIuSA+IHDEqzsgIzkyMzkKK+mIuiA+IHnDuTsgIzkyM0EKK+mIuyA+IHPDrDsgIzkyM0IKK+mIvCA+IHrDum87ICM5MjNDCivpiL0gPiBiw7k7ICM5MjNECivpiL4gPiB5w7N1OyAjOTIzRQor6Yi/ID4gZGnDoG47ICM5MjNGCivpiYAgPiBqacSDOyAjOTI0MAor6YmBID4gemjEk247ICM5MjQxCivpiYIgPiBzaMStOyAjOTI0Mgor6YmDID4gc2jDrDsgIzkyNDMKK+mJhCA+IHRpxJU7ICM5MjQ0CivpiYUgPiBqw7k7ICM5MjQ1CivpiYYgPiB6aMSBbjsgIzkyNDYKK+mJhyA+IHNoxKs7ICM5MjQ3CivpiYggPiBzaMOpOyAjOTI0OAor6YmJID4geHXDoG47ICM5MjQ5CivpiYogPiB6aMSBbzsgIzkyNEEKK+mJiyA+IGLDoG87ICM5MjRCCivpiYwgPiBow6k7ICM5MjRDCivpiY0gPiBiw6w7ICM5MjRECivpiY4gPiBzaMSTbmc7ICM5MjRFCivpiY8gPiBjaMO6OyAjOTI0Rgor6YmQID4gc2jDrTsgIzkyNTAKK+mJkSA+IGLDszsgIzkyNTEKK+mJkiA+IHpow7k7ICM5MjUyCivpiZMgPiBjaMOsOyAjOTI1Mwor6YmUID4gesSBOyAjOTI1NAor6YmVID4gcMWNOyAjOTI1NQor6YmWID4gdMOzbmc7ICM5MjU2CivpiZcgPiBxacOhbjsgIzkyNTcKK+mJmCA+IGbDujsgIzkyNTgKK+mJmSA+IHpoxINpOyAjOTI1OQor6YmaID4gbMStdTsgIzkyNUEKK+mJmyA+IHFpxIFuOyAjOTI1Qgor6YmcID4gZsO6OyAjOTI1Qwor6YmdID4gbMOsOyAjOTI1RAor6YmeID4geXXDqDsgIzkyNUUKK+mJnyA+IHDEqzsgIzkyNUYKK+mJoCA+IHnEgW5nOyAjOTI2MAor6YmhID4gYsOgbjsgIzkyNjEKK+mJoiA+IGLFjTsgIzkyNjIKK+mJoyA+IGppw6k7ICM5MjYzCivpiaQgPiBnxY11OyAjOTI2NAor6YmlID4gc2jDuTsgIzkyNjUKK+mJpiA+IHpoxJNuZzsgIzkyNjYKK+mJpyA+IG3FrTsgIzkyNjcKK+mJqCA+IG7ErTsgIzkyNjgKK+mJqSA+IG5pxJM7ICM5MjY5CivpiaogPiBkw6w7ICM5MjZBCivpiasgPiBqacSBOyAjOTI2Qgor6YmsID4gbcO5OyAjOTI2Qwor6YmtID4gZMOgbjsgIzkyNkQKK+mJriA+IHNoxJNuOyAjOTI2RQor6YmvID4gecStOyAjOTI2Rgor6YmwID4gc8SrOyAjOTI3MAor6YmxID4ga3XDoG5nOyAjOTI3MQor6YmyID4ga8SDOyAjOTI3Mgor6YmzID4gYsSVaTsgIzkyNzMKK+mJtCA+IGppw6BuOyAjOTI3NAor6Ym1ID4gdMOzbmc7ICM5Mjc1CivpibYgPiB4w61uZzsgIzkyNzYKK+mJtyA+IGjDs25nOyAjOTI3Nwor6Ym4ID4gamnEg287ICM5Mjc4CivpibkgPiBjaMStOyAjOTI3OQor6Ym6ID4gw6hyOyAjOTI3QQor6Ym7ID4gZ8OoOyAjOTI3Qgor6Ym8ID4gYsStbmc7ICM5MjdDCivpib0gPiBzaMOsOyAjOTI3RAor6Ym+ID4gbcOzdTsgIzkyN0UKK+mJvyA+IGppw6E7ICM5MjdGCivpioAgPiB5w61uOyAjOTI4MAor6YqBID4gasWrbjsgIzkyODEKK+mKgiA+IHpoxY11OyAjOTI4Mgor6YqDID4gY2jDsm5nOyAjOTI4Mwor6YqEID4gc2jDoG5nOyAjOTI4NAor6YqFID4gdMOzbmc7ICM5Mjg1CivpioYgPiBtw7I7ICM5Mjg2CivpiocgPiBsw6hpOyAjOTI4Nwor6YqIID4gasSrOyAjOTI4OAor6YqJID4gecO5OyAjOTI4OQor6YqKID4geMO5OyAjOTI4QQor6YqLID4gcsOpbjsgIzkyOEIKK+mKjCA+IHrDuW47ICM5MjhDCivpio0gPiB6aMOsOyAjOTI4RAor6YqOID4gccSrb25nOyAjOTI4RQor6YqPID4gc2jDoG47ICM5MjhGCivpipAgPiBjaMOsOyAjOTI5MAor6YqRID4geGnEg247ICM5MjkxCivpipIgPiB4w61uZzsgIzkyOTIKK+mKkyA+IHF1w6FuOyAjOTI5Mwor6YqUID4gcMSrOyAjOTI5NAor6YqVID4gdGnElTsgIzkyOTUKK+mKliA+IHpoxas7ICM5Mjk2CivpipcgPiBow7N1OyAjOTI5Nwor6YqYID4gbcOtbmc7ICM5Mjk4CivpipkgPiBrdcSDOyAjOTI5OQor6YqaID4gecOhbzsgIzkyOUEKK+mKmyA+IHhpxIFuOyAjOTI5Qgor6YqcID4geGnDoW47ICM5MjlDCivpip0gPiB4xKt1OyAjOTI5RAor6YqeID4gasWrbjsgIzkyOUUKK+mKnyA+IGNoxIE7ICM5MjlGCivpiqAgPiBsxINvOyAjOTJBMAor6YqhID4gasOtOyAjOTJBMQor6YqiID4gcMStOyAjOTJBMgor6YqjID4gcsWtOyAjOTJBMwor6YqkID4gbcStOyAjOTJBNAor6YqlID4gecStOyAjOTJBNQor6YqmID4gecSrbjsgIzkyQTYKK+mKpyA+IGd1xIFuZzsgIzkyQTcKK+mKqCA+IMSBbjsgIzkyQTgKK+mKqSA+IGRpxY11OyAjOTJBOQor6YqqID4gecWPdTsgIzkyQUEKK+mKqyA+IHPDqDsgIzkyQUIKK+mKrCA+IGvDoG87ICM5MkFDCivpiq0gPiBxacOhbjsgIzkyQUQKK+mKriA+IGx1w6FuOyAjOTJBRQor6YqwID4gxIFpOyAjOTJCMAor6YqxID4gZGnDoG87ICM5MkIxCivpirIgPiBow6BuOyAjOTJCMgor6YqzID4gcsO5aTsgIzkyQjMKK+mKtCA+IHNow6w7ICM5MkI0CivpirUgPiBrxJNuZzsgIzkyQjUKK+mKtiA+IHHDrXU7ICM5MkI2CivpircgPiB4acSBbzsgIzkyQjcKK+mKuCA+IHpow6k7ICM5MkI4CivpirkgPiB4w6x1OyAjOTJCOQor6Yq6ID4gesOgbmc7ICM5MkJBCivpirsgPiB0w6w7ICM5MkJCCivpirwgPiBjw7lvOyAjOTJCQwor6Yq9ID4gZ3XEgTsgIzkyQkQKK+mKviA+IGfFj25nOyAjOTJCRQor6Yq/ID4gemjFjW5nOyAjOTJCRgor6YuAID4gZMOydTsgIzkyQzAKK+mLgSA+IGzHmjsgIzkyQzEKK+mLgiA+IG3DqWk7ICM5MkMyCivpi4MgPiBsw6FuZzsgIzkyQzMKK+mLhCA+IHfEg247ICM5MkM0Civpi4UgPiB4xKtuOyAjOTJDNQor6YuGID4gecO6bjsgIzkyQzYKK+mLhyA+IGLDqGk7ICM5MkM3Civpi4ggPiB3w7k7ICM5MkM4Civpi4kgPiBzw7k7ICM5MkM5Civpi4ogPiB5w7k7ICM5MkNBCivpi4sgPiBjaMOhbjsgIzkyQ0IKK+mLjCA+IHTErW5nOyAjOTJDQwor6YuNID4gYsOzOyAjOTJDRAor6YuOID4gaMOgbjsgIzkyQ0UKK+mLjyA+IGppw6E7ICM5MkNGCivpi5AgPiBow7NuZzsgIzkyRDAKK+mLkSA+IGN1xIFuOyAjOTJEMQor6YuSID4gZsSTbmc7ICM5MkQyCivpi5MgPiBjaMSBbjsgIzkyRDMKK+mLlCA+IHfEg247ICM5MkQ0Civpi5UgPiB6aMOsOyAjOTJENQor6YuWID4gc8SrOyAjOTJENgor6YuXID4geHXEgW47ICM5MkQ3Civpi5ggPiB3w7o7ICM5MkQ4Civpi5kgPiB3w7o7ICM5MkQ5Civpi5ogPiB0acOhbzsgIzkyREEKK+mLmyA+IGfFj25nOyAjOTJEQgor6YucID4gemjDum87ICM5MkRDCivpi50gPiBsx5xlOyAjOTJERAor6YueID4geMOtbmc7ICM5MkRFCivpi58gPiBxacSBbjsgIzkyREYKK+mLoCA+IHNow6huOyAjOTJFMAor6YuhID4gaMOhbjsgIzkyRTEKK+mLoiA+IGzHnGU7ICM5MkUyCivpi6MgPiB4acOpOyAjOTJFMwor6YukID4gY2jDujsgIzkyRTQKK+mLpSA+IHpow6huZzsgIzkyRTUKK+mLpiA+IGrDujsgIzkyRTYKK+mLpyA+IHhpw6BuOyAjOTJFNwor6YuoID4gdGnElTsgIzkyRTgKK+mLqSA+IG3DoW5nOyAjOTJFOQor6YuqID4gcMWrOyAjOTJFQQor6YurID4gbMOtOyAjOTJFQgor6YusID4gcMOgbjsgIzkyRUMKK+mLrSA+IHLDuWk7ICM5MkVECivpi64gPiBjaMOpbmc7ICM5MkVFCivpi68gPiBnw6BvOyAjOTJFRgor6YuwID4gbMStOyAjOTJGMAor6YuxID4gdMOoOyAjOTJGMQor6YuzID4gemjDuTsgIzkyRjMKK+mLtSA+IHTFqzsgIzkyRjUKK+mLtiA+IGzErXU7ICM5MkY2Civpi7cgPiB6w7lpOyAjOTJGNwor6Yu4ID4gasO5OyAjOTJGOAor6Yu5ID4gY2jEg25nOyAjOTJGOQor6Yu6ID4geXXEgW47ICM5MkZBCivpi7sgPiBqacOgbjsgIzkyRkIKK+mLvCA+IGfEgW5nOyAjOTJGQwor6Yu9ID4gZGnDoG87ICM5MkZECivpi74gPiB0w6FvOyAjOTJGRQor6Yu/ID4gY2jDoW5nOyAjOTJGRgor6YyAID4gbMO6bjsgIzkzMDAKK+mMgSA+IGt1xIM7ICM5MzAxCivpjIIgPiBsw61uZzsgIzkzMDIKK+mMgyA+IGLEk2k7ICM5MzAzCivpjIQgPiBsw7k7ICM5MzA0CivpjIUgPiBsw607ICM5MzA1CivpjIYgPiBxacSBbmc7ICM5MzA2CivpjIcgPiBww7N1OyAjOTMwNwor6YyIID4ganXDoG47ICM5MzA4CivpjIkgPiBtw61uOyAjOTMwOQor6YyKID4gesO5aTsgIzkzMEEKK+mMiyA+IHDDqW5nOyAjOTMwQgor6YyMID4gw6BuOyAjOTMwQwor6YyNID4gcMOtOyAjOTMwRAor6YyOID4geGnDoG47ICM5MzBFCivpjI8gPiB5w6A7ICM5MzBGCivpjJAgPiB6aMWraTsgIzkzMTAKK+mMkSA+IGzDqGk7ICM5MzExCivpjJIgPiDEgTsgIzkzMTIKK+mMkyA+IGvFjW5nOyAjOTMxMwor6YyUID4gdMOgOyAjOTMxNAor6YyVID4ga8WrbjsgIzkzMTUKK+mMliA+IGTFrTsgIzkzMTYKK+mMlyA+IHfDqGk7ICM5MzE3CivpjJggPiBjaMO6aTsgIzkzMTgKK+mMmSA+IHrEqzsgIzkzMTkKK+mMmiA+IHpoxJNuZzsgIzkzMUEKK+mMmyA+IGLEk247ICM5MzFCCivpjJwgPiBuacSTOyAjOTMxQwor6YydID4gY8Ozbmc7ICM5MzFECivpjJ4gPiBxw7puOyAjOTMxRQor6YyfID4gdMOhbjsgIzkzMUYKK+mMoCA+IGTDrG5nOyAjOTMyMAor6YyhID4gccOtOyAjOTMyMQor6YyiID4gcWnDoW47ICM5MzIyCivpjKMgPiB6aMO6bzsgIzkzMjMKK+mMpCA+IHHDrTsgIzkzMjQKK+mMpSA+IHnDuTsgIzkzMjUKK+mMpiA+IGrErW47ICM5MzI2CivpjKcgPiBndcSDbjsgIzkzMjcKK+mMqCA+IG3DoW87ICM5MzI4CivpjKkgPiBjaMSBbmc7ICM5MzI5CivpjKogPiB0acSDbjsgIzkzMkEKK+mMqyA+IHjDrTsgIzkzMkIKK+mMrCA+IGxpw6BuOyAjOTMyQwor6YytID4gdMOhbzsgIzkzMkQKK+mMriA+IGfDuTsgIzkzMkUKK+mMryA+IGPDuW87ICM5MzJGCivpjLAgPiBzaMO5OyAjOTMzMAor6YyxID4gemjEk247ICM5MzMxCivpjLIgPiBsw7k7ICM5MzMyCivpjLMgPiBtxJVuZzsgIzkzMzMKK+mMtCA+IGzDuTsgIzkzMzQKK+mMtSA+IGh1xIE7ICM5MzM1CivpjLYgPiBiacSDbzsgIzkzMzYKK+mMtyA+IGfDoTsgIzkzMzcKK+mMuCA+IGzDoWk7ICM5MzM4CivpjLkgPiBrxJVuOyAjOTMzOQor6Yy8ID4gbsOgaTsgIzkzM0MKK+mMvSA+IHfEg247ICM5MzNECivpjL4gPiB6w6BuOyAjOTMzRQor6Y2AID4gZMOpOyAjOTM0MAor6Y2BID4geGnEgW47ICM5MzQxCivpjYMgPiBoxatvOyAjOTM0Mwor6Y2EID4gbGnDoG5nOyAjOTM0NAor6Y2GID4gbcOpbjsgIzkzNDYKK+mNhyA+IGvEg2k7ICM5MzQ3CivpjYggPiB5xKtuZzsgIzkzNDgKK+mNiSA+IGTEqzsgIzkzNDkKK+mNiiA+IGxpw6BuOyAjOTM0QQor6Y2LID4gZ8WrbzsgIzkzNEIKK+mNjCA+IHhpxINuOyAjOTM0Qwor6Y2NID4gZMO5OyAjOTM0RAor6Y2OID4gdMO6OyAjOTM0RQor6Y2PID4gd8OpaTsgIzkzNEYKK+mNkCA+IGPFjW5nOyAjOTM1MAor6Y2RID4gZsO5OyAjOTM1MQor6Y2SID4gcsOzdTsgIzkzNTIKK+mNkyA+IGrDrTsgIzkzNTMKK+mNlCA+IMOoOyAjOTM1NAor6Y2VID4gcsOzdTsgIzkzNTUKK+mNliA+IGNoxJVuOyAjOTM1Ngor6Y2XID4gdMOtOyAjOTM1Nwor6Y2YID4gemjDoTsgIzkzNTgKK+mNmSA+IGjDsm5nOyAjOTM1OQor6Y2aID4gecOhbmc7ICM5MzVBCivpjZsgPiBkdcOgbjsgIzkzNUIKK+mNnCA+IHhpxIE7ICM5MzVDCivpjZ0gPiB5w7o7ICM5MzVECivpjZ4gPiBrxJNuZzsgIzkzNUUKK+mNnyA+IHjEq25nOyAjOTM1Rgor6Y2gID4gaHXDoW5nOyAjOTM2MAor6Y2hID4gd8SVaTsgIzkzNjEKK+mNoiA+IGbDuTsgIzkzNjIKK+mNoyA+IHpoxIFvOyAjOTM2Mwor6Y2kID4gY2jDoTsgIzkzNjQKK+mNpSA+IHFpw6g7ICM5MzY1CivpjaYgPiBzaMOpOyAjOTM2Ngor6Y2nID4gaMWNbmc7ICM5MzY3CivpjaggPiBrw7ppOyAjOTM2OAor6Y2pID4gdGnEg247ICM5MzY5CivpjaogPiBtw7N1OyAjOTM2QQor6Y2rID4gcWnEgW87ICM5MzZCCivpjawgPiBxacSBbzsgIzkzNkMKK+mNrSA+IGjDs3U7ICM5MzZECivpja4gPiB0xY11OyAjOTM2RQor6Y2vID4gY8WNbmc7ICM5MzZGCivpjbAgPiBodcOhbjsgIzkzNzAKK+mNsSA+IHnDqDsgIzkzNzEKK+mNsiA+IG3DrW47ICM5MzcyCivpjbMgPiBqacOgbjsgIzkzNzMKK+mNtCA+IGR1xIFuOyAjOTM3NAor6Y21ID4gamnDoG47ICM5Mzc1CivpjbYgPiBzxY1uZzsgIzkzNzYKK+mNtyA+IGvFq2k7ICM5Mzc3CivpjbggPiBow7o7ICM5Mzc4CivpjbkgPiB4dcSBbjsgIzkzNzkKK+mNuiA+IGTFrW87ICM5MzdBCivpjbsgPiBqacOpOyAjOTM3Qgor6Y28ID4gemjEk247ICM5MzdDCivpjb0gPiBiacSBbjsgIzkzN0QKK+mNviA+IHpoxY1uZzsgIzkzN0UKK+mNvyA+IHrEqzsgIzkzN0YKK+mOgCA+IHjEq3U7ICM5MzgwCivpjoEgPiB5w6k7ICM5MzgxCivpjoIgPiBtxJVpOyAjOTM4Mgor6Y6DID4gcMOgaTsgIzkzODMKK+mOhCA+IMSBaTsgIzkzODQKK+mOhSA+IGppw6g7ICM5Mzg1CivpjocgPiBtw6lpOyAjOTM4Nwor6Y6IID4gY2jFq287ICM5Mzg4CivpjokgPiB0w6A7ICM5Mzg5CivpjoogPiBiw6BuZzsgIzkzOEEKK+mOiyA+IHhpw6E7ICM5MzhCCivpjowgPiBsacOhbjsgIzkzOEMKK+mOjSA+IHPFrW87ICM5MzhECivpjo4gPiB4w6w7ICM5MzhFCivpjo8gPiBsw611OyAjOTM4Rgor6Y6QID4gesO6OyAjOTM5MAor6Y6RID4gecOoOyAjOTM5MQor6Y6SID4gbsOydTsgIzkzOTIKK+mOkyA+IHfEk25nOyAjOTM5Mwor6Y6UID4gcsOzbmc7ICM5Mzk0CivpjpUgPiB0w6FuZzsgIzkzOTUKK+mOliA+IHPFrW87ICM5Mzk2CivpjpcgPiBxacSBbmc7ICM5Mzk3CivpjpggPiBnw6k7ICM5Mzk4CivpjpkgPiBzaMO5bzsgIzkzOTkKK+mOmiA+IGNow7ppOyAjOTM5QQor6Y6bID4gYsOzOyAjOTM5Qgor6Y6cID4gcMOhbjsgIzkzOUMKK+mOnSA+IHPDoDsgIzkzOUQKK+mOniA+IGLDrDsgIzkzOUUKK+mOnyA+IHPEg25nOyAjOTM5Rgor6Y6gID4gZ8SBbmc7ICM5M0EwCivpjqEgPiB6xKs7ICM5M0ExCivpjqIgPiB3w7k7ICM5M0EyCivpjqMgPiB5w6xuZzsgIzkzQTMKK+mOpCA+IGh1xINuZzsgIzkzQTQKK+mOpSA+IHRpw6FvOyAjOTNBNQor6Y6mID4gbMOtdTsgIzkzQTYKK+mOpyA+IGvEg2k7ICM5M0E3CivpjqggPiBzxa1uOyAjOTNBOAor6Y6pID4gc2jEgTsgIzkzQTkKK+mOqiA+IHPFjXU7ICM5M0FBCivpjqsgPiB3w6BuOyAjOTNBQgor6Y6sID4gaMOgbzsgIzkzQUMKK+mOrSA+IHpow6huOyAjOTNBRAor6Y6uID4gemjDqG47ICM5M0FFCivpjq8gPiBsxa1vOyAjOTNBRgor6Y6wID4gecOsOyAjOTNCMAor6Y6xID4geXXDoW47ICM5M0IxCivpjrIgPiB0xINuZzsgIzkzQjIKK+mOsyA+IG5pw6g7ICM5M0IzCivpjrQgPiB4w607ICM5M0I0CivpjrUgPiBqacSBOyAjOTNCNQor6Y62ID4gZ8STOyAjOTNCNgor6Y63ID4gbcSDOyAjOTNCNwor6Y64ID4ganXEgW47ICM5M0I4CivpjrsgPiBzxa1vOyAjOTNCQgor6Y6/ID4gbsOhOyAjOTNCRgor6Y+AID4gbMWtOyAjOTNDMAor6Y+BID4gc8WtbzsgIzkzQzEKK+mPgiA+IMWNdTsgIzkzQzIKK+mPgyA+IHrDujsgIzkzQzMKK+mPhCA+IHR1w6FuOyAjOTNDNAor6Y+FID4geMSrdTsgIzkzQzUKK+mPhiA+IGd1w6BuOyAjOTNDNgor6Y+HID4geHXDoG47ICM5M0M3Civpj4ggPiBsacOgbjsgIzkzQzgKK+mPiSA+IHNow7J1OyAjOTNDOQor6Y+KID4gw6FvOyAjOTNDQQor6Y+LID4gbcSDbjsgIzkzQ0IKK+mPjCA+IG3DsjsgIzkzQ0MKK+mPjSA+IGzDum87ICM5M0NECivpj44gPiBiw6w7ICM5M0NFCivpj48gPiB3w6hpOyAjOTNDRgor6Y+QID4gbMOtdTsgIzkzRDAKK+mPkSA+IGTDrTsgIzkzRDEKK+mPkiA+IHFpxIFvOyAjOTNEMgor6Y+TID4gY8WNbmc7ICM5M0QzCivpj5QgPiB5w607ICM5M0Q0Civpj5UgPiBsw7k7ICM5M0Q1Civpj5YgPiDDoW87ICM5M0Q2Civpj5cgPiBrxJNuZzsgIzkzRDcKK+mPmCA+IHFpxIFuZzsgIzkzRDgKK+mPmSA+IGPFq2k7ICM5M0Q5Civpj5ogPiBxw6w7ICM5M0RBCivpj5sgPiBjaMOhbmc7ICM5M0RCCivpj5wgPiB0xIFuZzsgIzkzREMKK+mPnSA+IG3DoG47ICM5M0RECivpj54gPiB5xY1uZzsgIzkzREUKK+mPnyA+IGNoxINuOyAjOTNERgor6Y+gID4gZsSTbmc7ICM5M0UwCivpj6EgPiBqw6xuZzsgIzkzRTEKK+mPoiA+IGJpxIFvOyAjOTNFMgor6Y+jID4gc2jDuTsgIzkzRTMKK+mPpCA+IGzDsnU7ICM5M0U0Civpj6UgPiB4w6x1OyAjOTNFNQor6Y+mID4gY8WNbmc7ICM5M0U2Civpj6cgPiBsw7NuZzsgIzkzRTcKK+mPqCA+IHrDoG47ICM5M0U4Civpj6kgPiBqacOgbjsgIzkzRTkKK+mPqiA+IGPDoW87ICM5M0VBCivpj6sgPiBsw607ICM5M0VCCivpj6wgPiB4acOgOyAjOTNFQwor6Y+tID4geMSrOyAjOTNFRAor6Y+uID4ga8SBbmc7ICM5M0VFCivpj7AgPiBiw6huZzsgIzkzRjAKK+mPsyA+IHpoxJNuZzsgIzkzRjMKK+mPtCA+IGzDuTsgIzkzRjQKK+mPtSA+IGh1w6E7ICM5M0Y1Civpj7YgPiBqw607ICM5M0Y2Civpj7cgPiBww7o7ICM5M0Y3Civpj7ggPiBow7lpOyAjOTNGOAor6Y+5ID4gcWnEgW5nOyAjOTNGOQor6Y+6ID4gcMWNOyAjOTNGQQor6Y+7ID4gbMOtbjsgIzkzRkIKK+mPvCA+IHPFrW87ICM5M0ZDCivpj70gPiB4w6x1OyAjOTNGRAor6Y++ID4gc8SDbjsgIzkzRkUKK+mPvyA+IGNoxJNuZzsgIzkzRkYKK+mQgCA+IGvDuWk7ICM5NDAwCivpkIEgPiBzxKs7ICM5NDAxCivpkIIgPiBsw6x1OyAjOTQwMgor6ZCDID4gbsOhbzsgIzk0MDMKK+mQhCA+IGjDqW5nOyAjOTQwNAor6ZCFID4gcGnElTsgIzk0MDUKK+mQhiA+IHPDuWk7ICM5NDA2CivpkIcgPiBmw6FuOyAjOTQwNwor6ZCIID4gcWnDoW87ICM5NDA4CivpkIkgPiBxdcSBbjsgIzk0MDkKK+mQiiA+IHnDoW5nOyAjOTQwQQor6ZCLID4gdMOgbmc7ICM5NDBCCivpkIwgPiB4acOgbmc7ICM5NDBDCivpkI0gPiBqdcOpOyAjOTQwRAor6ZCOID4gamnEgW87ICM5NDBFCivpkI8gPiB6xatuOyAjOTQwRgor6ZCQID4gbGnDoW87ICM5NDEwCivpkJEgPiBqacOpOyAjOTQxMQor6ZCSID4gbMOhbzsgIzk0MTIKK+mQkyA+IGTDuWk7ICM5NDEzCivpkJQgPiB0w6FuOyAjOTQxNAor6ZCVID4gesSBbjsgIzk0MTUKK+mQliA+IGrEqzsgIzk0MTYKK+mQlyA+IGppxINuOyAjOTQxNwor6ZCYID4gemjFjW5nOyAjOTQxOAor6ZCZID4gZMSTbmc7ICM5NDE5CivpkJogPiB5w6A7ICM5NDFBCivpkJsgPiB5w6xuZzsgIzk0MUIKK+mQnCA+IGTDuWk7ICM5NDFDCivpkJ0gPiBqdcOpOyAjOTQxRAor6ZCeID4gbsOydTsgIzk0MUUKK+mQnyA+IHTDrDsgIzk0MUYKK+mQoCA+IHDFrTsgIzk0MjAKK+mQoSA+IHRpxJU7ICM5NDIxCivpkKQgPiBkxK1uZzsgIzk0MjQKK+mQpSA+IHNow6BuOyAjOTQyNQor6ZCmID4ga8SBaTsgIzk0MjYKK+mQpyA+IGppxINuOyAjOTQyNwor6ZCoID4gZsOoaTsgIzk0MjgKK+mQqSA+IHPDuWk7ICM5NDI5CivpkKogPiBsxa07ICM5NDJBCivpkKsgPiBqdcSBbjsgIzk0MkIKK+mQrCA+IGjDuWk7ICM5NDJDCivpkK0gPiB5w7k7ICM5NDJECivpkK4gPiBsacOhbjsgIzk0MkUKK+mQryA+IHpow7pvOyAjOTQyRgor6ZCwID4gcWnEgW87ICM5NDMwCivpkLEgPiBxacSBbjsgIzk0MzEKK+mQsiA+IHpow7pvOyAjOTQzMgor6ZCzID4gbMOpaTsgIzk0MzMKK+mQtCA+IGLDrDsgIzk0MzQKK+mQtSA+IHRpxJU7ICM5NDM1CivpkLYgPiBodcOhbjsgIzk0MzYKK+mQtyA+IHnDqDsgIzk0MzcKK+mQuCA+IGTDum87ICM5NDM4CivpkLkgPiBnxa1vOyAjOTQzOQor6ZC6ID4gZMSBbmc7ICM5NDNBCivpkLsgPiBqw7k7ICM5NDNCCivpkLwgPiBmw6luOyAjOTQzQwor6ZC9ID4gZMOhOyAjOTQzRAor6ZC+ID4gYsOoaTsgIzk0M0UKK+mQvyA+IHnDrDsgIzk0M0YKK+mRgCA+IMOgaTsgIzk0NDAKK+mRgSA+IHrFjW5nOyAjOTQ0MQor6ZGCID4geMO5bjsgIzk0NDIKK+mRgyA+IGRpw6BvOyAjOTQ0Mwor6ZGEID4gemjDuTsgIzk0NDQKK+mRhSA+IGjDqW5nOyAjOTQ0NQor6ZGGID4gemjDuWk7ICM5NDQ2CivpkYcgPiBqxKs7ICM5NDQ3CivpkYggPiBuacSTOyAjOTQ0OAor6ZGJID4gdMOgOyAjOTQ0OQor6ZGKID4gaMO5bzsgIzk0NEEKK+mRiyA+IHHDrG5nOyAjOTQ0Qgor6ZGMID4gYsSrbjsgIzk0NEMKK+mRjSA+IHnEq25nOyAjOTQ0RAor6ZGOID4ga8O5aTsgIzk0NEUKK+mRjyA+IG7DrW5nOyAjOTQ0Rgor6ZGQID4geMWrOyAjOTQ1MAor6ZGRID4gamnDoG47ICM5NDUxCivpkZIgPiBqacOgbjsgIzk0NTIKK+mRlCA+IGNoxIM7ICM5NDU0CivpkZUgPiB6aMOsOyAjOTQ1NQor6ZGWID4gbWnDqDsgIzk0NTYKK+mRlyA+IGzDrTsgIzk0NTcKK+mRmCA+IGzDqWk7ICM5NDU4CivpkZkgPiBqxKs7ICM5NDU5CivpkZogPiB6dcOgbjsgIzk0NUEKK+mRmyA+IGt1w6BuZzsgIzk0NUIKK+mRnCA+IHNow6BuZzsgIzk0NUMKK+mRnSA+IHDDqW5nOyAjOTQ1RAor6ZGeID4gbMOgOyAjOTQ1RQor6ZGfID4gZMO6OyAjOTQ1Rgor6ZGgID4gc2jDuW87ICM5NDYwCivpkaEgPiBjaMO5bzsgIzk0NjEKK+mRoiA+IGzHnDsgIzk0NjIKK+mRoyA+IGJpxIFvOyAjOTQ2Mwor6ZGkID4gYsOgbzsgIzk0NjQKK+mRpSA+IGzFrTsgIzk0NjUKK+mRqCA+IGzDs25nOyAjOTQ2OAor6ZGpID4gw6g7ICM5NDY5CivpkaogPiBsw7o7ICM5NDZBCivpkasgPiB4xKtuOyAjOTQ2Qgor6ZGsID4gamnDoG47ICM5NDZDCivpka0gPiBsw6BuOyAjOTQ2RAor6ZGuID4gYsOzOyAjOTQ2RQor6ZGvID4gamnEgW47ICM5NDZGCivpkbAgPiB5w6BvOyAjOTQ3MAor6ZGxID4gY2jDoW47ICM5NDcxCivpkbIgPiB4acSBbmc7ICM5NDcyCivpkbMgPiBqacOgbjsgIzk0NzMKK+mRtCA+IHjEqzsgIzk0NzQKK+mRtSA+IGd1w6BuOyAjOTQ3NQor6ZG2ID4gY8Ohbmc7ICM5NDc2CivpkbcgPiBuacOoOyAjOTQ3Nwor6ZG4ID4gbMSVaTsgIzk0NzgKK+mRuSA+IGN1w6BuOyAjOTQ3OQor6ZG6ID4gccO6OyAjOTQ3QQor6ZG7ID4gcMOgbjsgIzk0N0IKK+mRvCA+IGzDum87ICM5NDdDCivpkb0gPiB6dcOgbjsgIzk0N0QKK+mRviA+IGx1w6FuOyAjOTQ3RQor6ZG/ID4gesOhbzsgIzk0N0YKK+mSgCA+IG5pw6g7ICM5NDgwCivpkoEgPiBqdcOpOyAjOTQ4MQor6ZKCID4gdMSDbmc7ICM5NDgyCivpkoMgPiBzaMWtOyAjOTQ4Mwor6ZKEID4gbMOhbjsgIzk0ODQKK+mShSA+IGrEq247ICM5NDg1CivpkoYgPiBxw611OyAjOTQ4Ngor6ZKHID4gecStOyAjOTQ4Nwor6ZKIID4gemjEk247ICM5NDg4CivpkokgPiBkxKtuZzsgIzk0ODkKK+mSiiA+IHpoxIFvOyAjOTQ4QQor6ZKLID4gcMOyOyAjOTQ4Qgor6ZKMID4gZGnEg287ICM5NDhDCivpko0gPiB0xa07ICM5NDhECivpko4gPiBxacSBbjsgIzk0OEUKK+mSjyA+IGNodcOgbjsgIzk0OEYKK+mSkCA+IHNow6BuOyAjOTQ5MAor6ZKRID4gasOtOyAjOTQ5MQor6ZKSID4gZsOhbjsgIzk0OTIKK+mSkyA+IGRpw6BvOyAjOTQ5Mwor6ZKUID4gbcOpbjsgIzk0OTQKK+mSlSA+IG7HmjsgIzk0OTUKK+mSliA+IHjDrTsgIzk0OTYKK+mSlyA+IGNoxIFpOyAjOTQ5Nwor6ZKYID4geMOtbmc7ICM5NDk4CivpkpkgPiBnw6BpOyAjOTQ5OQor6ZKaID4gYsO5OyAjOTQ5QQor6ZKbID4gdMOgaTsgIzk0OUIKK+mSnCA+IGrDuTsgIzk0OUMKK+mSnSA+IGTDuW47ICM5NDlECivpkp4gPiBjaMSBbzsgIzk0OUUKK+mSnyA+IHpoxY1uZzsgIzk0OUYKK+mSoCA+IG7DoDsgIzk0QTAKK+mSoSA+IGLDqGk7ICM5NEExCivpkqIgPiBnxIFuZzsgIzk0QTIKK+mSoyA+IGLEg247ICM5NEEzCivpkqQgPiBxacOhbjsgIzk0QTQKK+mSpSA+IHnDoG87ICM5NEE1CivpkqYgPiBxxKtuOyAjOTRBNgor6ZKnID4gasWrbjsgIzk0QTcKK+mSqCA+IHfDuTsgIzk0QTgKK+mSqSA+IGfFjXU7ICM5NEE5CivpkqogPiBrw6BuZzsgIzk0QUEKK+mSqyA+IGbEgW5nOyAjOTRBQgor6ZKsID4gaMO6bzsgIzk0QUMKK+mSrSA+IHTFj3U7ICM5NEFECivpkq4gPiBuxK11OyAjOTRBRQor6ZKvID4gYsSDOyAjOTRBRgor6ZKwID4gecO5OyAjOTRCMAor6ZKxID4gcWnDoW47ICM5NEIxCivpkrIgPiB6aMSTbmc7ICM5NEIyCivpkrMgPiBxacOhbjsgIzk0QjMKK+mStCA+IGfFqzsgIzk0QjQKK+mStSA+IGLFjTsgIzk0QjUKK+mStiA+IMSTOyAjOTRCNgor6ZK3ID4gcMWNOyAjOTRCNwor6ZK4ID4gYsO5OyAjOTRCOAor6ZK5ID4gYsOhOyAjOTRCOQor6ZK6ID4geXXDqDsgIzk0QkEKK+mSuyA+IHp1w6BuOyAjOTRCQgor6ZK8ID4gbcO5OyAjOTRCQwor6ZK9ID4gZMOgbjsgIzk0QkQKK+mSviA+IGppxIM7ICM5NEJFCivpkr8gPiBkacOgbjsgIzk0QkYKK+mTgCA+IHnDs3U7ICM5NEMwCivpk4EgPiB0acSVOyAjOTRDMQor6ZOCID4gYsOzOyAjOTRDMgor6ZODID4gbMOtbmc7ICM5NEMzCivpk4QgPiBzaMO5bzsgIzk0QzQKK+mThSA+IHFpxIFuOyAjOTRDNQor6ZOGID4gbMStdTsgIzk0QzYKK+mThyA+IGLDoG87ICM5NEM3Civpk4ggPiBzaMOsOyAjOTRDOAor6ZOJID4geHXDoG47ICM5NEM5Civpk4ogPiBzaMOpOyAjOTRDQQor6ZOLID4gYsOsOyAjOTRDQgor6ZOMID4gbsStOyAjOTRDQwor6ZONID4gcMSrOyAjOTRDRAor6ZOOID4gZMO6bzsgIzk0Q0UKK+mTjyA+IHjDrW5nOyAjOTRDRgor6ZOQID4ga8OgbzsgIzk0RDAKK+mTkSA+IGzEg287ICM5NEQxCivpk5IgPiDDqHI7ICM5NEQyCivpk5MgPiBtw6FuZzsgIzk0RDMKK+mTlCA+IHnDoDsgIzk0RDQKK+mTlSA+IHnFj3U7ICM5NEQ1Civpk5YgPiBjaMOpbmc7ICM5NEQ2Civpk5cgPiBqacOhOyAjOTRENwor6ZOYID4gecOpOyAjOTREOAor6ZOZID4gbsOhbzsgIzk0RDkKK+mTmiA+IHpow6w7ICM5NERBCivpk5sgPiBkxIFuZzsgIzk0REIKK+mTnCA+IHTDs25nOyAjOTREQwor6ZOdID4gbMeaOyAjOTRERAor6ZOeID4gZGnDoG87ICM5NERFCivpk58gPiB5xKtuOyAjOTRERgor6ZOgID4ga8SDaTsgIzk0RTAKK+mToSA+IHpow6E7ICM5NEUxCivpk6IgPiB6aMWrOyAjOTRFMgor6ZOjID4geGnEg247ICM5NEUzCivpk6QgPiB0xK1uZzsgIzk0RTQKK+mTpSA+IGTEq3U7ICM5NEU1Civpk6YgPiB4acSBbjsgIzk0RTYKK+mTpyA+IGh1w6E7ICM5NEU3Civpk6ggPiBxdcOhbjsgIzk0RTgKK+mTqSA+IHNoxIE7ICM5NEU5Civpk6ogPiBqacOhOyAjOTRFQQor6ZOrID4gecOhbzsgIzk0RUIKK+mTrCA+IGfDqDsgIzk0RUMKK+mTrSA+IG3DrW5nOyAjOTRFRAor6ZOuID4gemjEk25nOyAjOTRFRQor6ZOvID4gc8OoOyAjOTRFRgor6ZOwID4gamnEg287ICM5NEYwCivpk7EgPiB5xK07ICM5NEYxCivpk7IgPiBjaMSDbjsgIzk0RjIKK+mTsyA+IGNow7JuZzsgIzk0RjMKK+mTtCA+IHTDoG5nOyAjOTRGNAor6ZO1ID4gxIFuOyAjOTRGNQor6ZO2ID4gecOtbjsgIzk0RjYKK+mTtyA+IHLFrTsgIzk0RjcKK+mTuCA+IHpow7k7ICM5NEY4Civpk7kgPiBsw6FvOyAjOTRGOQor6ZO6ID4gcMWrOyAjOTRGQQor6ZO7ID4gd8O6OyAjOTRGQgor6ZO8ID4gbMOhaTsgIzk0RkMKK+mTvSA+IHTDqDsgIzk0RkQKK+mTviA+IGxpw6BuOyAjOTRGRQor6ZO/ID4ga8STbmc7ICM5NEZGCivplIAgPiB4acSBbzsgIzk1MDAKK+mUgSA+IHPFrW87ICM5NTAxCivplIIgPiBsxK07ICM5NTAyCivplIMgPiB6aMOobmc7ICM5NTAzCivplIQgPiBjaMO6OyAjOTUwNAor6ZSFID4gZ8WrbzsgIzk1MDUKK+mUhiA+IGfDoG87ICM5NTA2CivplIcgPiB0acSVOyAjOTUwNwor6ZSIID4geMOsdTsgIzk1MDgKK+mUiSA+IGPDuW87ICM5NTA5CivplIogPiBsx5xlOyAjOTUwQQor6ZSLID4gZsSTbmc7ICM5NTBCCivplIwgPiB4xKtuOyAjOTUwQwor6ZSNID4gbMStdTsgIzk1MEQKK+mUjiA+IGvEgWk7ICM5NTBFCivplI8gPiBqacSDbjsgIzk1MEYKK+mUkCA+IHLDuWk7ICM5NTEwCivplJEgPiB0w6w7ICM5NTExCivplJIgPiBsw6FuZzsgIzk1MTIKK+mUkyA+IHFpxIFuOyAjOTUxMwor6ZSUID4gasO6OyAjOTUxNAor6ZSVID4gxIE7ICM5NTE1CivplJYgPiBxacSBbmc7ICM5NTE2CivplJcgPiBkxa1vOyAjOTUxNwor6ZSYID4gdGnEg247ICM5NTE4CivplJkgPiBjw7lvOyAjOTUxOQor6ZSaID4gbcOhbzsgIzk1MUEKK+mUmyA+IGLEk247ICM5NTFCCivplJwgPiBxw607ICM5NTFDCivplJ0gPiBkw6k7ICM5NTFECivplJ4gPiBrdcSDOyAjOTUxRQor6ZSfID4ga8WrbjsgIzk1MUYKK+mUoCA+IGNoxIFuZzsgIzk1MjAKK+mUoSA+IHjDrTsgIzk1MjEKK+mUoiA+IGfDuTsgIzk1MjIKK+mUoyA+IGzDum87ICM5NTIzCivplKQgPiBjaMO6aTsgIzk1MjQKK+mUpSA+IHpoxatpOyAjOTUyNQor6ZSmID4gasStbjsgIzk1MjYKK+mUpyA+IHpow6w7ICM5NTI3CivplKggPiB4acSBbjsgIzk1MjgKK+mUqSA+IGp1w6BuOyAjOTUyOQor6ZSqID4gaMWrbzsgIzk1MkEKK+mUqyA+IHDDs3U7ICM5NTJCCivplKwgPiB0w6FuOyAjOTUyQwor6ZStID4gZMOsbmc7ICM5NTJECivplK4gPiBqacOgbjsgIzk1MkUKK+mUryA+IGrDuTsgIzk1MkYKK+mUsCA+IG3ElW5nOyAjOTUzMAor6ZSxID4gesSrOyAjOTUzMQor6ZSyID4gcWnDqDsgIzk1MzIKK+mUsyA+IHnEq25nOyAjOTUzMwor6ZS0ID4ga8SDaTsgIzk1MzQKK+mUtSA+IHFpxIFuZzsgIzk1MzUKK+mUtiA+IHPFjW5nOyAjOTUzNgor6ZS3ID4gw6g7ICM5NTM3CivplLggPiBjaMOhOyAjOTUzOAor6ZS5ID4gcWnEgW87ICM5NTM5CivplLogPiB6aMWNbmc7ICM5NTNBCivplLsgPiBkdcOgbjsgIzk1M0IKK+mUvCA+IHPFjXU7ICM5NTNDCivplL0gPiBodcOhbmc7ICM5NTNECivplL4gPiBodcOhbjsgIzk1M0UKK+mUvyA+IMSBaTsgIzk1M0YKK+mVgCA+IGTDuTsgIzk1NDAKK+mVgSA+IG3ElWk7ICM5NTQxCivplYIgPiBsw7J1OyAjOTU0Mgor6ZWDID4gesSrOyAjOTU0Mwor6ZWEID4gZsOoaTsgIzk1NDQKK+mVhSA+IG3DqWk7ICM5NTQ1CivplYYgPiBtw7I7ICM5NTQ2CivplYcgPiB6aMOobjsgIzk1NDcKK+mViCA+IGLDszsgIzk1NDgKK+mViSA+IGfDqTsgIzk1NDkKK+mViiA+IG5pw6g7ICM5NTRBCivplYsgPiB0xINuZzsgIzk1NEIKK+mVjCA+IGp1xIFuOyAjOTU0Qwor6ZWNID4gbmnDqDsgIzk1NEQKK+mVjiA+IG7DoTsgIzk1NEUKK+mVjyA+IGzDrXU7ICM5NTRGCivplZAgPiBow6BvOyAjOTU1MAor6ZWRID4gYsOgbmc7ICM5NTUxCivplZIgPiB5w6w7ICM5NTUyCivplZMgPiBqacSBOyAjOTU1Mwor6ZWUID4gYsSrbjsgIzk1NTQKK+mVlSA+IHLDs25nOyAjOTU1NQor6ZWWID4gYmnEgW87ICM5NTU2CivplZcgPiB0xIFuZzsgIzk1NTcKK+mVmCA+IG3DoG47ICM5NTU4CivplZkgPiBsw7pvOyAjOTU1OQor6ZWaID4gYsOobmc7ICM5NTVBCivplZsgPiB5xY1uZzsgIzk1NUIKK+mVnCA+IGrDrG5nOyAjOTU1Qwor6ZWdID4gZMOtOyAjOTU1RAor6ZWeID4gesO6OyAjOTU1RQor6ZWfID4geHXDoG47ICM5NTVGCivplaAgPiBsw611OyAjOTU2MAor6ZWhID4gdMOhbjsgIzk1NjEKK+mVoiA+IGp1w6k7ICM5NTYyCivplaMgPiBsacOhbzsgIzk1NjMKK+mVpCA+IHDDujsgIzk1NjQKK+mVpSA+IGzFrTsgIzk1NjUKK+mVpiA+IGTDuWk7ICM5NTY2CivplacgPiBsw6BuOyAjOTU2Nwor6ZWoID4gcMWtOyAjOTU2OAor6ZWpID4gY3XDoG47ICM5NTY5CivplaogPiBxacSBbmc7ICM5NTZBCivplasgPiBkxJNuZzsgIzk1NkIKK+mVrCA+IGjDuW87ICM5NTZDCivpla0gPiBsw6lpOyAjOTU2RAor6ZWuID4gaHXDoW47ICM5NTZFCivpla8gPiB6aMO6bzsgIzk1NkYKK+mVsCA+IGxpw6FuOyAjOTU3MAor6ZWxID4gecOsOyAjOTU3MQor6ZWyID4gY2jEgzsgIzk1NzIKK+mVsyA+IGJpxIFvOyAjOTU3Mwor6ZW0ID4gbMOgOyAjOTU3NAor6ZW1ID4gY2jDoW47ICM5NTc1CivplbYgPiB4acSBbmc7ICM5NTc2CivplbcgPiBjaMOhbmc7ICM5NTc3CivplbggPiBjaMOhbmc7ICM5NTc4CivplbkgPiBqxK11OyAjOTU3OQor6ZW6ID4gxINvOyAjOTU3QQor6ZW7ID4gZGnDqTsgIzk1N0IKK+mVvCA+IHHFqzsgIzk1N0MKK+mVvSA+IGxpxINvOyAjOTU3RAor6ZW+ID4gbcOtOyAjOTU3RQor6ZW/ID4gY2jDoW5nOyAjOTU3Rgor6ZaAID4gbcOpbjsgIzk1ODAKK+mWgSA+IG3DoDsgIzk1ODEKK+mWgiA+IHNodcSBbjsgIzk1ODIKK+mWgyA+IHNoxINuOyAjOTU4Mwor6ZaEID4gaMO5bzsgIzk1ODQKK+mWhSA+IG3DqW47ICM5NTg1CivploYgPiB5w6BuOyAjOTU4Ngor6ZaHID4gYsOsOyAjOTU4Nwor6ZaIID4gaMOgbjsgIzk1ODgKK+mWiSA+IGLDrDsgIzk1ODkKK+mWiyA+IGvEgWk7ICM5NThCCivplowgPiBrw6BuZzsgIzk1OEMKK+mWjSA+IGLEk25nOyAjOTU4RAor6ZaOID4gaMOzbmc7ICM5NThFCivplo8gPiByw7luOyAjOTU4Rgor6ZaQID4gc8OgbjsgIzk1OTAKK+mWkSA+IHhpw6FuOyAjOTU5MQor6ZaSID4geGnDoW47ICM5NTkyCivplpMgPiBqacSBbjsgIzk1OTMKK+mWlCA+IG3ErW47ICM5NTk0CivplpUgPiB4acSBOyAjOTU5NQor6ZaXID4gZMOydTsgIzk1OTcKK+mWmCA+IHpow6E7ICM5NTk4CivplpkgPiBuw6BvOyAjOTU5OQor6ZaaID4gamlhbjsgIzk1OUEKK+mWmyA+IHDEk25nOyAjOTU5Qgor6ZacID4geGnEgzsgIzk1OUMKK+mWnSA+IGzDrW5nOyAjOTU5RAor6ZaeID4gYmnDoG47ICM5NTlFCivplp8gPiBiw6w7ICM5NTlGCivplqAgPiByw7luOyAjOTVBMAor6ZahID4gaMOpOyAjOTVBMQor6ZaiID4gZ3XEgW47ICM5NUEyCivplqMgPiBnw6k7ICM5NUEzCivplqQgPiBnw6k7ICM5NUE0CivplqUgPiBmw6E7ICM5NUE1CivplqYgPiBjaMO5OyAjOTVBNgor6ZanID4gaMOybmc7ICM5NUE3CivplqggPiBnxatpOyAjOTVBOAor6ZapID4gbcStbjsgIzk1QTkKK+mWqyA+IGvFrW47ICM5NUFCCivplqwgPiBsxINuZzsgIzk1QUMKK+mWrSA+IGzHmDsgIzk1QUQKK+mWriA+IHTDrW5nOyAjOTVBRQor6ZavID4gc2jDoDsgIzk1QUYKK+mWsCA+IGrDujsgIzk1QjAKK+mWsSA+IHl1w6g7ICM5NUIxCivplrIgPiB5dcOoOyAjOTVCMgor6ZazID4gY2jEg247ICM5NUIzCivplrQgPiBxw7k7ICM5NUI0CivplrUgPiBsw6xuOyAjOTVCNQor6Za2ID4gY2jEgW5nOyAjOTVCNgor6Za3ID4gc2jDoGk7ICM5NUI3CivplrggPiBrxa1uOyAjOTVCOAor6Za5ID4gecSBbjsgIzk1QjkKK+mWuiA+IG3DrW47ICM5NUJBCivplrsgPiB5w6FuOyAjOTVCQgor6Za8ID4gw6g7ICM5NUJDCivplr0gPiBoxatuOyAjOTVCRAor6Za+ID4gecO5OyAjOTVCRQor6Za/ID4gd8OpbjsgIzk1QkYKK+mXgCA+IHhpw6BuZzsgIzk1QzAKK+mXgSA+IGJhbzsgIzk1QzEKK+mXgiA+IHhpw6BuZzsgIzk1QzIKK+mXgyA+IHHDuTsgIzk1QzMKK+mXhCA+IHnEg287ICM5NUM0Civpl4UgPiB3w6luOyAjOTVDNQor6ZeGID4gYsSDbjsgIzk1QzYKK+mXhyA+IMOgbjsgIzk1QzcKK+mXiCA+IHfDqWk7ICM5NUM4Civpl4kgPiB5xKtuOyAjOTVDOQor6ZeKID4ga8O5bzsgIzk1Q0EKK+mXiyA+IHF1w6g7ICM5NUNCCivpl4wgPiBsw6FuOyAjOTVDQwor6ZeNID4gZMWrOyAjOTVDRAor6ZeQID4gdGnDoW47ICM5NUQwCivpl5EgPiBuacOoOyAjOTVEMQor6ZeSID4gdMOgOyAjOTVEMgor6ZeTID4ga8SDaTsgIzk1RDMKK+mXlCA+IGjDqTsgIzk1RDQKK+mXlSA+IHF1w6g7ICM5NUQ1Civpl5YgPiBjaHXEg25nOyAjOTVENgor6ZeXID4gZ3XEgW47ICM5NUQ3Civpl5ggPiBkw7J1OyAjOTVEOAor6ZeZID4gccStOyAjOTVEOQor6ZeaID4ga8WraTsgIzk1REEKK+mXmyA+IHTDoW5nOyAjOTVEQgor6ZecID4gZ3XEgW47ICM5NURDCivpl50gPiBwacOhbzsgIzk1REQKK+mXniA+IGvDoG47ICM5NURFCivpl58gPiB4w6w7ICM5NURGCivpl6AgPiBow7lpOyAjOTVFMAor6ZehID4gY2jEg247ICM5NUUxCivpl6IgPiBww6w7ICM5NUUyCivpl6MgPiBkw6BuZzsgIzk1RTMKK+mXpCA+IGh1w6FuOyAjOTVFNAor6ZelID4gdMOgOyAjOTVFNQor6ZemID4gd8OpbjsgIzk1RTYKK+mXqCA+IG3DqW47ICM5NUU4Civpl6kgPiBzaHXEgW47ICM5NUU5Civpl6ogPiBzaMSDbjsgIzk1RUEKK+mXqyA+IHnDoG47ICM5NUVCCivpl6wgPiBow6BuOyAjOTVFQwor6ZetID4gYsOsOyAjOTVFRAor6ZeuID4gd8OobjsgIzk1RUUKK+mXryA+IGNodcSDbmc7ICM5NUVGCivpl7AgPiByw7luOyAjOTVGMAor6ZexID4gd8OpaTsgIzk1RjEKK+mXsiA+IHhpw6FuOyAjOTVGMgor6ZezID4gaMOzbmc7ICM5NUYzCivpl7QgPiBqacSBbjsgIzk1RjQKK+mXtSA+IG3ErW47ICM5NUY1Civpl7YgPiBrw6BuZzsgIzk1RjYKK+mXtyA+IG3DqG47ICM5NUY3Civpl7ggPiB6aMOhOyAjOTVGOAor6Ze5ID4gbsOgbzsgIzk1RjkKK+mXuiA+IGfFq2k7ICM5NUZBCivpl7sgPiB3w6luOyAjOTVGQgor6Ze8ID4gdMOgOyAjOTVGQwor6Ze9ID4gbcStbjsgIzk1RkQKK+mXviA+IGzHmDsgIzk1RkUKK+mXvyA+IGvEg2k7ICM5NUZGCivpmIAgPiBmw6E7ICM5NjAwCivpmIEgPiBnw6k7ICM5NjAxCivpmIIgPiBow6k7ICM5NjAyCivpmIMgPiBrxa1uOyAjOTYwMwor6ZiEID4gasSrdTsgIzk2MDQKK+mYhSA+IHl1w6g7ICM5NjA1CivpmIYgPiBsxINuZzsgIzk2MDYKK+mYhyA+IGTFqzsgIzk2MDcKK+mYiCA+IHnDuTsgIzk2MDgKK+mYiSA+IHnEgW47ICM5NjA5CivpmIogPiBjaMSBbmc7ICM5NjBBCivpmIsgPiB4w6w7ICM5NjBCCivpmIwgPiB3w6luOyAjOTYwQwor6ZiNID4gaMWrbjsgIzk2MEQKK+mYjiA+IHnDoW47ICM5NjBFCivpmI8gPiDDqDsgIzk2MEYKK+mYkCA+IGNoxINuOyAjOTYxMAor6ZiRID4gbMOhbjsgIzk2MTEKK+mYkiA+IHHDuTsgIzk2MTIKK+mYkyA+IGjDuWk7ICM5NjEzCivpmJQgPiBrw7lvOyAjOTYxNAor6ZiVID4gcXXDqDsgIzk2MTUKK+mYliA+IGfDqTsgIzk2MTYKK+mYlyA+IHRpw6FuOyAjOTYxNwor6ZiYID4gdMOgOyAjOTYxOAor6ZiZID4gcXXDqDsgIzk2MTkKK+mYmiA+IGvDoG47ICM5NjFBCivpmJsgPiBodcOhbjsgIzk2MUIKK+mYnCA+IGbDuTsgIzk2MUMKK+mYnSA+IGbDuTsgIzk2MUQKK+mYniA+IGzDqDsgIzk2MUUKK+mYnyA+IGTDuWk7ICM5NjFGCivpmKAgPiB4w6xuOyAjOTYyMAor6ZihID4gcWnEgW47ICM5NjIxCivpmKIgPiB3w7k7ICM5NjIyCivpmKMgPiB5w6w7ICM5NjIzCivpmKQgPiB0w7pvOyAjOTYyNAor6ZilID4gecSrbjsgIzk2MjUKK+mYpiA+IHnDoW5nOyAjOTYyNgor6ZinID4gZMWPdTsgIzk2MjcKK+mYqCA+IMOoOyAjOTYyOAor6ZipID4gc2jEk25nOyAjOTYyOQor6ZiqID4gYsSDbjsgIzk2MkEKK+mYqyA+IHDDqWk7ICM5NjJCCivpmKwgPiBrxJNuZzsgIzk2MkMKK+mYrSA+IHnFrW47ICM5NjJECivpmK4gPiBydcSDbjsgIzk2MkUKK+mYryA+IHpoxK07ICM5NjJGCivpmLAgPiBww607ICM5NjMwCivpmLEgPiBqxK1uZzsgIzk2MzEKK+mYsiA+IGbDoW5nOyAjOTYzMgor6ZizID4gecOhbmc7ICM5NjMzCivpmLQgPiB5xKtuOyAjOTYzNAor6Zi1ID4gemjDqG47ICM5NjM1CivpmLYgPiBqacSTOyAjOTYzNgor6Zi3ID4gY2jEk25nOyAjOTYzNwor6Zi4ID4gw6g7ICM5NjM4CivpmLkgPiBxxas7ICM5NjM5CivpmLogPiBkxK07ICM5NjNBCivpmLsgPiB6xa07ICM5NjNCCivpmLwgPiB6w7lvOyAjOTYzQwor6Zi9ID4gZGnDoG47ICM5NjNECivpmL4gPiBsxK1uZzsgIzk2M0UKK+mYvyA+IMSBOyAjOTYzRgor6ZmAID4gdMO6bzsgIzk2NDAKK+mZgSA+IHTDum87ICM5NjQxCivpmYIgPiBwxY07ICM5NjQyCivpmYMgPiBixK1uZzsgIzk2NDMKK+mZhCA+IGbDuTsgIzk2NDQKK+mZhSA+IGrDrDsgIzk2NDUKK+mZhiA+IGzDuTsgIzk2NDYKK+mZhyA+IGzFj25nOyAjOTY0Nwor6ZmIID4gY2jDqW47ICM5NjQ4CivpmYkgPiB4w61uZzsgIzk2NDkKK+mZiiA+IGTDuW87ICM5NjRBCivpmYsgPiBsw7J1OyAjOTY0Qgor6ZmMID4gbcOyOyAjOTY0Qwor6ZmNID4gamnDoG5nOyAjOTY0RAor6ZmOID4gc2jFqzsgIzk2NEUKK+mZjyA+IGTDuW87ICM5NjRGCivpmZAgPiB4acOgbjsgIzk2NTAKK+mZkSA+IMOpcjsgIzk2NTEKK+mZkiA+IGfFrWk7ICM5NjUyCivpmZMgPiB5xas7ICM5NjUzCivpmZQgPiBnxIFpOyAjOTY1NAor6ZmVID4gc2jEg247ICM5NjU1CivpmZYgPiB4w7luOyAjOTY1Ngor6ZmXID4gcWnDoG87ICM5NjU3CivpmZggPiB4w61uZzsgIzk2NTgKK+mZmSA+IGNow7puOyAjOTY1OQor6ZmaID4gZsO5OyAjOTY1QQor6ZmbID4gYsOsOyAjOTY1Qgor6ZmcID4geGnDoTsgIzk2NUMKK+mZnSA+IHNoxINuOyAjOTY1RAor6ZmeID4gc2jEk25nOyAjOTY1RQor6ZmfID4gemjDrDsgIzk2NUYKK+mZoCA+IHDFqzsgIzk2NjAKK+mZoSA+IGTFj3U7ICM5NjYxCivpmaIgPiB5dcOgbjsgIzk2NjIKK+mZoyA+IHpow6huOyAjOTY2Mwor6ZmkID4gY2jDujsgIzk2NjQKK+mZpSA+IHhpw6BuOyAjOTY2NQor6ZmnID4gbmnDqDsgIzk2NjcKK+mZqCA+IHnFrW47ICM5NjY4CivpmakgPiB4acSDbjsgIzk2NjkKK+mZqiA+IHDDqWk7ICM5NjZBCivpmasgPiBww6lpOyAjOTY2Qgor6ZmsID4gesWNdTsgIzk2NkMKK+mZrSA+IHnEqzsgIzk2NkQKK+mZriA+IGTFrWk7ICM5NjZFCivpma8gPiBsw7puOyAjOTY2Rgor6ZmwID4gecSrbjsgIzk2NzAKK+mZsSA+IGrFqzsgIzk2NzEKK+mZsiA+IGNow7ppOyAjOTY3Mgor6ZmzID4gY2jDqW47ICM5NjczCivpmbQgPiBww607ICM5Njc0CivpmbUgPiBsw61uZzsgIzk2NzUKK+mZtiA+IHTDoW87ICM5Njc2CivpmbcgPiB4acOgbjsgIzk2NzcKK+mZuCA+IGzDuTsgIzk2NzgKK+mZuSA+IHNoZW5nOyAjOTY3OQor6Zm6ID4geGnEg247ICM5NjdBCivpmbsgPiB5xKtuOyAjOTY3Qgor6Zm8ID4gemjFrTsgIzk2N0MKK+mZvSA+IHnDoW5nOyAjOTY3RAor6Zm+ID4gcsOpbmc7ICM5NjdFCivpmb8gPiBzaMSDbjsgIzk2N0YKK+magCA+IGNow7NuZzsgIzk2ODAKK+magSA+IHnDoG47ICM5NjgxCivpmoIgPiB5xKtuOyAjOTY4Mgor6ZqDID4gecO6OyAjOTY4Mwor6ZqEID4gdMOtOyAjOTY4NAor6ZqFID4gecO6OyAjOTY4NQor6ZqGID4gbMOzbmc7ICM5Njg2CivpmocgPiB3xJNpOyAjOTY4Nwor6ZqIID4gd8STaTsgIzk2ODgKK+maiSA+IG5pw6g7ICM5Njg5CivpmoogPiBkw7lpOyAjOTY4QQor6ZqLID4gc8O6aTsgIzk2OEIKK+majCA+IMSDbjsgIzk2OEMKK+majSA+IGh1w6FuZzsgIzk2OEQKK+majiA+IGppxJM7ICM5NjhFCivpmo8gPiBzw7ppOyAjOTY4Rgor6ZqQID4gecStbjsgIzk2OTAKK+makSA+IGfEgWk7ICM5NjkxCivpmpIgPiB5xINuOyAjOTY5Mgor6ZqTID4gaMWraTsgIzk2OTMKK+malCA+IGfDqTsgIzk2OTQKK+malSA+IHnFrW47ICM5Njk1CivpmpYgPiB3w7k7ICM5Njk2CivpmpcgPiB3xJVpOyAjOTY5Nwor6ZqYID4gw6BpOyAjOTY5OAor6ZqZID4geMOsOyAjOTY5OQor6ZqaID4gdMOhbmc7ICM5NjlBCivpmpsgPiBqw6w7ICM5NjlCCivpmpwgPiB6aMOgbmc7ICM5NjlDCivpmp0gPiBkxINvOyAjOTY5RAor6ZqeID4gw6FvOyAjOTY5RQor6ZqfID4geMOsOyAjOTY5Rgor6ZqgID4gecStbjsgIzk2QTAKK+maoiA+IHLDoG87ICM5NkEyCivpmqMgPiBsw61uOyAjOTZBMwor6ZqkID4gdMO6aTsgIzk2QTQKK+mapSA+IGTDqG5nOyAjOTZBNQor6ZqmID4gcMStOyAjOTZBNgor6ZqnID4gc8O5aTsgIzk2QTcKK+maqCA+IHPDumk7ICM5NkE4CivpmqkgPiB5w7k7ICM5NkE5CivpmqogPiB4acSDbjsgIzk2QUEKK+maqyA+IGbEk247ICM5NkFCCivpmqwgPiBuxK07ICM5NkFDCivpmq0gPiDDqXI7ICM5NkFECivpmq4gPiBqxKs7ICM5NkFFCivpmq8gPiBkxINvOyAjOTZBRgor6ZqwID4geMOtOyAjOTZCMAor6ZqxID4gecStbjsgIzk2QjEKK+masiA+IMOpOyAjOTZCMgor6ZqzID4gaMWraTsgIzk2QjMKK+matCA+IGzFj25nOyAjOTZCNAor6Zq1ID4geMSrOyAjOTZCNQor6Zq2ID4gbMOsOyAjOTZCNgor6Zq3ID4gbMOsOyAjOTZCNwor6Zq4ID4gbMOsOyAjOTZCOAor6Zq5ID4gemjFq2k7ICM5NkI5CivpmrogPiBow6g7ICM5NkJBCivpmrsgPiB6aMSrOyAjOTZCQgor6Zq8ID4gemjFrW47ICM5NkJDCivpmr0gPiBqw7luOyAjOTZCRAor6Zq+ID4gbsOhbjsgIzk2QkUKK+mavyA+IHnDrDsgIzk2QkYKK+mbgCA+IHF1w6g7ICM5NkMwCivpm4EgPiB5w6BuOyAjOTZDMQor6ZuCID4gcWnDoW47ICM5NkMyCivpm4MgPiB5xIM7ICM5NkMzCivpm4QgPiB4w61vbmc7ICM5NkM0Civpm4UgPiB5xIM7ICM5NkM1Civpm4YgPiBqw607ICM5NkM2Civpm4cgPiBnw7k7ICM5NkM3Civpm4ggPiBodcOhbjsgIzk2QzgKK+mbiSA+IHpow6w7ICM5NkM5Civpm4ogPiBnw7J1OyAjOTZDQQor6ZuLID4gasO5bjsgIzk2Q0IKK+mbjCA+IGPDrTsgIzk2Q0MKK+mbjSA+IHnFjW5nOyAjOTZDRAor6ZuOID4gasWrOyAjOTZDRQor6ZuPID4gY2jDujsgIzk2Q0YKK+mbkCA+IGjFqzsgIzk2RDAKK+mbkSA+IHrDoTsgIzk2RDEKK+mbkiA+IGzDuW87ICM5NkQyCivpm5MgPiB5w7o7ICM5NkQzCivpm5QgPiBjaMOzdTsgIzk2RDQKK+mblSA+IGRpxIFvOyAjOTZENQor6ZuWID4gc8WraTsgIzk2RDYKK+mblyA+IGjDoG47ICM5NkQ3Civpm5ggPiBow7lvOyAjOTZEOAor6ZuZID4gc2h1xIFuZzsgIzk2RDkKK+mbmiA+IGd1w6BuOyAjOTZEQQor6ZubID4gY2jDujsgIzk2REIKK+mbnCA+IHrDoTsgIzk2REMKK+mbnSA+IHnFjW5nOyAjOTZERAor6ZueID4gasSrOyAjOTZERQor6ZufID4geMSrOyAjOTZERgor6ZugID4gY2jDs3U7ICM5NkUwCivpm6EgPiBsw6x1OyAjOTZFMQor6ZuiID4gbMOtOyAjOTZFMgor6ZujID4gbsOhbjsgIzk2RTMKK+mbpCA+IHh1w6k7ICM5NkU0Civpm6UgPiB6w6E7ICM5NkU1Civpm6YgPiBqw607ICM5NkU2Civpm6cgPiBqw607ICM5NkU3Civpm6ggPiB5xa07ICM5NkU4Civpm6kgPiB5w7o7ICM5NkU5Civpm6ogPiB4dcSVOyAjOTZFQQor6ZurID4gbsSDOyAjOTZFQgor6ZusID4gZsWPdTsgIzk2RUMKK+mbrSA+IHPDqDsgIzk2RUQKK+mbriA+IG3DuTsgIzk2RUUKK+mbryA+IHfDqW47ICM5NkVGCivpm7AgPiBmxJNuOyAjOTZGMAor6ZuxID4gcMOhbmc7ICM5NkYxCivpm7IgPiB5w7puOyAjOTZGMgor6ZuzID4gbMOsOyAjOTZGMwor6Zu0ID4gbMOsOyAjOTZGNAor6Zu1ID4gxINuZzsgIzk2RjUKK+mbtiA+IGzDrW5nOyAjOTZGNgor6Zu3ID4gbMOpaTsgIzk2RjcKK+mbuCA+IMOhbjsgIzk2RjgKK+mbuSA+IGLDoW87ICM5NkY5Civpm7ogPiBtw6luZzsgIzk2RkEKK+mbuyA+IGRpw6BuOyAjOTZGQgor6Zu8ID4gZMOgbmc7ICM5NkZDCivpm70gPiB4w61uZzsgIzk2RkQKK+mbviA+IHfDuTsgIzk2RkUKK+mbvyA+IHpow6BvOyAjOTZGRgor6ZyAID4geMWrOyAjOTcwMAor6ZyBID4gasOsOyAjOTcwMQor6ZyCID4gbcO5OyAjOTcwMgor6ZyDID4gY2jDqW47ICM5NzAzCivpnIQgPiB4acSBbzsgIzk3MDQKK+mchSA+IHpow6E7ICM5NzA1CivpnIYgPiB0w61uZzsgIzk3MDYKK+mchyA+IHpow6huOyAjOTcwNwor6ZyIID4gcMOoaTsgIzk3MDgKK+mciSA+IG3DqWk7ICM5NzA5CivpnIogPiBsw61uZzsgIzk3MEEKK+mciyA+IHHEqzsgIzk3MEIKK+mcjCA+IGNoxY11OyAjOTcwQwor6ZyNID4gaMO5bzsgIzk3MEQKK+mcjiA+IHNow6A7ICM5NzBFCivpnI8gPiBmxJNpOyAjOTcwRgor6ZyQID4gd8STbmc7ICM5NzEwCivpnJEgPiB6aMSBbjsgIzk3MTEKK+mckiA+IHnEq247ICM5NzEyCivpnJMgPiBuw607ICM5NzEzCivpnJQgPiBjaMOydTsgIzk3MTQKK+mclSA+IHTDum47ICM5NzE1CivpnJYgPiBsw61uOyAjOTcxNgor6ZyYID4gZMOybmc7ICM5NzE4CivpnJkgPiB5xKtuZzsgIzk3MTkKK+mcmiA+IHfDuTsgIzk3MUEKK+mcmyA+IGzDrW5nOyAjOTcxQgor6ZycID4gc2h1xIFuZzsgIzk3MUMKK+mcnSA+IGzDrW5nOyAjOTcxRAor6ZyeID4geGnDoTsgIzk3MUUKK+mcnyA+IGjDs25nOyAjOTcxRgor6ZygID4gecSrbjsgIzk3MjAKK+mcoSA+IG3DsjsgIzk3MjEKK+mcoiA+IG3DoGk7ICM5NzIyCivpnKMgPiB5xa1uOyAjOTcyMwor6ZykID4gbMOsdTsgIzk3MjQKK+mcpSA+IG3DqG5nOyAjOTcyNQor6ZymID4gYsSrbjsgIzk3MjYKK+mcpyA+IHfDuTsgIzk3MjcKK+mcqCA+IHfDqGk7ICM5NzI4CivpnKkgPiBow7lvOyAjOTcyOQor6ZyqID4gecOtbjsgIzk3MkEKK+mcqyA+IHjDrTsgIzk3MkIKK+mcrCA+IHnDrDsgIzk3MkMKK+mcrSA+IMSDaTsgIzk3MkQKK+mcriA+IGTDoG47ICM5NzJFCivpnK8gPiBkw6huZzsgIzk3MkYKK+mcsCA+IHhpw6BuOyAjOTczMAor6ZyxID4gecO5OyAjOTczMQor6ZyyID4gbMO5OyAjOTczMgor6ZyzID4gbMOzbmc7ICM5NzMzCivpnLQgPiBkw6BpOyAjOTczNAor6Zy1ID4gasOtOyAjOTczNQor6Zy2ID4gcMOhbmc7ICM5NzM2CivpnLcgPiB5w6FuZzsgIzk3MzcKK+mcuCA+IGLDoDsgIzk3MzgKK+mcuSA+IHDEqzsgIzk3MzkKK+mcuiA+IHfDqWk7ICM5NzNBCivpnLwgPiB4xK07ICM5NzNDCivpnL0gPiBqw6w7ICM5NzNECivpnL4gPiBtw6FpOyAjOTczRQor6Zy/ID4gbcOobmc7ICM5NzNGCivpnYAgPiBtw6luZzsgIzk3NDAKK+mdgSA+IGzDqWk7ICM5NzQxCivpnYIgPiBsw6w7ICM5NzQyCivpnYMgPiBow7lvOyAjOTc0Mwor6Z2EID4gxINpOyAjOTc0NAor6Z2FID4gZsOoaTsgIzk3NDUKK+mdhiA+IGTDoGk7ICM5NzQ2CivpnYcgPiBsw7NuZzsgIzk3NDcKK+mdiCA+IGzDrW5nOyAjOTc0OAor6Z2JID4gw6BpOyAjOTc0OQor6Z2KID4gZsSTbmc7ICM5NzRBCivpnYsgPiBsw6w7ICM5NzRCCivpnYwgPiBixINvOyAjOTc0Qwor6Z2OID4gaMOoOyAjOTc0RQor6Z2PID4gaMOoOyAjOTc0Rgor6Z2QID4gYsOsbmc7ICM5NzUwCivpnZEgPiBxxKtuZzsgIzk3NTEKK+mdkiA+IHHEq25nOyAjOTc1Mgor6Z2TID4gasOsbmc7ICM5NzUzCivpnZQgPiB0acSBbjsgIzk3NTQKK+mdlSA+IHpoxJNuOyAjOTc1NQor6Z2WID4gasOsbmc7ICM5NzU2CivpnZcgPiBjaMOobmc7ICM5NzU3CivpnZggPiBxw6xuZzsgIzk3NTgKK+mdmSA+IGrDrG5nOyAjOTc1OQor6Z2aID4gasOsbmc7ICM5NzVBCivpnZsgPiBkacOgbjsgIzk3NUIKK+mdnCA+IGrDrG5nOyAjOTc1Qwor6Z2dID4gdGnEgW47ICM5NzVECivpnZ4gPiBmxJNpOyAjOTc1RQor6Z2fID4gZsSTaTsgIzk3NUYKK+mdoCA+IGvDoG87ICM5NzYwCivpnaEgPiBtxK07ICM5NzYxCivpnaIgPiBtacOgbjsgIzk3NjIKK+mdoyA+IG1pw6BuOyAjOTc2Mwor6Z2kID4gcMOgbzsgIzk3NjQKK+mdpSA+IHnDqDsgIzk3NjUKK+mdpiA+IHRpxINuOyAjOTc2Ngor6Z2nID4gaMO5aTsgIzk3NjcKK+mdqCA+IHnDqDsgIzk3NjgKK+mdqSA+IGfDqTsgIzk3NjkKK+mdqiA+IGTEq25nOyAjOTc2QQor6Z2rID4gY2jEgTsgIzk3NkIKK+mdrCA+IGppxIFuOyAjOTc2Qwor6Z2tID4gcsOobjsgIzk3NkQKK+mdriA+IGTDrTsgIzk3NkUKK+mdryA+IGTDuTsgIzk3NkYKK+mdsCA+IHfDuTsgIzk3NzAKK+mdsSA+IHLDqG47ICM5NzcxCivpnbIgPiBxw61uOyAjOTc3Mgor6Z2zID4gasOsbjsgIzk3NzMKK+mdtCA+IHh1xJM7ICM5Nzc0CivpnbUgPiBuxK11OyAjOTc3NQor6Z22ID4gYsSDOyAjOTc3Ngor6Z23ID4gecStbjsgIzk3NzcKK+mduCA+IHPEgzsgIzk3NzgKK+mduSA+IG7DoDsgIzk3NzkKK+mduiA+IG3DsjsgIzk3N0EKK+mduyA+IHrFrTsgIzk3N0IKK+mdvCA+IGTDoTsgIzk3N0MKK+mdvSA+IGLDoG47ICM5NzdECivpnb4gPiB5w6w7ICM5NzdFCivpnb8gPiB5w6BvOyAjOTc3Rgor6Z6AID4gdMOhbzsgIzk3ODAKK+megSA+IHTDum87ICM5NzgxCivpnoIgPiBqacOhOyAjOTc4Mgor6Z6DID4gaMOzbmc7ICM5NzgzCivpnoQgPiBww6FvOyAjOTc4NAor6Z6FID4gecSDbmc7ICM5Nzg1CivpnocgPiB5xKtuOyAjOTc4Nwor6Z6IID4gamnDoTsgIzk3ODgKK+meiSA+IHTDoW87ICM5Nzg5CivpnoogPiBqw607ICM5NzhBCivpnosgPiB4acOpOyAjOTc4Qgor6Z6MID4gxIFuOyAjOTc4Qwor6Z6NID4gxIFuOyAjOTc4RAor6Z6OID4gaMOpbjsgIzk3OEUKK+mejyA+IGfFj25nOyAjOTc4Rgor6Z6RID4gZMOhOyAjOTc5MQor6Z6SID4gcWnEgW87ICM5NzkyCivpnpMgPiB0xKtuZzsgIzk3OTMKK+melCA+IHfEg247ICM5Nzk0CivpnpUgPiB5w6xuZzsgIzk3OTUKK+meliA+IHPFq2k7ICM5Nzk2CivpnpcgPiB0acOhbzsgIzk3OTcKK+memCA+IHFpw6BvOyAjOTc5OAor6Z6ZID4geHXDoG47ICM5Nzk5CivpnpogPiBrw7JuZzsgIzk3OUEKK+memyA+IGLElW5nOyAjOTc5Qgor6Z6cID4gdMOgOyAjOTc5Qwor6Z6dID4gemjEg25nOyAjOTc5RAor6Z6eID4gYsStbmc7ICM5NzlFCivpnp8gPiBrw7lvOyAjOTc5Rgor6Z6gID4gasO6OyAjOTdBMAor6Z6hID4gbGE7ICM5N0ExCivpnqIgPiB4acOoOyAjOTdBMgor6Z6jID4gcsOzdTsgIzk3QTMKK+mepCA+IGLEgW5nOyAjOTdBNAor6Z6lID4gecOsOyAjOTdBNQor6Z6mID4gccSrdTsgIzk3QTYKK+mepyA+IHHEq3U7ICM5N0E3CivpnqggPiBow6k7ICM5N0E4CivpnqkgPiB4acOgbzsgIzk3QTkKK+meqiA+IG3DuTsgIzk3QUEKK+meqyA+IGrDujsgIzk3QUIKK+merCA+IGppxIFuOyAjOTdBQwor6Z6tID4gYmnEgW47ICM5N0FECivpnq4gPiBkxKs7ICM5N0FFCivpnq8gPiBqacSBbjsgIzk3QUYKK+mesSA+IHTEgW87ICM5N0IxCivpnrIgPiBnxY11OyAjOTdCMgor6Z6zID4gdMOgOyAjOTdCMwor6Z60ID4gYsOoaTsgIzk3QjQKK+metSA+IHhpw6k7ICM5N0I1CivpnrYgPiBww6FuOyAjOTdCNgor6Z63ID4gZ8OpOyAjOTdCNwor6Z64ID4gYsOsOyAjOTdCOAor6Z65ID4ga8O5bzsgIzk3QjkKK+meuiA+IHRhbmc7ICM5N0JBCivpnrsgPiBsw7N1OyAjOTdCQgor6Z68ID4gZ8O5aTsgIzk3QkMKK+mevSA+IHFpw6FvOyAjOTdCRAor6Z6+ID4geHXEkzsgIzk3QkUKK+mevyA+IGrEqzsgIzk3QkYKK+mfgCA+IGppxIFuOyAjOTdDMAor6Z+BID4gamnEgW5nOyAjOTdDMQor6Z+CID4gY2jDoG47ICM5N0MyCivpn4MgPiBkw6E7ICM5N0MzCivpn4QgPiBow7lvOyAjOTdDNAor6Z+FID4geGnEg247ICM5N0M1Civpn4YgPiBxacSBbjsgIzk3QzYKK+mfhyA+IGTDujsgIzk3QzcKK+mfiCA+IHfDoDsgIzk3QzgKK+mfiSA+IGppxIFuOyAjOTdDOQor6Z+KID4gbMOhbjsgIzk3Q0EKK+mfiyA+IHfDqWk7ICM5N0NCCivpn4wgPiByw6huOyAjOTdDQwor6Z+NID4gZsO6OyAjOTdDRAor6Z+OID4gbcOoaTsgIzk3Q0UKK+mfjyA+IGp1w6BuOyAjOTdDRgor6Z+QID4gZ8OpOyAjOTdEMAor6Z+RID4gd8SVaTsgIzk3RDEKK+mfkiA+IHFpw6BvOyAjOTdEMgor6Z+TID4gaMOhbjsgIzk3RDMKK+mflCA+IGNow6BuZzsgIzk3RDQKK+mfliA+IHLDs3U7ICM5N0Q2Civpn5cgPiB4w7luOyAjOTdENwor6Z+YID4gc2jDqDsgIzk3RDgKK+mfmSA+IHfElWk7ICM5N0Q5Civpn5ogPiBnw6k7ICM5N0RBCivpn5sgPiBiw6hpOyAjOTdEQgor6Z+cID4gdMSBbzsgIzk3REMKK+mfnSA+IGfFjXU7ICM5N0RECivpn54gPiB5w7luOyAjOTdERQor6Z+gID4gYsOsOyAjOTdFMAor6Z+hID4gd8SVaTsgIzk3RTEKK+mfoiA+IGjDuWk7ICM5N0UyCivpn6MgPiBkw7o7ICM5N0UzCivpn6QgPiB3w6A7ICM5N0U0Civpn6UgPiBkw7o7ICM5N0U1Civpn6YgPiB3w6lpOyAjOTdFNgor6Z+nID4gcsOobjsgIzk3RTcKK+mfqCA+IGbDujsgIzk3RTgKK+mfqSA+IGjDoW47ICM5N0U5Civpn6ogPiB3xJVpOyAjOTdFQQor6Z+rID4gecO5bjsgIzk3RUIKK+mfrCA+IHTEgW87ICM5N0VDCivpn60gPiBqxK11OyAjOTdFRAor6Z+uID4gasStdTsgIzk3RUUKK+mfryA+IHhpxIFuOyAjOTdFRgor6Z+wID4geGnDqDsgIzk3RjAKK+mfsSA+IHhpxIFuOyAjOTdGMQor6Z+yID4gasSrOyAjOTdGMgor6Z+zID4gecSrbjsgIzk3RjMKK+mftCA+IHrDoTsgIzk3RjQKK+mftSA+IHnDuW47ICM5N0Y1Civpn7YgPiBzaMOhbzsgIzk3RjYKK+mftyA+IGzDqDsgIzk3RjcKK+mfuCA+IHDDqW5nOyAjOTdGOAor6Z+5ID4gaMOpbmc7ICM5N0Y5Civpn7ogPiB5xKtuZzsgIzk3RkEKK+mfuyA+IHnDuW47ICM5N0ZCCivpn7wgPiBww6luZzsgIzk3RkMKK+mfvSA+IHnEq247ICM5N0ZECivpn74gPiB5xKtuOyAjOTdGRQor6Z+/ID4geGnEg25nOyAjOTdGRgor6aCAID4gaMO5OyAjOTgwMAor6aCBID4gecOoOyAjOTgwMQor6aCCID4gZMStbmc7ICM5ODAyCivpoIMgPiBxxK1uZzsgIzk4MDMKK+mghCA+IHDDoG47ICM5ODA0CivpoIUgPiB4acOgbmc7ICM5ODA1CivpoIYgPiBzaMO5bjsgIzk4MDYKK+mghyA+IGjEgW47ICM5ODA3CivpoIggPiB4xas7ICM5ODA4CivpoIkgPiB5w607ICM5ODA5CivpoIogPiB4w7k7ICM5ODBBCivpoIsgPiBnw7k7ICM5ODBCCivpoIwgPiBzw7JuZzsgIzk4MEMKK+mgjSA+IGvFrWk7ICM5ODBECivpoI4gPiBxw607ICM5ODBFCivpoI8gPiBow6FuZzsgIzk4MEYKK+mgkCA+IHnDuTsgIzk4MTAKK+mgkSA+IHfDoW47ICM5ODExCivpoJIgPiBixIFuOyAjOTgxMgor6aCTID4gZMO5bjsgIzk4MTMKK+mglCA+IGTDrTsgIzk4MTQKK+mglSA+IGTEgW47ICM5ODE1CivpoJYgPiBww6BuOyAjOTgxNgor6aCXID4gcMWPOyAjOTgxNwor6aCYID4gbMStbmc7ICM5ODE4CivpoJkgPiBjw6g7ICM5ODE5CivpoJogPiBqxK1uZzsgIzk4MUEKK+mgmyA+IGzElWk7ICM5ODFCCivpoJwgPiBow6k7ICM5ODFDCivpoJ0gPiBxacSBbzsgIzk4MUQKK+mgniA+IMOoOyAjOTgxRQor6aCfID4gw6k7ICM5ODFGCivpoKAgPiB3xJVpOyAjOTgyMAor6aChID4gamnDqTsgIzk4MjEKK+mgoiA+IGd1xIE7ICM5ODIyCivpoKMgPiBzaMSVbjsgIzk4MjMKK+mgpCA+IHnDrTsgIzk4MjQKK+mgpSA+IHNoxJVuOyAjOTgyNQor6aCmID4gaMOhaTsgIzk4MjYKK+mgpyA+IGTFq2k7ICM5ODI3CivpoKggPiBwacSBbjsgIzk4MjgKK+mgqSA+IHDEq25nOyAjOTgyOQor6aCqID4gbMOoaTsgIzk4MkEKK+mgqyA+IGbFrTsgIzk4MkIKK+mgrCA+IGppw6E7ICM5ODJDCivpoK0gPiB0w7N1OyAjOTgyRAor6aCuID4gaMO5aTsgIzk4MkUKK+mgryA+IGvDumk7ICM5ODJGCivpoLAgPiBqacOhOyAjOTgzMAor6aCxID4gbMOoOyAjOTgzMQor6aCyID4gdGlhbjsgIzk4MzIKK+mgsyA+IGNoxJNuZzsgIzk4MzMKK+mgtCA+IHnErW5nOyAjOTgzNAor6aC1ID4gasWrbjsgIzk4MzUKK+mgtiA+IGjDujsgIzk4MzYKK+mgtyA+IGjDoG47ICM5ODM3CivpoLggPiBqxK1uZzsgIzk4MzgKK+mguSA+IHTDumk7ICM5ODM5CivpoLogPiB0w7ppOyAjOTgzQQor6aC7ID4gcMOtbjsgIzk4M0IKK+mgvCA+IGzDoGk7ICM5ODNDCivpoL0gPiB0w7ppOyAjOTgzRAor6aC+ID4gesSrOyAjOTgzRQor6aC/ID4gesSrOyAjOTgzRgor6aGAID4gY2jDumk7ICM5ODQwCivpoYEgPiBkw6xuZzsgIzk4NDEKK+mhgiA+IGzDoGk7ICM5ODQyCivpoYMgPiB5w6FuOyAjOTg0Mwor6aGEID4gaMOgbjsgIzk4NDQKK+mhhSA+IGppxIFuOyAjOTg0NQor6aGGID4ga8STOyAjOTg0Ngor6aGHID4gY8O5aTsgIzk4NDcKK+mhiCA+IGrErW9uZzsgIzk4NDgKK+mhiSA+IHHEq247ICM5ODQ5CivpoYogPiB5w607ICM5ODRBCivpoYsgPiBzxIFpOyAjOTg0Qgor6aGMID4gdMOtOyAjOTg0Qwor6aGNID4gw6k7ICM5ODRECivpoY4gPiDDqDsgIzk4NEUKK+mhjyA+IHnDoW47ICM5ODRGCivpoZAgPiBow7puOyAjOTg1MAor6aGRID4ga8SDbjsgIzk4NTEKK+mhkiA+IHnDs25nOyAjOTg1Mgor6aGTID4gemh1xIFuOyAjOTg1Mwor6aGUID4gecOhbjsgIzk4NTQKK+mhlSA+IHhpxINuOyAjOTg1NQor6aGWID4geMOsbjsgIzk4NTYKK+mhlyA+IHnErTsgIzk4NTcKK+mhmCA+IHl1w6BuOyAjOTg1OAor6aGZID4gc8SDbmc7ICM5ODU5CivpoZogPiBkacSBbjsgIzk4NUEKK+mhmyA+IGRpxIFuOyAjOTg1Qgor6aGcID4gamnEg25nOyAjOTg1Qwor6aGdID4ga8WrOyAjOTg1RAor6aGeID4gbMOoaTsgIzk4NUUKK+mhnyA+IGxpw6FvOyAjOTg1Rgor6aGgID4gcGnDoG87ICM5ODYwCivpoaEgPiB5w6w7ICM5ODYxCivpoaIgPiBtw6FuOyAjOTg2Mgor6aGjID4gccSrOyAjOTg2Mwor6aGkID4gcsOgbzsgIzk4NjQKK+mhpSA+IGjDoG87ICM5ODY1CivpoaYgPiBxacOhbzsgIzk4NjYKK+mhpyA+IGfDuTsgIzk4NjcKK+mhqCA+IHjDuW47ICM5ODY4CivpoakgPiBxacSBbjsgIzk4NjkKK+mhqiA+IGjFq2k7ICM5ODZBCivpoasgPiB6aMOgbjsgIzk4NkIKK+mhrCA+IHLDujsgIzk4NkMKK+mhrSA+IGjFjW5nOyAjOTg2RAor6aGuID4gYsSrbjsgIzk4NkUKK+mhryA+IHhpxINuOyAjOTg2Rgor6aGwID4gcMOtbjsgIzk4NzAKK+mhsSA+IGzDujsgIzk4NzEKK+mhsiA+IGzEg247ICM5ODcyCivpobMgPiBuacOoOyAjOTg3Mwor6aG0ID4gcXXDoW47ICM5ODc0CivpobUgPiB5w6g7ICM5ODc1CivpobYgPiBkxK1uZzsgIzk4NzYKK+mhtyA+IHHErW5nOyAjOTg3Nwor6aG4ID4gaMSBbjsgIzk4NzgKK+mhuSA+IHhpw6BuZzsgIzk4NzkKK+mhuiA+IHNow7luOyAjOTg3QQor6aG7ID4geMWrOyAjOTg3Qgor6aG8ID4geMO5OyAjOTg3Qwor6aG9ID4gd8OhbjsgIzk4N0QKK+mhviA+IGfDuTsgIzk4N0UKK+mhvyA+IGTDuW47ICM5ODdGCivpooAgPiBxw607ICM5ODgwCivpooEgPiBixIFuOyAjOTg4MQor6aKCID4gc8Oybmc7ICM5ODgyCivpooMgPiBow6FuZzsgIzk4ODMKK+mihCA+IHnDuTsgIzk4ODQKK+mihSA+IGzDujsgIzk4ODUKK+mihiA+IGzErW5nOyAjOTg4Ngor6aKHID4gcMWPOyAjOTg4Nwor6aKIID4gasStbmc7ICM5ODg4CivpookgPiBqacOpOyAjOTg4OQor6aKKID4gamnDoTsgIzk4OEEKK+miiyA+IHRpYW47ICM5ODhCCivpoowgPiBow6BuOyAjOTg4Qwor6aKNID4gecStbmc7ICM5ODhECivpoo4gPiBqxK1vbmc7ICM5ODhFCivpoo8gPiBow6FpOyAjOTg4Rgor6aKQID4gecOtOyAjOTg5MAor6aKRID4gcMOtbjsgIzk4OTEKK+mikiA+IGjDuWk7ICM5ODkyCivpopMgPiB0w7ppOyAjOTg5Mwor6aKUID4gaMOgbjsgIzk4OTQKK+milSA+IHnErW5nOyAjOTg5NQor6aKWID4gecStbmc7ICM5ODk2CivpopcgPiBrxJM7ICM5ODk3CivpopggPiB0w607ICM5ODk4CivpopkgPiB5w7NuZzsgIzk4OTkKK+mimiA+IMOoOyAjOTg5QQor6aKbID4gemh1xIFuOyAjOTg5Qgor6aKcID4gecOhbjsgIzk4OUMKK+minSA+IMOpOyAjOTg5RAor6aKeID4gbmnDqDsgIzk4OUUKK+minyA+IG3DoW47ICM5ODlGCivpoqAgPiBkacSBbjsgIzk4QTAKK+mioSA+IHPEg25nOyAjOThBMQor6aKiID4gaMOgbzsgIzk4QTIKK+mioyA+IGzDqGk7ICM5OEEzCivpoqQgPiB6aMOgbjsgIzk4QTQKK+mipSA+IHLDujsgIzk4QTUKK+mipiA+IHDDrW47ICM5OEE2CivpoqcgPiBxdcOhbjsgIzk4QTcKK+miqCA+IGbEk25nOyAjOThBOAor6aKpID4gYmnEgW87ICM5OEE5CivpoqsgPiBmw7o7ICM5OEFCCivpoqwgPiB4acSBOyAjOThBQwor6aKtID4gemjEg247ICM5OEFECivpoq4gPiBiacSBbzsgIzk4QUUKK+miryA+IHPDoDsgIzk4QUYKK+misCA+IGLDoTsgIzk4QjAKK+misSA+IHTDoWk7ICM5OEIxCivporIgPiBsacOoOyAjOThCMgor6aKzID4gZ3XEgTsgIzk4QjMKK+mitCA+IHh1w6BuOyAjOThCNAor6aK1ID4gc2jDoG87ICM5OEI1CivporYgPiBqw7k7ICM5OEI2CivporcgPiBixKs7ICM5OEI3CivporggPiBzxKs7ICM5OEI4CivporkgPiB3xJVpOyAjOThCOQor6aK6ID4gecOhbmc7ICM5OEJBCivporsgPiB5w6FvOyAjOThCQgor6aK8ID4gc8WNdTsgIzk4QkMKK+mivSA+IGvEg2k7ICM5OEJECivpor4gPiBzxIFvOyAjOThCRQor6aK/ID4gZsOhbjsgIzk4QkYKK+mjgCA+IGzDrXU7ICM5OEMwCivpo4EgPiB4w607ICM5OEMxCivpo4IgPiBsacOhbzsgIzk4QzIKK+mjgyA+IHBpxIFvOyAjOThDMwor6aOEID4gcGnEgW87ICM5OEM0Civpo4UgPiBsw611OyAjOThDNQor6aOGID4gYmnEgW87ICM5OEM2Civpo4cgPiBiacSBbzsgIzk4QzcKK+mjiCA+IGJpxINvOyAjOThDOAor6aOJID4gbGnDoW87ICM5OEM5Civpo4sgPiBzw6g7ICM5OENCCivpo4wgPiBmxJNuZzsgIzk4Q0MKK+mjjSA+IGJpxIFvOyAjOThDRAor6aOOID4gZsSTbmc7ICM5OENFCivpo48gPiB5w6FuZzsgIzk4Q0YKK+mjkCA+IHpoxINuOyAjOThEMAor6aORID4gYmnEgW87ICM5OEQxCivpo5IgPiBzw6A7ICM5OEQyCivpo5MgPiBqw7k7ICM5OEQzCivpo5QgPiBzxKs7ICM5OEQ0Civpo5UgPiBzxY11OyAjOThENQor6aOWID4gecOhbzsgIzk4RDYKK+mjlyA+IGzDrXU7ICM5OEQ3Civpo5ggPiBwacSBbzsgIzk4RDgKK+mjmSA+IGJpxIFvOyAjOThEOQor6aOaID4gYmnEgW87ICM5OERBCivpo5sgPiBmxJNpOyAjOThEQgor6aOcID4gZsSBbjsgIzk4REMKK+mjnSA+IGbEk2k7ICM5OERECivpo54gPiBmxJNpOyAjOThERQor6aOfID4gc2jDrTsgIzk4REYKK+mjoCA+IHNow607ICM5OEUwCivpo6EgPiBjxIFuOyAjOThFMQor6aOiID4gasSrOyAjOThFMgor6aOjID4gZMOsbmc7ICM5OEUzCivpo6QgPiBzw6w7ICM5OEU0Civpo6UgPiB0xatvOyAjOThFNQor6aOmID4gemjEgW47ICM5OEU2Civpo6cgPiBzxatuOyAjOThFNwor6aOoID4geGnEg25nOyAjOThFOAor6aOpID4gdMO6bjsgIzk4RTkKK+mjqiA+IHLDqG47ICM5OEVBCivpo6sgPiB5w7k7ICM5OEVCCivpo6wgPiBqdcOgbjsgIzk4RUMKK+mjrSA+IGNow6w7ICM5OEVECivpo64gPiB5xK1uOyAjOThFRQor6aOvID4gZsOgbjsgIzk4RUYKK+mjsCA+IGbDoG47ICM5OEYwCivpo7EgPiBzxatuOyAjOThGMQor6aOyID4gecStbjsgIzk4RjIKK+mjsyA+IHpow7k7ICM5OEYzCivpo7QgPiB5w607ICM5OEY0Civpo7UgPiB6aMSDaTsgIzk4RjUKK+mjtiA+IGLDrDsgIzk4RjYKK+mjtyA+IGppxJU7ICM5OEY3Civpo7ggPiB0xIFvOyAjOThGOAor6aO5ID4gbMStdTsgIzk4RjkKK+mjuiA+IGPDrTsgIzk4RkEKK+mjuyA+IHRpw6g7ICM5OEZCCivpo7wgPiBzw6w7ICM5OEZDCivpo70gPiBixINvOyAjOThGRAor6aO+ID4gc2jDrDsgIzk4RkUKK+mjvyA+IGTDuW87ICM5OEZGCivppIAgPiBow6BpOyAjOTkwMAor6aSBID4gcsOobjsgIzk5MDEKK+mkgiA+IHRpxINuOyAjOTkwMgor6aSDID4gamnEg287ICM5OTAzCivppIQgPiBqacOhOyAjOTkwNAor6aSFID4gYsStbmc7ICM5OTA1CivppIYgPiB5w6FvOyAjOTkwNgor6aSHID4gdMOzbmc7ICM5OTA3CivppIggPiBjw607ICM5OTA4CivppIkgPiB4acSDbmc7ICM5OTA5CivppIogPiB5xINuZzsgIzk5MEEKK+mkiyA+IHnEg25nOyAjOTkwQgor6aSMID4gxJVyOyAjOTkwQwor6aSNID4gecOgbjsgIzk5MEQKK+mkjiA+IGxlOyAjOTkwRQor6aSPID4gecSrOyAjOTkwRgor6aSQID4gY8SBbjsgIzk5MTAKK+mkkSA+IGLDszsgIzk5MTEKK+mkkiA+IG7ElWk7ICM5OTEyCivppJMgPiDDqDsgIzk5MTMKK+mklCA+IGLFqzsgIzk5MTQKK+mklSA+IGrDuW47ICM5OTE1CivppJYgPiBkw7J1OyAjOTkxNgor6aSXID4gc8O5OyAjOTkxNwor6aSYID4gecO6OyAjOTkxOAor6aSZID4gc2jDrDsgIzk5MTkKK+mkmiA+IHnDoW87ICM5OTFBCivppJsgPiBow7puOyAjOTkxQgor6aScID4gZ8WtbzsgIzk5MUMKK+mknSA+IHNow6w7ICM5OTFECivppJ4gPiBqacOgbjsgIzk5MUUKK+mknyA+IHpow7lpOyAjOTkxRgor6aSgID4gYsStbmc7ICM5OTIwCivppKEgPiB4acOgbjsgIzk5MjEKK+mkoiA+IGLDuTsgIzk5MjIKK+mkoyA+IHnDqDsgIzk5MjMKK+mkpCA+IHTDoW47ICM5OTI0CivppKUgPiBmxJVpOyAjOTkyNQor6aSmID4gemjEgW5nOyAjOTkyNgor6aSnID4gd8OoaTsgIzk5MjcKK+mkqCA+IGd1xINuOyAjOTkyOAor6aSpID4gw6g7ICM5OTI5CivppKogPiBudcSDbjsgIzk5MkEKK+mkqyA+IGjDum47ICM5OTJCCivppKwgPiBow7o7ICM5OTJDCivppK0gPiBodcOhbmc7ICM5OTJECivppK4gPiB0acOoOyAjOTkyRQor6aSvID4gaMO5aTsgIzk5MkYKK+mksCA+IGppxIFuOyAjOTkzMAor6aSxID4gaMOzdTsgIzk5MzEKK+mksiA+IGjDqTsgIzk5MzIKK+mksyA+IHjDrW5nOyAjOTkzMwor6aS0ID4gZsSTbjsgIzk5MzQKK+mktSA+IHfDqGk7ICM5OTM1CivppLYgPiBnxa07ICM5OTM2CivppLcgPiBjaMSBOyAjOTkzNwor6aS4ID4gc8Oybmc7ICM5OTM4CivppLkgPiB0w6FuZzsgIzk5MzkKK+mkuiA+IGLDszsgIzk5M0EKK+mkuyA+IGfEgW87ICM5OTNCCivppLwgPiB4w6w7ICM5OTNDCivppL0gPiBrw7lpOyAjOTkzRAor6aS+ID4gbMOsdTsgIzk5M0UKK+mkvyA+IHPFjXU7ICM5OTNGCivppYAgPiB0w6FvOyAjOTk0MAor6aWBID4gecOoOyAjOTk0MQor6aWCID4gecO6bjsgIzk5NDIKK+mlgyA+IG3DszsgIzk5NDMKK+mlhCA+IHTDoW5nOyAjOTk0NAor6aWFID4gbcOhbjsgIzk5NDUKK+mlhiA+IGLDrDsgIzk5NDYKK+mlhyA+IHnDuTsgIzk5NDcKK+mliCA+IHjEq3U7ICM5OTQ4CivppYkgPiBqxK1uOyAjOTk0OQor6aWKID4gc8SDbjsgIzk5NEEKK+mliyA+IGvDuWk7ICM5OTRCCivppYwgPiB6aHXDoG47ICM5OTRDCivppY0gPiBzaMOgbjsgIzk5NEQKK+mljiA+IGNow6w7ICM5OTRFCivppY8gPiBkw6BuOyAjOTk0Rgor6aWQID4gecOsOyAjOTk1MAor6aWRID4gasSrOyAjOTk1MQor6aWSID4gcsOhbzsgIzk5NTIKK+mlkyA+IGNoxJNuZzsgIzk5NTMKK+mllCA+IHnFjW5nOyAjOTk1NAor6aWVID4gdMSBbzsgIzk5NTUKK+mlliA+IGjDuWk7ICM5OTU2CivppZcgPiB4acSDbmc7ICM5OTU3CivppZggPiB6aMSBbjsgIzk5NTgKK+mlmSA+IGbEk247ICM5OTU5CivppZogPiBow6BpOyAjOTk1QQor6aWbID4gbcOpbmc7ICM5OTVCCivppZwgPiB5w6BuOyAjOTk1Qwor6aWdID4gbcOzOyAjOTk1RAor6aWeID4gY2jDoW47ICM5OTVFCivppZ8gPiB4acSDbmc7ICM5OTVGCivppaAgPiBsw7pvOyAjOTk2MAor6aWhID4genXDoG47ICM5OTYxCivppaIgPiBuxINuZzsgIzk5NjIKK+mloyA+IHNow607ICM5OTYzCivppaQgPiBkw6xuZzsgIzk5NjQKK+mlpSA+IGrEqzsgIzk5NjUKK+mlpiA+IHTFq287ICM5OTY2CivppacgPiB4w61uZzsgIzk5NjcKK+mlqCA+IHTDum47ICM5OTY4CivppakgPiB4w6w7ICM5OTY5CivppaogPiByw6huOyAjOTk2QQor6aWrID4gecO5OyAjOTk2Qgor6aWsID4gY2jDrDsgIzk5NkMKK+mlrSA+IGbDoG47ICM5OTZECivppa4gPiB5xK1uOyAjOTk2RQor6aWvID4gamnDoG47ICM5OTZGCivppbAgPiBzaMOsOyAjOTk3MAor6aWxID4gYsSDbzsgIzk5NzEKK+mlsiA+IHPDrDsgIzk5NzIKK+mlsyA+IGTDuW87ICM5OTczCivppbQgPiB5w607ICM5OTc0CivppbUgPiDElXI7ICM5OTc1CivppbYgPiByw6FvOyAjOTk3Ngor6aW3ID4geGnEg25nOyAjOTk3Nwor6aW4ID4gamnDoTsgIzk5NzgKK+mluSA+IGxlOyAjOTk3OQor6aW6ID4gamnEg287ICM5OTdBCivppbsgPiB5xKs7ICM5OTdCCivppbwgPiBixK1uZzsgIzk5N0MKK+mlvSA+IGLDszsgIzk5N0QKK+mlviA+IGTDsnU7ICM5OTdFCivppb8gPiDDqDsgIzk5N0YKK+mmgCA+IHnDujsgIzk5ODAKK+mmgSA+IG7ElWk7ICM5OTgxCivppoIgPiBqw7luOyAjOTk4Mgor6aaDID4gZ8WtbzsgIzk5ODMKK+mmhCA+IGjDum47ICM5OTg0CivppoUgPiB4acOgbjsgIzk5ODUKK+mmhiA+IGd1xINuOyAjOTk4Ngor6aaHID4gY2jEgTsgIzk5ODcKK+mmiCA+IGvDuWk7ICM5OTg4CivppokgPiBnxa07ICM5OTg5CivppoogPiBzxY11OyAjOTk4QQor6aaLID4gY2jDoW47ICM5OThCCivppowgPiB5w6g7ICM5OThDCivppo0gPiBtw7M7ICM5OThECivppo4gPiBiw7M7ICM5OThFCivppo8gPiBsw6x1OyAjOTk4Rgor6aaQID4geMSrdTsgIzk5OTAKK+mmkSA+IGrErW47ICM5OTkxCivpppIgPiBtw6FuOyAjOTk5Mgor6aaTID4gc8SDbjsgIzk5OTMKK+mmlCA+IHpodcOgbjsgIzk5OTQKK+mmlSA+IG7Eg25nOyAjOTk5NQor6aaWID4gc2jFj3U7ICM5OTk2CivpppcgPiBrw7ppOyAjOTk5Nwor6aaYID4gZ8O6bzsgIzk5OTgKK+mmmSA+IHhpxIFuZzsgIzk5OTkKK+mmmiA+IGbDqW47ICM5OTlBCivpppsgPiBiw6E7ICM5OTlCCivpppwgPiBuxK07ICM5OTlDCivppp0gPiBiw6w7ICM5OTlECivppp4gPiBiw7M7ICM5OTlFCivppp8gPiB0w7o7ICM5OTlGCivppqAgPiBoxIFuOyAjOTlBMAor6aahID4gZsSTaTsgIzk5QTEKK+mmoiA+IGppxIFuOyAjOTlBMgor6aajID4gxIFuOyAjOTlBMwor6aakID4gxINpOyAjOTlBNAor6aalID4gZsO5OyAjOTlBNQor6aamID4geGnEgW47ICM5OUE2CivppqcgPiB3xJNuOyAjOTlBNwor6aaoID4geMSrbjsgIzk5QTgKK+mmqSA+IGbDqW47ICM5OUE5CivppqogPiBixKtuOyAjOTlBQQor6aarID4geMSrbmc7ICM5OUFCCivppqwgPiBtxIM7ICM5OUFDCivppq0gPiB5w7k7ICM5OUFECivppq4gPiBmw6luZzsgIzk5QUUKK+mmryA+IGjDoG47ICM5OUFGCivpprAgPiBkw6w7ICM5OUIwCivpprEgPiB0w7pvOyAjOTlCMQor6aayID4gdMWrbzsgIzk5QjIKK+mmsyA+IGNow607ICM5OUIzCivpprQgPiB4w7puOyAjOTlCNAor6aa1ID4gemjDuTsgIzk5QjUKK+mmtiA+IHpoxKs7ICM5OUI2CivpprcgPiBww6hpOyAjOTlCNwor6aa4ID4geMOsbjsgIzk5QjgKK+mmuSA+IHLDrDsgIzk5QjkKK+mmuiA+IHPDoDsgIzk5QkEKK+mmuyA+IHnErW47ICM5OUJCCivpprwgPiB3w6luOyAjOTlCQwor6aa9ID4gemjDrTsgIzk5QkQKK+mmviA+IGTDoG47ICM5OUJFCivppr8gPiBsx5g7ICM5OUJGCivpp4AgPiB5w7N1OyAjOTlDMAor6aeBID4gYsOzOyAjOTlDMQor6aeCID4gYsSDbzsgIzk5QzIKK+mngyA+IGt1w6BpOyAjOTlDMwor6aeEID4gdMO6bzsgIzk5QzQKK+mnhSA+IHnDrDsgIzk5QzUKK+mnhiA+IHHFqzsgIzk5QzYKK+mniCA+IHHFqzsgIzk5QzgKK+mniSA+IGrEq29uZzsgIzk5QzkKK+mniiA+IGLFjzsgIzk5Q0EKK+mniyA+IHpoxIFvOyAjOTlDQgor6aeMID4geXXEgW47ICM5OUNDCivpp40gPiBwxJNuZzsgIzk5Q0QKK+mnjiA+IHpow7J1OyAjOTlDRQor6aePID4gasO5OyAjOTlDRgor6aeQID4gemjDuTsgIzk5RDAKK+mnkSA+IG7DujsgIzk5RDEKK+mnkiA+IGrFqzsgIzk5RDIKK+mnkyA+IHDDrTsgIzk5RDMKK+mnlCA+IHrEg25nOyAjOTlENAor6aeVID4gamnDoDsgIzk5RDUKK+mnliA+IGzDrW5nOyAjOTlENgor6aeXID4gemjEk247ICM5OUQ3Civpp5ggPiB0w6FpOyAjOTlEOAor6aeZID4gZsO5OyAjOTlEOQor6aeaID4gecSDbmc7ICM5OURBCivpp5sgPiBzaMStOyAjOTlEQgor6aecID4gYsOsOyAjOTlEQwor6aedID4gdMO6bzsgIzk5REQKK+mnniA+IHTDum87ICM5OURFCivpp58gPiBzw6w7ICM5OURGCivpp6AgPiBsw611OyAjOTlFMAor6aehID4gbcOgOyAjOTlFMQor6aeiID4gcGnDoW47ICM5OUUyCivpp6MgPiB0w6FvOyAjOTlFMwor6aekID4gemjDrDsgIzk5RTQKK+mnpSA+IHLDs25nOyAjOTlFNQor6aemID4gdMOpbmc7ICM5OUU2Civpp6cgPiBkw7JuZzsgIzk5RTcKK+mnqCA+IHjDum47ICM5OUU4Civpp6kgPiBxdcOhbjsgIzk5RTkKK+mnqiA+IHNoxJNuOyAjOTlFQQor6aerID4gasSrb25nOyAjOTlFQgor6aesID4gxJVyOyAjOTlFQwor6aetID4gaMOgaTsgIzk5RUQKK+mnriA+IGLDszsgIzk5RUUKK+mnryA+IHpodTsgIzk5RUYKK+mnsCA+IHnEq247ICM5OUYwCivpp7EgPiBsw7lvOyAjOTlGMQor6aezID4gZMOgbjsgIzk5RjMKK+mntCA+IHhpw6g7ICM5OUY0Civpp7UgPiBsw611OyAjOTlGNQor6ae2ID4gasO6OyAjOTlGNgor6ae3ID4gc8WPbmc7ICM5OUY3Civpp7ggPiBxxKtuOyAjOTlGOAor6ae5ID4gbcOhbmc7ICM5OUY5Civpp7ogPiBsacOhbmc7ICM5OUZBCivpp7sgPiBow6BuOyAjOTlGQgor6ae8ID4gdMO6OyAjOTlGQwor6ae9ID4geHXDoG47ICM5OUZECivpp74gPiB0w7lpOyAjOTlGRQor6ae/ID4gasO5bjsgIzk5RkYKK+mogCA+IMOpOyAjOUEwMAor6aiBID4gY2jElW5nOyAjOUEwMQor6aiCID4geMSrbjsgIzlBMDIKK+mogyA+IMOhaTsgIzlBMDMKK+mohCA+IGzDuTsgIzlBMDQKK+mohSA+IHpoxatpOyAjOUEwNQor6aiGID4gemjFjXU7ICM5QTA2CivpqIcgPiBzaMSVOyAjOUEwNwor6aiIID4gcGnDoW47ICM5QTA4CivpqIkgPiBrxatuOyAjOUEwOQor6aiKID4gdMOhbzsgIzlBMEEKK+moiyA+IGzDoWk7ICM5QTBCCivpqIwgPiB6xY1uZzsgIzlBMEMKK+mojSA+IGvDqDsgIzlBMEQKK+mojiA+IHHDrTsgIzlBMEUKK+mojyA+IHHDrTsgIzlBMEYKK+mokCA+IHnDoG47ICM5QTEwCivpqJEgPiBmxJNpOyAjOUExMQor6aiSID4gc8SBbzsgIzlBMTIKK+mokyA+IHnEg247ICM5QTEzCivpqJQgPiBqacOpOyAjOUExNAor6aiVID4gecSDbzsgIzlBMTUKK+moliA+IHfDuTsgIzlBMTYKK+molyA+IHBpw6BuOyAjOUExNwor6aiYID4gY8WNbmc7ICM5QTE4CivpqJkgPiBwacOgbjsgIzlBMTkKK+momiA+IHFpw6FuOyAjOUExQQor6aibID4gZsSTaTsgIzlBMUIKK+monCA+IGh1w6FuZzsgIzlBMUMKK+monSA+IGppxIFuOyAjOUExRAor6aieID4gaMO5bzsgIzlBMUUKK+monyA+IHnDuTsgIzlBMUYKK+mooCA+IHTDrTsgIzlBMjAKK+mooSA+IHF1w6FuOyAjOUEyMQor6aiiID4geGnDoTsgIzlBMjIKK+mooyA+IHrFjW5nOyAjOUEyMwor6aikID4ga8O6aTsgIzlBMjQKK+mopSA+IHLDs3U7ICM5QTI1CivpqKYgPiBzxKs7ICM5QTI2CivpqKcgPiBndcSBOyAjOUEyNwor6aioID4gdMO6bzsgIzlBMjgKK+moqSA+IGvDuWk7ICM5QTI5CivpqKogPiBzxY11OyAjOUEyQQor6airID4gcWnEgW47ICM5QTJCCivpqKwgPiBjaMOpbmc7ICM5QTJDCivpqK0gPiB6aMOsOyAjOUEyRAor6aiuID4gbMOtdTsgIzlBMkUKK+moryA+IHDDoW5nOyAjOUEyRgor6aiwID4gdMOpbmc7ICM5QTMwCivpqLEgPiB4xKs7ICM5QTMxCivpqLIgPiBjxINvOyAjOUEzMgor6aizID4gZMO6OyAjOUEzMwor6ai0ID4gecOgbjsgIzlBMzQKK+motSA+IHl1w6FuOyAjOUEzNQor6ai2ID4gesWNdTsgIzlBMzYKK+motyA+IHPEgW87ICM5QTM3CivpqLggPiBzaMOgbjsgIzlBMzgKK+mouSA+IGzDrTsgIzlBMzkKK+mouiA+IHpow6w7ICM5QTNBCivpqLsgPiBzaHXEg25nOyAjOUEzQgor6ai8ID4gbMO5OyAjOUEzQwor6ai9ID4geMOtOyAjOUEzRAor6ai+ID4gbMO6bzsgIzlBM0UKK+movyA+IHpoxIFuZzsgIzlBM0YKK+mpgCA+IG3DsjsgIzlBNDAKK+mpgSA+IMOhbzsgIzlBNDEKK+mpgiA+IGPEgW47ICM5QTQyCivpqYMgPiBwacOgbzsgIzlBNDMKK+mphCA+IGPFjW5nOyAjOUE0NAor6amFID4gccWrOyAjOUE0NQor6amGID4gYsOsOyAjOUE0Ngor6amHID4gemjDrDsgIzlBNDcKK+mpiCA+IHnDuTsgIzlBNDgKK+mpiSA+IHjFqzsgIzlBNDkKK+mpiiA+IGh1w6E7ICM5QTRBCivpqYsgPiBixY07ICM5QTRCCivpqYwgPiBzw7k7ICM5QTRDCivpqY0gPiB4acSBbzsgIzlBNEQKK+mpjiA+IGzDrW47ICM5QTRFCivpqY8gPiBjaMSDbjsgIzlBNEYKK+mpkCA+IGTFq247ICM5QTUwCivpqZEgPiBsw611OyAjOUE1MQor6amSID4gdMO6bzsgIzlBNTIKK+mpkyA+IHrEk25nOyAjOUE1Mwor6amUID4gdMOhbjsgIzlBNTQKK+mplSA+IGppxIFvOyAjOUE1NQor6amWID4gdGnElTsgIzlBNTYKK+mplyA+IHnDoG47ICM5QTU3CivpqZggPiBsw7pvOyAjOUE1OAor6amZID4gemjEgW47ICM5QTU5CivpqZogPiBqxKtuZzsgIzlBNUEKK+mpmyA+IHnDrDsgIzlBNUIKK+mpnCA+IHnDqDsgIzlBNUMKK+mpnSA+IHTFq287ICM5QTVECivpqZ4gPiBixKtuOyAjOUE1RQor6amfID4gesOydTsgIzlBNUYKK+mpoCA+IHnDoG47ICM5QTYwCivpqaEgPiBww6luZzsgIzlBNjEKK+mpoiA+IGzHmDsgIzlBNjIKK+mpoyA+IHTDqW5nOyAjOUE2Mwor6amkID4geGnEgW5nOyAjOUE2NAor6amlID4gasOsOyAjOUE2NQor6ammID4gc2h1xIFuZzsgIzlBNjYKK+mppyA+IGrDujsgIzlBNjcKK+mpqCA+IHjEqzsgIzlBNjgKK+mpqSA+IGh1xIFuOyAjOUE2OQor6amqID4gbMOtOyAjOUE2QQor6amrID4gYmnEgW87ICM5QTZCCivpqawgPiBtxIM7ICM5QTZDCivpqa0gPiB5w7k7ICM5QTZECivpqa4gPiB0w7pvOyAjOUE2RQor6amvID4geMO6bjsgIzlBNkYKK+mpsCA+IGNow607ICM5QTcwCivpqbEgPiBxxas7ICM5QTcxCivpqbIgPiByw6w7ICM5QTcyCivpqbMgPiBiw7M7ICM5QTczCivpqbQgPiBsx5g7ICM5QTc0CivpqbUgPiB6xINuZzsgIzlBNzUKK+mptiA+IHNoxK07ICM5QTc2CivpqbcgPiBzw6w7ICM5QTc3CivpqbggPiBmw7k7ICM5QTc4CivpqbkgPiBqxas7ICM5QTc5CivpqbogPiB6xY11OyAjOUE3QQor6am7ID4gemjDuTsgIzlBN0IKK+mpvCA+IHTDum87ICM5QTdDCivpqb0gPiBuw7o7ICM5QTdECivpqb4gPiBqacOgOyAjOUE3RQor6am/ID4gecOsOyAjOUE3Rgor6aqAID4gdMOhaTsgIzlBODAKK+mqgSA+IHhpxIFvOyAjOUE4MQor6aqCID4gbcOgOyAjOUE4Mgor6aqDID4gecSrbjsgIzlBODMKK+mqhCA+IGppxIFvOyAjOUE4NAor6aqFID4gaHXDoTsgIzlBODUKK+mqhiA+IGzDuW87ICM5QTg2CivpqocgPiBow6BpOyAjOUE4Nwor6aqIID4gcGnDoW47ICM5QTg4CivpqokgPiBiacSBbzsgIzlBODkKK+mqiiA+IGzDrTsgIzlBOEEKK+mqiyA+IGNoxJVuZzsgIzlBOEIKK+mqjCA+IHnDoG47ICM5QThDCivpqo0gPiB4xKtuOyAjOUE4RAor6aqOID4gccSrbjsgIzlBOEUKK+mqjyA+IGrDuW47ICM5QThGCivpqpAgPiBxw607ICM5QTkwCivpqpEgPiBxw607ICM5QTkxCivpqpIgPiBrw6g7ICM5QTkyCivpqpMgPiB6aMWraTsgIzlBOTMKK+mqlCA+IHrFjW5nOyAjOUE5NAor6aqVID4gc8O5OyAjOUE5NQor6aqWID4gY8SBbjsgIzlBOTYKK+mqlyA+IHBpw6BuOyAjOUE5Nwor6aqYID4gemjDrDsgIzlBOTgKK+mqmSA+IGvDumk7ICM5QTk5CivpqpogPiBzxIFvOyAjOUE5QQor6aqbID4gd8O5OyAjOUE5Qgor6aqcID4gw6FvOyAjOUE5Qwor6aqdID4gbMOtdTsgIzlBOUQKK+mqniA+IHFpxIFuOyAjOUE5RQor6aqfID4gc2jDoG47ICM5QTlGCivpqqAgPiBwacOgbzsgIzlBQTAKK+mqoSA+IGzDum87ICM5QUExCivpqqIgPiBjxY1uZzsgIzlBQTIKK+mqoyA+IGNoxINuOyAjOUFBMwor6aqkID4gesOydTsgIzlBQTQKK+mqpSA+IGrDrDsgIzlBQTUKK+mqpiA+IHNodcSBbmc7ICM5QUE2CivpqqcgPiB4acSBbmc7ICM5QUE3CivpqqggPiBnxa07ICM5QUE4CivpqqkgPiB3xJVpOyAjOUFBOQor6aqqID4gd8SVaTsgIzlBQUEKK+mqqyA+IHfElWk7ICM5QUFCCivpqqwgPiB5w7o7ICM5QUFDCivpqq0gPiBnw6BuOyAjOUFBRAor6aquID4gecOsOyAjOUFBRQor6aqvID4gxIFuZzsgIzlBQUYKK+mqsCA+IHTDs3U7ICM5QUIwCivpqrEgPiB4acOoOyAjOUFCMQor6aqyID4gYsSBbzsgIzlBQjIKK+mqsyA+IGLDrDsgIzlBQjMKK+mqtCA+IGNoxKs7ICM5QUI0CivpqrUgPiB0xK07ICM5QUI1CivpqrYgPiBkxK07ICM5QUI2CivpqrcgPiBrxas7ICM5QUI3CivpqrggPiBow6FpOyAjOUFCOAor6aq5ID4gcWnEgW87ICM5QUI5CivpqrogPiBnw7J1OyAjOUFCQQor6aq7ID4ga3XDoDsgIzlBQkIKK+mqvCA+IGfDqTsgIzlBQkMKK+mqvSA+IHTFrWk7ICM5QUJECivpqr4gPiBnxJVuZzsgIzlBQkUKK+mqvyA+IHBpw6FuOyAjOUFCRgor6auAID4gYsOsOyAjOUFDMAor6auBID4ga8STOyAjOUFDMQor6auCID4ga8OgOyAjOUFDMgor6auDID4gecO6OyAjOUFDMwor6auEID4gc8WtaTsgIzlBQzQKK+mrhSA+IGzDs3U7ICM5QUM1Civpq4YgPiBiw7M7ICM5QUM2Civpq4cgPiB4acSBbzsgIzlBQzcKK+mriCA+IHDDoW5nOyAjOUFDOAor6auJID4gYsWNOyAjOUFDOQor6auKID4gY8SrOyAjOUFDQQor6auLID4ga3XEgW47ICM5QUNCCivpq4wgPiBiw6xuOyAjOUFDQwor6auNID4gbcOzOyAjOUFDRAor6auOID4gbGnDoW87ICM5QUNFCivpq48gPiBsw7N1OyAjOUFDRgor6auQID4gbsOhbzsgIzlBRDAKK+mrkSA+IGTDujsgIzlBRDEKK+mrkiA+IHrEgW5nOyAjOUFEMgor6auTID4gc8WtaTsgIzlBRDMKK+mrlCA+IHTErTsgIzlBRDQKK+mrlSA+IGLDrG47ICM5QUQ1Civpq5YgPiBrdcSBbjsgIzlBRDYKK+mrlyA+IGzDujsgIzlBRDcKK+mrmCA+IGfEgW87ICM5QUQ4Civpq5kgPiBnxIFvOyAjOUFEOQor6auaID4gcWnDoG87ICM5QURBCivpq5sgPiBrxIFvOyAjOUFEQgor6aucID4gcWnEgW87ICM5QURDCivpq50gPiBsw6BvOyAjOUFERAor6aueID4gesOgbzsgIzlBREUKK+mrnyA+IGJpxIFvOyAjOUFERgor6augID4ga8WrbjsgIzlBRTAKK+mroSA+IGvFq247ICM5QUUxCivpq6IgPiB0w6w7ICM5QUUyCivpq6MgPiBmxINuZzsgIzlBRTMKK+mrpCA+IHjEq3U7ICM5QUU0Civpq6UgPiByw6FuOyAjOUFFNQor6aumID4gbcOhbzsgIzlBRTYKK+mrpyA+IGTDoG47ICM5QUU3Civpq6ggPiBrxatuOyAjOUFFOAor6aupID4gYsOsbjsgIzlBRTkKK+mrqiA+IGbDoDsgIzlBRUEKK+mrqyA+IHRpw6FvOyAjOUFFQgor6ausID4gcGVuZzsgIzlBRUMKK+mrrSA+IHrEqzsgIzlBRUQKK+mrriA+IGbEgzsgIzlBRUUKK+mrryA+IHLDoW47ICM5QUVGCivpq7AgPiB0w6w7ICM5QUYwCivpq7EgPiBww6BvOyAjOUFGMQor6auyID4gcMSrOyAjOUFGMgor6auzID4gbcOhbzsgIzlBRjMKK+mrtCA+IGbDujsgIzlBRjQKK+mrtSA+IMOpcjsgIzlBRjUKK+mrtiA+IHLDs25nOyAjOUFGNgor6au3ID4gccWrOyAjOUFGNwor6au4ID4gZ29uZzsgIzlBRjgKK+mruSA+IHjEq3U7ICM5QUY5Civpq7ogPiBndcOgOyAjOUFGQQor6au7ID4gasOsOyAjOUFGQgor6au8ID4gcMOpbmc7ICM5QUZDCivpq70gPiB6aHXEgTsgIzlBRkQKK+mrviA+IHNoxIFvOyAjOUFGRQor6au/ID4gc2jEgTsgIzlBRkYKK+msgCA+IHTDrDsgIzlCMDAKK+msgSA+IGzDrDsgIzlCMDEKK+msgiA+IGLDrG47ICM5QjAyCivprIMgPiB6xY1uZzsgIzlCMDMKK+mshCA+IHTDrDsgIzlCMDQKK+mshSA+IHDDqW5nOyAjOUIwNQor6ayGID4gc8WNbmc7ICM5QjA2CivprIcgPiB6aMSTbmc7ICM5QjA3CivprIggPiBxdcOhbjsgIzlCMDgKK+msiSA+IHrFjW5nOyAjOUIwOQor6ayKID4gc2jDuW47ICM5QjBBCivprIsgPiBqacSBbjsgIzlCMEIKK+msjCA+IGTFrW87ICM5QjBDCivprI0gPiBow7o7ICM5QjBECivprI4gPiBsw6A7ICM5QjBFCivprI8gPiBqxKt1OyAjOUIwRgor6ayQID4gccOtOyAjOUIxMAor6ayRID4gbGnDoW47ICM5QjExCivprJIgPiB6aMSVbjsgIzlCMTIKK+mskyA+IGLDrG47ICM5QjEzCivprJQgPiBww6luZzsgIzlCMTQKK+mslSA+IG3DsjsgIzlCMTUKK+msliA+IHPEgW47ICM5QjE2CivprJcgPiBtw6BuOyAjOUIxNwor6ayYID4gbcOhbjsgIzlCMTgKK+msmSA+IHPEk25nOyAjOUIxOQor6ayaID4geMWrOyAjOUIxQQor6aybID4gbGnDqDsgIzlCMUIKK+msnCA+IHFpxIFuOyAjOUIxQwor6aydID4gcWnEgW47ICM5QjFECivprJ4gPiBuw7NuZzsgIzlCMUUKK+msnyA+IGh1w6FuOyAjOUIxRgor6aygID4ga3XDoGk7ICM5QjIwCivprKEgPiBuw61uZzsgIzlCMjEKK+msoiA+IGLDrG47ICM5QjIyCivprKMgPiBsacOoOyAjOUIyMwor6aykID4gcsOhbmc7ICM5QjI0CivprKUgPiBkw7J1OyAjOUIyNQor6aymID4gZMOydTsgIzlCMjYKK+mspyA+IG7DoG87ICM5QjI3CivprKggPiBoxY1uZzsgIzlCMjgKK+msqSA+IHjDrDsgIzlCMjkKK+msqiA+IGTDsnU7ICM5QjJBCivprKsgPiBoxINuOyAjOUIyQgor6aysID4gZMOydTsgIzlCMkMKK+msrSA+IGTDsnU7ICM5QjJECivprK4gPiBqxKt1OyAjOUIyRQor6ayvID4gY2jDoG5nOyAjOUIyRgor6aywID4gecO5OyAjOUIzMAor6ayxID4gecO5OyAjOUIzMQor6ayyID4gbMOsOyAjOUIzMgor6ayzID4ganXDoG47ICM5QjMzCivprLQgPiBmxa07ICM5QjM0CivprLUgPiBxacOhbjsgIzlCMzUKK+mstiA+IGfFq2k7ICM5QjM2CivprLcgPiB6xY1uZzsgIzlCMzcKK+msuCA+IGzDrHU7ICM5QjM4CivprLkgPiBnxatpOyAjOUIzOQor6ay6ID4gc2jEgW5nOyAjOUIzQQor6ay7ID4gecO5OyAjOUIzQgor6ay8ID4gZ8WtaTsgIzlCM0MKK+msvSA+IG3DqGk7ICM5QjNECivprL4gPiBqw6w7ICM5QjNFCivprL8gPiBxw607ICM5QjNGCivprYAgPiBqacOoOyAjOUI0MAor6a2BID4ga8O6aTsgIzlCNDEKK+mtgiA+IGjDum47ICM5QjQyCivprYMgPiBiw6E7ICM5QjQzCivprYQgPiBww7I7ICM5QjQ0CivprYUgPiBtw6hpOyAjOUI0NQor6a2GID4geMO5OyAjOUI0Ngor6a2HID4gecSDbjsgIzlCNDcKK+mtiCA+IHhpxIFvOyAjOUI0OAor6a2JID4gbGnEg25nOyAjOUI0OQor6a2KID4gecO5OyAjOUI0QQor6a2LID4gdMO6aTsgIzlCNEIKK+mtjCA+IHHEqzsgIzlCNEMKK+mtjSA+IHfEg25nOyAjOUI0RAor6a2OID4gbGnEg25nOyAjOUI0RQor6a2PID4gd8OoaTsgIzlCNEYKK+mtkCA+IGppxIFuOyAjOUI1MAor6a2RID4gY2jEqzsgIzlCNTEKK+mtkiA+IHBpxIFvOyAjOUI1Mgor6a2TID4gYsOsOyAjOUI1Mwor6a2UID4gbcOzOyAjOUI1NAor6a2VID4gasStOyAjOUI1NQor6a2WID4geMWrOyAjOUI1Ngor6a2XID4gY2jFj3U7ICM5QjU3CivprZggPiB5xINuOyAjOUI1OAor6a2ZID4gemjEg247ICM5QjU5CivprZogPiB5w7o7ICM5QjVBCivprZsgPiBkxIFvOyAjOUI1Qgor6a2cID4gcsOpbjsgIzlCNUMKK+mtnSA+IGrDrDsgIzlCNUQKK+mtnyA+IGfFjW5nOyAjOUI1Rgor6a2gID4gdMO6bzsgIzlCNjAKK+mtoSA+IGRpw6BvOyAjOUI2MQor6a2iID4gasStOyAjOUI2Mgor6a2jID4geMO5OyAjOUI2Mwor6a2kID4gw6k7ICM5QjY0CivpraUgPiDDqDsgIzlCNjUKK+mtpiA+IHNoxIE7ICM5QjY2CivpracgPiBow6FuZzsgIzlCNjcKK+mtqCA+IHTDum47ICM5QjY4CivprakgPiBtw7I7ICM5QjY5CivpraogPiBqacOoOyAjOUI2QQor6a2rID4gc2jElW47ICM5QjZCCivprawgPiBmxINuOyAjOUI2Qwor6a2tID4geXXDoW47ICM5QjZECivpra4gPiBiw607ICM5QjZFCivpra8gPiBsxa07ICM5QjZGCivprbAgPiB3w6luOyAjOUI3MAor6a2xID4gaMO6OyAjOUI3MQor6a2yID4gbMO6OyAjOUI3Mgor6a2zID4gesOhOyAjOUI3Mwor6a20ID4gZsOhbmc7ICM5Qjc0CivprbUgPiBmw6luOyAjOUI3NQor6a22ID4gbsOgOyAjOUI3Ngor6a23ID4gecOzdTsgIzlCNzcKK+mtuiA+IGjDqTsgIzlCN0EKK+mtuyA+IHhpw6E7ICM5QjdCCivprbwgPiBxxas7ICM5QjdDCivprb0gPiBoxIFuOyAjOUI3RAor6a2+ID4gcMOtOyAjOUI3RQor6a2/ID4gbMOtbmc7ICM5QjdGCivproAgPiB0w7pvOyAjOUI4MAor6a6BID4gYsWNOyAjOUI4MQor6a6CID4gccOtdTsgIzlCODIKK+mugyA+IHDDrW5nOyAjOUI4Mwor6a6EID4gZsO6OyAjOUI4NAor6a6FID4gYsOsOyAjOUI4NQor6a6GID4gasOsOyAjOUI4Ngor6a6HID4gd8OoaTsgIzlCODcKK+muiCA+IGrFqzsgIzlCODgKK+muiSA+IGRpxIFvOyAjOUI4OQor6a6KID4gYsOzOyAjOUI4QQor6a6LID4gecOzdTsgIzlCOEIKK+mujCA+IGfFrW47ICM5QjhDCivpro0gPiBwxKs7ICM5QjhECivpro4gPiBuacOhbjsgIzlCOEUKK+mujyA+IHjEq25nOyAjOUI4Rgor6a6QID4gdMOhaTsgIzlCOTAKK+mukSA+IGLDoG87ICM5QjkxCivprpIgPiBmw7k7ICM5QjkyCivprpMgPiB6aMSDOyAjOUI5Mwor6a6UID4gasO5OyAjOUI5NAor6a6VID4gZ8WrOyAjOUI5NQor6a6ZID4gdMOgOyAjOUI5OQor6a6aID4gamnDqTsgIzlCOUEKK+mumyA+IHNow7k7ICM5QjlCCivprpwgPiBow7J1OyAjOUI5Qwor6a6dID4geGnEg25nOyAjOUI5RAor6a6eID4gw6lyOyAjOUI5RQor6a6fID4gw6BuOyAjOUI5Rgor6a6gID4gd8OpaTsgIzlCQTAKK+muoSA+IHRpxIFvOyAjOUJBMQor6a6iID4gemjFqzsgIzlCQTIKK+muoyA+IHnDrG47ICM5QkEzCivprqQgPiBsacOoOyAjOUJBNAor6a6lID4gbMO5bzsgIzlCQTUKK+mupiA+IHTDs25nOyAjOUJBNgor6a6nID4gecOtOyAjOUJBNwor6a6oID4gccOtOyAjOUJBOAor6a6pID4gYsOsbmc7ICM5QkE5CivprqogPiB3xJVpOyAjOUJBQQor6a6rID4gamnEg287ICM5QkFCCivprqwgPiBiw7k7ICM5QkFDCivprq0gPiBnxatpOyAjOUJBRAor6a6uID4geGnEgW47ICM5QkFFCivprq8gPiBnw6k7ICM5QkFGCivprrAgPiBow7ppOyAjOUJCMAor6a6zID4ga8SDbzsgIzlCQjMKK+mutSA+IGTDum87ICM5QkI1CivprrYgPiBqxatuOyAjOUJCNgor6a63ID4gdMOtOyAjOUJCNwor6a64ID4gbcSDbjsgIzlCQjgKK+muuSA+IHhpxIFvOyAjOUJCOQor6a66ID4gesSDOyAjOUJCQQor6a67ID4gc2jEgTsgIzlCQkIKK+muvCA+IHHEq247ICM5QkJDCivprr0gPiB5w7o7ICM5QkJECivprr4gPiBuxJVpOyAjOUJCRQor6a6/ID4gemjDqTsgIzlCQkYKK+mvgCA+IGfFrW47ICM5QkMwCivpr4EgPiBnxJVuZzsgIzlCQzEKK+mvgiA+IHN1OyAjOUJDMgor6a+DID4gd8O6OyAjOUJDMwor6a+EID4gccOtdTsgIzlCQzQKK+mvhSA+IHTDrW5nOyAjOUJDNQor6a+GID4gZsWtOyAjOUJDNgor6a+HID4gd8SDbjsgIzlCQzcKK+mviCA+IHnDs3U7ICM5QkM4Civpr4kgPiBsxK07ICM5QkM5Civpr4ogPiBzaMSBOyAjOUJDQQor6a+LID4gc2jEgTsgIzlCQ0IKK+mvjCA+IGfDoG87ICM5QkNDCivpr40gPiBtw6luZzsgIzlCQ0QKK+mvkiA+IHnFj25nOyAjOUJEMgor6a+TID4gbsOtOyAjOUJEMwor6a+UID4gesSrOyAjOUJENAor6a+VID4gccOtOyAjOUJENQor6a+WID4gccSrbmc7ICM5QkQ2Civpr5cgPiB4acSDbmc7ICM5QkQ3Civpr5ggPiBuxJVpOyAjOUJEOAor6a+ZID4gY2jDum47ICM5QkQ5Civpr5ogPiBqw6w7ICM5QkRBCivpr5sgPiBkacSBbzsgIzlCREIKK+mvnCA+IHFpw6g7ICM5QkRDCivpr50gPiBnw7k7ICM5QkRECivpr54gPiB6aMWPdTsgIzlCREUKK+mvnyA+IGTFjW5nOyAjOUJERgor6a+gID4gbMOhaTsgIzlCRTAKK+mvoSA+IGbEk2k7ICM5QkUxCivpr6IgPiBuw607ICM5QkUyCivpr6MgPiB5w6w7ICM5QkUzCivpr6QgPiBrxatuOyAjOUJFNAor6a+lID4gbMO5OyAjOUJFNQor6a+mID4gasOsdTsgIzlCRTYKK+mvpyA+IGNoxIFuZzsgIzlCRTcKK+mvqCA+IGrEq25nOyAjOUJFOAor6a+pID4gbMO6bjsgIzlCRTkKK+mvqiA+IGzDrW5nOyAjOUJFQQor6a+rID4gesWNdTsgIzlCRUIKK+mvrCA+IGzDrTsgIzlCRUMKK+mvrSA+IG3ElW5nOyAjOUJFRAor6a+uID4gesWNbmc7ICM5QkVFCivpr68gPiB6aMOsOyAjOUJFRgor6a+wID4gbmnDoW47ICM5QkYwCivpr7QgPiBzaMSrOyAjOUJGNAor6a+1ID4gc2jEk247ICM5QkY1Civpr7YgPiBoxa1uOyAjOUJGNgor6a+3ID4gc2jDrDsgIzlCRjcKK+mvuCA+IGjDs3U7ICM5QkY4Civpr7kgPiB4xKtuZzsgIzlCRjkKK+mvuiA+IHpoxas7ICM5QkZBCivpr7sgPiBsw6A7ICM5QkZCCivpr7wgPiB6xY1uZzsgIzlCRkMKK+mvvSA+IGrDrDsgIzlCRkQKK+mvviA+IGJpxIFuOyAjOUJGRQor6a+/ID4gYmnEgW47ICM5QkZGCivpsIAgPiBodcOgbjsgIzlDMDAKK+mwgSA+IHF1w6FuOyAjOUMwMQor6bCCID4gesOpOyAjOUMwMgor6bCDID4gd8STaTsgIzlDMDMKK+mwhCA+IHfEk2k7ICM5QzA0CivpsIUgPiB5w7o7ICM5QzA1CivpsIYgPiBxxatuOyAjOUMwNgor6bCHID4gcsOzdTsgIzlDMDcKK+mwiCA+IGRpw6k7ICM5QzA4CivpsIkgPiBodcOhbmc7ICM5QzA5CivpsIogPiBsacOgbjsgIzlDMEEKK+mwiyA+IHnEg247ICM5QzBCCivpsIwgPiBxw611OyAjOUMwQwor6bCNID4gccSrdTsgIzlDMEQKK+mwjiA+IGppw6BuOyAjOUMwRQor6bCPID4gYsOsOyAjOUMwRgor6bCQID4gw6g7ICM5QzEwCivpsJEgPiB5w6FuZzsgIzlDMTEKK+mwkiA+IGbDuTsgIzlDMTIKK+mwkyA+IHPEgWk7ICM5QzEzCivpsJQgPiBqacSDbjsgIzlDMTQKK+mwlSA+IHhpw6E7ICM5QzE1CivpsJYgPiB0xa1vOyAjOUMxNgor6bCXID4gaMO6OyAjOUMxNwor6bCZID4gcsO5bzsgIzlDMTkKK+mwmyA+IHfEk247ICM5QzFCCivpsJwgPiBqacSBbjsgIzlDMUMKK+mwnSA+IGjDoG87ICM5QzFECivpsJ4gPiB3xas7ICM5QzFFCivpsJ8gPiBmw6FuZzsgIzlDMUYKK+mwoCA+IHPEgW87ICM5QzIwCivpsKEgPiBsw611OyAjOUMyMQor6bCiID4gbcSDOyAjOUMyMgor6bCjID4gc2jDrTsgIzlDMjMKK+mwpCA+IHNoxKs7ICM5QzI0CivpsKUgPiB5w61uOyAjOUMyNQor6bCmID4gesyEOyAjOUMyNgor6bCnID4gdMOpbmc7ICM5QzI3CivpsKggPiB0w6A7ICM5QzI4CivpsKkgPiB5w6FvOyAjOUMyOQor6bCqID4gZ8OpOyAjOUMyQQor6bCrID4gcsOzbmc7ICM5QzJCCivpsKwgPiBxacOhbjsgIzlDMkMKK+mwrSA+IHHDrTsgIzlDMkQKK+mwriA+IHfEk247ICM5QzJFCivpsK8gPiByw7lvOyAjOUMyRgor6bCxID4gbGnDoW47ICM5QzMxCivpsLIgPiDDoW87ICM5QzMyCivpsLMgPiBsw6g7ICM5QzMzCivpsLQgPiBoxatpOyAjOUMzNAor6bC1ID4gbcStbjsgIzlDMzUKK+mwtiA+IGrDrDsgIzlDMzYKK+mwtyA+IHRpw6FvOyAjOUMzNwor6bC4ID4gccWrOyAjOUMzOAor6bC5ID4gamnEgW47ICM5QzM5CivpsLogPiBzxIFvOyAjOUMzQQor6bC7ID4gbcOhbjsgIzlDM0IKK+mwvCA+IHjDrTsgIzlDM0MKK+mwvSA+IHHDrXU7ICM5QzNECivpsL4gPiBiacOgbzsgIzlDM0UKK+mwvyA+IGrEqzsgIzlDM0YKK+mxgCA+IGrDrDsgIzlDNDAKK+mxgSA+IHpow7o7ICM5QzQxCivpsYIgPiBqacSBbmc7ICM5QzQyCivpsYMgPiBxxKt1OyAjOUM0Mwor6bGEID4gemh1xIFuOyAjOUM0NAor6bGFID4gecOzbmc7ICM5QzQ1CivpsYYgPiB6aMSBbmc7ICM5QzQ2CivpsYcgPiBrxIFuZzsgIzlDNDcKK+mxiCA+IHh1xJU7ICM5QzQ4CivpsYkgPiBiacSTOyAjOUM0OQor6bGKID4ganXDqTsgIzlDNEEKK+mxiyA+IHHFqzsgIzlDNEIKK+mxjCA+IHhpw6BuZzsgIzlDNEMKK+mxjSA+IGLFjTsgIzlDNEQKK+mxjiA+IGppxIFvOyAjOUM0RQor6bGPID4geMO6bjsgIzlDNEYKK+mxkCA+IHPDuTsgIzlDNTAKK+mxkSA+IGh1w6FuZzsgIzlDNTEKK+mxkiA+IHrDuW47ICM5QzUyCivpsZMgPiBzaMOgbjsgIzlDNTMKK+mxlCA+IHNow6BuOyAjOUM1NAor6bGVID4gZsSBbjsgIzlDNTUKK+mxliA+IGp1w6k7ICM5QzU2CivpsZcgPiBsw61uOyAjOUM1Nwor6bGYID4geMO6bjsgIzlDNTgKK+mxmSA+IG1pw6FvOyAjOUM1OQor6bGaID4geMStOyAjOUM1QQor6bGdID4gZsOobjsgIzlDNUQKK+mxniA+IGd1xIFuOyAjOUM1RQor6bGfID4gaMOydTsgIzlDNUYKK+mxoCA+IGt1w6BpOyAjOUM2MAor6bGhID4gesOpaTsgIzlDNjEKK+mxoiA+IHPEgW87ICM5QzYyCivpsaMgPiB6aMSBbjsgIzlDNjMKK+mxpCA+IGfEg247ICM5QzY0CivpsaUgPiBnw7lpOyAjOUM2NQor6bGmID4gc2jDqW5nOyAjOUM2Ngor6bGnID4gbMStOyAjOUM2Nwor6bGoID4gY2jDoW5nOyAjOUM2OAor6bGsID4gcsO6OyAjOUM2Qwor6bGtID4gasOsOyAjOUM2RAor6bGuID4geMO5OyAjOUM2RQor6bGvID4gaMO5bzsgIzlDNkYKK+mxsSA+IGzDrDsgIzlDNzEKK+mxsiA+IGxpw6g7ICM5QzcyCivpsbMgPiBsw6w7ICM5QzczCivpsbQgPiBtacOoOyAjOUM3NAor6bG1ID4gemjEk247ICM5Qzc1CivpsbYgPiB4acSDbmc7ICM5Qzc2CivpsbcgPiDDqDsgIzlDNzcKK+mxuCA+IGzDujsgIzlDNzgKK+mxuSA+IGd1w6BuOyAjOUM3OQor6bG6ID4gbMOtOyAjOUM3QQor6bG7ID4geGnEgW47ICM5QzdCCivpsbwgPiB5w7o7ICM5QzdDCivpsb0gPiBkxIFvOyAjOUM3RAor6bG+ID4gasStOyAjOUM3RQor6bG/ID4gecOzdTsgIzlDN0YKK+mygCA+IHTDum47ICM5QzgwCivpsoEgPiBsxa07ICM5QzgxCivpsoIgPiBmw6FuZzsgIzlDODIKK+mygyA+IGLEgTsgIzlDODMKK+myhCA+IGjDqTsgIzlDODQKK+myhSA+IGLFjTsgIzlDODUKK+myhiA+IHDDrW5nOyAjOUM4Ngor6bKHID4gbmnDoW47ICM5Qzg3CivpsoggPiBsw7o7ICM5Qzg4CivpsokgPiB5w7N1OyAjOUM4OQor6bKKID4gemjEgzsgIzlDOEEKK+myiyA+IGbDuTsgIzlDOEIKK+myjCA+IGLDszsgIzlDOEMKK+myjSA+IGLDoG87ICM5QzhECivpso4gPiBow7J1OyAjOUM4RQor6bKPID4gcMSrOyAjOUM4Rgor6bKQID4gdMOhaTsgIzlDOTAKK+mykSA+IGfFq2k7ICM5QzkxCivpspIgPiBqacOpOyAjOUM5Mgor6bKTID4ga8SDbzsgIzlDOTMKK+mylCA+IHfElWk7ICM5Qzk0CivpspUgPiDDqXI7ICM5Qzk1CivpspYgPiB0w7NuZzsgIzlDOTYKK+mylyA+IHrDqTsgIzlDOTcKK+mymCA+IGjDsnU7ICM5Qzk4CivpspkgPiBrdcOgaTsgIzlDOTkKK+mymiA+IGrDrDsgIzlDOUEKK+mymyA+IGppxINvOyAjOUM5Qgor6bKcID4geGnEgW47ICM5QzlDCivpsp0gPiB6xIM7ICM5QzlECivpsp4gPiB4acSDbmc7ICM5QzlFCivpsp8gPiB4w7puOyAjOUM5Rgor6bKgID4gZ8SVbmc7ICM5Q0EwCivpsqEgPiBsw607ICM5Q0ExCivpsqIgPiBsacOhbjsgIzlDQTIKK+myoyA+IGppxIFuOyAjOUNBMwor6bKkID4gbMStOyAjOUNBNAor6bKlID4gc2jDrTsgIzlDQTUKK+mypiA+IHRpw6FvOyAjOUNBNgor6bKnID4gZ8WtbjsgIzlDQTcKK+myqCA+IHNoxIE7ICM5Q0E4CivpsqkgPiB3xINuOyAjOUNBOQor6bKqID4gasWrbjsgIzlDQUEKK+myqyA+IGrDrDsgIzlDQUIKK+myrCA+IHnFj25nOyAjOUNBQwor6bKtID4gccSrbmc7ICM5Q0FECivpsq4gPiBsw61uZzsgIzlDQUUKK+myryA+IHHDrTsgIzlDQUYKK+mysCA+IHrFjXU7ICM5Q0IwCivpsrEgPiBmxJNpOyAjOUNCMQor6bKyID4ga8WrbjsgIzlDQjIKK+mysyA+IGNoxIFuZzsgIzlDQjMKK+mytCA+IGfDuTsgIzlDQjQKK+mytSA+IG7DrTsgIzlDQjUKK+mytiA+IG5pw6FuOyAjOUNCNgor6bK3ID4gZGnEgW87ICM5Q0I3CivpsrggPiBqxKtuZzsgIzlDQjgKK+myuSA+IHNoxJNuOyAjOUNCOQor6bK6ID4gc2jEqzsgIzlDQkEKK+myuyA+IHrEqzsgIzlDQkIKK+myvCA+IGbDqG47ICM5Q0JDCivpsr0gPiBkacOpOyAjOUNCRAor6bK+ID4gYsOsOyAjOUNCRQor6bK/ID4gY2jDoW5nOyAjOUNCRgor6bOAID4gc2jDrDsgIzlDQzAKK+mzgSA+IHfEk247ICM5Q0MxCivps4IgPiB3xJNpOyAjOUNDMgor6bODID4gc8SBaTsgIzlDQzMKK+mzhCA+IMOoOyAjOUNDNAor6bOFID4gccSrdTsgIzlDQzUKK+mzhiA+IGbDuTsgIzlDQzYKK+mzhyA+IGh1w6FuZzsgIzlDQzcKK+mziCA+IHF1w6FuOyAjOUNDOAor6bOJID4gamnEgW5nOyAjOUNDOQor6bOKID4gYmnEgW47ICM5Q0NBCivps4sgPiBzxIFvOyAjOUNDQgor6bOMID4gw6FvOyAjOUNDQwor6bONID4gccOtOyAjOUNDRAor6bOOID4gdMOgOyAjOUNDRQor6bOPID4gecOtbjsgIzlDQ0YKK+mzkCA+IHnDoW87ICM5Q0QwCivps5EgPiBmw6FuZzsgIzlDRDEKK+mzkiA+IGppxIFuOyAjOUNEMgor6bOTID4gbMOoOyAjOUNEMwor6bOUID4gYmnDoG87ICM5Q0Q0Civps5UgPiB4dcSVOyAjOUNENQor6bOWID4gYmnEkzsgIzlDRDYKK+mzlyA+IG3DoW47ICM5Q0Q3Civps5ggPiBtxK1uOyAjOUNEOAor6bOZID4gecOzbmc7ICM5Q0Q5Civps5ogPiB3w6hpOyAjOUNEQQor6bObID4geMOtOyAjOUNEQgor6bOcID4ganXDqTsgIzlDREMKK+mznSA+IHNow6BuOyAjOUNERAor6bOeID4gbMOtbjsgIzlDREUKK+mznyA+IHrDuW47ICM5Q0RGCivps6AgPiBow7lvOyAjOUNFMAor6bOhID4gZ8SDbjsgIzlDRTEKK+mzoiA+IGzErTsgIzlDRTIKK+mzoyA+IHpoxIFuOyAjOUNFMwor6bOkID4gZ3XEg247ICM5Q0U0Civps6UgPiBuacSDbzsgIzlDRTUKK+mzpiA+IHnErTsgIzlDRTYKK+mzpyA+IGbDujsgIzlDRTcKK+mzqCA+IGzDrDsgIzlDRTgKK+mzqSA+IGrEq3U7ICM5Q0U5Civps6ogPiBixa07ICM5Q0VBCivps6sgPiB5w6BuOyAjOUNFQgor6bOsID4gZsO6OyAjOUNFQwor6bOtID4gZGnEgW87ICM5Q0VECivps64gPiBqxKs7ICM5Q0VFCivps68gPiBmw6huZzsgIzlDRUYKK+mzsSA+IGfEgW47ICM5Q0YxCivps7IgPiBzaMSrOyAjOUNGMgor6bOzID4gZsOobmc7ICM5Q0YzCivps7QgPiBtw61uZzsgIzlDRjQKK+mztSA+IGLEg287ICM5Q0Y1Civps7YgPiB5dcSBbjsgIzlDRjYKK+mztyA+IHpoxKs7ICM5Q0Y3Civps7ggPiBow7k7ICM5Q0Y4Civps7kgPiBxw61uOyAjOUNGOQor6bO6ID4gZsWrOyAjOUNGQQor6bO7ID4gZsSTbjsgIzlDRkIKK+mzvCA+IHfDqW47ICM5Q0ZDCivps70gPiBqacSBbjsgIzlDRkQKK+mzviA+IHNoxKs7ICM5Q0ZFCivps78gPiB5w7k7ICM5Q0ZGCivptIAgPiBmxY91OyAjOUQwMAor6bSBID4geWnEgW87ICM5RDAxCivptIIgPiBqdcOoOyAjOUQwMgor6bSDID4ganXDqTsgIzlEMDMKK+m0hCA+IHDEqzsgIzlEMDQKK+m0hSA+IGh1xIFuOyAjOUQwNQor6bSGID4gemjDqG47ICM5RDA2CivptIcgPiBixINvOyAjOUQwNwor6bSIID4gecOgbjsgIzlEMDgKK+m0iSA+IHnEgTsgIzlEMDkKK+m0iiA+IHpow6huZzsgIzlEMEEKK+m0iyA+IGbEgW5nOyAjOUQwQgor6bSMID4gZsOobmc7ICM5RDBDCivptI0gPiB3w6luOyAjOUQwRAor6bSOID4gxY11OyAjOUQwRQor6bSPID4gdMOoOyAjOUQwRgor6bSQID4gamnEgTsgIzlEMTAKK+m0kSA+IG7DujsgIzlEMTEKK+m0kiA+IGzDrW5nOyAjOUQxMgor6bSTID4gbWnDqDsgIzlEMTMKK+m0lCA+IGbDujsgIzlEMTQKK+m0lSA+IHTDum87ICM5RDE1CivptJYgPiB3w6luOyAjOUQxNgor6bSXID4gbMOsOyAjOUQxNwor6bSYID4gYmnDoG47ICM5RDE4CivptJkgPiB6aMOsOyAjOUQxOQor6bSaID4gZ8STOyAjOUQxQQor6bSbID4geXXEgW47ICM5RDFCCivptJwgPiB6xKs7ICM5RDFDCivptJ0gPiBxw7o7ICM5RDFECivptJ4gPiB4acSBbzsgIzlEMUUKK+m0nyA+IHpoxKs7ICM5RDFGCivptKAgPiBkw6BuOyAjOUQyMAor6bShID4gasWrOyAjOUQyMQor6bSiID4gecOydTsgIzlEMjIKK+m0oyA+IGfFqzsgIzlEMjMKK+m0pCA+IHpoxY1uZzsgIzlEMjQKK+m0pSA+IHnDuTsgIzlEMjUKK+m0piA+IHnEgW5nOyAjOUQyNgor6bSnID4gcsOybmc7ICM5RDI3CivptKggPiB5xIE7ICM5RDI4CivptKkgPiB0acSVOyAjOUQyOQor6bSqID4gecO5OyAjOUQyQQor6bSsID4gecSrbmc7ICM5RDJDCivptK0gPiB6aMWraTsgIzlEMkQKK+m0riA+IHfFqzsgIzlEMkUKK+m0ryA+IMOpcjsgIzlEMkYKK+m0sCA+IGd1xIE7ICM5RDMwCivptLEgPiDDoGk7ICM5RDMxCivptLIgPiB6aMSrOyAjOUQzMgor6bSzID4gecOgbjsgIzlEMzMKK+m0tCA+IGjDqW5nOyAjOUQzNAor6bS1ID4gamnEgW87ICM5RDM1CivptLYgPiBqw607ICM5RDM2CivptLcgPiBsacOoOyAjOUQzNwor6bS4ID4gemjFqzsgIzlEMzgKK+m0uSA+IHLDqW47ICM5RDM5CivptLogPiB5w607ICM5RDNBCivptLsgPiBow7NuZzsgIzlEM0IKK+m0vCA+IGzDuW87ICM5RDNDCivptL0gPiByw7o7ICM5RDNECivptL4gPiBtw7N1OyAjOUQzRQor6bS/ID4gZ8STOyAjOUQzRgor6bWAID4gcsOobjsgIzlENDAKK+m1gSA+IGppxIFvOyAjOUQ0MQor6bWCID4geMSrdTsgIzlENDIKK+m1gyA+IHpoxY11OyAjOUQ0Mwor6bWEID4gemjEqzsgIzlENDQKK+m1hSA+IGzDuW87ICM5RDQ1CivptYkgPiBsdcOhbjsgIzlENDkKK+m1iiA+IGppw6E7ICM5RDRBCivptYsgPiBqw6w7ICM5RDRCCivptYwgPiB5w7o7ICM5RDRDCivptY0gPiBodcSBbjsgIzlENEQKK+m1jiA+IHTFrW87ICM5RDRFCivptY8gPiBixas7ICM5RDRGCivptZAgPiB3w7o7ICM5RDUwCivptZEgPiBqdcSBbjsgIzlENTEKK+m1kiA+IHnDuTsgIzlENTIKK+m1kyA+IGLDszsgIzlENTMKK+m1lCA+IHjDuW47ICM5RDU0CivptZUgPiB4w7luOyAjOUQ1NQor6bWWID4gYsOsOyAjOUQ1Ngor6bWXID4geMSrOyAjOUQ1Nwor6bWYID4gasO5bjsgIzlENTgKK+m1mSA+IGrDujsgIzlENTkKK+m1miA+IHTDujsgIzlENUEKK+m1myA+IGrEq25nOyAjOUQ1Qgor6bWcID4gdMOtOyAjOUQ1Qwor6bWdID4gw6k7ICM5RDVECivptZ4gPiDDqTsgIzlENUUKK+m1nyA+IGt1w6FuZzsgIzlENUYKK+m1oCA+IGjDujsgIzlENjAKK+m1oSA+IHfFrTsgIzlENjEKK+m1oiA+IHNoxJNuOyAjOUQ2Mgor6bWjID4gbMOgaTsgIzlENjMKK+m1piA+IGzDuTsgIzlENjYKK+m1pyA+IHDDrW5nOyAjOUQ2Nwor6bWoID4gc2jFqzsgIzlENjgKK+m1qSA+IGbDujsgIzlENjkKK+m1qiA+IMSBbjsgIzlENkEKK+m1qyA+IHpow6BvOyAjOUQ2Qgor6bWsID4gcMOpbmc7ICM5RDZDCivpta0gPiBxw61uOyAjOUQ2RAor6bWuID4gcWnEgW47ICM5RDZFCivpta8gPiBixJNpOyAjOUQ2Rgor6bWwID4gZGnEgW87ICM5RDcwCivptbEgPiBsw7k7ICM5RDcxCivptbIgPiBxdcOoOyAjOUQ3Mgor6bWzID4gamnEgW47ICM5RDczCivptbQgPiBqw7o7ICM5RDc0CivptbUgPiB0w7k7ICM5RDc1CivptbYgPiB5xIE7ICM5RDc2CivptbcgPiB5dcSBbjsgIzlENzcKK+m1uCA+IHHDrTsgIzlENzgKK+m1uSA+IGzDrTsgIzlENzkKK+m1uiA+IHnDqDsgIzlEN0EKK+m1uyA+IHpoxatpOyAjOUQ3Qgor6bW8ID4ga8WNbmc7ICM5RDdDCivptb0gPiB6aMO5aTsgIzlEN0QKK+m1viA+IGvFq247ICM5RDdFCivptb8gPiBzaMSTbmc7ICM5RDdGCivptoAgPiBxw607ICM5RDgwCivptoEgPiBqxKtuZzsgIzlEODEKK+m2giA+IHnDrDsgIzlEODIKK+m2gyA+IHnDrDsgIzlEODMKK+m2hCA+IGrEq25nOyAjOUQ4NAor6baFID4gesSrOyAjOUQ4NQor6baGID4gbMOhaTsgIzlEODYKK+m2hyA+IGTFjW5nOyAjOUQ4Nwor6baIID4gccSrOyAjOUQ4OAor6baJID4gY2jDum47ICM5RDg5CivptoogPiBnxJNuZzsgIzlEOEEKK+m2iyA+IGrFqzsgIzlEOEIKK+m2jCA+IHHFqzsgIzlEOEMKK+m2jyA+IGrEqzsgIzlEOEYKK+m2kCA+IHNow7k7ICM5RDkwCivptpIgPiBjaMOsOyAjOUQ5Mgor6baTID4gbWnDoW87ICM5RDkzCivptpQgPiByw7N1OyAjOUQ5NAor6baVID4gxIFuOyAjOUQ5NQor6baWID4gccSrdTsgIzlEOTYKK+m2lyA+IHTDrTsgIzlEOTcKK+m2mCA+IGjDujsgIzlEOTgKK+m2mSA+IHTDrTsgIzlEOTkKK+m2miA+IMOoOyAjOUQ5QQor6babID4gamnEkzsgIzlEOUIKK+m2nCA+IG3DoW87ICM5RDlDCivptp0gPiBmw7o7ICM5RDlECivptp4gPiBjaMWrbjsgIzlEOUUKK+m2nyA+IHTDujsgIzlEOUYKK+m2oCA+IHnEg247ICM5REEwCivptqEgPiBow6k7ICM5REExCivptqIgPiB5dcOhbjsgIzlEQTIKK+m2oyA+IHBpxIFuOyAjOURBMwor6bakID4gecO5bjsgIzlEQTQKK+m2pSA+IG3DqWk7ICM5REE1CivptqYgPiBow7o7ICM5REE2CivptqcgPiB5xKtuZzsgIzlEQTcKK+m2qCA+IGTDuW47ICM5REE4CivptqkgPiBtw7k7ICM5REE5CivptqogPiBqw7o7ICM5REFBCivptqwgPiBjxIFuZzsgIzlEQUMKK+m2rSA+IGbEg25nOyAjOURBRAor6bauID4gZ8O5OyAjOURBRQor6bavID4gecSrbmc7ICM5REFGCivptrAgPiB5dcOhbjsgIzlEQjAKK+m2sSA+IHh1xIFuOyAjOURCMQor6bayID4gd8STbmc7ICM5REIyCivptrMgPiBzaMSrOyAjOURCMwor6ba0ID4gaMOoOyAjOURCNAor6ba1ID4gY2jDujsgIzlEQjUKK+m2tiA+IHTDoW5nOyAjOURCNgor6ba3ID4geGnDoDsgIzlEQjcKK+m2uCA+IHLDuW87ICM5REI4CivptrkgPiBsw611OyAjOURCOQor6ba6ID4gasOtOyAjOURCQQor6ba7ID4gZ8O6OyAjOURCQgor6ba8ID4gamnEgW47ICM5REJDCivptr0gPiB6aMWtbjsgIzlEQkQKK+m2viA+IGjDoG47ICM5REJFCivptr8gPiB6xKs7ICM5REJGCivpt4AgPiB6xKs7ICM5REMwCivpt4EgPiBuw6w7ICM5REMxCivpt4IgPiB5w6BvOyAjOURDMgor6beDID4gecOgbjsgIzlEQzMKK+m3hCA+IGrEqzsgIzlEQzQKK+m3hSA+IGzDrDsgIzlEQzUKK+m3hiA+IHRpw6FuOyAjOURDNgor6beHID4ga8OydTsgIzlEQzcKK+m3iCA+IHTEqzsgIzlEQzgKK+m3iSA+IHTEqzsgIzlEQzkKK+m3iiA+IG7DrDsgIzlEQ0EKK+m3iyA+IHTDujsgIzlEQ0IKK+m3jCA+IG3EgzsgIzlEQ0MKK+m3jSA+IGppxIFvOyAjOURDRAor6beOID4gZ8SBbzsgIzlEQ0UKK+m3jyA+IHRpw6FuOyAjOURDRgor6beQID4gY2jDqW47ICM5REQwCivpt5EgPiBsw6w7ICM5REQxCivpt5IgPiB6aHXEgW47ICM5REQyCivpt5MgPiB6aMOoOyAjOUREMwor6beUID4gw6FvOyAjOURENAor6beVID4gecSDbzsgIzlERDUKK+m3liA+IHnEqzsgIzlERDYKK+m3lyA+IMWNdTsgIzlERDcKK+m3mCA+IGNow6w7ICM5REQ4Civpt5kgPiB6aMOsOyAjOUREOQor6beaID4gbGnDoW87ICM5RERBCivpt5sgPiByw7NuZzsgIzlEREIKK+m3nCA+IGzDs3U7ICM5RERDCivpt50gPiBiw6w7ICM5RERECivpt54gPiBzaHXEgW5nOyAjOURERQor6befID4gemjDum87ICM5RERGCivpt6AgPiB5w7o7ICM5REUwCivpt6EgPiB3w7o7ICM5REUxCivpt6IgPiBqdcOpOyAjOURFMgor6bejID4gecOtbjsgIzlERTMKK+m3pCA+IHF1w6FuOyAjOURFNAor6belID4gc8SrOyAjOURFNQor6bemID4gamnEgW87ICM5REU2Civpt6cgPiB5w6w7ICM5REU3Civpt6ggPiBodcSBOyAjOURFOAor6bepID4gYsOsOyAjOURFOQor6beqID4gecSrbmc7ICM5REVBCivpt6sgPiBzw7k7ICM5REVCCivpt6wgPiBodcOhbmc7ICM5REVDCivpt60gPiBmw6FuOyAjOURFRAor6beuID4gamnEgW87ICM5REVFCivpt68gPiBsacOhbzsgIzlERUYKK+m3sCA+IHnDoG47ICM5REYwCivpt7EgPiBrxIFvOyAjOURGMQor6beyID4gasOsdTsgIzlERjIKK+m3syA+IHhpw6FuOyAjOURGMwor6be0ID4geGnDoW47ICM5REY0Civpt7UgPiB0w7o7ICM5REY1Civpt7YgPiBtxINpOyAjOURGNgor6be3ID4gesWrbjsgIzlERjcKK+m3uCA+IHnDuTsgIzlERjgKK+m3uSA+IHnEq25nOyAjOURGOQor6be6ID4gbMO5OyAjOURGQQor6be7ID4gdHXDoW47ICM5REZCCivpt7wgPiB4acOhbjsgIzlERkMKK+m3vSA+IHh1w6k7ICM5REZECivpt74gPiB5w6w7ICM5REZFCivpt78gPiBww6w7ICM5REZGCivpuIAgPiBzaMO6OyAjOUUwMAor6biBID4gbMO6bzsgIzlFMDEKK+m4giA+IHHEqzsgIzlFMDIKK+m4gyA+IHnDrTsgIzlFMDMKK+m4hCA+IGrDrTsgIzlFMDQKK+m4hSA+IHpow6k7ICM5RTA1CivpuIYgPiB5w7o7ICM5RTA2CivpuIcgPiB6aMSBbjsgIzlFMDcKK+m4iCA+IHnDqDsgIzlFMDgKK+m4iSA+IHnDoW5nOyAjOUUwOQor6biKID4gcMOsOyAjOUUwQQor6biLID4gbsOtbmc7ICM5RTBCCivpuIwgPiBow7lvOyAjOUUwQwor6biNID4gbcOtOyAjOUUwRAor6biOID4gecSrbmc7ICM5RTBFCivpuI8gPiBtw6luZzsgIzlFMEYKK+m4kCA+IGTDrTsgIzlFMTAKK+m4kSA+IHl1w6g7ICM5RTExCivpuJIgPiB5w7o7ICM5RTEyCivpuJMgPiBsxJVpOyAjOUUxMwor6biUID4gYsOgbzsgIzlFMTQKK+m4lSA+IGzDujsgIzlFMTUKK+m4liA+IGjDqDsgIzlFMTYKK+m4lyA+IGzDs25nOyAjOUUxNwor6biYID4gc2h1xIFuZzsgIzlFMTgKK+m4mSA+IHl1w6g7ICM5RTE5CivpuJogPiB5xKtuZzsgIzlFMUEKK+m4myA+IGd1w6BuOyAjOUUxQgor6bicID4gccO6OyAjOUUxQwor6bidID4gbMOtOyAjOUUxRAor6bieID4gbHXDoW47ICM5RTFFCivpuJ8gPiBuacSDbzsgIzlFMUYKK+m4oCA+IGrEq3U7ICM5RTIwCivpuKEgPiBqxKs7ICM5RTIxCivpuKIgPiB5dcSBbjsgIzlFMjIKK+m4oyA+IG3DrW5nOyAjOUUyMwor6bikID4gc2jEqzsgIzlFMjQKK+m4pSA+IMWNdTsgIzlFMjUKK+m4piA+IHnEgTsgIzlFMjYKK+m4pyA+IGPEgW5nOyAjOUUyNwor6bioID4gYsSDbzsgIzlFMjgKK+m4qSA+IHpow6huOyAjOUUyOQor6biqID4gZ8WrOyAjOUUyQQor6birID4gZMWNbmc7ICM5RTJCCivpuKwgPiBsw7o7ICM5RTJDCivpuK0gPiB5xIE7ICM5RTJECivpuK4gPiB4acSBbzsgIzlFMkUKK+m4ryA+IHnEgW5nOyAjOUUyRgor6biwID4gbMOtbmc7ICM5RTMwCivpuLEgPiB6aMSrOyAjOUUzMQor6biyID4gccO6OyAjOUUzMgor6bizID4geXXEgW47ICM5RTMzCivpuLQgPiB4dcOpOyAjOUUzNAor6bi1ID4gdMO6bzsgIzlFMzUKK+m4tiA+IHPEqzsgIzlFMzYKK+m4tyA+IHpow6w7ICM5RTM3CivpuLggPiDDqXI7ICM5RTM4CivpuLkgPiBndcSBOyAjOUUzOQor6bi6ID4geMSrdTsgIzlFM0EKK+m4uyA+IGjDqW5nOyAjOUUzQgor6bi8ID4gemjFjXU7ICM5RTNDCivpuL0gPiBnxJM7ICM5RTNECivpuL4gPiBsdcOhbjsgIzlFM0UKK+m4vyA+IGjDs25nOyAjOUUzRgor6bmAID4gd8O6OyAjOUU0MAor6bmBID4gYsOzOyAjOUU0MQor6bmCID4gbMOtOyAjOUU0Mgor6bmDID4ganXEgW47ICM5RTQzCivpuYQgPiBow7o7ICM5RTQ0CivpuYUgPiDDqTsgIzlFNDUKK+m5hiA+IHnDuTsgIzlFNDYKK+m5hyA+IHhpw6FuOyAjOUU0Nwor6bmIID4gdMOtOyAjOUU0OAor6bmJID4gd8WtOyAjOUU0OQor6bmKID4gcXXDqDsgIzlFNEEKK+m5iyA+IG1pw6FvOyAjOUU0Qgor6bmMID4gxIFuOyAjOUU0Qwor6bmNID4ga8WrbjsgIzlFNEQKK+m5jiA+IGLEk2k7ICM5RTRFCivpuY8gPiBww6luZzsgIzlFNEYKK+m5kCA+IHFpxIFuOyAjOUU1MAor6bmRID4gY2jDum47ICM5RTUxCivpuZIgPiBnxJNuZzsgIzlFNTIKK+m5kyA+IHl1xIFuOyAjOUU1Mwor6bmUID4gc8O5OyAjOUU1NAor6bmVID4gaMO6OyAjOUU1NQor6bmWID4gaMOpOyAjOUU1Ngor6bmXID4gw6g7ICM5RTU3CivpuZggPiBnw7o7ICM5RTU4CivpuZkgPiBxxKt1OyAjOUU1OQor6bmaID4gesSrOyAjOUU1QQor6bmbID4gbcOpaTsgIzlFNUIKK+m5nCA+IG3DuTsgIzlFNUMKK+m5nSA+IG7DrDsgIzlFNUQKK+m5niA+IHnDoG87ICM5RTVFCivpuZ8gPiB3xJNuZzsgIzlFNUYKK+m5oCA+IGzDrXU7ICM5RTYwCivpuaEgPiBqw607ICM5RTYxCivpuaIgPiBuw6w7ICM5RTYyCivpuaMgPiBqacSBbjsgIzlFNjMKK+m5pCA+IGjDqDsgIzlFNjQKK+m5pSA+IHnEqzsgIzlFNjUKK+m5piA+IHnEq25nOyAjOUU2Ngor6bmnID4gemjDqDsgIzlFNjcKK+m5qCA+IGxpw6FvOyAjOUU2OAor6bmpID4gbGnDoW87ICM5RTY5CivpuaogPiBqacSBbzsgIzlFNkEKK+m5qyA+IGrDrHU7ICM5RTZCCivpuawgPiB5w7k7ICM5RTZDCivpua0gPiBsw7k7ICM5RTZECivpua4gPiB4dcOhbjsgIzlFNkUKK+m5ryA+IHpoxIFuOyAjOUU2Rgor6bmwID4gecSrbmc7ICM5RTcwCivpubEgPiBow7lvOyAjOUU3MQor6bmyID4gbcOpbmc7ICM5RTcyCivpubMgPiBndcOgbjsgIzlFNzMKK+m5tCA+IHNodcSBbmc7ICM5RTc0CivpubUgPiBsxa07ICM5RTc1CivpubYgPiBqxKtuOyAjOUU3Ngor6bm3ID4gbMOtbmc7ICM5RTc3CivpubggPiBqacSDbjsgIzlFNzgKK+m5uSA+IHhpw6FuOyAjOUU3OQor6bm6ID4gY8O6bzsgIzlFN0EKK+m5uyA+IGppxINuOyAjOUU3Qgor6bm8ID4gamnEg247ICM5RTdDCivpub0gPiB5w6FuOyAjOUU3RAor6bm+ID4gY8O6bzsgIzlFN0UKK+m5vyA+IGzDuTsgIzlFN0YKK+m6gCA+IHnFjXU7ICM5RTgwCivpuoEgPiBjxas7ICM5RTgxCivpuoIgPiBqxK07ICM5RTgyCivpuoMgPiBiacSBbzsgIzlFODMKK+m6hCA+IGPFqzsgIzlFODQKK+m6hSA+IGJpxIFvOyAjOUU4NQor6bqGID4gemjDuTsgIzlFODYKK+m6hyA+IGrFq247ICM5RTg3CivpuoggPiB6aMWtOyAjOUU4OAor6bqJID4gamnEgW47ICM5RTg5CivpuoogPiBtw607ICM5RThBCivpuosgPiBtw607ICM5RThCCivpuowgPiB3w7o7ICM5RThDCivpuo0gPiBsw611OyAjOUU4RAor6bqOID4gY2jDqW47ICM5RThFCivpuo8gPiBqxatuOyAjOUU4Rgor6bqQID4gbMOtbjsgIzlFOTAKK+m6kSA+IG7DrTsgIzlFOTEKK+m6kiA+IHHDrTsgIzlFOTIKK+m6kyA+IGzDuTsgIzlFOTMKK+m6lCA+IGrDrHU7ICM5RTk0CivpupUgPiBqxatuOyAjOUU5NQor6bqWID4gasSrbmc7ICM5RTk2CivpupcgPiBsw6w7ICM5RTk3CivpupggPiB4acSBbmc7ICM5RTk4CivpupkgPiB5w6FuOyAjOUU5OQor6bqaID4gamnEgTsgIzlFOUEKK+m6myA+IG3DrTsgIzlFOUIKK+m6nCA+IGzDrDsgIzlFOUMKK+m6nSA+IHNow6g7ICM5RTlECivpup4gPiB6aMSBbmc7ICM5RTlFCivpup8gPiBsw61uOyAjOUU5Rgor6bqgID4gasSrbmc7ICM5RUEwCivpuqEgPiBqxKs7ICM5RUExCivpuqIgPiBsw61uZzsgIzlFQTIKK+m6oyA+IHnDoW47ICM5RUEzCivpuqQgPiBjxas7ICM5RUE0CivpuqUgPiBtw6BpOyAjOUVBNQor6bqmID4gbcOgaTsgIzlFQTYKK+m6pyA+IGfEkzsgIzlFQTcKK+m6qCA+IGNoxINvOyAjOUVBOAor6bqpID4gZsWrOyAjOUVBOQor6bqqID4gbWnEg247ICM5RUFBCivpuqsgPiBtacSDbjsgIzlFQUIKK+m6rCA+IGbFqzsgIzlFQUMKK+m6rSA+IHDDoG87ICM5RUFECivpuq4gPiBxw7k7ICM5RUFFCivpuq8gPiBxw7o7ICM5RUFGCivpurAgPiBtw7N1OyAjOUVCMAor6bqxID4gZsWrOyAjOUVCMQor6bqyID4geGnDoG47ICM5RUIyCivpurMgPiBsw6FpOyAjOUVCMwor6bq0ID4gccO6OyAjOUVCNAor6bq1ID4gbWnDoG47ICM5RUI1CivpurcgPiBmxJNuZzsgIzlFQjcKK+m6uCA+IGbFqzsgIzlFQjgKK+m6uSA+IHHDujsgIzlFQjkKK+m6uiA+IG1pw6BuOyAjOUVCQQor6bq7ID4gbcOhOyAjOUVCQgor6bq8ID4gbW87ICM5RUJDCivpur0gPiBtbzsgIzlFQkQKK+m6viA+IGjFq2k7ICM5RUJFCivpu4AgPiB6xY11OyAjOUVDMAor6buBID4gbsSTbjsgIzlFQzEKK+m7giA+IGbDqW47ICM5RUMyCivpu4MgPiBodcOhbmc7ICM5RUMzCivpu4QgPiBodcOhbmc7ICM5RUM0Civpu4UgPiBqxKtuOyAjOUVDNQor6buGID4gZ3XEgW5nOyAjOUVDNgor6buHID4gdGnEgW47ICM5RUM3Civpu4ggPiB0xY91OyAjOUVDOAor6buJID4gaMOpbmc7ICM5RUM5Civpu4ogPiB4xKs7ICM5RUNBCivpu4sgPiBrdcSDbmc7ICM5RUNCCivpu4wgPiBow6luZzsgIzlFQ0MKK+m7jSA+IHNoxa07ICM5RUNECivpu44gPiBsw607ICM5RUNFCivpu48gPiBuacOhbjsgIzlFQ0YKK+m7kCA+IGNoxKs7ICM5RUQwCivpu5EgPiBoxJNpOyAjOUVEMQor6buSID4gaMSTaTsgIzlFRDIKK+m7kyA+IHnDrDsgIzlFRDMKK+m7lCA+IHFpw6FuOyAjOUVENAor6buVID4gZMSBbjsgIzlFRDUKK+m7liA+IHjDrDsgIzlFRDYKK+m7lyA+IHR1xINuOyAjOUVENwor6buYID4gbcOyOyAjOUVEOAor6buZID4gbcOyOyAjOUVEOQor6buaID4gcWnDoW47ICM5RURBCivpu5sgPiBkw6BpOyAjOUVEQgor6bucID4gY2jDuTsgIzlFREMKK+m7nSA+IHnFj3U7ICM5RURECivpu54gPiBkacSDbjsgIzlFREUKK+m7nyA+IHnEqzsgIzlFREYKK+m7oCA+IHhpw6E7ICM5RUUwCivpu6EgPiB5xINuOyAjOUVFMQor6buiID4gccWrOyAjOUVFMgor6bujID4gbcSVaTsgIzlFRTMKK+m7pCA+IHnEg247ICM5RUU0Civpu6UgPiBqxKtuZzsgIzlFRTUKK+m7piA+IHnDuTsgIzlFRTYKK+m7pyA+IGzDrTsgIzlFRTcKK+m7qCA+IGTEg25nOyAjOUVFOAor6bupID4gZMO6OyAjOUVFOQor6buqID4gY8SDbjsgIzlFRUEKK+m7qyA+IHnEq247ICM5RUVCCivpu6wgPiDDoG47ICM5RUVDCivpu60gPiB5xIFuOyAjOUVFRAor6buuID4gdMSDbjsgIzlFRUUKK+m7ryA+IMOgbjsgIzlFRUYKK+m7sCA+IHpoxJVuOyAjOUVGMAor6buxID4gZMOgaTsgIzlFRjEKK+m7siA+IGPEg247ICM5RUYyCivpu7MgPiB5xKs7ICM5RUYzCivpu7QgPiBtw6lpOyAjOUVGNAor6bu1ID4gZMSDbjsgIzlFRjUKK+m7tiA+IHnEg247ICM5RUY2Civpu7cgPiBkw7o7ICM5RUY3Civpu7ggPiBsw7o7ICM5RUY4Civpu7kgPiB6aMStOyAjOUVGOQor6bu6ID4gZsSVbjsgIzlFRkEKK+m7uyA+IGbDuTsgIzlFRkIKK+m7vCA+IGbFrTsgIzlFRkMKK+m7vSA+IG3ErW47ICM5RUZECivpu74gPiBtxK1uOyAjOUVGRQor6bu/ID4geXXDoW47ICM5RUZGCivpvIAgPiBjw7k7ICM5RjAwCivpvIEgPiBxw7k7ICM5RjAxCivpvIIgPiBjaMOhbzsgIzlGMDIKK+m8gyA+IHfEgTsgIzlGMDMKK+m8hCA+IHpoxas7ICM5RjA0CivpvIUgPiB6aMSrOyAjOUYwNQor6byGID4gbcOhbmc7ICM5RjA2CivpvIcgPiDDoW87ICM5RjA3CivpvIggPiBiacSTOyAjOUYwOAor6byJID4gdMO6bzsgIzlGMDkKK+m8iiA+IGLDrDsgIzlGMEEKK+m8iyA+IHl1w6FuOyAjOUYwQgor6byMID4gY2jDoW87ICM5RjBDCivpvI0gPiB0w7pvOyAjOUYwRAor6byOID4gZMStbmc7ICM5RjBFCivpvI8gPiBtw6w7ICM5RjBGCivpvJAgPiBuw6BpOyAjOUYxMAor6byRID4gZMStbmc7ICM5RjExCivpvJIgPiB6xKs7ICM5RjEyCivpvJMgPiBnxa07ICM5RjEzCivpvJQgPiBnxa07ICM5RjE0CivpvJUgPiBkxY1uZzsgIzlGMTUKK+m8liA+IGbDqW47ICM5RjE2CivpvJcgPiB0w6FvOyAjOUYxNwor6byYID4geXXEgW47ICM5RjE4CivpvJkgPiBww607ICM5RjE5CivpvJogPiBjaMSBbmc7ICM5RjFBCivpvJsgPiBnxIFvOyAjOUYxQgor6bycID4gccOsOyAjOUYxQwor6bydID4geXXEgW47ICM5RjFECivpvJ4gPiB0xIFuZzsgIzlGMUUKK+m8nyA+IHTEk25nOyAjOUYxRgor6bygID4gc2jFrTsgIzlGMjAKK+m8oSA+IHNoxa07ICM5RjIxCivpvKIgPiBmw6luOyAjOUYyMgor6byjID4gZsOoaTsgIzlGMjMKK+m8pCA+IHfDqW47ICM5RjI0CivpvKUgPiBiw6E7ICM5RjI1CivpvKYgPiBkacSBbzsgIzlGMjYKK+m8pyA+IHTDum87ICM5RjI3CivpvKggPiB0w7NuZzsgIzlGMjgKK+m8qSA+IHHDujsgIzlGMjkKK+m8qiA+IHNoxJNuZzsgIzlGMkEKK+m8qyA+IHNow607ICM5RjJCCivpvKwgPiB5w7J1OyAjOUYyQwor6bytID4gc2jDrTsgIzlGMkQKK+m8riA+IHTDrW5nOyAjOUYyRQor6byvID4gd8O6OyAjOUYyRgor6bywID4gbmnDoG47ICM5RjMwCivpvLEgPiBqxKtuZzsgIzlGMzEKK+m8siA+IGjDum47ICM5RjMyCivpvLMgPiBqw7o7ICM5RjMzCivpvLQgPiB5xINuOyAjOUYzNAor6by1ID4gdMO6OyAjOUYzNQor6by2ID4gdMOtOyAjOUYzNgor6by3ID4geMSrOyAjOUYzNwor6by4ID4geGnEg247ICM5RjM4CivpvLkgPiB5xINuOyAjOUYzOQor6by6ID4gbMOpaTsgIzlGM0EKK+m8uyA+IGLDrTsgIzlGM0IKK+m8vCA+IHnEg287ICM5RjNDCivpvL0gPiBxw611OyAjOUYzRAor6by+ID4gaMSBbjsgIzlGM0UKK+m8vyA+IHfFqzsgIzlGM0YKK+m9gCA+IHfDuTsgIzlGNDAKK+m9gSA+IGjDs3U7ICM5RjQxCivpvYIgPiB4w6w7ICM5RjQyCivpvYMgPiBnw6k7ICM5RjQzCivpvYQgPiB6aMSBOyAjOUY0NAor6b2FID4geMOsdTsgIzlGNDUKK+m9hiA+IHfDqG5nOyAjOUY0Ngor6b2HID4gemjEgTsgIzlGNDcKK+m9iCA+IG7Ds25nOyAjOUY0OAor6b2JID4gbsOgbmc7ICM5RjQ5CivpvYogPiBxw607ICM5RjRBCivpvYsgPiB6aMSBaTsgIzlGNEIKK+m9jCA+IGrDrDsgIzlGNEMKK+m9jSA+IHrEqzsgIzlGNEQKK+m9jiA+IGrEqzsgIzlGNEUKK+m9jyA+IGrEqzsgIzlGNEYKK+m9kCA+IHHDrTsgIzlGNTAKK+m9kSA+IGrEqzsgIzlGNTEKK+m9kiA+IGNoxK07ICM5RjUyCivpvZMgPiBjaMOobjsgIzlGNTMKK+m9lCA+IGNow6huOyAjOUY1NAor6b2VID4gaMOpOyAjOUY1NQor6b2WID4gecOhOyAjOUY1Ngor6b2XID4ga8SVbjsgIzlGNTcKK+m9mCA+IHhpw6g7ICM5RjU4CivpvZkgPiBww6FvOyAjOUY1OQor6b2aID4gY8O5bzsgIzlGNUEKK+m9myA+IHNow6w7ICM5RjVCCivpvZwgPiB6xKs7ICM5RjVDCivpvZ0gPiBjaMSrOyAjOUY1RAor6b2eID4gbmnDoG47ICM5RjVFCivpvZ8gPiBqxa07ICM5RjVGCivpvaAgPiB0acOhbzsgIzlGNjAKK+m9oSA+IGzDrW5nOyAjOUY2MQor6b2iID4gbMOtbmc7ICM5RjYyCivpvaMgPiBjaMWrOyAjOUY2Mwor6b2kID4gcXXDoW47ICM5RjY0CivpvaUgPiB4acOoOyAjOUY2NQor6b2mID4ga8SVbjsgIzlGNjYKK+m9pyA+IG5pw6g7ICM5RjY3CivpvaggPiBqw6x1OyAjOUY2OAor6b2pID4gecSDbzsgIzlGNjkKK+m9qiA+IGNow7lvOyAjOUY2QQor6b2rID4ga8WtbjsgIzlGNkIKK+m9rCA+IHnFrTsgIzlGNkMKK+m9rSA+IGNoxa07ICM5RjZECivpva4gPiB5xK07ICM5RjZFCivpva8gPiBuw607ICM5RjZGCivpvbAgPiBjw7lvOyAjOUY3MAor6b2xID4gesWNdTsgIzlGNzEKK+m9siA+IHHFrTsgIzlGNzIKK+m9syA+IG7ElW47ICM5RjczCivpvbQgPiB4acSDbjsgIzlGNzQKK+m9tSA+IMOzdTsgIzlGNzUKK+m9tiA+IMOoOyAjOUY3Ngor6b23ID4gd8OyOyAjOUY3Nwor6b24ID4gecOsOyAjOUY3OAor6b25ID4gY2jFq287ICM5Rjc5CivpvbogPiB6xY11OyAjOUY3QQor6b27ID4gZGnEgW47ICM5RjdCCivpvbwgPiBjaMWtOyAjOUY3Qwor6b29ID4gasOsbjsgIzlGN0QKK+m9viA+IHnDoDsgIzlGN0UKK+m9vyA+IGNoxK07ICM5RjdGCivpvoAgPiBjaMOobjsgIzlGODAKK+m+gSA+IGjDqTsgIzlGODEKK+m+giA+IGvElW47ICM5RjgyCivpvoMgPiBqxa07ICM5RjgzCivpvoQgPiBsw61uZzsgIzlGODQKK+m+hSA+IHDDoW87ICM5Rjg1CivpvoYgPiB0acOhbzsgIzlGODYKK+m+hyA+IHrEqzsgIzlGODcKK+m+iCA+IGvElW47ICM5Rjg4CivpvokgPiB5xa07ICM5Rjg5CivpvoogPiBjaMO5bzsgIzlGOEEKK+m+iyA+IHHFrTsgIzlGOEIKK+m+jCA+IHfDsjsgIzlGOEMKK+m+jSA+IGzDs25nOyAjOUY4RAor6b6OID4gcMOhbmc7ICM5RjhFCivpvo8gPiBnxY1uZzsgIzlGOEYKK+m+kCA+IHDDoW5nOyAjOUY5MAor6b6RID4gecSDbjsgIzlGOTEKK+m+kiA+IGzDs25nOyAjOUY5Mgor6b6TID4gbMOzbmc7ICM5RjkzCivpvpQgPiBnxY1uZzsgIzlGOTQKK+m+lSA+IGvEgW47ICM5Rjk1CivpvpYgPiB0w6A7ICM5Rjk2CivpvpcgPiBsw61uZzsgIzlGOTcKK+m+mCA+IHTDoDsgIzlGOTgKK+m+mSA+IGzDs25nOyAjOUY5OQor6b6aID4gZ8WNbmc7ICM5RjlBCivpvpsgPiBrxIFuOyAjOUY5Qgor6b6cID4gZ8WraTsgIzlGOUMKK+m+nSA+IHHEq3U7ICM5RjlECivpvp4gPiBiacSTOyAjOUY5RQor6b6fID4gZ8WraTsgIzlGOUYKK+m+oCA+IHl1w6g7ICM5RkEwCivpvqEgPiBjaMO5aTsgIzlGQTEKK+m+oiA+IGjDqTsgIzlGQTIKK+m+oyA+IGp1w6k7ICM5RkEzCivpvqQgPiB4acOpOyAjOUZBNAor6b6lID4gecO5OyAjOUZBNQor76SOID4gbMOgOyAjRjkwRQor76iMID4gd8O5OyAjRkEwQwor76iNID4gaMO5bzsgI0ZBMEQKK++okCA+IHpoxY9uZzsgI0ZBMTAKK++okiA+IHHDrW5nOyAjRkExMgor76iVID4geMSrOyAjRkExNQor76iWID4gemjFqzsgI0ZBMTYKK++olyA+IHnDrDsgI0ZBMTcKK++omCA+IGzErTsgI0ZBMTgKK++omSA+IHNow6luOyAjRkExOQor76iaID4geGnDoW5nOyAjRkExQQor76ibID4gZsO6OyAjRkExQgor76icID4gasOsbmc7ICNGQTFDCivvqJ0gPiBqxKtuZzsgI0ZBMUQKK++oniA+IHnFrTsgI0ZBMUUKK++ooiA+IHpoxas7ICNGQTIyCivvqKUgPiB5w6w7ICNGQTI1CivvqKYgPiBkxas7ICNGQTI2CivvqKogPiBmw6BuOyAjRkEyQQor76irID4gc8OsOyAjRkEyQgor76isID4gZ3XEg247ICNGQTJDCivvqK0gPiBow6g7ICNGQTJECisKKyMgZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvcmVzb3VyY2VzL1RyYW5zbGl0ZXJhdG9yX0thbmppX0VuZ2xpc2gudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L3Jlc291cmNlcy9UcmFuc2xpdGVyYXRvcl9LYW5qaV9FbmdsaXNoLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mZTM1M2YzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L3Jlc291cmNlcy9UcmFuc2xpdGVyYXRvcl9LYW5qaV9FbmdsaXNoLnR4dApAQCAtMCwwICsxLDYzNjYgQEAKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb3B5cmlnaHQgKGMpIDE5OTktMjAwMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworIyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBEYXRlOiBUdWUgSmFuIDIzIDEyOjQyOjAyIDIwMDEKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIEthbmppLUVuZ2xpc2gKKwor5LiBPidbbWFsZSBhZHVsdF0nOwor5LiDPidbc2V2ZW5dJzsKK+S4hz4nW3RlbiB0aG91c2FuZF0nOwor5LiIPidbdW5pdCBvZiBsZW5ndGggZXF1YWwgMy4zIG1ldGVyc10nOwor5LiJPidbdGhyZWVdJzsKK+S4ij4nW3RvcF0nOwor5LiLPidbdW5kZXJdJzsKK+S4jT4nW25vXSc7CivkuI4+J1thbmRdJzsKK+S4kD4nW2JlZ2dhcl0nOwor5LiRPidbY2xvd25dJzsKK+S4lD4nW21vcmVvdmVyXSc7CivkuJU+J1tncmVhdF0nOwor5LiWPidbZ2VuZXJhdGlvbl0nOwor5LiXPidbdGhpcnR5XSc7CivkuJg+J1toaWxsXSc7CivkuJk+J1t0aGlyZCBvZiBoZWF2ZW5seSBzdGVtc10nOwor5LiePidbYXNzaXN0XSc7CivkuKE+J1t0d29dJzsKK+S4pj4nW2VxdWFsIHRvXSc7CivkuKo+J1tudW1lcmFyeSBhZGp1bmN0XSc7CivkuK0+J1tjZW50cmFsXSc7CivkuLE+J1tjaGlsZCcncyBoYWlyc3R5bGUgYm91bmQgaW4gdHdvIHR1ZnRzXSc7CivkuLI+J1tzdHJpbmddJzsKK+S4tj4nW2RvdF0nOwor5Li4Pidbc21hbGwgcm91bmQgb2JqZWN0XSc7CivkuLk+J1tjaW5uYWJhciAobmF0aXZlIEhnUyldJzsKK+S4uz4nW21hc3Rlcl0nOwor5Li8PidbYm93bCBvZiBmb29kXSc7CivkuL8+J1tsaW5lXSc7CivkuYI+J1tnb3Zlcm5dJzsKK+S5gz4nW3RoZW5dJzsKK+S5hT4nW2xvbmcgdGltZSAoYWdvKV0nOwor5LmLPidbJydzIChtYXJrcyBwcmVjZWRpbmcgcGhyYXNlIGFzIG1vZGlmaWVyIG9mIGZvbGxvd2luZyBwaHJhc2UpXSc7CivkuY0+J1tzdWRkZW5seV0nOwor5LmOPidbaW50ZXJyb2dhdGl2ZSBvciBleGNsYW1hdG9yeSBmaW5hbCBwYXJ0aWNsZV0nOwor5LmPPidbbGFja10nOwor5LmVPidbdGlnZXJdJzsKK+S5lj4nW3JlYmVsXSc7CivkuZc+J1tyaWRlXSc7CivkuZg+J1tyaWRlXSc7CivkuZk+J1tzZWNvbmQgaGVhdmVuJydzIHN0ZW1dJzsKK+S5nT4nW25pbmVdJzsKK+S5nj4nW2JlZ10nOwor5LmfPidbYWxzb10nOwor5LmiPidbbGlkXSc7CivkubE+J1tjb25mdXNpb25dJzsKK+S5sz4nW2JyZWFzdF0nOwor5Lm+PidbZHJ5XSc7CivkuoA+J1t0dXJ0bGUgb3IgdG9ydG9pc2VdJzsKK+S6gj4nW2NvbmZ1c2lvbl0nOwor5LqFPidbaG9va10nOwor5LqGPidbdG8gZmluaXNoXSc7Civkuog+J1tJXSc7Civkuok+J1tkaXNwdXRlXSc7Civkuoo+J1thZmZhaXJdJzsKK+S6iz4nW2FmZmFpcl0nOwor5LqMPidbdHdvXSc7Civkuo4+J1tpbl0nOwor5LqRPidbc2F5XSc7CivkupI+J1ttdXR1YWxseV0nOwor5LqUPidbZml2ZV0nOwor5LqVPidbd2VsbF0nOwor5LqYPidbZXh0ZW5kIGFjcm9zc10nOwor5LqZPidbZXh0ZW5kIGFjcm9zc10nOwor5LqbPidbbGl0dGxlXSc7Civkupw+J1thc2lhXSc7Civkup4+J1thc2lhXSc7Civkup8+J1t1cmdlbnRseV0nOwor5LqgPidbaGVhZF0nOwor5LqhPidbZGVhdGhdJzsKK+S6oj4nW2hpZ2hdJzsKK+S6pD4nW21peF0nOwor5LqlPidbbGFzdCBvZiAxMiBlYXJ0aCBicmFuY2hlc10nOwor5LqmPidbYWxzb10nOwor5LqoPidbc21vb3RobHldJzsKK+S6qz4nW2Vuam95XSc7Civkuqw+J1tjYXBpdGFsIGNpdHldJzsKK+S6rT4nW3BhdmlsaW9uXSc7Civkuq4+J1ticmlnaHRdJzsKK+S6sD4nW2NhcGl0YWwgY2l0eV0nOwor5LqzPidbbmFtZSBvZiBkaXN0cmljdCBpbiBBbmh1aV0nOwor5Lq2Pidbc2luY2VyZV0nOwor5Lq6PidbbWFuXSc7Civku4A+J1tmaWxlIG9mIHRlbiBzb2xkaWVyc10nOwor5LuBPidbaHVtYW5lbmVzc10nOwor5LuCPidbc3VycGx1cyBvciBleGNlc3NdJzsKK+S7hD4nW3NsYW50aW5nXSc7Civku4Y+J1tmYWxsIGZvcndhcmRdJzsKK+S7hz4nW2VuZW15XSc7Civku4o+J1tub3ddJzsKK+S7iz4nW2ZvcmVydW5uZXJdJzsKK+S7jT4nW3lldF0nOwor5LuOPidbZnJvbV0nOwor5LuPPidbYnVkZGhhXSc7Civku5Q+J1tzbWFsbCB0aGluZ10nOwor5LuVPidbb2ZmaWNpYWxdJzsKK+S7lj4nW290aGVyXSc7Civku5c+J1tyZWx5IHVwb25dJzsKK+S7mD4nW2dpdmVdJzsKK+S7mT4nW1Rhb2lzdCBzdXBlci1iZWluZ10nOwor5LudPidbdG9nZXRoZXJdJzsKK+S7nj4nW2FuY2llbnQgdW5pdCBvZiBtZWFzdXJlICg4IGZlZXQpXSc7Civku58+J1tvbmUgdGhvdXNhbmRdJzsKK+S7oz4nW3JlcGxhY2VdJzsKK+S7pD4nW2NvbW1hbmRdJzsKK+S7pT4nW2J5IG1lYW5zIG9mXSc7Civku60+J1thbmNpZW50IHVuaXQgb2YgbWVhc3VyZSAoOCBmZWV0KV0nOwor5LuuPidbZmFsc2Vob29kXSc7Civku7A+J1tyYWlzZSB0aGUgaGVhZCB0byBsb29rXSc7Civku7I+J1ttaWRkbGUgYnJvdGhlcl0nOwor5Lu2PidbbnVtZXJhcnkgYWRqdW5jdCBmb3IgYXJ0aWNsZV0nOwor5Lu3PidbcHJpY2VdJzsKK+S7uz4nW3RydXN0IHRvXSc7CivkvIE+J1twbGFuIGEgcHJvamVjdF0nOwor5LyJPidbY29tcGFyZV0nOwor5LyKPidbdGhpcmQgcGVyc29uIHByb25vdW5dJzsKK+S8jT4nW2ZpdmVdJzsKK+S8jj4nW3RhbGVudF0nOwor5LyPPidbY3JvdWNoXSc7CivkvJA+J1tjdXQgZG93bl0nOwor5LyRPidbcmVzdF0nOwor5LyaPidbYXNzZW1ibGVdJzsKK+S8nD4nW2RlcHV0eV0nOwor5LydPidbc3VtbW9uXSc7CivkvK8+J1tvbGRlciBicm90aGVyXSc7CivkvLA+J1ttZXJjaGFudF0nOwor5Ly0PidbY29tcGFuaW9uXSc7CivkvLY+J1tsb25lbHldJzsKK+S8uD4nW2V4dGVuZF0nOwor5Ly6Pidbc2VydmVdJzsKK+S8vD4nW3Jlc2VtYmxlXSc7CivkvL0+J1t0cmFuc2NyaXB0aW9uIG9mIHNhbnNrcml0IGdoYSBpbiBidWRkaGlzdCB0ZXh0cyAoJ8OrbcOiw6YnIFwic2FtZ2hhXCIpXSc7CivkvYM+J1t0ZW5hbnQgZmFybWVyXSc7CivkvYY+J1tvbmx5XSc7CivkvYc+J1t3YWl0XSc7CivkvY0+J1t0aHJvbmVdJzsKK+S9jj4nW2xvd10nOwor5L2PPidbcmVzaWRlXSc7CivkvZA+J1thc3Npc3RdJzsKK+S9kT4nW2hlbHBdJzsKK+S9kz4nW2JvZHldJzsKK+S9lT4nW3doYXRdJzsKK+S9lz4nW290aGVyXSc7CivkvZk+J1tJXSc7CivkvZo+J1tpbmR1bGdlIGluIHBsZWFzdXJlc10nOwor5L2bPidbYnVkZGhhIChjb250cmFjdGlvbiBvZiBNQyAnYmhpw6p0ZGhhJyldJzsKK+S9nD4nW21ha2VdJzsKK+S9nT4nW3JpY2tldHNdJzsKK+S9nj4nW2ZsYXR0ZXJ5XSc7Civkvak+J1tiZWx0IG9ybmFtZW50XSc7Civkva8+J1twcmV0ZW5kXSc7CivkvbA+J1todW5kcmVkXSc7CivkvbM+J1tnb29kXSc7CivkvbU+J1tjb21iaW5lXSc7CivkvbY+J1tzdHJvbmddJzsKK+S9uz4nW2ZyaXZvbG91c10nOwor5L28PidbYmVhdXRpZnVsXSc7Civkvb8+J1tjYXVzZV0nOwor5L6DPidbdXByaWdodCBhbmQgc3Ryb25nXSc7CivkvoY+J1tjb21lXSc7Civkvog+J1tsdXh1cmlvdXNdJzsKK+S+iz4nW3ByZWNlZGVudF0nOwor5L6NPidbc2VydmVdJzsKK+S+jz4nW3NtYWxsXSc7CivkvpE+J1toZWxwXSc7CivkvpY+J1tsb2dpY2FsIHJlYXNvbnNdJzsKK+S+mD4nW2Rpc2FwcG9pbnRlZF0nOwor5L6bPidbc3VwcGx5XSc7Civkvp0+J1tyZWx5IG9uXSc7CivkvqA+J1tjaGl2YWxyb3VzIHBlcnNvbl0nOwor5L6hPidbcHJpY2VdJzsKK+S+qz4nW2ZsYXR0ZXJ5XSc7Civkvq0+J1tjb21wbGV0ZV0nOwor5L6uPidbaW5zdWx0XSc7Civkvq8+J1ttYXJxdWlzXSc7CivkvrU+J1tpbnZhZGVdJzsKK+S+tj4nW2NvbXBhbmlvbl0nOwor5L6/PidbY29udmVuaWVuY2VdJzsKK+S/gj4nW2JpbmRdJzsKK+S/gz4nW3VyZ2VdJzsKK+S/hD4nW3N1ZGRlbihseSldJzsKK+S/ij4nW3RhbGVudGVkXSc7Civkv44+J1tjaG9wcGluZyBib2FyZCBvciBibG9ja10nOwor5L+QPidbc21vb3RoXSc7Civkv5E+J1t3b29kZW4gZmlndXJlIGJ1cmllZCB3aXRoIGRlYWRdJzsKK+S/lD4nW2xpa2VdJzsKK+S/lz4nW3NvY2lhbCBjdXN0b21zXSc7Civkv5g+J1twcmlzb25lciBvZiB3YXJdJzsKK+S/mj4nW3J1c3RpY10nOwor5L+bPidbbWFrZSBlZmZvcnRdJzsKK+S/nT4nW3Byb3RlY3RdJzsKK+S/nz4nW3dhaXQgZm9yXSc7Civkv6E+J1t0cnVzdF0nOwor5L+jPidbYmlnXSc7CisjIuS/oz4nW2JpZ10nIiwKK+S/pT4nW3JpY2tzaGF3XSc7Civkv64+J1tzdHVkeV0nOwor5L+vPidbYm93IGRvd25dJzsKK+S/sz4nW2FjdG9yXSc7Civkv7U+J1tkaXZpZGVdJzsKK+S/tj4nW3N0YXJ0XSc7Civkv7g+J1t3YWdlc10nOwor5L+6PidbcGVyc29uYWwgcHJvbm91bl0nOwor5L++Pidbc28gdGhhdF0nOwor5YCFPidbZGVwdXR5XSc7CivlgIY+J1tjbGV2ZXJdJzsKK+WAiT4nW2dyYW5hcnldJzsKK+WAiz4nW251bWVyYXJ5IGFkanVuY3RdJzsKK+WAjT4nW3RpbWVzXSc7CivlgI8+J1toYXN0aWx5XSc7CivlgJE+J1thZGp1bmN0IHByb25vdW4gaW5kaWNhdGUgcGx1cmFsXSc7CivlgJI+J1tmYWxsIG92ZXJdJzsKK+WAlD4nW3N0dWJib3JuXSc7CivlgJY+J1tsdWNreV0nOwor5YCZPidbd2FpdF0nOwor5YCaPidbcmVseSBvbl0nOwor5YCfPidbYm9ycm93XSc7CivlgKE+J1tndWlkZV0nOwor5YCjPidbaW1pdGF0ZV0nOwor5YCkPidbcHJpY2VdJzsKK+WApT4nW2Jvb3Jpc2hdJzsKK+WApj4nW2JlIHRpcmVkIG9mXSc7CivlgKg+J1thcnJvZ2FudF0nOwor5YCpPidbYmVhdXRpZnVsXSc7CivlgKo+J1tmZWVibGVdJzsKK+WAqz4nW25vcm1hbCBodW1hbiByZWxhdGlvbnNoaXBzXSc7CivlgKw+J1tub3RpY2VhYmxlXSc7CivlgK0+J1tkd2FyZl0nOwor5YC2PidbYWxsXSc7CivlgLk+J1t0ZW1wZXJhdGVdJzsKK+WBgz4nW2NlYXNlXSc7CivlgYc+J1tmYWxzZWhvb2RdJzsKK+WBiD4nW2JyYXZlXSc7CivlgYk+J1tncmVhdF0nOwor5YGPPidbaW5jbGluZWQgb25lIHNpZGVdJzsKK+WBkD4nW2ZhbHNlXSc7CivlgZU+J1t0b2dldGhlcl0nOwor5YGWPidbcmlwIHVwXSc7CivlgZo+J1t3b3JrXSc7CivlgZw+J1tzdG9wXSc7CivlgaU+J1tzdHJvbmddJzsKK+WBrD4nW3VyZ2VudF0nOwor5YGyPidbdGFsZW50ZWRdJzsKK+WBtD4nW3NpZGVdJzsKK+WBtT4nW3NweV0nOwor5YG2PidbYWNjaWRlbnRhbGx5XSc7Civlgbg+J1t0byBzdGVhbF0nOwor5YG9PidbZmFsc2VdJzsKK+WCgD4nW2dyZWF0XSc7CivlgoU+J1t0dXRvcl0nOwor5YKNPidbYnkgc2lkZSBvZl0nOwor5YKRPidbaGVyb10nOwor5YKYPidbdW1icmVsbGFdJzsKK+WCmT4nW3ByZXBhcmVdJzsKK+WCmj4nW2ltaXRhdGVdJzsKK+WCrD4nW3ByZXNzXSc7Civlgq0+J1toaXJlXSc7CivlgrI+J1twcm91ZF0nOwor5YKzPidbc3VtbW9uXSc7CivlgrQ+J1todW1wYmFja10nOwor5YK1PidbZGVidF0nOwor5YK3Pidbd291bmRdJzsKK+WCvj4nW3Vwc2V0XSc7Civlg4I+J1todW1wYmFja10nOwor5YOFPidbb25seV0nOwor5YOJPidbYWxsXSc7Civlg4o+J1tUYW9pc3Qgc3VwZXItYmVpbmddJzsKK+WDjT4nW2xhYm9yXSc7Civlg48+J1twaWN0dXJlXSc7Civlg5E+J1tzb2pvdXJuXSc7Civlg5U+J1tzbGF2ZV0nOwor5YOWPidbam95XSc7Civlg5o+J1tjb21wYW5pb25dJzsKK+WDnj4nW2ZhbHNlXSc7Civlg6M+J1thc3N1bWVdJzsKK+WDpT4nW2JlIGx1Y2t5XSc7Civlg6c+J1tidWRkaGlzdCBwcmllc3RdJzsKK+WDrT4nW2Fzc3VtZV0nOwor5YOuPidbcGFnZV0nOwor5YO1Pidbc3RpZmYgYW5kIG1vdGlvbmxlc3NdJzsKK+WDuT4nW3ByaWNlXSc7Civlg7s+J1tvdXQtb2YtdGhlLXdheV0nOwor5YSAPidbY2VyZW1vbnldJzsKK+WEgT4nW291dHN0YW5kaW5nXSc7CivlhII+J1tJXSc7CivlhIQ+J1todW5kcmVkIG1pbGxpb25dJzsKK+WEiT4nW3RlbXBlcmF0ZV0nOwor5YSSPidbY29uZnVjaWFuIHNjaG9sYXJdJzsKK+WElD4nW2NvbXBhbmlvbl0nOwor5YSVPidbYSBjb21wYW55XSc7CisjIuWElT4nW2EgY29tcGFueV0nIiwKK+WEmD4nW3V0bW9zdF0nOworIyLlhJg+J1t1dG1vc3RdJyIsCivlhJ8+J1tyZXBheV0nOwor5YShPidbcHVwcGV0XSc7CivlhKo+J1tzdXBlcmlvcl0nOwor5YSyPidbc2F2ZSBtb25leV0nOwor5YS3Pidbc3BvdXNlXSc7CivlhLo+J1tyaWNoXSc7CivlhLs+J1tpZl0nOwor5YS8PidbZ3JhdmVdJzsKK+WEvz4nW3Nvbl0nOwor5YWAPidbdG8gY3V0IG9mZiB0aGUgZmVldF0nOwor5YWBPidbdG8gZ3JhbnRdJzsKK+WFgz4nW2ZpcnN0XSc7CivlhYQ+J1tlbGRlciBicm90aGVyXSc7CivlhYU+J1tmaWxsXSc7CivlhYY+J1tvbWVuXSc7CivlhYc+J1thdHJvY2lvdXNdJzsKK+WFiD4nW2ZpcnN0XSc7CivlhYk+J1tsaWdodF0nOwor5YWLPidbZ3JhbV0nOwor5YWMPidbY2FzaF0nOwor5YWNPidbc3BhcmVdJzsKK+WFjj4nW3JhYmJpdF0nOwor5YWQPidbc29uXSc7CivlhZI+J1tzb25dJzsKK+WFlD4nW3JhYmJpdF0nOwor5YWaPidbcG9saXRpY2FsIHBhcnR5XSc7CivlhZw+J1twb3VjaF0nOwor5YWiPidbZmVhcmZ1bF0nOwor5YWlPidbZW50ZXJdJzsKK+WFqD4nW21haW50YWluXSc7Civlhak+J1t0d29dJzsKK+WFqj4nW3N1cm5hbWVdJzsKK+WFqz4nW2VpZ2h0XSc7Civlhaw+J1tmYWlyXSc7Civlha0+J1tudW1iZXIgc2l4XSc7Civlha4+J1tleGNsYW1hdG9yeSBwYXJ0aWNsZV0nOwor5YWxPidbdG9nZXRoZXIgd2l0aF0nOwor5YW1Pidbc29sZGllcl0nOwor5YW2PidbaGlzXSc7Civlhbc+J1t0b29sXSc7Civlhbg+J1tsYXddJzsKK+WFvD4nW3VuaXRlXSc7CivlhoA+J1tob3BlIGZvcl0nOwor5YaCPidbd2lkZV0nOwor5YaFPidbaW5zaWRlXSc7CivlhoY+J1t5ZW5dJzsKK+WGiT4nW3RlbmRlcl0nOwor5YaKPidbYm9va10nOwor5YaMPidbYm9va10nOwor5YaNPidbYWdhaW5dJzsKK+WGjz4nW1tub3QgZm91bmQgaW4gZGljdGlvbmFyeV1dJzsKK+WGkD4nW3Jpc2tdJzsKK+WGkT4nW2hlbG1ldF0nOwor5YaSPidbcmlza10nOwor5YaTPidbYSBzZWNsdWRlZCBwbGFjZV0nOwor5YaVPidbY3Jvd25dJzsKK+WGlj4nW2NvdmVyXSc7Civlhpc+J1tleGNlc3NpdmVdJzsKK+WGmT4nW3dyaXRlXSc7CivlhqA+J1tjYXBdJzsKK+WGoj4nW2J1cmlhbCBtb3VuZF0nOwor5YakPidbZ3JpZXZhbmNlXSc7CivlhqU+J1tkYXJrXSc7CivlhqY+J1tiYW5kaXRzXSc7Civlhqg+J1thYnVuZGFudF0nOwor5YapPidbd3JpdGVdJzsKK+WGqj4nW2NvdmVyLWNsb3RoXSc7Civlhqs+J1tpY2VdJzsKK+WGrD4nW3dpbnRlcl0nOwor5YawPidbaWNlXSc7CivlhrE+J1tmcmVlemluZ10nOwor5YayPidbc29hcl0nOwor5YazPidbZGVjaWRlXSc7CivlhrQ+J1tmcmVlemluZ10nOwor5Ya1PidbY29uZGl0aW9uXSc7CivlhrY+J1tzbWVsdF0nOwor5Ya3PidbY29sZF0nOwor5Ya9PidbY29sZCBhbmQgcmF3XSc7Civlh4Q+J1tiaXR0ZXIgY29sZF0nOwor5YeFPidbZHJpZWQgdXBdJzsKK+WHhj4nW2FwcHJvdmVdJzsKK+WHiT4nW2Nvb2xdJzsKK+WHiz4nW2JlIHdpdGhlcmVkXSc7Civlh4w+J1twdXJlXSc7Civlh40+J1tmcmVlemVdJzsKK+WHlj4nW3J1bGVdJzsKK+WHmz4nW3RvIHNoaXZlciB3aXRoIGNvbGQgb3IgZmVhcl0nOwor5YecPidbc2hpdmVyIHdpdGggY29sZCBvciBmZWFyXSc7Civlh50+J1tjb2FndWxhdGVdJzsKK+WHoD4nW3NtYWxsIHRhYmxlXSc7Civlh6E+J1thbGxdJzsKK+WHpj4nW3BsYWNlXSc7Civlh6c+J1traXRlXSc7Civlh6k+J1t3aW50cnkgd2luZF0nOwor5YeqPidbY2FsbV0nOwor5YetPidbbGVhbiBvbl0nOwor5YewPidbZmVtYWxlIHBob2VuaXhdJzsKK+WHsT4nW3RyaXVtcGhhbnRdJzsKK+WHtT4nW3JlY2VwdGFjbGVdJzsKK+WHtj4nW2N1bHByaXRdJzsKK+WHuD4nW3Byb3RydWRlXSc7Civlh7k+J1tjb25jYXZlXSc7Civlh7o+J1tnbyBvdXRdJzsKK+WHvT4nW2NvcnJlc3BvbmRlbmNlXSc7Civlh74+J1tjb3JyZXNwb25kZW5jZV0nOwor5YiAPidba25pZmVdJzsKK+WIgz4nW2VkZ2VkIHRvb2xdJzsKK+WIhD4nW2VkZ2VkIHRvb2xdJzsKK+WIhj4nW2RpdmlkZV0nOwor5YiHPidbY3V0XSc7CivliIg+J1tjdXQgb2ZmXSc7CivliIo+J1twdWJsaWNhdGlvbl0nOwor5YiLPidbcHVibGljYXRpb25dJzsKK+WIjj4nW2JlaGVhZF0nOwor5YiRPidbcHVuaXNobWVudF0nOwor5YiUPidbc2Nvb3Agb3V0XSc7CivliJc+J1tsaW5lXSc7CivliJ0+J1tiZWdpbm5pbmddJzsKK+WIpD4nW2p1ZGdlXSc7CivliKU+J1tzZXBhcmF0ZV0nOwor5YinPidbZGlzYXN0ZXJdJzsKK+WIqT4nW2dhaW5zXSc7CivliKo+J1t0byBjdXRdJzsKK+WIrj4nW3NoYXZlXSc7CivliLA+J1tnbyB0b10nOwor5YizPidbY3V0IG91dF0nOwor5Yi2Pidbc3lzdGVtXSc7CivliLc+J1ticnVzaF0nOwor5Yi4PidbY2VydGlmaWNhdGVdJzsKK+WIuT4nW3RlbXBsZV0nOwor5Yi6Pidbc3RhYl0nOwor5Yi7PidbY2FydmVdJzsKK+WJgz4nW3NoYXZlXSc7CivliYQ+J1tjdXQgdGhyb2F0XSc7CivliYc+J1tydWxlXSc7CivliYo+J1tzY3JhcGUgb2ZmXSc7CivliYs+J1tzdWJkdWVdJzsKK+WJjD4nW3NsYXNoXSc7CivliY0+J1tpbiBmcm9udF0nOwor5YmPPidbZXN0YWJsaXNoXSc7CivliZQ+J1twaWNrIG91dF0nOwor5YmWPidbc3BsaXQgaW4gdHdvXSc7CivliZs+J1toYXJkXSc7CivliZ4+J1tjYXJ2aW5nIG9yIGVuZ3JhdmluZyBrbmlmZV0nOwor5YmjPidbc3dvcmRdJzsKK+WJpD4nW21lZGljaW5hbCBwcmVwYXJhdGlvbl0nOwor5YmlPidbcGVlbF0nOwor5YmpPidbbGVmdG92ZXJzXSc7Civliao+J1tzY2lzc29yc10nOwor5YmvPidbYXNzaXN0XSc7CivlibA+J1tsZWZ0b3ZlcnNdJzsKK+WJsT4nW3N3b3JkXSc7CivlibI+J1tjdXRdJzsKK+WJsz4nW2JyaWVmIG5vdGVdJzsKK+WJtD4nW3NoYXJwZW5dJzsKK+WJtT4nW2VzdGFibGlzaF0nOwor5Ym9Pidbcm9iXSc7Civlib8+J1tkZXN0cm95XSc7CivlioM+J1tkaXZpZGVdJzsKK+WKhz4nW3RoZWF0cmljYWwgcGxheXNdJzsKK+WKiD4nW2N1dCBhcGFydF0nOwor5YqJPidbc3VybmFtZV0nOwor5YqNPidbc3dvcmRdJzsKK+WKkT4nW21lZGljaW5hbCBwcmVwYXJhdGlvbl0nOwor5YqSPidbc3dvcmRdJzsKK+WKlD4nW3N3b3JkXSc7Civlips+J1twb3dlcl0nOwor5YqfPidbYWNoaWV2ZW1lbnRdJzsKK+WKoD4nW2FkZCB0b10nOwor5YqjPidbYmFkXSc7Civliqk+J1toZWxwXSc7Civliqo+J1tleGVydF0nOwor5YqrPidbdGFrZSBieSBmb3JjZV0nOwor5YqsPidbYmUgZGlsaWdlbnRdJzsKK+WKrT4nW2VuY291cmFnZV0nOwor5YqxPidbc3RyaXZlXSc7CivlirQ+J1tsYWJvcl0nOwor5Yq1PidbY2VydGlmaWNhdGVdJzsKK+WKuT4nW2VmZmljYWNpb3VzXSc7Civlirw+J1tiZSBkaXNjcmVldF0nOwor5Yq+PidbZXhhbWluZSBpbnRvXSc7Civli4E+J1tzdHJvbmddJzsKK+WLgz4nW3N1ZGRlbmx5XSc7Civli4U+J1tpbXBlcmlhbCBkZWdyZWVdJzsKK+WLhz4nW2JyYXZlXSc7Civli4k+J1tlbmRlYXZvcl0nOwor5YuNPidbc3Ryb25nXSc7Civli5I+J1tzdHJhbmdsZV0nOwor5YuVPidbbW92ZV0nOwor5YuXPidbZW5qb2luXSc7Civli5g+J1tpbnZlc3RpZ2F0ZV0nOwor5YuZPidbYWZmYWlyc10nOwor5YudPidbdmljdG9yeV0nOwor5YuePidbbGFib3JdJzsKK+WLnz4nW2xldnldJzsKK+WLoD4nW2pvaW4gZm9yY2VzXSc7Civli6I+J1twb3dlcl0nOwor5YujPidbYWNoaWV2ZW1lbnRzXSc7Civli6Q+J1tpbmR1c3RyaW91c10nOwor5YumPidbZGVzdHJveV0nOwor5YunPidbcmVjb21tZW5kXSc7Civli7I+J1ttZXJpdG9yaW91cyBkZWVkXSc7Civli7M+J1ttZXJpdG9yaW91cyBkZWVkXSc7Civli7U+J1tzdHJpdmVdJzsKK+WLuD4nW3JlY29tbWVuZF0nOwor5Yu5Pidbd3JhcF0nOwor5Yu6Pidbc3Bvb25dJzsKK+WLvj4nW2hvb2tdJzsKK+WLvz4nW211c3Qgbm90XSc7CivljIE+J1tKYXBhbmVzZSB1bml0IG9mIHdlaWdodCAoMS8xMDAwIG9mIGEga2FuKV0nOwor5YyCPidbZnJhZ3JhbmNlXSc7CivljIU+J1t3cmFwXSc7CivljIY+J1toYXN0aWx5XSc7CivljIg+J1ticmVhc3RdJzsKK+WMjT4nW2NyYXdsXSc7CivljI8+J1tnb3VyZF0nOwor5YyQPidbZmFsbCBwcm9zdHJhdGVdJzsKK+WMlT4nW3Nwb29uXSc7CivljJY+J1tjaGFuZ2VdJzsKK+WMlz4nW25vcnRoXSc7CivljJk+J1tzcG9vbl0nOwor5YyaPidbYm94XSc7CivljJ0+J1tmdWxsIGNpcmNsZV0nOwor5YygPidbY3JhZnRzbWFuXSc7CivljKE+J1tjb3JyZWN0XSc7CivljKM+J1tzbWFsbCBib3hdJzsKK+WMqj4nW2JhbmRpdHNdJzsKK+WMrz4nW2NvbmNvdXJzZV0nOwor5YyxPidbdG8gbGFja10nOwor5YyzPidbbGFkaWVzIHRvaWxldCBjYXNlIHdpdGggbWlycm9yXSc7CivljLg+J1tib3hdJzsKK+WMuT4nW2JvbHQgb2YgY2xvdGhdJzsKK+WMuj4nW2FyZWFdJzsKK+WMuz4nW2N1cmVdJzsKK+WMvz4nW2hpZGVdJzsKK+WNgD4nW2FyZWFdJzsKK+WNgT4nW3Rlbl0nOwor5Y2DPidbdGhvdXNhbmRdJzsKK+WNhT4nW3RoaXJ0eV0nOwor5Y2GPidbc29sZGllcl0nOwor5Y2HPidbYXJpc2VdJzsKK+WNiD4nW25vb25dJzsKK+WNiT4nW2dlbmVyYWwgdGVybSBmb3IgcGxhbnRzXSc7CivljYo+J1toYWxmXSc7CivljY0+J1tzd2FzdGlrYSAtIGZvdXJ0aCBvZiBhdXNwaWNpb3VzXSc7CivljZE+J1todW1ibGVdJzsKK+WNkj4nW3NvbGRpZXJdJzsKK+WNkz4nW3Byb2ZvdW5kXSc7CivljZQ+J1tiZSB1bml0ZWRdJzsKK+WNlz4nW3NvdXRoXSc7CisjIuWNlz4nW3NvdXRoXSciLAor5Y2aPidbZ2FtYmxlXSc7CivljZw+J1tmb3J0dW5lIHRlbGxpbmddJzsKK+WNnj4nW2JlIGltcGF0aWVudF0nOwor5Y2gPidbZGl2aW5lXSc7CivljaY+J1tmb3J0dW5lIHRlbGxpbmddJzsKK+WNqT4nW3NlYWxdJzsKK+WNrj4nW21lYXN1cmluZyBjdXBdJzsKK+WNrz4nWzR0aCBvZiBFYXJ0aCBCcmFuY2hlc10nOwor5Y2wPidbcHJpbnRdJzsKK+WNsT4nW2Rhbmdlcm91c10nOwor5Y2zPidbcHJvbXB0bHldJzsKK+WNtD4nW3N0aWxsXSc7CivljbU+J1tlZ2ddJzsKK+WNtz4nW3Njcm9sbF0nOwor5Y24PidbbGF5IGRvd25dJzsKK+WNuz4nW3N0aWxsXSc7Civljb8+J1tub2JsZV0nOwor5Y6CPidbZmFjdG9yeV0nOwor5Y6EPidbYWR2ZXJzaXR5XSc7CivljpY+J1tidWxreV0nOwor5Y6YPidbdGhvdXNhbmR0aCBwYXJ0IG9mIHRhZWxdJzsKK+WOmj4nW3RoaWNrXSc7Civljp8+J1tzb3VyY2VdJzsKK+WOoD4nW21pbmdsZSB3aXRoXSc7CivljqU+J1twZXJzb25hbCBwcm9ub3VuIC0gaGVdJzsKK+WOpj4nW2JpZyBidWlsZGluZ10nOwor5Y6oPidba2l0Y2hlbl0nOwor5Y6pPidbc3RhYmxlXSc7Civljq0+J1tkaXNsaWtlXSc7Civljq4+J1tzZXJ2YW50XSc7CivljrA+J1tmYWN0b3J5XSc7CivljrM+J1tzdHJpY3RdJzsKK+WOtj4nW3ByaXZhdGVdJzsKK+WOuz4nW2dvIGF3YXldJzsKK+WPgj4nW3Rha2UgcGFydCBpbl0nOwor5Y+DPidbdGFrZSBwYXJ0IGluXSc7Civlj4g+J1thbmRdJzsKK+WPiT4nW2Nyb3RjaF0nOwor5Y+KPidbZXh0ZW5kXSc7Civlj4s+J1tmcmllbmRdJzsKK+WPjD4nW3NldCBvZiB0d29dJzsKK+WPjT4nW3JldmVyc2VdJzsKK+WPjj4nW2dhdGhlciB0b2dldGhlcl0nOwor5Y+UPidbZmF0aGVyJydzIHlvdW5nZXIgYnJvdGhlcl0nOwor5Y+WPidbdGFrZV0nOwor5Y+XPidbcmVjZWl2ZV0nOwor5Y+ZPidbZXhwcmVzc10nOwor5Y+bPidbcmViZWxdJzsKK+WPnz4nW29sZCBtYW5dJzsKK+WPoT4nW2FzdHV0ZV0nOwor5Y+iPidbYnVzaF0nOwor5Y+jPidbbW91dGhdJzsKK+WPpD4nW29sZF0nOwor5Y+lPidbc2VudGVuY2VdJzsKK+WPqD4nW3RhbGthdGl2ZV0nOwor5Y+pPidba25vY2tdJzsKK+WPqj4nW29ubHldJzsKK+WPqz4nW2NyeV0nOwor5Y+sPidbaW1wZXJpYWwgZGVjcmVlXSc7Civlj60+J1t0cnVtcGV0XSc7Civlj64+J1tleGhvcnQgb3IgZW5qb2luIHJlcGVhdGVkbHldJzsKK+WPrz4nW21heV0nOwor5Y+wPidbcGxhdGZvcm1dJzsKK+WPsT4nW3Njb2xkXSc7Civlj7I+J1toaXN0b3J5XSc7Civlj7M+J1tyaWdodF0nOwor5Y+2PidbdG8gaGFybW9uaXplXSc7Civlj7c+J1ttYXJrXSc7Civlj7g+J1t0YWtlIGNoYXJnZSBvZl0nOworIyLlj7k+J1tzaWdoXSciLAor5ZCBPidbaW50ZXJqZWN0aW9uIFwiQWxhcyFcIl0nOwor5ZCDPidbZWF0XSc7CivlkIQ+J1tlYWNoXSc7CivlkIg+J1tjb21iaW5lXSc7CivlkIk+J1tsdWNreV0nOwor5ZCKPidbY29uZG9sZV0nOwor5ZCLPidbaW5jaF0nOwor5ZCMPidbc2FtZV0nOwor5ZCNPidbbmFtZV0nOwor5ZCOPidbcXVlZW5dJzsKK+WQjz4nW2dvdmVybm1lbnQgb2ZmaWNpYWxdJzsKK+WQkD4nW3ZvbWl0XSc7CivlkJE+J1t0b3dhcmRdJzsKK+WQmz4nW3NvdmVyZWlnbl0nOwor5ZCdPidbc3Rpbmd5XSc7CivlkJ8+J1tzaW5nXSc7CivlkKA+J1tiYXJrXSc7CivlkKY+J1tub3RdJzsKK+WQqT4nW29yZGVyXSc7CivlkKs+J1tob2xkIGluIG1vdXRoXSc7CivlkKw+J1toZWFyXSc7CivlkK0+J1t0aHJvYXRdJzsKK+WQrj4nW3N1Y2sgd2l0aCBtb3V0aF0nOwor5ZC2PidbcmFpc2Ugdm9pY2VdJzsKK+WQuD4nW2luaGFsZV0nOwor5ZC5PidbYmxvd10nOwor5ZC7Pidba2lzc10nOwor5ZC8Pidbcm9hcl0nOwor5ZC9PidbXCJPTVwiXSc7CivlkL4+J1tpXSc7CivlkYA+J1twYXJ0aWNsZSB1c2VkIGV4cHJlc3Mgc3VycHJpc2VdJzsKK+WRgj4nW3N1cm5hbWVdJzsKK+WRhj4nW2R1bGxdJzsKK+WRiD4nW3N1Ym1pdF0nOwor5ZGJPidbb25lIG9mIHdhcnJpbmcgc3RhdGVzXSc7CivlkYo+J1t0ZWxsXSc7CivlkY4+J1tmb290XSc7CivlkZE+J1tzd2FsbG93XSc7CisjIuWRnD4nW3NvdW5kIG9mIGNyeWluZ10nIiwKK+WRqD4nW3pob3UgZHluYXN0eV0nOwor5ZGqPidbY3Vyc2VdJzsKKyMi5ZGwPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivlkbE+J1t3YWlsXSc7CivlkbM+J1t0YXN0ZV0nOwor5ZG1Pidbc2NvbGRdJzsKK+WRtj4nW3RhbGthdGl2ZV0nOwor5ZG3Pidbc3Vja10nOwor5ZG7PidbZ3JvYW5dJzsKK+WRvD4nW2JyZWF0aGUgc2lnaF0nOwor5ZG9PidbbGlmZV0nOwor5ZKAPidbc3Vja10nOwor5ZKEPidbbm9pc2Ugb2YgcmFnZV0nOwor5ZKGPidbcm9hcl0nOwor5ZKLPidbd2h5PyBob3c/IHdoYXQ/XSc7Civlkow+J1toYXJtb255XSc7Civlko4+J1tmYXVsdF0nOwor5ZKPPidbc2luZyBzb25nIG9yIHBvZW1dJzsKK+WSkD4nW2luc3RydWN0XSc7CivlkpI+J1tjdXJzZV0nOwor5ZKiPidbc291bmRdJzsKK+WSpD4nW3Njb2xkXSc7CivlkqU+J1tzb3VuZCBvZiBjYXRdJzsKK+WSqD4nW2lucXVpcmVdJzsKK+WSqz4nW2Zvb3QgbWVhc3VyZSBvZiBaaG91IGR5bmFzdHldJzsKK+WSrD4nW2JpdGVdJzsKK+WSrz4nW2ZpbmFsIHBhcnRpY2xlXSc7CivlkrI+J1tzbWlsZV0nOwor5ZKzPidbY291Z2hdJzsKK+WSuD4nW3RvZ2V0aGVyXSc7Civlkrw+J1tjaGF0XSc7Civlkr0+J1t0aHJvYXRdJzsKK+WSvj4nW2Egbm9pc2VdJzsKK+WTgD4nW3NhZF0nOwor5ZOBPidbYXJ0aWNsZV0nOwor5ZOCPidbc21pbGVdJzsKK+WThD4nW2NvYXhdJzsKK+WThz4nW3ZvbWl0XSc7Civlk4g+J1tzb3VuZCBvZiBsYXVnaHRlcl0nOwor5ZOJPidbZmluYWwgZXhjbGFtYXRvcnkgcGFydGljbGVdJzsKKyMi5ZOXPidbcnVzaGluZyBzb3VuZF0nIiwKK+WToT4nW21lbWJlcl0nOwor5ZOiPidbc3lsbGFibGVdJzsKK+WTpT4nW2VsZGVyIGJyb3RoZXJdJzsKK+WTpj4nW29oPyByZWFsbHk/IGlzIHRoYXQgc28/XSc7Civlk6g+J1t3aGlzdGxlXSc7Civlk6k+J1ttaWxlXSc7Civlk60+J1t3ZWVwXSc7Civlk64+J1tjb3VnaF0nOwor5ZOyPidbd2lzZV0nOwor5ZO6PidbY2hldyBmb29kXSc7Civlk70+J1tjaG9rZV0nOwor5ZSEPidbZmluYWwgcGFydGljbGUgb2YgYXNzZXJ0aW9uIHBhdGhha2FdJzsKK+WUhj4nW21ha2UgbWlzY2hpZWZdJzsKK+WUhz4nW2xpcHNdJzsKK+WUjz4nW3dlZXAgb3Igc29iXSc7CivllJA+J1t0YW5nIGR5bmFzdHldJzsKK+WUlD4nW2hvbGQgaW4gbW91dGhdJzsKK+WUlj4nW2R1bWJdJzsKK+WUrj4nW3NlbGxdJzsKK+WUrz4nW29ubHldJzsKK+WUsT4nW3NpbmddJzsKK+WUsz4nW2NyeSBvZiBiaXJkXSc7CivllLg+J1tyZWNpdGVdJzsKK+WUuT4nW3RvIHNtaWxlIGF0XSc7CivllL4+J1tzcGl0XSc7CivllYA+J1tnbmF3XSc7CivllYQ+J1t0byBwZWNrXSc7CisjIuWVhD4nW3RvIHBlY2tdJyIsCivllYY+J1tjb21tZXJjZV0nOwor5ZWMPidbYW5pbWFsIGRpc2Vhc2VdJzsKK+WVjz4nW2FzayAoYWJvdXQpXSc7CivllZM+J1tvcGVuXSc7CivllZY+J1tlYXRdJzsKK+WVlz4nW2VhdF0nOwor5ZWcPidbc2lwXSc7CisjIuWVnD4nW3NpcF0nIiwKK+WVoz4nW2hvbGQgaW4gbW91dGhdJzsKK+WVuz4nW29ubHldJzsKK+WVvD4nW3dlZXBdJzsKK+WVvj4nW3dhaWxpbmcgb2YgY2hpbGRdJzsKK+WWgD4nW3ZvbWl0XSc7CivlloM+J1trZWVwIHRhbGtpbmddJzsKK+WWhD4nW2dvb2RdJzsKK+WWhz4nW2hvcm5dJzsKK+WWiT4nW3Rocm9hdF0nOwor5ZaKPidbc2hvdXRdJzsKK+WWiz4nW25hZ10nOwor5ZaYPidbcGFudF0nOwor5ZaZPidbYmVha10nOwor5ZaaPidbY2FsbF0nOwor5ZacPidbbGlrZV0nOwor5ZadPidbZHJpbmtdJzsKK+WWnj4nW2NoaXJwaW5nIG9mIGluc2VjdHNdJzsKK+WWnz4nW2hlYXZlIHNpZ2hdJzsKK+WWpz4nW2xpdmVseV0nOwor5ZaoPidbd2FpbF0nOwor5ZapPidbbWV0YXBob3JdJzsKK+WWqj4nW21vdXJuaW5nXSc7Civllqs+J1tlYXRdJzsKK+WWrD4nW3RhbGxdJzsKK+WWrj4nW3NpbmdsZV0nOwor5ZawPidbdG8gZWF0XSc7CivllrY+J1tlbmNhbXBtZW50XSc7Civll4Q+J1tob2Fyc2Ugb2Ygdm9pY2VdJzsKK+WXhT4nW3NtZWxsXSc7Civll4c+J1ttaXNlcmx5XSc7Civll5Q+J1tiZSBhbmdyeSBhdF0nOwor5ZeaPidbc291bmQgb2YgY3J5aW5nXSc7Civll5w+J1tiZSBmb25kIG9mXSc7Civll58+J1tzaWdoXSc7Civll6M+J1t0byBjb25uZWN0XSc7Civll6Q+J1tsYXVnaCBhdF0nOwor5Ze3PidbbG91ZCBjbGFtb3JdJzsKK+WXuT4nW2NoYXR0ZXJdJzsKK+WXvT4nW2NvdWdoXSc7Civll74+J1t0byBzZXQgYSBkb2cgb25dJzsKK+WYhj4nW3NpZ2hdJzsKK+WYiT4nW2V4Y2VsbGVudF0nOwor5ZiUPidbdm9taXRdJzsKK+WYlj4nW2ludGVyamVjdGlvbiBvZiBhcHByb3ZhbCBvciBhZG1pXSc7CivlmJc+J1t0YXN0ZV0nOwor5ZiYPidbZXhoYWxlXSc7CivlmJs+J1tmaW5hbCBleGNsYW1hdG9yeSBwYXJ0aWNsZV0nOwor5ZipPidbcnVzaGluZyBzb3VuZF0nOwor5ZivPidbcm9hcl0nOwor5ZixPidbb3JkZXJdJzsKK+WYsj4nW3JpZGljdWxlXSc7CivlmLQ+J1ttb3V0aF0nOwor5Zi2PidbbmVpZ2hpbmcgb2YgYSBob3JzZV0nOwor5Zi4PidbdW5jbGVhcl0nOwor5ZmCPidbbWVldF0nOwor5ZmMPidbc2NvbGRdJzsKK+WZjj4nW2Nob2tlXSc7CivlmZA+J1tyZWNlcHRhY2xlXSc7CivlmZs+J1tiaXRlXSc7CivlmaQ+J1tjbG9zZV0nOwor5ZmoPidbcmVjZXB0YWNsZV0nOwor5ZmqPidbYmUgbm9pc3ldJzsKK+WZqz4nW2JlbGNoXSc7Civlmaw+J1tiaXRlXSc7CivlmbQ+J1tzcHVydF0nOwor5Zm4PidbbWV0cmljIHRvbl0nOwor5Zm6Pidbc3RvcnldJzsKK+WagD4nW2Vuam9pbl0nOwor5ZqGPidbZ2l2ZSBmb3J0aCBzb3VuZF0nOwor5ZqHPidbc2NhcmVdJzsKK+Waij4nW3RvIHBhbnRdJzsKK+Wajz4nW3NuZWV6ZV0nOwor5ZqUPidbc25lZXplXSc7CisjIuWanD4nW2JlIHNpbGVudF0nIiwKK+Waoj4nW2JhZ10nOwor5ZqlPidbc3dhbGxvd10nOwor5ZquPidbZ3VpZGVdJzsKK+WatD4nW3N0cmljdF0nOwor5Zq2Pidbc2VlayBmcmllbmRzXSc7Civlmrw+J1twcmF0dGxlXSc7Civlm4A+J1tzaW5nXSc7Civlm4E+J1ttb3ZlIGxpcCB3aGVuIHNwZWFraW5nXSc7Civlm4I+J1tiZSBub2lzeV0nOworIyLlm4I+J1tiZSBub2lzeV0nIiwKK+WbiD4nW3RhbGsgaW4gb25lJydzIHNsZWVwXSc7CisjIuWbjT4nW2RvdWJsZSBoYXBwaW5lc3NdJyIsCivlm5E+J1tvcmRlcl0nOwor5ZuTPidbZ25hd10nOwor5ZuXPidbZXJlY3RdJzsKK+WbmD4nW3JldHVybl0nOwor5ZuaPidbcHJpc29uZXJdJzsKK+Wbmz4nW2ZvdXJdJzsKK+Wbnj4nW3JldHVybl0nOwor5ZugPidbY2F1c2VdJzsKK+Wboz4nW3NwaGVyZV0nOwor5ZuuPidbaW52ZWlnbGVdJzsKK+WbsD4nW3N1cnJvdW5kXSc7Civlm7I+J1tzdXJyb3VuZF0nOwor5ZuzPidbZGlhZ3JhbV0nOwor5Zu5PidbcHJpc29uXSc7Civlm7o+J1tiZWNvbWUgc29saWRdJzsKK+WbvT4nW25hdGlvbl0nOwor5Zu/PidbcGVuIHVwXSc7CivlnIA+J1tuYXRpb25dJzsKK+Wcgz4nW2dhcmRlbl0nOwor5ZyEPidbcHJpc29uXSc7CivlnIg+J1t0byBjaXJjbGVdJzsKK+WciT4nW3N0YWJsZV0nOwor5ZyLPidbbmF0aW9uXSc7CivlnI0+J1tzdXJyb3VuZF0nOwor5ZyPPidbdG8gY2lyY2xlXSc7CivlnJI+J1tnYXJkZW5dJzsKK+Wckz4nW2NpcmNsZV0nOwor5ZyWPidbZGlhZ3JhbV0nOwor5ZyYPidbc3BoZXJlXSc7CivlnJw+J1tjaXJjbGVdJzsKK+Wcnz4nW3NvaWxdJzsKK+Wcpj4nWyhrb2t1amkpIHdhdGVyIGdhdGVdJzsKKyMi5ZymPidbKGtva3VqaSkgd2F0ZXIgZ2F0ZV0nIiwKK+WcqD4nW2JlIGF0XSc7CivlnK0+J1tqYWRlIHBvaW50ZWQgYXQgdG9wXSc7CivlnLA+J1tlYXJ0aF0nOworIyLlnLM+J1tmdXJyb3cgaW4gZmllbGRdJyIsCisjIuWcsz4nW2Z1cnJvdyBpbiBmaWVsZF0nIiwKK+Wcuz4nW2JvcmRlcl0nOwor5Z2APidbc2l0ZV0nOwor5Z2CPidbaGlsbHNpZGVdJzsKK+Wdhz4nW2VxdWFsXSc7CivlnYo+J1tuZWlnaGJvcmhvb2RdJzsKK+Wdjj4nW3BpdF0nOwor5Z2PPidbcm90dGVuXSc7CivlnZA+J1tzaXRdJzsKK+WdkT4nW3BpdF0nOwor5Z2hPidbc2xvcGVdJzsKK+WdpD4nW2VhcnRoXSc7CivlnaY+J1tmbGF0XSc7Civlnak+J1tlYXJ0aGVud2FyZV0nOwor5Z2qPidbbGV2ZWwgZ3JvdW5kXSc7Civlnb8+J1ttb3VuZF0nOwor5Z6CPidbbGV0IGRvd25dJzsKKyMi5Z6GPidbYmxhY2sgY2xvZHMgb2YgZWFydGhdJyIsCisjIuWeiT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5Z6LPidbcGF0dGVybl0nOwor5Z6TPidbYm9yZGVyXSc7CivlnqA+J1tib3VuZGFyeV0nOwor5Z6iPidbZGlydF0nOwor5Z6jPidbbG93IHdhbGxdJzsKK+WepD4nW2FudC1oaWxsXSc7CisjIuWeqT4nW2hvbHldJyIsCisjIuWerj4nW2JlIGRlZmVhdGVkXSciLAorIyLlnrI+J1toaWdoIGFuZCBkcnkgcGxhY2VdJyIsCivln4A+J1tsZXQgZG93bl0nOwor5Z+DPidbZmluZSBkdXN0XSc7Civln4Y+J1tzdG9ueV0nOwor5Z+LPidbYnVyeV0nOwor5Z+OPidbY2FzdGxlXSc7Civln5I+J1tlbmNsb3N1cmVdJzsKK+Wfkz4nW2VuY2xvc3VyZV0nOwor5Z+UPidbcGxhaW5dJzsKKyMi5Z+UPidbcGxhaW5dJyIsCivln5w+J1tvcGVuIGNvdW50cnldJzsKK+Wfnz4nW2Rpc3RyaWN0XSc7Civln6A+J1twb3J0IGNpdHldJzsKKyMi5Z+jPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivln7Q+J1tzb2lsIHdpdGggbGFyZ2UgY2xheSBjb250ZW50XSc7Civln7c+J1tob2xkIGluIGhhbmRdJzsKK+WfuT4nW2JhbmsgdXAgd2l0aCBkaXJ0XSc7Civln7o+J1tmb3VuZGF0aW9uXSc7Civln7w+J1toZWFkbGFuZF0nOwor5aCAPidbY2F2ZV0nOwor5aCCPidbaGFsbF0nOwor5aCFPidbaGFyZF0nOwor5aCGPidbaGVhcF0nOwor5aCKPidbd2hpdGUgZWFydGhdJzsKK+Wgiz4nW2J1cnldJzsKK+WglT4nW2ZhbGxdJzsKK+WgmT4nW2J1cnldJzsKK+WgnT4nW2NydWNpYmxlXSc7CivloKE+J1tmb3J0XSc7CivloKQ+J1tkaWtlXSc7CivloKo+J1thZGVxdWF0ZWx5IGNhcGFibGUgb2ZdJzsKK+Wgrz4nW2EgbGVnZW5kYXJ5IGFuY2llbnQgZW1wZXJvci1zYWdlXSc7CivloLA+J1tkYW1dJzsKK+WgsT4nW3JlcG9ydF0nOwor5aC0Pidbb3BlbiBzcGFjZV0nOwor5aC1Pidbd2FsbF0nOwor5aC6PidbcGVyc29uJydzIG5hbWVdJzsKK+WgvT4nW21vdW5kXSc7CivloYA+J1t3YWxsXSc7CivloYE+J1tyYW1wYXJ0XSc7CivloYo+J1twaWVjZV0nOwor5aGLPidbZ3JhdmVdJzsKK+WhkT4nW21vZGVsIGluIGNsYXldJzsKK+Whkj4nW3Jvb3N0XSc7CivloZQ+J1t0b3dlcl0nOwor5aGXPidbc21lYXJdJzsKK+WhmD4nW3BvbmRdJzsKK+WhmT4nW3RydWx5XSc7CivloZo+J1tjZW1ldGVyeV0nOwor5aGePidbc3RvcCB1cF0nOwor5aGiPidbZW50cmVuY2htZW50XSc7Civloak+J1tzYWx0XSc7Civloas+J1tmaWxsIGluXSc7CisjIuWhrT4nW1tub3QgZm91bmQgaW4gYW55IGRpY3Rpb25hcnldXSciLAor5aGyPidbb3BlbiBzcGFjZV0nOwor5aG1PidbZHVzdF0nOwor5aG5PidbbW9hdF0nOwor5aG+PidbdmlsbGFnZSBzY2hvb2xdJzsKK+Wigz4nW2JvdW5kZXJ5XSc7CivlooU+J1t2aWxsYV0nOwor5aKTPidbZ3JhdmVdJzsKK+Wilz4nW2luY3JlYXNlXSc7Civlopw+J1tmYWxsIGRvd25dJzsKK+Winz4nW2hpZ2ggbW91bmRdJzsKK+WiqD4nW2lua10nOwor5aKrPidbY3VwXSc7Civloq4+J1tmYWxsXSc7CivlorM+J1tncmF2ZV0nOworIyLlorM+J1tncmF2ZV0nIiwKKyMi5aKzPidbZ3JhdmVdJyIsCivloro+J1s0IHdhbGxzXSc7Civlors+J1t3YWxsXSc7Civlor4+J1tjdWx0aXZhdGVdJzsKK+WjgT4nW3BhcnRpdGlvbiB3YWxsXSc7Civlo4U+J1t0byBvYnN0cnVjdF0nOwor5aOHPidbYWx0YXJdJzsKK+Wjij4nW2JhZF0nOwor5aOMPidbc29pbF0nOwor5aORPidbYmVkIG9mIHRvcnJlbnRdJzsKK+Wjkz4nW3ByZXNzXSc7Civlo5U+J1t0cmVuY2hdJzsKKyMi5aOWPidbb3BlbiBzcGFjZSBhbG9uZyB3YXRlcl0nIiwKK+WjmD4nW3JhbXBhcnRdJzsKK+WjmT4nW3RvbWJdJzsKK+WjnD4nW2VhcnRoZW4gamFyIG9yIGp1Z10nOwor5aOePidbYmFkXSc7Civlo58+J1tncmF2ZV0nOwor5aOkPidbc29pbF0nOworIyLlo6U+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+Wjqz4nW3NjaG9sYXJdJzsKK+WjrD4nW25pbnRoIG9mIHRlbiBjZWxlc3RpYWwgc3RlbXNdJzsKK+Wjrj4nW2JpZ10nOwor5aOvPidbYmlnXSc7Civlo7A+J1tzb3VuZF0nOwor5aOxPidbbnVtYmVyIG9uZV0nOwor5aOyPidbc2VsbF0nOwor5aO3PidbamFyXSc7Civlo7k+J1tudW1iZXIgb25lXSc7Civlo7o+J1tqYXJdJzsKK+Wjuz4nW3Nvbi1pbi1sYXddJzsKK+WjvD4nW3BhbGFjZSBjb3JyaWRvciBvciBwYXNzYWdld2F5XSc7Civlo70+J1tvbGQgYWdlXSc7CivlpII+J1tnb10nOwor5aSJPidbY2hhbmdlXSc7CivlpIo+J1tSYWRpY2FsIE5vLiAzNV0nOwor5aSPPidbc3VtbWVyXSc7CivlpJA+J1tsb25nXSc7CivlpJU+J1tldmVuaW5nXSc7CivlpJY+J1tvdXRdJzsKK+WkmD4nWzR0aCBvZiBFYXJ0aCBCcmFuY2hlc10nOwor5aSZPidbZWFybHkgaW4gbW9ybmluZ10nOwor5aSaPidbbXVjaF0nOwor5aSbPidbbXVjaF0nOwor5aScPidbbmlnaHRdJzsKK+Wkoj4nW2RyZWFtXSc7CivlpKU+J1tjb21wYW5pb25dJzsKK+Wkpz4nW2JpZ10nOwor5aSpPidbc2t5XSc7CivlpKo+J1t2ZXJ5XSc7CivlpKs+J1ttYW5dJzsKK+WkrD4nW3BhcnRlZF0nOwor5aStPidbeW91bmddJzsKK+Wkrj4nW2NlbnRlcl0nOwor5aSxPidbbG9zZV0nOwor5aSyPidbYWR2YW5jZSBxdWlja2x5XSc7CivlpLc+J1thbmNpZW50IGJhcmJhcmlhbiB0cmliZXNdJzsKK+WkuD4nW2V4dHJhdmFnYW50XSc7CivlpL4+J1tiZSB3ZWRnZWQgb3IgaW5zZXJ0ZWQgYmV0d2Vlbl0nOwor5aWEPidbZXJlIGxvbmddJzsKK+Wlhz4nW3N0cmFuZ2VdJzsKK+WliD4nW2J1dF0nOwor5aWJPidbb2ZmZXJdJzsKK+Wljj4nW3N0cmlkZSBvZiBtYW5dJzsKK+Wljz4nW21lbW9yaWFsaXplIGVtcGVyb3JdJzsKK+WlkD4nW2JlIG51bWVyb3VzXSc7CivlpZE+J1tkZWVkXSc7CivlpZQ+J1tydW4gZmFzdF0nOwor5aWVPidbaW4gc2VxdWVuY2VdJzsKK+Wllz4nW2Nhc2VdJzsKK+WlmD4nW2xhcmdlXSc7CivlpZo+J1t3aGVyZT8gd2hhdD8gaG93PyB3aHk/XSc7CivlpaA+J1twYXkgcmVzcGVjdF0nOwor5aWiPidbZXh0cmF2YWdhbnRdJzsKK+WlpT4nW215c3RlcmlvdXNdJzsKK+Wlpz4nW215c3RlcmlvdXNdJzsKK+WlqD4nW3ByaXplXSc7Civlpak+J1tsYWR5JydzIHZhbml0eSBjYXNlXSc7Civlpao+J1t0YWtlIGJ5IGZvcmNlXSc7Civlpaw+J1twcml6ZV0nOwor5aWuPidbc3RyaXZlXSc7CivlpbM+J1t3b21hbl0nOwor5aW0Pidbc2xhdmVdJzsKK+WluD4nW2NyYWZ0eV0nOwor5aW9PidbZ29vZF0nOwor5aaBPidbYWN0IGFzIGdvLWJldHdlZW5dJzsKK+Wmgj4nW2lmXSc7CivlpoM+J1t3aWZlXSc7CivlpoQ+J1thYnN1cmRdJzsKK+Wmij4nW2NvbmNlaXZlXSc7Civlpo0+J1tiZWF1dGlmdWxdJzsKK+Wmkz4nW3Byb3N0aXR1dGVdJzsKK+Wmlj4nW3N0cmFuZ2VdJzsKK+WmmT4nW215c3RlcmlvdXNdJzsKKyMi5aaZPidbbXlzdGVyaW91c10nIiwKK+WmnT4nW2Fkb3JuIG9uZXNlbGZdJzsKK+Wmoz4nW29uZScncyBkZWNlYXNlZCBtb3RoZXJdJzsKK+WmpT4nW3NhdGlzZmFjdG9yeV0nOwor5aaoPidbaW50ZXJmZXJlIHdpdGhdJzsKK+WmrD4nW2plYWxvdXNdJzsKK+Wmsj4nW2NvbmN1YmluZSBvZiBsYXN0IHJ1bGVyIG9mIHNoYW5nXSc7Civlprk+J1t5b3VuZ2VyIHNpc3Rlcl0nOwor5aa7Pidbd2lmZV0nOwor5aa+PidbY29uY3ViaW5lXSc7Civlp4Y+J1tjaGlsZCcncyBnb3Zlcm5lc3NdJzsKK+WniT4nW2VsZGVyIHNpc3Rlcl0nOwor5aeLPidbYmVnaW5dJzsKK+WnkD4nW2VsZGVyIHNpc3Rlcl0nOwor5aeRPidbZmF0aGVyJydzIHNpc3Rlcl0nOwor5aeTPidbb25lJydzIGZhbWlseSBuYW1lXSc7Civlp5Q+J1thcHBvaW50XSc7Civlp5k+J1tjb25jZWl2ZV0nOwor5aeaPidbaGFuZHNvbWVdJzsKK+WnnD4nW3N1cm5hbWVdJzsKK+WnpT4nW21hdGVybmFsIGdyYW5kbW90aGVyXSc7Civlp6Y+J1thZHVsdGVyeV0nOwor5aeoPidbbW90aGVyL3dpZmUnJ3Mgc2lzdGVyXSc7Civlp6o+J1tuaWVjZV0nOwor5aerPidbYmVhdXR5XSc7CisjIuWnsT4nW2JlYXV0aWZ1bF0nIiwKK+Wnuz4nW3JlbGF0aXZlcyBieSBtYXJyaWFnZV0nOwor5ae/Pidbb25lJydzIG1hbm5lcl0nOwor5aiBPidbcG9tcF0nOwor5aiDPidbYmFieV0nOwor5aiJPidbYmVhdXRpZnVsXSc7CivlqJE+J1tkYW5jZV0nOwor5aiYPidbbW90aGVyXSc7CisjIuWomj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5aicPidbZWxlZ2FudF0nOwor5aifPidbYmVhdXRpZnVsXSc7CivlqKA+J1twcmVnbmFudF0nOwor5ailPidbYmUgYmVhdXRpZnVsXSc7CivlqKk+J1tnaXZlIGJpcnRoIGNoaWxkXSc7CivlqK8+J1twbGVhc3VyZV0nOwor5ai1Pidbc3Rhcl0nOwor5ai2PidbbWFycnldJzsKK+WovD4nW3Byb3N0aXR1dGVdJzsKK+WpgD4nW2JlIGJlYXV0aWZ1bF0nOwor5amBPidbc3VybmFtZV0nOwor5amGPidbb2xkIHdvbWFuXSc7CivlqYk+J1thbWlhYmxlXSc7CivlqZo+J1tnZXQgbWFycmllZF0nOwor5amiPidbc2VydmFudCBnaXJsXSc7CivlqaY+J1ttYXJyaWVkIHdvbWVuXSc7Civlqao+J1tjb3ZldF0nOwor5amsPidbb2JzY2VuZV0nOwor5am/Pidbc29uLWluLWxhd10nOwor5aqSPidbZ28tYmV0d2Vlbl0nOwor5aqaPidbY2hhcm1pbmddJzsKK+Wqmz4nW2JlYXV0eV0nOwor5aq8Pidbb2xkIHdvbWFuXSc7Civlqr0+J1ttb3RoZXJdJzsKK+Wqvj4nW21hcnJ5XSc7Civlq4E+J1ttYXJyeV0nOwor5auCPidbc2lzdGVyLWluLWxhd10nOwor5auJPidbamVhbG91c3ldJzsKK+Wriz4nW3NsZW5kZXIgYW5kIGRlbGljYXRlXSc7Civlq4w+J1toYXRlXSc7Civlq5A+J1tmcm9saWNdJzsKK+Wrlj4nW3BhdHJvbml6ZSBwcm9zdGl0dXRlc10nOwor5auXPidbb2xkIHdvbWFuXSc7Civlq6E+J1tsZWdhbCB3aWZlXSc7Civlq6M+J1tjaGFybWluZ10nOwor5aumPidbbmFtZSBvZiBhIG1vb24gZ29kZGVzc10nOwor5aupPidbc29mdF0nOwor5au6PidbcmVmaW5lZF0nOwor5au7PidbZWxlZ2FudF0nOwor5ayJPidbZW5qb3ldJzsKK+Wsiz4nW2JlYXV0aWZ1bF0nOwor5ayMPidbc2VkdWN0aXZlIGFuZCBsb3ZlYWJsZV0nOwor5ayWPidbZmF2b3JpdGVdJzsKK+Wsoj4nW3Ryb3VibGVkXSc7CivlrKo+J1tjb3VydCBsYWR5XSc7CivlrKw+J1ttaXN0cmVzc10nOwor5aywPidbYmFieV0nOwor5ayyPidbZnJvbGljXSc7CisjIuWstD4nW3RvIHdpbl0nIiwKK+Wsvj4nW2xhenldJzsKK+WtgD4nW3dpZG93XSc7CivlrYM+J1t0cm91YmxlZF0nOwor5a2FPidbc2xlbmRlcl0nOwor5a2QPidbb2Zmc3ByaW5nXSc7CivlrZE+J1tyZW1haW5pbmddJzsKK+WtlD4nW29wZW5pbmddJzsKK+WtlT4nW2JlIHByZWduYW50XSc7CivlrZc+J1tsZXR0ZXJdJzsKK+WtmD4nW2V4aXN0XSc7CivlrZo+J1ticm9vZCBvdmVyIGVnZ3NdJzsKK+Wtmz4nW2NvbWV0XSc7CivlrZw+J1tiZSBhcyBkaWxpZ2VudCBhcyBwb3NzaWJsZV0nOwor5a2dPidbZmlsaWFsIHBpZXR5XSc7CivlrZ8+J1tmaXJzdCBpbiBzZXJpZXNdJzsKK+Wtoz4nW3F1YXJ0ZXIgb2YgeWVhcl0nOwor5a2kPidbb3JwaGFuXSc7CivlraU+J1tvbmUnJ3MgY2hpbGRyZW5dJzsKK+Wtpj4nW2xlYXJuaW5nXSc7Civlrak+J1tiYWJ5XSc7Civlras+J1tncmFuZGNoaWxkXSc7CivlrbA+J1t3aG8/IHdoaWNoPyB3aGF0PyB3aGljaCBvbmU/XSc7CivlrbE+J1t3ZWFrXSc7CivlrbM+J1ticmVlZCBpbiBsYXJnZSBudW1iZXJzXSc7CivlrbU+J1tzaXQgb24gZWdnc10nOwor5a24PidbbGVhcm5pbmddJzsKK+Wtuj4nW2NoaWxkXSc7CivlroA+J1tyb29mXSc7CivlroM+J1tpdF0nOwor5a6FPidbcmVzaWRlbmNlXSc7Civlroc+J1tob3VzZV0nOwor5a6IPidbZGVmZW5kXSc7Civlrok+J1twZWFjZWZ1bF0nOwor5a6LPidbU29uZyBkeW5hc3R5XSc7Civlrow+J1tjb21wbGV0ZV0nOwor5a6NPidbZmxlc2hdJzsKK+Wujz4nW3dpZGVdJzsKK+WulT4nW3N0b25lIHF1YXJyeV0nOwor5a6XPidbbGluZWFnZV0nOwor5a6YPidbb2ZmaWNpYWxdJzsKK+WumT4nW3RpbWUgYXMgY29uY2VwdF0nOwor5a6aPidbZGVjaWRlXSc7Civlrps+J1tzZWVtXSc7Civlrpw+J1tzdWl0YWJsZV0nOwor5a6dPidbdHJlYXN1cmVdJzsKK+Wunz4nW3JlYWxdJzsKK+Wuoj4nW2d1ZXN0XSc7CivlrqM+J1tkZWNsYXJlXSc7CivlrqQ+J1tyb29tXSc7CivlrqU+J1tmb3JnaXZlXSc7CivlrqY+J1tvZmZpY2lhbGRvbV0nOwor5a6uPidbcGFsYWNlXSc7CivlrrA+J1t0byBzbGF1Z2h0ZXJdJzsKK+Wusz4nW2luanVyZV0nOwor5a60PidbZW50ZXJ0YWluXSc7CivlrrU+J1tuaWdodF0nOwor5a62PidbaG91c2VdJzsKK+WuuD4nW2ltcGVyaWFsXSc7Civlrrk+J1tsb29rc10nOwor5a6/Pidbc3RvcF0nOwor5a+CPidbc3RpbGxdJzsKK+Wvgz4nW2dyaWV2YW5jZV0nOwor5a+EPidbc2VuZF0nOwor5a+FPidbcmVzcGVjdF0nOwor5a+GPidbZGVuc2VdJzsKK+Wvhz4nW2JhbmRpdHNdJzsKKyMi5a+JPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivlr4w+J1thYnVuZGFudF0nOwor5a+QPidbc2xlZXBdJzsKK+Wvkj4nW2NvbGRdJzsKK+Wvkz4nW3Jlc2lkZW5jZV0nOwor5a+UPidbcmVhbF0nOwor5a+bPidbYnJvYWRdJzsKK+WvnT4nW3NsZWVwXSc7Civlr54+J1tzaWxlbnRdJzsKK+Wvnz4nW2V4YW1pbmVdJzsKK+WvoT4nW3dpZG93ZWRdJzsKK+Wvoj4nW3NsZWVwXSc7Civlr6Q+J1tmZXddJzsKK+WvpT4nW2Zld10nOwor5a+mPidbcmVhbF0nOwor5a+nPidbcmVwb3NlXSc7Civlr6g+J1tzdG9ja2FkZV0nOwor5a+pPidbZXhhbWluZV0nOwor5a+rPidbd3JpdGVdJzsKK+Wvrj4nW3NoYW50eV0nOwor5a+wPidbZ3JlYXQgZG9tYWluXSc7Civlr7M+J1t0cmVhc3VyZV0nOwor5a+1PidbZmF2b3JpdGVdJzsKK+Wvtj4nW3RyZWFzdXJlXSc7Civlr7g+J1tpbmNoXSc7Civlr7o+J1tjb3VydF0nOwor5a++PidbY29ycmVjdF0nOwor5a+/Pidbb2xkIGFnZV0nOwor5bCBPidbbGV0dGVyXSc7CivlsII+J1ttb25vcG9saXplXSc7CivlsIQ+J1tzaG9vdF0nOwor5bCFPidbc3ViZHVlXSc7CivlsIY+J1t3aWxsXSc7CivlsIc+J1t3aWxsXSc7CivlsIg+J1ttb25vcG9saXplXSc7CivlsIk+J1tvZmZpY2VyXSc7CivlsIo+J1tyZXNwZWN0XSc7CivlsIs+J1tzZWVrXSc7CivlsI0+J1tjb3JyZWN0XSc7CivlsI4+J1tkaXJlY3RdJzsKK+Wwjz4nW3NtYWxsXSc7CivlsJE+J1tmZXddJzsKK+Wwkz4nW3lvdV0nOwor5bCWPidbc2hhcnBdJzsKK+Wwmj4nW3N0aWxsXSc7CivlsKA+J1t2ZXJ5IGZld10nOwor5bCiPidbd2Vha10nOwor5bCkPidbZXNwZWNpYWxseV0nOwor5bCoPidbc2hhZ2d5IGhhaXJlZCBkb2ddJzsKK+WwrT4nW2EgbGVnZW5kYXJ5IGFuY2llbnQgZW1wZXJvci1zYWdlXSc7CivlsLE+J1tqdXN0XSc7CivlsLg+J1tjb3Jwc2VdJzsKK+WwuT4nW2dvdmVybl0nOwor5bC6PidbY2hpbmVzZSBtZWFzdXJlIGFwcHJveC4gXCJmb290XCJdJzsKK+Wwuz4nW2VuZCBvZiBzcGluZV0nOwor5bC8PidbYnVkZGhpc3QgbnVuXSc7CivlsL0+J1tleGhhdXN0XSc7CivlsL4+J1t0YWlsXSc7CivlsL8+J1t1cmluZV0nOwor5bGAPidbYnVyZWF1XSc7CivlsYE+J1ticmVhayB3aW5kXSc7CivlsYU+J1tsaXZlXSc7CivlsYY+J1tudW1lcmFyeSBhZGp1bmN0IGZvciB0aW1lXSc7CivlsYg+J1tiZW5kXSc7CivlsYo+J1tudW1lcmFyeSBhZGp1bmN0IGZvciB0aW1lXSc7CivlsYs+J1tob3VzZV0nOwor5bGNPidbY29ycHNlXSc7CivlsY4+J1tleGNyZW1lbnRdJzsKK+Wxjz4nW2ZvbGRpbmcgc2NyZWVuXSc7CivlsZA+J1t3b29kZW4gc2hvZXNdJzsKK+WxkT4nW2JpdHNdJzsKK+Wxkz4nW2dpZ2FudGljIHN0cmVuZ3RoXSc7CivlsZU+J1tvcGVuXSc7CivlsZ4+J1tjbGFzc10nOwor5bGgPidbYnV0Y2hlcl0nOwor5bGhPidbZnJlcXVlbnRseV0nOwor5bGkPidbc3RvcmV5XSc7CivlsaU+J1tmb290d2Vhcl0nOwor5bGsPidbY2xhc3NdJzsKK+Wxrj4nW3Nwcm91dF0nOwor5bGvPidbdmlsbGFnZV0nOwor5bGxPidbbW91bnRhaW5dJzsKK+Wxtj4nW2xvZnR5XSc7Civlsbk+J1t0byByaXNlIGhpZ2hdJzsKK+WyjD4nW3Blcmlsb3VzXSc7CivlspA+J1toaWdoXSc7CivlspE+J1tzdGVlcF0nOwor5bKUPidbZGl2ZXJnZV0nOwor5bKhPidbcmlkZ2Ugb3IgY3Jlc3Qgb2YgaGlsbF0nOwor5bKoPidbdW5ldmVuXSc7Civlsqk+J1tjbGlmZl0nOwor5bKrPidbbW91bnRhaW4gcGVha10nOwor5bKsPidbY2FwZV0nOwor5bKxPidbZGFpc2hhbiBvbmUgb2YgZml2ZSBzYWNyZWQgbW91bnRdJzsKK+Wysz4nW21vdW50YWluIHBlYWtdJzsKKyMi5bK2PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivlsrc+J1ttaW4gbW91bnRhaW5dJzsKK+WyuD4nW2JhbmtdJzsKKyMi5bK6PidbbW91bnRhaW4gcmlkZ2VdJyIsCisjIuWyuj4nW21vdW50YWluIHJpZGdlXSciLAor5bK+PidbbW91bnRhaW4gcGFzcyAoa29yZWFuKV0nOworIyLls4Q+J1tyYW5nZSBvZiBwZWFrc10nIiwKK+Wzhz4nW2NhdmVdJzsKK+WzmT4nW3N0YW5kIGVyZWN0XSc7Civls6A+J1ttb3VudGFpbiBwYXNzXSc7Civls6E+J1tnb3JnZV0nOwor5bOoPidbbG9mdHldJzsKK+WzqT4nW2xvZnR5XSc7Civls6o+J1t2YWxsZXldJzsKK+WzrT4nW3N0ZWVwXSc7Civls68+J1twZWFrXSc7Civls7A+J1twZWFrXSc7Civls7Y+J1tpc2xhbmRdJzsKKyMi5bO6PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivls7s+J1toaWdoXSc7Civls70+J1tnb3JnZV0nOwor5bSHPidbZXN0ZWVtXSc7CivltIs+J1tmbG93ZXJ5XSc7CivltI4+J1tyb3VnaF0nOwor5bSRPidbS3VubHVuIG1vdW50YWlucyBpbiBKaWFuZyBTdSBwcm92aW5jZS5dJzsKK+W0lD4nW2hpZ2hdJzsKK+W0lT4nW2NsaWZmXSc7CivltJY+J1tjbGlmZl0nOwor5bSXPidbcG9zdF0nOwor5bSYPidba3VubHVuIG1vdW50YWlucyBpbiBqaWFuZ3N1XSc7CivltJk+J1trdW5sdW4gbW91bnRhaW5zIGluIGppYW5nc3VdJzsKK+W0mj4nW2hpbGx5XSc7CivltJs+J1t0b3dlcmluZ10nOwor5bSfPidbY2xpZmZzXSc7CivltKI+J1toaWdoXSc7CivltKk+J1tydXB0dXJlXSc7CivltYs+J1tvbWVpIG1vdW50YWluIGluIHNpY2h1YW5dJzsKK+W1jD4nW2lubGF5XSc7CivltY4+J1ttb3VudGFpbiByZWNlc3NdJzsKK+W1kD4nW21vdW50YWluIG1pc3RdJzsKK+W1kj4nW2NsaWZmXSc7CivltZw+J1tyb3VnaF0nOwor5bWpPidbaGlnaF0nOwor5bWsPidbaGlnaF0nOwor5bWvPidbaGlnaF0nOwor5bWzPidbaGlnaF0nOwor5bW2PidbbG93IHBhcnQgb2YgYSBtb3VudGFpbl0nOwor5baCPidbY2xpZmZdJzsKK+W2hD4nW2hpZ2hdJzsKK+W2hz4nW3N0ZWVwXSc7Civltos+J1tpc2xhbmRdJzsKK+W2jD4nW2lzbGFuZF0nOworIyLltpA+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+W2nT4nW3BhdGggbGVhZGluZyB1cCBhIG1vdW50YWluXSc7CivltqI+J1toaWdoIG9yIHRhbGxdJzsKKyMi5basPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivltq4+J1toaWdoXSc7Civltrc+J1tyYW5nZSBvZiBtb3VudGFpbnMgaW4gaHVuYW4gcHJvdl0nOwor5ba6PidbbW91bnRhaW4gcmlkZ2VdJzsKK+W2vD4nW2lzbGFuZF0nOwor5ba9PidbbW91bnRhaW4gcGVha10nOwor5beJPidbc3RlZXBdJzsKK+W3jD4nW2NsaWZmXSc7Civlt40+J1toaWdoXSc7Civlt5I+J1ttb3VudGFpbiByYW5nZV0nOwor5beTPidbc3VtbWl0IG9mIG1vdW50YWluXSc7Civlt5Y+J1tjbGlmZl0nOwor5bebPidbcml2ZXJdJzsKK+W3nT4nW3N0cmVhbV0nOwor5beePidbYWRtaW5pc3RyYXRpdmUgZGl2aXNpb25dJzsKK+W3oT4nW3BhdHJvbF0nOwor5bejPidbbmVzdF0nOwor5belPidbbGFib3JdJzsKK+W3pj4nW2xlZnRdJzsKK+W3pz4nW3NraWxsZnVsXSc7Civlt6g+J1tsYXJnZV0nOwor5berPidbd2l6YXJkXSc7Civlt64+J1tkaWZmZXJdJzsKK+W3sT4nW3NlbGZdJzsKK+W3sj4nW2FscmVhZHldJzsKK+W3sz4nW3NpeHRoIG9mIHR3ZWx2ZSBicmFuY2hlc10nOwor5be0PidbZ3JlYXRseSBkZXNpcmVdJzsKK+W3tT4nW21lYXN1cmluZyBjdXBdJzsKK+W3tz4nW2FsbGV5XSc7Civlt7s+J1tzY3JvbGxdJzsKK+W3vT4nWzV0aCBvZiB0aGUgOCB0cmlncmFtc10nOwor5be+Pidba2VyY2hpZWZdJzsKK+W4gj4nW21hcmtldF0nOwor5biDPidbY290dG9uIGNsb3RoXSc7CivluIY+J1tzYWlsXSc7CivluIs+J1twYXBlcl0nOwor5biMPidbcmFyZV0nOwor5biRPidbYSB0cmVhc3VyeV0nOwor5biWPidbaW52aXRhdGlvbiBjYXJkXSc7CivluJk+J1tib29rIGNvdmVyXSc7CivluJo+J1ticm9vbV0nOwor5bibPidbc2lsa3NdJzsKK+W4nT4nW3N1cHJlbWUgcnVsZXJdJzsKK+W4pT4nW2NvbW1hbmRlcl0nOwor5birPidbdGVhY2hlcl0nOwor5bitPidbc2VhdF0nOwor5bivPidbYmVsdF0nOwor5biwPidbcmV0dXJuXSc7CivluLM+J1t0ZW50XSc7CivluLY+J1tiZWx0XSc7CivluLc+J1t0ZW50XSc7CivluLg+J1tjb21tb25dJzsKK+W4vT4nW2hhdF0nOwor5bmAPidbcGljdHVyZV0nOwor5bmDPidbY3VydGFpbiB0aGF0IGZvcm1zIHdhbGxdJzsKK+W5hD4nW3RlbnRdJzsKK+W5hT4nW3BpZWNlXSc7CivluYc+J1toZWxwXSc7CivluYw+J1tjdXJ0YWluXSc7CivluY4+J1tjb3Zlci1jbG90aF0nOwor5bmUPidbY3VydGFpbl0nOwor5bmVPidbY3VydGFpbl0nOwor5bmXPidbd29tZW4nJ3MgaGVhZGdlYXJdJzsKK+W5nz4nW2ZsYWddJzsKK+W5oT4nW3Blbm5hbnRdJzsKK+W5oj4nW2NhcnJpYWdlIGN1cnRhaW5dJzsKK+W5oz4nW2N1cnJlbmN5XSc7CivluaQ+J1tldmlsXSc7CivlubI+J1tvcHBvc2VdJzsKK+W5sz4nW2ZsYXRdJzsKK+W5tD4nW3llYXJdJzsKK+W5tT4nW2V2ZW4gbGV2ZWwuIHRvIHJhaXNlIGluIGJvdGggaGFuZHNdJzsKK+W5tj4nW2NvbWJpbmVdJzsKK+W5uD4nW2x1Y2soaWx5KV0nOwor5bm5PidbdHJ1bmsgb2YgdHJlZSBvciBvZiBodW1hbiBib2R5XSc7Civlubo+J1tvbmVdJzsKK+W5uz4nW2lsbHVzaW9uXSc7Civlubw+J1tpbmZhbnRdJzsKK+W5vT4nW3F1aWV0XSc7Civlub4+J1tob3cgbWFueT8gaG93IG11Y2g/IChhKWZld10nOwor5bm/Pidbd2lkZV0nOwor5bqBPidbaGFsbF0nOwor5bqDPidbYnJvYWRdJzsKK+W6hD4nW3ZpbGxhZ2VdJzsKK+W6hz4nW2NvdmVyXSc7Civluoo+J1tiZWRdJzsKK+W6jz4nW3Nlcmllc10nOwor5bqVPidbYm90dG9tXSc7CivlupY+J1traXRjaGVuXSc7Civlupc+J1tzaG9wXSc7Civlupo+J1tzZXZlbnRoIG9mIHRlbiBjeWNsaWNhbCBzdGVtc10nOwor5bqcPidbcHJlZmVjdHVyZV0nOwor5bqgPidbdmlsbGFnZSBzY2hvb2xdJzsKK+W6pj4nW2RlZ3JlZV0nOwor5bqnPidbc2VhdF0nOwor5bqrPidbYXJtb3J5XSc7Civluq0+J1tjb3VydHlhcmRdJzsKK+W6tT4nW2J1ZGRoaXN0IG1vbmFzdGVyeSBvciBudW5uZXJ5XSc7CivlurY+J1tudW1lcm91c10nOwor5bq3PidbcGVhY2VmdWxdJzsKK+W6uD4nW3VzdWFsXSc7Civlu4E+J1t0b2lsZXRdJzsKK+W7gj4nW3NpZGUtcm9vbV0nOwor5buDPidbYWJyb2dhdGVdJzsKK+W7iD4nW2JpZyBidWlsZGluZ10nOwor5buJPidbdXByaWdodF0nOwor5buKPidbY29ycmlkb3JdJzsKK+W7jz4nW3N0YWJsZV0nOwor5buQPidbc3RhYmxlXSc7Civlu5M+J1ticm9hZF0nOwor5buWPidbc3VybmFtZV0nOwor5buaPidba2l0Y2hlbl0nOwor5bubPidbc3RvcmVdJzsKK+W7nT4nW3NlcnZhbnRdJzsKK+W7nz4nW3RlbXBsZV0nOwor5bugPidbZmFjdG9yeV0nOwor5buhPidbY29ycmlkb3JdJzsKK+W7oj4nW2Ficm9nYXRlXSc7Civlu6M+J1ticm9hZF0nOwor5buoPidbZ292ZXJubWVudCBvZmZpY2VdJzsKK+W7qT4nW2dyYW5hcnldJzsKK+W7rD4nW2h1dF0nOwor5buwPidbaGFsbF0nOwor5buxPidbaGFybW9uaW91c10nOwor5buzPidbaGFsbF0nOwor5bu0PidbZ29dJzsKK+W7tj4nW2RlbGF5XSc7Civlu7c+J1tjb3VydF0nOwor5bu4PidbZW5saWdodGVuXSc7Civlu7o+J1tidWlsZF0nOwor5bu7PidbY2lyY2xlIGFyb3VuZF0nOwor5bu8PidbdGhlbl0nOwor5bu+PidbdHdvIGhhbmRzXSc7Civlu78+J1t0d2VudHldJzsKK+W8gT4nW2NvbmljYWwgY2FwIHdvcm4gdW5kZXIgemhvdSBkeW5hXSc7CivlvIM+J1tyZWplY3RdJzsKK+W8hD4nW2RvXSc7CivlvIk+J1tsYXJnZV0nOwor5byKPidbZXZpbF0nOwor5byLPidbY2F0Y2hdJzsKK+W8jD4nW251bWJlciBvbmVdJzsKK+W8jT4nW251bWJlciB0d29dJzsKK+W8jz4nW3N0eWxlXSc7CivlvJA+J1tudW1iZXIgdHdvXSc7CivlvJE+J1t0byBraWxsIG9uZScncyBzdXBlcmlvcl0nOwor5byTPidbYm93XSc7CivlvJQ+J1tjb25kb2xlXSc7CivlvJU+J1twdWxsXSc7CivlvJY+J1twaG9uZXRpYyBmb3IgXCJ0ZVwiIChKYXBhbmVzZSldJzsKK+W8lz4nW25vdF0nOwor5byYPidbZW5sYXJnZV0nOwor5bybPidbbG9vc2VuXSc7CivlvJ8+J1t5b3VuZyBicm90aGVyXSc7CivlvKU+J1tleHRlbnNpdmVdJzsKK+W8pj4nW3N0cmluZ10nOwor5bynPidbd29vZGVuIGJvd10nOwor5bypPidbY3Jvc3MtYm93XSc7CivlvK0+J1tzdG9wXSc7CivlvK8+J1tiZW5kXSc7CivlvLE+J1t3ZWFrXSc7CivlvLU+J1tzdHJldGNoXSc7CivlvLc+J1tzdHJvbmddJzsKK+W8uD4nW2JvdyBzdHJldGNoZWQgZnVsbF0nOwor5by8PidbYWlkXSc7CisjIuW8vD4nW2FpZF0nIiwKKyMi5b2BPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivlvYg+J1twZWxsZXRdJzsKK+W9ij4nW3N0dWJib3JuXSc7CivlvYw+J1tleHRlbnNpdmVdJzsKK+W9jj4nW2JlbmRdJzsKK+W9kT4nW3Nub3V0XSc7CivlvZM+J1tiZWFyXSc7CivlvZY+J1thIGhvZ10nOwor5b2XPidbYnJvb21zdGlja10nOwor5b2ZPidbY29sbGVjdF0nOwor5b2cPidbeWldJzsKK+W9nT4nW3lpXSc7CivlvaE+J1toYWlyXSc7CivlvaI+J1tmb3JtXSc7CivlvaY+J1tlbGVnYW50XSc7Civlvak+J1todWVdJzsKK+W9qj4nW3RpZ2VyXSc7Civlvas+J1tjYXJ2ZV0nOwor5b2sPidbY3VsdGl2YXRlZF0nOwor5b2tPidbbmFtZSBvZiBhbmNpZW50IGNvdW50cnldJzsKK+W9sD4nW2NsZWFyXSc7CivlvbE+J1tzaGFkb3ddJzsKK+W9sz4nW3N0ZXAgd2l0aCBsZWZ0IGZvb3RdJzsKK+W9tz4nW2xpa2VdJzsKK+W9uT4nW3NlcnZpY2VdJzsKK+W9vD4nW3RoYXRdJzsKK+W9vz4nW3Jlc2VtYmxpbmddJzsKK+W+gD4nW2dvXSc7CivlvoE+J1tpbnZhZGVdJzsKK+W+gj4nW2dvXSc7CivlvoM+J1tnb10nOwor5b6EPidbbmFycm93IHBhdGhdJzsKK+W+hT4nW3RyZWF0XSc7Civlvoc+J1tjb21wbHkgd2l0aF0nOwor5b6IPidbdmVyeV0nOwor5b6KPidbbGluZ2VyXSc7Civlvos+J1tzdGF0dXRlXSc7Civlvow+J1tiZWhpbmRdJzsKK+W+kD4nW3Nsb3dseV0nOwor5b6RPidbbmFycm93IHBhdGhdJzsKK+W+kj4nW2Rpc2NpcGxlXSc7CivlvpM+J1tmcm9tXSc7Civlvpc+J1tvYnRhaW5dJzsKK+W+mD4nW3dhbGsgYmFjayBhbmQgZm9ydGhdJzsKK+W+mT4nW21vdmUgb25lJydzIGFib2RlXSc7Civlvp4+J1tmcm9tXSc7CivlvqA+J1tpbmR1Y2VdJzsKK+W+oT4nW2RyaXZlXSc7Civlvqg+J1tkb3VidGZ1bF0nOwor5b6pPidbcmV0dXJuXSc7Civlvqo+J1tvYmV5XSc7Civlvq0+J1tjb25zY3JpcHQgbGFib3JdJzsKK+W+rj4nW3NtYWxsXSc7CivlvrM+J1t2aXJ0dWVdJzsKK+W+tD4nW3N1bW1vbl0nOwor5b65PidbcGVuZXRyYXRlXSc7Civlvrw+J1tmcm9udGllcl0nOwor5b69PidbYSBiYWRnZV0nOwor5b+DPidbaGVhcnRdJzsKK+W/hT4nW3N1cmVseV0nOwor5b+MPidbamVhbG91c10nOwor5b+NPidbZW5kdXJlXSc7Civlv5Y+J1tndWVzc10nOwor5b+XPidbcHVycG9zZV0nOwor5b+YPidbZm9yZ2V0XSc7Civlv5k+J1tidXN5XSc7Civlv5w+J1tzaG91bGRdJzsKK+W/nT4nW2Rpc2dyYWNlXSc7Civlv6A+J1tsb3lhbHR5XSc7Civlv6Q+J1tpbnN1Ym9yZGluYXRlXSc7Civlv6s+J1tyYXBpZF0nOwor5b+wPidbc3VmZmVyXSc7Civlv7E+J1t0cnV0aF0nOwor5b+1PidbdGhpbmsgb2ZdJzsKK+W/uD4nW2JsdXNoXSc7Civlv7s+J1tkZWxpZ2h0ZnVsXSc7Civlv70+J1tzdWRkZW5seV0nOwor5b+/PidbZ2V0IGFuZ3J5XSc7CivmgI4+J1t3aGF0PyB3aHk/IGhvdz9dJzsKK+aAjz4nW2Rpc2NvbnRlbnRlZF0nOworIyLmgJA+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+aAkj4nW2FuZ2VyXSc7CivmgJU+J1tmZWFyXSc7CivmgJY+J1t0ZXJyb3JdJzsKK+aAmT4nW3JlbHkgb25dJzsKK+aAmz4nW2dyaWV2ZWRdJzsKK+aAnD4nW3BpdHldJzsKK+aAnT4nW3RoaW5rXSc7CivmgKA+J1tpZGxlXSc7CivmgKE+J1toYXJtb255XSc7CivmgKU+J1txdWlja10nOwor5oCmPidbZWFnZXJdJzsKK+aApz4nW25hdHVyZV0nOwor5oCoPidbaGF0cmVkXSc7CivmgKk+J1tzaHldJzsKK+aAqj4nW3N0cmFuZ2VdJzsKK+aAqz4nW3NvcnJ5XSc7CivmgK8+J1tsYWNraW5nIGluIGNvdXJhZ2VdJzsKK+aAsT4nW2hhc3RpbHldJzsKK+aAuj4nW3RvIGVuZHVyZV0nOwor5oGBPidbdGhhdF0nOwor5oGCPidbY2FyZWZ1bF0nOwor5oGDPidbcmVseSBvbl0nOwor5oGGPidbY29uc3RhbnRdJzsKK+aBij4nW2JlIHVuaXRlZF0nOwor5oGLPidbbG92ZV0nOwor5oGNPidbc2VlbWluZ2x5XSc7CivmgZA+J1tmZWFyXSc7CivmgZI+J1tjb25zdGFudF0nOwor5oGVPidbZm9yZ2l2ZV0nOwor5oGZPidbaWxsbmVzc10nOwor5oGaPidbYW5nZXJdJzsKK+aBnz4nW3NjYXJlZF0nOwor5oGgPidbc3RyYW5nZV0nOwor5oGiPidbcmVzdG9yZV0nOwor5oGjPidbaW5kdWxnZSBvbmVzZWxmXSc7CivmgaQ+J1tzaG93IHBpdHldJzsKK+aBpT4nW3NoYW1lXSc7Civmgag+J1toYXRyZWRdJzsKK+aBqT4nW2tpbmRuZXNzXSc7Civmgao+J1tyZXNwZWN0ZnVsXSc7Civmgas+J1tpbiBwYWluXSc7Civmgaw+J1txdWlldF0nOwor5oGtPidbcmVzcGVjdGZ1bF0nOwor5oGvPidbcmVzdF0nOwor5oGwPidbanVzdF0nOwor5oG1PidbZmF2b3JdJzsKKyMi5oG2PidbZXZpbF0nIiwKK+aCgT4nW2lycml0YWJsZV0nOwor5oKDPidbc2luY2VyZV0nOwor5oKEPidbc2lsZW50XSc7Civmgok+J1trbm93XSc7Civmgos+J1tzdGluZ3ldJzsKK+aCjD4nW2Jyb3RoZXJseV0nOwor5oKNPidbY291cmFnZW91c10nOwor5oKSPidbc29ycm93ZnVsXSc7CivmgpQ+J1tyZXBlbnRdJzsKK+aClj4nW2JlIGNvbnRyYWRpY3RvcnkgdG9dJzsKKyMi5oKWPidbYmUgY29udHJhZGljdG9yeSB0b10nIiwKK+aCmj4nW2JlIGFmcmFpZF0nOwor5oKbPidbcmVwZW50XSc7Civmgp8+J1thcHByZWhlbmRdJzsKK+aCoD4nW2xvbmddJzsKK+aCoz4nW3N1ZmZlcl0nOwor5oKmPidbcGxlYXNlZF0nOwor5oKnPidbc21vb3RoXSc7Civmgqk+J1thbmdlcmVkXSc7Civmgqo+J1tldmlsXSc7CivmgrI+J1tzb3Jyb3ddJzsKK+aCsz4nW2V0aGljc10nOwor5oK0Pidbc3VmZmVyXSc7CivmgrU+J1tkaXNhcHBvaW50ZWRdJzsKK+aCtj4nW2dsb29teV0nOwor5oK4PidbZmVhcmZ1bF0nOwor5oK8PidbZ3JpZXZlXSc7Civmgr0+J1tzb3Jyb3dmdWxdJzsKK+aDhT4nW2ZlZWxpbmddJzsKK+aDhj4nW2Rpc3RyZXNzZWRdJzsKK+aDhz4nW2JlIGtpbmRdJzsKK+aDkT4nW2NvbmZ1c2VdJzsKK+aDkz4nW2NhcmVmdWxdJzsKK+aDmD4nW2Rpc2NvbmNlcnRlZF0nOwor5oOaPidbYWJzZW50LW1pbmRlZF0nOwor5oOcPidbcGl0eV0nOwor5oOfPidbYnV0XSc7Civmg6A+J1tmYXZvcl0nOwor5oOhPidbZXZpbF0nOwor5oOjPidbb3ZlcmFsbCBbcXVlc3Rpb25hYmxlIHZhcmlhbnRdXSc7Civmg6c+J1tmZWFyXSc7Civmg6g+J1tzYWRdJzsKK+aDsD4nW2luZG9sZW50XSc7Civmg7E+J1thbmdlcmVkXSc7Civmg7M+J1t0aGlua10nOwor5oO0PidbYWZyYWlkXSc7Civmg7Y+J1tmZWFyZnVsXSc7Civmg7c+J1t3cmlnZ2xlXSc7Civmg7k+J1tpcnJpdGF0ZV0nOwor5oO6PidbaW50ZWxsaWdlbnRdJzsKK+aDuz4nW2ZlZWwgYW5ndWlzaF0nOwor5oSAPidbY2hhbmdlIG9uZScncyBjb3VudGVuYW5jZV0nOwor5oSBPidbYW54aWV0eV0nOwor5oSDPidbcmVsYXhdJzsKK+aEhj4nW2ZhdWx0XSc7CivmhIg+J1ttb3JlIGFuZCBtb3JlXSc7CivmhIk+J1twbGVhc2FudF0nOwor5oSNPidbcGl0eV0nOwor5oSOPidbb2JzdGluYXRlXSc7CivmhI8+J1t0aG91Z2h0XSc7CivmhJU+J1tzdGFydGxlZF0nOwor5oSaPidbc3R1cGlkXSc7CivmhJs+J1tsb3ZlXSc7CivmhJ8+J1tmZWVsXSc7CivmhKE+J1thYnNlbnQtbWluZGVkXSc7CivmhKc+J1thc2hhbWVkXSc7CivmhKg+J1tzaW5jZXJpdHldJzsKK+aErD4nW2FjY3VzZV0nOwor5oS0Pidbc2FkXSc7CivmhLw+J1thY3Qgd2l0aCBjYXJlXSc7CivmhL0+J1tnYW1ibGVdJzsKK+aEvj4nW2FuZ2VyXSc7CivmhL8+J1tzaW5jZXJlXSc7CivmhYI+J1t1cmdlXSc7CivmhYQ+J1tzaGl2ZXJdJzsKK+aFhz4nW2NhcmVmdWxdJzsKK+aFiD4nW2tpbmRdJzsKK+aFij4nW3RvIHJlc2VudF0nOwor5oWLPidbbWFubmVyXSc7CivmhYw+J1tuZXJ2b3VzXSc7CivmhY0+J1thbmdyeV0nOwor5oWOPidbYWN0IHdpdGggY2FyZV0nOworIyLmhZM+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+aFlT4nW2xvbmcgZm9yXSc7CivmhZg+J1tzYWRdJzsKK+aFmT4nW2FzaGFtZWRdJzsKK+aFmj4nW2FzaGFtZWRdJzsKK+aFnT4nW2RvIGV2aWwgaW4gc2VjcmV0XSc7CivmhZ8+J1tzYWRuZXNzXSc7CivmhaI+J1tzbG93KGx5KV0nOwor5oWjPidbaGFiaXRdJzsKK+aFpT4nW3NpbmNlcmVdJzsKK+aFpz4nW2JyaWdodF0nOwor5oWoPidbc2lnaF0nOwor5oWrPidbdG8gYWxhcm1dJzsKK+aFrj4nW2JlIGNvbmNlcm5lZF0nOworIyLmha8+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+aFsD4nW2NvbWZvcnRdJzsKK+aFsT4nW3NhZF0nOwor5oWzPidbbWlzZXJseV0nOwor5oW0PidbZmVhcl0nOwor5oW1PidbaW5kb2xlbnRdJzsKK+aFtj4nW2NvbmdyYXR1bGF0ZV0nOwor5oW3PidbYXJkZW50XSc7Civmhb4+J1tsdXN0XSc7CivmhoI+J1tzYWRdJzsKK+aGhz4nW3Jlc3RdJzsKK+aGij4nW3RpcmVkXSc7Civmho4+J1toYXRlXSc7CivmhpA+J1twaXR5XSc7CivmhpE+J1tsZWFuIG9uXSc7CivmhpQ+J1tiZSB3b3JuLW91dF0nOwor5oaWPidbY2F1dGlvdXNdJzsKK+aGmT4nW2xpa2VdJzsKK+aGmj4nW2RyZWFkXSc7CivmhqQ+J1tyZXNlbnRdJzsKK+aGpz4nW2lycmVzb2x1dGVdJzsKK+aGqT4nW3Jlc3RdJzsKK+aGqz4nW3BpdHldJzsKK+aGrD4nW3JvdXNlXSc7Civmhq4+J1tyZWdyZXRmdWxdJzsKK+aGsj4nW2NvbnN0aXR1dGlvbl0nOwor5oa2PidbcmVtZW1iZXJdJzsKK+aGuj4nW3BlYWNlXSc7Civmhr4+J1tyZWdyZXRdJzsKK+aHgz4nW2NvdXJ0ZW91c10nOwor5oeGPidbYW54aW91c10nOwor5oeHPidbc2luY2VyZV0nOwor5oeIPidbaWRsZV0nOwor5oeJPidbc2hvdWxkXSc7Civmh4o+J1t2ZXhlZF0nOwor5oeLPidbc3BsZW5kaWRdJzsKK+aHjD4nW2Vuam95XSc7Civmh40+J1tiZSBhZnJhaWQgb2ZdJzsKK+aHkD4nW2Jvc29tXSc7Civmh6M+J1tiZSBzaWNrIGF0IGhlYXJ0XSc7Civmh6Y+J1t3ZWFrXSc7Civmh7I+J1twdW5pc2hdJzsKK+aHtD4nW3JlZ3JldF0nOwor5oe2PidbbGF6eV0nOwor5oe3PidbYm9zb21dJzsKK+aHuD4nW2hhbmddJzsKK+aHuj4nW3JlZ3JldF0nOwor5oe8PidbZmVhcl0nOwor5oe9PidbaGFwcHldJzsKK+aHvj4nW2FmcmFpZF0nOwor5oe/PidbdmlydHVvdXNdJzsKK+aIgD4nW2xvdmVdJzsKK+aIiD4nW2hhbGJlcmRdJzsKK+aIiT4nW2EgYmF0dGxlLWF4ZV0nOwor5oiKPidbZmlmdGggb2YgdGVuIGNlbGVzdGlhbCBzdGVtc10nOwor5oiMPidbZWxldmVudGggb2YgdGVycmVzdHJpYWwgYnJhbmNoZXNdJzsKK+aIjT4nW2RlZmVuZCBib3JkZXJzXSc7CivmiI4+J1thcm1zXSc7CivmiJA+J1tjb21wbGV0ZWRdJzsKK+aIkT4nW291cl0nOwor5oiSPidbd2Fybl0nOwor5oiUPidbc21hbGxdJzsKK+aIlj4nW29yXSc7CivmiJo+J1tyZWxhdGl2ZV0nOwor5oibPidbbGFuY2VdJzsKK+aInT4nW3BpcmF0ZV0nOwor5oiePidbbGFuY2VdJzsKK+aInz4nW2hhbGJlcmQgd2l0aCBjcmVzY2VudCBibGFkZV0nOwor5oihPidbc3VianVnYXRlXSc7CivmiKY+J1t3YXJdJzsKK+aIqj4nW2N1dCBvZmZdJzsKK+aIrj4nW2tpbGxdJzsKK+aIrz4nW3RoZWF0cmljYWwgcGxheV0nOwor5oiwPidbd2FyXSc7CivmiLI+J1t0aGVhdHJpY2FsIHBsYXldJzsKK+aIsz4nW3ByaWNrXSc7CivmiLQ+J1t3ZWFyIG9uIHRvcF0nOwor5oi4PidbZG9vcl0nOwor5oi7PidbcGVydmVyc2VdJzsKK+aIvz4nW2hvdXNlXSc7CivmiYA+J1twbGFjZV0nOwor5omBPidbZmxhdF0nOwor5omHPidbZmFuXSc7CivmiYg+J1tlc2NvcnRdJzsKK+aJiT4nW2Rvb3IgcGFuZWxdJzsKK+aJiz4nW2hhbmRdJzsKK+aJjT4nW3RhbGVudF0nOwor5omOPidbcHVsbCB1cF0nOwor5omTPidbc3RyaWtlXSc7CivmiZU+J1tzaGFrZSBvZmZdJzsKK+aJmD4nW2hvbGQgdXAgd2l0aCBwYWxtXSc7CivmiZs+J1tjYXJyeSBvbiBzaG91bGRlcnNdJzsKK+aJnj4nW3dhcmQgb2ZmXSc7CivmiaA+J1twaWNrIHVwIHdpdGggZm9yayBvciBwaW5jZXJzXSc7CivmiaM+J1trbm9ja10nOwor5omoPidbcGljayB1cCB3aXRoIGZvcmsgb3IgcGluY2Vyc10nOwor5omuPidbZHJlc3MgdXBdJzsKK+aJsT4nW2NvbGxlY3RdJzsKK+aJtj4nW3N1cHBvcnRdJzsKK+aJuT4nW2NvbW1lbnRdJzsKK+aJvD4nW2dyYXNwXSc7Civmib4+J1tzZWFyY2hdJzsKK+aJvz4nW2luaGVyaXRdJzsKK+aKgD4nW3NraWxsXSc7CisjIuaKgj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5oqDPidbdG8gY2xhcCBoYW5kc10nOwor5oqEPidbY29weV0nOwor5oqJPidbY2hvb3NlXSc7Civmioo+J1tob2xkXSc7CivmipE+J1twcmVzcyBkb3duXSc7CivmipI+J1tleHByZXNzXSc7CivmipM+J1tzY3JhdGNoXSc7CivmipQ+J1t0YWtlIG9yIGhvbGQgdXAgaW4gYm90aCBoYW5kc10nOwor5oqVPidbdGhyb3ddJzsKK+aKlj4nW3RyZW1ibGVdJzsKK+aKlz4nW3Jlc2lzdF0nOwor5oqYPidbYnJlYWsgb2ZmXSc7Civmips+J1t0aHJvdyAoYXdheSldJzsKK+aKnD4nW3Vwcm9vdF0nOwor5oqePidbc2VsZWN0XSc7Civmiqs+J1t3ZWFyXSc7Civmiqw+J1tsaWZ0XSc7CivmirE+J1tlbWJyYWNlXSc7CivmirU+J1tyZXNpc3RdJzsKK+aKuT4nW3NtZWFyXSc7Civmirs+J1twdWxsXSc7Civmirw+J1ttb3J0Z2FnZV0nOwor5oq9PidbZHJhdyBvdXRdJzsKK+aLgj4nW3NoYWtlIG9mZl0nOwor5ouFPidbY2FycnldJzsKK+aLhj4nW2JyZWFrIHVwXSc7Civmi4c+J1t0aHVtYl0nOwor5ouIPidbcGljayB1cCB3aXRoIGZpbmdlcnNdJzsKK+aLiT4nW3B1bGxdJzsKK+aLij4nW3NsYXBdJzsKK+aLjD4nW21peF0nOwor5ouNPidbY2xhcF0nOwor5ouPPidbdGFrZV0nOwor5ouQPidba2lkbmFwXSc7Civmi5E+J1t0byBjbGFtcF0nOwor5ouSPidbd2FyZCBvZmYgd2l0aCBoYW5kXSc7Civmi5M+J1tleHBhbmRdJzsKK+aLlD4nW3Vwcm9vdF0nOwor5ouXPidbb2JzdGluYXRlXSc7Civmi5g+J1tyZXN0cmFpbl0nOwor5ouZPidbc3R1cGlkXSc7Civmi5s+J1tiZWNrb25dJzsKK+aLnD4nW2RvIG9iZWlzYW5jZV0nOwor5oudPidbZG8gb2JlaXNhbmNlXSc7Civmi6A+J1tvY2N1cHldJzsKK+aLoT4nW2V4cGFuZF0nOwor5ousPidbaW5jbHVkZV0nOwor5outPidbd2lwZSBhd2F5IHN0YWlucyB3aXRoIGNsb3RoXSc7Civmi64+J1tsYWJvcmluZyBoYXJkXSc7Civmi68+J1toZWxwXSc7Civmi7E+J1tmb2xkIGhhbmRzIG9uIGJyZWFzdF0nOwor5ouzPidbZmlzdF0nOworIyLmi7Q+J1tiaW5kIHdpdGggcm9wZV0nIiwKK+aLtj4nW3ByZXNzXSc7Civmi7c+J1t0b3J0dXJlIGFuZCBpbnRlcnJvZ2F0ZV0nOwor5ou+PidbcGljayB1cF0nOwor5ou/PidbdGFrZV0nOwor5oyBPidbc3VzdGFpbl0nOwor5oyCPidbaGFuZ10nOwor5oyHPidbZmluZ2VyXSc7CivmjIg+J1thc3Npc3RdJzsKK+aMiT4nW3B1dCBoYW5kIG9uXSc7CivmjIw+J1tmaWdodF0nOwor5oyRPidbbG9hZCBjYXJyaWVkIG9uIHNob3VsZGVyc10nOwor5oyZPidbcmFpc2VdJzsKK+aMnz4nW2NsYXNwIHVuZGVyIGFybV0nOworIyLmjKU+J1tkaXJlY3RdJyIsCivmjKg+J1tuZWFyXSc7CivmjKs+J1twdXNoIGRvd25dJzsKK+aMrz4nW3JhaXNlXSc7CivmjLo+J1tzdGFuZCB1cHJpZ2h0XSc7CivmjL0+J1twdWxsXSc7CivmjL4+J1tjbGFzcCB1bmRlciBhcm1dJzsKK+aMvz4nW2luc2VydF0nOwor5o2JPidbZ3Jhc3BdJzsKK+aNjD4nW2JyZWFrIG9wZW5dJzsKK+aNjT4nW3dhcmQgb2ZmXSc7CivmjY8+J1twaWNrIHdpdGggZmluZ2Vyc10nOwor5o2QPidbY29udHJpYnV0ZV0nOwor5o2VPidbYXJyZXN0XSc7CivmjZc+J1ttYWtlIHByb2dyZXNzXSc7CivmjZw+J1tzZWFyY2hdJzsKK+aNpz4nW2hvbGQgdXAgaW4gdHdvIGhhbmRzXSc7Civmjag+J1tkaXNjYXJkXSc7Civmjak+J1t0d2lzdCB3aXRoIGhhbmRzXSc7Civmjas+J1tzdG9rZV0nOwor5o2uPidbb2NjdXB5XSc7CivmjbI+J1tjdXJsXSc7CivmjbY+J1tzdHJpa2Ugd2l0aCBzdGlja10nOwor5o23Pidbd2luXSc7Civmjbo+J1twcmVzcyBkb3duIGhlYXZpbHkgd2l0aCBmcmluZ2Vyc10nOwor5o27PidbdHdpc3Qgd2l0aCBmaW5nZXJzXSc7CivmjoA+J1tsaWZ0XSc7CivmjoM+J1tzd2VlcF0nOwor5o6IPidbZ2l2ZSB0b10nOwor5o6JPidbdHVybl0nOwor5o6MPidbcGFsbSBvZiBoYW5kXSc7Civmjo4+J1tkcmFnIGFzaWRlXSc7Civmjo8+J1t0YWtlIG91dF0nOwor5o6SPidbcm93XSc7CivmjpY+J1tzdGljayBpbl0nOwor5o6YPidbZGlnXSc7Civmjps+J1toYW5nXSc7CisjIuaOnz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5o6gPidbcm9iXSc7CivmjqE+J1tnYXRoZXJdJzsKK+aOoj4nW2ZpbmRdJzsKK+aOoz4nW2RyYWddJzsKK+aOpT4nW3JlY2VpdmVdJzsKK+aOpz4nW2FjY3VzZV0nOwor5o6oPidbcHVzaF0nOwor5o6pPidbY292ZXJdJzsKK+aOqj4nW3BsYWNlXSc7Civmjqs+J1tiZSBvbiBuaWdodCB3YXRjaF0nOwor5o6sPidbZ3Jhc3Agd2l0aCBib3RoIGhhbmRzXSc7CisjIuaOsT4nW3BpY2twb2NrZXRdJyIsCivmjrQ+J1tib3ggb25lJydzIGVhcnNdJzsKKyMi5o60PidbYm94IG9uZScncyBlYXJzXSciLAor5o67Pidbc2NyYXRjaCBsaWdodGx5XSc7Civmjr4+J1thIGdlbmVyYWwgZGVzaWduYXRpb24gb2Ygb2ZmaWNpYWxzXSc7Civmj4A+J1tjaG9vc2VdJzsKK+aPgz4nW3NoZWFyXSc7Civmj4Q+J1tsaWZ0XSc7Civmj4Y+J1twcmltZSBtaW5pc3Rlcl0nOwor5o+JPidbcnViXSc7Civmj48+J1tjb3B5XSc7Civmj5A+J1tob2xkIGluIGhhbmRdJzsKK+aPkj4nW2luc2VydF0nOwor5o+WPidbc2FsdXRlXSc7Civmj5o+J1tzY2F0dGVyXSc7Civmj5s+J1tjaGFuZ2VdJzsKK+aPoT4nW2dyYXNwXSc7Civmj6M+J1twdXQgdGhpbmdzIHVuZGVyIGNsb3RoZXNdJzsKK+aPqT4nW3J1YiBhbmQgd2lwZV0nOwor5o+uPidbZGlyZWN0XSc7Civmj7Q+J1thaWRdJzsKK+aPtj4nW21ha2UgZnVuIG9mXSc7Civmj7o+J1t3YWddJzsKK+aQhj4nW3B1bGxdJzsKK+aQjT4nW2RpbWluaXNoXSc7CivmkI8+J1tzZWl6ZV0nOwor5pCTPidbdHJhbXBsZV0nOwor5pCWPidbd2FnXSc7CivmkJc+J1todWxsXSc7CivmkJw+J1tzZWFyY2hdJzsKK+aQpj4nW2dyYXNwXSc7CivmkKg+J1tydWJdJzsKK+aQrD4nW3RyYW5zZmVyXSc7CivmkK0+J1tqb2luIHRvZ2V0aGVyXSc7CivmkLQ+J1tleHRyYWN0XSc7CivmkLY+J1twbHVuZGVyXSc7CivmkLo+J1tsZWFkIGJ5IGhhbmRdJzsKK+aQvj4nW3ByZXNzXSc7CivmkYI+J1t0YWtlIGluXSc7CivmkY4+J1t0byBzdHJhbmdsZV0nOwor5pGYPidbcGx1Y2tdJzsKK+aRpz4nW2Rlc3Ryb3ldJzsKK+aRqT4nW3J1Yl0nOwor5pGvPidbc2luY2VyZV0nOwor5pG2Pidbcm9sbCBhcm91bmQgd2l0aCBoYW5kXSc7Civmkbg+J1tnZW50bHkgdG91Y2ggd2l0aCBoYW5kXSc7Civmkbo+J1tmb2xkXSc7CivmkoM+J1tzdHJpa2VdJzsKK+aSiD4nW3Njb29wIG91dCBvZiB3YXRlcl0nOwor5pKSPidbcmVsZWFzZV0nOwor5pKTPidbc2NyYXRjaF0nOwor5pKVPidbcmlwXSc7Civmkpo+J1t0d2lybCBpbiBmaW5nZXJzXSc7Civmkp4+J1trbm9jayBhZ2FpbnN0XSc7CivmkqQ+J1tvbWl0XSc7CivmkqU+J1ttb3ZlXSc7Civmkqk+J1tsaWZ0IHVwXSc7Civmkqs+J1twYXRdJzsKK+aSrT4nW3Nvd10nOwor5pKuPidbbGl0dGxlIGJpdF0nOwor5pKwPidbY29tcG9zZV0nOwor5pKyPidbcG91bmRdJzsKK+aSuT4nW2Rpc3R1cmJdJzsKK+aSuz4nW2Zsb2ddJzsKK+aSvD4nW21vdmVdJzsKK+aTgT4nW2VtYnJhY2VdJzsKK+aTgj4nW3J1Yl0nOwor5pOFPidbbW9ub3BvbGl6ZV0nOwor5pOHPidbc2VsZWN0XSc7Civmk40+J1tjb25kdWN0XSc7Civmk5I+J1tjYXRjaF0nOwor5pOUPidbY2FycnldJzsKK+aTmD4nW3RodW1iXSc7Civmk5o+J1tvY2N1cHldJzsKK+aToD4nW2Nyb3dkXSc7Civmk6E+J1tjYXJyeV0nOwor5pOiPidbcHVsbCB1cF0nOwor5pOjPidbaHVsbF0nOwor5pOmPidbd2lwZV0nOwor5pOnPidbcmFpc2VdJzsKK+aTrD4nW2RyYWZ0XSc7Civmk68+J1tleGNsdWRlXSc7Civmk7E+J1twbGFjZV0nOwor5pOyPidbdGhyb3ddJzsKK+aTtD4nW2V4cGFuZF0nOworIyLmk7Y+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+aTuj4nW3B1dF0nOwor5pO9PidbdGlja2xlXSc7Civmk74+J1tkaXN0dXJiXSc7CivmlIA+J1tjbGltYl0nOwor5pSFPidbc2F2ZV0nOwor5pSYPidbc2VpemVdJzsKK+aUnD4nW2xlYWQgYnkgaGFuZF0nOwor5pSdPidbdGFrZSBpbl0nOwor5pSjPidbdGFuZ2xlZF0nOwor5pSkPidbc3ByZWFkIG91dF0nOwor5pSqPidbZGlzdHVyYl0nOwor5pSrPidbc25hdGNoIGF3YXldJzsKK+aUrD4nW2dyYXNwXSc7CivmlK8+J1tkaXNwZXJzZV0nOwor5pS0PidbcmFwXSc7CivmlLU+J1tyYXBdJzsKK+aUtj4nW2dhdGhlciB0b2dldGhlcl0nOwor5pS3PidbZXhhbWluZV0nOwor5pS4PidbZGlzdGFudF0nOwor5pS5PidbY2hhbmdlXSc7CivmlLs+J1thdHRhY2tdJzsKK+aUvj4nW3B1dF0nOwor5pS/PidbZ292ZXJubWVudF0nOwor5pWFPidbYW5jaWVudF0nOwor5pWIPidbcmVzdWx0XSc7CivmlY0+J1tleHByZXNzXSc7CivmlY8+J1tmYXN0XSc7CivmlZE+J1tzYXZlXSc7CivmlZU+J1thbiBpbXBlcmlhbCBvcmRlciBvciBkZWNyZWVdJzsKK+aVlj4nW3JhbWJsZV0nOwor5pWXPidbYmUgZGVmZWF0ZWRdJzsKK+aVmD4nW2V4cHJlc3NdJzsKK+aVmT4nW3RlYWNoXSc7CivmlZ0+J1ticmVha10nOwor5pWePidbcm9vbXldJzsKK+aVoj4nW2RhcmVdJzsKK+aVoz4nW3NjYXR0ZXJdJzsKK+aVpj4nW2VzdGVlbV0nOwor5pWsPidbcmVzcGVjdF0nOwor5pWwPidbbnVtYmVyXSc7CivmlbI+J1tzdHJpa2VdJzsKK+aVtD4nW29yZGVybHldJzsKK+aVtT4nW2VuZW15XSc7Civmlbc+J1tzcHJlYWRdJzsKK+aVuD4nW251bWJlcl0nOwor5paCPidbZHJhdyBiYWNrXSc7CivmloM+J1traWxsXSc7Civmloc+J1tsaXRlcmF0dXJlXSc7Civmlog+J1tsZWFybmluZ10nOwor5paJPidbZXZlbl0nOwor5paMPidbcmVmaW5lZF0nOwor5paOPidbdmVnZXRhcmlhbiBkaWV0XSc7CivmlpA+J1tncmFjZWZ1bF0nOwor5paRPidbbW90dGxlZF0nOwor5paXPidbY2hpbmVzZSBwZWNrXSc7Civmlpk+J1tjb25zaWRlcl0nOwor5pabPidbZHJ5IG1lYXN1cmUgMTAgb3IgNSB0aW1lcyBvZiBkb3VdJzsKK+aWnD4nW3NsYW50aW5nXSc7Civmlp8+J1twb3VyIHdpbmUgb3IgdGVhIGludG8gY3VwXSc7CivmlqE+J1tyZXZvbHZlXSc7CivmlqQ+J1tjYXR0eV0nOwor5palPidbc2NvbGRdJzsKK+aWpz4nW2F4ZV0nOwor5parPidbY3V0XSc7Civmlqw+J1tjdXRdJzsKK+aWrT4nW3NldmVyXSc7Civmlq8+J1t0aGlzXSc7CivmlrA+J1tuZXddJzsKK+aWtz4nW3NldmVyXSc7Civmlrk+J1tzcXVhcmVdJzsKK+aWvD4nW2luXSc7Civmlr0+J1tncmFudF0nOwor5peBPidbc2lkZV0nOwor5peDPidbc2lsayBiYW5uZXIgd2l0aCBiZW50IHBvbGVdJzsKK+aXhD4nW2Ega2luZCBvZiBhbmNpZW50IGZsYWddJzsKK+aXhT4nW3RyaXBdJzsKK+aXhj4nW2ZsYWcgb3JuYW1lbnRdJzsKK+aXiz4nW3Jldm9sdmVdJzsKK+aXjD4nW2Jhbm5lciBvciBmbGFnIGFkb3JuZWQgd2l0aCBmZWF0XSc7Civml48+J1tmYW1pbHkgY2xhbl0nOwor5peSPidbZnJpbmdlcyBvZiBwZWFybHMgb24gY3Jvd25zXSc7Civml5c+J1tiYW5uZXJdJzsKK+aXmT4nW2EgcGVubmFudF0nOwor5pebPidbYSBwZW5uYW50XSc7Civml6A+J1tuZWdhdGl2ZV0nOwor5pehPidbY2hva2Ugb24gc29tZXRoaW5nIGVhdGVuXSc7Civml6I+J1thbHJlYWR5XSc7Civml6U+J1tzdW5dJzsKK+aXpj4nW2Rhd25dJzsKK+aXpz4nW29sZF0nOwor5peoPidbcHVycG9zZV0nOwor5pepPidbZWFybHldJzsKK+aXrD4nW3Rlbi1kYXkgcGVyaW9kXSc7Civml60+J1tyaXNpbmcgc3VuXSc7Civml7E+J1tkcm91Z2h0XSc7Civml7o+J1twcm9zcGVyXSc7Civml7s+J1toZWF2ZW5dJzsKK+aYgj4nW3Jpc2VdJzsKK+aYgz4nW2FmdGVybm9vbl0nOwor5piGPidbZWxkZXIgYnJvdGhlcl0nOwor5piHPidbcmlzZV0nOwor5piKPidbc3VtbWVyIHRpbWVdJzsKK+aYjD4nW2xpZ2h0IG9mIHN1bl0nOwor5piOPidbYnJpZ2h0XSc7CivmmI8+J1tkdXNrXSc7CivmmJM+J1tjaGFuZ2VdJzsKK+aYlD4nW2Zvcm1lcmx5XSc7CivmmJw+J1t0byBvcGVuIG91dF0nOwor5pifPidbc3Rhcl0nOwor5pigPidbcHJvamVjdF0nOwor5pilPidbc3ByaW5nXSc7CivmmKc+J1tvYnNjdXJlXSc7CivmmKg+J1t5ZXN0ZXJkYXldJzsKK+aYrT4nW2JyaWdodF0nOwor5pivPidbaW5kZWVkXSc7CivmmLQ+J1tvbmUgb2YgdGhlIDI4IGNvbnN0ZWxsYXRpb25zXSc7CivmmLU+J1tpbnRpbWF0ZV0nOwor5pi2PidbYSBsb25nIGRheS4gYnJpZ2h0LiBleHRlbmRlZC4gY2xlYXJdJzsKK+aYvD4nW2RheXRpbWVdJzsKK+aYvz4nW2V4dGVuc2l2ZV0nOwor5pmBPidbbW9ybmluZ10nOwor5pmCPidbdGltZV0nOwor5pmDPidbYnJpZ2h0XSc7CivmmYQ+J1ticmlnaHRdJzsKK+aZiT4nW2FkdmFuY2VdJzsKK+aZiz4nW2FkdmFuY2VdJzsKK+aZjz4nW3BlYWNlZnVsXSc7CivmmZI+J1tkcnkgaW4gc3VuXSc7CivmmZ0+J1tkYXl0aW1lXSc7CivmmZ4+J1tkcnldJzsKK+aZnz4nW2NsZWFyXSc7CivmmaI+J1tsaWdodCBvZiBzdGFyc10nOwor5pmkPidbaGF2ZSBpbnRlcnZpZXcgd2l0aF0nOwor5pmmPidbZGFya10nOwor5pmnPidbZGF5YnJlYWtdJzsKK+aZqD4nW2Vhcmx5IG1vcm5pbmddJzsKK+aZqT4nW25pZ2h0XSc7Civmma4+J1t1bml2ZXJzYWxdJzsKK+aZrz4nW3NjZW5lcnldJzsKK+aZsD4nW2NsZWFyXSc7CivmmbQ+J1tjbGVhciB3ZWF0aGVyXSc7CivmmbY+J1tjcnlzdGFsXSc7Civmmbo+J1t3aXNkb21dJzsKK+aagT4nW2Rhd25dJzsKKyMi5pqCPidbdGVtcG9yYXJ5XSciLAor5pqEPidbd2FybV0nOwor5pqHPidbbGVpc3VyZV0nOwor5pqIPidbaGFsbyBpbiBza3ldJzsKK+aaiT4nW3N1bnNoaW5lXSc7Civmmo4+J1tzdW4gYmVnaW5uaW5nIGRlY2xpbmVdJzsKK+aakT4nW2hvdF0nOwor5pqWPidbd2FybV0nOwor5pqXPidbZGFya10nOwor5pqYPidbcmlzaW5nIHN1bl0nOwor5pqdPidbZGFya10nOwor5pqiPidbc21vb3RobHldJzsKK+aapj4nW2NhbGVuZGFyXSc7Civmmqs+J1t0ZW1wb3JhcnldJzsKK+aarj4nW2V2ZW5pbmddJzsKK+aatD4nW3Zpb2xlbnRdJzsKK+aauD4nW2JyaWdodF0nOwor5pq5PidbcmlzZV0nOwor5pq8PidbdGFrZSBmbGVldGluZyBnbGFuY2UgYXRdJzsKK+aavj4nW21vcm5pbmcgc3VuXSc7Civmm4E+J1thbmRdJzsKK+abhD4nW2JyaWdodF0nOwor5puHPidbYmVjb21lIGNsb3VkeV0nOwor5puJPidbZGF3bl0nOwor5puWPidbb2JzY3VyZV0nOwor5puZPidbYnJpZ2h0XSc7Civmm5o+J1t0d2lsaWdodCBqdXN0IGJlZm9yZSBzdW4gcmlzZXNdJzsKK+abnD4nW2dsb3Jpb3VzXSc7Civmm50+J1tzdW5dJzsKK+aboD4nW2V4dGVuc2l2ZV0nOwor5pumPidbc3VubGlnaHRdJzsKK+abqT4nW2luIGFuY2llbnQgdGltZXNdJzsKK+absD4nW3NheV0nOwor5puyPidbY3Jvb2tlZF0nOwor5puzPidbdHJhaWxdJzsKK+abtD4nW21vcmVdJzsKK+abtT4nW3RyYWlsXSc7Civmm7c+J1t3aHk/IHdoYXQ/IHdoZXJlP10nOwor5pu4PidbYm9va10nOwor5pu5PidbbWluaXN0cnkgb2ZmaWNpYWxzXSc7Civmm7w+J1tsb25nXSc7Civmm70+J1thbHJlYWR5XSc7Civmm74+J1thbHJlYWR5XSc7Civmm78+J1tjaGFuZ2VdJzsKK+acgD4nW21vc3RdJzsKK+acgz4nW2Fzc2VtYmxlXSc7CivmnIg+J1ttb29uXSc7CivmnIk+J1toYXZlXSc7CivmnIs+J1tmcmllbmRdJzsKK+acjT4nW2Nsb3RoZXNdJzsKK+acjz4nW2xpZ2h0IG9mIGNyZXNjZW50IG1vb25dJzsKK+aclD4nW2ZpcnN0IGRheSBvZiBsdW5hciBtb250aF0nOwor5pyVPidbcHJvbm91biBcImlcIl0nOwor5pyWPidbY2xlYXJdJzsKK+aclz4nW2NsZWFyXSc7CivmnJs+J1tsb29rIGF0IG9yIGZvcndhcmRdJzsKK+acnT4nW2R5bmFzdHldJzsKK+acnj4nW2Z1bGwgeWVhcl0nOwor5pyfPidbcGVyaW9kIG9mIHRpbWVdJzsKK+acpj4nW2NvbmRpdGlvbiBvciBhcHBlYXJhbmNlIG9mIG1vb25dJzsKK+acpz4nW2NvbmRpdGlvbiBvciBhcHBlYXJhbmNlIG9mIG1vb25dJzsKK+acqD4nW3RyZWVdJzsKK+acqj4nW25vdCB5ZXRdJzsKK+acqz4nW2ZpbmFsXSc7CivmnKw+J1tyb290XSc7CivmnK0+J1tsZXR0ZXJdJzsKK+acrj4nW3NraWxsXSc7CivmnLE+J1tjaW5uYWJhcl0nOwor5py0Pidbc2ltcGxlXSc7CivmnLY+J1tjbHVzdGVyIG9mIGZsb3dlcnNdJzsKKyMi5py2PidbY2x1c3RlciBvZiBmbG93ZXJzXSciLAorIyLmnLY+J1tjbHVzdGVyIG9mIGZsb3dlcnNdJyIsCivmnLo+J1tkZXNrXSc7CivmnL0+J1tkZWNheWVkXSc7CivmnL8+J1tzdGFiXSc7CisjIuadgD4nW2tpbGxdJyIsCivmnYY+J1twb2xlXSc7CivmnYk+J1t2YXJpb3VzIHNwZWNpZXMgb2YgcGluZSBhbmQgZmlyXSc7CivmnY4+J1twbHVtXSc7CivmnY8+J1thcHJpY290XSc7CivmnZA+J1ttYXRlcmlhbF0nOwor5p2RPidbdmlsbGFnZV0nOwor5p2TPidbaGFuZGxlIG9mIGN1cF0nOwor5p2WPidbY2FuZV0nOwor5p2ZPidbYSB0aW55IHdvb2RlbiBwb3N0XSc7CivmnZw+J1tzdG9wXSc7CivmnZ4+J1t3aWxsb3ddJzsKK+adnz4nW2JpbmRdJzsKK+adoD4nW2xldmVyXSc7CivmnaE+J1tjbGF1c2VdJzsKK+adoj4nW3dvb2R3b3JrZXJdJzsKKyMi5p2iPidbd29vZHdvcmtlcl0nIiwKK+adpD4nW3R5cGUgb2Ygb2FrXSc7CivmnaU+J1tjb21lXSc7Civmnao+J1t0aXAgb2YgdHdpZ10nOwor5p2tPidbY3Jvc3Mgc3RyZWFtXSc7Civmna8+J1tjdXBdJzsKK+adsD4nW2hlcm9dJzsKK+adsT4nW2Vhc3RdJzsKK+adsj4nW2JyaWdodCBzdW5dJzsKK+adsz4nW29ic2N1cmVdJzsKK+adtT4nW3Blc3RsZV0nOwor5p23PidbbG9xdWF0XSc7Civmnbw+J1tzaHV0dGxlIG9mIGxvb21dJzsKK+advj4nW3BpbmUgdHJlZV0nOwor5p2/PidbcGxhbmtdJzsKKyMi5p6FPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmnoc+J1tsb3F1YXRdJzsKK+aeiT4nW3VzZWxlc3NdJzsKK+aeiz4nW3NhbmRhbHdvb2RdJzsKK+aejD4nW3ZhcmlldHkgb2YgZWxtIHdpdGggc21hbGwgc2VlZHNdJzsKK+aekD4nW3NwbGl0IHdvb2RdJzsKK+aelT4nW3BpbGxvd10nOwor5p6XPidbZm9yZXN0XSc7Civmnpo+J1tzdGFsayBvZiBzaHJ1Yl0nOwor5p6cPidbZnJ1aXRdJzsKK+aenT4nW2JyYW5jaGVzXSc7CisjIuaenz4nW3dvb2Qgc3RyZWFrc10nIiwKKyMi5p6fPidbd29vZCBzdHJlYWtzXSciLAor5p6iPidbZG9vciBoaW5nZV0nOworIyLmnqY+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+aeqT4nW3BpbmUgdHJlZV0nOwor5p6vPidbZHJpZWQgb3V0XSc7CivmnrM+J1t0cmlmb2xpYXRlIG9yYW5nZV0nOwor5p60PidbY2FuZV0nOwor5p62PidbcmFja10nOwor5p63PidbY2FuZ3VlIHNjYWZmb2xkXSc7Civmnrg+J1traW5kIG9mIGFzcGVuIGZvdW5kIGluIHNpY2h1YW5dJzsKK+aeuT4nW2RydW1zdGlja10nOwor5p+BPidbbGFyZ2UgdGllLWJlYW1zXSc7Civmn4Q+J1toYW5kbGVdJzsKKyMi5p+GPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCisjIuafiD4nW2NvbnRhaW5lcl0nIiwKK+afjj4nW2NhbHl4IG9mIGZsb3dlcl0nOwor5p+PPidbY3lwcmVzc10nOwor5p+QPidbY2VydGFpbiB0aGluZyBvciBwZXJzb25dJzsKK+afkT4nW3RhbmdlcmluZV0nOwor5p+TPidbZHllXSc7Civmn5Q+J1tzb2Z0XSc7Civmn5g+J1thIHRob3JueSB0cmVlXSc7Civmn5o+J1twdW1lbG9dJzsKK+afnT4nW3dhdGNobWFuJydzIHJhdHRsZV0nOwor5p+ePidbb2FrXSc7Civmn6I+J1tyb290XSc7Civmn6Q+J1toYXd0aG9ybl0nOworIyLmn6c+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+afqT4nW2NvZmZpbiB3aGljaCBjb250YWlucyBjb3Jwc2VdJzsKK+afrD4nW2xldHRlcl0nOwor5p+uPidbZmxhdCBwaWVjZXMgb2Ygd29vZF0nOwor5p+vPidbYXhlLWhhbmRsZV0nOwor5p+xPidbcGlsbGFyXSc7Civmn7M+J1t3aWxsb3cgdHJlZV0nOwor5p+0PidbZmlyZXdvb2RdJzsKK+aftT4nW2ZlbmNlXSc7Civmn7s+J1tpbnZlc3RpZ2F0ZV0nOwor5p++Pidbc3RyYWlnaHQgZ3JhaW5dJzsKK+afvz4nW3BlcnNpbW1vbl0nOwor5qCCPidbYSBraW5kIG9mIGV2ZXJncmVlbiB0cmVlXSc7CivmoIM+J1t0eXBlIG9mIG9ha10nOwor5qCEPidbZ2xvcnldJzsKK+agkz4nW3dvb2RlbiBwZWddJzsKK+aglj4nW3BlcmNoXSc7CivmoJc+J1tjaGVzdG51dCB0cmVlXSc7CivmoJ4+J1twdWJsaWNhdGlvbl0nOwor5qChPidbc2Nob29sXSc7CivmoKI+J1tjeXByZXNzXSc7CivmoKk+J1tzcGVjaWVzIG9mIG9ha10nOwor5qCqPidbbnVtZXJhcnkgYWRqdW5jdCBmb3IgdHJlZXNdJzsKK+agqz4nW2ZlbmNlXSc7CivmoLI+J1ttYW5ncm92ZV0nOwor5qC0Pidbc2FuZGFsd29vZF0nOwor5qC4Pidbc2VlZF0nOwor5qC5Pidbcm9vdF0nOwor5qC8PidbcGF0dGVybl0nOwor5qC9PidbY3VsdGl2YXRlXSc7CivmoYA+J1tjaGlja2VuIHJvb3N0XSc7CivmoYE+J1tjcm9zcy1iZWFtcyBvZiByb29mXSc7CivmoYI+J1tjYXNzaWEgb3IgY2lubmFtb25dJzsKK+ahgz4nW3BlYWNoXSc7CivmoYY+J1tmcmFtZV0nOwor5qGIPidbdGFibGVdJzsKKyMi5qGNPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmoY4+J1tmZXR0ZXJzXSc7CivmoZA+J1tuYW1lIGFwcGxpZWQgdmFyaW91cyB0cmVlc10nOwor5qGRPidbbXVsYmVycnkgdHJlZV0nOwor5qGTPidbdmFyaWV0eSBvZiB0cmVlXSc7CivmoZQ+J1tjaGluZXNlIGJlbGxmbG93ZXJdJzsKKyMi5qGZPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmoZw+J1tjaGVycnldJzsKK+ahnT4nWy4uLi4uLi4uLi4uLi4uLi5dJzsKKyMi5qGdPidbLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+ahoz4nW3NoZWxmXSc7Civmoac+J1tjaGluZXNlIGN5cHJlc3NdJzsKK+ahtD4nW3JhZnRdJzsKK+ahtj4nW3BhaWxdJzsKK+ahtz4nW3JhZnRlcl0nOworIyLmob4+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+ahvz4nW3BvbGVdJzsKK+aigT4nW2JyaWRnZV0nOwor5qKDPidbYSBjbHViXSc7CivmooU+J1twbHVtc10nOwor5qKNPidbdHJlZSBuYW1lXSc7Civmoo8+J1toYW5kY3VmZnNdJzsKK+aikz4nW2NhdGFscGEgb3ZhdGFdJzsKK+ailD4nW2dhcmRlbmlhXSc7Civmopc+J1tzdGVtIG9mIGZsb3dlcl0nOworIyLmopg+J1tiYW1ib28gdHViZV0nIiwKK+ainT4nW2NsYXVzZV0nOwor5qKfPidbb3dsIHRodXNdJzsKK+aioD4nW3NtYWxsIGJlYW0gc3VwcG9ydGluZyByYWZ0ZXJzIGF0XSc7CivmoqI+J1twb2ludGVkIHRpcCBvZiBzb21ldGhpbmcgbG9uZyBsaWtlIGEgYnJhbmNoXSc7CivmoqY+J1tkcmVhbV0nOwor5qKnPidbc3RlcmN1bGlhIHBsYXRhbmlmb2xpYV0nOwor5qKoPidbcGVhcl0nOwor5qKtPidbd2VhdmVyJydzIHNodXR0bGVdJzsKK+airz4nW2xhZGRlcl0nOwor5qKwPidbd2VhcG9uc10nOwor5qKxPidbZG9vcnNpbGxdJzsKK+aisz4nW2NvbWJdJzsKK+aitT4nW2J1ZGRoaXN0XSc7CivmorY+J1tvYXJdJzsKK+aiuT4nW3RoZSBhcmVjYS1udXRdJzsKKyMi5qK5PidbdGhlIGFyZWNhLW51dF0nIiwKK+aivD4nW2Jsb2NrIG9mIHdvb2RdJzsKK+ajhD4nW3JlamVjdF0nOworIyLmo4Y+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+ajiT4nW2NvdHRvbl0nOwor5qOKPidbY2hlc3NdJzsKK+ajiz4nW2NoZXNzXSc7Civmo40+J1tzdGlja10nOwor5qOSPidbc3RpY2tdJzsKKyMi5qOUPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmo5U+J1toZW1wIHBhbG1dJzsKK+ajlz4nW2RhdGUgdHJlZV0nOwor5qOYPidbanVqdWJlIHRyZWVdJzsKK+ajmj4nW3RlbnRdJzsKK+ajnz4nW21haW4gYmVhbXMgc3VwcG9ydGluZyBob3VzZV0nOwor5qOgPidbY3JhYiBhcHBsZSB0cmVlXSc7CisjIuajoT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5qOjPidba2VycmlhIGphcG9uaWNhIHBsYW50XSc7Civmo6c+J1t3YXJlaG91c2VdJzsKK+ajrj4nW2ZvcmVzdF0nOwor5qOvPidbanVqdWJlIHRyZWVdJzsKK+ajsj4nW3BlcmNoXSc7Civmo7k+J1tvYXJdJzsKK+ajuj4nW2NvZmZpbl0nOwor5qSAPidbYm93bF0nOwor5qSBPidbb3V0ZXItY29mZmluXSc7CivmpIQ+J1t0byBncmFmdF0nOwor5qSFPidbY2hhaXJdJzsKK+akiD4nW2NlZGFyXSc7CivmpIs+J1tmcnVpdF0nOwor5qSMPidbaW5zdHJ1bWVudF0nOwor5qSNPidbcGxhbnRdJzsKK+akjj4nW2hhbW1lcl0nOwor5qSPPidbdGhlIGZvcmtpbmcgYnJhbmNoIG9mIGEgdHJlZV0nOwor5qSSPidbcGVwcGVyXSc7CisjIuakkz4nW3N0cmlrZV0nIiwKKyMi5qSaPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmpJs+J1t0eXBlIG9mIGJpcmNoXSc7CivmpJw+J1tjaGVja10nOworIyLmpKE+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKKyMi5qSiPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCisjIuakoz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAorIyLmpKU+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKKyMi5qSmPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCisjIuakqD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5qSqPidbbWFjaGlsdXMgbmFubXVdJzsKK+aksD4nW3BhbG0gdHJlZV0nOwor5qS0PidbcG9wbGFyXSc7CivmpLY+J1twYWxtIHRyZWVdJzsKK+akuT4nW2EgY2hvcHBpbmcgYm9hcmRdJzsKK+akvT4nW2JlYW1zXSc7CivmpL8+J1tmYXRoZXJdJzsKK+alij4nW3dpbGxvd10nOwor5qWTPidbbWFwbGUgdHJlZV0nOwor5qWUPidbd2VkZ2VdJzsKK+allT4nW292YWwtc2hhcGVkXSc7CivmpZk+J1tuYW1lIG9mIHBsYW50XSc7CivmpZo+J1tuYW1lIG9mIGZldWRhbCBzdGF0ZV0nOworIyLmpZw+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+alnT4nW21lbGlhIGphcG9uaWNhXSc7CivmpZ4+J1t1c2VkIGZvciBjZXlsb24gaW4gYnVkZGhpc3QgdGV4dF0nOwor5qWgPidbbmFtZSBvZiB0cmVlXSc7CivmpaE+J1tlbG0gdHJlZV0nOwor5qWiPidbdGluZGVyXSc7Civmpao+J1tzbWFsbCBkaXNoXSc7Civmpas+J1tvYXJdJzsKK+alrT4nW3Byb2Zlc3Npb25dJzsKK+alrj4nW211bGJlcnJ5XSc7Civmpa8+J1tzaGllbGRdJzsKK+alsz4nW3BsdW1zXSc7CisjIualtD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5qW1PidbZXh0cmVtZV0nOwor5qW3PidbbW9kZWwgc3R5bGUgb2YgY2hpbmVzZSB3cml0aW5nXSc7Civmpbg+J1ttYWxsb3R1cyBqYXBvbmljdXNdJzsKK+aluT4nW2NvbHVtbl0nOwor5qW8PidbYnVpbGRpbmcgb2YgdHdvIG9yIG1vcmUgc3Rvcmllc10nOwor5qW9PidbaGFwcHldJzsKKyMi5qW9PidbaGFwcHldJyIsCisjIuamgD4nW1tub3QgZm91bmQgaW4gZGljdGlvbmFyeV1dJyIsCivmpoI+J1tnZW5lcmFsbHldJzsKKyMi5qaJPidbdHlwZSBvZiBlbG1dJyIsCivmpo4+J1tzbWFsbCBldmVyZ3JlZW4gc2hydWJdJzsKKyMi5qaRPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmppQ+J1tiZXRlbC1udXQgdHJlZV0nOwor5qaVPidbYmFueWFuIHRyZWVdJzsKK+ammz4nW2hhemVsbnV0XSc7Civmppw+J1twbGFjYXJkXSc7CisjIuamoD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5qanPidbdHlwZSBvZiB5ZXddJzsKK+amrj4nW2dsb3J5XSc7CivmprE+J1tyYWZ0ZXJdJzsKK+amsj4nW3BpbGxhcl0nOwor5qa0PidbcG9tZWdyYW5hdGVdJzsKK+amuz4nW2NvdF0nOwor5qa+PidbcGllY2VzIG9mIHdvb2RdJzsKK+amvz4nW2FsZGVyXSc7Civmp4E+J1t3aXRoZXJdJzsKK+angz4nW3RyYXldJzsKK+anhz4nW3RpcCBvZiBhIHRyZWVdJzsKK+anij4nW3NwZWFyXSc7Civmp4s+J1tmcmFtZV0nOwor5qeMPidbaGFtbWVyXSc7Civmp40+J1tzcGVhcl0nOwor5qeOPidbcmFmdF0nOwor5qeQPidbbG9jdXN0IHRyZWVdJzsKK+ankz4nW2xldmVyXSc7Civmp5g+J1tzaGFwZV0nOworIyLmp5g+J1tzaGFwZV0nIiwKKyMi5qebPidbdGhyZXNob2xkXSciLAorIyLmp5s+J1t0aHJlc2hvbGRdJyIsCivmp6c+J1t3b29kZW4gdGFibGV0XSc7Civmp6g+J1tvdXRlci1jb2ZmaW5dJzsKKyMi5qerPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmp60+J1ttYXBsZV0nOwor5qeyPidbdHlwZSBvZiBvYWtdJzsKK+anuT4nW3NwYXJdJzsKK+anuz4nW3plbGtvdmEgdHJlZV0nOwor5qe9PidbdHJvdWdoXSc7Civmp78+J1toaWJpc2N1c10nOwor5qiCPidbaGFwcHldJzsKK+aohT4nW2ZpciB0cmVlXSc7CivmqIo+J1thIHJhaWxpbmddJzsKK+aoiz4nW3RyZWUgbmFtZV0nOworIyLmqIw+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKKyMi5qiSPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmqJM+J1tidWlsZGluZyBvZiB0d28gb3IgbW9yZSBzdG9yaWVzXSc7CisjIuaokz4nW2J1aWxkaW5nIG9mIHR3byBvciBtb3JlIHN0b3JpZXNdJyIsCivmqJc+J1traW5kIG9mIHRyZWUgd2l0aCB1c2VsZXNzIHRpbWJlcl0nOwor5qiZPidbbWFya10nOwor5qibPidbYmVuZGluZyBicmFuY2hlc10nOwor5qiePidbZG9vciBoaW5nZV0nOwor5qifPidbY2FtcGhvciB0cmVlXSc7CivmqKE+J1ttb2RlbF0nOworIyLmqKI+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+aooz4nW3NoYXBlXSc7CivmqKk+J1twb3dlcl0nOwor5qiqPidbYWNyb3NzXSc7CisjIuaoqj4nW2Fjcm9zc10nIiwKKyMi5qiqPidbYWNyb3NzXSciLAor5qi1Pidbd29vZGN1dHRlcl0nOwor5qi2PidbY10nOwor5qi4Pidbc2ltcGxlXSc7CivmqLk+J1t0cmVlXSc7CivmqLo+J1t0eXBlIG9mIGJpcmNoXSc7CivmqL0+J1tnb2JsZXRdJzsKK+aphD4nW29saXZlXSc7CivmqYc+J1thIHNsZWRnZSBmb3IgdHJhbnNwb3J0YXRpb25dJzsKK+apiD4nW2JlbnQgb3IgdHdpc3RlZCBwaWVjZSBvZiB3b29kXSc7CivmqYs+J1ticmlkZ2VdJzsKK+apmD4nW29yYW5nZV0nOwor5qmZPidbb3JhbmdlXSc7CivmqZ8+J1ttYWNoaW5lXSc7CivmqaE+J1tjaGVzdG51dCBvYWtdJzsKK+apoj4nW292YWwtc2hhcGVkXSc7CivmqaY+J1t0cmVlXSc7CisjIuapsT4nW2NhYmluZXRdJyIsCisjIuaptT4nW3dvb2QgcGxhY2VkIHVuZGVyIHJvb2YgdGlsZXNdJyIsCisjIuapvz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5qqAPidbc2FuZGFsd29vZF0nOwor5qqEPidbY2FsbCBhcm1zXSc7Civmqo0+J1tpbGV4XSc7Civmqo4+J1tzbWFsbCByZWQgYXBwbGVdJzsKK+aqkD4nW2VhdmVzIG9mIGhvdXNlXSc7Civmqpc+J1t0cmVlXSc7Civmqpw+J1tjaGluZXNlIGN5cHJlc3NdJzsKK+aqoD4nW3N0YW5kIGZvciBsYW1wXSc7CivmqqI+J1tjaGVja10nOwor5qqjPidbbWFzdF0nOwor5qqqPidbY2hlc3RudXQtbGVhdmVkIG9ha10nOwor5qqsPidbdHlwZSBvZiBsb2N1c3Qgb3JhY2FjaWFdJzsKK+aqrj4nW2Jsb2NrIG9mIHdvb2RdJzsKK+aqsz4nW2JldGVsbnV0XSc7Civmqrg+J1tsZW1vbl0nOwor5qq7PidbdGhyZXNob2xkXSc7CisjIuargT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5quCPidbb2FyXSc7Civmq4M+J1tjdXBib2FyZF0nOworIyLmq5E+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+arkz4nW29hcl0nOwor5quaPidbcGFsbV0nOwor5qubPidbY29tYiBvdXRdJzsKK+arnj4nW2NpdHJ1c10nOwor5qufPidbY2hlc3RudXQtbGVhdmVkIG9ha10nOwor5quoPidbc3VwcG9ydGluZyBibG9ja10nOwor5quqPidbdHlwZSBvZiBvYWtdJzsKK+aruj4nW2NhcnZlZCBvciBwYXR0ZXJuZWQgd2luZG93IHNpbGxzXSc7Civmq7s+J1tjaGVycnldJzsKK+ashD4nW3JhaWxpbmddJzsKK+ashT4nW3plbGtvdmFdJzsKK+asij4nW3Bvd2VyXSc7CivmrJI+J1tuYW1lIG9mIHRyZWVdJzsKK+aslj4nW29saXZlXSc7CivmrJ0+J1tsdXh1cmlhbnRdJzsKKyMi5qyePidbdGhlIGxhdHRpY2Ugb2YgYSB3aW5kb3cgYSBzaWxsXSciLAor5qygPidbb3dlXSc7CivmrKE+J1tvcmRlcl0nOwor5qyjPidbaGFwcHldJzsKK+aspz4nW3RyYW5zbGl0LjogZXVyb3BlXSc7CivmrLI+J1tkZXNpcmVdJzsKK+astz4nW3NvYl0nOwor5qy4Pidbc2lnaHNdJzsKK+asuT4nW2ZpZXJjZSBkb2ddJzsKK+asuj4nW2NoZWF0XSc7CivmrL0+J1tyZXNwZWN0XSc7CivmrL4+J1tpdGVtXSc7CivmrYM+J1tzbWVhciBvbmUnJ3MgbW91dGggd2l0aCBibG9vZCBvZiBhIHZpY3RpbSB3aGVuIHRha2luZyBhbiBvYXRoXSc7CivmrYc+J1tyZXN0XSc7CivmrYk+J1tkZWZpY2llbnRdJzsKK+atjD4nW3NvbmddJzsKK+atjj4nW3NpZ2hdJzsKK+atkD4nW3RyYW5zbGl0LjogZXVyb3BlXSc7CivmrZM+J1toYXBweV0nOwor5q2UPidbYmxvdyB0aHJvdWdoIG5vc2VdJzsKK+atmT4nW3RvIHN1Y2tdJzsKK+atmz4nW2RyYXcgYmFja10nOwor5q2fPidbZmluYWwgcGFydGljbGUgdXNlZCBleHByZXNzIHF1ZXNdJzsKK+atoT4nW2hhcHB5XSc7CivmraI+J1tzdG9wXSc7CivmraM+J1tyaWdodF0nOwor5q2kPidbdGhpc10nOwor5q2mPidbbWlsaXRhcnldJzsKK+atqT4nW3N0ZXBdJzsKK+atqj4nW3NsYW50XSc7Civmra8+J1t0ZWV0aF0nOwor5q2zPidbeWVhcl0nOwor5q20PidbdGFrZSBwbGFjZV0nOwor5q24PidbcmV0dXJuXSc7Civmrbk+J1tiYWRdJzsKK+atuz4nW2RpZV0nOwor5q2/PidbZGllXSc7CivmroA+J1tkaWUgeW91bmddJzsKK+augz4nW21pc2ZvcnR1bmVdJzsKK+auhD4nW3RvIGVuZF0nOwor5q6GPidbZGFuZ2Vyb3VzXSc7Civmrok+J1tkaWUgZm9yIGNhdXNlXSc7Civmroo+J1tkaWZmZXJlbnRdJzsKK+auiz4nW2luanVyZV0nOwor5q6NPidbdG8gc3RhcnZlIHRvIGRlYXRoXSc7CivmrpU+J1tbbm90IGZvdW5kIGluIGRpY3Rpb25hcnldXSc7CivmrpY+J1ticmVlZF0nOwor5q6YPidbaW5qdXJlXSc7Civmrp4+J1tkaWVdJzsKK+aupD4nW2RpZSB5b3VuZ10nOwor5q6qPidbZGllXSc7Civmrqs+J1t1dG1vc3RdJzsKK+aurz4nW2VuY29mZmluXSc7CivmrrE+J1thbm5paGlsYXRlXSc7CivmrrI+J1thbm5paGlsYXRlXSc7CivmrrM+J1tuYW1lIG9mIG9sZCB3ZWFwb25dJzsKK+autD4nW2JlYXRdJzsKK+autT4nW3NlY3Rpb25dJzsKK+autz4nW21hbnldJzsKK+auuj4nW2tpbGxdJzsKK+auuz4nW2Nhc2luZ10nOwor5q68PidbY2FzaW5nXSc7Civmrr8+J1toYWxsXSc7Civmr4A+J1tkZXN0cm95XSc7Civmr4U+J1tyZXNvbHV0ZV0nOwor5q+GPidbYmVhdF0nOwor5q+LPidbZG8gbm90XSc7Civmr40+J1ttb3RoZXJdJzsKK+avjj4nW2V2ZXJ5XSc7Civmr5I+J1twb2lzb25dJzsKK+avkz4nW2dpdmUgYmlydGggdG9dJzsKK+avlD4nW2NvbXBhcmVdJzsKK+avmD4nW2hlbHBdJzsKK+avmz4nW2hhaXJdJzsKKyMi5q+fPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmr6s+J1tmaW5lIGhhaXJdJzsKK+avrD4nW2JhbGxdJzsKK+avrz4nW3J1Z10nOwor5q+zPidbZmluZSBoYWlyIG9yIGZ1ciBvbiBhbmltYWxzXSc7CivmsIg+J1tmZWx0XSc7CivmsI8+J1tjbGFuXSc7CivmsJE+J1twZW9wbGVdJzsKK+awkz4nW3Blb3BsZV0nOwor5rCUPidbc3RlYW1dJzsKK+awlz4nW2Fpcl0nOwor5rCbPidbZ2FzXSc7CivmsKM+J1thaXJdJzsKK+awpD4nW2hhbmdpbmcgZm9nXSc7CivmsLQ+J1t3YXRlcl0nOwor5rC3PidbaWNlXSc7CivmsLg+J1tsb25nXSc7CivmsL4+J1tvdmVyZmxvd10nOwor5rGAPidbc2FuZGJhcl0nOwor5rGBPidbanVpY2VdJzsKK+axgj4nW3NlZWtdJzsKK+axjj4nW2Zsb2F0XSc7CivmsZA+J1tuaWdodCB0aWRlc10nOwor5rGVPidbYmFza2V0IGZvciBjYXRjaGluZyBmaXNoXSc7CivmsZc+J1twZXJzcGlyYXRpb25dJzsKK+axmj4nW2ZpbHRoeV0nOwor5rGdPidbeW91XSc7CivmsZ4+J1tlbGVtZW50IG1lcmN1cnldJzsKK+axnz4nW2xhcmdlIHJpdmVyXSc7CivmsaA+J1twb29sXSc7CisjIuaxoj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5rGoPidbTWkobHVvKSByaXZlciBpbiBodW5hbiBwcm92aW5jZSB3aGVyZSBRdSBZdWFuIGRyb3duZWQgaGltc2VsZl0nOwor5rGqPidbdmFzdF0nOwor5rGwPidbZXhjZXNzaXZlXSc7CivmsbI+J1tkcmF3IHdhdGVyIGZyb20gd2VsbF0nOworIyLmsbI+J1tkcmF3IHdhdGVyIGZyb20gd2VsbF0nIiwKK+axuj4nW2RlY2lkZV0nOwor5rG9Pidbc3RlYW1dJzsKK+axvj4nW3JpdmVyIGluIHNoYW54aSBwcm92aW5jZV0nOwor5rKBPidbc29hayBpbnRvXSc7CivmsoI+J1tyaXZlciBpbiBzb3V0aGVhc3Qgc2hhbmRvbmcgZmxvd10nOwor5rKDPidbd2F0ZXJdJzsKK+ayiD4nW3NpbmtdJzsKK+ayjD4nW2NoYW90aWNdJzsKK+ayjT4nW2ZyZWV6aW5nXSc7CivmspA+J1tiYXRoZV0nOwor5rKSPidbbm90XSc7CivmspM+J1tjb25uZWN0ZWRdJzsKK+aylj4nW3BvdXJdJzsKK+aymT4nW3NhbmRdJzsKK+aymj4nW2lzbGV0IGluIHN0cmVhbV0nOwor5rKbPidbYWJ1bmRhbnRdJzsKK+ayoT4nW25vdF0nOwor5rKiPidbbWFyc2hdJzsKK+ayqz4nW2Zyb3RoXSc7Civmsq4+J1tzdG9wXSc7CivmsrE+J1tyaXZlcnNdJzsKK+aysz4nW3JpdmVyXSc7Civmsrg+J1tib2lsXSc7Civmsrk+J1tvaWxdJzsKK+ayuj4nW3R1cmJ1bGVudF0nOwor5rK7PidbZ292ZXJuXSc7Civmsrw+J1tsYWtlXSc7Civmsr0+J1tidXkgYW5kIHNlbGxdJzsKK+ayvj4nW21vaXN0ZW5dJzsKK+ayvz4nW2ZvbGxvdyBjb3Vyc2VdJzsKK+azgT4nW2NvbmRpdGlvbl0nOwor5rOEPidbbGVha10nOwor5rOFPidbc3dpbV0nOwor5rOJPidbc3ByaW5nXSc7Civms4o+J1thbmNob3IgdmVzc2VsXSc7Civms4w+J1t0byBzZWVwIG91dF0nOwor5rOTPidbY2xlYXJdJzsKK+azlT4nW2xhd10nOwor5rOXPidbbXVjb3VzXSc7Civms5k+J1tyb2FyXSc7Civms5s+J1tkcmlmdF0nOwor5rOdPidbZ28gdXBzdHJlYW1dJzsKK+azoT4nW2J1YmJsZXNdJzsKK+azoj4nW3dhdmVzXSc7Civms6M+J1tjcnldJzsKK+azpT4nW211ZF0nOwor5rOoPidbY29uY2VudHJhdGVdJzsKK+azqj4nW3RlYXJzXSc7Civms68+J1tkZXN0cm95XSc7Civms7A+J1tncmVhdF0nOwor5rOxPidbZ3JlYXRdJzsKK+azsz4nW2RpdmVdJzsKK+a0iz4nW29jZWFuXSc7CivmtIw+J1tjbGVhcl0nOwor5rSSPidbc3ByaW5rbGVdJzsKK+a0lz4nW3dhc2hdJzsKK+a0mT4nW25hbWUgb2YgYSByaXZlciBpbiBzaGFuZG9uZ10nOwor5rSbPidbcml2ZXIgaW4gc2hhYW54aSBwcm92aW5jZV0nOwor5rSePidbY2F2ZV0nOwor5rSfPidbc25pdmVsXSc7CivmtKU+J1tmZXJyeV0nOwor5rSpPidbbGVha10nOwor5rSqPidbdmFzdF0nOwor5rSrPidbdG8gZGl0Y2hdJzsKK+a0sj4nW2NvbnRpbmVudF0nOwor5rSzPidbZGFtcF0nOwor5rS1PidbdHJ1ZV0nOwor5rS2PidbdGhlIHJ1c2ggb2Ygd2F0ZXJdJzsKK+a0uD4nW3NwYXJrbGVdJzsKK+a0uz4nW2xpdmVdJzsKK+a0vT4nW3NwcmVhZF0nOwor5rS+Pidbc2Nob29sIG9mIHRob3VnaHRdJzsKK+a1gT4nW2Zsb3ddJzsKK+a1hD4nW3B1cmVdJzsKK+a1hT4nW3NoYWxsb3ddJzsKK+a1mT4nW3poZWppYW5nIHByb3ZpbmNlXSc7CivmtZo+J1tkcmVkZ2VdJzsKK+a1nD4nW2NyZWVrXSc7CivmtaM+J1t0byB3YXNoXSc7CivmtaQ+J1tiZWF0aW5nIG9mIG9jZWFuXSc7CivmtaY+J1tiYW5rIG9mIHJpdmVyXSc7Civmtak+J1tncmVhdF0nOwor5rWqPidbd2F2ZV0nOwor5rWsPidbbmF1dGljYWwgbWlsZV0nOwor5rWuPidbZmxvYXRdJzsKK+a1tD4nW2JhdGhlXSc7Civmtbc+J1tzZWFdJzsKK+a1uD4nW3NvYWtdJzsKK+a1uT4nW3NhdHVyYXRlXSc7CivmtoU+J1tibGFja2VuXSc7Civmtog+J1t2YW5pc2hdJzsKK+a2jD4nW3N1cmdlIHVwXSc7Civmto4+J1tzYWxpdmFdJzsKK+a2kz4nW2Jyb29rXSc7CivmtpU+J1t0ZWFyXSc7Civmtpk+J1t0ZWFyc10nOwor5rabPidbbGFyZ2Ugd2F2ZXNdJzsKK+a2nD4nW2RpdGNoXSc7Civmtq8+J1tzaG9yZV0nOwor5rayPidbc2FwXSc7CivmtrU+J1tzb2FrXSc7Civmtrg+J1tkcmllZCB1cF0nOwor5ra8PidbY29vbF0nOwor5reAPidbc2hhbGxvdyB3YXRlcl0nOwor5reFPidbd2F0ZXIgdXNlZCB3YXNoIHJpY2VdJzsKK+a3hj4nW2NvbmZ1c2VkXSc7Civmt4c+J1tyaXZlciBpbiBoZW5hbiBwcm92aW5jZV0nOwor5reLPidbZHJpcF0nOwor5reMPidbdHJpY2tsZV0nOwor5reRPidbZ29vZF0nOwor5reSPidbYml0dGVyIGNvbGRdJzsKKyMi5reVPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmt5g+J1t3YXNoIGluIHNpZXZlXSc7Civmt5k+J1tndXJnbGluZyBzb3VuZCBvZiB3YXRlcl0nOwor5reePidbbmFtZSBvZiBhIHJpdmVyIGluIEppYW5nc3VdJzsKK+a3oT4nW3dlYWtdJzsKK+a3pD4nW211ZF0nOwor5remPidbcml2ZXIgaW4gamlhbmd4aSBwcm92aW5jZTogd2F0ZXJdJzsKK+a3qD4nW3B1cmVdJzsKK+a3qj4nW2JlIGxvc3RdJzsKK+a3qz4nW29ic2NlbmVdJzsKK+a3rD4nW3RlbXBlcl0nOwor5reuPidbcml2ZXIgaW4gYW5odWkgcHJvdmluY2VdJzsKK+a3sT4nW2RlZXBdJzsKK+a3sz4nW2N5YW5vZ2VuXSc7Civmt7U+J1tndWxmXSc7Civmt7c+J1ttaXhdJzsKK+a3uT4nW2Ryb3duXSc7Civmt7o+J1tzaGFsbG93XSc7Civmt7s+J1thcHBlbmRdJzsKK+a4hT4nW2NsZWFyXSc7CivmuIc+J1t0aGlyc3R5XSc7CivmuIg+J1toZWxwXSc7CivmuIk+J1tmb3JkIHN0cmVhbV0nOwor5riKPidbc3VyZ2UgdXBdJzsKK+a4iz4nW2FzdHJpbmdlbnRdJzsKK+a4kz4nW21vdW50YWluIHN0cmVhbV0nOwor5riVPidbc3VyZ2UgdXBdJzsKK+a4mT4nW3NjYXR0ZXJdJzsKK+a4mj4nW3NtYWxsIHNhbmQgYmFua10nOwor5ribPidbZGVjcmVhc2VdJzsKK+a4nT4nW2NoYW5nZV0nOwor5rifPidbKG9mIHdhdGVyKSBub3QgZmxvd2luZ10nOwor5rigPidbZGl0Y2hdJzsKK+a4oT4nW2Nyb3NzXSc7CivmuKM+J1tyZWZ1c2VdJzsKK+a4pD4nW3N3ZWxsaW5nXSc7CivmuKU+J1ttb2lzdGVuXSc7CivmuKY+J1tzd2lybF0nOwor5ripPidbbHVrZXdhcm1dJzsKK+a4qz4nW2JlYXRpbmcgb2Ygb2NlYW5dJzsKK+a4rD4nW21lYXN1cmVdJzsKK+a4rT4nW25hbWUgb2YgYSByaXZlciBpbiBzaGFhbnhpXSc7CivmuK4+J1tyaXZlciBpbiBzaGFuZG9uZyBwcm92aW5jZV0nOwor5rivPidbcG9ydF0nOwor5ri4Pidbc3dpbV0nOwor5ri6PidbZW5kbGVzc2x5IGxvbmddJzsKK+a4vj4nW211ZGR5XSc7CivmuYM+J1tzb3VuZCBvZiB3YXZlc10nOwor5rmKPidbcGllY2UgdG9nZXRoZXJdJzsKK+a5jT4nW3JhcGlkIHdhdGVyIGN1cnJlbnRdJzsKK+a5jj4nW2ZsdXNoZWQgd2l0aCBkcmlua10nOwor5rmWPidbbGFrZV0nOwor5rmYPidbaHVuYW4gcHJvdmluY2VdJzsKK+a5mz4nW2RlZXBdJzsKK+a5nz4nW3JpdmVyIGluIHFpbmdoYWkgcHJvdmluY2VdJzsKK+a5pz4nW3dlbGwgdXBdJzsKK+a5qz4nW2Egc21hbGwgcG9uZF0nOwor5rmuPidbYnVyeV0nOwor5rmvPidbaG90IHdhdGVyXSc7CivmubI+J1tmbG93XSc7CisjIua5sz4nW1tub3QgZm91bmQgaW4gZGljdGlvbmFyeV1dJyIsCivmub4+J1tiYXldJzsKK+a5vz4nW3dldF0nOworIyLmub8+J1t3ZXRdJyIsCisjIua5vz4nW3dldF0nIiwKK+a6jD4nW3BvdXJdJzsKK+a6jz4nW3Bvb2xdJzsKK+a6kD4nW3NwcmluZ10nOwor5rqWPidbcnVsZV0nOwor5rqYPidbYWJydXB0bHldJzsKK+a6nD4nW3NsaWRlXSc7Civmup0+J1tkaXRjaF0nOwor5rqfPidbZHJpenpsaW5nIHJhaW5dJzsKK+a6oj4nW292ZXJmbG93XSc7CivmuqU+J1tiaWddJzsKK+a6qj4nW21vdW50YWluIHN0cmVhbV0nOwor5rqvPidbZ28gdXBzdHJlYW1dJzsKK+a6sj4nW3VyaW5hdGVdJzsKK+a6tj4nW21lbHRdJzsKK+a6tz4nW3ByaXZ5XSc7Civmuro+J1tkcm93bl0nOwor5rq9PidbbW9pc3RdJzsKK+a7gj4nW3RvcnJlbnRpYWxdJzsKK+a7hD4nW2JsdWVdJzsKK+a7hT4nW2V4dGluZ3Vpc2hdJzsKK+a7iT4nW2RlZXBdJzsKK+a7iz4nW2dyb3ddJzsKK+a7jD4nW3dhc2hdJzsKK+a7kT4nW3NsaXBdJzsKK+a7kz4nW3NlZGltZW50XSc7Civmu5Q+J1tvdmVyZmxvd10nOwor5ruVPidbPGFyY2g+IGNvdW50eSBpbiBzaGFuZG9uZyBwcm92aW5jZV0nOwor5rudPidbcmFpbmluZ10nOwor5ruePidbYmxvY2sgdXBdJzsKK+a7rD4nW3NoYW5naGFpXSc7Civmu68+J1tibG9jayB1cF0nOwor5ruyPidbc29hayB0aHJvdWdoXSc7Civmu7Q+J1tkcmlwXSc7Civmu7c+J1t0aGljayBncmF2eV0nOwor5ru4Pidbcml2ZXJiYW5rXSc7Civmu74+J1t0dXJuXSc7Civmu78+J1tmaWxsXSc7CivmvIE+J1t0byBmaXNoXSc7CivmvII+J1tmbG9hdF0nOwor5ryGPidbdmFybmlzaF0nOwor5ryJPidbZmlsdGVyXSc7CivmvI8+J1tsZWFrXSc7CivmvJE+J1t3YXRlcl0nOwor5ryTPidbcml2ZXIgaW4gZ3Vhbmd4aSBwcm92aW5jZV0nOwor5ryUPidbcGVyZm9ybV0nOwor5ryVPidbdHJhbnNwb3J0IGJ5IHdhdGVyXSc7CivmvKA+J1tkZXNlcnRdJzsKK+a8oj4nW2NoaW5lc2UgcGVvcGxlXSc7CivmvKM+J1tmbG93aW5nIHdhdGVyXSc7CivmvKs+J1tvdmVyZmxvdyBvZiB3YXRlcl0nOwor5rysPidbc29ha10nOwor5ryxPidbZ2FyZ2xlXSc7CivmvLI+J1tyaXNlIGluIHByaWNlXSc7CivmvLg+J1tncmFkdWFsbHldJzsKK+a8vj4nW292ZXJmbG93XSc7CivmvL8+J1thbnkgdGhpY2sgZmx1aWRdJzsKK+a9gT4nW3JpdmVyIGluIGFuaHVpXSc7CivmvYU+J1twb3VyXSc7CivmvZQ+J1tjbGVhbl0nOwor5r2YPidbc3VybmFtZV0nOwor5r2bPidbaGlkZV0nOwor5r2cPidbaGlkZV0nOwor5r2fPidbbGFuZCBpbnVuZGF0ZWQgd2l0aCBzYWx0IGZyb20gdGldJzsKK+a9pD4nW3NvZnRdJzsKK+a9pj4nW3RvIGZsb29kXSc7Civmva0+J1tkZWVwIHBvb2xdJzsKK+a9rj4nW3RpZGVdJzsKK+a9rz4nW3N0ZWVwIGJhbmsgYnkgc3RyZWFtXSc7CivmvbA+J1tmbG9vZGluZyByaXZlcl0nOwor5r20PidbcG9uZF0nOwor5r24Pidbd2VlcF0nOwor5r26Pidbc291bmQgb2YgZmxvd2luZyB3YXRlcl0nOwor5r28PidbaGlnaF0nOwor5r6APidbYXN0cmluZ2VudF0nOwor5r6BPidbYXN0cmluZ2VudF0nOwor5r6CPidbY2xlYXIgYW5kIHN0aWxsIHdhdGVyXSc7CivmvoQ+J1twdXJpZnkgd2F0ZXIgYnkgYWxsb3dpbmcgc2VkaW1lbl0nOwor5r6GPidbc3ByYXldJzsKK+a+jj4nW3NwbGF0dGVyXSc7CivmvpE+J1tzbGlkZV0nOwor5r6XPidbYnJvb2tdJzsKK+a+oT4nW3dhc2hdJzsKK+a+oz4nW2NsZWFuc2VdJzsKK+a+pD4nW21hcnNoXSc7CisjIua+qj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5r6xPidbc2VkaW1lbnRdJzsKK+a+sz4nW2lubGV0XSc7Civmvrk+J1tjYWxtXSc7Civmv4A+J1thcm91c2VdJzsKK+a/gT4nW211ZGR5XSc7Civmv4I+J1t3YXRlcmZhbGxdJzsKK+a/gz4nW3RoaWNrXSc7Civmv4Y+J1tyaXZlciBiYW5rXSc7Civmv5Q+J1ttYW55XSc7Civmv5U+J1t3ZXRdJzsKK+a/mD4nW211ZF0nOwor5r+bPidbZHJpenpsaW5nXSc7Civmv58+J1toZWxwXSc7Civmv6A+J1ttb2F0XSc7Civmv6E+J1tpbW1lcnNlXSc7Civmv6Q+J1tsYXJnZSB3YXZlc10nOwor5r+rPidbZmxvb2RdJzsKK+a/rD4nW2RyZWRnZV0nOwor5r+uPidbY291bnR5IGluIEhlbmFuIHByb3ZpbmNlXSc7Civmv68+J1t3YXNoIG91dF0nOwor5r+xPidbYmVhY2hdJzsKK+a/sz4nW2hpZGVdJzsKK+a/tj4nW2Jyb2FkXSc7Civmv7o+J1tzcHJpbmtsZV0nOwor5r++Pidbc3RyYWluIG91dF0nOwor54CBPidbd2F2ZXNdJzsKK+eAiT4nW2RyYWluIG9mZl0nOwor54CLPidbanVpY2VdJzsKK+eAjz4nW2NsZWFyXSc7CivngJE+J1t3YXRlcmZhbGxdJzsKK+eAlT4nW2FwcHJvYWNoXSc7CivngJg+J1tyaXZlciBpbiBqaWFuZ3hpIHByb3ZpbmNlXSc7CivngJo+J1t2YXN0XSc7CivngJs+J1tzZWFdJzsKK+eAnT4nW3RyaWNrbGVdJzsKK+eAnj4nW3Bvb2wgaW4gYSByaXZlcl0nOwor54CfPidbc291bmQgb2YgYmVhdGluZyB3aW5kIGFuZCByYWluXSc7CivngKY+J1twb25kXSc7CivngKc+J1tyYWluaW5nXSc7CivngKw+J1tzd2lmdCBjdXJyZW50XSc7CivngLA+J1tvdmVyZmxvd10nOwor54CyPidbd2F2ZXNdJzsKK+eAvj4nW292ZXJmbG93aW5nXSc7CivngYw+J1twb3VyXSc7CivngZE+J1tzcHJpbmtsZV0nOwor54GYPidbYmFua10nOwor54GjPidbYmF5XSc7Civngas+J1tmaXJlXSc7Civnga8+J1tsYW50ZXJuXSc7CivngbA+J1thc2hlc10nOwor54G4PidbY2F1dGVyaXplIHdpdGggbW94YV0nOwor54G8PidbYnVybl0nOwor54G9PidbY2FsYW1pdHldJzsKK+eCiT4nW2ZpcmVwbGFjZV0nOwor54KKPidbY29va10nOwor54KOPidbZmxhbWVdJzsKK+eCkj4nW2ZyeV0nOwor54KZPidbcm9hc3RdJzsKK+eCrD4nW3RvcmNoXSc7Civngq0+J1tjaGFyY29hbF0nOwor54KuPidbbGFyZ2UgZ3VuXSc7Civngq8+J1ticmlnaHRdJzsKK+eCsz4nW2JyaWdodF0nOwor54K4PidbZnJ5IGluIG9pbF0nOwor54K5PidbZG90XSc7Civngro+J1tkb10nOwor54OIPidbZmllcnldJzsKK+eDiz4nW2JvYXN0XSc7Civng48+J1tjcm93XSc7Civng5k+J1ticmFuZF0nOwor54OdPidbcmlzZV0nOwor54OfPidbc21va2VdJzsKK+eDsT4nW2JyaWdodF0nOwor54O5PidbYm9pbF0nOwor54O9Pidbc2lnbmFsIGZpcmVdJzsKK+eEiT4nW3RoZXJldXBvbl0nOwor54SUPidbZmxhbWVdJzsKK+eEmT4nW2RyeSBvdmVyIHNsb3cgZmlyZV0nOwor54SaPidbYnVybl0nOwor54ScPidbZmlyZV0nOwor54ShPidbbmVnYXRpdmVdJzsKK+eEpj4nW2J1cm5lZF0nOwor54S2PidbeWVzXSc7CivnhLw+J1tidXJuXSc7CivnhYk+J1tzbWVsdF0nOwor54WMPidbYnJpZ2h0XSc7CivnhY4+J1tmcnkgaW4gZmF0IG9yIG9pbF0nOwor54WVPidbYnJpZ2h0XSc7CivnhZY+J1t3YXJtXSc7CivnhZk+J1tzbW9rZV0nOwor54WiPidbYWxvbmVdJzsKK+eFpD4nW2NvYWxdJzsKK+eFpT4nW3NoaW5pbmddJzsKK+eFpj4nW2tpbmRdJzsKK+eFpz4nW3NoaW5lXSc7Civnhak+J1tib3RoZXJdJzsKK+eFrD4nW3JvYXN0XSc7Civnha4+J1tjb29rXSc7Civnhb0+J1tzdGlyIHVwXSc7CivnhoQ+J1twdXQgb3V0XSc7Civnhog+J1ticmlnaHRdJzsKK+eGij4nW2JlYXJdJzsKK+eGjz4nW3Ntb2tlXSc7CivnhpQ+J1ttZWx0XSc7CisjIueGlT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor54aZPidbYnJpZ2h0XSc7Civnhp8+J1t3ZWxsIGNvb2tlZF0nOwor54aoPidbaXJvbl0nOwor54asPidbY29vayBkb3duXSc7CivnhrE+J1tob3RdJzsKK+eGuT4nW2RpbSBsaWdodF0nOwor54a+PidbYnVybmluZyBob3RdJzsKK+eHgz4nW2J1cm5dJzsKK+eHiD4nW2xhbnRlcm5dJzsKK+eHiT4nW2hlYXQgd2l0aCBmaXJlXSc7Civnh44+J1tidXJuXSc7Civnh5A+J1twaG9zcGhvcnVzXSc7Civnh5I+J1tidXJuXSc7Civnh5Q+J1t0byByb2FzdF0nOwor54eVPidbc3dhbGxvdyAoYmlyZCldJzsKKyMi54eXPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnh58+J1tlbmNhbXBtZW50XSc7Civnh6A+J1t3YXJtXSc7Civnh6U+J1tkcnldJzsKK+eHpj4nW3ZpdmlkXSc7Civnh6c+J1tmbGludHN0b25lXSc7Civnh6w+J1tidXJuIGRvd25dJzsKK+eHrT4nW2NhbmRsZV0nOwor54euPidbaGFybW9uaXplXSc7CisjIueHtT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor54e5PidbZmlyZV0nOwor54e7Pidbc21va2VdJzsKK+eHvD4nW2NpbmRlcnNdJzsKK+eHvz4nW3NoaW5lXSc7CivniIY+J1tjcmFja2xlXSc7CivniI0+J1tzaGluZV0nOwor54iQPidbZmlyZXBsYWNlXSc7CivniJs+J1tyb3R0ZW5dJzsKK+eIqD4nW292ZW5dJzsKK+eIqj4nW2NsYXddJzsKK+eIrD4nW2NyYXdsXSc7CivniK0+J1tkaXNwdXRlXSc7CivniLA+J1tsZWFkIG9uIHRvXSc7CivniLI+J1tkb10nOwor54i1PidbZmV1ZGFsIHRpdGxlIG9yIHJhbmtdJzsKK+eItj4nW2ZhdGhlcl0nOwor54i6PidbZmF0aGVyXSc7CivniLs+J1tkaWFncmFtcyBmb3IgZGl2aW5hdGlvbl0nOwor54i8PidbY2hvcHBpbmcgYm9hcmQgb3IgYmxvY2tdJzsKK+eIvT4nW2hhcHB5XSc7CivniL4+J1t5b3VdJzsKK+eIvz4nW2hhbGYgb2YgdHJlZSB0cnVua10nOwor54mAPidbYmVkXSc7CivniYY+J1t3YWxsXSc7CivniYc+J1tzbGljZV0nOwor54mIPidbcHJpbnRpbmcgYmxvY2tzXSc7CivniYs+J1ttZW1vcmFuZHVtXSc7CivniYw+J1tzaWduYm9hcmRdJzsKK+eJkj4nW2RvY3VtZW50c10nOwor54mYPidbd3JpdGluZyB0YWJsZXRdJzsKK+eJmT4nW3Rvb3RoXSc7CivniZs+J1tjb3ddJzsKK+eJnT4nW2ZlbWFsZSBvZiBzcGVjaWVzXSc7CivniZ8+J1ttYWtlXSc7CivniaE+J1ttYWxlIG9mIGFuaW1hbHNdJzsKK+eJoj4nW3ByaXNvbl0nOwor54mnPidbdGVuZCBjYXR0bGVdJzsKK+eJqT4nW3RoaW5nXSc7CivnibI+J1tzYWNyaWZpY2lhbCBhbmltYWxdJzsKK+eJtD4nW2dvcmVdJzsKK+eJuT4nW3NwZWNpYWxdJzsKK+eJvT4nW2RyYWddJzsKK+eJvj4nW3RvIG9wcG9zZV0nOwor54qAPidbcmhpbm9jZXJvc10nOwor54qBPidbcGxvd10nOwor54qCPidbcGxvd10nOwor54qHPidbcnVuIGZhc3RdJzsKK+eKkj4nW2VudGVydGFpbiB2aWN0b3Jpb3VzIHNvbGRpZXJzXSc7CivnipY+J1ticmluZGxlZCBveF0nOwor54qgPidbc2FjcmlmaWNlXSc7CivniqI+J1tjYWxmXSc7Civniqc+J1tzYWNyaWZpY2VdJzsKK+eKrD4nW2RvZ10nOwor54qvPidbY29tbWl0IGNyaW1lXSc7CivnirI+J1t3b2xmXSc7CivnirY+J1tmb3JtXSc7Civnirk+J1tsaWtlXSc7Civni4I+J1tpbnNhbmVdJzsKK+eLgz4nW3RvIGNvdmV0XSc7Civni4Q+J1t0cmliZSBmcm9tIG5vcnRoZXJuIGNoaW5hXSc7Civni4Y+J1twZWtpbmVzZSBkb2ddJzsKK+eLjj4nW2JlIGZhbWlsaWFyIHdpdGhdJzsKK+eLkD4nW3NwZWNpZXMgb2YgZm94XSc7Civni5I+J1tiYWJvb25dJzsKK+eLlz4nW2RvZ10nOwor54uZPidbYXBlXSc7CisjIueLmz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor54ugPidbdmljaW91c10nOwor54uhPidbY3VubmluZ10nOwor54uiPidbYW5pbWFsIG5hbWVdJzsKK+eLqT4nW3dpbnRlciBodW50aW5nXSc7Civni6w+J1thbG9uZV0nOwor54utPidbbmFycm93XSc7Civni7c+J1tyYXNoXSc7Civni7g+J1tmb3hdJzsKK+eLuT4nW25hcnJvd10nOwor54u8Pidbd29sZl0nOwor54u9PidbbGVnZW5kYXJ5IGFuaW1hbCB3aXRoIHNob3J0IGZvcmVdJzsKK+eMij4nW2xpb25dJzsKK+eMlj4nW21hZF0nOwor54yXPidbZXhjbGFtYXRpb24gb2YgYWRtaXJhdGlvbl0nOwor54ybPidbdmlvbGVudF0nOwor54ycPidbZ3Vlc3NdJzsKK+eMnT4nW2FicnVwdGx5XSc7CivnjJ8+J1todW50XSc7CivnjKU+J1t2dWxnYXJdJzsKK+eMqT4nW3NwZWNpZXMgb2Ygb3Jhbmd1dGFuXSc7CivnjKo+J1twaWddJzsKK+eMqz4nW2NhdF0nOwor54yuPidbb2ZmZXJdJzsKKyMi54yvPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnjLQ+J1ttb25rZXldJzsKK+eMtj4nW2xpa2VdJzsKK+eMtz4nW3BsYW5dJzsKK+eMvj4nW2NyYWZ0eV0nOwor54y/PidbYXBlXSc7CivnjYQ+J1twcmlzb25dJzsKK+eNhT4nW2xpb25dJzsKK+eNjj4nW3ByaXplXSc7CivnjY8+J1t0aGUgcGFudGhlcl0nOwor542XPidbdW5ydWx5XSc7CivnjaM+J1tiZWFzdF0nOwor542oPidbYWxvbmVdJzsKK+eNqj4nW3NseV0nOwor542wPidbZmVyb2Npb3VzIGFwcGVhcmFuY2VdJzsKK+eNsj4nW29idGFpbl0nOwor5421PidbaHVudF0nOwor5424PidbYmVhc3RdJzsKK+eNuj4nW290dGVyXSc7Civnjbs+J1tvZmZlcl0nOwor546EPidbZGVlcF0nOwor546HPidbdG8gbGVhZF0nOwor546JPidbamFkZV0nOwor546LPidba2luZ10nOwor546WPidbYmxhY2stY29sb3JlZCBqYWRlXSc7Civnjqk+J1twbGF5IHdpdGhdJzsKK+eOsj4nW3RpbmtsaW5nIG9mIGphZGVdJzsKK+eOsz4nW3RvcnRvaXNlIHNoZWxsXSc7Civnjrs+J1tnbGFzc10nOwor54+APidbYW1iZXJdJzsKK+ePgj4nW2luZmVyaW9yIGtpbmQgb2YgamFkZV0nOwor54+IPidbb3JuYW1lbnQgYXR0YWNoZWQgd29tYW4nJ3MgaGFpcnBpXSc7Civnj4o+J1tjb3JhbF0nOwor54+NPidbcHJlY2lvdXNdJzsKK+ePjj4nW3ByZWNpb3VzXSc7Civnj54+J1traW5kIG9mIG5lY2tsYWNlXSc7Civnj6A+J1twcmVjaW91cyBzdG9uZV0nOwor54+lPidbZWFyIG9ybmFtZW50XSc7Civnj6o+J1tqYWRlIHRhYmxlIGNvbmZlcnJlZCB1cG9uIGZldWRhbF0nOwor54+tPidbY2xhc3NdJzsKK+ePrj4nW2phZGUgb3JuYW1lbnRdJzsKK+ePsT4nW25lY2tsYWNlIG1hZGUgb2YgcHJlY2lvdXMgc3RvbmVzXSc7CisjIuePuD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor54++PidbYXBwZWFyXSc7CivnkIM+J1tiYWxsXSc7CivnkIU+J1t2YXJpZXR5IG9mIHdoaXRlIGNhcm5lbGlhbl0nOwor55CGPidbcmVhc29uXSc7CivnkIk+J1tzcGFya2xpbmcgc3RvbmVdJzsKK+eQoj4nW3BvbGlzaCBqYWRlXSc7CivnkKU+J1tqZXdlbCBpbiBzaGFwZSBvZiB0aWdlcl0nOwor55CyPidbbmVja2xhY2VdJzsKK+eQsz4nW2JlYXV0aWZ1bCBqYWRlXSc7CivnkLQ+J1tjaGluZXNlIGx1dGUgb3IgZ3VpdGFyXSc7CivnkLU+J1tndWl0YXItbGlrZSBpbnN0cnVtZW50XSc7CivnkLY+J1tndWl0YXItbGlrZSBpbnN0cnVtZW50XSc7CivnkLo+J1tlbmFtZWxdJzsKK+eQvz4nW2JyaWdodF0nOwor55GBPidbZmluZSBwaWVjZSBvZiBqYWRlXSc7CivnkZU+J1tmbGF3IGluIGdlbV0nOwor55GZPidbYWdhdGVdJzsKK+eRmj4nW2NvcmFsXSc7CivnkZs+J1tsdXN0ZXIgb2YgZ2VtXSc7CivnkZw+J1tmbGF3bGVzcyBnZW0gb3IgamV3ZWxdJzsKK+eRnj4nW2ZlbGljaXRvdXMgb21lbl0nOwor55GfPidbbGFyZ2Ugc3RyaW5nZWQgbXVzaWNhbCBpbnN0cnVtZW50XSc7CivnkaA+J1twcmVjaW91cyBzdG9uZV0nOwor55GjPidbZnJhZ21lbnRzXSc7CivnkaQ+J1twcmVjaW91cyBqYWRlXSc7Civnkak+J1tsdXN0cmUgb2YgZ2Vtc10nOwor55GqPidbYWdhdGVdJzsKK+eRrz4nW2tpbmQgb2Ygd2hpdGUgY29ybmVsaWFuXSc7CivnkbA+J1tleHRyYW9yZGluYXJ5XSc7CivnkbM+J1tsdXN0ZXIgb2YgZ2VtXSc7CivnkbY+J1twcmVjaW91cyBqYWRlXSc7Civnkb4+J1ticmlsbGlhbmNlIG9mIGdlbXNdJzsKK+eSgz4nW2dsYXNzXSc7Civnkos+J1tqYWRlIHBsYXl0aGluZ10nOwor55KePidbdW5wb2xpc2hlZCBnZW1dJzsKK+eSoj4nW3ByZWNpb3VzIHN0b25lXSc7Civnkqc+J1twaWVjZSBvZiBqYWRlIHdpdGggaG9sZSBpbiBpdF0nOwor55KwPidbamFkZSByaW5nIG9yIGJyYWNlbGV0XSc7Civnkr0+J1tpbXBlcmlhbCBzaWduZXRdJzsKK+eTij4nW2phZGVdJzsKK+eTjz4nW2dlbSBjdXQgbGlrZSBkcmFnb25dJzsKK+eTlD4nW25lY2tsYWNlIG1hZGUgb2YgcHJlY2lvdXMgc3RvbmVzXSc7Civnk5w+J1ttZWxvbl0nOwor55OgPidbYm90dGxlIGdvdXJkXSc7Civnk6I+J1tsYWRsZSBtYWRlIGZyb20gZHJpZWQgZ291cmRdJzsKK+eToz4nW3BldGFsXSc7Civnk6Y+J1t0aWxlXSc7Civnk6c+J1tkZWNhZ3JhbV0nOwor55OpPidba2lsb3dhdHRdJzsKK+eTrj4nW2VhcnRoZW4gamFyXSc7Civnk7A+J1tbbm90IGZvdW5kIGluIGRpY3Rpb25hcnldXSc7Civnk7E+J1ttaWxsaWdyYW1dJzsKKyMi55OyPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnk7Y+J1tqdWddJzsKK+eTtz4nW2Nyb2NrZXJ5XSc7Civnk7g+J1toZWN0b2dyYW1dJzsKK+eUgz4nW2JyaWNrIHdhbGwgb2YgYSB3ZWxsXSc7CivnlIQ+J1tleGFtaW5lXSc7CivnlIU+J1tjZW50aWdyYW1dJzsKK+eUjD4nW2Jvd2xdJzsKK+eUjT4nW3JhZnRlcnMgc3VwcG9ydGluZyByb29mIHRpbGVzXSc7CivnlI4+J1ticmlja10nOwor55SRPidbYm9pbGVyIGZvciBzdGVhbWluZyByaWNlXSc7CivnlJM+J1tnbGF6ZWQgdGlsZXNdJzsKK+eUlT4nW2VhcnRoZW4gamFyXSc7CivnlJg+J1tzd2VldG5lc3NdJzsKK+eUmj4nW2dyZWF0IGV4dGVudF0nOwor55ScPidbc3dlZXRdJzsKK+eUnj4nW3Rhc3RlXSc7CivnlJ8+J1tsaWZlXSc7CivnlKM+J1tnaXZlIGJpcnRoXSc7CivnlKU+J1tzaXN0ZXInJ3MgY2hpbGRdJzsKK+eUpj4nW2JlIHJlYm9ybl0nOwor55SoPidbdXNlXSc7CivnlKs+J1tiZWdpbl0nOwor55SsPidbcGF0aF0nOwor55SwPidbZmllbGRdJzsKK+eUsT4nW2NhdXNlXSc7CivnlLI+J1thcm1vcl0nOwor55SzPidbdG8gc3RhdGUgdG8gYSBzdXBlcmlvcl0nOwor55S3PidbbWFsZV0nOwor55S4Pidbc3VidXJicyBvZiBjYXBpdGFsXSc7CivnlLo+J1tyYWlzZWQgcGF0aCBiZXR3ZWVuIGZpZWxkc10nOwor55S7PidbcGFpbnRpbmddJzsKK+eUvD4nW3JhaXNlZCBwYXRoIGJldHdlZW4gZmllbGRzXSc7CivnlYQ+J1tzdG9wXSc7CivnlYY+J1tjaGluZXNlIGxhbmQgbWVhc3VyZV0nOworIyLnlYk+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+eVij4nW3Bsb3ddJzsKK+eViz4nW3RpbGwgbGFuZF0nOwor55WMPidbYm91bmRhcnldJzsKKyMi55WNPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnlY8+J1tmZWFyXSc7CivnlZE+J1tkcnkgKGFzIG9wcG9zZWQgdG8gcmljZSkgZmllbGRdJzsKK+eVlD4nW2JvdW5kYXJ5IHBhdGggZGl2aWRpbmcgZmllbGRzXSc7CivnlZk+J1tzdG9wXSc7CivnlZo+J1tzdHJhdyBiYXNrZXRdJzsKK+eVmz4nW2JvcmRlcl0nOwor55WcPidbbGl2ZXN0b2NrXSc7CivnlZ0+J1tjaGluZXNlIGxhbmQgbWVhc3VyZV0nOwor55WgPidbZ2FyZGVuXSc7CivnlaI+J1tlbmRdJzsKK+eVpD4nW3BsYWNlIGZvciB3b3JzaGlwcGluZyB0aGUgaGF2ZW5dJzsKK+eVpT4nW2FwcHJveGltYXRlbHldJzsKK+eVpj4nW3NlY3Rpb25zIGluIHZlZ2V0YWJsZSBmYXJtXSc7Civnlac+J1thcHByb3hpbWF0ZWx5XSc7CisjIueVqT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor55WqPidbdGFrZSB0dXJuc10nOwor55WrPidbZGVsaW5lYXRlXSc7CisjIueVrT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor55WwPidbZGlmZmVyZW50XSc7CivnlbM+J1tyZXBlYXRdJzsKK+eVtD4nW2Zhcm1sYW5kXSc7CivnlbY+J1tiZWFyXSc7Civnlbc+J1tyYWlzZWQgcGF0aCBiZXR3ZWVuIGZpZWxkc10nOwor55W4Pidbb2RkXSc7Civnlb8+J1tpbXBlcmlhbCBkb21haW5dJzsKK+eWgj4nW3JlcGVhdF0nOwor55aGPidbYm91bmRhcnldJzsKK+eWhz4nW2Zhcm1sYW5kXSc7Civnlok+J1tyZXBlYXRdJzsKK+eWij4nW3JlcGVhdF0nOwor55aLPidbcm9sbF0nOwor55aOPidbbmVnbGVjdF0nOwor55aPPidbbmVnbGVjdF0nOwor55aRPidbZG91YnRdJzsKK+eWlD4nW2NhcmJ1bmNsZV0nOwor55aaPidbY2hyb25pYyBkaXNlYXNlXSc7Civnlp0+J1toZXJuaWFdJzsKK+eWoz4nW3dhcnRdJzsKK+eWpT4nW3NjYWJpZXNdJzsKK+eWqz4nW2VwaWRlbWljXSc7CivnlrE+J1thY25lXSc7CivnlrI+J1tmZWVsIHRpcmVkXSc7CivnlrM+J1tjaGlsZGhvb2QgZGlzZWFzZXNdJzsKK+eWtT4nW2ZsYXddJzsKK+eWuD4nW2phdW5kaWNlXSc7Civnlrk+J1ttZWFzbGVzXSc7Civnlrw+J1thY2hlc10nOwor55a9PidbdWxjZXJdJzsKK+eWvj4nW2lsbG5lc3NdJzsKK+eXgj4nW3NjYWJdJzsKK+eXgz4nW2luZGlnZXN0aW9uXSc7Civnl4U+J1tpbGxuZXNzXSc7Civnl4c+J1tkaXNlYXNlXSc7Civnl4o+J1tiZSBoZWFsZWRdJzsKK+eXjT4nW3dvdW5kXSc7Civnl5I+J1tpdGNoXSc7Civnl5Q+J1toZW1vcnJob2lkc10nOwor55eVPidbc2Nhcl0nOwor55eYPidbc21hbGxwb3hdJzsKK+eXmT4nW2NvbnZ1bHNpb25zXSc7Civnl5s+J1twYWluXSc7Civnl54+J1tkeXNwZXBzaWFdJzsKK+eXoj4nW2R5c2VudHJ5XSc7Civnl6M+J1tzcG90c10nOwor55epPidbdGhpbl0nOwor55ewPidbcGhsZWdtXSc7Civnl7I+J1twb2NrLW1hcmtlZF0nOwor55ezPidbcG9jay1tYXJrZWRdJzsKK+eXtD4nW2Zvb2xpc2hdJzsKK+eXuj4nW3BhcmFseXNpc10nOwor55e8PidbY2hyb25pYyBkaXNlYXNlXSc7Civnl74+J1tjaHJvbmljIGlsbG5lc3NdJzsKK+eXvz4nW3BhcmFseXNpc10nOwor55iBPidbZmVlbCB0aXJlZF0nOwor55iJPidbZ2V0IHdlbGxdJzsKK+eYiz4nW2NyYXp5XSc7CivnmI0+J1t1bGNlcnNdJzsKK+eYnz4nW2VwaWRlbWljXSc7CivnmKA+J1t0aGluXSc7CivnmKE+J1t0dW1vcl0nOwor55iiPidbc2Nhcl0nOwor55ikPidbdHVtb3JdJzsKK+eYpz4nW2ludGVybWl0dGVudCBmZXZlcl0nOwor55iwPidbc2Nyb2Z1bGFdJzsKK+eYtD4nW21hbGFyaWEgcGVzdGlsZW50aWFsIHZhcG9yc10nOwor55i7PidbZmlzdHVsYV0nOwor55mCPidbYmUgaGVhbGVkXSc7CivnmYY+J1tjb25zdW1wdGlvbl0nOwor55mHPidbZXBpbGVwc3ldJzsKK+eZiD4nW2Ficm9nYXRlXSc7CivnmYw+J1tjYW5jZXJdJzsKK+eZkj4nW2dldCB3ZWxsXSc7CivnmZY+J1tjcmF2aW5nXSc7CivnmZg+J1tzb3JlXSc7CivnmZw+J1tlcnl0aGVtYV0nOwor55mhPidbc2lsbHldJzsKK+eZoj4nW2l0Y2hdJzsKK+eZpz4nW3Njcm9mdWxvdXMgbHVtcHMgb3Igc3dlbGxpbmdzXSc7Civnmag+J1txdWlja2x5XSc7Civnmak+J1tsZXByb3N5XSc7Civnmao+J1tzcGFzbXNdJzsKK+eZrD4nW3Jpbmd3b3Jtc10nOwor55mwPidbY2FyYnVuY2xlXSc7CivnmbI+J1tjcmF6eV0nOwor55m2PidbbGVnc10nOwor55m4PidbbGFzdCBvZiB0ZW4gY2VsZXN0aWFsIHN0ZW1zXSc7Civnmbo+J1tpc3N1ZV0nOwor55m7PidbcmlzZV0nOwor55m8PidbaXNzdWVdJzsKK+eZvT4nW3doaXRlXSc7Civnmb4+J1tvbmUgaHVuZHJlZF0nOwor55qAPidba2VybmVsXSc7CivnmoM+J1tjb3VudGVuYW5jZV0nOwor55qEPidbcG9zc2Vzc2l2ZV0nOwor55qGPidbYWxsXSc7Civnmoc+J1tyb3lhbF0nOwor55qIPidbZm9sbG93XSc7Civnmos+J1t0aGUgaGlnaCBsYW5kIGFsb25nIGEgcml2ZXJdJzsKK+eajj4nW3doaXRlXSc7CivnmpA+J1t0aGUgaGlnaCBsYW5kIGFsb25nIGEgcml2ZXJdJzsKK+eakz4nW2JyaWdodF0nOwor55qWPidbYW5odWkgcHJvdmluY2VdJzsKK+eamT4nW3doaXRlXSc7Civnmpo+J1ticmlsbGlhbnQgd2hpdGVdJzsKK+earj4nW3NraW5dJzsKK+easD4nW3BpbXBsZXNdJzsKK+eatD4nW2NoYXBwZWRdJzsKK+eatz4nW2RydW1dJzsKK+eauD4nW2NyYWNrXSc7Civnmrk+J1tjcmFja10nOwor55q6Pidbd3JpbmtsZXNdJzsKK+eavz4nW3NoYWxsb3cgY29udGFpbmVyXSc7Civnm4I+J1tiYXNpbl0nOwor55uDPidbZ2xhc3NdJzsKK+ebhj4nW2Jhc2luXSc7Civnm4g+J1tmaWxsXSc7Civnm4o+J1twcm9maXRdJzsKK+ebjT4nW3doYXQ/IHdoeSBub3Q/IGNvcnJlc3BvbmRdJzsKK+ebkj4nW3NtYWxsIGJveCBvciBjYXNlXSc7Civnm5Y+J1tjb3Zlcl0nOwor55uXPidbcm9iXSc7Civnm5s+J1thYnVuZGFudF0nOwor55ucPidbcm9iXSc7Civnm54+J1tzbWFsbCBjdXAgb3IgY29udGFpbmVyXSc7Civnm58+J1tzd2Vhcl0nOwor55uhPidbZXhoYXVzdF0nOwor55ujPidbc3VwZXJ2aXNlXSc7Civnm6Q+J1t0cmF5XSc7Civnm6U+J1t3YXNoXSc7Civnm6c+J1tjb3R0YWdlXSc7Civnm6o+J1t0byB0b3NzIGFib3V0XSc7Civnm64+J1tleWVdJzsKK+ebsj4nW2JsaW5kXSc7Civnm7Q+J1tzdHJhaWdodF0nOwor55u4PidbbXV0dWFsXSc7Civnm7s+J1tnbGFyZV0nOwor55u+Pidbc2hpZWxkXSc7CivnnIE+J1twcm92aW5jZV0nOwor55yEPidbdG8gbG9vayBhc2thbmNlXSc7CivnnIc+J1tibGluZCBpbiBvbmUgZXllXSc7CivnnIg+J1tnbG9hdF0nOwor55yJPidbZXllYnJvd3NdJzsKK+eciz4nW2xvb2tdJzsKK+ecjD4nW2NvdW50eV0nOwor55ybPidbZGltXSc7CisjIuecnj4nW3JlYWxdJyIsCivnnJ8+J1tyZWFsXSc7CivnnKA+J1tjbG9zZSBleWVzXSc7CisjIuecpD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor55ylPidbZXllIHNvY2tldHNdJzsKK+ecpj4nW2Nvcm5lciBvZiB0aGUgZXllc10nOwor55ypPidbY29uZnVzZV0nOwor55y3PidbdGFrZSBpbnRlcmVzdCBpbl0nOwor55y4PidbcHVwaWwgb2YgZXllXSc7CivnnLo+J1tsb29rIGF0XSc7CivnnLw+J1tleWVdJzsKK+edgD4nW21ha2UgbW92ZV0nOwor552HPidbbG9vayBhdF0nOwor552aPidbY29ybmVyIG9mIGV5ZV0nOwor552bPidbZXllYmFsbF0nOwor552hPidbc2xlZXBdJzsKK+edoz4nW3N1cGVydmlzZV0nOwor552lPidbbG9vayBhc2thbmNlIGF0XSc7CivnnaY+J1tmcmllbmRseV0nOwor552oPidbbG9vayBhc2thbmNlIGF0XSc7Civnnas+J1tleWVsYXNoZXNdJzsKK+eduT4nW2xvb2sgYXRdJzsKK+edvj4nW3Rlc3RpY2xlXSc7Civnnb8+J1tzaHJld2RdJzsKK+eeiz4nW2dsYXJlIHdpdGggYW5nZXJdJzsKK+eejj4nW2JsaW5kXSc7CivnnpE+J1tjbG9zZSBleWVzXSc7Civnnp4+J1tkZWNlaXZlXSc7CivnnqA+J1tsb29rIGF0XSc7CivnnqU+J1t0YWtlIGZsZWV0aW5nIGdsYW5jZSBhdF0nOwor556sPidbd2lua10nOwor556tPidbYnJpZ2h0XSc7CivnnrA+J1t3YXRjaF0nOwor556zPidbcHVwaWwgb2YgZXllXSc7CivnnrY+J1tkaW1dJzsKKyMi5562PidbZGltXSciLAor5567PidbbG9va10nOwor5568PidbZXllbGlkXSc7Civnnr0+J1tibGluZF0nOwor556/Pidbc3VybmFtZV0nOwor55+HPidbc3R1cGlkXSc7Civnn40+J1tsb29rIGFib3V0IGluIGZpcmdodCBvciBhbGFybV0nOwor55+XPidbc3RyYWlnaHRdJzsKK+efmj4nW3dhdGNoIGNhcmVmdWxseV0nOwor55+bPidbc3BlYXJdJzsKK+efnD4nW3BpdHldJzsKK+efoj4nW2Fycm93XSc7Civnn6M+J1twYXJ0aWNsZSBvZiBjb21wbGV0ZWQgYWN0aW9uXSc7Civnn6U+J1trbm93XSc7Civnn6c+J1ttdWNoIG1vcmVdJzsKK+efqT4nW2NhcnBlbnRlcicncyBzcXVhcmVdJzsKK+efrT4nW3Nob3J0XSc7Civnn64+J1tzaG9ydF0nOwor55+vPidbY29ycmVjdF0nOwor55+zPidbc3RvbmVdJzsKK+efvD4nW3N0b25lIGJyaWRnZV0nOwor56CCPidbc2FuZF0nOwor56CMPidbc3RvbmUgc3RlcHNdJzsKK+egkj4nW2Fyc2VuaWNdJzsKK+eglD4nW2dyaW5kXSc7CivnoJU+J1ticmVha10nOwor56CgPidbcm9ja3ldJzsKK+egpT4nW3doZXRzdG9uZV0nOwor56CmPidbc3RvY2thZGVdJzsKK+egpz4nW2FudmlsXSc7CivnoLI+J1tndW5dJzsKK+egtD4nW2JyZWFrXSc7CivnoLo+J1t3aGV0c3RvbmVdJzsKK+egvz4nW21pbmVdJzsKK+ehhT4nW3NpbGljb25dJzsKK+ehnT4nW3NhbHRwZXRlcl0nOwor56GrPidbc3VsZnVyXSc7Civnoaw+J1toYXJkXSc7Civnoa8+J1tpbmtzdG9uZV0nOworIyLnobI+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKKyMi56G0PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnobw+J1tib3JheF0nOwor56KBPidbY2hlc3NdJzsKK+eihj4nW2Fycm93LXRpcF0nOwor56KHPidbYW5jaG9yXSc7Civnoow+J1tyb3VnaF0nOwor56KNPidbb2JzdHJ1Y3RdJzsKK+eijj4nW2JyZWFrXSc7CivnopE+J1tzdG9uZSB0YWJsZXRdJzsKK+eikz4nW3Blc3RsZV0nOworIyLnopU+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+eilz4nW2Jvd2xdJzsKK+eimj4nW3N1YnVyYl0nOwor56KjPidbc3RvbmUgdGFibGV0XSc7Civnoqc+J1tqYWRlXSc7Civnoqk+J1tncmVhdF0nOwor56KqPidbc3RvbmUgc2xhYiB1c2VkIGZvciB3YXNoaW5nIGNsb3RdJzsKK+eirz4nW2FnYXRlXSc7CisjIueitT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor56K6Pidbc3VyZV0nOwor56K8PidbbnVtYmVyXSc7Civnor4+J1tyb2xsZXJdJzsKK+ejgT4nW21hZ25ldGljXSc7Civno4U+J1twb3VuZF0nOworIyLno4Y+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+ejij4nW3BpbGUgb2Ygcm9ja3Mgb3Igc3RvbmVzXSc7Civno4s+J1twb2xpc2hdJzsKK+ejkD4nW2xhcmdlIHJvY2tdJzsKK+ejkT4nW3N0b25lIG1pbGxdJzsKK+ejlD4nW2Rvd253YXJkIHN0cm9rZSBzbGFudGluZyByaWdoXSc7Civno5o+J1t0aWxlXSc7Civno6c+J1tzYW5kIGFuZCBncmF2ZWxdJzsKK+ejqD4nW2dyaW5kXSc7Civno6w+J1ttdXNpY2FsIGluc3RydW1lbnRdJzsKK+ejrz4nW2pldHR5XSc7Civno7Q+J1tzdGVwcyBvbiBsZWRnZV0nOwor56O9PidbYmFycmVuIGxhbmRdJzsKK+ekgT4nW3JlZWZdJzsKKyMi56SHPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnpI4+J1tmb3VuZGF0aW9uIHN0b25lXSc7CisjIuekjj4nW2ZvdW5kYXRpb24gc3RvbmVdJyIsCisjIuekkj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor56SZPidbb2JzdHJ1Y3RdJzsKK+ekpj4nW21pbmVdJzsKK+ekqj4nW3doZXRzdG9uZV0nOwor56SrPidbZ3JhdmVsXSc7CivnpKw+J1thbHVtXSc7CivnpLo+J1tzaG93XSc7CivnpLw+J1tzb2NpYWwgY3VzdG9tXSc7CivnpL4+J1tnb2Qgb2YgdGhlIHNvaWwgYW5kIGFsdGFycyB0byBoaW1dJzsKK+elgD4nW3RvIHNhY3JpZmljZV0nOwor56WBPidbcHJheV0nOwor56WHPidbb25seV0nOwor56WIPidbcHJheV0nOwor56WJPidbaGFwcGluZXNzXSc7CivnpZA+J1tkaXZpbmUgaW50ZXJ2ZW50aW9uXSc7CivnpZM+J1tleG9yY2lzZV0nOwor56WVPidbbXlzdGVyaW91c10nOwor56WWPidbYW5jZXN0b3JdJzsKK+ellz4nW3Jlc3BlY3RdJzsKK+elmj4nW3Rocm9uZV0nOwor56WdPidbcHJheSBmb3IgaGFwcGluZXNzIG9yIGJsZXNzaW5nc10nOwor56WePidbc3Bpcml0XSc7CivnpZ8+J1tldmlsIHNwaXJpdF0nOwor56WgPidbYW5jZXN0cmFsIHRlbXBsZV0nOwor56WiPidbb25lJydzIGRlY2Vhc2VkIGZhdGhlcl0nOwor56WlPidbZ29vZCBsdWNrXSc7Civnpag+J1tzbGlwIG9mIHBhcGVyIG9yIGJhbWJvb10nOwor56WtPidbc2FjcmlmaWNlIHRvXSc7Civnpbc+J1twcmF5XSc7Civnpbo+J1tnb29kIGx1Y2tdJzsKK+elvz4nW2JsZXNzaW5nXSc7CivnpoA+J1tyZXBvcnQgdG9dJzsKK+emgT4nW3Jlc3RyaWN0XSc7CivnpoQ+J1tibGVzc2luZ10nOwor56aFPidbbWVkaXRhdGlvbl0nOwor56aKPidbc2VtaS1hbm51YWwgY2VyZW1vbnkgb2YgcHVyaWZpY2FdJzsKK+emjT4nW21pc2ZvcnR1bmVdJzsKK+emjj4nW2x1Y2t5XSc7Civnpo8+J1toYXBwaW5lc3NdJzsKK+emnT4nW1tub3QgZm91bmQgaW4gZGljdGlvbmFyeV1dJzsKK+empj4nW2RlZmVuZF0nOwor56anPidbaGFwcGluZXNzXSc7Civnpqo+J1ttZWRpdGF0aW9uXSc7Civnpq4+J1tzb2NpYWwgY3VzdG9tXSc7CivnprA+J1tvbmUnJ3MgZGVjZWFzZWQgZmF0aGVyXSc7CivnprM+J1twcmF5IG9yIHNhY3JpZmljZV0nOwor56a5PidbbGVnZW5kYXJ5IGhzaWEgZHluYXN0eSBmb3VuZGVyXSc7Civnpro+J1tkaXN0cmljdF0nOwor56a9PidbYmlyZHNdJzsKK+emvj4nW2dyYWluIHN0aWxsIG9uIHN0YWxrXSc7Civnpr8+J1tiYWxkXSc7Civnp4A+J1tlYXIgb2YgZ3JhaW5dJzsKK+engT4nW3ByaXZhdGVdJzsKK+eniT4nW2dyYXNwXSc7Civnp4s+J1thdXR1bW5dJzsKK+enkT4nW3NlY3Rpb25dJzsKK+enkj4nW2JlYXJkIG9mIGdyYWluIG9yIGNvcm5dJzsKK+enlT4nW2VtcHR5IGdyYWluIG9yIHJpY2UgaHVza10nOwor56eYPidbc2VjcmV0XSc7Civnp58+J1tyZW50XSc7CisjIuenoT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor56ejPidbZm9kZGVyXSc7Civnp6Q+J1tiYWxhbmNlXSc7Civnp6Y+J1tmZXVkYWwgc3RhdGUgb2YgcWluXSc7Civnp6c+J1tyaWNlIHNlZWRsaW5nc10nOwor56epPidbb3JkZXJdJzsKK+enrD4nW2JsYWNrIG1pbGxldF0nOwor56ewPidbY2FsbF0nOwor56e7PidbY2hhbmdlIHBsYWNlXSc7CivnqIA+J1tyYXJlXSc7CivnqIg+J1tzdGFsayBvZiBncmFpbl0nOwor56iLPidbam91cm5leV0nOwor56iNPidbbGl0dGxlXSc7CivnqI4+J1t0YXhlc10nOwor56iUPidbcmlwZSBncmFpbl0nOwor56iXPidbZGFybmVsc10nOworIyLnqJg+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+eomT4nW2dyYWluIHJlYWR5IGZvciBncmluZGluZ10nOwor56iaPidbeW91bmddJzsKK+eonD4nW2Nvcm5lcl0nOwor56ifPidbcmVwb3J0IHRvXSc7CivnqKA+J1tkZW5zZV0nOwor56iuPidbc2VlZF0nOwor56ixPidbY2FsbF0nOwor56iyPidbcmljZSBncm93aW5nIGluIGZpZWxkXSc7CivnqLc+J1tnb2Qgb2YgY2VyZWFsc10nOwor56i7PidbcmljZSBncm93aW5nIGluIGZpZWxkXSc7CivnqLw+J1tzb3cgZ3JhaW5dJzsKK+eovT4nW2V4YW1pbmVdJzsKK+eovj4nW2RyYWZ0XSc7CivnqL8+J1tkcmFmdF0nOwor56mAPidbY29ybl0nOwor56mCPidbZWFyIG9mIGdyYWluXSc7CisjIuepgz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor56mGPidbbWFqZXN0aWNdJzsKK+epiT4nW3lvdW5nIGdyYWluXSc7CivnqY0+J1thY2N1bXVsYXRlXSc7CivnqY4+J1tyaWNlIHRhc3NlbF0nOworIyLnqY4+J1tyaWNlIHRhc3NlbF0nIiwKK+epkD4nW2ZhbGxdJzsKK+eplz4nW2VhciBvZiBncmFpbl0nOwor56mhPidbZmFybV0nOwor56miPidbZGlydHldJzsKK+epoz4nW3N0YWxrcyBvZiBncmFpbl0nOwor56mpPidbc3RhYmxlXSc7Civnqas+J1toYXJ2ZXN0XSc7CivnqbA+J1tzdGFsa3Mgb2YgZ3JhaW5dJzsKK+eptD4nW2NhdmVdJzsKK+eptj4nW2V4YW1pbmVdJzsKK+epuT4nW2hpZ2ggYW5kIHZhc3RdJzsKK+epuj4nW2VtcHR5XSc7Civnqb0+J1tob2xlXSc7Civnqb8+J1twZW5ldHJhdGVdJzsKK+eqgT4nW3N1ZGRlbmx5XSc7CivnqoM+J1tzZWNyZXRseV0nOwor56qEPidbbmFycm93XSc7Civnqog+J1tvYnNjdXJlXSc7CivnqpI+J1tzdG9wIHVwXSc7CivnqpM+J1t3aW5kb3ddJzsKK+eqlT4nW3NsZW5kZXJdJzsKK+eqlj4nW3BpdF0nOwor56qXPidbd2luZG93XSc7Civnqpg+J1tlbWJyYXNzYXNzZWRdJzsKK+eqnz4nW2hvbGVdJzsKK+eqqT4nW25lc3RdJzsKK+eqqj4nW2hvbGxvd10nOwor56quPidbcG9vcl0nOwor56qvPidba2lsbl0nOwor56qwPidba2lsbl0nOwor56q2PidbcG9vcl0nOwor56q6PidbcGVlcF0nOwor56q/PidbbWluZSBzaGFmdF0nOwor56uDPidbZnVybmFjZV0nOwor56uEPidbcnVuIGF3YXldJzsKK+erhT4nW2hvbGVdJzsKK+erhz4nW3N1cm5hbWVdJzsKK+eriD4nW2Z1cm5hY2VdJzsKK+erij4nW3NlY3JldGx5XSc7Civnq4s+J1tzdGFuZF0nOwor56uNPidbZGVjYWxpdGVyXSc7Civnq48+J1traWxvbGl0ZXJdJzsKK+erkj4nW3N0cmFuZ2VdJzsKK+erkz4nW21pbGxpbGl0ZXJdJzsKK+erlT4nW2RlY2lsaXRlcl0nOwor56uZPidbc3RhbmQgdXBdJzsKK+ermj4nW3N0YW5kIGFuZCB3YWl0IGZvciBsb25nIHRpbWVdJzsKK+ernD4nW2RyYWdvbl0nOwor56udPidbY29tYmluZV0nOwor56ufPidbZmluYWxseV0nOwor56ugPidbY29tcG9zaXRpb25dJzsKK+eroT4nW2hlY3RvbGl0ZXJdJzsKK+eroj4nW3dhaXQgZm9yXSc7Civnq6M+J1t0ZXJtaW5hdGVdJzsKK+erpT4nW2NoaWxkXSc7Civnq6Y+J1tyZXZlcmVdJzsKK+erqj4nW3BlcnBlbmRpY3VsYXJdJzsKK+errT4nW3B1dCBmb3J0aCBncmVhdCBlZmZvcnRdJzsKK+errz4nW2VuZF0nOwor56uwPidbY2VudGlsaXRlcl0nOwor56u2PidbY29udGVuZF0nOwor56u4PidbY29udGVuZF0nOwor56u5PidbYmFtYm9vXSc7Civnq7o+J1tpbmRpYV0nOwor56u/PidbYmFtYm9vIHBvbGVdJzsKKyMi56yCPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnrIQ+J1toYWlycGluXSc7CivnrIY+J1tiYW1ib28gZmVuY2VdJzsKK+esiD4nW2JhbWJvbyBib3ggdXNlZCBjYXJyeSBib29rc10nOwor56yKPidbbGFkbGVdJzsKK+esiz4nW2JhbWJvbyBzaG9vdHNdJzsKK+esjz4nW3RhYmxldCBoZWxkIGJ5IHNvbWVvbmUgaGF2aW5nIGF1XSc7CivnrJE+J1tzbWlsZV0nOworIyLnrJg+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+esmT4nW3NtYWxsIGdvdXJkLXNoYXBlZCBtdXNpY2FsIGluc3RydW1lbnRdJzsKK+esmz4nW2JhbWJvbyBmbHV0ZV0nOwor56yePidbYmFtYm9vIHJvZCB1c2VkIGZvciBiZWF0aW5nc10nOwor56ygPidbYmFtYm9vIGhhdF0nOwor56ylPidbYSBoYW1wZXJdJzsKK+espj4nW2kuZC4gdGFnXSc7CivnrKg+J1tmb29saXNoXSc7CivnrKw+J1tzZXF1ZW5jZV0nOwor56yzPidbYSByZWVkIGxlYWYgd2hpc3RsZV0nOwor56y1PidbYSBiYW1ib28gZm9ybV0nOworIyLnrLY+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+esuT4nW3NtYWxsIGJhbWJvb10nOwor562FPidbYmFtYm9vIGJydXNoXSc7CivnrYY+J1t3cml0aW5nIGJydXNoXSc7CivnrYg+J1thcnJvdyBlbmRdJzsKK+etiT4nW3JhbmtdJzsKK+etiz4nW211c2NsZXNdJzsKK+etjD4nW2JhbWJvbyBmaXNoIHRyYXBdJzsKK+etjT4nW2JhbWJvbyBzaG9vdF0nOwor562PPidbcmFmdF0nOwor562QPidbYmFtYm9vIGJhc2tldCBvciBjaGVzdF0nOwor562RPidbYW5jaWVudCBsdXRlXSc7CivnrZI+J1t0aGljayBwaWVjZSBvZiBiYW1ib29dJzsKK+etlD4nW2Fuc3dlcl0nOwor562WPidbc2NoZW1lXSc7CivnrZ0+J1tzdHJpbmdlZCBtdXNpY2FsIGluc3RydW1lbnRdJzsKK+etpT4nW3JvdW5kLXNoYXBlZCBiYW1ib28gYmFza2V0IGZvcl0nOwor562nPidbYmFtYm9vIHdhdGVyIHBpcGVdJzsKK+etrD4nW3JlZWQgb2YgYSBsb29tXSc7Civnra4+J1tkaXZpbmF0aW9uIHdpdGggc3RhbGtzIG9mIHBsYW50c10nOwor562wPidbY2FibGVdJzsKK+etsT4nW2R3YXJmIGJhbWJvb10nOwor5620PidbdHlwZSBvZiBncmFzcyB1c2VkIGluIGRpdmluYXRpb25dJzsKK+ettT4nW2JhbWJvbyBtYXRdJzsKK+etuj4nW2JhbWJvbyBiYXNrZXQgb3IgY2hlc3RdJzsKK+euhj4nW2ZpbmUtdG9vdGhlZCBjb21iXSc7Civnroc+J1tudW1lcmFyeSBhZGp1bmN0XSc7Civnros+J1tub3RlXSc7Civnro0+J1tob29wXSc7Civnro8+J1tzdHJpbmdlZCBtdXNpY2FsIGluc3RydW1lbnRdJzsKK+eukj4nW2Jyb29tXSc7CivnrpQ+J1tyZWVkIHNjcmVlbl0nOwor566VPidbc2lldmVdJzsKK+eulz4nW2NvdW50XSc7Civnrpg+J1tmaW5lIGJhbWJvb10nOwor566ZPidbcXVpdmVyXSc7Civnrpo+J1ticmllZiBub3RlXSc7Civnrpw+J1thbmNpZW50IHN0cmluZyBtdXNpYyBpbnN0cnVtZW50XSc7Civnrp0+J1t0d2VlemVyc10nOworIyLnrp8+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+euoT4nW3BpcGVdJzsKK+euqj4nW3NtYWxsIGJhbWJvbyBiYXNrZXQgZm9yIGhvbGRpbmddJzsKK+eurT4nW2Fycm93XSc7CivnrrE+J1tjYXNlXSc7CivnrrQ+J1tuZWVkbGVdJzsKK+euuD4nW2Nob3BzdGlja3NdJzsKK+evgD4nW2tub3RdJzsKK+evgT4nW2JhbWJvbyBncm92ZV0nOwor56+EPidbcGF0dGVybl0nOwor56+GPidbc2VhbCBzY3JpcHRdJzsKK+evhz4nW2NoYXB0ZXJdJzsKK+eviT4nW2J1aWxkXSc7Civnr4s+J1tyYXR0b24gYm94XSc7Civnr4w+J1thbmNpZW50IG11c2ljIGluc3RydW1lbnRdJzsKK+evjz4nW2lubGF5XSc7Civnr50+J1tiYW1ib28gYmFza2V0XSc7Civnr6A+J1tkd2FyZiBiYW1ib29dJzsKK+evpD4nW2RlZXBdJzsKK+evpT4nW2J1bGdsZV0nOwor56+mPidbZmluZS10b290aGVkIGNvbWJdJzsKK+evqT4nW3NpZXZlXSc7Civnr60+J1tjYWdlXSc7Civnr7M+J1t3aWNrZXJdJzsKKyMi56+2PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnr7c+J1thd25pbmddJzsKK+ewgD4nW2JlZCBtYXRdJzsKK+ewhz4nW3N3YXJtXSc7CivnsI0+J1tiYW1ib28gYmFza2V0XSc7CivnsJE+J1thIGNvaXIgcmFpbmNvYXRdJzsKK+ewkj4nW3VzdXJwXSc7CisjIuewkz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor57CUPidbYSBjb2lyIHJhaW5jb2F0XSc7CisjIuewlz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor57CfPidbYmFtYm9vIG1hdF0nOwor57ChPidbc2ltcGxlXSc7CivnsKM+J1tiYW1ib28gYmFza2V0IGZvciBjYXJyeWluZyBlYXJ0aF0nOwor57CnPidbcmVlZCBvZiB3b29kd2luZCBpbnN0cnVtZW50XSc7CivnsKo+J1toYWlycGluXSc7CivnsKs+J1ttdXNpY2FsIGluc3RydW1lbnQgbGlrZSBwYW4tcGlwZXNdJzsKK+ewtz4nW2VhdmVzIG9mIGhvdXNlXSc7CivnsLg+J1t3aW5ub3dlcl0nOwor57C9Pidbc2lnbl0nOwor57C+PidbYSBibGluZF0nOwor57C/PidbcmVnaXN0ZXJdJzsKK+exgD4nW3JlY2l0ZV0nOwor57GDPidbYmFza2V0XSc7CivnsYw+J1tjaGlwXSc7CivnsY0+J1tyZWNvcmRdJzsKK+exjz4nW2ZsYWddJzsKK+exkD4nW2NsaW1iaW5nIHBsYW50c10nOwor57GUPidbYmFtYm9vIGJhc2tldF0nOwor57GWPidbdGFsbHldJzsKK+exmD4nW2NsaW1iaW5nIHBsYW50c10nOwor57GfPidbYmFtYm9vIGZsdXRlXSc7CivnsaA+J1tjYWdlXSc7CivnsaQ+J1t0YWxseV0nOwor57GlPidba2V5XSc7Civnsaw+J1tiYW1ib28gb3Igd29vZGVuIGZlbmNlXSc7CivnsbM+J1todWxsZWQgb3IgaHVza2VkIHVuY29va2VkIHJpY2VdJzsKK+extT4nW2RtXSc7Civnsb4+J1t1bmh1bGxlZCByaWNlXSc7CivnsoE+J1trbV0nOwor57KCPidbc3VybmFtZV0nOwor57KDPidbZW1wdHkgaHVza3Mgb2YgZ3JhaW5dJzsKK+eyiT4nW3Bvd2Rlcl0nOwor57KLPidbcHVyZV0nOwor57KNPidbbW1dJzsKKyMi57KQPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnspI+J1tncmFpbl0nOwor57KVPidbbGVlc10nOwor57KXPidbcm91Z2hdJzsKK+eymD4nW3Zpc2NvdXNdJzsKK+eymz4nW3BheSByZXNwZWN0c10nOwor57KfPidbdW5odXNrZWQgbWlsbGV0XSc7CisjIueyoT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor57KiPidbZ3JhaW4gb2ZmZXJlZCBpbiByaXR1YWwgc2FjcmlmaWNdJzsKK+eypD4nW0d1YW5nZG9uZyBhbmQgR3Vhbmd4aSBwcm92aW5jZXNdJzsKK+eypT4nW3JpY2UgZ3J1ZWxdJzsKK+eypz4nW3RvaWxldF0nOwor57KoPidbaG1dJzsKKyMi57KrPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCisjIueyrT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor57KuPidbZm9vZF0nOwor57KxPidbYmV0dGVyIHZhcmlldGllcyBvZiBtaWxsZXRdJzsKK+eysj4nW3BvbGlzaF0nOwor57KzPidbbm9uLWdsdXRpbm91cyByaWNlXSc7Civnsrk+J1twdXJlXSc7Civnsr0+J1tkdW1wbGluZyBtYWRlIG9mIGdsdXRpbm91cyByaWNlXSc7Civnsr4+J1tlc3NlbmNlXSc7CisjIuezgD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAorIyLns4I+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+ezhT4nW2JsZW5kXSc7Civns4o+J1twYXN0ZV0nOwor57OOPidbbW1dJzsKK+ezkj4nW2Zvb2QgZm9yIGEgam91cm5leV0nOwor57OWPidbc3VnYXJdJzsKKyMi57OYPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivns5w+J1tyaWNlIGdydWVsXSc7Civns54+J1ttYW51cmVdJzsKK+eznz4nW3NlZGltZW50XSc7Civns6A+J1tjaGFmZl0nOwor57OiPidbcmljZSBzbmFja3NdJzsKK+ezpz4nW2Zvb2RdJzsKK+ezrz4nW2dsdXRpbm91cyByaWNlXSc7Civns7I+J1t1bnBvbGlzaGVkIHJpY2VdJzsKK+eztD4nW3B1cmNoYXNlIGdyYWluc10nOwor57O2Pidbc2VsbCBncmFpbnNdJzsKK+ezuD4nW3NpbGtdJzsKK+ezuj4nW3RvIGNvbGxhYm9yYXRlXSc7Civns7s+J1tzeXN0ZW1dJzsKK+ezvj4nW2ludmVzdGlnYXRlXSc7CivntIA+J1tyZWNvcmRdJzsKK+e0gj4nW25hbWUgb2YgYW4gZW1wZXJvcl0nOwor57SEPidbdHJlYXR5XSc7CivntIU+J1tyZWRdJzsKK+e0hj4nW2JlbmRdJzsKK+e0ij4nW2NvbmZ1c2VkXSc7CivntIs+J1tsaW5lXSc7CivntI0+J1thZG1pdF0nOwor57SQPidba25vdF0nOwor57SUPidbcHVyZV0nOwor57SVPidbc3BvaWxlZCBzaWxrXSc7CivntJc+J1tnYXV6ZV0nOwor57SYPidbc3RyaW5nXSc7CivntJk+J1twYXBlcl0nOwor57SaPidbbGV2ZWxdJzsKK+e0mz4nW2luIGRpc29yZGVyXSc7CivntJw+J1tjb25mdXNlZF0nOwor57SgPidbd2hpdGUgKHNpbGspXSc7CivntKE+J1tzcGluXSc7CivntKI+J1tsYXJnZSByb3BlXSc7CivntKs+J1twdXJwbGVdJzsKK+e0rD4nW2tpbmQgb2YgdGhpbiBzaWxrXSc7CivntK4+J1t0aWVdJzsKK+e0rz4nW3RpcmVkXSc7CivntLA+J1tmaW5lXSc7CivntLI+J1ticmlkbGVdJzsKK+e0sz4nW2dpcmRsZV0nOwor57S1PidbcmFtaWVdJzsKK+e0uT4nW2NvbnRpbnVlXSc7CivntLo+J1tkYXJrIGJsdWUgY29sb3JdJzsKK+e0vz4nW2NoZWF0XSc7CivntYI+J1tlbmRdJzsKK+e1gz4nW3N0cmluZyBvbiBtdXNpY2FsIGluc3RydW1lbnRdJzsKK+e1hD4nW2NsYXNzXSc7CivntYU+J1t1bmxpbmVkIGdhcm1lbnRdJzsKK+e1hj4nW2xvb3BdJzsKKyMi57WLPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivntYw+J1tjbGFzc2ljIHdvcmtzXSc7CivntY4+J1tiYXN0ZV0nOwor57WPPidbcm9wZV0nOwor57WQPidba25vdF0nOwor57WWPidbZmluZSBzaWxrc10nOwor57WbPidbc2lsayBicmFpZF0nOwor57WePidbdHdpc3RdJzsKK+e1oT4nW2VubWVzaF0nOwor57WiPidbdmFyaWVnYXRlZF0nOwor57WjPidbdG8gYmFzdGUgZm9yIHNld2luZ10nOwor57WmPidbZ2l2ZV0nOwor57WoPidbc2lsa10nOwor57WuPidbd2FzdGUgY290dG9uXSc7CivntbE+J1tnb3Zlcm5dJzsKK+e1sj4nW3NpbGtdJzsKK+e1sz4nW2RlZXAgcmVkXSc7CivntbU+J1tkcmF3XSc7CivntbY+J1tjdXRdJzsKK+e1uT4nW2tpbmQgb2YgdGhpY2sgc3RpZmYgc2lsa10nOworIyLntb0+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+e2iT4nW2VtYnJvaWRlcl0nOwor57aPPidbc29vdGhlXSc7CivntpM+J1tjbGFzc2ljIHdvcmtzXSc7Civntpk+J1tjb250aW51ZV0nOwor57aaPidbY29udGludWVdJzsKKyMi57abPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivntpw+J1thcnJhbmdlIHRocmVhZHMgZm9yIHdlYXZpbmddJzsKKyMi57afPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivntqI+J1tzaWxrIGNsb3RoXSc7CivntqM+J1thZmZlY3Rpb25hdGVdJzsKK+e2qz4nW2xpbmVdJzsKK+e2rD4nW3NpbGsgcmliYm9uIGF0dGFjaGVkIGFzIGEgc2VhbF0nOwor57atPidbbWFpbnRhaW5dJzsKK+e2rj4nW2VtYnJvaWRlcmVkIGJhbm5lcl0nOwor57avPidbYnJhaWRdJzsKK+e2sD4nW3RvIHN0cmluZyB0b2dldGhlcl0nOwor57axPidbaGVhdnkgcm9wZV0nOwor57ayPidbbmV0XSc7CivntrQ+J1twYXRjaCB0b2dldGhlcl0nOwor57a1PidbdmFyaWNvbG9yZWQgc2lsa10nOwor57a4PidbZ3JlZW4gc2lsayB0aHJlYWQgb3IgdGFzc2VsXSc7Civntro+J1tmaW5lIHRoaW4gc2lsa10nOwor57a7PidbcmlwcGVkIHNlYW1dJzsKK+e2vT4nW2dyYWNlZnVsXSc7Civntr4+J1t0aGluIHNpbGtdJzsKK+e2vz4nW2NvdHRvbiB3YWRdJzsKK+e3hz4nW2JsYWNrIHNpbGtdJzsKK+e3ij4nW3RlbnNlXSc7Civnt4s+J1tzY2FybGV0XSc7Civnt48+J1tjb2xsZWN0XSc7Civnt5E+J1tncmVlbl0nOwor57eSPidbZW5kIG9mIHRocmVhZF0nOworIyLnt5U+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+e3mD4nW3NlYWxdJzsKK+e3mj4nW3RocmVhZF0nOwor57ecPidbY290dG9uIHdhZF0nOwor57edPidbdG8gc2V3IGluIGNsb3NlIHN0aXRjaGVzXSc7Civnt54+J1tzYXRpbl0nOwor57egPidbdGllXSc7Civnt6E+J1tmaXNoaW5nLWxpbmVdJzsKK+e3pD4nW2NvcmRdJzsKK+e3qD4nW2tuaXRdJzsKK+e3qT4nW3Nsb3ddJzsKK+e3rD4nW2Rpc3RhbnRdJzsKK+e3rz4nW3dvb2ZdJzsKK+e3sj4nW2luZGlzdGluY3RdJzsKK+e3tD4nW3ByYWN0aWNlXSc7Civnt7s+J1tkZWxpY2F0ZV0nOwor57iBPidbaGVtXSc7CivnuIQ+J1tyb3BlXSc7CisjIue4hD4nW3JvcGVdJyIsCivnuIk+J1tyZWQgc2lsa10nOwor57iKPidbaGFuZ10nOwor57iLPidbY2xpbWQgZG93biByb3BlXSc7CisjIue4kT4nW2ZpbmUgc2lsa10nIiwKK+e4mz4nW3RvIHRpZV0nOwor57iePidbd2hpdGUgcmF3IHNpbGtdJzsKK+e4nz4nW2RlY29yYXRpdmVdJzsKK+e4oT4nW21hdHRlcl0nOwor57iiPidbYmluZF0nOwor57ijPidbY291bnR5XSc7CivnuKY+J1tpbmR1bGdlIGluXSc7CivnuKs+J1tzZXddJzsKK+e4rj4nW2NvbnRyYWN0XSc7CivnuLE+J1tpbmR1bGdlIGluXSc7CivnuLI+J1tjaGFpbiBvciByb3BlIHVzZWQgYmluZCBjcmltaW5hbF0nOwor57i1PidbcGxhaW4gc2lsa10nOwor57i3PidbdGhyZWFkXSc7CivnuLk+J1tsaWdodCBibHVlIHNpbGtdJzsKKyMi57i6PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnuLs+J1toYWx0ZXIgZm9yIG94XSc7CivnuL0+J1tjb2xsZWN0XSc7CivnuL4+J1tzcGluXSc7CivnuYE+J1tjb21wbGljYXRlZF0nOwor57mDPidbYmluZF0nOwor57mGPidbd2luZCBhcm91bmRdJzsKK+e5ij4nW2ZpbmVdJzsKK+e5iz4nW2F0dGFjaF0nOwor57mNPidbZW1icm9pZGVyXSc7CivnuZQ+J1t3ZWF2ZV0nOwor57mVPidbcmVwYWlyXSc7CivnuZY+J1t1bWJyZWxsYV0nOwor57mZPidbaW50ZXJwcmV0XSc7CivnuZo+J1t3aW5kIHJvdW5kXSc7CisjIue5nT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor57mePidbZW50d2luZV0nOwor57mmPidbc3RyaW5nIG9mIGNvcHBlciBjb2luc10nOworIyLnuac+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+e5qT4nW3JvcGVdJzsKK+e5qj4nW2RyYXddJzsKK+e5rT4nW2NvY29vbl0nOwor57mwPidbdG8gcmVlbCBzaWxrIGZyb20gY29jb29uc10nOwor57m5PidbdW5yYXZlbCBvciB1bnJlZWwgc2lsa10nOwor57m7PidbZmluZSBzaWxrIGd1YXplXSc7Civnubw+J1tjb250aW51ZV0nOwor57m9PidbZmxvdXJpc2hpbmddJzsKKyMi57m/PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnuoI+J1tlZGl0XSc7CisjIue6gz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor57qIPidbcGF0dGVybmVkIHNpbGtdJzsKKyMi57qJPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnuow+J1tjb250aW51ZV0nOwor57qOPidbZmluZV0nOwor57qPPidbd3JhcF0nOworIyLnupA+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+e6kj4nW3dyYXBdJzsKK+e6kz4nW2NoaW4gc3RyYXBdJzsKK+e6lD4nW3RhbGVudF0nOwor57qWPidbZmluZV0nOwor57qbPidbYSBiYW5uZXJdJzsKK+e6nD4nW2hhd3Nlcl0nOwor57y2PidbZWFydGhlbiBjcm9jayBvciBqYXJdJzsKK+e8uD4nW2VhcnRoZW4ganVnXSc7CivnvLo+J1tiZSBzaG9ydCBvZl0nOwor572FPidbY3JhY2tdJzsKK+e9jD4nW2xvbmcgbmVja2VkIGphciBvciBib3R0bGVdJzsKK+e9jT4nW2xhcmdlIGVhcnRoZW53YXJlIHdpbmUgamFyXSc7CivnvY4+J1thbiBlYXJ0aGVud2FyZSBqYXJdJzsKK+e9kD4nW2phcl0nOwor572RPidbbmV0XSc7CivnvZQ+J1tuZXRdJzsKK+e9lT4nW3JhcmVdJzsKK+e9mD4nW3NjcmVlbiB1c2VkIGluIGFuY2llbnQgdGltZXNdJzsKK+e9nz4nW25ldF0nOwor572gPidbYW5pbWFsIHRyYXBdJzsKKyMi572nPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnvag+J1ttZWRpY2FsIGNvbXByZXNzXSc7Civnvak+J1tiYXNrZXQgZm9yIGNhdGNoaW5nIGZpc2hdJzsKK+e9qj4nW2NyaW1lXSc7Civnvas+J1toaW5kZXJdJzsKK+e9rj4nW3BsYWNlXSc7CivnvbA+J1twZW5hbHR5XSc7CivnvbI+J1twdWJsaWMgb2ZmaWNlXSc7CivnvbU+J1thY2N1c2VdJzsKK+e9tz4nW2NlYXNlXSc7Civnvbg+J1twZW5hbHR5XSc7Civnvbk+J1tzb3Jyb3ddJzsKKyMi576CPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnvoM+J1tjb3Zlci1jbG90aF0nOwor576FPidbbmV0IGZvciBjYXRjaGluZyBiaXJkc10nOwor576GPidbYnJvd24gYmVhcl0nOwor576HPidbaW5uXSc7Civnvog+J1toYWx0ZXJdJzsKK+e+ij4nW3NoZWVwXSc7Civnvow+J1txaWFuZyBuYXRpb25hbGl0eV0nOwor576OPidbYmVhdXRpZnVsXSc7CivnvpQ+J1tsYW1iXSc7Civnvpo+J1tzcGVjaWVzIG9mIGFudGVsb3BlXSc7Civnvp0+J1tyYW1dJzsKK+e+nj4nW2Rpc2dyYWNlXSc7CivnvqM+J1tncm91cF0nOwor576kPidbZ3JvdXBdJzsKK+e+qD4nW2VudnldJzsKK+e+qT4nW3JpZ2h0IGNvbmR1Y3RdJzsKK+e+rj4nW3NvdXBdJzsKK+e+rz4nW3dldGhlcl0nOwor576yPidbYW5jaWVudCBlbXBlcm9yXSc7CivnvrY+J1tyYW5rIG9kb3JdJzsKK+e+uD4nW3dlYWtdJzsKK+e+uT4nW3NvdXBdJzsKK+e+vT4nW2ZlYXRoZXJdJzsKK+e/gT4nW29sZCBtYW5dJzsKK+e/hT4nW3dpbmdzXSc7Civnv4Y+J1tjb2xvciBncmVlbl0nOwor57+KPidbZmx5aW5nXSc7Civnv4w+J1ticmlnaHRdJzsKK+e/kj4nW3ByYWN0aWNlXSc7Civnv5Q+J1tzb2FyXSc7Civnv5U+J1thZ3JlZV0nOwor57+gPidbY29sb3IgZ3JlZW5dJzsKK+e/oT4nW2tpbmdmaXNoZXJdJzsKK+e/pj4nW3NjaXNzb3JzXSc7Civnv6k+J1tmbHldJzsKK+e/qz4nW2NhcmVsZXNzXSc7Civnv7A+J1t3cml0aW5nIGJydXNoXSc7Civnv7M+J1tzaGFkZV0nOwor57+5PidbdHVybiB1cF0nOwor57+7PidbZmxpcCBvdmVyXSc7Civnv7w+J1t3aW5nc10nOwor6ICAPidbc2hpbmVdJzsKK+iAgT4nW29sZF0nOwor6ICDPidbZXhhbWluZV0nOwor6ICEPidbZWxkZXJseSBwZXJzb25dJzsKK+iAhT4nW3RoYXQgd2hpY2hdJzsKK+iAhj4nW21hbiBvZiBzaXh0eV0nOwor6ICLPidbYWdlZF0nOwor6ICMPidbYW5kXSc7CivogJA+J1tlbmR1cmVdJzsKK+iAkj4nW2hhbmRsZSBvZiBwbG93XSc7CivogJU+J1twbG93XSc7CivogJc+J1tjb25zdW1lXSc7CivogJg+J1t3ZWVkXSc7CivogJk+J1tyYWtlXSc7CivogJw+J1tzcGFkZS1zaGFwZWQgdG9vbF0nOwor6IChPidbaG9lXSc7CivogKg+J1tob2VdJzsKK+iAsz4nW2Vhcl0nOwor6IC2PidbdXNlZCBpbiB0cmFuc2xpdGVyYXRpb25dJzsKK+iAuz4nW3NoYW1lXSc7CivogL0+J1tpbmR1bGdlIGluXSc7CivogL8+J1ticmlnaHRdJzsKK+iBhj4nW2xpc3Rlbl0nOwor6IGKPidbc29tZXdoYXRdJzsKK+iBkj4nW2NsYW1vcl0nOwor6IGWPidbaG9seV0nOwor6IGYPidbZW5nYWdlXSc7CivogZo+J1thc3NlbWJsZV0nOwor6IGePidbaGVhcl0nOwor6IGfPidbc29uLWluLWxhd10nOwor6IGhPidbaW50ZWxsaWdlbnRdJzsKKyMi6IGiPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivogag+J1tjb25uZWN0XSc7Civoga8+J1tjb25uZWN0XSc7CivogbA+J1tpbnRlbGxpZ2VudF0nOwor6IGyPidbc291bmRdJzsKK+iBsz4nW3VyZ2Ugb25dJzsKK+iBtD4nW2hlYXJdJzsKK+iBtj4nW3doaXNwZXJdJzsKK+iBtz4nW2R1dHldJzsKK+iBuT4nW2VhcndheF0nOwor6IG9PidbaGVhcl0nOwor6IG+PidbZGVhZl0nOwor6IG/Pidbd3JpdGluZyBicnVzaF0nOwor6IKEPidbbGVhcm5dJzsKK+iChT4nW3BheSByZXNwZWN0c10nOwor6IKGPidbaW5kdWxnZV0nOwor6IKHPidbYmVnaW5dJzsKK+iCiT4nW2ZsZXNoXSc7Civogos+J1tyaWJzXSc7Civogow+J1ttdXNjbGUgdGlzc3VlXSc7CivogpM+J1tyZWdpb24gYmV0d2VlbiBoZWFydCBhbmQgZGlhcGhyYWdtXSc7CivogpY+J1tsb29rIGxpa2VdJzsKK+iCmD4nW2VsYm93XSc7Civogpo+J1tiZWxseV0nOwor6IKbPidbYW51c10nOwor6IKdPidbbGl2ZXJdJzsKK+iCoT4nW3RoaWdoc10nOwor6IKiPidbaHVtYW4gbGltYnNdJzsKK+iCpT4nW2ZhdF0nOwor6IKpPidbc2hvdWxkZXJzXSc7Civogqo+J1thbmltYWwgZmF0XSc7Civogqw+J1t3YXJ0XSc7Civogq0+J1tmYXRdJzsKK+iCrz4nW3dpbGxpbmddJzsKK+iCsT4nW2ZvcmVhcm1dJzsKK+iCsj4nW3Byb2R1Y2VdJzsKK+iCtD4nW2Nvb2tlZCBvciBwcmVwYXJlZCBtZWF0XSc7Civogro+J1tsdW5nc10nOwor6IODPidbc3RvbWFjaF0nOwor6IOEPidbaGVsbWV0XSc7Civog4Y+J1tnYWxsIGJsYWRkZXJdJzsKK+iDjD4nW2JhY2tdJzsKK+iDjj4nW3VuYm9ybiBjaGlsZF0nOwor6IOWPidbZmF0XSc7Civog5k+J1tmb29kIG9mZmVyZWQgaW4gc2FjcmlmaWNpYWwgc2Vydl0nOwor6IOaPidbZW1icnlvXSc7Civog5s+J1t0aGUgc2hvdWxkZXJdJzsKK+iDnT4nW2NhbGxvdXNdJzsKK+iDnj4nW3dvbWJdJzsKK+iDoT4nW3JlY2tsZXNzbHldJzsKK+iDpD4nW2hlaXJdJzsKK+iDpT4nW2FsbF0nOwor6IOvPidbcGVsdmlzXSc7Civog7E+J1tibGFkZGVyXSc7Civog7Q+J1t0aGUgbGFyZ2UgaW50ZXN0aW5lXSc7Civog7g+J1ticmVhc3RdJzsKK+iDvD4nW2NhbGx1c10nOwor6IO9PidbYmUgYWJsZV0nOwor6ISCPidbZmF0XSc7CivohIU+J1tyaWJzXSc7CivohIY+J1tjcmlzcF0nOwor6ISHPidbcmlic10nOwor6ISIPidbYmxvb2QgdmVzc2Vsc10nOwor6ISJPidbYmxvb2QgdmVzc2Vsc10nOwor6ISKPidbc3BpbmVdJzsKK+iEmj4nW2xlZ10nOwor6ISbPidbc2hpbmJvbmVdJzsKK+iEoz4nW2xpcHNdJzsKK+iEqT4nW2RyaWVkIG1lYXQgKHVzZWQgYXMgdGVhY2hlcnMgcGF5bWVudCBpbiBhbmNpZW50IHRpbWVzKV0nOwor6ISvPidbZHJpZWQgbWVhdF0nOwor6ISxPidbdGFrZSBvZmZdJzsKK+iEsz4nW2JyYWluXSc7CivohLk+J1tzd2VsbF0nOwor6IS+Pidbc3BsZWVuXSc7CivohYY+J1twcm9zcGVyb3VzXSc7CivohYs+J1thcm1waXRdJzsKK+iFjj4nW2tpZG5leXNdJzsKK+iFkD4nW3JvdF0nOwor6IWRPidbYm93ZWxzXSc7CivohZM+J1tjYWxmXSc7CivohZQ+J1tjaGVzdCBjYXZpdHldJzsKK+iFlT4nW3dyaXN0XSc7CivohZ8+J1t2YWdpbmFdJzsKK+iFpT4nW3JhdyBtZWF0XSc7CivohaY+J1ticmFpbl0nOwor6IWrPidbc3dlbGxdJzsKK+iFrj4nW2xvd2VyIHBhcnQgb2YgZmFjZV0nOwor6IWwPidbd2Fpc3RdJzsKK+iFsT4nW3RlbmRvbnNdJzsKK+iFtD4nW2ZhdF0nOwor6IW4PidbaW50ZXN0aW5lc10nOwor6IW5Pidbc3RvbWFjaF0nOwor6IW6PidbZ2xhbmRdJzsKK+iFvz4nW2xlZ3NdJzsKK+iGgD4nW3VwcGVyIGFybV0nOwor6IaCPidbYmFja2JvbmVdJzsKK+iGgz4nW2ZhdF0nOwor6IaIPidbZGlhcGhyYWdtXSc7Civohoo+J1tzaG91bGRlcnNdJzsKK+iGjz4nW2dyZWFzZV0nOwor6IaTPidbaW50ZXN0aW5lc10nOwor6IaVPidbaG9sbG93XSc7Civohpo+J1tza2luXSc7Civohpw+J1ttZW1icmFuZV0nOwor6IadPidba25lZV0nOwor6IagPidbZ2x1ZV0nOwor6IajPidbdmFnaW5hXSc7CisjIuiGpD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6IaoPidbc3dlbGxdJzsKK+iGqT4nW2dyZWFzeV0nOwor6IawPidbY29vayBtZWF0IGZvciBzYWNyaWZpY2Ugb3Igb2ZmZXJdJzsKK+iGsz4nW21lYWxzXSc7CivohrU+J1twYW5jcmVhc10nOworIyLohrg+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+iGuj4nW2JyZWFzdF0nOwor6Ia9PidbZ2FsbCBibGFkZGVyXSc7Civohr4+J1ttaW5jZWQgbWVhdCBvciBmaXNoXSc7Civohr8+J1twdXNdJzsKK+iHgD4nW2J1dHRvY2tzXSc7Civoh4I+J1thcm1dJzsKK+iHhj4nW2NoZXN0XSc7Civoh4g+J1t5ZWFyIGVuZCBzYWNyaWZpY2VdJzsKK+iHiT4nW2ZhY2VdJzsKK+iHjT4nW2FiZG9taW5hbCBhcmVhIG9mIGNyYWJdJzsKK+iHkT4nW3NvZnRdJzsKK+iHkz4nW2ludGVybmFsIG9yZ2Fuc10nOwor6IeYPidbeWVhciBlbmQgc2FjcmlmaWNlXSc7Civoh5k+J1tyb3VnZV0nOwor6IeaPidbYXJyYW5nZSBpbiBvcmRlcl0nOwor6IefPidbaW50ZXJuYWwgb3JnYW5zXSc7Civoh6A+J1tzbWFsbCBsdW1wIG9mIG1lYXRdJzsKK+iHoz4nW21pbmlzdGVyXSc7Civoh6U+J1tsaWUgZG93bl0nOwor6IenPidbZ29vZF0nOwor6IeoPidbZHJhdyBuZWFyXSc7Civoh6o+J1tzZWxmXSc7Civoh60+J1tzbWVsbF0nOwor6IezPidbcmVhY2hdJzsKK+iHtD4nW3NlbmRdJzsKK+iHuj4nW3Rvd2VyXSc7Civoh7s+J1tyZWFjaF0nOwor6Ie8PidbbW9ydGFyXSc7Civoh74+J1ttb21lbnRdJzsKK+iIgT4nW2NhcnJ5IG9uIG9uZScncyBzaG91bGRlcl0nOwor6IiCPidbZ3JpbmQgaW4gbW9ydGFyXSc7CivoiIU+J1ttb3RoZXInJ3MgYnJvdGhlcl0nOwor6IiHPidbYW5kXSc7CivoiIg+J1t0aHJpdmVdJzsKK+iIiT4nW3JhaXNlXSc7CivoiIo+J1tvbGRdJzsKK+iIjD4nW3Rvbmd1ZV0nOwor6IiNPidbaG91c2VdJzsKK+iIjj4nW2hvdXNlXSc7CivoiJA+J1tsaWNrIHdpdGggdG9uZ3VlXSc7CivoiJI+J1tvcGVuIHVwXSc7CivoiJY+J1tzdG9yZV0nOwor6IiXPidbc3RvcmVdJzsKK+iImD4nW2EgbWFuc2lvbl0nOwor6IibPidbb3Bwb3NlXSc7CivoiJw+J1tsZWdlbmRhcnkgcnVsZXJdJzsKK+iInj4nW2RhbmNlXSc7CivoiJ8+J1tib2F0XSc7CivoiKk+J1tib2F0XSc7CivoiKo+J1tzYWlsXSc7CivoiKs+J1tmYW5jeSBib2F0XSc7CivoiKw+J1tzb3J0XSc7CivoiK4+J1tib3cgb3IgcHJvdyBvZiBib2F0XSc7CivoiLM+J1tzdGVybiBvZiBzaGlwXSc7CivoiLU+J1tydWRkZXJdJzsKK+iItj4nW2xhcmdlXSc7CivoiLc+J1tzaWRlcyBvZiBib2F0XSc7CivoiLg+J1tsYXJnZSBib2F0XSc7CivoiLk+J1tzaGlwXSc7CivoiYA+J1tbbm90IGZvdW5kIGluIGRpY3Rpb25hcnldXSc7CivoiYc+J1tzbWFsbCBib2F0XSc7CivoiZg+J1tjb3VudGVyIGZvciBzaGlwc10nOwor6ImZPidbaG9sZCBvZiBzaGlwXSc7CivoiZo+J1tzaGlwXSc7CisjIuiJnT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6ImfPidbYW5jaWVudCB3YXJzaGlwXSc7CivoiaI+J1thIG1hc3RdJzsKK+iJpD4nW3RvIG1vb3IgYSBib2F0IHRvIHRoZSBiYW5rXSc7CivoiaY+J1t3YXJzaGlwXSc7Civoiag+J1tsb25nIGFuZCBuYXJyb3cgd2FyLWJvYXRdJzsKK+iJqj4nW29hcl0nOwor6ImrPidbYm93IG9yIHByb3cgb2YgYm9hdF0nOwor6ImuPidbc2V2ZW50aCBvZiBlaWdodCBkaWFncmFtc10nOwor6ImvPidbZ29vZF0nOwor6ImxPidbZGlmZmljdWx0XSc7CivoibI+J1tjb2xvcl0nOwor6Im2PidbYmVhdXRpZnVsXSc7Civoibc+J1tiZWF1dGlmdWxdJzsKK+iJuD4nW2dyYXNzXSc7Civoib4+J1thcnRlbWlzaWFdJzsKK+iKiz4nW3Rhcm9dJzsKK+iKjT4nW3Blb255XSc7CivoipI+J1ttaXNjYW50aHVzIHNpbmVuc2lzXSc7Civoipk+J1toaWJpc2N1c10nOwor6IqdPidbcHVycGxpc2ggbXVzaHJvb20gdGhvdWdodCBwcm9tb3RdJzsKK+iKnz4nW21vd10nOwor6IqlPidbbXVzdGFyZCBwbGFudF0nOwor6IqmPidbcnVzaGVzXSc7Civoiqs+J1tkYXBobmUgZ2Vua3dhXSc7Civoiqw+J1tmcmFncmFuY2VdJzsKK+iKrT4nW3BsYW50YWluIG9yIGJhbmFuYSBwYWxtXSc7Civoiq8+J1twaXRoIGZyb20gcnVzaCAoanVuY3VzIGVmZnVzdXMpXSc7CivoirE+J1tmbG93ZXJdJzsKK+iKsz4nW2ZyYWdyYW50XSc7Civoirg+J1tydWVdJzsKK+iKuT4nW2NlbGVyeV0nOwor6Iq7PidbbW93XSc7Civoir0+J1tidWRdJzsKK+iLhT4nW2N1dCBvZmZdJzsKK+iLkT4nW3Bhc3R1cmVdJzsKK+iLkj4nW2x1c2hdJzsKK+iLkz4nW2Z1bmd1c10nOwor6IuUPidbbW9zc10nOwor6IuXPidbc3Byb3V0c10nOwor6IuZPidbcGlnc3R5XSc7Civoi5s+J1tzbWFsbF0nOwor6IucPidbY2xvdmVyXSc7Civoi54+J1t2YXJpZXR5IG9mIHJ1c2hdJzsKK+iLnz4nW2NhcmVsZXNzXSc7Civoi6E+J1tiYXJsZXldJzsKK+iLoz4nW2tpbmQgb2YgbGV0dHVjZV0nOwor6IulPidbaWZdJzsKK+iLpj4nW2JpdHRlcl0nOwor6IunPidbY2hpbmEgZ3Jhc3NdJzsKK+iLqz4nW3J1c2ggb3Igc3RyYXcgbWF0dGluZ10nOwor6IuxPidbcGV0YWxdJzsKKyMi6IuzPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivoi7Q+J1tzYWNrY2xvdGhdJzsKK+iLuT4nW2FydGVtaXNpYV0nOwor6Iu6PidbYmVycmllc10nOwor6Iu7Pidba2luZCBvZiBoZXJiXSc7CivojII+J1t0aGlja10nOwor6IyDPidbc3VybmFtZV0nOwor6IyEPidbZWdncGxhbnRdJzsKK+iMhT4nW3JlZWRzXSc7CivojIY+J1tzcGVjaWVzIG9mIGdyYXNzXSc7CivojIk+J1t3aGl0ZSBqYXNtaW5lXSc7CivojI4+J1tzdGVtXSc7CivojJY+J1thbGxpdW0gdmljdG9yaWFsaXNdJzsKK+iMlz4nW3RlYV0nOworIyLojJc+J1t0ZWFdJyIsCivojJw+J1ttYWRkZXJdJzsKKyMi6IyjPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivojKg+J1tjYWx0cm9wXSc7CivojKs+J1t2YXN0XSc7CivojK8+J1tjaGluYSByb290XSc7CivojLE+J1tkb2d3b29kXSc7CivojLI+J1tub3ddJzsKK+iMtD4nW2Zlbm5lbF0nOwor6Iy1PidbY3VzaGlvbl0nOwor6Iy2PidbdGVhXSc7CivojLg+J1tzb2Z0XSc7CivojLk+J1tyb290c10nOwor6I2APidbc3VybmFtZV0nOwor6I2FPidbYW5zd2VyOiBzbWFsbCBiZWFuXSc7CivojYk+J1tncmFzc10nOwor6I2KPidbdGhvcm5zXSc7CivojY8+J1tiZWFuc10nOwor6I2QPidbcmVwZWF0XSc7CivojZI+J1t3YXN0ZWxhbmRdJzsKK+iNmD4nW3ZpbGxhZ2VdJzsKK+iNsz4nW2JlYW5zXSc7CisjIuiNtT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6I23PidbbG90dXNdJzsKK+iNuz4nW3JlZWRdJzsKK+iNvD4nW2JpdHRlciB2ZWdldGFibGVdJzsKK+iOhT4nW2F0dGVuZF0nOworIyLojoc+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+iOiT4nW3doaXRlIGphc21pbmVdJzsKK+iOij4nW3ZpbGxhZ2VdJzsKK+iOjj4nW2tpbmQgb2Ygc2VkZ2UgZ3Jhc3NdJzsKK+iOkz4nW21vc3NdJzsKK+iOlj4nW3N0ZW1dJzsKK+iOmj4nW2JhbWJvbyBtYXRdJzsKK+iOnj4nW3NtaWxpbmddJzsKKyMi6I6fPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivojqA+J1t3ZWVkc10nOwor6I6iPidbcG9kcyBvZiBsZWd1bWlub3VzIHBsYW50c10nOwor6I6oPidbaGVyYl0nOwor6I6qPidbYXJ0ZW1pc2lhXSc7Civojqs+J1tkbyBub3RdJzsKK+iOsT4nW2dvb3NlZm9vdF0nOwor6I61PidbZG9kZGVyXSc7Civojr0+J1t0aGlja2V0XSc7Civoj4E+J1tmbG93ZXIgb2YgbGVlayBmYW1pbHldJzsKK+iPhT4nW2NvYXJzZSBncmFzc10nOwor6I+KPidbY2hyeXNhbnRoZW11bV0nOwor6I+MPidbbXVzaHJvb21dJzsKK+iPjj4nW2JlYXV0aWZ1bCBqYWRlXSc7Civoj5M+J1tmcnVpdHNdJzsKK+iPlj4nW2lyaXNdJzsKK+iPmD4nW2NlbGVyeV0nOwor6I+cPidbdmVnZXRhYmxlc10nOwor6I+fPidbZG9kZGVyXSc7Civoj6A+J1tzcGluYWNoIGFuZCBzaW1pbGFyIGdyZWVuc10nOwor6I+pPidbaGVyYl0nOwor6I+rPidbY2VsZXJ5XSc7Civoj68+J1tmbG93ZXJ5XSc7Civoj7A+J1t3aWxkIHJpY2VdJzsKK+iPsT4nW3dhdGVyLWNoZXN0bnV0XSc7Civoj7I+J1tmcmFncmFudF0nOwor6I+0Pidbc21hbGwgYnVkZGhpc3QgbW9uYXN0ZXJ5XSc7CisjIuiPtz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6I+7PidbYXJ0ZW1pc2lhXSc7Civoj70+J1tiZWFucyBhbmQgcGVhc10nOwor6JCDPidbZGVuc2VdJzsKK+iQhD4nW2dyYXBlc10nOwor6JCHPidbYXZlcnJob3JhIGNhcmFtYm9sYV0nOwor6JCLPidbbHV4dXJpYW50IGZvbGlhZ2VdJzsKK+iQjD4nW2J1ZF0nOwor6JCNPidbZHVja3dlZWRdJzsKK+iQjj4nW3dpdGhlcl0nOworIyLokJM+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+iQoD4nW2J1ZF0nOworIyLokKI+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+iQqT4nW3NjYW5kZW50IGhvcF0nOworIyLokKo+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+iQrD4nW3RlbiB0aG91c2FuZF0nOwor6JCxPidbZGF5LWxpbHldJzsKK+iQtT4nW2xldHR1Y2VdJzsKK+iQuD4nW2RvZ3dvb2RdJzsKK+iQvD4nW2NhbHl4IG9mIGZsb3dlcl0nOwor6JC9PidbZmFsbF0nOwor6JGGPidbcmVzZXJ2ZV0nOwor6JGJPidbbGVhZl0nOworIyLokY4+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+iRlz4nW21hbmlmZXN0XSc7CivokZs+J1tlZGlibGUgYmVhbl0nOwor6JGhPidbZ3JhcGVzXSc7CivokaI+J1tjb3Zlcl0nOwor6JGjPidbZGlyZWN0XSc7CivokaY+J1tyZWVkXSc7Civokak+J1tmbG93ZXJzXSc7Civokas+J1tib3R0bGUtZ291cmRdJzsKK+iRrD4nW2J1cnldJzsKK+iRrT4nW2J1bHJ1c2hdJzsKKyMi6JGtPidbYnVscnVzaF0nIiwKK+iRrz4nW2xlYWYgb2YgYW5nZWxpY2EgcGxhbnRdJzsKK+iRsT4nW3NjYWxsaW9uc10nOwor6JG1Pidbc3VuZmxvd2VyXSc7Civokbc+J1ttZWF0IGRpZXRdJzsKK+iRuT4nW2tpbmQgb2YgY2hyeXNhbnRoZW11bV0nOwor6JG6PidbdGhhdGNoXSc7CivokoI+J1twZWR1bmNsZSBvciBzdGVtIG9mIHBsYW50c10nOworIyLokoQ+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+iSiz4nW3N1cm5hbWVdJzsKK+iSkD4nW2NvbGxlY3RdJzsKK+iSlD4nW3RyYW5zcGxhbnRdJzsKK+iSmT4nW2NvdmVyXSc7Civokpw+J1tnYXJsaWNdJzsKK+iSnz4nW2JldGVsIHBlcHBlcl0nOwor6JKhPidbYnVyZG9ja10nOwor6JKtPidbdG8gY3V0Z3Jhc3NdJzsKK+iSsj4nW3R5cGUgb2YgcnVzaF0nOwor6JK4Pidbc3RlYW1dJzsKK+iSuT4nW3JlZWRdJzsKK+iSuz4nW3J1c2hlc10nOwor6JK8PidbYmx1ZV0nOwor6JK/PidbbXVnd29ydF0nOwor6JOBPidbYWJ1bmRhbnRdJzsKK+iThD4nW3N0b3JlXSc7Civok4Y+J1tzdHJhdyBtYXRdJzsKK+iTiT4nW2hpYmlzY3VzXSc7Civok4o+J1tsdXh1cmlhbnQgdmVnZXRhdGlvbl0nOwor6JOLPidbY292ZXJdJzsKK+iTjT4nW21pbGZvaWxdJzsKK+iTkD4nW3N0cmF3IGJlZCBtYXRdJzsKK+iTkT4nW3JhaW4gY29hdCBtYWRlIG9mIHN0cmF3XSc7Civok5Y+J1tjYXN0b3Itb2lsIHBsYW50XSc7CisjIuiTmT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6JOaPidbb3hhbGljICh1c2VkIGluIGNvbXBvdW5kcyldJzsKK+iTrD4nW3R5cGUgb2YgcmFzcGJlcnJ5XSc7Civok64+J1tsb3R1c10nOwor6JO0PidbZWRpYmxlIHdhdGVyIHBsYW50XSc7Civok7w+J1tzbWFydHdlZWRdJzsKK+iTvz4nW2Nsb3Zlcl0nOwor6JSAPidbc2NyZWVuXSc7CivolIY+J1t3YXRlci1jaGVzdG51dF0nOwor6JSRPidbZGlzZGFpbl0nOwor6JSTPidbY3JlZXBpbmcgcGxhbnRzXSc7CivolJQ+J1tyYWRpc2hdJzsKK+iUlT4nW3BlZHVuY2xlIG9yIHN0ZW0gb2YgcGxhbnRzXSc7CivolJc+J1tzdWdhciBjYW5lXSc7CivolJg+J1tnaW5zZW5dJzsKK+iUmj4nW2x1eHVyaWFudF0nOwor6JSfPidbZnJhbWUgb24gd2hpY2ggc2lsa3dvcm1zIHNwaW5dJzsKK+iUoT4nW3N1cm5hbWVdJzsKK+iUpj4nW3BhcmFzaXRpYyBwbGFudHNdJzsKK+iUrD4nW3ZlZ2V0YWJsZXNdJzsKK+iUrT4nW3NoYWRlXSc7CivolLU+J1toaWRlXSc7CivolL0+J1tjb3Zlcl0nOworIyLolYA+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+iVgT4nW25ldHRsZV0nOwor6JWDPidbZm9yZWlnbiB0aGluZ3NdJzsKK+iViD4nW211c2hyb29tc10nOwor6JWJPidbYmFuYW5hXSc7CivolYo+J1t1bm9wZW5lZCBmbG93ZXJzXSc7CivolYs+J1t1bm9wZW5lZCBmbG93ZXJzXSc7CivolY4+J1tidWNrd2hlYXRdJzsKK+iVlT4nW2NhcnlvcHRlcmlzIGRpdmFyaWNhdGFdJzsKKyMi6JWXPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivolZg+J1tmdWVsXSc7CivolZo+J1tjYWx5eCBvZiBmbG93ZXJdJzsKK+iVoz4nW2hpYmlzY3VzXSc7Civolag+J1twdGVyaXMgYXF1aWxpbmFdJzsKK+iVqT4nW3BvbmRdJzsKK+iVqj4nW2x1eHVyaW91cyBncm93dGggb2Ygd2VlZHNdJzsKK+iVrT4nW2NvbW1vbiBhcnRlbWlzaWFdJzsKK+iVtz4nW3lhbV0nOwor6JW+PidbYnVkc10nOwor6JaAPidbdGhlIGhpcHB1cmlzIG9yIG1hcmUnJ3MgdGFpbCBwbGFudF0nOwor6JaEPidbdGhpbl0nOwor6JaHPidbb3NtdW5kYSByZWdhbGlzXSc7Civolog+J1tsdXh1cmlhbnRdJzsKK+iWij4nW2NpcmNpdW1dJzsKK+iWkD4nW3NwaW5hY2hdJzsKK+iWkT4nW2dpbmdlcl0nOwor6JaUPidbcm9zZV0nOwor6JaXPidbZ2FyZGVuXSc7Civolpk+J1t3ZWVkXSc7Civolps+J1traW5kIG9mIG1hcnNoIGdyYXNzXSc7Civolpw+J1tldmVyZ3JlZW4gc2hydWJzXSc7CivolqQ+J1thbGxpdW0gYmFrZXJpXSc7CivolqY+J1tvZmZlcl0nOwor6JaoPidbZGVhdGggb2YgcHJpbmNlXSc7Civolqk+J1t0cmFuc2xpdGVyYXRpb24gb2YgXCJzYXRcIiBvZiBib2RkaGlzYXR0dmEgZXRjLl0nOwor6JaqPidbZnVlbF0nOwor6JarPidbYSBtZWRpY2luYWwgaGVyYl0nOwor6JasPidbZHJ1Z3NdJzsKK+iWrj4nW21hcnNoXSc7Civolq8+J1t5YW1dJzsKK+iWuT4nW2N5cGVydXMgcm90dW5kdXNdJzsKK+iWuj4nW3dhdGVyLWNoZXN0bnV0c10nOwor6JeBPidbc3RyYXddJzsKK+iXiT4nW21hdF0nOwor6JeNPidbYmx1ZV0nOwor6JePPidbaGlkZV0nOwor6JeQPidbZGlzcmVnYXJkXSc7Civol5U+J1tsb3R1cyByb290XSc7Civol5w+J1tjaGVub3BvZGl1bSBhbGJ1bV0nOwor6JedPidbYXJ0XSc7Civol6Q+J1tyYXR0YW5dJzsKK+iXpT4nW2RydWdzXSc7Civol6k+J1tmZW5jZV0nOwor6JeqPidbbWFyc2hdJzsKK+iXtz4nW3lhbV0nOwor6Je5PidbbHVzaF0nOwor6Je6PidbcnVzaCB1c2VkIGluIG1ha2luZyBtYXRzXSc7Civol7s+J1tzcGxlbmRpZF0nOwor6Je+Pidbc2hhZGVdJzsKK+iYgj4nW3N0YW1lbiBvciBwaXN0aWxdJzsKK+iYhj4nW3J1c2hlc10nOwor6JiHPidbdGh5bWVdJzsKK+iYij4nW2NvbGxlY3RdJzsKK+iYiz4nW2FwcGxlXSc7CivomJM+J1t0aHltZV0nOwor6JiWPidbc3R1bXBdJzsKK+iYlz4nW3N0dW1wXSc7CivomJo+J1ttb3NzXSc7CivomKI+J1t0YWxsIGdyYXNzXSc7CivomK0+J1tvcmNoaWRdJzsKK+iYrz4nW3RvIHRvc3MgYWJvdXRdJzsKKyMi6JivPidbdG8gdG9zcyBhYm91dF0nIiwKK+iYvz4nW3R5cGUgb2YgY3JlZXBpbmcgcGxhbnRdJzsKK+iZjT4nW3RpZ2VyXSc7CivomY4+J1t0aWdlcl0nOwor6JmQPidbY3J1ZWxdJzsKK+iZlD4nW2FjdCB3aXRoIHJldmVyZW5jZV0nOwor6JmVPidbcGxhY2VdJzsKK+iZmj4nW2ZhbHNlXSc7CivomZw+J1tjYXB0dXJlXSc7CivomZ4+J1tjb25jZXJuZWQgYWJvdXRdJzsKK+iZnz4nW21hcmtdJzsKK+iZpz4nW2xvc2VdJzsKK+iZqz4nW2luc2VjdHNdJzsKK+iZsT4nW2xvdXNlXSc7Civombk+J1tyYWluYm93XSc7Civombs+J1tob3JzZWZseV0nOwor6JqKPidbbW9zcXVpdG9dJzsKK+iaiz4nW2duYXRdJzsKK+iajD4nW295c3RlcnNdJzsKK+iakz4nW2VhcnRod29ybV0nOwor6JqVPidbc2lsa3dvcm1zXSc7CivomqM+J1tjZW50aXBlZGVdJzsKK+iapD4nW2ZsZWFdJzsKK+iaqT4nW3dvcm1dJzsKK+iaqj4nW3RhZHBvbGVdJzsKK+iaqz4nW2FiYWxvbmVdJzsKK+iarz4nW2VhcnRod29ybV0nOwor6JqwPidbbWlsbGlwZWRlXSc7CivomrY+J1traW5kIG9mIGNsYW1dJzsKK+ibhD4nW21vbGUgY3JpY2tldF0nOwor6JuGPidbbWFnZ290c10nOwor6JuHPidbc25ha2VdJzsKK+ibiT4nW2RyYWdvbmZseV0nOwor6JuLPidbZWdnc10nOwor6JuNPidbZ2xvdy13b3JtXSc7Civom44+J1tveXN0ZXJdJzsKK+iblD4nW3RhcGV3b3JtXSc7Civom5k+J1tmcm9nXSc7Civom5s+J1tzcGlkZXJdJzsKK+ibnj4nW3NuYWlsXSc7Civom58+J1tzY2FseSBkcmFnb24gd2l0aCBmb3VyIGxlZ3NdJzsKK+ibpD4nW2NsYW1dJzsKK+ibqT4nW2NyaWNrZXRdJzsKKyMi6JupPidbY3JpY2tldF0nIiwKK+ibrT4nW2xlZWNoXSc7Civom64+J1tiYXJiYXJpYW5zXSc7Civom68+J1tzaHJpbXBdJzsKK+ibuD4nW2xvbmcgbGVnZ2VkIHNwaWRlcl0nOwor6Ju5PidbY2hyeXNhbGlzXSc7Civom7s+J1ttb2x0XSc7Civom74+J1ttb3RoXSc7CivonIA+J1tuYW1lIG9mIGFuIGFuY2llbnQgc3RhdGVdJzsKK+icgj4nW2JlZV0nOwor6JyDPidbbWFyaW5lIG1vbnN0ZXIgd2hpY2ggY2FuIGNoYW5nZSBpdHMgc2hhcGVdJzsKK+ichj4nW2EgdmFyaWV0eSBvZiBiaXZhbHZlc10nOwor6JyIPidbY2VudGlwZWRlXSc7CivonIk+J1ttYXlmbHldJzsKK+icij4nW2NsYW1dJzsKK+icjT4nW3RvYWRdJzsKK+ickT4nW2VnZ10nOwor6JySPidbbWlsbGlwZWRlXSc7CivonJg+J1tzcGlkZXJdJzsKK+icmj4nW2NvY2tyb2FjaF0nOwor6JycPidbaG9uZXldJzsKK+icpT4nW2xpemFyZF0nOwor6JypPidbY2ljYWRhXSc7CivonLQ+J1tsaXphcmRdJzsKK+ictz4nW2NyZWVwIGxpa2Ugd29ybV0nOwor6Jy7PidbZHJhZ29uZmx5XSc7CivonL8+J1tjcmVlcF0nOwor6J2JPidbY2ljYWRhXSc7CivonYs+J1t3YXhdJzsKK+idjD4nW3RhZHBvbGVdJzsKK+idjj4nW3Njb3JwaW9uXSc7CivonZM+J1tzbmFpbF0nOwor6J2VPidbbmliYmxlIGF3YXldJzsKK+idlz4nW2tpbmQgb2YgbG9jdXN0XSc7CivonZk+J1tiYXRdJzsKK+idnz4nW2hlZGdlaG9nXSc7CivonaA+J1traW5kIG9mIGJhdF0nOwor6J2jPidbbWF5Zmx5XSc7CivonaY+J1tzaHJpbXBdJzsKK+idqD4nW2xvdXNlXSc7CisjIuidqD4nW2xvdXNlXSciLAor6J2uPidbdmVub21vdXMgc25ha2VdJzsKK+idtD4nW2J1dHRlcmZseV0nOwor6J22PidbYnV0dGVyZmx5XSc7Civonbg+J1tzbmFpbF0nOwor6J2/PidbZmxpZXNdJzsKK+iegj4nW21hbnRpc10nOwor6J6NPidbbWVsdF0nOwor6J6fPidba2luZCBvZiBjYXRlcnBpbGxhcl0nOwor6J6iPidbZ2xvdy13b3JtXSc7Civonqs+J1twb2lzb25dJzsKK+ierz4nW25pcHBlcnNdJzsKK+iesz4nW21hbnRpc10nOwor6J66Pidbc3BpcmFsIHNoZWxsXSc7Civonrs+J1tncnlsbG90YWxwYSBhZnJpY2FuYV0nOwor6J69Pidba2F0eWRpZF0nOwor6J+APidbY3JpY2tldF0nOwor6J+EPidbdG8gaGliZXJuYXRlXSc7Civon4Y+J1tmcm9nXSc7Civon4c+J1tmcm9nXSc7Civon4s+J1tjcmlja2V0XSc7CisjIuifiz4nW2NyaWNrZXRdJyIsCivon5I+J1tweXRob25dJzsKK+ifoD4nW2NvaWxdJzsKK+ifrz4nW3dvcm1zXSc7Civon7I+J1t3b3Jtc10nOwor6J+2PidbcmF6b3IgY2xhbV0nOwor6J+3PidbbWFudGlzXSc7Civon7k+J1tjcmFiXSc7Civon7s+J1thbnRzXSc7Civon74+J1t0b2FkXSc7CivooIU+J1tmbGllc10nOwor6KCNPidbc2NvcnBpb25dJzsKK+igjj4nW3B5dGhvbl0nOwor6KCPPidbY3JhYl0nOwor6KCRPidbbGl6YXJkXSc7CivooJU+J1tldW1lbmVzIHBvbGlmb21pc10nOwor6KCWPidbbWVhc3VyaW5nIHdvcm1dJzsKK+igoT4nW3dvb2QtYm9yaW5nIGluc2VjdF0nOwor6KCiPidbd3JpZ2dsZV0nOwor6KCjPidbb3lzdGVyXSc7CivooKc+J1ttb3RoXSc7CivooLE+J1twb3Npb25dJzsKK+igtj4nW3NpbGt3b3Jtc10nOwor6KC5PidbbW90aF0nOwor6KC7PidbYmFyYmFyaWFuc10nOwor6KGAPidbYmxvb2RdJzsKK+ihgj4nW3RvIGJlIGRlZmVhdGVkXSc7CivooYQ+J1tlcGlzdGF4aXNdJzsKK+ihhj4nW211bHRpdHVkZV0nOwor6KGMPidbZ29dJzsKK+ihjT4nW292ZXJmbG93XSc7CivooZI+J1ticmFnXSc7CivooZM+J1thcnRdJzsKK+ihlz4nW3N0cmVldF0nOwor6KGZPidbcHVibGljIG9mZmljZV0nOwor6KGbPidbZ3VhcmRdJzsKK+ihnT4nW3J1c2ggYWdhaW5zdF0nOwor6KGePidbZ3VhcmRdJzsKK+ihoT4nW21lYXN1cmVdJzsKK+ihoj4nW2hpZ2h3YXldJzsKK+ihoz4nW2Nsb3RoZXNdJzsKK+ihqD4nW3Nob3ddJzsKK+ihqz4nW3NoaXJ0XSc7CivoobA+J1tkZWNsaW5lXSc7CivoobI+J1ttZW5kXSc7CivoobU+J1tjaGVtaXNlXSc7Civoobc+J1toZWFydF0nOwor6KG9PidbbGFwZWxdJzsKK+ihvj4nW2NvdmVybGV0XSc7Civoob8+J1tjb2xsYXIgb3IgbGFwZWwgb2YgZ2FybWVudF0nOwor6KKBPidbcm9iZV0nOwor6KKCPidbc2xlZXZlc10nOwor6KKIPidbYnVkZGhpc3QgY2Fzc29ja10nOwor6KKLPidbcG9ja2V0XSc7Civooo0+J1tsb25nIGdvd25dJzsKK+iikj4nW3N0cmlwXSc7CivoopY+J1tzbGVldmVdJzsKK+iilz4nW3VubGluZWQgZ2FybWVudHNdJzsKKyMi6KKZPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivoop4+J1tjZXJlbW9uaWFsIGRyZXNzIHdvcm4gYnkgZW1wZXJvcl0nOwor6KKiPidbcm9iZV0nOwor6KKkPidbbG9uZ2l0dWRlXSc7Civooqs+J1twYXNzaXZlIGluZGljYXRvciBcImJ5XCJdJzsKKyMi6KKuPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCisjIuiisD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6KKxPidbcGllY2Ugb2YgY2xvdGggdXNlZCB3cmFwIGJ1bmRsZXNdJzsKK+iitD4nW3BhbnRzXSc7CivoorU+J1tsYXBlbF0nOwor6KK3PidbbGluZWQgZ2FybWVudF0nOwor6KK/PidbZ293bl0nOwor6KOBPidbY3V0IG91dF0nOwor6KOCPidbc3BsaXRdJzsKKyMi6KOCPidbc3BsaXRdJyIsCisjIuijgj4nW3NwbGl0XSciLAor6KOFPidbZHJlc3NdJzsKK+ijjz4nW2luc2lkZV0nOwor6KOUPidbcHJvZ2VueV0nOwor6KOVPidbYWJ1bmRhbnRdJzsKK+ijmD4nW2Z1ciBnYXJtZW50c10nOwor6KOZPidbc2tpcnRdJzsKK+ijnD4nW21lbmRdJzsKK+ijnT4nW2RyZXNzXSc7Civoo58+J1thIGNhc3NvY2sgb3Igcm9iZSBvZiBhIG1vbmtdJzsKK+ijoT4nW2luc2lkZV0nOwor6KOoPidbYWlkXSc7Civoo7I+J1t3YWlzdGNvYXRdJzsKK+ijsz4nW2Nsb3RoZXNdJzsKK+ijtD4nW3N1cm5hbWVdJzsKK+ijuD4nW2JhcmVdJzsKK+ijuT4nW3dyYXBdJzsKK+ijvD4nW3RvIHRha2Ugb2ZmIG9uZScncyB0b3BdJzsKK+ijvT4nW21ha2VdJzsKK+ijvj4nW2xhcGVsXSc7CivopII+J1tqYWNrZXRdJzsKKyMi6KSDPidbYSBzZWFtIGluIGEgZ2FybWVudF0nIiwKK+ikhz4nW3JlcGVhdF0nOwor6KSKPidbY3JhbXBlZF0nOwor6KSMPidbdHJvdXNlcnNdJzsKK+ikkD4nW2NvYXJzZSB3b29sZW4gY2xvdGhdJzsKK+ikkj4nW3ByYWlzZV0nOwor6KSTPidbc3dhZGRsaW5nIGNsb3RoXSc7CivopJ0+J1t1bmxpbmVkIGdhcm1lbnRdJzsKKyMi6KSePidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivopKU+J1ttYXR0cmVzc10nOwor6KSqPidbc3RyaXBdJzsKK+ikqz4nW3N0cmlwXSc7CivopLY+J1twbGVhdF0nOwor6KS4PidbbGFwZWxdJzsKK+ikuz4nW2RpcnR5XSc7CivopYE+J1tzd2FkZGxpbmcgY2xvdGhlc10nOwor6KWDPidbY29tbWVuZF0nOwor6KWEPidbYWlkXSc7CivopYw+J1t1bmxpbmVkIGdhcm1lbnRdJzsKK+iljT4nW21peGVkXSc7CivopZY+J1tvdXRlciBnYXJtZW50c10nOwor6KWePidbZm9sZF0nOwor6KWfPidbbGFwZWxdJzsKK+iloD4nW2Nyb3RjaCBvciBzZWF0IG9mIHBhbnRzXSc7CivopaQ+J1tyYWdnZWRdJzsKK+ilpj4nW3Nob3J0IGNvYXRdJzsKK+ilqj4nW3NvY2tzXSc7Civopa0+J1t0dWNrIHVwIGhlbSBvZiBnYXJtZW50IGFuZCB3cmFwXSc7Civopa8+J1t1bmRlcndlYXJdJzsKK+ilsj4nW3JhaWRdJzsKK+iltD4nW2Egb25lIHBpZWNlIGdhcm1lbnRdJzsKKyMi6KW2PidbaWdub3JhbnRdJyIsCivopb4+J1tjb3Zlcl0nOwor6KW/Pidbd2VzdChlcm4pXSc7CivopoE+J1tuZWNlc3NhcnldJzsKK+imgz4nW3JlYWNoIHRvXSc7CivopoY+J1tjb3Zlcl0nOwor6KaHPidbcnVsZSBieSBtaWdodCByYXRoZXIgdGhhbiByaWdodF0nOwor6KaIPidbaW52ZXN0aWdhdGVdJzsKK+imij4nW2hhbHRlcl0nOwor6KaLPidbc2VlXSc7Civopo8+J1tydWxlc10nOwor6KaTPidbc2Vla10nOwor6KaWPidbbG9vayBhdF0nOwor6KaXPidbcGVla10nOwor6KaYPidbcGVla10nOwor6KaaPidbd2FrZSB1cCBmcm9tIHNsZWVwXSc7CivopqE+J1t3aXphcmRdJzsKK+impj4nW2Rlc2lyZSBzdHJvbmdseV0nOwor6KanPidbbG9vayBhdF0nOwor6KapPidbc2VlXSc7Civopqo+J1tyZWxhdGl2ZXNdJzsKK+imrD4nW2NvdmV0XSc7Civopq8+J1ttZWV0IG9yIHNlZSB1bmV4cGVjdGVkbHldJzsKK+imsj4nW2hhdmUgaW1wZXJpYWwgYXVkaWVuY2VdJzsKK+imsz4nW3NlZV0nOwor6Ka6Pidbd2FrZSB1cCBmcm9tIHNsZWVwXSc7Civopr0+J1tsb29rIGF0XSc7Civopr8+J1tzZWVdJzsKK+ingD4nW3NlZV0nOwor6KeSPidbaG9ybl0nOwor6KeaPidbanVnXSc7Civop5w+J1tiZWFrXSc7Civop50+J1tnb3JlXSc7Civop6M+J1tsb29zZW5dJzsKK+inpj4nW2J1dHRdJzsKK+inpz4nW2xvb3Nlbl0nOwor6Ke0Pidbd2luZSB2ZXNzZWxdJzsKK+inuD4nW3RvdWNoXSc7CivoqIA+J1t3b3Jkc10nOwor6KiCPidbZHJhdyB1cCBhZ3JlZW1lbnRdJzsKK+iogz4nW29iaXR1YXJ5XSc7CivoqIg+J1twbGFuXSc7CivoqIo+J1tpbnF1aXJlXSc7CivoqIw+J1tjb25mdXNpb25dJzsKK+iojj4nW2FzayBmb3JdJzsKK+iokD4nW2V4cG9zZSBvdGhlcicncyBzZWNyZXRzXSc7CivoqJM+J1t0ZWFjaF0nOwor6KiWPidbZmluaXNoXSc7CivoqJc+J1tlbnRydXN0XSc7CivoqJg+J1tyZWNvcmRdJzsKK+iomz4nW3N3aW5kbGVdJzsKK+ionT4nW2V4cHJlc3Mgc3VycHJpc2VdJzsKK+ionz4nW2FjY3VzZV0nOwor6KijPidbdGFrZSBsZWF2ZSBvZl0nOwor6KilPidbc2xvdyBvZiBzcGVlY2hdJzsKK+ioqj4nW3Zpc2l0XSc7CivoqK0+J1tidWlsZF0nOwor6KixPidbYWxsb3ddJzsKK+iosz4nW3RyYW5zbGF0ZV0nOwor6Ki0PidbYWNjdXNlXSc7CivoqLY+J1tzY29sZCBsb3VkbHldJzsKK+iouj4nW2V4YW1pbmUgcGF0aWVudF0nOwor6Ki7PidbZXhwbGFpbl0nOwor6Ki8PidbcHJvdmVdJzsKK+ipgT4nW2V4ZWdlc2lzXSc7CivoqYY+J1tzbGFuZGVyXSc7CivoqYg+J1tzY29sZF0nOwor6KmQPidbY2hlYXRdJzsKK+ipkT4nW2NoZWF0XSc7CivoqZI+J1tiZXF1ZWF0aF0nOwor6KmUPidbZGVjcmVlXSc7CivoqZU+J1thcHByYWlzZV0nOwor6KmbPidbY3Vyc2VdJzsKK+ipnj4nW3dvcmRzXSc7CivoqaA+J1tzaW5nXSc7CivoqaI+J1tpbnF1aXJlIGludG9dJzsKK+ipoz4nW3JlYWNoXSc7CivoqaY+J1t0ZXN0XSc7Civoqak+J1twb2V0cnldJzsKK+ipqz4nW2JlIHN1cnByaXNlZF0nOwor6KmsPidbYWJ1c2VdJzsKK+iprT4nW2RlY2VpdmVdJzsKK+iprj4nW2V4cGxhaW5dJzsKK+ipsD4nW3F1ZXN0aW9uXSc7CivoqbE+J1tzcGVlY2hdJzsKK+ipsj4nW3Nob3VsZF0nOwor6KmzPidbZGV0YWlsZWRdJzsKK+ipvD4nW3RlYXNlXSc7CivoqoI+J1t0ZW1wdF0nOwor6KqEPidbZXVsb2dpemVdJzsKK+iqhT4nW2V4ZWN1dGVdJzsKK+iqhz4nW2V4YWdnZXJhdGVdJzsKK+iqiT4nW2ZhbWVdJzsKK+iqjD4nW3dyaXRlIGRvd25dJzsKK+iqjT4nW3JlY29nbml6ZV0nOwor6KqRPidbZGVjZWl2ZV0nOwor6KqTPidbc3dlYXJdJzsKK+iqlT4nW2JlYXIgY2hpbGRyZW5dJzsKK+iqmD4nW3BlcnN1YWRlXSc7Civoqpo+J1tjcml0aWNpemVdJzsKK+iqnj4nW2xhbmd1YWdlXSc7CivoqqA+J1tzaW5jZXJlXSc7CivoqqE+J1t3YXJuXSc7CivoqqM+J1ttYWtlIGZhbHNlIGFjY3VzYXRpb25dJzsKK+iqpD4nW2Vycl0nOwor6KqlPidbaW5mb3JtXSc7CivoqqY+J1tyZWNpdGVdJzsKK+iqqD4nW3RlYWNoXSc7Civoqqw+J1tzcGVha10nOwor6KqtPidbcmVhZF0nOwor6KqwPidbd2hvPyB3aG9tPyB3aG9zZT8gYW55b25lP10nOwor6KqyPidbbGVzc29uXSc7Civoqrk+J1tzbGFuZGVyXSc7Civoqrw+J1tmcmllbmRzaGlwXSc7Civoqr8+J1t0cmFuc2Zlcl0nOwor6KuCPidbZmxhdHRlcl0nOwor6KuEPidbcGF0aWVudF0nOwor6KuHPidbdGFsa10nOwor6KuLPidbYXNrXSc7Civoq4w+J1tyZW1vbnN0cmF0ZV0nOwor6KuNPidbdG8gZXhwb3N0dWxhdGVdJzsKK+irjz4nW2NvbnN1bHRdJzsKK+irkj4nW2V4Y3VzZV0nOwor6KuWPidbZGViYXRlXSc7Civoq5o+J1soa29rdWppKSBjb21tYW5kXSc7Civoq5s+J1tmbGF0dGVyXSc7Civoq5w+J1tpbnRlbGxpZ2VuY2UgcmVwb3J0XSc7Civoq54+J1ticmFnXSc7Civoq6A+J1tub2lzeV0nOwor6KuhPidbcG9zdGh1bW91cyBuYW1lXSc7Civoq6I+J1tqb2tlc10nOwor6KukPidbaG9uZXN0IHNwZWVjaF0nOwor6KumPidbY2FyZWZ1bF0nOwor6KunPidbaGFybW9uaXplXSc7Civoq6s+J1tyZW1vbnN0cmF0ZV0nOwor6KutPidbcHJvY2xhaW1dJzsKK+irrj4nW2NvbnN1bHRdJzsKK+irsT4nW2NvbmNlYWxdJzsKK+irsz4nW3ZlcnNlZCBpbl0nOwor6Ku3PidbcmVjaXRlXSc7Civoq7g+J1tzZXZlcmFsXSc7Civoq7o+J1twcm92ZXJiXSc7Civoq74+J1twcm9taXNlXSc7CivorIA+J1twbGFuXSc7CivorIE+J1t2aXNpdF0nOwor6KyCPidbc2F5XSc7CivorIQ+J1tjb3B5XSc7CivorIc+J1tzdHV0dGVyXSc7CivorIw+J1tzbGFuZGVyXSc7CivorI4+J1tyaWRkbGVdJzsKK+iskD4nW2NhbG1dJzsKK+islD4nW2plZXJdJzsKK+islj4nW3Jpc2UgdXBdJzsKK+islz4nW3NsYW5kZXJdJzsKK+ismT4nW2h1bWJsZV0nOwor6KyaPidbdG8gY29uZmVyIHBvc3RodW1vdXMgdGl0bGVzXSc7CivorJs+J1tleHBsYWluXSc7CivorJ0+J1t0aGFua10nOwor6KygPidbc2luZ10nOwor6KyhPidbc2luZ10nOwor6KymPidbdCBzcGVhayBzb2Z0bHldJzsKK+isqD4nW3NjaGVtZV0nOwor6KyrPidbY2hhcmdlXSc7CivorKw+J1tlcnJvcl0nOwor6KyzPidbc2luZ10nOwor6Ky5PidbcHJ1ZGVudF0nOwor6Ky+PidbZGVjZWl2ZV0nOwor6K2BPidbbm9pc2VdJzsKK+itiT4nW3Byb29mXSc7CivorYw+J1tmYWxzZV0nOwor6K2OPidbY3VubmluZ10nOwor6K2PPidbcmlkaWN1bGVdJzsKK+itlj4nW3RvIHNsYW5kZXJdJzsKK+itmD4nW3JlY29nbml6ZV0nOwor6K2aPidbc3VybmFtZV0nOwor6K2bPidbdG8gc2xhbmRlcl0nOwor6K2cPidbcmVnaXN0ZXJdJzsKK+itnz4nW2NsYW1vcl0nOwor6K2mPidbZ3VhcmRdJzsKK+itqz4nW3RhbGthdGl2ZV0nOwor6K2sPidbbWV0YXBob3JdJzsKK+itrz4nW3RyYW5zbGF0ZV0nOwor6K2wPidbY29uc3VsdF0nOworIyLorbE+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+itsj4nW2FsbG93XSc7CivorbQ+J1tyZXByaW1hbmRdJzsKK+ittz4nW3Byb3RlY3RdJzsKK+itvT4nW2ZhbWVdJzsKK+iugD4nW3JlYWRdJzsKK+iugz4nW3ByYWlzZV0nOwor6K6KPidbY2hhbmdlXSc7Civorow+J1tmZWFzdF0nOwor6K6OPidbZW5lbXldJzsKK+iukD4nW2VuZW15XSc7CivorpI+J1tzbGFuZGVyXSc7CivorpM+J1thbGxvd10nOwor6K6WPidbcHJvcGhlY3ldJzsKK+iumT4nW2NoZWVyXSc7Civorpo+J1twcmFpc2VdJzsKK+iwtz4nW3ZhbGxleV0nOwor6LC6PidbdGhlIG1vdXRoIG9mIGEgdmFsbGV5XSc7CivosL8+J1t2YWxsZXldJzsKK+ixgT4nW29wZW4gdXBdJzsKK+ixhj4nW2JlYW5zXSc7CivosYg+J1tob3c/IHdoYXQ/XSc7CivosYo+J1thYnVuZGFudF0nOwor6LGMPidbcGVhc10nOwor6LGOPidbdmVydGljYWxdJzsKK+ixkD4nW2FidW5kYW50XSc7CivosZU+J1twaWdzXSc7CivosZo+J1tzbWFsbCBwaWddJzsKK+ixoT4nW2VsZXBoYW50XSc7CivosaI+J1tkb21lc3RpYyBhbmltYWxzXSc7Civosao+J1ticmF2ZV0nOwor6LGrPidbcmVsYXhlZF0nOwor6LGsPidbcGlnXSc7Civosbg+J1tyYWRpY2FsIDE1M10nOwor6LG5PidbbGVvcGFyZF0nOwor6LG6Pidbd29sZl0nOwor6LG8PidbZm94XSc7CivosoI+J1ttYXJ0ZW5dJzsKK+iyhT4nW2JyYXZlXSc7Civosok+J1tiYWRnZXJdJzsKK+iyij4nW2xlb3BhcmRdJzsKK+iyjD4nW2NvdW50ZW5hbmNlXSc7Civoso0+J1thIGZveC1saWtlIGFuaW1hbF0nOwor6LKOPidbbGlvbl0nOwor6LKUPidbZm94XSc7Civospg+J1t0aGUgcGFudGhlcl0nOwor6LKdPidbc2VhIHNoZWxsXSc7Civosp4+J1t2aXJ0dW91c10nOwor6LKgPidbbG9hZF0nOwor6LKhPidbd2VhbHRoXSc7CivosqI+J1tvZmZlciB0cmlidXRlXSc7Civosqc+J1twb29yXSc7Civosqg+J1tnb29kc10nOwor6LKpPidbcGVkZGxlcl0nOwor6LKqPidbZ3JlZWR5XSc7Civosqs+J1tzdHJpbmcgb2YgMTAwMCBjb2luc10nOwor6LKsPidbb25lJydzIHJlc3BvbnNpYmlsaXR5XSc7Civosq0+J1ttYXR0ZXJdJzsKK+iyrj4nW251bWJlciB0d29dJzsKK+iyrz4nW3N0b3JlXSc7CivosrA+J1tib3Jyb3ddJzsKK+iysj4nW3Byb3BlcnR5XSc7CivosrM+J1tudW1iZXIgdHdvXSc7CivosrQ+J1tleHBlbnNpdmVdJzsKK+iytj4nW2RlY3JlYXNlXSc7Civosrc+J1tidXldJzsKK+iyuD4nW2xlbmRdJzsKK+iyuz4nW2V4cGVuc2VzXSc7Civosrw+J1twYXN0ZSB0b10nOwor6LK9PidbZ2l2ZSB0b10nOwor6LK/PidbdHJhZGVdJzsKK+izgD4nW2NvbmdyYXR1bGF0ZV0nOwor6LOBPidbZm9yZ2UgYWhlYWRdJzsKK+izgj4nW2JyaWJlXSc7Civos4M+J1tyZW50XSc7Civos4Q+J1ticmliZV0nOwor6LOHPidbcHJvcGVydHldJzsKK+iziD4nW3N1cm5hbWVdJzsKK+izij4nW3RoaWVmXSc7Civos40+J1tib290eV0nOwor6LOOPidbbWVhbl0nOwor6LORPidbcmVsaWV2ZV0nOwor6LOTPidbZ3Vlc3RdJzsKK+izmj4nW2dpdmVdJzsKK+izmz4nW2hlbHBdJzsKK+iznD4nW2dpdmVdJzsKK+iznj4nW3Jld2FyZF0nOwor6LOgPidbaW5kZW1uaWZ5XSc7Civos6I+J1t2aXJ0dW91c10nOwor6LOjPidbc2VsbF0nOwor6LOkPidbbWVhbl0nOwor6LOmPidbdGF4XSc7Civos6o+J1ttYXR0ZXJdJzsKK+izrT4nW2JldF0nOwor6LO6PidbbWFrZSBtb25leV0nOwor6LO7PidbZ2lmdCBvZiBtb25leSBoZWxwIHBheSBmdW5lcmFsXSc7Civos7w+J1tidXldJzsKK+izvT4nW2NvbXBldGVdJzsKK+i0hD4nW2dpZnQgc3VwZXJpb3JdJzsKK+i0hT4nW3VubmVjZXNzYXJ5XSc7CivotIc+J1thZmZhYmxlXSc7CivotIg+J1tnaXZlIHByZXNlbnRdJzsKK+i0ij4nW2hlbHBdJzsKK+i0iz4nW2ZhbHNlXSc7CivotI0+J1tzdXBwb3J0XSc7CivotI8+J1t3aW5dJzsKK+i0kD4nW2ZhcmV3ZWxsIHByZXNlbnRdJzsKK+i0kz4nW2Jvb3R5XSc7CivotJQ+J1tzdHJvbmddJzsKK+i0lj4nW2J1eV0nOwor6LWkPidbcmVkXSc7CivotaY+J1tmb3JnaXZlXSc7Civotac+J1tibHVzaF0nOwor6LWrPidbYnJpZ2h0XSc7Civota0+J1tyZWRkaXNoIGJyb3duXSc7CivotbA+J1t3YWxrXSc7CivotbE+J1t3YWxrXSc7CivotbM+J1tncmFuZF0nOwor6LW0PidbZ28gdG9dJzsKK+i1tz4nW3Jpc2VdJzsKK+i2gT4nW3Rha2UgYWR2YW50YWdlIG9mXSc7CivotoU+J1tqdW1wIG92ZXJdJzsKK+i2ij4nW2V4Y2VlZF0nOwor6LaZPidbc3VybmFtZV0nOwor6LajPidbd2hhdCBhdHRyYWN0cyBvbmUnJ3MgYXR0ZW50aW9uXSc7Civotqg+J1toYXN0ZW5dJzsKK+i2sz4nW2Zvb3RdJzsKK+i2uj4nW3NpdCBjcm9zcy1sZWdnZWRdJzsKK+i2vj4nW3RvZV0nOwor6LeCPidbY3JlZXBpbmddJzsKK+i3iz4nW2dvIGJ5IGZvb3RdJzsKK+i3jD4nW3N0dW1ibGVdJzsKK+i3jz4nW3NpdCBjcm9zcy1sZWdnZWRdJzsKK+i3lj4nW3NvbGUgKG9mIHRoZSBmb290KV0nOwor6LeaPidbc3RhZ2dlcl0nOwor6LebPidbbGFtZV0nOwor6LedPidbZGlzdGFuY2VdJzsKK+i3nz4nW2hlZWxdJzsKK+i3oT4nW3NlYXJjaF0nOwor6LejPidbYmFyZSBmb290ZWRdJzsKK+i3qD4nW3N0cmFkZGxlXSc7Civot6o+J1trbmVlbF0nOwor6LerPidbc291bmQgb2YgZm9vdHN0ZXBzXSc7Civot68+J1tyb2FkXSc7Civot7M+J1tqdW1wXSc7Civot7U+J1t0cmFtcGxlXSc7Civot7w+J1tiZW50XSc7CisjIui3vz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6LiIPidbbmVnbGVjdF0nOwor6LiJPidbaG9wXSc7CivouIo+J1tsZWFwXSc7CivouI8+J1tzdGVwIG9uXSc7CivouJA+J1t0cmFtcGxlXSc7CivouJ0+J1thbmtsZV0nOwor6LiePidbY3JvdWNoXSc7CivouJ8+J1toZXNpdGF0ZV0nOwor6LiqPidbZm9vdHByaW50c10nOwor6LiwPidbZXhjZWVkXSc7CivouLQ+J1tsZWFwXSc7CivouLU+J1toZWVsXSc7CivouYI+J1t0cmFtcGxlIHVuZGVyIGZvb3RdJzsKK+i5hD4nW2hvb2ZdJzsKK+i5hz4nW2xhbWVdJzsKK+i5iD4nW3N0YW1wIGZlZXRdJzsKK+i5iT4nW2Vycm9yXSc7CivouYo+J1tmb290cGF0aF0nOwor6LmMPidbd2FsayByYXBpZGx5XSc7CivouZA+J1t0YWtlIHNob3J0IHN0ZXBzXSc7CivouZU+J1tjbGVhciB3YXldJzsKK+i5mT4nW3VyZ2VudF0nOwor6LmfPidbdHJhY2VdJzsKK+i5oD4nW3N0ZXAgb25dJzsKK+i5oz4nW3RvIGp1bXAgb3Zlcl0nOwor6LmkPidbZm9vdHByaW50c10nOwor6LmyPidbc3F1YXRdJzsKK+i5tD4nW2tpY2tdJzsKK+i5tj4nW3N0dW1ibGVdJzsKK+i5vD4nW3dlYmJlZCBmZWV0IG9mIHdhdGVyZm93bF0nOwor6LqBPidbdGVuc2VdJzsKK+i6hD4nW2NyaXBwbGVdJzsKK+i6hT4nW3dhbGsgY2FyZWZ1bGx5XSc7Civouoc+J1toZXNpdGF0ZV0nOwor6LqKPidbaGVzaXRhdGVdJzsKK+i6iz4nW2FzY2VuZF0nOwor6LqNPidbc2tpcF0nOwor6LqRPidbd2F2ZXJdJzsKK+i6kz4nW3N0dW1ibGVdJzsKK+i6lD4nW2ZvbGxvdyBpbl0nOwor6LqZPidbdHJhbXBsZSBkb3duXSc7CivouqE+J1t0cmVhZF0nOwor6LqqPidbdHJhbXBsZSBkb3duXSc7Civouqs+J1tib2R5XSc7Civouqw+J1tib2R5XSc7Civouq8+J1tib2R5XSc7CivourA+J1tib2R5XSc7CivourE+J1toaWRlXSc7CisjIui6uj4nW2xpZSBkb3duXSciLAorIyLou4Q+J1t0byBnb3Zlcm5dJyIsCivou4Y+J1tib2R5XSc7CisjIui7hj4nW2JvZHldJyIsCivou4o+J1tjYXJ0XSc7Civou4s+J1tjcnVzaCBieSB3ZWlnaHRdJzsKK+i7jD4nW3RyYWNrXSc7Civou40+J1thcm15XSc7Civou5I+J1tjYXJyaWFnZV0nOwor6LubPidbeW9rZV0nOwor6LufPidbc29mdF0nOwor6LuiPidbc2hpZnRdJzsKK+i7oz4nW3J1bWJsZV0nOwor6LurPidbY3Jvc3MgYm9hcmQgYXQgcmVhciBvZiBjYXJyaWFnZV0nOwor6Lu4PidbYXhsZV0nOwor6Lu7PidbYXhsZV0nOwor6Lu8PidbcnVzaCBmb3J0aF0nOwor6Lu9PidbbGlnaHRdJzsKK+i7vj4nW2hvcml6b250YWwgd29vZGVuIGJhciBpbiBmcm9udCBvZiBhIHNlZGFuIGNoYWlyXSc7CivovIM+J1tjb21wYXJlXSc7CivovIU+J1tjaGFyaW90XSc7CivovIk+J1tsb2FkXSc7CivovIo+J1tsb3cgcmVhciBwb3J0aW9uIG9mIGNhcnRdJzsKK+i8jD4nW251bWVyYXJ5IGFkanVuY3QgZm9yIHZlaGljbGVzXSc7CivovJI+J1tzaWRlcyBvZiBjaGFyaW90IHdoZXJlIHdlYXBvbnNdJzsKK+i8kz4nW21vdXJuXSc7CivovJQ+J1tjaGVlayBib25lXSc7CivovJU+J1tsaWdodF0nOwor6LyZPidbc2lkZXMgb2YgY2hhcmlvdCB3ZXJlIHdlYXBvbnNdJzsKK+i8mz4nW251bWVyYXJ5IGFkanVuY3QgZm9yIHZlaGljbGVzXSc7CivovJw+J1tzdXBwbHkgY2FydF0nOwor6LydPidbYnJpZ2h0bmVzc10nOwor6LyfPidbc3RvcF0nOwor6LymPidbaGFuZC1jYXJ0XSc7CivovKk+J1tnZW5lcmF0aW9uXSc7CivovKo+J1t3aGVlbF0nOwor6LyvPidbZ2F0aGVyIHVwXSc7CivovLM+J1todWJzIG9mIHdoZWVsXSc7CivovLg+J1t0cmFuc3BvcnRdJzsKK+i8uT4nW3R3byBwaWVjZXMgb2Ygd29vZCB1bmRlcm5lYXRoIGNhXSc7CivovLs+J1tzcG9rZXMgb2Ygd2hlZWxdJzsKK+i8vj4nW3R1cm4gb3Zlcl0nOwor6Ly/PidbY2FydF0nOwor6L2CPidbaHViIG9mIHdoZWVsXSc7CivovYQ+J1tsaW5jaHBpbiBvZiB3aGVlbF0nOwor6L2FPidbYXhsZV0nOwor6L2GPidbd2luZGxhc3NdJzsKK+i9iT4nW3NoaWZ0XSc7CivovYw+J1tzbGVkXSc7CivovY0+J1t3YWdvbiBydXRzXSc7CivovY4+J1tzZWRhbi1jaGFpcl0nOwor6L2XPidbZmFpbF0nOwor6L2cPidbaGVhcnNlXSc7CivovZ8+J1tydW1ibGVdJzsKK+i9oT4nW2JyaWRsZSBvZiBob3JzZV0nOwor6L2iPidbcnVuIG92ZXIgc29tZXRoaW5nIHdpdGggdmVoaWNsZV0nOworIyLovaM+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+i9pD4nW3B1bGxleV0nOwor6L6bPidbYml0dGVyXSc7Civovpw+J1tjcmltZV0nOwor6L6ePidbd29yZHNdJzsKK+i+nz4nW2xhd10nOwor6L6jPidbcGVwcGVyeV0nOwor6L6nPidbbWFuYWdlXSc7Civovqg+J1tkaXN0aW5ndWlzaF0nOwor6L6tPidbd29yZHNdJzsKK+i+rj4nW2JyYWlkXSc7Civovq8+J1tkaXNwdXRlXSc7CivovrA+J1tlYXJseSBtb3JuaW5nXSc7CivovrE+J1todW1pbGlhdGVdJzsKK+i+sj4nW2FncmljdWx0dXJlXSc7Civovrc+J1tzbW9vdGhdJzsKK+i+uj4nW2VkZ2VdJzsKK+i+uz4nW2Nyb3Nzcm9hZHNdJzsKK+i+vD4nW2Nyb3dkIGludG9dJzsKK+i+vz4nW2ZvbGxvd10nOwor6L+CPidbZG9jdHJpbmFpcmVdJzsKK+i/hD4nW2V4dGVuZF0nOwor6L+FPidbcXVpY2tdJzsKK+i/jj4nW3JlY2VpdmVdJzsKK+i/kT4nW25lYXJdJzsKK+i/lD4nW3JldHVybl0nOwor6L+aPidbdmVyeV0nOwor6L+iPidbZmFyXSc7Civov6U+J1tkaXN0YW50XSc7Civov6Y+J1tjaGFyYWN0ZXIgZm9yIHRyYW5zbGl0ZXJhdGlvbl0nOwor6L+pPidbYmUgbmVhcl0nOwor6L+qPidbZW5saWdodGVuXSc7Civov6s+J1tjb2VyY2VdJzsKK+i/rT4nW3JlcGVhdGVkbHldJzsKK+i/rz4nW2VzY2FwZV0nOwor6L+wPidbbmFycmF0ZV0nOwor6L+0PidbcmV2b2x2ZV0nOwor6L+3PidbYmV3aXRjaF0nOwor6L+4PidbZ3VzaCBvdXRdJzsKK+i/uT4nW3RyYWNlc10nOwor6L+6PidbdGhlbl0nOwor6L+9PidbcHVyc3VlXSc7CivpgIA+J1tzdGVwIGJhY2tdJzsKK+mAgT4nW3NlZSBvZmZdJzsKK+mAgz4nW2VzY2FwZV0nOwor6YCFPidbbWVldCB1bmV4cGVjdGVkbHldJzsKK+mAhj4nW2Rpc29iZXldJzsKK+mAiz4nW2ZsZWVdJzsKK+mAjT4nW3JhbWJsZV0nOwor6YCOPidbc3Ryb25nXSc7CivpgI8+J1twZW5ldHJhdGVdJzsKK+mAkD4nW2NoYXNlXSc7CivpgJE+J1tjb2xsZWN0XSc7CivpgJM+J1toYW5kIG92ZXJdJzsKK+mAlD4nW3dheV0nOwor6YCVPidbcGFzcyBieV0nOwor6YCWPidbZmFyXSc7CivpgJc+J1t0ZW1wdF0nOwor6YCZPidbdGhpc10nOwor6YCaPidbcGFzcyB0aHJvdWdoXSc7CivpgJ0+J1twYXNzIGF3YXldJzsKK+mAnj4nW2luZHVsZ2Ugb25lc2VsZl0nOwor6YCfPidbcXVpY2tdJzsKK+mAoD4nW2NvbnN0cnVjdF0nOwor6YChPidbcmV0cmVhdF0nOwor6YCiPidbY29tZSB1cG9uXSc7CivpgKM+J1tqb2luXSc7CisjIumApj4nW21lYW5kZXJpbmddJyIsCivpgK4+J1tzZWl6ZV0nOwor6YCxPidbd2Vla10nOwor6YCyPidbYWR2YW5jZV0nOwor6YC1PidbdGhvcm91Z2hmYXJlXSc7CivpgLY+J1t3aW5kaW5nXSc7CivpgLg+J1tmbGVlXSc7CivpgLk+J1thcnJpdmUgYXRdJzsKK+mAvD4nW2NvbXBlbF0nOwor6YC+PidbZ28gb3Zlcl0nOwor6YGBPidbaGlkZV0nOwor6YGCPidbY29tcGx5IHdpdGhdJzsKK+mBhT4nW2xhdGVdJzsKK+mBhz4nW21lZXRdJzsKK+mBiT4nW3NweV0nOwor6YGKPidbd2FuZGVyXSc7CivpgYs+J1tsdWNrXSc7CivpgY0+J1tldmVyeXdoZXJlXSc7CivpgY4+J1twYXNzXSc7CivpgY8+J1tzdG9wXSc7CivpgZA+J1thZmFyXSc7CivpgZE+J1tsZWlzdXJlXSc7CivpgZI+J1tzdHJvbmddJzsKK+mBkz4nW3BhdGhdJzsKK+mBlD4nW2Fycml2ZSBhdF0nOwor6YGVPidbZGlzb2JleV0nOworIyLpgZU+J1tkaXNvYmV5XSciLAor6YGYPidbdG8gbWVldF0nOwor6YGZPidbZmFyIGF3YXldJzsKK+mBnD4nW2h1bWJsZV0nOwor6YGePidbaGFuZCBvdmVyXSc7CivpgaA+J1tkaXN0YW50XSc7CivpgaE+J1tnbyB1cHN0cmVhbV0nOwor6YGjPidbc2VuZF0nOwor6YGlPidbZmFyIGF3YXldJzsKK+mBqD4nW3JhbWJsZV0nOwor6YGpPidbbWF0Y2hdJzsKK+mBrT4nW2NvbWUgYWNyb3NzXSc7Civpga4+J1tjb3Zlcl0nOwor6YGvPidbZGVjZWl2ZV0nOwor6YGyPidbbGF0ZV0nOwor6YG1Pidbb2JleV0nOwor6YG2PidbZW50d2luZV0nOwor6YG3PidbbW92ZV0nOwor6YG4PidbY2hvb3NlXSc7Civpgbo+J1tsb3NlXSc7Civpgbw+J1tkaXN0YW50XSc7Civpgb0+J1tzdWRkZW5seV0nOwor6YG/PidbYXZvaWRdJzsKK+mCgD4nW2ludml0ZV0nOwor6YKBPidbdGFrZSBhIGJpZyBzdHJpZGVdJzsKK+mCgj4nW3VuZXhwZWN0ZWQgbWVldGluZ10nOwor6YKDPidbcHJvZm91bmRdJzsKK+mChD4nW3N0aWxsXSc7Civpgoc+J1tiZSBuZWFyXSc7Civpgok+J1tlZGdlXSc7Civpgoo+J1tlZGdlXSc7Civpgo8+J1twYXRyb2xdJzsKK+mCkT4nW2FyZWFdJzsKK+mCoz4nW3RoYXRdJzsKK+mCpj4nW25hdGlvbl0nOwor6YKoPidbdmlsbGFnZV0nOwor6YKqPidbd3JvbmddJzsKK+mCrz4nW2NpdHkgaW4gaGViZWkgcHJvdmluY2VdJzsKK+mCsT4nW3N1cm5hbWVdJzsKK+mCtT4nW3N1cm5hbWVdJzsKK+mCuD4nW29mZmljaWFsIHJlc2lkZW5jZV0nOwor6YOBPidbc3dlZXQgc21lbGxpbmddJzsKK+mDij4nW3N1YnVyYnNdJzsKK+mDjj4nW2dlbnRsZW1hbl0nOwor6YObPidbb3V0ZXIgd2FsbHMgb2YgY2l0eV0nOwor6YOhPidbYWRtaW5pc3RyYXRpdmUgZGl2aXNpb25dJzsKK+mDoj4nW3N0YXRlIGluIHRvZGF5JydzIGh1YmVpIHByb3ZpbmNlXSc7Civpg6Q+J1tjcmFja10nOwor6YOoPidbcGFydF0nOwor6YOtPidbb3V0ZXIgcGFydCAob2YgYSBjaXR5KV0nOwor6YO1PidbcG9zdGFsXSc7Civpg7c+J1tjb3VudHJ5XSc7Civpg70+J1ttZXRyb3BvbGlzXSc7CivphII+J1todWJlaSBwcm92aW5jZV0nOwor6YSSPidbbmFtZSBvZiBhbiBhbmNpZW50IHN0YXRlXSc7CivphJk+J1ttZWFuXSc7CivphK0+J1tzdGF0ZSBpbiB0b2RheScncyBoZW5hbl0nOwor6YSwPidbbmVpZ2hib3JdJzsKK+mEsj4nW2NvdW50eSBpbiBoZWJlaSBwcm9pbmNldl0nOwor6YWJPidbdGVudGggaW4gc2VyaWVzIG9mIHR3ZWx2ZSBjeWNsaWNdJzsKK+mFij4nW2RydW5rXSc7CivphYs+J1tjaGllZiBvZiB0cmliZV0nOwor6YWMPidbc2VydmUgd2luZV0nOwor6YWNPidbbWF0Y2hdJzsKK+mFjj4nW2RvdWJsZS1mZXJtZW50ZWQgd2luZV0nOwor6YWSPidbd2luZV0nOwor6YWUPidbaW50b3hpY2F0ZWRdJzsKK+mFlj4nW3dpbmUgd2l0aCBiaXJkIHBvaXNvbiBhZGRlZF0nOworIyLphZg+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mFoj4nW3RvYXN0IG9uZScncyBob3N0IHdpdGggd2luZV0nOwor6YWjPidbZW5qb3kgaW50b3hpY2FudHNdJzsKK+mFpT4nW2J1dHRlcl0nOwor6YWpPidbZHJ1bmtdJzsKK+mFqj4nW2NyZWFtXSc7Civphaw+J1t0b2FzdF0nOwor6YWyPidbaGFuZ292ZXJdJzsKKyMi6YWyPidbaGFuZ292ZXJdJyIsCivphbU+J1t5ZWFzdF0nOwor6YW3Pidbc3Ryb25nXSc7Civphbg+J1t0YXJ0XSc7CisjIumGgT4nW2Ega2luZCBvZiBncmVlbi1jb2xvcmVkIHdpbmVdJyIsCivphoc+J1tyaWNoXSc7Civphok+J1tpbnRveGljYXRlZF0nOwor6YaLPidbdmluZWdhcl0nOwor6YaNPidbZXNzZW50aWFsIG9pbCBvZiBidXR0ZXJdJzsKK+mGkD4nW3B1cmVzdCBjcmVhbV0nOwor6YaSPidbd2FrZSB1cF0nOwor6YaXPidbdG8gYnJldyBmb3IgdGhlIHNlY29uZCB0aW1lXSc7Civphpw+J1t1Z2x5IGxvb2tpbmddJzsKK+mGoj4nW21pbmNlZCBwaWNrbGVkIG1lYXRdJzsKK+mGpD4nW2FueSBqYW0tbGlrZSBvciBwYXN0ZS1saWtlIGZvb2RdJzsKK+mGqj4nW3VuY2xlYXIgd2luZV0nOwor6YarPidbY3VyZV0nOwor6YavPidbdmluZWdhcl0nOwor6Ya0Pidbc3dlZXQgd2luZV0nOwor6Ya1PidbY29udHJpYnV0ZSBmb3IgZHJpbmtzXSc7Civphrg+J1ticmV3XSc7Civphro+J1tnZXQgZHJ1bmtdJzsKK+mHgD4nW2JyZXddJzsKK+mHgT4nW3NtZWFyIHdpdGggYmxvb2QgaW4gc2FjcmlmaWNlXSc7Civph4Y+J1tkaXN0aW5ndWlzaF0nOwor6YeHPidbY29sbGVjdF0nOwor6YeIPidbaW50ZXJwcmV0ZV0nOwor6YeJPidbZ2xhemVdJzsKK+mHiz4nW2ludGVycHJldGVdJzsKK+mHjD4nW3VuaXQgb2YgZGlzdGFuY2VdJzsKK+mHjT4nW2hlYXZ5XSc7Civph44+J1tvcGVuIGNvdW50cnldJzsKK+mHjz4nW21lYXN1cmVdJzsKK+mHkD4nW21hbmFnZV0nOwor6YeRPidbZ29sZF0nOwor6YeWPidba25pZmVdJzsKK+mHmD4nW25haWxdJzsKKyMi6YebPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivph5w+J1tjYXVsZHJvbl0nOwor6YedPidbbmVlZGxlXSc7CisjIumHnz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6YehPidbY2F1bGRyb25dJzsKK+mHoz4nW2Zpc2hdJzsKK+mHpj4nW2J1dHRvbl0nOwor6YenPidbYnJhY2VsZXRdJzsKK+mHtT4nW29ybmFtZW50YWwgaGFpcnBpbl0nOworIyLph7Y+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mHvD4nW3N3b3JkXSc7CisjIumHvz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6YiNPidbYmx1bnRdJzsKK+mIjj4nW2hvb2tdJzsKK+mIkT4nW3BsYXRlXSc7CivpiJQ+J1twYXBlciBtb25leV0nOwor6YiVPidbYnV0dG9uXSc7CivpiJ4+J1t1bml0IG9mIG1lYXN1cmUgZXF1aXZhbGVudCB0aGlydF0nOwor6YipPidbZmlyZXBsYWNlXSc7CivpiKw+J1tiZWxsXSc7CivpiLQ+J1tiZWxsXSc7CivpiLc+J1tjb2JhbHRdJzsKK+mIvz4nW2hhaXJwaW5dJzsKK+mJhD4nW2lyb25dJzsKK+mJhT4nW3N0ZWVsXSc7CivpiYg+J1t0aGFsbGl1bV0nOwor6YmJPidbZGV2aWNlIGZvciBjYXJyeWluZyBhIHRyaXBvZF0nOwor6YmLPidbY2FycGVudGVyJydzIHBsYW5lXSc7CisjIumJkD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6YmXPidbcGluY2Vyc10nOwor6YmaPidbcml2ZXRdJzsKK+mJmz4nW2xlYWQgcGx1bWJ1bV0nOwor6YmePidbYnJvYWQtYXhlXSc7CivpiaI+J1tlYXJ0aGVud2FyZSBiYXNpbl0nOwor6YmkPidbaG9va10nOwor6YmmPidba2luZCBvZiBnb25nIHVzZWQgaW4gYW5jaWVudCB0aW1dJzsKK+mJsT4nW21pbmVdJzsKK+mJvj4nW3NwZWFyXSc7CivpioA+J1tzaWx2ZXJdJzsKK+mKgz4nW2FuY2llbnQgd2VhcG9uXSc7CivpioU+J1tjb3BwZXJdJzsKK+mKkT4nW21pbGxdJzsKK+mKkz4nW3dlaWdoXSc7CivpipU+J1tpcm9uXSc7CivpipY+J1t1bml0IG9mIHdlaWdodF0nOwor6YqYPidbaW5zY3JpYmVdJzsKK+mKmj4nW2xhcmdlIGhvZV0nOwor6YqbPidbc2hhcnBdJzsKK+mKnD4nW2JpdF0nOwor6YqtPidbbW9uZXldJzsKK+mKtz4nW21lbHRdJzsKK+mKuT4nW3J1c3RdJzsKK+mLjz4nW3RvbmdzXSc7Civpi5I+J1twb2ludCBvZiBzcGVhcl0nOwor6YukPidbaG9lXSc7Civpi6k+J1twb2ludCBvZiBzd29yZF0nOwor6YuqPidbc3ByZWFkIG91dF0nOwor6YutPidbc2hhcnBdJzsKK+mLsj4nW3JpdmV0XSc7Civpi7M+J1ttZWx0XSc7Civpi7g+J1thIHNhd10nOworIyLpi7o+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mLvD4nW3N0ZWVsXSc7CivpjIY+J1t0aGUgY29sb3Igb2YgYSBtaW5lcmFsXSc7CivpjI8+J1tzb2Z0IHN0ZWVsXSc7CivpjJA+J1tnaW1sZXRdJzsKK+mMmD4nW2JhbGFuY2Ugd2VpZ2h0IG9uIHNjYWxlXSc7CivpjJk+J1s4IG96XSc7CivpjJo+J1tjbGFuZ2luZyBzb3VuZF0nOwor6YygPidbc3BpbmRsZV0nOwor6YyiPidbbW9uZXldJzsKKyMi6YyjPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpjKY+J1ticm9jYWRlXSc7CivpjKg+J1thbmNob3JdJzsKK+mMqz4nW3Rpbl0nOwor6YysPidbc21lbHQgbWV0YWxzXSc7CivpjK4+J1tydW4gbWV0YWwgaW50byBjcmFja3NdJzsKK+mMrz4nW2Vycm9yXSc7CivpjLI+J1tjb3B5XSc7CisjIumMtT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAorIyLpjLo+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKKyMi6Yy7PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCisjIumNhD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6Y2LPidbY29va2luZy1wb3RdJzsKK+mNjT4nW3BsYXRlXSc7CivpjZQ+J1toaWdoXSc7CisjIumNlj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6Y2bPidbZm9yZ2UgbWV0YWxdJzsKKyMi6Y2cPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpjaA+J1t3ZWFwb25dJzsKK+mNrD4nW3Nob3ZlbF0nOwor6Y2uPidbYnJhc3NdJzsKK+mNtT4nW2Rvb3IgYm9sdF0nOwor6Y28PidbbmVlZGxlXSc7Civpjb4+J1tjdXBdJzsKK+mOjD4nW3NpY2tsZV0nOwor6Y6UPidbZnVzZV0nOwor6Y6WPidbbG9ja10nOwor6Y6XPidbcmlmbGVdJzsKK+mOmj4nW2hhbW1lcl0nOwor6Y6nPidbYXJtb3JdJzsKK+mOrD4nW3N0b3ZlXSc7Civpjq0+J1t0b3duXSc7Civpjq4+J1t0b3duXSc7CivpjrA+J1ttZWFzdXJlIG9mIHdlaWdodCBmb3IgZ29sZF0nOworIyLpjrk+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mPgz4nW2Fycm93aGVhZF0nOwor6Y+IPidbY2hhaW5dJzsKK+mPkD4nW3B1cmUgZ29sZF0nOwor6Y+RPidbZHlzcHJvc2l1bSB0aGUgYmFyYiBvZiBhbiBhcnJvd10nOwor6Y+WPidbZmlnaHQgZW5kXSc7Civpj5c+J1tzdHJpa2VdJzsKK+mPmD4nW3RpbmtsZV0nOwor6Y+dPidbdHJvd2VsXSc7Civpj6E+J1ttaXJyb3JdJzsKK+mPpD4nW2NhcnZlXSc7Civpj6U+J1tydXN0XSc7Civpj6g+J1tlbmdyYXZpbmcgdG9vbF0nOwor6ZCDPidbY3ltYmFsc10nOwor6ZCHPidbdmFuYWRpdW1dJzsKK+mQkD4nW2ZldHRlcnNdJzsKK+mQkz4nW2ZlcnJ1bGVdJzsKK+mQlD4nW2RhZ2dlcl0nOwor6ZCYPidbY2xvY2tdJzsKK+mQmT4nW2xhbXBdJzsKK+mQmj4nW3NvZnQgc3RlZWxdJzsKK+mQoT4nW2lyb25dJzsKK+mQqz4nW2VuZ3JhdmluZyB0b29sXSc7CivpkLU+J1tpcm9uXSc7CivpkLY+J1ttZXRhbCByaW5nXSc7CivpkLg+J1tiZWxsXSc7CivpkLo+J1tmcnlpbmcgcGFuXSc7CisjIumRgT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6ZGEPidbbWVsdF0nOwor6ZGRPidbbWlycm9yXSc7CivpkZI+J1ttaXJyb3JdJzsKK+mRkz4nW3NwZWFyXSc7CivpkZo+J1tkcmlsbF0nOwor6ZGbPidbbWluZV0nOwor6ZGePidbc29sZGVyXSc7CivpkaA+J1ttZWx0XSc7CivpkaI+J1tmaWxlXSc7Civpkao+J1tmaXJlcGxhY2VdJzsKK+mRsD4nW2tleV0nOwor6ZG1PidbamFyXSc7Civpkbc+J1t0d2VlemVyc10nOwor6ZG8PidbZ29uZ10nOwor6ZG9PidbZHJpbGxdJzsKK+mRvj4nW2JlbGxzIGh1bmcgb24gaG9yc2VdJzsKK+mRvz4nW2NoaXNlbF0nOwor6ZKBPidbYSBtYXR0b2NrXSc7Civplbc+J1tsb25nXSc7CivploA+J1tnYXRlXSc7CivploI+J1tib2x0XSc7CivploM+J1tmbGFzaF0nOwor6ZaHPidbc2h1dF0nOwor6ZaJPidbc2h1dF0nOworIyLplok+J1tzaHV0XSciLAor6ZaLPidbb3Blbl0nOwor6ZaPPidbaW50ZXJjYWxhcnldJzsKK+mWkT4nW2ZlbmNlXSc7CivplpM+J1tpbnRlcnZhbF0nOwor6ZaUPidbbW91cm5dJzsKKyMi6ZaUPidbbW91cm5dJyIsCivplpg+J1tzbHVpY2VdJzsKK+mWmT4nW3F1YXJyZWxdJzsKK+mWoD4nW2ludGVyY2FsYXJ5XSc7CivplqI+J1tmcm9udGllciBwYXNzXSc7CivplqM+J1tjaGFtYmVyXSc7CivplqQ+J1tzbWFsbCBzaWRlIGRvb3JdJzsKK+mWpT4nW3Bvd2VyZnVsIGFuZCBpbmZsdWVudGlhbCBncm91cF0nOwor6ZanPidbYm9pc3Rlcm91c10nOwor6ZaoPidbc21hbGwgZW50cmFuY2VdJzsKK+mWrT4nW3ZpbGxhZ2Ugb2YgdHdlbnR5LWZpdmUgZmFtaWxpZXNdJzsKK+mWsj4nW2V4YW1pbmVdJzsKK+mWuT4nW2Nhc3RyYXRlXSc7Civplrs+J1t2aWxsYWdlIGdhdGVdJzsKK+mWvD4nW2Jsb2NrXSc7Civplr4+J1t0aHJlc2hvbGRdJzsKK+mXgz4nW2Fsb25lXSc7Civpl4c+J1tjbG9zZV0nOwor6ZeKPidbYnJvYWRdJzsKK+mXjD4nW2Rvb3Igc2NyZWVuXSc7Civpl40+J1t0b3dlciBvdmVyIGNpdHkgZ2F0ZV0nOwor6ZeUPidbY2xvc2VdJzsKK+mXlT4nW3dhdGNoIHRvd2VyXSc7Civpl5Y+J1tydXNoIGluXSc7Civpl5g+J1tzdHJ1Z2dsZV0nOwor6ZecPidbZnJvbnRpZXIgcGFzc10nOwor6ZehPidbZXhwbGFpbl0nOwor6ZeiPidbb3Blbl0nOwor6ZelPidbZG9vcl0nOwor6ZicPidbbW91bmRdJzsKK+mYoT4nW2Zvb3RwYXRocyBiZXR3ZWVuIGZpZWxkc10nOwor6ZioPidbaW4gZGlzdHJlc3NdJzsKK+mYqj4nW2hpbGxzaWRlIGZhcm1sYW5kXSc7CivpmK4+J1thbmNpZW50IG11c2ljYWwgaW5zdHJ1bWVudDogc3VybmFtZV0nOwor6ZivPidbZm91bmRhdGlvbl0nOwor6ZiyPidbZGVmZW5kXSc7CivpmLs+J1tpbXBlZGVdJzsKK+mYvz4nW3ByZWZpeCB0byBuYW1lXSc7CivpmYA+J1tzdGVlcCBiYW5rXSc7CivpmYI+J1tkYW1dJzsKK+mZhD4nW2FkaGVyZSB0b10nOwor6ZmLPidbbmFycm93XSc7CivpmYw+J1tmb290IHBhdGggYmV0d2VlbiByaWNlIGZpZWxkc10nOwor6ZmNPidbZGVzY2VuZF0nOworIyLpmY0+J1tkZXNjZW5kXSciLAor6ZmQPidbYm91bmRhcnldJzsKK+mZmz4nW3N0ZXBzIGxlYWRpbmcgdGhyb25lXSc7CivpmZw+J1tuYXJyb3ddJzsKK+mZnT4nW21vdW50YWluIHBhc3NdJzsKK+mZnj4nW3Byb21vdGVdJzsKK+mZnz4nW2NsaW1iXSc7CivpmaI+J1tjb3VydHlhcmRdJzsKK+mZoz4nW2NvbHVtbl0nOwor6ZmkPidbZWxpbWluYXRlXSc7CivpmaU+J1tzdWJtZXJnZV0nOworIyLpmaU+J1tzdWJtZXJnZV0nIiwKK+mZqj4nW2FjY29tcGFueV0nOwor6ZmsPidbY29ybmVyXSc7CivpmbA+J1tcImZlbWFsZVwiIHByaW5jaXBsZV0nOwor6ZmyPidbZnJvbnRpZXJdJzsKK+mZsz4nW2V4aGliaXRdJzsKK+mZtT4nW2hpbGxdJzsKK+mZtj4nW3BvdHRlcnldJzsKK+mZtz4nW3N1Ym1lcmdlXSc7Civpmbg+J1tsYW5kXSc7Civpmbo+J1tuYXJyb3cgcGFzc10nOwor6Zm9PidbXCJtYWxlXCIgcHJpbmNpcGxlXSc7CivpmoU+J1tjb3JuZXJdJzsKK+mahj4nW3Byb3NwZXJvdXNdJzsKK+maiD4nW2NvdmVdJzsKK+maij4nW3RlYW1dJzsKK+maiz4nW1N1aSBkeW5hc3R5XSc7Civpmo0+J1tkcnkgZGl0Y2hdJzsKK+majj4nW3N0YWlyc10nOwor6ZqPPidbZm9sbG93XSc7CivpmpQ+J1tzZXBhcmF0ZV0nOwor6ZqVPidbZmFsbF0nOwor6ZqXPidbaGlnaF0nOwor6ZqYPidbbmFycm93XSc7Civpmpk+J1tjcmFja10nOwor6ZqbPidbYm9yZGVyXSc7Civpmpw+J1tzZXBhcmF0ZV0nOworIyLpmpw+J1tzZXBhcmF0ZV0nIiwKK+maoz4nW25laWdoYm9yXSc7Civpmqc+J1t0dW5uZWxdJzsKK+maqD4nW2ZvbGxvd10nOwor6ZqqPidbbmFycm93IHBhc3NdJzsKK+masD4nW2xvd10nOwor6ZqxPidbaGlkZV0nOwor6ZqyPidbc3RhbGxpb25dJzsKK+matD4nW21vdW50YWluIGxvY2F0ZWQgYmV0d2VlbiBzaGFhbnhpXSc7CivpmrY+J1tzdWJzZXJ2aWVudF0nOwor6Zq3PidbYmUgc3Vic2VydmllbnQgdG9dJzsKK+mauD4nW2JlIHN1YnNlcnZpZW50IHRvXSc7Civpmrk+J1tiaXJkXSc7Civpmrs+J1tzaW5nbGVdJzsKK+mavD4nW2FxdWlsaW5lIChub3NlKV0nOwor6ZuAPidbc3BhcnJvd10nOwor6ZuBPidbd2lsZCBnb29zZV0nOwor6ZuEPidbbWFsZSBvZiBzcGVjaWVzXSc7Civpm4U+J1tlbGVnYW50XSc7Civpm4Y+J1thc3NlbWJsZV0nOwor6ZuHPidbZW1wbG95XSc7Civpm4k+J1twaGVhc2FudF0nOwor6ZuLPidbc3VwZXJpb3JdJzsKK+mbjD4nW2ZlbWFsZV0nOwor6ZuNPidbaGFybW9ueV0nOwor6ZuOPidbb3NwcmV5XSc7Civpm5E+J1ttaXhlZF0nOwor6ZuVPidbZW5ncmF2ZV0nOwor6ZuWPidbYWx0aG91Z2hdJzsKK+mbmT4nW3NldCBvZiB0d29dJzsKK+mbmz4nW2NoaWNrXSc7Civpm5w+J1ttaXhlZF0nOwor6ZuiPidbbGVhdmVdJzsKK+mboz4nW2RpZmZpY3VsdF0nOwor6ZuoPidbcmFpbl0nOwor6ZuqPidbc25vd10nOworIyLpm6s+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mbsD4nW2F0bW9zcGhlcmVdJzsKK+mbsj4nW2Nsb3Vkc10nOwor6Zu2PidbemVyb10nOwor6Zu3PidbdGh1bmRlcl0nOwor6Zu5PidbaGFpbF0nOwor6Zu7PidbZWxlY3RyaWNpdHldJzsKK+mcgD4nW25lZWRdJzsKK+mchD4nW3NreV0nOwor6ZyGPidbYSBzdWRkZW4gcGVhbCBvZiB0aHVuZGVyXSc7CivpnIc+J1tzaGFrZV0nOwor6ZyIPidbdG9ycmVudGlhbCByYWluc10nOwor6ZyKPidbc3Bpcml0XSc7CivpnI0+J1txdWlja2x5XSc7CivpnI4+J1tsaWdodCByYWluXSc7CivpnI8+J1tmYWxsaW5nIG9mIHNub3cgYW5kIHJhaW5dJzsKK+mckT4nW2JlIG1vaXN0ZW5lZF0nOwor6ZyTPidbcmFpbmJvd10nOwor6ZyWPidbbG9uZyBzcGVsbCBvZiByYWluXSc7CivpnJk+J1tzbGVldF0nOwor6ZycPidbZnJvc3RdJzsKK+mcnj4nW3Jvc3kgY2xvdWRzXSc7CivpnKQ+J1tkcmlwXSc7CivpnKc+J1tmb2ddJzsKK+mcqj4nW2xvbmcgYW5kIGhlYXZ5IHJhaW5dJzsKK+mcsD4nW2hhaWxdJzsKK+mcsj4nW2Rld10nOwor6Zy4PidbcnVsZSBieSBtaWdodCByYXRoZXIgdGhhbiByaWdodF0nOwor6Zy5PidbdGh1bmRlcl0nOwor6Zy9PidbY2xlYXIgdXAgYWZ0ZXIgcmFpbiBjZWFzZSBiZSBhbmddJzsKK+mcvj4nW21pc3R5XSc7CivpnYI+J1t0aHVuZGVyY2xhcF0nOwor6Z2EPidbY2xvdWR5IHNreV0nOwor6Z2GPidbY2xvdWR5IHNreV0nOwor6Z2IPidbc3Bpcml0XSc7CivpnYk+J1tjbG91ZHkgc2t5XSc7CivpnZI+J1tibHVlXSc7CivpnZY+J1twYWNpZnldJzsKK+mdmT4nW3F1aWV0XSc7CivpnZw+J1txdWlldF0nOwor6Z2ePidbbm90XSc7CivpnaA+J1tsZWFuIG9uXSc7CivpnaE+J1tkaXZpZGVdJzsKK+mdoj4nW2ZhY2VdJzsKKyMi6Z2kPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpnaY+J1t0aW1pZF0nOwor6Z2oPidbZGltcGxlc10nOwor6Z2pPidbbGVhdGhlcl0nOwor6Z2rPidbc3Ryb25nIGFuZCBwbGlhYmxlXSc7Civpna0+J1tzdHJvbmcgYW5kIHBsaWFibGVdJzsKK+mdsT4nW3N0cm9uZyBhbmQgcGxpYWJsZV0nOwor6Z20PidbYm9vdHNdJzsKKyMi6Z25PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpnbo+J1tzdG9ja2luZ10nOwor6Z28PidbdGFydGFyc10nOworIyLpnoE+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mehD4nW3RvIHdvcmsgaGlkZXNdJzsKK+mehT4nW2xlYXRoZXIgc3RyYXAgb3ZlciBob3JzZScncyBuZWNrXSc7CisjIumehT4nW2xlYXRoZXIgc3RyYXAgb3ZlciBob3JzZScncyBuZWNrXSciLAor6Z6LPidbc2hvZXNdJzsKK+mejT4nW3NhZGRsZV0nOwor6Z6PPidbYmluZF0nOworIyLpno8+J1tiaW5kXSciLAor6Z6YPidbc2NhYmJhcmRdJzsKKyMi6Z6cPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpnqA+J1tib3ddJzsKK+meoz4nW3Rhbl0nOwor6Z6mPidbbGVhdGhlciBzdGFwXSc7Civpnqg+J1t0cmliZV0nOwor6Z6rPidbaW50ZXJyb2dhdGVdJzsKK+merT4nW3doaXBdJzsKKyMi6Z6zPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpnrQ+J1tzYWRkbGUgdXAgaG9yc2VdJzsKK+mfgz4nW3RhdGFyc10nOwor6Z+GPidbc3dpbmddJzsKK+mfiD4nW3NvY2tzXSc7Civpn4s+J1t0YW5uZWQgbGVhdGhlcl0nOwor6Z+TPidbZmVuY2VdJzsKK+mfnD4nW3NoZWF0aF0nOwor6Z+tPidbc2NhbGxpb25dJzsKK+mfrj4nW3NjYWxsaW9uXSc7Civpn7I+J1ticmVhayBvciBzbWFzaCBpbnRvIHBpZWNlc10nOwor6Z+zPidbc291bmRdJzsKK+mftT4nW3JoeW1lXSc7Civpn7Y+J1ttdXNpYyBvZiBlbXBlcm9yIFNodW5dJzsKK+mfuz4nW3JoeW1lXSc7Civpn78+J1ttYWtlIHNvdW5kXSc7CivpoIE+J1twYWdlXSc7CivpoII+J1t0b3BdJzsKK+mggz4nW21vbWVudF0nOwor6aCFPidbbmVja10nOwor6aCGPidbb2JleV0nOwor6aCIPidbbXVzdF0nOwor6aCMPidbbGF1ZF0nOwor6aCPPidbZmx5IGRvd24gb3IgZG93bndhcmRdJzsKK+mgkD4nW3ByZXBhcmVdJzsKK+mgkT4nW29ic3RpbmF0ZV0nOwor6aCSPidbY29uZmVyXSc7CivpoJM+J1twYXVzZV0nOwor6aCXPidbbGVhbiBvbmUgc2lkZV0nOwor6aCYPidbbmVja10nOwor6aCaPidbbmVja10nOwor6aChPidbZmx5IHVwd2FyZF0nOwor6aCkPidbY2hlZWtzXSc7CivpoKw+J1tjaGVla3NdJzsKK+mgrT4nW2hlYWRdJzsKK+mgtD4nW3JpY2UgdGFzc2VsXSc7CivpoLc+J1tjaGluXSc7CivpoLg+J1tuZWNrXSc7CivpoLs+J1tmcmVxdWVudGx5XSc7CivpoLw+J1tyZWx5XSc7CivpoL0+J1tydWluZWRdJzsKK+mhhj4nW2dyYWluXSc7CivpoYs+J1tsb3dlciBwYXJ0IG9mIGZhY2VdJzsKK+mhjD4nW2ZvcmVoZWFkXSc7CivpoY0+J1tmb3JlaGVhZF0nOwor6aGOPidbamF3XSc7CivpoY8+J1tmYWNlXSc7CivpoZQ+J1tmYWNlXSc7CivpoZU+J1ttYW5pZmVzdF0nOwor6aGYPidbZGVzaXJlXSc7CivpoZs+J1t0b3BdJzsKK+mhnj4nW2NsYXNzXSc7Civpoac+J1tsb29rIGJhY2tdJzsKK+mhqz4nW3NoaXZlcl0nOwor6aGvPidbbWFuaWZlc3RdJzsKK+mhsD4nW2Zyb3duXSc7CivpobE+J1tza3VsbF0nOwor6aGzPidbdGhlIHRlbXBvcmFsIGJvbmVdJzsKK+mhtD4nW2NoZWVrIGJvbmVzXSc7Civpoqg+J1t3aW5kXSc7CisjIumiqD4nW3dpbmRdJyIsCivpoq8+J1tzb3VuZCBvZiB3aW5kXSc7CivporE+J1t0YWlwaG9vbl0nOwor6aK2PidbY3ljbG9uZV0nOwor6aODPidbd2hpcmx3aW5kXSc7Civpo4Q+J1t3aGlybHdpbmRdJzsKK+mjhj4nW3doaXJsd2luZF0nOwor6aObPidbZmx5XSc7Civpo5w+J1tmbGlwIG92ZXJdJzsKK+mjnz4nW2VhdF0nOwor6aOiPidbaHVuZ2VyXSc7Civpo6k+J1tzdHVmZmVkIGR1bXBsaW5nc10nOwor6aOrPidbc3VyZmVpdGVkXSc7Civpo60+J1tvcmRlcl0nOwor6aOuPidbZHJpbmtdJzsKK+mjrz4nW2Nvb2tlZCByaWNlXSc7Civpo7I+J1tkcmlua10nOwor6aO0Pidbc3dlZXQtbWVhdHNdJzsKK+mjvD4nW3JhaXNlIGFuaW1hbHNdJzsKK+mjvT4nW2VhdCBoZWFydGlseV0nOwor6aO+PidbZGVjb3JhdGVdJzsKK+mkgz4nW3N0dWZmZWQgZHVtcGxpbmdzXSc7CivppIU+J1tyaWNlLWNha2VzXSc7CivppIk+J1tyYXRpb25zIGFuZCBwYXkgZm9yIHNvbGRpZXJzXSc7CivppIo+J1tyYWlzZV0nOwor6aSMPidbYmFpdF0nOwor6aSQPidbZWF0XSc7CivppJI+J1todW5ncnldJzsKK+mkkz4nW2JlIGh1bmdyeV0nOwor6aSUPidbZWF0XSc7CivppJg+J1tzdXJwbHVzXSc7CisjIumknT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6aSePidbZmFyZXdlbGwgcGFydHldJzsKK+mkoD4nW3JpY2UtY2FrZXNdJzsKK+mkoT4nW3Bhc3RyeSBmaWxsaW5nXSc7CivppKQ+J1tpbmNpdGVdJzsKK+mkqD4nW3B1YmxpYyBidWlsZGluZ10nOwor6aSsPidbcG9ycmlkZ2VdJzsKK+mkrj4nW2EgbGVnZW5kYXJ5IGFuaW1hbF0nOwor6aS9PidbbWFrZSBwcmVzZW50IG9mIGZvb2RdJzsKK+mkvj4nW2Rpc3RpbGxdJzsKKyMi6aWBPidbY2FycnkgbWVhbCB0byB3b3JrZXJzIGluIGZpZWxkXSciLAor6aWFPidbc3RlYW1lZCBicmVhZF0nOwor6aWJPidbdGltZSBvZiBmYW1pbmUgb3IgY3JvcCBmYWlsdXJlXSc7CivppYs+J1tvZmZlciBmb29kIHN1cGVyaW9yXSc7CivppYw+J1tmZWVkXSc7CivppZA+J1tzcG9pbGVkXSc7CivppZE+J1tzdGFydmVdJzsKK+mlkj4nW2JvdW50aWZ1bF0nOwor6aWVPidbZ2x1dHRvbm91c10nOwor6aWXPidbaG9zdCBiYW5xdWV0XSc7CivpppY+J1toZWFkXSc7Civpppc+J1tjaGVla2JvbmVdJzsKK+mmmD4nW2N1dCBvZmYgbGVmdCBlYXJdJzsKK+mmmT4nW2ZyYWdyYW50XSc7CivppqU+J1tmcmFncmFuY2VdJzsKK+mmqD4nW2ZyYWdyYW50XSc7Civppqw+J1tob3JzZV0nOwor6aatPidbZHJpdmVdJzsKK+mmrj4nW3N1cm5hbWVdJzsKK+mmsz4nW2dvIHF1aWNrbHkgb3Igc3dpZnRseV0nOwor6aa0PidbdGFtZV0nOworIyLpprw+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mngT4nW3Zhcmljb2xvcmVkXSc7CisjIumngz4nW2dhbGxvcF0nIiwKK+mnhT4nW3JlbGF5IHN0YXRpb25dJzsKK+mnhj4nW3NwdXIgaG9yc2Ugb25dJzsKK+mniD4nW3NwdXIgaG9yc2Ugb25dJzsKK+mnkD4nW3RvIGJlIHN0YXRpb25lZCBhdF0nOwor6aeRPidbdGlyZWRdJzsKK+mnkj4nW2NvbHRdJzsKK+mnlT4nW2RyaXZlXSc7Civpp5g+J1t0aXJlZF0nOwor6aebPidbc2FpbF0nOwor6aedPidbY2FtZWxdJzsKK+mnnz4nW3RlYW0gb2YgZm91ciBob3JzZXNdJzsKK+mnoj4nW3RlYW0gb2YgaG9yc2VzXSc7Civpp60+J1t0ZXJyaWZ5XSc7Civpp64+J1thIGtpbmQgb2YgZmllcmNlIGFuaW1hbF0nOwor6aexPidbd2hpdGUgaG9yc2Ugdy4gYmxhY2sgbWFuZV0nOworIyLpp7E+J1t3aGl0ZSBob3JzZSB3LiBibGFjayBtYW5lXSciLAor6ae4PidbZ2FsbG9waW5nXSc7CisjIumnuz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6ae/PidbZXhjZWxsZW50IGhvcnNlXSc7CivpqIE+J1tnYWxsb3AgaG9yc2VdJzsKK+mohT4nW3BpZWJhbGQgaG9yc2VdJzsKK+mojj4nW3JpZGUgaG9yc2ViYWNrXSc7CivpqI8+J1twaWViYWxkIGhvcnNlXSc7CivpqJI+J1toYXJhc3NdJzsKK+mokz4nW3Rlc3RdJzsKK+momT4nW3N3aW5kbGVdJzsKK+moqD4nW2RhcHBsZWRdJzsKK+moqz4nW3JhaXNlXSc7CivpqLA+J1tmbHldJzsKK+motz4nW2hhcmFzc10nOwor6ai+PidbbXVsZV0nOwor6amAPidbc3VkZGVubHldJzsKK+mpgj4nW3R3byBvdXRzaWRlIG9uZXMgaW4gdGhyZWUgaG9yc2VdJzsKK+mpgz4nW2NoYXJnZXJdJzsKK+mphT4nW3NwdXIgaG9yc2Ugb25dJzsKK+mpjT4nW2V4Y2VsbGVudCBob3JzZV0nOwor6amVPidbc3Bpcml0ZWQgaG9yc2VdJzsKK+mplz4nW3Rlc3RdJzsKK+mpmj4nW2ZyaWdodGVuXSc7CivpqZs+J1tyZWxheSBzdGF0aW9uXSc7CivpqZ8+J1twcm9jZWR1cmVdJzsKK+mpoj4nW2RvbmtleV0nOwor6amkPidbZ2FsbG9wIGFib3V0IHdpdGggaGVhZCB1cGxpZnRlZF0nOwor6amlPidbdGhvcm91Z2hicmVkIGhvcnNlXSc7Civpqak+J1toYXBweV0nOwor6amqPidbcHVyZSBibGFjayBob3JzZV0nOwor6amrPidbaG9yc2VzXSc7Civpqqg+J1tib25lXSc7Civpqq0+J1tzaGluIGJvbmVdJzsKK+mqsD4nW2RpZV0nOwor6aq4Pidbc2tlbHRvbl0nOwor6aq8PidbYm9uZV0nOwor6auAPidbYnV0dG9ja3NdJzsKK+mrhD4nW2JvbmUgbWFycm93XSc7Civpq48+J1tza3VsbF0nOwor6auRPidbc2t1bGxdJzsKK+mrkz4nW2JvbmUgbWFycm93XSc7Civpq5Q+J1tib2R5XSc7Civpq5g+J1toaWdoXSc7Civpq54+J1toaWdoXSc7Civpq58+J1toYWlyXSc7Civpq6I+J1t3aWddJzsKK+mroz4nW3NpbWlsYXIgdG9dJzsKK+mrpj4nW2Zsb3dpbmcgaGFpciBvZiB5b3VuZyBjaGlsZF0nOwor6auqPidbaGFpcl0nOwor6aurPidbY2hpbGRyZW4nJ3MgaGFpciBzdHlsZV0nOwor6autPidbbXVzdGFjaGVdJzsKK+mrrj4nW2hhaXJdJzsKK+mrrz4nW2JlYXJkXSc7CisjIumrsT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6au0PidbZGlzaGV2ZWxlZCBoYWlyXSc7CisjIumrtz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6au7PidbaGFpciByb2xsZWQgdXAgaW4gYSBidW5dJzsKK+mshj4nW2xheF0nOwor6ayYPidbYmVhdXRpZnVsIGhhaXJdJzsKK+msmj4nW2JlYXJkXSc7CivprJ8+J1tkcmVzcyBoYWlyIGluIGNvaWxlZCBrbm90XSc7CivprKI+J1toYWlyIG9uIHRlbXBsZXNdJzsKK+msoz4nW2hvcnNlJydzIG1hbmVdJzsKK+mspT4nW3N0cnVnZ2xlXSc7CivprKc+J1txdWFycmVsXSc7CivprKg+J1tib2lzdGVyb3VzXSc7CivprKk+J1tmZXVkXSc7CivprKo+J1tzdHJ1Z2dsZV0nOwor6ayuPidbbG90cyAodG8gYmUgZHJhd24pXSc7CivprK8+J1tzYWNyaWZpY2lhbCB3aW5lXSc7CivprLE+J1tsdXh1cmlhbnRdJzsKK+mssj4nW3R5cGUgb2YgY2FsZHJvbl0nOwor6ay7Pidbc2VsbF0nOwor6ay8PidbZ2hvc3RdJzsKK+mtgT4nW2NoaWVmXSc7CivprYI+J1tzb3VsXSc7CivprYM+J1tkcm91Z2h0IGRlbW9uXSc7CivprYQ+J1t2aWdvcl0nOwor6a2FPidba2luZCBvZiBmb3Jlc3QgZGVtb25dJzsKK+mtjT4nW2RlbW9uc10nOwor6a2OPidbYSBraW5kIG9mIG1vbnN0ZXJdJzsKK+mtjz4nW2tpbmdkb20gb2Ygd2VpXSc7CivprZE+J1thIG1vbnRhaW4gZGVtb24gcmVzZW1ibGluZyB0aWdlcl0nOwor6a2UPidbZGVtb25dJzsKK+mtmD4nW25pZ2h0bWFyZV0nOwor6a2aPidbZmlzaF0nOwor6a2vPidbZm9vbGlzaF0nOwor6a20PidbYnJlYW1dJzsKKyMi6a6BPidbdGhlIGJvbml0b10nIiwKK+mujj4nW3NoZWF0ZmlzaF0nOwor6a6RPidbYWJhbG9uZV0nOwor6a6SPidbY2FycF0nOwor6a6TPidbbWluY2VkIGFuZCBzYWx0ZWQgZmlzaF0nOworIyLprpM+J1ttaW5jZWQgYW5kIHNhbHRlZCBmaXNoXSciLAorIyLprpM+J1ttaW5jZWQgYW5kIHNhbHRlZCBmaXNoXSciLAor6a6fPidbYW5nbGVyZmlzaF0nOwor6a6gPidbYSBraW5kIG9mIHNoYWQgd2l0aCBhIGhlYWQgbGlrZSBhIHN0dXJnZW9uXSc7CisjIumuqD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6a6qPidba2luZCBvZiBzdHVyZ2Vvbl0nOwor6a6rPidbc2hhcmtdJzsKK+murT4nW3NhbG1vbl0nOwor6a6uPidbZnJlc2hdJzsKKyMi6a60PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCisjIumuuT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6a+APidbZ2lhbnQgZmlzaF0nOwor6a+GPidbdGhlIHNrYXRlIG9yIHJheV0nOwor6a+JPidbY2FycF0nOwor6a+KPidbc2hhcmtdJzsKK+mvjz4nW2EgZGlhbGVjdC4uLi4uLi4uIG5hbWUgb2YgZmlzaF0nOworIyLpr5E+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKKyMi6a+SPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpr5Q+J1ttdWxsZXRdJzsKK+mvlj4nW21hY2tlcmVsXSc7Civpr5s+J1twYWdyb3NvbXVzIG1ham9yXSc7Civpr6E+J1toZXJyaW5nXSc7Civpr6I+J1tjcnlwdG9icmFuY2h1cyBqYXBvbmljdXNdJzsKKyMi6a+jPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpr6Q+J1tzcGF3bl0nOwor6a+oPidbd2hhbGVdJzsKK+mvsD4nW3NoZWF0XSc7CisjIumvsT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAorIyLpr7E+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKKyMi6a+xPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCisjIumwhD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAorIyLpsIY+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mwiD4nW2ZsYXRmaXNoXSc7CivpsIk+J1tzdHVyZ2Vvbl0nOworIyLpsIo+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mwjD4nW2xvYWNoXSc7CivpsI0+J1tsb2FjaF0nOwor6bCQPidbYWxsaWdhdG9yXSc7CivpsJI+J1thYmFsb25lXSc7CivpsJM+J1tmaXNoIGdpbGxzXSc7CisjIumwlD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6bCVPidbc2hyaW1wXSc7CivpsJs+J1tzYXJkaW5lXSc7CisjIumwoT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAorIyLpsKQ+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mwpT4nW2h1Z2UgZmlzaF0nOwor6bCtPidbZmluXSc7CivpsK4+J1tzYXJkaW5lXSc7CisjIumwrz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAorIyLpsK8+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mwsj4nW2h1Z2Ugc2VhIHR1cnRsZV0nOwor6bC5Pidbc2tpcGphY2tdJzsKKyMi6bC6PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpsLs+J1tlZWxdJzsKK+mwvj4nW3N3aW1taW5nIGJsYWRkZXIgb2YgZmlzaF0nOworIyLpsYY+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mxhz4nW2FuZ2xlcmZpc2hdJzsKK+mxiD4nW2NvZGZpc2hdJzsKK+mxkj4nW2JhcmJlbF0nOwor6bGXPidbZmlzaCBzY2FsZXNdJzsKKyMi6bGYPidbc3R1cmdlb25dJyIsCivpsaA+J1ttaW5jZWQgZmlzaF0nOwor6bGnPidbc25ha2VoZWFkXSc7CisjIumxtj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6bG4Pidbc2VhIHBlcmNoXSc7Civps6U+J1tiaXJkXSc7Civps6c+J1t3aWxkIGR1Y2tdJzsKK+mzqT4nW3BpZ2Vvbl0nOwor6bOrPidbd2lsZCBnb29zZV0nOwor6bOsPidbd2lsZCBkdWNrXSc7CisjIumzsD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6bOzPidbbWFsZSBwaG9lbml4XSc7Civps7Q+J1tjcnkgb2YgYmlyZCBvciBhbmltYWxdJzsKK+mztj4nW2tpdGVdJzsKK+m0gz4nW3NocmlrZV0nOwor6bSGPidbYmlyZCByZXNlbWJsaW5nIHNlY3JldGFyeSBmYWxjb25dJzsKK+m0hz4nW2J1c3RhcmRdJzsKK+m0iD4nW3dpbGQgZ29vc2VdJzsKK+m0iT4nW2Nyb3ddJzsKK+m0jj4nW3NlYWd1bGxdJzsKK+m0kj4nW3NwZWNpZXMgb2YgbGFya10nOwor6bSVPidbb3N0cmljaF0nOwor6bSbPidbbWFsZSBtYW5kYXJpbiBkdWNrXSc7CivptJ8+J1traXRlXSc7CivptKM+J1tzcGVjaWVzIG9mIHRhaXdhbiBwaWdlb25dJzsKK+m0pj4nW2ZlbWFsZSBtYW5kYXJpbiBkdWNrXSc7CivptKg+J1tkdWNrXSc7CivptKo+J1tzd29vcF0nOwor6bSrPidbYSBzbmlwZV0nOwor6bSsPidbb3Jpb2xlXSc7CivptLs+J1tzcGVjaWVzIG9mIHdpbGQgc3dhbl0nOworIyLptL4+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+m0vz4nW3BpZ2Vvbl0nOworIyLptYE+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+m1hD4nW2tpdGVdJzsKKyMi6bWEPidba2l0ZV0nIiwKKyMi6bWEPidba2l0ZV0nIiwKKyMi6bWQPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivptZE+J1tjdWNrb29dJzsKK+m1mT4nW2Egc2hyaWtlXSc7CivptZw+J1twZWxpY2FuXSc7CivptZ0+J1tnb29zZV0nOwor6bWePidbZ29vc2VdJzsKK+m1oD4nW3RhcmdldF0nOwor6bWhPidbc3BlY2llcyBvZiBwYXJyb3RdJzsKKyMi6bWhPidbc3BlY2llcyBvZiBwYXJyb3RdJyIsCivptaw+J1tmYWJ1bG91cyBiaXJkIG9mIGVub3Jtb3VzIHNpemVdJzsKK+m1rz4nW2JpcmRdJzsKK+m1sj4nW21hZ3BpZV0nOworIyLptbo+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+m2hz4nW3RocnVzaF0nOwor6baJPidbcXVhaWxdJzsKK+m2jz4nW2NoaWNrZW5dJzsKK+m2mj4nW29zcHJleV0nOworIyLptqQ+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+m2qT4nW2R1Y2tdJzsKK+m2qz4nW3RocnVzaF0nOwor6bavPidbb3Jpb2xlXSc7CisjIum2sT4nW3NvYXJdJyIsCivptrQ+J1tjcmFuZV0nOwor6ba4PidbW25vdCBmb3VuZCBpbiBhbnkgZGljdGlvbmFyeV1dJzsKK+m2uj4nW3dhZ3RhaWxdJzsKK+m2uz4nW2Ega2luZCBvZiBwaWdlb25dJzsKK+m3gT4nW2Zpc2hoYXdrIGJvdyBvciBwcm93XSc7Civpt4I+J1tzcGFycm93IGhhd2tdJzsKK+m3hD4nW2NoaWNrZW5dJzsKK+m3hj4nW2JpcmQgbmFtZV0nOwor6bePPidbYmlyZCBuYW1lXSc7Civpt5M+J1twYXJ0cmlkZ2VdJzsKK+m3mT4nW2hhd2tdJzsKK+m3pj4nW3dyZW5dJzsKKyMi6berPidbdHVycXVvaXNlIGtpbmdmaXNoZXJdJyIsCivpt68+J1t3cmVuXSc7Civpt7I+J1tjb25kb3JdJzsKK+m3uD4nW3NuaXBlXSc7Civpt7k+J1tlYWdsZV0nOwor6be6PidbaGVyb25dJzsKK+m3vT4nW29yaWVudGFsIGJ1bGxmaW5jaF0nOwor6biaPidbc3BlY2llcyBvZiBwYXJyb3RdJzsKK+m4mz4nW2NyYW5lXSc7CivpuJ4+J1tmYWJ1bG91cyBiaXJkXSc7CivpubU+J1tzYWxpbmUgc29pbF0nOwor6bm4PidbYWxrYWxpbmVdJzsKK+m5uT4nW3NhbHR5XSc7Civpub0+J1tzYWx0XSc7Civpub8+J1tkZWVyXSc7CivpuoE+J1tyb3VnaF0nOwor6bqIPidbc3BlY2llcyBvZiBkZWVyXSc7Civpuos+J1tlbGtdJzsKK+m6jD4nW3N0YWddJzsKK+m6kT4nW2Zhd25dJzsKK+m6kj4nW2xlZ2VuZGFyeSBhdXNwaWNpb3VzIGFuaW1hbF0nOwor6bqTPidbZm9vdCBvZiBoaWxsXSc7CivpupU+J1ttdW50amFjIGRlZXJdJzsKK+m6lz4nW2JlYXV0aWZ1bF0nOwor6bqdPidbbXVzayBkZWVyXSc7Civpup8+J1tmZW1hbGUgb2YgY2hpbmVzZSB1bmljb3JuXSc7CivpuqU+J1t3aGVhdF0nOwor6bqmPidbd2hlYXRdJzsKK+m6qT4nW2JyYW5dJzsKK+m6qj4nW2Zsb3VyXSc7CisjIum6qz4nW2Zsb3VyXSciLAor6bq4PidbYnJhbl0nOwor6bq5PidbeWVhc3RdJzsKK+m6uj4nW2Zsb3VyXSc7Civpurs+J1toZW1wXSc7Civpurw+J1tpbnRlcnJvZ2F0aXZlIGZpbmFsIHBhcnRpY2xlXSc7Civpur4+J1twZW5uYW50XSc7Civpur8+J1tJXSc7Civpu4Q+J1t5ZWxsb3ddJzsKK+m7jD4nW3NjaG9vbF0nOwor6buNPidbZ2x1dGlub3VzIG1pbGxldF0nOwor6buOPidbc3VybmFtZV0nOwor6buPPidbc3RpY2sgdG9dJzsKK+m7kD4nW3N0aWNrXSc7Civpu5I+J1tibGFja10nOwor6buUPidbYmxhY2tdJzsKK+m7mD4nW3NpbGVudF0nOwor6buZPidbc2lsZW50XSc7Civpu5s+J1tibGFja2VuIGV5ZWJyb3dzXSc7Civpu5w+J1tkaXNtaXNzXSc7Civpu50+J1tibGFja10nOwor6buePidbZG90XSc7Civpu6A+J1tzbHldJzsKK+m7pT4nW3RhdHRvb2luZyBmYWNlXSc7Civpu6g+J1twb2xpdGljYWwgcGFydHldJzsKK+m7rz4nW2RhcmtdJzsKK+m7tD4nW21vbGRdJzsKK+m7tj4nW21vbGVdJzsKK+m7tz4nW2Rpc2hvbm9yXSc7Civpu7k+J1tlbWJyb2lkZXJ5XSc7Civpu7s+J1tzcGVjaWFsIHBhdHRlcm4gb2YgZW1icm9pZGVyeV0nOwor6bu8PidbZW1icm9pZGVyZWQgb2ZmaWNpYWwgb3Igc2FjcmlmaWNdJzsKK+m7vT4nW3RvIHN0cml2ZV0nOwor6byHPidbaHVnZSBzZWEgdHVydGxlXSc7CivpvIg+J1tmcmVzaCB3YXRlciB0dXJ0bGVdJzsKK+m8jj4nW2xhcmdlXSc7CivpvJM+J1tkcnVtXSc7CivpvJU+J1tyYXR0bGUgb2YgZHJ1bXNdJzsKK+m8oD4nW3JhdF0nOwor6byhPidbcmF0XSc7CivpvKw+J1t3ZWFzZWxdJzsKK+m8uz4nW25vc2VdJzsKK+m8vj4nW3Nub3JlIGxvdWRseV0nOwor6b2KPidbZXZlbl0nOwor6b2LPidbdmVnZXRhcmlhbiBkaWV0XSc7CivpvY4+J1t0YWtlIGluIGJvdGggaGFuZHMgYW5kIG9mZmVyIHRvXSc7CivpvY8+J1ticmVhayBvciBzbWFzaCBpbnRvIHBpZWNlc10nOwor6b2SPidbdGVldGhdJzsKK+m9lD4nW2xvc2UgYmFieSB0ZWV0aCBhbmQgZ2V0IGFkdWx0IHRlXSc7CivpvZ8+J1tpcnJlZ3VsYXIgdGVldGhdJzsKK+m9oD4nW2xvc2UgYmFieSB0ZWV0aCBhbmQgZ2V0IGFkdWx0IHRlZXRoXSc7CivpvaE+J1thZ2VdJzsKK+m9oj4nW2FnZV0nOwor6b2jPidbYWN0XSc7CivpvaY+J1tndW1zXSc7Civpvac+J1tiaXRlXSc7Civpvao+J1tuYXJyb3ddJzsKK+m9rD4nW3VuZXZlbiB0ZWV0aF0nOwor6b2yPidbdG9vdGggZGVjYXldJzsKK+m9tj4nW3BhbGF0ZV0nOwor6b23PidbbmFycm93XSc7Civpvo0+J1tkcmFnb25dJzsKK+m+lT4nW25pY2hlXSc7Civpvpw+J1t0dXJ0bGUgb3IgdG9ydG9pc2VdJzsKK+m+nT4nW2F1dHVtbl0nOwor6b6gPidbZmx1dGVdJzsKKworIyBlb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9yZXNvdXJjZXMvVHJhbnNsaXRlcmF0b3JfS2FuamlfT25Sb21hamkudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L3Jlc291cmNlcy9UcmFuc2xpdGVyYXRvcl9LYW5qaV9PblJvbWFqaS50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzQzNTkxMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9yZXNvdXJjZXMvVHJhbnNsaXRlcmF0b3JfS2FuamlfT25Sb21hamkudHh0CkBAIC0wLDAgKzEsNjIxNiBAQAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvcHlyaWdodCAoYykgMTk5OS0yMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisjIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIERhdGU6IFR1ZSBKYW4gMjMgMTI6NDI6MDMgMjAwMQorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgS2FuamktT25Sb21hamkKKwor5LiBPlRlaTsKK+S4gz5TaGljaGk7CivkuIc+TWFuOwor5LiIPkpvdTsKK+S4iT5TYW47CivkuIo+Sm91Owor5LiLPkthOwor5LiNPkZ1Owor5LiOPllvOwor5LiQPkthaTsKK+S4kT5DaHV1Owor5LiUPlNoYTsKK+S4lT5IaTsKK+S4lj5TZTsKK+S4lz5TZWk7CivkuJg+S3l1dTsKK+S4mT5IZWk7CivkuJ4+U2hvdTsKK+S4oT5SeW91Owor5LimPkhlaTsKK+S4qj5LYTsKK+S4rT5DaHV1Owor5LixPkthbjsKK+S4sj5TZW47CivkuLY+Q2h1Owor5Li4PkdhbjsKK+S4uT5UYW47CivkuLs+U2h1Owor5Li8PlNlaTsKK+S4vz5IZXRzdTsKK+S5gj5HYWk7CivkuYM+RGFpOwor5LmFPkt5dXU7CivkuYs+U2hpOwor5LmNPlNha3U7CivkuY4+S287CivkuY8+Qm91Owor5LmVPktvOwor5LmWPkthaTsKK+S5lz5Kb3U7CivkuZg+Sm91Owor5LmZPk90c3U7CivkuZ0+S3l1dTsKK+S5nj5Lb3RzdTsKK+S5nz5ZYTsKK+S5oj5HYWk7CivkubE+UmFuOwor5LmzPk55dXU7Civkub4+S2FuOwor5LqAPktpOwor5LqCPlJhbjsKK+S6hT5LZXRzdTsKK+S6hj5SeW91Owor5LqIPllvOwor5LqJPlNvdTsKK+S6ij5KaTsKK+S6iz5KaTsKK+S6jD5OaTsKK+S6jj5VOwor5LqRPlVuOwor5LqSPkdvOwor5LqUPkdvOwor5LqVPlNlaTsKK+S6mD5TZW47Civkupk+S291Owor5LqbPlNhOwor5LqcPkE7Civkup4+QTsKK+S6nz5LeW9rdTsKK+S6oD5Ub3U7CivkuqE+Qm91Owor5LqiPktvdTsKK+S6pD5Lb3U7CivkuqU+R2FpOwor5LqmPkVraTsKK+S6qD5LeW91Owor5LqrPkt5b3U7Civkuqw+S3lvdTsKK+S6rT5UZWk7Civkuq4+UnlvdTsKK+S6sD5LZWk7CivkurM+SGFrdTsKK+S6tj5UYW47Civkuro+SmluOwor5LuAPlNodXU7Civku4E+SmluOwor5LuCPlJva3U7Civku4Q+U29rdTsKK+S7hj5GdTsKK+S7hz5LeXV1Owor5LuKPktvbjsKK+S7iz5LYWk7Civku40+Sm91Owor5LuOPkp1dTsKK+S7jz5CdXRzdTsKK+S7lD5TaGk7Civku5U+U2hpOwor5LuWPlRhOwor5LuXPkpvdTsKK+S7mD5GdTsKK+S7mT5TZW47Civku50+RG91Owor5LuePkppbjsKK+S7nz5TZW47Civku6M+RGFpOwor5LukPlJlaTsKK+S7pT5JOwor5LutPkppbjsKK+S7rj5LYTsKK+S7sD5HeW91Owor5LuyPkNodXU7Civku7Y+S2VuOwor5Lu3PkthaTsKK+S7uz5OaW47CivkvIE+S2k7CivkvIk+S291Owor5LyKPkk7CivkvI0+R287CivkvI4+S2k7CivkvI8+RnVrdTsKK+S8kD5CYXRzdTsKK+S8kT5LeXV1Owor5LyaPkthaTsKK+S8nD5TYWk7CivkvJ0+RGVuOwor5LyvPkhha3U7CivkvLA+S287CivkvLQ+SGFuOwor5Ly2PlJlaTsKK+S8uD5TaGluOwor5Ly6PlNoaTsKK+S8vD5KaTsKK+S8vT5LeWE7CivkvYM+VGVuOwor5L2GPlRhbjsKK+S9hz5DaG87CivkvY0+STsKK+S9jj5UZWk7CivkvY8+SnV1Owor5L2QPlNhOwor5L2RPll1dTsKK+S9kz5UZWk7CivkvZU+S2E7CivkvZc+VGE7CivkvZk+WW87CivkvZo+SXRzdTsKK+S9mz5CdXRzdTsKK+S9nD5TYWt1Owor5L2dPktvdTsKK+S9nj5OZWk7Civkvak+SGFpOwor5L2vPllvdTsKK+S9sD5IYWt1Owor5L2zPkthOwor5L21PkhlaTsKK+S9tj5LaXRzdTsKK+S9uz5DaG91Owor5L28PktvdTsKK+S9vz5TaGk7CivkvoM+S2FuOwor5L6GPlJhaTsKK+S+iD5TaGk7Civkvos+UmVpOwor5L6NPkppOwor5L6PPlNodTsKK+S+kT5ZdXU7CivkvpY+Um9uOwor5L6YPlRhOwor5L6bPkt5b3U7Civkvp0+STsKK+S+oD5LeW91Owor5L6hPkthOwor5L6rPk5laTsKK+S+rT5KaW47Civkvq4+QnU7Civkvq8+S291Owor5L61PlNoaW47CivkvrY+UnlvOwor5L6/PkJlbjsKK+S/gj5LZWk7Civkv4M+U29rdTsKK+S/hD5HYTsKK+S/ij5TaHVuOwor5L+OPlNobzsKK+S/kD5SaTsKK+S/kT5Zb3U7Civkv5Q+S2VuOwor5L+XPlpva3U7Civkv5g+RnU7Civkv5o+Umk7Civkv5s+QmVuOwor5L+dPkhvOwor5L+fPlNoaTsKK+S/oT5TaGluOwor5L+uPlNodXU7Civkv68+RnU7Civkv7M+SGFpOwor5L+1Pkh5b3U7Civkv7Y+U2h1a3U7Civkv7g+SG91Owor5L+6PkVuOwor5L++PkhpOwor5YCFPlNhaTsKK+WAhj5SeW91Owor5YCJPlNvdTsKK+WAiz5LbzsKK+WAjT5CYWk7CivlgI8+U2h1a3U7CivlgJE+TW9uOwor5YCSPlRvdTsKK+WAlD5LdXRzdTsKK+WAlj5Lb3U7CivlgJk+S291Owor5YCaPkk7CivlgJ8+U2hha3U7CivlgKE+U2hvdTsKK+WAoz5Ib3U7CivlgKQ+Q2hpOwor5YClPktvdTsKK+WApj5LZW47CivlgKg+S3lvOwor5YCpPlNlbjsKK+WAqj5HZWk7CivlgKs+UmluOwor5YCsPlRha3U7CivlgK0+STsKK+WAtj5LdTsKK+WAuT5LZW47CivlgYM+RW47CivlgYc+S2E7CivlgYg+S2V0c3U7CivlgYk+STsKK+WBjz5IZW47CivlgZA+R2FuOwor5YGVPkthaTsKK+WBlj5TaGE7CivlgZo+U2FrdTsKK+WBnD5UZWk7CivlgaU+S2VuOwor5YGsPlNvdTsKK+WBsj5TaGk7CivlgbQ+U29rdTsKK+WBtT5UZWk7CivlgbY+R3V1Owor5YG4PkNodXU7Civlgb0+R2k7CivlgoA+S2FpOwor5YKFPkZ1Owor5YKNPkJvdTsKK+WCkT5LZXRzdTsKK+WCmD5TYW47Civlgpk+Qmk7Civlgpo+S291Owor5YKsPlNhaTsKK+WCrT5Zb3U7CivlgrI+R291Owor5YKzPkRlbjsKK+WCtD5VOwor5YK1PlNhaTsKK+WCtz5TaG91Owor5YK+PktlaTsKK+WDgj5Sb3U7Civlg4U+S2luOwor5YOJPlNlbjsKK+WDij5TZW47Civlg40+RG91Owor5YOPPlpvdTsKK+WDkT5LeW91Owor5YOVPkJva3U7Civlg5Y+S2k7Civlg5o+UnlvdTsKK+WDnj5HaTsKK+WDoz5TZW47Civlg6U+S3lvdTsKK+WDpz5Tb3U7Civlg60+U2VuOwor5YOuPkRvdTsKK+WDtT5LeW91Owor5YO5PkthOwor5YO7Pkhla2k7CivlhIA+R2k7CivlhIE+U2h1bjsKK+WEgj5Eb3U7CivlhIQ+T2t1Owor5YSJPktlbjsKK+WEkj5KdTsKK+WElD5DaHV1Owor5YSVPlNlaTsKK+WElj5SYW47CivlhJg+SmluOwor5YSaPkJvdTsKK+WEnz5TaG91Owor5YShPlJhaTsKK+WEqj5ZdXU7CivlhLI+Q2hvOwor5YS3PlJlaTsKK+WEuj5EYTsKK+WEuz5Ub3U7CivlhLw+R2VuOwor5YS/PkppbjsKK+WFgD5Lb3RzdTsKK+WFgT5JbjsKK+WFgz5HZW47CivlhYQ+S2VpOwor5YWFPkp1dTsKK+WFhj5DaG91Owor5YWHPkt5b3U7CivlhYg+U2VuOwor5YWJPktvdTsKK+WFiz5Lb2t1Owor5YWMPkRhOwor5YWNPk1lbjsKK+WFjj5UbzsKK+WFkD5KaTsKK+WFkj5KaTsKK+WFlD5UbzsKK+WFmj5Ub3U7CivlhZw+VG91Owor5YWiPkt5b3U7CivlhaU+Tnl1dTsKK+WFqD5aZW47Civlhak+UnlvdTsKK+WFqj5ZdTsKK+WFqz5IYWNoaTsKK+WFrD5Lb3U7Civlha0+Um9rdTsKK+WFrj5LZWk7CivlhbE+S3lvdTsKK+WFtT5IZWk7CivlhbY+S2k7Civlhbc+R3U7Civlhbg+VGVuOwor5YW8PktlbjsKK+WGgD5LaTsKK+WGgj5LZWk7CivlhoU+RGFpOwor5YaGPkVuOwor5YaJPk5lbjsKK+WGij5TYXRzdTsKK+WGjD5TYXRzdTsKK+WGjT5TYWk7Civlho8+S2VpOwor5YaQPkJvdTsKK+WGkT5DaHV1Owor5YaSPkJvdTsKK+WGkz5Lb3U7CivlhpU+QmVuOwor5YaWPkJla2k7Civlhpc+Sm91Owor5YaZPlNoYTsKK+WGoD5LYW47CivlhqI+Q2hvdTsKK+WGpD5FbjsKK+WGpT5NZWk7CivlhqY+S291Owor5YaoPkZ1Owor5YapPlNoYTsKK+WGqj5CZWtpOwor5YarPkh5b3U7Civlhqw+VG91Owor5YawPkh5b3U7CivlhrE+R287CivlhrI+Q2h1dTsKK+WGsz5LZXRzdTsKK+WGtD5HbzsKK+WGtT5LeW91Owor5Ya2PllhOwor5Ya3PlJlaTsKK+WGvT5SZXRzdTsKK+WHhD5TZWk7Civlh4U+S287Civlh4Y+SnVuOwor5YeJPlJ5b3U7Civlh4s+Q2hvdTsKK+WHjD5SeW91Owor5YeNPlRvdTsKK+WHlj5KdW47Civlh5s+UmluOwor5YecPlJpbjsKK+WHnT5HeW91Owor5YegPktpOwor5YehPkJvbjsKK+WHpj5TaG87Civlh60+SHlvdTsKK+WHsD5Lb3U7Civlh7E+R2FpOwor5Ye1PkthbjsKK+WHtj5LeW91Owor5Ye4PlRvdHN1Owor5Ye5Pk91Owor5Ye6PlNodXRzdTsKK+WHvT5LYW47Civlh74+S2FuOwor5YiAPlRvdTsKK+WIgz5KaW47CivliIQ+SmluOwor5YiGPkJ1bjsKK+WIhz5TZXRzdTsKK+WIiD5HYWk7CivliIo+S2FuOwor5YiLPlNlbjsKK+WIjj5GdW47CivliJE+S2VpOwor5YiUPktldHN1Owor5YiXPlJldHN1Owor5YidPlNobzsKK+WIpD5IYW47CivliKU+QmV0c3U7CivliKc+R291Owor5YipPlJpOwor5YiqPlNhbjsKK+WIrj5LYXRzdTsKK+WIsD5Ub3U7CivliLM+S287CivliLY+U2VpOwor5Yi3PlNhdHN1Owor5Yi4PktlbjsKK+WIuT5TYXRzdTsKK+WIuj5TaGk7CivliLs+S29rdTsKK+WJgz5UZWk7CivliYQ+S2VpOwor5YmHPlNva3U7CivliYo+U2FrdTsKK+WJiz5Lb2t1Owor5YmMPlJhdHN1Owor5YmNPlplbjsKK+WJjz5Tb3U7CivliZQ+VGVraTsKK+WJlj5Cb3U7CivliZs+R291Owor5YmePktpOwor5YmjPktlbjsKK+WJpD5aYWk7CivliaU+SGFrdTsKK+WJqT5Kb3U7Civliao+U2VuOwor5YmvPkZ1a3U7CivlibA+Sm91Owor5YmxPktlbjsKK+WJsj5LYXRzdTsKK+WJsz5Ub3U7CivlibQ+R2FpOwor5Ym1PlNvdTsKK+WJvT5IeW91Owor5Ym/PlNob3U7CivlioM+S2FrdTsKK+WKhz5HZWtpOwor5YqIPkhla2k7Civliok+UnU7Civlio0+S2VuOwor5YqRPlphaTsKK+WKkj5LZW47CivlipQ+S2VuOwor5YqbPlJ5b2t1Owor5YqfPktvdTsKK+WKoD5LYTsKK+WKoz5SZXRzdTsKK+WKqT5KbzsKK+WKqj5EbzsKK+WKqz5Hb3U7Civliqw+S3U7Civliq0+U2hvdTsKK+WKsT5SZWk7CivlirQ+Um91Owor5Yq1PktlbjsKK+WKuT5Lb3U7Civlirw+S2F0c3U7Civlir4+R2FpOwor5YuBPktlaTsKK+WLgz5Cb3RzdTsKK+WLhT5DaG9rdTsKK+WLhz5ZdXU7Civli4k+QmVuOwor5YuNPktlaTsKK+WLkj5Sb2t1Owor5YuVPkRvdTsKK+WLlz5Cb3U7Civli5g+S2FuOwor5YuZPk11Owor5YudPlNob3U7Civli54+Um91Owor5YufPkJvOwor5YugPlJpa3U7Civli6I+U2VpOwor5YujPlNla2k7Civli6Q+S2luOwor5YumPlNvdTsKK+WLpz5LYW47Civli7I+S3VuOwor5YuzPkt1bjsKK+WLtT5SZWk7Civli7g+S2FuOwor5Yu5PkhvdTsKK+WLuj5TaGFrdTsKK+WLvj5Lb3U7Civli78+QnV0c3U7CivljIU+SG91Owor5YyGPlNvdTsKK+WMiD5LeW91Owor5YyNPkhvOwor5YyPPkhvdTsKK+WMkD5Ib2t1Owor5YyVPkhpOwor5YyWPkthOwor5YyXPkhva3U7CivljJk+U2hpOwor5YyaPkhvdTsKK+WMnT5Tb3U7CivljKA+U2hvdTsKK+WMoT5LeW91Owor5YyjPktvdTsKK+WMqj5IaTsKK+WMrz5XYWk7CivljLE+S2k7CivljLM+UmVuOwor5Yy4PktlaTsKK+WMuT5IaXRzdTsKK+WMuj5LdTsKK+WMuz5JOwor5Yy/PlRva3U7CivljYA+S3U7CivljYE+SnV1Owor5Y2DPlNlbjsKK+WNhT5Tb3U7CivljYY+U290c3U7CivljYc+U2hvdTsKK+WNiD5HbzsKK+WNiT5LaTsKK+WNij5IYW47CivljY0+QmFuOwor5Y2RPkhpOwor5Y2SPlNvdHN1Owor5Y2TPlRha3U7CivljZQ+S3lvdTsKK+WNlz5OYW47CivljZg+VGFuOwor5Y2aPkhha3U7CivljZw+Qm9rdTsKK+WNnj5IZW47CivljaA+U2VuOwor5Y2mPkthOwor5Y2pPlNldHN1Owor5Y2uPlNoaTsKK+WNrz5Cb3U7CivljbA+SW47CivljbE+S2k7CivljbM+U29rdTsKK+WNtD5LeWFrdTsKK+WNtT5SYW47Civljbc+S2FuOwor5Y24PlNoYTsKK+WNuz5LeWFrdTsKK+WNvz5LeW91Owor5Y6CPkthbjsKK+WOhD5ZYWt1Owor5Y6WPkJvdTsKK+WOmD5SaW47Civljpo+S291Owor5Y6fPkdlbjsKK+WOoD5TaGk7CivljqU+S2V0c3U7CivljqY+S2E7Civljqg+WnU7Civljqk+S3l1dTsKK+WOrT5FbjsKK+WOrj5TaGk7CivljrA+U2hvdTsKK+WOsz5HZW47CivljrY+U2hpOwor5Y67Pkt5bzsKK+WPgj5TYW47Civlj4M+U2FuOwor5Y+IPll1dTsKK+WPiT5TaGE7Civlj4o+S3l1dTsKK+WPiz5ZdXU7Civlj4w+U291Owor5Y+NPkhhbjsKK+WPjj5TaHV1Owor5Y+UPlNodWt1Owor5Y+WPlNodTsKK+WPlz5KdTsKK+WPmT5KbzsKK+WPmz5IYW47Civlj58+U291Owor5Y+hPkVpOwor5Y+iPlNvdTsKK+WPoz5Lb3U7Civlj6Q+S287Civlj6U+S3U7Civlj6g+VG91Owor5Y+pPktvdTsKK+WPqj5TaGk7Civlj6s+S3lvdTsKK+WPrD5TaG91Owor5Y+tPkhhdHN1Owor5Y+uPlRlaTsKK+WPrz5LYTsKK+WPsD5EYWk7Civlj7E+U2hpdHN1Owor5Y+yPlNoaTsKK+WPsz5VOwor5Y+2Pkt5b3U7Civlj7c+R291Owor5Y+4PlNoaTsKK+WQgT5LdTsKK+WQgz5LaXRzdTsKK+WQhD5LYWt1Owor5ZCIPkdvdTsKK+WQiT5LaWNoaTsKK+WQij5DaG91Owor5ZCLPlN1bjsKK+WQjD5Eb3U7CivlkI0+TWVpOwor5ZCOPktvdTsKK+WQjz5SaTsKK+WQkD5UbzsKK+WQkT5Lb3U7CivlkJs+S3VuOwor5ZCdPlJpbjsKK+WQnz5HaW47CivlkKA+SGFpOwor5ZCmPkhpOwor5ZCpPkZ1bjsKK+WQqz5HYW47CivlkKw+S2luOwor5ZCtPktvdTsKK+WQrj5TZW47CivlkLY+VG90c3U7CivlkLg+S3l1dTsKK+WQuT5TdWk7CivlkLs+RnVuOwor5ZC8PktvdTsKK+WQvT5JbjsKK+WQvj5HbzsKK+WRgD5HYTsKK+WRgj5SeW87CivlkYY+Qm91Owor5ZGIPlRlaTsKK+WRiT5HbzsKK+WRij5Lb2t1Owor5ZGOPlNla2k7CivlkZE+RG9uOwor5ZGfPkdlbjsKK+WRqD5TaHV1Owor5ZGqPkp1Owor5ZGwPlNoaTsKK+WRsT5LbzsKK+WRsz5NaTsKK+WRtT5LYTsKK+WRtj5EbzsKK+WRtz5Lb3U7Civlkbs+U2hpbjsKK+WRvD5LbzsKK+WRvT5NZWk7CivlkoA+U287CivlkoQ+VG90c3U7CivlkoY+SG91Owor5ZKLPlNha3U7Civlkow+V2E7Civlko4+S3l1dTsKK+WSjz5FaTsKK+WSkD5IbzsKK+WSkj5TaHU7CivlkqI+R2FrdTsKK+WSpD5UYTsKK+WSpT5LaTsKK+WSqD5TaGk7Civlkqs+U2hpOwor5ZKsPktvdTsKK+WSrz5LYWt1Owor5ZKyPlNob3U7CivlkrM+R2FpOwor5ZK4PkthbjsKK+WSvD5LYTsKK+WSvT5JbjsKK+WSvj5Sb3U7Civlk4A+QWk7Civlk4E+SGluOwor5ZOCPlNoaW47Civlk4Q+S291Owor5ZOHPkFpOwor5ZOIPkdvdTsKK+WTiT5TYWk7Civlk6E+SW47Civlk6I+Um91Owor5ZOlPkthOwor5ZOmPkdhOwor5ZOoPlNob3U7Civlk6k+Umk7Civlk60+S29rdTsKK+WTrj5Lb3U7Civlk7I+VGV0c3U7Civlk7o+SG87Civlk70+S291Owor5ZSEPkJhaTsKK+WUhj5TYTsKK+WUhz5TaGluOwor5ZSPPktpOwor5ZSQPlRvdTsKK+WUlD5HbzsKK+WUlj5BOwor5ZSuPlNodXU7CivllK8+WXVpOwor5ZSxPlNob3U7CivllLM+UmVpOwor5ZS4PlRlbjsKK+WUuT5ZbzsKK+WUvj5EYTsKK+WVgD5HYWk7CivllYQ+VGFrdTsKK+WVhT5UYWt1Owor5ZWGPlNob3U7CivllYw+S291Owor5ZWPPk1vbjsKK+WVkz5LZWk7CivllZY+VGFuOwor5ZWXPlRhbjsKK+WVnD5TZXRzdTsKK+WVnT5LYTsKK+WVoz5LYW47Civllbs+U2hpOwor5ZW8PlRlaTsKK+WVvj5TaHV1Owor5ZaAPktha3U7CivlloM+TmFuOwor5ZaEPlplbjsKK+WWhz5SYXRzdTsKK+WWiT5Lb3U7Civlloo+S2FuOwor5ZaLPkNob3U7Civllpg+WmVuOwor5ZaZPkthaTsKK+WWmj5LYW47Civllpw+S2k7Civllp0+S2F0c3U7Civllp4+U29rdTsKK+WWnz5LaTsKK+WWpz5LZW47Civllqg+UnlvdTsKK+WWqT5ZdTsKK+WWqj5Tb3U7Civllqs+S2l0c3U7Civllqw+S3lvdTsKK+WWrj5UYW47CivllrY+RWk7Civll4Q+U2E7Civll4U+S3l1dTsKK+WXhz5TaG9rdTsKK+WXlD5TaGluOwor5ZeaPk87Civll5w+U2hpOwor5ZefPlNhOwor5ZejPlNoaTsKK+WXpD5TaGk7Civll7c+R291Owor5Ze5PlJlbjsKK+WXvT5Tb2t1Owor5Ze+PlNvdTsKK+WYhj5UYW47CivlmIk+S2E7CivlmJQ+T3U7CivlmJY+U2FrdTsKK+WYlz5TaG91Owor5ZiYPkt5bzsKK+WYmz5NYTsKK+WYqT5LYTsKK+WYrz5TaG91Owor5ZixPlNob2t1Owor5ZiyPlRvdTsKK+WYtD5TaGk7CivlmLY+U2VpOwor5Zi4PkJ1Owor5ZmCPlNvbjsKK+WZjD5Tb3U7CivlmY4+SXRzdTsKK+WZkD5LaTsKK+WZmz5Hb3U7CivlmaQ+S2luOwor5ZmoPktpOwor5ZmqPlNvdTsKK+WZqz5JOwor5ZmsPlplaTsKK+WZtD5GdW47Civlmbg+VG9uOwor5ZqAPkRlaTsKK+Wahj5Lb3U7Civlmoc+S2FrdTsKK+Waij5IaTsKK+Wajz5UZWk7CivlmpQ+VGVpOwor5ZqgPlJ5dXU7CivlmqI+Tm91Owor5ZqlPkVuOwor5ZquPktvdTsKK+WatD5HZW47CivlmrY+T3U7Civlmrw+U2hha3U7Civlm4A+VGVuOwor5ZuBPlNob3U7Civlm4I+R291Owor5ZuDPlNvdTsKK+WbiD5HZWk7Civlm44+U287Civlm5E+U2hva3U7Civlm5M+S2V0c3U7Civlm5c+STsKK+WbmD5LYWk7Civlm5o+U2h1dTsKK+Wbmz5TaGk7Civlm54+S2FpOwor5ZugPkluOwor5ZujPkRhbjsKK+Wbrj5LYTsKK+WbsD5Lb247Civlm7I+STsKK+Wbsz5UbzsKK+WbuT5SZWk7Civlm7o+S287Civlm70+S29rdTsKK+Wbvz5ZdXU7CivlnIA+S29rdTsKK+Wcgz5IbzsKK+WchD5HeW87CivlnIg+S2VuOwor5ZyJPkd5bzsKK+Wciz5Lb2t1Owor5ZyNPkk7CivlnI8+S2VuOwor5ZySPkVuOwor5ZyTPkVuOwor5ZyWPlRvOwor5ZyYPkRhbjsKK+WcnD5LYW47CivlnJ8+RG87CivlnKc+QXRzdTsKK+WcqD5aYWk7CivlnK0+S2VpOwor5ZywPkNoaTsKK+Wcuz5LaTsKK+WdgD5TaGk7CivlnYI+SGFuOwor5Z2HPktpbjsKK+Wdij5Cb3U7CivlnY4+S2FuOwor5Z2PPkhhaTsKK+WdkD5aYTsKK+WdkT5Lb3U7CivlnaE+SGE7CivlnaQ+S29uOwor5Z2mPlRhbjsKK+WdqT5LYW47Civlnao+SGVpOwor5Z2/PkZ1Owor5Z6CPlN1aTsKK+WeiD5UYWk7Civlnok+SG91Owor5Z6LPktlaTsKK+Wekz5HYWk7CivlnqA+R2luOwor5Z6iPktvdTsKK+Weoz5FbjsKK+WepD5UZXRzdTsKK+WfgD5TdWk7Civln4M+QWk7Civln4Y+S2FrdTsKK+Wfiz5NYWk7Civln44+Sm91Owor5Z+SPlJhY2hpOwor5Z+TPlJhY2hpOwor5Z+UPkhvOwor5Z+cPlNobzsKK+Wfnz5Ja2k7Civln6A+RnU7Civln6M+U2FpOwor5Z+0PlNob2t1Owor5Z+3PlNoaXRzdTsKK+WfuT5CYWk7Civln7o+S2k7Civln7w+S2k7CivloIA+S3V0c3U7CivloII+RG91Owor5aCFPktlbjsKK+Wghj5UYWk7CivloIo+QTsKK+Wgiz5Ib3U7CivloJU+RGE7CivloJk+SW47CivloJ0+S2E7CivloKE+SG91Owor5aCkPlRlaTsKK+Wgqj5LYW47CivloK8+R3lvdTsKK+WgsD5FbjsKK+WgsT5Ib3U7CivloLQ+Sm91Owor5aC1PlRvOwor5aC6PkthaTsKK+WgvT5Lb3U7CivloYE+UnVpOwor5aGKPkthaTsKK+Whiz5FaTsKK+WhkT5TbzsKK+Whkj5TaGk7CivloZQ+VG91Owor5aGXPlRvOwor5aGYPlRvdTsKK+WhmT5LYWt1Owor5aGaPkNob3U7CivloZ4+U29rdTsKK+Whoj5POwor5aGpPkVuOwor5aGrPlRlbjsKK+Whsj5Kb3U7CivlobU+SmluOwor5aG5PlphbjsKK+Whvj5KdWt1Owor5aKDPkt5b3U7CivlooU+U2hvOwor5aKTPkJvOwor5aKXPlpvdTsKK+WinD5Uc3VpOwor5aKfPkt5bzsKK+WiqD5Cb2t1Owor5aKrPlNodW47Civloq4+RGE7CivlorM+RnVuOwor5aK4PlNobzsKK+Wiuj5PdTsKK+Wiuz5TaG91Owor5aK+PktvbjsKK+WjgT5IZWtpOwor5aOFPllvdTsKK+Wjhz5EYW47Civlo4o+S2FpOwor5aOMPkpvdTsKK+WjkT5HYWt1Owor5aOTPkF0c3U7Civlo5U+R291Owor5aOYPlJ1aTsKK+WjmT5Lb3U7Civlo5w+VGFuOwor5aOePkthaTsKK+Wjnz5SeW91Owor5aOkPkpvdTsKK+WjpT5UZW47Civlo6s+U2hpOwor5aOsPkppbjsKK+Wjrj5Tb3U7Civlo68+U291Owor5aOwPlNlaTsKK+WjsT5JY2hpOwor5aOyPkJhaTsKK+Wjtz5LbzsKK+WjuT5JY2hpOwor5aO6PktvOwor5aO7PlNlaTsKK+WjvD5Lb247Civlo70+SnU7CivlpII+Q2hpOwor5aSJPkhlbjsKK+Wkij5TdWk7CivlpI8+S2E7CivlpJA+S2VpOwor5aSVPlNla2k7CivlpJY+R2FpOwor5aSYPkJvdTsKK+WkmT5TaHVrdTsKK+Wkmj5UYTsKK+Wkmz5UYTsKK+WknD5ZYTsKK+Wkoj5NdTsKK+WkpT5LYTsKK+Wkpz5UYWk7CivlpKk+VGVuOwor5aSqPlRhOwor5aSrPkZ1Owor5aSsPktldHN1Owor5aStPllvdTsKK+Wkrj5PdTsKK+WksT5TaGl0c3U7CivlpLI+VG91Owor5aS3Pkk7CivlpLg+S287CivlpL4+S291Owor5aWEPkVuOwor5aWHPktpOwor5aWIPk5hOwor5aWJPkhvdTsKK+Wljj5LZWk7CivlpY8+U291Owor5aWQPkthbjsKK+WlkT5TZXRzdTsKK+WllD5Ib247CivlpZU+RWtpOwor5aWXPlRvdTsKK+WlmD5Kb3U7CivlpZo+S2VpOwor5aWgPlRlbjsKK+Wloj5TaGE7CivlpaU+T3U7Civlpac+T3U7Civlpag+U2hvdTsKK+WlqT5SZW47Civlpao+RGF0c3U7Civlpaw+U2hvdTsKK+Wlrj5GdW47CivlpbM+Sm87CivlpbQ+RG87Civlpbg+S2FuOwor5aW9PktvdTsKK+WmgT5TaGFrdTsKK+Wmgj5KbzsKK+Wmgz5IaTsKK+WmhD5Cb3U7Civlpoo+TmluOwor5aaNPktlbjsKK+Wmkz5LaTsKK+Wmlj5Zb3U7Civlppk+TXlvdTsKK+Wmmz5TaGk7Civlpp0+U291Owor5aajPkhpOwor5aalPkRhOwor5aaoPkJvdTsKK+WmrD5UbzsKK+Wmsj5EYXRzdTsKK+WmuT5NYWk7Civlprs+U2FpOwor5aa+PlNob3U7Civlp4Y+Qm87Civlp4k+U2hpOwor5aeLPlNoaTsKK+WnkD5TbzsKK+WnkT5LbzsKK+Wnkz5TZWk7Civlp5Q+STsKK+WnmT5OaW47Civlp5o+WW91Owor5aecPkt5b3U7Civlp6U+Qm87Civlp6Y+S2FuOwor5aeoPkk7Civlp6o+VGV0c3U7Civlp6s+S2k7Civlp7Y+T3U7Civlp7s+SW47Civlp78+U2hpOwor5aiBPkk7CivlqIM+QTsKK+WoiT5IZWk7CivlqJE+U2hhOwor5aiYPkpvdTsKK+Womj5OYW47CivlqJw+RGE7CivlqJ8+S2VuOwor5aigPlNoaW47CivlqKU+R2E7CivlqKk+QmVuOwor5aivPkdvOwor5ai1PlNodTsKK+Wotj5TaHU7CivlqLw+U2hvdTsKK+WpgD5BOwor5amBPlJvdTsKK+Wphj5CYTsKK+WpiT5FbjsKK+Wpmj5Lb247CivlqaI+SGk7CivlqaY+RnU7Civlqao+UmFuOwor5amsPkluOwor5am/PlNlaTsKK+Wqkj5CYWk7Civlqpo+Qmk7Civlqps+RW47Civlqrw+T3U7Civlqr0+Qm87Civlqr4+S291Owor5auBPkthOwor5auCPlNvdTsKK+WriT5TaGl0c3U7Civlq4s+Sm91Owor5auMPktlbjsKK+WrkD5Kb3U7Civlq5Y+SHlvdTsKK+Wrlz5PdTsKK+WroT5DaGFrdTsKK+Wroz5FbjsKK+Wrpj5Lb3U7Civlq6k+RG9uOwor5au6PkthbjsKK+Wruz5LYW47CivlrIk+S2k7CivlrIs+U2VuOwor5ayMPkt5b3U7CivlrJY+SGVpOwor5ayiPkpvdTsKK+Wsqj5IaW47CivlrKw+U2h1Owor5aywPkVpOwor5ayyPkpvdTsKK+Wsvj5SYW47CivlrYA+U291Owor5a2DPkpvdTsKK+WthT5TZW47CivlrZA+U2hpOwor5a2RPkdldHN1Owor5a2UPktvdTsKK+WtlT5Zb3U7CivlrZc+Smk7CivlrZg+U29uOwor5a2aPkZ1Owor5a2bPkJvdHN1Owor5a2cPlNoaTsKK+WtnT5Lb3U7CivlrZ8+TW91Owor5a2jPktpOwor5a2kPktvOwor5a2lPkRvOwor5a2mPkdha3U7Civlrak+S2FpOwor5a2rPlNvbjsKK+WtsD5KdWt1Owor5a2xPlNlbjsKK+Wtsz5TaGk7CivlrbU+RnU7Civlrbg+R2FrdTsKK+Wtuj5KdTsKK+WugD5CZW47CivlroM+VGE7CivlroU+VGFrdTsKK+Wuhz5VOwor5a6IPlNodTsKK+WuiT5BbjsKK+Wuiz5Tb3U7Civlrow+S2FuOwor5a6NPk5pa3U7Civlro8+S291Owor5a6VPlRvdTsKK+Wulz5TaHV1Owor5a6YPkthbjsKK+WumT5DaHV1Owor5a6aPlRlaTsKK+Wumz5FbjsKK+WunD5HaTsKK+WunT5Ib3U7Civlrp8+Sml0c3U7CivlrqI+S3lha3U7CivlrqM+U2VuOwor5a6kPlNoaXRzdTsKK+WupT5ZdXU7CivlrqY+S2FuOwor5a6uPkt5dXU7CivlrrA+U2FpOwor5a6zPkdhaTsKK+WutD5FbjsKK+WutT5TaG91Owor5a62PkthOwor5a64PlNoaW47Civlrrk+WW91Owor5a6/PlNodWt1Owor5a+CPkpha3U7Civlr4M+RW47Civlr4Q+S2k7Civlr4U+SW47Civlr4Y+TWl0c3U7Civlr4c+S291Owor5a+JPktha3U7Civlr4w+RnU7Civlr5A+Qmk7Civlr5I+S2FuOwor5a+TPkd1dTsKK+WvlD5TaG9rdTsKK+Wvmz5LYW47Civlr50+U2hpbjsKK+Wvnj5CYWt1Owor5a+fPlNhdHN1Owor5a+hPkthOwor5a+iPlNoaW47Civlr6Q+R287Civlr6U+UnlvdTsKK+Wvpj5KaXRzdTsKK+Wvpz5OZWk7Civlr6g+U2FpOwor5a+pPlNoaW47Civlr6s+U2hhOwor5a+uPlJ5b3U7Civlr7A+S2FuOwor5a+zPkhvdTsKK+WvtT5DaG91Owor5a+2PkhvdTsKK+WvuD5TdW47Civlr7o+Smk7Civlr74+VGFpOwor5a+/Pkp1Owor5bCBPkZ1dTsKK+Wwgj5TZW47CivlsIQ+U2hhOwor5bCFPktva3U7CivlsIY+U2hvdTsKK+Wwhz5TaG91Owor5bCIPlNlbjsKK+WwiT5JOwor5bCKPlNvbjsKK+Wwiz5KaW47CivlsI0+VGFpOwor5bCOPkRvdTsKK+Wwjz5TaG91Owor5bCRPlNob3U7CivlsJM+Smk7CivlsJY+U2VuOwor5bCaPlNob3U7CivlsKA+U2VuOwor5bCiPk91Owor5bCkPll1dTsKK+WwqD5Cb3U7CivlsK0+R3lvdTsKK+WwsT5TaHV1Owor5bC4PlNoaTsKK+WwuT5JbjsKK+Wwuj5TaGFrdTsKK+Wwuz5Lb3U7CivlsLw+Tmk7CivlsL0+SmluOwor5bC+PkJpOwor5bC/Pk55b3U7CivlsYA+S3lva3U7CivlsYE+SGk7CivlsYU+S3lvOwor5bGGPkthaTsKK+WxiD5LdXRzdTsKK+Wxij5LYWk7CivlsYs+T2t1Owor5bGNPlNoaTsKK+Wxjj5TaGk7CivlsY8+SGVpOwor5bGQPkdla2k7CivlsZE+U2V0c3U7CivlsZM+S2k7CivlsZU+VGVuOwor5bGePlpva3U7CivlsaA+VG87CivlsaE+UnU7CivlsaQ+U291Owor5bGlPlJpOwor5bGsPlpva3U7Civlsa4+U2E7Civlsa8+VG9uOwor5bGxPlNhbjsKK+WxuT5LaXRzdTsKK+WyjD5LeXV1Owor5bKQPktpOwor5bKRPlNoaW47CivlspQ+U2E7CivlsqE+S291Owor5bKoPlNvOwor5bKpPkdhbjsKK+Wyqz5TaHV1Owor5bKsPktvdTsKK+WysT5UYWk7CivlsrM+R2FrdTsKK+Wytj5IYWt1Owor5bK3PkJpbjsKK+WyuD5HYW47Civlsrs+Smk7Civlsr4+U2VuOwor5bOHPktvdTsKK+WzmT5KaTsKK+WzoT5LeW91Owor5bOoPkdhOwor5bOpPkdhOwor5bOqPllva3U7Civls60+U2hvdTsKK+Wzrz5Ib3U7Civls7A+SG91Owor5bO2PlRvdTsKK+Wzuj5Lb3U7Civls7s+U2h1bjsKK+WzvT5LeW91Owor5bSHPlN1dTsKK+W0iz5LYTsKK+W0jj5LaTsKK+W0kT5Lb247CivltJQ+U2FpOwor5bSVPkdhaTsKK+W0lj5HYWk7CivltJc+S291Owor5bSYPlJvbjsKK+W0mT5Sb247CivltJo+UnlvdTsKK+W0mz5LdXRzdTsKK+W0nz5HaW47CivltKI+U291Owor5bSpPkhvdTsKK+W1iz5CaTsKK+W1jD5LYW47CivltY4+R3V1Owor5bWQPlJhbjsKK+W1kj5HYW47CivltZw+S2k7Civltak+U3V1Owor5bWsPkthaTsKK+W1rz5TYTsKK+W1sz5TYTsKK+W2gj5TaG91Owor5baEPlNhbjsKK+W2hz5LdTsKK+W2iz5Ub3U7Civltow+VG91Owor5baQPlJ5dXU7Civltp0+VG91Owor5baiPkd5b3U7Civltqw+R2k7Civltq4+S2VuOwor5ba3PkdpOwor5ba6PlJlaTsKK+W2vD5TaG87Civltr0+R2FrdTsKK+W3iT5TYW47Civlt4w+R2FuOwor5beNPkdpOwor5beSPlJhbjsKK+W3kz5UZW47Civlt5Y+R2FuOwor5bebPlNlbjsKK+W3nT5TZW47Civlt54+U2h1dTsKK+W3oT5KdW47Civlt6M+U291Owor5belPktvdTsKK+W3pj5TYTsKK+W3pz5Lb3U7Civlt6g+S3lvOwor5berPkZ1Owor5beuPlNoaTsKK+W3sT5LaTsKK+W3sj5JOwor5bezPlNoaTsKK+W3tD5IYTsKK+W3tT5TaGk7Civlt7c+S291Owor5be7PkthbjsKK+W3vT5Tb247Civlt74+S2luOwor5biCPlNoaTsKK+W4gz5GdTsKK+W4hj5IYW47CivluIs+U2hpOwor5biMPktpOwor5biRPkRvOwor5biWPkpvdTsKK+W4mT5DaGl0c3U7CivluJo+U291Owor5bibPkhha3U7CivluJ0+VGVpOwor5bilPlNvdHN1Owor5birPlNoaTsKK+W4rT5TZWtpOwor5bivPlRhaTsKK+W4sD5LaTsKK+W4sz5DaG91Owor5bi2PlRhaTsKK+W4tz5JOwor5bi4PkpvdTsKK+W4vT5Cb3U7CivluYA+VGVpOwor5bmDPkk7CivluYQ+QWt1Owor5bmFPkZ1a3U7CivluYc+SG91Owor5bmMPktvdTsKK+W5jj5CZWtpOwor5bmUPkJhbjsKK+W5lT5NYWt1Owor5bmXPktha3U7CivluZ8+U2hpOwor5bmhPkhhbjsKK+W5oj5Ub3U7CivluaM+SGVpOwor5bmkPkhlaTsKK+W5sj5LYW47CivlubM+SGVpOwor5bm0Pk5lbjsKK+W5tT5LZW47CivlubY+SGVpOwor5bm4PktvdTsKK+W5uT5LYW47Civlubo+WW91Owor5bm7PkdlbjsKK+W5vD5Zb3U7Civlub0+WXV1Owor5bm+PktpOwor5bm/PkdlbjsKK+W6gT5DaG91Owor5bqDPktvdTsKK+W6hD5Tb3U7Civluoc+SGk7Civluoo+U2hvdTsKK+W6jz5KbzsKK+W6lT5UZWk7CivlupY+SG91Owor5bqXPlRlbjsKK+W6mj5Lb3U7Civlupw+RnU7CivluqA+U2hvdTsKK+W6pj5UYWt1Owor5bqnPlphOwor5bqrPktvOwor5bqtPlRlaTsKK+W6tT5BbjsKK+W6tj5TaG87Civlurc+S291Owor5bq4PllvdTsKK+W7gT5TaGk7Civlu4I+U2hvdTsKK+W7gz5IYWk7Civlu4g+S2E7Civlu4k+UmVuOwor5buKPlJvdTsKK+W7kD5LeXV1Owor5buTPktha3U7Civlu5Y+UnlvdTsKK+W7mj5adTsKK+W7mz5UZW47Civlu50+U2hpOwor5bufPkJ5b3U7Civlu6A+U2hvdTsKK+W7oT5CdTsKK+W7oj5IYWk7Civlu6M+S291Owor5buoPkthaTsKK+W7qT5SaW47Civlu6w+UnlvOwor5buwPkNob3U7Civlu7E+WW91Owor5buzPkNob3U7Civlu7Q+SW47Civlu7Y+RW47Civlu7c+VGVpOwor5bu4PlRla2k7Civlu7o+S2VuOwor5bu7PkthaTsKK+W7vD5EYWk7Civlu74+S3lvdTsKK+W7vz5KdXU7CivlvIE+QmVuOwor5byDPktpOwor5byEPlJvdTsKK+W8iT5Kb3U7CivlvIo+SGVpOwor5byLPllva3U7CivlvIw+SXRzdTsKK+W8jT5OaTsKK+W8jz5TaGlraTsKK+W8kD5OaTsKK+W8kT5TaGk7CivlvJM+S3l1dTsKK+W8lD5DaG91Owor5byVPkluOwor5byXPkZ1dHN1Owor5byYPktvdTsKK+W8mz5TaGk7CivlvJ8+VGVpOwor5bylPk1pOwor5bymPkdlbjsKK+W8pz5LbzsKK+W8qT5EbzsKK+W8rT5CaTsKK+W8rz5XYW47CivlvLE+SmFrdTsKK+W8tT5DaG91Owor5by3Pkt5b3U7CivlvLg+SG91Owor5by8PkhpdHN1Owor5by+PkRhbjsKK+W9gT5TZWk7CivlvYg+RGFuOwor5b2KPkt5b3U7CivlvYw+Qmk7CivlvY4+V2FuOwor5b2RPktlaTsKK+W9kz5Ub3U7CivlvZY+VGFuOwor5b2XPlN1aTsKK+W9mT5JOwor5b2cPkk7CivlvZ0+STsKK+W9oT5TYW47CivlvaI+S2VpOwor5b2mPkdlbjsKK+W9qT5TYWk7Civlvao+SHlvdTsKK+W9qz5DaG91Owor5b2sPkhpbjsKK+W9rT5Ib3U7CivlvbA+U2hvdTsKK+W9sT5FaTsKK+W9sz5UZWtpOwor5b23PkhvdTsKK+W9uT5ZYWt1Owor5b28PkhpOwor5b2/PkZ1dHN1Owor5b6APk91Owor5b6BPlNlaTsKK+W+gj5TbzsKK+W+gz5PdTsKK+W+hD5LZWk7CivlvoU+VGFpOwor5b6HPlNodW47Civlvog+S29uOwor5b6KPkthaTsKK+W+iz5SaXRzdTsKK+W+jD5HbzsKK+W+kD5KbzsKK+W+kT5LZWk7CivlvpI+VG87CivlvpM+SnV1Owor5b6XPlRva3U7Civlvpg+SGFpOwor5b6ZPlNoaTsKK+W+nj5KdXU7CivlvqA+UmFpOwor5b6hPkd5bzsKK+W+qD5Lb3U7Civlvqk+RnVrdTsKK+W+qj5KdW47Civlvq0+WW91Owor5b6uPkJpOwor5b6zPlRva3U7CivlvrQ+Q2hvdTsKK+W+uT5UZXRzdTsKK+W+vD5LeW91Owor5b69PktpOwor5b+DPlNoaW47Civlv4U+SGl0c3U7Civlv4w+S2k7Civlv40+TmluOwor5b+WPlNvbjsKK+W/lz5TaGk7Civlv5g+Qm91Owor5b+ZPkJvdTsKK+W/nD5PdTsKK+W/nT5UZW47Civlv6A+Q2h1dTsKK+W/pD5HbzsKK+W/qz5LYWk7Civlv7A+U3VpOwor5b+xPlNoaW47Civlv7U+TmVuOwor5b+4Pkppa3U7Civlv7s+S2luOwor5b+9PktvdHN1Owor5b+/PkZ1bjsKK+aAjj5TaGluOwor5oCPPllvdTsKK+aAkD5Lb3U7CivmgJI+RG87CivmgJU+SGE7CivmgJY+RnU7CivmgJk+S287CivmgJs+RGF0c3U7CivmgJw+UmVpOwor5oCdPlNoaTsKK+aAoD5UYWk7CivmgKE+STsKK+aApT5LeXV1Owor5oCmPkhvdTsKK+aApz5TZWk7CivmgKg+RW47CivmgKk+Smk7CivmgKo+S2FpOwor5oCrPkZ1dHN1Owor5oCvPkt5b3U7CivmgLE+U291Owor5oGBPkluOwor5oGCPkp1bjsKK+aBgz5KaTsKK+aBhj5Lb3U7CivmgYo+S3lvdTsKK+aBiz5SZW47CivmgY0+S291Owor5oGQPkt5b3U7CivmgZI+S291Owor5oGVPkpvOwor5oGZPllvdTsKK+aBmj5JOwor5oGfPkt5b3U7CivmgaA+S2FpOwor5oGiPkthaTsKK+aBoz5TaGk7CivmgaQ+SnV0c3U7CivmgaU+Q2hpOwor5oGoPktvbjsKK+aBqT5PbjsKK+aBqj5LYWt1Owor5oGrPkRvdTsKK+aBrD5UZW47Civmga0+S3lvdTsKK+aBrz5Tb2t1Owor5oGwPktvdTsKK+aBtT5LZWk7Civmgbc+S3l1dTsKK+aCgT5FbjsKK+aCgz5Lb247CivmgoQ+U2hvdTsKK+aCiT5TaGl0c3U7Civmgos+UmluOwor5oKMPlRlaTsKK+aCjT5LYW47CivmgpI+WXV1Owor5oKUPkthaTsKK+aClj5IYWk7Civmgpc+QmFuOwor5oKaPlNob3U7Civmgps+U2VuOwor5oKfPkdvOwor5oKgPll1dTsKK+aCoz5LYW47CivmgqY+RXRzdTsKK+aCpz5SaTsKK+aCqT5Ob3U7Civmgqo+QWt1Owor5oKyPkhpOwor5oKzPlRva3U7CivmgrQ+U3VpOwor5oK1PkNob3U7CivmgrY+TW9uOwor5oK4PktpOwor5oK8PlRvdTsKK+aCvT5TZWk7Civmg4U+Sm91Owor5oOGPkNodXU7Civmg4c+VG9uOwor5oORPldha3U7Civmg5M+S2VuOwor5oOYPkJvdTsKK+aDmj5Lb3RzdTsKK+aDnD5TZWtpOwor5oOfPkk7Civmg6A+S2VpOwor5oOhPk87Civmg6M+U291Owor5oOnPkt1Owor5oOoPlNhbjsKK+aDsD5EYTsKK+aDsT5Ob3U7Civmg7M+U291Owor5oO0Plp1aTsKK+aDtj5Lb3U7Civmg7c+U2h1bjsKK+aDuT5KYTsKK+aDuj5TZWk7Civmg7s+U29rdTsKK+aEgD5TaG91Owor5oSBPlNodXU7CivmhIM+S2VuOwor5oSGPktlbjsKK+aEiD5ZdTsKK+aEiT5ZdTsKK+aEjT5CaW47CivmhI4+SHlva3U7CivmhI8+STsKK+aElT5HYWt1Owor5oSaPkd1Owor5oSbPkFpOwor5oSfPkthbjsKK+aEoT5Tb3U7CivmhKc+S2k7CivmhKg+S2FrdTsKK+aErD5TbzsKK+aEtD5Tb3U7CivmhLw+U2hpbjsKK+aEvT5IYWt1Owor5oS+PktpOwor5oS/PkdlbjsKK+aFgj5Zb3U7CivmhYQ+Uml0c3U7CivmhYc+SW47CivmhYg+Smk7CivmhYo+S2VuOwor5oWLPlRhaTsKK+aFjD5Lb3U7CivmhY0+VW47CivmhY4+U2hpbjsKK+aFkz5IeW91Owor5oWVPkJvOwor5oWYPlNhbjsKK+aFmT5aYW47CivmhZo+WmFuOwor5oWdPlRva3U7CivmhZ8+RG91Owor5oWiPk1hbjsKK+aFoz5LYW47CivmhaU+Wm91Owor5oWnPktlaTsKK+aFqD5HYWk7Civmhas+U2hvdTsKK+aFrj5SeW87Civmha8+U2hvdTsKK+aFsD5JOwor5oWxPlRhbjsKK+aFsz5LYW47CivmhbQ+U2hvdTsKK+aFtT5Zb3U7CivmhbY+S2VpOwor5oW3PktvdTsKK+aFvj5Zb2t1Owor5oaCPll1dTsKK+aGhz5LZWk7Civmhoo+SGFpOwor5oaOPlpvdTsKK+aGkD5SZW47CivmhpE+SHlvdTsKK+aGlD5TaG91Owor5oaWPkdpbjsKK+aGmT5LaTsKK+aGmj5UYW47CivmhqQ+RnVuOwor5oanPkRvdTsKK+aGqT5LZWk7Civmhqs+QmluOwor5oasPktlaTsKK+aGrj5CdTsKK+aGsj5LZW47CivmhrY+T2t1Owor5oa6PlRhbjsKK+aGvj5LYW47Civmh4M+S2luOwor5oeGPlNvdTsKK+aHhz5Lb247Civmh4g+S2FpOwor5oeJPllvdTsKK+aHij5PdTsKK+aHiz5Cb3U7Civmh4w+RWtpOwor5oeNPlJpbjsKK+aHkD5LYWk7Civmh6M+TW9uOwor5oemPkRhOwor5oeyPkNob3U7Civmh7Q+WmFuOwor5oe2PlJhbjsKK+aHtz5LYWk7Civmh7g+S2VuOwor5oe6PlphbjsKK+aHvD5LdTsKK+aHvT5LYW47Civmh74+U2hvdTsKK+aHvz5JOwor5oiAPlJlbjsKK+aIiD5LYTsKK+aIiT5FdHN1Owor5oiKPkJvOwor5oiMPkp1dHN1Owor5oiNPkp1Owor5oiOPkp1dTsKK+aIkD5TZWk7CivmiJE+R2E7CivmiJI+S2FpOwor5oiUPlNhbjsKK+aIlj5XYWt1Owor5oiaPlNla2k7CivmiJs+S2F0c3U7CivmiJ0+Wm9rdTsKK+aInj5LYXRzdTsKK+aInz5HZWtpOwor5oihPkthbjsKK+aIpj5TZW47CivmiKo+U2V0c3U7CivmiK4+UmlrdTsKK+aIrz5HaTsKK+aIsD5TZW47CivmiLI+R2k7CivmiLM+VGFrdTsKK+aItD5UYWk7CivmiLg+S287CivmiLs+UmVpOwor5oi/PkJvdTsKK+aJgD5TaG87CivmiYE+SGVuOwor5omHPlNlbjsKK+aJiD5LbzsKK+aJiT5IaTsKK+aJiz5TaHU7CivmiY0+U2FpOwor5omOPlNhdHN1Owor5omTPkRhOwor5omVPkZ1dHN1Owor5omYPlRha3U7CivmiZs+S291Owor5omePkthbjsKK+aJoD5TYTsKK+aJoz5Lb3U7Civmia4+RnVuOwor5omxPlNvdTsKK+aJtj5GdTsKK+aJuT5IaTsKK+aJvD5Ba3U7Civmib4+S2E7Civmib8+U2hvdTsKK+aKgD5HaTsKK+aKgj5LeW91Owor5oqDPkJlbjsKK+aKhD5TaG91Owor5oqJPktldHN1Owor5oqKPkhhOwor5oqRPllva3U7CivmipI+Sm87CivmipM+U291Owor5oqUPkhvdTsKK+aKlT5Ub3U7CivmipY+VG91Owor5oqXPktvdTsKK+aKmD5TZXRzdTsKK+aKmz5Ib3U7Civmipw+QmF0c3U7Civmip4+VGFrdTsKK+aKqz5IaTsKK+aKrD5UYWk7CivmirE+SG91Owor5oq1PlRlaTsKK+aKuT5NYXRzdTsKK+aKuz5TaGluOwor5oq8Pk91Owor5oq9PkNodXU7Civmi4I+RnV0c3U7Civmi4U+VGFuOwor5ouGPlRha3U7Civmi4c+Qm87Civmi4g+RGVuOwor5ouJPlJhdHN1Owor5ouKPkZ1Owor5ouMPkhhbjsKK+aLjT5IYWt1Owor5ouPPkRhOwor5ouQPkthaTsKK+aLkT5LYW47Civmi5I+S3lvOwor5ouTPlRha3U7Civmi5Q+QmF0c3U7Civmi5c+T3U7Civmi5g+S291Owor5ouZPlNldHN1Owor5oubPlNob3U7Civmi5w+SGFpOwor5oudPkhhaTsKK+aLoD5LeW87Civmi6E+S2FrdTsKK+aLrD5LYXRzdTsKK+aLrT5TaGlraTsKK+aLrj5LaXRzdTsKK+aLrz5Kb3U7Civmi7E+S3lvdTsKK+aLsz5LZW47Civmi7U+U29uOwor5ou2PlNhdHN1Owor5ou3PkdvdTsKK+aLvj5TaHV1Owor5ou/PkRhOwor5oyBPkppOwor5oyCPktlaTsKK+aMhz5TaGk7CivmjIg+S2V0c3U7CivmjIk+QW47CivmjIw+S2FrdTsKK+aMkT5DaG91Owor5oyZPkt5bzsKK+aMnz5LeW91Owor5oynPkt1Owor5oyoPkFpOwor5oyrPlphOwor5oyvPlNoaW47CivmjLo+VGVpOwor5oy9PkJhbjsKK+aMvj5LeW91Owor5oy/PlNvdTsKK+aNiT5Tb2t1Owor5o2MPkhhdHN1Owor5o2NPkthbjsKK+aNjz5EZXRzdTsKK+aNkD5FbjsKK+aNlT5IbzsKK+aNlz5IbzsKK+aNnD5Tb3U7Civmjac+SG91Owor5o2oPlNoYTsKK+aNqT5SZXRzdTsKK+aNqz5Nb247Civmja4+S3lvOwor5o2yPktlbjsKK+aNtj5TdWk7Civmjbc+U2hvdTsKK+aNuj5OYXRzdTsKK+aNuz5OZW47CivmjoA+S2luOwor5o6DPlNvdTsKK+aOiD5KdTsKK+aOiT5Ub3U7Civmjow+U2hvdTsKK+aOjj5LaTsKK+aOjz5Ub3U7CivmjpI+SGFpOwor5o6WPkVraTsKK+aOmD5LdXRzdTsKK+aOmz5LYTsKK+aOnz5Ub3U7CivmjqA+Unlha3U7CivmjqE+U2FpOwor5o6iPlRhbjsKK+aOoz5TZWk7CivmjqU+U2V0c3U7Civmjqc+S291Owor5o6oPlN1aTsKK+aOqT5FbjsKK+aOqj5TbzsKK+aOqz5Tb3U7Civmjqw+S2lrdTsKK+aOsj5LZWk7CivmjrQ+S2FrdTsKK+aOuz5Tb3U7Civmjr4+RW47Civmj4A+S2FuOwor5o+DPlNlbjsKK+aPhD5ZdTsKK+aPhj5LaTsKK+aPiT5KdXU7Civmj48+QnlvdTsKK+aPkD5UZWk7Civmj5I+U291Owor5o+WPll1dTsKK+aPmj5Zb3U7Civmj5s+S2FuOwor5o+hPkFrdTsKK+aPoz5TaGk7Civmj6k+S2FpOwor5o+uPktpOwor5o+0PkVuOwor5o+2PllhOwor5o+6PllvdTsKK+aQhj5Lb3U7CivmkI0+U29uOwor5pCPPkhha3U7CivmkJM+U2E7CivmkJY+WW91Owor5pCXPlRvdTsKK+aQnD5Tb3U7CivmkKY+SmFrdTsKK+aQqD5Ub3U7CivmkKw+SGFuOwor5pCtPlRvdTsKK+aQtD5LZW47CivmkLY+U2hvdTsKK+aQuj5LZWk7CivmkL4+U2FrdTsKK+aRgj5TZXRzdTsKK+aRjj5LeXV1Owor5pGYPlRla2k7Civmkac+U2FpOwor5pGpPk1hOwor5pGvPlNoaTsKK+aRtj5UYW47Civmkbg+TW87Civmkbo+U2hvdTsKK+aSgz5HZWtpOwor5pKIPlJvdTsKK+aSkj5TYW47CivmkpM+RG91Owor5pKVPlNlaTsKK+aSmj5OZW47Civmkp4+U2h1Owor5pKkPlRldHN1Owor5pKlPkhhdHN1Owor5pKpPlJ5b3U7Civmkqs+QnU7Civmkq0+SGE7Civmkq4+U2F0c3U7CivmkrA+U2FuOwor5pKyPkJva3U7Civmkrk+S2FrdTsKK+aSuz5UYWNoaTsKK+aSvD5LYW47Civmk4E+WW91Owor5pOCPlJhaTsKK+aThT5TZW47Civmk4c+VGFrdTsKK+aTjT5Tb3U7Civmk5I+S2luOwor5pOUPlRhbjsKK+aTmD5IYWt1Owor5pOaPkt5bzsKK+aToD5TZWk7Civmk6E+VGFpOwor5pOiPlRla2k7Civmk6M+VG91Owor5pOmPlNhdHN1Owor5pOnPkt5bzsKK+aTrD5HaTsKK+aTrz5IaW47Civmk7E+S2FrdTsKK+aTsj5UZWtpOwor5pO0Pktha3U7Civmk7Y+U2VuOwor5pO6PkhhaTsKK+aTvT5SeWFrdTsKK+aTvj5Kb3U7CivmlIA+SGFuOwor5pSFPlNhbjsKK+aUmD5Kb3U7CivmlJw+S2VpOwor5pSdPlNldHN1Owor5pSjPlJlbjsKK+aUpD5UYW47CivmlKo+S2FrdTsKK+aUqz5LYWt1Owor5pSsPlJhbjsKK+aUrz5TaGk7CivmlLQ+SG9rdTsKK+aUtT5Cb2t1Owor5pS2PlNodXU7CivmlLc+S291Owor5pS4Pll1dTsKK+aUuT5LYWk7CivmlLs+S291Owor5pS+PkhvdTsKK+aUvz5TZWk7CivmlYU+S287CivmlYg+S291Owor5pWNPkpvOwor5pWPPkJpbjsKK+aVkT5LeXV1Owor5pWVPkNob2t1Owor5pWWPkdvdTsKK+aVlz5IYWk7CivmlZg+Sm87CivmlZk+S3lvdTsKK+aVnT5IZWk7CivmlZ4+U2hvdTsKK+aVoj5LYW47CivmlaM+U2FuOwor5pWmPlRvbjsKK+aVrD5LZWk7CivmlbA+U3V1Owor5pWyPktvdTsKK+aVtD5TZWk7CivmlbU+VGVraTsKK+aVtz5GdTsKK+aVuD5TdXU7CivmloI+UmVuOwor5paDPkhlaTsKK+aWhz5CdW47Civmlog+R2FrdTsKK+aWiT5TZWk7Civmlow+SGluOwor5paOPlNhaTsKK+aWkD5IaTsKK+aWkT5IYW47Civmlpc+VG87Civmlpk+UnlvdTsKK+aWmz5Lb2t1Owor5pacPlNoYTsKK+aWnz5TaGluOwor5pahPkF0c3U7CivmlqQ+S2luOwor5palPlNla2k7Civmlqc+RnU7Civmlqs+U2hha3U7Civmlqw+WmFuOwor5patPkRhbjsKK+aWrz5TaGk7CivmlrA+U2hpbjsKK+aWtz5EYW47Civmlrk+SG91Owor5pa8Pk87Civmlr0+U2hpOwor5peBPkhvdTsKK+aXgz5TZW47Civml4Q+Qm91Owor5peFPlJ5bzsKK+aXhj5IYWk7Civml4s+U2VuOwor5peMPlNlaTsKK+aXjz5ab2t1Owor5peSPlJ5dXU7Civml5c+S2k7Civml5k+SGFuOwor5pebPkhhbjsKK+aXoD5CdTsKK+aXoT5LaTsKK+aXoj5LaTsKK+aXpT5OaWNoaTsKK+aXpj5UYW47Civml6c+S3l1dTsKK+aXqD5TaGk7Civml6k+U291Owor5pesPkp1bjsKK+aXrT5LeW9rdTsKK+aXsT5LYW47Civml7o+T3U7Civml7s+QmluOwor5piCPktvdTsKK+aYgz5Tb2t1Owor5piGPktvbjsKK+aYhz5TaG91Owor5piKPktvdTsKK+aYjD5TaG91Owor5piOPk1laTsKK+aYjz5Lb247CivmmJM+RWtpOwor5piUPlNla2k7CivmmJw+WW91Owor5pifPlNlaTsKK+aYoD5FaTsKK+aYpT5TaHVuOwor5pinPk1haTsKK+aYqD5TYWt1Owor5pitPlNob3U7CivmmK8+WmU7CivmmLQ+Qm91Owor5pi1PkppdHN1Owor5pi2PkNob3U7CivmmLw+Q2h1dTsKK+aYvz5Lb3U7CivmmYE+Q2hvdTsKK+aZgj5KaTsKK+aZgz5Lb3U7CivmmYQ+S291Owor5pmJPlNoaW47CivmmYs+U2hpbjsKK+aZjz5BbjsKK+aZkj5TYWk7CivmmZ0+Q2h1dTsKK+aZnj5LaTsKK+aZnz5TZWk7CivmmaI+U2V0c3U7CivmmaQ+R287CivmmaY+S2FpOwor5pmnPktvdTsKK+aZqD5TaGluOwor5pmpPkJhbjsKK+aZrj5GdTsKK+aZrz5LZWk7CivmmbA+U2VraTsKK+aZtD5TZWk7CivmmbY+U2hvdTsKK+aZuj5DaGk7CivmmoE+R3lvdTsKK+aagz5IaTsKK+aahD5LZW47Civmmoc+S2E7Civmmog+VW47Civmmok+S2k7Civmmo4+RWk7CivmmpE+U2hvOwor5pqWPkRhbjsKK+aalz5BbjsKK+aamD5Zb3U7Civmmp0+TWVpOwor5pqiPkNob3U7CivmmqY+UmVraTsKK+aaqz5aYW47Civmmq4+Qm87CivmmrQ+Qm91Owor5pq4PlJ5b3U7Civmmrk+U2VuOwor5pq8PkhldHN1Owor5pq+PlRvbjsKK+abgT5LaTsKK+abhD5Zb3U7Civmm4c+RG9uOwor5puJPkd5b3U7Civmm5Y+QWk7Civmm5k+U2hvOwor5puaPkJvdTsKK+abnD5Zb3U7Civmm50+QmFrdTsKK+aboD5Lb3U7Civmm6Y+R2k7Civmm6k+RG91Owor5puwPkV0c3U7Civmm7I+S3lva3U7Civmm7M+RWk7Civmm7Q+S291Owor5pu1PkVpOwor5pu3PkthdHN1Owor5pu4PlNobzsKK+abuT5Tb3U7Civmm7w+QmFuOwor5pu9PlpvOwor5pu+PlNvOwor5pu/PlRhaTsKK+acgD5TYWk7CivmnIM+S2FpOwor5pyIPkdldHN1Owor5pyJPll1dTsKK+aciz5Ib3U7CivmnI0+RnVrdTsKK+acjz5IaTsKK+aclD5TYWt1Owor5pyVPkNoaW47CivmnJY+Um91Owor5pyXPlJvdTsKK+acmz5Cb3U7CivmnJ0+Q2hvdTsKK+acnj5LaTsKK+acnz5LaTsKK+acpj5Cb3U7CivmnKc+Um91Owor5pyoPkJva3U7CivmnKo+TWk7CivmnKs+TWF0c3U7CivmnKw+SG9uOwor5pytPlNhdHN1Owor5pyuPkp1dHN1Owor5pyxPlNodTsKK+actD5Cb2t1Owor5py2PkRhOwor5py3PlRvdTsKK+acuD5SeW9rdTsKK+acuj5LaTsKK+acvT5LeXV1Owor5py/PlNoaTsKK+adhj5LYW47CivmnYk+U2FuOwor5p2OPlJpOwor5p2PPkt5b3U7CivmnZA+WmFpOwor5p2RPlNvbjsKK+adkz5IeW91Owor5p2WPkpvdTsKK+admT5Zb2t1Owor5p2cPkRvOwor5p2ePktvOwor5p2fPlNva3U7CivmnaA+S291Owor5p2hPkpvdTsKK+adpT5SYWk7Civmnao+QnlvdTsKK+adrT5Lb3U7Civmna8+SGFpOwor5p2wPktldHN1Owor5p2xPlRvdTsKK+adsj5Lb3U7CivmnbM+WW91Owor5p21PlNobzsKK+adtz5IYTsKK+advD5DaG87Civmnb4+U2hvdTsKK+advz5IYW47CivmnoU+S2VpOwor5p6HPkhpOwor5p6JPk91Owor5p6LPkhvdTsKK+aejD5GdW47CivmnpA+U2VraTsKK+aelT5DaGluOwor5p6XPlJpbjsKK+aemj5NYWk7Civmnpw+S2E7Civmnp0+U2hpOwor5p6iPlN1dTsKK+aepj5SbzsKK+aeqT5TaG91Owor5p6vPktvOwor5p6zPktpOwor5p60PkthaTsKK+aetj5LYTsKK+aetz5LYTsKK+aeuD5LdTsKK+aeuT5Ib3U7Civmn4E+VGE7Civmn4Q+SGVpOwor5p+GPlJvdTsKK+afij5TaHV1Owor5p+OPkZ1Owor5p+PPkhha3U7Civmn5A+Qm91Owor5p+RPkthbjsKK+afkz5TZW47Civmn5Q+Tnl1dTsKK+afmD5TaGE7Civmn5o+WXV1Owor5p+dPlRha3U7Civmn54+U2FrdTsKK+afoj5UZWk7Civmn6Q+U2E7Civmn6c+S287Civmn6k+S3l1dTsKK+afrD5LYW47Civmn64+VG90c3U7Civmn68+S2E7Civmn7E+Q2h1dTsKK+afsz5SeXV1Owor5p+0PlNhaTsKK+aftT5TYWt1Owor5p+7PlNhOwor5p++Pkt5dXU7Civmn78+U2hpOwor5qCEPkVpOwor5qCTPlNlbjsKK+aglj5TZWk7CivmoJc+Uml0c3U7CivmoJ4+S2FuOwor5qChPktvdTsKK+agoj5IYWt1Owor5qCpPkt1Owor5qCqPkNodTsKK+agqz5Tb247CivmoLI+R291Owor5qC0PlNlbjsKK+aguD5LYWt1Owor5qC5PktvbjsKK+agvD5Lb3U7CivmoL0+U2FpOwor5qGAPktldHN1Owor5qGBPktvdTsKK+ahgj5LZWk7CivmoYM+VG91Owor5qGGPkt5b3U7CivmoYg+QW47CivmoY0+S287CivmoY4+U2hpdHN1Owor5qGQPkRvdTsKK+ahkT5Tb3U7CivmoZM+S2FuOwor5qGUPktpdHN1Owor5qGZPlU7CivmoZw+T3U7CivmoZ8+U2FuOwor5qGjPlRvdTsKK+ahpz5LYWk7CivmobQ+RnU7CivmobY+VG91Owor5qG3Pktha3U7Civmob4+S3VuOwor5qG/PkthbjsKK+aigT5SeW91Owor5qKDPlRlaTsKK+aihT5CYWk7Civmoo0+U291Owor5qKPPktva3U7CivmopM+U2hpOwor5qKUPlNoaTsKK+ailz5Lb3U7Civmops+RGE7Civmop0+Sm91Owor5qKfPkt5b3U7CivmoqA+UnlvOwor5qKiPlNob3U7CivmoqY+TXU7Civmoqc+R287Civmoqg+Umk7Civmoq0+U2E7Civmoq8+VGVpOwor5qKwPkthaTsKK+aisT5Lb247CivmorM+U287CivmorU+RnV1Owor5qK2PkJpOwor5qK5PkJpbjsKK+aivD5Ub3U7Civmo4Q+S2k7Civmo4Y+UmluOwor5qOJPk1lbjsKK+ajij5LaTsKK+ajiz5LaTsKK+ajjT5Lb247Civmo5I+Qm91Owor5qOUPktvbjsKK+ajlT5TaHU7Civmo5c+U291Owor5qOYPkt5b2t1Owor5qOaPkhvdTsKK+ajnz5Ub3U7Civmo6A+VG91Owor5qOhPktvdTsKK+ajoz5UZWk7Civmo6c+U2FuOwor5qOuPlNoaW47Civmo68+SmluOwor5qOyPlNlaTsKK+ajuT5Ub3U7Civmo7o+S2FuOwor5qSAPldhbjsKK+akgT5LYWt1Owor5qSEPlNldHN1Owor5qSFPkk7CivmpIg+S2lrdTsKK+akiz5SeW91Owor5qSMPktvdTsKK+akjT5TaG9rdTsKK+akjj5Uc3VpOwor5qSPPkE7CivmpJI+U2hvdTsKK+aknD5LZW47CivmpKI+S2FpOwor5qSmPktlbjsKK+aksD5ZYTsKK+aktD5UYW47CivmpLY+U2h1Owor5qS5PkNoaW47CivmpL0+VGVuOwor5qS/PkNoaW47CivmpYo+WW91Owor5qWTPkZ1dTsKK+allD5TZXRzdTsKK+allT5EYTsKK+almT5Cb3U7CivmpZo+U287CivmpZw+S287CivmpZ0+UmVuOwor5qWePlJvdTsKK+aloD5OYW47CivmpaE+WXU7CivmpaI+U2h1dTsKK+alqj5Zb3U7Civmpas+U2h1dTsKK+alrT5HeW91Owor5qWuPkNobzsKK+alrz5KdW47CivmpbM+QmFpOwor5qW0PlRlaTsKK+altT5Hb2t1Owor5qW3PkthaTsKK+aluD5TaHV1Owor5qW5PkVpOwor5qW8PlJvdTsKK+alvT5HYWt1Owor5qaCPkdhaTsKK+amjj5LYTsKK+amkT5GdTsKK+amlD5Sb3U7CivmppU+WW91Owor5qabPlNoaW47Civmppw+Qm91Owor5qagPkJlaTsKK+ampz5IaTsKK+amrj5FaTsKK+amsT5TdWk7CivmprI+T3RzdTsKK+amtD5SeXV1Owor5qa7PlRvdTsKK+amvj5Lb3RzdTsKK+amvz5LaTsKK+angT5Lb3U7Civmp4M+SGFuOwor5qeHPlRlbjsKK+anij5TYWt1Owor5qeLPktvdTsKK+anjD5Uc3VpOwor5qeNPlNvdTsKK+anjj5TYTsKK+ankD5LYWk7Civmp5M+S291Owor5qeYPllvdTsKK+anmT5UZW47Civmp50+VG91Owor5qeePlJvdTsKK+anpz5TYW47Civmp6g+S2FrdTsKK+anqz5UYW47Civmp60+U2h1a3U7Civmp7I+S29rdTsKK+anuT5Lb3U7Civmp7s+S2k7Civmp70+U291Owor5qe/PktpbjsKK+aogj5HYWt1Owor5qiFPlNob3U7CivmqIo+SGFuOwor5qiLPlRvdTsKK+aojD5LYW47CivmqJI+TWl0c3U7CivmqJM+Um91Owor5qiUPlNvdTsKK+aolz5DaG87CivmqJk+SHlvdTsKK+aomz5LeXV1Owor5qiePlN1dTsKK+aonz5TaG91Owor5qihPk1vOwor5qiiPkJva3U7CivmqKM+WW91Owor5qipPktlbjsKK+aoqj5PdTsKK+aotT5TaG91Owor5qi2PlNhaTsKK+aouD5Cb2t1Owor5qi5Pkp1Owor5qi6PkthOwor5qi9PlNvbjsKK+aphD5LYW47CivmqYc+WmVpOwor5qmIPkRvdTsKK+apiz5LeW91Owor5qmYPktpdHN1Owor5qmZPlRvdTsKK+apnz5LaTsKK+apoT5TaG91Owor5qmiPkRhOwor5qmmPlRvdTsKK+apuD5TaG91Owor5qm/Pkt5b3U7CivmqoA+VGFuOwor5qqEPkdla2k7Civmqo0+WW9rdTsKK+aqjj5HbzsKK+aqkD5FbjsKK+aqlz5IYWt1Owor5qqcPkthaTsKK+aqoD5LZWk7CivmqqI+S2VuOwor5qqjPlNob3U7Civmqqo+UmVraTsKK+aqrD5Cb3U7Civmqq4+VG91Owor5qqzPkJpbjsKK+aquD5OZWk7Civmqrs+S2FuOwor5quBPk1pdHN1Owor5quCPlRvdTsKK+argz5LaTsKK+arkT5SYWk7Civmq5M+Um87Civmq5o+UnlvOwor5qubPlNoaXRzdTsKK+arnj5FbjsKK+arnz5SZWtpOwor5quoPlJvOwor5quqPlJla2k7Civmq7o+UmVpOwor5qu7Pk91Owor5qyEPlJhbjsKK+ashT5LeW87CivmrIo+S2VuOwor5qySPlJhbjsKK+aslj5SYW47CivmrJ0+VXRzdTsKK+asoD5LZXRzdTsKK+asoT5KaTsKK+asoz5Hb247CivmrKc+T3U7CivmrLI+WW9rdTsKK+astz5LaTsKK+asuD5BaTsKK+asuT5JOwor5qy6PkdpOwor5qy9PktpbjsKK+asvj5LYW47CivmrYM+U291Owor5q2HPktldHN1Owor5q2JPktlbjsKK+atjD5LYTsKK+atjj5UYW47CivmrZA+T3U7CivmrZM+S2FuOwor5q2UPkt5bzsKK+atmT5LeXV1Owor5q2bPkthbjsKK+atnz5ZbzsKK+atoT5LYW47CivmraI+U2hpOwor5q2jPlNlaTsKK+atpD5TaGk7CivmraY+QnU7Civmrak+SG87Civmrao+V2FpOwor5q2vPlNoaTsKK+atsz5TZWk7CivmrbQ+UmVraTsKK+atuD5LaTsKK+atuT5HYXRzdTsKK+atuz5TaGk7Civmrb8+Qm90c3U7CivmroA+WW91Owor5q6DPllvdTsKK+auhD5UZW47CivmroY+VGFpOwor5q6JPkp1bjsKK+auij5TaHU7Civmros+WmFuOwor5q6NPkh5b3U7CivmrpU+RnV1Owor5q6WPlNob2t1Owor5q6YPlphbjsKK+aunj5JbjsKK+aupD5TaG91Owor5q6qPkVpOwor5q6rPlRhbjsKK+aurz5IaW47CivmrrE+U2VuOwor5q6yPlNlbjsKK+ausz5TaHU7CivmrrQ+T3U7CivmrrU+RGFuOwor5q63PkluOwor5q66PlNhdHN1Owor5q67Pktha3U7Civmrrw+S2FrdTsKK+auvz5UZW47Civmr4A+S2k7Civmr4U+S2k7Civmr4Y+T3U7Civmr4s+QnU7Civmr40+Qm87Civmr44+TWFpOwor5q+SPkRva3U7Civmr5M+SWt1Owor5q+UPkhpOwor5q+YPkhpOwor5q+bPk1vdTsKK+avqz5Lb3U7Civmr6w+S3l1dTsKK+avrz5UYW47Civmr7M+WmVpOwor5rCIPlNlbjsKK+awjz5TaGk7CivmsJE+TWluOwor5rCTPkJvdTsKK+awlD5LaTsKK+awlz5LaTsKK+awmz5GdW47CivmsKM+S2k7CivmsKQ+SW47CivmsLQ+U3VpOwor5rC3Pkh5b3U7CivmsLg+RWk7CivmsL4+SGFuOwor5rGAPlRlaTsKK+axgT5KdXU7CivmsYI+S3l1dTsKK+axjj5IYW47CivmsZA+U2VraTsKK+axlT5TYW47CivmsZc+S2FuOwor5rGaPk87CivmsZ0+Sm87CivmsZ4+S291Owor5rGfPktvdTsKK+axoD5DaGk7Civmsag+QmVraTsKK+axqj5PdTsKK+axsD5UYTsKK+axsj5LeXV1Owor5rGzPkhlbjsKK+axuj5LZXRzdTsKK+axvT5LaTsKK+axvj5GdW47CivmsoE+U2hpbjsKK+aygj5LaTsKK+aygz5Zb2t1Owor5rKIPkNoaW47Civmsow+VG9uOwor5rKNPkdvOwor5rKQPkJva3U7CivmspI+Qm90c3U7CivmspM+VG91Owor5rKWPkNodXU7Civmspk+U2E7Civmspo+U2hpOwor5rKbPkhhaTsKK+ayoT5Cb3RzdTsKK+ayoj5UYWt1Owor5rKrPk1hdHN1Owor5rKuPlNobzsKK+aysT5UYTsKK+aysz5LYTsKK+ayuD5GdXRzdTsKK+ayuT5ZdTsKK+ayuj5UZW47Civmsrs+Smk7Civmsrw+U2hvdTsKK+ayvT5LbzsKK+ayvj5UZW47Civmsr8+RW47Civms4E+S3lvdTsKK+azhD5FaTsKK+azhT5TaHV1Owor5rOJPlNlbjsKK+azij5IYWt1Owor5rOMPkhpdHN1Owor5rOTPk91Owor5rOVPkhvdTsKK+azlz5TaGk7Civms5k+SG91Owor5rObPkhhbjsKK+aznT5TbzsKK+azoT5Ib3U7Civms6I+SGE7Civms6M+S3l1dTsKK+azpT5EZWk7Civms6g+Q2h1dTsKK+azqj5SdWk7Civms68+QmluOwor5rOwPlRhaTsKK+azsT5PdTsKK+azsz5FaTsKK+a0iz5Zb3U7CivmtIw+UmV0c3U7CivmtJI+U2VpOwor5rSXPlNlbjsKK+a0mT5TaHU7CivmtJs+UmFrdTsKK+a0nj5Eb3U7CivmtJ8+STsKK+a0pT5TaGluOwor5rSpPkVpOwor5rSqPktvdTsKK+a0qz5LeW9rdTsKK+a0sj5TaHV1Owor5rSzPkpvOwor5rS1PlNodW47CivmtLY+S3lvdTsKK+a0uD5Lb3U7CivmtLs+S2F0c3U7CivmtL0+S291Owor5rS+PkhhOwor5rWBPlJ5dXU7CivmtYQ+Sm91Owor5rWFPlNlbjsKK+a1mT5TZXRzdTsKK+a1mj5TaHVuOwor5rWcPkhpbjsKK+a1oz5LYW47CivmtaQ+S291Owor5rWmPkhvOwor5rWpPktvdTsKK+a1qj5Sb3U7Civmtaw+Umk7Civmta4+RnU7CivmtbQ+WW9rdTsKK+a1tz5LYWk7Civmtbg+U2hpbjsKK+a1uT5TaG91Owor5raFPk5ldHN1Owor5raIPlNob3U7Civmtow+WXV1Owor5raOPlNlbjsKK+a2kz5LZW47CivmtpU+VGVpOwor5raZPlJ1aTsKK+a2mz5Ub3U7Civmtpw+VG9rdTsKK+a2rz5HYWk7CivmtrI+RWtpOwor5ra1PkthbjsKK+a2uD5LbzsKK+a2vD5SeW91Owor5reAPlRlbjsKK+a3hT5TZWtpOwor5reGPktvdTsKK+a3hz5LaTsKK+a3iz5SaW47Civmt4w+U2hvdTsKK+a3kT5TaHVrdTsKK+a3kj5TZWk7Civmt5U+UmlrdTsKK+a3mD5Ub3U7Civmt5k+U291Owor5reePlNob3U7Civmt6E+VGFuOwor5rekPllvOwor5remPkthbjsKK+a3qD5Kb3U7Civmt6o+UmluOwor5rerPkluOwor5resPlNhaTsKK+a3rj5XYWk7Civmt7E+U2hpbjsKK+a3sz5TaHVuOwor5re1PkVuOwor5re3PktvbjsKK+a3uT5FbjsKK+a3uj5TZW47Civmt7s+VGVuOwor5riFPlNlaTsKK+a4hz5LYXRzdTsKK+a4iD5TYWk7CivmuIk+U2hvdTsKK+a4ij5FbjsKK+a4iz5KdXU7CivmuJM+S2VpOwor5riVPkVuOwor5riZPkthbjsKK+a4mj5TaG87CivmuJs+R2VuOwor5ridPll1Owor5rifPlRlaTsKK+a4oD5LeW87CivmuKE+VG87CivmuKM+U2E7CivmuKQ+Qm90c3U7CivmuKU+QWt1Owor5rimPkthOwor5ripPk9uOwor5rirPlNldHN1Owor5risPlNva3U7CivmuK0+STsKK+a4rj5LYTsKK+a4rz5Lb3U7CivmuLg+WXV1Owor5ri6PkJ5b3U7CivmuL4+S29uOwor5rmDPkhhaTsKK+a5ij5Tb3U7CivmuY0+VGFuOwor5rmOPkJlbjsKK+a5lj5LbzsKK+a5mD5TaG91Owor5rmbPlRhbjsKK+a5nz5Lb3U7Civmuac+WXV1Owor5rmrPlNob3U7Civmua4+SW47Civmua8+VG91Owor5rmyPkthbjsKK+a5tj5TZW47Civmub4+V2FuOwor5rm/PlNoaXRzdTsKK+a6gD5NYW47CivmuoI+UmF0c3U7Civmuow+SGF0c3U7Civmuo8+VG91Owor5rqQPkdlbjsKK+a6lj5KdW47Civmupg+S291Owor5rqcPlJ5dXU7Civmup0+S291Owor5rqfPk1laTsKK+a6oj5JdHN1Owor5rqlPkhvOwor5rqqPktlaTsKK+a6rz5TbzsKK+a6sj5Tb3U7CivmurY+WW91Owor5rq3PktvbjsKK+a6uj5EZWtpOwor5rq9Pkpva3U7Civmu4I+Qm91Owor5ruEPlNvdTsKK+a7hT5NZXRzdTsKK+a7iT5Lb3U7Civmu4s+Smk7Civmu4w+RGVraTsKK+a7kT5LYXRzdTsKK+a7kz5TYWk7Civmu5Q+VG91Owor5ruVPlRvdTsKK+a7nT5Tb3U7Civmu54+VGFpOwor5rusPktvOwor5ruvPlRhaTsKK+a7sj5TaGluOwor5ru0PlRla2k7Civmu7c+Um87Civmu7g+S287Civmu74+S29uOwor5ru/Pk1hbjsKK+a8gT5SeW91Owor5ryCPkh5b3U7CivmvIY+U2hpdHN1Owor5ryJPlJva3U7CivmvI8+Um91Owor5ryRPkdhaTsKK+a8kz5SaTsKK+a8lD5FbjsKK+a8lT5Tb3U7CivmvKA+QmFrdTsKK+a8oj5LYW47CivmvKM+UmFuOwor5ryrPk1hbjsKK+a8rD5TaGk7CivmvLE+U291Owor5ryyPkNob3U7CivmvLg+WmVuOwor5ry+PllvdTsKK+a8vz5TaG91Owor5r2BPkVpOwor5r2FPkthbjsKK+a9lD5LZXRzdTsKK+a9mD5IYW47CivmvZs+U2VuOwor5r2cPlNlbjsKK+a9nz5TZWtpOwor5r2kPkp1bjsKK+a9pj5Sb3U7Civmva0+VGFuOwor5r2uPkNob3U7Civmva8+SmluOwor5r2wPkthaTsKK+a9tD5DaG87Civmvbg+U2FuOwor5r26PlNhbjsKK+a9vD5Eb3U7CivmvoA+SnV1Owor5r6BPkp1dTsKK+a+gj5DaG91Owor5r6EPkNob3U7CivmvoY+R3lvdTsKK+a+jj5Ib3U7CivmvpE+Unl1dTsKK+a+lz5LYW47CivmvqE+U291Owor5r6jPkthbjsKK+a+pD5UYWt1Owor5r6qPlJlaTsKK+a+sT5UZW47CivmvrM+SWt1Owor5r65PlRhbjsKK+a/gD5HZWtpOwor5r+BPkRha3U7Civmv4I+UmVuOwor5r+DPk5vdTsKK+a/hj5GdW47Civmv5Q+RGVpOwor5r+VPlNoaXRzdTsKK+a/mD5OZWk7Civmv58+U2FpOwor5r+gPkdvdTsKK+a/oT5KdTsKK+a/pD5Ub3U7Civmv6s+UmFuOwor5r+sPlNodW47Civmv64+SG9rdTsKK+a/rz5UYWt1Owor5r+xPkhpbjsKK+a/sz5TZW47Civmv7Y+S2F0c3U7Civmv7o+U2VuOwor5r++PlJ5bzsKK+eAgT5Zb3U7CivngIk+U2hhOwor54CLPlNoaW47CivngI8+Unl1dTsKK+eAkT5CYWt1Owor54CVPkhpbjsKK+eAmD5SbzsKK+eAmj5LYW47CivngJs+RWk7CivngJ0+UmVraTsKK+eAnj5Kb3U7CivngJ8+U2hvdTsKK+eApj5DaG87CivngKc+U291Owor54CsPlJhaTsKK+eAsD5CaTsKK+eAsj5SZW47CivngL4+UmFuOwor54GMPkthbjsKK+eBkT5TYWk7CivngZg+RGFuOwor54GjPldhbjsKK+eBqz5LYTsKK+eBrz5Ub3U7CivngbA+S2FpOwor54G4Pkt5dXU7Civngbw+U2hha3U7Civngb0+U2FpOwor54KJPlJvOwor54KKPlN1aTsKK+eCjj5FbjsKK+eCkj5Tb3U7Civngpk+U2hhOwor54KsPktvOwor54KtPlRhbjsKK+eCrj5Ib3U7Civngq8+S2VpOwor54KzPkhlaTsKK+eCuD5TYWt1Owor54K5PlRlbjsKK+eCuj5JOwor54OIPlJldHN1Owor54OLPktvdTsKK+eDjz5VOwor54OZPlJha3U7Civng50+Sm91Owor54OfPkVuOwor54OxPktlaTsKK+eDuT5Ib3U7Civng70+SG91Owor54SJPkVuOwor54SUPkVuOwor54SZPkhvdTsKK+eEmj5GdW47CivnhJw+S29uOwor54ShPk11Owor54SmPlNob3U7CivnhLY+WmVuOwor54S8PlNob3U7CivnhYk+UmVuOwor54WMPktvdTsKK+eFjj5TZW47CivnhZU+S2k7CivnhZY+RGFuOwor54WZPkVuOwor54WiPktlaTsKK+eFpD5CYWk7CivnhaU+S2FuOwor54WmPkt1Owor54WnPlNob3U7Civnhak+SGFuOwor54WsPllvdTsKK+eFrj5TaGE7Civnhb0+U2VuOwor54aEPlNva3U7Civnhog+S2k7Civnhoo+WXV1Owor54aPPkt1bjsKK+eGlD5Zb3U7CivnhpU+S291Owor54aZPktpOwor54afPkp1a3U7Civnhqg+STsKK+eGrD5Hb3U7CivnhrE+TmV0c3U7Civnhrk+S2k7Civnhr4+U2hpOwor54eDPk5lbjsKK+eHiD5Ub3U7Civnh4k+VG9uOwor54eOPlJ5b3U7Civnh5A+UmluOwor54eSPlNob3U7Civnh5Q+SGFuOwor54eVPkVuOwor54eXPlJhbjsKK+eHnz5FaTsKK+eHoD5Ja3U7Civnh6U+U291Owor54emPlNhbjsKK+eHpz5TdWk7Civnh6w+S2k7Civnh60+U2hva3U7Civnh64+U2hvdTsKK+eHtT5UYXRzdTsKK+eHuT5TZW47Civnh7s+S3VuOwor54e8PkppbjsKK+eHvz5Zb3U7CivniIY+QmFrdTsKK+eIjT5TaGFrdTsKK+eIkD5SbzsKK+eImz5SYW47CivniKg+U2FuOwor54iqPlNvdTsKK+eIrD5IYTsKK+eIrT5Tb3U7CivniLA+RW47CivniLI+STsKK+eItT5TaGFrdTsKK+eItj5GdTsKK+eIuj5ZYTsKK+eIuz5Lb3U7CivniLw+U2hvOwor54i9PlNvdTsKK+eIvj5KaTsKK+eIvz5TaG91Owor54mAPlNvdTsKK+eJhj5TaG91Owor54mHPkhlbjsKK+eJiD5IYW47CivniYs+U2VuOwor54mMPkhhaTsKK+eJkj5DaG91Owor54mYPlRva3U7CivniZk+R2E7CivniZs+R3l1dTsKK+eJnT5IaW47CivniZ8+Qm91Owor54mhPkJvOwor54miPlJvdTsKK+eJpz5Cb2t1Owor54mpPk1vdHN1Owor54myPlNlaTsKK+eJtD5UZWk7Civnibk+VG9rdTsKK+eJvT5LZW47Civnib4+R287CivnioA+U2VpOwor54qBPlJpOwor54qCPlJpOwor54qHPkhvbjsKK+eKkj5Lb3U7CivnipY+UmFrdTsKK+eKoD5HaTsKK+eKoj5Ub2t1Owor54qnPkdpOwor54qsPktlbjsKK+eKrz5IYW47CivnirI+U2FpOwor54q2PkpvdTsKK+eKuT5ZdXU7Civni4I+S3lvdTsKK+eLgz5KdXU7Civni4Q+VGVraTsKK+eLhj5DaHV1Owor54uOPktvdTsKK+eLkD5LbzsKK+eLkj5IaTsKK+eLlz5Lb3U7Civni5k+U2hvOwor54ubPkhha3U7Civni6A+R2FuOwor54uhPktvdTsKK+eLoj5LYWt1Owor54upPlNodTsKK+eLrD5Eb2t1Owor54utPkt5b3U7Civni7c+S2VuOwor54u4PlJpOwor54u5Pkt5b3U7Civni7w+Um91Owor54u9PkhhaTsKK+eMij5HZWk7CivnjJY+U2hvdTsKK+eMlz5JOwor54ybPk1vdTsKK+eMnD5TYWk7CivnjJ0+U290c3U7CivnjJ8+UnlvdTsKK+eMpT5XYWk7CivnjKk+U2VpOwor54yqPkNobzsKK+eMqz5CeW91Owor54yuPktlbjsKK+eMrz5UYW47CivnjLQ+S291Owor54y2Pll1dTsKK+eMtz5ZdXU7CivnjL4+S2F0c3U7CivnjL8+RW47CivnjYQ+R29rdTsKK+eNhT5TaGk7CivnjY4+U2hvdTsKK+eNjz5CYWt1Owor542XPktldHN1Owor542jPkp1dTsKK+eNqD5Eb2t1Owor542qPkthaTsKK+eNsD5Eb3U7CivnjbI+S2FrdTsKK+eNtT5SeW91Owor5424Pkp1dTsKK+eNuj5EYXRzdTsKK+eNuz5LZW47CivnjoQ+R2VuOwor546HPlJpdHN1Owor546JPkd5b2t1Owor546LPk91Owor546WPkt5dXU7Civnjqk+R2FuOwor546yPlJlaTsKK+eOsz5UYWk7Civnjrs+SGE7Civnj4A+SGFrdTsKK+ePgj5LYTsKK+ePiD5LYTsKK+ePij5TYW47Civnj40+Q2hpbjsKK+ePjj5DaGluOwor54+ePlJha3U7Civnj6A+U2h1Owor54+lPkppOwor54+qPktlaTsKK+ePrT5IYW47Civnj64+SGFpOwor54+xPkVpOwor54+4PkdvOwor54++PkdlbjsKK+eQgz5LeXV1Owor55CFPlJvdTsKK+eQhj5SaTsKK+eQiT5SeXV1Owor55CiPlRha3U7CivnkKU+S287CivnkLI+SGFpOwor55CzPlJpbjsKK+eQtD5LaW47CivnkLU+Qmk7CivnkLY+SGE7CivnkLo+SG91Owor55C/PktvbjsKK+eRgT5Cb3U7CivnkZU+S2E7CivnkZk+RG91Owor55GaPktvOwor55GbPkVpOwor55GcPll1Owor55GePlp1aTsKK+eRnz5TaGl0c3U7CivnkaA+Unl1dTsKK+eRoz5TYTsKK+eRpD5Zb3U7Civnkak+RWk7Civnkao+QmE7Civnka8+Um91Owor55GwPkthaTsKK+eRsz5TYTsKK+eRtj5Zb3U7Civnkb4+S2luOwor55KDPlJpOwor55KLPlNob3U7Civnkp4+SGFrdTsKK+eSoj5SeXV1Owor55KnPkhla2k7CivnkrA+S2FuOwor55K9PkppOwor55OKPktlaTsKK+eTjz5Sb3U7Civnk5Q+RWk7Civnk5w+S2E7Civnk6A+S287Civnk6I+SHlvdTsKK+eToz5CZW47Civnk6Y+R2E7Civnk64+T3U7Civnk7Y+SGVpOwor55O3PlNoaTsKK+eUgz5TaHV1Owor55SEPktlbjsKK+eUjD5PdTsKK+eUjT5Cb3U7CivnlI4+U2VuOwor55SRPlNvdTsKK+eUkz5IZWtpOwor55SVPk91Owor55SYPkthbjsKK+eUmj5TaGluOwor55ScPlRlbjsKK+eUnj5TaG91Owor55SfPlNlaTsKK+eUoz5TYW47CivnlKU+U2VpOwor55SmPlNvOwor55SoPllvdTsKK+eUqz5IbzsKK+eUrD5Zb3U7CivnlLA+RGVuOwor55SxPll1dTsKK+eUsj5Lb3U7CivnlLM+U2hpbjsKK+eUtz5EYW47CivnlLg+VGVuOwor55S6PkNob3U7CivnlLs+R2E7CivnlLw+Q2hvdTsKK+eVhD5SeXV1Owor55WGPkhvOwor55WJPkZ1Owor55WKPktvdTsKK+eViz5UZW47CivnlYw+S2FpOwor55WNPkthaTsKK+eVjz5JOwor55WUPkhhbjsKK+eVmT5SeXV1Owor55WaPkhvbjsKK+eVmz5TaGluOwor55WcPkNoaWt1Owor55WdPkhvOwor55WiPkhpdHN1Owor55WkPlNoaTsKK+eVpT5SeWFrdTsKK+eVpj5LZWk7Civnlac+Unlha3U7Civnlao+QmFuOwor55WrPktha3U7Civnla0+WW87CivnlbA+STsKK+eVsz5Kb3U7CivnlbQ+Q2h1dTsKK+eVtj5Ub3U7Civnlbc+VGV0c3U7Civnlbg+S2k7Civnlb8+S2k7CivnloI+Sm91Owor55aGPkt5b3U7Civnloc+Q2h1dTsKK+eWiT5Kb3U7Civnloo+Sm91Owor55aLPlNvOwor55aOPlNvOwor55aPPlNvOwor55aRPkdpOwor55aUPkNob3U7Civnlpo+S3l1dTsKK+eWnT5TYW47CivnlqM+WXV1Owor55alPkthaTsKK+eWqz5Fa2k7CivnlrE+SG91Owor55ayPkhpOwor55azPkthbjsKK+eWtT5TaGk7Civnlrg+VGFuOwor55a5PlNoaW47Civnlrw+VG91Owor55a9PlNobzsKK+eWvj5TaGl0c3U7Civnl4I+S2E7Civnl4M+S2VuOwor55eFPkJ5b3U7Civnl4c+U2hvdTsKK+eXij5TZW47Civnl40+STsKK+eXkj5Zb3U7Civnl5Q+Smk7Civnl5U+S29uOwor55eYPlRvdTsKK+eXmT5LZWk7Civnl5s+VHM7Civnl54+SGk7Civnl6I+Umk7Civnl6M+U2hpOwor55epPlNvdTsKK+eXsD5UYW47Civnl7I+TWE7Civnl7M+UmluOwor55e0PkNoaTsKK+eXuj5IaTsKK+eXvD5LbzsKK+eXvj5BOwor55e/Pkk7CivnmIE+U3VpOwor55iJPll1Owor55iLPkZ1dTsKK+eYjT5Zb3U7CivnmJ8+T247CivnmKA+U2VraTsKK+eYoT5Tb3U7CivnmKI+SGFuOwor55ikPlJ5dXU7CivnmKc+R3lha3U7CivnmLA+UnVpOwor55i0PlNob3U7CivnmLs+Um91Owor55mCPlJ5b3U7CivnmYY+Um91Owor55mHPkthbjsKK+eZiD5IYWk7CivnmYw+R2FuOwor55mSPll1Owor55mWPkhla2k7CivnmZg+UmVpOwor55mcPkRlbjsKK+eZoT5DaGk7CivnmaI+WW91Owor55mnPlJla2k7Civnmag+S2FrdTsKK+eZqT5SYWk7Civnmao+U2hha3U7Civnmaw+U2VuOwor55mwPllvdTsKK+eZsj5UZW47CivnmbY+SGF0c3U7Civnmbg+S2k7Civnmbo+SG90c3U7Civnmbs+VG91Owor55m8PkhvdHN1Owor55m9Pkhha3U7Civnmb4+SHlha3U7CivnmoA+SHl1dTsKK+eagz5Cb3U7CivnmoQ+VGVraTsKK+eahj5LYWk7Civnmoc+S291Owor55qIPktpOwor55qLPktvdTsKK+eajj5Lb3U7CivnmpA+S291Owor55qTPktvdTsKK+ealj5LYW47Civnmpk+U2VraTsKK+eamj5HYWk7Civnmq4+SGk7CivnmrA+SG91Owor55q0PlNodW47Civnmrc+S287Civnmrg+S3VuOwor55q5Pkt1bjsKK+eauj5TdXU7Civnmr8+QmFpOwor55uCPlU7Civnm4M+SGFpOwor55uGPkJvbjsKK+ebiD5FaTsKK+ebij5Fa2k7Civnm40+S291Owor55uSPktvdTsKK+eblj5HYWk7Civnm5c+VG91Owor55ubPlNlaTsKK+ebnD5Ub3U7Civnm54+U2FuOwor55ufPk1laTsKK+eboT5KaW47Civnm6M+S2FuOwor55ukPkJhbjsKK+ebpT5LYW47Civnm6c+Um87Civnm6o+VG91Owor55uuPk1va3U7Civnm7I+TW91Owor55u0PkNob2t1Owor55u4PlNob3U7Civnm7s+S2VpOwor55u+Pkp1bjsKK+ecgT5TZWk7CivnnIQ+QmVuOwor55yHPkJ5b3U7CivnnIg+VGFuOwor55yJPkJpOwor55yLPkthbjsKK+ecjD5LZW47CivnnJs+TWFpOwor55yePlNoaW47CivnnJ8+U2hpbjsKK+ecoD5NaW47CivnnKQ+VGVpOwor55ylPlNlaTsKK+ecpj5TZWk7CivnnKk+R2VuOwor55y3PktlbjsKK+ecuD5Cb3U7CivnnLo+Q2hvdTsKK+ecvD5HYW47CivnnYA+Q2hha3U7CivnnYc+VGVpOwor552aPkdhaTsKK+edmz5TZWk7CivnnaE+U3VpOwor552jPlRva3U7CivnnaU+SGVpOwor552mPkJva3U7Civnnag+R2VpOwor552rPlNob3U7Civnnbk+VG87Civnnb4+S291Owor552/PkVpOwor556LPlNoaW47Civnno4+S2F0c3U7CivnnpE+TWVpOwor556ePkJhbjsKK+eeoD5Eb3U7CivnnqU+QmV0c3U7Civnnqw+U2h1bjsKK+eerT5SeW91Owor556wPkthbjsKK+eesz5Eb3U7CivnnrY+S2k7Civnnrk+QWk7Civnnrs+U2VuOwor5568PktlbjsKK+eevT5LbzsKK+eevz5LdTsKK+efhz5Nb3U7Civnn40+S2FrdTsKK+eflz5DaGlrdTsKK+efmj5TaG9rdTsKK+efmz5NdTsKK+efnD5LaW47Civnn6I+U2hpOwor55+jPkk7Civnn6U+Q2hpOwor55+nPlNoaW47Civnn6k+S3U7Civnn60+VGFuOwor55+uPldhaTsKK+efrz5LeW91Owor55+zPlNoYWt1Owor55+8PktvdTsKK+eggj5TYTsKK+egjD5TZWk7CivnoJI+SGk7CivnoJQ+S2VuOwor56CVPlNhaTsKK+egoD5TaG87CivnoKU+U2hpOwor56CmPlNhaTsKK+egpz5DaGluOwor56CyPkhvdTsKK+egtD5IYTsKK+eguj5SZWk7CivnoL8+S291Owor56GFPktlaTsKK+ehnT5TaG91Owor56GrPlJ5dXU7Civnoaw+S291Owor56GvPktlbjsKK+ehvD5Ib3U7CivnooE+R287CivnooY+SGE7Civnooc+VGVpOwor56KMPlJva3U7Civnoo0+R2FpOwor56KOPlNhaTsKK+eikT5IaTsKK+eikz5UYWk7CivnopU+S2k7Civnopc+V2FuOwor56KaPkhhaTsKK+eioz5LZXRzdTsKK+eipz5IZWtpOwor56KpPlNla2k7Civnoqo+Q2hpbjsKK+eirz5Eb3U7CivnorU+U2VraTsKK+eiuj5LYWt1Owor56K8PkJhOwor56K+PlRlbjsKK+ejgT5KaTsKK+ejhT5Ib3U7Civno4Y+S2F0c3U7Civno4o+UmFpOwor56OLPlNhOwor56OQPkhhbjsKK+ejkT5HYWk7Civno5Q+VGFrdTsKK+ejmj5TZW47Civno6c+U2VraTsKK+ejqD5NYTsKK+ejrD5LZWk7Civno68+S2k7Civno7Q+VG91Owor56O9PktvdTsKK+ekgT5TaG91Owor56SHPklrdTsKK+ekjj5TbzsKK+ekkT5Ub3U7CivnpJI+R2k7CivnpJk+R2FpOwor56SmPktvdTsKK+ekqj5SZWk7CivnpKs+UmVraTsKK+ekrD5CYW47CivnpLo+U2hpOwor56S8PlJlaTsKK+ekvj5TaGE7CivnpYA+U2hpOwor56WBPktpOwor56WHPktpOwor56WIPktpOwor56WJPlNoaTsKK+elkD5ZdXU7CivnpZM+RnV0c3U7CivnpZU+SGk7CivnpZY+U287CivnpZc+U2hpOwor56WaPlNvOwor56WdPlNodWt1Owor56WePlNoaW47CivnpZ8+U3VpOwor56WgPlNoaTsKK+eloj5EZWk7CivnpaU+U2hvdTsKK+elqD5IeW91Owor56WtPlNhaTsKK+eltz5Ub3U7Civnpbo+S2k7Civnpb8+Um9rdTsKK+emgD5SaW47CivnpoE+S2luOwor56aEPlJva3U7CivnpoU+WmVuOwor56aKPktlaTsKK+emjT5LYTsKK+emjj5UZWk7Civnpo8+RnVrdTsKK+emnT5TaG9rdTsKK+empj5HeW87Civnpqc+S2k7Civnpqo+WmVuOwor56auPlJlaTsKK+emsD5EZWk7CivnprM+Sm91Owor56a5PlU7Civnpro+R3V1Owor56a9PktpbjsKK+emvj5LYTsKK+emvz5Ub2t1Owor56eAPlNodXU7Civnp4E+U2hpOwor56eJPkhlaTsKK+eniz5TaHV1Owor56eRPkthOwor56eSPkJ5b3U7Civnp5U+SGk7Civnp5g+SGk7Civnp58+U287Civnp6E+SGF0c3U7Civnp6M+TWF0c3U7Civnp6Q+U2hvdTsKK+enpj5TaGluOwor56enPk91Owor56epPkNoaXRzdTsKK+enrD5LeW87Civnp7A+U2hvdTsKK+enuz5JOwor56iAPktpOwor56iIPkthbjsKK+eoiz5UZWk7CivnqI0+U291Owor56iOPlplaTsKK+eolD5KaW47CivnqJc+SGFpOwor56iYPktpOwor56iZPkNob2t1Owor56iaPkNoaTsKK+eonD5SeW91Owor56ifPlJpbjsKK+eooD5DaHV1Owor56iuPlNodTsKK+eosT5TaG91Owor56iyPlRvdTsKK+eotz5TaG9rdTsKK+eouz5Ub3U7CivnqLw+S2E7CivnqL0+S2VpOwor56i+PktvdTsKK+eovz5Lb3U7CivnqYA+S29rdTsKK+epgj5TdWk7CivnqYM+WW91Owor56mGPkJva3U7CivnqYk+Q2hpOwor56mNPlNla2k7CivnqY4+RWk7CivnqY8+T247CivnqZA+U2h1dTsKK+eplz5TdWk7CivnqaE+U2hva3U7CivnqaI+QWk7CivnqaM+Sm91Owor56mpPk9uOwor56mrPktha3U7CivnqbA+Sm91Owor56m0PktldHN1Owor56m2Pkt5dXU7Civnqbk+S3l1dTsKK+epuj5LdXU7Civnqb0+U2VpOwor56m/PlNlbjsKK+eqgT5Ub3RzdTsKK+eqgz5TZXRzdTsKK+eqhD5TYWt1Owor56qIPllvdTsKK+eqkj5DaGl0c3U7CivnqpM+U291Owor56qVPkNob3U7CivnqpY+S291Owor56qXPlNvdTsKK+eqmD5LaW47Civnqp8+S3V0c3U7Civnqqk+S2E7Civnqqo+V2E7Civnqq4+S3l1dTsKK+eqrz5Zb3U7CivnqrA+WW91Owor56q2Pkt1Owor56q6PktpOwor56q/PlJ5dXU7Civnq4M+U291Owor56uEPlphbjsKK+erhT5LeW91Owor56uHPlRvdTsKK+eriD5Tb3U7Civnq4o+U2V0c3U7Civnq4s+Uml0c3U7Civnq5I+S2k7Civnq5k+VGFuOwor56uaPkNobzsKK+ernD5SeXV1Owor56udPkhlaTsKK+ernz5LZWk7Civnq6A+U2hvdTsKK+eroj5TaGk7Civnq6M+U2h1bjsKK+erpT5Eb3U7Civnq6Y+U2hvdTsKK+erqj5KdTsKK+errT5LZXRzdTsKK+errz5UYW47Civnq7Y+S3lvdTsKK+eruD5LZWk7Civnq7k+Q2hpa3U7Civnq7o+VG9rdTsKK+ervz5LYW47CivnrIQ+S2VpOwor56yGPkhhOwor56yIPkt5dXU7CivnrIo+U291Owor56yLPkp1bjsKK+esjz5Lb3RzdTsKK+eskT5TaG91Owor56yYPlNlbjsKK+esmT5Tb3U7CivnrJs+VGVraTsKK+esnj5DaGk7CivnrKA+Unl1dTsKK+espT5TaGk7CivnrKY+RnU7CivnrKg+SG9uOwor56ysPkRhaTsKK+essz5LYTsKK+estT5IYW47CivnrLY+U2hpOwor562FPlNlbjsKK+ethj5IaXRzdTsKK+etiD5LYXRzdTsKK+etiT5Ub3U7CivnrYs+S2luOwor562MPlNlbjsKK+etjT5KdW47CivnrY8+QmF0c3U7CivnrZA+S3lvdTsKK+etkT5DaGlrdTsKK+etkj5Ub3U7CivnrZQ+VG91Owor562WPlNha3U7CivnrZ0+U291Owor562lPkt5bzsKK+etpz5LZW47Civnraw+U2VpOwor562uPlNlaTsKK+etsD5TYWt1Owor562xPlNob3U7CivnrbQ+S3lvdTsKK+ettT5FbjsKK+etuj5LeW91Owor566GPkhlaTsKK+euhz5LYTsKK+euiz5TZW47Civnro0+S287Civnro8+U291Owor566SPlNvdTsKK+eulD5IYWt1Owor566VPktpOwor566XPlNhbjsKK+eumD5LaW47Civnrpk+RnVrdTsKK+eumj5TYXRzdTsKK+eunD5Lb3U7Civnrp0+S2FuOwor566fPktpbjsKK+euoT5LYW47Civnrqo+VGFuOwor566tPlNlbjsKK+eusT5TaG91Owor5660PlNoaW47Civnrrg+Q2hvOwor56+APlNldHN1Owor56+BPktvdTsKK+evhD5IYW47Civnr4Y+VGVuOwor56+HPkhlbjsKK+eviT5DaGlrdTsKK+eviz5LeW91Owor56+MPktvdTsKK+evjz5LYW47Civnr50+S291Owor56+gPlNob3U7Civnr6Q+VG9rdTsKK+evpT5SaXRzdTsKK+evpj5IZWk7Civnr6k+U2hpOwor56+tPlJvdTsKK+evsz5IaXRzdTsKK+evtj5FbjsKK+evtz5Ib3U7CivnsIA+U2FrdTsKK+ewhz5Tb3U7CivnsI0+Um91Owor57CRPlNhOwor57CSPlNhbjsKK+ewkz5TZW47CivnsJQ+U2E7CivnsJ8+VGVuOwor57ChPkthbjsKK+ewoz5LaTsKK+ewpz5Lb3U7CivnsKo+U2hpbjsKK+ewqz5TaG91Owor57C3PkVuOwor57C4PkhhOwor57C9PlNlbjsKK+ewvj5SZW47CivnsL8+Qm87CivnsYA+Q2h1dTsKK+exgz5SYW47CivnsYw+Q2h1dTsKK+exjT5TZWtpOwor57GQPlRvdTsKK+exlD5TdTsKK+exlj5TZW47CivnsZg+VG91Owor57GfPlJhaTsKK+exoD5Sb3U7CivnsaQ+U2VuOwor57GlPllha3U7Civnsaw+Umk7CivnsbM+QmVpOwor57KDPkhpOwor57KJPkZ1bjsKK+eyiz5TdWk7CivnspA+Um87CivnspI+Unl1dTsKK+eylT5IYWt1Owor57KXPlNvOwor57KYPk5lbjsKK+eymz5TaHVrdTsKK+eynz5ab2t1Owor57KhPlRvdTsKK+eyoj5TaGk7CivnsqQ+RXRzdTsKK+eypT5TaHVrdTsKK+eypz5TaG91Owor57KrPkppOwor57KuPlJ5b3U7CivnsrE+UnlvdTsKK+eysj5TYW47CivnsrM+S291Owor57K5PlN1aTsKK+eyvT5Tb3U7Civnsr4+U2VpOwor57OCPlNhbjsKK+ezhT5KdXU7Civns4o+S287Civns5I+SGk7Civns5Y+VG91Owor57OcPkJpOwor57OePkZ1bjsKK+eznz5Tb3U7Civns6A+S291Owor57OiPkJvOwor57OnPlJ5b3U7Civns68+RGE7Civns7I+UmVpOwor57O0PlRla2k7Civns7Y+Q2hvdTsKK+ezuD5TaGk7Civns7o+S3l1dTsKK+ezuz5LZWk7Civns74+S3l1dTsKK+e0gD5LaTsKK+e0gj5DaHV1Owor57SEPllha3U7CivntIU+S3U7CivntIY+VTsKK+e0ij5CaW47CivntIs+TW9uOwor57SNPlRvdTsKK+e0kD5DaHV1Owor57SUPlNodW47CivntJU+SGk7CivntJc+U2E7CivntJg+S291Owor57SZPlNoaTsKK+e0mj5LeXV1Owor57SbPkZ1bjsKK+e0nD5VbjsKK+e0oD5TbzsKK+e0oT5Cb3U7CivntKI+U2FrdTsKK+e0qz5TaGk7CivntKw+Q2h1dTsKK+e0rj5TYXRzdTsKK+e0rz5SdWk7CivntLA+U2VpOwor57SyPlNldHN1Owor57SzPlNoaW47CivntLU+Q2hvOwor57S5PlNob3U7CivntLo+S29uOwor57S/PlRhaTsKK+e1gj5TaHV1Owor57WDPkdlbjsKK+e1hD5TbzsKK+e1hT5LZWk7CivntYY+QmFuOwor57WLPktvdTsKK+e1jD5LZWk7CivntY4+S291Owor57WPPlNldHN1Owor57WQPktldHN1Owor57WWPktvdTsKK+e1mz5Kb3U7CivntZ4+S291Owor57WhPlJha3U7CivntaI+S2VuOwor57WjPkhvdTsKK+e1pj5LeXV1Owor57WoPkp1dTsKK+e1rj5KbzsKK+e1sT5Ub3U7CivntbI+U2hpOwor57WzPktvdTsKK+e1tT5LYWk7CivntbY+WmV0c3U7Civntbk+S2VuOwor57W9PlJ5bzsKK+e2iT5Ub3U7Civnto8+U3VpOwor57aTPktlaTsKK+e2mT5LZWk7Civntpo+Wm9rdTsKK+e2nD5Tb3U7Civntp8+UmVpOwor57aiPkNodXU7CivntqM+S2VuOwor57arPlNlbjsKK+e2rD5KdTsKK+e2rT5JOwor57auPktlaTsKK+e2rz5Ub3U7CivntrA+V2FuOwor57axPktvdTsKK+e2sj5Nb3U7CivntrQ+VGVpOwor57a1PlNhaTsKK+e2uD5SaW47Civntro+S2k7Civntrs+VGFuOwor57a9PlNoYWt1Owor57a+PlJ5b3U7Civntr8+TWVuOwor57eHPlNoaTsKK+e3ij5LaW47Civnt4s+SGk7Civnt48+U291Owor57eRPlJ5b2t1Owor57eSPlNobzsKK+e3mD5LYW47Civnt5o+U2VuOwor57ecPkJlbjsKK+e3nT5TaHV1Owor57eePlRhbjsKK+e3oD5UZWk7Civnt6E+QmluOwor57ekPlNldHN1Owor57eoPkhlbjsKK+e3qT5LYW47Civnt6w+TWVuOwor57evPkk7Civnt7I+QnlvdTsKK+e3tD5SZW47Civnt7s+Q2hpOwor57iBPkVuOwor57iEPkpvdTsKK+e4iT5TaGluOwor57iKPkVpOwor57iLPlRzdWk7CivnuJI+U2hpOwor57ibPkJha3U7CivnuJ4+S291Owor57ifPkpva3U7CivnuKE+U2FpOwor57iiPlRvdTsKK+e4oz5LZW47CivnuKY+SnV1Owor57irPkhvdTsKK+e4rj5TaHVrdTsKK+e4sT5KdXU7CivnuLI+UnVpOwor57i1PkJhbjsKK+e4tz5SdTsKK+e4uT5IeW91Owor57i6PlJlbjsKK+e4uz5CaTsKK+e4vT5Tb3U7CivnuL4+U2VraTsKK+e5gT5IYW47CivnuYM+SG91Owor57mGPkt5dXU7CivnuYo+U2VuOwor57mLPktlaTsKK+e5jT5TaHV1Owor57mUPlNob2t1Owor57mVPlplbjsKK+e5lj5TYW47CivnuZk+SGFuOwor57maPlJ5b3U7CivnuZ0+S2FuOwor57mePkpvdTsKK+e5pj5LeW91Owor57mnPlVuOwor57mpPkpvdTsKK+e5qj5LYWk7Civnua0+S2VuOwor57mwPlNvdTsKK+e5uT5Fa2k7Civnubs+SnU7Civnubw+S2VpOwor57m9PkhpbjsKK+e5vz5SYW47CivnuoI+U2FuOwor57qIPktldHN1Owor57qJPlNhbjsKK+e6jD5ab2t1Owor57qOPlNlbjsKK+e6jz5UZW47CivnupI+VGVuOwor57qTPkVpOwor57qUPlNhbjsKK+e6lj5TZW47Civnups+VG91Owor57qcPlJhbjsKK+e8tj5LYW47CivnvLg+S291Owor57y6PktldHN1Owor572FPkthOwor572MPk91Owor572NPlJhaTsKK+e9jj5UYW47CivnvZA+S2FuOwor572RPkJvdTsKK+e9lD5Cb3U7CivnvZU+S2FuOwor572YPkZ1Owor572fPktvOwor572gPkJpbjsKK+e9pz5TaGluOwor572oPkFuOwor572pPlRvdTsKK+e9qj5aYWk7Civnvas+S2VpOwor572uPkNoaTsKK+e9sD5CYXRzdTsKK+e9sj5TaG87CivnvbU+QmE7Civnvbc+SGk7Civnvbg+QmF0c3U7Civnvbk+Umk7CivnvoI+S2VuOwor576DPkJla2k7CivnvoU+UmE7CivnvoY+SGk7Civnvoc+S2k7Civnvog+S2k7Civnvoo+WW91Owor576MPkt5b3U7Civnvo4+Qmk7CivnvpQ+S291Owor576aPlJlaTsKK+e+nT5UZWk7Civnvp4+U2h1dTsKK+e+oz5HdW47CivnvqQ+R3VuOwor576oPlNlbjsKK+e+qT5HaTsKK+e+rj5Lb3U7Civnvq8+S2F0c3U7CivnvrI+R2k7CivnvrY+U2VuOwor5764PlJ1aTsKK+e+uT5Lb3U7Civnvr0+VTsKK+e/gT5PdTsKK+e/hT5TaGk7Civnv4Y+U3VpOwor57+KPllva3U7Civnv4w+WW9rdTsKK+e/kj5TaHV1Owor57+UPlNob3U7Civnv5U+S3l1dTsKK+e/oD5TdWk7Civnv6E+SGk7Civnv6Y+U2VuOwor57+pPkhlbjsKK+e/qz5HYW47Civnv7A+S2FuOwor57+zPkVpOwor57+5Pkd5b3U7Civnv7s+SG9uOwor57+8Pllva3U7CivogIA+WW91Owor6ICBPlJvdTsKK+iAgz5Lb3U7CivogIQ+TW91Owor6ICFPlNoYTsKK+iAhj5LaTsKK+iAiz5UZXRzdTsKK+iAjD5KaTsKK+iAkD5UYWk7CivogJI+UmFpOwor6ICVPktvdTsKK+iAlz5Nb3U7CivogJg+VW47CivogJk+SGE7CivogJw+U2hpOwor6IChPkpvOwor6ICoPkRvdTsKK+iAsz5KaTsKK+iAtj5ZYTsKK+iAuz5DaGk7CivogL0+VGFuOwor6IC/PktvdTsKK+iBhj5SZWk7CivogYo+UnlvdTsKK+iBkj5LYXRzdTsKK+iBlj5TZWk7CivogZg+SGVpOwor6IGaPlNodXU7CivogZ4+QnVuOwor6IGfPlNlaTsKK+iBoT5Tb3U7Civogag+UmVuOwor6IGvPlJlbjsKK+iBsD5Tb3U7CivogbI+U2VpOwor6IGzPlNob3U7CivogbQ+Q2hvdTsKK+iBtj5Kb3U7Civogbc+U2hva3U7Civogbk+RGVpOwor6IG9PkNob3U7Civogb4+Um91Owor6IG/Pkl0c3U7CivogoQ+STsKK+iChT5TaHVrdTsKK+iChj5TaGk7Civogoc+Q2hvdTsKK+iCiT5OaWt1Owor6IKLPlJva3U7Civogow+S2k7CivogpM+S291Owor6IKWPlNob3U7Civogpg+Q2h1dTsKK+iCmj5UbzsKK+iCmz5Lb3U7Civogp0+S2FuOwor6IKhPktvOwor6IKiPlNoaTsKK+iCpT5IaTsKK+iCqT5LZW47Civogqo+Qm91Owor6IKsPll1dTsKK+iCrT5Eb3RzdTsKK+iCrz5Lb3U7CivogrE+S291Owor6IKyPklrdTsKK+iCtD5Lb3U7Civogro+SGFpOwor6IODPkk7Civog4Q+Q2h1dTsKK+iDhj5UYW47Civog4w+SGFpOwor6IOOPlRhaTsKK+iDlj5IYW47Civog5k+U287Civog5o+SGFpOwor6IObPktvdTsKK+iDnT5DaGk7Civog54+SG91Owor6IOhPktvOwor6IOkPkluOwor6IOlPlNobzsKK+iDrz5LbzsKK+iDsT5Lb3U7Civog7Q+RG91Owor6IO4Pkt5b3U7Civog7w+SGVuOwor6IO9Pk5vdTsKK+iEgj5TaGk7CivohIU+S3lvdTsKK+iEhj5aZWk7CivohIc+S3lvdTsKK+iEiD5NeWFrdTsKK+iEiT5NeWFrdTsKK+iEij5TZWtpOwor6ISaPkt5YWt1Owor6ISbPktlaTsKK+iEoz5TaGluOwor6ISpPlNodXU7CivohK8+SG87CivohLE+RGF0c3U7CivohLM+Tm91Owor6IS5PkNob3U7CivohL4+SGk7CivohYY+VGVuOwor6IWLPkVraTsKK+iFjj5KaW47CivohZA+RnU7CivohZE+RnU7CivohZM+SGk7CivohZQ+S291Owor6IWVPldhbjsKK+iFnz5DaGl0c3U7CivohaU+U2VpOwor6IWmPk5vdTsKK+iFqz5TaG91Owor6IWuPlNhaTsKK+iFsD5Zb3U7CivohbE+S2VuOwor6IW0Pll1Owor6IW4PkNob3U7Civohbk+RnVrdTsKK+iFuj5TZW47Civohb8+VGFpOwor6IaAPkhvdTsKK+iGgj5SeW87CivohoM+T3RzdTsKK+iGiD5LYWt1Owor6IaKPkhha3U7Civoho8+S291Owor6IaTPkNob3U7CivohpU+S2FrdTsKK+iGmj5GdTsKK+iGnD5NYWt1Owor6IadPlNoaXRzdTsKK+iGoD5Lb3U7CivohqM+Q2hpdHN1Owor6IaoPkJvdTsKK+iGqT5KaTsKK+iGsD5IYW47CivohrM+U2VuOwor6Ia1PlN1aTsKK+iGuD5adWk7Civohro+WW91Owor6Ia9PlRhbjsKK+iGvj5LYWk7Civohr8+RG91Owor6IeAPkRlbjsKK+iHgj5IaTsKK+iHhj5Pa3U7Civoh4g+Um91Owor6IeJPlJlbjsKK+iHjT5TZWk7Civoh5E+RGF1Owor6IeTPlpvdTsKK+iHmD5Sb3U7Civoh5k+RW47Civoh5o+UnlvOwor6IefPlpvdTsKK+iHoD5SZW47Civoh6M+U2hpbjsKK+iHpT5HYTsKK+iHpz5ab3U7Civoh6g+UmluOwor6IeqPlNoaTsKK+iHrT5TaHV1Owor6IezPlNoaTsKK+iHtD5DaGk7Civoh7o+VGFpOwor6Ie7PlNoaW47Civoh7w+S3l1dTsKK+iHvj5ZdTsKK+iIgT5ZbzsKK+iIgj5TaG91Owor6IiFPkt5dXU7CivoiIc+WW87CivoiIg+S3lvdTsKK+iIiT5LeW87CivoiIo+S3l1dTsKK+iIjD5aZXRzdTsKK+iIjT5TaGE7CivoiI4+U2hhOwor6IiQPlNoaTsKK+iIkj5KbzsKK+iIlj5IbzsKK+iIlz5IbzsKK+iImD5LYW47CivoiJs+U2VuOwor6IicPlNodW47CivoiJ4+QnU7CivoiJ8+U2h1dTsKK+iIqT5TZW47CivoiKo+S291Owor6IirPkhvdTsKK+iIrD5IYW47CivoiK4+Um87CivoiLM+Q2hpa3U7CivoiLU+VGE7CivoiLY+SGFrdTsKK+iItz5LZW47CivoiLg+S2E7CivoiLk+U2VuOwor6ImAPkZ1Owor6ImHPlRlaTsKK+iJmD5Tb3U7CivoiZk+U291Owor6ImaPlNvdTsKK+iJnz5Eb3U7CivoiaI+U2hvdTsKK+iJpD5HaTsKK+iJpj5LYW47Civoiag+TW91Owor6ImqPlJvOwor6ImrPlJvOwor6ImuPktvbjsKK+iJrz5SeW91Owor6ImxPkthbjsKK+iJsj5TaG9rdTsKK+iJtj5FbjsKK+iJtz5FbjsKK+iJuD5Tb3U7Civoib4+R2FpOwor6IqLPlU7Civoio0+U2hha3U7CivoipI+Qm91Owor6IqZPkZ1Owor6IqdPlNoaTsKK+iKnz5TYW47CivoiqU+S2FpOwor6IqmPlJvOwor6IqrPkdlbjsKK+iKrD5GdW47Civoiq0+QmE7Civoiq8+U2hpbjsKK+iKsT5LYTsKK+iKsz5Ib3U7Civoirg+R2VpOwor6Iq5PktpbjsKK+iKuz5TdXU7Civoir0+R2E7Civoi4U+R2FpOwor6IuRPkVuOwor6IuSPlplbjsKK+iLkz5SZWk7Civoi5Q+VGFpOwor6IuXPkJ5b3U7Civoi5k+Unl1dTsKK+iLmz5LYTsKK+iLnD5Cb2t1Owor6IuePkhvdTsKK+iLnz5Lb3U7Civoi6E+STsKK+iLoz5LeW87Civoi6U+SmFrdTsKK+iLpj5LdTsKK+iLpz5DaG87Civoi6s+U2VuOwor6IuxPkVpOwor6IuzPlRvdTsKK+iLtD5TbzsKK+iLuT5IZWk7Civoi7o+TWFpOwor6Iu7PkZ1Owor6IyCPk1vOwor6IyDPkhhbjsKK+iMhD5LYTsKK+iMhT5Cb3U7CivojIY+Qm91Owor6IyJPk1hdHN1Owor6IyOPktlaTsKK+iMlj5LYWt1Owor6IyXPk1laTsKK+iMmD5SaTsKK+iMnD5TZW47CivojKM+R287CivojKg+U2hpOwor6IyrPkJvdTsKK+iMrz5GdWt1Owor6IyxPlNodTsKK+iMsj5KaTsKK+iMtD5LYWk7CivojLU+SW47CivojLY+Q2hhOwor6Iy4PkpvdTsKK+iMuT5KbzsKK+iNgD5KdW47CivojYU+VG91Owor6I2JPlNvdTsKK+iNij5LZWk7CivojY8+SmluOwor6I2QPlNlbjsKK+iNkj5Lb3U7CivojZg+U291Owor6I2zPlRvdTsKK+iNtT5KaW47Civojbc+S2E7Civojbs+VGVraTsKK+iNvD5UbzsKK+iOhT5SaTsKK+iOhz5DaG87Civojok+Q2hpOwor6I6KPlNvdTsKK+iOjj5TYTsKK+iOkz5NYWk7CivojpY+S2VpOwor6I6aPkVuOwor6I6ePkthbjsKK+iOnz5LYW47CivojqA+WXV1Owor6I6iPkt5b3U7Civojqg+Um91Owor6I6qPkdhOwor6I6rPkJvOwor6I6xPlJhaTsKK+iOtT5UbzsKK+iOvT5Cb3U7Civoj4E+U2VpOwor6I+FPkthbjsKK+iPij5LaWt1Owor6I+MPktpbjsKK+iPjj5Lb247Civoj5M+S2E7Civoj5Y+U2hvdTsKK+iPmD5TdXU7Civoj5w+U2FpOwor6I+fPlRvOwor6I+gPkhhOwor6I+pPkhhaTsKK+iPqz5LaW47Civoj68+S2E7Civoj7A+S287Civoj7E+UnlvdTsKK+iPsj5IaTsKK+iPtD5BbjsKK+iPtz5Tb3U7Civoj7s+UmluOwor6I+9PlNodWt1Owor6JCDPlN1aTsKK+iQhD5Ub3U7CivokIc+Q2hvdTsKK+iQiz5TZWk7CivokIw+SG91Owor6JCNPkhlaTsKK+iQjj5JOwor6JCTPkdpOwor6JCgPkhvdTsKK+iQqT5TaHV1Owor6JCqPkt1d2E7CivokKw+TWFuOwor6JCxPktlbjsKK+iQtT5XYTsKK+iQuD5ZdTsKK+iQvD5HYWt1Owor6JC9PlJha3U7CivokYY+SG87CivokYk+WW91Owor6JGOPlJpdHN1Owor6JGXPkNobzsKK+iRmz5LYXRzdTsKK+iRoT5IbzsKK+iRoj5HYWk7CivokaM+VG91Owor6JGmPkk7Civokak+SGE7Civokas+S287Civokaw+U291Owor6JGtPkthOwor6JGuPlRhbjsKK+iRrz5ZYWt1Owor6JGxPlNvdTsKK+iRtT5LaTsKK+iRtz5HdW47Civokbk+U2hpOwor6JG6PlNodXU7CivokoI+VGVpOwor6JKEPkthbjsKK+iSiz5TaG91Owor6JKQPlNodXU7CivokpQ+U2hpOwor6JKZPkJvdTsKK+iSnD5TYW47Civokp8+S29uOwor6JKhPkhvdTsKK+iSrT5TdXU7CivokrI+SG87Civokrg+Sm91Owor6JK5PktlbjsKK+iSuz5KYWt1Owor6JK8PlNvdTsKK+iSvz5Lb3U7Civok4E+U2hpbjsKK+iThD5DaGlrdTsKK+iThj5TZWtpOwor6JOJPllvdTsKK+iTij5PdTsKK+iTiz5HYWk7Civok40+U2hpOwor6JOQPkpva3U7Civok5E+U2E7Civok5Y+SGk7Civok5o+Q2hvdTsKK+iTrD5Ib3U7Civok64+UmVuOwor6JO0PlNodW47Civok7w+UnlvdTsKK+iTvz5TaHVrdTsKK+iUgD5Ib3U7CivolIY+UnlvdTsKK+iUkT5CZXRzdTsKK+iUkz5CYW47CivolJQ+RnVrdTsKK+iUlT5UZWk7CivolJc+U2hvOwor6JSYPlNoaW47CivolJo+VXRzdTsKK+iUnz5ab2t1Owor6JShPlNhaTsKK+iUpj5DaG91Owor6JSsPlNvOwor6JStPkluOwor6JS1PlpvdTsKK+iUvT5IZWk7CivolYA+S3lva3U7CivolYE+SmluOwor6JWDPkJhbjsKK+iViD5TaGluOwor6JWJPlNob3U7CivolYo+WnVpOwor6JWLPlp1aTsKK+iVjj5LeW91Owor6JWVPll1dTsKK+iVlz5SbzsKK+iVmD5Kb3U7CivolZo+R2FrdTsKK+iVoz5TaHVuOwor6JWoPktldHN1Owor6JWpPlRvdTsKK+iVqj5CdTsKK+iVrT5TaG91Owor6JW3PllvOwor6JW+PlJhaTsKK+iWgD5VbjsKK+iWhD5IYWt1Owor6JaHPkJpOwor6JaIPkthaTsKK+iWij5LZWk7CivolpA+Um91Owor6JaRPkt5b3U7CivolpQ+U2hva3U7Civolpc+RW47Civolpk+VGVpOwor6JabPlNldHN1Owor6JacPkhla2k7CivolqQ+S2FpOwor6JamPlNlbjsKK+iWqD5Lb3U7Civolqk+U2F0c3U7Civolqo+U2hpbjsKK+iWqz5LdW47Civolqw+WWFrdTsKK+iWrj5Tb3U7Civolq8+U2hvOwor6Ja5PlRhaTsKK+iWuj5TZWk7Civol4E+S291Owor6JeJPlNoYTsKK+iXjT5SYW47Civol48+Wm91Owor6JeQPkJha3U7Civol5U+R3V1Owor6JecPlJlaTsKK+iXnT5HZWk7Civol6Q+VG91Owor6JelPllha3U7Civol6k+SGFuOwor6JeqPlNvdTsKK+iXtz5TaG87Civol7k+QWk7Civol7o+UmluOwor6Je7PlNvdTsKK+iXvj5SYWk7CivomII+WnVpOwor6JiGPlJvOwor6JiHPlNvOwor6JiKPlVuOwor6JiLPkhpbjsKK+iYkz5TbzsKK+iYlj5HZXRzdTsKK+iYlz5IYWt1Owor6JiaPlNlbjsKK+iYoj5Sb3U7CivomK0+UmFuOwor6JivPlRvdTsKK+iYvz5SYTsKK+iZjT5LbzsKK+iZjj5LbzsKK+iZkD5HeWFrdTsKK+iZlD5LZW47CivomZU+U2hvOwor6JmaPkt5bzsKK+iZnD5SeW87CivomZ4+R3U7CivomZ8+R291Owor6JmnPktpOwor6JmrPkNodXU7CivombE+U2hpdHN1Owor6Jm5PktvdTsKK+iZuz5Cb3U7Civomoo+QnVuOwor6JqLPlplaTsKK+iajD5Ib3U7CivompM+SW47CivompU+U2FuOwor6JqjPktvdTsKK+iapD5Tb3U7Civomqk+U2hpOwor6JqqPlRvdTsKK+iaqz5Ib3U7Civomq8+S3l1dTsKK+iasD5ZdXU7CivomrY+S2FuOwor6JuEPktvOwor6JuGPlNobzsKK+ibhz5KYTsKK+ibiT5SZWk7Civom4s+VGFuOwor6JuNPktlaTsKK+ibjj5SZWk7Civom5Q+S2FpOwor6JuZPkE7Civom5s+U2h1Owor6JuePkthdHN1Owor6JufPktvdTsKK+ibpD5Lb3U7Civom6k+S3lvdTsKK+ibrD5LeW91Owor6JutPlNoaXRzdTsKK+ibrj5CYW47Civom7g+U291Owor6Ju5PllvdTsKK+ibuz5aZWk7Civom74+R2E7CivonIA+U2hva3U7CivonII+SG91Owor6JyDPlNoaW47CivonIY+S2VuOwor6JyIPkdvOwor6JyJPkZ1Owor6JyKPlJpOwor6JyNPlNobzsKK+ickT5UYW47CivonJI+RW47CivonJg+Q2hpOwor6JyaPkhpOwor6JycPk1pdHN1Owor6JylPlNla2k7CivonKk+Q2hvdTsKK+ictD5Fa2k7CivonLc+S2VuOwor6Jy7PlNlaTsKK+icvz5FbjsKK+idiT5TZW47CivonYs+Um91Owor6J2MPkthOwor6J2OPkthdHN1Owor6J2TPll1Owor6J2VPlNob2t1Owor6J2XPktvdTsKK+idmT5IZW47CivonZ8+STsKK+idoD5GdWt1Owor6J2jPll1dTsKK+idpj5LYTsKK+idqD5TaGl0c3U7Civonao+VG91Owor6J2uPkZ1a3U7CivonbQ+S287CivonbY+Q2hvdTsKK+iduD5LYTsKK+idvz5Zb3U7CivonoI+Um91Owor6J6NPll1dTsKK+ienz5NZWk7CivonqI+S2VpOwor6J6rPlNla2k7Civonq8+R291Owor6J6zPlRvdTsKK+ieuj5SYTsKK+ieuz5Sb3U7Civonr0+U2h1dTsKK+ifgD5TaHV0c3U7Civon4Q+Q2hpdHN1Owor6J+GPkJhOwor6J+HPkJhOwor6J+LPlNoaXRzdTsKK+ifkD5Ub3U7Civon5I+Qm91Owor6J+gPkhhbjsKK+ifrz5HeW91Owor6J+yPktpOwor6J+2PlRlaTsKK+iftz5Ub3U7Civon7k+S2FpOwor6J+7PkdpOwor6J++PlNlbjsKK+ighT5Zb3U7CivooI0+S2F0c3U7CivooI4+Qm91Owor6KCPPkthaTsKK+igkT5FaTsKK+iglT5EYTsKK+iglj5LYWt1Owor6KChPlJlaTsKK+igoj5TaHVuOwor6KCjPlJlaTsKK+igpz5UbzsKK+igsT5LbzsKK+igtj5TYW47CivooLk+VG87CivooLs+QmFuOwor6KGAPktldHN1Owor6KGCPkppa3U7CivooYQ+SmlrdTsKK+ihhj5TaHV1Owor6KGMPktvdTsKK+ihjT5FbjsKK+ihkj5LZW47CivooZM+SnV0c3U7CivooZc+R2FpOwor6KGZPkd5bzsKK+ihmz5FaTsKK+ihnT5TaG91Owor6KGePkVpOwor6KGhPktvdTsKK+ihoj5LdTsKK+ihoz5JOwor6KGoPkh5b3U7Civooas+U2FuOwor6KGwPlNhOwor6KGyPkRvdTsKK+ihtT5KaXRzdTsKK+ihtz5DaHV1Owor6KG9PkppbjsKK+ihvj5LaW47Civoob8+S2luOwor6KKBPkVuOwor6KKCPkJlaTsKK+iiiD5LYTsKK+iiiz5UYWk7Civooo0+SG91Owor6KKSPlRhbjsKK+iilj5TaHV1Owor6KKXPlNoaW47Civoopk+SGE7Civoop4+S29uOwor6KKiPkhhbjsKK+iipD5Cb3U7Civooqs+SGk7Civooq4+TmU7CivoorE+RnVrdTsKK+iitD5LbzsKK+iitT5KaW47Civoorc+S291Owor6KK/PktlaTsKK+ijgT5TYWk7Civoo4I+UmV0c3U7Civoo4U+U291Owor6KOPPlJpOwor6KOUPkVpOwor6KOVPll1dTsKK+ijmD5LeXV1Owor6KOZPkt1bjsKK+ijnD5IbzsKK+ijnT5Tb3U7Civoo58+U2E7Civoo6E+Umk7Civoo6g+SGk7Civoo7I+UnlvdTsKK+ijsz5TaG91Owor6KO0PkhhaTsKK+ijuD5SYTsKK+ijuT5LYTsKK+ijvD5TZWtpOwor6KO9PlNlaTsKK+ijvj5LeW87CivopII+S2FpOwor6KSHPkZ1a3U7CivopIo+SGVuOwor6KSMPktvbjsKK+ikkD5LYXRzdTsKK+ikkj5Ib3U7CivopJM+SG87CivopJ0+VGFuOwor6KSePk9uOwor6KSlPkpva3U7CivopKo+VGFpOwor6KSrPkNoaTsKK+iktj5DaG91Owor6KS4PlJvdTsKK+ikuz5TZXRzdTsKK+ilgT5LeW91Owor6KWDPkhvdTsKK+ilhD5Kb3U7CivopYw+VGFuOwor6KWNPlphdHN1Owor6KWWPk91Owor6KWePkhla2k7CivopZ8+S2luOwor6KWgPlRvdTsKK+ilpD5SYW47CivopaY+SnU7Civopao+QmV0c3U7Civopa0+S2V0c3U7Civopa8+U2hpbjsKK+ilsj5TaHV1Owor6KW0PlJhbjsKK+ilvj5Ba2E7Civopb8+U2VpOwor6KaBPllvdTsKK+imgz5UYW47CivopoY+RnVrdTsKK+imhz5IYTsKK+imiD5LYWt1Owor6KaKPktpOwor6KaLPktlbjsKK+imjz5LaTsKK+imkz5CZWtpOwor6KaWPlNoaTsKK+imlz5TaGk7Civoppg+VGVuOwor6KaaPktha3U7CivopqE+R2VraTsKK+impj5ZdTsKK+impz5SYW47Civopqk+VG87Civopqo+U2hpbjsKK+imrD5LaTsKK+imrz5Lb3U7CivoprI+S2luOwor6KazPkthbjsKK+imuj5LYWt1Owor6Ka9PlJhbjsKK+imvz5UZWtpOwor6KeAPkthbjsKK+inkj5LYWt1Owor6KeaPktvOwor6KecPlNoaTsKK+innT5UZWk7Civop6M+S2FpOwor6KemPlNob2t1Owor6KenPkthaTsKK+intD5TaG91Owor6Ke4PlNob2t1Owor6KiAPkdlbjsKK+iogj5UZWk7CivoqIM+RnU7CivoqIg+S2VpOwor6KiKPkppbjsKK+iojD5Lb3U7CivoqI4+VG91Owor6KiQPktldHN1Owor6KiTPkt1bjsKK+iolj5LaXRzdTsKK+iolz5UYWt1Owor6KiYPktpOwor6KibPkthOwor6KidPkdhOwor6KifPlNob3U7CivoqKM+S2V0c3U7CivoqKU+VG90c3U7CivoqKo+SG91Owor6KitPlNldHN1Owor6KixPkt5bzsKK+iosz5ZYWt1Owor6Ki0PlNvOwor6Ki2PkthOwor6Ki6PlNoaW47CivoqLs+Q2h1dTsKK+iovD5TaG91Owor6KmBPktvOwor6KmGPlRlaTsKK+ipiD5SaTsKK+ipkD5TYTsKK+ipkT5UYTsKK+ipkj5UYWk7CivoqZQ+U2hvdTsKK+iplT5IeW91Owor6KmbPlNvOwor6KmePlNoaTsKK+ipoD5FaTsKK+ipoj5KdW47CivoqaM+S2VpOwor6KmmPlNoaTsKK+ipqT5TaGk7Civoqas+VGE7Civoqaw+S291Owor6KmtPktpOwor6KmuPlNlbjsKK+ipsD5LaXRzdTsKK+ipsT5XYTsKK+ipsj5HYWk7CivoqbM+U2hvdTsKK+ipvD5LYWk7CivoqoI+Q2hvdTsKK+iqhD5SdWk7CivoqoU+Q2h1dTsKK+iqhz5LbzsKK+iqiT5ZbzsKK+iqjD5TaGk7Civoqo0+TmluOwor6KqRPkt5b3U7CivoqpM+U2VpOwor6KqVPlRhbjsKK+iqmD5ZdXU7Civoqpo+U2hvdTsKK+iqnj5HbzsKK+iqoD5TZWk7CivoqqE+S2FpOwor6KqjPkZ1Owor6KqkPkdvOwor6KqlPktvdTsKK+iqpj5TaG91Owor6KqoPkthaTsKK+iqrD5TZXRzdTsKK+iqrT5Ub2t1Owor6KqwPlN1aTsKK+iqsj5LYTsKK+iquT5IaTsKK+iqvD5HaTsKK+iqvz5DaG91Owor6KuCPlRlbjsKK+irhD5KdW47Civoq4c+RGFuOwor6KuLPlNlaTsKK+irjD5LYW47Civoq40+U291Owor6KuPPlNodTsKK+irkj5SeW91Owor6KuWPlJvbjsKK+irmj5Kb3U7Civoq5s+WXU7Civoq5w+Q2hvdTsKK+irnj5IZW47Civoq6A+S2VuOwor6KuhPlNoaTsKK+iroj5Lb247Civoq6Q+R2FrdTsKK+irpj5UZWk7Civoq6c+S2FpOwor6KurPkthbjsKK+irrT5ZdTsKK+irrj5TaGk7Civoq7E+S2k7Civoq7M+QW47Civoq7c+RnV1Owor6Ku4PlNobzsKK+iruj5HZW47Civoq74+RGFrdTsKK+isgD5Cb3U7CivorIE+RXRzdTsKK+isgj5JOwor6KyEPlRvdTsKK+ishz5LZW47CivorIw+S2E7CivorI4+TWVpOwor6KyQPkhpdHN1Owor6KyUPkd5YWt1Owor6KyWPlNob2t1Owor6KyXPkJvdTsKK+ismT5LZW47CivorJo+U2hpOwor6KybPktvdTsKK+isnT5TaGE7CivorKA+WW91Owor6KyhPllvdTsKK+ispj5LZWk7CivorKg+Qm87CivorKs+VGFrdTsKK+isrD5CeW91Owor6KyzPk91Owor6Ky5PktpbjsKK+isvj5CYW47CivorYE+S2E7CivorYk+U2hvdTsKK+itjD5LYTsKK+itjj5LaXRzdTsKK+itjz5LaTsKK+itlj5TaGluOwor6K2YPlNoaWtpOwor6K2aPlRhbjsKK+itmz5TaGluOwor6K2cPkZ1Owor6K2fPlNvdTsKK+itpj5LZWk7Civoras+U2VuOwor6K2sPkhpOwor6K2vPllha3U7CivorbA+R2k7CivorbE+WmVuOwor6K2yPkpvdTsKK+ittD5LZW47Civorbc+R287Civorb0+WW87CivoroA+VG9rdTsKK+iugz5TYW47Civoroo+SGVuOwor6K6MPkVuOwor6K6OPlNodXU7CivorpA+U2h1dTsKK+iukj5TYW47CivorpM+Sm91Owor6K6WPlNoaW47Civorpk+S2FuOwor6K6aPlNhbjsKK+iwtz5Lb2t1Owor6LC6PkthOwor6LC/PktlaTsKK+ixgT5LYXRzdTsKK+ixhj5Ub3U7CivosYg+S2k7CivosYo+SG91Owor6LGMPkVuOwor6LGOPkp1Owor6LGQPkhvdTsKK+ixlT5TaGk7CivosZo+VG9uOwor6LGhPlNob3U7CivosaI+S2VuOwor6LGqPkdvdTsKK+ixqz5ZbzsKK+ixrD5DaG87Civosbg+Q2hpOwor6LG5PkhvdTsKK+ixuj5TYWk7Civosbw+SGk7CivosoI+Q2hvdTsKK+iyhT5LeXV1Owor6LKJPktha3U7Civosoo+SGFrdTsKK+iyjD5Cb3U7Civoso0+Umk7Civoso4+R2VpOwor6LKUPkhpOwor6LKYPkJha3U7Civosp0+QmFpOwor6LKePlRlaTsKK+iyoD5GdTsKK+iyoT5aYWk7CivosqI+S291Owor6LKnPkhpbjsKK+iyqD5LYTsKK+iyqT5IYW47Civosqo+RG9uOwor6LKrPkthbjsKK+iyrD5TZWtpOwor6LKtPlNoaXRzdTsKK+iyrj5OaTsKK+iyrz5DaG87CivosrA+U2VpOwor6LKyPlNoaTsKK+iysz5OaTsKK+iytD5LaTsKK+iytj5IZW47Civosrc+QmFpOwor6LK4PlRhaTsKK+iyuz5IaTsKK+iyvD5UZW47Civosr0+STsKK+iyvz5Cb3U7Civos4A+R2E7Civos4E+SGk7Civos4I+Um87Civos4M+Q2hpbjsKK+izhD5XYWk7Civos4c+U2hpOwor6LOIPktvOwor6LOKPlpva3U7Civos40+U291Owor6LOOPlNlbjsKK+izkT5TaGluOwor6LOTPkhpbjsKK+izmj5SYWk7Civos5s+U2FuOwor6LOcPlNoaTsKK+iznj5TaG91Owor6LOgPkJhaTsKK+izoj5LZW47Civos6M+QmFpOwor6LOkPlNlbjsKK+izpj5GdTsKK+izqj5TaGl0c3U7Civos60+VG87Civos7o+VGFuOwor6LO7PkZ1Owor6LO8PktvdTsKK+izvT5TYWk7CivotIQ+U2hpOwor6LSFPlplaTsKK+i0hz5JbjsKK+i0iD5ab3U7CivotIo+U2FuOwor6LSLPkdhbjsKK+i0jT5TZW47CivotI8+RWk7CivotJA+U2hpbjsKK+i0kz5ab3U7CivotJQ+SGk7CivotJY+U2hva3U7CivotaQ+U2VraTsKK+i1pj5TaGE7Civotac+VGFuOwor6LWrPktha3U7Civota0+U2hhOwor6LWwPlNvdTsKK+i1sT5Tb3U7CivotbM+S3l1dTsKK+i1tD5GdTsKK+i1tz5LaTsKK+i2gT5DaGluOwor6LaFPkNob3U7Civotoo+RXRzdTsKK+i2mT5DaG91Owor6LajPlNodTsKK+i2qD5TdXU7CivotrM+U29rdTsKK+i2uj5GdTsKK+i2vj5TaGk7Civot4I+S2k7Civot4s+QmF0c3U7Civot4w+VGV0c3U7Civot48+S2E7Civot5Y+U2VraTsKK+i3mj5TYW47Civot5s+SGE7Civot50+S3lvOwor6LefPktvbjsKK+i3oT5TZWtpOwor6LejPlNlbjsKK+i3qD5LbzsKK+i3qj5LaTsKK+i3qz5LeW91Owor6LevPlJvOwor6LezPkNob3U7Civot7U+U2VuOwor6Le8Pkt5b2t1Owor6Le/PlRvOwor6LiIPlNobzsKK+i4iT5SeW91Owor6LiKPllvdTsKK+i4jz5Ub3U7CivouJA+U2VuOwor6LidPkthOwor6LiePkt5bzsKK+i4nz5DaGk7CivouKo+U2hvdTsKK+i4sD5ZdTsKK+i4tD5Zb3U7CivouLU+U2hvdTsKK+i5gj5KdXU7CivouYQ+VGVpOwor6LmHPktlbjsKK+i5iD5Ub3U7CivouYk+U2E7CivouYo+S2VpOwor6LmMPlNob3U7CivouZA+U2VraTsKK+i5lT5IaXRzdTsKK+i5mT5TaHVrdTsKK+i5nz5TZWtpOwor6LmgPlNla2k7CivouaM+TWFuOwor6LmkPlNob3U7CivoubI+U29uOwor6Lm0PlNodXU7CivoubY+S2V0c3U7Civoubw+Qm9rdTsKK+i6gT5Tb3U7CivouoQ+SGVraTsKK+i6hT5DaG9rdTsKK+i6hz5DaG87Civouoo+Q2h1dTsKK+i6iz5TZWk7Civouo0+WWFrdTsKK+i6kT5UZWtpOwor6LqTPkNoaTsKK+i6lD5UZW47Civoupk+UmluOwor6LqhPkpvdTsKK+i6qj5SaW47Civouqs+U2hpbjsKK+i6rD5LeXV1Owor6LqvPkt1Owor6LqwPlRlaTsKK+i6sT5UYTsKK+i7hj5UZWk7Civou4o+U2hhOwor6LuLPkF0c3U7Civou4w+S2k7Civou40+R3VuOwor6LuSPktlbjsKK+i7mz5Ba3U7Civou58+TmFuOwor6LuiPlRlbjsKK+i7oz5Hb3U7Civou6s+U2hpbjsKK+i7uD5KaWt1Owor6Lu7PkthOwor6Lu8Pkl0c3U7Civou70+S2VpOwor6Lu+PlNob2t1Owor6LyDPktha3U7CivovIU+Um87CivovIk+U2FpOwor6LyKPkNoaTsKK+i8jD5SeW91Owor6LySPkNob3U7CivovJM+QmFuOwor6LyUPkZ1Owor6LyVPktlaTsKK+i8mT5DaG91Owor6LybPlJ5b3U7CivovJw+U2hpOwor6LydPktpOwor6LyfPlRldHN1Owor6LymPlJlbjsKK+i8qT5IYWk7CivovKo+UmluOwor6LyvPlNodXU7CivovLM+U291Owor6Ly4Pll1Owor6Ly5PkZ1a3U7CivovLs+RnVrdTsKK+i8vj5UZW47CivovL8+WW87CivovYI+S29rdTsKK+i9hD5LYXRzdTsKK+i9hT5FbjsKK+i9hj5Sb2t1Owor6L2JPlRlbjsKK+i9jT5UZXRzdTsKK+i9jj5LeW91Owor6L2XPkthbjsKK+i9nD5KaTsKK+i9nz5Hb3U7CivovaE+SGk7CivovaI+UmVraTsKK+i9oz5SZWtpOwor6L2kPlJvOwor6L6bPlNoaW47Civovpw+S287Civovp4+Smk7Civovp8+SGVraTsKK+i+oz5SYXRzdTsKK+i+pz5CZW47Civovqg+QmVuOwor6L6tPkppOwor6L6uPkhlbjsKK+i+rz5CZW47CivovrA+U2hpbjsKK+i+sT5Kb2t1Owor6L6yPk5vdTsKK+i+uj5IZW47Civovr8+VGVuOwor6L+CPlU7Civov4Q+S2l0c3U7Civov4U+SmluOwor6L+OPkdlaTsKK+i/kT5LaW47Civov5Q+SGVuOwor6L+iPkNob3U7Civov6U+S2VpOwor6L+mPkthOwor6L+pPkppOwor6L+qPlRla2k7Civov6s+SGFrdTsKK+i/rT5UZXRzdTsKK+i/rz5Ub3U7Civov7A+SnV0c3U7Civov7Q+S2FpOwor6L+3Pk1laTsKK+i/uD5Ib3U7Civov7k+U2VraTsKK+i/uj5EYWk7Civov70+VHN1aTsKK+mAgD5UYWk7CivpgIE+U291Owor6YCDPlRvdTsKK+mAhT5Lb3U7CivpgIY+R3lha3U7CivpgIs+SG87CivpgI0+U2hvdTsKK+mAjj5TaHV1Owor6YCPPlRvdTsKK+mAkD5DaGlrdTsKK+mAkT5LeXV1Owor6YCTPlRlaTsKK+mAlD5UbzsKK+mAlT5LZWk7CivpgJY+VGVraTsKK+mAlz5Ub3U7CivpgJk+R2VuOwor6YCaPlRzOwor6YCdPlNlaTsKK+mAnj5UZWk7CivpgJ8+U29rdTsKK+mAoD5ab3U7CivpgKE+U2h1bjsKK+mAoj5Ib3U7CivpgKM+UmVuOwor6YCuPlRhaTsKK+mAsT5TaHV1Owor6YCyPlNoaW47CivpgLU+S2k7CivpgLY+STsKK+mAuD5JdHN1Owor6YC5PlRhdHN1Owor6YC8PkhpdHN1Owor6YC+Pll1Owor6YGBPlRvbjsKK+mBgj5TdWk7CivpgYU+Q2hpOwor6YGHPkd1dTsKK+mBiT5UZWk7CivpgYo+WXV1Owor6YGLPlVuOwor6YGNPkhlbjsKK+mBjj5LYTsKK+mBjz5BdHN1Owor6YGQPkthOwor6YGRPktvdTsKK+mBkj5TaHV1Owor6YGTPkRvdTsKK+mBlD5UYXRzdTsKK+mBlT5JOwor6YGYPktvdTsKK+mBmT5Zb3U7CivpgZw+U29uOwor6YGePlRlaTsKK+mBoD5FbjsKK+mBoT5TbzsKK+mBoz5LZW47CivpgaU+WW91Owor6YGoPkdvdTsKK+mBqT5UZWtpOwor6YGtPlNvdTsKK+mBrj5TaGE7Civpga8+VG9uOwor6YGyPkNoaTsKK+mBtT5KdW47CivpgbY+Sm91Owor6YG3PlNlbjsKK+mBuD5TZW47Civpgbo+STsKK+mBvD5SeW91Owor6YG9Pkt5bzsKK+mBvz5IaTsKK+mCgD5Zb3U7CivpgoE+QmFpOwor6YKCPkthaTsKK+mCgz5TdWk7CivpgoQ+S2FuOwor6YKHPkppOwor6YKJPkhlbjsKK+mCij5IZW47Civpgo8+UmE7CivpgpE+WXV1Owor6YKjPkRhOwor6YKmPkhvdTsKK+mCqD5Tb247Civpgqo+WWE7Civpgq8+S2FuOwor6YKxPkt5dXU7CivpgrU+U2hvdTsKK+mCuD5UZWk7Civpg4E+SWt1Owor6YOKPktvdTsKK+mDjj5Sb3U7Civpg5s+RnU7Civpg6E+R3VuOwor6YOiPkVpOwor6YOkPkdla2k7Civpg6g+QnU7Civpg60+S2FrdTsKK+mDtT5ZdXU7Civpg7c+S3lvdTsKK+mDvT5UbzsKK+mEgj5HYWt1Owor6YSSPlN1dTsKK+mEmT5IaTsKK+mErT5UZWk7CivphLA+UmluOwor6YSyPlRhbjsKK+mFiT5ZdXU7CivphYo+VGVpOwor6YWLPlNodXU7CivphYw+U2hha3U7CivphY0+SGFpOwor6YWOPkNodXU7CivphZI+U2h1Owor6YWUPlN1aTsKK+mFlj5UYW47CivphZg+VG91Owor6YWiPlNha3U7CivphaM+S2FuOwor6YWlPlNvOwor6YWpPk1laTsKK+mFqj5SYWt1Owor6YWsPlNodXU7CivphbI+VGVpOwor6YWzPkluOwor6YW1PktvdTsKK+mFtz5Lb2t1Owor6YW4PlNhbjsKK+mGgj5SaW47Civphoc+U2h1bjsKK+mGiT5TdWk7Civphos+U2FrdTsKK+mGjT5UZWk7CivphpA+S287CivphpI+U2VpOwor6YaXPkhhdHN1Owor6YacPlNodXU7CivphqI+S2FpOwor6YakPlNob3U7Civphqo+Um91Owor6YarPkk7Civphq8+S2VpOwor6Ya0PlJlaTsKK+mGtT5LeW87Civphrg+Sm91Owor6Ya6Pkt1bjsKK+mHgD5Kb3U7Civph4E+S2luOwor6YeGPkhhbjsKK+mHhz5TYWk7Civph4g+U2hha3U7Civph4k+WXV1Owor6YeLPlNoYWt1Owor6YeMPlJpOwor6YeNPkNob3U7Civph44+WWE7Civph48+UnlvdTsKK+mHkD5SaTsKK+mHkT5LaW47Civph5Y+VG91Owor6YeYPlRlaTsKK+mHmz5Lb2t1Owor6YecPkZ1Owor6YedPlNoaW47Civph58+SGF0c3U7Civph6E+RnU7Civph6M+Q2hvdTsKK+mHpj5Lb3U7Civph6c+U2VuOwor6Ye1PlNhOwor6Ye2PlNoaTsKK+mHvD5LZW47Civph78+S2luOwor6YiNPkRvbjsKK+mIjj5Lb3U7CivpiJE+SGFuOwor6YiUPlNob3U7CivpiJU+Q2h1dTsKK+mInj5LaW47CivpiKk+Um87CivpiKw+VGFrdTsKK+mItD5SZWk7CivpiLc+S287CivpiL8+VGVuOwor6YmEPlRldHN1Owor6YmFPkt5bzsKK+mJiD5TaGE7CivpiYk+S2VuOwor6YmLPkhvdTsKK+mJkD5TZWtpOwor6YmXPkthbjsKK+mJmj5SeXV1Owor6YmbPkVuOwor6YmePkV0c3U7CivpiaI+SGFjaGk7CivpiaQ+S291Owor6YmmPlNlaTsKK+mJsT5Lb3U7Civpib4+Qm91Owor6YqAPkdpbjsKK+mKgz5KdXU7CivpioU+RG91Owor6YqRPlNlbjsKK+mKkz5TZW47CivpipU+VGV0c3U7CivpipY+U2h1Owor6YqYPk1laTsKK+mKmj5Zb3U7Civpips+U2VuOwor6YqcPkthbjsKK+mKrT5TZW47Civpirc+U2hvdTsKK+mKuT5TaHV1Owor6YuPPkt5b3U7Civpi5I+SG91Owor6YukPkpvOwor6YupPkJvdTsKK+mLqj5IbzsKK+mLrT5FaTsKK+mLsz5DaHV1Owor6Yu4Pkt5bzsKK+mLuj5FbjsKK+mLvD5Lb3U7CivpjIY+U2VpOwor6YyPPkE7CivpjJA+U3VpOwor6YyYPlRzdWk7CivpjJk+U2hpOwor6YyaPlNvdTsKK+mMoD5Kb3U7CivpjKI+U2VuOwor6YyjPlRlaTsKK+mMpj5LaW47CivpjKg+QnlvdTsKK+mMqz5TZWtpOwor6YysPlJlbjsKK+mMrj5LbzsKK+mMrz5TYWt1Owor6YyyPlJva3U7CivpjLs+QnU7CivpjYQ+S2VpOwor6Y2LPkthOwor6Y2NPlRvOwor6Y2UPkdha3U7CivpjZY+Q2hpbjsKK+mNmz5UYW47CivpjZw+S2E7CivpjaA+S291Owor6Y2sPlNodXU7Civpja4+Q2h1dTsKK+mNtT5LZW47Civpjbw+U2hpbjsKK+mNvj5TaG91Owor6Y6MPlJlbjsKK+mOlD5Zb3U7CivpjpY+U2E7Civpjpc+U291Owor6Y6aPlRzdWk7Civpjqc+R2FpOwor6Y6sPktvdTsKK+mOrT5DaGluOwor6Y6uPkNoaW47CivpjrA+SXRzdTsKK+mPgz5ab2t1Owor6Y+IPlJlbjsKK+mPkD5SeXV1Owor6Y+RPlRla2k7Civpj5Y+T3U7Civpj5c+S291Owor6Y+YPlNob3U7Civpj50+TWFuOwor6Y+hPkt5b3U7Civpj6Q+Um91Owor6Y+lPlNodXU7Civpj6g+U2FuOwor6ZCDPkRvdTsKK+mQhz5IYW47CivpkJA+UnlvdTsKK+mQkz5UYWk7CivpkJQ+U2hpbjsKK+mQmD5TaG91Owor6ZCZPlRvdTsKK+mQmj5BOwor6ZChPlRldHN1Owor6ZCrPlNlbjsKK+mQtT5UZXRzdTsKK+mQtj5LYW47CivpkLg+VGFrdTsKK+mQuj5Ub3U7CivpkYE+QmFuOwor6ZGEPkNodXU7CivpkZE+S2FuOwor6ZGSPkthbjsKK+mRmj5TYW47CivpkZs+S291Owor6ZGePlJvdTsKK+mRoD5TaGFrdTsKK+mRoj5SeW87Civpkao+Um87CivpkbA+WWFrdTsKK+mRtT5LYW47Civpkbc+Sm91Owor6ZG8PlJhOwor6ZG9PlNhbjsKK+mRvj5SYW47Civpkb8+U2FrdTsKK+mSgT5LYWt1Owor6ZW3PkNob3U7CivploA+TW9uOwor6ZaCPlNhbjsKK+mWgz5TZW47Civploc+SGVpOwor6ZaJPkhlaTsKK+mWiz5LYWk7Civplo8+SnVuOwor6ZaRPkthbjsKK+mWkz5LYW47CivplpQ+QmluOwor6ZaYPktvdTsKK+mWmT5Ub3U7CivplqI+S2FuOwor6ZajPktha3U7CivplqQ+S291Owor6ZalPkJhdHN1Owor6ZanPktvdTsKK+mWqD5LZWk7Civplq0+Um87CivplrI+RXRzdTsKK+mWuT5FbjsKK+mWuz5FbjsKK+mWvD5BOwor6Za+Pllva3U7Civpl4M+R2VraTsKK+mXhz5BbjsKK+mXij5LYXRzdTsKK+mXjD5SYW47Civpl40+VG87Civpl5Q+S291Owor6ZeVPktldHN1Owor6ZeWPkNoaW47Civpl5g+VG91Owor6ZecPkthbjsKK+mXoT5TZW47Civpl6I+SGVraTsKK+mXpT5UYXRzdTsKK+mYnD5GdTsKK+mYoT5TZW47CivpmKg+QWt1Owor6ZiqPkhhbjsKK+mYrj5HZW47CivpmK8+U2hpOwor6ZiyPkJvdTsKK+mYuz5TbzsKK+mYvz5BOwor6ZmAPkRhOwor6ZmCPkhhOwor6ZmEPkZ1Owor6ZmLPlJvdTsKK+mZjD5IYWt1Owor6ZmNPktvdTsKK+mZjz5UYTsKK+mZkD5HZW47CivpmZs+SGVpOwor6ZmcPktvdTsKK+mZnT5TZW47CivpmZ4+U2hvdTsKK+mZnz5DaG9rdTsKK+mZoj5JbjsKK+mZoz5KaW47CivpmaQ+Sm87CivpmaU+S2FuOwor6ZmmPlRvdTsKK+mZqj5CYWk7Civpmaw+U3V1Owor6ZmwPkluOwor6ZmyPlN1aTsKK+mZsz5DaGluOwor6Zm1PlJ5b3U7CivpmbY+VG91Owor6Zm3PkthbjsKK+mZuD5SaWt1Owor6Zm6PktlbjsKK+mZvT5Zb3U7CivpmoU+R3V1Owor6ZqGPlJ5dXU7Civpmog+V2FpOwor6ZqKPlRhaTsKK+maiz5UYTsKK+majT5Lb3U7Civpmo4+S2FpOwor6ZqPPlp1aTsKK+malD5LYWt1Owor6ZqVPkluOwor6ZqXPkthaTsKK+mamD5BaTsKK+mamT5HZWtpOwor6ZqbPlNhaTsKK+manD5TaG91Owor6ZqgPkluOwor6ZqjPlJpbjsKK+mapz5TdWk7Civpmqg+WnVpOwor6ZqqPktlbjsKK+masD5TaGl0c3U7CivpmrE+SW47CivpmrI+U2hpdHN1Owor6Zq0PlJvdTsKK+matj5UYWk7Civpmrc+UmVpOwor6Zq4PlJlaTsKK+mauT5TdWk7Civpmrs+U2VraTsKK+mavD5KdW47Civpm4A+SmFrdTsKK+mbgT5HYW47Civpm4Q+WXV1Owor6ZuFPkdhOwor6ZuGPlNodXU7Civpm4c+S287Civpm4k+Q2hpOwor6ZuLPlNlbjsKK+mbjD5TaGk7Civpm40+WW91Owor6ZuOPlNobzsKK+mbkT5aYXRzdTsKK+mblT5DaG91Owor6ZuWPlN1aTsKK+mbmT5Tb3U7Civpm5s+U3V1Owor6ZucPlphdHN1Owor6ZuiPlJpOwor6ZujPk5hbjsKK+mbqD5VOwor6ZuqPlNldHN1Owor6ZurPkRhOwor6ZuwPkZ1bjsKK+mbsj5VbjsKK+mbtj5SZWk7Civpm7c+UmFpOwor6Zu5Pkhha3U7Civpm7s+RGVuOwor6ZyAPkp1Owor6ZyEPlNob3U7CivpnIY+VGVpOwor6ZyHPlNoaW47CivpnIg+SGFpOwor6ZyKPlJlaTsKK+mcjT5LYWt1Owor6ZyOPlNvdTsKK+mcjz5IaTsKK+mckT5UZW47CivpnJM+R2VpOwor6ZyWPlJpbjsKK+mcmT5FaTsKK+mcnD5Tb3U7CivpnJ4+S2E7CivpnKQ+Unl1dTsKK+mcpz5NdTsKK+mcqj5JbjsKK+mcsD5TYW47CivpnLI+Um87CivpnLg+SGFrdTsKK+mcuT5IZWtpOwor6Zy9PlNlaTsKK+mcvj5CYWk7CivpnYI+UmVraTsKK+mdhD5BaTsKK+mdhj5UYWk7CivpnYg+UmVpOwor6Z2JPkFpOwor6Z2SPlNlaTsKK+mdlj5TZWk7CivpnZk+U2VpOwor6Z2cPlNlaTsKK+mdnj5IaTsKK+mdoD5Lb3U7CivpnaE+SGk7CivpnaI+TWVuOwor6Z2kPkhvdTsKK+mdpj5UZW47Civpnag+WW91Owor6Z2pPktha3U7Civpnas+U2FpOwor6Z2tPkppbjsKK+mdsT5KaW47CivpnbQ+S2E7Civpnbk+S2V0c3U7Civpnbo+TWF0c3U7Civpnbw+VGFuOwor6Z6BPkhpOwor6Z6EPkhvdTsKK+mehT5PdTsKK+meiz5BaTsKK+mejT5BbjsKK+mejz5LeW91Owor6Z6YPlNvdTsKK+menD5Ub3U7CivpnqA+S2lrdTsKK+meoz5KdXU7CivpnqY+U2h1dTsKK+meqD5LYXRzdTsKK+meqz5LaWt1Owor6Z6tPkhlbjsKK+mesz5Ub3U7CivpnrQ+RnVrdTsKK+mfgz5EYXRzdTsKK+mfhj5TZW47Civpn4g+QmV0c3U7Civpn4s+STsKK+mfkz5LYW47Civpn5w+VG91Owor6Z+tPkt5dXU7Civpn64+S3lvdTsKK+mfsj5TZWk7Civpn7M+T247Civpn7U+SW47Civpn7Y+U2hvdTsKK+mfuz5JbjsKK+mfvz5LeW91Owor6aCBPktldHN1Owor6aCCPkNob3U7CivpoIM+S2VpOwor6aCFPktvdTsKK+mghj5KdW47CivpoIg+U2h1Owor6aCMPlNob3U7CivpoI8+S291Owor6aCQPllvOwor6aCRPkdhbjsKK+mgkj5IYW47CivpoJM+VG9uOwor6aCXPkhhOwor6aCYPlJ5b3U7CivpoJo+S2VpOwor6aChPktpdHN1Owor6aCkPkk7CivpoKw+S3lvdTsKK+mgrT5Ub3U7CivpoLQ+RWk7CivpoLc+S2FuOwor6aC4PktlaTsKK+mguz5IaW47CivpoLw+UmFpOwor6aC9PlRhaTsKK+mhhj5LYTsKK+mhiz5TYWk7CivpoYw+RGFpOwor6aGNPkdha3U7CivpoY4+R2FrdTsKK+mhjz5HYW47CivpoZQ+R2FuOwor6aGVPktlbjsKK+mhmD5HYW47CivpoZs+VGVuOwor6aGePlJ1aTsKK+mhpz5LbzsKK+mhqz5TZW47Civpoa8+S2VuOwor6aGwPkhpbjsKK+mhsT5SbzsKK+mhsz5TaG91Owor6aG0PkthbjsKK+miqD5GdXU7Civpoq8+U2F0c3U7CivporE+VGFpOwor6aK2Pkt1Owor6aODPkh5b3U7Civpo4Q+SHlvdTsKK+mjhj5IeW91Owor6aObPkhpOwor6aOcPkhvbjsKK+mjnz5TaG9rdTsKK+mjoj5LaTsKK+mjqT5Ub247Civpo6s+WW87Civpo60+Q2hva3U7Civpo64+SW47Civpo68+SGFuOwor6aOyPkluOwor6aO0Pkk7Civpo7w+U2hpOwor6aO9PkhvdTsKK+mjvj5TaG9rdTsKK+mkgz5Lb3U7CivppIU+SGVpOwor6aSJPlNob3U7CivppIo+WW91Owor6aSMPkppOwor6aSQPlNhbjsKK+mkkj5EYWk7CivppJM+R2E7CivppJQ+SG87CivppJg+WW87CivppJ0+U2hva3U7CivppJ4+U2VuOwor6aSgPkhlaTsKK+mkoT5LYW47CivppKQ+VGFuOwor6aSoPkthbjsKK+mkrD5LbzsKK+mkrj5UZXRzdTsKK+mkvT5LaTsKK+mkvj5SeXV1Owor6aWCPlVuOwor6aWFPk1hbjsKK+mliT5LaW47CivppYs+S2k7CivppYw+U2VuOwor6aWQPkk7CivppZE+S2k7CivppZI+Sm91Owor6aWVPlRvdTsKK+mllz5LeW91Owor6aaWPlNodTsKK+mmlz5LaTsKK+mmmD5LYWt1Owor6aaZPktvdTsKK+mmpT5GdWt1Owor6aaoPktlaTsKK+mmrD5CYTsKK+mmrT5HeW87Civppq4+SHlvdTsKK+mmsz5DaGk7CivpprQ+U2h1bjsKK+mmvD5CdW47Civpp4E+QmFrdTsKK+mnhD5UYTsKK+mnhT5Fa2k7Civpp4Y+S3U7Civpp4g+S3U7Civpp5A+Q2h1dTsKK+mnkT5EbzsKK+mnkj5LdTsKK+mnlT5HYTsKK+mnmD5UYWk7Civpp5s+U2hpOwor6aedPlRhOwor6aefPlNoaTsKK+mnoj5IZW47Civpp60+S2FpOwor6aeuPkhha3U7Civpp7E+UmFrdTsKK+mnuD5TaGluOwor6ae7PkthbjsKK+mnvz5TaHVuOwor6aiBPlRlaTsKK+mohT5TdWk7CivpqI4+S2k7CivpqI8+S2k7CivpqJI+U291Owor6aiTPktlbjsKK+momT5IZW47CivpqKg+VGFuOwor6airPktlbjsKK+mosD5Ub3U7CivpqLc+U291Owor6ai+PlJhOwor6amAPkJha3U7CivpqYI+U2FuOwor6amDPkh5b3U7CivpqYU+S3U7CivpqY0+R3lvdTsKK+mplT5LeW91Owor6amXPktlbjsKK+mpmj5LeW91Owor6ambPkVraTsKK+mpnz5TaHV1Owor6amiPlJ5bzsKK+mppD5Kb3U7CivpqaU+S2k7Civpqak+S2FuOwor6amqPlJpOwor6amrPkh5dXU7Civpqqg+S290c3U7Civpqq0+S2FuOwor6aqwPlRvdTsKK+mquD5LYWk7Civpqrw+S2FrdTsKK+mrgD5IaTsKK+mrhD5adWk7Civpq48+Um91Owor6auRPlRva3U7Civpq5M+WnVpOwor6auUPlRlaTsKK+mrmD5Lb3U7Civpq54+U291Owor6aufPkh5b3U7Civpq6I+VGVpOwor6aujPkhvdTsKK+mrpj5Cb3U7Civpq6o+SGF0c3U7Civpq6s+Q2hvdTsKK+mrrT5TaGk7Civpq64+SGF0c3U7Civpq68+WmVuOwor6auxPkhvdTsKK+mrtD5GdXRzdTsKK+mrtz5LeW9rdTsKK+mruz5LZWk7CivprIY+U2hvdTsKK+msmD5CYW47CivprJo+U2h1Owor6ayfPkthbjsKK+msoj5IaW47CivprKM+UnlvdTsKK+mspT5Ub3U7CivprKc+VG91Owor6ayoPktvdTsKK+msqT5HZWtpOwor6ayqPlRvdTsKK+msrj5LeXV1Owor6ayvPkNob3U7CivprLE+VXRzdTsKK+mssj5SZWtpOwor6ay7PlNodWt1Owor6ay8PktpOwor6a2BPkthaTsKK+mtgj5Lb247CivprYM+QmF0c3U7CivprYQ+SGFrdTsKK+mthT5NaTsKK+mtjT5Cb3U7CivprY4+UnlvdTsKK+mtjz5HaTsKK+mtkT5DaGk7CivprZQ+TWE7CivprZg+RW47CivprZo+R3lvOwor6a2vPlJvOwor6a20PkhvdTsKK+mugz5IeW91Owor6a6OPk5lbjsKK+mukT5Ib3U7CivprpI+RnU7CivprpM+U2E7Civprp8+QW47CivprqA+R2FpOwor6a6oPlNoaTsKK+muqj5JOwor6a6rPktvdTsKK+murT5LZWk7Civprq4+U2VuOwor6a65PlNvdTsKK+mvgD5Lb247Civpr4Y+SG87Civpr4k+Umk7Civpr4o+U2E7Civpr5Q+U2hpOwor6a+WPlNlaTsKK+mvmz5DaG91Owor6a+hPkhpOwor6a+iPkdlaTsKK+mvoz5Fa2k7Civpr6Q+S29uOwor6a+oPkdlaTsKK+mvsD5OZW47Civpr7U+U291Owor6bCEPkk7CivpsIY+U2h1bjsKK+mwiD5DaG91Owor6bCJPktvdTsKK+mwij5SZW47CivpsIw+U2h1dTsKK+mwjT5TaHV1Owor6bCQPkdha3U7CivpsJI+RnVrdTsKK+mwkz5TYWk7CivpsJQ+S2FuOwor6bCVPkthOwor6bCbPk9uOwor6bChPlJ5dXU7CivpsKQ+U2hpOwor6bClPkthbjsKK+mwrT5LaTsKK+mwrj5PbjsKK+mwsj5Hb3U7CivpsLk+S2VuOwor6bC6PlNvdTsKK+mwuz5CYW47CivpsL4+SHlvdTsKK+mxhj5TaG91Owor6bGHPktvdTsKK+mxiD5TZXRzdTsKK+mxkj5Tb247CivpsZc+UmluOwor6bGgPkthaTsKK+mxpz5SZWk7CivpsbY+U2hvdTsKK+mxuD5SbzsKK+mzpT5DaG91Owor6bOnPkZ1Owor6bOpPkt5dXU7Civps6s+R2FuOwor6bOsPkZ1Owor6bOzPkhvdTsKK+mztD5NZWk7Civps7Y+RW47CivptIM+S2V0c3U7CivptIY+Q2hpbjsKK+m0hz5Ib3U7CivptIg+R2FuOwor6bSJPkE7CivptI4+T3U7CivptJI+UmVpOwor6bSVPlRhOwor6bSbPkVuOwor6bSfPlNoaTsKK+m0oz5LbzsKK+m0pj5Zb3U7CivptKg+T3U7CivptKo+SXRzdTsKK+m0rD5PdTsKK+m0uz5Lb3U7CivptL4+Qm91Owor6bS/PktvdTsKK+m1gT5Lb3U7CivptYQ+U2hpOwor6bWQPkJ1Owor6bWRPktlbjsKK+m1mT5HZWtpOwor6bWcPlRlaTsKK+m1nT5HYTsKK+m1nj5HYTsKK+m1oD5Lb2t1Owor6bWhPkJ1Owor6bWsPkhvdTsKK+m1rz5IaTsKK+m1sj5KYWt1Owor6bW6PllhOwor6baHPlRvdTsKK+m2iT5TaHVuOwor6baPPktlaTsKK+m2mj5HYWt1Owor6bakPktvbjsKK+m2qT5Cb2t1Owor6bavPk91Owor6bayPk91Owor6ba0Pktha3U7Civptrg+SmFrdTsKK+m2uj5TZWtpOwor6ba7PktvdHN1Owor6beBPkdla2k7Civpt4I+WW91Owor6beEPktlaTsKK+m3hj5UZW47Civpt48+VGVuOwor6beTPlNoYTsKK+m3mT5TaGk7Civpt6Y+U2hvdTsKK+m3rT5CYW47Civpt68+UnlvdTsKK+m3sj5TaHV1Owor6be4Pkl0c3U7Civpt7k+WW91Owor6be6PlJvOwor6be9Pktha3U7CivpuJo+T3U7CivpuJs+S2FuOwor6biePlJhbjsKK+m5tT5SbzsKK+m5uD5LZW47Civpubk+S2FuOwor6bm9PkVuOwor6bm/PlJva3U7CivpuoE+U287Civpuog+U2h1Owor6bqLPkJpOwor6bqMPkd1Owor6bqRPkdlaTsKK+m6kj5LaTsKK+m6kz5Sb2t1Owor6bqVPktpbjsKK+m6lz5SZWk7Civpup0+U2hhOwor6bqfPlJpbjsKK+m6pT5CYWt1Owor6bqmPkJha3U7Civpuqk+RnU7Civpuqo+TWVuOwor6bqtPkhvdTsKK+m6uD5GdTsKK+m6uT5LaWt1Owor6bq6Pk1lbjsKK+m6uz5NYTsKK+m6vD5NYTsKK+m6vj5LaTsKK+m6vz5SbzsKK+m7hD5Lb3U7Civpu4w+S291Owor6buNPlNobzsKK+m7jj5SZWk7Civpu48+TmVuOwor6buQPkNoaTsKK+m7kj5Lb2t1Owor6buUPktlbjsKK+m7mD5Nb2t1Owor6buZPk1va3U7Civpu5s+VGFpOwor6bucPkNodXRzdTsKK+m7nT5ZdXU7Civpu54+VGVuOwor6bugPkthdHN1Owor6bulPkdlaTsKK+m7qD5Ub3U7Civpu68+QW47Civpu7Q+QmFpOwor6bu2PkVuOwor6bu3PlRva3U7Civpu7k+Q2hpOwor6bu7PkZ1dHN1Owor6bu8PkhvOwor6bu9PkJvdTsKK+m8hz5Hb3U7CivpvIg+QmV0c3U7CivpvI4+VGVpOwor6byTPktvOwor6byVPlRvdTsKK+m8oD5TbzsKK+m8oT5TaG87CivpvKw+WXV1Owor6by7PkJpOwor6by+PkthbjsKK+m9ij5TZWk7CivpvYs+U2FpOwor6b2OPlNlaTsKK+m9jz5TZWk7CivpvZI+U2hpOwor6b2UPlNoaW47CivpvZ8+U287CivpvaA+Q2hvdTsKK+m9oT5SZWk7CivpvaI+UmVpOwor6b2jPlNodXRzdTsKK+m9pj5HaW47Civpvac+S2V0c3U7Civpvao+U29rdTsKK+m9rD5HeW87CivpvbI+S3U7CivpvbY+R2FrdTsKK+m9tz5Ba3U7Civpvo0+Unl1dTsKK+m+lT5HYW47Civpvpw+S2k7Civpvp0+U2h1dTsKK+m+oD5ZYWt1OworCisjIGVvZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L3RoYWlfdGVzdC50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvdGhhaV90ZXN0LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kN2I2YTVkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L3RoYWlfdGVzdC50eHQKQEAgLTAsMCArMSw1MSBAQAor77u/QFVQUEVSRklMVEVSQAorVW5pY29kZSDguITguLfguK3guK3guLDguYTguKM/CitVbmljb2RlIOC4geC4s+C4q+C4meC4lOC4q+C4oeC4suC4ouC5gOC4peC4guC5gOC4ieC4nuC4suC4sOC4quC4s+C4q+C4o+C4seC4muC4l+C4uOC4geC4reC4seC4geC4guC4o+C4sAor4LmC4LiU4Lii4LmE4Lih4LmI4Liq4LiZ4LmD4LiI4Lin4LmI4Liy4LmA4Lib4LmH4LiZ4LmB4Lie4Lil4LmH4LiV4Lif4Lit4Lij4LmM4Lih4LmD4LiUCivguYTguKHguYjguILguLbguYnguJnguIHguLHguJrguKfguYjguLLguIjguLDguYDguJvguYfguJnguYLguJvguKPguYHguIHguKPguKHguYPguJQKK+C5geC4peC4sOC5hOC4oeC5iOC4p+C5iOC4suC4iOC4sOC5gOC4m+C5h+C4meC4oOC4suC4qeC4suC5g+C4lAorCivguYLguJTguKLguJ7guLfguYnguJnguJDguLLguJnguYHguKXguYnguKcsIOC4hOC4reC4oeC4nuC4tOC4p+C5gOC4leC4reC4o+C5jOC4iOC4sOC5gOC4geC4teC5iOC4ouC4p+C4guC5ieC4reC4h+C4geC4seC4muC5gOC4o+C4t+C5iOC4reC4h+C4guC4reC4h+C4leC4seC4p+C5gOC4peC4gi4g4LiE4Lit4Lih4Lie4Li04Lin4LmA4LiV4Lit4Lij4LmM4LiI4Lix4LiU4LmA4LiB4LmH4Lia4LiV4Lix4Lin4Lit4Lix4LiB4Lip4Lij4LmB4Lil4Liw4Lit4Lix4LiB4LiC4Lij4Liw4Lit4Li34LmI4LiZ4LmGIOC5guC4lOC4ouC4geC4suC4o+C4geC4s+C4q+C4meC4lOC4q+C4oeC4suC4ouC5gOC4peC4guC5g+C4q+C5ieC4quC4s+C4q+C4o+C4seC4muC5geC4leC5iOC4peC4sOC4leC4seC4py4g4LiB4LmI4Lit4LiZ4Lir4LiZ4LmJ4Liy4LiX4Li14LmI4LmKIFVuaWNvZGUg4LiI4Liw4LiW4Li54LiB4Liq4Lij4LmJ4Liy4LiH4LiC4Li24LmJ4LiZLCDguYTguJTguYnguKHguLXguKPguLDguJrguJogZW5jb2Rpbmcg4Lit4Lii4Li54LmI4Lir4Lil4Liy4Lii4Lij4LmJ4Lit4Lii4Lij4Liw4Lia4Lia4Liq4Liz4Lir4Lij4Lix4Lia4LiB4Liy4Lij4LiB4Liz4Lir4LiZ4LiU4Lir4Lih4Liy4Lii4LmA4Lil4LiC4LmA4Lir4Lil4LmI4Liy4LiZ4Li14LmJLiDguYTguKHguYjguKHguLUgZW5jb2Rpbmcg4LmD4LiU4LiX4Li14LmI4Lih4Li14LiI4Liz4LiZ4Lin4LiZ4LiV4Lix4Lin4Lit4Lix4LiB4LiC4Lij4Liw4Lih4Liy4LiB4LmA4Lie4Li14Lii4LiH4Lie4LitOiDguKLguIHguJXguLHguKfguK3guKLguYjguLLguIfguYDguIrguYjguJksIOC5gOC4ieC4nuC4suC4sOC5g+C4meC4geC4peC4uOC5iOC4oeC4quC4q+C4oOC4suC4nuC4ouC4uOC5guC4o+C4m+C5gOC4nuC4teC4ouC4h+C5geC4q+C5iOC4h+C5gOC4lOC4teC4ouC4pyDguIHguYfguJXguYnguK3guIfguIHguLLguKPguKvguKXguLLguKIgZW5jb2Rpbmcg4LmD4LiZ4LiB4Liy4Lij4LiE4Lij4Lit4Lia4LiE4Lil4Li44Lih4LiX4Li44LiB4Lig4Liy4Lip4Liy4LmD4LiZ4LiB4Lil4Li44LmI4LihLiDguKvguKPguLfguK3guYHguKHguYnguYHguJXguYjguYPguJnguKDguLLguKnguLLguYDguJTguLXguYjguKLguKcg4LmA4LiK4LmI4LiZIOC4oOC4suC4qeC4suC4reC4seC4h+C4geC4pOC4qSDguIHguYfguYTguKHguYjguKHguLUgZW5jb2Rpbmcg4LmD4LiU4LiX4Li14LmI4LmA4Lie4Li14Lii4LiH4Lie4Lit4Liq4Liz4Lir4Lij4Lix4Lia4LiX4Li44LiB4LiV4Lix4Lin4Lit4Lix4LiB4Lip4LijLCDguYDguITguKPguLfguYjguK3guIfguKvguKHguLLguKLguKfguKPguKPguITguJXguK3guJkg4LmB4Lil4Liw4Liq4Lix4LiN4Lil4Lix4LiB4Lip4LiT4LmM4LiX4Liy4LiH4LmA4LiX4LiE4LiZ4Li04LiE4LiX4Li14LmI4LmD4LiK4LmJ4LiB4Lix4LiZ4Lit4Lii4Li54LmI4LiX4Lix4LmI4Lin4LmE4LibLiAKKwor4Lij4Liw4Lia4LiaIGVuY29kaW5nIOC5gOC4q+C4peC5iOC4suC4meC4teC5ieC4ouC4seC4h+C4guC4seC4lOC5geC4ouC5ieC4h+C4i+C4tuC5iOC4h+C4geC4seC4meC5geC4peC4sOC4geC4seC4mS4g4LiZ4Lix4LmI4LiZ4LiB4LmH4LiE4Li34LitLCDguYPguJnguKrguK3guIcgZW5jb2Rpbmcg4Liq4Liy4Lih4Liy4Lij4LiW4LmD4LiK4LmJ4Lir4Lih4Liy4Lii4LmA4Lil4LiC4LmA4LiU4Li14Lii4Lin4LiB4Lix4LiZ4Liq4Liz4Lir4Lij4Lix4Lia4LiV4Lix4Lin4Lit4Lix4LiB4LiC4Lij4Liw4Liq4Lit4LiH4LiV4Lix4Lin4LiX4Li14LmI4LmB4LiV4LiB4LiV4LmI4Liy4LiH4LiB4Lix4LiZLOC4q+C4o+C4t+C4reC5g+C4iuC5ieC4q+C4oeC4suC4ouC5gOC4peC4guC4leC5iOC4suC4h+C4geC4seC4meC4quC4s+C4q+C4o+C4seC4muC4reC4seC4geC4guC4o+C4sOC4leC4seC4p+C5gOC4lOC4teC4ouC4p+C4geC4seC4mS4g4LmD4LiZ4Lij4Liw4Lia4Lia4LiE4Lit4Lih4Lie4Li04Lin4LmA4LiV4Lit4Lij4LmMICjguYLguJTguKLguYDguInguJ7guLLguLDguYDguIvguLTguKPguYzguJ/guYDguKfguK3guKPguYwpIOC4leC5ieC4reC4h+C4oeC4teC4geC4suC4o+C4quC4meC4seC4muC4quC4meC4uOC4meC4q+C4peC4suC4oiBlbmNvZGluZzsg4LmB4Lil4Liw4LmA4Lih4Li34LmI4Lit4LiC4LmJ4Lit4Lih4Li54Lil4LiX4Li14LmI4Lic4LmI4Liy4LiZ4LmE4Lib4Lih4Liy4Lij4Liw4Lir4Lin4LmI4Liy4LiH4LiB4Liy4Lij4LmA4LiC4LmJ4Liy4Lij4Lir4Lix4Liq4Lir4Lij4Li34Lit4LmB4Lie4Lil4LmH4LiV4Lif4Lit4Lij4LmM4Lih4LiX4Li14LmI4LiV4LmI4Liy4LiH4LiB4Lix4LiZLCDguILguYnguK3guKHguLnguKXguJnguLHguYnguJnguIjguLDguYDguKrguLXguYjguKLguIfguJXguYjguK3guIHguLLguKPguJzguLTguJTguJ7guKXguLLguJTguYDguKrguLXguKLguKvguLLguKIuCisKK1VuaWNvZGUg4LiI4Liw4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiH4Liq4Li04LmI4LiH4LmA4Lir4Lil4LmI4Liy4LiZ4Lix4LmJ4LiZ4LiX4Lix4LmJ4LiH4Lir4Lih4LiUIQorVW5pY29kZSDguIHguLPguKvguJnguJTguKvguKHguLLguKLguYDguKXguILguYDguInguJ7guLLguLDguKrguLPguKvguKPguLHguJrguYHguJXguYjguKXguLDguK3guLHguIHguILguKPguLAsIOC5guC4lOC4ouC5hOC4oeC5iOC4quC4meC5g+C4iOC4p+C5iOC4suC5gOC4m+C5h+C4meC5geC4nuC4peC5h+C4leC4n+C4reC4o+C5jOC4oeC5g+C4lCwg4LmE4Lih4LmI4LiC4Li24LmJ4LiZ4LiB4Lix4Lia4Lin4LmI4Liy4LiI4Liw4LmA4Lib4LmH4LiZ4LmC4Lib4Lij4LmB4LiB4Lij4Lih4LmD4LiU4LmB4Lil4Liw4LmE4Lih4LmI4Lin4LmI4Liy4LiI4Liw4LmA4Lib4LmH4LiZ4Lig4Liy4Lip4Liy4LmD4LiULiDguKHguLLguJXguKPguJDguLLguJkgVW5pY29kZSDguYTguJTguYnguJbguLnguIHguJnguLPguYTguJvguYPguIrguYnguYLguJTguKLguJzguLnguYnguJnguLPguYPguJnguK3guLjguJXguKrguLLguKvguIHguKPguKPguKEg4LmA4LiK4LmI4LiZIEFwcGxlLCBIUCwgSUJNLCBKdXN0U3lzdGVtLCBNaWNyb3NvZnQsIE9yYWNsZSwgU0FQLCBTdW4sIFN5YmFzZSwgVW5pc3lzIOC5geC4peC4sOC4reC4t+C5iOC4meC5hiDguK3guLXguIHguKHguLLguIEuIFVuaWNvZGUg4LmA4Lib4LmH4LiZ4Liq4Li04LmI4LiH4LiX4Li14LmI4LiI4Liz4LmA4Lib4LmH4LiZ4Liq4Liz4Lir4Lij4Lix4Lia4Lih4Liy4LiV4Lij4LiQ4Liy4LiZ4LmD4Lir4Lih4LmI4LmGIOC5gOC4iuC5iOC4mSBYTUwsIEphdmEsIEVDTUFTY3JpcHQgKEphdmFTY3JpcHQpLCBMREFQLCBDT1JCQSAzLjAsIFdNTCDguK/guKXguK8uLCDguYHguKXguLDguYDguJvguYfguJnguYHguJnguKfguJfguLLguIfguK3guKLguYjguLLguIfguYDguJvguYfguJnguJfguLLguIfguIHguLLguKPguYPguJnguIHguLLguKPguJfguLMgSVNPL0lFQyAxMDY0Ni4gVW5pY29kZSDguYTguJTguYnguKPguLHguJrguIHguLLguKPguKrguJnguLHguJrguKrguJnguLjguJnguYPguJnguKPguLDguJrguJrguJvguI/guLTguJrguLHguJXguLTguIHguLLguKPguIjguLPguJnguKfguJnguKHguLLguIEsIOC4muC4o+C4suC4p+C5gOC4i+C4reC4o+C5jOC5g+C4q+C4oeC5iOC5hiDguJfguIHguJXguLHguKcsIOC5geC4peC4sOC4nOC4peC4tOC4leC4oOC4seC4k+C4keC5jOC4reC4t+C5iOC4meC5hiDguK3guLXguIHguKHguLLguIEuIOC4geC4suC4o+C5gOC4geC4tOC4lOC4guC4tuC5ieC4meC4guC4reC4hyBVbmljb2RlIFN0YW5kYXJkIOC5geC4peC4sOC4l+C4ueC4peC4quC5jOC4leC5iOC4suC4h+C5hiDguJfguLXguYjguKHguLXguYPguJnguIHguLLguKPguKrguJnguLHguJrguKrguJnguLjguJkgVW5pY29kZSwg4LmA4Lib4LmH4LiZ4Lir4LiZ4Li24LmI4LiH4LmD4LiZ4LmB4LiZ4Lin4LmC4LiZ4LmJ4Lih4LiX4Liy4LiH4LmA4LiX4LiE4LmC4LiZ4LmC4Lil4Lii4Li14LiL4Lit4Lif4LiV4LmM4LmB4Lin4Lij4LmM4Lij4Liw4LiU4Lix4Lia4LmC4Lil4LiB4LiX4Li14LmI4Lih4Li14LiE4Lin4Liy4Lih4Liq4Liz4LiE4Lix4LiN4LiX4Li14LmI4Liq4Li44LiULgorCivguIHguLLguKPguKPguKfguKEgVW5pY29kZSDguYDguILguYnguLLguYTguJvguYPguJnguKPguLDguJrguJrguYTguITguKXguYDguK3guYfguJnguJXguYwt4LmA4LiL4Li04Lij4LmM4Lif4LmA4Lin4Lit4Lij4LmMIOC4q+C4o+C4t+C4reC5geC4reC5h+C4nuC4nuC4peC4tOC5gOC4hOC4iuC4seC4meC5geC4muC4miBtdWx0aS10aWVyZWQg4LmB4Lil4Liw4LmA4Lin4LmH4Lia4LmE4LiL4LiV4LmMIOC4iOC4sOC4l+C4s+C5g+C4q+C5ieC5gOC4geC4tOC4lOC4geC4suC4o+C4m+C4o+C4sOC4q+C4ouC4seC4lOC4hOC5iOC4suC5g+C4iuC5ieC4iOC5iOC4suC4ouC4oeC4suC4geC4geC4p+C5iOC4suC4geC4suC4o+C5g+C4iuC5ieC4iuC4uOC4lOC4reC4seC4geC4guC4o+C4sOC5geC4muC4muC5gOC4lOC4tOC4oS4gVW5pY29kZSDguJfguLPguYPguKvguYnguJzguKXguLTguJXguKDguLHguJPguJHguYzguIvguK3guJ/guJXguYzguYHguKfguKPguYzguKvguJnguLbguYjguIfguYDguJTguLXguKLguKcg4Lir4Lij4Li34Lit4LmA4Lin4LmH4Lia4LmE4LiL4LiV4LmM4LmB4Lir4LmI4LiH4LmA4LiU4Li14Lii4LinIOC4o+C4reC4h+C4o+C4seC4muC5hOC4lOC5ieC4q+C4peC4suC4ouC5geC4nuC4peC5h+C4leC4n+C4reC4o+C5jOC4oSwg4Lir4Lil4Liy4Lii4Lig4Liy4Lip4Liy4LmB4Lil4Liw4Lir4Lil4Liy4Lii4Lib4Lij4Liw4LmA4LiX4Lio4LmC4LiU4Lii4LmE4Lih4LmI4LiV4LmJ4Lit4LiH4LiX4Liz4LiB4Liy4Lij4Lij4Li34LmJ4Lit4Lib4Lij4Lix4Lia4Lij4Liw4Lia4LiaLiBVbmljb2RlIOC4ouC4seC4h+C4l+C4s+C5g+C4q+C5ieC4guC5ieC4reC4oeC4ueC4peC4quC4suC4oeC4suC4o+C4luC5gOC4hOC4peC4t+C5iOC4reC4meC4ouC5ieC4suC4ouC5hOC4m+C4oeC4suC5g+C4meC4q+C4peC4suC4ouC5hiDguKPguLDguJrguJrguYLguJTguKLguYTguKHguYjguYDguIHguLTguJTguITguKfguLLguKHguJzguLTguJTguJ7guKXguLLguJTguYDguKrguLXguKLguKvguLLguKIuCisKK+C5gOC4geC4teC5iOC4ouC4p+C4geC4seC4miBVbmljb2RlIENvbnNvcnRpdW0KK1VuaWNvZGUgQ29uc29ydGl1bSDguYDguJvguYfguJnguK3guIfguITguYzguIHguKPguYTguKHguYjguYHguKrguKfguIfguKvguLLguIHguLPguYTguKPguJfguLXguYjguIHguYjguK3guJXguLHguYnguIfguILguLbguYnguJnguYDguJ7guLfguYjguK3guJ7guLHguJLguJnguLIsIOC4guC4ouC4suC4ouC5geC4peC4sOC4quC5iOC4h+C5gOC4quC4o+C4tOC4oeC4geC4suC4o+C5g+C4iuC5iSBVbmljb2RlIFN0YW5kYXJkLCDguIvguLbguYjguIfguIHguLPguKvguJnguJTguKPguLnguJvguYHguJrguJrguIHguLLguKPguYHguJfguJnguITguYjguLLguILguK3guIfguILguYnguK3guITguKfguLLguKHguYPguJnguJzguKXguLTguJXguKDguLHguJPguJHguYzguIvguK3guJ/guJXguYzguYHguKfguKPguYzguYHguKXguLDguKHguLLguJXguKPguJDguLLguJnguYPguKvguKHguYjguYYuIOC4quC4oeC4suC4iuC4tOC4geC4guC4reC4h+C4quC4oeC4suC4hOC4oeC5gOC4m+C5h+C4meC4leC4seC4p+C5geC4l+C4meC4iOC4suC4geC4muC4o+C4tOC4qeC4seC4l+C5geC4peC4sOC4reC4h+C4hOC5jOC4geC4o+C5g+C4meC4reC4uOC4leC4quC4suC4q+C4geC4o+C4o+C4oeC4hOC4reC4oeC4nuC4tOC4p+C5gOC4leC4reC4o+C5jOC5geC4peC4sOC4geC4suC4o+C4m+C4o+C4sOC4oeC4p+C4peC4nOC4peC4quC4suC4o+C4quC4meC5gOC4l+C4qC4g4Liq4Lih4Liy4LiE4Lih4LmE4LiU4LmJ4Lij4Lix4Lia4LiB4Liy4Lij4Liq4LiZ4Lix4Lia4Liq4LiZ4Li44LiZ4LiX4Liy4LiH4LiB4Liy4Lij4LmA4LiH4Li04LiZ4Lic4LmI4Liy4LiZ4LiX4Liy4LiH4LiE4LmI4Liy4LiY4Lij4Lij4Lih4LmA4LiZ4Li14Lii4Lih4LiC4Lit4LiH4LiB4Liy4Lij4LmA4Lib4LmH4LiZ4Liq4Lih4Liy4LiK4Li04LiB4LmA4LiX4LmI4Liy4LiZ4Lix4LmJ4LiZLiDguKrguKHguLLguIrguLTguIHguKDguLLguJ7guILguK3guIcgVW5pY29kZSBDb25zb3J0aXVtIOC5gOC4m+C4tOC4lOC4geC4p+C5ieC4suC4h+C4quC4s+C4q+C4o+C4seC4muC4reC4h+C4hOC5jOC4geC4o+C4q+C4o+C4t+C4reC4muC4uOC4hOC4hOC4peC5g+C4lOC5hiDguYPguJnguYLguKXguIHguJfguLXguYjguJXguYnguK3guIfguIHguLLguKPguKrguJnguLHguJrguKrguJnguLjguJkgVW5pY29kZSBTdGFuZGFyZCDguYHguKXguLDguIrguYjguKfguKLguYDguKvguKXguLfguK3guIHguLLguKPguILguKLguLLguKLguJXguLHguKfguYHguKXguLDguIHguLLguKPguJnguLMgVW5pY29kZSDguYTguJvguYPguIrguYnguIfguLLguJkuIAorCivguKrguLPguKvguKPguLHguJrguILguYnguK3guKHguLnguKXguYDguJ7guLTguYjguKHguYDguJXguLTguKEsIOC5g+C4q+C5ieC4lOC4ueC4l+C4teC5iCBHbG9zc2FyeSwgU2FtcGxlIFVuaWNvZGUtRW5hYmxlZCBQcm9kdWN0cywgVGVjaG5pY2FsIEludHJvZHVjdGlvbiDguYHguKXguLAgVXNlZnVsIFJlc291cmNlcy4KK0BUSVRMRUNBU0VACivguIHguYrguIHguYDguK7guIcg4LmB4LiL4LmI4LmB4LiV4LmJCivguIHguIrguIHguKMg4Lio4Lij4Liy4LiX4LiY4LiX4Lix4LiVCivguIHguJXguLTguIHguLIg4Lit4Lix4LiH4LiE4Liq4Li44Lig4LiTCivguIHguJnguIEg4LiY4Lij4Lij4Lih4Lib4Lij4Liw4LiX4Li14LibCivguIHguJnguIEg4Lin4LiH4Lio4LmM4LiX4Lit4LiH4Lio4Lij4Li1CivguIHguJnguIHguIHguKMg4LiK4LmJ4Liy4LiH4LmA4Lii4LmH4LiZ4LiJ4LmI4LizCivguIHguJnguIHguInguLHguJXguKPguYwg4LiW4Liy4Lin4Lij4LiZ4Lix4LiZ4LiX4LmMCivguIHguJnguIHguJnguKfguKUg4LmC4Lib4Lip4Lii4Liw4LiZ4Lix4LiZ4LiX4LiZ4LmMCivguIHguJnguIHguJ7guKMg4LiE4Lih4LiE4Liy4LiiCivguIHguJnguIHguJ7guKMg4LiV4Li14Lij4LmA4Lil4Li04Lio4Lie4Liy4LiZ4Li04LiKCivguIHguJnguIHguJ7guKMg4Lie4Lix4LiZ4LiX4LijCivguIHguJnguIHguJ7guKMg4Lio4Lij4Li14Lia4Lix4LiT4LiR4Li04LiVCivguIHguJnguIHguJ7guKMg4Lit4LiV4Li04Lin4Lij4Lij4LiT4Liy4Lie4Lix4LiS4LiZ4LmMCivguIHguJnguIHguJ7guKPguKPguJMg4Lio4Lij4Li14Lin4LiZ4Liy4Lig4Li04Lij4Lih4Lii4LmMCivguIHguJnguIHguKPguLHguJXguJnguYwg4LmA4LiB4Li14Lii4Lij4LiV4Li04Lii4Li04LmI4LiH4Lit4Lix4LiH4Lio4Li44Lil4Li1CivguIHguJnguIHguKPguLHguJXguJnguYwg4Liq4Li44LiY4Lij4Lij4Lih4Lie4Li04LiX4Lix4LiB4Lip4LmMCivguIHguJnguIHguKfguKPguKPguJMg4LiE4LiH4LiE4Liy4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQCivguIHguJnguIHguKfguKPguKPguJMg4LmB4LiL4LmI4LmA4LiV4Li14Lii4LinCivguIHguJnguIHguKfguKPguKPguJMg4Lia4Li44LiN4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQCivguIHguJnguIHguKfguKPguKPguJMg4Lij4Lix4LiB4LiX4Lij4Lix4Lie4Lii4LmMCivguIHguJnguIHguKfguKPguKPguJMg4Liq4Lix4LiI4LiI4Lie4LiH4Lip4LmMCivguIHguJnguIHguKfguKPguKPguJMg4Lit4Li44LmJ4Lii4Lin4LiH4Lio4LmM4LmE4Lie4Lio4Liy4LilCivguIHguJnguIHguKjguLHguIHguJTguLTguYwg4Lii4Li04LmI4LiH4Lii4LiHCivguIHguJnguIHguYHguIHguYnguKcg4LiB4Lij4Liq4Lih4Li04LiVCivguIHguJnguLTguKnguJDguLIg4LiX4LiZ4Li44LiW4LiZ4Lit4Lih4Lij4Liy4Lip4LiO4Lij4LmMCivguIHguJnguLTguKnguJDguLIg4Lir4Lin4Lix4LiH4Lin4Li04Lia4Li54Lil4Lii4LmM4LiB4Li04LiICivguIHguKHguKUg4LiB4Liy4LiN4LiI4LiZ4LmC4Lij4LiI4LiZ4LmMCivguIHguKHguKUg4LiE4Lix4Lih4Lig4Li14Lij4LmMCivguIHguKHguKUg4LmA4LiI4LiV4LiZ4LmM4Lih4LiH4LiE4Lil4Lij4Lix4LiV4LiZ4LmMCivguIHguKHguKUg4LiK4Li54LiV4Lij4Liw4LiB4Li54Lil4LiY4Lij4Lij4LihClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L01vZHVsZVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9Nb2R1bGVUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmE5OGIzYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9Nb2R1bGVUZXN0LmphdmEKQEAgLTAsMCArMSwxNzIgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvTW9kdWxlVGVzdC5qYXZhLHYgJAorICogJERhdGU6IDIwMDIvMDgvMTMgMjE6NTk6NTQgJAorICogJFJldmlzaW9uOiAxLjIgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Q7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0RGF0YU1vZHVsZS5UZXN0RGF0YTsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0RGF0YU1vZHVsZS5EYXRhTWFwOworCisvKioKKyAqIEEgY29udmVuaWVuY2UgZXh0ZW5zaW9uIG9mIFRlc3RGbXdrIGZvciB1c2UgYnkgZGF0YSBtb2R1bGUtZHJpdmVuCisgKiB0ZXN0cy4gIFRlc3RzIGNhbiBpbXBsZW1lbnQgdGhpcyBpZiB0aGV5IG1ha2UgZXh0ZW5zaXZlIHVzZSBvZgorICogaW5mb3JtYXRpb24gaW4gYSBUZXN0RGF0YU1vZHVsZS4gIFRoZSBtb2R1bGUgc2hvdWxkIGJlIG9wZW5hYmxlCisgKiB1c2luZyBUZXN0RGF0YU1vZHVsZS5vcGVuKCkgcGFzc2luZyBpbiB0aGUgY2xhc3MgbmFtZSBvZiB0aGlzIHRlc3QKKyAqICsgIkRhdGEiLiAgRm9yIGV4YW1wbGUsIGEgdGVzdCBuYW1lZCBNeVRlc3Qgd291bGQgaGF2ZSBhIG1vZHVsZQorICogbmFtZWQgTXlUZXN0RGF0YS4gIEVhY2ggdGVzdCBtZXRob2Qgc2hvdWxkIGFsc28gaGF2ZSBhCisgKiBjb3JyZXNwb25kaW5nIHRlc3QgZGF0YSBpbiB0aGUgbW9kdWxlIHdob3NlIG5hbWUgbWF0Y2hlcyB0aGUgdGVzdAorICogbWV0aG9kIG5hbWUuCisgKgorICogU3ViY2xhc3NlcyBjYW4gYWxsb3cgZm9yIHRlc3QgbWV0aG9kcyB0aGF0IGRvbid0IHVzZSBkYXRhIGZyb20gdGhlCisgKiBtb2RldWwgYnkgb3ZlcnJpZGluZyB2YWxpZGF0ZU1ldGhvZCB0byByZXR1cm4gdHJ1ZSBmb3IgdGhlc2UKKyAqIG1ldGhvZHMuICBUZXN0cyBhcmUgYWxzbyBmcmVlIHRvIGluc3RhbnRpYXRlIHRoZWlyIG93biBtb2R1bGVzIGFuZAorICogcnVuIGZyb20gdGhlbSwgdGhvdWdoIGNhcmUgc2hvdWxkIGJlIHRha2VuIG5vdCB0byBpbnRlcmZlcmUgd2l0aAorICogdGhlIG1ldGhvZHMgaW4gdGhpcyBjbGFzcy4KKyAqCisgKiBTZWUgTW9kdWxlVGVzdFNhbXBsZSBmb3IgYW4gZXhhbXBsZS4gICovCitwdWJsaWMgY2xhc3MgTW9kdWxlVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICBwcml2YXRlIFRlc3REYXRhTW9kdWxlIG07CisgICAgcHJpdmF0ZSBUZXN0RGF0YSB0OworCisgICAgLyoqCisgICAgICogU3ViY2xhc3NlcyBhY2Nlc3MgdGhpcyBhZnRlciBjYWxsaW5nIG5leHRTZXR0aW5ncyBhbmQgZ2V0dGluZworICAgICAqIGEgdHJ1ZSByZXN1bHQuCisgICAgICovCisgICAgcHJvdGVjdGVkIERhdGFNYXAgc2V0dGluZ3M7CisKKyAgICAvKioKKyAgICAgKiBTdWJjbGFzc2VzIGFjY2VzcyB0aGlzIGFmdGVyIGNhbGxpbmcgbmV4dENhc2UgYW5kIGdldHRpbmcgYQorICAgICAqIHRydWUgcmVzdWx0LgorICAgICAqLworICAgIHByb3RlY3RlZCBEYXRhTWFwIHRlc3RjYXNlOworCisgICAgLyoqCisgICAgICogVGVzdEZtd2sgY2FsbHMgdGhpcyBiZWZvcmUgdHJ5aW5nIHRvIHJ1biBhIHN1aXRlIG9mIHRlc3RzLgorICAgICAqIFRoZSB0ZXN0IHN1aXRlIGlmIHZhbGlkIGlmIGEgbW9kdWxlIHdob3NlIG5hbWUgaXMgdGhlIG5hbWUgb2YKKyAgICAgKiB0aGlzIGNsYXNzICsgIkRhdGEiIGNhbiBiZSBvcGVuZWQuICBTdWJjbGFzc2VzIGNhbiBvdmVycmlkZQorICAgICAqIHRoaXMgaWYgdGhlcmUgYXJlIGRpZmZlcmVudCBvciBhZGRpdGlvbmFsIGRhdGEgcmVxdWlyZWQuICAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiB2YWxpZGF0ZSgpIHsKKwlyZXR1cm4gb3Blbk1vZHVsZShnZXRDbGFzcygpLmdldE5hbWUoKSsiRGF0YSIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3RGbXdrIGNhbGxzIHRoaXMgYmVmb3JlIHRyeWluZyB0byBpbnZva2UgYSB0ZXN0IG1ldGhvZC4KKyAgICAgKiBUaGUgbWV0aG9kIGlzIHZhbGlkIGlmIHRoZXJlIGlzIHRlc3QgZGF0YSB3aXRoIHRoZSBuYW1lIG9mIHRoaXMKKyAgICAgKiBtZXRob2QgaW4gdGhlIG1vZHVsZS4gIFN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlIHRoaXMgdG8gYWxsb3cKKyAgICAgKiBmb3IgdGVzdHMgdGhhdCBkbyBub3QgcmVxdWlyZSB0ZXN0IGRhdGEgZnJvbSB0aGUgbW9kdWxlLCBvcgorICAgICAqIGlmIHRoZXJlIGFyZSBkaWZmZXJlbnQgb3IgYWRkaXRpb25hbCBkYXRhIHJlcXVpcmVkLgorICAgICAqLworICAgIHByb3RlY3RlZCBib29sZWFuIHZhbGlkYXRlTWV0aG9kKFN0cmluZyBtZXRob2ROYW1lKSB7CisJcmV0dXJuIG9wZW5UZXN0RGF0YShtZXRob2ROYW1lKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBvZiBUZXN0Rm13ayBtZXRob2QgdG8gZ2V0IHRoZSB0ZXN0IHN1aXRlIGRlc2NyaXB0aW9uCisgICAgICogZnJvbSB0aGUgREVTQ1JJUFRJT04gZmllbGQgb2YgdGhlIG1vZHVsZSBpbmZvLiAgCisgICAgICovCisgICAgcHJvdGVjdGVkIFN0cmluZyBnZXREZXNjcmlwdGlvbigpIHsKKwlEYXRhTWFwIGluZm8gPSBtb2R1bGVJbmZvKCk7CisJaWYgKGluZm8gIT0gbnVsbCkgeworCSAgICByZXR1cm4gaW5mby5nZXRTdHJpbmcoVGVzdERhdGFNb2R1bGUuREVTQ1JJUFRJT04pOworCX0KKwlyZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBvZiBUZXN0Rm13ayBtZXRob2QgdG8gZ2V0IHRoZSB0ZXN0IG1ldGhvZCBkZXNjcmlwdGlvbgorICAgICAqIGZyb20gdGhlIERFU0NSSVBUSU9OIGZpZWxkIG9mIHRoZSB0ZXN0IGluZm8uICAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldE1ldGhvZERlc2NyaXB0aW9uKFN0cmluZyBtZXRob2ROYW1lKSB7CisJaWYgKG9wZW5UZXN0RGF0YShtZXRob2ROYW1lKSkgeworCSAgICBEYXRhTWFwIGluZm8gPSB0ZXN0SW5mbygpOworCSAgICBpZiAoaW5mbyAhPSBudWxsKSB7CisJCXJldHVybiBpbmZvLmdldFN0cmluZyhUZXN0RGF0YU1vZHVsZS5ERVNDUklQVElPTik7CisJICAgIH0KKwl9CisJcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3BlbnMgdGhlIG1vZHVsZSB3aXRoIHRoZSBnaXZlbiBuYW1lLCBhbmQgcmV0dXJuIHRydWUgaWYgc3VjY2Vzcy4KKyAgICAgKiBBbGwgY29udGVudHMgYXJlIHJlc2V0LgorICAgICAqLworICAgIHByb3RlY3RlZCBib29sZWFuIG9wZW5Nb2R1bGUoU3RyaW5nIG5hbWUpIHsKKwl0ID0gbnVsbDsKKwltID0gVGVzdERhdGFNb2R1bGUub3BlbihuYW1lLCB0aGlzKTsKKwlyZXR1cm4gbSAhPSBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIE9wZW4gdGhlIHRlc3QgZGF0YSBpbiB0aGUgbW9kdWxlIHdpdGggdGhlIGdpdmVuIG5hbWUsIGFuZCByZXR1cm4KKyAgICAgKiB0cnVlIGlmIHN1Y2Nlc3MuICBUaGUgY3VycmVudCB0ZXN0IGlzIHJlc2V0LgorICAgICAqLworICAgIHByb3RlY3RlZCBib29sZWFuIG9wZW5UZXN0RGF0YShTdHJpbmcgbmFtZSkgeworCXQgPSBtID09IG51bGwgPyBudWxsIDogbS5jcmVhdGVUZXN0RGF0YShuYW1lKTsKKwlyZXR1cm4gdCAhPSBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBpbmZvcm1hdGlvbiBvbiB0aGlzIG1vZHVsZS4gIFJldHVybnMgbnVsbCBpZiBubyBtb2R1bGUKKyAgICAgKiBvcGVuIG9yIG5vIGluZm8gZm9yIHRoZSBtb2R1bGUuCisgICAgICovCisgICAgcHJvdGVjdGVkIERhdGFNYXAgbW9kdWxlSW5mbygpIHsKKwlyZXR1cm4gbSA9PSBudWxsID8gbnVsbCA6IG0uZ2V0SW5mbygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBpbmZvcm1hdGlvbiBvbiB0aGlzIHRlc3QuICBSZXR1cm5zIG51bGwgaWYgbm8gbW9kdWxlCisgICAgICogb3BlbiBvciBubyB0ZXN0IG9wZW4gb3Igbm90IGluZm8gZm9yIHRoaXMgdGVzdC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgRGF0YU1hcCB0ZXN0SW5mbygpIHsKKwlyZXR1cm4gdCA9PSBudWxsID8gbnVsbCA6IHQuZ2V0SW5mbygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkdmFuY2UgdGVzdCB0byB0aGUgbmV4dCBzZXR0aW5ncywgYW5kIHJldHVybiB0cnVlIGlmIAorICAgICAqIHRoZXJlIGFyZSBtb3JlIHNldHRpbmdzLiAgVGhlIHByb3RlY3RlZCBtZW1iZXIgdmFyaWFibGUKKyAgICAgKiAnc2V0dGluZ3MnIGhvbGRzIHRoZSBuZXcgc2V0dGluZ3MgZGF0YS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBuZXh0U2V0dGluZ3MoKSB7CisJc2V0dGluZ3MgPSB0ID09IG51bGwgPyBudWxsIDogdC5uZXh0U2V0dGluZ3MoKTsKKwlyZXR1cm4gc2V0dGluZ3MgIT0gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlIHRlc3QgdG8gdGhlIG5leHQgY2FzZSwgYW5kIHJldHVybiB0cnVlIGlmIHRoZXJlCisgICAgICogaXMgYW5vdGhlciBjYXNlLiAgVGhlIHByb3RlY3RlZCBtZW1iZXIgdmFyaWFibGUKKyAgICAgKiAndGVzdGNhc2UnIGhvbGRzIHRoZSBuZXcgY2FzZSBkYXRhLgorICAgICAqLworICAgIHByb3RlY3RlZCBib29sZWFuIG5leHRDYXNlKCkgeworCXRlc3RjYXNlID0gdCA9PSBudWxsID8gbnVsbCA6IHQubmV4dENhc2UoKTsKKwlyZXR1cm4gdGVzdGNhc2UgIT0gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXBvcnQgYW4gZXJyb3IsIGFuZCBzdG9wIGl0ZXJhdGlvbiBvZiB0aGUgY3VycmVudCB0ZXN0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGVycihTdHJpbmcgbWVzc2FnZSkgeworCWlmICh0ICE9IG51bGwpIHsKKwkgICAgdC5zdG9wSXRlcmF0aW9uKCk7CisJfQorCXN1cGVyLmVycihtZXNzYWdlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXBvcnQgYW4gZXJyb3IsIGFuZCBzdG9wIGl0ZXJhdGlvbiBvZiB0aGUgY3VycmVudCB0ZXN0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGVycmxuKFN0cmluZyBtZXNzYWdlKSB7CisJaWYgKHQgIT0gbnVsbCkgeworCSAgICB0LnN0b3BJdGVyYXRpb24oKTsKKwl9CisJc3VwZXIuZXJybG4obWVzc2FnZSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Jlc291cmNlTW9kdWxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvUmVzb3VyY2VNb2R1bGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMGI0ZThjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Jlc291cmNlTW9kdWxlLmphdmEKQEAgLTAsMCArMSw1NzggQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvUmVzb3VyY2VNb2R1bGUuamF2YSx2ICQKKyAqICREYXRlOiAyMDAyLzA4LzEzIDIxOjU5OjU0ICQKKyAqICRSZXZpc2lvbjogMS4zICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0OworCitpbXBvcnQgamF2YS51dGlsLlJlc291cmNlQnVuZGxlOworCisvKioKKyAqIFJlc291cmNlLWJhc2VkIG1vZHVsZS4KKyAqLworcHVibGljIGNsYXNzIFJlc291cmNlTW9kdWxlIGV4dGVuZHMgVGVzdERhdGFNb2R1bGUgeworICAgIHByaXZhdGUgTmFtZWRBcnJheSB0ZXN0czsKKyAgICBwcml2YXRlIFJCRGF0YU1hcCBpbmZvOworICAgIHByaXZhdGUgU3RyaW5nW10gZGVmYXVsdEhlYWRlcnM7CisKKyAgICAvKioKKyAgICAgKiBGb3IgaW50ZXJuYWwgdXNlLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgVEVTVFMgPSAiVGVzdERhdGEiOworCisgICAgLyoqCisgICAgICogRm9yIGludGVybmFsIHVzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIElORk8gPSAiSW5mbyI7CisKKyAgICAvKioKKyAgICAgKiBGb3IgaW50ZXJuYWwgdXNlLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0VUVElOR1MgPSAiU2V0dGluZ3MiOworCisgICAgLyoqCisgICAgICogRm9yIGludGVybmFsIHVzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENBU0VTID0gIkNhc2VzIjsKKworICAgIHB1YmxpYyBSZXNvdXJjZU1vZHVsZShTdHJpbmcgbmFtZSwgVGVzdExvZyBsb2csIFJlc291cmNlQnVuZGxlIGIpIHsKKwlzdXBlcihuYW1lLCBsb2cpOworCisJaWYgKGIgPT0gbnVsbCkgeworCSAgICBsb2cuZXJybG4oIlJlc291cmNlTW9kdWxlIG11c3QgaGF2ZSBub24tbnVsbCBidW5kbGUiKTsKKwkgICAgcmV0dXJuOworCX0KKworCU9iamVjdFtdW10gZGF0YSA9IChPYmplY3RbXVtdKWIuZ2V0T2JqZWN0KFRFU1RTKTsKKwlpZiAoZGF0YSA9PSBudWxsKSB7CisJICAgIGxvZy5lcnJsbigiUmVzb3VyY2VNb2R1bGUgZG9lcyBub3QgY29udGFpbiB0ZXN0cyEiKTsKKwkgICAgcmV0dXJuOworCX0KKwl0aGlzLnRlc3RzID0gTmFtZWRBcnJheS5jcmVhdGUoZGF0YSk7CisKKwlPYmplY3RbXVtdIHRlbXAgPSAoT2JqZWN0W11bXSliLmdldE9iamVjdChJTkZPKTsKKwlpZiAodGVtcCAhPSBudWxsKSB7CisJICAgIE5hbWVkQXJyYXkgbmEgPSBOYW1lZEFycmF5LmNyZWF0ZSh0ZW1wKTsKKwkgICAgaWYgKG5hLmNvdW50KCkgPCAwKSB7CisJCWxvZy5lcnJsbigiQmFkIGRhdGEgZm9yICIgKyBJTkZPKTsKKwkgICAgfSBlbHNlIHsKKwkJdGhpcy5pbmZvID0gbmV3IFJCRGF0YU1hcChsb2csIG5hLCBmYWxzZSk7CQorCQl0aGlzLmRlZmF1bHRIZWFkZXJzID0gaW5mby5nZXRTdHJpbmdBcnJheShIRUFERVJTKTsJCisJICAgIH0KKwl9CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGFkZGl0aW9uYWwgZGF0YSByZWxhdGVkIHRvIHRoZSBtb2R1bGUuCisgICAgICogUmV0dXJucyB0cnVlIGlmIHN1Y2Nlc3NmdWxseSBnb3QgaW5mby4KKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0YU1hcCBnZXRJbmZvKCkgeworCXJldHVybiBpbmZvOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIFRlc3Qgb2JqZWN0IGNvcnJlc3BvbmRpbmcgdG8gbmFtZSwgCisgICAgICogb3IgbnVsbCBpZiBuYW1lIG5vdCBmb3VuZCBpbiB0aGlzIG1vZHVsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgVGVzdERhdGEgY3JlYXRlVGVzdERhdGEoU3RyaW5nIG5hbWUpIHsKKwlpZiAodGVzdHMgIT0gbnVsbCkgeworCSAgICBPYmplY3RbXSB0ZCA9IHRlc3RzLmdldEVudHJ5KG5hbWUpOworCSAgICBpZiAodGQgIT0gbnVsbCkgeworCQlyZXR1cm4gY3JlYXRlVGVzdERhdGEodGQpOworCSAgICB9CisJfQorCisJcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgVGVzdCBvYmplY3QgY29ycmVzcG9uZGluZyB0byBpbmRleCwKKyAgICAgKiBvciBudWxsIGlmIGluZGV4IGlzIG91dCBvZiByYW5nZSBmb3IgdGhpcyBtb2R1bGUuCisgICAgICogTm8gZXJyb3IgbG9nZ2VkIGlmIGluZGV4IGlzIG91dCBvZiBib3VuZHMsIHRoZSBhc3N1bXB0aW9uIGlzIHRoYXQKKyAgICAgKiBpdGVyYXRpb24gaXMgYmVpbmcgdXNlZCBhbmQgcHJvY2VlZHMgdW50aWwgYSBudWxsIHJldHVybi4KKyAgICAgKi8KKyAgICBwdWJsaWMgVGVzdERhdGEgY3JlYXRlVGVzdERhdGEoaW50IGluZGV4KSB7CisJaWYgKHRlc3RzICE9IG51bGwpIHsKKwkgICAgT2JqZWN0W10gdGQgPSB0ZXN0cy5nZXRFbnRyeShpbmRleCk7CisJICAgIGlmICh0ZCAhPSBudWxsKSB7CisJCXJldHVybiBjcmVhdGVUZXN0RGF0YSh0ZCk7CisJICAgIH0KKwl9CisJcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgcHJpdmF0ZSBUZXN0RGF0YSBjcmVhdGVUZXN0RGF0YShPYmplY3RbXSBkKSB7CisJcmV0dXJuIG5ldyBSQlRlc3REYXRhKHRoaXMsIChTdHJpbmcpZFswXSwgKE9iamVjdFtdW10pZFsxXSwgZGVmYXVsdEhlYWRlcnMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFByb3ZpZGVzIGFjY2VzcyB0byB2YWx1ZXMgZWl0aGVyIGJ5IGluZGV4IG9yIGJ5IGNhc2UtaW5zZW5zaXRpdmUgc2VhcmNoIG9uIAorICAgICAqIHRoZSBuYW1lLiAgUG9vciBtYW4ncyBNYXAgd2l0aCBpbmRleC4KKyAgICAgKi8KKyAgICBzdGF0aWMgYWJzdHJhY3QgY2xhc3MgTmFtZWRBcnJheSB7CisJaW50IHR4Y2FjaGU7CisJaW50IGNvdW50OworCisJc3RhdGljIE5hbWVkQXJyYXkgY3JlYXRlKE9iamVjdFtdW10gcGFpcnMpIHsKKwkgICAgcmV0dXJuIG5ldyBOYW1lZEFycmF5T2ZQYWlycyhwYWlycyk7CisJfQorCisJc3RhdGljIE5hbWVkQXJyYXkgY3JlYXRlKFN0cmluZ1tdIG5hbWVzLCBPYmplY3RbXSB2YWx1ZXMpIHsKKwkgICAgcmV0dXJuIG5ldyBOYW1lZEFycmF5VHdvTGlzdHMobmFtZXMsIHZhbHVlcyk7CisJfQorCisJcHJvdGVjdGVkIE5hbWVkQXJyYXkoaW50IGNvdW50KSB7CisJICAgIHRoaXMuY291bnQgPSBjb3VudDsKKwl9CisKKwlwdWJsaWMgZmluYWwgaW50IGNvdW50KCkgeworCSAgICByZXR1cm4gY291bnQ7CisJfQorCisJcHVibGljIGZpbmFsIGJvb2xlYW4gaXNEZWZpbmVkKFN0cmluZyBuYW1lKSB7CisJICAgIGludCBpeCA9IG5hbWVUb0luZGV4KG5hbWUpOworCSAgICBpZiAoaXggIT0gLTEpIHsKKwkJdHhjYWNoZSA9IChpeCA9PSAwID8gY291bnQgOiBpeCkgLSAxOworCQlyZXR1cm4gdHJ1ZTsKKwkgICAgfQorCSAgICByZXR1cm4gZmFsc2U7CisJfQorCisJcHVibGljIGZpbmFsIE9iamVjdFtdIGdldEVudHJ5KFN0cmluZyBuYW1lKSB7CisJICAgIHJldHVybiBnZXRFbnRyeShuYW1lVG9JbmRleChuYW1lKSk7CisJfQorCisJcHVibGljIGZpbmFsIE9iamVjdCBnZXRWYWx1ZShTdHJpbmcgbmFtZSkgeworCSAgICByZXR1cm4gZ2V0VmFsdWUobmFtZVRvSW5kZXgobmFtZSkpOworCX0KKwkKKwlwdWJsaWMgZmluYWwgT2JqZWN0W10gZ2V0RW50cnkoaW50IGluZGV4KSB7CisJICAgIGlmIChpbmRleCA+PSAwICYmIGluZGV4IDwgY291bnQpIHsKKwkJcmV0dXJuIGVudHJ5QXRJbmRleChpbmRleCk7CisJICAgIH0KKwkgICAgcmV0dXJuIG51bGw7CisJfQorCisJcHVibGljIGZpbmFsIE9iamVjdCBnZXRWYWx1ZShpbnQgaW5kZXgpIHsKKwkgICAgaWYgKGluZGV4ID49IDAgJiYgaW5kZXggPCBjb3VudCkgeworCQlyZXR1cm4gdmFsdWVBdEluZGV4KGluZGV4KTsKKwkgICAgfQorCSAgICByZXR1cm4gbnVsbDsKKwl9CisKKwlwdWJsaWMgU3RyaW5nW10gbmFtZXMoKSB7CisJICAgIGlmIChjb3VudCA+IDApIHsKKwkJU3RyaW5nW10gcmVzdWx0ID0gbmV3IFN0cmluZ1tjb3VudF07CisJCWZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworCQkgICAgcmVzdWx0W2ldID0gbmFtZUF0SW5kZXgoaSk7CisJCX0KKwkJcmV0dXJuIHJlc3VsdDsKKwkgICAgfQorCSAgICByZXR1cm4gbnVsbDsKKwl9CisKKwlwdWJsaWMgT2JqZWN0W10gdmFsdWVzKCkgeworCSAgICBpZiAoY291bnQgPiAwKSB7CisJCU9iamVjdFtdIHJlc3VsdCA9IG5ldyBPYmplY3RbY291bnRdOworCQlmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKwkJICAgIHJlc3VsdFtpXSA9IHZhbHVlQXRJbmRleChpKTsKKwkJfQorCQlyZXR1cm4gcmVzdWx0OworCSAgICB9CisJICAgIHJldHVybiBudWxsOworCX0KKworCXB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisJICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKHN1cGVyLnRvU3RyaW5nKCkpOworCSAgICBidWYuYXBwZW5kKCJjb3VudDogIiArIGNvdW50ICsgInsiKTsKKwkgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisJCWJ1Zi5hcHBlbmQoIlxuICB7ICIgKyBuYW1lQXRJbmRleChpKSArICIsICIgKyB2YWx1ZUF0SW5kZXgoaSkgKyAiIH0iKTsKKwkgICAgfQorCSAgICBidWYuYXBwZW5kKCJ9Iik7CisJICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKwl9CisKKwlwcm90ZWN0ZWQgaW50IG5hbWVUb0luZGV4KFN0cmluZyBuYW1lKSB7CisJICAgIGlmIChuYW1lICE9IG51bGwgJiYgY291bnQgPiAwKSB7CisJCWludCBpID0gdHhjYWNoZTsKKwkJZG8geworCQkgICAgaWYgKCsraSA9PSBjb3VudCkgeworCQkJaSA9IDA7CisJCSAgICB9CisJCSAgICBpZiAobmFtZS5lcXVhbHNJZ25vcmVDYXNlKG5hbWVBdEluZGV4KGkpKSkgeworCQkJdHhjYWNoZSA9IGk7CisJCQlyZXR1cm4gaTsKKwkJICAgIH0KKwkJfSB3aGlsZSAoaSAhPSB0eGNhY2hlKTsKKwkgICAgfQorCSAgICByZXR1cm4gLTE7CisJfQorCisJcHJvdGVjdGVkIE9iamVjdFtdIGVudHJ5QXRJbmRleChpbnQgaW5kZXgpIHsKKwkgICAgcmV0dXJuIG5ldyBPYmplY3RbXSB7IG5hbWVBdEluZGV4KGluZGV4KSwgdmFsdWVBdEluZGV4KGluZGV4KSB9OworCX0KKworCXByb3RlY3RlZCBhYnN0cmFjdCBTdHJpbmcgbmFtZUF0SW5kZXgoaW50IGluZGV4KTsKKwlwcm90ZWN0ZWQgYWJzdHJhY3QgT2JqZWN0IHZhbHVlQXRJbmRleChpbnQgaW5kZXgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE5hbWVkQXJyYXkgaW1wbGVtZW50ZWQgdXNpbmcgYW4gYXJyYXkgb2YgbmFtZS92YWx1ZQorICAgICAqIHBhaXJzLCByZXByZXNlbnRlZCBieSBhbiBPYmplY3RbXVtdLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBjbGFzcyBOYW1lZEFycmF5T2ZQYWlycyBleHRlbmRzIE5hbWVkQXJyYXkgeworCXByaXZhdGUgT2JqZWN0W11bXSBkYXRhOworCisJcHVibGljIE5hbWVkQXJyYXlPZlBhaXJzKE9iamVjdFtdW10gZGF0YSkgeworCSAgICBzdXBlcihkYXRhID09IG51bGwgPyAtMSA6IGRhdGEubGVuZ3RoKTsKKwkgICAgdGhpcy5kYXRhID0gZGF0YTsKKwl9CisKKwlwcm90ZWN0ZWQgT2JqZWN0W10gZW50cnlBdEluZGV4KGludCBpbmRleCkgeworCSAgICByZXR1cm4gZGF0YVtpbmRleF07CisJfQorCisJcHJvdGVjdGVkIFN0cmluZyBuYW1lQXRJbmRleChpbnQgaW5kZXgpIHsKKwkgICAgcmV0dXJuIChTdHJpbmcpZGF0YVtpbmRleF1bMF07CisJfQorCisJcHJvdGVjdGVkIE9iamVjdCB2YWx1ZUF0SW5kZXgoaW50IGluZGV4KSB7CisJICAgIHJldHVybiBkYXRhW2luZGV4XVsxXTsKKwl9CisgICAgfQorCisgICAgLyoqCisgICAgICogTmFtZWRBcnJheSBpbXBsZW1lbnRlZCB1c2luZyB0d28gYXJyYXlzLCBvbmUgb2YgU3RyaW5nIGFuZCBvbmUgb2YgT2JqZWN0LgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBjbGFzcyBOYW1lZEFycmF5VHdvTGlzdHMgZXh0ZW5kcyBOYW1lZEFycmF5IHsKKwlTdHJpbmdbXSBuYW1lczsKKwlPYmplY3RbXSB2YWx1ZXM7CisKKwlwdWJsaWMgTmFtZWRBcnJheVR3b0xpc3RzKFN0cmluZ1tdIG5hbWVzLCBPYmplY3RbXSB2YWx1ZXMpIHsKKwkgICAgc3VwZXIgKHZhbHVlcyAhPSBudWxsICYmIG5hbWVzICE9IG51bGwgJiYgbmFtZXMubGVuZ3RoID09IHZhbHVlcy5sZW5ndGggPworCQkgICBuYW1lcy5sZW5ndGggOgorCQkgICAtMSk7CisJICAgIHRoaXMubmFtZXMgPSBuYW1lczsKKwkgICAgdGhpcy52YWx1ZXMgPSB2YWx1ZXM7CisJfQorCSAgICAKKwlwdWJsaWMgU3RyaW5nW10gbmFtZXMoKSB7CisJICAgIHJldHVybiBuYW1lczsKKwl9CisKKwlwdWJsaWMgT2JqZWN0W10gdmFsdWVzKCkgeworCSAgICByZXR1cm4gdmFsdWVzOworCX0KKworCXByb3RlY3RlZCBTdHJpbmcgbmFtZUF0SW5kZXgoaW50IGluZGV4KSB7CisJICAgIHJldHVybiBuYW1lc1tpbmRleF07CisJfQorCisJcHJvdGVjdGVkIE9iamVjdCB2YWx1ZUF0SW5kZXgoaW50IGluZGV4KSB7CisJICAgIHJldHVybiB2YWx1ZXNbaW5kZXhdOworCX0KKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgUkJUZXN0RGF0YSBleHRlbmRzIFRlc3REYXRhIHsKKwlSZXNvdXJjZU1vZHVsZSBtOworCVJCRGF0YU1hcCBpbmZvOworCU9iamVjdFtdIHNldHRpbmdzOworICAgIC8qKiAKKyAgICAgKiBjaGFuZ2VkIHRvIGZpdCB0aGUgYyBnZW5yYiBmb3JtYXQuIHRoaXMgaXMgYWN0dWFsbHkgT2JqZWN0W10ge09iamVjdFtdfQorICAgICAqLworCU9iamVjdFtdIGNhc2VzOyAKKwlTdHJpbmdbXSBoZWFkZXJzOworCWludCBzeDsKKwlpbnQgY3g7CisKKwlSQlRlc3REYXRhKFJlc291cmNlTW9kdWxlIG0sIFN0cmluZyBuYW1lLCBPYmplY3RbXVtdIGRhdGEsIFN0cmluZ1tdIGRlZmF1bHRIZWFkZXJzKSB7CisJICAgIHN1cGVyKG5hbWUpOworCSAgICB0aGlzLm0gPSBtOworCisJICAgIE5hbWVkQXJyYXkgbmFtZWREYXRhID0gTmFtZWRBcnJheS5jcmVhdGUoZGF0YSk7CisKKwkgICAgdHJ5IHsKKwkJT2JqZWN0W11bXSB0ZW1wID0gKE9iamVjdFtdW10pbmFtZWREYXRhLmdldFZhbHVlKElORk8pOworCQlpZiAodGVtcCAhPSBudWxsKSB7CisJCSAgICBOYW1lZEFycmF5IG5hID0gTmFtZWRBcnJheS5jcmVhdGUodGVtcCk7CisJCSAgICBpZiAobmEuY291bnQoKSA8IDEpIHsKKwkJCW0ubG9nLmVycmxuKCJCYWQgZGF0YSBmb3IgIiArIElORk8pOworCQkgICAgfSBlbHNlIHsKKwkJCXRoaXMuaW5mbyA9IG5ldyBSQkRhdGFNYXAobS5sb2csIG5hLCBmYWxzZSk7CisJCSAgICB9CisJCX0KKwkgICAgfSAKKwkgICAgY2F0Y2ggKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisJCW0ubG9nLmVycmxuKCJUZXN0ICIgKyBuYW1lICsgIiBpbiBtb2R1bGUgIiArIG0uZ2V0TmFtZSgpICsgIiBoYXMgYmFkIHR5cGUgZm9yICIgKyBJTkZPKTsKKwkgICAgfQorCisJICAgIHRyeSB7CisJCXRoaXMuc2V0dGluZ3MgPSAoT2JqZWN0W10pbmFtZWREYXRhLmdldFZhbHVlKFNFVFRJTkdTKTsKKwkgICAgfQorCSAgICBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKwkJbS5sb2cuZXJybG4oIlRlc3QgIiArIG5hbWUgKyAiIGluIG1vZHVsZSAiICsgbS5nZXROYW1lKCkgKyAiIGhhcyBiYWQgdHlwZSBmb3IgIiArIFNFVFRJTkdTKTsKKwkgICAgfQorCisJICAgIHRyeSB7CisJCXRoaXMuY2FzZXMgPSAoT2JqZWN0W10pbmFtZWREYXRhLmdldFZhbHVlKENBU0VTKTsKKwkgICAgfQorCSAgICBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKwkJbS5sb2cuZXJybG4oIlRlc3QgIiArIG5hbWUgKyAiIGluIG1vZHVsZSAiICsgbS5nZXROYW1lKCkgKyAiIGhhcyBiYWQgdHlwZSBmb3IgIiArIENBU0VTKTsKKwkgICAgfQorCisJICAgIGlmIChpbmZvICE9IG51bGwpIHsKKwkJdGhpcy5oZWFkZXJzID0gaW5mby5nZXRTdHJpbmdBcnJheShIRUFERVJTKTsKKwkgICAgfQorCSAgICBpZiAodGhpcy5oZWFkZXJzID09IG51bGwpIHsKKwkJdGhpcy5oZWFkZXJzID0gZGVmYXVsdEhlYWRlcnM7CisJICAgIH0KKwl9CisKKwkvKioKKwkgKiBHZXQgYWRkaXRpb25hbCBkYXRhIHJlbGF0ZWQgdG8gdGhlIHRlc3QuCisJICovCisJcHVibGljIERhdGFNYXAgZ2V0SW5mbygpIHsKKwkgICAgcmV0dXJuIGluZm87CisJfQorCisJLyoqCisJICogUmV0dXJucyBEYXRhTWFwIHdpdGggbmV4dCBzZXR0aW5ncyBhbmQgcmVzZXRzIGNhc2UgaXRlcmF0aW9uLgorCSAqIElmIG5vIG1vcmUgc2V0dGluZ3MsIHRlcm1pbmF0ZXMgaXRlcmF0aW9uIGFuZCByZXR1cm5zIG51bGwuCisJICovCisJcHVibGljIERhdGFNYXAgbmV4dFNldHRpbmdzKCkgeworCSAgICBpZiAoc2V0dGluZ3MgIT0gbnVsbCAmJiBzeCA8IHNldHRpbmdzLmxlbmd0aCkgeworCQljeCA9IDA7CisJCU5hbWVkQXJyYXkgbmEgPSBOYW1lZEFycmF5LmNyZWF0ZSgoT2JqZWN0W11bXSlzZXR0aW5nc1tzeCsrXSk7CisJCWlmIChuYS5jb3VudCgpIDwgMCkgeworCQkgICAgbS5sb2cuZXJybG4oIkJhZCBzZXR0aW5ncyBkYXRhIGZvciBzZXR0aW5ncyAiICsgKHN4LTEpKTsKKwkJICAgIHJldHVybiBudWxsOworCQl9IGVsc2UgeworCQkgICAgcmV0dXJuIG5ldyBSQkRhdGFNYXAobS5sb2csIG5hLCBmYWxzZSk7CisJCX0KKwkgICAgfQorCSAgICBzdG9wSXRlcmF0aW9uKCk7CisKKwkgICAgcmV0dXJuIG51bGw7CisJfQorCisJLyoqCisJICogUmV0dXJucyBEYXRhTWFwIHdpdGggbmV4dCBjYXNlLiAgSWYgbm8gbmV4dCBjYXNlLCByZXR1cm5zIG51bGwuCisJICovCisJcHVibGljIERhdGFNYXAgbmV4dENhc2UoKSB7CisJICAgIGlmIChjYXNlcyAhPSBudWxsICYmIGN4IDwgY2FzZXMubGVuZ3RoKSB7CisJCU5hbWVkQXJyYXkgbmEgPSBOYW1lZEFycmF5LmNyZWF0ZShoZWFkZXJzLCAoT2JqZWN0W10pY2FzZXNbY3grK10pOworCQlpZiAobmEuY291bnQoKSA8IDApIHsKKwkJICAgIG0ubG9nLmVycmxuKCJCYWQgY2FzZXMgZGF0YSBmb3IgY2FzZSAiICsgKGN4LTEpKTsKKwkJfSBlbHNlIHsKKwkJICAgIHJldHVybiBuZXcgUkJEYXRhTWFwKG0ubG9nLCBuYSwgdHJ1ZSk7CisJCX0KKwkgICAgfQorCSAgICByZXR1cm4gbnVsbDsKKwl9CisKKwkvKioKKwkgKiBTdG9wcyBpdGVyYXRpb24uCisJICovCisJcHVibGljIHZvaWQgc3RvcEl0ZXJhdGlvbigpIHsKKwkgICAgc3ggPSBjeCA9IEludGVnZXIuTUFYX1ZBTFVFOworCX0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGZpbmFsIGNsYXNzIFJCRGF0YU1hcCBleHRlbmRzIERhdGFNYXAgeworCVRlc3RMb2cgbG9nOworCU5hbWVkQXJyYXkgbmE7CisJYm9vbGVhbiByZXF1aXJlZDsKKworCVJCRGF0YU1hcChUZXN0TG9nIGxvZywgTmFtZWRBcnJheSBuYSwgYm9vbGVhbiByZXF1aXJlZCkgeworCSAgICB0aGlzLmxvZyA9IGxvZzsKKwkgICAgdGhpcy5uYSA9IG5hOworCSAgICB0aGlzLnJlcXVpcmVkID0gcmVxdWlyZWQ7CisJfQorCisJcHVibGljIGJvb2xlYW4gaXNEZWZpbmVkKFN0cmluZyBrZXkpIHsKKwkgICAgcmV0dXJuIG5hLmlzRGVmaW5lZChrZXkpOworCX0KKworCXB1YmxpYyBPYmplY3QgZ2V0T2JqZWN0KFN0cmluZyBrZXkpIHsgCisJICAgIE9iamVjdCByZXN1bHQgPSBuYS5nZXRWYWx1ZShrZXkpOworCSAgICBpZiAocmVxdWlyZWQgJiYgcmVzdWx0ID09IG51bGwpIHsKKwkJcmVwb3J0TnVsbEVycm9yKGtleSk7CisJICAgIH0KKwkgICAgcmV0dXJuIHJlc3VsdDsKKwl9CisKKwlwdWJsaWMgU3RyaW5nIGdldFN0cmluZyhTdHJpbmcga2V5KSB7IAorCSAgICBTdHJpbmcgcmVzdWx0ID0gbnVsbDsKKwkgICAgdHJ5IHsKKwkJcmVzdWx0ID0gKFN0cmluZylnZXRPYmplY3Qoa2V5KTsKKwkgICAgfQorCSAgICBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKwkJcmVwb3J0VHlwZUVycm9yKCJTdHJpbmciLCBrZXkpOworCSAgICB9CisJICAgIHJldHVybiByZXN1bHQ7CisJfQorCisJcHVibGljIGNoYXIgZ2V0Q2hhcihTdHJpbmcga2V5KSB7IAorCSAgICB0cnkgeworCQlTdHJpbmcgcyA9IGdldFN0cmluZyhrZXkpOworCQlpZiAocyAhPSBudWxsKSB7CisJCSAgICByZXR1cm4gcy5jaGFyQXQoMCk7CisJCX0KKwkgICAgfQorCSAgICBjYXRjaCAoSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKSB7CisJCXJlcG9ydFR5cGVFcnJvcigiY2hhciIsIGtleSk7CisJICAgIH0KKwkgICAgcmV0dXJuIDB4ZmZmZjsKKwl9CisKKwlwdWJsaWMgaW50IGdldEludChTdHJpbmcga2V5KSB7IAorCSAgICB0cnkgeworCQlTdHJpbmcgcyA9IGdldFN0cmluZyhrZXkpOworCQlpZiAocyAhPSBudWxsKSB7CisJCSAgICByZXR1cm4gSW50ZWdlci5wYXJzZUludChzKTsKKwkJfQorCSAgICB9CisJICAgIGNhdGNoIChOdW1iZXJGb3JtYXRFeGNlcHRpb24gZSkgeworCQlyZXBvcnRUeXBlRXJyb3IoImludCIsIGtleSk7CisJICAgIH0KKwkgICAgcmV0dXJuIC0xOworCX0KKworCXB1YmxpYyBieXRlIGdldEJ5dGUoU3RyaW5nIGtleSkgeyAKKwkgICAgdHJ5IHsKKwkJU3RyaW5nIHMgPSBnZXRTdHJpbmcoa2V5KTsKKwkJaWYgKHMgIT0gbnVsbCkgeworCQkgICAgcmV0dXJuIEJ5dGUucGFyc2VCeXRlKHMpOworCQl9CisJICAgIH0KKwkgICAgY2F0Y2ggKE51bWJlckZvcm1hdEV4Y2VwdGlvbiBlKSB7CisJCXJlcG9ydFR5cGVFcnJvcigiYnl0ZSIsIGtleSk7CisJICAgIH0KKwkgICAgcmV0dXJuIChieXRlKS0xOworCX0KKworCXB1YmxpYyBib29sZWFuIGdldEJvb2xlYW4oU3RyaW5nIGtleSkgeyAKKwkgICAgU3RyaW5nIHMgPSBnZXRTdHJpbmcoa2V5KTsKKwkgICAgaWYgKHMgIT0gbnVsbCkgeworCQlpZiAocy5lcXVhbHNJZ25vcmVDYXNlKCJ0cnVlIikpIHsKKwkJICAgIHJldHVybiB0cnVlOworCQl9IGVsc2UgaWYgKCFzLmVxdWFsc0lnbm9yZUNhc2UoImZhbHNlIikpIHsKKwkJICAgIHJlcG9ydFR5cGVFcnJvcigiYm9vbGVhbiIsIGtleSk7CisJCX0KKwkgICAgfQorCSAgICByZXR1cm4gZmFsc2U7CisJfQorCisJcHVibGljIE9iamVjdFtdIGdldE9iamVjdEFycmF5KFN0cmluZyBrZXkpIHsKKwkgICAgdHJ5IHsKKwkJT2JqZWN0W10gcmVzdWx0ID0gKE9iamVjdFtdKW5hLmdldFZhbHVlKGtleSk7CisJCWlmIChyZXN1bHQgPT0gbnVsbCAmJiByZXF1aXJlZCkgeworCQkgICAgcmVwb3J0TnVsbEVycm9yKGtleSk7CisJCX0KKwkgICAgfSBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKwkJcmVwb3J0VHlwZUVycm9yKCJPYmplY3RbXSIsIGtleSk7CisJICAgIH0KKwkgICAgcmV0dXJuIG51bGw7CisJfQorCisJcHVibGljIFN0cmluZ1tdIGdldFN0cmluZ0FycmF5KFN0cmluZyBrZXkpIHsgCisJICAgIHRyeSB7CisJCVN0cmluZ1tdIHJlc3VsdCA9IChTdHJpbmdbXSluYS5nZXRWYWx1ZShrZXkpOworCQlpZiAocmVzdWx0ID09IG51bGwgJiYgcmVxdWlyZWQpIHsKKwkJICAgIHJlcG9ydE51bGxFcnJvcihrZXkpOworCQl9CisJCXJldHVybiByZXN1bHQ7CisJICAgIH0KKwkgICAgY2F0Y2ggKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisJCXJlcG9ydFR5cGVFcnJvcigiU3RyaW5nW10iLCBrZXkpOworCSAgICB9CisJICAgIHJldHVybiBudWxsOworCX0KKworCXB1YmxpYyBjaGFyW10gZ2V0Q2hhckFycmF5KFN0cmluZyBrZXkpIHsgCisJICAgIHRyeSB7CisJCVN0cmluZyB0ZW1wID0gKFN0cmluZyluYS5nZXRWYWx1ZShrZXkpOworCQlpZiAodGVtcCA9PSBudWxsKSB7CisJCSAgICBpZiAocmVxdWlyZWQpIHsKKwkJCXJlcG9ydE51bGxFcnJvcihrZXkpOworCQkgICAgfQorCQl9IGVsc2UgeworCQkgICAgcmV0dXJuIHRlbXAudG9DaGFyQXJyYXkoKTsKKwkJfQorCSAgICB9CisJICAgIGNhdGNoIChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworCQlyZXBvcnRUeXBlRXJyb3IoImNoYXJbXSIsIGtleSk7CisJICAgIH0KKwkgICAgcmV0dXJuIG51bGw7CisJfQorCisJcHVibGljIGludFtdIGdldEludEFycmF5KFN0cmluZyBrZXkpIHsKKwkgICAgU3RyaW5nW10gZGF0YSA9IGdldFN0cmluZ0FycmF5KGtleSk7CisJICAgIGlmIChkYXRhICE9IG51bGwpIHsKKwkJdHJ5IHsKKwkJICAgIGludFtdIHJlc3VsdCA9IG5ldyBpbnRbZGF0YS5sZW5ndGhdOworCQkgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgKytpKSB7CisJCQlyZXN1bHRbaV0gPSBJbnRlZ2VyLnBhcnNlSW50KGRhdGFbaV0pOworCQkgICAgfQorCQkgICAgcmV0dXJuIHJlc3VsdDsKKwkJfQorCQljYXRjaCAoTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGUpIHsKKwkJICAgIHJlcG9ydFR5cGVFcnJvcigiaW50W10iLCBrZXkpOworCQl9CisJICAgIH0KKwkgICAgcmV0dXJuIG51bGw7CisJfQorCisJcHVibGljIGJ5dGVbXSBnZXRCeXRlQXJyYXkoU3RyaW5nIGtleSkgeyAKKwkgICAgU3RyaW5nW10gZGF0YSA9IGdldFN0cmluZ0FycmF5KGtleSk7CisJICAgIGlmIChkYXRhICE9IG51bGwpIHsKKwkJdHJ5IHsKKwkJICAgIGJ5dGVbXSByZXN1bHQgPSBuZXcgYnl0ZVtkYXRhLmxlbmd0aF07CisJCSAgICBmb3IgKGludCBpID0gMDsgaSA8IHJlc3VsdC5sZW5ndGg7ICsraSkgeworCQkJcmVzdWx0W2ldID0gQnl0ZS5wYXJzZUJ5dGUoZGF0YVtpXSk7CisJCSAgICB9CisJCSAgICByZXR1cm4gcmVzdWx0OworCQl9CisJCWNhdGNoIChOdW1iZXJGb3JtYXRFeGNlcHRpb24gZSkgeworCQkgICAgcmVwb3J0VHlwZUVycm9yKCJieXRlW10iLCBrZXkpOworCQl9CisJICAgIH0KKwkgICAgcmV0dXJuIG51bGw7CisJfQorCisJcHVibGljIGJvb2xlYW5bXSBnZXRCb29sZWFuQXJyYXkoU3RyaW5nIGtleSkgeworCSAgICBTdHJpbmdbXSBkYXRhID0gZ2V0U3RyaW5nQXJyYXkoa2V5KTsKKwkgICAgaWYgKGRhdGEgIT0gbnVsbCkgeworCQlib29sZWFuW10gcmVzdWx0ID0gbmV3IGJvb2xlYW5bZGF0YS5sZW5ndGhdOworCQlmb3IgKGludCBpID0gMDsgaSA8IHJlc3VsdC5sZW5ndGg7ICsraSkgeworCQkgICAgU3RyaW5nIHMgPSBkYXRhW2ldOworCQkgICAgaWYgKHMuZXF1YWxzSWdub3JlQ2FzZSgidHJ1ZSIpKSB7CisJCQlyZXN1bHRbaV0gPSB0cnVlOworCQkgICAgfSBlbHNlIGlmIChzLmVxdWFsc0lnbm9yZUNhc2UoImZhbHNlIikpIHsKKwkJCXJlc3VsdFtpXSA9IGZhbHNlOworCQkgICAgfSBlbHNlIHsKKwkJCXJlcG9ydFR5cGVFcnJvcigiYm9vbGVhbltdIiwga2V5KTsKKwkJCXJldHVybiBudWxsOworCQkgICAgfQorCQl9CisJCXJldHVybiByZXN1bHQ7CisJICAgIH0KKwkgICAgcmV0dXJuIG51bGw7CisJfQorCisJcHJpdmF0ZSB2b2lkIHJlcG9ydE51bGxFcnJvcihTdHJpbmcga2V5KSB7CisJICAgIGxvZy5lcnJsbigiTWlzc2luZyByZXF1aXJlZCB2YWx1ZSBmb3IgJyIgKyBrZXkgKyAiJyIpOworCX0KKworCXByaXZhdGUgdm9pZCByZXBvcnRUeXBlRXJyb3IoU3RyaW5nIHR5cGVOYW1lLCBTdHJpbmcga2V5KSB7CisJICAgIGxvZy5lcnJsbigiQ291bGQgbm90IHJldHVybiB2YWx1ZSBvZiAnIiArIGtleSArICInICgiICsgZ2V0T2JqZWN0KGtleSkgKyAiKSBhcyB0eXBlICciICsgdHlwZU5hbWUgKyAiJyIpOworCX0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEFsbC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RBbGwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jODFiMTMzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RBbGwuamF2YQpAQCAtMCwwICsxLDIyMSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RBbGwuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wOC8xMiAyMDoyNjozOCAkIAorICogJFJldmlzaW9uOiAxLjM3ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdDsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5iaWdkZWMuRGlhZ0JpZ0RlY2ltYWw7CisKKy8qKgorICogVG9wIGxldmVsIHRlc3QgdXNlZCB0byBydW4gYWxsIG90aGVyIHRlc3RzIGFzIGEgYmF0Y2guCisgKi8KKyAKK3B1YmxpYyBjbGFzcyBUZXN0QWxsIGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBUZXN0QWxsKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RCaWdOdW1iZXJGb3JtYXQoKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBydW4obmV3IGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdC5CaWdOdW1iZXJGb3JtYXRUZXN0KCkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcHJlc3Npb24oKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBydW4obmV3IFRlc3RGbXdrW10geworICAgICAgICAgICAgbmV3IGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbXByZXNzaW9uLkRlY29tcHJlc3Npb25UZXN0KCksCisgICAgICAgICAgICBuZXcgY29tLmlibS5pY3UuZGV2LnRlc3QuY29tcHJlc3Npb24uRXhoYXVzdGl2ZVRlc3QoKQorICAgICAgICAgICAgICAgIH0pOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RSdWxlQmFzZWROdW1iZXJGb3JtYXQoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgcnVuKG5ldyBUZXN0Rm13a1tdIHsKKyAgICAgICAgICAgIG5ldyBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQuUmJuZlRlc3QoKSwKKyAgICAgICAgICAgIG5ldyBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQuUmJuZlJvdW5kVHJpcFRlc3QoKQorICAgICAgICAgICAgICAgIH0pOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHJ1bihuZXcgVGVzdEZtd2tbXSB7CisgICAgICAgICAgICBuZXcgY29tLmlibS5pY3UuZGV2LnRlc3QucmJiaS5TaW1wbGVCSVRlc3QoKSwKKyAgICAgICAgICAgIG5ldyBjb20uaWJtLmljdS5kZXYudGVzdC5yYmJpLkJyZWFrSXRlcmF0b3JUZXN0KCksCisgICAgICAgICAgICBuZXcgY29tLmlibS5pY3UuZGV2LnRlc3QucmJiaS5SQkJJVGVzdCgpLAorICAgICAgICAgICAgbmV3IGNvbS5pYm0uaWN1LmRldi50ZXN0LnJiYmkuUkJCSUFQSVRlc3QoKQorICAgICAgICAgICAgICAgIH0pOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RUcmFuc2xpdCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBydW4obmV3IFRlc3RGbXdrW10geworICAgICAgICAgICAgbmV3IGNvbS5pYm0uaWN1LmRldi50ZXN0LnRyYW5zbGl0LlRyYW5zbGl0ZXJhdG9yVGVzdCgpLAorICAgICAgICAgICAgbmV3IGNvbS5pYm0uaWN1LmRldi50ZXN0LnRyYW5zbGl0LlVuaWNvZGVTZXRUZXN0KCksCisgICAgICAgICAgICBuZXcgY29tLmlibS5pY3UuZGV2LnRlc3QudHJhbnNsaXQuVW5pY29kZUZpbHRlckxvZ2ljVGVzdCgpLAorICAgICAgICAgICAgbmV3IGNvbS5pYm0uaWN1LmRldi50ZXN0LnRyYW5zbGl0LkNvbXBvdW5kVHJhbnNsaXRlcmF0b3JUZXN0KCksCisgICAgICAgICAgICBuZXcgY29tLmlibS5pY3UuZGV2LnRlc3QudHJhbnNsaXQuVW5pY29kZVRvSGV4VHJhbnNsaXRlcmF0b3JUZXN0KCksCisgICAgICAgICAgICBuZXcgY29tLmlibS5pY3UuZGV2LnRlc3QudHJhbnNsaXQuSGV4VG9Vbmljb2RlVHJhbnNsaXRlcmF0b3JUZXN0KCksCisgICAgICAgICAgICBuZXcgY29tLmlibS5pY3UuZGV2LnRlc3QudHJhbnNsaXQuSmFtb1Rlc3QoKSwKKyAgICAgICAgICAgIG5ldyBjb20uaWJtLmljdS5kZXYudGVzdC50cmFuc2xpdC5FcnJvclRlc3QoKSwKKyAgICAgICAgICAgIG5ldyBjb20uaWJtLmljdS5kZXYudGVzdC50cmFuc2xpdC5Sb3VuZFRyaXBUZXN0KCksCisgICAgICAgICAgICBuZXcgY29tLmlibS5pY3UuZGV2LnRlc3QudHJhbnNsaXQuUmVwbGFjZWFibGVUZXN0KCkKKyAgICAgICAgICAgICAgICB9KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U2VhcmNoKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHJ1bigKKyAgICAgICAgICAgIG5ldyBjb20uaWJtLmljdS5kZXYudGVzdC5zZWFyY2guU2VhcmNoVGVzdCgpKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdENvbGxhdG9yKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHJ1bihuZXcgVGVzdEZtd2tbXSB7CisgICAgICAgICAgICBuZXcgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3IuQ29sbGF0aW9uVGVzdCgpLAorICAgICAgICAgICAgbmV3IGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yLkNvbGxhdGlvbkFQSVRlc3QoKSwKKyAgICAgICAgICAgIG5ldyBjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvci5Db2xsYXRpb25DdXJyZW5jeVRlc3QoKSwKKyAgICAgICAgICAgIG5ldyBjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvci5Db2xsYXRpb25EYW5pc2hUZXN0KCksCisgICAgICAgICAgICBuZXcgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3IuQ29sbGF0aW9uRHVtbXlUZXN0KCksCisgICAgICAgICAgICBuZXcgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3IuQ29sbGF0aW9uRW5nbGlzaFRlc3QoKSwKKyAgICAgICAgICAgIG5ldyBjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvci5Db2xsYXRpb25GaW5uaXNoVGVzdCgpLAorICAgICAgICAgICAgbmV3IGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yLkNvbGxhdGlvbkZyZW5jaFRlc3QoKSwKKyAgICAgICAgICAgIG5ldyBjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvci5Db2xsYXRpb25HZXJtYW5UZXN0KCksCisgICAgICAgICAgICBuZXcgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3IuQ29sbGF0aW9uSXRlcmF0b3JUZXN0KCksCisgICAgICAgICAgICBuZXcgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3IuQ29sbGF0aW9uS2FuYVRlc3QoKSwKKyAgICAgICAgICAgIG5ldyBjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvci5Db2xsYXRpb25Nb25rZXlUZXN0KCksCisgICAgICAgICAgICBuZXcgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3IuQ29sbGF0aW9uUmVncmVzc2lvblRlc3QoKSwKKyAgICAgICAgICAgIG5ldyBjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvci5Db2xsYXRpb25TcGFuaXNoVGVzdCgpLAorICAgICAgICAgICAgbmV3IGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yLkNvbGxhdGlvblRoYWlUZXN0KCksCisgICAgICAgICAgICBuZXcgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3IuQ29sbGF0aW9uVHVya2lzaFRlc3QoKSwKKyAgICAgICAgICAgIG5ldyBjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvci5HN0NvbGxhdGlvblRlc3QoKSwKKyAgICAgICAgICAgIG5ldyBjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvci5Mb3R1c0NvbGxhdGlvbktvcmVhblRlc3QoKSwKKyAgICAgICAgICAgIG5ldyBjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvci5Db2xsYXRpb25NaXNjVGVzdCgpCisgICAgICAgICAgICAgICAgfSk7CisgICAgfQorCQorICAgIHB1YmxpYyB2b2lkIFRlc3RBcmFiaWNTaGFwaW5nKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHJ1bihuZXcgY29tLmlibS5pY3UuZGV2LnRlc3Quc2hhcGluZy5BcmFiaWNTaGFwaW5nUmVnVGVzdCgpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2FsZW5kYXIoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgcnVuKG5ldyBUZXN0Rm13a1tdIHsKKyAgICAgICAgICAgIG5ldyBjb20uaWJtLmljdS5kZXYudGVzdC5jYWxlbmRhci5Bc3Ryb1Rlc3QoKSwKKyAgICAgICAgICAgIG5ldyBjb20uaWJtLmljdS5kZXYudGVzdC5jYWxlbmRhci5DYWxlbmRhclJlZ3Jlc3Npb24oKSwKKyAgICAgICAgICAgIG5ldyBjb20uaWJtLmljdS5kZXYudGVzdC5jYWxlbmRhci5Db21wYXRpYmlsaXR5VGVzdCgpLAorICAgICAgICAgICAgbmV3IGNvbS5pYm0uaWN1LmRldi50ZXN0LmNhbGVuZGFyLkhlYnJld1Rlc3QoKSwKKyAgICAgICAgICAgIG5ldyBjb20uaWJtLmljdS5kZXYudGVzdC5jYWxlbmRhci5JQk1DYWxlbmRhclRlc3QoKSwKKyAgICAgICAgICAgIG5ldyBjb20uaWJtLmljdS5kZXYudGVzdC5jYWxlbmRhci5Jc2xhbWljVGVzdCgpLAorICAgICAgICAgICAgbmV3IGNvbS5pYm0uaWN1LmRldi50ZXN0LmNhbGVuZGFyLkphcGFuZXNlVGVzdCgpLAorICAgICAgICAgICAgbmV3IGNvbS5pYm0uaWN1LmRldi50ZXN0LmNhbGVuZGFyLkNoaW5lc2VUZXN0KCksCisgICAgICAgICAgICBuZXcgY29tLmlibS5pY3UuZGV2LnRlc3QuY2FsZW5kYXIuSG9saWRheVRlc3QoKQorICAgICAgICAgICAgICAgIH0pOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RUaW1lWm9uZSgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBydW4obmV3IFRlc3RGbXdrW10geworICAgICAgICAgICAgbmV3IGNvbS5pYm0uaWN1LmRldi50ZXN0LnRpbWV6b25lLlRpbWVab25lVGVzdCgpLAorICAgICAgICAgICAgbmV3IGNvbS5pYm0uaWN1LmRldi50ZXN0LnRpbWV6b25lLlRpbWVab25lUmVncmVzc2lvbigpLAorICAgICAgICAgICAgbmV3IGNvbS5pYm0uaWN1LmRldi50ZXN0LnRpbWV6b25lLlRpbWVab25lQm91bmRhcnlUZXN0KCkKKyAgICAgICAgICAgICAgICB9KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2hhcmFjdGVyKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHJ1bihuZXcgVGVzdEZtd2tbXSB7CisgICAgICAgICAgICBuZXcgY29tLmlibS5pY3UuZGV2LnRlc3QubGFuZy5VQ2hhcmFjdGVyVGVzdCgpLAorICAgICAgICAgICAgbmV3IGNvbS5pYm0uaWN1LmRldi50ZXN0LmxhbmcuVUNoYXJhY3RlckNhc2VUZXN0KCksCisgICAgICAgICAgICBuZXcgY29tLmlibS5pY3UuZGV2LnRlc3QubGFuZy5VQ2hhcmFjdGVySXRlcmF0b3JUZXN0KCksCisgICAgICAgICAgICBuZXcgY29tLmlibS5pY3UuZGV2LnRlc3QubGFuZy5VQ2hhcmFjdGVyQ2F0ZWdvcnlUZXN0KCksCisgICAgICAgICAgICBuZXcgY29tLmlibS5pY3UuZGV2LnRlc3QubGFuZy5VQ2hhcmFjdGVyRGlyZWN0aW9uVGVzdCgpLAorICAgICAgICAgICAgbmV3IGNvbS5pYm0uaWN1LmRldi50ZXN0LmxhbmcuVVRGMTZUZXN0KCkKKyAgICAgICAgICAgICAgICB9KTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFRyaWUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgcnVuKG5ldyBUZXN0Rm13a1tdIHsKKyAgICAgICAgICAgIG5ldyBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsLlRyaWVUZXN0KCkKKyAgICAgICAgICAgIH0pOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0VVNjcmlwdCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBydW4oIG5ldyBUZXN0Rm13a1tdIHsKKyAgICAgICAgICAgIG5ldyBjb20uaWJtLmljdS5kZXYudGVzdC5sYW5nLlRlc3RVU2NyaXB0KCksCisgICAgICAgIH0pOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Tm9ybWFsaXplcigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBydW4oIG5ldyBUZXN0Rm13a1tdIHsKKyAgICAgICAgICAgIG5ldyBjb20uaWJtLmljdS5kZXYudGVzdC5ub3JtYWxpemVyLkNvbmZvcm1hbmNlVGVzdCgpLAorICAgICAgICAgICAgbmV3IGNvbS5pYm0uaWN1LmRldi50ZXN0Lm5vcm1hbGl6ZXIuQmFzaWNUZXN0KCksCisgICAgICAgICAgICBuZXcgY29tLmlibS5pY3UuZGV2LnRlc3Qubm9ybWFsaXplci5FeGhhdXN0aXZlVGVzdCgpLAorICAgICAgICB9KTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFVTY3JpcHRSdW4oKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgcnVuKCBuZXcgVGVzdEZtd2tbXSB7CisgICAgICAgICAgICBuZXcgY29tLmlibS5pY3UuZGV2LnRlc3QubGFuZy5UZXN0VVNjcmlwdFJ1bigpLAorICAgICAgICB9KTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdE51bWJlckZvcm1hdCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBydW4obmV3IFRlc3RGbXdrW10geworICAgICAgICAgICAgbmV3IGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdC5JbnRsVGVzdE51bWJlckZvcm1hdCgpLAorICAgICAgICAgICAgbmV3IGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdC5JbnRsVGVzdE51bWJlckZvcm1hdEFQSSgpLAorICAgICAgICAgICAgbmV3IGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdC5OdW1iZXJGb3JtYXRUZXN0KCksCisgICAgICAgICAgICBuZXcgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0Lk51bWJlckZvcm1hdFJvdW5kVHJpcFRlc3QoKSwKKyAgICAgICAgICAgIG5ldyBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQuTnVtYmVyUmVncmVzc2lvbigpLAorICAgICAgICAgICAgbmV3IGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdC5OdW1iZXJGb3JtYXRSZWdyZXNzaW9uVGVzdCgpLAorICAgICAgICAgICAgbmV3IGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdC5JbnRsVGVzdERlY2ltYWxGb3JtYXRBUEkoKSwKKyAgICAgICAgICAgIG5ldyBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQuSW50bFRlc3REZWNpbWFsRm9ybWF0QVBJQygpLAorICAgICAgICAgICAgbmV3IGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdC5JbnRsVGVzdERlY2ltYWxGb3JtYXRTeW1ib2xzKCksCisgICAgICAgICAgICBuZXcgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0LkludGxUZXN0RGVjaW1hbEZvcm1hdFN5bWJvbHNDKCkKKyAgICAgICAgICAgICAgICB9KTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdERhdGVGb3JtYXQoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgcnVuKG5ldyBUZXN0Rm13a1tdIHsKKyAgICAgICAgICAgIG5ldyBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQuRGF0ZUZvcm1hdE1pc2NUZXN0cygpLAorICAgICAgICAgICAgbmV3IGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdC5EYXRlRm9ybWF0UmVncmVzc2lvblRlc3QoKSwKKyAgICAgICAgICAgIG5ldyBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQuRGF0ZUZvcm1hdFJvdW5kVHJpcFRlc3QoKSwKKyAgICAgICAgICAgIG5ldyBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQuRGF0ZUZvcm1hdFRlc3QoKSwKKyAgICAgICAgICAgIG5ldyBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQuSW50bFRlc3REYXRlRm9ybWF0KCksCisgICAgICAgICAgICBuZXcgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0LkludGxUZXN0RGF0ZUZvcm1hdEFQSSgpLAorICAgICAgICAgICAgbmV3IGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdC5JbnRsVGVzdERhdGVGb3JtYXRBUElDKCksCisgICAgICAgICAgICBuZXcgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0LkludGxUZXN0RGF0ZUZvcm1hdFN5bWJvbHMoKSwKKyAgICAgICAgICAgIG5ldyBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQuSW50bFRlc3RTaW1wbGVEYXRlRm9ybWF0QVBJKCksCisgICAgICAgICAgICBuZXcgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0LkRhdGVGb3JtYXRSZWdyZXNzaW9uVGVzdEooKQorICAgICAgICAgICAgICAgIH0pOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RTZXJ2aWNlKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisJcnVuKG5ldyBUZXN0Rm13a1tdIHsKKwkgICAgbmV3IGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWwuSUNVU2VydmljZVRlc3QoKSwKKwkgICAgbmV3IGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWwuSUNVU2VydmljZVRocmVhZFRlc3QoKQorCQl9KTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFZlcnNpb25JbmZvKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHJ1bihuZXcgVGVzdEZtd2tbXSB7CisgICAgICAgIG5ldyBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsLlZlcnNpb25JbmZvVGVzdCgpCisgICAgICAgIH0pOyAgICAgICAgCisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RJdGVyYXRvcigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBydW4obmV3IFRlc3RGbXdrW10geworICAgICAgICAgICAgbmV3IGNvbS5pYm0uaWN1LmRldi50ZXN0Lml0ZXJhdG9yLlRlc3RVQ2hhcmFjdGVySXRlcmF0b3IoKSwKKyAgICAgICAgfSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RVdGlsKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHJ1bihuZXcgVGVzdEZtd2tbXSB7CisgICAgICAgICAgICBuZXcgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbC5JQ1VMaXN0UmVzb3VyY2VCdW5kbGVUZXN0KCksCisJICAgIG5ldyBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsLkNvbXBhY3RBcnJheVRlc3QoKSwKKyAgICAgICAgICAgIH0pOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0TWF0aCgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIHJ1biggbmV3IFRlc3RGbXdrW117CisgICAgICAgICAgICAgICAgbmV3IERpYWdCaWdEZWNpbWFsKCksCisgICAgICAgICAgICAgIH0pOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0RGF0YU1vZHVsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3REYXRhTW9kdWxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWRiZWI4YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0RGF0YU1vZHVsZS5qYXZhCkBAIC0wLDAgKzEsMTY3IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3REYXRhTW9kdWxlLmphdmEsdiAkCisgKiAkRGF0ZTogMjAwMi8wOC8xMyAyMjowMjoxNiAkCisgKiAkUmV2aXNpb246IDEuMyAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdDsKKworaW1wb3J0IGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTsKKworLyoqCisgKiBSZXByZXNlbnRzIGEgY29sbGVjdGlvbiBvZiB0ZXN0IGRhdGEgZGVzY3JpYmVkIGluIGEgZmlsZS4KKyAqLworcHVibGljIGFic3RyYWN0IGNsYXNzIFRlc3REYXRhTW9kdWxlIHsKKyAgICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIG5hbWU7CisgICAgcHJvdGVjdGVkIGZpbmFsIFRlc3RMb2cgbG9nOworCisgICAgLyoqCisgICAgICogTG9va3MgZm9yIGZpbGUgd2l0aCBjb3JyZXNwb25kaW5nIG5hbWUsIGVpdGhlciB4bWwgb3IgcmVzb3VyY2UKKyAgICAgKiBidW5kbGUuICBSZXR1cm5zIG1vZHVsZSBvciBudWxsIGlmIG5vdCBwcmVzZW50LiAgCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIFRlc3REYXRhTW9kdWxlIG9wZW4oU3RyaW5nIG5hbWUsIFRlc3RMb2cgbG9nKSB7CisJUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlKG5hbWUpOworCWlmIChidW5kbGUgIT0gbnVsbCkgeworCSAgICByZXR1cm4gbmV3IFJlc291cmNlTW9kdWxlKG5hbWUsIGxvZywgYnVuZGxlKTsKKwl9CisJcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogU3ViY2xhc3MgY29uc3RydWN0b3JzIGNhbGwgdGhpcy4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgVGVzdERhdGFNb2R1bGUoU3RyaW5nIG5hbWUsIFRlc3RMb2cgbG9nKSB7CisJdGhpcy5uYW1lID0gbmFtZTsKKwl0aGlzLmxvZyA9IGxvZzsKKyAgICB9CisKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG5hbWUgb2YgdGhpcyB0ZXN0IG1vZHVsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgU3RyaW5nIGdldE5hbWUoKSB7CisJcmV0dXJuIG5hbWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsb2cgdXNlZCBieSB0aGlzIG1vZHVsZS4gIEVycm9ycyBsb2dnZWQgdG8gdGhpcworICAgICAqIGxvZyB3aWxsIHRlcm1pbmF0ZSBzZXR0aW5ncyBhbmQgY2FzZXMgaXRlcmF0aW9uIGZvciB0aGUKKyAgICAgKiBjdXJyZW50IHRlc3QuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFRlc3RMb2cgZ2V0TG9nKCkgeworCXJldHVybiBsb2c7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGFkZGl0aW9uYWwgZGF0YSByZWxhdGVkIHRvIHRoZSBtb2R1bGUsIGUuZy4gREVTQ1JJUFRJT04sCisgICAgICogZ2xvYmFsIHNldHRpbmdzLiAgTWlnaHQgYmUgbnVsbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgRGF0YU1hcCBnZXRJbmZvKCk7CisKKyAgICAvKioKKyAgICAgKiBBIHN0YW5kYXJkIGRhdHVtIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBEYXRhTWFwIHJldHVybmVkIGJ5IGdldEluZm8uCisgICAgICogREVTQ1JJUFRJT04gcHJvdmlkZXMgYSBvbmUtbGluZSBkZXNjcmlwdGlvbi4gIFRoZSBjb3JyZXNwb25kaW5nIHR5cGUKKyAgICAgKiBpcyBhIFN0cmluZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBERVNDUklQVElPTiA9ICJEZXNjcmlwdGlvbiI7CisKKyAgICAvKioKKyAgICAgKiBBIHN0YW5kYXJkIGRhdHVtIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBEYXRhTWFwIHJldHVybmVkIGJ5CisgICAgICogZ2V0SW5mby4gIExPTkdfREVTQ1JJUFRJT04gcHJvdmlkZXMgYW4gZXh0ZW5kZWQgZGVzY3JpcHRpb24uCisgICAgICogVGhlIGNvcnJlc3BvbmRpbmcgdHlwZSBpcyBhIFN0cmluZy4gIAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIExPTkdfREVTQ1JJUFRJT04gPSAiTG9uZ19EZXNjcmlwdGlvbiI7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbmFtZXMgb2YgdGhlIGNvbHVtbnMgb2YgdGVzdCBkYXRhLiAgVGhpcyBjYW4gYmUgZm91bmQgaW4KKyAgICAgKiBlaXRoZXIgdGhlIG1vZHVsZSBJTkZPIG9yIHRoZSB0ZXN0IElORk8uICBJZiB0aGUgdGVzdCBJTkZPCisgICAgICogZG9lcyBub3QgZGVmaW5lIHRoZSBoZWFkZXJzIHRoZW4gdGhleSBhcmUgdGFrZW4gZnJvbSB0aGUKKyAgICAgKiBtb2R1bGUuICBJZiB0ZXN0IGNhc2VzIGFyZSB1c2VkIGJ5IHRoZSB0ZXN0LCB0aGVuIHRoZSBoZWFkZXJzCisgICAgICogbXVzdCBiZSBkZWZpbmVkLiAgTW9zdCBjbGllbnRzIHdpbGwgbm90IG5lZWQgdGhpcyBpbmZvcm1hdGlvbiwKKyAgICAgKiBzaW5jZSBpdCBpcyBoYW5kbGVkIGJ5IHRoZSBmcmFtZXdvcmsuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgSEVBREVSUyA9ICJIZWFkZXJzIjsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIFRlc3Qgb2JqZWN0IGNvcnJlc3BvbmRpbmcgdG8gaW5kZXgsIG9yIG51bGwgaWYKKyAgICAgKiBpbmRleCBpcyBvdXQgb2YgcmFuZ2UgZm9yIHRoaXMgbW9kdWxlLiAgTm8gZXJyb3IgbG9nZ2VkIGlmCisgICAgICogaW5kZXggaXMgb3V0IG9mIGJvdW5kcywgdGhlIGFzc3VtcHRpb24gaXMgdGhhdCBpdGVyYXRpb24gaXMKKyAgICAgKiBiZWluZyB1c2VkLiAgCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IFRlc3REYXRhIGNyZWF0ZVRlc3REYXRhKGludCBpbmRleCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBUZXN0RGF0YSBjb3JyZXNwb25kaW5nIHRvIG5hbWUsIG9yIG51bGwgaWYgbmFtZSBub3QKKyAgICAgKiBmb3VuZCBpbiB0aGlzIG1vZHVsZS4gIExvZ3MgZXJyb3IgaWYgbmFtZSBpcyBub3QgZm91bmQuICAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgVGVzdERhdGEgY3JlYXRlVGVzdERhdGEoU3RyaW5nIG5hbWUpOworCisgICAgLyoqCisgICAgICogUmVwcmVzZW50cyBhIHNpbmdsZSB0ZXN0IGluIHRoZSBtb2R1bGUuCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IHN0YXRpYyBjbGFzcyBUZXN0RGF0YSB7CisJU3RyaW5nIG5hbWU7CisKKwlwcm90ZWN0ZWQgVGVzdERhdGEoU3RyaW5nIG5hbWUpIHsKKwkgICAgdGhpcy5uYW1lID0gbmFtZTsKKwl9CisKKwlwdWJsaWMgZmluYWwgU3RyaW5nIG5hbWUoKSB7CisJICAgIHJldHVybiBuYW1lOworCX0KKworCS8qKgorCSAqIEdldCBhZGRpdGlvbmFsIGRhdGEgcmVsYXRlZCB0byB0aGUgdGVzdCwgZS5nLiBERVNDUklQVElPTiwKKwkgKiBMT05HX0RFU0NSSVBUSU9OLCBIRUFERVJTLCBvciBvdGhlciB0ZXN0LXNwZWNpZmljCisJICogaW5mb3JtYXRpb24uICAKKwkgKi8KKwlwdWJsaWMgYWJzdHJhY3QgRGF0YU1hcCBnZXRJbmZvKCk7CisKKwkvKioKKwkgKiBSZXR1cm5zIG5ldyBEYXRhTWFwIGZvciBuZXh0IHNldHRpbmdzLCBhbmQgcmVzZXRzIHRlc3QgY2FzZQorCSAqIGl0ZXJhdGlvbi4gIFJldHVybnMgbnVsbCBpZiBubyBtb3JlIHNldHRpbmdzLiAgCisJICovCisJcHVibGljIGFic3RyYWN0IERhdGFNYXAgbmV4dFNldHRpbmdzKCk7CisKKwkvKioKKwkgKiBSZXR1cm5zIG5ldyBEYXRhTWFwIGZvciBuZXh0IGNhc2VzLiAgCisJICogUmV0dXJucyBudWxsIGlmIG5vIG1vcmUgY2FzZXMuCisJICovCisJcHVibGljIGFic3RyYWN0IERhdGFNYXAgbmV4dENhc2UoKTsKKworCS8qKgorCSAqIFN0b3BzIGl0ZXJhdGlvbiBvZiB0aGUgdGVzdC4gIFVzdWFsbHkgY2FsbGVkIGlmIHNvbWUKKwkgKiBjb25kaXRpb24gZGV0ZWN0cyBhbiBlcnJvci4KKwkgKi8KKwlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzdG9wSXRlcmF0aW9uKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGF0YU1hcCBwcm92aWRlcyBuYW1lZCBhY2Nlc3MgdG8gdHlwZWQgZGF0YS4gIExvb2t1cCBkYXRhIGJ5CisgICAgICoga2V5IGFuZCBhdHRlbXB0IHRvIGNhc3QgdG8gaW5kaWNhdGVkIHR5cGUuICBJZiBkYXRhIG5vdCBmb3VuZAorICAgICAqIG9yIGNhc3QgZmFpbHMsIGxvZyBlcnJvciBhbmQgcmV0dXJuIG51bGwuICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBzdGF0aWMgY2xhc3MgRGF0YU1hcCB7CisJcHVibGljIGFic3RyYWN0IGJvb2xlYW4gICAgaXNEZWZpbmVkKFN0cmluZyBrZXkpOworCisJcHVibGljIGFic3RyYWN0IE9iamVjdCAgICAgZ2V0T2JqZWN0KFN0cmluZyBrZXkpOworCXB1YmxpYyBhYnN0cmFjdCBTdHJpbmcgICAgIGdldFN0cmluZyhTdHJpbmcga2V5KTsKKwlwdWJsaWMgYWJzdHJhY3QgY2hhciAgICAgICBnZXRDaGFyKFN0cmluZyBrZXkpOworCXB1YmxpYyBhYnN0cmFjdCBpbnQgICAgICAgIGdldEludChTdHJpbmcga2V5KTsKKwlwdWJsaWMgYWJzdHJhY3QgYnl0ZSAgICAgICBnZXRCeXRlKFN0cmluZyBrZXkpOworCXB1YmxpYyBhYnN0cmFjdCBib29sZWFuICAgIGdldEJvb2xlYW4oU3RyaW5nIGtleSk7CisKKwlwdWJsaWMgYWJzdHJhY3QgT2JqZWN0W10gICBnZXRPYmplY3RBcnJheShTdHJpbmcga2V5KTsKKwlwdWJsaWMgYWJzdHJhY3QgU3RyaW5nW10gICBnZXRTdHJpbmdBcnJheShTdHJpbmcga2V5KTsKKwlwdWJsaWMgYWJzdHJhY3QgY2hhcltdICAgICBnZXRDaGFyQXJyYXkoU3RyaW5nIGtleSk7CisJcHVibGljIGFic3RyYWN0IGludFtdICAgICAgZ2V0SW50QXJyYXkoU3RyaW5nIGtleSk7CisJcHVibGljIGFic3RyYWN0IGJ5dGVbXSAgICAgZ2V0Qnl0ZUFycmF5KFN0cmluZyBrZXkpOworCXB1YmxpYyBhYnN0cmFjdCBib29sZWFuW10gIGdldEJvb2xlYW5BcnJheShTdHJpbmcga2V5KTsKKyAgICB9Cit9CisgICAgCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEZtd2suamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0Rm13ay5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjkyYzEwY2UKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEZtd2suamF2YQpAQCAtMCwwICsxLDQ5MCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RGbXdrLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDYvMDUgMjM6MDA6NTggJCAKKyAqICRSZXZpc2lvbjogMS4zMCAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Q7CisKK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC4qOworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CitpbXBvcnQgamF2YS51dGlsLkVudW1lcmF0aW9uOworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CitpbXBvcnQgamF2YS51dGlsLkNvbXBhcmF0b3I7CitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKKworCisvKioKKyAqIFRlc3RGbXdrIGlzIGEgYmFzZSBjbGFzcyBmb3IgdGVzdHMgdGhhdCBjYW4gYmUgcnVuIGNvbnZlbmllbnRseSBmcm9tCisgKiB0aGUgY29tbWFuZCBsaW5lIGFzIHdlbGwgYXMgdW5kZXIgdGhlIEphdmEgdGVzdCBoYXJuZXNzLgorICogPHA+CisgKiBTdWItY2xhc3NlcyBpbXBsZW1lbnQgYSBzZXQgb2YgbWV0aG9kcyBuYW1lZCBUZXN0PHNvbWV0aGluZz4uIEVhY2gKKyAqIG9mIHRoZXNlIG1ldGhvZHMgcGVyZm9ybXMgc29tZSB0ZXN0LiBUZXN0IG1ldGhvZHMgc2hvdWxkIGluZGljYXRlCisgKiBlcnJvcnMgYnkgY2FsbGluZyBlaXRoZXIgZXJyIG9yIGVycmxuLiAgVGhpcyB3aWxsIGluY3JlbWVudCB0aGUKKyAqIGVycm9yQ291bnQgZmllbGQgYW5kIG1heSBvcHRpb25hbGx5IHByaW50IGEgbWVzc2FnZSB0byB0aGUgbG9nLgorICogRGVidWdnaW5nIGluZm9ybWF0aW9uIG1heSBhbHNvIGJlIGFkZGVkIHRvIHRoZSBsb2cgdmlhIHRoZSBsb2cKKyAqIGFuZCBsb2dsbiBtZXRob2RzLiAgVGhlc2UgbWV0aG9kcyB3aWxsIGFkZCB0aGVpciBhcmd1bWVudHMgdG8gdGhlCisgKiBsb2cgb25seSBpZiB0aGUgdGVzdCBpcyBiZWluZyBydW4gaW4gdmVyYm9zZSBtb2RlLgorICovCisKK3B1YmxpYyBjbGFzcyBUZXN0Rm13ayBpbXBsZW1lbnRzIFRlc3RMb2cgeworCisgICAgLyoqCisgICAgICogUHV0cyBhIGNvcHlyaWdodCBpbiB0aGUgLmNsYXNzIGZpbGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0Tm90aWNlCisgICAgICAgID0gIkNvcHlyaWdodCBcdTAwYTkxOTk3LTE5OTggSUJNIENvcnAuICBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEV2ZXJ5dGhpbmcgYmVsb3cgaGVyZSBpcyBib2lsZXJwbGF0ZSBjb2RlIHRoYXQgbWFrZXMgaXQgcG9zc2libGUKKyAgICAvLyB0byBhZGQgYSBuZXcgdGVzdCBieSBzaW1wbHkgYWRkaW5nIGEgZnVuY3Rpb24gdG8gYW4gZXhpc3RpbmcgY2xhc3MKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgcHJvdGVjdGVkIFRlc3RGbXdrKCkgeworICAgICAgICAvLyBDcmVhdGUgYSBoYXNodGFibGUgY29udGFpbmluZyBhbGwgdGhlIHRlc3QgbWV0aG9kcy4KKyAgICAgICAgdGVzdE1ldGhvZHMgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgIE1ldGhvZFtdIG1ldGhvZHMgPSBnZXRDbGFzcygpLmdldERlY2xhcmVkTWV0aG9kcygpOworICAgICAgICBmb3IoIGludCBpPTA7IGk8bWV0aG9kcy5sZW5ndGg7IGkrKyApIHsKKyAgICAgICAgICAgIGlmKCBtZXRob2RzW2ldLmdldE5hbWUoKS5zdGFydHNXaXRoKCJUZXN0IikgCisgICAgICAgICAgICAgICAgfHwgbWV0aG9kc1tpXS5nZXROYW1lKCkuc3RhcnRzV2l0aCgidGVzdCIpKSB7CisgICAgICAgICAgICAgICAgdGVzdE1ldGhvZHMucHV0KCBtZXRob2RzW2ldLmdldE5hbWUoKSwgbWV0aG9kc1tpXSApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIF9ydW4oKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgd3JpdGVUZXN0TmFtZShnZXRDbGFzcygpLmdldE5hbWUoKSk7CisgICAgICAgIHBhcmFtcy5pbmRlbnRMZXZlbCsrOworICAgICAgICBpbnQgb2xkQ2xhc3NDb3VudCA9IHBhcmFtcy5lcnJvckNvdW50OworICAgICAgICBpbnQgb2xkQ2xhc3NJbnZhbGlkQ291bnQgPSBwYXJhbXMuaW52YWxpZENvdW50OworCisgICAgICAgIGlmICh2YWxpZGF0ZSgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIEVudW1lcmF0aW9uIG1ldGhvZHNUb1J1bjsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICh0ZXN0c1RvUnVuICE9IG51bGwgJiYgdGVzdHNUb1J1bi5zaXplKCkgPj0gMSkgeworICAgICAgICAgICAgICAgIG1ldGhvZHNUb1J1biA9IHRlc3RzVG9SdW4uZWxlbWVudHMoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbWV0aG9kc1RvUnVuID0gdGVzdE1ldGhvZHMuZWxlbWVudHMoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbWV0aG9kc1RvUnVuID0gbmV3IFNvcnRlZEVudW1lcmF0aW9uKG1ldGhvZHNUb1J1biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQ29tcGFyYXRvcigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBhLCBPYmplY3QgYikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgoTWV0aG9kKWEpLmdldE5hbWUoKS5jb21wYXJlVG9JZ25vcmVDYXNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoTWV0aG9kKWIpLmdldE5hbWUoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgLy8gUnVuIHRoZSBsaXN0IG9mIHRlc3RzIGdpdmVuIGluIHRoZSB0ZXN0IGFyZ3VtZW50cworCSAgICBmaW5hbCBPYmplY3RbXSBOT19BUkdTID0gbmV3IE9iamVjdFswXTsKKyAgICAgICAgICAgIHdoaWxlIChtZXRob2RzVG9SdW4uaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgICAgICBpbnQgb2xkQ291bnQgPSBwYXJhbXMuZXJyb3JDb3VudDsKKyAgICAgICAgICAgICAgICBpbnQgb2xkSW52YWxpZENvdW50ID0gcGFyYW1zLmludmFsaWRDb3VudDsKKworICAgICAgICAgICAgICAgIE1ldGhvZCB0ZXN0TWV0aG9kID0gKE1ldGhvZCltZXRob2RzVG9SdW4ubmV4dEVsZW1lbnQoKTsKKwkJU3RyaW5nIHRlc3ROYW1lID0gdGVzdE1ldGhvZC5nZXROYW1lKCk7CisKKyAgICAgICAgICAgICAgICB3cml0ZVRlc3ROYW1lKHRlc3ROYW1lKTsKKworCQlpZiAodmFsaWRhdGVNZXRob2QodGVzdE5hbWUpKSB7CisJCSAgICB0cnkgeworCQkJdGVzdE1ldGhvZC5pbnZva2UodGhpcywgTk9fQVJHUyk7CisJCSAgICB9IGNhdGNoKCBJbGxlZ2FsQWNjZXNzRXhjZXB0aW9uIGUgKSB7CisJCQllcnJsbigiQ2FuJ3QgYWNjZXNzIHRlc3QgbWV0aG9kICIgKyB0ZXN0TmFtZSk7CisJCSAgICB9IGNhdGNoKCBJbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uIGUgKSB7CisJCQllcnJsbigiVW5jYXVnaHQgZXhjZXB0aW9uIFwiIitlKyJcIiB0aHJvd24gaW4gdGVzdCBtZXRob2QgIgorCQkJICAgICAgKyB0ZXN0TmFtZSk7CisJCQllLmdldFRhcmdldEV4Y2VwdGlvbigpLnByaW50U3RhY2tUcmFjZSh0aGlzLnBhcmFtcy5sb2cpOworCQkgICAgfQorCQl9IGVsc2UgeworCQkgICAgcGFyYW1zLmludmFsaWRDb3VudCsrOworCQl9CisgICAgICAgICAgICAgICAgd3JpdGVUZXN0UmVzdWx0KHBhcmFtcy5lcnJvckNvdW50IC0gb2xkQ291bnQsIHBhcmFtcy5pbnZhbGlkQ291bnQgLSBvbGRJbnZhbGlkQ291bnQpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcGFyYW1zLmludmFsaWRDb3VudCsrOworICAgICAgICB9CisgICAgICAgIHBhcmFtcy5pbmRlbnRMZXZlbC0tOworCisgICAgICAgIHdyaXRlVGVzdFJlc3VsdChwYXJhbXMuZXJyb3JDb3VudCAtIG9sZENsYXNzQ291bnQsIHBhcmFtcy5pbnZhbGlkQ291bnQgLSBvbGRDbGFzc0ludmFsaWRDb3VudCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHJ1bihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgaWYgKHBhcmFtcyA9PSBudWxsKSBwYXJhbXMgPSBuZXcgVGVzdFBhcmFtcygpOworCisgICAgICAgIC8vIFBhcnNlIHRoZSB0ZXN0IGFyZ3VtZW50cy4gIFRoZXkgY2FuIGJlIGVpdGhlciB0aGUgZmxhZworICAgICAgICAvLyAiLXZlcmJvc2UiIG9yIG5hbWVzIG9mIHRlc3QgbWV0aG9kcy4gQ3JlYXRlIGEgbGlzdCBvZgorICAgICAgICAvLyB0ZXN0cyB0byBiZSBydW4uCisJYm9vbGVhbiBwcmludFVzYWdlID0gZmFsc2U7CisgICAgICAgIHRlc3RzVG9SdW4gPSBuZXcgVmVjdG9yKGFyZ3MubGVuZ3RoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoYXJnc1tpXS5lcXVhbHMoIi12ZXJib3NlIikgfHwgYXJnc1tpXS5lcXVhbHMoIi12IikpIHsKKyAgICAgICAgICAgICAgICBwYXJhbXMudmVyYm9zZSA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChhcmdzW2ldLmVxdWFscygiLXByb21wdCIpKSB7CisgICAgICAgICAgICAgICAgcGFyYW1zLnByb21wdCA9IHRydWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZ3NbaV0uZXF1YWxzKCItbm90aHJvdyIpKSB7CisgICAgICAgICAgICAgICAgcGFyYW1zLm5vdGhyb3cgPSB0cnVlOworCSAgICB9IGVsc2UgaWYgKGFyZ3NbaV0uZXF1YWxzKCItZGVzY3JpYmUiKSkgeworCQlwYXJhbXMuZGVzY3JpYmUgPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIGlmIChhcmdzW2ldLnN0YXJ0c1dpdGgoIi1lIikpIHsKKyAgICAgICAgICAgICAgICBwYXJhbXMuaW5jbHVzaW9uID0gKGFyZ3NbaV0ubGVuZ3RoKCkgPT0gMikgPyA1IDogSW50ZWdlci5wYXJzZUludChhcmdzW2ldLnN1YnN0cmluZygyKSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZ3NbaV0udG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKCItZmlsdGVyOiIpKSB7CisgICAgICAgICAgICAgICAgcGFyYW1zLmZpbHRlciA9IGFyZ3NbaV0uc3Vic3RyaW5nKDgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBPYmplY3QgbSA9IHRlc3RNZXRob2RzLmdldChhcmdzW2ldKTsKKyAgICAgICAgICAgICAgICBpZiAobSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RzVG9SdW4uYWRkRWxlbWVudChtKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworCQkgICAgcHJpbnRVc2FnZSA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisJaWYgKHByaW50VXNhZ2UpIHsKKwkgICAgdXNhZ2UoKTsKKwkgICAgcmV0dXJuOworCX0KKworICAgICAgICBfcnVuKCk7CisKKyAgICAgICAgaWYgKHBhcmFtcy5wcm9tcHQpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiSGl0IFJFVFVSTiB0byBleGl0Li4uIik7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5pbi5yZWFkKCk7CisgICAgICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFeGNlcHRpb246ICIgKyBlLnRvU3RyaW5nKCkgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKHBhcmFtcy5ub3Rocm93KSB7CisgICAgICAgICAgICBTeXN0ZW0uZXhpdChwYXJhbXMuZXJyb3JDb3VudCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB3ZSBjYW4gcnVuIHRoaXMgdGVzdCAoYWxsb3dzIHRlc3QgdG8gaW5zcGVjdCBqdm0sIGVudmlyb25tZW50LCBwYXJhbXMgYmVmb3JlIHJ1bm5pbmcpCisgICAgICovCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gdmFsaWRhdGUoKSB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0RGVzY3JpcHRpb24oKSB7CisJcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gdmFsaWRhdGVNZXRob2QoU3RyaW5nIG5hbWUpIHsKKwlyZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldE1ldGhvZERlc2NyaXB0aW9uKFN0cmluZyBuYW1lKSB7CisJcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgcHJvdGVjdGVkIHZvaWQgcnVuKFRlc3RGbXdrIGNoaWxkVGVzdCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHJ1bihuZXcgVGVzdEZtd2tbXSB7IGNoaWxkVGVzdCB9KTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBydW4oVGVzdEZtd2tbXSB0ZXN0cykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTx0ZXN0cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdGVzdHNbaV0ucGFyYW1zID0gdGhpcy5wYXJhbXM7CisgICAgICAgICAgICBwYXJhbXMuaW5kZW50TGV2ZWwrKzsKKyAgICAgICAgICAgIHRlc3RzW2ldLl9ydW4oKTsKKyAgICAgICAgICAgIHBhcmFtcy5pbmRlbnRMZXZlbC0tOworICAgICAgICB9CisgICAgfQorCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gaXNWZXJib3NlKCkgeworICAgICAgICByZXR1cm4gcGFyYW1zLnZlcmJvc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogMCA9IGZld2VzdCB0ZXN0cywgNSBpcyBub3JtYWwgYnVpbGQsIDEwIGlzIG1vc3QgdGVzdHMKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEluY2x1c2lvbigpIHsKKyAgICAgICAgcmV0dXJuIHBhcmFtcy5pbmNsdXNpb247CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaXNRdWljaygpIHsKKyAgICAgICAgcmV0dXJuIHBhcmFtcy5pbmNsdXNpb24gPT0gMDsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldEZpbHRlcigpIHsKKyAgICAgICAgcmV0dXJuIHBhcmFtcy5maWx0ZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkcyBnaXZlbiBzdHJpbmcgdG8gdGhlIGxvZyBpZiB3ZSBhcmUgaW4gdmVyYm9zZSBtb2RlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGxvZyggU3RyaW5nIG1lc3NhZ2UgKSB7CisgICAgICAgIGxvZyhtZXNzYWdlLCB0cnVlLCBmYWxzZSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgbG9nbG4oIFN0cmluZyBtZXNzYWdlICkgeworICAgICAgICBsb2cobWVzc2FnZSArIFN5c3RlbS5nZXRQcm9wZXJ0eSgibGluZS5zZXBhcmF0b3IiKSwgdHJ1ZSwgZmFsc2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZCBhIGdpdmVuIHN0cmluZyB0byB0aGUgbG9nLgorICAgICAqIEBwYXJhbSBtZXNzYWdlIHRleHQgdG8gYWRkCisgICAgICogQHBhcmFtIHBhc3MgaWYgdHJ1ZSBhbmQgaWYgaW4gdmVyYm9zZSBtb2RlLCBvciBpZiBmYWxzZSwgdGhlbiBhZGQKKyAgICAgKiB0aGUgdGV4dDsgb3RoZXJ3aXNlIHN1cHByZXNzIGl0CisgICAgICogQHBhcmFtIGluY3JlbWVudENvdW50IGlmIHBhc3MgaWYgZmFsc2UgYW5kIGluY3JlbWVudENvdW50IGlzIHRydWUsCisgICAgICogdGhlbiBpbmNyZW1lbnQgdGhlIGZhaWx1cmUgY291bnQ7IGlmIHBhc3MgaXMgdHJ1ZSwgdGhlbiB0aGlzIHBhcmFtCisgICAgICogaXMgaWdub3JlZAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGxvZyggU3RyaW5nIG1lc3NhZ2UsIGJvb2xlYW4gcGFzcywgYm9vbGVhbiBpbmNyZW1lbnRDb3VudCApIHsKKyAgICAgICAgaWYgKCFwYXNzICYmIGluY3JlbWVudENvdW50KSB7CisgICAgICAgICAgICBwYXJhbXMuZXJyb3JDb3VudCsrOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFwYXNzIHx8IHBhcmFtcy52ZXJib3NlKSB7CisgICAgICAgICAgICBpbmRlbnQocGFyYW1zLmluZGVudExldmVsICsgMSk7CisgICAgICAgICAgICBwYXJhbXMubG9nLnByaW50KCBtZXNzYWdlICk7CisgICAgICAgICAgICBwYXJhbXMubG9nLmZsdXNoKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIXBhc3MgJiYgIXBhcmFtcy5ub3Rocm93KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbihtZXNzYWdlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGxvZ2xuKCBTdHJpbmcgbWVzc2FnZSwgYm9vbGVhbiBwYXNzLCBib29sZWFuIGluY3JlbWVudENvdW50ICkgeworICAgICAgICBsb2cobWVzc2FnZSArIFN5c3RlbS5nZXRQcm9wZXJ0eSgibGluZS5zZXBhcmF0b3IiKSwgcGFzcywgaW5jcmVtZW50Q291bnQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJsb2FkcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIGxvZyggU3RyaW5nIG1lc3NhZ2UsIGJvb2xlYW4gcGFzcyApIHsKKyAgICAgICAgbG9nKG1lc3NhZ2UsIHBhc3MsIHRydWUpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGxvZ2xuKCBTdHJpbmcgbWVzc2FnZSwgYm9vbGVhbiBwYXNzICkgeworICAgICAgICBsb2dsbihtZXNzYWdlLCBwYXNzLCB0cnVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXBvcnQgYW4gZXJyb3IKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBlcnIoIFN0cmluZyBtZXNzYWdlICkgeworICAgICAgICBsb2cobWVzc2FnZSwgZmFsc2UsIHRydWUpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGVycmxuKCBTdHJpbmcgbWVzc2FnZSApIHsKKyAgICAgICAgbG9nbG4obWVzc2FnZSwgZmFsc2UsIHRydWUpOworICAgIH0KKworICAgIHByb3RlY3RlZCBpbnQgZ2V0RXJyb3JDb3VudCgpIHsKKyAgICAgICAgcmV0dXJuIHBhcmFtcy5lcnJvckNvdW50OworICAgIH0KKworICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlVGVzdE5hbWUoU3RyaW5nIHRlc3ROYW1lKSB7CisgICAgICAgIGluZGVudChwYXJhbXMuaW5kZW50TGV2ZWwpOworICAgICAgICBwYXJhbXMubG9nLnByaW50KHRlc3ROYW1lKTsKKyAgICAgICAgcGFyYW1zLmxvZy5mbHVzaCgpOworICAgICAgICBwYXJhbXMubmVlZExpbmVGZWVkID0gdHJ1ZTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCB3cml0ZVRlc3RSZXN1bHQoaW50IGZhaWxDb3VudCwgaW50IGludmFsaWRDb3VudCkgeworICAgICAgICBpZiAoIXBhcmFtcy5uZWVkTGluZUZlZWQpIHsKKyAgICAgICAgICAgIGluZGVudChwYXJhbXMuaW5kZW50TGV2ZWwpOworICAgICAgICAgICAgcGFyYW1zLmxvZy5wcmludCgifSIpOworICAgICAgICB9CisgICAgICAgIHBhcmFtcy5uZWVkTGluZUZlZWQgPSBmYWxzZTsKKworICAgICAgICBpZiAoZmFpbENvdW50ICE9IDApIHsKKyAgICAgICAgICAgIHBhcmFtcy5sb2cucHJpbnRsbigiIEZBSUxFRCAoIiArIGZhaWxDb3VudCArICIgZmFpbHVyZXMiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGludmFsaWRDb3VudCAhPSAwKSA/CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsICIgKyBpbnZhbGlkQ291bnQgKyAiIHRlc3RzIHNraXBwZWQpIiA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIpIikpOworICAgICAgICB9IGVsc2UgaWYgKGludmFsaWRDb3VudCAhPSAwKSB7CisgICAgICAgICAgICBwYXJhbXMubG9nLnByaW50bG4oIiBRdWFsaWZpZWQgKCIgKyBpbnZhbGlkQ291bnQgKyAiIHRlc3RzIHNraXBwZWQpIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwYXJhbXMubG9nLnByaW50bG4oIiBQYXNzZWQiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgZmluYWwgdm9pZCBpbmRlbnQoaW50IGRpc3RhbmNlKSB7CisgICAgICAgIGlmIChwYXJhbXMubmVlZExpbmVGZWVkKSB7CisgICAgICAgICAgICBwYXJhbXMubG9nLnByaW50bG4oIiB7Iik7CisgICAgICAgICAgICBwYXJhbXMubmVlZExpbmVGZWVkID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcGFyYW1zLmxvZy5wcmludChzcGFjZXMuc3Vic3RyaW5nKDAsIGRpc3RhbmNlICogMikpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFByaW50IGEgdXNhZ2UgbWVzc2FnZSBmb3IgdGhpcyB0ZXN0IGNsYXNzLgorICAgICAqLworICAgIHZvaWQgdXNhZ2UoKSB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihnZXRDbGFzcygpLmdldE5hbWUoKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiOiBbLXZlcmJvc2VdIFstbm90aHJvd10gWy1wcm9tcHRdIFstZGVzY3JpYmVdIFt0ZXN0IG5hbWVzXSIpOworCisgICAgICAgIEVudW1lcmF0aW9uIG1ldGhvZE5hbWVzID0gbmV3IFNvcnRlZEVudW1lcmF0aW9uKHRlc3RNZXRob2RzLmtleXMoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IENvbXBhcmF0b3IoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IGEsIE9iamVjdCBiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgoU3RyaW5nKWEpLmNvbXBhcmVUb0lnbm9yZUNhc2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChTdHJpbmcpYikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKwlib29sZWFuIHZhbGlkID0gcGFyYW1zLmRlc2NyaWJlICYmIHZhbGlkYXRlKCk7CisJaWYgKHZhbGlkKSB7CisJICAgIFN0cmluZyB0ZXN0RGVzY3JpcHRpb24gPSBnZXREZXNjcmlwdGlvbigpOworCSAgICBpZiAodGVzdERlc2NyaXB0aW9uICE9IG51bGwpIHsKKwkJU3lzdGVtLm91dC5wcmludGxuKCItLSAiICsgdGVzdERlc2NyaXB0aW9uKTsKKwkgICAgfQorCX0KKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJ0ZXN0IG5hbWVzOiIpOworICAgICAgICB3aGlsZSggbWV0aG9kTmFtZXMuaGFzTW9yZUVsZW1lbnRzKCkgKSB7CisJICAgIFN0cmluZyBtZXRob2ROYW1lID0gKFN0cmluZyltZXRob2ROYW1lcy5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiXHQiICsgbWV0aG9kTmFtZSApOworCSAgICBpZiAodmFsaWQpIHsKKwkJU3RyaW5nIG1ldGhvZERlc2NyaXB0aW9uID0gZ2V0TWV0aG9kRGVzY3JpcHRpb24obWV0aG9kTmFtZSk7CisJCWlmIChtZXRob2REZXNjcmlwdGlvbiAhPSBudWxsKSB7CisJCSAgICBTeXN0ZW0ub3V0LnByaW50KCIgLS0gIiArIG1ldGhvZERlc2NyaXB0aW9uKTsKKwkJfQorCSAgICB9CisJICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgaGV4KGNoYXIgY2gpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgU3RyaW5nIGZvbyA9IEludGVnZXIudG9TdHJpbmcoY2gsMTYpLnRvVXBwZXJDYXNlKCk7CisgICAgICAgIGZvciAoaW50IGkgPSBmb28ubGVuZ3RoKCk7IGkgPCA0OyArK2kpIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJzAnKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0ICsgZm9vOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBoZXgoaW50IGNoKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFN0cmluZyBmb28gPSBJbnRlZ2VyLnRvU3RyaW5nKGNoLDE2KS50b1VwcGVyQ2FzZSgpOworICAgICAgICBmb3IgKGludCBpID0gZm9vLmxlbmd0aCgpOyBpIDwgNDsgKytpKSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcwJyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdCArIGZvbzsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBoZXgoU3RyaW5nIHMpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChpICE9IDApIHJlc3VsdC5hcHBlbmQoJywnKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoaGV4KHMuY2hhckF0KGkpKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGhleChTdHJpbmdCdWZmZXIgcykgeworICAgICAgICByZXR1cm4gaGV4KHMudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgQVNDSUlXcml0ZXIgZXh0ZW5kcyBQcmludFdyaXRlciB7CisgICAgICAgIHByaXZhdGUgV3JpdGVyIHc7CisgICAgICAgIHByaXZhdGUgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgCisgICAgICAgIC8vIENoYXJhY3RlcnMgdGhhdCB3ZSB0aGluayBhcmUgcHJpbnRhYmxlIGJ1dCB0aGF0IGVzY2FwZVVucHJpbnRhYmxlCisgICAgICAgIC8vIGRvZXNuJ3QKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVW5pY29kZVNldCBTID0KKyAgICAgICAgICAgIG5ldyBVbmljb2RlU2V0KCJbXFx1MDAwOVxcdTAwMEFcXHUwMDBEXSIpOworCisgICAgICAgIHB1YmxpYyBBU0NJSVdyaXRlcihXcml0ZXIgdywgYm9vbGVhbiBhdXRvRmx1c2gpIHsKKyAgICAgICAgICAgIHN1cGVyKHcsIGF1dG9GbHVzaCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgQVNDSUlXcml0ZXIoT3V0cHV0U3RyZWFtIG9zLCBib29sZWFuIGF1dG9GbHVzaCkgeworICAgICAgICAgICAgc3VwZXIob3MsIGF1dG9GbHVzaCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCB3cml0ZShpbnQgYykgeworICAgICAgICAgICAgc3luY2hyb25pemVkKGxvY2spIHsKKyAgICAgICAgICAgICAgICBidWZmZXIuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgIGlmICghUy5jb250YWlucyhjKSAmJiBVdGlsaXR5LmVzY2FwZVVucHJpbnRhYmxlKGJ1ZmZlciwgYykpIHsKKyAgICAgICAgICAgICAgICAgICAgc3VwZXIud3JpdGUoYnVmZmVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHN1cGVyLndyaXRlKGMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgd3JpdGUoY2hhcltdIGJ1ZiwgaW50IG9mZiwgaW50IGxlbikgeworICAgICAgICAgICAgc3luY2hyb25pemVkIChsb2NrKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICBpbnQgbGltaXQgPSBvZmYgKyBsZW47CisgICAgICAgICAgICAgICAgd2hpbGUgKG9mZiA8IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIGludCBjID0gVVRGMTYuY2hhckF0KGJ1ZiwgMCwgYnVmLmxlbmd0aCwgb2ZmKTsKKyAgICAgICAgICAgICAgICAgICAgb2ZmICs9IFVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFTLmNvbnRhaW5zKGMpICYmIFV0aWxpdHkuZXNjYXBlVW5wcmludGFibGUoYnVmZmVyLCBjKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgc3VwZXIud3JpdGUoYnVmZmVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1cGVyLndyaXRlKGMpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIHB1YmxpYyB2b2lkIHdyaXRlKFN0cmluZyBzLCBpbnQgb2ZmLCBpbnQgbGVuKSB7CisgICAgICAgICAgICB3cml0ZShzLnN1YnN0cmluZyhvZmYsIG9mZiArIGxlbikudG9DaGFyQXJyYXkoKSwgMCwgbGVuKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFRlc3RQYXJhbXMgeworICAgICAgICBwdWJsaWMgYm9vbGVhbiAgIHByb21wdCA9IGZhbHNlOworICAgICAgICBwdWJsaWMgYm9vbGVhbiAgIG5vdGhyb3cgPSBmYWxzZTsKKyAgICAgICAgcHVibGljIGJvb2xlYW4gICB2ZXJib3NlID0gZmFsc2U7CisJcHVibGljIGJvb2xlYW4gICBkZXNjcmliZSA9IGZhbHNlOworICAgICAgICBwdWJsaWMgaW50ICAgICAgaW5jbHVzaW9uID0gMDsKKyAgICAgICAgcHVibGljIFN0cmluZyAgICBmaWx0ZXIgPSBudWxsOworCisgICAgICAgIHB1YmxpYyBQcmludFdyaXRlciBsb2cgPSBuZXcgQVNDSUlXcml0ZXIoU3lzdGVtLm91dCwgdHJ1ZSk7CisgICAgICAgIHB1YmxpYyBpbnQgICAgICAgICBpbmRlbnRMZXZlbCA9IDA7CisgICAgICAgIHB1YmxpYyBib29sZWFuICAgICBuZWVkTGluZUZlZWQgPSBmYWxzZTsKKyAgICAgICAgcHVibGljIGludCAgICAgICAgIGVycm9yQ291bnQgPSAwOworICAgICAgICBwdWJsaWMgaW50ICAgICAgICAgaW52YWxpZENvdW50ID0gMDsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBTb3J0ZWRFbnVtZXJhdGlvbiBpbXBsZW1lbnRzIEVudW1lcmF0aW9uIHsKKyAgICAgICAgcHJpdmF0ZSBPYmplY3RbXSBzb3J0ZWQ7CisgICAgICAgIHByaXZhdGUgaW50IHBvczsKKworICAgICAgICBwdWJsaWMgU29ydGVkRW51bWVyYXRpb24oRW51bWVyYXRpb24gdW5zb3J0ZWQsIENvbXBhcmF0b3IgYykgeworICAgICAgICAgICAgVmVjdG9yIHYgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAodW5zb3J0ZWQuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgICAgICB2LmFkZEVsZW1lbnQodW5zb3J0ZWQubmV4dEVsZW1lbnQoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzb3J0ZWQgPSBuZXcgT2JqZWN0W3Yuc2l6ZSgpXTsKKyAgICAgICAgICAgIHYuY29weUludG8oc29ydGVkKTsKKyAgICAgICAgICAgIGphdmEudXRpbC5BcnJheXMuc29ydChzb3J0ZWQsIGMpOworICAgICAgICAgICAgcG9zID0gMDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBib29sZWFuIGhhc01vcmVFbGVtZW50cygpIHsKKyAgICAgICAgICAgIHJldHVybiBwb3MgPCBzb3J0ZWQubGVuZ3RoOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIE9iamVjdCBuZXh0RWxlbWVudCgpIHsKKyAgICAgICAgICAgIHJldHVybiBwb3MgPCBzb3J0ZWQubGVuZ3RoID8gc29ydGVkW3BvcysrXSA6IG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIFRlc3RQYXJhbXMgcGFyYW1zID0gbnVsbDsKKyAgICBwcml2YXRlIEhhc2h0YWJsZSB0ZXN0TWV0aG9kczsKKyAgICBwcml2YXRlIFZlY3RvciB0ZXN0c1RvUnVuOworICAgIHByaXZhdGUgZmluYWwgU3RyaW5nIHNwYWNlcyA9ICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RMb2cuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0TG9nLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzFhODhlOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0TG9nLmphdmEKQEAgLTAsMCArMSwzMCBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0TG9nLmphdmEsdiAkCisgKiAkRGF0ZTogMjAwMi8wOC8xMyAyMjowMjoxNiAkCisgKiAkUmV2aXNpb246IDEuMyAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdDsKKworcHVibGljIGludGVyZmFjZSBUZXN0TG9nIHsKKworICAgIC8qKgorICAgICAqIEFkZHMgZ2l2ZW4gc3RyaW5nIHRvIHRoZSBsb2cgaWYgd2UgYXJlIGluIHZlcmJvc2UgbW9kZS4KKyAgICAgKi8KKyAgICB2b2lkIGxvZyhTdHJpbmcgbWVzc2FnZSk7CisKKyAgICB2b2lkIGxvZ2xuKFN0cmluZyBtZXNzYWdlKTsKKworICAgIC8qKgorICAgICAqIFJlcG9ydCBhbiBlcnJvcgorICAgICAqLworICAgIHZvaWQgZXJyKFN0cmluZyBtZXNzYWdlKTsKKworICAgIHZvaWQgZXJybG4oU3RyaW5nIG1lc3NhZ2UpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RVdGlsLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdFV0aWwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOGRjMGJjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RVdGlsLmphdmEKQEAgLTAsMCArMSw4NSBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0VXRpbC5qYXZhLHYgJAorICogJERhdGU6IDIwMDIvMDgvMTMgMjI6MDI6MTYgJAorICogJFJldmlzaW9uOiAxLjIgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Q7CisKK2ltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkUmVhZGVyOworaW1wb3J0IGphdmEuaW8uRmlsZTsKK2ltcG9ydCBqYXZhLmlvLkZpbGVSZWFkZXI7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKKworcHVibGljIGNsYXNzIFRlc3RVdGlsIHsKKwkvKioKKwkgKiBTdGFuZGFyZCBwYXRoIHRvIHRoZSB0ZXN0IGRhdGEuCisJICovCisJcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgREFUQV9QQVRIID0gIi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEiOworCisJLyoqCisJICogUHJvcGVydHkgZm9yIHVzZXItZGVmaW5lZCBkYXRhIHBhdGguCisJICovCisJcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgREFUQV9QQVRIX1BST1BFUlRZID0gIklDVURhdGFQYXRoIjsKKworCS8qKgorCSAqIEdldCBwYXRoIHRvIHRlc3QgZGF0YS48cD4KKwkgKiAKKwkgKiBwYXRoIGlzIHByb3ZpZGVkIHJlbGF0aXZlIHRvIHRoZSBzcmMgcGF0aCwgaG93ZXZlciB0aGUgdXNlciBjb3VsZCAKKwkgKiBzZXQgYSBzeXN0ZW0gcHJvcGVydHkgdG8gY2hhbmdlIHRoZSBkaXJlY3RvcnkgcGF0aC48YnI+CisJICovCisKKwlwdWJsaWMgc3RhdGljIGZpbmFsIEZpbGUgZ2V0RGF0YVBhdGhSb290KCkgeworCQlTdHJpbmcgcyA9IFN5c3RlbS5nZXRQcm9wZXJ0eShEQVRBX1BBVEhfUFJPUEVSVFkpOworCQlpZiAocyA9PSBudWxsKSB7CisJCQkvLyBhc3N1bWUgdXNlci5kaXIgaXMgZGlyZWN0bHkgYWJvdmUgc3JjIGRpcmVjdG9yeQorCQkJcyA9IFN5c3RlbS5nZXRQcm9wZXJ0eSgidXNlci5kaXIiKTsKKwkJCXMgPSBzICsgREFUQV9QQVRIOworCQl9CisJCQorCQlGaWxlIGYgPSBuZXcgRmlsZShzKTsKKwkJaWYgKCFmLmV4aXN0cygpKSB7CisJCQl0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcigiY2Fubm90IGZpbmQgSUNVIGRhdGEgcm9vdCAnIiArIGYuZ2V0QWJzb2x1dGVQYXRoKCkgKyAiJywgdHJ5IGRlZmluaW5pbmcgIiArIERBVEFfUEFUSF9QUk9QRVJUWSk7CisJCX0KKworCQlyZXR1cm4gZjsKKwl9CisKKwkvKioKKwkgKiBSZXR1cm4gdGhlIGRhdGEgZmlsZSBhdCBwYXRoICduYW1lJyByb290ZWQgYXQgdGhlIGRhdGEgcGF0aC4KKwkgKiBGb3IgZXhhbXBsZSwgPHByZT5nZXREYXRhRmlsZSgidW5pY29kZS9Vbmljb2RlRGF0YS50eHQiKTs8L3ByZT4KKwkgKi8KKwlwdWJsaWMgc3RhdGljIGZpbmFsIEZpbGUgZ2V0RGF0YUZpbGUoU3RyaW5nIG5hbWUpIHsKKwkJRmlsZSBmID0gbmV3IEZpbGUoZ2V0RGF0YVBhdGhSb290KCksIG5hbWUpOworCQlpZiAoIWYuZXhpc3RzKCkpIHsKKwkJCXRocm93IG5ldyBJbnRlcm5hbEVycm9yKCJjYW5ub3QgZmluZCBJQ1UgZGF0YSBmaWxlICciICsgZi5nZXRBYnNvbHV0ZVBhdGgoKSArICInIik7CisJCX0KKworCQlyZXR1cm4gZjsKKwl9CisKKwkvKioKKwkgKiBSZXR1cm4gYSBidWZmZXJlZCByZWFkZXIgb24gdGhlIGRhdGEgZmlsZSBhdCBwYXRoICduYW1lJyByb290ZWQgYXQgdGhlIGRhdGEgcGF0aAorCSAqIHdpdGggaW5pdGlhbCBidWZmZXIgc2l6ZSAnYnVmU2l6ZScuCisJICovCisJcHVibGljIHN0YXRpYyBmaW5hbCBCdWZmZXJlZFJlYWRlciBnZXREYXRhUmVhZGVyKFN0cmluZyBuYW1lLCBpbnQgYnVmU2l6ZSkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKwkJRmlsZSBmID0gZ2V0RGF0YUZpbGUobmFtZSk7CisJCUZpbGVSZWFkZXIgZnIgPSBuZXcgRmlsZVJlYWRlcihmKTsKKwkJQnVmZmVyZWRSZWFkZXIgYnIgPSBuZXcgQnVmZmVyZWRSZWFkZXIoZnIsIGJ1ZlNpemUpOworCQlyZXR1cm4gYnI7CisJfQorCisJLyoqCisJICogUmV0dXJuIGEgYnVmZmVyZWQgcmVhZGVyIG9uIHRoZSBkYXRhIGZpbGUgYXQgcGF0aCAnbmFtZScgcm9vdGVkIGF0IHRoZSBkYXRhIHBhdGguCisJICovCisJcHVibGljIHN0YXRpYyBmaW5hbCBCdWZmZXJlZFJlYWRlciBnZXREYXRhUmVhZGVyKFN0cmluZyBuYW1lKSB0aHJvd3MgSU9FeGNlcHRpb24geworCQlyZXR1cm4gZ2V0RGF0YVJlYWRlcihuYW1lLCAxMDI0KTsKKwl9CisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9iaWdkZWMvRGlhZ0JpZ0RlY2ltYWwuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9iaWdkZWMvRGlhZ0JpZ0RlY2ltYWwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mY2U4OTMzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2JpZ2RlYy9EaWFnQmlnRGVjaW1hbC5qYXZhCkBAIC0wLDAgKzEsNTM0MiBAQAorLyogR2VuZXJhdGVkIGZyb20gJ0RpYWdCaWdEZWNpbWFsLm5yeCcgMjcgTWFyIDIwMDAgMjI6Mzg6NDQgW3YxLjE2Ml0gKi8KKy8qIE9wdGlvbnM6IEJpbmFyeSBDb21tZW50cyBDcm9zc3JlZiBGb3JtYXQgSmF2YSBMb2dvIFRyYWNlMSBWZXJib3NlMyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5iaWdkZWM7CitpbXBvcnQgamF2YS5tYXRoLkJpZ0ludGVnZXI7CitpbXBvcnQgY29tLmlibS5pY3UubWF0aC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKy8qIERlY2ltYWwgZGlhZ25vc3RpYyB0ZXN0cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1mYyAqLworLyogQ29weXJpZ2h0IChjKSBJQk0gQ29ycG9yYXRpb24gMTk5NiwgMjAwMC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICovCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKy8qIERpYWdCaWdEZWNpbWFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgIEEgY2xhc3MgdGhhdCB0ZXN0cyB0aGUgQmlnRGVjaW1hbCBhbmQgTWF0aENvbnRleHQgY2xhc3Nlcy4gICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICBUaGUgdGVzdHMgaGVyZSBhcmUgZGVyaXZlZCBmcm9tIG9yIGNvdmVyIHRoZSBzYW1lIHBhdGhzIGFzOiAgICAgICovCisvKiAgICAgIC0tIEFOU0kgWDMtMjc0IHRlc3RjYXNlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgLS0gSmF2YSBKQ0sgdGVzdGNhc2VzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAtLSBOZXRSZXh4IHRlc3RjYXNlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgIC0tIFZNL0NNUyBTLzM3MCBSRVhYIGltcGxlbWVudGF0aW9uIHRlc3RjYXNlcyBbMTk4MStdICAgICAgICAgKi8KKy8qICAgICAgLS0gSUJNIFZpZW5uYSBMYWJvcmF0b3J5IFJleHggY29tcGlsZXIgdGVzdGNhc2VzIFsxOTg4K10gICAgICAqLworLyogICAgICAtLSBOZXcgdGVzdGNhc2VzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgVGhlIGF1dGhvcml0YXRpdmUgc291cmNlcyBmb3IgaG93IHRoZSB1bmRlcmx5aW5nIHRlY2hub2xvZ3kgICAgICAqLworLyogICAoYXJpdGhtZXRpYykgc2hvdWxkIHdvcmsgYXJlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgIC0tIGZvciBkaWdpdHM9MCAoZml4ZWQgcG9pbnQpOiBqYXZhLm1hdGguQmlnRGVjaW1hbCAgICAgICAgICAgKi8KKy8qICAgICAgLS0gZm9yIGRpZ2l0cz4wIChmbG9hdGluZyBwb2ludCk6IEFOU0kgWDMuMjc0LTE5OTYgKyBlcnJhdGEgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKy8qIENoYW5nZSBsaXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogMTk5Ny4wOS4wNSBJbml0aWFsIGltcGxlbWVudGF0aW9uLCBmcm9tIERpYWdSZXh4IFtOZXRSZXh4IHRlc3RzXSAgICovCisvKiAxOTk4LjA1LjAyIDAuMDcgY2hhbmdlcyAoZS5nLiwgY29tcGFyZVRvKSAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTguMDYuMDYgUm91bmRpbmcgbW9kZXMgYW5kIGZvcm1hdCBhZGRpdGlvbnMgICAgICAgICAgICAgICAgICAgICAqLworLyogMTk5OC4wNi4yNSBSZW5hbWUgZnJvbSBEaWFnRGVjaW1hbDsgbWFrZSBzdGFuZC1hbG9uZSBbYWRkICAgICAgICAgICovCisvKiAgICAgICAgICAgIERpYWdFeGNlcHRpb24gYXMgYSBNaW5vciBjbGFzc10gICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTguMDYuMjcgU3RhcnQgYWRkaW5nIHRlc3RjYXNlcyBmb3IgRElHSVRTPTAvRk9STT1QTEFJTiBjYXNlcyAgICAqLworLyogICAgICAgICAgICBSZW9yZ2FuaXplIGZvciBmYXN0ZXIgdHJhY2UgY29tcGlsYXRpb24gICAgICAgICAgICAgICAgICovCisvKiAxOTk4LjA2LjI4IG5ldzogdmFsdWVvZiwgc2NhbGUsIG1vdmVQb2ludFgsIHVuc2NhbGVkVmFsdWUsIGV0Yy4gICAgKi8KKy8qIDE5OTguMDcuMDcgU2NhbGVkIGRpdmlkZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogMTk5OC4wNy4wOCBzZXRTY2FsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk4LjA3LjE1IG5ldyBzY2FmZm9sZGluZyAoTWlub3IgVGVzdCBjbGFzcykgLS0gc2VlIGRpYWdhYnMgICAgICAgKi8KKy8qIDE5OTguMTIuMTQgYWRkIHRvQmlnRGVjaW1hbCBhbmQgQmlnRGVjaW1hbChqYXZhLm1hdGguQmlnRGVjaW1hbCkgICAqLworLyogMTk5OS4wMi4wNCBudW1iZXIgcHJlcGFyYXRpb24gcm91bmRzIGluc3RlYWQgb2YgZGlnaXRzKzEgdHJ1bmMgICAgICovCisvKiAxOTk5LjAyLjA5IGZvcm1hdCBtZXRob2Qgbm93IG9ubHkgaGFzIHR3byBzaWduYXR1cmVzICAgICAgICAgICAgICAgKi8KKy8qIDE5OTkuMDIuMjcgbm8gbG9uZ2VyIHVzZSBSZXh4IGNsYXNzIG9yIFJleHhJTyBjbGFzcyAgICAgICAgICAgICAgICAqLworLyogMTk5OS4wMy4wNSBhZGQgTWF0aENvbnRleHQgdGVzdHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk5LjAzLjA1IHVwZGF0ZSBmb3IgMC45NiBbbm8gbnVsbCBzZXR0aW5ncywgZXRjLl0gICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICAgZHJvcCBzdW5kcnkgY29uc3RydWN0b3JzOyBubyBibGFua3M7IGNoYXJbXSBnZXRzIGludHMgICAqLworLyogICAgICAgICAgICBkcm9wIHN1bmRyeSBjb252ZXJ0ZXJzLCBhZGQgRXhhY3QgY29udmVydGVycyAgICAgICAgICAgICovCisvKiAxOTk5LjA1LjI3IGFkZGl0aW9uYWwgdGVzdHMgZm9yIHNjYWxlZCBhcml0aG1ldGljICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTkuMDYuMjkgYWRkaXRpb25hbCB0ZXN0cyBmb3IgZXhwb25lbnQgb3ZlcmZsb3dzICAgICAgICAgICAgICAgICAqLworLyogMTk5OS4wNy4wMyBhZGQgJ2NvbnRpbnVlJyBvcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk5LjA3LjEwIGFkZGl0aW9uYWwgdGVzdHMgZm9yIHNjYWxlZCBhcml0aG1ldGljICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTkuMDcuMTggcmFuZG9tbHktZ2VuZXJhdGVkIHRlc3RzIGFkZGVkIGZvciBiYXNlIG9wZXJhdG9ycyAgICAgICAqLworLyogMTk5OS4xMC4yOCB3ZWlyZCBpbnRWYWx1ZUV4YWN0IGJhZCBjYXNlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk5LjEyLjIxIG11bHRpcGxpY2F0aW9uIGZhc3QgcGF0aCBmYWlsdXJlIGFuZCBlZGdlIGNhc2VzICAgICAgICAgKi8KKy8qIDIwMDAuMDEuMDEgY29weXJpZ2h0IHVwZGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogMjAwMC4wMy4yNiBjb3NtZXRpYyB1cGRhdGVzOyBhZGQgZXh0cmEgZm9ybWF0KCkgdGVzdGNhc2VzICAgICAgICAgICovCisvKiAyMDAwLjAzLjI3IDEuMDAgbW92ZSB0byBjb20uaWJtLmljdS5tYXRoIHBhY2thZ2U7IG9wZW4gc291cmNlIHJlbGVhc2U7ICovCisvKiAgICAgICAgICAgICAgICAgY2hhbmdlIHRvIGphdmFkb2MgY29tbWVudHMgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisvLyBub3RlIEJJTkFSWSBmb3IgY29udmVyc2lvbnMgY2hlY2tpbmcKKworCisKKworLyoqCisgKiBUaGUgPGNvZGU+RGlhZ0JpZ0RlY2ltYWw8L2NvZGU+IGNsYXNzIGZvcm1zIGEgc3RhbmRhbG9uZSB0ZXN0IHN1aXRlCisgKiBmb3IgdGhlIDxjb2RlPmNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbDwvY29kZT4gYW5kCisgKiA8Y29kZT5jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0PC9jb2RlPiBjbGFzc2VzIChvciwgYnkgY2hhbmdpbmcgdGhlCisgKiA8Y29kZT5wYWNrYWdlPC9jb2RlPiBzdGF0ZW1lbnQsIG90aGVyIGNsYXNzZXMgb2YgdGhlIHNhbWUgbmFtZXMgYW5kCisgKiBkZWZpbml0aW9uIGluIG90aGVyIHBhY2thZ2VzKS4gIEl0IG1heSBhbHNvIGJlIHVzZWQgYXMgYSBjb25zdHJ1Y3RlZAorICogb2JqZWN0IHRvIGVtYmVkIHRoZSB0ZXN0cyBpbiBhbiBleHRlcm5hbCB0ZXN0IGhhcm5lc3MuCisgKiA8cD4KKyAqIFRoZSB0ZXN0cyBhcmUgY29sbGVjdGVkIGludG8gPGk+Z3JvdXBzPC9pPiwgZWFjaCBjb3JyZXNwb25kaW5nIHRvIGEKKyAqIHRlc3RlZCBtZXRob2Qgb3IgYSBtb3JlIGdlbmVyYWwgZ3JvdXBpbmcuICBCeSBkZWZhdWx0LCB3aGVuIHJ1biBmcm9tCisgKiB0aGUgc3RhdGljIHtAbGluayAjbWFpbihqYXZhLmxhbmcuU3RyaW5nW10pfSBtZXRob2QsIHRoZSBydW4gd2lsbCBlbmQKKyAqIGlmIGFueSB0ZXN0IGZhaWxzIGluIGEgZ3JvdXAuICBUaGUgPGNvZGU+Y29udGludWU8L2NvZGU+IGFyZ3VtZW50IG1heQorICogYmUgc3BlY2lmaWVkIHRvIGZvcmNlIHRoZSB0ZXN0cyB0byBydW4gdG8gY29tcGxldGlvbi4KKyAqIDxwPgorICogVHdvIG1pbm9yIChpbm5lcikgY2xhc3NlcyBhcmUgdXNlZDsge0BsaW5rCisgKiBEaWFnQmlnRGVjaW1hbC5EaWFnRXhjZXB0aW9ufSBpcyB1c2VkIHRvIHNpZ25hbCB0aGUgZmFpbHVyZSBvZiBhIHRlc3QKKyAqIGdyb3VwLCBhbmQge0BsaW5rIERpYWdCaWdEZWNpbWFsLlRlc3R9LCBhIGRlcGVuZGVudCBtaW5vciBjbGFzcywgaXMKKyAqIHVzZWQgdG8gcmVnaXN0ZXIgdGVzdHMgc28gdGhhdCBhIHN1bW1hcnkgb2YgZmFpbHVyZXMgKG9yIHN1Y2Nlc3MpIGNhbiBiZQorICogcHJlc2VudGVkIGFzIGVhY2ggZ3JvdXAgaXMgY29tcGxldGVkLgorICoKKyAqIEBzZWUgICAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbAorICogQHNlZSAgICAgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dAorICogQHZlcnNpb24gMS4wMCAyMDAwLjAzLjI3CisgKiBAYXV0aG9yICBNaWtlIENvd2xpc2hhdworICovCisKK3B1YmxpYyBjbGFzcyBEaWFnQmlnRGVjaW1hbCBleHRlbmRzIFRlc3RGbXdreworIHByaXZhdGUgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgJDA9IkRpYWdCaWdEZWNpbWFsLm5yeCI7CisgCisgLyogcHJvcGVydGllcyBzaGFyZWQgKi8KKyBqYXZhLnV0aWwuVmVjdG9yIFRlc3RzPW5ldyBqYXZhLnV0aWwuVmVjdG9yKDEwMCk7IC8vIHNjYWZmb2xkaW5nCisgCisgLyogcHJvcGVydGllcyBwcml2YXRlICovCisgcHJpdmF0ZSBpbnQgdG90YWxjb3VudD0wOyAvLyBjb3VudHMgdGVzdHMgcnVuCisgCisgLyogcHJvcGVydGllcyBjb25zdGFudCBwcml2YXRlICovCisgCisgLyogQ291bnQgb2YgdGVzdCBncm91cHMgKi8KKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgdGVzdGNvdW50PTM4OworIAorIHByaXZhdGUgc3RhdGljIGZpbmFsIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCB6ZXJvPWNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5aRVJPOworIHByaXZhdGUgc3RhdGljIGZpbmFsIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBvbmU9Y29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORTsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgdHdvPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMik7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHRlbj1jb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuVEVOOworIHByaXZhdGUgc3RhdGljIGZpbmFsIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCB0ZW5sb25nPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoKGxvbmcpMTIzNDU1NDMyMSk7IC8vIDEwLWRpZ2l0ZXIKKyAKKyAvKiBTb21lIGNvbnRleHQgb2JqZWN0cyAtLSBbc29tZSBvZiB0aGVzZSBhcmUgY2hlY2tlZCBsYXRlcl0gKi8KKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jZGVmPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuREVGQVVMVDsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jMz1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgzKTsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jNj1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCg2KTsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jOT1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCg5KTsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jNTA9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoNTApOworIHByaXZhdGUgc3RhdGljIGZpbmFsIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgbWNzPW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDksY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDKTsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jZT1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCg5LGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuRU5HSU5FRVJJTkcpOworIHByaXZhdGUgc3RhdGljIGZpbmFsIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgbWNsZD1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCg5LGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuU0NJRU5USUZJQyx0cnVlKTsgLy8gbG9zdCBkaWdpdHMKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jbGQwPW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDLHRydWUpOyAvLyBsb3N0IGRpZ2l0cywgZGlnaXRzPTAKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jZmQ9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOKTsgLy8gZml4ZWQgZGVjaW1hbCBzdHlsZQorIAorIC8qIGJvdW5kYXJ5IHByaW1pdGl2ZSB2YWx1ZXMgKi8KKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIGJtaW49LTEyODsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIGJtYXg9MTI3OworIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgYnplcj0wOworIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgYm5lZz0tMTsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIGJwb3M9MTsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgaW1pbj0tMjE0NzQ4MzY0ODsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgaW1heD0yMTQ3NDgzNjQ3OworIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBpemVyPTA7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGluZWc9LTE7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGlwb3M9MTsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIGxtaW49LTkyMjMzNzIwMzY4NTQ3NzU4MDhMOworIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgbG1heD05MjIzMzcyMDM2ODU0Nzc1ODA3TDsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIGx6ZXI9KGxvbmcpMDsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIGxuZWc9KGxvbmcpLTE7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBscG9zPShsb25nKTE7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc2hvcnQgc21pbj0tMzI3Njg7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc2hvcnQgc21heD0zMjc2NzsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBzaG9ydCBzemVyPShzaG9ydCkwOworIHByaXZhdGUgc3RhdGljIGZpbmFsIHNob3J0IHNuZWc9KHNob3J0KSgtMSk7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc2hvcnQgc3Bvcz0oc2hvcnQpMTsKKyAKKyAKKyAvKiBwcm9wZXJ0aWVzIGNvbnN0YW50IHByaXZhdGUgdW51c2VkICovIC8vIHByZXNlbnQgYnV0IG5vdCByZWZlcmVuY2VkCisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyBjb3B5cmlnaHQ9IiBDb3B5cmlnaHQgKGMpIElCTSBDb3Jwb3JhdGlvbiAxOTk2LCAyMDAwLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIjsKKworIAorIC8qKiBDb25zdHJ1Y3RzIGEgPGNvZGU+RGlhZ0JpZ0RlY2ltYWw8L2NvZGU+IHRlc3Qgc3VpdGUuCisgICAqIDxwPgorICAgKiBJbnZva2UgaXRzIHtAbGluayAjZGlhZ3J1bn0gbWV0aG9kIHRvIHJ1biB0aGUgdGVzdHMuCisgICAqLworIAorIHB1YmxpYyBEaWFnQmlnRGVjaW1hbCgpe3N1cGVyKCk7CisgIHJldHVybjsKKyAgfQorCisgLyoqIFJ1biB0aGUgdGVzdHMgaW4gdGhlIHRlc3Qgc3VpdGUuCisgICoKKyAgKiBAcGFyYW0gaXNDb250aW51ZSBUaGUgPGNvZGU+Ym9vbGVhbjwvY29kZT4gd2hpY2ggZGV0ZXJtaW5lcyB3aGV0aGVyCisgICogICAgICAgICAgICAgICAgICAgdG8gc3RvcCBydW5uaW5nIGFmdGVyIGEgZ3JvdXAgZmFpbHMuICBJZiAxICh0cnVlKQorICAqICAgICAgICAgICAgICAgICAgIHRoZW4gdGhlIHRlc3RzIHNob3VsZCBiZSBydW4gdG8gY29tcGxldGlvbiBpZgorICAqICAgICAgICAgICAgICAgICAgIHBvc3NpYmxlOyBpZiAwIChmYWxzZSkgdGhlbiB0aGUgcnVuIHdpbGwgZW5kIGlmIGEKKyAgKiAgICAgICAgICAgICAgICAgICBncm91cCBmYWlscy4KKyAgKiBAcmV0dXJuIGFuIDxjb2RlPmludDwvY29kZT4gd2hpY2ggaXMgMCBpZiBhbGwgdGVzdHMgd2VyZQorICAqIHN1Y2Nlc3NmdWwsID4wICh0aGUgY291bnQgb2YgZmFpbHVyZXMpIGlmIHNvbWUgZmFpbHVyZXMgd2VyZQorICAqIGRldGVjdGVkLCBvciA8MCBpZiBhbiB1bmV4cGVjdGVkIEV4Y2VwdGlvbiB3YXMgc2lnbmFsbGVkLgorICAqLworIAorIHB1YmxpYyBpbnQgZGlhZ3J1bihib29sZWFuIGlzQ29udGludWUpeworICBpbnQgZmFpbHM7CisgIGludCBudW09MDsKKyAgRGlhZ0V4Y2VwdGlvbiBkZT1udWxsOworICBqYXZhLmxhbmcuUnVudGltZUV4Y2VwdGlvbiBlPW51bGw7CisgIGphdmEubGFuZy5TdHJpbmcgcmVzdD1udWxsOworICAKKyAgZmFpbHM9MDsgLy8gY291bnQgb2YgZmFpbHVyZXMKKyAgdHJ5e251bT0xO251bTpmb3IoO251bTw9dGVzdGNvdW50O251bSsrKXsgLy8gW3Rlc3Rjb3VudCBpcyBjb25zdGFudCBzZXQgYWJvdmVdCisgICB0cnl7CisgICAgZG90ZXN0KG51bSk7CisgICB9CisgICBjYXRjaCAoRGlhZ0V4Y2VwdGlvbiAkMSl7ZGU9JDE7CisgICAgc2F5KCk7CisgICAgZXJybG4oIioqKiogRmFpbGVkOiIrIiAiK2RlLmdldE1lc3NhZ2UoKSsiICIrIioqKioiKTsKKyAgICBzYXkoKTsKKyAgICBmYWlscz1mYWlscytkZS5mYWlsY291bnQ7CisgICAgaWYgKCghaXNDb250aW51ZSkpIAorICAgICBicmVhayBudW07CisgICB9CisgICB9CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5SdW50aW1lRXhjZXB0aW9uICQyKXtlPSQyOyAvLyBhbnkgb3RoZXIgZXhjZXB0aW9uIGlzIHRvdGFsIGZhaWx1cmU7IGp1c3Qgc2hvdyB0cmFjZSBhbmQgcXVpdAorICAgc2F5KCk7CisgICBlcnJsbigiKioqKiBGYWlsZWQ6IHVuZXhwZWN0ZWQgZXhjZXB0aW9uICoqKioiKTsKKyAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICByZXR1cm4gLTE7CisgIH0vKm51bSovCisgIAorICBpZiAoZmFpbHM9PTApIAorICAgc2F5KCItLS0gQWxsIE9LIC0tLSIrIiAiK3JpZ2h0KCJbIit0b3RhbGNvdW50KyIgIisidGVzdHNdIiwxNSkpOworICBlbHNlIAorICAgeworICAgIGlmIChpc0NvbnRpbnVlKSAKKyAgICAgeworICAgICAgaWYgKGZhaWxzPjEpIAorICAgICAgIHJlc3Q9InRlc3RzIjsKKyAgICAgIGVsc2UgCisgICAgICAgcmVzdD0idGVzdCI7CisgICAgICBzYXkoIi0tLSBBbGwgcnVuIC0tLSIrIiAiK3JpZ2h0KCJbIit0b3RhbGNvdW50KyIgIisidGVzdHMsIiwxNCkrIiAiKyJmYWlsZWQiKyIgIitmYWlscysiICIrcmVzdCsiXSIpOworICAgICAKKyAgICAgfQorICAgfQorICAKKyAgcmV0dXJuIGZhaWxzOworICB9CisKKyAvKiBSdW4gdGVzdCBieSBudW1iZXIgLS0gbWV0aG9kIGZvciBkZXZlbG9wbWVudC9wcml2YXRlIHN3aXRjaGluZyAqLworIAorIHByaXZhdGUgdm9pZCBkb3Rlc3QoaW50IG51bSl7CisgIHsvKnNlbGVjdCovc3dpdGNoKG51bSl7CisgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworICAgLyogTWF0aENvbnRleHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgIGNhc2UgMToKKyAgIGRpYWdtYXRoY29udGV4dCgpO2JyZWFrOworICAgCisgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworICAgLyogQ29uc3RydWN0b3JzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgIGNhc2UgMjoKKyAgIGRpYWdjb25zdHJ1Y3RvcnMoKTticmVhazsKKyAgIAorICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAgIC8qIE9wZXJhdG9yIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworICBjYXNlIDM6CisgICBkaWFnYWJzKCk7YnJlYWs7CisgIGNhc2UgNDoKKyAgIGRpYWdhZGQoKTticmVhazsKKyAgY2FzZSA1OgorICAgZGlhZ2NvbXBhcmV0bygpO2JyZWFrOworICBjYXNlIDY6CisgICBkaWFnZGl2aWRlKCk7YnJlYWs7CisgIGNhc2UgNzoKKyAgIGRpYWdkaXZpZGVJbnRlZ2VyKCk7YnJlYWs7CisgIGNhc2UgODoKKyAgIGRpYWdtYXgoKTticmVhazsKKyAgY2FzZSA5OgorICAgZGlhZ21pbigpO2JyZWFrOworICBjYXNlIDEwOgorICAgZGlhZ211bHRpcGx5KCk7YnJlYWs7CisgIGNhc2UgMTE6CisgICBkaWFnbmVnYXRlKCk7YnJlYWs7CisgIGNhc2UgMTI6CisgICBkaWFncGx1cygpO2JyZWFrOworICBjYXNlIDEzOgorICAgZGlhZ3BvdygpO2JyZWFrOworICBjYXNlIDE0OgorICAgZGlhZ3JlbWFpbmRlcigpO2JyZWFrOworICBjYXNlIDE1OgorICAgZGlhZ3N1YnRyYWN0KCk7YnJlYWs7CisgIGNhc2UgMTY6CisgICBkaWFnbWF0aCgpO2JyZWFrOyAvLyBnZW5lcmFsIG1hdGgKKyAgIAorICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAgIC8qIE90aGVyIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworICBjYXNlIDE3OgorICAgZGlhZ2J5dGVWYWx1ZSgpO2JyZWFrOworICBjYXNlIDE4OgorICAgZGlhZ2NvbXBhcmV0b09iaigpO2JyZWFrOworICBjYXNlIDE5OgorICAgZGlhZ2RvdWJsZXZhbHVlKCk7YnJlYWs7CisgIGNhc2UgMjA6CisgICBkaWFnZXF1YWxzKCk7YnJlYWs7CisgIGNhc2UgMjE6CisgICBkaWFnZmxvYXR2YWx1ZSgpO2JyZWFrOworICBjYXNlIDIyOgorICAgZGlhZ2Zvcm1hdCgpO2JyZWFrOworICBjYXNlIDIzOgorICAgZGlhZ2hhc2hjb2RlKCk7YnJlYWs7CisgIGNhc2UgMjQ6CisgICBkaWFnaW50dmFsdWUoKTticmVhazsKKyAgY2FzZSAyNToKKyAgIGRpYWdsb25ndmFsdWUoKTticmVhazsKKyAgY2FzZSAyNjoKKyAgIGRpYWdtb3ZlcG9pbnRsZWZ0KCk7YnJlYWs7CisgIGNhc2UgMjc6CisgICBkaWFnbW92ZXBvaW50cmlnaHQoKTticmVhazsKKyAgY2FzZSAyODoKKyAgIGRpYWdzY2FsZSgpO2JyZWFrOworICBjYXNlIDI5OgorICAgZGlhZ3NldHNjYWxlKCk7YnJlYWs7CisgIGNhc2UgMzA6CisgICBkaWFnc2hvcnR2YWx1ZSgpO2JyZWFrOworICBjYXNlIDMxOgorICAgZGlhZ3NpZ251bSgpO2JyZWFrOworICBjYXNlIDMyOgorICAgZGlhZ3RvYmlnZGVjaW1hbCgpO2JyZWFrOworICBjYXNlIDMzOgorICAgZGlhZ3RvYmlnaW50ZWdlcigpO2JyZWFrOworICBjYXNlIDM0OgorICAgZGlhZ3RvY2hhcmFycmF5KCk7YnJlYWs7CisgIGNhc2UgMzU6CisgICBkaWFndG9zdHJpbmcoKTticmVhazsKKyAgY2FzZSAzNjoKKyAgIGRpYWd1bnNjYWxlZHZhbHVlKCk7YnJlYWs7CisgIGNhc2UgMzc6CisgICBkaWFndmFsdWVvZigpO2JyZWFrOworICAgCisgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworICAgLyogTXV0YXRpb24gdGVzdCBbbXVzdCBiZSB0aGUgbGFzdCB0ZXN0XSAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgIGNhc2UgMzg6CisgICBkaWFnbXV0YXRpb24oKTticmVhazsKKyAgIC8vIGlmIGFueSBtb3JlLCBpbmNyZWFzZSB0ZXN0Y291bnQgYWJvdmUKKyAgZGVmYXVsdDp7CisgICBzYXkoIioqKiBkb3Rlc3QgY2FzZSBub3QgZm91bmQ6IisiICIrbnVtKyIgIisiKioqIik7CisgIH19CisgIH0KKyAgcmV0dXJuOworICB9CisKKyAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyAvKiBEaWFnbm9zdGljIGdyb3VwIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyAKKyAvKiogVGVzdCBjb25zdHJ1Y3RvcnMgKGFuZCB7QGxpbmsgI3RvU3RyaW5nKCl9IGZvciBlcXVhbGl0aWVzKS4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnY29uc3RydWN0b3JzKCl7CisgIGJvb2xlYW4gZmxhZz1mYWxzZTsKKyAgamF2YS5sYW5nLlN0cmluZyBudW07CisgIGphdmEubWF0aC5CaWdJbnRlZ2VyIGJpcDsKKyAgamF2YS5tYXRoLkJpZ0ludGVnZXIgYml6OworICBqYXZhLm1hdGguQmlnSW50ZWdlciBiaW47CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBiZGE7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBiZGI7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBibWM7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBibWQ7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBibWU7CisgIGphdmEubGFuZy5SdW50aW1lRXhjZXB0aW9uIGU9bnVsbDsKKyAgY2hhciBjYVtdOworICBkb3VibGUgZHplcjsKKyAgZG91YmxlIGRwb3M7CisgIGRvdWJsZSBkbmVnOworICBkb3VibGUgZHBvczU7CisgIGRvdWJsZSBkbmVnNTsKKyAgZG91YmxlIGRtaW47CisgIGRvdWJsZSBkbWF4OworICBkb3VibGUgZDsKKyAgamF2YS5sYW5nLlN0cmluZyBiYWRzdHJpbmdzW107CisgIGludCBpPTA7CisgIAorICAvLyBjb25zdGFudHMgW3N0YXRpY2FsbHktY2FsbGVkIGNvbnN0cnVjdG9yc10KKyAgKG5ldyBUZXN0KCJjb24wMDEiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5aRVJPLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImNvbjAwMiIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJjb24wMDMiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5URU4udG9TdHJpbmcoKSkuZXF1YWxzKCIxMCIpOworICAobmV3IFRlc3QoImNvbjAwNCIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlpFUk8uaW50VmFsdWVFeGFjdCgpKT09MDsKKyAgKG5ldyBUZXN0KCJjb24wMDUiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUuaW50VmFsdWVFeGFjdCgpKT09MTsKKyAgKG5ldyBUZXN0KCJjb24wMDYiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5URU4uaW50VmFsdWVFeGFjdCgpKT09MTA7CisgIAorICAvLyBbamF2YS5tYXRoLl0gQmlnRGVjaW1hbAorICAobmV3IFRlc3QoImNiZDAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobmV3IGphdmEubWF0aC5CaWdEZWNpbWFsKCIwIikpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJjYmQwMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKG5ldyBqYXZhLm1hdGguQmlnRGVjaW1hbCgiMSIpKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgiY2JkMDAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChuZXcgamF2YS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpKS50b1N0cmluZygpKS5lcXVhbHMoIjEwIik7CisgIChuZXcgVGVzdCgiY2JkMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChuZXcgamF2YS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAiKSkpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwMCIpOworICAobmV3IFRlc3QoImNiZDAwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobmV3IGphdmEubWF0aC5CaWdEZWNpbWFsKCIxMC4wIikpKS50b1N0cmluZygpKS5lcXVhbHMoIjEwLjAiKTsKKyAgKG5ldyBUZXN0KCJjYmQwMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKG5ldyBqYXZhLm1hdGguQmlnRGVjaW1hbCgiMTAuMSIpKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMC4xIik7CisgIChuZXcgVGVzdCgiY2JkMDA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChuZXcgamF2YS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjEiKSkpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEuMSIpOworICAobmV3IFRlc3QoImNiZDAwOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobmV3IGphdmEubWF0aC5CaWdEZWNpbWFsKCItOS4wIikpKS50b1N0cmluZygpKS5lcXVhbHMoIi05LjAiKTsKKyAgKG5ldyBUZXN0KCJjYmQwMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKG5ldyBqYXZhLm1hdGguQmlnRGVjaW1hbCgiMC45IikpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuOSIpOworICAKKyAgbnVtPSIxMjM0NTY3ODkuMTIzNDU2Nzg5IjsKKyAgKG5ldyBUZXN0KCJjYmQwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKG5ldyBqYXZhLm1hdGguQmlnRGVjaW1hbChudW0pKSkudG9TdHJpbmcoKSkuZXF1YWxzKG51bSk7CisgIG51bT0iMTIzNDU2Nzg5LjAwMDAwMDAwMCI7CisgIChuZXcgVGVzdCgiY2JkMDExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChuZXcgamF2YS5tYXRoLkJpZ0RlY2ltYWwobnVtKSkpLnRvU3RyaW5nKCkpLmVxdWFscyhudW0pOworICBudW09IjEyMzQ1Njc4OTAwMDAwMDAwMCI7CisgIChuZXcgVGVzdCgiY2JkMDEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChuZXcgamF2YS5tYXRoLkJpZ0RlY2ltYWwobnVtKSkpLnRvU3RyaW5nKCkpLmVxdWFscyhudW0pOworICBudW09IjAuMDAwMDAxMjM0NTY3ODkiOworICAobmV3IFRlc3QoImNiZDAxMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobmV3IGphdmEubWF0aC5CaWdEZWNpbWFsKG51bSkpKS50b1N0cmluZygpKS5lcXVhbHMobnVtKTsKKyAgbnVtPSIwLjAwMDAwMDEyMzQ1Njc4OSI7CisgIChuZXcgVGVzdCgiY2JkMDE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChuZXcgamF2YS5tYXRoLkJpZ0RlY2ltYWwobnVtKSkpLnRvU3RyaW5nKCkpLmVxdWFscyhudW0pOworICAKKyAgdHJ5e2NoZWNrbnVsbDpkb3sKKyAgIG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoKGphdmEubWF0aC5CaWdEZWNpbWFsKW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDMpeworICAgZmxhZz10cnVlOworICB9LypjaGVja251bGwqLworICAobmV3IFRlc3QoImNiaTAxNSIpKS5vaz1mbGFnOworICAKKyAgLy8gQmlnSW50ZWdlcgorICBiaXA9bmV3IEJpZ0ludGVnZXIoIjk4NzY1NDMyMTk4NzY1NDMyMTk4NzY1NDMyMSIpOyAvLyBiaWdnaWUgK3ZlCisgIGJpej1uZXcgQmlnSW50ZWdlcigiMCIpOyAvLyBiaWdnaWUgMAorICBiaW49bmV3IEJpZ0ludGVnZXIoIi0xMjM0NTY3ODk5ODc2NTQzMjExMjM0NTY3OCIpOyAvLyBiaWdnaWUgLXZlCisgIChuZXcgVGVzdCgiY2JpMDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChiaXApKS50b1N0cmluZygpKS5lcXVhbHMoYmlwLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoImNiaTAwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYml6KSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiY2JpMDAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChiaW4pKS50b1N0cmluZygpKS5lcXVhbHMoYmluLnRvU3RyaW5nKCkpOworICB0cnl7Y2hlY2tudWxsOmRveworICAgbmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgoamF2YS5tYXRoLkJpZ0ludGVnZXIpbnVsbCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiAkNCl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbCovCisgIChuZXcgVGVzdCgiY2JpMDA0IikpLm9rPWZsYWc7CisgIAorICAvLyBCaWdJbnRlZ2VyIHdpdGggc2NhbGUKKyAgYmlwPW5ldyBCaWdJbnRlZ2VyKCIxMjM0NTY3ODkiKTsgLy8gYmlnaXNoCisgIGJkYT1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJpcCk7CisgIGJkYj1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJpcCw1KTsKKyAgYm1jPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYmlwLDE1KTsKKyAgKG5ldyBUZXN0KCJjYnMwMDEiKSkub2s9KGJkYS50b1N0cmluZygpKS5lcXVhbHMoIjEyMzQ1Njc4OSIpOworICAobmV3IFRlc3QoImNiczAwMiIpKS5vaz0oYmRiLnRvU3RyaW5nKCkpLmVxdWFscygiMTIzNC41Njc4OSIpOworICAobmV3IFRlc3QoImNiczAwMyIpKS5vaz0oYm1jLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMDAxMjM0NTY3ODkiKTsKKyAgYmlwPW5ldyBCaWdJbnRlZ2VyKCIxMjM0NTY3ODkxMjM0NTY3ODkxMjM0NTY3ODkiKTsgLy8gYmlnZ2llCisgIGJkYT1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJpcCk7CisgIGJkYj1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJpcCw3KTsKKyAgYm1jPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYmlwLDEzKTsKKyAgYm1kPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYmlwLDE5KTsKKyAgYm1lPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYmlwLDI5KTsKKyAgKG5ldyBUZXN0KCJjYnMwMTEiKSkub2s9KGJkYS50b1N0cmluZygpKS5lcXVhbHMoIjEyMzQ1Njc4OTEyMzQ1Njc4OTEyMzQ1Njc4OSIpOworICAobmV3IFRlc3QoImNiczAxMiIpKS5vaz0oYmRiLnRvU3RyaW5nKCkpLmVxdWFscygiMTIzNDU2Nzg5MTIzNDU2Nzg5MTIuMzQ1Njc4OSIpOworICAobmV3IFRlc3QoImNiczAxMyIpKS5vaz0oYm1jLnRvU3RyaW5nKCkpLmVxdWFscygiMTIzNDU2Nzg5MTIzNDUuNjc4OTEyMzQ1Njc4OSIpOworICAobmV3IFRlc3QoImNiczAxNCIpKS5vaz0oYm1kLnRvU3RyaW5nKCkpLmVxdWFscygiMTIzNDU2NzguOTEyMzQ1Njc4OTEyMzQ1Njc4OSIpOworICAobmV3IFRlc3QoImNiczAxNSIpKS5vaz0oYm1lLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDEyMzQ1Njc4OTEyMzQ1Njc4OTEyMzQ1Njc4OSIpOworICB0cnl7Y2hlY2tudWxsOmRveworICAgbmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgoamF2YS5tYXRoLkJpZ0ludGVnZXIpbnVsbCwxKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQ1KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsKi8KKyAgKG5ldyBUZXN0KCJjYnMwMDQiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrc2NhbGU6ZG97CisgICBuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJpcCwtOCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5SdW50aW1lRXhjZXB0aW9uICQ2KXtlPSQ2OworICAgZmxhZz0oZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiTmVnYXRpdmUgc2NhbGU6IC04Iik7CisgIH0vKmNoZWNrc2NhbGUqLworICAobmV3IFRlc3QoImNiczAwNSIpKS5vaz1mbGFnOworICAKKyAgLy8gY2hhcltdCisgIC8vIFdlIGp1c3QgdGVzdCBpdCdzIHRoZXJlCisgIC8vIEZ1bmN0aW9uYWxpdHkgaXMgdGVzdGVkIGJ5IEJpZ0RlY2ltYWwoU3RyaW5nKS4KKyAgY2E9KCIxMjMuNDUiKS50b0NoYXJBcnJheSgpOworICAobmV3IFRlc3QoImNjYTAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EpKS50b1N0cmluZygpKS5lcXVhbHMoIjEyMy40NSIpOworICB0cnl7Y2hlY2tudWxsOmRveworICAgbmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgoY2hhcltdKW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDcpeworICAgZmxhZz10cnVlOworICB9LypjaGVja251bGwqLworICAobmV3IFRlc3QoImNjYTAxMCIpKS5vaz1mbGFnOworICAKKyAgLy8gY2hhcltdLGludCxpbnQKKyAgLy8gV2UganVzdCB0ZXN0IGl0J3MgdGhlcmUsIGFuZCB0aGF0IG9mZnNldHMgd29yay4KKyAgLy8gRnVuY3Rpb25hbGl0eSBpcyB0ZXN0ZWQgYnkgQmlnRGVjaW1hbChTdHJpbmcpLgorICBjYT0oIjEyMy40NSIpLnRvQ2hhckFycmF5KCk7CisgIChuZXcgVGVzdCgiY2NhMTAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSwwLDYpKS50b1N0cmluZygpKS5lcXVhbHMoIjEyMy40NSIpOworICAobmV3IFRlc3QoImNjYTEwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsMSw1KSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyMy40NSIpOworICAobmV3IFRlc3QoImNjYTEwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsMiw0KSkudG9TdHJpbmcoKSkuZXF1YWxzKCIzLjQ1Iik7CisgIChuZXcgVGVzdCgiY2NhMTA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSwzLDMpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNDUiKTsKKyAgKG5ldyBUZXN0KCJjY2ExMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDQsMikpLnRvU3RyaW5nKCkpLmVxdWFscygiNDUiKTsKKyAgKG5ldyBUZXN0KCJjY2ExMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDUsMSkpLnRvU3RyaW5nKCkpLmVxdWFscygiNSIpOworICAKKyAgKG5ldyBUZXN0KCJjY2ExMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDAsMSkpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoImNjYTExMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsMSwxKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyIik7CisgIChuZXcgVGVzdCgiY2NhMTEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSwyLDEpKS50b1N0cmluZygpKS5lcXVhbHMoIjMiKTsKKyAgKG5ldyBUZXN0KCJjY2ExMTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDQsMSkpLnRvU3RyaW5nKCkpLmVxdWFscygiNCIpOworICAKKyAgKG5ldyBUZXN0KCJjY2ExMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDAsMikpLnRvU3RyaW5nKCkpLmVxdWFscygiMTIiKTsKKyAgKG5ldyBUZXN0KCJjY2ExMjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDEsMikpLnRvU3RyaW5nKCkpLmVxdWFscygiMjMiKTsKKyAgKG5ldyBUZXN0KCJjY2ExMjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDIsMikpLnRvU3RyaW5nKCkpLmVxdWFscygiMyIpOworICAobmV3IFRlc3QoImNjYTEyMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsMywyKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjQiKTsKKyAgCisgIChuZXcgVGVzdCgiY2NhMTMwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSwwLDMpKS50b1N0cmluZygpKS5lcXVhbHMoIjEyMyIpOworICAobmV3IFRlc3QoImNjYTEzMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsMSwzKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyMyIpOworICAobmV3IFRlc3QoImNjYTEzMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsMiwzKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIzLjQiKTsKKyAgCisgIChuZXcgVGVzdCgiY2NhMTQwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSwwLDQpKS50b1N0cmluZygpKS5lcXVhbHMoIjEyMyIpOworICAobmV3IFRlc3QoImNjYTE0MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsMSw0KSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyMy40Iik7CisgIAorICAobmV3IFRlc3QoImNjYTE1MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsMCw1KSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjMuNCIpOworICAKKyAgLy8gYSBjb3VwbGUgb2Ygb2RkaWVzCisgIGNhPSgieDIzLjR4IikudG9DaGFyQXJyYXkoKTsKKyAgKG5ldyBUZXN0KCJjY2ExNjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDEsNCkpLnRvU3RyaW5nKCkpLmVxdWFscygiMjMuNCIpOworICAobmV3IFRlc3QoImNjYTE2MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsMSwxKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyIik7CisgIChuZXcgVGVzdCgiY2NhMTYyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSw0LDEpKS50b1N0cmluZygpKS5lcXVhbHMoIjQiKTsKKyAgCisgIGNhPSgiMDEyMzQ1Njc4OS45ODc2NTQzMjEwIikudG9DaGFyQXJyYXkoKTsKKyAgKG5ldyBUZXN0KCJjY2ExNjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDAsMjEpKS50b1N0cmluZygpKS5lcXVhbHMoIjEyMzQ1Njc4OS45ODc2NTQzMjEwIik7CisgIChuZXcgVGVzdCgiY2NhMTY0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSwxLDIwKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjM0NTY3ODkuOTg3NjU0MzIxMCIpOworICAobmV3IFRlc3QoImNjYTE2NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsMiwxOSkpLnRvU3RyaW5nKCkpLmVxdWFscygiMjM0NTY3ODkuOTg3NjU0MzIxMCIpOworICAobmV3IFRlc3QoImNjYTE2NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsMiwxOCkpLnRvU3RyaW5nKCkpLmVxdWFscygiMjM0NTY3ODkuOTg3NjU0MzIxIik7CisgIChuZXcgVGVzdCgiY2NhMTY3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSwyLDE3KSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyMzQ1Njc4OS45ODc2NTQzMiIpOworICAobmV3IFRlc3QoImNjYTE2OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsMiwxNikpLnRvU3RyaW5nKCkpLmVxdWFscygiMjM0NTY3ODkuOTg3NjU0MyIpOworICAKKyAgdHJ5e2NoZWNrbnVsbDpkb3sKKyAgIG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoKGNoYXJbXSludWxsLDAsMSk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiAkOCl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbCovCisgIChuZXcgVGVzdCgiY2NhMjAwIikpLm9rPWZsYWc7CisgIAorICB0cnl7Y2hlY2tsZW46ZG97CisgICBuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjMiLnRvQ2hhckFycmF5KCksMCwwKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bWJlckZvcm1hdEV4Y2VwdGlvbiAkOSl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbGVuKi8KKyAgKG5ldyBUZXN0KCJjY2EyMDEiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja2JvdW5kOmRveworICAgbmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzIi50b0NoYXJBcnJheSgpLDIsNCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5SdW50aW1lRXhjZXB0aW9uICQxMCl7IC8vIGFueXRoaW5nIE9LCisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrYm91bmQqLworICAobmV3IFRlc3QoImNjYTIwMiIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tib3VuZDI6ZG97CisgICBuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjMiLnRvQ2hhckFycmF5KCksLTEsMik7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5SdW50aW1lRXhjZXB0aW9uICQxMSl7IC8vIGFueXRoaW5nIE9LCisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrYm91bmQyKi8KKyAgKG5ldyBUZXN0KCJjY2EyMDMiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrYm91bmQzOmRveworICAgbmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzIi50b0NoYXJBcnJheSgpLDEsLTIpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuUnVudGltZUV4Y2VwdGlvbiAkMTIpeyAvLyBhbnl0aGluZyBPSworICAgZmxhZz10cnVlOworICB9LypjaGVja2JvdW5kMyovCisgIChuZXcgVGVzdCgiY2NhMjA0IikpLm9rPWZsYWc7CisgIAorICAvLyBkb3VibGUgW2RlcHJlY2F0ZWRdCisgIC8vIE5vdGUgdGhhdCBtYW55IG9mIHRoZXNlIGRpZmZlciBmcm9tIHRoZSB2YWx1ZU9mKGRvdWJsZSkgcmVzdWx0cy4KKyAgZHplcj0oZG91YmxlKTA7CisgIGRwb3M9KGRvdWJsZSkxOworICBkcG9zPWRwb3MvKChkb3VibGUpMTApOworICBkbmVnPShkb3VibGUpLWRwb3M7CisgIChuZXcgVGVzdCgiY2RvMDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChkbmVnKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC4xMDAwMDAwMDAwMDAwMDAwMDU1NTExMTUxMjMxMjU3ODI3MDIxMTgxNTgzNDA0NTQxMDE1NjI1Iik7CisgIAorICAobmV3IFRlc3QoImNkbzAwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoZHplcikpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOyAvLyBOQiwgbm90ICcwLjAnCisgIChuZXcgVGVzdCgiY2RvMDAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChkcG9zKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEwMDAwMDAwMDAwMDAwMDAwNTU1MTExNTEyMzEyNTc4MjcwMjExODE1ODM0MDQ1NDEwMTU2MjUiKTsKKyAgCisgIGRwb3M1PShkb3VibGUpMC41RDsKKyAgZG5lZzU9KGRvdWJsZSktZHBvczU7CisgIChuZXcgVGVzdCgiY2RvMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChkbmVnNSkpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuNSIpOworICAobmV3IFRlc3QoImNkbzAwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoZHBvczUpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNSIpOworICBkbWluPWphdmEubGFuZy5Eb3VibGUuTUlOX1ZBTFVFOworICBkbWF4PWphdmEubGFuZy5Eb3VibGUuTUFYX1ZBTFVFOworICAobmV3IFRlc3QoImNkbzAwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoZG1pbikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ5NDA2NTY0NTg0MTI0NjU0NDE3NjU2ODc5Mjg2ODIyMTM3MjM2NTA1OTgwMjYxNDMyNDc2NDQyNTU4NTY4MjUwMDY3NTUwNzI3MDIwODc1MTg2NTI5OTgzNjM2MTYzNTk5MjM3OTc5NjU2NDY5NTQ0NTcxNzczMDkyNjY1NjcxMDM1NTkzOTc5NjM5ODc3NDc5NjAxMDc4MTg3ODEyNjMwMDcxMzE5MDMxMTQwNDUyNzg0NTgxNzE2Nzg0ODk4MjEwMzY4ODcxODYzNjA1Njk5ODczMDcyMzA1MDAwNjM4NzQwOTE1MzU2NDk4NDM4NzMxMjQ3MzM5NzI3MzE2OTYxNTE0MDAzMTcxNTM4NTM5ODA3NDEyNjIzODU2NTU5MTE3MTAyNjY1ODU1NjY4Njc2ODE4NzAzOTU2MDMxMDYyNDkzMTk0NTI3MTU5MTQ5MjQ1NTMyOTMwNTQ1NjU0NDQwMTEyNzQ4MDEyOTcwOTk5OTU0MTkzMTk4OTQwOTA4MDQxNjU2MzMyNDUyNDc1NzE0Nzg2OTAxNDcyNjc4MDE1OTM1NTIzODYxMTU1MDEzNDgwMzUyNjQ5MzQ3MjAxOTM3OTAyNjgxMDcxMDc0OTE3MDMzMzIyMjY4NDQ3NTMzMzU3MjA4MzI0MzE5MzYwOTIzODI4OTM0NTgzNjgwNjAxMDYwMTE1MDYxNjk4MDk3NTMwNzgzNDIyNzczMTgzMjkyNDc5MDQ5ODI1MjQ3MzA3NzYzNzU5MjcyNDc4NzQ2NTYwODQ3NzgyMDM3MzQ0Njk2OTk1MzM2NDcwMTc5NzI2Nzc3MTc1ODUxMjU2NjA1NTExOTkxMzE1MDQ4OTExMDE0NTEwMzc4NjI3MzgxNjcyNTA5NTU4MzczODk3MzM1OTg5OTM2NjQ4MDk5NDExNjQyMDU3MDI2MzcwOTAyNzkyNDI3Njc1NDQ1NjUyMjkwODc1Mzg2ODI1MDY0MTk3MTgyNjU1MzM0NDcyNjU2MjUiKTsKKyAgCisgIChuZXcgVGVzdCgiY2RvMDA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChkbWF4KSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxNzk3NjkzMTM0ODYyMzE1NzA4MTQ1Mjc0MjM3MzE3MDQzNTY3OTgwNzA1Njc1MjU4NDQ5OTY1OTg5MTc0NzY4MDMxNTcyNjA3ODAwMjg1Mzg3NjA1ODk1NTg2MzI3NjY4NzgxNzE1NDA0NTg5NTM1MTQzODI0NjQyMzQzMjEzMjY4ODk0NjQxODI3Njg0Njc1NDY3MDM1Mzc1MTY5ODYwNDk5MTA1NzY1NTEyODIwNzYyNDU0OTAwOTAzODkzMjg5NDQwNzU4Njg1MDg0NTUxMzM5NDIzMDQ1ODMyMzY5MDMyMjI5NDgxNjU4MDg1NTkzMzIxMjMzNDgyNzQ3OTc4MjYyMDQxNDQ3MjMxNjg3MzgxNzcxODA5MTkyOTk4ODEyNTA0MDQwMjYxODQxMjQ4NTgzNjgiKTsKKyAgCisgIAorICAvLyBuYXN0aWVzCisgIGQ9KGRvdWJsZSk5OworICBkPWQvKChkb3VibGUpMTApOworICAobmV3IFRlc3QoImNkbzAxMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoZCkpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45MDAwMDAwMDAwMDAwMDAwMjIyMDQ0NjA0OTI1MDMxMzA4MDg0NzI2MzMzNjE4MTY0MDYyNSIpOworICAKKyAgZD1kLygoZG91YmxlKTEwKTsKKyAgKG5ldyBUZXN0KCJjZG8wMTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGQpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDg5OTk5OTk5OTk5OTk5OTk2NjY5MzMwOTI2MTI0NTMwMzc4NzI5MTA0OTk1NzI3NTM5MDYyNSIpOworICAKKyAgZD1kLygoZG91YmxlKTEwKTsKKyAgKG5ldyBUZXN0KCJjZG8wMTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGQpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDA4OTk5OTk5OTk5OTk5OTk5MzE5OTg4Mzk3NDE3MDkxNjE4OTkwNTI1NjAzMjk0MzcyNTU4NTkzNzUiKTsKKyAgCisgIGQ9ZC8oKGRvdWJsZSkxMCk7CisgIChuZXcgVGVzdCgiY2RvMDEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChkKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDg5OTk5OTk5OTk5OTk5OTk3NTM2NjkyNjY0MTEyOTMzOTI1OTM1MDY3MjM2NDIzNDkyNDMxNjQwNjI1Iik7CisgIAorICBkPWQvKChkb3VibGUpMTApOworICAobmV3IFRlc3QoImNkbzAxNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoZCkpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwODk5OTk5OTk5OTk5OTk5OTIxMTU2ODE4MDE2ODU0MTE3NTU4OTc4MDMyMzIwNzM3ODM4NzQ1MTE3MTg3NSIpOworICAKKyAgZD1kLygoZG91YmxlKTEwKTsKKyAgKG5ldyBUZXN0KCJjZG8wMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGQpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDA4OTk5OTk5OTk5OTk5OTk4NTMzOTQxODIyMzY1MTAwOTA0MzM1MTIyMzIyNjYzNjY0ODE3ODEwMDU4NTkzNzUiKTsKKyAgCisgIGQ9ZC8oKGRvdWJsZSkxMCk7CisgIChuZXcgVGVzdCgiY2RvMDE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChkKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDAwMDg5OTk5OTk5OTk5OTk5OTg1MzM5NDE4MjIzNjUxMDA5MDQzMzUxMjIzMjI2NjM2NjQ4MTc4MTAwNTg1OTM3NSIpOworICAKKyAgZD1kLygoZG91YmxlKTEwKTsKKyAgKG5ldyBUZXN0KCJjZG8wMTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGQpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDAwMDg5OTk5OTk5OTk5OTk5OTg1MzM5NDE4MjIzNjUxMDA5MDQzMzUxMjIzMjI2NjM2NjQ4MTc4MTAwNTg1OTM3NSIpOworICAKKyAgZD1kLygoZG91YmxlKTEwKTsKKyAgKG5ldyBUZXN0KCJjZG8wMTgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGQpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDAwMDA4OTk5OTk5OTk5OTk5OTk3ODcyMTk3MzMyMzIyNjc4NzY0NDM3OTk1MzY5MDA3Njk0NTM0OTU3NDA4OTA1MDI5Mjk2ODc1Iik7CisgIAorICAKKyAgdHJ5e2NoZWNrcGluOmRveworICAgbmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChqYXZhLmxhbmcuRG91YmxlLlBPU0lUSVZFX0lORklOSVRZKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bWJlckZvcm1hdEV4Y2VwdGlvbiAkMTMpeworICAgZmxhZz10cnVlOworICB9LypjaGVja3BpbiovCisgIChuZXcgVGVzdCgiY2RvMTAxIikpLm9rPWZsYWc7CisgIHRyeXtjaGVja25pbjpkb3sKKyAgIG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoamF2YS5sYW5nLkRvdWJsZS5ORUdBVElWRV9JTkZJTklUWSk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdW1iZXJGb3JtYXRFeGNlcHRpb24gJDE0KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tuaW4qLworICAobmV3IFRlc3QoImNkbzEwMiIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tuYW46ZG97CisgICBuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGphdmEubGFuZy5Eb3VibGUuTmFOKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bWJlckZvcm1hdEV4Y2VwdGlvbiAkMTUpeworICAgZmxhZz10cnVlOworICB9LypjaGVja25hbiovCisgIChuZXcgVGVzdCgiY2RvMTAzIikpLm9rPWZsYWc7CisgIAorICAvLyBpbnQKKyAgKG5ldyBUZXN0KCJjaW4wMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGltaW4pKS50b1N0cmluZygpKS5lcXVhbHMoIi0yMTQ3NDgzNjQ4Iik7CisgIChuZXcgVGVzdCgiY2luMDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChpbWF4KSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyMTQ3NDgzNjQ3Iik7CisgIChuZXcgVGVzdCgiY2luMDAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChpbmVnKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoImNpbjAwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoaXplcikpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImNpbjAwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoaXBvcykpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoImNpbjAwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMTApKS50b1N0cmluZygpKS5lcXVhbHMoIjEwIik7CisgIChuZXcgVGVzdCgiY2luMDA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCg5KSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5Iik7CisgIChuZXcgVGVzdCgiY2luMDA4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCg1KSkudG9TdHJpbmcoKSkuZXF1YWxzKCI1Iik7CisgIChuZXcgVGVzdCgiY2luMDA5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgyKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyIik7CisgIChuZXcgVGVzdCgiY2luMDEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgtMikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIiKTsKKyAgKG5ldyBUZXN0KCJjaW4wMTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKC01KSkudG9TdHJpbmcoKSkuZXF1YWxzKCItNSIpOworICAobmV3IFRlc3QoImNpbjAxMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoLTkpKS50b1N0cmluZygpKS5lcXVhbHMoIi05Iik7CisgIChuZXcgVGVzdCgiY2luMDEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgtMTApKS50b1N0cmluZygpKS5lcXVhbHMoIi0xMCIpOworICAobmV3IFRlc3QoImNpbjAxNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoLTExKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMTEiKTsKKyAgKG5ldyBUZXN0KCJjaW4wMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKC05OSkpLnRvU3RyaW5nKCkpLmVxdWFscygiLTk5Iik7CisgIChuZXcgVGVzdCgiY2luMDE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgtMTAwKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMTAwIik7CisgIChuZXcgVGVzdCgiY2luMDE3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgtOTk5KSkudG9TdHJpbmcoKSkuZXF1YWxzKCItOTk5Iik7CisgIChuZXcgVGVzdCgiY2luMDE4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgtMTAwMCkpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgiY2luMDE5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgxMSkpLnRvU3RyaW5nKCkpLmVxdWFscygiMTEiKTsKKyAgKG5ldyBUZXN0KCJjaW4wMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDk5KSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5OSIpOworICAobmV3IFRlc3QoImNpbjAyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMTAwKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAiKTsKKyAgKG5ldyBUZXN0KCJjaW4wMjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDk5OSkpLnRvU3RyaW5nKCkpLmVxdWFscygiOTk5Iik7CisgIChuZXcgVGVzdCgiY2luMDIzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgxMDAwKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAwIik7CisgIAorICAvLyBsb25nCisgIChuZXcgVGVzdCgiY2xvMDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChsbWluKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItOTIyMzM3MjAzNjg1NDc3NTgwOCIpOworICAobmV3IFRlc3QoImNsbzAwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobG1heCkpLnRvU3RyaW5nKCkpLmVxdWFscygiOTIyMzM3MjAzNjg1NDc3NTgwNyIpOworICAobmV3IFRlc3QoImNsbzAwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobG5lZykpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJjbG8wMDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGx6ZXIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJjbG8wMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGxwb3MpKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgCisgIC8vIFN0cmluZyBbbWFueSBtb3JlIGV4YW1wbGVzIGFyZSBlbHNld2hlcmVdCisgIC8vIHN0cmluZ3Mgd2l0aG91dCBFIGNhbm5vdCBnZW5lcmF0ZSBFIGluIHJlc3VsdAorICAobmV3IFRlc3QoImNzdDAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMTIiKTsKKyAgKG5ldyBUZXN0KCJjc3QwMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNzYiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItNzYiKTsKKyAgKG5ldyBUZXN0KCJjc3QwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMi43NiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEyLjc2Iik7CisgIChuZXcgVGVzdCgiY3N0MDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzEyLjc2IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMTIuNzYiKTsKKyAgKG5ldyBUZXN0KCJjc3QwMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMTIuNzYiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMi43NiIpOworICAobmV3IFRlc3QoImNzdDAwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIiswLjAwMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAzIik7CisgIChuZXcgVGVzdCgiY3N0MDA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTcuIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMTciKTsKKyAgKG5ldyBUZXN0KCJjc3QwMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuNSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNSIpOworICAobmV3IFRlc3QoImNzdDAwOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjA0NCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjQ0Iik7CisgIChuZXcgVGVzdCgiY3N0MDEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDA0NCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjQ0Iik7CisgIChuZXcgVGVzdCgiY3N0MDExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDA1IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDA1Iik7CisgIChuZXcgVGVzdCgiY3N0MDEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAuMDAwMDUiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDA1Iik7CisgIChuZXcgVGVzdCgiY3N0MDEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDAwMDUiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDAwNSIpOworICAobmV3IFRlc3QoImNzdDAxNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwMDAwNSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDAwNSIpOyAvLyBcTlIKKyAgKG5ldyBUZXN0KCJjc3QwMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMDAwMDA1IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMDAwNSIpOyAvLyBcTlIKKyAgKG5ldyBUZXN0KCJjc3QwMTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NTY3OC44NzY1NDMyMTAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjM0NTY3OC44NzY1NDMyMTAiKTsKKyAgKG5ldyBUZXN0KCJjc3QwMTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyMzQ1Njc4Ljg3NjU0MzIxMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIzNDU2NzguODc2NTQzMjEwIik7CisgIChuZXcgVGVzdCgiY3N0MDE4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzQ1Njc4Ljg3NjU0MzIxMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjM0NTY3OC44NzY1NDMyMTAiKTsKKyAgKG5ldyBUZXN0KCJjc3QwMTkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMzQ1Njc4Ljg3NjU0MzIxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMzQ1Njc4Ljg3NjU0MzIxIik7CisgIChuZXcgVGVzdCgiY3N0MDIwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzQ1Njc4Ljg3NjU0MzIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIzNDU2NzguODc2NTQzMiIpOworICAobmV3IFRlc3QoImNzdDAyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIiszNDU2NzguODc2NTQzMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjM0NTY3OC44NzY1NDMyIik7CisgIChuZXcgVGVzdCgiY3N0MDIyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzAzNDU2NzguODc2NTQzMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjM0NTY3OC44NzY1NDMyIik7CisgIChuZXcgVGVzdCgiY3N0MDIzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzAwMzQ1Njc4Ljg3NjU0MzIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIzNDU2NzguODc2NTQzMiIpOworICAobmV3IFRlc3QoImNzdDAyNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0zNDU2NzguODc2NTQzMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0zNDU2NzguODc2NTQzMiIpOworICAobmV3IFRlc3QoImNzdDAyNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wMzQ1Njc4Ljg3NjU0MzIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMzQ1Njc4Ljg3NjU0MzIiKTsKKyAgKG5ldyBUZXN0KCJjc3QwMjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMDAzNDU2NzguODc2NTQzMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0zNDU2NzguODc2NTQzMiIpOworICAKKyAgLy8gZXhvdGljcyAtLQorICAobmV3IFRlc3QoImNzdDAzNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIlx1MGU1Ny5cdTBlNTAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI3LjAiKTsKKyAgKG5ldyBUZXN0KCJjc3QwMzYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCJcdTBiNjYuXHUwYjY3IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xIik7CisgIChuZXcgVGVzdCgiY3N0MDM3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiXHUwYjY2XHUwYjY2IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImNzdDAzOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIlx1MGI2YVx1MGI2NiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjQwIik7CisgIAorICAvLyBzdHJpbmdzIHdpdGggRQorICAobmV3IFRlc3QoImNzdDA0MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFKzkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxRSs5Iik7CisgIChuZXcgVGVzdCgiY3N0MDQxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMWUrMDkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxRSs5Iik7CisgIChuZXcgVGVzdCgiY3N0MDQyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMUUrOTAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxRSs5MCIpOworICAobmV3IFRlc3QoImNzdDA0MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxRSswMDkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxRSs5Iik7CisgIChuZXcgVGVzdCgiY3N0MDQ0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMEUrOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRSs5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMUUrOSIpOworICAobmV3IFRlc3QoImNzdDA0NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFKzA5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMUUrOSIpOworICAobmV3IFRlc3QoImNzdDA0NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFlKzkwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMUUrOTAiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRSswMDkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxRSs5Iik7CisgIChuZXcgVGVzdCgiY3N0MDQ5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMEUrOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRTkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxRSs5Iik7CisgIChuZXcgVGVzdCgiY3N0MDUxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMWUwOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjFFKzkiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRTkwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMUUrOTAiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRTAwOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjFFKzkiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwRTkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiY3N0MDU1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDBlKzAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiY3N0MDU2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDBFLTEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiY3N0MDU3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNEUrOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjRFKzkiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNTgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI0NEUrOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjQuNEUrMTAiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNTkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjczZS03IikpLnRvU3RyaW5nKCkpLmVxdWFscygiNy4zRS04Iik7CisgIChuZXcgVGVzdCgiY3N0MDYwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDBFKzkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiY3N0MDYxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDBFLTkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiY3N0MDYyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTBFKzkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjBFKzEwIik7CisgIChuZXcgVGVzdCgiY3N0MDYzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTBFKzA5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wRSsxMCIpOworICAobmV3IFRlc3QoImNzdDA2NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwZSs5MCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMEUrOTEiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNjUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMEUrMDA5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wRSsxMCIpOworICAobmV3IFRlc3QoImNzdDA2NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMGUrOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDBFKzExIik7CisgIChuZXcgVGVzdCgiY3N0MDY3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwZSswOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDBFKzExIik7CisgIChuZXcgVGVzdCgiY3N0MDY4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwRSs5MCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDBFKzkyIik7CisgIChuZXcgVGVzdCgiY3N0MDY5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwZSswMDkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwRSsxMSIpOworICAKKyAgKG5ldyBUZXN0KCJjc3QwNzAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjI2NSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1Iik7CisgIChuZXcgVGVzdCgiY3N0MDcxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yNjVFLTIwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFLTIwIik7CisgIChuZXcgVGVzdCgiY3N0MDcyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yNjVFLTgiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUtOCIpOworICAobmV3IFRlc3QoImNzdDA3MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjY1RS00IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFLTQiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNzQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjI2NUUtMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RS0zIik7CisgIChuZXcgVGVzdCgiY3N0MDc1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yNjVFLTIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUtMiIpOworICAobmV3IFRlc3QoImNzdDA3NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjY1RS0xIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFLTEiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNzciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjI2NUUtMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1Iik7CisgIChuZXcgVGVzdCgiY3N0MDc4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yNjVFKzEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrMSIpOworICAobmV3IFRlc3QoImNzdDA3OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjY1RSsyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFKzIiKTsKKyAgKG5ldyBUZXN0KCJjc3QwODAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjI2NUUrMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSszIik7CisgIChuZXcgVGVzdCgiY3N0MDgxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yNjVFKzQiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrNCIpOworICAobmV3IFRlc3QoImNzdDA4MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjY1RSs4IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFKzgiKTsKKyAgKG5ldyBUZXN0KCJjc3QwODMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjI2NUUrMjAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrMjAiKTsKKyAgCisgIChuZXcgVGVzdCgiY3N0MDkwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIuNjUiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMi42NSIpOworICAobmV3IFRlc3QoImNzdDA5MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyLjY1RS0yMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RS0xOSIpOworICAobmV3IFRlc3QoImNzdDA5MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyLjY1RS04IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFLTciKTsKKyAgKG5ldyBUZXN0KCJjc3QwOTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMi42NUUtNCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RS0zIik7CisgIChuZXcgVGVzdCgiY3N0MDk0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIuNjVFLTMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUtMiIpOworICAobmV3IFRlc3QoImNzdDA5NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyLjY1RS0yIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFLTEiKTsKKyAgKG5ldyBUZXN0KCJjc3QwOTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMi42NUUtMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1Iik7CisgIChuZXcgVGVzdCgiY3N0MDk3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIuNjVFLTAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrMSIpOworICAobmV3IFRlc3QoImNzdDA5OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyLjY1RSsxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFKzIiKTsKKyAgKG5ldyBUZXN0KCJjc3QwOTkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMi42NUUrMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSszIik7CisgIChuZXcgVGVzdCgiY3N0MTAwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIuNjVFKzMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrNCIpOworICAobmV3IFRlc3QoImNzdDEwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyLjY1RSs0IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFKzUiKTsKKyAgKG5ldyBUZXN0KCJjc3QxMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMi42NUUrOCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSs5Iik7CisgIChuZXcgVGVzdCgiY3N0MTAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIuNjVFKzIwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFKzIxIik7CisgIAorICAobmV3IFRlc3QoImNzdDExMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNi41IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMTI2LjUiKTsKKyAgKG5ldyBUZXN0KCJjc3QxMTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjYuNUUtMjAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUtMTgiKTsKKyAgKG5ldyBUZXN0KCJjc3QxMTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjYuNUUtOCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RS02Iik7CisgIChuZXcgVGVzdCgiY3N0MTEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2LjVFLTQiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUtMiIpOworICAobmV3IFRlc3QoImNzdDExNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNi41RS0zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFLTEiKTsKKyAgKG5ldyBUZXN0KCJjc3QxMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjYuNUUtMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1Iik7CisgIChuZXcgVGVzdCgiY3N0MTE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2LjVFLTEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrMSIpOworICAobmV3IFRlc3QoImNzdDExNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNi41RS0wIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFKzIiKTsKKyAgKG5ldyBUZXN0KCJjc3QxMTgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjYuNUUrMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSszIik7CisgIChuZXcgVGVzdCgiY3N0MTE5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2LjVFKzIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrNCIpOworICAobmV3IFRlc3QoImNzdDEyMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNi41RSszIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFKzUiKTsKKyAgKG5ldyBUZXN0KCJjc3QxMjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjYuNUUrNCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSs2Iik7CisgIChuZXcgVGVzdCgiY3N0MTIyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2LjVFKzgiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrMTAiKTsKKyAgKG5ldyBUZXN0KCJjc3QxMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjYuNUUrMjAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrMjIiKTsKKyAgCisgIChuZXcgVGVzdCgiY3N0MTMwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2NSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEyNjUiKTsKKyAgKG5ldyBUZXN0KCJjc3QxMzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjY1RS0yMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RS0xNyIpOworICAobmV3IFRlc3QoImNzdDEzMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNjVFLTgiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUtNSIpOworICAobmV3IFRlc3QoImNzdDEzMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNjVFLTQiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUtMSIpOworICAobmV3IFRlc3QoImNzdDEzNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNjVFLTMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NSIpOworICAobmV3IFRlc3QoImNzdDEzNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNjVFLTIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrMSIpOworICAobmV3IFRlc3QoImNzdDEzNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNjVFLTEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrMiIpOworICAobmV3IFRlc3QoImNzdDEzNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNjVFLTAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrMyIpOworICAobmV3IFRlc3QoImNzdDEzOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNjVFKzEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrNCIpOworICAobmV3IFRlc3QoImNzdDEzOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNjVFKzIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrNSIpOworICAobmV3IFRlc3QoImNzdDE0MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNjVFKzMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrNiIpOworICAobmV3IFRlc3QoImNzdDE0MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNjVFKzQiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrNyIpOworICAobmV3IFRlc3QoImNzdDE0MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNjVFKzgiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrMTEiKTsKKyAgKG5ldyBUZXN0KCJjc3QxNDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjY1RSsyMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSsyMyIpOworICAKKyAgKG5ldyBUZXN0KCJjc3QxNTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjEyNjUiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEyNjUiKTsKKyAgKG5ldyBUZXN0KCJjc3QxNTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjEyNjVFLTIwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFLTIxIik7CisgIChuZXcgVGVzdCgiY3N0MTUyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xMjY1RS04IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFLTkiKTsKKyAgKG5ldyBUZXN0KCJjc3QxNTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjEyNjVFLTQiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUtNSIpOworICAobmV3IFRlc3QoImNzdDE1NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTI2NUUtMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RS00Iik7CisgIChuZXcgVGVzdCgiY3N0MTU1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xMjY1RS0yIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFLTMiKTsKKyAgKG5ldyBUZXN0KCJjc3QxNTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjEyNjVFLTEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUtMiIpOworICAobmV3IFRlc3QoImNzdDE1NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTI2NUUtMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RS0xIik7CisgIChuZXcgVGVzdCgiY3N0MTU4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xMjY1RSsxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjUiKTsKKyAgKG5ldyBUZXN0KCJjc3QxNTkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjEyNjVFKzIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrMSIpOworICAobmV3IFRlc3QoImNzdDE2MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTI2NUUrMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSsyIik7CisgIChuZXcgVGVzdCgiY3N0MTYxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xMjY1RSs0IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFKzMiKTsKKyAgKG5ldyBUZXN0KCJjc3QxNjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjEyNjVFKzgiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrNyIpOworICAobmV3IFRlc3QoImNzdDE2MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTI2NUUrMjAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrMTkiKTsKKyAgCisgIChuZXcgVGVzdCgiY3N0MTcwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wOWU5OTk5OTk5OTkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5RSs5OTk5OTk5OTciKTsKKyAgKG5ldyBUZXN0KCJjc3QxNzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjllOTk5OTk5OTk5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiOUUrOTk5OTk5OTk4Iik7CisgIChuZXcgVGVzdCgiY3N0MTcyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOWU5OTk5OTk5OTkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5RSs5OTk5OTk5OTkiKTsKKyAgKG5ldyBUZXN0KCJjc3QxNzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5LjllOTk5OTk5OTk5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiOS45RSs5OTk5OTk5OTkiKTsKKyAgKG5ldyBUZXN0KCJjc3QxNzQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5ZTk5OTk5OTk5OSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkuOTlFKzk5OTk5OTk5OSIpOworICAobmV3IFRlc3QoImNzdDE3NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOTllLTk5OTk5OTk5OSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkuOTlFLTk5OTk5OTk5OSIpOworICAobmV3IFRlc3QoImNzdDE3NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOWUtOTk5OTk5OTk5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiOS45RS05OTk5OTk5OTkiKTsKKyAgKG5ldyBUZXN0KCJjc3QxNzciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5ZS05OTk5OTk5OTkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5RS05OTk5OTk5OTkiKTsKKyAgKG5ldyBUZXN0KCJjc3QxNzkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OWUtOTk5OTk5OTk5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiOS45RS05OTk5OTk5OTgiKTsKKyAgKG5ldyBUZXN0KCJjc3QxODAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTllLTk5OTk5OTk5OSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkuOTlFLTk5OTk5OTk5NyIpOworICAKKyAgLy8gYmFkZGllcyAtLQorICBiYWRzdHJpbmdzPW5ldyBqYXZhLmxhbmcuU3RyaW5nW117IjEuLjIiLCIuIiwiLi4iLCIrKzEiLCItLTEiLCItKzEiLCIrLTEiLCIxMmUiLCIxMmUrKyIsIjEyZjQiLCIgKzEiLCIrIDEiLCIxMiAiLCIgKyAxIiwiIC0gMSAiLCJ4IiwiLTEtIiwiMTItIiwiMysiLCIiLCIxZS0iLCI3ZTEwMDAwMDAwMDAiLCIiLCJlMTAwIiwiXHUwZTVhIiwiXHUwYjY1IiwiOTllOTk5OTk5OTk5IiwiOTk5ZTk5OTk5OTk5OSIsIjAuOWUtOTk5OTk5OTk5IiwiMC4wOWUtOTk5OTk5OTk5IiwiMC4xZTEwMDAwMDAwMDAiLCIxMGUtMTAwMDAwMDAwMCIsIjAuOWU5OTk5OTk5OTk5IiwiOTllLTk5OTk5OTk5OTkiLCIxMTFlOTk5OTk5OTk5OSIsIjExMTFlLTk5OTk5OTk5OTkiKyIgIisiMTExZSoxMjMiLCIxMTFlMTIzLSIsIjExMWUrMTIrIiwiMTExZTEtMy0iLCIxMTFlMSoyMyIsIjExMWUxZSszIiwiMWUxLjAiLCIxZTEyM2UiLCJ0ZW4iLCJPTkUiLCIxZS4xIiwiMWUxLiIsIjFlZSIsImUrMSJ9OyAvLyAyMDAtMjAzCisgIC8vIDIwNC0yMDcKKyAgLy8gMjA4LTIxMQorICAvLyAyMTEtMjE0CisgIC8vIDIxNS0yMTkKKyAgLy8gMjIwLTIyMgorICAvLyAyMjMtMjI0CisgIC8vIDIyNS0yMjYKKyAgLy8gMjI3LTIyOAorICAvLyAyMjktMjMwCisgIC8vIDIzMS0yMzIKKyAgLy8gMjMzLTIzNAorICAvLyAyMzUtMjM3CisgIC8vIDIzOC0yNDAKKyAgLy8gMjQxLTI0NAorICAvLyAyNDUtMjQ4CisgIAorICAvLyB3YXRjaCBvdXQgZm9yIGNvbW1hcyBvbiBjb250aW51YXRpb24gbGluZXMKKyAgCisgIHtpbnQgJDE2PWJhZHN0cmluZ3MubGVuZ3RoO2k9MDtpOmZvcig7JDE2PjA7JDE2LS0saSsrKXsKKyAgIHRyeXsKKyAgICBuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJhZHN0cmluZ3NbaV0pOworICAgIHNheSgiPj4+IGNzdCIrKDIwMCtpKSsiOiIrIiAiK2JhZHN0cmluZ3NbaV0rIiAiKyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJhZHN0cmluZ3NbaV0pKS50b1N0cmluZygpKTsKKyAgICBmbGFnPWZhbHNlOworICAgfQorICAgY2F0Y2ggKGphdmEubGFuZy5OdW1iZXJGb3JtYXRFeGNlcHRpb24gJDE3KXsKKyAgICBmbGFnPXRydWU7CisgICB9CisgICAobmV3IFRlc3QoImNzdCIrKDIwMCtpKSkpLm9rPWZsYWc7CisgICB9CisgIH0vKmkqLworICAKKyAgdHJ5e2NoZWNrbnVsbDpkb3sKKyAgIG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoKGphdmEubGFuZy5TdHJpbmcpbnVsbCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiAkMTgpeworICAgZmxhZz10cnVlOworICB9LypjaGVja251bGwqLworICAobmV3IFRlc3QoImNzdDMwMSIpKS5vaz1mbGFnOworICAKKyAgc3VtbWFyeSgiQ29uc3RydWN0b3JzIik7CisgIHJldHVybjsKKyAgfQorCisgLyoqIE11dGF0aW9uIHRlc3RzIChjaGVja3MgdGhhdCBjb250ZW50cyBvZiBjb25zdGFudCBvYmplY3RzIGFyZSB1bmNoYW5nZWQpLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWdtdXRhdGlvbigpeworICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgIC8qIEZpbmFsIHRlc3RzIC0tIGNoZWNrIGNvbnN0YW50cyBoYXZlbid0IG11dGF0ZWQgICAgICAgICAgICAgICAgICAgKi8KKyAgLyogICAgICAgICAgICAgLS0gYWxzbyB0aGF0IE1DIG9iamVjdHMgaGF2ZW4ndCBtdXRhdGVkICAgICAgICAgICAgICAqLworICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgIChuZXcgVGVzdCgiY3VjMDAxIikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuWkVSTy50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJjdWMwMDIiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgiY3VjMDAzIikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuVEVOLnRvU3RyaW5nKCkpLmVxdWFscygiMTAiKTsKKyAgCisgIChuZXcgVGVzdCgiY3VjMDEwIikpLm9rPWNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5ST1VORF9DRUlMSU5HPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0NFSUxJTkc7CisgIChuZXcgVGVzdCgiY3VjMDExIikpLm9rPWNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5ST1VORF9ET1dOPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0RPV047CisgIChuZXcgVGVzdCgiY3VjMDEyIikpLm9rPWNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5ST1VORF9GTE9PUj09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9GTE9PUjsKKyAgKG5ldyBUZXN0KCJjdWMwMTMiKSkub2s9Y29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlJPVU5EX0hBTEZfRE9XTj09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV047CisgIChuZXcgVGVzdCgiY3VjMDE0IikpLm9rPWNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5ST1VORF9IQUxGX0VWRU49PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOOworICAobmV3IFRlc3QoImN1YzAxNSIpKS5vaz1jb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuUk9VTkRfSEFMRl9VUD09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQOworICAobmV3IFRlc3QoImN1YzAxNiIpKS5vaz1jb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuUk9VTkRfVU5ORUNFU1NBUlk9PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVU5ORUNFU1NBUlk7CisgIChuZXcgVGVzdCgiY3VjMDE3IikpLm9rPWNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5ST1VORF9VUD09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VUDsKKyAgCisgIChuZXcgVGVzdCgiY3VjMDIwIikpLm9rPShjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LkRFRkFVTFQuZ2V0RGlnaXRzKCkpPT05OworICAobmV3IFRlc3QoImN1YzAyMSIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ERUZBVUxULmdldEZvcm0oKSk9PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuU0NJRU5USUZJQzsKKyAgKG5ldyBUZXN0KCJjdWMwMjIiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuREVGQVVMVC5nZXRMb3N0RGlnaXRzKCk/MTowKT09MDsKKyAgKG5ldyBUZXN0KCJjdWMwMjMiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuREVGQVVMVC5nZXRSb3VuZGluZ01vZGUoKSk9PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUDsKKyAgCisgIC8vIG1jOSAgPU1hdGhDb250ZXh0KDkpCisgIC8vIG1jbGQgPU1hdGhDb250ZXh0KDksIFNDSUVOVElGSUMsIDEpCisgIC8vIG1jZmQgPU1hdGhDb250ZXh0KDAsIFBMQUlOKQorICAobmV3IFRlc3QoImN1YzAzMCIpKS5vaz0obWM5LmdldERpZ2l0cygpKT09OTsKKyAgKG5ldyBUZXN0KCJjdWMwMzEiKSkub2s9KG1jOS5nZXRGb3JtKCkpPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlNDSUVOVElGSUM7CisgIChuZXcgVGVzdCgiY3VjMDMyIikpLm9rPShtYzkuZ2V0TG9zdERpZ2l0cygpPzE6MCk9PTA7CisgIChuZXcgVGVzdCgiY3VjMDMzIikpLm9rPShtYzkuZ2V0Um91bmRpbmdNb2RlKCkpPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVA7CisgIChuZXcgVGVzdCgiY3VjMDM0IikpLm9rPShtY2xkLmdldERpZ2l0cygpKT09OTsKKyAgKG5ldyBUZXN0KCJjdWMwMzUiKSkub2s9KG1jbGQuZ2V0Rm9ybSgpKT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDOworICAobmV3IFRlc3QoImN1YzAzNiIpKS5vaz0obWNsZC5nZXRMb3N0RGlnaXRzKCk/MTowKT09MTsKKyAgKG5ldyBUZXN0KCJjdWMwMzciKSkub2s9KG1jbGQuZ2V0Um91bmRpbmdNb2RlKCkpPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVA7CisgIChuZXcgVGVzdCgiY3VjMDM4IikpLm9rPShtY2ZkLmdldERpZ2l0cygpKT09MDsKKyAgKG5ldyBUZXN0KCJjdWMwMzkiKSkub2s9KG1jZmQuZ2V0Rm9ybSgpKT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTjsKKyAgKG5ldyBUZXN0KCJjdWMwNDAiKSkub2s9KG1jZmQuZ2V0TG9zdERpZ2l0cygpPzE6MCk9PTA7CisgIChuZXcgVGVzdCgiY3VjMDQxIikpLm9rPShtY2ZkLmdldFJvdW5kaW5nTW9kZSgpKT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQOworICAKKyAgc3VtbWFyeSgiTm8gbXV0YXRpb24iKTsKKyAgcmV0dXJuO30KKworIAorIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgLyogT3BlcmF0b3IgdGVzdCBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIC8vIFRoZSB1c2Ugb2YgY29udGV4dCBpbiB0aGVzZSB0ZXN0cyBhcmUgcHJpbWFyaWx5IHRvIHNob3cgdGhhdCB0aGV5CisgLy8gYXJlIGNvcnJlY3RseSBwYXNzZWQgdG8gdGhlIG1ldGhvZHMsIGV4Y2VwdCB0aGF0IHdlIGNoZWNrIHRoYXQKKyAvLyBlYWNoIG1ldGhvZCBjaGVja3MgZm9yIGxvc3REaWdpdHMuCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBCaWdEZWNpbWFsI2Fic30gbWV0aG9kLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWdhYnMoKXsKKyAgYm9vbGVhbiBmbGFnPWZhbHNlOworICBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiBhZT1udWxsOworICAKKyAgLy8gbW9zdCBvZiB0aGUgZnVuY3Rpb24gb2YgdGhpcyBpcyB0ZXN0ZWQgYnkgYWRkCisgIChuZXcgVGVzdCgiYWJzMDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5hYnMoKS50b1N0cmluZygpKS5lcXVhbHMoIjIiKTsKKyAgKG5ldyBUZXN0KCJhYnMwMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMiIpKS5hYnMoKS50b1N0cmluZygpKS5lcXVhbHMoIjIiKTsKKyAgKG5ldyBUZXN0KCJhYnMwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMC4wMDAiKSkuYWJzKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMCIpOworICAobmV3IFRlc3QoImFiczAwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwLjAwMCIpKS5hYnMoKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwIik7CisgIChuZXcgVGVzdCgiYWJzMDA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMDAwIikpLmFicygpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAiKTsKKyAgKG5ldyBUZXN0KCJhYnMwMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMC4wMDAiKSkuYWJzKG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJhYnMwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMC4wMDAiKSkuYWJzKG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJhYnMwMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4wMDAiKSkuYWJzKG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJhYnMwMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMjAwMDAwMCIpKS5hYnMoKS50b1N0cmluZygpKS5lcXVhbHMoIjIwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJhYnMwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMjAwMDAwMCIpKS5hYnMobWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMjAwMDAwMCIpOworICAobmV3IFRlc3QoImFiczAxMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yMDAwMDAwIikpLmFicyhtYzYpLnRvU3RyaW5nKCkpLmVxdWFscygiMi4wMDAwMEUrNiIpOworICAobmV3IFRlc3QoImFiczAxMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIwMDAwMDAiKSkuYWJzKG1jNikudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjAwMDAwRSs2Iik7CisgIChuZXcgVGVzdCgiYWJzMDEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4yIikpLmFicygpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4yIik7CisgIChuZXcgVGVzdCgiYWJzMDE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMiIpKS5hYnMoKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMiIpOworICAobmV3IFRlc3QoImFiczAxNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDEiKSkuYWJzKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAxIik7CisgIChuZXcgVGVzdCgiYWJzMDE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMDEiKSkuYWJzKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAxIik7CisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIHRlbmxvbmcuYWJzKG1jbGQpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMTkpe2FlPSQxOTsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJUb28gbWFueSBkaWdpdHM6IisiICIrdGVubG9uZy50b1N0cmluZygpKTsKKyAgfS8qY2hlY2tkaWdpdHMqLworICAobmV3IFRlc3QoImFiczAyMCIpKS5vaz1mbGFnOworICAvLyBjaGVjayBsb3N0ZGlnaXRzIG5vdCByYWlzZWQgaWYgZGlnaXRzPTAgW21vbmFkaWMgbWV0aG9kXQorICB0cnl7Y2hlY2tkaWdpdHM6ZG97CisgICB0ZW5sb25nLmFicyhtY2xkMCk7CisgICBmbGFnPXRydWU7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDIwKXthZT0kMjA7CisgICBmbGFnPWZhbHNlOworICB9LypjaGVja2RpZ2l0cyovCisgIChuZXcgVGVzdCgiYWJzMDIxIikpLm9rPWZsYWc7CisgIHRyeXtjaGVja251bGw6ZG97CisgICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuVEVOLmFicygoY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQyMSl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbCovCisgIChuZXcgVGVzdCgiYWJzMDIyIikpLm9rPWZsYWc7CisgIAorICBzdW1tYXJ5KCJhYnMiKTsKKyAgcmV0dXJuO30KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBCaWdEZWNpbWFsI2FkZH0gbWV0aG9kLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWdhZGQoKXsKKyAgYm9vbGVhbiBmbGFnPWZhbHNlOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgYWxoczsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGFyaHM7CisgIGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uIGFlPW51bGw7CisgIAorICAvLyBbZmlyc3QgZ3JvdXAgYXJlICdxdWljayBjb25maWRlbmNlIGNoZWNrJ10KKyAgKG5ldyBUZXN0KCJhZGQwMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgzKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCI1Iik7CisgIChuZXcgVGVzdCgiYWRkMDAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNS43NSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMy4zIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiOS4wNSIpOworICAobmV3IFRlc3QoImFkZDAwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0zIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMiIpOworICAobmV3IFRlc3QoImFkZDAwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIi04Iik7CisgIChuZXcgVGVzdCgiYWRkMDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTciKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIi00LjUiKTsKKyAgKG5ldyBUZXN0KCJhZGQwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjciKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMCIpOworICAobmV3IFRlc3QoImFkZDAwOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjUiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjUiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjUwIik7CisgIChuZXcgVGVzdCgiYWRkMDA5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yMzQ1Njc4OSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMDAwMDAwMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjIuMjM0NTY3ODkiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yMzQ1Njc4OSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMDAwMDAxMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjIuMjM0NTY4MDAiKTsKKyAgCisgIAorICAobmV3IFRlc3QoImFkZDAxMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNDQ0NDQ0NDQ0NCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41NTU1NTU1NTU1IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMDAwMDAwMCIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwMTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjQ0NDQ0NDQ0NDAiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNTU1NTU1NTU1NSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAwMDAwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC40NDQ0NDQ0NDQ0IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjU1NTU1NTU1NTAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk5OTk5OTk5OSIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwMTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjQ0NDQ0NDQ0NDQ5OTkiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjQ0NDQ0NDQ0NCIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjQ0NDQ0NDQ0NDUwMDAiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjQ0NDQ0NDQ0NSIpOworICAKKyAgCisgIChuZXcgVGVzdCgiYWRkMDE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMDAwMDAwMEUrMTMiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDE3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAwMDAwMDBFKzEzIik7CisgIAorICAobmV3IFRlc3QoImFkZDAxOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMDAwMDAwMEUrMTMiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDE5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMDAiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMDAwMDAwMUUrMTMiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDIwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMDAwIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAwMDAwMDdFKzEzIik7CisgIAorICAKKyAgLy8gW05vdyB0aGUgc2FtZSBncm91cCB3aXRoIGZpeGVkIGFyaXRobWV0aWNdCisgIChuZXcgVGVzdCgiYWRkMDMwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgyKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMykpLnRvU3RyaW5nKCkpLmVxdWFscygiNSIpOworICAobmV3IFRlc3QoImFkZDAzMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUuNzUiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMuMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkuMDUiKTsKKyAgKG5ldyBUZXN0KCJhZGQwMzIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIiKTsKKyAgKG5ldyBUZXN0KCJhZGQwMzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItOCIpOworICAobmV3IFRlc3QoImFkZDAzNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi03IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjUiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItNC41Iik7CisgIChuZXcgVGVzdCgiYWRkMDM1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC43IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAiKTsKKyAgKG5ldyBUZXN0KCJhZGQwMzYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjI1IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjI1IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMi41MCIpOworICAobmV3IFRlc3QoImFkZDAzNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjM0NTY3ODkiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDAwMDAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjIzNDU2Nzg5Iik7CisgIAorICAobmV3IFRlc3QoImFkZDAzOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjM0NTY3ODkiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDAwMDAwMTEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjIzNDU2ODAwIik7CisgIAorICAKKyAgKG5ldyBUZXN0KCJhZGQwMzkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjQ0NDQ0NDQ0NDQiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNTU1NTU1NTU1NSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTk5OTk5OTk5OSIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwNDAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjQ0NDQ0NDQ0NDAiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNTU1NTU1NTU1NSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTk5OTk5OTk5NSIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwNDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjQ0NDQ0NDQ0NDQiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNTU1NTU1NTU1MCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTk5OTk5OTk5NCIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwNDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjQ0NDQ0NDQ0NDQ5OTkiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjQ0NDQ0NDQ0NDQ5OTkiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDQzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC40NDQ0NDQ0NDQ1MDAwIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40NDQ0NDQ0NDQ1MDAwIik7CisgIAorICAKKyAgKG5ldyBUZXN0KCJhZGQwNDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAwMDAwMDAwMDA3MCIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwNDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwMDAwMDAwMDA3MDAiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDQ2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAwMDAwMDAwNzAwMCIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwNDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwMCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAwMDAwMDA3MDAwMCIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwNDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwMDAiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwMDAwMDA3MDAwMDAiKTsKKyAgCisgIAorICAvLyBzeW1tZXRyeToKKyAgKG5ldyBUZXN0KCJhZGQwNDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwMDAwMDAwRSsxMyIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwNTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMDAwMDAwMEUrMTMiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDUxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwMDAwMDAwRSsxMyIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwNTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMDAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwMDAwMDAxRSsxMyIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwNTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMDAwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMDAwMDAwN0UrMTMiKTsKKyAgCisgIAorICAobmV3IFRlc3QoImFkZDA1NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAwMDAwMDAwMDcwIik7CisgIAorICAobmV3IFRlc3QoImFkZDA1NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAwMDAwMDAwMDcwMCIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwNTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAwMDAwMDA3MDAwIik7CisgIAorICAobmV3IFRlc3QoImFkZDA1NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAwMDAwMDcwMDAwIik7CisgIAorICAobmV3IFRlc3QoImFkZDA1OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAwMDAwMDcwMDAwMCIpOworICAKKyAgLy8gc29tZSByb3VuZGluZyBlZmZlY3RzCisgIChuZXcgVGVzdCgiYWRkMDU5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC45OTk4IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk5OTgiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDYwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC45OTk4IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMDEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk5OTkiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDYxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC45OTk4IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMDIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDYyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC45OTk4IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMDMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwMDEiKTsKKyAgCisgIAorICAvLyBNQworICAobmV3IFRlc3QoImFkZDA3MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwMCIpLG1jZmQpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwMDAwMDAwNzAwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDcxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMDAwMDAwMUUrMTMiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDcyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAwIiksbWM2KS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAwMDBFKzEzIik7CisgIAorICAKKyAgLy8gemVybyBwcmVzZXJ2YXRpb24KKyAgKG5ldyBUZXN0KCJhZGQwODAiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwMSIpLG1jNikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwMDEiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDgxIikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMDAxIiksbWM2KS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAwMDEiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDgyIikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMDAwMSIpLG1jNikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwMDAwIik7CisgIAorICAobmV3IFRlc3QoImFkZDA4MyIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDAwMDAxIiksbWM2KS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDg0IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMDAwMDAxIiksbWM2KS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAwMDAiKTsKKyAgCisgIAorICAvLyBtb3JlIGZpeGVkLCBMSFMgc3dhcHMKKyAgKG5ldyBUZXN0KCJhZGQwOTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTEwIikpLmFkZCh6ZXJvKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjAwMDAwNTYyNjciKTsKKyAgKG5ldyBUZXN0KCJhZGQwOTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTYiKSkuYWRkKHplcm8pLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMDU2MjY3Iik7CisgIChuZXcgVGVzdCgiYWRkMDkyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTU2MjY3RS01IikpLmFkZCh6ZXJvKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjU2MjY3Iik7CisgIChuZXcgVGVzdCgiYWRkMDkzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTU2MjY3RS00IikpLmFkZCh6ZXJvKS50b1N0cmluZygpKS5lcXVhbHMoIi01LjYyNjciKTsKKyAgKG5ldyBUZXN0KCJhZGQwOTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTMiKSkuYWRkKHplcm8pLnRvU3RyaW5nKCkpLmVxdWFscygiLTU2LjI2NyIpOworICAobmV3IFRlc3QoImFkZDA5NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01NjI2N0UtMiIpKS5hZGQoemVybykudG9TdHJpbmcoKSkuZXF1YWxzKCItNTYyLjY3Iik7CisgIChuZXcgVGVzdCgiYWRkMDk2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTU2MjY3RS0xIikpLmFkZCh6ZXJvKS50b1N0cmluZygpKS5lcXVhbHMoIi01NjI2LjciKTsKKyAgKG5ldyBUZXN0KCJhZGQwOTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTAiKSkuYWRkKHplcm8pLnRvU3RyaW5nKCkpLmVxdWFscygiLTU2MjY3Iik7CisgIChuZXcgVGVzdCgiYWRkMDk4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTVFLTEwIikpLmFkZCh6ZXJvKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjAwMDAwMDAwMDUiKTsKKyAgKG5ldyBUZXN0KCJhZGQwOTkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNUUtNSIpKS5hZGQoemVybykudG9TdHJpbmcoKSkuZXF1YWxzKCItMC4wMDAwNSIpOworICAobmV3IFRlc3QoImFkZDEwMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01RS0xIikpLmFkZCh6ZXJvKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjUiKTsKKyAgKG5ldyBUZXN0KCJhZGQxMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNUUtMTAiKSkuYWRkKHplcm8pLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMDAwMDAwMDAwNSIpOworICAobmV3IFRlc3QoImFkZDEwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01RS01IikpLmFkZCh6ZXJvKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjAwMDA1Iik7CisgIChuZXcgVGVzdCgiYWRkMTAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTVFLTEiKSkuYWRkKHplcm8pLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuNSIpOworICAobmV3IFRlc3QoImFkZDEwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01RTEwIikpLmFkZCh6ZXJvKS50b1N0cmluZygpKS5lcXVhbHMoIi01MDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoImFkZDEwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01RTUiKSkuYWRkKHplcm8pLnRvU3RyaW5nKCkpLmVxdWFscygiLTUwMDAwMCIpOworICAobmV3IFRlc3QoImFkZDEwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01RTEiKSkuYWRkKHplcm8pLnRvU3RyaW5nKCkpLmVxdWFscygiLTUwIik7CisgIChuZXcgVGVzdCgiYWRkMTA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTVFMCIpKS5hZGQoemVybykudG9TdHJpbmcoKSkuZXF1YWxzKCItNSIpOworICAKKyAgLy8gbW9yZSBmaXhlZCwgUkhTIHN3YXBzCisgIChuZXcgVGVzdCgiYWRkMTA4IikpLm9rPSh6ZXJvLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTEwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMDAwMDA1NjI2NyIpOworICAobmV3IFRlc3QoImFkZDEwOSIpKS5vaz0oemVyby5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTU2MjY3RS02IikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMDU2MjY3Iik7CisgIChuZXcgVGVzdCgiYWRkMTEwIikpLm9rPSh6ZXJvLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTUiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC41NjI2NyIpOworICAobmV3IFRlc3QoImFkZDExMSIpKS5vaz0oemVyby5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTU2MjY3RS00IikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTUuNjI2NyIpOworICAobmV3IFRlc3QoImFkZDExMiIpKS5vaz0oemVyby5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTU2MjY3RS0zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTU2LjI2NyIpOworICAobmV3IFRlc3QoImFkZDExMyIpKS5vaz0oemVyby5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTU2MjY3RS0yIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTU2Mi42NyIpOworICAobmV3IFRlc3QoImFkZDExNCIpKS5vaz0oemVyby5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTU2MjY3RS0xIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTU2MjYuNyIpOworICAobmV3IFRlc3QoImFkZDExNSIpKS5vaz0oemVyby5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTU2MjY3RS0wIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTU2MjY3Iik7CisgIChuZXcgVGVzdCgiYWRkMTE2IikpLm9rPSh6ZXJvLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNUUtMTAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC4wMDAwMDAwMDA1Iik7CisgIChuZXcgVGVzdCgiYWRkMTE3IikpLm9rPSh6ZXJvLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNUUtNSIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjAwMDA1Iik7CisgIChuZXcgVGVzdCgiYWRkMTE4IikpLm9rPSh6ZXJvLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNUUtMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjUiKTsKKyAgKG5ldyBUZXN0KCJhZGQxMjkiKSkub2s9KHplcm8uYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01RS0xMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjAwMDAwMDAwMDUiKTsKKyAgKG5ldyBUZXN0KCJhZGQxMzAiKSkub2s9KHplcm8uYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01RS01IikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMDAwMDUiKTsKKyAgKG5ldyBUZXN0KCJhZGQxMzEiKSkub2s9KHplcm8uYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01RS0xIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuNSIpOworICAobmV3IFRlc3QoImFkZDEzMiIpKS5vaz0oemVyby5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTVFMTAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItNTAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJhZGQxMzMiKSkub2s9KHplcm8uYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01RTUiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItNTAwMDAwIik7CisgIChuZXcgVGVzdCgiYWRkMTM0IikpLm9rPSh6ZXJvLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNUUxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTUwIik7CisgIChuZXcgVGVzdCgiYWRkMTM1IikpLm9rPSh6ZXJvLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNUUwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTUiKTsKKyAgCisgIC8vIFtzb21lIG9mIHRoZSBuZXh0IGdyb3VwIGFyZSByZWFsbHkgY29uc3RydWN0b3IgdGVzdHNdCisgIChuZXcgVGVzdCgiYWRkMTQwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAuMCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJhZGQxNDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMC4wIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImFkZDE0MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4zIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMy4zIik7CisgIChuZXcgVGVzdCgiYWRkMTQzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMy4iKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4zIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMy4zIik7CisgIChuZXcgVGVzdCgiYWRkMTQ0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMy4wIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjMuMyIpOworICAobmV3IFRlc3QoImFkZDE0NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMuMDAiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4zIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMy4zMCIpOworICAobmV3IFRlc3QoImFkZDE0NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCI2Iik7CisgIChuZXcgVGVzdCgiYWRkMTQ3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCI2Iik7CisgIChuZXcgVGVzdCgiYWRkMTQ4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiYWRkMTQ5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMyIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMDMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIAorICAobmV3IFRlc3QoImFkZDE1MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwLjAiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwIik7CisgIChuZXcgVGVzdCgiYWRkMTUxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAuMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAiKTsKKyAgKG5ldyBUZXN0KCJhZGQxNTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjMuMyIpOworICAobmV3IFRlc3QoImFkZDE1MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMuIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjMuMyIpOworICAobmV3IFRlc3QoImFkZDE1NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMuMCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIzLjMiKTsKKyAgKG5ldyBUZXN0KCJhZGQxNTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzLjAwIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjMuMzAiKTsKKyAgKG5ldyBUZXN0KCJhZGQxNTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLnRvU3RyaW5nKCkpLmVxdWFscygiNiIpOworICAobmV3IFRlc3QoImFkZDE1NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIiszIikpLnRvU3RyaW5nKCkpLmVxdWFscygiNiIpOworICAobmV3IFRlc3QoImFkZDE1OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImFkZDE1OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoImFkZDE2MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDMiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjAzIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMCIpOworICAobmV3IFRlc3QoImFkZDE2MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjdFKzEyIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpLG1jZmQpLnRvU3RyaW5nKCkpLmVxdWFscygiNjk5OTk5OTk5OTk5OSIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQxNjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3RSsxMiIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4xMSIpLG1jZmQpLnRvU3RyaW5nKCkpLmVxdWFscygiNzAwMDAwMDAwMDAwMS4xMSIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQxNjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjExIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3RSsxMiIpLG1jZmQpLnRvU3RyaW5nKCkpLmVxdWFscygiNzAwMDAwMDAwMDAwMS4xMSIpOworICAKKyAgCisgIC8vIGlucHV0IHByZXBhcmF0aW9uIHRlc3RzCisgIGFsaHM9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDU2Nzg5MDAwMDAiKTsKKyAgYXJocz1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OTk5OTk5OTk5Iik7CisgIChuZXcgVGVzdCgiYWRkMTcwIikpLm9rPShhbGhzLmFkZChhcmhzLG1jMykudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjIzRSsxMyIpOworICAobmV3IFRlc3QoImFkZDE3MSIpKS5vaz0oYXJocy5hZGQoYWxocyxtYzMpLnRvU3RyaW5nKCkpLmVxdWFscygiMi4yM0UrMTMiKTsKKyAgKG5ldyBUZXN0KCJhZGQxNzIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMkUrMyIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzQ1NiIpLG1jMykudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjU1RSs0Iik7CisgIC8vIG5leHQgd2FzIDEuNTRFKzQgdW5kZXIgb2xkIFt0cnVuY2F0ZSB0byBkaWdpdHMrMV0gcnVsZXMKKyAgKG5ldyBUZXN0KCJhZGQxNzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMkUrMyIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzQ0NiIpLG1jMykudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjU1RSs0Iik7CisgIChuZXcgVGVzdCgiYWRkMTc0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTJFKzMiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjM0NTQiKSxtYzMpLnRvU3RyaW5nKCkpLmVxdWFscygiMS41NUUrNCIpOworICAobmV3IFRlc3QoImFkZDE3NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyRSszIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzNDQ0IiksbWMzKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNTRFKzQiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMTc2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzQ1NiIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTJFKzMiKSxtYzMpLnRvU3RyaW5nKCkpLmVxdWFscygiMS41NUUrNCIpOworICAvLyBuZXh0IHdhcyAxLjU0RSs0IHVuZGVyIG9sZCBbdHJ1bmNhdGUgdG8gZGlnaXRzKzFdIHJ1bGVzCisgIChuZXcgVGVzdCgiYWRkMTc3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzQ0NiIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTJFKzMiKSxtYzMpLnRvU3RyaW5nKCkpLmVxdWFscygiMS41NUUrNCIpOworICAobmV3IFRlc3QoImFkZDE3OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjM0NTQiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyRSszIiksbWMzKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNTVFKzQiKTsKKyAgKG5ldyBUZXN0KCJhZGQxNzkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzNDQ0IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMkUrMyIpLG1jMykudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjU0RSs0Iik7CisgIAorICB0cnl7Y2hlY2tudWxsOmRveworICAgdGVuLmFkZCgoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDIyKXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsKi8KKyAgKG5ldyBUZXN0KCJhZGQyMDAiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrbnVsbDI6ZG97CisgICB0ZW4uYWRkKHRlbiwoY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQyMyl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbDIqLworICAobmV3IFRlc3QoImFkZDIwMSIpKS5vaz1mbGFnOworICAKKyAgdHJ5e2NoZWNrZGlnaXRzOmRveworICAgdGVubG9uZy5hZGQoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlpFUk8sbWNsZCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQyNCl7YWU9JDI0OworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlRvbyBtYW55IGRpZ2l0czoiKyIgIit0ZW5sb25nLnRvU3RyaW5nKCkpOworICB9LypjaGVja2RpZ2l0cyovCisgIChuZXcgVGVzdCgiYWRkMjAyIikpLm9rPWZsYWc7CisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5aRVJPLmFkZCh0ZW5sb25nLG1jbGQpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMjUpe2FlPSQyNTsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJUb28gbWFueSBkaWdpdHM6IisiICIrdGVubG9uZy50b1N0cmluZygpKTsKKyAgfS8qY2hlY2tkaWdpdHMqLworICAobmV3IFRlc3QoImFkZDIwMyIpKS5vaz1mbGFnOworICAKKyAgLy8gY2hlY2sgbG9zdGRpZ2l0cyBub3QgcmFpc2VkIGlmIGRpZ2l0cz0wIFtkeWFkaWMgbWV0aG9kXQorICB0cnl7Y2hlY2tkaWdpdHM6ZG97CisgICB0ZW5sb25nLmFkZChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuWkVSTyxtY2xkMCk7CisgICBmbGFnPXRydWU7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDI2KXthZT0kMjY7CisgICBmbGFnPWZhbHNlOworICB9LypjaGVja2RpZ2l0cyovCisgIChuZXcgVGVzdCgiYWRkMjA0IikpLm9rPWZsYWc7CisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5aRVJPLmFkZCh0ZW5sb25nLG1jbGQwKTsKKyAgIGZsYWc9dHJ1ZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMjcpe2FlPSQyNzsKKyAgIGZsYWc9ZmFsc2U7CisgIH0vKmNoZWNrZGlnaXRzKi8KKyAgKG5ldyBUZXN0KCJhZGQyMDUiKSkub2s9ZmxhZzsKKyAgCisgIHN1bW1hcnkoImFkZCIpOworICByZXR1cm47fQorCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAvKiogVGVzdCB0aGUge0BsaW5rIEJpZ0RlY2ltYWwjY29tcGFyZVRvKEJpZ0RlY2ltYWwpfSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ2NvbXBhcmV0bygpeworICBib29sZWFuIGZsYWc9ZmFsc2U7CisgIGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uIGFlPW51bGw7CisgIC8vIHdlIGFzc3VtZSBhZGQvc3VidHJhY3QgdGVzdCBmdW5jdGlvbjsgdGhpcyBqdXN0CisgIC8vIHRlc3RzIGV4aXN0ZW5jZSwgZXhjZXB0aW9ucywgYW5kIHBvc3NpYmxlIHJlc3VsdHMKKyAgCisgIChuZXcgVGVzdCgiY3B0MDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5jb21wYXJlVG8obmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKSk9PTE7CisgIChuZXcgVGVzdCgiY3B0MDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5jb21wYXJlVG8obmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKSk9PTA7CisgIChuZXcgVGVzdCgiY3B0MDAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5jb21wYXJlVG8obmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNS4wMCIpKSk9PTA7CisgIChuZXcgVGVzdCgiY3B0MDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41IikpLmNvbXBhcmVUbyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUiKSkpPT0wOworICAobmV3IFRlc3QoImNwdDAwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkuY29tcGFyZVRvKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkpPT0oLTEpOworICAobmV3IFRlc3QoImNwdDAwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkuY29tcGFyZVRvKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSxtY2RlZikpPT0oLTEpOworICAobmV3IFRlc3QoImNwdDAwNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkuY29tcGFyZVRvKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSxtYzYpKT09KC0xKTsKKyAgKG5ldyBUZXN0KCJjcHQwMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLmNvbXBhcmVUbyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IiksbWNmZCkpPT0oLTEpOworICB0cnl7Y2hlY2tudWxsOmRveworICAgdGVuLmNvbXBhcmVUbygoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDI4KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsKi8KKyAgKG5ldyBUZXN0KCJjcHQxMDAiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrbnVsbDI6ZG97CisgICB0ZW4uY29tcGFyZVRvKHRlbiwoY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQyOSl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbDIqLworICAobmV3IFRlc3QoImNwdDEwMSIpKS5vaz1mbGFnOworICAKKyAgdHJ5e2NoZWNrZGlnaXRzOmRveworICAgdGVubG9uZy5jb21wYXJlVG8oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORSxtY2xkKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDMwKXthZT0kMzA7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiVG9vIG1hbnkgZGlnaXRzOiIrIiAiK3RlbmxvbmcudG9TdHJpbmcoKSk7CisgIH0vKmNoZWNrZGlnaXRzKi8KKyAgKG5ldyBUZXN0KCJjcHQxMDIiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrZGlnaXRzOmRveworICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORS5jb21wYXJlVG8odGVubG9uZyxtY2xkKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDMxKXthZT0kMzE7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiVG9vIG1hbnkgZGlnaXRzOiIrIiAiK3RlbmxvbmcudG9TdHJpbmcoKSk7CisgIH0vKmNoZWNrZGlnaXRzKi8KKyAgKG5ldyBUZXN0KCJjcHQxMDMiKSkub2s9ZmxhZzsKKyAgCisgIHN1bW1hcnkoImNvbXBhcmVUbyIpOworICByZXR1cm47fQorCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIEJpZ0RlY2ltYWwjZGl2aWRlfSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ2RpdmlkZSgpeworICBib29sZWFuIGZsYWc9ZmFsc2U7CisgIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgcm1jZDsKKyAgaW50IHJodTsKKyAgaW50IHJkOworICBpbnQgcnU7CisgIGphdmEubGFuZy5SdW50aW1lRXhjZXB0aW9uIGU9bnVsbDsKKyAgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gYWU9bnVsbDsKKyAgCisgIChuZXcgVGVzdCgiZGl2MzAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMzMzMzMzMzMzIik7CisgIChuZXcgVGVzdCgiZGl2MzAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNjY2NjY2NjY3Iik7CisgIChuZXcgVGVzdCgiZGl2MzAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMi40Iik7CisgIChuZXcgVGVzdCgiZGl2MzA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIi0yLjQiKTsKKyAgKG5ldyBUZXN0KCJkaXYzMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMi40IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIuNCIpOworICAobmV3IFRlc3QoImRpdjMwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yLjQiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMi40Iik7CisgIChuZXcgVGVzdCgiZGl2MzA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40MCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjIuNCIpOworICAobmV3IFRlc3QoImRpdjMwOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNDAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMi40Iik7CisgIChuZXcgVGVzdCgiZGl2MzA5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yIik7CisgIChuZXcgVGVzdCgiZGl2MzEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40MDAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjIiKTsKKyAgKG5ldyBUZXN0KCJkaXYzMTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLiIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJkaXYzMTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMjAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgiZGl2MzEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTg3IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxODciKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgiZGl2MzE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjIuNSIpOworICAobmV3IFRlc3QoImRpdjMxNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjIuNSIpOworICAobmV3IFRlc3QoImRpdjMxNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuMDAwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMi41Iik7CisgIChuZXcgVGVzdCgiZGl2MzE3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4yMDAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIyNSIpOworICAobmV3IFRlc3QoImRpdjMxOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OTk5OTk5OSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjk5OTk5OTk5OSIpOworICAobmV3IFRlc3QoImRpdjMxOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OTk5OTk5OS40IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiOTk5OTk5OTk5Iik7CisgIChuZXcgVGVzdCgiZGl2MzIwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTk5OTk5LjUiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxRSs5Iik7CisgIChuZXcgVGVzdCgiZGl2MzIxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTk5OTk5LjkiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxRSs5Iik7CisgIChuZXcgVGVzdCgiZGl2MzIyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTk5OTk5Ljk5OSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjFFKzkiKTsKKyAgKG5ldyBUZXN0KCJkaXYzMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMDBFLTUwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAvLyBNQworICAobmV3IFRlc3QoImRpdjMyNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OTk5OTk5OSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjk5OTk5OTk5OSIpOworICAobmV3IFRlc3QoImRpdjMyNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OTk5OTk5OSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpLG1jNikudG9TdHJpbmcoKSkuZXF1YWxzKCIxRSs5Iik7CisgIChuZXcgVGVzdCgiZGl2MzI3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTk5OSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpLG1jNikudG9TdHJpbmcoKSkuZXF1YWxzKCIxRSs3Iik7CisgIChuZXcgVGVzdCgiZGl2MzI4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTk5IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksbWM2KS50b1N0cmluZygpKS5lcXVhbHMoIjk5OTk5OSIpOworICAKKyAgLy8gY2hlY2sgcm91bmRpbmcgZXhwbGljaXRseSBbbm90ZTogZGlnaXRzKzEgdHJ1bmNhdGlvbl0KKyAgcm1jZD1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuU0NJRU5USUZJQyxmYWxzZSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0NFSUxJTkcpOworICAobmV3IFRlc3QoImRpdjMzMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuNTAiKSkuZGl2aWRlKG9uZSxybWNkKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNSIpOworICAobmV3IFRlc3QoImRpdjMzMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuNTEiKSkuZGl2aWRlKG9uZSxybWNkKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNiIpOworICAobmV3IFRlc3QoImRpdjMzMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuNTUiKSkuZGl2aWRlKG9uZSxybWNkKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNiIpOworICBybWNkPW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDLGZhbHNlLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfRE9XTik7CisgIChuZXcgVGVzdCgiZGl2MzMzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS41NSIpKS5kaXZpZGUob25lLHJtY2QpLnRvU3RyaW5nKCkpLmVxdWFscygiMS41Iik7CisgIChuZXcgVGVzdCgiZGl2MzM0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS41OSIpKS5kaXZpZGUob25lLHJtY2QpLnRvU3RyaW5nKCkpLmVxdWFscygiMS41Iik7CisgIHJtY2Q9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlNDSUVOVElGSUMsZmFsc2UsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9GTE9PUik7CisgIChuZXcgVGVzdCgiZGl2MzM1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS41NSIpKS5kaXZpZGUob25lLHJtY2QpLnRvU3RyaW5nKCkpLmVxdWFscygiMS41Iik7CisgIChuZXcgVGVzdCgiZGl2MzM2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS41OSIpKS5kaXZpZGUob25lLHJtY2QpLnRvU3RyaW5nKCkpLmVxdWFscygiMS41Iik7CisgIHJtY2Q9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlNDSUVOVElGSUMsZmFsc2UsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV04pOworICAobmV3IFRlc3QoImRpdjMzNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuNDUiKSkuZGl2aWRlKG9uZSxybWNkKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNCIpOworICAobmV3IFRlc3QoImRpdjMzOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuNTAiKSkuZGl2aWRlKG9uZSxybWNkKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNSIpOworICAobmV3IFRlc3QoImRpdjMzOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuNTUiKSkuZGl2aWRlKG9uZSxybWNkKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNSIpOworICBybWNkPW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDLGZhbHNlLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKTsKKyAgKG5ldyBUZXN0KCJkaXYzNDAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjQ1IikpLmRpdmlkZShvbmUscm1jZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjQiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjUwIikpLmRpdmlkZShvbmUscm1jZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjUiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjU1IikpLmRpdmlkZShvbmUscm1jZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjYiKTsKKyAgcm1jZD1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuU0NJRU5USUZJQyxmYWxzZSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApOworICAobmV3IFRlc3QoImRpdjM0MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuNDUiKSkuZGl2aWRlKG9uZSxybWNkKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNSIpOworICAobmV3IFRlc3QoImRpdjM0NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuNTAiKSkuZGl2aWRlKG9uZSxybWNkKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNSIpOworICAobmV3IFRlc3QoImRpdjM0NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuNTUiKSkuZGl2aWRlKG9uZSxybWNkKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNiIpOworICBybWNkPW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDLGZhbHNlLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVVApOworICAobmV3IFRlc3QoImRpdjM0NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuNTAiKSkuZGl2aWRlKG9uZSxybWNkKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNSIpOworICAobmV3IFRlc3QoImRpdjM0NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuNTEiKSkuZGl2aWRlKG9uZSxybWNkKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNiIpOworICAobmV3IFRlc3QoImRpdjM0OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuNTUiKSkuZGl2aWRlKG9uZSxybWNkKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNiIpOworICAKKyAgLy8gZml4ZWQgcG9pbnQuLi4KKyAgKG5ldyBUZXN0KCJkaXYzNTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImRpdjM1MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgiZGl2MzUyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMi40Iik7CisgIChuZXcgVGVzdCgiZGl2MzUzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0yLjQiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMi40IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIuNCIpOworICAobmV3IFRlc3QoImRpdjM1NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yLjQiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMi40Iik7CisgIChuZXcgVGVzdCgiZGl2MzU2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40MCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIuNDAiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQwMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIuNDAwIik7CisgIChuZXcgVGVzdCgiZGl2MzU4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yIik7CisgIChuZXcgVGVzdCgiZGl2MzU5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40MDAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjIwMCIpOworICAobmV3IFRlc3QoImRpdjM2MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoImRpdjM2MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxODciKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjE4NyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMyIpOworICAobmV3IFRlc3QoImRpdjM2NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjMiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNjUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjMiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjIwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjI1Iik7CisgIChuZXcgVGVzdCgiZGl2MzY3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNS4wIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMi41Iik7CisgIChuZXcgVGVzdCgiZGl2MzY4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNS4wIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjUiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNjkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMi41Iik7CisgIChuZXcgVGVzdCgiZGl2MzcwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNS4wIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjIwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjI1LjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OTk5OTkiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5OTk5OTk5OTkiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNzIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OTk5OTkuNCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjk5OTk5OTk5OS40Iik7CisgIChuZXcgVGVzdCgiZGl2MzczIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTk5OTk5LjUiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5OTk5OTk5OTkuNSIpOworICAobmV3IFRlc3QoImRpdjM3NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OTk5OTk5OS45IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTk5OTk5OTk5LjkiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNzUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OTk5OTkuOTk5IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTk5OTk5OTk5Ljk5OSIpOworICAobmV3IFRlc3QoImRpdjM3NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwMEUtNSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNzciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMDAwMDAwMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDAwMDAwIik7CisgIAorICAvLy0gRml4ZWQgcG9pbnQ7IGV4cGxpY2l0IHNjYWxlcyAmIHJvdW5kcyBbb2xkIEJpZ0RlY2ltYWwgZGl2aWRlc10KKyAgcmh1PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUDsKKyAgcmQ9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9ET1dOOworICAobmV3IFRlc3QoImRpdjAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiZGl2MDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiZGl2MDAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLDAscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksMSxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgiZGl2MDA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLDIscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksMyxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksNCxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwIik7CisgIChuZXcgVGVzdCgiZGl2MDA4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksMCxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImRpdjAxMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSwxLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjMiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksMixyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4zMyIpOworICAobmV3IFRlc3QoImRpdjAxMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSwzLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjMzMyIpOworICAobmV3IFRlc3QoImRpdjAxNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSw0LHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjMzMzMiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoImRpdjAxNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoImRpdjAxNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSwwLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgiZGl2MDE4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLDEscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuNyIpOworICAobmV3IFRlc3QoImRpdjAxOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSwyLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjY3Iik7CisgIChuZXcgVGVzdCgiZGl2MDIwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLDMscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuNjY3Iik7CisgIChuZXcgVGVzdCgiZGl2MDIxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLDQscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuNjY2NyIpOworICAKKyAgKG5ldyBUZXN0KCJkaXYwMzAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyMDAwIiksNCxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41MDAwIik7CisgIChuZXcgVGVzdCgiZGl2MDMxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMjAwMCIpLDMscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuNTAwIik7CisgIChuZXcgVGVzdCgiZGl2MDMyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMjAwMCIpLDIscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuNTAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyMDAwIiksMSxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41Iik7CisgIChuZXcgVGVzdCgiZGl2MDM0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMjAwMCIpLDAscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgCisgIChuZXcgVGVzdCgiZGl2MDM1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1MDAwIiksNCxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMjAwIik7CisgIChuZXcgVGVzdCgiZGl2MDM2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1MDAwIiksMyxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMzciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUwMDAiKSwyLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAyIik7CisgIChuZXcgVGVzdCgiZGl2MDM4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1MDAwIiksMSxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgiZGl2MDM5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1MDAwIiksMCxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAKKyAgKG5ldyBUZXN0KCJkaXYwNDAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5OTk5IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3Nzc3Nzc3IiksNCxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMjI3Iik7CisgIChuZXcgVGVzdCgiZGl2MDQxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS45OTk5OTk5IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3Nzc3NzciKSw0LHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAyMjciKTsKKyAgKG5ldyBUZXN0KCJkaXYwNDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5OSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS43Nzc3NzciKSw0LHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAyMjciKTsKKyAgKG5ldyBUZXN0KCJkaXYwNDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3Nzc3Nzc3IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5OTk5IiksNCxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45Nzc4Iik7CisgIChuZXcgVGVzdCgiZGl2MDQ0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS43Nzc3Nzc3IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5OTkiKSw0LHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk3NzgiKTsKKyAgKG5ldyBUZXN0KCJkaXYwNDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3Nzc3NyIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS45OTk5OTkiKSw0LHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk3NzgiKTsKKyAgKG5ldyBUZXN0KCJkaXYwNDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3Nzc3IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5IiksNCxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45Nzc4Iik7CisgIChuZXcgVGVzdCgiZGl2MDQ3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS43Nzc3IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTkiKSw0LHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk3NzgiKTsKKyAgKG5ldyBUZXN0KCJkaXYwNDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3NyIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS45OTkiKSw0LHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk3NzgiKTsKKyAgKG5ldyBUZXN0KCJkaXYwNDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5IiksNCxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45NzgwIik7CisgIChuZXcgVGVzdCgiZGl2MDUwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS43IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5LjkiKSw0LHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk3OTgiKTsKKyAgKG5ldyBUZXN0KCJkaXYwNTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5LiIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS4iKSw0LHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgiZGl2MDYwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS45OTk5OTk5OSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS43Nzc3Nzc3NyIpLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAyMjcyNzI3Iik7CisgIChuZXcgVGVzdCgiZGl2MDYxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS45OTk5OTk5IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3Nzc3NzciKSxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMjI3MjczIik7CisgIChuZXcgVGVzdCgiZGl2MDYyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS45OTk5OTkiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuNzc3Nzc3Iikscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDIyNzI3Iik7CisgIChuZXcgVGVzdCgiZGl2MDYzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS43Nzc3Nzc3NyIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS45OTk5OTk5OSIpLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk3Nzc3Nzc4Iik7CisgIChuZXcgVGVzdCgiZGl2MDY0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS43Nzc3Nzc3IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5OTkiKSxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45Nzc3Nzc4Iik7CisgIChuZXcgVGVzdCgiZGl2MDY1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS43Nzc3NzciKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOTk5OTk5Iikscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTc3Nzc4Iik7CisgIChuZXcgVGVzdCgiZGl2MDY2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS43Nzc3NyIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS45OTk5OSIpLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk3Nzc4Iik7CisgIChuZXcgVGVzdCgiZGl2MDY3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS43Nzc3IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTkiKSxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45Nzc4Iik7CisgIChuZXcgVGVzdCgiZGl2MDY4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS43NzciKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOTk5Iikscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTc4Iik7CisgIChuZXcgVGVzdCgiZGl2MDY5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS43NyIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS45OSIpLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk4Iik7CisgIChuZXcgVGVzdCgiZGl2MDcwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS43IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5LjkiKSxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wIik7CisgIChuZXcgVGVzdCgiZGl2MDcxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS4iKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuIikscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgCisgIHJkPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfRE9XTjsgLy8gdGVzdCB0aGlzIGlzIGFjdHVhbGx5IGJlaW5nIHVzZWQKKyAgKG5ldyBUZXN0KCJkaXYwODAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksMCxyZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiZGl2MDgxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLDEscmQpLnRvU3RyaW5nKCkpLmVxdWFscygiMC42Iik7CisgIChuZXcgVGVzdCgiZGl2MDgyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLDIscmQpLnRvU3RyaW5nKCkpLmVxdWFscygiMC42NiIpOworICAobmV3IFRlc3QoImRpdjA4MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSwzLHJkKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNjY2Iik7CisgIChuZXcgVGVzdCgiZGl2MDg0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLDQscmQpLnRvU3RyaW5nKCkpLmVxdWFscygiMC42NjY2Iik7CisgIAorICBydT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VOTkVDRVNTQVJZOyAvLyBjaGVjayBmb3Igc29tZSAwIHJlc2lkdWVzCisgIChuZXcgVGVzdCgiZGl2MDkwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpLDQscnUpLnRvU3RyaW5nKCkpLmVxdWFscygiMjAwLjAwMDAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwOTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1MCIpLDQscnUpLnRvU3RyaW5nKCkpLmVxdWFscygiMjAuMDAwMCIpOworICAobmV3IFRlc3QoImRpdjA5MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUwMCIpLDQscnUpLnRvU3RyaW5nKCkpLmVxdWFscygiMi4wMDAwIik7CisgIChuZXcgVGVzdCgiZGl2MDkzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNTAwMCIpLDQscnUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4yMDAwIik7CisgIChuZXcgVGVzdCgiZGl2MDk0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNTAwMCIpLDMscnUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4yMDAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwOTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1MDAwIiksMixydSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjIwIik7CisgIChuZXcgVGVzdCgiZGl2MDk2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNTAwMCIpLDEscnUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4yIik7CisgIAorICAvLyBjaGVjayByb3VuZGluZyBleHBsaWNpdGx5CisgIChuZXcgVGVzdCgiZGl2MTAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTUiKSkuZGl2aWRlKG9uZSwyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfQ0VJTElORykudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjA2Iik7CisgIChuZXcgVGVzdCgiZGl2MTAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTUiKSkuZGl2aWRlKG9uZSwxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfQ0VJTElORykudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1NSIpKS5kaXZpZGUob25lLDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9DRUlMSU5HKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1NSIpKS5kaXZpZGUob25lLDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9ET1dOKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDUiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1NSIpKS5kaXZpZGUob25lLDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9ET1dOKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoImRpdjEwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDU1IikpLmRpdmlkZShvbmUsMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImRpdjEwNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDU1IikpLmRpdmlkZShvbmUsMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0ZMT09SKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDUiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1NSIpKS5kaXZpZGUob25lLDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9GTE9PUikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1NSIpKS5kaXZpZGUob25lLDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9GTE9PUikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIAorICAobmV3IFRlc3QoImRpdjExMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDQ1IikpLmRpdmlkZShvbmUsMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRE9XTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjA0Iik7CisgIChuZXcgVGVzdCgiZGl2MTExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNDUiKSkuZGl2aWRlKG9uZSwxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9ET1dOKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoImRpdjExMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDQ1IikpLmRpdmlkZShvbmUsMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRE9XTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiZGl2MTEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTAiKSkuZGl2aWRlKG9uZSwyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9ET1dOKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDUiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1MCIpKS5kaXZpZGUob25lLDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgiZGl2MTE1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTAiKSkuZGl2aWRlKG9uZSwwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9ET1dOKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1NSIpKS5kaXZpZGUob25lLDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wNSIpOworICAobmV3IFRlc3QoImRpdjExNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDU1IikpLmRpdmlkZShvbmUsMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRE9XTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMTgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1NSIpKS5kaXZpZGUob25lLDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAKKyAgKG5ldyBUZXN0KCJkaXYxMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA0NSIpKS5kaXZpZGUob25lLDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wNCIpOworICAobmV3IFRlc3QoImRpdjEyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDQ1IikpLmRpdmlkZShvbmUsMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA0NSIpKS5kaXZpZGUob25lLDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImRpdjEyMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDUwIikpLmRpdmlkZShvbmUsMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjA1Iik7CisgIChuZXcgVGVzdCgiZGl2MTI0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTAiKSkuZGl2aWRlKG9uZSwxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoImRpdjEyNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDUwIikpLmRpdmlkZShvbmUsMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiZGl2MTI2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xNTAiKSkuZGl2aWRlKG9uZSwyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMTUiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMjciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjE1MCIpKS5kaXZpZGUob25lLDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4yIik7CisgIChuZXcgVGVzdCgiZGl2MTI4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xNTAiKSkuZGl2aWRlKG9uZSwwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMjkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1NSIpKS5kaXZpZGUob25lLDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wNiIpOworICAobmV3IFRlc3QoImRpdjEzMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDU1IikpLmRpdmlkZShvbmUsMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1NSIpKS5kaXZpZGUob25lLDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAKKyAgKG5ldyBUZXN0KCJkaXYxNDAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA0NSIpKS5kaXZpZGUob25lLDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDUiKTsKKyAgKG5ldyBUZXN0KCJkaXYxNDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA0NSIpKS5kaXZpZGUob25lLDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoImRpdjE0MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDQ1IikpLmRpdmlkZShvbmUsMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImRpdjE0MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDUwIikpLmRpdmlkZShvbmUsMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wNSIpOworICAobmV3IFRlc3QoImRpdjE0NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDUwIikpLmRpdmlkZShvbmUsMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xIik7CisgIChuZXcgVGVzdCgiZGl2MTQ1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTAiKSkuZGl2aWRlKG9uZSwwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiZGl2MTQ2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTUiKSkuZGl2aWRlKG9uZSwyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjA2Iik7CisgIChuZXcgVGVzdCgiZGl2MTQ3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTUiKSkuZGl2aWRlKG9uZSwxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJkaXYxNDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1NSIpKS5kaXZpZGUob25lLDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgCisgIChuZXcgVGVzdCgiZGl2MTUwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTUiKSkuZGl2aWRlKG9uZSwyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wNiIpOworICAobmV3IFRlc3QoImRpdjE1MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDU1IikpLmRpdmlkZShvbmUsMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoImRpdjUyLiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDU1IikpLmRpdmlkZShvbmUsMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgCisgIC8vLSBlcnJvciBjb25kaXRpb25zIC0tLQorICB0cnl7Y2hlY2tudWxsOmRveworICAgdGVuLmRpdmlkZSgoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDMyKXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsKi8KKyAgKG5ldyBUZXN0KCJkaXYyMDEiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrbnVsbDI6ZG97CisgICB0ZW4uZGl2aWRlKHRlbiwoY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQzMyl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbDIqLworICAobmV3IFRlc3QoImRpdjIwMiIpKS5vaz1mbGFnOworICAKKyAgdHJ5e2NoZWNrc2NhbGU6ZG97CisgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLC04LDApOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuUnVudGltZUV4Y2VwdGlvbiAkMzQpe2U9JDM0OworICAgZmxhZz1mbGFnJihlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJOZWdhdGl2ZSBzY2FsZTogLTgiKTsKKyAgfS8qY2hlY2tzY2FsZSovCisgIChuZXcgVGVzdCgiZGl2MjAzIikpLm9rPWZsYWc7CisgIAorICB0cnl7cm91bm46ZG97CisgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNTAwMCIpLDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWSk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQzNSl7YWU9JDM1OworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlJvdW5kaW5nIG5lY2Vzc2FyeSIpOworICB9Lypyb3VubiovCisgIChuZXcgVGVzdCgiZGl2MjA0IikpLm9rPWZsYWc7CisgIHRyeXtyb3Vubjpkb3sKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAxIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpLDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWSk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQzNil7YWU9JDM2OworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlJvdW5kaW5nIG5lY2Vzc2FyeSIpOworICB9Lypyb3VubiovCisgIChuZXcgVGVzdCgiZGl2MjA1IikpLm9rPWZsYWc7CisgIHRyeXtyb3Vubjpkb3sKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAxIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAiKSwxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVU5ORUNFU1NBUlkpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMzcpe2FlPSQzNzsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJSb3VuZGluZyBuZWNlc3NhcnkiKTsKKyAgfS8qcm91bm4qLworICAobmV3IFRlc3QoImRpdjIwNiIpKS5vaz1mbGFnOworICB0cnl7cm91bm46ZG97CisgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDEiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwIiksMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VOTkVDRVNTQVJZKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDM4KXthZT0kMzg7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiUm91bmRpbmcgbmVjZXNzYXJ5Iik7CisgIH0vKnJvdW5uKi8KKyAgKG5ldyBUZXN0KCJkaXYyMDciKSkub2s9ZmxhZzsKKyAgdHJ5e3JvdW5uOmRveworICAgKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDAwMSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpLDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWSk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQzOSl7YWU9JDM5OworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlJvdW5kaW5nIG5lY2Vzc2FyeSIpOworICB9Lypyb3VubiovCisgIChuZXcgVGVzdCgiZGl2MjA4IikpLm9rPWZsYWc7CisgIAorICB0cnl7ZGl2MDpkb3sKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwIikpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNDApe2FlPSQ0MDsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJEaXZpZGUgYnkgMCIpOworICB9LypkaXYwKi8KKyAgKG5ldyBUZXN0KCJkaXYyMDkiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIHRlbmxvbmcuZGl2aWRlKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUsbWNsZCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ0MSl7YWU9JDQxOworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlRvbyBtYW55IGRpZ2l0czoiKyIgIit0ZW5sb25nLnRvU3RyaW5nKCkpOworICB9LypjaGVja2RpZ2l0cyovCisgIChuZXcgVGVzdCgiZGl2MjEwIikpLm9rPWZsYWc7CisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUuZGl2aWRlKHRlbmxvbmcsbWNsZCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ0Mil7YWU9JDQyOworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlRvbyBtYW55IGRpZ2l0czoiKyIgIit0ZW5sb25nLnRvU3RyaW5nKCkpOworICB9LypjaGVja2RpZ2l0cyovCisgIChuZXcgVGVzdCgiZGl2MjExIikpLm9rPWZsYWc7CisgIAorICBzdW1tYXJ5KCJkaXZpZGUiKTsKKyAgcmV0dXJuO30KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBCaWdEZWNpbWFsI2RpdmlkZUludGVnZXJ9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnZGl2aWRlSW50ZWdlcigpeworICBib29sZWFuIGZsYWc9ZmFsc2U7CisgIGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uIGFlPW51bGw7CisgIAorICAobmV3IFRlc3QoImR2STAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMS4zIikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMSIpOworICAobmV3IFRlc3QoImR2STAwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMS4wIikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMSIpOworICAobmV3IFRlc3QoImR2STAwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMS4zIikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjMzIik7CisgIChuZXcgVGVzdCgiZHZJMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAxLjAiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMzMiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMiIpOworICAobmV3IFRlc3QoImR2STAwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNDAwIikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjIiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxOCIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjE4IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoImR2STAwOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjExMjAiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoImR2STAwOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNCIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgiZHZJMDEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40MDAiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoImR2STAxMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNSIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuMDAwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImR2STAxMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjguMDA1IikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjIiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwIikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgLy8gTUMKKyAgKG5ldyBUZXN0KCJkdkkwMTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jZSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyIik7CisgIChuZXcgVGVzdCgiZHZJMDE3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSxtYzYpLnRvU3RyaW5nKCkpLmVxdWFscygiMiIpOworICAKKyAgLy8gRml4ZWQgLS0KKyAgKG5ldyBUZXN0KCJkdkkwMjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDEuMyIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDEiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDEuMCIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDEiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDEuMyIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIzMyIpOworICAobmV3IFRlc3QoImR2STAyNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMS4wIikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjMzIik7CisgIChuZXcgVGVzdCgiZHZJMDI1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40IikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQwMCIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyIik7CisgIChuZXcgVGVzdCgiZHZJMDI3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTgiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxOCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMTIwIikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMjkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoImR2STAzMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNDAwIikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMzIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI4LjAwNSIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjciKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgiZHZJMDMzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyIik7CisgIChuZXcgVGVzdCgiZHZJMDM0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiZHZJMDM1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMCIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIAorICB0cnl7Y2hlY2tudWxsOmRveworICAgdGVuLmRpdmlkZUludGVnZXIoKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQ0Myl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbCovCisgIChuZXcgVGVzdCgiZHZJMTAxIikpLm9rPWZsYWc7CisgIHRyeXtjaGVja251bGwyOmRveworICAgdGVuLmRpdmlkZUludGVnZXIodGVuLChjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDQ0KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsMiovCisgIChuZXcgVGVzdCgiZHZJMTAyIikpLm9rPWZsYWc7CisgIAorICB0cnl7Y2hlY2tkaWdpdHM6ZG97CisgICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLmRpdmlkZUludGVnZXIodGVubG9uZyxtY2xkKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDQ1KXthZT0kNDU7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiVG9vIG1hbnkgZGlnaXRzOiIrIiAiK3RlbmxvbmcudG9TdHJpbmcoKSk7CisgIH0vKmNoZWNrZGlnaXRzKi8KKyAgKG5ldyBUZXN0KCJkdkkxMDMiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIHRlbmxvbmcuZGl2aWRlSW50ZWdlcihjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLG1jbGQpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNDYpe2FlPSQ0NjsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJUb28gbWFueSBkaWdpdHM6IisiICIrdGVubG9uZy50b1N0cmluZygpKTsKKyAgfS8qY2hlY2tkaWdpdHMqLworICAobmV3IFRlc3QoImR2STEwNCIpKS5vaz1mbGFnOworICAKKyAgc3VtbWFyeSgiZGl2aWRlSW50ZWdlciIpOworICByZXR1cm47fQorLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIEJpZ0RlY2ltYWwjbWF4fSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ21heCgpeworICBib29sZWFuIGZsYWc9ZmFsc2U7CisgIGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uIGFlPW51bGw7CisgIAorICAvLyB3ZSBhc3N1bWUgYWRkL3N1YnRyYWN0IHRlc3QgZnVuY3Rpb247IHRoaXMgYW5kIG1pbiBqdXN0CisgIC8vIHRlc3QgZXhpc3RlbmNlIGFuZCB0ZXN0IHRoZSB0cnV0aCB0YWJsZQorICAobmV3IFRlc3QoIm1heDAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkubWF4KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI1Iik7CisgIChuZXcgVGVzdCgibWF4MDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5tYXgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjUiKTsKKyAgKG5ldyBUZXN0KCJtYXgwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLm1heChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3IikpLnRvU3RyaW5nKCkpLmVxdWFscygiNyIpOworICAobmV3IFRlc3QoIm1heDAwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkubWF4KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjciKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCI3Iik7CisgIChuZXcgVGVzdCgibWF4MDA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5tYXgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNyIpLG1jNikudG9TdHJpbmcoKSkuZXF1YWxzKCI3Iik7CisgIChuZXcgVGVzdCgibWF4MDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMkUrMyIpKS5tYXgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIwMDAiKTsKKyAgKG5ldyBUZXN0KCJtYXgwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyRSszIikpLm1heChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3IiksbWMzKS50b1N0cmluZygpKS5lcXVhbHMoIjJFKzMiKTsKKyAgKG5ldyBUZXN0KCJtYXgwMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3IikpLm1heChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyRSszIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMjAwMCIpOworICAobmV3IFRlc3QoIm1heDAwOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjciKSkubWF4KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjJFKzMiKSxtYzMpLnRvU3RyaW5nKCkpLmVxdWFscygiMkUrMyIpOworICB0cnl7Y2hlY2tudWxsOmRveworICAgdGVuLm1heCgoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDQ3KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsKi8KKyAgKG5ldyBUZXN0KCJtYXgwMTAiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrbnVsbDI6ZG97CisgICB0ZW4ubWF4KHRlbiwoY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQ0OCl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbDIqLworICAobmV3IFRlc3QoIm1heDAxMSIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tkaWdpdHM6ZG97CisgICB0ZW5sb25nLm1heChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLG1jbGQpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNDkpe2FlPSQ0OTsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJUb28gbWFueSBkaWdpdHM6IisiICIrdGVubG9uZy50b1N0cmluZygpKTsKKyAgfS8qY2hlY2tkaWdpdHMqLworICAobmV3IFRlc3QoIm1heDAxMiIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tkaWdpdHM6ZG97CisgICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLm1heCh0ZW5sb25nLG1jbGQpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNTApe2FlPSQ1MDsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJUb28gbWFueSBkaWdpdHM6IisiICIrdGVubG9uZy50b1N0cmluZygpKTsKKyAgfS8qY2hlY2tkaWdpdHMqLworICAobmV3IFRlc3QoIm1heDAxMyIpKS5vaz1mbGFnOworICBzdW1tYXJ5KCJtYXgiKTsKKyAgcmV0dXJuO30KKworIC8qKiBUZXN0IHRoZSB7QGxpbmsgQmlnRGVjaW1hbCNtaW59IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnbWluKCl7CisgIGJvb2xlYW4gZmxhZz1mYWxzZTsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG1pbng9bnVsbDsKKyAgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gYWU9bnVsbDsKKyAgLy8gd2UgYXNzdW1lIGFkZC9zdWJ0cmFjdCB0ZXN0IGZ1bmN0aW9uOyB0aGlzIGFuZCBtYXgganVzdAorICAvLyB0ZXN0IGV4aXN0ZW5jZSBhbmQgdGVzdCB0aGUgdHJ1dGggdGFibGUKKyAgCisgIChuZXcgVGVzdCgibWluMDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5taW4obmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIiKTsKKyAgKG5ldyBUZXN0KCJtaW4wMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLm1pbihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLnRvU3RyaW5nKCkpLmVxdWFscygiNSIpOworICAobmV3IFRlc3QoIm1pbjAwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkubWluKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjciKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyIik7CisgIChuZXcgVGVzdCgibWluMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5taW4obmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjIiKTsKKyAgKG5ldyBUZXN0KCJtaW4wMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLm1pbihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3IiksbWM2KS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJtaW4wMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMkUrMyIpKS5taW4obmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNyIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0yMDAwIik7CisgIChuZXcgVGVzdCgibWluMDA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTJFKzMiKSkubWluKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjciKSxtYzMpLnRvU3RyaW5nKCkpLmVxdWFscygiLTJFKzMiKTsKKyAgKG5ldyBUZXN0KCJtaW4wMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3IikpLm1pbihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMkUrMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0yMDAwIik7CisgIChuZXcgVGVzdCgibWluMDA5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNyIpKS5taW4obmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTJFKzMiKSxtYzMpLnRvU3RyaW5nKCkpLmVxdWFscygiLTJFKzMiKTsKKyAgdHJ5e2NoZWNrbnVsbDpkb3sKKyAgIG1pbng9dGVuOworICAgbWlueC5taW4oKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQ1MSl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbCovCisgIChuZXcgVGVzdCgibWluMDEwIikpLm9rPWZsYWc7CisgIHRyeXtjaGVja251bGwyOmRveworICAgbWlueD10ZW47CisgICBtaW54Lm1pbih0ZW4sKGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQpbnVsbCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiAkNTIpeworICAgZmxhZz10cnVlOworICB9LypjaGVja251bGwyKi8KKyAgKG5ldyBUZXN0KCJtaW4wMTEiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIHRlbmxvbmcubWluKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUsbWNsZCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ1Myl7YWU9JDUzOworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlRvbyBtYW55IGRpZ2l0czoiKyIgIit0ZW5sb25nLnRvU3RyaW5nKCkpOworICB9LypjaGVja2RpZ2l0cyovCisgIChuZXcgVGVzdCgibWluMDEyIikpLm9rPWZsYWc7CisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDkpKS5taW4odGVubG9uZyxtY2xkKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDU0KXthZT0kNTQ7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiVG9vIG1hbnkgZGlnaXRzOiIrIiAiK3RlbmxvbmcudG9TdHJpbmcoKSk7CisgIH0vKmNoZWNrZGlnaXRzKi8KKyAgKG5ldyBUZXN0KCJtaW4wMTMiKSkub2s9ZmxhZzsKKyAgc3VtbWFyeSgibWluIik7CisgIHJldHVybjt9CisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgQmlnRGVjaW1hbCNtdWx0aXBseX0gbWV0aG9kLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWdtdWx0aXBseSgpeworICBib29sZWFuIGZsYWc9ZmFsc2U7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBsOTsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGw3N2U7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBsMTIzNDU7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBlZGdlOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgdGVuZWRnZTsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGh1bmVkZ2U7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBvcG87CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBkMT1udWxsOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZDI9bnVsbDsKKyAgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gb2U9bnVsbDsKKyAgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gYWU9bnVsbDsKKyAgCisgIChuZXcgVGVzdCgibXVsMDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiNiIpOworICAobmV3IFRlc3QoIm11bDAwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjUiKTsKKyAgKG5ldyBUZXN0KCJtdWwwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxMCIpOworICAobmV3IFRlc3QoIm11bDAwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjAiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjIuNDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwwMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjIwIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgibXVsMDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yMCIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIi0yLjQwIik7CisgIChuZXcgVGVzdCgibXVsMDA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEuMjAiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIi0yLjQwIik7CisgIChuZXcgVGVzdCgibXVsMDA4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEuMjAiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJtdWwwMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMS4yMCIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjIuNDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjA5IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcuMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjM2LjEzOSIpOworICAobmV3IFRlc3QoIm11bDAxMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI0IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAuMCIpOworICAobmV3IFRlc3QoIm11bDAxMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNTAiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEwLjAwIik7CisgIChuZXcgVGVzdCgibXVsMDEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yMzQ1Njc4OSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAwMDAwMDAwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yMzQ1Njc4OSIpOworICAKKyAgKG5ldyBUZXN0KCJtdWwwMTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5OTk5OSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5OTk5OSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMC4wMDAwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgibXVsMDE1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi41MCIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI0IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAuMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwwMTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjUwIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQiKSxtYzYpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAuMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwwMTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5OTk5OSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5OTk5OSIpLG1jNikudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAuMDAwIik7CisgIAorICAKKyAgKG5ldyBUZXN0KCJtdWwwMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI2Iik7CisgIChuZXcgVGVzdCgibXVsMDIxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiNSIpOworICAobmV3IFRlc3QoIm11bDAyMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEwIik7CisgIChuZXcgVGVzdCgibXVsMDIzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yMCIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMi40MCIpOworICAobmV3IFRlc3QoIm11bDAyNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjAiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwwMjUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjIwIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIuNDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwwMjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMS4yMCIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIuNDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwwMjciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMS4yMCIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMCIpOworICAobmV3IFRlc3QoIm11bDAyOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjIwIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMi40MCIpOworICAobmV3IFRlc3QoIm11bDAyOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUuMDkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNy4xIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMzYuMTM5Iik7CisgIChuZXcgVGVzdCgibXVsMDMwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi41IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMC4wIik7CisgIChuZXcgVGVzdCgibXVsMDMxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi41MCIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI0IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAuMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwwMzIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjIzNDU2Nzg5IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDAwMDAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjIzNDU2Nzg5MDAwMDAwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgibXVsMDMzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNC41Njc4OSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMTAwMC4wMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0xMjM0NTY3Ljg5MDAwMDAwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgibXVsMDM0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEyMzQuNTY3ODkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMC4wMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0xMjM0NTY3Ljg5MDAwMDAwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgibXVsMDM1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS45OTk5OTk5OTkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS45OTk5OTk5OTkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5OS45OTk5OTk5ODAwMDAwMDAwMDEiKTsKKyAgCisgIChuZXcgVGVzdCgibXVsMDM2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNS4wMCIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRS0zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDUwMCIpOworICAobmV3IFRlc3QoIm11bDAzNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwLjAwIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMCIpOworICAobmV3IFRlc3QoIm11bDAzOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwLjAwIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjBFLTMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwIik7IC8vIHJocyBpcyAnMCcKKyAgLy8gMTk5OS4xMi4yMTogbmV4dCBvbmUgaXMgYSBlZGdlIGNhc2UgaWYgaW50ZXJtZWRpYXRlIGxvbmdzIGFyZSB1c2VkCisgIChuZXcgVGVzdCgibXVsMDM5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTk5OTk5OTk5IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk3NjU2MjUiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5NzY1NjI0OTk5OTkwMjM0Mzc1Iik7CisgIAorICBsOT1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NTY3ODlFKzEwIik7CisgIGw3N2U9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzdFLTIwIik7CisgIChuZXcgVGVzdCgibXVsMDQwIikpLm9rPShsOS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzNDU2NzU3IikpLnRvU3RyaW5nKCkpLmVxdWFscygiNDI2NzYwMTE5NTczMjczMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDA0MSIpKS5vaz0obDkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzQ1Njc1NyIpLG1jMykudG9TdHJpbmcoKSkuZXF1YWxzKCI0LjI2RSsyNCIpOworICAobmV3IFRlc3QoIm11bDA0MiIpKS5vaz0obDkubXVsdGlwbHkobDc3ZSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk1MDYxNzI3NTMwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMDQzIikpLm9rPShsOS5tdWx0aXBseShsNzdlLG1jMykudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk0NyIpOworICAobmV3IFRlc3QoIm11bDA0NCIpKS5vaz0obDc3ZS5tdWx0aXBseShsOSxtYzMpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45NDciKTsKKyAgCisgIGwxMjM0NT1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjMuNDUiKTsKKyAgKG5ldyBUZXN0KCJtdWwwNTAiKSkub2s9KGwxMjM0NS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxZTExIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yMzQ1RSsxMyIpOworICAobmV3IFRlc3QoIm11bDA1MSIpKS5vaz0obDEyMzQ1Lm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFlMTEiKSxtY3MpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yMzQ1RSsxMyIpOworICAobmV3IFRlc3QoIm11bDA1MiIpKS5vaz0obDEyMzQ1Lm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFlKzkiKSxtY2UpLnRvU3RyaW5nKCkpLmVxdWFscygiMTIzLjQ1RSs5Iik7CisgIChuZXcgVGVzdCgibXVsMDUzIikpLm9rPShsMTIzNDUubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMWUxMCIpLG1jZSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjIzNDVFKzEyIik7CisgIChuZXcgVGVzdCgibXVsMDU0IikpLm9rPShsMTIzNDUubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMWUxMSIpLG1jZSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMi4zNDVFKzEyIik7CisgIChuZXcgVGVzdCgibXVsMDU1IikpLm9rPShsMTIzNDUubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMWUxMiIpLG1jZSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjMuNDVFKzEyIik7CisgIChuZXcgVGVzdCgibXVsMDU2IikpLm9rPShsMTIzNDUubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMWUxMyIpLG1jZSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjIzNDVFKzE1Iik7CisgIAorICAvLyB0ZXN0IHNvbWUgY2FzZXMgdGhhdCBhcmUgY2xvc2UgdG8gZXhwb25lbnQgb3ZlcmZsb3cKKyAgKG5ldyBUZXN0KCJtdWwwNjAiKSkub2s9KG9uZS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5ZTk5OTk5OTk5OSIpLG1jcykudG9TdHJpbmcoKSkuZXF1YWxzKCI5RSs5OTk5OTk5OTkiKTsKKyAgKG5ldyBUZXN0KCJtdWwwNjEiKSkub2s9KG9uZS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5LjllOTk5OTk5OTk5IiksbWNzKS50b1N0cmluZygpKS5lcXVhbHMoIjkuOUUrOTk5OTk5OTk5Iik7CisgIChuZXcgVGVzdCgibXVsMDYyIikpLm9rPShvbmUubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS45OWU5OTk5OTk5OTkiKSxtY3MpLnRvU3RyaW5nKCkpLmVxdWFscygiOS45OUUrOTk5OTk5OTk5Iik7CisgIChuZXcgVGVzdCgibXVsMDYzIikpLm9rPSh0ZW4ubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOWU5OTk5OTk5OTkiKSxtY2UpLnRvU3RyaW5nKCkpLmVxdWFscygiOTBFKzk5OTk5OTk5OSIpOworICAobmV3IFRlc3QoIm11bDA2NCIpKS5vaz0odGVuLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOWU5OTk5OTk5OTkiKSxtY2UpLnRvU3RyaW5nKCkpLmVxdWFscygiOTkuMEUrOTk5OTk5OTk5Iik7CisgIGVkZ2U9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS45OTllOTk5OTk5OTk5Iik7CisgIHRlbmVkZ2U9dGVuLm11bHRpcGx5KGVkZ2UsbWNlKTsKKyAgKG5ldyBUZXN0KCJtdWwwNjUiKSkub2s9KHRlbmVkZ2UudG9TdHJpbmcoKSkuZXF1YWxzKCI5OS45OTBFKzk5OTk5OTk5OSIpOworICBodW5lZGdlPXRlbi5tdWx0aXBseSh0ZW5lZGdlLG1jZSk7CisgIChuZXcgVGVzdCgibXVsMDY2IikpLm9rPShodW5lZGdlLnRvU3RyaW5nKCkpLmVxdWFscygiOTk5LjkwMEUrOTk5OTk5OTk5Iik7CisgIG9wbz1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjEiKTsgLy8gb25lIHRlbnRoCisgIChuZXcgVGVzdCgibXVsMDY3IikpLm9rPShvcG8ubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOWUtOTk5OTk5OTk4IiksbWNzKS50b1N0cmluZygpKS5lcXVhbHMoIjlFLTk5OTk5OTk5OSIpOworICAobmV3IFRlc3QoIm11bDA2OCIpKS5vaz0ob3BvLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5ZS05OTk5OTk5OTgiKSxtY3MpLnRvU3RyaW5nKCkpLmVxdWFscygiOS45RS05OTk5OTk5OTgiKTsKKyAgKG5ldyBUZXN0KCJtdWwwNjkiKSkub2s9KG9wby5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTllLTk5OTk5OTk5OCIpLG1jcykudG9TdHJpbmcoKSkuZXF1YWxzKCI5Ljk5RS05OTk5OTk5OTciKTsKKyAgCisgIChuZXcgVGVzdCgibXVsMDcwIikpLm9rPShvcG8ubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOWUtOTk5OTk5OTk4IiksbWNlKS50b1N0cmluZygpKS5lcXVhbHMoIjlFLTk5OTk5OTk5OSIpOworICAobmV3IFRlc3QoIm11bDA3MSIpKS5vaz0ob3BvLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5ZS05OTk5OTk5OTgiKSxtY2UpLnRvU3RyaW5nKCkpLmVxdWFscygiOTlFLTk5OTk5OTk5OSIpOworICAobmV3IFRlc3QoIm11bDA3MiIpKS5vaz0ob3BvLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OWUtOTk5OTk5OTk4IiksbWNlKS50b1N0cmluZygpKS5lcXVhbHMoIjk5OUUtOTk5OTk5OTk5Iik7CisgIChuZXcgVGVzdCgibXVsMDczIikpLm9rPShvcG8ubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5ZS05OTk5OTk5OTciKSxtY2UpLnRvU3RyaW5nKCkpLmVxdWFscygiOS45OUUtOTk5OTk5OTk2Iik7CisgIChuZXcgVGVzdCgibXVsMDc0IikpLm9rPShvcG8ubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OWUtOTk5OTk5OTk3IiksbWNlKS50b1N0cmluZygpKS5lcXVhbHMoIjk5Ljk5RS05OTk5OTk5OTYiKTsKKyAgKG5ldyBUZXN0KCJtdWwwNzQiKSkub2s9KG9wby5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OWUtOTk5OTk5OTk3IiksbWNlKS50b1N0cmluZygpKS5lcXVhbHMoIjk5OS45OUUtOTk5OTk5OTk2Iik7CisgIAorICAvLyB0ZXN0IHNvbWUgaW50ZXJtZWRpYXRlIGxlbmd0aHMKKyAgKG5ldyBUZXN0KCJtdWwwODAiKSkub2s9KG9wby5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NTY3ODkiKSxtY3MpLnRvU3RyaW5nKCkpLmVxdWFscygiMTIzNDU2NzguOSIpOworICAobmV3IFRlc3QoIm11bDA4MSIpKS5vaz0ob3BvLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1Njc4OTAxMjM0IiksbWNzKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjM0NTY3ODlFKzEyIik7CisgIChuZXcgVGVzdCgibXVsMDgyIikpLm9rPShvcG8ubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDU2Nzg5MTIzNDU2Nzg5IiksbWNzKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjM0NTY3ODlFKzE2Iik7CisgIChuZXcgVGVzdCgibXVsMDgzIikpLm9rPShvcG8ubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDU2Nzg5IiksbWNmZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjM0NTY3OC45Iik7CisgIChuZXcgVGVzdCgibXVsMDg0IikpLm9rPShvcG8ubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDU2Nzg5MDEyMzQiKSxtY2ZkKS50b1N0cmluZygpKS5lcXVhbHMoIjEyMzQ1Njc4OTAxMjMuNCIpOworICAobmV3IFRlc3QoIm11bDA4NSIpKS5vaz0ob3BvLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1Njc4OTEyMzQ1Njc4OSIpLG1jZmQpLnRvU3RyaW5nKCkpLmVxdWFscygiMTIzNDU2Nzg5MTIzNDU2NzguOSIpOworICAKKyAgKG5ldyBUZXN0KCJtdWwwOTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NTY3ODkiKSkubXVsdGlwbHkob3BvLG1jcykudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjM0NTY3OC45Iik7CisgIChuZXcgVGVzdCgibXVsMDkxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDU2Nzg5MDEyMzQiKSkubXVsdGlwbHkob3BvLG1jcykudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjIzNDU2Nzg5RSsxMiIpOworICAobmV3IFRlc3QoIm11bDA5MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1Njc4OTEyMzQ1Njc4OSIpKS5tdWx0aXBseShvcG8sbWNzKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjM0NTY3ODlFKzE2Iik7CisgIChuZXcgVGVzdCgibXVsMDkzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDU2Nzg5IikpLm11bHRpcGx5KG9wbyxtY2ZkKS50b1N0cmluZygpKS5lcXVhbHMoIjEyMzQ1Njc4LjkiKTsKKyAgKG5ldyBUZXN0KCJtdWwwOTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NTY3ODkwMTIzNCIpKS5tdWx0aXBseShvcG8sbWNmZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjM0NTY3ODkwMTIzLjQiKTsKKyAgKG5ldyBUZXN0KCJtdWwwOTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NTY3ODkxMjM0NTY3ODkiKSkubXVsdGlwbHkob3BvLG1jZmQpLnRvU3RyaW5nKCkpLmVxdWFscygiMTIzNDU2Nzg5MTIzNDU2NzguOSIpOworICAKKyAgLy8gdGVzdCBzb21lIG1vcmUgZWRnZSBjYXNlcyBhbmQgY2FycmllcworICAobmV3IFRlc3QoIm11bDEwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjgxIik7CisgIChuZXcgVGVzdCgibXVsMTAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjgxMCIpOworICAobmV3IFRlc3QoIm11bDEwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMCIpOworICAobmV3IFRlc3QoIm11bDEwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjgxMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjgxMDAwMCIpOworICAobmV3IFRlc3QoIm11bDEwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDEwNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjgxMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTA4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjgxMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDEwOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDExMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjgxMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjgxMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDExMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDExMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTAwMDAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjgxMDAwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMDAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjgxMDAwMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDExNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTAwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDExNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTAwMDAwMDAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjgxMDAwMDAwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTE3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMDAwMDAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjgxMDAwMDAwMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDExOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTAwMDAwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwMDAwMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDExOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTAwMDAwMDAwMDAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjgxMDAwMDAwMDAwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTIwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMDAwMDAwMDAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjgxMDAwMDAwMDAwMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDEyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTAwMDAwMDAwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwMDAwMDAwMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDEyMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTAwMDAwMDAwMDAwMDAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTIzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIpOworICAvLyB0ZXN0IHNvbWUgbW9yZSBlZGdlIGNhc2VzIHdpdGhvdXQgY2FycmllcworICAobmV3IFRlc3QoIm11bDEzMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkiKTsKKyAgKG5ldyBUZXN0KCJtdWwxMzIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxMzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkwMCIpOworICAobmV3IFRlc3QoIm11bDEzNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxMzUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxMzYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDEzNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxMzgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxMzkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDE0MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxNDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxNDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMwMDAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkwMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDE0MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkwMDAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxNDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxNDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMwMDAwMDAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkwMDAwMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDE0NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAwMDAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkwMDAwMDAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxNDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMwMDAwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAwMDAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxNDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMwMDAwMDAwMDAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkwMDAwMDAwMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDE0OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAwMDAwMDAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkwMDAwMDAwMDAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxNTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMwMDAwMDAwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAwMDAwMDAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxNTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMwMDAwMDAwMDAwMDAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkwMDAwMDAwMDAwMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDE1MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAwMDAwMDAwMDAwMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxNTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiKTsKKyAgCisgIHRyeXtjaGVja251bGw6ZG97CisgICB0ZW4ubXVsdGlwbHkoKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQ1NSl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbCovCisgIChuZXcgVGVzdCgibXVsMjAwIikpLm9rPWZsYWc7CisgIHRyeXtjaGVja251bGwyOmRveworICAgdGVuLm11bHRpcGx5KHRlbiwoY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQ1Nil7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbDIqLworICAobmV3IFRlc3QoIm11bDIwMSIpKS5vaz1mbGFnOworICAKKyAgdHJ5e2NoZWNrb3Zlcjpkb3sKKyAgIGQxPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjIzNDU2Nzg5MDEyMzQ1RS0wIik7CisgICBkMj1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5RSs5OTk5OTk5OTkiKTsKKyAgIGQxLm11bHRpcGx5KGQyLG1jZGVmKTsgLy8gbWFyZ2luYWwgb3ZlcmZsb3cKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDU3KXtvZT0kNTc7CisgICBmbGFnPShvZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiRXhwb25lbnQgT3ZlcmZsb3c6IDEwMDAwMDAwMDAiKTsKKyAgfS8qY2hlY2tvdmVyKi8KKyAgKG5ldyBUZXN0KCJtdWwyMDIiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrb3Zlcjpkb3sKKyAgIGQxPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjExMiIpOworICAgZDI9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOUUrOTk5OTk5OTk5Iik7CisgICBkMS5tdWx0aXBseShkMixtY2UpOyAvLyBtYXJnaW5hbCBvdmVyZmxvdywgZW5naW5lZXJpbmcKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDU4KXtvZT0kNTg7CisgICBmbGFnPShvZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiRXhwb25lbnQgT3ZlcmZsb3c6IDEwMDAwMDAwMDIiKTsKKyAgfS8qY2hlY2tvdmVyKi8KKyAgKG5ldyBUZXN0KCJtdWwyMDMiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja292ZXI6ZG97CisgICBkMT1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjkiKTsKKyAgIGQyPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFLTk5OTk5OTk5OSIpOworICAgZDEubXVsdGlwbHkoZDIsbWNkZWYpOyAvLyBtYXJnaW5hbCBuZWdhdGl2ZSBvdmVyZmxvdworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNTkpe29lPSQ1OTsKKyAgIGZsYWc9KG9lLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJFeHBvbmVudCBPdmVyZmxvdzogLTEwMDAwMDAwMDAiKTsKKyAgfS8qY2hlY2tvdmVyKi8KKyAgKG5ldyBUZXN0KCJtdWwyMDQiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrb3Zlcjpkb3sKKyAgIGQxPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuOSIpOworICAgZDI9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMUUtOTk5OTk5OTk5Iik7CisgICBkMS5tdWx0aXBseShkMixtY2UpOyAvLyBtYXJnaW5hbCBuZWdhdGl2ZSBvdmVyZmxvdywgZW5naW5lZXJpbmcKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDYwKXtvZT0kNjA7CisgICBmbGFnPShvZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiRXhwb25lbnQgT3ZlcmZsb3c6IC0xMDAwMDAwMDAyIik7CisgIH0vKmNoZWNrb3ZlciovCisgIChuZXcgVGVzdCgibXVsMjA1IikpLm9rPWZsYWc7CisgIAorICB0cnl7Y2hlY2tkaWdpdHM6ZG97CisgICB0ZW5sb25nLm11bHRpcGx5KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUsbWNsZCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ2MSl7YWU9JDYxOworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlRvbyBtYW55IGRpZ2l0czoiKyIgIit0ZW5sb25nLnRvU3RyaW5nKCkpOworICB9LypjaGVja2RpZ2l0cyovCisgIChuZXcgVGVzdCgibXVsMjA2IikpLm9rPWZsYWc7CisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5URU4ubXVsdGlwbHkodGVubG9uZyxtY2xkKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDYyKXthZT0kNjI7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiVG9vIG1hbnkgZGlnaXRzOiIrIiAiK3RlbmxvbmcudG9TdHJpbmcoKSk7CisgIH0vKmNoZWNrZGlnaXRzKi8KKyAgKG5ldyBUZXN0KCJtdWwyMDciKSkub2s9ZmxhZzsKKyAgCisgIHN1bW1hcnkoIm11bHRpcGx5Iik7CisgIHJldHVybjt9CisKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgQmlnRGVjaW1hbCNuZWdhdGV9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnbmVnYXRlKCl7CisgIGJvb2xlYW4gZmxhZz1mYWxzZTsKKyAgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gYWU9bnVsbDsKKyAgCisgIChuZXcgVGVzdCgibmVnMDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5uZWdhdGUoKS50b1N0cmluZygpKS5lcXVhbHMoIi0yIik7CisgIChuZXcgVGVzdCgibmVnMDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTIiKSkubmVnYXRlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIyIik7CisgIChuZXcgVGVzdCgibmVnMDAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi4wMCIpKS5uZWdhdGUobWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIuMDAiKTsKKyAgKG5ldyBUZXN0KCJuZWcwMDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMi4wMCIpKS5uZWdhdGUobWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMi4wMCIpOworICAobmV3IFRlc3QoIm5lZzAwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkubmVnYXRlKG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJuZWcwMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwIikpLm5lZ2F0ZShtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgibmVnMDA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAuMCIpKS5uZWdhdGUobWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoIm5lZzAwOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwIikpLm5lZ2F0ZShtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIAorICAobmV3IFRlc3QoIm5lZzAxMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuMDAiKSkubmVnYXRlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMi4wMCIpOworICAobmV3IFRlc3QoIm5lZzAxMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yLjAwIikpLm5lZ2F0ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiMi4wMCIpOworICAobmV3IFRlc3QoIm5lZzAxMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkubmVnYXRlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgibmVnMDEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMCIpKS5uZWdhdGUoKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAiKTsKKyAgKG5ldyBUZXN0KCJuZWcwMTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMC4wIikpLm5lZ2F0ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgibmVnMDE1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAuMDAiKSkubmVnYXRlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwIik7CisgIChuZXcgVGVzdCgibmVnMDE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAiKSkubmVnYXRlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIAorICAobmV3IFRlc3QoIm5lZzAyMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yMDAwMDAwIikpLm5lZ2F0ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiMjAwMDAwMCIpOworICAobmV3IFRlc3QoIm5lZzAyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yMDAwMDAwIikpLm5lZ2F0ZShtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIyMDAwMDAwIik7CisgIChuZXcgVGVzdCgibmVnMDIyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTIwMDAwMDAiKSkubmVnYXRlKG1jNikudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjAwMDAwRSs2Iik7CisgIChuZXcgVGVzdCgibmVnMDIzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMjAwMDAwMCIpKS5uZWdhdGUobWM2KS50b1N0cmluZygpKS5lcXVhbHMoIi0yLjAwMDAwRSs2Iik7CisgIAorICB0cnl7Y2hlY2tudWxsOmRveworICAgdGVuLm5lZ2F0ZSgoY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQ2Myl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbCovCisgIChuZXcgVGVzdCgibmVnMTAwIikpLm9rPWZsYWc7CisgIAorICB0cnl7Y2hlY2tkaWdpdHM6ZG97CisgICB0ZW5sb25nLm5lZ2F0ZShtY2xkKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDY0KXthZT0kNjQ7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiVG9vIG1hbnkgZGlnaXRzOiIrIiAiK3RlbmxvbmcudG9TdHJpbmcoKSk7CisgIH0vKmNoZWNrZGlnaXRzKi8KKyAgKG5ldyBUZXN0KCJuZWcxMDEiKSkub2s9ZmxhZzsKKyAgc3VtbWFyeSgibmVnYXRlIik7CisgIHJldHVybjt9CisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgQmlnRGVjaW1hbCNwbHVzfSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ3BsdXMoKXsKKyAgYm9vbGVhbiBmbGFnPWZhbHNlOworICBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jaGUxOworICBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiBhZT1udWxsOworICAKKyAgKG5ldyBUZXN0KCJwbHUwMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnBsdXMobWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMiIpOworICAobmV3IFRlc3QoInBsdTAwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yIikpLnBsdXMobWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIiKTsKKyAgKG5ldyBUZXN0KCJwbHUwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjAwIikpLnBsdXMobWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMi4wMCIpOworICAobmV3IFRlc3QoInBsdTAwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yLjAwIikpLnBsdXMobWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIuMDAiKTsKKyAgKG5ldyBUZXN0KCJwbHUwMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnBsdXMobWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInBsdTAwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAiKSkucGx1cyhtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgicGx1MDA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAuMCIpKS5wbHVzKG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJwbHUwMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMCIpKS5wbHVzKG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgCisgIChuZXcgVGVzdCgicGx1MDEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5wbHVzKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIyIik7CisgIChuZXcgVGVzdCgicGx1MDExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTIiKSkucGx1cygpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIiKTsKKyAgKG5ldyBUZXN0KCJwbHUwMTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjAwIikpLnBsdXMoKS50b1N0cmluZygpKS5lcXVhbHMoIjIuMDAiKTsKKyAgKG5ldyBUZXN0KCJwbHUwMTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMi4wMCIpKS5wbHVzKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMi4wMCIpOworICAobmV3IFRlc3QoInBsdTAxNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkucGx1cygpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInBsdTAxNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAiKSkucGx1cygpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMCIpOworICAobmV3IFRlc3QoInBsdTAxNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwLjAiKSkucGx1cygpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgicGx1MDE3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAuMDAiKSkucGx1cygpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMCIpOworICAobmV3IFRlc3QoInBsdTAxOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwIikpLnBsdXMoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgCisgIChuZXcgVGVzdCgicGx1MDIwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTIwMDAwMDAiKSkucGx1cygpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJwbHUwMjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMjAwMDAwMCIpKS5wbHVzKG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIi0yMDAwMDAwIik7CisgIChuZXcgVGVzdCgicGx1MDIyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTIwMDAwMDAiKSkucGx1cyhtYzYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIuMDAwMDBFKzYiKTsKKyAgKG5ldyBUZXN0KCJwbHUwMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyMDAwMDAwIikpLnBsdXMobWM2KS50b1N0cmluZygpKS5lcXVhbHMoIjIuMDAwMDBFKzYiKTsKKyAgCisgIC8vIHRyeSBzb21lIGV4b3RpYyBidXQgc2lsbHkgcm91bmRpbmcgW2Zvcm1hdCBjaGVja3MgbW9yZSB2YXJpZXRpZXNdCisgIC8vIFt0aGlzIG1vc3RseSBlbnN1cmVzIHdlIGNhbiBzZXQgdXAgYW5kIHBhc3MgdGhlIHNldHRpbmddCisgIG1jaGUxPW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDLGZhbHNlLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKTsKKyAgKG5ldyBUZXN0KCJwbHUwMzAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjI0IikpLnBsdXMobWNoZTEpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4yIik7CisgIChuZXcgVGVzdCgicGx1MDMxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4yNSIpKS5wbHVzKG1jaGUxKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMiIpOworICAobmV3IFRlc3QoInBsdTAzMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMjYiKSkucGx1cyhtY2hlMSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjMiKTsKKyAgKG5ldyBUZXN0KCJwbHUwMzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjE0IikpLnBsdXMobWNoZTEpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xIik7CisgIChuZXcgVGVzdCgicGx1MDM0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xNSIpKS5wbHVzKG1jaGUxKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMiIpOworICAobmV3IFRlc3QoInBsdTAzNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTYiKSkucGx1cyhtY2hlMSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjIiKTsKKyAgCisgIChuZXcgVGVzdCgicGx1MDQwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4yNTEiKSkucGx1cyhtY2hlMSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjMiKTsKKyAgKG5ldyBUZXN0KCJwbHUwNDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjE1MSIpKS5wbHVzKG1jaGUxKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMiIpOworICAKKyAgKG5ldyBUZXN0KCJwbHUwNTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4yNCIpKS5wbHVzKG1jaGUxKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjIiKTsKKyAgKG5ldyBUZXN0KCJwbHUwNTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4yNSIpKS5wbHVzKG1jaGUxKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjIiKTsKKyAgKG5ldyBUZXN0KCJwbHUwNTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4yNiIpKS5wbHVzKG1jaGUxKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjMiKTsKKyAgKG5ldyBUZXN0KCJwbHUwNTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4xNCIpKS5wbHVzKG1jaGUxKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjEiKTsKKyAgKG5ldyBUZXN0KCJwbHUwNTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4xNSIpKS5wbHVzKG1jaGUxKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjIiKTsKKyAgKG5ldyBUZXN0KCJwbHUwNTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4xNiIpKS5wbHVzKG1jaGUxKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjIiKTsKKyAgCisgIC8vIG1vcmUgZml4ZWQsIHBvdGVudGlhbCBMSFMgc3dhcHMgaWYgZG9uZSBieSBhZGQgMAorICAobmV3IFRlc3QoInBsdTA2MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01NjI2N0UtMTAiKSkucGx1cygpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMDAwMDA1NjI2NyIpOworICAobmV3IFRlc3QoInBsdTA2MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01NjI2N0UtNSIpKS5wbHVzKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC41NjI2NyIpOworICAobmV3IFRlc3QoInBsdTA2MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01NjI2N0UtMiIpKS5wbHVzKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItNTYyLjY3Iik7CisgIChuZXcgVGVzdCgicGx1MDYzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTU2MjY3RS0xIikpLnBsdXMoKS50b1N0cmluZygpKS5lcXVhbHMoIi01NjI2LjciKTsKKyAgKG5ldyBUZXN0KCJwbHUwNjUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTAiKSkucGx1cygpLnRvU3RyaW5nKCkpLmVxdWFscygiLTU2MjY3Iik7CisgIAorICB0cnl7Y2hlY2tudWxsOmRveworICAgdGVuLnBsdXMoKGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQpbnVsbCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiAkNjUpeworICAgZmxhZz10cnVlOworICB9LypjaGVja251bGwqLworICAobmV3IFRlc3QoInBsdTEwMCIpKS5vaz1mbGFnOworICAKKyAgdHJ5e2NoZWNrZGlnaXRzOmRveworICAgdGVubG9uZy5wbHVzKG1jbGQpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNjYpe2FlPSQ2NjsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJUb28gbWFueSBkaWdpdHM6IisiICIrdGVubG9uZy50b1N0cmluZygpKTsKKyAgfS8qY2hlY2tkaWdpdHMqLworICAobmV3IFRlc3QoInBsdTEwMSIpKS5vaz1mbGFnOworICBzdW1tYXJ5KCJwbHVzIik7CisgIHJldHVybjt9CisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgQmlnRGVjaW1hbCNwb3d9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFncG93KCl7CisgIGJvb2xlYW4gZmxhZzsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHg7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCB0ZW1wOworICBpbnQgbj0wOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgdng7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCB2bjsKKyAgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gYWU9bnVsbDsKKyAgZmxhZz10cnVlOworICAobmV3IFRlc3QoInBvdzAwMSIpKS5vaz0iMSIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDAyIikpLm9rPSIwLjMiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzAwMyIpKS5vaz0iMC4zIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMCIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMDQiKSkub2s9IjAuMDkiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjAwIiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzAwNSIpKS5vaz0iMC4wOSIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuMDAwMDAwMDAwIiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzAwNiIpKS5vaz0oIjFFLTgiKS5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItOCIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMDciKSkub2s9KCIxRS03IikuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTciKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDA4IikpLm9rPSIwLjAwMDAwMSIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTYiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDA5IikpLm9rPSIwLjAwMDAxIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNSIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMTAiKSkub2s9IjAuMDAwMSIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTQiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDExIikpLm9rPSIwLjAwMSIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTMiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDEyIikpLm9rPSIwLjAxIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMiIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMTMiKSkub2s9IjAuMSIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDE0IikpLm9rPSIxIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzAxNSIpKS5vaz0iMTAiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDE2IikpLm9rPSIxMDAwMDAwMDAiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjgiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDE3IikpLm9rPSgiMUUrOSIpLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDE4IikpLm9rPSgiMUUrOTkiKS5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OSIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMTkiKSkub2s9KCIxRSs5OTk5OTk5OTkiKS5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OTk5OTkiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDIwIikpLm9rPSgiMUUrOTk5OTk5OTk4IikuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTk5OTk4IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzAyMSIpKS5vaz0oIjFFKzk5OTk5OTk5NyIpLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OTk5OTk5NyIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMjIiKSkub2s9KCIxRSszMzMzMzMzMzMiKS5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzMzMzMzMzMzMiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDIzIikpLm9rPSgiMUUtMzMzMzMzMzMzIikuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTMzMzMzMzMzMyIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMjQiKSkub2s9KCIxRS05OTk5OTk5OTgiKS5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItOTk5OTk5OTk4IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzAyNSIpKS5vaz0oIjFFLTk5OTk5OTk5OSIpLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi05OTk5OTk5OTkiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDI2IikpLm9rPSIwLjUiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDI3IikpLm9rPSIwLjI1Ii5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yIiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzAyOCIpKS5vaz0iMC4wNjI1Ii5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi00IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAKKyAgKG5ldyBUZXN0KCJwb3cwNTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInBvdzA1MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgicG93MDUyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJwb3cwNTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInBvdzA1NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgicG93MDU1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJwb3cwNTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgicG93MDU3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OTk5OTk5OSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjFFKzk5OTk5OTk5OSIpOworICAobmV3IFRlc3QoInBvdzA1OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OTk5OTgiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxRSs5OTk5OTk5OTgiKTsKKyAgKG5ldyBUZXN0KCJwb3cwNTkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTk5OTk3IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMUUrOTk5OTk5OTk3Iik7CisgIChuZXcgVGVzdCgicG93MDYwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMzMzMzMzMzMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjFFKzMzMzMzMzMzMyIpOworICAobmV3IFRlc3QoInBvdzA2MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3NyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjFFKzc3Iik7CisgIChuZXcgVGVzdCgicG93MDYyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMUUrMjIiKTsKKyAgKG5ldyBUZXN0KCJwb3cwNjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTc3IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMUUtNzciKTsKKyAgKG5ldyBUZXN0KCJwb3cwNjQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMUUtMjIiKTsKKyAgKG5ldyBUZXN0KCJwb3cwNjUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNSIpOworICAobmV3IFRlc3QoInBvdzA2NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4yNSIpOworICAobmV3IFRlc3QoInBvdzA2NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi00IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wNjI1Iik7CisgIChuZXcgVGVzdCgicG93MDY4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNi4wIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMzYiKTsKKyAgKG5ldyBUZXN0KCJwb3cwNjkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMyIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjkiKTsvKiBmcm9tIGJvb2sgKi8KKyAgKG5ldyBUZXN0KCJwb3cwNzAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiNjQiKTsvKiBmcm9tIGJvb2sgKi8KKyAgCisgIC8vIDE5OTguMTIuMTQgTmV4dCB0ZXN0IHJlbW92ZWQgYXMgcG93KCkgbm8gbG9uZ2VyIHJvdW5kcyBSSFMgW2FzIHBlciBBTlNJXQorICAvLyBUZXN0KCdwb3cwNzEnKS5vaz1CaWdEZWNpbWFsKCcyJykucG93KEJpZ0RlY2ltYWwoJzIuMDAwMDAwMDAxJyksbWNkZWYpLnRvU3RyaW5nID09ICc0Jy8qIGNoZWNrIGlucHV0IHJvdW5kaW5nICovCisgIAorICAvKiBHZW5lcmFsIHRlc3RzIGZyb20gb3JpZ2luYWwgUmV4eCBkaWFnbm9zdGljcyAqLworICB4PW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNSIpOworICB0ZW1wPWNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkU7CisgIGZsYWc9dHJ1ZTsKKyAge249MTtuOmZvcig7bjw9MTA7bisrKXsKKyAgIHRlbXA9dGVtcC5tdWx0aXBseSh4KS5kaXZpZGUoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORSk7CisgICBmbGFnPWZsYWcmKHgucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscyh0ZW1wLnRvU3RyaW5nKCkpOworICAgfQorICB9LypuKi8KKyAgKG5ldyBUZXN0KCJwb3cwODAiKSkub2s9ZmxhZzsKKyAgCisgIHg9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpOworICB0ZW1wPWNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkU7CisgIGZsYWc9dHJ1ZTsKKyAge249MTtuOmZvcig7bjw9Mjk7bisrKXsKKyAgIHRlbXA9dGVtcC5tdWx0aXBseSh4KS5kaXZpZGUoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORSk7CisgICBmbGFnPWZsYWcmKHgucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscyh0ZW1wLnRvU3RyaW5nKCkpOworICAgZmxhZz1mbGFnJih4LnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKChpbnQpLW4pLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORS5kaXZpZGUodGVtcCxtY2RlZikudG9TdHJpbmcoKSk7CisgICAvKiBOb3RlIHRoYXQgcm91bmRpbmcgZXJyb3JzIGFyZSBwb3NzaWJsZSBmb3IgbGFyZ2VyICJuIiAqLworICAgLyogZHVlIHRvIHRoZSBpbmZvcm1hdGlvbiBjb250ZW50IG9mIHRoZSBleHBvbmVudCAgICAgICAgKi8KKyAgIH0KKyAgfS8qbiovCisgIChuZXcgVGVzdCgicG93MDgxIikpLm9rPWZsYWc7CisgIAorICAvKiBUaGUgVmllbm5hIGNhc2UuICBDaGVja3MgYm90aCBzZXR1cCBhbmQgMS9hY2Mgd29ya2luZyBwcmVjaXNpb24gKi8KKyAgLy8gTW9kaWZpZWQgMTk5OC4xMi4xNCBhcyBSSFMgbm8gbG9uZ2VyIHJvdW5kZWQgYmVmb3JlIHVzZSAobXVzdCBmaXQpCisgIC8vIE1vZGlmaWVkIDE5OTAuMDIuMDQgYXMgTEhTIGlzIG5vdyByb3VuZGVkIChpbnN0ZWFkIG9mIHRydW5jYXRlZCB0byBndWFyZCkKKyAgdng9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDU2Nzg5RSsxMCIpOyAvLyBsaHMgLi4gcm91bmRlZCB0byAxLjIzRSsxOAorICB2bj1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMS4yMzAwMGUrMiIpOyAvLyByaHMgLi4gW3dhczogLTEuMjM0NTVlKzIsIHJvdW5kcyB0byAtMTIzXQorICAobmV3IFRlc3QoInBvdzA5MCIpKS5vaz0odngucG93KHZuLG1jMykudG9TdHJpbmcoKSkuZXF1YWxzKCI4Ljc0RS0yMjI2Iik7CisgIAorICAvLy0gZml4ZWQgcG9pbnQgdmVyc2lvbnMgLS0tCisgIChuZXcgVGVzdCgicG93MTAxIikpLm9rPSIxIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cxMDIiKSkub2s9IjAuMyIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MTAzIikpLm9rPSIwLjMiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAwIikpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzEwNCIpKS5vaz0iMC4wOSIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MTA1IikpLm9rPSIwLjA5Ii5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi4wMCIpKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cxMDYiKSkub2s9IjEwIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzEwNyIpKS5vaz0iMTAwMDAwMDAwIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI4IikpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzEwOCIpKS5vaz0iMTAwMDAwMDAwMCIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cxMDkiKSkub2s9IjEwMDAwMDAwMDAwIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cxMTAiKSkub2s9IjEiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cxMTEiKSkub2s9IjE2Ii5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQiKSkudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MTEyIikpLm9rPSIyNTYiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOCIpKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cxMTMiKSkub2s9IjEwMjQiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MTE0IikpLm9rPSIxLjA1MTAxMDA1MDEiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMSIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS50b1N0cmluZygpKTsKKyAgCisgIChuZXcgVGVzdCgicG93MTIwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJwb3cxMjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInBvdzEyMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgicG93MTIzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJwb3cxNDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInBvdzEyNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgicG93MTI2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInBvdzEyNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJwb3cxMjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI2LjAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIzNi4wMCIpOworICAobmV3IFRlc3QoInBvdzEyOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjYuMDAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIzNi4wMDAwIik7CisgIChuZXcgVGVzdCgicG93MTMwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNi4wMDAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIzNi4wMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJwb3cxMzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMyIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjkiKTsKKyAgKG5ldyBUZXN0KCJwb3cxMzIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLnRvU3RyaW5nKCkpLmVxdWFscygiNjQiKTsKKyAgCisgIC8qIGVycm9ycyAqLworICB0cnl7Y2hlY2tudWxsOmRveworICAgdGVuLnBvdygoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDY3KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsKi8KKyAgKG5ldyBUZXN0KCJwb3cxNTAiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrbnVsbDI6ZG97CisgICB0ZW4ucG93KHRlbiwoY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQ2OCl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbDIqLworICAobmV3IFRlc3QoInBvdzE1MSIpKS5vaz1mbGFnOworICAKKyAgZmxhZz10cnVlOworICB0cnl7Y2hlY2tkaWdpdHM6ZG97CisgICB0ZW5sb25nLnBvdyhjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLG1jbGQpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNjkpe2FlPSQ2OTsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJUb28gbWFueSBkaWdpdHM6IisiICIrdGVubG9uZy50b1N0cmluZygpKTsKKyAgfS8qY2hlY2tkaWdpdHMqLworICAobmV3IFRlc3QoInBvdzE1MiIpKS5vaz1mbGFnOworICAKKyAgdHJ5e2NoZWNrZGlnaXRzOmRveworICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORS5wb3codGVubG9uZyxtY2xkKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDcwKXthZT0kNzA7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiVG9vIG1hbnkgZGlnaXRzOiIrIiAiK3RlbmxvbmcudG9TdHJpbmcoKSk7CisgIH0vKmNoZWNrZGlnaXRzKi8KKyAgKG5ldyBUZXN0KCJwb3cxNTMiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja3Bvczpkb3sKKyAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi03MSIpKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDcxKXthZT0kNzE7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiTmVnYXRpdmUgcG93ZXI6IC03MSIpOworICB9LypjaGVja3BvcyovCisgIChuZXcgVGVzdCgicG93MTU0IikpLm9rPWZsYWc7CisgIAorICB0cnl7Y2hlY2t3aG9sZTpkb3sKKyAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQiKSxtYzMpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNzIpe2FlPSQ3MjsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJUb28gbWFueSBkaWdpdHM6IDEyMzQiKTsKKyAgfS8qY2hlY2t3aG9sZSovCisgIChuZXcgVGVzdCgicG93MTU1IikpLm9rPWZsYWc7CisgIAorICB0cnl7Y2hlY2t3aG9sZTE6ZG97CisgICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMi4zNGUrMiIpLG1jMyk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ3Myl7YWU9JDczOworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlRvbyBtYW55IGRpZ2l0czogMS4yMzRFKzMiKTsKKyAgfS8qY2hlY2t3aG9sZTEqLworICAobmV3IFRlc3QoInBvdzE1NiIpKS5vaz1mbGFnOworICAKKyAgdHJ5e2NoZWNrd2hvbGUyOmRveworICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIuNCIpLG1jZGVmKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDc0KXthZT0kNzQ7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiRGVjaW1hbCBwYXJ0IG5vbi16ZXJvOiAxMi40Iik7CisgIH0vKmNoZWNrd2hvbGUyKi8KKyAgKG5ldyBUZXN0KCJwb3cxNTciKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja3dob2xlMzpkb3sKKyAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDEiKSxtY2RlZik7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ3NSl7YWU9JDc1OworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIkRlY2ltYWwgcGFydCBub24temVybzogMS4wMSIpOworICB9LypjaGVja3dob2xlMyovCisgIChuZXcgVGVzdCgicG93MTU4IikpLm9rPWZsYWc7CisgIAorICB0cnl7Y2hlY2t3aG9sZTQ6ZG97CisgICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAwMDAwMDAwMSIpLG1jZGVmKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDc2KXthZT0kNzY7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiRGVjaW1hbCBwYXJ0IG5vbi16ZXJvOiAxLjAwMDAwMDAwMSIpOworICB9LypjaGVja3dob2xlNCovCisgIChuZXcgVGVzdCgicG93MTU5IikpLm9rPWZsYWc7CisgIAorICB0cnl7Y2hlY2t3aG9sZTU6ZG97CisgICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAwMDAwMDAwMSIpLG1jMyk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ3Nyl7YWU9JDc3OworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIkRlY2ltYWwgcGFydCBub24temVybzogMS4wMDAwMDAwMDEiKTsKKyAgfS8qY2hlY2t3aG9sZTUqLworICAobmV3IFRlc3QoInBvdzE2MCIpKS5vaz1mbGFnOworICAKKyAgdHJ5e2NoZWNrd2hvbGU2OmRveworICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNS42N0UtOTg3NjU0MzIxIiksbWMzKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDc4KXthZT0kNzg7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiRGVjaW1hbCBwYXJ0IG5vbi16ZXJvOiA1LjY3RS05ODc2NTQzMjEiKTsKKyAgfS8qY2hlY2t3aG9sZTYqLworICAobmV3IFRlc3QoInBvdzE2MSIpKS5vaz1mbGFnOworICAKKyAgc3VtbWFyeSgicG93Iik7CisgIHJldHVybjt9CisKKyAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIEJpZ0RlY2ltYWwjcmVtYWluZGVyfSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ3JlbWFpbmRlcigpeworICBib29sZWFuIGZsYWc9ZmFsc2U7CisgIGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uIGFlPW51bGw7CisgIAorICAobmV3IFRlc3QoInJlbTAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgicmVtMDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMyIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIzIik7CisgIChuZXcgVGVzdCgicmVtMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTMiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMTMiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMyIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMTMiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMyIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEzIik7CisgIChuZXcgVGVzdCgicmVtMDA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjEzIikpLnJlbWFpbmRlcihvbmUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xMyIpOworICAobmV3IFRlc3QoInJlbTAwOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTMzIikpLnJlbWFpbmRlcihvbmUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xMzMiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjEwMzMiKSkucmVtYWluZGVyKG9uZSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEwMzMiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAzMyIpKS5yZW1haW5kZXIob25lKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDMzIik7CisgIChuZXcgVGVzdCgicmVtMDExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMzMiKSkucmVtYWluZGVyKG9uZSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjMzIik7CisgIChuZXcgVGVzdCgicmVtMDEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMzMiKSkucmVtYWluZGVyKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5URU4pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4zMyIpOworICAobmV3IFRlc3QoInJlbTAxMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMy4zIikpLnJlbWFpbmRlcihjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMyIpOworICAobmV3IFRlc3QoInJlbTAxNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEzMyIpKS5yZW1haW5kZXIoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlRFTikudG9TdHJpbmcoKSkuZXF1YWxzKCIzIik7CisgIChuZXcgVGVzdCgicmVtMDE1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAzMyIpKS5yZW1haW5kZXIoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlRFTikudG9TdHJpbmcoKSkuZXF1YWxzKCIzIik7CisgIChuZXcgVGVzdCgicmVtMDE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAzMyIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCg1MCksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMzMiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDEuMCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgzKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjAiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMTgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDIuMCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgzKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgicmVtMDE5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAzLjAiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMyksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wIik7CisgIChuZXcgVGVzdCgicmVtMDIwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40MCIpKS5yZW1haW5kZXIob25lKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQwMCIpKS5yZW1haW5kZXIob25lKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNDAwIik7CisgIChuZXcgVGVzdCgicmVtMDIyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40IikpLnJlbWFpbmRlcihvbmUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40Iik7CisgIChuZXcgVGVzdCgicmVtMDIzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNCIpOworICAobmV3IFRlc3QoInJlbTAyNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNDAwIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNDAwIik7CisgIChuZXcgVGVzdCgicmVtMDI1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xIik7CisgIChuZXcgVGVzdCgicmVtMDI2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMTAiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMjciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMwMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMTAwIik7CisgIChuZXcgVGVzdCgicmVtMDI4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zMDAwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xMDAwIik7CisgIChuZXcgVGVzdCgicmVtMDI5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMzAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAwIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEwIik7CisgIChuZXcgVGVzdCgicmVtMDMxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMDAiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMTAwIik7CisgIChuZXcgVGVzdCgicmVtMDMyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMDAwIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEwMDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuMDAxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41Iik7CisgIAorICAobmV3IFRlc3QoInJlbTA0MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41MDAwMDAxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41Iik7CisgIChuZXcgVGVzdCgicmVtMDQxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUwMDAwMDAxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41Iik7CisgIChuZXcgVGVzdCgicmVtMDQyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUwMDAwMDAwMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNSIpOworICAobmV3IFRlc3QoInJlbTA0MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41MDAwMDAwMDAxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInJlbTA0NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41MDAwMDAwMDAwMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJyZW0wNDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNDk5OTk5OSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjFFLTciKTsKKyAgKG5ldyBUZXN0KCJyZW0wNDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNDk5OTk5OTkiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxRS04Iik7CisgIChuZXcgVGVzdCgicmVtMDQ3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjQ5OTk5OTk5OSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjFFLTkiKTsKKyAgKG5ldyBUZXN0KCJyZW0wNDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNDk5OTk5OTk5OSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJyZW0wNDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNDk5OTk5OTk5OTkiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIAorICAobmV3IFRlc3QoInJlbTA1MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDMiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjciKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAzIik7CisgIChuZXcgVGVzdCgicmVtMDUxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJyZW0wNTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI0LjEiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJyZW0wNTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI0LjAxIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMSIpOworICAobmV3IFRlc3QoInJlbTA1NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQuMDAxIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDEiKTsKKyAgKG5ldyBUZXN0KCJyZW0wNTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI0LjAwMDEiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDEiKTsKKyAgKG5ldyBUZXN0KCJyZW0wNTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI0LjAwMDAxIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMSIpOworICAobmV3IFRlc3QoInJlbTA1NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQuMDAwMDAxIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMDEiKTsKKyAgKG5ldyBUZXN0KCJyZW0wNTgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI0LjAwMDAwMDEiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxRS03Iik7CisgIAorICAobmV3IFRlc3QoInJlbTA2MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMiIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC43MzQ1IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40NjU1Iik7CisgIChuZXcgVGVzdCgicmVtMDYxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC44IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuOCIpOworICAobmV3IFRlc3QoInJlbTA2MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuOCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4yIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInJlbTA2MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuOCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4yIik7CisgIChuZXcgVGVzdCgicmVtMDY0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC44MDAiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC44MDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0wNjUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjgwMCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS43IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC44MDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0wNjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQwMCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgyKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjQwMCIpOworICAKKyAgLy8gTUMgLS0KKyAgKG5ldyBUZXN0KCJyZW0wNzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQwMCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgyKSxtYzYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40MDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0wNzIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NTY3ODkwMDAwMCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTJlKzEyIiksbWMzKS50b1N0cmluZygpKS5lcXVhbHMoIjNFKzExIik7CisgIAorICAvLyBGaXhlZCAtLQorICAobmV3IFRlc3QoInJlbTEwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgicmVtMTAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMyIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIzIik7CisgIChuZXcgVGVzdCgicmVtMTA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTMiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMTMiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMyIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMTMiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMyIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEzIik7CisgIChuZXcgVGVzdCgicmVtMTA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjEzIikpLnJlbWFpbmRlcihvbmUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xMyIpOworICAobmV3IFRlc3QoInJlbTEwOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTMzIikpLnJlbWFpbmRlcihvbmUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xMzMiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjEwMzMiKSkucmVtYWluZGVyKG9uZSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEwMzMiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAzMyIpKS5yZW1haW5kZXIob25lKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDMzIik7CisgIChuZXcgVGVzdCgicmVtMTExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMzMiKSkucmVtYWluZGVyKG9uZSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjMzIik7CisgIChuZXcgVGVzdCgicmVtMTEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMzMiKSkucmVtYWluZGVyKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5URU4pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4zMyIpOworICAobmV3IFRlc3QoInJlbTExMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMy4zIikpLnJlbWFpbmRlcihjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMyIpOworICAobmV3IFRlc3QoInJlbTExNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEzMyIpKS5yZW1haW5kZXIoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlRFTikudG9TdHJpbmcoKSkuZXF1YWxzKCIzIik7CisgIChuZXcgVGVzdCgicmVtMTE1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAzMyIpKS5yZW1haW5kZXIoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlRFTikudG9TdHJpbmcoKSkuZXF1YWxzKCIzIik7CisgIChuZXcgVGVzdCgicmVtMTE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAzMyIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCg1MCkpLnRvU3RyaW5nKCkpLmVxdWFscygiMzMiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDEuMCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgzKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjAiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMTgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDIuMCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgzKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgicmVtMTE5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAzLjAiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMykpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wIik7CisgIChuZXcgVGVzdCgicmVtMTIwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40MCIpKS5yZW1haW5kZXIob25lKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQwMCIpKS5yZW1haW5kZXIob25lKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNDAwIik7CisgIChuZXcgVGVzdCgicmVtMTIyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40IikpLnJlbWFpbmRlcihvbmUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40Iik7CisgIChuZXcgVGVzdCgicmVtMTIzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNCIpOworICAobmV3IFRlc3QoInJlbTEyNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNDAwIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNDAwIik7CisgIChuZXcgVGVzdCgicmVtMTI1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xIik7CisgIChuZXcgVGVzdCgicmVtMTI2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMTAiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMjciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMTAwIik7CisgIChuZXcgVGVzdCgicmVtMTI4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xMDAwIik7CisgIChuZXcgVGVzdCgicmVtMTI5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMzAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAwIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEwIik7CisgIChuZXcgVGVzdCgicmVtMTMxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMDAiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMTAwIik7CisgIChuZXcgVGVzdCgicmVtMTMyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMDAwIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEwMDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuMDAxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41Iik7CisgIChuZXcgVGVzdCgicmVtMTM0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUwMDAwMDAwMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNSIpOworICAobmV3IFRlc3QoInJlbTEzNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41MDAwMDAwMDAxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41Iik7CisgIChuZXcgVGVzdCgicmVtMTM2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMyIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDMiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMzciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInJlbTEzOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQuMSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoInJlbTEzOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQuMDEiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAxIik7CisgIChuZXcgVGVzdCgicmVtMTQwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNC4wMDEiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMSIpOworICAobmV3IFRlc3QoInJlbTE0MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQuMDAwMSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMSIpOworICAobmV3IFRlc3QoInJlbTE0MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQuMDAwMDEiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDAxIik7CisgIChuZXcgVGVzdCgicmVtMTQzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNC4wMDAwMDEiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDAwMSIpOworICAobmV3IFRlc3QoInJlbTE0NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQuMDAwMDAwMSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDAwMSIpOyAvLyAxRS03LCBwbGFpbgorICAobmV3IFRlc3QoInJlbTE0NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMiIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC43MzQ1IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40NjU1Iik7CisgIChuZXcgVGVzdCgicmVtMTQ2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC44IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuOCIpOworICAobmV3IFRlc3QoInJlbTE0NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuOCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4yIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInJlbTE0OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuOCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4yIik7CisgIChuZXcgVGVzdCgicmVtMTQ5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC44MDAiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC44MDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0xNTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjgwMCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS43IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC44MDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0xNTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQwMCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgyKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjQwMCIpOworICAKKyAgdHJ5e2NoZWNrbnVsbDpkb3sKKyAgIHRlbi5yZW1haW5kZXIoKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQ3OSl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbCovCisgIChuZXcgVGVzdCgicmVtMjAwIikpLm9rPWZsYWc7CisgIHRyeXtjaGVja251bGwyOmRveworICAgdGVuLnJlbWFpbmRlcih0ZW4sKGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQpbnVsbCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiAkODApeworICAgZmxhZz10cnVlOworICB9LypjaGVja251bGwyKi8KKyAgKG5ldyBUZXN0KCJyZW0yMDEiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUucmVtYWluZGVyKHRlbmxvbmcsbWNsZCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ4MSl7YWU9JDgxOworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlRvbyBtYW55IGRpZ2l0czoiKyIgIit0ZW5sb25nLnRvU3RyaW5nKCkpOworICB9LypjaGVja2RpZ2l0cyovCisgIChuZXcgVGVzdCgicmVtMjAyIikpLm9rPWZsYWc7CisgIAorICB0cnl7Y2hlY2tkaWdpdHM6ZG97CisgICB0ZW5sb25nLnJlbWFpbmRlcihvbmUsbWNsZCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ4Mil7YWU9JDgyOworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlRvbyBtYW55IGRpZ2l0czoiKyIgIit0ZW5sb25nLnRvU3RyaW5nKCkpOworICB9LypjaGVja2RpZ2l0cyovCisgIChuZXcgVGVzdCgicmVtMjAzIikpLm9rPWZsYWc7CisgIAorICBzdW1tYXJ5KCJyZW1haW5kZXIiKTsKKyAgcmV0dXJuO30KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgQmlnRGVjaW1hbCNzdWJ0cmFjdH0gbWV0aG9kLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWdzdWJ0cmFjdCgpeworICBib29sZWFuIGZsYWc9ZmFsc2U7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBhbGhzOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgYXJoczsKKyAgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gYWU9bnVsbDsKKyAgCisgIC8vIFtmaXJzdCBncm91cCBhcmUgJ3F1aWNrIGNvbmZpZGVuY2UgY2hlY2snXQorICAobmV3IFRlc3QoInN1YjMwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMyksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJzdWIzMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1Ljc1IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMuMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjIuNDUiKTsKKyAgKG5ldyBUZXN0KCJzdWIzMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0zIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiOCIpOworICAobmV3IFRlc3QoInN1YjMwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0zIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIiKTsKKyAgKG5ldyBUZXN0KCJzdWIzMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNyIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjUiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCItOS41Iik7CisgIChuZXcgVGVzdCgic3ViMzA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC43IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNCIpOworICAobmV3IFRlc3QoInN1YjMwNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMyIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAiKTsKKyAgKG5ldyBUZXN0KCJzdWIzMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjI1IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjUiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgic3ViMzA5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yMzQ1Njc4OSIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAwMDAwMDAwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4yMzQ1Njc4OSIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIzMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjIzNDU2Nzg5IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDAwMDAwODkiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjIzNDU2NzAwIik7CisgIAorICAobmV3IFRlc3QoInN1YjMxMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNTU1NTU1NTU1OSIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMDAwMDAwMDEiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjU1NTU1NTU1NiIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIzMTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjU1NTU1NTU1NTkiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDAwMDAwMDA1IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41NTU1NTU1NTYiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMzEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC40NDQ0NDQ0NDQ0IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTExMTExMTExMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMzMzMzMzMzMzIik7CisgIAorICAobmV3IFRlc3QoInN1YjMxNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDAwMDAwMDAwMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMDAwMDAxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45OTk5OTk5OSIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIzMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjQ0NDQ0NDQ0NDQ5OTkiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNDQ0NDQ0NDQ0Iik7CisgIAorICAobmV3IFRlc3QoInN1YjMxNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNDQ0NDQ0NDQ0NTAwMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40NDQ0NDQ0NDUiKTsKKyAgCisgIAorICAobmV3IFRlc3QoInN1YjMxNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEuMDAwMDAwMDBFKzEzIik7CisgIAorICAobmV3IFRlc3QoInN1YjMxOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIi0xLjAwMDAwMDAwRSsxMyIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIzMTkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEuMDAwMDAwMDBFKzEzIik7CisgIAorICAobmV3IFRlc3QoInN1YjMyMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTkuOTk5OTk5OUUrMTIiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMzIxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMDAwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTkuOTk5OTk5M0UrMTIiKTsKKyAgCisgIC8vIHN5bW1ldHJ5OgorICAobmV3IFRlc3QoInN1YjMyMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMDAwMDAwMEUrMTMiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMzIzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMDAwMDAwMEUrMTMiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMzI0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAwMDAwMDBFKzEzIik7CisgIAorICAobmV3IFRlc3QoInN1YjMyNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiOS45OTk5OTk5RSsxMiIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIzMjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwMDAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCI5Ljk5OTk5OTNFKzEyIik7CisgIAorICAKKyAgLy8gW3NhbWUgd2l0aCBmaXhlZCBwb2ludCBhcml0aG1ldGljXQorICAobmV3IFRlc3QoInN1YjAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMykpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJzdWIwMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1Ljc1IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMuMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIuNDUiKTsKKyAgKG5ldyBUZXN0KCJzdWIwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOCIpOworICAobmV3IFRlc3QoInN1YjAwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIiKTsKKyAgKG5ldyBUZXN0KCJzdWIwMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNyIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjUiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItOS41Iik7CisgIChuZXcgVGVzdCgic3ViMDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC43IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNCIpOworICAobmV3IFRlc3QoInN1YjAwNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMyIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAiKTsKKyAgKG5ldyBUZXN0KCJzdWIwMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjI1IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjUiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwIik7CisgIChuZXcgVGVzdCgic3ViMDA5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMiIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMCIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjIzNDU2Nzg5IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDAwMDAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjIzNDU2Nzg5Iik7CisgIAorICAobmV3IFRlc3QoInN1YjAxMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjM0NTY3ODkiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMDAwMDA4OSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMjM0NTY3MDAiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMDEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41NTU1NTU1NTU5IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwMDAwMDAwMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNTU1NTU1NTU1OCIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIwMTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjU1NTU1NTU1NTkiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDAwMDAwMDA1IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41NTU1NTU1NTU0Iik7CisgIAorICAobmV3IFRlc3QoInN1YjAxNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNDQ0NDQ0NDQ0NCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjExMTExMTExMTEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjMzMzMzMzMzMzMiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMDE1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMDAwMDAwMDAwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwMDAwMDEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk5OTk5OTk5MDAiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMDE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC40NDQ0NDQ0NDQ0OTk5IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjQ0NDQ0NDQ0NDQ5OTkiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMDE3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC40NDQ0NDQ0NDQ1MDAwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjQ0NDQ0NDQ0NDUwMDAiKTsKKyAgCisgIAorICAobmV3IFRlc3QoInN1YjAxOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTk5OTk5OTk5OTk5MzAiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMDE5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTk5OTk5OTk5OTkzMDAiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMDIwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIi05OTk5OTk5OTkzMDAwIik7CisgIAorICAobmV3IFRlc3QoInN1YjAyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTk5OTk5OTk5MzAwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMDIyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMDAwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTk5OTk5OTkzMDAwMDAiKTsKKyAgCisgIC8vIHN5bW1ldHJ5OgorICAobmV3IFRlc3QoInN1YjAyMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTk5OTk5OTk5OTkzMCIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIwMjQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5OTk5OTk5OTk5MzAwIik7CisgIAorICAobmV3IFRlc3QoInN1YjAyNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5OTk5OTk5OTkzMDAwIik7CisgIAorICAobmV3IFRlc3QoInN1YjAyNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTk5OTk5OTkzMDAwMCIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIwMjciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5OTk5OTk5MzAwMDAwIik7CisgIAorICAvLyBNQworICAobmV3IFRlc3QoInN1YjAzMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiOS45OTk5OTk5RSsxMiIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIwMzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwMCIpLG1jNikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwMDAwRSsxMyIpOworICAKKyAgCisgIC8vIHNvbWUgb2YgdGhlIG5leHQgZ3JvdXAgYXJlIHJlYWxseSBjb25zdHJ1Y3RvciB0ZXN0cworICAobmV3IFRlc3QoInN1YjA0MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwLjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgic3ViMDQxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAuMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMCIpOworICAobmV3IFRlc3QoInN1YjA0MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAuMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAiKTsKKyAgKG5ldyBUZXN0KCJzdWIwNDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMC4wIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgic3ViMDQ0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMC4wIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInN1YjA0NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjciKTsKKyAgKG5ldyBUZXN0KCJzdWIwNDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzLiIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjIuNyIpOworICAobmV3IFRlc3QoInN1YjA0NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMuMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjIuNyIpOworICAobmV3IFRlc3QoInN1YjA0OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMuMDAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjcwIik7CisgIChuZXcgVGVzdCgic3ViMDQ5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInN1YjA1MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgic3ViMDUxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjYiKTsKKyAgKG5ldyBUZXN0KCJzdWIwNTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMi43Iik7CisgIChuZXcgVGVzdCgic3ViMDUzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMy4iKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjciKTsKKyAgKG5ldyBUZXN0KCJzdWIwNTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzLjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjciKTsKKyAgKG5ldyBUZXN0KCJzdWIwNTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzLjAwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMi43MCIpOworICAobmV3IFRlc3QoInN1YjA1NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJzdWIwNTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIiszIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInN1YjA1OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI2Iik7CisgIAorICAvLyB0aGUgYWJvdmUgYWxsIGZyb20gYWRkOyBtYXNzYWdlZCBhbmQgZXh0ZW5kZWQuICBOb3cgc29tZSBuZXcgb25lcy4uLgorICAvLyBbcGFydGljdWxhcmx5IGltcG9ydGFudCBmb3IgY29tcGFyaXNvbnNdCisgIC8vIE5COiAtMUUtNyBiZWxvdyB3ZXJlIG5vbi1leHBvbmVudHMgcHJlLUFOU0kKKyAgKG5ldyBUZXN0KCJzdWIwODAiKSkub2s9KCItMUUtNyIpLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODQiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODkiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgic3ViMDgxIikpLm9rPSIwIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg1IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg5IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInN1YjA4MiIpKS5vaz0iMCIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4NiIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4OSIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJzdWIwODMiKSkub2s9IjAiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODciKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODkiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgic3ViMDg0IikpLm9rPSIwIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg4IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg5IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInN1YjA4NSIpKS5vaz0iMCIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4OSIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4OSIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJzdWIwODYiKSkub2s9IjAiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3OTAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODkiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgic3ViMDg3IikpLm9rPSIwIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2NzkxIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg5IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInN1YjA4OCIpKS5vaz0iMCIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc5MiIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4OSIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJzdWIwODkiKSkub2s9IjAiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3OTMiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODkiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgic3ViMDkwIikpLm9rPSIwIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzk0IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg5IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInN1YjA5MSIpKS5vaz0oIi0xRS03IikuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4MSIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4NiIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJzdWIwOTIiKSkub2s9KCItMUUtNyIpLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODIiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODYiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgic3ViMDkzIikpLm9rPSgiLTFFLTciKS5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2NzgzIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg2IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInN1YjA5NCIpKS5vaz0oIi0xRS03IikuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4NCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4NiIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJzdWIwOTUiKSkub2s9IjAiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODUiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODYiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgic3ViMDk2IikpLm9rPSIwIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg2IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg2IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInN1YjA5NyIpKS5vaz0iMCIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4NyIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4NiIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJzdWIwOTgiKSkub2s9IjAiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODgiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODYiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgic3ViMDk5IikpLm9rPSIwIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg5IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg2IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInN1YjEwMCIpKS5vaz0iMCIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc5MCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4NiIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJzdWIxMDEiKSkub2s9IjAiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3OTEiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODYiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgic3ViMTAyIikpLm9rPSIwIi5lcXVhbHMoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjk5OTk5OTk5OSIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJzdWIxMDMiKSkub2s9IjAiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC45OTk5OTk5OTkiKSkuc3VidHJhY3QoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORSxtY2RlZikudG9TdHJpbmcoKSk7CisgIAorICBhbGhzPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1Njc4OTAwMDAwIik7CisgIGFyaHM9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTk5OTk5OTk5OSIpOworICAobmV3IFRlc3QoInN1YjExMCIpKS5vaz0oYWxocy5zdWJ0cmFjdChhcmhzLG1jMykudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjNFKzEyIik7CisgIChuZXcgVGVzdCgic3ViMTExIikpLm9rPShhcmhzLnN1YnRyYWN0KGFsaHMsbWMzKS50b1N0cmluZygpKS5lcXVhbHMoIi0yLjNFKzEyIik7CisgIChuZXcgVGVzdCgic3ViMTEyIikpLm9rPShhbGhzLnN1YnRyYWN0KGFyaHMpLnRvU3RyaW5nKCkpLmVxdWFscygiMjM0NTY3ODkwMDAwMSIpOworICAobmV3IFRlc3QoInN1YjExMyIpKS5vaz0oYXJocy5zdWJ0cmFjdChhbGhzKS50b1N0cmluZygpKS5lcXVhbHMoIi0yMzQ1Njc4OTAwMDAxIik7CisgIAorICAvLyBhZGRpdGlvbmFsIHNjYWxlZCBhcml0aG1ldGljIHRlc3RzIFswLjk3IHByb2JsZW1dCisgIChuZXcgVGVzdCgic3ViMTIwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjEiKTsKKyAgKG5ldyBUZXN0KCJzdWIxMjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuOTc5ODMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC45Nzk4MyIpOworICAobmV3IFRlc3QoInN1YjEyMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC45Iik7CisgIChuZXcgVGVzdCgic3ViMTIzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjEwMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjEwMiIpOworICAobmV3IFRlc3QoInN1YjEyNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjQiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC40Iik7CisgIChuZXcgVGVzdCgic3ViMTI1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMzA3IikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMzA3Iik7CisgIChuZXcgVGVzdCgic3ViMTI2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuNDM4MjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC40MzgyMiIpOworICAobmV3IFRlc3QoInN1YjEyNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjkxMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjkxMSIpOworICAobmV3IFRlc3QoInN1YjEyOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4wIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4wMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjAyIik7CisgIChuZXcgVGVzdCgic3ViMTI5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjM5MiIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjM5MiIpOworICAobmV3IFRlc3QoInN1YjEzMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjI2IikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMjYiKTsKKyAgKG5ldyBUZXN0KCJzdWIxMzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNTEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC41MSIpOworICAobmV3IFRlc3QoInN1YjEzMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjIyMzQiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC4yMjM0Iik7CisgIChuZXcgVGVzdCgic3ViMTMzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjIiKTsKKyAgKG5ldyBUZXN0KCJzdWIxMzQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMDAwOCIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjAwMDgiKTsKKyAgLy8gMC4gb24gbGVmdAorICAobmV3IFRlc3QoInN1YjE0MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItLjEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJzdWIxNDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uOTc5ODMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk3OTgzIik7CisgIChuZXcgVGVzdCgic3ViMTQyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuOSIpOworICAobmV3IFRlc3QoInN1YjE0MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4xMDIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEwMiIpOworICAobmV3IFRlc3QoInN1YjE0NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItLjQiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjQiKTsKKyAgKG5ldyBUZXN0KCJzdWIxNDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS4zMDciKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjMwNyIpOworICAobmV3IFRlc3QoInN1YjE0NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItLjQzODIyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40MzgyMiIpOworICAobmV3IFRlc3QoInN1YjE0NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItLjkxMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTExIik7CisgIChuZXcgVGVzdCgic3ViMTQ4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uMDIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAyIik7CisgIChuZXcgVGVzdCgic3ViMTQ5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItLjM5MiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMzkyIik7CisgIChuZXcgVGVzdCgic3ViMTUwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uMjYiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjI2Iik7CisgIChuZXcgVGVzdCgic3ViMTUxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjUxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41MSIpOworICAobmV3IFRlc3QoInN1YjE1MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItLjIyMzQiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjIyMzQiKTsKKyAgKG5ldyBUZXN0KCJzdWIxNTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS4yIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4yIik7CisgIChuZXcgVGVzdCgic3ViMTU0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uMDAwOCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwOCIpOworICAvLyBuZWdhdGl2ZXMgb2Ygc2FtZQorICAobmV3IFRlc3QoInN1YjE2MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS4xIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xIik7CisgIChuZXcgVGVzdCgic3ViMTYxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS45Nzk4MyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTc5ODMiKTsKKyAgKG5ldyBUZXN0KCJzdWIxNjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuOSIpOworICAobmV3IFRlc3QoInN1YjE2MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMTAyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xMDIiKTsKKyAgKG5ldyBUZXN0KCJzdWIxNjQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uNCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNCIpOworICAobmV3IFRlc3QoInN1YjE2NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS4zMDciKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjMwNyIpOworICAobmV3IFRlc3QoInN1YjE2NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS40MzgyMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNDM4MjIiKTsKKyAgKG5ldyBUZXN0KCJzdWIxNjciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uOTExIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45MTEiKTsKKyAgKG5ldyBUZXN0KCJzdWIxNjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItLjAyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMiIpOworICAobmV3IFRlc3QoInN1YjE2OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uMzkyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4zOTIiKTsKKyAgKG5ldyBUZXN0KCJzdWIxNzAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uMjYiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjI2Iik7CisgIChuZXcgVGVzdCgic3ViMTcxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC41MSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNTEiKTsKKyAgKG5ldyBUZXN0KCJzdWIxNzIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uMjIzNCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMjIzNCIpOworICAobmV3IFRlc3QoInN1YjE3MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS4yIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4yIik7CisgIChuZXcgVGVzdCgic3ViMTc0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS4wMDA4IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDA4Iik7CisgIAorICAvLyBtb3JlIGZpeGVkLCBMSFMgc3dhcHMgW3JlYWxseSBzYW1lIGFzIHRlc3RjYXNlcyB1bmRlciBhZGRdCisgIChuZXcgVGVzdCgic3ViMTgwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTU2MjY3RS0xMCIpKS5zdWJ0cmFjdCh6ZXJvKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjAwMDAwNTYyNjciKTsKKyAgKG5ldyBUZXN0KCJzdWIxODEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTUiKSkuc3VidHJhY3QoemVybykudG9TdHJpbmcoKSkuZXF1YWxzKCItMC41NjI2NyIpOworICAobmV3IFRlc3QoInN1YjE4MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01NjI2N0UtMiIpKS5zdWJ0cmFjdCh6ZXJvKS50b1N0cmluZygpKS5lcXVhbHMoIi01NjIuNjciKTsKKyAgKG5ldyBUZXN0KCJzdWIxODMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTEiKSkuc3VidHJhY3QoemVybykudG9TdHJpbmcoKSkuZXF1YWxzKCItNTYyNi43Iik7CisgIChuZXcgVGVzdCgic3ViMTg1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTU2MjY3RS0wIikpLnN1YnRyYWN0KHplcm8pLnRvU3RyaW5nKCkpLmVxdWFscygiLTU2MjY3Iik7CisgIAorICB0cnl7Y2hlY2tudWxsOmRveworICAgdGVuLnN1YnRyYWN0KChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwpbnVsbCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiAkODMpeworICAgZmxhZz10cnVlOworICB9LypjaGVja251bGwqLworICAobmV3IFRlc3QoInN1YjIwMCIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tudWxsMjpkb3sKKyAgIHRlbi5zdWJ0cmFjdCh0ZW4sKGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQpbnVsbCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiAkODQpeworICAgZmxhZz10cnVlOworICB9LypjaGVja251bGwyKi8KKyAgKG5ldyBUZXN0KCJzdWIyMDEiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUuc3VidHJhY3QodGVubG9uZyxtY2xkKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDg1KXthZT0kODU7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiVG9vIG1hbnkgZGlnaXRzOiIrIiAiK3RlbmxvbmcudG9TdHJpbmcoKSk7CisgIH0vKmNoZWNrZGlnaXRzKi8KKyAgKG5ldyBUZXN0KCJzdWIyMDIiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrZGlnaXRzOmRveworICAgdGVubG9uZy5zdWJ0cmFjdChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLG1jbGQpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkODYpe2FlPSQ4NjsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJUb28gbWFueSBkaWdpdHM6IisiICIrdGVubG9uZy50b1N0cmluZygpKTsKKyAgfS8qY2hlY2tkaWdpdHMqLworICAobmV3IFRlc3QoInN1YjIwMyIpKS5vaz1mbGFnOworICBzdW1tYXJ5KCJzdWJ0cmFjdCIpOworICByZXR1cm47fQorLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIC8qIE90aGVyIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUgPGNvZGU+QmlnRGVjaW1hbC5ieXRlVmFsdWUoKTwvY29kZT4gbWV0aG9kLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWdieXRlVmFsdWUoKXsKKyAgYm9vbGVhbiBmbGFnPWZhbHNlOworICBqYXZhLmxhbmcuU3RyaW5nIHY9bnVsbDsKKyAgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gYWU9bnVsbDsKKyAgamF2YS5sYW5nLlN0cmluZyBiYWRzdHJpbmdzW107CisgIGludCBpPTA7CisgIGphdmEubGFuZy5TdHJpbmcgbm9ybT1udWxsOworICAKKyAgCisgIChuZXcgVGVzdCgiYnl2MDAxIikpLm9rPSgoKChieXRlKS0xMjgpKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEyOCIpKS5ieXRlVmFsdWUoKSk7CisgIChuZXcgVGVzdCgiYnl2MDAyIikpLm9rPSgoMCkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuYnl0ZVZhbHVlKCkpOworICAobmV3IFRlc3QoImJ5djAwMyIpKS5vaz0oKDEpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLmJ5dGVWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJieXYwMDQiKSkub2s9KCg5OSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5IikpLmJ5dGVWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJieXYwMDUiKSkub2s9KCgxMjcpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjciKSkuYnl0ZVZhbHVlKCkpOworICAobmV3IFRlc3QoImJ5djAwNiIpKS5vaz0oKC0xMjgpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjgiKSkuYnl0ZVZhbHVlKCkpOworICAobmV3IFRlc3QoImJ5djAwNyIpKS5vaz0oKC0xMjcpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjkiKSkuYnl0ZVZhbHVlKCkpOworICAobmV3IFRlc3QoImJ5djAwOCIpKS5vaz0oKDEyNykpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xMjkiKSkuYnl0ZVZhbHVlKCkpOworICAobmV3IFRlc3QoImJ5djAwOSIpKS5vaz0oKDEyNikpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xMzAiKSkuYnl0ZVZhbHVlKCkpOworICAobmV3IFRlc3QoImJ5djAxMCIpKS5vaz0oKGJtYXgpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJtYXgpKS5ieXRlVmFsdWUoKSk7CisgIChuZXcgVGVzdCgiYnl2MDExIikpLm9rPSgoYm1pbikpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYm1pbikpLmJ5dGVWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJieXYwMTIiKSkub2s9KChibmVnKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChibmVnKSkuYnl0ZVZhbHVlKCkpOworICAobmV3IFRlc3QoImJ5djAxMyIpKS5vaz0oKGJ6ZXIpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJ6ZXIpKS5ieXRlVmFsdWUoKSk7CisgIChuZXcgVGVzdCgiYnl2MDE0IikpLm9rPSgoYnBvcykpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYnBvcykpLmJ5dGVWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJieXYwMTUiKSkub2s9KChibWluKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChibWF4KzEpKS5ieXRlVmFsdWUoKSk7CisgIChuZXcgVGVzdCgiYnl2MDE2IikpLm9rPSgoYm1heCkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYm1pbi0xKSkuYnl0ZVZhbHVlKCkpOworICAKKyAgKG5ldyBUZXN0KCJieXYwMjEiKSkub2s9KCgoKGJ5dGUpLTEyOCkpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMTI4IikpLmJ5dGVWYWx1ZUV4YWN0KCkpOworICAobmV3IFRlc3QoImJ5djAyMiIpKS5vaz0oKDApKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLmJ5dGVWYWx1ZUV4YWN0KCkpOworICAobmV3IFRlc3QoImJ5djAyMyIpKS5vaz0oKDEpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLmJ5dGVWYWx1ZUV4YWN0KCkpOworICAobmV3IFRlc3QoImJ5djAyNCIpKS5vaz0oKDk5KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTkiKSkuYnl0ZVZhbHVlRXhhY3QoKSk7CisgIChuZXcgVGVzdCgiYnl2MDI1IikpLm9rPSgoMTI3KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI3IikpLmJ5dGVWYWx1ZUV4YWN0KCkpOworICAobmV3IFRlc3QoImJ5djAyNiIpKS5vaz0oKGJtYXgpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJtYXgpKS5ieXRlVmFsdWVFeGFjdCgpKTsKKyAgKG5ldyBUZXN0KCJieXYwMjciKSkub2s9KChibWluKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChibWluKSkuYnl0ZVZhbHVlRXhhY3QoKSk7CisgIChuZXcgVGVzdCgiYnl2MDI4IikpLm9rPSgoYm5lZykpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYm5lZykpLmJ5dGVWYWx1ZUV4YWN0KCkpOworICAobmV3IFRlc3QoImJ5djAyOSIpKS5vaz0oKGJ6ZXIpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJ6ZXIpKS5ieXRlVmFsdWVFeGFjdCgpKTsKKyAgKG5ldyBUZXN0KCJieXYwMzAiKSkub2s9KChicG9zKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChicG9zKSkuYnl0ZVZhbHVlRXhhY3QoKSk7CisgIHRyeXsKKyAgIHY9Ii0xMjkiOworICAgKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwodikpLmJ5dGVWYWx1ZUV4YWN0KCk7CisgICBmbGFnPWZhbHNlOworICB9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkODcpe2FlPSQ4NzsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJDb252ZXJzaW9uIG92ZXJmbG93OiIrIiAiK3YpOworICB9CisgIChuZXcgVGVzdCgiYnl2MTAwIikpLm9rPWZsYWc7CisgIHRyeXsKKyAgIHY9IjEyOCI7CisgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2KSkuYnl0ZVZhbHVlRXhhY3QoKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ4OCl7YWU9JDg4OworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIkNvbnZlcnNpb24gb3ZlcmZsb3c6IisiICIrdik7CisgIH0KKyAgKG5ldyBUZXN0KCJieXYxMDEiKSkub2s9ZmxhZzsKKyAgdHJ5eworICAgdj0iMS41IjsKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHYpKS5ieXRlVmFsdWVFeGFjdCgpOworICAgZmxhZz1mYWxzZTsKKyAgfQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDg5KXthZT0kODk7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiRGVjaW1hbCBwYXJ0IG5vbi16ZXJvOiIrIiAiK3YpOworICB9CisgIChuZXcgVGVzdCgiYnl2MTAyIikpLm9rPWZsYWc7CisgIAorICBiYWRzdHJpbmdzPW5ldyBqYXZhLmxhbmcuU3RyaW5nW117IjEyMzQiLChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJtYXgpKS5hZGQob25lKS50b1N0cmluZygpLChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJtaW4pKS5zdWJ0cmFjdChvbmUpLnRvU3RyaW5nKCksIjE3MCIsIjI3MCIsIjM3MCIsIjQ3MCIsIjU3MCIsIjY3MCIsIjc3MCIsIjg3MCIsIjk3MCIsIi0xNzAiLCItMjcwIiwiLTM3MCIsIi00NzAiLCItNTcwIiwiLTY3MCIsIi03NzAiLCItODcwIiwiLTk3MCIsKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYm1pbikpLm11bHRpcGx5KHR3bykudG9TdHJpbmcoKSwobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChibWF4KSkubXVsdGlwbHkodHdvKS50b1N0cmluZygpLChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJtaW4pKS5tdWx0aXBseSh0ZW4pLnRvU3RyaW5nKCksKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYm1heCkpLm11bHRpcGx5KHRlbikudG9TdHJpbmcoKSwiLTEyMzQifTsgLy8gMjIwCisgIC8vIDIyMQorICAvLyAyMjIKKyAgLy8gMjIzCisgIC8vIDIyNAorICAvLyAyMjUKKyAgLy8gMjI2CisgIC8vIDIyNworICAvLyAyMjgKKyAgLy8gMjI5CisgIC8vIDIzMAorICAvLyAyMzEKKyAgLy8gMjMyCisgIC8vIDIzMworICAvLyAyMzQKKyAgLy8gMjM1CisgIC8vIDIzNgorICAvLyAyMzcKKyAgLy8gMjM4CisgIC8vIDIzOQorICAvLyAyNDAKKyAgLy8gMjQxCisgIC8vIDI0MgorICAvLyAyNDMKKyAgLy8gMjQ0CisgIC8vIDI0NQorICB7aW50ICQ5MD1iYWRzdHJpbmdzLmxlbmd0aDtpPTA7aTpmb3IoOyQ5MD4wOyQ5MC0tLGkrKyl7CisgICB0cnl7CisgICAgdj1iYWRzdHJpbmdzW2ldOworICAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHYpKS5ieXRlVmFsdWVFeGFjdCgpOworICAgIGZsYWc9ZmFsc2U7CisgICB9CisgICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDkxKXthZT0kOTE7CisgICAgbm9ybT0obmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2KSkudG9TdHJpbmcoKTsKKyAgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiQ29udmVyc2lvbiBvdmVyZmxvdzoiKyIgIitub3JtKTsKKyAgIH0KKyAgIChuZXcgVGVzdCgiYnl2IisoMjIwK2kpKSkub2s9ZmxhZzsKKyAgIH0KKyAgfS8qaSovCisgIAorICBzdW1tYXJ5KCJieXRlVmFsdWUrIik7CisgIHJldHVybjt9CisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgQmlnRGVjaW1hbCNjb21wYXJlVG8oamF2YS5sYW5nLk9iamVjdCl9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnY29tcGFyZXRvT2JqKCl7CisgIGJvb2xlYW4gZmxhZz1mYWxzZTsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGQ7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBsb25nMTsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGxvbmcyOworICAKKyAgZD1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDE3KTsKKyAgKG5ldyBUZXN0KCJjdG8wMDEiKSkub2s9KGQuY29tcGFyZVRvKChqYXZhLmxhbmcuT2JqZWN0KShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDY2KSkpKT09KC0xKTsKKyAgKG5ldyBUZXN0KCJjdG8wMDIiKSkub2s9KGQuY29tcGFyZVRvKChqYXZhLmxhbmcuT2JqZWN0KSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgxMCkpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDcpKSkpKT09MDsKKyAgKG5ldyBUZXN0KCJjdG8wMDMiKSkub2s9KGQuY29tcGFyZVRvKChqYXZhLmxhbmcuT2JqZWN0KShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDEwKSkpKT09MTsKKyAgbG9uZzE9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDU2Nzg5MDMiKTsKKyAgbG9uZzI9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDU2Nzg5MDAiKTsKKyAgKG5ldyBUZXN0KCJjdG8wMDQiKSkub2s9KGxvbmcxLmNvbXBhcmVUbygoamF2YS5sYW5nLk9iamVjdClsb25nMikpPT0xOworICAobmV3IFRlc3QoImN0bzAwNSIpKS5vaz0obG9uZzIuY29tcGFyZVRvKChqYXZhLmxhbmcuT2JqZWN0KWxvbmcxKSk9PSgtMSk7CisgIChuZXcgVGVzdCgiY3RvMDA2IikpLm9rPShsb25nMi5jb21wYXJlVG8oKGphdmEubGFuZy5PYmplY3QpbG9uZzIpKT09MDsKKyAgdHJ5eworICAgZC5jb21wYXJlVG8oKGphdmEubGFuZy5PYmplY3QpbnVsbCk7CisgICBmbGFnPWZhbHNlOworICB9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDkyKXsKKyAgIGZsYWc9dHJ1ZTsgLy8gc2hvdWxkIGdldCBoZXJlCisgIH0KKyAgKG5ldyBUZXN0KCJjdG8xMDEiKSkub2s9ZmxhZzsKKyAgdHJ5eworICAgZC5jb21wYXJlVG8oKGphdmEubGFuZy5PYmplY3QpImZvbyIpOworICAgZmxhZz1mYWxzZTsKKyAgfQorICBjYXRjaCAoamF2YS5sYW5nLkNsYXNzQ2FzdEV4Y2VwdGlvbiAkOTMpeworICAgZmxhZz10cnVlOyAvLyBzaG91bGQgZ2V0IGhlcmUKKyAgfQorICAobmV3IFRlc3QoImN0bzEwMiIpKS5vaz1mbGFnOworICBzdW1tYXJ5KCJjb21wYXJlVG8oT2JqKSIpOworICByZXR1cm47fQorLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIEJpZ0RlY2ltYWwjZG91YmxlVmFsdWV9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnZG91YmxldmFsdWUoKXsKKyAgamF2YS5sYW5nLlN0cmluZyB2YWw7CisgIC8vIDE5OTkuMDMuMDcgSW5maW5pdGllcyBubyBsb25nZXIgZXJyb3JzCisgIHZhbD0iLTEiOworICAobmV3IFRlc3QoImRvdjAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwodmFsKSkuZG91YmxlVmFsdWUoKSk9PSgobmV3IGphdmEubGFuZy5Eb3VibGUodmFsKSkuZG91YmxlVmFsdWUoKSk7CisgIHZhbD0iLTAuMSI7CisgIChuZXcgVGVzdCgiZG92MDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2YWwpKS5kb3VibGVWYWx1ZSgpKT09KChuZXcgamF2YS5sYW5nLkRvdWJsZSh2YWwpKS5kb3VibGVWYWx1ZSgpKTsKKyAgdmFsPSIwIjsKKyAgKG5ldyBUZXN0KCJkb3YwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHZhbCkpLmRvdWJsZVZhbHVlKCkpPT0oKG5ldyBqYXZhLmxhbmcuRG91YmxlKHZhbCkpLmRvdWJsZVZhbHVlKCkpOworICB2YWw9IjAuMSI7CisgIChuZXcgVGVzdCgiZG92MDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2YWwpKS5kb3VibGVWYWx1ZSgpKT09KChuZXcgamF2YS5sYW5nLkRvdWJsZSh2YWwpKS5kb3VibGVWYWx1ZSgpKTsKKyAgdmFsPSIxIjsKKyAgKG5ldyBUZXN0KCJkb3YwMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHZhbCkpLmRvdWJsZVZhbHVlKCkpPT0oKG5ldyBqYXZhLmxhbmcuRG91YmxlKHZhbCkpLmRvdWJsZVZhbHVlKCkpOworICB2YWw9IjFlMTAwMCI7CisgIChuZXcgVGVzdCgiZG92MDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2YWwpKS5kb3VibGVWYWx1ZSgpKT09amF2YS5sYW5nLkRvdWJsZS5QT1NJVElWRV9JTkZJTklUWTsKKyAgdmFsPSItMWUxMDAwIjsKKyAgKG5ldyBUZXN0KCJkb3YwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHZhbCkpLmRvdWJsZVZhbHVlKCkpPT1qYXZhLmxhbmcuRG91YmxlLk5FR0FUSVZFX0lORklOSVRZOworICBzdW1tYXJ5KCJkb3VibGVWYWx1ZSIpOworICByZXR1cm47fQorLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIEJpZ0RlY2ltYWwjZXF1YWxzfSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ2VxdWFscygpeworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZDsKKyAgZD1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDE3KTsKKyAgKG5ldyBUZXN0KCJlcXUwMDEiKSkub2s9KCEoZC5lcXVhbHMoKGphdmEubGFuZy5PYmplY3QpbnVsbCkpKTsKKyAgKG5ldyBUZXN0KCJlcXUwMDIiKSkub2s9KCEoZC5lcXVhbHMoKGphdmEubGFuZy5PYmplY3QpImZvbyIpKSk7CisgIChuZXcgVGVzdCgiZXF1MDAzIikpLm9rPSghKGQuZXF1YWxzKChqYXZhLmxhbmcuT2JqZWN0KShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDY2KSkpKSk7CisgIChuZXcgVGVzdCgiZXF1MDA0IikpLm9rPWQuZXF1YWxzKChqYXZhLmxhbmcuT2JqZWN0KWQpOworICAobmV3IFRlc3QoImVxdTAwNSIpKS5vaz1kLmVxdWFscygoamF2YS5sYW5nLk9iamVjdCkoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMTApKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCg3KSkpKTsKKyAgc3VtbWFyeSgiZXF1YWxzIik7CisgIHJldHVybjt9CisKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgQmlnRGVjaW1hbCNmbG9hdFZhbHVlfSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ2Zsb2F0dmFsdWUoKXsKKyAgamF2YS5sYW5nLlN0cmluZyB2YWw7CisgIC8vIDE5OTkuMDMuMDcgSW5maW5pdGllcyBubyBsb25nZXIgZXJyb3JzCisgIHZhbD0iLTEiOworICAobmV3IFRlc3QoImZsdjAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwodmFsKSkuZmxvYXRWYWx1ZSgpKT09KChuZXcgamF2YS5sYW5nLkZsb2F0KHZhbCkpLmZsb2F0VmFsdWUoKSk7CisgIHZhbD0iLTAuMSI7CisgIChuZXcgVGVzdCgiZmx2MDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2YWwpKS5mbG9hdFZhbHVlKCkpPT0oKG5ldyBqYXZhLmxhbmcuRmxvYXQodmFsKSkuZmxvYXRWYWx1ZSgpKTsKKyAgdmFsPSIwIjsKKyAgKG5ldyBUZXN0KCJmbHYwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHZhbCkpLmZsb2F0VmFsdWUoKSk9PSgobmV3IGphdmEubGFuZy5GbG9hdCh2YWwpKS5mbG9hdFZhbHVlKCkpOworICB2YWw9IjAuMSI7CisgIChuZXcgVGVzdCgiZmx2MDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2YWwpKS5mbG9hdFZhbHVlKCkpPT0oKG5ldyBqYXZhLmxhbmcuRmxvYXQodmFsKSkuZmxvYXRWYWx1ZSgpKTsKKyAgdmFsPSIxIjsKKyAgKG5ldyBUZXN0KCJmbHYwMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHZhbCkpLmZsb2F0VmFsdWUoKSk9PSgobmV3IGphdmEubGFuZy5GbG9hdCh2YWwpKS5mbG9hdFZhbHVlKCkpOworICB2YWw9IjFlMjAwIjsKKyAgKG5ldyBUZXN0KCJmbHYwMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHZhbCkpLmZsb2F0VmFsdWUoKSk9PWphdmEubGFuZy5GbG9hdC5QT1NJVElWRV9JTkZJTklUWTsKKyAgdmFsPSItMWUyMDAiOworICAobmV3IFRlc3QoImZsdjAwNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwodmFsKSkuZmxvYXRWYWx1ZSgpKT09amF2YS5sYW5nLkZsb2F0Lk5FR0FUSVZFX0lORklOSVRZOworICB2YWw9IjFlMTAwMCI7CisgIChuZXcgVGVzdCgiZmx2MDA4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2YWwpKS5mbG9hdFZhbHVlKCkpPT1qYXZhLmxhbmcuRmxvYXQuUE9TSVRJVkVfSU5GSU5JVFk7CisgIHZhbD0iLTFlMTAwMCI7CisgIChuZXcgVGVzdCgiZmx2MDA5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2YWwpKS5mbG9hdFZhbHVlKCkpPT1qYXZhLmxhbmcuRmxvYXQuTkVHQVRJVkVfSU5GSU5JVFk7CisgIHN1bW1hcnkoImZsb2F0VmFsdWUiKTsKKyAgcmV0dXJuO30KKworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBCaWdEZWNpbWFsI2Zvcm1hdH0gbWV0aG9kLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWdmb3JtYXQoKXsKKyAgYm9vbGVhbiBmbGFnPWZhbHNlOworICBpbnQgZW5nOworICBpbnQgc2NpOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZDA0OworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZDA1OworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZDA2OworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZDE1OworICBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZT1udWxsOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZDA1MDsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGQxNTA7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBtMDUwOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbTE1MDsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGQwNTE7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBkMTUxOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZDAwMDsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGQ1MDA7CisgIGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uIGFlPW51bGw7CisgIC8vIDE5OTkuMDIuMDkgbm93IG9ubHkgdHdvIHNpZ25hdHVyZXMgZm9yIGZvcm1hdCgpLCBzbyBzb21lIHRlc3RzIGJlbG93CisgIC8vICAgICAgICAgICAgbWF5IG5vdyBiZSByZWR1bmRhbnQKKyAgCisgIChuZXcgVGVzdCgiZm9yMDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIuMyIpKS5mb3JtYXQoLTEsLTEpKS5lcXVhbHMoIjEyLjMiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMTIuNzMiKSkuZm9ybWF0KC0xLC0xKSkuZXF1YWxzKCItMTIuNzMiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMCIpKS5mb3JtYXQoLTEsLTEpKS5lcXVhbHMoIjAuMDAwIik7CisgIChuZXcgVGVzdCgiZm9yMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiM0UrMyIpKS5mb3JtYXQoLTEsLTEpKS5lcXVhbHMoIjMwMDAiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLmZvcm1hdCg0LC0xKSkuZXF1YWxzKCIgICAzIik7CisgIChuZXcgVGVzdCgiZm9yMDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS43MyIpKS5mb3JtYXQoNCwwKSkuZXF1YWxzKCIgICAyIik7CisgIChuZXcgVGVzdCgiZm9yMDA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS43MyIpKS5mb3JtYXQoNCwxKSkuZXF1YWxzKCIgICAxLjciKTsKKyAgKG5ldyBUZXN0KCJmb3IwMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjc1IikpLmZvcm1hdCg0LDEpKS5lcXVhbHMoIiAgIDEuOCIpOworICAobmV3IFRlc3QoImZvcjAwOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNSIpKS5mb3JtYXQoNCwxKSkuZXF1YWxzKCIgICAwLjUiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1IikpLmZvcm1hdCg0LDEpKS5lcXVhbHMoIiAgIDAuMSIpOworICAobmV3IFRlc3QoImZvcjAxMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDQiKSkuZm9ybWF0KDQsMSkpLmVxdWFscygiICAgMC4wIik7CisgIChuZXcgVGVzdCgiZm9yMDEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5mb3JtYXQoNCwwKSkuZXF1YWxzKCIgICAwIik7CisgIChuZXcgVGVzdCgiZm9yMDEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5mb3JtYXQoNCwxKSkuZXF1YWxzKCIgICAwLjAiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLmZvcm1hdCg0LDIpKS5lcXVhbHMoIiAgIDAuMDAiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLmZvcm1hdCg0LDMpKS5lcXVhbHMoIiAgIDAuMDAwIik7CisgIChuZXcgVGVzdCgiZm9yMDE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5mb3JtYXQoNCw0KSkuZXF1YWxzKCIgICAwLjAwMDAiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwNSIpKS5mb3JtYXQoNCwwKSkuZXF1YWxzKCIgICAwIik7CisgIChuZXcgVGVzdCgiZm9yMDE4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDUiKSkuZm9ybWF0KDQsMSkpLmVxdWFscygiICAgMC4wIik7CisgIChuZXcgVGVzdCgiZm9yMDE5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDUiKSkuZm9ybWF0KDQsMikpLmVxdWFscygiICAgMC4wMSIpOworICAobmV3IFRlc3QoImZvcjAyMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA0IikpLmZvcm1hdCg0LDIpKS5lcXVhbHMoIiAgIDAuMDAiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwNSIpKS5mb3JtYXQoNCwzKSkuZXF1YWxzKCIgICAwLjAwNSIpOworICAobmV3IFRlc3QoImZvcjAyMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLmZvcm1hdCg0LDQpKS5lcXVhbHMoIiAgIDAuMDA1MCIpOworICAKKyAgKG5ldyBUZXN0KCJmb3IwMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjczIikpLmZvcm1hdCg0LDIpKS5lcXVhbHMoIiAgIDEuNzMiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMjQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjczIikpLmZvcm1hdCg0LDMpKS5lcXVhbHMoIiAgIDEuNzMwIik7CisgIChuZXcgVGVzdCgiZm9yMDI1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS43NiIpKS5mb3JtYXQoNCwxKSkuZXF1YWxzKCIgIC0wLjgiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMTIuNzMiKSkuZm9ybWF0KC0xLDQpKS5lcXVhbHMoIi0xMi43MzAwIik7CisgIAorICAobmV3IFRlc3QoImZvcjAyNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMuMDMiKSkuZm9ybWF0KDQsLTEpKS5lcXVhbHMoIiAgIDMuMDMiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzLjAzIikpLmZvcm1hdCg0LDEpKS5lcXVhbHMoIiAgIDMuMCIpOworICAobmV3IFRlc3QoImZvcjAyOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMuMDMiKSkuZm9ybWF0KDQsLTEsMywtMSwtMSwtMSkpLmVxdWFscygiICAgMy4wMyAgICAgIik7CisgIChuZXcgVGVzdCgiZm9yMDMwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMy4wMyIpKS5mb3JtYXQoLTEsLTEsMywtMSwtMSwtMSkpLmVxdWFscygiMy4wMyAgICAgIik7CisgIChuZXcgVGVzdCgiZm9yMDMxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDUuNzMiKSkuZm9ybWF0KC0xLC0xLC0xLDQsLTEsLTEpKS5lcXVhbHMoIjEuMjM0NTczRSs0Iik7CisgIChuZXcgVGVzdCgiZm9yMDMyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDUuNzMiKSkuZm9ybWF0KC0xLC0xLC0xLDUsLTEsLTEpKS5lcXVhbHMoIjEyMzQ1LjczIik7CisgIChuZXcgVGVzdCgiZm9yMDMzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDUuNzMiKSkuZm9ybWF0KC0xLC0xLC0xLDYsLTEsLTEpKS5lcXVhbHMoIjEyMzQ1LjczIik7CisgIAorICAobmV3IFRlc3QoImZvcjAzNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1LjczIikpLmZvcm1hdCgtMSw4LC0xLDMsLTEsLTEpKS5lcXVhbHMoIjEuMjM0NTczMDBFKzQiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMzUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NS43MyIpKS5mb3JtYXQoLTEsNywtMSwzLC0xLC0xKSkuZXF1YWxzKCIxLjIzNDU3MzBFKzQiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMzYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NS43MyIpKS5mb3JtYXQoLTEsNiwtMSwzLC0xLC0xKSkuZXF1YWxzKCIxLjIzNDU3M0UrNCIpOworICAobmV3IFRlc3QoImZvcjAzNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1LjczIikpLmZvcm1hdCgtMSw1LC0xLDMsLTEsLTEpKS5lcXVhbHMoIjEuMjM0NTdFKzQiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMzgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NS43MyIpKS5mb3JtYXQoLTEsNCwtMSwzLC0xLC0xKSkuZXF1YWxzKCIxLjIzNDZFKzQiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMzkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NS43MyIpKS5mb3JtYXQoLTEsMywtMSwzLC0xLC0xKSkuZXF1YWxzKCIxLjIzNUUrNCIpOworICAobmV3IFRlc3QoImZvcjA0MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1LjczIikpLmZvcm1hdCgtMSwyLC0xLDMsLTEsLTEpKS5lcXVhbHMoIjEuMjNFKzQiKTsKKyAgKG5ldyBUZXN0KCJmb3IwNDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NS43MyIpKS5mb3JtYXQoLTEsMSwtMSwzLC0xLC0xKSkuZXF1YWxzKCIxLjJFKzQiKTsKKyAgKG5ldyBUZXN0KCJmb3IwNDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NS43MyIpKS5mb3JtYXQoLTEsMCwtMSwzLC0xLC0xKSkuZXF1YWxzKCIxRSs0Iik7CisgIAorICAobmV3IFRlc3QoImZvcjA0MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OTk5Ljk5IikpLmZvcm1hdCgtMSw2LC0xLDMsLTEsLTEpKS5lcXVhbHMoIjkuOTk5OTk5RSs0Iik7CisgIChuZXcgVGVzdCgiZm9yMDQ0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTkuOTkiKSkuZm9ybWF0KC0xLDUsLTEsMywtMSwtMSkpLmVxdWFscygiMS4wMDAwMEUrNSIpOworICAobmV3IFRlc3QoImZvcjA0NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OTk5Ljk5IikpLmZvcm1hdCgtMSwyLC0xLDMsLTEsLTEpKS5lcXVhbHMoIjEuMDBFKzUiKTsKKyAgKG5ldyBUZXN0KCJmb3IwNDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OS45OSIpKS5mb3JtYXQoLTEsMCwtMSwzLC0xLC0xKSkuZXF1YWxzKCIxRSs1Iik7CisgIChuZXcgVGVzdCgiZm9yMDQ3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTkuOTkiKSkuZm9ybWF0KDMsMCwtMSwzLC0xLC0xKSkuZXF1YWxzKCIgIDFFKzUiKTsKKyAgCisgIChuZXcgVGVzdCgiZm9yMDQ4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDUuNzMiKSkuZm9ybWF0KC0xLC0xLDIsMiwtMSwtMSkpLmVxdWFscygiMS4yMzQ1NzNFKzA0Iik7CisgIChuZXcgVGVzdCgiZm9yMDQ5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDUuNzMiKSkuZm9ybWF0KC0xLDMsLTEsMCwtMSwtMSkpLmVxdWFscygiMS4yMzVFKzQiKTsKKyAgKG5ldyBUZXN0KCJmb3IwNTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjIzNDU3MyIpKS5mb3JtYXQoLTEsMywtMSwwLC0xLC0xKSkuZXF1YWxzKCIxLjIzNSIpOworICAobmV3IFRlc3QoImZvcjA1MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMy40NSIpKS5mb3JtYXQoLTEsMywyLDAsLTEsLTEpKS5lcXVhbHMoIjEuMjM1RSswMiIpOworICAKKyAgKG5ldyBUZXN0KCJmb3IwNTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjQ0NCIpKS5mb3JtYXQoLTEsMCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImZvcjA1MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjQ0NCIpKS5mb3JtYXQoLTEsMCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImZvcjA1NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNCIpKS5mb3JtYXQoLTEsMCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImZvcjA1NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjQiKSkuZm9ybWF0KC0xLDApKS5lcXVhbHMoIjAiKTsKKyAgCisgIGVuZz1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LkVOR0lORUVSSU5HOworICBzY2k9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDOworICAobmV3IFRlc3QoImZvcjA2MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQuNSIpKS5mb3JtYXQoLTEsMywyLDAsZW5nLC0xKSkuZXF1YWxzKCIxLjIzNUUrMDMiKTsKKyAgKG5ldyBUZXN0KCJmb3IwNjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NSIpKS5mb3JtYXQoLTEsMywzLDAsZW5nLC0xKSkuZXF1YWxzKCIxMi4zNDVFKzAwMyIpOworICAobmV3IFRlc3QoImZvcjA2MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1IikpLmZvcm1hdCgtMSwzLDMsMCxzY2ksLTEpKS5lcXVhbHMoIjEuMjM1RSswMDQiKTsKKyAgKG5ldyBUZXN0KCJmb3IwNjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0LjUiKSkuZm9ybWF0KDQsMywyLDAsZW5nLC0xKSkuZXF1YWxzKCIgICAxLjIzNUUrMDMiKTsKKyAgKG5ldyBUZXN0KCJmb3IwNjQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NSIpKS5mb3JtYXQoNSwzLDMsMCxlbmcsLTEpKS5lcXVhbHMoIiAgIDEyLjM0NUUrMDAzIik7CisgIChuZXcgVGVzdCgiZm9yMDY1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDUiKSkuZm9ybWF0KDYsMywzLDAsc2NpLC0xKSkuZXF1YWxzKCIgICAgIDEuMjM1RSswMDQiKTsKKyAgCisgIChuZXcgVGVzdCgiZm9yMDY2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yMzQ1IikpLmZvcm1hdCgtMSwzLDIsMCwtMSwtMSkpLmVxdWFscygiMS4yMzUgICAgIik7CisgIChuZXcgVGVzdCgiZm9yMDY3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDUuNzMiKSkuZm9ybWF0KC0xLC0xLDMsNiwtMSwtMSkpLmVxdWFscygiMTIzNDUuNzMgICAgICIpOworICAobmV3IFRlc3QoImZvcjA2OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1ZSs1IikpLmZvcm1hdCgtMSwwKSkuZXF1YWxzKCIxMjM0NTAwMDAwIik7CisgIChuZXcgVGVzdCgiZm9yMDY5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDVlKzUiKSkuZm9ybWF0KC0xLDEpKS5lcXVhbHMoIjEyMzQ1MDAwMDAuMCIpOworICAobmV3IFRlc3QoImZvcjA3MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1ZSs1IikpLmZvcm1hdCgtMSwyKSkuZXF1YWxzKCIxMjM0NTAwMDAwLjAwIik7CisgIChuZXcgVGVzdCgiZm9yMDcxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDVlKzUiKSkuZm9ybWF0KC0xLDMpKS5lcXVhbHMoIjEyMzQ1MDAwMDAuMDAwIik7CisgIChuZXcgVGVzdCgiZm9yMDcyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDVlKzUiKSkuZm9ybWF0KC0xLDQpKS5lcXVhbHMoIjEyMzQ1MDAwMDAuMDAwMCIpOworICAKKyAgLy8gc29tZSBmcm9tIEFOU0kgRGFsbGFzIFtOb3YgMTk5OF0KKyAgKG5ldyBUZXN0KCJmb3IwNzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OS45OTkiKSkuZm9ybWF0KC0xLDIsLTEsMiwtMSwtMSkpLmVxdWFscygiMTAwLjAwIik7CisgIChuZXcgVGVzdCgiZm9yMDc0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC45OTk5OSIpKS5mb3JtYXQoLTEsNCwyLDIsLTEsLTEpKS5lcXVhbHMoIjEuMDAwMCAgICAiKTsKKyAgCisgIC8vIHRyeSBzb21lIHJvdW5kaW5nIG1vZGVzIFtkZWZhdWx0IFJPVU5EX0hBTEZfVVAgd2lkZWx5IHRlc3RlZCBhYm92ZV0KKyAgLy8gdGhlIGZpcnN0IGZldyBhbHNvIHRlc3RzIHRoYXQgZGVmYXVsdHMgYXJlIGFjY2VwdGVkIGZvciB0aGUgb3RoZXJzCisgIGQwND1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA0Iik7CisgIGQwNT1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1Iik7CisgIGQwNj1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA2Iik7CisgIGQxNT1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjE1Iik7CisgIChuZXcgVGVzdCgiZm9yMDgwIikpLm9rPShkMDUuZm9ybWF0KC0xLDEpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoImZvcjA4MSIpKS5vaz0oZDA1LmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkpLmVxdWFscygiMC4xIik7CisgIChuZXcgVGVzdCgiZm9yMDgyIikpLm9rPShkMDUuZm9ybWF0KC0xLDEsLTEsLTEsLTEsLTEpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoImZvcjA4MyIpKS5vaz0oZDA1LmZvcm1hdCgtMSwtMSwtMSwtMSwtMSwtMSkpLmVxdWFscygiMC4wNSIpOworICAobmV3IFRlc3QoImZvcjA4NCIpKS5vaz0oZDA1LmZvcm1hdCgtMSwtMSkpLmVxdWFscygiMC4wNSIpOworICB0cnl7CisgICBkMDUuZm9ybWF0KC0xLC0xLC0xLC0xLC0xLDMwKTsgLy8gYmFkIG1vZGUKKyAgIGZsYWc9ZmFsc2U7IC8vIHNob3VsZG4ndCBnZXQgaGVyZQorICB9CisgIGNhdGNoIChqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uICQ5NCl7aWFlPSQ5NDsKKyAgIGZsYWc9KGlhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiQmFkIGFyZ3VtZW50IDYgdG8gZm9ybWF0OiAzMCIpOworICB9CisgIChuZXcgVGVzdCgiZm9yMDg1IikpLm9rPWZsYWc7CisgIAorICAobmV3IFRlc3QoImZvcjA5MCIpKS5vaz0oZDA0LmZvcm1hdCgtMSwxKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJmb3IwOTEiKSkub2s9KGQwNi5mb3JtYXQoLTEsMSkpLmVxdWFscygiMC4xIik7CisgIChuZXcgVGVzdCgiZm9yMDkyIikpLm9rPShkMDQuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV04pKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoImZvcjA5MyIpKS5vaz0oZDA1LmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9ET1dOKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJmb3IwOTQiKSkub2s9KGQwNi5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRE9XTikpLmVxdWFscygiMC4xIik7CisgIAorICAobmV3IFRlc3QoImZvcjA5NSIpKS5vaz0oZDA0LmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJmb3IwOTYiKSkub2s9KGQwNS5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgiZm9yMDk3IikpLm9rPShkMDYuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoImZvcjA5OCIpKS5vaz0oZDE1LmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKSkuZXF1YWxzKCIwLjIiKTsKKyAgZDA1MD1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1MCIpOworICBkMTUwPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTUwIik7CisgIChuZXcgVGVzdCgiZm9yMDk5IikpLm9rPShkMDUwLmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMDAiKSkub2s9KGQxNTAuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pKS5lcXVhbHMoIjAuMiIpOworICBtMDUwPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjA1MCIpOworICBtMTUwPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjE1MCIpOworICAobmV3IFRlc3QoImZvcjEwMSIpKS5vaz0obTA1MC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgiZm9yMTAyIikpLm9rPShtMTUwLmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKSkuZXF1YWxzKCItMC4yIik7CisgIGQwNTE9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTEiKTsKKyAgZDE1MT1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjE1MSIpOworICAobmV3IFRlc3QoImZvcjEwMyIpKS5vaz0oZDA1MS5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikpLmVxdWFscygiMC4xIik7CisgIChuZXcgVGVzdCgiZm9yMTA0IikpLm9rPShkMTUxLmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKSkuZXF1YWxzKCIwLjIiKTsKKyAgCisgIChuZXcgVGVzdCgiZm9yMTA1IikpLm9rPShtMDUwLmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfQ0VJTElORykpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgiZm9yMTA2IikpLm9rPShtMTUwLmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfQ0VJTElORykpLmVxdWFscygiLTAuMSIpOworICAobmV3IFRlc3QoImZvcjEwNyIpKS5vaz0oZDA1MC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0NFSUxJTkcpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoImZvcjEwOCIpKS5vaz0oZDE1MC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0NFSUxJTkcpKS5lcXVhbHMoIjAuMiIpOworICAKKyAgKG5ldyBUZXN0KCJmb3IxMDkiKSkub2s9KG0wNTAuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9GTE9PUikpLmVxdWFscygiLTAuMSIpOworICAobmV3IFRlc3QoImZvcjExMCIpKS5vaz0obTE1MC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0ZMT09SKSkuZXF1YWxzKCItMC4yIik7CisgIChuZXcgVGVzdCgiZm9yMTExIikpLm9rPShkMDUwLmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfRkxPT1IpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoImZvcjExMiIpKS5vaz0oZDE1MC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0ZMT09SKSkuZXF1YWxzKCIwLjEiKTsKKyAgCisgIChuZXcgVGVzdCgiZm9yMTEzIikpLm9rPShtMDUwLmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVVApKS5lcXVhbHMoIi0wLjEiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMTQiKSkub2s9KG0xNTAuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VUCkpLmVxdWFscygiLTAuMiIpOworICAobmV3IFRlc3QoImZvcjExNSIpKS5vaz0oZDA1MC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VQKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMTYiKSkub2s9KGQxNTAuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VUCkpLmVxdWFscygiMC4yIik7CisgIAorICAobmV3IFRlc3QoImZvcjExNyIpKS5vaz0obTA1MC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0RPV04pKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoImZvcjExOCIpKS5vaz0obTE1MC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0RPV04pKS5lcXVhbHMoIi0wLjEiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMTkiKSkub2s9KGQwNTAuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9ET1dOKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMjAiKSkub2s9KGQxNTAuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9ET1dOKSkuZXF1YWxzKCIwLjEiKTsKKyAgCisgIGQwMDA9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDAiKTsKKyAgZDUwMD1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUwMCIpOworICAobmV3IFRlc3QoImZvcjEyMSIpKS5vaz0oZDAwMC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VOTkVDRVNTQVJZKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMjIiKSkub2s9KGQwMDAuZm9ybWF0KC0xLDIsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWSkpLmVxdWFscygiMC4wMCIpOworICAobmV3IFRlc3QoImZvcjEyMyIpKS5vaz0oZDAwMC5mb3JtYXQoLTEsMywtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VOTkVDRVNTQVJZKSkuZXF1YWxzKCIwLjAwMCIpOworICB0cnl7IC8vIHRoaXMgc2hvdWxkIHRyYXAuLgorICAgZDA1MC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VOTkVDRVNTQVJZKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ5NSl7YWU9JDk1OworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlJvdW5kaW5nIG5lY2Vzc2FyeSIpOworICB9CisgIChuZXcgVGVzdCgiZm9yMTI0IikpLm9rPWZsYWc7CisgIChuZXcgVGVzdCgiZm9yMTI1IikpLm9rPShkMDUwLmZvcm1hdCgtMSwyLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVU5ORUNFU1NBUlkpKS5lcXVhbHMoIjAuMDUiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMjYiKSkub2s9KGQwNTAuZm9ybWF0KC0xLDMsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWSkpLmVxdWFscygiMC4wNTAiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMjciKSkub2s9KGQ1MDAuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWSkpLmVxdWFscygiMC41Iik7CisgIChuZXcgVGVzdCgiZm9yMTI4IikpLm9rPShkNTAwLmZvcm1hdCgtMSwyLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVU5ORUNFU1NBUlkpKS5lcXVhbHMoIjAuNTAiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMjkiKSkub2s9KGQ1MDAuZm9ybWF0KC0xLDMsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWSkpLmVxdWFscygiMC41MDAiKTsKKyAgCisgIC8vIGJhZCBuZWdzIC0tCisgIHRyeXsKKyAgIGQwNTAuZm9ybWF0KC0yLC0xLC0xLC0xLC0xLC0xKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gJDk2KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfQorICAobmV3IFRlc3QoImZvcjEzMSIpKS5vaz1mbGFnOworICB0cnl7CisgICBkMDUwLmZvcm1hdCgtMSwtMiwtMSwtMSwtMSwtMSk7CisgICBmbGFnPWZhbHNlOworICB9CisgIGNhdGNoIChqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uICQ5Nyl7CisgICBmbGFnPXRydWU7CisgIH0KKyAgKG5ldyBUZXN0KCJmb3IxMzIiKSkub2s9ZmxhZzsKKyAgdHJ5eworICAgZDA1MC5mb3JtYXQoLTEsLTEsLTIsLTEsLTEsLTEpOworICAgZmxhZz1mYWxzZTsKKyAgfQorICBjYXRjaCAoamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiAkOTgpeworICAgZmxhZz10cnVlOworICB9CisgIChuZXcgVGVzdCgiZm9yMTMzIikpLm9rPWZsYWc7CisgIHRyeXsKKyAgIGQwNTAuZm9ybWF0KC0xLC0xLC0xLC0yLC0xLC0xKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gJDk5KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfQorICAobmV3IFRlc3QoImZvcjEzNCIpKS5vaz1mbGFnOworICB0cnl7CisgICBkMDUwLmZvcm1hdCgtMSwtMSwtMSwtMSwtMiwtMSk7CisgICBmbGFnPWZhbHNlOworICB9CisgIGNhdGNoIChqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uICQxMDApeworICAgZmxhZz10cnVlOworICB9CisgIChuZXcgVGVzdCgiZm9yMTM1IikpLm9rPWZsYWc7CisgIHRyeXsKKyAgIGQwNTAuZm9ybWF0KC0xLC0xLC0xLC0xLC0xLC0yKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gJDEwMSl7CisgICBmbGFnPXRydWU7CisgIH0KKyAgKG5ldyBUZXN0KCJmb3IxMzYiKSkub2s9ZmxhZzsKKyAgCisgIHN1bW1hcnkoImZvcm1hdCIpOworICByZXR1cm47fQorLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIEJpZ0RlY2ltYWwjaGFzaENvZGV9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnaGFzaGNvZGUoKXsKKyAgamF2YS5sYW5nLlN0cmluZyBoczsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGQ7CisgIGhzPSIyNzgyNzgxNyI7CisgIGQ9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChocyk7CisgIChuZXcgVGVzdCgiaGFzMDAxIikpLm9rPShkLmhhc2hDb2RlKCkpPT0oaHMuaGFzaENvZGUoKSk7CisgIGhzPSIxLjI2NUUrMjAwIjsKKyAgZD1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGhzKTsKKyAgKG5ldyBUZXN0KCJoYXMwMDIiKSkub2s9KGQuaGFzaENvZGUoKSk9PShocy5oYXNoQ29kZSgpKTsKKyAgaHM9IjEyNi41RSsyMDAiOworICBkPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoaHMpOworICAobmV3IFRlc3QoImhhczAwMyIpKS5vaz0oZC5oYXNoQ29kZSgpKSE9KGhzLmhhc2hDb2RlKCkpOworICBzdW1tYXJ5KCJoYXNoQ29kZSIpOworICByZXR1cm47fQorLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIEJpZ0RlY2ltYWwjaW50VmFsdWV9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnaW50dmFsdWUoKXsKKyAgYm9vbGVhbiBmbGFnPWZhbHNlOworICBqYXZhLmxhbmcuU3RyaW5nIHY9bnVsbDsKKyAgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gYWU9bnVsbDsKKyAgamF2YS5sYW5nLlN0cmluZyBiYWRzdHJpbmdzW107CisgIGludCBpPTA7CisgIGphdmEubGFuZy5TdHJpbmcgbm9ybT1udWxsOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZGltYXg7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBudW09bnVsbDsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGR2PW51bGw7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBkaW1pbjsKKyAgCisgIAorICAvLyBpbnRWYWx1ZSAtLQorICAKKyAgKG5ldyBUZXN0KCJpbnYwMDEiKSkub2s9aW1pbj09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGltaW4pKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYwMDIiKSkub2s9KCg5OSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5IikpLmludFZhbHVlKCkpOworICAobmV3IFRlc3QoImludjAwMyIpKS5vaz0oKDEpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLmludFZhbHVlKCkpOworICAobmV3IFRlc3QoImludjAwNCIpKS5vaz0oKDApKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLmludFZhbHVlKCkpOworICAobmV3IFRlc3QoImludjAwNSIpKS5vaz0oKC0xKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkuaW50VmFsdWUoKSk7CisgIChuZXcgVGVzdCgiaW52MDA2IikpLm9rPSgoLTk5KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTk5IikpLmludFZhbHVlKCkpOworICAobmV3IFRlc3QoImludjAwNyIpKS5vaz1pbWF4PT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoaW1heCkpLmludFZhbHVlKCkpOworICAobmV3IFRlc3QoImludjAwOCIpKS5vaz0oKDUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjAiKSkuaW50VmFsdWUoKSk7CisgIChuZXcgVGVzdCgiaW52MDA5IikpLm9rPSgoNSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUuMyIpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYwMTAiKSkub2s9KCg1KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNS41IikpLmludFZhbHVlKCkpOworICAobmV3IFRlc3QoImludjAxMSIpKS5vaz0oKDUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjciKSkuaW50VmFsdWUoKSk7CisgIChuZXcgVGVzdCgiaW52MDEyIikpLm9rPSgoNSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUuOSIpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYwMTMiKSkub2s9KCgtNSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01LjAiKSkuaW50VmFsdWUoKSk7CisgIChuZXcgVGVzdCgiaW52MDE0IikpLm9rPSgoLTUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNS4zIikpLmludFZhbHVlKCkpOworICAobmV3IFRlc3QoImludjAxNSIpKS5vaz0oKC01KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTUuNSIpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYwMTYiKSkub2s9KCgtNSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01LjciKSkuaW50VmFsdWUoKSk7CisgIChuZXcgVGVzdCgiaW52MDE3IikpLm9rPSgoLTUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNS45IikpLmludFZhbHVlKCkpOworICAobmV3IFRlc3QoImludjAxOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjg4ODg4ODg4ODg4IikpLmludFZhbHVlKCkpPT0oLTEzMDU0MjQzMjgpOyAvLyB1Z2gKKyAgKG5ldyBUZXN0KCJpbnYwMTkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItODg4ODg4ODg4ODgiKSkuaW50VmFsdWUoKSk9PTEzMDU0MjQzMjg7IC8vIHVnaAorICAobmV3IFRlc3QoImludjAyMCIpKS5vaz0oKGltaW4pKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCgoKGxvbmcpaW1heCkpKzEpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYwMjEiKSkub2s9KChpbWF4KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgoKChsb25nKWltaW4pKS0xKSkuaW50VmFsdWUoKSk7CisgIAorICAvLyBpbnRWYWx1ZUV4YWN0IC0tCisgIAorICAobmV3IFRlc3QoImludjEwMSIpKS5vaz1pbWluPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoaW1pbikpLmludFZhbHVlRXhhY3QoKSk7CisgIChuZXcgVGVzdCgiaW52MTAyIikpLm9rPSgoOTkpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OSIpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYxMDMiKSkub2s9KCgxKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYxMDQiKSkub2s9KCgwKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYxMDUiKSkub2s9KCgtMSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLmludFZhbHVlKCkpOworICAobmV3IFRlc3QoImludjEwNiIpKS5vaz0oKC05OSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi05OSIpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYxMDciKSkub2s9aW1heD09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGltYXgpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYxMDgiKSkub2s9KCg1KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNS4wIikpLmludFZhbHVlKCkpOworICAobmV3IFRlc3QoImludjEwOSIpKS5vaz0oKC01KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTUuMCIpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYxMTAiKSkub2s9aW1heD09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGltYXgpKS5pbnRWYWx1ZUV4YWN0KCkpOworICAKKyAgdHJ5eworICAgdj0iLTg4NTg4Njg4ODg4IjsKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHYpKS5pbnRWYWx1ZUV4YWN0KCk7CisgICBmbGFnPWZhbHNlOworICB9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMTAyKXthZT0kMTAyOworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIkNvbnZlcnNpb24gb3ZlcmZsb3c6IisiICIrdik7CisgIH0KKyAgKG5ldyBUZXN0KCJpbnYyMDAiKSkub2s9ZmxhZzsKKyAgCisgIC8vIHRoaXMgb25lIGNvdWxkIHJhaXNlIGVpdGhlciBvdmVyZmxvdyBvciBiYWQgZGVjaW1hbCBwYXJ0CisgIHRyeXsKKyAgIHY9Ijg4MDg4ODE4ODg4LjAwMDAxIjsKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHYpKS5pbnRWYWx1ZUV4YWN0KCk7CisgICBmbGFnPWZhbHNlOworICB9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMTAzKXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfQorICAobmV3IFRlc3QoImludjIwMSIpKS5vaz1mbGFnOworICAKKyAgLy8gMTk5OS4xMC4yODogdGhlIHRlc3RjYXNlcyBtYXJrZWQgJyonIGZhaWxlZAorICBiYWRzdHJpbmdzPW5ldyBqYXZhLmxhbmcuU3RyaW5nW117IjEyMzQ1Njc4OTAxIiwobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChpbWF4KSkuYWRkKG9uZSkudG9TdHJpbmcoKSwobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChpbWluKSkuc3VidHJhY3Qob25lKS50b1N0cmluZygpLCIzNzMxMzY3MjkzIiwiNDczMTM2NzI5MyIsIjU3MzEzNjcyOTMiLCI2NzMxMzY3MjkzIiwiNzczMTM2NzI5MyIsIjg3MzEzNjcyOTMiLCI5NzMxMzY3MjkzIiwiLTM3MzEzNjcyOTMiLCItNDczMTM2NzI5MyIsIi01NzMxMzY3MjkzIiwiLTY3MzEzNjcyOTMiLCItNzczMTM2NzI5MyIsIi04NzMxMzY3MjkzIiwiLTk3MzEzNjcyOTMiLChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGltaW4pKS5tdWx0aXBseSh0d28pLnRvU3RyaW5nKCksKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoaW1heCkpLm11bHRpcGx5KHR3bykudG9TdHJpbmcoKSwobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChpbWluKSkubXVsdGlwbHkodGVuKS50b1N0cmluZygpLChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGltYXgpKS5tdWx0aXBseSh0ZW4pLnRvU3RyaW5nKCksIjQ3MzEzNjcyOTMiLCI0ODMxMzY3MjkzIiwiNDkzMTM2NzI5MyIsIjUwMzEzNjcyOTMiLCI1MTMxMzY3MjkzIiwiNTIzMTM2NzI5MyIsIjUzMzEzNjcyOTMiLCI1NDMxMzY3MjkzIiwiNTUzMTM2NzI5MyIsIjU2MzEzNjcyOTMiLCI1NzMxMzY3MjkzIiwiNTgzMTM2NzI5MyIsIjU5MzEzNjcyOTMiLCI2MDMxMzY3MjkzIiwiNjEzMTM2NzI5MyIsIjYyMzEzNjcyOTMiLCI2MzMxMzY3MjkzIiwiNjQzMTM2NzI5MyIsIjY1MzEzNjcyOTMiLCI2NjMxMzY3MjkzIiwiNjczMTM2NzI5MyIsIjIyMDAwMDAwMDAiLCIyMzAwMDAwMDAwIiwiMjQwMDAwMDAwMCIsIjI1MDAwMDAwMDAiLCIyNjAwMDAwMDAwIiwiMjcwMDAwMDAwMCIsIjI4MDAwMDAwMDAiLCIyOTAwMDAwMDAwIiwiLTIyMDAwMDAwMDAiLCItMjMwMDAwMDAwMCIsIi0yNDAwMDAwMDAwIiwiLTI1MDAwMDAwMDAiLCItMjYwMDAwMDAwMCIsIi0yNzAwMDAwMDAwIiwiLTI4MDAwMDAwMDAiLCItMjkwMDAwMDAwMCIsIjI1RSs4IiwiLTI1RSs4IiwiLTEyMzQ1Njc4OTAxIn07IC8vIDIyMAorICAvLyAyMjEKKyAgLy8gMjIyCisgIC8vIDIyMworICAvLyAyMjQKKyAgLy8gMjI1ICAqCisgIC8vIDIyNgorICAvLyAyMjcKKyAgLy8gMjI4CisgIC8vIDIyOSAgKgorICAvLyAyMzAKKyAgLy8gMjMxCisgIC8vIDIzMiAgKgorICAvLyAyMzMKKyAgLy8gMjM0CisgIC8vIDIzNQorICAvLyAyMzYgICoKKyAgLy8gMjM3CisgIC8vIDIzOAorICAvLyAyMzkKKyAgLy8gMjQwCisgIC8vIDI0MQorICAvLyAyNDIgICoKKyAgLy8gMjQzICAqCisgIC8vIDI0NCAgKgorICAvLyAyNDUgICoKKyAgLy8gMjQ2ICAqCisgIC8vIDI0NyAgKgorICAvLyAyNDggICoKKyAgLy8gMjQ5ICAqCisgIC8vIDI1MCAgKgorICAvLyAyNTEgICoKKyAgLy8gMjUyICAqCisgIC8vIDI1MyAgKgorICAvLyAyNTQgICoKKyAgLy8gMjU1ICAqCisgIC8vIDI1NiAgKgorICAvLyAyNTcgICoKKyAgLy8gMjU4ICAqCisgIC8vIDI1OQorICAvLyAyNjAKKyAgLy8gMjYxCisgIC8vIDI2MgorICAvLyAyNjMKKyAgLy8gMjY0CisgIC8vIDI2NQorICAvLyAyNjYKKyAgLy8gMjY3CisgIC8vIDI2OAorICAvLyAyNjkKKyAgLy8gMjcwCisgIC8vIDI3MQorICAvLyAyNzIKKyAgLy8gMjczCisgIC8vIDI3NAorICAvLyAyNzUKKyAgLy8gMjc2CisgIC8vIDI3NworICAvLyAyNzgKKyAgLy8gMjc5CisgIC8vIDI4MAorICB7aW50ICQxMDQ9YmFkc3RyaW5ncy5sZW5ndGg7aT0wO2k6Zm9yKDskMTA0PjA7JDEwNC0tLGkrKyl7CisgICB0cnl7CisgICAgdj1iYWRzdHJpbmdzW2ldOworICAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHYpKS5pbnRWYWx1ZUV4YWN0KCk7CisgICAgZmxhZz1mYWxzZTsKKyAgIH0KKyAgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMTA1KXthZT0kMTA1OworICAgIG5vcm09KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwodikpLnRvU3RyaW5nKCk7CisgICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIkNvbnZlcnNpb24gb3ZlcmZsb3c6IisiICIrbm9ybSk7CisgICB9CisgICAobmV3IFRlc3QoImludiIrKDIyMCtpKSkpLm9rPWZsYWc7CisgICB9CisgIH0vKmkqLworICAKKyAgLy8gbm93IHNsaXAgaW4gc29tZSBzaW5nbGUgYml0cy4uLgorICBkaW1heD1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGltYXgpOworICB7aT0wO2k6Zm9yKDtpPD00OTtpKyspeworICAgdHJ5eworICAgIG51bT10d28ucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoaSksbWM1MCk7CisgICAgZHY9ZGltYXguYWRkKG51bSxtYzUwKTsKKyAgICBkdi5pbnRWYWx1ZUV4YWN0KCk7CisgICAgZmxhZz1mYWxzZTsKKyAgIH0KKyAgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMTA2KXthZT0kMTA2OworICAgIG5vcm09ZHYudG9TdHJpbmcoKTsKKyAgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiQ29udmVyc2lvbiBvdmVyZmxvdzoiKyIgIitub3JtKTsKKyAgIH0KKyAgIChuZXcgVGVzdCgiaW52IisoMzAwK2kpKSkub2s9ZmxhZzsKKyAgIH0KKyAgfS8qaSovCisgIGRpbWluPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoaW1pbik7CisgIHtpPTUwO2k6Zm9yKDtpPD05OTtpKyspeworICAgdHJ5eworICAgIG51bT10d28ucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoaSksbWM1MCk7CisgICAgZHY9ZGltaW4uc3VidHJhY3QobnVtLG1jNTApOworICAgIGR2LmludFZhbHVlRXhhY3QoKTsKKyAgICBmbGFnPWZhbHNlOworICAgfQorICAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxMDcpe2FlPSQxMDc7CisgICAgbm9ybT1kdi50b1N0cmluZygpOworICAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJDb252ZXJzaW9uIG92ZXJmbG93OiIrIiAiK25vcm0pOworICAgfQorICAgKG5ldyBUZXN0KCJpbnYiKygzMDAraSkpKS5vaz1mbGFnOworICAgfQorICB9LyppKi8KKyAgCisgIC8vIHRoZSBmb2xsb3dpbmcgc2hvdWxkIGFsbCByYWlzZSBiYWQtZGVjaW1hbC1wYXJ0IGV4Y2VwdGlvbnMKKyAgYmFkc3RyaW5ncz1uZXcgamF2YS5sYW5nLlN0cmluZ1tdeyIwLjA5IiwiMC45IiwiMC4wMSIsIjAuMSIsIi0wLjAxIiwiLTAuMSIsIjEuMDEiLCItMS4wMSIsIi0xLjEiLCItMTExLjExMSIsIisxMTEuMTExIiwiMS4wOSIsIjEuMDUiLCIxLjA0IiwiMS45OSIsIjEuOSIsIjEuNSIsIjEuNCIsIi0xLjA5IiwiLTEuMDUiLCItMS4wNCIsIi0xLjk5IiwiLTEuOSIsIi0xLjUiLCItMS40IiwiMUUtMTAwMCIsIi0xRS0xMDAwIiwiMTFFLTEiLCIxLjUifTsgLy8gNDAwLTQwMworICAvLyA0MDQtNDA3CisgIC8vIDQwOC00MTEKKyAgLy8gNDEyLTQxNgorICAvLyA0MTctNDIwCisgIC8vIDQyMS00MjQKKyAgLy8gNDI1LTQyOAorICAKKyAge2ludCAkMTA4PWJhZHN0cmluZ3MubGVuZ3RoO2k9MDtpOmZvcig7JDEwOD4wOyQxMDgtLSxpKyspeworICAgdHJ5eworICAgIHY9YmFkc3RyaW5nc1tpXTsKKyAgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2KSkuaW50VmFsdWVFeGFjdCgpOworICAgIGZsYWc9ZmFsc2U7CisgICB9CisgICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDEwOSl7YWU9JDEwOTsKKyAgICBub3JtPShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHYpKS50b1N0cmluZygpOworICAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJEZWNpbWFsIHBhcnQgbm9uLXplcm86IisiICIrbm9ybSk7CisgICB9CisgICAobmV3IFRlc3QoImludiIrKDQwMCtpKSkpLm9rPWZsYWc7CisgICB9CisgIH0vKmkqLworICAKKyAgc3VtbWFyeSgiaW50VmFsdWUrIik7CisgIHJldHVybjt9CisKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgQmlnRGVjaW1hbCNsb25nVmFsdWV9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnbG9uZ3ZhbHVlKCl7CisgIGJvb2xlYW4gZmxhZz1mYWxzZTsKKyAgamF2YS5sYW5nLlN0cmluZyB2PW51bGw7CisgIGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uIGFlPW51bGw7CisgIGphdmEubGFuZy5TdHJpbmcgYmFkc3RyaW5nc1tdOworICBpbnQgaT0wOworICBqYXZhLmxhbmcuU3RyaW5nIG5vcm09bnVsbDsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGRsbWF4OworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbnVtPW51bGw7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBkdj1udWxsOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZGxtaW47CisgIAorICAKKyAgLy8gbG9uZ1ZhbHVlIC0tCisgIAorICAobmV3IFRlc3QoImxvdjAwMSIpKS5vaz1sbWluPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobG1pbikpLmxvbmdWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJsb3YwMDIiKSkub2s9KCgobG9uZyk5OSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5IikpLmxvbmdWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJsb3YwMDMiKSkub2s9KCgobG9uZykxKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5sb25nVmFsdWUoKSk7CisgIChuZXcgVGVzdCgibG92MDA0IikpLm9rPSgoKGxvbmcpMCkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjAwNSIpKS5vaz0oKChsb25nKS0xKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjAwNiIpKS5vaz0oKChsb25nKS05OSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi05OSIpKS5sb25nVmFsdWUoKSk7CisgIChuZXcgVGVzdCgibG92MDA3IikpLm9rPWxtYXg9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChsbWF4KSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjAwOCIpKS5vaz0oKChsb25nKTUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjAiKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjAwOSIpKS5vaz0oKChsb25nKTUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjMiKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjAxMCIpKS5vaz0oKChsb25nKTUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjUiKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjAxMSIpKS5vaz0oKChsb25nKTUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjciKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjAxMiIpKS5vaz0oKChsb25nKTUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjkiKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjAxMyIpKS5vaz0oKChsb25nKS01KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTUuMCIpKS5sb25nVmFsdWUoKSk7CisgIChuZXcgVGVzdCgibG92MDE0IikpLm9rPSgoKGxvbmcpLTUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNS4zIikpLmxvbmdWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJsb3YwMTUiKSkub2s9KCgobG9uZyktNSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01LjUiKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjAxNiIpKS5vaz0oKChsb25nKS01KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTUuNyIpKS5sb25nVmFsdWUoKSk7CisgIChuZXcgVGVzdCgibG92MDE3IikpLm9rPSgoKGxvbmcpLTUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNS45IikpLmxvbmdWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJsb3YwMTgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI4ODg4ODg4ODg4OTk5OTk5OTk5OTgiKSkubG9uZ1ZhbHVlKCkpPT0zNDQ1MTczMzYxOTQxNTIyNDMwTDsgLy8gdWdoCisgIChuZXcgVGVzdCgibG92MDE5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTg4ODg4ODg4ODg5OTk5OTk5OTk5OCIpKS5sb25nVmFsdWUoKSk9PSgtMzQ0NTE3MzM2MTk0MTUyMjQzMEwpOyAvLyB1Z2gKKyAgCisgIC8vIGxvbmdWYWx1ZUV4YWN0IC0tCisgIAorICAobmV3IFRlc3QoImxvdjEwMSIpKS5vaz1sbWluPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobG1pbikpLmxvbmdWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJsb3YxMDIiKSkub2s9KCgobG9uZyk5OSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5IikpLmxvbmdWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJsb3YxMDMiKSkub2s9KCgobG9uZykxKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5sb25nVmFsdWUoKSk7CisgIChuZXcgVGVzdCgibG92MTA0IikpLm9rPSgoKGxvbmcpMCkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjEwNSIpKS5vaz0oKChsb25nKS0xKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjEwNiIpKS5vaz0oKChsb25nKS05OSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi05OSIpKS5sb25nVmFsdWUoKSk7CisgIChuZXcgVGVzdCgibG92MTA3IikpLm9rPWxtYXg9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChsbWF4KSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjEwOCIpKS5vaz0oKChsb25nKTUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjAiKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjEwOSIpKS5vaz0oKChsb25nKS01KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTUuMCIpKS5sb25nVmFsdWUoKSk7CisgIAorICB0cnl7CisgICB2PSItODg4ODg4ODg4ODk5OTk5OTk5OTk4IjsKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHYpKS5sb25nVmFsdWVFeGFjdCgpOworICAgZmxhZz1mYWxzZTsKKyAgfQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDExMCl7YWU9JDExMDsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJDb252ZXJzaW9uIG92ZXJmbG93OiIrIiAiK3YpOworICB9CisgIChuZXcgVGVzdCgibG92MjAwIikpLm9rPWZsYWc7CisgIHRyeXsKKyAgIHY9Ijg4ODg4ODg3NDg3NDg3NDc5NDg4ODg4IjsKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHYpKS5sb25nVmFsdWVFeGFjdCgpOworICAgZmxhZz1mYWxzZTsKKyAgfQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDExMSl7YWU9JDExMTsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJDb252ZXJzaW9uIG92ZXJmbG93OiIrIiAiK3YpOworICB9CisgIChuZXcgVGVzdCgibG92MjAxIikpLm9rPWZsYWc7CisgIHRyeXsKKyAgIHY9IjEuNSI7CisgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2KSkubG9uZ1ZhbHVlRXhhY3QoKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxMTIpe2FlPSQxMTI7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiRGVjaW1hbCBwYXJ0IG5vbi16ZXJvOiIrIiAiK3YpOworICB9CisgIChuZXcgVGVzdCgibG92MjAyIikpLm9rPWZsYWc7CisgIAorICBiYWRzdHJpbmdzPW5ldyBqYXZhLmxhbmcuU3RyaW5nW117IjEyMzQ1Njc4OTAxMTA5ODc2NTQzMjEiLCItMTIzNDU2Nzg5MDExMDk4NzY1NDMyMSIsKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobG1heCkpLmFkZChvbmUpLnRvU3RyaW5nKCksKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobG1pbikpLnN1YnRyYWN0KG9uZSkudG9TdHJpbmcoKSwobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChsbWluKSkubXVsdGlwbHkodHdvKS50b1N0cmluZygpLChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGxtYXgpKS5tdWx0aXBseSh0d28pLnRvU3RyaW5nKCksKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobG1pbikpLm11bHRpcGx5KHRlbikudG9TdHJpbmcoKSwobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChsbWF4KSkubXVsdGlwbHkodGVuKS50b1N0cmluZygpLCI5MjIzMzcyMDM2ODU0Nzc1ODE4IiwiOTMyMzM3MjAzNjg1NDc3NTgxOCIsIjk0MjMzNzIwMzY4NTQ3NzU4MTgiLCI5NTIzMzcyMDM2ODU0Nzc1ODE4IiwiOTYyMzM3MjAzNjg1NDc3NTgxOCIsIjk3MjMzNzIwMzY4NTQ3NzU4MTgiLCI5ODIzMzcyMDM2ODU0Nzc1ODE4IiwiOTkyMzM3MjAzNjg1NDc3NTgxOCIsIi05MjIzMzcyMDM2ODU0Nzc1ODE4IiwiLTkzMjMzNzIwMzY4NTQ3NzU4MTgiLCItOTQyMzM3MjAzNjg1NDc3NTgxOCIsIi05NTIzMzcyMDM2ODU0Nzc1ODE4IiwiLTk2MjMzNzIwMzY4NTQ3NzU4MTgiLCItOTcyMzM3MjAzNjg1NDc3NTgxOCIsIi05ODIzMzcyMDM2ODU0Nzc1ODE4IiwiLTk5MjMzNzIwMzY4NTQ3NzU4MTgiLCIxMjM0NTY3ODkwMTIzNDU2Nzg5MCJ9OyAvLyAyMjAKKyAgLy8gMjIxCisgIC8vIDIyMgorICAvLyAyMjMKKyAgLy8gMjI0CisgIC8vIDIyNQorICAvLyAyMjYKKyAgLy8gMjI3CisgIC8vIDIyOAorICAvLyAyMjkKKyAgLy8gMjMwCisgIC8vIDIzMQorICAvLyAyMzIKKyAgLy8gMjMzCisgIC8vIDIzNAorICAvLyAyMzUKKyAgLy8gMjM2CisgIC8vIDIzNworICAvLyAyMzgKKyAgLy8gMjM5CisgIC8vIDI0MAorICAvLyAyNDEKKyAgLy8gMjQyCisgIC8vIDI0MworICAvLyAyNDQKKyAge2ludCAkMTEzPWJhZHN0cmluZ3MubGVuZ3RoO2k9MDtpOmZvcig7JDExMz4wOyQxMTMtLSxpKyspeworICAgdHJ5eworICAgIHY9YmFkc3RyaW5nc1tpXTsKKyAgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2KSkubG9uZ1ZhbHVlRXhhY3QoKTsKKyAgICBmbGFnPWZhbHNlOworICAgfQorICAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxMTQpe2FlPSQxMTQ7CisgICAgbm9ybT0obmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2KSkudG9TdHJpbmcoKTsKKyAgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiQ29udmVyc2lvbiBvdmVyZmxvdzoiKyIgIitub3JtKTsKKyAgIH0KKyAgIChuZXcgVGVzdCgibG92IisoMjIwK2kpKSkub2s9ZmxhZzsKKyAgIH0KKyAgfS8qaSovCisgIAorICAvLyBub3cgc2xpcCBpbiBzb21lIHNpbmdsZSBiaXRzLi4uCisgIGRsbWF4PW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobG1heCk7CisgIHtpPTA7aTpmb3IoO2k8PTk5O2krKyl7CisgICB0cnl7CisgICAgbnVtPXR3by5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChpKSxtYzUwKTsKKyAgICBkdj1kbG1heC5hZGQobnVtLG1jNTApOworICAgIGR2LmxvbmdWYWx1ZUV4YWN0KCk7CisgICAgZmxhZz1mYWxzZTsKKyAgIH0KKyAgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMTE1KXthZT0kMTE1OworICAgIG5vcm09ZHYudG9TdHJpbmcoKTsKKyAgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiQ29udmVyc2lvbiBvdmVyZmxvdzoiKyIgIitub3JtKTsKKyAgIH0KKyAgIChuZXcgVGVzdCgibG92IisoMzAwK2kpKSkub2s9ZmxhZzsKKyAgIH0KKyAgfS8qaSovCisgIGRsbWluPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobG1pbik7CisgIHtpPTA7aTpmb3IoO2k8PTk5O2krKyl7CisgICB0cnl7CisgICAgbnVtPXR3by5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChpKSxtYzUwKTsKKyAgICBkdj1kbG1pbi5zdWJ0cmFjdChudW0sbWM1MCk7CisgICAgZHYubG9uZ1ZhbHVlRXhhY3QoKTsKKyAgICBmbGFnPWZhbHNlOworICAgfQorICAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxMTYpe2FlPSQxMTY7CisgICAgbm9ybT1kdi50b1N0cmluZygpOworICAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJDb252ZXJzaW9uIG92ZXJmbG93OiIrIiAiK25vcm0pOworICAgfQorICAgKG5ldyBUZXN0KCJsb3YiKyg0MDAraSkpKS5vaz1mbGFnOworICAgfQorICB9LyppKi8KKyAgCisgIHN1bW1hcnkoImxvbmdWYWx1ZSsiKTsKKyAgcmV0dXJuO30KKworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBCaWdEZWNpbWFsI21vdmVQb2ludExlZnR9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnbW92ZXBvaW50bGVmdCgpeworICAobmV3IFRlc3QoIm1wbDAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLm1vdmVQb2ludExlZnQoLTEwKS50b1N0cmluZygpKS5lcXVhbHMoIi0xMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm1wbDAwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLm1vdmVQb2ludExlZnQoLTUpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEwMDAwMCIpOworICAobmV3IFRlc3QoIm1wbDAwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLm1vdmVQb2ludExlZnQoLTEpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEwIik7CisgIChuZXcgVGVzdCgibXBsMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkubW92ZVBvaW50TGVmdCgwKS50b1N0cmluZygpKS5lcXVhbHMoIi0xIik7CisgIChuZXcgVGVzdCgibXBsMDA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkubW92ZVBvaW50TGVmdCgrMSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC4xIik7CisgIChuZXcgVGVzdCgibXBsMDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkubW92ZVBvaW50TGVmdCgrNSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC4wMDAwMSIpOworICAobmV3IFRlc3QoIm1wbDAwNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLm1vdmVQb2ludExlZnQoKzEwKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjAwMDAwMDAwMDEiKTsKKyAgCisgIChuZXcgVGVzdCgibXBsMDEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5tb3ZlUG9pbnRMZWZ0KC0xMCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgibXBsMDEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5tb3ZlUG9pbnRMZWZ0KC01KS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJtcGwwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLm1vdmVQb2ludExlZnQoLTEpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoIm1wbDAxMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkubW92ZVBvaW50TGVmdCgwKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJtcGwwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLm1vdmVQb2ludExlZnQoKzEpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgibXBsMDEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5tb3ZlUG9pbnRMZWZ0KCs1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtcGwwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLm1vdmVQb2ludExlZnQoKzEwKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDAwMDAwMCIpOworICAKKyAgKG5ldyBUZXN0KCJtcGwwMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS5tb3ZlUG9pbnRMZWZ0KC0xMCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm1wbDAyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxIikpLm1vdmVQb2ludExlZnQoLTUpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwMDAwIik7CisgIChuZXcgVGVzdCgibXBsMDIyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzEiKSkubW92ZVBvaW50TGVmdCgtMSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMCIpOworICAobmV3IFRlc3QoIm1wbDAyMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxIikpLm1vdmVQb2ludExlZnQoMCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgibXBsMDI0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzEiKSkubW92ZVBvaW50TGVmdCgrMSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJtcGwwMjUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS5tb3ZlUG9pbnRMZWZ0KCs1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDEiKTsKKyAgKG5ldyBUZXN0KCJtcGwwMjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS5tb3ZlUG9pbnRMZWZ0KCsxMCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDAwMDAwMDEiKTsKKyAgCisgIChuZXcgVGVzdCgibXBsMDMwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41RSsxIikpLm1vdmVQb2ludExlZnQoLTEwKS50b1N0cmluZygpKS5lcXVhbHMoIjUwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXBsMDMxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41RSsxIikpLm1vdmVQb2ludExlZnQoLTUpLnRvU3RyaW5nKCkpLmVxdWFscygiNTAwMDAwIik7CisgIChuZXcgVGVzdCgibXBsMDMyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41RSsxIikpLm1vdmVQb2ludExlZnQoLTEpLnRvU3RyaW5nKCkpLmVxdWFscygiNTAiKTsKKyAgKG5ldyBUZXN0KCJtcGwwMzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjVFKzEiKSkubW92ZVBvaW50TGVmdCgwKS50b1N0cmluZygpKS5lcXVhbHMoIjUiKTsKKyAgKG5ldyBUZXN0KCJtcGwwMzQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjVFKzEiKSkubW92ZVBvaW50TGVmdCgrMSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjUiKTsKKyAgKG5ldyBUZXN0KCJtcGwwMzUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjVFKzEiKSkubW92ZVBvaW50TGVmdCgrNSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDA1Iik7CisgIChuZXcgVGVzdCgibXBsMDM2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41RSsxIikpLm1vdmVQb2ludExlZnQoKzEwKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDAwMDAwNSIpOworICAKKyAgc3VtbWFyeSgibW92ZVBvaW50TGVmdCIpOworICByZXR1cm47fQorLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIEJpZ0RlY2ltYWwjbW92ZVBvaW50UmlnaHR9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnbW92ZXBvaW50cmlnaHQoKXsKKyAgKG5ldyBUZXN0KCJtcHIwMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpKS5tb3ZlUG9pbnRSaWdodCgrMTApLnRvU3RyaW5nKCkpLmVxdWFscygiLTEwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXByMDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkubW92ZVBvaW50UmlnaHQoKzUpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEwMDAwMCIpOworICAobmV3IFRlc3QoIm1wcjAwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLm1vdmVQb2ludFJpZ2h0KCsxKS50b1N0cmluZygpKS5lcXVhbHMoIi0xMCIpOworICAobmV3IFRlc3QoIm1wcjAwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLm1vdmVQb2ludFJpZ2h0KDApLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJtcHIwMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpKS5tb3ZlUG9pbnRSaWdodCgtMSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC4xIik7CisgIChuZXcgVGVzdCgibXByMDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkubW92ZVBvaW50UmlnaHQoLTUpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMDAwMDEiKTsKKyAgKG5ldyBUZXN0KCJtcHIwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpKS5tb3ZlUG9pbnRSaWdodCgtMTApLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMDAwMDAwMDAwMSIpOworICAKKyAgKG5ldyBUZXN0KCJtcHIwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLm1vdmVQb2ludFJpZ2h0KCsxMCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgibXByMDExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5tb3ZlUG9pbnRSaWdodCgrNSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgibXByMDEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5tb3ZlUG9pbnRSaWdodCgrMSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgibXByMDEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5tb3ZlUG9pbnRSaWdodCgwKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJtcHIwMTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLm1vdmVQb2ludFJpZ2h0KC0xKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoIm1wcjAxNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkubW92ZVBvaW50UmlnaHQoLTUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMCIpOworICAobmV3IFRlc3QoIm1wcjAxNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkubW92ZVBvaW50UmlnaHQoLTEwKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDAwMDAwMCIpOworICAKKyAgKG5ldyBUZXN0KCJtcHIwMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS5tb3ZlUG9pbnRSaWdodCgrMTApLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtcHIwMjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS5tb3ZlUG9pbnRSaWdodCgrNSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtcHIwMjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS5tb3ZlUG9pbnRSaWdodCgrMSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMCIpOworICAobmV3IFRlc3QoIm1wcjAyMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxIikpLm1vdmVQb2ludFJpZ2h0KDApLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoIm1wcjAyNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxIikpLm1vdmVQb2ludFJpZ2h0KC0xKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoIm1wcjAyNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxIikpLm1vdmVQb2ludFJpZ2h0KC01KS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDEiKTsKKyAgKG5ldyBUZXN0KCJtcHIwMjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS5tb3ZlUG9pbnRSaWdodCgtMTApLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMDAwMDAxIik7CisgIAorICAobmV3IFRlc3QoIm1wcjAzMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNUUrMSIpKS5tb3ZlUG9pbnRSaWdodCgrMTApLnRvU3RyaW5nKCkpLmVxdWFscygiNTAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtcHIwMzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjVFKzEiKSkubW92ZVBvaW50UmlnaHQoKzUpLnRvU3RyaW5nKCkpLmVxdWFscygiNTAwMDAwIik7CisgIChuZXcgVGVzdCgibXByMDMyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41RSsxIikpLm1vdmVQb2ludFJpZ2h0KCsxKS50b1N0cmluZygpKS5lcXVhbHMoIjUwIik7CisgIChuZXcgVGVzdCgibXByMDMzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41RSsxIikpLm1vdmVQb2ludFJpZ2h0KDApLnRvU3RyaW5nKCkpLmVxdWFscygiNSIpOworICAobmV3IFRlc3QoIm1wcjAzNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNUUrMSIpKS5tb3ZlUG9pbnRSaWdodCgtMSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjUiKTsKKyAgKG5ldyBUZXN0KCJtcHIwMzUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjVFKzEiKSkubW92ZVBvaW50UmlnaHQoLTUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwNSIpOworICAobmV3IFRlc3QoIm1wcjAzNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNUUrMSIpKS5tb3ZlUG9pbnRSaWdodCgtMTApLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMDAwMDA1Iik7CisgIAorICBzdW1tYXJ5KCJtb3ZlUG9pbnRSaWdodCIpOworICByZXR1cm47fQorLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIEJpZ0RlY2ltYWwjc2NhbGV9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnc2NhbGUoKXsKKyAgKG5ldyBUZXN0KCJzY2EwMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpKS5zY2FsZSgpKT09MDsKKyAgKG5ldyBUZXN0KCJzY2EwMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMTAiKSkuc2NhbGUoKSk9PTA7CisgIChuZXcgVGVzdCgic2NhMDAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzEiKSkuc2NhbGUoKSk9PTA7CisgIChuZXcgVGVzdCgic2NhMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzEwIikpLnNjYWxlKCkpPT0wOworICAobmV3IFRlc3QoInNjYTAwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFKzEwIikpLnNjYWxlKCkpPT0wOworICAobmV3IFRlc3QoInNjYTAwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFLTEwIikpLnNjYWxlKCkpPT0xMDsKKyAgKG5ldyBUZXN0KCJzY2EwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwRS0xMCIpKS5zY2FsZSgpKT09MDsKKyAgKG5ldyBUZXN0KCJzY2EwMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMCIpKS5zY2FsZSgpKT09MzsKKyAgKG5ldyBUZXN0KCJzY2EwMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwIikpLnNjYWxlKCkpPT0yOworICAobmV3IFRlc3QoInNjYTAxMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMCIpKS5zY2FsZSgpKT09MTsKKyAgKG5ldyBUZXN0KCJzY2EwMTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjEiKSkuc2NhbGUoKSk9PTE7CisgIChuZXcgVGVzdCgic2NhMDEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xMiIpKS5zY2FsZSgpKT09MjsKKyAgKG5ldyBUZXN0KCJzY2EwMTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjEyMyIpKS5zY2FsZSgpKT09MzsKKyAgKG5ldyBUZXN0KCJzY2EwMTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4wIikpLnNjYWxlKCkpPT0xOworICAobmV3IFRlc3QoInNjYTAxNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjEiKSkuc2NhbGUoKSk9PTE7CisgIChuZXcgVGVzdCgic2NhMDE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMTIiKSkuc2NhbGUoKSk9PTI7CisgIChuZXcgVGVzdCgic2NhMDE3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMTIzIikpLnNjYWxlKCkpPT0zOworICBzdW1tYXJ5KCJzY2FsZSIpOworICByZXR1cm47fQorCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIEJpZ0RlY2ltYWwjc2V0U2NhbGV9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnc2V0c2NhbGUoKXsKKyAgYm9vbGVhbiBmbGFnPWZhbHNlOworICBqYXZhLmxhbmcuUnVudGltZUV4Y2VwdGlvbiBlPW51bGw7CisgIAorICAobmV3IFRlc3QoInNzYzAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLnNldFNjYWxlKDApLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpKS5zZXRTY2FsZSgxKS50b1N0cmluZygpKS5lcXVhbHMoIi0xLjAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpKS5zZXRTY2FsZSgyKS50b1N0cmluZygpKS5lcXVhbHMoIi0xLjAwIik7CisgIChuZXcgVGVzdCgic3NjMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zZXRTY2FsZSgwKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnNldFNjYWxlKDEpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgic3NjMDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zZXRTY2FsZSgyKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS5zZXRTY2FsZSgwKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS5zZXRTY2FsZSgxKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMCIpOworICAobmV3IFRlc3QoInNzYzAwOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxIikpLnNldFNjYWxlKDIpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMCIpOworICAobmV3IFRlc3QoInNzYzAxMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLnNldFNjYWxlKDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIi0xIik7CisgIChuZXcgVGVzdCgic3NjMDExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkuc2V0U2NhbGUoMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiLTEuMCIpOworICAobmV3IFRlc3QoInNzYzAxMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLnNldFNjYWxlKDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIi0xLjAwIik7CisgIChuZXcgVGVzdCgic3NjMDEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zZXRTY2FsZSgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgic3NjMDE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zZXRTY2FsZSgxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnNldFNjYWxlKDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS5zZXRTY2FsZSgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgic3NjMDE3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzEiKSkuc2V0U2NhbGUoMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wIik7CisgIChuZXcgVGVzdCgic3NjMDE4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzEiKSkuc2V0U2NhbGUoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMCIpOworICAKKyAgKG5ldyBUZXN0KCJzc2MwMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjA0IikpLnNldFNjYWxlKDMsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDQwIik7CisgIChuZXcgVGVzdCgic3NjMDIxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wNCIpKS5zZXRTY2FsZSgyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjA0Iik7CisgIChuZXcgVGVzdCgic3NjMDIyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wNCIpKS5zZXRTY2FsZSgxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjA0IikpLnNldFNjYWxlKDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMjQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjA1IikpLnNldFNjYWxlKDMsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDUwIik7CisgIChuZXcgVGVzdCgic3NjMDI1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wNSIpKS5zZXRTY2FsZSgyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjA1Iik7CisgIChuZXcgVGVzdCgic3NjMDI2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wNSIpKS5zZXRTY2FsZSgxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjEiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMjciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjA1IikpLnNldFNjYWxlKDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjA1IikpLnNldFNjYWxlKDMsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wNTAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMjkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjA1IikpLnNldFNjYWxlKDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wNSIpOworICAobmV3IFRlc3QoInNzYzAzMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDUiKSkuc2V0U2NhbGUoMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRE9XTikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjA1IikpLnNldFNjYWxlKDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInNzYzAzMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDYiKSkuc2V0U2NhbGUoMyxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wNjAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjA2IikpLnNldFNjYWxlKDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDYiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMzQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjA2IikpLnNldFNjYWxlKDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMSIpOworICAobmV3IFRlc3QoInNzYzAzNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDYiKSkuc2V0U2NhbGUoMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAKKyAgKG5ldyBUZXN0KCJzc2MwNDAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMTAiKSkuc2V0U2NhbGUoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiLTEwLjAwIik7CisgIChuZXcgVGVzdCgic3NjMDQxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzEiKSkuc2V0U2NhbGUoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMCIpOworICAobmV3IFRlc3QoInNzYzA0MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxMCIpKS5zZXRTY2FsZSgyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMC4wMCIpOworICAobmV3IFRlc3QoInNzYzA0MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFKzEwIikpLnNldFNjYWxlKDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAwMDAwMDAwLjAwIik7CisgIChuZXcgVGVzdCgic3NjMDQ0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMUUtMTAiKSkuc2V0U2NhbGUoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMCIpOworICAobmV3IFRlc3QoInNzYzA0NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFLTIiKSkuc2V0U2NhbGUoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMSIpOworICAobmV3IFRlc3QoInNzYzA0NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjBFLTEwIikpLnNldFNjYWxlKDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAiKTsKKyAgCisgIC8vIGNoZWNrIHJvdW5kaW5nCisgIChuZXcgVGVzdCgic3NjMDUwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDUiKSkuc2V0U2NhbGUoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0NFSUxJTkcpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMSIpOworICAobmV3IFRlc3QoInNzYzA1MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLnNldFNjYWxlKDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9DRUlMSU5HKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoInNzYzA1MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLnNldFNjYWxlKDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9DRUlMSU5HKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJzc2MwNTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwNSIpKS5zZXRTY2FsZSgyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfRE9XTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwIik7CisgIChuZXcgVGVzdCgic3NjMDU0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDUiKSkuc2V0U2NhbGUoMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgic3NjMDU1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDUiKSkuc2V0U2NhbGUoMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInNzYzA1NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLnNldFNjYWxlKDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9GTE9PUikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwIik7CisgIChuZXcgVGVzdCgic3NjMDU3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDUiKSkuc2V0U2NhbGUoMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0ZMT09SKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoInNzYzA1OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLnNldFNjYWxlKDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9GTE9PUikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgic3NjMDU5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDUiKSkuc2V0U2NhbGUoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRE9XTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwIik7CisgIChuZXcgVGVzdCgic3NjMDYwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDUiKSkuc2V0U2NhbGUoMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRE9XTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwNjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwNSIpKS5zZXRTY2FsZSgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9ET1dOKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwNjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwNSIpKS5zZXRTY2FsZSgyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwNjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwNSIpKS5zZXRTY2FsZSgxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoInNzYzA2NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLnNldFNjYWxlKDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInNzYzA2NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDE1IikpLnNldFNjYWxlKDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMiIpOworICAobmV3IFRlc3QoInNzYzA2NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDE1IikpLnNldFNjYWxlKDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgic3NjMDY3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMTUiKSkuc2V0U2NhbGUoMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgic3NjMDY4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDUiKSkuc2V0U2NhbGUoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMSIpOworICAobmV3IFRlc3QoInNzYzA2OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLnNldFNjYWxlKDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoInNzYzA3MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLnNldFNjYWxlKDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwNzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA5NSIpKS5zZXRTY2FsZSgyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEwIik7CisgIChuZXcgVGVzdCgic3NjMDcyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wOTUiKSkuc2V0U2NhbGUoMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xIik7CisgIChuZXcgVGVzdCgic3NjMDczIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wOTUiKSkuc2V0U2NhbGUoMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInNzYzA3NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLnNldFNjYWxlKDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAxIik7CisgIChuZXcgVGVzdCgic3NjMDc1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDUiKSkuc2V0U2NhbGUoMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoInNzYzA3NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLnNldFNjYWxlKDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIAorICB0cnl7Y2hlY2tzY2FsZTpkb3sKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDEpKS5zZXRTY2FsZSgtOCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5SdW50aW1lRXhjZXB0aW9uICQxMTcpe2U9JDExNzsKKyAgIGZsYWc9KGUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIk5lZ2F0aXZlIHNjYWxlOiAtOCIpOworICB9LypjaGVja3NjYWxlKi8KKyAgKG5ldyBUZXN0KCJzc2MxMDAiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrcnVubjpkb3sKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDEuMDAwMUQpKS5zZXRTY2FsZSgzKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLlJ1bnRpbWVFeGNlcHRpb24gJDExOCl7ZT0kMTE4OworICAgZmxhZz0oZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiUm91bmRpbmcgbmVjZXNzYXJ5Iik7CisgIH0vKmNoZWNrcnVubiovCisgIChuZXcgVGVzdCgic3NjMTAxIikpLm9rPWZsYWc7CisgIHRyeXtjaGVja3J1bm46ZG97CisgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgxRS04RCkpLnNldFNjYWxlKDMpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuUnVudGltZUV4Y2VwdGlvbiAkMTE5KXtlPSQxMTk7CisgICBmbGFnPShlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJSb3VuZGluZyBuZWNlc3NhcnkiKTsKKyAgfS8qY2hlY2tydW5uKi8KKyAgKG5ldyBUZXN0KCJzc2MxMDIiKSkub2s9ZmxhZzsKKyAgc3VtbWFyeSgic2V0U2NhbGUiKTsKKyAgcmV0dXJuO30KKworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgdGhlIDxjb2RlPkJpZ0RlY2ltYWwuc2hvcnRWYWx1ZSgpPC9jb2RlPiBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ3Nob3J0dmFsdWUoKXsKKyAgYm9vbGVhbiBmbGFnPWZhbHNlOworICBqYXZhLmxhbmcuU3RyaW5nIHY9bnVsbDsKKyAgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gYWU9bnVsbDsKKyAgamF2YS5sYW5nLlN0cmluZyBiYWRzdHJpbmdzW107CisgIGludCBpPTA7CisgIGphdmEubGFuZy5TdHJpbmcgbm9ybT1udWxsOworICAKKyAgKG5ldyBUZXN0KCJzaHYwMDIiKSkub2s9KCgoc2hvcnQpMCkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc2hvcnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJzaHYwMDMiKSkub2s9KCgoc2hvcnQpMSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkuc2hvcnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJzaHYwMDQiKSkub2s9KCgoc2hvcnQpOTkpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OSIpKS5zaG9ydFZhbHVlKCkpOworICAobmV3IFRlc3QoInNodjAwNiIpKS5vaz0oKHNtYXgpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHNtYXgpKS5zaG9ydFZhbHVlKCkpOworICAobmV3IFRlc3QoInNodjAwNyIpKS5vaz0oKHNtaW4pKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHNtaW4pKS5zaG9ydFZhbHVlKCkpOworICAobmV3IFRlc3QoInNodjAwOCIpKS5vaz0oKHNuZWcpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHNuZWcpKS5zaG9ydFZhbHVlKCkpOworICAobmV3IFRlc3QoInNodjAwOSIpKS5vaz0oKHN6ZXIpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHN6ZXIpKS5zaG9ydFZhbHVlKCkpOworICAobmV3IFRlc3QoInNodjAxMCIpKS5vaz0oKHNwb3MpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHNwb3MpKS5zaG9ydFZhbHVlKCkpOworICAobmV3IFRlc3QoInNodjAxMSIpKS5vaz0oKHNtaW4pKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHNtYXgrMSkpLnNob3J0VmFsdWUoKSk7CisgIChuZXcgVGVzdCgic2h2MDEyIikpLm9rPSgoc21heCkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoc21pbi0xKSkuc2hvcnRWYWx1ZSgpKTsKKyAgCisgIChuZXcgVGVzdCgic2h2MDIyIikpLm9rPSgoKHNob3J0KTApKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnNob3J0VmFsdWVFeGFjdCgpKTsKKyAgKG5ldyBUZXN0KCJzaHYwMjMiKSkub2s9KCgoc2hvcnQpMSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkuc2hvcnRWYWx1ZUV4YWN0KCkpOworICAobmV3IFRlc3QoInNodjAyNCIpKS5vaz0oKChzaG9ydCk5OSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5IikpLnNob3J0VmFsdWVFeGFjdCgpKTsKKyAgKG5ldyBUZXN0KCJzaHYwMjYiKSkub2s9KChzbWF4KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzbWF4KSkuc2hvcnRWYWx1ZUV4YWN0KCkpOworICAobmV3IFRlc3QoInNodjAyNyIpKS5vaz0oKHNtaW4pKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHNtaW4pKS5zaG9ydFZhbHVlRXhhY3QoKSk7CisgIChuZXcgVGVzdCgic2h2MDI4IikpLm9rPSgoc25lZykpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoc25lZykpLnNob3J0VmFsdWVFeGFjdCgpKTsKKyAgKG5ldyBUZXN0KCJzaHYwMjkiKSkub2s9KChzemVyKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzemVyKSkuc2hvcnRWYWx1ZUV4YWN0KCkpOworICAobmV3IFRlc3QoInNodjAzMCIpKS5vaz0oKHNwb3MpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHNwb3MpKS5zaG9ydFZhbHVlRXhhY3QoKSk7CisgIHRyeXsKKyAgIHY9Ii04ODg4ODg4ODg4OCI7CisgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2KSkuc2hvcnRWYWx1ZUV4YWN0KCk7CisgICBmbGFnPWZhbHNlOworICB9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMTIwKXthZT0kMTIwOworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIkNvbnZlcnNpb24gb3ZlcmZsb3c6IisiICIrdik7CisgIH0KKyAgKG5ldyBUZXN0KCJzaHYxMDAiKSkub2s9ZmxhZzsKKyAgdHJ5eworICAgdj0iODg4ODg4ODg4ODgiOworICAgKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwodikpLnNob3J0VmFsdWVFeGFjdCgpOworICAgZmxhZz1mYWxzZTsKKyAgfQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDEyMSl7YWU9JDEyMTsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJDb252ZXJzaW9uIG92ZXJmbG93OiIrIiAiK3YpOworICB9CisgIChuZXcgVGVzdCgic2h2MTAxIikpLm9rPWZsYWc7CisgIHRyeXsKKyAgIHY9IjEuNSI7CisgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2KSkuc2hvcnRWYWx1ZUV4YWN0KCk7CisgICBmbGFnPWZhbHNlOworICB9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMTIyKXthZT0kMTIyOworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIkRlY2ltYWwgcGFydCBub24temVybzoiKyIgIit2KTsKKyAgfQorICAobmV3IFRlc3QoInNodjEwMiIpKS5vaz1mbGFnOworICAKKyAgYmFkc3RyaW5ncz1uZXcgamF2YS5sYW5nLlN0cmluZ1tdeyIxMjM0NTYiLChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHNtYXgpKS5hZGQob25lKS50b1N0cmluZygpLChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHNtaW4pKS5zdWJ0cmFjdChvbmUpLnRvU3RyaW5nKCksIjcxMTExIiwiODExMTEiLCI5MTExMSIsIi03MTExMSIsIi04MTExMSIsIi05MTExMSIsKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoc21pbikpLm11bHRpcGx5KHR3bykudG9TdHJpbmcoKSwobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzbWF4KSkubXVsdGlwbHkodHdvKS50b1N0cmluZygpLChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHNtaW4pKS5tdWx0aXBseSh0ZW4pLnRvU3RyaW5nKCksKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoc21heCkpLm11bHRpcGx5KHRlbikudG9TdHJpbmcoKSwiLTEyMzQ1NiJ9OyAvLyAyMjAKKyAgLy8gMjIxCisgIC8vIDIyMgorICAvLyAyMjMKKyAgLy8gMjI0CisgIC8vIDIyNQorICAvLyAyMjYKKyAgLy8gMjI3CisgIC8vIDIyOAorICAvLyAyMjkKKyAgLy8gMjMwCisgIC8vIDIzMQorICAvLyAyMzIKKyAgLy8gMjMzCisgIHtpbnQgJDEyMz1iYWRzdHJpbmdzLmxlbmd0aDtpPTA7aTpmb3IoOyQxMjM+MDskMTIzLS0saSsrKXsKKyAgIHRyeXsKKyAgICB2PWJhZHN0cmluZ3NbaV07CisgICAgKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwodikpLnNob3J0VmFsdWVFeGFjdCgpOworICAgIGZsYWc9ZmFsc2U7CisgICB9CisgICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDEyNCl7YWU9JDEyNDsKKyAgICBub3JtPShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHYpKS50b1N0cmluZygpOworICAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJDb252ZXJzaW9uIG92ZXJmbG93OiIrIiAiK25vcm0pOworICAgfQorICAgKG5ldyBUZXN0KCJzaHYiKygyMjAraSkpKS5vaz1mbGFnOworICAgfQorICB9LyppKi8KKyAgCisgIAorICBzdW1tYXJ5KCJzaG9ydFZhbHVlKyIpOworICByZXR1cm47fQorCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIEJpZ0RlY2ltYWwjc2lnbnVtfSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ3NpZ251bSgpeworICAvLyBuZWNlc3NhcmlseSBjaGVja3Mgc29tZSBvYnNjdXJlIGNvbnN0cnVjdGlvbnMsIHRvbworICAobmV3IFRlc3QoInNpZzAwMSIpKS5vaz0oLTEpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLnNpZ251bSgpKTsKKyAgKG5ldyBUZXN0KCJzaWcwMDIiKSkub2s9KC0xKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4wMDEwIikpLnNpZ251bSgpKTsKKyAgKG5ldyBUZXN0KCJzaWcwMDMiKSkub2s9KC0xKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4wMDEiKSkuc2lnbnVtKCkpOworICAobmV3IFRlc3QoInNpZzAwNCIpKS5vaz0wPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjAwIikpLnNpZ251bSgpKTsKKyAgKG5ldyBUZXN0KCJzaWcwMDUiKSkub2s9MD09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMCIpKS5zaWdudW0oKSk7CisgIChuZXcgVGVzdCgic2lnMDA2IikpLm9rPTA9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zaWdudW0oKSk7CisgIChuZXcgVGVzdCgic2lnMDA3IikpLm9rPTA9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAiKSkuc2lnbnVtKCkpOworICAobmV3IFRlc3QoInNpZzAwOCIpKS5vaz0wPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwLjAiKSkuc2lnbnVtKCkpOworICAobmV3IFRlc3QoInNpZzAwOSIpKS5vaz0xPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwLjAxIikpLnNpZ251bSgpKTsKKyAgKG5ldyBUZXN0KCJzaWcwMTAiKSkub2s9MT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMC4wMSIpKS5zaWdudW0oKSk7CisgIChuZXcgVGVzdCgic2lnMDExIikpLm9rPTE9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAuMDEwIikpLnNpZ251bSgpKTsKKyAgKG5ldyBUZXN0KCJzaWcwMTIiKSkub2s9MT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMS4wMSIpKS5zaWdudW0oKSk7CisgIChuZXcgVGVzdCgic2lnMDEzIikpLm9rPTE9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzAuMDEiKSkuc2lnbnVtKCkpOworICAobmV3IFRlc3QoInNpZzAxNCIpKS5vaz0xPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIiswLjAwMSIpKS5zaWdudW0oKSk7CisgIChuZXcgVGVzdCgic2lnMDE1IikpLm9rPTE9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5zaWdudW0oKSk7CisgIChuZXcgVGVzdCgic2lnMDE2IikpLm9rPTE9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMWUrMTIiKSkuc2lnbnVtKCkpOworICAobmV3IFRlc3QoInNpZzAxNyIpKS5vaz0wPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwZSsxMiIpKS5zaWdudW0oKSk7CisgIHN1bW1hcnkoInNpZ251bSIpOworICByZXR1cm47fQorCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIEJpZ0RlY2ltYWwjdG9CaWdEZWNpbWFsfSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ3RvYmlnZGVjaW1hbCgpeworICAobmV3IFRlc3QoInRiZDAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkudG9CaWdEZWNpbWFsKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidGJkMDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkudG9CaWdEZWNpbWFsKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInRiZDAwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxIikpLnRvQmlnRGVjaW1hbCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInRiZDAwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkudG9CaWdEZWNpbWFsKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgidGJkMDA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMUUrMiIpKS50b0JpZ0RlY2ltYWwoKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMCIpOworICAobmV3IFRlc3QoInRiZDAwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFLTIiKSkudG9CaWdEZWNpbWFsKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAxIik7CisgIChuZXcgVGVzdCgidGJkMDA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMUUtOCIpKS50b0JpZ0RlY2ltYWwoKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDAwMDEiKTsKKyAgKG5ldyBUZXN0KCJ0YmQwMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRS05IikpLnRvQmlnRGVjaW1hbCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMDAwMDEiKTsKKyAgKG5ldyBUZXN0KCJ0YmQwMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRTEwIikpLnRvQmlnRGVjaW1hbCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJ0YmQwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRTEyIikpLnRvQmlnRGVjaW1hbCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwMDAwMDAwMDAwMCIpOworICBzdW1tYXJ5KCJ0b0JpZ0RlY2ltYWwiKTsKKyAgcmV0dXJuO30KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBCaWdEZWNpbWFsI3RvQmlnSW50ZWdlcn0gbWV0aG9kLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWd0b2JpZ2ludGVnZXIoKXsKKyAgYm9vbGVhbiBmbGFnPWZhbHNlOworICBqYXZhLmxhbmcuU3RyaW5nIGJhZHN0cmluZ3NbXTsKKyAgaW50IGk9MDsKKyAgKG5ldyBUZXN0KCJ0YmkwMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xIik7CisgIChuZXcgVGVzdCgidGJpMDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjEwIik7CisgIChuZXcgVGVzdCgidGJpMDA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMUUrMCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xIik7CisgIChuZXcgVGVzdCgidGJpMDA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMEUrMCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMUUrMCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMEUrMCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjEwIik7CisgIChuZXcgVGVzdCgidGJpMDEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMUUrMyIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwIikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInRiaTAxMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDEiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidGJpMDEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wIikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInRiaTAxNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMSIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4wMCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4wMSIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4wIikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInRiaTAxOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjEiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidGJpMDE5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAxIikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInRiaTAyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjEiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgidGJpMDIzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEuMDAiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInRiaTAyNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjAxIikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMjUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMS4wIikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMS4xIikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMjciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMTExLjExMSIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xMTEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMTExLjExMSIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjExMSIpOworICAobmV3IFRlc3QoInRiaTAyOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDkiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidGJpMDMwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC45IikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInRiaTAzMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDkiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgidGJpMDMyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wNSIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjA0IikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInRiaTAzNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuOTkiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgidGJpMDM0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS45IikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInRiaTAzNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuNSIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMzYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjQiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgidGJpMDM3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEuMDkiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInRiaTAzOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjA1IikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMzkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMS4wNCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xIik7CisgIChuZXcgVGVzdCgidGJpMDQwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEuOTkiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInRiaTA0MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjkiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInRiaTA0MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjUiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInRiaTA0MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjQiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInRiaTA0NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFLTEwMDAiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidGJpMDQ1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTFFLTEwMDAiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIAorICAvLyBFeGFjdCB2YXJpZXR5IC0tCisgIChuZXcgVGVzdCgidGJpMTAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkudG9CaWdJbnRlZ2VyRXhhY3QoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xIik7CisgIChuZXcgVGVzdCgidGJpMTAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS50b0JpZ0ludGVnZXJFeGFjdCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInRiaTEwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxIikpLnRvQmlnSW50ZWdlckV4YWN0KCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgidGJpMTA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkudG9CaWdJbnRlZ2VyRXhhY3QoKS50b1N0cmluZygpKS5lcXVhbHMoIjEwIik7CisgIChuZXcgVGVzdCgidGJpMTA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMCIpKS50b0JpZ0ludGVnZXJFeGFjdCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwMCIpOworICAobmV3IFRlc3QoInRiaTEwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xRSswIikpLnRvQmlnSW50ZWdlckV4YWN0KCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInRiaTEwNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjBFKzAiKSkudG9CaWdJbnRlZ2VyRXhhY3QoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkxMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMUUrMCIpKS50b0JpZ0ludGVnZXJFeGFjdCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInRiaTEwOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwRSswIikpLnRvQmlnSW50ZWdlckV4YWN0KCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMCIpOworICAobmV3IFRlc3QoInRiaTExMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFKzMiKSkudG9CaWdJbnRlZ2VyRXhhY3QoKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkxMTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwIikpLnRvQmlnSW50ZWdlckV4YWN0KCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidGJpMTEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wIikpLnRvQmlnSW50ZWdlckV4YWN0KCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidGJpMTEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMDAiKSkudG9CaWdJbnRlZ2VyRXhhY3QoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkxMTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4wIikpLnRvQmlnSW50ZWdlckV4YWN0KCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidGJpMTE1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMCIpKS50b0JpZ0ludGVnZXJFeGFjdCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInRiaTExNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMCIpKS50b0JpZ0ludGVnZXJFeGFjdCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInRiaTExNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjAwIikpLnRvQmlnSW50ZWdlckV4YWN0KCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInRiaTExOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjAiKSkudG9CaWdJbnRlZ2VyRXhhY3QoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xIik7CisgIChuZXcgVGVzdCgidGJpMTE5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIpKS50b0JpZ0ludGVnZXJFeGFjdCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAKKyAgLy8gdGhlIGZvbGxvd2luZyBzaG91bGQgYWxsIHJhaXNlIGV4Y2VwdGlvbnMKKyAgCisgIGJhZHN0cmluZ3M9bmV3IGphdmEubGFuZy5TdHJpbmdbXXsiMC4wOSIsIjAuOSIsIjAuMDEiLCIwLjEiLCItMC4wMSIsIi0wLjEiLCIxLjAxIiwiLTEuMDEiLCItMS4xIiwiLTExMS4xMTEiLCIrMTExLjExMSIsIjEuMDkiLCIxLjA1IiwiMS4wNCIsIjEuOTkiLCIxLjkiLCIxLjUiLCIxLjQiLCItMS4wOSIsIi0xLjA1IiwiLTEuMDQiLCItMS45OSIsIi0xLjkiLCItMS41IiwiLTEuNCIsIjFFLTEwMDAiLCItMUUtMTAwMCIsIjExRS0xIiwiMS4xIiwiMTI3NjIzMTU2MTIzNjU2NTYxMzU2MTIzNTEyMzE1NjMxMjMxNTUxMzEyMzU2LjAwMDAwMSIsIjAuMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxIn07IC8vIDMwMC0zMDMKKyAgLy8gMzA0LTMwNworICAvLyAzMDgtMzExCisgIC8vIDMxMi0zMTYKKyAgLy8gMzE3LTMyMAorICAvLyAzMjEtMzI0CisgIC8vIDMyNS0zMjgKKyAgLy8gMzI5CisgIC8vIDMzMAorICAKKyAge2ludCAkMTI1PWJhZHN0cmluZ3MubGVuZ3RoO2k9MDtpOmZvcig7JDEyNT4wOyQxMjUtLSxpKyspeworICAgdHJ5eworICAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJhZHN0cmluZ3NbaV0pKS50b0JpZ0ludGVnZXJFeGFjdCgpOworICAgIGZsYWc9ZmFsc2U7CisgICB9CisgICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDEyNil7CisgICAgZmxhZz10cnVlOworICAgfQorICAgKG5ldyBUZXN0KCJ0YmkiKygzMDAraSkpKS5vaz1mbGFnOworICAgfQorICB9LyppKi8KKyAgCisgIHN1bW1hcnkoInRvQmlnSW50ZWdlcisiKTsKKyAgcmV0dXJuO30KKworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBCaWdEZWNpbWFsI3RvQ2hhckFycmF5fSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ3RvY2hhcmFycmF5KCl7CisgIGphdmEubGFuZy5TdHJpbmcgc3RyOworICBjaGFyIGNhcltdOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZDsKKyAgY2hhciBjYVtdOworICAvLyB0aGUgZnVuY3Rpb24gb2YgdGhpcyBoYXMgYmVlbiB0ZXN0ZWQgYWJvdmUsIHRoaXMgaXMgc2ltcGx5IGFuCisgIC8vIGV4aXN0ZW5jZSBwcm9vZiBhbmQgdHlwZS1jaGVjaworICBzdHI9Ii0xMjMuNDUiOworICBjYXI9KHN0cikudG9DaGFyQXJyYXkoKTsKKyAgZD1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHN0cik7CisgIGNhPWQudG9DaGFyQXJyYXkoKTsKKyAgKG5ldyBUZXN0KCJ0Y2EwMDEiKSkub2s9Y2EubGVuZ3RoPT1jYXIubGVuZ3RoOworICAobmV3IFRlc3QoInRjYTAwMiIpKS5vaz0obmV3IGphdmEubGFuZy5TdHJpbmcoY2EpKS5lcXVhbHMoKGphdmEubGFuZy5PYmplY3QpKG5ldyBqYXZhLmxhbmcuU3RyaW5nKGNhcikpKTsKKyAgKG5ldyBUZXN0KCJ0Y2EwMDMiKSkub2s9KGQudG9DaGFyQXJyYXkoKSBpbnN0YW5jZW9mIGNoYXJbXSk7CisgIChuZXcgVGVzdCgidGNhMDA0IikpLm9rPShjYSBpbnN0YW5jZW9mIGNoYXJbXSk7CisgIHN1bW1hcnkoInRvQ2hhckFycmF5Iik7CisgIHJldHVybjt9CisKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgQmlnRGVjaW1hbCN0b1N0cmluZ30gbWV0aG9kLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWd0b3N0cmluZygpeworICBqYXZhLmxhbmcuU3RyaW5nIHN0cjsKKyAgY2hhciBjYXJbXTsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGQ7CisgIGNoYXIgY2FbXTsKKyAgamF2YS5sYW5nLlN0cmluZyBjczsKKyAgLy8gdGhlIGZ1bmN0aW9uIG9mIHRoaXMgaGFzIGJlZW4gdGVzdGVkIGFib3ZlLCB0aGlzIGlzIHNpbXBseSBhbgorICAvLyBleGlzdGVuY2UgcHJvb2YgYW5kIHR5cGUtY2hlY2sKKyAgc3RyPSIxMjMuNDUiOworICBjYXI9KHN0cikudG9DaGFyQXJyYXkoKTsKKyAgZD1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhciwwLGNhci5sZW5ndGgpOworICBjYT1kLnRvQ2hhckFycmF5KCk7CisgIGNzPWQudG9TdHJpbmcoKTsKKyAgKG5ldyBUZXN0KCJ0b3MwMDEiKSkub2s9KHN0ci50b0NoYXJBcnJheSgpLmxlbmd0aCk9PWNhLmxlbmd0aDsKKyAgKG5ldyBUZXN0KCJ0b3MwMDIiKSkub2s9KHN0ci5sZW5ndGgoKSk9PShjcy5sZW5ndGgoKSk7CisgIChuZXcgVGVzdCgidG9zMDAzIikpLm9rPXN0ci5lcXVhbHMoKGphdmEubGFuZy5PYmplY3QpKG5ldyBqYXZhLmxhbmcuU3RyaW5nKGNhKSkpOworICAobmV3IFRlc3QoInRvczAwNCIpKS5vaz1zdHIuZXF1YWxzKChqYXZhLmxhbmcuT2JqZWN0KWNzKTsKKyAgKG5ldyBUZXN0KCJ0b3MwMDUiKSkub2s9KGNzIGluc3RhbmNlb2YgamF2YS5sYW5nLlN0cmluZyk7CisgIChuZXcgVGVzdCgidG9zMDA2IikpLm9rPShkLnRvU3RyaW5nKCkgaW5zdGFuY2VvZiBqYXZhLmxhbmcuU3RyaW5nKTsKKyAgc3VtbWFyeSgidG9TdHJpbmciKTsKKyAgcmV0dXJuO30KKworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBCaWdEZWNpbWFsI3Vuc2NhbGVkVmFsdWV9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFndW5zY2FsZWR2YWx1ZSgpeworICAvLyBqdXN0IGxpa2UgdG9CaWdJbnRlZ2VyLCBidXQgc2NhbHkgYml0cyBhcmUgcHJlc2VydmVkIFt3aXRob3V0IGRvdHNdCisgIChuZXcgVGVzdCgidW5zMDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkudW5zY2FsZWRWYWx1ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgidW5zMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkudW5zY2FsZWRWYWx1ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMUUrMCIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInVuczAwNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjBFKzAiKSkudW5zY2FsZWRWYWx1ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInVuczAwOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxRSswIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMEUrMCIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMCIpOworICAobmV3IFRlc3QoInVuczAxMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFKzMiKSkudW5zY2FsZWRWYWx1ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwMCIpOworICAobmV3IFRlc3QoInVuczAxMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAiKSkudW5zY2FsZWRWYWx1ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInVuczAxMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDEiKSkudW5zY2FsZWRWYWx1ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInVuczAxMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMCIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidW5zMDE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4wMCIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidW5zMDE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMDEiKSkudW5zY2FsZWRWYWx1ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4wIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMTgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4xIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xIik7CisgIChuZXcgVGVzdCgidW5zMDE5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMCIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAxIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMSIpOworICAobmV3IFRlc3QoInVuczAyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMCIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMCIpOworICAobmV3IFRlc3QoInVuczAyMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMSIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMSIpOworICAobmV3IFRlc3QoInVuczAyMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjAwIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xMDAiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMjQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMS4wMSIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMTAxIik7CisgIChuZXcgVGVzdCgidW5zMDI1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEuMCIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMTAiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMS4xIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xMSIpOworICAobmV3IFRlc3QoInVuczAyNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xMTEuMTExIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xMTExMTEiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMTExLjExMSIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMTExMTEiKTsKKyAgc3VtbWFyeSgidW5zY2FsZWRWYWx1ZSIpOworICByZXR1cm47fQorCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIEJpZ0RlY2ltYWwjdmFsdWVPZn0gbWV0aG9kIFtsb25nIGFuZCBkb3VibGVdLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWd2YWx1ZW9mKCl7CisgIGJvb2xlYW4gZmxhZz1mYWxzZTsKKyAgamF2YS5sYW5nLk51bWJlckZvcm1hdEV4Y2VwdGlvbiBlPW51bGw7CisgIGRvdWJsZSBkemVyOworICBkb3VibGUgZHBvczsKKyAgZG91YmxlIGRuZWc7CisgIGRvdWJsZSBkcG9zNTsKKyAgZG91YmxlIGRuZWc1OworICBkb3VibGUgZG1pbjsKKyAgZG91YmxlIGRtYXg7CisgIGRvdWJsZSBkOworICAKKyAgLy8gdmFsdWVPZihsb25nIFssc2NhbGVdKSAtLQorICAKKyAgKG5ldyBUZXN0KCJ2YWwwMDEiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKChsb25nKSgoYnl0ZSktMikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIiKTsKKyAgKG5ldyBUZXN0KCJ2YWwwMDIiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKChsb25nKSgoYnl0ZSktMSkpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJ2YWwwMDMiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKChsb25nKSgoYnl0ZSktMCkpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInZhbDAwNCIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YoKGxvbmcpKChieXRlKSsxKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgidmFsMDA1IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZigobG9uZykoKGJ5dGUpKzIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIiKTsKKyAgKG5ldyBUZXN0KCJ2YWwwMDYiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKChsb25nKSgoYnl0ZSkxMCkpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAiKTsKKyAgKG5ldyBUZXN0KCJ2YWwwMDciKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKChsb25nKSgoYnl0ZSkxMSkpLnRvU3RyaW5nKCkpLmVxdWFscygiMTEiKTsKKyAgKG5ldyBUZXN0KCJ2YWwwMDgiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGxtaW4pLnRvU3RyaW5nKCkpLmVxdWFscygiLTkyMjMzNzIwMzY4NTQ3NzU4MDgiKTsKKyAgKG5ldyBUZXN0KCJ2YWwwMDkiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGxtYXgpLnRvU3RyaW5nKCkpLmVxdWFscygiOTIyMzM3MjAzNjg1NDc3NTgwNyIpOworICAobmV3IFRlc3QoInZhbDAxMCIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YobG5lZykudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInZhbDAxMSIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YobHplcikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidmFsMDEyIikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihscG9zKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ2YWwwMTMiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGxtaW4sMCkudG9TdHJpbmcoKSkuZXF1YWxzKCItOTIyMzM3MjAzNjg1NDc3NTgwOCIpOworICAobmV3IFRlc3QoInZhbDAxNCIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YobG1heCwwKS50b1N0cmluZygpKS5lcXVhbHMoIjkyMjMzNzIwMzY4NTQ3NzU4MDciKTsKKyAgKG5ldyBUZXN0KCJ2YWwwMTUiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGxuZWcsMCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInZhbDAxNiIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YobHBvcywwKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgCisgIChuZXcgVGVzdCgidmFsMDE3IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihsemVyLDApLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInZhbDAxOCIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YobHplciwxKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoInZhbDAxOSIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YobHplciwyKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAiKTsKKyAgKG5ldyBUZXN0KCJ2YWwwMjAiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGx6ZXIsMykudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMCIpOworICAobmV3IFRlc3QoInZhbDAyMSIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YobHplciwxMCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDAwMDAwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgidmFsMDIyIikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihsbWluLDcpLnRvU3RyaW5nKCkpLmVxdWFscygiLTkyMjMzNzIwMzY4NS40Nzc1ODA4Iik7CisgIChuZXcgVGVzdCgidmFsMDIzIikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihsbWF4LDExKS50b1N0cmluZygpKS5lcXVhbHMoIjkyMjMzNzIwLjM2ODU0Nzc1ODA3Iik7CisgIAorICAKKyAgdHJ5e2NoZWNrc2NhbGU6ZG97CisgICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZigobG9uZykyMywtOCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdW1iZXJGb3JtYXRFeGNlcHRpb24gJDEyNyl7ZT0kMTI3OworICAgZmxhZz0oZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiTmVnYXRpdmUgc2NhbGU6IC04Iik7CisgIH0vKmNoZWNrc2NhbGUqLworICAobmV3IFRlc3QoInZhbDEwMCIpKS5vaz1mbGFnOworICAKKyAgLy8gdmFsdWVPZihkb3VibGUpIC0tCisgIAorICBkemVyPShkb3VibGUpMDsKKyAgZHBvcz0oZG91YmxlKTE7CisgIGRwb3M9ZHBvcy8oKGRvdWJsZSkxMCk7CisgIGRuZWc9KGRvdWJsZSktZHBvczsKKyAgKG5ldyBUZXN0KCJ2YWwyMDEiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGRuZWcpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMSIpOworICAobmV3IFRlc3QoInZhbDIwMiIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YoZHplcikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAiKTsgLy8gY2YuIGNvbnN0cnVjdG9yCisgIChuZXcgVGVzdCgidmFsMjAzIikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihkcG9zKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMSIpOworICBkcG9zNT0oZG91YmxlKTAuNUQ7CisgIGRuZWc1PShkb3VibGUpLWRwb3M1OworICAobmV3IFRlc3QoInZhbDIwNCIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YoZG5lZzUpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuNSIpOworICAobmV3IFRlc3QoInZhbDIwNSIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YoZHBvczUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41Iik7CisgIGRtaW49amF2YS5sYW5nLkRvdWJsZS5NSU5fVkFMVUU7CisgIGRtYXg9amF2YS5sYW5nLkRvdWJsZS5NQVhfVkFMVUU7CisgIChuZXcgVGVzdCgidmFsMjA2IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihkbWluKS50b1N0cmluZygpKS5lcXVhbHMoIjQuOUUtMzI0Iik7CisgIChuZXcgVGVzdCgidmFsMjA3IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihkbWF4KS50b1N0cmluZygpKS5lcXVhbHMoIjEuNzk3NjkzMTM0ODYyMzE1N0UrMzA4Iik7CisgIAorICAvLyBuYXN0aWVzCisgIGQ9KGRvdWJsZSk5OworICBkPWQvKChkb3VibGUpMTApOworICAobmV3IFRlc3QoInZhbDIxMCIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YoZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjkiKTsKKyAgZD1kLygoZG91YmxlKTEwKTsKKyAgKG5ldyBUZXN0KCJ2YWwyMTEiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGQpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wOSIpOworICBkPWQvKChkb3VibGUpMTApOworICAobmV3IFRlc3QoInZhbDIxMiIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YoZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwOTAiKTsKKyAgZD1kLygoZG91YmxlKTEwKTsKKyAgKG5ldyBUZXN0KCJ2YWwyMTMiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGQpLnRvU3RyaW5nKCkpLmVxdWFscygiOS4wRS00Iik7CisgIGQ9ZC8oKGRvdWJsZSkxMCk7CisgIChuZXcgVGVzdCgidmFsMjE0IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihkKS50b1N0cmluZygpKS5lcXVhbHMoIjguOTk5OTk5OTk5OTk5OTk5RS01Iik7CisgIGQ9ZC8oKGRvdWJsZSkxMCk7CisgIChuZXcgVGVzdCgidmFsMjE1IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihkKS50b1N0cmluZygpKS5lcXVhbHMoIjguOTk5OTk5OTk5OTk5OTk5RS02Iik7CisgIGQ9ZC8oKGRvdWJsZSkxMCk7CisgIChuZXcgVGVzdCgidmFsMjE2IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihkKS50b1N0cmluZygpKS5lcXVhbHMoIjguOTk5OTk5OTk5OTk5OTk5RS03Iik7CisgIGQ9ZC8oKGRvdWJsZSkxMCk7CisgIChuZXcgVGVzdCgidmFsMjE3IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihkKS50b1N0cmluZygpKS5lcXVhbHMoIjguOTk5OTk5OTk5OTk5OTk5RS04Iik7CisgIGQ9ZC8oKGRvdWJsZSkxMCk7CisgIChuZXcgVGVzdCgidmFsMjE4IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihkKS50b1N0cmluZygpKS5lcXVhbHMoIjguOTk5OTk5OTk5OTk5OTk4RS05Iik7CisgIAorICB0cnl7Y2hlY2twaW46ZG97CisgICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihqYXZhLmxhbmcuRG91YmxlLlBPU0lUSVZFX0lORklOSVRZKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bWJlckZvcm1hdEV4Y2VwdGlvbiAkMTI4KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2twaW4qLworICAobmV3IFRlc3QoInZhbDMwMSIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tuaW46ZG97CisgICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihqYXZhLmxhbmcuRG91YmxlLk5FR0FUSVZFX0lORklOSVRZKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bWJlckZvcm1hdEV4Y2VwdGlvbiAkMTI5KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tuaW4qLworICAobmV3IFRlc3QoInZhbDMwMiIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tuYW46ZG97CisgICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihqYXZhLmxhbmcuRG91YmxlLk5hTik7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdW1iZXJGb3JtYXRFeGNlcHRpb24gJDEzMCl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbmFuKi8KKyAgKG5ldyBUZXN0KCJ2YWwzMDMiKSkub2s9ZmxhZzsKKyAgCisgIHN1bW1hcnkoInZhbHVlT2YiKTsKKyAgcmV0dXJuO30KKworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBNYXRoQ29udGV4dH0gY2xhc3MuICovCisgCisgcHVibGljIHZvaWQgZGlhZ21hdGhjb250ZXh0KCl7CisgIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgbWNjb24xOworICBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jY29uMjsKKyAgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBtY2NvbjM7CisgIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgbWNjb240OworICBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jcm1jOworICBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jcm1kOworICBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jcm1mOworICBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jcm1oZDsKKyAgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBtY3JtaGU7CisgIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgbWNybWh1OworICBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jcm11bjsKKyAgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBtY3JtdTsKKyAgYm9vbGVhbiBmbGFnPWZhbHNlOworICBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGU9bnVsbDsKKyAgLy8gdGhlc2UgdGVzdHMgYXJlIG1vc3RseSBleGlzdGVuY2UgY2hlY2tzCisgIChuZXcgVGVzdCgibWNuMDAxIikpLm9rPShjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LkRFRkFVTFQuZ2V0RGlnaXRzKCkpPT05OworICAobmV3IFRlc3QoIm1jbjAwMiIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ERUZBVUxULmdldEZvcm0oKSk9PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuU0NJRU5USUZJQzsKKyAgKG5ldyBUZXN0KCJtY24wMDMiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuREVGQVVMVC5nZXRGb3JtKCkpIT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LkVOR0lORUVSSU5HOworICAobmV3IFRlc3QoIm1jbjAwNCIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ERUZBVUxULmdldEZvcm0oKSkhPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU47CisgIChuZXcgVGVzdCgibWNuMDA1IikpLm9rPShjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LkRFRkFVTFQuZ2V0TG9zdERpZ2l0cygpPzE6MCk9PTA7CisgIChuZXcgVGVzdCgibWNuMDA2IikpLm9rPShjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LkRFRkFVTFQuZ2V0Um91bmRpbmdNb2RlKCkpPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVA7CisgIAorICAobmV3IFRlc3QoIm1jbjAxMCIpKS5vaz1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0NFSUxJTkc+PTA7CisgIChuZXcgVGVzdCgibWNuMDExIikpLm9rPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfRE9XTj49MDsKKyAgKG5ldyBUZXN0KCJtY24wMTIiKSkub2s9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9GTE9PUj49MDsKKyAgKG5ldyBUZXN0KCJtY24wMTMiKSkub2s9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV04+PTA7CisgIChuZXcgVGVzdCgibWNuMDE0IikpLm9rPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOPj0wOworICAobmV3IFRlc3QoIm1jbjAxNSIpKS5vaz1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVA+PTA7CisgIChuZXcgVGVzdCgibWNuMDE2IikpLm9rPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVU5ORUNFU1NBUlk+PTA7CisgIChuZXcgVGVzdCgibWNuMDE3IikpLm9rPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVVA+PTA7CisgIAorICBtY2NvbjE9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoMTExKTsKKyAgKG5ldyBUZXN0KCJtY24wMjEiKSkub2s9KG1jY29uMS5nZXREaWdpdHMoKSk9PTExMTsKKyAgKG5ldyBUZXN0KCJtY24wMjIiKSkub2s9KG1jY29uMS5nZXRGb3JtKCkpPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlNDSUVOVElGSUM7CisgIChuZXcgVGVzdCgibWNuMDIzIikpLm9rPShtY2NvbjEuZ2V0TG9zdERpZ2l0cygpPzE6MCk9PTA7CisgIChuZXcgVGVzdCgibWNuMDI0IikpLm9rPShtY2NvbjEuZ2V0Um91bmRpbmdNb2RlKCkpPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVA7CisgIAorICBtY2NvbjI9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoNzgsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5FTkdJTkVFUklORyk7CisgIChuZXcgVGVzdCgibWNuMDMxIikpLm9rPShtY2NvbjIuZ2V0RGlnaXRzKCkpPT03ODsKKyAgKG5ldyBUZXN0KCJtY24wMzIiKSkub2s9KG1jY29uMi5nZXRGb3JtKCkpPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LkVOR0lORUVSSU5HOworICAobmV3IFRlc3QoIm1jbjAzMyIpKS5vaz0obWNjb24yLmdldExvc3REaWdpdHMoKT8xOjApPT0wOworICAobmV3IFRlc3QoIm1jbjAzNCIpKS5vaz0obWNjb24yLmdldFJvdW5kaW5nTW9kZSgpKT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQOworICAKKyAgbWNjb24zPW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDUsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTix0cnVlKTsKKyAgKG5ldyBUZXN0KCJtY24wNDEiKSkub2s9KG1jY29uMy5nZXREaWdpdHMoKSk9PTU7CisgIChuZXcgVGVzdCgibWNuMDQyIikpLm9rPShtY2NvbjMuZ2V0Rm9ybSgpKT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTjsKKyAgKG5ldyBUZXN0KCJtY24wNDMiKSkub2s9KG1jY29uMy5nZXRMb3N0RGlnaXRzKCk/MTowKT09MTsKKyAgKG5ldyBUZXN0KCJtY24wNDQiKSkub2s9KG1jY29uMy5nZXRSb3VuZGluZ01vZGUoKSk9PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUDsKKyAgCisgIG1jY29uND1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuU0NJRU5USUZJQyxmYWxzZSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0ZMT09SKTsKKyAgKG5ldyBUZXN0KCJtY24wNTEiKSkub2s9KG1jY29uNC5nZXREaWdpdHMoKSk9PTA7CisgIChuZXcgVGVzdCgibWNuMDUyIikpLm9rPShtY2NvbjQuZ2V0Rm9ybSgpKT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDOworICAobmV3IFRlc3QoIm1jbjA1MyIpKS5vaz0obWNjb240LmdldExvc3REaWdpdHMoKT8xOjApPT0wOworICAobmV3IFRlc3QoIm1jbjA1NCIpKS5vaz0obWNjb240LmdldFJvdW5kaW5nTW9kZSgpKT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9GTE9PUjsKKyAgCisgIChuZXcgVGVzdCgibWNuMDYxIikpLm9rPShtY2NvbjEudG9TdHJpbmcoKSkuZXF1YWxzKCJkaWdpdHM9MTExIGZvcm09U0NJRU5USUZJQyBsb3N0RGlnaXRzPTAgcm91bmRpbmdNb2RlPVJPVU5EX0hBTEZfVVAiKTsKKyAgCisgIChuZXcgVGVzdCgibWNuMDYyIikpLm9rPShtY2NvbjIudG9TdHJpbmcoKSkuZXF1YWxzKCJkaWdpdHM9NzggZm9ybT1FTkdJTkVFUklORyBsb3N0RGlnaXRzPTAgcm91bmRpbmdNb2RlPVJPVU5EX0hBTEZfVVAiKTsKKyAgCisgIChuZXcgVGVzdCgibWNuMDYzIikpLm9rPShtY2NvbjMudG9TdHJpbmcoKSkuZXF1YWxzKCJkaWdpdHM9NSBmb3JtPVBMQUlOIGxvc3REaWdpdHM9MSByb3VuZGluZ01vZGU9Uk9VTkRfSEFMRl9VUCIpOworICAKKyAgKG5ldyBUZXN0KCJtY24wNjQiKSkub2s9KG1jY29uNC50b1N0cmluZygpKS5lcXVhbHMoImRpZ2l0cz0wIGZvcm09U0NJRU5USUZJQyBsb3N0RGlnaXRzPTAgcm91bmRpbmdNb2RlPVJPVU5EX0ZMT09SIik7CisgIAorICAKKyAgLy8gY29tcGxldGUgdGVzdGluZyByb3VuZGluZyBtb2RlcyByb3VuZCB0cmlwcworICBtY3JtYz1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU4sZmFsc2UsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9DRUlMSU5HKTsKKyAgbWNybWQ9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOLGZhbHNlLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfRE9XTik7CisgIG1jcm1mPW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTixmYWxzZSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0ZMT09SKTsKKyAgbWNybWhkPW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTixmYWxzZSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRE9XTik7CisgIG1jcm1oZT1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU4sZmFsc2UsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pOworICBtY3JtaHU9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOLGZhbHNlLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCk7CisgIG1jcm11bj1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU4sZmFsc2UsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWSk7CisgIG1jcm11PW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTixmYWxzZSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VQKTsKKyAgCisgIChuZXcgVGVzdCgibWNuMDcxIikpLm9rPShtY3JtYy50b1N0cmluZygpKS5lcXVhbHMoImRpZ2l0cz0wIGZvcm09UExBSU4gbG9zdERpZ2l0cz0wIHJvdW5kaW5nTW9kZT1ST1VORF9DRUlMSU5HIik7CisgIAorICAobmV3IFRlc3QoIm1jbjA3MiIpKS5vaz0obWNybWQudG9TdHJpbmcoKSkuZXF1YWxzKCJkaWdpdHM9MCBmb3JtPVBMQUlOIGxvc3REaWdpdHM9MCByb3VuZGluZ01vZGU9Uk9VTkRfRE9XTiIpOworICAKKyAgKG5ldyBUZXN0KCJtY24wNzMiKSkub2s9KG1jcm1mLnRvU3RyaW5nKCkpLmVxdWFscygiZGlnaXRzPTAgZm9ybT1QTEFJTiBsb3N0RGlnaXRzPTAgcm91bmRpbmdNb2RlPVJPVU5EX0ZMT09SIik7CisgIAorICAobmV3IFRlc3QoIm1jbjA3NCIpKS5vaz0obWNybWhkLnRvU3RyaW5nKCkpLmVxdWFscygiZGlnaXRzPTAgZm9ybT1QTEFJTiBsb3N0RGlnaXRzPTAgcm91bmRpbmdNb2RlPVJPVU5EX0hBTEZfRE9XTiIpOworICAKKyAgKG5ldyBUZXN0KCJtY24wNzUiKSkub2s9KG1jcm1oZS50b1N0cmluZygpKS5lcXVhbHMoImRpZ2l0cz0wIGZvcm09UExBSU4gbG9zdERpZ2l0cz0wIHJvdW5kaW5nTW9kZT1ST1VORF9IQUxGX0VWRU4iKTsKKyAgCisgIChuZXcgVGVzdCgibWNuMDc2IikpLm9rPShtY3JtaHUudG9TdHJpbmcoKSkuZXF1YWxzKCJkaWdpdHM9MCBmb3JtPVBMQUlOIGxvc3REaWdpdHM9MCByb3VuZGluZ01vZGU9Uk9VTkRfSEFMRl9VUCIpOworICAKKyAgKG5ldyBUZXN0KCJtY24wNzciKSkub2s9KG1jcm11bi50b1N0cmluZygpKS5lcXVhbHMoImRpZ2l0cz0wIGZvcm09UExBSU4gbG9zdERpZ2l0cz0wIHJvdW5kaW5nTW9kZT1ST1VORF9VTk5FQ0VTU0FSWSIpOworICAKKyAgKG5ldyBUZXN0KCJtY24wNzgiKSkub2s9KG1jcm11LnRvU3RyaW5nKCkpLmVxdWFscygiZGlnaXRzPTAgZm9ybT1QTEFJTiBsb3N0RGlnaXRzPTAgcm91bmRpbmdNb2RlPVJPVU5EX1VQIik7CisgIAorICAKKyAgLy8gW2dldCBtZXRob2RzIHRlc3RlZCBhbHJlYWR5XQorICAKKyAgLy8gZXJyb3JzLi4uCisgIAorICB0cnl7Y2hlY2tkaWc6ZG97CisgICBuZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgtMSk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gJDEzMSl7ZT0kMTMxOworICAgZmxhZz0oZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiRGlnaXRzIHRvbyBzbWFsbDogLTEiKTsKKyAgfS8qY2hlY2tkaWcqLworICAobmV3IFRlc3QoIm1jbjEwMSIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tkaWdiaWc6ZG97CisgICBuZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgxMDAwMDAwMDAwKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiAkMTMyKXtlPSQxMzI7CisgICBmbGFnPShlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJEaWdpdHMgdG9vIGxhcmdlOiAxMDAwMDAwMDAwIik7CisgIH0vKmNoZWNrZGlnYmlnKi8KKyAgKG5ldyBUZXN0KCJtY24xMDIiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja2Zvcm06ZG97CisgICBuZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgwLDUpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uICQxMzMpe2U9JDEzMzsKKyAgIGZsYWc9KGUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIkJhZCBmb3JtIHZhbHVlOiA1Iik7CisgIH0vKmNoZWNrZm9ybSovCisgIChuZXcgVGVzdCgibWNuMTExIikpLm9rPWZsYWc7CisgIHRyeXtjaGVja2Zvcm1uZWc6ZG97CisgICBuZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgwLC0xKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiAkMTM0KXtlPSQxMzQ7CisgICBmbGFnPShlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJCYWQgZm9ybSB2YWx1ZTogLTEiKTsKKyAgfS8qY2hlY2tmb3JtbmVnKi8KKyAgKG5ldyBUZXN0KCJtY24xMTIiKSkub2s9ZmxhZzsKKyAgCisgIC8vIFtsb3N0RGlnaXRzIGNhbm5vdCBiZSBpbnZhbGlkXQorICAKKyAgdHJ5e2NoZWNrcm91bmQ6ZG97CisgICBuZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU4sZmFsc2UsMTIpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uICQxMzUpe2U9JDEzNTsKKyAgIGZsYWc9KGUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIkJhZCByb3VuZGluZ01vZGUgdmFsdWU6IDEyIik7CisgIH0vKmNoZWNrcm91bmQqLworICAobmV3IFRlc3QoIm1jbjEyMSIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tyb3VuZG5lZzpkb3sKKyAgIG5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTixmYWxzZSwtMSk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gJDEzNil7ZT0kMTM2OworICAgZmxhZz0oZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiQmFkIHJvdW5kaW5nTW9kZSB2YWx1ZTogLTEiKTsKKyAgfS8qY2hlY2tyb3VuZG5lZyovCisgIChuZXcgVGVzdCgibWNuMTIyIikpLm9rPWZsYWc7CisgIAorICBzdW1tYXJ5KCJNYXRoQ29udGV4dCIpOworICByZXR1cm47fQorCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCBnZW5lcmFsIGFyaXRobWV0aWMgKGJhc2Ugb3BlcmF0b3JzKS4KKyAgKiA8cD5Vbmxpa2UgdGhlIHNwZWNpZmljIG1ldGhvZCB0ZXN0cywgdGhlc2UgdGVzdHMgd2VyZSByYW5kb21seQorICAqIGdlbmVyYXRlZCBieSBhbiBJQk0gT2JqZWN0IFJleHggcHJvY2VkdXJlLCB0aGVuIG1hbnVhbGx5IGNvcnJlY3RlZAorICAqIGZvciBrbm93biBkaWZmZXJlbmNlcyBmcm9tIEFOU0kgWDMtMjc0LiAgVGhlc2UgZGlmZmVyZW5jZXMgYXJlOgorICAqIDxvbD4KKyAgKiA8bGk+dGhlIHRyaWdnZXIgcG9pbnQgaW4gZXhwb25lbnRpYWwgbm90YXRpb24gaXMgZml4ZWQgaW4gQU5TSQorICAqICAgICBYMy0yNzQgYnV0IHZhcmllcyB3aXRoIERJR0lUUyBpbiBDbGFzc2ljIGFuZCBPYmplY3QgUmV4eAorICAqIDxsaT5zb21lIHRyYWlsaW5nIHplcm9zIHdlcmUgbWlzc2luZyAoZS5nLiwgMS4zICsgMUUtNjAgc2hvdWxkIHNob3cKKyAgKiAgICAgc2V2ZW4gdHJhaWxpbmcgemVyb3MpCisgICogPGxpPnRoZSBwb3dlciBvcGVyYXRvciBpcyBsZXNzIGFjY3VyYXRlIGluIE9iamVjdCBSZXh4CisgICogPGxpPkFOU0kgWDMtMjc0IFtlcnJhdGEgMTk5OV0gcm91bmRzIGlucHV0IG51bWJlcnMgdG8gRElHSVRTIChyYXRoZXIKKyAgKiAgICAgdGhhbiB0cnVuY2F0aW5nIHRvIERJR0lUUysxKS4KKyAgKiA8L29sPgorICAqLworIAorIHB1YmxpYyB2b2lkIGRpYWdtYXRoKCl7CisgIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgZGVmOworICBkZWY9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ERUZBVUxUOworICBtYXRodGVzdCgxLGRlZiwiLTkzNzUyODQuNDIiLCI1NTE2Ljk5ODMyRSsyNzI3Njk4NCIsIjUuNTE2OTk4MzJFKzI3Mjc2OTg3IiwiLTUuNTE2OTk4MzJFKzI3Mjc2OTg3IiwiLTUuMTcyMzQyODRFKzI3Mjc2OTk0IiwiLTEuNjk5MzQ1MTZFLTI3Mjc2OTgxIiwiMCIsIi05Mzc1Mjg0LjQyIiwiNi43OTA1Nzc1MkUrNDEiKTsKKyAgbWF0aHRlc3QoMixkZWYsIi00MTAuODMyNzEwIiwiOTkuMzU4ODI0M0UtNTAyNzQwODYyIiwiLTQxMC44MzI3MTAiLCItNDEwLjgzMjcxMCIsIi00LjA4MTk4NTUwRS01MDI3NDA4NTgiLCItNC4xMzQ4Mzg2OEUrNTAyNzQwODYyIiwiIiwiIiwiMS4zNjk3Nzc4NkUrMjYiKTsKKyAgbWF0aHRlc3QoMyxkZWYsIjgwMDI1LjIzNDAiLCItOC4wMzA5NzU4MSIsIjgwMDE3LjIwMzAiLCI4MDAzMy4yNjUwIiwiLTY0MjY4MC43MTgiLCItOTk2NC41NzE2NyIsIi05OTY0IiwiNC41OTEwMjkxNiIsIjUuOTQ1NDQ1MTdFLTQwIik7CisgIG1hdGh0ZXN0KDQsZGVmLCI4MTA1MjAyMC4yIiwiLTQ2NDUyNTQ5NSIsIi0zODM0NzM0NzUiLCI1NDU1Nzc1MTUiLCItMy43NjUwNzI5OEUrMTYiLCItMC4xNzQ0ODM0NyIsIjAiLCI4MTA1MjAyMC4yIiwiIik7CisgIG1hdGh0ZXN0KDUsZGVmLCI3MTUuMDY5Mjk0RS0yNjkyMzE1MSIsIjg1LjQ0MDQxMjhFKzc5NjM4ODU1NyIsIjguNTQ0MDQxMjhFKzc5NjM4ODU1OCIsIi04LjU0NDA0MTI4RSs3OTYzODg1NTgiLCI2LjEwOTU4MTU3RSs3Njk0NjU0MTAiLCI4LjM2OTIxNjI4RS04MjMzMTE3MDgiLCIwIiwiNy4xNTA2OTI5NEUtMjY5MjMxNDkiLCI0Ljg4ODAyMjEzRS0yNDIzMDgzMzQiKTsKKyAgbWF0aHRlc3QoNixkZWYsIi0yMTk3MTU3NS4wRSszMTQ1NDQ0MSIsIi03MDk0NDk2MC4zRSsxMTEyMzgyMjEiLCItNy4wOTQ0OTYwM0UrMTExMjM4MjI4IiwiNy4wOTQ0OTYwM0UrMTExMjM4MjI4IiwiMS41NTg3NzI1MkUrMTQyNjkyNjc3IiwiMy4wOTY5ODg4NEUtNzk3ODM3ODEiLCIwIiwiLTIuMTk3MTU3NTBFKzMxNDU0NDQ4IiwiLTQuMDQ1NDk1MDJFLTIyMDE4MTEzOSIpOworICBtYXRodGVzdCg3LGRlZiwiNjgyLjI1MzE2IiwiNTQ0NzAxODUuNiIsIjU0NDcwODY3LjkiLCItNTQ0Njk1MDMuNCIsIjMuNzE2MjQ1NjNFKzEwIiwiMC4wMDAwMTI1MjUyNTg2IiwiMCIsIjY4Mi4yNTMxNiIsIjMuNDg1Nzg2OTlFKzE1NDM2NTU0MSIpOworICBtYXRodGVzdCg4LGRlZiwiLTI1NzU4Njc1Ny4iLCIyMDgyODg4LjcxIiwiLTI1NTUwMzg2OCIsIi0yNTk2Njk2NDYiLCItNS4zNjUyNDU0OEUrMTQiLCItMTIzLjY2ODAzNiIsIi0xMjMiLCItMTM5MTQ0NS42NyIsIi0xLjI2ODc5NTE1RSsxNzUxOTAyMCIpOworICBtYXRodGVzdCg5LGRlZiwiMzE5NTc3NTQwLkUrMjQyNTk5NzYxIiwiNjAuNzEyNDU2MSIsIjMuMTk1Nzc1NDBFKzI0MjU5OTc2OSIsIjMuMTk1Nzc1NDBFKzI0MjU5OTc2OSIsIjEuOTQwMjMzNzRFKzI0MjU5OTc3MSIsIjUuMjYzNzg4NjlFKzI0MjU5OTc2NyIsIiIsIiIsIiIpOworICBtYXRodGVzdCgxMCxkZWYsIi0xMzc2OTk3Ny4wIiwiMjQzNzEuMzM4MSIsIi0xMzc0NTYwNS43IiwiLTEzNzk0MzQ4LjMiLCItMy4zNTU5Mjc2NUUrMTEiLCItNTY1LjAwNzAxNSIsIi01NjUiLCItMTcwLjk3MzUiLCItOC43MzczNDAwMUUrMTczOTgyIik7CisgIG1hdGh0ZXN0KDExLGRlZiwiLTQ3NS40MzQ5NzJFLTcyNTQ2NDMxMSIsIi0zLjIyMjE0MDY2RS04NjU0NzY4MzYiLCItNC43NTQzNDk3MkUtNzI1NDY0MzA5IiwiLTQuNzU0MzQ5NzJFLTcyNTQ2NDMwOSIsIiIsIjEuNDc1NTI1MTlFKzE0MDAxMjUyNyIsIiIsIiIsIiIpOworICBtYXRodGVzdCgxMixkZWYsIjg0Mi4wMTI1MCIsIjE5NzE5OTg5MyIsIjE5NzIwMDczNSIsIi0xOTcxOTkwNTEiLCIxLjY2MDQ0Nzc1RSsxMSIsIjAuMDAwMDA0MjY5ODQyNTgiLCIwIiwiODQyLjAxMjUwIiwiNy4wMDY3NDE2NEUrNTc2ODcyNTAyIik7CisgIG1hdGh0ZXN0KDEzLGRlZiwiNTcyLjE3MzEwM0UrMjgwMTI4NDI4IiwiLTcxNDAuMTk0MjgiLCI1LjcyMTczMTAzRSsyODAxMjg0MzAiLCI1LjcyMTczMTAzRSsyODAxMjg0MzAiLCItNC4wODU0MjcxMkUrMjgwMTI4NDM0IiwiLTguMDEzNDEwODVFKzI4MDEyODQyNiIsIiIsIiIsIiIpOworICBtYXRodGVzdCgxNCxkZWYsIjY3NDIzNS45NTRFKzQ3NjEzNTI5MSIsIjk2ODQuODIyNDUiLCI2Ljc0MjM1OTU0RSs0NzYxMzUyOTYiLCI2Ljc0MjM1OTU0RSs0NzYxMzUyOTYiLCI2LjUyOTg1NTUwRSs0NzYxMzUzMDAiLCI2Ljk2MTc3OTE5RSs0NzYxMzUyOTIiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMTUsZGVmLCItMzYwNTU3LjkyMUUrNDM3MTE2NTE0IiwiOTMwNDI4ODUwIiwiLTMuNjA1NTc5MjFFKzQzNzExNjUxOSIsIi0zLjYwNTU3OTIxRSs0MzcxMTY1MTkiLCItMy4zNTQ3MzQ5MkUrNDM3MTE2NTI4IiwiLTMuODc1MTc5OTNFKzQzNzExNjUxMCIsIiIsIiIsIiIpOworICBtYXRodGVzdCgxNixkZWYsIjk1NzE2NTkxOEUtMzk0NTk1NzA1IiwiMTY3Ni41OTA3M0UtODI5NjE4OTQ0IiwiOS41NzE2NTkxOEUtMzk0NTk1Njk3IiwiOS41NzE2NTkxOEUtMzk0NTk1Njk3IiwiIiwiNS43MDkwMDE2MUUrNDM1MDIzMjQ0IiwiIiwiIiwiOS4xNjE2NjU5NUUtNzg5MTkxMzkzIik7CisgIG1hdGh0ZXN0KDE3LGRlZiwiLTI2MTA4NjQuNDAiLCIzMTI0NTkxMi43IiwiMjg2MzUwNDguMyIsIi0zMzg1Njc3Ny4xIiwiLTguMTU3ODg0MTFFKzEzIiwiLTAuMDgzNTU4NTg5NyIsIjAiLCItMjYxMDg2NC40MCIsIi0zLjEyMDA4OTA1RSsyMDA0OTgyODQiKTsKKyAgbWF0aHRlc3QoMTgsZGVmLCI5NTkuNTQ4NDYxIiwiOTguOTk0NTc3RSs3NzY3NzU0MjYiLCI5Ljg5OTQ1NzcwRSs3NzY3NzU0MjciLCItOS44OTk0NTc3MEUrNzc2Nzc1NDI3IiwiOS40OTkwMDk0MEUrNzc2Nzc1NDMwIiwiOS42OTI5Mzk2NUUtNzc2Nzc1NDI2IiwiMCIsIjk1OS41NDg0NjEiLCI2LjYxNzEyMTg1RSsyOSIpOworICBtYXRodGVzdCgxOSxkZWYsIi00MTA4NS4wMjY4IiwiMzExNTQ3Ny42MSIsIjMwNzQzOTIuNTgiLCItMzE1NjU2Mi42NCIsIi0xLjI3OTk5NDgxRSsxMSIsIi0wLjAxMzE4NzM5MjciLCIwIiwiLTQxMDg1LjAyNjgiLCI0LjczODQ0MTczRSsxNDM3MzgyOSIpOworICBtYXRodGVzdCgyMCxkZWYsIi03MjM0MjAyODUuIiwiMjY4MTY2MC4zNSIsIi03MjA3Mzg2MjUiLCItNzI2MTAxOTQ1IiwiLTEuOTM5OTY3NDlFKzE1IiwiLTI2OS43NjU4MTMiLCItMjY5IiwiLTIwNTM2NTAuODUiLCI0LjE0MzI0MTEzRSsyMzc1Nzg3MyIpOworICBtYXRodGVzdCgyMSxkZWYsIjYzNTQyMDE4LjBFLTgxNzczMjIzMCIsIi04ODM2MjQzLjIyIiwiLTg4MzYyNDMuMjIiLCI4ODM2MjQzLjIyIiwiLTUuNjE0NzI3MjZFLTgxNzczMjIxNiIsIi03LjE5MTA2NzExRS04MTc3MzIyMzAiLCIwIiwiNi4zNTQyMDE4MEUtODE3NzMyMjIzIiwiIik7CisgIG1hdGh0ZXN0KDIyLGRlZiwiLTk2MDUxLjcxMDgiLCItMjkxMjAxLjk1NSIsIi0zODcyNTMuNjY2IiwiMTk1MTUwLjI0NCIsIjIuNzk3MDQ0NjBFKzEwIiwiMC4zMjk4NDU2OTQiLCIwIiwiLTk2MDUxLjcxMDgiLCIzLjUzNjE3MTUzRS0xNDUwOTE2Iik7CisgIG1hdGh0ZXN0KDIzLGRlZiwiMTA4NDkwLjg1MyIsIjkxNjg1OTk2LjUiLCI5MTc5NDQ4Ny40IiwiLTkxNTc3NTA1LjciLCI5Ljk0NzA5MTk3RSsxMiIsIjAuMDAxMTgzMjg3MDYiLCIwIiwiMTA4NDkwLjg1MyIsIjYuOTgxMjQyNjVFKzQ2MTY3NTAzOCIpOworICBtYXRodGVzdCgyNCxkZWYsIi0yNzQ4OS4xNzM1IiwiLTk4MzU4MzUuNEUtNTA2NDExNjQ5IiwiLTI3NDg5LjE3MzUiLCItMjc0ODkuMTczNSIsIjIuNzAzNzg5ODZFLTUwNjQxMTYzOCIsIjIuNzk0Nzk4MDRFKzUwNjQxMTY0NiIsIiIsIiIsIjQuMDU4NjY0NzJFLTQ1Iik7CisgIG1hdGh0ZXN0KDI1LGRlZiwiLTg5MjIwNDA2LjYiLCI5OTMzOTEuMDA4RS02MTEwNDExNzUiLCItODkyMjA0MDYuNiIsIi04OTIyMDQwNi42IiwiLTguODYzMDc0OTZFLTYxMTA0MTE2MiIsIi04Ljk4MTM5ODY1RSs2MTEwNDExNzYiLCIiLCIiLCIzLjE5NjI1OTEzRSs3OSIpOworICBtYXRodGVzdCgyNixkZWYsIjQuNzU1MDIwMjAiLCItMTcwODkxNDQuOSIsIi0xNzA4OTE0MC4yIiwiMTcwODkxNDkuNyIsIi04MTI1OTIyOS4yIiwiLTIuNzgyNDc5ODlFLTciLCIwIiwiNC43NTUwMjAyMCIsIjEuMDYzMDE5MUUtMTE1NzE5NTUiKTsKKyAgbWF0aHRlc3QoMjcsZGVmLCI2ODAyNzkxNi4yIiwiLTc5Njg4My44MzkiLCI2NzIzMTAzMi40IiwiNjg4MjQ4MDAuMCIsIi01LjQyMTAzNDcwRSsxMyIsIi04NS4zNjc0MTg1IiwiLTg1IiwiMjkyNzg5Ljg4NSIsIjguMjk0MTUzNzRFLTYyNDE3NDQiKTsKKyAgbWF0aHRlc3QoMjgsZGVmLCItOC4wMTk2OTQzOUUrNzg4NjA1NDc4IiwiOTIxNTQxNTYuMCIsIi04LjAxOTY5NDM5RSs3ODg2MDU0NzgiLCItOC4wMTk2OTQzOUUrNzg4NjA1NDc4IiwiLTcuMzkwNDgxNjhFKzc4ODYwNTQ4NiIsIi04LjcwMjQ3NzE3RSs3ODg2MDU0NzAiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMjksZGVmLCItODAxMi45ODM0MSIsIjk2MTg4Ljg2NTEiLCI4ODE3NS44ODE3IiwiLTEwNDIwMS44NDkiLCItNzcwNzU5NzgwIiwiLTAuMDgzMzA0Njg4MSIsIjAiLCItODAxMi45ODM0MSIsIi0xLjE2MDEwMTU2RSszNzU1MDIiKTsKKyAgbWF0aHRlc3QoMzAsZGVmLCIyMTc2MTQ3NkUrNTkyMzMwNjc3IiwiLTkuNzA3NDQ1MDYiLCIyLjE3NjE0NzYwRSs1OTIzMzA2ODQiLCIyLjE3NjE0NzYwRSs1OTIzMzA2ODQiLCItMi4xMTI0ODMzM0UrNTkyMzMwNjg1IiwiLTIuMjQxNzMwNTNFKzU5MjMzMDY4MyIsIiIsIiIsIiIpOworICBtYXRodGVzdCgzMSxkZWYsIi05ODQwNzc4LjUxIiwiLTE3OTA3LjIxOSIsIi05ODU4Njg1LjczIiwiLTk4MjI4NzEuMjkiLCIxLjc2MjIwOTc2RSsxMSIsIjU0OS41NDI1MzQiLCI1NDkiLCItOTcxNS4yNzkiLCItNi42Mjk5NzQzN0UtMTI1MjI1Iik7CisgIG1hdGh0ZXN0KDMyLGRlZiwiLTQuMTA5NzYxNCIsIi04MTkuMjI1Nzc2RS0xNDUyMTQ3NTEiLCItNC4xMDk3NjE0MCIsIi00LjEwOTc2MTQwIiwiMy4zNjY4MjI0N0UtMTQ1MjE0NzQ4IiwiNS4wMTY2NDA3NEUrMTQ1MjE0NzQ4IiwiIiwiIiwiMC4wMDAwMTIyODc2MDE4Iik7CisgIG1hdGh0ZXN0KDMzLGRlZiwiLTQ0OC44ODA5ODUiLCItMzk0LjA4NzM3NEUtNDQyNTExNDM1IiwiLTQ0OC44ODA5ODUiLCItNDQ4Ljg4MDk4NSIsIjEuNzY4OTgzMjlFLTQ0MjUxMTQzMCIsIjEuMTM5MDM5MjVFKzQ0MjUxMTQzNSIsIiIsIiIsIjIuNDYzMDYwOTlFLTExIik7CisgIG1hdGh0ZXN0KDM0LGRlZiwiNzc5LjQ0NTMwNEUrODgyNjg4NTQ0IiwiLTc5Nzg2ODUxOSIsIjcuNzk0NDUzMDRFKzg4MjY4ODU0NiIsIjcuNzk0NDUzMDRFKzg4MjY4ODU0NiIsIi02LjIxODk0ODcwRSs4ODI2ODg1NTUiLCItOS43NjkwOTQ2RSs4ODI2ODg1MzciLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMzUsZGVmLCI3OTk5OTU0NzciLCItNi4yMzY3NTIwOEUrMTU2MzA5NDQwIiwiLTYuMjM2NzUyMDhFKzE1NjMwOTQ0MCIsIjYuMjM2NzUyMDhFKzE1NjMwOTQ0MCIsIi00Ljk4OTM3MzQ2RSsxNTYzMDk0NDkiLCItMS4yODI3MTE2OUUtMTU2MzA5NDMyIiwiMCIsIjc5OTk5NTQ3NyIsIjMuODE0ODI2NjdFLTU0Iik7CisgIG1hdGh0ZXN0KDM2LGRlZiwiLTUxOTMyLjgxNzAiLCI1OTE4NDAyNzVFLTI3ODQ4MDI4OSIsIi01MTkzMi44MTcwIiwiLTUxOTMyLjgxNzAiLCItMy4wNzM1OTMyN0UtMjc4NDgwMjc2IiwiLTguNzc0ODAyOEUrMjc4NDgwMjg0IiwiIiwiIiwiMS45NjE3ODQ0M0UrMjgiKTsKKyAgbWF0aHRlc3QoMzcsZGVmLCI3MC4zNTUyMzkyIiwiLTQyMjg2NTYuNzMiLCItNDIyODU4Ni4zOCIsIjQyMjg3MjcuMDkiLCItMjk3NTA4MTU2IiwiLTAuMDAwMDE2NjM3NzI3NyIsIjAiLCI3MC4zNTUyMzkyIiwiOS4xNDc0MjM4MkUtNzgxMTU4NCIpOworICBtYXRodGVzdCgzOCxkZWYsIjE1ODgzNTkuMzQiLCItMTIyMzI3OTkuMiIsIi0xMDY0NDQzOS45IiwiMTM4MjExNTguNSIsIi0xLjk0MzAwODA5RSsxMyIsIi0wLjEyOTg0NDMwNyIsIjAiLCIxNTg4MzU5LjM0IiwiMS41NjkxMDA4NkUtNzU4NTQ5NjAiKTsKKyAgbWF0aHRlc3QoMzksZGVmLCIyODQyLjE2MjA2IiwiLTMuMjMyMzQzNDUiLCIyODM4LjkyOTcyIiwiMjg0NS4zOTQ0MCIsIi05MTg2Ljg0MzkyIiwiLTg3OS4yODgzODgiLCItODc5IiwiMC45MzIxNjc0NSIsIjQuMzU1NjU1MTRFLTExIik7CisgIG1hdGh0ZXN0KDQwLGRlZiwiMjk5NjAuMjMwNSIsIjQ1LjI3MzU3NDdFLTk1MjA1NDc1IiwiMjk5NjAuMjMwNSIsIjI5OTYwLjIzMDUiLCIxLjM1NjQwNjczRS05NTIwNTQ2OSIsIjYuNjE3NTk3NzNFKzk1MjA1NDc3IiwiIiwiIiwiMi40MTM5MzZFKzIyIik7CisgIG1hdGh0ZXN0KDQxLGRlZiwiMjkxNjU2NS43NyIsIjExNTE5MzUuNDNFLTc4NzExODcyNCIsIjI5MTY1NjUuNzciLCIyOTE2NTY1Ljc3IiwiMy4zNTk2OTU0NEUtNzg3MTE4NzEyIiwiMi41MzE4ODMwM0UrNzg3MTE4NzI0IiwiIiwiIiwiMjkxNjU2NS43NyIpOworICBtYXRodGVzdCg0MixkZWYsIi01MjcyMzAxMi45RS05NjcxNDM3ODciLCI3OS40MDg4MjM3IiwiNzkuNDA4ODIzNyIsIi03OS40MDg4MjM3IiwiLTQuMTg2NjcyNDRFLTk2NzE0Mzc3OCIsIi02LjYzOTQ0MDExRS05NjcxNDM3ODIiLCIwIiwiLTUuMjcyMzAxMjlFLTk2NzE0Mzc4MCIsIiIpOworICBtYXRodGVzdCg0MyxkZWYsIi0xNjc0NzM0NjUiLCI3OTM2NDYuNTk3IiwiLTE2NjY3OTgxOSIsIi0xNjgyNjcxMTIiLCItMS4zMjkxNDc0NkUrMTQiLCItMjExLjAxNzY4MiIsIi0yMTEiLCItMTQwMzMuMDMzIiwiLTEuMTkwNTM3ODlFKzY1MjY5MTAiKTsKKyAgbWF0aHRlc3QoNDQsZGVmLCItMzE3NjkwNzEuMCIsIjEzMy40MzYwIiwiLTMxNzY4OTM3LjYiLCItMzE3NjkyMDQuNCIsIi00LjIzOTEzNzc2RSs5IiwiLTIzODA4NC43MDciLCItMjM4MDg0IiwiLTk0LjM3NjAiLCItNS44NDI1MjQzMkUrOTk3Iik7CisgIG1hdGh0ZXN0KDQ1LGRlZiwiNDU5NjAuNjM4MyIsIi05MzM1Mi43NDY4IiwiLTQ3MzkyLjEwODUiLCIxMzkzMTMuMzg1IiwiLTQuMjkwNTUxODNFKzkiLCItMC40OTIzMzMwMDQiLCIwIiwiNDU5NjAuNjM4MyIsIjEuODgzMzUzMjNFLTQzNTI0OCIpOworICBtYXRodGVzdCg0NixkZWYsIjYwNi4xNzU2NDgiLCI1LjI4NTI4NDU4RS05ODE5ODM2MjAiLCI2MDYuMTc1NjQ4IiwiNjA2LjE3NTY0OCIsIjMuMjAzODEwODFFLTk4MTk4MzYxNyIsIjEuMTQ2OTEyMDNFKzk4MTk4MzYyMiIsIiIsIiIsIjguMTg0NTA1MTZFKzEzIik7CisgIG1hdGh0ZXN0KDQ3LGRlZiwiMTcxNTc4LjYxN0UrNjQzMDA2MTEwIiwiLTQwNzc3NC4yOTMiLCIxLjcxNTc4NjE3RSs2NDMwMDYxMTUiLCIxLjcxNTc4NjE3RSs2NDMwMDYxMTUiLCItNi45OTY1MzQ5MkUrNjQzMDA2MTIwIiwiLTQuMjA3Njg1OTdFKzY0MzAwNjEwOSIsIiIsIiIsIiIpOworICBtYXRodGVzdCg0OCxkZWYsIi02ODIyODYzMzIuIiwiLTQ2NC44NzE2OTkiLCItNjgyMjg2Nzk3IiwiLTY4MjI4NTg2NyIsIjMuMTcxNzU2MDZFKzExIiwiMTQ2NzY4Ny4zOSIsIjE0Njc2ODciLCItMTgyLjcwOTc4NyIsIi0xLjYwNTA4NDNFLTQxMDgiKTsKKyAgbWF0aHRlc3QoNDksZGVmLCI0OTIwODguNDI4IiwiNjUzLjcyMTcwIiwiNDkyNzQyLjE1MCIsIjQ5MTQzNC43MDYiLCIzMjE2ODg4ODQiLCI3NTIuNzQ5MTEiLCI3NTIiLCI0ODkuNzA5NjAiLCIzLjk0NjU4NTk2RSszNzIyIik7CisgIG1hdGh0ZXN0KDUwLGRlZiwiNzQzMDM3ODIuNSIsIjExNDEuNjgwNTgiLCI3NDMwNDkyNC4yIiwiNzQzMDI2NDAuOCIsIjguNDgzMTE4NTVFKzEwIiwiNjUwODIuODEyIiwiNjUwODIiLCI5MjYuOTkyNDQiLCI0Ljk0ODQ5ODY5RSs4OTg4Iik7CisgIG1hdGh0ZXN0KDUxLGRlZiwiNzQuNzc5NDA4NEUrMTE5Mzc1MzI5IiwiLTM0Nzk5MzU1LjYiLCI3LjQ3Nzk0MDg0RSsxMTkzNzUzMzAiLCI3LjQ3Nzk0MDg0RSsxMTkzNzUzMzAiLCItMi42MDIyNzUyMkUrMTE5Mzc1MzM4IiwiLTIuMTQ4ODczMzdFKzExOTM3NTMyMyIsIiIsIiIsIiIpOworICBtYXRodGVzdCg1MixkZWYsIi05NDMyLjA4MzY5IiwiMzM3MzUuNTA1OCIsIjI0MzAzLjQyMjEiLCItNDMxNjcuNTg5NSIsIi0zMTgxOTYxMTQiLCItMC4yNzk1ODkyMTgiLCIwIiwiLTk0MzIuMDgzNjkiLCIyLjMwOTU2N0UrMTM0MDg3Iik7CisgIG1hdGh0ZXN0KDUzLGRlZiwiNDI0OTE5OC43OEUtMTEyNDMzMTU1IiwiNDE4NjczMDUxLiIsIjQxODY3MzA1MSIsIi00MTg2NzMwNTEiLCIxLjc3OTAyNTAyRS0xMTI0MzMxNDAiLCIxLjAxNDkyMDU0RS0xMTI0MzMxNTciLCIwIiwiNC4yNDkxOTg3OEUtMTEyNDMzMTQ5IiwiIik7CisgIG1hdGh0ZXN0KDU0LGRlZiwiLTI5NjA5MzMuMDIiLCItMjA3OTMzLjM4IiwiLTMxNjg4NjYuNDAiLCItMjc1Mjk5OS42NCIsIjYuMTU2NzY4MTFFKzExIiwiMTQuMjM5ODE1OCIsIjE0IiwiLTQ5ODY1LjcwIiwiLTIuNzU2ODAzOTdFLTEzNDU2MjQiKTsKKyAgbWF0aHRlc3QoNTUsZGVmLCIyOTMxNy43NTE5RSs5NDU2MDAwMzUiLCIxLjQzNTU1NzUwIiwiMi45MzE3NzUxOUUrOTQ1NjAwMDM5IiwiMi45MzE3NzUxOUUrOTQ1NjAwMDM5IiwiNC4yMDg3MzE4NkUrOTQ1NjAwMDM5IiwiMi4wNDIyNTU0OUUrOTQ1NjAwMDM5IiwiIiwiIiwiMi45MzE3NzUxOUUrOTQ1NjAwMDM5Iik7CisgIG1hdGh0ZXN0KDU2LGRlZiwiLTUxLjE2OTM3NzAiLCItNjM4MDU1LjQxNCIsIi02MzgxMDYuNTgzIiwiNjM4MDA0LjI0NSIsIjMyNjQ4ODk4LjAiLCIwLjAwMDA4MDE5NTgxOTgiLCIwIiwiLTUxLjE2OTM3NzAiLCItMy40ODI2NjA3NUUtMTA5MDQ0MyIpOworICBtYXRodGVzdCg1NyxkZWYsIi03NTYzNDMwNTUuIiwiLTY4LjkyNDgzNDRFKzIxNzEwMDk3NSIsIi02Ljg5MjQ4MzQ0RSsyMTcxMDA5NzYiLCI2Ljg5MjQ4MzQ0RSsyMTcxMDA5NzYiLCI1LjIxMzA4MTk4RSsyMTcxMDA5ODUiLCIxLjA5NzM0NDc1RS0yMTcxMDA5NjgiLCIwIiwiLTc1NjM0MzA1NSIsIi03LjA2MjY1ODk3RS02MyIpOworICBtYXRodGVzdCg1OCxkZWYsIjI1MzguODA0MDZFKzY5NDE4NTE5NyIsIi0zMzg2NDk5LjY1IiwiMi41Mzg4MDQwNkUrNjk0MTg1MjAwIiwiMi41Mzg4MDQwNkUrNjk0MTg1MjAwIiwiLTguNTk3NjU5MDZFKzY5NDE4NTIwNiIsIi03LjQ5NjgzODM5RSs2OTQxODUxOTMiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoNTksZGVmLCItNTQzNDQuMDY3MiIsIi04MDg2LjQ1MjM1IiwiLTYyNDMwLjUxOTYiLCItNDYyNTcuNjE0OSIsIjQzOTQ1MDcxMCIsIjYuNzIwMzg0MjciLCI2IiwiLTU4MjUuMzUzMTAiLCIzLjYyOTE2ODYxRS0zODI4OSIpOworICBtYXRodGVzdCg2MCxkZWYsIjMuMzE2MDAwNTQiLCIyMTc0ODE2NDgiLCIyMTc0ODE2NTEiLCItMjE3NDgxNjQ1IiwiNzIxMTY5MjYyIiwiMS41MjQ3MjY2RS04IiwiMCIsIjMuMzE2MDAwNTQiLCIzLjczMTM0OTY5RSsxMTMyMjQxMTkiKTsKKyAgbWF0aHRlc3QoNjEsZGVmLCI2ODE4MzIuNjcxIiwiMzIwMzQxLjE2MUUrNjI5NDY3NTYwIiwiMy4yMDM0MTE2MUUrNjI5NDY3NTY1IiwiLTMuMjAzNDExNjFFKzYyOTQ2NzU2NSIsIjIuMTg0MTkwNjlFKzYyOTQ2NzU3MSIsIjIuMTI4NDU3ODlFLTYyOTQ2NzU2MCIsIjAiLCI2ODE4MzIuNjcxIiwiMy4xNjk4MTEzOUUrMTciKTsKKyAgbWF0aHRlc3QoNjIsZGVmLCI4MzI2ODk0ODEiLCIzNDgwNDAwMjRFLTg4MjEyMjUwMSIsIjgzMjY4OTQ4MSIsIjgzMjY4OTQ4MSIsIjIuODk4MDkyNjdFLTg4MjEyMjQ4NCIsIjIuMzkyNTEwN0UrODgyMTIyNTAxIiwiIiwiIiwiNS43NzM2MzM4MUUrMjYiKTsKKyAgbWF0aHRlc3QoNjMsZGVmLCIxNC41NTEyMzI2RSsyNTc1MDA4MTEiLCI2MC45OTc5NTc3RS02NDczMTQ3MjQiLCIxLjQ1NTEyMzI2RSsyNTc1MDA4MTIiLCIxLjQ1NTEyMzI2RSsyNTc1MDA4MTIiLCI4Ljg3NTk1NDcxRS0zODk4MTM5MTEiLCIyLjM4NTUyNzg0RSs5MDQ4MTU1MzQiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoNjQsZGVmLCItOTAxLjI3ODg0NCIsIjQ0OTQ2MTY2Ny4iLCI0NDk0NjA3NjYiLCItNDQ5NDYyNTY4IiwiLTQuMDUwOTAyOTJFKzExIiwiLTAuMDAwMDAyMDA1MjQwNzQiLCIwIiwiLTkwMS4yNzg4NDQiLCIiKTsKKyAgbWF0aHRlc3QoNjUsZGVmLCItNS4zMjYyNzY3NSIsIi03Mzg4NjAyMTZFLTIzODI3MzIyNCIsIi01LjMyNjI3Njc1IiwiLTUuMzI2Mjc2NzUiLCIzLjkzNTM3Mzk5RS0yMzgyNzMyMTUiLCI3LjIwODc3NDU5RSsyMzgyNzMyMTUiLCIiLCIiLCItMC4wMDAwMDgyMjMwNjgzOCIpOworICBtYXRodGVzdCg2NixkZWYsIi01MDUzODM0NjMuIiwiMy4xODc1NjMyOCIsIi01MDUzODM0NjAiLCItNTA1MzgzNDY2IiwiLTEuNjEwOTQxNzdFKzkiLCItMTU4NTQ4NTI3IiwiLTE1ODU0ODUyNyIsIi0wLjIzNjcxMTQ0IiwiLTEuMjkwODEyMjZFKzI2Iik7CisgIG1hdGh0ZXN0KDY3LGRlZiwiNzY5MjQxLjQ0RS03MjA5MjczMjAiLCItMTQ1MzgyNjMxLiIsIi0xNDUzODI2MzEiLCIxNDUzODI2MzEiLCItMS4xMTgzNDM0NEUtNzIwOTI3MzA2IiwiLTUuMjkxMTUwOTFFLTcyMDkyNzMyMyIsIjAiLCI3LjY5MjQxNDRFLTcyMDkyNzMxNSIsIiIpOworICBtYXRodGVzdCg2OCxkZWYsIi02LjQ1MDM4OTEwIiwiNTY3MzYuNDQxMUUrNDQwOTM3MTY3IiwiNS42NzM2NDQxMUUrNDQwOTM3MTcxIiwiLTUuNjczNjQ0MTFFKzQ0MDkzNzE3MSIsIi0zLjY1OTcyMTIxRSs0NDA5MzcxNzIiLCItMS4xMzY5MDQwN0UtNDQwOTM3MTcxIiwiMCIsIi02LjQ1MDM4OTEwIiwiNzIwMzAuMzQyMSIpOworICBtYXRodGVzdCg2OSxkZWYsIjU4LjQ3MjEwNzUiLCItNzEyMTg2ODI5IiwiLTcxMjE4Njc3MSIsIjcxMjE4Njg4NyIsIi00LjE2NDMwNjQ4RSsxMCIsIi04LjIxMDIyMDI4RS04IiwiMCIsIjU4LjQ3MjEwNzUiLCIiKTsKKyAgbWF0aHRlc3QoNzAsZGVmLCI4MjQ0LjA4MzU3IiwiMjQ1LjMwMjgyOEUrNjUyMDA3OTU5IiwiMi40NTMwMjgyOEUrNjUyMDA3OTYxIiwiLTIuNDUzMDI4MjhFKzY1MjAwNzk2MSIsIjIuMDIyMjk3MDFFKzY1MjAwNzk2NSIsIjMuMzYwNzc4MDRFLTY1MjAwNzk1OCIsIjAiLCI4MjQ0LjA4MzU3IiwiNjc5NjQ5MTMuOSIpOworICBtYXRodGVzdCg3MSxkZWYsIjQ1LjUzNjEzOTciLCItNzY1NzkwNjMuOSIsIi03NjU3OTAxOC40IiwiNzY1NzkxMDkuNCIsIi0zLjQ4NzExNDk1RSs5IiwiLTUuOTQ2MjkwOThFLTciLCIwIiwiNDUuNTM2MTM5NyIsIjMuOTgzMzUzNzRFLTEyNjk5NTM2NyIpOworICBtYXRodGVzdCg3MixkZWYsIjU5NDQyMC41NEUrNjg1MjYzMDM5IiwiLTk1MjQyMC4xNzkiLCI1Ljk0NDIwNTQwRSs2ODUyNjMwNDQiLCI1Ljk0NDIwNTQwRSs2ODUyNjMwNDQiLCItNS42NjEzODExN0UrNjg1MjYzMDUwIiwiLTYuMjQxMTU4NjFFKzY4NTI2MzAzOCIsIiIsIiIsIiIpOworICBtYXRodGVzdCg3MyxkZWYsIi04NDEzMTA3MDEuIiwiOTM5ODExMC40IiwiLTgzMTkxMjU5MSIsIi04NTA3MDg4MTEiLCItNy45MDY3MzA4NUUrMTUiLCItODkuNTE5MTMzNyIsIi04OSIsIi00ODc4ODc1LjQiLCIxLjMwMDAxNDY2RSs4Mzg3NzcyMiIpOworICBtYXRodGVzdCg3NCxkZWYsIjkwNDM5MjE0NkUtMTQwMTAwMjc2IiwiMTY4MTE2MDkzLiIsIjE2ODExNjA5MyIsIi0xNjgxMTYwOTMiLCIxLjUyMDQyODc0RS0xNDAxMDAyNTkiLCI1LjM3OTU2OTE0RS0xNDAxMDAyNzYiLCIwIiwiOS4wNDM5MjE0NkUtMTQwMTAwMjY4IiwiIik7CisgIG1hdGh0ZXN0KDc1LGRlZiwiLTkwNzMyNDc5MkUrNjg1NTM5NjcwIiwiLTE1LjY5MDIxNzEiLCItOS4wNzMyNDc5MkUrNjg1NTM5Njc4IiwiLTkuMDczMjQ3OTJFKzY4NTUzOTY3OCIsIjEuNDIzNjEyMzBFKzY4NTUzOTY4MCIsIjUuNzgyNzQyMTFFKzY4NTUzOTY3NyIsIiIsIiIsIiIpOworICBtYXRodGVzdCg3NixkZWYsIjk4NzAxMzYwNi4iLCItMjY4MTguMzU3MkUrNTYwOTA3NDQyIiwiLTIuNjgxODM1NzJFKzU2MDkwNzQ0NiIsIjIuNjgxODM1NzJFKzU2MDkwNzQ0NiIsIi0yLjY0NzAwODM0RSs1NjA5MDc0NTUiLCItMy42ODAzNjU2NUUtNTYwOTA3NDM4IiwiMCIsIjk4NzAxMzYwNiIsIjEuMDM5OTkzNEUtMjciKTsKKyAgbWF0aHRlc3QoNzcsZGVmLCItNzQxMzE3NTY0IiwiNjMwLjI0MTUzMEUtMjEyNzgyOTQ2IiwiLTc0MTMxNzU2NCIsIi03NDEzMTc1NjQiLCItNC42NzIwOTExNkUtMjEyNzgyOTM1IiwiLTEuMTc2MjQzNkUrMjEyNzgyOTUyIiwiIiwiIiwiMS42NTk2ODUyN0UrNTMiKTsKKyAgbWF0aHRlc3QoNzgsZGVmLCI2MTg2NzkwNy4yIiwiLTEzOTIwNDY3MCIsIi03NzMzNjc2MyIsIjIwMTA3MjU3NyIsIi04LjYxMjMwMTYxRSsxNSIsIi0wLjQ0NDQzODQ0NiIsIjAiLCI2MTg2NzkwNy4yIiwiIik7CisgIG1hdGh0ZXN0KDc5LGRlZiwiLTI3My42MjI3NDNFKzUzMTI4MjcxNyIsIi00NTQzLjY4Njg0IiwiLTIuNzM2MjI3NDNFKzUzMTI4MjcxOSIsIi0yLjczNjIyNzQzRSs1MzEyODI3MTkiLCIxLjI0MzI1NjA2RSs1MzEyODI3MjMiLCI2LjAyMjA0MjI5RSs1MzEyODI3MTUiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoODAsZGVmLCItMzgzNTg4OTQ5LiIsIi00Mjg2NDA1ODMuIiwiLTgxMjIyOTUzMiIsIjQ1MDUxNjM0IiwiMS42NDQyMTc5MUUrMTciLCIwLjg5NDg5NjQ4IiwiMCIsIi0zODM1ODg5NDkiLCIiKTsKKyAgbWF0aHRlc3QoODEsZGVmLCItNTYxODIuMjY4NiIsIjMyLjc3NDE2NDkiLCItNTYxNDkuNDk0NCIsIi01NjIxNS4wNDI4IiwiLTE4NDEzMjYuOTQiLCItMTcxNC4yMjQyNiIsIi0xNzE0IiwiLTcuMzQ5OTYxNCIsIi01LjQ1NDc2NDAyRSsxNTYiKTsKKyAgbWF0aHRlc3QoODIsZGVmLCItNjM2NjM4NC4zMCIsIjMzMjAxNC45ODAiLCItNjAzNDM2OS4zMiIsIi02Njk4Mzk5LjI4IiwiLTIuMTEzNzM0OTZFKzEyIiwiLTE5LjE3NDk5MTEiLCItMTkiLCItNTgwOTkuNjgwIiwiLTMuMDUzOTIzOTlFKzIyNTg5OTQiKTsKKyAgbWF0aHRlc3QoODMsZGVmLCItMS4yNzg5NzcwMiIsIi04MjEzNzc2LjAzRS02ODY1MTkxMjMiLCItMS4yNzg5NzcwMiIsIi0xLjI3ODk3NzAyIiwiMS4wNTA1MjMwOEUtNjg2NTE5MTE2IiwiMS41NTcxMTIxMkUrNjg2NTE5MTE2IiwiIiwiIiwiMC4xMzk2NjgzNzEiKTsKKyAgbWF0aHRlc3QoODQsZGVmLCI2NS40MDU5MDM2IiwiNDAxMTYyMTQ1RSs4ODQxNTU1MDYiLCI0LjAxMTYyMTQ1RSs4ODQxNTU1MTQiLCItNC4wMTE2MjE0NUUrODg0MTU1NTE0IiwiMi42MjM4MzcyNkUrODg0MTU1NTE2IiwiMS42MzA0MTA2NkUtODg0MTU1NTEzIiwiMCIsIjY1LjQwNTkwMzYiLCIxODMwMDcwNC4xIik7CisgIG1hdGh0ZXN0KDg1LGRlZiwiLTIwNjMwOTE2LjgiLCIxNTg5ODc0MTEuRS00ODA1MDA2MTIiLCItMjA2MzA5MTYuOCIsIi0yMDYzMDkxNi44IiwiLTMuMjgwMDU2MDVFLTQ4MDUwMDU5NyIsIi0xLjI5NzY0NDY4RSs0ODA1MDA2MTEiLCIiLCIiLCI0LjI1NjM0NzI4RSsxNCIpOworICBtYXRodGVzdCg4NixkZWYsIi00LjcyNzA1ODUzIiwiLTk3NjI2NzQyLjQiLCItOTc2MjY3NDcuMSIsIjk3NjI2NzM3LjciLCI0NjE0ODczMjUiLCI0Ljg0MTk3MDk3RS04IiwiMCIsIi00LjcyNzA1ODUzIiwiMi45MjY1NDQ0OUUtNjU4NTgxMjAiKTsKKyAgbWF0aHRlc3QoODcsZGVmLCI4LjQzNTI4MTY5IiwiLTQ1NzMuNDU3NTIiLCItNDU2NS4wMjIyNCIsIjQ1ODEuODkyODAiLCItMzg1NzguNDAyNSIsIi0wLjAwMTg0NDM5OTI3IiwiMCIsIjguNDM1MjgxNjkiLCI4Ljg0MjQ4Njg4RS00MjM2Iik7CisgIG1hdGh0ZXN0KDg4LGRlZiwiMS45MTA3NTE4OSIsIi03MDQyNDcwODkuIiwiLTcwNDI0NzA4NyIsIjcwNDI0NzA5MSIsIi0xLjM0NTY0MTQ2RSs5IiwiLTIuNzEzMTgzOTRFLTkiLCIwIiwiMS45MTA3NTE4OSIsIjYuODQ1NDc0OTRFLTE5ODAzNzMwOSIpOworICBtYXRodGVzdCg4OSxkZWYsIjMxOTk3MTk4RS01NTE3NDYzMDgiLCIzMjYuODkyNTg0IiwiMzI2Ljg5MjU4NCIsIi0zMjYuODkyNTg0IiwiMS4wNDU5NjQ2N0UtNTUxNzQ2Mjk4IiwiOS43ODgyOTExOUUtNTUxNzQ2MzA0IiwiMCIsIjMuMTk5NzE5OEUtNTUxNzQ2MzAxIiwiIik7CisgIG1hdGh0ZXN0KDkwLGRlZiwiMTI3NTg5LjIxMyIsIjg0MTg0MzA0LiIsIjg0MzExODkzLjIiLCItODQwNTY3MTQuOCIsIjEuMDc0MTAwOTFFKzEzIiwiMC4wMDE1MTU1OTM4NSIsIjAiLCIxMjc1ODkuMjEzIiwiMi44NzkxNzA0MkUrNDI5ODI5Mzk0Iik7CisgIG1hdGh0ZXN0KDkxLGRlZiwiNzE0NDk0MjQ4IiwiLTcwMjUwNjMuNTkiLCI3MDc0NjkxODUiLCI3MjE1MTkzMTIiLCItNS4wMTkzNjc1M0UrMTUiLCItMTAxLjcwNjQ0NiIsIi0xMDEiLCI0OTYyODI1LjQxIiwiMS42NTAxODUxNkUtNjIxOTk5MDgiKTsKKyAgbWF0aHRlc3QoOTIsZGVmLCItNTI5ODc2ODAuMkUrMjc5NTMzNTAzIiwiLTQyMDE0MTE0LjgiLCItNS4yOTg3NjgwMkUrMjc5NTMzNTEwIiwiLTUuMjk4NzY4MDJFKzI3OTUzMzUxMCIsIjIuMjI2MjMwNDhFKzI3OTUzMzUxOCIsIjEuMjYxMTg3NTlFKzI3OTUzMzUwMyIsIiIsIiIsIiIpOworICBtYXRodGVzdCg5MyxkZWYsIi04Nzk1LjA1MTMiLCItMjI1Mjk0LjM5NEUtODg0NDE0MjM4IiwiLTg3OTUuMDUxMzAiLCItODc5NS4wNTEzMCIsIjEuOTgxNDc1NzVFLTg4NDQxNDIyOSIsIjMuOTAzODAzODhFKzg4NDQxNDIzNiIsIiIsIiIsIjEuMjkyNzc1OUUtOCIpOworICBtYXRodGVzdCg5NCxkZWYsIjgzMjgwLjEzOTQiLCIxNjE1NjYzNTQuIiwiMTYxNjQ5NjM0IiwiLTE2MTQ4MzA3NCIsIjEuMzQ1NTI2ODVFKzEzIiwiMC4wMDA1MTU0NTQ3MTgiLCIwIiwiODMyODAuMTM5NCIsIjUuMzA3NzQ4MDlFKzc5NDk5Mzk0MCIpOworICBtYXRodGVzdCg5NSxkZWYsIjExMi44Nzc4OTciLCItOS45NjQ4MTY2NiIsIjEwMi45MTMwODAiLCIxMjIuODQyNzE0IiwiLTExMjQuODA3NTUiLCItMTEuMzI3NjQ0MSIsIi0xMSIsIjMuMjY0OTEzNzQiLCIyLjk3NzkwNTQ1RS0yMSIpOworICBtYXRodGVzdCg5NixkZWYsIi01NzI1NDIuMTIxRSs4NDc0ODczOTciLCI0MzMuODQzNDIwIiwiLTUuNzI1NDIxMjFFKzg0NzQ4NzQwMiIsIi01LjcyNTQyMTIxRSs4NDc0ODc0MDIiLCItMi40ODM5MzYzMkUrODQ3NDg3NDA1IiwiLTEuMzE5Njk3NkUrODQ3NDg3NDAwIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDk3LGRlZiwiNDcwOTY0OS44OSIsIjIwOTQ5MjY2LjQiLCIyNTY1ODkxNi4zIiwiLTE2MjM5NjE2LjUiLCI5Ljg2NjM3MTAyRSsxMyIsIjAuMjI0ODEyMTYzIiwiMCIsIjQ3MDk2NDkuODkiLCI0Ljg1MjkzNjQ0RSsxMzk3OTQyMTMiKTsKKyAgbWF0aHRlc3QoOTgsZGVmLCItOTQ3NS4xOTMyMiIsIi0zMDg4NS4yNDc1RSs1ODQ0ODczNDEiLCItMy4wODg1MjQ3NUUrNTg0NDg3MzQ1IiwiMy4wODg1MjQ3NUUrNTg0NDg3MzQ1IiwiMi45MjY0MzY4OEUrNTg0NDg3MzQ5IiwiMy4wNjc4NzAyNkUtNTg0NDg3MzQyIiwiMCIsIi05NDc1LjE5MzIyIiwiLTEuMTc1NTM1NTdFLTEyIik7CisgIG1hdGh0ZXN0KDk5LGRlZiwiLTIxMzIzMDQ0Ny4iLCI4NjQuODE1ODIyRSsxMjc3ODMwNDYiLCI4LjY0ODE1ODIyRSsxMjc3ODMwNDgiLCItOC42NDgxNTgyMkUrMTI3NzgzMDQ4IiwiLTEuODQ0MDUwNjRFKzEyNzc4MzA1NyIsIi0yLjQ2NTYxNjg2RS0xMjc3ODMwNDEiLCIwIiwiLTIxMzIzMDQ0NyIsIi05LjExMjYxMzYxRSs3NCIpOworICBtYXRodGVzdCgxMDAsZGVmLCItODkuMTE2ODc4NkUrNDAzMzc1ODczIiwiNjQ2NC4wNTc0NCIsIi04LjkxMTY4Nzg2RSs0MDMzNzU4NzQiLCItOC45MTE2ODc4NkUrNDAzMzc1ODc0IiwiLTUuNzYwNTY2MjJFKzQwMzM3NTg3OCIsIi0xLjM3ODY1MjMzRSs0MDMzNzU4NzEiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMTAxLGRlZiwiNjE3NzQuNDk1OCIsIi0xNDAwMC43NzA2IiwiNDc3NzMuNzI1MiIsIjc1Nzc1LjI2NjQiLCItODY0ODkwNTQ1IiwiLTQuNDEyMjIxMTIiLCItNCIsIjU3NzEuNDEzNCIsIjcuNTkwMzA0MDdFLTY3MDc3Iik7CisgIG1hdGh0ZXN0KDEwMixkZWYsIjEuNjA3MzE0MTQiLCI3LjA0MzMwMjkzRS00MjcwMzM0MTkiLCIxLjYwNzMxNDE0IiwiMS42MDczMTQxNCIsIjEuMTMyMDgwMDRFLTQyNzAzMzQxOCIsIjIuMjgyMDQ2MDJFKzQyNzAzMzQxOCIsIiIsIiIsIjI3LjcxNDM5MjEiKTsKKyAgbWF0aHRlc3QoMTAzLGRlZiwiNzk1NTAxMi41MSIsIi0yMzAxMTc2NjIuIiwiLTIyMjE2MjY1MCIsIjIzODA3MjY3NSIsIi0xLjgzMDU4ODg4RSsxNSIsIi0wLjAzNDU2OTMyNjEiLCIwIiwiNzk1NTAxMi41MSIsIiIpOworICBtYXRodGVzdCgxMDQsZGVmLCI0MDg2NjYxLjA4IiwiMS43NzYyMTk5NCIsIjQwODY2NjIuODYiLCI0MDg2NjU5LjMwIiwiNzI1ODgwOC45MCIsIjIzMDA3NjIuOTgiLCIyMzAwNzYyIiwiMS43Mzg0MDU3MiIsIjEuNjcwMDc5ODhFKzEzIik7CisgIG1hdGh0ZXN0KDEwNSxkZWYsIi02MTAuMDc2OTMxIiwiLTIwNy42NTgzMDYiLCItODE3LjczNTIzNyIsIi00MDIuNDE4NjI1IiwiMTI2Njg3LjU0MiIsIjIuOTM3ODg4NDEiLCIyIiwiLTE5NC43NjAzMTkiLCI0LjM2NTE4Mzc3RS01ODAiKTsKKyAgbWF0aHRlc3QoMTA2LGRlZiwiLTk4LjYzNTM2OTciLCItOTkyNTMuMzg5OUUtNzE2MzA5NjUzIiwiLTk4LjYzNTM2OTciLCItOTguNjM1MzY5NyIsIjkuNzg5ODk0ODFFLTcxNjMwOTY0NyIsIjkuOTM3NzMzMDlFKzcxNjMwOTY0OSIsIiIsIiIsIjEuMTQ3MjkwMDdFLTIwIik7CisgIG1hdGh0ZXN0KDEwNyxkZWYsIi05NTk5MjM3MzAiLCI0MDkuMTI1NTQyRS05MDAyOTU1MjgiLCItOTU5OTIzNzMwIiwiLTk1OTkyMzczMCIsIi0zLjkyNzI5MzE2RS05MDAyOTU1MTciLCItMi4zNDYyODE2RSs5MDAyOTU1MzQiLCIiLCIiLCI4LjQ5MDc2Njc3RSszNSIpOworICBtYXRodGVzdCgxMDgsZGVmLCIzNzk5NjUxMzMiLCItOC4xNTg2OTY1NyIsIjM3OTk2NTEyNSIsIjM3OTk2NTE0MSIsIi0zLjEwMDAyMDIzRSs5IiwiLTQ2NTcxNzkzLjYiLCItNDY1NzE3OTMiLCI1LjE5MjE0OTk5IiwiMi4zMDE3MDY5N0UtNjkiKTsKKyAgbWF0aHRlc3QoMTA5LGRlZiwiODMzLjY0Njc5NyIsIjEzODk0OTkuNDZFLTQ0MzQwNzI1MSIsIjgzMy42NDY3OTciLCI4MzMuNjQ2Nzk3IiwiMS4xNTgzNTE3N0UtNDQzNDA3MjQyIiwiNS45OTk2MTk0NEUrNDQzNDA3MjQ3IiwiIiwiIiwiODMzLjY0Njc5NyIpOworICBtYXRodGVzdCgxMTAsZGVmLCIyMzE0OTMzLjRFLTY0NjQ4OTE5NCIsIi03NDAxNTM4LjE3IiwiLTc0MDE1MzguMTciLCI3NDAxNTM4LjE3IiwiLTEuNzEzNDA2NzlFLTY0NjQ4OTE4MSIsIi0zLjEyNzYzODI2RS02NDY0ODkxOTUiLCIwIiwiMi4zMTQ5MzM0RS02NDY0ODkxODgiLCIiKTsKKyAgbWF0aHRlc3QoMTExLGRlZiwiODA4NTI1MzQ3IiwiLTU5NTkuNzQ2NjdFKzU4MjMyMTY4IiwiLTUuOTU5NzQ2NjdFKzU4MjMyMTcxIiwiNS45NTk3NDY2N0UrNTgyMzIxNzEiLCItNC44MTg2MDYyNEUrNTgyMzIxODAiLCItMS4zNTY2NDM4MkUtNTgyMzIxNjMiLCIwIiwiODA4NTI1MzQ3IiwiMy41Nzk2MzAyRS01NCIpOworICBtYXRodGVzdCgxMTIsZGVmLCItMTcyMjA0OTAuNkUrNzI2NDI4NzA0IiwiMTkuOTg1NTY4OCIsIi0xLjcyMjA0OTA2RSs3MjY0Mjg3MTEiLCItMS43MjIwNDkwNkUrNzI2NDI4NzExIiwiLTMuNDQxNjEzMDBFKzcyNjQyODcxMiIsIi04LjYxNjQ2MjU5RSs3MjY0Mjg3MDkiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMTEzLGRlZiwiNTkwMTUuOTcwNSIsIi03MjA3MDQwNS40RSszMjI5NTcyNzkiLCItNy4yMDcwNDA1NEUrMzIyOTU3Mjg2IiwiNy4yMDcwNDA1NEUrMzIyOTU3Mjg2IiwiLTQuMjUzMzA0OTJFKzMyMjk1NzI5MSIsIi04LjE4ODY1NTI3RS0zMjI5NTcyODMiLCIwIiwiNTkwMTUuOTcwNSIsIjQuMDEwNjM0ODhFLTM0Iik7CisgIG1hdGh0ZXN0KDExNCxkZWYsIjE2NDExNDcwRSs1NzgxOTIwMDgiLCI0OTc0NzAuMDA1RS0zNzc0NzM2MjEiLCIxLjY0MTE0NzAwRSs1NzgxOTIwMTUiLCIxLjY0MTE0NzAwRSs1NzgxOTIwMTUiLCI4LjE2NDIxNDA2RSsyMDA3MTgzOTkiLCIzLjI5ODk4Njg0RSs5NTU2NjU2MzAiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMTE1LGRlZiwiLTEwNy4zNTM1NDRFKzYwOTY4OTgwOCIsIi02NTkuNTAxMzZFLTQ1NjcxMTc0MyIsIi0xLjA3MzUzNTQ0RSs2MDk2ODk4MTAiLCItMS4wNzM1MzU0NEUrNjA5Njg5ODEwIiwiNy4wNzk5ODA4M0UrMTUyOTc4MDY5IiwiIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDExNixkZWYsIjc4Ni4xMzQxNjMiLCItNTMuMDI5MjI3NUUtNjY0NDE5NzY4IiwiNzg2LjEzNDE2MyIsIjc4Ni4xMzQxNjMiLCItNC4xNjg4MDg3NEUtNjY0NDE5NzY0IiwiLTEuNDgyNDU0NDlFKzY2NDQxOTc2OSIsIiIsIiIsIjMuMzMwNTU1MzJFLTE1Iik7CisgIG1hdGh0ZXN0KDExNyxkZWYsIjIzLjU0MTQ3MTQiLCI1MDAwNzg2LjkxIiwiNTAwMDgxMC40NSIsIi01MDAwNzYzLjM3IiwiMTE3NzI1ODgyIiwiMC4wMDAwMDQ3MDc1NTM0IiwiMCIsIjIzLjU0MTQ3MTQiLCI0LjQ4OTU2MThFKzY4NjAyNDciKTsKKyAgbWF0aHRlc3QoMTE4LGRlZiwiLTY5Nzc1LjYxMTMiLCI1NjEyOTIxMjAuIiwiNTYxMjIyMzQ0IiwiLTU2MTM2MTg5NiIsIi0zLjkxNjQ1MDA4RSsxMyIsIi0wLjAwMDEyNDMxMjQ3MyIsIjAiLCItNjk3NzUuNjExMyIsIiIpOworICBtYXRodGVzdCgxMTksZGVmLCI5MTkwNDMuODcxIiwiLTcxNjA2NjEzLjciLCItNzA2ODc1NjkuOCIsIjcyNTI1NjU3LjYiLCItNi41ODA5NjE5NEUrMTMiLCItMC4wMTI4MzQ2MjI3IiwiMCIsIjkxOTA0My44NzEiLCIzLjA1ODYyNDI5RS00MjcwMTQzMTciKTsKKyAgbWF0aHRlc3QoMTIwLGRlZiwiLTI3NjY3LjE5MTUiLCItMjkzNDU1LjEwN0UtNzg5MTgxOTI0IiwiLTI3NjY3LjE5MTUiLCItMjc2NjcuMTkxNSIsIjguMTE5MDc4NjRFLTc4OTE4MTkxNSIsIjkuNDI4MDgzMTVFKzc4OTE4MTkyMiIsIiIsIiIsIi00LjcyMTc2OTM4RS0xNCIpOworICBtYXRodGVzdCgxMjEsZGVmLCItOTA4NjAzNjI1LiIsIi05ODIuNDA5MjczRSs0NDk0NDExMzQiLCItOS44MjQwOTI3M0UrNDQ5NDQxMTM2IiwiOS44MjQwOTI3M0UrNDQ5NDQxMTM2IiwiOC45MjYyMDYyN0UrNDQ5NDQxMTQ1IiwiOS4yNDg3MjgxRS00NDk0NDExMjkiLCIwIiwiLTkwODYwMzYyNSIsIjIuNjA3Njg2MzJFLTkwIik7CisgIG1hdGh0ZXN0KDEyMixkZWYsIjg0Ny4xMTMzNTEiLCI1LjcxNTExMjY4IiwiODUyLjgyODQ2NCIsIjg0MS4zOTgyMzgiLCI0ODQxLjM0ODI1IiwiMTQ4LjIyMzM4NiIsIjE0OCIsIjEuMjc2Njc0MzYiLCIzLjY5NTI5NTM4RSsxNyIpOworICBtYXRodGVzdCgxMjMsZGVmLCItOTkyMTQwNDc1IiwiMy44MjkxODIxOCIsIi05OTIxNDA0NzEiLCItOTkyMTQwNDc5IiwiLTMuNzk5MDg2NjNFKzkiLCItMjU5MDk5ODM2IiwiLTI1OTA5OTgzNiIsIi0wLjE0Nzg3NzUyIiwiOS42ODkzMDU5NUUrMzUiKTsKKyAgbWF0aHRlc3QoMTI0LGRlZiwiLTEyNjA2NDM3LjUiLCIyNjgxMjMxNDVFKzM2Mjc5ODg1OCIsIjIuNjgxMjMxNDVFKzM2Mjc5ODg2NiIsIi0yLjY4MTIzMTQ1RSszNjI3OTg4NjYiLCItMy4zODAwNzc2N0UrMzYyNzk4ODczIiwiLTQuNzAxNzM0MTZFLTM2Mjc5ODg2MCIsIjAiLCItMTI2MDY0MzcuNSIsIi0yLjAwMzQ0MzYyRSsyMSIpOworICBtYXRodGVzdCgxMjUsZGVmLCIzNzk5NDcwLjY0IiwiLTI2NC43MDM5OTIiLCIzNzk5MjA1Ljk0IiwiMzc5OTczNS4zNCIsIi0xLjAwNTczNTA1RSs5IiwiLTE0MzUzLjY1ODMiLCItMTQzNTMiLCIxNzQuMjQyODI0IiwiMi4zNjI1NDY2RS0xNzQ0Iik7CisgIG1hdGh0ZXN0KDEyNixkZWYsIi04LjExMDcwMjQ3IiwiLTkzMTI4NDA1Ni5FLTY1NDI4ODk3NCIsIi04LjExMDcwMjQ3IiwiLTguMTEwNzAyNDciLCI3LjU1MzM2Nzg5RS02NTQyODg5NjUiLCI4LjcwOTE2MDY3RSs2NTQyODg5NjUiLCIiLCIiLCItNi41ODM3NTY2MkUtOSIpOworICBtYXRodGVzdCgxMjcsZGVmLCItMjQyNjYwMTc3LiIsIi02LjA5ODMyNzE1RS05NDM3NDI0MTUiLCItMjQyNjYwMTc3IiwiLTI0MjY2MDE3NyIsIjEuNDc5ODIxMTVFLTk0Mzc0MjQwNiIsIjMuOTc5MTI2OTJFKzk0Mzc0MjQyMiIsIiIsIiIsIjQuODk3ODg5MDFFLTUxIik7CisgIG1hdGh0ZXN0KDEyOCxkZWYsIjc2LjE0NjM4MDMiLCItNDUuNjc1ODAwNkUtNjM2OTA3OTk2IiwiNzYuMTQ2MzgwMyIsIjc2LjE0NjM4MDMiLCItMy40NzgwNDY4OEUtNjM2OTA3OTkzIiwiLTEuNjY3MTA1NTRFKzYzNjkwNzk5NiIsIiIsIiIsIjMuOTA2MTkyODdFLTEwIik7CisgIG1hdGh0ZXN0KDEyOSxkZWYsIjc2MTE4NS44NjIiLCItNzA4Nzg0NzAuOUUrMjIxMjE0NzEyIiwiLTcuMDg3ODQ3MDlFKzIyMTIxNDcxOSIsIjcuMDg3ODQ3MDlFKzIyMTIxNDcxOSIsIi01LjM5NTE2OTAwRSsyMjEyMTQ3MjUiLCItMS4wNzM5MzA5OUUtMjIxMjE0NzE0IiwiMCIsIjc2MTE4NS44NjIiLCI2Ljc1NDA2MTQ0RS00MiIpOworICBtYXRodGVzdCgxMzAsZGVmLCI2MjAzNjA2LjU0IiwiLTE5NS45Mjc0OEUtODMzNTEyMDYxIiwiNjIwMzYwNi41NCIsIjYyMDM2MDYuNTQiLCItMS4yMTU0NTcwMEUtODMzNTEyMDUyIiwiLTMuMTY2Mjc2OUUrODMzNTEyMDY1IiwiIiwiIiwiMi41OTg0MzI5MkUtMTQiKTsKKyAgbWF0aHRlc3QoMTMxLGRlZiwiLTE2MzI3NDgzNy4iLCI5NS4wNDQ4NTUwRSs4ODc4NzY1MzMiLCI5LjUwNDQ4NTUwRSs4ODc4NzY1MzQiLCItOS41MDQ0ODU1MEUrODg3ODc2NTM0IiwiLTEuNTUxODQzMzJFKzg4Nzg3NjU0MyIsIi0xLjcxNzg3MTM5RS04ODc4NzY1MjciLCIwIiwiLTE2MzI3NDgzNyIsIjEuMzQ2NDU3MzFFKzgyIik7CisgIG1hdGh0ZXN0KDEzMixkZWYsIjIuMzg2MzgxOTAiLCItODA3OTg2MTc5LiIsIi04MDc5ODYxNzciLCI4MDc5ODYxODEiLCItMS45MjgxNjM1OUUrOSIsIi0yLjk1MzQ5MzQ3RS05IiwiMCIsIjIuMzg2MzgxOTAiLCIxLjE5MDI5MzA1RS0zMDUyMDg2NTYiKTsKKyAgbWF0aHRlc3QoMTMzLGRlZiwiLTEwOTAyMjI5NkUtODExOTgxMTU4IiwiNy4xOTY4NTY4MCIsIjcuMTk2ODU2ODAiLCItNy4xOTY4NTY4MCIsIi03Ljg0NjE3ODUyRS04MTE5ODExNTAiLCItMS41MTQ4NTk4OEUtODExOTgxMTUxIiwiMCIsIi0xLjA5MDIyMjk2RS04MTE5ODExNTAiLCIiKTsKKyAgbWF0aHRlc3QoMTM0LGRlZiwiLTU1OTI1MC43ODBFLTI3MzcxMDQyMSIsIi0zOTM3ODA4MTEuIiwiLTM5Mzc4MDgxMSIsIjM5Mzc4MDgxMSIsIjIuMjAyMjIyMjZFLTI3MzcxMDQwNyIsIjEuNDIwMjA4MzFFLTI3MzcxMDQyNCIsIjAiLCItNS41OTI1MDc4MEUtMjczNzEwNDE2IiwiIik7CisgIG1hdGh0ZXN0KDEzNSxkZWYsIi04ODAyMS45OTY2RSs1NTUzMzQ2NDIiLCI3NTk5Njg2LjY0RSs4MTg4ODQwNTMiLCI3LjU5OTY4NjY0RSs4MTg4ODQwNTkiLCItNy41OTk2ODY2NEUrODE4ODg0MDU5IiwiIiwiLTEuMTU4MjMxOTJFLTI2MzU0OTQxMyIsIjAiLCItOC44MDIxOTk2NkUrNTU1MzM0NjQ2IiwiIik7CisgIG1hdGh0ZXN0KDEzNixkZWYsIjE5NC4zMTc2NDhFLTE5NzQ1MDAwOSIsIi05MzAuOTc5MDY0IiwiLTkzMC45NzkwNjQiLCI5MzAuOTc5MDY0IiwiLTEuODA5MDU2NjJFLTE5NzQ1MDAwNCIsIi0yLjA4NzIzOTcyRS0xOTc0NTAwMTAiLCIwIiwiMS45NDMxNzY0OEUtMTk3NDUwMDA3IiwiIik7CisgIG1hdGh0ZXN0KDEzNyxkZWYsIjk0OTU0NzkuNjUiLCI3NDA1Njk3Ljk2IiwiMTY5MDExNzcuNiIsIjIwODk3ODEuNjkiLCI3LjAzMjA2NTQzRSsxMyIsIjEuMjgyMTg1NjUiLCIxIiwiMjA4OTc4MS42OSIsIjEuMDEzNTQ0NkUrNTE2NzMzODMiKTsKKyAgbWF0aHRlc3QoMTM4LGRlZiwiLTE2NTYuMjg5MjUiLCItMTYzMDUwNTExRS02ODI4ODIzODAiLCItMTY1Ni4yODkyNSIsIi0xNjU2LjI4OTI1IiwiMi43MDA1ODgwOUUtNjgyODgyMzY5IiwiMS4wMTU4MTM1OUUrNjgyODgyMzc1IiwiIiwiIiwiMy42NDUyNTI2NUUtNyIpOworICBtYXRodGVzdCgxMzksZGVmLCI5NTU4MS4zNzg0RSs2NDI2MjE0OSIsIi05OS4yODc5MzY1IiwiOS41NTgxMzc4NEUrNjQyNjIxNTMiLCI5LjU1ODEzNzg0RSs2NDI2MjE1MyIsIi05LjQ5MDA3NzgzRSs2NDI2MjE1NSIsIi05LjYyNjY4NTk2RSs2NDI2MjE1MSIsIiIsIiIsIiIpOworICBtYXRodGVzdCgxNDAsZGVmLCI2NDM3NjEuNDUyIiwiMy43MzQ0NjkzOSIsIjY0Mzc2NS4xODYiLCI2NDM3NTcuNzE4IiwiMjQwNDEwNy40NCIsIjE3MjM4My42NDciLCIxNzIzODMiLCIyLjQxNTE0MzYzIiwiMS43MTc1MTIzNkUrMjMiKTsKKyAgbWF0aHRlc3QoMTQxLGRlZiwiNzk2MC40OTg2NkUtMTI5ODI3NDIzIiwiMzIyMC4yMjg1MCIsIjMyMjAuMjI4NTAiLCItMzIyMC4yMjg1MCIsIjIuNTYzNDYyNDdFLTEyOTgyNzQxNiIsIjIuNDcyMDI5MTNFLTEyOTgyNzQyMyIsIjAiLCI3Ljk2MDQ5ODY2RS0xMjk4Mjc0MjAiLCIiKTsKKyAgbWF0aHRlc3QoMTQyLGRlZiwiLTYzNTYuNjQxMTJFLTcwNzIwMzgxOCIsIjE4MDUwNTQuOTgiLCIxODA1MDU0Ljk4IiwiLTE4MDUwNTQuOTgiLCItMS4xNDc0MDg2N0UtNzA3MjAzODA4IiwiLTMuNTIxNTc3NTZFLTcwNzIwMzgyMSIsIjAiLCItNi4zNTY2NDExMkUtNzA3MjAzODE1IiwiIik7CisgIG1hdGh0ZXN0KDE0MyxkZWYsIjIuMzkwNDA0MiIsIjg0NzYuNTIwMDYiLCI4NDc4LjkxMDQ2IiwiLTg0NzQuMTI5NjYiLCIyMDI2Mi4zMDkyIiwiMC4wMDAyODIwMDMwMTMiLCIwIiwiMi4zOTA0MDQyIiwiMi4wMDI1MTc1MkUrMzIwOCIpOworICBtYXRodGVzdCgxNDQsZGVmLCItNzEzMjk4LjY1OCIsIi05NTcuNzgyNzI5IiwiLTcxNDI1Ni40NDEiLCItNzEyMzQwLjg3NSIsIjY4MzE4NTEzNSIsIjc0NC43Mzk1MjgiLCI3NDQiLCItNzA4LjMwNzYyNCIsIjMuNjgxMjIzMjFFLTU2MDgiKTsKKyAgbWF0aHRlc3QoMTQ1LGRlZiwiNjA3Nzc5MjMzLkUtODIwNDk3MzY1IiwiLTIwLjExODg3NDJFLTg1NzMxODMyMyIsIjYuMDc3NzkyMzNFLTgyMDQ5NzM1NyIsIjYuMDc3NzkyMzNFLTgyMDQ5NzM1NyIsIiIsIi0zLjAyMDk0MDU3RSszNjgyMDk2NSIsIiIsIiIsIiIpOworICBtYXRodGVzdCgxNDYsZGVmLCItMjA1ODg4MjUxIiwiLTkwOC43OTI5MjJFKzI1MDY4MDYxMyIsIi05LjA4NzkyOTIyRSsyNTA2ODA2MTUiLCI5LjA4NzkyOTIyRSsyNTA2ODA2MTUiLCIxLjg3MTA5Nzg1RSsyNTA2ODA2MjQiLCIyLjI2NTUxMzM2RS0yNTA2ODA2MDgiLCIwIiwiLTIwNTg4ODI1MSIsIi0xLjUwNDIzNThFLTc1Iik7CisgIG1hdGh0ZXN0KDE0NyxkZWYsIjUxNTQyMzk5LjEiLCItMjMyMTIuMjQxNCIsIjUxNTE5MTg2LjkiLCI1MTU2NTYxMS4zIiwiLTEuMTk2NDE0NjFFKzEyIiwiLTIyMjAuNDgzNSIsIi0yMjIwIiwiMTEyMjMuMTkyMCIsIjEuNzE2NDEzNDhFLTE3OTAxNSIpOworICBtYXRodGVzdCgxNDgsZGVmLCI0LjQ0Mjg3MjMwIiwiMTU4OTIzMDIzIiwiMTU4OTIzMDI3IiwiLTE1ODkyMzAxOSIsIjcwNjA3NDY5NyIsIjIuNzk1NjEyNzVFLTgiLCIwIiwiNC40NDI4NzIzMCIsIjcuMTI1NzM0MTZFKzEwMjkyODY5MyIpOworICBtYXRodGVzdCgxNDksZGVmLCItNzkxMjM2ODIuNiIsIi0zLjg1NzE3NzAiLCItNzkxMjM2ODYuNSIsIi03OTEyMzY3OC44IiwiMzA1MTk0MDQ5IiwiMjA1MTMzNjUuOCIsIjIwNTEzMzY1IiwiLTIuOTI5Mzk1MCIsIjIuNTUxMzczNDVFLTMyIik7CisgIG1hdGh0ZXN0KDE1MCxkZWYsIi04MC4zMzI0MzQ3RS01Njk3MTUwMzAiLCI4ODMxNDIuMzUxIiwiODgzMTQyLjM1MSIsIi04ODMxNDIuMzUxIiwiLTcuMDk0NDk3NTJFLTU2OTcxNTAyMyIsIi05LjA5NjIwNDU1RS01Njk3MTUwMzUiLCIwIiwiLTguMDMzMjQzNDdFLTU2OTcxNTAyOSIsIiIpOworICBtYXRodGVzdCgxNTEsZGVmLCIxMzYzNy40ODMiLCItNTI3OTguNTYzMSIsIi0zOTE2MS4wODAxIiwiNjY0MzYuMDQ2MSIsIi03MjAwMzk1MDciLCItMC4yNTgyOTI2OTIiLCIwIiwiMTM2MzcuNDgzIiwiMS40NzE2Mzc5MUUtMjE4MzEwIik7CisgIG1hdGh0ZXN0KDE1MixkZWYsIjYuNDI5MzQ4NDNFLTI3NjQ3NjQ1OCIsIjg0MDU3NDQwLjBFLTM4ODAzOTc4MiIsIjYuNDI5MzQ4NDNFLTI3NjQ3NjQ1OCIsIjYuNDI5MzQ4NDNFLTI3NjQ3NjQ1OCIsIjUuNDA0MzQ1NzBFLTY2NDUxNjIzMiIsIjcuNjQ4NzU1OTNFKzExMTU2MzMxNiIsIiIsIiIsIiIpOworICBtYXRodGVzdCgxNTMsZGVmLCItNS42NDEzMzA4NyIsIi0xNzQwMTI5Ny4iLCItMTc0MDEzMDIuNiIsIjE3NDAxMjkxLjQiLCI5ODE2NjQ3My45IiwiMy4yNDE5MDI1M0UtNyIsIjAiLCItNS42NDEzMzA4NyIsIi0xLjI1OTA4OTE2RS0xMzA3NTAxNCIpOworICBtYXRodGVzdCgxNTQsZGVmLCI5NTQ2OS43MDU3RSs4NjU3MzM4MjQiLCIxOTguODI5NzQ5IiwiOS41NDY5NzA1N0UrODY1NzMzODI4IiwiOS41NDY5NzA1N0UrODY1NzMzODI4IiwiMS44OTgyMjE3NkUrODY1NzMzODMxIiwiNC44MDE1ODA1NkUrODY1NzMzODI2IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDE1NSxkZWYsIi00MTY0NjYuMjA5IiwiLTkzMDE1MzQyNyIsIi05MzA1Njk4OTMiLCI5Mjk3MzY5NjEiLCIzLjg3Mzc3NDcyRSsxNCIsIjAuMDAwNDQ3NzM5MjYyIiwiMCIsIi00MTY0NjYuMjA5IiwiIik7CisgIG1hdGh0ZXN0KDE1NixkZWYsIi0xNTQxNzMzLjg1IiwiLTEuOTkyMDg3MDgiLCItMTU0MTczNS44NCIsIi0xNTQxNzMxLjg2IiwiMzA3MTI2OC4wOCIsIjc3MzkyOC45NDQiLCI3NzM5MjgiLCItMS44ODAzNDk3NiIsIjQuMjA3MDg0MDFFLTEzIik7CisgIG1hdGh0ZXN0KDE1NyxkZWYsIi0zOTE1MjY5MS44IiwiLTY0NTEzMTc0OC4iLCItNjg0Mjg0NDQwIiwiNjA1OTc5MDU2IiwiMi41MjU4NjQ0NUUrMTYiLCIwLjA2MDY4OTQ1MTMiLCIwIiwiLTM5MTUyNjkxLjgiLCIiKTsKKyAgbWF0aHRlc3QoMTU4LGRlZiwiMTEzLjkzOTk3OSIsIi01ODI4MjU1MC40IiwiLTU4MjgyNDM2LjUiLCI1ODI4MjY2NC4zIiwiLTYuNjQwNzEyNTdFKzkiLCItMC4wMDAwMDE5NTQ5NTg3IiwiMCIsIjExMy45Mzk5NzkiLCIyLjEwNjU1N0UtMTE5ODY4MzMwIik7CisgIG1hdGh0ZXN0KDE1OSxkZWYsIi0zMjQ5NzEuNzM2IiwiLTk1MTcuMTUxNTQiLCItMzM0NDg4Ljg4OCIsIi0zMTU0NTQuNTg1IiwiMy4wOTI4MDUyNkUrOSIsIjM0LjE0NTkwMzMiLCIzNCIsIi0xMzg4LjU4MzY0IiwiLTUuODI3OTUyNjNFLTUyNDU3Iik7CisgIG1hdGh0ZXN0KDE2MCxkZWYsIi03Ni45NDM2NzQ0IiwiLTk1NDgxMjIuNzVFLTI3MzU5OTcyOCIsIi03Ni45NDM2NzQ0IiwiLTc2Ljk0MzY3NDQiLCI3LjM0NjY3NjQ4RS0yNzM1OTk3MjAiLCI4LjA1ODUxMzMyRSsyNzM1OTk3MjIiLCIiLCIiLCIxLjM3NDg5ODk1RS0xOSIpOworICBtYXRodGVzdCgxNjEsZGVmLCItNDMwMzkzLjI4MiIsIi03MC4yNTUxNTA1IiwiLTQzMDQ2My41MzciLCItNDMwMzIzLjAyNyIsIjMwMjM3MzQ0LjgiLCI2MTI2LjE0NTYxIiwiNjEyNiIsIi0xMC4yMzAwMzcwIiwiNC4yNjAwNjQwOUUtMzk1Iik7CisgIG1hdGh0ZXN0KDE2MixkZWYsIi0zMzA4MDUxLjkwIiwiLTM0OTQzMzc5OS5FKzM5NzgxMzE4OCIsIi0zLjQ5NDMzNzk5RSszOTc4MTMxOTYiLCIzLjQ5NDMzNzk5RSszOTc4MTMxOTYiLCIxLjE1NTk0NTE0RSszOTc4MTMyMDMiLCI5LjQ2Njg5MTYxRS0zOTc4MTMxOTEiLCIwIiwiLTMzMDgwNTEuOTAiLCItMi43NjIzNzc2OEUtMjAiKTsKKyAgbWF0aHRlc3QoMTYzLGRlZiwiMjMuMTU0MzIxMkUtNjU1ODIyNzEyIiwiNTg0OC4yMDg1MyIsIjU4NDguMjA4NTMiLCItNTg0OC4yMDg1MyIsIjEuMzU0MTEyOTlFLTY1NTgyMjcwNyIsIjMuOTU5MjE2MDdFLTY1NTgyMjcxNSIsIjAiLCIyLjMxNTQzMjEyRS02NTU4MjI3MTEiLCIiKTsKKyAgbWF0aHRlc3QoMTY0LGRlZiwiLTE3NC4yNjEzMDhFLTgyOTAyMDc3IiwiLTIwMDA5NjIwNC4iLCItMjAwMDk2MjA0IiwiMjAwMDk2MjA0IiwiMy40ODY5MDI2MkUtODI5MDIwNjciLCI4LjcwODg3NjI2RS04MjkwMjA4NCIsIjAiLCItMS43NDI2MTMwOEUtODI5MDIwNzUiLCIiKTsKKyAgbWF0aHRlc3QoMTY1LGRlZiwiLTUwNjY5MTA1LjIiLCI5MTA1Nzg5LjAxRSs2MDk4ODk3MDAiLCI5LjEwNTc4OTAxRSs2MDk4ODk3MDYiLCItOS4xMDU3ODkwMUUrNjA5ODg5NzA2IiwiLTQuNjEzODIxODFFKzYwOTg4OTcxNCIsIi01LjU2NDQ5MzY2RS02MDk4ODk3MDAiLCIwIiwiLTUwNjY5MTA1LjIiLCItMi4yMDEzNTAwOEUrNjkiKTsKKyAgbWF0aHRlc3QoMTY2LGRlZiwiNDI0NzY4ODU2LiIsIi05NzEuNzE3NTciLCI0MjQ3Njc4ODQiLCI0MjQ3Njk4MjgiLCItNC4xMjc1NTM2MUUrMTEiLCItNDM3MTMyLjAxMiIsIi00MzcxMzIiLCIxMS4xOTA3NiIsIjIuNzI2NTE0NzNFLTgzODciKTsKKyAgbWF0aHRlc3QoMTY3LGRlZiwiNzE4MS4yNzY3IiwiOTk5MTE3LjkxOCIsIjEwMDYyOTkuMTkiLCItOTkxOTM2LjY0MSIsIjcuMTc0OTQyMjNFKzkiLCIwLjAwNzE4NzYxNjc3IiwiMCIsIjcxODEuMjc2NyIsIjMuMDk2NTUxMjRFKzM4NTI4MDAiKTsKKyAgbWF0aHRlc3QoMTY4LGRlZiwiODA5NjQxNy4wN0UtNDMzNjk0NTI4IiwiLTY4LjQ4NjMzNjMiLCItNjguNDg2MzM2MyIsIjY4LjQ4NjMzNjMiLCItNS41NDQ5Mzk0MkUtNDMzNjk0NTIwIiwiLTEuMTgyMTk0NTFFLTQzMzY5NDUyMyIsIjAiLCI4LjA5NjQxNzA3RS00MzM2OTQ1MjIiLCIiKTsKKyAgbWF0aHRlc3QoMTY5LGRlZiwiMTIzNjI4Ny41IiwiLTcxMTkuOTcyOTlFLTE3NjIwMDQ5OCIsIjEyMzYyODcuNTAiLCIxMjM2Mjg3LjUwIiwiLTguODAyMzMzNjFFLTE3NjIwMDQ4OSIsIi0xLjczNjM2NTQ0RSsxNzYyMDA1MDAiLCIiLCIiLCIyLjI2NTQ5Nzg0RS00MyIpOworICBtYXRodGVzdCgxNzAsZGVmLCItNzUyOTk1ODMzRS02NTQ0MDEwNjciLCItMTUuMjczNjkzMEUrODAzOTM5OTgzIiwiLTEuNTI3MzY5MzBFKzgwMzkzOTk4NCIsIjEuNTI3MzY5MzBFKzgwMzkzOTk4NCIsIjEuMTUwMTAyNzJFKzE0OTUzODkyNiIsIiIsIjAiLCItNy41Mjk5NTgzM0UtNjU0NDAxMDU5IiwiIik7CisgIG1hdGh0ZXN0KDE3MSxkZWYsIjcwMjk5Mi40NTkiLCItMzEyLjY4OTQ3NCIsIjcwMjY3OS43NzAiLCI3MDMzMDUuMTQ4IiwiLTIxOTgxODM0MiIsIi0yMjQ4LjIxMjc0IiwiLTIyNDgiLCI2Ni41MjE0NDgiLCI4LjAyNDkzMzIyRS0xODMxIik7CisgIG1hdGh0ZXN0KDE3MixkZWYsIi00NDE0LjM4ODA1IiwiLTE3NjgwLjQ2MzBFLTU4NDM2NDUzNiIsIi00NDE0LjM4ODA1IiwiLTQ0MTQuMzg4MDUiLCI3LjgwNDg0MjQ2RS01ODQzNjQ1MjkiLCIyLjQ5Njc2MDQ0RSs1ODQzNjQ1MzUiLCIiLCIiLCI1LjEzMTY3MzEyRS04Iik7CisgIG1hdGh0ZXN0KDE3MyxkZWYsIjkuNDYzNTA4MDciLCI3ODI2LjY1NDI0IiwiNzgzNi4xMTc3NSIsIi03ODE3LjE5MDczIiwiNzQwNjcuNjA1NiIsIjAuMDAxMjA5MTM4MzkiLCIwIiwiOS40NjM1MDgwNyIsIjMuNjMyNzE0OTVFKzc2MzkiKTsKKyAgbWF0aHRlc3QoMTc0LGRlZiwiMjA3ODE1My43IiwiLTE2OTM0NjA3LjNFKzIzMzU5NDQzOSIsIi0xLjY5MzQ2MDczRSsyMzM1OTQ0NDYiLCIxLjY5MzQ2MDczRSsyMzM1OTQ0NDYiLCItMy41MTkyNzE2OEUrMjMzNTk0NDUyIiwiLTEuMjI3MTYzOEUtMjMzNTk0NDQwIiwiMCIsIjIwNzgxNTMuNyIsIjIuMzE1NDk5MzlFLTEzIik7CisgIG1hdGh0ZXN0KDE3NSxkZWYsIi05MzU5Ljc0NjI5IiwiNy4wNzc2MTc4OEUrMjUyNDU3Njk2IiwiNy4wNzc2MTc4OEUrMjUyNDU3Njk2IiwiLTcuMDc3NjE3ODhFKzI1MjQ1NzY5NiIsIi02LjYyNDQ3MDc3RSsyNTI0NTc3MDAiLCItMS4zMjI0NDMwMUUtMjUyNDU3NjkzIiwiMCIsIi05MzU5Ljc0NjI5IiwiLTYuMjkyODY2NzdFKzI3Iik7CisgIG1hdGh0ZXN0KDE3NixkZWYsIjY2LjIzMTkyODRFKzczMDQ2ODQ3OSIsIjI1LjkzOTE2ODVFKzIyMTE0NzA0NCIsIjYuNjIzMTkyODRFKzczMDQ2ODQ4MCIsIjYuNjIzMTkyODRFKzczMDQ2ODQ4MCIsIjEuNzE4MDAxMTVFKzk1MTYxNTUyNiIsIjIuNTUzMzU1ODhFKzUwOTMyMTQzNSIsIiIsIiIsIiIpOworICBtYXRodGVzdCgxNzcsZGVmLCIzMTc5OTcwODguRS05MDk2ODc0MiIsIi05Nzc0MjYuNDYxIiwiLTk3NzQyNi40NjEiLCI5Nzc0MjYuNDYxIiwiLTMuMTA4MTg3NjhFLTkwOTY4NzI4IiwiLTMuMjUzNDExOUUtOTA5Njg3NDAiLCIwIiwiMy4xNzk5NzA4OEUtOTA5Njg3MzQiLCIiKTsKKyAgbWF0aHRlc3QoMTc4LGRlZiwiMjI3NDczMzg2IiwiLTY3NTkuNjEzOTAiLCIyMjc0NjY2MjYiLCIyMjc0ODAxNDYiLCItMS41Mzc2MzIyNkUrMTIiLCItMzM2NTEuODMxMiIsIi0zMzY1MSIsIjU2MTguNjUxMTAiLCIxLjQwOTkyNjI3RS01NjQ5MyIpOworICBtYXRodGVzdCgxNzksZGVmLCItMzkyMDE5LjQ2MiIsIi0yNDU0NTYuNTAzIiwiLTYzNzQ3NS45NjUiLCItMTQ2NTYyLjk1OSIsIjkuNjIyMzcyNjNFKzEwIiwiMS41OTcxMDM1OSIsIjEiLCItMTQ2NTYyLjk1OSIsIi0zLjA4NjU2NTMzRS0xMzcyOTE3Iik7CisgIG1hdGh0ZXN0KDE4MCxkZWYsIi0zNjE5NTU2LjI4RSs1ODc2NzM1ODMiLCItMy40NTIzNjk3MiIsIi0zLjYxOTU1NjI4RSs1ODc2NzM1ODkiLCItMy42MTk1NTYyOEUrNTg3NjczNTg5IiwiMS4yNDk2MDQ2NUUrNTg3NjczNTkwIiwiMS4wNDg0MjY2MUUrNTg3NjczNTg5IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDE4MSxkZWYsIi0yNDkuNDAwNzA0RS05MjM5MzA4NDgiLCI4MzExMDIuOTE5IiwiODMxMTAyLjkxOSIsIi04MzExMDIuOTE5IiwiLTIuMDcyNzc2NTNFLTkyMzkzMDg0MCIsIi0zLjAwMDg0MDE5RS05MjM5MzA4NTIiLCIwIiwiLTIuNDk0MDA3MDRFLTkyMzkzMDg0NiIsIiIpOworICBtYXRodGVzdCgxODIsZGVmLCI2NTIzNC4yNzM5RSsxNTQ5NDk5MTQiLCItNjk0NTgxODk1IiwiNi41MjM0MjczOUUrMTU0OTQ5OTE4IiwiNi41MjM0MjczOUUrMTU0OTQ5OTE4IiwiLTQuNTMxMDU0NTZFKzE1NDk0OTkyNyIsIi05LjM5MTg3NjUyRSsxNTQ5NDk5MDkiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMTgzLGRlZiwiNDUuMjMxNjIxMyIsIi04ODc3NTA4My40IiwiLTg4Nzc1MDM4LjIiLCI4ODc3NTEyOC42IiwiLTQuMDE1NDQwOTVFKzkiLCItNS4wOTUwODA2OUUtNyIsIjAiLCI0NS4yMzE2MjEzIiwiMS45MjMxNDI1NEUtMTQ2OTYyMDE1Iik7CisgIG1hdGh0ZXN0KDE4NCxkZWYsIjMzMTEwMDM3NS4iLCI0NDIuMzQzMzc4IiwiMzMxMTAwODE3IiwiMzMxMDk5OTMzIiwiMS40NjQ2MDA1OEUrMTEiLCI3NDg1MTQuMzciLCI3NDg1MTQiLCIxNjMuNzU5NzA4IiwiNi42NDAxMTA0M0UrMzc2NSIpOworICBtYXRodGVzdCgxODUsZGVmLCI4MS44MTYyNzY1IiwiNS42MTIzOTUxNUUrNDY3MzcyMTYzIiwiNS42MTIzOTUxNUUrNDY3MzcyMTYzIiwiLTUuNjEyMzk1MTVFKzQ2NzM3MjE2MyIsIjQuNTkxODUyNzNFKzQ2NzM3MjE2NSIsIjEuNDU3Nzc4MjZFLTQ2NzM3MjE2MiIsIjAiLCI4MS44MTYyNzY1IiwiMi45OTk0MjY3N0UrMTEiKTsKKyAgbWF0aHRlc3QoMTg2LGRlZiwiLTU3MzguMTMwNjlFKzc4OTQ2NDA3OCIsIjMzOTY5NzE1LjAiLCItNS43MzgxMzA2OUUrNzg5NDY0MDgxIiwiLTUuNzM4MTMwNjlFKzc4OTQ2NDA4MSIsIi0xLjk0OTIyNjY0RSs3ODk0NjQwODkiLCItMS42ODkxOTAxMkUrNzg5NDY0MDc0IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDE4NyxkZWYsIi03NDEzLjAzOTExIiwiMi43MDYzMDMyMEUtMjU0ODU4MjY0IiwiLTc0MTMuMDM5MTEiLCItNzQxMy4wMzkxMSIsIi0yLjAwNjE5MzE1RS0yNTQ4NTgyNjAiLCItMi43MzkxNzUzOUUrMjU0ODU4MjY3IiwiIiwiIiwiLTQuMDczNjk4NDJFKzExIik7CisgIG1hdGh0ZXN0KDE4OCxkZWYsIi00MTc2OTYuMTgyIiwiMjc0MDAuNjAwMiIsIi0zOTAyOTUuNTgyIiwiLTQ0NTA5Ni43ODIiLCItMS4xNDQ1MTI2MUUrMTAiLCItMTUuMjQ0MDUyMyIsIi0xNSIsIi02Njg3LjE3OTAiLCItMS41ODAyMDMzNEUrMTU0MDE3Iik7CisgIG1hdGh0ZXN0KDE4OSxkZWYsIjY4Ljg1Mzg3MzVFKzY1NTY0NzI4NyIsIjMxOTguMTc5MzNFLTEzMjQ1NDgyNiIsIjYuODg1Mzg3MzVFKzY1NTY0NzI4OCIsIjYuODg1Mzg3MzVFKzY1NTY0NzI4OCIsIjIuMjAyMDcwMzVFKzUyMzE5MjQ2NiIsIjIuMTUyOTA4NDZFKzc4ODEwMjExMSIsIiIsIiIsIiIpOworICBtYXRodGVzdCgxOTAsZGVmLCItNjgxNy4wNDI0NiIsIjQzNDQyMC40MzkiLCI0Mjc2MDMuMzk3IiwiLTQ0MTIzNy40ODEiLCItMi45NjE0NjI1OEUrOSIsIi0wLjAxNTY5MjI2OTIiLCIwIiwiLTY4MTcuMDQyNDYiLCI1Ljk0MTQzNTE4RSsxNjY1MzkwIik7CisgIG1hdGh0ZXN0KDE5MSxkZWYsIjg1NzguMjc1MTEiLCI2NDcwNDIuMzQxRS00OTA5MjQzMzQiLCI4NTc4LjI3NTExIiwiODU3OC4yNzUxMSIsIjUuNTUwNTA3MjFFLTQ5MDkyNDMyNSIsIjEuMzI1NzY3MkUrNDkwOTI0MzMyIiwiIiwiIiwiMy45ODQ3Mzg0NkUrMjMiKTsKKyAgbWF0aHRlc3QoMTkyLGRlZiwiNDEyNC4xMTYxNUUrNzMzMTA5NDI0IiwiNTk3Mzg1ODI4RSszNzU5Mjg3NDUiLCI0LjEyNDExNjE1RSs3MzMxMDk0MjciLCI0LjEyNDExNjE1RSs3MzMxMDk0MjciLCIiLCI2LjkwMzYwNTZFKzM1NzE4MDY3MyIsIiIsIiIsIiIpOworICBtYXRodGVzdCgxOTMsZGVmLCIxMDIuNzE0NDAwIiwiLTkxOTAxNy40NjgiLCItOTE4OTE0Ljc1NCIsIjkxOTEyMC4xODIiLCItOTQzOTYzMjcuOCIsIi0wLjAwMDExMTc2NTQ0OSIsIjAiLCIxMDIuNzE0NDAwIiwiNC4wNDI5NTY4OUUtMTg0ODcyNCIpOworICBtYXRodGVzdCgxOTQsZGVmLCItNDYxNC4zMzAxNUUrOTk2Nzc4NzMzIiwiLTQzMy41NjA4MTJFKzIyODYwNTk5IiwiLTQuNjE0MzMwMTVFKzk5Njc3ODczNiIsIi00LjYxNDMzMDE1RSs5OTY3Nzg3MzYiLCIiLCIxLjA2NDI4NjcyRSs5NzM5MTgxMzUiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMTk1LGRlZiwiNDU3NDU1MTcwLiIsIjM3MDkyMzAuNDhFKzY3NzAxMDg3OSIsIjMuNzA5MjMwNDhFKzY3NzAxMDg4NSIsIi0zLjcwOTIzMDQ4RSs2NzcwMTA4ODUiLCIxLjY5NjgwNjY2RSs2NzcwMTA4OTQiLCIxLjIzMzI4ODYxRS02NzcwMTA4NzciLCIwIiwiNDU3NDU1MTcwIiwiNC4zNzkxOTM3NkUrMzQiKTsKKyAgbWF0aHRlc3QoMTk2LGRlZiwiLTI1MjI0NjguMTUiLCItNDg0ODIwNDMuNSIsIi01MTAwNDUxMS43IiwiNDU5NTk1NzUuNCIsIjEuMjIyOTQ0MTFFKzE0IiwiMC4wNTIwMjg5MTU2IiwiMCIsIi0yNTIyNDY4LjE1IiwiMS40MjM0ODE3OEUtMzEwMzczNTk1Iik7CisgIG1hdGh0ZXN0KDE5NyxkZWYsIi02NTk4MTEzODQiLCI2Mjc3Ny42MTE4IiwiLTY1OTc0ODYwNiIsIi02NTk4NzQxNjIiLCItNC4xNDIxMzgyOUUrMTMiLCItMTA1MTAuMjk3NiIsIi0xMDUxMCIsIi0xODY4My45ODIwIiwiMy40MzkzNTI0RSs1NTM2NjUiKTsKKyAgbWF0aHRlc3QoMTk4LGRlZiwiNDQyNC45NDE3NiIsIi04MjU4NDguMjAiLCItODIxNDIzLjI1OCIsIjgzMDI3My4xNDIiLCItMy42NTQzMzAxOUUrOSIsIi0wLjAwNTM1ODA1NzA0IiwiMCIsIjQ0MjQuOTQxNzYiLCIzLjQyMTUyNzc1RS0zMDEwOTY2Iik7CisgIG1hdGh0ZXN0KDE5OSxkZWYsIjQzLjY0NDE4ODQiLCItNjUwOS44OTY2M0UtNjE0MTY5Mzc3IiwiNDMuNjQ0MTg4NCIsIjQzLjY0NDE4ODQiLCItMi44NDExOTE1NUUtNjE0MTY5MzcyIiwiLTYuNzA0MjgyODZFKzYxNDE2OTM3NCIsIiIsIiIsIjMuMzE1MjQwNTZFLTEyIik7CisgIG1hdGh0ZXN0KDIwMCxkZWYsIjg5Ny4zODgzODFFLTg0Mzg2NDg3NiIsIjg0MTk1LjEzNjkiLCI4NDE5NS4xMzY5IiwiLTg0MTk1LjEzNjkiLCI3LjU1NTU3Mzc2RS04NDM4NjQ4NjkiLCIxLjA2NTg0MzQ4RS04NDM4NjQ4NzgiLCIwIiwiOC45NzM4ODM4MUUtODQzODY0ODc0IiwiIik7CisgIG1hdGh0ZXN0KDIwMSxkZWYsIjc5NjE5OTgyNSIsIjQ5Ni43NjgzNCIsIjc5NjIwMDMyMiIsIjc5NjE5OTMyOCIsIjMuOTU1MjY4NjVFKzExIiwiMTYwMjc1OC43OSIsIjE2MDI3NTgiLCIzOTMuOTE4MjgiLCI2LjQyNjQ3MjY0RSs0NDIzIik7CisgIG1hdGh0ZXN0KDIwMixkZWYsIjU3MzU4MzU4MiIsIjE1OTguNjk1MjEiLCI1NzM1ODUxODEiLCI1NzM1ODE5ODMiLCI5LjE2OTg1MzI1RSsxMSIsIjM1ODc4Mi4zMjMiLCIzNTg3ODIiLCI1MTcuMTY1NzgiLCI5LjkxMTU2MzAyRSsxNDAwNCIpOworICBtYXRodGVzdCgyMDMsZGVmLCItNzgzMTQ0MjcwLiIsIjYzNDcuNzE0OTYiLCItNzgzMTM3OTIyIiwiLTc4MzE1MDYxOCIsIi00Ljk3MTE3NjYwRSsxMiIsIi0xMjMzNzQuMjAyIiwiLTEyMzM3NCIsIi0xMjg0LjUyNDk2IiwiMS4yODExMDgwM0UrNTY0NTgiKTsKKyAgbWF0aHRlc3QoMjA0LGRlZiwiMjY5MDkyMzQuNyIsIjUyNDExLjUwODEiLCIyNjk2MTY0Ni4yIiwiMjY4NTY4MjMuMiIsIjEuNDEwMzUzNTdFKzEyIiwiNTEzLjQyMjI1NSIsIjUxMyIsIjIyMTMxLjA0NDciLCI5Ljc1ODM2NTI4RSszODk0MTUiKTsKKyAgbWF0aHRlc3QoMjA1LGRlZiwiOC4yMTkxNTI4MiIsIjI0ODU5Ljc4NDFFLTg0MzI4Mjk1OSIsIjguMjE5MTUyODIiLCI4LjIxOTE1MjgyIiwiMi4wNDMyNjM2NUUtODQzMjgyOTU0IiwiMy4zMDYyMDQ0M0UrODQzMjgyOTU1IiwiIiwiIiwiNjcuNTU0NDczMSIpOworICBtYXRodGVzdCgyMDYsZGVmLCItNjg4LjM4NzcxMCIsIjgyNzgzLjUyMDdFLTgzMTg3MDg1OCIsIi02ODguMzg3NzEwIiwiLTY4OC4zODc3MTAiLCItNS42OTg3MTU4MkUtODMxODcwODUxIiwiLTguMzE1NTE2MjNFKzgzMTg3MDg1NSIsIiIsIiIsIjUuMDQyNzIwMTJFKzIyIik7CisgIG1hdGh0ZXN0KDIwNyxkZWYsIi05NzkyMjMyLiIsIi0xNzQ5LjAxMTY2IiwiLTk3OTM5ODEuMDEiLCItOTc5MDQ4Mi45OSIsIjEuNzEyNjcyNzlFKzEwIiwiNTU5OC43MjMxMSIsIjU1OTgiLCItMTI2NC43MjczMiIsIi04Ljg2OTg1Njc0RS0xMjIyOCIpOworICBtYXRodGVzdCgyMDgsZGVmLCItMTMwLjc2NTYwMCIsIjguNjc0Mzc0MjciLCItMTIyLjA5MTIyNiIsIi0xMzkuNDM5OTc0IiwiLTExMzQuMzA5NzYiLCItMTUuMDc0OTMxNyIsIi0xNSIsIi0wLjY0OTk4NTk1IiwiLTEuMTE3OTk5NDdFKzE5Iik7CisgIG1hdGh0ZXN0KDIwOSxkZWYsIjkxNy4yNTkxMDIiLCItMzY4NjQwLjQyNiIsIi0zNjc3MjMuMTY3IiwiMzY5NTU3LjY4NSIsIi0zMzgxMzg3ODYiLCItMC4wMDI0ODgyMjE2OSIsIjAiLCI5MTcuMjU5MTAyIiwiOC42NzEwNDI1NUUtMTA5MjA5NCIpOworICBtYXRodGVzdCgyMTAsZGVmLCItNC45NzI1NjMxIiwiLTI5NDU2MzcxNy4iLCItMjk0NTYzNzIyIiwiMjk0NTYzNzEyIiwiMS40NjQ3MzY2N0UrOSIsIjEuNjg4MTExMkUtOCIsIjAiLCItNC45NzI1NjMxIiwiLTYuMjc5NjI1ODRFLTIwNTE4NzI4NCIpOworICBtYXRodGVzdCgyMTEsZGVmLCItNjA5NjI4ODcuMkUtNTE0MjQ5NjYxIiwiLTI0MzAyMS40MDciLCItMjQzMDIxLjQwNyIsIjI0MzAyMS40MDciLCIxLjQ4MTUyODY2RS01MTQyNDk2NDgiLCIyLjUwODUzOThFLTUxNDI0OTY1OSIsIjAiLCItNi4wOTYyODg3MkUtNTE0MjQ5NjU0IiwiIik7CisgIG1hdGh0ZXN0KDIxMixkZWYsIi01NTM4OTIxOS44IiwiLTM3NzIyMDBFKzk4MTg2NjM5MyIsIi0zLjc3MjIwMDAwRSs5ODE4NjYzOTkiLCIzLjc3MjIwMDAwRSs5ODE4NjYzOTkiLCIyLjA4OTM5MjE1RSs5ODE4NjY0MDciLCIxLjQ2ODM1MzIxRS05ODE4NjYzOTIiLCIwIiwiLTU1Mzg5MjE5LjgiLCIxLjA2MjQyNjc4RS0zMSIpOworICBtYXRodGVzdCgyMTMsZGVmLCI2ODEuNjY2MDEwIiwiNjI2ODg2NzAwIiwiNjI2ODg3MzgyIiwiLTYyNjg4NjAxOCIsIjQuMjczMjczNTZFKzExIiwiMC4wMDAwMDEwODczODMxMSIsIjAiLCI2ODEuNjY2MDEwIiwiIik7CisgIG1hdGh0ZXN0KDIxNCxkZWYsIjYuNDI2NTIxMzgiLCI1MzQ2NTg5NC41IiwiNTM0NjU5MDAuOSIsIi01MzQ2NTg4OC4xIiwiMzQzNTk5NzE0IiwiMS4yMDE5ODUyRS03IiwiMCIsIjYuNDI2NTIxMzgiLCI0LjYxMTU1NTMyRSs0MzE5OTE1NyIpOworICBtYXRodGVzdCgyMTUsZGVmLCI1NjE1NDY2NTYiLCI2NTE0MDguNDc2IiwiNTYyMTk4MDY0IiwiNTYwODk1MjQ4IiwiMy42NTc5NjI1MUUrMTQiLCI4NjIuMDQ5OTY4IiwiODYyIiwiMzI1NDkuNjg4IiwiOC42MDUyMzc3RSs1Njk5NDE5Iik7CisgIG1hdGh0ZXN0KDIxNixkZWYsIjc4NDU3NzguMzZFLTc5OTUxMTM5IiwiOS40NTg1OTA0NyIsIjkuNDU4NTkwNDciLCItOS40NTg1OTA0NyIsIjcuNDIxMDAwNDRFLTc5OTUxMTMyIiwiOC4yOTQ4NzA1NkUtNzk5NTExMzQiLCIwIiwiNy44NDU3NzgzNkUtNzk5NTExMzMiLCIxLjEyNjQ4MjE2RS03MTk1NjAxODkiKTsKKyAgbWF0aHRlc3QoMjE3LGRlZiwiNTQ0ODYuMjExMiIsIjEwLjc1NjUwNzgiLCI1NDQ5Ni45Njc3IiwiNTQ0NzUuNDU0NyIsIjU4NjA4MS4zNTYiLCI1MDY1LjQxODI4IiwiNTA2NSIsIjQuNDk5MTkzMCIsIjEuMjU2NDcxNjhFKzUyIik7CisgIG1hdGh0ZXN0KDIxOCxkZWYsIjE2NTc2NDgyLjUiLCItMjIxNzcyMC44MyIsIjE0MzU4NzYxLjciLCIxODc5NDIwMy4zIiwiLTMuNjc2MjAxMDVFKzEzIiwiLTcuNDc0NTU3NzkiLCItNyIsIjEwNTI0MzYuNjkiLCIxLjM4MjU5Mzc0RS0xNjAxMDgyMCIpOworICBtYXRodGVzdCgyMTksZGVmLCI2MS4yNzkzNzg3RS0zOTIwNzAxMTEiLCI2LjIyNTc1NjUxIiwiNi4yMjU3NTY1MSIsIi02LjIyNTc1NjUxIiwiMy44MTUxMDQ5MUUtMzkyMDcwMTA5IiwiOS44NDI4ODA3MkUtMzkyMDcwMTExIiwiMCIsIjYuMTI3OTM3ODdFLTM5MjA3MDExMCIsIiIpOworICBtYXRodGVzdCgyMjAsZGVmLCI1MTE1MTM2LjM5IiwiLTY1MzY3NDM3Mi4iLCItNjQ4NTU5MjM2IiwiNjU4Nzg5NTA4IiwiLTMuMzQzNjMzNTdFKzE1IiwiLTAuMDA3ODI1MjA1NjUiLCIwIiwiNTExNTEzNi4zOSIsIiIpOworICBtYXRodGVzdCgyMjEsZGVmLCItNy44NDIzODM2NkUtNDE2NDc3MzM5IiwiLTM3NDMyNzU4LjlFKzk3MzY5MzkzIiwiLTMuNzQzMjc1ODlFKzk3MzY5NDAwIiwiMy43NDMyNzU4OUUrOTczNjk0MDAiLCIyLjkzNTYyMDU3RS0zMTkxMDc5MzgiLCIyLjA5NTA1ODk1RS01MTM4NDY3MzkiLCIwIiwiLTcuODQyMzgzNjZFLTQxNjQ3NzMzOSIsIiIpOworICBtYXRodGVzdCgyMjIsZGVmLCItMzg3NzgxLjNFKzI4NDEwODM4MCIsIi0yMTgwODUuNTkyIiwiLTMuODc3ODEzMDBFKzI4NDEwODM4NSIsIi0zLjg3NzgxMzAwRSsyODQxMDgzODUiLCI4LjQ1Njk1MTQ0RSsyODQxMDgzOTAiLCIxLjc3ODExNTE3RSsyODQxMDgzODAiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMjIzLGRlZiwiLTUzNTMuMTc3MzYiLCIzLjM5MzMyMzQ2RSs1NDY2ODUzNTkiLCIzLjM5MzMyMzQ2RSs1NDY2ODUzNTkiLCItMy4zOTMzMjM0NkUrNTQ2Njg1MzU5IiwiLTEuODE2NTA2MjNFKzU0NjY4NTM2MyIsIi0xLjU3NzU2MTc3RS01NDY2ODUzNTYiLCIwIiwiLTUzNTMuMTc3MzYiLCItMS41MzQwMzM2OUUrMTEiKTsKKyAgbWF0aHRlc3QoMjI0LGRlZiwiLTIwODM3LjI5MDBFLTE2ODY1Mjc3MiIsIi04MjM2Ljc4MzA1RS03MTI4MTkxNzMiLCItMi4wODM3MjkwMEUtMTY4NjUyNzY4IiwiLTIuMDgzNzI5MDBFLTE2ODY1Mjc2OCIsIjEuNzE2MzIyMzdFLTg4MTQ3MTkzNyIsIjIuNTI5Nzg0OTdFKzU0NDE2NjQwMSIsIiIsIiIsIiIpOworICBtYXRodGVzdCgyMjUsZGVmLCItOTg1NzMuODcyMkUrODI5MDIyMzY2IiwiMzA5MDExLjAwNyIsIi05Ljg1NzM4NzIyRSs4MjkwMjIzNzAiLCItOS44NTczODcyMkUrODI5MDIyMzcwIiwiLTMuMDQ2MDQxMTVFKzgyOTAyMjM3NiIsIi0zLjE4OTk3OTMyRSs4MjkwMjIzNjUiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMjI2LGRlZiwiNDk3MzA3NTAuNyIsIi01MzE1LjEwNjM2RS0yOTk1ODY5OTEiLCI0OTczMDc1MC43IiwiNDk3MzA3NTAuNyIsIi0yLjY0MzI0MjI5RS0yOTk1ODY5ODAiLCItOS4zNTY0OTIxMUUrMjk5NTg2OTk0IiwiIiwiIiwiMy4yODc1NjkzNkUtMzkiKTsKKyAgbWF0aHRlc3QoMjI3LGRlZiwiMTUzOTUyMy40MCIsIi05NjIzODguNTgxIiwiNTc3MTM0LjgyIiwiMjUwMTkxMS45OCIsIi0xLjQ4MTYxOTc0RSsxMiIsIi0xLjU5OTY5MDAxIiwiLTEiLCI1NzcxMzQuODE5IiwiMy4xMDE0NDgzNEUtNTk1NDY3MyIpOworICBtYXRodGVzdCgyMjgsZGVmLCI4MTU5Ni4yMTIxIiwiLTM3NjAwLjk2NTMiLCI0Mzk5NS4yNDY4IiwiMTE5MTk3LjE3NyIsIi0zLjA2ODA5NjM0RSs5IiwiLTIuMTcwMDU2MzEiLCItMiIsIjYzOTQuMjgxNSIsIjEuOTc4NzgyOTlFLTE4NDY4NCIpOworICBtYXRodGVzdCgyMjksZGVmLCI1OTAxNDYxOTkiLCItMTQyNTQwNC42MSIsIjU4ODcyMDc5NCIsIjU5MTU3MTYwNCIsIi04LjQxMTk3MTEzRSsxNCIsIi00MTQuMDIwMTI4IiwiLTQxNCIsIjI4NjkwLjQ2IiwiMi4wNDY1MDk5NEUtMTI1MDIxNzAiKTsKKyAgbWF0aHRlc3QoMjMwLGRlZiwiMTk2LjA1NTQzIiwiNTA1LjkzNjMwNSIsIjcwMS45OTE3MzUiLCItMzA5Ljg4MDg3NSIsIjk5MTkxLjU1OTgiLCIwLjM4NzUxMDEwNCIsIjAiLCIxOTYuMDU1NDMiLCI4Ljc4NDM3Mzk3RSsxMTU5Iik7CisgIG1hdGh0ZXN0KDIzMSxkZWYsIjc3LjgwNTg0NDkiLCItNjQyLjI3NTI3NCIsIi01NjQuNDY5NDI5IiwiNzIwLjA4MTExOSIsIi00OTk3Mi43NzA0IiwiLTAuMTIxMTQwOTYzIiwiMCIsIjc3LjgwNTg0NDkiLCI5LjMzNTgyNjI2RS0xMjE1Iik7CisgIG1hdGh0ZXN0KDIzMixkZWYsIjE0NjguNjA2ODQiLCIxMDA2OC4xMzgiLCIxMTUzNi43NDQ4IiwiLTg1OTkuNTMxMiIsIjE0Nzg2MTM2LjMiLCIwLjE0NTg2Njc3NyIsIjAiLCIxNDY4LjYwNjg0IiwiMi41NDEyMjQ4NEUrMzE4ODQiKTsKKyAgbWF0aHRlc3QoMjMzLGRlZiwiNC45ODc3NDc2N0UtMzg3OTY4NjMyIiwiNC40MTczMTQzOUUtNTc4ODEyMzc2IiwiNC45ODc3NDc2N0UtMzg3OTY4NjMyIiwiNC45ODc3NDc2N0UtMzg3OTY4NjMyIiwiMi4yMDMyNDQ5NkUtOTY2NzgxMDA3IiwiMS4xMjkxMzU3N0UrMTkwODQzNzQ0IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDIzNCxkZWYsIjk4MS4wOTEwNTkiLCItOTIyMzguOTkzMCIsIi05MTI1Ny45MDIwIiwiOTMyMjAuMDg0MSIsIi05MDQ5NDg1MS4zIiwiLTAuMDEwNjM2NDAyNSIsIjAiLCI5ODEuMDkxMDU5IiwiNS4yOTk0MzM0MkUtMjc1OTUzIik7CisgIG1hdGh0ZXN0KDIzNSxkZWYsIi0zNjA2LjI0OTkyIiwiODI5MDIyNC43MCIsIjgyODY2MTguNDUiLCItODI5MzgzMC45NSIsIi0yLjk4OTY2MjIyRSsxMCIsIi0wLjAwMDQzNTAwMDI2MiIsIjAiLCItMzYwNi4yNDk5MiIsIi0xLjIzNzQ3MTA3RSsyOTQ4ODc5MyIpOworICBtYXRodGVzdCgyMzYsZGVmLCItODk3ODU3MS4zNSIsIjkyMjQzLjQ3OTYiLCItODg4NjMyNy44NyIsIi05MDcwODE0LjgzIiwiLTguMjgyMTQ2NjNFKzExIiwiLTk3LjMzNTU2NjYiLCItOTciLCItMzA5NTMuODI4OCIsIi00Ljk1NzYyODEzRSs2NDEzODQiKTsKKyAgbWF0aHRlc3QoMjM3LGRlZiwiLTYxOTY4LjE5OTJFKzgxMDA2MDQ3OCIsIjQ3NDI5NDY3MS5FKzE3OTI2MzQxNCIsIi02LjE5NjgxOTkyRSs4MTAwNjA0ODIiLCItNi4xOTY4MTk5MkUrODEwMDYwNDgyIiwiLTIuOTM5MTE4NjdFKzk4OTMyMzkwNSIsIi0xLjMwNjUzMzc0RSs2MzA3OTcwNjAiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMjM4LGRlZiwiNjEyOTg0MzEuNkUtNzU0NDI5MDQxIiwiLTI1ODQ4NjIuNzkiLCItMjU4NDg2Mi43OSIsIjI1ODQ4NjIuNzkiLCItMS41ODQ0ODAzNUUtNzU0NDI5MDI3IiwiLTIuMzcxNDM4NTFFLTc1NDQyOTA0MCIsIjAiLCI2LjEyOTg0MzE2RS03NTQ0MjkwMzQiLCIiKTsKKyAgbWF0aHRlc3QoMjM5LGRlZiwiNjIxMDM5LjA2NCIsIi01MzUxNTM5LjYyIiwiLTQ3MzA1MDAuNTYiLCI1OTcyNTc4LjY4IiwiLTMuMzIzNTE1MTZFKzEyIiwiLTAuMTE2MDQ4NjcyIiwiMCIsIjYyMTAzOS4wNjQiLCIyLjQxMTYzMzEyRS0zMTAwMjEwOCIpOworICBtYXRodGVzdCgyNDAsZGVmLCItMTkuNjAwNzYwNSIsIi01NzkwNTY5Ni4iLCItNTc5MDU3MTUuNiIsIjU3OTA1Njc2LjQiLCIxLjEzNDk5NTY4RSs5IiwiMy4zODQ5NDUxNUUtNyIsIjAiLCItMTkuNjAwNzYwNSIsIjEuMDU2NjM2NDZFLTc0ODI5OTYzIik7CisgIG1hdGh0ZXN0KDI0MSxkZWYsIjM2MjYuMTMxMDlFKzY4NzAzMDM0NiIsIjE4OS44OTYwMDQiLCIzLjYyNjEzMTA5RSs2ODcwMzAzNDkiLCIzLjYyNjEzMTA5RSs2ODcwMzAzNDkiLCI2Ljg4NTg3ODA0RSs2ODcwMzAzNTEiLCIxLjkwOTUzNTIzRSs2ODcwMzAzNDciLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMjQyLGRlZiwiLTI0OTMzNC4wMjYiLCItNy41NDczNTgzNEUtMTQxMzcxODgiLCItMjQ5MzM0LjAyNiIsIi0yNDkzMzQuMDI2IiwiMS44ODE4MTMyNEUtMTQxMzcxODIiLCIzLjMwMzU5MzMyRSsxNDEzNzE5MiIsIiIsIiIsIjYuNjk0OTU0MDhFLTQ0Iik7CisgIG1hdGh0ZXN0KDI0MyxkZWYsIjQxNzYxMzkyOC4iLCItOTI1MjEzLjIxNiIsIjQxNjY4ODcxNSIsIjQxODUzOTE0MSIsIi0zLjg2MzgxOTI1RSsxNCIsIi00NTEuMzcwNDc0IiwiLTQ1MSIsIjM0Mjc2Ny41ODQiLCI4LjM4NDMwMDg1RS03OTc2MDU0Iik7CisgIG1hdGh0ZXN0KDI0NCxkZWYsIjIzLjgzMjAzMDkiLCItNTAwNzQ5OTYuMSIsIi01MDA3NDk3Mi4zIiwiNTAwNzUwMTkuOSIsIi0xLjE5MzM4ODg1RSs5IiwiLTQuNzU5MjY3NjVFLTciLCIwIiwiMjMuODMyMDMwOSIsIjUuODE0NjYzODdFLTY4OTYxMzM1Iik7CisgIG1hdGh0ZXN0KDI0NSxkZWYsIjQ5Nzg5Njc3LjciLCItMTMxODI3ODEyRSsxNTY0MTI1MzQiLCItMS4zMTgyNzgxMkUrMTU2NDEyNTQyIiwiMS4zMTgyNzgxMkUrMTU2NDEyNTQyIiwiLTYuNTYzNjY0MjdFKzE1NjQxMjU0OSIsIi0zLjc3Njg3MjA0RS0xNTY0MTI1MzUiLCIwIiwiNDk3ODk2NzcuNyIsIjIuMDA4NDQ4NDNFLTgiKTsKKyAgbWF0aHRlc3QoMjQ2LGRlZiwiLTg5MDcxNjMuNjFFLTc0MTg2NzI0NiIsIjc3MzY1MS4yODhFLTQ3MjAzMzI4MiIsIjcuNzM2NTEyODhFLTQ3MjAzMzI3NyIsIi03LjczNjUxMjg4RS00NzIwMzMyNzciLCIiLCItMS4xNTEzMTUwNEUtMjY5ODMzOTYzIiwiMCIsIi04LjkwNzE2MzYxRS03NDE4NjcyNDAiLCIiKTsKKyAgbWF0aHRlc3QoMjQ3LGRlZiwiNTE0MDIxNzExLkUrNDYzNTM2NjQ2IiwiNjE3NDQxNjU5LiIsIjUuMTQwMjE3MTFFKzQ2MzUzNjY1NCIsIjUuMTQwMjE3MTFFKzQ2MzUzNjY1NCIsIjMuMTczNzg0MThFKzQ2MzUzNjY2MyIsIjguMzI1MDI0NzhFKzQ2MzUzNjY0NSIsIiIsIiIsIiIpOworICBtYXRodGVzdCgyNDgsZGVmLCI5OTgxNzU3NTAiLCIyLjM5Mjg1NDc4IiwiOTk4MTc1NzUyIiwiOTk4MTc1NzQ4IiwiMi4zODg0ODk2MUUrOSIsIjQxNzE0ODQ4NyIsIjQxNzE0ODQ4NiIsIjEuMzA1MTM2OTIiLCI5Ljk2MzU0ODI4RSsxNyIpOworICBtYXRodGVzdCgyNDksZGVmLCI4NzM1NzU0MjYuIiwiNjQ3ODUzLjE1MkUrNDk3NDUwNzgxIiwiNi40Nzg1MzE1MkUrNDk3NDUwNzg2IiwiLTYuNDc4NTMxNTJFKzQ5NzQ1MDc4NiIsIjUuNjU5NDg1OTNFKzQ5NzQ1MDc5NSIsIjEuMzQ4NDE1OEUtNDk3NDUwNzc4IiwiMCIsIjg3MzU3NTQyNiIsIjQuNDQ0MjkwNjRFKzUzIik7CisgIG1hdGh0ZXN0KDI1MCxkZWYsIjQzNTI2MjYuOCIsIi0xMzAzMzgwNDguRS03NDQ1NjA5MTEiLCI0MzUyNjI2LjgwIiwiNDM1MjYyNi44MCIsIi01LjY3MzEyODgxRS03NDQ1NjA4OTciLCItMy4zMzk0OTA1NUUrNzQ0NTYwOTA5IiwiIiwiIiwiMi4yOTc0NjMyMkUtNyIpOworICBtYXRodGVzdCgyNTEsZGVmLCI0MzcuMjg2OTYwIiwiNy4zNzU2MDgzNSIsIjQ0NC42NjI1NjgiLCI0MjkuOTExMzUyIiwiMzIyNS4yNTczNSIsIjU5LjI4ODI1NjUiLCI1OSIsIjIuMTI2MDY3MzUiLCIzLjA1NzQ5NDUyRSsxOCIpOworICBtYXRodGVzdCgyNTIsZGVmLCI4NDk4MjgwLjQ1RSsyMjA1MTE1MjIiLCI1ODg2MTc2MTIiLCI4LjQ5ODI4MDQ1RSsyMjA1MTE1MjgiLCI4LjQ5ODI4MDQ1RSsyMjA1MTE1MjgiLCI1LjAwMjIzNzU0RSsyMjA1MTE1MzciLCIxLjQ0Mzc2OTMxRSsyMjA1MTE1MjAiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMjUzLGRlZiwiLTUzMjAzODcuNzciLCItNzY3MzIzNy40NiIsIi0xMjk5MzYyNS4yIiwiMjM1Mjg0OS42OSIsIjQuMDgyNDU5ODdFKzEzIiwiMC42OTMzNjkzNjMiLCIwIiwiLTUzMjAzODcuNzciLCItMS4zMDExMzc0NUUtNTE2MDk3NTciKTsKKyAgbWF0aHRlc3QoMjU0LGRlZiwiNTg3NjU1Mzc1IiwiLTQuOTc0ODM2NiIsIjU4NzY1NTM3MCIsIjU4NzY1NTM4MCIsIi0yLjkyMzQ4OTQ3RSs5IiwiLTExODEyNTU2MyIsIi0xMTgxMjU1NjMiLCIwLjc5MTk5NDIiLCIxLjQyNjg3NjY3RS00NCIpOworICBtYXRodGVzdCgyNTUsZGVmLCIxMjY2MDk4LjQ0IiwiLTI2NjEuNjQ5MDRFLTY0MjYwMTE0MiIsIjEyNjYwOTguNDQiLCIxMjY2MDk4LjQ0IiwiLTMuMzY5OTA5NzBFLTY0MjYwMTEzMyIsIi00Ljc1NjgxOTYzRSs2NDI2MDExNDQiLCIiLCIiLCI0LjkyNzE3MDM2RS0xOSIpOworICBtYXRodGVzdCgyNTYsZGVmLCIzLjkyNzM3NDYzRSs0ODI4NzM0ODMiLCItNjg1LjUyMjc0NyIsIjMuOTI3Mzc0NjNFKzQ4Mjg3MzQ4MyIsIjMuOTI3Mzc0NjNFKzQ4Mjg3MzQ4MyIsIi0yLjY5MjMwNDY0RSs0ODI4NzM0ODYiLCItNS43MjkwMjE2MUUrNDgyODczNDgwIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDI1NyxkZWYsIjIyODI2NDk0LjEiLCI5ODYxODk0NzQuIiwiMS4wMDkwMTU5N0UrOSIsIi05NjMzNjI5ODAiLCIyLjI1MTEyNDgyRSsxNiIsIjAuMDIzMTQ2MTU0NyIsIjAiLCIyMjgyNjQ5NC4xIiwiIik7CisgIG1hdGh0ZXN0KDI1OCxkZWYsIi02NDczNDIuMzgwIiwiLTQ5ODgxNjM4NiIsIi00OTk0NjM3MjgiLCI0OTgxNjkwNDQiLCIzLjIyOTA0OTg2RSsxNCIsIjAuMDAxMjk3NzU2ODUiLCIwIiwiLTY0NzM0Mi4zODAiLCIiKTsKKyAgbWF0aHRlc3QoMjU5LGRlZiwiMzkzMDkyMzczLiIsIi0yNS43MjI2ODIyIiwiMzkzMDkyMzQ3IiwiMzkzMDkyMzk5IiwiLTEuMDExMTM5MDJFKzEwIiwiLTE1MjgxOTM1LjYiLCItMTUyODE5MzUiLCIxNS41OTM5NDMwIiwiMy40OTI1MjgzOUUtMjI0Iik7CisgIG1hdGh0ZXN0KDI2MCxkZWYsIjIuOTYyNTM0OTIiLCIyMC43NDQ0ODg4IiwiMjMuNzA3MDIzNyIsIi0xNy43ODE5NTM5IiwiNjEuNDU2MjcyNSIsIjAuMTQyODEwNjk4IiwiMCIsIjIuOTYyNTM0OTIiLCI4LjAzNDAyMjQ2RSs5Iik7CisgIG1hdGh0ZXN0KDI2MSxkZWYsIjUzNTUzLjM3NTBFKzM4Njk1NTQyMyIsIi03MzI0NzA4NzYiLCI1LjM1NTMzNzUwRSszODY5NTU0MjciLCI1LjM1NTMzNzUwRSszODY5NTU0MjciLCItMy45MjI2Mjg3NUUrMzg2OTU1NDM2IiwiLTcuMzExMzMxNjVFKzM4Njk1NTQxOCIsIiIsIiIsIiIpOworICBtYXRodGVzdCgyNjIsZGVmLCItNjk2NDUxLjQwNkUtMjg2NTM1OTE3IiwiLTczMDg2MDkwLjgiLCItNzMwODYwOTAuOCIsIjczMDg2MDkwLjgiLCI1LjA5MDA5MTA3RS0yODY1MzU5MDQiLCI5LjUyOTE5MjE5RS0yODY1MzU5MjAiLCIwIiwiLTYuOTY0NTE0MDZFLTI4NjUzNTkxMiIsIiIpOworICBtYXRodGVzdCgyNjMsZGVmLCIxNTUxLjI5OTU3IiwiLTU4MDM1ODYyMi5FKzExNzAxNzI2NSIsIi01LjgwMzU4NjIyRSsxMTcwMTcyNzMiLCI1LjgwMzU4NjIyRSsxMTcwMTcyNzMiLCItOS4wMDMxMDA4MUUrMTE3MDE3Mjc2IiwiLTIuNjczMDAxNjhFLTExNzAxNzI3MSIsIjAiLCIxNTUxLjI5OTU3IiwiNy4xNzUwNjcxMUUtMjAiKTsKKyAgbWF0aHRlc3QoMjY0LGRlZiwiLTIwNTEyMzAwNi5FLTIxMzc1Mjc5OSIsIi03ODYzODQ2OC42IiwiLTc4NjM4NDY4LjYiLCI3ODYzODQ2OC42IiwiMS42MTMwNTU5MUUtMjEzNzUyNzgzIiwiMi42MDg0MzA4M0UtMjEzNzUyNzk5IiwiMCIsIi0yLjA1MTIzMDA2RS0yMTM3NTI3OTEiLCIiKTsKKyAgbWF0aHRlc3QoMjY1LGRlZiwiNzc2MzIuODA3MyIsIi0zMzc4NTQyLjg4RSs2Nzc0NDEzMTkiLCItMy4zNzg1NDI4OEUrNjc3NDQxMzI1IiwiMy4zNzg1NDI4OEUrNjc3NDQxMzI1IiwiLTIuNjIyODU3NjhFKzY3NzQ0MTMzMCIsIi0yLjI5NzgxOTIxRS02Nzc0NDEzMjEiLCIwIiwiNzc2MzIuODA3MyIsIjIuMTM3MjkzMzFFLTE1Iik7CisgIG1hdGh0ZXN0KDI2NixkZWYsIjMwNjg5OTkuMzciLCIyLjIxMDA2MjEyIiwiMzA2OTAwMS41OCIsIjMwNjg5OTcuMTYiLCI2NzgyNjc5LjI1IiwiMTM4ODY0OC40NiIsIjEzODg2NDgiLCIxLjAyNzE4NjI0IiwiOS40MTg3NTcxM0UrMTIiKTsKKyAgbWF0aHRlc3QoMjY3LGRlZiwiNjI1NTI0Mjc0LiIsIjU1LjI0Njg2MjQiLCI2MjU1MjQzMjkiLCI2MjU1MjQyMTkiLCIzLjQ1NTgyNTM1RSsxMCIsIjExMzIyMzQ5LjMiLCIxMTMyMjM0OSIsIjE2Ljc1MjIyMjQiLCI2LjIxNDgyOTQzRSs0ODMiKTsKKyAgbWF0aHRlc3QoMjY4LGRlZiwiNjEyNjkxMzQuOSIsIi04NDU3NjEzMDMuIiwiLTc4NDQ5MjE2OCIsIjkwNzAzMDQzOCIsIi01LjE4MTkwNjM0RSsxNiIsIi0wLjA3MjQ0MjU4NDgiLCIwIiwiNjEyNjkxMzQuOSIsIiIpOworICBtYXRodGVzdCgyNjksZGVmLCItMjg0MC4xMjA5OSIsIi0yODU2Ljc2NzMxRS04Mjc0MzY1MCIsIi0yODQwLjEyMDk5IiwiLTI4NDAuMTIwOTkiLCI4LjExMzU2NDgwRS04Mjc0MzY0NCIsIjkuOTQxNzMwMjJFKzgyNzQzNjQ5IiwiIiwiIiwiLTQuMzY1MDUyNTRFLTExIik7CisgIG1hdGh0ZXN0KDI3MCxkZWYsIjguOTUzODc4MSIsIi03LjU2NjAzMzkxIiwiMS4zODc4NDQxOSIsIjE2LjUxOTkxMjAiLCItNjcuNzQ1MzQ1MyIsIi0xLjE4MzQzMDg3IiwiLTEiLCIxLjM4Nzg0NDE5IiwiMi40MjA1MzA2MUUtOCIpOworICBtYXRodGVzdCgyNzEsZGVmLCItNTYyMzM1NDcuMiIsIjUwOTc1MjUzMCIsIjQ1MzUxODk4MyIsIi01NjU5ODYwNzciLCItMi44NjY1MTkzMEUrMTYiLCItMC4xMTAzMTUzODYiLCIwIiwiLTU2MjMzNTQ3LjIiLCIiKTsKKyAgbWF0aHRlc3QoMjcyLGRlZiwiLTMxNjcuNDc4NTNFLTg1NDg1OTQ5NyIsIi0xMTA4NTIxMTUiLCItMTEwODUyMTE1IiwiMTEwODUyMTE1IiwiMy41MTEyMTY5NEUtODU0ODU5NDg2IiwiMi44NTczOTExNkUtODU0ODU5NTAyIiwiMCIsIi0zLjE2NzQ3ODUzRS04NTQ4NTk0OTQiLCIiKTsKKyAgbWF0aHRlc3QoMjczLGRlZiwiLTU2NTIuNTIwOTIiLCItNjMyMjQzMjQ0LiIsIi02MzIyNDg4OTciLCI2MzIyMzc1OTIiLCIzLjU3Mzc2ODE2RSsxMiIsIjAuMDAwMDA4OTQwNDIxMjMiLCIwIiwiLTU2NTIuNTIwOTIiLCIiKTsKKyAgbWF0aHRlc3QoMjc0LGRlZiwiLTk0Ni4wMDk5MjgiLCI4MjAwOTAuNjZFLTU4OTI3ODAxNSIsIi05NDYuMDA5OTI4IiwiLTk0Ni4wMDk5MjgiLCItNy43NTgxMzkwNkUtNTg5Mjc4MDA3IiwiLTEuMTUzNTQzMTFFKzU4OTI3ODAxMiIsIiIsIiIsIjYuNDE0NTQwNTNFKzIzIik7CisgIG1hdGh0ZXN0KDI3NSxkZWYsIi0zNjcuNzU3NzU4IiwiLTk1OS42MjYwMTYiLCItMTMyNy4zODM3NyIsIjU5MS44NjgyNTgiLCIzNTI5MDkuOTEyIiwiMC4zODMyMzAyOTIiLCIwIiwiLTM2Ny43NTc3NTgiLCIxLjE0OTgyMTk5RS0yNDYzIik7CisgIG1hdGh0ZXN0KDI3NixkZWYsIjgwOTkyNjcyMS5FLTc0NDYxMTU1NCIsIi02Ny42NTYwNTQ5IiwiLTY3LjY1NjA1NDkiLCI2Ny42NTYwNTQ5IiwiLTUuNDc5NjQ0NjdFLTc0NDYxMTU0NCIsIi0xLjE5NzEyMzc4RS03NDQ2MTE1NDciLCIwIiwiOC4wOTkyNjcyMUUtNzQ0NjExNTQ2IiwiIik7CisgIG1hdGh0ZXN0KDI3NyxkZWYsIi0xNzI1LjA4NTU1IiwiNzU1ODYuMzAzMSIsIjczODYxLjIxNzYiLCItNzczMTEuMzg4NyIsIi0xMzAzOTI4MzkiLCItMC4wMjI4MjI3MjY5IiwiMCIsIi0xNzI1LjA4NTU1IiwiMy43MDU0MDU4N0UrMjQ0NjU3Iik7CisgIG1hdGh0ZXN0KDI3OCxkZWYsIjI2NTkuODQxOTFFKzI5MzE0NDkyIiwiLTc0MzcyLjQ1NTFFKzUxODE5NjY4MCIsIi03LjQzNzI0NTUxRSs1MTgxOTY2ODQiLCI3LjQzNzI0NTUxRSs1MTgxOTY2ODQiLCItMS45NzgxODk3M0UrNTQ3NTExMTgwIiwiLTMuNTc2MzgwNEUtNDg4ODgyMTkwIiwiMCIsIjIuNjU5ODQxOTFFKzI5MzE0NDk1IiwiMS4wNjE3MTgxMUUtMjA1MjAxNDY4Iik7CisgIG1hdGh0ZXN0KDI3OSxkZWYsIi05MS4xNDMxMTEzIiwiMTIxNDc1MDcuMCIsIjEyMTQ3NDE1LjkiLCItMTIxNDc1OTguMSIsIi0xLjEwNzE2MTU4RSs5IiwiLTAuMDAwMDA3NTAzMDMwMTUiLCIwIiwiLTkxLjE0MzExMTMiLCItMS41MjQxNzAwNkUrMjM4MDU3NTkiKTsKKyAgbWF0aHRlc3QoMjgwLGRlZiwiLTExMzY3NzguOTFFKzY5Nzc4Mzg3OCIsIi04MDE1NTI1NjkuIiwiLTEuMTM2Nzc4OTFFKzY5Nzc4Mzg4NCIsIi0xLjEzNjc3ODkxRSs2OTc3ODM4ODQiLCI5LjExMTg4MDU2RSs2OTc3ODM4OTIiLCIxLjQxODIyMTI4RSs2OTc3ODM4NzUiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMjgxLGRlZiwiNzMxMjM3NzMuMEUrNDMzMzM0MTQ5IiwiNjMuMzU0ODkzMCIsIjcuMzEyMzc3MzBFKzQzMzMzNDE1NiIsIjcuMzEyMzc3MzBFKzQzMzMzNDE1NiIsIjQuNjMyNzQ4ODFFKzQzMzMzNDE1OCIsIjEuMTU0MTkyOThFKzQzMzMzNDE1NSIsIiIsIiIsIiIpOworICBtYXRodGVzdCgyODIsZGVmLCItOTc2NTQ4NC44IiwiNzk3OS45MDgwMkUtMjM0MDI5NzE1IiwiLTk3NjU0ODQuODAiLCItOTc2NTQ4NC44MCIsIi03Ljc5Mjc2NzA1RS0yMzQwMjk3MDUiLCItMS4yMjM3NTkwN0UrMjM0MDI5NzE4IiwiIiwiIiwiOC4yNzA4NTYxNEUrNTUiKTsKKyAgbWF0aHRlc3QoMjgzLGRlZiwiLTY5NTAxMDI4OCIsIi04LjI2NTgyODIwIiwiLTY5NTAxMDI5NiIsIi02OTUwMTAyODAiLCI1Ljc0NDgzNTY0RSs5IiwiODQwODIzNTMuNCIsIjg0MDgyMzUzIiwiLTMuNDUwMjQ1NDAiLCIxLjgzNjgzNDk1RS03MSIpOworICBtYXRodGVzdCgyODQsZGVmLCIyMzk3NTY0My4zRS0xNTU5NTUyNjQiLCItNTA1NTQ3LjY5MkUrMTM3MjU4OTQ4IiwiLTUuMDU1NDc2OTJFKzEzNzI1ODk1MyIsIjUuMDU1NDc2OTJFKzEzNzI1ODk1MyIsIi0xLjIxMjA4MzExRS0xODY5NjMwMyIsIi00Ljc0MjUwODdFLTI5MzIxNDIxMSIsIjAiLCIyLjM5NzU2NDMzRS0xNTU5NTUyNTciLCIxLjI2MjI1OTUyRSs3Nzk3NzYyODMiKTsKKyAgbWF0aHRlc3QoMjg1LGRlZiwiMjg2Mi45NTkyMSIsIi0zMjYwMTI0OC42RS02MDU4NjEzMzMiLCIyODYyLjk1OTIxIiwiMjg2Mi45NTkyMSIsIi05LjMzMzYwNDQ5RS02MDU4NjEzMjMiLCItOC43ODE3NDcxMkUrNjA1ODYxMzI4IiwiIiwiIiwiNC4yNjE0MjE3NUUtMTEiKTsKKyAgbWF0aHRlc3QoMjg2LGRlZiwiLTEzLjEzMzUxOEUrMjQ2MDkwNTE2IiwiLTguNzEyNjk5MjVFLTk0NTA5MjEwOCIsIi0xLjMxMzM1MTgwRSsyNDYwOTA1MTciLCItMS4zMTMzNTE4MEUrMjQ2MDkwNTE3IiwiMS4xNDQyODM5MkUtNjk5MDAxNTkwIiwiIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDI4NyxkZWYsIi0zNDY3MS4yMjMyIiwiODE3NzEwLjc2MiIsIjc4MzAzOS41MzkiLCItODUyMzgxLjk4NSIsIi0yLjgzNTEwMzIzRSsxMCIsIi0wLjA0MjQwMDM1MDgiLCIwIiwiLTM0NjcxLjIyMzIiLCItNS4zMDc4ODgyOEUrMzcxMjM4MiIpOworICBtYXRodGVzdCgyODgsZGVmLCItMjI0NjQ3NjkiLCI2Mi40MzY2MDYwIiwiLTIyNDY0NzA2LjYiLCItMjI0NjQ4MzEuNCIsIi0xLjQwMjYyMzkzRSs5IiwiLTM1OTgwMS4yNTIiLCItMzU5ODAxIiwiLTE1LjcyNDU5NDAiLCI2LjIxMDQyNTM2RSs0NTUiKTsKKyAgbWF0aHRlc3QoMjg5LGRlZiwiLTk0NTguNjA4ODdFLTU2MzA1MTk2MyIsIjU2NzYwNTYuMDEiLCI1Njc2MDU2LjAxIiwiLTU2NzYwNTYuMDEiLCItNS4zNjg3NTkzN0UtNTYzMDUxOTUzIiwiLTEuNjY2NDA1MTNFLTU2MzA1MTk2NiIsIjAiLCItOS40NTg2MDg4N0UtNTYzMDUxOTYwIiwiIik7CisgIG1hdGh0ZXN0KDI5MCxkZWYsIi01OTEuOTI0MTIzRS05NTMzMTg3NCIsIi0xMzQuNTk2MTg4IiwiLTEzNC41OTYxODgiLCIxMzQuNTk2MTg4IiwiNy45NjcwNzMwNUUtOTUzMzE4NzAiLCI0LjM5Nzc3Nzc3RS05NTMzMTg3NCIsIjAiLCItNS45MTkyNDEyM0UtOTUzMzE4NzIiLCIiKTsKKyAgbWF0aHRlc3QoMjkxLGRlZiwiLTE4MjU2NjA4NS5FKzY4ODcwNjQ2IiwiLTk2MDM0NTk5My4iLCItMS44MjU2NjA4NUUrNjg4NzA2NTQiLCItMS44MjU2NjA4NUUrNjg4NzA2NTQiLCIxLjc1MzI2NjA4RSs2ODg3MDY2MyIsIjEuOTAxMDQ0OUUrNjg4NzA2NDUiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMjkyLGRlZiwiODIzMi41NDg5MyIsIi05OTgyMjAwNEUrODkxOTc5ODQ1IiwiLTkuOTgyMjAwNDBFKzg5MTk3OTg1MiIsIjkuOTgyMjAwNDBFKzg5MTk3OTg1MiIsIi04LjIxNzg5NTMyRSs4OTE5Nzk4NTYiLCItOC4yNDcyMjg2N0UtODkxOTc5ODUwIiwiMCIsIjgyMzIuNTQ4OTMiLCI2Ljk5Mjg5MTU2RS00MCIpOworICBtYXRodGVzdCgyOTMsZGVmLCItNDMzNi45NDMxNyIsIi04MTkzNzMuNjAxRSs1NjMyMzM0MzAiLCItOC4xOTM3MzYwMUUrNTYzMjMzNDM1IiwiOC4xOTM3MzYwMUUrNTYzMjMzNDM1IiwiMy41NTM1NzY3NEUrNTYzMjMzNDM5IiwiNS4yOTI5OTg0MUUtNTYzMjMzNDMzIiwiMCIsIi00MzM2Ljk0MzE3IiwiNy45ODk2OTQwNUUtMzAiKTsKKyAgbWF0aHRlc3QoMjk0LGRlZiwiLTIuMDkwNDQzNjJFLTg3NjUyNzkwOCIsIi02NTE1NDYzLjMzIiwiLTY1MTU0NjMuMzMiLCI2NTE1NDYzLjMzIiwiMS4zNjIwMjA4N0UtODc2NTI3OTAxIiwiMy4yMDg0MzQzM0UtODc2NTI3OTE1IiwiMCIsIi0yLjA5MDQ0MzYyRS04NzY1Mjc5MDgiLCIiKTsKKyAgbWF0aHRlc3QoMjk1LGRlZiwiLTE5NDM0My4zNDQiLCIxLjk1OTI5OTc3IiwiLTE5NDM0MS4zODUiLCItMTk0MzQ1LjMwMyIsIi0zODA3NzYuODY5IiwiLTk5MTkwLjIwNDEiLCItOTkxOTAiLCItMC4zOTk4MTM3MCIsIjMuNzc2OTMzNTRFKzEwIik7CisgIG1hdGh0ZXN0KDI5NixkZWYsIi0zMjYwMDIuOTI3IiwiNDIxNS45OTAzMCIsIi0zMjE3ODYuOTM3IiwiLTMzMDIxOC45MTciLCItMS4zNzQ0MjUxOEUrOSIsIi03Ny4zMjUzNTAzIiwiLTc3IiwiLTEzNzEuNjczOTAiLCI1LjUxODc1ODIxRSsyMzI0MyIpOworICBtYXRodGVzdCgyOTcsZGVmLCItMTIwMzcuODU5MEUrODc2NDI5MDQ0IiwiMzE0LjgxODI3IiwiLTEuMjAzNzg1OTBFKzg3NjQyOTA0OCIsIi0xLjIwMzc4NTkwRSs4NzY0MjkwNDgiLCItMy43ODk3Mzc5NEUrODc2NDI5MDUwIiwiLTMuODIzNzQ4NTRFKzg3NjQyOTA0NSIsIiIsIiIsIiIpOworICBtYXRodGVzdCgyOTgsZGVmLCIyMTAzNjA0NS40RS0xNjI4MDQ4MDkiLCItOTEuNzE0OTIxOSIsIi05MS43MTQ5MjE5IiwiOTEuNzE0OTIxOSIsIi0xLjkyOTMxOTI2RS0xNjI4MDQ4MDAiLCItMi4yOTM2MzM5RS0xNjI4MDQ4MDQiLCIwIiwiMi4xMDM2MDQ1NEUtMTYyODA0ODAyIiwiIik7CisgIG1hdGh0ZXN0KDI5OSxkZWYsIi05NDcwMTkuNTM0IiwiOTkxNi4yOTI4MCIsIi05MzcxMDMuMjQxIiwiLTk1NjkzNS44MjciLCItOS4zOTA5MjI5OUUrOSIsIi05NS41MDEzNjg2IiwiLTk1IiwiLTQ5NzEuNzE4MDAiLCIzLjc2MDI5MDIyRSs1OTI2MSIpOworICBtYXRodGVzdCgzMDAsZGVmLCItNTk4NS44NDEzNiIsIi0xMi40MDkwMTg0RS0xMjM2NDIwNCIsIi01OTg1Ljg0MTM2IiwiLTU5ODUuODQxMzYiLCI3LjQyNzg0MTU2RS0xMjM2NDIwMCIsIjQuODIzNzgzMTNFKzEyMzY0MjA2IiwiIiwiIiwiLTAuMDAwMTY3MDYwODkzIik7CisgIG1hdGh0ZXN0KDMwMSxkZWYsIi04NTM0NDM3OS40IiwiLTY3ODMuMDg2NjlFKzIxODg0MDIxNSIsIi02Ljc4MzA4NjY5RSsyMTg4NDAyMTgiLCI2Ljc4MzA4NjY5RSsyMTg4NDAyMTgiLCI1Ljc4ODk4MzI0RSsyMTg4NDAyMjYiLCIxLjI1ODE5Mzg1RS0yMTg4NDAyMTEiLCIwIiwiLTg1MzQ0Mzc5LjQiLCItMy4wMzIzMjM0N0UtNTYiKTsKKyAgbWF0aHRlc3QoMzAyLGRlZiwiLTk0LjE5NDcwNzBFLTkzODI1NzEwMyIsIjE1MDAzLjI0MCIsIjE1MDAzLjI0MDAiLCItMTUwMDMuMjQwMCIsIi0xLjQxMzIyNTgwRS05MzgyNTcwOTciLCItNi4yNzgyOTEwMkUtOTM4MjU3MTA2IiwiMCIsIi05LjQxOTQ3MDcwRS05MzgyNTcxMDIiLCIiKTsKKyAgbWF0aHRlc3QoMzAzLGRlZiwiLTQ4NDYyMzMuNiIsIi04Mjg5NzY5Ljc2IiwiLTEzMTM2MDAzLjQiLCIzNDQzNTM2LjE2IiwiNC4wMTc0MTYwN0UrMTMiLCIwLjU4NDYwNDEyNSIsIjAiLCItNDg0NjIzMy42IiwiNC4yNTA3NzUyNEUtNTU0MjA0NjUiKTsKKyAgbWF0aHRlc3QoMzA0LGRlZiwiNjcuOTE0NzE5OCIsIi0xMDgzNzM2NDUuRSsyOTE3MTU0MTUiLCItMS4wODM3MzY0NUUrMjkxNzE1NDIzIiwiMS4wODM3MzY0NUUrMjkxNzE1NDIzIiwiLTcuMzYwMTY1NzNFKzI5MTcxNTQyNCIsIi02LjI2NjcxOTE2RS0yOTE3MTU0MjIiLCIwIiwiNjcuOTE0NzE5OCIsIjAuMDE0NzI0MzQ4NSIpOworICBtYXRodGVzdCgzMDUsZGVmLCIxOTU4Ljc3OTk0IiwiNS41NzI4NTEzN0UrNjkwMTM3ODI2IiwiNS41NzI4NTEzN0UrNjkwMTM3ODI2IiwiLTUuNTcyODUxMzdFKzY5MDEzNzgyNiIsIjEuMDkxNTk4OTVFKzY5MDEzNzgzMCIsIjMuNTE0ODYxMjZFLTY5MDEzNzgyNCIsIjAiLCIxOTU4Ljc3OTk0IiwiNS42NDgyNDk2OEUrMTkiKTsKKyAgbWF0aHRlc3QoMzA2LGRlZiwiMjI3ODAzMTQuMyIsIjg4MDUyNzkuODMiLCIzMTU4NTU5NC4xIiwiMTM5NzUwMzQuNSIsIjIuMDA1ODcwNDJFKzE0IiwiMi41ODcxMTk4NiIsIjIiLCI1MTY5NzU0LjY0IiwiMi4zOTEzMjE2OUUrNjQ3ODUzNzMiKTsKKyAgbWF0aHRlc3QoMzA3LGRlZiwiNTk2NzQ1LjE4NCIsIjE5NzYwMjQyMy4iLCIxOTgxOTkxNjgiLCItMTk3MDA1Njc4IiwiMS4xNzkxODI5NEUrMTQiLCIwLjAwMzAxOTkyODQ4IiwiMCIsIjU5Njc0NS4xODQiLCIiKTsKKyAgbWF0aHRlc3QoMzA4LGRlZiwiMTcxLjM0MDQ5NyIsIi00ODAzNDkuOTI0IiwiLTQ4MDE3OC41ODQiLCI0ODA1MjEuMjY0IiwiLTgyMzAzMzk0LjciLCItMC4wMDAzNTY2OTkzMzIiLCIwIiwiMTcxLjM0MDQ5NyIsIjIuMTc5MTQxMDJFLTEwNzMwMzUiKTsKKyAgbWF0aHRlc3QoMzA5LGRlZiwiODI0LjY1NTU1IiwiLTM3OTI4Ny41MzAiLCItMzc4NDYyLjg3NSIsIjM4MDExMi4xODYiLCItMzEyNzgxNTY3IiwiLTAuMDAyMTc0MjIyNjgiLCIwIiwiODI0LjY1NTU1IiwiNi4zNTgyOTI1NkUtMTEwNjEwOCIpOworICBtYXRodGVzdCgzMTAsZGVmLCIxOS4zMTY0MDMxIiwiLTkyMDc2NDQuMjRFKzk4ODExNTA2OSIsIi05LjIwNzY0NDI0RSs5ODgxMTUwNzUiLCI5LjIwNzY0NDI0RSs5ODgxMTUwNzUiLCItMS43Nzg1ODU2OEUrOTg4MTE1MDc3IiwiLTIuMDk3ODY1OTJFLTk4ODExNTA3NSIsIjAiLCIxOS4zMTY0MDMxIiwiMi42NzA5MzcxMUUtMTIiKTsKKyAgbWF0aHRlc3QoMzExLGRlZiwiLTMxMjMuNzc2NDZFKzE3NzgxNDI2NSIsIjk3MzI4NDQzNS5FKzM4MzI1NjExMiIsIjkuNzMyODQ0MzVFKzM4MzI1NjEyMCIsIi05LjczMjg0NDM1RSszODMyNTYxMjAiLCItMy4wNDAzMjMwMUUrNTYxMDcwMzg5IiwiLTMuMjA5NTIwNjJFLTIwNTQ0MTg1MyIsIjAiLCItMy4xMjM3NzY0NkUrMTc3ODE0MjY4IiwiIik7CisgIG1hdGh0ZXN0KDMxMixkZWYsIi04NTAuMTIzOTE1RSs2NjI5NTUzMDkiLCI2Nzc0ODQ5LjgxRS04NDY1NzY4NjUiLCItOC41MDEyMzkxNUUrNjYyOTU1MzExIiwiLTguNTAxMjM5MTVFKzY2Mjk1NTMxMSIsIi01Ljc1OTQ2MTg0RS0xODM2MjE1NDciLCIiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMzEzLGRlZiwiLTIzMzQ5Ljc3MjQiLCIyOTIxLjM1MzU1IiwiLTIwNDI4LjQxODkiLCItMjYyNzEuMTI2MCIsIi02ODIxMjk0MC41IiwiLTcuOTkyNzkyMzgiLCItNyIsIi0yOTAwLjI5NzU1IiwiLTUuNjcwNTU0NkUrMTI3NTkiKTsKKyAgbWF0aHRlc3QoMzE0LGRlZiwiMTg4ODY2NTMuMyIsIjU2ODcwNzQ3Ni4iLCI1ODc1OTQxMjkiLCItNTQ5ODIwODIzIiwiMS4wNzQwOTgwOUUrMTYiLCIwLjAzMzIwOTc4NTUiLCIwIiwiMTg4ODY2NTMuMyIsIiIpOworICBtYXRodGVzdCgzMTUsZGVmLCItOTA1NTI4MTguMCIsIi01NDIuMDM1NjNFLTk4NjYwNjg3OCIsIi05MDU1MjgxOC4wIiwiLTkwNTUyODE4LjAiLCI0LjkwODI4NTM4RS05ODY2MDY4NjgiLCIxLjY3MDYwNjM4RSs5ODY2MDY4ODMiLCIiLCIiLCItMS42NDI0NDI0MUUtNDAiKTsKKyAgbWF0aHRlc3QoMzE2LGRlZiwiNDE1MDExMjYuMUUrNzkxODM4NzY1IiwiLTY5LjY2NTE2NzVFKzIwNDI2ODM0OCIsIjQuMTUwMTEyNjFFKzc5MTgzODc3MiIsIjQuMTUwMTEyNjFFKzc5MTgzODc3MiIsIi0yLjg5MTE4MjkwRSs5OTYxMDcxMjIiLCItNS45NTcyMjc2M0UrNTg3NTcwNDIyIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDMxNyxkZWYsIjc2NzgzMTkzLjNFLTI3MTQ4ODE1NCIsIjM3NjUuMDE4MjlFLTUyMDM0NjAwMyIsIjcuNjc4MzE5MzNFLTI3MTQ4ODE0NyIsIjcuNjc4MzE5MzNFLTI3MTQ4ODE0NyIsIjIuODkwOTAxMjdFLTc5MTgzNDE0NiIsIjIuMDM5Mzg0MzRFKzI0ODg1Nzg1MyIsIiIsIiIsIiIpOworICBtYXRodGVzdCgzMTgsZGVmLCI0MTkyLjk5MjgiLCI5ODc4MjIwMDdFLTE0NjU2MDk4OSIsIjQxOTIuOTkyODAiLCI0MTkyLjk5MjgwIiwiNC4xNDE5MzA1NkUtMTQ2NTYwOTc3IiwiNC4yNDQ2ODQ1NEUrMTQ2NTYwOTgzIiwiIiwiIiwiMS42Nzk3MzY1M0UrMzYiKTsKKyAgbWF0aHRlc3QoMzE5LGRlZiwiLTg5MTg0NS42MjkiLCI0ODI3Nzk1NS4iLCI0NzM4NjEwOS40IiwiLTQ5MTY5ODAwLjYiLCItNC4zMDU2NDgzMUUrMTMiLCItMC4wMTg0NzMxNDQzIiwiMCIsIi04OTE4NDUuNjI5IiwiLTYuMzI5NjQxNDdFKzI4NzI2NzgxNyIpOworICBtYXRodGVzdCgzMjAsZGVmLCIzMzQuOTAxMTc2IiwiLTc2MDkyOTYuNTVFKzQ0NzM0MDIyOCIsIi03LjYwOTI5NjU1RSs0NDczNDAyMzQiLCI3LjYwOTI5NjU1RSs0NDczNDAyMzQiLCItMi41NDgzNjIzNkUrNDQ3MzQwMjM3IiwiLTQuNDAxMjEwNzNFLTQ0NzM0MDIzMyIsIjAiLCIzMzQuOTAxMTc2IiwiNi4zMTkyNjU3NUUtMjEiKTsKKyAgbWF0aHRlc3QoMzIxLGRlZiwiNC40OTg2ODYzNiIsIi0zNDE4ODA4OTZFLTQ0NzI1MTg3MyIsIjQuNDk4Njg2MzYiLCI0LjQ5ODY4NjM2IiwiLTEuNTM4MDE0OTJFLTQ0NzI1MTg2NCIsIi0xLjMxNTg2MzYzRSs0NDcyNTE4NjUiLCIiLCIiLCIwLjAxMDk4MzU1MyIpOworICBtYXRodGVzdCgzMjIsZGVmLCI4MDc2MTUuNTgiLCItMzE0Mjg2NDgwIiwiLTMxMzQ3ODg2NSIsIjMxNTA5NDA5NiIsIi0yLjUzODIyNjU4RSsxNCIsIi0wLjAwMjU2OTY3OTY4IiwiMCIsIjgwNzYxNS41OCIsIiIpOworICBtYXRodGVzdCgzMjMsZGVmLCItMzcuNzQ1Nzk1NCIsIjUzMjc3LjgxMjlFLTg1OTIyNTUzOCIsIi0zNy43NDU3OTU0IiwiLTM3Ljc0NTc5NTQiLCItMi4wMTEwMTM0M0UtODU5MjI1NTMyIiwiLTcuMDg0NzExODhFKzg1OTIyNTUzNCIsIiIsIiIsIi03NjYyMDEzNC4xIik7CisgIG1hdGh0ZXN0KDMyNCxkZWYsIi0yODY3MTA4MS4iLCI5OC44ODE5NjIzIiwiLTI4NjcwOTgyLjEiLCItMjg2NzExNzkuOSIsIi0yLjgzNTA1Mjc1RSs5IiwiLTI4OTk1Mi41ODkiLCItMjg5OTUyIiwiLTU4LjI2NzE5MDQiLCItMS45MzYyNTU2NkUrNzM4Iik7CisgIG1hdGh0ZXN0KDMyNSxkZWYsIi04OTc1Mi4yMTA2RS00Njk0OTY4OTYiLCI5OS45ODc5OTYxIiwiOTkuOTg3OTk2MSIsIi05OS45ODc5OTYxIiwiLTguOTc0MTQzNjhFLTQ2OTQ5Njg5MCIsIi04Ljk3NjI5ODU3RS00Njk0OTY4OTQiLCIwIiwiLTguOTc1MjIxMDZFLTQ2OTQ5Njg5MiIsIiIpOworICBtYXRodGVzdCgzMjYsZGVmLCItNDk3OTgzNTY3RS0xMzUzODA1MiIsIjM5LjQ1Nzg3NDIiLCIzOS40NTc4NzQyIiwiLTM5LjQ1Nzg3NDIiLCItMS45NjQ5MzcyOUUtMTM1MzgwNDIiLCItMS4yNjIwNjM4NUUtMTM1MzgwNDUiLCIwIiwiLTQuOTc5ODM1NjdFLTEzNTM4MDQ0IiwiLTEuNTUzNzY1NDNFLTUyNzk4MzY4OSIpOworICBtYXRodGVzdCgzMjcsZGVmLCI4NDU3MzkyMjFFLTY1NDIwMjU2NSIsIi0zMzMxMy4xNTUxIiwiLTMzMzEzLjE1NTEiLCIzMzMxMy4xNTUxIiwiLTIuODE3NDI0MThFLTY1NDIwMjU1MiIsIi0yLjUzODc1NDQ5RS02NTQyMDI1NjEiLCIwIiwiOC40NTczOTIyMUUtNjU0MjAyNTU3IiwiIik7CisgIG1hdGh0ZXN0KDMyOCxkZWYsIjc0Mi4zMzIwNjdFKzUzNzgyNzg0MyIsIi00NTMyLjcwMDIzRS04NTUzODc0MTQiLCI3LjQyMzMyMDY3RSs1Mzc4Mjc4NDUiLCI3LjQyMzMyMDY3RSs1Mzc4Mjc4NDUiLCItMy4zNjQ3Njg3M0UtMzE3NTU5NTY1IiwiIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDMyOSxkZWYsIi04OTMuNDg2NTQiLCI2NzAzODk5NjAiLCI2NzAzODkwNjciLCItNjcwMzkwODUzIiwiLTUuOTg5ODQ0MDZFKzExIiwiLTAuMDAwMDAxMzMyNzg2MjgiLCIwIiwiLTg5My40ODY1NCIsIiIpOworICBtYXRodGVzdCgzMzAsZGVmLCIxLjM3Njk3MTYyIiwiLTkxNS43Mzc0NzRFLTM1MTU3ODcyNCIsIjEuMzc2OTcxNjIiLCIxLjM3Njk3MTYyIiwiLTEuMjYwOTQ0NTFFLTM1MTU3ODcyMSIsIi0xLjUwMzY3NTA4RSszNTE1Nzg3MjEiLCIiLCIiLCIwLjA1NjE5MjA3ODQiKTsKKyAgbWF0aHRlc3QoMzMxLGRlZiwiLTY1LjI4Mzk4MDhFKzU1MDI4ODQwMyIsIi0xMjEzODkuMzA2IiwiLTYuNTI4Mzk4MDhFKzU1MDI4ODQwNCIsIi02LjUyODM5ODA4RSs1NTAyODg0MDQiLCI3LjkyNDc3NzEyRSs1NTAyODg0MDkiLCI1LjM3ODA2Njg5RSs1NTAyODgzOTkiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMzMyLGRlZiwiLTMwMzQ2NjAzLkUrMzQ2MDY3MzkwIiwiNzkyNjYxLjU0NCIsIi0zLjAzNDY2MDMwRSszNDYwNjczOTciLCItMy4wMzQ2NjAzMEUrMzQ2MDY3Mzk3IiwiLTIuNDA1NDU4NTJFKzM0NjA2NzQwMyIsIi0zLjgyODQ0Mzk2RSszNDYwNjczOTEiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMzMzLGRlZiwiLTYxMTcwLjcwNjUiLCItNDUzNzMxMTMxLiIsIi00NTM3OTIzMDIiLCI0NTM2Njk5NjAiLCIyLjc3NTUwNTM4RSsxMyIsIjAuMDAwMTM0ODE3MDgxIiwiMCIsIi02MTE3MC43MDY1IiwiIik7CisgIG1hdGh0ZXN0KDMzNCxkZWYsIjY1NjkuNTExMzMiLCIxMy44NzA2MzUxRSszOTk0MzQ5MTQiLCIxLjM4NzA2MzUxRSszOTk0MzQ5MTUiLCItMS4zODcwNjM1MUUrMzk5NDM0OTE1IiwiOS4xMTIzMjk0NEUrMzk5NDM0OTE4IiwiNC43MzYyNzI5MUUtMzk5NDM0OTEyIiwiMCIsIjY1NjkuNTExMzMiLCI2NTY5LjUxMTMzIik7CisgIG1hdGh0ZXN0KDMzNSxkZWYsIjMwMDcwMzkyNS4iLCItMzE1NjczNi44IiwiMjk3NTQ3MTg4IiwiMzAzODYwNjYyIiwiLTkuNDkyNDMxNDZFKzE0IiwiLTk1LjI1NzgzODciLCItOTUiLCI4MTM5MjkuMCIsIjQuMTg2MDkxMTRFLTI2NzYzMjU2Iik7CisgIG1hdGh0ZXN0KDMzNixkZWYsIjE5MjEzODIxNkUrMzUzMDExNTkyIiwiLTQ3My4wODA2MzMiLCIxLjkyMTM4MjE2RSszNTMwMTE2MDAiLCIxLjkyMTM4MjE2RSszNTMwMTE2MDAiLCItOS4wODk2ODY4OEUrMzUzMDExNjAyIiwiLTQuMDYxNDI2MzdFKzM1MzAxMTU5NyIsIiIsIiIsIiIpOworICBtYXRodGVzdCgzMzcsZGVmLCI4NjA3LjY0Nzk0IiwiLTM0NzQwLjMzNjciLCItMjYxMzIuNjg4OCIsIjQzMzQ3Ljk4NDYiLCItMjk5MDMyNTg4IiwiLTAuMjQ3NzcwOTk5IiwiMCIsIjg2MDcuNjQ3OTQiLCIxLjI5NjA0NTE5RS0xMzY2OTgiKTsKKyAgbWF0aHRlc3QoMzM4LGRlZiwiLTY3OTEzLjgyNDEiLCItOTM4MTUuNDIyOSIsIi0xNjE3MjkuMjQ3IiwiMjU5MDEuNTk4OCIsIjYuMzcxMzY0MTNFKzkiLCIwLjcyMzkwODk0OCIsIjAiLCItNjc5MTMuODI0MSIsIi02Ljk2MzU1MjAzRS00NTMzMTEiKTsKKyAgbWF0aHRlc3QoMzM5LGRlZiwiMzQuNTU1OTQ1NSIsIi05OTg3OTkzOTguIiwiLTk5ODc5OTM2NCIsIjk5ODc5OTQzMyIsIi0zLjQ1MTQ0NTc2RSsxMCIsIi0zLjQ1OTc0ODMzRS04IiwiMCIsIjM0LjU1NTk0NTUiLCIiKTsKKyAgbWF0aHRlc3QoMzQwLGRlZiwiMzg3OTk1LjMyOCIsIjk5MDE5OTU0My5FLTEyNDYyMzYwNyIsIjM4Nzk5NS4zMjgiLCIzODc5OTUuMzI4IiwiMy44NDE5Mjc5NkUtMTI0NjIzNTkzIiwiMy45MTgzNTQ5NUUrMTI0NjIzNjAzIiwiIiwiIiwiNy43MzE1MjEzOEUrNTUiKTsKKyAgbWF0aHRlc3QoMzQxLGRlZiwiLTQ3MS4wOTE2NkUtODM1MjE5MTkiLCItNDQxMjIyMzY4IiwiLTQ0MTIyMjM2OCIsIjQ0MTIyMjM2OCIsIjIuMDc4NTYxNzhFLTgzNTIxOTA4IiwiMS4wNjc2OTY2OUUtODM1MjE5MjUiLCIwIiwiLTQuNzEwOTE2NkUtODM1MjE5MTciLCIiKTsKKyAgbWF0aHRlc3QoMzQyLGRlZiwiLTk3ODM0LjM4NTgiLCI3MDc3OTc4OS44RSs1MDIxNjYwNjUiLCI3LjA3Nzk3ODk4RSs1MDIxNjYwNzIiLCItNy4wNzc5Nzg5OEUrNTAyMTY2MDcyIiwiLTYuOTI0Njk3MjZFKzUwMjE2NjA3NyIsIi0xLjM4MjIzNjE3RS01MDIxNjYwNjgiLCIwIiwiLTk3ODM0LjM4NTgiLCItOC41NzkwNzg4NkUrMzQiKTsKKyAgbWF0aHRlc3QoMzQzLGRlZiwiNzczMjMzMS4wNiIsIi05NTI3MTkuNDgyRSsxMTUzMjU1MDUiLCItOS41MjcxOTQ4MkUrMTE1MzI1NTEwIiwiOS41MjcxOTQ4MkUrMTE1MzI1NTEwIiwiLTcuMzY2NzQyNDRFKzExNTMyNTUxNyIsIi04LjExNjA2MjcxRS0xMTUzMjU1MDUiLCIwIiwiNzczMjMzMS4wNiIsIjEuMzA4ODY3MjRFLTY5Iik7CisgIG1hdGh0ZXN0KDM0NCxkZWYsIjIzLjI3NDU1NDciLCIyLjIzMTk0MjQ1RS0yMjEwNjI1OTIiLCIyMy4yNzQ1NTQ3IiwiMjMuMjc0NTU0NyIsIjUuMTk0NzQ2NjZFLTIyMTA2MjU5MSIsIjEuMDQyNzkzNjhFKzIyMTA2MjU5MyIsIiIsIiIsIjU0MS43MDQ4OTYiKTsKKyAgbWF0aHRlc3QoMzQ1LGRlZiwiNjcxLjA4MzM2M0UtMjE4MzI0MjA1IiwiLTc4NzE1MDAzMSIsIi03ODcxNTAwMzEiLCI3ODcxNTAwMzEiLCItNS4yODI0MzI5MEUtMjE4MzI0MTk0IiwiLTguNTI1NDgyMjdFLTIxODMyNDIxMiIsIjAiLCI2LjcxMDgzMzYzRS0yMTgzMjQyMDMiLCIiKTsKKyAgbWF0aHRlc3QoMzQ2LGRlZiwiMzY1MTY3LjgwIiwiLTgwMjYzLjY1MTYiLCIyODQ5MDQuMTQ4IiwiNDQ1NDMxLjQ1MiIsIi0yLjkzMDk3MDExRSsxMCIsIi00LjU0OTYwMzYyIiwiLTQiLCI0NDExMy4xOTM2IiwiMS4yNzA1MjIyN0UtNDQ2NDY4Iik7CisgIG1hdGh0ZXN0KDM0NyxkZWYsIi0xLjQzMjk3NjA0RS02NTEyOTc4MCIsIjU2LjU5ODczM0UtMTM1NTgxOTQyIiwiLTEuNDMyOTc2MDRFLTY1MTI5NzgwIiwiLTEuNDMyOTc2MDRFLTY1MTI5NzgwIiwiLTguMTEwNDYyODNFLTIwMDcxMTcyMSIsIi0yLjUzMTgxNjQ2RSs3MDQ1MjE2MCIsIiIsIiIsIjguNjU4MzE4ODFFLTM5MDc3ODY4MCIpOworICBtYXRodGVzdCgzNDgsZGVmLCI0MTY5OTg4NTkuIiwiMjYwLjIyMDMyM0UtMzQ5Mjg1NTkzIiwiNDE2OTk4ODU5IiwiNDE2OTk4ODU5IiwiMS4wODUxMTU3OEUtMzQ5Mjg1NTgyIiwiMS42MDI0ODM4M0UrMzQ5Mjg1NTk5IiwiIiwiIiwiNy4yNTExMTE3OEUrMjUiKTsKKyAgbWF0aHRlc3QoMzQ5LGRlZiwiNzI2Ny4xNzYxMUUrODYyNjMwNjA3IiwiNDAyMS41Njg2MSIsIjcuMjY3MTc2MTFFKzg2MjYzMDYxMCIsIjcuMjY3MTc2MTFFKzg2MjYzMDYxMCIsIjIuOTIyNTQ0NzNFKzg2MjYzMDYxNCIsIjEuODA3MDUwMTRFKzg2MjYzMDYwNyIsIiIsIiIsIiIpOworICBtYXRodGVzdCgzNTAsZGVmLCIxMi4yMTQyNDM0RSs1OTM5MDg3NDAiLCI1LjI3MjM2NTcxRS0zOTYwNTA3NDgiLCIxLjIyMTQyNDM0RSs1OTM5MDg3NDEiLCIxLjIyMTQyNDM0RSs1OTM5MDg3NDEiLCI2LjQzOTc5NTgxRSsxOTc4NTc5OTMiLCIyLjMxNjY1MzNFKzk4OTk1OTQ4OCIsIiIsIiIsIiIpOworICBtYXRodGVzdCgzNTEsZGVmLCItMjguNTkxOTMyIiwiLTEuNzkxNTMyMzhFLTgxNzA2NDU3NiIsIi0yOC41OTE5MzIwIiwiLTI4LjU5MTkzMjAiLCI1LjEyMjMzNzIwRS04MTcwNjQ1NzUiLCIxLjU5NTk0ODM4RSs4MTcwNjQ1NzciLCIiLCIiLCIwLjAwMTIyMzI0MzcyIik7CisgIG1hdGh0ZXN0KDM1MixkZWYsIjU5MC44NDk2NjYiLCI3NTM0MjQuMzA2RSsyNzcyMzI3NDQiLCI3LjUzNDI0MzA2RSsyNzcyMzI3NDkiLCItNy41MzQyNDMwNkUrMjc3MjMyNzQ5IiwiNC40NTE2MDUwMEUrMjc3MjMyNzUyIiwiNy44NDIxOTAxNEUtMjc3MjMyNzQ4IiwiMCIsIjU5MC44NDk2NjYiLCIxLjQ4NTMwNjA3RSsyMiIpOworICBtYXRodGVzdCgzNTMsZGVmLCIxLjcyNzA2MjgiLCItMTMyNTAyNi42NyIsIi0xMzI1MDI0Ljk0IiwiMTMyNTAyOC40MCIsIi0yMjg4NDA0LjI3IiwiLTAuMDAwMDAxMzAzNDE3MzkiLCIwIiwiMS43MjcwNjI4IiwiMi4wOTI2MDAzNkUtMzE0NDQwIik7CisgIG1hdGh0ZXN0KDM1NCxkZWYsIjMzNDAyMTE4LiIsIi01NTM0LjgzNzQ1IiwiMzMzOTY1ODMuMiIsIjMzNDA3NjUyLjgiLCItMS44NDg3NTI5NEUrMTEiLCItNjAzNC44ODY5IiwiLTYwMzQiLCI0OTA4LjgyNjcwIiwiOC4xNDQ3MzkxM0UtNDE2NDUiKTsKKyAgbWF0aHRlc3QoMzU1LGRlZiwiLTQzOTg0Mi41MDYiLCItNzc1MTEwLjgwNyIsIi0xMjE0OTUzLjMxIiwiMzM1MjY4LjMwMSIsIjMuNDA5MjY2ODBFKzExIiwiMC41Njc0NTc1ODQiLCIwIiwiLTQzOTg0Mi41MDYiLCItMS44NDY3ODQ3MkUtNDM3NDE4MiIpOworICBtYXRodGVzdCgzNTYsZGVmLCItMjQ4NjY0Ljc3OSIsIi00NDA4OTAuNDRFKzY2NjQzMzk0NCIsIi00LjQwODkwNDQwRSs2NjY0MzM5NDkiLCI0LjQwODkwNDQwRSs2NjY0MzM5NDkiLCIxLjA5NjMzOTI0RSs2NjY0MzM5NTUiLCI1LjY0MDA1ODMxRS02NjY0MzM5NDUiLCIwIiwiLTI0ODY2NC43NzkiLCIyLjYxNTQyODc3RS0yMiIpOworICBtYXRodGVzdCgzNTcsZGVmLCItMTQxNjEuOTE0MiIsIjgzMDYuNDk0OTMiLCItNTg1NS40MTkzIiwiLTIyNDY4LjQwOTEiLCItMTE3NjM1ODY5IiwiLTEuNzA0OTIwNTkiLCItMSIsIi01ODU1LjQxOTI3IiwiMS42NTU3MzM3MkUrMzQ0NzkiKTsKKyAgbWF0aHRlc3QoMzU4LGRlZiwiLTY0MTcyMjcuMTMiLCIxNjY3OS44ODQyIiwiLTY0MDA1NDcuMjUiLCItNjQzMzkwNy4wMSIsIi0xLjA3MDM4NjA1RSsxMSIsIi0zODQuNzI4NTE4IiwiLTM4NCIsIi0xMjE1MS41OTcyIiwiMy41ODc2Nzk3OEUrMTEzNTQ2Iik7CisgIG1hdGh0ZXN0KDM1OSxkZWYsIjUxNDgyNTAyNC4iLCItMjUuMDQ0NjM0NUUtMTAzODA5NDU3IiwiNTE0ODI1MDI0IiwiNTE0ODI1MDI0IiwiLTEuMjg5MzYwNDZFLTEwMzgwOTQ0NyIsIi0yLjA1NTYzMDAyRSsxMDM4MDk0NjQiLCIiLCIiLCI3LjMyODYwMDYyRS0yNyIpOworICBtYXRodGVzdCgzNjAsZGVmLCI1MjU5NDgxOTYiLCIyMTk0NTAzOTAiLCI3NDUzOTg1ODYiLCIzMDY0OTc4MDYiLCIxLjE1NDE5NTM3RSsxNyIsIjIuMzk2NjYxMDIiLCIyIiwiODcwNDc0MTYiLCIiKTsKKyAgbWF0aHRlc3QoMzYxLGRlZiwiLTYzODUwOS4xODEiLCI0NTU4MDE4OS4wRSsyNjkyMTI1NTkiLCI0LjU1ODAxODkwRSsyNjkyMTI1NjYiLCItNC41NTgwMTg5MEUrMjY5MjEyNTY2IiwiLTIuOTEwMzM2OTFFKzI2OTIxMjU3MiIsIi0xLjQwMDg0ODAzRS0yNjkyMTI1NjEiLCIwIiwiLTYzODUwOS4xODEiLCItMS4wNjEyOTQwNUUrMjkiKTsKKyAgbWF0aHRlc3QoMzYyLGRlZiwiMzMwNTkwNDIyIiwiNzQuMzU5OTI4RSs1MzUzNzc5NjUiLCI3LjQzNTk5MjgwRSs1MzUzNzc5NjYiLCItNy40MzU5OTI4MEUrNTM1Mzc3OTY2IiwiMi40NTgyNjgwMEUrNTM1Mzc3OTc1IiwiNC40NDU4MTQxOEUtNTM1Mzc3OTU5IiwiMCIsIjMzMDU5MDQyMiIsIjQuMzE1NTA3NDJFKzU5Iik7CisgIG1hdGh0ZXN0KDM2MyxkZWYsIi0zLjQ4NTkzODcxRS05NDA1Nzk5MDQiLCItMjAyNjUuOTY0MEUtMzIyOTg4OTg3IiwiLTIuMDI2NTk2NDBFLTMyMjk4ODk4MyIsIjIuMDI2NTk2NDBFLTMyMjk4ODk4MyIsIiIsIjEuNzIwMDk1MTlFLTYxNzU5MDkyMSIsIjAiLCItMy40ODU5Mzg3MUUtOTQwNTc5OTA0IiwiIik7CisgIG1hdGh0ZXN0KDM2NCxkZWYsIi0zMjgxMDM0ODAuIiwiLTcyMS45NDkzNzFFLTkyMzkzODY2NSIsIi0zMjgxMDM0ODAiLCItMzI4MTAzNDgwIiwiMi4zNjg3NDEwMUUtOTIzOTM4NjU0IiwiNC41NDQ2ODgyMkUrOTIzOTM4NjcwIiwiIiwiIiwiLTIuNDQzMDAzOEUtNjAiKTsKKyAgbWF0aHRlc3QoMzY1LGRlZiwiLTE4NTcuMDE0NDgiLCIxOTA4MTU3OC4xIiwiMTkwNzk3MjEuMSIsIi0xOTA4MzQzNS4xIiwiLTMuNTQzNDc2NjhFKzEwIiwiLTAuMDAwMDk3MzE5NzUzNyIsIjAiLCItMTg1Ny4wMTQ0OCIsIjguNDQzOTcwODdFKzYyMzc0MTUzIik7CisgIG1hdGh0ZXN0KDM2NixkZWYsIjM0Ny4yODcyMEUrMTQ1OTMwNzcxIiwiLTYyODIxLjk5MDZFLTY3NjU2NDEwNiIsIjMuNDcyODcyMDBFKzE0NTkzMDc3MyIsIjMuNDcyODcyMDBFKzE0NTkzMDc3MyIsIi0yLjE4MTcyNzMyRS01MzA2MzMzMjgiLCItNS41MjgxMTUxOEUrODIyNDk0ODc0IiwiIiwiIiwiNS42OTk5MDEzNUUtODc1NTg0NjQyIik7CisgIG1hdGh0ZXN0KDM2NyxkZWYsIi02NDMuMjExMzk5RSs0NDE4MDcwMDMiLCItNTA3MzM0MTkuMiIsIi02LjQzMjExMzk5RSs0NDE4MDcwMDUiLCItNi40MzIxMTM5OUUrNDQxODA3MDA1IiwiMy4yNjMyMzEzNUUrNDQxODA3MDEzIiwiMS4yNjc4MjU4NEUrNDQxODA2OTk4IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDM2OCxkZWYsIi01Mzk5MTY2MS40RS04NDMzMzk1NTQiLCIyMDcxOC43MzQ2IiwiMjA3MTguNzM0NiIsIi0yMDcxOC43MzQ2IiwiLTEuMTE4NjM4OTBFLTg0MzMzOTU0MiIsIi0yLjYwNTkzNDMxRS04NDMzMzk1NTEiLCIwIiwiLTUuMzk5MTY2MTRFLTg0MzMzOTU0NyIsIiIpOworICBtYXRodGVzdCgzNjksZGVmLCItOTAwMTgxNDI0IiwiLTEwNTc2Mzk4Mi4iLCItMS4wMDU5NDU0MUUrOSIsIi03OTQ0MTc0NDIiLCI5LjUyMDY3NzE5RSsxNiIsIjguNTExMjI4NTYiLCI4IiwiLTU0MDY5NTY4IiwiMS4zMjYyNzA2MUUtOTQ3MDQ1NjAyIik7CisgIG1hdGh0ZXN0KDM3MCxkZWYsIjk0MjE4Ljc0NjJFKzU2MzIzMzk1MSIsIjE5MjYyLjYzODJFKzc2NTI2Mzg5MCIsIjEuOTI2MjYzODJFKzc2NTI2Mzg5NCIsIi0xLjkyNjI2MzgyRSs3NjUyNjM4OTQiLCIiLCI0Ljg5MTI2OTA2RS0yMDIwMjk5MzkiLCIwIiwiOS40MjE4NzQ2MkUrNTYzMjMzOTU1IiwiIik7CisgIG1hdGh0ZXN0KDM3MSxkZWYsIjI4NTQ5LjI3MUUrOTIxMzMxODI4IiwiLTIxNTA1OTAuNDAiLCIyLjg1NDkyNzEwRSs5MjEzMzE4MzIiLCIyLjg1NDkyNzEwRSs5MjEzMzE4MzIiLCItNi4xMzk3Nzg4MUUrOTIxMzMxODM4IiwiLTEuMzI3NTA4NTNFKzkyMTMzMTgyNiIsIiIsIiIsIiIpOworICBtYXRodGVzdCgzNzIsZGVmLCI4MTAuNzA4MEUrNzc5NjI1NzYzIiwiNTk1Ny45NDA0NCIsIjguMTA3MDgwMDBFKzc3OTYyNTc2NSIsIjguMTA3MDgwMDBFKzc3OTYyNTc2NSIsIjQuODMwMTQ5OThFKzc3OTYyNTc2OSIsIjEuMzYwNzE4NTRFKzc3OTYyNTc2MiIsIiIsIiIsIiIpOworICBtYXRodGVzdCgzNzMsZGVmLCItMjMuNzM1NzU0OUUrNzcxMTY5MDgiLCIzNTEuMTAwNjQ5RSs4NjQzNDgwMjIiLCIzLjUxMTAwNjQ5RSs4NjQzNDgwMjQiLCItMy41MTEwMDY0OUUrODY0MzQ4MDI0IiwiLTguMzMzNjM4OTVFKzk0MTQ2NDkzMyIsIi02Ljc2MDM4NDhFLTc4NzIzMTExNiIsIjAiLCItMi4zNzM1NzU0OUUrNzcxMTY5MDkiLCIzLjE3NDAzODUzRSszMDg0Njc2MzciKTsKKyAgbWF0aHRlc3QoMzc0LGRlZiwiNDAyMTYxMDIuMkUrMjkyNzI0NTQ0IiwiNjYxLjAyNTk2MiIsIjQuMDIxNjEwMjJFKzI5MjcyNDU1MSIsIjQuMDIxNjEwMjJFKzI5MjcyNDU1MSIsIjIuNjU4Mzg4NzZFKzI5MjcyNDU1NCIsIjYuMDgzODkxNDhFKzI5MjcyNDU0OCIsIiIsIiIsIiIpOworICBtYXRodGVzdCgzNzUsZGVmLCIyMjc4NTAyNC4zRSs3ODM3MTkxNjgiLCIzOTkuNTA1OTg5RSsxMzc0Nzg2NjYiLCIyLjI3ODUwMjQzRSs3ODM3MTkxNzUiLCIyLjI3ODUwMjQzRSs3ODM3MTkxNzUiLCI5LjEwMjc1MzY3RSs5MjExOTc4NDMiLCI1LjcwMzI5OTgxRSs2NDYyNDA1MDYiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMzc2LGRlZiwiNTE1LjU5MTgxOUUrODIxMzcxMzY0IiwiLTY5MjEzNzkxNC5FLTE0OTQ5ODY5MCIsIjUuMTU1OTE4MTlFKzgyMTM3MTM2NiIsIjUuMTU1OTE4MTlFKzgyMTM3MTM2NiIsIi0zLjU2ODYwNjQ2RSs2NzE4NzI2ODUiLCItNy40NDkyNjQyMUUrOTcwODcwMDQ3IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDM3NyxkZWYsIi01MzY4ODMwNzJFKzQ3NzkxMTI1MSIsIjYyNDk5Ni4zMDEiLCItNS4zNjg4MzA3MkUrNDc3OTExMjU5IiwiLTUuMzY4ODMwNzJFKzQ3NzkxMTI1OSIsIi0zLjM1NTQ5OTM0RSs0Nzc5MTEyNjUiLCItOC41OTAxNzk5OUUrNDc3OTExMjUzIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDM3OCxkZWYsIi0zOTk0OTIuOTE0RS0zMzQzNjkxOTIiLCI1MjAyMTE5Ljg3RSs0NDI0NDIyNTgiLCI1LjIwMjExOTg3RSs0NDI0NDIyNjQiLCItNS4yMDIxMTk4N0UrNDQyNDQyMjY0IiwiLTIuMDc4MjEwMDNFKzEwODA3MzA3OCIsIi03LjY3OTQyNTM5RS03NzY4MTE0NTIiLCIwIiwiLTMuOTk0OTI5MTRFLTMzNDM2OTE4NyIsIiIpOworICBtYXRodGVzdCgzNzksZGVmLCI3NjIuMDcxMTg0IiwiOTg1MTYzMS4zNyIsIjk4NTIzOTMuNDQiLCItOTg1MDg2OS4zMCIsIjcuNTA3NjQ0MzhFKzkiLCIwLjAwMDA3NzM1NDgyMTMiLCIwIiwiNzYyLjA3MTE4NCIsIjQuMDIxOTg0MzZFKzI4MzkyMzU2Iik7CisgIG1hdGh0ZXN0KDM4MCxkZWYsIjU2MjYuMTI0NzEiLCI3Mjk4OTgxOC4zIiwiNzI5OTU0NDQuNCIsIi03Mjk4NDE5Mi4yIiwiNC4xMDY0OTgyMEUrMTEiLCIwLjAwMDA3NzA4MDk1MjQiLCIwIiwiNTYyNi4xMjQ3MSIsIjEuNzk4MTQ3NTdFKzI3MzcyNzA5OCIpOworICBtYXRodGVzdCgzODEsZGVmLCItNDcyMDcyNjAuMSIsIi0yMDczLjMxNTIiLCItNDcyMDkzMzMuNCIsIi00NzIwNTE4Ni44IiwiOS43ODc1NTI5OUUrMTAiLCIyMjc2OC45NzQxIiwiMjI3NjgiLCItMjAxOS42MjY0IiwiLTYuMDIyMzgzMTlFLTE1OTA5Iik7CisgIG1hdGh0ZXN0KDM4MixkZWYsIjIwNy43NDA4NjAiLCItNTEuMDM5MDA5MCIsIjE1Ni43MDE4NTEiLCIyNTguNzc5ODY5IiwiLTEwNjAyLjg4NzYiLCItNC4wNzAyMzY5NCIsIi00IiwiMy41ODQ4MjQwIiwiNi40MDI5NzUxNUUtMTE5Iik7CisgIG1hdGh0ZXN0KDM4MyxkZWYsIi01NzIuODEyNDY0RS03NDU5MzQwMjEiLCItMTgyODA1ODcyLkUrNjA0NTA4NjgxIiwiLTEuODI4MDU4NzJFKzYwNDUwODY4OSIsIjEuODI4MDU4NzJFKzYwNDUwODY4OSIsIjEuMDQ3MTM0ODJFLTE0MTQyNTMyOSIsIiIsIjAiLCItNS43MjgxMjQ2NEUtNzQ1OTM0MDE5IiwiIik7CisgIG1hdGh0ZXN0KDM4NCxkZWYsIi02NDE4NTA0RSszNTMxNDA3IiwiODQ1OTQxNi4xIiwiLTYuNDE4NTA0MDBFKzM1MzE0MTMiLCItNi40MTg1MDQwMEUrMzUzMTQxMyIsIi01LjQyOTY3OTYxRSszNTMxNDIwIiwiLTcuNTg3NDA3ODRFKzM1MzE0MDYiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMzg1LGRlZiwiMjgwNjg5LjUzMSIsIi0xMjgyMTI1NDMiLCItMTI3OTMxODU0IiwiMTI4NDkzMjMzIiwiLTMuNTk4NzkxODZFKzEzIiwiLTAuMDAyMTg5MjUxNzMiLCIwIiwiMjgwNjg5LjUzMSIsIjEuNDIxNzM4MDlFLTY5ODUzMDkzOCIpOworICBtYXRodGVzdCgzODYsZGVmLCIxNS44MDM1NTFFLTc4MzQyMjc5MyIsIjIzOTEwODAzOEUtNDg5MTg2MzA4IiwiMi4zOTEwODAzOEUtNDg5MTg2MzAwIiwiLTIuMzkxMDgwMzhFLTQ4OTE4NjMwMCIsIiIsIjYuNjA5Mzc2NzJFLTI5NDIzNjQ5MyIsIjAiLCIxLjU4MDM1NTFFLTc4MzQyMjc5MiIsIiIpOworICBtYXRodGVzdCgzODcsZGVmLCIyNi41MTU5MjIiLCItOTQxODI0Mi45NkUtMTA1NDgxNjI4IiwiMjYuNTE1OTIyMCIsIjI2LjUxNTkyMjAiLCItMi40OTczMzM5NkUtMTA1NDgxNjIwIiwiLTIuODE1Mzc4ODVFKzEwNTQ4MTYyMiIsIiIsIiIsIjEuNTQzMjYxMDhFLTEzIik7CisgIG1hdGh0ZXN0KDM4OCxkZWYsIi04OC4xMDk0NTU3IiwiLTU0MDI5OTM0LjEiLCItNTQwMzAwMjIuMiIsIjU0MDI5ODQ2LjAiLCI0Ljc2MDU0ODA5RSs5IiwiMC4wMDAwMDE2MzA3NTI2IiwiMCIsIi04OC4xMDk0NTU3IiwiNS4wNTI4OTgyNkUtMTA1MDg5NDM5Iik7CisgIG1hdGh0ZXN0KDM4OSxkZWYsIjY3NzAuNjg2MDJFLTQ5ODQyMDM5NyIsIi02LjExMjQ4OTA4RS03Mjk2MTY5MDgiLCI2Ljc3MDY4NjAyRS00OTg0MjAzOTQiLCI2Ljc3MDY4NjAyRS00OTg0MjAzOTQiLCIiLCItMS4xMDc2ODA2N0UrMjMxMTk2NTE0IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDM5MCxkZWYsIi04OTI5NzM4MTguRS03ODE5MDQ0NDEiLCI1NTUyMDEyOTkuIiwiNTU1MjAxMjk5IiwiLTU1NTIwMTI5OSIsIi00Ljk1NzgwMjI0RS03ODE5MDQ0MjQiLCItMS42MDgzNzg0N0UtNzgxOTA0NDQxIiwiMCIsIi04LjkyOTczODE4RS03ODE5MDQ0MzMiLCIiKTsKKyAgbWF0aHRlc3QoMzkxLGRlZiwiNjcwMTc1ODAyRSsxMzU0MzA2ODAiLCIyNzM1NTE5NS40IiwiNi43MDE3NTgwMkUrMTM1NDMwNjg4IiwiNi43MDE3NTgwMkUrMTM1NDMwNjg4IiwiMS44MzMyNzkwMEUrMTM1NDMwNjk2IiwiMi40NDk5MDMxOEUrMTM1NDMwNjgxIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDM5MixkZWYsIi00NDA5NTAuMjYiLCIyMDUuNDc3NDY5RS02NzczNDU1NjEiLCItNDQwOTUwLjI2MCIsIi00NDA5NTAuMjYwIiwiLTkuMDYwNTM0MzRFLTY3NzM0NTU1NCIsIi0yLjE0NTk3ODY0RSs2NzczNDU1NjQiLCIiLCIiLCIxLjk0NDM3MTMyRSsxMSIpOworICBtYXRodGVzdCgzOTMsZGVmLCItOC4yMzM1Nzc5IiwiNTczNjY1MDEwRSs3NDI3MjIwNzUiLCI1LjczNjY1MDEwRSs3NDI3MjIwODMiLCItNS43MzY2NTAxMEUrNzQyNzIyMDgzIiwiLTQuNzIzMzE1NTVFKzc0MjcyMjA4NCIsIi0xLjQzNTI1ODg2RS03NDI3MjIwODMiLCIwIiwiLTguMjMzNTc3OSIsIjMxMTU1Mi43NTMiKTsKKyAgbWF0aHRlc3QoMzk0LGRlZiwiNDUyOTQzLjg2MyIsIjcwMjIuMjM2MjkiLCI0NTk5NjYuMDk5IiwiNDQ1OTIxLjYyNyIsIjMuMTgwNjc4ODNFKzkiLCI2NC41MDEzNzAzIiwiNjQiLCIzNTIwLjc0MDQ0IiwiNS41NDE1ODk3NkUrMzk3MTYiKTsKKyAgbWF0aHRlc3QoMzk1LGRlZiwiNjI4NzQuMTA3OSIsIi01MjcxOTY1NC4xIiwiLTUyNjU2NzgwLjAiLCI1Mjc4MjUyOC4yIiwiLTMuMzE0NzAxMjJFKzEyIiwiLTAuMDAxMTkyNjEyMyIsIjAiLCI2Mjg3NC4xMDc5IiwiMS4xODgxOTkzNkUtMjUyOTczNzc1Iik7CisgIG1hdGh0ZXN0KDM5NixkZWYsIi03NDI4LjQxNzQxRSs2MDk3NzIwMzciLCItNDYwMjQ4MTkuMyIsIi03LjQyODQxNzQxRSs2MDk3NzIwNDAiLCItNy40Mjg0MTc0MUUrNjA5NzcyMDQwIiwiMy40MTg5MTU2OUUrNjA5NzcyMDQ4IiwiMS42MTQwMDI1MUUrNjA5NzcyMDMzIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDM5NyxkZWYsIjIuMjc5NTkyOTciLCI0MTkzNy4wMTkiLCI0MTkzOS4yOTg2IiwiLTQxOTM0LjczOTQiLCI5NTU5OS4zMzM3IiwiMC4wMDAwNTQzNTc1MzQ4IiwiMCIsIjIuMjc5NTkyOTciLCIyLjg5NzEyNDIzRSsxNTAwNyIpOworICBtYXRodGVzdCgzOTgsZGVmLCI1MDg2OTI0MDhFLTY3MTk2Nzc4MiIsIjg0OTE5ODkuMjAiLCI4NDkxOTg5LjIwIiwiLTg0OTE5ODkuMjAiLCI0LjMxOTgxMDQzRS02NzE5Njc3NjciLCI1Ljk5MDI2MjA3RS02NzE5Njc3ODEiLCIwIiwiNS4wODY5MjQwOEUtNjcxOTY3Nzc0IiwiIik7CisgIG1hdGh0ZXN0KDM5OSxkZWYsIjk0MC41MzM3MDVFLTM3OTMxMDQyMSIsIi00LjAxMTc2OTYxRSs0NjQ2MjAwMzciLCItNC4wMTE3Njk2MUUrNDY0NjIwMDM3IiwiNC4wMTE3Njk2MUUrNDY0NjIwMDM3IiwiLTMuNzczMjA0NTNFKzg1MzA5NjE5IiwiLTIuMzQ0NDM1OTlFLTg0MzkzMDQ1NiIsIjAiLCI5LjQwNTMzNzA1RS0zNzkzMTA0MTkiLCIiKTsKKyAgbWF0aHRlc3QoNDAwLGRlZiwiOTcuMDY0OTY1MiIsIi05Mi40NDg1NjQ5RS0xNTE5ODkwOTgiLCI5Ny4wNjQ5NjUyIiwiOTcuMDY0OTY1MiIsIi04Ljk3MzUxNjczRS0xNTE5ODkwOTUiLCItMS4wNDk5MzQ4RSsxNTE5ODkwOTgiLCIiLCIiLCIxLjMwNzQ4NzI4RS0xOCIpOworICBtYXRodGVzdCg0MDEsZGVmLCIyOTc1NDQuNTM2RSszNjAyNzk0NzMiLCI4LjgwMjc1MDA3IiwiMi45NzU0NDUzNkUrMzYwMjc5NDc4IiwiMi45NzU0NDUzNkUrMzYwMjc5NDc4IiwiMi42MTkyMTAxOUUrMzYwMjc5NDc5IiwiMy4zODAxMzE1OUUrMzYwMjc5NDc3IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDQwMixkZWYsIi0yODg2MTAyOC4iLCI4MjgxOC44MjBFKzEzODM2ODc1OCIsIjguMjgxODgyMDBFKzEzODM2ODc2MiIsIi04LjI4MTg4MjAwRSsxMzgzNjg3NjIiLCItMi4zOTAyMzYyOEUrMTM4MzY4NzcwIiwiLTMuNDg0ODM5MzJFLTEzODM2ODc1NiIsIjAiLCItMjg4NjEwMjgiLCI0LjgxMzg3MDEzRSs1OSIpOworICBtYXRodGVzdCg0MDMsZGVmLCIzNi4yNDk2MjM4RSs2ODgyODAzOSIsIjQ5MjQzLjAwIiwiMy42MjQ5NjIzOEUrNjg4MjgwNDAiLCIzLjYyNDk2MjM4RSs2ODgyODA0MCIsIjEuNzg1MDQwMjJFKzY4ODI4MDQ1IiwiNy4zNjEzNzU5OUUrNjg4MjgwMzUiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoNDA0LGRlZiwiMjIuNDQ3ODI4RS00NzYwMTQ2ODMiLCItNTYwNjcuNTUyMCIsIi01NjA2Ny41NTIwIiwiNTYwNjcuNTUyMCIsIi0xLjI1ODU5NDc2RS00NzYwMTQ2NzciLCItNC4wMDM3MTEwOUUtNDc2MDE0Njg3IiwiMCIsIjIuMjQ0NzgyOEUtNDc2MDE0NjgyIiwiIik7CisgIG1hdGh0ZXN0KDQwNSxkZWYsIjI4MjY4OC43OTFFKzc1MDExOTUyIiwiNS45OTc4OTA1MSIsIjIuODI2ODg3OTFFKzc1MDExOTU3IiwiMi44MjY4ODc5MUUrNzUwMTE5NTciLCIxLjY5NTUzNjQyRSs3NTAxMTk1OCIsIjQuNzEzMTM2OUUrNzUwMTE5NTYiLCIiLCIiLCI1LjEwMzMwNTA3RSs0NTAwNzE3NDQiKTsKKyAgbWF0aHRlc3QoNDA2LGRlZiwiLTk4MS44NjAzMTBFLTczNzM4NzAwMiIsIi05OTQwNDYyODkiLCItOTk0MDQ2Mjg5IiwiOTk0MDQ2Mjg5IiwiOS43NjAxNDU5N0UtNzM3Mzg2OTkxIiwiOS44Nzc0MTAzNUUtNzM3Mzg3MDA5IiwiMCIsIi05LjgxODYwMzEwRS03MzczODcwMDAiLCIiKTsKKyAgbWF0aHRlc3QoNDA3LGRlZiwiLTcwMi45MTIxMCIsIi02NDQ0OTAzLjU1IiwiLTY0NDU2MDYuNDYiLCI2NDQ0MjAwLjY0IiwiNC41MzAyMDA2OUUrOSIsIjAuMDAwMTA5MDY0Nzk3IiwiMCIsIi03MDIuOTEyMTAiLCIxLjcwODY2NzAzRS0xODM0ODAwNCIpOworICBtYXRodGVzdCg0MDgsZGVmLCI5NzI0NTY3MjBFLTE3NTM2ODIzIiwiMTYzNzEuMjU5MCIsIjE2MzcxLjI1OTAiLCItMTYzNzEuMjU5MCIsIjEuNTkyMDM0MDhFLTE3NTM2ODEwIiwiNS45NDAwMjQwNEUtMTc1MzY4MTkiLCIwIiwiOS43MjQ1NjcyMEUtMTc1MzY4MTUiLCIiKTsKKyAgbWF0aHRlc3QoNDA5LGRlZiwiNzE0NzEuMjA0NSIsIi03NDMwMzI3OC40IiwiLTc0MjMxODA3LjIiLCI3NDM3NDc0OS42IiwiLTUuMzEwNTQ0ODFFKzEyIiwiLTAuMDAwOTYxODg0OTQiLCIwIiwiNzE0NzEuMjA0NSIsIjIuMTQ1MzUzNzRFLTM2MDY3Nzg1MyIpOworICBtYXRodGVzdCg0MTAsZGVmLCI2NDMuMTAzOTUxRSs0Mzk3MDg0NDEiLCI3ODgyNTE5MjUuIiwiNi40MzEwMzk1MUUrNDM5NzA4NDQzIiwiNi40MzEwMzk1MUUrNDM5NzA4NDQzIiwiNS4wNjkyNzkyN0UrNDM5NzA4NDUyIiwiOC4xNTg2MDkzM0UrNDM5NzA4NDM0IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDQxMSxkZWYsIjQuMzA4Mzg2NjMiLCItNy40MzExMDgyNyIsIi0zLjEyMjcyMTY0IiwiMTEuNzM5NDk0OSIsIi0zMi4wMTYwODc1IiwiLTAuNTc5Nzc3MTMxIiwiMCIsIjQuMzA4Mzg2NjMiLCIwLjAwMDAzNjI5MDg2NDUiKTsKKyAgbWF0aHRlc3QoNDEyLGRlZiwiODIzLjY3ODAyNSIsIi01MTMuNTgxODQwRS0zMjQ0NTMxNDEiLCI4MjMuNjc4MDI1IiwiODIzLjY3ODAyNSIsIi00LjIzMDI2MDc2RS0zMjQ0NTMxMzYiLCItMS42MDM3OTExOEUrMzI0NDUzMTQxIiwiIiwiIiwiMi42Mzc2MjIyOEUtMTUiKTsKKyAgbWF0aHRlc3QoNDEzLGRlZiwiNDQ2MS44MTE2MiIsIjMuMjIwODE2ODAiLCI0NDY1LjAzMjQ0IiwiNDQ1OC41OTA4MCIsIjE0MzcwLjY3NzgiLCIxMzg1LjMwNDM4IiwiMTM4NSIsIjAuOTgwMzUyMDAiLCI4Ljg4MjQ2ODhFKzEwIik7CisgIG1hdGh0ZXN0KDQxNCxkZWYsIi00NDU4NTI3LjEwIiwiLTk5MDcyNjA1IiwiLTEwMzUzMTEzMiIsIjk0NjE0MDc3LjkiLCI0LjQxNzE3ODk0RSsxNCIsIjAuMDQ1MDAyNjIzMSIsIjAiLCItNDQ1ODUyNy4xMCIsIi02LjIzOTI4MDk5RS02NTg3NTI3MTUiKTsKKyAgbWF0aHRlc3QoNDE1LGRlZiwiLTU3Nzk2NDYxOCIsIjQ4NzQyNDM2OC4iLCItOTA1NDAyNTAiLCItMS4wNjUzODg5OUUrOSIsIi0yLjgxNzE0MDM5RSsxNyIsIi0xLjE4NTc1MjQxIiwiLTEiLCItOTA1NDAyNTAiLCIiKTsKKyAgbWF0aHRlc3QoNDE2LGRlZiwiLTg2Ny4wMzYxODQiLCItNTcuMTc2ODYwOCIsIi05MjQuMjEzMDQ1IiwiLTgwOS44NTkzMjMiLCI0OTU3NC40MDcyIiwiMTUuMTY0MTA5NiIsIjE1IiwiLTkuMzgzMjcyMCIsIi0zLjQwMzEyODM3RS0xNjgiKTsKKyAgbWF0aHRlc3QoNDE3LGRlZiwiNzcxODcxOTIxRS0zMzA1MDQ3NzAiLCI1LjM0Mjg1MjM2IiwiNS4zNDI4NTIzNiIsIi01LjM0Mjg1MjM2IiwiNC4xMjM5OTc3MUUtMzMwNTA0NzYxIiwiMS40NDQ2ODEzNkUtMzMwNTA0NzYyIiwiMCIsIjcuNzE4NzE5MjFFLTMzMDUwNDc2MiIsIiIpOworICBtYXRodGVzdCg0MTgsZGVmLCItMzM4NjgzLjA2MkUtNzI4Nzc3NTE4IiwiMTY2NDQxOTMxIiwiMTY2NDQxOTMxIiwiLTE2NjQ0MTkzMSIsIi01LjYzNzEwNjI4RS03Mjg3Nzc1MDUiLCItMi4wMzQ4NDIxOEUtNzI4Nzc3NTIxIiwiMCIsIi0zLjM4NjgzMDYyRS03Mjg3Nzc1MTMiLCIiKTsKKyAgbWF0aHRlc3QoNDE5LGRlZiwiLTUxMjU2ODc0MyIsIi00MTYzNzY4ODcuRS05NjU5NDUyOTUiLCItNTEyNTY4NzQzIiwiLTUxMjU2ODc0MyIsIjIuMTM0MjE3NzhFLTk2NTk0NTI3OCIsIjEuMjMxMDIxMTJFKzk2NTk0NTI5NSIsIiIsIiIsIjEuNDQ4NzQzNThFLTM1Iik7CisgIG1hdGh0ZXN0KDQyMCxkZWYsIjc0NDcxODEuOTkiLCI1MzE4NDM4LjUyIiwiMTI3NjU2MjAuNSIsIjIxMjg3NDMuNDciLCIzLjk2MDczNzk2RSsxMyIsIjEuNDAwMjU3MjMiLCIxIiwiMjEyODc0My40NyIsIjEuMjE2MzQ3ODJFKzM2NTQ4MjcwIik7CisgIG1hdGh0ZXN0KDQyMSxkZWYsIjU0Nzg5LjgyMDciLCI5MzE2NTQzNS4yIiwiOTMyMjAyMjUuMCIsIi05MzExMDY0NS40IiwiNS4xMDQ1MTc0OUUrMTIiLCIwLjAwMDU4ODA5MTcxNiIsIjAiLCI1NDc4OS44MjA3IiwiMy44MDc2OTgyNUUrNDQxNDgzMDM1Iik7CisgIG1hdGh0ZXN0KDQyMixkZWYsIjQxNDg4LjU5NjAiLCIxNDYuNzk3MDk0IiwiNDE2MzUuMzkzMSIsIjQxMzQxLjc5ODkiLCI2MDkwNDA1LjMzIiwiMjgyLjYyNTQ1OSIsIjI4MiIsIjkxLjgxNTQ5MiIsIjYuODQ3MzgxNTNFKzY3OCIpOworICBtYXRodGVzdCg0MjMsZGVmLCI3ODU3NDEuNjYzRSs1Njc1NDUyOSIsIi00NjEuNTMxNzMyIiwiNy44NTc0MTY2M0UrNTY3NTQ1MzQiLCI3Ljg1NzQxNjYzRSs1Njc1NDUzNCIsIi0zLjYyNjQ0NzExRSs1Njc1NDUzNyIsIi0xLjcwMjQ2NTA5RSs1Njc1NDUzMiIsIiIsIiIsIiIpOworICBtYXRodGVzdCg0MjQsZGVmLCItNC45NTQzNjc4NiIsIi0zMTMyLjQyMzMiLCItMzEzNy4zNzc2NyIsIjMxMjcuNDY4OTMiLCIxNTUxOS4xNzczIiwiMC4wMDE1ODE2NDA2IiwiMCIsIi00Ljk1NDM2Nzg2IiwiMS45ODA2MjQyMkUtMjE3NyIpOworICBtYXRodGVzdCg0MjUsZGVmLCI3NzMyMS44NDc4RSs0MDQ2MjY4NzQiLCI4Mi40Nzk3Njg4IiwiNy43MzIxODQ3OEUrNDA0NjI2ODc4IiwiNy43MzIxODQ3OEUrNDA0NjI2ODc4IiwiNi4zNzc0ODgxM0UrNDA0NjI2ODgwIiwiOS4zNzQ2NDQxRSs0MDQ2MjY4NzYiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoNDI2LGRlZiwiLTcuOTkzMDc3MjUiLCItMjkxNTMuNzI3MyIsIi0yOTE2MS43MjA0IiwiMjkxNDUuNzM0MiIsIjIzMzAyNy45OTQiLCIwLjAwMDI3NDE2OTk5NCIsIjAiLCItNy45OTMwNzcyNSIsIjEuODg2ODgwMjhFLTI2MzE4Iik7CisgIG1hdGh0ZXN0KDQyNyxkZWYsIi02MS42MzM3NDAxRSs0NzQ5OTk1MTciLCI1MjU0Ljg3MDkyIiwiLTYuMTYzMzc0MDFFKzQ3NDk5OTUxOCIsIi02LjE2MzM3NDAxRSs0NzQ5OTk1MTgiLCItMy4yMzg3NzM0OUUrNDc0OTk5NTIyIiwiLTEuMTcyODg3OEUrNDc0OTk5NTE1IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDQyOCxkZWYsIi0xNi40MDQzMDg4IiwiMzUuMDA2NDgxMiIsIjE4LjYwMjE3MjQiLCItNTEuNDEwNzkwMCIsIi01NzQuMjU3MTI4IiwiLTAuNDY4NjA3NzYyIiwiMCIsIi0xNi40MDQzMDg4IiwiLTMuMzM4MzE4NDNFKzQyIik7CisgIG1hdGh0ZXN0KDQyOSxkZWYsIi04LjQxMTU2NTIwIiwiLTU2NTA4OTU4LjkiLCItNTY1MDg5NjcuMyIsIjU2NTA4OTUwLjUiLCI0NzUzMjg3OTIiLCIxLjQ4ODUzNjU3RS03IiwiMCIsIi04LjQxMTU2NTIwIiwiLTguODYzNjU0NThFLTUyMjYzODI3Iik7CisgIG1hdGh0ZXN0KDQzMCxkZWYsIi0zNjAxNjUuNzlFKzUwMzU1OTgzNSIsIi0xOTY2ODguNTE1IiwiLTMuNjAxNjU3OTBFKzUwMzU1OTg0MCIsIi0zLjYwMTY1NzkwRSs1MDM1NTk4NDAiLCI3LjA4NDA0NzQ0RSs1MDM1NTk4NDUiLCIxLjgzMTE0ODA1RSs1MDM1NTk4MzUiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoNDMxLGRlZiwiLTY1MzIzNjQ4MC5FKzU2NTY0ODQ5NSIsIi05MzAuNDQ1Mjc0IiwiLTYuNTMyMzY0ODBFKzU2NTY0ODUwMyIsIi02LjUzMjM2NDgwRSs1NjU2NDg1MDMiLCI2LjA3ODAwNzk2RSs1NjU2NDg1MDYiLCI3LjAyMDY4Njc0RSs1NjU2NDg1MDAiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoNDMyLGRlZiwiLTMuNzMzNDI5MDMiLCI4NTUuMDI5Mjg5IiwiODUxLjI5NTg2MCIsIi04NTguNzYyNzE4IiwiLTMxOTIuMTkxMTciLCItMC4wMDQzNjY0MzQwOCIsIjAiLCItMy43MzM0MjkwMyIsIi0xLjQxOTg4OTYxRSs0ODkiKTsKKyAgbWF0aHRlc3QoNDMzLGRlZiwiLTUuMTQ4OTA1MzJFKzU2MjA0ODAxMSIsIjEwODQ3MTI3LjhFLTM5MDkxODkxMCIsIi01LjE0ODkwNTMyRSs1NjIwNDgwMTEiLCItNS4xNDg5MDUzMkUrNTYyMDQ4MDExIiwiLTUuNTg1MDgzNDBFKzE3MTEyOTEwOCIsIi00Ljc0Njc5MTQyRSs5NTI5NjY5MTQiLCIiLCIiLCItNS4xNDg5MDUzMkUrNTYyMDQ4MDExIik7CisgIG1hdGh0ZXN0KDQzNCxkZWYsIjY1MzMxMTkwNyIsIi04MTAuMDM2OTY1RSs3NDQ1Mzc4MjMiLCItOC4xMDAzNjk2NUUrNzQ0NTM3ODI1IiwiOC4xMDAzNjk2NUUrNzQ0NTM3ODI1IiwiLTUuMjkyMDY3OTRFKzc0NDUzNzgzNCIsIi04LjA2NTIxMTA0RS03NDQ1Mzc4MTgiLCIwIiwiNjUzMzExOTA3IiwiMy4wMTMyNTE3MUUtNzEiKTsKKyAgbWF0aHRlc3QoNDM1LGRlZiwiLTEuMzE1NTc5MDciLCI5OC45MTM5MzAwRS01NzkyODE4MDIiLCItMS4zMTU1NzkwNyIsIi0xLjMxNTU3OTA3IiwiLTEuMzAxMjkwOTZFLTU3OTI4MTgwMCIsIi0xLjMzMDAyNDA2RSs1NzkyODE4MDAiLCIiLCIiLCIxNS41Mjk5MzIiKTsKKyAgbWF0aHRlc3QoNDM2LGRlZiwiLTg3NTE5MjM4OSIsIi03MjA3MTU2NS42IiwiLTk0NzI2Mzk1NSIsIi04MDMxMjA4MjMiLCI2LjMwNzY0ODU3RSsxNiIsIjEyLjE0MzM3OTciLCIxMiIsIi0xMDMzMzYwMS44IiwiMS4yNTU2NDQwOEUtNjQ0NDcxNDA1Iik7CisgIG1hdGh0ZXN0KDQzNyxkZWYsIi03MjgzODA3OC44IiwiLTM5MS4zOTg0MjMiLCItNzI4Mzg0NzAuMiIsIi03MjgzNzY4Ny40IiwiMi44NTA4NzA5MkUrMTAiLCIxODYwOTcuMDE3IiwiMTg2MDk3IiwiLTYuNDc0OTY5IiwiLTYuNTc0MDU3RS0zMDc1Iik7CisgIG1hdGh0ZXN0KDQzOCxkZWYsIjI5MTg2NTYwLjkiLCItNzkuNzQxOTk4OCIsIjI5MTg2NDgxLjIiLCIyOTE4NjY0MC42IiwiLTIuMzI3Mzk0NzBFKzkiLCItMzY2MDEyLjQwNyIsIi0zNjYwMTIiLCIzMi40MzUyMTQ0IiwiNi4xMDA1MDg2OUUtNTk4Iik7CisgIG1hdGh0ZXN0KDQzOSxkZWYsIi0zMjk4MDE2NjBFLTczMDI0OTQ2NSIsIi02NDg5LjkyNTYiLCItNjQ4OS45MjU2MCIsIjY0ODkuOTI1NjAiLCIyLjE0MDM4ODI0RS03MzAyNDk0NTMiLCI1LjA4MTc0NzkzRS03MzAyNDk0NjEiLCIwIiwiLTMuMjk4MDE2NjBFLTczMDI0OTQ1NyIsIiIpOworICBtYXRodGVzdCg0NDAsZGVmLCI5MS44NDI5MTE3RSsxMDMxNjQ4ODMiLCI3MTMxNDU1LjE2IiwiOS4xODQyOTExN0UrMTAzMTY0ODg0IiwiOS4xODQyOTExN0UrMTAzMTY0ODg0IiwiNi41NDk3MzYwN0UrMTAzMTY0ODkxIiwiMS4yODc4NTY1NEUrMTAzMTY0ODc4IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDQ0MSxkZWYsIjM5NDM4NjYuMzhFKzE1MDg1NTExMyIsIi0zMTkyNzAwNy4zIiwiMy45NDM4NjYzOEUrMTUwODU1MTE5IiwiMy45NDM4NjYzOEUrMTUwODU1MTE5IiwiLTEuMjU5MTU4NTFFKzE1MDg1NTEyNyIsIi0xLjIzNTI3NTk0RSsxNTA4NTUxMTIiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoNDQyLGRlZiwiLTcwMDIuMDQ2OEUtNzk1OTYyMTU2IiwiLTU5Mzc4OTEuMDUiLCItNTkzNzg5MS4wNSIsIjU5Mzc4OTEuMDUiLCI0LjE1NzczOTEwRS03OTU5NjIxNDYiLCIxLjE3OTIxNDQzRS03OTU5NjIxNTkiLCIwIiwiLTcuMDAyMDQ2OEUtNzk1OTYyMTUzIiwiIik7CisgIG1hdGh0ZXN0KDQ0MyxkZWYsIjY5NjUwNDYwNS4iLCI1NDUwNi40NjE3IiwiNjk2NTU5MTExIiwiNjk2NDUwMDk5IiwiMy43OTY0MDAxNkUrMTMiLCIxMjc3OC4zODYiLCIxMjc3OCIsIjIxMDM3LjM5NzQiLCIyLjYwMDg1MzJFKzQ4MTk5MiIpOworICBtYXRodGVzdCg0NDQsZGVmLCItNTExNS43NjQ2NyIsIjY5MC45NjA5NzlFKzgxNTEyNjcwMSIsIjYuOTA5NjA5NzlFKzgxNTEyNjcwMyIsIi02LjkwOTYwOTc5RSs4MTUxMjY3MDMiLCItMy41MzQ3OTM3NkUrODE1MTI2NzA3IiwiLTcuNDAzODQwMkUtODE1MTI2NzAxIiwiMCIsIi01MTE1Ljc2NDY3IiwiLTkuMTcwMDk2NTVFKzI1Iik7CisgIG1hdGh0ZXN0KDQ0NSxkZWYsIi0yNjEuMjc5MzkyIiwiLTYxMy4wNzkzNTciLCItODc0LjM1ODc0OSIsIjM1MS43OTk5NjUiLCIxNjAxODUuMDAyIiwiMC40MjYxNzU0ODQiLCIwIiwiLTI2MS4yNzkzOTIiLCItMi4wNjMxODg0MUUtMTQ4MiIpOworICBtYXRodGVzdCg0NDYsZGVmLCItNTkxNDA3NzYzIiwiLTgwMTQ1ODIyLjgiLCItNjcxNTUzNTg2IiwiLTUxMTI2MTk0MCIsIjQuNzM5ODg2MThFKzE2IiwiNy4zNzkxNDY0NCIsIjciLCItMzAzODcwMDMuNCIsIi0yLjc5MzM0NTIyRS03MDMwMzAxMDUiKTsKKyAgbWF0aHRlc3QoNDQ3LGRlZiwiNjE1NjMwNDA3IiwiLTY5LjQ2NjE4NjkiLCI2MTU2MzAzMzgiLCI2MTU2MzA0NzYiLCItNC4yNzY1NDk2OUUrMTAiLCItODg2MjMwMy4xNSIsIi04ODYyMzAzIiwiMTAuNDM3NTY5MyIsIjMuNDQyODMxMDJFLTYwNyIpOworICBtYXRodGVzdCg0NDgsZGVmLCIxMDc4NzU3LjUwIiwiMjc0MDI1NjkuMEUtNzEzNzQyMDgyIiwiMTA3ODc1Ny41MCIsIjEwNzg3NTcuNTAiLCIyLjk1NjA3MjY4RS03MTM3NDIwNjkiLCIzLjkzNjcwMjA3RSs3MTM3NDIwODAiLCIiLCIiLCIxLjI1NTM2OTI0RSsxOCIpOworICBtYXRodGVzdCg0NDksZGVmLCItNDg2NS42MDM1OEUtNDAxMTE2NTE1IiwiNjY5NTIuNTMxNSIsIjY2OTUyLjUzMTUiLCItNjY5NTIuNTMxNSIsIi0zLjI1NzY0NDc3RS00MDExMTY1MDciLCItNy4yNjcyNDM2M0UtNDAxMTE2NTE3IiwiMCIsIi00Ljg2NTYwMzU4RS00MDExMTY1MTIiLCIiKTsKKyAgbWF0aHRlc3QoNDUwLGRlZiwiLTg3ODA1LjM5MjFFLTkzNDg5NjY5MCIsIi0xODc1LjE0NzQ1IiwiLTE4NzUuMTQ3NDUiLCIxODc1LjE0NzQ1IiwiMS42NDY0ODA1N0UtOTM0ODk2NjgyIiwiNC42ODI1ODYwMUUtOTM0ODk2Njg5IiwiMCIsIi04Ljc4MDUzOTIxRS05MzQ4OTY2ODYiLCIiKTsKKyAgbWF0aHRlc3QoNDUxLGRlZiwiLTIzMjU0MDYwOS5FKzYwMjcwMjUyMCIsIjY4LjA4MzQyMjMiLCItMi4zMjU0MDYwOUUrNjAyNzAyNTI4IiwiLTIuMzI1NDA2MDlFKzYwMjcwMjUyOCIsIi0xLjU4MzIxNjA1RSs2MDI3MDI1MzAiLCItMy40MTU1MjQ2OEUrNjAyNzAyNTI2IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDQ1MixkZWYsIi0zMjA2MTA4MDMuIiwiLTg2Mzg3MTIzNS4iLCItMS4xODQ0ODIwNEUrOSIsIjU0MzI2MDQzMiIsIjIuNzY5NjY0NTBFKzE3IiwiMC4zNzExMzI2MyIsIjAiLCItMzIwNjEwODAzIiwiIik7CisgIG1hdGh0ZXN0KDQ1MyxkZWYsIi0zMDM5NTYzNjRFKzI3ODEzOTk3OSIsIjIyOTUzNy45MjBFKzQ3OTYwMzcyNSIsIjIuMjk1Mzc5MjBFKzQ3OTYwMzczMCIsIi0yLjI5NTM3OTIwRSs0Nzk2MDM3MzAiLCItNi45NzY5NTExNkUrNzU3NzQzNzE3IiwiLTEuMzI0MjA5OEUtMjAxNDYzNzQzIiwiMCIsIi0zLjAzOTU2MzY0RSsyNzgxMzk5ODciLCI5LjIzODk0NzEyRSs1NTYyNzk5NzQiKTsKKyAgbWF0aHRlc3QoNDU0LGRlZiwiLTQzOS43NDczNDgiLCI3NC45NDk0NDU3RS0zNTMxMTc1ODIiLCItNDM5Ljc0NzM0OCIsIi00MzkuNzQ3MzQ4IiwiLTMuMjk1ODgyMDBFLTM1MzExNzU3OCIsIi01Ljg2NzI1Mjg0RSszNTMxMTc1ODIiLCIiLCIiLCItMy4xNzk5NjY5M0UrMTgiKTsKKyAgbWF0aHRlc3QoNDU1LGRlZiwiLTg5NzAyMjMxLjkiLCIxLjI4OTkzOTkzIiwiLTg5NzAyMjMwLjYiLCItODk3MDIyMzMuMiIsIi0xMTU3MTA0OTEiLCItNjk1Mzk4NTIuMSIsIi02OTUzOTg1MiIsIi0wLjA3ODkwOTY0IiwiLTg5NzAyMjMxLjkiKTsKKyAgbWF0aHRlc3QoNDU2LGRlZiwiLTU4NTY5MzkuMTQiLCItNjc0MzM3NS4zNCIsIi0xMjYwMDMxNC41IiwiODg2NDM2LjIwIiwiMy45NDk1NTM5MEUrMTMiLCIwLjg2ODU0NzEwNyIsIjAiLCItNTg1NjkzOS4xNCIsIi0zLjI5MjEzMjQ4RS00NTYzNjk0MiIpOworICBtYXRodGVzdCg0NTcsZGVmLCI3MzMzMTcuNjY5RSsxMDAzODEzNDkiLCItMTM4MzIuNjc5MkUrMTc0MDU1NjA3IiwiLTEuMzgzMjY3OTJFKzE3NDA1NTYxMSIsIjEuMzgzMjY3OTJFKzE3NDA1NTYxMSIsIi0xLjAxNDM3NDgxRSsyNzQ0MzY5NjYiLCItNS4zMDEzNDIyN0UtNzM2NzQyNTciLCIwIiwiNy4zMzMxNzY2OUUrMTAwMzgxMzU0IiwiMS4zNjM2NjU0OUUtMTAwMzgxMzU1Iik7CisgIG1hdGh0ZXN0KDQ1OCxkZWYsIjg3LjQ3OTg3ODdFLTgwMTI0NzA0IiwiMTA4NDk3LjMyIiwiMTA4NDk3LjMyMCIsIi0xMDg0OTcuMzIwIiwiOS40OTEzMzIzOUUtODAxMjQ2OTgiLCI4LjA2Mjg2MDc5RS04MDEyNDcwOCIsIjAiLCI4Ljc0Nzk4Nzg3RS04MDEyNDcwMyIsIiIpOworICBtYXRodGVzdCg0NTksZGVmLCItNjk0NTYyMDUyIiwiMzEwNjgxLjMxOUUrNTQ5NDQ1MjY0IiwiMy4xMDY4MTMxOUUrNTQ5NDQ1MjY5IiwiLTMuMTA2ODEzMTlFKzU0OTQ0NTI2OSIsIi0yLjE1Nzg3NDU0RSs1NDk0NDUyNzgiLCItMi4yMzU2MDkzMkUtNTQ5NDQ1MjYxIiwiMCIsIi02OTQ1NjIwNTIiLCItMy4zNTA2ODE1NUUrMjYiKTsKKyAgbWF0aHRlc3QoNDYwLGRlZiwiLTk3NDQxMzUuODUiLCIxNzk3MDE2LjA0IiwiLTc5NDcxMTkuODEiLCItMTE1NDExNTEuOSIsIi0xLjc1MTAzNjg0RSsxMyIsIi01LjQyMjM5NzgyIiwiLTUiLCItNzU5MDU1LjY1IiwiMy44Mzg0ODAwNkUrMTI1NTg4ODMiKTsKKyAgbWF0aHRlc3QoNDYxLGRlZiwiMzYyNS44NzMwOCIsIi01MC4yMjA4NTM2RSs2NTg2Mjc0ODciLCItNS4wMjIwODUzNkUrNjU4NjI3NDg4IiwiNS4wMjIwODUzNkUrNjU4NjI3NDg4IiwiLTEuODIwOTQ0NDFFKzY1ODYyNzQ5MiIsIi03LjIxOTg1NTU0RS02NTg2Mjc0ODYiLCIwIiwiMzYyNS44NzMwOCIsIjEuNTk1NjQ3N0UtMTgiKTsKKyAgbWF0aHRlc3QoNDYyLGRlZiwiMzY1MzQ3LjUyIiwiLTM2NTU0MTQuNDciLCItMzI5MDA2Ni45NSIsIjQwMjA3NjEuOTkiLCItMS4zMzU0OTY2MUUrMTIiLCItMC4wOTk5NDY5NDgiLCIwIiwiMzY1MzQ3LjUyIiwiMS4wMjY2MzI1N0UtMjAzMzM5OTQiKTsKKyAgbWF0aHRlc3QoNDYzLGRlZiwiLTE5NzA2MzMzLjZFLTgxNjkyMzA1MCIsIi0zODM4NTgwMzIuIiwiLTM4Mzg1ODAzMiIsIjM4Mzg1ODAzMiIsIjcuNTY0NDM0NDNFLTgxNjkyMzAzNSIsIjUuMTMzNzU1N0UtODE2OTIzMDUyIiwiMCIsIi0xLjk3MDYzMzM2RS04MTY5MjMwNDMiLCIiKTsKKyAgbWF0aHRlc3QoNDY0LGRlZiwiLTg2MzQ2LjI2MTYiLCItOTguODA2Mzc4NSIsIi04NjQ0NS4wNjgwIiwiLTg2MjQ3LjQ1NTIiLCI4NTMxNTYxLjQxIiwiODczLjg5MzU5OCIsIjg3MyIsIi04OC4yOTMxNjk1IiwiLTIuMDUwNjQwODZFLTQ4OSIpOworICBtYXRodGVzdCg0NjUsZGVmLCItNDQ1NTg4LjE2MEUtNDk2NTkyMjE1IiwiMzI4LjgyMjk3NiIsIjMyOC44MjI5NzYiLCItMzI4LjgyMjk3NiIsIi0xLjQ2NTE5NjI1RS00OTY1OTIyMDciLCItMS4zNTUxMDA0NEUtNDk2NTkyMjEyIiwiMCIsIi00LjQ1NTg4MTYwRS00OTY1OTIyMTAiLCIiKTsKKyAgbWF0aHRlc3QoNDY2LGRlZiwiLTk3MDkyMTMuNzEiLCItMzQuNjY5MDEzNyIsIi05NzA5MjQ4LjM4IiwiLTk3MDkxNzkuMDQiLCIzMzY2MDg4NjMiLCIyODAwNTQuNTEyIiwiMjgwMDU0IiwiLTE3Ljc0NzI2MDIiLCItMi44MDkwMzk3NEUtMjQ1Iik7CisgIG1hdGh0ZXN0KDQ2NyxkZWYsIjc0MjM5NTUzNi4iLCItNDM1MzMuNjg4OSIsIjc0MjM1MjAwMiIsIjc0MjQzOTA3MCIsIi0zLjIzMTkyMTYzRSsxMyIsIi0xNzA1My4zNTY5IiwiLTE3MDUzIiwiMTU1MzkuMTg4MyIsIjUuNzYyMjczNEUtMzg2MTc1Iik7CisgIG1hdGh0ZXN0KDQ2OCxkZWYsIi04Nzg4NDkxOTMuIiwiLTU4NDI5ODIuNDdFLTk3MjUzNzM0MiIsIi04Nzg4NDkxOTMiLCItODc4ODQ5MTkzIiwiNS4xMzUxMDA0M0UtOTcyNTM3MzI3IiwiMS41MDQxMTA2MUUrOTcyNTM3MzQ0IiwiIiwiIiwiMi4xNzAyNzA0MkUtNTQiKTsKKyAgbWF0aHRlc3QoNDY5LGRlZiwiLTc4MDE0MTQyLjEiLCItNjI0NjU4LjUyMiIsIi03ODYzODgwMC42IiwiLTc3Mzg5NDgzLjYiLCI0Ljg3MzIxOTg3RSsxMyIsIjEyNC44OTA4NjMiLCIxMjQiLCItNTU2NDg1LjM3MiIsIi03Ljg2MDYzODY1RS00OTI5OTE4Iik7CisgIG1hdGh0ZXN0KDQ3MCxkZWYsIjg1NzAzOS4zNzEiLCI0NTQuMzc5NjcyIiwiODU3NDkzLjc1MSIsIjg1NjU4NC45OTEiLCIzODk0MjEyNjgiLCIxODg2LjE3NDU0IiwiMTg4NiIsIjc5LjMwOTYwOCIsIjMuODIyNTMxMDFFKzI2OTMiKTsKKyAgbWF0aHRlc3QoNDcxLGRlZiwiMTY2NTM0MDEwLiIsIi0xNzMuMDEyMjM2IiwiMTY2NTMzODM3IiwiMTY2NTM0MTgzIiwiLTIuODgxMjQyMTRFKzEwIiwiLTk2MjU1Ni4yNTUiLCItOTYyNTU2IiwiNDQuMTY0Nzg0IiwiNC43ODYyMDY2NEUtMTQyMyIpOworICBtYXRodGVzdCg0NzIsZGVmLCItODEwLjg3OTA2MyIsIjQzNzc2LjYxMCIsIjQyOTY1LjczMDkiLCItNDQ1ODcuNDg5MSIsIi0zNTQ5NzUzNi41IiwiLTAuMDE4NTIzMTEyMyIsIjAiLCItODEwLjg3OTA2MyIsIi0yLjM0NzU4NjkxRSsxMjczNDUiKTsKKyAgbWF0aHRlc3QoNDczLGRlZiwiLTMyNy4xMjc5MzUiLCI5MzQ1ODk0NCIsIjkzNDU4NjE2LjkiLCItOTM0NTkyNzEuMSIsIi0zLjA1NzMwMzE0RSsxMCIsIi0wLjAwMDAwMzUwMDIzMTQ1IiwiMCIsIi0zMjcuMTI3OTM1IiwiMi4yOTMyMzAyMUUrMjM1MDIyODU0Iik7CisgIG1hdGh0ZXN0KDQ3NCxkZWYsIjUzOTI5NTIxOC4iLCItOTU4Nzk0MS4xMEUtMzA5NjQzMDk4IiwiNTM5Mjk1MjE4IiwiNTM5Mjk1MjE4IiwiLTUuMTcwNzMwNzlFLTMwOTY0MzA4MyIsIi01LjYyNDcyMzk0RSszMDk2NDMwOTkiLCIiLCIiLCI0LjgwNTQ1MjY5RS04OCIpOworICBtYXRodGVzdCg0NzUsZGVmLCItMzg2MjcwMi42NSIsIjg3OTYxNi43MzMiLCItMjk4MzA4NS45MiIsIi00NzQyMzE5LjM4IiwiLTMuMzk3Njk3ODlFKzEyIiwiLTQuMzkxMzQ3NCIsIi00IiwiLTM0NDIzNS43MTgiLCItMy41MDY1MDE2N0UrNTc5Mzk0MSIpOworICBtYXRodGVzdCg0NzYsZGVmLCItOC4yNTI5MDUwMCIsIjk5Mi4wOTE1ODRFKzI1NjA3MDI1NyIsIjkuOTIwOTE1ODRFKzI1NjA3MDI1OSIsIi05LjkyMDkxNTg0RSsyNTYwNzAyNTkiLCItOC4xODc2Mzc1OUUrMjU2MDcwMjYwIiwiLTguMzE4NjkyNjhFLTI1NjA3MDI2MCIsIjAiLCItOC4yNTI5MDUwMCIsIjEuNDY1Nzc4ODhFKzkiKTsKKyAgbWF0aHRlc3QoNDc3LGRlZiwiNTQ2ODc1MjA1LiIsIjQ0Ny41Mjg1N0UrNTU3MzU3MTAxIiwiNC40NzUyODU3MEUrNTU3MzU3MTAzIiwiLTQuNDc1Mjg1NzBFKzU1NzM1NzEwMyIsIjIuNDQ3NDIyNzhFKzU1NzM1NzExMiIsIjEuMjIxOTg5NDhFLTU1NzM1NzA5NSIsIjAiLCI1NDY4NzUyMDUiLCI4Ljk0NDQzNTQyRSszNCIpOworICBtYXRodGVzdCg0NzgsZGVmLCIxNzc2MjM0MzciLCItNzc3OTExNi4xNCIsIjE2OTg0NDMyMSIsIjE4NTQwMjU1MyIsIi0xLjM4MTc1MzM1RSsxNSIsIi0yMi44MzMzNyIsIi0yMiIsIjY0ODI4ODEuOTIiLCIyLjkwMDg1MzA5RS02NDE3MzgyMCIpOworICBtYXRodGVzdCg0NzksZGVmLCIzNzcyMDQ3MzUuIiwiMTM3NjguMTQwMSIsIjM3NzIxODUwMyIsIjM3NzE5MDk2NyIsIjUuMTkzNDA3NjRFKzEyIiwiMjczOTYuOTI3NCIsIjI3Mzk2IiwiMTI3NjguODIwNCIsIjIuMDYwNjUyOTdFKzExODA4MiIpOworICBtYXRodGVzdCg0ODAsZGVmLCItMjQzNS40OTIzOSIsIi0xMTczMi4wNjQwRS0yMzMzMTUwNCIsIi0yNDM1LjQ5MjM5IiwiLTI0MzUuNDkyMzkiLCIyLjg1NzMzNTI2RS0yMzMzMTQ5NyIsIjIuMDc1OTI4MzJFKzIzMzMxNTAzIiwiIiwiIiwiLTAuMDAwNDEwNTk0NTkiKTsKKyAgbWF0aHRlc3QoNDgxLGRlZiwiLTYxMjg0NjUuMTRFLTEzNzEyMzI5NCIsIi01NzQyMjY0LjI3IiwiLTU3NDIyNjQuMjciLCI1NzQyMjY0LjI3IiwiMy41MTkxMjY2NEUtMTM3MTIzMjgxIiwiMS4wNjcyNTU4NUUtMTM3MTIzMjk0IiwiMCIsIi02LjEyODQ2NTE0RS0xMzcxMjMyODgiLCIiKTsKKyAgbWF0aHRlc3QoNDgyLGRlZiwiLTI4OTgwNjUuNDQiLCItNS4xMTYzODEwNSIsIi0yODk4MDcwLjU2IiwiLTI4OTgwNjAuMzIiLCIxNDgyNzYwNy4xIiwiNTY2NDI4Ljc3MyIsIjU2NjQyOCIsIi0zLjk1NDYxMDYwIiwiLTQuODkxNjkxNTFFLTMzIik7CisgIG1hdGh0ZXN0KDQ4MyxkZWYsIjE4NTEzOTUuMzFFKzU5NDM4MzE2MCIsIi01NTAzMDEuNDc1IiwiMS44NTEzOTUzMUUrNTk0MzgzMTY2IiwiMS44NTEzOTUzMUUrNTk0MzgzMTY2IiwiLTEuMDE4ODI1NTdFKzU5NDM4MzE3MiIsIi0zLjM2NDMyOTE4RSs1OTQzODMxNjAiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoNDg0LGRlZiwiNTM2NDEyNTg5LkUrMzc5NTgzOTc3IiwiODk5LjYwMTE2MSIsIjUuMzY0MTI1ODlFKzM3OTU4Mzk4NSIsIjUuMzY0MTI1ODlFKzM3OTU4Mzk4NSIsIjQuODI1NTczODhFKzM3OTU4Mzk4OCIsIjUuOTYyNzgyMzFFKzM3OTU4Mzk4MiIsIiIsIiIsIiIpOworICBtYXRodGVzdCg0ODUsZGVmLCIxODUuODUyOTciLCI4Njc0MTk0ODAuIiwiODY3NDE5NjY2IiwiLTg2NzQxOTI5NCIsIjEuNjEyMTI0ODdFKzExIiwiMi4xNDI1OTYyMkUtNyIsIjAiLCIxODUuODUyOTciLCIiKTsKKyAgbWF0aHRlc3QoNDg2LGRlZiwiLTUuMjY2MzEwNTMiLCItMzgxNTk0MS4zNUUrMTgzMjkxNzYzIiwiLTMuODE1OTQxMzVFKzE4MzI5MTc2OSIsIjMuODE1OTQxMzVFKzE4MzI5MTc2OSIsIjIuMDA5NTkzMjFFKzE4MzI5MTc3MCIsIjEuMzgwMDgxNjJFLTE4MzI5MTc2OSIsIjAiLCItNS4yNjYzMTA1MyIsIjAuMDAxMzAwMDkyMTgiKTsKKyAgbWF0aHRlc3QoNDg3LGRlZiwiLTguMTE1ODcwMjFFLTI0NTk0MjgwNiIsIjQ1NTMuMDY3NTNFKzk0MzQxMjA0OCIsIjQuNTUzMDY3NTNFKzk0MzQxMjA1MSIsIi00LjU1MzA2NzUzRSs5NDM0MTIwNTEiLCItMy42OTUyMTA1MUUrNjk3NDY5MjQ2IiwiIiwiMCIsIi04LjExNTg3MDIxRS0yNDU5NDI4MDYiLCIiKTsKKyAgbWF0aHRlc3QoNDg4LGRlZiwiLTQwNTc2NS4zNTIiLCI4NTQ5NjMyMzEiLCI4NTQ1NTc0NjYiLCItODU1MzY4OTk2IiwiLTMuNDY5MTQ0NTZFKzE0IiwiLTAuMDAwNDc0NTk5NzY5IiwiMCIsIi00MDU3NjUuMzUyIiwiIik7CisgIG1hdGh0ZXN0KDQ4OSxkZWYsIi0xNTkuNjA5NzU3IiwiLTQzMzU2Ljc1NjciLCItNDM1MTYuMzY2NSIsIjQzMTk3LjE0NzAiLCI2OTIwMTYxLjQwIiwiMC4wMDM2ODEzMTIxOSIsIjAiLCItMTU5LjYwOTc1NyIsIi04Ljk1Mzk3ODQ5RS05NTUxOSIpOworICBtYXRodGVzdCg0OTAsZGVmLCItNTY0MjQwLjI0MUUtNTAxMzE2NjcyIiwiLTU1Ny43ODE5NzciLCItNTU3Ljc4MTk3NyIsIjU1Ny43ODE5NzciLCIzLjE0NzIzMDM3RS01MDEzMTY2NjQiLCIxLjAxMTU3ODQ3RS01MDEzMTY2NjkiLCIwIiwiLTUuNjQyNDAyNDFFLTUwMTMxNjY2NyIsIiIpOworICBtYXRodGVzdCg0OTEsZGVmLCIzMTg4NDcuMjcwIiwiNTgyMTA3ODc4LkUrMzk5NjMzNDEyIiwiNS44MjEwNzg3OEUrMzk5NjMzNDIwIiwiLTUuODIxMDc4NzhFKzM5OTYzMzQyMCIsIjEuODU2MDM1MDhFKzM5OTYzMzQyNiIsIjUuNDc3NDYwMTRFLTM5OTYzMzQxNiIsIjAiLCIzMTg4NDcuMjcwIiwiMS4wNTA3NDIzRSszMyIpOworICBtYXRodGVzdCg0OTIsZGVmLCItNDQyNi41OTY2MyIsIjk1LjEwOTY3NjUiLCItNDMzMS40ODY5NSIsIi00NTIxLjcwNjMxIiwiLTQyMTAxMi4xNzMiLCItNDYuNTQyMDIxNyIsIi00NiIsIi01MS41NTE1MTEwIiwiLTIuMzgwMzczNzlFKzM0NiIpOworICBtYXRodGVzdCg0OTMsZGVmLCI2MDM3LjI4MzEwIiwiNTc4MjY0LjEwNSIsIjU4NDMwMS4zODgiLCItNTcyMjI2LjgyMiIsIjMuNDkxMTQ0MTFFKzkiLCIwLjAxMDQ0MDM1NiIsIjAiLCI2MDM3LjI4MzEwIiwiMy41NzI3OTQ4M0UrMjE4NjMyNCIpOworICBtYXRodGVzdCg0OTQsZGVmLCItNjYuOTU1NjY5MiIsIi01My44NTE5NDA0IiwiLTEyMC44MDc2MTAiLCItMTMuMTAzNzI4OCIsIjM2MDUuNjkyNzEiLCIxLjI0MzMyODgxIiwiMSIsIi0xMy4xMDM3Mjg4IiwiMi41NTU1NDA4NkUtOTkiKTsKKyAgbWF0aHRlc3QoNDk1LGRlZiwiLTkyNDg2LjAyMjIiLCItNTk5MzUuODU0NCIsIi0xNTI0MjEuODc3IiwiLTMyNTUwLjE2NzgiLCI1LjU0MzIyODc2RSs5IiwiMS41NDMwODM0IiwiMSIsIi0zMjU1MC4xNjc4IiwiMS44MzE1MjY1NkUtMjk3NjQ3Iik7CisgIG1hdGh0ZXN0KDQ5NixkZWYsIjg1MjEzNjIxOS5FKzkxNzc4NzM1MSIsIjkyNDYyMjEuOTEiLCI4LjUyMTM2MjE5RSs5MTc3ODczNTkiLCI4LjUyMTM2MjE5RSs5MTc3ODczNTkiLCI3Ljg3OTA0MDU4RSs5MTc3ODczNjYiLCI5LjIxNjA0NzY3RSs5MTc3ODczNTIiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoNDk3LGRlZiwiLTIxMjAwOTYuMTZFLTI2OTI1MzcxOCIsIjk0MzcuMDA1MTQiLCI5NDM3LjAwNTE0IiwiLTk0MzcuMDA1MTQiLCItMi4wMDA3MzU4NEUtMjY5MjUzNzA4IiwiLTIuMjQ2NTc3MzFFLTI2OTI1MzcxNiIsIjAiLCItMi4xMjAwOTYxNkUtMjY5MjUzNzEyIiwiIik7CisgIG1hdGh0ZXN0KDQ5OCxkZWYsIi01MjQ2NTMuMTY5RS04NjU3ODQyMjYiLCIyMjgwNTQuNjk4IiwiMjI4MDU0LjY5OCIsIi0yMjgwNTQuNjk4IiwiLTEuMTk2NDk2MjBFLTg2NTc4NDIxNSIsIi0yLjMwMDU1ODQ4RS04NjU3ODQyMjYiLCIwIiwiLTUuMjQ2NTMxNjlFLTg2NTc4NDIyMSIsIiIpOworICBtYXRodGVzdCg0OTksZGVmLCItMjg4MTkzMTMzIiwiLTMxMjI2ODczNy4iLCItNjAwNDYxODcwIiwiMjQwNzU2MDQiLCI4Ljk5OTM3MDU3RSsxNiIsIjAuOTIyOTAxMDExIiwiMCIsIi0yODgxOTMxMzMiLCIiKTsKKyAgbWF0aHRlc3QoNTAwLGRlZiwiLTM3MzQ4NDc1OUUtMTEzNTg5OTY0IiwiODQ0MTAxOTU4RS04NTI1MzgyNDAiLCItMy43MzQ4NDc1OUUtMTEzNTg5OTU2IiwiLTMuNzM0ODQ3NTlFLTExMzU4OTk1NiIsIi0zLjE1MjU5MjE2RS05NjYxMjgxODciLCItNC40MjQ2NDAzNkUrNzM4OTQ4Mjc1IiwiIiwiIiwiMy43ODYwMjE0N0UtOTA4NzE5NjQ0Iik7CisgIAorICBzdW1tYXJ5KCJBcml0aG1ldGljIik7CisgIHJldHVybjt9CisKKyAvKiBtYXRodGVzdCAtLSBnZW5lcmFsIGFyaXRobWV0aWMgdGVzdCByb3V0aW5lCisgICAgQXJnMSAgaXMgdGVzdCBudW1iZXIKKyAgICBBcmcyICBpcyBNYXRoQ29udGV4dAorICAgIEFyZzMgIGlzIGxlZnQgaGFuZCBzaWRlIChMSFMpCisgICAgQXJnNCAgaXMgcmlnaHQgaGFuZCBzaWRlIChSSFMpCisgICAgQXJnNSAgaXMgdGhlIGV4cGVjdGVkIHJlc3VsdCBmb3IgYWRkCisgICAgQXJnNiAgaXMgdGhlIGV4cGVjdGVkIHJlc3VsdCBmb3Igc3VidHJhY3QKKyAgICBBcmc3ICBpcyB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvciBtdWx0aXBseQorICAgIEFyZzggIGlzIHRoZSBleHBlY3RlZCByZXN1bHQgZm9yIGRpdmlkZQorICAgIEFyZzkgIGlzIHRoZSBleHBlY3RlZCByZXN1bHQgZm9yIGludGVnZXJEaXZpZGUKKyAgICBBcmcxMCBpcyB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvciByZW1haW5kZXIKKyAgICBBcmcxMSBpcyB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvciBwb3dlcgorIAorICBGb3IgcG93ZXIgUkhTLCAwIGlzIGFkZGVkIHRvIHRoZSBudW1iZXIsIGFueSBleHBvbmVudCBpcyByZW1vdmVkIGFuZAorICB0aGUgbnVtYmVyIGlzIHRoZW4gcm91bmRlZCB0byBhbiBpbnRlZ2VyLCB1c2luZyBmb3JtYXQocmhzKzAsLDApCisgCisgIElmIGFuIGVycm9yIHNob3VsZCByZXN1bHQgZm9yIGFuIG9wZXJhdGlvbiwgdGhlICdleHBlY3RlZCByZXN1bHQnIGlzCisgIGFuIGVtcHR5IHN0cmluZy4KKyAgKi8KKyAKKyBwcml2YXRlIHZvaWQgbWF0aHRlc3QoaW50IHRlc3QsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBtYyxqYXZhLmxhbmcuU3RyaW5nIHNsaHMsamF2YS5sYW5nLlN0cmluZyBzcmhzLGphdmEubGFuZy5TdHJpbmcgYWRkLGphdmEubGFuZy5TdHJpbmcgc3ViLGphdmEubGFuZy5TdHJpbmcgbXVsLGphdmEubGFuZy5TdHJpbmcgZGl2LGphdmEubGFuZy5TdHJpbmcgaWR2LGphdmEubGFuZy5TdHJpbmcgcmVtLGphdmEubGFuZy5TdHJpbmcgcG93KXsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGxoczsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJoczsKKyAgamF2YS5sYW5nLlN0cmluZyByZXM9bnVsbDsKKyAgamF2YS5sYW5nLlN0cmluZyBzbj1udWxsOworICBpbnQgZT0wOworICAKKyAgCisgIAorICBsaHM9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzbGhzKTsKKyAgcmhzPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoc3Jocyk7CisgIAorICB0cnl7CisgICByZXM9bGhzLmFkZChyaHMsbWMpLnRvU3RyaW5nKCk7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxMzcpeworICAgcmVzPSIiOworICB9CisgIG1hdGh0ZXN0Y2hlY2sodGVzdCxsaHMscmhzLCJhZGQiLHJlcyxhZGQpOworICAKKyAgdHJ5eworICAgcmVzPWxocy5zdWJ0cmFjdChyaHMsbWMpLnRvU3RyaW5nKCk7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxMzgpeworICAgcmVzPSIiOworICB9CisgIG1hdGh0ZXN0Y2hlY2sodGVzdCxsaHMscmhzLCJzdWIiLHJlcyxzdWIpOworICAKKyAgdHJ5eworICAgcmVzPWxocy5tdWx0aXBseShyaHMsbWMpLnRvU3RyaW5nKCk7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxMzkpeworICAgcmVzPSIiOworICB9CisgIG1hdGh0ZXN0Y2hlY2sodGVzdCxsaHMscmhzLCJtdWwiLHJlcyxtdWwpOworICAKKyAgdHJ5eworICAgcmVzPWxocy5kaXZpZGUocmhzLG1jKS50b1N0cmluZygpOworICB9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMTQwKXsKKyAgIHJlcz0iIjsKKyAgfQorICBtYXRodGVzdGNoZWNrKHRlc3QsbGhzLHJocywiZGl2IixyZXMsZGl2KTsKKyAgCisgIHRyeXsKKyAgIHJlcz1saHMuZGl2aWRlSW50ZWdlcihyaHMsbWMpLnRvU3RyaW5nKCk7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxNDEpeworICAgcmVzPSIiOworICB9CisgIG1hdGh0ZXN0Y2hlY2sodGVzdCxsaHMscmhzLCJpZHYiLHJlcyxpZHYpOworICAKKyAgdHJ5eworICAgcmVzPWxocy5yZW1haW5kZXIocmhzLG1jKS50b1N0cmluZygpOworICB9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMTQyKXsKKyAgIHJlcz0iIjsKKyAgfQorICBtYXRodGVzdGNoZWNrKHRlc3QsbGhzLHJocywicmVtIixyZXMscmVtKTsKKyAgCisgIHRyeXsKKyAgIC8vIHByZXBhcmUgYW4gaW50ZWdlciBmcm9tIHRoZSByaHMKKyAgIC8vIGluIFJleHg6CisgICAvLyAgIG49cmhzKzAKKyAgIC8vICAgZT1wb3MoJ0UnLCBuKQorICAgLy8gICBpZiBlPjAgdGhlbiBuPWxlZnQobixlLTEpCisgICAvLyAgIG49Zm9ybWF0KG4sLDApCisgICAKKyAgIHNuPXJocy5wbHVzKG1jKS50b1N0cmluZygpOworICAgZT1zbi5pbmRleE9mKCJFIiwwKTsKKyAgIGlmIChlPjApIAorICAgIHNuPXNuLnN1YnN0cmluZygwLGUpOworICAgc249KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoc24pKS5mb3JtYXQoLTEsMCk7CisgICAKKyAgIHJlcz1saHMucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoc24pLG1jKS50b1N0cmluZygpOworICB9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMTQzKXsKKyAgIHJlcz0iIjsKKyAgfQorICBtYXRodGVzdGNoZWNrKHRlc3QsbGhzLHJocywicG93IixyZXMscG93KTsKKyAgcmV0dXJuOworICB9CisKKyAvKiBtYXRodGVzdGNoZWNrIC0tIGNoZWNrIGZvciBnZW5lcmFsIG1hdGh0ZXN0IGVycm9yCisgICAgQXJnMSAgaXMgdGVzdCBudW1iZXIKKyAgICBBcmcyICBpcyBsZWZ0IGhhbmQgc2lkZSAoTEhTKQorICAgIEFyZzMgIGlzIHJpZ2h0IGhhbmQgc2lkZSAoUkhTKQorICAgIEFyZzQgIGlzIHRoZSBvcGVyYXRpb24KKyAgICBBcmc1ICBpcyB0aGUgYWN0dWFsIHJlc3VsdAorICAgIEFyZzYgIGlzIHRoZSBleHBlY3RlZCByZXN1bHQKKyAgICBTaG93IGVycm9yIG1lc3NhZ2UgaWYgYSBwcm9ibGVtLCBvdGhlcndpc2UgcmV0dXJuIHF1aWV0bHkKKyAgICAqLworIAorIHByaXZhdGUgdm9pZCBtYXRodGVzdGNoZWNrKGludCB0ZXN0LGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBsaHMsY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyxqYXZhLmxhbmcuU3RyaW5nIG9wLGphdmEubGFuZy5TdHJpbmcgZ290LGphdmEubGFuZy5TdHJpbmcgd2FudCl7CisgIGJvb2xlYW4gZmxhZzsKKyAgamF2YS5sYW5nLlN0cmluZyB0ZXN0bnVtOworICAKKyAgZmxhZz13YW50LmVxdWFscygoamF2YS5sYW5nLk9iamVjdClnb3QpOworICAKKyAgaWYgKCghZmxhZykpIAorICAgc2F5KCI+Iit0ZXN0KyI+IisiICIrbGhzLnRvU3RyaW5nKCkrIiAiK29wKyIgIityaHMudG9TdHJpbmcoKSsiICIrIj0iKyIgIit3YW50KyIgIisiW2dvdCIrIiAiK2dvdCsiXSIpOworICAKKyAgdGVzdG51bT0iZ2VuIityaWdodCgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh0ZXN0KzEwMDApKS50b1N0cmluZygpLDMpOworICAKKyAgKG5ldyBUZXN0KHRlc3RudW0pKS5vaz1mbGFnOworICByZXR1cm47CisgIH0KKworIAorIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIC8qIFN1cHBvcnQgcm91dGluZXMgYW5kIG1pbm9yIGNsYXNzZXMgZm9sbG93ICAgICAgICAgICAgICAgICAgICAgICAgICAqLworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgLyogTWV0aG9kIGNhbGxlZCB0byBzdW1tYXJpc2UgcGVuZGluZyB0ZXN0cyAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIC8qIEFyZzEgaXMgc2VjdGlvbiBuYW1lICovCisgCisgcHJpdmF0ZSB2b2lkIHN1bW1hcnkoamF2YS5sYW5nLlN0cmluZyBzZWN0aW9uKXsKKyAgaW50IGJhZDsKKyAgaW50IGNvdW50OworICBpbnQgaT0wOworICBUZXN0IGl0ZW09bnVsbDsKKyAgYmFkPTA7CisgIGNvdW50PVRlc3RzLnNpemUoKTsKKyAge2ludCAkMTQ0PWNvdW50O2k9MDtpOmZvcig7JDE0ND4wOyQxNDQtLSxpKyspeworICAgaXRlbT0oVGVzdCkoVGVzdHMuZWxlbWVudEF0KGkpKTsKKyAgIGlmICgoIWl0ZW0ub2spKSAKKyAgICB7CisgICAgIGJhZCsrOworICAgICBlcnJsbigiRmFpbGVkOiIrIiAiK2l0ZW0ubmFtZSk7CisgICAgfQorICAgfQorICB9LyppKi8KKyAgdG90YWxjb3VudD10b3RhbGNvdW50K2NvdW50OworICBUZXN0cz1uZXcgamF2YS51dGlsLlZlY3RvcigxMDApOyAvLyByZWluaXRpYWxpemUKKyAgaWYgKGJhZD09MCkgCisgICBzYXkoIk9LIisiICIrbGVmdChzZWN0aW9uLDE0KSsiICIrcmlnaHQoIlsiK2NvdW50KyIgIisidGVzdHNdIiwxMikpOworICBlbHNlIAorICAgdGhyb3cgbmV3IERpYWdFeGNlcHRpb24oc2VjdGlvbisiICIrIltmYWlsZWQiKyIgIitiYWQrIiAiKyJvZiIrIiAiK2NvdW50KyIgIisidGVzdHNdIixiYWQpOworICByZXR1cm47fQorCisgCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAvKiByaWdodCAtIFV0aWxpdHkgdG8gZG8gYSAncmlnaHQnIG9uIGEgSmF2YSBTdHJpbmcgICAgICAgICAgICAgICAgICAqLworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgLyogQXJnMSBpcyBzdHJpbmcgdG8gcmlnaHQtanVzdGlmeSAqLworIC8qIEFyZzIgaXMgZGVzaXJlZCBsZW5ndGggKi8KKyAKKyBwcml2YXRlIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIHJpZ2h0KGphdmEubGFuZy5TdHJpbmcgcyxpbnQgbGVuKXsKKyAgaW50IHNsZW47CisgIHNsZW49cy5sZW5ndGgoKTsKKyAgaWYgKHNsZW49PWxlbikgCisgICByZXR1cm4gczsgLy8gbGVuZ3RoIGp1c3QgcmlnaHQKKyAgaWYgKHNsZW4+bGVuKSAKKyAgIHJldHVybiBzLnN1YnN0cmluZyhzbGVuLWxlbik7IC8vIHRydW5jYXRlIG9uIGxlZnQKKyAgLy8gdG9vIHNob3J0CisgIHJldHVybiAobmV3IGphdmEubGFuZy5TdHJpbmcobmV3IGNoYXJbbGVuLXNsZW5dKSkucmVwbGFjZSgnXDAwMCcsJyAnKS5jb25jYXQocyk7CisgIH0KKworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgLyogbGVmdCAtIFV0aWxpdHkgdG8gZG8gYSAnbGVmdCcgb24gYSBKYXZhIFN0cmluZyAgICAgICAgICAgICAgICAgICAgKi8KKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIC8qIEFyZzEgaXMgc3RyaW5nIHRvIGxlZnQtanVzdGlmeSAqLworIC8qIEFyZzIgaXMgZGVzaXJlZCBsZW5ndGggKi8KKyAKKyBwcml2YXRlIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIGxlZnQoamF2YS5sYW5nLlN0cmluZyBzLGludCBsZW4peworICBpbnQgc2xlbjsKKyAgc2xlbj1zLmxlbmd0aCgpOworICBpZiAoc2xlbj09bGVuKSAKKyAgIHJldHVybiBzOyAvLyBsZW5ndGgganVzdCByaWdodAorICBpZiAoc2xlbj5sZW4pIAorICAgcmV0dXJuIHMuc3Vic3RyaW5nKDAsbGVuKTsgLy8gdHJ1bmNhdGUgb24gcmlnaHQKKyAgLy8gdG9vIHNob3J0CisgIHJldHVybiBzLmNvbmNhdCgobmV3IGphdmEubGFuZy5TdHJpbmcobmV3IGNoYXJbbGVuLXNsZW5dKSkucmVwbGFjZSgnXDAwMCcsJyAnKSk7CisgIH0KKworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgLyogc2F5IC0gVXRpbGl0eSB0byBkbyBhIGRpc3BsYXkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIC8qIEFyZzEgaXMgc3RyaW5nIHRvIGRpc3BsYXksIG9taXR0ZWQgaWYgbm9uZSAqLworIC8qICAgICAgICAgW251bGwgb3Igb21pdHRlZCBnaXZlcyBibGFuayBsaW5lXSAqLworIC8vIHRoaXMgdmVyc2lvbiBkb2Vzbid0IGhlZWQgY29udGludWF0aW9uIGZpbmFsIGNoYXJhY3RlcgorIAorIHByaXZhdGUgdm9pZCBzYXkoKXsKKyAgc2F5KChqYXZhLmxhbmcuU3RyaW5nKW51bGwpO3JldHVybjsKKyAgfQorIHByaXZhdGUgdm9pZCBzYXkoamF2YS5sYW5nLlN0cmluZyBzKXsKKyAgaWYgKHM9PW51bGwpIAorICAgcz0iICAiOworICBsb2dsbihzKTsKKyAgcmV0dXJuO30KKworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgLyogU2NhZmZvbGRpbmcgZm9yIHN0YW5kLWFsb25lIHJ1biAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIC8qKiBFbnRyeSBwb2ludCBmb3Igc3RhbmQtYWxvbmUgcnVuLiAgSXQgY29uc3RydWN0cyBhCisgICogIDxjb2RlPkRpYWdCaWdEZWNpbWFsPC9jb2RlPiBvYmplY3QgYW5kIHRoZW4gaW52b2tlcyBpdHMKKyAgKiAge0BsaW5rICNkaWFncnVuKGJvb2xlYW4pfSBtZXRob2QgdG8gcnVuIHRoZSB0ZXN0CisgICogIHN1aXRlLgorICAqCisgICogQHBhcmFtIGFyZ3MgVGhlIGNvbW1hbmQgbGluZSBhcmd1bWVudCBzdHJpbmcgYXJyYXkuCisgICogICBpZiB0aGUgZmlyc3Qgd29yZCBpcyAnPGNvZGU+Y29udGludWU8L2NvZGU+JyB0aGVuIHRyeSBhbmQgcnVuCisgICogICBhbGwgdGVzdHMsIG90aGVyd2lzZSBzdG9wIGFmdGVyIHRoZSBmaXJzdCBmYWlsaW5nIHRlc3QgZ3JvdXAuCisgICovCisgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICBuZXcgRGlhZ0JpZ0RlY2ltYWwoKS5ydW4oYXJncyk7CisgfQorIHB1YmxpYyB2b2lkIFRlc3RCaWdEZWNpbWFsKCl7CisJICBib29sZWFuICRjb250aW51ZTsKKwkgIGludCBmYWlsczsKKwkgICRjb250aW51ZT1mYWxzZTsKKwkgIGZhaWxzPWRpYWdydW4oJGNvbnRpbnVlKTsgLy8gYW5kIHJ1biB0aGUgdGVzdHMKKwkgIGlmKGZhaWxzIT0wKSB7CisgICAgICAgICBlcnJsbigiRGlhZ25vc3RpYyBUZXN0cyBmb3IgbWF0aCBmYWlsZWQuIE51bWJlciBvZiBlcnJvcnM6ICIgK2ZhaWxzKTsKKwkgIH0KKyAgfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKy8qIFRlc3QgLS0gcmVwcmVzZW50cyBhIHRlc3QgYW5kIGl0cyBzdGF0dXMgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisvKiBDb3B5cmlnaHQgSUJNIENvcnBvcmF0aW9uIDE5OTgsIDIwMDAuICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgICAgICAgKi8KKy8qIEF1dGhvcjogTWlrZSBDb3dsaXNoYXcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisvKiAxOTk4LjA3LjE1IEluaXRpYWwgdmVyc2lvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDIwMDAuMDMuMjcgQ2hhbmdlIHRvIGphdmFkb2MgY29tbWVudHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworCisvKioKKyAqIFRoZSA8Y29kZT5UZXN0PC9jb2RlPiBjbGFzcyBpcyB1c2VkIHRvIHJlY29yZCBhIHNwZWNpZmljIHRlc3QuCisgKiBXaGVuIGNvbnN0cnVjdGVkLCBpdCBub3RlcyB0aGUgbmFtZSBvZiB0aGUgdGVzdCBhbmQgYWRkcyB0aGUgdGVzdAorICogdG8gdGhlIGxpc3Qgb2YgdGVzdHMgaGVsZCBieSB0aGUgcGFyZW50LgorICoKKyAqIEl0cyA8Y29kZT5vazwvZmxhZz4gaXMgYXNzaWduZWQgZGlyZWN0bHkgdG8gcmVjb3JkIHdoZXRoZXIgdGhlCisgKiB0ZXN0IHN1Y2NlZWRlZCAoMSkgb3IgZmFpbGVkICgwKS4KKyAqCisgKiBAc2VlICAgICBjb20uaWJtLmljdS5tYXRoLkRpYWdCaWdEZWNpbWFsCisgKiBAdmVyc2lvbiAxLjAwIDIwMDAuMDMuMjcKKyAqIEBhdXRob3IgIE1pa2UgQ293bGlzaGF3CisgKi8KKyAKKyBwdWJsaWMgY2xhc3MgVGVzdHsKKyAgcHJpdmF0ZSBmaW5hbCB0cmFuc2llbnQgamF2YS5sYW5nLlN0cmluZyAkMD0iRGlhZ0JpZ0RlY2ltYWwubnJ4IjsKKyAgLyogcHJvcGVydGllcyBzaGFyZWQgdHJhbnNpZW50ICovCisgLyoqIFRoZSBuYW1lIG9mIHRoZSB0ZXN0LiAqLworICB0cmFuc2llbnQgamF2YS5sYW5nLlN0cmluZyBuYW1lOworIC8qKiBTdWNjZXNzIGZsYWc7IHdpbGwgYmUgc2V0IHRvIDEgKHRydWUpIGlmIHRoZSB0ZXN0IHN1Y2NlZWRlZCwgb3IgMAorICAqIChmYWxzZSkgaWYgdGhlIHRlc3QgZmFpbGVkLgorICAqLworICB0cmFuc2llbnQgYm9vbGVhbiBvazsKKworIAorIC8qKgorICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+VGVzdDwvY29kZT4gd2l0aCBhIHNwZWNpZmllZCBuYW1lLgorICAqCisgICogQHBhcmFtIHRlc3RuYW1lIFRoZSA8Y29kZT5TdHJpbmc8L2NvZGU+IG5hbWluZyB0aGUgdGVzdC4KKyAgKi8KKyAgCisgIHB1YmxpYyBUZXN0KGphdmEubGFuZy5TdHJpbmcgdGVzdG5hbWUpe3N1cGVyKCk7CisgICBuYW1lPXRlc3RuYW1lOyAvLyBzYXZlIHRoZSBuYW1lCisgICBEaWFnQmlnRGVjaW1hbC50aGlzLlRlc3RzLmFkZEVsZW1lbnQoKGphdmEubGFuZy5PYmplY3QpdGhpcyk7IC8vIGFuZCBhZGQgdG8gcGFyZW50J3MgbGlzdAorICAgcmV0dXJuO30KKyAgfQorCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgLyogRGlhZ0V4Y2VwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgLyogQ29weXJpZ2h0IElCTSBDb3Jwb3JhdGlvbiAxOTk2LCAyMDAwLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gICAgICAgICovCisgLyogQXV0aG9yOiBNaWtlIENvd2xpc2hhdyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgLyogMTk5Ni4wNS4yNyBJbml0aWFsIHZlcnNpb24gaW4gTmV0UmV4eCAoYXMgRGlhZ1gpICAgICAgICAgICAgICAgICAgICovCisgLyogMTk5OC4wNi4yNSBDb3BpZWQgZnJvbSBOZXRSZXh4IHRlc3Qgc3VpdGUgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgLyogMTk5OS4wNy4wMyBBZGQgZmFpbCBjb3VudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgLyogMjAwMC4wMy4yNyBDaGFuZ2UgdG8gamF2YWRvYyBjb21tZW50cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgCisgLyoqCisgICogVGhlIDxjb2RlPkRpYWdFeGNlcHRpb248L2NvZGU+IGNsYXNzIGlzIHVzZWQgdG8gc2lnbmFsIHRoZSBmYWlsdXJlCisgICogb2YgYSB0ZXN0IGdyb3VwLiAgSXQgcmVjb3JkcyB0aGUgbnVtYmVyIG9mIGZhaWx1cmVzIGluIHRoZSBncm91cC4KKyAgKgorICAqIEBzZWUgICAgIGNvbS5pYm0uaWN1Lm1hdGguRGlhZ0JpZ0RlY2ltYWwKKyAgKiBAdmVyc2lvbiAxLjAwIDIwMDAuMDMuMjcKKyAgKiBAYXV0aG9yICBNaWtlIENvd2xpc2hhdworICAqLworIAorIHB1YmxpYyBzdGF0aWMgY2xhc3MgRGlhZ0V4Y2VwdGlvbiBleHRlbmRzIGphdmEubGFuZy5SdW50aW1lRXhjZXB0aW9ueworICBwcml2YXRlIGZpbmFsIHRyYW5zaWVudCBqYXZhLmxhbmcuU3RyaW5nICQwPSJEaWFnQmlnRGVjaW1hbC5ucngiOworIAorICAvKiBwcm9wZXJ0aWVzIHNoYXJlZCB0cmFuc2llbnQgKi8KKyAvKiogdGhlIGNvdW50IG9mIGZhaWxlZCB0ZXN0cyBpbiB0aGUgZ3JvdXAgd2hpY2ggc2lnbmFsbGVkIHRoaXMKKyAgICogZXhjZXB0aW9uLgorICAgKi8KKyAgdHJhbnNpZW50IGludCBmYWlsY291bnQ9MDsKKyAvLyBudW1iZXIgb2YgdGVzdHMgd2hpY2ggZmFpbGVkCisgCisgLyoqCisgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5EaWFnRXhjZXB0aW9uPC9jb2RlPiB3aXRoIGEgbWVzc2FnZSBhbmQKKyAgKiBmYWlsdXJlIGNvdW50LiAgVGhpcyBpcyB0aHJvd24gd2hlbiBhIGdyb3VwIG9mIHRlc3RzIGZhaWxzLgorICAqCisgICogQHBhcmFtIG1lc3NhZ2UgVGhlIDxjb2RlPlN0cmluZzwvY29kZT4gbWVzc2FnZSBkZXNjcmliaW5nIHRoZSBncm91cC4KKyAgKiBAcGFyYW0gZmFpbHMgICBUaGUgPGNvZGU+aW50PC9jb2RlPiBudW1iZXIgb2YgZmFpbGVkIHRlc3RzIGluIHRoZSAgZ3JvdXAuCisgICovCisgIAorICBwdWJsaWMgRGlhZ0V4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nIG1lc3NhZ2UsaW50IGZhaWxzKXsKKyAgIHN1cGVyKG1lc3NhZ2UpOworICAgZmFpbGNvdW50PWZhaWxzOworICAgcmV0dXJuO30KKyB9fQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0FzdHJvVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0FzdHJvVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjYwYzY3OWEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvQXN0cm9UZXN0LmphdmEKQEAgLTAsMCArMSwxMjIgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9Bc3Ryb1Rlc3QuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wOC8wOCAyMjowMjoyNyAkIAorICogJFJldmlzaW9uOiAxLjcgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNhbGVuZGFyOworCisvLyBBc3Ryb1Rlc3QKKworaW1wb3J0IGphdmEudXRpbC5EYXRlOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyQXN0cm9ub21lci4qOworCisvLyBUT0RPOiB0cnkgZmluZGluZyBuZXh0IG5ldyBtb29uIGFmdGVyICAwNy8yOC8xOTg0IDE2OjAwIEdNVAorCitwdWJsaWMgY2xhc3MgQXN0cm9UZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgQXN0cm9UZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBkb3VibGUgUEkgPSBNYXRoLlBJOworICAgIAorICAgIHN0YXRpYyBHcmVnb3JpYW5DYWxlbmRhciBnYyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcihuZXcgU2ltcGxlVGltZVpvbmUoMCwgIlVUQyIpKTsKKyAgICBzdGF0aWMgQ2FsZW5kYXJBc3Ryb25vbWVyIGFzdHJvID0gbmV3IENhbGVuZGFyQXN0cm9ub21lcigpOworICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RTb2xhckxvbmdpdHVkZSgpIHsKKyAgICAgICAgZmluYWwgZG91YmxlIHRlc3RzW11bXSA9IHsKKyAgICAgICAgICAgIHsgMTk4MCwgNywgMjcsIDAwLCAwMCwgMTI0LjExNDM0NyB9LAorICAgICAgICAgICAgeyAxOTg4LCA3LCAyNywgMDAsIDAwLCAxMjQuMTg3NzMyIH0sCisgICAgICAgIH07CisgICAgICAgIGxvZ2xuKCIiKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgZ2MuY2xlYXIoKTsKKyAgICAgICAgICAgIGdjLnNldCgoaW50KXRlc3RzW2ldWzBdLCAoaW50KXRlc3RzW2ldWzFdLTEsIChpbnQpdGVzdHNbaV1bMl0sIChpbnQpdGVzdHNbaV1bM10sIChpbnQpIHRlc3RzW2ldWzRdKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYXN0cm8uc2V0RGF0ZShnYy5nZXRUaW1lKCkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBkb3VibGUgbG9uZ2l0dWRlID0gYXN0cm8uZ2V0U3VuTG9uZ2l0dWRlKCk7CisgICAgICAgICAgICBsb25naXR1ZGUgPSAwOworICAgICAgICAgICAgRXF1YXRvcmlhbCByZXN1bHQgPSBhc3Ryby5nZXRTdW5Qb3NpdGlvbigpOworICAgICAgICAgICAgcmVzdWx0ID0gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0THVuYXJQb3NpdGlvbigpIHsKKyAgICAgICAgZmluYWwgZG91YmxlIHRlc3RzW11bXSA9IHsKKyAgICAgICAgICAgIHsgMTk3OSwgMiwgMjYsIDE2LCAwMCwgIDAsIDAgfSwKKyAgICAgICAgfTsKKyAgICAgICAgbG9nbG4oIiIpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgZ2MuY2xlYXIoKTsKKyAgICAgICAgICAgIGdjLnNldCgoaW50KXRlc3RzW2ldWzBdLCAoaW50KXRlc3RzW2ldWzFdLTEsIChpbnQpdGVzdHNbaV1bMl0sIChpbnQpdGVzdHNbaV1bM10sIChpbnQpIHRlc3RzW2ldWzRdKTsKKyAgICAgICAgICAgIGFzdHJvLnNldERhdGUoZ2MuZ2V0VGltZSgpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgRXF1YXRvcmlhbCByZXN1bHQgPSBhc3Ryby5nZXRNb29uUG9zaXRpb24oKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IG51bGw7CisgICAgICAgIH0KKworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29vcmRpbmF0ZXMoKSB7CisgICAgICAgIEVxdWF0b3JpYWwgcmVzdWx0ID0gYXN0cm8uZWNsaXB0aWNUb0VxdWF0b3JpYWwoMTM5LjY4NjExMSAqIFBJLyAxODAuMCwgNC44NzUyNzgqIFBJIC8gMTgwLjApOworICAgICAgICBsb2dsbigicmVzdWx0IGlzICIgKyByZXN1bHQgKyAiOyAgIiArIHJlc3VsdC50b0htc1N0cmluZygpKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdENvdmVyYWdlKCkgeworCUdyZWdvcmlhbkNhbGVuZGFyIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigxOTU4LCBDYWxlbmRhci5BVUdVU1QsIDE1KTsKKwlEYXRlIHRoZW4gPSBjYWwuZ2V0VGltZSgpOworCUNhbGVuZGFyQXN0cm9ub21lciBteWFzdHJvID0gbmV3IENhbGVuZGFyQXN0cm9ub21lcih0aGVuKTsKKworCS8vTGF0aXR1ZGU6ICAzNCBkZWdyZWVzIDA1JyBOb3J0aCAgCisJLy9Mb25naXR1ZGU6ICAxMTggZGVncmVlcyAyMicgV2VzdCAgCisJZG91YmxlIGxhTGF0ID0gMzQgKyA1ZC82MCwgbGFMb25nID0gMzYwIC0gKDExOCArIDIyZC82MCk7CisJQ2FsZW5kYXJBc3Ryb25vbWVyIG15YXN0cm8yID0gbmV3IENhbGVuZGFyQXN0cm9ub21lcihsYUxvbmcsIGxhTGF0KTsKKworCWRvdWJsZSBlY2xMYXQgPSBsYUxhdCAqIE1hdGguUEkgLyAzNjA7CisJZG91YmxlIGVjbExvbmcgPSBsYUxvbmcgKiBNYXRoLlBJIC8gMzYwOworCUVjbGlwdGljIGVjbCA9IG5ldyBFY2xpcHRpYyhlY2xMYXQsIGVjbExvbmcpOworCWxvZ2xuKCJlY2xpcHRpYzogIiArIGVjbCk7CisKKwlDYWxlbmRhckFzdHJvbm9tZXIgbXlhc3RybzMgPSBuZXcgQ2FsZW5kYXJBc3Ryb25vbWVyKCk7CisJbXlhc3RybzMuc2V0SnVsaWFuRGF5KCg0NzEzICsgMjAwMCkgKiAzNjUuMjUpOworCisJQ2FsZW5kYXJBc3Ryb25vbWVyW10gYXN0cm9ub21lcnMgPSB7CisJICAgIG15YXN0cm8sIG15YXN0cm8yLCBteWFzdHJvMywgbXlhc3RybzIgLy8gY2hlY2sgY2FjaGUKKwl9OworCisJZm9yIChpbnQgaSA9IDA7IGkgPCBhc3Ryb25vbWVycy5sZW5ndGg7ICsraSkgeworCSAgICBDYWxlbmRhckFzdHJvbm9tZXIgYXN0cm8gPSBhc3Ryb25vbWVyc1tpXTsKKworCSAgICBsb2dsbigiYXN0cm86ICIgKyBhc3Rybyk7CisJICAgIGxvZ2xuKCIgICB0aW1lOiAiICsgYXN0cm8uZ2V0VGltZSgpKTsKKwkgICAgbG9nbG4oIiAgIGRhdGU6ICIgKyBhc3Ryby5nZXREYXRlKCkpOworCSAgICBsb2dsbigiICAgY2VudDogIiArIGFzdHJvLmdldEp1bGlhbkNlbnR1cnkoKSk7CisJICAgIGxvZ2xuKCIgICBndyBzaWRlcmVhbDogIiArIGFzdHJvLmdldEdyZWVud2ljaFNpZGVyZWFsKCkpOworCSAgICBsb2dsbigiICAgbG9jIHNpZGVyZWFsOiAiICsgYXN0cm8uZ2V0TG9jYWxTaWRlcmVhbCgpKTsKKwkgICAgbG9nbG4oIiAgIGVxdSBlY2w6ICIgKyBhc3Ryby5lY2xpcHRpY1RvRXF1YXRvcmlhbChlY2wpKTsKKwkgICAgbG9nbG4oIiAgIGVxdSBsb25nOiAiICsgYXN0cm8uZWNsaXB0aWNUb0VxdWF0b3JpYWwoZWNsTG9uZykpOworCSAgICBsb2dsbigiICAgaG9yaXo6ICIgKyBhc3Ryby5lY2xpcHRpY1RvSG9yaXpvbihlY2xMb25nKSk7CisJICAgIGxvZ2xuKCIgICBzdW5yaXNlOiAiICsgbmV3IERhdGUoYXN0cm8uZ2V0U3VuUmlzZVNldCh0cnVlKSkpOworCSAgICBsb2dsbigiICAgc3Vuc2V0OiAiICsgbmV3IERhdGUoYXN0cm8uZ2V0U3VuUmlzZVNldChmYWxzZSkpKTsKKwkgICAgbG9nbG4oIiAgIG1vb24gcGhhc2U6ICIgKyBhc3Ryby5nZXRNb29uUGhhc2UoKSk7CisJICAgIGxvZ2xuKCIgICBtb29ucmlzZTogIiArIG5ldyBEYXRlKGFzdHJvLmdldE1vb25SaXNlU2V0KHRydWUpKSk7CisJICAgIGxvZ2xuKCIgICBtb29uc2V0OiAiICsgbmV3IERhdGUoYXN0cm8uZ2V0TW9vblJpc2VTZXQoZmFsc2UpKSk7CisJICAgIGxvZ2xuKCIgICBwcmV2IHN1bW1lciBzb2xzdGljZTogIiArIG5ldyBEYXRlKGFzdHJvLmdldFN1blRpbWUoYXN0cm8uU1VNTUVSX1NPTFNUSUNFLCBmYWxzZSkpKTsKKwkgICAgbG9nbG4oIiAgIG5leHQgc3VtbWVyIHNvbHN0aWNlOiAiICsgbmV3IERhdGUoYXN0cm8uZ2V0U3VuVGltZShhc3Ryby5TVU1NRVJfU09MU1RJQ0UsIHRydWUpKSk7CisJICAgIGxvZ2xuKCIgICBwcmV2IGZ1bGwgbW9vbjogIiArIG5ldyBEYXRlKGFzdHJvLmdldE1vb25UaW1lKGFzdHJvLkZVTExfTU9PTiwgZmFsc2UpKSk7CisJICAgIGxvZ2xuKCIgICBuZXh0IGZ1bGwgbW9vbjogIiArIG5ldyBEYXRlKGFzdHJvLmdldE1vb25UaW1lKGFzdHJvLkZVTExfTU9PTiwgdHJ1ZSkpKTsKKwl9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0NhbGVuZGFyUmVncmVzc2lvbi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0NhbGVuZGFyUmVncmVzc2lvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJjM2RmMWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvQ2FsZW5kYXJSZWdyZXNzaW9uLmphdmEKQEAgLTAsMCArMSwxODM5IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0NhbGVuZGFyUmVncmVzc2lvbi5qYXZhLHYgJAorICogJERhdGU6IDIwMDIvMDgvMTMgMjE6NTM6MzggJAorICogJFJldmlzaW9uOiAxLjEyICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CisKKy8qKgorICogQHRlc3QgMS4zMiA5OS8xMS8xNAorICogQGJ1ZyA0MDMxNTAyIDQwMzUzMDEgNDA0MDk5NiA0MDUxNzY1IDQwNTk2NTQgNDA2MTQ3NiA0MDcwNTAyIDQwNzExOTcgNDA3MTM4NQorICogNDA3MzkyOSA0MDgzMTY3IDQwODY3MjQgNDA5MjM2MiA0MDk1NDA3IDQwOTYyMzEgNDA5NjUzOSA0MTAwMzExIDQxMDMyNzEKKyAqIDQxMDYxMzYgNDEwODc2NCA0MTE0NTc4IDQxMTgzODQgNDEyNTg4MSA0MTI1ODkyIDQxMzYzOTkgNDE0MTY2NSA0MTQyOTMzCisgKiA0MTQ1MTU4IDQxNDU5ODMgNDE0NzI2OSA0MTQ5Njc3IDQxNjI1ODcgNDE2NTM0MyA0MTY2MTA5IDQxNjcwNjAgNDE3MzUxNgorICogNDE3NDM2MSA0MTc3NDg0IDQxOTc2OTkgNDIwOTA3MSA0Mjg4NzkyCisgKi8KK3B1YmxpYyBjbGFzcyBDYWxlbmRhclJlZ3Jlc3Npb24gZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ayB7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IENhbGVuZGFyUmVncmVzc2lvbigpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nW10gRklFTERfTkFNRSA9IHsKKyAgICAgICAgIkVSQSIsICJZRUFSIiwgIk1PTlRIIiwgIldFRUtfT0ZfWUVBUiIsICJXRUVLX09GX01PTlRIIiwKKyAgICAgICAgIkRBWV9PRl9NT05USCIsICJEQVlfT0ZfWUVBUiIsICJEQVlfT0ZfV0VFSyIsCisgICAgICAgICJEQVlfT0ZfV0VFS19JTl9NT05USCIsICJBTV9QTSIsICJIT1VSIiwgIkhPVVJfT0ZfREFZIiwKKyAgICAgICAgIk1JTlVURSIsICJTRUNPTkQiLCAiTUlMTElTRUNPTkQiLCAiWk9ORV9PRkZTRVQiLAorICAgICAgICAiRFNUX09GRlNFVCIsICJZRUFSX1dPWSIsICJET1dfTE9DQUwiLCAiRVhURU5ERURfWUVBUiIsCisgICAgICAgICJKVUxJQU5fREFZIiwgIk1JTExJU0VDT05EU19JTl9EQVkiLAorICAgIH07CisKKyAgICAvKgorICAgICAgU3lub3BzaXM6IGphdmEuc3FsLlRpbWVzdGFtcCBjb25zdHJ1Y3RvciB3b3JrcyB3cm9uZyBvbiBXaW5kb3dzIDk1CisKKyAgICAgID09PT0gSGVyZSBpcyB0aGUgdGVzdCA9PT09IAorICAgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZyBhcmdzW10pIHsgCisgICAgICAgIGphdmEuc3FsLlRpbWVzdGFtcCB0PSBuZXcgamF2YS5zcWwuVGltZXN0YW1wKDAsMTUsNSw1LDgsMTMsMTIzNDU2NzAwKTsgCisgICAgICAgIGxvZ2xuKCJleHBlY3RlZD0xOTAxLTA0LTA1IDA1OjA4OjEzLjEyMzQ1NjciKTsgCisgICAgICAgIGxvZ2xuKCIgcmVzdWx0PSIrdCk7IAorICAgICAgfSAKKyAgICAgIAorICAgICAgPT09PSBIZXJlIGlzIHRoZSBvdXRwdXQgb2YgdGhlIHRlc3Qgb24gU29sYXJpcyBvciBOVCA9PT09IAorICAgICAgZXhwZWN0ZWQ9MTkwMS0wNC0wNSAwNTowODoxMy4xMjM0NTY3IAorICAgICAgcmVzdWx0PTE5MDEtMDQtMDUgMDU6MDg6MTMuMTIzNDU2NyAKKyAgICAgIAorICAgICAgPT09PSBIZXJlIGlzIHRoZSBvdXRwdXQgb2YgdGhlIHRlc3Qgb24gV2luZG93czk1ID09PT0gCisgICAgICBleHBlY3RlZD0xOTAxLTA0LTA1IDA1OjA4OjEzLjEyMzQ1NjcgCisgICAgICByZXN1bHQ9MTkwMS0wNC0wNSAwNjowODoxMy4xMjM0NTY3IAorICAgICAgKi8KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDMxNTAyKCkgeworICAgICAgICAvLyBUaGlzIGJ1ZyBhY3R1YWxseSBvY2N1cnMgb24gV2luZG93cyBOVCBhcyB3ZWxsLCBhbmQgZG9lc24ndAorICAgICAgICAvLyByZXF1aXJlIHRoZSBob3N0IHpvbmUgdG8gYmUgc2V0OyBpdCBjYW4gYmUgc2V0IGluIEphdmEuCisgICAgICAgIFN0cmluZ1tdIGlkcyA9IFRpbWVab25lLmdldEF2YWlsYWJsZUlEcygpOworICAgICAgICBib29sZWFuIGJhZCA9IGZhbHNlOworICAgICAgICBmb3IgKGludCBpPTA7IGk8aWRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBUaW1lWm9uZSB6b25lID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoaWRzW2ldKTsKKyAgICAgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcih6b25lKTsKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgY2FsLnNldCgxOTAwLCAxNSwgNSwgNSwgOCwgMTMpOworICAgICAgICAgICAgaWYgKGNhbC5nZXQoQ2FsZW5kYXIuSE9VUikgIT0gNSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJGYWlsOiAiICsgem9uZS5nZXRJRCgpICsgIiAiICsKKyAgICAgICAgICAgICAgICAgICAgICB6b25lLnVzZURheWxpZ2h0VGltZSgpICsgIiAiICsKKyAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLkRTVF9PRkZTRVQpIC8gKDYwKjYwKjEwMDApICsgIiAiICsKKyAgICAgICAgICAgICAgICAgICAgICB6b25lLmdldFJhd09mZnNldCgpIC8gKDYwKjYwKjEwMDApICsKKyAgICAgICAgICAgICAgICAgICAgICAiOiBIT1VSID0gIiArIGNhbC5nZXQoQ2FsZW5kYXIuSE9VUikpOworICAgICAgICAgICAgICAgIGJhZCA9IHRydWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGZhbHNlKSB7IC8vIENoYW5nZSB0byB0cnVlIHRvIGRlYnVnCisgICAgICAgICAgICAgICAgbG9nbG4oIk9LOiAiICsgem9uZS5nZXRJRCgpICsgIiAiICsKKyAgICAgICAgICAgICAgICAgICAgICB6b25lLnVzZURheWxpZ2h0VGltZSgpICsgIiAiICsKKyAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLkRTVF9PRkZTRVQpIC8gKDYwKjYwKjEwMDApICsgIiAiICsKKyAgICAgICAgICAgICAgICAgICAgICB6b25lLmdldFJhd09mZnNldCgpIC8gKDYwKjYwKjEwMDApICsKKyAgICAgICAgICAgICAgICAgICAgICAiOiBIT1VSID0gIiArIGNhbC5nZXQoQ2FsZW5kYXIuSE9VUikpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChiYWQpIGVycmxuKCJUaW1lWm9uZSBwcm9ibGVtcyB3aXRoIEdDIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQwMzUzMDEoKSB7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGMgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoOTgsIDgsIDcpOworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBkID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKDk4LCA4LCA3KTsKKyAgICAgICAgaWYgKGMuYWZ0ZXIoZCkgfHwKKyAgICAgICAgICAgIGMuYWZ0ZXIoYykgfHwKKyAgICAgICAgICAgIGMuYmVmb3JlKGQpIHx8CisgICAgICAgICAgICBjLmJlZm9yZShjKSB8fAorICAgICAgICAgICAgIWMuZXF1YWxzKGMpIHx8CisgICAgICAgICAgICAhYy5lcXVhbHMoZCkpCisgICAgICAgICAgICBlcnJsbigiRmFpbCIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDQwOTk2KCkgeworICAgICAgICBTdHJpbmdbXSBpZHMgPSBUaW1lWm9uZS5nZXRBdmFpbGFibGVJRHMoLTggKiA2MCAqIDYwICogMTAwMCk7CisgICAgICAgIFNpbXBsZVRpbWVab25lIHBkdCA9IG5ldyBTaW1wbGVUaW1lWm9uZSgtOCAqIDYwICogNjAgKiAxMDAwLCBpZHNbMF0pOworICAgICAgICBwZHQuc2V0U3RhcnRSdWxlKENhbGVuZGFyLkFQUklMLCAxLCBDYWxlbmRhci5TVU5EQVksIDIgKiA2MCAqIDYwICogMTAwMCk7CisgICAgICAgIHBkdC5zZXRFbmRSdWxlKENhbGVuZGFyLk9DVE9CRVIsIC0xLCBDYWxlbmRhci5TVU5EQVksIDIgKiA2MCAqIDYwICogMTAwMCk7CisgICAgICAgIENhbGVuZGFyIGNhbGVuZGFyID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKHBkdCk7CisKKyAgICAgICAgY2FsZW5kYXIuc2V0KENhbGVuZGFyLk1PTlRILDMpOworICAgICAgICBjYWxlbmRhci5zZXQoQ2FsZW5kYXIuREFZX09GX01PTlRILDE4KTsKKyAgICAgICAgY2FsZW5kYXIuc2V0KENhbGVuZGFyLlNFQ09ORCwgMzApOworCisgICAgICAgIGxvZ2xuKCJNT05USDogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5NT05USCkpOworICAgICAgICBsb2dsbigiREFZX09GX01PTlRIOiAiICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKSk7CisgICAgICAgIGxvZ2xuKCJNSU5VVEU6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuTUlOVVRFKSk7CisgICAgICAgIGxvZ2xuKCJTRUNPTkQ6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuU0VDT05EKSk7CisKKyAgICAgICAgY2FsZW5kYXIuYWRkKENhbGVuZGFyLlNFQ09ORCw2KTsKKyAgICAgICAgLy9UaGlzIHdpbGwgcHJpbnQgb3V0IHRvZGF5cyBkYXRlIGZvciBNT05USCBhbmQgREFZX09GX01PTlRICisgICAgICAgIC8vaW5zdGVhZCBvZiB0aGUgZGF0ZSBpdCB3YXMgc2V0IHRvLgorICAgICAgICAvL1RoaXMgaGFwcGVucyB3aGVuIGFkZGluZyBNSUxMSVNFQ09ORCBvciBNSU5VVEUgYWxzbworICAgICAgICBsb2dsbigiTU9OVEg6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuTU9OVEgpKTsKKyAgICAgICAgbG9nbG4oIkRBWV9PRl9NT05USDogIiArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCkpOworICAgICAgICBsb2dsbigiTUlOVVRFOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLk1JTlVURSkpOworICAgICAgICBsb2dsbigiU0VDT05EOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLlNFQ09ORCkpOworICAgICAgICBpZiAoY2FsZW5kYXIuZ2V0KENhbGVuZGFyLk1PTlRIKSAhPSAzIHx8CisgICAgICAgICAgICBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKSAhPSAxOCB8fAorICAgICAgICAgICAgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLlNFQ09ORCkgIT0gMzYpCisgICAgICAgICAgICBlcnJsbigiRmFpbDogQ2FsZW5kYXIuYWRkIG1pc2JlaGF2ZXMiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA1MTc2NSgpIHsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsLnNldExlbmllbnQoZmFsc2UpOworICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLLCAwKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNhbC5nZXRUaW1lKCk7CisgICAgICAgICAgICBlcnJsbigiRmFpbDogREFZX09GX1dFRUsgMCBzaG91bGQgYmUgZGlzYWxsb3dlZCIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qIFVzZXIgZXJyb3IgLSBubyBidWcgaGVyZQorICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDU5NTI0KCkgeworICAgICAgICAvLyBDcmVhdGUgY2FsZW5kYXIgZm9yIEFwcmlsIDEwLCAxOTk3CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbGVuZGFyICA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICAvLyBwcmludCBvdXQgYSBidW5jaCBvZiBpbnRlcmVzdGluZyB0aGluZ3MKKyAgICAgICAgbG9nbG4oIkVSQTogIiArIGNhbGVuZGFyLmdldChjYWxlbmRhci5FUkEpKTsKKyAgICAgICAgbG9nbG4oIllFQVI6ICIgKyBjYWxlbmRhci5nZXQoY2FsZW5kYXIuWUVBUikpOworICAgICAgICBsb2dsbigiTU9OVEg6ICIgKyBjYWxlbmRhci5nZXQoY2FsZW5kYXIuTU9OVEgpKTsKKyAgICAgICAgbG9nbG4oIldFRUtfT0ZfWUVBUjogIiArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLldFRUtfT0ZfWUVBUikpOworICAgICAgICBsb2dsbigiV0VFS19PRl9NT05USDogIiArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLldFRUtfT0ZfTU9OVEgpKTsKKyAgICAgICAgbG9nbG4oIkRBVEU6ICIgKyBjYWxlbmRhci5nZXQoY2FsZW5kYXIuREFURSkpOworICAgICAgICBsb2dsbigiREFZX09GX01PTlRIOiAiICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxlbmRhci5nZXQoY2FsZW5kYXIuREFZX09GX01PTlRIKSk7CisgICAgICAgIGxvZ2xuKCJEQVlfT0ZfWUVBUjogIiArIGNhbGVuZGFyLmdldChjYWxlbmRhci5EQVlfT0ZfWUVBUikpOworICAgICAgICBsb2dsbigiREFZX09GX1dFRUs6ICIgKyBjYWxlbmRhci5nZXQoY2FsZW5kYXIuREFZX09GX1dFRUspKTsKKyAgICAgICAgbG9nbG4oIkRBWV9PRl9XRUVLX0lOX01PTlRIOiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFyLmdldChjYWxlbmRhci5EQVlfT0ZfV0VFS19JTl9NT05USCkpOworICAgICAgICBsb2dsbigiQU1fUE06ICIgKyBjYWxlbmRhci5nZXQoY2FsZW5kYXIuQU1fUE0pKTsKKyAgICAgICAgbG9nbG4oIkhPVVI6ICIgKyBjYWxlbmRhci5nZXQoY2FsZW5kYXIuSE9VUikpOworICAgICAgICBsb2dsbigiSE9VUl9PRl9EQVk6ICIgKyBjYWxlbmRhci5nZXQoY2FsZW5kYXIuSE9VUl9PRl9EQVkpKTsKKyAgICAgICAgbG9nbG4oIk1JTlVURTogIiArIGNhbGVuZGFyLmdldChjYWxlbmRhci5NSU5VVEUpKTsKKyAgICAgICAgbG9nbG4oIlNFQ09ORDogIiArIGNhbGVuZGFyLmdldChjYWxlbmRhci5TRUNPTkQpKTsKKyAgICAgICAgbG9nbG4oIk1JTExJU0VDT05EOiAiICsgY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLk1JTExJU0VDT05EKSk7CisgICAgICAgIGxvZ2xuKCJaT05FX09GRlNFVDogIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAoY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLlpPTkVfT0ZGU0VUKS8oNjAqNjAqMTAwMCkpKTsKKyAgICAgICAgbG9nbG4oIkRTVF9PRkZTRVQ6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICsgKGNhbGVuZGFyLmdldChjYWxlbmRhci5EU1RfT0ZGU0VUKS8oNjAqNjAqMTAwMCkpKTsKKyAgICAgICAgY2FsZW5kYXIgID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKDE5OTcsMywxMCk7IAorICAgICAgICBjYWxlbmRhci5nZXRUaW1lKCk7ICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGxvZ2xuKCJBcHJpbCAxMCwgMTk5NyIpOworICAgICAgICBsb2dsbigiRVJBOiAiICsgY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLkVSQSkpOworICAgICAgICBsb2dsbigiWUVBUjogIiArIGNhbGVuZGFyLmdldChjYWxlbmRhci5ZRUFSKSk7CisgICAgICAgIGxvZ2xuKCJNT05USDogIiArIGNhbGVuZGFyLmdldChjYWxlbmRhci5NT05USCkpOworICAgICAgICBsb2dsbigiV0VFS19PRl9ZRUFSOiAiICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxlbmRhci5nZXQoY2FsZW5kYXIuV0VFS19PRl9ZRUFSKSk7CisgICAgICAgIGxvZ2xuKCJXRUVLX09GX01PTlRIOiAiICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxlbmRhci5nZXQoY2FsZW5kYXIuV0VFS19PRl9NT05USCkpOworICAgICAgICBsb2dsbigiREFURTogIiArIGNhbGVuZGFyLmdldChjYWxlbmRhci5EQVRFKSk7CisgICAgICAgIGxvZ2xuKCJEQVlfT0ZfTU9OVEg6ICIgKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFyLmdldChjYWxlbmRhci5EQVlfT0ZfTU9OVEgpKTsKKyAgICAgICAgbG9nbG4oIkRBWV9PRl9ZRUFSOiAiICsgY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLkRBWV9PRl9ZRUFSKSk7CisgICAgICAgIGxvZ2xuKCJEQVlfT0ZfV0VFSzogIiArIGNhbGVuZGFyLmdldChjYWxlbmRhci5EQVlfT0ZfV0VFSykpOworICAgICAgICBsb2dsbigiREFZX09GX1dFRUtfSU5fTU9OVEg6ICIgKyBjYWxlbmRhci5nZXQoY2FsZW5kYXIuREFZX09GX1dFRUtfSU5fTU9OVEgpKTsKKyAgICAgICAgbG9nbG4oIkFNX1BNOiAiICsgY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLkFNX1BNKSk7CisgICAgICAgIGxvZ2xuKCJIT1VSOiAiICsgY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLkhPVVIpKTsKKyAgICAgICAgbG9nbG4oIkhPVVJfT0ZfREFZOiAiICsgY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLkhPVVJfT0ZfREFZKSk7CisgICAgICAgIGxvZ2xuKCJNSU5VVEU6ICIgKyBjYWxlbmRhci5nZXQoY2FsZW5kYXIuTUlOVVRFKSk7CisgICAgICAgIGxvZ2xuKCJTRUNPTkQ6ICIgKyBjYWxlbmRhci5nZXQoY2FsZW5kYXIuU0VDT05EKSk7CisgICAgICAgIGxvZ2xuKCJNSUxMSVNFQ09ORDogIiArIGNhbGVuZGFyLmdldChjYWxlbmRhci5NSUxMSVNFQ09ORCkpOworICAgICAgICBsb2dsbigiWk9ORV9PRkZTRVQ6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICsgKGNhbGVuZGFyLmdldChjYWxlbmRhci5aT05FX09GRlNFVCkvKDYwKjYwKjEwMDApKSk7IC8vIGluIGhvdXJzCisgICAgICAgIGxvZ2xuKCJEU1RfT0ZGU0VUOiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICArIChjYWxlbmRhci5nZXQoY2FsZW5kYXIuRFNUX09GRlNFVCkvKDYwKjYwKjEwMDApKSk7IC8vIGluIGhvdXJzCisgICAgfQorICAgICovCisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA1OTY1NCgpIHsKKwkvLyB3b3JrIGFyb3VuZCBidWcgZm9yIGpkazEuNCBvbiBzb2xhcmlzIDIuNiwgd2hpY2ggdXNlcyBmdW5reSB0aW1lem9uZSBuYW1lcworCS8vIGpkazEuNC4xIHdpbGwgZHJvcCBzdXBwb3J0IGZvciAyLjYgc28gd2Ugc2hvdWxkIGJlIG9rIHdoZW4gaXQgY29tZXMgb3V0CisJamF2YS51dGlsLlRpbWVab25lIGphdmF6b25lID0gamF2YS51dGlsLlRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKTsKKwlUaW1lWm9uZSBpY3V6b25lID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkdNVCIpOworCisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGdjID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKGljdXpvbmUpOworICAgICAgICAKKyAgICAgICAgZ2Muc2V0KDE5OTcsIDMsIDEsIDE1LCAxNiwgMTcpOyAvLyBBcHJpbCAxLCAxOTk3CisKKyAgICAgICAgZ2Muc2V0KENhbGVuZGFyLkhPVVIsIDApOworICAgICAgICBnYy5zZXQoQ2FsZW5kYXIuQU1fUE0sIENhbGVuZGFyLkFNKTsKKyAgICAgICAgZ2Muc2V0KENhbGVuZGFyLk1JTlVURSwgMCk7CisgICAgICAgIGdjLnNldChDYWxlbmRhci5TRUNPTkQsIDApOworICAgICAgICBnYy5zZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQsIDApOworCisgICAgICAgIERhdGUgY2QgPSBnYy5nZXRUaW1lKCk7CisgICAgICAgIGphdmEudXRpbC5DYWxlbmRhciBjYWwgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoamF2YXpvbmUpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgxOTk3LCAzLCAxLCAwLCAwLCAwKTsKKyAgICAgICAgRGF0ZSBleHAgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBpZiAoIWNkLmVxdWFscyhleHApKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IENhbGVuZGFyLnNldCBicm9rZW4uIEdvdCAiICsgY2QgKyAiIFdhbnQgIiArIGV4cCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQwNjE0NzYoKSB7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoImRkTU1NeXkiLCBMb2NhbGUuVUspOworICAgICAgICBDYWxlbmRhciBjYWwgPSBHcmVnb3JpYW5DYWxlbmRhci5nZXRJbnN0YW5jZShUaW1lWm9uZS5nZXRUaW1lWm9uZSgiR01UIiksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbGUuVUspOworICAgICAgICBmbXQuc2V0Q2FsZW5kYXIoY2FsKTsKKyAgICAgICAgdHJ5CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgRGF0ZSBkYXRlID0gZm10LnBhcnNlKCIyOU1BWTk3Iik7CisgICAgICAgICAgICAgICAgY2FsLnNldFRpbWUoZGF0ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5IT1VSX09GX0RBWSwgMTMpOworICAgICAgICBsb2dsbigiSG91cjogIitjYWwuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKSk7CisgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuSE9VUl9PRl9EQVksIDYpOworICAgICAgICBsb2dsbigiSG91cjogIitjYWwuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKSk7CisgICAgICAgIGlmIChjYWwuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKSAhPSAxOSkKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBXYW50IDE5IEdvdCAiICsgY2FsLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSkpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDcwNTAyKCkgeworICAgICAgICBqYXZhLnV0aWwuQ2FsZW5kYXIgdGVtcGNhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTgsIDAsIDMwKTsKKyAgICAgICAgRGF0ZSBkID0gZ2V0QXNzb2NpYXRlZERhdGUodGVtcGNhbC5nZXRUaW1lKCkpOworICAgICAgICBDYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgY2FsLnNldFRpbWUoZCk7CisgICAgICAgIGlmIChjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKSA9PSBDYWxlbmRhci5TQVRVUkRBWSB8fAorICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSykgPT0gQ2FsZW5kYXIuU1VOREFZKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IFdhbnQgd2Vla2RheSBHb3QgIiArIGQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgYXNzb2NpYXRlZCBkYXRlIHN0YXJ0aW5nIGZyb20gYSBzcGVjaWZpZWQgZGF0ZQorICAgICAqIE5PVEU6IHRoZSB1bm5lY2Vzc2FyeSAiZ2V0VGltZSgpJ3MiIGJlbG93IGFyZSBhIHdvcmstYXJvdW5kIGZvciBhCisgICAgICogYnVnIGluIGpkayAxLjEuMyAoYW5kIHByb2JhYmx5IGVhcmxpZXIgdmVyc2lvbnMgYWxzbykKKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gZGF0ZSBUaGUgZGF0ZSB0byBzdGFydCBmcm9tCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBEYXRlIGdldEFzc29jaWF0ZWREYXRlKERhdGUgZCkgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgY2FsLnNldFRpbWUoZCk7CisgICAgICAgIC8vY2FsLmFkZChmaWVsZCwgYW1vdW50KTsgLy88LS0gUFJPQkxFTSBTRUVOIFdJVEggZmllbGQgPSBEQVRFLE1PTlRIIAorICAgICAgICAvLyBjYWwuZ2V0VGltZSgpOyAgLy8gPC0tLSBSRU1PVkUgVEhJUyBUTyBTRUUgQlVHCisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpbnQgd2QgPSBjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKTsKKyAgICAgICAgICAgIGlmICh3ZCA9PSBDYWxlbmRhci5TQVRVUkRBWSB8fCB3ZCA9PSBDYWxlbmRhci5TVU5EQVkpIHsKKyAgICAgICAgICAgICAgICBjYWwuYWRkKENhbGVuZGFyLkRBVEUsIDEpOworICAgICAgICAgICAgICAgIC8vIGNhbC5nZXRUaW1lKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNhbC5nZXRUaW1lKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQwNzExOTcoKSB7CisgICAgICAgIGRvd1Rlc3QoZmFsc2UpOworICAgICAgICBkb3dUZXN0KHRydWUpOworICAgIH0KKworICAgIHZvaWQgZG93VGVzdChib29sZWFuIGxlbmllbnQpIHsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgIGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuQVVHVVNULCAxMik7IC8vIFdlZG5lc2RheQorICAgICAgICAvLyBjYWwuZ2V0VGltZSgpOyAvLyBGb3JjZSB1cGRhdGUKKyAgICAgICAgY2FsLnNldExlbmllbnQobGVuaWVudCk7CisgICAgICAgIGNhbC5zZXQoMTk5NiwgQ2FsZW5kYXIuREVDRU1CRVIsIDEpOyAvLyBTZXQgdGhlIGRhdGUgdG8gYmUgRGVjZW1iZXIgMSwgMTk5NgorICAgICAgICBpbnQgZG93ID0gY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSyk7CisgICAgICAgIGludCBtaW4gPSBjYWwuZ2V0TWluaW11bShDYWxlbmRhci5EQVlfT0ZfV0VFSyk7CisgICAgICAgIGludCBtYXggPSBjYWwuZ2V0TWF4aW11bShDYWxlbmRhci5EQVlfT0ZfV0VFSyk7CisgICAgICAgIGxvZ2xuKGNhbC5nZXRUaW1lKCkudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChtaW4gIT0gQ2FsZW5kYXIuU1VOREFZIHx8IG1heCAhPSBDYWxlbmRhci5TQVRVUkRBWSkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBNaW4vbWF4IGJhZCIpOworICAgICAgICBpZiAoZG93IDwgbWluIHx8IGRvdyA+IG1heCkgCisgICAgICAgICAgICBlcnJsbigiRkFJTDogRGF5IG9mIHdlZWsgIiArIGRvdyArICIgb3V0IG9mIHJhbmdlIik7CisgICAgICAgIGlmIChkb3cgIT0gQ2FsZW5kYXIuU1VOREFZKSAKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBEYXkgb2Ygd2VlayBzaG91bGQgYmUgU1VOREFZIEdvdCAiICsgZG93KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA3MTM4NSgpIHsKKwkvLyB3b3JrIGFyb3VuZCBidWcgZm9yIGpkazEuNCBvbiBzb2xhcmlzIDIuNiwgd2hpY2ggdXNlcyBmdW5reSB0aW1lem9uZSBuYW1lcworCS8vIGpkazEuNC4xIHdpbGwgZHJvcCBzdXBwb3J0IGZvciAyLjYgc28gd2Ugc2hvdWxkIGJlIG9rIHdoZW4gaXQgY29tZXMgb3V0CisJamF2YS51dGlsLlRpbWVab25lIGphdmF6b25lID0gamF2YS51dGlsLlRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKTsKKwlUaW1lWm9uZSBpY3V6b25lID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkdNVCIpOworCisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKGljdXpvbmUpOworICAgICAgICBqYXZhLnV0aWwuQ2FsZW5kYXIgdGVtcGNhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZShqYXZhem9uZSk7CisgICAgICAgIHRlbXBjYWwuY2xlYXIoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5OCwgQ2FsZW5kYXIuSlVORSwgMjQpOworICAgICAgICBjYWwuc2V0VGltZSh0ZW1wY2FsLmdldFRpbWUoKSk7CisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTU9OVEgsIENhbGVuZGFyLk5PVkVNQkVSKTsgLy8gY2hhbmdlIGEgZmllbGQKKyAgICAgICAgbG9nbG4oY2FsLmdldFRpbWUoKS50b1N0cmluZygpKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5OCwgQ2FsZW5kYXIuTk9WRU1CRVIsIDI0KTsKKyAgICAgICAgaWYgKCFjYWwuZ2V0VGltZSgpLmVxdWFscyh0ZW1wY2FsLmdldFRpbWUoKSkpCisgICAgICAgICAgICBlcnJsbigiRmFpbCIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDczOTI5KCkgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBmb28xID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKDE5OTcsIDgsIDI3KTsKKyAgICAgICAgZm9vMS5hZGQoQ2FsZW5kYXIuREFZX09GX01PTlRILCArMSk7CisgICAgICAgIGludCB0ZXN0eWVhciA9IGZvbzEuZ2V0KENhbGVuZGFyLllFQVIpOworICAgICAgICBpbnQgdGVzdG1vbnRoID0gZm9vMS5nZXQoQ2FsZW5kYXIuTU9OVEgpOworICAgICAgICBpbnQgdGVzdGRheSA9IGZvbzEuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCk7CisgICAgICAgIGlmICh0ZXN0eWVhciAhPSAxOTk3IHx8CisgICAgICAgICAgICB0ZXN0bW9udGggIT0gOCB8fAorICAgICAgICAgICAgdGVzdGRheSAhPSAyOCkKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBDYWxlbmRhciBub3QgaW5pdGlhbGl6ZWQiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA4MzE2NygpIHsKKyAgICAgICAgVGltZVpvbmUgc2F2ZVpvbmUgPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KFRpbWVab25lLmdldFRpbWVab25lKCJVVEMiKSk7CisgICAgICAgICAgICBEYXRlIGZpcnN0RGF0ZSA9IG5ldyBEYXRlKCk7CisgICAgICAgICAgICBDYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgICAgIGNhbC5zZXRUaW1lKGZpcnN0RGF0ZSk7CisgICAgICAgICAgICBsb25nIGZpcnN0TWlsbGlzSW5EYXkgPSBjYWwuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKSAqIDM2MDAwMDBMICsKKyAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLk1JTlVURSkgKiA2MDAwMEwgKworICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuU0VDT05EKSAqIDEwMDBMICsKKyAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLk1JTExJU0VDT05EKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbG9nbG4oIkN1cnJlbnQgdGltZTogIiArIGZpcnN0RGF0ZS50b1N0cmluZygpKTsKKworICAgICAgICAgICAgZm9yIChpbnQgdmFsaWRpdHk9MDsgdmFsaWRpdHk8MzA7IHZhbGlkaXR5KyspIHsKKyAgICAgICAgICAgICAgICBEYXRlIGxhc3REYXRlID0gbmV3IERhdGUoZmlyc3REYXRlLmdldFRpbWUoKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKXZhbGlkaXR5KjEwMDAqMjQqNjAqNjApOworICAgICAgICAgICAgICAgIGNhbC5zZXRUaW1lKGxhc3REYXRlKTsKKyAgICAgICAgICAgICAgICBsb25nIG1pbGxpc0luRGF5ID0gY2FsLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSkgKiAzNjAwMDAwTCArCisgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuTUlOVVRFKSAqIDYwMDAwTCArCisgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuU0VDT05EKSAqIDEwMDBMICsKKyAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5NSUxMSVNFQ09ORCk7CisgICAgICAgICAgICAgICAgaWYgKGZpcnN0TWlsbGlzSW5EYXkgIT0gbWlsbGlzSW5EYXkpIAorICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGF5IGhhcyBzaGlmdGVkICIgKyBsYXN0RGF0ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZmluYWxseSB7CisgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KHNhdmVab25lKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDg2NzI0KCkgeworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGRhdGU7CisgICAgICAgIFRpbWVab25lIHNhdmVab25lID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICBMb2NhbGUgc2F2ZUxvY2FsZSA9IExvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChMb2NhbGUuVUspOyAKKyAgICAgICAgICAgIFRpbWVab25lLnNldERlZmF1bHQoVGltZVpvbmUuZ2V0VGltZVpvbmUoIkdNVCIpKTsKKyAgICAgICAgICAgIGRhdGU9bmV3IFNpbXBsZURhdGVGb3JtYXQoImRkIE1NTSB5eXkgKHp6enopICdpcyBpbiB3ZWVrJyB3dyIpOyAKKyAgICAgICAgICAgIENhbGVuZGFyIGNhbD1DYWxlbmRhci5nZXRJbnN0YW5jZSgpOyAKKyAgICAgICAgICAgIGNhbC5zZXQoMTk5NyxDYWxlbmRhci5TRVBURU1CRVIsMzApOyAKKyAgICAgICAgICAgIERhdGUgbm93PWNhbC5nZXRUaW1lKCk7IAorICAgICAgICAgICAgbG9nbG4oZGF0ZS5mb3JtYXQobm93KSk7IAorICAgICAgICAgICAgY2FsLnNldCgxOTk3LENhbGVuZGFyLkpBTlVBUlksMSk7IAorICAgICAgICAgICAgbm93PWNhbC5nZXRUaW1lKCk7IAorICAgICAgICAgICAgbG9nbG4oZGF0ZS5mb3JtYXQobm93KSk7IAorICAgICAgICAgICAgY2FsLnNldCgxOTk3LENhbGVuZGFyLkpBTlVBUlksOCk7IAorICAgICAgICAgICAgbm93PWNhbC5nZXRUaW1lKCk7IAorICAgICAgICAgICAgbG9nbG4oZGF0ZS5mb3JtYXQobm93KSk7IAorICAgICAgICAgICAgY2FsLnNldCgxOTk2LENhbGVuZGFyLkRFQ0VNQkVSLDMxKTsgCisgICAgICAgICAgICBub3c9Y2FsLmdldFRpbWUoKTsgCisgICAgICAgICAgICBsb2dsbihkYXRlLmZvcm1hdChub3cpKTsgCisgICAgICAgIH0KKyAgICAgICAgZmluYWxseSB7CisgICAgICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChzYXZlTG9jYWxlKTsKKyAgICAgICAgICAgIFRpbWVab25lLnNldERlZmF1bHQoc2F2ZVpvbmUpOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKCIqKiogVEhFIFJFU1VMVFMgT0YgVEhJUyBURVNUIE1VU1QgQkUgVkVSSUZJRUQgTUFOVUFMTFkgKioqIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQwOTIzNjIoKSB7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbDEgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoMTk5NywgMTAsIDExLCAxMCwgMjAsIDQwKTsgCisgICAgICAgIC8qY2FsMS5zZXQoIENhbGVuZGFyLllFQVIsIDE5OTcgKTsgCisgICAgICAgIGNhbDEuc2V0KCBDYWxlbmRhci5NT05USCwgMTAgKTsgCisgICAgICAgIGNhbDEuc2V0KCBDYWxlbmRhci5EQVRFLCAxMSApOyAKKyAgICAgICAgY2FsMS5zZXQoIENhbGVuZGFyLkhPVVIsIDEwICk7IAorICAgICAgICBjYWwxLnNldCggQ2FsZW5kYXIuTUlOVVRFLCAyMCApOyAKKyAgICAgICAgY2FsMS5zZXQoIENhbGVuZGFyLlNFQ09ORCwgNDAgKTsgKi8KKworICAgICAgICBsb2dsbiggIiBDYWwxID0gIiArIGNhbDEuZ2V0VGltZSgpLmdldFRpbWUoKSApOyAKKyAgICAgICAgbG9nbG4oICIgQ2FsMSB0aW1lIGluIG1zID0gIiArIGNhbDEuZ2V0KENhbGVuZGFyLk1JTExJU0VDT05EKSApOyAKKyAgICAgICAgZm9yKCBpbnQgayA9IDA7IGsgPCAxMDAgOyBrKysgKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsgCisgICAgICAgIH0KKworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwyID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKDE5OTcsIDEwLCAxMSwgMTAsIDIwLCA0MCk7IAorICAgICAgICAvKmNhbDIuc2V0KCBDYWxlbmRhci5ZRUFSLCAxOTk3ICk7IAorICAgICAgICBjYWwyLnNldCggQ2FsZW5kYXIuTU9OVEgsIDEwICk7IAorICAgICAgICBjYWwyLnNldCggQ2FsZW5kYXIuREFURSwgMTEgKTsgCisgICAgICAgIGNhbDIuc2V0KCBDYWxlbmRhci5IT1VSLCAxMCApOyAKKyAgICAgICAgY2FsMi5zZXQoIENhbGVuZGFyLk1JTlVURSwgMjAgKTsgCisgICAgICAgIGNhbDIuc2V0KCBDYWxlbmRhci5TRUNPTkQsIDQwICk7ICovCisKKyAgICAgICAgbG9nbG4oICIgQ2FsMiA9ICIgKyBjYWwyLmdldFRpbWUoKS5nZXRUaW1lKCkgKTsgCisgICAgICAgIGxvZ2xuKCAiIENhbDIgdGltZSBpbiBtcyA9ICIgKyBjYWwyLmdldChDYWxlbmRhci5NSUxMSVNFQ09ORCkgKTsgCisgICAgICAgIGlmKCAhY2FsMS5lcXVhbHMoIGNhbDIgKSApIAorICAgICAgICAgICAgZXJybG4oIkZhaWw6IE1pbGxpc2Vjb25kcyByYW5kb21pemVkIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQwOTU0MDcoKSB7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGEgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoMTk5NyxDYWxlbmRhci5OT1ZFTUJFUiwgMTMpOworICAgICAgICBpbnQgZG93ID0gYS5nZXQoQ2FsZW5kYXIuREFZX09GX1dFRUspOworICAgICAgICBpZiAoZG93ICE9IENhbGVuZGFyLlRIVVJTREFZKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IFdhbnQgVEhVUlNEQVkgR290ICIgKyBkb3cpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDk2MjMxKCkgeworICAgICAgICBUaW1lWm9uZSBHTVQgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiR01UIik7CisgICAgICAgIFRpbWVab25lIFBTVCA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKyAgICAgICAgaW50IHNlYyA9IDAsIG1pbiA9IDAsIGhyID0gMCwgZGF5ID0gMSwgbW9udGggPSAxMCwgeWVhciA9IDE5OTc7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIENhbGVuZGFyIGNhbDEgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoUFNUKTsKKyAgICAgICAgY2FsMS5zZXRUaW1lKG5ldyBEYXRlKDg4MDY5ODYzOTAwMEwpKTsKKyAgICAgICAgaW50IHA7CisgICAgICAgIGxvZ2xuKCJQU1QgMSBpczogIiArIChwPWNhbDEuZ2V0KGNhbDEuSE9VUl9PRl9EQVkpKSk7CisgICAgICAgIGNhbDEuc2V0VGltZVpvbmUoR01UKTsKKyAgICAgICAgLy8gSXNzdWUgMTogQ2hhbmdpbmcgdGhlIHRpbWV6b25lIGRvZXNuJ3QgY2hhbmdlIHRoZQorICAgICAgICAvLyAgICAgICAgICByZXByZXNlbnRlZCB0aW1lLgorICAgICAgICBpbnQgaDEsaDI7CisgICAgICAgIGxvZ2xuKCJHTVQgMSBpczogIiArIChoMT1jYWwxLmdldChjYWwxLkhPVVJfT0ZfREFZKSkpOworICAgICAgICBjYWwxLnNldFRpbWUobmV3IERhdGUoODgwNjk4NjM5MDAwTCkpOworICAgICAgICBsb2dsbigiR01UIDIgaXM6ICIgKyAoaDI9Y2FsMS5nZXQoY2FsMS5IT1VSX09GX0RBWSkpKTsKKyAgICAgICAgLy8gTm90ZTogVGhpcyB0ZXN0IGhhZCBhIGJ1ZyBpbiBpdC4gIEl0IHdhbnRlZCBoMSE9aDIsIHdoZW4KKyAgICAgICAgLy8gd2hhdCB3YXMgbWVhbnQgd2FzIGgxIT1wLiAgRml4ZWQgdGhpcyBjb25jdXJyZW50IHdpdGggZml4CisgICAgICAgIC8vIHRvIDQxNzc0ODQuCisgICAgICAgIGlmIChwID09IGgxIHx8IGgxICE9IGgyKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IEhvdXIgc2FtZSBpbiBkaWZmZXJlbnQgem9uZXMiKTsKKworICAgICAgICBDYWxlbmRhciBjYWwyID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKEdNVCk7CisgICAgICAgIENhbGVuZGFyIGNhbDMgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoUFNUKTsKKyAgICAgICAgY2FsMi5zZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQsIDApOworICAgICAgICBjYWwzLnNldChDYWxlbmRhci5NSUxMSVNFQ09ORCwgMCk7CisKKyAgICAgICAgY2FsMi5zZXQoY2FsMS5nZXQoY2FsMS5ZRUFSKSwKKyAgICAgICAgICAgICAgICAgY2FsMS5nZXQoY2FsMS5NT05USCksCisgICAgICAgICAgICAgICAgIGNhbDEuZ2V0KGNhbDEuREFZX09GX01PTlRIKSwKKyAgICAgICAgICAgICAgICAgY2FsMS5nZXQoY2FsMS5IT1VSX09GX0RBWSksCisgICAgICAgICAgICAgICAgIGNhbDEuZ2V0KGNhbDEuTUlOVVRFKSwKKyAgICAgICAgICAgICAgICAgY2FsMS5nZXQoY2FsMS5TRUNPTkQpKTsKKworICAgICAgICBsb25nIHQxLHQyLHQzLHQ0OworICAgICAgICBsb2dsbigiUkdNVCAxIGlzOiAiICsgKHQxPWNhbDIuZ2V0VGltZSgpLmdldFRpbWUoKSkpOworICAgICAgICBjYWwzLnNldCh5ZWFyLCBtb250aCwgZGF5LCBociwgbWluLCBzZWMpOworICAgICAgICBsb2dsbigiUlBTVCAxIGlzOiAiICsgKHQyPWNhbDMuZ2V0VGltZSgpLmdldFRpbWUoKSkpOworICAgICAgICBjYWwzLnNldFRpbWVab25lKEdNVCk7CisgICAgICAgIGxvZ2xuKCJSR01UIDIgaXM6ICIgKyAodDM9Y2FsMy5nZXRUaW1lKCkuZ2V0VGltZSgpKSk7CisgICAgICAgIGNhbDMuc2V0KGNhbDEuZ2V0KGNhbDEuWUVBUiksCisgICAgICAgICAgICAgICAgIGNhbDEuZ2V0KGNhbDEuTU9OVEgpLAorICAgICAgICAgICAgICAgICBjYWwxLmdldChjYWwxLkRBWV9PRl9NT05USCksCisgICAgICAgICAgICAgICAgIGNhbDEuZ2V0KGNhbDEuSE9VUl9PRl9EQVkpLAorICAgICAgICAgICAgICAgICBjYWwxLmdldChjYWwxLk1JTlVURSksCisgICAgICAgICAgICAgICAgIGNhbDEuZ2V0KGNhbDEuU0VDT05EKSk7CisgICAgICAgIC8vIElzc3VlIDI6IENhbGVuZGFyIGNvbnRpbnVlcyB0byB1c2UgdGhlIHRpbWV6b25lIGluIGl0cworICAgICAgICAvLyAgICAgICAgICBjb25zdHJ1Y3RvciBmb3Igc2V0KCkgY29udmVyc2lvbnMsIHJlZ2FyZGxlc3MKKyAgICAgICAgLy8gICAgICAgICAgb2YgY2FsbHMgdG8gc2V0VGltZVpvbmUoKQorICAgICAgICBsb2dsbigiUkdNVCAzIGlzOiAiICsgKHQ0PWNhbDMuZ2V0VGltZSgpLmdldFRpbWUoKSkpOworICAgICAgICBpZiAodDEgPT0gdDIgfHwKKyAgICAgICAgICAgIHQxICE9IHQ0IHx8CisgICAgICAgICAgICB0MiAhPSB0MykKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBDYWxlbmRhciB6b25lIGJlaGF2aW9yIGZhdWx0eSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDk2NTM5KCkgeworICAgICAgICBpbnRbXSB5ID0gezMxLDI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxfTsKKworICAgICAgICBmb3IgKGludCB4PTA7eDwxMjt4KyspIHsKKyAgICAgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGdjID0gbmV3IAorICAgICAgICAgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyKDE5OTcseCx5W3hdKTsKKyAgICAgICAgICAgIGludCBtMSxtMjsKKyAgICAgICAgICAgIGxvZygobTE9Z2MuZ2V0KENhbGVuZGFyLk1PTlRIKSsxKSsiLyIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjLmdldChDYWxlbmRhci5EQVRFKSsiLyIrZ2MuZ2V0KENhbGVuZGFyLllFQVIpKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICsgMW1vID0gIik7CisKKyAgICAgICAgICAgIGdjLmFkZChDYWxlbmRhci5NT05USCwgMSk7CisgICAgICAgICAgICBsb2dsbigobTI9Z2MuZ2V0KENhbGVuZGFyLk1PTlRIKSsxKSsiLyIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2MuZ2V0KENhbGVuZGFyLkRBVEUpKyIvIitnYy5nZXQoQ2FsZW5kYXIuWUVBUikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgaW50IG0gPSAobTEgJSAxMikgKyAxOworICAgICAgICAgICAgaWYgKG0yICE9IG0pCisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IFdhbnQgIiArIG0gKyAiIEdvdCAiICsgbTIpOworICAgICAgICB9CisgICAgICAgIAorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTAwMzExKCkgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSAoR3JlZ29yaWFuQ2FsZW5kYXIpQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCAxOTk3KTsKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5EQVlfT0ZfWUVBUiwgMSk7CisgICAgICAgIERhdGUgZCA9IGNhbC5nZXRUaW1lKCk7ICAgICAgICAgICAgIC8vIFNob3VsZCBiZSBKYW4gMQorICAgICAgICBsb2dsbihkLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfWUVBUikgIT0gMSkKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBEQVlfT0ZfWUVBUiBub3Qgc2V0Iik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDMyNzEoKSB7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoKTsgCisgICAgICAgIGludCBudW1ZZWFycz00MCwgc3RhcnRZZWFyPTE5OTcsIG51bURheXM9MTU7IAorICAgICAgICBTdHJpbmcgb3V0cHV0LCB0ZXN0RGVzYzsgCisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIHRlc3RDYWwgPSAoR3JlZ29yaWFuQ2FsZW5kYXIpQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsgCisgICAgICAgIHRlc3RDYWwuY2xlYXIoKTsKKyAgICAgICAgc2RmLnNldENhbGVuZGFyKHRlc3RDYWwpOyAKKyAgICAgICAgc2RmLmFwcGx5UGF0dGVybigiZCBNTU0geXl5eSIpOyAKKyAgICAgICAgYm9vbGVhbiBmYWlsID0gZmFsc2U7CisgICAgICAgIGZvciAoaW50IGZpcnN0RGF5PTE7IGZpcnN0RGF5PD0yOyBmaXJzdERheSsrKSB7IAorICAgICAgICAgICAgZm9yIChpbnQgbWluRGF5cz0xOyBtaW5EYXlzPD03OyBtaW5EYXlzKyspIHsgCisgICAgICAgICAgICAgICAgdGVzdENhbC5zZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKG1pbkRheXMpOyAKKyAgICAgICAgICAgICAgICB0ZXN0Q2FsLnNldEZpcnN0RGF5T2ZXZWVrKGZpcnN0RGF5KTsgCisgICAgICAgICAgICAgICAgdGVzdERlc2MgPSAoIlRlc3QiICsgU3RyaW5nLnZhbHVlT2YoZmlyc3REYXkpICsgU3RyaW5nLnZhbHVlT2YobWluRGF5cykpOyAKKyAgICAgICAgICAgICAgICBsb2dsbih0ZXN0RGVzYyArICIgPT4gMXN0IGRheSBvZiB3ZWVrPSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcudmFsdWVPZihmaXJzdERheSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLCBtaW5pbXVtIGRheXMgaW4gZmlyc3Qgd2Vlaz0iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nLnZhbHVlT2YobWluRGF5cykpOyAKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqPXN0YXJ0WWVhcjsgajw9c3RhcnRZZWFyK251bVllYXJzOyBqKyspIHsgCisgICAgICAgICAgICAgICAgICAgIHRlc3RDYWwuc2V0KGosMTEsMjUpOyAKKyAgICAgICAgICAgICAgICAgICAgZm9yKGludCBpPTA7IGk8bnVtRGF5czsgaSsrKSB7IAorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdENhbC5hZGQoQ2FsZW5kYXIuREFURSwxKTsgCisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgY2FsV09ZOyAKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBhY3RXT1kgPSB0ZXN0Q2FsLmdldChDYWxlbmRhci5XRUVLX09GX1lFQVIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFjdFdPWSA8IDEgfHwgYWN0V09ZID4gNTMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRlIGQgPSB0ZXN0Q2FsLmdldFRpbWUoKTsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsV09ZID0gU3RyaW5nLnZhbHVlT2YoYWN0V09ZKTsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gdGVzdERlc2MgKyAiIC0gIiArIHNkZi5mb3JtYXQoZCkgKyAiXHQiOyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSBvdXRwdXQgKyAiXHQiICsgY2FsV09ZOyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbihvdXRwdXQpOyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgfSAKKyAgICAgICAgfSAKKworICAgICAgICBpbnRbXSBEQVRBID0geworICAgICAgICAgICAgMywgNTIsIDUyLCA1MiwgNTIsIDUyLCA1MiwgNTIsCisgICAgICAgICAgICAgICAgMSwgIDEsICAxLCAgMSwgIDEsICAxLCAgMSwKKyAgICAgICAgICAgICAgICAyLCAgMiwgIDIsICAyLCAgMiwgIDIsICAyLAorICAgICAgICAgICAgNCwgNTIsIDUyLCA1MiwgNTIsIDUyLCA1MiwgNTIsCisgICAgICAgICAgICAgICA1MywgNTMsIDUzLCA1MywgNTMsIDUzLCA1MywKKyAgICAgICAgICAgICAgICAxLCAgMSwgIDEsICAxLCAgMSwgIDEsICAxLAorICAgICAgICB9OworICAgICAgICB0ZXN0Q2FsLnNldEZpcnN0RGF5T2ZXZWVrKENhbGVuZGFyLlNVTkRBWSk7CisgICAgICAgIGZvciAoaW50IGo9MDsgajxEQVRBLmxlbmd0aDsgais9MjIpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJNaW5pbWFsIGRheXMgaW4gZmlyc3Qgd2VlayA9ICIgKyBEQVRBW2pdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICBXZWVrIHN0YXJ0cyBvbiBTdW5kYXkiKTsKKyAgICAgICAgICAgIHRlc3RDYWwuc2V0TWluaW1hbERheXNJbkZpcnN0V2VlayhEQVRBW2pdKTsKKyAgICAgICAgICAgIHRlc3RDYWwuc2V0KDE5OTcsIENhbGVuZGFyLkRFQ0VNQkVSLCAyMSk7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8MjE7ICsraSkgeworICAgICAgICAgICAgICAgIGludCB3b3kgPSB0ZXN0Q2FsLmdldChDYWxlbmRhci5XRUVLX09GX1lFQVIpOworICAgICAgICAgICAgICAgIGxvZyh0ZXN0Q2FsLmdldFRpbWUoKSArICIgIiArIHdveSk7CisgICAgICAgICAgICAgICAgaWYgKHdveSAhPSBEQVRBW2ogKyAxICsgaV0pIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nKCIgRVJST1IiKTsKKyAgICAgICAgICAgICAgICAgICAgZmFpbCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vbG9nbG4oKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBOb3cgY29tcHV0ZSB0aGUgdGltZSBmcm9tIHRoZSBmaWVsZHMsIGFuZCBtYWtlIHN1cmUgd2UKKyAgICAgICAgICAgICAgICAvLyBnZXQgdGhlIHNhbWUgYW5zd2VyIGJhY2suICBUaGlzIGlzIGEgcm91bmQtdHJpcCB0ZXN0LgorICAgICAgICAgICAgICAgIERhdGUgc2F2ZSA9IHRlc3RDYWwuZ2V0VGltZSgpOworICAgICAgICAgICAgICAgIHRlc3RDYWwuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICB0ZXN0Q2FsLnNldChDYWxlbmRhci5ZRUFSLCBEQVRBW2orMStpXSA8IDI1ID8gMTk5OCA6IDE5OTcpOworICAgICAgICAgICAgICAgIHRlc3RDYWwuc2V0KENhbGVuZGFyLldFRUtfT0ZfWUVBUiwgREFUQVtqKzEraV0pOworICAgICAgICAgICAgICAgIHRlc3RDYWwuc2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLLCAoaSU3KSArIENhbGVuZGFyLlNVTkRBWSk7CisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0Q2FsLmdldFRpbWUoKS5lcXVhbHMoc2F2ZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIiAgUGFyc2UgZmFpbGVkOiAiICsgdGVzdENhbC5nZXRUaW1lKCkpOworICAgICAgICAgICAgICAgICAgICBmYWlsPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHRlc3RDYWwuc2V0VGltZShzYXZlKTsKKyAgICAgICAgICAgICAgICB0ZXN0Q2FsLmFkZChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIDEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgRGF0ZSBkW10gPSBuZXcgRGF0ZVs4XTsKKyAgICAgICAgamF2YS51dGlsLkNhbGVuZGFyIHRlbXBjYWwgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgdGVtcGNhbC5jbGVhcigpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk3LCBDYWxlbmRhci5ERUNFTUJFUiwgMjgpOworICAgICAgICBkWzBdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTgsIENhbGVuZGFyLkpBTlVBUlksIDEwKTsKKyAgICAgICAgZFsxXSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk4LCBDYWxlbmRhci5ERUNFTUJFUiwgMzEpOworICAgICAgICBkWzJdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTksIENhbGVuZGFyLkpBTlVBUlksIDEpOworICAgICAgICBkWzNdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIC8vIFRlc3QgZmllbGQgZGlzYW1iaWd1YXRpb24gd2l0aCBhIGZldyBzcGVjaWFsIGhhcmQtY29kZWQgY2FzZXMuCisgICAgICAgIC8vIFRoaXMgc2hvdWxkbid0IGZhaWwgaWYgdGhlIGFib3ZlIGNhc2VzIGFyZW4ndCBmYWlsaW5nLgorICAgICAgICBPYmplY3RbXSBESVNBTSA9IHsKKyAgICAgICAgICAgIG5ldyBJbnRlZ2VyKDE5OTgpLCBuZXcgSW50ZWdlcigxKSwgbmV3IEludGVnZXIoQ2FsZW5kYXIuU1VOREFZKSwKKyAgICAgICAgICAgICAgICBkWzBdLAorICAgICAgICAgICAgbmV3IEludGVnZXIoMTk5OCksIG5ldyBJbnRlZ2VyKDIpLCBuZXcgSW50ZWdlcihDYWxlbmRhci5TQVRVUkRBWSksCisgICAgICAgICAgICAgICAgZFsxXSwKKyAgICAgICAgICAgIG5ldyBJbnRlZ2VyKDE5OTgpLCBuZXcgSW50ZWdlcig1MyksIG5ldyBJbnRlZ2VyKENhbGVuZGFyLlRIVVJTREFZKSwKKyAgICAgICAgICAgICAgICBkWzJdLAorICAgICAgICAgICAgbmV3IEludGVnZXIoMTk5OCksIG5ldyBJbnRlZ2VyKDUzKSwgbmV3IEludGVnZXIoQ2FsZW5kYXIuRlJJREFZKSwKKyAgICAgICAgICAgICAgICBkWzNdLAorICAgICAgICB9OworICAgICAgICB0ZXN0Q2FsLnNldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoMyk7CisgICAgICAgIHRlc3RDYWwuc2V0Rmlyc3REYXlPZldlZWsoQ2FsZW5kYXIuU1VOREFZKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERJU0FNLmxlbmd0aDsgaSs9NCkgeworICAgICAgICAgICAgaW50IHkgPSAoKEludGVnZXIpRElTQU1baV0pLmludFZhbHVlKCk7CisgICAgICAgICAgICBpbnQgd295ID0gKChJbnRlZ2VyKURJU0FNW2krMV0pLmludFZhbHVlKCk7CisgICAgICAgICAgICBpbnQgZG93ID0gKChJbnRlZ2VyKURJU0FNW2krMl0pLmludFZhbHVlKCk7CisgICAgICAgICAgICBEYXRlIGV4cCA9IChEYXRlKURJU0FNW2krM107CisgICAgICAgICAgICB0ZXN0Q2FsLmNsZWFyKCk7CisgICAgICAgICAgICB0ZXN0Q2FsLnNldChDYWxlbmRhci5ZRUFSLCB5KTsKKyAgICAgICAgICAgIHRlc3RDYWwuc2V0KENhbGVuZGFyLldFRUtfT0ZfWUVBUiwgd295KTsKKyAgICAgICAgICAgIHRlc3RDYWwuc2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLLCBkb3cpOworICAgICAgICAgICAgbG9nKHkgKyAiLVciICsgd295ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1ET1ciICsgZG93ICsgIiBleHBlY3Q6IiArIGV4cCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgZ290OiIgKyB0ZXN0Q2FsLmdldFRpbWUoKSk7CisgICAgICAgICAgICBpZiAoIXRlc3RDYWwuZ2V0VGltZSgpLmVxdWFscyhleHApKSB7CisgICAgICAgICAgICAgICAgbG9nKCIgIEZBSUwiKTsKKyAgICAgICAgICAgICAgICBmYWlsID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vbG9nbG4oKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE5vdyB0cnkgYWRkaW5nIGFuZCByb2xsaW5nCisgICAgICAgIE9iamVjdCBBREQgPSBuZXcgT2JqZWN0KCk7CisgICAgICAgIE9iamVjdCBST0xMID0gbmV3IE9iamVjdCgpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk4LCBDYWxlbmRhci5ERUNFTUJFUiwgMjUpOworICAgICAgICBkWzBdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTksIENhbGVuZGFyLkpBTlVBUlksIDEpOworICAgICAgICBkWzFdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIENhbGVuZGFyLkRFQ0VNQkVSLCAyOCk7CisgICAgICAgIGRbMl0gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5OCwgQ2FsZW5kYXIuSkFOVUFSWSwgNCk7CisgICAgICAgIGRbM10gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5OCwgQ2FsZW5kYXIuREVDRU1CRVIsIDI3KTsKKyAgICAgICAgZFs0XSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk3LCBDYWxlbmRhci5ERUNFTUJFUiwgMjgpOworICAgICAgICBkWzVdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTksIENhbGVuZGFyLkpBTlVBUlksIDIpOworICAgICAgICBkWzZdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTgsIENhbGVuZGFyLkpBTlVBUlksIDMpOworICAgICAgICBkWzddID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIAorICAgICAgICBPYmplY3RbXSBBRERST0xMID0geworICAgICAgICAgICAgQURELCBuZXcgSW50ZWdlcigxKSwgZFswXSwgZFsxXSwKKyAgICAgICAgICAgIEFERCwgbmV3IEludGVnZXIoMSksIGRbMl0sIGRbM10sCisgICAgICAgICAgICBST0xMLCBuZXcgSW50ZWdlcigxKSwgZFs0XSwgZFs1XSwKKyAgICAgICAgICAgIFJPTEwsIG5ldyBJbnRlZ2VyKDEpLCBkWzZdLCBkWzddLAorICAgICAgICB9OworICAgICAgICB0ZXN0Q2FsLnNldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoMyk7CisgICAgICAgIHRlc3RDYWwuc2V0Rmlyc3REYXlPZldlZWsoQ2FsZW5kYXIuU1VOREFZKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPEFERFJPTEwubGVuZ3RoOyBpKz00KSB7CisgICAgICAgICAgICBpbnQgYW1vdW50ID0gKChJbnRlZ2VyKUFERFJPTExbaSsxXSkuaW50VmFsdWUoKTsKKyAgICAgICAgICAgIERhdGUgYmVmb3JlID0gKERhdGUpQUREUk9MTFtpKzJdOworICAgICAgICAgICAgRGF0ZSBhZnRlciA9IChEYXRlKUFERFJPTExbaSszXTsKKworICAgICAgICAgICAgdGVzdENhbC5zZXRUaW1lKGJlZm9yZSk7CisgICAgICAgICAgICBpZiAoQUREUk9MTFtpXSA9PSBBREQpIHRlc3RDYWwuYWRkKENhbGVuZGFyLldFRUtfT0ZfWUVBUiwgYW1vdW50KTsKKyAgICAgICAgICAgIGVsc2UgdGVzdENhbC5yb2xsKENhbGVuZGFyLldFRUtfT0ZfWUVBUiwgYW1vdW50KTsKKyAgICAgICAgICAgIGxvZygoQUREUk9MTFtpXT09QUREPyJhZGQoV09ZLCI6InJvbGwoV09ZLCIpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50ICsgIikgIiArIGJlZm9yZSArICIgPT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RDYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgICAgIGlmICghYWZ0ZXIuZXF1YWxzKHRlc3RDYWwuZ2V0VGltZSgpKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCIgIGV4cDoiICsgYWZ0ZXIgKyAiICBGQUlMIik7CisgICAgICAgICAgICAgICAgZmFpbCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGxvZ2xuKCIgb2siKTsKKworICAgICAgICAgICAgdGVzdENhbC5zZXRUaW1lKGFmdGVyKTsKKyAgICAgICAgICAgIGlmIChBRERST0xMW2ldID09IEFERCkgdGVzdENhbC5hZGQoQ2FsZW5kYXIuV0VFS19PRl9ZRUFSLCAtYW1vdW50KTsKKyAgICAgICAgICAgIGVsc2UgdGVzdENhbC5yb2xsKENhbGVuZGFyLldFRUtfT0ZfWUVBUiwgLWFtb3VudCk7CisgICAgICAgICAgICBsb2coKEFERFJPTExbaV09PUFERD8iYWRkKFdPWSwiOiJyb2xsKFdPWSwiKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgtYW1vdW50KSArICIpICIgKyBhZnRlciArICIgPT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RDYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgICAgIGlmICghYmVmb3JlLmVxdWFscyh0ZXN0Q2FsLmdldFRpbWUoKSkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiICBleHA6IiArIGJlZm9yZSArICIgIEZBSUwiKTsKKyAgICAgICAgICAgICAgICBmYWlsID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgbG9nbG4oIiBvayIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZhaWwpIGVycmxuKCJGYWlsOiBXZWVrIG9mIHllYXIgbWlzYmVoYXZpbmciKTsKKyAgICB9IAorCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDYxMzYoKSB7CisgICAgICAgIExvY2FsZSBzYXZlTG9jYWxlID0gTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIExvY2FsZVtdIGxvY2FsZXMgPSB7IExvY2FsZS5DSElORVNFLCBMb2NhbGUuQ0hJTkEgfTsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxsb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgTG9jYWxlLnNldERlZmF1bHQobG9jYWxlc1tpXSk7CisgICAgICAgICAgICAgICAgaW50W10gbiA9IHsKKyAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuZ2V0QXZhaWxhYmxlTG9jYWxlcygpLmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdC5nZXRBdmFpbGFibGVMb2NhbGVzKCkubGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICBOdW1iZXJGb3JtYXQuZ2V0QXZhaWxhYmxlTG9jYWxlcygpLmxlbmd0aAorICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaj0wOyBqPG4ubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5bal0gPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBObyBsb2NhbGVzIGZvciAiICsgbG9jYWxlc1tpXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZpbmFsbHkgeworICAgICAgICAgICAgTG9jYWxlLnNldERlZmF1bHQoc2F2ZUxvY2FsZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEwODc2NCgpIHsKKyAgICAgICAgamF2YS51dGlsLkNhbGVuZGFyIHRlbXBjYWwgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgdGVtcGNhbC5jbGVhcigpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk3LCBDYWxlbmRhci5NQVJDSCwgMTUsIDEyLCAwMCwgMDApOworICAgICAgICBEYXRlIGQwMCA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk3LCBDYWxlbmRhci5NQVJDSCwgMTUsIDEyLCAwMCwgNTYpOworICAgICAgICBEYXRlIGQwMSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk3LCBDYWxlbmRhci5NQVJDSCwgMTUsIDEyLCAzNCwgMDApOworICAgICAgICBEYXRlIGQxMCA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk3LCBDYWxlbmRhci5NQVJDSCwgMTUsIDEyLCAzNCwgNTYpOworICAgICAgICBEYXRlIGQxMSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk3LCBDYWxlbmRhci5KQU5VQVJZLCAxNSwgMTIsIDM0LCA1Nik7CisgICAgICAgIERhdGUgZE0gID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuY2xlYXIoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk3MCwgQ2FsZW5kYXIuSkFOVUFSWSwgMSk7CisgICAgICAgIERhdGUgZXBvY2ggPSB0ZW1wY2FsLmdldFRpbWUoKTsKKworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOyAKKyAgICAgICAgY2FsLnNldFRpbWUoZDExKTsKKworICAgICAgICBjYWwuY2xlYXIoIENhbGVuZGFyLk1JTlVURSApOyAKKyAgICAgICAgbG9nbG4oY2FsLmdldFRpbWUoKS50b1N0cmluZygpKTsgCisgICAgICAgIGlmICghY2FsLmdldFRpbWUoKS5lcXVhbHMoZDAxKSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyBkMTEgKyAiIGNsZWFyKE1JTlVURSkgPT4gZXhwZWN0ICIgKworICAgICAgICAgICAgICAgICAgZDAxICsgIiwgZ290ICIgKyBjYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgfQorCisgICAgICAgIGNhbC5zZXQoIENhbGVuZGFyLlNFQ09ORCwgMCApOyAKKyAgICAgICAgbG9nbG4oY2FsLmdldFRpbWUoKS50b1N0cmluZygpKTsgCisgICAgICAgIGlmICghY2FsLmdldFRpbWUoKS5lcXVhbHMoZDAwKSkKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBzZXQoU0VDT05ELCAwKSBicm9rZW4iKTsKKworICAgICAgICBjYWwuc2V0VGltZShkMTEpOworICAgICAgICBjYWwuc2V0KCBDYWxlbmRhci5TRUNPTkQsIDAgKTsgCisgICAgICAgIGxvZ2xuKGNhbC5nZXRUaW1lKCkudG9TdHJpbmcoKSk7IAorICAgICAgICBpZiAoIWNhbC5nZXRUaW1lKCkuZXF1YWxzKGQxMCkpCisgICAgICAgICAgICBlcnJsbigiRmFpbDogc2V0KFNFQ09ORCwgMCkgYnJva2VuICMyIik7CisKKyAgICAgICAgY2FsLmNsZWFyKCBDYWxlbmRhci5NSU5VVEUgKTsgCisgICAgICAgIGxvZ2xuKGNhbC5nZXRUaW1lKCkudG9TdHJpbmcoKSk7IAorICAgICAgICBpZiAoIWNhbC5nZXRUaW1lKCkuZXF1YWxzKGQwMCkpCisgICAgICAgICAgICBlcnJsbigiRmFpbDogY2xlYXIoTUlOVVRFKSBicm9rZW4gIzIiKTsKKworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgbG9nbG4oY2FsLmdldFRpbWUoKS50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKCFjYWwuZ2V0VGltZSgpLmVxdWFscyhlcG9jaCkpCisgICAgICAgICAgICBlcnJsbigiRmFpbDogYWZ0ZXIgY2xlYXIoKSBleHBlY3QgIiArIGVwb2NoICsgIiwgZ290ICIgKyBjYWwuZ2V0VGltZSgpKTsKKworICAgICAgICBjYWwuc2V0VGltZShkMTEpOworICAgICAgICBjYWwuY2xlYXIoIENhbGVuZGFyLk1PTlRIICk7IAorICAgICAgICBsb2dsbihjYWwuZ2V0VGltZSgpLnRvU3RyaW5nKCkpOyAKKyAgICAgICAgaWYgKCFjYWwuZ2V0VGltZSgpLmVxdWFscyhkTSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgZDExICsgIiBjbGVhcihNT05USCkgPT4gZXhwZWN0ICIgKworICAgICAgICAgICAgICAgICAgZE0gKyAiLCBnb3QgIiArIGNhbC5nZXRUaW1lKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQxMTQ1NzgoKSB7CisgICAgICAgIGludCBPTkVfSE9VUiA9IDYwKjYwKjEwMDA7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGNhbC5zZXRUaW1lWm9uZShUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIikpOworICAgICAgICAKKyAgICAgICAgamF2YS51dGlsLkNhbGVuZGFyIHRlbXBjYWwgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgdGVtcGNhbC5jbGVhcigpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk4LCBDYWxlbmRhci5BUFJJTCwgNSwgMSwgMCk7CisgICAgICAgIGxvbmcgb25zZXQgPSB0ZW1wY2FsLmdldFRpbWUoKS5nZXRUaW1lKCkgKyBPTkVfSE9VUjsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5OCwgQ2FsZW5kYXIuT0NUT0JFUiwgMjUsIDAsIDApOworICAgICAgICBsb25nIGNlYXNlID0gdGVtcGNhbC5nZXRUaW1lKCkuZ2V0VGltZSgpICsgMipPTkVfSE9VUjsKKworICAgICAgICBib29sZWFuIGZhaWwgPSBmYWxzZTsKKyAgICAgICAgCisgICAgICAgIGZpbmFsIGludCBBREQgPSAxOworICAgICAgICBmaW5hbCBpbnQgUk9MTCA9IDI7CisKKyAgICAgICAgbG9uZ1tdIERBVEEgPSB7CisgICAgICAgICAgICAvLyBTdGFydCAgICAgICAgICAgIEFjdGlvbiAgIEFtdCAgICBFeHBlY3RlZF9jaGFuZ2UKKyAgICAgICAgICAgIG9uc2V0IC0gT05FX0hPVVIsICAgQURELCAgICAgIDEsICAgICBPTkVfSE9VUiwKKyAgICAgICAgICAgIG9uc2V0LCAgICAgICAgICAgICAgQURELCAgICAgLTEsICAgIC1PTkVfSE9VUiwKKyAgICAgICAgICAgIG9uc2V0IC0gT05FX0hPVVIsICAgUk9MTCwgICAgIDEsICAgICBPTkVfSE9VUiwKKyAgICAgICAgICAgIG9uc2V0LCAgICAgICAgICAgICAgUk9MTCwgICAgLTEsICAgIC1PTkVfSE9VUiwKKyAgICAgICAgICAgIGNlYXNlIC0gT05FX0hPVVIsICAgQURELCAgICAgIDEsICAgICBPTkVfSE9VUiwKKyAgICAgICAgICAgIGNlYXNlLCAgICAgICAgICAgICAgQURELCAgICAgLTEsICAgIC1PTkVfSE9VUiwKKyAgICAgICAgICAgIGNlYXNlIC0gT05FX0hPVVIsICAgUk9MTCwgICAgIDEsICAgICBPTkVfSE9VUiwKKyAgICAgICAgICAgIGNlYXNlLCAgICAgICAgICAgICAgUk9MTCwgICAgLTEsICAgIC1PTkVfSE9VUiwKKyAgICAgICAgfTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTQpIHsKKyAgICAgICAgICAgIERhdGUgZGF0ZSA9IG5ldyBEYXRlKERBVEFbaV0pOworICAgICAgICAgICAgaW50IGFtdCA9IChpbnQpIERBVEFbaSsyXTsKKyAgICAgICAgICAgIGxvbmcgZXhwZWN0ZWRDaGFuZ2UgPSBEQVRBW2krM107CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGxvZyhkYXRlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgY2FsLnNldFRpbWUoZGF0ZSk7CisKKyAgICAgICAgICAgIHN3aXRjaCAoKGludCkgREFUQVtpKzFdKSB7CisgICAgICAgICAgICBjYXNlIEFERDoKKyAgICAgICAgICAgICAgICBsb2coIiBhZGQgKEhPVVIsIiArIChhbXQ8MD8iIjoiKyIpK2FtdCArICIpPSAiKTsKKyAgICAgICAgICAgICAgICBjYWwuYWRkKENhbGVuZGFyLkhPVVIsIGFtdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFJPTEw6CisgICAgICAgICAgICAgICAgbG9nKCIgcm9sbChIT1VSLCIgKyAoYW10PDA/IiI6IisiKSthbXQgKyAiKT0gIik7CisgICAgICAgICAgICAgICAgY2FsLnJvbGwoQ2FsZW5kYXIuSE9VUiwgYW10KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbG9nKGNhbC5nZXRUaW1lKCkudG9TdHJpbmcoKSk7CisKKyAgICAgICAgICAgIGxvbmcgY2hhbmdlID0gY2FsLmdldFRpbWUoKS5nZXRUaW1lKCkgLSBkYXRlLmdldFRpbWUoKTsKKyAgICAgICAgICAgIGlmIChjaGFuZ2UgIT0gZXhwZWN0ZWRDaGFuZ2UpIHsKKyAgICAgICAgICAgICAgICBmYWlsID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBsb2dsbigiIEZBSUwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgbG9nbG4oIiBPSyIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZhaWwpIGVycmxuKCJGYWlsOiByb2xsL2FkZCBtaXNiZWhhdmVzIGFyb3VuZCBEU1Qgb25zZXQvY2Vhc2UiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNYWtlIHN1cmUgbWF4aW11bSBmb3IgSE9VUiBmaWVsZCBpcyAxMSwgbm90IDEyLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTE4Mzg0KCkgeworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBpZiAoY2FsLmdldE1heGltdW0oQ2FsZW5kYXIuSE9VUikgIT0gMTEgfHwKKyAgICAgICAgICAgIGNhbC5nZXRMZWFzdE1heGltdW0oQ2FsZW5kYXIuSE9VUikgIT0gMTEgfHwKKyAgICAgICAgICAgIGNhbC5nZXRBY3R1YWxNYXhpbXVtKENhbGVuZGFyLkhPVVIpICE9IDExKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IG1heGltdW0gb2YgSE9VUiBmaWVsZCBzaG91bGQgYmUgMTEiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVjayBpc0xlYXBZZWFyIGZvciBCQyB5ZWFycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEyNTg4MSgpIHsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsID0gKEdyZWdvcmlhbkNhbGVuZGFyKSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBEYXRlRm9ybWF0IGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJNTU1NIGQsIHl5eXkgRyIpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgZm9yIChpbnQgeT0tMjA7IHk8PTEwOyArK3kpIHsKKyAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuRVJBLCB5IDwgMSA/IEdyZWdvcmlhbkNhbGVuZGFyLkJDIDogR3JlZ29yaWFuQ2FsZW5kYXIuQUQpOworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCB5IDwgMSA/IDEgLSB5IDogeSk7CisgICAgICAgICAgICBsb2dsbih5ICsgIiA9ICIgKyBmbXQuZm9ybWF0KGNhbC5nZXRUaW1lKCkpICsgIiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuaXNMZWFwWWVhcih5KSk7CisgICAgICAgICAgICBpZiAoY2FsLmlzTGVhcFllYXIoeSkgIT0gKCh5KzQwKSU0ID09IDApKQorICAgICAgICAgICAgICAgIGVycmxuKCJMZWFwIHllYXJzIGJyb2tlbiIpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gSSBhbSBkaXNhYmxpbmcgdGhpcyB0ZXN0IC0tIGl0IGlzIGN1cnJlbnRseSBmYWlsaW5nIGJlY2F1c2Ugb2YgYSBidWcKKyAgICAvLyBpbiBTdW4ncyBsYXRlc3QgY2hhbmdlIHRvIFNUWi5nZXRPZmZzZXQoKS4gIEkgaGF2ZSBmaWxlZCBhIFN1biBidWcKKyAgICAvLyBhZ2FpbnN0IHRoaXMgcHJvYmxlbS4KKworICAgIC8vIFJlLWVuYWJsZWQgYWZ0ZXIgJ3BvcnRpbmcnIFRaIGFuZCBTVFogZnJvbSBqYXZhLnV0aWwgdG8gY29tLmlibS5pY3UudXRpbC4KKyAgICAvKioKKyAgICAgKiBQcm92ZSB0aGF0IEdyZWdvcmlhbkNhbGVuZGFyIGlzIHByb2xlcHRpYyAoaXQgdXNlZCB0byBjdXQgb2ZmCisgICAgICogYXQgNDUgQkMsIGFuZCBub3QgaGF2ZSBsZWFwIHllYXJzIGJlZm9yZSB0aGVuKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEyNTg5MigpIHsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsID0gKEdyZWdvcmlhbkNhbGVuZGFyKSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBEYXRlRm9ybWF0IGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJNTU1NIGQsIHl5eXkgRyIpOworICAgICAgICBmbXQgPSBudWxsOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5FUkEsIEdyZWdvcmlhbkNhbGVuZGFyLkJDKTsKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCA4MSk7IC8vIDgxIEJDIGlzIGEgbGVhcCB5ZWFyIChwcm9sZXB0aWNhbGx5KQorICAgICAgICBjYWwuc2V0KENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5GRUJSVUFSWSk7CisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuREFURSwgMjgpOworICAgICAgICBjYWwuYWRkKENhbGVuZGFyLkRBVEUsIDEpOworICAgICAgICBpZiAoY2FsLmdldChDYWxlbmRhci5EQVRFKSAhPSAyOSB8fAorICAgICAgICAgICAgIWNhbC5pc0xlYXBZZWFyKC04MCkpIC8vIC04MCA9PSA4MSBCQworICAgICAgICAgICAgZXJybG4oIkNhbGVuZGFyIG5vdCBwcm9sZXB0aWMiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDYWxlbmRhciBhbmQgR3JlZ29yaWFuQ2FsZW5kYXIgaGFzaENvZGUoKSBtZXRob2RzIG5lZWQgaW1wcm92ZW1lbnQuCisgICAgICogQ2FsZW5kYXIgbmVlZHMgYSBnb29kIGltcGxlbWVudGF0aW9uIHRoYXQgc3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUsCisgICAgICogYW5kIEdyZWdvcmlhbkNhbGVuZGFyIHNob3VsZCB1c2UgdGhhdCBpbXBsZW1lbnRhdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEzNjM5OSgpIHsKKyAgICAgICAgLyogTm90ZTogVGhpcyB0ZXN0IGlzIGFjdHVhbGx5IG1vcmUgc3RyaWN0IHRoYW4gaXQgaGFzIHRvIGJlLgorICAgICAgICAgKiBUZWNobmljYWxseSwgdGhlcmUgaXMgbm8gcmVxdWlyZW1lbnQgdGhhdCB1bmVxdWFsIG9iamVjdHMgaGF2ZQorICAgICAgICAgKiB1bmVxdWFsIGhhc2hlcy4gIFdlIG9ubHkgcmVxdWlyZSBlcXVhbCBvYmplY3RzIHRvIGhhdmUgZXF1YWwgaGFzaGVzLgorICAgICAgICAgKiBJdCBpcyBkZXNpcmFibGUgZm9yIHVuZXF1YWwgb2JqZWN0cyB0byBoYXZlIGRpc3RyaWJ1dGVkIGhhc2hlcywgYnV0CisgICAgICAgICAqIHRoZXJlIGlzIG5vIGhhcmQgcmVxdWlyZW1lbnQgaGVyZS4KKyAgICAgICAgICoKKyAgICAgICAgICogSW4gdGhpcyB0ZXN0IHdlIG1ha2UgYXNzdW1wdGlvbnMgYWJvdXQgY2VydGFpbiBhdHRyaWJ1dGVzIG9mIGNhbGVuZGFyCisgICAgICAgICAqIG9iamVjdHMgZ2V0dGluZyByZXByZXNlbnRlZCBpbiB0aGUgaGFzaCwgd2hpY2ggbmVlZCBub3QgYWx3YXlzIGJlIHRoZQorICAgICAgICAgKiBjYXNlIChhbHRob3VnaCBpdCBkb2VzIHdvcmsgY3VycmVudGx5IHdpdGggdGhlIGdpdmVuIHRlc3QpLiAqLworICAgICAgICBDYWxlbmRhciBhID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgQ2FsZW5kYXIgYiA9IChDYWxlbmRhcilhLmNsb25lKCk7CisgICAgICAgIGlmIChhLmhhc2hDb2RlKCkgIT0gYi5oYXNoQ29kZSgpKSB7CisgICAgICAgICAgICBlcnJsbigiQ2FsZW5kYXIgaGFzaCBjb2RlIHVuZXF1YWwgZm9yIGNsb25lZCBvYmplY3RzIik7CisgICAgICAgIH0KKworICAgICAgICBiLnNldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoNyAtIGEuZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpKTsKKyAgICAgICAgaWYgKGEuaGFzaENvZGUoKSA9PSBiLmhhc2hDb2RlKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJDYWxlbmRhciBoYXNoIGNvZGUgaWdub3JlcyBtaW5pbWFsIGRheXMgaW4gZmlyc3Qgd2VlayIpOworICAgICAgICB9CisgICAgICAgIGIuc2V0TWluaW1hbERheXNJbkZpcnN0V2VlayhhLmdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKSk7CisKKyAgICAgICAgYi5zZXRGaXJzdERheU9mV2VlaygoYS5nZXRGaXJzdERheU9mV2VlaygpICUgNykgKyAxKTsgLy8gTmV4dCBkYXkKKyAgICAgICAgaWYgKGEuaGFzaENvZGUoKSA9PSBiLmhhc2hDb2RlKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJDYWxlbmRhciBoYXNoIGNvZGUgaWdub3JlcyBmaXJzdCBkYXkgb2Ygd2VlayIpOworICAgICAgICB9CisgICAgICAgIGIuc2V0Rmlyc3REYXlPZldlZWsoYS5nZXRGaXJzdERheU9mV2VlaygpKTsKKworICAgICAgICBiLnNldExlbmllbnQoIWEuaXNMZW5pZW50KCkpOworICAgICAgICBpZiAoYS5oYXNoQ29kZSgpID09IGIuaGFzaENvZGUoKSkgeworICAgICAgICAgICAgZXJybG4oIkNhbGVuZGFyIGhhc2ggY29kZSBpZ25vcmVzIGxlbmllbnQgc2V0dGluZyIpOworICAgICAgICB9CisgICAgICAgIGIuc2V0TGVuaWVudChhLmlzTGVuaWVudCgpKTsKKyAgICAgICAgCisgICAgICAgIC8vIEFzc3VtZSBnZXRUaW1lWm9uZSgpIHJldHVybnMgYSByZWZlcmVuY2UsIG5vdCBhIGNsb25lCisgICAgICAgIC8vIG9mIGEgcmVmZXJlbmNlIC0tIHRoaXMgaXMgdHJ1ZSBhcyBvZiB0aGlzIHdyaXRpbmcKKyAgICAgICAgYi5nZXRUaW1lWm9uZSgpLnNldFJhd09mZnNldChhLmdldFRpbWVab25lKCkuZ2V0UmF3T2Zmc2V0KCkgKyA2MCo2MCoxMDAwKTsKKyAgICAgICAgaWYgKGEuaGFzaENvZGUoKSA9PSBiLmhhc2hDb2RlKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJDYWxlbmRhciBoYXNoIGNvZGUgaWdub3JlcyB6b25lIik7CisgICAgICAgIH0KKyAgICAgICAgYi5nZXRUaW1lWm9uZSgpLnNldFJhd09mZnNldChhLmdldFRpbWVab25lKCkuZ2V0UmF3T2Zmc2V0KCkpOworCisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGMgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZCA9IChHcmVnb3JpYW5DYWxlbmRhciljLmNsb25lKCk7CisgICAgICAgIGlmIChjLmhhc2hDb2RlKCkgIT0gZC5oYXNoQ29kZSgpKSB7CisgICAgICAgICAgICBlcnJsbigiR3JlZ29yaWFuQ2FsZW5kYXIgaGFzaCBjb2RlIHVuZXF1YWwgZm9yIGNsb25lcyBvYmplY3RzIik7CisgICAgICAgIH0KKyAgICAgICAgRGF0ZSBjdXRvdmVyID0gYy5nZXRHcmVnb3JpYW5DaGFuZ2UoKTsKKyAgICAgICAgZC5zZXRHcmVnb3JpYW5DaGFuZ2UobmV3IERhdGUoY3V0b3Zlci5nZXRUaW1lKCkgKyAyNCo2MCo2MCoxMDAwKSk7CisgICAgICAgIGlmIChjLmhhc2hDb2RlKCkgPT0gZC5oYXNoQ29kZSgpKSB7CisgICAgICAgICAgICBlcnJsbigiR3JlZ29yaWFuQ2FsZW5kYXIgaGFzaCBjb2RlIGlnbm9yZXMgY3V0b3ZlciIpOworICAgICAgICB9ICAgICAgICAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHcmVnb3JpYW5DYWxlbmRhci5lcXVhbHMoKSBpZ25vcmVzIGN1dG92ZXIgZGF0ZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTQxNjY1KCkgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsMiA9IChHcmVnb3JpYW5DYWxlbmRhciljYWwuY2xvbmUoKTsKKyAgICAgICAgRGF0ZSBjdXQgPSBjYWwuZ2V0R3JlZ29yaWFuQ2hhbmdlKCk7CisgICAgICAgIERhdGUgY3V0MiA9IG5ldyBEYXRlKGN1dC5nZXRUaW1lKCkgKyAxMDAqMjQqNjAqNjAqMTAwMEwpOyAvLyAxMDAgZGF5cyBsYXRlcgorICAgICAgICBpZiAoIWNhbC5lcXVhbHMoY2FsMikpIHsKKyAgICAgICAgICAgIGVycmxuKCJDbG9uZWQgR3JlZ29yaWFuQ2FsZW5kYXJzIG5vdCBlcXVhbCIpOworICAgICAgICB9CisgICAgICAgIGNhbDIuc2V0R3JlZ29yaWFuQ2hhbmdlKGN1dDIpOworICAgICAgICBpZiAoY2FsLmVxdWFscyhjYWwyKSkgeworICAgICAgICAgICAgZXJybG4oIkdyZWdvcmlhbkNhbGVuZGFyLmVxdWFscygpIGlnbm9yZXMgY3V0b3ZlciIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEJ1ZyBzdGF0ZXMgdGhhdCBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaXMgdGhyb3duIGJ5IEdyZWdvcmlhbkNhbGVuZGFyLnJvbGwoKQorICAgICAqIHdoZW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHNob3VsZCBiZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE0MjkzMygpIHsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsZW5kYXIgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNhbGVuZGFyLnJvbGwoLTEsIHRydWUpOworICAgICAgICAgICAgZXJybG4oIlRlc3QgZmFpbGVkLCBubyBleGNlcHRpb24gdHJvd24iKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIC8vIE9LOiBEbyBub3RoaW5nCisgICAgICAgICAgICAvLyBsb2dsbigiVGVzdCBwYXNzZWQiKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIlRlc3QgZmFpbGVkLiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiBpcyB0aHJvd246ICIgKyBlKTsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0gCisgICAgfQorCisgICAgLyoqCisgICAgICogR3JlZ29yaWFuQ2FsZW5kYXIgaGFuZGxpbmcgb2YgRGF0ZXMgTG9uZy5NSU5fVkFMVUUgYW5kIExvbmcuTUFYX1ZBTFVFIGlzCisgICAgICogY29uZnVzaW5nOyB1bmxlc3MgdGhlIHRpbWUgem9uZSBoYXMgYSByYXcgb2Zmc2V0IG9mIHplcm8sIG9uZSBvciB0aGUKKyAgICAgKiBvdGhlciBvZiB0aGVzZSB3aWxsIHdyYXAuICBXZSd2ZSBtb2RpZmllZCB0aGUgdGVzdCBnaXZlbiBpbiB0aGUgYnVnCisgICAgICogcmVwb3J0IHRvIHRoZXJlZm9yZSBvbmx5IGNoZWNrIHRoZSBiZWhhdmlvciBvZiBhIGNhbGVuZGFyIHdpdGggYSB6ZXJvIHJhdworICAgICAqIG9mZnNldCB6b25lLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTQ1MTU4KCkgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWxlbmRhciA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworCisgICAgICAgIGNhbGVuZGFyLnNldFRpbWVab25lKFRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKSk7CisKKyAgICAgICAgY2FsZW5kYXIuc2V0VGltZShuZXcgRGF0ZShMb25nLk1JTl9WQUxVRSkpOworICAgICAgICBpbnQgeWVhcjEgPSBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuWUVBUik7CisgICAgICAgIGludCBlcmExID0gY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkVSQSk7CisgICAgICAgIAorICAgICAgICBjYWxlbmRhci5zZXRUaW1lKG5ldyBEYXRlKExvbmcuTUFYX1ZBTFVFKSk7CisgICAgICAgIGludCB5ZWFyMiA9IGNhbGVuZGFyLmdldChDYWxlbmRhci5ZRUFSKTsKKyAgICAgICAgaW50IGVyYTIgPSBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuRVJBKTsKKyAgICAgICAgCisgICAgICAgIGlmICh5ZWFyMSA9PSB5ZWFyMiAmJiBlcmExID09IGVyYTIpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBMb25nLk1JTl9WQUxVRSBvciBMb25nLk1BWF9WQUxVRSB3cmFwcGluZyBhcm91bmQiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE1heGltdW0gdmFsdWUgZm9yIFlFQVIgZmllbGQgd3JvbmcuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNDU5ODMoKSB7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbGVuZGFyID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgIGNhbGVuZGFyLnNldFRpbWVab25lKFRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKSk7CisgICAgICAgIERhdGVbXSBEQVRFUyA9IHsgbmV3IERhdGUoTG9uZy5NQVhfVkFMVUUpLCBuZXcgRGF0ZShMb25nLk1JTl9WQUxVRSkgfTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEVTLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBjYWxlbmRhci5zZXRUaW1lKERBVEVTW2ldKTsKKyAgICAgICAgICAgIGludCB5ZWFyID0gY2FsZW5kYXIuZ2V0KENhbGVuZGFyLllFQVIpOworICAgICAgICAgICAgaW50IG1heFllYXIgPSBjYWxlbmRhci5nZXRNYXhpbXVtKENhbGVuZGFyLllFQVIpOworICAgICAgICAgICAgaWYgKHllYXIgPiBtYXhZZWFyKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWxlZCBmb3IgIitEQVRFU1tpXS5nZXRUaW1lKCkrIiBtczogeWVhcj0iICsKKyAgICAgICAgICAgICAgICAgICAgICB5ZWFyICsgIiwgbWF4WWVhcj0iICsgbWF4WWVhcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIGEgYnVnIGluIHRoZSB2YWxpZGF0aW9uIGNvZGUgb2YgR3JlZ29yaWFuQ2FsZW5kYXIuICBBcyByZXBvcnRlZCwKKyAgICAgKiB0aGUgYnVnIHNlZW1zIHdvcnNlIHRoYW4gaXQgcmVhbGx5IGlzLCBkdWUgdG8gYSBidWcgaW4gdGhlIHdheSB0aGUgYnVnCisgICAgICogcmVwb3J0IHRlc3Qgd2FzIHdyaXR0ZW4uICBJbiByZWFsaXR5IHRoZSBidWcgaXMgcmVzdHJpY3RlZCB0byB0aGUgREFZX09GX1lFQVIKKyAgICAgKiBmaWVsZC4gLSBsaXUgNi8yOS85OAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTQ3MjY5KCkgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWxlbmRhciA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICBjYWxlbmRhci5zZXRMZW5pZW50KGZhbHNlKTsKKyAgICAgICAgamF2YS51dGlsLkNhbGVuZGFyIHRlbXBjYWwgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgdGVtcGNhbC5jbGVhcigpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk2LCBDYWxlbmRhci5KQU5VQVJZLCAzKTsgLy8gQXJiaXRyYXJ5IGRhdGUKKyAgICAgICAgRGF0ZSBkYXRlID0gdGVtcGNhbC5nZXRUaW1lKCk7IAorICAgICAgICBmb3IgKGludCBmaWVsZCA9IDA7IGZpZWxkIDwgY2FsZW5kYXIuZ2V0RmllbGRDb3VudCgpOyBmaWVsZCsrKSB7CisgICAgICAgICAgICBjYWxlbmRhci5zZXRUaW1lKGRhdGUpOworICAgICAgICAgICAgLy8gTm90ZTogSW4gdGhlIGJ1ZyByZXBvcnQsIGdldEFjdHVhbE1heGltdW0oKSB3YXMgY2FsbGVkIGluc3RlYWQKKyAgICAgICAgICAgIC8vIG9mIGdldE1heGltdW0oKSAtLSB0aGlzIHdhcyBhbiBlcnJvci4gIFRoZSB2YWxpZGF0aW9uIGNvZGUgZG9lc24ndAorICAgICAgICAgICAgLy8gdXNlIGdldEFjdHVhbE1heGltdW0oKSwgc2luY2UgdGhhdCdzIHRvbyBjb3N0bHkuCisgICAgICAgICAgICBpbnQgbWF4ID0gY2FsZW5kYXIuZ2V0TWF4aW11bShmaWVsZCk7CisgICAgICAgICAgICBpbnQgdmFsdWUgPSBtYXgrMTsKKyAgICAgICAgICAgIGNhbGVuZGFyLnNldChmaWVsZCwgdmFsdWUpOyAKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgY2FsZW5kYXIuZ2V0VGltZSgpOyAvLyBGb3JjZSB0aW1lIGNvbXB1dGF0aW9uCisgICAgICAgICAgICAgICAgLy8gV2UgZXhwZWN0IGFuIGV4Y2VwdGlvbiB0byBiZSB0aHJvd24uIElmIHdlIGZhbGwgdGhyb3VnaAorICAgICAgICAgICAgICAgIC8vIHRvIHRoZSBuZXh0IGxpbmUsIHRoZW4gd2UgaGF2ZSBhIGJ1Zy4KKyAgICAgICAgICAgICAgICBlcnJsbigiVGVzdCBmYWlsZWQgd2l0aCBmaWVsZCAiICsgRklFTERfTkFNRVtmaWVsZF0gKworICAgICAgICAgICAgICAgICAgICAgICIsIGRhdGUgYmVmb3JlOiAiICsgZGF0ZSArCisgICAgICAgICAgICAgICAgICAgICAgIiwgZGF0ZSBhZnRlcjogIiArIGNhbGVuZGFyLmdldFRpbWUoKSArCisgICAgICAgICAgICAgICAgICAgICAgIiwgdmFsdWU6ICIgKyB2YWx1ZSArICIgKG1heCA9ICIgKyBtYXggKyIpIik7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICAgICAgfSAKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJlcG9ydGVkIGJ1ZyBpcyB0aGF0IGEgR3JlZ29yaWFuQ2FsZW5kYXIgd2l0aCBhIGN1dG92ZXIgb2YgRGF0ZShMb25nLk1BWF9WQUxVRSkKKyAgICAgKiBkb2Vzbid0IGJlaGF2ZSBhcyBhIHB1cmUgSnVsaWFuIGNhbGVuZGFyLgorICAgICAqIENBTk5PVCBSRVBST0RVQ0UgVEhJUyBCVUcKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE0OTY3NygpIHsKKyAgICAgICAgVGltZVpvbmVbXSB6b25lcyA9IHsgVGltZVpvbmUuZ2V0VGltZVpvbmUoIkdNVCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpbWVab25lLmdldFRpbWVab25lKCJFQVQiKSB9OworICAgICAgICBmb3IgKGludCBpPTA7IGk8em9uZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbGVuZGFyID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKHpvbmVzW2ldKTsKKworICAgICAgICAgICAgLy8gTWFrZSBzdXJlIGV4dHJlbWUgdmFsdWVzIGRvbid0IHdyYXAgYXJvdW5kCisgICAgICAgICAgICBjYWxlbmRhci5zZXRUaW1lKG5ldyBEYXRlKExvbmcuTUlOX1ZBTFVFKSk7CisgICAgICAgICAgICBpZiAoY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkVSQSkgIT0gR3JlZ29yaWFuQ2FsZW5kYXIuQkMpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogTG9uZy5NSU5fVkFMVUUgbXMgaGFzIGFuIEFEIHllYXIiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhbGVuZGFyLnNldFRpbWUobmV3IERhdGUoTG9uZy5NQVhfVkFMVUUpKTsKKyAgICAgICAgICAgIGlmIChjYWxlbmRhci5nZXQoQ2FsZW5kYXIuRVJBKSAhPSBHcmVnb3JpYW5DYWxlbmRhci5BRCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBMb25nLk1BWF9WQUxVRSBtcyBoYXMgYSBCQyB5ZWFyIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNhbGVuZGFyLnNldEdyZWdvcmlhbkNoYW5nZShuZXcgRGF0ZShMb25nLk1BWF9WQUxVRSkpOworICAgICAgICAgICAgLy8gdG8gb2J0YWluIGEgcHVyZSBKdWxpYW4gY2FsZW5kYXIKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYm9vbGVhbiBpczEwMExlYXAgPSBjYWxlbmRhci5pc0xlYXBZZWFyKDEwMCk7CisgICAgICAgICAgICBpZiAoIWlzMTAwTGVhcCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJ0ZXN0IGZhaWxlZCB3aXRoIHpvbmUgIiArIHpvbmVzW2ldLmdldElEKCkpOworICAgICAgICAgICAgICAgIGVycmxuKCIgY3V0b3ZlciBkYXRlIGlzIENhbGVuZGFyLk1BWF9EQVRFIik7CisgICAgICAgICAgICAgICAgZXJybG4oIiBpc0xlYXBZZWFyKDEwMCkgcmV0dXJuczogIiArIGlzMTAwTGVhcCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDYWxlbmRhciBhbmQgRGF0ZSBIT1VSIGJyb2tlbi4gIElmIEhPVVIgaXMgb3V0LW9mLXJhbmdlLCBDYWxlbmRhcgorICAgICAqIGFuZCBEYXRlIGNsYXNzZXMgd2lsbCBtaXNiZWhhdmUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNjI1ODcoKSB7CisgICAgICAgIFRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KHR6KTsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKHR6KTsKKyAgICAgICAgRGF0ZSBkOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPDU7ICsraSkgeworICAgICAgICAgICAgaWYgKGk+MCkgbG9nbG4oIi0tLSIpOworCisgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgIGNhbC5zZXQoMTk5OCwgQ2FsZW5kYXIuQVBSSUwsIDUsIGksIDApOworICAgICAgICAgICAgZCA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgICAgICBTdHJpbmcgczAgPSBkLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBsb2dsbigiMCAiICsgaSArICI6ICIgKyBzMCk7CisKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgY2FsLnNldCgxOTk4LCBDYWxlbmRhci5BUFJJTCwgNCwgaSsyNCwgMCk7CisgICAgICAgICAgICBkID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgIFN0cmluZyBzUGx1cyA9IGQudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGxvZ2xuKCIrICIgKyBpICsgIjogIiArIHNQbHVzKTsKKworICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICBjYWwuc2V0KDE5OTgsIENhbGVuZGFyLkFQUklMLCA2LCBpLTI0LCAwKTsKKyAgICAgICAgICAgIGQgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICAgICAgU3RyaW5nIHNNaW51cyA9IGQudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGxvZ2xuKCItICIgKyBpICsgIjogIiArIHNNaW51cyk7CisKKyAgICAgICAgICAgIGlmICghczAuZXF1YWxzKHNQbHVzKSB8fCAhczAuZXF1YWxzKHNNaW51cykpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogQWxsIHRocmVlIGxpbmVzIG11c3QgbWF0Y2giKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZGluZyAxMiBtb250aHMgYmVoYXZlcyBkaWZmZXJlbnRseSBmcm9tIGFkZGluZyAxIHllYXIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE2NTM0MygpIHsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsZW5kYXIgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoMTk5NiwgQ2FsZW5kYXIuRkVCUlVBUlksIDI5KTsKKyAgICAgICAgRGF0ZSBzdGFydCA9IGNhbGVuZGFyLmdldFRpbWUoKTsKKyAgICAgICAgbG9nbG4oImluaXQgZGF0ZTogIiArIHN0YXJ0KTsKKyAgICAgICAgY2FsZW5kYXIuYWRkKENhbGVuZGFyLk1PTlRILCAxMik7IAorICAgICAgICBEYXRlIGRhdGUxID0gY2FsZW5kYXIuZ2V0VGltZSgpOworICAgICAgICBsb2dsbigiYWZ0ZXIgYWRkaW5nIDEyIG1vbnRoczogIiArIGRhdGUxKTsKKyAgICAgICAgY2FsZW5kYXIuc2V0VGltZShzdGFydCk7CisgICAgICAgIGNhbGVuZGFyLmFkZChDYWxlbmRhci5ZRUFSLCAxKTsKKyAgICAgICAgRGF0ZSBkYXRlMiA9IGNhbGVuZGFyLmdldFRpbWUoKTsKKyAgICAgICAgbG9nbG4oImFmdGVyIGFkZGluZyBvbmUgeWVhciA6ICIgKyBkYXRlMik7CisgICAgICAgIGlmIChkYXRlMS5lcXVhbHMoZGF0ZTIpKSB7CisgICAgICAgICAgICBsb2dsbigiVGVzdCBwYXNzZWQiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJUZXN0IGZhaWxlZCIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogR3JlZ29yaWFuQ2FsZW5kYXIuZ2V0QWN0dWFsTWF4aW11bSgpIGRvZXMgbm90IGFjY291bnQgZm9yIGZpcnN0IGRheSBvZiB3ZWVrLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTY2MTA5KCkgeworICAgICAgICAvKiBUZXN0IG1vbnRoOgorICAgICAgICAgKgorICAgICAgICAgKiAgICAgIE1hcmNoIDE5OTgKKyAgICAgICAgICogU3UgTW8gVHUgV2UgVGggRnIgU2EKKyAgICAgICAgICogIDEgIDIgIDMgIDQgIDUgIDYgIDcKKyAgICAgICAgICogIDggIDkgMTAgMTEgMTIgMTMgMTQKKyAgICAgICAgICogMTUgMTYgMTcgMTggMTkgMjAgMjEKKyAgICAgICAgICogMjIgMjMgMjQgMjUgMjYgMjcgMjgKKyAgICAgICAgICogMjkgMzAgMzEKKyAgICAgICAgICovCisgICAgICAgIGJvb2xlYW4gcGFzc2VkID0gdHJ1ZTsKKyAgICAgICAgaW50IGZpZWxkID0gQ2FsZW5kYXIuV0VFS19PRl9NT05USDsKKworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWxlbmRhciA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcihMb2NhbGUuVVMpOworICAgICAgICBjYWxlbmRhci5zZXQoMTk5OCwgQ2FsZW5kYXIuTUFSQ0gsIDEpOworICAgICAgICBjYWxlbmRhci5zZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKDEpOworICAgICAgICBsb2dsbigiRGF0ZTogICIgKyBjYWxlbmRhci5nZXRUaW1lKCkpOworCisgICAgICAgIGludCBmaXJzdEluTW9udGggPSBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKTsKKworICAgICAgICBmb3IgKGludCBmaXJzdEluV2VlayA9IENhbGVuZGFyLlNVTkRBWTsgZmlyc3RJbldlZWsgPD0gQ2FsZW5kYXIuU0FUVVJEQVk7IGZpcnN0SW5XZWVrKyspIHsKKyAgICAgICAgICAgIGNhbGVuZGFyLnNldEZpcnN0RGF5T2ZXZWVrKGZpcnN0SW5XZWVrKTsKKyAgICAgICAgICAgIGludCByZXR1cm5lZCA9IGNhbGVuZGFyLmdldEFjdHVhbE1heGltdW0oZmllbGQpOworICAgICAgICAgICAgaW50IGV4cGVjdGVkID0gKDMxICsgKChmaXJzdEluTW9udGggLSBmaXJzdEluV2VlayArIDcpJSA3KSArIDYpIC8gNzsKKworICAgICAgICAgICAgbG9nbG4oIkZpcnN0IGRheSBvZiB3ZWVrID0gIiArIGZpcnN0SW5XZWVrICsKKyAgICAgICAgICAgICAgICAgICIgIGdldEFjdHVhbE1heGltdW0oV0VFS19PRl9NT05USCkgPSAiICsgcmV0dXJuZWQgKworICAgICAgICAgICAgICAgICAgIiAgZXhwZWN0ZWQgPSAiICsgZXhwZWN0ZWQgKworICAgICAgICAgICAgICAgICAgKChyZXR1cm5lZCA9PSBleHBlY3RlZCkgPyAiICBvayIgOiAiICBGQUlMIikpOworCisgICAgICAgICAgICBpZiAocmV0dXJuZWQgIT0gZXhwZWN0ZWQpIHsKKyAgICAgICAgICAgICAgICBwYXNzZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoIXBhc3NlZCkgeworICAgICAgICAgICAgZXJybG4oIlRlc3QgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDYWxlbmRhci5nZXRBY3R1YWxNYXhpbXVtKFlFQVIpIHdvcmtzIHdyb25nLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTY3MDYwKCkgeworICAgICAgICBpbnQgZmllbGQgPSBDYWxlbmRhci5ZRUFSOworICAgICAgICBEYXRlRm9ybWF0IGZvcm1hdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJFRUUgTU1NIGRkIEhIOm1tOnNzIHp6eiB5eXl5IEciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsZS5VUyk7CisKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsZW5kYXJzW10gPSB7CisgICAgICAgICAgICBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoMTAwLCBDYWxlbmRhci5OT1ZFTUJFUiwgMSksCisgICAgICAgICAgICBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoLTk5IC8qMTAwQkMqLywgQ2FsZW5kYXIuSkFOVUFSWSwgMSksCisgICAgICAgICAgICBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoMTk5NiwgQ2FsZW5kYXIuRkVCUlVBUlksIDI5KSwKKyAgICAgICAgfTsKKworICAgICAgICBTdHJpbmdbXSBpZCA9IHsgIkh5YnJpZCIsICJHcmVnb3JpYW4iLCAiSnVsaWFuIiB9OworCisgICAgICAgIGZvciAoaW50IGs9MDsgazwzOyArK2spIHsKKyAgICAgICAgICAgIGxvZ2xuKCItLS0gIiArIGlkW2tdICsgIiAtLS0iKTsKKworICAgICAgICAgICAgZm9yIChpbnQgaj0wOyBqPGNhbGVuZGFycy5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbGVuZGFyID0gY2FsZW5kYXJzW2pdOworICAgICAgICAgICAgICAgIGlmIChrID09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXIuc2V0R3JlZ29yaWFuQ2hhbmdlKG5ldyBEYXRlKExvbmcuTUlOX1ZBTFVFKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChrID09IDIpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXIuc2V0R3JlZ29yaWFuQ2hhbmdlKG5ldyBEYXRlKExvbmcuTUFYX1ZBTFVFKSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZm9ybWF0LnNldENhbGVuZGFyKChDYWxlbmRhciljYWxlbmRhci5jbG9uZSgpKTsKKworICAgICAgICAgICAgICAgIERhdGUgZGF0ZUJlZm9yZSA9IGNhbGVuZGFyLmdldFRpbWUoKTsKKworICAgICAgICAgICAgICAgIGludCBtYXhZZWFyID0gY2FsZW5kYXIuZ2V0QWN0dWFsTWF4aW11bShmaWVsZCk7CisgICAgICAgICAgICAgICAgbG9nbG4oIm1heFllYXI6ICIgKyBtYXhZZWFyICsgIiBmb3IgIiArIGZvcm1hdC5mb3JtYXQoY2FsZW5kYXIuZ2V0VGltZSgpKSk7CisgICAgICAgICAgICAgICAgbG9nbG4oImRhdGUgYmVmb3JlOiAiICsgZm9ybWF0LmZvcm1hdChkYXRlQmVmb3JlKSk7CisKKyAgICAgICAgICAgICAgICBpbnQgeWVhcnNbXSA9IHsyMDAwLCBtYXhZZWFyLTEsIG1heFllYXIsIG1heFllYXIrMX07CisKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHllYXJzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gdmFsaWQgPSB5ZWFyc1tpXSA8PSBtYXhZZWFyOworICAgICAgICAgICAgICAgICAgICBjYWxlbmRhci5zZXQoZmllbGQsIHllYXJzW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgRGF0ZSBkYXRlQWZ0ZXIgPSBjYWxlbmRhci5nZXRUaW1lKCk7CisgICAgICAgICAgICAgICAgICAgIGludCBuZXdZZWFyID0gY2FsZW5kYXIuZ2V0KGZpZWxkKTsKKyAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXIuc2V0VGltZShkYXRlQmVmb3JlKTsgLy8gcmVzdG9yZSBjYWxlbmRhciBmb3IgbmV4dCB1c2UKKworICAgICAgICAgICAgICAgICAgICBsb2dsbigiIFllYXIgIiArIHllYXJzW2ldICsgKHZhbGlkPyAiIG9rICIgOiAiIGJhZCIpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiA9PiAiICsgZm9ybWF0LmZvcm1hdChkYXRlQWZ0ZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhbGlkICYmIG5ld1llYXIgIT0geWVhcnNbaV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCIgIEZBSUw6ICIgKyBuZXdZZWFyICsgIiBzaG91bGQgYmUgdmFsaWQ7IGRhdGUsIG1vbnRoIGFuZCB0aW1lIHNob3VsZG4ndCBjaGFuZ2UiKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghdmFsaWQgJiYgbmV3WWVhciA9PSB5ZWFyc1tpXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2Ugbm8gbG9uZ2VyIHJlcXVpcmUgc3RyaWN0IHllYXIgbWF4aW1hLiAgVGhhdCBpcywgdGhlIGNhbGVuZGFyCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbGdvcml0aG0gbWF5IHdvcmsgZm9yIHZhbHVlcyA+IHRoZSBzdGF0ZWQgbWF4aW11bS4KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vZXJybG4oIiAgRkFJTDogIiArIG5ld1llYXIgKyAiIHNob3VsZCBiZSBpbnZhbGlkIik7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiICBOb3RlOiAiICsgbmV3WWVhciArICIgPiBtYXhpbXVtLCBidXQgc3RpbGwgdmFsaWQiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENhbGVuZGFyLnJvbGwgYnJva2VuCisgICAgICogVGhpcyBidWcgcmVsaWVzIG9uIHRoZSBUaW1lWm9uZSBidWcgNDE3MzYwNCB0byBhbHNvIGJlIGZpeGVkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTczNTE2KCkgeworICAgICAgICBpbnQgZmllbGRzTGlzdFtdW10gPSB7CisgICAgICAgICAgICB7IDE5OTcsIENhbGVuZGFyLkZFQlJVQVJZLCAgMSwgMTAsIDQ1LCAxNSwgOTAwIH0sCisgICAgICAgICAgICB7IDE5OTksIENhbGVuZGFyLkRFQ0VNQkVSLCAyMiwgMjMsIDU5LCA1OSwgOTk5IH0KKyAgICAgICAgfTsKKyAgICAgICAgaW50IGxpbWl0ID0gNDA7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworCisgICAgICAgIGNhbC5zZXRUaW1lKG5ldyBEYXRlKDApKTsKKyAgICAgICAgY2FsLnJvbGwoQ2FsZW5kYXIuSE9VUiwgIDB4N0YwMDAwMDApOworICAgICAgICBjYWwucm9sbChDYWxlbmRhci5IT1VSLCAtMHg3RjAwMDAwMCk7CisgICAgICAgIGlmIChjYWwuZ2V0VGltZSgpLmdldFRpbWUoKSAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiSG91ciByb2xsaW5nIGJyb2tlbiIpOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChpbnQgb3A9MDsgb3A8MjsgKytvcCkgeworICAgICAgICAgICAgbG9nbG4oIlRlc3RpbmcgR3JlZ29yaWFuQ2FsZW5kYXIgIiArCisgICAgICAgICAgICAgICAgICAob3A9PTAgPyAiYWRkIiA6ICJyb2xsIikpOworICAgICAgICAgICAgZm9yIChpbnQgZmllbGQ9MDsgZmllbGQgPCBjYWwuZ2V0RmllbGRDb3VudCgpOyArK2ZpZWxkKSB7CisgICAgICAgICAgICAgICAgaWYgKGZpZWxkICE9IENhbGVuZGFyLlpPTkVfT0ZGU0VUICYmCisgICAgICAgICAgICAgICAgICAgIGZpZWxkICE9IENhbGVuZGFyLkRTVF9PRkZTRVQpIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaj0wOyBqPGZpZWxkc0xpc3QubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBmaWVsZHNbXSA9IGZpZWxkc0xpc3Rbal07CisgICAgICAgICAgICAgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5zZXQoZmllbGRzWzBdLCBmaWVsZHNbMV0sIGZpZWxkc1syXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRzWzNdLCBmaWVsZHNbNF0sIGZpZWxkc1s1XSk7CisgICAgICAgICAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLk1JTExJU0VDT05ELCBmaWVsZHNbNl0pOworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAyKmxpbWl0OyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob3AgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuYWRkKGZpZWxkLCBpIDwgbGltaXQgPyAxIDogLTEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5yb2xsKGZpZWxkLCBpIDwgbGltaXQgPyAxIDogLTEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjYWwuZ2V0KENhbGVuZGFyLllFQVIpICE9IGZpZWxkc1swXSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpICE9IGZpZWxkc1sxXSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuREFURSkgIT0gZmllbGRzWzJdIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSkgIT0gZmllbGRzWzNdIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5NSU5VVEUpICE9IGZpZWxkc1s0XSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuU0VDT05EKSAhPSBmaWVsZHNbNV0gfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLk1JTExJU0VDT05EKSAhPSBmaWVsZHNbNl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmllbGQgIiArIGZpZWxkICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICgiICsgRklFTERfTkFNRVtmaWVsZF0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIpIEZBSUwsIGV4cGVjdGVkICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkc1swXSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi8iICsgKGZpZWxkc1sxXSArIDEpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLyIgKyBmaWVsZHNbMl0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIiArIGZpZWxkc1szXSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjoiICsgZmllbGRzWzRdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOiIgKyBmaWVsZHNbNV0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIuIiArIGZpZWxkc1s2XSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgZ290ICIgKyBjYWwuZ2V0KENhbGVuZGFyLllFQVIpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLyIgKyAoY2FsLmdldChDYWxlbmRhci5NT05USCkgKyAxKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi8iICsgY2FsLmdldChDYWxlbmRhci5EQVRFKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAiICsgY2FsLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI6IiArIGNhbC5nZXQoQ2FsZW5kYXIuTUlOVVRFKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjoiICsgY2FsLmdldChDYWxlbmRhci5TRUNPTkQpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLiIgKyBjYWwuZ2V0KENhbGVuZGFyLk1JTExJU0VDT05EKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLnNldChmaWVsZHNbMF0sIGZpZWxkc1sxXSwgZmllbGRzWzJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRzWzNdLCBmaWVsZHNbNF0sIGZpZWxkc1s1XSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5NSUxMSVNFQ09ORCwgZmllbGRzWzZdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiU3RhcnQgZGF0ZTogIiArIGNhbC5nZXQoQ2FsZW5kYXIuWUVBUikgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvIiArIChjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSArIDEpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLyIgKyBjYWwuZ2V0KENhbGVuZGFyLkRBVEUpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICIgKyBjYWwuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjoiICsgY2FsLmdldChDYWxlbmRhci5NSU5VVEUpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOiIgKyBjYWwuZ2V0KENhbGVuZGFyLlNFQ09ORCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIuIiArIGNhbC5nZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHByZXYgPSBjYWwuZ2V0VGltZSgpLmdldFRpbWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDIqbGltaXQ7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob3AgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmFkZChmaWVsZCwgaSA8IGxpbWl0ID8gMSA6IC0xKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5yb2xsKGZpZWxkLCBpIDwgbGltaXQgPyAxIDogLTEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgdCA9IGNhbC5nZXRUaW1lKCkuZ2V0VGltZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGRlbHRhID0gdCAtIHByZXY7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXYgPSB0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigob3AgPT0gMCA/ICJhZGQoIiA6ICJyb2xsKCIpICsgRklFTERfTkFNRVtmaWVsZF0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaSA8IGxpbWl0ID8gIiwgKzEpID0+ICIgOiAiLCAtMSkgPT4gIikgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLllFQVIpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi8iICsgKGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpICsgMSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLyIgKyBjYWwuZ2V0KENhbGVuZGFyLkRBVEUpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAiICsgY2FsLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOiIgKyBjYWwuZ2V0KENhbGVuZGFyLk1JTlVURSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOiIgKyBjYWwuZ2V0KENhbGVuZGFyLlNFQ09ORCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLiIgKyBjYWwuZ2V0KENhbGVuZGFyLk1JTExJU0VDT05EKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgZGVsdGE9IiArIGRlbHRhICsgIiBtcyIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTc0MzYxKCkgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWxlbmRhciA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigxOTk2LCAxLCAyOSk7CisKKyAgICAgICAgY2FsZW5kYXIuYWRkKENhbGVuZGFyLk1PTlRILCAxMCk7IAorICAgICAgICBEYXRlIGRhdGUxID0gY2FsZW5kYXIuZ2V0VGltZSgpOworICAgICAgICBkYXRlMSA9IG51bGw7CisgICAgICAgIGludCBkMSA9IGNhbGVuZGFyLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpOworCisgICAgICAgIGNhbGVuZGFyID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKDE5OTYsIDEsIDI5KTsKKyAgICAgICAgY2FsZW5kYXIuYWRkKENhbGVuZGFyLk1PTlRILCAxMSk7IAorICAgICAgICBEYXRlIGRhdGUyID0gY2FsZW5kYXIuZ2V0VGltZSgpOworICAgICAgICBkYXRlMiA9IG51bGw7CisgICAgICAgIGludCBkMiA9IGNhbGVuZGFyLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpOworCisgICAgICAgIGlmIChkMSAhPSBkMikgeworICAgICAgICAgICAgZXJybG4oImFkZGluZyBtb250aHMgdG8gRmViIDI5IGJyb2tlbiIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2FsZW5kYXIgZG9lcyBub3QgdXBkYXRlIGZpZWxkIHZhbHVlcyB3aGVuIHNldFRpbWVab25lIGlzIGNhbGxlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE3NzQ4NCgpIHsKKyAgICAgICAgVGltZVpvbmUgUFNUID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworICAgICAgICBUaW1lWm9uZSBFU1QgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiRVNUIik7CisKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoUFNULCBMb2NhbGUuVVMpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgxOTk5LCAzLCAyMSwgMTUsIDUsIDApOyAvLyBBcmJpdHJhcnkKKyAgICAgICAgaW50IGgxID0gY2FsLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSk7CisgICAgICAgIGNhbC5zZXRUaW1lWm9uZShFU1QpOworICAgICAgICBpbnQgaDIgPSBjYWwuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKTsKKyAgICAgICAgaWYgKGgxID09IGgyKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogRmllbGRzIG5vdCB1cGRhdGVkIGFmdGVyIHNldFRpbWVab25lIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBnZXRUaW1lKCkgbXVzdCBOT1QgY2hhbmdlIHdoZW4gdGltZSB6b25lIGlzIGNoYW5nZWQuCisgICAgICAgIC8vIGdldFRpbWUoKSByZXR1cm5zIHpvbmUtaW5kZXBlbmRlbnQgdGltZSBpbiBtcy4KKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXRUaW1lWm9uZShQU1QpOworICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZLCAxMCk7CisgICAgICAgIERhdGUgcHN0MTAgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBjYWwuc2V0VGltZVpvbmUoRVNUKTsKKyAgICAgICAgRGF0ZSBlc3QxMCA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGlmICghcHN0MTAuZXF1YWxzKGVzdDEwKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IHNldFRpbWVab25lIGNoYW5nZWQgdGltZSIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogV2VlayBvZiB5ZWFyIGlzIHdyb25nIGF0IHRoZSBzdGFydCBhbmQgZW5kIG9mIHRoZSB5ZWFyLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTk3Njk5KCkgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgY2FsLnNldEZpcnN0RGF5T2ZXZWVrKENhbGVuZGFyLk1PTkRBWSk7CisgICAgICAgIGNhbC5zZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKDQpOworICAgICAgICBEYXRlRm9ybWF0IGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJFIGRkIE1NTSB5eXl5ICAnRE9ZPSdEICdXT1k9J3ciKTsKKyAgICAgICAgZm10LnNldENhbGVuZGFyKGNhbCk7CisKKyAgICAgICAgaW50W10gREFUQSA9IHsKKyAgICAgICAgICAgIDIwMDAsICBDYWxlbmRhci5KQU5VQVJZLCAgIDEsICAgNTIsCisgICAgICAgICAgICAyMDAxLCAgQ2FsZW5kYXIuREVDRU1CRVIsICAzMSwgIDEsCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyApIHsKKyAgICAgICAgICAgIGNhbC5zZXQoREFUQVtpKytdLCBEQVRBW2krK10sIERBVEFbaSsrXSk7CisgICAgICAgICAgICBpbnQgZXhwV09ZID0gREFUQVtpKytdOworICAgICAgICAgICAgaW50IGFjdFdPWSA9IGNhbC5nZXQoQ2FsZW5kYXIuV0VFS19PRl9ZRUFSKTsKKyAgICAgICAgICAgIGlmIChleHBXT1kgPT0gYWN0V09ZKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgZm10LmZvcm1hdChjYWwuZ2V0VGltZSgpKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgZm10LmZvcm1hdChjYWwuZ2V0VGltZSgpKQorICAgICAgICAgICAgICAgICAgICAgICsgIiwgZXhwZWN0ZWQgV09ZPSIgKyBleHBXT1kpOworICAgICAgICAgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuREFURSwgLTgpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajwxNDsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuREFURSwgMSk7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKGZtdC5mb3JtYXQoY2FsLmdldFRpbWUoKSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENhbGVuZGFyIERBWV9PRl9XRUVLX0lOX01PTlRIIGZpZWxkcy0+dGltZSBicm9rZW4uICBUaGUgcHJvYmxlbQorICAgICAqIGlzIGluIHRoZSBmaWVsZCBkaXNhbWJpZ3VhdGlvbiBjb2RlIGluIEdyZWdvcmlhbkNhbGVuZGFyLiAgVGhpcworICAgICAqIGNvZGUgaXMgc3VwcG9zZWQgdG8gY2hvb3NlIHRoZSBtb3N0IHJlY2VudCBzZXQgb2YgZmllbGRzCisgICAgICogYW1vbmcgdGhlIGZvbGxvd2luZzoKKyAgICAgKgorICAgICAqICAgTU9OVEggKyBEQVlfT0ZfTU9OVEgKKyAgICAgKiAgIE1PTlRIICsgV0VFS19PRl9NT05USCArIERBWV9PRl9XRUVLCisgICAgICogICBNT05USCArIERBWV9PRl9XRUVLX0lOX01PTlRIICsgREFZX09GX1dFRUsKKyAgICAgKiAgIERBWV9PRl9ZRUFSCisgICAgICogICBXRUVLX09GX1lFQVIgKyBEQVlfT0ZfV0VFSworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MjA5MDcxKCkgeworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworCisgICAgICAgIC8vIEdlbmVyYWwgZmllbGQgc2V0dGluZyB0ZXN0CisgICAgICAgIGludCBZID0gMTk5NTsKKyAgICAgICAgCisgICAgICAgIERhdGUgZFtdID0gbmV3IERhdGVbMTNdOworICAgICAgICBqYXZhLnV0aWwuQ2FsZW5kYXIgdGVtcGNhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KFksIENhbGVuZGFyLkpBTlVBUlksIDEpOworICAgICAgICBkWzBdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KFksIENhbGVuZGFyLk1BUkNILCAxKTsKKyAgICAgICAgZFsxXSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldChZLCBDYWxlbmRhci5KQU5VQVJZLCA0KTsKKyAgICAgICAgZFsyXSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldChZLCBDYWxlbmRhci5KQU5VQVJZLCAxOCk7CisgICAgICAgIGRbM10gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoWSwgQ2FsZW5kYXIuSkFOVUFSWSwgMTgpOworICAgICAgICBkWzRdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KFktMSwgQ2FsZW5kYXIuREVDRU1CRVIsIDIyKTsKKyAgICAgICAgZFs1XSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldChZLCBDYWxlbmRhci5KQU5VQVJZLCAyNik7CisgICAgICAgIGRbNl0gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoWSwgQ2FsZW5kYXIuSkFOVUFSWSwgMjYpOworICAgICAgICBkWzddID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KFksIENhbGVuZGFyLk1BUkNILCAxKTsKKyAgICAgICAgZFs4XSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldChZLCBDYWxlbmRhci5PQ1RPQkVSLCA2KTsKKyAgICAgICAgZFs5XSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldChZLCBDYWxlbmRhci5PQ1RPQkVSLCAxMyk7CisgICAgICAgIGRbMTBdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KFksIENhbGVuZGFyLkFVR1VTVCwgMTApOworICAgICAgICBkWzExXSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldChZLCBDYWxlbmRhci5ERUNFTUJFUiwgNyk7CisgICAgICAgIGRbMTJdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisKKyAgICAgICAgT2JqZWN0W10gRklFTERfREFUQSA9IHsKKyAgICAgICAgICAgIC8vIEFkZCBuZXcgdGVzdCBjYXNlcyBhcyBuZWVkZWQuCisKKyAgICAgICAgICAgIC8vIDAKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7fSwgZFswXSwKKyAgICAgICAgICAgIC8vIDEKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7IENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5NQVJDSCB9LCBkWzFdLAorICAgICAgICAgICAgLy8gMgorICAgICAgICAgICAgbmV3IGludFtdIHsgQ2FsZW5kYXIuREFZX09GX1dFRUssIENhbGVuZGFyLldFRE5FU0RBWSB9LCBkWzJdLAorICAgICAgICAgICAgLy8gMworICAgICAgICAgICAgbmV3IGludFtdIHsgQ2FsZW5kYXIuREFZX09GX1dFRUssIENhbGVuZGFyLlRIVVJTREFZLAorICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuREFZX09GX01PTlRILCAxOCwgfSwgZFszXSwKKyAgICAgICAgICAgIC8vIDQKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7IENhbGVuZGFyLkRBWV9PRl9NT05USCwgMTgsCisgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5EQVlfT0ZfV0VFSywgQ2FsZW5kYXIuVEhVUlNEQVksIH0sIGRbNF0sCisgICAgICAgICAgICAvLyA1ICAoV09NIC0xIGlzIGluIHByZXZpb3VzIG1vbnRoKQorICAgICAgICAgICAgbmV3IGludFtdIHsgQ2FsZW5kYXIuREFZX09GX01PTlRILCAxOCwKKyAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLldFRUtfT0ZfTU9OVEgsIC0xLAorICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuREFZX09GX1dFRUssIENhbGVuZGFyLlRIVVJTREFZLCB9LCBkWzVdLAorICAgICAgICAgICAgLy8gNgorICAgICAgICAgICAgbmV3IGludFtdIHsgQ2FsZW5kYXIuREFZX09GX01PTlRILCAxOCwKKyAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLldFRUtfT0ZfTU9OVEgsIDQsCisgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5EQVlfT0ZfV0VFSywgQ2FsZW5kYXIuVEhVUlNEQVksIH0sIGRbNl0sCisgICAgICAgICAgICAvLyA3ICAoRElNIC0xIGlzIGluIHNhbWUgbW9udGgpCisgICAgICAgICAgICBuZXcgaW50W10geyBDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIDE4LAorICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuREFZX09GX1dFRUtfSU5fTU9OVEgsIC0xLAorICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuREFZX09GX1dFRUssIENhbGVuZGFyLlRIVVJTREFZLCB9LCBkWzddLAorICAgICAgICAgICAgLy8gOAorICAgICAgICAgICAgbmV3IGludFtdIHsgQ2FsZW5kYXIuV0VFS19PRl9ZRUFSLCA5LAorICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuREFZX09GX1dFRUssIENhbGVuZGFyLldFRE5FU0RBWSwgfSwgZFs4XSwKKyAgICAgICAgICAgIC8vIDkKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7IENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5PQ1RPQkVSLAorICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuREFZX09GX1dFRUtfSU5fTU9OVEgsIDEsCisgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5EQVlfT0ZfV0VFSywgQ2FsZW5kYXIuRlJJREFZLCB9LCBkWzldLAorICAgICAgICAgICAgLy8gMTAKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7IENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5PQ1RPQkVSLAorICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuV0VFS19PRl9NT05USCwgMiwKKyAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLkRBWV9PRl9XRUVLLCBDYWxlbmRhci5GUklEQVksIH0sIGRbMTBdLAorICAgICAgICAgICAgLy8gMTEKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7IENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5PQ1RPQkVSLAorICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuREFZX09GX01PTlRILCAxNSwKKyAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLkRBWV9PRl9ZRUFSLCAyMjIsIH0sIGRbMTFdLAorICAgICAgICAgICAgLy8gMTIKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7IENhbGVuZGFyLkRBWV9PRl9XRUVLLCBDYWxlbmRhci5USFVSU0RBWSwKKyAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5ERUNFTUJFUiwgfSwgZFsxMl0sCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPEZJRUxEX0RBVEEubGVuZ3RoOyBpKz0yKSB7CisgICAgICAgICAgICBpbnRbXSBmaWVsZHMgPSAoaW50W10pIEZJRUxEX0RBVEFbaV07CisgICAgICAgICAgICBEYXRlIGV4cCA9IChEYXRlKSBGSUVMRF9EQVRBW2krMV07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCBZKTsKKyAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajxmaWVsZHMubGVuZ3RoOyBqKz0yKSB7CisgICAgICAgICAgICAgICAgY2FsLnNldChmaWVsZHNbal0sIGZpZWxkc1tqKzFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgRGF0ZSBhY3QgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICAgICAgaWYgKCFhY3QuZXF1YWxzKGV4cCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogVGVzdCAiICsgKGkvMikgKyAiIGdvdCAiICsgYWN0ICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCB3YW50ICIgKyBleHAgKworICAgICAgICAgICAgICAgICAgICAgICIgKHNlZSB0ZXN0L2phdmEvdXRpbC9DYWxlbmRhci9DYWxlbmRhclJlZ3Jlc3Npb24uamF2YSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuSkFOVUFSWSwgNSk7CisgICAgICAgIGRbMF0gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuSkFOVUFSWSwgMjYpOworICAgICAgICBkWzFdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIENhbGVuZGFyLkZFQlJVQVJZLCAyMyk7CisgICAgICAgIGRbMl0gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuSkFOVUFSWSwgMjYpOworICAgICAgICBkWzNdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIENhbGVuZGFyLkpBTlVBUlksIDUpOworICAgICAgICBkWzRdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTYsIENhbGVuZGFyLkRFQ0VNQkVSLCA4KTsKKyAgICAgICAgZFs1XSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICAvLyBUZXN0IHNwZWNpZmljIGZhaWx1cmUgcmVwb3J0ZWQgaW4gYnVnCisgICAgICAgIE9iamVjdFtdIERBVEEgPSB7IAorICAgICAgICAgICAgbmV3IEludGVnZXIoMSksIGRbMF0sIG5ldyBJbnRlZ2VyKDQpLCBkWzFdLAorICAgICAgICAgICAgbmV3IEludGVnZXIoOCksIGRbMl0sIG5ldyBJbnRlZ2VyKC0xKSwgZFszXSwKKyAgICAgICAgICAgIG5ldyBJbnRlZ2VyKC00KSwgZFs0XSwgbmV3IEludGVnZXIoLTgpLCBkWzVdLAorICAgICAgICB9OworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTIpIHsKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5EQVlfT0ZfV0VFS19JTl9NT05USCwKKyAgICAgICAgICAgICAgICAgICAgKChOdW1iZXIpIERBVEFbaV0pLmludFZhbHVlKCkpOworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5EQVlfT0ZfV0VFSywgQ2FsZW5kYXIuU1VOREFZKTsKKyAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTU9OVEgsIENhbGVuZGFyLkpBTlVBUlkpOworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCAxOTk3KTsKKyAgICAgICAgICAgIERhdGUgYWN0dWFsID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgIGlmICghYWN0dWFsLmVxdWFscyhEQVRBW2krMV0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFN1bmRheSAiICsgREFUQVtpXSArCisgICAgICAgICAgICAgICAgICAgICAgIiBvZiBKYW4gMTk5NyAtPiAiICsgYWN0dWFsICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCB3YW50ICIgKyBEQVRBW2krMV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogV0VFS19PRl9ZRUFSIGNvbXB1dGVkIGluY29ycmVjdGx5LiAgQSBmYWlsdXJlIG9mIHRoaXMgdGVzdCBjYW4gaW5kaWNhdGUKKyAgICAgKiBhIHByb2JsZW0gaW4gc2V2ZXJhbCBkaWZmZXJlbnQgcGxhY2VzIGluIHRoZSAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDI4ODc5MigpIHRocm93cyBFeGNlcHRpb24gCisgICAgeworCVRpbWVab25lIHNhdmVkVFogPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisJVGltZVpvbmUuc2V0RGVmYXVsdChUaW1lWm9uZS5nZXRUaW1lWm9uZSgiR01UIikpOworCUdyZWdvcmlhbkNhbGVuZGFyIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICAKKwlmb3IgKGludCBpID0gMTkwMDsgaSA8IDIxMDA7IGkrKykgeworCSAgICBmb3IgKGludCBqMSA9IDE7IGoxIDw9IDc7IGoxKyspIHsKKwkJLy8gTG9vcCBmb3IgTWluaW1hbERheXNJbkZpcnN0V2VlazogMS4uNworCQlmb3IgKGludCBqID0gQ2FsZW5kYXIuU1VOREFZOyBqIDw9IENhbGVuZGFyLlNBVFVSREFZOyBqKyspIHsKKwkJICAgIC8vIExvb3AgZm9yIEZpcnN0RGF5T2ZXZWVrOiBTVU5EQVkuLlNBVFVSREFZCisJCSAgICBjYWwuY2xlYXIoKTsKKwkJICAgIGNhbC5zZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKGoxKTsKKwkJICAgIGNhbC5zZXRGaXJzdERheU9mV2VlayhqKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gU2V0IHRoZSBjYWxlbmRhciB0byB0aGUgZmlyc3QgZGF5IG9mIHRoZSBsYXN0IHdlZWsKKyAgICAgICAgICAgICAgICAgICAgLy8gb2YgdGhlIHllYXIuICBUaGlzIG1heSBvdmVybGFwIHNvbWUgb2YgdGhlIHN0YXJ0IG9mCisgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBuZXh0IHllYXI7IHRoYXQgaXMsIHRoZSBsYXN0IHdlZWsgb2YgMTk5OSBtYXkKKyAgICAgICAgICAgICAgICAgICAgLy8gaW5jbHVkZSBzb21lIG9mIEphbnVhcnkgMjAwMC4gIFVzZSB0aGUgYWRkKCkgbWV0aG9kCisgICAgICAgICAgICAgICAgICAgIC8vIHRvIGFkdmFuY2UgdGhyb3VnaCB0aGUgd2Vlay4gIEZvciBlYWNoIGRheSwgY2FsbAorICAgICAgICAgICAgICAgICAgICAvLyBnZXQoV0VFS19PRl9ZRUFSKS4gIFRoZSByZXN1bHQgc2hvdWxkIGJlIHRoZSBzYW1lCisgICAgICAgICAgICAgICAgICAgIC8vIGZvciB0aGUgd2hvbGUgd2Vlay4gIE5vdGUgdGhhdCBhIGJ1ZyBpbgorICAgICAgICAgICAgICAgICAgICAvLyBnZXRBY3R1YWxNYXhpbXVtKCkgd2lsbCBicmVhayB0aGlzIHRlc3QuCisJCSAgICBjYWwuc2V0KENhbGVuZGFyLllFQVIsIGkpOworCQkgICAgaW50IG1heFdlZWsgPSBjYWwuZ2V0QWN0dWFsTWF4aW11bShDYWxlbmRhci5XRUVLX09GX1lFQVIpOworCQkgICAgY2FsLnNldChDYWxlbmRhci5XRUVLX09GX1lFQVIsIG1heFdlZWspOworCQkgICAgY2FsLnNldChDYWxlbmRhci5EQVlfT0ZfV0VFSywgaik7CisJCSAgICBmb3IgKGludCBrID0gMTsgayA8IDc7IGsrKykgeworCQkJY2FsLmFkZChDYWxlbmRhci5EQVRFLCAxKTsKKwkJCWludCBXT1kgPSBjYWwuZ2V0KENhbGVuZGFyLldFRUtfT0ZfWUVBUik7CisJCQlpZiAoV09ZICE9IG1heFdlZWspIHsKKwkJCSAgICBlcnJsbihjYWwuZ2V0VGltZSgpICsgIixnb3Q9IiArIFdPWQorCQkJCSAgKyAiLGV4cGVjdGVkPSIgKyBtYXhXZWVrIAorCQkJCSAgKyAiLG1pbj0iICsgajEgKyAiLGZpcnN0PSIgKyBqKTsKKwkJCX0KKwkJICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLy8gTm93IGFkdmFuY2UgdGhlIGNhbGVuZGFyIG9uZSBtb3JlIGRheS4gIFRoaXMgc2hvdWxkCisgICAgICAgICAgICAgICAgICAgIC8vIHB1dCBpdCBhdCB0aGUgZmlyc3QgZGF5IG9mIHdlZWsgMSBvZiB0aGUgbmV4dCB5ZWFyLgorCQkgICAgY2FsLmFkZChDYWxlbmRhci5EQVRFLCAxKTsKKwkJICAgIGludCBXT1kgPSBjYWwuZ2V0KENhbGVuZGFyLldFRUtfT0ZfWUVBUik7CisJCSAgICBpZiAoV09ZICE9IDEpIHsKKwkJCWVycmxuKGNhbC5nZXRUaW1lKCkgKyAiLGdvdD0iICsgV09ZIAorCQkJICAgICAgKyAiLGV4cGVjdGVkPTEsbWluPSIgKyBqMSArICIsZmlyc3QiICsgaik7CisJCSAgICB9CisJCX0KKwkgICAgfQorCX0KKwlUaW1lWm9uZS5zZXREZWZhdWx0KHNhdmVkVFopOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgZmllbGREaWZmZXJlbmNlKCkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEo0MzgoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgaW50IERBVEFbXSA9IHsKKyAgICAgICAgICAgIDIwMDAsIENhbGVuZGFyLkpBTlVBUlksIDIwLCAgIDIwMTAsIENhbGVuZGFyLkpVTkUsIDE1LAorICAgICAgICAgICAgMjAxMCwgQ2FsZW5kYXIuSlVORSwgMTUsICAgICAgMjAwMCwgQ2FsZW5kYXIuSkFOVUFSWSwgMjAsCisgICAgICAgICAgICAxOTY0LCBDYWxlbmRhci5TRVBURU1CRVIsIDcsICAxOTk5LCBDYWxlbmRhci5KVU5FLCA0LAorICAgICAgICAgICAgMTk5OSwgQ2FsZW5kYXIuSlVORSwgNCwgICAgICAgMTk2NCwgQ2FsZW5kYXIuU0VQVEVNQkVSLCA3LAorICAgICAgICB9OworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTYpIHsKKyAgICAgICAgICAgIGludCB5MSA9IERBVEFbaV07CisgICAgICAgICAgICBpbnQgbTEgPSBEQVRBW2krMV07CisgICAgICAgICAgICBpbnQgZDEgPSBEQVRBW2krMl07CisgICAgICAgICAgICBpbnQgeTIgPSBEQVRBW2krM107CisgICAgICAgICAgICBpbnQgbTIgPSBEQVRBW2krNF07CisgICAgICAgICAgICBpbnQgZDIgPSBEQVRBW2krNV07CisKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgY2FsLnNldCh5MSwgbTEsIGQxKTsKKyAgICAgICAgICAgIERhdGUgZGF0ZTEgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICAgICAgY2FsLnNldCh5MiwgbTIsIGQyKTsKKyAgICAgICAgICAgIERhdGUgZGF0ZTIgPSBjYWwuZ2V0VGltZSgpOworCisgICAgICAgICAgICBjYWwuc2V0VGltZShkYXRlMSk7CisgICAgICAgICAgICBpbnQgZHkgPSBjYWwuZmllbGREaWZmZXJlbmNlKGRhdGUyLCBDYWxlbmRhci5ZRUFSKTsKKyAgICAgICAgICAgIGludCBkbSA9IGNhbC5maWVsZERpZmZlcmVuY2UoZGF0ZTIsIENhbGVuZGFyLk1PTlRIKTsKKyAgICAgICAgICAgIGludCBkZCA9IGNhbC5maWVsZERpZmZlcmVuY2UoZGF0ZTIsIENhbGVuZGFyLkRBVEUpOworCisgICAgICAgICAgICBsb2dsbigiIiArIGRhdGUyICsgIiAtICIgKyBkYXRlMSArICIgPSAiICsKKyAgICAgICAgICAgICAgICAgIGR5ICsgInkgIiArIGRtICsgIm0gIiArIGRkICsgImQiKTsKKworICAgICAgICAgICAgY2FsLnNldFRpbWUoZGF0ZTEpOworICAgICAgICAgICAgY2FsLmFkZChDYWxlbmRhci5ZRUFSLCBkeSk7CisgICAgICAgICAgICBjYWwuYWRkKENhbGVuZGFyLk1PTlRILCBkbSk7CisgICAgICAgICAgICBjYWwuYWRkKENhbGVuZGFyLkRBVEUsIGRkKTsKKyAgICAgICAgICAgIERhdGUgZGF0ZTIyID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgIGlmICghZGF0ZTIuZXF1YWxzKGRhdGUyMikpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGRhdGUxICsgIiArICIgKworICAgICAgICAgICAgICAgICAgICAgIGR5ICsgInkgIiArIGRtICsgIm0gIiArIGRkICsgImQgPSAiICsKKyAgICAgICAgICAgICAgICAgICAgICBkYXRlMjIgKyAiLCBleHAgIiArIGRhdGUyKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgZGF0ZTEgKyAiICsgIiArCisgICAgICAgICAgICAgICAgICAgICAgZHkgKyAieSAiICsgZG0gKyAibSAiICsgZGQgKyAiZCA9ICIgKworICAgICAgICAgICAgICAgICAgICAgIGRhdGUyMik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgYmVoYXZpb3Igb2YgRFNUX09GRlNFVCBmaWVsZC4gIElDVTRKIEppdHRlcmJ1ZyA5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RKOSgpIHsKKyAgICAgICAgaW50IEhPVVJTID0gNjAqNjAqMTAwMDsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsZS5VUyk7CisKKyAgICAgICAgZmluYWwgaW50IEVORF9GSUVMRFMgPSAweDEyMzQ7CisKKyAgICAgICAgaW50W10gREFUQSA9IHsKKyAgICAgICAgICAgIC8vIFdpdGggbm8gZXhwbGljaXQgWk9ORS9EU1QgZXhwZWN0IDEyOjAwIGFtCisgICAgICAgICAgICBDYWxlbmRhci5NT05USCwgQ2FsZW5kYXIuSlVORSwKKyAgICAgICAgICAgIEVORF9GSUVMRFMsCisgICAgICAgICAgICAwLCAwLCAvLyBleHBlY3RlZCBob3VyLCBtaW4KKworICAgICAgICAgICAgLy8gTm9ybWFsIFpPTkUvRFNUIGZvciBKdW5lIDEgUGFjaWZpYyBpcyA4OjAwLzE6MDAKKyAgICAgICAgICAgIENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5KVU5FLAorICAgICAgICAgICAgQ2FsZW5kYXIuWk9ORV9PRkZTRVQsIC04KkhPVVJTLAorICAgICAgICAgICAgQ2FsZW5kYXIuRFNUX09GRlNFVCwgSE9VUlMsCisgICAgICAgICAgICBFTkRfRklFTERTLAorICAgICAgICAgICAgMCwgMCwgLy8gZXhwZWN0ZWQgaG91ciwgbWluCisKKyAgICAgICAgICAgIC8vIFdpdGggWk9ORS9EU1Qgb2YgODowMC8wOjMwIGV4cGVjdCB0aW1lIG9mIDEyOjMwIGFtCisgICAgICAgICAgICBDYWxlbmRhci5NT05USCwgQ2FsZW5kYXIuSlVORSwKKyAgICAgICAgICAgIENhbGVuZGFyLlpPTkVfT0ZGU0VULCAtOCpIT1VSUywKKyAgICAgICAgICAgIENhbGVuZGFyLkRTVF9PRkZTRVQsIEhPVVJTLzIsCisgICAgICAgICAgICBFTkRfRklFTERTLAorICAgICAgICAgICAgMCwgMzAsIC8vIGV4cGVjdGVkIGhvdXIsIG1pbgorCisgICAgICAgICAgICAvLyBXaXRoIFpPTkUvRFNUIG9mIDg6MDAvVU5TRVQgZXhwZWN0IHRpbWUgb2YgMTowMCBhbQorICAgICAgICAgICAgQ2FsZW5kYXIuTU9OVEgsIENhbGVuZGFyLkpVTkUsCisgICAgICAgICAgICBDYWxlbmRhci5aT05FX09GRlNFVCwgLTgqSE9VUlMsCisgICAgICAgICAgICBFTkRfRklFTERTLAorICAgICAgICAgICAgMSwgMCwgLy8gZXhwZWN0ZWQgaG91ciwgbWluCisKKyAgICAgICAgICAgIC8vIFdpdGggWk9ORS9EU1Qgb2YgVU5TRVQvMDozMCBleHBlY3QgNDozMCBwbSAoZGF5IGJlZm9yZSkKKyAgICAgICAgICAgIENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5KVU5FLAorICAgICAgICAgICAgQ2FsZW5kYXIuRFNUX09GRlNFVCwgSE9VUlMvMiwKKyAgICAgICAgICAgIEVORF9GSUVMRFMsCisgICAgICAgICAgICAxNiwgMzAsIC8vIGV4cGVjdGVkIGhvdXIsIG1pbgorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgKSB7CisgICAgICAgICAgICBpbnQgc3RhcnQgPSBpOworICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisKKyAgICAgICAgICAgIC8vIFNldCBmaWVsZHMKKyAgICAgICAgICAgIHdoaWxlIChEQVRBW2ldICE9IEVORF9GSUVMRFMpIHsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KERBVEFbaSsrXSwgREFUQVtpKytdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICsraTsgLy8gc2tpcCBvdmVyIEVORF9GSUVMRFMKKworICAgICAgICAgICAgLy8gR2V0IGhvdXIvbWludXRlCisgICAgICAgICAgICBpbnQgaCA9IGNhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpOworICAgICAgICAgICAgaW50IG0gPSBjYWwuZ2V0KENhbGVuZGFyLk1JTlVURSk7CisKKyAgICAgICAgICAgIC8vIENoZWNrCisgICAgICAgICAgICBpZiAoaCAhPSBEQVRBW2ldIHx8IG0gIT0gREFUQVtpKzFdKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IGV4cGVjdGVkICIgKyBEQVRBW2ldICsgIjoiICsgREFUQVtpKzFdICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCBnb3QgIiArIGggKyAiOiIgKyBtICsgIiBhZnRlcjoiKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoREFUQVtzdGFydF0gIT0gRU5EX0ZJRUxEUykgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigic2V0KCIgKyBGSUVMRF9OQU1FW0RBVEFbc3RhcnQrK11dICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgIiArIERBVEFbc3RhcnQrK10gKyAiKTsiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGkgKz0gMjsgLy8gc2tpcCBvdmVyIGV4cGVjdGVkIGhvdXIsIG1pbgorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRGF0ZUZvcm1hdCBjbGFzcyBtaXN0YWtlcyBkYXRlIHN0eWxlIGFuZCB0aW1lIHN0eWxlIGFzIGZvbGxvd3M6CisgICAgICogLSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UgdGFrZXMgZGF0ZSBzdHlsZSBhcyB0aW1lCisgICAgICogc3R5bGUsIGFuZCB0aW1lIHN0eWxlIGFzIGRhdGUgc3R5bGUKKyAgICAgKiAtIElmIGEgQ2FsZW5kYXIgaXMgcGFzc2VkIHRvCisgICAgICogRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UsIGl0IHJldHVybnMgdGltZSBpbnN0YW5jZQorICAgICAqIC0gSWYgYSBDYWxlbmRhcgorICAgICAqIGlzIHBhc3NlZCB0byBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZSwgaXQgcmV0dXJucyBkYXRlIGluc3RhbmNlCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdERhdGVGb3JtYXRGYWN0b3J5SjI2KCkgeworICAgICAgICBUaW1lWm9uZSB6b25lID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgTG9jYWxlIGxvYyA9IExvY2FsZS5VUzsKKyAgICAgICAgICAgIFRpbWVab25lLnNldERlZmF1bHQoVGltZVpvbmUuZ2V0VGltZVpvbmUoIkFtZXJpY2EvTG9zX0FuZ2VsZXMiKSk7CisgICAgICAgICAgICBqYXZhLnV0aWwuQ2FsZW5kYXIgdGVtcGNhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICAgICAgdGVtcGNhbC5zZXQoMjAwMSArIDE5MDAsIENhbGVuZGFyLkFQUklMLCA1LCAxNywgNDMsIDUzKTsKKyAgICAgICAgICAgIERhdGUgZGF0ZSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UobG9jKTsKKyAgICAgICAgICAgIE9iamVjdFtdIERBVEEgPSB7CisgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5TSE9SVCwgbG9jKSwKKyAgICAgICAgICAgICAgICAiRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5TSE9SVCwgbG9jKSIsCisgICAgICAgICAgICAgICAgIjQvNS8wMSIsCisKKyAgICAgICAgICAgICAgICBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LlNIT1JULCBsb2MpLAorICAgICAgICAgICAgICAgICJEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LlNIT1JULCBsb2MpIiwKKyAgICAgICAgICAgICAgICAiNTo0MyBQTSIsCisKKyAgICAgICAgICAgICAgICBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5GVUxMLCBEYXRlRm9ybWF0LlNIT1JULCBsb2MpLAorICAgICAgICAgICAgICAgICJEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5GVUxMLCBEYXRlRm9ybWF0LlNIT1JULCBsb2MpIiwKKyAgICAgICAgICAgICAgICAiRnJpZGF5LCBBcHJpbCA1LCAzOTAxIDU6NDMgUE0iLAorCisgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoY2FsLCBEYXRlRm9ybWF0LlNIT1JULCBsb2MpLAorICAgICAgICAgICAgICAgICJEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShjYWwsIERhdGVGb3JtYXQuU0hPUlQsIGxvYykiLAorICAgICAgICAgICAgICAgICI0LzUvMDEiLAorCisgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoY2FsLCBEYXRlRm9ybWF0LlNIT1JULCBsb2MpLAorICAgICAgICAgICAgICAgICJEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShjYWwsIERhdGVGb3JtYXQuU0hPUlQsIGxvYykiLAorICAgICAgICAgICAgICAgICI1OjQzIFBNIiwKKworICAgICAgICAgICAgICAgIERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShjYWwsIERhdGVGb3JtYXQuRlVMTCwgRGF0ZUZvcm1hdC5TSE9SVCwgbG9jKSwKKyAgICAgICAgICAgICAgICAiRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKGNhbCwgRGF0ZUZvcm1hdC5GVUxMLCBEYXRlRm9ybWF0LlNIT1JULCBsb2MpIiwKKyAgICAgICAgICAgICAgICAiRnJpZGF5LCBBcHJpbCA1LCAzOTAxIDU6NDMgUE0iLAorICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgY2FsLmdldERhdGVUaW1lRm9ybWF0KERhdGVGb3JtYXQuU0hPUlQsIERhdGVGb3JtYXQuRlVMTCwgbG9jKSwKKyAgICAgICAgICAgICAgICAiY2FsLmdldERhdGVUaW1lRm9ybWF0KERhdGVGb3JtYXQuU0hPUlQsIERhdGVGb3JtYXQuRlVMTCwgbG9jKSIsCisgICAgICAgICAgICAgICAgIjQvNS8wMSA1OjQzOjUzIFBNIFBTVCIsCisKKyAgICAgICAgICAgICAgICBjYWwuZ2V0RGF0ZVRpbWVGb3JtYXQoRGF0ZUZvcm1hdC5GVUxMLCBEYXRlRm9ybWF0LlNIT1JULCBsb2MpLAorICAgICAgICAgICAgICAgICJjYWwuZ2V0RGF0ZVRpbWVGb3JtYXQoRGF0ZUZvcm1hdC5GVUxMLCBEYXRlRm9ybWF0LlNIT1JULCBsb2MpIiwKKyAgICAgICAgICAgICAgICAiRnJpZGF5LCBBcHJpbCA1LCAzOTAxIDU6NDMgUE0iLAorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MykgeworICAgICAgICAgICAgICAgIERhdGVGb3JtYXQgZGYgPSAoRGF0ZUZvcm1hdCkgREFUQVtpXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZGVzYyA9IChTdHJpbmcpIERBVEFbaSsxXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZXhwID0gKFN0cmluZykgREFUQVtpKzJdOworICAgICAgICAgICAgICAgIFN0cmluZyBnb3QgPSBkZi5mb3JtYXQoZGF0ZSk7CisgICAgICAgICAgICAgICAgaWYgKGdvdC5lcXVhbHMoZXhwKSkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyBkZXNjICsgIiA9PiAiICsgZ290KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGRlc2MgKyAiID0+ICIgKyBnb3QgKyAiLCBleHBlY3RlZCAiICsgZXhwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KHpvbmUpOworICAgICAgICB9CisgICAgfQorfQorCisvL2VvZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0NhbGVuZGFyVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0NhbGVuZGFyVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY5ODE2ZTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvQ2FsZW5kYXJUZXN0LmphdmEKQEAgLTAsMCArMSwzNjAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9DYWxlbmRhclRlc3QuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNTowNSAkIAorICogJFJldmlzaW9uOiAxLjEyICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNhbGVuZGFyOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0OworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworCisvKioKKyAqIEEgYmFzZSBjbGFzcyBmb3IgY2xhc3NlcyB0aGF0IHRlc3QgaW5kaXZpZHVhbCBDYWxlbmRhciBzdWJjbGFzc2VzLgorICogRGVmaW5lcyB2YXJpb3VzIHVzZWZ1bCB1dGlsaXR5IG1ldGhvZHMgYW5kIGNvbnN0YW50cworICovCitwdWJsaWMgY2xhc3MgQ2FsZW5kYXJUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIAorICAgIC8vIENvbnN0YW50cyBmb3IgdXNlIGJ5IHN1YmNsYXNzZXMsIHNvbGVseSB0byBzYXZlIHR5cGluZworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFNVTiA9IENhbGVuZGFyLlNVTkRBWTsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBNT04gPSBDYWxlbmRhci5NT05EQVk7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgVFVFID0gQ2FsZW5kYXIuVFVFU0RBWTsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBXRUQgPSBDYWxlbmRhci5XRURORVNEQVk7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgVEhVID0gQ2FsZW5kYXIuVEhVUlNEQVk7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgRlJJID0gQ2FsZW5kYXIuRlJJREFZOworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFNBVCA9IENhbGVuZGFyLlNBVFVSREFZOworCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgRVJBICAgICA9IENhbGVuZGFyLkVSQTsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBZRUFSICAgID0gQ2FsZW5kYXIuWUVBUjsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBNT05USCAgID0gQ2FsZW5kYXIuTU9OVEg7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREFURSAgICA9IENhbGVuZGFyLkRBVEU7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSE9VUiAgICA9IENhbGVuZGFyLkhPVVI7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTUlOVVRFICA9IENhbGVuZGFyLk1JTlVURTsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBTRUNPTkQgID0gQ2FsZW5kYXIuU0VDT05EOworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERPWSAgICAgPSBDYWxlbmRhci5EQVlfT0ZfWUVBUjsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBXT1kgICAgID0gQ2FsZW5kYXIuV0VFS19PRl9ZRUFSOworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFdPTSAgICAgPSBDYWxlbmRhci5XRUVLX09GX01PTlRIOworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERPVyAgICAgPSBDYWxlbmRhci5EQVlfT0ZfV0VFSzsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBET1dNICAgID0gQ2FsZW5kYXIuREFZX09GX1dFRUtfSU5fTU9OVEg7CisgICAgCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBTaW1wbGVUaW1lWm9uZSBVVEMgPSBuZXcgU2ltcGxlVGltZVpvbmUoMCwgIkdNVCIpOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gRklFTERfTkFNRSA9IHsKKyAgICAgICAgIkVSQSIsICJZRUFSIiwgIk1PTlRIIiwgIldFRUtfT0ZfWUVBUiIsICJXRUVLX09GX01PTlRIIiwKKyAgICAgICAgIkRBWV9PRl9NT05USCIsICJEQVlfT0ZfWUVBUiIsICJEQVlfT0ZfV0VFSyIsCisgICAgICAgICJEQVlfT0ZfV0VFS19JTl9NT05USCIsICJBTV9QTSIsICJIT1VSIiwgIkhPVVJfT0ZfREFZIiwKKyAgICAgICAgIk1JTlVURSIsICJTRUNPTkQiLCAiTUlMTElTRUNPTkQiLCAiWk9ORV9PRkZTRVQiLAorICAgICAgICAiRFNUX09GRlNFVCIsICJZRUFSX1dPWSIsICJET1dfTE9DQUwiLCAiRVhURU5ERURfWUVBUiIsCisgICAgICAgICJKVUxJQU5fREFZIiwgIk1JTExJU0VDT05EU19JTl9EQVkiLAorICAgICAgICAiSVNfTEVBUF9NT05USCIgLy8gKENoaW5lc2VDYWxlbmRhciBvbmx5KQorICAgIH07CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBmaWVsZE5hbWUoaW50IGYpIHsKKyAgICAgICAgcmV0dXJuIChmPj0wICYmIGY8RklFTERfTkFNRS5sZW5ndGgpID8KKyAgICAgICAgICAgIEZJRUxEX05BTUVbZl0gOiAoIjxGaWVsZCAiICsgZiArICI+Iik7CisgICAgfQorCisgICAgLyoqCisgICAgICogSXRlcmF0ZXMgdGhyb3VnaCBhIGxpc3Qgb2YgY2FsZW5kYXIgPGNvZGU+VGVzdENhc2U8L2NvZGU+IG9iamVjdHMgYW5kCisgICAgICogbWFrZXMgc3VyZSB0aGF0IHRoZSB0aW1lLXRvLWZpZWxkcyBhbmQgZmllbGRzLXRvLXRpbWUgY2FsY3VsYXRpb25zIHdvcmsKKyAgICAgKiBjb3JyZW5jdGx5IGZvciB0aGUgdmFsdWVzIGluIGVhY2ggdGVzdCBjYXNlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGRvVGVzdENhc2VzKFRlc3RDYXNlW10gY2FzZXMsIENhbGVuZGFyIGNhbCkKKyAgICB7CisgICAgICAgIGNhbC5zZXRUaW1lWm9uZShVVEMpOworICAgICAgICAKKyAgICAgICAgLy8gR2V0IGEgZm9ybWF0IHRvIHVzZSBmb3IgcHJpbnRpbmcgZGF0ZXMgaW4gdGhlIGNhbGVuZGFyIHN5c3RlbSB3ZSdyZSB0ZXN0aW5nCisgICAgICAgIERhdGVGb3JtYXQgZm9ybWF0ID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKGNhbCwgRGF0ZUZvcm1hdC5TSE9SVCwgLTEsIExvY2FsZS5nZXREZWZhdWx0KCkpOworCisgICAgICAgIGZpbmFsIFN0cmluZyBwYXR0ZXJuID0gKGNhbCBpbnN0YW5jZW9mIENoaW5lc2VDYWxlbmRhcikgPworICAgICAgICAgICAgIkUgTU1sL2RkL3kgRyBISDptbTpzcy5TIHoiIDoKKyAgICAgICAgICAgICJFLCBNTS9kZC95eXl5IEcgSEg6bW06c3MuUyB6IjsKKyAgICAKKyAgICAgICAgKChTaW1wbGVEYXRlRm9ybWF0KWZvcm1hdCkuYXBwbHlQYXR0ZXJuKHBhdHRlcm4pOworCisgICAgICAgIC8vIFRoaXMgZm9ybWF0IGlzIHVzZWQgZm9yIHByaW50aW5nIEdyZWdvcmlhbiBkYXRlcy4KKyAgICAgICAgRGF0ZUZvcm1hdCBncmVnRm9ybWF0ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQocGF0dGVybik7CisgICAgICAgIGdyZWdGb3JtYXQuc2V0VGltZVpvbmUoVVRDKTsKKworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBwdXJlR3JlZyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcihVVEMpOworICAgICAgICBwdXJlR3JlZy5zZXRHcmVnb3JpYW5DaGFuZ2UobmV3IERhdGUoTG9uZy5NSU5fVkFMVUUpKTsKKyAgICAgICAgRGF0ZUZvcm1hdCBwdXJlR3JlZ0ZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJFIE0vZC95eXl5IEciKTsKKyAgICAgICAgcHVyZUdyZWdGbXQuc2V0Q2FsZW5kYXIocHVyZUdyZWcpOworICAgICAgICAKKyAgICAgICAgLy8gTm93IGl0ZXJhdGUgdGhyb3VnaCB0aGUgdGVzdCBjYXNlcyBhbmQgc2VlIHdoYXQgaGFwcGVucworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNhc2VzLmxlbmd0aDsgaSsrKQorICAgICAgICB7CisgICAgICAgICAgICBUZXN0Q2FzZSB0ZXN0ID0gY2FzZXNbaV07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBGaXJzdCB3ZSB3YW50IHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBtaWxsaXMgLT4gZmllbGRzIGNhbGN1bGF0aW9uIHdvcmtzCisgICAgICAgICAgICAvLyB0ZXN0LmFwcGx5VGltZSB3aWxsIGNhbGwgc2V0VGltZSgpIG9uIHRoZSBjYWxlbmRhciBvYmplY3QsIGFuZAorICAgICAgICAgICAgLy8gdGVzdC5maWVsZHNFcXVhbCB3aWxsIHJldHJpZXZlIGFsbCBvZiB0aGUgZmllbGQgdmFsdWVzIGFuZCBtYWtlIHN1cmUKKyAgICAgICAgICAgIC8vIHRoYXQgdGhleSdyZSB0aGUgc2FtZSBhcyB0aGUgb25lcyBpbiB0aGUgdGVzdGNhc2UKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICB0ZXN0LmFwcGx5VGltZShjYWwpOworICAgICAgICAgICAgaWYgKCF0ZXN0LmZpZWxkc0VxdWFsKGNhbCwgdGhpcykpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogKG1pbGxpcz0+ZmllbGRzKSAiICsKKyAgICAgICAgICAgICAgICAgICAgICBncmVnRm9ybWF0LmZvcm1hdCh0ZXN0LmdldFRpbWUoKSkgKyAiID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdC5mb3JtYXQoY2FsLmdldFRpbWUoKSkgKworICAgICAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkICIgKyB0ZXN0KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIElmIHRoYXQgd2FzIE9LLCBjaGVjayB0aGUgZmllbGRzIC0+IG1pbGxpcyBjYWxjdWxhdGlvbgorICAgICAgICAgICAgLy8gdGVzdC5hcHBseUZpZWxkcyB3aWxsIHNldCBhbGwgb2YgdGhlIGNhbGVuZGFyJ3MgZmllbGRzIHRvIAorICAgICAgICAgICAgLy8gbWF0Y2ggdGhvc2UgaW4gdGhlIHRlc3QgY2FzZS4KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgIHRlc3QuYXBwbHlGaWVsZHMoY2FsKTsKKyAgICAgICAgICAgIGlmICghdGVzdC5lcXVhbHMoY2FsKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiAoZmllbGRzPT5taWxsaXMpICIgKyB0ZXN0ICsgIiA9PiAiICsKKyAgICAgICAgICAgICAgICAgICAgICBwdXJlR3JlZ0ZtdC5mb3JtYXQoY2FsLmdldFRpbWUoKSkgKworICAgICAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkICIgKyBwdXJlR3JlZ0ZtdC5mb3JtYXQodGVzdC5nZXRUaW1lKCkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIGJvb2xlYW4gUk9MTCA9IHRydWU7CisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBib29sZWFuIEFERCA9IGZhbHNlOworICAgIAorICAgIC8qKgorICAgICAqIFByb2Nlc3MgdGVzdCBjYXNlcyBmb3IgPGNvZGU+YWRkPC9jb2RlPiBhbmQgPGNvZGU+cm9sbDwvY29kZT4gbWV0aG9kcy4KKyAgICAgKiBFYWNoIHRlc3QgY2FzZSBpcyBhbiBhcnJheSBvZiBpbnRlZ2VycywgYXMgZm9sbG93czoKKyAgICAgKiA8dWw+CisgICAgICogIDxsaT4wOiBpbnB1dCB5ZWFyCisgICAgICogIDxsaT4xOiAgICAgICBtb250aCAgKHplcm8tYmFzZWQpCisgICAgICogIDxsaT4yOiAgICAgICBkYXkKKyAgICAgKiAgPGxpPjM6IGZpZWxkIHRvIHJvbGwgb3IgYWRkIHRvCisgICAgICogIDxsaT40OiBhbW91bnQgdG8gcm9sbCBvciBhZGQKKyAgICAgKiAgPGxpPjU6IHJlc3VsdCB5ZWFyCisgICAgICogIDxsaT42OiAgICAgICAgbW9udGggKHplcm8tYmFzZWQpCisgICAgICogIDxsaT43OiAgICAgICAgZGF5CisgICAgICogPC91bD4KKyAgICAgKiBGb3IgZXhhbXBsZToKKyAgICAgKiA8cHJlPgorICAgICAqICAgLy8gICAgICAgaW5wdXQgICAgICAgICAgICAgICAgYWRkIGJ5ICAgICAgICAgIG91dHB1dAorICAgICAqICAgLy8gIHllYXIgIG1vbnRoICAgICBkYXkgICAgIGZpZWxkIGFtb3VudCAgICB5ZWFyICBtb250aCAgICAgZGF5CisgICAgICogICB7ICAgNTc1OSwgSEVTSFZBTiwgICAyLCAgICAgTU9OVEgsICAgMSwgICAgIDU3NTksIEtJU0xFViwgICAgMiB9LAorICAgICAqIDwvcHJlPgorICAgICAqCisgICAgICogQHBhcmFtIHJvbGwgIDxjb2RlPnRydWU8L2NvZGU+IG9yIDxjb2RlPlJPTEw8L2NvZGU+IHRvIHRlc3QgdGhlIDxjb2RlPnJvbGw8L2NvZGU+IG1ldGhvZDsKKyAgICAgKiAgICAgICAgICAgICAgPGNvZGU+ZmFsc2U8L2NvZGU+IG9yIDxjb2RlPkFERDwvY29kZT4gdG8gdGVzdCB0aGUgPGNvZGU+YWRkPC9jb2RlIG1ldGhvZAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGRvUm9sbEFkZChib29sZWFuIHJvbGwsIENhbGVuZGFyIGNhbCwgaW50W11bXSB0ZXN0cykKKyAgICB7CisgICAgICAgIFN0cmluZyBuYW1lID0gcm9sbCA/ICJyb2xsaW5nIiA6ICJhZGRpbmciOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaW50W10gdGVzdCA9IHRlc3RzW2ldOworCisgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgIGlmIChjYWwgaW5zdGFuY2VvZiBDaGluZXNlQ2FsZW5kYXIpIHsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkVYVEVOREVEX1lFQVIsIHRlc3RbMF0pOworICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTU9OVEgsIHRlc3RbMV0pOworICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuREFZX09GX01PTlRILCB0ZXN0WzJdKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY2FsLnNldCh0ZXN0WzBdLCB0ZXN0WzFdLCB0ZXN0WzJdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChyb2xsKSB7CisgICAgICAgICAgICAgICAgY2FsLnJvbGwodGVzdFszXSwgdGVzdFs0XSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGNhbC5hZGQodGVzdFszXSwgdGVzdFs0XSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgeSA9IGNhbC5nZXQoY2FsIGluc3RhbmNlb2YgQ2hpbmVzZUNhbGVuZGFyID8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5FWFRFTkRFRF9ZRUFSIDogWUVBUik7CisgICAgICAgICAgICBpZiAoeSAhPSB0ZXN0WzVdIHx8IGNhbC5nZXQoTU9OVEgpICE9IHRlc3RbNl0KKyAgICAgICAgICAgICAgICAgICAgfHwgY2FsLmdldChEQVRFKSAhPSB0ZXN0WzddKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgbmFtZSArICIgIisgeW1kVG9TdHJpbmcodGVzdFswXSwgdGVzdFsxXSwgdGVzdFsyXSkKKyAgICAgICAgICAgICAgICAgICAgKyAiICIgKyBGSUVMRF9OQU1FW3Rlc3RbM11dICsgIiBieSAiICsgdGVzdFs0XQorICAgICAgICAgICAgICAgICAgICArICI6IGV4cGVjdGVkICIgKyB5bWRUb1N0cmluZyh0ZXN0WzVdLCB0ZXN0WzZdLCB0ZXN0WzddKQorICAgICAgICAgICAgICAgICAgICArICIsIGdvdCAiICsgeW1kVG9TdHJpbmcoY2FsKSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGlzVmVyYm9zZSgpKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9LOiAiICsgbmFtZSArICIgIisgeW1kVG9TdHJpbmcodGVzdFswXSwgdGVzdFsxXSwgdGVzdFsyXSkKKyAgICAgICAgICAgICAgICAgICAgKyAiICIgKyBGSUVMRF9OQU1FW3Rlc3RbM11dICsgIiBieSAiICsgdGVzdFs0XQorICAgICAgICAgICAgICAgICAgICArICI6IGdvdCAiICsgeW1kVG9TdHJpbmcoY2FsKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBmdW5jdGlvbnMgZ2V0WHh4TWluaW11bSgpIGFuZCBnZXRYeHhNYXhpbXVtKCkgYnkgbWFyY2hpbmcgYQorICAgICAqIHRlc3QgY2FsZW5kYXIgJ2NhbCcgdGhyb3VnaCAnbnVtYmVyT2ZEYXlzJyBzZXF1ZW50aWFsIGRheXMgc3RhcnRpbmcKKyAgICAgKiB3aXRoICdzdGFydERhdGUnLiAgRm9yIGVhY2ggZGF0ZSwgcmVhZCBhIGZpZWxkIHZhbHVlIGFsb25nIHdpdGggaXRzCisgICAgICogcmVwb3J0ZWQgYWN0dWFsIG1pbmltdW0gYW5kIGFjdHVhbCBtYXhpbXVtLiAgVGhlc2UgdmFsdWVzIGFyZQorICAgICAqIGNoZWNrZWQgYWdhaW5zdCBvbmUgYW5vdGhlciBhcyB3ZWxsIGFzIGFnYWluc3QgZ2V0TWluaW11bSgpLAorICAgICAqIGdldEdyZWF0ZXN0TWluaW11bSgpLCBnZXRMZWFzdE1heGltdW0oKSwgYW5kIGdldE1heGltdW0oKS4gIFdlCisgICAgICogZXhwZWN0IHRvIHNlZToKKyAgICAgKgorICAgICAqIDEuIG1pbmltdW0gPD0gYWN0dWFsTWluaW11bSA8PSBncmVhdGVzdE1pbmltdW0gPD0KKyAgICAgKiAgICBsZWFzdE1heGltdW0gPD0gYWN0dWFsTWF4aW11bSA8PSBtYXhpbXVtCisgICAgICoKKyAgICAgKiAyLiBhY3R1YWxNaW5pbXVtIDw9IHZhbHVlIDw9IGFjdHVhbE1heGltdW0KKyAgICAgKgorICAgICAqIE5vdGU6IEluIGFkZGl0aW9uIHRvIG91dHJpZ2h0IGZhaWx1cmVzLCB0aGlzIHRlc3QgcmVwb3J0cyBzb21lCisgICAgICogcmVzdWx0cyBhcyB3YXJuaW5ncy4gIFRoZXNlIGFyZSBub3QgZ2VuZXJhbGx5IG9mIGNvbmNlcm4sIGJ1dCB0aGV5CisgICAgICogc2hvdWxkIGJlIGV2YWx1YXRlZCBieSBhIGh1bWFuLiAgVG8gc2VlIHRoZXNlLCBydW4gdGhpcyB0ZXN0IGluCisgICAgICogdmVyYm9zZSBtb2RlLgorICAgICAqIEBwYXJhbSBjYWwgdGhlIGNhbGVuZGFyIHRvIGJlIHRlc3RlZAorICAgICAqIEBwYXJhbSBmaWVsZHNUb1Rlc3QgYW4gYXJyYXkgb2YgZmllbGQgdmFsdWVzIHRvIGJlIHRlc3RlZCwgZS5nLiwgbmV3CisgICAgICogaW50W10geyBDYWxlbmRhci5NT05USCwgQ2FsZW5kYXIuREFZX09GX01PTlRIIH0uICBJdCBvbmx5IG1ha2VzCisgICAgICogc2Vuc2UgdG8gdGVzdCB0aGUgZGF5IGZpZWxkczsgdGhlIHRpbWUgZmllbGRzIGFyZSBub3QgdGVzdGVkIGJ5IHRoaXMKKyAgICAgKiBtZXRob2QuICBJZiBudWxsLCB0aGVuIHRlc3QgYWxsIHN0YW5kYXJkIGZpZWxkcy4KKyAgICAgKiBAcGFyYW0gc3RhcnREYXRlIHRoZSBmaXJzdCBkYXRlIHRvIHRlc3QKKyAgICAgKiBAcGFyYW0gdGVzdER1cmF0aW9uIGlmIHBvc2l0aXZlLCB0aGUgbnVtYmVyIG9mIGRheXMgdG8gYmUgdGVzdGVkLgorICAgICAqIElmIG5lZ2F0aXZlLCB0aGUgbnVtYmVyIG9mIHNlY29uZHMgdG8gcnVuIHRoZSB0ZXN0LgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGRvTGltaXRzVGVzdChDYWxlbmRhciBjYWwsIGludFtdIGZpZWxkc1RvVGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZSBzdGFydERhdGUsIGludCB0ZXN0RHVyYXRpb24pIHsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZ3JlZyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICBncmVnLnNldFRpbWUoc3RhcnREYXRlKTsKKyAgICAgICAgbG9nbG4oIlN0YXJ0OiAiICsgc3RhcnREYXRlKTsKKworICAgICAgICBpZiAoZmllbGRzVG9UZXN0ID09IG51bGwpIHsKKyAgICAgICAgICAgIGZpZWxkc1RvVGVzdCA9IG5ldyBpbnRbXSB7CisgICAgICAgICAgICAgICAgQ2FsZW5kYXIuRVJBLCBDYWxlbmRhci5ZRUFSLCBDYWxlbmRhci5NT05USCwKKyAgICAgICAgICAgICAgICBDYWxlbmRhci5XRUVLX09GX1lFQVIsIENhbGVuZGFyLldFRUtfT0ZfTU9OVEgsCisgICAgICAgICAgICAgICAgQ2FsZW5kYXIuREFZX09GX01PTlRILCBDYWxlbmRhci5EQVlfT0ZfWUVBUiwKKyAgICAgICAgICAgICAgICBDYWxlbmRhci5EQVlfT0ZfV0VFS19JTl9NT05USCwgQ2FsZW5kYXIuWUVBUl9XT1ksCisgICAgICAgICAgICAgICAgQ2FsZW5kYXIuRVhURU5ERURfWUVBUgorICAgICAgICAgICAgfTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEtlZXAgYSByZWNvcmQgb2YgbWluaW1hIGFuZCBtYXhpbWEgdGhhdCB3ZSBhY3R1YWxseSBzZWUuCisgICAgICAgIC8vIFRoZXNlIGFyZSBrZXB0IGluIGFuIGFycmF5IG9mIGFycmF5cyBvZiBoYXNoZXMuCisgICAgICAgIEhhc2h0YWJsZVtdW10gbGltaXRzID0gbmV3IEhhc2h0YWJsZVtmaWVsZHNUb1Rlc3QubGVuZ3RoXVsyXTsKKyAgICAgICAgT2JqZWN0IG51YiA9IG5ldyBPYmplY3QoKTsgLy8gTWVhbmluZ2xlc3MgcGxhY2Vob2xkZXIKKworICAgICAgICAvLyBUaGlzIHRlc3QgY2FuIHJ1biBmb3IgYSBsb25nIHRpbWU7IHNob3cgcHJvZ3Jlc3MuCisgICAgICAgIGxvbmcgbWlsbGlzID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIGxvbmcgbWFyayA9IG1pbGxpcyArIDUwMDA7IC8vIDUgc2VjCisgICAgICAgIG1pbGxpcyAtPSB0ZXN0RHVyYXRpb24gKiAxMDAwOyAvLyBzdG9wIHRpbWUgaWYgdGVzdER1cmF0aW9uPDAKKworICAgICAgICBmb3IgKGludCBpPTA7CisgICAgICAgICAgICAgdGVzdER1cmF0aW9uPjAgPyBpPHRlc3REdXJhdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk8bWlsbGlzOworICAgICAgICAgICAgICsraSkgeworICAgICAgICAgICAgaWYgKFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpID49IG1hcmspIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiKCIgKyBpICsgIiBkYXlzKSIpOworICAgICAgICAgICAgICAgIG1hcmsgKz0gNTAwMDsgLy8gNSBzZWMKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhbC5zZXRUaW1lSW5NaWxsaXMoZ3JlZy5nZXRUaW1lSW5NaWxsaXMoKSk7CisgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8ZmllbGRzVG9UZXN0Lmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICAgICAgaW50IGYgPSBmaWVsZHNUb1Rlc3Rbal07CisgICAgICAgICAgICAgICAgaW50IHYgPSBjYWwuZ2V0KGYpOworICAgICAgICAgICAgICAgIGludCBtaW5BY3R1YWwgPSBjYWwuZ2V0QWN0dWFsTWluaW11bShmKTsKKyAgICAgICAgICAgICAgICBpbnQgbWF4QWN0dWFsID0gY2FsLmdldEFjdHVhbE1heGltdW0oZik7CisgICAgICAgICAgICAgICAgaW50IG1pbkxvdyA9IGNhbC5nZXRNaW5pbXVtKGYpOworICAgICAgICAgICAgICAgIGludCBtaW5IaWdoID0gY2FsLmdldEdyZWF0ZXN0TWluaW11bShmKTsKKyAgICAgICAgICAgICAgICBpbnQgbWF4TG93ID0gY2FsLmdldExlYXN0TWF4aW11bShmKTsKKyAgICAgICAgICAgICAgICBpbnQgbWF4SGlnaCA9IGNhbC5nZXRNYXhpbXVtKGYpOworCisgICAgICAgICAgICAgICAgLy8gRmV0Y2ggdGhlIGhhc2ggZm9yIHRoaXMgZmllbGQgYW5kIGtlZXAgdHJhY2sgb2YgdGhlCisgICAgICAgICAgICAgICAgLy8gbWluaW1hIGFuZCBtYXhpbWEuCisgICAgICAgICAgICAgICAgSGFzaHRhYmxlW10gaCA9IGxpbWl0c1tqXTsKKyAgICAgICAgICAgICAgICBpZiAoaFswXSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGhbMF0gPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgICAgICAgICAgICAgIGhbMV0gPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGhbMF0ucHV0KG5ldyBJbnRlZ2VyKG1pbkFjdHVhbCksIG51Yik7CisgICAgICAgICAgICAgICAgaFsxXS5wdXQobmV3IEludGVnZXIobWF4QWN0dWFsKSwgbnViKTsKKworICAgICAgICAgICAgICAgIGlmIChtaW5BY3R1YWwgPCBtaW5Mb3cgfHwgbWluQWN0dWFsID4gbWluSGlnaCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIHltZFRvU3RyaW5nKGNhbCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiIFJhbmdlIGZvciBtaW4gb2YgIiArIEZJRUxEX05BTUVbZl0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAiPSIgKyBtaW5Mb3cgKyAiLi4iICsgbWluSGlnaCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIsIGFjdHVhbF9taW49IiArIG1pbkFjdHVhbCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChtYXhBY3R1YWwgPCBtYXhMb3cgfHwgbWF4QWN0dWFsID4gbWF4SGlnaCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIHltZFRvU3RyaW5nKGNhbCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiIFJhbmdlIGZvciBtYXggb2YgIiArIEZJRUxEX05BTUVbZl0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAiPSIgKyBtYXhMb3cgKyAiLi4iICsgbWF4SGlnaCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIsIGFjdHVhbF9tYXg9IiArIG1heEFjdHVhbCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh2IDwgbWluQWN0dWFsIHx8IHYgPiBtYXhBY3R1YWwpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyB5bWRUb1N0cmluZyhjYWwpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiAiICsgRklFTERfTkFNRVtmXSArICI9IiArIHYgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiLCBhY3R1YWwgcmFuZ2U9IiArIG1pbkFjdHVhbCArICIuLiIgKyBtYXhBY3R1YWwgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiLCBhbGxvd2VkPSgiICsgbWluTG93ICsgIi4uIiArIG1pbkhpZ2ggKyAiKS4uKCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhMb3cgKyAiLi4iICsgbWF4SGlnaCArICIpIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZ3JlZy5hZGQoQ2FsZW5kYXIuREFZX09GX1lFQVIsIDEpOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ2hlY2sgYWN0dWFsIG1heGltYSBhbmQgbWluaW1hIHNlZW4gYWdhaW5zdCByYW5nZXMgcmV0dXJuZWQKKyAgICAgICAgLy8gYnkgQVBJLgorICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBqPTA7IGo8ZmllbGRzVG9UZXN0Lmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICBpbnQgZiA9IGZpZWxkc1RvVGVzdFtqXTsKKyAgICAgICAgICAgIGJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICBidWYuYXBwZW5kKEZJRUxEX05BTUVbZl0pOworICAgICAgICAgICAgSGFzaHRhYmxlW10gaCA9IGxpbWl0c1tqXTsKKyAgICAgICAgICAgIGJvb2xlYW4gZnVsbFJhbmdlU2VlbiA9IHRydWU7CisgICAgICAgICAgICBmb3IgKGludCBrPTA7IGs8MjsgKytrKSB7CisgICAgICAgICAgICAgICAgaW50IHJhbmdlTG93ID0gKGs9PTApID8KKyAgICAgICAgICAgICAgICAgICAgY2FsLmdldE1pbmltdW0oZikgOiBjYWwuZ2V0TGVhc3RNYXhpbXVtKGYpOworICAgICAgICAgICAgICAgIGludCByYW5nZUhpZ2ggPSAoaz09MCkgPworICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0R3JlYXRlc3RNaW5pbXVtKGYpIDogY2FsLmdldE1heGltdW0oZik7CisgICAgICAgICAgICAgICAgLy8gSWYgZWl0aGVyIHRoZSB0b3Agb2YgdGhlIHJhbmdlIG9yIHRoZSBib3R0b20gd2FzIG5ldmVyCisgICAgICAgICAgICAgICAgLy8gc2VlbiwgdGhlbiB0aGVyZSBtYXkgYmUgYSBwcm9ibGVtLgorICAgICAgICAgICAgICAgIGlmIChoW2tdLmdldChuZXcgSW50ZWdlcihyYW5nZUxvdykpID09IG51bGwgfHwKKyAgICAgICAgICAgICAgICAgICAgaFtrXS5nZXQobmV3IEludGVnZXIocmFuZ2VIaWdoKSkgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBmdWxsUmFuZ2VTZWVuID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoaz09MCA/ICIgbWluaW1hIHNlZW49KCIgOiAiOyBtYXhpbWEgc2Vlbj0oIik7CisgICAgICAgICAgICAgICAgZm9yIChFbnVtZXJhdGlvbiBlPWhba10ua2V5cygpOyBlLmhhc01vcmVFbGVtZW50cygpOyApIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHYgPSAoKEludGVnZXIpIGUubmV4dEVsZW1lbnQoKSkuaW50VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiICIgKyB2KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiKSByYW5nZT0iICsgcmFuZ2VMb3cgKyAiLi4iICsgcmFuZ2VIaWdoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChmdWxsUmFuZ2VTZWVuKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9LOiAiICsgYnVmLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBUaGlzIG1heSBvciBtYXkgbm90IGJlIGFuIGVycm9yIC0tIGlmIHRoZSByYW5nZSBvZiBkYXRlcworICAgICAgICAgICAgICAgIC8vIHdlIHNjYW4gb3ZlciBkb2Vzbid0IGhhcHBlbiB0byBjb250YWluIGEgbWluaW11bSBvcgorICAgICAgICAgICAgICAgIC8vIG1heGltdW0sIGl0IGRvZXNuJ3QgbWVhbiBzb21lIG90aGVyIHJhbmdlIHdvbid0LgorICAgICAgICAgICAgICAgIGxvZ2xuKCJXYXJuaW5nOiAiICsgYnVmLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgbG9nbG4oIkVuZDogIiArIGdyZWcuZ2V0VGltZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IHllYXIsbW9udGgsZGF5IHZhbHVlcyB0byB0aGUgZm9ybSAieWVhci9tb250aC9kYXkiLgorICAgICAqIE9uIGlucHV0IHRoZSBtb250aCB2YWx1ZSBpcyB6ZXJvLWJhc2VkLCBidXQgaW4gdGhlIHJlc3VsdCBzdHJpbmcgaXQgaXMgb25lLWJhc2VkLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgU3RyaW5nIHltZFRvU3RyaW5nKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXkpIHsKKyAgICAgICAgcmV0dXJuICIiICsgeWVhciArICIvIiArIChtb250aCsxKSArICIvIiArIGRheTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IHllYXIsbW9udGgsZGF5IHZhbHVlcyB0byB0aGUgZm9ybSAieWVhci9tb250aC9kYXkiLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgU3RyaW5nIHltZFRvU3RyaW5nKENhbGVuZGFyIGNhbCkgeworICAgICAgICBpZiAoY2FsIGluc3RhbmNlb2YgQ2hpbmVzZUNhbGVuZGFyKSB7CisgICAgICAgICAgICByZXR1cm4gIiIgKyBjYWwuZ2V0KENhbGVuZGFyLkVYVEVOREVEX1lFQVIpICsgIi8iICsKKyAgICAgICAgICAgICAgICAoY2FsLmdldChDYWxlbmRhci5NT05USCkrMSkgKworICAgICAgICAgICAgICAgIChjYWwuZ2V0KENoaW5lc2VDYWxlbmRhci5JU19MRUFQX01PTlRIKT09MT8iKGxlYXApIjoiIikgKyAiLyIgKworICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuREFURSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHltZFRvU3RyaW5nKGNhbC5nZXQoQ2FsZW5kYXIuRVhURU5ERURfWUVBUiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KE1PTlRIKSwgY2FsLmdldChEQVRFKSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0NoaW5lc2VUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvQ2hpbmVzZVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xYjc0MTE2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0NoaW5lc2VUZXN0LmphdmEKQEAgLTAsMCArMSw1MjYgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9DaGluZXNlVGVzdC5qYXZhLHYgJAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDU6MDUgJAorICogJFJldmlzaW9uOiAxLjkgJAorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKKy8qKgorICogVGVzdCBvZiBDaGluZXNlQ2FsZW5kYXIuCisgKgorICogTGVhcCBtb250aHMgaW4gdGhpcyBjZW50dXJ5OgorICogV2VkIE1heSAyMyAyMDAxID0gNDYzOC0wNCotMDEsIFllYXIgMTgsIEN5Y2xlIDc4CisgKiBTdW4gTWFyIDIxIDIwMDQgPSA0NjQxLTAyKi0wMSwgWWVhciAyMSwgQ3ljbGUgNzgKKyAqIFRodSBBdWcgMjQgMjAwNiA9IDQ2NDMtMDcqLTAxLCBZZWFyIDIzLCBDeWNsZSA3OAorICogVHVlIEp1biAyMyAyMDA5ID0gNDY0Ni0wNSotMDEsIFllYXIgMjYsIEN5Y2xlIDc4CisgKiBNb24gTWF5IDIxIDIwMTIgPSA0NjQ5LTA0Ki0wMSwgWWVhciAyOSwgQ3ljbGUgNzgKKyAqIEZyaSBPY3QgMjQgMjAxNCA9IDQ2NTEtMDkqLTAxLCBZZWFyIDMxLCBDeWNsZSA3OAorICogU3VuIEp1bCAyMyAyMDE3ID0gNDY1NC0wNiotMDEsIFllYXIgMzQsIEN5Y2xlIDc4CisgKiBTYXQgTWF5IDIzIDIwMjAgPSA0NjU3LTA0Ki0wMSwgWWVhciAzNywgQ3ljbGUgNzgKKyAqIFdlZCBNYXIgMjIgMjAyMyA9IDQ2NjAtMDIqLTAxLCBZZWFyIDQwLCBDeWNsZSA3OAorICogRnJpIEp1bCAyNSAyMDI1ID0gNDY2Mi0wNiotMDEsIFllYXIgNDIsIEN5Y2xlIDc4CisgKiBGcmkgSnVuIDIzIDIwMjggPSA0NjY1LTA1Ki0wMSwgWWVhciA0NSwgQ3ljbGUgNzgKKyAqIFR1ZSBBcHIgMjIgMjAzMSA9IDQ2NjgtMDMqLTAxLCBZZWFyIDQ4LCBDeWNsZSA3OAorICogVGh1IERlYyAyMiAyMDMzID0gNDY3MC0xMSotMDEsIFllYXIgNTAsIEN5Y2xlIDc4CisgKiBXZWQgSnVsIDIzIDIwMzYgPSA0NjczLTA2Ki0wMSwgWWVhciA1MywgQ3ljbGUgNzgKKyAqIFdlZCBKdW4gMjIgMjAzOSA9IDQ2NzYtMDUqLTAxLCBZZWFyIDU2LCBDeWNsZSA3OAorICogU2F0IE1hciAyMiAyMDQyID0gNDY3OS0wMiotMDEsIFllYXIgNTksIEN5Y2xlIDc4CisgKiBUdWUgQXVnIDIzIDIwNDQgPSA0NjgxLTA3Ki0wMSwgWWVhciAwMSwgQ3ljbGUgNzkKKyAqIFN1biBKdW4gMjMgMjA0NyA9IDQ2ODQtMDUqLTAxLCBZZWFyIDA0LCBDeWNsZSA3OQorICogVGh1IEFwciAyMSAyMDUwID0gNDY4Ny0wMyotMDEsIFllYXIgMDcsIEN5Y2xlIDc5CisgKiBNb24gU2VwIDIzIDIwNTIgPSA0Njg5LTA4Ki0wMSwgWWVhciAwOSwgQ3ljbGUgNzkKKyAqIFNhdCBKdWwgMjQgMjA1NSA9IDQ2OTItMDYqLTAxLCBZZWFyIDEyLCBDeWNsZSA3OQorICogV2VkIE1heSAyMiAyMDU4ID0gNDY5NS0wNCotMDEsIFllYXIgMTUsIEN5Y2xlIDc5CisgKiBXZWQgQXByIDIwIDIwNjEgPSA0Njk4LTAzKi0wMSwgWWVhciAxOCwgQ3ljbGUgNzkKKyAqIEZyaSBBdWcgMjQgMjA2MyA9IDQ3MDAtMDcqLTAxLCBZZWFyIDIwLCBDeWNsZSA3OQorICogV2VkIEp1biAyMyAyMDY2ID0gNDcwMy0wNSotMDEsIFllYXIgMjMsIEN5Y2xlIDc5CisgKiBUdWUgTWF5IDIxIDIwNjkgPSA0NzA2LTA0Ki0wMSwgWWVhciAyNiwgQ3ljbGUgNzkKKyAqIFRodSBTZXAgMjQgMjA3MSA9IDQ3MDgtMDgqLTAxLCBZZWFyIDI4LCBDeWNsZSA3OQorICogVHVlIEp1bCAyNCAyMDc0ID0gNDcxMS0wNiotMDEsIFllYXIgMzEsIEN5Y2xlIDc5CisgKiBTYXQgTWF5IDIyIDIwNzcgPSA0NzE0LTA0Ki0wMSwgWWVhciAzNCwgQ3ljbGUgNzkKKyAqIFNhdCBBcHIgMjAgMjA4MCA9IDQ3MTctMDMqLTAxLCBZZWFyIDM3LCBDeWNsZSA3OQorICogTW9uIEF1ZyAyNCAyMDgyID0gNDcxOS0wNyotMDEsIFllYXIgMzksIEN5Y2xlIDc5CisgKiBGcmkgSnVuIDIyIDIwODUgPSA0NzIyLTA1Ki0wMSwgWWVhciA0MiwgQ3ljbGUgNzkKKyAqIEZyaSBNYXkgMjEgMjA4OCA9IDQ3MjUtMDQqLTAxLCBZZWFyIDQ1LCBDeWNsZSA3OQorICogU3VuIFNlcCAyNCAyMDkwID0gNDcyNy0wOCotMDEsIFllYXIgNDcsIEN5Y2xlIDc5CisgKiBUaHUgSnVsIDIzIDIwOTMgPSA0NzMwLTA2Ki0wMSwgWWVhciA1MCwgQ3ljbGUgNzkKKyAqIFR1ZSBNYXkgMjIgMjA5NiA9IDQ3MzMtMDQqLTAxLCBZZWFyIDUzLCBDeWNsZSA3OQorICogU3VuIE1hciAyMiAyMDk5ID0gNDczNi0wMiotMDEsIFllYXIgNTYsIEN5Y2xlIDc5CisgKi8KK3B1YmxpYyBjbGFzcyBDaGluZXNlVGVzdCBleHRlbmRzIENhbGVuZGFyVGVzdCB7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IENoaW5lc2VUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgYmFzaWMgbWFwcGluZyB0byBhbmQgZnJvbSBHcmVnb3JpYW4uCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdE1hcHBpbmcoKSB7CisKKyAgICAgICAgZmluYWwgaW50W10gREFUQSA9IHsKKyAgICAgICAgICAgIC8vIChOb3RlOiBtb250aHMgYXJlIDEtYmFzZWQpCisgICAgICAgICAgICAvLyBHcmVnb3JpYW4gICAgQ2hpbmVzZQorICAgICAgICAgICAgMTk2NCwgIDksICA0LCAgIDQ2MDEsICA3LDAsIDI4LAorICAgICAgICAgICAgMTk2NCwgIDksICA1LCAgIDQ2MDEsICA3LDAsIDI5LAorICAgICAgICAgICAgMTk2NCwgIDksICA2LCAgIDQ2MDEsICA4LDAsICAxLAorICAgICAgICAgICAgMTk2NCwgIDksICA3LCAgIDQ2MDEsICA4LDAsICAyLAorICAgICAgICAgICAgMTk2MSwgMTIsIDI1LCAgIDQ1OTgsIDExLDAsIDE4LAorICAgICAgICAgICAgMTk5OSwgIDYsICA0LCAgIDQ2MzYsICA0LDAsIDIxLAorICAgICAgICAgICAgCisgICAgICAgICAgICAxOTkwLCAgNSwgMjMsICAgNDYyNywgIDQsMCwgMjksCisgICAgICAgICAgICAxOTkwLCAgNSwgMjQsICAgNDYyNywgIDUsMCwgIDEsCisgICAgICAgICAgICAxOTkwLCAgNiwgMjIsICAgNDYyNywgIDUsMCwgMzAsCisgICAgICAgICAgICAxOTkwLCAgNiwgMjMsICAgNDYyNywgIDUsMSwgIDEsCisgICAgICAgICAgICAxOTkwLCAgNywgMjAsICAgNDYyNywgIDUsMSwgMjgsCisgICAgICAgICAgICAxOTkwLCAgNywgMjEsICAgNDYyNywgIDUsMSwgMjksCisgICAgICAgICAgICAxOTkwLCAgNywgMjIsICAgNDYyNywgIDYsMCwgIDEsCisgICAgICAgIH07CisKKyAgICAgICAgQ2hpbmVzZUNhbGVuZGFyIGNhbCA9IG5ldyBDaGluZXNlQ2FsZW5kYXIoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICBsb2dsbigiR3JlZ29yaWFuIC0+IENoaW5lc2UiKTsKKyAgICAgICAgamF2YS51dGlsLkNhbGVuZGFyIHRlbXBjYWwgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgdGVtcGNhbC5jbGVhcigpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7ICkgeworICAgICAgICAgICAgdGVtcGNhbC5zZXQoREFUQVtpKytdLCBEQVRBW2krK10tMSwgREFUQVtpKytdKTsKKyAgICAgICAgICAgIERhdGUgZGF0ZSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICAgICAgY2FsLnNldFRpbWUoZGF0ZSk7CisgICAgICAgICAgICBpbnQgeSA9IGNhbC5nZXQoQ2FsZW5kYXIuRVhURU5ERURfWUVBUik7CisgICAgICAgICAgICBpbnQgbSA9IGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpKzE7IC8vIDAtYmFzZWQgLT4gMS1iYXNlZAorICAgICAgICAgICAgaW50IEwgPSBjYWwuZ2V0KENoaW5lc2VDYWxlbmRhci5JU19MRUFQX01PTlRIKTsKKyAgICAgICAgICAgIGludCBkID0gY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpOworICAgICAgICAgICAgaW50IHlFID0gREFUQVtpKytdOyAvLyBFeHBlY3RlZCB5LCBtLCBpc0xlYXBNb250aCwgZAorICAgICAgICAgICAgaW50IG1FID0gREFUQVtpKytdOyAvLyAxLWJhc2VkCisgICAgICAgICAgICBpbnQgTEUgPSBEQVRBW2krK107CisgICAgICAgICAgICBpbnQgZEUgPSBEQVRBW2krK107CisgICAgICAgICAgICBidWYuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgYnVmLmFwcGVuZChkYXRlICsgIiAtPiAiKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoeSArICIvIiArIG0gKyAoTD09MT8iKGxlYXApIjoiIikgKyAiLyIgKyBkKTsKKyAgICAgICAgICAgIGlmICh5ID09IHlFICYmIG0gPT0gbUUgJiYgTCA9PSBMRSAmJiBkID09IGRFKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9LOiAiICsgYnVmLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIGJ1Zi50b1N0cmluZygpICsgIiwgZXhwZWN0ZWQgIiArCisgICAgICAgICAgICAgICAgICAgICAgeUUgKyAiLyIgKyBtRSArIChMRT09MT8iKGxlYXApIjoiIikgKyAiLyIgKyBkRSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBsb2dsbigiQ2hpbmVzZSAtPiBHcmVnb3JpYW4iKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyApIHsKKyAgICAgICAgICAgIHRlbXBjYWwuc2V0KERBVEFbaSsrXSwgREFUQVtpKytdLTEsIERBVEFbaSsrXSk7CisgICAgICAgICAgICBEYXRlIGRleHAgPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgIGludCBjeWVhciA9IERBVEFbaSsrXTsKKyAgICAgICAgICAgIGludCBjbW9udGggPSBEQVRBW2krK107CisgICAgICAgICAgICBpbnQgY2lzbGVhcG1vbnRoID0gREFUQVtpKytdOworICAgICAgICAgICAgaW50IGNkYXlvZm1vbnRoID0gREFUQVtpKytdOworICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkVYVEVOREVEX1lFQVIsIGN5ZWFyKTsKKyAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTU9OVEgsIGNtb250aC0xKTsKKyAgICAgICAgICAgIGNhbC5zZXQoQ2hpbmVzZUNhbGVuZGFyLklTX0xFQVBfTU9OVEgsIGNpc2xlYXBtb250aCk7CisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCwgY2RheW9mbW9udGgpOworICAgICAgICAgICAgRGF0ZSBkYXRlID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgIGJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICBidWYuYXBwZW5kKGN5ZWFyICsgIi8iICsgY21vbnRoICsKKyAgICAgICAgICAgICAgICAgICAgICAgKGNpc2xlYXBtb250aD09MT8iKGxlYXApIjoiIikgKyAiLyIgKyBjZGF5b2Ztb250aCk7CisgICAgICAgICAgICBidWYuYXBwZW5kKCIgLT4gIiArIGRhdGUpOworICAgICAgICAgICAgaWYgKGRhdGUuZXF1YWxzKGRleHApKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9LOiAiICsgYnVmLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIGJ1Zi50b1N0cmluZygpICsgIiwgZXhwZWN0ZWQgIiArIGRleHApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTWFrZSBzdXJlIG5vIEdyZWdvcmlhbiBkYXRlcyBtYXAgdG8gQ2hpbmVzZSAxLWJhc2VkIGRheSBvZgorICAgICAqIG1vbnRoIHplcm8uICBUaGlzIHdhcyBhIHByb2JsZW0gd2l0aCBzb21lIG9mIHRoZSBhc3Ryb25vbWljYWwKKyAgICAgKiBuZXcgbW9vbiBkZXRlcm1pbmF0aW9ucy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0WmVyb0RPTSgpIHsKKyAgICAgICAgQ2hpbmVzZUNhbGVuZGFyIGNhbCA9IG5ldyBDaGluZXNlQ2FsZW5kYXIoKTsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZ3JlZyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigxOTg5LCBDYWxlbmRhci5TRVBURU1CRVIsIDEpOworICAgICAgICBsb2dsbigiU3RhcnQ6ICIgKyBncmVnLmdldFRpbWUoKSk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTwxMDAwOyArK2kpIHsKKyAgICAgICAgICAgIGNhbC5zZXRUaW1lSW5NaWxsaXMoZ3JlZy5nZXRUaW1lSW5NaWxsaXMoKSk7CisgICAgICAgICAgICBpZiAoY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpID09IDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIGdyZWcuZ2V0VGltZSgpICsgIiAtPiAiICsKKyAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLkVYVEVOREVEX1lFQVIpICsgIi8iICsKKyAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSArCisgICAgICAgICAgICAgICAgICAgICAgKGNhbC5nZXQoQ2hpbmVzZUNhbGVuZGFyLklTX0xFQVBfTU9OVEgpPT0xPyIobGVhcCkiOiIiKSArCisgICAgICAgICAgICAgICAgICAgICAgIi8iICsgY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGdyZWcuYWRkKENhbGVuZGFyLkRBWV9PRl9ZRUFSLCAxKTsKKyAgICAgICAgfQorICAgICAgICBsb2dsbigiRW5kOiAiICsgZ3JlZy5nZXRUaW1lKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgbWluaW11bSBhbmQgbWF4aW11bSBmdW5jdGlvbnMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdExpbWl0cygpIHsKKyAgICAgICAgLy8gVGhlIG51bWJlciBvZiBkYXlzIGFuZCB0aGUgc3RhcnQgZGF0ZSBjYW4gYmUgYWRqdXN0ZWQKKyAgICAgICAgLy8gYXJiaXRyYXJpbHkgdG8gZWl0aGVyIHNwZWVkIHVwIHRoZSB0ZXN0IG9yIG1ha2UgaXQgbW9yZQorICAgICAgICAvLyB0aG9yb3VnaCwgYnV0IHRyeSB0byB0ZXN0IGF0IGxlYXN0IGEgZnVsbCB5ZWFyLCBwcmVmZXJhYmx5IGEKKyAgICAgICAgLy8gZnVsbCBub24tbGVhcCBhbmQgYSBmdWxsIGxlYXAgeWVhci4KKworICAgICAgICAvLyBGaW5hbCBwYXJhbWV0ZXIgaXMgZWl0aGVyIG51bWJlciBvZiBkYXlzLCBpZiA+IDAsIG9yIHRlc3QKKyAgICAgICAgLy8gZHVyYXRpb24gaW4gc2Vjb25kcywgaWYgPCAwLgorICAgICAgICBqYXZhLnV0aWwuQ2FsZW5kYXIgdGVtcGNhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5ODksIENhbGVuZGFyLk5PVkVNQkVSLCAxKTsKKyAgICAgICAgZG9MaW1pdHNUZXN0KG5ldyBDaGluZXNlQ2FsZW5kYXIoKSwgbnVsbCwgdGVtcGNhbC5nZXRUaW1lKCksIC0xMCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUnVuIHRocm91Z2ggc2V2ZXJhbCBzdGFuZGFyZCB0ZXN0cyBmcm9tIERlcnNob3dpdHogJiBSZWluZ29sZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SnVsaWFuRGF5TWFwcGluZygpIHsKKworICAgICAgICBmaW5hbCBUZXN0Q2FzZVtdIHRlc3RzID0geworICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIEZyb20gRGVyc2hvd2l0eiAmIFJlaW5nb2xkLCAiQ2FsZW5kcmljYWwgQ2FsY3VsYXRpb25zIi4KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBUaGUgbW9udGhzIGluIHRoaXMgdGFibGUgYXJlIDEtYmFzZWQgcmF0aGVyIHRoYW4gMC1iYXNlZC4KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyAqIEZhaWxpbmcgZmllbGRzLT5taWxsaXMKKyAgICAgICAgICAgIC8vICoqIE1pbGxpcy0+ZmllbGRzIGdpdmVzIDAtYmFzZWQgbW9udGggLTEKKyAgICAgICAgICAgIC8vIFRoZXNlIGZhaWx1cmVzIHdlcmUgZml4ZWQgYnkgY2hhbmdpbmcgdGhlIHN0YXJ0IHNlYXJjaCBkYXRlCisgICAgICAgICAgICAvLyBmb3IgdGhlIHdpbnRlciBzb2xzdGljZSBmcm9tIERlYyAxNSB0byBEZWMgMS4KKyAgICAgICAgICAgIC8vIAorICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICBKdWxpYW4gRGF5ICAgRXJhICBZZWFyIE1vbnRoICBMZWFwICAgRE9NIFdrRGF5CisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDE1MDcyMzEuNSwgICAzNSwgICAxMSwgICAgNiwgZmFsc2UsICAgMTIsICBTVU4pLAorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgxNjYwMDM3LjUsICAgNDIsICAgIDksICAgMTAsIGZhbHNlLCAgIDI3LCAgV0VEKSwKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMTc0Njg5My41LCAgIDQ2LCAgICA3LCAgICA4LCBmYWxzZSwgICAgNCwgIFdFRCksCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDE3NzA2NDEuNSwgICA0NywgICAxMiwgICAgOCwgZmFsc2UsICAgIDksICBTVU4pLAorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgxODkyNzMxLjUsICAgNTIsICAgNDYsICAgMTEsIGZhbHNlLCAgIDIwLCAgV0VEKSwKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMTkzMTU3OS41LCAgIDU0LCAgIDMzLCAgICA0LCBmYWxzZSwgICAgNSwgIE1PTiksCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDE5NzQ4NTEuNSwgICA1NiwgICAzMSwgICAxMCwgZmFsc2UsICAgMTUsICBTQVQpLAorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgyMDkxMTY0LjUsICAgNjEsICAgNTAsICAgIDMsIGZhbHNlLCAgICA3LCAgU1VOKSwKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjEyMTUwOS41LCAgIDYzLCAgIDEzLCAgICA0LCBmYWxzZSwgICAyNCwgIFNVTiksCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDIxNTU3NzkuNSwgICA2NCwgICA0NywgICAgMiwgZmFsc2UsICAgIDksICBGUkkpLAorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgyMTc0MDI5LjUsICAgNjUsICAgMzcsICAgIDIsIGZhbHNlLCAgICA5LCAgU0FUKSwKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjE5MTU4NC41LCAgIDY2LCAgIDI1LCAgICAyLCBmYWxzZSwgICAyMywgIEZSSSksCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDIxOTUyNjEuNSwgICA2NiwgICAzNSwgICAgMywgZmFsc2UsICAgIDksICBTVU4pLCAvLyoKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjIyOTI3NC41LCAgIDY4LCAgICA4LCAgICA1LCBmYWxzZSwgICAgMiwgIFNVTiksIC8vKgorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgyMjQ1NTgwLjUsICAgNjgsICAgNTMsICAgIDEsIGZhbHNlLCAgICA4LCAgV0VEKSwgLy8qKgorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgyMjY2MTAwLjUsICAgNjksICAgNDksICAgIDMsIGZhbHNlLCAgICA0LCAgU0FUKSwgCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDIyODg1NDIuNSwgICA3MCwgICA1MCwgICAgOCwgZmFsc2UsICAgIDIsICBTQVQpLCAvLyoKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjI5MDkwMS41LCAgIDcwLCAgIDU3LCAgICAxLCBmYWxzZSwgICAyOSwgIFNBVCksIC8vKgorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgyMzIzMTQwLjUsICAgNzIsICAgMjUsICAgIDQsICB0cnVlLCAgIDIwLCAgV0VEKSwgLy8qCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDIzMzQ4NDguNSwgICA3MiwgICA1NywgICAgNiwgZmFsc2UsICAgIDUsICBTVU4pLAorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgyMzQ4MDIwLjUsICAgNzMsICAgMzMsICAgIDYsIGZhbHNlLCAgICA2LCAgRlJJKSwKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjM2Njk3OC41LCAgIDc0LCAgIDI1LCAgICA1LCBmYWxzZSwgICAgNSwgIFNVTiksCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDIzODU2NDguNSwgICA3NSwgICAxNiwgICAgNiwgZmFsc2UsICAgMTIsICBNT04pLAorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgyMzkyODI1LjUsICAgNzUsICAgMzYsICAgIDIsIGZhbHNlLCAgIDEzLCAgV0VEKSwKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjQxNjIyMy41LCAgIDc2LCAgIDQwLCAgICAzLCBmYWxzZSwgICAyMiwgIFNVTiksCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDI0MjU4NDguNSwgICA3NywgICAgNiwgICAgNywgZmFsc2UsICAgMjEsICBTVU4pLAorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgyNDMwMjY2LjUsICAgNzcsICAgMTgsICAgIDgsIGZhbHNlLCAgICA5LCAgTU9OKSwKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjQzMDgzMy41LCAgIDc3LCAgIDIwLCAgICAzLCBmYWxzZSwgICAxNSwgIE1PTiksCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDI0MzEwMDQuNSwgICA3NywgICAyMCwgICAgOSwgZmFsc2UsICAgIDksICBUSFUpLAorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgyNDQ4Njk4LjUsICAgNzgsICAgIDksICAgIDIsIGZhbHNlLCAgIDE0LCAgVFVFKSwKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjQ1MDEzOC41LCAgIDc4LCAgIDEzLCAgICAxLCBmYWxzZSwgICAgNywgIFNVTiksCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDI0NjU3MzcuNSwgICA3OCwgICA1NSwgICAxMCwgZmFsc2UsICAgMTQsICBXRUQpLAorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgyNDg2MDc2LjUsICAgNzksICAgNTEsICAgIDYsIGZhbHNlLCAgICA3LCAgU1VOKSwKKworICAgICAgICAgICAgLy8gQWRkaXRpb25hbCB0ZXN0cyBub3QgZnJvbSBEJlIKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjQ2NzQ5Ni41LCAgIDc4LCAgIDYwLCAgICA4LCBmYWxzZSwgICAgMiwgIEZSSSksIC8vIHllYXIgNjAKKyAgICAgICAgfTsKKworICAgICAgICBDaGluZXNlQ2FsZW5kYXIgY2FsID0gbmV3IENoaW5lc2VDYWxlbmRhcigpOworICAgICAgICBjYWwuc2V0TGVuaWVudCh0cnVlKTsKKyAgICAgICAgZG9UZXN0Q2FzZXModGVzdHMsIGNhbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBmb3JtYXR0aW5nLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RGb3JtYXQoKSB7CisgICAgICAgIENoaW5lc2VDYWxlbmRhciBjYWwgPSBuZXcgQ2hpbmVzZUNhbGVuZGFyKCk7CisgICAgICAgIERhdGVGb3JtYXQgZm10ID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKGNhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGVGb3JtYXQuREVGQVVMVCwgRGF0ZUZvcm1hdC5ERUZBVUxUKTsKKworICAgICAgICBqYXZhLnV0aWwuQ2FsZW5kYXIgdGVtcGNhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIAorICAgICAgICBEYXRlW10gREFUQSA9IG5ldyBEYXRlWzJdOworICAgICAgICB0ZW1wY2FsLnNldCgyMDAxLCBDYWxlbmRhci5NQVksIDIyKTsKKyAgICAgICAgREFUQVswXSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldCgyMDAxLCBDYWxlbmRhci5NQVksIDIzKTsKKyAgICAgICAgREFUQVsxXSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICAvLyBXZWQgTWF5IDIzIDIwMDEgPSBNb250aCA0KGxlYXApLCBEYXkgMSwgWWVhciAxOCwgQ3ljbGUgNzgKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgcyA9IGZtdC5mb3JtYXQoREFUQVtpXSk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIERhdGUgZSA9IGZtdC5wYXJzZShzKTsKKyAgICAgICAgICAgICAgICBpZiAoZS5lcXVhbHMoREFUQVtpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgREFUQVtpXSArICIgLT4gIiArIHMgKyAiIC0+ICIgKyBlKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIERBVEFbaV0gKyAiIC0+ICIgKyBzICsgIiAtPiAiICsgZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIHMgKyAiIC0+IHBhcnNlIGZhaWx1cmUgYXQgIiArIGUuZ2V0RXJyb3JPZmZzZXQoKSk7CisgICAgICAgICAgICAgICAgZXJybG4oZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE1ha2Ugc3VyZSBJU19MRUFQX01PTlRIIHBhcnRpY2lwYXRlcyBpbiBmaWVsZCByZXNvbHV0aW9uLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RSZXNvbHV0aW9uKCkgeworICAgICAgICBDaGluZXNlQ2FsZW5kYXIgY2FsID0gbmV3IENoaW5lc2VDYWxlbmRhcigpOworICAgICAgICBEYXRlRm9ybWF0IGZtdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKGNhbCwgRGF0ZUZvcm1hdC5ERUZBVUxUKTsKKworICAgICAgICAvLyBNYXkgMjIgMjAwMSA9IHk0NjM4IG00IGQzMCBkb3kxMTkKKyAgICAgICAgLy8gTWF5IDIzIDIwMDEgPSB5NDYzOCBtNCogZDEgZG95MTIwCisKKyAgICAgICAgZmluYWwgaW50IFRIRV9ZRUFSID0gNDYzODsKKyAgICAgICAgZmluYWwgaW50IEVORCA9IC0xOworCisgICAgICAgIGludFtdIERBVEEgPSB7CisgICAgICAgICAgICAvLyBGb3JtYXQ6CisgICAgICAgICAgICAvLyAoZmllbGQsIHZhbHVlKSssIEVORCwgZXhwLm1vbnRoLCBleHAuaXNMZWFwTW9udGgsIGV4cC5ET00KKyAgICAgICAgICAgIC8vIE5vdGU6IGV4cC5tb250aCBpcyBPTkUtQkFTRUQKKworICAgICAgICAgICAgLy8gSWYgd2Ugc2V0IERBWV9PRl9ZRUFSIG9ubHksIHRoYXQgc2hvdWxkIGJlIHVzZWQKKyAgICAgICAgICAgIENhbGVuZGFyLkRBWV9PRl9ZRUFSLCAxLAorICAgICAgICAgICAgRU5ELAorICAgICAgICAgICAgMSwwLDEsIC8vIEV4cGVjdCAxLTEKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gSWYgd2Ugc2V0IE1PTlRIIG9ubHksIHRoYXQgc2hvdWxkIGJlIHVzZWQKKyAgICAgICAgICAgIENoaW5lc2VDYWxlbmRhci5JU19MRUFQX01PTlRILCAxLAorICAgICAgICAgICAgQ2FsZW5kYXIuREFZX09GX01PTlRILCAxLAorICAgICAgICAgICAgQ2FsZW5kYXIuTU9OVEgsIDMsCisgICAgICAgICAgICBFTkQsCisgICAgICAgICAgICA0LDEsMSwgLy8gRXhwZWN0IDQqLTEKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gSWYgd2Ugc2V0IHRoZSBET1kgbGFzdCwgdGhhdCBzaG91bGQgdGFrZSBwcmVjZWRlbmNlCisgICAgICAgICAgICBDYWxlbmRhci5NT05USCwgMSwgLy8gU2hvdWxkIGlnbm9yZQorICAgICAgICAgICAgQ2hpbmVzZUNhbGVuZGFyLklTX0xFQVBfTU9OVEgsIDEsIC8vIFNob3VsZCBpZ25vcmUKKyAgICAgICAgICAgIENhbGVuZGFyLkRBWV9PRl9NT05USCwgMSwgLy8gU2hvdWxkIGlnbm9yZQorICAgICAgICAgICAgQ2FsZW5kYXIuREFZX09GX1lFQVIsIDEyMSwKKyAgICAgICAgICAgIEVORCwKKyAgICAgICAgICAgIDQsMSwyLCAvLyBFeHBlY3QgNCotMgorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBJJ3ZlIGRpc2FibGVkIHRoaXMgdGVzdCBiZWNhdXNlIGl0IGRvZXNuJ3Qgd29yayB0aGlzIHdheSwKKyAgICAgICAgICAgIC8vIG5vdCBldmVuIHdpdGggYSBHcmVnb3JpYW5DYWxlbmRhciEgIE1PTlRIIGFsb25lIGlzbid0IGVub3VnaAorICAgICAgICAgICAgLy8gdG8gc3VwZXJzZWRlIERBWV9PRl9ZRUFSLiAgU29tZSBvdGhlciBtb250aC1yZWxhdGVkIGZpZWxkIGlzCisgICAgICAgICAgICAvLyBhbHNvIHJlcXVpcmVkLiAtIExpdSAxMS8yOC8wMAorICAgICAgICAgICAgLy8hIC8vIElmIHdlIHNldCBNT05USCBsYXN0LCB0aGF0IHNob3VsZCB0YWtlIHByZWNlZGVuY2UKKyAgICAgICAgICAgIC8vISBDaGluZXNlQ2FsZW5kYXIuSVNfTEVBUF9NT05USCwgMSwKKyAgICAgICAgICAgIC8vISBDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIDEsCisgICAgICAgICAgICAvLyEgQ2FsZW5kYXIuREFZX09GX1lFQVIsIDUsIC8vIFNob3VsZCBpZ25vcmUKKyAgICAgICAgICAgIC8vISBDYWxlbmRhci5NT05USCwgMywKKyAgICAgICAgICAgIC8vISBFTkQsCisgICAgICAgICAgICAvLyEgNCwxLDEsIC8vIEV4cGVjdCA0Ki0xCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIElmIHdlIHNldCBJU19MRUFQX01PTlRIIGxhc3QsIHRoYXQgc2hvdWxkIHRha2UgcHJlY2VkZW5jZQorICAgICAgICAgICAgQ2FsZW5kYXIuTU9OVEgsIDMsCisgICAgICAgICAgICBDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIDEsCisgICAgICAgICAgICBDYWxlbmRhci5EQVlfT0ZfWUVBUiwgNSwgLy8gU2hvdWxkIGlnbm9yZQorICAgICAgICAgICAgQ2hpbmVzZUNhbGVuZGFyLklTX0xFQVBfTU9OVEgsIDEsCisgICAgICAgICAgICBFTkQsCisgICAgICAgICAgICA0LDEsMSwgLy8gRXhwZWN0IDQqLTEKKyAgICAgICAgfTsKKworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7ICkgeworICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkVYVEVOREVEX1lFQVIsIFRIRV9ZRUFSKTsKKyAgICAgICAgICAgIGJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICBidWYuYXBwZW5kKCJFWFRFTkRFRF9ZRUFSPSIgKyBUSEVfWUVBUik7CisgICAgICAgICAgICB3aGlsZSAoREFUQVtpXSAhPSBFTkQpIHsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KERBVEFbaSsrXSwgREFUQVtpKytdKTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCIgIiArIGZpZWxkTmFtZShEQVRBW2ktMl0pICsgIj0iICsgREFUQVtpLTFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICsraTsgLy8gU2tpcCBvdmVyIEVORCBtYXJrCisgICAgICAgICAgICBpbnQgZXhwTW9udGggPSBEQVRBW2krK10tMTsKKyAgICAgICAgICAgIGludCBleHBJc0xlYXBNb250aCA9IERBVEFbaSsrXTsKKyAgICAgICAgICAgIGludCBleHBET00gPSBEQVRBW2krK107CisgICAgICAgICAgICBpbnQgbW9udGggPSBjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKTsKKyAgICAgICAgICAgIGludCBpc0xlYXBNb250aCA9IGNhbC5nZXQoQ2hpbmVzZUNhbGVuZGFyLklTX0xFQVBfTU9OVEgpOworICAgICAgICAgICAgaW50IGRvbSA9IGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKTsKKyAgICAgICAgICAgIGlmIChleHBNb250aCA9PSBtb250aCAmJiBleHBJc0xlYXBNb250aCA9PSBpc0xlYXBNb250aCAmJgorICAgICAgICAgICAgICAgIGRvbSA9PSBleHBET00pIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT0s6ICIgKyBidWYgKyAiID0+ICIgKyBmbXQuZm9ybWF0KGNhbC5nZXRUaW1lKCkpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHMgPSBmbXQuZm9ybWF0KGNhbC5nZXRUaW1lKCkpOworICAgICAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuRVhURU5ERURfWUVBUiwgVEhFX1lFQVIpOworICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTU9OVEgsIGV4cE1vbnRoKTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KENoaW5lc2VDYWxlbmRhci5JU19MRUFQX01PTlRILCBleHBJc0xlYXBNb250aCk7CisgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIGV4cERPTSk7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyBidWYgKyAiID0+ICIgKyBzICsKKyAgICAgICAgICAgICAgICAgICAgICAiPSIgKyAobW9udGgrMSkgKyAiLCIgKyBpc0xlYXBNb250aCArICIsIiArIGRvbSArCisgICAgICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQgIiArIGZtdC5mb3JtYXQoY2FsLmdldFRpbWUoKSkgKworICAgICAgICAgICAgICAgICAgICAgICI9IiArIChleHBNb250aCsxKSArICIsIiArIGV4cElzTGVhcE1vbnRoICsgIiwiICsgZXhwRE9NKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlIGJlaGF2aW9yIG9mIGZpZWxkcyB0aGF0IGFyZSBvdXQgb2YgcmFuZ2UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdE91dE9mUmFuZ2UoKSB7CisgICAgICAgIGludFtdIERBVEEgPSBuZXcgaW50W10geworICAgICAgICAgICAgLy8gSW5wdXQgICAgICAgT3V0cHV0CisgICAgICAgICAgICA0NjM4LCAxMywgIDEsICAgNDYzOSwgIDEsICAxLAorICAgICAgICAgICAgNDYzOCwgMTgsICAxLCAgIDQ2MzksICA2LCAgMSwKKyAgICAgICAgICAgIDQ2MzksICAwLCAgMSwgICA0NjM4LCAxMiwgIDEsCisgICAgICAgICAgICA0NjM5LCAtNiwgIDEsICAgNDYzOCwgIDYsICAxLAorICAgICAgICAgICAgNDYzOCwgIDEsIDMyLCAgIDQ2MzgsICAyLCAgMiwgLy8gMS00NjM4IGhhcyAzMCBkYXlzCisgICAgICAgICAgICA0NjM4LCAgMiwgLTEsICAgNDYzOCwgIDEsIDI5LAorICAgICAgICB9OworICAgICAgICBDaGluZXNlQ2FsZW5kYXIgY2FsID0gbmV3IENoaW5lc2VDYWxlbmRhcigpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7ICkgeworICAgICAgICAgICAgaW50IHkxID0gREFUQVtpKytdOworICAgICAgICAgICAgaW50IG0xID0gREFUQVtpKytdLTE7CisgICAgICAgICAgICBpbnQgZDEgPSBEQVRBW2krK107CisgICAgICAgICAgICBpbnQgeTIgPSBEQVRBW2krK107CisgICAgICAgICAgICBpbnQgbTIgPSBEQVRBW2krK10tMTsKKyAgICAgICAgICAgIGludCBkMiA9IERBVEFbaSsrXTsKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5FWFRFTkRFRF9ZRUFSLCB5MSk7CisgICAgICAgICAgICBjYWwuc2V0KE1PTlRILCBtMSk7CisgICAgICAgICAgICBjYWwuc2V0KERBVEUsIGQxKTsKKyAgICAgICAgICAgIGludCB5ID0gY2FsLmdldChDYWxlbmRhci5FWFRFTkRFRF9ZRUFSKTsKKyAgICAgICAgICAgIGludCBtID0gY2FsLmdldChNT05USCk7CisgICAgICAgICAgICBpbnQgZCA9IGNhbC5nZXQoREFURSk7CisgICAgICAgICAgICBpZiAoeSE9eTIgfHwgbSE9bTIgfHwgZCE9ZDIpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIHkxICsgIi8iICsgKG0xKzEpICsgIi8iICsgZDEgKyAiIHJlc29sdmVzIHRvICIgKworICAgICAgICAgICAgICAgICAgICAgIHkgKyAiLyIgKyAobSsxKSArICIvIiArIGQgKyAiLCBleHBlY3RlZCAiICsKKyAgICAgICAgICAgICAgICAgICAgICB5MiArICIvIiArIChtMisxKSArICIvIiArIGQyKTsKKyAgICAgICAgICAgIH0gZWxzZSAgaWYgKGlzVmVyYm9zZSgpKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9LOiAiICsgeTEgKyAiLyIgKyAobTErMSkgKyAiLyIgKyBkMSArICIgcmVzb2x2ZXMgdG8gIiArCisgICAgICAgICAgICAgICAgICAgICAgeSArICIvIiArIChtKzEpICsgIi8iICsgZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBiZWhhdmlvciBvZiBDaGluZXNlQ2FsZW5kYXIuYWRkKCkuICBUaGUgb25seSByZWFsCisgICAgICogbmFzdGluZXNzIHdpdGggcm9sbCBpcyB0aGUgTU9OVEggZmllbGQgYXJvdW5kIGxlYXAgbW9udGhzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RBZGQoKSB7CisgICAgICAgIGludFtdW10gdGVzdHMgPSBuZXcgaW50W11bXSB7CisgICAgICAgICAgICAvLyBNT05USFMgQVJFIDEtQkFTRUQgSEVSRQorICAgICAgICAgICAgLy8gaW5wdXQgICAgICAgICAgICAgICBhZGQgICAgICAgICAgIG91dHB1dAorICAgICAgICAgICAgLy8geWVhciAgbW9uICAgIGRheSAgICBmaWVsZCBhbW91bnQgIHllYXIgIG1vbiAgICBkYXkKKyAgICAgICAgICAgIHsgIDQ2NDIsICAgMywwLCAgMTUsICAgTU9OVEgsICAgMywgICA0NjQyLCAgIDYsMCwgIDE1IH0sIC8vIG5vcm1hbAorICAgICAgICAgICAgeyAgNDYzOSwgIDEyLDAsICAxNSwgICBNT05USCwgICAxLCAgIDQ2NDAsICAgMSwwLCAgMTUgfSwgLy8gYWNyb3NzIHllYXIKKyAgICAgICAgICAgIHsgIDQ2NDAsICAgMSwwLCAgMTUsICAgTU9OVEgsICAtMSwgICA0NjM5LCAgMTIsMCwgIDE1IH0sIC8vIGFjcm9zcyB5ZWFyCisgICAgICAgICAgICB7ICA0NjM4LCAgIDMsMCwgIDE1LCAgIE1PTlRILCAgIDMsICAgNDYzOCwgICA1LDAsICAxNSB9LCAvLyA0PWxlYXAKKyAgICAgICAgICAgIHsgIDQ2MzgsICAgMywwLCAgMTUsICAgTU9OVEgsICAgMiwgICA0NjM4LCAgIDQsMSwgIDE1IH0sIC8vIDQ9bGVhcAorICAgICAgICAgICAgeyAgNDYzOCwgICA0LDAsICAxNSwgICBNT05USCwgICAxLCAgIDQ2MzgsICAgNCwxLCAgMTUgfSwgLy8gND1sZWFwCisgICAgICAgICAgICB7ICA0NjM4LCAgIDQsMSwgIDE1LCAgIE1PTlRILCAgIDEsICAgNDYzOCwgICA1LDAsICAxNSB9LCAvLyA0PWxlYXAKKyAgICAgICAgICAgIHsgIDQ2MzgsICAgNCwwLCAgMzAsICAgTU9OVEgsICAgMSwgICA0NjM4LCAgIDQsMSwgIDI5IH0sIC8vIGRvbSBzaG91bGQgcGluCisgICAgICAgICAgICB7ICA0NjM4LCAgIDQsMCwgIDMwLCAgIE1PTlRILCAgIDIsICAgNDYzOCwgICA1LDAsICAzMCB9LCAvLyBubyBkb20gcGluCisgICAgICAgICAgICB7ICA0NjM4LCAgIDQsMCwgIDMwLCAgIE1PTlRILCAgIDMsICAgNDYzOCwgICA2LDAsICAyOSB9LCAvLyBkb20gc2hvdWxkIHBpbgorICAgICAgICB9OworICAgICAgIAorICAgICAgICBDaGluZXNlQ2FsZW5kYXIgY2FsID0gbmV3IENoaW5lc2VDYWxlbmRhcigpOworICAgICAgICBkb1JvbGxBZGQoQURELCBjYWwsIHRlc3RzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBiZWhhdmlvciBvZiBDaGluZXNlQ2FsZW5kYXIucm9sbCgpLiAgVGhlIG9ubHkgcmVhbAorICAgICAqIG5hc3RpbmVzcyB3aXRoIHJvbGwgaXMgdGhlIE1PTlRIIGZpZWxkIGFyb3VuZCBsZWFwIG1vbnRocy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Um9sbCgpIHsKKyAgICAgICAgaW50W11bXSB0ZXN0cyA9IG5ldyBpbnRbXVtdIHsKKyAgICAgICAgICAgIC8vIE1PTlRIUyBBUkUgMS1CQVNFRCBIRVJFCisgICAgICAgICAgICAvLyBpbnB1dCAgICAgICAgICAgICAgIGFkZCAgICAgICAgICAgb3V0cHV0CisgICAgICAgICAgICAvLyB5ZWFyICBtb24gICAgZGF5ICAgIGZpZWxkIGFtb3VudCAgeWVhciAgbW9uICAgIGRheQorICAgICAgICAgICAgeyAgNDY0MiwgICAzLDAsICAxNSwgICBNT05USCwgICAzLCAgIDQ2NDIsICAgNiwwLCAgMTUgfSwgLy8gbm9ybWFsCisgICAgICAgICAgICB7ICA0NjQyLCAgIDMsMCwgIDE1LCAgIE1PTlRILCAgMTEsICAgNDY0MiwgICAyLDAsICAxNSB9LCAvLyBub3JtYWwKKyAgICAgICAgICAgIHsgIDQ2MzksICAxMiwwLCAgMTUsICAgTU9OVEgsICAgMSwgICA0NjM5LCAgIDEsMCwgIDE1IH0sIC8vIGFjcm9zcyB5ZWFyCisgICAgICAgICAgICB7ICA0NjQwLCAgIDEsMCwgIDE1LCAgIE1PTlRILCAgLTEsICAgNDY0MCwgIDEyLDAsICAxNSB9LCAvLyBhY3Jvc3MgeWVhcgorICAgICAgICAgICAgeyAgNDYzOCwgICAzLDAsICAxNSwgICBNT05USCwgICAzLCAgIDQ2MzgsICAgNSwwLCAgMTUgfSwgLy8gND1sZWFwCisgICAgICAgICAgICB7ICA0NjM4LCAgIDMsMCwgIDE1LCAgIE1PTlRILCAgMTYsICAgNDYzOCwgICA1LDAsICAxNSB9LCAvLyA0PWxlYXAKKyAgICAgICAgICAgIHsgIDQ2MzgsICAgMywwLCAgMTUsICAgTU9OVEgsICAgMiwgICA0NjM4LCAgIDQsMSwgIDE1IH0sIC8vIDQ9bGVhcAorICAgICAgICAgICAgeyAgNDYzOCwgICAzLDAsICAxNSwgICBNT05USCwgIDI4LCAgIDQ2MzgsICAgNCwxLCAgMTUgfSwgLy8gND1sZWFwCisgICAgICAgICAgICB7ICA0NjM4LCAgIDQsMCwgIDE1LCAgIE1PTlRILCAgIDEsICAgNDYzOCwgICA0LDEsICAxNSB9LCAvLyA0PWxlYXAKKyAgICAgICAgICAgIHsgIDQ2MzgsICAgNCwwLCAgMTUsICAgTU9OVEgsIC0xMiwgICA0NjM4LCAgIDQsMSwgIDE1IH0sIC8vIDQ9bGVhcAorICAgICAgICAgICAgeyAgNDYzOCwgICA0LDEsICAxNSwgICBNT05USCwgICAxLCAgIDQ2MzgsICAgNSwwLCAgMTUgfSwgLy8gND1sZWFwCisgICAgICAgICAgICB7ICA0NjM4LCAgIDQsMSwgIDE1LCAgIE1PTlRILCAtMjUsICAgNDYzOCwgICA1LDAsICAxNSB9LCAvLyA0PWxlYXAKKyAgICAgICAgICAgIHsgIDQ2MzgsICAgNCwwLCAgMzAsICAgTU9OVEgsICAgMSwgICA0NjM4LCAgIDQsMSwgIDI5IH0sIC8vIGRvbSBzaG91bGQgcGluCisgICAgICAgICAgICB7ICA0NjM4LCAgIDQsMCwgIDMwLCAgIE1PTlRILCAgMTQsICAgNDYzOCwgICA0LDEsICAyOSB9LCAvLyBkb20gc2hvdWxkIHBpbgorICAgICAgICAgICAgeyAgNDYzOCwgICA0LDAsICAzMCwgICBNT05USCwgIDE1LCAgIDQ2MzgsICAgNSwwLCAgMzAgfSwgLy8gbm8gZG9tIHBpbgorICAgICAgICAgICAgeyAgNDYzOCwgICA0LDAsICAzMCwgICBNT05USCwgLTEwLCAgIDQ2MzgsICAgNiwwLCAgMjkgfSwgLy8gZG9tIHNob3VsZCBwaW4KKyAgICAgICAgfTsKKyAgICAgICAKKyAgICAgICAgQ2hpbmVzZUNhbGVuZGFyIGNhbCA9IG5ldyBDaGluZXNlQ2FsZW5kYXIoKTsKKyAgICAgICAgZG9Sb2xsQWRkKFJPTEwsIGNhbCwgdGVzdHMpOworICAgIH0KKyAgICAKKyAgICB2b2lkIGRvUm9sbEFkZChib29sZWFuIHJvbGwsIENoaW5lc2VDYWxlbmRhciBjYWwsIGludFtdW10gdGVzdHMpIHsKKyAgICAgICAgU3RyaW5nIG5hbWUgPSByb2xsID8gInJvbGxpbmciIDogImFkZGluZyI7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpbnRbXSB0ZXN0ID0gdGVzdHNbaV07CisKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuRVhURU5ERURfWUVBUiwgdGVzdFswXSk7CisgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5NT05USCwgdGVzdFsxXS0xKTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KENoaW5lc2VDYWxlbmRhci5JU19MRUFQX01PTlRILCB0ZXN0WzJdKTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCwgdGVzdFszXSk7CisgICAgICAgICAgICBpZiAocm9sbCkgeworICAgICAgICAgICAgICAgIGNhbC5yb2xsKHRlc3RbNF0sIHRlc3RbNV0pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBjYWwuYWRkKHRlc3RbNF0sIHRlc3RbNV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGNhbC5nZXQoQ2FsZW5kYXIuRVhURU5ERURfWUVBUikgIT0gdGVzdFs2XSB8fAorICAgICAgICAgICAgICAgIGNhbC5nZXQoTU9OVEgpICE9ICh0ZXN0WzddLTEpIHx8CisgICAgICAgICAgICAgICAgY2FsLmdldChDaGluZXNlQ2FsZW5kYXIuSVNfTEVBUF9NT05USCkgIT0gdGVzdFs4XSB8fAorICAgICAgICAgICAgICAgIGNhbC5nZXQoREFURSkgIT0gdGVzdFs5XSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgbmFtZSArICIgIiArCisgICAgICAgICAgICAgICAgICAgICAgeW1kVG9TdHJpbmcodGVzdFswXSwgdGVzdFsxXS0xLCB0ZXN0WzJdLCB0ZXN0WzNdKQorICAgICAgICAgICAgICAgICAgICAgICsgIiAiICsgZmllbGROYW1lKHRlc3RbNF0pICsgIiBieSAiICsgdGVzdFs1XQorICAgICAgICAgICAgICAgICAgICAgICsgIjogZXhwZWN0ZWQgIiArCisgICAgICAgICAgICAgICAgICAgICAgeW1kVG9TdHJpbmcodGVzdFs2XSwgdGVzdFs3XS0xLCB0ZXN0WzhdLCB0ZXN0WzldKQorICAgICAgICAgICAgICAgICAgICAgICsgIiwgZ290ICIgKyB5bWRUb1N0cmluZyhjYWwpKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNWZXJib3NlKCkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT0s6ICIgKyBuYW1lICsgIiAiICsKKyAgICAgICAgICAgICAgICAgICAgICB5bWRUb1N0cmluZyh0ZXN0WzBdLCB0ZXN0WzFdLTEsIHRlc3RbMl0sIHRlc3RbM10pCisgICAgICAgICAgICAgICAgICAgICsgIiAiICsgZmllbGROYW1lKHRlc3RbNF0pICsgIiBieSAiICsgdGVzdFs1XQorICAgICAgICAgICAgICAgICAgICArICI6IGdvdCAiICsgeW1kVG9TdHJpbmcoY2FsKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IHllYXIsbW9udGgsZGF5IHZhbHVlcyB0byB0aGUgZm9ybSAieWVhci9tb250aC9kYXkiLgorICAgICAqIE9uIGlucHV0IHRoZSBtb250aCB2YWx1ZSBpcyB6ZXJvLWJhc2VkLCBidXQgaW4gdGhlIHJlc3VsdCBzdHJpbmcgaXQgaXMgb25lLWJhc2VkLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgU3RyaW5nIHltZFRvU3RyaW5nKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBpc0xlYXBNb250aCwgaW50IGRheSkgeworICAgICAgICByZXR1cm4gIiIgKyB5ZWFyICsgIi8iICsgKG1vbnRoKzEpICsKKyAgICAgICAgICAgICgoaXNMZWFwTW9udGghPTApPyIobGVhcCkiOiIiKSArCisgICAgICAgICAgICAiLyIgKyBkYXk7CisgICAgfQorCisvLyAgICBwdWJsaWMgdm9pZCBUZXN0RmluZExlYXBNb250aHMoKSB7CisvLyAgICAgICAgQ2hpbmVzZUNhbGVuZGFyIGNhbCA9IG5ldyBDaGluZXNlQ2FsZW5kYXIoKTsKKy8vICAgICAgICBjYWwuc2V0VGltZShuZXcgRGF0ZSgyMDAwLTE5MDAsIENhbGVuZGFyLkpBTlVBUlksIDEpKTsKKy8vICAgICAgICBsb25nIGVuZCA9IG5ldyBEYXRlKDIxMDAtMTkwMCwgQ2FsZW5kYXIuSkFOVUFSWSwgMSkuZ2V0VGltZSgpOworLy8gICAgICAgIENoaW5lc2VEYXRlRm9ybWF0IGZtdCA9IChDaGluZXNlRGF0ZUZvcm1hdCkgRGF0ZUZvcm1hdC5nZXRJbnN0YW5jZShjYWwpOworLy8gICAgICAgIGZtdC5hcHBseVBhdHRlcm4oInUtTU1sLWRkLCAnWWVhcicgeSwgJ0N5Y2xlJyBHIik7CisvLyAgICAgICAgd2hpbGUgKGNhbC5nZXRUaW1lSW5NaWxsaXMoKSA8IGVuZCkgeworLy8gICAgICAgICAgICBpZiAoY2FsLmdldChDaGluZXNlQ2FsZW5kYXIuSVNfTEVBUF9NT05USCkgIT0gMCkgeworLy8gICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIDEpOworLy8gICAgICAgICAgICAgICAgbG9nbG4oY2FsLmdldFRpbWUoKSArICIgPSAiICsgZm10LmZvcm1hdChjYWwuZ2V0VGltZSgpKSk7CisvLyAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCwgMjkpOworLy8gICAgICAgICAgICB9CisvLyAgICAgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuREFZX09GX1lFQVIsIDI1KTsKKy8vICAgICAgICB9CisvLyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvQ2hpbmVzZVRlc3RDYXNlLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvQ2hpbmVzZVRlc3RDYXNlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDVkNWI3OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9DaGluZXNlVGVzdENhc2UuamF2YQpAQCAtMCwwICsxLDU5IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0NoaW5lc2VUZXN0Q2FzZS5qYXZhLHYgJAorICogJERhdGU6IDIwMDIvMDgvMTMgMjE6NTM6MzggJAorICogJFJldmlzaW9uOiAxLjMgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworCitwdWJsaWMgY2xhc3MgQ2hpbmVzZVRlc3RDYXNlIGV4dGVuZHMgVGVzdENhc2UgeworCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZSBhbiBvYmplY3QgdXNpbmcgYSBKdWxpYW4gZGF5IG51bWJlciBhbmQKKyAgICAgKiB0aGUgY29ycmVzcG9uZGluZyBmaWVsZHMgZm9yIHRoZSBjYWxlbmRhciBiZWluZyB0ZXN0ZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZXJhIHRoZSBFUkEgZmllbGQgb2YgdGVzdGVkIGNhbGVuZGFyIG9uIHRoZSBnaXZlbiBKdWxpYW4KKyAgICAgKiBkYXkKKyAgICAgKiBAcGFyYW0geWVhciB0aGUgWUVBUiBmaWVsZCBvZiB0ZXN0ZWQgY2FsZW5kYXIgb24gdGhlIGdpdmVuCisgICAgICogSnVsaWFuIGRheQorICAgICAqIEBwYXJhbSBtb250aCB0aGUgTU9OVEggKDEtYmFzZWQpIGZpZWxkIG9mIHRlc3RlZCBjYWxlbmRhciBvbgorICAgICAqIHRoZSBnaXZlbiBKdWxpYW4gZGF5CisgICAgICogQHBhcmFtIGlzTGVhcE1vbnRoIGlmIHRydWUsIHRyZWF0IG1vbnRoIGFzIGEgbGVhcCBtb250aAorICAgICAqIEBwYXJhbSBkYXlPZk1vbnRoIHRoZSBEQVlfT0ZfTU9OVEggZmllbGQgb2YgdGVzdGVkIGNhbGVuZGFyIG9uIHRoZQorICAgICAqIGdpdmVuIEp1bGlhbiBkYXkKKyAgICAgKiBAcGFyYW0gZGF5T2ZXZWVrIHRoZSBEQVlfT0ZfV0VFSyBmaWVsZCBvZiB0ZXN0ZWQgY2FsZW5kYXIgb24gZ2l2ZW4KKyAgICAgKiBKdWxpYW4gZGF5CisgICAgICovCisgICAgcHVibGljIENoaW5lc2VUZXN0Q2FzZShkb3VibGUganVsaWFuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGVyYSwgaW50IHllYXIsIGludCBtb250aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gaXNMZWFwTW9udGgsIGludCBkYXlPZk1vbnRoLCBpbnQgZGF5T2ZXZWVrKSB7CisKKyAgICAgICAgc2V0VGltZShuZXcgRGF0ZShKVUxJQU5fRVBPQ0ggKyAobG9uZykoT05FX0RBWSAqIGp1bGlhbikpKTsKKyAgICAgICAgCisgICAgICAgIHNldChDYWxlbmRhci5FUkEsIGVyYSk7CisgICAgICAgIHNldChDYWxlbmRhci5ZRUFSLCB5ZWFyKTsKKyAgICAgICAgc2V0KENhbGVuZGFyLk1PTlRILCBtb250aCAtIDEpOworICAgICAgICBzZXQoQ2hpbmVzZUNhbGVuZGFyLklTX0xFQVBfTU9OVEgsIGlzTGVhcE1vbnRoPzE6MCk7CisgICAgICAgIHNldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIGRheU9mTW9udGgpOworICAgICAgICBzZXQoQ2FsZW5kYXIuREFZX09GX1dFRUssIGRheU9mV2Vlayk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgdGVzdCBjYXNlJ3MgdGltZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gZG93VG9TdHJpbmcoZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKSkgKworICAgICAgICAgICAgZ2V0KENhbGVuZGFyLllFQVIpICsgIm9mIiArIGdldChDYWxlbmRhci5FUkEpICsKKyAgICAgICAgICAgICIvIiArIChnZXQoQ2FsZW5kYXIuTU9OVEgpKzEpICsKKyAgICAgICAgICAgIChnZXQoQ2hpbmVzZUNhbGVuZGFyLklTX0xFQVBfTU9OVEgpPT0xPyIobGVhcCkiOiIiKSArICIvIiArCisgICAgICAgICAgICBnZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvQ29tcGF0aWJpbGl0eVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9Db21wYXRpYmlsaXR5VGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFkYjVhMWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvQ29tcGF0aWJpbGl0eVRlc3QuamF2YQpAQCAtMCwwICsxLDEwNTMgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvQ29tcGF0aWJpbGl0eVRlc3QuamF2YSx2ICQKKyAqICREYXRlOiAyMDAyLzA4LzEzIDIxOjUzOjM4ICQKKyAqICRSZXZpc2lvbjogMS44ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudGV4dC4qOworaW1wb3J0IGphdmEuaW8uKjsKKworcHVibGljIGNsYXNzIENvbXBhdGliaWxpdHlUZXN0IGV4dGVuZHMgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2sgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3ZbXSkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBDb21wYXRpYmlsaXR5VGVzdCgpLnJ1bihhcmd2KTsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nW10gRklFTERfTkFNRSA9IHsKKyAgICAgICAgIkVSQSIsICJZRUFSIiwgIk1PTlRIIiwgIldFRUtfT0ZfWUVBUiIsICJXRUVLX09GX01PTlRIIiwKKyAgICAgICAgIkRBWV9PRl9NT05USCIsICJEQVlfT0ZfWUVBUiIsICJEQVlfT0ZfV0VFSyIsCisgICAgICAgICJEQVlfT0ZfV0VFS19JTl9NT05USCIsICJBTV9QTSIsICJIT1VSIiwgIkhPVVJfT0ZfREFZIiwKKyAgICAgICAgIk1JTlVURSIsICJTRUNPTkQiLCAiTUlMTElTRUNPTkQiLCAiWk9ORV9PRkZTRVQiLAorICAgICAgICAiRFNUX09GRlNFVCIsICJZRUFSX1dPWSIsICJET1dfTE9DQUwiLCAiRVhURU5ERURfWUVBUiIsCisgICAgICAgICJKVUxJQU5fREFZIiwgIk1JTExJU0VDT05EU19JTl9EQVkiLAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBiZWhhdmlvciBvZiB0aGUgR3JlZ29yaWFuQ2FsZW5kYXIgYXJvdW5kIHRoZSBjaGFuZ2VvdmVyLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RHcmVnb3JpYW5DaGFuZ2VvdmVyKCkgeworICAgICAgICBqYXZhLnV0aWwuQ2FsZW5kYXIgdGVtcGNhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE1ODIsIENhbGVuZGFyLk9DVE9CRVIsIDE1KTsKKyAgICAgICAgRGF0ZSBjbyA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICBmaW5hbCBpbnQgT05FX0RBWSA9IDI0KjYwKjYwKjEwMDA7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICAvKgorICAgICAgICAgIENoYW5nZW92ZXIgLTcgZGF5czogMTU4Mi85LzI4IGRvdz02CisgICAgICAgICAgQ2hhbmdlb3ZlciAtNiBkYXlzOiAxNTgyLzkvMjkgZG93PTcKKyAgICAgICAgICBDaGFuZ2VvdmVyIC01IGRheXM6IDE1ODIvOS8zMCBkb3c9MQorICAgICAgICAgIENoYW5nZW92ZXIgLTQgZGF5czogMTU4Mi8xMC8xIGRvdz0yCisgICAgICAgICAgQ2hhbmdlb3ZlciAtMyBkYXlzOiAxNTgyLzEwLzIgZG93PTMKKyAgICAgICAgICBDaGFuZ2VvdmVyIC0yIGRheXM6IDE1ODIvMTAvMyBkb3c9NAorICAgICAgICAgIENoYW5nZW92ZXIgLTEgZGF5czogMTU4Mi8xMC80IGRvdz01CisgICAgICAgICAgQ2hhbmdlb3ZlciArMCBkYXlzOiAxNTgyLzEwLzE1IGRvdz02CisgICAgICAgICAgQ2hhbmdlb3ZlciArMSBkYXlzOiAxNTgyLzEwLzE2IGRvdz03CisgICAgICAgICAgQ2hhbmdlb3ZlciArMiBkYXlzOiAxNTgyLzEwLzE3IGRvdz0xCisgICAgICAgICAgQ2hhbmdlb3ZlciArMyBkYXlzOiAxNTgyLzEwLzE4IGRvdz0yCisgICAgICAgICAgQ2hhbmdlb3ZlciArNCBkYXlzOiAxNTgyLzEwLzE5IGRvdz0zCisgICAgICAgICAgQ2hhbmdlb3ZlciArNSBkYXlzOiAxNTgyLzEwLzIwIGRvdz00CisgICAgICAgICAgQ2hhbmdlb3ZlciArNiBkYXlzOiAxNTgyLzEwLzIxIGRvdz01CisgICAgICAgICAgQ2hhbmdlb3ZlciArNyBkYXlzOiAxNTgyLzEwLzIyIGRvdz02CisgICAgICAgICAgKi8KKyAgICAgICAgaW50IE1PTltdID0geyAgOSwgIDksICA5LDEwLDEwLDEwLDEwLCAxMCwgMTAsIDEwLCAxMCwgMTAsIDEwLCAxMCwgMTAgfTsKKyAgICAgICAgaW50IERPTVtdID0geyAyOCwgMjksIDMwLCAxLCAyLCAzLCA0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwLCAyMSwgMjIgfTsKKyAgICAgICAgaW50IERPV1tdID0geyAgNiwgIDcsICAxLCAyLCAzLCA0LCA1LCAgNiwgIDcsICAxLCAgMiwgIDMsICA0LCAgNSwgIDYgfTsKKyAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiA8LUNoYW5nZW92ZXIgRnJpIE9jdCAxNSAxNTgyCisgICAgICAgIGludCBqPTA7CisgICAgICAgIGZvciAoaW50IGk9LTc7IGk8PTc7ICsraSwgKytqKSB7CisgICAgICAgICAgICBEYXRlIGQgPSBuZXcgRGF0ZShjby5nZXRUaW1lKCkgKyBpKk9ORV9EQVkpOworICAgICAgICAgICAgY2FsLnNldFRpbWUoZCk7CisgICAgICAgICAgICBpbnQgeSA9IGNhbC5nZXQoQ2FsZW5kYXIuWUVBUiksIG1vbiA9IGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpKzEtQ2FsZW5kYXIuSkFOVUFSWSwKKyAgICAgICAgICAgICAgICBkb20gPSBjYWwuZ2V0KENhbGVuZGFyLkRBVEUpLCBkb3cgPSBjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKTsKKyAgICAgICAgICAgIGxvZ2xuKCJDaGFuZ2VvdmVyICIgKyAoaT49MD8iKyI6IiIpICsKKyAgICAgICAgICAgICAgICAgIGkgKyAiIGRheXM6ICIgKyB5ICsgIi8iICsgbW9uICsgIi8iICsgZG9tICsgIiBkb3c9IiArIGRvdyk7CisgICAgICAgICAgICBpZiAoeSAhPSAxNTgyIHx8IG1vbiAhPSBNT05bal0gfHwgZG9tICE9IERPTVtqXSB8fCBkb3cgIT0gRE9XW2pdKQorICAgICAgICAgICAgICAgIGVycmxuKCIgRmFpbDogQWJvdmUgbGluZSBpcyB3cm9uZyIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgbWFwcGluZyBiZXR3ZWVuIG1pbGxpcyBhbmQgZmllbGRzLiAgRm9yIHRoZSBwdXJwb3NlcworICAgICAqIG9mIHRoaXMgdGVzdCwgd2UgZG9uJ3QgY2FyZSBhYm91dCB0aW1lem9uZXMgYW5kIHdlZWsgZGF0YQorICAgICAqIChmaXJzdCBkYXkgb2Ygd2VlaywgbWluaW1hbCBkYXlzIGluIGZpcnN0IHdlZWspLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RNYXBwaW5nKCkgeworICAgICAgICBpZiAoZmFsc2UpIHsKKyAgICAgICAgICAgIERhdGUgUFVSRV9HUkVHT1JJQU4gPSBuZXcgRGF0ZShMb25nLk1JTl9WQUxVRSk7CisgICAgICAgICAgICBEYXRlIFBVUkVfSlVMSUFOID0gbmV3IERhdGUoTG9uZy5NQVhfVkFMVUUpOworICAgICAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsID0KKyAgICAgICAgICAgICAgICBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoVGltZVpvbmUuZ2V0VGltZVpvbmUoIlVUQyIpKTsKKyAgICAgICAgICAgIGZpbmFsIGludCBFUE9DSF9KVUxJQU4gPSAyNDQwNTg4OworICAgICAgICAgICAgZmluYWwgbG9uZyBPTkVfREFZID0gMjQqNjAqNjAqMTAwMEw7CisgICAgICAgICAgICBjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQgZm10ID0KKyAgICAgICAgICAgICAgICBuZXcgY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0KCJFRUUgTU1NIGRkIHl5eXkgRyIpOworICAgICAgICAgICAgICAgIC8qSEg6bW06c3MuU1NTIHoqLworCisgICAgICAgICAgICBmb3IgKGludCB0eXBlPTA7IHR5cGU8MjsgKyt0eXBlKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHR5cGU9PTAgPyAiR3JlZ29yaWFuIiA6ICJKdWxpYW4iKTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0R3JlZ29yaWFuQ2hhbmdlKHR5cGU9PTAgPyBQVVJFX0dSRUdPUklBTiA6IFBVUkVfSlVMSUFOKTsKKyAgICAgICAgICAgICAgICBmbXQuc2V0Q2FsZW5kYXIoY2FsKTsKKyAgICAgICAgICAgICAgICBpbnRbXSBKID0geworICAgICAgICAgICAgICAgICAgICAweDdGRkZGRkZGLAorICAgICAgICAgICAgICAgICAgICAweDdGRkZGRkYwLAorICAgICAgICAgICAgICAgICAgICAweDdGMDAwMDAwLAorICAgICAgICAgICAgICAgICAgICAweDc4MDAwMDAwLAorICAgICAgICAgICAgICAgICAgICAweDcwMDAwMDAwLAorICAgICAgICAgICAgICAgICAgICAweDYwMDAwMDAwLAorICAgICAgICAgICAgICAgICAgICAweDUwMDAwMDAwLAorICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwLAorICAgICAgICAgICAgICAgICAgICAweDMwMDAwMDAwLAorICAgICAgICAgICAgICAgICAgICAweDIwMDAwMDAwLAorICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwLAorICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPEoubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nW10gbGltID0gbmV3IFN0cmluZ1syXTsKKyAgICAgICAgICAgICAgICAgICAgbG9uZ1tdIG1zID0gbmV3IGxvbmdbMl07CisgICAgICAgICAgICAgICAgICAgIGludCBqZCA9IEpbaV07CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IHNpZ249MDsgc2lnbjwyOyArK3NpZ24pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBqdWxpYW4gPSBqZDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzaWduPT0wKSBqdWxpYW4gPSAtanVsaWFuOworICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBtaWxsaXMgPSAoKGxvbmcpanVsaWFuIC0gRVBPQ0hfSlVMSUFOKSAqIE9ORV9EQVk7CisgICAgICAgICAgICAgICAgICAgICAgICBtc1tzaWduXSA9IG1pbGxpczsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5zZXRUaW1lKG5ldyBEYXRlKG1pbGxpcykpOworICAgICAgICAgICAgICAgICAgICAgICAgbGltW3NpZ25dID0gZm10LmZvcm1hdChjYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkpEICsvLSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9uZy50b1N0cmluZyhqZCwgMTYpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI6ICIgKyBtc1swXSArICIuLiIgKyBtc1sxXSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOiAiICsgbGltWzBdICsgIi4uIiArIGxpbVsxXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgVGltZVpvbmUgc2F2ZVpvbmUgPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KFRpbWVab25lLmdldFRpbWVab25lKCJVVEMiKSk7CisgICAgICAgICAgICAvL05FV0NBTAorICAgICAgICAgICAgRGF0ZSBQVVJFX0dSRUdPUklBTiA9IG5ldyBEYXRlKExvbmcuTUlOX1ZBTFVFKTsKKyAgICAgICAgICAgIERhdGUgUFVSRV9KVUxJQU4gPSBuZXcgRGF0ZShMb25nLk1BWF9WQUxVRSk7CisgICAgICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgICAgIGZpbmFsIGludCBFUE9DSF9KVUxJQU4gPSAyNDQwNTg4OworICAgICAgICAgICAgZmluYWwgbG9uZyBPTkVfREFZID0gMjQqNjAqNjAqMTAwMEw7CisgICAgICAgICAgICBpbnRbXSBEQVRBID0geworICAgICAgICAgICAgICAgIC8vIEp1bGlhbiMgICBZZWFyICBNb250aCAgICAgICAgICAgICAgIERPTSAgIEpVTElBTjpZZWFyLCBNb250aCwgICAgICAgRE9NCisgICAgICAgICAgICAgICAgMjQ0MDU4OCwgICAgIDE5NzAsIENhbGVuZGFyLkpBTlVBUlksICAgMSwgICAgMTk2OSwgQ2FsZW5kYXIuREVDRU1CRVIsICAxOSwgCisgICAgICAgICAgICAgICAgMjQxNTA4MCwgICAgIDE5MDAsIENhbGVuZGFyLk1BUkNILCAgICAgMSwgICAgMTkwMCwgQ2FsZW5kYXIuRkVCUlVBUlksICAxNywKKyAgICAgICAgICAgICAgICAyNDUxNjA0LCAgICAgMjAwMCwgQ2FsZW5kYXIuRkVCUlVBUlksICAyOSwgICAyMDAwLCBDYWxlbmRhci5GRUJSVUFSWSwgIDE2LAorICAgICAgICAgICAgICAgIDI0NTIyNjksICAgICAyMDAxLCBDYWxlbmRhci5ERUNFTUJFUiwgIDI1LCAgIDIwMDEsIENhbGVuZGFyLkRFQ0VNQkVSLCAgMTIsCisgICAgICAgICAgICAgICAgMjQxNjUyNiwgICAgIDE5MDQsIENhbGVuZGFyLkZFQlJVQVJZLCAgMTUsICAgMTkwNCwgQ2FsZW5kYXIuRkVCUlVBUlksICAyLAorICAgICAgICAgICAgICAgIDI0MTY2NTYsICAgICAxOTA0LCBDYWxlbmRhci5KVU5FLCAgICAgIDI0LCAgIDE5MDQsIENhbGVuZGFyLkpVTkUsICAgICAgMTEsCisgICAgICAgICAgICAgICAgMTcyMTQyNiwgICAgICAgIDEsIENhbGVuZGFyLkpBTlVBUlksICAgMSwgICAgICAgMSwgQ2FsZW5kYXIuSkFOVUFSWSwgICAzLAorICAgICAgICAgICAgICAgIDIwMDAwMDAsICAgICAgNzYzLCBDYWxlbmRhci5TRVBURU1CRVIsIDE4LCAgICA3NjMsIENhbGVuZGFyLlNFUFRFTUJFUiwgMTQsCisgICAgICAgICAgICAgICAgNDAwMDAwMCwgICAgIDYyMzksIENhbGVuZGFyLkpVTFksICAgICAgMTIsICAgNjIzOSwgQ2FsZW5kYXIuTUFZLCAgICAgICAyOCwKKyAgICAgICAgICAgICAgICA4MDAwMDAwLCAgICAxNzE5MSwgQ2FsZW5kYXIuRkVCUlVBUlksICAyNiwgIDE3MTkwLCBDYWxlbmRhci5PQ1RPQkVSLCAgIDIyLAorICAgICAgICAgICAgICAgIDEwMDAwMDAwLCAgIDIyNjY2LCBDYWxlbmRhci5ERUNFTUJFUiwgIDIwLCAgMjI2NjYsIENhbGVuZGFyLkpVTFksICAgICAgNSwKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTcpIHsKKyAgICAgICAgICAgICAgICBpbnQganVsaWFuID0gREFUQVtpXTsKKyAgICAgICAgICAgICAgICBpbnQgeWVhciA9IERBVEFbaSsxXTsKKyAgICAgICAgICAgICAgICBpbnQgbW9udGggPSBEQVRBW2krMl07CisgICAgICAgICAgICAgICAgaW50IGRvbSA9IERBVEFbaSszXTsKKyAgICAgICAgICAgICAgICBpbnQgeWVhcjIsIG1vbnRoMiwgZG9tMjsKKyAgICAgICAgICAgICAgICBsb25nIG1pbGxpcyA9IChqdWxpYW4gLSBFUE9DSF9KVUxJQU4pICogT05FX0RBWTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgczsKKworICAgICAgICAgICAgICAgIC8vIFRlc3QgR3JlZ29yaWFuIGNvbXB1dGF0aW9uCisgICAgICAgICAgICAgICAgY2FsLnNldEdyZWdvcmlhbkNoYW5nZShQVVJFX0dSRUdPUklBTik7CisgICAgICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgY2FsLnNldCh5ZWFyLCBtb250aCwgZG9tKTsKKyAgICAgICAgICAgICAgICBsb25nIGNhbE1pbGxpcyA9IGNhbC5nZXRUaW1lKCkuZ2V0VGltZSgpOworICAgICAgICAgICAgICAgIGxvbmcgZGVsdGEgPSBjYWxNaWxsaXMgLSBtaWxsaXM7CisgICAgICAgICAgICAgICAgY2FsLnNldFRpbWUobmV3IERhdGUobWlsbGlzKSk7CisgICAgICAgICAgICAgICAgeWVhcjIgPSBjYWwuZ2V0KENhbGVuZGFyLllFQVIpOworICAgICAgICAgICAgICAgIG1vbnRoMiA9IGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpOworICAgICAgICAgICAgICAgIGRvbTIgPSBjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCk7CisgICAgICAgICAgICAgICAgcyA9ICJHICIgKyB5ZWFyICsgIi0iICsgKG1vbnRoKzEtQ2FsZW5kYXIuSkFOVUFSWSkgKyAiLSIgKyBkb20gKworICAgICAgICAgICAgICAgICAgICAiID0+ICIgKyBjYWxNaWxsaXMgKworICAgICAgICAgICAgICAgICAgICAiICgiICsgKChmbG9hdClkZWx0YS9PTkVfREFZKSArICIgZGF5IGRlbHRhKSA9PiAiICsKKyAgICAgICAgICAgICAgICAgICAgeWVhcjIgKyAiLSIgKyAobW9udGgyKzEtQ2FsZW5kYXIuSkFOVUFSWSkgKyAiLSIgKyBkb20yOworICAgICAgICAgICAgICAgIGlmIChkZWx0YSAhPSAwIHx8IHllYXIgIT0geWVhcjIgfHwgbW9udGggIT0gbW9udGgyIHx8CisgICAgICAgICAgICAgICAgICAgIGRvbSAhPSBkb20yKSBlcnJsbihzICsgIiBGQUlMIik7CisgICAgICAgICAgICAgICAgZWxzZSBsb2dsbihzKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBUZXN0IEp1bGlhbiBjb21wdXRhdGlvbgorICAgICAgICAgICAgICAgIHllYXIgPSBEQVRBW2krNF07CisgICAgICAgICAgICAgICAgbW9udGggPSBEQVRBW2krNV07CisgICAgICAgICAgICAgICAgZG9tID0gREFUQVtpKzZdOworICAgICAgICAgICAgICAgIGNhbC5zZXRHcmVnb3JpYW5DaGFuZ2UoUFVSRV9KVUxJQU4pOworICAgICAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgICAgIGNhbC5zZXQoeWVhciwgbW9udGgsIGRvbSk7CisgICAgICAgICAgICAgICAgY2FsTWlsbGlzID0gY2FsLmdldFRpbWUoKS5nZXRUaW1lKCk7CisgICAgICAgICAgICAgICAgZGVsdGEgPSBjYWxNaWxsaXMgLSBtaWxsaXM7CisgICAgICAgICAgICAgICAgY2FsLnNldFRpbWUobmV3IERhdGUobWlsbGlzKSk7CisgICAgICAgICAgICAgICAgeWVhcjIgPSBjYWwuZ2V0KENhbGVuZGFyLllFQVIpOworICAgICAgICAgICAgICAgIG1vbnRoMiA9IGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpOworICAgICAgICAgICAgICAgIGRvbTIgPSBjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCk7CisgICAgICAgICAgICAgICAgcyA9ICJKICIgKyB5ZWFyICsgIi0iICsgKG1vbnRoKzEtQ2FsZW5kYXIuSkFOVUFSWSkgKyAiLSIgKyBkb20gKworICAgICAgICAgICAgICAgICAgICAiID0+ICIgKyBjYWxNaWxsaXMgKworICAgICAgICAgICAgICAgICAgICAiICgiICsgKChmbG9hdClkZWx0YS9PTkVfREFZKSArICIgZGF5IGRlbHRhKSA9PiAiICsKKyAgICAgICAgICAgICAgICAgICAgeWVhcjIgKyAiLSIgKyAobW9udGgyKzEtQ2FsZW5kYXIuSkFOVUFSWSkgKyAiLSIgKyBkb20yOworICAgICAgICAgICAgICAgIGlmIChkZWx0YSAhPSAwIHx8IHllYXIgIT0geWVhcjIgfHwgbW9udGggIT0gbW9udGgyIHx8CisgICAgICAgICAgICAgICAgICAgIGRvbSAhPSBkb20yKSBlcnJsbihzICsgIiBGQUlMIik7CisgICAgICAgICAgICAgICAgZWxzZSBsb2dsbihzKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgamF2YS51dGlsLkNhbGVuZGFyIHRlbXBjYWwgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgICAgIHRlbXBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgIHRlbXBjYWwuc2V0KDE1ODIsIENhbGVuZGFyLk9DVE9CRVIsIDE1KTsKKyAgICAgICAgICAgIGNhbC5zZXRHcmVnb3JpYW5DaGFuZ2UodGVtcGNhbC5nZXRUaW1lKCkpOworICAgICAgICAgICAgYXV4TWFwcGluZyhjYWwsIDE1ODIsIENhbGVuZGFyLk9DVE9CRVIsIDQpOworICAgICAgICAgICAgYXV4TWFwcGluZyhjYWwsIDE1ODIsIENhbGVuZGFyLk9DVE9CRVIsIDE1KTsKKyAgICAgICAgICAgIGF1eE1hcHBpbmcoY2FsLCAxNTgyLCBDYWxlbmRhci5PQ1RPQkVSLCAxNik7CisgICAgICAgICAgICBmb3IgKGludCB5PTgwMDsgeTwzMDAwOyB5Kz0xKyhpbnQpMTAwKk1hdGgucmFuZG9tKCkpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBtPUNhbGVuZGFyLkpBTlVBUlk7IG08PUNhbGVuZGFyLkRFQ0VNQkVSOyArK20pIHsKKyAgICAgICAgICAgICAgICAgICAgYXV4TWFwcGluZyhjYWwsIHksIG0sIDE1KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZmluYWxseSB7CisgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KHNhdmVab25lKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHZvaWQgYXV4TWFwcGluZyhDYWxlbmRhciBjYWwsIGludCB5LCBpbnQgbSwgaW50IGQpIHsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoeSwgbSwgZCk7CisgICAgICAgIGxvbmcgbWlsbGlzID0gY2FsLmdldFRpbWUoKS5nZXRUaW1lKCk7CisgICAgICAgIGNhbC5zZXRUaW1lKG5ldyBEYXRlKG1pbGxpcykpOworICAgICAgICBpbnQgeWVhcjIgPSBjYWwuZ2V0KENhbGVuZGFyLllFQVIpOworICAgICAgICBpbnQgbW9udGgyID0gY2FsLmdldChDYWxlbmRhci5NT05USCk7CisgICAgICAgIGludCBkb20yID0gY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpOworICAgICAgICBpZiAoeSAhPSB5ZWFyMiB8fCBtICE9IG1vbnRoMiB8fCBkb20yICE9IGQpCisgICAgICAgICAgICBlcnJsbigiUm91bmQtdHJpcCBmYWlsdXJlOiAiICsgeSArICItIiArIChtKzEpICsgIi0iK2QrIiA9Pm1zPT4gIiArCisgICAgICAgICAgICAgICAgICB5ZWFyMiArICItIiArIChtb250aDIrMSkgKyAiLSIgKyBkb20yKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0R2VuZXJpY0FQSSgpIHsKKyAgICAgICAgLy8gbm90IHVzZWQgU3RyaW5nIHN0cjsKKworICAgICAgICBqYXZhLnV0aWwuQ2FsZW5kYXIgdGVtcGNhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTAsIENhbGVuZGFyLkFQUklMLCAxNSk7CisgICAgICAgIERhdGUgd2hlbiA9IHRlbXBjYWwuZ2V0VGltZSgpOworCisgICAgICAgIFN0cmluZyB0emlkID0gIlRlc3Rab25lIjsKKyAgICAgICAgaW50IHR6b2Zmc2V0ID0gMTIzNDAwOworCisgICAgICAgIFNpbXBsZVRpbWVab25lIHpvbmUgPSBuZXcgU2ltcGxlVGltZVpvbmUodHpvZmZzZXQsIHR6aWQpOworICAgICAgICBDYWxlbmRhciBjYWwgPSAoQ2FsZW5kYXIpQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKFNpbXBsZVRpbWVab25lKXpvbmUuY2xvbmUoKSk7CisKKyAgICAgICAgaWYgKCF6b25lLmVxdWFscyhjYWwuZ2V0VGltZVpvbmUoKSkpIGVycmxuKCJGQUlMOiBDYWxlbmRhci5nZXRUaW1lWm9uZSBmYWlsZWQiKTsKKworICAgICAgICBDYWxlbmRhciBjYWwyID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoY2FsLmdldFRpbWVab25lKCkpOworCisgICAgICAgIGNhbC5zZXRUaW1lKHdoZW4pOworICAgICAgICBjYWwyLnNldFRpbWUod2hlbik7CisKKyAgICAgICAgaWYgKCEoY2FsLmVxdWFscyhjYWwyKSkpIGVycmxuKCJGQUlMOiBDYWxlbmRhci5vcGVyYXRvcj09IGZhaWxlZCIpOworICAgICAgICAvLyBpZiAoKCpjYWwgIT0gKmNhbDIpKSAgZXJybG4oIkZBSUw6IENhbGVuZGFyLm9wZXJhdG9yIT0gZmFpbGVkIik7CisgICAgICAgIGlmICghY2FsLmVxdWFscyhjYWwyKSB8fAorICAgICAgICAgICAgY2FsLmJlZm9yZShjYWwyKSB8fAorICAgICAgICAgICAgY2FsLmFmdGVyKGNhbDIpKSBlcnJsbigiRkFJTDogZXF1YWxzL2JlZm9yZS9hZnRlciBmYWlsZWQiKTsKKworICAgICAgICBjYWwyLnNldFRpbWUobmV3IERhdGUod2hlbi5nZXRUaW1lKCkgKyAxMDAwKSk7CisgICAgICAgIGlmIChjYWwuZXF1YWxzKGNhbDIpIHx8CisgICAgICAgICAgICBjYWwyLmJlZm9yZShjYWwpIHx8CisgICAgICAgICAgICBjYWwuYWZ0ZXIoY2FsMikpIGVycmxuKCJGQUlMOiBlcXVhbHMvYmVmb3JlL2FmdGVyIGZhaWxlZCIpOworCisgICAgICAgIGNhbC5yb2xsKENhbGVuZGFyLlNFQ09ORCwgdHJ1ZSk7CisgICAgICAgIGlmICghY2FsLmVxdWFscyhjYWwyKSB8fAorICAgICAgICAgICAgY2FsLmJlZm9yZShjYWwyKSB8fAorICAgICAgICAgICAgY2FsLmFmdGVyKGNhbDIpKSBlcnJsbigiRkFJTDogZXF1YWxzL2JlZm9yZS9hZnRlciBmYWlsZWQiKTsKKworICAgICAgICAvLyBSb2xsIGJhY2sgdG8gSmFudWFyeQorICAgICAgICBjYWwucm9sbChDYWxlbmRhci5NT05USCwgKGludCkoMSArIENhbGVuZGFyLkRFQ0VNQkVSIC0gY2FsLmdldChDYWxlbmRhci5NT05USCkpKTsKKyAgICAgICAgaWYgKGNhbC5lcXVhbHMoY2FsMikgfHwKKyAgICAgICAgICAgIGNhbDIuYmVmb3JlKGNhbCkgfHwKKyAgICAgICAgICAgIGNhbC5hZnRlcihjYWwyKSkgZXJybG4oIkZBSUw6IGVxdWFscy9iZWZvcmUvYWZ0ZXIgZmFpbGVkIik7CisKKyAgICAgICAgLy8gQysrIG9ubHkKKyAgICAgICAgLyogVGltZVpvbmUgeiA9IGNhbC5vcnBoYW5UaW1lWm9uZSgpOworICAgICAgICAgICBpZiAoei5nZXRJRChzdHIpICE9IHR6aWQgfHwKKyAgICAgICAgICAgei5nZXRSYXdPZmZzZXQoKSAhPSB0em9mZnNldCkKKyAgICAgICAgICAgZXJybG4oIkZBSUw6IG9ycGhhblRpbWVab25lIGZhaWxlZCIpOworICAgICAgICAgICAqLworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTwyOyArK2kpIHsKKyAgICAgICAgICAgIGJvb2xlYW4gbGVuaWVudCA9ICggaSA+IDAgKTsKKyAgICAgICAgICAgIGNhbC5zZXRMZW5pZW50KGxlbmllbnQpOworICAgICAgICAgICAgaWYgKGxlbmllbnQgIT0gY2FsLmlzTGVuaWVudCgpKSBlcnJsbigiRkFJTDogc2V0TGVuaWVudC9pc0xlbmllbnQgZmFpbGVkIik7CisgICAgICAgICAgICAvLyBMYXRlcjogQ2hlY2sgZm9yIGxlbmllbnQgYmVoYXZpb3IKKyAgICAgICAgfQorCisgICAgICAgIGludCBpOworICAgICAgICBmb3IgKGk9Q2FsZW5kYXIuU1VOREFZOyBpPD1DYWxlbmRhci5TQVRVUkRBWTsgKytpKSB7CisgICAgICAgICAgICBjYWwuc2V0Rmlyc3REYXlPZldlZWsoaSk7CisgICAgICAgICAgICBpZiAoY2FsLmdldEZpcnN0RGF5T2ZXZWVrKCkgIT0gaSkgZXJybG4oIkZBSUw6IHNldC9nZXRGaXJzdERheU9mV2VlayBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaT0wOyBpPD03OyArK2kpIHsKKyAgICAgICAgICAgIGNhbC5zZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKGkpOworICAgICAgICAgICAgaWYgKGNhbC5nZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCkgIT0gaSkgZXJybG4oIkZBSUw6IHNldC9nZXRGaXJzdERheU9mV2VlayBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaT0wOyBpPGNhbC5nZXRGaWVsZENvdW50KCk7ICsraSkgeworICAgICAgICAgICAgaWYgKGNhbC5nZXRNaW5pbXVtKGkpICE9IGNhbC5nZXRHcmVhdGVzdE1pbmltdW0oaSkpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldE1pbmltdW0gZG9lc24ndCBtYXRjaCBnZXRHcmVhdGVzdE1pbmltdW0gZm9yIGZpZWxkICIgKyBpKTsKKyAgICAgICAgICAgIGlmIChjYWwuZ2V0TGVhc3RNYXhpbXVtKGkpID4gY2FsLmdldE1heGltdW0oaSkpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldExlYXN0TWF4aW11bSBsYXJnZXIgdGhhbiBnZXRNYXhpbXVtIGZvciBmaWVsZCAiICsgaSk7CisgICAgICAgICAgICBpZiAoY2FsLmdldE1pbmltdW0oaSkgPj0gY2FsLmdldE1heGltdW0oaSkpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldE1pbmltdW0gbm90IGxlc3MgdGhhbiBnZXRNYXhpbXVtIGZvciBmaWVsZCAiICsgaSk7CisgICAgICAgIH0KKworICAgICAgICBjYWwuc2V0VGltZVpvbmUoVGltZVpvbmUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMTk4NCwgNSwgMjQpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5ODQsIDUsIDI0KTsKKyAgICAgICAgaWYgKGNhbC5nZXRUaW1lKCkuZ2V0VGltZSgpICE9IHRlbXBjYWwuZ2V0VGltZSgpLmdldFRpbWUoKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IENhbGVuZGFyLnNldCgzIGFyZ3MpIGZhaWxlZCIpOworICAgICAgICAgICAgbG9nbG4oIiBHb3Q6ICIgKyBjYWwuZ2V0VGltZSgpICsgIiAgRXhwZWN0ZWQ6ICIgKyB0ZW1wY2FsLmdldFRpbWUoKSk7CisgICAgICAgIH0KKworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgxOTg1LCAzLCAyLCAxMSwgNDkpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5ODUsIDMsIDIsIDExLCA0OSk7CisgICAgICAgIGlmIChjYWwuZ2V0VGltZSgpLmdldFRpbWUoKSAhPSB0ZW1wY2FsLmdldFRpbWUoKS5nZXRUaW1lKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDYWxlbmRhci5zZXQoNSBhcmdzKSBmYWlsZWQiKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgR290OiAiICsgY2FsLmdldFRpbWUoKSArICIgIEV4cGVjdGVkOiAiICsgdGVtcGNhbC5nZXRUaW1lKCkpOworICAgICAgICB9CisKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMTk5NSwgOSwgMTIsIDEsIDM5LCA1NSk7CisgICAgICAgIHRlbXBjYWwuY2xlYXIoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5NSwgOSwgMTIsIDEsIDM5LCA1NSk7CisgICAgICAgIGlmIChjYWwuZ2V0VGltZSgpLmdldFRpbWUoKSAhPSB0ZW1wY2FsLmdldFRpbWUoKS5nZXRUaW1lKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDYWxlbmRhci5zZXQoNiBhcmdzKSBmYWlsZWQiKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgR290OiAiICsgY2FsLmdldFRpbWUoKSArICIgIEV4cGVjdGVkOiAiICsgdGVtcGNhbC5nZXRUaW1lKCkpOworICAgICAgICB9CisKKyAgICAgICAgY2FsLmdldFRpbWUoKTsKKyAgICAgICAgLy8gVGhpcyB0ZXN0IGlzIHN0cmFuZ2UgLS0gd2h5IGRvIHdlIGV4cGVjdCBjZXJ0YWluIGZpZWxkcyB0byBiZSBzZXQsIGFuZAorICAgICAgICAvLyBvdGhlcnMgbm90IHRvIGJlPyAgUmV2aXNpdCB0aGUgYXBwcm9wcmlhdGVuZXNzIG9mIHRoaXMuICAtIEFsYW4gTkVXQ0FMCisgICAgICAgIGZvciAoaT0wOyBpPGNhbC5nZXRGaWVsZENvdW50KCk7ICsraSkgeworICAgICAgICAgICAgc3dpdGNoKGkpIHsKKyAgICAgICAgICAgIGNhc2UgQ2FsZW5kYXIuWUVBUjogY2FzZSBDYWxlbmRhci5NT05USDogY2FzZSBDYWxlbmRhci5EQVRFOgorICAgICAgICAgICAgY2FzZSBDYWxlbmRhci5IT1VSX09GX0RBWTogY2FzZSBDYWxlbmRhci5NSU5VVEU6IGNhc2UgQ2FsZW5kYXIuU0VDT05EOgorICAgICAgICAgICAgY2FzZSBDYWxlbmRhci5FWFRFTkRFRF9ZRUFSOgorICAgICAgICAgICAgICAgIGlmICghY2FsLmlzU2V0KGkpKSBlcnJsbigiRkFJTDogIiArIEZJRUxEX05BTUVbaV0gKyAiIGlzIG5vdCBzZXQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgaWYgKGNhbC5pc1NldChpKSkgZXJybG4oIkZBSUw6ICIgKyBGSUVMRF9OQU1FW2ldICsgIiBpcyBzZXQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhbC5jbGVhcihpKTsKKyAgICAgICAgICAgIGlmIChjYWwuaXNTZXQoaSkpIGVycmxuKCJGQUlMOiBDYWxlbmRhci5jbGVhci9pc1NldCBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGRlbGV0ZSBjYWw7CisgICAgICAgIC8vIGRlbGV0ZSBjYWwyOworCisgICAgICAgIExvY2FsZVtdIGxvYyA9IENhbGVuZGFyLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgbG9uZyBjb3VudCA9IGxvYy5sZW5ndGg7CisgICAgICAgIGlmIChjb3VudCA8IDEgfHwgbG9jID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRBdmFpbGFibGVMb2NhbGVzIGZhaWxlZCIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9yIChpPTA7IGk8Y291bnQ7ICsraSkgeworICAgICAgICAgICAgICAgIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKGxvY1tpXSk7CisgICAgICAgICAgICAgICAgLy8gZGVsZXRlIGNhbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKFRpbWVab25lLmdldERlZmF1bHQoKSwgTG9jYWxlLkVOR0xJU0gpOworICAgICAgICAvLyBkZWxldGUgY2FsOworCisgICAgICAgIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKHpvbmUsIExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgLy8gZGVsZXRlIGNhbDsKKworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBnYyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcih6b25lKTsKKyAgICAgICAgLy8gZGVsZXRlIGdjOworCisgICAgICAgIGdjID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgLy8gZGVsZXRlIGdjOworCisgICAgICAgIGdjID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgLy8gZGVsZXRlIGdjOworCisgICAgICAgIGdjID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKHpvbmUsIExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgLy8gZGVsZXRlIGdjOworCisgICAgICAgIGdjID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKHpvbmUpOworICAgICAgICAvLyBkZWxldGUgZ2M7CisKKyAgICAgICAgZ2MgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoMTk5OCwgMTAsIDE0LCAyMSwgNDMpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTgsIDEwLCAxNCwgMjEsIDQzKTsKKyAgICAgICAgaWYgKGdjLmdldFRpbWUoKS5nZXRUaW1lKCkgIT0gdGVtcGNhbC5nZXRUaW1lKCkuZ2V0VGltZSgpKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IG5ldyBHcmVnb3JpYW5DYWxlbmRhcih5bWRobSkgZmFpbGVkIik7CisgICAgICAgIC8vIGRlbGV0ZSBnYzsKKworICAgICAgICBnYyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigxOTk4LCAxMCwgMTQsIDIxLCA0MywgNTUpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTgsIDEwLCAxNCwgMjEsIDQzLCA1NSk7CisgICAgICAgIGlmIChnYy5nZXRUaW1lKCkuZ2V0VGltZSgpICE9IHRlbXBjYWwuZ2V0VGltZSgpLmdldFRpbWUoKSkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoeW1kaG1zKSBmYWlsZWQiKTsKKworICAgICAgICAvLyBDKysgb25seToKKyAgICAgICAgLy8gR3JlZ29yaWFuQ2FsZW5kYXIgZ2MyID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgLy8gZ2MyID0gZ2M7CisgICAgICAgIC8vIGlmIChnYzIgIT0gZ2MgfHwgIShnYzIgPT0gZ2MpKSBlcnJsbigiRkFJTDogR3JlZ29yaWFuQ2FsZW5kYXIgYXNzaWdubWVudC9vcGVyYXRvcj09L29wZXJhdG9yIT0gZmFpbGVkIik7CisgICAgICAgIC8vIGRlbGV0ZSBnYzsKKyAgICAgICAgLy8gZGVsZXRlIHo7CisgICAgfQorCisgICAgLy8gVmVyaWZ5IFJvZ2VyIFdlYnN0ZXIncyBidWcKKyAgICBwdWJsaWMgdm9pZCBUZXN0Um9nKCkgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBnYyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworCisgICAgICAgIGludCB5ZWFyID0gMTk5NywgbW9udGggPSBDYWxlbmRhci5BUFJJTCwgZGF0ZSA9IDE7CisgICAgICAgIGdjLnNldCh5ZWFyLCBtb250aCwgZGF0ZSk7IC8vIEFwcmlsIDEsIDE5OTcKKworICAgICAgICBnYy5zZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVksIDIzKTsKKyAgICAgICAgZ2Muc2V0KENhbGVuZGFyLk1JTlVURSwgMCk7CisgICAgICAgIGdjLnNldChDYWxlbmRhci5TRUNPTkQsIDApOworICAgICAgICBnYy5zZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQsIDApOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgOTsgaSsrLCBnYy5hZGQoQ2FsZW5kYXIuREFURSwgMSkpIHsKKyAgICAgICAgICAgIGlmIChnYy5nZXQoQ2FsZW5kYXIuWUVBUikgIT0geWVhciB8fAorICAgICAgICAgICAgICAgIGdjLmdldChDYWxlbmRhci5NT05USCkgIT0gbW9udGggfHwKKyAgICAgICAgICAgICAgICBnYy5nZXQoQ2FsZW5kYXIuREFURSkgIT0gKGRhdGUgKyBpKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogRGF0ZSAiICsgZ2MuZ2V0VGltZSgpICsgIiB3cm9uZyIpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gVmVyaWZ5IERBWV9PRl9XRUVLCisgICAgcHVibGljIHZvaWQgVGVzdERPVzk0MygpIHsKKyAgICAgICAgZG93VGVzdChmYWxzZSk7CisgICAgICAgIGRvd1Rlc3QodHJ1ZSk7CisgICAgfQorCisgICAgdm9pZCBkb3dUZXN0KGJvb2xlYW4gbGVuaWVudCkgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgY2FsLnNldCgxOTk3LCBDYWxlbmRhci5BVUdVU1QsIDEyKTsgLy8gV2VkbmVzZGF5CisgICAgICAgIGNhbC5nZXRUaW1lKCk7IC8vIEZvcmNlIHVwZGF0ZQorICAgICAgICBjYWwuc2V0TGVuaWVudChsZW5pZW50KTsKKyAgICAgICAgY2FsLnNldCgxOTk2LCBDYWxlbmRhci5ERUNFTUJFUiwgMSk7IC8vIFNldCB0aGUgZGF0ZSB0byBiZSBEZWNlbWJlciAxLCAxOTk2CisgICAgICAgIGludCBkb3cgPSBjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKTsKKyAgICAgICAgaW50IG1pbiA9IGNhbC5nZXRNaW5pbXVtKENhbGVuZGFyLkRBWV9PRl9XRUVLKTsKKyAgICAgICAgaW50IG1heCA9IGNhbC5nZXRNYXhpbXVtKENhbGVuZGFyLkRBWV9PRl9XRUVLKTsKKyAgICAgICAgaWYgKGRvdyA8IG1pbiB8fCBkb3cgPiBtYXgpIGVycmxuKCJGQUlMOiBEYXkgb2Ygd2VlayAiICsgZG93ICsgIiBvdXQgb2YgcmFuZ2UiKTsKKyAgICAgICAgaWYgKGRvdyAhPSBDYWxlbmRhci5TVU5EQVkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMMjogRGF5IG9mIHdlZWsgc2hvdWxkIGJlIFNVTkRBWTsgaXMgIiArIGRvdyArICI6ICIgKyBjYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAobWluICE9IENhbGVuZGFyLlNVTkRBWSB8fCBtYXggIT0gQ2FsZW5kYXIuU0FUVVJEQVkpIGVycmxuKCJGQUlMOiBNaW4vbWF4IGJhZCIpOworICAgIH0KKworICAgIC8vIFZlcmlmeSB0aGF0IHRoZSBjbG9uZSBtZXRob2QgcHJvZHVjZXMgZGlzdGluY3Qgb2JqZWN0cyB3aXRoIG5vCisgICAgLy8gdW5pbnRlbnRpb25hbGx5IHNoYXJlZCBmaWVsZHMuCisgICAgcHVibGljIHZvaWQgVGVzdENsb25lc1VuaXF1ZTkwOCgpIHsKKyAgICAgICAgQ2FsZW5kYXIgYyA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIENhbGVuZGFyIGQgPSAoQ2FsZW5kYXIpYy5jbG9uZSgpOworICAgICAgICBjLnNldChDYWxlbmRhci5NSUxMSVNFQ09ORCwgMTIzKTsKKyAgICAgICAgZC5zZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQsIDQ1Nik7CisgICAgICAgIGlmIChjLmdldChDYWxlbmRhci5NSUxMSVNFQ09ORCkgIT0gMTIzIHx8CisgICAgICAgICAgICBkLmdldChDYWxlbmRhci5NSUxMSVNFQ09ORCkgIT0gNDU2KSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogQ2xvbmVzIHNoYXJlIGZpZWxkcyIpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gVmVyaWZ5IGVmZmVjdCBvZiBHcmVnb3JpYW4gY3V0b2ZmIHZhbHVlCisgICAgcHVibGljIHZvaWQgVGVzdEdyZWdvcmlhbkNoYW5nZTc2OCgpIHsKKyAgICAgICAgYm9vbGVhbiBiOworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgIGxvZ2xuKCJXaXRoIGN1dG9mZiAiICsgYy5nZXRHcmVnb3JpYW5DaGFuZ2UoKSk7CisgICAgICAgIGxvZ2xuKCIgaXNMZWFwWWVhcigxODAwKSA9ICIgKyAoYj1jLmlzTGVhcFllYXIoMTgwMCkpKTsKKyAgICAgICAgbG9nbG4oIiAoc2hvdWxkIGJlIEZBTFNFKSIpOworICAgICAgICBpZiAoYiAhPSBmYWxzZSkgZXJybG4oIkZBSUwiKTsKKyAgICAgICAgamF2YS51dGlsLkNhbGVuZGFyIHRlbXBjYWwgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgdGVtcGNhbC5jbGVhcigpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTAwLCAwLCAxKTsKKyAgICAgICAgYy5zZXRHcmVnb3JpYW5DaGFuZ2UodGVtcGNhbC5nZXRUaW1lKCkpOyAvLyBKYW4gMSAxOTAwCisgICAgICAgIGxvZ2xuKCJXaXRoIGN1dG9mZiAiICsgYy5nZXRHcmVnb3JpYW5DaGFuZ2UoKSk7CisgICAgICAgIGxvZ2xuKCIgaXNMZWFwWWVhcigxODAwKSA9ICIgKyAoYj1jLmlzTGVhcFllYXIoMTgwMCkpKTsKKyAgICAgICAgbG9nbG4oIiAoc2hvdWxkIGJlIFRSVUUpIik7CisgICAgICAgIGlmIChiICE9IHRydWUpIGVycmxuKCJGQUlMIik7CisgICAgfQorCisgICAgLy8gVGVzdCB0aGUgY29ycmVjdCBiZWhhdmlvciBvZiB0aGUgZGlzYW1iaWd1YXRpb24gYWxnb3JpdGhtLgorICAgIHB1YmxpYyB2b2lkIFRlc3REaXNhbWJpZ3VhdGlvbjc2NSgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBDYWxlbmRhciBjID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgYy5zZXRMZW5pZW50KGZhbHNlKTsKKworICAgICAgICBjLmNsZWFyKCk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLllFQVIsIDE5OTcpOworICAgICAgICBjLnNldChDYWxlbmRhci5NT05USCwgQ2FsZW5kYXIuSlVORSk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLkRBVEUsIDMpOworCisgICAgICAgIHZlcmlmeTc2NSgiMTk5NyB0aGlyZCBkYXkgb2YgSnVuZSA9ICIsIGMsIDE5OTcsIENhbGVuZGFyLkpVTkUsIDMpOworCisgICAgICAgIGMuY2xlYXIoKTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuWUVBUiwgMTk5Nyk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLLCBDYWxlbmRhci5UVUVTREFZKTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuTU9OVEgsIENhbGVuZGFyLkpVTkUpOworICAgICAgICBjLnNldChDYWxlbmRhci5EQVlfT0ZfV0VFS19JTl9NT05USCwgMSk7CisgICAgICAgIHZlcmlmeTc2NSgiMTk5NyBmaXJzdCBUdWVzZGF5IGluIEp1bmUgPSAiLCBjLCAxOTk3LCBDYWxlbmRhci5KVU5FLCAzKTsKKworICAgICAgICBjLmNsZWFyKCk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLllFQVIsIDE5OTcpOworICAgICAgICBjLnNldChDYWxlbmRhci5EQVlfT0ZfV0VFSywgQ2FsZW5kYXIuVFVFU0RBWSk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5KVU5FKTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuREFZX09GX1dFRUtfSU5fTU9OVEgsIC0xKTsKKyAgICAgICAgdmVyaWZ5NzY1KCIxOTk3IGxhc3QgVHVlc2RheSBpbiBKdW5lID0gIiwgYywgMTk5NywgQ2FsZW5kYXIuSlVORSwgMjQpOworCisgICAgICAgIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGMuY2xlYXIoKTsKKyAgICAgICAgICAgIGMuc2V0KENhbGVuZGFyLllFQVIsIDE5OTcpOworICAgICAgICAgICAgYy5zZXQoQ2FsZW5kYXIuREFZX09GX1dFRUssIENhbGVuZGFyLlRVRVNEQVkpOworICAgICAgICAgICAgYy5zZXQoQ2FsZW5kYXIuTU9OVEgsIENhbGVuZGFyLkpVTkUpOworICAgICAgICAgICAgYy5zZXQoQ2FsZW5kYXIuREFZX09GX1dFRUtfSU5fTU9OVEgsIDApOworICAgICAgICAgICAgYy5nZXRUaW1lKCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgZSA9IGV4OworICAgICAgICB9CisgICAgICAgIHZlcmlmeTc2NSgiMTk5NyB6ZXJvLXRoIFR1ZXNkYXkgaW4gSnVuZSA9ICIsIGUsIGMpOworCisgICAgICAgIGMuY2xlYXIoKTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuWUVBUiwgMTk5Nyk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLLCBDYWxlbmRhci5UVUVTREFZKTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuTU9OVEgsIENhbGVuZGFyLkpVTkUpOworICAgICAgICBjLnNldChDYWxlbmRhci5XRUVLX09GX01PTlRILCAxKTsKKyAgICAgICAgdmVyaWZ5NzY1KCIxOTk3IFR1ZXNkYXkgaW4gd2VlayAxIG9mIEp1bmUgPSAiLCBjLCAxOTk3LCBDYWxlbmRhci5KVU5FLCAzKTsKKworICAgICAgICBjLmNsZWFyKCk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLllFQVIsIDE5OTcpOworICAgICAgICBjLnNldChDYWxlbmRhci5EQVlfT0ZfV0VFSywgQ2FsZW5kYXIuVFVFU0RBWSk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5KVU5FKTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuV0VFS19PRl9NT05USCwgNSk7CisgICAgICAgIHZlcmlmeTc2NSgiMTk5NyBUdWVzZGF5IGluIHdlZWsgNSBvZiBKdW5lID0gIiwgYywgMTk5NywgQ2FsZW5kYXIuSlVMWSwgMSk7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGMuY2xlYXIoKTsKKyAgICAgICAgICAgIGMuc2V0KENhbGVuZGFyLllFQVIsIDE5OTcpOworICAgICAgICAgICAgYy5zZXQoQ2FsZW5kYXIuREFZX09GX1dFRUssIENhbGVuZGFyLlRVRVNEQVkpOworICAgICAgICAgICAgYy5zZXQoQ2FsZW5kYXIuTU9OVEgsIENhbGVuZGFyLkpVTkUpOworICAgICAgICAgICAgYy5zZXQoQ2FsZW5kYXIuV0VFS19PRl9NT05USCwgMCk7CisgICAgICAgICAgICB2ZXJpZnk3NjUoIjE5OTcgVHVlc2RheSBpbiB3ZWVrIDAgb2YgSnVuZSA9ICIsIGMsIDE5OTcsIENhbGVuZGFyLk1BWSwgMjcpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeGNlcHRpb24gc2VlbjoiKTsKKyAgICAgICAgICAgIC8vIGV4LnByaW50U3RhY2tUcmFjZShsb2cpOworICAgICAgICB9CisKKyAgICAgICAgYy5jbGVhcigpOworICAgICAgICBjLnNldChDYWxlbmRhci5ZRUFSLCAxOTk3KTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuREFZX09GX1dFRUssIENhbGVuZGFyLlRVRVNEQVkpOworICAgICAgICBjLnNldChDYWxlbmRhci5XRUVLX09GX1lFQVIsIDEpOworICAgICAgICB2ZXJpZnk3NjUoIjE5OTcgVHVlc2RheSBpbiB3ZWVrIDEgb2YgeWVhciA9ICIsIGMsIDE5OTYsIENhbGVuZGFyLkRFQ0VNQkVSLCAzMSk7CisKKyAgICAgICAgYy5jbGVhcigpOworICAgICAgICBjLnNldChDYWxlbmRhci5ZRUFSLCAxOTk3KTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuREFZX09GX1dFRUssIENhbGVuZGFyLlRVRVNEQVkpOworICAgICAgICBjLnNldChDYWxlbmRhci5XRUVLX09GX1lFQVIsIDEwKTsKKyAgICAgICAgdmVyaWZ5NzY1KCIxOTk3IFR1ZXNkYXkgaW4gd2VlayAxMCBvZiB5ZWFyID0gIiwgYywgMTk5NywgQ2FsZW5kYXIuTUFSQ0gsIDQpOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjLmNsZWFyKCk7CisgICAgICAgICAgICBjLnNldChDYWxlbmRhci5ZRUFSLCAxOTk3KTsKKyAgICAgICAgICAgIGMuc2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLLCBDYWxlbmRhci5UVUVTREFZKTsKKyAgICAgICAgICAgIGMuc2V0KENhbGVuZGFyLldFRUtfT0ZfWUVBUiwgMCk7CisgICAgICAgICAgICB2ZXJpZnk3NjUoIjE5OTcgVHVlc2RheSBpbiB3ZWVrIDAgb2YgeWVhciA9ICIsIGMsIDE5OTYsIENhbGVuZGFyLkRFQ0VNQkVSLCAyNCk7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCJGYWlsOiBXRUVLX09GX1lFQVIgMCBzaG91bGQgYmUgaWxsZWdhbCIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICB9CisgICAgfQorICAgIHZvaWQgdmVyaWZ5NzY1KFN0cmluZyBtc2csIENhbGVuZGFyIGMsIGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXkpIHsKKyAgICAgICAgaW50IGN5ID0gYy5nZXQoQ2FsZW5kYXIuWUVBUik7IC8vIE5FV0NBTAorICAgICAgICBpbnQgY20gPSBjLmdldChDYWxlbmRhci5NT05USCk7CisgICAgICAgIGludCBjZCA9IGMuZ2V0KENhbGVuZGFyLkRBVEUpOworICAgICAgICBpZiAoY3kgPT0geWVhciAmJgorICAgICAgICAgICAgY20gPT0gbW9udGggJiYKKyAgICAgICAgICAgIGNkID09IGRheSkgeworICAgICAgICAgICAgbG9nbG4oIlBBU1M6ICIgKyBtc2cgKyBjLmdldFRpbWUoKSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIG1zZyArIGN5ICsgIi8iICsgKGNtKzEpICsgIi8iICsgY2QgKworICAgICAgICAgICAgICAgICAgIj0iICsgYy5nZXRUaW1lKCkgKworICAgICAgICAgICAgICAgICAgIjsgZXhwZWN0ZWQgIiArCisgICAgICAgICAgICAgICAgICB5ZWFyICsgIi8iICsgKG1vbnRoKzEpICsgIi8iICsgZGF5KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvLyBDYWxsZWQgd2hlbiBlIGV4cGVjdGVkIHRvIGJlIG5vbi1udWxsCisgICAgdm9pZCB2ZXJpZnk3NjUoU3RyaW5nIG1zZywgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUsIENhbGVuZGFyIGMpIHsKKyAgICAgICAgaWYgKGUgPT0gbnVsbCkgZXJybG4oIkZBSUw6IE5vIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBmb3IgIiArIG1zZyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMuZ2V0VGltZSgpKTsKKyAgICAgICAgZWxzZSBsb2dsbigiUEFTUzogIiArIG1zZyArICJJbGxlZ2FsQXJndW1lbnQgYXMgZXhwZWN0ZWQiKTsKKyAgICB9CisKKyAgICAvLyBUZXN0IHRoZSBiZWhhdmlvciBvZiBHTVQgdnMuIGxvY2FsIHRpbWUKKyAgICBwdWJsaWMgdm9pZCBUZXN0R01UdnNMb2NhbDQwNjQ2NTQoKSB7CisgICAgICAgIC8vIFNhbXBsZSBvdXRwdXQgMToKKyAgICAgICAgLy8gJSAvdXNyL2xvY2FsL2phdmEvamRrMS4xLjMvc29sYXJpcy9iaW4vamF2YSB0ZXN0IDE5OTcgMSAxIDEyIDAgMAorICAgICAgICAvLyBkYXRlID0gV2VkIEphbiAwMSAwNDowMDowMCBQU1QgMTk5NworICAgICAgICAvLyBvZmZzZXQgZm9yIFdlZCBKYW4gMDEgMDQ6MDA6MDAgUFNUIDE5OTc9IC04aHIKKyAgICAgICAgYXV4NDA2NDY1NCgxOTk3LCAxLCAxLCAxMiwgMCwgMCk7CisKKyAgICAgICAgLy8gU2FtcGxlIG91dHB1dCAyOgorICAgICAgICAvLyAlIC91c3IvbG9jYWwvamF2YS9qZGsxLjEuMy9zb2xhcmlzL2Jpbi9qYXZhIHRlc3QgMTk5NyA0IDE2IDE4IDMwIDAKKyAgICAgICAgLy8gZGF0ZSA9IFdlZCBBcHIgMTYgMTA6MzA6MDAgUERUIDE5OTcKKyAgICAgICAgLy8gb2Zmc2V0IGZvciBXZWQgQXByIDE2IDEwOjMwOjAwIFBEVCAxOTk3PSAtN2hyCisKKyAgICAgICAgLy8gTm90ZSB0aGF0IGluIHNhbXBsZSBvdXRwdXQgMiBhY2NvcmRpbmcgdG8gdGhlIG9mZnNldCwgdGhlIGdtdCB0aW1lCisgICAgICAgIC8vIG9mIHRoZSByZXN1bHQgd291bGQgYmUgMTk5NyA0IDE2IDE3IDMwIDAgd2hpY2ggaXMgZGlmZmVyZW50IGZyb20gdGhlCisgICAgICAgIC8vIGlucHV0IG9mIDE5OTcgNCAxNiAxOCAzMCAwLgorICAgICAgICBhdXg0MDY0NjU0KDE5OTcsIDQsIDE2LCAxOCwgMzAsIDApOworICAgIH0KKyAgICB2b2lkIGF1eDQwNjQ2NTQoaW50IHlyLCBpbnQgbW8sIGludCBkdCwgaW50IGhyLCBpbnQgbW4sIGludCBzYykgeworICAgICAgICBEYXRlIGRhdGU7CisgICAgICAgIENhbGVuZGFyIGdtdGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGdtdGNhbC5zZXRUaW1lWm9uZShUaW1lWm9uZS5nZXRUaW1lWm9uZSgiQWZyaWNhL0Nhc2FibGFuY2EiKSk7CisgICAgICAgIGdtdGNhbC5zZXQoeXIsIG1vLTEsIGR0LCBociwgbW4sIHNjKTsKKyAgICAgICAgZ210Y2FsLnNldChDYWxlbmRhci5NSUxMSVNFQ09ORCwgMCk7CisKKyAgICAgICAgZGF0ZSA9IGdtdGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGxvZ2xuKCJkYXRlID0gIitkYXRlKTsKKworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCWNhbC5zZXRUaW1lWm9uZShUaW1lWm9uZS5nZXRUaW1lWm9uZSgiQW1lcmljYS9Mb3NfQW5nZWxzIikpOworICAgICAgICBjYWwuc2V0VGltZShkYXRlKTsKKworICAgICAgICBpbnQgb2Zmc2V0ID0gY2FsLmdldFRpbWVab25lKCkuZ2V0T2Zmc2V0KGNhbC5nZXQoQ2FsZW5kYXIuRVJBKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLllFQVIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuREFURSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5NSUxMSVNFQ09ORCkpOworCisgICAgICAgIGxvZ2xuKCJvZmZzZXQgZm9yICIrZGF0ZSsiPSAiKyhvZmZzZXQvMTAwMC82MC82MC4wKSArICJociIpOworCisgICAgICAgIGludCB1dGMgPSAoKGNhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpICogNjAgKworICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLk1JTlVURSkpICogNjAgKworICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuU0VDT05EKSkgKiAxMDAwICsKKyAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQpIC0gb2Zmc2V0OworCisgICAgICAgIGludCBleHBlY3RlZCA9ICgoaHIgKiA2MCArIG1uKSAqIDYwICsgc2MpICogMTAwMDsKKworICAgICAgICBpZiAodXRjICE9IGV4cGVjdGVkKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IERpc2NyZXBhbmN5IG9mICIgKworICAgICAgICAgICAgICAgICAgKHV0YyAtIGV4cGVjdGVkKSArICIgbWlsbGlzID0gIiArCisgICAgICAgICAgICAgICAgICAoKHV0Yy1leHBlY3RlZCkvMTAwMC82MC82MC4wKSArICIgaHIiKTsKKyAgICB9CisKKyAgICAvLyBWZXJpZnkgdGhhdCBhZGQgYW5kIHNldCB3b3JrIHJlZ2FyZGxlc3Mgb2YgdGhlIG9yZGVyIGluIHdoaWNoCisgICAgLy8gdGhleSBhcmUgY2FsbGVkLgorICAgIHB1YmxpYyB2b2lkIFRlc3RBZGRTZXRPcmRlcjYyMSgpIHsKKyAgICAgICAgamF2YS51dGlsLkNhbGVuZGFyIHRlbXBjYWwgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgdGVtcGNhbC5jbGVhcigpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk3LCA0LCAxNCwgMTMsIDIzLCA0NSk7CisgICAgICAgIERhdGUgZCA9IHRlbXBjYWwuZ2V0VGltZSgpOworCisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlICgpOworICAgICAgICBjYWwuc2V0VGltZSAoZCk7CisgICAgICAgIGNhbC5hZGQgKENhbGVuZGFyLkRBVEUsIC01KTsKKyAgICAgICAgY2FsLnNldCAoQ2FsZW5kYXIuSE9VUl9PRl9EQVksIDApOworICAgICAgICBjYWwuc2V0IChDYWxlbmRhci5NSU5VVEUsIDApOworICAgICAgICBjYWwuc2V0IChDYWxlbmRhci5TRUNPTkQsIDApOworICAgICAgICAvLyBtYSBmZWIgMDMgMDA6MDA6MDAgR01UKzAwOjAwIDE5OTcKKyAgICAgICAgU3RyaW5nIHMgPSBjYWwuZ2V0VGltZSAoKS50b1N0cmluZyAoKTsKKworICAgICAgICBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSAoKTsKKyAgICAgICAgY2FsLnNldFRpbWUgKGQpOworICAgICAgICBjYWwuc2V0IChDYWxlbmRhci5IT1VSX09GX0RBWSwgMCk7CisgICAgICAgIGNhbC5zZXQgKENhbGVuZGFyLk1JTlVURSwgMCk7CisgICAgICAgIGNhbC5zZXQgKENhbGVuZGFyLlNFQ09ORCwgMCk7CisgICAgICAgIGNhbC5hZGQgKENhbGVuZGFyLkRBVEUsIC01KTsKKyAgICAgICAgLy8gbWEgZmViIDAzIDEzOjExOjA2IEdNVCswMDowMCAxOTk3CisgICAgICAgIFN0cmluZyBzMiA9IGNhbC5nZXRUaW1lICgpLnRvU3RyaW5nICgpOworCisgICAgICAgIGlmIChzLmVxdWFscyhzMikpCisgICAgICAgICAgICBsb2dsbigiUGFzczogIiArIHMgKyAiID09ICIgKyBzMik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgcyArICIgIT0gIiArIHMyKTsKKyAgICB9CisKKyAgICAvLyBWZXJpZnkgdGhhdCBhZGQgd29ya3MuCisgICAgcHVibGljIHZvaWQgVGVzdEFkZDUyMCgpIHsKKyAgICAgICAgaW50IHkgPSAxOTk3LCBtID0gQ2FsZW5kYXIuRkVCUlVBUlksIGQgPSAxOworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciB0ZW1wID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCB5LCBtLCBkICk7CisgICAgICAgIGNoZWNrNTIwKHRlbXAsIHksIG0sIGQpOworCisgICAgICAgIHRlbXAuYWRkKCB0ZW1wLllFQVIsIDEgKTsKKyAgICAgICAgeSsrOworICAgICAgICBjaGVjazUyMCh0ZW1wLCB5LCBtLCBkKTsKKworICAgICAgICB0ZW1wLmFkZCggdGVtcC5NT05USCwgMSApOworICAgICAgICBtKys7CisgICAgICAgIGNoZWNrNTIwKHRlbXAsIHksIG0sIGQpOworCisgICAgICAgIHRlbXAuYWRkKCB0ZW1wLkRBVEUsIDEgKTsKKyAgICAgICAgZCsrOworICAgICAgICBjaGVjazUyMCh0ZW1wLCB5LCBtLCBkKTsKKworICAgICAgICB0ZW1wLmFkZCggdGVtcC5EQVRFLCAyICk7CisgICAgICAgIGQgKz0gMjsKKyAgICAgICAgY2hlY2s1MjAodGVtcCwgeSwgbSwgZCk7CisKKyAgICAgICAgdGVtcC5hZGQoIHRlbXAuREFURSwgMjggKTsKKyAgICAgICAgZCA9IDE7ICsrbTsKKyAgICAgICAgY2hlY2s1MjAodGVtcCwgeSwgbSwgZCk7CisgICAgfQorICAgIHZvaWQgY2hlY2s1MjAoQ2FsZW5kYXIgYywgaW50IHksIGludCBtLCBpbnQgZCkgeworICAgICAgICBpZiAoYy5nZXQoQ2FsZW5kYXIuWUVBUikgIT0geSB8fAorICAgICAgICAgICAgYy5nZXQoQ2FsZW5kYXIuTU9OVEgpICE9IG0gfHwKKyAgICAgICAgICAgIGMuZ2V0KENhbGVuZGFyLkRBVEUpICE9IGQpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMVVJFOiBFeHBlY3RlZCBZRUFSL01PTlRIL0RBVEUgb2YgIiArCisgICAgICAgICAgICAgICAgICB5ICsgIi8iICsgKG0rMSkgKyAiLyIgKyBkICsKKyAgICAgICAgICAgICAgICAgICI7IGdvdCAiICsKKyAgICAgICAgICAgICAgICAgIGMuZ2V0KENhbGVuZGFyLllFQVIpICsgIi8iICsKKyAgICAgICAgICAgICAgICAgIChjLmdldChDYWxlbmRhci5NT05USCkrMSkgKyAiLyIgKworICAgICAgICAgICAgICAgICAgYy5nZXQoQ2FsZW5kYXIuREFURSkpOworICAgICAgICB9CisgICAgICAgIGVsc2UgbG9nbG4oIkNvbmZpcm1lZDogIiArCisgICAgICAgICAgICAgICAgICAgeSArICIvIiArIChtKzEpICsgIi8iICsgZCk7CisgICAgfQorCisgICAgLy8gVmVyaWZ5IHRoYXQgc2V0dGluZyBmaWVsZHMgd29ya3MuICBUaGlzIHRlc3QgZmFpbHMgd2hlbiBhbiBleGNlcHRpb24gaXMgdGhyb3duLgorICAgIHB1YmxpYyB2b2lkIFRlc3RGaWVsZFNldDQ3ODEoKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBnID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBnMiA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICAgICAgLy8gQXQgdGhpcyBwb2ludCBVVEMgdmFsdWUgaXMgc2V0LCB2YXJpb3VzIGZpZWxkcyBhcmUgbm90LgorICAgICAgICAgICAgLy8gTm93IHNldCB0byBub29uLgorICAgICAgICAgICAgZzIuc2V0KENhbGVuZGFyLkhPVVIsIDEyKTsKKyAgICAgICAgICAgIGcyLnNldChDYWxlbmRhci5NSU5VVEUsIDApOworICAgICAgICAgICAgZzIuc2V0KENhbGVuZGFyLlNFQ09ORCwgMCk7CisgICAgICAgICAgICAvLyBBdCB0aGlzIHBvaW50IHRoZSBvYmplY3QgdGhpbmtzIFVUQyBpcyBOT1Qgc2V0LCBidXQgZmllbGRzIGFyZSBzZXQuCisgICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGxpbmUgd2lsbCByZXN1bHQgaW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGJlY2F1c2UKKyAgICAgICAgICAgIC8vIGl0IHRoaW5rcyB0aGUgWUVBUiBpcyBzZXQgYW5kIGl0IGlzIE5PVC4KKyAgICAgICAgICAgIGlmIChnMi5lcXVhbHMoZykpCisgICAgICAgICAgICAgICAgbG9nbG4oIlNhbWUiKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBsb2dsbigiRGlmZmVyZW50Iik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiVW5leHBlY3RlZCBleGNlcHRpb24gc2VlbjogIiArIGUpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gVGVzdCBzZXJpYWxpemF0aW9uIG9mIGEgQ2FsZW5kYXIgb2JqZWN0CisgICAgcHVibGljIHZvaWQgVGVzdFNlcmlhbGl6ZTMzNygpIHsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKworICAgICAgICBib29sZWFuIG9rID0gZmFsc2U7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEZpbGVPdXRwdXRTdHJlYW0gZiA9IG5ldyBGaWxlT3V0cHV0U3RyZWFtKEZJTEVOQU1FKTsKKyAgICAgICAgICAgIE9iamVjdE91dHB1dCBzID0gbmV3IE9iamVjdE91dHB1dFN0cmVhbShmKTsKKyAgICAgICAgICAgIHMud3JpdGVPYmplY3QoUFJFRklYKTsKKyAgICAgICAgICAgIHMud3JpdGVPYmplY3QoY2FsKTsKKyAgICAgICAgICAgIHMud3JpdGVPYmplY3QoUE9TVEZJWCk7CisgICAgICAgICAgICBmLmNsb3NlKCk7CisKKyAgICAgICAgICAgIEZpbGVJbnB1dFN0cmVhbSBpbiA9IG5ldyBGaWxlSW5wdXRTdHJlYW0oRklMRU5BTUUpOworICAgICAgICAgICAgT2JqZWN0SW5wdXRTdHJlYW0gdCA9IG5ldyBPYmplY3RJbnB1dFN0cmVhbShpbik7CisgICAgICAgICAgICBTdHJpbmcgcHJlID0gKFN0cmluZyl0LnJlYWRPYmplY3QoKTsKKyAgICAgICAgICAgIENhbGVuZGFyIGMgPSAoQ2FsZW5kYXIpdC5yZWFkT2JqZWN0KCk7CisgICAgICAgICAgICBTdHJpbmcgcG9zdCA9IChTdHJpbmcpdC5yZWFkT2JqZWN0KCk7CisgICAgICAgICAgICBpbi5jbG9zZSgpOworCisgICAgICAgICAgICBvayA9IHByZS5lcXVhbHMoUFJFRklYKSAmJgorICAgICAgICAgICAgICAgIHBvc3QuZXF1YWxzKFBPU1RGSVgpICYmCisgICAgICAgICAgICAgICAgY2FsLmVxdWFscyhjKTsKKworICAgICAgICAgICAgRmlsZSBmbCA9IG5ldyBGaWxlKEZJTEVOQU1FKTsKKyAgICAgICAgICAgIGZsLmRlbGV0ZSgpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhjZXB0aW9uIHJlY2VpdmVkOiIpOworICAgICAgICAgICAgLy8gZS5wcmludFN0YWNrVHJhY2UobG9nKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhjZXB0aW9uIHJlY2VpdmVkOiIpOworICAgICAgICAgICAgLy8gZS5wcmludFN0YWNrVHJhY2UobG9nKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghb2spIGVycmxuKCJTZXJpYWxpemF0aW9uIG9mIENhbGVuZGFyIG9iamVjdCBmYWlsZWQuIik7CisgICAgfQorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgUFJFRklYID0gImFiYyI7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBQT1NURklYID0gImRlZiI7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBGSUxFTkFNRSA9ICJ0bXAzMzcuYmluIjsKKworICAgIC8vIFRyeSB0byB6ZXJvIG91dCB0aGUgc2Vjb25kcyBmaWVsZAorICAgIHB1YmxpYyB2b2lkIFRlc3RTZWNvbmRzWmVybzEyMSgpIHsKKyAgICAgICAgQ2FsZW5kYXIgICAgICAgIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICAvLyBJbml0aWFsaXplIHdpdGggY3VycmVudCBkYXRlL3RpbWUKKyAgICAgICAgY2FsLnNldFRpbWUobmV3IERhdGUoKSk7CisgICAgICAgIC8vIFJvdW5kIGRvd24gdG8gbWludXRlCisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuU0VDT05ELCAwKTsKKyAgICAgICAgRGF0ZSAgICBkID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgU3RyaW5nIHMgPSBkLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChzLmluZGV4T2YoIjowMCAiKSA8IDApIGVycmxuKCJFeHBlY3RlZCB0byBzZWUgOjAwIGluICIgKyBzKTsKKyAgICB9CisKKyAgICAvLyBUcnkgdmFyaW91cyBzZXF1ZW5jZXMgb2YgYWRkLCBzZXQsIGFuZCBnZXQgbWV0aG9kIGNhbGxzLgorICAgIHB1YmxpYyB2b2lkIFRlc3RBZGRTZXRHZXQwNjEwKCkgeworICAgICAgICAvLworICAgICAgICAvLyBFcnJvciBjYXNlIDE6CisgICAgICAgIC8vIC0gVXBvbiBpbml0aWFsaXphdGlvbiBjYWxlbmRhciBmaWVsZHMsIG1pbGxpcyA9IFN5c3RlbS5jdXJyZW50VGltZQorICAgICAgICAvLyAtIEFmdGVyIHNldCBpcyBjYWxsZWQgZmllbGRzIGFyZSBpbml0aWFsaXplZCwgdGltZSBpcyBub3QKKyAgICAgICAgLy8gLSBBZGRpdGlvbiB1c2VzIG1pbGxpcyB3aGljaCBhcmUgc3RpbGwgKm5vdyoKKyAgICAgICAgLy8KKyAgICAgICAgeworICAgICAgICAgICAgQ2FsZW5kYXIgY2FsZW5kYXIgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoICkgOworICAgICAgICAgICAgY2FsZW5kYXIuc2V0KCAxOTkzLCBDYWxlbmRhci5KQU5VQVJZLCA0ICkgOworICAgICAgICAgICAgbG9nbG4oICIxQSkgIiArIHZhbHVlKCBjYWxlbmRhciApICkgOworICAgICAgICAgICAgY2FsZW5kYXIuYWRkKCBDYWxlbmRhci5EQVRFLCAxICkgOworICAgICAgICAgICAgU3RyaW5nIHYgPSB2YWx1ZShjYWxlbmRhcik7CisgICAgICAgICAgICBsb2dsbiggIjFCKSAiICsgdiApOworICAgICAgICAgICAgbG9nbG4oICItLSkgMTk5My8wLzUiICkgOworICAgICAgICAgICAgaWYgKCF2LmVxdWFscyhFWFBFQ1RFRF8wNjEwKSkgZXJybG4oIkV4cGVjdGVkICIgKyBFWFBFQ1RFRF8wNjEwICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI7IHNhdyAiICsgdik7CisgICAgICAgIH0KKworICAgICAgICAvLworICAgICAgICAvLyBFcnJvciBjYXNlIDI6CisgICAgICAgIC8vIC0gVXBvbiBpbml0aWFsaXphdGlvbiBjYWxlbmRhciBmaWVsZHMgc2V0LCBtaWxsaXMgPSAwCisgICAgICAgIC8vIC0gQWRkaXRpb24gdXNlcyBtaWxsaXMgd2hpY2ggYXJlIHN0aWxsIDE5NzAsIDAsIDEKKyAgICAgICAgLy8KKworICAgICAgICB7CisgICAgICAgICAgICBDYWxlbmRhciBjYWxlbmRhciA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhciggMTk5MywgQ2FsZW5kYXIuSkFOVUFSWSwgNCApIDsKKyAgICAgICAgICAgIGxvZ2xuKCAiMkEpICIgKyB2YWx1ZSggY2FsZW5kYXIgKSApIDsKKyAgICAgICAgICAgIGNhbGVuZGFyLmFkZCggQ2FsZW5kYXIuREFURSwgMSApIDsKKyAgICAgICAgICAgIFN0cmluZyB2ID0gdmFsdWUoY2FsZW5kYXIpOworICAgICAgICAgICAgbG9nbG4oICIyQikgIiArIHYgKTsKKyAgICAgICAgICAgIGxvZ2xuKCAiLS0pIDE5OTMvMC81IiApIDsKKyAgICAgICAgICAgIGlmICghdi5lcXVhbHMoRVhQRUNURURfMDYxMCkpIGVycmxuKCJFeHBlY3RlZCAiICsgRVhQRUNURURfMDYxMCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOyBzYXcgIiArIHYpOworICAgICAgICB9CisKKyAgICAgICAgLy8KKyAgICAgICAgLy8gRXJyb3IgY2FzZSAzOgorICAgICAgICAvLyAtIFVwb24gaW5pdGlhbGl6YXRpb24gY2FsZW5kYXIgZmllbGRzLCBtaWxsaXMgPSAwCisgICAgICAgIC8vIC0gZ2V0VGltZSggKSBpcyBjYWxsZWQgd2hpY2ggZm9yY2VzIHRoZSBtaWxsaXMgdG8gYmUgc2V0CisgICAgICAgIC8vIC0gQWRkaXRpb24gdXNlcyBtaWxsaXMgd2hpY2ggYXJlIGNvcnJlY3QKKyAgICAgICAgLy8KKworICAgICAgICB7CisgICAgICAgICAgICBDYWxlbmRhciBjYWxlbmRhciA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhciggMTk5MywgQ2FsZW5kYXIuSkFOVUFSWSwgNCApIDsKKyAgICAgICAgICAgIGxvZ2xuKCAiM0EpICIgKyB2YWx1ZSggY2FsZW5kYXIgKSApIDsKKyAgICAgICAgICAgIGNhbGVuZGFyLmdldFRpbWUoICkgOworICAgICAgICAgICAgY2FsZW5kYXIuYWRkKCBDYWxlbmRhci5EQVRFLCAxICkgOworICAgICAgICAgICAgU3RyaW5nIHYgPSB2YWx1ZShjYWxlbmRhcik7CisgICAgICAgICAgICBsb2dsbiggIjNCKSAiICsgdiApIDsKKyAgICAgICAgICAgIGxvZ2xuKCAiLS0pIDE5OTMvMC81IiApIDsKKyAgICAgICAgICAgIGlmICghdi5lcXVhbHMoRVhQRUNURURfMDYxMCkpIGVycmxuKCJFeHBlY3RlZCAiICsgRVhQRUNURURfMDYxMCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOyBzYXcgIiArIHYpOworICAgICAgICB9CisgICAgfQorICAgIHN0YXRpYyBTdHJpbmcgdmFsdWUoIENhbGVuZGFyIGNhbGVuZGFyICkgeworICAgICAgICByZXR1cm4oIGNhbGVuZGFyLmdldCggQ2FsZW5kYXIuWUVBUiApICArICIvIiArCisgICAgICAgICAgICAgICAgY2FsZW5kYXIuZ2V0KCBDYWxlbmRhci5NT05USCApICsgIi8iICsKKyAgICAgICAgICAgICAgICBjYWxlbmRhci5nZXQoIENhbGVuZGFyLkRBVEUgKSApIDsKKyAgICB9CisgICAgc3RhdGljIFN0cmluZyBFWFBFQ1RFRF8wNjEwID0gIjE5OTMvMC81IjsKKworICAgIC8vIFRlc3QgdGhhdCBjZXJ0YWluIGZpZWxkcyBvbiBhIGNlcnRhaW4gZGF0ZSBhcmUgYXMgZXhwZWN0ZWQuCisgICAgcHVibGljIHZvaWQgVGVzdEZpZWxkczA2MCgpIHsKKyAgICAgICAgaW50IHllYXIgPSAxOTk3OworICAgICAgICBpbnQgbW9udGggPSBqYXZhLnV0aWwuQ2FsZW5kYXIuT0NUT0JFUjsgIC8vb2N0b2JlcgorICAgICAgICBpbnQgZERhdGUgPSAyMjsgICAvL0RBWU9GV0VFSyBzaG91bGQgcmV0dXJuIDMgZm9yIFdlZG5lc2RheQorICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWxlbmRhciA9IG51bGw7CisKKyAgICAgICAgY2FsZW5kYXIgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoIHllYXIsIG1vbnRoLCBkRGF0ZSk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxFWFBFQ1RFRF9GSUVMRFMubGVuZ3RoOyApIHsKKyAgICAgICAgICAgIGludCBmaWVsZCA9IEVYUEVDVEVEX0ZJRUxEU1tpKytdOworICAgICAgICAgICAgaW50IGV4cGVjdGVkID0gRVhQRUNURURfRklFTERTW2krK107CisgICAgICAgICAgICBpZiAoY2FsZW5kYXIuZ2V0KGZpZWxkKSAhPSBleHBlY3RlZCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFeHBlY3RlZCBmaWVsZCAiICsgZmllbGQgKyAiIHRvIGhhdmUgdmFsdWUgIiArIGV4cGVjdGVkICsKKyAgICAgICAgICAgICAgICAgICAgICAiOyByZWNlaXZlZCAiICsgY2FsZW5kYXIuZ2V0KGZpZWxkKSArICIgaW5zdGVhZCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHN0YXRpYyBpbnQgRVhQRUNURURfRklFTERTW10gPSB7CisgICAgICAgIENhbGVuZGFyLllFQVIsIDE5OTcsCisgICAgICAgIENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5PQ1RPQkVSLAorICAgICAgICBDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIDIyLAorICAgICAgICBDYWxlbmRhci5EQVlfT0ZfV0VFSywgQ2FsZW5kYXIuV0VETkVTREFZLAorICAgICAgICBDYWxlbmRhci5EQVlfT0ZfV0VFS19JTl9NT05USCwgNCwKKyAgICAgICAgQ2FsZW5kYXIuREFZX09GX1lFQVIsIDI5NQorICAgIH07CisKKyAgICAvLyBWZXJpZnkgdGhhdCB0aGUgZmllbGRzIGFyZSBhcyBleHBlY3RlZCAobW9zdGx5IHplcm8pIGF0IHRoZSBlcG9jaCBzdGFydC4KKyAgICAvLyBOb3RlIHRoYXQgd2UgYWRqdXN0IGZvciB0aGUgZGVmYXVsdCB0aW1lem9uZSB0byBnZXQgbW9zdCB0aGluZ3MgdG8gemVyby4KKyAgICBwdWJsaWMgdm9pZCBUZXN0RXBvY2hTdGFydEZpZWxkcygpIHsKKyAgICAgICAgVGltZVpvbmUgeiA9IFRpbWVab25lLmdldERlZmF1bHQoKTsKKyAgICAgICAgQ2FsZW5kYXIgYyA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIERhdGUgZCA9IG5ldyBEYXRlKC16LmdldFJhd09mZnNldCgpKTsKKyAgICAgICAgaWYgKHouaW5EYXlsaWdodFRpbWUoZCkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJXYXJuaW5nOiBTa2lwcGluZyB0ZXN0IGJlY2F1c2UgIiArIGQgKworICAgICAgICAgICAgICAgICAgIiBpcyBpbiBEU1QuIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBjLnNldFRpbWUoZCk7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8Q2FsZW5kYXIuWk9ORV9PRkZTRVQ7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChjLmdldChpKSAhPSBFUE9DSF9GSUVMRFNbaV0pCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFeHBlY3RlZCBmaWVsZCAiICsgaSArICIgdG8gaGF2ZSB2YWx1ZSAiICsgRVBPQ0hfRklFTERTW2ldICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIjsgc2F3ICIgKyBjLmdldChpKSArICIgaW5zdGVhZCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGMuZ2V0KENhbGVuZGFyLlpPTkVfT0ZGU0VUKSAhPSB6LmdldFJhd09mZnNldCgpKQorICAgICAgICAgICAgICAgIGVycmxuKCJFeHBlY3RlZCBmaWVsZCBaT05FX09GRlNFVCB0byBoYXZlIHZhbHVlICIgKyB6LmdldFJhd09mZnNldCgpICsKKyAgICAgICAgICAgICAgICAgICAgICAiOyBzYXcgIiArIGMuZ2V0KENhbGVuZGFyLlpPTkVfT0ZGU0VUKSArICIgaW5zdGVhZCIpOworICAgICAgICAgICAgaWYgKGMuZ2V0KENhbGVuZGFyLkRTVF9PRkZTRVQpICE9IDApCisgICAgICAgICAgICAgICAgZXJybG4oIkV4cGVjdGVkIGZpZWxkIERTVF9PRkZTRVQgdG8gaGF2ZSB2YWx1ZSAwIiArCisgICAgICAgICAgICAgICAgICAgICAgIjsgc2F3ICIgKyBjLmdldChDYWxlbmRhci5EU1RfT0ZGU0VUKSArICIgaW5zdGVhZCIpOworICAgICAgICB9CisgICAgfQorICAgIC8vIFRoZXNlIGFyZSB0aGUgZmllbGRzIGF0IHRoZSBlcG9jaCBzdGFydAorICAgIHN0YXRpYyBpbnQgRVBPQ0hfRklFTERTW10gPSB7IDEsIDE5NzAsIDAsIDEsIDEsIDEsIDEsIDUsIDEsIDAsIDAsIDAsIDAsIDAsIDAsIC0yODgwMDAwMCwgMCB9OworCisgICAgLy8gVmVyaWZ5IHRoYXQgYXMgeW91IGFkZCBkYXlzIHRvIHRoZSBjYWxlbmRhciAoZS5nLiwgMjQgZGF5IHBlcmlvZHMpLAorICAgIC8vIHRoZSBkYXkgb2YgdGhlIHdlZWsgc2hpZnRzIGluIHRoZSBleHBlY3RlZCBwYXR0ZXJuLgorICAgIHB1YmxpYyB2b2lkIFRlc3RET1dQcm9ncmVzc2lvbigpIHsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0KKyAgICAgICAgICAgIG5ldyBHcmVnb3JpYW5DYWxlbmRhcigxOTcyLCBDYWxlbmRhci5PQ1RPQkVSLCAyNik7CisgICAgICAgIG1hcmNoQnlEZWx0YShjYWwsIDI0KTsgLy8gTGFzdCBwYXJhbWV0ZXIgbXVzdCBiZSAhPSAwIG1vZHVsbyA3CisgICAgfQorCisgICAgLy8gU3VwcGx5IGEgZGVsdGEgd2hpY2ggaXMgbm90IGEgbXVsdGlwbGUgb2YgNy4KKyAgICB2b2lkIG1hcmNoQnlEZWx0YShDYWxlbmRhciBjYWwsIGludCBkZWx0YSkgeworICAgICAgICBDYWxlbmRhciBjdXIgPSAoQ2FsZW5kYXIpY2FsLmNsb25lKCk7CisgICAgICAgIGludCBpbml0aWFsRE9XID0gY3VyLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSyk7CisgICAgICAgIGludCBET1csIG5ld0RPVyA9IGluaXRpYWxET1c7CisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIERPVyA9IG5ld0RPVzsKKyAgICAgICAgICAgIGxvZ2xuKCJET1cgPSAiICsgRE9XICsgIiAgIiArIGN1ci5nZXRUaW1lKCkpOworCisgICAgICAgICAgICBjdXIuYWRkKENhbGVuZGFyLkRBWV9PRl9XRUVLLCBkZWx0YSk7CisgICAgICAgICAgICBuZXdET1cgPSBjdXIuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKTsKKyAgICAgICAgICAgIGludCBleHBlY3RlZERPVyA9IDEgKyAoRE9XICsgZGVsdGEgLSAxKSAlIDc7CisgICAgICAgICAgICBpZiAobmV3RE9XICE9IGV4cGVjdGVkRE9XKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkRheSBvZiB3ZWVrIHNob3VsZCBiZSAiICsgZXhwZWN0ZWRET1cgKworICAgICAgICAgICAgICAgICAgICAgICIgaW5zdGVhZCBvZiAiICsgbmV3RE9XICsgIiBvbiAiICsgY3VyLmdldFRpbWUoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHdoaWxlIChuZXdET1cgIT0gaW5pdGlhbERPVyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEFjdHVhbE1pbk1heCgpIHsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKDE5NjcsIENhbGVuZGFyLk1BUkNILCAxMCk7CisgICAgICAgIGNhbC5zZXRGaXJzdERheU9mV2VlayhDYWxlbmRhci5TVU5EQVkpOworICAgICAgICBjYWwuc2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygzKTsKKworICAgICAgICBpZiAoY2FsLmdldEFjdHVhbE1pbmltdW0oQ2FsZW5kYXIuREFZX09GX01PTlRIKSAhPSAxKQorICAgICAgICAgICAgZXJybG4oIkFjdHVhbCBtaW5pbXVtIGRhdGUgZm9yIDMvMTAvMTk2NyBzaG91bGQgaGF2ZSBiZWVuIDE7IGdvdCAiICsKKyAgICAgICAgICAgICAgICAgIGNhbC5nZXRBY3R1YWxNaW5pbXVtKENhbGVuZGFyLkRBWV9PRl9NT05USCkpOworICAgICAgICBpZiAoY2FsLmdldEFjdHVhbE1heGltdW0oQ2FsZW5kYXIuREFZX09GX01PTlRIKSAhPSAzMSkKKyAgICAgICAgICAgIGVycmxuKCJBY3R1YWwgbWF4aW11bSBkYXRlIGZvciAzLzEwLzE5Njcgc2hvdWxkIGhhdmUgYmVlbiAzMTsgZ290ICIgKworICAgICAgICAgICAgICAgICAgY2FsLmdldEFjdHVhbE1heGltdW0oQ2FsZW5kYXIuREFZX09GX01PTlRIKSk7CisKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5NT05USCwgQ2FsZW5kYXIuRkVCUlVBUlkpOworICAgICAgICBpZiAoY2FsLmdldEFjdHVhbE1heGltdW0oQ2FsZW5kYXIuREFZX09GX01PTlRIKSAhPSAyOCkKKyAgICAgICAgICAgIGVycmxuKCJBY3R1YWwgbWF4aW11bSBkYXRlIGZvciAyLzEwLzE5Njcgc2hvdWxkIGhhdmUgYmVlbiAyODsgZ290ICIgKworICAgICAgICAgICAgICAgICAgY2FsLmdldEFjdHVhbE1heGltdW0oQ2FsZW5kYXIuREFZX09GX01PTlRIKSk7CisgICAgICAgIGlmIChjYWwuZ2V0QWN0dWFsTWF4aW11bShDYWxlbmRhci5EQVlfT0ZfWUVBUikgIT0gMzY1KQorICAgICAgICAgICAgZXJybG4oIk51bWJlciBvZiBkYXlzIGluIDE5Njcgc2hvdWxkIGhhdmUgYmVlbiAzNjU7IGdvdCAiICsKKyAgICAgICAgICAgICAgICAgIGNhbC5nZXRBY3R1YWxNYXhpbXVtKENhbGVuZGFyLkRBWV9PRl9ZRUFSKSk7CisKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCAxOTY4KTsKKyAgICAgICAgaWYgKGNhbC5nZXRBY3R1YWxNYXhpbXVtKENhbGVuZGFyLkRBWV9PRl9NT05USCkgIT0gMjkpCisgICAgICAgICAgICBlcnJsbigiQWN0dWFsIG1heGltdW0gZGF0ZSBmb3IgMi8xMC8xOTY4IHNob3VsZCBoYXZlIGJlZW4gMjk7IGdvdCAiICsKKyAgICAgICAgICAgICAgICAgIGNhbC5nZXRBY3R1YWxNYXhpbXVtKENhbGVuZGFyLkRBWV9PRl9NT05USCkpOworICAgICAgICBpZiAoY2FsLmdldEFjdHVhbE1heGltdW0oQ2FsZW5kYXIuREFZX09GX1lFQVIpICE9IDM2NikKKyAgICAgICAgICAgIGVycmxuKCJOdW1iZXIgb2YgZGF5cyBpbiAxOTY4IHNob3VsZCBoYXZlIGJlZW4gMzY2OyBnb3QgIiArCisgICAgICAgICAgICAgICAgICBjYWwuZ2V0QWN0dWFsTWF4aW11bShDYWxlbmRhci5EQVlfT0ZfWUVBUikpOworICAgICAgICAvLyBVc2luZyB3ZWVrIHNldHRpbmdzIG9mIFNVTkRBWS8zIChzZWUgYWJvdmUpCisgICAgICAgIGlmIChjYWwuZ2V0QWN0dWFsTWF4aW11bShDYWxlbmRhci5XRUVLX09GX1lFQVIpICE9IDUyKQorICAgICAgICAgICAgZXJybG4oIk51bWJlciBvZiB3ZWVrcyBpbiAxOTY4IHNob3VsZCBoYXZlIGJlZW4gNTI7IGdvdCAiICsKKyAgICAgICAgICAgICAgICAgIGNhbC5nZXRBY3R1YWxNYXhpbXVtKENhbGVuZGFyLldFRUtfT0ZfWUVBUikpOworCisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuWUVBUiwgMTk3Nik7CisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuREFZX09GX1dFRUssIGNhbC5nZXRGaXJzdERheU9mV2VlaygpKTsgLy8gQWRkZWQgLSBMaXUgMTEvNi8wMAorICAgICAgICAvLyBVc2luZyB3ZWVrIHNldHRpbmdzIG9mIFNVTkRBWS8zIChzZWUgYWJvdmUpCisgICAgICAgIGlmIChjYWwuZ2V0QWN0dWFsTWF4aW11bShDYWxlbmRhci5XRUVLX09GX1lFQVIpICE9IDUzKQorICAgICAgICAgICAgZXJybG4oIk51bWJlciBvZiB3ZWVrcyBpbiAxOTc2IHNob3VsZCBoYXZlIGJlZW4gNTM7IGdvdCAiICsKKyAgICAgICAgICAgICAgICAgIGNhbC5nZXRBY3R1YWxNYXhpbXVtKENhbGVuZGFyLldFRUtfT0ZfWUVBUikpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RSb2xsKCkgeworICAgICAgICBDYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoMTk5NywgQ2FsZW5kYXIuSkFOVUFSWSwgMzEpOworCisgICAgICAgIGludFtdIGRheVZhbHVlcyA9IHsgMzEsIDI4LCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzEgfTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkYXlWYWx1ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIENhbGVuZGFyIGNhbDIgPSAoQ2FsZW5kYXIpY2FsLmNsb25lKCk7CisgICAgICAgICAgICBjYWwyLnJvbGwoQ2FsZW5kYXIuTU9OVEgsIGkpOworICAgICAgICAgICAgaWYgKGNhbDIuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCkgIT0gZGF5VmFsdWVzW2ldKQorICAgICAgICAgICAgICAgIGVycmxuKCJSb2xsaW5nIHRoZSBtb250aCBpbiAxLzMxLzE5OTcgdXAgYnkgIiArIGkgKyAiIHNob3VsZCBoYXZlIHlpZWxkZWQgIgorICAgICAgICAgICAgICAgICAgICAgICsgKChpICsgMSkgJSAxMikgKyAiLyIgKyBkYXlWYWx1ZXNbaV0gKyAiLzE5OTcsIGJ1dCBhY3R1YWxseSB5aWVsZGVkICIKKyAgICAgICAgICAgICAgICAgICAgICArICgoaSArIDEpICUgMTIpICsgIi8iICsgY2FsMi5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKSArICIvMTk5Ny4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGNhbC5zZXQoMTk5NiwgQ2FsZW5kYXIuRkVCUlVBUlksIDI5KTsKKworICAgICAgICAvL2ludFtdIG1vbnRoVmFsdWVzID0geyAxLCAyLCAyLCAyLCAxLCAyLCAyLCAyLCAxLCAyIH07CisgICAgICAgIC8vaW50W10gZGF5VmFsdWVzMiA9IHsgMjksIDEsIDEsIDEsIDI5LCAxLCAxLCAxLCAyOSwgMSB9OworCisgICAgICAgIC8vIEkndmUgcmV2aXNlZCB0aGUgZXhwZWN0ZWQgdmFsdWVzIHRvIG1ha2UgbW9yZSBzZW5zZSAtLSByb2xsaW5nCisgICAgICAgIC8vIHRoZSB5ZWFyIHNob3VsZCBwaW4gdGhlIERBWV9PRl9NT05USC4gLSBMaXUgMTEvNi8wMAorICAgICAgICBpbnRbXSBtb250aFZhbHVlcyA9IHsgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSB9OworICAgICAgICBpbnRbXSBkYXlWYWx1ZXMyID0geyAyOSwgMjgsIDI4LCAyOCwgMjksIDI4LCAyOCwgMjgsIDI5LCAyOCB9OworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGF5VmFsdWVzMi5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgQ2FsZW5kYXIgY2FsMiA9IChDYWxlbmRhciljYWwuY2xvbmUoKTsKKyAgICAgICAgICAgIGNhbDIucm9sbChDYWxlbmRhci5ZRUFSLCBpKTsKKyAgICAgICAgICAgIGlmIChjYWwyLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpICE9IGRheVZhbHVlczJbaV0gfHwgY2FsMi5nZXQoQ2FsZW5kYXIuTU9OVEgpCisgICAgICAgICAgICAgICAgIT0gbW9udGhWYWx1ZXNbaV0pCisgICAgICAgICAgICAgICAgZXJybG4oIlJvbGwgMi8yOS8xOTk2IGJ5ICIgKyBpICsgIiB5ZWFyOiBleHBlY3RlZCAiCisgICAgICAgICAgICAgICAgICAgICAgKyAobW9udGhWYWx1ZXNbaV0gKyAxKSArICIvIiArIGRheVZhbHVlczJbaV0gKyAiLyIKKyAgICAgICAgICAgICAgICAgICAgICArICgxOTk2ICsgaSkgKyAiLCBnb3QgIgorICAgICAgICAgICAgICAgICAgICAgICsgKGNhbDIuZ2V0KENhbGVuZGFyLk1PTlRIKSArIDEpICsgIi8iICsKKyAgICAgICAgICAgICAgICAgICAgICBjYWwyLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpICsgIi8iICsgY2FsMi5nZXQoQ2FsZW5kYXIuWUVBUikpOworICAgICAgICB9CisKKyAgICAgICAgLy8gVGVzdCByb2xsaW5nIGhvdXIgb2YgZGF5CisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVksIDApOworICAgICAgICBjYWwucm9sbChDYWxlbmRhci5IT1VSX09GX0RBWSwgLTIpOworICAgICAgICBpbnQgZiA9IGNhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpOworICAgICAgICBpZiAoZiAhPSAyMikgZXJybG4oIlJvbGxpbmcgSE9VUl9PRl9EQVk9MCBkZWx0YT0tMiBnYXZlICIgKyBmICsgIiBXYW50ZWQgMjIiKTsKKyAgICAgICAgY2FsLnJvbGwoQ2FsZW5kYXIuSE9VUl9PRl9EQVksIDUpOworICAgICAgICBmID0gY2FsLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSk7CisgICAgICAgIGlmIChmICE9IDMpIGVycmxuKCJSb2xsaW5nIEhPVVJfT0ZfREFZPTIyIGRlbHRhPTUgZ2F2ZSAiICsgZiArICIgV2FudGVkIDMiKTsKKyAgICAgICAgY2FsLnJvbGwoQ2FsZW5kYXIuSE9VUl9PRl9EQVksIDIxKTsKKyAgICAgICAgZiA9IGNhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpOworICAgICAgICBpZiAoZiAhPSAwKSBlcnJsbigiUm9sbGluZyBIT1VSX09GX0RBWT0zIGRlbHRhPTIxIGdhdmUgIiArIGYgKyAiIFdhbnRlZCAwIik7CisKKyAgICAgICAgLy8gVGVzdCByb2xsaW5nIGhvdXIKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5IT1VSX09GX0RBWSwgMCk7CisgICAgICAgIGNhbC5yb2xsKENhbGVuZGFyLkhPVVIsIC0yKTsKKyAgICAgICAgZiA9IGNhbC5nZXQoQ2FsZW5kYXIuSE9VUik7CisgICAgICAgIGlmIChmICE9IDEwKSBlcnJsbigiUm9sbGluZyBIT1VSPTAgZGVsdGE9LTIgZ2F2ZSAiICsgZiArICIgV2FudGVkIDEwIik7CisgICAgICAgIGNhbC5yb2xsKENhbGVuZGFyLkhPVVIsIDUpOworICAgICAgICBmID0gY2FsLmdldChDYWxlbmRhci5IT1VSKTsKKyAgICAgICAgaWYgKGYgIT0gMykgZXJybG4oIlJvbGxpbmcgSE9VUj0xMCBkZWx0YT01IGdhdmUgIiArIGYgKyAiIFdhbnRlZCAzIik7CisgICAgICAgIGNhbC5yb2xsKENhbGVuZGFyLkhPVVIsIDkpOworICAgICAgICBmID0gY2FsLmdldChDYWxlbmRhci5IT1VSKTsKKyAgICAgICAgaWYgKGYgIT0gMCkgZXJybG4oIlJvbGxpbmcgSE9VUj0zIGRlbHRhPTkgZ2F2ZSAiICsgZiArICIgV2FudGVkIDAiKTsKKyAgICB9Cit9CisKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvSGVicmV3VGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0hlYnJld1Rlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jMjAyNTJhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0hlYnJld1Rlc3QuamF2YQpAQCAtMCwwICsxLDM2NSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0hlYnJld1Rlc3QuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wOC8wNyAwMzoxMDoxOCAkIAorICogJFJldmlzaW9uOiAxLjUgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY2FsZW5kYXI7CisKKy8vaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CisvL2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CisKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Mb2NhbGVVdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuSGVicmV3Q2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKKworLyoqCisgKiBUZXN0cyBmb3IgdGhlIDxjb2RlPkhlYnJld0NhbGVuZGFyPC9jb2RlPiBjbGFzcy4KKyAqLworcHVibGljIGNsYXNzIEhlYnJld1Rlc3QgZXh0ZW5kcyBDYWxlbmRhclRlc3QgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgSGVicmV3VGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICAvLyBDb25zdGFudHMgdG8gc2F2ZSB0eXBpbmcuCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVElTSFJJICA9IEhlYnJld0NhbGVuZGFyLlRJU0hSSTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIRVNIVkFOID0gSGVicmV3Q2FsZW5kYXIuSEVTSFZBTjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLSVNMRVYgID0gSGVicmV3Q2FsZW5kYXIuS0lTTEVWOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFVkVUICAgPSBIZWJyZXdDYWxlbmRhci5URVZFVDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTSEVWQVQgID0gSGVicmV3Q2FsZW5kYXIuU0hFVkFUOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFEQVJfMSAgPSBIZWJyZXdDYWxlbmRhci5BREFSXzE7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQURBUiAgICA9IEhlYnJld0NhbGVuZGFyLkFEQVI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTklTQU4gICA9IEhlYnJld0NhbGVuZGFyLk5JU0FOOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElZQVIgICAgPSBIZWJyZXdDYWxlbmRhci5JWUFSOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNJVkFOICAgPSBIZWJyZXdDYWxlbmRhci5TSVZBTjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUQU1VWiAgID0gSGVicmV3Q2FsZW5kYXIuVEFNVVo7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQVYgICAgICA9IEhlYnJld0NhbGVuZGFyLkFWOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVMVUwgICAgPSBIZWJyZXdDYWxlbmRhci5FTFVMOworCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgYmVoYXZpb3Igb2YgSGVicmV3Q2FsZW5kYXIucm9sbAorICAgICAqIFRoZSBvbmx5IHJlYWwgbmFzdGluZXNzIHdpdGggcm9sbCBpcyB0aGUgTU9OVEggZmllbGQsIHNpbmNlIGEgeWVhciBjYW4KKyAgICAgKiBoYXZlIGEgdmFyaWFibGUgbnVtYmVyIG9mIG1vbnRocy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Um9sbCgpIHsKKyAgICAgICAgaW50W11bXSB0ZXN0cyA9IG5ldyBpbnRbXVtdIHsKKyAgICAgICAgICAgIC8vICAgICAgIGlucHV0ICAgICAgICAgICAgICAgIHJvbGwgYnkgICAgICAgICAgb3V0cHV0CisgICAgICAgICAgICAvLyAgeWVhciAgbW9udGggICAgIGRheSAgICAgZmllbGQgYW1vdW50ICAgIHllYXIgIG1vbnRoICAgICBkYXkKKyAgICAKKyAgICAgICAgICAgIHsgICA1NzU5LCBIRVNIVkFOLCAgIDIsICAgICBNT05USCwgICAxLCAgICAgNTc1OSwgS0lTTEVWLCAgICAyIH0sICAgLy8gbm9uLWxlYXAgeWVhcnMKKyAgICAgICAgICAgIHsgICA1NzU5LCBTSEVWQVQsICAgIDIsICAgICBNT05USCwgICAxLCAgICAgNTc1OSwgQURBUiwgICAgICAyIH0sCisgICAgICAgICAgICB7ICAgNTc1OSwgU0hFVkFULCAgICAyLCAgICAgTU9OVEgsICAgMiwgICAgIDU3NTksIE5JU0FOLCAgICAgMiB9LAorICAgICAgICAgICAgeyAgIDU3NTksIFNIRVZBVCwgICAgMiwgICAgIE1PTlRILCAgMTIsICAgICA1NzU5LCBTSEVWQVQsICAgIDIgfSwKKyAgICAgICAgICAgIHsgICA1NzU5LCBBViwgICAgICAgIDEsICAgICBNT05USCwgIDEyLCAgICAgNTc1OSwgQVYsICAgICAgICAxIH0sIC8vIEFsYW4KKworICAgICAgICAgICAgeyAgIDU3NTcsIEhFU0hWQU4sICAgMiwgICAgIE1PTlRILCAgIDEsICAgICA1NzU3LCBLSVNMRVYsICAgIDIgfSwgICAvLyBsZWFwIHllYXJzCisgICAgICAgICAgICB7ICAgNTc1NywgU0hFVkFULCAgICAyLCAgICAgTU9OVEgsICAgMSwgICAgIDU3NTcsIEFEQVJfMSwgICAgMiB9LAorICAgICAgICAgICAgeyAgIDU3NTcsIFNIRVZBVCwgICAgMiwgICAgIE1PTlRILCAgIDIsICAgICA1NzU3LCBBREFSLCAgICAgIDIgfSwKKyAgICAgICAgICAgIHsgICA1NzU3LCBTSEVWQVQsICAgIDIsICAgICBNT05USCwgICAzLCAgICAgNTc1NywgTklTQU4sICAgICAyIH0sCisgICAgICAgICAgICB7ICAgNTc1NywgU0hFVkFULCAgICAyLCAgICAgTU9OVEgsICAxMiwgICAgIDU3NTcsIFRFVkVULCAgICAgMiB9LAorICAgICAgICAgICAgeyAgIDU3NTcsIFNIRVZBVCwgICAgMiwgICAgIE1PTlRILCAgMTMsICAgICA1NzU3LCBTSEVWQVQsICAgIDIgfSwKKyAgICAgICAgICAgIHsgICA1NzU3LCBBViwgICAgICAgIDEsICAgICBNT05USCwgIDEyLCAgICAgNTc1NywgVEFNVVosICAgICAxIH0sIC8vIEFsYW4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgeyAgIDU3NTcsIEtJU0xFViwgICAgMSwgICAgIERBVEUsICAgMzAsICAgICA1NzU3LCBLSVNMRVYsICAgIDIgfSwgICAvLyAyOS1kYXkgbW9udGgKKyAgICAgICAgICAgIHsgICA1NzU4LCBLSVNMRVYsICAgIDEsICAgICBEQVRFLCAgIDMxLCAgICAgNTc1OCwgS0lTTEVWLCAgICAyIH0sICAgLy8gMzAtZGF5IG1vbnRoCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFRyeSBzb21lIG90aGVyIGZpZWxkcyB0b28KKyAgICAgICAgICAgIHsgICA1NzU3LCBUSVNIUkksICAgIDEsICAgICBZRUFSLCAgICAxLCAgICAgNTc1OCwgVElTSFJJLCAgICAxIH0sCisgICAKKworICAgICAgICAgICAgLy8gVHJ5IHNvbWUgcm9sbHMgdGhhdCByZXF1aXJlIG90aGVyIGZpZWxkcyB0byBiZSBhZGp1c3RlZAorICAgICAgICAgICAgeyAgIDU3NTcsIFRJU0hSSSwgICAzMCwgICAgIE1PTlRILCAgIDEsICAgICA1NzU3LCBIRVNIVkFOLCAgMjkgfSwKKyAgICAgICAgICAgIHsgICA1NzU4LCBLSVNMRVYsICAgMzAsICAgICBZRUFSLCAgIC0xLCAgICAgNTc1NywgS0lTTEVWLCAgIDI5IH0sCisgICAgICAgIH07CisgICAgICAgCisgICAgICAgIEhlYnJld0NhbGVuZGFyIGNhbCA9IG5ldyBIZWJyZXdDYWxlbmRhcihVVEMsIExvY2FsZS5nZXREZWZhdWx0KCkpOworCisgICAgICAgIGRvUm9sbEFkZChST0xMLCBjYWwsIHRlc3RzKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgYmVoYXZpb3Igb2YgSGVicmV3Q2FsZW5kYXIucm9sbAorICAgICAqIFRoZSBvbmx5IHJlYWwgbmFzdGluZXNzIHdpdGggcm9sbCBpcyB0aGUgTU9OVEggZmllbGQsIHNpbmNlIGEgeWVhciBjYW4KKyAgICAgKiBoYXZlIGEgdmFyaWFibGUgbnVtYmVyIG9mIG1vbnRocy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QWRkKCkgeworICAgICAgICBpbnRbXVtdIHRlc3RzID0gbmV3IGludFtdW10geworICAgICAgICAgICAgLy8gICAgICAgaW5wdXQgICAgICAgICAgICAgICAgYWRkIGJ5ICAgICAgICAgIG91dHB1dAorICAgICAgICAgICAgLy8gIHllYXIgIG1vbnRoICAgICBkYXkgICAgIGZpZWxkIGFtb3VudCAgICB5ZWFyICBtb250aCAgICAgZGF5CisgICAgICAgICAgICB7ICAgNTc1OSwgSEVTSFZBTiwgICAyLCAgICAgTU9OVEgsICAgMSwgICAgIDU3NTksIEtJU0xFViwgICAgMiB9LCAgIC8vIG5vbi1sZWFwIHllYXJzCisgICAgICAgICAgICB7ICAgNTc1OSwgU0hFVkFULCAgICAyLCAgICAgTU9OVEgsICAgMSwgICAgIDU3NTksIEFEQVIsICAgICAgMiB9LAorICAgICAgICAgICAgeyAgIDU3NTksIFNIRVZBVCwgICAgMiwgICAgIE1PTlRILCAgIDIsICAgICA1NzU5LCBOSVNBTiwgICAgIDIgfSwKKyAgICAgICAgICAgIHsgICA1NzU5LCBTSEVWQVQsICAgIDIsICAgICBNT05USCwgIDEyLCAgICAgNTc2MCwgU0hFVkFULCAgICAyIH0sCisKKyAgICAgICAgICAgIHsgICA1NzU3LCBIRVNIVkFOLCAgIDIsICAgICBNT05USCwgICAxLCAgICAgNTc1NywgS0lTTEVWLCAgICAyIH0sICAgLy8gbGVhcCB5ZWFycworICAgICAgICAgICAgeyAgIDU3NTcsIFNIRVZBVCwgICAgMiwgICAgIE1PTlRILCAgIDEsICAgICA1NzU3LCBBREFSXzEsICAgIDIgfSwKKyAgICAgICAgICAgIHsgICA1NzU3LCBTSEVWQVQsICAgIDIsICAgICBNT05USCwgICAyLCAgICAgNTc1NywgQURBUiwgICAgICAyIH0sCisgICAgICAgICAgICB7ICAgNTc1NywgU0hFVkFULCAgICAyLCAgICAgTU9OVEgsICAgMywgICAgIDU3NTcsIE5JU0FOLCAgICAgMiB9LAorICAgICAgICAgICAgeyAgIDU3NTcsIFNIRVZBVCwgICAgMiwgICAgIE1PTlRILCAgMTIsICAgICA1NzU4LCBURVZFVCwgICAgIDIgfSwKKyAgICAgICAgICAgIHsgICA1NzU3LCBTSEVWQVQsICAgIDIsICAgICBNT05USCwgIDEzLCAgICAgNTc1OCwgU0hFVkFULCAgICAyIH0sCisgICAgICAgICAgICAKKyAgICAgICAgICAgIHsgICA1NzU3LCBLSVNMRVYsICAgIDEsICAgICBEQVRFLCAgIDMwLCAgICAgNTc1NywgVEVWRVQsICAgICAyIH0sICAgLy8gMjktZGF5IG1vbnRoCisgICAgICAgICAgICB7ICAgNTc1OCwgS0lTTEVWLCAgICAxLCAgICAgREFURSwgICAzMSwgICAgIDU3NTgsIFRFVkVULCAgICAgMiB9LCAgIC8vIDMwLWRheSBtb250aAorICAgICAgICB9OworICAgICAgIAorICAgICAgICBIZWJyZXdDYWxlbmRhciBjYWwgPSBuZXcgSGVicmV3Q2FsZW5kYXIoVVRDLCBMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKworICAgICAgICBkb1JvbGxBZGQoQURELCBjYWwsIHRlc3RzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBIGh1Z2UgbGlzdCBvZiB0ZXN0IGNhc2VzIHRvIG1ha2Ugc3VyZSB0aGF0IGNvbXB1dGVUaW1lIGFuZCBjb21wdXRlRmllbGRzCisgICAgICogd29yayBwcm9wZXJseSBmb3IgYSB3aWRlIHJhbmdlIG9mIGRhdGEuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENhc2VzKCkgeworICAgICAgICBkb1Rlc3RDYXNlcyh0ZXN0Q2FzZXMsIG5ldyBIZWJyZXdDYWxlbmRhcigpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgVGVzdENhc2VbXSB0ZXN0Q2FzZXMgPSB7CisgICAgICAgIC8vCisgICAgICAgIC8vIE1vc3Qgb2YgdGhlc2UgdGVzdCBjYXNlcyB3ZXJlIHRha2VuIGZyb20gdGhlIGJhY2sgb2YKKyAgICAgICAgLy8gIkNhbGVuZHJpY2FsIENhbGN1bGF0aW9ucyIsIHdpdGggc29tZSBleHRyYXMgYWRkZWQgdG8gaGVscAorICAgICAgICAvLyBkZWJ1ZyBhIGZldyBvZiB0aGUgcHJvYmxlbXMgdGhhdCBjcm9wcGVkIHVwIGluIGRldmVsb3BtZW50LgorICAgICAgICAvLworICAgICAgICAvLyBUaGUgbW9udGhzIGluIHRoaXMgdGFibGUgYXJlIDEtYmFzZWQgcmF0aGVyIHRoYW4gMC1iYXNlZCwKKyAgICAgICAgLy8gYmVjYXVzZSBpdCdzIGVhc2llciB0byBlZGl0IHRoYXQgd2F5LgorICAgICAgICAvLworICAgICAgICAvLyAgICAgICAgIEp1bGlhbiBEYXkgIEVyYSAgWWVhciAgTW9udGggRGF5ICBXa0RheSBIb3VyIE1pbiBTZWMKKyAgICAgICAgbmV3IFRlc3RDYXNlKDE1MDcyMzEuNSwgIDAsICAzMTc0LCAgIDEyLCAgMTAsICBTVU4sICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDE2NjAwMzcuNSwgIDAsICAzNTkzLCAgICAzLCAgMjUsICBXRUQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDE3NDY4OTMuNSwgIDAsICAzODMxLCAgICAxLCAgIDMsICBXRUQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDE3NzA2NDEuNSwgIDAsICAzODk2LCAgICAxLCAgIDksICBTVU4sICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDE4OTI3MzEuNSwgIDAsICA0MjMwLCAgICA0LCAgMTgsICBXRUQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDE5MzE1NzkuNSwgIDAsICA0MzM2LCAgIDEwLCAgIDQsICBNT04sICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDE5NzQ4NTEuNSwgIDAsICA0NDU1LCAgICAyLCAgMTMsICBTQVQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDIwOTExNjQuNSwgIDAsICA0NzczLCAgICA5LCAgIDYsICBTVU4sICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDIxMjE1MDkuNSwgIDAsICA0ODU2LCAgICA5LCAgMjMsICBTVU4sICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDIxNTU3NzkuNSwgIDAsICA0OTUwLCAgICA4LCAgIDcsICBGUkksICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDIxNzQwMjkuNSwgIDAsICA1MDAwLCAgICA3LCAgIDgsICBTQVQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDIxOTE1ODQuNSwgIDAsICA1MDQ4LCAgICA4LCAgMjEsICBGUkksICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDIxOTUyNjEuNSwgIDAsICA1MDU4LCAgICA5LCAgIDcsICBTVU4sICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDIyMjkyNzQuNSwgIDAsICA1MTUxLCAgIDExLCAgIDEsICBTVU4sICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDIyNDU1ODAuNSwgIDAsICA1MTk2LCAgICA1LCAgIDcsICBXRUQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDIyNjYxMDAuNSwgIDAsICA1MjUyLCAgICA4LCAgIDMsICBTQVQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDIyODg1NDIuNSwgIDAsICA1MzE0LCAgICAxLCAgIDEsICBTQVQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDIyOTA5MDEuNSwgIDAsICA1MzIwLCAgICA2LCAgMjcsICBTQVQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDIzMjMxNDAuNSwgIDAsICA1NDA4LCAgIDEwLCAgMjAsICBXRUQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDIzMzQ1NTEuNSwgIDAsICA1NDQwLCAgICAxLCAgIDEsICBUSFUsICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDIzMzQ1ODEuNSwgIDAsICA1NDQwLCAgICAyLCAgIDEsICBTQVQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDIzMzQ2MTAuNSwgIDAsICA1NDQwLCAgICAzLCAgIDEsICBTVU4sICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDIzMzQ2MzkuNSwgIDAsICA1NDQwLCAgICA0LCAgIDEsICBNT04sICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDIzMzQ2NjguNSwgIDAsICA1NDQwLCAgICA1LCAgIDEsICBUVUUsICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDIzMzQ2OTguNSwgIDAsICA1NDQwLCAgICA2LCAgIDEsICBUSFUsICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDIzMzQ3MjguNSwgIDAsICA1NDQwLCAgICA3LCAgIDEsICBTQVQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDIzMzQ3NTcuNSwgIDAsICA1NDQwLCAgICA4LCAgIDEsICBTVU4sICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDIzMzQ3ODcuNSwgIDAsICA1NDQwLCAgICA5LCAgIDEsICBUVUUsICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDIzMzQ4MTYuNSwgIDAsICA1NDQwLCAgIDEwLCAgIDEsICBXRUQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDIzMzQ4NDYuNSwgIDAsICA1NDQwLCAgIDExLCAgIDEsICBGUkksICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDIzMzQ4NDguNSwgIDAsICA1NDQwLCAgIDExLCAgIDMsICBTVU4sICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDIzMzQ5MzQuNSwgIDAsICA1NDQxLCAgICAxLCAgIDEsICBUVUUsICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDIzNDgwMjAuNSwgIDAsICA1NDc2LCAgIDEyLCAgIDUsICBGUkksICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDIzNjY5NzguNSwgIDAsICA1NTI4LCAgIDExLCAgIDQsICBTVU4sICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDIzODU2NDguNSwgIDAsICA1NTc5LCAgIDEyLCAgMTEsICBNT04sICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDIzOTI4MjUuNSwgIDAsICA1NTk5LCAgICA4LCAgMTIsICBXRUQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDI0MTYyMjMuNSwgIDAsICA1NjYzLCAgICA4LCAgMjIsICBTVU4sICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDI0MjU4NDguNSwgIDAsICA1Njg5LCAgIDEyLCAgMTksICBTVU4sICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDI0MzAyNjYuNSwgIDAsICA1NzAyLCAgICAxLCAgIDgsICBNT04sICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDI0MzA4MzMuNSwgIDAsICA1NzAzLCAgICA4LCAgMTQsICBNT04sICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDI0MzEwMDQuNSwgIDAsICA1NzA0LCAgICAxLCAgIDgsICBUSFUsICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDI0NDg2OTguNSwgIDAsICA1NzUyLCAgICA3LCAgMTIsICBUVUUsICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDI0NTAxMzguNSwgIDAsICA1NzU2LCAgICA3LCAgIDUsICBTVU4sICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDI0NjU3MzcuNSwgIDAsICA1Nzk5LCAgICAyLCAgMTIsICBXRUQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgbmV3IFRlc3RDYXNlKDI0ODYwNzYuNSwgIDAsICA1ODU0LCAgIDEyLCAgIDUsICBTVU4sICAgMCwgIDAsICAwKSwKKworICAgICAgICAvLyBBZGRpdGlvbmFsIHRlc3QgY2FzZXMgZm9yIGJ1Z3MgZm91bmQgZHVyaW5nIGRldmVsb3BtZW50CisgICAgICAgIC8vICAgICAgICAgICBHLllZL01NL0REICBFcmEgIFllYXIgIE1vbnRoIERheSAgV2tEYXkgSG91ciBNaW4gU2VjCisgICAgICAgIG5ldyBUZXN0Q2FzZSgxMDEzLCA5LCA4LCAwLCAgNDc3NCwgICAgMSwgICAxLCAgVFVFLCAgIDAsICAwLCAgMCksCisgICAgICAgIG5ldyBUZXN0Q2FzZSgxMjM5LCA5LCAxLCAwLCAgNTAwMCwgICAgMSwgICAxLCAgVEhVLCAgIDAsICAwLCAgMCksCisgICAgICAgIG5ldyBUZXN0Q2FzZSgxMjQwLCA5LDE4LCAwLCAgNTAwMSwgICAgMSwgICAxLCAgVFVFLCAgIDAsICAwLCAgMCksCisKKyAgICAgICAgLy8gVGVzdCBjYXNlcyB0YWtlbiBmcm9tIGEgdGFibGUgb2YgMTQgInllYXIgdHlwZXMiIGluIHRoZSBIZWxwIGZpbGUKKyAgICAgICAgLy8gb2YgdGhlIGFwcGxpY2F0aW9uICJIZWJyZXcgQ2FsZW5kYXIiCisgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDU2MTg3LjUsICAwLCAgNTc3MywgICAgMSwgICAxLCAgTU9OLCAgIDAsICAwLCAgMCksCisgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDU5MTExLjUsICAwLCAgNTc4MSwgICAgMSwgICAxLCAgU0FULCAgIDAsICAwLCAgMCksCisgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDUzNjQ3LjUsICAwLCAgNTc2NiwgICAgMSwgICAxLCAgVFVFLCAgIDAsICAwLCAgMCksCisgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDYyMDM1LjUsICAwLCAgNTc4OSwgICAgMSwgICAxLCAgVEhVLCAgIDAsICAwLCAgMCksCisgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDU4NzU2LjUsICAwLCAgNTc4MCwgICAgMSwgICAxLCAgTU9OLCAgIDAsICAwLCAgMCksCisgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDYwNTg2LjUsICAwLCAgNTc4NSwgICAgMSwgICAxLCAgVEhVLCAgIDAsICAwLCAgMCksCisgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDYzODY0LjUsICAwLCAgNTc5NCwgICAgMSwgICAxLCAgU0FULCAgIDAsICAwLCAgMCksCisgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDYzNDgxLjUsICAwLCAgNTc5MywgICAgMSwgICAxLCAgTU9OLCAgIDAsICAwLCAgMCksCisgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDcwNDIxLjUsICAwLCAgNTgxMiwgICAgMSwgICAxLCAgVEhVLCAgIDAsICAwLCAgMCksCisgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDYwMjAzLjUsICAwLCAgNTc4NCwgICAgMSwgICAxLCAgU0FULCAgIDAsICAwLCAgMCksCisgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDU5NDY0LjUsICAwLCAgNTc4MiwgICAgMSwgICAxLCAgVFVFLCAgIDAsICAwLCAgMCksCisgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDY3MTQyLjUsICAwLCAgNTgwMywgICAgMSwgICAxLCAgTU9OLCAgIDAsICAwLCAgMCksCisgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDU1NDQ4LjUsICAwLCAgNTc3MSwgICAgMSwgICAxLCAgVEhVLCAgIDAsICAwLCAgMCksCisgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDg3MjIzLjUsICAwLCAgNTg1OCwgICAgMSwgICAxLCAgU0FULCAgIDAsICAwLCAgMCksCisgICAgfTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBQcm9ibGVtIHJlcG9ydGVkIGJ5IEFybWFuZCBCZW5kYW5hbiBpbiB3aGljaCBzZXR0aW5nIG9mIHRoZSBNT05USAorICAgICAqIGZpZWxkIGluIGEgSGVicmV3IGNhbGVuZGFyIGNhdXNlcyB0aGUgdGltZSBmaWVsZHMgdG8gZ28gbmVnYXRpdmUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFRpbWVGaWVsZHMoKSB7CisgICAgICAgIEhlYnJld0NhbGVuZGFyIGNhbGVuZGFyID0gbmV3IEhlYnJld0NhbGVuZGFyKDU3NjEsIDAsIDExLCAxMiwgMjgsIDE1KTsKKwkJY2FsZW5kYXIuc2V0KENhbGVuZGFyLllFQVIsIDU3MTcpOworCQljYWxlbmRhci5zZXQoQ2FsZW5kYXIuTU9OVEgsIDIpOworCQljYWxlbmRhci5zZXQoQ2FsZW5kYXIuREFZX09GX01PTlRILCAyMyk7CisgICAgICAgIGlmIChjYWxlbmRhci5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpICE9IDEyKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbDogSGVicmV3Q2FsZW5kYXIgSE9VUl9PRl9EQVkgPSAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IG9mIHRoZSBiZWhhdmlvciBvZiB0aGUgbW9udGggZmllbGQuICBUaGlzIHJlcXVpcmVzIHNwZWNpYWwKKyAgICAgKiBoYW5kbGluZyBpbiB0aGUgSGVicmV3IGNhbGVuZGFyIGJlY2F1c2Ugb2YgdGhlIHBhdHRlcm4gb2YgbGVhcAorICAgICAqIHllYXJzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RNb250aE1vdmVtZW50KCkgeworICAgICAgICBIZWJyZXdDYWxlbmRhciBjYWwgPSBuZXcgSGVicmV3Q2FsZW5kYXIoKTsKKyAgICAgICAgLy8gTGVhcCB5ZWFycyBhcmU6CisgICAgICAgIC8vIDMgNiA4IDExIDE0IDE3IDE5IChhbmQgc28gb24gLSAxOS15ZWFyIGN5Y2xlKQorICAgICAgICAvLyBXZSBjYW4ndCB0ZXN0IGNvbXBsZXRlKCkgb24gc29tZSBsaW5lcyBiZWxvdyBiZWNhdXNlIG9mIEFEQVJfMSAtLSBpZgorICAgICAgICAvLyB0aGUgY2FsZW5kYXIgaXMgc2V0IHRvIEFEQVJfMSBvbiBhIG5vbi1sZWFwIHllYXIsIHRoZSByZXN1bHQgaXMgdW5kZWZpbmVkLgorICAgICAgICBpbnRbXSBEQVRBID0geworICAgICAgICAgICAgLy8gYyAgICAgLSB0ZXN0IGNvbXBsZXRlKCkgb3Igbm90CisgICAgICAgICAgICAvLyBtL3kgICAtIGJlZm9yZSBhbmQgYWZ0ZXIgbW9udGgveWVhcgorICAgICAgICAgICAgLy8gZGVsdGEgLSBhbW91bnQgdG8gYWRkIHRvIG1vbnRoIGZpZWxkCisgICAgICAgICAgICAvL2MgbTEgIHkxIGRlbHRhICBtMiAgeTIKKyAgICAgICAgICAgIDEsICAxMCwgIDIsICArMjQsICA5LCAgNCwgLy8gKHllYXIgMiwgbW9udGggMTApICsgMjQgbW9udGhzIC0+ICh5IDQsIG0gOSkKKyAgICAgICAgICAgIDEsICAxMCwgIDIsICArNjAsICA4LCAgNywgLy8gKHkgMiwgbSAxMCkgKyA2MCBtb250aHMgLT4gKHkgNywgbSA4KQorICAgICAgICAgICAgMSwgICAxLCAgMiwgICsxMiwgIDEsICAzLCAvLyAoeSAyLCBtIDEpICsgMTIgbW9udGhzIC0+ICh5IDMsIG0gMSkKKyAgICAgICAgICAgIDEsICAgMywgMTgsICAtMjQsICA0LCAxNiwgLy8gKHkgMTgsIG0gMykgLSAyNCBtb250aHMgLT4gKHkgMTYsIG0gNCkKKyAgICAgICAgICAgIDEsICAgMSwgIDYsICAtMjQsICAxLCAgNCwKKyAgICAgICAgICAgIDEsICAgNCwgIDMsICAgKzIsICA2LCAgMywgLy8gTGVhcCB5ZWFyIC0gbm8gc2tpcCA0LDUsNiw3LDgKKyAgICAgICAgICAgIDEsICAgOCwgIDMsICAgLTIsICA2LCAgMywgLy8gTGVhcCB5ZWFyIC0gbm8gc2tpcAorICAgICAgICAgICAgMCwgICA0LCAgMiwgICArMiwgIDcsICAyLCAvLyBTa2lwIG92ZXIgbGVhcCBtb250aCA0LDUsKDYpLDcsOAorICAgICAgICAgICAgMCwgICA4LCAgMiwgICAtMiwgIDUsICAyLCAvLyBTa2lwIG92ZXIgbGVhcCBtb250aCBnb2luZyBiYWNrd2FyZAorICAgICAgICB9OworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7ICkgeworICAgICAgICAgICAgYm9vbGVhbiB0ZXN0Q29tcGxldGUgPSBEQVRBW2krK10gIT0gMDsKKyAgICAgICAgICAgIGludCBtID0gREFUQVtpKytdLCB5ID0gREFUQVtpKytdOworICAgICAgICAgICAgaW50IG1vbnRoRGVsdGEgPSBEQVRBW2krK107CisgICAgICAgICAgICBpbnQgbTIgPSBEQVRBW2krK10sIHkyID0gREFUQVtpKytdOworICAgICAgICAgICAgaW50IG1hY3QsIHlhY3Q7CisKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCB5KTsKKyAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTU9OVEgsIG0tMSk7CisgICAgICAgICAgICBjYWwuYWRkKENhbGVuZGFyLk1PTlRILCBtb250aERlbHRhKTsKKyAgICAgICAgICAgIHlhY3QgPSBjYWwuZ2V0KENhbGVuZGFyLllFQVIpOyBtYWN0ID0gY2FsLmdldChDYWxlbmRhci5NT05USCkgKyAxOworICAgICAgICAgICAgaWYgKHkyICE9IHlhY3QgfHwgbTIgIT0gbWFjdCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgbSArICIvIiArIHkgKworICAgICAgICAgICAgICAgICAgICAgICIgLT4gYWRkKE1PTlRILCAiICsgbW9udGhEZWx0YSArICIpIC0+ICIgKworICAgICAgICAgICAgICAgICAgICAgIG1hY3QgKyAiLyIgKyB5YWN0ICsgIiwgZXhwZWN0ZWQgIiArCisgICAgICAgICAgICAgICAgICAgICAgbTIgKyAiLyIgKyB5Mik7CisgICAgICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCB5KTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLk1PTlRILCBtLTEpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJTdGFydDogIiArIG0gKyAiLyIgKyB5KTsKKyAgICAgICAgICAgICAgICBpbnQgZGVsdGEgPSBtb250aERlbHRhID4gMCA/IDEgOiAtMTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBjPTA7IGMhPW1vbnRoRGVsdGE7IGMrPWRlbHRhKSB7CisgICAgICAgICAgICAgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuTU9OVEgsIGRlbHRhKTsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIisgIiArIGRlbHRhICsgIiBNT05USCAtPiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpICsgMSkgKyAiLyIgKyBjYWwuZ2V0KENhbGVuZGFyLllFQVIpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICh0ZXN0Q29tcGxldGUpIHsKKyAgICAgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLllFQVIsIHkpOworICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTU9OVEgsIG0gKyBtb250aERlbHRhIC0gMSk7CisgICAgICAgICAgICAgICAgeWFjdCA9IGNhbC5nZXQoQ2FsZW5kYXIuWUVBUik7IG1hY3QgPSBjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSArIDE7CisgICAgICAgICAgICAgICAgaWYgKHkyICE9IHlhY3QgfHwgbTIgIT0gbWFjdCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIChtK21vbnRoRGVsdGEpICsgIi8iICsgeSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgLT4gY29tcGxldGUoKSAtPiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbWFjdCArICIvIiArIHlhY3QgKyAiLCBleHBlY3RlZCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbTIgKyAiLyIgKyB5Mik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBoYW5kbGluZyBvZiBBREFSXzEuCisgICAgICovCisgICAgLyoKKyAgICBwdWJsaWMgdm9pZCBUZXN0QWRhcjEoKSB7CisgICAgICAgIEhlYnJld0NhbGVuZGFyIGNhbCA9IG5ldyBIZWJyZXdDYWxlbmRhcigpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCAxOTAzKTsgLy8gbGVhcAorICAgICAgICBjYWwuc2V0KENhbGVuZGFyLk1PTlRILCBIZWJyZXdDYWxlbmRhci5BREFSXzEpOworICAgICAgICBsb2dsbigiMTkwMyhsZWFwKS9BREFSXzEgPT4gIiArCisgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuWUVBUikgKyAiLyIgKyAoY2FsLmdldChDYWxlbmRhci5NT05USCkrMSkpOworCisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KENhbGVuZGFyLllFQVIsIDE5MDQpOyAvLyBub24tbGVhcAorICAgICAgICBjYWwuc2V0KENhbGVuZGFyLk1PTlRILCBIZWJyZXdDYWxlbmRhci5BREFSXzEpOworICAgICAgICBsb2dsbigiMTkwNChub24tbGVhcCkvQURBUl8xID0+ICIgKworICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLllFQVIpICsgIi8iICsgKGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpKzEpKTsKKyAgICB9CisgICAgKi8KKworICAgIC8qKgorICAgICAqIFdpdGggbm8gZmllbGRzIHNldCwgdGhlIGNhbGVuZGFyIHNob3VsZCB1c2UgZGVmYXVsdCB2YWx1ZXMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdERlZmF1bHRGaWVsZFZhbHVlcygpIHsKKyAgICAgICAgSGVicmV3Q2FsZW5kYXIgY2FsID0gbmV3IEhlYnJld0NhbGVuZGFyKCk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBsb2dsbigiY2FsLmNsZWFyKCkgLT4gIiArIGNhbC5nZXRUaW1lKCkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q292ZXJhZ2UoKSB7CisJeworCSAgICAvLyBuZXcgSGVicmV3Q2FsZW5kYXIoVGltZVpvbmUpCisJICAgIEhlYnJld0NhbGVuZGFyIGNhbCA9IG5ldyBIZWJyZXdDYWxlbmRhcihUaW1lWm9uZS5nZXREZWZhdWx0KCkpOworCX0KKworCXsKKwkgICAgLy8gbmV3IEhlYnJld0NhbGVuZGFyKExvY2FsZSkKKwkgICAgSGVicmV3Q2FsZW5kYXIgY2FsID0gbmV3IEhlYnJld0NhbGVuZGFyKExvY2FsZS5nZXREZWZhdWx0KCkpOworCX0KKworCXsKKwkgICAgLy8gbmV3IEhlYnJld0NhbGVuZGFyKERhdGUpCisJICAgIEhlYnJld0NhbGVuZGFyIGNhbCA9IG5ldyBIZWJyZXdDYWxlbmRhcihuZXcgRGF0ZSgpKTsKKwl9CisKKwl7CisJICAgIC8vIGRhdGEKKwkgICAgSGVicmV3Q2FsZW5kYXIgY2FsID0gbmV3IEhlYnJld0NhbGVuZGFyKDI4MDAsIEhlYnJld0NhbGVuZGFyLlNIRVZBVCwgMSk7CisJICAgIERhdGUgdGltZSA9IGNhbC5nZXRUaW1lKCk7CisKKwkgICAgU3RyaW5nW10gY2FsZW5kYXJMb2NhbGVzID0geworCQkiaXdfSUwiCisJICAgIH07CisKKwkgICAgU3RyaW5nW10gZm9ybWF0TG9jYWxlcyA9IHsKKwkJImVuIiwgImZpIiwgImZyIiwgImh1IiwgIml3IiwgIm5sIgorCSAgICB9OworCSAgICBmb3IgKGludCBpID0gMDsgaSA8IGNhbGVuZGFyTG9jYWxlcy5sZW5ndGg7ICsraSkgeworCQlTdHJpbmcgY2FsTG9jTmFtZSA9IGNhbGVuZGFyTG9jYWxlc1tpXTsKKwkJTG9jYWxlIGNhbExvY2FsZSA9IExvY2FsZVV0aWxpdHkuZ2V0TG9jYWxlRnJvbU5hbWUoY2FsTG9jTmFtZSk7CisJCWNhbCA9IG5ldyBIZWJyZXdDYWxlbmRhcihjYWxMb2NhbGUpOworCisJCWZvciAoaW50IGogPSAwOyBqIDwgZm9ybWF0TG9jYWxlcy5sZW5ndGg7ICsraikgeworCQkgICAgU3RyaW5nIGxvY05hbWUgPSBmb3JtYXRMb2NhbGVzW2pdOworCQkgICAgTG9jYWxlIGZvcm1hdExvY2FsZSA9IExvY2FsZVV0aWxpdHkuZ2V0TG9jYWxlRnJvbU5hbWUobG9jTmFtZSk7CisJCSAgICBEYXRlRm9ybWF0IGZvcm1hdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShjYWwsIERhdGVGb3JtYXQuRlVMTCwgRGF0ZUZvcm1hdC5GVUxMLCBmb3JtYXRMb2NhbGUpOworCQkgICAgbG9nbG4oY2FsTG9jTmFtZSArICIvIiArIGxvY05hbWUgKyAiIC0tPiAiICsgZm9ybWF0LmZvcm1hdCh0aW1lKSk7CisJCX0KKwkgICAgfQorCX0KKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0hvbGlkYXlUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvSG9saWRheVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNjZhZTRjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0hvbGlkYXlUZXN0LmphdmEKQEAgLTAsMCArMSw5NSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0hvbGlkYXlUZXN0LmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDgvMDcgMTc6MDQ6NDIgJCAKKyAqICRSZXZpc2lvbjogMS4xICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jYWxlbmRhcjsKKworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTG9jYWxlVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuSG9saWRheTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworCisvKioKKyAqIFRlc3RzIGZvciB0aGUgPGNvZGU+SG9saWRheTwvY29kZT4gY2xhc3MuCisgKi8KK3B1YmxpYyBjbGFzcyBIb2xpZGF5VGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IEhvbGlkYXlUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBDYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoMSwgMCwgMSk7CisgICAgc3RhdGljIGZpbmFsIERhdGUgbG9uZ1RpbWVBZ28gPSBjYWwuZ2V0VGltZSgpOworICAgIHN0YXRpYyBmaW5hbCBEYXRlIG5vdyA9IG5ldyBEYXRlKCk7CisgICAgc3RhdGljIGZpbmFsIGxvbmcgYXdoaWxlID0gMzYwMEwgKiAyNCAqIDI4OyAvLyAyOCBkYXlzCisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QVBJKCkgeworCXsKKwkgICAgLy8gZ2V0SG9saWRheXMKKwkgICAgSG9saWRheVtdIGhvbGlkYXlzID0gSG9saWRheS5nZXRIb2xpZGF5cygpOworCSAgICBleGVyY2lzZUhvbGlkYXlzKGhvbGlkYXlzLCBMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKwl9CisKKwl7CisJICAgIC8vIGdldEhvbGlkYXlzKExvY2FsZSkKKwkgICAgU3RyaW5nW10gbG9jYWxlTmFtZXMgPSB7CisJCSJlbl9VUyIsICJkYSIsICJkYV9ESyIsICJkZSIsICJkZV9BVCIsICJkZV9ERSIsICJlbCIsICJlbF9HUiIsCisJCSJlbiIsICJlbl9DQSIsICJlbl9HQiIsICJlcyIsICJlc19NWCIsICJmciIsICJmcl9DQSIsICJmcl9GUiIsCisJCSJpdCIsICJpdF9JVCIsICJpdyIsICJpd19JTCIsICJqYSIsICJqYV9KUCIsCisJICAgIH07CisKKwkgICAgZm9yIChpbnQgaT0wOyBpIDwgbG9jYWxlTmFtZXMubGVuZ3RoOyArK2kpIHsKKwkJTG9jYWxlIGxvY2FsZSA9IExvY2FsZVV0aWxpdHkuZ2V0TG9jYWxlRnJvbU5hbWUobG9jYWxlTmFtZXNbaV0pOworCQlIb2xpZGF5W10gaG9saWRheXMgPSBIb2xpZGF5LmdldEhvbGlkYXlzKGxvY2FsZSk7CisJCWV4ZXJjaXNlSG9saWRheXMoaG9saWRheXMsIGxvY2FsZSk7CisJICAgIH0KKwl9CisgICAgfQorCisgICAgdm9pZCBleGVyY2lzZUhvbGlkYXlzKEhvbGlkYXlbXSBob2xpZGF5cywgTG9jYWxlIGxvY2FsZSkgeworCWZvciAoaW50IGkgPSAwOyBpIDwgaG9saWRheXMubGVuZ3RoOyArK2kpIHsKKwkgICAgZXhlcmNpc2VIb2xpZGF5KGhvbGlkYXlzW2ldLCBsb2NhbGUpOworCX0KKyAgICB9CisKKyAgICB2b2lkIGV4ZXJjaXNlSG9saWRheShIb2xpZGF5IGgsIExvY2FsZSBsb2NhbGUpIHsKKwlsb2dsbigiaG9saWRheTogIiArIGguZ2V0RGlzcGxheU5hbWUoKSk7CisJbG9nbG4oImhvbGlkYXkgaW4gIiArIGxvY2FsZSArICI6ICIgKyBoLmdldERpc3BsYXlOYW1lKGxvY2FsZSkpOworCisJRGF0ZSBmaXJzdCA9IGguZmlyc3RBZnRlcihsb25nVGltZUFnbyk7CisJbG9nbG4oImZpcnN0QWZ0ZXI6ICIgKyBsb25nVGltZUFnbyArICIgaXMgIiArIGZpcnN0KTsKKwlpZiAoZmlyc3QgPT0gbnVsbCkgeworCSAgICBmaXJzdCA9IGxvbmdUaW1lQWdvOworCX0KKwlmaXJzdC5zZXRUaW1lKGZpcnN0LmdldFRpbWUoKSArIGF3aGlsZSk7CisKKwlEYXRlIHNlY29uZCA9IGguZmlyc3RCZXR3ZWVuKGZpcnN0LCBub3cpOworCWxvZ2xuKCJmaXJzdEJldHdlZW46ICIgKyBmaXJzdCArICIgYW5kICIgKyBub3cgKyAiIGlzICIgKyBzZWNvbmQpOworCWlmIChzZWNvbmQgPT0gbnVsbCkgeworCSAgICBzZWNvbmQgPSBub3c7CisJfQorCisJbG9nbG4oImlzIG9uICIgKyBmaXJzdCArICI6ICIgKyBoLmlzT24oZmlyc3QpKTsKKwlsb2dsbigiaXMgb24gIiArIG5vdyArICI6ICIgKyBoLmlzT24obm93KSk7CisJbG9nbG4oImlzIGJldHdlZW4gIiArIGZpcnN0ICsgIiBhbmQgIiArIG5vdyArICI6ICIgKyBoLmlzQmV0d2VlbihmaXJzdCwgbm93KSk7CisJbG9nbG4oImlzIGJldHdlZW4gIiArIGZpcnN0ICsgIiBhbmQgIiArIHNlY29uZCArICI6ICIgKyBoLmlzQmV0d2VlbihmaXJzdCwgc2Vjb25kKSk7CisKKwlsb2dsbigicnVsZTogIiArIGguZ2V0UnVsZSgpLnRvU3RyaW5nKCkpOworCisJaC5zZXRSdWxlKGguZ2V0UnVsZSgpKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvSUJNQ2FsZW5kYXJUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvSUJNQ2FsZW5kYXJUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWZlYWNmNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9JQk1DYWxlbmRhclRlc3QuamF2YQpAQCAtMCwwICsxLDMzMyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0lCTUNhbGVuZGFyVGVzdC5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzA4LzA3IDAzOjEwOjE4ICQgCisgKiAkUmV2aXNpb246IDEuMTEgJAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jYWxlbmRhcjsKKworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkxvY2FsZVV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkJ1ZGRoaXN0Q2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuSmFwYW5lc2VDYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworCisvKioKKyAqIEB0ZXN0CisgKiBAc3VtbWFyeSBUZXN0cyBvZiBuZXcgZnVuY3Rpb25hbGl0eSBpbiBJQk1DYWxlbmRhcgorICovCitwdWJsaWMgY2xhc3MgSUJNQ2FsZW5kYXJUZXN0IGV4dGVuZHMgQ2FsZW5kYXJUZXN0IHsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgSUJNQ2FsZW5kYXJUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3Qgd2Vla2VuZCBzdXBwb3J0IGluIElCTUNhbGVuZGFyLgorICAgICAqCisgICAgICogTk9URTogVGhpcyB0ZXN0IHdpbGwgaGF2ZSB0byBiZSB1cGRhdGVkIHdoZW4gdGhlIGlzV2Vla2VuZCgpIGV0Yy4KKyAgICAgKiAgICAgICBBUEkgaXMgZmluYWxpemVkIGxhdGVyLgorICAgICAqCisgICAgICogICAgICAgSW4gcGFydGljdWxhciwgdGhlIHRlc3Qgd2lsbCBoYXZlIHRvIGJlIHJld3JpdHRlbiB0byBpbnN0YW50aWF0ZQorICAgICAqICAgICAgIGEgQ2FsZW5kYXIgaW4gdGhlIGdpdmVuIGxvY2FsZSAodXNpbmcgZ2V0SW5zdGFuY2UoKSkgYW5kIGNhbGwKKyAgICAgKiAgICAgICB0aGF0IENhbGVuZGFyJ3MgaXNXZWVrZW5kKCkgZXRjLiBtZXRob2RzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RXZWVrZW5kKCkgeworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJFRUUgTU1NIGRkIHl5eXkgRyBISDptbTpzcy5TU1MiKTsKKyAgICAgICAgCisgICAgICAgIC8vIE5PVEUKKyAgICAgICAgLy8gVGhpcyB0ZXN0IHRlc3RzIGZvciBzcGVjaWZpYyBsb2NhbGUgZGF0YS4gIFRoaXMgaXMgcHJvYmFibHkgb2theQorICAgICAgICAvLyBhcyBmYXIgYXMgVVMgZGF0YSBpcyBjb25jZXJuZWQsIGJ1dCBpZiB0aGUgQXJhYmljL0JhaHJhaW4gZGF0YQorICAgICAgICAvLyBjaGFuZ2VzLCB0aGlzIHRlc3Qgd2lsbCBoYXZlIHRvIGJlIHVwZGF0ZWQuCisKKyAgICAgICAgLy8gVGVzdCBzcGVjaWZpYyBkYXlzCisgICAgICAgIE9iamVjdFtdIERBVEExID0geworICAgICAgICAgICAgTG9jYWxlLlVTLCBuZXcgaW50W10geyAvLyBTYXR1cmRheTpTdW5kYXkKKyAgICAgICAgICAgICAgICAyMDAwLCBDYWxlbmRhci5NQVJDSCwgMTcsIDIzLCAgMCwgMCwgLy8gRnJpIDIzOjAwCisgICAgICAgICAgICAgICAgMjAwMCwgQ2FsZW5kYXIuTUFSQ0gsIDE4LCAgMCwgLTEsIDAsIC8vIEZyaSAyMzo1OTo1OS45OTkKKyAgICAgICAgICAgICAgICAyMDAwLCBDYWxlbmRhci5NQVJDSCwgMTgsICAwLCAgMCwgMSwgLy8gU2F0IDAwOjAwCisgICAgICAgICAgICAgICAgMjAwMCwgQ2FsZW5kYXIuTUFSQ0gsIDE4LCAxNSwgIDAsIDEsIC8vIFNhdCAxNTowMAorICAgICAgICAgICAgICAgIDIwMDAsIENhbGVuZGFyLk1BUkNILCAxOSwgMjMsICAwLCAxLCAvLyBTdW4gMjM6MDAKKyAgICAgICAgICAgICAgICAyMDAwLCBDYWxlbmRhci5NQVJDSCwgMjAsICAwLCAtMSwgMSwgLy8gU3VuIDIzOjU5OjU5Ljk5OQorICAgICAgICAgICAgICAgIDIwMDAsIENhbGVuZGFyLk1BUkNILCAyMCwgIDAsICAwLCAwLCAvLyBNb24gMDA6MDAKKyAgICAgICAgICAgICAgICAyMDAwLCBDYWxlbmRhci5NQVJDSCwgMjAsICA4LCAgMCwgMCwgLy8gTW9uIDA4OjAwCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgbmV3IExvY2FsZSgiYXIiLCAiQkgiKSwgbmV3IGludFtdIHsgLy8gVGh1cnNkYXk6RnJpZGF5CisgICAgICAgICAgICAgICAgMjAwMCwgQ2FsZW5kYXIuTUFSQ0gsIDE1LCAyMywgIDAsIDAsIC8vIFdlZCAyMzowMAorICAgICAgICAgICAgICAgIDIwMDAsIENhbGVuZGFyLk1BUkNILCAxNiwgIDAsIC0xLCAwLCAvLyBXZWQgMjM6NTk6NTkuOTk5CisgICAgICAgICAgICAgICAgMjAwMCwgQ2FsZW5kYXIuTUFSQ0gsIDE2LCAgMCwgIDAsIDEsIC8vIFRodSAwMDowMAorICAgICAgICAgICAgICAgIDIwMDAsIENhbGVuZGFyLk1BUkNILCAxNiwgMTUsICAwLCAxLCAvLyBUaHUgMTU6MDAKKyAgICAgICAgICAgICAgICAyMDAwLCBDYWxlbmRhci5NQVJDSCwgMTcsIDIzLCAgMCwgMSwgLy8gRnJpIDIzOjAwCisgICAgICAgICAgICAgICAgMjAwMCwgQ2FsZW5kYXIuTUFSQ0gsIDE4LCAgMCwgLTEsIDEsIC8vIEZyaSAyMzo1OTo1OS45OTkKKyAgICAgICAgICAgICAgICAyMDAwLCBDYWxlbmRhci5NQVJDSCwgMTgsICAwLCAgMCwgMCwgLy8gU2F0IDAwOjAwCisgICAgICAgICAgICAgICAgMjAwMCwgQ2FsZW5kYXIuTUFSQ0gsIDE4LCAgOCwgIDAsIDAsIC8vIFNhdCAwODowMAorICAgICAgICAgICAgfSwKKyAgICAgICAgfTsKKworICAgICAgICAvLyBUZXN0IGRheXMgb2YgdGhlIHdlZWsKKyAgICAgICAgT2JqZWN0W10gREFUQTIgPSB7CisgICAgICAgICAgICBMb2NhbGUuVVMsIG5ldyBpbnRbXSB7CisgICAgICAgICAgICAgICAgQ2FsZW5kYXIuTU9OREFZLCAgIENhbGVuZGFyLldFRUtEQVksCisgICAgICAgICAgICAgICAgQ2FsZW5kYXIuRlJJREFZLCAgIENhbGVuZGFyLldFRUtEQVksCisgICAgICAgICAgICAgICAgQ2FsZW5kYXIuU0FUVVJEQVksIENhbGVuZGFyLldFRUtFTkQsCisgICAgICAgICAgICAgICAgQ2FsZW5kYXIuU1VOREFZLCAgIENhbGVuZGFyLldFRUtFTkQsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgbmV3IExvY2FsZSgiYXIiLCAiQkgiKSwgbmV3IGludFtdIHsgLy8gVGh1cnNkYXk6RnJpZGF5CisgICAgICAgICAgICAgICAgQ2FsZW5kYXIuV0VETkVTREFZLENhbGVuZGFyLldFRUtEQVksCisgICAgICAgICAgICAgICAgQ2FsZW5kYXIuU0FUVVJEQVksIENhbGVuZGFyLldFRUtEQVksCisgICAgICAgICAgICAgICAgQ2FsZW5kYXIuVEhVUlNEQVksIENhbGVuZGFyLldFRUtFTkQsCisgICAgICAgICAgICAgICAgQ2FsZW5kYXIuRlJJREFZLCAgIENhbGVuZGFyLldFRUtFTkQsCisgICAgICAgICAgICB9LAorICAgICAgICB9OworCisgICAgICAgIC8vIFdlIG9ubHkgdGVzdCB0aGUgZ2V0RGF5T2ZXZWVrVHlwZSgpIGFuZCBpc1dlZWtlbmQoKSBBUElzLgorICAgICAgICAvLyBUaGUgZ2V0V2Vla2VuZFRyYW5zaXRpb24oKSBBUEkgaXMgdGVzdGVkIGluZGlyZWN0bHkgdmlhIHRoZQorICAgICAgICAvLyBpc1dlZWtlbmQoKSBBUEksIHdoaWNoIGNhbGxzIGl0LgorCisgICAgICAgIGZvciAoaW50IGkxPTA7IGkxPERBVEExLmxlbmd0aDsgaTErPTIpIHsKKyAgICAgICAgICAgIExvY2FsZSBsb2MgPSAoTG9jYWxlKURBVEExW2kxXTsKKyAgICAgICAgICAgIGludFtdIGRhdGEgPSAoaW50W10pIERBVEExW2kxKzFdOworICAgICAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UobG9jKTsKKyAgICAgICAgICAgIGxvZ2xuKCJMb2NhbGU6ICIgKyBsb2MpOworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPGRhdGEubGVuZ3RoOyBpKz02KSB7CisgICAgICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgY2FsLnNldChkYXRhW2ldLCBkYXRhW2krMV0sIGRhdGFbaSsyXSwgZGF0YVtpKzNdLCAwLCAwKTsKKyAgICAgICAgICAgICAgICBpZiAoZGF0YVtpKzRdICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgY2FsLnNldFRpbWUobmV3IERhdGUoY2FsLmdldFRpbWUoKS5nZXRUaW1lKCkgKyBkYXRhW2krNF0pKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYm9vbGVhbiBpc1dlZWtlbmQgPSBjYWwuaXNXZWVrZW5kKCk7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBvayA9IGlzV2Vla2VuZCA9PSAoZGF0YVtpKzVdICE9IDApOworICAgICAgICAgICAgICAgIGlmIChvaykgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiT2s6ICAgIiArIGZtdC5mb3JtYXQoY2FsLmdldFRpbWUoKSkgKyAiIGlzV2Vla2VuZD0iICsgaXNXZWVrZW5kKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGZtdC5mb3JtYXQoY2FsLmdldFRpbWUoKSkgKyAiIGlzV2Vla2VuZD0iICsgaXNXZWVrZW5kICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQ9IiArICghaXNXZWVrZW5kKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZm9yIChpbnQgaTI9MDsgaTI8REFUQTIubGVuZ3RoOyBpMis9MikgeworICAgICAgICAgICAgTG9jYWxlIGxvYyA9IChMb2NhbGUpREFUQTJbaTJdOworICAgICAgICAgICAgaW50W10gZGF0YSA9IChpbnRbXSkgREFUQTJbaTIrMV07CisgICAgICAgICAgICBsb2dsbigiTG9jYWxlOiAiICsgbG9jKTsKKyAgICAgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKGxvYyk7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8ZGF0YS5sZW5ndGg7IGkrPTIpIHsKKyAgICAgICAgICAgICAgICBpbnQgdHlwZSA9IGNhbC5nZXREYXlPZldlZWtUeXBlKGRhdGFbaV0pOworICAgICAgICAgICAgICAgIGludCBleHAgID0gZGF0YVtpKzFdOworICAgICAgICAgICAgICAgIGlmICh0eXBlID09IGV4cCkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiT2s6ICAgRE9XICIgKyBkYXRhW2ldICsgIiB0eXBlPSIgKyB0eXBlKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogRE9XICIgKyBkYXRhW2ldICsgIiB0eXBlPSIgKyB0eXBlICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQ9IiArIGV4cCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUnVuIGEgdGVzdCBvZiBhIHF1YXNpLUdyZWdvcmlhbiBjYWxlbmRhci4gIFRoaXMgaXMgYSBjYWxlbmRhcgorICAgICAqIHRoYXQgYmVoYXZlcyBsaWtlIGEgR3JlZ29yaWFuIGJ1dCBoYXMgZGlmZmVyZW50IHllYXIvZXJhIG1hcHBpbmdzLgorICAgICAqIFRoZSBpbnRbXSBkYXRhIGFycmF5IHNob3VsZCBoYXZlIHRoZSBmb3JtYXQ6CisgICAgICogCisgICAgICogeyBlcmEsIHllYXIsIGdyZWdvcmlhblllYXIsIG1vbnRoLCBkYXlPZk1vbnRoLCAuLi4gfQorICAgICAqLworICAgIHZvaWQgcXVhc2lHcmVnb3JpYW5UZXN0KENhbGVuZGFyIGNhbCwgaW50W10gZGF0YSkgeworICAgICAgICBmb3IgKGludCBpPTA7IGk8ZGF0YS5sZW5ndGg7ICkgeworICAgICAgICAgICAgaW50IGVyYSA9IGRhdGFbaSsrXTsKKyAgICAgICAgICAgIGludCB5ZWFyID0gZGF0YVtpKytdOworICAgICAgICAgICAgaW50IGdyZWdvcmlhblllYXIgPSBkYXRhW2krK107CisgICAgICAgICAgICBpbnQgbW9udGggPSBkYXRhW2krK107CisgICAgICAgICAgICBpbnQgZGF5T2ZNb250aCA9IGRhdGFbaSsrXTsKKworICAgICAgICAgICAgamF2YS51dGlsLkNhbGVuZGFyIHRlbXBjYWwgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgICAgIHRlbXBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgIHRlbXBjYWwuc2V0KGdyZWdvcmlhblllYXIsIG1vbnRoLCBkYXlPZk1vbnRoKTsKKyAgICAgICAgICAgIERhdGUgRCA9IHRlbXBjYWwuZ2V0VGltZSgpOworCisgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuRVJBLCBlcmEpOworICAgICAgICAgICAgY2FsLnNldCh5ZWFyLCBtb250aCwgZGF5T2ZNb250aCk7CisgICAgICAgICAgICBEYXRlIGQgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICAgICAgaWYgKGQuZXF1YWxzKEQpKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9LOiAiICsgZXJhICsgIjoiICsgeWVhciArICIvIiArIChtb250aCsxKSArICIvIiArIGRheU9mTW9udGggKworICAgICAgICAgICAgICAgICAgICAgICIgPT4gIiArIGQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIGVyYSArICI6IiArIHllYXIgKyAiLyIgKyAobW9udGgrMSkgKyAiLyIgKyBkYXlPZk1vbnRoICsKKyAgICAgICAgICAgICAgICAgICAgICAiID0+ICIgKyBkICsgIiwgZXhwZWN0ZWQgIiArIEQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgIGNhbC5zZXRUaW1lKEQpOworICAgICAgICAgICAgaW50IGUgPSBjYWwuZ2V0KENhbGVuZGFyLkVSQSk7CisgICAgICAgICAgICBpbnQgeSA9IGNhbC5nZXQoQ2FsZW5kYXIuWUVBUik7CisgICAgICAgICAgICBpZiAoeSA9PSB5ZWFyICYmIGUgPT0gZXJhKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9LOiAiICsgRCArICIgPT4gIiArIGNhbC5nZXQoQ2FsZW5kYXIuRVJBKSArICI6IiArCisgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5ZRUFSKSArICIvIiArCisgICAgICAgICAgICAgICAgICAgICAgKGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpKzEpICsgIi8iICsgY2FsLmdldChDYWxlbmRhci5EQVRFKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJGYWlsOiAiICsgRCArICIgPT4gIiArIGNhbC5nZXQoQ2FsZW5kYXIuRVJBKSArICI6IiArCisgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5ZRUFSKSArICIvIiArCisgICAgICAgICAgICAgICAgICAgICAgKGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpKzEpICsgIi8iICsgY2FsLmdldChDYWxlbmRhci5EQVRFKSArCisgICAgICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQgIiArIGVyYSArICI6IiArIHllYXIgKyAiLyIgKyAobW9udGgrMSkgKyAiLyIgKworICAgICAgICAgICAgICAgICAgICAgIGRheU9mTW9udGgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVmVyaWZ5IHRoYXQgQnVkZGhpc3RDYWxlbmRhciBzaGlmdHMgeWVhcnMgdG8gQnVkZGhpc3QgRXJhIGJ1dCBvdGhlcndpc2UKKyAgICAgKiBiZWhhdmVzIGxpa2UgR3JlZ29yaWFuQ2FsZW5kYXIuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEJ1ZGRoaXN0KCkgeworICAgICAgICBxdWFzaUdyZWdvcmlhblRlc3QobmV3IEJ1ZGRoaXN0Q2FsZW5kYXIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBpbnRbXSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQkUgMjU0MiA9PSAxOTk5IENFCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMjU0MiwgMTk5OSwgQ2FsZW5kYXIuSlVORSwgNAorICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEJ1ZGRoaXN0Q292ZXJhZ2UoKSB7CisJeworCSAgICAvLyBuZXcgQnVkZGhpc3RDYWxlbmRhcihUaW1lWm9uZSkKKwkgICAgQnVkZGhpc3RDYWxlbmRhciBjYWwgPSBuZXcgQnVkZGhpc3RDYWxlbmRhcihUaW1lWm9uZS5nZXREZWZhdWx0KCkpOworCX0KKwkKKwl7CisJICAgIC8vIG5ldyBCdWRkaGlzdENhbGVuZGFyKExvY2FsZSkKKwkgICAgQnVkZGhpc3RDYWxlbmRhciBjYWwgPSBuZXcgQnVkZGhpc3RDYWxlbmRhcihMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKwl9CisKKwl7CisJICAgIC8vIG5ldyBCdWRkaGlzdENhbGVuZGFyKFRpbWVab25lLCBMb2NhbGUpCisJICAgIEJ1ZGRoaXN0Q2FsZW5kYXIgY2FsID0gbmV3IEJ1ZGRoaXN0Q2FsZW5kYXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKwl9CisKKwl7CisJICAgIC8vIG5ldyBCdWRkaGlzdENhbGVuZGFyKERhdGUpCisJICAgIEJ1ZGRoaXN0Q2FsZW5kYXIgY2FsID0gbmV3IEJ1ZGRoaXN0Q2FsZW5kYXIobmV3IERhdGUoKSk7CisJfQorCisJeworCSAgICAvLyBuZXcgQnVkZGhpc3RDYWxlbmRhcihpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSkKKwkgICAgQnVkZGhpc3RDYWxlbmRhciBjYWwgPSBuZXcgQnVkZGhpc3RDYWxlbmRhcigyNTQzLCBDYWxlbmRhci5NQVksIDIyKTsKKwl9CisKKwl7CisJICAgIC8vIG5ldyBCdWRkaGlzdENhbGVuZGFyKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlLCBpbnQgaG91ciwgaW50IG1pbnV0ZSwgaW50IHNlY29uZCkKKwkgICAgQnVkZGhpc3RDYWxlbmRhciBjYWwgPSBuZXcgQnVkZGhpc3RDYWxlbmRhcigyNTQzLCBDYWxlbmRhci5NQVksIDIyLCAxLCAxLCAxKTsKKwl9CisKKwl7CisJICAgIC8vIGRhdGEKKwkgICAgQnVkZGhpc3RDYWxlbmRhciBjYWwgPSBuZXcgQnVkZGhpc3RDYWxlbmRhcigyNTQzLCBDYWxlbmRhci5NQVksIDIyKTsKKwkgICAgRGF0ZSB0aW1lID0gY2FsLmdldFRpbWUoKTsKKworCSAgICBTdHJpbmdbXSBjYWxlbmRhckxvY2FsZXMgPSB7CisJCSJ0aF9USCIKKwkgICAgfTsKKworCSAgICBTdHJpbmdbXSBmb3JtYXRMb2NhbGVzID0geworCQkiZW4iLCAiYXIiLCAiaHUiLCAidGgiCisJICAgIH07CisKKwkgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjYWxlbmRhckxvY2FsZXMubGVuZ3RoOyArK2kpIHsKKwkJU3RyaW5nIGNhbExvY05hbWUgPSBjYWxlbmRhckxvY2FsZXNbaV07CisJCUxvY2FsZSBjYWxMb2NhbGUgPSBMb2NhbGVVdGlsaXR5LmdldExvY2FsZUZyb21OYW1lKGNhbExvY05hbWUpOworCQljYWwgPSBuZXcgQnVkZGhpc3RDYWxlbmRhcihjYWxMb2NhbGUpOworCisJCWZvciAoaW50IGogPSAwOyBqIDwgZm9ybWF0TG9jYWxlcy5sZW5ndGg7ICsraikgeworCQkgICAgU3RyaW5nIGxvY05hbWUgPSBmb3JtYXRMb2NhbGVzW2pdOworCQkgICAgTG9jYWxlIGZvcm1hdExvY2FsZSA9IExvY2FsZVV0aWxpdHkuZ2V0TG9jYWxlRnJvbU5hbWUobG9jTmFtZSk7CisJCSAgICBEYXRlRm9ybWF0IGZvcm1hdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShjYWwsIERhdGVGb3JtYXQuRlVMTCwgRGF0ZUZvcm1hdC5GVUxMLCBmb3JtYXRMb2NhbGUpOworCQkgICAgbG9nbG4oY2FsTG9jTmFtZSArICIvIiArIGxvY05hbWUgKyAiIC0tPiAiICsgZm9ybWF0LmZvcm1hdCh0aW1lKSk7CisJCX0KKwkgICAgfQorCX0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBWZXJpZnkgdGhhdCBKYXBhbmVzZUNhbGVuZGFyIHNoaWZ0cyB5ZWFycyB0byBCdWRkaGlzdCBFcmEgYnV0IG90aGVyd2lzZQorICAgICAqIGJlaGF2ZXMgbGlrZSBHcmVnb3JpYW5DYWxlbmRhci4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SmFwYW5lc2UoKSB7CisgICAgICAgIGludFtdIGRhdGEgPSB7CisgICAgICAgICAgICBKYXBhbmVzZUNhbGVuZGFyLk1FSUpJLCAxLCAxODY4LCBDYWxlbmRhci5TRVBURU1CRVIsIDgsCisgICAgICAgICAgICBKYXBhbmVzZUNhbGVuZGFyLk1FSUpJLCAxLCAxODY4LCBDYWxlbmRhci5TRVBURU1CRVIsIDksCisgICAgICAgICAgICBKYXBhbmVzZUNhbGVuZGFyLk1FSUpJLCAyLCAxODY5LCBDYWxlbmRhci5KVU5FLCA0LAorICAgICAgICAgICAgSmFwYW5lc2VDYWxlbmRhci5NRUlKSSwgNDUsIDE5MTIsIENhbGVuZGFyLkpVTFksIDI5LAorICAgICAgICAgICAgSmFwYW5lc2VDYWxlbmRhci5UQUlTSE8sIDEsIDE5MTIsIENhbGVuZGFyLkpVTFksIDMwLAorICAgICAgICAgICAgSmFwYW5lc2VDYWxlbmRhci5UQUlTSE8sIDEsIDE5MTIsIENhbGVuZGFyLkFVR1VTVCwgMSwKKyAgICAgICAgfTsKKyAgICAgICAgcXVhc2lHcmVnb3JpYW5UZXN0KG5ldyBKYXBhbmVzZUNhbGVuZGFyKCksIGRhdGEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgbGltaXRzIG9mIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEdyZWdvcmlhbkxpbWl0cygpIHsKKyAgICAgICAgLy8gRmluYWwgcGFyYW1ldGVyIGlzIGVpdGhlciBudW1iZXIgb2YgZGF5cywgaWYgPiAwLCBvciB0ZXN0CisgICAgICAgIC8vIGR1cmF0aW9uIGluIHNlY29uZHMsIGlmIDwgMC4KKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsLnNldCgyMDA0LCBDYWxlbmRhci5KQU5VQVJZLCAxKTsKKyAgICAgICAgZG9MaW1pdHNUZXN0KG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpLCBudWxsLCBjYWwuZ2V0VGltZSgpLCAtMTApOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0IGJlaGF2aW9yIG9mIGZpZWxkRGlmZmVyZW5jZSBhcm91bmQgbGVhcCB5ZWFycy4gIEFsc28gdGVzdCBhIGxhcmdlCisgICAgICogZmllbGQgZGlmZmVyZW5jZSB0byBjaGVjayBiaW5hcnkgc2VhcmNoLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RMZWFwRmllbGREaWZmZXJlbmNlKCkgeworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjYWwuc2V0KDIwMDQsIENhbGVuZGFyLkZFQlJVQVJZLCAyOSk7CisgICAgICAgIERhdGUgZGF0ZTIwMDQgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBjYWwuc2V0KDIwMDAsIENhbGVuZGFyLkZFQlJVQVJZLCAyOSk7CisgICAgICAgIERhdGUgZGF0ZTIwMDAgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBpbnQgeSA9IGNhbC5maWVsZERpZmZlcmVuY2UoZGF0ZTIwMDQsIENhbGVuZGFyLllFQVIpOworICAgICAgICBpbnQgZCA9IGNhbC5maWVsZERpZmZlcmVuY2UoZGF0ZTIwMDQsIENhbGVuZGFyLkRBWV9PRl9ZRUFSKTsKKyAgICAgICAgaWYgKGQgPT0gMCkgeworICAgICAgICAgICAgbG9nbG4oIk9rOiAyMDA0L0ZlYi8yOSAtIDIwMDAvRmViLzI5ID0gIiArIHkgKyAiIHllYXJzLCAiICsgZCArICIgZGF5cyIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IDIwMDQvRmViLzI5IC0gMjAwMC9GZWIvMjkgPSAiICsgeSArICIgeWVhcnMsICIgKyBkICsgIiBkYXlzIik7CisgICAgICAgIH0KKyAgICAgICAgY2FsLnNldFRpbWUoZGF0ZTIwMDQpOworICAgICAgICB5ID0gY2FsLmZpZWxkRGlmZmVyZW5jZShkYXRlMjAwMCwgQ2FsZW5kYXIuWUVBUik7CisgICAgICAgIGQgPSBjYWwuZmllbGREaWZmZXJlbmNlKGRhdGUyMDAwLCBDYWxlbmRhci5EQVlfT0ZfWUVBUik7CisgICAgICAgIGlmIChkID09IDApIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPazogMjAwMC9GZWIvMjkgLSAyMDA0L0ZlYi8yOSA9ICIgKyB5ICsgIiB5ZWFycywgIiArIGQgKyAiIGRheXMiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAyMDAwL0ZlYi8yOSAtIDIwMDQvRmViLzI5ID0gIiArIHkgKyAiIHllYXJzLCAiICsgZCArICIgZGF5cyIpOworICAgICAgICB9CisgICAgICAgIC8vIFRlc3QgbGFyZ2UgZGlmZmVyZW5jZQorICAgICAgICBjYWwuc2V0KDIwMDEsIENhbGVuZGFyLkFQUklMLCA1KTsgLy8gMjQ1MjAwNQorICAgICAgICBEYXRlIGF5bCA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGNhbC5zZXQoMTk2NCwgQ2FsZW5kYXIuU0VQVEVNQkVSLCA3KTsgLy8gMjQzODY0NgorICAgICAgICBEYXRlIGFzbCA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGQgPSBjYWwuZmllbGREaWZmZXJlbmNlKGF5bCwgQ2FsZW5kYXIuREFZX09GX01PTlRIKTsKKyAgICAgICAgY2FsLnNldFRpbWUoYXlsKTsKKyAgICAgICAgaW50IGQyID0gY2FsLmZpZWxkRGlmZmVyZW5jZShhc2wsIENhbGVuZGFyLkRBWV9PRl9NT05USCk7CisgICAgICAgIGlmIChkID09IC1kMiAmJiBkID09IDEzMzU5KSB7CisgICAgICAgICAgICBsb2dsbigiT2s6IGxhcmdlIGZpZWxkIGRpZmZlcmVuY2Ugc3ltbWV0cmljYWwgIiArIGQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nbG4oIkZBSUw6IGxhcmdlIGZpZWxkIGRpZmZlcmVuY2UgaW5jb3JyZWN0ICIgKyBkICsgIiwgIiArIGQyICsKKyAgICAgICAgICAgICAgICAgICIsIGV4cGVjdCArLy0gMTMzNTkiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgbXNfTVkgIk1hbGF5IChNYWxheXNpYSkiIGxvY2FsZS4gIEJ1ZyAxNTQzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RNYWxheXNpYW5JbnN0YW5jZSgpIHsKKyAgICAgICAgTG9jYWxlIGxvYyA9IG5ldyBMb2NhbGUoIm1zIiwgIk1ZIik7ICAvLyBNYWxheSAoTWFsYXlzaWEpCisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKGxvYyk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0lzbGFtaWNUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvSXNsYW1pY1Rlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mN2ZkMzFjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0lzbGFtaWNUZXN0LmphdmEKQEAgLTAsMCArMSwyMjggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9Jc2xhbWljVGVzdC5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzA4LzA3IDAzOjEwOjE4ICQgCisgKiAkUmV2aXNpb246IDEuNSAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY2FsZW5kYXI7CisKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Mb2NhbGVVdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuSXNsYW1pY0NhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CisKKy8qKgorICogVGVzdHMgZm9yIHRoZSA8Y29kZT5Jc2xhbWljQ2FsZW5kYXI8L2NvZGU+IGNsYXNzLgorICovCitwdWJsaWMgY2xhc3MgSXNsYW1pY1Rlc3QgZXh0ZW5kcyBDYWxlbmRhclRlc3QgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgSXNsYW1pY1Rlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgLyoqIENvbnN0YW50cyB0byBzYXZlIHR5cGluZy4gKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNVUhBUlJBTSA9IElzbGFtaWNDYWxlbmRhci5NVUhBUlJBTTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTQUZBUiA9ICBJc2xhbWljQ2FsZW5kYXIuU0FGQVI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUkFCSV8xID0gIElzbGFtaWNDYWxlbmRhci5SQUJJXzE7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUkFCSV8yID0gIElzbGFtaWNDYWxlbmRhci5SQUJJXzI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSlVNQURBXzEgPSAgSXNsYW1pY0NhbGVuZGFyLkpVTUFEQV8xOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEpVTUFEQV8yID0gIElzbGFtaWNDYWxlbmRhci5KVU1BREFfMjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBSQUpBQiA9ICBJc2xhbWljQ2FsZW5kYXIuUkFKQUI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0hBQkFOID0gIElzbGFtaWNDYWxlbmRhci5TSEFCQU47CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUkFNQURBTiA9ICBJc2xhbWljQ2FsZW5kYXIuUkFNQURBTjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTSEFXV0FMID0gIElzbGFtaWNDYWxlbmRhci5TSEFXV0FMOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFFJREFIID0gIElzbGFtaWNDYWxlbmRhci5ESFVfQUxfUUlEQUg7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSElKSkFIID0gIElzbGFtaWNDYWxlbmRhci5ESFVfQUxfSElKSkFIOworCisgICAgcHVibGljIHZvaWQgVGVzdFJvbGwoKSB7CisgICAgICAgIGludFtdW10gdGVzdHMgPSBuZXcgaW50W11bXSB7CisgICAgICAgICAgICAvLyAgICAgICBpbnB1dCAgICAgICAgICAgICAgICByb2xsIGJ5ICAgICAgICAgIG91dHB1dAorICAgICAgICAgICAgLy8gIHllYXIgIG1vbnRoICAgICBkYXkgICAgIGZpZWxkIGFtb3VudCAgICB5ZWFyICBtb250aCAgICAgZGF5CisgICAgCisgICAgICAgICAgICB7ICAgMDAwMSwgUUlEQUgsICAgICAyLCAgICAgTU9OVEgsICAgMSwgICAgIDAwMDEsIEhJSkpBSCwgICAgMiB9LCAgIC8vIG5vbi1sZWFwIHllYXJzCisgICAgICAgICAgICB7ICAgMDAwMSwgUUlEQUgsICAgICAyLCAgICAgTU9OVEgsICAgMiwgICAgIDAwMDEsIE1VSEFSUkFNLCAgMiB9LAorICAgICAgICAgICAgeyAgIDAwMDEsIFFJREFILCAgICAgMiwgICAgIE1PTlRILCAgLTEsICAgICAwMDAxLCBTSEFXV0FMLCAgIDIgfSwKKyAgICAgICAgICAgIHsgICAwMDAxLCBNVUhBUlJBTSwgIDIsICAgICBNT05USCwgIDEyLCAgICAgMDAwMSwgTVVIQVJSQU0sICAyIH0sCisgICAgICAgICAgICB7ICAgMDAwMSwgTVVIQVJSQU0sICAyLCAgICAgTU9OVEgsICAxMywgICAgIDAwMDEsIFNBRkFSLCAgICAgMiB9LAorCisgICAgICAgICAgICB7ICAgMDAwMSwgSElKSkFILCAgICAxLCAgICAgREFURSwgICAzMCwgICAgIDAwMDEsIEhJSkpBSCwgICAgMiB9LCAgIC8vIDI5LWRheSBtb250aAorICAgICAgICAgICAgeyAgIDAwMDIsIEhJSkpBSCwgICAgMSwgICAgIERBVEUsICAgMzEsICAgICAwMDAyLCBISUpKQUgsICAgIDIgfSwgICAvLyAzMC1kYXkgbW9udGgKKworICAgICAgICAgICAgLy8gVHJ5IHNvbWUgcm9sbHMgdGhhdCByZXF1aXJlIG90aGVyIGZpZWxkcyB0byBiZSBhZGp1c3RlZAorICAgICAgICAgICAgeyAgIDAwMDEsIE1VSEFSUkFNLCAzMCwgICAgIE1PTlRILCAgIDEsICAgICAwMDAxLCBTQUZBUiwgICAgMjkgfSwKKyAgICAgICAgICAgIHsgICAwMDAyLCBISUpKQUgsICAgMzAsICAgICBZRUFSLCAgIC0xLCAgICAgMDAwMSwgSElKSkFILCAgIDI5IH0sCisgICAgICAgIH07CisgICAgICAgCisgICAgICAgIElzbGFtaWNDYWxlbmRhciBjYWwgPSBuZXdDaXZpbCgpOworCisgICAgICAgIGRvUm9sbEFkZChST0xMLCBjYWwsIHRlc3RzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBIGh1Z2UgbGlzdCBvZiB0ZXN0IGNhc2VzIHRvIG1ha2Ugc3VyZSB0aGF0IGNvbXB1dGVUaW1lIGFuZCBjb21wdXRlRmllbGRzCisgICAgICogd29yayBwcm9wZXJseSBmb3IgYSB3aWRlIHJhbmdlIG9mIGRhdGEgaW4gdGhlIGNpdmlsIGNhbGVuZGFyLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDaXZpbENhc2VzKCkKKyAgICB7CisgICAgICAgIGZpbmFsIFRlc3RDYXNlW10gdGVzdHMgPSB7CisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gTW9zdCBvZiB0aGVzZSB0ZXN0IGNhc2VzIHdlcmUgdGFrZW4gZnJvbSB0aGUgYmFjayBvZgorICAgICAgICAgICAgLy8gIkNhbGVuZHJpY2FsIENhbGN1bGF0aW9ucyIsIHdpdGggc29tZSBleHRyYXMgYWRkZWQgdG8gaGVscAorICAgICAgICAgICAgLy8gZGVidWcgYSBmZXcgb2YgdGhlIHByb2JsZW1zIHRoYXQgY3JvcHBlZCB1cCBpbiBkZXZlbG9wbWVudC4KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBUaGUgbW9udGhzIGluIHRoaXMgdGFibGUgYXJlIDEtYmFzZWQgcmF0aGVyIHRoYW4gMC1iYXNlZCwKKyAgICAgICAgICAgIC8vIGJlY2F1c2UgaXQncyBlYXNpZXIgdG8gZWRpdCB0aGF0IHdheS4KKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICBJc2xhbWljCisgICAgICAgICAgICAvLyAgICAgICAgICBKdWxpYW4gRGF5ICBFcmEgIFllYXIgIE1vbnRoIERheSAgV2tEYXkgSG91ciBNaW4gU2VjCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTUwNzIzMS41LCAgMCwgLTEyNDUsICAgMTIsICAgOSwgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDE2NjAwMzcuNSwgIDAsICAtODEzLCAgICAyLCAgMjMsICBXRUQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxNzQ2ODkzLjUsICAwLCAgLTU2OCwgICAgNCwgICAxLCAgV0VELCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTc3MDY0MS41LCAgMCwgIC01MDEsICAgIDQsICAgNiwgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDE4OTI3MzEuNSwgIDAsICAtMTU3LCAgIDEwLCAgMTcsICBXRUQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxOTMxNTc5LjUsICAwLCAgIC00NywgICAgNiwgICAzLCAgTU9OLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTk3NDg1MS41LCAgMCwgICAgNzUsICAgIDcsICAxMywgIFNBVCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDIwOTExNjQuNSwgIDAsICAgNDAzLCAgIDEwLCAgIDUsICBTVU4sICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMTIxNTA5LjUsICAwLCAgIDQ4OSwgICAgNSwgIDIyLCAgU1VOLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjE1NTc3OS41LCAgMCwgICA1ODYsICAgIDIsICAgNywgIEZSSSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDIxNzQwMjkuNSwgIDAsICAgNjM3LCAgICA4LCAgIDcsICBTQVQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMTkxNTg0LjUsICAwLCAgIDY4NywgICAgMiwgIDIwLCAgRlJJLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjE5NTI2MS41LCAgMCwgICA2OTcsICAgIDcsICAgNywgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDIyMjkyNzQuNSwgIDAsICAgNzkzLCAgICA3LCAgIDEsICBTVU4sICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMjQ1NTgwLjUsICAwLCAgIDgzOSwgICAgNywgICA2LCAgV0VELCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjI2NjEwMC41LCAgMCwgICA4OTcsICAgIDYsICAgMSwgIFNBVCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDIyODg1NDIuNSwgIDAsICAgOTYwLCAgICA5LCAgMzAsICBTQVQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMjkwOTAxLjUsICAwLCAgIDk2NywgICAgNSwgIDI3LCAgU0FULCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjMyMzE0MC41LCAgMCwgIDEwNTgsICAgIDUsICAxOCwgIFdFRCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDIzMzQ4NDguNSwgIDAsICAxMDkxLCAgICA2LCAgIDIsICBTVU4sICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMzQ4MDIwLjUsICAwLCAgMTEyOCwgICAgOCwgICA0LCAgRlJJLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjM2Njk3OC41LCAgMCwgIDExODIsICAgIDIsICAgMywgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDIzODU2NDguNSwgIDAsICAxMjM0LCAgIDEwLCAgMTAsICBNT04sICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMzkyODI1LjUsICAwLCAgMTI1NSwgICAgMSwgIDExLCAgV0VELCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQxNjIyMy41LCAgMCwgIDEzMjEsICAgIDEsICAyMSwgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0MjU4NDguNSwgIDAsICAxMzQ4LCAgICAzLCAgMTksICBTVU4sICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDMwMjY2LjUsICAwLCAgMTM2MCwgICAgOSwgICA4LCAgTU9OLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQzMDgzMy41LCAgMCwgIDEzNjIsICAgIDQsICAxMywgIE1PTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0MzEwMDQuNSwgIDAsICAxMzYyLCAgIDEwLCAgIDcsICBUSFUsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDQ4Njk4LjUsICAwLCAgMTQxMiwgICAgOSwgIDEzLCAgVFVFLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQ1MDEzOC41LCAgMCwgIDE0MTYsICAgMTAsICAgNSwgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NjU3MzcuNSwgIDAsICAxNDYwLCAgIDEwLCAgMTIsICBXRUQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDg2MDc2LjUsICAwLCAgMTUxOCwgICAgMywgICA1LCAgU1VOLCAgIDAsICAwLCAgMCksCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBJc2xhbWljQ2FsZW5kYXIgY2l2aWxDYWxlbmRhciA9IG5ld0NpdmlsKCk7CisgICAgICAgIGNpdmlsQ2FsZW5kYXIuc2V0TGVuaWVudCh0cnVlKTsKKyAgICAgICAgZG9UZXN0Q2FzZXModGVzdHMsIGNpdmlsQ2FsZW5kYXIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RCYXNpYygpIHsKKyAgICAgICAgSXNsYW1pY0NhbGVuZGFyIGNhbCA9IG5ld0NpdmlsKCk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDEwMDAsIDAsIDMwKTsKKyAgICAgICAgbG9nbG4oIjEwMDAvMC8zMCAtPiAiICsKKyAgICAgICAgICAgICAgY2FsLmdldChZRUFSKSArICIvIiArCisgICAgICAgICAgICAgIGNhbC5nZXQoTU9OVEgpICsgIi8iICsgCisgICAgICAgICAgICAgIGNhbC5nZXQoREFURSkpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgxLCAwLCAzMCk7CisgICAgICAgIGxvZ2xuKCIxLzAvMzAgLT4gIiArCisgICAgICAgICAgICAgIGNhbC5nZXQoWUVBUikgKyAiLyIgKworICAgICAgICAgICAgICBjYWwuZ2V0KE1PTlRIKSArICIvIiArIAorICAgICAgICAgICAgICBjYWwuZ2V0KERBVEUpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q292ZXJhZ2UoKSB7CisJeworCSAgICAvLyBuZXcgSXNsYW1pY0NhbGVuZGFyKFRpbWVab25lKQorCSAgICBJc2xhbWljQ2FsZW5kYXIgY2FsID0gbmV3IElzbGFtaWNDYWxlbmRhcihUaW1lWm9uZS5nZXREZWZhdWx0KCkpOworCX0KKwkKKwl7CisJICAgIC8vIG5ldyBJc2xhbWljQ2FsZW5kYXIoTG9jYWxlKQorCSAgICBJc2xhbWljQ2FsZW5kYXIgY2FsID0gbmV3IElzbGFtaWNDYWxlbmRhcihMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKwl9CisKKwl7CisJICAgIC8vIG5ldyBJc2xhbWljQ2FsZW5kYXIoRGF0ZSkKKwkgICAgSXNsYW1pY0NhbGVuZGFyIGNhbCA9IG5ldyBJc2xhbWljQ2FsZW5kYXIobmV3IERhdGUoKSk7CisJfQorCisJeworCSAgICAvLyBuZXcgSXNsYW1pY0NhbGVuZGFyKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlKQorCSAgICBJc2xhbWljQ2FsZW5kYXIgY2FsID0gbmV3IElzbGFtaWNDYWxlbmRhcig4MDAsIElzbGFtaWNDYWxlbmRhci5SQU1BREFOLCAxKTsKKwl9CisKKwl7CisJICAgIC8vIG5ldyBJc2xhbWljQ2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUsIGludCBob3VyLCBpbnQgbWludXRlLCBpbnQgc2Vjb25kKQorCSAgICBJc2xhbWljQ2FsZW5kYXIgY2FsID0gbmV3IElzbGFtaWNDYWxlbmRhcig4MDAsIElzbGFtaWNDYWxlbmRhci5SQU1BREFOLCAxLCAxLCAxLCAxKTsKKwl9CisKKwl7CisJICAgIC8vIHNldENpdmlsL2lzQ2l2aWwKKwkgICAgLy8gb3BlcmF0aW9ucyBvbiBub24tY2l2aWwgY2FsZW5kYXIKKwkgICAgSXNsYW1pY0NhbGVuZGFyIGNhbCA9IG5ldyBJc2xhbWljQ2FsZW5kYXIoODAwLCBJc2xhbWljQ2FsZW5kYXIuUkFNQURBTiwgMSwgMSwgMSwgMSk7CisJICAgIGNhbC5zZXRDaXZpbChmYWxzZSk7CisJICAgIGlmIChjYWwuaXNDaXZpbCgpKSB7CisJCWVycmxuKCJpc2xhbWljIGNhbGVuZGFyIGlzIGNpdmlsIik7CisJICAgIH0KKworCSAgICBEYXRlIG5vdyA9IG5ldyBEYXRlKCk7CisJICAgIGNhbC5zZXRUaW1lKG5vdyk7CisKKwkgICAgRGF0ZSB0aGVuID0gY2FsLmdldFRpbWUoKTsKKwkgICAgaWYgKCFub3cuZXF1YWxzKHRoZW4pKSB7CisJCWVycmxuKCJnZXQvc2V0IHRpbWUgZmFpbGVkIHdpdGggbm9uLWNpdmlsIGlzbGFtaWMgY2FsZW5kYXIiKTsKKwkgICAgfQorCisJICAgIGxvZ2xuKHRoZW4udG9TdHJpbmcoKSk7CisKKwkgICAgY2FsLmFkZChjYWwuTU9OVEgsIDEpOworCSAgICBjYWwuYWRkKGNhbC5EQVlfT0ZfTU9OVEgsIDEpOworCSAgICBjYWwuYWRkKGNhbC5ZRUFSLCAxKTsKKworCSAgICBsb2dsbihjYWwuZ2V0VGltZSgpLnRvU3RyaW5nKCkpOworCX0KKwkKKwl7CisJICAgIC8vIGRhdGEKKwkgICAgSXNsYW1pY0NhbGVuZGFyIGNhbCA9IG5ldyBJc2xhbWljQ2FsZW5kYXIoODAwLCBJc2xhbWljQ2FsZW5kYXIuUkFNQURBTiwgMSk7CisJICAgIERhdGUgdGltZSA9IGNhbC5nZXRUaW1lKCk7CisKKwkgICAgU3RyaW5nW10gY2FsZW5kYXJMb2NhbGVzID0geworCQkiYXJfQUUiLCAiYXJfQkgiLCAiYXJfRFoiLCAiYXJfRUciLCAiYXJfSk8iLCAiYXJfS1ciLCAiYXJfT00iLCAKKwkJImFyX1FBIiwgImFyX1NBIiwgImFyX1NZIiwgImFyX1lFIiwgIm1zX01ZIgorCSAgICB9OworCisJICAgIFN0cmluZ1tdIGZvcm1hdExvY2FsZXMgPSB7CisJCSJlbiIsICJhciIsICJmaSIsICJmciIsICJodSIsICJpdyIsICJubCIKKwkgICAgfTsKKwkgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjYWxlbmRhckxvY2FsZXMubGVuZ3RoOyArK2kpIHsKKwkJU3RyaW5nIGNhbExvY05hbWUgPSBjYWxlbmRhckxvY2FsZXNbaV07CisJCUxvY2FsZSBjYWxMb2NhbGUgPSBMb2NhbGVVdGlsaXR5LmdldExvY2FsZUZyb21OYW1lKGNhbExvY05hbWUpOworCQljYWwgPSBuZXcgSXNsYW1pY0NhbGVuZGFyKGNhbExvY2FsZSk7CisKKwkJZm9yIChpbnQgaiA9IDA7IGogPCBmb3JtYXRMb2NhbGVzLmxlbmd0aDsgKytqKSB7CisJCSAgICBTdHJpbmcgbG9jTmFtZSA9IGZvcm1hdExvY2FsZXNbal07CisJCSAgICBMb2NhbGUgZm9ybWF0TG9jYWxlID0gTG9jYWxlVXRpbGl0eS5nZXRMb2NhbGVGcm9tTmFtZShsb2NOYW1lKTsKKwkJICAgIERhdGVGb3JtYXQgZm9ybWF0ID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKGNhbCwgRGF0ZUZvcm1hdC5GVUxMLCBEYXRlRm9ybWF0LkZVTEwsIGZvcm1hdExvY2FsZSk7CisJCSAgICBsb2dsbihjYWxMb2NOYW1lICsgIi8iICsgbG9jTmFtZSArICIgLS0+ICIgKyBmb3JtYXQuZm9ybWF0KHRpbWUpKTsKKwkJfQorCSAgICB9CisJfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIElzbGFtaWNDYWxlbmRhciBuZXdDaXZpbCgpIHsKKyAgICAgICAgSXNsYW1pY0NhbGVuZGFyIGNpdmlsQ2FsZW5kYXIgPSBuZXcgSXNsYW1pY0NhbGVuZGFyKCk7CisgICAgICAgIGNpdmlsQ2FsZW5kYXIuc2V0Q2l2aWwodHJ1ZSk7CisgICAgICAgIHJldHVybiBjaXZpbENhbGVuZGFyOworICAgIH0KKyAgICAKK307CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvSmFwYW5lc2VUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvSmFwYW5lc2VUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2QyOTQ1OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9KYXBhbmVzZVRlc3QuamF2YQpAQCAtMCwwICsxLDExMCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0phcGFuZXNlVGVzdC5qYXZhLHYgJAorICogJERhdGU6IDIwMDIvMDgvMDggMjM6MDY6MDkgJAorICogJFJldmlzaW9uOiAxLjEgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNhbGVuZGFyOworCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTG9jYWxlVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkphcGFuZXNlQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKKworLyoqCisgKiBUZXN0cyBmb3IgdGhlIDxjb2RlPklzbGFtaWNDYWxlbmRhcjwvY29kZT4gY2xhc3MuCisgKi8KK3B1YmxpYyBjbGFzcyBKYXBhbmVzZVRlc3QgZXh0ZW5kcyBDYWxlbmRhclRlc3QgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgSmFwYW5lc2VUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb3ZlcmFnZSgpIHsKKwl7CisJICAgIC8vIG5ldyBKYXBhbmVzZUNhbGVuZGFyKFRpbWVab25lKQorCSAgICBKYXBhbmVzZUNhbGVuZGFyIGNhbCA9IG5ldyBKYXBhbmVzZUNhbGVuZGFyKFRpbWVab25lLmdldERlZmF1bHQoKSk7CisJfQorCQorCXsKKwkgICAgLy8gbmV3IEphcGFuZXNlQ2FsZW5kYXIoTG9jYWxlKQorCSAgICBKYXBhbmVzZUNhbGVuZGFyIGNhbCA9IG5ldyBKYXBhbmVzZUNhbGVuZGFyKExvY2FsZS5nZXREZWZhdWx0KCkpOworCX0KKworCXsKKwkgICAgLy8gbmV3IEphcGFuZXNlQ2FsZW5kYXIoVGltZVpvbmUsIExvY2FsZSkKKwkgICAgSmFwYW5lc2VDYWxlbmRhciBjYWwgPSBuZXcgSmFwYW5lc2VDYWxlbmRhcihUaW1lWm9uZS5nZXREZWZhdWx0KCksIExvY2FsZS5nZXREZWZhdWx0KCkpOworCX0KKworCXsKKwkgICAgLy8gbmV3IEphcGFuZXNlQ2FsZW5kYXIoRGF0ZSkKKwkgICAgSmFwYW5lc2VDYWxlbmRhciBjYWwgPSBuZXcgSmFwYW5lc2VDYWxlbmRhcihuZXcgRGF0ZSgpKTsKKwl9CisKKwl7CisJICAgIC8vIG5ldyBKYXBhbmVzZUNhbGVuZGFyKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlKQorCSAgICBKYXBhbmVzZUNhbGVuZGFyIGNhbCA9IG5ldyBKYXBhbmVzZUNhbGVuZGFyKDE4NjgsIENhbGVuZGFyLkpBTlVBUlksIDEpOworCX0KKworCXsKKwkgICAgLy8gbmV3IEphcGFuZXNlQ2FsZW5kYXIoaW50IGVyYSwgaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUpCisJICAgIEphcGFuZXNlQ2FsZW5kYXIgY2FsID0gbmV3IEphcGFuZXNlQ2FsZW5kYXIoSmFwYW5lc2VDYWxlbmRhci5NRUlKSSwgNDMsIENhbGVuZGFyLkpBTlVBUlksIDEpOworCX0KKworCXsKKwkgICAgLy8gbmV3IEphcGFuZXNlQ2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUsIGludCBob3VyLCBpbnQgbWludXRlLCBpbnQgc2Vjb25kKQorCSAgICBKYXBhbmVzZUNhbGVuZGFyIGNhbCA9IG5ldyBKYXBhbmVzZUNhbGVuZGFyKDE4NjgsIENhbGVuZGFyLkpBTlVBUlksIDEsIDEsIDEsIDEpOworCX0KKworCXsKKwkgICAgLy8gbGltaXRzCisJICAgIEphcGFuZXNlQ2FsZW5kYXIgY2FsID0gbmV3IEphcGFuZXNlQ2FsZW5kYXIoKTsKKwkgICAgRGF0ZUZvcm1hdCBmbXQgPSBjYWwuZ2V0RGF0ZVRpbWVGb3JtYXQoRGF0ZUZvcm1hdC5GVUxMLCBEYXRlRm9ybWF0LkZVTEwsIExvY2FsZS5FTkdMSVNIKTsKKworCSAgICBjYWwuc2V0KGNhbC5FUkEsIGNhbC5NRUlKSSk7CisJICAgIGxvZ2xuKCJkYXRlOiAiICsgY2FsLmdldFRpbWUoKSk7CisJICAgIGxvZ2xuKCJtaW4gZXJhOiAiICsgY2FsLmdldE1pbmltdW0oY2FsLkVSQSkpOworCSAgICBsb2dsbigibWluIHllYXI6ICIgKyBjYWwuZ2V0TWluaW11bShjYWwuWUVBUikpOworCSAgICBjYWwuc2V0KGNhbC5ZRUFSLCBjYWwuZ2V0QWN0dWFsTWF4aW11bShjYWwuWUVBUikpOworCSAgICBsb2dsbigiZGF0ZTogIiArIGZtdC5mb3JtYXQoY2FsLmdldFRpbWUoKSkpOworCSAgICBjYWwuYWRkKGNhbC5ZRUFSLCAxKTsKKwkgICAgbG9nbG4oImRhdGU6ICIgKyBmbXQuZm9ybWF0KGNhbC5nZXRUaW1lKCkpKTsKKwl9CisJCisJeworCSAgICAvLyBkYXRhCisJICAgIEphcGFuZXNlQ2FsZW5kYXIgY2FsID0gbmV3IEphcGFuZXNlQ2FsZW5kYXIoMTg2OCwgQ2FsZW5kYXIuSkFOVUFSWSwgMSk7CisJICAgIERhdGUgdGltZSA9IGNhbC5nZXRUaW1lKCk7CisKKwkgICAgU3RyaW5nW10gY2FsZW5kYXJMb2NhbGVzID0geworCQkiZW4iLCAiamFfSlAiCisJICAgIH07CisKKwkgICAgU3RyaW5nW10gZm9ybWF0TG9jYWxlcyA9IHsKKwkJImVuIiwgImphIgorCSAgICB9OworCSAgICBmb3IgKGludCBpID0gMDsgaSA8IGNhbGVuZGFyTG9jYWxlcy5sZW5ndGg7ICsraSkgeworCQlTdHJpbmcgY2FsTG9jTmFtZSA9IGNhbGVuZGFyTG9jYWxlc1tpXTsKKwkJTG9jYWxlIGNhbExvY2FsZSA9IExvY2FsZVV0aWxpdHkuZ2V0TG9jYWxlRnJvbU5hbWUoY2FsTG9jTmFtZSk7CisJCWNhbCA9IG5ldyBKYXBhbmVzZUNhbGVuZGFyKGNhbExvY2FsZSk7CisKKwkJZm9yIChpbnQgaiA9IDA7IGogPCBmb3JtYXRMb2NhbGVzLmxlbmd0aDsgKytqKSB7CisJCSAgICBTdHJpbmcgbG9jTmFtZSA9IGZvcm1hdExvY2FsZXNbal07CisJCSAgICBMb2NhbGUgZm9ybWF0TG9jYWxlID0gTG9jYWxlVXRpbGl0eS5nZXRMb2NhbGVGcm9tTmFtZShsb2NOYW1lKTsKKwkJICAgIERhdGVGb3JtYXQgZm9ybWF0ID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKGNhbCwgRGF0ZUZvcm1hdC5GVUxMLCBEYXRlRm9ybWF0LkZVTEwsIGZvcm1hdExvY2FsZSk7CisJCSAgICBsb2dsbihjYWxMb2NOYW1lICsgIi8iICsgbG9jTmFtZSArICIgLS0+ICIgKyBmb3JtYXQuZm9ybWF0KHRpbWUpKTsKKwkJfQorCSAgICB9CisJfQorICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL1Rlc3RDYXNlLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvVGVzdENhc2UuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mYmY1YzZjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL1Rlc3RDYXNlLmphdmEKQEAgLTAsMCArMSwyNDUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9UZXN0Q2FzZS5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA1OjA3ICQgCisgKiAkUmV2aXNpb246IDEuNyAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY2FsZW5kYXI7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5HcmVnb3JpYW5DYWxlbmRhcjsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlNpbXBsZVRpbWVab25lOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKKy8qKgorICogQSBwc2V1ZG8gPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IHRoYXQgaXMgdXNlZnVsIGZvciB0ZXN0aW5nCisgKiBuZXcgY2FsZW5kYXJzLiAgQSA8Y29kZT5UZXN0Q2FzZTwvY29kZT4gb2JqZWN0IGlzIHVzZWQgdG8gaG9sZCB0aGUKKyAqIGZpZWxkIGFuZCBtaWxsaXNlY29uZCB2YWx1ZXMgdGhhdCB0aGUgY2FsZW5kYXIgc2hvdWxkIGhhdmUgYXQgb25lCisgKiBwYXJ0aWN1bGFyIGluc3RhbnQgaW4gdGltZS4gIFRoZSBhcHBseUZpZWxkcyBhbmQgYXBwbHlUaW1lCisgKiBtZXRob2RzIGFyZSB1c2VkIHRvIGFwcGx5IHRoZXNlIHNldHRpbmdzIHRvIHRoZSBjYWxlbmRhciBvYmplY3QgYmVpbmcKKyAqIHRlc3RlZCwgYW5kIHRoZSBlcXVhbHMgYW5kIGZpZWxkc0VxdWFsIG1ldGhvZHMgYXJlIHVzZWQgdG8gZW5zdXJlCisgKiB0aGF0IHRoZSBjYWxlbmRhciBoYXMgZW5kZWQgdXAgaW4gdGhlIHJpZ2h0IHN0YXRlLgorICovCitwdWJsaWMgY2xhc3MgVGVzdENhc2UgeworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBQc2V1ZG8tQ2FsZW5kYXIgZmllbGRzIGFuZCBtZXRob2RzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHByb3RlY3RlZCBpbnRbXSBmaWVsZHMgPSBuZXcgaW50WzMyXTsKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbltdIGlzU2V0ID0gbmV3IGJvb2xlYW5bMzJdOworICAgIHByb3RlY3RlZCBsb25nIHRpbWU7CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBzZXQoaW50IGZpZWxkLCBpbnQgdmFsdWUpIHsKKyAgICAgICAgZmllbGRzW2ZpZWxkXSA9IHZhbHVlOworICAgICAgICBpc1NldFtmaWVsZF0gPSB0cnVlOworICAgIH0KKworICAgIHByb3RlY3RlZCBpbnQgZ2V0KGludCBmaWVsZCkgeworICAgICAgICByZXR1cm4gZmllbGRzW2ZpZWxkXTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBpc1NldChpbnQgZmllbGQpIHsKKyAgICAgICAgcmV0dXJuIGlzU2V0W2ZpZWxkXTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBzZXRUaW1lKERhdGUgZCkgeworICAgICAgICB0aW1lID0gZC5nZXRUaW1lKCk7CisgICAgfQorCisgICAgcHVibGljIERhdGUgZ2V0VGltZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHRpbWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHRlc3QgY2FzZSdzIHRpbWUuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgcmV0dXJuIGRvd1RvU3RyaW5nKGdldChDYWxlbmRhci5EQVlfT0ZfV0VFSykpICsKKyAgICAgICAgICAgIGdldChDYWxlbmRhci5ZRUFSKSArICIvIiArIChnZXQoQ2FsZW5kYXIuTU9OVEgpKzEpICsgIi8iICsKKyAgICAgICAgICAgIGdldChDYWxlbmRhci5EQVRFKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBET1dfTkFNRVMgPSB7CisgICAgICAgICJTdW4iLCAiTW9uIiwgIlR1ZSIsICJXZWQiLCAiVGh1IiwgIkZyaSIsICJTYXQiCisgICAgfTsKKworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGRvd1RvU3RyaW5nKGludCBkb3cpIHsKKyAgICAgICAgLS1kb3c7CisgICAgICAgIHJldHVybiAoZG93IDwgMCB8fCBkb3cgPiA2KSA/CisgICAgICAgICAgICAoIjxET1cgIiArIGRvdyArICI+IikgOiBET1dfTkFNRVNbZG93XTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXplIGEgVGVzdENhc2Ugb2JqZWN0IHVzaW5nIGEganVsaWFuIGRheSBudW1iZXIgYW5kCisgICAgICogdGhlIGNvcnJlc3BvbmRpbmcgZmllbGRzIGZvciB0aGUgY2FsZW5kYXIgYmVpbmcgdGVzdGVkLgorICAgICAqCisgICAgICogQHBhcmFtIGVyYSAgICAgICBUaGUgRVJBIGZpZWxkIG9mIHRlc3RlZCBjYWxlbmRhciBvbiB0aGUgZ2l2ZW4ganVsaWFuIGRheQorICAgICAqIEBwYXJhbSB5ZWFyICAgICAgVGhlIFlFQVIgZmllbGQgb2YgdGVzdGVkIGNhbGVuZGFyIG9uIHRoZSBnaXZlbiBqdWxpYW4gZGF5CisgICAgICogQHBhcmFtIG1vbnRoICAgICBUaGUgTU9OVEggKDEtYmFzZWQpIGZpZWxkIG9mIHRlc3RlZCBjYWxlbmRhciBvbiB0aGUgZ2l2ZW4ganVsaWFuIGRheQorICAgICAqIEBwYXJhbSBkYXkgICAgICAgVGhlIERBWV9PRl9NT05USCBmaWVsZCBvZiB0ZXN0ZWQgY2FsZW5kYXIgb24gdGhlIGdpdmVuIGp1bGlhbiBkYXkKKyAgICAgKiBAcGFyYW0gZGF5T2ZXZWVrIFRoZSBEQVlfT0ZfV0VFSyBmaWVsZCBvZiB0ZXN0ZWQgY2FsZW5kYXIgb24gdGhlIGdpdmVuIGp1bGlhbiBkYXkKKyAgICAgKiBAcGFyYW0gaG91ciAgICAgIFRoZSBIT1VSIGZpZWxkIG9mIHRlc3RlZCBjYWxlbmRhciBvbiB0aGUgZ2l2ZW4ganVsaWFuIGRheQorICAgICAqIEBwYXJhbSBtaW4gICAgICAgVGhlIE1JTlVURSBmaWVsZCBvZiB0ZXN0ZWQgY2FsZW5kYXIgb24gdGhlIGdpdmVuIGp1bGlhbiBkYXkKKyAgICAgKiBAcGFyYW0gc2VjICAgICAgIFRoZSBTRUNPTkQgZmllbGQgb2YgdGVzdGVkIGNhbGVuZGFyIG9uIHRoZSBnaXZlbiBqdWxpYW4gZGF5CisgICAgICovCisgICAgcHVibGljIFRlc3RDYXNlKGRvdWJsZSBqdWxpYW4sCisgICAgICAgICAgICAgICAgICAgIGludCBlcmEsIGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXksCisgICAgICAgICAgICAgICAgICAgIGludCBkYXlPZldlZWssCisgICAgICAgICAgICAgICAgICAgIGludCBob3VyLCBpbnQgbWluLCBpbnQgc2VjKQorICAgIHsKKyAgICAgICAgc2V0VGltZShuZXcgRGF0ZShKVUxJQU5fRVBPQ0ggKyAobG9uZykoT05FX0RBWSAqIGp1bGlhbikpKTsKKyAgICAgICAgCisgICAgICAgIHNldChDYWxlbmRhci5FUkEsIGVyYSk7CisgICAgICAgIHNldChDYWxlbmRhci5ZRUFSLCB5ZWFyKTsKKyAgICAgICAgc2V0KENhbGVuZGFyLk1PTlRILCBtb250aCAtIDEpOworICAgICAgICBzZXQoQ2FsZW5kYXIuREFURSwgZGF5KTsKKyAgICAgICAgc2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLLCBkYXlPZldlZWspOworICAgICAgICBzZXQoQ2FsZW5kYXIuSE9VUiwgaG91cik7CisgICAgICAgIHNldChDYWxlbmRhci5NSU5VVEUsIG1pbik7CisgICAgICAgIHNldChDYWxlbmRhci5TRUNPTkQsIHNlYyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZSBhIFRlc3RDYXNlIG9iamVjdCB1c2luZyBhIEdyZWdvcmlhbiB5ZWFyL21vbnRoL2RheSBhbmQKKyAgICAgKiB0aGUgY29ycmVzcG9uZGluZyBmaWVsZHMgZm9yIHRoZSBjYWxlbmRhciBiZWluZyB0ZXN0ZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZ3JlZ1llYXIgIFRoZSBHcmVnb3JpYW4geWVhciBvZiB0aGUgZGF0ZSB0byBiZSB0ZXN0ZWQKKyAgICAgKiBAcGFyYW0gZ3JlZ01vbnRoIFRoZSBHcmVnb3JpYW4gbW9udGggb2YgdGhlIGRhdGUgdG8gYmUgdGVzdGVkCisgICAgICogQHBhcmFtIGdyZWdEYXkgICBUaGUgR3JlZ29yaWFuIGRheSBvZiB0aGUgbW9udGggb2YgdGhlIGRhdGUgdG8gYmUgdGVzdGVkCisgICAgICoKKyAgICAgKiBAcGFyYW0gZXJhICAgICAgIFRoZSBFUkEgZmllbGQgb2YgdGVzdGVkIGNhbGVuZGFyIG9uIHRoZSBnaXZlbiBncmVnb3JpYW4gZGF0ZQorICAgICAqIEBwYXJhbSB5ZWFyICAgICAgVGhlIFlFQVIgZmllbGQgb2YgdGVzdGVkIGNhbGVuZGFyIG9uIHRoZSBnaXZlbiBncmVnb3JpYW4gZGF0ZQorICAgICAqIEBwYXJhbSBtb250aCAgICAgVGhlIE1PTlRIICgwLWJhc2VkKSBmaWVsZCBvZiB0ZXN0ZWQgY2FsZW5kYXIgb24gdGhlIGdpdmVuIGdyZWdvcmlhbiBkYXRlCisgICAgICogQHBhcmFtIGRheSAgICAgICBUaGUgREFZX09GX01PTlRIIGZpZWxkIG9mIHRlc3RlZCBjYWxlbmRhciBvbiB0aGUgZ2l2ZW4gZ3JlZ29yaWFuIGRhdGUKKyAgICAgKiBAcGFyYW0gZGF5T2ZXZWVrIFRoZSBEQVlfT0ZfV0VFSyBmaWVsZCBvZiB0ZXN0ZWQgY2FsZW5kYXIgb24gdGhlIGdpdmVuIGdyZWdvcmlhbiBkYXRlCisgICAgICogQHBhcmFtIGhvdXIgICAgICBUaGUgSE9VUiBmaWVsZCBvZiB0ZXN0ZWQgY2FsZW5kYXIgb24gdGhlIGdpdmVuIGdyZWdvcmlhbiBkYXRlCisgICAgICogQHBhcmFtIG1pbiAgICAgICBUaGUgTUlOVVRFIGZpZWxkIG9mIHRlc3RlZCBjYWxlbmRhciBvbiB0aGUgZ2l2ZW4gZ3JlZ29yaWFuIGRhdGUKKyAgICAgKiBAcGFyYW0gc2VjICAgICAgIFRoZSBTRUNPTkQgZmllbGQgb2YgdGVzdGVkIGNhbGVuZGFyIG9uIHRoZSBnaXZlbiBncmVnb3JpYW4gZGF0ZQorICAgICAqLworICAgIHB1YmxpYyBUZXN0Q2FzZShpbnQgZ3JlZ1llYXIsIGludCBncmVnTW9udGgsIGludCBncmVnRGF5LAorICAgICAgICAgICAgICAgICAgICBpbnQgZXJhLCBpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF5LAorICAgICAgICAgICAgICAgICAgICBpbnQgZGF5T2ZXZWVrLAorICAgICAgICAgICAgICAgICAgICBpbnQgaG91ciwgaW50IG1pbiwgaW50IHNlYykKKyAgICB7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGdyZWcgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoVVRDLCBMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgZ3JlZy5jbGVhcigpOworICAgICAgICBncmVnLnNldChncmVnWWVhciwgZ3JlZ01vbnRoLTEsIGdyZWdEYXkpOworICAgICAgICBzZXRUaW1lKGdyZWcuZ2V0VGltZSgpKTsKKyAgICAgICAgCisgICAgICAgIHNldChDYWxlbmRhci5FUkEsIGVyYSk7CisgICAgICAgIHNldChDYWxlbmRhci5ZRUFSLCB5ZWFyKTsKKyAgICAgICAgc2V0KENhbGVuZGFyLk1PTlRILCBtb250aCAtIDEpOworICAgICAgICBzZXQoQ2FsZW5kYXIuREFURSwgZGF5KTsKKyAgICAgICAgc2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLLCBkYXlPZldlZWspOworICAgICAgICBzZXQoQ2FsZW5kYXIuSE9VUiwgaG91cik7CisgICAgICAgIHNldChDYWxlbmRhci5NSU5VVEUsIG1pbik7CisgICAgICAgIHNldChDYWxlbmRhci5TRUNPTkQsIHNlYyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEZvciBzdWJjbGFzc2VzLgorICAgICAqLworICAgIHByb3RlY3RlZCBUZXN0Q2FzZSgpIHt9CisKKyAgICAvKioKKyAgICAgKiBBcHBseSB0aGlzIHRlc3QgY2FzZSdzIGZpZWxkIHZhbHVlcyB0byBhbm90aGVyIGNhbGVuZGFyCisgICAgICogYnkgY2FsbGluZyBpdHMgc2V0IG1ldGhvZCBmb3IgZWFjaCBmaWVsZC4gIFRoaXMgaXMgdXNlZnVsIGluIGNvbWJpbmF0aW9uCisgICAgICogd2l0aCB0aGUgZXF1YWwgbWV0aG9kLgorICAgICAqCisgICAgICogQHNlZSAjZXF1YWwKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhcHBseUZpZWxkcyhDYWxlbmRhciBjKSB7CisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IGMuZ2V0RmllbGRDb3VudCgpOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChpc1NldChpKSkgeworICAgICAgICAgICAgICAgIGMuc2V0KGksIGdldChpKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQXBwbHkgdGhpcyB0ZXN0IGNhc2UncyB0aW1lIGluIG1pbGxpc2Vjb25kcyB0byBhbm90aGVyIGNhbGVuZGFyCisgICAgICogYnkgY2FsbGluZyBpdHMgc2V0VGltZSBtZXRob2QuICBUaGlzIGlzIHVzZWZ1bCBpbiBjb21iaW5hdGlvbgorICAgICAqIHdpdGggZmllbGRzRXF1YWwKKyAgICAgKgorICAgICAqIEBzZWUgI2ZpZWxkc0VxdWFsCisgICAgICovCisgICAgcHVibGljIHZvaWQgYXBwbHlUaW1lKENhbGVuZGFyIGMpIHsKKyAgICAgICAgYy5zZXRUaW1lKG5ldyBEYXRlKHRpbWUpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmUgd2hldGhlciB0aGUgZmllbGRzIG9mIHRoaXMgY2FsZW5kYXIKKyAgICAgKiBhcmUgdGhlIHNhbWUgYXMgdGhhdCBvZiB0aGUgb3RoZXIgY2FsZW5kYXIuICBUaGlzIG1ldGhvZCBpcyB1c2VmdWwKKyAgICAgKiBmb3IgZGV0ZXJtaW5pbmcgd2hldGhlciB0aGUgb3RoZXIgY2FsZW5kYXIncyBjb21wdXRlRmllbGRzIG1ldGhvZAorICAgICAqIHdvcmtzIHByb3Blcmx5LiAgRm9yIGV4YW1wbGU6CisgICAgICogPHByZT4KKyAgICAgKiAgICBDYWxlbmRhciB0ZXN0Q2FsZW5kYXIgPSAuLi4KKyAgICAgKiAgICBUZXN0Q2FzZSBjYXNlID0gLi4uCisgICAgICogICAgY2FzZS5hcHBseVRpbWUodGVzdENhbGVuZGFyKTsKKyAgICAgKiAgICBpZiAoIWNhc2UuZmllbGRzRXF1YWwodGVzdENhbGVuZGFyKSkgeworICAgICAqICAgICAgICAvLyBFcnJvciEKKyAgICAgKiAgICB9CisgICAgICogPC9wcmU+CisgICAgICogCisgICAgICogQHNlZSAjYXBwbHlUaW1lCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZmllbGRzRXF1YWwoQ2FsZW5kYXIgYywgVGVzdExvZyBsb2cpIHsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgYy5nZXRGaWVsZENvdW50KCk7IGkrKykgeworICAgICAgICAgICAgaWYgKGlzU2V0KGkpICYmIGdldChpKSAhPSBjLmdldChpKSkgeworICAgICAgICAgICAgICAgIGxvZy5lcnJsbigiRmFpbDogIiArIENhbGVuZGFyVGVzdC5maWVsZE5hbWUoaSkgKyAiID0gIiArIGMuZ2V0KGkpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQgIiArIGdldChpKSk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaj0wOyBqPGMuZ2V0RmllbGRDb3VudCgpOyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzU2V0KGopKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZ2V0KGopID09IGMuZ2V0KGopKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nLmVycmxuKCIgT0s6ICIgKyBDYWxlbmRhclRlc3QuZmllbGROYW1lKGopICsgIiA9ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLmdldChqKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZy5lcnJsbigiIEZhaWw6ICIgKyBDYWxlbmRhclRlc3QuZmllbGROYW1lKGopICsgIiA9ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLmdldChqKSArICIsIGV4cGVjdGVkICIgKyBnZXQoaikpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIERldGVybWluZSB3aGV0aGVyIHRpbWUgaW4gbWlsbGlzZWNvbmRzIG9mIHRoaXMgY2FsZW5kYXIKKyAgICAgKiBpcyB0aGUgc2FtZSBhcyB0aGF0IG9mIHRoZSBvdGhlciBjYWxlbmRhci4gIFRoaXMgbWV0aG9kIGlzIHVzZWZ1bAorICAgICAqIGZvciBkZXRlcm1pbmluZyB3aGV0aGVyIHRoZSBvdGhlciBjYWxlbmRhcidzIGNvbXB1dGVUaW1lIG1ldGhvZAorICAgICAqIHdvcmtzIHByb3Blcmx5LiAgRm9yIGV4YW1wbGU6CisgICAgICogPHByZT4KKyAgICAgKiAgICBDYWxlbmRhciB0ZXN0Q2FsZW5kYXIgPSAuLi4KKyAgICAgKiAgICBUZXN0Q2FzZSBjYXNlID0gLi4uCisgICAgICogICAgY2FzZS5hcHBseUZpZWxkcyh0ZXN0Q2FsZW5kYXIpOworICAgICAqICAgIGlmICghY2FzZS5lcXVhbHModGVzdENhbGVuZGFyKSkgeworICAgICAqICAgICAgICAvLyBFcnJvciEKKyAgICAgKiAgICB9CisgICAgICogPC9wcmU+CisgICAgICogCisgICAgICogQHNlZSAjYXBwbHlGaWVsZHMKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iaikgeworICAgICAgICByZXR1cm4gdGltZSA9PSAoKENhbGVuZGFyKW9iaikuZ2V0VGltZSgpLmdldFRpbWUoKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgIE9ORV9TRUNPTkQgPSAxMDAwOworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50ICBPTkVfTUlOVVRFID0gNjAqT05FX1NFQ09ORDsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCAgT05FX0hPVVIgICA9IDYwKk9ORV9NSU5VVEU7CisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBsb25nIE9ORV9EQVkgICAgPSAyNCpPTkVfSE9VUjsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGxvbmcgSlVMSUFOX0VQT0NIID0gLTIxMDg2Njc2MDAwMDAwMEw7ICAgLy8gMS8xLzQ3MTMgQkMgMTI6MDAKKworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgU2ltcGxlVGltZVpvbmUgVVRDID0gbmV3IFNpbXBsZVRpbWVab25lKDAsICJHTVQiKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjZlZDA2MmUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvcGFja2FnZS5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCAzLjIgRmluYWwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworICAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvcGFja2FnZS5odG1sLHYgJAorICAkUmV2aXNpb246IDEuMSAkCisgICREYXRlOiAyMDAwLzAzLzE1IDIxOjM1OjQ5ICQKKy0tPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiPgorVGVzdHMgZm9yIHRoZSBjYWxlbmRhciBjbGFzc2VzLgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25BUElUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uQVBJVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkMzgxNTkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uQVBJVGVzdC5qYXZhCkBAIC0wLDAgKzEsNjA5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICRTb3VyY2U6IAorICogJERhdGU6IAorICogJFJldmlzaW9uOiAKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjIuMSA6IGNvbGxhdGUvQ29sbGF0aW9uQVBJVGVzdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3QvYXBpY29sbC5jcHAKKyAqKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3I7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKKworcHVibGljIGNsYXNzIENvbGxhdGlvbkFQSVRlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIC8vIG5ldyBDb2xsYXRpb25BUElUZXN0KCkucnVuKGFyZ3MpOworICAgICAgICBuZXcgQ29sbGF0aW9uQVBJVGVzdCgpLlRlc3RSdWxlQmFzZWRDb2xsKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRoaXMgdGVzdHMgdGhlIGNvbGxhdGlvbiBrZXkgcmVsYXRlZCBBUElzLgorICAgICAqIC0gY29uc3RydWN0b3IvZGVzdHJ1Y3RvcgorICAgICAqIC0gQ29sbGF0b3IuZ2V0Q29sbGF0aW9uS2V5CisgICAgICogLSA9PSBhbmQgIT0gb3BlcmF0b3JzCisgICAgICogLSBjb21wYXJpc29uIGJldHdlZW4gY29sbGF0aW9uIGtleXMKKyAgICAgKiAtIGNyZWF0aW5nIGNvbGxhdGlvbiBrZXkgd2l0aCBhIGJ5dGUgYXJyYXkgYW5kIHZpY2UgdmVyc2EKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29sbGF0aW9uS2V5KCkgeworICAgICAgICBsb2dsbigidGVzdGluZyBDb2xsYXRpb25LZXkgYmVnaW5zLi4uIik7CisgICAgICAgIENvbGxhdG9yIGNvbCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgY29sLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAKKyAgICAgICAgQ29sbGF0aW9uS2V5IHNvcnRrMSwgc29ydGsyOworICAgICAgICBTdHJpbmcgdGVzdDEgPSAiQWJjZGEiOworICAgICAgICBTdHJpbmcgdGVzdDIgPSAiYWJjZGEiOworICAgIAorICAgICAgICBsb2dsbigiVGVzdGluZyB3ZWlyZCBhcmd1bWVudHMiKTsKKyAgICAgICAgc29ydGsxID0gY29sLmdldENvbGxhdGlvbktleSgiIik7CisgICAgICAgIC8vIGtleSBnZXRzIHJlc2V0IGhlcmUKKyAgICAgICAgYnl0ZVtdIGJ5dGVzID0gc29ydGsxLnRvQnl0ZUFycmF5KCk7CisgICAgICAgIGRvQXNzZXJ0KGJ5dGVzLmxlbmd0aCA9PSAzICYmIGJ5dGVzWzBdID09IDEgJiYgYnl0ZXNbMV0gPT0gMSAmJiBieXRlc1syXSA9PSAwLCAKKyAgICAgICAgICAgICAgICAgIkVtcHR5IHN0cmluZyBzaG91bGQgcmV0dXJuIGFuIGVtcHR5IGNvbGxhdGlvbiBrZXkiKTsKKyAgICAgICAgLy8gYm9ndXMga2V5IHJldHVybmVkIGhlcmUKKyAgICAgICAgc29ydGsxID0gY29sLmdldENvbGxhdGlvbktleShudWxsKTsKKyAgICAgICAgZG9Bc3NlcnQoc29ydGsxID09IG51bGwsICJFcnJvciBjb2RlIHNob3VsZCByZXR1cm4gYm9ndXMgY29sbGF0aW9uIGtleSIpOworCisgICAgICAgIGxvZ2xuKCJVc2UgdGVydGlhcnkgY29tcGFyaXNvbiBsZXZlbCB0ZXN0aW5nIC4uLi4iKTsKKyAgICAgICAgc29ydGsxID0gY29sLmdldENvbGxhdGlvbktleSh0ZXN0MSk7CisgICAgICAgIHNvcnRrMiA9IGNvbC5nZXRDb2xsYXRpb25LZXkodGVzdDIpOworICAgICAgICBkb0Fzc2VydCgoc29ydGsxLmNvbXBhcmVUbyhzb3J0azIpKSA+IDAsICJSZXN1bHQgc2hvdWxkIGJlIFwiQWJjZGFcIiA+Pj4gXCJhYmNkYVwiIik7CisgICAgCisgICAgICAgIENvbGxhdGlvbktleSBzb3J0a05ldzsKKyAgICAgICAgc29ydGtOZXcgPSBzb3J0azE7CisgICAgICAgIGRvQXNzZXJ0KCEoc29ydGsxLmVxdWFscyhzb3J0azIpKSwgIlRoZSBzb3J0IGtleXMgc2hvdWxkIGJlIGRpZmZlcmVudCIpOworICAgICAgICBkb0Fzc2VydCgoc29ydGsxLmhhc2hDb2RlKCkgIT0gc29ydGsyLmhhc2hDb2RlKCkpLCAic29ydCBrZXkgaGFzaENvZGUoKSBmYWlsZWQiKTsKKyAgICAgICAgZG9Bc3NlcnQoKHNvcnRrMS5lcXVhbHMoc29ydGtOZXcpKSwgIlRoZSBzb3J0IGtleXMgYXNzaWdubWVudCBmYWlsZWQiKTsKKyAgICAgICAgZG9Bc3NlcnQoKHNvcnRrMS5oYXNoQ29kZSgpID09IHNvcnRrTmV3Lmhhc2hDb2RlKCkpLCAic29ydCBrZXkgaGFzaENvZGUoKSBmYWlsZWQiKTsKKworICAgICAgICBjb2wuc2V0U3RyZW5ndGgoQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgZG9Bc3NlcnQoY29sLmdldENvbGxhdGlvbktleSh0ZXN0MSkuY29tcGFyZVRvKGNvbC5nZXRDb2xsYXRpb25LZXkodGVzdDIpKSA9PSAwLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJlc3VsdCBzaG91bGQgYmUgXCJBYmNkYVwiID09IFwiYWJjZGFcIiIpOworICAgIH0KKyAgICAKKyAgICB2b2lkIGRvQXNzZXJ0KGJvb2xlYW4gY29uZGl0aW9ucywgU3RyaW5nIG1lc3NhZ2UpIHsKKyAgICAgICAgaWYgKCFjb25kaXRpb25zKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3I6ICIgKyBtZXNzYWdlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGlzIHRlc3RzIHRoZSBjb21wYXJpc29uIGNvbnZlbmllbmNlIG1ldGhvZHMgb2YgYSBjb2xsYXRvciBvYmplY3QuCisgICAgICogLSBncmVhdGVyIHRoYW4KKyAgICAgKiAtIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0bworICAgICAqIC0gZXF1YWwgdG8KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcGFyZSgpIHsKKyAgICAgICAgbG9nbG4oIlRoZSBjb21wYXJlIHRlc3RzIGJlZ2luIDogIik7CisgICAgICAgIENvbGxhdG9yIGNvbCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRGVmYXVsdCBjb2xsYXRpb24gY3JlYXRpb24gZmFpbGVkLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBTdHJpbmcgdGVzdDEgPSAiQWJjZGEiOworICAgICAgICBTdHJpbmcgdGVzdDIgPSAiYWJjZGEiOworICAgICAgICBsb2dsbigiVXNlIHRlcnRpYXJ5IGNvbXBhcmlzb24gbGV2ZWwgdGVzdGluZyAuLi4uIik7CisgICAgICAgIAorICAgICAgICBPYmplY3Qgb2JqMSA9IHRlc3QxOworICAgICAgICBPYmplY3Qgb2JqMiA9IHRlc3QyOworICAgICAgICBkb0Fzc2VydCgoY29sLmNvbXBhcmUob2JqMSwgb2JqMikgPiAwKSwgIlJlc3VsdCBzaG91bGQgYmUgXCJBYmNkYVwiICE9IFwiYWJjZGFcIiIpOworICAgICAgICBkb0Fzc2VydCgoIWNvbC5lcXVhbHModGVzdDEsIHRlc3QyKSApLCAiUmVzdWx0IHNob3VsZCBiZSBcIkFiY2RhXCIgIT0gXCJhYmNkYVwiIik7CisgICAgICAgIGRvQXNzZXJ0KChjb2wuY29tcGFyZSh0ZXN0MSwgdGVzdDIpID4gMCApLCAiUmVzdWx0IHNob3VsZCBiZSBcIkFiY2RhXCIgPj4+IFwiYWJjZGFcIiIpOworICAgIAorICAgICAgICBjb2wuc2V0U3RyZW5ndGgoQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgbG9nbG4oIlVzZSBzZWNvbmRhcnkgY29tcGFyaXNvbiBsZXZlbCB0ZXN0aW5nIC4uLi4iKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGRvQXNzZXJ0KChjb2wuY29tcGFyZShvYmoxLCBvYmoyKSA9PSAwKSwgIlJlc3VsdCBzaG91bGQgYmUgXCJBYmNkYVwiID09IFwiYWJjZGFcIiIpOworICAgICAgICBkb0Fzc2VydCgoY29sLmVxdWFscyh0ZXN0MSwgdGVzdDIpICksICJSZXN1bHQgc2hvdWxkIGJlIFwiQWJjZGFcIiA9PSBcImFiY2RhXCIiKTsKKyAgICAgICAgZG9Bc3NlcnQoKGNvbC5jb21wYXJlKHRlc3QxLCB0ZXN0MikgPT0gMCksICJSZXN1bHQgc2hvdWxkIGJlIFwiQWJjZGFcIiA9PSBcImFiY2RhXCIiKTsKKyAgICAKKyAgICAgICAgY29sLnNldFN0cmVuZ3RoKENvbGxhdG9yLlBSSU1BUlkpOworICAgICAgICBsb2dsbigiVXNlIHByaW1hcnkgY29tcGFyaXNvbiBsZXZlbCB0ZXN0aW5nIC4uLi4iKTsKKyAgICAgICAgCisgICAgICAgIGRvQXNzZXJ0KChjb2wuY29tcGFyZShvYmoxLCBvYmoyKSA9PSAwICksICJSZXN1bHQgc2hvdWxkIGJlIFwiQWJjZGFcIiA9PSBcImFiY2RhXCIiKTsKKyAgICAgICAgZG9Bc3NlcnQoKGNvbC5lcXVhbHModGVzdDEsIHRlc3QyKSApLCAiUmVzdWx0IHNob3VsZCBiZSBcIkFiY2RhXCIgPT0gXCJhYmNkYVwiIik7CisgICAgICAgIGRvQXNzZXJ0KChjb2wuY29tcGFyZSh0ZXN0MSwgdGVzdDIpID09IDAgKSwgIlJlc3VsdCBzaG91bGQgYmUgXCJBYmNkYVwiID09IFwiYWJjZGFcIiIpOworICAgICAgICBsb2dsbigiVGhlIGNvbXBhcmUgdGVzdHMgZW5kLiIpOworICAgICAgICAKKyAgICAgICAgSW50ZWdlciBkaWUgPSBuZXcgSW50ZWdlcigxKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbC5jb21wYXJlKGRpZSwgdGVzdDEpOworICAgICAgICAgICAgZXJybG4oIk5vbi1TdHJpbmdzIHNob3VsZCBmYWlsIGNvbC5jb21wYXJlKE9iamVjdCwgT2JqZWN0KSIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogVGVzdHMgZGVjb21wb3NpdGlvbiBzZXR0aW5nCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RGVjb21wb3NpdGlvbigpIHsKKyAgICAgICAgQ29sbGF0b3IgZW5fVVMgPSBudWxsLCBlbF9HUiA9IG51bGwsIHZpX1ZOID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGVuX1VTID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiZW4iLCAiVVMiKSk7CisgICAgICAgICAgICBlbF9HUiA9IENvbGxhdG9yLmdldEluc3RhbmNlKG5ldyBMb2NhbGUoImVsIiwgIkdSIikpOworICAgICAgICAgICAgdmlfVk4gPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJ2aSIsICJWTiIpKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogY29sbGF0aW9uIGNyZWF0aW9uIGZhaWxlZC5cbiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyB0aGVyZSBpcyBubyByZWFzb24gdG8gaGF2ZSBjYW5vbmljYWwgZGVjb21wb3NpdGlvbiBpbiBlbl9VUyBPUiBkZWZhdWx0IGxvY2FsZSAqLworICAgICAgICBpZiAodmlfVk4uZ2V0RGVjb21wb3NpdGlvbigpICE9IENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKQorICAgICAgICB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHZpX1ZOIGNvbGxhdGlvbiBkaWQgbm90IGhhdmUgY2Fubm9uaWNhbCBkZWNvbXBvc2l0aW9uIGZvciBub3JtYWxpemF0aW9uIVxuIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZWxfR1IuZ2V0RGVjb21wb3NpdGlvbigpICE9IENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKQorICAgICAgICB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGVsX0dSIGNvbGxhdGlvbiBkaWQgbm90IGhhdmUgY2Fubm9uaWNhbCBkZWNvbXBvc2l0aW9uIGZvciBub3JtYWxpemF0aW9uIVxuIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZW5fVVMuZ2V0RGVjb21wb3NpdGlvbigpICE9IENvbGxhdG9yLk5PX0RFQ09NUE9TSVRJT04pCisgICAgICAgIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZW5fVVMgY29sbGF0aW9uIGhhZCBjYW5ub25pY2FsIGRlY29tcG9zaXRpb24gZm9yIG5vcm1hbGl6YXRpb24hXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGlzIHRlc3RzIHRoZSBkdXBsaWNhdGlvbiBvZiBhIGNvbGxhdG9yIG9iamVjdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RHVwbGljYXRlKCkgeworICAgICAgICAvL0Nsb25lIGRvZXMgbm90IGJlIGltcGxlbWVudGVkIAorICAgICAgICBDb2xsYXRvciBjb2wxID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbDEgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbHVyZSBjcmVhdGluZyBlbmdsaXNoIGNvbGxhdG9yIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIENvbGxhdG9yIGNvbDIgPSAoQ29sbGF0b3IpY29sMS5jbG9uZSgpOworICAgICAgICAvLyBkb0Fzc2VydChjb2wxLmVxdWFscyhjb2wyKSwgIkNsb25lZCBvYmplY3QgaXMgbm90IGVxdWFsIHRvIHRoZSBvcmdpbmFsIik7CisgICAgICAgIFN0cmluZyBydWxlc2V0ID0gIjwgYSwgQSA8IGIsIEIgPCBjLCBDIDwgZCwgRCwgZSwgRSI7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbDMgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sMyA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlc2V0KTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsdXJlIGNyZWF0aW5nIFJ1bGVCYXNlZENvbGxhdG9yIHdpdGggcnVsZToiICsgcnVsZXNldCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgZG9Bc3NlcnQoIWNvbDEuZXF1YWxzKGNvbDMpLCAiQ2xvbmVkIG9iamVjdCBpcyBlcXVhbCB0byBzb21lIGR1bW15Iik7CisgICAgICAgIGNvbDMgPSAoUnVsZUJhc2VkQ29sbGF0b3IpY29sMTsKKyAgICAgICAgZG9Bc3NlcnQoY29sMS5lcXVhbHMoY29sMyksICJDb3BpZWQgb2JqZWN0IGlzIG5vdCBlcXVhbCB0byB0aGUgb3JnaW5hbCIpOworICAgICAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGhpcyB0ZXN0cyB0aGUgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIHJlbGF0ZWQgQVBJcy4KKyAgICAgKiAtIGNyZWF0aW9uIG9mIGEgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIG9iamVjdAorICAgICAqIC0gPT0gYW5kICE9IG9wZXJhdG9ycworICAgICAqIC0gaXRlcmF0aW5nIGZvcndhcmQKKyAgICAgKiAtIHJlc2V0aW5nIHRoZSBpdGVyYXRvciBpbmRleAorICAgICAqIC0gcmVxdWVzdGluZyB0aGUgb3JkZXIgcHJvcGVydGllcyhwcmltYXJ5LCBzZWNvbmRhcnkgb3IgdGVydGlhcnkpCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEVsZW1JdGVyKCkgeworICAgICAgICAvLyBsb2dsbigidGVzdGluZyBzb3J0a2V5IGJlZ2lucy4uLiIpOworICAgICAgICBDb2xsYXRvciBjb2wgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkVOR0xJU0gpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkRlZmF1bHQgY29sbGF0aW9uIGNyZWF0aW9uIGZhaWxlZC4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAgICAKKyAgICAgICAgU3RyaW5nIHRlc3RTdHJpbmcxID0gIlhGSUxFIFdoYXQgc3Vic2V0IG9mIGFsbCBwb3NzaWJsZSB0ZXN0IGNhc2VzIGhhcyB0aGUgaGlnaGVzdCBwcm9iYWJpbGl0eSBvZiBkZXRlY3RpbmcgdGhlIG1vc3QgZXJyb3JzPyI7CisgICAgICAgIFN0cmluZyB0ZXN0U3RyaW5nMiA9ICJYZl9pbGUgV2hhdCBzdWJzZXQgb2YgYWxsIHBvc3NpYmxlIHRlc3QgY2FzZXMgaGFzIHRoZSBsb3dlc3QgcHJvYmFiaWxpdHkgb2YgZGV0ZWN0aW5nIHRoZSBsZWFzdCBlcnJvcnM/IjsKKyAgICAgICAgLy8gbG9nbG4oIkNvbnN0cnVjdG9ycyBhbmQgY29tcGFyaXNvbiB0ZXN0aW5nLi4uLiIpOworICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlcmF0b3IxID0gKChSdWxlQmFzZWRDb2xsYXRvciljb2wpLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcih0ZXN0U3RyaW5nMSk7CisgICAgICAgIAorICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciBjaGFyaXRlcj1uZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGVzdFN0cmluZzEpOworICAgICAgICAvLyBjb3B5IGN0b3IKKyAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGl0ZXJhdG9yMiA9ICgoUnVsZUJhc2VkQ29sbGF0b3IpY29sKS5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoY2hhcml0ZXIpOworICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlcmF0b3IzID0gKChSdWxlQmFzZWRDb2xsYXRvciljb2wpLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcih0ZXN0U3RyaW5nMik7CisgICAgCisgICAgICAgIGludCBvZmZzZXQgPSAwOworICAgICAgICBvZmZzZXQgPSBpdGVyYXRvcjEuZ2V0T2Zmc2V0KCk7CisgICAgICAgIGlmIChvZmZzZXQgIT0gMCkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIGluIGdldE9mZnNldCBmb3IgY29sbGF0aW9uIGVsZW1lbnQgaXRlcmF0b3JcbiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGl0ZXJhdG9yMS5zZXRPZmZzZXQoNik7CisgICAgICAgIGl0ZXJhdG9yMS5zZXRPZmZzZXQoMCk7CisgICAgICAgIGludCBvcmRlcjEsIG9yZGVyMiwgb3JkZXIzOworICAgICAgICAKKyAgICAgICAgb3JkZXIxID0gaXRlcmF0b3IxLm5leHQoKTsKKyAgICAgICAgZG9Bc3NlcnQoIShpdGVyYXRvcjEuZXF1YWxzKGl0ZXJhdG9yMikpLCAiVGhlIGZpcnN0IGl0ZXJhdG9yIGFkdmFuY2UgZmFpbGVkIik7CisgICAgICAgIG9yZGVyMiA9IGl0ZXJhdG9yMi5uZXh0KCk7CisgICAgICAgIAorICAgICAgICBkb0Fzc2VydCgoaXRlcmF0b3IxLmVxdWFscyhpdGVyYXRvcjIpKSwgIlRoZSBzZWNvbmQgaXRlcmF0b3IgYWR2YW5jZSBmYWlsZWQiKTsgCisgICAgICAgIGRvQXNzZXJ0KChvcmRlcjEgPT0gb3JkZXIyKSwgIlRoZSBvcmRlciByZXN1bHQgc2hvdWxkIGJlIHRoZSBzYW1lIik7CisgICAgICAgIG9yZGVyMyA9IGl0ZXJhdG9yMy5uZXh0KCk7CisgICAgICAgIAorICAgICAgICBkb0Fzc2VydCgoQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnByaW1hcnlPcmRlcihvcmRlcjEpID09IAorICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnByaW1hcnlPcmRlcihvcmRlcjMpKSwgIlRoZSBwcmltYXJ5IG9yZGVycyBzaG91bGQgYmUgdGhlIHNhbWUiKTsKKyAgICAgICAgZG9Bc3NlcnQoKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5zZWNvbmRhcnlPcmRlcihvcmRlcjEpID09IAorICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnNlY29uZGFyeU9yZGVyKG9yZGVyMykpLCAiVGhlIHNlY29uZGFyeSBvcmRlcnMgc2hvdWxkIGJlIHRoZSBzYW1lIik7CisgICAgICAgIGRvQXNzZXJ0KChDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IudGVydGlhcnlPcmRlcihvcmRlcjEpID09IAorICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnRlcnRpYXJ5T3JkZXIob3JkZXIzKSksICJUaGUgdGVydGlhcnkgb3JkZXJzIHNob3VsZCBiZSB0aGUgc2FtZSIpOworICAgIAorICAgICAgICBvcmRlcjEgPSBpdGVyYXRvcjEubmV4dCgpOyAKKyAgICAgICAgb3JkZXIzID0gaXRlcmF0b3IzLm5leHQoKTsKKyAgICAgICAgCisgICAgICAgIGRvQXNzZXJ0KChDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKG9yZGVyMSkgPT0gCisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKG9yZGVyMykpLCAiVGhlIHByaW1hcnkgb3JkZXJzIHNob3VsZCBiZSBpZGVudGljYWwiKTsKKyAgICAgICAgZG9Bc3NlcnQoKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci50ZXJ0aWFyeU9yZGVyKG9yZGVyMSkgIT0gCisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IudGVydGlhcnlPcmRlcihvcmRlcjMpKSwgIlRoZSB0ZXJ0aWFyeSBvcmRlcnMgc2hvdWxkIGJlIGRpZmZlcmVudCIpOworICAgIAorICAgICAgICBvcmRlcjEgPSBpdGVyYXRvcjEubmV4dCgpOyAKKyAgICAgICAgb3JkZXIzID0gaXRlcmF0b3IzLm5leHQoKTsKKyAgICAgICAgLy8gaW52YWxpZCB0ZXN0IHdyb25nIGluIFVDQQorICAgICAgICAvLyBkb0Fzc2VydCgoQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnNlY29uZGFyeU9yZGVyKG9yZGVyMSkgIT0gCisgICAgICAgIC8vICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5zZWNvbmRhcnlPcmRlcihvcmRlcjMpKSwgIlRoZSBzZWNvbmRhcnkgb3JkZXJzIHNob3VsZCBub3QgYmUgdGhlIHNhbWUiKTsKKyAgICAgICAgICAgIAorICAgICAgICBkb0Fzc2VydCgob3JkZXIxICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpLCAiVW5leHBlY3RlZCBlbmQgb2YgaXRlcmF0b3IgcmVhY2hlZCIpOworICAgIAorICAgICAgICBpdGVyYXRvcjEucmVzZXQoKTsgCisgICAgICAgIGl0ZXJhdG9yMi5yZXNldCgpOyAKKyAgICAgICAgaXRlcmF0b3IzLnJlc2V0KCk7CisgICAgICAgIG9yZGVyMSA9IGl0ZXJhdG9yMS5uZXh0KCk7CisgICAgICAgIAorICAgICAgICBkb0Fzc2VydCghKGl0ZXJhdG9yMS5lcXVhbHMoaXRlcmF0b3IyKSksICJUaGUgZmlyc3QgaXRlcmF0b3IgYWR2YW5jZSBmYWlsZWQiKTsKKyAgICAgICAgCisgICAgICAgIG9yZGVyMiA9IGl0ZXJhdG9yMi5uZXh0KCk7CisgICAgICAgIAorICAgICAgICBkb0Fzc2VydCgoaXRlcmF0b3IxLmVxdWFscyhpdGVyYXRvcjIpKSwgIlRoZSBzZWNvbmQgaXRlcmF0b3IgYWR2YW5jZSBmYWlsZWQiKTsKKyAgICAgICAgZG9Bc3NlcnQoKG9yZGVyMSA9PSBvcmRlcjIpLCAiVGhlIG9yZGVyIHJlc3VsdCBzaG91bGQgYmUgdGhlIHNhbWUiKTsKKyAgICAKKyAgICAgICAgb3JkZXIzID0gaXRlcmF0b3IzLm5leHQoKTsKKyAgICAgICAgCisgICAgICAgIGRvQXNzZXJ0KChDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKG9yZGVyMSkgPT0gCisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKG9yZGVyMykpLCAiVGhlIHByaW1hcnkgb3JkZXJzIHNob3VsZCBiZSB0aGUgc2FtZSIpOworICAgICAgICBkb0Fzc2VydCgoQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnNlY29uZGFyeU9yZGVyKG9yZGVyMSkgPT0gCisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Iuc2Vjb25kYXJ5T3JkZXIob3JkZXIzKSksICJUaGUgc2Vjb25kYXJ5IG9yZGVycyBzaG91bGQgYmUgdGhlIHNhbWUiKTsKKyAgICAgICAgZG9Bc3NlcnQoKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci50ZXJ0aWFyeU9yZGVyKG9yZGVyMSkgPT0gCisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IudGVydGlhcnlPcmRlcihvcmRlcjMpKSwgIlRoZSB0ZXJ0aWFyeSBvcmRlcnMgc2hvdWxkIGJlIHRoZSBzYW1lIik7CisgICAgCisgICAgICAgIG9yZGVyMSA9IGl0ZXJhdG9yMS5uZXh0KCk7IAorICAgICAgICBvcmRlcjIgPSBpdGVyYXRvcjIubmV4dCgpOyAKKyAgICAgICAgb3JkZXIzID0gaXRlcmF0b3IzLm5leHQoKTsKKyAgICAgICAgCisgICAgICAgIGRvQXNzZXJ0KChDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKG9yZGVyMSkgPT0gCisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKG9yZGVyMykpLCAiVGhlIHByaW1hcnkgb3JkZXJzIHNob3VsZCBiZSBpZGVudGljYWwiKTsKKyAgICAgICAgZG9Bc3NlcnQoKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci50ZXJ0aWFyeU9yZGVyKG9yZGVyMSkgIT0gCisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IudGVydGlhcnlPcmRlcihvcmRlcjMpKSwgIlRoZSB0ZXJ0aWFyeSBvcmRlcnMgc2hvdWxkIGJlIGRpZmZlcmVudCIpOworICAgIAorICAgICAgICBvcmRlcjEgPSBpdGVyYXRvcjEubmV4dCgpOyAKKyAgICAgICAgb3JkZXIzID0gaXRlcmF0b3IzLm5leHQoKTsKKyAgICAgICAgCisgICAgICAgIC8vIG9ic29sZXRlIGludmFsaWQgdGVzdCwgcmVtb3ZlZAorICAgICAgICAvLyBkb0Fzc2VydCgoQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnNlY29uZGFyeU9yZGVyKG9yZGVyMSkgIT0gCisgICAgICAgIC8vICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5zZWNvbmRhcnlPcmRlcihvcmRlcjMpKSwgIlRoZSBzZWNvbmRhcnkgb3JkZXJzIHNob3VsZCBub3QgYmUgdGhlIHNhbWUiKTsKKyAgICAgICAgZG9Bc3NlcnQoKG9yZGVyMSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSwgIlVuZXhwZWN0ZWQgZW5kIG9mIGl0ZXJhdG9yIHJlYWNoZWQiKTsKKyAgICAgICAgZG9Bc3NlcnQoIShpdGVyYXRvcjIuZXF1YWxzKGl0ZXJhdG9yMykpLCAiVGhlIGl0ZXJhdG9ycyBzaG91bGQgYmUgZGlmZmVyZW50Iik7CisgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBlbmRzLi4uIik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRoaXMgdGVzdHMgdGhlIGhhc2hDb2RlIG1ldGhvZCBvZiBhIGNvbGxhdG9yIG9iamVjdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SGFzaENvZGUoKSB7CisgICAgICAgIGxvZ2xuKCJoYXNoQ29kZSB0ZXN0cyBiZWdpbi4iKTsKKyAgICAgICAgQ29sbGF0b3IgY29sMSA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2wxID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkVOR0xJU0gpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkRlZmF1bHQgY29sbGF0aW9uIGNyZWF0aW9uIGZhaWxlZC4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICBDb2xsYXRvciBjb2wyID0gbnVsbDsKKyAgICAgICAgTG9jYWxlIGRrID0gbmV3IExvY2FsZSgiZGEiLCAiREsiLCAiIik7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2wyID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoZGspOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkRhbmlzaCBjb2xsYXRpb24gY3JlYXRpb24gZmFpbGVkLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIENvbGxhdG9yIGNvbDMgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sMyA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCIybmQgZGVmYXVsdCBjb2xsYXRpb24gY3JlYXRpb24gZmFpbGVkLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIGxvZ2xuKCJDb2xsYXRvci5oYXNoQ29kZSgpIHRlc3RpbmcgLi4uIik7CisgICAgICAgIAorICAgICAgICBkb0Fzc2VydChjb2wxLmhhc2hDb2RlKCkgIT0gY29sMi5oYXNoQ29kZSgpLCAiSGFzaCB0ZXN0MSByZXN1bHQgaW5jb3JyZWN0IiApOyAgICAgICAgICAgICAgICAgCisgICAgICAgIGRvQXNzZXJ0KCEoY29sMS5oYXNoQ29kZSgpID09IGNvbDIuaGFzaENvZGUoKSksICJIYXNoIHRlc3QyIHJlc3VsdCBpbmNvcnJlY3QiICk7ICAgICAgICAgICAgICAKKyAgICAgICAgZG9Bc3NlcnQoY29sMS5oYXNoQ29kZSgpID09IGNvbDMuaGFzaENvZGUoKSwgIkhhc2ggcmVzdWx0IG5vdCBlcXVhbCIgKTsgICAgICAgICAgICAgICAKKyAgICAKKyAgICAgICAgbG9nbG4oImhhc2hDb2RlIHRlc3RzIGVuZC4iKTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyB0ZXN0MSA9ICJBYmNkYSI7CisgICAgICAgIFN0cmluZyB0ZXN0MiA9ICJhYmNkYSI7CisgICAgICAgIAorICAgICAgICBDb2xsYXRpb25LZXkgc29ydGsxLCBzb3J0azIsIHNvcnRrMzsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIHNvcnRrMSA9IGNvbDMuZ2V0Q29sbGF0aW9uS2V5KHRlc3QxKTsKKyAgICAgICAgc29ydGsyID0gY29sMy5nZXRDb2xsYXRpb25LZXkodGVzdDIpOyAKKyAgICAgICAgc29ydGszID0gY29sMy5nZXRDb2xsYXRpb25LZXkodGVzdDIpOyAKKyAgICAgICAgCisgICAgICAgIGRvQXNzZXJ0KHNvcnRrMS5oYXNoQ29kZSgpICE9IHNvcnRrMi5oYXNoQ29kZSgpLCAiSGFzaCB0ZXN0MSByZXN1bHQgaW5jb3JyZWN0Iik7ICAgICAgICAgICAgICAgCisgICAgICAgIGRvQXNzZXJ0KHNvcnRrMi5oYXNoQ29kZSgpID09IHNvcnRrMy5oYXNoQ29kZSgpLCAiSGFzaCByZXN1bHQgbm90IGVxdWFsIiApOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGlzIHRlc3RzIHRoZSBwcm9wZXJ0aWVzIG9mIGEgY29sbGF0b3Igb2JqZWN0LgorICAgICAqIC0gY29uc3RydWN0b3IKKyAgICAgKiAtIGZhY3RvcnkgbWV0aG9kIGdldEluc3RhbmNlCisgICAgICogLSBjb21wYXJlIGFuZCBnZXRDb2xsYXRpb25LZXkKKyAgICAgKiAtIGdldC9zZXQgZGVjb21wb3NpdGlvbiBtb2RlIGFuZCBjb21wYXJpc29uIGxldmVsCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFByb3BlcnR5KCkgeworICAgICAgICBDb2xsYXRvciBjb2wgPSBudWxsOworICAgICAgICAvKiAKKyAgICAgICAgICBBbGwgdGhlIGNvbGxhdGlvbnMgaGF2ZSB0aGUgc2FtZSB2ZXJzaW9uIGluIGFuIElDVQorICAgICAgICAgIHZlcnNpb24uCisgICAgICAgICAgSUNVIDIuMCBjdXJyVmVyc2lvbkFycmF5ID0gezB4MTgsIDB4QzAsIDB4MDIsIDB4MDJ9OworICAgICAgICAgIElDVSAyLjEgY3VyclZlcnNpb25BcnJheSA9IHsweDE5LCAweDAwLCAweDAzLCAweDAzfTsKKyAgICAgICAgKi8gICAgCisgICAgICAgIGxvZ2xuKCJUaGUgcHJvcGVydHkgdGVzdHMgYmVnaW4gOiAiKTsKKyAgICAgICAgbG9nbG4oIlRlc3QgY3RvcnMgOiAiKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJEZWZhdWx0IENvbGxhdG9yIGNyZWF0aW9uIGZhaWxlZC4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICBkb0Fzc2VydCgoY29sLmNvbXBhcmUoImFiIiwgImFiYyIpIDwgMCksICJhYiA8IGFiYyBjb21wYXJpc29uIGZhaWxlZCIpOworICAgICAgICBkb0Fzc2VydCgoY29sLmNvbXBhcmUoImFiIiwgIkFCIikgPCAwKSwgImFiIDwgQUIgY29tcGFyaXNvbiBmYWlsZWQiKTsKKyAgICAgICAgZG9Bc3NlcnQoKGNvbC5jb21wYXJlKCJibGFja2JpcmQiLCAiYmxhY2stYmlyZCIpID4gMCksICJibGFjay1iaXJkID4gYmxhY2tiaXJkIGNvbXBhcmlzb24gZmFpbGVkIik7CisgICAgICAgIGRvQXNzZXJ0KChjb2wuY29tcGFyZSgiYmxhY2sgYmlyZCIsICJibGFjay1iaXJkIikgPCAwKSwgImJsYWNrIGJpcmQgPiBibGFjay1iaXJkIGNvbXBhcmlzb24gZmFpbGVkIik7CisgICAgICAgIGRvQXNzZXJ0KChjb2wuY29tcGFyZSgiSGVsbG8iLCAiaGVsbG8iKSA+IDApLCAiSGVsbG8gPiBoZWxsbyBjb21wYXJpc29uIGZhaWxlZCIpOworICAgIAorICAgICAgICBsb2dsbigiVGVzdCBjdG9ycyBlbmRzLiIpOworICAgICAgICAKKyAgICAgICAgbG9nbG4oInRlc3RpbmcgQ29sbGF0b3IuZ2V0U3RyZW5ndGgoKSBtZXRob2QgLi4uIik7CisgICAgICAgIGRvQXNzZXJ0KChjb2wuZ2V0U3RyZW5ndGgoKSA9PSBDb2xsYXRvci5URVJUSUFSWSksICJjb2xsYXRpb24gb2JqZWN0IGhhcyB0aGUgd3Jvbmcgc3RyZW5ndGgiKTsKKyAgICAgICAgZG9Bc3NlcnQoKGNvbC5nZXRTdHJlbmd0aCgpICE9IENvbGxhdG9yLlBSSU1BUlkpLCAiY29sbGF0aW9uIG9iamVjdCdzIHN0cmVuZ3RoIGlzIHByaW1hcnkgZGlmZmVyZW5jZSIpOworICAgICAgICAgICAgCisgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIENvbGxhdG9yLnNldFN0cmVuZ3RoKCkgbWV0aG9kIC4uLiIpOworICAgICAgICBjb2wuc2V0U3RyZW5ndGgoQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgZG9Bc3NlcnQoKGNvbC5nZXRTdHJlbmd0aCgpICE9IENvbGxhdG9yLlRFUlRJQVJZKSwgImNvbGxhdGlvbiBvYmplY3QncyBzdHJlbmd0aCBpcyBzZWNvbmRhcnkgZGlmZmVyZW5jZSIpOworICAgICAgICBkb0Fzc2VydCgoY29sLmdldFN0cmVuZ3RoKCkgIT0gQ29sbGF0b3IuUFJJTUFSWSksICJjb2xsYXRpb24gb2JqZWN0J3Mgc3RyZW5ndGggaXMgcHJpbWFyeSBkaWZmZXJlbmNlIik7CisgICAgICAgIGRvQXNzZXJ0KChjb2wuZ2V0U3RyZW5ndGgoKSA9PSBDb2xsYXRvci5TRUNPTkRBUlkpLCAiY29sbGF0aW9uIG9iamVjdCBoYXMgdGhlIHdyb25nIHN0cmVuZ3RoIik7CisgICAgCisgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIENvbGxhdG9yLnNldERlY29tcG9zaXRpb24oKSBtZXRob2QgLi4uIik7CisgICAgICAgIGNvbC5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLk5PX0RFQ09NUE9TSVRJT04pOworICAgICAgICBkb0Fzc2VydCgoY29sLmdldERlY29tcG9zaXRpb24oKSAhPSBDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTiksICJEZWNvbXBvc2l0aW9uIG1vZGUgIT0gQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04iKTsKKyAgICAgICAgZG9Bc3NlcnQoKGNvbC5nZXREZWNvbXBvc2l0aW9uKCkgPT0gQ29sbGF0b3IuTk9fREVDT01QT1NJVElPTiksICJEZWNvbXBvc2l0aW9uIG1vZGUgPSBDb2xsYXRvci5OT19ERUNPTVBPU0lUSU9OIik7CisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgcmNvbCA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJkYSIsICJESyIpKTsKKyAgICAgICAgZG9Bc3NlcnQocmNvbC5nZXRSdWxlcygpLmxlbmd0aCgpICE9IDAsICJkYV9ESyBydWxlcyBkb2VzIG5vdCBoYXZlIGxlbmd0aCAwIik7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkZSRU5DSCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiQ3JlYXRpbmcgRnJlbmNoIGNvbGxhdGlvbiBmYWlsZWQuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgY29sLnNldFN0cmVuZ3RoKENvbGxhdG9yLlBSSU1BUlkpOworICAgICAgICBsb2dsbigidGVzdGluZyBDb2xsYXRvci5nZXRTdHJlbmd0aCgpIG1ldGhvZCBhZ2FpbiAuLi4iKTsKKyAgICAgICAgZG9Bc3NlcnQoKGNvbC5nZXRTdHJlbmd0aCgpICE9IENvbGxhdG9yLlRFUlRJQVJZKSwgImNvbGxhdGlvbiBvYmplY3QgaGFzIHRoZSB3cm9uZyBzdHJlbmd0aCIpOworICAgICAgICBkb0Fzc2VydCgoY29sLmdldFN0cmVuZ3RoKCkgPT0gQ29sbGF0b3IuUFJJTUFSWSksICJjb2xsYXRpb24gb2JqZWN0J3Mgc3RyZW5ndGggaXMgbm90IHByaW1hcnkgZGlmZmVyZW5jZSIpOworICAgICAgICAgICAgCisgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIEZyZW5jaCBDb2xsYXRvci5zZXRTdHJlbmd0aCgpIG1ldGhvZCAuLi4iKTsKKyAgICAgICAgY29sLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgZG9Bc3NlcnQoKGNvbC5nZXRTdHJlbmd0aCgpID09IENvbGxhdG9yLlRFUlRJQVJZKSwgImNvbGxhdGlvbiBvYmplY3QncyBzdHJlbmd0aCBpcyBub3QgdGVydGlhcnkgZGlmZmVyZW5jZSIpOworICAgICAgICBkb0Fzc2VydCgoY29sLmdldFN0cmVuZ3RoKCkgIT0gQ29sbGF0b3IuUFJJTUFSWSksICJjb2xsYXRpb24gb2JqZWN0J3Mgc3RyZW5ndGggaXMgcHJpbWFyeSBkaWZmZXJlbmNlIik7CisgICAgICAgIGRvQXNzZXJ0KChjb2wuZ2V0U3RyZW5ndGgoKSAhPSBDb2xsYXRvci5TRUNPTkRBUlkpLCAiY29sbGF0aW9uIG9iamVjdCdzIHN0cmVuZ3RoIGlzIHNlY29uZGFyeSBkaWZmZXJlbmNlIik7CisgICAgCisgICAgICAgIGxvZ2xuKCJDcmVhdGUganVuayBjb2xsYXRpb246ICIpOworICAgICAgICBMb2NhbGUgYWJjZCA9IG5ldyBMb2NhbGUoImFiIiwgIkNEIiwgIiIpOworICAgICAgICAKKyAgICAgICAgQ29sbGF0b3IganVuayA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBqdW5rID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoYWJjZCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiSnVuayBjb2xsYXRpb24gY3JlYXRpb24gZmFpbGVkLCBzaG91bGQgYXQgbGVhc3QgcmV0dXJuIGRlZmF1bHQuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiQ3JlYXRpbmcgZGVmYXVsdCBjb2xsYXRvciBmYWlsZWQuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgU3RyaW5nIGNvbHJ1bGVzID0gKChSdWxlQmFzZWRDb2xsYXRvciljb2wpLmdldFJ1bGVzKCk7CisgICAgICAgIFN0cmluZyBqdW5rcnVsZXMgPSAoKFJ1bGVCYXNlZENvbGxhdG9yKWp1bmspLmdldFJ1bGVzKCk7CisgICAgICAgIGRvQXNzZXJ0KGNvbHJ1bGVzID09IGp1bmtydWxlcyB8fCBjb2xydWxlcy5lcXVhbHMoanVua3J1bGVzKSwgCisgICAgICAgICAgICAgICAgICAgIlRoZSBkZWZhdWx0IGNvbGxhdGlvbiBzaG91bGQgYmUgcmV0dXJuZWQuIik7CisgICAgICAgIENvbGxhdG9yIGZyQ29sID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZyQ29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkZSQU5DRSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiQ3JlYXRpbmcgRnJlbmNoIGNvbGxhdG9yIGZhaWxlZC4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICBkb0Fzc2VydCghKGZyQ29sLmVxdWFscyhqdW5rKSksICJUaGUganVuayBpcyB0aGUgc2FtZSBhcyB0aGUgRnJlbmNoIGNvbGxhdG9yLiIpOworICAgICAgICBsb2dsbigiQ29sbGF0b3IgcHJvcGVydHkgdGVzdCBlbmRlZC4iKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBUaGlzIHRlc3RzIHRoZSBSdWxlQmFzZWRDb2xsYXRvcgorICAgICogLSBjb25zdHJ1Y3Rvci9kZXN0cnVjdG9yCisgICAgKiAtIGdldFJ1bGVzCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UnVsZUJhc2VkQ29sbCgpIHsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sMSA9IG51bGwsIGNvbDIgPSBudWxsLCBjb2wzID0gbnVsbCwgY29sNCA9IG51bGw7CisgICAgCisgICAgICAgIFN0cmluZyBydWxlc2V0MSA9ICImOSA8IGEsIEEgPCBiLCBCIDwgYywgQzsgY2gsIGNILCBDaCwgQ0ggPCBkLCBELCBlLCBFIjsgCisgICAgICAgIFN0cmluZyBydWxlc2V0MiA9ICImOSA8IGEsIEEgPCBiLCBCIDwgYywgQyA8IGQsIEQsIGUsIEUiOworICAgICAgICBTdHJpbmcgcnVsZXNldDMgPSAiJiI7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sMSA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlc2V0MSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiUnVsZUJhc2VkIENvbGxhdG9yIGNyZWF0aW9uIGZhaWxlZC5cbiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2wyID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGVzZXQyKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJSdWxlQmFzZWQgQ29sbGF0b3IgY3JlYXRpb24gZmFpbGVkLlxuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIC8vIGVtcHR5IHJ1bGVzIGZhaWwKKyAgICAgICAgICAgIGNvbDMgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZXNldDMpOworICAgICAgICAgICAgZXJybG4oIkZhaWx1cmU6IEVtcHR5IHJ1bGVzIGZvciB0aGUgY29sbGF0b3Igc2hvdWxkIGZhaWwiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgTG9jYWxlIGxvY2FsZSA9IG5ldyBMb2NhbGUoImFhIiwgIkFBIik7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2wzID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKGxvY2FsZSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFsbGJhY2sgQ29sbGF0b3IgY3JlYXRpb24gZmFpbGVkLjogJXNcbiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2wzID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRGVmYXVsdCBDb2xsYXRvciBjcmVhdGlvbiBmYWlsZWQuOiAlc1xuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgU3RyaW5nIHJ1bGUxID0gY29sMS5nZXRSdWxlcygpOyAKKyAgICAgICAgU3RyaW5nIHJ1bGUyID0gY29sMi5nZXRSdWxlcygpOworICAgICAgICBTdHJpbmcgcnVsZTMgPSBjb2wzLmdldFJ1bGVzKCk7CisgICAgCisgICAgICAgIGRvQXNzZXJ0KCFydWxlMS5lcXVhbHMocnVsZTIpLCAiRGVmYXVsdCBjb2xsYXRvciBnZXRSdWxlcyBmYWlsZWQiKTsKKyAgICAgICAgZG9Bc3NlcnQoIXJ1bGUyLmVxdWFscyhydWxlMyksICJEZWZhdWx0IGNvbGxhdG9yIGdldFJ1bGVzIGZhaWxlZCIpOworICAgICAgICBkb0Fzc2VydCghcnVsZTEuZXF1YWxzKHJ1bGUzKSwgIkRlZmF1bHQgY29sbGF0b3IgZ2V0UnVsZXMgZmFpbGVkIik7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sNCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlMik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiUnVsZUJhc2VkIENvbGxhdG9yIGNyZWF0aW9uIGZhaWxlZC5cbiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIFN0cmluZyBydWxlNCA9IGNvbDQuZ2V0UnVsZXMoKTsKKyAgICAgICAgZG9Bc3NlcnQocnVsZTIuZXF1YWxzKHJ1bGU0KSwgIkRlZmF1bHQgY29sbGF0b3IgZ2V0UnVsZXMgZmFpbGVkIik7CisgICAgICAgIC8vIHRlc3RzIHRoYXQgbW9kaWZpZXIgISBpcyBhbHdheXMgaWdub3JlZAorICAgICAgICBTdHJpbmcgZXhjbGFtYXRpb25ydWxlcyA9ICIhJmE8YiI7CisgICAgICAgIC8vIGphdmEgZG9lcyBub3QgYWxsb3cgISB0byBiZSB0aGUgc3RhcnQgb2YgdGhlIHJ1bGUKKyAgICAgICAgU3RyaW5nIHRoYWlzdHIgPSAiXHUwZTQwXHUwZTAxXHUwZTJkIjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbDUgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IoZXhjbGFtYXRpb25ydWxlcyk7CisgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBlbmNvbCA9IChSdWxlQmFzZWRDb2xsYXRvcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRU5HTElTSCk7CisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgY29sNWl0ZXIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gY29sNS5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IodGhhaXN0cik7CisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgZW5jb2xpdGVyIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGVuY29sLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGFpc3RyKTsKKyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgLy8gdGVzdGluZyB3aXRoIGVuIHNpbmNlIHRoYWkgaGFzIGl0cyBvd24gdGFpbG9yaW5nCisgICAgICAgICAgICAgICAgaW50IGNlID0gY29sNWl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIGludCBjZTIgPSBlbmNvbGl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIGlmIChjZTIgIT0gY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIiEgbW9kaWZpZXIgdGVzdCBmYWlsZWQiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIlJ1bGVCYXNlZCBDb2xsYXRvciBjcmVhdGlvbiBmYWlsZWQgZm9yICEgbW9kaWZpZXIuXG4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIFRoaXMgdGVzdHMgdGhlIFJ1bGVCYXNlZENvbGxhdG9yCisgICAgKiAtIGdldFJ1bGVzCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UnVsZXMoKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsgCisgICAgICAgICAgICAvLyBsb2dsbigiUEFTUzogUnVsZUJhc2VkIENvbGxhdG9yIGNyZWF0aW9uIHBhc3NlZFxuIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRW5nbGlzaCBDb2xsYXRvciBjcmVhdGlvbiBmYWlsZWQuXG4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICBTdHJpbmcgcnVsZXMgPSBjb2xsLmdldFJ1bGVzKCk7CisgICAgICAgIGlmIChydWxlcyAhPSBudWxsICYmIHJ1bGVzLmxlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJFbmdsaXNoIHRhaWxvcmVkIHJ1bGVzIGZhaWxlZCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RTYWZlQ2xvbmUoKSB7CisgICAgICAgIFN0cmluZyB0ZXN0MSA9ICJhYkNkYSI7CisgICAgICAgIFN0cmluZyB0ZXN0MiA9ICJhYmNkYSI7CisgICAgICAgIAorICAgICAgICAvLyBvbmUgZGVmYXVsdCBjb2xsYXRvciAmIHR3byBjb21wbGV4IG9uZXMgCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIHNvbWVDb2xsYXRvcnNbXSA9IHsKKyAgICAgICAgICAgIChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRU5HTElTSCksCisgICAgICAgICAgICAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLktPUkVBKSwKKyAgICAgICAgICAgIChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuSkFQQU4pCisgICAgICAgIH07CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIHNvbWVDbG9uZWRDb2xsYXRvcnNbXSA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvclszXTsKKyAgICAgICAgCisgICAgICAgIC8vIGNoYW5nZSBvcmlnICYgY2xvbmUgJiBtYWtlIHN1cmUgdGhleSBhcmUgaW5kZXBlbmRlbnQgCisgICAgCisgICAgICAgIGZvciAoaW50IGluZGV4ID0gMDsgaW5kZXggPCBzb21lQ29sbGF0b3JzLmxlbmd0aDsgaW5kZXggKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgc29tZUNsb25lZENvbGxhdG9yc1tpbmRleF0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAoUnVsZUJhc2VkQ29sbGF0b3Ipc29tZUNvbGxhdG9yc1tpbmRleF0uY2xvbmUoKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgY2xvbmluZyBjb2xsYXRvciIpOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgc29tZUNsb25lZENvbGxhdG9yc1tpbmRleF0uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgc29tZUNvbGxhdG9yc1tpbmRleF0uc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgICAgICBzb21lQ2xvbmVkQ29sbGF0b3JzW2luZGV4XS5zZXRDYXNlTGV2ZWwoZmFsc2UpOworICAgICAgICAgICAgc29tZUNvbGxhdG9yc1tpbmRleF0uc2V0Q2FzZUxldmVsKGZhbHNlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZG9Bc3NlcnQoc29tZUNsb25lZENvbGxhdG9yc1tpbmRleF0uY29tcGFyZSh0ZXN0MSwgdGVzdDIpID4gMCwgCisgICAgICAgICAgICAgICAgICAgICAiUmVzdWx0IHNob3VsZCBiZSBcImFiQ2RhXCIgPj4+IFwiYWJjZGFcIiAiKTsKKyAgICAgICAgICAgIGRvQXNzZXJ0KHNvbWVDb2xsYXRvcnNbaW5kZXhdLmNvbXBhcmUodGVzdDEsIHRlc3QyKSA9PSAwLCAKKyAgICAgICAgICAgICAgICAgICAgICJSZXN1bHQgc2hvdWxkIGJlIFwiYWJDZGFcIiA9PSBcImFiY2RhXCIgIik7CisgICAgICAgIH0KKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbkN1cnJlbmN5VGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbkN1cnJlbmN5VGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3NjdlZTcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uQ3VycmVuY3lUZXN0LmphdmEKQEAgLTAsMCArMSwxOTIgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogJFNvdXJjZTogCisgKiAkRGF0ZTogCisgKiAkUmV2aXNpb246IAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2Mi4xIDogQ29sbGF0ZS9Db2xsYXRpb25DdXJyZW5jeVRlc3QKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L2N1cnJjb2xsLmNwcAorICoqLworIAorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvcjsKKyAKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworIAorcHVibGljIGNsYXNzIENvbGxhdGlvbkN1cnJlbmN5VGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IENvbGxhdGlvbkN1cnJlbmN5VGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEN1cnJlbmN5KCkgeworICAgICAgICAvLyBBbGwgdGhlIGN1cnJlbmN5IHN5bWJvbHMsIGluIGNvbGxhdGlvbiBvcmRlcgorICAgICAgICBjaGFyW11bXSBjdXJyZW5jeSA9IHsKKyAgICAgICAgICAgIHsgMHgwMEE0IH0sIC8qMDBBNDsgTDsgWzE0IDM2LCAwMywgMDNdICAgICMgWzA4MkIuMDAyMC4wMDAyXSAjIENVUlJFTkNZIFNJR04qLworICAgICAgICAgICAgeyAweDAwQTIgfSwgLyowMEEyOyBMOyBbMTQgMzgsIDAzLCAwM10gICAgIyBbMDgyQy4wMDIwLjAwMDJdICMgQ0VOVCBTSUdOKi8KKyAgICAgICAgICAgIHsgMHhGRkUwIH0sIC8qRkZFMDsgTDsgWzE0IDM4LCAwMywgMDVdICAgICMgWzA4MkMuMDAyMC4wMDAzXSAjIEZVTExXSURUSCBDRU5UIFNJR04qLworICAgICAgICAgICAgeyAweDAwMjQgfSwgLyowMDI0OyBMOyBbMTQgM0EsIDAzLCAwM10gICAgIyBbMDgyRC4wMDIwLjAwMDJdICMgRE9MTEFSIFNJR04qLworICAgICAgICAgICAgeyAweEZGMDQgfSwgLypGRjA0OyBMOyBbMTQgM0EsIDAzLCAwNV0gICAgIyBbMDgyRC4wMDIwLjAwMDNdICMgRlVMTFdJRFRIIERPTExBUiBTSUdOKi8KKyAgICAgICAgICAgIHsgMHhGRTY5IH0sIC8qRkU2OTsgTDsgWzE0IDNBLCAwMywgMURdICAgICMgWzA4MkQuMDAyMC4wMDBGXSAjIFNNQUxMIERPTExBUiBTSUdOKi8KKyAgICAgICAgICAgIHsgMHgwMEEzIH0sIC8qMDBBMzsgTDsgWzE0IDNDLCAwMywgMDNdICAgICMgWzA4MkUuMDAyMC4wMDAyXSAjIFBPVU5EIFNJR04qLworICAgICAgICAgICAgeyAweEZGRTEgfSwgLypGRkUxOyBMOyBbMTQgM0MsIDAzLCAwNV0gICAgIyBbMDgyRS4wMDIwLjAwMDNdICMgRlVMTFdJRFRIIFBPVU5EIFNJR04qLworICAgICAgICAgICAgeyAweDAwQTUgfSwgLyowMEE1OyBMOyBbMTQgM0UsIDAzLCAwM10gICAgIyBbMDgyRi4wMDIwLjAwMDJdICMgWUVOIFNJR04qLworICAgICAgICAgICAgeyAweEZGRTUgfSwgLypGRkU1OyBMOyBbMTQgM0UsIDAzLCAwNV0gICAgIyBbMDgyRi4wMDIwLjAwMDNdICMgRlVMTFdJRFRIIFlFTiBTSUdOKi8KKyAgICAgICAgICAgIHsgMHgwOUYyIH0sIC8qMDlGMjsgTDsgWzE0IDQwLCAwMywgMDNdICAgICMgWzA4MzAuMDAyMC4wMDAyXSAjIEJFTkdBTEkgUlVQRUUgTUFSSyovCisgICAgICAgICAgICB7IDB4MDlGMyB9LCAvKjA5RjM7IEw7IFsxNCA0MiwgMDMsIDAzXSAgICAjIFswODMxLjAwMjAuMDAwMl0gIyBCRU5HQUxJIFJVUEVFIFNJR04qLworICAgICAgICAgICAgeyAweDBFM0YgfSwgLyowRTNGOyBMOyBbMTQgNDQsIDAzLCAwM10gICAgIyBbMDgzMi4wMDIwLjAwMDJdICMgVEhBSSBDVVJSRU5DWSBTWU1CT0wgQkFIVCovCisgICAgICAgICAgICB7IDB4MTdEQiB9LCAvKjE3REI7IEw7IFsxNCA0NiwgMDMsIDAzXSAgICAjIFswODMzLjAwMjAuMDAwMl0gIyBLSE1FUiBDVVJSRU5DWSBTWU1CT0wgUklFTCovCisgICAgICAgICAgICB7IDB4MjBBMCB9LCAvKjIwQTA7IEw7IFsxNCA0OCwgMDMsIDAzXSAgICAjIFswODM0LjAwMjAuMDAwMl0gIyBFVVJPLUNVUlJFTkNZIFNJR04qLworICAgICAgICAgICAgeyAweDIwQTEgfSwgLyoyMEExOyBMOyBbMTQgNEEsIDAzLCAwM10gICAgIyBbMDgzNS4wMDIwLjAwMDJdICMgQ09MT04gU0lHTiovCisgICAgICAgICAgICB7IDB4MjBBMiB9LCAvKjIwQTI7IEw7IFsxNCA0QywgMDMsIDAzXSAgICAjIFswODM2LjAwMjAuMDAwMl0gIyBDUlVaRUlSTyBTSUdOKi8KKyAgICAgICAgICAgIHsgMHgyMEEzIH0sIC8qMjBBMzsgTDsgWzE0IDRFLCAwMywgMDNdICAgICMgWzA4MzcuMDAyMC4wMDAyXSAjIEZSRU5DSCBGUkFOQyBTSUdOKi8KKyAgICAgICAgICAgIHsgMHgyMEE0IH0sIC8qMjBBNDsgTDsgWzE0IDUwLCAwMywgMDNdICAgICMgWzA4MzguMDAyMC4wMDAyXSAjIExJUkEgU0lHTiovCisgICAgICAgICAgICB7IDB4MjBBNSB9LCAvKjIwQTU7IEw7IFsxNCA1MiwgMDMsIDAzXSAgICAjIFswODM5LjAwMjAuMDAwMl0gIyBNSUxMIFNJR04qLworICAgICAgICAgICAgeyAweDIwQTYgfSwgLyoyMEE2OyBMOyBbMTQgNTQsIDAzLCAwM10gICAgIyBbMDgzQS4wMDIwLjAwMDJdICMgTkFJUkEgU0lHTiovCisgICAgICAgICAgICB7IDB4MjBBNyB9LCAvKjIwQTc7IEw7IFsxNCA1NiwgMDMsIDAzXSAgICAjIFswODNCLjAwMjAuMDAwMl0gIyBQRVNFVEEgU0lHTiovCisgICAgICAgICAgICB7IDB4MjBBOSB9LCAvKjIwQTk7IEw7IFsxNCA1OCwgMDMsIDAzXSAgICAjIFswODNDLjAwMjAuMDAwMl0gIyBXT04gU0lHTiovCisgICAgICAgICAgICB7IDB4RkZFNiB9LCAvKkZGRTY7IEw7IFsxNCA1OCwgMDMsIDA1XSAgICAjIFswODNDLjAwMjAuMDAwM10gIyBGVUxMV0lEVEggV09OIFNJR04qLworICAgICAgICAgICAgeyAweDIwQUEgfSwgLyoyMEFBOyBMOyBbMTQgNUEsIDAzLCAwM10gICAgIyBbMDgzRC4wMDIwLjAwMDJdICMgTkVXIFNIRVFFTCBTSUdOKi8KKyAgICAgICAgICAgIHsgMHgyMEFCIH0sIC8qMjBBQjsgTDsgWzE0IDVDLCAwMywgMDNdICAgICMgWzA4M0UuMDAyMC4wMDAyXSAjIERPTkcgU0lHTiovCisgICAgICAgICAgICB7IDB4MjBBQyB9LCAvKjIwQUM7IEw7IFsxNCA1RSwgMDMsIDAzXSAgICAjIFswODNGLjAwMjAuMDAwMl0gIyBFVVJPIFNJR04qLworICAgICAgICAgICAgeyAweDIwQUQgfSwgLyoyMEFEOyBMOyBbMTQgNjAsIDAzLCAwM10gICAgIyBbMDg0MC4wMDIwLjAwMDJdICMgS0lQIFNJR04qLworICAgICAgICAgICAgeyAweDIwQUUgfSwgLyoyMEFFOyBMOyBbMTQgNjIsIDAzLCAwM10gICAgIyBbMDg0MS4wMDIwLjAwMDJdICMgVFVHUklLIFNJR04qLworICAgICAgICAgICAgeyAweDIwQUYgfSAvKjIwQUY7IEw7IFsxNCA2NCwgMDMsIDAzXSAgICAjIFswODQyLjAwMjAuMDAwMl0gIyBEUkFDSE1BIFNJR04qLworICAgICAgICB9OworICAgIAorICAgICAgICBpbnQgaSwgajsKKyAgICAgICAgaW50IGV4cGVjdGVkUmVzdWx0ID0gMDsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgYyA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIAorICAgICAgICAvLyBDb21wYXJlIGVhY2ggY3VycmVuY3kgc3ltYm9sIGFnYWluc3QgYWxsIHRoZQorICAgICAgICAvLyBjdXJyZW5jeSBzeW1ib2xzLCBpbmNsdWRpbmcgaXRzZWxmCisgICAgICAgIFN0cmluZyBzb3VyY2U7CisgICAgICAgIFN0cmluZyB0YXJnZXQ7CisgICAgICAgIAorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgY3VycmVuY3kubGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBjdXJyZW5jeS5sZW5ndGg7IGogKz0gMSkgeworICAgICAgICAgICAgICAgIHNvdXJjZSA9IG5ldyBTdHJpbmcoY3VycmVuY3lbaV0pOworICAgICAgICAgICAgICAgIHRhcmdldCA9IG5ldyBTdHJpbmcoY3VycmVuY3lbal0pOworCisgICAgICAgICAgICAgICAgaWYgKGkgPCBqKSB7CisgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkUmVzdWx0ID0gLTE7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICggaSA9PSBqKSB7CisgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkUmVzdWx0ID0gMDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBleHBlY3RlZFJlc3VsdCA9IDE7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQgPSBjLmNvbXBhcmUoc291cmNlLCB0YXJnZXQpOworICAgICAgICAgICAgICAgIENvbGxhdGlvbktleSBzb3VyY2VLZXkgPSBudWxsOworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgc291cmNlS2V5ID0gYy5nZXRDb2xsYXRpb25LZXkoc291cmNlKTsKKworICAgICAgICAgICAgICAgIGlmIChzb3VyY2VLZXkgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiQ291bGRuJ3QgZ2V0IGNvbGxhdGlvbktleSBmb3Igc291cmNlIik7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIENvbGxhdGlvbktleSB0YXJnZXRLZXkgPSBudWxsOworICAgICAgICAgICAgICAgIHRhcmdldEtleSA9IGMuZ2V0Q29sbGF0aW9uS2V5KHRhcmdldCk7CisgICAgICAgICAgICAgICAgaWYgKHRhcmdldEtleSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJDb3VsZG4ndCBnZXQgY29sbGF0aW9uS2V5IGZvciBzb3VyY2UiKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaW50IGtleVJlc3VsdCA9IHNvdXJjZUtleS5jb21wYXJlVG8odGFyZ2V0S2V5KTsKKworICAgICAgICAgICAgICAgIHJlcG9ydENSZXN1bHQoIHNvdXJjZSwgdGFyZ2V0LCBzb3VyY2VLZXksIHRhcmdldEtleSwgY29tcGFyZVJlc3VsdCwga2V5UmVzdWx0LCBjb21wYXJlUmVzdWx0LCBleHBlY3RlZFJlc3VsdCApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCByZXBvcnRDUmVzdWx0KCBTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0LCBDb2xsYXRpb25LZXkgc291cmNlS2V5LCBDb2xsYXRpb25LZXkgdGFyZ2V0S2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCwgaW50IGtleVJlc3VsdCwgaW50IGluY1Jlc3VsdCwgaW50IGV4cGVjdGVkUmVzdWx0ICkgeworICAgICAgICBpZiAoZXhwZWN0ZWRSZXN1bHQgPCAtMSB8fCBleHBlY3RlZFJlc3VsdCA+IDEpIHsKKyAgICAgICAgICAgIGVycmxuKCIqKioqKiBpbnZhbGlkIGNhbGwgdG8gcmVwb3J0Q1Jlc3VsdCAqKioqIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBib29sZWFuIG9rMSA9IChjb21wYXJlUmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgYm9vbGVhbiBvazIgPSAoa2V5UmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgYm9vbGVhbiBvazMgPSAoaW5jUmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKworICAgICAgICBpZiAob2sxICYmIG9rMiAmJiBvazMgJiYgIWlzVmVyYm9zZSgpKSB7CisgICAgICAgICAgICByZXR1cm47ICAgIAorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIG1zZzEgPSBvazE/ICJPazogY29tcGFyZShcIiIgOiAiRkFJTDogY29tcGFyZShcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgU3RyaW5nIG1zZzMgPSAiXCIpIHJldHVybmVkICI7CisgICAgICAgICAgICBTdHJpbmcgbXNnNCA9ICI7IGV4cGVjdGVkICI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBzRXhwZWN0ID0gbmV3IFN0cmluZygiIik7CisgICAgICAgICAgICBTdHJpbmcgc1Jlc3VsdCA9IG5ldyBTdHJpbmcoIiIpOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoY29tcGFyZVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBzRXhwZWN0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChleHBlY3RlZFJlc3VsdCwgc0V4cGVjdCk7CisgICAgICAgICAgICBpZiAob2sxKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1zZzEgPSBvazIgPyAiT2s6IGtleShcIiIgOiAiRkFJTDoga2V5KFwiIjsKKyAgICAgICAgICAgIG1zZzIgPSAiXCIpLmNvbXBhcmVUbyhrZXkoXCIiOworICAgICAgICAgICAgbXNnMyA9ICJcIikpIHJldHVybmVkICI7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChrZXlSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgaWYgKG9rMikgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgICAgIG1zZzEgPSAiICAiOworICAgICAgICAgICAgICAgIG1zZzIgPSAiIHZzLiAiOworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBwcmV0dGlmeShzb3VyY2VLZXkpICsgbXNnMiArIHByZXR0aWZ5KHRhcmdldEtleSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBtc2cxID0gb2szID8gIk9rOiBpbmNDb21wYXJlKFwiIiA6ICJGQUlMOiBpbmNDb21wYXJlKFwiIjsKKyAgICAgICAgICAgIG1zZzIgPSAiXCIsIFwiIjsKKyAgICAgICAgICAgIG1zZzMgPSAiXCIpIHJldHVybmVkICI7CisKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGluY1Jlc3VsdCwgc1Jlc3VsdCk7CisKKyAgICAgICAgICAgIGlmIChvazMpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgYXBwZW5kQ29tcGFyZVJlc3VsdChpbnQgcmVzdWx0LCBTdHJpbmcgdGFyZ2V0KXsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSAtMSkgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJMRVNTIjsKKyAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gMCkgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJFUVVBTCI7CisgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IDEpIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiR1JFQVRFUiI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgaHVoID0gIj8iOworICAgICAgICAgICAgdGFyZ2V0ICs9IGh1aCArIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KKyAgICAKKyAgICBTdHJpbmcgcHJldHRpZnkoQ29sbGF0aW9uS2V5IHNvdXJjZUtleSkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgYnl0ZVtdIGJ5dGVzPSBzb3VyY2VLZXkudG9CeXRlQXJyYXkoKTsKKyAgICAgICAgU3RyaW5nIHRhcmdldCA9ICJbIjsKKyAgICAKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGJ5dGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gSW50ZWdlci50b0hleFN0cmluZyhieXRlc1tpXSk7CisgICAgICAgICAgICB0YXJnZXQgKz0gIiAiOworICAgICAgICB9CisgICAgICAgIHRhcmdldCArPSAiXSI7CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25EYW5pc2hUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uRGFuaXNoVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwOWY0NjcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uRGFuaXNoVGVzdC5qYXZhCkBAIC0wLDAgKzEsMzE0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICRTb3VyY2U6IAorICogJERhdGU6IAorICogJFJldmlzaW9uOiAKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjIuMSA6IENvbGxhdGUvQ29sbGF0aW9uRGFuaXNoVGVzdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3QvZGFjb2xsLmNwcAorICoqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yOworIAoraW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisgCitwdWJsaWMgY2xhc3MgQ29sbGF0aW9uRGFuaXNoVGVzdCBleHRlbmRzIFRlc3RGbXdreworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgQ29sbGF0aW9uRGFuaXNoVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdFNvdXJjZUNhc2VzID0geworICAgICAgICB7MHgwMDRDIC8qICdMJyAqLywgMHgwMDc1IC8qICd1JyAqLywgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNkMgLyogJ2wnICovLCAweDAwNzUgLyogJ3UnICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNkIgLyogJ2snICovfSwKKyAgICAgICAgezB4MDA0QyAvKiAnTCcgKi8sIDB4MDBGQywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDY1IC8qICdlJyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDZCIC8qICdrJyAqL30sCisgICAgICAgIHsweDAwNEMgLyogJ0wnICovLCAweDAwRTQsIDB4MDA3NiAvKiAndicgKi8sIDB4MDA2OSAvKiAnaScgKi99LAorICAgICAgICB7MHgwMDRDIC8qICdMJyAqLywgMHgwMEY2LCAweDAwNzcgLyogJ3cnICovLCAweDAwNzcgLyogJ3cnICovfSwKKyAgICAgICAgezB4MDA0QyAvKiAnTCcgKi8sIDB4MDA3NiAvKiAndicgKi8sIDB4MDA2OSAvKiAnaScgKi99LAorICAgICAgICB7MHgwMDRDIC8qICdMJyAqLywgMHgwMEU0LCAweDAwNzYgLyogJ3YnICovLCAweDAwNjkgLyogJ2knICovfSwKKyAgICAgICAgezB4MDA0QyAvKiAnTCcgKi8sIDB4MDBGQywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDY1IC8qICdlJyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDZCIC8qICdrJyAqL30KKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdFRhcmdldENhc2VzID0geworICAgICAgICB7MHgwMDZDIC8qICdsJyAqLywgMHgwMDc1IC8qICd1JyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDZCIC8qICdrJyAqL30sCisgICAgICAgIHsweDAwNEMgLyogJ0wnICovLCAweDAwRkMsIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2NSAvKiAnZScgKi8sIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2QiAvKiAnaycgKi99LAorICAgICAgICB7MHgwMDZDIC8qICdsJyAqLywgMHgwMDc5IC8qICd5JyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDY1IC8qICdlJyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDZCIC8qICdrJyAqL30sCisgICAgICAgIHsweDAwNEMgLyogJ0wnICovLCAweDAwRjYsIDB4MDA3NyAvKiAndycgKi8sIDB4MDA2NSAvKiAnZScgKi99LAorICAgICAgICB7MHgwMDZEIC8qICdtJyAqLywgMHgwMDYxIC8qICdhJyAqLywgMHgwMDczIC8qICdzJyAqLywgMHgwMDc0IC8qICd0JyAqL30sCisgICAgICAgIHsweDAwNEMgLyogJ0wnICovLCAweDAwNzcgLyogJ3cnICovLCAweDAwNjkgLyogJ2knICovfSwKKyAgICAgICAgezB4MDA0QyAvKiAnTCcgKi8sIDB4MDBGNiwgMHgwMDc3IC8qICd3JyAqLywgMHgwMDY5IC8qICdpJyAqL30sCisgICAgICAgIHsweDAwNEMgLyogJ0wnICovLCAweDAwNzkgLyogJ3knICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjUgLyogJ2UnICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNkIgLyogJ2snICovfQorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSByZXN1bHRzID0geworICAgICAgICAtMSwKKyAgICAgICAgLTEsCisgICAgICAgIDEsCisgICAgICAgIC0xLAorICAgICAgICAtMSwKKyAgICAgICAgLyogdGVzdCBwcmltYXJ5ID4gNSovCisgICAgICAgIDAsCisgICAgICAgIC0xLAorICAgICAgICAwCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RCdWdzID0geworICAgICAgICB7MHgwMDQxIC8qICdBJyAqLywgMHgwMDJGIC8qICcvJyAqLywgMHgwMDUzIC8qICdTJyAqL30sCisgICAgICAgIHsweDAwNDEgLyogJ0EnICovLCAweDAwNEUgLyogJ04nICovLCAweDAwNDQgLyogJ0QnICovLCAweDAwNTIgLyogJ1InICovLCAweDAwNDUgLyogJ0UnICovfSwKKyAgICAgICAgezB4MDA0MSAvKiAnQScgKi8sIDB4MDA0RSAvKiAnTicgKi8sIDB4MDA0NCAvKiAnRCcgKi8sIDB4MDA1MiAvKiAnUicgKi8sIDB4MDBDOX0sCisgICAgICAgIHsweDAwNDEgLyogJ0EnICovLCAweDAwNEUgLyogJ04nICovLCAweDAwNDQgLyogJ0QnICovLCAweDAwNTIgLyogJ1InICovLCAweDAwNDUgLyogJ0UnICovLCAweDAwNDEgLyogJ0EnICovLCAweDAwNTMgLyogJ1MnICovfSwKKyAgICAgICAgezB4MDA0MSAvKiAnQScgKi8sIDB4MDA1MyAvKiAnUycgKi99LAorICAgICAgICB7MHgwMDQzIC8qICdDJyAqLywgMHgwMDQxIC8qICdBJyAqL30sCisgICAgICAgIHsweDAwQzcsIDB4MDA0MSAvKiAnQScgKi99LAorICAgICAgICB7MHgwMDQzIC8qICdDJyAqLywgMHgwMDQyIC8qICdCJyAqL30sCisgICAgICAgIHsweDAwQzcsIDB4MDA0MyAvKiAnQycgKi8sMHgwMDAwIC8qICdcMCcgKi99LAorICAgICAgICB7MHgwMDQ0IC8qICdEJyAqLywgMHgwMDJFIC8qICcuJyAqLywgMHgwMDUzIC8qICdTJyAqLywgMHgwMDJFIC8qICcuJyAqLywgMHgwMDQyIC8qICdCJyAqLywgMHgwMDJFIC8qICcuJyAqL30sCisgICAgICAgIHsweDAwNDQgLyogJ0QnICovLCAweDAwNDEgLyogJ0EnICovfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgezB4MDA0NCAvKiAnRCcgKi8sIDB4MDA0MiAvKiAnQicgKi99LAorICAgICAgICB7MHgwMDQ0IC8qICdEJyAqLywgMHgwMDUzIC8qICdTJyAqLywgMHgwMDQyIC8qICdCJyAqL30sCisgICAgICAgIHsweDAwNDQgLyogJ0QnICovLCAweDAwNTMgLyogJ1MnICovLCAweDAwNDMgLyogJ0MnICovfSwKKyAgICAgICAgezB4MDBEMCwgLyoweDAxMTAsKi8gMHgwMDQxIC8qICdBJyAqL30sCisgICAgICAgIHsweDAwRDAsIC8qMHgwMTEwLCovIDB4MDA0MyAvKiAnQycgKi99LAorICAgICAgICB7MHgwMDQ1IC8qICdFJyAqLywgMHgwMDRCIC8qICdLJyAqLywgMHgwMDUzIC8qICdTJyAqLywgMHgwMDU0IC8qICdUJyAqLywgMHgwMDUyIC8qICdSJyAqLywgMHgwMDQxIC8qICdBJyAqLywgMHgwMDVGIC8qICdfJyAqLywgMHgwMDQxIC8qICdBJyAqLywgMHgwMDUyIC8qICdSJyAqLywgMHgwMDQyIC8qICdCJyAqLywgMHgwMDQ1IC8qICdFJyAqLywgMHgwMDRBIC8qICdKJyAqLywgMHgwMDQ0IC8qICdEJyAqLywgMHgwMDQ1IC8qICdFJyAqL30sCisgICAgICAgIHsweDAwNDUgLyogJ0UnICovLCAweDAwNEIgLyogJ0snICovLCAweDAwNTMgLyogJ1MnICovLCAweDAwNTQgLyogJ1QnICovLCAweDAwNTIgLyogJ1InICovLCAweDAwNDEgLyogJ0EnICovLCAweDAwNDIgLyogJ0InICovLCAweDAwNTUgLyogJ1UnICovLCAweDAwNDQgLyogJ0QnICovLCAwfSwKKyAgICAgICAgezB4MDA0OCAvKiAnSCcgKi8sIDB4MDBEOCwgMHgwMDUzIC8qICdTJyAqLywgMHgwMDU0IC8qICdUJyAqL30sICAKKyAgICAgICAgezB4MDA0OCAvKiAnSCcgKi8sIDB4MDA0MSAvKiAnQScgKi8sIDB4MDA0MSAvKiAnQScgKi8sIDB4MDA0NyAvKiAnRycgKi99LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIHsweDAwNDggLyogJ0gnICovLCAweDAwQzUsIDB4MDA0RSAvKiAnTicgKi8sIDB4MDA0NCAvKiAnRCcgKi8sIDB4MDA0MiAvKiAnQicgKi8sIDB4MDA0RiAvKiAnTycgKi8sIDB4MDA0NyAvKiAnRycgKi99LAorICAgICAgICB7MHgwMDQ4IC8qICdIJyAqLywgMHgwMDQxIC8qICdBJyAqLywgMHgwMDQxIC8qICdBJyAqLywgMHgwMDRFIC8qICdOJyAqLywgMHgwMDQ0IC8qICdEJyAqLywgMHgwMDU2IC8qICdWJyAqLywgMHgwMEM2LCAweDAwNTIgLyogJ1InICovLCAweDAwNEIgLyogJ0snICovLCAweDAwNTMgLyogJ1MnICovLCAweDAwNDIgLyogJ0InICovLCAweDAwNDEgLyogJ0EnICovLCAweDAwNEUgLyogJ04nICovLCAweDAwNEIgLyogJ0snICovLCAweDAwNDUgLyogJ0UnICovLCAweDAwNEUgLyogJ04nICovfSwKKyAgICAgICAgezB4MDA2QiAvKiAnaycgKi8sIDB4MDA2MSAvKiAnYScgKi8sIDB4MDA3MiAvKiAncicgKi8sIDB4MDA2QyAvKiAnbCcgKi99LAorICAgICAgICB7MHgwMDRCIC8qICdLJyAqLywgMHgwMDYxIC8qICdhJyAqLywgMHgwMDcyIC8qICdyJyAqLywgMHgwMDZDIC8qICdsJyAqL30sCisgICAgICAgIHsweDAwNEUgLyogJ04nICovLCAweDAwNDkgLyogJ0knICovLCAweDAwNDUgLyogJ0UnICovLCAweDAwNEMgLyogJ0wnICovLCAweDAwNTMgLyogJ1MnICovLCAweDAwMjAgLyogJyAnICovLCAweDAwNEEgLyogJ0onICovLCAweDAwRDgsIDB4MDA1MiAvKiAnUicgKi8sIDB4MDA0NyAvKiAnRycgKi8sIDB4MDA0NSAvKiAnRScgKi8sIDB4MDA0RSAvKiAnTicgKi99LAorICAgICAgICB7MHgwMDRFIC8qICdOJyAqLywgMHgwMDQ5IC8qICdJJyAqLywgMHgwMDQ1IC8qICdFJyAqLywgMHgwMDRDIC8qICdMJyAqLywgMHgwMDUzIC8qICdTJyAqLywgMHgwMDJEIC8qICctJyAqLywgMHgwMDRBIC8qICdKJyAqLywgMHgwMEQ4LCAweDAwNTIgLyogJ1InICovLCAweDAwNDcgLyogJ0cnICovLCAweDAwNDUgLyogJ0UnICovLCAweDAwNEUgLyogJ04nICovfSwKKyAgICAgICAgezB4MDA0RSAvKiAnTicgKi8sIDB4MDA0OSAvKiAnSScgKi8sIDB4MDA0NSAvKiAnRScgKi8sIDB4MDA0QyAvKiAnTCcgKi8sIDB4MDA1MyAvKiAnUycgKi8sIDB4MDA0NSAvKiAnRScgKi8sIDB4MDA0RSAvKiAnTicgKi99LAorICAgICAgICB7MHgwMDUyIC8qICdSJyAqLywgMHgwMEM5LCAweDAwNDUgLyogJ0UnICovLCAweDAwMkMgLyogJywnICovLCAweDAwMjAgLyogJyAnICovLCAweDAwNDEgLyogJ0EnICovfSwKKyAgICAgICAgezB4MDA1MiAvKiAnUicgKi8sIDB4MDA0NSAvKiAnRScgKi8sIDB4MDA0NSAvKiAnRScgKi8sIDB4MDAyQyAvKiAnLCcgKi8sIDB4MDAyMCAvKiAnICcgKi8sIDB4MDA0MiAvKiAnQicgKi99LAorICAgICAgICB7MHgwMDUyIC8qICdSJyAqLywgMHgwMEM5LCAweDAwNDUgLyogJ0UnICovLCAweDAwMkMgLyogJywnICovLCAweDAwMjAgLyogJyAnICovLCAweDAwNEMgLyogJ0wnICovfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIHsweDAwNTIgLyogJ1InICovLCAweDAwNDUgLyogJ0UnICovLCAweDAwNDUgLyogJ0UnICovLCAweDAwMkMgLyogJywnICovLCAweDAwMjAgLyogJyAnICovLCAweDAwNTYgLyogJ1YnICovfSwKKyAgICAgICAgezB4MDA1MyAvKiAnUycgKi8sIDB4MDA0MyAvKiAnQycgKi8sIDB4MDA0OCAvKiAnSCcgKi8sIDB4MDA1OSAvKiAnWScgKi8sIDB4MDA1NCAvKiAnVCcgKi8sIDB4MDA1NCAvKiAnVCcgKi8sIDB4MDAyQyAvKiAnLCcgKi8sIDB4MDAyMCAvKiAnICcgKi8sIDB4MDA0MiAvKiAnQicgKi99LAorICAgICAgICB7MHgwMDUzIC8qICdTJyAqLywgMHgwMDQzIC8qICdDJyAqLywgMHgwMDQ4IC8qICdIJyAqLywgMHgwMDU5IC8qICdZJyAqLywgMHgwMDU0IC8qICdUJyAqLywgMHgwMDU0IC8qICdUJyAqLywgMHgwMDJDIC8qICcsJyAqLywgMHgwMDIwIC8qICcgJyAqLywgMHgwMDQ4IC8qICdIJyAqL30sCisgICAgICAgIHsweDAwNTMgLyogJ1MnICovLCAweDAwNDMgLyogJ0MnICovLCAweDAwNDggLyogJ0gnICovLCAweDAwREMsIDB4MDA1NCAvKiAnVCcgKi8sIDB4MDA1NCAvKiAnVCcgKi8sIDB4MDAyQyAvKiAnLCcgKi8sIDB4MDAyMCAvKiAnICcgKi8sIDB4MDA0OCAvKiAnSCcgKi99LAorICAgICAgICB7MHgwMDUzIC8qICdTJyAqLywgMHgwMDQzIC8qICdDJyAqLywgMHgwMDQ4IC8qICdIJyAqLywgMHgwMDU5IC8qICdZJyAqLywgMHgwMDU0IC8qICdUJyAqLywgMHgwMDU0IC8qICdUJyAqLywgMHgwMDJDIC8qICcsJyAqLywgMHgwMDIwIC8qICcgJyAqLywgMHgwMDRDIC8qICdMJyAqL30sCisgICAgICAgIHsweDAwNTMgLyogJ1MnICovLCAweDAwNDMgLyogJ0MnICovLCAweDAwNDggLyogJ0gnICovLCAweDAwREMsIDB4MDA1NCAvKiAnVCcgKi8sIDB4MDA1NCAvKiAnVCcgKi8sIDB4MDAyQyAvKiAnLCcgKi8sIDB4MDAyMCAvKiAnICcgKi8sIDB4MDA0RCAvKiAnTScgKi99LAorICAgICAgICB7MHgwMDUzIC8qICdTJyAqLywgMHgwMDUzIC8qICdTJyAqL30sCisgICAgICAgIHsweDAwREZ9LAorICAgICAgICB7MHgwMDUzIC8qICdTJyAqLywgMHgwMDUzIC8qICdTJyAqLywgMHgwMDQxIC8qICdBJyAqL30sCisgICAgICAgIHsweDAwNTMgLyogJ1MnICovLCAweDAwNTQgLyogJ1QnICovLCAweDAwNEYgLyogJ08nICovLCAweDAwNTIgLyogJ1InICovLCAweDAwNDUgLyogJ0UnICovLCAweDAwMjAgLyogJyAnICovLCAweDAwNTYgLyogJ1YnICovLCAweDAwNDkgLyogJ0knICovLCAweDAwNEMgLyogJ0wnICovLCAweDAwNDQgLyogJ0QnICovLCAweDAwNEQgLyogJ00nICovLCAweDAwNEYgLyogJ08nICovLCAweDAwNTMgLyogJ1MnICovLCAweDAwNDUgLyogJ0UnICovfSwgICAgICAgICAgICAgICAKKyAgICAgICAgezB4MDA1MyAvKiAnUycgKi8sIDB4MDA1NCAvKiAnVCcgKi8sIDB4MDA0RiAvKiAnTycgKi8sIDB4MDA1MiAvKiAnUicgKi8sIDB4MDA0NSAvKiAnRScgKi8sIDB4MDA0QiAvKiAnSycgKi8sIDB4MDBDNiwgMHgwMDUyIC8qICdSJyAqLywgMH0sCisgICAgICAgIHsweDAwNTMgLyogJ1MnICovLCAweDAwNTQgLyogJ1QnICovLCAweDAwNEYgLyogJ08nICovLCAweDAwNTIgLyogJ1InICovLCAweDAwNEQgLyogJ00nICovLCAweDAwMjAgLyogJyAnICovLCAweDAwNTAgLyogJ1AnICovLCAweDAwNDUgLyogJ0UnICovLCAweDAwNTQgLyogJ1QnICovLCAweDAwNDUgLyogJ0UnICovLCAweDAwNTIgLyogJ1InICovLCAweDAwNTMgLyogJ1MnICovLCAweDAwNDUgLyogJ0UnICovLCAweDAwNEUgLyogJ04nICovfSwKKyAgICAgICAgezB4MDA1MyAvKiAnUycgKi8sIDB4MDA1NCAvKiAnVCcgKi8sIDB4MDA0RiAvKiAnTycgKi8sIDB4MDA1MiAvKiAnUicgKi8sIDB4MDA0RCAvKiAnTScgKi8sIDB4MDA0QyAvKiAnTCcgKi8sIDB4MDA1OSAvKiAnWScgKi99LAorICAgICAgICB7MHgwMDU0IC8qICdUJyAqLywgMHgwMDQ4IC8qICdIJyAqLywgMHgwMDRGIC8qICdPJyAqLywgMHgwMDUyIC8qICdSJyAqLywgMHgwMDU2IC8qICdWJyAqLywgMHgwMDQxIC8qICdBJyAqLywgMHgwMDRDIC8qICdMJyAqLywgMHgwMDQ0IC8qICdEJyAqL30sCisgICAgICAgIHsweDAwNTQgLyogJ1QnICovLCAweDAwNDggLyogJ0gnICovLCAweDAwNEYgLyogJ08nICovLCAweDAwNTIgLyogJ1InICovLCAweDAwNTYgLyogJ1YnICovLCAweDAwNDEgLyogJ0EnICovLCAweDAwNTIgLyogJ1InICovLCAweDAwNDQgLyogJ0QnICovLCAweDAwNTUgLyogJ1UnICovLCAweDAwNTIgLyogJ1InICovfSwKKyAgICAgICAgezB4MDA1NCAvKiAnVCcgKi8sIDB4MDA0OCAvKiAnSCcgKi8sIDB4MDA1OSAvKiAnWScgKi8sIDB4MDA0NyAvKiAnRycgKi8sIDB4MDA0NSAvKiAnRScgKi8sIDB4MDA1MyAvKiAnUycgKi8sIDB4MDA0NSAvKiAnRScgKi8sIDB4MDA0RSAvKiAnTicgKi99LAorICAgICAgICB7MHgwMEZFLCAweDAwNEYgLyogJ08nICovLCAweDAwNTIgLyogJ1InICovLCAweDAwNTYgLyogJ1YnICovLCAweDAwNDEgLyogJ0EnICovLCAweDAwNTIgLyogJ1InICovLCAweDAwRDAsIC8qMHgwMTEwLCovIDB4MDA1NSAvKiAnVScgKi8sIDB4MDA1MiAvKiAnUicgKi99LAorICAgICAgICB7MHgwMDU2IC8qICdWJyAqLywgMHgwMDQ1IC8qICdFJyAqLywgMHgwMDUzIC8qICdTJyAqLywgMHgwMDU0IC8qICdUJyAqLywgMHgwMDQ1IC8qICdFJyAqLywgMHgwMDUyIC8qICdSJyAqLywgMHgwMDQ3IC8qICdHJyAqLywgMHgwMEM1LCAweDAwNTIgLyogJ1InICovLCAweDAwNDQgLyogJ0QnICovLCAweDAwMkMgLyogJywnICovLCAweDAwMjAgLyogJyAnICovLCAweDAwNDEgLyogJ0EnICovfSwKKyAgICAgICAgezB4MDA1NiAvKiAnVicgKi8sIDB4MDA0NSAvKiAnRScgKi8sIDB4MDA1MyAvKiAnUycgKi8sIDB4MDA1NCAvKiAnVCcgKi8sIDB4MDA0NSAvKiAnRScgKi8sIDB4MDA1MiAvKiAnUicgKi8sIDB4MDA0NyAvKiAnRycgKi8sIDB4MDA0MSAvKiAnQScgKi8sIDB4MDA0MSAvKiAnQScgKi8sIDB4MDA1MiAvKiAnUicgKi8sIDB4MDA0NCAvKiAnRCcgKi8sIDB4MDAyQyAvKiAnLCcgKi8sIDB4MDAyMCAvKiAnICcgKi8sIDB4MDA0MSAvKiAnQScgKi99LAorICAgICAgICB7MHgwMDU2IC8qICdWJyAqLywgMHgwMDQ1IC8qICdFJyAqLywgMHgwMDUzIC8qICdTJyAqLywgMHgwMDU0IC8qICdUJyAqLywgMHgwMDQ1IC8qICdFJyAqLywgMHgwMDUyIC8qICdSJyAqLywgMHgwMDQ3IC8qICdHJyAqLywgMHgwMEM1LCAweDAwNTIgLyogJ1InICovLCAweDAwNDQgLyogJ0QnICovLCAweDAwMkMgLyogJywnICovLCAweDAwMjAgLyogJyAnICovLCAweDAwNDIgLyogJ0InICovfSwgICAgICAgICAgICAgICAgIAorICAgICAgICB7MHgwMEM2LCAweDAwNDIgLyogJ0InICovLCAweDAwNEMgLyogJ0wnICovLCAweDAwNDUgLyogJ0UnICovfSwKKyAgICAgICAgezB4MDBDNCwgMHgwMDQyIC8qICdCJyAqLywgMHgwMDRDIC8qICdMJyAqLywgMHgwMDQ1IC8qICdFJyAqL30sCisgICAgICAgIHsweDAwRDgsIDB4MDA0MiAvKiAnQicgKi8sIDB4MDA0NSAvKiAnRScgKi8sIDB4MDA1MiAvKiAnUicgKi8sIDB4MDA0NyAvKiAnRycgKi99LAorICAgICAgICB7MHgwMEQ2LCAweDAwNDIgLyogJ0InICovLCAweDAwNDUgLyogJ0UnICovLCAweDAwNTIgLyogJ1InICovLCAweDAwNDcgLyogJ0cnICovfQorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0TlRMaXN0ID0geworICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDZFIC8qICduJyAqLywgMHgwMDY0IC8qICdkJyAqLywgMHgwMDY1IC8qICdlJyAqLywgMHgwMDcyIC8qICdyJyAqLywgMHgwMDY1IC8qICdlJyAqL30sCisgICAgICAgIHsweDAwNjMgLyogJ2MnICovLCAweDAwNjggLyogJ2gnICovLCAweDAwNjEgLyogJ2EnICovLCAweDAwNzEgLyogJ3EnICovLCAweDAwNzUgLyogJ3UnICovLCAweDAwNjUgLyogJ2UnICovfSwKKyAgICAgICAgezB4MDA2MyAvKiAnYycgKi8sIDB4MDA2OCAvKiAnaCcgKi8sIDB4MDA2NSAvKiAnZScgKi8sIDB4MDA2RCAvKiAnbScgKi8sIDB4MDA2OSAvKiAnaScgKi8sIDB4MDA2RSAvKiAnbicgKi99LAorICAgICAgICB7MHgwMDYzIC8qICdjJyAqLywgMHgwMDZGIC8qICdvJyAqLywgMHgwMDc0IC8qICd0JyAqLywgMHgwMDY1IC8qICdlJyAqL30sCisgICAgICAgIHsweDAwNjMgLyogJ2MnICovLCAweDAwNkYgLyogJ28nICovLCAweDAwNzQgLyogJ3QnICovLCAweDAwZTl9LAorICAgICAgICB7MHgwMDYzIC8qICdjJyAqLywgMHgwMGY0LCAweDAwNzQgLyogJ3QnICovLCAweDAwNjUgLyogJ2UnICovfSwKKyAgICAgICAgezB4MDA2MyAvKiAnYycgKi8sIDB4MDBmNCwgMHgwMDc0IC8qICd0JyAqLywgMHgwMGU5fSwKKyAgICAgICAgezB4MDEwZCwgMHgwMDc1IC8qICd1JyAqLywgMHgwMTBkLCAweDAxMTMsIDB4MDA3NCAvKiAndCcgKi99LAorICAgICAgICB7MHgwMDQzIC8qICdDJyAqLywgMHgwMDdBIC8qICd6JyAqLywgMHgwMDY1IC8qICdlJyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDY4IC8qICdoJyAqL30sCisgICAgICAgIHsweDAwNjggLyogJ2gnICovLCAweDAwNjkgLyogJ2knICovLCAweDAxNjEsIDB4MDA2MSAvKiAnYScgKi99LAorICAgICAgICB7MHgwMDY5IC8qICdpJyAqLywgMHgwMDcyIC8qICdyJyAqLywgMHgwMDY0IC8qICdkJyAqLywgMHgwMDY5IC8qICdpJyAqLywgMHgwMDczIC8qICdzJyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDY4IC8qICdoJyAqL30sCisgICAgICAgIHsweDAwNkMgLyogJ2wnICovLCAweDAwNjkgLyogJ2knICovLCAweDAwNjUgLyogJ2UnICovfSwKKyAgICAgICAgezB4MDA2QyAvKiAnbCcgKi8sIDB4MDA2OSAvKiAnaScgKi8sIDB4MDA3MiAvKiAncicgKi8sIDB4MDA2NSAvKiAnZScgKi99LAorICAgICAgICB7MHgwMDZDIC8qICdsJyAqLywgMHgwMDZDIC8qICdsJyAqLywgMHgwMDYxIC8qICdhJyAqLywgMHgwMDZEIC8qICdtJyAqLywgMHgwMDYxIC8qICdhJyAqL30sCisgICAgICAgIHsweDAwNkMgLyogJ2wnICovLCAweDAwZjUsIDB4MDA3NSAvKiAndScgKi8sIDB4MDA2NyAvKiAnZycgKi99LAorICAgICAgICB7MHgwMDZDIC8qICdsJyAqLywgMHgwMGYyLCAweDAwN0EgLyogJ3onICovLCAweDAwNjEgLyogJ2EnICovfSwKKyAgICAgICAgezB4MDA2QyAvKiAnbCcgKi8sIDB4MDA3NSAvKiAndScgKi8sIDB4MDEwZH0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgezB4MDA2QyAvKiAnbCcgKi8sIDB4MDA3NSAvKiAndScgKi8sIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2QiAvKiAnaycgKi99LAorICAgICAgICB7MHgwMDRDIC8qICdMJyAqLywgMHgwMGZjLCAweDAwNjIgLyogJ2InICovLCAweDAwNjUgLyogJ2UnICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNkIgLyogJ2snICovfSwKKyAgICAgICAgezB4MDA2QyAvKiAnbCcgKi8sIDB4MDA3OSAvKiAneScgKi8sIDB4MDA2NSAvKiAnZScgKi99LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgezB4MDA2QyAvKiAnbCcgKi8sIDB4MDBlNCwgMHgwMDc2IC8qICd2JyAqLywgMHgwMDY5IC8qICdpJyAqL30sCisgICAgICAgIHsweDAwNEMgLyogJ0wnICovLCAweDAwZjYsIDB4MDA3NyAvKiAndycgKi8sIDB4MDA2NSAvKiAnZScgKi8sIDB4MDA2RSAvKiAnbicgKi99LAorICAgICAgICB7MHgwMDZEIC8qICdtJyAqLywgMHgwMGUwLCAweDAxNjEsIDB4MDA3NCAvKiAndCcgKi8sIDB4MDA2MSAvKiAnYScgKi99LAorICAgICAgICB7MHgwMDZEIC8qICdtJyAqLywgMHgwMGVlLCAweDAwNzIgLyogJ3InICovfSwKKyAgICAgICAgezB4MDA2RCAvKiAnbScgKi8sIDB4MDA3OSAvKiAneScgKi8sIDB4MDA2RSAvKiAnbicgKi8sIDB4MDA2NCAvKiAnZCcgKi8sIDB4MDA2OSAvKiAnaScgKi8sIDB4MDA2NyAvKiAnZycgKi99LAorICAgICAgICB7MHgwMDREIC8qICdNJyAqLywgMHgwMGU0LCAweDAwNkUgLyogJ24nICovLCAweDAwNkUgLyogJ24nICovLCAweDAwNjUgLyogJ2UnICovLCAweDAwNzIgLyogJ3InICovfSwKKyAgICAgICAgezB4MDA2RCAvKiAnbScgKi8sIDB4MDBmNiwgMHgwMDYzIC8qICdjJyAqLywgMHgwMDY4IC8qICdoJyAqLywgMHgwMDc0IC8qICd0JyAqLywgMHgwMDY1IC8qICdlJyAqLywgMHgwMDZFIC8qICduJyAqL30sCisgICAgICAgIHsweDAwNzAgLyogJ3AnICovLCAweDAwNjkgLyogJ2knICovLCAweDAwZjEsIDB4MDA2MSAvKiAnYScgKi99LAorICAgICAgICB7MHgwMDcwIC8qICdwJyAqLywgMHgwMDY5IC8qICdpJyAqLywgMHgwMDZFIC8qICduJyAqLywgMHgwMDc0IC8qICd0JyAqL30sCisgICAgICAgIHsweDAwNzAgLyogJ3AnICovLCAweDAwNzkgLyogJ3knICovLCAweDAwNkMgLyogJ2wnICovLCAweDAwNkYgLyogJ28nICovLCAweDAwNkUgLyogJ24nICovfSwKKyAgICAgICAgezB4MDE2MSwgMHgwMGUwLCAweDAwNzIgLyogJ3InICovLCAweDAwNjEgLyogJ2EnICovLCAweDAwNkUgLyogJ24nICovfSwKKyAgICAgICAgezB4MDA3MyAvKiAncycgKi8sIDB4MDA2MSAvKiAnYScgKi8sIDB4MDA3NiAvKiAndicgKi8sIDB4MDA2RiAvKiAnbycgKi8sIDB4MDA2OSAvKiAnaScgKi8sIDB4MDA3MiAvKiAncicgKi99LAorICAgICAgICB7MHgwMTYwLCAweDAwNjUgLyogJ2UnICovLCAweDAwNzIgLyogJ3InICovLCAweDAwNjIgLyogJ2InICovLCAweDAxNmIsIDB4MDA3MiAvKiAncicgKi8sIDB4MDA2MSAvKiAnYScgKi99LAorICAgICAgICB7MHgwMDUzIC8qICdTJyAqLywgMHgwMDY5IC8qICdpJyAqLywgMHgwMDY1IC8qICdlJyAqLywgMHgwMDc0IC8qICd0JyAqLywgMHgwMDZDIC8qICdsJyAqLywgMHgwMDYxIC8qICdhJyAqL30sCisgICAgICAgIHsweDAxNWIsIDB4MDA2QyAvKiAnbCcgKi8sIDB4MDA3NSAvKiAndScgKi8sIDB4MDA2MiAvKiAnYicgKi99LAorICAgICAgICB7MHgwMDczIC8qICdzJyAqLywgMHgwMDc1IC8qICd1JyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDc0IC8qICd0JyAqLywgMHgwMDZDIC8qICdsJyAqLywgMHgwMDY1IC8qICdlJyAqL30sCisgICAgICAgIHsweDAwNzMgLyogJ3MnICovLCAweDAwNzkgLyogJ3knICovLCAweDAwNkQgLyogJ20nICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNkYgLyogJ28nICovLCAweDAwNkMgLyogJ2wnICovfSwKKyAgICAgICAgezB4MDA3MyAvKiAncycgKi8sIDB4MDBlNCwgMHgwMDZEIC8qICdtJyAqLywgMHgwMDc0IC8qICd0JyAqLywgMHgwMDZDIC8qICdsJyAqLywgMHgwMDY5IC8qICdpJyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDY4IC8qICdoJyAqL30sCisgICAgICAgIHsweDAwNzcgLyogJ3cnICovLCAweDAwNjEgLyogJ2EnICovLCAweDAwNjYgLyogJ2YnICovLCAweDAwNjYgLyogJ2YnICovLCAweDAwNkMgLyogJ2wnICovLCAweDAwNjUgLyogJ2UnICovfSwKKyAgICAgICAgezB4MDA3NiAvKiAndicgKi8sIDB4MDA2NSAvKiAnZScgKi8sIDB4MDA3MiAvKiAncicgKi8sIDB4MDA2QiAvKiAnaycgKi8sIDB4MDA2NSAvKiAnZScgKi8sIDB4MDA2OCAvKiAnaCcgKi8sIDB4MDA3MiAvKiAncicgKi8sIDB4MDA3NCAvKiAndCcgKi99LAorICAgICAgICB7MHgwMDc3IC8qICd3JyAqLywgMHgwMDZGIC8qICdvJyAqLywgMHgwMDZGIC8qICdvJyAqLywgMHgwMDY0IC8qICdkJyAqL30sCisgICAgICAgIHsweDAwNzYgLyogJ3YnICovLCAweDAwNkYgLyogJ28nICovLCAweDAwNzggLyogJ3gnICovfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgezB4MDA3NiAvKiAndicgKi8sIDB4MDBlNCwgMHgwMDY3IC8qICdnJyAqLywgMHgwMDYxIC8qICdhJyAqL30sCisgICAgICAgIHsweDAwNzkgLyogJ3knICovLCAweDAwNjUgLyogJ2UnICovLCAweDAwNkUgLyogJ24nICovfSwKKyAgICAgICAgezB4MDA3OSAvKiAneScgKi8sIDB4MDA3NSAvKiAndScgKi8sIDB4MDA2MSAvKiAnYScgKi8sIDB4MDA2RSAvKiAnbicgKi99LAorICAgICAgICB7MHgwMDc5IC8qICd5JyAqLywgMHgwMDc1IC8qICd1JyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDYxIC8qICdhJyAqL30sCisgICAgICAgIHsweDAxN2UsIDB4MDA2MSAvKiAnYScgKi8sIDB4MDA2QyAvKiAnbCcgKi99LAorICAgICAgICB7MHgwMTdlLCAweDAwNjUgLyogJ2UnICovLCAweDAwNkUgLyogJ24nICovLCAweDAwNjEgLyogJ2EnICovfSwKKyAgICAgICAgezB4MDE3ZCwgMHgwMDY1IC8qICdlJyAqLywgMHgwMDZFIC8qICduJyAqLywgMHgwMTEzLCAweDAwNzYgLyogJ3YnICovLCAweDAwNjEgLyogJ2EnICovfSwKKyAgICAgICAgezB4MDA3QSAvKiAneicgKi8sIDB4MDA2RiAvKiAnbycgKi8sIDB4MDA2RiAvKiAnbycgKi8sIDB9LAorICAgICAgICB7MHgwMDVBIC8qICdaJyAqLywgMHgwMDc2IC8qICd2JyAqLywgMHgwMDY5IC8qICdpJyAqLywgMHgwMDY1IC8qICdlJyAqLywgMHgwMDY0IC8qICdkJyAqLywgMHgwMDcyIC8qICdyJyAqLywgMHgwMDY5IC8qICdpJyAqLywgMHgwMDZBIC8qICdqJyAqLywgMHgwMDYxIC8qICdhJyAqL30sCisgICAgICAgIHsweDAwNUEgLyogJ1onICovLCAweDAwZmMsIDB4MDA3MiAvKiAncicgKi8sIDB4MDA2OSAvKiAnaScgKi8sIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2OCAvKiAnaCcgKi99LAorICAgICAgICB7MHgwMDdBIC8qICd6JyAqLywgMHgwMDc5IC8qICd5JyAqLywgMHgwMDczIC8qICdzJyAqLywgMHgwMDZCIC8qICdrJyAqLywgMH0sICAgICAgICAgICAgIAorICAgICAgICB7MHgwMGU0LCAweDAwNkUgLyogJ24nICovLCAweDAwNjQgLyogJ2QnICovLCAweDAwNjUgLyogJ2UnICovLCAweDAwNzIgLyogJ3InICovLCAweDAwNjUgLyogJ2UnICovfSAgICAgICAgICAgICAgICAgIAorICAgIH07CisgICAgCisgICAgcHJpdmF0ZSBDb2xsYXRvciBteUNvbGxhdGlvbiA9IG51bGw7CisgICAgCisgICAgcHVibGljIENvbGxhdGlvbkRhbmlzaFRlc3QoKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBteUNvbGxhdGlvbiA9IENvbGxhdG9yLmdldEluc3RhbmNlKG5ldyBMb2NhbGUoImRhIiwgIkRLIikpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBpbiBjcmVhdGlvbiBvZiBjb2xsYXRvciBvZiBEQU5JU0ggbG9jYWxlIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFRlcnRpYXJ5KCkgeworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCA1IDsgaSsrKSB7CisgICAgICAgICAgICBkb1Rlc3QodGVzdFNvdXJjZUNhc2VzW2ldLCB0ZXN0VGFyZ2V0Q2FzZXNbaV0sIHJlc3VsdHNbaV0pOworICAgICAgICB9CisgICAgICAgIGludCBqID0gMDsKKyAgICAgICAgbG9nbG4oIlRlc3QgaW50ZXJuZXQgZGF0YSBsaXN0IDogIik7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCA1MzsgaSsrKSB7CisgICAgICAgICAgICBmb3IgKGogPSBpKzE7IGogPCA1NDsgaisrKSB7CisgICAgICAgICAgICAgICAgZG9UZXN0KHRlc3RCdWdzW2ldLCB0ZXN0QnVnc1tqXSwgLTEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGxvZ2xuKCJUZXN0IE5UIGRhdGEgbGlzdCA6ICIpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgNTI7IGkrKykgeworICAgICAgICAgICAgZm9yIChqID0gaSsxOyBqIDwgNTM7IGorKykgeworICAgICAgICAgICAgCWRvVGVzdCh0ZXN0TlRMaXN0W2ldLCB0ZXN0TlRMaXN0W2pdLCAtMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0UHJpbWFyeSgpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlBSSU1BUlkpOworICAgICAgICBmb3IgKGkgPSA1OyBpIDwgODsgaSsrKSB7CisgICAgICAgICAgICBkb1Rlc3QodGVzdFNvdXJjZUNhc2VzW2ldLCB0ZXN0VGFyZ2V0Q2FzZXNbaV0sIHJlc3VsdHNbaV0pOworICAgICAgICB9CisgICAgfQorCisgICAgCisgICAgCisgICAgLy8gbWFpbiB0ZXN0IHJvdXRpbmUsIFRlc3RzIHJ1bGVzIHNwZWNpZmljIHRvIGRhbmlzaCBjb2xsYXRpb24KKyAgICBwcml2YXRlIHZvaWQgZG9UZXN0KGNoYXJbXSBzb3VyY2UsIGNoYXJbXSB0YXJnZXQsIGludCByZXN1bHQpIHsKKyAgICAgICAgU3RyaW5nIHMgPSBuZXcgU3RyaW5nKHNvdXJjZSk7CisgICAgICAgIFN0cmluZyB0ID0gbmV3IFN0cmluZyh0YXJnZXQpOworICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCA9IG15Q29sbGF0aW9uLmNvbXBhcmUocywgdCk7CisgICAgICAgIENvbGxhdGlvbktleSBzb3J0S2V5MSwgc29ydEtleTI7CisgICAgICAgIHNvcnRLZXkxID0gbXlDb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHMpOworICAgICAgICBzb3J0S2V5MiA9IG15Q29sbGF0aW9uLmdldENvbGxhdGlvbktleSh0KTsKKyAgICAgICAgaW50IGtleVJlc3VsdCA9IHNvcnRLZXkxLmNvbXBhcmVUbyhzb3J0S2V5Mik7CisgICAgICAgIHJlcG9ydENSZXN1bHQocywgdCwgc29ydEtleTEsIHNvcnRLZXkyLCBjb21wYXJlUmVzdWx0LCBrZXlSZXN1bHQsIGNvbXBhcmVSZXN1bHQsIHJlc3VsdCk7ICAgCisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCByZXBvcnRDUmVzdWx0KCBTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0LCBDb2xsYXRpb25LZXkgc291cmNlS2V5LCBDb2xsYXRpb25LZXkgdGFyZ2V0S2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCwgaW50IGtleVJlc3VsdCwgaW50IGluY1Jlc3VsdCwgaW50IGV4cGVjdGVkUmVzdWx0ICl7CisgICAgICAgIGlmIChleHBlY3RlZFJlc3VsdCA8IC0xIHx8IGV4cGVjdGVkUmVzdWx0ID4gMSkgeworICAgICAgICAgICAgZXJybG4oIioqKioqIGludmFsaWQgY2FsbCB0byByZXBvcnRDUmVzdWx0ICoqKioiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gb2sxID0gKGNvbXBhcmVSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMiA9IChrZXlSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMyA9IChpbmNSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworCisgICAgICAgIGlmIChvazEgJiYgb2syICYmIG9rMyAmJiAhaXNWZXJib3NlKCkpIHsKKyAgICAgICAgICAgIHJldHVybjsgICAgCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgbXNnMSA9IG9rMT8gIk9rOiBjb21wYXJlKFwiIiA6ICJGQUlMOiBjb21wYXJlKFwiIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2cyID0gIlwiLCBcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2c0ID0gIjsgZXhwZWN0ZWQgIjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIHNFeHBlY3QgPSBuZXcgU3RyaW5nKCIiKTsKKyAgICAgICAgICAgIFN0cmluZyBzUmVzdWx0ID0gbmV3IFN0cmluZygiIik7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChjb21wYXJlUmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIHNFeHBlY3QgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGV4cGVjdGVkUmVzdWx0LCBzRXhwZWN0KTsKKyAgICAgICAgICAgIGlmIChvazEpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbXNnMSA9IG9rMiA/ICJPazoga2V5KFwiIiA6ICJGQUlMOiBrZXkoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIikuY29tcGFyZVRvKGtleShcIiI7CisgICAgICAgICAgICBtc2czID0gIlwiKSkgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGtleVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBpZiAob2syKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICAgICAgbXNnMSA9ICIgICI7CisgICAgICAgICAgICAgICAgbXNnMiA9ICIgdnMuICI7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHByZXR0aWZ5KHNvdXJjZUtleSkgKyBtc2cyICsgcHJldHRpZnkodGFyZ2V0S2V5KSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1zZzEgPSBvazMgPyAiT2s6IGluY0NvbXBhcmUoXCIiIDogIkZBSUw6IGluY0NvbXBhcmUoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoaW5jUmVzdWx0LCBzUmVzdWx0KTsKKworICAgICAgICAgICAgaWYgKG9rMykgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBhcHBlbmRDb21wYXJlUmVzdWx0KGludCByZXN1bHQsIFN0cmluZyB0YXJnZXQpeworICAgICAgICBpZiAocmVzdWx0ID09IC0xKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkxFU1MiOworICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkVRVUFMIjsKKyAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gMSkgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJHUkVBVEVSIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBodWggPSAiPyI7CisgICAgICAgICAgICB0YXJnZXQgKz0gaHVoICsgcmVzdWx0OworICAgICAgICB9CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorICAgIAorICAgIFN0cmluZyBwcmV0dGlmeShDb2xsYXRpb25LZXkgc291cmNlS2V5KSB7CisgICAgICAgIGludCBpOworICAgICAgICBieXRlW10gYnl0ZXM9IHNvdXJjZUtleS50b0J5dGVBcnJheSgpOworICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gIlsiOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHRhcmdldCArPSBJbnRlZ2VyLnRvSGV4U3RyaW5nKGJ5dGVzW2ldKTsKKyAgICAgICAgICAgIHRhcmdldCArPSAiICI7CisgICAgICAgIH0KKyAgICAgICAgdGFyZ2V0ICs9ICJdIjsKKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9Cit9CisgICAgClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbkR1bW15VGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbkR1bW15VGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllODQ4YmMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uRHVtbXlUZXN0LmphdmEKQEAgLTAsMCArMSw1MjAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogJFNvdXJjZTogCisgKiAkRGF0ZTogCisgKiAkUmV2aXNpb246IAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2Mi4xIDogQ29sbGF0ZS9Db2xsYXRpb25EdW1teVRlc3QKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L2FsbGNvbGwuY3BwCisgKiAgICAgICAgICAgICAgJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9jaW50bHRzdC9jYWxsY29sbC5jCisgKiovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yOworIAoraW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisgCitwdWJsaWMgY2xhc3MgQ29sbGF0aW9uRHVtbXlUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgQ29sbGF0aW9uRHVtbXlUZXN0KCkucnVuKGFyZ3MpOworICAgICAgICAvLyBuZXcgQ29sbGF0aW9uRHVtbXlUZXN0KCkuVGVzdFZhcmlhYmxlVG9wKCk7CisgICAgfQorICAgIAorICAgIC8vdGVzdFNvdXJjZUNhc2VzW11bXSBhbmQgdGVzdFRhcmdldENhc2VzW11bXSwgdGVzdENhc2VzW11bXSBhcmUgcG9ydGVkIGZyb20gdGhlIGZpbGUgY2FsbGNvbGwuYyBpbiBpY3U0YworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RTb3VyY2VDYXNlcyA9IHsKKyAgICAgICAgezB4NjEsIDB4NjIsIDB4MjcsIDB4NjN9LAorICAgICAgICB7MHg2MywgMHg2ZiwgMHgyZCwgMHg2ZiwgMHg3MH0sCisgICAgICAgIHsweDYxLCAweDYyfSwKKyAgICAgICAgezB4NjEsIDB4NmQsIDB4NzAsIDB4NjUsIDB4NzIsIDB4NzMsIDB4NjEsIDB4NjR9LAorICAgICAgICB7MHg2MSwgMHg2YywgMHg2Y30sCisgICAgICAgIHsweDY2LCAweDZmLCAweDc1LCAweDcyfSwKKyAgICAgICAgezB4NjYsIDB4NjksIDB4NzYsIDB4NjV9LAorICAgICAgICB7MHgzMX0sCisgICAgICAgIHsweDMxfSwKKyAgICAgICAgezB4MzF9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIDEwIAorICAgICAgICB7MHgzMn0sCisgICAgICAgIHsweDMyfSwKKyAgICAgICAgezB4NDgsIDB4NjUsIDB4NmMsIDB4NmMsIDB4NmZ9LAorICAgICAgICB7MHg2MSwgMHgzYywgMHg2Mn0sCisgICAgICAgIHsweDYxLCAweDNjLCAweDYyfSwKKyAgICAgICAgezB4NjEsIDB4NjMsIDB4NjN9LAorICAgICAgICB7MHg2MSwgMHg2MywgMHg0OCwgMHg2M30sICAvLyAgc2ltcGxlIHRlc3QgCisgICAgICAgIHsweDcwLCAweDAwRUEsIDB4NjMsIDB4NjgsIDB4NjV9LAorICAgICAgICB7MHg2MSwgMHg2MiwgMHg2M30sCisgICAgICAgIHsweDYxLCAweDYyLCAweDYzfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIDIwIAorICAgICAgICB7MHg2MSwgMHg2MiwgMHg2M30sCisgICAgICAgIHsweDYxLCAweDYyLCAweDYzfSwKKyAgICAgICAgezB4NjEsIDB4NjIsIDB4NjN9LAorICAgICAgICB7MHg2MSwgMHgwMEU2LCAweDYzfSwKKyAgICAgICAgezB4NjEsIDB4NjMsIDB4NDgsIDB4NjN9LCAgLy8gIHByaW1hcnkgdGVzdCAKKyAgICAgICAgezB4NjIsIDB4NmMsIDB4NjEsIDB4NjMsIDB4NmJ9LAorICAgICAgICB7MHg2NiwgMHg2ZiwgMHg3NSwgMHg3Mn0sCisgICAgICAgIHsweDY2LCAweDY5LCAweDc2LCAweDY1fSwKKyAgICAgICAgezB4MzF9LAorICAgICAgICB7MHg2MSwgMHg2MiwgMHg2M30sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAzMCAKKyAgICAgICAgezB4NjEsIDB4NjIsIDB4NjN9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgezB4NjEsIDB4NjIsIDB4NjMsIDB4NDh9LAorICAgICAgICB7MHg2MSwgMHg2MiwgMHg2M30sCisgICAgICAgIHsweDYxLCAweDYzLCAweDQ4LCAweDYzfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgMzQgCisgICAgICAgIHsweDYxLCAweDYzLCAweDY1LCAweDMwfSwKKyAgICAgICAgezB4MzEsIDB4MzB9LAorICAgICAgICB7MHg3MCwgMHgwMEVBLDB4MzB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gMzcgICAgIAorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0VGFyZ2V0Q2FzZXMgPSB7CisgICAgICAgIHsweDYxLCAweDYyLCAweDYzLCAweDI3fSwKKyAgICAgICAgezB4NDMsIDB4NGYsIDB4NGYsIDB4NTB9LAorICAgICAgICB7MHg2MSwgMHg2MiwgMHg2M30sCisgICAgICAgIHsweDI2fSwKKyAgICAgICAgezB4MjZ9LAorICAgICAgICB7MHgzNH0sCisgICAgICAgIHsweDM1fSwKKyAgICAgICAgezB4NmYsIDB4NmUsIDB4NjV9LAorICAgICAgICB7MHg2ZSwgMHg2ZSwgMHg2NX0sCisgICAgICAgIHsweDcwLCAweDZlLCAweDY1fSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIDEwIAorICAgICAgICB7MHg3NCwgMHg3NywgMHg2Zn0sCisgICAgICAgIHsweDc1LCAweDc3LCAweDZmfSwKKyAgICAgICAgezB4NjgsIDB4NjUsIDB4NmMsIDB4NmMsIDB4NGZ9LAorICAgICAgICB7MHg2MSwgMHgzYywgMHgzZCwgMHg2Mn0sCisgICAgICAgIHsweDYxLCAweDYyLCAweDYzfSwKKyAgICAgICAgezB4NjEsIDB4NDMsIDB4NDgsIDB4NjN9LAorICAgICAgICB7MHg2MSwgMHg0MywgMHg0OCwgMHg2M30sICAvLyAgc2ltcGxlIHRlc3QgCisgICAgICAgIHsweDcwLCAweDAwRTksIDB4NjMsIDB4NjgsIDB4MDBFOX0sCisgICAgICAgIHsweDYxLCAweDYyLCAweDYzfSwKKyAgICAgICAgezB4NjEsIDB4NDIsIDB4NDN9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgMjAgCisgICAgICAgIHsweDYxLCAweDYyLCAweDYzLCAweDY4fSwKKyAgICAgICAgezB4NjEsIDB4NjIsIDB4NjR9LAorICAgICAgICB7MHgwMEU0LCAweDYyLCAweDYzfSwKKyAgICAgICAgezB4NjEsIDB4MDBDNiwgMHg2M30sCisgICAgICAgIHsweDYxLCAweDQzLCAweDQ4LCAweDYzfSwgIC8vICBwcmltYXJ5IHRlc3QgCisgICAgICAgIHsweDYyLCAweDZjLCAweDYxLCAweDYzLCAweDZiLCAweDJkLCAweDYyLCAweDY5LCAweDcyLCAweDY0fSwKKyAgICAgICAgezB4MzR9LAorICAgICAgICB7MHgzNX0sCisgICAgICAgIHsweDZmLCAweDZlLCAweDY1fSwKKyAgICAgICAgezB4NjEsIDB4NjIsIDB4NjN9LAorICAgICAgICB7MHg2MSwgMHg0MiwgMHg2M30sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAzMCAKKyAgICAgICAgezB4NjEsIDB4NjIsIDB4NjMsIDB4Njh9LAorICAgICAgICB7MHg2MSwgMHg2MiwgMHg2NH0sCisgICAgICAgIHsweDYxLCAweDQzLCAweDQ4LCAweDYzfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAzNCAKKyAgICAgICAgezB4NjEsIDB4NjMsIDB4NjUsIDB4MzB9LAorICAgICAgICB7MHgzMSwgMHgzMH0sCisgICAgICAgIHsweDcwLCAweDAwRUIsMHgzMH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAzNyAKKyAgICB9OworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RDYXNlcyA9IHsKKyAgICAgICAgezB4NjF9LAorICAgICAgICB7MHg0MX0sCisgICAgICAgIHsweDAwZTR9LAorICAgICAgICB7MHgwMGM0fSwKKyAgICAgICAgezB4NjEsIDB4NjV9LAorICAgICAgICB7MHg2MSwgMHg0NX0sCisgICAgICAgIHsweDQxLCAweDY1fSwKKyAgICAgICAgezB4NDEsIDB4NDV9LAorICAgICAgICB7MHgwMGU2fSwKKyAgICAgICAgezB4MDBjNn0sCisgICAgICAgIHsweDYyfSwKKyAgICAgICAgezB4NjN9LAorICAgICAgICB7MHg3YX0KKyAgICB9OworICAgIAorICAgIGludFtdIHJlc3VsdHMgPSB7CisgICAgICAgIC0xLAorICAgICAgICAtMSwgLy9Db2xsYXRvcjo6R1JFQVRFUiwKKyAgICAgICAgLTEsCisgICAgICAgIC0xLAorICAgICAgICAtMSwKKyAgICAgICAgLTEsCisgICAgICAgIC0xLAorICAgICAgICAxLAorICAgICAgICAxLAorICAgICAgICAtMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIDEwIAorICAgICAgICAxLAorICAgICAgICAtMSwKKyAgICAgICAgMSwKKyAgICAgICAgMSwKKyAgICAgICAgLTEsCisgICAgICAgIC0xLAorICAgICAgICAtMSwKKyAgICAvLyAgdGVzdCBwcmltYXJ5ID4gMTcgCisgICAgICAgIDAsCisgICAgICAgIDAsCisgICAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIDIwIAorICAgICAgICAtMSwKKyAgICAgICAgLTEsCisgICAgICAgIDAsCisgICAgICAgIDAsCisgICAgICAgIDAsCisgICAgICAgIC0xLAorICAgIC8vICB0ZXN0IHNlY29uZGFyeSA+IDI2IAorICAgICAgICAwLAorICAgICAgICAwLAorICAgICAgICAwLAorICAgICAgICAwLAorICAgICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAzMCAKKyAgICAgICAgMCwKKyAgICAgICAgLTEsCisgICAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAzNCAKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgLTEgCisgICAgfTsKKyAgICAKKyAgICBmaW5hbCBpbnQgTUFYX1RPS0VOX0xFTiA9IDE2OworICAgIAorICAgIHB1YmxpYyBSdWxlQmFzZWRDb2xsYXRvciBteUNvbGxhdGlvbjsKKyAgICAKKyAgICBwdWJsaWMgQ29sbGF0aW9uRHVtbXlUZXN0KCkgeworICAgICAgICBTdHJpbmcgcnVsZXNldCA9ICImIEMgPCBjaCwgY0gsIENoLCBDSCAmIEZpdmUsIDUgJiBGb3VyLCA0ICYgb25lLCAxICYgQW1wZXJzYW5kOyAnJicgJiBUd28sIDIgIjsKKyAgICAgICAgLy8gU3RyaW5nIHJ1bGVzZXQgPSAiJiBGb3VyLCA0IjsKKyAgICAgICAgbXlDb2xsYXRpb24gPSBudWxsOworICAgICAgICB0cnl7CisgICAgICAgICAgICBteUNvbGxhdGlvbiA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlc2V0KTsKKyAgICAgICAgfSBjYXRjaChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICBlcnJsbigiRmFpbCB0byBjcmVhdGUgUnVsZUJhc2VkQ29sbGF0b3Igd2l0aCBydWxlczoiICsgcnVsZXNldCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gcGVyZm9ybSB0ZXN0IHdpdGggc3RyZW5ndGggdGVydGlhcnkKKyAgICBwdWJsaWMgdm9pZCBUZXN0VGVydGlhcnkoKSB7CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMTcgOyBpKyspIHsKKyAgICAgICAgICAgIGRvVGVzdChteUNvbGxhdGlvbiwgdGVzdFNvdXJjZUNhc2VzW2ldLCB0ZXN0VGFyZ2V0Q2FzZXNbaV0sIHJlc3VsdHNbaV0pOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gcGVyZm9ybSB0ZXN0IHdpdGggc3RyZW5ndGggUFJJTUFSWQorICAgIHB1YmxpYyB2b2lkIFRlc3RQcmltYXJ5KCkgeworICAgICAgIC8vIHByb2JsZW0gaW4gc3RyY29sbGluYyBmb3IgdW5maW5zaGVkIGNvbnRyYWN0aW9ucyAKKyAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDE3OyBpIDwgMjYgOyBpKyspIHsKKyAgICAgICAgICAgIGRvVGVzdChteUNvbGxhdGlvbiwgdGVzdFNvdXJjZUNhc2VzW2ldLCB0ZXN0VGFyZ2V0Q2FzZXNbaV0sIHJlc3VsdHNbaV0pOworICAgICAgICB9CisgICAgfQorCisgICAgLy9wZXJmb3JtIHRlc3Qgd2l0aCBzdHJlbmd0aCBTRUNPTkRBUlkKKyAgICBwdWJsaWMgdm9pZCBUZXN0U2Vjb25kYXJ5KCkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgZm9yIChpID0gMjY7IGkgPCAzNDsgaSsrKSB7CisgICAgICAgICAgICBkb1Rlc3QobXlDb2xsYXRpb24sIHRlc3RTb3VyY2VDYXNlc1tpXSwgdGVzdFRhcmdldENhc2VzW2ldLCByZXN1bHRzW2ldKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIHBlcmZvcm0gZXh0cmEgdGVzdHMKKyAgICBwdWJsaWMgdm9pZCBUZXN0RXh0cmEoKSB7CisgICAgICAgIGludCBpLCBqOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCB0ZXN0Q2FzZXMubGVuZ3RoIC0gMTsgaSsrKSB7CisgICAgICAgICAgICBmb3IgKGogPSBpICsgMTsgaiA8IHRlc3RDYXNlcy5sZW5ndGg7IGogKz0gMSkgeworICAgICAgICAgICAgICAgIGRvVGVzdChteUNvbGxhdGlvbiwgdGVzdENhc2VzW2ldLCB0ZXN0Q2FzZXNbal0sIC0xKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RJZGVudGljYWwoKSB7CisgICAgICAgIGludCBpOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5JREVOVElDQUwpOworICAgICAgICBmb3IgKGk9IDM0OyBpPDM3OyBpKyspIHsKKyAgICAgICAgICAgIGRvVGVzdChteUNvbGxhdGlvbiwgdGVzdFNvdXJjZUNhc2VzW2ldLCB0ZXN0VGFyZ2V0Q2FzZXNbaV0sIHJlc3VsdHNbaV0pOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEpCNTgxKCkgeworICAgICAgICBTdHJpbmcgc291cmNlID0gIlRISVNJU0FURVNULiI7CisgICAgICAgIFN0cmluZyB0YXJnZXQgPSAiVGhpc2lzYXRlc3QuIjsKKyAgICAgICAgQ29sbGF0b3IgY29sbCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkVOR0xJU0gpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBGYWlsZWQgdG8gY3JlYXRlIHRoZSBjb2xsYXRvciBmb3IgOiBlbl9VU1xuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpbnQgcmVzdWx0ID0gY29sbC5jb21wYXJlKHNvdXJjZSwgdGFyZ2V0KTsKKyAgICAgICAgLy8gcmVzdWx0IGlzIDEsIHNlY29uZGFyeSBkaWZmZXJlbmNlcyBvbmx5IGZvciBpZ25vcmFibGUgc3BhY2UgY2hhcmFjdGVycworICAgICAgICBpZiAocmVzdWx0ICE9IDEpIHsKKyAgICAgICAgICAgIGVycmxuKCJDb21wYXJpbmcgdHdvIHN0cmluZ3Mgd2l0aCBvbmx5IHNlY29uZGFyeSBkaWZmZXJlbmNlcyBpbiBDIGZhaWxlZC5cbiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBUbyBjb21wYXJlIHRoZW0gd2l0aCBqdXN0IHByaW1hcnkgZGlmZmVyZW5jZXMgCisgICAgICAgIGNvbGwuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgIHJlc3VsdCA9IGNvbGwuY29tcGFyZShzb3VyY2UsIHRhcmdldCk7CisgICAgICAgIC8vIHJlc3VsdCBpcyAwIAorICAgICAgICBpZiAocmVzdWx0ICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJDb21wYXJpbmcgdHdvIHN0cmluZ3Mgd2l0aCBubyBkaWZmZXJlbmNlcyBpbiBDIGZhaWxlZC5cbiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9IAorICAgICAgICAgIAorICAgICAgICAvLyBOb3csIGRvIHRoZSBzYW1lIGNvbXBhcmlzb24gd2l0aCBrZXlzIAorICAgICAgICBDb2xsYXRpb25LZXkgc291cmNlS2V5T3V0LCB0YXJnZXRLZXlPdXQ7CisgICAgICAgIHNvdXJjZUtleU91dCA9IGNvbGwuZ2V0Q29sbGF0aW9uS2V5KHNvdXJjZSk7CisgICAgICAgIHRhcmdldEtleU91dCA9IGNvbGwuZ2V0Q29sbGF0aW9uS2V5KHRhcmdldCk7CisgICAgICAgIHJlc3VsdCA9IHNvdXJjZUtleU91dC5jb21wYXJlVG8odGFyZ2V0S2V5T3V0KTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiQ29tcGFyaW5nIHR3byBzdHJpbmdzIHdpdGggc29ydCBrZXlzIGluIEMgZmFpbGVkLlxuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy9UZXN0U3Vycm9nYXRlcygpIGlzIHBvcnRlZCBmcm9tIGNpbnRsdHN0L2NhbGxjb2xsLmMKKyAgICAKKyAgICAvKioKKyAgICAqIFRlc3RzIHN1cnJvZ2F0ZSBzdXBwb3J0LgorICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFN1cnJvZ2F0ZXMoKSAKKyAgICB7CisgICAgCVN0cmluZyBydWxlcyA9ICImejwnXHVkODAwXHVkYzAwJzwnXHVkODAwXHVkYzBhXHUwMzA4JzxBIjsKKyAgICAgICAgU3RyaW5nIHNvdXJjZVtdID0geyJ6IiwKKyAgICAgICAgCSAgICAgICAgICAgICAgICJcdUQ4MDBcdURDMDAiLAorICAgICAgICAJICAgICAgICAgICAgICAgIlx1ZDgwMFx1ZGMwYVx1MDMwOCIsCisgICAgICAgIAkgICAgICAgICAgICAgICAiXHVkODAwXHVkYzAyIiAgICAKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyB0YXJnZXRbXSA9IHsiXHVEODAwXHVEQzAwIiwKKyAgICAgICAgCSAgICAgICAgICAgICAgICJcdWQ4MDBcdWRjMGFcdTAzMDgiLAorICAgICAgICAJICAgICAgICAgICAgICAgIkEiLAorICAgICAgICAJICAgICAgICAgICAgICAgIlx1ZDgwMFx1ZGMwMyIgICAgCisgICAgICAgIH07CisgICAgCisgICAgICAgIC8vIHRoaXMgdGVzdCBpcyB0byB2ZXJpZnkgdGhlIHN1cHBsZW1lbnRhcnkgc29ydCBrZXkgb3JkZXIgaW4gdGhlIGVuZ2xpc2ggCisgICAgICAgIC8vIGNvbGxhdG9yCisgICAgICAgIENvbGxhdG9yIGVuQ29sbGF0aW9uOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZW5Db2xsYXRpb24gPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IEZhaWxlZCB0byBjcmVhdGUgdGhlIGNvbGxhdG9yIGZvciBFTkdMSVNIIik7CisgICAgICAgICAgICByZXR1cm47ICAgICAgIAorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIC8vIGxvZ2xuKCJzdGFydCBvZiBlbmdsaXNoIGNvbGxhdGlvbiBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMgdGVzdFxuIik7CisgICAgICAgIHdoaWxlIChjb3VudCA8IDIpIHsKKyAgICAgICAgICAgIGRvVGVzdChlbkNvbGxhdGlvbiwgc291cmNlW2NvdW50XSwgdGFyZ2V0W2NvdW50XSwgLTEpOworICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgIH0KKyAgICAgICAgZG9UZXN0KGVuQ29sbGF0aW9uLCBzb3VyY2VbY291bnRdLCB0YXJnZXRbY291bnRdLCAxKTsKKyAgICAgICAgICAgIAorICAgICAgICAvLyBsb2dsbigic3RhcnQgb2YgdGFpbG9yZWQgY29sbGF0aW9uIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyB0ZXN0XG4iKTsKKyAgICAgICAgY291bnQgPSAwOworICAgICAgICBDb2xsYXRvciBuZXdDb2xsYXRpb247CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBuZXdDb2xsYXRpb24gPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZXMpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBGYWlsZWQgdG8gY3JlYXRlIHRoZSBjb2xsYXRvciBmb3IgcnVsZXMiKTsKKyAgICAgICAgICAgIHJldHVybjsgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIHRlc3RzIGdldHRpbmcgY29sbGF0aW9uIGVsZW1lbnRzIGZvciBzdXJyb2dhdGVzIGZvciB0YWlsb3JlZCBydWxlcyAKKyAgICAgICAgd2hpbGUgKGNvdW50IDwgNCkgeworICAgICAgICAgICAgZG9UZXN0KG5ld0NvbGxhdGlvbiwgc291cmNlW2NvdW50XSwgdGFyZ2V0W2NvdW50XSwgLTEpOworICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gdGVzdHMgdGhhdCBcdUQ4MDFcdURDMDEgc3RpbGwgaGFzIHRoZSBzYW1lIHZhbHVlLCBub3QgY2hhbmdlZCAKKyAgICAgICAgQ29sbGF0aW9uS2V5IGVuS2V5ID0gZW5Db2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHNvdXJjZVszXSk7CisgICAgICAgIENvbGxhdGlvbktleSBuZXdLZXkgPSBuZXdDb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHNvdXJjZVszXSk7CisgICAgICAgIGludCBrZXlSZXN1bHQgPSBlbktleS5jb21wYXJlVG8obmV3S2V5KTsKKyAgICAgICAgaWYoa2V5UmVzdWx0ICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQgOiBub24tdGFpbG9yZWQgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIHNob3VsZCBoYXZlIHRoZSBzYW1lIHZhbHVlXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvL1Rlc3RWYXJpYWJsZVRvcCgpIGlzIHBvcnRlZCBmcm9tIGNpbnRsdHN0L2NhbGxjb2xsLmMKKyAgICAvKioKKyAgICAqIFRlc3RzIHRoZSBbdmFyaWFibGUgdG9wXSB0YWcgaW4gcnVsZSBzeW50YXguIFNpbmNlIHRoZSBkZWZhdWx0IFthbHRlcm5hdGVdCisgICAgKiB0YWcgaGFzIHRoZSB2YWx1ZSBzaGlmdGVkLCBhbnkgY29kZXBvaW50cyBiZWZvcmUgW3ZhcmlhYmxlIHRvcF0gc2hvdWxkIGdpdmUKKyAgICAqIGEgcHJpbWFyeSBjZSBvZiAwLgorICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFZhcmlhYmxlVG9wKCkgeworICAgICAgICBTdHJpbmcgcnVsZSA9ICImeiA9IFt2YXJpYWJsZSB0b3BdIjsKKyAgICAgICAgQ29sbGF0b3IgIG15Q29sbDsKKyAgICAgICAgQ29sbGF0b3IgIGVuQ29sbDsKKyAgICAgICAgY2hhcltdIHNvdXJjZSA9IG5ldyBjaGFyWzFdOworICAgICAgICBjaGFyIGNoOworICAgICAgICBpbnQgZXhwZWN0ZWRbXSA9IHswfTsKKyAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGVuQ29sbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogRmFpbGVkIHRvIGNyZWF0ZSB0aGUgY29sbGF0b3IgZm9yIEVOR0xJU0giKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgbXlDb2xsID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGUpOworICAgICAgICB9IGNhdGNoKEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsIHRvIGNyZWF0ZSBSdWxlQmFzZWRDb2xsYXRvciB3aXRoIHJ1bGVzOiIgKyBydWxlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfSAgCisgICAgICAgIGVuQ29sbC5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKyAgICAgICAgbXlDb2xsLnNldFN0cmVuZ3RoKENvbGxhdG9yLlBSSU1BUlkpOworICAgICAgICAKKyAgICAgICAgKChSdWxlQmFzZWRDb2xsYXRvcillbkNvbGwpLnNldEFsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZCh0cnVlKTsKKyAgICAgICAgKChSdWxlQmFzZWRDb2xsYXRvcilteUNvbGwpLnNldEFsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZCh0cnVlKTsKKyAgICAgICAgCisgICAgICAgIGlmKCgoUnVsZUJhc2VkQ29sbGF0b3IpZW5Db2xsKS5pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZCgpICE9IHRydWUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogQUxURVJOQVRFX0hBTkRMSU5HIHZhbHVlIGNhbiBub3QgYmUgc2V0IHRvIFNISUZURURcbiIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBzcGFjZSBpcyBzdXBwb3NlZCB0byBiZSBhIHZhcmlhYmxlIAorICAgICAgICBDb2xsYXRpb25LZXkga2V5ID0gZW5Db2xsLmdldENvbGxhdGlvbktleSgiICIpOyAgIAorICAgICAgICBieXRlW10gcmVzdWx0ID0ga2V5LnRvQnl0ZUFycmF5KCk7IAorICAgICAgICAKKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IHJlc3VsdC5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYocmVzdWx0W2ldIT0gZXhwZWN0ZWRbaV0pIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IFNISUZURUQgYWx0ZXJuYXRlIGRvZXMgbm90IHJldHVybiAwIGZvciBwcmltYXJ5IG9mIHNwYWNlXG4iKTsgIAorICAgICAgICAgICAgICAgIGJyZWFrOyAgCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGNoID0gJ2EnOworICAgICAgICB3aGlsZSAoY2ggPCAneicpIHsKKyAgICAgICAgICAgIHNvdXJjZVswXSA9IGNoOworICAgICAgICAgICAga2V5ID0gbXlDb2xsLmdldENvbGxhdGlvbktleShuZXcgU3RyaW5nKHNvdXJjZSkpOworICAgICAgICAgICAgcmVzdWx0ID0ga2V5LnRvQnl0ZUFycmF5KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCByZXN1bHQubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZihyZXN1bHRbaV0hPSBleHBlY3RlZFtpXSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IFNISUZURUQgYWx0ZXJuYXRlIGRvZXMgbm90IHJldHVybiAwIGZvciBwcmltYXJ5IG9mIHNwYWNlXG4iKTsgIAorICAgICAgICAgICAgICAgICAgICBicmVhazsgIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNoICsrOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RKQjE0MDEoKSB7CisgICAgICAgIENvbGxhdG9yICAgICBteUNvbGxhdG9yID0gbnVsbDsKKyAgICAgICAgY2hhcltdIE5GRF9VbnNhZmVTdGFydENoYXJzID0geworICAgICAgICAgICAgMHgwZjczLCAgICAgICAgICAvLyBUaWJldGFuIFZvd2VsIFNpZ24gSUkgCisgICAgICAgICAgICAweDBmNzUsICAgICAgICAgIC8vIFRpYmV0YW4gVm93ZWwgU2lnbiBVVSAKKyAgICAgICAgICAgIDB4MGY4MSwgICAgICAgICAgLy8gVGliZXRhbiBWb3dlbCBTaWduIFJldmVyc2VkIElJIAorICAgICAgICAgICAgMAorICAgICAgICB9OworICAgICAgICBpbnQgaTsKKyAgICAKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgbXlDb2xsYXRvciA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgfSBjYXRjaChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBGYWlsZWQgdG8gY3JlYXRlIHRoZSBjb2xsYXRvciBmb3IgRU5HTElTSCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG15Q29sbGF0b3Iuc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTik7CisgICAgICAgIGZvciAoaT0wOyA7IGkrKykgeworICAgICAgICAgICAgLy8gR2V0IHRoZSBuZXh0IGZ1bm55IGNoYXJhY3RlciB0byBiZSB0ZXN0ZWQsIGFuZCBzZXQgdXAgdGhlCisgICAgICAgICAgICAvLyB0aHJlZSB0ZXN0IHN0cmluZ3MgWCwgWSwgWiwgY29uc2lzdGluZyBvZiBhbiBBLWdyYXZlICsgdGVzdCBjaGFyLAorICAgICAgICAgICAgLy8gaW4gb3JpZ2luYWwgZm9ybSwgTkZELCBhbmQgdGhlbiBORkMgZm9ybS4KKyAgICAgICAgICAgIGNoYXIgYyA9IE5GRF9VbnNhZmVTdGFydENoYXJzW2ldOworICAgICAgICAgICAgaWYgKGM9PTApIHticmVhazt9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyB4ID0gIlx1MDBDMCIgKyBjOyAgICAgICAvLyBcdTAwQzAgaXMgQSBHcmF2ZQorICAgICAgICAgICAgU3RyaW5nIHk7CisgICAgICAgICAgICBTdHJpbmcgejsKKyAgICAKKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICB5ID0gTm9ybWFsaXplci5kZWNvbXBvc2UoeCwgZmFsc2UpOworICAgICAgICAgICAgICAgIHogPSBOb3JtYWxpemVyLmRlY29tcG9zZSh5LCB0cnVlKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBGYWlsZWQgdG8gbm9ybWFsaXplIHRlc3Qgb2YgY2hhcmFjdGVyIiArIGMpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAKKyAgICAgICAgICAgIC8vIENvbGxhdGlvbiB0ZXN0LiAgQWxsIHRocmVlIHN0cmluZ3Mgc2hvdWxkIGJlIGVxdWFsLgorICAgICAgICAgICAgLy8gZG9UZXN0IGRvZXMgYm90aCBzdHJjb2xsIGFuZCBzb3J0IGtleXMsIHdpdGggcGFyYW1zIGluIGJvdGggb3JkZXJzLgorICAgICAgICAgICAgZG9UZXN0KG15Q29sbGF0b3IsIHgsIHksIDApOworICAgICAgICAgICAgZG9UZXN0KG15Q29sbGF0b3IsIHgsIHosIDApOworICAgICAgICAgICAgZG9UZXN0KG15Q29sbGF0b3IsIHksIHosIDApOyAKKyAgICAKKyAgICAgICAgICAgIC8vIFJ1biBjb2xsYXRpb24gZWxlbWVudCBpdGVyYXRvcnMgb3ZlciB0aGUgdGhyZWUgc3RyaW5ncy4gIFJlc3VsdHMgc2hvdWxkIGJlIHNhbWUgZm9yIGVhY2guCisgICAgICAgICAgICAgCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGNlaVgsIGNlaVksIGNlaVo7CisgICAgICAgICAgICAgICAgaW50IGNlWCwgY2VZLCBjZVo7CisgICAgICAgICAgICAgICAgaW50IGo7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgY2VpWCA9ICgoUnVsZUJhc2VkQ29sbGF0b3IpbXlDb2xsYXRvcikuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHgpOworICAgICAgICAgICAgICAgICAgICBjZWlZID0gKChSdWxlQmFzZWRDb2xsYXRvcilteUNvbGxhdG9yKS5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoeSk7CisgICAgICAgICAgICAgICAgICAgIGNlaVogPSAoKFJ1bGVCYXNlZENvbGxhdG9yKW15Q29sbGF0b3IpLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcih6KTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGZhaWxlZCIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgIGZvciAoaj0wOzsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNlWCA9IGNlaVgubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgY2VZID0gY2VpWS5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBjZVogPSBjZWlaLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLm5leHQgZmFpbGVkIGZvciBpdGVyYXRpb24gIiArIGopOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZiAoY2VYICE9IGNlWSB8fCBjZVkgIT0gY2VaKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHVjb2xfbmV4dCBmYWlsZWQgZm9yIGl0ZXJhdGlvbiAiICsgaik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoY2VYID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIG1haW4gdGVzdCBtZXRob2QgY2FsbGVkIHdpdGggZGlmZmVyZW50IHN0cmVuZ3RocywKKyAgICAvLyB0ZXN0cyBjb21wYXJpc29uIG9mIGN1c3R1bSBjb2xsYXRpb24gd2l0aCBkaWZmZXJlbnQgc3RyZW5ndGhzCisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGRvVGVzdChDb2xsYXRvciBjb2xsYXRpb24sIGNoYXJbXSBzb3VyY2UsIGNoYXJbXSB0YXJnZXQsIGludCByZXN1bHQpIHsKKyAgICAgICAgU3RyaW5nIHMgPSBuZXcgU3RyaW5nKHNvdXJjZSk7CisgICAgICAgIFN0cmluZyB0ID0gbmV3IFN0cmluZyh0YXJnZXQpOworICAgICAgICBkb1Rlc3RWYXJpYW50KGNvbGxhdGlvbiwgcywgdCwgcmVzdWx0KTsKKyAgICAgICAgaWYocmVzdWx0ID09IC0xKSB7CisgICAgICAgICAgICBkb1Rlc3RWYXJpYW50KGNvbGxhdGlvbiwgdCwgcywgMSk7CisgICAgICAgIH0gZWxzZSBpZihyZXN1bHQgPT0gMSkgeworICAgICAgICAgICAgZG9UZXN0VmFyaWFudChjb2xsYXRpb24sIHQsIHMsIC0xKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRvVGVzdFZhcmlhbnQoY29sbGF0aW9uLCB0LCBzLCAwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBtYWluIHRlc3QgbWV0aG9kIGNhbGxlZCB3aXRoIGRpZmZlcmVudCBzdHJlbmd0aHMsCisgICAgLy8gdGVzdHMgY29tcGFyaXNvbiBvZiBjdXN0dW0gY29sbGF0aW9uIHdpdGggZGlmZmVyZW50IHN0cmVuZ3RocworICAgIAorICAgIHByaXZhdGUgdm9pZCBkb1Rlc3QoQ29sbGF0b3IgY29sbGF0aW9uLFN0cmluZyBzLCBTdHJpbmcgdCwgaW50IHJlc3VsdCkgeworICAgICAgICBkb1Rlc3RWYXJpYW50KGNvbGxhdGlvbiwgcywgdCwgcmVzdWx0KTsKKyAgICAgICAgaWYocmVzdWx0ID09IC0xKSB7CisgICAgICAgICAgICBkb1Rlc3RWYXJpYW50KGNvbGxhdGlvbiwgdCwgcywgMSk7CisgICAgICAgIH0gZWxzZSBpZihyZXN1bHQgPT0gMSkgeworICAgICAgICAgICAgZG9UZXN0VmFyaWFudChjb2xsYXRpb24sIHQsIHMsIC0xKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRvVGVzdFZhcmlhbnQoY29sbGF0aW9uLCB0LCBzLCAwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgZG9UZXN0VmFyaWFudChDb2xsYXRvciBjb2xsYXRpb24sIFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQsIGludCByZXN1bHQpIHsKKyAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQgPSBjb2xsYXRpb24uY29tcGFyZShzb3VyY2UsIHRhcmdldCk7CisgICAgICAgIENvbGxhdGlvbktleSBzcmNrZXkgLCB0Z3RrZXk7CisgICAgICAgIHNyY2tleSA9IGNvbGxhdGlvbi5nZXRDb2xsYXRpb25LZXkoc291cmNlKTsKKyAgICAgICAgdGd0a2V5ID0gY29sbGF0aW9uLmdldENvbGxhdGlvbktleSh0YXJnZXQpOworICAgICAgICBpbnQga2V5UmVzdWx0ID0gc3Jja2V5LmNvbXBhcmVUbyh0Z3RrZXkpOworICAgICAgICBpZiAoY29tcGFyZVJlc3VsdCAhPSByZXN1bHQpIHsKKyAgICAgICAgICAgIGVycmxuKCJTdHJpbmcgY29tcGFyaXNvbiBmYWlsZWQgaW4gdmFyaWFudCB0ZXN0XG4iKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoa2V5UmVzdWx0ICE9IHJlc3VsdCkgeworICAgICAgICAgICAgZXJybG4oIkNvbGxhdGlvbiBrZXkgY29tcGFyaXNvbiBmYWlsZWQgaW4gdmFyaWFudCB0ZXN0XG4iKTsKKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uRW5nbGlzaFRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25FbmdsaXNoVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYxOGI1NGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uRW5nbGlzaFRlc3QuamF2YQpAQCAtMCwwICsxLDQzMSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAkU291cmNlOiAKKyAqICREYXRlOiAKKyAqICRSZXZpc2lvbjogCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYyLjEgOiBDb2xsYXRlL0NvbGxhdGlvbkVuZ2xpc2hUZXN0CisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9lbmNvbGwuY3BwCisgKiovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yOworIAoraW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisgCitwdWJsaWMgY2xhc3MgQ29sbGF0aW9uRW5nbGlzaFRlc3QgZXh0ZW5kcyBUZXN0Rm13a3sKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBuZXcgQ29sbGF0aW9uRW5nbGlzaFRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RTb3VyY2VDYXNlcyA9IHsKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi99LAorICAgICAgICB7MHgwMDYyIC8qICdiJyAqLywgMHgwMDZDIC8qICdsJyAqLywgMHgwMDYxIC8qICdhJyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDZCIC8qICdrJyAqLywgMHgwMDJEIC8qICctJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDY5IC8qICdpJyAqLywgMHgwMDcyIC8qICdyJyAqLywgMHgwMDY0IC8qICdkJyAqL30sCisgICAgICAgIHsweDAwNjIgLyogJ2InICovLCAweDAwNkMgLyogJ2wnICovLCAweDAwNjEgLyogJ2EnICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNkIgLyogJ2snICovLCAweDAwMjAgLyogJyAnICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjkgLyogJ2knICovLCAweDAwNzIgLyogJ3InICovLCAweDAwNjQgLyogJ2QnICovfSwKKyAgICAgICAgezB4MDA2MiAvKiAnYicgKi8sIDB4MDA2QyAvKiAnbCcgKi8sIDB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2QiAvKiAnaycgKi8sIDB4MDAyRCAvKiAnLScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2OSAvKiAnaScgKi8sIDB4MDA3MiAvKiAncicgKi8sIDB4MDA2NCAvKiAnZCcgKi99LAorICAgICAgICB7MHgwMDQ4IC8qICdIJyAqLywgMHgwMDY1IC8qICdlJyAqLywgMHgwMDZDIC8qICdsJyAqLywgMHgwMDZDIC8qICdsJyAqLywgMHgwMDZGIC8qICdvJyAqL30sCisgICAgICAgIHsweDAwNDEgLyogJ0EnICovLCAweDAwNDIgLyogJ0InICovLCAweDAwNDMgLyogJ0MnICovfSwgCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MiAvKiAnYicgKi8sIDB4MDA2QyAvKiAnbCcgKi8sIDB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2QiAvKiAnaycgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2OSAvKiAnaScgKi8sIDB4MDA3MiAvKiAncicgKi8sIDB4MDA2NCAvKiAnZCcgKi99LAorICAgICAgICB7MHgwMDYyIC8qICdiJyAqLywgMHgwMDZDIC8qICdsJyAqLywgMHgwMDYxIC8qICdhJyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDZCIC8qICdrJyAqLywgMHgwMDJEIC8qICctJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDY5IC8qICdpJyAqLywgMHgwMDcyIC8qICdyJyAqLywgMHgwMDY0IC8qICdkJyAqL30sCisgICAgICAgIHsweDAwNjIgLyogJ2InICovLCAweDAwNkMgLyogJ2wnICovLCAweDAwNjEgLyogJ2EnICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNkIgLyogJ2snICovLCAweDAwMkQgLyogJy0nICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjkgLyogJ2knICovLCAweDAwNzIgLyogJ3InICovLCAweDAwNjQgLyogJ2QnICovfSwKKyAgICAgICAgezB4MDA3MCAvKiAncCcgKi8sIDB4MDBFQSwgMHgwMDYzIC8qICdjJyAqLywgMHgwMDY4IC8qICdoJyAqLywgMHgwMDY1IC8qICdlJyAqL30sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgezB4MDA3MCAvKiAncCcgKi8sIDB4MDBFOSwgMHgwMDYzIC8qICdjJyAqLywgMHgwMDY4IC8qICdoJyAqLywgMHgwMEU5fSwKKyAgICAgICAgezB4MDBDNCwgMHgwMDQyIC8qICdCJyAqLywgMHgwMzA4LCAweDAwNDMgLyogJ0MnICovLCAweDAzMDh9LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMzA4LCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA3MCAvKiAncCcgKi8sIDB4MDBFOSwgMHgwMDYzIC8qICdjJyAqLywgMHgwMDY4IC8qICdoJyAqLywgMHgwMDY1IC8qICdlJyAqLywgMHgwMDcyIC8qICdyJyAqL30sCisgICAgICAgIHsweDAwNzIgLyogJ3InICovLCAweDAwNkYgLyogJ28nICovLCAweDAwNkMgLyogJ2wnICovLCAweDAwNjUgLyogJ2UnICovLCAweDAwNzMgLyogJ3MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDQxIC8qICdBJyAqL30sCisgICAgICAgIHsweDAwNDEgLyogJ0EnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi99LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgezB4MDA3NCAvKiAndCcgKi8sIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2RiAvKiAnbycgKi8sIDB4MDA2RCAvKiAnbScgKi8sIDB4MDA3MCAvKiAncCcgKi8sIDB4MDA2MSAvKiAnYScgKi8sIDB4MDA3MiAvKiAncicgKi8sIDB4MDA2NSAvKiAnZScgKi8sIDB4MDA3MCAvKiAncCcgKi8sIDB4MDA2QyAvKiAnbCcgKi8sIDB4MDA2MSAvKiAnYScgKi8sIDB4MDA2OSAvKiAnaScgKi8sIDB4MDA2RSAvKiAnbicgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqL30sIAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDIzIC8qICcjJyAqLywgMHgwMDYyIC8qICdiJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwMjMgLyogJyMnICovLCAweDAwNjIgLyogJ2InICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDQxIC8qICdBJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDY0IC8qICdkJyAqLywgMHgwMDYxIC8qICdhJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNjQgLyogJ2QnICovLCAweDAwNjEgLyogJ2EnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2NCAvKiAnZCcgKi8sIDB4MDA2MSAvKiAnYScgKi99LAorICAgICAgICB7MHgwMEU2LCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNjQgLyogJ2QnICovLCAweDAwNjEgLyogJ2EnICovfSwKKyAgICAgICAgezB4MDBFNCwgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDY0IC8qICdkJyAqLywgMHgwMDYxIC8qICdhJyAqL30sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNDggLyogJ0gnICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDMwOCwgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNzQgLyogJ3QnICovLCAweDAwNjggLyogJ2gnICovLCAweDAwNjkgLyogJ2knICovLCAweDAzMDIsIDB4MDA3MyAvKiAncycgKi99LAorICAgICAgICB7MHgwMDcwIC8qICdwJyAqLywgMHgwMEVBLCAweDAwNjMgLyogJ2MnICovLCAweDAwNjggLyogJ2gnICovLCAweDAwNjUgLyogJ2UnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDBFNiwgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMEU2LCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqL30sICAgICAgICAgICAgICAgCisgICAgICAgIHsweDAwNzAgLyogJ3AnICovLCAweDAwRTksIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2OCAvKiAnaCcgKi8sIDB4MDBFOX0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDQ5CisgICAgfTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0VGFyZ2V0Q2FzZXMgPSB7CisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MiAvKiAnYicgKi8sIDB4MDA2QyAvKiAnbCcgKi8sIDB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2QiAvKiAnaycgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2OSAvKiAnaScgKi8sIDB4MDA3MiAvKiAncicgKi8sIDB4MDA2NCAvKiAnZCcgKi99LAorICAgICAgICB7MHgwMDYyIC8qICdiJyAqLywgMHgwMDZDIC8qICdsJyAqLywgMHgwMDYxIC8qICdhJyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDZCIC8qICdrJyAqLywgMHgwMDJEIC8qICctJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDY5IC8qICdpJyAqLywgMHgwMDcyIC8qICdyJyAqLywgMHgwMDY0IC8qICdkJyAqL30sCisgICAgICAgIHsweDAwNjIgLyogJ2InICovLCAweDAwNkMgLyogJ2wnICovLCAweDAwNjEgLyogJ2EnICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNkIgLyogJ2snICovfSwKKyAgICAgICAgezB4MDA2OCAvKiAnaCcgKi8sIDB4MDA2NSAvKiAnZScgKi8sIDB4MDA2QyAvKiAnbCcgKi8sIDB4MDA2QyAvKiAnbCcgKi8sIDB4MDA2RiAvKiAnbycgKi99LAorICAgICAgICB7MHgwMDQxIC8qICdBJyAqLywgMHgwMDQyIC8qICdCJyAqLywgMHgwMDQzIC8qICdDJyAqL30sCisgICAgICAgIHsweDAwNDEgLyogJ0EnICovLCAweDAwNDIgLyogJ0InICovLCAweDAwNDMgLyogJ0MnICovfSwKKyAgICAgICAgezB4MDA2MiAvKiAnYicgKi8sIDB4MDA2QyAvKiAnbCcgKi8sIDB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2QiAvKiAnaycgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2OSAvKiAnaScgKi8sIDB4MDA3MiAvKiAncicgKi8sIDB4MDA2NCAvKiAnZCcgKi8sIDB4MDA3MyAvKiAncycgKi99LAorICAgICAgICB7MHgwMDYyIC8qICdiJyAqLywgMHgwMDZDIC8qICdsJyAqLywgMHgwMDYxIC8qICdhJyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDZCIC8qICdrJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDY5IC8qICdpJyAqLywgMHgwMDcyIC8qICdyJyAqLywgMHgwMDY0IC8qICdkJyAqLywgMHgwMDczIC8qICdzJyAqL30sCisgICAgICAgIHsweDAwNjIgLyogJ2InICovLCAweDAwNkMgLyogJ2wnICovLCAweDAwNjEgLyogJ2EnICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNkIgLyogJ2snICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjkgLyogJ2knICovLCAweDAwNzIgLyogJ3InICovLCAweDAwNjQgLyogJ2QnICovfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICB7MHgwMDcwIC8qICdwJyAqLywgMHgwMEU5LCAweDAwNjMgLyogJ2MnICovLCAweDAwNjggLyogJ2gnICovLCAweDAwRTl9LAorICAgICAgICB7MHgwMDcwIC8qICdwJyAqLywgMHgwMEU5LCAweDAwNjMgLyogJ2MnICovLCAweDAwNjggLyogJ2gnICovLCAweDAwNjUgLyogJ2UnICovLCAweDAwNzIgLyogJ3InICovfSwKKyAgICAgICAgezB4MDBDNCwgMHgwMDQyIC8qICdCJyAqLywgMHgwMzA4LCAweDAwNDMgLyogJ0MnICovLCAweDAzMDh9LAorICAgICAgICB7MHgwMDQxIC8qICdBJyAqLywgMHgwMzA4LCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA3MCAvKiAncCcgKi8sIDB4MDBFOSwgMHgwMDYzIC8qICdjJyAqLywgMHgwMDY4IC8qICdoJyAqLywgMHgwMDY1IC8qICdlJyAqL30sCisgICAgICAgIHsweDAwNzIgLyogJ3InICovLCAweDAwNkYgLyogJ28nICovLCAweDAzMDIsIDB4MDA2QyAvKiAnbCcgKi8sIDB4MDA2NSAvKiAnZScgKi99LAorICAgICAgICB7MHgwMDQxIC8qICdBJyAqLywgMHgwMEUxLCAweDAwNjMgLyogJ2MnICovLCAweDAwNjQgLyogJ2QnICovfSwKKyAgICAgICAgezB4MDA0MSAvKiAnQScgKi8sIDB4MDBFMSwgMHgwMDYzIC8qICdjJyAqLywgMHgwMDY0IC8qICdkJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgezB4MDA1NCAvKiAnVCcgKi8sIDB4MDA0MyAvKiAnQycgKi8sIDB4MDA2RiAvKiAnbycgKi8sIDB4MDA2RCAvKiAnbScgKi8sIDB4MDA3MCAvKiAncCcgKi8sIDB4MDA2MSAvKiAnYScgKi8sIDB4MDA3MiAvKiAncicgKi8sIDB4MDA2NSAvKiAnZScgKi8sIDB4MDA1MCAvKiAnUCcgKi8sIDB4MDA2QyAvKiAnbCcgKi8sIDB4MDA2MSAvKiAnYScgKi8sIDB4MDA2OSAvKiAnaScgKi8sIDB4MDA2RSAvKiAnbicgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDQyIC8qICdCJyAqLywgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwMjMgLyogJyMnICovLCAweDAwNDIgLyogJ0InICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDAyNiAvKiAnJicgKi8sIDB4MDA2MiAvKiAnYicgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDIzIC8qICcjJyAqLywgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNjQgLyogJ2QnICovLCAweDAwNjEgLyogJ2EnICovfSwKKyAgICAgICAgezB4MDBDNCwgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDY0IC8qICdkJyAqLywgMHgwMDYxIC8qICdhJyAqL30sCisgICAgICAgIHsweDAwRTQsIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2NCAvKiAnZCcgKi8sIDB4MDA2MSAvKiAnYScgKi99LAorICAgICAgICB7MHgwMEM0LCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNjQgLyogJ2QnICovLCAweDAwNjEgLyogJ2EnICovfSwKKyAgICAgICAgezB4MDBDNCwgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDY0IC8qICdkJyAqLywgMHgwMDYxIC8qICdhJyAqL30sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjIgLyogJ2InICovLCAweDAwMjMgLyogJyMnICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDNEIC8qICc9JyAqLywgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjQgLyogJ2QnICovfSwKKyAgICAgICAgezB4MDBFNCwgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNDMgLyogJ0MnICovLCAweDAwNDggLyogJ0gnICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDBFNCwgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNzQgLyogJ3QnICovLCAweDAwNjggLyogJ2gnICovLCAweDAwRUUsIDB4MDA3MyAvKiAncycgKi99LAorICAgICAgICB7MHgwMDcwIC8qICdwJyAqLywgMHgwMEU5LCAweDAwNjMgLyogJ2MnICovLCAweDAwNjggLyogJ2gnICovLCAweDAwRTl9LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDQyIC8qICdCJyAqLywgMHgwMDQzIC8qICdDJyAqL30sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDY0IC8qICdkJyAqL30sCisgICAgICAgIHsweDAwRTQsIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMEM2LCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA0MiAvKiAnQicgKi8sIDB4MDA2NCAvKiAnZCcgKi99LAorICAgICAgICB7MHgwMEU0LCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDBDNiwgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNDIgLyogJ0InICovLCAweDAwNjQgLyogJ2QnICovfSwKKyAgICAgICAgezB4MDBFNCwgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqL30sICAgICAgICAgIAorICAgICAgICB7MHgwMDcwIC8qICdwJyAqLywgMHgwMEVBLCAweDAwNjMgLyogJ2MnICovLCAweDAwNjggLyogJ2gnICovLCAweDAwNjUgLyogJ2UnICovfQorICAgIH07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDQ5CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSByZXN1bHRzID0geworICAgIC8vLTE6TEVTUzsgMDpFUVVBTDsgMTpHUkVBVEVSCisgICAgICAgIC0xLCAKKyAgICAgICAgLTEsIC8qQ29sbGF0b3I6OkdSRUFURVIsKi8KKyAgICAgICAgLTEsCisgICAgICAgIDEsCisgICAgICAgIDEsCisgICAgICAgIDAsCisgICAgICAgIC0xLAorICAgICAgICAtMSwKKyAgICAgICAgLTEsCisgICAgICAgIC0xLCAvKkNvbGxhdG9yOjpHUkVBVEVSLCovICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDEwICovCisgICAgICAgIDEsCisgICAgICAgIC0xLAorICAgICAgICAwLAorICAgICAgICAtMSwKKyAgICAgICAgMSwKKyAgICAgICAgMSwKKyAgICAgICAgMSwKKyAgICAgICAgLTEsCisgICAgICAgIC0xLAorICAgICAgICAtMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMjAgKi8KKyAgICAgICAgLTEsCisgICAgICAgIC0xLAorICAgICAgICAtMSwKKyAgICAgICAgMSwKKyAgICAgICAgMSwKKyAgICAgICAgMSwKKyAgICAgICAgLyogVGVzdCBUZXJ0aWFyeSAgPiAyNiAqLworICAgICAgICAtMSwKKyAgICAgICAgLTEsCisgICAgICAgIDEsCisgICAgICAgIC0xLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMCAqLworICAgICAgICAxLAorICAgICAgICAwLAorICAgICAgICAxLAorICAgICAgICAtMSwKKyAgICAgICAgLTEsCisgICAgICAgIC0xLAorICAgICAgICAvKiB0ZXN0IGlkZW50aWNhbCA+IDM2ICovCisgICAgICAgIDAsCisgICAgICAgIDAsCisgICAgICAgIC8qIHRlc3QgcHJpbWFyeSA+IDM4ICovCisgICAgICAgIDAsCisgICAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogNDAgKi8KKyAgICAgICAgLTEsCisgICAgICAgIDAsCisgICAgICAgIDAsCisgICAgICAgIC8qIHRlc3Qgc2Vjb25kYXJ5ID4gNDMgKi8KKyAgICAgICAgLTEsCisgICAgICAgIC0xLAorICAgICAgICAwLAorICAgICAgICAtMSwKKyAgICAgICAgLTEsIAorICAgICAgICAtMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDQ5CisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGNoYXIgW11bXSB0ZXN0QnVncyA9IHsKKyAgICAgICAgezB4NjF9LAorICAgICAgICB7MHg0MX0sCisgICAgICAgIHsweDY1fSwKKyAgICAgICAgezB4NDV9LAorICAgICAgICB7MHgwMGU5fSwKKyAgICAgICAgezB4MDBlOH0sCisgICAgICAgIHsweDAwZWF9LAorICAgICAgICB7MHgwMGVifSwKKyAgICAgICAgezB4NjUsIDB4NjF9LAorICAgICAgICB7MHg3OH0KKyAgICB9OworCisgICAgLy8gMHgwMzAwIGlzIGdyYXZlLCAweDAzMDEgaXMgYWN1dGUKKyAgICAvLyB0aGUgb3JkZXIgb2YgZWxlbWVudHMgaW4gdGhpcyBhcnJheSBtdXN0IGJlIGRpZmZlcmVudCB0aGFuIHRoZSBvcmRlciBpbiBDb2xsYXRpb25GcmVuY2hUZXN0CisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdEFjdXRlID0geworICAgICAgICB7MHg2NSwgMHg2NX0sCisgICAgICAgIHsweDY1LCAweDY1LCAweDAzMDF9LAorICAgICAgICB7MHg2NSwgMHg2NSwgMHgwMzAxLCAweDAzMDB9LAorICAgICAgICB7MHg2NSwgMHg2NSwgMHgwMzAwfSwKKyAgICAgICAgezB4NjUsIDB4NjUsIDB4MDMwMCwgMHgwMzAxfSwKKyAgICAgICAgezB4NjUsIDB4MDMwMSwgMHg2NX0sCisgICAgICAgIHsweDY1LCAweDAzMDEsIDB4NjUsIDB4MDMwMX0sCisgICAgICAgIHsweDY1LCAweDAzMDEsIDB4NjUsIDB4MDMwMSwgMHgwMzAwfSwKKyAgICAgICAgezB4NjUsIDB4MDMwMSwgMHg2NSwgMHgwMzAwfSwKKyAgICAgICAgezB4NjUsIDB4MDMwMSwgMHg2NSwgMHgwMzAwLCAweDAzMDF9LAorICAgICAgICB7MHg2NSwgMHgwMzAxLCAweDAzMDAsIDB4NjV9LAorICAgICAgICB7MHg2NSwgMHgwMzAxLCAweDAzMDAsIDB4NjUsIDB4MDMwMX0sCisgICAgICAgIHsweDY1LCAweDAzMDEsIDB4MDMwMCwgMHg2NSwgMHgwMzAxLCAweDAzMDB9LAorICAgICAgICB7MHg2NSwgMHgwMzAxLCAweDAzMDAsIDB4NjUsIDB4MDMwMH0sCisgICAgICAgIHsweDY1LCAweDAzMDEsIDB4MDMwMCwgMHg2NSwgMHgwMzAwLCAweDAzMDF9LAorICAgICAgICB7MHg2NSwgMHgwMzAwLCAweDY1fSwKKyAgICAgICAgezB4NjUsIDB4MDMwMCwgMHg2NSwgMHgwMzAxfSwKKyAgICAgICAgezB4NjUsIDB4MDMwMCwgMHg2NSwgMHgwMzAxLCAweDAzMDB9LAorICAgICAgICB7MHg2NSwgMHgwMzAwLCAweDY1LCAweDAzMDB9LAorICAgICAgICB7MHg2NSwgMHgwMzAwLCAweDY1LCAweDAzMDAsIDB4MDMwMX0sCisgICAgICAgIHsweDY1LCAweDAzMDAsIDB4MDMwMSwgMHg2NX0sCisgICAgICAgIHsweDY1LCAweDAzMDAsIDB4MDMwMSwgMHg2NSwgMHgwMzAxfSwKKyAgICAgICAgezB4NjUsIDB4MDMwMCwgMHgwMzAxLCAweDY1LCAweDAzMDEsIDB4MDMwMH0sCisgICAgICAgIHsweDY1LCAweDAzMDAsIDB4MDMwMSwgMHg2NSwgMHgwMzAwfSwKKyAgICAgICAgezB4NjUsIDB4MDMwMCwgMHgwMzAxLCAweDY1LCAweDAzMDAsIDB4MDMwMX0KKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdE1vcmUgPSB7CisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjUgLyogJ2UnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2NiAvKiAnZicgKi99LAorICAgICAgICB7IDB4MDBFNn0sCisgICAgICAgIHsgMHgwMEM2fSwKKyAgICAgICAgezB4MDA2RiAvKiAnbycgKi8sIDB4MDA2NSAvKiAnZScgKi99LAorICAgICAgICB7IDB4MDE1M30sCisgICAgICAgIHsgMHgwMTUyfSwKKyAgICAgICAgezB4MDA2RiAvKiAnbycgKi8sIDB4MDA2NiAvKiAnZicgKi99LAorICAgIH07CisgICAgCisgICAgcHJpdmF0ZSBDb2xsYXRvciBteUNvbGxhdGlvbiA9IG51bGw7CisgICAgCisgICAgcHVibGljIENvbGxhdGlvbkVuZ2xpc2hUZXN0KCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgbXlDb2xsYXRpb24gPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIH0gY2F0Y2goRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogaW4gY3JlYXRpb24gb2YgY29sbGF0b3Igb2YgRU5HTElTSCBsb2NhbGUiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfSAKKyAgICB9CisgICAgCisgICAgCisgICAgLy9wZXJmb3JtcyB0ZXN0IHdpdGggc3RyZW5ndGggUFJJTUFSWQorICAgIHB1YmxpYyB2b2lkIFRlc3RQcmltYXJ5KCkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgIGZvciAoaSA9IDM4OyBpIDwgNDMgOyBpKyspIHsKKyAgICAgICAgICAgIGRvVGVzdCh0ZXN0U291cmNlQ2FzZXNbMzldLCB0ZXN0VGFyZ2V0Q2FzZXNbMzldLCByZXN1bHRzWzM5XSk7CisgICAgICAgIH0gIAorICAgIH0KKyAgICAKKyAgICAvL3BlcmZvcm0gdGVzdCB3aXRoIHN0cmVuZ3RoIFNFQ09OREFSWQorICAgIHB1YmxpYyB2b2lkIFRlc3RTZWNvbmRhcnkoKSB7CisgICAgICAgIGludCBpOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5TRUNPTkRBUlkpOworICAgICAgICBmb3IgKGkgPSA0MzsgaSA8IDQ5IDsgaSsrKSB7CisgICAgICAgICAgICBkb1Rlc3QodGVzdFNvdXJjZUNhc2VzW2ldLCB0ZXN0VGFyZ2V0Q2FzZXNbaV0sIHJlc3VsdHNbaV0pOworICAgICAgICB9CisKKyAgICAgICAgLy90ZXN0IGFjdXRlIGFuZCBncmF2ZSBvcmRlcmluZyAoY29tcGFyZSB0byBmcmVuY2ggY29sbGF0aW9uKQorICAgICAgICBpbnQgajsKKyAgICAgICAgaW50IGV4cGVjdGVkOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdGVzdEFjdXRlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgdGVzdEFjdXRlLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oImkgPSAiICsgaSArICI7IGogPSAiICsgaik7CisgICAgICAgICAgICAgICAgaWYgKGkgPCAgaikKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSAtMTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChpID09IGopCisgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gMDsKKyAgICAgICAgICAgICAgICBlbHNlIC8vIChpID4gIGopCisgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gMTsKKyAgICAgICAgICAgICAgICBkb1Rlc3QodGVzdEFjdXRlW2ldLCB0ZXN0QWN1dGVbal0sIGV4cGVjdGVkICk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy9wZXJmb3JtIHRlc3Qgd2l0aCBzdHJlbmd0aCBURVJUSUFSWQorICAgIHB1YmxpYyB2b2lkIFRlc3RUZXJ0aWFyeSgpIHsKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIC8vZm9yIChpID0gMDsgaSA8IDM4IDsgaSsrKSAgLy9hdHRlbnRpb246IHRoZXJlIGlzIHNvbWV0aGluZyB3cm9uZyB3aXRoIDM2LCAzNy4KKyAgICAgICAgZm9yIChpID0gMDsgaSA8IDM4IDsgaSsrKQorICAgICAgICB7CisgICAgICAgICAgICBkb1Rlc3QodGVzdFNvdXJjZUNhc2VzW2ldLCB0ZXN0VGFyZ2V0Q2FzZXNbaV0sIHJlc3VsdHNbaV0pOworICAgICAgICB9IAorCisgICAgICAgIGludCBqID0gMDsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IDEwOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIGZvciAoaiA9IGkrMTsgaiA8IDEwOyBqKyspCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZG9UZXN0KHRlc3RCdWdzW2ldLCB0ZXN0QnVnc1tqXSwgLTEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy90ZXN0IG1vcmUgaW50ZXJlc3RpbmcgY2FzZXMKKyAgICAgICAgaW50IGV4cGVjdGVkOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdGVzdE1vcmUubGVuZ3RoOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCB0ZXN0TW9yZS5sZW5ndGg7IGorKykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAoaSA8ICBqKQorICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCA9IC0xOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKGkgPT0gaikKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSAwOworICAgICAgICAgICAgICAgIGVsc2UgLy8gKGkgPiAgaikKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSAxOworICAgICAgICAgICAgICAgIGRvVGVzdCh0ZXN0TW9yZVtpXSwgdGVzdE1vcmVbal0sIGV4cGVjdGVkICk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAvLyBtYWluIHRlc3Qgcm91dGluZSwgdGVzdHMgcnVsZXMgZGVmaW5lZCBieSB0aGUgImVuIiBsb2NhbGUKKyAgICBwcml2YXRlIHZvaWQgZG9UZXN0KGNoYXJbXSBzb3VyY2UsIGNoYXJbXSB0YXJnZXQsIGludCByZXN1bHQpeworICAgICAgICAKKyAgICAgICAgU3RyaW5nIHMgPSBuZXcgU3RyaW5nKHNvdXJjZSk7CisgICAgICAgIFN0cmluZyB0ID0gbmV3IFN0cmluZyh0YXJnZXQpOworICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCA9IG15Q29sbGF0aW9uLmNvbXBhcmUocywgdCk7CisgICAgICAgIENvbGxhdGlvbktleSBzb3J0S2V5MSwgc29ydEtleTI7CisgICAgICAgIHNvcnRLZXkxID0gbXlDb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHMpOworICAgICAgICBzb3J0S2V5MiA9IG15Q29sbGF0aW9uLmdldENvbGxhdGlvbktleSh0KTsKKyAgICAgICAgaW50IGtleVJlc3VsdCA9IHNvcnRLZXkxLmNvbXBhcmVUbyhzb3J0S2V5Mik7CisgICAgICAgIHJlcG9ydENSZXN1bHQocywgdCwgc29ydEtleTEsIHNvcnRLZXkyLCBjb21wYXJlUmVzdWx0LCBrZXlSZXN1bHQsIGNvbXBhcmVSZXN1bHQsIHJlc3VsdCk7CisgICAgICAgIAorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcmVwb3J0Q1Jlc3VsdCggU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCwgQ29sbGF0aW9uS2V5IHNvdXJjZUtleSwgQ29sbGF0aW9uS2V5IHRhcmdldEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQsIGludCBrZXlSZXN1bHQsIGludCBpbmNSZXN1bHQsIGludCBleHBlY3RlZFJlc3VsdCApeworICAgICAgICBpZiAoZXhwZWN0ZWRSZXN1bHQgPCAtMSB8fCBleHBlY3RlZFJlc3VsdCA+IDEpCisgICAgICAgIHsKKyAgICAgICAgICAgIGVycmxuKCIqKioqKiBpbnZhbGlkIGNhbGwgdG8gcmVwb3J0Q1Jlc3VsdCAqKioqIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBib29sZWFuIG9rMSA9IChjb21wYXJlUmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgYm9vbGVhbiBvazIgPSAoa2V5UmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgYm9vbGVhbiBvazMgPSAoaW5jUmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKworICAgICAgICBpZiAob2sxICYmIG9rMiAmJiBvazMgJiYgIWlzVmVyYm9zZSgpKXsKKyAgICAgICAgICAgIHJldHVybjsgICAgCisgICAgICAgIH1lbHNleworICAgICAgICAgICAgU3RyaW5nIG1zZzEgPSBvazE/ICJPazogY29tcGFyZShcIiIgOiAiRkFJTDogY29tcGFyZShcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgU3RyaW5nIG1zZzMgPSAiXCIpIHJldHVybmVkICI7CisgICAgICAgICAgICBTdHJpbmcgbXNnNCA9ICI7IGV4cGVjdGVkICI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBzRXhwZWN0ID0gbmV3IFN0cmluZygiIik7CisgICAgICAgICAgICBTdHJpbmcgc1Jlc3VsdCA9IG5ldyBTdHJpbmcoIiIpOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoY29tcGFyZVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBzRXhwZWN0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChleHBlY3RlZFJlc3VsdCwgc0V4cGVjdCk7CisgICAgICAgICAgICBpZiAob2sxKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1zZzEgPSBvazIgPyAiT2s6IGtleShcIiIgOiAiRkFJTDoga2V5KFwiIjsKKyAgICAgICAgICAgIG1zZzIgPSAiXCIpLmNvbXBhcmVUbyhrZXkoXCIiOworICAgICAgICAgICAgbXNnMyA9ICJcIikpIHJldHVybmVkICI7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChrZXlSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgaWYgKG9rMikgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgICAgIG1zZzEgPSAiICAiOworICAgICAgICAgICAgICAgIG1zZzIgPSAiIHZzLiAiOworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBwcmV0dGlmeShzb3VyY2VLZXkpICsgbXNnMiArIHByZXR0aWZ5KHRhcmdldEtleSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBtc2cxID0gb2szID8gIk9rOiBpbmNDb21wYXJlKFwiIiA6ICJGQUlMOiBpbmNDb21wYXJlKFwiIjsKKyAgICAgICAgICAgIG1zZzIgPSAiXCIsIFwiIjsKKyAgICAgICAgICAgIG1zZzMgPSAiXCIpIHJldHVybmVkICI7CisKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGluY1Jlc3VsdCwgc1Jlc3VsdCk7CisKKyAgICAgICAgICAgIGlmIChvazMpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgYXBwZW5kQ29tcGFyZVJlc3VsdChpbnQgcmVzdWx0LCBTdHJpbmcgdGFyZ2V0KXsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSAtMSkgICAvL0xFU1MKKyAgICAgICAgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJMRVNTIjsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChyZXN1bHQgPT0gMCkgICAvL0VRVUFMCisgICAgICAgIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiRVFVQUwiOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHJlc3VsdCA9PSAxKSAgIC8vR1JFQVRFUgorICAgICAgICB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkdSRUFURVIiOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgU3RyaW5nIGh1aCA9ICI/IjsKKworICAgICAgICAgICAgdGFyZ2V0ICs9IGh1aCArIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KKyAgICAKKyAgICBTdHJpbmcgcHJldHRpZnkoQ29sbGF0aW9uS2V5IHNvdXJjZUtleSkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgYnl0ZVtdIGJ5dGVzPSBzb3VyY2VLZXkudG9CeXRlQXJyYXkoKTsKKyAgICAgICAgU3RyaW5nIHRhcmdldCA9ICJbIjsKKyAgICAKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGJ5dGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gSW50ZWdlci50b0hleFN0cmluZyhieXRlc1tpXSk7CisgICAgICAgICAgICB0YXJnZXQgKz0gIiAiOworICAgICAgICB9CisgICAgICAgIHRhcmdldCArPSAiXSI7CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorIH0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uRmlubmlzaFRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25GaW5uaXNoVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiZmNlZGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uRmlubmlzaFRlc3QuamF2YQpAQCAtMCwwICsxLDE3OCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAkU291cmNlOiAKKyAqICREYXRlOiAKKyAqICRSZXZpc2lvbjogCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYyLjEgOiBDb2xsYXRlL0NvbGxhdGlvbkZpbm5pc2hUZXN0CisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9maWNvbGwuY3BwCisgKiovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yOworIAoraW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisgCitwdWJsaWMgY2xhc3MgQ29sbGF0aW9uRmlubmlzaFRlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBDb2xsYXRpb25GaW5uaXNoVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdFNvdXJjZUNhc2VzID0geworICAgICAgICB7MHg3NywgMHg2MSwgMHg3NH0sCisgICAgICAgIHsweDc2LCAweDYxLCAweDc0fSwKKyAgICAgICAgezB4NjEsIDB4MDBGQywgMHg2MiwgMHg2NSwgMHg2MywgMHg2Yn0sCisgICAgICAgIHsweDRjLCAweDAwRTUsIDB4NzYsIDB4Njl9LAorICAgICAgICB7MHg3NywgMHg2MSwgMHg3NH0KKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdFRhcmdldENhc2VzID0geworICAgICAgICB7MHg3NiwgMHg2MSwgMHg3NH0sCisgICAgICAgIHsweDc3LCAweDYxLCAweDc5fSwKKyAgICAgICAgezB4NjEsIDB4NzgsIDB4NjIsIDB4NjUsIDB4NjMsIDB4NmJ9LAorICAgICAgICB7MHg0YywgMHgwMEU0LCAweDc3LCAweDY1fSwKKyAgICAgICAgezB4NzYsIDB4NjEsIDB4NzR9CisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGludFtdIHJlc3VsdHMgPSB7CisgICAgICAgIDEsCisgICAgICAgIC0xLAorICAgICAgICAxLAorICAgICAgICAtMSwKKyAgICAgICAgLy8gdGVzdCBwcmltYXJ5ID4gNAorICAgICAgICAwLAorICAgIH07CisKKyAgICBwcml2YXRlIENvbGxhdG9yIG15Q29sbGF0aW9uID0gbnVsbDsKKyAgICAKKyAgICBwdWJsaWMgQ29sbGF0aW9uRmlubmlzaFRlc3QoKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBteUNvbGxhdGlvbiA9IENvbGxhdG9yLmdldEluc3RhbmNlKG5ldyBMb2NhbGUoImZpIiwgIkZJIikpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBpbiBjcmVhdGlvbiBvZiBjb2xsYXRvciBvZiBGSU5OSVNIIGxvY2FsZSIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIHBlcmZvcm0gdGVzdHMgd2l0aCBzdHJlbmd0aCBQUklNQVJZCisgICAgcHVibGljIHZvaWQgVGVzdFByaW1hcnkoKSB7CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgIGZvcihpID0gNDsgaSA8IDU7IGkrKykgeworICAgICAgICAgICAgZG9UZXN0KHRlc3RTb3VyY2VDYXNlc1tpXSwgdGVzdFRhcmdldENhc2VzW2ldLCByZXN1bHRzW2ldKTsgICAgCisgICAgICAgIH0gICAgICAgICAKKyAgICB9CisgICAgCisgICAgLy8gcGVyZm9ybSB0ZXN0IHdpdGggc3RyZW5ndGggVEVSVElBUlkKKyAgICBwdWJsaWMgdm9pZCBUZXN0VGVydGlhcnkoKSB7CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICBmb3IoaSA9IDA7IGkgPCA0OyBpKysgKSB7CisgICAgICAgICAgICBkb1Rlc3QodGVzdFNvdXJjZUNhc2VzW2ldLCB0ZXN0VGFyZ2V0Q2FzZXNbaV0sIHJlc3VsdHNbaV0pOworICAgICAgICB9ICAgIAorICAgIH0KKyAgICAKKyAgICAvLyBtYWluIHRlc3Qgcm91dGluZSwgdGVzdHMgcnVsZXMgc3BlY2lmaWMgdG8gdGhlIGZpbmlzaCBsb2NhbGUKKyAgICBwcml2YXRlIHZvaWQgZG9UZXN0KGNoYXJbXSBzb3VyY2UsIGNoYXJbXSB0YXJnZXQsIGludCByZXN1bHQpIHsKKyAgICAgICAgU3RyaW5nIHMgPSBuZXcgU3RyaW5nKHNvdXJjZSk7CisgICAgICAgIFN0cmluZyB0ID0gbmV3IFN0cmluZyh0YXJnZXQpOworICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCA9IG15Q29sbGF0aW9uLmNvbXBhcmUocywgdCk7CisgICAgICAgIENvbGxhdGlvbktleSBzb3J0S2V5MSwgc29ydEtleTI7CisgICAgICAgIHNvcnRLZXkxID0gbXlDb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHMpOworICAgICAgICBzb3J0S2V5MiA9IG15Q29sbGF0aW9uLmdldENvbGxhdGlvbktleSh0KTsKKyAgICAgICAgaW50IGtleVJlc3VsdCA9IHNvcnRLZXkxLmNvbXBhcmVUbyhzb3J0S2V5Mik7CisgICAgICAgIHJlcG9ydENSZXN1bHQocywgdCwgc29ydEtleTEsIHNvcnRLZXkyLCBjb21wYXJlUmVzdWx0LCBrZXlSZXN1bHQsIGNvbXBhcmVSZXN1bHQsIHJlc3VsdCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCByZXBvcnRDUmVzdWx0KCBTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0LCBDb2xsYXRpb25LZXkgc291cmNlS2V5LCBDb2xsYXRpb25LZXkgdGFyZ2V0S2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCwgaW50IGtleVJlc3VsdCwgaW50IGluY1Jlc3VsdCwgaW50IGV4cGVjdGVkUmVzdWx0ICkgeworICAgICAgICBpZiAoZXhwZWN0ZWRSZXN1bHQgPCAtMSB8fCBleHBlY3RlZFJlc3VsdCA+IDEpIHsKKyAgICAgICAgICAgIGVycmxuKCIqKioqKiBpbnZhbGlkIGNhbGwgdG8gcmVwb3J0Q1Jlc3VsdCAqKioqIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBib29sZWFuIG9rMSA9IChjb21wYXJlUmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgYm9vbGVhbiBvazIgPSAoa2V5UmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgYm9vbGVhbiBvazMgPSAoaW5jUmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKworICAgICAgICBpZiAob2sxICYmIG9rMiAmJiBvazMgJiYgIWlzVmVyYm9zZSgpKSB7CisgICAgICAgICAgICByZXR1cm47ICAgIAorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIG1zZzEgPSBvazE/ICJPazogY29tcGFyZShcIiIgOiAiRkFJTDogY29tcGFyZShcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgU3RyaW5nIG1zZzMgPSAiXCIpIHJldHVybmVkICI7CisgICAgICAgICAgICBTdHJpbmcgbXNnNCA9ICI7IGV4cGVjdGVkICI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBzRXhwZWN0ID0gbmV3IFN0cmluZygiIik7CisgICAgICAgICAgICBTdHJpbmcgc1Jlc3VsdCA9IG5ldyBTdHJpbmcoIiIpOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoY29tcGFyZVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBzRXhwZWN0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChleHBlY3RlZFJlc3VsdCwgc0V4cGVjdCk7CisgICAgICAgICAgICBpZiAob2sxKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1zZzEgPSBvazIgPyAiT2s6IGtleShcIiIgOiAiRkFJTDoga2V5KFwiIjsKKyAgICAgICAgICAgIG1zZzIgPSAiXCIpLmNvbXBhcmVUbyhrZXkoXCIiOworICAgICAgICAgICAgbXNnMyA9ICJcIikpIHJldHVybmVkICI7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChrZXlSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgaWYgKG9rMikgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgICAgIG1zZzEgPSAiICAiOworICAgICAgICAgICAgICAgIG1zZzIgPSAiIHZzLiAiOworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBwcmV0dGlmeShzb3VyY2VLZXkpICsgbXNnMiArIHByZXR0aWZ5KHRhcmdldEtleSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBtc2cxID0gb2szID8gIk9rOiBpbmNDb21wYXJlKFwiIiA6ICJGQUlMOiBpbmNDb21wYXJlKFwiIjsKKyAgICAgICAgICAgIG1zZzIgPSAiXCIsIFwiIjsKKyAgICAgICAgICAgIG1zZzMgPSAiXCIpIHJldHVybmVkICI7CisKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGluY1Jlc3VsdCwgc1Jlc3VsdCk7CisKKyAgICAgICAgICAgIGlmIChvazMpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgIH0gICAgICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBhcHBlbmRDb21wYXJlUmVzdWx0KGludCByZXN1bHQsIFN0cmluZyB0YXJnZXQpIHsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSAtMSkgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJMRVNTIjsKKyAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gMCkgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJFUVVBTCI7CisgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IDEpIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiR1JFQVRFUiI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgaHVoID0gIj8iOworICAgICAgICAgICAgdGFyZ2V0ICs9IGh1aCArIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KKyAgICAKKyAgICBTdHJpbmcgcHJldHRpZnkoQ29sbGF0aW9uS2V5IHNvdXJjZUtleSkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgYnl0ZVtdIGJ5dGVzPSBzb3VyY2VLZXkudG9CeXRlQXJyYXkoKTsKKyAgICAgICAgU3RyaW5nIHRhcmdldCA9ICJbIjsKKyAgICAKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGJ5dGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gSW50ZWdlci50b0hleFN0cmluZyhieXRlc1tpXSk7CisgICAgICAgICAgICB0YXJnZXQgKz0gIiAiOworICAgICAgICB9CisgICAgICAgIHRhcmdldCArPSAiXSI7CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorfQorICAgIApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25GcmVuY2hUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uRnJlbmNoVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjOTY1NWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uRnJlbmNoVGVzdC5qYXZhCkBAIC0wLDAgKzEsMjY4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICRTb3VyY2U6IAorICogJERhdGU6IAorICogJFJldmlzaW9uOiAKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjIuMSA6IENvbGxhdGUvQ29sbGF0aW9uRnJlbmNoVGVzdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3QvZnJjb2xsLmNwcAorICoqLworIAorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvcjsKKyAKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworIAorcHVibGljIGNsYXNzIENvbGxhdGlvbkZyZW5jaFRlc3QgZXh0ZW5kcyBUZXN0Rm13a3sKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IENvbGxhdGlvbkZyZW5jaFRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RTb3VyY2VDYXNlcyA9IHsKKyAgICAgICAgezB4MDA2MS8qJ2EnKi8sIDB4MDA2Mi8qJ2InKi8sIDB4MDA2My8qJ2MnKi99LAorICAgICAgICB7MHgwMDQzLyonQycqLywgMHgwMDRmLyonTycqLywgMHgwMDU0LyonVCcqLywgMHgwMDQ1LyonRScqL30sCisgICAgICAgIHsweDAwNjMvKidjJyovLCAweDAwNmYvKidvJyovLCAweDAwMmQvKictJyovLCAweDAwNmYvKidvJyovLCAweDAwNzAvKidwJyovfSwKKyAgICAgICAgezB4MDA3MC8qJ3AnKi8sIDB4MDBFQSwgMHgwMDYzLyonYycqLywgMHgwMDY4LyonaCcqLywgMHgwMDY1LyonZScqL30sCisgICAgICAgIHsweDAwNzAvKidwJyovLCAweDAwRUEsIDB4MDA2My8qJ2MnKi8sIDB4MDA2OC8qJ2gnKi8sIDB4MDA2NS8qJ2UnKi8sIDB4MDA3Mi8qJ3InKi99LAorICAgICAgICB7MHgwMDcwLyoncCcqLywgMHgwMEU5LCAweDAwNjMvKidjJyovLCAweDAwNjgvKidoJyovLCAweDAwNjUvKidlJyovLCAweDAwNzIvKidyJyovfSwKKyAgICAgICAgezB4MDA3MC8qJ3AnKi8sIDB4MDBFOSwgMHgwMDYzLyonYycqLywgMHgwMDY4LyonaCcqLywgMHgwMDY1LyonZScqLywgMHgwMDcyLyoncicqL30sCisgICAgICAgIHsweDAwNDgvKidIJyovLCAweDAwNjUvKidlJyovLCAweDAwNmMvKidsJyovLCAweDAwNmMvKidsJyovLCAweDAwNmYvKidvJyovfSwKKyAgICAgICAgezB4MDFmMX0sCisgICAgICAgIHsweGZiMDB9LAorICAgICAgICB7MHgwMWZhfSwKKyAgICAgICAgezB4MDEwMX0KKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdFRhcmdldENhc2VzID0geworICAgICAgICB7MHgwMDQxLyonQScqLywgMHgwMDQyLyonQicqLywgMHgwMDQzLyonQycqL30sCisgICAgICAgIHsweDAwNjMvKidjJyovLCAweDAwZjQsIDB4MDA3NC8qJ3QnKi8sIDB4MDA2NS8qJ2UnKi99LAorICAgICAgICB7MHgwMDQzLyonQycqLywgMHgwMDRmLyonTycqLywgMHgwMDRmLyonTycqLywgMHgwMDUwLyonUCcqL30sCisgICAgICAgIHsweDAwNzAvKidwJyovLCAweDAwRTksIDB4MDA2My8qJ2MnKi8sIDB4MDA2OC8qJ2gnKi8sIDB4MDBFOX0sCisgICAgICAgIHsweDAwNzAvKidwJyovLCAgMHgwMEU5LCAweDAwNjMvKidjJyovLCAweDAwNjgvKidoJyovLCAweDAwRTl9LAorICAgICAgICB7MHgwMDcwLyoncCcqLywgMHgwMEVBLCAweDAwNjMvKidjJyovLCAweDAwNjgvKidoJyovLCAweDAwNjUvKidlJyovfSwKKyAgICAgICAgezB4MDA3MC8qJ3AnKi8sIDB4MDBFQSwgMHgwMDYzLyonYycqLywgMHgwMDY4LyonaCcqLywgMHgwMDY1LyonZScqLywgMHgwMDcyLyoncicqL30sCisgICAgICAgIHsweDAwNjgvKidoJyovLCAweDAwNjUvKidlJyovLCAweDAwNmMvKidsJyovLCAweDAwNmMvKidsJyovLCAweDAwNGYvKidPJyovfSwKKyAgICAgICAgezB4MDFlZX0sCisgICAgICAgIHsweDI1Y2F9LAorICAgICAgICB7MHgwMGUwfSwKKyAgICAgICAgezB4MDFkZn0KKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50W10gcmVzdWx0cyA9IHsKKyAgICAgICAgLTEsCisgICAgICAgIC0xLAorICAgICAgICAtMSwgLypDb2xsYXRvcjo6R1JFQVRFUiwqLworICAgICAgICAtMSwKKyAgICAgICAgMSwKKyAgICAgICAgMSwKKyAgICAgICAgLTEsCisgICAgICAgIDEsCisgICAgICAgLTEsIC8qQ29sbGF0b3I6OkdSRUFURVIsKi8KKyAgICAgICAgMSwKKyAgICAgICAgLTEsCisgICAgICAgIC0xCisgICAgfTsKKworICAgIC8vIDB4MDMwMCBpcyBncmF2ZSwgMHgwMzAxIGlzIGFjdXRlCisgICAgLy8gdGhlIG9yZGVyIG9mIGVsZW1lbnRzIGluIHRoaXMgYXJyYXkgbXVzdCBiZSBkaWZmZXJlbnQgdGhhbiB0aGUgb3JkZXIgaW4gQ29sbGF0aW9uRW5nbGlzaFRlc3QKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0QWN1dGUgPSB7CisgICAgLyowMCovICAgIHsweDAwNjUvKidlJyovLCAweDAwNjUvKidlJyovfSwKKyAgICAvKjAxKi8gICAgezB4MDA2NS8qJ2UnKi8sIDB4MDMwMSwgMHgwMDY1LyonZScqL30sCisgICAgLyowMiovICAgIHsweDAwNjUvKidlJyovLCAweDAzMDAsIDB4MDMwMSwgMHgwMDY1LyonZScqL30sCisgICAgLyowMyovICAgIHsweDAwNjUvKidlJyovLCAweDAzMDAsIDB4MDA2NS8qJ2UnKi99LAorICAgIC8qMDQqLyAgICB7MHgwMDY1LyonZScqLywgMHgwMzAxLCAweDAzMDAsIDB4MDA2NS8qJ2UnKi99LAorICAgIC8qMDUqLyAgICB7MHgwMDY1LyonZScqLywgMHgwMDY1LyonZScqLywgMHgwMzAxfSwgCisgICAgLyowNiovICAgIHsweDAwNjUvKidlJyovLCAweDAzMDEsIDB4MDA2NS8qJ2UnKi8sIDB4MDMwMX0sCisgICAgLyowNyovICAgIHsweDAwNjUvKidlJyovLCAweDAzMDAsIDB4MDMwMSwgMHgwMDY1LyonZScqLywgMHgwMzAxfSwKKyAgICAvKjA4Ki8gICAgezB4MDA2NS8qJ2UnKi8sIDB4MDMwMCwgMHgwMDY1LyonZScqLywgMHgwMzAxfSwKKyAgICAvKjA5Ki8gICAgezB4MDA2NS8qJ2UnKi8sIDB4MDMwMSwgMHgwMzAwLCAweDAwNjUvKidlJyovLCAweDAzMDF9LAorICAgIC8qMGEqLyAgICB7MHgwMDY1LyonZScqLywgMHgwMDY1LyonZScqLywgMHgwMzAwLCAweDAzMDF9LAorICAgIC8qMGIqLyAgICB7MHgwMDY1LyonZScqLywgMHgwMzAxLCAweDAwNjUvKidlJyovLCAweDAzMDAsIDB4MDMwMX0sCisgICAgLyowYyovICAgIHsweDAwNjUvKidlJyovLCAweDAzMDAsIDB4MDMwMSwgMHgwMDY1LyonZScqLywgMHgwMzAwLCAweDAzMDF9LAorICAgIC8qMGQqLyAgICB7MHgwMDY1LyonZScqLywgMHgwMzAwLCAweDAwNjUvKidlJyovLCAweDAzMDAsIDB4MDMwMX0sCisgICAgLyowZSovICAgIHsweDAwNjUvKidlJyovLCAweDAzMDEsIDB4MDMwMCwgMHgwMDY1LyonZScqLywgMHgwMzAwLCAweDAzMDF9LAorICAgIC8qMGYqLyAgICB7MHgwMDY1LyonZScqLywgMHgwMDY1LyonZScqLywgMHgwMzAwfSwKKyAgICAvKjEwKi8gICAgezB4MDA2NS8qJ2UnKi8sIDB4MDMwMSwgMHgwMDY1LyonZScqLywgMHgwMzAwfSwKKyAgICAvKjExKi8gICAgezB4MDA2NS8qJ2UnKi8sIDB4MDMwMCwgMHgwMzAxLCAweDAwNjUvKidlJyovLCAweDAzMDB9LAorICAgIC8qMTIqLyAgICB7MHgwMDY1LyonZScqLywgMHgwMzAwLCAweDAwNjUvKidlJyovLCAweDAzMDB9LAorICAgIC8qMTMqLyAgICB7MHgwMDY1LyonZScqLywgMHgwMzAxLCAweDAzMDAsIDB4MDA2NS8qJ2UnKi8sIDB4MDMwMH0sCisgICAgLyoxNCovICAgIHsweDAwNjUvKidlJyovLCAweDAwNjUvKidlJyovLCAweDAzMDEsIDB4MDMwMH0sCisgICAgLyoxNSovICAgIHsweDAwNjUvKidlJyovLCAweDAzMDEsIDB4MDA2NS8qJ2UnKi8sIDB4MDMwMSwgMHgwMzAwfSwKKyAgICAvKjE2Ki8gICAgezB4MDA2NS8qJ2UnKi8sIDB4MDMwMCwgMHgwMzAxLCAweDAwNjUvKidlJyovLCAweDAzMDEsIDB4MDMwMH0sCisgICAgLyoxNyovICAgIHsweDAwNjUvKidlJyovLCAweDAzMDAsIDB4MDA2NS8qJ2UnKi8sIDB4MDMwMSwgMHgwMzAwfSwKKyAgICAvKjE4Ki8gICAgezB4MDA2NS8qJ2UnKi8sIDB4MDMwMSwgMHgwMzAwLCAweDAwNjUvKidlJyovLCAweDAzMDEsIDB4MDMwMH0KKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdEJ1Z3MgPSB7CisgICAgICAgIHsweDAwNjEvKidhJyovfSwKKyAgICAgICAgezB4MDA0MS8qJ0EnKi99LAorICAgICAgICB7MHgwMDY1LyonZScqL30sCisgICAgICAgIHsweDAwNDUvKidFJyovfSwKKyAgICAgICAgezB4MDBlOX0sCisgICAgICAgIHsweDAwZTh9LAorICAgICAgICB7MHgwMGVhfSwKKyAgICAgICAgezB4MDBlYn0sCisgICAgICAgIHsweDAwNjUvKidlJyovLCAweDAwNjEvKidhJyovfSwKKyAgICAgICAgezB4MDA3OC8qJ3gnKi99CisgICAgfTsKKyAgICAKKyAgICAKKyAgICBwcml2YXRlIENvbGxhdG9yIG15Q29sbGF0aW9uID0gbnVsbDsKKyAgICAKKyAgICBwdWJsaWMgQ29sbGF0aW9uRnJlbmNoVGVzdCgpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG15Q29sbGF0aW9uID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkZSRU5DSCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGluIGNyZWF0aW9uIG9mIGNvbGxhdG9yIG9mIEZSRU5DSCBsb2NhbGUiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKyAgICAgCisgICAgIAorICAgIC8vIHBlcmZvcm0gdGVzdHMgd2l0aCBzdHJlbmd0aCBURVJUSUFSWQorICAgIHB1YmxpYyB2b2lkIFRlc3RUZXJ0aWFyeSgpIHsKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIAorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMTIgOyBpKyspIHsKKyAgICAgICAgICAgIGRvVGVzdCh0ZXN0U291cmNlQ2FzZXNbaV0sIHRlc3RUYXJnZXRDYXNlc1tpXSwgcmVzdWx0c1tpXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gcGVyZm9ybSB0ZXN0cyB3aXRoIHN0cmVuZ3RoIFNFQ09OREFSWQorICAgIHB1YmxpYyB2b2lkIFRlc3RTZWNvbmRhcnkoKSB7CisgICAgICAgIC8vdGVzdCBhY3V0ZSBhbmQgZ3JhdmUgb3JkZXJpbmcKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICBpbnQgajsKKyAgICAgICAgaW50IGV4cGVjdGVkOworCisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlNFQ09OREFSWSk7CisgICAgICAgIAorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdGVzdEFjdXRlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgdGVzdEFjdXRlLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgaWYgKGkgPCAgaikgeworICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCA9IC0xOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaSA9PSBqKSB7CisgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gMDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCA9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGRvVGVzdCh0ZXN0QWN1dGVbaV0sIHRlc3RBY3V0ZVtqXSwgZXhwZWN0ZWQgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIHBlcmZvcm0gZXh0cmEgdGVzdHMKKyAgICBwdWJsaWMgdm9pZCBUZXN0RXh0cmEoKSB7CisgICAgICAgIGludCBpLCBqOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCA5IDsgaSsrKSB7CisgICAgICAgICAgICBmb3IgKGogPSBpICsgMTsgaiA8IDEwOyBqICs9IDEpIHsKKyAgICAgICAgICAgICAgICBkb1Rlc3QodGVzdEJ1Z3NbaV0sIHRlc3RCdWdzW2pdLCAtMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgIAorICAgIC8vIG1haW4gdGVzdCByb3V0aW5lLCB0ZXN0IHJ1bGVzIHNwZWNpZmljIHRvIHRoZSBmcmVuY2ggbG9jYWxlCisgICAgcHJpdmF0ZSB2b2lkIGRvVGVzdChjaGFyW10gc291cmNlLCBjaGFyW10gdGFyZ2V0LCBpbnQgcmVzdWx0KSB7CisgICAgICAgIFN0cmluZyBzID0gbmV3IFN0cmluZyhzb3VyY2UpOworICAgICAgICBTdHJpbmcgdCA9IG5ldyBTdHJpbmcodGFyZ2V0KTsKKyAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQgPSBteUNvbGxhdGlvbi5jb21wYXJlKHMsIHQpOworICAgICAgICBDb2xsYXRpb25LZXkgc29ydEtleTEsIHNvcnRLZXkyOworICAgICAgICBzb3J0S2V5MSA9IG15Q29sbGF0aW9uLmdldENvbGxhdGlvbktleShzKTsKKyAgICAgICAgc29ydEtleTIgPSBteUNvbGxhdGlvbi5nZXRDb2xsYXRpb25LZXkodCk7CisgICAgICAgIGludCBrZXlSZXN1bHQgPSBzb3J0S2V5MS5jb21wYXJlVG8oc29ydEtleTIpOworICAgICAgICByZXBvcnRDUmVzdWx0KHMsIHQsIHNvcnRLZXkxLCBzb3J0S2V5MiwgY29tcGFyZVJlc3VsdCwga2V5UmVzdWx0LCBjb21wYXJlUmVzdWx0LCByZXN1bHQpOyAgCisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCByZXBvcnRDUmVzdWx0KCBTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0LCBDb2xsYXRpb25LZXkgc291cmNlS2V5LCBDb2xsYXRpb25LZXkgdGFyZ2V0S2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCwgaW50IGtleVJlc3VsdCwgaW50IGluY1Jlc3VsdCwgaW50IGV4cGVjdGVkUmVzdWx0ICkgeworICAgICAgICBpZiAoZXhwZWN0ZWRSZXN1bHQgPCAtMSB8fCBleHBlY3RlZFJlc3VsdCA+IDEpIHsKKyAgICAgICAgICAgIGVycmxuKCIqKioqKiBpbnZhbGlkIGNhbGwgdG8gcmVwb3J0Q1Jlc3VsdCAqKioqIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBib29sZWFuIG9rMSA9IChjb21wYXJlUmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgYm9vbGVhbiBvazIgPSAoa2V5UmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgYm9vbGVhbiBvazMgPSAoaW5jUmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKworICAgICAgICBpZiAob2sxICYmIG9rMiAmJiBvazMgJiYgIWlzVmVyYm9zZSgpKSB7CisgICAgICAgICAgICByZXR1cm47ICAgIAorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIG1zZzEgPSBvazE/ICJPazogY29tcGFyZShcIiIgOiAiRkFJTDogY29tcGFyZShcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgU3RyaW5nIG1zZzMgPSAiXCIpIHJldHVybmVkICI7CisgICAgICAgICAgICBTdHJpbmcgbXNnNCA9ICI7IGV4cGVjdGVkICI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBzRXhwZWN0ID0gbmV3IFN0cmluZygiIik7CisgICAgICAgICAgICBTdHJpbmcgc1Jlc3VsdCA9IG5ldyBTdHJpbmcoIiIpOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoY29tcGFyZVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBzRXhwZWN0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChleHBlY3RlZFJlc3VsdCwgc0V4cGVjdCk7CisgICAgICAgICAgICBpZiAob2sxKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1zZzEgPSBvazIgPyAiT2s6IGtleShcIiIgOiAiRkFJTDoga2V5KFwiIjsKKyAgICAgICAgICAgIG1zZzIgPSAiXCIpLmNvbXBhcmVUbyhrZXkoXCIiOworICAgICAgICAgICAgbXNnMyA9ICJcIikpIHJldHVybmVkICI7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChrZXlSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgaWYgKG9rMikgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgICAgIG1zZzEgPSAiICAiOworICAgICAgICAgICAgICAgIG1zZzIgPSAiIHZzLiAiOworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBwcmV0dGlmeShzb3VyY2VLZXkpICsgbXNnMiArIHByZXR0aWZ5KHRhcmdldEtleSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBtc2cxID0gb2szID8gIk9rOiBpbmNDb21wYXJlKFwiIiA6ICJGQUlMOiBpbmNDb21wYXJlKFwiIjsKKyAgICAgICAgICAgIG1zZzIgPSAiXCIsIFwiIjsKKyAgICAgICAgICAgIG1zZzMgPSAiXCIpIHJldHVybmVkICI7CisKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGluY1Jlc3VsdCwgc1Jlc3VsdCk7CisKKyAgICAgICAgICAgIGlmIChvazMpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgIH0gICAgICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBhcHBlbmRDb21wYXJlUmVzdWx0KGludCByZXN1bHQsIFN0cmluZyB0YXJnZXQpIHsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSAtMSkgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJMRVNTIjsKKyAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gMCkgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJFUVVBTCI7CisgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IDEpIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiR1JFQVRFUiI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgaHVoID0gIj8iOworICAgICAgICAgICAgdGFyZ2V0ICs9IGh1aCArIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KKyAgICAKKyAgICBTdHJpbmcgcHJldHRpZnkoQ29sbGF0aW9uS2V5IHNvdXJjZUtleSkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgYnl0ZVtdIGJ5dGVzPSBzb3VyY2VLZXkudG9CeXRlQXJyYXkoKTsKKyAgICAgICAgU3RyaW5nIHRhcmdldCA9ICJbIjsKKyAgICAKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGJ5dGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gSW50ZWdlci50b0hleFN0cmluZyhieXRlc1tpXSk7CisgICAgICAgICAgICB0YXJnZXQgKz0gIiAiOworICAgICAgICB9CisgICAgICAgIHRhcmdldCArPSAiXSI7CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorfSAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uR2VybWFuVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbkdlcm1hblRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMTIyYjI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbkdlcm1hblRlc3QuamF2YQpAQCAtMCwwICsxLDIyNiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAkU291cmNlOiAKKyAqICREYXRlOiAKKyAqICRSZXZpc2lvbjogCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYyLjEgOiBDb2xsYXRlL0NvbGxhdGlvbkdlcm1hblRlc3QKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L2RlY29sbC5jcHAKKyAqKi8KKyAKKyBwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yOworIAorIGltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworIGltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CisgaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisgCisgcHVibGljIGNsYXNzIENvbGxhdGlvbkdlcm1hblRlc3QgZXh0ZW5kcyBUZXN0Rm13a3sKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBuZXcgQ29sbGF0aW9uR2VybWFuVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdFNvdXJjZUNhc2VzID0geworICAgICAgICB7MHg0NywgMHg3MiwgMHgwMEY2LCAweDAwREYsIDB4NjV9LAorICAgICAgICB7MHg2MSwgMHg2MiwgMHg2M30sCisgICAgICAgIHsweDU0LCAweDAwRjYsIDB4NmUsIDB4NjV9LAorICAgICAgICB7MHg1NCwgMHgwMEY2LCAweDZlLCAweDY1fSwKKyAgICAgICAgezB4NTQsIDB4MDBGNiwgMHg2ZSwgMHg2NX0sCisgICAgICAgIHsweDYxLCAweDAzMDgsIDB4NjIsIDB4NjN9LAorICAgICAgICB7MHgwMEU0LCAweDYyLCAweDYzfSwKKyAgICAgICAgezB4MDBFNCwgMHg2MiwgMHg2M30sCisgICAgICAgIHsweDUzLCAweDc0LCAweDcyLCAweDYxLCAweDAwREYsIDB4NjV9LAorICAgICAgICB7MHg2NSwgMHg2NiwgMHg2N30sCisgICAgICAgIHsweDAwRTQsIDB4NjIsIDB4NjN9LAorICAgICAgICB7MHg1MywgMHg3NCwgMHg3MiwgMHg2MSwgMHgwMERGLCAweDY1fQorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0VGFyZ2V0Q2FzZXMgPSB7CisgICAgICAgIHsweDQ3LCAweDcyLCAweDZmLCAweDczLCAweDczLCAweDY5LCAweDczLCAweDc0fSwKKyAgICAgICAgezB4NjEsIDB4MDMwOCwgMHg2MiwgMHg2M30sCisgICAgICAgIHsweDU0LCAweDZmLCAweDZlfSwKKyAgICAgICAgezB4NTQsIDB4NmYsIDB4NjR9LAorICAgICAgICB7MHg1NCwgMHg2ZiwgMHg2NiwgMHg3NX0sCisgICAgICAgIHsweDQxLCAweDAzMDgsIDB4NjIsIDB4NjN9LAorICAgICAgICB7MHg2MSwgMHgwMzA4LCAweDYyLCAweDYzfSwKKyAgICAgICAgezB4NjEsIDB4NjUsIDB4NjIsIDB4NjN9LAorICAgICAgICB7MHg1MywgMHg3NCwgMHg3MiwgMHg2MSwgMHg3MywgMHg3MywgMHg2NX0sCisgICAgICAgIHsweDY1LCAweDY2LCAweDY3fSwKKyAgICAgICAgezB4NjEsIDB4NjUsIDB4NjIsIDB4NjN9LAorICAgICAgICB7MHg1MywgMHg3NCwgMHg3MiwgMHg2MSwgMHg3MywgMHg3MywgMHg2NX0KKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IHJlc3VsdHNbXVtdID0KKyAgICB7CisgICAgICAgIC8vICBQcmltYXJ5ICBUZXJ0aWFyeQorICAgICAgICB7IC0xLCAgICAgICAgLTEgfSwKKyAgICAgICAgeyAwLCAgICAgICAgIC0xIH0sCisgICAgICAgIHsgMSwgICAgICAgICAgMSB9LAorICAgICAgICB7IDEsICAgICAgICAgIDEgfSwKKyAgICAgICAgeyAxLCAgICAgICAgICAxIH0sCisgICAgICAgIHsgMCwgICAgICAgICAtMSB9LAorICAgICAgICB7IDAsICAgICAgICAgIDAgfSwKKyAgICAgICAgeyAtMSwgICAgICAgIC0xIH0sCisgICAgICAgIHsgMCwgICAgICAgICAgMSB9LAorICAgICAgICB7IDAsICAgICAgICAgIDAgfSwKKyAgICAgICAgeyAtMSwgICAgICAgIC0xIH0sCisgICAgICAgIHsgMCwgICAgICAgICAgMSB9CisgICAgfTsKKyAgICAKKyAgICBwcml2YXRlIENvbGxhdG9yIG15Q29sbGF0aW9uID0gbnVsbDsKKyAgICAKKyAgICBwdWJsaWMgQ29sbGF0aW9uR2VybWFuVGVzdCgpIHsKKyAgICAgICAgbXlDb2xsYXRpb24gPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuR0VSTUFOKTsKKyAgICAgICAgaWYobXlDb2xsYXRpb24gPT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBpbiBjcmVhdGlvbiBvZiBjb2xsYXRvciBvZiBHRVJNQU4gbG9jYWxlIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gcGVyZm9ybSB0ZXN0IHdpdGggc3RyZW5ndGggVEVSVElBUlkKKyAgICBwdWJsaWMgdm9pZCBUZXN0VGVydGlhcnkoKXsKKyAgICAgICAgaWYobXlDb2xsYXRpb24gPT0gbnVsbCApIHsKKyAgICAgICAgICAgIGVycmxuKCJkZWNvbGw6IGNhbm5vdCBzdGFydCB0ZXN0LCBjb2xsYXRvciBpcyBudWxsXG4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICBteUNvbGxhdGlvbi5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IDEyIDsgaSsrKQorICAgICAgICB7CisgICAgICAgICAgICBkb1Rlc3QodGVzdFNvdXJjZUNhc2VzW2ldLCB0ZXN0VGFyZ2V0Q2FzZXNbaV0sIHJlc3VsdHNbaV1bMV0pOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIHBlcmZvcm0gdGVzdCB3aXRoIHN0cmVuZ3RoIFNFQ09OREFSWQorICAgIC8vVGhpcyBtZXRob2QgaW4gaWN1NGMgaGFzIG5vIGltcGxlbWVudGF0aW9uLgorICAgIHB1YmxpYyB2b2lkIFRlc3RTZWNvbmRhcnkoKXsKKyAgICB9CisgICAgCisgICAgIC8vIHBlcmZvcm0gdGVzdCB3aXRoIHN0cmVuZ3RoIFBSSU1BUlkKKyAgICBwdWJsaWMgdm9pZCBUZXN0UHJpbWFyeSgpeworICAgICAgICBpZihteUNvbGxhdGlvbiA9PSBudWxsICkgeworICAgICAgICAgICAgZXJybG4oImRlY29sbDogY2Fubm90IHN0YXJ0IHRlc3QsIGNvbGxhdG9yIGlzIG51bGxcbiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGludCBpOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTik7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCAxMiA7IGkrKykKKyAgICAgICAgeworICAgICAgICAgICAgZG9UZXN0KHRlc3RTb3VyY2VDYXNlc1tpXSwgdGVzdFRhcmdldENhc2VzW2ldLCByZXN1bHRzW2ldWzBdKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAKKyAgICAvL21haW4gdGVzdCByb3V0aW5lLCB0ZXN0cyBydWxlcyBzcGVjaWZpYyB0byBnZXJtYSBsb2NhbGUKKyAgICBwcml2YXRlIHZvaWQgZG9UZXN0KGNoYXJbXSBzb3VyY2UsIGNoYXJbXSB0YXJnZXQsIGludCByZXN1bHQpeworICAgICAgICBTdHJpbmcgcyA9IG5ldyBTdHJpbmcoc291cmNlKTsKKyAgICAgICAgU3RyaW5nIHQgPSBuZXcgU3RyaW5nKHRhcmdldCk7CisgICAgICAgIGludCBjb21wYXJlUmVzdWx0ID0gbXlDb2xsYXRpb24uY29tcGFyZShzLCB0KTsKKyAgICAgICAgQ29sbGF0aW9uS2V5IHNvcnRLZXkxLCBzb3J0S2V5MjsKKyAgICAgICAgc29ydEtleTEgPSBteUNvbGxhdGlvbi5nZXRDb2xsYXRpb25LZXkocyk7CisgICAgICAgIHNvcnRLZXkyID0gbXlDb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHQpOworICAgICAgICBpbnQga2V5UmVzdWx0ID0gc29ydEtleTEuY29tcGFyZVRvKHNvcnRLZXkyKTsKKyAgICAgICAgcmVwb3J0Q1Jlc3VsdChzLCB0LCBzb3J0S2V5MSwgc29ydEtleTIsIGNvbXBhcmVSZXN1bHQsIGtleVJlc3VsdCwgY29tcGFyZVJlc3VsdCwgcmVzdWx0KTsKKyAgICAgICAgCisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCByZXBvcnRDUmVzdWx0KCBTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0LCBDb2xsYXRpb25LZXkgc291cmNlS2V5LCBDb2xsYXRpb25LZXkgdGFyZ2V0S2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCwgaW50IGtleVJlc3VsdCwgaW50IGluY1Jlc3VsdCwgaW50IGV4cGVjdGVkUmVzdWx0ICl7CisgICAgICAgIGlmIChleHBlY3RlZFJlc3VsdCA8IC0xIHx8IGV4cGVjdGVkUmVzdWx0ID4gMSkKKyAgICAgICAgeworICAgICAgICAgICAgZXJybG4oIioqKioqIGludmFsaWQgY2FsbCB0byByZXBvcnRDUmVzdWx0ICoqKioiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gb2sxID0gKGNvbXBhcmVSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMiA9IChrZXlSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMyA9IChpbmNSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworCisgICAgICAgIGlmIChvazEgJiYgb2syICYmIG9rMyAmJiAhaXNWZXJib3NlKCkpeworICAgICAgICAgICAgcmV0dXJuOyAgICAKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBTdHJpbmcgbXNnMSA9IG9rMT8gIk9rOiBjb21wYXJlKFwiIiA6ICJGQUlMOiBjb21wYXJlKFwiIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2cyID0gIlwiLCBcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2c0ID0gIjsgZXhwZWN0ZWQgIjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIHNFeHBlY3QgPSBuZXcgU3RyaW5nKCIiKTsKKyAgICAgICAgICAgIFN0cmluZyBzUmVzdWx0ID0gbmV3IFN0cmluZygiIik7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChjb21wYXJlUmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIHNFeHBlY3QgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGV4cGVjdGVkUmVzdWx0LCBzRXhwZWN0KTsKKyAgICAgICAgICAgIGlmIChvazEpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbXNnMSA9IG9rMiA/ICJPazoga2V5KFwiIiA6ICJGQUlMOiBrZXkoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIikuY29tcGFyZVRvKGtleShcIiI7CisgICAgICAgICAgICBtc2czID0gIlwiKSkgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGtleVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBpZiAob2syKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICAgICAgbXNnMSA9ICIgICI7CisgICAgICAgICAgICAgICAgbXNnMiA9ICIgdnMuICI7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHByZXR0aWZ5KHNvdXJjZUtleSkgKyBtc2cyICsgcHJldHRpZnkodGFyZ2V0S2V5KSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1zZzEgPSBvazMgPyAiT2s6IGluY0NvbXBhcmUoXCIiIDogIkZBSUw6IGluY0NvbXBhcmUoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoaW5jUmVzdWx0LCBzUmVzdWx0KTsKKworICAgICAgICAgICAgaWYgKG9rMykgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBhcHBlbmRDb21wYXJlUmVzdWx0KGludCByZXN1bHQsIFN0cmluZyB0YXJnZXQpeworICAgICAgICBpZiAocmVzdWx0ID09IC0xKSAgIC8vTEVTUworICAgICAgICB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkxFU1MiOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHJlc3VsdCA9PSAwKSAgIC8vRVFVQUwKKyAgICAgICAgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJFUVVBTCI7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAocmVzdWx0ID09IDEpICAgLy9HUkVBVEVSCisgICAgICAgIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiR1JFQVRFUiI7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAgICBTdHJpbmcgaHVoID0gIj8iOworCisgICAgICAgICAgICB0YXJnZXQgKz0gaHVoICsgcmVzdWx0OworICAgICAgICB9CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorICAgIAorICAgIFN0cmluZyBwcmV0dGlmeShDb2xsYXRpb25LZXkgc291cmNlS2V5KSB7CisgICAgICAgIGludCBpOworICAgICAgICBieXRlW10gYnl0ZXM9IHNvdXJjZUtleS50b0J5dGVBcnJheSgpOworICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gIlsiOworICAgIAorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHRhcmdldCArPSBJbnRlZ2VyLnRvSGV4U3RyaW5nKGJ5dGVzW2ldKTsKKyAgICAgICAgICAgIHRhcmdldCArPSAiICI7CisgICAgICAgIH0KKyAgICAgICAgdGFyZ2V0ICs9ICJdIjsKKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbkl0ZXJhdG9yVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbkl0ZXJhdG9yVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxOGYzYTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uSXRlcmF0b3JUZXN0LmphdmEKQEAgLTAsMCArMSw2MTcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogJFNvdXJjZTogCisgKiAkRGF0ZTogCisgKiAkUmV2aXNpb246IAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2Mi4xIDogY29sbGF0ZS9Db2xsYXRpb25JdGVyYXRvclRlc3QKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L2l0ZXJjb2xsLmNwcAorICoqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CisKK3B1YmxpYyBjbGFzcyBDb2xsYXRpb25JdGVyYXRvclRlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisgICAgCisgICAgU3RyaW5nIHRlc3QxID0gIldoYXQgc3Vic2V0IG9mIGFsbCBwb3NzaWJsZSB0ZXN0IGNhc2VzPyI7CisgICAgU3RyaW5nIHRlc3QyID0gImhhcyB0aGUgaGlnaGVzdCBwcm9iYWJpbGl0eSBvZiBkZXRlY3RpbmciOworICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBDb2xsYXRpb25JdGVyYXRvclRlc3QoKS5ydW4oYXJncyk7CisgICAgICAgIC8vIG5ldyBDb2xsYXRpb25JdGVyYXRvclRlc3QoKS5UZXN0Tm9ybWFsaXplZFVuaWNvZGVDaGFyKCk7CisgICAgfQorICAgIAorICAgIC8qCisgICAgICogQGJ1ZyA0MTU3Mjk5CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENsZWFyQnVmZmVycygvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgYyA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKCImYSA8IGIgPCBjICYgYWIgPSBkIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiQ291bGRuJ3QgY3JlYXRlIGEgUnVsZUJhc2VkQ29sbGF0b3IuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgU3RyaW5nIHNvdXJjZSA9ICJhYmNkIjsKKyAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGkgPSBjLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihzb3VyY2UpOworICAgICAgICBpbnQgZTAgPSAwOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZTAgPSBpLm5leHQoKTsgICAgLy8gc2F2ZSB0aGUgZmlyc3QgY29sbGF0aW9uIGVsZW1lbnQKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJjYWxsIHRvIGkubmV4dCgpIGZhaWxlZC4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpLnNldE9mZnNldCgzKTsgICAgICAgIC8vIGdvIHRvIHRoZSBleHBhbmRpbmcgY2hhcmFjdGVyCisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiY2FsbCB0byBpLnNldE9mZnNldCgzKSBmYWlsZWQuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpLm5leHQoKTsgICAgICAgICAgICAgICAgLy8gYnV0IG9ubHkgdXNlIHVwIGhhbGYgb2YgaXQKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJjYWxsIHRvIGkubmV4dCgpIGZhaWxlZC4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpLnNldE9mZnNldCgwKTsgICAgICAgIC8vIGdvIGJhY2sgdG8gdGhlIGJlZ2lubmluZworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oImNhbGwgdG8gaS5zZXRPZmZzZXQoMCkgZmFpbGVkLiAiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50IGUgPSAwOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZSA9IGkubmV4dCgpOyAgICAvLyBhbmQgZ2V0IHRoaXMgb25lIGFnYWluCisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlZSkgeworICAgICAgICAgICAgZXJybG4oImNhbGwgdG8gaS5uZXh0KCkgZmFpbGVkLiAiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKGUgIT0gZTApIHsKKyAgICAgICAgICAgIGVycmxuKCJnb3QgMHgiICsgSW50ZWdlci50b0hleFN0cmluZyhlKSArICIsIGV4cGVjdGVkIDB4IiArIEludGVnZXIudG9IZXhTdHJpbmcoZTApKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKiogQGJ1ZyA0MTA4NzYyCisgICAgICogVGVzdCBmb3IgZ2V0TWF4RXhwYW5zaW9uKCkKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TWF4RXhwYW5zaW9uKC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICBTdHJpbmcgcnVsZSA9ICImYSA8IGFiIDwgYy9hYmEgPCBkIDwgeiA8IGNoIjsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGUpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWwgdG8gY3JlYXRlIFJ1bGVCYXNlZENvbGxhdG9yIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgY2hhciBjaCA9IDA7CisgICAgICAgIFN0cmluZyBzdHIgPSBTdHJpbmcudmFsdWVPZihjaCk7CisgICAgCisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyICAgPSBjb2xsLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihzdHIpOworICAgIAorICAgICAgICB3aGlsZSAoY2ggPCAweEZGRkYpIHsKKyAgICAgICAgICAgIGludCBjb3VudCA9IDE7CisgICAgICAgICAgICBjaCArKzsKKyAgICAgICAgICAgIHN0ciA9IFN0cmluZy52YWx1ZU9mKGNoKTsKKyAgICAgICAgICAgIGl0ZXIuc2V0VGV4dChzdHIpOworICAgICAgICAgICAgaW50IG9yZGVyID0gaXRlci5wcmV2aW91cygpOworICAgIAorICAgICAgICAgICAgLy8gdGhhaSBtYW5hZ2VtZW50IAorICAgICAgICAgICAgaWYgKG9yZGVyID09IDApIHsKKyAgICAgICAgICAgICAgICBvcmRlciA9IGl0ZXIucHJldmlvdXMoKTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIHdoaWxlIChpdGVyLnByZXZpb3VzKCkgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgIGNvdW50ICsrOyAKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIGlmIChpdGVyLmdldE1heEV4cGFuc2lvbihvcmRlcikgPCBjb3VudCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsdXJlIGF0IGNvZGVwb2ludCAiICsgY2ggKyAiLCBtYXhpbXVtIGV4cGFuc2lvbiBjb3VudCA8ICIgKyBjb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCBmb3IgZ2V0T2Zmc2V0KCkgYW5kIHNldE9mZnNldCgpCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdE9mZnNldCgvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgZW5fdXM7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBlbl91cyA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOyAgICAKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogaW4gY3JlYXRpb24gb2YgY29sbGF0b3Igb2YgRU5HTElTSCBsb2NhbGUiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyID0gZW5fdXMuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHRlc3QxKTsKKyAgICAKKyAgICAgICAgLy8gUnVuIGFsbCB0aGUgd2F5IHRocm91Z2ggdGhlIGl0ZXJhdG9yLCB0aGVuIGdldCB0aGUgb2Zmc2V0CisgICAgICAgIGludFtdIG9yZGVycyA9IGdldE9yZGVycyhpdGVyKTsKKyAgICAgICAgbG9nbG4oIm9yZGVycy5sZW5ndGggPSAiICsgb3JkZXJzLmxlbmd0aCk7CisgICAgICAgIAorICAgICAgICBpbnQgb2Zmc2V0ID0gaXRlci5nZXRPZmZzZXQoKTsKKyAgICAKKyAgICAgICAgaWYgKG9mZnNldCAhPSB0ZXN0MS5sZW5ndGgoKSkgeworICAgICAgICAgICAgU3RyaW5nIG1zZzEgPSAib2Zmc2V0IGF0IGVuZCAhPSBsZW5ndGg6ICI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMiA9ICIgdnMgIjsKKyAgICAgICAgICAgIGVycmxuKG1zZzEgKyBvZmZzZXQgKyBtc2cyICsgdGVzdDEubGVuZ3RoKCkpOworICAgICAgICB9CisgICAgCisgICAgICAgIC8vIE5vdyBzZXQgdGhlIG9mZnNldCBiYWNrIHRvIHRoZSBiZWdpbm5pbmcgYW5kIHNlZSBpZiBpdCB3b3JrcworICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgcHJpc3RpbmUgPSBlbl91cy5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IodGVzdDEpOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGl0ZXIuc2V0T2Zmc2V0KDApOworICAgICAgICB9IGNhdGNoKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigic2V0T2Zmc2V0IGZhaWxlZC4iKTsKKyAgICAgICAgfQorICAgICAgICBhc3NlcnRFcXVhbChpdGVyLCBwcmlzdGluZSk7CisgICAgCisgICAgICAgIC8vIHNldHRpbmcgb2Zmc2V0IGluIHRoZSBtaWRkbGUgb2YgYSBjb250cmFjdGlvbgorICAgICAgICBTdHJpbmcgY29udHJhY3Rpb24gPSAiY2hhbmdlIjsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgdGFpbG9yZWQgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgdGFpbG9yZWQgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IoIiYgYSA8IGNoIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3I6IGluIGNyZWF0aW9uIG9mIFNwYW5pc2ggY29sbGF0b3IiKTsKKyAgICAgICAgfQorICAgICAgICBpdGVyID0gdGFpbG9yZWQuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKGNvbnRyYWN0aW9uKTsKKyAgICAgICAgaW50IG9yZGVyW10gPSBnZXRPcmRlcnMoaXRlcik7CisgICAgICAgIGl0ZXIuc2V0T2Zmc2V0KDEpOyAvLyBzZXRzIG9mZnNldCBpbiB0aGUgbWlkZGxlIG9mIGNoCisgICAgICAgIGludCBvcmRlcjJbXSA9IGdldE9yZGVycyhpdGVyKTsKKyAgICAgICAgaWYgKCFBcnJheXMuZXF1YWxzKG9yZGVyLCBvcmRlcjIpKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3I6IHNldHRpbmcgb2Zmc2V0IGluIHRoZSBtaWRkbGUgb2YgYSBjb250cmFjdGlvbiBzaG91bGQgYmUgdGhlIHNhbWUgYXMgc2V0dGluZyBpdCB0byB0aGUgc3RhcnQgb2YgdGhlIGNvbnRyYWN0aW9uIik7CisgICAgICAgIH0KKyAgICAgICAgY29udHJhY3Rpb24gPSAicGVhY2hlIjsKKyAgICAgICAgaXRlciA9IHRhaWxvcmVkLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihjb250cmFjdGlvbik7CisgICAgICAgIGl0ZXIuc2V0T2Zmc2V0KDMpOworICAgICAgICBvcmRlciA9IGdldE9yZGVycyhpdGVyKTsKKyAgICAgICAgaXRlci5zZXRPZmZzZXQoNCk7IC8vIHNldHMgb2Zmc2V0IGluIHRoZSBtaWRkbGUgb2YgY2gKKyAgICAgICAgb3JkZXIyID0gZ2V0T3JkZXJzKGl0ZXIpOworICAgICAgICBpZiAoIUFycmF5cy5lcXVhbHMob3JkZXIsIG9yZGVyMikpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvcjogc2V0dGluZyBvZmZzZXQgaW4gdGhlIG1pZGRsZSBvZiBhIGNvbnRyYWN0aW9uIHNob3VsZCBiZSB0aGUgc2FtZSBhcyBzZXR0aW5nIGl0IHRvIHRoZSBzdGFydCBvZiB0aGUgY29udHJhY3Rpb24iKTsKKyAgICAgICAgfQorICAgICAgICAvLyBzZXR0aW5nIG9mZnNldCBpbiB0aGUgbWlkZGxlIG9mIGEgc3Vycm9nYXRlIHBhaXIKKyAgICAgICAgU3RyaW5nIHN1cnJvZ2F0ZSA9ICJcdWQ4MDBcdWRjMDBzdHIiOworICAgICAgICBpdGVyID0gdGFpbG9yZWQuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHN1cnJvZ2F0ZSk7CisgICAgICAgIG9yZGVyID0gZ2V0T3JkZXJzKGl0ZXIpOworICAgICAgICBpdGVyLnNldE9mZnNldCgxKTsgLy8gc2V0cyBvZmZzZXQgaW4gdGhlIG1pZGRsZSBvZiBzdXJyb2dhdGUKKyAgICAgICAgb3JkZXIyID0gZ2V0T3JkZXJzKGl0ZXIpOworICAgICAgICBpZiAoIUFycmF5cy5lcXVhbHMob3JkZXIsIG9yZGVyMikpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvcjogc2V0dGluZyBvZmZzZXQgaW4gdGhlIG1pZGRsZSBvZiBhIHN1cnJvZ2F0ZSBwYWlyIHNob3VsZCBiZSB0aGUgc2FtZSBhcyBzZXR0aW5nIGl0IHRvIHRoZSBzdGFydCBvZiB0aGUgc3Vycm9nYXRlIHBhaXIiKTsKKyAgICAgICAgfQorICAgICAgICBzdXJyb2dhdGUgPSAic2ltcGxlXHVkODAwXHVkYzAwc3RyIjsKKyAgICAgICAgaXRlciA9IHRhaWxvcmVkLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihzdXJyb2dhdGUpOworICAgICAgICBpdGVyLnNldE9mZnNldCg2KTsKKyAgICAgICAgb3JkZXIgPSBnZXRPcmRlcnMoaXRlcik7CisgICAgICAgIGl0ZXIuc2V0T2Zmc2V0KDcpOyAvLyBzZXRzIG9mZnNldCBpbiB0aGUgbWlkZGxlIG9mIHN1cnJvZ2F0ZQorICAgICAgICBvcmRlcjIgPSBnZXRPcmRlcnMoaXRlcik7CisgICAgICAgIGlmICghQXJyYXlzLmVxdWFscyhvcmRlciwgb3JkZXIyKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBzZXR0aW5nIG9mZnNldCBpbiB0aGUgbWlkZGxlIG9mIGEgc3Vycm9nYXRlIHBhaXIgc2hvdWxkIGJlIHRoZSBzYW1lIGFzIHNldHRpbmcgaXQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBzdXJyb2dhdGUgcGFpciIpOworICAgICAgICB9CisgICAgICAgIC8vIFRPRE86IHRyeSBpdGVyYXRpbmcgaGFsZndheSB0aHJvdWdoIGEgbWVzc3kgc3RyaW5nLgorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gaW50ZWdlciBhcnJheSBjb250YWluaW5nIGFsbCBvZiB0aGUgY29sbGF0aW9uIG9yZGVycworICAgICAqIHJldHVybmVkIGJ5IGNhbGxzIHRvIG5leHQgb24gdGhlIHNwZWNpZmllZCBpdGVyYXRvcgorICAgICAqLworICAgIGludFtdIGdldE9yZGVycyhDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlcikgeworICAgICAgICBpbnQgbWF4U2l6ZSA9IDEwMDsKKyAgICAgICAgaW50IHNpemUgPSAwOworICAgICAgICBpbnRbXSBvcmRlcnMgPSBuZXcgaW50W21heFNpemVdOworICAgIAorICAgICAgICBpbnQgb3JkZXI7CisgICAgICAgIHdoaWxlICgob3JkZXIgPSBpdGVyLm5leHQoKSkgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgaWYgKHNpemUgPT0gbWF4U2l6ZSkgeworICAgICAgICAgICAgICAgIG1heFNpemUgKj0gMjsKKyAgICAgICAgICAgICAgICBpbnRbXSB0ZW1wID0gbmV3IGludFttYXhTaXplXTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG9yZGVycywgMCwgdGVtcCwgIDAsIHNpemUpOworICAgICAgICAgICAgICAgIG9yZGVycyA9IHRlbXA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvcmRlcnNbc2l6ZSsrXSA9IG9yZGVyOworICAgICAgICB9CisgICAgCisgICAgICAgIGlmIChtYXhTaXplID4gc2l6ZSkgeworICAgICAgICAgICAgaW50W10gdGVtcCA9IG5ldyBpbnRbc2l6ZV07CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG9yZGVycywgMCwgdGVtcCwgIDAsIHNpemUpOworICAgICAgICAgICAgb3JkZXJzID0gdGVtcDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gb3JkZXJzOworICAgIH0KKworICAgIHZvaWQgYXNzZXJ0RXF1YWwoQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGkxLCBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaTIpIHsKKyAgICAgICAgaW50IGMxLCBjMiwgY291bnQgPSAwOworICAgICAgICBkbyB7CisgICAgICAgICAgICBjMSA9IGkxLm5leHQoKTsKKyAgICAgICAgICAgIGMyID0gaTIubmV4dCgpOworICAgICAgICAgICAgaWYgKGMxICE9IGMyKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIiAgICAiICsgY291bnQgKyAiOiBzdHJlbmd0aCgweCIgKyAKKyAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhjMSkgKyAiKSAhPSBzdHJlbmd0aCgweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGMyKSArICIpIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCArPSAxOworICAgICAgICB9IHdoaWxlIChjMSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKTsKKyAgICAgICAgYmFja0FuZEZvcnRoKGkxKTsKKyAgICAgICAgYmFja0FuZEZvcnRoKGkyKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCBmb3IgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnByZXZpb3VzKCkKKyAgICAgKgorICAgICAqIEBidWcgNDEwODc1OCAtIE1ha2Ugc3VyZSBpdCB3b3JrcyB3aXRoIGNvbnRyYWN0aW5nIGNoYXJhY3RlcnMKKyAgICAgKiAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UHJldmlvdXMoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGVuX3VzID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyID0gZW5fdXMuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHRlc3QxKTsKKyAgICAKKyAgICAgICAgLy8gQSBiYXNpYyB0ZXN0IHRvIHNlZSBpZiBpdCdzIHdvcmtpbmcgYXQgYWxsCisgICAgICAgIGJhY2tBbmRGb3J0aChpdGVyKTsKKyAgICAKKyAgICAgICAgLy8gVGVzdCB3aXRoIGEgY29udHJhY3RpbmcgY2hhcmFjdGVyIHNlcXVlbmNlCisgICAgICAgIFN0cmluZyBzb3VyY2U7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGMxID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGMxID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKCImYSxBIDwgYixCIDwgYyxDLCBkLEQgPCB6LFogPCBjaCxjSCxDaCxDSCIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkNvdWxkbid0IGNyZWF0ZSBhIFJ1bGVCYXNlZENvbGxhdG9yIHdpdGggYSBjb250cmFjdGluZyBzZXF1ZW5jZS4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICBzb3VyY2UgPSAiYWJjaGRjYmEiOworICAgICAgICBpdGVyID0gYzEuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHNvdXJjZSk7CisgICAgICAgIGJhY2tBbmRGb3J0aChpdGVyKTsKKyAgICAKKyAgICAgICAgLy8gVGVzdCB3aXRoIGFuIGV4cGFuZGluZyBjaGFyYWN0ZXIgc2VxdWVuY2UKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgYzIgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgYzIgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IoIiZhIDwgYiA8IGMvYWJkIDwgZCIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSApIHsKKyAgICAgICAgICAgIGVycmxuKCJDb3VsZG4ndCBjcmVhdGUgYSBSdWxlQmFzZWRDb2xsYXRvciB3aXRoIGFuIGV4cGFuZGluZyBzZXF1ZW5jZS4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICBzb3VyY2UgPSAiYWJjZCI7CisgICAgICAgIGl0ZXIgPSBjMi5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Ioc291cmNlKTsKKyAgICAgICAgYmFja0FuZEZvcnRoKGl0ZXIpOworICAgIAorICAgICAgICAvLyBOb3cgdHJ5IGJvdGgKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgYzMgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgYzMgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IoIiZhIDwgYiA8IGMvYWJhIDwgZCA8IHogPCBjaCIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkNvdWxkbid0IGNyZWF0ZSBhIFJ1bGVCYXNlZENvbGxhdG9yIHdpdGggYm90aCBhbiBleHBhbmRpbmcgYW5kIGEgY29udHJhY3Rpbmcgc2VxdWVuY2UuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHNvdXJjZSA9ICJhYmNkYmNoZGMiOworICAgICAgICBpdGVyID0gYzMuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHNvdXJjZSk7CisgICAgICAgIGJhY2tBbmRGb3J0aChpdGVyKTsKKyAgICAKKyAgICAgICAgc291cmNlPSAiXHUwZTQxXHUwZTAyXHUwZTQxXHUwZTAyXHUwZTI3YWJjIjsKKyAgICAgICAgQ29sbGF0b3IgYzQgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgYzQgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJ0aCIsICJUSCIsICIiKSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiQ291bGRuJ3QgY3JlYXRlIGEgY29sbGF0b3IiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaXRlciA9ICgoUnVsZUJhc2VkQ29sbGF0b3IpYzQpLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihzb3VyY2UpOworICAgICAgICBiYWNrQW5kRm9ydGgoaXRlcik7CisgICAgICAgCisgICAgICAgIHNvdXJjZT0gIlx1MDA2MVx1MzBDRlx1MzA5OVx1MzBGQyI7CisgICAgICAgIENvbGxhdG9yIGM1ID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGM1ID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiamEiLCAiSlAiLCAiIikpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkNvdWxkbid0IGNyZWF0ZSBKYXBhbmVzZSBjb2xsYXRvclxuIik7CisgICAgICAgIH0KKyAgICAgICAgaXRlciA9ICgoUnVsZUJhc2VkQ29sbGF0b3IpYzUpLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihzb3VyY2UpOworICAgICAgICAKKyAgICAgICAgYmFja0FuZEZvcnRoKGl0ZXIpOworICAgIH0KKyAgICAKKyAgICB2b2lkIGJhY2tBbmRGb3J0aChDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlcikgeworICAgICAgICAvLyBSdW4gdGhyb3VnaCB0aGUgaXRlcmF0b3IgZm9yd2FyZHMgYW5kIHN0aWNrIGl0IGludG8gYW4gYXJyYXkKKyAgICAgICAgaXRlci5yZXNldCgpOworICAgICAgICBpbnRbXSBvcmRlcnMgPSBnZXRPcmRlcnMoaXRlcik7CisgICAgCisgICAgICAgIC8vIE5vdyBnbyB0aHJvdWdoIGl0IGJhY2t3YXJkcyBhbmQgbWFrZSBzdXJlIHdlIGdldCB0aGUgc2FtZSB2YWx1ZXMKKyAgICAgICAgaW50IGluZGV4ID0gb3JkZXJzLmxlbmd0aDsKKyAgICAgICAgaW50IG87CisgICAgCisgICAgICAgIC8vIHJlc2V0IHRoZSBpdGVyYXRvcgorICAgICAgICBpdGVyLnJlc2V0KCk7CisgICAgCisgICAgICAgIHdoaWxlICgobyA9IGl0ZXIucHJldmlvdXMoKSkgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgaWYgKG8gIT0gb3JkZXJzWy0taW5kZXhdKSB7CisgICAgICAgICAgICAgICAgaWYgKG8gPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBpbmRleCArKzsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoaW5kZXggPiAwICYmIG9yZGVyc1tpbmRleF0gPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggLS07CisgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgIGlmIChvICE9IG9yZGVyc1tpbmRleF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJNaXNtYXRjaCBhdCBpbmRleCAiICsgaW5kZXggKyAiOiAweCIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKG9yZGVyc1tpbmRleF0pICsgIiB2cyAweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKG8pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIHdoaWxlIChpbmRleCAhPSAwICYmIG9yZGVyc1tpbmRleCAtIDFdID09IDApIHsKKyAgICAgICAgICBpbmRleCAtLTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpZiAoaW5kZXggIT0gMCkgeworICAgICAgICAgICAgU3RyaW5nIG1zZyA9ICJEaWRuJ3QgZ2V0IGJhY2sgdG8gYmVnaW5uaW5nIC0gaW5kZXggaXMgIjsKKyAgICAgICAgICAgIGVycmxuKG1zZyArIGluZGV4KTsKKyAgICAKKyAgICAgICAgICAgIGl0ZXIucmVzZXQoKTsKKyAgICAgICAgICAgIGVycigibmV4dDogIik7CisgICAgICAgICAgICB3aGlsZSAoKG8gPSBpdGVyLm5leHQoKSkgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgIFN0cmluZyBoZXhTdHJpbmcgPSAiMHgiICsgSW50ZWdlci50b0hleFN0cmluZyhvKSArICIgIjsKKyAgICAgICAgICAgICAgICBlcnIoaGV4U3RyaW5nKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVycmxuKCIiKTsKKyAgICAgICAgICAgIGVycigicHJldjogIik7CisgICAgICAgICAgICB3aGlsZSAoKG8gPSBpdGVyLnByZXZpb3VzKCkpICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgaGV4U3RyaW5nID0gIjB4IiArIEludGVnZXIudG9IZXhTdHJpbmcobykgKyAiICI7CisgICAgICAgICAgICAgICAgIGVycihoZXhTdHJpbmcpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZXJybG4oIiIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgZm9yIHNldFRleHQoKQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTZXRUZXh0KC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBlbl91cyA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlcjEgPSBlbl91cy5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IodGVzdDEpOworICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlcjIgPSBlbl91cy5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IodGVzdDIpOworICAgIAorICAgICAgICAvLyBSdW4gdGhyb3VnaCB0aGUgc2Vjb25kIGl0ZXJhdG9yIGp1c3QgdG8gZXhlcmNpc2UgaXQKKyAgICAgICAgaW50IGMgPSBpdGVyMi5uZXh0KCk7CisgICAgICAgIGludCBpID0gMDsKKyAgICAKKyAgICAgICAgd2hpbGUgKCArK2kgPCAxMCAmJiBjICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgYyA9IGl0ZXIyLm5leHQoKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIml0ZXIyLm5leHQoKSByZXR1cm5lZCBhbiBlcnJvci4iKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyBOb3cgc2V0IGl0IHRvIHBvaW50IHRvIHRoZSBzYW1lIHN0cmluZyBhcyB0aGUgZmlyc3QgaXRlcmF0b3IKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGl0ZXIyLnNldFRleHQodGVzdDEpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oImNhbGwgdG8gaXRlcjItPnNldFRleHQodGVzdDEpIGZhaWxlZC4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBhc3NlcnRFcXVhbChpdGVyMSwgaXRlcjIpOworICAgICAgICAKKyAgICAgICAgaXRlcjEucmVzZXQoKTsKKyAgICAgICAgLy9ub3cgdXNlIHRoZSBvdmVybG9hZGVkIHNldFRleHQoQ2hyYWN0ZXJJdGVyYXRvciYsIFVFcnJvckNvZGUpIGZ1bmN0aW9uIHRvIHNldCB0aGUgdGV4dAorICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciBjaGFyaXRlciA9IG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXN0MSk7CisgICAgICAgIHRyeSB7CisgICAgICAgIGl0ZXIyLnNldFRleHQoY2hhcml0ZXIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSApIHsKKyAgICAgICAgICAgIGVycmxuKCJjYWxsIHRvIGl0ZXIyLT5zZXRUZXh0KGNoYXJpdGVyKHRlc3QxKSkgZmFpbGVkLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGFzc2VydEVxdWFsKGl0ZXIxLCBpdGVyMik7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBmb3IgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIHByZXZpb3VzIGFuZCBuZXh0IGZvciB0aGUgd2hvbGUgc2V0IG9mCisgICAgICogdW5pY29kZSBjaGFyYWN0ZXJzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RVbmljb2RlQ2hhcigpIHsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgZW5fdXMgPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGl0ZXI7CisgICAgICAgIGNoYXIgY29kZXBvaW50OworICAgICAgICBTdHJpbmdCdWZmZXIgc291cmNlID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGNvZGVwb2ludCA9IDB4ZTQwOyBjb2RlcG9pbnQgPCAweGU0MjsgY29kZXBvaW50ICsrKSB7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0RlZmluZWQoY29kZXBvaW50KSkgeworICAgICAgICAgICAgICAgIHNvdXJjZS5hcHBlbmQoY29kZXBvaW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpdGVyID0gZW5fdXMuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHNvdXJjZS50b1N0cmluZygpKTsKKyAgICAgICAgLy8gQSBiYXNpYyB0ZXN0IHRvIHNlZSBpZiBpdCdzIHdvcmtpbmcgYXQgYWxsIAorICAgICAgICBiYWNrQW5kRm9ydGgoaXRlcik7CisgICAgICAgIGZvciAoY29kZXBvaW50ID0gMTsgY29kZXBvaW50IDwgMHhGRkZFOykgeworICAgICAgICAgICAgc291cmNlLmRlbGV0ZSgwLCBzb3VyY2UubGVuZ3RoKCkpOworICAgICAgICAgICAgd2hpbGUgKGNvZGVwb2ludCAlIDB4RkYgIT0gMCkgeworICAgICAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzRGVmaW5lZChjb2RlcG9pbnQpKSB7CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5hcHBlbmQoY29kZXBvaW50KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY29kZXBvaW50ICsrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0RlZmluZWQoY29kZXBvaW50KSkgeworICAgICAgICAgICAgICAgIHNvdXJjZS5hcHBlbmQoY29kZXBvaW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGNvZGVwb2ludCAhPSAweEZGRkYpIHsKKyAgICAgICAgICAgICAgICBjb2RlcG9pbnQgKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpdGVyID0gZW5fdXMuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHNvdXJjZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIC8vIEEgYmFzaWMgdGVzdCB0byBzZWUgaWYgaXQncyB3b3JraW5nIGF0IGFsbCAKKyAgICAgICAgICAgIGJhY2tBbmRGb3J0aChpdGVyKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0IGZvciBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgcHJldmlvdXMgYW5kIG5leHQgZm9yIHRoZSB3aG9sZSBzZXQgb2YKKyAgICAgKiB1bmljb2RlIGNoYXJhY3RlcnMgd2l0aCBub3JtYWxpemF0aW9uIG9uLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3ROb3JtYWxpemVkVW5pY29kZUNoYXIoKQorICAgIHsKKyAgICAgICAgLy8gdGhhaSBzaG91bGQgaGF2ZSBub3JtYWxpemF0aW9uIG9uCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIHRoX3RoID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHRoX3RoID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMb2NhbGUoInRoIiwgIlRIIikpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIGNyZWF0aW5nIFRoYWkgY29sbGF0b3IiKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmdCdWZmZXIgc291cmNlID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGNoYXIgY29kZXBvaW50ID0gMHhmNzE7IGNvZGVwb2ludCA8IDB4Zjc2OyBjb2RlcG9pbnQgKyspIHsKKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzRGVmaW5lZChjb2RlcG9pbnQpKSB7CisgICAgICAgICAgICAgICAgc291cmNlLmFwcGVuZChjb2RlcG9pbnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciB0ZW1wIAorICAgICAgICAgICAgICAgICAgICAgICAgPSB0aF90aC5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Ioc291cmNlLnRvU3RyaW5nKCkpOworICAgICAgICAvLyBBIGJhc2ljIHRlc3QgdG8gc2VlIGlmIGl0J3Mgd29ya2luZyBhdCBhbGwgCisgICAgICAgIGJhY2tBbmRGb3J0aCh0ZW1wKTsKKyAgICAgICAgZm9yIChjaGFyIGNvZGVwb2ludCA9IDB4MTsgY29kZXBvaW50IDwgMHhmZmZlOykgeworICAgICAgICAgICAgc291cmNlLmRlbGV0ZSgwLCBzb3VyY2UubGVuZ3RoKCkpOworICAgICAgICAgICAgd2hpbGUgKGNvZGVwb2ludCAlIDB4RkYgIT0gMCkgeworICAgICAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzRGVmaW5lZChjb2RlcG9pbnQpKSB7CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5hcHBlbmQoY29kZXBvaW50KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY29kZXBvaW50ICsrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0RlZmluZWQoY29kZXBvaW50KSkgeworICAgICAgICAgICAgICAgIHNvdXJjZS5hcHBlbmQoY29kZXBvaW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGNvZGVwb2ludCAhPSAweEZGRkYpIHsKKyAgICAgICAgICAgICAgICBjb2RlcG9pbnQgKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlciAKKyAgICAgICAgICAgICAgICAgICAgICAgID0gdGhfdGguZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHNvdXJjZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIC8vIEEgYmFzaWMgdGVzdCB0byBzZWUgaWYgaXQncyB3b3JraW5nIGF0IGFsbCAKKyAgICAgICAgICAgIGJhY2tBbmRGb3J0aChpdGVyKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIFRlc3RpbmcgdGhlIGRpc2NvbnRpZ3VvdXMgY29udHJhY3Rpb25zCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RGlzY29udGlndW91cygpIAorICAgIHsKKyAgICAgICAgU3RyaW5nIHJ1bGVzdHIgPSImeiA8IEFCIDwgWFx1MDMwMCA8IEFCQyA8IFhcdTAzMDBcdTAzMTUiOworICAgICAgICBTdHJpbmcgc3JjW10gPSB7IkFEQiIsICJBREJDIiwgIkFcdTAzMTVCIiwgIkFcdTAzMTVCQyIsCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBiYXNlIGNoYXJhY3RlciBibG9ja2VkCisgICAgICAgICAgICAgICAgICAgICAgICAiWERcdTAzMDAiLCAiWERcdTAzMDBcdTAzMTUiLAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm9uIGJsb2NraW5nIGNvbWJpbmluZyBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICJYXHUwMzE5XHUwMzAwIiwgIlhcdTAzMTlcdTAzMDBcdTAzMTUiLAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmxvY2tpbmcgY29tYmluaW5nIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICAgICAgICAgIlhcdTAzMTRcdTAzMDAiLCAiWFx1MDMxNFx1MDMwMFx1MDMxNSIsCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb250cmFjdGlvbiBwcmVmaXgKKyAgICAgICAgICAgICAgICAgICAgICAgICJBQkRDIiwgIkFCXHUwMzE1QyIsIlhcdTAzMDBEXHUwMzE1IiwgCisgICAgICAgICAgICAgICAgICAgICAgICAiWFx1MDMwMFx1MDMxOVx1MDMxNSIsICJYXHUwMzAwXHUwMzFBXHUwMzE1IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVuZHMgbm90IHdpdGggYSBjb250cmFjdGlvbiBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICJYXHUwMzE5XHUwMzAwRCIsICJYXHUwMzE5XHUwMzAwXHUwMzE1RCIsIAorICAgICAgICAgICAgICAgICAgICAgICAgIlhcdTAzMDBEXHUwMzE1RCIsICJYXHUwMzAwXHUwMzE5XHUwMzE1RCIsIAorICAgICAgICAgICAgICAgICAgICAgICAgIlhcdTAzMDBcdTAzMUFcdTAzMTVEIgorICAgICAgICB9OworICAgICAgICBTdHJpbmcgdGd0W10gPSB7Ly8gbm9uIGJsb2NraW5nIGNvbWJpbmluZyBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICJBIEQgQiIsICJBIEQgQkMiLCAiQSBcdTAzMTUgQiIsICJBIFx1MDMxNSBCQyIsCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBiYXNlIGNoYXJhY3RlciBibG9ja2VkCisgICAgICAgICAgICAgICAgICAgICAgICAiWCBEIFx1MDMwMCIsICJYIEQgXHUwMzAwXHUwMzE1IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vbiBibG9ja2luZyBjb21iaW5pbmcgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgICAgICAgICAiWFx1MDMwMCBcdTAzMTkiLCAiWFx1MDMwMFx1MDMxNSBcdTAzMTkiLAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmxvY2tpbmcgY29tYmluaW5nIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICAgICAgICAgIlggXHUwMzE0IFx1MDMwMCIsICJYIFx1MDMxNCBcdTAzMDBcdTAzMTUiLAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udHJhY3Rpb24gcHJlZml4CisgICAgICAgICAgICAgICAgICAgICAgICAiQUIgREMiLCAiQUIgXHUwMzE1IEMiLCJYXHUwMzAwIEQgXHUwMzE1IiwgCisgICAgICAgICAgICAgICAgICAgICAgICAiWFx1MDMwMFx1MDMxNSBcdTAzMTkiLCAiWFx1MDMwMCBcdTAzMUEgXHUwMzE1IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVuZHMgbm90IHdpdGggYSBjb250cmFjdGlvbiBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICJYXHUwMzAwIFx1MDMxOUQiLCAiWFx1MDMwMFx1MDMxNSBcdTAzMTlEIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAiWFx1MDMwMCBEXHUwMzE1RCIsICJYXHUwMzAwXHUwMzE1IFx1MDMxOUQiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICJYXHUwMzAwIFx1MDMxQVx1MDMxNUQiCisgICAgICAgIH07CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGVzdHIpOworICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGl0ZXIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBjb2xsLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcigiIik7CisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgcmVzdWx0aXRlciAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGNvbGwuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKCIiKTsgICAgCisgICAgICAgICAgICB3aGlsZSAoY291bnQgPCBzcmMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgaXRlci5zZXRUZXh0KHNyY1tjb3VudF0pOworICAgICAgICAgICAgICAgIGludCBzID0gMDsKKyAgICAgICAgICAgICAgICB3aGlsZSAocyA8IHRndFtjb3VudF0ubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGUgPSB0Z3RbY291bnRdLmluZGV4T2YoJyAnLCBzKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGUgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlID0gdGd0W2NvdW50XS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcmVzdWx0c3RyID0gdGd0W2NvdW50XS5zdWJzdHJpbmcocywgZSk7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdGl0ZXIuc2V0VGV4dChyZXN1bHRzdHIpOworICAgICAgICAgICAgICAgICAgICBpbnQgY2UgPSByZXN1bHRpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGNlICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjZSAhPSBpdGVyLm5leHQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEaXNjb250aWd1b3MgY29udHJhY3Rpb24gdGVzdCBtaXNtYXRjaCBhdCIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBjb3VudCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgY2UgPSByZXN1bHRpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBzID0gZSArIDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGl0ZXIucmVzZXQoKTsKKyAgICAgICAgICAgICAgICBiYWNrQW5kRm9ydGgoaXRlcik7CisgICAgICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IgcnVubmluZyBkaXNjb250aWd1b3VzIHRlc3RzICIgKyBlLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgKiBUZXN0IHRoZSBpbmNyZW1lbnRhbCBub3JtYWxpemF0aW9uCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Tm9ybWFsaXphdGlvbigpCisgICAgeworICAgICAgICBTdHJpbmcgcnVsZXMgPSAiJmEgPCBcdTAzMDBcdTAzMTUgPCBBXHUwMzAwXHUwMzE1IDwgXHUwMzE2XHUwMzE1QiA8IFx1MDMxNlx1MDMwMFx1MDMxNSI7CisgICAgICAgIFN0cmluZyB0ZXN0ZGF0YVtdID0geyJcdTFFRDkiLCAib1x1MDMyM1x1MDMwMiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDMwMFx1MDMxNSIsICJcdTAzMTVcdTAzMDAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBXHUwMzAwXHUwMzE1QiIsICJBXHUwMzE1XHUwMzAwQiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFcdTAzMTZcdTAzMTVCIiwgIkFcdTAzMTVcdTAzMTZCIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMzE2XHUwMzAwXHUwMzE1IiwgIlx1MDMxNVx1MDMwMFx1MDMxNiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFcdTAzMTZcdTAzMDBcdTAzMTVCIiwgIkFcdTAzMTVcdTAzMDBcdTAzMTZCIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMzE2XHUwMzE1XHUwMzAwIiwgIkFcdTAzMTZcdTAzMTVcdTAzMDBCIn07CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGwgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sbCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlcyk7CisgICAgICAgICAgICBjb2xsLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBpbiBjcmVhdGlvbiBvZiBjb2xsYXRvciB1c2luZyBydWxlcyAiICsgcnVsZXMpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlciA9IGNvbGwuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKCJ0ZXN0aW5nIik7CisgICAgICAgIGZvciAoaW50IGNvdW50ID0gMDsgY291bnQgPCB0ZXN0ZGF0YS5sZW5ndGg7IGNvdW50ICsrKSB7CisgICAgICAgICAgICBpdGVyLnNldFRleHQodGVzdGRhdGFbY291bnRdKTsKKyAgICAgICAgICAgIGJhY2tBbmRGb3J0aChpdGVyKTsKKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uS2FuYVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25LYW5hVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4ZmQxYjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uS2FuYVRlc3QuamF2YQpAQCAtMCwwICsxLDI2NCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAkU291cmNlOiAKKyAqICREYXRlOiAKKyAqICRSZXZpc2lvbjogCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYyLjEgOiBDb2xsYXRlL0NvbGxhdGlvbkthbmFUZXN0CisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9qYWNvbGwuY3BwCisgKiovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yOworIAoraW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisgCitwdWJsaWMgY2xhc3MgQ29sbGF0aW9uS2FuYVRlc3QgZXh0ZW5kcyBUZXN0Rm13a3sKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBuZXcgQ29sbGF0aW9uS2FuYVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdFNvdXJjZUNhc2VzID0geworICAgICAgICB7MHhmZjlFfSwKKyAgICAgICAgezB4MzA0Mn0sCisgICAgICAgIHsweDMwQTJ9LAorICAgICAgICB7MHgzMDQyLCAweDMwNDJ9LAorICAgICAgICB7MHgzMEEyLCAweDMwRkN9LAorICAgICAgICB7MHgzMEEyLCAweDMwRkMsIDB4MzBDOH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogIDYgKi8KKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdFRhcmdldENhc2VzID0geworICAgICAgICB7MHhGRjlGfSwKKyAgICAgICAgezB4MzBBMn0sCisgICAgICAgIHsweDMwNDIsIDB4MzA0Mn0sCisgICAgICAgIHsweDMwQTIsIDB4MzBGQ30sCisgICAgICAgIHsweDMwQTIsIDB4MzBGQywgMHgzMEM4fSwKKyAgICAgICAgezB4MzA0MiwgMHgzMDQyLCAweDMwNjh9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogIDYgKi8KKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50W10gcmVzdWx0cyA9IHsKKyAgICAgICAgLTEsCisgICAgICAgIDAsICAgLy9Db2xsYXRvcjo6TEVTUywgLyogS2F0YWthbmFzIGFuZCBIaXJhZ2FuYXMgYXJlIGVxdWFsIG9uIHRlcnRpYXJ5IGxldmVsKElDVSAyLjApKi8KKyAgICAgICAgLTEsCisgICAgICAgIDEsIC8vIENvbGxhdG9yOjpMRVNTLCAvKiBQcm9sb25nZWQgc291bmQgbWFyayBzb3J0cyBCRUZPUkUgZXF1aXZhbGVudCB2b3dlbCAoSUNVIDIuMCkqLworICAgICAgICAtMSwKKyAgICAgICAgLTEsICAgIC8vQ29sbGF0b3I6OkdSRUFURVIgLyogUHJvbG9uZ2VkIHNvdW5kIG1hcmsgc29ydHMgQkVGT1JFIGVxdWl2YWxlbnQgdm93ZWwgKElDVSAyLjApKi8vKiAgNiAqLworICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0QmFzZUNhc2VzID0geworICAgICAgICB7MHgzMEFCfSwKKyAgICAgICAgezB4MzBBQiwgMHgzMEFEfSwKKyAgICAgICAgezB4MzBBRH0sCisgICAgICAgIHsweDMwQUQsIDB4MzBBRH0KKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdFBsYWluRGFrdXRlbkhhbmRha3V0ZW5DYXNlcyA9IHsKKyAgICAgICAgezB4MzBDRiwgMHgzMEFCfSwKKyAgICAgICAgezB4MzBEMCwgMHgzMEFCfSwKKyAgICAgICAgezB4MzBDRiwgMHgzMEFEfSwKKyAgICAgICAgezB4MzBEMCwgMHgzMEFEfQorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0U21hbGxMYXJnZUNhc2VzID0geworICAgICAgICB7MHgzMEMzLCAweDMwQ0Z9LAorICAgICAgICB7MHgzMEM0LCAweDMwQ0Z9LAorICAgICAgICB7MHgzMEMzLCAweDMwRDB9LAorICAgICAgICB7MHgzMEM0LCAweDMwRDB9CisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RLYXRha2FuYUhpcmFnYW5hQ2FzZXMgPSB7CisgICAgICAgIHsweDMwNDIsIDB4MzBDM30sCisgICAgICAgIHsweDMwQTIsIDB4MzBDM30sCisgICAgICAgIHsweDMwNDIsIDB4MzBDNH0sCisgICAgICAgIHsweDMwQTIsIDB4MzBDNH0KKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdENob29vbktpZ29vQ2FzZXMgPSB7CisgICAgICAgIC8qMCovIHsweDMwQUIsIDB4MzBGQywgMHgzMDQyfSwKKyAgICAgICAgLyoxKi8gezB4MzBBQiwgMHgzMEZDLCAweDMwQTJ9LAorICAgICAgICAvKjIqLyB7MHgzMEFCLCAweDMwQTQsIDB4MzA0Mn0sCisgICAgICAgIC8qMyovIHsweDMwQUIsIDB4MzBBNCwgMHgzMEEyfSwKKyAgICAgICAgLyo2Ki8gezB4MzBBRCwgMHgzMEZDLCAweDMwNDJ9LCAvKiBQcm9sb25nZWQgc291bmQgbWFyayBzb3J0cyBCRUZPUkUgZXF1aXZhbGVudCB2b3dlbCAoSUNVIDIuMCkqLworICAgICAgICAvKjcqLyB7MHgzMEFELCAweDMwRkMsIDB4MzBBMn0sIC8qIFByb2xvbmdlZCBzb3VuZCBtYXJrIHNvcnRzIEJFRk9SRSBlcXVpdmFsZW50IHZvd2VsIChJQ1UgMi4wKSovCisgICAgICAgIC8qNCovIHsweDMwQUQsIDB4MzBBNCwgMHgzMDQyfSwKKyAgICAgICAgLyo1Ki8gezB4MzBBRCwgMHgzMEE0LCAweDMwQTJ9CisgICAgfTsKKyAgICAgICAgCisgICAgcHJpdmF0ZSBDb2xsYXRvciBteUNvbGxhdGlvbiA9IG51bGw7CisgICAgCisgICAgcHVibGljIENvbGxhdGlvbkthbmFUZXN0KCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgbXlDb2xsYXRpb24gPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuSkFQQU5FU0UpOyAgICAKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogaW4gY3JlYXRpb24gb2YgY29sbGF0b3Igb2YgSkFQQU5FU0UgbG9jYWxlIik7CisgICAgICAgICAgICByZXR1cm47ICAgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gcGVyZm9ybXMgdGVzdCB3aXRoIHN0cmVuZ3RoIFRFUklBUlkKKyAgICBwdWJsaWMgdm9pZCBUZXN0VGVydGlhcnkoKSB7CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IDY7IGkrKykgeworICAgICAgICAgICAgZG9UZXN0KHRlc3RTb3VyY2VDYXNlc1tpXSwgdGVzdFRhcmdldENhc2VzW2ldLCByZXN1bHRzW2ldKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qIFRlc3RpbmcgYmFzZSBsZXR0ZXJzICovCisgICAgcHVibGljIHZvaWQgVGVzdEJhc2UoKSB7CisgICAgICAgIGludCBpOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IDMgOyBpKyspIHsKKyAgICAgICAgICAgIGRvVGVzdCh0ZXN0QmFzZUNhc2VzW2ldLCB0ZXN0QmFzZUNhc2VzW2kgKyAxXSwgLTEpOworICAgICAgICB9CisgICAgfQorCisgICAgLyogVGVzdGluZyBwbGFpbiwgRGFrdS10ZW4sIEhhbmRha3UtdGVuIGxldHRlcnMgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UGxhaW5EYWt1dGVuSGFuZGFrdXRlbigpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlNFQ09OREFSWSk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCAzIDsgaSsrKSB7CisgICAgICAgICAgICBkb1Rlc3QodGVzdFBsYWluRGFrdXRlbkhhbmRha3V0ZW5DYXNlc1tpXSwgdGVzdFBsYWluRGFrdXRlbkhhbmRha3V0ZW5DYXNlc1tpICsgMV0sIC0xKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qIAorICAgICogVGVzdCBTbWFsbCwgTGFyZ2UgbGV0dGVycworICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFNtYWxsTGFyZ2UoKSB7CisgICAgICAgIGludCBpOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IDMgOyBpKyspIHsKKyAgICAgICAgICAgIGRvVGVzdCh0ZXN0U21hbGxMYXJnZUNhc2VzW2ldLCB0ZXN0U21hbGxMYXJnZUNhc2VzW2kgKyAxXSwgLTEpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAqIFRlc3QgS2F0YWthbmEsIEhpcmFnYW5hIGxldHRlcnMKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RLYXRha2FuYUhpcmFnYW5hKCkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuUVVBVEVSTkFSWSk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCAzIDsgaSsrKSB7CisgICAgICAgICAgICBkb1Rlc3QodGVzdEthdGFrYW5hSGlyYWdhbmFDYXNlc1tpXSwgdGVzdEthdGFrYW5hSGlyYWdhbmFDYXNlc1tpICsgMV0sIC0xKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgKiBUZXN0IENob28tb24ga2lnb28KKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDaG9vb25LaWdvbygpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlFVQVRFUk5BUlkpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgNyA7IGkrKykgeworICAgICAgICAgICAgZG9UZXN0KHRlc3RDaG9vb25LaWdvb0Nhc2VzW2ldLCB0ZXN0Q2hvb29uS2lnb29DYXNlc1tpICsgMV0sIC0xKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIG1haW4gdGVzdCByb3V0aW5lLCB0ZXN0cyBydWxlcyBzcGVjaWZpYyB0byAiS2FuYSIgbG9jYWxlCisgICAgcHJpdmF0ZSB2b2lkIGRvVGVzdChjaGFyW10gc291cmNlLCBjaGFyW10gdGFyZ2V0LCBpbnQgcmVzdWx0KXsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyBzID0gbmV3IFN0cmluZyhzb3VyY2UpOworICAgICAgICBTdHJpbmcgdCA9IG5ldyBTdHJpbmcodGFyZ2V0KTsKKyAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQgPSBteUNvbGxhdGlvbi5jb21wYXJlKHMsIHQpOworICAgICAgICBDb2xsYXRpb25LZXkgc29ydEtleTEsIHNvcnRLZXkyOworICAgICAgICBzb3J0S2V5MSA9IG15Q29sbGF0aW9uLmdldENvbGxhdGlvbktleShzKTsKKyAgICAgICAgc29ydEtleTIgPSBteUNvbGxhdGlvbi5nZXRDb2xsYXRpb25LZXkodCk7CisgICAgICAgIGludCBrZXlSZXN1bHQgPSBzb3J0S2V5MS5jb21wYXJlVG8oc29ydEtleTIpOworICAgICAgICByZXBvcnRDUmVzdWx0KHMsIHQsIHNvcnRLZXkxLCBzb3J0S2V5MiwgY29tcGFyZVJlc3VsdCwga2V5UmVzdWx0LCBjb21wYXJlUmVzdWx0LCByZXN1bHQpOworICAgICAgICAKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHJlcG9ydENSZXN1bHQoIFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQsIENvbGxhdGlvbktleSBzb3VyY2VLZXksIENvbGxhdGlvbktleSB0YXJnZXRLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb21wYXJlUmVzdWx0LCBpbnQga2V5UmVzdWx0LCBpbnQgaW5jUmVzdWx0LCBpbnQgZXhwZWN0ZWRSZXN1bHQgKXsKKyAgICAgICAgaWYgKGV4cGVjdGVkUmVzdWx0IDwgLTEgfHwgZXhwZWN0ZWRSZXN1bHQgPiAxKSB7CisgICAgICAgICAgICBlcnJsbigiKioqKiogaW52YWxpZCBjYWxsIHRvIHJlcG9ydENSZXN1bHQgKioqKiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBvazEgPSAoY29tcGFyZVJlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCk7CisgICAgICAgIGJvb2xlYW4gb2syID0gKGtleVJlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCk7CisgICAgICAgIGJvb2xlYW4gb2szID0gKGluY1Jlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCk7CisKKyAgICAgICAgaWYgKG9rMSAmJiBvazIgJiYgb2szICYmICFpc1ZlcmJvc2UoKSl7CisgICAgICAgICAgICByZXR1cm47ICAgIAorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIG1zZzEgPSBvazE/ICJPazogY29tcGFyZShcIiIgOiAiRkFJTDogY29tcGFyZShcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgU3RyaW5nIG1zZzMgPSAiXCIpIHJldHVybmVkICI7CisgICAgICAgICAgICBTdHJpbmcgbXNnNCA9ICI7IGV4cGVjdGVkICI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBzRXhwZWN0ID0gbmV3IFN0cmluZygiIik7CisgICAgICAgICAgICBTdHJpbmcgc1Jlc3VsdCA9IG5ldyBTdHJpbmcoIiIpOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoY29tcGFyZVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBzRXhwZWN0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChleHBlY3RlZFJlc3VsdCwgc0V4cGVjdCk7CisgICAgICAgICAgICBpZiAob2sxKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1zZzEgPSBvazIgPyAiT2s6IGtleShcIiIgOiAiRkFJTDoga2V5KFwiIjsKKyAgICAgICAgICAgIG1zZzIgPSAiXCIpLmNvbXBhcmVUbyhrZXkoXCIiOworICAgICAgICAgICAgbXNnMyA9ICJcIikpIHJldHVybmVkICI7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChrZXlSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgaWYgKG9rMikgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgICAgIG1zZzEgPSAiICAiOworICAgICAgICAgICAgICAgIG1zZzIgPSAiIHZzLiAiOworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBwcmV0dGlmeShzb3VyY2VLZXkpICsgbXNnMiArIHByZXR0aWZ5KHRhcmdldEtleSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBtc2cxID0gb2szID8gIk9rOiBpbmNDb21wYXJlKFwiIiA6ICJGQUlMOiBpbmNDb21wYXJlKFwiIjsKKyAgICAgICAgICAgIG1zZzIgPSAiXCIsIFwiIjsKKyAgICAgICAgICAgIG1zZzMgPSAiXCIpIHJldHVybmVkICI7CisKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGluY1Jlc3VsdCwgc1Jlc3VsdCk7CisKKyAgICAgICAgICAgIGlmIChvazMpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgYXBwZW5kQ29tcGFyZVJlc3VsdChpbnQgcmVzdWx0LCBTdHJpbmcgdGFyZ2V0KXsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSAtMSkgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJMRVNTIjsKKyAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gMCkgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJFUVVBTCI7CisgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IDEpIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiR1JFQVRFUiI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgaHVoID0gIj8iOworICAgICAgICAgICAgdGFyZ2V0ICs9IGh1aCArIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KKyAgICAKKyAgICBTdHJpbmcgcHJldHRpZnkoQ29sbGF0aW9uS2V5IHNvdXJjZUtleSkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgYnl0ZVtdIGJ5dGVzPSBzb3VyY2VLZXkudG9CeXRlQXJyYXkoKTsKKyAgICAgICAgU3RyaW5nIHRhcmdldCA9ICJbIjsKKyAgICAKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGJ5dGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gSW50ZWdlci50b0hleFN0cmluZyhieXRlc1tpXSk7CisgICAgICAgICAgICB0YXJnZXQgKz0gIiAiOworICAgICAgICB9CisgICAgICAgIHRhcmdldCArPSAiXSI7CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25NaXNjVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbk1pc2NUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjQ0MjQwZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25NaXNjVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTU4MSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAkU291cmNlOiAKKyAqICREYXRlOiAKKyAqICRSZXZpc2lvbjogCisgKgorICoqKngqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2Mi4xIDogY2ludGx0ZXN0CisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9jaW50bHRlc3QvY21zY2NvbGwuYworICoqLworIAorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitwdWJsaWMgY2xhc3MgQ29sbGF0aW9uTWlzY1Rlc3QgZXh0ZW5kcyBUZXN0Rm13a3sKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgQ29sbGF0aW9uTWlzY1Rlc3QoKS5ydW4oYXJncyk7CisgICAgICAgIC8vIG5ldyBDb2xsYXRpb25NaXNjVGVzdCgpLlRlc3RSdWxlT3B0aW9ucygpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0UnVsZU9wdGlvbnMoKSB7CisgICAgICAgLy8gdmFsdWVzIGhlcmUgYXJlIGhhcmRjb2RlZCBhbmQgYXJlIGNvcnJlY3QgZm9yIHRoZSBjdXJyZW50IFVDQSB3aGVuIAorICAgICAgIC8vIHRoZSBVQ0EgY2hhbmdlcywgb25lIG1pZ2h0IGJlIGZvcmNlZCB0byBjaGFuZ2UgdGhlc2UgdmFsdWVzLiAKKyAgICAgICAvLyAoXFx1MDJkMCwgXFxVMDAwMTBGRkZDIGV0Yy4uLikgCisgICAgICAgIFN0cmluZ1tdIHJ1bGVzID0geworICAgICAgICAgICAgLy8gY2Fubm90IHRlc3QgdGhpcyBhbnltb3JlLCBhcyBbbGFzdCBwcmltYXJ5IGlnbm9yYWJsZV0gZG9lc24ndCAKKyAgICAgICAgICAgIC8vIGhhdmUgYSAgY29kZSBwb2ludCBhc3NvY2lhdGVkIHRvIGl0IGFueW1vcmUgIAorICAgICAgICAgICAgLy8gIiZbYmVmb3JlIDNdW2xhc3QgcHJpbWFyeSBpZ25vcmFibGVdPDw8ayIsCisgICAgICAgICAgICAvLyAtIGFsbCBiZWZvcmVzIGhlcmUgYW1vdW50IHRvIHplcm8gICAgICAgCisgICAgICAgICAgICAiJltiZWZvcmUgMV1bZmlyc3QgdGVydGlhcnkgaWdub3JhYmxlXTw8PGEiLAorICAgICAgICAgICAgIiZbYmVmb3JlIDFdW2xhc3QgdGVydGlhcnkgaWdub3JhYmxlXTw8PGEiLCAgCisgICAgICAgICAgICAiJltiZWZvcmUgMV1bZmlyc3Qgc2Vjb25kYXJ5IGlnbm9yYWJsZV08PDxhIiwKKyAgICAgICAgICAgICImW2JlZm9yZSAxXVtsYXN0IHNlY29uZGFyeSBpZ25vcmFibGVdPDw8YSIsIAorICAgICAgICAgICAgLy8gJ25vcm1hbCcgYmVmb3JlcyAgCisgICAgICAgICAgICAiJltiZWZvcmUgMV1bZmlyc3QgcHJpbWFyeSBpZ25vcmFibGVdPDw8Yzw8PGIgJltmaXJzdCBwcmltYXJ5IGlnbm9yYWJsZV08YSIsCisgICAgICAgICAgICAvLyB3ZSBkb24ndCBoYXZlIGEgY29kZSBwb2ludCB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBsYXN0IHByaW1hcnkgCisgICAgICAgICAgICAvLyBpZ25vcmFibGUgCisgICAgICAgICAgICAiJltiZWZvcmUgMl1bbGFzdCBwcmltYXJ5IGlnbm9yYWJsZV08PDxjPDw8YiAmW2xhc3QgcHJpbWFyeSBpZ25vcmFibGVdPGEiLAorICAgICAgICAgICAgIiZbYmVmb3JlIDFdW2ZpcnN0IHZhcmlhYmxlXTw8PGM8PDxiICZbZmlyc3QgdmFyaWFibGVdPGEiLAorICAgICAgICAgICAgIiZbbGFzdCB2YXJpYWJsZV08YSAmW2JlZm9yZSAxXVtsYXN0IHZhcmlhYmxlXTw8PGM8PDxiICIsCisgICAgICAgICAgICAiJltmaXJzdCByZWd1bGFyXTxhICZbYmVmb3JlIDFdW2ZpcnN0IHJlZ3VsYXJdPGIiLCAKKyAgICAgICAgICAgICImW2JlZm9yZSAxXVtsYXN0IHJlZ3VsYXJdPGIgJltsYXN0IHJlZ3VsYXJdPGEiLAorICAgICAgICAgICAgIiZbYmVmb3JlIDFdW2ZpcnN0IGltcGxpY2l0XTxiICZbZmlyc3QgaW1wbGljaXRdPGEiLAorICAgICAgICAgICAgIiZbYmVmb3JlIDFdW2xhc3QgaW1wbGljaXRdPGIgJltsYXN0IGltcGxpY2l0XTxhIiwgCisgICAgICAgICAgICAiJltsYXN0IHZhcmlhYmxlXTx6JltsYXN0IHByaW1hcnkgaWdub3JhYmxlXTx4JltsYXN0IHNlY29uZGFyeSBpZ25vcmFibGVdPDx5JltsYXN0IHRlcnRpYXJ5IGlnbm9yYWJsZV08PDx3Jlt0b3BdPHUiLAorICAgICAgICAgIH07CisgICAgICAgIFN0cmluZ1tdW10gZGF0YSA9IHsKKyAgICAgICAgICAgICAgICAvLyB7ImsiLCAiXHUyMGUzIn0sCisgICAgICAgICAgICAgICAgeyJcXHUwMDAwIiwgImEifSwgLy8geW91IGNhbm5vdCBnbyBiZWZvcmUgZmlyc3QgdGVydGlhcnkgaWdub3JhYmxlIAorICAgICAgICAgICAgICAgIHsiXFx1MDAwMCIsICJhIn0sIC8vIHlvdSBjYW5ub3QgZ28gYmVmb3JlIGxhc3QgdGVydGlhcnkgaWdub3JhYmxlIAorICAgICAgICAgICAgICAgIHsiXFx1MDAwMCIsICJhIn0sIC8vIHlvdSBjYW5ub3QgZ28gYmVmb3JlIGZpcnN0IHNlY29uZGFyeSBpZ25vcmFibGUKKyAgICAgICAgICAgICAgICB7IlxcdTAwMDAiLCAiYSJ9LCAvLyB5b3UgY2Fubm90IGdvIGJlZm9yZSBmaXJzdCBzZWNvbmRhcnkgaWdub3JhYmxlCisgICAgICAgICAgICAgICAgeyJjIiwgImIiLCAiXFx1MDMzMiIsICJhIn0sCisgICAgICAgICAgICAgICAgeyJcXHUwMzMyIiwgIlxcdTIwZTMiLCAiYyIsICJiIiwgImEifSwKKyAgICAgICAgICAgICAgICB7ImMiLCAiYiIsICJcXHUwMDA5IiwgImEiLCAiXFx1MDAwYSJ9LAorICAgICAgICAgICAgICAgIHsiYyIsICJiIiwgIlxcdUQ4MDBcXHVERjIzIiwgImEiLCAiXFx1MDJkMCJ9LAorICAgICAgICAgICAgICAgIHsiYiIsICJcXHUwMmQwIiwgImEiLCAiXFx1MDJkMSJ9LAorICAgICAgICAgICAgICAgIHsiYiIsICJcXHVkODAxXFx1ZGMyNSIsICJhIiwgIlxcdTRlMDAifSwKKyAgICAgICAgICAgICAgICB7ImIiLCAiXFx1NGUwMCIsICJhIiwgIlxcdTRlMDEifSwKKyAgICAgICAgICAgICAgICB7ImIiLCAiXFxVMDAxMEZGRkMiLCAiYSJ9LAorICAgICAgICAgICAgICAgIHsiXHVmZmZiIiwgICJ3IiwgInkiLCAiXHUyMGUzIiwgIngiLCAiXHUxMzdjIiwgInoiLCAidSJ9LAorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGk8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyKHJ1bGVzW2ldLCBkYXRhW2ldKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICB2b2lkIGdlbmVyaWNSdWxlc1N0YXJ0ZXIoU3RyaW5nIHJ1bGVzLCBTdHJpbmdbXSBzKSB7CisgICAgICAgIGdlbmVyaWNSdWxlc1Rlc3RXaXRoUmVzdWx0KHJ1bGVzLCBzLCAtMSk7CisgICAgfQorICAgIAorICAgIHZvaWQgZ2VuZXJpY1J1bGVzVGVzdFdpdGhSZXN1bHQoU3RyaW5nIHJ1bGVzLCBTdHJpbmdbXSBzLCBpbnQgcmVzdWx0KSB7CisgICAgICAgIAorICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbGwgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZXMpOworICAgICAgICAgICAgLy8gbG9nbG4oIlJ1bGVzIHN0YXJ0ZXIgZm9yICIgKyBydWxlcyk7CisgICAgICAgICAgICBnZW5lcmljT3JkZXJpbmdUZXN0V2l0aFJlc3VsdChjb2xsLCBzLCByZXN1bHQpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIlVuYWJsZSB0byBvcGVuIGNvbGxhdG9yIHdpdGggcnVsZXMgIiArIHJ1bGVzKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICB2b2lkIGdlbmVyaWNPcmRlcmluZ1Rlc3RXaXRoUmVzdWx0KENvbGxhdG9yIGNvbGwsIFN0cmluZ1tdIHMsIGludCByZXN1bHQpIHsKKyAgICAgICAgU3RyaW5nIHQxID0gIiI7CisgICAgICAgIFN0cmluZyB0MiA9ICIiOworICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlciA9IG51bGw7CisgICAgICAgIAorICAgICAgICBpbnQgaSA9IDAsIGogPSAwOworICAgICAgICAvLyBsb2dsbigidGVzdGluZyBzZXF1ZW5jZToiKTsKKyAgICAgICAgZm9yKGkgPSAwOyBpIDwgcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgLy8gbG9nbG4oc1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgaXRlciA9ICgoUnVsZUJhc2VkQ29sbGF0b3IpIGNvbGwpLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcih0MSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiQ3JlYXRpb24gb2YgaXRlcmF0b3IgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAgICAgZm9yKGkgPSAwOyBpIDwgcy5sZW5ndGggLSAxOyBpKyspIHsKKyAgICAgICAgICAgIGZvcihqID0gaSsxOyBqIDwgcy5sZW5ndGg7IGorKykgeworICAgICAgICAgICAgICAgIHQxID0gVXRpbGl0eS51bmVzY2FwZShzW2ldKTsKKyAgICAgICAgICAgICAgICB0MiA9IFV0aWxpdHkudW5lc2NhcGUoc1tqXSk7CisgICAgICAgICAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKGkgKyAiICIgKyBqKTsKKyAgICAgICAgICAgICAgICBkb1Rlc3QoY29sbCwgdDEsIHQyLCByZXN1bHQpOworICAgICAgICAgICAgICAgIC8qIHN5bndlZSA6IGFkZGVkIGNvbGxhdGlvbiBlbGVtZW50IGl0ZXJhdG9yIHRlc3QgKi8KKyAgICAgICAgICAgICAgICBpdGVyLnNldFRleHQodDEpOworICAgICAgICAgICAgICAgIGJhY2tBbmRGb3J0aChpdGVyKTsKKyAgICAgICAgICAgICAgICBpdGVyLnNldFRleHQodDIpOworICAgICAgICAgICAgICAgIGJhY2tBbmRGb3J0aChpdGVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgZG9UZXN0KENvbGxhdG9yIG15Q29sbGF0aW9uLCBTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0LCBpbnQgcmVzdWx0KSB7CisgICAgICAgIGRvVGVzdFZhcmlhbnQobXlDb2xsYXRpb24sIHNvdXJjZSwgdGFyZ2V0LCByZXN1bHQpOworICAgICAgICBpZihyZXN1bHQgPCAwKSB7CisgICAgICAgICAgICBkb1Rlc3RWYXJpYW50KG15Q29sbGF0aW9uLCB0YXJnZXQsIHNvdXJjZSwgMSk7CisgICAgICAgIH0gZWxzZSBpZihyZXN1bHQgPiAwKSB7CisgICAgICAgICAgICBkb1Rlc3RWYXJpYW50KG15Q29sbGF0aW9uLCB0YXJnZXQsIHNvdXJjZSwgLTEpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZG9UZXN0VmFyaWFudChteUNvbGxhdGlvbiwgdGFyZ2V0LCBzb3VyY2UsIDApOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHZvaWQgZG9UZXN0VmFyaWFudChDb2xsYXRvciBteUNvbGxhdGlvbiwgU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCwgaW50IHJlc3VsdCkgeworICAgICAgICBpbnQgaW5jUmVzdWx0ID0gcmVzdWx0OworICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCAgPSBteUNvbGxhdGlvbi5jb21wYXJlKHNvdXJjZSwgdGFyZ2V0KTsKKyAgICAgICAgQ29sbGF0aW9uS2V5IHNvcnRLZXkxID0gbXlDb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHNvdXJjZSk7CisgICAgICAgIENvbGxhdGlvbktleSBzb3J0S2V5MiA9IG15Q29sbGF0aW9uLmdldENvbGxhdGlvbktleSh0YXJnZXQpOworICAgICAgICAKKyAgICAgICAgaW50IHRlbXA9IHNvcnRLZXkxLmNvbXBhcmVUbyhzb3J0S2V5Mik7CisgICAgICAgIGludCBrZXlSZXN1bHQ7CisgICAgICAgIGlmKHRlbXAgPCAwKSB7CisgICAgICAgICAgICBrZXlSZXN1bHQ9LTE7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZih0ZW1wID4gMCkgeworICAgICAgICAgICAga2V5UmVzdWx0PSAxOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAga2V5UmVzdWx0ID0gMDsKKyAgICAgICAgfQorICAgICAgICByZXBvcnRDUmVzdWx0KCBzb3VyY2UsIHRhcmdldCwgc29ydEtleTEsIHNvcnRLZXkyLCBjb21wYXJlUmVzdWx0LCBrZXlSZXN1bHQsIGluY1Jlc3VsdCwgcmVzdWx0ICk7CisgICAgfQorICAgIAorICAgIHZvaWQgcmVwb3J0Q1Jlc3VsdChTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0LCBDb2xsYXRpb25LZXkgc291cmNlS2V5LCBDb2xsYXRpb25LZXkgdGFyZ2V0S2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQsIGludCBrZXlSZXN1bHQsIGludCBpbmNSZXN1bHQsIGludCBleHBlY3RlZFJlc3VsdCApIHsKKyAgICAgICAgaWYgKGV4cGVjdGVkUmVzdWx0IDwgLTEgfHwgZXhwZWN0ZWRSZXN1bHQgPiAxKSB7CisgICAgICAgICAgICBlcnJsbigiKioqKiogaW52YWxpZCBjYWxsIHRvIHJlcG9ydENSZXN1bHQgKioqKiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGJvb2xlYW4gb2sxID0gKGNvbXBhcmVSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMiA9IChrZXlSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMyA9IChpbmNSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBpZiAob2sxICYmIG9rMiAmJiBvazMgLyogc3lud2VlIHRvIHVuZG8gJiYgIWlzVmVyYm9zZSgpKi8pIHsKKyAgICAgICAgICAgIHJldHVybjsgICAgCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgbXNnMSA9IG9rMT8gIk9rOiBjb21wYXJlKFwiIiA6ICJGQUlMOiBjb21wYXJlKFwiIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2cyID0gIlwiLCBcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2c0ID0gIjsgZXhwZWN0ZWQgIjsKKyAgICAgICAgICAgIFN0cmluZyBzRXhwZWN0ID0gbmV3IFN0cmluZygiIik7CisgICAgICAgICAgICBTdHJpbmcgc1Jlc3VsdCA9IG5ldyBTdHJpbmcoIiIpOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoY29tcGFyZVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBzRXhwZWN0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChleHBlY3RlZFJlc3VsdCwgc0V4cGVjdCk7CisgICAgICAgICAgICBpZiAob2sxKSB7CisgICAgICAgICAgICAgICAgLy8gbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtc2cxID0gb2syID8gIk9rOiBrZXkoXCIiIDogIkZBSUw6IGtleShcIiI7CisgICAgICAgICAgICBtc2cyID0gIlwiKS5jb21wYXJlVG8oa2V5KFwiIjsKKyAgICAgICAgICAgIG1zZzMgPSAiXCIpKSByZXR1cm5lZCAiOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoa2V5UmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIGlmIChvazIpIHsKKyAgICAgICAgICAgICAgICAvLyBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgICAgICBtc2cxID0gIiAgIjsKKyAgICAgICAgICAgICAgICBtc2cyID0gIiB2cy4gIjsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgcHJldHRpZnkoc291cmNlS2V5KSArIG1zZzIgKyBwcmV0dGlmeSh0YXJnZXRLZXkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1zZzEgPSBvazMgPyAiT2s6IGluY0NvbXBhcmUoXCIiIDogIkZBSUw6IGluY0NvbXBhcmUoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGluY1Jlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBpZiAob2szKSB7CisgICAgICAgICAgICAgICAgLy8gbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICB9ICAgICAgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorICAgIAorICAgIFN0cmluZyBhcHBlbmRDb21wYXJlUmVzdWx0KGludCByZXN1bHQsIFN0cmluZyB0YXJnZXQpIHsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSAtMSkgeyAgLy9MRVNTCisgICAgICAgICAgICB0YXJnZXQgKz0gIkxFU1MiOworICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSAwKSB7ICAvL0VRVUFMCisgICAgICAgICAgICB0YXJnZXQgKz0gIkVRVUFMIjsKKyAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gMSkgeyAgLy9HUkVBVEVSCisgICAgICAgICAgICB0YXJnZXQgKz0gIkdSRUFURVIiOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIGh1aCA9ICI/IjsKKyAgICAgICAgICAgIHRhcmdldCArPSBodWggKyByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9CisgICAgCisgICAgU3RyaW5nIHByZXR0aWZ5KENvbGxhdGlvbktleSBzb3VyY2VLZXkpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGJ5dGVbXSBieXRlcz0gc291cmNlS2V5LnRvQnl0ZUFycmF5KCk7CisgICAgICAgIFN0cmluZyB0YXJnZXQgPSAiWyI7CisgICAgCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdGFyZ2V0ICs9IEludGVnZXIudG9IZXhTdHJpbmcoYnl0ZXNbaV0pOworICAgICAgICAgICAgdGFyZ2V0ICs9ICIgIjsKKyAgICAgICAgfQorICAgICAgICB0YXJnZXQgKz0gIl0iOworICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gaW50ZWdlciBhcnJheSBjb250YWluaW5nIGFsbCBvZiB0aGUgY29sbGF0aW9uIG9yZGVycworICAgICAqIHJldHVybmVkIGJ5IGNhbGxzIHRvIG5leHQgb24gdGhlIHNwZWNpZmllZCBpdGVyYXRvcgorICAgICAqLworICAgIGludFtdIGdldE9yZGVycyhDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlcikgeworICAgICAgICBpbnQgbWF4U2l6ZSA9IDEwMDsKKyAgICAgICAgaW50IHNpemUgPSAwOworICAgICAgICBpbnRbXSBvcmRlcnMgPSBuZXcgaW50W21heFNpemVdOworICAgIAorICAgICAgICBpbnQgb3JkZXI7CisgICAgICAgIHdoaWxlICgob3JkZXIgPSBpdGVyLm5leHQoKSkgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgaWYgKHNpemUgPT0gbWF4U2l6ZSkgeworICAgICAgICAgICAgICAgIG1heFNpemUgKj0gMjsKKyAgICAgICAgICAgICAgICBpbnRbXSB0ZW1wID0gbmV3IGludFttYXhTaXplXTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG9yZGVycywgMCwgdGVtcCwgIDAsIHNpemUpOworICAgICAgICAgICAgICAgIG9yZGVycyA9IHRlbXA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvcmRlcnNbc2l6ZSsrXSA9IG9yZGVyOworICAgICAgICB9CisgICAgCisgICAgICAgIGlmIChtYXhTaXplID4gc2l6ZSkKKyAgICAgICAgeworICAgICAgICAgICAgaW50W10gdGVtcCA9IG5ldyBpbnRbc2l6ZV07CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG9yZGVycywgMCwgdGVtcCwgIDAsIHNpemUpOworICAgICAgICAgICAgb3JkZXJzID0gdGVtcDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gb3JkZXJzOworICAgIH0KKyAgICAKKyAgICB2b2lkIGJhY2tBbmRGb3J0aChDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlcikgeworICAgICAgICAvLyBSdW4gdGhyb3VnaCB0aGUgaXRlcmF0b3IgZm9yd2FyZHMgYW5kIHN0aWNrIGl0IGludG8gYW4gYXJyYXkKKyAgICAgICAgaW50W10gb3JkZXJzID0gZ2V0T3JkZXJzKGl0ZXIpOworICAgIAorICAgICAgICAvLyBOb3cgZ28gdGhyb3VnaCBpdCBiYWNrd2FyZHMgYW5kIG1ha2Ugc3VyZSB3ZSBnZXQgdGhlIHNhbWUgdmFsdWVzCisgICAgICAgIGludCBpbmRleCA9IG9yZGVycy5sZW5ndGg7CisgICAgICAgIGludCBvOworICAgIAorICAgICAgICAvLyByZXNldCB0aGUgaXRlcmF0b3IKKyAgICAgICAgaXRlci5yZXNldCgpOworICAgIAorICAgICAgICB3aGlsZSAoKG8gPSBpdGVyLnByZXZpb3VzKCkpICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgIGlmIChvICE9IG9yZGVyc1stLWluZGV4XSkgeworICAgICAgICAgICAgICAgIGlmIChvID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaW5kZXggKys7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGluZGV4ID4gMCAmJiBvcmRlcnNbLS1pbmRleF0gPT0gMCkgeworICAgICAgICAgICAgICAgICAgICB9IGlmIChvICE9IG9yZGVyc1tpbmRleF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJNaXNtYXRjaCBhdCBpbmRleCAiICsgaW5kZXggKyAiOiAweCIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKG9yZGVyc1tpbmRleF0pICsgIiB2cyAweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKG8pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIHdoaWxlIChpbmRleCAhPSAwICYmIG9yZGVyc1tpbmRleCAtIDFdID09IDApIHsKKyAgICAgICAgICBpbmRleCAtLTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpZiAoaW5kZXggIT0gMCkgeworICAgICAgICAgICAgU3RyaW5nIG1zZyA9ICJEaWRuJ3QgZ2V0IGJhY2sgdG8gYmVnaW5uaW5nIC0gaW5kZXggaXMgIjsKKyAgICAgICAgICAgIGVycmxuKG1zZyArIGluZGV4KTsKKyAgICAKKyAgICAgICAgICAgIGl0ZXIucmVzZXQoKTsKKyAgICAgICAgICAgIGVycigibmV4dDogIik7CisgICAgICAgICAgICB3aGlsZSAoKG8gPSBpdGVyLm5leHQoKSkgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgIFN0cmluZyBoZXhTdHJpbmcgPSAiMHgiICsgSW50ZWdlci50b0hleFN0cmluZyhvKSArICIgIjsKKyAgICAgICAgICAgICAgICBlcnIoaGV4U3RyaW5nKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVycmxuKCIiKTsKKyAgICAgICAgICAgIGVycigicHJldjogIik7CisgICAgICAgICAgICB3aGlsZSAoKG8gPSBpdGVyLnByZXZpb3VzKCkpICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgaGV4U3RyaW5nID0gIjB4IiArIEludGVnZXIudG9IZXhTdHJpbmcobykgKyAiICI7CisgICAgICAgICAgICAgICAgIGVycihoZXhTdHJpbmcpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZXJybG4oIiIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RCZWZvcmVQcmVmaXhGYWlsdXJlKCkgeworICAgICAgICBTdHJpbmdbXSBydWxlcyA9IHsKKyAgICAgICAgICAgICImZyA8PDwgYSZbYmVmb3JlIDNdXHVmZjQxIDw8PCB4IiwKKyAgICAgICAgICAgICImXHUzMEE3PVx1MzBBNz1cdTMwNDc9XHVmZjZhJlx1MzBBOD1cdTMwQTg9XHUzMDQ4PVx1ZmY3NCZbYmVmb3JlIDNdXHUzMGE3PDw8XHUzMGE5IiwKKyAgICAgICAgICAgICImW2JlZm9yZSAzXVx1MzBhNzw8PFx1MzBhOSZcdTMwQTc9XHUzMEE3PVx1MzA0Nz1cdWZmNmEmXHUzMEE4PVx1MzBBOD1cdTMwNDg9XHVmZjc0IiwKKyAgICAgICAgfTsKKyAgICAgICAgU3RyaW5nW11bXSBkYXRhID0geworICAgICAgICAgICAgeyJ4IiwgIlx1ZmY0MSJ9LAorICAgICAgICAgICAgeyJcdTMwYTkiLCAiXHUzMGE3In0sCisgICAgICAgICAgICB7Ilx1MzBhOSIsICJcdTMwYTcifSwKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIGZvcihpbnQgaSA9IDA7IGk8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyKHJ1bGVzW2ldLCBkYXRhW2ldKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29udHJhY3Rpb25DbG9zdXJlKCkgeworICAgICAgICBTdHJpbmdbXSBydWxlcyA9IHsKKyAgICAgICAgICAgICImYj1cdTAwZTRcdTAwZTQiLAorICAgICAgICAgICAgIiZiPVx1MDBDNSIsCisgICAgICAgIH07CisgICAgICAgIFN0cmluZ1tdW10gZGF0YSA9IHsKKyAgICAgICAgICAgIHsgImIiLCAiXHUwMGU0XHUwMGU0IiwgImFcdTAzMDhhXHUwMzA4IiwgIlx1MDBlNGFcdTAzMDgiLCAiYVx1MDMwOFx1MDBlNCIgfSwKKyAgICAgICAgICAgIHsgImIiLCAiXHUwMEM1IiwgIkFcdTAzMEEiLCAiXHUyMTJCIiB9LAorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgZm9yKGludCBpID0gMDsgaTwgcnVsZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGdlbmVyaWNSdWxlc1Rlc3RXaXRoUmVzdWx0KHJ1bGVzW2ldLCBkYXRhW2ldLCAwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0UHJlZml4Q29tcG9zZSgpIHsKKyAgICAgICAgU3RyaW5nIHJ1bGUxID0gIiZcdTMwYTc8PDxcdTMwYWJ8XHUzMGZjPVx1MzBhY3xcdTMwZmMiOworICAgICAgICAKKyAgICAgICAgU3RyaW5nIHN0cmluZyA9IHJ1bGUxOworICAgICAgICB0cnkgeworICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihzdHJpbmcpOworICAgICAgICAgICAgbG9nbG4oInJ1bGU6IiArIGNvbGwuZ2V0UnVsZXMoKSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igb3BlbiBSdWxlQmFzZWRDb2xsYXRvciBydWxlID0gIiArIHN0cmluZyk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFN0ckNvbGxJZGVudGljYWxQcmVmaXgoKSB7CisgICAgICAgIFN0cmluZyBydWxlID0gIiZcdWQ5YjBcdWRjNzA9XHVkOWIwXHVkYzcxIjsKKyAgICAgICAgU3RyaW5nIHRlc3RbXSA9IHsKKyAgICAgICAgICAgICJhYlx1ZDliMFx1ZGM3MCIsCisgICAgICAgICAgICAiYWJcdWQ5YjBcdWRjNzEiCisgICAgICAgIH07CisgICAgICAgIGdlbmVyaWNSdWxlc1Rlc3RXaXRoUmVzdWx0KHJ1bGUsIHRlc3QsIDApOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0UHJlZml4KCkgeworICAgICAgICBTdHJpbmdbXSBydWxlcyA9IHsKKyAgICAgICAgICAgICImeiA8PDwgenxhIiwgCisgICAgICAgICAgICAiW3N0cmVuZ3RoIEldJmE9XHVkOTAwXHVkYzI1Jno8PDxcdWQ5MDBcdWRjMjV8YSIsIAorICAgICAgICB9OworICAgICAgICBTdHJpbmdbXVtdIGRhdGEgPSB7CisgICAgICAgICAgICB7Inp6IiwgInphIn0sCisgICAgICAgICAgICB7ImFhIiwgImF6IiwgIlx1ZDkwMFx1ZGMyNXoiLCAiXHVkOTAwXHVkYzI1YSIsICJ6eiJ9LAorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgZm9yKGludCBpID0gMDsgaTxydWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgZ2VuZXJpY1J1bGVzU3RhcnRlcihydWxlc1tpXSwgZGF0YVtpXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdE5ld0phcGFuZXNlKCkgeworICAgICAgICAKKyAgICAgICAgU3RyaW5nIHRlc3QxW10gPSB7CisgICAgICAgICAgICAiXHUzMGI3XHUzMGUzXHUzMGZjXHUzMGVjIiwKKyAgICAgICAgICAgICJcdTMwYjdcdTMwZTNcdTMwYTQiLAorICAgICAgICAgICAgIlx1MzBiN1x1MzBlNFx1MzBhMyIsCisgICAgICAgICAgICAiXHUzMGI3XHUzMGUzXHUzMGVjIiwKKyAgICAgICAgICAgICJcdTMwNjFcdTMwODdcdTMwNTMiLAorICAgICAgICAgICAgIlx1MzA2MVx1MzA4OFx1MzA1MyIsCisgICAgICAgICAgICAiXHUzMGMxXHUzMGU3XHUzMGIzXHUzMGVjXHUzMGZjXHUzMGM4IiwKKyAgICAgICAgICAgICJcdTMwNjZcdTMwZmNcdTMwNWYiLAorICAgICAgICAgICAgIlx1MzBjNlx1MzBmY1x1MzBiZiIsIAorICAgICAgICAgICAgIlx1MzBjNlx1MzBhN1x1MzBiZiIsCisgICAgICAgICAgICAiXHUzMDY2XHUzMDQ4XHUzMDVmIiwKKyAgICAgICAgICAgICJcdTMwNjdcdTMwZmNcdTMwNWYiLCAKKyAgICAgICAgICAgICJcdTMwYzdcdTMwZmNcdTMwYmYiLAorICAgICAgICAgICAgIlx1MzBjN1x1MzBhN1x1MzBiZiIsCisgICAgICAgICAgICAiXHUzMDY3XHUzMDQ4XHUzMDVmIiwKKyAgICAgICAgICAgICJcdTMwNjZcdTMwZmNcdTMwNWZcdTMwZmMiLAorICAgICAgICAgICAgIlx1MzBjNlx1MzBmY1x1MzBiZlx1MzBhMSIsCisgICAgICAgICAgICAiXHUzMGM2XHUzMGE3XHUzMGJmXHUzMGZjIiwKKyAgICAgICAgICAgICJcdTMwNjZcdTMwNDdcdTMwNWZcdTMwNDEiLAorICAgICAgICAgICAgIlx1MzA2Nlx1MzA0OFx1MzA1Zlx1MzBmYyIsCisgICAgICAgICAgICAiXHUzMDY3XHUzMGZjXHUzMDVmXHUzMGZjIiwKKyAgICAgICAgICAgICJcdTMwYzdcdTMwZmNcdTMwYmZcdTMwYTEiLAorICAgICAgICAgICAgIlx1MzA2N1x1MzBhN1x1MzA1Zlx1MzBhMSIsCisgICAgICAgICAgICAiXHUzMGM3XHUzMDQ3XHUzMGJmXHUzMDQxIiwKKyAgICAgICAgICAgICJcdTMwYzdcdTMwYThcdTMwYmZcdTMwYTIiLAorICAgICAgICAgICAgIlx1MzA3Mlx1MzA4NiIsCisgICAgICAgICAgICAiXHUzMDczXHUzMDg1XHUzMDQyIiwKKyAgICAgICAgICAgICJcdTMwNzRcdTMwODVcdTMwNDIiLAorICAgICAgICAgICAgIlx1MzA3M1x1MzA4NVx1MzA0Mlx1MzBmYyIsCisgICAgICAgICAgICAiXHUzMGQzXHUzMGU1XHUzMGEyXHUzMGZjIiwKKyAgICAgICAgICAgICJcdTMwNzRcdTMwODVcdTMwNDJcdTMwZmMiLAorICAgICAgICAgICAgIlx1MzBkNFx1MzBlNVx1MzBhMlx1MzBmYyIsCisgICAgICAgICAgICAiXHUzMGQyXHUzMGU1XHUzMGE2IiwKKyAgICAgICAgICAgICJcdTMwZDJcdTMwZTZcdTMwYTYiLAorICAgICAgICAgICAgIlx1MzBkNFx1MzBlNVx1MzBhNlx1MzBhMiIsCisgICAgICAgICAgICAiXHUzMDczXHUzMDg1XHUzMGZjXHUzMDQyXHUzMGZjIiwgCisgICAgICAgICAgICAiXHUzMGQzXHUzMGU1XHUzMGZjXHUzMGEyXHUzMGZjIiwKKyAgICAgICAgICAgICJcdTMwZDNcdTMwZTVcdTMwYTZcdTMwYTJcdTMwZmMiLAorICAgICAgICAgICAgIlx1MzA3Mlx1MzA4NVx1MzA5MyIsCisgICAgICAgICAgICAiXHUzMDc0XHUzMDg1XHUzMDkzIiwKKyAgICAgICAgICAgICJcdTMwNzVcdTMwZmNcdTMwOGEiLAorICAgICAgICAgICAgIlx1MzBkNVx1MzBmY1x1MzBlYSIsCisgICAgICAgICAgICAiXHUzMDc1XHUzMDQ1XHUzMDhhIiwKKyAgICAgICAgICAgICJcdTMwNzVcdTMwYTVcdTMwOGEiLAorICAgICAgICAgICAgIlx1MzA3NVx1MzBhNVx1MzBlYSIsCisgICAgICAgICAgICAiXHUzMGQ1XHUzMGE2XHUzMGVhIiwKKyAgICAgICAgICAgICJcdTMwNzZcdTMwZmNcdTMwOGEiLAorICAgICAgICAgICAgIlx1MzBkNlx1MzBmY1x1MzBlYSIsCisgICAgICAgICAgICAiXHUzMDc2XHUzMDQ1XHUzMDhhIiwKKyAgICAgICAgICAgICJcdTMwZDZcdTMwYTVcdTMwOGEiLAorICAgICAgICAgICAgIlx1MzA3N1x1MzA0Nlx1MzA4YSIsCisgICAgICAgICAgICAiXHUzMGQ3XHUzMGE2XHUzMGVhIiwKKyAgICAgICAgICAgICJcdTMwNzVcdTMwZmNcdTMwOGFcdTMwZmMiLAorICAgICAgICAgICAgIlx1MzBkNVx1MzBhNVx1MzBlYVx1MzBmYyIsCisgICAgICAgICAgICAiXHUzMDc1XHUzMGE1XHUzMDhhXHUzMGEzIiwKKyAgICAgICAgICAgICJcdTMwZDVcdTMwNDVcdTMwOGFcdTMwNDMiLAorICAgICAgICAgICAgIlx1MzBkNVx1MzBhNlx1MzBlYVx1MzBmYyIsCisgICAgICAgICAgICAiXHUzMDc1XHUzMDQ2XHUzMDhhXHUzMDQzIiwKKyAgICAgICAgICAgICJcdTMwZDZcdTMwYTZcdTMwZWFcdTMwYTQiLAorICAgICAgICAgICAgIlx1MzA3N1x1MzBmY1x1MzA4YVx1MzBmYyIsCisgICAgICAgICAgICAiXHUzMDc3XHUzMGE1XHUzMDhhXHUzMGE0IiwKKyAgICAgICAgICAgICJcdTMwNzdcdTMwNDZcdTMwOGFcdTMwZmMiLAorICAgICAgICAgICAgIlx1MzBkN1x1MzBhNlx1MzBlYVx1MzBhNCIsCisgICAgICAgICAgICAiXHUzMGQ1XHUzMGZkIiwKKyAgICAgICAgICAgICJcdTMwNzVcdTMwOWUiLAorICAgICAgICAgICAgIlx1MzA3Nlx1MzA5ZCIsCisgICAgICAgICAgICAiXHUzMDc2XHUzMDc1IiwKKyAgICAgICAgICAgICJcdTMwNzZcdTMwZDUiLAorICAgICAgICAgICAgIlx1MzBkNlx1MzA3NSIsCisgICAgICAgICAgICAiXHUzMGQ2XHUzMGQ1IiwKKyAgICAgICAgICAgICJcdTMwNzZcdTMwOWUiLAorICAgICAgICAgICAgIlx1MzA3Nlx1MzA3NyIsCisgICAgICAgICAgICAiXHUzMGQ2XHUzMDc3IiwKKyAgICAgICAgICAgICJcdTMwNzdcdTMwOWQiLAorICAgICAgICAgICAgIlx1MzBkN1x1MzBmZCIsCisgICAgICAgICAgICAiXHUzMDc3XHUzMDc1IiwKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyB0ZXN0MltdID0geworICAgICAgICAgICAgIlx1MzA2Zlx1MzA5ZCIsIC8vIEhcdTMwOWQgCisgICAgICAgICAgICAiXHUzMGNmXHUzMGZkIiwgLy8gS1x1MzBmZCAKKyAgICAgICAgICAgICJcdTMwNmZcdTMwNmYiLCAvLyBISCAKKyAgICAgICAgICAgICJcdTMwNmZcdTMwY2YiLCAvLyBISyAKKyAgICAgICAgICAgICJcdTMwY2ZcdTMwY2YiLCAvLyBLSyAKKyAgICAgICAgICAgICJcdTMwNmZcdTMwOWUiLCAvLyBIXHUzMDllIAorICAgICAgICAgICAgIlx1MzBjZlx1MzBmZSIsIC8vIEtcdTMwZmUgCisgICAgICAgICAgICAiXHUzMDZmXHUzMDcwIiwgLy8gSEhcdTMwOWIgCisgICAgICAgICAgICAiXHUzMGNmXHUzMGQwIiwgLy8gS0tcdTMwOWIgCisgICAgICAgICAgICAiXHUzMDZmXHUzMDcxIiwgLy8gSEhcdTMwOWMgCisgICAgICAgICAgICAiXHUzMGNmXHUzMDcxIiwgLy8gS0hcdTMwOWMgCisgICAgICAgICAgICAiXHUzMGNmXHUzMGQxIiwgLy8gS0tcdTMwOWMgCisgICAgICAgICAgICAiXHUzMDcwXHUzMDlkIiwgLy8gSFx1MzA5Ylx1MzA5ZCAKKyAgICAgICAgICAgICJcdTMwZDBcdTMwZmQiLCAvLyBLXHUzMDliXHUzMGZkIAorICAgICAgICAgICAgIlx1MzA3MFx1MzA2ZiIsIC8vIEhcdTMwOWJIIAorICAgICAgICAgICAgIlx1MzBkMFx1MzBjZiIsIC8vIEtcdTMwOWJLIAorICAgICAgICAgICAgIlx1MzA3MFx1MzA5ZSIsIC8vIEhcdTMwOWJcdTMwOWUgCisgICAgICAgICAgICAiXHUzMGQwXHUzMGZlIiwgLy8gS1x1MzA5Ylx1MzBmZSAKKyAgICAgICAgICAgICJcdTMwNzBcdTMwNzAiLCAvLyBIXHUzMDliSFx1MzA5YiAKKyAgICAgICAgICAgICJcdTMwZDBcdTMwNzAiLCAvLyBLXHUzMDliSFx1MzA5YiAKKyAgICAgICAgICAgICJcdTMwZDBcdTMwZDAiLCAvLyBLXHUzMDliS1x1MzA5YiAKKyAgICAgICAgICAgICJcdTMwNzBcdTMwNzEiLCAvLyBIXHUzMDliSFx1MzA5YyAKKyAgICAgICAgICAgICJcdTMwZDBcdTMwZDEiLCAvLyBLXHUzMDliS1x1MzA5YyAKKyAgICAgICAgICAgICJcdTMwNzFcdTMwOWQiLCAvLyBIXHUzMDljXHUzMDlkIAorICAgICAgICAgICAgIlx1MzBkMVx1MzBmZCIsIC8vIEtcdTMwOWNcdTMwZmQgCisgICAgICAgICAgICAiXHUzMDcxXHUzMDZmIiwgLy8gSFx1MzA5Y0ggCisgICAgICAgICAgICAiXHUzMGQxXHUzMGNmIiwgLy8gS1x1MzA5Y0sgCisgICAgICAgICAgICAiXHUzMDcxXHUzMDcwIiwgLy8gSFx1MzA5Y0hcdTMwOWIgCisgICAgICAgICAgICAiXHUzMDcxXHUzMGQwIiwgLy8gSFx1MzA5Y0tcdTMwOWIgCisgICAgICAgICAgICAiXHUzMGQxXHUzMGQwIiwgLy8gS1x1MzA5Y0tcdTMwOWIKKyAgICAgICAgICAgICJcdTMwNzFcdTMwNzEiLCAvLyBIXHUzMDljSFx1MzA5YworICAgICAgICAgICAgIlx1MzBkMVx1MzBkMSIsIC8vIEtcdTMwOWNLXHUzMDljCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBTdHJpbmdbXSBhdHQgPSB7ICJBbHRlcm5hdGVIYW5kbGluZyIsIH07CisgICAgICAgIE9iamVjdFtdIHZhbFNoaWZ0ZWQgPSB7IG5ldyBCb29sZWFuKHRydWUpLCB9OworICAgICAgICAKKyAgICAgICAgZ2VuZXJpY0xvY2FsZVN0YXJ0ZXIobmV3IExvY2FsZSgiamEiLCAiIiksIHRlc3QxKTsKKyAgICAgICAgZ2VuZXJpY0xvY2FsZVN0YXJ0ZXIobmV3IExvY2FsZSgiamEiLCAiIiksIHRlc3QyKTsKKyAgICAgICAgZ2VuZXJpY0xvY2FsZVN0YXJ0ZXJXaXRoT3B0aW9ucyhuZXcgTG9jYWxlKCJqYSIsICIiKSwgdGVzdDEsIGF0dCwgdmFsU2hpZnRlZCk7CisgICAgICAgIGdlbmVyaWNMb2NhbGVTdGFydGVyV2l0aE9wdGlvbnMobmV3IExvY2FsZSgiamEiLCAiIiksIHRlc3QyLCBhdHQsIHZhbFNoaWZ0ZWQpOworICAgIH0KKyAgICAKKyAgICB2b2lkIGdlbmVyaWNMb2NhbGVTdGFydGVyKExvY2FsZSBsb2NhbGUsIFN0cmluZyBzW10pIHsKKyAgICAgICAgQ29sbGF0b3IgY29sbCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobG9jYWxlKTsKKyAgICAgICAgICAgIAorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIlVuYWJsZSB0byBvcGVuIGNvbGxhdG9yIGZvciBsb2NhbGUgIiArIGxvY2FsZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgLy8gbG9nbG4oIkxvY2FsZSBzdGFydGVyIGZvciAiICsgbG9jYWxlKTsKKyAgICAgICAgZ2VuZXJpY09yZGVyaW5nVGVzdChjb2xsLCBzKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBnZW5lcmljTG9jYWxlU3RhcnRlcldpdGhPcHRpb25zKExvY2FsZSBsb2NhbGUsIFN0cmluZ1tdIHMsIFN0cmluZ1tdIGF0dHJzLCBPYmplY3RbXSB2YWx1ZXMpIHsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKGxvY2FsZSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiVW5hYmxlIHRvIG9wZW4gY29sbGF0b3IgZm9yIGxvY2FsZSAiICsgbG9jYWxlKTsKKyAgICAgICAgfQorICAgICAgICAvLyBsb2dsbigiTG9jYWxlIHN0YXJ0ZXIgZm9yICIgK2xvY2FsZSk7CisgICAgICAgIAorICAgICAgICAvLyBsb2dsbigiU2V0dGluZyBhdHRyaWJ1dGVzIik7CisgICAgICAgIAorICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgYXR0cnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChhdHRycy5lcXVhbHMoInN0cmVuZ3RoIikpIHsKKyAgICAgICAgICAgICAgICBjb2xsLnNldFN0cmVuZ3RoKCgoSW50ZWdlcil2YWx1ZXNbaV0pLmludFZhbHVlKCkpOworICAgICAgICAgICAgfSBlbHNlIGlmIChhdHRycy5lcXVhbHMoImRlY29tcCIpKSB7CisgICAgICAgICAgICAgICAgY29sbC5zZXREZWNvbXBvc2l0aW9uKCgoSW50ZWdlcil2YWx1ZXNbaV0pLmludFZhbHVlKCkpOworICAgICAgICAgICAgfSBlbHNlIGlmIChhdHRycy5lcXVhbHMoIkFsdGVybmF0ZUhhbmRsaW5nIikpIHsKKyAgICAgICAgICAgICAgICBjb2xsLnNldEFsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZCgoKEJvb2xlYW4pdmFsdWVzW2ldCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLmJvb2xlYW5WYWx1ZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZ2VuZXJpY09yZGVyaW5nVGVzdChjb2xsLCBzKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBnZW5lcmljT3JkZXJpbmdUZXN0KENvbGxhdG9yIGNvbGwsIFN0cmluZ1tdIHMpIHsKKyAgICAgICAgZ2VuZXJpY09yZGVyaW5nVGVzdFdpdGhSZXN1bHQoY29sbCwgcywgLTEpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Tm9uQ2hhcnMoKSB7CisgICAgICAgIFN0cmluZyB0ZXN0W10gPSB7CisgICAgICAgICAgICAiXHUwMDAwIiwKKyAgICAgICAgICAgICJcdUZGRkUiLCAiXHVGRkZGIiwKKyAgICAgICAgICAgICJcXFUwMDAxRkZGRSIsICJcXFUwMDAxRkZGRiIsCisgICAgICAgICAgICAiXFxVMDAwMkZGRkUiLCAiXFxVMDAwMkZGRkYiLAorICAgICAgICAgICAgIlxcVTAwMDNGRkZFIiwgIlxcVTAwMDNGRkZGIiwKKyAgICAgICAgICAgICJcXFUwMDA0RkZGRSIsICJcXFUwMDA0RkZGRiIsCisgICAgICAgICAgICAiXFxVMDAwNUZGRkUiLCAiXFxVMDAwNUZGRkYiLAorICAgICAgICAgICAgIlxcVTAwMDZGRkZFIiwgIlxcVTAwMDZGRkZGIiwKKyAgICAgICAgICAgICJcXFUwMDA3RkZGRSIsICJcXFUwMDA3RkZGRiIsCisgICAgICAgICAgICAiXFxVMDAwOEZGRkUiLCAiXFxVMDAwOEZGRkYiLAorICAgICAgICAgICAgIlxcVTAwMDlGRkZFIiwgIlxcVTAwMDlGRkZGIiwKKyAgICAgICAgICAgICJcXFUwMDBBRkZGRSIsICJcXFUwMDBBRkZGRiIsCisgICAgICAgICAgICAiXFxVMDAwQkZGRkUiLCAiXFxVMDAwQkZGRkYiLAorICAgICAgICAgICAgIlxcVTAwMENGRkZFIiwgIlxcVTAwMENGRkZGIiwKKyAgICAgICAgICAgICJcXFUwMDBERkZGRSIsICJcXFUwMDBERkZGRiIsCisgICAgICAgICAgICAiXFxVMDAwRUZGRkUiLCAiXFxVMDAwRUZGRkYiLAorICAgICAgICAgICAgIlxcVTAwMEZGRkZFIiwgIlxcVTAwMEZGRkZGIiwKKyAgICAgICAgICAgICJcXFUwMDEwRkZGRSIsICJcXFUwMDEwRkZGRiIKKyAgICAgICAgfTsKKyAgICAgICAgQ29sbGF0b3IgY29sbCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiZW4iLCAiVVMiKSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiVW5hYmxlIHRvIG9wZW4gY29sbGF0b3IiKTsKKyAgICAgICAgfQorICAgICAgICAvLyBsb2dsbigiVGVzdCBub24gY2hhcmFjdGVycyIpOworICAgICAgICAKKyAgICAgICAgZ2VuZXJpY09yZGVyaW5nVGVzdFdpdGhSZXN1bHQoY29sbCwgdGVzdCwgMCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RFeHRyZW1lQ29tcHJlc3Npb24oKSB7CisgICAgICAgIFN0cmluZ1tdIHRlc3QgPSBuZXcgU3RyaW5nWzRdOworICAgICAgICAKKyAgICAgICAgZm9yKGludCBpID0gMDsgaTw0OyBpKyspIHsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB0ZW1wID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCAyMDQ3OyBqKyspIHsKKyAgICAgICAgICAgICAgICB0ZW1wLmFwcGVuZCgnYScpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGVtcC5hcHBlbmQoKGNoYXIpKCdhJyArIGkpKTsKKyAgICAgICAgICAgIHRlc3RbaV0gPSB0ZW1wLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGdlbmVyaWNMb2NhbGVTdGFydGVyKG5ldyBMb2NhbGUoImVuIiwgIlVTIiksIHRlc3QpOworICAgIH0KKworICAgIC8qKgorICAgICogVGVzdHMgc3Vycm9nYXRlIHN1cHBvcnQuCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0U3Vycm9nYXRlcygpIHsKKyAgICAgICAgU3RyaW5nIHRlc3RbXSA9IHsieiIsIlx1ZDkwMFx1ZGMyNSIsICJcdWQ4MDVcdWRjNTAiLCAiXHVkODAwXHVkYzAweSIsICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAiXHVkODAwXHVkYzAwciIsICJcdWQ4MDBcdWRjMDBmIiwgIlx1ZDgwMFx1ZGMwMCIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICJcdWQ4MDBcdWRjMDBjIiwgIlx1ZDgwMFx1ZGMwMGIiLCAiXHVkODAwXHVkYzAwZmEiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAiXHVkODAwXHVkYzAwZmIiLCAiXHVkODAwXHVkYzAwYSIsICJjIiwgImIifTsKKworICAgICAgICBTdHJpbmcgcnVsZSA9ICImeiA8IFx1ZDkwMFx1ZGMyNSA8IFx1ZDgwNVx1ZGM1MCA8IFx1ZDgwMFx1ZGMwMHkgIgorICAgICAgICAgICAgICAgICAgICAgICsgIjwgXHVkODAwXHVkYzAwciA8IFx1ZDgwMFx1ZGMwMGYgPDwgXHVkODAwXHVkYzAwICIKKyAgICAgICAgICAgICAgICAgICAgICArICI8IFx1ZDgwMFx1ZGMwMGZhIDw8IFx1ZDgwMFx1ZGMwMGZiIDwgXHVkODAwXHVkYzAwYSAiIAorICAgICAgICAgICAgICAgICAgICAgICsgIjwgYyA8IGIiOworICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyKHJ1bGUsIHRlc3QpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Qm9jc3VDb3ZlcmFnZSgpIHsKKyAgICAgICAgU3RyaW5nIHRlc3QgPSAiXHUwMDQxXHUwNDQxXHU0NDQxXFxVMDAwNDQ0NDFcdTQ0NDFcdTA0NDFcdTAwNDEiOworICAgICAgICBDb2xsYXRvciBjb2xsID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY29sbC5zZXRTdHJlbmd0aChDb2xsYXRvci5JREVOVElDQUwpOworICAgICAgICBDb2xsYXRpb25LZXkga2V5ID0gY29sbC5nZXRDb2xsYXRpb25LZXkodGVzdCk7CisgICAgICAgIGxvZ2xuKCJzb3VyY2U6IiArIGtleS5nZXRTb3VyY2VTdHJpbmcoKSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RDeXJpbGxpY1RhaWxvcmluZygpIHsKKyAgICAgICAgU3RyaW5nIHRlc3RbXSA9IHsKKyAgICAgICAgICAgICJcdTA0MTBiIiwKKyAgICAgICAgICAgICJcdTA0MTBcdTAzMDZhIiwKKyAgICAgICAgICAgICJcdTA0ZDBBIgorICAgICAgICB9OworICAgICAgICBnZW5lcmljTG9jYWxlU3RhcnRlcihuZXcgTG9jYWxlKCJydSIsICIiKSwgdGVzdCk7CisgICAgICAgIGdlbmVyaWNSdWxlc1N0YXJ0ZXIoIiZcdTA0MTAgPSBcdTA0MTAiLCB0ZXN0KTsKKyAgICAgICAgZ2VuZXJpY1J1bGVzU3RhcnRlcigiJlogPCBcdTA0MTAiLCB0ZXN0KTsKKyAgICAgICAgZ2VuZXJpY1J1bGVzU3RhcnRlcigiJlx1MDQxMCA9IFx1MDQxMCA8IFx1MDRkMCIsIHRlc3QpOworICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyKCImWiA8IFx1MDQxMCA8IFx1MDRkMCIsIHRlc3QpOworICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyKCImXHUwNDEwID0gXHUwNDEwIDwgXHUwNDEwXHUwMzAxIiwgdGVzdCk7CisgICAgICAgIGdlbmVyaWNSdWxlc1N0YXJ0ZXIoIiZaIDwgXHUwNDEwIDwgXHUwNDEwXHUwMzAxIiwgdGVzdCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RDYXNlKCkgeworICAgICAgICBTdHJpbmcgZ1J1bGVzID0gIlx1MDAyNlx1MDAzMFx1MDAzQ1x1MDAzMVx1MDAyQ1x1MjQ2MFx1MDAzQ1x1MDA2MVx1MDAyQ1x1MDA0MSI7CisgICAgICAgIFN0cmluZ1tdIHRlc3RDYXNlID0geworICAgICAgICAgICAgIjFhIiwgIjFBIiwgIlx1MjQ2MGEiLCAiXHUyNDYwQSIKKyAgICAgICAgfTsKKyAgICAgICAgaW50W11bXSBjYXNlVGVzdFJlc3VsdHMgPSB7CisgICAgICAgICAgICAgICAgeyAtMSwgLTEsIC0xLCAwLCAtMSwgLTEsIDAsIDAsIC0xIH0sCisgICAgICAgICAgICAgICAgeyAxLCAtMSwgLTEsIDAsIC0xLCAtMSwgMCwgMCwgMSB9LAorICAgICAgICAgICAgICAgIHsgLTEsIC0xLCAtMSwgMCwgMSwgLTEsIDAsIDAsIC0xIH0sCisgICAgICAgICAgICAgICAgeyAxLCAtMSwgMSwgMCwgLTEsIC0xLCAwLCAwLCAxIH0KKyAgICAKKyAgICAgICAgfTsKKyAgICAgICAgYm9vbGVhbltdW10gY2FzZVRlc3RBdHRyaWJ1dGVzID0geworICAgICAgICAgICAgeyBmYWxzZSwgZmFsc2V9LAorICAgICAgICAgICAgeyB0cnVlLCBmYWxzZX0sCisgICAgICAgICAgICB7IGZhbHNlLCB0cnVlfSwKKyAgICAgICAgICAgIHsgdHJ1ZSwgdHJ1ZX0KKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIGludCBpLGosazsKKyAgICAgICAgQ29sbGF0b3IgIG15Q29sbGF0aW9uOworICAgICAgICB0cnkgeworICAgICAgICAgICAgbXlDb2xsYXRpb24gPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJlbiIsICJVUyIpKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogaW4gY3JlYXRpb24gb2YgcnVsZSBiYXNlZCBjb2xsYXRvciAiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAvLyBsb2dsbigiVGVzdGluZyBkaWZmZXJlbnQgY2FzZSBzZXR0aW5ncyIpOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgCisgICAgICAgIGZvcihrID0gMDsgazw0OyBrKyspIHsKKyAgICAgICAgICAgIGlmIChjYXNlVGVzdEF0dHJpYnV0ZXNba11bMF0gPT0gdHJ1ZSkgeworICAgICAgICAgICAgICAgIC8vIHVwcGVyIGNhc2UgZmlyc3QKKyAgICAgICAgICAgICAgICAoKFJ1bGVCYXNlZENvbGxhdG9yKW15Q29sbGF0aW9uKS5zZXRVcHBlckNhc2VGaXJzdCh0cnVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8vIHVwcGVyIGNhc2UgZmlyc3QKKyAgICAgICAgICAgICAgICAoKFJ1bGVCYXNlZENvbGxhdG9yKW15Q29sbGF0aW9uKS5zZXRMb3dlckNhc2VGaXJzdCh0cnVlKTsgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAoKFJ1bGVCYXNlZENvbGxhdG9yKW15Q29sbGF0aW9uKS5zZXRDYXNlTGV2ZWwoY2FzZVRlc3RBdHRyaWJ1dGVzW2tdWzFdKTsKKyAgICAgICAgICAKKyAgICAgICAgICAvLyBsb2dsbigiQ2FzZSBmaXJzdCA9ICIgKyBjYXNlVGVzdEF0dHJpYnV0ZXNba11bMF0gKyAiLCBDYXNlIGxldmVsID0gIiArIGNhc2VUZXN0QXR0cmlidXRlc1trXVsxXSk7CisgICAgICAgICAgZm9yIChpID0gMDsgaSA8IDMgOyBpKyspIHsKKyAgICAgICAgICAgIGZvcihqID0gaSsxOyBqPDQ7IGorKykgeworICAgICAgICAgICAgICBkb1Rlc3QobXlDb2xsYXRpb24sIHRlc3RDYXNlW2ldLCB0ZXN0Q2FzZVtqXSwgY2FzZVRlc3RSZXN1bHRzW2tdWzMqaStqLTFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG15Q29sbGF0aW9uID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKGdSdWxlcyk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGluIGNyZWF0aW9uIG9mIHJ1bGUgYmFzZWQgY29sbGF0b3IiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAvLyBsb2dsbigiVGVzdGluZyBkaWZmZXJlbnQgY2FzZSBzZXR0aW5ncyB3aXRoIGN1c3RvbSBydWxlcyIpOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgCisgICAgICAgIGZvcihrID0gMDsgazw0OyBrKyspIHsKKyAgICAgICAgCWlmIChjYXNlVGVzdEF0dHJpYnV0ZXNba11bMF0gPT0gdHJ1ZSkgeworICAgICAgICAgICAgICAgICgoUnVsZUJhc2VkQ29sbGF0b3IpbXlDb2xsYXRpb24pLnNldFVwcGVyQ2FzZUZpcnN0KHRydWUpOworICAgICAgICAJfQorICAgICAgICAJZWxzZSB7CisgICAgICAgIAkJKChSdWxlQmFzZWRDb2xsYXRvcilteUNvbGxhdGlvbikuc2V0VXBwZXJDYXNlRmlyc3QoZmFsc2UpOworICAgICAgICAJfQorICAgICAgICAgICgoUnVsZUJhc2VkQ29sbGF0b3IpbXlDb2xsYXRpb24pLnNldENhc2VMZXZlbChjYXNlVGVzdEF0dHJpYnV0ZXNba11bMV0pOworICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCAzIDsgaSsrKSB7CisgICAgICAgICAgICBmb3IoaiA9IGkrMTsgajw0OyBqKyspIHsKKyAgICAgICAgICAgICAgZG9UZXN0KG15Q29sbGF0aW9uLCB0ZXN0Q2FzZVtpXSwgdGVzdENhc2Vbal0sIGNhc2VUZXN0UmVzdWx0c1trXVszKmkrai0xXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgeworICAgICAgICAgICAgU3RyaW5nW10gbG93ZXJGaXJzdCA9IHsKKyAgICAgICAgICAgICAgICAiaCIsCisgICAgICAgICAgICAgICAgIkgiLAorICAgICAgICAgICAgICAgICJjaCIsCisgICAgICAgICAgICAgICAgIkNoIiwKKyAgICAgICAgICAgICAgICAiQ0giLAorICAgICAgICAgICAgICAgICJjaGEiLAorICAgICAgICAgICAgICAgICJjaEEiLAorICAgICAgICAgICAgICAgICJDaGEiLAorICAgICAgICAgICAgICAgICJDaEEiLAorICAgICAgICAgICAgICAgICJDSGEiLAorICAgICAgICAgICAgICAgICJDSEEiLAorICAgICAgICAgICAgICAgICJpIiwKKyAgICAgICAgICAgICAgICAiSSIKKyAgICAgICAgICAgIH07CisgICAgCisgICAgICAgICAgICBTdHJpbmdbXSB1cHBlckZpcnN0ID0geworICAgICAgICAgICAgICAgICJIIiwKKyAgICAgICAgICAgICAgICAiaCIsCisgICAgICAgICAgICAgICAgIkNIIiwKKyAgICAgICAgICAgICAgICAiQ2giLAorICAgICAgICAgICAgICAgICJjaCIsCisgICAgICAgICAgICAgICAgIkNIQSIsCisgICAgICAgICAgICAgICAgIkNIYSIsCisgICAgICAgICAgICAgICAgIkNoQSIsCisgICAgICAgICAgICAgICAgIkNoYSIsCisgICAgICAgICAgICAgICAgImNoQSIsCisgICAgICAgICAgICAgICAgImNoYSIsCisgICAgICAgICAgICAgICAgIkkiLAorICAgICAgICAgICAgICAgICJpIgorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIC8vIGxvZ2xuKCJtaXhlZCBjYXNlIHRlc3QiKTsKKyAgICAgICAgICAgIC8vIGxvZ2xuKCJsb3dlciBmaXJzdCwgY2FzZSBsZXZlbCBvZmYiKTsKKyAgICAgICAgICAgIC8qIHN5biB3ZWUgZ2VuZXJpY1J1bGVzU3RhcnRlcigiW2Nhc2VmaXJzdCBsb3dlcl0mSDxjaDw8PENoPDw8Q0giLCBsb3dlckZpcnN0KTsgKi8KKyAgICAgICAgICAgIC8vIGxvZ2xuKCJ1cHBlciBmaXJzdCwgY2FzZSBsZXZlbCBvZmYiKTsKKyAgICAgICAgICAgIC8qIHN5biB3ZWUgZ2VuZXJpY1J1bGVzU3RhcnRlcigiW2Nhc2VmaXJzdCB1cHBlcl0mSDxjaDw8PENoPDw8Q0giLCB1cHBlckZpcnN0KTsgKi8KKyAgICAgICAgICAgIC8vIGxvZ2xuKCJsb3dlciBmaXJzdCwgY2FzZSBsZXZlbCBvbiIpOworICAgICAgICAgICAgZ2VuZXJpY1J1bGVzU3RhcnRlcigiW2Nhc2VmaXJzdCBsb3dlcl1bY2FzZWxldmVsIG9uXSZIPGNoPDw8Q2g8PDxDSCIsIGxvd2VyRmlyc3QpOworICAgICAgICAgICAgLy8gbG9nbG4oInVwcGVyIGZpcnN0LCBjYXNlIGxldmVsIG9uIik7CisgICAgICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyKCJbY2FzZWZpcnN0IHVwcGVyXVtjYXNlbGV2ZWwgb25dJkg8Y2g8PDxDaDw8PENIIiwgdXBwZXJGaXJzdCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0SW5jb21wbGV0ZUNudCgpIHsKKyAgICAgICAgU3RyaW5nW10gY250MSA9IHsKKyAgICAgICAgICAgICJBQSIsCisgICAgICAgICAgICAiQUMiLAorICAgICAgICAgICAgIkFaIiwKKyAgICAgICAgICAgICJBUSIsCisgICAgICAgICAgICAiQUIiLAorICAgICAgICAgICAgIkFCWiIsCisgICAgICAgICAgICAiQUJRIiwKKyAgICAgICAgICAgICJaIiwKKyAgICAgICAgICAgICJBQkMiLAorICAgICAgICAgICAgIlEiLAorICAgICAgICAgICAgIkIiCisgICAgICAgIH07CisgICAgICAgICAgICAKKyAgICAgICAgU3RyaW5nW10gY250MiA9IHsKKyAgICAgICAgICAgICJEQSIsCisgICAgICAgICAgICAiREFEIiwKKyAgICAgICAgICAgICJEQVoiLAorICAgICAgICAgICAgIk1BUiIsCisgICAgICAgICAgICAiWiIsCisgICAgICAgICAgICAiREFWSVMiLAorICAgICAgICAgICAgIk1BUksiLAorICAgICAgICAgICAgIkRBViIsCisgICAgICAgICAgICAiREFWSSIKKyAgICAgICAgfTsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbCA9ICBudWxsOworICAgICAgICBTdHJpbmcgdGVtcCA9ICIgJiBaIDwgQUJDIDwgUSA8IEIiOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sbCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcih0ZW1wKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJmYWlsIHRvIGNyZWF0ZSBSdWxlQmFzZWRDb2xsYXRvciIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgc2l6ZSA9IGNudDEubGVuZ3RoOworICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgc2l6ZS0xOyBpKyspIHsKKyAgICAgICAgICAgIGZvcihpbnQgaiA9IGkrMTsgaiA8IHNpemU7IGorKykgeworICAgICAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyOworICAgICAgICAgICAgICAgIFN0cmluZyB0MSA9IGNudDFbaV07CisgICAgICAgICAgICAgICAgU3RyaW5nIHQyID0gY250MVtqXTsKKyAgICAgICAgICAgICAgICBkb1Rlc3QoY29sbCwgdDEsIHQyLCAtMSk7CisgICAgICAgICAgICAgICAgLy8gc3lud2VlIDogYWRkZWQgY29sbGF0aW9uIGVsZW1lbnQgaXRlcmF0b3IgdGVzdCAKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBpdGVyID0gY29sbC5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IodDIpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJDcmVhdGlvbiBvZiBpdGVyYXRvciBmYWlsZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJhY2tBbmRGb3J0aChpdGVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdGVtcCA9ICIgJiBaIDwgREFWSVMgPCBNQVJLIDxEQVYiOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sbCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcih0ZW1wKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJmYWlsIHRvIGNyZWF0ZSBSdWxlQmFzZWRDb2xsYXRvciIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBzaXplID0gY250Mi5sZW5ndGg7CisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBzaXplLTE7IGkrKykgeworICAgICAgICAgICAgZm9yKGludCBqID0gaSsxOyBqIDwgc2l6ZTsgaisrKSB7CisgICAgICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGl0ZXI7CisgICAgICAgICAgICAgICAgU3RyaW5nIHQxID0gY250MltpXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdDIgPSBjbnQyW2pdOworICAgICAgICAgICAgICAgIGRvVGVzdChjb2xsLCB0MSwgdDIsIC0xKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBzeW53ZWUgOiBhZGRlZCBjb2xsYXRpb24gZWxlbWVudCBpdGVyYXRvciB0ZXN0CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgaXRlciA9IGNvbGwuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHQyKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiQ3JlYXRpb24gb2YgaXRlcmF0b3IgZmFpbGVkIik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBiYWNrQW5kRm9ydGgoaXRlcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RCbGFja0JpcmQoKSB7CisgICAgICAgIFN0cmluZ1tdIHNoaWZ0ZWQgPSB7CisgICAgICAgICAgICAiYmxhY2sgYmlyZCIsCisgICAgICAgICAgICAiYmxhY2stYmlyZCIsCisgICAgICAgICAgICAiYmxhY2tiaXJkIiwKKyAgICAgICAgICAgICJibGFjayBCaXJkIiwKKyAgICAgICAgICAgICJibGFjay1CaXJkIiwKKyAgICAgICAgICAgICJibGFja0JpcmQiLAorICAgICAgICAgICAgImJsYWNrIGJpcmRzIiwKKyAgICAgICAgICAgICJibGFjay1iaXJkcyIsCisgICAgICAgICAgICAiYmxhY2tiaXJkcyIKKyAgICAgICAgfTsKKyAgICAgICAgaW50W10gc2hpZnRlZFRlcnQgPSB7CisgICAgICAgICAgICAwLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICAtMSwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICAwLAorICAgICAgICAgICAgLTEsCisgICAgICAgICAgICAwLAorICAgICAgICAgICAgMAorICAgICAgICB9OworICAgICAgICBTdHJpbmdbXSBub25pZ25vcmFibGUgPSB7CisgICAgICAgICAgICAiYmxhY2sgYmlyZCIsCisgICAgICAgICAgICAiYmxhY2sgQmlyZCIsCisgICAgICAgICAgICAiYmxhY2sgYmlyZHMiLAorICAgICAgICAgICAgImJsYWNrLWJpcmQiLAorICAgICAgICAgICAgImJsYWNrLUJpcmQiLAorICAgICAgICAgICAgImJsYWNrLWJpcmRzIiwKKyAgICAgICAgICAgICJibGFja2JpcmQiLAorICAgICAgICAgICAgImJsYWNrQmlyZCIsCisgICAgICAgICAgICAiYmxhY2tiaXJkcyIKKyAgICAgICAgfTsKKyAgICAgICAgaW50IGkgPSAwLCBqID0gMDsKKyAgICAgICAgaW50IHNpemUgPSAwOworICAgICAgICBDb2xsYXRvciBjb2xsID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiZW4iLCAiVVMiKSk7CisgICAgICAgIC8vdWNvbF9zZXRBdHRyaWJ1dGUoY29sbCwgVUNPTF9OT1JNQUxJWkFUSU9OX01PREUsIFVDT0xfT0ZGLCAmc3RhdHVzKTsKKyAgICAgICAgLy91Y29sX3NldEF0dHJpYnV0ZShjb2xsLCBVQ09MX0FMVEVSTkFURV9IQU5ETElORywgVUNPTF9OT05fSUdOT1JBQkxFLCAmc3RhdHVzKTsKKyAgICAgICAgKChSdWxlQmFzZWRDb2xsYXRvciljb2xsKS5zZXRBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQoZmFsc2UpOworICAgICAgICBzaXplID0gbm9uaWdub3JhYmxlLmxlbmd0aDsKKyAgICAgICAgZm9yKGkgPSAwOyBpIDwgc2l6ZS0xOyBpKyspIHsKKyAgICAgICAgICAgIGZvcihqID0gaSsxOyBqIDwgc2l6ZTsgaisrKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHQxID0gbm9uaWdub3JhYmxlW2ldOworICAgICAgICAgICAgICAgIFN0cmluZyB0MiA9IG5vbmlnbm9yYWJsZVtqXTsKKyAgICAgICAgICAgICAgICBkb1Rlc3QoY29sbCwgdDEsIHQyLCAtMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgKChSdWxlQmFzZWRDb2xsYXRvciljb2xsKS5zZXRBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQodHJ1ZSk7CisgICAgICAgIGNvbGwuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUVVBVEVSTkFSWSk7CisgICAgICAgIHNpemUgPSBzaGlmdGVkLmxlbmd0aDsKKyAgICAgICAgZm9yKGkgPSAwOyBpIDwgc2l6ZS0xOyBpKyspIHsKKyAgICAgICAgICAgIGZvcihqID0gaSsxOyBqIDwgc2l6ZTsgaisrKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHQxID0gc2hpZnRlZFtpXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdDIgPSBzaGlmdGVkW2pdOworICAgICAgICAgICAgICAgIGRvVGVzdChjb2xsLCB0MSwgdDIsIC0xKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjb2xsLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgc2l6ZSA9IHNoaWZ0ZWQubGVuZ3RoOworICAgICAgICBmb3IoaSA9IDE7IGkgPCBzaXplOyBpKyspIHsKKyAgICAgICAgICAgIFN0cmluZyB0MSA9IHNoaWZ0ZWRbaS0xXTsKKyAgICAgICAgICAgIFN0cmluZyB0MiA9IHNoaWZ0ZWRbaV07CisgICAgICAgICAgICBkb1Rlc3QoY29sbCwgdDEsIHQyLCBzaGlmdGVkVGVydFtpXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEZ1bmt5QSgpIHsKKyAgICAgICAgU3RyaW5nW10gdGVzdFNvdXJjZUNhc2VzID0geworICAgICAgICAgICAgIlx1MDA0MVx1MDMwMFx1MDMwMSIsCisgICAgICAgICAgICAiXHUwMDQxXHUwMzAwXHUwMzE2IiwKKyAgICAgICAgICAgICJcdTAwNDFcdTAzMDAiLAorICAgICAgICAgICAgIlx1MDBDMFx1MDMwMSIsCisgICAgICAgICAgICAvLyB0aGlzIHdvdWxkIHdvcmsgd2l0aCBmb3JjZWQgbm9ybWFsaXphdGlvbiAKKyAgICAgICAgICAgICJcdTAwQzBcdTAzMTYiLAorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgU3RyaW5nW10gdGVzdFRhcmdldENhc2VzID0geworICAgICAgICAgICAgIlx1MDA0MVx1MDMwMVx1MDMwMCIsCisgICAgICAgICAgICAiXHUwMDQxXHUwMzE2XHUwMzAwIiwKKyAgICAgICAgICAgICJcdTAwQzAiLAorICAgICAgICAgICAgIlx1MDA0MVx1MDMwMVx1MDMwMCIsCisgICAgICAgICAgICAvLyB0aGlzIHdvdWxkIHdvcmsgd2l0aCBmb3JjZWQgbm9ybWFsaXphdGlvbiAKKyAgICAgICAgICAgICJcdTAwNDFcdTAzMTZcdTAzMDAiLAorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgaW50W10gcmVzdWx0cyA9IHsKKyAgICAgICAgICAgIDEsCisgICAgICAgICAgICAwLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIDEsCisgICAgICAgICAgICAwCisgICAgICAgIH07CisKKyAgICAgICAgQ29sbGF0b3IgIG15Q29sbGF0aW9uOworICAgICAgICB0cnkgeworICAgICAgICAgICAgbXlDb2xsYXRpb24gPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJlbiIsICJVUyIpKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogaW4gY3JlYXRpb24gb2YgcnVsZSBiYXNlZCBjb2xsYXRvciIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIC8vIGxvZ2xuKCJUZXN0aW5nIHNvbWUgQSBsZXR0ZXJzLCBmb3Igc29tZSByZWFzb24iKTsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTik7CisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA0IDsgaSsrKQorICAgICAgICB7CisgICAgICAgICAgICBkb1Rlc3QobXlDb2xsYXRpb24sIHRlc3RTb3VyY2VDYXNlc1tpXSwgdGVzdFRhcmdldENhc2VzW2ldLCByZXN1bHRzW2ldKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2hNb3ZlKCkgeworICAgICAgICBTdHJpbmdbXSBjaFRlc3QgPSB7CisgICAgICAgICAgICAiYyIsCisgICAgICAgICAgICAiQyIsCisgICAgICAgICAgICAiY2EiLCAiY2IiLCAiY3giLCAiY3kiLCAiQ1oiLAorICAgICAgICAgICAgImNcdTAzMEMiLCAiQ1x1MDMwQyIsCisgICAgICAgICAgICAiaCIsCisgICAgICAgICAgICAiSCIsCisgICAgICAgICAgICAiaGEiLCAiSGEiLCAiaGFybHkiLCAiaGIiLCAiSEIiLCAiaHgiLCAiSFgiLCAiaHkiLCAiSFkiLAorICAgICAgICAgICAgImNoIiwgImNIIiwgIkNoIiwgIkNIIiwKKyAgICAgICAgICAgICJjaGEiLCAiY2hhcmx5IiwgImNoZSIsICJjaGgiLCAiY2hjaCIsICJjaHIiLAorICAgICAgICAgICAgImkiLCAiSSIsICJpYXJseSIsCisgICAgICAgICAgICAiciIsICJSIiwKKyAgICAgICAgICAgICJyXHUwMzBDIiwgIlJcdTAzMEMiLAorICAgICAgICAgICAgInMiLAorICAgICAgICAgICAgIlMiLAorICAgICAgICAgICAgInNcdTAzMEMiLCAiU1x1MDMwQyIsCisgICAgICAgICAgICAieiIsICJaIiwKKyAgICAgICAgICAgICJ6XHUwMzBDIiwgIlpcdTAzMEMiCisgICAgICAgIH07CisgICAgICAgIENvbGxhdG9yIGNvbGwgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKG5ldyBMb2NhbGUoImNzIiwgIiIpKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJDYW5ub3QgY3JlYXRlIENvbGxhdG9yIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaW50IHNpemUgPSBjaFRlc3QubGVuZ3RoOworICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgc2l6ZS0xOyBpKyspIHsKKyAgICAgICAgICAgIGZvcihpbnQgaiA9IGkrMTsgaiA8IHNpemU7IGorKykgeworICAgICAgICAgICAgICAgIFN0cmluZyB0MSA9IGNoVGVzdFtpXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdDIgPSBjaFRlc3Rbal07CisgICAgICAgICAgICAgICAgZG9UZXN0KGNvbGwsIHQxLCB0MiwgLTEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RJbXBsaWNpdFRhaWxvcmluZygpIHsKKyAgICAgICAgU3RyaW5nW10gaW1wVGVzdCA9IHsKKyAgICAgICAgICAgICJcdTRlMDAiLAorICAgICAgICAgICAgImEiLAorICAgICAgICAgICAgIkEiLAorICAgICAgICAgICAgImIiLAorICAgICAgICAgICAgIkIiLAorICAgICAgICAgICAgIlx1NGUwMSIKKyAgICAgICAgfTsKKyAgICAgICAgU3RyaW5nIHJ1bGUgPSAiJlx1NGUwMCA8IGEgPDw8IEEgPCBiIDw8PCBCIjsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGUpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkNhbid0IGNyZWF0ZSBjb2xsYXRvciIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgc2l6ZSA9IGltcFRlc3QubGVuZ3RoOworICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgc2l6ZS0xOyBpKyspIHsKKyAgICAgICAgICAgIGZvcihpbnQgaiA9IGkrMTsgaiA8IHNpemU7IGorKykgeworICAgICAgICAgICAgICAgIFN0cmluZyB0MSA9IGltcFRlc3RbaV07CisgICAgICAgICAgICAgICAgU3RyaW5nIHQyID0gaW1wVGVzdFtqXTsKKyAgICAgICAgICAgICAgICBkb1Rlc3QoY29sbCwgdDEsIHQyLCAtMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0RkNEUHJvYmxlbSgpIHsKKyAgICAgICAgU3RyaW5nIHMxID0gIlx1MDQzMFx1MDMwNlx1MDMyNSI7CisgICAgICAgIFN0cmluZyBzMiA9ICJcdTA0RDFcdTAzMjUiOworICAgICAgICBDb2xsYXRvciBjb2xsID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbGwgPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkNhbid0IGNyZWF0ZSBjb2xsYXRvciIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBjb2xsLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuTk9fREVDT01QT1NJVElPTik7CisgICAgICAgIGRvVGVzdChjb2xsLCBzMSwgczIsIDApOworICAgICAgICBjb2xsLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworICAgICAgICBkb1Rlc3QoY29sbCwgczEsIHMyLCAwKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEVtcHR5UnVsZSgpIHsKKyAgICAgICAgU3RyaW5nIHJ1bGV6ID0gIiI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGV6KTsKKyAgICAgICAgICAgIGxvZ2xuKCJydWxlOiIgKyBjb2xsLmdldFJ1bGVzKCkpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Sjc4NCgpIHsKKyAgICAgICAgU3RyaW5nW10gZGF0YSA9IHsKKyAgICAgICAgICAgICJBIiwgIlx1MDEwMSIsICJcdTAwZTEiLCAiXHUwMWNlIiwgIlx1MDBlMCIsCisgICAgICAgICAgICAiRSIsICJcdTAxMTMiLCAiXHUwMGU5IiwgIlx1MDExYiIsICJcdTAwZTgiLAorICAgICAgICAgICAgIkkiLCAiXHUwMTJiIiwgIlx1MDBlZCIsICJcdTAxZDAiLCAiXHUwMGVjIiwKKyAgICAgICAgICAgICJPIiwgIlx1MDE0ZCIsICJcdTAwZjMiLCAiXHUwMWQyIiwgIlx1MDBmMiIsCisgICAgICAgICAgICAiVSIsICJcdTAxNmIiLCAiXHUwMGZhIiwgIlx1MDFkNCIsICJcdTAwZjkiLAorICAgICAgICAgICAgIlx1MDBmYyIsICJcdTAxZDYiLCAiXHUwMWQ4IiwgIlx1MDFkYSIsICJcdTAxZGMiCisgICAgICAgIH07CisgICAgICAgIGdlbmVyaWNMb2NhbGVTdGFydGVyKG5ldyBMb2NhbGUoInpoIiwgIiIpLCBkYXRhKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0SjgxNSgpIHsKKyAgICAgICAgU3RyaW5nIGRhdGFbXSA9IHsKKyAgICAgICAgICAgICJhYSIsCisgICAgICAgICAgICAiQWEiLAorICAgICAgICAgICAgImFiIiwKKyAgICAgICAgICAgICJBYiIsCisgICAgICAgICAgICAiYWQiLAorICAgICAgICAgICAgIkFkIiwKKyAgICAgICAgICAgICJhZSIsCisgICAgICAgICAgICAiQWUiLAorICAgICAgICAgICAgIlx1MDBlNiIsCisgICAgICAgICAgICAiXHUwMGM2IiwKKyAgICAgICAgICAgICJhZiIsCisgICAgICAgICAgICAiQWYiLAorICAgICAgICAgICAgImIiLAorICAgICAgICAgICAgIkIiCisgICAgICAgIH07CisgICAgICAgIGdlbmVyaWNMb2NhbGVTdGFydGVyKG5ldyBMb2NhbGUoImZyIiwgIiIpLCBkYXRhKTsKKyAgICAgICAgZ2VuZXJpY1J1bGVzU3RhcnRlcigiW2JhY2t3YXJkcyAyXSZBPDxcdTAwZTYvZTw8PFx1MDBjNi9FIiwgZGF0YSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RKODMxKCkgeworICAgICAgICBTdHJpbmdbXSBkYXRhID0geworICAgICAgICAgICAgIkkiLAorICAgICAgICAgICAgImkiLAorICAgICAgICAgICAgIlkiLAorICAgICAgICAgICAgInkiCisgICAgICAgIH07CisgICAgICAgIGdlbmVyaWNMb2NhbGVTdGFydGVyKG5ldyBMb2NhbGUoImx2IiwgIiIpLCBkYXRhKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEJlZm9yZSgpIHsKKyAgICAgICAgU3RyaW5nIGRhdGFbXSA9IHsKKyAgICAgICAgICAgICJcdTAxMDEiLCAiXHUwMGUxIiwgIlx1MDFjZSIsICJcdTAwZTAiLCAiQSIsCisgICAgICAgICAgICAiXHUwMTEzIiwgIlx1MDBlOSIsICJcdTAxMWIiLCAiXHUwMGU4IiwgIkUiLAorICAgICAgICAgICAgIlx1MDEyYiIsICJcdTAwZWQiLCAiXHUwMWQwIiwgIlx1MDBlYyIsICJJIiwKKyAgICAgICAgICAgICJcdTAxNGQiLCAiXHUwMGYzIiwgIlx1MDFkMiIsICJcdTAwZjIiLCAiTyIsCisgICAgICAgICAgICAiXHUwMTZiIiwgIlx1MDBmYSIsICJcdTAxZDQiLCAiXHUwMGY5IiwgIlUiLAorICAgICAgICAgICAgIlx1MDFkNiIsICJcdTAxZDgiLCAiXHUwMWRhIiwgIlx1MDFkYyIsICJcdTAwZmMiCisgICAgICAgIH07CisgICAgICAgIGdlbmVyaWNSdWxlc1N0YXJ0ZXIoCisgICAgICAgICImW2JlZm9yZSAxXWE8XHUwMTAxPFx1MDBlMTxcdTAxY2U8XHUwMGUwIgorICAgICAgICArICImW2JlZm9yZSAxXWU8XHUwMTEzPFx1MDBlOTxcdTAxMWI8XHUwMGU4IgorICAgICAgICArICImW2JlZm9yZSAxXWk8XHUwMTJiPFx1MDBlZDxcdTAxZDA8XHUwMGVjIgorICAgICAgICArICImW2JlZm9yZSAxXW88XHUwMTRkPFx1MDBmMzxcdTAxZDI8XHUwMGYyIgorICAgICAgICArICImW2JlZm9yZSAxXXU8XHUwMTZiPFx1MDBmYTxcdTAxZDQ8XHUwMGY5IgorICAgICAgICArICImdTxcdTAxZDY8XHUwMWQ4PFx1MDFkYTxcdTAxZGM8XHUwMGZjIiwgZGF0YSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFJlZHVuZGFudFJ1bGVzKCkgeworICAgICAgICBTdHJpbmdbXSBydWxlcyA9IHsKKyAgICAgICAgICAgICImIGEgPDw8IGIgPDw8IGMgPDwgZCA8PDwgZSYgW2JlZm9yZSAxXSBlIDw8PCB4IiwKKyAgICAgICAgICAgICImIGEgPCBiIDw8PCBjIDw8IGQgPDw8IGUmIFtiZWZvcmUgMV0gZSA8PDwgeCIsCisgICAgICAgICAgICAiJiBhIDwgYiA8IGMgPCBkJiBbYmVmb3JlIDFdIGMgPCBtIiwKKyAgICAgICAgICAgICImIGEgPCBiIDw8PCBjIDw8IGQgPDw8IGUmIFtiZWZvcmUgM10gZSA8PDwgeCIsCisgICAgICAgICAgICAiJiBhIDwgYiA8PDwgYyA8PCBkIDw8PCBlJiBbYmVmb3JlIDJdIGUgPDw8IHgiLAorICAgICAgICAgICAgIiYgYSA8IGIgPDw8IGMgPDwgZCA8PDwgZSA8PDwgZiA8IGcmIFtiZWZvcmUgMV0gZyA8IHgiLAorICAgICAgICAgICAgIiYgYSA8PDwgYiA8PCBjIDwgZCYgYSA8IG0iLAorICAgICAgICAgICAgIiZhPGI8PGJcdTAzMDEgJno8YiIsCisgICAgICAgICAgICAiJno8bTw8PHE8PDxtIiwKKyAgICAgICAgICAgICImejw8PG08cTw8PG0iLAorICAgICAgICAgICAgIiYgYSA8IGIgPCBjIDwgZCYgciA8IGMiLAorICAgICAgICAgICAgIiYgYSA8IGIgPCBjIDwgZCYgciA8IGMiLAorICAgICAgICAgICAgIiYgYSA8IGIgPCBjIDwgZCYgYyA8IG0iLAorICAgICAgICAgICAgIiYgYSA8IGIgPCBjIDwgZCYgYSA8IG0iCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBTdHJpbmdbXSBleHBlY3RlZFJ1bGVzID0geworICAgICAgICAgICAgIiZcdTIwODk8PDx4IiwKKyAgICAgICAgICAgICImIGEgPDw8IHggPCBiIDw8PCBjIDw8IGQgPDw8IGUiLAorICAgICAgICAgICAgIiYgYSA8IGIgPCBtIDwgYyA8IGQiLAorICAgICAgICAgICAgIiYgYSA8IGIgPDw8IGMgPDwgZCA8PDwgeCA8PDwgZSIsCisgICAgICAgICAgICAiJiBhIDwgYiA8PDwgYyA8PDwgeCA8PCBkIDw8PCBlIiwKKyAgICAgICAgICAgICImIGEgPCBiIDw8PCBjIDw8IGQgPDw8IGUgPDw8IGYgPCB4IDwgZyIsCisgICAgICAgICAgICAiJiBhIDw8PCBiIDw8IGMgPCBtIDwgZCIsCisgICAgICAgICAgICAiJmE8Ylx1MDMwMSAmejxiIiwKKyAgICAgICAgICAgICImejxxPDw8bSIsCisgICAgICAgICAgICAiJno8cTw8PG0iLAorICAgICAgICAgICAgIiYgYSA8IGIgPCBkJiByIDwgYyIsCisgICAgICAgICAgICAiJiBhIDwgYiA8IGQmIHIgPCBjIiwKKyAgICAgICAgICAgICImIGEgPCBiIDwgYyA8IG0gPCBkIiwKKyAgICAgICAgICAgICImIGEgPCBtIDwgYiA8IGMgPCBkIgorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgU3RyaW5nW11bXSB0ZXN0ZGF0YSA9IHsKKyAgICAgICAgICAgIHsiXHUyMDg5IiwgIngifSwKKyAgICAgICAgICAgIHsiYSIsICJ4IiwgImIiLCAiYyIsICJkIiwgImUifSwKKyAgICAgICAgICAgIHsiYSIsICJiIiwgIm0iLCAiYyIsICJkIn0sCisgICAgICAgICAgICB7ImEiLCAiYiIsICJjIiwgImQiLCAieCIsICJlIn0sCisgICAgICAgICAgICB7ImEiLCAiYiIsICJjIiwgIngiLCAiZCIsICJlIn0sCisgICAgICAgICAgICB7ImEiLCAiYiIsICJjIiwgImQiLCAiZSIsICJmIiwgIngiLCAiZyJ9LAorICAgICAgICAgICAgeyJhIiwgImIiLCAiYyIsICJtIiwgImQifSwKKyAgICAgICAgICAgIHsiYSIsICJiXHUwMzAxIiwgInoiLCAiYiJ9LAorICAgICAgICAgICAgeyJ6IiwgInEiLCAibSJ9LAorICAgICAgICAgICAgeyJ6IiwgInEiLCAibSJ9LAorICAgICAgICAgICAgeyJhIiwgImIiLCAiZCJ9LAorICAgICAgICAgICAgeyJyIiwgImMifSwKKyAgICAgICAgICAgIHsiYSIsICJiIiwgImMiLCAibSIsICJkIn0sCisgICAgICAgICAgICB7ImEiLCAibSIsICJiIiwgImMiLCAiZCJ9CisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBTdHJpbmcgcmx6ID0gIiI7CisgICAgICAgIGZvcihpbnQgaSA9IDA7IGk8cnVsZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIHJ1bGUgIiArIHJ1bGVzW2ldICsgIiwgZXhwZWN0ZWQgdG8gYmUiICsgZXhwZWN0ZWRSdWxlc1tpXSk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHJseiA9IHJ1bGVzW2ldOworICAgICAgICAgICAgICAgIENvbGxhdG9yIGNyZWR1bmRhbnQgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3Iocmx6KTsKKyAgICAgICAgICAgICAgICBybHogPSBleHBlY3RlZFJ1bGVzW2ldOworICAgICAgICAgICAgICAgIENvbGxhdG9yIGNyZXN1bHRpbmcgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3Iocmx6KTsKKyAgICAgICAgICAgICAgICBsb2dsbigiIGNyZWR1bmRhbnQgUnVsZToiICsgKChSdWxlQmFzZWRDb2xsYXRvciljcmVkdW5kYW50KS5nZXRSdWxlcygpKTsKKyAgICAgICAgICAgICAgICBsb2dsbigiIGNyZXN1bHRpbmcgUnVsZToiICsgKChSdWxlQmFzZWRDb2xsYXRvciljcmVzdWx0aW5nKS5nZXRSdWxlcygpKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkNhbm5vdCBjcmVhdGUgUnVsZUJhc2VkQ29sbGF0b3IiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vdGVzdEFnYWluc3RVQ0EoY3Jlc3VsdGluZywgY3JlZHVuZGFudCwgImV4cGVjdGVkIiwgVFJVRSwgJnN0YXR1cyk7CisgICAgICAgICAgICAvLyBsb2dsbigidGVzdGluZyB1c2luZyBkYXRhXG4iKTsKKyAgICAgICAgICAgIGdlbmVyaWNSdWxlc1N0YXJ0ZXIocnVsZXNbaV0sIHRlc3RkYXRhW2ldKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0RXhwYW5zaW9uU3ludGF4KCkgeworICAgICAgICBTdHJpbmdbXSBydWxlcyA9IHsKKyAgICAgICAgICAgICImQUUgPDw8IGEgPDwgYiA8PDwgYyAmZCA8PDwgZiIsCisgICAgICAgICAgICAiJkFFIDw8PCBhIDw8PCBiIDw8IGMgPDwgZCA8IGUgPCBmIDw8PCBnIiwKKyAgICAgICAgICAgICImQUUgPDw8IEIgPDw8IEMgLyBEIDw8PCBGIgorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgU3RyaW5nW10gZXhwZWN0ZWRSdWxlcyA9IHsKKyAgICAgICAgICAgICImQSA8PDwgYSAvIEUgPDwgYiAvIEUgPDw8IGMgL0UgICZkIDw8PCBmIiwKKyAgICAgICAgICAgICImQSA8PDwgYSAvIEUgPDw8IGIgLyBFIDw8IGMgLyBFIDw8IGQgLyBFIDwgZSA8IGYgPDw8IGciLAorICAgICAgICAgICAgIiZBIDw8PCBCIC8gRSA8PDwgQyAvIEVEIDw8PCBGIC8gRSIKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZ1tdW10gdGVzdGRhdGEgPSB7CisgICAgICAgICAgICB7IkFFIiwgImEiLCAiYiIsICJjIn0sCisgICAgICAgICAgICB7IkFFIiwgImEiLCAiYiIsICJjIiwgImQiLCAiZSIsICJmIiwgImcifSwKKyAgICAgICAgICAgIHsiQUUiLCAiQiIsICJDIn0gLy8gLyBFRCA8PDwgRiAvIEUifSwKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIGZvcihpbnQgaSA9IDA7IGk8cnVsZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIC8vIGxvZ2xuKCJ0ZXN0aW5nIHJ1bGUgIiArIHJ1bGVzW2ldICsgIiwgZXhwZWN0ZWQgdG8gYmUgIiArIGV4cGVjdGVkUnVsZXNbaV0pOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcmx6ID0gcnVsZXNbaV07CisgICAgICAgICAgICAgICAgQ29sbGF0b3IgY3JlZHVuZGFudCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihybHopOworICAgICAgICAgICAgICAgIHJseiA9IGV4cGVjdGVkUnVsZXNbaV07CisgICAgICAgICAgICAgICAgQ29sbGF0b3IgY3Jlc3VsdGluZyA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihybHopOworICAgICAgICAgICAgICAgIGxvZ2xuKCIgY3JlZHVuZGFudCBSdWxlOiIgKyAoKFJ1bGVCYXNlZENvbGxhdG9yKWNyZWR1bmRhbnQpLmdldFJ1bGVzKCkpOworICAgICAgICAgICAgICAgIGxvZ2xuKCIgY3Jlc3VsdGluZyBSdWxlOiIgKyAoKFJ1bGVCYXNlZENvbGxhdG9yKWNyZXN1bHRpbmcpLmdldFJ1bGVzKCkpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIHRlc3RBZ2FpbnN0VUNBIHN0aWxsIGRvZXNuJ3QgaGFuZGxlIGV4cGFuc2lvbnMgY29ycmVjdGx5LCBzbyB0aGlzIGlzIG5vdCBydW4gCisgICAgICAgICAgICAvLyBhcyBhIGhhcmQgZXJyb3IgdGVzdCwgYnV0IG9ubHkgaW4gaW5mb3JtYXRpb24gbW9kZSAKKyAgICAgICAgICAgIC8vdGVzdEFnYWluc3RVQ0EoY3Jlc3VsdGluZywgY3JlZHVuZGFudCwgImV4cGVjdGVkIiwgRkFMU0UsICZzdGF0dXMpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBsb2dsbigidGVzdGluZyB1c2luZyBkYXRhIik7CisgICAgICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyKHJ1bGVzW2ldLCB0ZXN0ZGF0YVtpXSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0SGFuZ3VsVGFpbG9yaW5nKCkgeworICAgICAgICBTdHJpbmdbXSBrb3JlYW5EYXRhID0geworICAgICAgICAgICAgIlx1YWMwMCIsICJcdTRmM2QiLCAiXHU0ZjczIiwgIlx1NTA0NyIsICJcdTUwZjkiLCAiXHU1MmEwIiwgIlx1NTNlZiIsICJcdTU0NzUiLAorICAgICAgICAgICAgIlx1NTRlNSIsICJcdTU2MDkiLCAiXHU1YWMxIiwgIlx1NWJiNiIsICJcdTY2ODciLCAiXHU2N2I2IiwgIlx1NjdiNyIsICJcdTY3ZWYiLAorICAgICAgICAgICAgIlx1NmI0YyIsICJcdTczYzIiLCAiXHU3NWMyIiwgIlx1N2EzYyIsICJcdTgyZGIiLCAiXHU4MzA0IiwgIlx1ODg1NyIsICJcdTg4ODgiLAorICAgICAgICAgICAgIlx1OGEzNiIsICJcdThjYzgiLCAiXHU4ZGNmIiwgIlx1OGVmYiIsICJcdThmZTYiLCAiXHU5OWQ1IiwKKyAgICAgICAgICAgICJcdTRFRUUiLCAiXHU1MEEyIiwgIlx1NTQ5NiIsICJcdTU0RkYiLCAiXHU1Nzc3IiwgIlx1NUI4QSIsICJcdTY1OUQiLCAiXHU2OThFIiwKKyAgICAgICAgICAgICJcdTZBOUYiLCAiXHU3M0M4IiwgIlx1N0IzMyIsICJcdTgwMUUiLCAiXHU4MjM4IiwgIlx1ODQ2RCIsICJcdThCMEMiCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBTdHJpbmcgcnVsZXMgPQorICAgICAgICAgICAgIiZcdWFjMDAgPDw8IFx1NGYzZCA8PDwgXHU0ZjczIDw8PCBcdTUwNDcgPDw8IFx1NTBmOSA8PDwgXHU1MmEwIDw8PCBcdTUzZWYgPDw8IFx1NTQ3NSAiCisgICAgICAgICAgICArICI8PDwgXHU1NGU1IDw8PCBcdTU2MDkgPDw8IFx1NWFjMSA8PDwgXHU1YmI2IDw8PCBcdTY2ODcgPDw8IFx1NjdiNiA8PDwgXHU2N2I3IDw8PCBcdTY3ZWYgIgorICAgICAgICAgICAgKyAiPDw8IFx1NmI0YyA8PDwgXHU3M2MyIDw8PCBcdTc1YzIgPDw8IFx1N2EzYyA8PDwgXHU4MmRiIDw8PCBcdTgzMDQgPDw8IFx1ODg1NyA8PDwgXHU4ODg4ICIKKyAgICAgICAgICAgICsgIjw8PCBcdThhMzYgPDw8IFx1OGNjOCA8PDwgXHU4ZGNmIDw8PCBcdThlZmIgPDw8IFx1OGZlNiA8PDwgXHU5OWQ1ICIKKyAgICAgICAgICAgICsgIjw8PCBcdTRFRUUgPDw8IFx1NTBBMiA8PDwgXHU1NDk2IDw8PCBcdTU0RkYgPDw8IFx1NTc3NyA8PDwgXHU1QjhBIDw8PCBcdTY1OUQgPDw8IFx1Njk4RSAiCisgICAgICAgICAgICArICI8PDwgXHU2QTlGIDw8PCBcdTczQzggPDw8IFx1N0IzMyA8PDwgXHU4MDFFIDw8PCBcdTgyMzggPDw8IFx1ODQ2RCA8PDwgXHU4QjBDIjsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyBybHogPSBydWxlczsKKyAgICAgICAgCisgICAgICAgIENvbGxhdG9yIGNvbGwgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sbCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihybHopOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIlVuYWJsZSB0byBvcGVuIGNvbGxhdG9yIHdpdGggcnVsZXMiICsgcnVsZXMpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIC8vIGxvZ2xuKCJVc2luZyBzdGFydCBvZiBrb3JlYW4gcnVsZXNcbiIpOworICAgICAgICBnZW5lcmljT3JkZXJpbmdUZXN0KGNvbGwsIGtvcmVhbkRhdGEpOworICAgICAgICAvLyBsb2dsbigiU2V0dGluZyBqYW1vU3BlY2lhbCB0byBUUlVFIGFuZCB0ZXN0aW5nIG9uY2UgbW9yZVxuIik7CisgICAgICAgIAorICAgICAgICAvLyBjYW4ndCBzZXQgamFtbyBpbiBpY3U0aiAKKyAgICAgICAgLy8gKChVQ0FUYWJsZUhlYWRlciAqKWNvbGwtPmltYWdlKS0+amFtb1NwZWNpYWwgPSBUUlVFOyAvLyBkb24ndCB0cnkgdGhpcyBhdCBob21lCisgICAgICAgIC8vIGdlbmVyaWNPcmRlcmluZ1Rlc3QoY29sbCwga29yZWFuRGF0YSk7CisgICAgICAgIAorICAgICAgICAvLyBubyBzdWNoIGxvY2FsZSBpbiBpY3U0agorICAgICAgICAvLyBsb2dsbigiVXNpbmcga29fX0xPVFVTIGxvY2FsZVxuIik7CisgICAgICAgIC8vIGdlbmVyaWNMb2NhbGVTdGFydGVyKG5ldyBMb2NhbGUoImtvX19MT1RVUyIsICIiKSwga29yZWFuRGF0YSk7CisgICAgfQorCisgICAgLyogCisgICAgICogcnVsZXMgcmV0dXJuZWQgYnkgVUNBIGlzICIiIGFuZCB3aWxsIGJlIHJlamVjdGVkIGJ5IHRoZSAKKyAgICAgKiBSdWxlQmFzZWRDb2xsYXRvciBjb25zdHJ1Y3RvcgorICAgICBwdWJsaWMgdm9pZCBUZXN0VUNBUnVsZXMoKSB7CisgICAgICAgIENvbGxhdG9yIGNvbGwgPSAgbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbGwgPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIlVuYWJsZSB0byBjcmVhdGUgYSBjb2xsYXRvciIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKCJUZXN0VUNBUnVsZXNcbiIpOworICAgICAgICBTdHJpbmcgcnVsZXMgPSAoKFJ1bGVCYXNlZENvbGxhdG9yKWNvbGwpLmdldFJ1bGVzKCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBDb2xsYXRvciBVQ0Fmcm9tUnVsZXMgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZXMpOworICAgICAgICAgICAgbG9nbG4oInJ1bGU6IiArICgoUnVsZUJhc2VkQ29sbGF0b3IpVUNBZnJvbVJ1bGVzKSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiVW5hYmxlIHRvIGNyZWF0ZSBhIGNvbGxhdG9yIGZyb20gVUNBUnVsZXMhXG4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKyAgICAqLworICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RJbmNyZW1lbnRhbE5vcm1hbGl6ZSgpIHsKKyAgICAgICAgQ29sbGF0b3IgICAgICAgIGNvbGwgPSBudWxsOzsKKyAgICAgICAgLy8gbG9nbG4oIlRlc3QgMSAuLi4uIik7CisgICAgICAgIHsKKyAgICAgICAgICAgIC8qIFRlc3QgMS4gIFJ1biB2ZXJ5IGxvbmcgdW5ub3JtYWxpemVkIHN0cmluZ3MsIHRvIGZvcmNlIG92ZXJmbG93IG9mKi8KKyAgICAgICAgICAgIC8qICAgICAgICAgIG1vc3QgYnVmZmVycyBhbG9uZyB0aGUgd2F5LiovCisgICAgICAgICAgICAKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgY29sbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKG5ldyBMb2NhbGUoImVuIiwgIlVTIikpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ2Fubm90IGdldCBkZWZhdWx0IGluc3RhbmNlISIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNoYXIgYmFzZUEgICAgID0weDQxOworICAgICAgICAgICAgY2hhciBjY01peFtdICAgPSB7MHgzMTYsIDB4MzIxLCAweDMwMH07CisgICAgICAgICAgICBpbnQgICAgICAgICAgc0xlbjsKKyAgICAgICAgICAgIGludCAgICAgICAgICBpOworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHN0ckEgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgc3RyQiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY29sbC5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChzTGVuID0gMTAwMDsgc0xlbjwxMDAxOyBzTGVuKyspIHsKKyAgICAgICAgICAgICAgICBzdHJBLmRlbGV0ZSgwLCBzdHJBLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICBzdHJBLmFwcGVuZChiYXNlQSk7CisgICAgICAgICAgICAgICAgc3RyQi5kZWxldGUoMCwgc3RyQi5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgc3RyQi5hcHBlbmQoYmFzZUEpOworICAgICAgICAgICAgICAgIGZvciAoaT0xOyBpPCBzTGVuOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgc3RyQS5hcHBlbmQoY2NNaXhbaSAlIDNdKTsKKyAgICAgICAgICAgICAgICAgICAgc3RyQi5pbnNlcnQoMSwgY2NNaXhbaSAlIDNdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY29sbC5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7ICAgLy8gRG8gdGVzdCB3aXRoIGRlZmF1bHQgc3RyZW5ndGgsIHdoaWNoIHJ1bnMKKyAgICAgICAgICAgICAgICBkb1Rlc3QoY29sbCwgc3RyQS50b1N0cmluZygpLCBzdHJCLnRvU3RyaW5nKCksIDApOyAgICAvLyAgIG9wdGltaXplZCBmdW5jdGlvbnMgaW4gdGhlIGltcGwKKyAgICAgICAgICAgICAgICBjb2xsLnNldFN0cmVuZ3RoKENvbGxhdG9yLklERU5USUNBTCk7ICAgLy8gRG8gYWdhaW4gd2l0aCB0aGUgc2xvdywgZ2VuZXJhbCBpbXBsLgorICAgICAgICAgICAgICAgIGRvVGVzdChjb2xsLCBzdHJBLnRvU3RyaW5nKCksIHN0ckIudG9TdHJpbmcoKSwgMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLyogIFRlc3QgMjogIE5vbi1ub3JtYWwgc2VxdWVuY2UgaW4gYSBzdHJpbmcgdGhhdCBleHRlbmRzIHRvIHRoZSBsYXN0IGNoYXJhY3RlciovCisgICAgICAgIC8qICAgICAgICAgb2YgdGhlIHN0cmluZy4gIENoZWNrcyBhIGNvdXBsZSBvZiBlZGdlIGNhc2VzLiovCisgICAgICAgIC8vIGxvZ2xuKCJUZXN0IDIgLi4uLiIpOyAgICAKKyAgICAgICAgeworICAgICAgICAgICAgU3RyaW5nIHN0ckEgPSAiQUFcdTAzMDBcdTAzMTYiOworICAgICAgICAgICAgU3RyaW5nIHN0ckIgPSAiQVx1MDBjMFx1MDMxNiI7CisgICAgICAgICAgICBjb2xsLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgICAgIGRvVGVzdChjb2xsLCBzdHJBLCBzdHJCLCAwKTsKKyAgICAgICAgfQorICAgICAgICAvKiAgVGVzdCAzOiAgTm9uLW5vcm1hbCBzZXF1ZW5jZSBpcyB0ZXJtaW5hdGVkIGJ5IGEgc3Vycm9nYXRlIHBhaXIuKi8KKyAgICAgICAgLy8gbG9nbG4oIlRlc3QgMyAuLi4uIik7CisgICAgICAgIHsKKyAgICAgICAgICAgIFN0cmluZyBzdHJBID0gIkFBXHUwMzAwXHUwMzE2XHVEODAwXHVEQzAxIjsKKyAgICAgICAgICAgIFN0cmluZyBzdHJCID0gIkFcdTAwYzBcdTAzMTZcdUQ4MDBcdURDMDAiOworICAgICAgICAgICAgY29sbC5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgICAgICBkb1Rlc3QoY29sbCwgc3RyQSwgc3RyQiwgMSk7CisgICAgICAgIH0KKyAgICAgICAgLyogIFRlc3QgNDogIEltYmVkZGVkIG51bGxzIGRvIG5vdCB0ZXJtaW5hdGUgYSBzdHJpbmcgd2hlbiBsZW5ndGggaXMgc3BlY2lmaWVkLiovCisgICAgICAgIC8vIGxvZ2xuKCJUZXN0IDQgLi4uLiIpOworICAgICAgICAvKgorICAgICAgICAgKiBub3QgYSB2YWxpZCB0ZXN0IHNpbmNlIHN0cmluZyBhcmUgbnVsbC10ZXJtaW5hdGVkIGluIGphdmF7CisgICAgICAgICAgICBjaGFyIHN0ckFbXSA9IHsweDQxLCAweDAwLCAweDQyfTsKKyAgICAgICAgICAgIGNoYXIgc3RyQltdID0gezB4NDEsIDB4MDAsIDB4MDB9OworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gY29sbC5jb21wYXJlKG5ldyBTdHJpbmcoc3RyQSksIG5ldyBTdHJpbmcoc3RyQikpOworICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSAxKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SIDEgaW4gdGVzdCA0XG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmVzdWx0ID0gY29sbC5jb21wYXJlKG5ldyBTdHJpbmcoc3RyQSwgMCwgMSksIG5ldyBTdHJpbmcoc3RyQiwgMCwgMSkpOworICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SIDEgaW4gdGVzdCA0XG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgQ29sbGF0aW9uS2V5IHNvcnRLZXlBID0gY29sbC5nZXRDb2xsYXRpb25LZXkobmV3IFN0cmluZyhzdHJBKSk7CisgICAgICAgICAgICBDb2xsYXRpb25LZXkgc29ydEtleUIgPSBjb2xsLmdldENvbGxhdGlvbktleShuZXcgU3RyaW5nKHN0ckIpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IHIgPSBzb3J0S2V5QS5jb21wYXJlVG8oc29ydEtleUIpOworICAgICAgICAgICAgaWYgKHIgPD0gMCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciA0IGluIHRlc3QgNFxuIik7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBjb2xsLnNldFN0cmVuZ3RoKENvbGxhdG9yLklERU5USUNBTCk7CisgICAgICAgICAgICBzb3J0S2V5QSA9IGNvbGwuZ2V0Q29sbGF0aW9uS2V5KG5ldyBTdHJpbmcoc3RyQSkpOworICAgICAgICAgICAgc29ydEtleUIgPSBjb2xsLmdldENvbGxhdGlvbktleShuZXcgU3RyaW5nKHN0ckIpKTsKKyAgICAKKyAgICAgICAgICAgIHIgPSBzb3J0S2V5QS5jb21wYXJlVG8oc29ydEtleUIpOworICAgICAgICAgICAgaWYgKHIgPD0gMCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciA3IGluIHRlc3QgNFxuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNvbGwuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICB9CisgICAgICAgICovCisgICAgICAgIC8qICBUZXN0IDU6ICBOdWxsIGNoYXJhY3RlcnMgaW4gbm9uLW5vcm1hbCBzb3VyY2Ugc3RyaW5ncy4qLworICAgICAgICAvLyBsb2dsbigiVGVzdCA1IC4uLi4iKTsKKyAgICAgICAgLyoKKyAgICAgICAgICogbm90IGEgdmFsaWQgdGVzdCBzaW5jZSBzdHJpbmcgYXJlIG51bGwtdGVybWluYXRlZCBpbiBqYXZheworICAgICAgICB7CisgICAgICAgICAgICBjaGFyIHN0ckFbXSA9IHsweDQxLCAweDQxLCAweDMwMCwgMHgzMTYsIDB4MDAsIDB4NDIsfTsKKyAgICAgICAgICAgIGNoYXIgc3RyQltdID0gezB4NDEsIDB4NDEsIDB4MzAwLCAweDMxNiwgMHgwMCwgMHgwMCx9OworICAgICAgICAgICAKKyAgICAKKyAgICAgICAgICAgIGludCByZXN1bHQgPSBjb2xsLmNvbXBhcmUobmV3IFN0cmluZyhzdHJBLCAwLCA2KSwgbmV3IFN0cmluZyhzdHJCLCAwLCA2KSk7CisgICAgICAgICAgICBpZiAocmVzdWx0IDwgMCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUiAxIGluIHRlc3QgNVxuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXN1bHQgPSBjb2xsLmNvbXBhcmUobmV3IFN0cmluZyhzdHJBLCAwLCA0KSwgbmV3IFN0cmluZyhzdHJCLCAwLCA0KSk7CisgICAgICAgICAgICBpZiAocmVzdWx0ICE9IDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1IgMiBpbiB0ZXN0IDVcbiIpOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgQ29sbGF0aW9uS2V5IHNvcnRLZXlBID0gY29sbC5nZXRDb2xsYXRpb25LZXkobmV3IFN0cmluZyhzdHJBKSk7CisgICAgICAgICAgICBDb2xsYXRpb25LZXkgc29ydEtleUIgPSBjb2xsLmdldENvbGxhdGlvbktleShuZXcgU3RyaW5nKHN0ckIpKTsKKyAgICAgICAgICAgIGludCByID0gc29ydEtleUEuY29tcGFyZVRvKHNvcnRLZXlCKTsKKyAgICAgICAgICAgIGlmIChyIDw9IDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgNCBpbiB0ZXN0IDVcbiIpOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgY29sbC5zZXRTdHJlbmd0aChDb2xsYXRvci5JREVOVElDQUwpOworICAgICAgICAgICAgCisgICAgICAgICAgICBzb3J0S2V5QSA9IGNvbGwuZ2V0Q29sbGF0aW9uS2V5KG5ldyBTdHJpbmcoc3RyQSkpOworICAgICAgICAgICAgc29ydEtleUIgPSBjb2xsLmdldENvbGxhdGlvbktleShuZXcgU3RyaW5nKHN0ckIpKTsKKyAgICAgICAgICAgIHIgPSBzb3J0S2V5QS5jb21wYXJlVG8oc29ydEtleUIpOworICAgICAgICAgICAgaWYgKHIgPD0gMCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciA3IGluIHRlc3QgNVxuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNvbGwuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICB9CisgICAgICAgICovCisgICAgICAgIC8qICBUZXN0IDY6ICBOdWxsIGNoYXJhY3RlciBhcyBiYXNlIG9mIGEgbm9uLW5vcm1hbCBjb21iaW5pbmcgc2VxdWVuY2UuKi8KKyAgICAgICAgLy8gbG9nbG4oIlRlc3QgNiAuLi4uIik7CisgICAgICAgIC8qCisgICAgICAgICAqIG5vdCBhIHZhbGlkIHRlc3Qgc2luY2Ugc3RyaW5nIGFyZSBudWxsLXRlcm1pbmF0ZWQgaW4gamF2YXsKKyAgICAgICAgeworICAgICAgICAgICAgY2hhciBzdHJBW10gPSB7MHg0MSwgMHgwLCAweDMwMCwgMHgzMTYsIDB4NDEsIDB4MzAyLH07CisgICAgICAgICAgICBjaGFyIHN0ckJbXSA9IHsweDQxLCAweDAsIDB4MzAyLCAweDMxNiwgMHg0MSwgMHgzMDAsfTsKKyAgICAKKyAgICAgICAgICAgIGludCByZXN1bHQgPSBjb2xsLmNvbXBhcmUobmV3IFN0cmluZyhzdHJBLCAwLCA1KSwgbmV3IFN0cmluZyhzdHJCLCAwLCA1KSk7CisgICAgICAgICAgICBpZiAocmVzdWx0ICE9IC0xKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIDEgaW4gdGVzdCA2XG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlc3VsdCA9IGNvbGwuY29tcGFyZShuZXcgU3RyaW5nKHN0ckEsIDAsIDEpLCBuZXcgU3RyaW5nKHN0ckIsIDAsIDEpKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gMCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciAyIGluIHRlc3QgNlxuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgKi8KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdENvbnRyYWN0aW9uKCkgeworICAgICAgICBTdHJpbmdbXSB0ZXN0cnVsZXMgPSB7CisgICAgICAgICAgICAiJkEgPSBBQiAvIEIiLAorICAgICAgICAgICAgIiZBID0gQVxcdTAzMDYvXFx1MDMwNiIsCisgICAgICAgICAgICAiJmMgPSBjaCAvIGgiLAorICAgICAgICB9OworICAgICAgICBTdHJpbmdbXSB0ZXN0ZGF0YSA9IHsKKyAgICAgICAgICAgICJBQiIsICJBQiIsICJBXHUwMzA2IiwgImNoIgorICAgICAgICB9OworICAgICAgICBTdHJpbmdbXSB0ZXN0ZGF0YTIgPSB7CisgICAgICAgICAgICAiXHUwMDYzXHUwMDY3IiwKKyAgICAgICAgICAgICJcdTAwNjNcdTAwNjgiLAorICAgICAgICAgICAgIlx1MDA2M1x1MDA2QyIsCisgICAgICAgIH07CisgICAgICAgIFN0cmluZ1tdIHRlc3RydWxlczMgPSB7CisgICAgICAgICAgICAiJnogPCB4eXogJnh5encgPDwgQiIsCisgICAgICAgICAgICAiJnogPCB4eXogJnh5eiA8PCBCIC8gdyIsCisgICAgICAgICAgICAiJnogPCBjaCAmYWNobSA8PCBCIiwKKyAgICAgICAgICAgICImeiA8IGNoICZhIDw8IEIgLyBjaG0iLAorICAgICAgICAgICAgIiZcdWQ4MDBcdWRjMDB3IDw8IEIiLAorICAgICAgICAgICAgIiZcdWQ4MDBcdWRjMDAgPDwgQiAvIHciLAorICAgICAgICAgICAgIiZhXHVkODAwXHVkYzAwbSA8PCBCIiwKKyAgICAgICAgICAgICImYSA8PCBCIC8gXHVkODAwXHVkYzAwbSIsCisgICAgICAgIH07CisgICAgCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yICBjb2xsID0gbnVsbDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cnVsZXMubGVuZ3RoOyBpICsrKSB7CisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlcjEgPSBudWxsOworICAgICAgICAgICAgaW50IGogPSAwOworICAgICAgICAgICAgLy8gbG9nbG4oIlJ1bGUgIiArIHRlc3RydWxlc1tpXSArICIgZm9yIHRlc3RpbmdcbiIpOworICAgICAgICAgICAgU3RyaW5nIHJ1bGUgPSB0ZXN0cnVsZXNbaV07CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGNvbGwgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJDb2xsYXRvciBjcmVhdGlvbiBmYWlsZWQgIiArIHRlc3RydWxlc1tpXSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpdGVyMSA9IGNvbGwuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHRlc3RkYXRhW2ldKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkNvbGxhdGlvbiBpdGVyYXRvciBjcmVhdGlvbiBmYWlsZWRcbiIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHdoaWxlIChqIDwgMikgeworICAgICAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyMjsKKyAgICAgICAgICAgICAgICBpbnQgY2U7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgaXRlcjIgPSBjb2xsLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihTdHJpbmcudmFsdWVPZih0ZXN0ZGF0YVtpXS5jaGFyQXQoaikpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB9Y2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJDb2xsYXRpb24gaXRlcmF0b3IgY3JlYXRpb24gZmFpbGVkXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjZSA9IGl0ZXIyLm5leHQoKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoY2UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICBpZiAoaXRlcjEubmV4dCgpICE9IGNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiQ29sbGF0aW9uIGVsZW1lbnRzIGluIGNvbnRyYWN0aW9uIHNwbGl0IGRvZXMgbm90IG1hdGNoXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjZSA9IGl0ZXIyLm5leHQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaiArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpdGVyMS5uZXh0KCkgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgIGVycmxuKCJDb2xsYXRpb24gZWxlbWVudHMgbm90IGV4aGF1c3RlZFxuIik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIFN0cmluZyBydWxlID0gIiYgYSA8IGIgPCBjIDwgY2ggPCBkICYgYyA9IGNoIC8gaCI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGUpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oImNhbm5vdCBjcmVhdGUgcnVsZWJhc2VkIGNvbGxhdG9yIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChjb2xsLmNvbXBhcmUodGVzdGRhdGEyWzBdLCB0ZXN0ZGF0YTJbMV0pICE9IC0xKSB7CisgICAgICAgICAgICBlcnJsbigiRXhwZWN0ZWQgIiArIHRlc3RkYXRhMlswXSArICIgPCAiICsgdGVzdGRhdGEyWzFdKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAoY29sbC5jb21wYXJlKHRlc3RkYXRhMlsxXSwgdGVzdGRhdGEyWzJdKSAhPSAtMSkgeworICAgICAgICAgICAgZXJybG4oIkV4cGVjdGVkICIgKyB0ZXN0ZGF0YTJbMV0gKyAiIDwgIiArIHRlc3RkYXRhMlsyXSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cnVsZXMzLmxlbmd0aDsgaSArPSAyKSB7CisgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciAgICAgICAgICBjb2xsMSwgY29sbDI7CisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlcjEsIGl0ZXIyOworICAgICAgICAgICAgY2hhciAgICAgICAgICAgICAgIGNoID0gMHgwMDQyOworICAgICAgICAgICAgaW50ICAgICAgICAgICAgY2U7CisgICAgICAgICAgICBydWxlID0gdGVzdHJ1bGVzM1tpXTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgY29sbDEgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBjYW5ub3QgY3JlYXRlIHJ1bGViYXNlZCBjb2xsYXRvciwgcnVsZToiICsgcnVsZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcnVsZSA9IHRlc3RydWxlczNbaSArIDFdOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBjb2xsMiA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkNvbGxhdG9yIGNyZWF0aW9uIGZhaWxlZCAiICsgdGVzdHJ1bGVzW2ldKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGl0ZXIxID0gY29sbDEuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKFN0cmluZy52YWx1ZU9mKGNoKSk7CisgICAgICAgICAgICAgICAgaXRlcjIgPSBjb2xsMi5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoU3RyaW5nLnZhbHVlT2YoY2gpKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkNvbGxhdGlvbiBpdGVyYXRvciBjcmVhdGlvbiBmYWlsZWRcbiIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNlID0gaXRlcjEubmV4dCgpOworICAgICAgICAgICAgCisgICAgICAgICAgICB3aGlsZSAoY2UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgIGlmIChjZSAhPSBpdGVyMi5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkNFcyBkb2VzIG5vdCBtYXRjaFxuIik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2UgPSBpdGVyMS5uZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaXRlcjIubmV4dCgpICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ0VzIG5vdCBleGhhdXN0ZWRcbiIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0RXhwYW5zaW9uKCkgeworICAgICAgICBTdHJpbmdbXSB0ZXN0cnVsZXMgPSB7CisgICAgICAgICAgICAiJkogPDwgSyAvIEIgJiBLIDw8IE0iLAorICAgICAgICAgICAgIiZKIDw8IEsgLyBCIDw8IE0iCisgICAgICAgIH07CisgICAgICAgIFN0cmluZ1tdIHRlc3RkYXRhID0geworICAgICAgICAgICAgIkpBIiwgIk1BIiwgIktBIiwgIktDIiwgIkpDIiwgIk1DIiwKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIENvbGxhdG9yICBjb2xsOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RydWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgLy8gbG9nbG4oIlJ1bGUgIiArIHRlc3RydWxlc1tpXSArICIgZm9yIHRlc3RpbmdcbiIpOworICAgICAgICAgICAgU3RyaW5nIHJ1bGUgPSB0ZXN0cnVsZXNbaV07CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGNvbGwgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJDb2xsYXRvciBjcmVhdGlvbiBmYWlsZWQgIiArIHRlc3RydWxlc1tpXSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IDU7IGogKyspIHsKKyAgICAgICAgICAgICAgICBkb1Rlc3QoY29sbCwgdGVzdGRhdGFbal0sIHRlc3RkYXRhW2ogKyAxXSwgLTEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RDb250cmFjdGlvbkVuZENvbXBhcmUoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIHJ1bGVzID0gIiZiPWNoIjsKKyAgICAgICAgU3RyaW5nIHNyYyA9ICJiZWMiOworICAgICAgICBTdHJpbmcgdGd0ID0gImJlY2giOworICAgICAgICBDb2xsYXRvciBjb2xsID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbGwgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZXMpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkNvbGxhdG9yIGNyZWF0aW9uIGZhaWxlZCAiICsgcnVsZXMpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGRvVGVzdChjb2xsLCBzcmMsIHRndCwgMSk7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25Nb25rZXlUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uTW9ua2V5VGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5YTE5MGEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uTW9ua2V5VGVzdC5qYXZhCkBAIC0wLDAgKzEsMzIyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICRTb3VyY2U6IAorICogJERhdGU6IAorICogJFJldmlzaW9uOiAKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjIuMSA6IGNvbGxhdGUvQ29sbGF0aW9uTW9ua2V5VGVzdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3QvbW5reXRzdC5jcHAKKyAqKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGphdmEudXRpbC5SYW5kb207CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworLyoqCisgKiBDb2xsYXRpb25Nb25rZXlUZXN0IGlzIGEgdGhpcmQgbGV2ZWwgdGVzdCBjbGFzcy4gIFRoaXMgdGVzdHMgdGhlIHJhbmRvbSAKKyAqIHN1YnN0cmluZ3Mgb2YgdGhlIGRlZmF1bHQgdGVzdCBzdHJpbmdzIHRvIHZlcmlmeSBpZiB0aGUgY29tcGFyZSBhbmQgCisgKiBzb3J0IGtleSBhbGdvcml0aG0gd29ya3MgY29ycmVjdGx5LiAgRm9yIGV4YW1wbGUsIGFueSBzdHJpbmcgaXMgYWx3YXlzCisgKiBsZXNzIHRoYW4gdGhlIHN0cmluZyBpdHNlbGYgYXBwZW5kZWQgd2l0aCBhbnkgY2hhcmFjdGVyLgorICovCisKK3B1YmxpYyBjbGFzcyBDb2xsYXRpb25Nb25rZXlUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIAorICAgIHByaXZhdGUgU3RyaW5nIHNvdXJjZSA9ICItYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXojJl4kQCI7CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBDb2xsYXRpb25Nb25rZXlUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29sbGF0aW9uS2V5KCkgeworICAgICAgICBpZihzb3VyY2UubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgZXJybG4oIkNvbGxhdGlvbk1vbmtleVRlc3QuVGVzdENvbGxhdGlvbktleSgpOiBzb3VyY2UgaXMgZW1wdHkgLSBJQ1VfREFUQSBub3Qgc2V0IG9yIGRhdGEgbWlzc2luZz8iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBDb2xsYXRvciBteUNvbGxhdG9yOworICAgICAgICB0cnkgeworICAgICAgICAgICAgIG15Q29sbGF0b3IgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJlbiIsICJVUyIpKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogaW4gY3JlYXRpb24gb2YgY29sbGF0b3Igb2YgRU5HTElTSCBsb2NhbGUiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgUmFuZG9tIHJhbmQgPSBuZXcgUmFuZG9tKCk7CisgICAgICAgIGludCBzID0gcmFuZC5uZXh0SW50KDB4N2ZmZikgJSBzb3VyY2UubGVuZ3RoKCk7CisgICAgICAgIGludCB0ID0gcmFuZC5uZXh0SW50KDB4N2ZmZikgJSBzb3VyY2UubGVuZ3RoKCk7CisgICAgICAgIGludCBzbGVuID0gTWF0aC5hYnMocmFuZC5uZXh0SW50KDB4N2ZmZikgJSBzb3VyY2UubGVuZ3RoKCkgLSBzb3VyY2UubGVuZ3RoKCkpICUgc291cmNlLmxlbmd0aCgpOworICAgICAgICBpbnQgdGxlbiA9IE1hdGguYWJzKHJhbmQubmV4dEludCgweDdmZmYpICUgc291cmNlLmxlbmd0aCgpIC0gc291cmNlLmxlbmd0aCgpKSAlIHNvdXJjZS5sZW5ndGgoKTsKKyAgICAgICAgU3RyaW5nIHN1YnMgPSBzb3VyY2Uuc3Vic3RyaW5nKE1hdGgubWluKHMsIHNsZW4pLCBNYXRoLm1pbihzICsgc2xlbiwgc291cmNlLmxlbmd0aCgpKSk7CisgICAgICAgIFN0cmluZyBzdWJ0ID0gc291cmNlLnN1YnN0cmluZyhNYXRoLm1pbih0LCB0bGVuKSwgTWF0aC5taW4odCArIHRsZW4sIHNvdXJjZS5sZW5ndGgoKSkpOworICAgIAorICAgICAgICBDb2xsYXRpb25LZXkgY29sbGF0aW9uS2V5MSwgY29sbGF0aW9uS2V5MjsKKyAgICAKKyAgICAgICAgbXlDb2xsYXRvci5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIGNvbGxhdGlvbktleTEgPSBteUNvbGxhdG9yLmdldENvbGxhdGlvbktleShzdWJzKTsKKyAgICAgICAgY29sbGF0aW9uS2V5MiA9IG15Q29sbGF0b3IuZ2V0Q29sbGF0aW9uS2V5KHN1YnQpOworICAgICAgICBpbnQgcmVzdWx0ID0gY29sbGF0aW9uS2V5MS5jb21wYXJlVG8oY29sbGF0aW9uS2V5Mik7ICAvLyBUZXJ0aWFyeQorICAgICAgICBpbnQgcmV2UmVzdWx0ID0gY29sbGF0aW9uS2V5Mi5jb21wYXJlVG8oY29sbGF0aW9uS2V5MSk7ICAvLyBUZXJ0aWFyeQorICAgICAgICByZXBvcnQoIHN1YnMsIHN1YnQsIHJlc3VsdCwgcmV2UmVzdWx0KTsKKyAgICAKKyAgICAgICAgbXlDb2xsYXRvci5zZXRTdHJlbmd0aChDb2xsYXRvci5TRUNPTkRBUlkpOworICAgICAgICBjb2xsYXRpb25LZXkxID0gbXlDb2xsYXRvci5nZXRDb2xsYXRpb25LZXkoc3Vicyk7CisgICAgICAgIGNvbGxhdGlvbktleTIgPSBteUNvbGxhdG9yLmdldENvbGxhdGlvbktleShzdWJ0KTsKKyAgICAgICAgcmVzdWx0ID0gY29sbGF0aW9uS2V5MS5jb21wYXJlVG8oY29sbGF0aW9uS2V5Mik7ICAvLyBTZWNvbmRhcnkKKyAgICAgICAgcmV2UmVzdWx0ID0gY29sbGF0aW9uS2V5Mi5jb21wYXJlVG8oY29sbGF0aW9uS2V5MSk7ICAgLy8gU2Vjb25kYXJ5CisgICAgICAgIHJlcG9ydCggc3Vicywgc3VidCwgcmVzdWx0LCByZXZSZXN1bHQpOworICAgIAorICAgICAgICBteUNvbGxhdG9yLnNldFN0cmVuZ3RoKENvbGxhdG9yLlBSSU1BUlkpOworICAgICAgICBjb2xsYXRpb25LZXkxID0gbXlDb2xsYXRvci5nZXRDb2xsYXRpb25LZXkoc3Vicyk7CisgICAgICAgIGNvbGxhdGlvbktleTIgPSBteUNvbGxhdG9yLmdldENvbGxhdGlvbktleShzdWJ0KTsKKyAgICAgICAgcmVzdWx0ID0gY29sbGF0aW9uS2V5MS5jb21wYXJlVG8oY29sbGF0aW9uS2V5Mik7ICAvLyBQcmltYXJ5CisgICAgICAgIHJldlJlc3VsdCA9IGNvbGxhdGlvbktleTIuY29tcGFyZVRvKGNvbGxhdGlvbktleTEpOyAgIC8vIFByaW1hcnkKKyAgICAgICAgcmVwb3J0KHN1YnMsIHN1YnQsIHJlc3VsdCwgcmV2UmVzdWx0KTsKKyAgICAKKyAgICAgICAgU3RyaW5nIG1zZyA9ICIiOworICAgICAgICBTdHJpbmcgYWRkT25lID0gc3VicyArIFN0cmluZy52YWx1ZU9mKDB4RTAwMCk7CisgICAgCisgICAgICAgIGNvbGxhdGlvbktleTEgPSBteUNvbGxhdG9yLmdldENvbGxhdGlvbktleShzdWJzKTsKKyAgICAgICAgY29sbGF0aW9uS2V5MiA9IG15Q29sbGF0b3IuZ2V0Q29sbGF0aW9uS2V5KGFkZE9uZSk7CisgICAgICAgIHJlc3VsdCA9IGNvbGxhdGlvbktleTEuY29tcGFyZVRvKGNvbGxhdGlvbktleTIpOworICAgICAgICBpZiAocmVzdWx0ICE9IC0xKSB7CisgICAgICAgICAgICBtc2cgKz0gIkNvbGxhdGlvbktleSgiOworICAgICAgICAgICAgbXNnICs9IHN1YnM7CisgICAgICAgICAgICBtc2cgKz0gIikgLkxULiBDb2xsYXRpb25LZXkoIjsKKyAgICAgICAgICAgIG1zZyArPSBhZGRPbmU7CisgICAgICAgICAgICBtc2cgKz0gIikgRmFpbGVkLiI7CisgICAgICAgICAgICBlcnJsbihtc2cpOworICAgICAgICB9CisgICAgCisgICAgICAgIG1zZyA9ICIiOworICAgICAgICByZXN1bHQgPSBjb2xsYXRpb25LZXkyLmNvbXBhcmVUbyhjb2xsYXRpb25LZXkxKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPSAxKSB7CisgICAgICAgICAgICBtc2cgKz0gIkNvbGxhdGlvbktleSgiOworICAgICAgICAgICAgbXNnICs9IGFkZE9uZTsKKyAgICAgICAgICAgIG1zZyArPSAiKSAuR1QuIENvbGxhdGlvbktleSgiOworICAgICAgICAgICAgbXNnICs9IHN1YnM7CisgICAgICAgICAgICBtc2cgKz0gIikgRmFpbGVkLiI7CisgICAgICAgICAgICBlcnJsbihtc2cpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIHBlcmZvcm0gbW9ua2V5IHRlc3RzIHVzaW5nIENvbGxhdG9yLmNvbXBhcmUKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcGFyZSgpIHsKKyAgICAgICAgaWYoc291cmNlLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJDb2xsYXRpb25Nb25rZXlUZXN0LlRlc3RDb21wYXJlKCk6IHNvdXJjZSBpcyBlbXB0eSAtIElDVV9EQVRBIG5vdCBzZXQgb3IgZGF0YSBtaXNzaW5nPyIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBDb2xsYXRvciBteUNvbGxhdG9yOworICAgICAgICB0cnkgeworICAgICAgICAgICAgIG15Q29sbGF0b3IgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJlbiIsICJVUyIpKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogaW4gY3JlYXRpb24gb2YgY29sbGF0b3Igb2YgRU5HTElTSCBsb2NhbGUiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyogU2VlZCB0aGUgcmFuZG9tLW51bWJlciBnZW5lcmF0b3Igd2l0aCBjdXJyZW50IHRpbWUgc28gdGhhdAorICAgICAgICAgKiB0aGUgbnVtYmVycyB3aWxsIGJlIGRpZmZlcmVudCBldmVyeSB0aW1lIHdlIHJ1bi4KKyAgICAgICAgICovCisgICAgICAgIAorICAgICAgICBSYW5kb20gcmFuZCA9IG5ldyBSYW5kb20oKTsKKyAgICAgICAgaW50IHMgPSByYW5kLm5leHRJbnQoMHg3ZmZmKSAlIHNvdXJjZS5sZW5ndGgoKTsKKyAgICAgICAgaW50IHQgPSByYW5kLm5leHRJbnQoMHg3ZmZmKSAlIHNvdXJjZS5sZW5ndGgoKTsKKyAgICAgICAgaW50IHNsZW4gPSBNYXRoLmFicyhyYW5kLm5leHRJbnQoMHg3ZmZmKSAlIHNvdXJjZS5sZW5ndGgoKSAtIHNvdXJjZS5sZW5ndGgoKSkgJSBzb3VyY2UubGVuZ3RoKCk7CisgICAgICAgIGludCB0bGVuID0gTWF0aC5hYnMocmFuZC5uZXh0SW50KDB4N2ZmZikgJSBzb3VyY2UubGVuZ3RoKCkgLSBzb3VyY2UubGVuZ3RoKCkpICUgc291cmNlLmxlbmd0aCgpOworICAgICAgICBTdHJpbmcgc3VicyA9IHNvdXJjZS5zdWJzdHJpbmcoTWF0aC5taW4ocywgc2xlbiksIE1hdGgubWluKHMgKyBzbGVuLCBzb3VyY2UubGVuZ3RoKCkpKTsKKyAgICAgICAgU3RyaW5nIHN1YnQgPSBzb3VyY2Uuc3Vic3RyaW5nKE1hdGgubWluKHQsIHRsZW4pLCBNYXRoLm1pbih0ICsgdGxlbiwgc291cmNlLmxlbmd0aCgpKSk7CisgICAgCisgICAgICAgIG15Q29sbGF0b3Iuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICBpbnQgcmVzdWx0ID0gbXlDb2xsYXRvci5jb21wYXJlKHN1YnMsIHN1YnQpOyAgLy8gVGVydGlhcnkKKyAgICAgICAgaW50IHJldlJlc3VsdCA9IG15Q29sbGF0b3IuY29tcGFyZShzdWJ0LCBzdWJzKTsgIC8vIFRlcnRpYXJ5CisgICAgICAgIHJlcG9ydChzdWJzLCBzdWJ0LCByZXN1bHQsIHJldlJlc3VsdCk7CisgICAgCisgICAgICAgIG15Q29sbGF0b3Iuc2V0U3RyZW5ndGgoQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgcmVzdWx0ID0gbXlDb2xsYXRvci5jb21wYXJlKHN1YnMsIHN1YnQpOyAgLy8gU2Vjb25kYXJ5CisgICAgICAgIHJldlJlc3VsdCA9IG15Q29sbGF0b3IuY29tcGFyZShzdWJ0LCBzdWJzKTsgIC8vIFNlY29uZGFyeQorICAgICAgICByZXBvcnQoc3Vicywgc3VidCwgcmVzdWx0LCByZXZSZXN1bHQpOworICAgIAorICAgICAgICBteUNvbGxhdG9yLnNldFN0cmVuZ3RoKENvbGxhdG9yLlBSSU1BUlkpOworICAgICAgICByZXN1bHQgPSBteUNvbGxhdG9yLmNvbXBhcmUoc3Vicywgc3VidCk7ICAvLyBQcmltYXJ5CisgICAgICAgIHJldlJlc3VsdCA9IG15Q29sbGF0b3IuY29tcGFyZShzdWJ0LCBzdWJzKTsgIC8vIFByaW1hcnkKKyAgICAgICAgcmVwb3J0KHN1YnMsIHN1YnQsIHJlc3VsdCwgcmV2UmVzdWx0KTsKKyAgICAKKyAgICAgICAgU3RyaW5nIG1zZyA9ICIiOworICAgICAgICBTdHJpbmcgYWRkT25lID0gc3VicyArIFN0cmluZy52YWx1ZU9mKDB4RTAwMCk7CisgICAgCisgICAgICAgIHJlc3VsdCA9IG15Q29sbGF0b3IuY29tcGFyZShzdWJzLCBhZGRPbmUpOworICAgICAgICBpZiAocmVzdWx0ICE9IC0xKSB7CisgICAgICAgICAgICBtc2cgKz0gIlRlc3QgOiAiOworICAgICAgICAgICAgbXNnICs9IHN1YnM7CisgICAgICAgICAgICBtc2cgKz0gIiAuTFQuICI7CisgICAgICAgICAgICBtc2cgKz0gYWRkT25lOworICAgICAgICAgICAgbXNnICs9ICIgRmFpbGVkLiI7CisgICAgICAgICAgICBlcnJsbihtc2cpOworICAgICAgICB9CisgICAgCisgICAgICAgIG1zZyA9ICIiOworICAgICAgICByZXN1bHQgPSBteUNvbGxhdG9yLmNvbXBhcmUoYWRkT25lLCBzdWJzKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPSAxKSB7CisgICAgICAgICAgICBtc2cgKz0gIlRlc3QgOiAiOworICAgICAgICAgICAgbXNnICs9IGFkZE9uZTsKKyAgICAgICAgICAgIG1zZyArPSAiIC5HVC4gIjsKKyAgICAgICAgICAgIG1zZyArPSBzdWJzOworICAgICAgICAgICAgbXNnICs9ICIgRmFpbGVkLiI7CisgICAgICAgICAgICBlcnJsbihtc2cpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHZvaWQgcmVwb3J0KFN0cmluZyBzLCBTdHJpbmcgdCwgaW50IHJlc3VsdCwgaW50IHJldlJlc3VsdCkgeworICAgICAgICBpZiAocmV2UmVzdWx0ICE9IC1yZXN1bHQpIHsKKyAgICAgICAgICAgIFN0cmluZyBtc2cgPSAiIjsKKyAgICAgICAgICAgIG1zZyArPSBzOyAKKyAgICAgICAgICAgIG1zZyArPSAiIGFuZCAiOworICAgICAgICAgICAgbXNnICs9IHQ7CisgICAgICAgICAgICBtc2cgKz0gIiByb3VuZCB0cmlwIGNvbXBhcmlzb24gZmFpbGVkIjsKKyAgICAgICAgICAgIG1zZyArPSAiIChyZXN1bHQgIiArIHJlc3VsdCArICIsIHJldmVyc2UgUmVzdWx0ICIgKyByZXZSZXN1bHQgKyAiKSI7IAorICAgICAgICAgICAgZXJybG4obXNnKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0UnVsZXMoKSB7CisgICAgICAgIFN0cmluZyB0ZXN0U291cmNlQ2FzZXNbXSA9IHsKKyAgICAgICAgICAgICJcdTAwNjFcdTAwNjJcdTAwN2EiLCAKKyAgICAgICAgICAgICJcdTAwNjFcdTAwNjJcdTAwN2EiLCAKKyAgICAgICAgfTsKKyAgICAKKyAgICAgICAgU3RyaW5nIHRlc3RUYXJnZXRDYXNlc1tdID0geworICAgICAgICAgICAgIlx1MDA2MVx1MDA2Mlx1MDBlNCIsCisgICAgICAgICAgICAiXHUwMDYxXHUwMDYyXHUwMDYxXHUwMzA4IiwKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIGludCBpPTA7CisgICAgICAgIGxvZ2xuKCJEZW1vIFRlc3QgMSA6IENyZWF0ZSBhIG5ldyB0YWJsZSBjb2xsYXRpb24gd2l0aCBydWxlcyBcIiYgeiA8IDB4MDBlNFwiIik7CisgICAgICAgIENvbGxhdG9yIGNvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKG5ldyBMb2NhbGUoImVuIiwgIlVTIikpOworICAgICAgICBTdHJpbmcgYmFzZVJ1bGVzID0gKChSdWxlQmFzZWRDb2xsYXRvciljb2wpLmdldFJ1bGVzKCk7CisgICAgICAgIFN0cmluZyBuZXdSdWxlcyA9ICIgJiB6IDwgIjsKKyAgICAgICAgbmV3UnVsZXMgPSBiYXNlUnVsZXMgKyBuZXdSdWxlcyArIFN0cmluZy52YWx1ZU9mKDB4MDBlNCk7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIG15Q29sbGF0aW9uID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG15Q29sbGF0aW9uID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKG5ld1J1bGVzKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCAiRGVtbyBUZXN0IDEgVGFibGUgQ29sbGF0aW9uIG9iamVjdCBjcmVhdGlvbiBmYWlsZWQuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZvcihpPTA7IGk8MjsgaSsrKXsKKyAgICAgICAgICAgIGRvVGVzdChteUNvbGxhdGlvbiwgdGVzdFNvdXJjZUNhc2VzW2ldLCB0ZXN0VGFyZ2V0Q2FzZXNbaV0sIC0xKTsKKyAgICAgICAgfQorICAgICAgICBsb2dsbigiRGVtbyBUZXN0IDIgOiBDcmVhdGUgYSBuZXcgdGFibGUgY29sbGF0aW9uIHdpdGggcnVsZXMgXCImIHogPCBhIDB4MDMwOFwiIik7CisgICAgICAgIG5ld1J1bGVzID0gIiI7CisgICAgICAgIG5ld1J1bGVzID0gYmFzZVJ1bGVzICsgIiAmIHogPCBhIiArIFN0cmluZy52YWx1ZU9mKDB4MDMwOCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBteUNvbGxhdGlvbiA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihuZXdSdWxlcyk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbiggIkRlbW8gVGVzdCAxIFRhYmxlIENvbGxhdGlvbiBvYmplY3QgY3JlYXRpb24gZmFpbGVkLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGZvcihpPTA7IGk8MjsgaSsrKXsKKyAgICAgICAgICAgIGRvVGVzdChteUNvbGxhdGlvbiwgdGVzdFNvdXJjZUNhc2VzW2ldLCB0ZXN0VGFyZ2V0Q2FzZXNbaV0sIC0xKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICB2b2lkIGRvVGVzdChSdWxlQmFzZWRDb2xsYXRvciBteUNvbGxhdGlvbiwgU3RyaW5nIG15c291cmNlLCBTdHJpbmcgdGFyZ2V0LCBpbnQgcmVzdWx0KSB7CisgICAgICAgIGludCBjb21wYXJlUmVzdWx0ID0gbXlDb2xsYXRpb24uY29tcGFyZShzb3VyY2UsIHRhcmdldCk7CisgICAgICAgIENvbGxhdGlvbktleSBzb3J0S2V5MSwgc29ydEtleTI7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc29ydEtleTEgPSBteUNvbGxhdGlvbi5nZXRDb2xsYXRpb25LZXkoc291cmNlKTsKKyAgICAgICAgICAgIHNvcnRLZXkyID0gbXlDb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHRhcmdldCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiU29ydEtleSBnZW5lcmF0aW9uIEZhaWxlZC5cbiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGludCBrZXlSZXN1bHQgPSBzb3J0S2V5MS5jb21wYXJlVG8oc29ydEtleTIpOworICAgICAgICByZXBvcnRDUmVzdWx0KCBteXNvdXJjZSwgdGFyZ2V0LCBzb3J0S2V5MSwgc29ydEtleTIsIGNvbXBhcmVSZXN1bHQsIGtleVJlc3VsdCwgY29tcGFyZVJlc3VsdCwgcmVzdWx0ICk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHJlcG9ydENSZXN1bHQoU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCwgQ29sbGF0aW9uS2V5IHNvdXJjZUtleSwgQ29sbGF0aW9uS2V5IHRhcmdldEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb21wYXJlUmVzdWx0LCBpbnQga2V5UmVzdWx0LCBpbnQgaW5jUmVzdWx0LCBpbnQgZXhwZWN0ZWRSZXN1bHQgKSB7CisgICAgICAgIGlmIChleHBlY3RlZFJlc3VsdCA8IC0xIHx8IGV4cGVjdGVkUmVzdWx0ID4gMSkgeworICAgICAgICAgICAgZXJybG4oIioqKioqIGludmFsaWQgY2FsbCB0byByZXBvcnRDUmVzdWx0ICoqKioiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBib29sZWFuIG9rMSA9IChjb21wYXJlUmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgYm9vbGVhbiBvazIgPSAoa2V5UmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgYm9vbGVhbiBvazMgPSAoaW5jUmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgaWYgKG9rMSAmJiBvazIgJiYgb2szICYmICFpc1ZlcmJvc2UoKSkgeworICAgICAgICAgICAgcmV0dXJuOyAgICAKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBtc2cxID0gb2sxPyAiT2s6IGNvbXBhcmUoXCIiIDogIkZBSUw6IGNvbXBhcmUoXCIiOworICAgICAgICAgICAgU3RyaW5nIG1zZzIgPSAiXCIsIFwiIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2czID0gIlwiKSByZXR1cm5lZCAiOworICAgICAgICAgICAgU3RyaW5nIG1zZzQgPSAiOyBleHBlY3RlZCAiOworICAgICAgICAgICAgU3RyaW5nIHNFeHBlY3QgPSBuZXcgU3RyaW5nKCIiKTsKKyAgICAgICAgICAgIFN0cmluZyBzUmVzdWx0ID0gbmV3IFN0cmluZygiIik7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChjb21wYXJlUmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIHNFeHBlY3QgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGV4cGVjdGVkUmVzdWx0LCBzRXhwZWN0KTsKKyAgICAgICAgICAgIGlmIChvazEpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1zZzEgPSBvazIgPyAiT2s6IGtleShcIiIgOiAiRkFJTDoga2V5KFwiIjsKKyAgICAgICAgICAgIG1zZzIgPSAiXCIpLmNvbXBhcmVUbyhrZXkoXCIiOworICAgICAgICAgICAgbXNnMyA9ICJcIikpIHJldHVybmVkICI7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChrZXlSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgaWYgKG9rMikgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgICAgIG1zZzEgPSAiICAiOworICAgICAgICAgICAgICAgIG1zZzIgPSAiIHZzLiAiOworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBwcmV0dGlmeShzb3VyY2VLZXkpICsgbXNnMiArIHByZXR0aWZ5KHRhcmdldEtleSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbXNnMSA9IG9rMyA/ICJPazogaW5jQ29tcGFyZShcIiIgOiAiRkFJTDogaW5jQ29tcGFyZShcIiI7CisgICAgICAgICAgICBtc2cyID0gIlwiLCBcIiI7CisgICAgICAgICAgICBtc2czID0gIlwiKSByZXR1cm5lZCAiOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoaW5jUmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIGlmIChvazMpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgU3RyaW5nIGFwcGVuZENvbXBhcmVSZXN1bHQoaW50IHJlc3VsdCwgU3RyaW5nIHRhcmdldCkgeworICAgICAgICBpZiAocmVzdWx0ID09IC0xKSB7ICAvL0xFU1MKKyAgICAgICAgICAgIHRhcmdldCArPSAiTEVTUyI7CisgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IDApIHsgIC8vRVFVQUwKKyAgICAgICAgICAgIHRhcmdldCArPSAiRVFVQUwiOworICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSAxKSB7ICAvL0dSRUFURVIKKyAgICAgICAgICAgIHRhcmdldCArPSAiR1JFQVRFUiI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgaHVoID0gIj8iOworICAgICAgICAgICAgdGFyZ2V0ICs9IGh1aCArIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KKyAgICAKKyAgICBTdHJpbmcgcHJldHRpZnkoQ29sbGF0aW9uS2V5IHNvdXJjZUtleSkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgYnl0ZVtdIGJ5dGVzPSBzb3VyY2VLZXkudG9CeXRlQXJyYXkoKTsKKyAgICAgICAgU3RyaW5nIHRhcmdldCA9ICJbIjsKKyAgICAKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGJ5dGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gSW50ZWdlci50b0hleFN0cmluZyhieXRlc1tpXSk7CisgICAgICAgICAgICB0YXJnZXQgKz0gIiAiOworICAgICAgICB9CisgICAgICAgIHRhcmdldCArPSAiXSI7CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25SZWdyZXNzaW9uVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvblJlZ3Jlc3Npb25UZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmU0OTgzMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25SZWdyZXNzaW9uVGVzdC5qYXZhCkBAIC0wLDAgKzEsODk2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICRTb3VyY2U6IAorICogJERhdGU6IAorICogJFJldmlzaW9uOiAKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjIuMSA6IGNvbGxhdGUvQ29sbGF0aW9uUmVncmVzc2lvblRlc3QKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L3JlZ2NvbGwuY3BwCisgKiovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworcHVibGljIGNsYXNzIENvbGxhdGlvblJlZ3Jlc3Npb25UZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIG5ldyBDb2xsYXRpb25SZWdyZXNzaW9uVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgLy8gQGJ1ZyA0MDQ4NDQ2CisgICAgLy8KKyAgICAvLyBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucmVzZXQoKSBkb2Vzbid0IHdvcmsKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDQ4NDQ2KCkgeworICAgICAgICBmaW5hbCBTdHJpbmcgdGVzdDEgPSAiWEZJTEUgV2hhdCBzdWJzZXQgb2YgYWxsIHBvc3NpYmxlIHRlc3QgY2FzZXMgaGFzIHRoZSBoaWdoZXN0IHByb2JhYmlsaXR5IG9mIGRldGVjdGluZyB0aGUgbW9zdCBlcnJvcnM/IjsKKyAgICAgICAgLy9maW5hbCBTdHJpbmcgdGVzdDIgPSAiWGZfaWxlIFdoYXQgc3Vic2V0IG9mIGFsbCBwb3NzaWJsZSB0ZXN0IGNhc2VzIGhhcyB0aGUgbG93ZXN0IHByb2JhYmlsaXR5IG9mIGRldGVjdGluZyB0aGUgbGVhc3QgZXJyb3JzPyI7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGVuX3VzID0gKFJ1bGVCYXNlZENvbGxhdG9yKSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaTEgPSBlbl91cy5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IodGVzdDEpOworICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaTIgPSBlbl91cy5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IodGVzdDEpOworICAgICAgICAKKyAgICAgICAgaWYgKGkxID09IG51bGwgfHwgaTIgPT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIkNvdWxkIG5vdCBjcmVhdGUgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yJ3MiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICB3aGlsZSAoaTEubmV4dCgpICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgIC8vCisgICAgICAgIH0KKyAgICAKKyAgICAgICAgaTEucmVzZXQoKTsKKyAgICAgICAgYXNzZXJ0RXF1YWwoaTEsIGkyKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBhc3NlcnRFcXVhbChDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaTEsIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpMikgeworICAgICAgICBpbnQgYzEsIGMyLCBjb3VudCA9IDA7CisgICAgCisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIGMxID0gaTEubmV4dCgpOworICAgICAgICAgICAgYzIgPSBpMi5uZXh0KCk7CisgICAgCisgICAgICAgICAgICBpZiAoYzEgIT0gYzIpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbXNnID0gIiI7CisgICAgICAgICAgICAgICAgU3RyaW5nIG1zZzEgPSAiICAgICI7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbXNnICs9IG1zZzEgKyBjb3VudDsKKyAgICAgICAgICAgICAgICBtc2cgKz0gIjogc3RyZW5ndGgoMHgiICsgSW50ZWdlci50b0hleFN0cmluZyhjMSk7CisgICAgICAgICAgICAgICAgbXNnICs9ICIpICE9IHN0cmVuZ3RoKDB4IiArIEludGVnZXIudG9IZXhTdHJpbmcoYzIpOworICAgICAgICAgICAgICAgIG1zZyArPSAiKSI7CisgICAgICAgICAgICAgICAgZXJybG4obXNnKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ICs9IDE7CisgICAgICAgIH0gd2hpbGUgKGMxICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpOworICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQwNTE4NjYKKyAgICAvLworICAgIC8vIENvbGxhdG9yIC0+IHJ1bGVzIC0+IENvbGxhdG9yIHJvdW5kLXRyaXAgYnJva2VuIGZvciBleHBhbmRpbmcgY2hhcmFjdGVycworICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQwNTE4NjYoKSB7CisgICAgICAgU3RyaW5nIHJ1bGVzID0gIjwgbyAmIG9lICxvXHUzMDgwJiBvZSAsXHUxNTMwICxPJiBPRSAsT1x1MzA4MCYgT0UgLFx1MTUyMDwgcCAsUCI7CisKKyAgICAgICAgLy8gQnVpbGQgYSBjb2xsYXRvciBjb250YWluaW5nIGV4cGFuZGluZyBjaGFyYWN0ZXJzCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGMxID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjMSA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlcyk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbCB0byBjcmVhdGUgUnVsZUJhc2VkQ29sbGF0b3Igd2l0aCBydWxlczoiICsgcnVsZXMpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIC8vIEJ1aWxkIGFub3RoZXIgdXNpbmcgdGhlIHJ1bGVzIGZyb20gIHRoZSBmaXJzdAorICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjMiA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjMiA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihjMS5nZXRSdWxlcygpKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsIHRvIGNyZWF0ZSBSdWxlQmFzZWRDb2xsYXRvciB3aXRoIHJ1bGVzOiIgKyBydWxlcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gTWFrZSBzdXJlIHRoZXkncmUgdGhlIHNhbWUKKyAgICAgICAgaWYgKCEoYzEuZ2V0UnVsZXMoKS5lcXVhbHMoYzIuZ2V0UnVsZXMoKSkpKQorICAgICAgICB7CisgICAgICAgICAgICBlcnJsbigiUnVsZXMgYXJlIG5vdCBlcXVhbCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIEBidWcgNDA1MzYzNgorICAgIC8vCisgICAgLy8gQ29sbGF0b3IgdGhpbmtzICJibGFjay1iaXJkIiA9PSAiYmxhY2siCisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA1MzYzNigpIHsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgZW5fdXMgPSAoUnVsZUJhc2VkQ29sbGF0b3IpIENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIGlmIChlbl91cy5lcXVhbHMoImJsYWNrX2JpcmQiLCAiYmxhY2siKSkgeworICAgICAgICAgICAgZXJybG4oImJsYWNrLWJpcmQgPT0gYmxhY2siKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQwNTQyMzgKKyAgICAvLworICAgIC8vIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciB3aWxsIG5vdCB3b3JrIGNvcnJlY3RseSBpZiB0aGUgYXNzb2NpYXRlZAorICAgIC8vIENvbGxhdG9yIG9iamVjdCdzIG1vZGUgaXMgY2hhbmdlZAorICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQwNTQyMzgoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIGZpbmFsIGNoYXJbXSBjaGFyczMgPSB7MHg2MSwgMHgwMEZDLCAweDYyLCAweDY1LCAweDYzLCAweDZiLCAweDIwLCAweDQ3LCAweDcyLCAweDAwRjYsIDB4MDBERiwgMHg2NSwgMHgyMCwgMHg0YywgMHgwMEZDLCAweDYyLCAweDYzLCAweDZiLCAwfTsKKyAgICAgICAgZmluYWwgU3RyaW5nIHRlc3QzID0gbmV3IFN0cmluZyhjaGFyczMpOworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjID0gKFJ1bGVCYXNlZENvbGxhdG9yKSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgIAorICAgICAgICAvLyBOT1RFOiBUaGUgSmF2YSBjb2RlIHVzZXMgZW5fdXMgdG8gY3JlYXRlIHRoZSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3JzCisgICAgICAgIC8vIGJ1dCBJJ20gcHJldHR5IHN1cmUgdGhhdCdzIHdyb25nLCBzbyBJJ3ZlIGNoYW5nZWQgdGhpcyB0byB1c2UgYy4KKyAgICAgICAgYy5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLk5PX0RFQ09NUE9TSVRJT04pOworICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaTEgPSBjLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcih0ZXN0Myk7CisgICAgICAgIGxvZ2xuKCJPZmZzZXQ6IiArIGkxLmdldE9mZnNldCgpKTsKKyAgICB9CisgICAgCisgICAgLy8gQGJ1ZyA0MDU0NzM0CisgICAgLy8KKyAgICAvLyBDb2xsYXRvcjo6SURFTlRJQ0FMIGRvY3VtZW50ZWQgYnV0IG5vdCBpbXBsZW1lbnRlZAorICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQwNTQ3MzQoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIAorICAgICAgICAgICAgLy9IZXJlJ3MgdGhlIG9yaWdpbmFsIEphdmE6CisgICAgCisgICAgICAgICAgICBTdHJpbmdbXSBkZWNvbXAgPSB7CisgICAgICAgICAgICAgICAgIlx1MDAwMSIsICAgIjwiLCAgICAiXHUwMDAyIiwKKyAgICAgICAgICAgICAgICAiXHUwMDAxIiwgICAiPSIsICAgICJcdTAwMDEiLAorICAgICAgICAgICAgICAgICJBXHUwMDAxIiwgICI+IiwgICAgIn5cdTAwMDIiLCAgICAgIC8vIEVuc3VyZSBBIGFuZCB+IGFyZSBub3QgY29tcGFyZWQgYml0d2lzZQorICAgICAgICAgICAgICAgICJcdTAwQzAiLCAgICI9IiwgICAgIkFcdTAzMDAiLCAgICAgIC8vIERlY29tcCBzaG91bGQgbWFrZSB0aGVzZSBlcXVhbAorICAgICAgICAgICAgfTsKKyAgICAKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgYyA9IChSdWxlQmFzZWRDb2xsYXRvcikgQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgYy5zZXRTdHJlbmd0aChDb2xsYXRvci5JREVOVElDQUwpOworICAgICAgICBjLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworICAgICAgICBjb21wYXJlQXJyYXkoYywgZGVjb21wKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBjb21wYXJlQXJyYXkoQ29sbGF0b3IgYywgU3RyaW5nW10gdGVzdHMpIHsKKyAgICAgICAgCisgICAgICAgIGludCBleHBlY3RlZFJlc3VsdCA9IDA7CisgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyBpICs9IDMpIHsKKyAgICAgICAgICAgIFN0cmluZyBzb3VyY2UgPSB0ZXN0c1tpXTsKKyAgICAgICAgICAgIFN0cmluZyBjb21wYXJpc29uID0gdGVzdHNbaSArIDFdOworICAgICAgICAgICAgU3RyaW5nIHRhcmdldCA9IHRlc3RzW2kgKyAyXTsKKyAgICAKKyAgICAgICAgICAgIGlmIChjb21wYXJpc29uLmVxdWFscygiPCIpKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0ZWRSZXN1bHQgPSAtMTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoY29tcGFyaXNvbi5lcXVhbHMoIj4iKSkgeworICAgICAgICAgICAgICAgIGV4cGVjdGVkUmVzdWx0ID0gMTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoY29tcGFyaXNvbi5lcXVhbHMoIj0iKSkgeworICAgICAgICAgICAgICAgIGV4cGVjdGVkUmVzdWx0ID0gMDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkJvZ3VzIGNvbXBhcmlzb24gc3RyaW5nIFwiIiArIGNvbXBhcmlzb24gKyAiXCIiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQgPSAwOworICAgICAgICAgICAgCisgICAgICAgICAgICBsb2dsbigiaSA9ICIgKyBpKTsKKyAgICAgICAgICAgIGxvZ2xuKHNvdXJjZSk7CisgICAgICAgICAgICBsb2dsbih0YXJnZXQpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBjb21wYXJlUmVzdWx0ID0gYy5jb21wYXJlKHNvdXJjZSwgdGFyZ2V0KTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIENvbGxhdGlvbktleSBzb3VyY2VLZXkgPSBudWxsLCB0YXJnZXRLZXkgPSBudWxsOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBzb3VyY2VLZXkgPSBjLmdldENvbGxhdGlvbktleShzb3VyY2UpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ291bGRuJ3QgZ2V0IGNvbGxhdGlvbktleSBmb3Igc291cmNlIik7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHRhcmdldEtleSA9IGMuZ2V0Q29sbGF0aW9uS2V5KHRhcmdldCk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJDb3VsZG4ndCBnZXQgY29sbGF0aW9uS2V5IGZvciB0YXJnZXQiKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIGludCBrZXlSZXN1bHQgPSBzb3VyY2VLZXkuY29tcGFyZVRvKHRhcmdldEtleSk7CisgICAgICAgICAgICByZXBvcnRDUmVzdWx0KCBzb3VyY2UsIHRhcmdldCwgc291cmNlS2V5LCB0YXJnZXRLZXksIGNvbXBhcmVSZXN1bHQsIGtleVJlc3VsdCwgY29tcGFyZVJlc3VsdCwgZXhwZWN0ZWRSZXN1bHQgKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICB2b2lkIHJlcG9ydENSZXN1bHQoIFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQsIENvbGxhdGlvbktleSBzb3VyY2VLZXksIENvbGxhdGlvbktleSB0YXJnZXRLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb21wYXJlUmVzdWx0LCBpbnQga2V5UmVzdWx0LCBpbnQgaW5jUmVzdWx0LCBpbnQgZXhwZWN0ZWRSZXN1bHQgKXsKKyAgICAgICAgaWYgKGV4cGVjdGVkUmVzdWx0IDwgLTEgfHwgZXhwZWN0ZWRSZXN1bHQgPiAxKQorICAgICAgICB7CisgICAgICAgICAgICBlcnJsbigiKioqKiogaW52YWxpZCBjYWxsIHRvIHJlcG9ydENSZXN1bHQgKioqKiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBvazEgPSAoY29tcGFyZVJlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCk7CisgICAgICAgIGJvb2xlYW4gb2syID0gKGtleVJlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCk7CisgICAgICAgIGJvb2xlYW4gb2szID0gKGluY1Jlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCk7CisKKyAgICAgICAgaWYgKG9rMSAmJiBvazIgJiYgb2szICYmICFpc1ZlcmJvc2UoKSl7CisgICAgICAgICAgICByZXR1cm47ICAgIAorICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIFN0cmluZyBtc2cxID0gb2sxPyAiT2s6IGNvbXBhcmUoXCIiIDogIkZBSUw6IGNvbXBhcmUoXCIiOworICAgICAgICAgICAgU3RyaW5nIG1zZzIgPSAiXCIsIFwiIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2czID0gIlwiKSByZXR1cm5lZCAiOworICAgICAgICAgICAgU3RyaW5nIG1zZzQgPSAiOyBleHBlY3RlZCAiOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgc0V4cGVjdCA9IG5ldyBTdHJpbmcoIiIpOworICAgICAgICAgICAgU3RyaW5nIHNSZXN1bHQgPSBuZXcgU3RyaW5nKCIiKTsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGNvbXBhcmVSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgc0V4cGVjdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoZXhwZWN0ZWRSZXN1bHQsIHNFeHBlY3QpOworICAgICAgICAgICAgaWYgKG9rMSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBtc2cxID0gb2syID8gIk9rOiBrZXkoXCIiIDogIkZBSUw6IGtleShcIiI7CisgICAgICAgICAgICBtc2cyID0gIlwiKS5jb21wYXJlVG8oa2V5KFwiIjsKKyAgICAgICAgICAgIG1zZzMgPSAiXCIpKSByZXR1cm5lZCAiOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoa2V5UmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIGlmIChvazIpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgICAgICBtc2cxID0gIiAgIjsKKyAgICAgICAgICAgICAgICBtc2cyID0gIiB2cy4gIjsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgcHJldHRpZnkoc291cmNlS2V5KSArIG1zZzIgKyBwcmV0dGlmeSh0YXJnZXRLZXkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbXNnMSA9IG9rMyA/ICJPazogaW5jQ29tcGFyZShcIiIgOiAiRkFJTDogaW5jQ29tcGFyZShcIiI7CisgICAgICAgICAgICBtc2cyID0gIlwiLCBcIiI7CisgICAgICAgICAgICBtc2czID0gIlwiKSByZXR1cm5lZCAiOworCisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChpbmNSZXN1bHQsIHNSZXN1bHQpOworCisgICAgICAgICAgICBpZiAob2szKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICB9ICAgICAgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorICAgIAorICAgIFN0cmluZyBhcHBlbmRDb21wYXJlUmVzdWx0KGludCByZXN1bHQsIFN0cmluZyB0YXJnZXQpIHsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSAtMSkgeyAgLy9MRVNTCisgICAgICAgICAgICB0YXJnZXQgKz0gIkxFU1MiOworICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSAwKSB7ICAvL0VRVUFMCisgICAgICAgICAgICB0YXJnZXQgKz0gIkVRVUFMIjsKKyAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gMSkgeyAgLy9HUkVBVEVSCisgICAgICAgICAgICB0YXJnZXQgKz0gIkdSRUFURVIiOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIGh1aCA9ICI/IjsKKyAgICAgICAgICAgIHRhcmdldCArPSBodWggKyByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9CisgICAgCisgICAgU3RyaW5nIHByZXR0aWZ5KENvbGxhdGlvbktleSBzb3VyY2VLZXkpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGJ5dGVbXSBieXRlcz0gc291cmNlS2V5LnRvQnl0ZUFycmF5KCk7CisgICAgICAgIFN0cmluZyB0YXJnZXQgPSAiWyI7CisgICAgCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdGFyZ2V0ICs9IEludGVnZXIudG9IZXhTdHJpbmcoYnl0ZXNbaV0pOworICAgICAgICAgICAgdGFyZ2V0ICs9ICIgIjsKKyAgICAgICAgfQorICAgICAgICB0YXJnZXQgKz0gIl0iOworICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQwNTQ3MzYKKyAgICAvLworICAgIC8vIEZ1bGwgRGVjb21wb3NpdGlvbiBtb2RlIG5vdCBpbXBsZW1lbnRlZAorICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQwNTQ3MzYoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGMgPSAoUnVsZUJhc2VkQ29sbGF0b3IpIENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgCisgICAgICAgIGMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgYy5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLk5PX0RFQ09NUE9TSVRJT04pOworICAgIAorICAgICAgICBmaW5hbCBTdHJpbmdbXSB0ZXN0cyA9IHsgIlx1RkI0RiIsICJcdTAwM2QiLCAiXHUwNUQwXHUwNURDIiB9OyAgLy8gQWxlZi1MYW1lZCB2cy4gQWxlZiwgTGFtZWQKKyAgICAgICAgY29tcGFyZUFycmF5KGMsIHRlc3RzKTsKKyAgICB9CisgICAgCisgICAgLy8gQGJ1ZyA0MDU4NjEzCisgICAgLy8KKyAgICAvLyBDb2xsYXRvcjo6Y3JlYXRlSW5zdGFuY2UoKSBjYXVzZXMgYW4gQXJyYXlJbmRleE91dG9mQm91bmRzRXhjZXB0aW9uIGZvciBLb3JlYW4gIAorICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQwNTg2MTMoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIC8vIENyZWF0aW5nIGEgZGVmYXVsdCBjb2xsYXRvciBkb2Vzbid0IHdvcmsgd2hlbiBLb3JlYW4gaXMgdGhlIGRlZmF1bHQKKyAgICAgICAgLy8gbG9jYWxlCisgICAgICAgIAorICAgICAgICBMb2NhbGUgb2xkRGVmYXVsdCA9IExvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KG5ldyBMb2NhbGUoImtvIiwgIiIpKTsKKyAgICAKKyAgICAgICAgQ29sbGF0b3IgYyA9IG51bGw7CisgICAgICAgIAorICAgICAgICBjID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiZW4iLCAiVVMiKSk7CisgICAgCisgICAgICAgIGlmIChjID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJDb3VsZCBub3QgY3JlYXRlIGEgS29yZWFuIGNvbGxhdG9yIik7CisgICAgICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChvbGREZWZhdWx0KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gU2luY2UgdGhlIGZpeCB0byB0aGlzIGJ1ZyB3YXMgdG8gdHVybiBvZmYgZGVjb21wb3NpdGlvbiBmb3IgS29yZWFuIGNvbGxhdG9ycywKKyAgICAgICAgLy8gZW5zdXJlIHRoYXQncyB3aGF0IHdlIGdvdAorICAgICAgICBpZiAoYy5nZXREZWNvbXBvc2l0aW9uKCkgIT0gQ29sbGF0b3IuTk9fREVDT01QT1NJVElPTikgeworICAgICAgICAgIGVycmxuKCJEZWNvbXBvc2l0aW9uIGlzIG5vdCBzZXQgdG8gTk9fREVDT01QT1NJVElPTiBmb3IgS29yZWFuIGNvbGxhdG9yIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgTG9jYWxlLnNldERlZmF1bHQob2xkRGVmYXVsdCk7CisgICAgfQorICAgIAorICAgIC8vIEBidWcgNDA1OTgyMAorICAgIC8vCisgICAgLy8gUnVsZUJhc2VkQ29sbGF0b3IuZ2V0UnVsZXMgZG9lcyBub3QgcmV0dXJuIHRoZSBleGFjdCBwYXR0ZXJuIGFzIGlucHV0CisgICAgLy8gZm9yIGV4cGFuZGluZyBjaGFyYWN0ZXIgc2VxdWVuY2VzCisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA1OTgyMCgvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgYyA9IG51bGw7CisgICAgICAgIFN0cmluZyBydWxlcyA9ICI8IGEgPCBiICwgYy9hIDwgZCA8IHoiOworICAgICAgICB0cnkgeworICAgICAgICAgICAgYyA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlcyk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbHVyZSBidWlsZGluZyBhIGNvbGxhdG9yLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIGlmICggYy5nZXRSdWxlcygpLmluZGV4T2YoImMvYSIpID09IC0xKQorICAgICAgICB7CisgICAgICAgICAgICBlcnJsbigicmV0dXJuZWQgcnVsZXMgZG8gbm90IGNvbnRhaW4gJ2MvYSciKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQwNjAxNTQKKyAgICAvLworICAgIC8vIE1lcmdlQ29sbGF0aW9uOjpmaXhFbnRyeSBicm9rZW4gZm9yICImIEggPCBcdTAxMzEsIFx1MDEzMCwgaSwgSSIKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDYwMTU0KC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICBTdHJpbmcgcnVsZXMgPSI8IGcsIEcgPCBoLCBIIDwgaSwgSSA8IGosIEogJiBIIDwgXHUwMTMxLCBcdTAxMzAsIGksIEkiOworICAgIAorICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGMgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZXMpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oZSk7CisgICAgICAgICAgICBlcnJsbigiZmFpbHVyZSBidWlsZGluZyBjb2xsYXRvci4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICBjLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuTk9fREVDT01QT1NJVElPTik7CisgICAgCisgICAgICAgIFN0cmluZ1tdIHRlcnRpYXJ5ID0geworICAgICAgICAgICAgIkEiLCAgICAgICAgIjwiLCAgICAiQiIsCisgICAgICAgICAgICAiSCIsICAgICAgICAiPCIsICAgICJcdTAxMzEiLAorICAgICAgICAgICAgIkgiLCAgICAgICAgIjwiLCAgICAiSSIsCisgICAgICAgICAgICAiXHUwMTMxIiwgICAiPCIsICAgICJcdTAxMzAiLAorICAgICAgICAgICAgIlx1MDEzMCIsICAgIjwiLCAgICAiaSIsCisgICAgICAgICAgICAiXHUwMTMwIiwgICAiPiIsICAgICJIIiwKKyAgICAgICAgfTsKKyAgICAKKyAgICAgICAgYy5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIGNvbXBhcmVBcnJheShjLCB0ZXJ0aWFyeSk7CisgICAgCisgICAgICAgIFN0cmluZ1tdIHNlY29uZGFyeSA9IHsKKyAgICAgICAgICAgICJIIiwgICAgICAgICI8IiwgICAgIkkiLAorICAgICAgICAgICAgIlx1MDEzMSIsICAgIj0iLCAgICAiXHUwMTMwIiwKKyAgICAgICAgfTsKKyAgICAKKyAgICAgICAgYy5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKyAgICAgICAgY29tcGFyZUFycmF5KGMsIHNlY29uZGFyeSk7CisgICAgfTsKKyAgICAKKyAgICAvLyBAYnVnIDQwNjI0MTgKKyAgICAvLworICAgIC8vIFNlY29uZGFyeS9UZXJ0aWFyeSBjb21wYXJpc29uIGluY29ycmVjdCBpbiBGcmVuY2ggU2Vjb25kYXJ5CisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA2MjQxOCgvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgYyA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjID0gKFJ1bGVCYXNlZENvbGxhdG9yKSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRlJBTkNFKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQgdG8gY3JlYXRlIGNvbGxhdG9yIGZvciBMb2NhbGU6OkZSQU5DRSgpIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgYy5zZXRTdHJlbmd0aChDb2xsYXRvci5TRUNPTkRBUlkpOworICAgIAorICAgICAgICBTdHJpbmdbXSB0ZXN0cyA9IHsKKyAgICAgICAgICAgICAgICAicFx1MDBlYWNoZSIsICAgICI8IiwgICAgInBcdTAwZTljaFx1MDBlOSIsICAgIC8vIENvbXBhcmluZyBhY2NlbnRzIGZyb20gZW5kLCBwXHUwMGU5Y2hcdTAwZTkgaXMgZ3JlYXRlcgorICAgICAgICB9OworICAgIAorICAgICAgICBjb21wYXJlQXJyYXkoYywgdGVzdHMpOworICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQwNjU1NDAKKyAgICAvLworICAgIC8vIENvbGxhdG9yOjpjb21wYXJlKCkgbWV0aG9kIGJyb2tlbiBpZiBlaXRoZXIgc3RyaW5nIGNvbnRhaW5zIHNwYWNlcworICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQwNjU1NDAoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGVuX3VzID0gKFJ1bGVCYXNlZENvbGxhdG9yKSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBpZiAoZW5fdXMuY29tcGFyZSgiYWJjZCBlIiwgImFiY2QgZiIpID09IDApIHsKKyAgICAgICAgICAgIGVycmxuKCInYWJjZCBlJyA9PSAnYWJjZCBmJyIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIEBidWcgNDA2NjE4OQorICAgIC8vCisgICAgLy8gVW5pY29kZSBjaGFyYWN0ZXJzIG5lZWQgdG8gYmUgcmVjdXJzaXZlbHkgZGVjb21wb3NlZCB0byBnZXQgdGhlCisgICAgLy8gY29ycmVjdCByZXN1bHQuIEZvciBleGFtcGxlLAorICAgIC8vIHUxRUIxIC0+IFx1MDEwMyArIFx1MDMwMCAtPiBhICsgXHUwMzA2ICsgXHUwMzAwLgorICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQwNjYxODkoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIGZpbmFsICBTdHJpbmcgdGVzdDEgPSAiXHUxRUIxIjsKKyAgICAgICAgZmluYWwgIFN0cmluZyB0ZXN0MiA9ICJcdTAwNjFcdTAzMDZcdTAzMDAiOworICAgIAorICAgICAgICAvLyBOT1RFOiBUaGUgamF2YSBjb2RlIHVzZWQgZW5fdXMgdG8gY3JlYXRlIHRoZQorICAgICAgICAvLyBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Incy4gSSdtIHByZXR0eSBzdXJlIHRoYXQKKyAgICAgICAgLy8gd2FzIHdyb25nLCBzbyBJJ3ZlIGNoYW5nZSB0aGUgY29kZSB0byB1c2UgYzEgYW5kIGMyCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGMxID0gKFJ1bGVCYXNlZENvbGxhdG9yKSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBjMS5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGkxID0gYzEuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHRlc3QxKTsKKyAgICAKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgYzIgPSAoUnVsZUJhc2VkQ29sbGF0b3IpIENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIGMyLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuTk9fREVDT01QT1NJVElPTik7CisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpMiA9IGMyLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcih0ZXN0Mik7CisgICAgCisgICAgICAgIGFzc2VydEVxdWFsKGkxLCBpMik7CisgICAgfQorICAgIAorICAgIC8vIEBidWcgNDA2NjY5NgorICAgIC8vCisgICAgLy8gRnJlbmNoIHNlY29uZGFyeSBjb2xsYXRpb24gY2hlY2tpbmcgYXQgdGhlIGVuZCBvZiBjb21wYXJlIGl0ZXJhdGlvbiBmYWlscworICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQwNjY2OTYoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGMgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgYyA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRlJBTkNFKTsKKyAgICAgICAgfSBjYXRjaChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWx1cmUgY3JlYXRpbmcgY29sbGF0b3IgZm9yIExvY2FsZTo6Z2V0RnJhbmNlKCkiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBjLnNldFN0cmVuZ3RoKENvbGxhdG9yLlNFQ09OREFSWSk7CisgICAgCisgICAgICAgIFN0cmluZ1tdIHRlc3RzID0geworICAgICAgICAgICAgIlx1MDBlMCIsICAgIj4iLCAgICAgIlx1MDFmYSIsICAgICAgIC8vIGEtZ3JhdmUgPCAgQS1yaW5nLWFjdXRlCisgICAgICAgIH07ICAgIAorICAgICAgICBjb21wYXJlQXJyYXkoYywgdGVzdHMpOworICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQwNzY2NzYKKyAgICAvLworICAgIC8vIEJhZCBjYW5vbmljYWxpemF0aW9uIG9mIHNhbWUtY2xhc3MgY29tYmluaW5nIGNoYXJhY3RlcnMKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDc2Njc2KC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICAvLyBUaGVzZSBjb21iaW5pbmcgY2hhcmFjdGVycyBhcmUgYWxsIGluIHRoZSBzYW1lIGNsYXNzLCBzbyB0aGV5IHNob3VsZCBub3QKKyAgICAgICAgLy8gYmUgcmVvcmRlcmVkLCBhbmQgdGhleSBzaG91bGQgY29tcGFyZSBhcyB1bmVxdWFsLgorICAgICAgICBmaW5hbCBTdHJpbmcgczEgPSAiXHUwMDQxXHUwMzAxXHUwMzAyXHUwMzAwIjsKKyAgICAgICAgZmluYWwgU3RyaW5nIHMyID0gIlx1MDA0MVx1MDMwMlx1MDMwMFx1MDMwMSI7CisgICAgCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGMgPSAoUnVsZUJhc2VkQ29sbGF0b3IpIENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIGMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgIAorICAgICAgICBpZiAoYy5jb21wYXJlKHMxLHMyKSA9PSAwKSB7CisgICAgICAgICAgICBlcnJsbigiU2FtZS1jbGFzcyBjb21iaW5pbmcgY2hhcnMgd2VyZSByZW9yZGVyZWQiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIEBidWcgNDA3ODU4OAorICAgIC8vCisgICAgLy8gUnVsZUJhc2VkQ29sbGF0b3IgYnJlYWtzIG9uICI8IGEgPCBiYiIgcnVsZQorICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQwNzg1ODgoLyogY2hhciAqcGFyICovKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIHJiYyA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByYmMgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IoIjwgYSA8IGJiIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkIHRvIGNyZWF0ZSBSdWxlQmFzZWRDb2xsYXRvci4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpbnQgcmVzdWx0ID0gcmJjLmNvbXBhcmUoImEiLCJiYiIpOworICAgIAorICAgICAgICBpZiAocmVzdWx0ID49IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJDb21wYXJlKGEsYmIpIHJldHVybmVkICIgKyByZXN1bHQgKyAiOyBleHBlY3RlZCAtMSIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIEBidWcgNDA3OTIzMQorICAgIC8vCisgICAgLy8gUnVsZUJhc2VkQ29sbGF0b3I6Om9wZXJhdG9yPT0oTlVMTCkgdGhyb3dzIE51bGxQb2ludGVyRXhjZXB0aW9uCisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA3OTIzMSgvKiBjaGFyKiBwYXIgKi8pIHsgICAgCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGVuX3VzID0gKFJ1bGVCYXNlZENvbGxhdG9yKSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgaWYgKGVuX3VzLmVxdWFscyhudWxsKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJlbl91cy5lcXVhbHMobnVsbCkgcmV0dXJuZWQgdHJ1ZSIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oImVuX3VzLmVxdWFscyhudWxsKSB0aHJldyAiICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQwODE4NjYKKyAgICAvLworICAgIC8vIENvbWJpbmluZyBjaGFyYWN0ZXJzIGluIGRpZmZlcmVudCBjbGFzc2VzIG5vdCByZW9yZGVyZWQgcHJvcGVybHkuCisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA4MTg2NigvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgLy8gVGhlc2UgY29tYmluaW5nIGNoYXJhY3RlcnMgYXJlIGFsbCBpbiBkaWZmZXJlbnQgY2xhc3NlcywKKyAgICAgICAgLy8gc28gdGhleSBzaG91bGQgYmUgcmVvcmRlcmVkIGFuZCB0aGUgc3RyaW5ncyBzaG91bGQgY29tcGFyZSBhcyBlcXVhbC4KKyAgICAgICAgU3RyaW5nIHMxID0gIlx1MDA0MVx1MDMwMFx1MDMxNlx1MDMyN1x1MDMxNSI7CisgICAgICAgIFN0cmluZyBzMiA9ICJcdTAwNDFcdTAzMjdcdTAzMTZcdTAzMTVcdTAzMDAiOworICAgIAorICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjID0gKFJ1bGVCYXNlZENvbGxhdG9yKSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBjLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgCisgICAgICAgIC8vIE5vdyB0aGF0IHRoZSBkZWZhdWx0IGNvbGxhdG9ycyBhcmUgc2V0IHRvIE5PX0RFQ09NUE9TSVRJT04KKyAgICAgICAgLy8gKGFzIGEgcmVzdWx0IG9mIGZpeGluZyBidWcgNDExNDA3NyksIHdlIG11c3Qgc2V0IGl0IGV4cGxpY2l0bHkKKyAgICAgICAgLy8gd2hlbiB3ZSdyZSB0ZXN0aW5nIHJlb3JkZXJpbmcgYmVoYXZpb3IuICAtLSBsd2VybmVyLCA1LzUvOTgKKyAgICAgICAgYy5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgaWYgKGMuY29tcGFyZShzMSxzMikgIT0gMCkgeworICAgICAgICAgICAgZXJybG4oIkNvbWJpbmluZyBjaGFycyB3ZXJlIG5vdCByZW9yZGVyZWQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQwODcyNDEKKyAgICAvLworICAgIC8vIHN0cmluZyBjb21wYXJpc29uIGVycm9ycyBpbiBTY2FuZGluYXZpYW4gY29sbGF0b3JzCisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA4NzI0MSgvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgTG9jYWxlIGRhX0RLID0gbmV3IExvY2FsZSgiZGEiLCAiREsiKTsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgYyA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjID0gKFJ1bGVCYXNlZENvbGxhdG9yKSBDb2xsYXRvci5nZXRJbnN0YW5jZShkYV9ESyk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkIHRvIGNyZWF0ZSBjb2xsYXRvciBmb3IgZGFfREsgbG9jYWxlIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgYy5zZXRTdHJlbmd0aChDb2xsYXRvci5TRUNPTkRBUlkpOworICAgICAgICBTdHJpbmcgdGVzdHNbXSA9IHsKKyAgICAgICAgICAgICJcdTAwN2EiLCAgICAgICAiXHUwMDNjIiwgIlx1MDBFNiIsICAgICAgICAgICAgLy8geiAgICAgICAgPCBhZQorICAgICAgICAgICAgIlx1MDA2MVx1MDMwOCIsICJcdTAwM2MiLCAiXHUwMDYxXHUwMzBBIiwgICAgICAvLyBhLXVubGF1dCA8IGEtcmluZworICAgICAgICAgICAgIlx1MDA1OSIsICAgICAgICJcdTAwM2MiLCAiXHUwMDc1XHUwMzA4IiwgICAgICAvLyBZICAgICAgICA8IHUtdW1sYXV0CisgICAgICAgIH07CisgICAgICAgIGNvbXBhcmVBcnJheShjLCB0ZXN0cyk7CisgICAgfQorICAgIAorICAgIC8vIEBidWcgNDA4NzI0MworICAgIC8vCisgICAgLy8gQ29sbGF0aW9uS2V5IHRha2VzIGlnbm9yYWJsZSBzdHJpbmdzIGludG8gYWNjb3VudCB3aGVuIGl0IHNob3VsZG4ndAorICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQwODcyNDMoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGMgPSAoUnVsZUJhc2VkQ29sbGF0b3IpIENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIGMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICBTdHJpbmcgdGVzdHNbXSA9IHsKKyAgICAgICAgICAgICJcdTAwMzFcdTAwMzJcdTAwMzMiLCAiXHUwMDNkIiwgIlx1MDAzMVx1MDAzMlx1MDAzM1x1MDAwMSIgICAgLy8gMSAyIDMgID0gIDEgMiAzIGN0cmwtQQorICAgICAgICB9OworICAgICAgICBjb21wYXJlQXJyYXkoYywgdGVzdHMpOworICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQwOTIyNjAKKyAgICAvLworICAgIC8vIE11L21pY3JvIGNvbmZsaWN0CisgICAgLy8gTWljcm8gc3ltYm9sIGFuZCBncmVlayBsb3dlcmNhc2UgbGV0dGVyIE11IHNob3VsZCBzb3J0IGlkZW50aWNhbGx5CisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA5MjI2MCgvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgTG9jYWxlIGVsID0gbmV3IExvY2FsZSgiZWwiLCAiIik7CisgICAgICAgIENvbGxhdG9yIGMgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgYyA9IENvbGxhdG9yLmdldEluc3RhbmNlKGVsKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQgdG8gY3JlYXRlIGNvbGxhdG9yIGZvciBlbCBsb2NhbGUuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgLy8gVGhlc2Ugbm93IGhhdmUgdGVydGlhcnkgZGlmZmVyZW5jZXMgaW4gVUNBCisgICAgICAgIGMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgU3RyaW5nIHRlc3RzW10gPSB7CisgICAgICAgICAgICAiXHUwMEI1IiwgIlx1MDAzZCIsICJcdTAzQkMiLAorICAgICAgICB9OworICAgICAgICBjb21wYXJlQXJyYXkoYywgdGVzdHMpOworICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQwOTUzMTYKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDk1MzE2KC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICBMb2NhbGUgZWxfR1IgPSBuZXcgTG9jYWxlKCJlbCIsICJHUiIpOworICAgICAgICBDb2xsYXRvciBjID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGMgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShlbF9HUik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkIHRvIGNyZWF0ZSBjb2xsYXRvciBmb3IgZWxfR1IgbG9jYWxlIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgLy8gVGhlc2Ugbm93IGhhdmUgdGVydGlhcnkgZGlmZmVyZW5jZXMgaW4gVUNBCisgICAgICAgIC8vYy0+c2V0U3RyZW5ndGgoQ29sbGF0b3I6OlRFUlRJQVJZKTsKKyAgICAgICAgLy9jLT5zZXRBdHRyaWJ1dGUoVUNPTF9TVFJFTkdUSCwgVUNPTF9TRUNPTkRBUlksIHN0YXR1cyk7CisgICAgICAgIGMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgU3RyaW5nIHRlc3RzW10gPSB7CisgICAgICAgICAgICAiXHUwM0Q0IiwgIlx1MDAzZCIsICJcdTAzQUIiLAorICAgICAgICB9OworICAgICAgICBjb21wYXJlQXJyYXkoYywgdGVzdHMpOworICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQxMDE5NDAKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTAxOTQwKC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIHJ1bGVzID0gIjwgYSA8IGIiOworICAgICAgICBTdHJpbmcgbm90aGluZyA9ICIiOworICAgICAgICB0cnkgeworICAgICAgICAgICAgYyA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlcyk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkIHRvIGNyZWF0ZSBSdWxlQmFzZWRDb2xsYXRvciIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpID0gYy5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Iobm90aGluZyk7CisgICAgICAgIGkucmVzZXQoKTsKKyAgICAgICAgaWYgKGkubmV4dCgpICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgIGVycmxuKCJuZXh0IGRpZCBub3QgcmV0dXJuIE5VTExPUkRFUiIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIEBidWcgNDEwMzQzNgorICAgIC8vCisgICAgLy8gQ29sbGF0b3I6OmNvbXBhcmUgbm90IGhhbmRsaW5nIHNwYWNlcyBwcm9wZXJseQorICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDM0MzYoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGMgPSAoUnVsZUJhc2VkQ29sbGF0b3IpIENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIGMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICBTdHJpbmdbXSB0ZXN0cyA9IHsKKyAgICAgICAgICAgICJcdTAwNjZcdTAwNjlcdTAwNmNcdTAwNjUiLCAiXHUwMDNjIiwgIlx1MDA2Nlx1MDA2OVx1MDA2Y1x1MDA2NVx1MDAyMFx1MDA2MVx1MDA2M1x1MDA2M1x1MDA2NVx1MDA3M1x1MDA3MyIsCisgICAgICAgICAgICAiXHUwMDY2XHUwMDY5XHUwMDZjXHUwMDY1IiwgIlx1MDAzYyIsICJcdTAwNjZcdTAwNjlcdTAwNmNcdTAwNjVcdTAwNjFcdTAwNjNcdTAwNjNcdTAwNjVcdTAwNzNcdTAwNzMiLAorICAgICAgICB9OworICAgICAgICBjb21wYXJlQXJyYXkoYywgdGVzdHMpOworICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQxMTQwNzYKKyAgICAvLworICAgIC8vIENvbGxhdGlvbiBub3QgVW5pY29kZSBjb25mb3JtYW50IHdpdGggSGFuZ3VsIHN5bGxhYmxlcworICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQxMTQwNzYoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGMgPSAoUnVsZUJhc2VkQ29sbGF0b3IpIENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIGMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgIAorICAgICAgICAvLworICAgICAgICAvLyBXaXRoIENhbm9uaWNhbCBkZWNvbXBvc2l0aW9uLCBIYW5ndWwgc3lsbGFibGVzIHNob3VsZCBnZXQgZGVjb21wb3NlZAorICAgICAgICAvLyBpbnRvIEphbW8sIGJ1dCBKYW1vIGNoYXJhY3RlcnMgc2hvdWxkIG5vdCBiZSBkZWNvbXBvc2VkIGludG8KKyAgICAgICAgLy8gY29uam9pbmluZyBKYW1vCisgICAgICAgIC8vCisgICAgICAgIFN0cmluZyB0ZXN0MVtdID0geworICAgICAgICAgICAgIlx1ZDRkYiIsICJcdTAwM2QiLCAiXHUxMTExXHUxMTcxXHUxMWI2IgorICAgICAgICB9OworICAgIAorICAgICAgICBjLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworICAgICAgICBjb21wYXJlQXJyYXkoYywgdGVzdDEpOworICAgIAorICAgICAgICAvLyBGcm9tIFVUUiAjMTU6CisgICAgICAgIC8vICpJbiBlYXJsaWVyIHZlcnNpb25zIG9mIFVuaWNvZGUsIGphbW8gY2hhcmFjdGVycyBsaWtlIGtzZgorICAgICAgICAvLyAgaGFkIGNvbXBhdGliaWxpdHkgbWFwcGluZ3MgdG8ga2YgKyBzZi4gVGhlc2UgbWFwcGluZ3Mgd2VyZSAKKyAgICAgICAgLy8gIHJlbW92ZWQgaW4gVW5pY29kZSAyLjEuOSB0byBlbnN1cmUgdGhhdCBIYW5ndWwgc3lsbGFibGVzIGFyZSBtYWludGFpbmVkLikKKyAgICAgICAgLy8gVGhhdCBpcywgdGhlIGZvbGxvd2luZyB0ZXN0IGlzIG9ic29sZXRlIGFzIG9mIDIuMS45CisgICAgCisgICAgLy9vYnNvbGV0ZS0gICAgLy8gV2l0aCBGdWxsIGRlY29tcG9zaXRpb24sIGl0IHNob3VsZCBnbyBhbGwgdGhlIHdheSBkb3duIHRvCisgICAgLy9vYnNvbGV0ZS0gICAgLy8gY29uam9pbmluZyBKYW1vIGNoYXJhY3RlcnMuCisgICAgLy9vYnNvbGV0ZS0gICAgLy8KKyAgICAvL29ic29sZXRlLSAgICBzdGF0aWMgY29uc3QgVUNoYXIgdGVzdDJbXVtDb2xsYXRpb25SZWdyZXNzaW9uVGVzdDo6TUFYX1RPS0VOX0xFTl0gPQorICAgIC8vb2Jzb2xldGUtICAgIHsKKyAgICAvL29ic29sZXRlLSAgICAgICAgezB4ZDRkYiwgMH0sIHsweDNkLCAwfSwgezB4MTExMSwgMHgxMTZlLCAweDExNzUsIDB4MTFhZiwgMHgxMWMyLCAwfQorICAgIC8vb2Jzb2xldGUtICAgIH07CisgICAgLy9vYnNvbGV0ZS0KKyAgICAvL29ic29sZXRlLSAgICBjLT5zZXREZWNvbXBvc2l0aW9uKE5vcm1hbGl6ZXI6OkRFQ09NUF9DT01QQVQpOworICAgIC8vb2Jzb2xldGUtICAgIGNvbXBhcmVBcnJheSgqYywgdGVzdDIsIEFSUkFZX0xFTkdUSCh0ZXN0MikpOworICAgIH0KKworICAgIC8vIEBidWcgNDExNDA3NworICAgIC8vCisgICAgLy8gQ29sbGF0aW9uIHdpdGggZGVjb21wb3NpdGlvbiBvZmYgZG9lc24ndCB3b3JrIGZvciBFdXJvcGUgCisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDExNDA3NygvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgLy8gRW5zdXJlIHRoYXQgd2UgZ2V0IHRoZSBzYW1lIHJlc3VsdHMgd2l0aCBkZWNvbXBvc2l0aW9uIG9mZgorICAgICAgICAvLyBhcyB3ZSBkbyB3aXRoIGl0IG9uLi4uLgorICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjID0gKFJ1bGVCYXNlZENvbGxhdG9yKSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBjLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgU3RyaW5nIHRlc3QxW10gPSB7CisgICAgICAgICAgICAiXHUwMEMwIiwgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAzZCIsICJcdTAwNDFcdTAzMDAiLCAgICAgICAgICAgIC8vIFNob3VsZCBiZSBlcXVpdmFsZW50CisgICAgICAgICAgICAiXHUwMDcwXHUwMGVhXHUwMDYzXHUwMDY4XHUwMDY1IiwgIlx1MDAzZSIsICJcdTAwNzBcdTAwZTlcdTAwNjNcdTAwNjhcdTAwZTkiLAorICAgICAgICAgICAgIlx1MDIwNCIsICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwM2QiLCAiXHUwMDQ1XHUwMzBGIiwKKyAgICAgICAgICAgICJcdTAxZmEiLCAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMDNkIiwgIlx1MDA0MVx1MDMwYVx1MDMwMSIsICAgIC8vIGEtcmluZy1hY3V0ZSAtPiBhLXJpbmcsIGFjdXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAtPiBhLCByaW5nLCBhY3V0ZQorICAgICAgICAgICAgIlx1MDA0MVx1MDMwMFx1MDMxNiIsICAgICAgICAgICAgICJcdTAwM2MiLCAiXHUwMDQxXHUwMzE2XHUwMzAwIiAgICAgICAgLy8gTm8gcmVvcmRlcmluZyAtLT4gdW5lcXVhbAorICAgICAgICB9OworICAgIAorICAgICAgICBjLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuTk9fREVDT01QT1NJVElPTik7CisgICAgICAgIGNvbXBhcmVBcnJheShjLCB0ZXN0MSk7CisgICAgCisgICAgICAgIFN0cmluZyB0ZXN0MltdID0geworICAgICAgICAgICAgIlx1MDA0MVx1MDMwMFx1MDMxNiIsICJcdTAwM2QiLCAiXHUwMDQxXHUwMzE2XHUwMzAwIiAgICAgIC8vIFJlb3JkZXJpbmcgLS0+IGVxdWFsCisgICAgICAgIH07CisgICAgCisgICAgICAgIGMuc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTik7CisgICAgICAgIGNvbXBhcmVBcnJheShjLCB0ZXN0Mik7CisgICAgfQorICAgIAorICAgIC8vIEBidWcgNDEyNDYzMgorICAgIC8vCisgICAgLy8gQ29sbGF0b3I6OmdldENvbGxhdGlvbktleSB3YXMgaGFuZ2luZyBvbiBjZXJ0YWluIGNoYXJhY3RlciBzZXF1ZW5jZXMKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTI0NjMyKC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICBDb2xsYXRvciBjb2xsID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbGwgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuSkFQQU4pOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWxlZCB0byBjcmVhdGUgY29sbGF0b3IgZm9yIExvY2FsZTo6SkFQQU4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgdGVzdCA9ICJcdTAwNDFcdTAzMDhcdTAwNjJcdTAwNjMiOworICAgICAgICBDb2xsYXRpb25LZXkga2V5OworICAgICAgICB0cnkgeworICAgICAgICAgICAga2V5ID0gY29sbC5nZXRDb2xsYXRpb25LZXkodGVzdCk7CisgICAgICAgICAgICBsb2dsbihrZXkuZ2V0U291cmNlU3RyaW5nKCkpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkNvbGxhdGlvbktleSBjcmVhdGlvbiBmYWlsZWQuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gQGJ1ZyA0MTMyNzM2CisgICAgLy8KKyAgICAvLyBzb3J0IG9yZGVyIG9mIGZyZW5jaCB3b3JkcyB3aXRoIG11bHRpcGxlIGFjY2VudHMgaGFzIGVycm9ycworICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQxMzI3MzYoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIENvbGxhdG9yIGMgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgYyA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5GUkFOQ0UpOworICAgICAgICAgICAgYy5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkIHRvIGNyZWF0ZSBhIGNvbGxhdG9yIGZvciBMb2NhbGU6OmdldEZyYW5jZSgpIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgU3RyaW5nIHRlc3QxW10gPSB7CisgICAgICAgICAgICAiXHUwMDY1XHUwMzAwXHUwMDY1XHUwMzAxIiwgIlx1MDAzYyIsICJcdTAwNjVcdTAzMDFcdTAwNjVcdTAzMDAiLAorICAgICAgICAgICAgIlx1MDA2NVx1MDMwMFx1MDMwMSIsICAgICAgICJcdTAwM2MiLCAiXHUwMDY1XHUwMzAxXHUwMzAwIiwKKyAgICAgICAgfTsKKyAgICAgICAgY29tcGFyZUFycmF5KGMsIHRlc3QxKTsKKyAgICB9CisgICAgCisgICAgLy8gQGJ1ZyA0MTMzNTA5CisgICAgLy8KKyAgICAvLyBUaGUgc29ydGluZyB1c2luZyBqYXZhLnRleHQuQ29sbGF0aW9uS2V5IGlzIG5vdCBpbiB0aGUgZXhhY3Qgb3JkZXIKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTMzNTA5KC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBlbl91cyA9IChSdWxlQmFzZWRDb2xsYXRvcikgQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgU3RyaW5nIHRlc3QxW10gPSB7CisgICAgICAgICAgICAiXHUwMDQ1XHUwMDc4XHUwMDYzXHUwMDY1XHUwMDcwXHUwMDc0XHUwMDY5XHUwMDZmXHUwMDZlIiwgIlx1MDAzYyIsICJcdTAwNDVcdTAwNzhcdTAwNjNcdTAwNjVcdTAwNzBcdTAwNzRcdTAwNjlcdTAwNmZcdTAwNmVcdTAwNDlcdTAwNmVcdTAwNDlcdTAwNmVcdTAwNjlcdTAwNzRcdTAwNjlcdTAwNjFcdTAwNmNcdTAwNjlcdTAwN2FcdTAwNjVcdTAwNzJcdTAwNDVcdTAwNzJcdTAwNzJcdTAwNmZcdTAwNzIiLAorICAgICAgICAgICAgIlx1MDA0N1x1MDA3Mlx1MDA2MVx1MDA3MFx1MDA2OFx1MDA2OVx1MDA2M1x1MDA3MyIsICAgICAgICJcdTAwM2MiLCAiXHUwMDQ3XHUwMDcyXHUwMDYxXHUwMDcwXHUwMDY4XHUwMDY5XHUwMDYzXHUwMDczXHUwMDQ1XHUwMDZlXHUwMDc2XHUwMDY5XHUwMDcyXHUwMDZmXHUwMDZlXHUwMDZkXHUwMDY1XHUwMDZlXHUwMDc0IiwKKyAgICAgICAgICAgICJcdTAwNTNcdTAwNzRcdTAwNzJcdTAwNjlcdTAwNmVcdTAwNjciLCAgICAgICAgICAgICAgICAgICAiXHUwMDNjIiwgIlx1MDA1M1x1MDA3NFx1MDA3Mlx1MDA2OVx1MDA2ZVx1MDA2N1x1MDA0Mlx1MDA3NVx1MDA2Nlx1MDA2Nlx1MDA2NVx1MDA3MiIsCisgICAgICAgIH07CisgICAgCisgICAgICAgIGNvbXBhcmVBcnJheShlbl91cywgdGVzdDEpOworICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQxMzk1NzIKKyAgICAvLworICAgIC8vIGdldENvbGxhdGlvbktleSB0aHJvd3MgZXhjZXB0aW9uIGZvciBzcGFuaXNoIHRleHQgCisgICAgLy8gQ2Fubm90IHJlcHJvZHVjZSB0aGlzIGJ1ZyBvbiAxLjIsIGhvd2V2ZXIgaXQgRE9FUyBmYWlsIG9uIDEuMS42CisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEzOTU3MigvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgLy8KKyAgICAgICAgLy8gQ29kZSBwYXN0ZWQgc3RyYWlnaHQgZnJvbSB0aGUgYnVnIHJlcG9ydAorICAgICAgICAvLyAoYW5kIHRoZW4gdHJhbnNsYXRlZCB0byBDKysgOy0pCisgICAgICAgIC8vCisgICAgICAgIC8vIGNyZWF0ZSBzcGFuaXNoIGxvY2FsZSBhbmQgY29sbGF0b3IKKyAgICAgICAgTG9jYWxlIGwgPSBuZXcgTG9jYWxlKCJlcyIsICJlcyIpOworICAgICAgICBDb2xsYXRvciBjb2wgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkIHRvIGNyZWF0ZSBhIGNvbGxhdG9yIGZvciBlc19lcyBsb2NhbGUuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgQ29sbGF0aW9uS2V5IGtleSA9IG51bGw7CisgICAgICAgIC8vIHRoaXMgc3BhbmlzaCBwaHJhc2Uga2lsbHMgaXQhCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBrZXkgPSBjb2wuZ2V0Q29sbGF0aW9uS2V5KCJOb21icmUgRGUgT2JqZXRvIik7CisgICAgICAgICAgICBsb2dsbigic291cmNlOiIgKyBrZXkuZ2V0U291cmNlU3RyaW5nKCkpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIGNyZWF0aW5nIENvbGxhdGlvbktleSBmb3IgXCJOb21icmUgRGUgT2piZXRvXCIiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQxNDE2NDAKKyAgICAvLworICAgIC8vIFN1cHBvcnQgZm9yIFN3ZWRpc2ggZ29uZSBpbiAxLjEuNiAoQ2FuJ3QgY3JlYXRlIFN3ZWRpc2ggY29sbGF0b3IpIAorICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQxNDE2NDAoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIC8vCisgICAgICAgIC8vIFJhdGhlciB0aGFuIGp1c3QgY3JlYXRpbmcgYSBTd2VkaXNoIGNvbGxhdG9yLCB3ZSBtaWdodCBhcyB3ZWxsCisgICAgICAgIC8vIHRyeSB0byBpbnN0YW50aWF0ZSBvbmUgZm9yIGV2ZXJ5IGxvY2FsZSBhdmFpbGFibGUgb24gdGhlIHN5c3RlbQorICAgICAgICAvLyBpbiBvcmRlciB0byBwcmV2ZW50IHRoaXMgc29ydCBvZiBidWcgZnJvbSBjcm9wcGluZyB1cCBpbiB0aGUgZnV0dXJlCisgICAgICAgIC8vCisgICAgICAgIExvY2FsZSBsb2NhbGVzW10gPSBMb2NhbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgaSArPSAxKQorICAgICAgICB7CisgICAgICAgICAgICBDb2xsYXRvciBjID0gbnVsbDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgYyA9IENvbGxhdG9yLmdldEluc3RhbmNlKGxvY2FsZXNbaV0pOworICAgICAgICAgICAgICAgIGxvZ2xuKCJzb3VyY2U6ICIgKyBjLmdldFN0cmVuZ3RoKCkpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbXNnID0gIiI7CisgICAgICAgICAgICAgICAgbXNnICs9ICJDb3VsZCBub3QgY3JlYXRlIGNvbGxhdG9yIGZvciBsb2NhbGUgIjsKKyAgICAgICAgICAgICAgICBtc2cgKz0gbG9jYWxlc1tpXS5nZXREaXNwbGF5TmFtZSgpOworICAgICAgICAgICAgICAgIGVycmxuKG1zZyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyogUnVsZUJhc2VkQ29sbGF0b3Igbm90IHN1YmNsYXNzYWJsZQorICAgICAqIEBidWcgNDE0NjE2MAorICAgIC8vCisgICAgLy8gUnVsZUJhc2VkQ29sbGF0b3IgZG9lc24ndCB1c2UgY3JlYXRlQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGludGVybmFsbHkKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTQ2MTYwKCkgeworICAgICAgICAvLworICAgICAgICAvLyBVc2UgYSBjdXN0b20gY29sbGF0b3IgY2xhc3Mgd2hvc2UgY3JlYXRlQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yCisgICAgICAgIC8vIG1ldGhvZHMgaW5jcmVtZW50IGEgY291bnQuLi4uCisgICAgICAgIC8vICAgICAKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgZW5fdXMgPSAoUnVsZUJhc2VkQ29sbGF0b3IpIENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIE15NDE0NjE2MENvbGxhdG9yLmNvdW50ID0gMDsKKyAgICAgICAgTXk0MTQ2MTYwQ29sbGF0b3IgbWMgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgbWMgPSBuZXcgTXk0MTQ2MTYwQ29sbGF0b3IoZW5fdXMpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWxlZCB0byBjcmVhdGUgYSBNeTQxNDYxNjBDb2xsYXRvci4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICBDb2xsYXRpb25LZXkga2V5ID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGtleSA9IG1jLmdldENvbGxhdGlvbktleSgiMSIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWx1cmUgdG8gZ2V0IGEgQ29sbGF0aW9uS2V5IGZyb20gYSBNeTQxNDYxNjBDb2xsYXRvci4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpZiAoTXk0MTQ2MTYwQ29sbGF0b3IuY291bnQgPCAxKSB7CisgICAgICAgICAgICBlcnJsbigiTXk0MTQ2MTYwQ29sbGF0b3IuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIG5vdCBjYWxsZWQgZm9yIGdldENvbGxhdGlvbktleSIpOworICAgICAgICB9CisgICAgCisgICAgICAgIE15NDE0NjE2MENvbGxhdG9yLmNvdW50ID0gMDsKKyAgICAgICAgbWMuY29tcGFyZSgiMSIsICIyIik7CisgICAgCisgICAgICAgIGlmIChNeTQxNDYxNjBDb2xsYXRvci5jb3VudCA8IDEpIHsKKyAgICAgICAgICAgIGVycmxuKCJNeTQxNDYxNjBDb2xsYXRvci5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Igbm90IGNhbGxlZCBmb3IgY29tcGFyZSIpOworICAgICAgICB9CisgICAgfSovCit9CisKKy8qIFJ1bGVCYXNlZENvbGxhdG9yIG5vdCBzdWJjbGFzc2FibGUKKyAqIGNsYXNzIE15NDE0NjE2MENvbGxhdG9yIGV4dGVuZHMgUnVsZUJhc2VkQ29sbGF0b3IgeworICAgIHN0YXRpYyBpbnQgY291bnQgPSAwOworCisgICAgcHVibGljIE15NDE0NjE2MENvbGxhdG9yKFJ1bGVCYXNlZENvbGxhdG9yIHJiYykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHN1cGVyKHJiYy5nZXRSdWxlcygpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihTdHJpbmcgdGV4dCkgeworICAgICAgICBjb3VudCArPSAxOworICAgICAgICByZXR1cm4gc3VwZXIuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHRleHQpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3IgdGV4dCkgeworICAgICAgICBjb3VudCArPSAxOworICAgICAgICByZXR1cm4gc3VwZXIuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHRleHQpOworICAgIH0KK30KKyovClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvblNwYW5pc2hUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uU3BhbmlzaFRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZTkyNGQwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvblNwYW5pc2hUZXN0LmphdmEKQEAgLTAsMCArMSwxODkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogJFNvdXJjZTogCisgKiAkRGF0ZTogCisgKiAkUmV2aXNpb246IAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2Mi4xIDogQ29sbGF0ZS9Db2xsYXRpb25TcGFuaXNoVGVzdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3QvZXNjb2xsLmNwcAorICoqLworIAorIHBhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3I7CisgCisgaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CisgaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKKyBpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKyAKKyBwdWJsaWMgY2xhc3MgQ29sbGF0aW9uU3BhbmlzaFRlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBDb2xsYXRpb25TcGFuaXNoVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdFNvdXJjZUNhc2VzID0geworICAgICAgICB7MHg2MSwgMHg2YywgMHg2OSwgMHg2MSwgMHg3M30sCisgICAgICAgIHsweDQ1LCAweDZjLCAweDZjLCAweDY5LCAweDZmLCAweDc0fSwKKyAgICAgICAgezB4NDgsIDB4NjUsIDB4NmMsIDB4NmMsIDB4NmZ9LAorICAgICAgICB7MHg2MSwgMHg2MywgMHg0OCwgMHg2M30sCisgICAgICAgIHsweDYxLCAweDYzLCAweDYzfSwKKyAgICAgICAgezB4NjEsIDB4NmMsIDB4NjksIDB4NjEsIDB4NzN9LAorICAgICAgICB7MHg2MSwgMHg2MywgMHg0OCwgMHg2M30sCisgICAgICAgIHsweDYxLCAweDYzLCAweDYzfSwKKyAgICAgICAgezB4NDgsIDB4NjUsIDB4NmMsIDB4NmMsIDB4NmZ9LAorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0VGFyZ2V0Q2FzZXMgPSB7CisgICAgICAgIHsweDYxLCAweDZjLCAweDZjLCAweDY5LCAweDYxLCAweDczfSwKKyAgICAgICAgezB4NDUsIDB4NmQsIDB4NjksIDB4NmYsIDB4NzR9LAorICAgICAgICB7MHg2OCwgMHg2NSwgMHg2YywgMHg2YywgMHg0Zn0sCisgICAgICAgIHsweDYxLCAweDQzLCAweDQ4LCAweDYzfSwKKyAgICAgICAgezB4NjEsIDB4NDMsIDB4NDgsIDB4NjN9LAorICAgICAgICB7MHg2MSwgMHg2YywgMHg2YywgMHg2OSwgMHg2MSwgMHg3M30sCisgICAgICAgIHsweDYxLCAweDQzLCAweDQ4LCAweDYzfSwKKyAgICAgICAgezB4NjEsIDB4NDMsIDB4NDgsIDB4NjN9LAorICAgICAgICB7MHg2OCwgMHg2NSwgMHg2YywgMHg2YywgMHg0Zn0sCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGludFtdIHJlc3VsdHMgPSB7CisgICAgICAgIC0xLAorICAgICAgICAtMSwKKyAgICAgICAgMSwKKyAgICAgICAgLTEsCisgICAgICAgIC0xLAorICAgICAgICAvLyB0ZXN0IHByaW1hcnkgPiA1CisgICAgICAgIC0xLAorICAgICAgICAwLAorICAgICAgICAtMSwKKyAgICAgICAgMAorICAgIH07CisgICAgCisgICAgLy9zdGF0aWMgcHVibGljIENvbGxhdG9yIG15Q29sbGF0aW9uID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiZXMiLCAiRVMiKSk7CisgICAgCisgICAgcHJpdmF0ZSBDb2xsYXRvciBteUNvbGxhdGlvbiA9IG51bGw7CisgICAgCisgICAgcHVibGljIENvbGxhdGlvblNwYW5pc2hUZXN0KCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgbXlDb2xsYXRpb24gPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJlcyIsICJFUyIpKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogaW4gY3JlYXRpb24gb2YgY29sbGF0b3Igb2YgU1BBTklTSCBsb2NhbGUiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0VGVydGlhcnkoKXsKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCA1IDsgaSsrKSB7CisgICAgICAgICAgICBkb1Rlc3QodGVzdFNvdXJjZUNhc2VzW2ldLCB0ZXN0VGFyZ2V0Q2FzZXNbaV0sIHJlc3VsdHNbaV0pOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RQcmltYXJ5KCl7CisgICAgICAgIGludCBpOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKyAgICAgICAgZm9yIChpID0gNTsgaSA8IDk7IGkrKykgeworICAgICAgICAgICAgZG9UZXN0KHRlc3RTb3VyY2VDYXNlc1tpXSwgdGVzdFRhcmdldENhc2VzW2ldLCByZXN1bHRzW2ldKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBhbWluIHRlc3Qgcm91dGluZSwgdGVzdHMgcnVsZXMgc3BlY2lmaWMgdG8gdGhlIHNwYW5pc2ggbG9jYWxlCisgICAgcHJpdmF0ZSB2b2lkIGRvVGVzdChjaGFyW10gc291cmNlLCBjaGFyW10gdGFyZ2V0LCBpbnQgcmVzdWx0KSB7CisgICAgICAgIFN0cmluZyBzID0gbmV3IFN0cmluZyhzb3VyY2UpOworICAgICAgICBTdHJpbmcgdCA9IG5ldyBTdHJpbmcodGFyZ2V0KTsKKyAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQgPSBteUNvbGxhdGlvbi5jb21wYXJlKHMsIHQpOworICAgICAgICBDb2xsYXRpb25LZXkgc29ydEtleTEsIHNvcnRLZXkyOworICAgICAgICBzb3J0S2V5MSA9IG15Q29sbGF0aW9uLmdldENvbGxhdGlvbktleShzKTsKKyAgICAgICAgc29ydEtleTIgPSBteUNvbGxhdGlvbi5nZXRDb2xsYXRpb25LZXkodCk7CisgICAgICAgIGludCBrZXlSZXN1bHQgPSBzb3J0S2V5MS5jb21wYXJlVG8oc29ydEtleTIpOworICAgICAgICByZXBvcnRDUmVzdWx0KHMsIHQsIHNvcnRLZXkxLCBzb3J0S2V5MiwgY29tcGFyZVJlc3VsdCwga2V5UmVzdWx0LCBjb21wYXJlUmVzdWx0LCByZXN1bHQpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcmVwb3J0Q1Jlc3VsdCggU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCwgQ29sbGF0aW9uS2V5IHNvdXJjZUtleSwgQ29sbGF0aW9uS2V5IHRhcmdldEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQsIGludCBrZXlSZXN1bHQsIGludCBpbmNSZXN1bHQsIGludCBleHBlY3RlZFJlc3VsdCApIHsKKyAgICAgICAgaWYgKGV4cGVjdGVkUmVzdWx0IDwgLTEgfHwgZXhwZWN0ZWRSZXN1bHQgPiAxKSB7CisgICAgICAgICAgICBlcnJsbigiKioqKiogaW52YWxpZCBjYWxsIHRvIHJlcG9ydENSZXN1bHQgKioqKiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBvazEgPSAoY29tcGFyZVJlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCk7CisgICAgICAgIGJvb2xlYW4gb2syID0gKGtleVJlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCk7CisgICAgICAgIGJvb2xlYW4gb2szID0gKGluY1Jlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCk7CisKKyAgICAgICAgaWYgKG9rMSAmJiBvazIgJiYgb2szICYmICFpc1ZlcmJvc2UoKSkgeworICAgICAgICAgICAgcmV0dXJuOyAgICAKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBtc2cxID0gb2sxPyAiT2s6IGNvbXBhcmUoXCIiIDogIkZBSUw6IGNvbXBhcmUoXCIiOworICAgICAgICAgICAgU3RyaW5nIG1zZzIgPSAiXCIsIFwiIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2czID0gIlwiKSByZXR1cm5lZCAiOworICAgICAgICAgICAgU3RyaW5nIG1zZzQgPSAiOyBleHBlY3RlZCAiOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgc0V4cGVjdCA9IG5ldyBTdHJpbmcoIiIpOworICAgICAgICAgICAgU3RyaW5nIHNSZXN1bHQgPSBuZXcgU3RyaW5nKCIiKTsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGNvbXBhcmVSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgc0V4cGVjdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoZXhwZWN0ZWRSZXN1bHQsIHNFeHBlY3QpOworICAgICAgICAgICAgaWYgKG9rMSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBtc2cxID0gb2syID8gIk9rOiBrZXkoXCIiIDogIkZBSUw6IGtleShcIiI7CisgICAgICAgICAgICBtc2cyID0gIlwiKS5jb21wYXJlVG8oa2V5KFwiIjsKKyAgICAgICAgICAgIG1zZzMgPSAiXCIpKSByZXR1cm5lZCAiOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoa2V5UmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIGlmIChvazIpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgICAgICBtc2cxID0gIiAgIjsKKyAgICAgICAgICAgICAgICBtc2cyID0gIiB2cy4gIjsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgcHJldHRpZnkoc291cmNlS2V5KSArIG1zZzIgKyBwcmV0dGlmeSh0YXJnZXRLZXkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbXNnMSA9IG9rMyA/ICJPazogaW5jQ29tcGFyZShcIiIgOiAiRkFJTDogaW5jQ29tcGFyZShcIiI7CisgICAgICAgICAgICBtc2cyID0gIlwiLCBcIiI7CisgICAgICAgICAgICBtc2czID0gIlwiKSByZXR1cm5lZCAiOworCisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChpbmNSZXN1bHQsIHNSZXN1bHQpOworCisgICAgICAgICAgICBpZiAob2szKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICB9ICAgICAgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgU3RyaW5nIGFwcGVuZENvbXBhcmVSZXN1bHQoaW50IHJlc3VsdCwgU3RyaW5nIHRhcmdldCl7CisgICAgICAgIGlmIChyZXN1bHQgPT0gLTEpIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiTEVTUyI7CisgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiRVFVQUwiOworICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSAxKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkdSRUFURVIiOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIGh1aCA9ICI/IjsKKyAgICAgICAgICAgIHRhcmdldCArPSBodWggKyByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9CisgICAgCisgICAgU3RyaW5nIHByZXR0aWZ5KENvbGxhdGlvbktleSBzb3VyY2VLZXkpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGJ5dGVbXSBieXRlcz0gc291cmNlS2V5LnRvQnl0ZUFycmF5KCk7CisgICAgICAgIFN0cmluZyB0YXJnZXQgPSAiWyI7CisgICAgCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdGFyZ2V0ICs9IEludGVnZXIudG9IZXhTdHJpbmcoYnl0ZXNbaV0pOworICAgICAgICAgICAgdGFyZ2V0ICs9ICIgIjsKKyAgICAgICAgfQorICAgICAgICB0YXJnZXQgKz0gIl0iOworICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25UZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ2YTFkNmMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uVGVzdC5qYXZhCkBAIC0wLDAgKzEsMzQ0IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvblRlc3QuamF2YSx2ICQKKyAqICREYXRlOiAyMDAyLzA4LzEzIDIxOjU1OjI1ICQKKyAqICRSZXZpc2lvbjogMS40ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuTW9kdWxlVGVzdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZENvbGxhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db2xsYXRpb25LZXk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTG9jYWxlVXRpbGl0eTsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKKworcHVibGljIGNsYXNzIENvbGxhdGlvblRlc3QgZXh0ZW5kcyBNb2R1bGVUZXN0IAoreworICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiAKKyAgICB7CisgICAgICAgIG5ldyBDb2xsYXRpb25UZXN0KCkucnVuKGFyZ3MpOworICAgICAgICAvKiBDb2xsYXRpb25UZXN0IHRlc3QgPSBuZXcgQ29sbGF0aW9uVGVzdCgpOworICAgICAgICBpZiAodGVzdC52YWxpZGF0ZSgpKSB7CisgICAgICAgICAgICB0ZXN0LlRlc3RDSWdub3JhYmxlQ29udHJhY3Rpb24oKTsKKyAgICAgICAgfSovCisgICAgfQorIAorICAgIHB1YmxpYyB2b2lkIFRlc3RDSWdub3JhYmxlQ29udHJhY3Rpb24oKSB7CisgICAgCXdoaWxlIChuZXh0U2V0dGluZ3MoKSkgeworICAgIAkgICAgcHJvY2Vzc1Rlc3QoKTsKKyAgICAJfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q0lnbm9yYWJsZVByZWZpeCgpIHsKKyAgICAgICAgd2hpbGUgKG5leHRTZXR0aW5ncygpKSB7CisgICAgICAgICAgICBwcm9jZXNzVGVzdCgpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3ROU2hpZnRlZElnbm9yYWJsZSgpIHsKKyAgICAgICAgd2hpbGUgKG5leHRTZXR0aW5ncygpKSB7CisgICAgICAgICAgICBwcm9jZXNzVGVzdCgpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RTYWZlU3Vycm9nYXRlcygpIHsKKyAgICAgICAgd2hpbGUgKG5leHRTZXR0aW5ncygpKSB7CisgICAgICAgICAgICBwcm9jZXNzVGVzdCgpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RQcmltYXJ5KCkgeworICAgICAgICB3aGlsZSAobmV4dFNldHRpbmdzKCkpIHsKKyAgICAgICAgICAgIHByb2Nlc3NUZXN0KCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFRlcnRpYXJ5KCkgeworICAgICAgICB3aGlsZSAobmV4dFNldHRpbmdzKCkpIHsKKyAgICAgICAgICAgIHByb2Nlc3NUZXN0KCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBtX3NlcXVlbmNlXzsKKyAgICBwcml2YXRlIGludCBtX3NlcXVlbmNlSW5kZXhfOworICAgIHByaXZhdGUgU3RyaW5nIG1fc291cmNlXzsKKyAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciBtX3RhcmdldF8gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgcHJpdmF0ZSBpbnQgbV9uZXh0UmVsYXRpb25fOworICAgIHByaXZhdGUgaW50IG1fcmVsYXRpb25fOworICAgIAorICAgIC8vIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHByb2Nlc3NUZXN0KCkgeworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2wgPSBudWxsOworICAgICAgICAvLyBvayBpIGhhdmUgdG8gYmUgY2FyZWZ1bCBoZXJlIHNpbmNlIGl0IHNlZW1zIGxpa2Ugd2UgY2FuIGhhdmUKKyAgICAgICAgLy8gbXVsdGlwbGUgbG9jYWxlcyBmb3IgZWFjaCB0ZXN0IAorICAgICAgICBTdHJpbmcgbG9jYWxlID0gc2V0dGluZ3MuZ2V0U3RyaW5nKCJUZXN0TG9jYWxlIik7CisgICAgICAgIGlmIChsb2NhbGUgIT0gbnVsbCkgeworICAgICAgICAgICAgLy8gdGhpcyBpcyBhIGNhc2Ugd2hlcmUgd2UgaGF2ZSBsb2NhbGUgCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGlmIChsb2NhbGUuZXF1YWxzSWdub3JlQ2FzZSgicm9vdCIpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbCA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIExvY2FsZSBsID0gTG9jYWxlVXRpbGl0eS5nZXRMb2NhbGVGcm9tTmFtZShsb2NhbGUpOworICAgICAgICAgICAgICAgICAgICBjb2wgPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UobCk7ICAgICAgICAgIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGNyZWF0aW5nIGNvbGxhdG9yIGZvciBsb2NhbGUgIiArIGxvY2FsZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2dsbigiVGVzdGluZyBjb2xsYXRvciBmb3IgbG9jYWxlICVzXG4iICsgbG9jYWxlKTsKKyAgICAgICAgICAgIHByb2Nlc3NDb2xsYXRvclRlc3RzKGNvbCk7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHJ1bGVzID0gc2V0dGluZ3MuZ2V0U3RyaW5nKCJSdWxlcyIpOworICAgICAgICAvLyBvayBpIGhhdmUgdG8gYmUgY2FyZWZ1bCBoZXJlIHNpbmNlIGl0IHNlZW1zIGxpa2Ugd2UgY2FuIGhhdmUKKyAgICAgICAgLy8gbXVsdGlwbGUgcnVsZXMgZm9yIGVhY2ggdGVzdCAKKyAgICAgICAgaWYgKHJ1bGVzICE9IG51bGwpIHsKKyAgICAgICAgICAgIC8vIGhlcmUgd2UgZGVhbCB3aXRoIHJ1bGVzCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGNvbCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlcyk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBjcmVhdGluZyBjb2xsYXRvciBmb3IgcnVsZXMgIiArIHJ1bGVzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHByb2Nlc3NDb2xsYXRvclRlc3RzKGNvbCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHByb2Nlc3NDb2xsYXRvclRlc3RzKFJ1bGVCYXNlZENvbGxhdG9yIGNvbCkgCisgICAgeworICAgICAgICAKKyAgICAgICAgLy8gb2sgaSBoYXZlIHRvIGJlIGNhcmVmdWwgaGVyZSBzaW5jZSBpdCBzZWVtcyBsaWtlIHdlIGNhbiBoYXZlCisgICAgICAgIC8vIG11bHRpcGxlIHJ1bGVzIGZvciBlYWNoIHRlc3QgCisgICAgICAgIFN0cmluZyBhcmd1bWVudHMgPSBzZXR0aW5ncy5nZXRTdHJpbmcoIkFyZ3VtZW50cyIpOworICAgICAgICBpZiAoYXJndW1lbnRzICE9IG51bGwpIHsKKyAgICAgICAgICAgIHByb2Nlc3NBcmd1bWVudHMoY29sLCBhcmd1bWVudHMpOworICAgICAgICB9CisgICAgICAgIHByb2Nlc3NSZWFkeUNvbGxhdG9yKGNvbCk7ICAgICAgCisgICAgfQorICAgIAorICAgIC8qKiAKKyAgICAgKiBSZWFkcyB0aGUgb3B0aW9ucyBzdHJpbmcgYW5kIHNldHMgYXBwcm9wcmlhdGUgYXR0cmlidXRlcyBpbiBjb2xsYXRvciAKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcHJvY2Vzc0FyZ3VtZW50cyhSdWxlQmFzZWRDb2xsYXRvciBjb2wsIFN0cmluZyBhcmd1bWVudCkgeworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIHdoaWxlIChpIDwgYXJndW1lbnQubGVuZ3RoKCkpIHsgCisgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNXaGl0ZXNwYWNlKGFyZ3VtZW50LmNoYXJBdChpKSkpIHsgCisgICAgICAgICAgICAgICAgLy8gZWF0IHdoaXRlc3BhY2UKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGkgKys7CisgICAgICAgIH0KKyAgICAgICAgd2hpbGUgKGkgPCBhcmd1bWVudC5sZW5ndGgoKSkgeworICAgICAgICAgICAgLy8gc2tpcCBvcGVuaW5nICdbJworICAgICAgICAgICAgaWYgKGFyZ3VtZW50LmNoYXJBdChpKSA9PSAnWycpIHsKKyAgICAgICAgICAgICAgICBpICsrOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBpbiBjb2xsYXRpb24gYXJndW1lbnRzLCBtaXNzaW5nIFsiKTsgLy8gbm8gb3BlbmluZyAnWycKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCB2YWx1ZSA9IGFyZ3VtZW50LmluZGV4T2YoJyAnLCBpKTsKKyAgICAgICAgICAgIFN0cmluZyBvcHRpb24gPSBhcmd1bWVudC5zdWJzdHJpbmcoaSwgdmFsdWUpOworICAgICAgICAgICAgaSA9IGFyZ3VtZW50LmluZGV4T2YoJ10nLCB2YWx1ZSk7CisgICAgICAgICAgICBTdHJpbmcgb3B0aW9udmFsdWUgPSBhcmd1bWVudC5zdWJzdHJpbmcodmFsdWUgKyAxLCBpKTsKKyAgICAgICAgICAgIGkgKys7CisgICAgICAgICAgICAvLyBzb21lIG9wdGlvbnMgYXJlIG5vdCBhZGRlZCBiZWNhdXNlIHRoZXkgaGF2ZSBubyBwdWJsaWMgYXBpcyB5ZXQKKyAgICAgICAgICAgIC8vIFRPRE8gYWRkIHRoZSByZXN0IG9mIHRoZSBvcHRpb25zCisgICAgICAgICAgICBpZiAob3B0aW9uLmVxdWFsc0lnbm9yZUNhc2UoImFsdGVybmF0ZSIpKSB7CisgICAgICAgICAgICAgICAgaWYgKG9wdGlvbnZhbHVlLmVxdWFsc0lnbm9yZUNhc2UoIm5vbi1pZ25vcmFibGUiKSkgeworICAgICAgICAgICAgICAgICAgICBjb2wuc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKGZhbHNlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGNvbC5zZXRBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQodHJ1ZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAob3B0aW9uLmVxdWFscygic3RyZW5ndGgiKSkgeworICAgICAgICAgICAgICAgIGlmIChvcHRpb252YWx1ZS5lcXVhbHNJZ25vcmVDYXNlKCIxIikpIHsKKyAgICAgICAgICAgICAgICAgICAgY29sLnNldFN0cmVuZ3RoKENvbGxhdG9yLlBSSU1BUlkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmIChvcHRpb252YWx1ZS5lcXVhbHNJZ25vcmVDYXNlKCIyIikpIHsKKyAgICAgICAgICAgICAgICAgICAgY29sLnNldFN0cmVuZ3RoKENvbGxhdG9yLlNFQ09OREFSWSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKG9wdGlvbnZhbHVlLmVxdWFsc0lnbm9yZUNhc2UoIjMiKSkgeworICAgICAgICAgICAgICAgICAgICBjb2wuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmIChvcHRpb252YWx1ZS5lcXVhbHNJZ25vcmVDYXNlKCI0IikpIHsKKyAgICAgICAgICAgICAgICAgICAgY29sLnNldFN0cmVuZ3RoKENvbGxhdG9yLlFVQVRFUk5BUlkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBwcm9jZXNzUmVhZHlDb2xsYXRvcihSdWxlQmFzZWRDb2xsYXRvciBjb2wpIHsKKyAgICAgICB3aGlsZSAobmV4dENhc2UoKSkgeworICAgICAgICAgICAgLy8gdGhpcyBpcyB2ZXJ5IHNhZCwgaXQgaXMgYWxpdHRsZSBhd2t3YXJkIHRvIHdyaXRlIHRoZSBjIHJiIAorICAgICAgICAgICAgLy8gdG8gaGF2ZSBhbiBvYmplY3QgYXJyYXkgb2YgYW4gb2JqZWN0IGFycmF5IG9mIGEgMSBlbGVtZW50IAorICAgICAgICAgICAgLy8gc3RyaW5nIGFycmF5LiBzbyBub3cgd2UgaGF2ZSBhbiBvYmplY3QgYXJyYXkgb2YgYSAxIGVsZW1lbnQgCisgICAgICAgICAgICAvLyBvYmplY3QgYXJyYXkgb2Ygc3RyaW5nIGFycmF5cy4KKyAgICAgICAgICAgIFN0cmluZyBzZXF1ZW5jZVtdID0gdGVzdGNhc2UuZ2V0U3RyaW5nQXJyYXkoInNlcXVlbmNlIik7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNlcXVlbmNlLmxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgICAgIHByb2Nlc3NTZXF1ZW5jZShjb2wsIHNlcXVlbmNlW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBwcm9jZXNzU2VxdWVuY2UoUnVsZUJhc2VkQ29sbGF0b3IgY29sLCBTdHJpbmcgc2VxdWVuY2UpIHsKKyAgICAgICAgLy8gVE9ETzogaGF2ZSBhIHNtYXJ0ZXIgdGVzdGVyIHRoYXQgcmVtZW1iZXJzIHRoZSBzZXF1ZW5jZSBhbmQgZW5zdXJlcyAKKyAgICAgICAgLy8gdGhhdCB0aGUgY29tcGxldGUgc2VxdWVuY2UgaXMgaW4gb3JkZXIuIFRoYXQgaXMgd2h5IEkgaGF2ZSBtYWRlIGEgCisgICAgICAgIC8vIGNvbnN0cmFpbnQgaW4gdGhlIHNlcXVlbmNlIGZvcm1hdC4gICAgIAorICAgICAgICBtX3NlcXVlbmNlXyA9IHNlcXVlbmNlOworICAgICAgICBtX3NlcXVlbmNlSW5kZXhfID0gMDsKKyAgICAgICAgbV9uZXh0UmVsYXRpb25fID0gLTE7CisgICAgICAgIG1fdGFyZ2V0Xy5kZWxldGUoMCwgbV90YXJnZXRfLmxlbmd0aCgpKTsKKyAgICAgICAgVmVjdG9yIHZlY3RvciA9IG5ldyBWZWN0b3IoKTsKKyAgICAKKyAgICAgICAgd2hpbGUgKGdldE5leHRJblNlcXVlbmNlKCkpIHsgICAgCisgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gbV90YXJnZXRfLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBkb1Rlc3QoY29sLCBtX3NvdXJjZV8sIHRhcmdldCwgbV9yZWxhdGlvbl8pOworICAgICAgICAgICAgaW50IHZzaXplID0gdmVjdG9yLnNpemUoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdnNpemU7IGkgKyspIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgc291cmNlID0gKFN0cmluZyl2ZWN0b3IuZWxlbWVudEF0KGkpOyAgIAorICAgICAgICAgICAgICAgIGRvVGVzdChjb2wsIHNvdXJjZSwgdGFyZ2V0LCBtX3JlbGF0aW9uXyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2ZWN0b3IuYWRkRWxlbWVudCh0YXJnZXQpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKiAKKyAgICAgKiBQYXJzZXMgdGhlIHNlcXVlbmNlIHRvIGJlIHRlc3RlZCAKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gZ2V0TmV4dEluU2VxdWVuY2UoKSB7CisgICAgICAgIGlmIChtX3NlcXVlbmNlSW5kZXhfID49IG1fc2VxdWVuY2VfLmxlbmd0aCgpKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGJvb2xlYW4gcXVvdGVkID0gZmFsc2U7CisgICAgICAgIGJvb2xlYW4gcXVvdGVkc2luZ2xlID0gZmFsc2U7CisgICAgICAgIGJvb2xlYW4gZG9uZSA9IGZhbHNlOworICAgICAgICBpbnQgaSA9IG1fc2VxdWVuY2VJbmRleF87CisgICAgICAgIGludCBvZmZzZXQgPSAwOworICAgICAgICBtX3NvdXJjZV8gPSBtX3RhcmdldF8udG9TdHJpbmcoKTsKKyAgICAgICAgbV9yZWxhdGlvbl8gPSBtX25leHRSZWxhdGlvbl87CisgICAgICAgIG1fdGFyZ2V0Xy5kZWxldGUoMCwgbV90YXJnZXRfLmxlbmd0aCgpKTsKKyAgICAgICAgd2hpbGUgKGkgPCBtX3NlcXVlbmNlXy5sZW5ndGgoKSAmJiAhZG9uZSkgeworICAgICAgICAgICAgaW50IGNoID0gVVRGMTYuY2hhckF0KG1fc2VxdWVuY2VfLCBpKTsKKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzU3VwcGxlbWVudGFyeShjaCkpIHsKKyAgICAgICAgICAgICAgICBpICs9IDI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpICsrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFxdW90ZWQpIHsKKyAgICAgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc1doaXRlc3BhY2UoY2gpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGNoKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMHgwMDNDIDogLy8gPAorICAgICAgICAgICAgICAgICAgICAgICAgbV9uZXh0UmVsYXRpb25fID0gLTE7CisgICAgICAgICAgICAgICAgICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDB4MDAzRCA6IC8vID0gCisgICAgICAgICAgICAgICAgICAgICAgICBtX25leHRSZWxhdGlvbl8gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgZG9uZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAweDAwM0UgOiAvLyA+CisgICAgICAgICAgICAgICAgICAgICAgICBtX25leHRSZWxhdGlvbl8gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgZG9uZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAweDAwMjcgOiAvLyAnIHZlcnkgYmFzaWMgcXVvdGluZworICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHF1b3RlZHNpbmdsZSA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMHgwMDVjIDogLy8gXCBzaW5nbGUgcXVvdGUKKyAgICAgICAgICAgICAgICAgICAgICAgIHF1b3RlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBxdW90ZWRzaW5nbGUgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5pbnNlcnQobV90YXJnZXRfLCBvZmZzZXQsIGNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzU3VwcGxlbWVudGFyeShjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gMjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgaWYgKGNoID09IDB4MDAyNykgeworICAgICAgICAgICAgICAgICAgICAgICAgICBxdW90ZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5pbnNlcnQobV90YXJnZXRfLCBvZmZzZXQsIGNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNTdXBwbGVtZW50YXJ5KGNoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDI7CisgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKys7CisgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgaWYgKHF1b3RlZHNpbmdsZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICBxdW90ZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgICBpZiAocXVvdGVkID09IHRydWUpIHsKKyAgICAgICAgICAgICAgZXJybG4oIlF1b3RlIGluIHNlcXVlbmNlIG5vdCBjbG9zZWQhIik7CisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgICBtX3NlcXVlbmNlSW5kZXhfID0gaTsKKyAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGRvVGVzdFZhcmlhbnQoUnVsZUJhc2VkQ29sbGF0b3IgbXlDb2xsYXRpb24sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQsIGludCByZXN1bHQpCisgICAgeworICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCAgPSBteUNvbGxhdGlvbi5jb21wYXJlKHNvdXJjZSwgdGFyZ2V0KTsKKyAgICAgICAgaWYgKGNvbXBhcmVSZXN1bHQgIT0gcmVzdWx0KSB7CisgICAgICAgICAgICBlcnJsbigiQ29tcGFyaW5nIFwiIiArIFV0aWxpdHkuaGV4KHNvdXJjZSkgKyAiXCIgd2l0aCBcIiIgCisgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuaGV4KHRhcmdldCkgKyAiXCIgZXhwZWN0ZWQgIiArIHJlc3VsdCAKKyAgICAgICAgICAgICAgICAgICsgIiBidXQgZ290ICIgKyBjb21wYXJlUmVzdWx0KTsKKyAgICAgICAgfQorICAgICAgICBDb2xsYXRpb25LZXkgc3NrID0gbXlDb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHNvdXJjZSk7CisgICAgICAgIENvbGxhdGlvbktleSB0c2sgPSBteUNvbGxhdGlvbi5nZXRDb2xsYXRpb25LZXkodGFyZ2V0KTsKKyAgICAgICAgY29tcGFyZVJlc3VsdCA9IHNzay5jb21wYXJlVG8odHNrKTsKKyAgICAgICAgaWYgKGNvbXBhcmVSZXN1bHQgIT0gcmVzdWx0KSB7CisgICAgICAgICAgICBlcnJsbigiQ29tcGFyaW5nIHNvcnRrZXlzIG9mIFwiIiArIFV0aWxpdHkuaGV4KHNvdXJjZSkgKyAiXCIgd2l0aCBcIiIgCisgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuaGV4KHRhcmdldCkgKyAiXCIgZXhwZWN0ZWQgIiArIHJlc3VsdCAKKyAgICAgICAgICAgICAgICAgICsgIiBidXQgZ290ICIgKyBjb21wYXJlUmVzdWx0KTsKKyAgICAgICAgfSAKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGRvVGVzdChSdWxlQmFzZWRDb2xsYXRvciBteUNvbGxhdGlvbiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCwgaW50IHJlc3VsdCkKKyAgICB7CisgICAgICAgIGRvVGVzdFZhcmlhbnQobXlDb2xsYXRpb24sIHNvdXJjZSwgdGFyZ2V0LCByZXN1bHQpOworICAgICAgICBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgICAgICAgIGRvVGVzdFZhcmlhbnQobXlDb2xsYXRpb24sIHRhcmdldCwgc291cmNlLCByZXN1bHQpOyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHJlc3VsdCA8IDApIHsKKyAgICAgICAgICAgIGRvVGVzdFZhcmlhbnQobXlDb2xsYXRpb24sIHRhcmdldCwgc291cmNlLCAxKTsgCisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBkb1Rlc3RWYXJpYW50KG15Q29sbGF0aW9uLCB0YXJnZXQsIHNvdXJjZSwgLTEpOyAKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25UZXN0RGF0YS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvblRlc3REYXRhLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmI3NTlmNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25UZXN0RGF0YS5qYXZhCkBAIC0wLDAgKzEsNDcwIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0F0dGljL0NvbGxhdGlvblRlc3REYXRhLmphdmEsdiAkCisgKiAkRGF0ZTogMjAwMi8wOC8xMyAyMTo1NToyNSAkCisgKiAkUmV2aXNpb246IDEuMyAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgQ29sbGF0aW9uVGVzdERhdGEgZXh0ZW5kcyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUgeworCisgICAgcHVibGljIENvbGxhdGlvblRlc3REYXRhKCkgeworICAgICAgICAgIHN1cGVyLmNvbnRlbnRzID0gZGF0YTsKKyAgICB9CisgICAgc3RhdGljIGZpbmFsIE9iamVjdFtdW10gZGF0YSA9IG5ldyBPYmplY3RbXVtdIHsgCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAiSW5mbyIsCisgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEZXNjcmlwdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoaXMgaXMgbG9jYWxlIGJhc2VkIGNvbGxhdGlvbiB0ZXN0IGZvciBEYW5pc2giLAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSGVhZGVycyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZXF1ZW5jZSIsCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTG9uZ0Rlc2NyaXB0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIGZvbGxvd2luZyBlbnRyaWVzIGFyZSBzZXBhcmF0ZSB0ZXN0cyAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29udGFpbmluZyB0ZXN0IGRhdGEgZm9yIHZhcmlvdXMgbG9jYWxlcy4iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRWFjaCBlbnRyeSBoYXMgdGhlIGZvbGxvd2luZyBmaWVsZHM6IFRlc3QiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTG9jYWxlIC0gdGhlIGxvY2FsZSB0aGF0IHdlIHNob3VsZCBpbnN0YW4iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGlhdGUgY29sbGF0b3Igd2l0aC5Bcmd1bWVudFN0cmVuZ3RoIC0gc3QiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVuZ3RoIG9mIGNvbGxhdG9yVGVzdERhdGEgLSBzZXQgb2YgdGVzdCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY2FzZXMsIHdoaWNoIGFyZSBzZXF1ZW5jZXMgb2Ygc3RyaW5ncyB0aGEiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAidCB3aWxsIGJlIHBhcnNlZFNlcXVlbmNlcyBtdXN0IG5vdCBjaGFuZ2UiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIHRoZSBzaWduIG9mIHJlbGF0aW9uLCBpLmUuIHdlIGNhbiBvbmx5IGgiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXZlIDwgYW5kID0gb3I+IGFuZCA9IGluIHNpbmdsZSBzZXF1ZW5jZS4iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIENhbm5vdCBtaXggPCBhbmQgPiBpbiB0aGUgc2FtZSBzZXF1ZW5jZS4iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIFdoaXRlc3BhY2UgaXNpcyBpZ25vcmVkIHVubGVzcyBxdW90ZWQuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJUZXN0RGF0YSIsCisgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUZXN0Q0lnbm9yYWJsZUNvbnRyYWN0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNhc2VzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5qaXZhPW5cdUQ4MzRcdURENjVqaSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhPW5cdUQ4MzRcdURENzlqaXZhPSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5cdTAwMDBcdTAwMDBcdTAwMDBqaSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhPW5cdTAwMDBqaXZhPW5cdUQ4MDAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJqaXZhPW5cdUZGRkVqaXZhIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsanViYXY9bFx1MDAwMGp1YmF2PWwiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdUQ4MzRcdURENzlqdWJhdj1sXHUwMDAwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMDAwXHUwMDAwanViYXY9bFx1RDgwMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImp1YmF2PWxcdUZGRkVqdWJhdj0iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxqdWJhdj1MXHUwMDAwanViYXY9TCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1RDgzNFx1REQ3OWp1YmF2PUxcdTAwMDAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMDBcdTAwMDBqdWJhdj1MXHVEODAwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAianViYXY9TFx1RkZGRWp1YmF2IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbmZvIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRlc2NyaXB0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNoZWNrcyB3aGV0aGVyIGNvbXBsZXRlbHkiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBpZ25vcmFibGUgY29kZSBwb2ludHMgYXIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImUgc2tpcHBlZCBpbiBjb250cmFjdGlvbnMiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU2V0dGluZ3MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVzdExvY2FsZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2giLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSdWxlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJiBMIDwgbGosIExqIDw8PCBMSiYgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTiA8IG5qLCBOaiA8PDwgTkogIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUZXN0Q0lnbm9yYWJsZVByZWZpeCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDYXNlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTMwQTFcdTMwRkM9IFx1MzBBMVx1REI0MCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1REMzMFx1MzBGQz0gXHUzMEExXHVEODAwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUzMEZDPSBcdTMwQTFcdUZGRkVcdTMwRkMiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI9IFx1MzBBMVx1RDgzNFx1REQ3OVx1MzBGQyIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj0gXHUzMEExXHUwMDAwXHUwMDAwXHUwMDAwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUzMEZDPSBcdTMwQTFcdTAwMDBcdTMwRkMiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI9IFx1MzBBMVx1MzBGQz0gXHUzMEExIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMDAwXHUwNTlBXHUzMEZDPSBcdTMwQTEiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTMwRkMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbmZvIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRlc2NyaXB0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNoZWNrcyB3aGV0aGVyIGNvbXBsZXRlbHkiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBpZ25vcmFibGUgY29kZSBwb2ludHMgYXIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImUgc2tpcHBlZCBpbiBwcmVmaXggcHJvY2UiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNzaW5nLiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTZXR0aW5ncyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUZXN0TG9jYWxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJqYSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVzdE5TaGlmdGVkSWdub3JhYmxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNhc2VzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImEnICdiPEEnICdiPGEnICdcdTAzMDEiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJiPEEnICdcdTAzMDFiPGEnICdcdTAzMDAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJiPEEnICdcdTAzMDBiPGFfYjxBX2IiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8YV9cdTAzMDFiPEFfXHUwMzAxYjwiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhX1x1MDMwMGI8QV9cdTAzMDBiPGEiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAzMDFiPEFcdTAzMDFiPGFcdTAzMDAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJiPEFcdTAzMDBiPCIsCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbmZvIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRlc2NyaXB0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5ldyBVQ0Egc3RhdGVzIHRoYXQgcHJpbWEiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJ5IGlnbm9yYWJsZXMgc2hvdWxkIGJlIGMiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9tcGxldGVseSBpZ25vcmFibGUgd2hlbiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvbGxvd2luZyBhIHNoaWZ0ZWQgY29kZSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvaW50LiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTZXR0aW5ncyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBcmd1bWVudHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlthbHRlcm5hdGUgbm9uLWlnbm9yYSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJsZV1bc3RyZW5ndGggM10iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVzdExvY2FsZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicm9vdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVzdFNhZmVTdXJyb2dhdGVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNhc2VzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImE8eFx1RDgwMFx1REMwMGIiLAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW5mbyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEZXNjcmlwdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJdCB0dXJuZWQgb3V0IHRoYXQgc3Vycm9nIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhdGVzIHdlcmUgbm90IHNraXBwZWQgcHJvIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwZXJseSB3aGVuIGl0ZXJhdGluZyBiYWNrIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3YXJkcyBpZiB0aGV5IHdlcmUgaW4gdGhlIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgbWlkZGxlIG9mIGEgY29udHJhY3Rpb24uIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgVGhpcyB0ZXN0IGFzc3VyZXMgdGhhdCB0IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoaXMgaXMgZml4ZWQuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNldHRpbmdzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJ1bGVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICImYSA8IHhcdUQ4MDBcdURDMDBiIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUZXN0U2hpZnRlZElnbm9yYWJsZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDYXNlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhJyAnYj1hJyAnXHUwMzAwYj1hJyAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICInXHUwMzAxYjxhX2I9YV9cdTAzMDAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJiPWFfXHUwMzAxYjxBJyAnYj1BJyAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICInXHUwMzAwYj1BJyAnXHUwMzAxYjwiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBX2I9QV9cdTAzMDBiPUFfXHUwMzAxIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYjxhXHUwMzAxYjxBXHUwMzAxYjxhIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMzAwYjxBXHUwMzAwYiIsCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbmZvIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRlc2NyaXB0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5ldyBVQ0Egc3RhdGVzIHRoYXQgcHJpbWEiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJ5IGlnbm9yYWJsZXMgc2hvdWxkIGJlIGMiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9tcGxldGVseSBpZ25vcmFibGUgd2hlbiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvbGxvd2luZyBhIHNoaWZ0ZWQgY29kZSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvaW50LiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTZXR0aW5ncyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBcmd1bWVudHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlthbHRlcm5hdGUgc2hpZnRlZF1bcyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRyZW5ndGggNF0iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVzdExvY2FsZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicm9vdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAiZGFfVGVzdFByaW1hcnkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUZXN0UHJpbWFyeSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDYXNlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMdmk9THdpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMXHUwMEU0dmk8TFx1MDBGNndpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMXHUwMEZDYmVjaz1MeWJlY2siLAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW5mbyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEZXNjcmlwdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUaGlzIHRlc3QgZ29lcyB0aHJvdWdoIHByIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbWFyeSBzdHJlbmd0aCBjYXNlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTZXR0aW5ncyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBcmd1bWVudHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIltzdHJlbmd0aCAxXSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUZXN0TG9jYWxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkYSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAiZGFfVGVzdFRlcnRpYXJ5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVzdFRlcnRpYXJ5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNhc2VzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkx1YzxsdWNrIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsdWNrPExcdTAwRkNiZWNrIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMXHUwMEZDYmVjaz5seWJlY2siLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxcdTAwRTR2aTxMXHUwMEY2d2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxcdTAwRjZ3dzxtYXN0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBL1M8QU5EUkU8QU5EUlx1MDBDOTwiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBTkRSRUFTPEFTPENBPFx1MDBDN0EiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8Q0I8XHUwMEM3QzxELlMuQi48REEiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8REI8RFNCPERTQzxcdTAwRDBBPFx1MDBEMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkM8RUtTVFJBX0FSQkVKREU8RUtTVCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJBQlVEMDxIXHUwMEQ4U1Q8SEFBRyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxIXHUwMEM1TkRCT0c8SEFBTkRWXHUwMEM2IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUktTQkFOS0VOPGthcmw8S2FybDwnIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTklFTFMgSlx1MDBEOFJHRU4nPE5JIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRUxTLUpcdTAwRDhSR0VOPE5JRUxTIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRU48J1JcdTAwQzlFLCBBJzwnUkVFIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLCBCJzwnUlx1MDBDOUUsIEwnPCdSIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRUUsIFYnPCdTQ0hZVFQsIEInPCdTIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ0hZVFQsIEgnPCdTQ0hcdTAwRENUIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVCwgSCc8J1NDSFlUVCwgTCc8J1NDIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSFx1MDBEQ1RULCBNJzxTUzxcdTAwREYiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8U1NBPCdTVE9SRSBWSUxETU9TRSciICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8U1RPUkVLXHUwMEM2UjA8J1NUT1IiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNIFBFVEVSU0VOJzxTVE9STUxZPFQiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJIT1JWQUxEPFRIT1JWQVJEVVI8VEgiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJZR0VTRU48XHUwMEZFT1JWQVJcdTAwRDAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVUjwnVkVTVEVSR1x1MDBDNVJELCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBJzwnVkVTVEVSR0FBUkQsIEEnPCciICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJWRVNURVJHXHUwMEM1UkQsIEInPFx1MDBDNiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkJMRTxcdTAwQzRCTEU8XHUwMEQ4QiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVSRzxcdTAwRDZCRVJHIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbmRlcmU8Y2hhcXVlPGNoZW1pbjwiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb3RlPGNvdFx1MDBFOTxjXHUwMEY0IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGU8Y1x1MDBGNHRcdTAwRTk8XHUwMTBEIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidVx1MDEwRFx1MDExM3Q8Q3plY2g8IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaGlcdTAxNjFhPGlyZGlzY2g8bGllIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPGxpcmU8bGxhbWE8bFx1MDBGNXVnIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPGxcdTAwRjJ6YTxsdVx1MDEwRDxsIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidWNrPExcdTAwRkNiZWNrPGx5ZTxsIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMEU0dmk8TFx1MDBGNndlbjxtIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMEUwXHUwMTYxdGE8bVx1MDBFRSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInI8bXluZGlnPE1cdTAwRTRubmVyPCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1cdTAwRjZjaHRlbjxwaVx1MDBGMSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImE8cGludDxweWxvbjxcdTAxNjFcdTAwRTAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyYW48c2F2b2lyPFx1MDE2MGVyYlx1MDE2QiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJhPFNpZXRsYTxcdTAxNUJsdWI8cyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVidGxlPHN5bWJvbDxzXHUwMEU0bSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRsaWNoPHdhZmZsZTx2ZXJrZWhydCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjx3b29kPHZveDx2XHUwMEU0Z2E8eSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImVuPHl1YW48eXVjY2E8XHUwMTdFYSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImw8XHUwMTdFZW5hPFx1MDE3RGVuXHUwMTEzIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmE8em9vMDxadmllZHJpamE8Wlx1MDBGQyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJpY2g8enlzazA8XHUwMEU0bmRlciIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImUiLAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW5mbyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEZXNjcmlwdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUaGlzIHRlc3QgZ29lcyB0aHJvdWdoIHRlIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJydGlhcnkgc3RyZW5ndGggY2FzZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU2V0dGluZ3MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQXJndW1lbnRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJbc3RyZW5ndGggM10iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVzdExvY2FsZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgfSwKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvblRoYWlUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uVGhhaVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZmQ4Yjg2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvblRoYWlUZXN0LmphdmEKQEAgLTAsMCArMSwyOTUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogJFNvdXJjZTogCisgKiAkRGF0ZTogCisgKiAkUmV2aXNpb246IAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2Mi4xIDogY29sbGF0ZS9Db2xsYXRpb25SZWdyZXNzaW9uVGVzdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3QvcmVnY29sbC5jcHAKKyAqKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3I7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEuaW8uKjsKKworcHVibGljIGNsYXNzIENvbGxhdGlvblRoYWlUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIAorICAgIGZpbmFsIGludCBNQVhfRkFJTFVSRVNfVE9fU0hPVyA9IDg7CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBDb2xsYXRpb25UaGFpVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogT2RkIGNvcm5lciBjb25kaXRpb25zIHRha2VuIGZyb20gIkhvdyB0byBTb3J0IFRoYWkgV2l0aG91dCBSZXdyaXRpbmcgU29ydCIsCisgICAgICogYnkgRG91ZyBDb29wZXIsIGh0dHA6Ly9zZWFzcmMudGgubmV0L3BhcGVyL3RoYWlzb3J0LnppcAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDb3JuZXJDYXNlcygpIHsKKyAgICAgICAgU3RyaW5nIFRFU1RTW10gPSB7CisgICAgICAgICAgICAvLyBTaG9ydGVyIHdvcmRzIHByZWNlZGUgbG9uZ2VyCisgICAgICAgICAgICAiXHUwZTAxIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjwiLCAgICAiXHUwZTAxXHUwZTAxIiwKKyAgICAKKyAgICAgICAgICAgIC8vIFRvbmUgbWFya3MgYXJlIGNvbnNpZGVyZWQgYWZ0ZXIgbGV0dGVycyAoaS5lLiBhcmUgcHJpbWFyeSBpZ25vcmFibGUpCisgICAgICAgICAgICAiXHUwZTAxXHUwZTMyIiwgICAgICAgICAgICAgICAgICAgICAgICAiPCIsICAgICJcdTBlMDFcdTBlNDlcdTBlMzIiLAorICAgIAorICAgICAgICAgICAgLy8gZGl0dG8gZm9yIG90aGVyIG92ZXItbWFya3MKKyAgICAgICAgICAgICJcdTBlMDFcdTBlMzIiLCAgICAgICAgICAgICAgICAgICAgICAgICI8IiwgICAgIlx1MGUwMVx1MGUzMlx1MGU0YyIsCisgICAgCisgICAgICAgICAgICAvLyBjb21tb25seSB1c2VkIG1hcmstaW4tY29udGV4dCBvcmRlci4KKyAgICAgICAgICAgIC8vIEluIGVmZmVjdCwgbWFya3MgYXJlIHNvcnRlZCBhZnRlciBlYWNoIHN5bGxhYmxlLgorICAgICAgICAgICAgIlx1MGUwMVx1MGUzMlx1MGUwMVx1MGU0OVx1MGUzMiIsICAgIjwiLCAgICAiXHUwZTAxXHUwZTQ4XHUwZTMyXHUwZTAxXHUwZTQ5XHUwZTMyIiwKKyAgICAKKyAgICAgICAgICAgIC8vIEh5cGhlbnMgYW5kIG90aGVyIHB1bmN0dWF0aW9uIGZvbGxvdyB3aGl0ZXNwYWNlIGJ1dCBjb21lIGJlZm9yZSBsZXR0ZXJzCisgICAgICAgICAgICAiXHUwZTAxXHUwZTMyIiwgICAgICAgICAgICAgICAgICAgICAgICAiPCIsICAgICJcdTBlMDFcdTBlMzItIiwKKyAgICAgICAgICAgICJcdTBlMDFcdTBlMzItIiwgICAgICAgICAgICAgICAgICAgICAgICI8IiwgICAgIlx1MGUwMVx1MGUzMlx1MGUwMVx1MGUzMiIsCisgICAgCisgICAgICAgICAgICAvLyBEb3VibGVyIGZvbGxvd3MgYW4gaW5kZW50aWNhbCB3b3JkIHdpdGhvdXQgdGhlIGRvdWJsZXIKKyAgICAgICAgICAgICJcdTBlMDFcdTBlMzIiLCAgICAgICAgICAgICAgICAgICAgICAgICI8IiwgICAgIlx1MGUwMVx1MGUzMlx1MGU0NiIsCisgICAgICAgICAgICAiXHUwZTAxXHUwZTMyXHUwZTQ2IiwgICAgICAgICAgICAgICAgICI8IiwgICAgIlx1MGUwMVx1MGUzMlx1MGUwMVx1MGUzMiIsCisgICAgCisgICAgICAgICAgICAvLyBcdTBlNDUgYWZ0ZXIgZWl0aGVyIFx1MGUyNCBvciBcdTBlMjYgaXMgdHJlYXRlZCBhcyBhIHNpbmdsZQorICAgICAgICAgICAgLy8gY29tYmluaW5nIGNoYXJhY3Rlciwgc2ltaWxhciB0byAiYyA8IGNoIiBpbiB0cmFkaXRpb25hbCBzcGFuaXNoLgorICAgICAgICAgICAgLy8gVE9ETzogYmVlZiB1cCB0aGlzIGNhc2UKKyAgICAgICAgICAgICJcdTBlMjRcdTBlMjlcdTBlMzUiLCAgICAgICAgICAgICAgICAgIjwiLCAgICAiXHUwZTI0XHUwZTQ1XHUwZTI5XHUwZTM1IiwKKyAgICAgICAgICAgICJcdTBlMjZcdTBlMjlcdTBlMzUiLCAgICAgICAgICAgICAgICAgIjwiLCAgICAiXHUwZTI2XHUwZTQ1XHUwZTI5XHUwZTM1IiwKKyAgICAKKyAgICAgICAgICAgIC8vIFZvd2VscyByZW9yZGVyLCBzaG91bGQgY29tcGFyZSBcdTBlMmQgYW5kIFx1MGUzNAorICAgICAgICAgICAgIlx1MGU0MFx1MGUwMVx1MGUyZCIsICAgICAgICAgICAgICAgICAiPCIsICAgICJcdTBlNDBcdTBlMDFcdTBlMzQiLAorICAgIAorICAgICAgICAgICAgLy8gVG9uZXMgYXJlIGNvbXBhcmVkIGFmdGVyIHRoZSByZXN0IG9mIHRoZSB3b3JkIChlLmcuIHByaW1hcnkgaWdub3JhYmxlKQorICAgICAgICAgICAgIlx1MGUwMVx1MGUzMlx1MGUwMVx1MGU0OFx1MGUzMiIsICAgIjwiLCAgICAiXHUwZTAxXHUwZTQ5XHUwZTMyXHUwZTAxXHUwZTMyIiwKKyAgICAKKyAgICAgICAgICAgIC8vIFBlcmlvZHMgYXJlIGlnbm9yZWQgZW50aXJlbHkKKyAgICAgICAgICAgICJcdTBlMDEuXHUwZTAxLiIsICAgICAgICAgICAgICAgICAgICAgICI8IiwgICAgIlx1MGUwMVx1MGUzMiIsCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBDb2xsYXRvciBjb2xsID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbGwgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJ0aCIsICJUSCIsICIiKSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3I6IGNvdWxkIG5vdCBjb25zdHJ1Y3QgVGhhaSBjb2xsYXRvciIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGNvbXBhcmVBcnJheShjb2xsLCBURVNUUyk7IAorICAgIH0KKyAgICAKKyAgICB2b2lkIGNvbXBhcmVBcnJheShDb2xsYXRvciBjLCBTdHJpbmdbXSB0ZXN0cykgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgaSArPSAzKSB7CisgICAgICAgICAgICBpbnQgZXhwZWN0ID0gMDsKKyAgICAgICAgICAgIGlmICh0ZXN0c1tpKzFdLmVxdWFscygiPCIpKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0ID0gLTE7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHRlc3RzW2krMV0uZXF1YWxzKCI+IikpIHsKKyAgICAgICAgICAgICAgICBleHBlY3QgPSAxOworICAgICAgICAgICAgfSBlbHNlIGlmICh0ZXN0c1tpKzFdLmVxdWFscygiPSIpKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0ID0gMDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gZXhwZWN0ID0gSW50ZWdlci5kZWNvZGUodGVzdHNbaSsxXSkuaW50VmFsdWUoKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3I6IHVua25vd24gb3BlcmF0b3IgIiArIHRlc3RzW2krMV0pOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN0cmluZyBzMSA9IHRlc3RzW2ldOworICAgICAgICAgICAgU3RyaW5nIHMyID0gdGVzdHNbaSsyXTsKKyAgICAgICAgICAgIGludCByZXN1bHQgPSBjLmNvbXBhcmUoczEsIHMyKTsKKyAgICAgICAgICAgIGlmIChzaWduKHJlc3VsdCkgIT0gc2lnbihleHBlY3QpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIiIgKyBpLzMgKyAiOiBjb21wYXJlKCIgKyBzMQorICAgICAgICAgICAgICAgICAgICAgICsgIiAsICIgKyBzMiAgKyAiKSBnb3QgIiArIHJlc3VsdCArICI7IGV4cGVjdGVkICIgKyBleHBlY3QpOworICAgIAorICAgICAgICAgICAgICAgIENvbGxhdGlvbktleSBrMSwgazI7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgazEgPSBjLmdldENvbGxhdGlvbktleShzMSk7CisgICAgICAgICAgICAgICAgICAgIGsyID0gYy5nZXRDb2xsYXRpb25LZXkoczIpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBnZXRDb2xsYXRpb25LZXkgcmV0dXJuZWQgIik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZXJybG4oIiAga2V5MTogIiArIHByZXR0aWZ5KGsxKSk7CisgICAgICAgICAgICAgICAgZXJybG4oIiAga2V5MjogIiArIHByZXR0aWZ5KGsyKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIENvbGxhdG9yLmNvbXBhcmUgd29ya2VkIE9LOyBub3cgdHJ5IHRoZSBjb2xsYXRpb24ga2V5cworICAgICAgICAgICAgICAgIENvbGxhdGlvbktleSBrMSwgazI7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgazEgPSBjLmdldENvbGxhdGlvbktleShzMSk7CisgICAgICAgICAgICAgICAgICAgIGsyID0gYy5nZXRDb2xsYXRpb25LZXkoczIpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKGUpOworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogZ2V0Q29sbGF0aW9uS2V5IHJldHVybmVkICIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgIHJlc3VsdCA9IGsxLmNvbXBhcmVUbyhrMik7CisgICAgICAgICAgICAgICAgaWYgKHNpZ24ocmVzdWx0KSAhPSBzaWduKGV4cGVjdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIiIgKyBpLzMgKyAiOiBrZXkoIiArIHMxCisgICAgICAgICAgICAgICAgICAgICAgICAgICsgIikuY29tcGFyZVRvKGtleSgiICsgczIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiKSkgZ290ICIgKyByZXN1bHQgKyAiOyBleHBlY3RlZCAiICsgZXhwZWN0KTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCIgICIgKyBwcmV0dGlmeShrMSkgKyAiIHZzLiAiICsgcHJldHRpZnkoazIpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgaW50IHNpZ24oaW50IGkgKSB7CisgICAgICAgIGlmIChpIDwgMCkgcmV0dXJuIC0xOworICAgICAgICBpZiAoaSA+IDApIHJldHVybiAxOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmVhZCB0aGUgZXh0ZXJuYWwgZGljdGlvbmFyeSBmaWxlLCB3aGljaCBpcyBhbHJlYWR5IGluIHByb3BlcgorICAgICAqIHNvcnRlZCBvcmRlciwgYW5kIGNvbmZpcm0gdGhhdCB0aGUgY29sbGF0b3IgY29tcGFyZXMgZWFjaCBsaW5lIGFzCisgICAgICogcHJlY2VkaW5nIHRoZSBmb2xsb3dpbmcgbGluZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RGljdGlvbmFyeSgpIHsKKyAgICAgICAgQ29sbGF0b3IgY29sbCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgidGgiLCAiVEgiLCAiIikpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBjb3VsZCBub3QgY29uc3RydWN0IFRoYWkgY29sbGF0b3IiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAKKyAgICAgICAgLy8gUmVhZCBpbiBhIGRpY3Rpb25hcnkgb2YgVGhhaSB3b3JkcworICAgICAgICAgICAgICAgRGF0YUlucHV0U3RyZWFtIGluID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIGZpbGVOYW1lID0gInRoMTgwNTcudHh0IjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGluID0gbmV3IERhdGFJbnB1dFN0cmVhbShuZXcgRmlsZUlucHV0U3RyZWFtKFRlc3RVdGlsLmdldERhdGFGaWxlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVOYW1lKSkpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpbi5jbG9zZSgpOworICAgICAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gaW9lKSB7fQorICAgICAgICAgICAgZXJybG4oIkVycm9yOiBjb3VsZCBub3Qgb3BlbiB0ZXN0IGZpbGU6ICIgKyBmaWxlTmFtZSk7CisgICAgICAgICAgICByZXR1cm47ICAgICAgICAKKyAgICAgICAgfQorICAgIAorICAgICAgICAvLworICAgICAgICAvLyBMb29wIHRocm91Z2ggZWFjaCB3b3JkIGluIHRoZSBkaWN0aW9uYXJ5IGFuZCBjb21wYXJlIGl0IHRvIHRoZSBwcmV2aW91cworICAgICAgICAvLyB3b3JkLiAgVGhleSBzaG91bGQgYmUgaW4gc29ydGVkIG9yZGVyLgorICAgICAgICAvLworICAgICAgICBTdHJpbmcgbGFzdFdvcmQgPSAiIjsKKyAgICAgICAgaW50IGxpbmUgPSAwOworICAgICAgICBpbnQgZmFpbGVkID0gMDsKKyAgICAgICAgaW50IHdvcmRDb3VudCA9IDA7CisgICAgICAgIFN0cmluZyB3b3JkID0gcmVhZExpbmUoaW4pOworICAgICAgICB3aGlsZSAod29yZCAhPSBudWxsKSB7CisgICAgICAgICAgICBsaW5lKys7CisgICAgCisgICAgICAgICAgICAvLyBTa2lwIGNvbW1lbnRzIGFuZCBibGFuayBsaW5lcworICAgICAgICAgICAgaWYgKHdvcmQubGVuZ3RoKCkgPT0gMCB8fCB3b3JkLmNoYXJBdCgwKSA9PSAweDIzKSB7CisgICAgICAgICAgICAgICAgd29yZCA9IHJlYWRMaW5lKGluKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8vIFNob3cgdGhlIGZpcnN0IDggd29yZHMgYmVpbmcgY29tcGFyZWQsIHNvIHdlIGNhbiBzZWUgd2hhdCdzIGhhcHBlbmluZworICAgICAgICAgICAgKyt3b3JkQ291bnQ7CisgICAgICAgICAgICBpZiAod29yZENvdW50IDw9IDgpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiV29yZCAiICsgd29yZENvdW50ICsgIjogIiArIHdvcmQpOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgaWYgKGxhc3RXb3JkLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgIGludCByZXN1bHQgPSAwOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNvbGwuY29tcGFyZShsYXN0V29yZCwgd29yZCk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oImxpbmUiICsgbGluZSArICI6IiArIHdvcmQpOworICAgICAgICAgICAgICAgICAgICBsb2dsbigibGFzdFdvcmQgPSAiICsgbGFzdFdvcmQpOworICAgICAgICAgICAgICAgICAgICBsb2dsbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZmFpbGVkKys7CisgICAgICAgICAgICAgICAgICAgIGlmIChNQVhfRkFJTFVSRVNfVE9fU0hPVyA8IDAgfHwgZmFpbGVkIDw9IE1BWF9GQUlMVVJFU19UT19TSE9XKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbXNnID0gIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGxpbmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBjb21wYXJlKCIgKyBsYXN0V29yZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiLCAiICsgd29yZCArICIpIHJldHVybmVkICIgKyByZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiwgZXhwZWN0ZWQgLTFcbiI7CisgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRpb25LZXkgazEsIGsyOworICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrMSA9IGNvbGwuZ2V0Q29sbGF0aW9uS2V5KGxhc3RXb3JkKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrMiA9IGNvbGwuZ2V0Q29sbGF0aW9uS2V5KHdvcmQpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogZ2V0Q29sbGF0aW9uS2V5IHJldHVybmVkICIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG1zZyArPSAia2V5MTogIiArIHByZXR0aWZ5KGsxKSArICJcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgImtleTI6ICIgKyBwcmV0dGlmeShrMik7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbihtc2cpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgbGFzdFdvcmQgPSB3b3JkOworICAgICAgICAgICAgd29yZCA9IHJlYWRMaW5lKGluKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpZiAoZmFpbGVkICE9IDApIHsKKyAgICAgICAgICAgIGlmIChmYWlsZWQgPiBNQVhfRkFJTFVSRVNfVE9fU0hPVykgeworICAgICAgICAgICAgICAgIGVycmxuKCJUb28gbWFueSBmYWlsdXJlczsgb25seSB0aGUgZmlyc3QgIiArCisgICAgICAgICAgICAgICAgICAgICAgTUFYX0ZBSUxVUkVTX1RPX1NIT1cgKyAiIGZhaWx1cmVzIHdlcmUgc2hvd24iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVycmxuKCJTdW1tYXJ5OiAiICsgZmFpbGVkICsgIiBvZiAiICsgKGxpbmUgLSAxKSArCisgICAgICAgICAgICAgICAgICAiIGNvbXBhcmlzb25zIGZhaWxlZCIpOworICAgICAgICB9CisgICAgCisgICAgICAgIGxvZ2xuKCJXb3JkcyBjaGVja2VkOiAiICsgd29yZENvdW50KTsKKyAgICB9CisgICAgCisgICAgU3RyaW5nIHJlYWRMaW5lKERhdGFJbnB1dFN0cmVhbSBpbikgeworICAgICAgICBieXRlW10gYnl0ZXMgPSBuZXcgYnl0ZVsxMjhdOworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIGJ5dGUgYyA9IDA7CisgICAgICAgIHdoaWxlIChpIDwgMTI4KSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGMgPSBpbi5yZWFkQnl0ZSgpOworICAgICAgICAgICAgfSBjYXRjaCAoRU9GRXhjZXB0aW9uIGVlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkNhbm5vdCByZWFkIGxpbmUgZnJvbSB0aGUgZmlsZSIpOworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGMgPT0gMHhEIHx8IGMgPT0gMHhBKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgYyA9IGluLnJlYWRCeXRlKCk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoRU9GRXhjZXB0aW9uIGVlKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkNhbm5vdCByZWFkIGxpbmUgZnJvbSB0aGUgZmlsZSIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBieXRlc1tpKytdID0gYzsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgU3RyaW5nIGxpbmUgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgbGluZSA9IG5ldyBTdHJpbmcoYnl0ZXMsIDAsIGksICJVVEYtOCIpOworICAgICAgICB9IGNhdGNoIChVbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbGluZTsKKyAgICB9CisgICAgCisgICAgU3RyaW5nIHByZXR0aWZ5KENvbGxhdGlvbktleSBzb3VyY2VLZXkpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGJ5dGVbXSBieXRlcz0gc291cmNlS2V5LnRvQnl0ZUFycmF5KCk7CisgICAgICAgIFN0cmluZyB0YXJnZXQgPSAiWyI7CisgICAgCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdGFyZ2V0ICs9IEludGVnZXIudG9IZXhTdHJpbmcoYnl0ZXNbaV0pOworICAgICAgICAgICAgdGFyZ2V0ICs9ICIgIjsKKyAgICAgICAgfQorICAgICAgICB0YXJnZXQgKz0gIl0iOworICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uVHVya2lzaFRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25UdXJraXNoVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVlZWE3NmYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uVHVya2lzaFRlc3QuamF2YQpAQCAtMCwwICsxLDE5NSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAkU291cmNlOiAKKyAqICREYXRlOiAKKyAqICRSZXZpc2lvbjogCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYyLjEgOiBDb2xsYXRlL0NvbGxhdGlvblR1cmtpc2hUZXN0CisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC90cmNvbGwuY3BwCisgKiovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yOworIAoraW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisgCitwdWJsaWMgY2xhc3MgQ29sbGF0aW9uVHVya2lzaFRlc3QgZXh0ZW5kcyBUZXN0Rm13a3sKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBuZXcgQ29sbGF0aW9uVHVya2lzaFRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RTb3VyY2VDYXNlcyA9IHsKKyAgICAgICAgezB4NzMsIDB4MDMyN30sCisgICAgICAgIHsweDc2LCAweDAwRTQsIDB4NzR9LAorICAgICAgICB7MHg2ZiwgMHg2YywgMHg2NH0sCisgICAgICAgIHsweDAwRkMsIDB4NmYsIDB4NjksIDB4NjR9LAorICAgICAgICB7MHg2OCwgMHgwMTFFLCAweDYxLCAweDZjLCAweDc0fSwKKyAgICAgICAgezB4NzMsIDB4NzQsIDB4NzIsIDB4NjUsIDB4NzMsIDB4MDE1RX0sCisgICAgICAgIHsweDc2LCAweDZmLCAweDAxMzEsIDB4NjR9LAorICAgICAgICB7MHg2OSwgMHg2NCwgMHg2NSwgMHg2MX0sCisgICAgICAgIHsweDAwRkMsIDB4NmYsIDB4NjksIDB4NjR9LAorICAgICAgICB7MHg3NiwgMHg2ZiwgMHgwMTMxLCAweDY0fSwKKyAgICAgICAgezB4NjksIDB4NjQsIDB4NjUsIDB4NjF9CisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RUYXJnZXRDYXNlcyA9IHsKKyAgICAgICAgezB4NzUsIDB4MDMwOH0sCisgICAgICAgIHsweDc2LCAweDYyLCAweDc0fSwKKyAgICAgICAgezB4MDBENiwgMHg2MSwgMHg3OX0sCisgICAgICAgIHsweDc2LCAweDZmLCAweDY5LCAweDY0fSwKKyAgICAgICAgezB4NjgsIDB4NjEsIDB4NmMsIDB4NzR9LAorICAgICAgICB7MHgwMTVFLCAweDc0LCAweDcyLCAweDY1LCAweDAxNUUsIDB4NzN9LAorICAgICAgICB7MHg3NiwgMHg2ZiwgMHg2OSwgMHg2NH0sCisgICAgICAgIHsweDQ5LCAweDY0LCAweDY1LCAweDYxfSwKKyAgICAgICAgezB4NzYsIDB4NmYsIDB4NjksIDB4NjR9LAorICAgICAgICB7MHg3NiwgMHg2ZiwgMHg2OSwgMHg2NH0sCisgICAgICAgIHsweDQ5LCAweDY0LCAweDY1LCAweDYxfQorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSByZXN1bHRzID0geworICAgICAgICAtMSwKKyAgICAgICAgLTEsCisgICAgICAgIC0xLAorICAgICAgICAtMSwKKyAgICAgICAgMSwKKyAgICAgICAgLTEsCisgICAgICAgIC0xLAorICAgICAgICAxLAorICAgIC8vIHRlc3QgcHJpYW1yeSA+IDgKKyAgICAgICAgLTEsCisgICAgICAgIC0xLAorICAgICAgICAxCisgICAgfTsKKyAgICAKKyAgICBwcml2YXRlIENvbGxhdG9yIG15Q29sbGF0aW9uID0gbnVsbDsKKyAgICAKKyAgICBwdWJsaWMgQ29sbGF0aW9uVHVya2lzaFRlc3QoKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBteUNvbGxhdGlvbiA9IENvbGxhdG9yLmdldEluc3RhbmNlKG5ldyBMb2NhbGUoInRyIiwgIiIpKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogaW4gY3JlYXRpb24gb2YgY29sbGF0b3Igb2YgVFVSS0lTSCBsb2NhbGUiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0VGVydGlhcnkoKSB7CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgOCA7IGkrKykgeworICAgICAgICAgICAgZG9UZXN0KHRlc3RTb3VyY2VDYXNlc1tpXSwgdGVzdFRhcmdldENhc2VzW2ldLCByZXN1bHRzW2ldKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0UHJpbWFyeSgpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlBSSU1BUlkpOworICAgICAgICBmb3IgKGkgPSA4OyBpIDwgMTE7IGkrKykgeworICAgICAgICAgICAgZG9UZXN0KHRlc3RTb3VyY2VDYXNlc1tpXSwgdGVzdFRhcmdldENhc2VzW2ldLCByZXN1bHRzW2ldKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAKKyAgICAvLyBtYWluIHRlc3Qgcm91dGluZSwgdGVzdHMgcnVsZXMgc3BlY2lmaWMgdG8gdHVya2lzaCBsb2NhbGUKKyAgICBwcml2YXRlIHZvaWQgZG9UZXN0KGNoYXJbXSBzb3VyY2UsIGNoYXJbXSB0YXJnZXQsIGludCByZXN1bHQpIHsKKyAgICAgICAgU3RyaW5nIHMgPSBuZXcgU3RyaW5nKHNvdXJjZSk7CisgICAgICAgIFN0cmluZyB0ID0gbmV3IFN0cmluZyh0YXJnZXQpOworICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCA9IG15Q29sbGF0aW9uLmNvbXBhcmUocywgdCk7CisgICAgICAgIENvbGxhdGlvbktleSBzb3J0S2V5MSwgc29ydEtleTI7CisgICAgICAgIHNvcnRLZXkxID0gbXlDb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHMpOworICAgICAgICBzb3J0S2V5MiA9IG15Q29sbGF0aW9uLmdldENvbGxhdGlvbktleSh0KTsKKyAgICAgICAgaW50IGtleVJlc3VsdCA9IHNvcnRLZXkxLmNvbXBhcmVUbyhzb3J0S2V5Mik7CisgICAgICAgIHJlcG9ydENSZXN1bHQocywgdCwgc29ydEtleTEsIHNvcnRLZXkyLCBjb21wYXJlUmVzdWx0LCBrZXlSZXN1bHQsIGNvbXBhcmVSZXN1bHQsIHJlc3VsdCk7CisgICAgICAgIAorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcmVwb3J0Q1Jlc3VsdCggU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCwgQ29sbGF0aW9uS2V5IHNvdXJjZUtleSwgQ29sbGF0aW9uS2V5IHRhcmdldEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQsIGludCBrZXlSZXN1bHQsIGludCBpbmNSZXN1bHQsIGludCBleHBlY3RlZFJlc3VsdCApIHsKKyAgICAgICAgaWYgKGV4cGVjdGVkUmVzdWx0IDwgLTEgfHwgZXhwZWN0ZWRSZXN1bHQgPiAxKSB7CisgICAgICAgICAgICBlcnJsbigiKioqKiogaW52YWxpZCBjYWxsIHRvIHJlcG9ydENSZXN1bHQgKioqKiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBvazEgPSAoY29tcGFyZVJlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCk7CisgICAgICAgIGJvb2xlYW4gb2syID0gKGtleVJlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCk7CisgICAgICAgIGJvb2xlYW4gb2szID0gKGluY1Jlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCk7CisKKyAgICAgICAgaWYgKG9rMSAmJiBvazIgJiYgb2szICYmICFpc1ZlcmJvc2UoKSkgeworICAgICAgICAgICAgcmV0dXJuOyAgICAKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBtc2cxID0gb2sxPyAiT2s6IGNvbXBhcmUoXCIiIDogIkZBSUw6IGNvbXBhcmUoXCIiOworICAgICAgICAgICAgU3RyaW5nIG1zZzIgPSAiXCIsIFwiIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2czID0gIlwiKSByZXR1cm5lZCAiOworICAgICAgICAgICAgU3RyaW5nIG1zZzQgPSAiOyBleHBlY3RlZCAiOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgc0V4cGVjdCA9IG5ldyBTdHJpbmcoIiIpOworICAgICAgICAgICAgU3RyaW5nIHNSZXN1bHQgPSBuZXcgU3RyaW5nKCIiKTsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGNvbXBhcmVSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgc0V4cGVjdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoZXhwZWN0ZWRSZXN1bHQsIHNFeHBlY3QpOworICAgICAgICAgICAgaWYgKG9rMSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBtc2cxID0gb2syID8gIk9rOiBrZXkoXCIiIDogIkZBSUw6IGtleShcIiI7CisgICAgICAgICAgICBtc2cyID0gIlwiKS5jb21wYXJlVG8oa2V5KFwiIjsKKyAgICAgICAgICAgIG1zZzMgPSAiXCIpKSByZXR1cm5lZCAiOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoa2V5UmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIGlmIChvazIpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgICAgICBtc2cxID0gIiAgIjsKKyAgICAgICAgICAgICAgICBtc2cyID0gIiB2cy4gIjsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgcHJldHRpZnkoc291cmNlS2V5KSArIG1zZzIgKyBwcmV0dGlmeSh0YXJnZXRLZXkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbXNnMSA9IG9rMyA/ICJPazogaW5jQ29tcGFyZShcIiIgOiAiRkFJTDogaW5jQ29tcGFyZShcIiI7CisgICAgICAgICAgICBtc2cyID0gIlwiLCBcIiI7CisgICAgICAgICAgICBtc2czID0gIlwiKSByZXR1cm5lZCAiOworCisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChpbmNSZXN1bHQsIHNSZXN1bHQpOworCisgICAgICAgICAgICBpZiAob2szKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICB9ICAgICAgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgU3RyaW5nIGFwcGVuZENvbXBhcmVSZXN1bHQoaW50IHJlc3VsdCwgU3RyaW5nIHRhcmdldCkgeworICAgICAgICBpZiAocmVzdWx0ID09IC0xKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkxFU1MiOworICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkVRVUFMIjsKKyAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gMSkgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJHUkVBVEVSIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBodWggPSAiPyI7CisgICAgICAgICAgICB0YXJnZXQgKz0gaHVoICsgcmVzdWx0OworICAgICAgICB9CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorICAgIAorICAgIFN0cmluZyBwcmV0dGlmeShDb2xsYXRpb25LZXkgc291cmNlS2V5KSB7CisgICAgICAgIGludCBpOworICAgICAgICBieXRlW10gYnl0ZXM9IHNvdXJjZUtleS50b0J5dGVBcnJheSgpOworICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gIlsiOworICAgIAorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHRhcmdldCArPSBJbnRlZ2VyLnRvSGV4U3RyaW5nKGJ5dGVzW2ldKTsKKyAgICAgICAgICAgIHRhcmdldCArPSAiICI7CisgICAgICAgIH0KKyAgICAgICAgdGFyZ2V0ICs9ICJdIjsKKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0c3Q29sbGF0aW9uVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0c3Q29sbGF0aW9uVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUwNTJiMGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvRzdDb2xsYXRpb25UZXN0LmphdmEKQEAgLTAsMCArMSwyOTIgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogJFNvdXJjZTogCisgKiAkRGF0ZTogCisgKiAkUmV2aXNpb246IAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2Mi4xIDogQ29sbGF0ZS9HN0NvbGxhdGlvblRlc3QKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L2c3Y29sbC5jcHAKKyAqKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3I7CisgCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKyAKK3B1YmxpYyBjbGFzcyBHN0NvbGxhdGlvblRlc3QgZXh0ZW5kcyBUZXN0Rm13a3sKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBuZXcgRzdDb2xsYXRpb25UZXN0KCkucnVuKGFyZ3MpOworICAgICAgICAvLyBuZXcgRzdDb2xsYXRpb25UZXN0KCkuVGVzdERlbW8zKCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdIHRlc3RDYXNlcyA9IHsKKyAgICAgICAgImJsYWNrYmlyZHMiLCAiUGF0IiwgInBcdTAwRTljaFx1MDBFOSIsICJwXHUwMEVBY2hlIiwgInBcdTAwRTljaGVyIiwgICAgICAgICAgICAKKyAgICAgICAgInBcdTAwRUFjaGVyIiwgIlRvZCIsICJUXHUwMEY2bmUiLCAiVG9mdSIsICJibGFja2JpcmQiLCAiVG9uIiwgCisgICAgICAgICJQQVQiLCAiYmxhY2stYmlyZCIsICJibGFjay1iaXJkcyIsICJwYXQiLCAvLyAxNAorICAgICAgICAvLyBBZGRpdGlvbmFsIHRlc3RzCisgICAgICAgICJjemFyIiwgImNodXJvIiwgImNhdCIsICJkYXJuIiwgIj8iLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMTkgKi8KKyAgICAgICAgInF1aWNrIiwgIiMiLCAiJiIsICJhLXJkdmFyayIsICJhYXJkdmFyayIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAyMyAqLworICAgICAgICAiYWJib3QiLCAiY28tcCIsICJjb3AiLCAiY29vcCIsICJ6ZWJyYSIKKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50W11bXSByZXN1bHRzID0geworICAgICAgICB7IDEyLCAxMywgOSwgMCwgMTQsIDEsIDExLCAyLCAzLCA0LCA1LCA2LCA4LCAxMCwgNywgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSB9LCAvKiBlbl9VUyAqLworICAgICAgICB7IDEyLCAxMywgOSwgMCwgMTQsIDEsIDExLCAyLCAzLCA0LCA1LCA2LCA4LCAxMCwgNywgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSB9LCAvKiBlbl9HQiAqLworICAgICAgICB7IDEyLCAxMywgOSwgMCwgMTQsIDEsIDExLCAyLCAzLCA0LCA1LCA2LCA4LCAxMCwgNywgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSB9LCAvKiBlbl9DQSAqLworICAgICAgICB7IDEyLCAxMywgOSwgMCwgMTQsIDEsIDExLCAzLCAyLCA0LCA1LCA2LCA4LCAxMCwgNywgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSB9LCAvKiBmcl9GUiAqLworICAgICAgICB7IDEyLCAxMywgOSwgMCwgMTQsIDEsIDExLCAzLCAyLCA0LCA1LCA2LCA4LCAxMCwgNywgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSB9LCAvKiBmcl9DQSAqLworICAgICAgICB7IDEyLCAxMywgOSwgMCwgMTQsIDEsIDExLCAyLCAzLCA0LCA1LCA2LCA4LCAxMCwgNywgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSB9LCAvKiBkZV9ERSAqLworICAgICAgICB7IDEyLCAxMywgOSwgMCwgMTQsIDEsIDExLCAyLCAzLCA0LCA1LCA2LCA4LCAxMCwgNywgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSB9LCAvKiBpdF9JVCAqLworICAgICAgICB7IDEyLCAxMywgOSwgMCwgMTQsIDEsIDExLCAyLCAzLCA0LCA1LCA2LCA4LCAxMCwgNywgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSB9LCAvKiBqYV9KUCAqLworICAgICAgICAvKiBuZXcgdGFibGUgY29sbGF0aW9uIHdpdGggcnVsZXMgIiYgWiA8IHAsIFAiICBsb29wIHRvIEZJWEVEVEVTVFNFVCAqLworICAgICAgICB7IDEyLCAxMywgOSwgMCwgNiwgOCwgMTAsIDcsIDE0LCAxLCAxMSwgMiwgMywgNCwgNSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSB9LCAKKyAgICAgICAgLyogbmV3IHRhYmxlIGNvbGxhdGlvbiB3aXRoIHJ1bGVzICImIEMgPCBjaCAsIGNILCBDaCwgQ0ggIiBsb29wIHRvIFRPVEFMVEVTVFNFVCAqLworICAgICAgICB7IDE5LCAyMiwgMjEsIDIzLCAyNCwgMjUsIDEyLCAxMywgOSwgMCwgMTcsIDI2LCAyOCwgMjcsIDE1LCAxNiwgMTgsIDE0LCAxLCAxMSwgMiwgMywgNCwgNSwgMjAsIDYsIDgsIDEwLCA3LCAyOSB9LAorICAgICAgICAvKiBuZXcgdGFibGUgY29sbGF0aW9uIHdpdGggcnVsZXMgIiYgUXVlc3Rpb24tbWFyayA7ID8gJiBIYXNoLW1hcmsgOyAjICYgQW1wZXJzYW5kIDsgJyYnICAiIGxvb3AgdG8gVE9UQUxURVNUU0VUICovCisgICAgICAgIHsgMjMsIDI0LCAyNSwgMjIsIDEyLCAxMywgOSwgMCwgMTcsIDE2LCAyNiwgMjgsIDI3LCAxNSwgMTgsIDIxLCAxNCwgMSwgMTEsIDIsIDMsIDQsIDUsIDE5LCAyMCwgNiwgOCwgMTAsIDcsIDI5IH0sCisgICAgICAgIC8qIGFuYWxvZ291cyB0byBKYXBhbmVzZSBydWxlcyAiICYgYWEgOyBhLSAmIGVlIDsgZS0gJiBpaSA7IGktICYgb28gOyBvLSAmIHV1IDsgdS0gIiAqLyAgLyogbG9vcCB0byBUT1RBTFRFU1RTRVQgKi8KKyAgICAgICAgeyAxOSwgMjIsIDIxLCAyNCwgMjMsIDI1LCAxMiwgMTMsIDksIDAsIDE3LCAxNiwgMjgsIDI2LCAyNywgMTUsIDE4LCAxNCwgMSwgMTEsIDIsIDMsIDQsIDUsIDIwLCA2LCA4LCAxMCwgNywgMjkgfQorICAgIH07CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1BWF9UT0tFTl9MRU4gPSAxNjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVEVTVExPQ0FMRVMgPSAxMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRklYRURURVNUU0VUID0gMTU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFRPVEFMVEVTVFNFVCA9IDMwOworICAgIAorICAgIC8vIHBlcmZvcm0gdGVzdCB3aXRoIGFkZGVkIHJ1bGVzICIgJiBaIDwgcCwgUCIKKyAgICBwdWJsaWMgdm9pZCBUZXN0RGVtbzEoKSB7CisgICAgICAgIGxvZ2xuKCJEZW1vIFRlc3QgMSA6IENyZWF0ZSBhIG5ldyB0YWJsZSBjb2xsYXRpb24gd2l0aCBydWxlcyBcIiYgWiA8IHAsIFBcIiIpOworICAgICAgICAKKyAgICAgICAgQ29sbGF0b3IgY29sOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkVOR0xJU0gpOyAgICAKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogaW4gY3JlYXRpb24gb2YgY29sbGF0b3Igb2YgRU5HTElTSCBsb2NhbGUiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgU3RyaW5nIGJhc2VSdWxlcyA9ICgoUnVsZUJhc2VkQ29sbGF0b3IpY29sKS5nZXRSdWxlcygpOworICAgICAgICBTdHJpbmcgbmV3UnVsZXMgPSAiICYgWiA8IHAsIFAiOworICAgICAgICBuZXdSdWxlcyA9IGJhc2VSdWxlcyArIG5ld1J1bGVzOyAKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgbXlDb2xsYXRpb24gPSBudWxsOyAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG15Q29sbGF0aW9uID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKG5ld1J1bGVzKTsKKyAgICAgICAgfSBjYXRjaChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWwgdG8gY3JlYXRlIFJ1bGVCYXNlZENvbGxhdG9yIHdpdGggcnVsZXM6IiArIG5ld1J1bGVzKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKG15Q29sbGF0aW9uID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJEZW1vIFRlc3QgMiBUYWJsZSBDb2xsYXRpb24gb2JqZWN0IGNyZWF0aW9uIGZhaWxlZC4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50IGosIG47CisgICAgICAgIGZvciAoaiA9IDA7IGogPCBGSVhFRFRFU1RTRVQ7IGorKykgeworICAgICAgICAgICAgZm9yIChuID0gaisxOyBuIDwgRklYRURURVNUU0VUOyBuKyspIHsKKyAgICAgICAgICAgICAgICBkb1Rlc3QobXlDb2xsYXRpb24sIHRlc3RDYXNlc1tyZXN1bHRzWzhdW2pdXSwgdGVzdENhc2VzW3Jlc3VsdHNbOF1bbl1dLCAtMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisKKyAgICAvLyBwZXJvcm0gdGVzdCB3aXRoIGFkZGVkIHJ1bGVzICImIEMgPCBjaCAsIGNILCBDaCwgQ0giCisgICAgcHVibGljIHZvaWQgVGVzdERlbW8yKCkgeworICAgICAgICBsb2dsbigiRGVtbyBUZXN0IDIgOiBDcmVhdGUgYSBuZXcgdGFibGUgY29sbGF0aW9uIHdpdGggcnVsZXMgXCImIEMgPCBjaCAsIGNILCBDaCwgQ0hcIiIpOworICAgICAgICBDb2xsYXRvciBjb2w7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRU5HTElTSCk7ICAgIAorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBpbiBjcmVhdGlvbiBvZiBjb2xsYXRvciBvZiBFTkdMSVNIIGxvY2FsZSIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIGJhc2VSdWxlcyA9ICgoUnVsZUJhc2VkQ29sbGF0b3IpY29sKS5nZXRSdWxlcygpOworICAgICAgICBTdHJpbmcgbmV3UnVsZXMgPSAiJiBDIDwgY2ggLCBjSCwgQ2gsIENIIjsKKyAgICAgICAgbmV3UnVsZXMgPSBiYXNlUnVsZXMgKyBuZXdSdWxlczsgCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIG15Q29sbGF0aW9uID0gbnVsbDsgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBteUNvbGxhdGlvbiA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihuZXdSdWxlcyk7CisgICAgICAgIH1jYXRjaChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICBlcnJsbigiRmFpbCB0byBjcmVhdGUgUnVsZUJhc2VkQ29sbGF0b3Igd2l0aCBydWxlczoiICsgbmV3UnVsZXMpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9ICAKKworICAgICAgICBpbnQgaiwgbjsKKyAgICAgICAgZm9yIChqID0gMDsgaiA8IFRPVEFMVEVTVFNFVDsgaisrKSB7CisgICAgICAgICAgICBmb3IgKG4gPSBqKzE7IG4gPCBUT1RBTFRFU1RTRVQ7IG4rKykgeworICAgICAgICAgICAgICAgIGRvVGVzdChteUNvbGxhdGlvbiwgdGVzdENhc2VzW3Jlc3VsdHNbOV1bal1dLCB0ZXN0Q2FzZXNbcmVzdWx0c1s5XVtuXV0sIC0xKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKworICAgIC8vIHBlcmZvcm0gdGVzdCB3aXRoIGFkZGVkIHJ1bGVzIAorICAgIC8vICImIFF1ZXN0aW9uJy0nbWFyayA7ICc/JyAmIEhhc2gnLSdtYXJrIDsgJyMnICYgQW1wZXJzYW5kIDsgJyYnIgorICAgIHB1YmxpYyB2b2lkIFRlc3REZW1vMygpIHsKKyAgICAgICAgLy8gbG9nbG4oIkRlbW8gVGVzdCAzIDogQ3JlYXRlIGEgbmV3IHRhYmxlIGNvbGxhdGlvbiB3aXRoIHJ1bGVzIFwiJiBRdWVzdGlvbictJ21hcmsgOyAnPycgJiBIYXNoJy0nbWFyayA7ICcjJyAmIEFtcGVyc2FuZCA7ICcmJ1wiIik7CisgICAgICAgIENvbGxhdG9yIGNvbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsgICAgCisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGluIGNyZWF0aW9uIG9mIGNvbGxhdG9yIG9mIEVOR0xJU0ggbG9jYWxlIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN0cmluZyBiYXNlUnVsZXMgPSAoKFJ1bGVCYXNlZENvbGxhdG9yKWNvbCkuZ2V0UnVsZXMoKTsKKyAgICAgICAgU3RyaW5nIG5ld1J1bGVzID0gIiYgUXVlc3Rpb24nLSdtYXJrIDsgJz8nICYgSGFzaCctJ21hcmsgOyAnIycgJiBBbXBlcnNhbmQgOyAnJiciOworICAgICAgICBuZXdSdWxlcyA9IGJhc2VSdWxlcyArIG5ld1J1bGVzOworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBteUNvbGxhdGlvbiA9IG51bGw7IAorICAgICAgICB0cnkgeworICAgICAgICAgICAgbXlDb2xsYXRpb24gPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IobmV3UnVsZXMpOworICAgICAgICB9Y2F0Y2goRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgZXJybG4oIkZhaWwgdG8gY3JlYXRlIFJ1bGVCYXNlZENvbGxhdG9yIHdpdGggcnVsZXM6IiArIG5ld1J1bGVzKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfSAgCisKKyAgICAgICAgaW50IGosIG47CisgICAgICAgIGZvciAoaiA9IDA7IGogPCBUT1RBTFRFU1RTRVQ7IGorKykgeworICAgICAgICAgICAgZm9yIChuID0gaisxOyBuIDwgVE9UQUxURVNUU0VUOyBuKyspIHsKKyAgICAgICAgICAgICAgICBkb1Rlc3QobXlDb2xsYXRpb24sIHRlc3RDYXNlc1tyZXN1bHRzWzEwXVtqXV0sIHRlc3RDYXNlc1tyZXN1bHRzWzEwXVtuXV0sIC0xKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKworICAgIC8vIHBlcmZvcm0gdGVzdCB3aXRoIGFkZGVkIHJ1bGVzIAorICAgIC8vICIgJiBhYSA7IGEnLScgJiBlZSA7IGUnLScgJiBpaSA7IGknLScgJiBvbyA7IG8nLScgJiB1dSA7IHUnLScgIgorICAgIHB1YmxpYyB2b2lkIFRlc3REZW1vNCgpIHsKKyAgICAgICAgbG9nbG4oIkRlbW8gVGVzdCA0IDogQ3JlYXRlIGEgbmV3IHRhYmxlIGNvbGxhdGlvbiB3aXRoIHJ1bGVzIFwiICYgYWEgOyBhJy0nICYgZWUgOyBlJy0nICYgaWkgOyBpJy0nICYgb28gOyBvJy0nICYgdXUgOyB1Jy0nIFwiIik7CisgICAgICAgIENvbGxhdG9yIGNvbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsgICAgCisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGluIGNyZWF0aW9uIG9mIGNvbGxhdG9yIG9mIEVOR0xJU0ggbG9jYWxlIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIGJhc2VSdWxlcyA9ICgoUnVsZUJhc2VkQ29sbGF0b3IpY29sKS5nZXRSdWxlcygpOworICAgICAgICBTdHJpbmcgbmV3UnVsZXMgPSAiICYgYWEgOyBhJy0nICYgZWUgOyBlJy0nICYgaWkgOyBpJy0nICYgb28gOyBvJy0nICYgdXUgOyB1Jy0nICI7CisgICAgICAgIG5ld1J1bGVzID0gYmFzZVJ1bGVzICsgbmV3UnVsZXM7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIG15Q29sbGF0aW9uID0gbnVsbDsgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBteUNvbGxhdGlvbiA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihuZXdSdWxlcyk7CisgICAgICAgIH1jYXRjaChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICBlcnJsbigiRmFpbCB0byBjcmVhdGUgUnVsZUJhc2VkQ29sbGF0b3Igd2l0aCBydWxlczoiICsgbmV3UnVsZXMpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9ICAKKworICAgICAgICBpbnQgaiwgbjsKKyAgICAgICAgZm9yIChqID0gMDsgaiA8IFRPVEFMVEVTVFNFVDsgaisrKSB7CisgICAgICAgICAgICBmb3IgKG4gPSBqKzE7IG4gPCBUT1RBTFRFU1RTRVQ7IG4rKykgeworICAgICAgICAgICAgICAgIGRvVGVzdChteUNvbGxhdGlvbiwgdGVzdENhc2VzW3Jlc3VsdHNbMTFdW2pdXSwgdGVzdENhc2VzW3Jlc3VsdHNbMTFdW25dXSwgLTEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIAorICAgIAorICAgIAorICAgIC8vIG1haW4gdGVzdCByb3V0aW5lLCB0ZXN0cyBjb21wYXJpc29ucyBmb3IgYSBzZXQgb2Ygc3RyaW5ncyBhZ2FpbnN0IHNldHMgb2YgZXhwZWN0ZWQgcmVzdWx0cworICAgIHByaXZhdGUgdm9pZCBkb1Rlc3QoQ29sbGF0b3IgbXlDb2xsYXRpb24sIFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlc3VsdCl7CisgICAgICAgIAorICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCA9IG15Q29sbGF0aW9uLmNvbXBhcmUoc291cmNlLCB0YXJnZXQpOworICAgICAgICBDb2xsYXRpb25LZXkgc29ydEtleTEsIHNvcnRLZXkyOworICAgICAgICBzb3J0S2V5MSA9IG15Q29sbGF0aW9uLmdldENvbGxhdGlvbktleShzb3VyY2UpOworICAgICAgICBzb3J0S2V5MiA9IG15Q29sbGF0aW9uLmdldENvbGxhdGlvbktleSh0YXJnZXQpOworICAgICAgICBpbnQga2V5UmVzdWx0ID0gc29ydEtleTEuY29tcGFyZVRvKHNvcnRLZXkyKTsKKyAgICAgICAgcmVwb3J0Q1Jlc3VsdChzb3VyY2UsIHRhcmdldCwgc29ydEtleTEsIHNvcnRLZXkyLCBjb21wYXJlUmVzdWx0LCAKKyAgICAgICAgICAgICAgICAgICAgICBrZXlSZXN1bHQsIGNvbXBhcmVSZXN1bHQsIHJlc3VsdCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCByZXBvcnRDUmVzdWx0KCBTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0LCBDb2xsYXRpb25LZXkgc291cmNlS2V5LCBDb2xsYXRpb25LZXkgdGFyZ2V0S2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCwgaW50IGtleVJlc3VsdCwgaW50IGluY1Jlc3VsdCwgaW50IGV4cGVjdGVkUmVzdWx0ICl7CisgICAgICAgIGlmIChleHBlY3RlZFJlc3VsdCA8IC0xIHx8IGV4cGVjdGVkUmVzdWx0ID4gMSkgeworICAgICAgICAgICAgZXJybG4oIioqKioqIGludmFsaWQgY2FsbCB0byByZXBvcnRDUmVzdWx0ICoqKioiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gb2sxID0gKGNvbXBhcmVSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMiA9IChrZXlSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMyA9IChpbmNSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworCisgICAgICAgIGlmIChvazEgJiYgb2syICYmIG9rMyAmJiAhaXNWZXJib3NlKCkpeworICAgICAgICAgICAgcmV0dXJuOyAgICAKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBtc2cxID0gb2sxPyAiT2s6IGNvbXBhcmUoXCIiIDogIkZBSUw6IGNvbXBhcmUoXCIiOworICAgICAgICAgICAgU3RyaW5nIG1zZzIgPSAiXCIsIFwiIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2czID0gIlwiKSByZXR1cm5lZCAiOworICAgICAgICAgICAgU3RyaW5nIG1zZzQgPSAiOyBleHBlY3RlZCAiOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgc0V4cGVjdCA9IG5ldyBTdHJpbmcoIiIpOworICAgICAgICAgICAgU3RyaW5nIHNSZXN1bHQgPSBuZXcgU3RyaW5nKCIiKTsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGNvbXBhcmVSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgc0V4cGVjdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoZXhwZWN0ZWRSZXN1bHQsIHNFeHBlY3QpOworICAgICAgICAgICAgaWYgKG9rMSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBtc2cxID0gb2syID8gIk9rOiBrZXkoXCIiIDogIkZBSUw6IGtleShcIiI7CisgICAgICAgICAgICBtc2cyID0gIlwiKS5jb21wYXJlVG8oa2V5KFwiIjsKKyAgICAgICAgICAgIG1zZzMgPSAiXCIpKSByZXR1cm5lZCAiOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoa2V5UmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIGlmIChvazIpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgICAgICBtc2cxID0gIiAgIjsKKyAgICAgICAgICAgICAgICBtc2cyID0gIiB2cy4gIjsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgcHJldHRpZnkoc291cmNlS2V5KSArIG1zZzIgKyBwcmV0dGlmeSh0YXJnZXRLZXkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbXNnMSA9IG9rMyA/ICJPazogaW5jQ29tcGFyZShcIiIgOiAiRkFJTDogaW5jQ29tcGFyZShcIiI7CisgICAgICAgICAgICBtc2cyID0gIlwiLCBcIiI7CisgICAgICAgICAgICBtc2czID0gIlwiKSByZXR1cm5lZCAiOworCisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChpbmNSZXN1bHQsIHNSZXN1bHQpOworCisgICAgICAgICAgICBpZiAob2szKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICB9ICAgICAgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgU3RyaW5nIGFwcGVuZENvbXBhcmVSZXN1bHQoaW50IHJlc3VsdCwgU3RyaW5nIHRhcmdldCl7CisgICAgICAgIGlmIChyZXN1bHQgPT0gLTEpIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiTEVTUyI7CisgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiRVFVQUwiOworICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSAxKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkdSRUFURVIiOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIGh1aCA9ICI/IjsKKyAgICAgICAgICAgIHRhcmdldCArPSBodWggKyByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9CisgICAgCisgICBTdHJpbmcgcHJldHRpZnkoQ29sbGF0aW9uS2V5IHNvdXJjZUtleSkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgYnl0ZVtdIGJ5dGVzPSBzb3VyY2VLZXkudG9CeXRlQXJyYXkoKTsKKyAgICAgICAgU3RyaW5nIHRhcmdldCA9ICJbIjsKKyAgICAKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGJ5dGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gSW50ZWdlci50b0hleFN0cmluZyhieXRlc1tpXSk7CisgICAgICAgICAgICB0YXJnZXQgKz0gIiAiOworICAgICAgICB9CisgICAgICAgIHRhcmdldCArPSAiXSI7CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Mb3R1c0NvbGxhdGlvbktvcmVhblRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Mb3R1c0NvbGxhdGlvbktvcmVhblRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41M2U5YmIxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0xvdHVzQ29sbGF0aW9uS29yZWFuVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTU2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICRTb3VyY2U6IAorICogJERhdGU6IAorICogJFJldmlzaW9uOiAKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjIuMSA6IENvbGxhdGUvTG90dXNDb2xsYXRpb25Lb3JlYW5UZXN0CisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9sY3Vrb2NvbC5jcHAKKyAqKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3I7CisgCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKyAKK3B1YmxpYyBjbGFzcyBMb3R1c0NvbGxhdGlvbktvcmVhblRlc3QgZXh0ZW5kcyBUZXN0Rm13a3sKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBuZXcgTG90dXNDb2xsYXRpb25Lb3JlYW5UZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0U291cmNlQ2FzZXMgPSB7CisgICAgICAgIHsweGFjMDB9CisgICAgfTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0VGFyZ2V0Q2FzZXMgPSB7CisgICAgICAgIHsweGFjMDF9CisgICAgfTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSByZXN1bHRzID0geworICAgICAgICAtMQorICAgIH07CisgICAgCisgICAgcHJpdmF0ZSBDb2xsYXRvciBteUNvbGxhdGlvbjsKKyAgICAKKyAgICBwdWJsaWMgTG90dXNDb2xsYXRpb25Lb3JlYW5UZXN0KCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgbXlDb2xsYXRpb24gPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuS09SRUFOKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogaW4gY3JlYXRpb24gb2YgY29sbGF0b3Igb2YgS09SRUFOIGxvY2FsZSIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG15Q29sbGF0aW9uLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworICAgIH0KKyAgICAKKyAgICAvLyBwZXJmb3JtcyB0ZXN0IHdpdGggc3RyZW5ndGggVEVSSUFSWQorICAgIHB1YmxpYyB2b2lkIFRlc3RUZXJ0aWFyeSgpIHsKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCAxOyBpKyspIHsKKyAgICAgICAgICAgIGRvVGVzdCh0ZXN0U291cmNlQ2FzZXNbaV0sIHRlc3RUYXJnZXRDYXNlc1tpXSwgcmVzdWx0c1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAvLyBtYWluIHRlc3Qgcm91dGluZSwgdGVzdHMgcnVsZXMgc3BlY2lmaWMgdG8gIktvcmVhbiIgbG9jYWxlCisgICAgcHJpdmF0ZSB2b2lkIGRvVGVzdCggY2hhcltdIHNvdXJjZSwgY2hhcltdIHRhcmdldCwgaW50IHJlc3VsdCkgeworICAgICAgICBTdHJpbmcgcyA9IG5ldyBTdHJpbmcoc291cmNlKTsKKyAgICAgICAgU3RyaW5nIHQgPSBuZXcgU3RyaW5nKHRhcmdldCk7CisgICAgICAgIGludCBjb21wYXJlUmVzdWx0ID0gbXlDb2xsYXRpb24uY29tcGFyZShzLCB0KTsKKyAgICAgICAgQ29sbGF0aW9uS2V5IHNvcnRLZXkxLCBzb3J0S2V5MjsKKyAgICAgICAgc29ydEtleTEgPSBteUNvbGxhdGlvbi5nZXRDb2xsYXRpb25LZXkocyk7CisgICAgICAgIHNvcnRLZXkyID0gbXlDb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHQpOworICAgICAgICBpbnQga2V5UmVzdWx0ID0gc29ydEtleTEuY29tcGFyZVRvKHNvcnRLZXkyKTsKKyAgICAgICAgcmVwb3J0Q1Jlc3VsdCggcywgdCwgc29ydEtleTEsIHNvcnRLZXkyLCBjb21wYXJlUmVzdWx0LCBrZXlSZXN1bHQsIGNvbXBhcmVSZXN1bHQsIHJlc3VsdCApOyAKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcmVwb3J0Q1Jlc3VsdCggU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCwgQ29sbGF0aW9uS2V5IHNvdXJjZUtleSwgQ29sbGF0aW9uS2V5IHRhcmdldEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQsIGludCBrZXlSZXN1bHQsIGludCBpbmNSZXN1bHQsIGludCBleHBlY3RlZFJlc3VsdCApeworICAgICAgICBpZiAoZXhwZWN0ZWRSZXN1bHQgPCAtMSB8fCBleHBlY3RlZFJlc3VsdCA+IDEpIHsKKyAgICAgICAgICAgIGVycmxuKCIqKioqKiBpbnZhbGlkIGNhbGwgdG8gcmVwb3J0Q1Jlc3VsdCAqKioqIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBib29sZWFuIG9rMSA9IChjb21wYXJlUmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgYm9vbGVhbiBvazIgPSAoa2V5UmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgYm9vbGVhbiBvazMgPSAoaW5jUmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKworICAgICAgICBpZiAob2sxICYmIG9rMiAmJiBvazMgJiYgIWlzVmVyYm9zZSgpKSB7CisgICAgICAgICAgICByZXR1cm47ICAgIAorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIG1zZzEgPSBvazE/ICJPazogY29tcGFyZShcIiIgOiAiRkFJTDogY29tcGFyZShcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgU3RyaW5nIG1zZzMgPSAiXCIpIHJldHVybmVkICI7CisgICAgICAgICAgICBTdHJpbmcgbXNnNCA9ICI7IGV4cGVjdGVkICI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBzRXhwZWN0ID0gbmV3IFN0cmluZygiIik7CisgICAgICAgICAgICBTdHJpbmcgc1Jlc3VsdCA9IG5ldyBTdHJpbmcoIiIpOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoY29tcGFyZVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBzRXhwZWN0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChleHBlY3RlZFJlc3VsdCwgc0V4cGVjdCk7CisgICAgICAgICAgICBpZiAob2sxKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1zZzEgPSBvazIgPyAiT2s6IGtleShcIiIgOiAiRkFJTDoga2V5KFwiIjsKKyAgICAgICAgICAgIG1zZzIgPSAiXCIpLmNvbXBhcmVUbyhrZXkoXCIiOworICAgICAgICAgICAgbXNnMyA9ICJcIikpIHJldHVybmVkICI7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChrZXlSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgaWYgKG9rMikgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgICAgIG1zZzEgPSAiICAiOworICAgICAgICAgICAgICAgIG1zZzIgPSAiIHZzLiAiOworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBwcmV0dGlmeShzb3VyY2VLZXkpICsgbXNnMiArIHByZXR0aWZ5KHRhcmdldEtleSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBtc2cxID0gb2szID8gIk9rOiBpbmNDb21wYXJlKFwiIiA6ICJGQUlMOiBpbmNDb21wYXJlKFwiIjsKKyAgICAgICAgICAgIG1zZzIgPSAiXCIsIFwiIjsKKyAgICAgICAgICAgIG1zZzMgPSAiXCIpIHJldHVybmVkICI7CisKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGluY1Jlc3VsdCwgc1Jlc3VsdCk7CisKKyAgICAgICAgICAgIGlmIChvazMpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgYXBwZW5kQ29tcGFyZVJlc3VsdChpbnQgcmVzdWx0LCBTdHJpbmcgdGFyZ2V0KXsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSAtMSkgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJMRVNTIjsKKyAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gMCkgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJFUVVBTCI7CisgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IDEpIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiR1JFQVRFUiI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgaHVoID0gIj8iOworICAgICAgICAgICAgdGFyZ2V0ICs9IGh1aCArIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KKyAgICAKKyAgICBTdHJpbmcgcHJldHRpZnkoQ29sbGF0aW9uS2V5IHNvdXJjZUtleSkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgYnl0ZVtdIGJ5dGVzPSBzb3VyY2VLZXkudG9CeXRlQXJyYXkoKTsKKyAgICAgICAgU3RyaW5nIHRhcmdldCA9ICJbIjsKKyAgICAKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGJ5dGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gSW50ZWdlci50b0hleFN0cmluZyhieXRlc1tpXSk7CisgICAgICAgICAgICB0YXJnZXQgKz0gIiAiOworICAgICAgICB9CisgICAgICAgIHRhcmdldCArPSAiXSI7CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb21wcmVzc2lvbi9EZWNvbXByZXNzaW9uVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbXByZXNzaW9uL0RlY29tcHJlc3Npb25UZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjVkMTRiMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb21wcmVzc2lvbi9EZWNvbXByZXNzaW9uVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTMwIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29tcHJlc3Npb24vRGVjb21wcmVzc2lvblRlc3QuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNTowNyAkIAorICogJFJldmlzaW9uOiAxLjMgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbXByZXNzaW9uOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlQ29tcHJlc3NvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVEZWNvbXByZXNzb3I7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CisKK3B1YmxpYyBjbGFzcyBEZWNvbXByZXNzaW9uVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKwlwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKwkJbmV3IERlY29tcHJlc3Npb25UZXN0KCkucnVuKGFyZ3MpOworCX0KKworICAgIC8qKiBQcmludCBvdXQgYSBzZWdtZW50IG9mIGEgY2hhcmFjdGVyIGFycmF5LCBpZiBpbiB2ZXJib3NlIG1vZGUgKi8KKyAgICBwcml2YXRlIHZvaWQgbG9nKGNoYXIgW10gY2hhcnMsIGludCBzdGFydCwgaW50IGNvdW50KSB7CisgICAgICAgIGxvZygifCIpOworICAgICAgICBmb3IoaW50IGkgPSBzdGFydDsgaSA8IHN0YXJ0ICsgY291bnQ7ICsraSkgeworICAgICAgICAgICAgbG9nKFN0cmluZy52YWx1ZU9mKGNoYXJzW2ldKSk7CisgICAgICAgIH0KKyAgICAgICAgbG9nKCJ8Iik7CisgICAgfQorCisgICAgLyoqIFByaW50IG91dCBhIHNlZ21lbnQgb2YgYSBjaGFyYWN0ZXIgYXJyYXksIGZvbGxvd2VkIGJ5IGEgbmV3bGluZSAqLworICAgIHByaXZhdGUgdm9pZCBsb2dsbihjaGFyIFtdIGNoYXJzLCBpbnQgc3RhcnQsIGludCBjb3VudCkKKyAgICB7CisgICAgICAgIGxvZyhjaGFycywgc3RhcnQsIGNvdW50KTsKKyAgICAgICAgbG9nbG4oIiIpOworICAgIH0KKworICAgIC8qKiBEZWNvbXByZXNzIHRoZSB0d28gc2VnbWVudHMgKi8KKyAgICBwcml2YXRlIFN0cmluZyBkZWNvbXByZXNzVGVzdChieXRlIFtdIHNlZ21lbnQxLCBieXRlIFtdIHNlZ21lbnQyKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBVbmljb2RlRGVjb21wcmVzc29yIG15RGVjb21wcmVzc29yID0gbmV3IFVuaWNvZGVEZWNvbXByZXNzb3IoKTsKKworICAgICAgICBpbnQgW10gYnl0ZXNSZWFkID0gbmV3IGludFsxXTsKKyAgICAgICAgY2hhciBbXSBjaGFyQnVmZmVyID0gbmV3IGNoYXIgWzIqKHNlZ21lbnQxLmxlbmd0aCArIHNlZ21lbnQyLmxlbmd0aCldOworICAgICAgICBpbnQgY291bnQxID0gMCwgY291bnQyID0gMDsKKworICAgICAgICBjb3VudDEgPSBteURlY29tcHJlc3Nvci5kZWNvbXByZXNzKHNlZ21lbnQxLCAwLCBzZWdtZW50MS5sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZXNSZWFkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJCdWZmZXIsIDAsIGNoYXJCdWZmZXIubGVuZ3RoKTsKKyAgICAgICAgCisgICAgICAgIGxvZ2xuKCJTZWdtZW50IDEgKCIgKyBzZWdtZW50MS5sZW5ndGggKyAiIGJ5dGVzKSAiICsKKyAgICAgICAgICAgICAgICAiZGVjb21wcmVzc2VkIGludG8gIiArIGNvdW50MSAgKyAiIGNoYXJzIik7CisgICAgICAgIGxvZ2xuKCJCeXRlcyBjb25zdW1lZDogIiArIGJ5dGVzUmVhZFswXSk7CisKKyAgICAgICAgbG9nbG4oIkdvdCBjaGFyczogIik7CisgICAgICAgIGxvZ2xuKGNoYXJCdWZmZXIsIDAsIGNvdW50MSk7CisgICAgICAgIHMuYXBwZW5kKGNoYXJCdWZmZXIsIDAsIGNvdW50MSk7CisKKyAgICAgICAgY291bnQyID0gbXlEZWNvbXByZXNzb3IuZGVjb21wcmVzcyhzZWdtZW50MiwgMCwgc2VnbWVudDIubGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVzUmVhZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyQnVmZmVyLCBjb3VudDEsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJCdWZmZXIubGVuZ3RoKTsKKyAgICAgICAgCisgICAgICAgIGxvZ2xuKCJTZWdtZW50IDIgKCIgKyBzZWdtZW50Mi5sZW5ndGggKyAiIGJ5dGVzKSAiICsKKyAgICAgICAgICAgICAgICAiZGVjb21wcmVzc2VkIGludG8gIiArIGNvdW50MiAgKyAiIGNoYXJzIik7CisgICAgICAgIGxvZ2xuKCJCeXRlcyBjb25zdW1lZDogIiArIGJ5dGVzUmVhZFswXSk7CisKKyAgICAgICAgbG9nbG4oIkdvdCBjaGFyczogIik7CisgICAgICAgIGxvZ2xuKGNoYXJCdWZmZXIsIGNvdW50MSwgY291bnQyKTsKKyAgICAgICAgCisgICAgICAgIHMuYXBwZW5kKGNoYXJCdWZmZXIsIGNvdW50MSwgY291bnQyKTsKKworICAgICAgICBsb2dsbigiUmVzdWx0OiAiKTsKKyAgICAgICAgbG9nbG4oY2hhckJ1ZmZlciwgMCwgY291bnQxICsgY291bnQyKTsKKyAgICAgICAgbG9nbG4oIj09PT09PT09PT09PT09PT09PT09Iik7CisKKyAgICAgICAgcmV0dXJuIHMudG9TdHJpbmcoKTsKKyAgICB9CisKKworICAgIHB1YmxpYyB2b2lkIHRlc3REZWNvbXByZXNzaW9uKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIFN0cmluZyByZXN1bHQ7CisKKyAgICAgICAgLy8gY29tcHJlc3NlZCBzZWdtZW50IGJyZWFraW5nIG9uIGEgZGVmaW5lIHdpbmRvdyBzZXF1ZW5jZQorICAgICAgICAvKiAgICAgICAgICAgICAgICAgICBCICAgICBvICAgICBvICAgICB0ICAgICBoICAgICBTRDEgICovCisgICAgICAgIGJ5dGUgW10gc2VnbWVudDEgPSB7IDB4NDIsIDB4NmYsIDB4NmYsIDB4NzQsIDB4NjgsIDB4MTkgfTsKKworICAgICAgICAvLyBjb250aW51YXRpb24KKyAgICAgICAgLyogICAgICAgICAgICAgICAgICAgSURYICAgLCAgICAgICAgICAgUyAgICAgLiAgICAgICAgICAqLworICAgICAgICBieXRlIFtdIHNlZ21lbnQyID0geyAweDAxLCAweDJjLCAweDIwLCAweDUzLCAweDJlIH07CisgICAgICAgIAorICAgICAgICByZXN1bHQgPSBkZWNvbXByZXNzVGVzdChzZWdtZW50MSwgc2VnbWVudDIpOworICAgICAgICBpZighIHJlc3VsdC5lcXVhbHMoIkJvb3RoLCBTLiIpKSB7CisgICAgICAgIAllcnJsbigiRGVjb21wcmVzc2lvbiB0ZXN0IGZhaWxlZCIpOworICAgICAgICAJcmV0dXJuOworCQl9CisKKyAgICAgICAgLy8gY29tcHJlc3NlZCBzZWdtZW50IGJyZWFraW5nIG9uIGEgcXVvdGUgdW5pY29kZSBzZXF1ZW5jZQorICAgICAgICAvKiAgICAgICAgICAgICAgICAgICBCICAgICBvICAgICBvICAgICB0ICAgICBTUVUgICAgICAgICovCisgICAgICAgIGJ5dGUgW10gc2VnbWVudDMgPSB7IDB4NDIsIDB4NmYsIDB4NmYsIDB4NzQsIDB4MGUsIDB4MDAgfTsKKworICAgICAgICAvLyBjb250aW51YXRpb24KKyAgICAgICAgLyogICAgICAgICAgICAgICAgICAgaCAgICAgLCAgICAgICAgICAgUyAgICAgLiAgICAgICAgICAqLworICAgICAgICBieXRlIFtdIHNlZ21lbnQ0ID0geyAweDY4LCAweDJjLCAweDIwLCAweDUzLCAweDJlIH07CisKKyAgICAgICAgcmVzdWx0ID0gZGVjb21wcmVzc1Rlc3Qoc2VnbWVudDMsIHNlZ21lbnQ0KTsKKyAgICAgICAgaWYoISByZXN1bHQuZXF1YWxzKCJCb290aCwgUy4iKSkgeworICAgICAgICAJZXJybG4oIkRlY29tcHJlc3Npb24gdGVzdCBmYWlsZWQiKTsKKyAgICAgICAgCXJldHVybjsKKwkJfQorCisKKyAgICAgICAgLy8gY29tcHJlc3NlZCBzZWdtZW50IGJyZWFraW5nIG9uIGEgcXVvdGUgdW5pY29kZSBzZXF1ZW5jZQorICAgICAgICAvKiAgICAgICAgICAgICAgICAgICBTQ1UgICBVUVUgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgYnl0ZSBbXSBzZWdtZW50NSA9IHsgMHgwZiwgKGJ5dGUpMHhmMCwgMHgwMCB9OworCisgICAgICAgIC8vIGNvbnRpbnVhdGlvbgorICAgICAgICAvKiAgICAgICAgICAgICAgICAgICBCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgYnl0ZSBbXSBzZWdtZW50NiA9IHsgMHg0MiB9OworCisgICAgICAgIHJlc3VsdCA9IGRlY29tcHJlc3NUZXN0KHNlZ21lbnQ1LCBzZWdtZW50Nik7CisgICAgICAgIGlmKCEgcmVzdWx0LmVxdWFscygiQiIpKSB7CisgICAgICAgIAllcnJsbigiRGVjb21wcmVzc2lvbiB0ZXN0IGZhaWxlZCIpOworICAgICAgICAJcmV0dXJuOworCQl9CisgICAgfQorCit9OwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbXByZXNzaW9uL0V4aGF1c3RpdmVUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29tcHJlc3Npb24vRXhoYXVzdGl2ZVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43MjlhODAwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbXByZXNzaW9uL0V4aGF1c3RpdmVUZXN0LmphdmEKQEAgLTAsMCArMSw1MjkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb21wcmVzc2lvbi9FeGhhdXN0aXZlVGVzdC5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA1OjA3ICQgCisgKiAkUmV2aXNpb246IDEuNSAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY29tcHJlc3Npb247CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVDb21wcmVzc29yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZURlY29tcHJlc3NvcjsKK2ltcG9ydCBqYXZhLnV0aWwuUmFuZG9tOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworCitwdWJsaWMgY2xhc3MgRXhoYXVzdGl2ZVRlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisJcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3NbXSkgdGhyb3dzIEV4Y2VwdGlvbiB7CisJCW5ldyBFeGhhdXN0aXZlVGVzdCgpLnJ1bihhcmdzKTsKKwl9CisKKyAgICAvKiogVGVzdCBzaW1wbGUgY29tcHJlc3MvZGVjb21wcmVzcyBBUEksIHJldHVybmluZyAjIG9mIGVycm9ycyAqLworCXB1YmxpYyB2b2lkIHRlc3RTaW1wbGUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGZUZXN0Q2FzZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHNpbXBsZVRlc3QoZlRlc3RDYXNlc1tpXSk7CisgICAgICAgIH0KKwl9CisgICAgcHJpdmF0ZSB2b2lkIHNpbXBsZVRlc3QoU3RyaW5nIHMpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBieXRlIFtdIGNvbXByZXNzZWQgPSBVbmljb2RlQ29tcHJlc3Nvci5jb21wcmVzcyhzKTsKKyAgICAgICAgU3RyaW5nIHJlcyA9IFVuaWNvZGVEZWNvbXByZXNzb3IuZGVjb21wcmVzcyhjb21wcmVzc2VkKTsKKyAgICAgICAgaWYgKGxvZ0RpZmZzKHMudG9DaGFyQXJyYXkoKSwgcy5sZW5ndGgoKSwgCisgICAgICAgICAgICAgICAgcmVzLnRvQ2hhckFycmF5KCksIHJlcy5sZW5ndGgoKSkgPT0gZmFsc2UpIHsKKyAgICAgICAgICAgIGxvZ2xuKHMubGVuZ3RoKCkgKyAiIGNoYXJzID09PT4gIiAKKyAgICAgICAgICAgICAgICAgICAgKyBjb21wcmVzc2VkLmxlbmd0aCArICIgYnl0ZXMgPT09PiAiIAorICAgICAgICAgICAgICAgICAgICArIHJlcy5sZW5ndGgoKSArICIgY2hhcnMiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJDb21wcmVzc2VkOiIpOworICAgICAgICAgICAgcHJpbnRCeXRlcyhjb21wcmVzc2VkLCBjb21wcmVzc2VkLmxlbmd0aCk7CisgICAgICAgICAgICBlcnJsbigidGVzdFNpbXBsZSBkaWQgbm90IGNvbXByZXNzIGNvcnJlY3RseSIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqIFRlc3QgaXRlcmF0aXZlIGNvbXByZXNzL2RlY29tcHJlc3MgQVBJLCByZXR1cm5pbmcgIyBvZiBlcnJvcnMgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0SXRlcmF0aXZlKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBmVGVzdENhc2VzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBteVRlc3QoZlRlc3RDYXNlc1tpXS50b0NoYXJBcnJheSgpLCBmVGVzdENhc2VzW2ldLmxlbmd0aCgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHZvaWQgbXlUZXN0KGNoYXJbXSBjaGFycywgaW50IGxlbikgeworICAgICAgICBVbmljb2RlQ29tcHJlc3NvciBteUNvbXByZXNzb3IgPSBuZXcgVW5pY29kZUNvbXByZXNzb3IoKTsKKyAgICAgICAgVW5pY29kZURlY29tcHJlc3NvciBteURlY29tcHJlc3NvciA9IG5ldyBVbmljb2RlRGVjb21wcmVzc29yKCk7CisgICAgICAgIAorICAgICAgICAvLyB2YXJpYWJsZXMgZm9yIG15IGNvbXByZXNzb3IKKyAgICAgICAgaW50IG15Qnl0ZUNvdW50ID0gMDsKKyAgICAgICAgaW50IG15Q2hhckNvdW50ID0gMDsKKyAgICAgICAgaW50IG15Q29tcHJlc3NlZFNpemUgPSBNYXRoLm1heCg1MTIsIDMqbGVuKTsKKyAgICAgICAgYnl0ZVtdIG15Q29tcHJlc3NlZCA9IG5ldyBieXRlW215Q29tcHJlc3NlZFNpemVdOworICAgICAgICBpbnQgbXlEZWNvbXByZXNzZWRTaXplID0gTWF0aC5tYXgoMiwgMiAqIGxlbik7CisgICAgICAgIGNoYXJbXSBteURlY29tcHJlc3NlZCA9IG5ldyBjaGFyW215RGVjb21wcmVzc2VkU2l6ZV07CisgICAgICAgIGludFtdIHVuaWNoYXJzUmVhZCA9IG5ldyBpbnRbMV07CisgICAgICAgIGludFtdIGJ5dGVzUmVhZCA9IG5ldyBpbnRbMV07CisgICAgICAgIAorICAgICAgICBteUJ5dGVDb3VudCA9IG15Q29tcHJlc3Nvci5jb21wcmVzcyhjaGFycywgMCwgbGVuLCB1bmljaGFyc1JlYWQsCisgICAgICAgICAgICAgICAgbXlDb21wcmVzc2VkLCAwLCBteUNvbXByZXNzZWRTaXplKTsKKworICAgICAgICBteUNoYXJDb3VudCA9IG15RGVjb21wcmVzc29yLmRlY29tcHJlc3MobXlDb21wcmVzc2VkLCAwLCBteUJ5dGVDb3VudCwKKyAgICAgICAgICAgICAgICBieXRlc1JlYWQsIG15RGVjb21wcmVzc2VkLCAwLCBteURlY29tcHJlc3NlZFNpemUpOworCisgICAgICAgIGlmIChsb2dEaWZmcyhjaGFycywgbGVuLCBteURlY29tcHJlc3NlZCwgbXlDaGFyQ291bnQpID09IGZhbHNlKSB7CisgICAgICAgICAgICBsb2dsbihsZW4gKyAiIGNoYXJzID09PT4gIiAKKyAgICAgICAgICAgICAgICAgICAgKyBteUJ5dGVDb3VudCArICIgYnl0ZXMgPT09PiAiIAorICAgICAgICAgICAgICAgICAgICArIG15Q2hhckNvdW50ICsgIiBjaGFycyIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nbG4oIkNvbXByZXNzZWQ6Iik7CisgICAgICAgICAgICBwcmludEJ5dGVzKG15Q29tcHJlc3NlZCwgbXlCeXRlQ291bnQpOworICAgICAgICAgICAgZXJybG4oIkl0ZXJhdGl2ZSB0ZXN0IGZhaWxlZCIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqIFRlc3QgaXRlcmF0aXZlIGNvbXByZXNzL2RlY29tcHJlc3MgQVBJICovCisgICAgcHVibGljIHZvaWQgdGVzdE11bHRpcGFzcygpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgZlRlc3RDYXNlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgbXlNdWx0aXBhc3NUZXN0KGZUZXN0Q2FzZXNbaV0udG9DaGFyQXJyYXkoKSwgZlRlc3RDYXNlc1tpXS5sZW5ndGgoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIG15TXVsdGlwYXNzVGVzdChjaGFyIFtdIGNoYXJzLCBpbnQgbGVuKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgVW5pY29kZUNvbXByZXNzb3IgbXlDb21wcmVzc29yID0gbmV3IFVuaWNvZGVDb21wcmVzc29yKCk7CisgICAgICAgIFVuaWNvZGVEZWNvbXByZXNzb3IgbXlEZWNvbXByZXNzb3IgPSBuZXcgVW5pY29kZURlY29tcHJlc3NvcigpOworICAgICAgICAKKyAgICAgICAgLy8gdmFyaWFibGVzIGZvciBteSBjb21wcmVzc29yCisgICAgICAgIAorICAgICAgICAvLyBmb3IgbG9vcGluZworICAgICAgICBpbnQgYnl0ZUJ1ZmZlclNpemUgPSA0Oy8vTWF0aC5tYXgoNCwgbGVuIC8gNCk7CisgICAgICAgIGJ5dGVbXSBieXRlQnVmZmVyID0gbmV3IGJ5dGUgW2J5dGVCdWZmZXJTaXplXTsKKyAgICAgICAgLy8gcmVhbCB0YXJnZXQKKyAgICAgICAgaW50IGNvbXByZXNzZWRTaXplID0gTWF0aC5tYXgoNTEyLCAzICogbGVuKTsKKyAgICAgICAgYnl0ZVtdIGNvbXByZXNzZWQgPSBuZXcgYnl0ZVtjb21wcmVzc2VkU2l6ZV07CisKKyAgICAgICAgLy8gZm9yIGxvb3BpbmcKKyAgICAgICAgaW50IHVuaWNoYXJCdWZmZXJTaXplID0gMjsvL2J5dGVCdWZmZXJTaXplOworICAgICAgICBjaGFyW10gdW5pY2hhckJ1ZmZlciA9IG5ldyBjaGFyW3VuaWNoYXJCdWZmZXJTaXplXTsKKyAgICAgICAgLy8gcmVhbCB0YXJnZXQKKyAgICAgICAgaW50IGRlY29tcHJlc3NlZFNpemUgPSBNYXRoLm1heCgyLCAyICogbGVuKTsKKyAgICAgICAgY2hhcltdIGRlY29tcHJlc3NlZCA9IG5ldyBjaGFyW2RlY29tcHJlc3NlZFNpemVdOworCisgICAgICAgIGludCBieXRlc1dyaXR0ZW4gPSAwOworICAgICAgICBpbnQgdW5pY2hhcnNXcml0dGVuID0gMDsKKworICAgICAgICBpbnRbXSB1bmljaGFyc1JlYWQgPSBuZXcgaW50WzFdOworICAgICAgICBpbnRbXSBieXRlc1JlYWQgPSBuZXcgaW50WzFdOworICAgICAgICAKKyAgICAgICAgaW50IHRvdGFsQ2hhcnNDb21wcmVzc2VkID0gMDsKKyAgICAgICAgaW50IHRvdGFsQnl0ZXNXcml0dGVuID0gMDsKKworICAgICAgICBpbnQgdG90YWxCeXRlc0RlY29tcHJlc3NlZCAgPSAwOworICAgICAgICBpbnQgdG90YWxDaGFyc1dyaXR0ZW4gPSAwOworCisgICAgICAgIC8vIG5vdCB1c2VkIGJvb2xlYW4gZXJyID0gZmFsc2U7CisKKworICAgICAgICAvLyBwZXJmb3JtIHRoZSBjb21wcmVzc2lvbiBpbiBhIGxvb3AKKyAgICAgICAgZG8geworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBkbyB0aGUgY29tcHJlc3Npb24KKyAgICAgICAgICAgIGJ5dGVzV3JpdHRlbiA9IG15Q29tcHJlc3Nvci5jb21wcmVzcyhjaGFycywgdG90YWxDaGFyc0NvbXByZXNzZWQsIAorICAgICAgICAgICAgICAgICAgIGxlbiwgdW5pY2hhcnNSZWFkLCBieXRlQnVmZmVyLCAwLCBieXRlQnVmZmVyU2l6ZSk7CisKKyAgICAgICAgICAgIC8vIGNvcHkgdGhlIGN1cnJlbnQgc2V0IG9mIGJ5dGVzIGludG8gdGhlIHRhcmdldCBidWZmZXIKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYnl0ZUJ1ZmZlciwgMCwgY29tcHJlc3NlZCwgCisgICAgICAgICAgICAgICAgICAgdG90YWxCeXRlc1dyaXR0ZW4sIGJ5dGVzV3JpdHRlbik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIHVwZGF0ZSB0aGUgbm8uIG9mIGNoYXJhY3RlcnMgY29tcHJlc3NlZAorICAgICAgICAgICAgdG90YWxDaGFyc0NvbXByZXNzZWQgKz0gdW5pY2hhcnNSZWFkWzBdOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyB1cGRhdGUgdGhlIG5vLiBvZiBieXRlcyB3cml0dGVuCisgICAgICAgICAgICB0b3RhbEJ5dGVzV3JpdHRlbiArPSBieXRlc1dyaXR0ZW47CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8qU3lzdGVtLm91dC5sb2dsbigiQ29tcHJlc3Npb24gcGFzcyBjb21wbGV0ZS4gIENvbXByZXNzZWQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgdW5pY2hhcnNSZWFkWzBdICsgIiBjaGFycyBpbnRvICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGJ5dGVzV3JpdHRlbiArICIgYnl0ZXMuIik7Ki8KKyAgICAgICAgfSB3aGlsZSh0b3RhbENoYXJzQ29tcHJlc3NlZCA8IGxlbik7CisKKyAgICAgICAgaWYgKHRvdGFsQ2hhcnNDb21wcmVzc2VkICE9IGxlbikgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBOdW1iZXIgb2YgY2hhcmFjdGVycyBjb21wcmVzc2VkKCIKKyAgICAgICAgICAgICAgICAgICAgKyB0b3RhbENoYXJzQ29tcHJlc3NlZCArICIpICE9IGxlbigiICsgbGVuICsgIikiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJNUDogIiArIGxlbiArICIgY2hhcnMgPT09PiAiICsgdG90YWxCeXRlc1dyaXR0ZW4gKyAiIGJ5dGVzLiIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBwZXJmb3JtIHRoZSBkZWNvbXByZXNzaW9uIGluIGEgbG9vcAorICAgICAgICBkbyB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGRvIHRoZSBkZWNvbXByZXNzaW9uCisgICAgICAgICAgICB1bmljaGFyc1dyaXR0ZW4gPSBteURlY29tcHJlc3Nvci5kZWNvbXByZXNzKGNvbXByZXNzZWQsIAorICAgICAgICAgICAgICAgICAgICB0b3RhbEJ5dGVzRGVjb21wcmVzc2VkLCB0b3RhbEJ5dGVzV3JpdHRlbiwgCisgICAgICAgICAgICAgICAgICAgIGJ5dGVzUmVhZCwgdW5pY2hhckJ1ZmZlciwgMCwgdW5pY2hhckJ1ZmZlclNpemUpOworCisgICAgICAgICAgICAvLyBjb3B5IHRoZSBjdXJyZW50IHNldCBvZiBjaGFycyBpbnRvIHRoZSB0YXJnZXQgYnVmZmVyCisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHVuaWNoYXJCdWZmZXIsIDAsIGRlY29tcHJlc3NlZCwgCisgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnNXcml0dGVuLCB1bmljaGFyc1dyaXR0ZW4pOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyB1cGRhdGUgdGhlIG5vLiBvZiBieXRlcyBkZWNvbXByZXNzZWQKKyAgICAgICAgICAgIHRvdGFsQnl0ZXNEZWNvbXByZXNzZWQgKz0gYnl0ZXNSZWFkWzBdOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyB1cGRhdGUgdGhlIG5vLiBvZiBjaGFycyB3cml0dGVuCisgICAgICAgICAgICB0b3RhbENoYXJzV3JpdHRlbiArPSB1bmljaGFyc1dyaXR0ZW47CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8qU3lzdGVtLm91dC5sb2dsbigiRGVjb21wcmVzc2lvbiBwYXNzIGNvbXBsZXRlLiAgRGVjb21wcmVzc2VkICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGJ5dGVzUmVhZFswXSArICIgYnl0ZXMgaW50byAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyB1bmljaGFyc1dyaXR0ZW4gKyAiIGNoYXJzLiIpOyovCisgICAgICAgIH0gd2hpbGUgKHRvdGFsQnl0ZXNEZWNvbXByZXNzZWQgPCB0b3RhbEJ5dGVzV3JpdHRlbik7CisKKyAgICAgICAgaWYgKHRvdGFsQnl0ZXNEZWNvbXByZXNzZWQgIT0gdG90YWxCeXRlc1dyaXR0ZW4pIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogTnVtYmVyIG9mIGJ5dGVzIGRlY29tcHJlc3NlZCgiIAorICAgICAgICAgICAgICAgICAgICArIHRvdGFsQnl0ZXNEZWNvbXByZXNzZWQgCisgICAgICAgICAgICAgICAgICAgICsgIikgIT0gdG90YWxCeXRlc1dyaXR0ZW4oIiAKKyAgICAgICAgICAgICAgICAgICAgKyB0b3RhbEJ5dGVzV3JpdHRlbiArICIpIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2dsbigiTVA6ICIgKyB0b3RhbEJ5dGVzV3JpdHRlbgorICAgICAgICAgICAgICAgICAgICArICIgYnl0ZXMgPT09PiAiICsgdG90YWxDaGFyc1dyaXR0ZW4gKyAiIGNoYXJzLiIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAobG9nRGlmZnMoY2hhcnMsIGxlbiwgZGVjb21wcmVzc2VkLCB0b3RhbENoYXJzV3JpdHRlbikpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogYnVmZmVyIGNvbnRlbnRzIGluY29ycmVjdCIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqIFByaW50IGRpZmZlcmVuY2VzIGJldHdlZW4gdHdvIGNoYXJhY3RlciBidWZmZXJzICovCisgICAgcHJpdmF0ZSBib29sZWFuIGxvZ0RpZmZzKGNoYXJbXSBzMSwgaW50IHMxbGVuLCBjaGFyW10gczIsIGludCBzMmxlbikgeworICAgICAgICBib29sZWFuIHJlc3VsdCAgPSBmYWxzZTsKKyAgICAgICAgCisgICAgICAgIGlmKHMxbGVuICE9IHMybGVuKSB7CisgICAgICAgICAgICBsb2dsbigiPT09PT09PT09PT09PT09PT09PT0iKTsKKyAgICAgICAgICAgIGxvZ2xuKCJMZW5ndGggZG9lc24ndCBtYXRjaDogZXhwZWN0ZWQgIiArIHMxbGVuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiLCBnb3QgIiArIHMybGVuKTsKKyAgICAgICAgICAgIGxvZ2xuKCJFeHBlY3RlZDoiKTsKKyAgICAgICAgICAgIHByaW50Q2hhcnMoczEsIHMxbGVuKTsKKyAgICAgICAgICAgIGxvZ2xuKCJHb3Q6Iik7CisgICAgICAgICAgICBwcmludENoYXJzKHMyLCBzMmxlbik7CisgICAgICAgICAgICByZXN1bHQgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgbGVuID0gTWF0aC5taW4oczFsZW4sIHMybGVuKTsKKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGxlbjsgKytpKSB7CisgICAgICAgICAgICBpZihzMVtpXSAhPSBzMltpXSkgeworICAgICAgICAgICAgICAgIGlmKHJlc3VsdCA9PSBmYWxzZSkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiPT09PT09PT09PT09PT09PT09PT0iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbG9nbG4oIkZpcnN0IGRpZmZlcmVuY2UgYXQgY2hhciAiICsgaSk7CisgICAgICAgICAgICAgICAgbG9nbG4oIkV4cC4gY2hhcjogIiArIEludGVnZXIudG9IZXhTdHJpbmcoczFbaV0pKTsKKyAgICAgICAgICAgICAgICBsb2dsbigiR290IGNoYXIgOiAiICsgSW50ZWdlci50b0hleFN0cmluZyhzMltpXSkpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJFeHBlY3RlZDoiKTsKKyAgICAgICAgICAgICAgICBwcmludENoYXJzKHMxLCBzMWxlbik7CisgICAgICAgICAgICAgICAgbG9nbG4oIkdvdDoiKTsKKyAgICAgICAgICAgICAgICBwcmludENoYXJzKHMyLCBzMmxlbik7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8vIGdlbmVyYXRlIGEgc3RyaW5nIG9mIGNoYXJhY3RlcnMsIHdpdGggc2ltdWxhdGVkIHJ1bnMgb2YgY2hhcmFjdGVycworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXSByYW5kb21DaGFycyhpbnQgbGVuLCBSYW5kb20gcmFuZG9tKSB7CisgICAgICAgIGNoYXJbXSByZXN1bHQgPSBuZXcgY2hhciBbbGVuXTsKKyAgICAgICAgaW50IHJ1bkxlbiA9IDA7CisgICAgICAgIGludCB1c2VkID0gMDsKKyAgICAgICAgCisgICAgICAgIHdoaWxlKHVzZWQgPCBsZW4pIHsKKyAgICAgICAgICAgIHJ1bkxlbiA9IChpbnQpICgzMCAqIHJhbmRvbS5uZXh0RG91YmxlKCkpOworICAgICAgICAgICAgaWYodXNlZCArIHJ1bkxlbiA+PSBsZW4pIHsKKyAgICAgICAgICAgICAgICBydW5MZW4gPSBsZW4gLSB1c2VkOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmFuZG9tUnVuKHJlc3VsdCwgdXNlZCwgcnVuTGVuLCByYW5kb20pOworICAgICAgICAgICAgdXNlZCArPSBydW5MZW47CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvLyBnZW5lcmF0ZSBhIHJ1biBvZiBjaGFyYWN0ZXJzIGluIGEgIndpbmRvdyIKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHJhbmRvbVJ1bihjaGFyW10gdGFyZ2V0LCBpbnQgcG9zLCBpbnQgbGVuLCBSYW5kb20gcmFuZG9tKSB7CisgICAgICAgIGludCBvZmZzZXQgPSAoaW50KSAoMHhGRkZGICogcmFuZG9tLm5leHREb3VibGUoKSk7CisKKyAgICAgICAgLy8gZG9uJ3Qgb3ZlcmZsb3cgMTYgYml0cworICAgICAgICBpZihvZmZzZXQgPiAweEZGODApIHsKKyAgICAgICAgICAgIG9mZnNldCA9IDB4RkY4MDsKKyAgICAgICAgfQorCisgICAgICAgIGZvcihpbnQgaSA9IHBvczsgaSA8IHBvcyArIGxlbjsgaSsrKSB7CisgICAgICAgICAgICB0YXJnZXRbaV0gPSAoY2hhcikob2Zmc2V0ICsgKDB4N0YgKiByYW5kb20ubmV4dERvdWJsZSgpKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgW10gZlRlc3RDYXNlcyA9IHsKKyAgICAgICAgIkhlbGxvIFx1OTI5MiBcdTkxOTIgV29ybGQhIiwKKyAgICAgICAgIkhlbGxcdTA0MjlvIFx1OTI5MiBcdTkxOTIgV1x1MDA4NHJsZCEiLAorICAgICAgICAiSGVsbFx1MDQyOW8gXHU5MjkyIFx1OTI5MldcdTAwODRybGQhIiwKKworICAgICAgICAiXHUwNjQ4XHUwNmM4IiwgLy8gY2F0Y2ggbWlzc2luZyByZXNldAorICAgICAgICAiXHUwNjQ4XHUwNmM4IiwKKworICAgICAgICAiXHU0NDQ0XHVFMDAxIiwgLy8gbG93ZXN0IHF1b3RhYmxlCisgICAgICAgICJcdTQ0NDRcdWYyRkYiLCAvLyBoaWdoZXN0IHF1b3RhYmxlCisgICAgICAgICJcdTQ0NDRcdWYxODhcdTQ0NDQiLAorICAgICAgICAiXHU0NDQ0XHVmMTg4XHVmMjg4IiwKKyAgICAgICAgIlx1NDQ0NFx1ZjE4OGFiY1wwNDI5XHVmMjg4IiwKKyAgICAgICAgIlx1OTI5Mlx1MjIyMiIsCisgICAgICAgICJIZWxsXHUwNDI5XHUwNDIzMG8gXHU5MjkyIFx1OTI5MldcdTAwODRcdTAxOTJybGQhIiwKKyAgICAgICAgIkhlbGxcdTA0MjlvIFx1OTI5MiBcdTkyOTJXXHUwMDg0cmxkISIsCisgICAgICAgICJIZWxsbyBXb3JsZCExMjM0NTYiLAorICAgICAgICAiSGVsbG8gV1x1MDA4MVx1MDExZlx1MDA4MiEiLCAvLyBMYXRpbiAxIHJ1bgorCisgICAgICAgICJhYmNcdTAzMDFcdTAzMDIiLCAgLy8gdXNlcyBTUW4gZm9yIHUzMDEgdTMwMgorICAgICAgICAiYWJjXHU0NDExZCIsICAgICAgLy8gdXNlcyBTUVUKKyAgICAgICAgImFiY1x1NDQxMVx1NDQxMmQiLC8vIHVzZXMgU0NVCisgICAgICAgICJhYmNcdTA0MDFcdTA0MDJcdTA0N2ZcdTAwYTVcdTA0MDUiLCAvLyB1c2VzIFNRbiBmb3IgdWE1CisgICAgICAgICJcdTkxOTFcdTkxOTFcdTMwNDFcdTkxOTFcdTMwNDFcdTMwNDFcdTMwMDAiLCAvLyBTSklTIGxpa2UgZGF0YQorICAgICAgICAiXHU5MjkyXHUyMjIyIiwKKyAgICAgICAgIlx1OTE5MVx1OTE5MVx1MzA0MVx1OTE5MVx1MzA0MVx1MzA0MVx1MzAwMCIsCisgICAgICAgICJcdTk5OTlcdTMwNTFcdTMwMGNcdTk5OTlcdTk5OTlcdTMwNjBcdTk5OTlcdTMwNjVcdTMwNjVcdTMwNjVcdTMwMGMiLAorICAgICAgICAiXHUzMDAwXHUyNjZhXHUzMGVhXHUzMGYzXHUzMGI0XHU1M2VmXHU2MTFiXHUzMDQ0XHUzMDg0XHU1M2VmXHU2MTFiXHUzMDQ0XHUzMDg0XHUzMGVhXHUzMGYzXHUzMGI0XHUzMDAyIiwKKworICAgICAgICAiIiwgLy8gZW1wdHkgaW5wdXQKKyAgICAgICAgIlx1MDAwMCIsIC8vIHNtYWxsZXN0IEJNUCBjaGFyYWN0ZXIKKyAgICAgICAgIlx1RkZGRiIsIC8vIGxhcmdlc3QgQk1QIGNoYXJhY3RlcgorCisgICAgICAgICJcdWQ4MDBcdWRjMDAiLCAvLyBzbWFsbGVzdCBzdXJyb2dhdGUKKyAgICAgICAgIlx1ZDhmZlx1ZGNmZiIsIC8vIGxhcmdlc3Qgc3Vycm9nYXRlIHBhaXIKKyAgICAgICAgCisgICAgICAgIC8vIHJlZ3Jlc3Npb24gdGVzdHMKKyAgICAgICAgIlx1NjQ0MVx1YjQxM1x1YTczM1x1ZjhmZVx1ZWVkYlx1NTg3Zlx1MTk1Zlx1NDg5OVx1ZjIzZFx1NDlmZFx1MGFhY1x1NTc5Mlx1ZmMyMlx1ZmMzY1x1ZmM0Nlx1MDBhYSIsCisgICAgICAgICJcdTMwZjlcdTgzMjFcdTA1ZTVcdTE4MWNcdWQ3MmJcdTIwMTlcdTk5YzlcdTJmMmZcdWMxMGNcdTgyZTFcdTJjNGRcdTFlYmNcdTYwMTNcdTY2ZGNcdWJiZGVcdTk0YTVcdTQ3MjZcdTc0YWZcdTMwODNcdTU1YjlcdTAwMGMiLAorICAgICAgICAiXHUwMDQxXHUwMGRmXHUwNDAxXHUwMTVmIiwKKyAgICAgICAgIlx1OTA2Nlx1MjEyM2FiYyIsCisgICAgICAgICJcdWQyNjZcdTQzZDdcXFx1ZTM4Nlx1YzljMFx1NGE2Ylx1OTIyMlx1OTAxZlx1NzQxMFx1YTYzZlx1NTM5Ylx1OTU5Nlx1NDgyZVx1OWQ0N1x1Y2ZlNFx1N2I3MVx1YzI4MFx1ZjI2YVx1OTgyZlx1ODYyYVx1NGVkZFx1ZjUxM1x1ZmRhNlx1ODY5ZFx1MmVlMFx1YTIxNlx1M2ZmNlx1M2M3MFx1ODljMFx1OTU3Nlx1ZDVlY1x1YmZkYVx1NmNjYVx1NWJiM1x1YmNlYVx1NTU0Y1x1OTE0ZVx1ZmE0YVx1ZWRlM1x1Mjk5MFx1ZDJmNVx1MjcyOVx1NTE0MVx1MGYyNlx1Y2NkOFx1NTQxM1x1ZDE5Nlx1YmJlMlx1NTFiOVx1OWI0OFx1MGRjOFx1MjE5NVx1MjFhMlx1MjFlOVx1MDBlNFx1OWQ5Mlx1MGJjMFx1MDZjNSIsCisgICAgICAgICJcdWY5NWJcdTI0NThcdTI0NjhcdTBlMjBcdWY1MWJcdWUzNmVcdWJmYzFcdTAwODBcdTAyZGRcdWYxYjVcdTBjZjNcdTYwNTlcdTc0ODkiCisKKyAgICB9OworCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIENvbXByZXNzaW9uIG1vZGVzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTSU5HTEVCWVRFTU9ERSAgICAgICAgICAgICAgICAgPSAwOworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBVTklDT0RFTU9ERSAgICAgICAgICAgICAgICAgICAgICAgID0gMTsKKyAgICAKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gU2luZ2xlLWJ5dGUgbW9kZSB0YWdzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTREVGSU5FWCAgICAgICAgICAgICAgICAgICA9IDB4MEI7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNSRVNFUlZFRCAgICAgICAgICAgICAgICAgID0gMHgwQzsgICAgICAgICAgICAgLy8gdGhpcyBpcyBhIHJlc2VydmVkIHZhbHVlCisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNRVU9URVUgICAgICAgICAgICAgICAgICAgID0gMHgwRTsKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU1NXSVRDSFUgICAgICAgICAgICAgICAgICAgPSAweDBGOworCisgICAgICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTUVVPVEUwICAgICAgICAgICAgICAgICAgICAgICAgPSAweDAxOworICAgICAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFMSAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwMjsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNRVU9URTIgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MDM7CisgICAgICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTUVVPVEUzICAgICAgICAgICAgICAgICAgICAgICAgPSAweDA0OworICAgICAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFNCAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwNTsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNRVU9URTUgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MDY7CisgICAgICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTUVVPVEU2ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwNzsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNRVU9URTcgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MDg7CisKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNTV0lUQ0gwICAgICAgICAgICAgICAgICAgICAgICA9IDB4MTA7CisgICAgICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTU1dJVENIMSAgICAgICAgICAgICAgICAgICAgICAgPSAweDExOworICAgICAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU1NXSVRDSDIgICAgICAgICAgICAgICAgICAgICAgID0gMHgxMjsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNTV0lUQ0gzICAgICAgICAgICAgICAgICAgICAgICA9IDB4MTM7CisgICAgICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTU1dJVENINCAgICAgICAgICAgICAgICAgICAgICAgPSAweDE0OworICAgICAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU1NXSVRDSDUgICAgICAgICAgICAgICAgICAgICAgID0gMHgxNTsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNTV0lUQ0g2ICAgICAgICAgICAgICAgICAgICAgICA9IDB4MTY7CisgICAgICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTU1dJVENINyAgICAgICAgICAgICAgICAgICAgICAgPSAweDE3OworCisgICAgICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTREVGSU5FMCAgICAgICAgICAgICAgICAgICAgICAgPSAweDE4OworICAgICAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU0RFRklORTEgICAgICAgICAgICAgICAgICAgICAgID0gMHgxOTsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkUyICAgICAgICAgICAgICAgICAgICAgICA9IDB4MUE7CisgICAgICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTREVGSU5FMyAgICAgICAgICAgICAgICAgICAgICAgPSAweDFCOworICAgICAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU0RFRklORTQgICAgICAgICAgICAgICAgICAgICAgID0gMHgxQzsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkU1ICAgICAgICAgICAgICAgICAgICAgICA9IDB4MUQ7CisgICAgICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTREVGSU5FNiAgICAgICAgICAgICAgICAgICAgICAgPSAweDFFOworICAgICAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU0RFRklORTcgICAgICAgICAgICAgICAgICAgICAgID0gMHgxRjsKKworICAgICAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgICAgIC8vIFVuaWNvZGUgbW9kZSB0YWdzCisgICAgICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFVTV0lUQ0gwICAgICAgICAgICAgICAgICAgICAgICA9IDB4RTA7CisgICAgICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBVU1dJVENIMSAgICAgICAgICAgICAgICAgICAgICAgPSAweEUxOworICAgICAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgVVNXSVRDSDIgICAgICAgICAgICAgICAgICAgICAgID0gMHhFMjsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFVTV0lUQ0gzICAgICAgICAgICAgICAgICAgICAgICA9IDB4RTM7CisgICAgICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBVU1dJVENINCAgICAgICAgICAgICAgICAgICAgICAgPSAweEU0OworICAgICAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgVVNXSVRDSDUgICAgICAgICAgICAgICAgICAgICAgID0gMHhFNTsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFVTV0lUQ0g2ICAgICAgICAgICAgICAgICAgICAgICA9IDB4RTY7CisgICAgICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBVU1dJVENINyAgICAgICAgICAgICAgICAgICAgICAgPSAweEU3OworCisgICAgICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBVREVGSU5FMCAgICAgICAgICAgICAgICAgICAgICAgPSAweEU4OworICAgICAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORTEgICAgICAgICAgICAgICAgICAgICAgID0gMHhFOTsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkUyICAgICAgICAgICAgICAgICAgICAgICA9IDB4RUE7CisgICAgICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBVREVGSU5FMyAgICAgICAgICAgICAgICAgICAgICAgPSAweEVCOworICAgICAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORTQgICAgICAgICAgICAgICAgICAgICAgID0gMHhFQzsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkU1ICAgICAgICAgICAgICAgICAgICAgICA9IDB4RUQ7CisgICAgICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBVREVGSU5FNiAgICAgICAgICAgICAgICAgICAgICAgPSAweEVFOworICAgICAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORTcgICAgICAgICAgICAgICAgICAgICAgID0gMHhFRjsKKworICAgICAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgVVFVT1RFVSAgICAgICAgICAgICAgICAgICAgICAgID0gMHhGMDsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkVYICAgICAgICAgICAgICAgICAgICAgICA9IDB4RjE7CisgICAgICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBVUkVTRVJWRUQgICAgICAgICAgICAgICAgICAgICAgPSAweEYyOyAgICAgICAgIC8vIHRoaXMgaXMgYSByZXNlcnZlZCB2YWx1ZQorCisgICAgLyogUHJpbnQgb3V0IGFuIGFycmF5IG9mIGNoYXJhY3RlcnMsIHdpdGggbm9uLXByaW50YWJsZXMgKGZvciBtZSkgCisgICAgICAgZGlzcGxheWVkIGFzIGhleCB2YWx1ZXMgKi8KKyAgICBwcml2YXRlIHZvaWQgcHJpbnRDaGFycyhjaGFyW10gY2hhcnMsIGludCBsZW4pIHsKKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7CisgICAgICAgICAgICBpbnQgYyA9IChpbnQpY2hhcnNbaV07CisgICAgICAgICAgICBpZihjIDwgMHgwMDIwIHx8IGMgPj0gMHg3ZikgeworICAgICAgICAgICAgICAgIGxvZygiWzB4Iik7CisgICAgICAgICAgICAgICAgbG9nKEludGVnZXIudG9IZXhTdHJpbmcoYykpOworICAgICAgICAgICAgICAgIGxvZygiXSIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2coU3RyaW5nLnZhbHVlT2YoKGNoYXIpYykpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGxvZ2xuKCIiKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcHJpbnRCeXRlcyhieXRlW10gYnl0ZUJ1ZmZlciwgaW50IGxlbikgeworICAgICAgICBpbnQgY3VyQnl0ZUluZGV4ID0gMDsKKyAgICAgICAgaW50IGJ5dGVCdWZmZXJMaW1pdCA9IGxlbjsKKyAgICAgICAgaW50IG1vZGUgPSBTSU5HTEVCWVRFTU9ERTsKKyAgICAgICAgaW50IGFCeXRlID0gMHgwMDsKKyAgICAgICAgCisgICAgICAgIGlmKGxlbiA+IGJ5dGVCdWZmZXIubGVuZ3RoKSB7CisgICAgICAgICAgICBsb2dsbigiV2FybmluZzogcHJpbnRCeXRlcyBjYWxsZWQgd2l0aCBsZW5ndGggdG9vIGxhcmdlLiBUcnVuY2F0aW5nIik7CisgICAgICAgICAgICBieXRlQnVmZmVyTGltaXQgPSBieXRlQnVmZmVyLmxlbmd0aDs7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHdoaWxlKGN1ckJ5dGVJbmRleCA8IGJ5dGVCdWZmZXJMaW1pdCkgeworICAgICAgICAgICAgc3dpdGNoKG1vZGUpIHsgIAorICAgICAgICAgICAgY2FzZSBTSU5HTEVCWVRFTU9ERToKKyAgICAgICAgICAgICAgICB3aGlsZShjdXJCeXRlSW5kZXggPCBieXRlQnVmZmVyTGltaXQgCisgICAgICAgICAgICAgICAgICAgICAgJiYgbW9kZSA9PSBTSU5HTEVCWVRFTU9ERSkgIHsKKyAgICAgICAgICAgICAgICAgICAgYUJ5dGUgPSAoKGludClieXRlQnVmZmVyW2N1ckJ5dGVJbmRleCsrXSkgJiAweEZGOworICAgICAgICAgICAgICAgICAgICBzd2l0Y2goYUJ5dGUpIHsKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhJbnRlZ2VyLnRvSGV4U3RyaW5nKCgoaW50KSBhQnl0ZSkgJiAweEZGKSArICIgIik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHF1b3RlIHVuaWNvZGUKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBTUVVPVEVVOgorICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCJTUVVPVEVVICIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1ckJ5dGVJbmRleCA8IGJ5dGVCdWZmZXJMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhJbnRlZ2VyLnRvSGV4U3RyaW5nKCgoaW50KSBieXRlQnVmZmVyW2N1ckJ5dGVJbmRleCsrXSkgJiAweEZGKSArICIgIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VyQnl0ZUluZGV4IDwgYnl0ZUJ1ZmZlckxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKEludGVnZXIudG9IZXhTdHJpbmcoKChpbnQpIGJ5dGVCdWZmZXJbY3VyQnl0ZUluZGV4KytdKSAmIDB4RkYpICsgIiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBzd2l0Y2ggdG8gVW5pY29kZSBtb2RlCisgICAgICAgICAgICAgICAgICAgIGNhc2UgU1NXSVRDSFU6CisgICAgICAgICAgICAgICAgICAgICAgICBsb2coIlNTV0lUQ0hVICIpOworICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSA9IFVOSUNPREVNT0RFOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGhhbmRsZSBhbGwgcXVvdGUgdGFncworICAgICAgICAgICAgICAgICAgICBjYXNlIFNRVU9URTA6IGNhc2UgU1FVT1RFMTogY2FzZSBTUVVPVEUyOiBjYXNlIFNRVU9URTM6CisgICAgICAgICAgICAgICAgICAgIGNhc2UgU1FVT1RFNDogY2FzZSBTUVVPVEU1OiBjYXNlIFNRVU9URTY6IGNhc2UgU1FVT1RFNzoKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZygiU1FVT1RFIiArIChhQnl0ZSAtIFNRVU9URTApICsgIiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGN1ckJ5dGVJbmRleCA8IGJ5dGVCdWZmZXJMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhJbnRlZ2VyLnRvSGV4U3RyaW5nKCgoaW50KSBieXRlQnVmZmVyW2N1ckJ5dGVJbmRleCsrXSkgJiAweEZGKSArICIgIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGFuZGxlIGFsbCBzd2l0Y2ggdGFncworICAgICAgICAgICAgICAgICAgICBjYXNlIFNTV0lUQ0gwOiBjYXNlIFNTV0lUQ0gxOiBjYXNlIFNTV0lUQ0gyOiBjYXNlIFNTV0lUQ0gzOgorICAgICAgICAgICAgICAgICAgICBjYXNlIFNTV0lUQ0g0OiBjYXNlIFNTV0lUQ0g1OiBjYXNlIFNTV0lUQ0g2OiBjYXNlIFNTV0lUQ0g3OgorICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCJTU1dJVENIIiArIChhQnl0ZSAtIFNTV0lUQ0gwKSArICIgIik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGhhbmRsZSBhbGwgZGVmaW5lIHRhZ3MKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBTREVGSU5FMDogY2FzZSBTREVGSU5FMTogY2FzZSBTREVGSU5FMjogY2FzZSBTREVGSU5FMzoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBTREVGSU5FNDogY2FzZSBTREVGSU5FNTogY2FzZSBTREVGSU5FNjogY2FzZSBTREVGSU5FNzoKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZygiU0RFRklORSIgKyAoYUJ5dGUgLSBTREVGSU5FMCkgKyAiICIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1ckJ5dGVJbmRleCA8IGJ5dGVCdWZmZXJMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhJbnRlZ2VyLnRvSGV4U3RyaW5nKCgoaW50KSBieXRlQnVmZmVyW2N1ckJ5dGVJbmRleCsrXSkgJiAweEZGKSArICIgIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGFuZGxlIGRlZmluZSBleHRlbmRlZCB0YWcKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBTREVGSU5FWDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZygiU0RFRklORVggIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VyQnl0ZUluZGV4IDwgYnl0ZUJ1ZmZlckxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKEludGVnZXIudG9IZXhTdHJpbmcoKChpbnQpIGJ5dGVCdWZmZXJbY3VyQnl0ZUluZGV4KytdKSAmIDB4RkYpICsgIiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJCeXRlSW5kZXggPCBieXRlQnVmZmVyTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coSW50ZWdlci50b0hleFN0cmluZygoKGludCkgYnl0ZUJ1ZmZlcltjdXJCeXRlSW5kZXgrK10pICYgMHhGRikgKyAiICIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgfSAvLyBlbmQgc3dpdGNoCisgICAgICAgICAgICAgICAgfSAvLyBlbmQgd2hpbGUKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgVU5JQ09ERU1PREU6CisgICAgICAgICAgICAgICAgd2hpbGUoY3VyQnl0ZUluZGV4IDwgYnl0ZUJ1ZmZlckxpbWl0ICYmIG1vZGUgPT0gVU5JQ09ERU1PREUpIHsKKyAgICAgICAgICAgICAgICAgICAgYUJ5dGUgPSAoKGludClieXRlQnVmZmVyW2N1ckJ5dGVJbmRleCsrXSkgJiAweEZGOworICAgICAgICAgICAgICAgICAgICBzd2l0Y2goYUJ5dGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGhhbmRsZSBhbGwgZGVmaW5lIHRhZ3MKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVREVGSU5FMDogY2FzZSBVREVGSU5FMTogY2FzZSBVREVGSU5FMjogY2FzZSBVREVGSU5FMzoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVREVGSU5FNDogY2FzZSBVREVGSU5FNTogY2FzZSBVREVGSU5FNjogY2FzZSBVREVGSU5FNzoKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZygiVURFRklORSIgKyAoYUJ5dGUgLSBVREVGSU5FMCkgKyAiICIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1ckJ5dGVJbmRleCA8IGJ5dGVCdWZmZXJMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhJbnRlZ2VyLnRvSGV4U3RyaW5nKCgoaW50KSBieXRlQnVmZmVyW2N1ckJ5dGVJbmRleCsrXSkgJiAweEZGKSArICIgIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBtb2RlID0gU0lOR0xFQllURU1PREU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGFuZGxlIGRlZmluZSBleHRlbmRlZCB0YWcKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVREVGSU5FWDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZygiVURFRklORVggIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VyQnl0ZUluZGV4IDwgYnl0ZUJ1ZmZlckxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKEludGVnZXIudG9IZXhTdHJpbmcoKChpbnQpIGJ5dGVCdWZmZXJbY3VyQnl0ZUluZGV4KytdKSAmIDB4RkYpICsgIiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJCeXRlSW5kZXggPCBieXRlQnVmZmVyTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coSW50ZWdlci50b0hleFN0cmluZygoKGludCkgYnl0ZUJ1ZmZlcltjdXJCeXRlSW5kZXgrK10pICYgMHhGRikgKyAiICIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGhhbmRsZSBhbGwgc3dpdGNoIHRhZ3MKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVU1dJVENIMDogY2FzZSBVU1dJVENIMTogY2FzZSBVU1dJVENIMjogY2FzZSBVU1dJVENIMzoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVU1dJVENINDogY2FzZSBVU1dJVENINTogY2FzZSBVU1dJVENINjogY2FzZSBVU1dJVENINzoKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZygiVVNXSVRDSCIgKyAoYUJ5dGUgLSBVU1dJVENIMCkgKyAiICIpOworICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSA9IFNJTkdMRUJZVEVNT0RFOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHF1b3RlIHVuaWNvZGUKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUVVPVEVVOgorICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCJVUVVPVEVVICIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1ckJ5dGVJbmRleCA8IGJ5dGVCdWZmZXJMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhJbnRlZ2VyLnRvSGV4U3RyaW5nKCgoaW50KSBieXRlQnVmZmVyW2N1ckJ5dGVJbmRleCsrXSkgJiAweEZGKSArICIgIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VyQnl0ZUluZGV4IDwgYnl0ZUJ1ZmZlckxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKEludGVnZXIudG9IZXhTdHJpbmcoKChpbnQpIGJ5dGVCdWZmZXJbY3VyQnl0ZUluZGV4KytdKSAmIDB4RkYpICsgIiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBsb2coSW50ZWdlci50b0hleFN0cmluZygoKGludCkgYUJ5dGUpICYgMHhGRikgKyAiICIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1ckJ5dGVJbmRleCA8IGJ5dGVCdWZmZXJMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhJbnRlZ2VyLnRvSGV4U3RyaW5nKCgoaW50KSBieXRlQnVmZmVyW2N1ckJ5dGVJbmRleCsrXSkgJiAweEZGKSArICIgIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICB9IC8vIGVuZCBzd2l0Y2gKKyAgICAgICAgICAgICAgICB9IC8vIGVuZCB3aGlsZQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfSAvLyBlbmQgc3dpdGNoKCBtb2RlICkKKyAgICAgICAgfSAvLyBlbmQgd2hpbGUKKyAgICAgICAgCisgICAgICAgIGxvZ2xuKCIiKTsKKyAgICB9ICAgIAorfQorCisKKworCisKKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbXByZXNzaW9uL3BhY2thZ2UuaHRtbCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb21wcmVzc2lvbi9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzE4YjNjYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb21wcmVzc2lvbi9wYWNrYWdlLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMiBGaW5hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisgICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb21wcmVzc2lvbi9wYWNrYWdlLmh0bWwsdiAkCisgICRSZXZpc2lvbjogMS4xICQKKyAgJERhdGU6IDIwMDAvMDMvMTUgMjE6MzU6NDkgJAorLS0+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CitUZXN0cyBmb3IgdGhlIGNvbXByZXNzaW9uIGNsYXNzZXMuCis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9CaWdOdW1iZXJGb3JtYXRUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0JpZ051bWJlckZvcm1hdFRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xODczOWNmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9CaWdOdW1iZXJGb3JtYXRUZXN0LmphdmEKQEAgLTAsMCArMSw0MjcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvQmlnTnVtYmVyRm9ybWF0VGVzdC5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzI1IDIyOjQzOjU5ICQgCisgKiAkUmV2aXNpb246IDEuMTQgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLio7CitpbXBvcnQgamF2YS5tYXRoLkJpZ0ludGVnZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCisvKioKKyAqIEB0ZXN0CisgKiBHZW5lcmFsIHRlc3Qgb2YgQmlnIE51bWJlckZvcm1hdAorICovCitwdWJsaWMgY2xhc3MgQmlnTnVtYmVyRm9ybWF0VGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKworICAgIHN0YXRpYyBmaW5hbCBpbnQgSUxMRUdBTCA9IC0xOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBCaWdOdW1iZXJGb3JtYXRUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAJCisgICAgcHVibGljIHZvaWQgVGVzdEV4cG9uZW50KCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBVUyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworICAgICAgICBEZWNpbWFsRm9ybWF0IGZtdDEgPSBuZXcgRGVjaW1hbEZvcm1hdCgiMC4jIyNFMCIsIFVTKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQyID0gbmV3IERlY2ltYWxGb3JtYXQoIjAuIyMjRSswIiwgVVMpOworICAgICAgICBOdW1iZXIgbiA9IG5ldyBMb25nKDEyMzQpOworICAgICAgICBleHBlY3QoZm10MSwgbiwgIjEuMjM0RTMiKTsKKyAgICAgICAgZXhwZWN0KGZtdDIsIG4sICIxLjIzNEUrMyIpOworICAgICAgICBleHBlY3QoZm10MSwgIjEuMjM0RTMiLCBuKTsKKyAgICAgICAgZXhwZWN0KGZtdDEsICIxLjIzNEUrMyIsIG4pOyAvLyBFaXRoZXIgZm9ybWF0IHNob3VsZCBwYXJzZSAiRSszIgorICAgICAgICBleHBlY3QoZm10MiwgIjEuMjM0RSszIiwgbik7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgZnVuY3Rpb25pbmcgb2YgdGhlIHNlY29uZGFyeSBncm91cGluZyB2YWx1ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0U2Vjb25kYXJ5R3JvdXBpbmcoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIFVTID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLCMjLCMjIyIsIFVTKTsKKyAgICAgICAgZXhwZWN0KGYsIG5ldyBMb25nKDEyMzQ1Njc4OSksICIxMiwzNCw1Niw3ODkiKTsKKyAgICAgICAgZXhwZWN0UGF0KGYsICIjLCMjLCMjIyIpOworICAgICAgICBmLmFwcGx5UGF0dGVybigiIywjIyMiKTsKKyAgICAgICAgZi5zZXRTZWNvbmRhcnlHcm91cGluZ1NpemUoNCk7CisgICAgICAgIGV4cGVjdChmLCBuZXcgTG9uZygxMjM0NTY3ODkpLCAiMTIsMzQ1Niw3ODkiKTsKKyAgICAgICAgZXhwZWN0UGF0KGYsICIjLCMjIyMsIyMjIik7CisKKyAgICAgICAgLy8gT24gU3VuIEpESyAxLjItMS4zLCB0aGUgaGlfSU4gbG9jYWxlIHVzZXMgJzAnIGZvciBhIHplcm8gZGlnaXQsCisgICAgICAgIC8vIGJ1dCBvbiBJQk0gSkRLIDEuMi0xLjMsIHRoZSBsb2NhbGUgdXNlcyBVKzA5NjYuCisgICAgICAgIGYgPSAoRGVjaW1hbEZvcm1hdCkgTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKG5ldyBMb2NhbGUoImhpIiwgIklOIikpOworICAgICAgICBTdHJpbmcgc3RyID0gdHJhbnNtdXRlKCIxLDg3LDY1LDQzLDIxMCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZi5nZXREZWNpbWFsRm9ybWF0U3ltYm9scygpLmdldFplcm9EaWdpdCgpKTsKKyAgICAgICAgZXhwZWN0KGYsIG5ldyBMb25nKDE4NzY1NDMyMTApLCBzdHIpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBleHBlY3RQYWQoRGVjaW1hbEZvcm1hdCBmbXQsIFN0cmluZyBwYXQsIGludCBwb3MpIHsKKyAgICAgICAgZXhwZWN0UGFkKGZtdCwgcGF0LCBwb3MsIDAsIChjaGFyKTApOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBleHBlY3RQYWQoRGVjaW1hbEZvcm1hdCBmbXQsIFN0cmluZyBwYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcG9zLCBpbnQgd2lkdGgsIGNoYXIgcGFkKSB7CisgICAgICAgIGludCBhcG9zID0gMCwgYXdpZHRoID0gMDsKKyAgICAgICAgY2hhciBhcGFkID0gMDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZtdC5hcHBseVBhdHRlcm4ocGF0KTsKKyAgICAgICAgICAgIGFwb3MgPSBmbXQuZ2V0UGFkUG9zaXRpb24oKTsKKyAgICAgICAgICAgIGF3aWR0aCA9IGZtdC5nZXRGb3JtYXRXaWR0aCgpOworICAgICAgICAgICAgYXBhZCA9IGZtdC5nZXRQYWRDaGFyYWN0ZXIoKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGFwb3MgPSAtMTsKKyAgICAgICAgICAgIGF3aWR0aCA9IHdpZHRoOworICAgICAgICAgICAgYXBhZCA9IHBhZDsKKyAgICAgICAgfQorICAgICAgICBpZiAoYXBvcyA9PSBwb3MgJiYgYXdpZHRoID09IHdpZHRoICYmIGFwYWQgPT0gcGFkKSB7CisgICAgICAgICAgICBsb2dsbigiT2sgICBcIiIgKyBwYXQgKyAiXCIgcG9zPSIgKyBhcG9zICsKKyAgICAgICAgICAgICAgICAgICgocG9zID09IC0xKSA/ICIiIDogIiB3aWR0aD0iICsgYXdpZHRoICsgIiBwYWQ9IiArIGFwYWQpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJGQUlMIFwiIiArIHBhdCArICJcIiBwb3M9IiArIGFwb3MgKworICAgICAgICAgICAgICAgICAgIiB3aWR0aD0iICsgYXdpZHRoICsgIiBwYWQ9IiArIGFwYWQgKworICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQgIiArIHBvcyArICIgIiArIHdpZHRoICsgIiAiICsgcGFkKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RQYXR0ZXJucygpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgVVMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIyIsIFVTKTsKKworICAgICAgICBleHBlY3RQYWQoZm10LCAiKl4jIiwgRGVjaW1hbEZvcm1hdC5QQURfQkVGT1JFX1BSRUZJWCwgMSwgJ14nKTsKKyAgICAgICAgZXhwZWN0UGFkKGZtdCwgIiQqXiMiLCBEZWNpbWFsRm9ybWF0LlBBRF9BRlRFUl9QUkVGSVgsIDIsICdeJyk7CisgICAgICAgIGV4cGVjdFBhZChmbXQsICIjKl4iLCBEZWNpbWFsRm9ybWF0LlBBRF9CRUZPUkVfU1VGRklYLCAxLCAnXicpOworICAgICAgICBleHBlY3RQYWQoZm10LCAiIyQqXiIsIERlY2ltYWxGb3JtYXQuUEFEX0FGVEVSX1NVRkZJWCwgMiwgJ14nKTsKKyAgICAgICAgZXhwZWN0UGFkKGZtdCwgIiQqXiQjIiwgSUxMRUdBTCk7CisgICAgICAgIGV4cGVjdFBhZChmbXQsICIjJCpeJCIsIElMTEVHQUwpOworICAgICAgICBleHBlY3RQYWQoZm10LCAiJ3ByZScjLCMjMCp4J3Bvc3QnIiwgRGVjaW1hbEZvcm1hdC5QQURfQkVGT1JFX1NVRkZJWCwKKyAgICAgICAgICAgICAgICAgIDEyLCAneCcpOworICAgICAgICBleHBlY3RQYWQoZm10LCAiJycjMCp4IiwgRGVjaW1hbEZvcm1hdC5QQURfQkVGT1JFX1NVRkZJWCwKKyAgICAgICAgICAgICAgICAgIDMsICd4Jyk7CisgICAgICAgIGV4cGVjdFBhZChmbXQsICInSScnbGwnKmEjIyMuIyMiLCBEZWNpbWFsRm9ybWF0LlBBRF9BRlRFUl9QUkVGSVgsCisgICAgICAgICAgICAgICAgICAxMCwgJ2EnKTsKKworICAgICAgICBmbXQuYXBwbHlQYXR0ZXJuKCJBQSMsIyMwLjAwWloiKTsKKyAgICAgICAgZm10LnNldFBhZENoYXJhY3RlcignXicpOworCisgICAgICAgIGZtdC5zZXRGb3JtYXRXaWR0aCgxMCk7CisKKyAgICAgICAgZm10LnNldFBhZFBvc2l0aW9uKERlY2ltYWxGb3JtYXQuUEFEX0JFRk9SRV9QUkVGSVgpOworICAgICAgICBleHBlY3RQYXQoZm10LCAiKl5BQSMsIyMwLjAwWloiKTsKKworICAgICAgICBmbXQuc2V0UGFkUG9zaXRpb24oRGVjaW1hbEZvcm1hdC5QQURfQkVGT1JFX1NVRkZJWCk7CisgICAgICAgIGV4cGVjdFBhdChmbXQsICJBQSMsIyMwLjAwKl5aWiIpOworCisgICAgICAgIGZtdC5zZXRQYWRQb3NpdGlvbihEZWNpbWFsRm9ybWF0LlBBRF9BRlRFUl9TVUZGSVgpOworICAgICAgICBleHBlY3RQYXQoZm10LCAiQUEjLCMjMC4wMFpaKl4iKTsKKworICAgICAgICAvLyAgICAgICAgICAgIDEyICAzNDU2Nzg5MDEyCisgICAgICAgIFN0cmluZyBleHAgPSAiQUEqXiMsIyMwLjAwWloiOworICAgICAgICBmbXQuc2V0Rm9ybWF0V2lkdGgoMTIpOworICAgICAgICBmbXQuc2V0UGFkUG9zaXRpb24oRGVjaW1hbEZvcm1hdC5QQURfQUZURVJfUFJFRklYKTsKKyAgICAgICAgZXhwZWN0UGF0KGZtdCwgZXhwKTsKKworICAgICAgICBmbXQuc2V0Rm9ybWF0V2lkdGgoMTMpOworICAgICAgICAvLyAgICAgICAgICAgICAgMTIgIDM0NTY3ODkwMTIzCisgICAgICAgIGV4cGVjdFBhdChmbXQsICJBQSpeIyMsIyMwLjAwWloiKTsKKworICAgICAgICBmbXQuc2V0Rm9ybWF0V2lkdGgoMTQpOworICAgICAgICAvLyAgICAgICAgICAgICAgMTIgIDM0NTY3ODkwMTIzNAorICAgICAgICBleHBlY3RQYXQoZm10LCAiQUEqXiMjIywjIzAuMDBaWiIpOworCisgICAgICAgIGZtdC5zZXRGb3JtYXRXaWR0aCgxNSk7CisgICAgICAgIC8vICAgICAgICAgICAgICAxMiAgMzQ1Njc4OTAxMjM0NQorICAgICAgICBleHBlY3RQYXQoZm10LCAiQUEqXiMjIyMsIyMwLjAwWloiKTsgLy8gVGhpcyBpcyB0aGUgaW50ZXJlc3RpbmcgY2FzZQorCisgICAgICAgIGZtdC5zZXRGb3JtYXRXaWR0aCgxNik7CisgICAgICAgIC8vICAgICAgICAgICAgICAxMiAgMzQ1Njc4OTAxMjM0NTYKKyAgICAgICAgZXhwZWN0UGF0KGZtdCwgIkFBKl4jLCMjIywjIzAuMDBaWiIpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBleHBlY3RQYXQoRGVjaW1hbEZvcm1hdCBmbXQsIFN0cmluZyBleHApIHsKKyAgICAgICAgU3RyaW5nIHBhdCA9IGZtdC50b1BhdHRlcm4oKTsKKyAgICAgICAgaWYgKHBhdC5lcXVhbHMoZXhwKSkgeworICAgICAgICAgICAgbG9nbG4oIk9rICAgXCIiICsgcGF0ICsgJyInKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMIFwiIiArIHBhdCArICJcIiwgZXhwZWN0ZWQgXCIiICsgZXhwICsgJyInKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlIGhhbmRsaW5nIG9mIHRoZSBBbHBoYVdvcmtzIEJpZ0RlY2ltYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QWxwaGFCaWdEZWNpbWFsKCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBVUyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworICAgICAgICAvKkZvciBJQ1UgY29tcGF0aWJpbGl0eSBbUmljaGFyZC9HQ0xdKi8KKyAgICAgICAgZXhwZWN0KE51bWJlckZvcm1hdC5nZXRTY2llbnRpZmljSW5zdGFuY2UoTG9jYWxlLlVTKSwKKyAgICAgICAgICAgICAgIG5ldyBOdW1iZXJbXSB7IG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1LjY3ODkwMSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICIxLjIzNDU2Nzg5MDFFNCIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIiMjMC4jIyMjRTAiLCBVUyksCisgICAgICAgICAgICAgICBuZXcgTnVtYmVyW10geyBuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NS40OTk5IiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NC41MDAxIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICIxMi4zNDVFMyIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIiMjMC4jIyMjRTAiLCBVUyksCisgICAgICAgICAgICAgICBuZXcgTnVtYmVyW10geyBuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NS41MDAwIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0Ni41MDAwIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICIxMi4zNDZFMyIpOworICAgIH0KKworICAgIC8qKgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTY2llbnRpZmljKCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBVUyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworICAgICAgICAvKkZvciBJQ1UgY29tcGF0aWJpbGl0eSBbUmljaGFyZC9HQ0xdKi8KKyAgICAgICAgZXhwZWN0KE51bWJlckZvcm1hdC5nZXRTY2llbnRpZmljSW5zdGFuY2UoTG9jYWxlLlVTKSwKKyAgICAgICAgICAgICAgIG5ldyBOdW1iZXJbXSB7IG5ldyBEb3VibGUoMTIzNDUuNjc4OTAxKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBqYXZhLm1hdGguQmlnRGVjaW1hbCgiMTIzNDUuNjc4OTAxIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICIxLjIzNDU2Nzg5MDFFNCIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIiMjMC4jIyNFMCIsIFVTKSwKKyAgICAgICAgICAgICAgIG5ldyBEb3VibGUoMTIzNDUpLAorICAgICAgICAgICAgICAgIjEyLjM0RTMiKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIjIzAuIyMjRTAiLCBVUyksCisgICAgICAgICAgICAgICBuZXcgRG91YmxlKDEyMzQ1LjAwMDAxKSwKKyAgICAgICAgICAgICAgICIxMi4zNUUzIik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiIyMwLiMjIyNFMCIsIFVTKSwKKyAgICAgICAgICAgICAgIG5ldyBOdW1iZXJbXSB7IG5ldyBJbnRlZ2VyKDEyMzQ1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMb25nKDEyMzQ1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBqYXZhLm1hdGguQmlnRGVjaW1hbCgiMTIzNDUuNDk5OSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IGphdmEubWF0aC5CaWdEZWNpbWFsKCIxMjM0NC41MDAxIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICIxMi4zNDVFMyIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIiMjMC4jIyMjRTAiLCBVUyksCisgICAgICAgICAgICAgICBuZXcgTnVtYmVyW10geyBuZXcgamF2YS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1LjUwMDAiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBqYXZhLm1hdGguQmlnRGVjaW1hbCgiMTIzNDYuNTAwMCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAiMTIuMzQ2RTMiKTsKKyAgICAgICAgLypGb3IgSUNVIGNvbXBhdGliaWxpdHkgW1JpY2hhcmQvR0NMXSovCisgICAgICAgIGV4cGVjdChOdW1iZXJGb3JtYXQuZ2V0U2NpZW50aWZpY0luc3RhbmNlKExvY2FsZS5GUkFOQ0UpLAorICAgICAgICAgICAgICAgbmV3IERvdWJsZSgxMjM0NS42Nzg5MDEpLAorICAgICAgICAgICAgICAgIjEsMjM0NTY3ODkwMUU0Iik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiIyMwLiMjIyNFMCIsIFVTKSwKKyAgICAgICAgICAgICAgIG5ldyBEb3VibGUoNzg5LjEyMzQ1ZS05KSwKKyAgICAgICAgICAgICAgICI3ODkuMTJFLTkiKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIjIzAuIyMjI0UwIiwgVVMpLAorICAgICAgICAgICAgICAgbmV3IERvdWJsZSg3ODAuZS05KSwKKyAgICAgICAgICAgICAgICI3ODBFLTkiKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIuIyMjRTAiLCBVUyksCisgICAgICAgICAgICAgICBuZXcgRG91YmxlKDQ1Njc4KSwKKyAgICAgICAgICAgICAgICIuNDU3RTUiKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIuIyMjRTAiLCBVUyksCisgICAgICAgICAgICAgICBuZXcgTG9uZygwKSwKKyAgICAgICAgICAgICAgICIuMEUwIik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdFtdIHsgbmV3IERlY2ltYWxGb3JtYXQoIiNFMCIsIFVTKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRGVjaW1hbEZvcm1hdCgiIyNFMCIsIFVTKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRGVjaW1hbEZvcm1hdCgiIyMjI0UwIiwgVVMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEZWNpbWFsRm9ybWF0KCIwRTAiLCBVUyksICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEZWNpbWFsRm9ybWF0KCIwMEUwIiwgVVMpLCAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEZWNpbWFsRm9ybWF0KCIwMDBFMCIsIFVTKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICBuZXcgTG9uZyg0NTY3ODAwMCksCisgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAiNC41Njc4RTciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjQ1LjY3OEU2IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI0NTY3LjhFNCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiNUU3IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI0NkU2IiwgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjQ1N0U1IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICApOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIiMjI0UwIiwgVVMpLAorICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdIHsgbmV3IERvdWJsZSgwLjAwMDAxMjMpLCAiMTIuM0UtNiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRG91YmxlKDAuMDAwMTIzKSwgIjEyM0UtNiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgamF2YS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAxMjMiKSwgIjEuMjNFLTMiLCAvLyBDYWZlIFZNIG1lc3NlcyB1cCBEb3VibGUoMC4wMDEyMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEb3VibGUoMC4wMTIzKSwgIjEyLjNFLTMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERvdWJsZSgwLjEyMyksICIxMjNFLTMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERvdWJsZSgxLjIzKSwgIjEuMjNFMCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRG91YmxlKDEyLjMpLCAiMTIuM0UwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEb3VibGUoMTIzKSwgIjEyM0UwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEb3VibGUoMTIzMCksICIxLjIzRTMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIwLiNFKzAwIiwgVVMpLAorICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdIHsgbmV3IERvdWJsZSgwLjAwMDEyKSwgIjEuMkUtMDQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExvbmcoMTIwMDApLCAgICAgIjEuMkUrMDQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UGFkKCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBVUyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIipeIyMuIyMiLCBVUyksCisgICAgICAgICAgICAgICBuZXcgT2JqZWN0W10geyBuZXcgTG9uZygwKSwgICAgICAiXl5eXjAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERvdWJsZSgtMS4zKSwgIl4tMS4zIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICApOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIiMjMC4wIyMjI0UwKl8gZy1tL3NeMiIsIFVTKSwKKyAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7IG5ldyBMb25nKDApLCAgICAgICAiMC4wRTBfX19fX18gZy1tL3NeMiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRG91YmxlKDEuMC8zKSwgIjMzMy4zMzNFLTNfIGctbS9zXjIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICk7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiIyMwLjAjIyMjKl8gZy1tL3NeMiIsIFVTKSwKKyAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7IG5ldyBMb25nKDApLCAgICAgICAiMC4wX19fX19fIGctbS9zXjIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERvdWJsZSgxLjAvMyksICIwLjMzMzMzX18gZy1tL3NeMiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIqeCMsIyMjLCMjIywjIzAuMDA7KngoIywjIyMsIyMjLCMjMC4wMCkiLCBVUyksCisgICAgICAgICAgICAgICBuZXcgT2JqZWN0W10geworICAgICAgICAgICAgICAgICAgIG5ldyBMb25nKC0xMDApLCAgICAgICAgInh4eHh4eHh4KDEwMC4wMCkiLAorICAgICAgICAgICAgICAgICAgIG5ldyBMb25nKC0xMDAwKSwgICAgICAgInh4eHh4eCgxLDAwMC4wMCkiLAorICAgICAgICAgICAgICAgICAgIG5ldyBMb25nKC0xMDAwMDAwKSwgICAgInh4KDEsMDAwLDAwMC4wMCkiLAorICAgICAgICAgICAgICAgICAgIG5ldyBMb25nKC0xMDAwMDAwMDAwKSwgIigxLDAwMCwwMDAsMDAwLjAwKSIsCisgICAgICAgICAgICAgICB9KTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGV4cGVjdChOdW1iZXJGb3JtYXQgZm10LCBPYmplY3RbXSBkYXRhKSB7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxkYXRhLmxlbmd0aDsgaSs9MikgeworICAgICAgICAgICAgZXhwZWN0KGZtdCwgKE51bWJlcikgZGF0YVtpXSwgKFN0cmluZykgZGF0YVtpKzFdKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgZXhwZWN0KE9iamVjdCBmbXRvLCBPYmplY3QgbnVtbywgT2JqZWN0IGV4cG8pIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IGZtdCA9IG51bGwsIGZtdHNbXSA9IG51bGw7CisgICAgICAgIE51bWJlciBudW0gPSBudWxsLCBudW1zW10gPSBudWxsOworICAgICAgICBTdHJpbmcgZXhwID0gbnVsbCwgZXhwc1tdID0gbnVsbDsKKyAgICAgICAgaWYgKGZtdG8gaW5zdGFuY2VvZiBOdW1iZXJGb3JtYXRbXSkgeworICAgICAgICAgICAgZm10cyA9IChOdW1iZXJGb3JtYXRbXSkgZm10bzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGZtdCA9IChOdW1iZXJGb3JtYXQpIGZtdG87CisgICAgICAgIH0KKyAgICAgICAgaWYgKG51bW8gaW5zdGFuY2VvZiBOdW1iZXJbXSkgeworICAgICAgICAgICAgbnVtcyA9IChOdW1iZXJbXSkgbnVtbzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG51bSA9IChOdW1iZXIpIG51bW87CisgICAgICAgIH0KKyAgICAgICAgaWYgKGV4cG8gaW5zdGFuY2VvZiBTdHJpbmdbXSkgeworICAgICAgICAgICAgZXhwcyA9IChTdHJpbmdbXSkgZXhwbzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGV4cCA9IChTdHJpbmcpIGV4cG87CisgICAgICAgIH0KKyAgICAgICAgaW50IG4gPSAxOworICAgICAgICBpZiAoZm10cyAhPSBudWxsKSB7CisgICAgICAgICAgICBuID0gTWF0aC5tYXgobiwgZm10cy5sZW5ndGgpOworICAgICAgICB9CisgICAgICAgIGlmIChudW1zICE9IG51bGwpIHsKKyAgICAgICAgICAgIG4gPSBNYXRoLm1heChuLCBudW1zLmxlbmd0aCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGV4cHMgIT0gbnVsbCkgeworICAgICAgICAgICAgbiA9IE1hdGgubWF4KG4sIGV4cHMubGVuZ3RoKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpPTA7IGk8bjsgKytpKSB7CisgICAgICAgICAgICBleHBlY3QoZm10cyA9PSBudWxsID8gZm10IDogZm10c1tpXSwKKyAgICAgICAgICAgICAgICAgICBudW1zID09IG51bGwgPyBudW0gOiBudW1zW2ldLAorICAgICAgICAgICAgICAgICAgIGV4cHMgPT0gbnVsbCA/IGV4cCA6IGV4cHNbaV0pOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIHNob3dOdW1iZXIoTnVtYmVyIG4pIHsKKyAgICAgICAgU3RyaW5nIGNscyA9IG4uZ2V0Q2xhc3MoKS5nZXROYW1lKCk7CisgICAgICAgIGlmICghKG4gaW5zdGFuY2VvZiBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwKKyAgICAgICAgICAgICAgfHwgbiBpbnN0YW5jZW9mIGphdmEubWF0aC5CaWdEZWNpbWFsKSkgeworICAgICAgICAgICAgaW50IGkgPSBjbHMubGFzdEluZGV4T2YoJy4nKTsKKyAgICAgICAgICAgIGNscyA9IGNscy5zdWJzdHJpbmcoaSsxKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbi50b1N0cmluZygpICsgIiAoIiArIGNscyArICcpJzsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZXhwZWN0KE51bWJlckZvcm1hdCBmbXQsIE51bWJlciBuLCBTdHJpbmcgZXhwKSB7CisgICAgICAgIFN0cmluZyBzYXcgPSBmbXQuZm9ybWF0KG4pOworICAgICAgICBTdHJpbmcgcGF0ID0gKChEZWNpbWFsRm9ybWF0KSBmbXQpLnRvUGF0dGVybigpOworICAgICAgICBpZiAoc2F3LmVxdWFscyhleHApKSB7CisgICAgICAgICAgICBsb2dsbigiT2sgICAiICsgc2hvd051bWJlcihuKSArICIgeCAiICsKKyAgICAgICAgICAgICAgICAgIHBhdCArICIgPSAiICsKKyAgICAgICAgICAgICAgICAgIFV0aWxpdHkuZXNjYXBlKHNhdykpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUwgIiArIHNob3dOdW1iZXIobikgKyAiIHggIiArCisgICAgICAgICAgICAgICAgICBwYXQgKyAiID0gXCIiICsKKyAgICAgICAgICAgICAgICAgIFV0aWxpdHkuZXNjYXBlKHNhdykgKyAiLCBleHBlY3RlZCAiICsgVXRpbGl0eS5lc2NhcGUoZXhwKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZXhwZWN0KE51bWJlckZvcm1hdCBmbXQsIFN0cmluZyBzdHIsIE51bWJlciBleHApIHsKKyAgICAgICAgTnVtYmVyIHNhdyA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzYXcgPSBmbXQucGFyc2Uoc3RyKTsKKyAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgc2F3ID0gbnVsbDsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgcGF0ID0gKChEZWNpbWFsRm9ybWF0KSBmbXQpLnRvUGF0dGVybigpOworICAgICAgICBpZiAoc2F3LmVxdWFscyhleHApKSB7CisgICAgICAgICAgICBsb2dsbigiT2sgICBcIiIgKyBzdHIgKyAiXCIgeCAiICsKKyAgICAgICAgICAgICAgICAgIHBhdCArICIgPSAiICsKKyAgICAgICAgICAgICAgICAgIHNob3dOdW1iZXIoc2F3KSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTCBcIiIgKyBzdHIgKyAiXCIgeCAiICsKKyAgICAgICAgICAgICAgICAgIHBhdCArICIgPSAiICsKKyAgICAgICAgICAgICAgICAgIHNob3dOdW1iZXIoc2F3KSArICIsIGV4cGVjdGVkICIgKyBzaG93TnVtYmVyKGV4cCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogR2l2ZW4gYSBzdHJpbmcgY29tcG9zZWQgb2YgWzAtOV0gYW5kIG90aGVyIGNoYXJzLCBjb252ZXJ0IHRoZQorICAgICAqIFswLTldIGNoYXJzIHRvIGJlIG9mZnNldHMgMC4uOSBmcm9tICd6ZXJvJy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgdHJhbnNtdXRlKFN0cmluZyBzdHIsIGNoYXIgemVybykgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8c3RyLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IHN0ci5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoYyA+PSAnMCcgJiYgYyA8PSAnOScpIHsKKyAgICAgICAgICAgICAgICBjID0gKGNoYXIpIChjIC0gJzAnICsgemVybyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBidWYuYXBwZW5kKGMpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE2MTEwMCgpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IGYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgZi5zZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoMSk7CisgICAgICAgIGYuc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKDEpOworICAgICAgICBkb3VibGUgYSA9IC0wLjA5OworICAgICAgICBTdHJpbmcgcyA9IGYuZm9ybWF0KGEpOworICAgICAgICBsb2dsbihhICsgIiB4ICIgKworICAgICAgICAgICAgICAoKERlY2ltYWxGb3JtYXQpIGYpLnRvUGF0dGVybigpICsgIiA9ICIgKworICAgICAgICAgICAgICBzKTsKKyAgICAgICAgaWYgKCFzLmVxdWFscygiLTAuMSIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTCIpOworICAgICAgICB9CisgICAgfSAgICAgICAgCisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QmlnRGVjaW1hbEoyOCgpIHsKKyAgICAgICAgU3RyaW5nW10gREFUQSA9IHsKKyAgICAgICAgICAgICIxIiwgIjFFMCIsCisgICAgICAgICAgICAiLTEiLCAiLTFFMCIsCisgICAgICAgICAgICAiMCIsICIwRTAiLAorICAgICAgICAgICAgIjEyZTM0IiwgIjEuMkUzNSIsCisgICAgICAgICAgICAiLTEyLjNlLTQ1IiwgIi0xLjIzRS00NCIsCisgICAgICAgICAgICAiMC43M2UtNyIsICI3LjNFLTgiLAorICAgICAgICB9OworICAgICAgICBOdW1iZXJGb3JtYXQgZm10ID0gTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBsb2dsbigiUGF0dGVybjogIiArICgoRGVjaW1hbEZvcm1hdClmbXQpLnRvUGF0dGVybigpKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0yKSB7CisgICAgICAgICAgICBTdHJpbmcgaW5wdXQgPSBEQVRBW2ldOworICAgICAgICAgICAgU3RyaW5nIGV4cCA9IERBVEFbaSsxXTsKKyAgICAgICAgICAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBiZCA9IG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoaW5wdXQpOworICAgICAgICAgICAgU3RyaW5nIG91dHB1dCA9IGZtdC5mb3JtYXQoYmQpOworICAgICAgICAgICAgaWYgKG91dHB1dC5lcXVhbHMoZXhwKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJpbnB1dD0iICsgaW5wdXQgKyAiIG51bT0iICsgYmQgKyAiIG91dHB1dD0iICsgb3V0cHV0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGlucHV0PSIgKyBpbnB1dCArICIgbnVtPSIgKyBiZCArICIgb3V0cHV0PSIgKyBvdXRwdXQgKworICAgICAgICAgICAgICAgICAgICAgICIgZXhwZWN0ZWQ9IiArIGV4cCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0RhdGVGb3JtYXRNaXNjVGVzdHMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvRGF0ZUZvcm1hdE1pc2NUZXN0cy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM3ODc4NTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0RhdGVGb3JtYXRNaXNjVGVzdHMuamF2YQpAQCAtMCwwICsxLDE2NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0RhdGVGb3JtYXRNaXNjVGVzdHMuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNTowOCAkIAorICogJFJldmlzaW9uOiAxLjUgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2MS44LjEgOiBmb3JtYXQgOiBEYXRlRm9ybWF0TWlzY1Rlc3RzCisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9taXNjZHRmbS5jcHAKKyAqKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKKworLyoqIAorICogUGVyZm9ybXMgbWlzY2VsbGFuZW91cyB0ZXN0cyBmb3IgRGF0ZUZvcm1hdCwgU2ltcGxlRGF0ZUZvcm1hdCwgRGF0ZUZvcm1hdFN5bWJvbHMKKyAqKi8KK3B1YmxpYyBjbGFzcyBEYXRlRm9ybWF0TWlzY1Rlc3RzIGV4dGVuZHMgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2sgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgbmV3IERhdGVGb3JtYXRNaXNjVGVzdHMoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIC8qCisgICAgICogQGJ1ZyA0MDk3NDUwCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwOTc0NTAoKSB7CisgICAgICAgIC8vCisgICAgICAgIC8vIERhdGUgcGFyc2UgcmVxdWlyaW5nIDQgZGlnaXQgeWVhci4KKyAgICAgICAgLy8KKyAgICAgICAgU3RyaW5nIGRzdHJpbmdbXSA9IHsKKyAgICAgICAgICAgICI5NyIsICIxOTk3IiwgIjk3IiwgIjE5OTciLCAiMDEiLCAiMjAwMSIsICIwMSIsICIyMDAxIiwKKyAgICAgICAgICAgICAiMSIsICIxIiwgIjExIiwgIjExIiwgIjExMSIsICIxMTEifTsgCisgICAgCisgICAgICAgIFN0cmluZyBkZm9ybWF0W10gPSAKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAieXkiLCAieXkiLCAieXl5eSIsICJ5eXl5IiwgInl5IiwgInl5IiwgInl5eXkiLCAieXl5eSIsIAorICAgICAgICAgICAgICAgICJ5eSIsICJ5eXl5IiwgInl5IiwgInl5eXkiLCAieXkiLCAieXl5eSJ9OyAgICAgICAgIAorICAgIAorICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZvcm1hdHRlcjsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCByZXN1bHRGb3JtYXR0ZXIgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgieXl5eSIpOworICAgICAgICBsb2dsbigiRm9ybWF0XHRTb3VyY2VcdFJlc3VsdCIpOworICAgICAgICBsb2dsbigiLS0tLS0tLVx0LS0tLS0tLVx0LS0tLS0tLSIpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRzdHJpbmcubGVuZ3RoIDsgaSsrKSB7CisgICAgICAgICAgICBsb2coZGZvcm1hdFtpXSArICJcdCIgKyBkc3RyaW5nW2ldICsgIlx0Iik7CisgICAgICAgICAgICBmb3JtYXR0ZXIgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChkZm9ybWF0W2ldKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHN0ciA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgICAgICAgICAgbG9nbG4ocmVzdWx0Rm9ybWF0dGVyLmZvcm1hdChmb3JtYXR0ZXIucGFyc2UoZHN0cmluZ1tpXSksIHN0ciwgcG9zKS50b1N0cmluZygpKTsgCisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZXhjZXB0aW9uKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImV4Y2VwdGlvbiAtLT4gIiArIGV4Y2VwdGlvbik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2dsbigiIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyogQEJ1ZyA0MDk5OTc1CisgICAgICogU2ltcGxlRGF0ZUZvcm1hdCBjb25zdHJ1Y3RvciBTaW1wbGVEYXRlRm9ybWF0KFN0cmluZywgRGF0ZUZvcm1hdFN5bWJvbHMpCisgICAgICogc2hvdWxkIGNsb25lIHRoZSBEYXRlRm9ybWF0U3ltYm9scyBwYXJhbWV0ZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA5OTk3NW5ldygpIHsKKyAgICAgICAgRGF0ZSBkID0gbmV3IERhdGUoKTsKKyAgICAgICAgLy90ZXN0IFNpbXBsZURhdGVGb3JtYXQgQ29uc3RydWN0b3IKKyAgICAgICAgeworICAgICAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgc3ltYm9scyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworICAgICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJFIGhoOm1tIiwgc3ltYm9scyk7CisgICAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGRmQ2xvbmUgPSAoU2ltcGxlRGF0ZUZvcm1hdCkgZGYuY2xvbmUoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbG9nbG4oZGYudG9Mb2NhbGl6ZWRQYXR0ZXJuKCkpOworICAgICAgICAgICAgU3RyaW5nIHMwID0gZGYuZm9ybWF0KGQpOworICAgICAgICAgICAgU3RyaW5nIHNfZGZDbG9uZSA9IGRmQ2xvbmUuZm9ybWF0KGQpOworICAgICAgICAgICAgCisgICAgICAgICAgICBzeW1ib2xzLnNldExvY2FsUGF0dGVybkNoYXJzKCJhYmNkZWZnaGlqa2xtb25wcXIiKTsgLy8gY2hhbmdlIHZhbHVlIG9mIGZpZWxkCisgICAgICAgICAgICBsb2dsbihkZi50b0xvY2FsaXplZFBhdHRlcm4oKSk7CisgICAgICAgICAgICBTdHJpbmcgczEgPSBkZi5mb3JtYXQoZCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICghczEuZXF1YWxzKHMwKSB8fCAhczEuZXF1YWxzKHNfZGZDbG9uZSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ29uc3RydWN0b3I6IHRoZSBmb3JtYXRzIGFyZSBub3QgZXF1YWwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghZGYuZXF1YWxzKGRmQ2xvbmUpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlRoZSBDbG9uZSBPYmplY3QgZG9lcyBub3QgZXF1YWwgd2l0aCB0aGUgb3JpZ25hbCBzb3VyY2UiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvL3Rlc3QgU2ltcGxlRGF0ZUZvcm1hdC5zZXREYXRlRm9ybWF0U3ltYm9scygpCisgICAgICAgIHsKKyAgICAgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzIHN5bWJvbHMgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKyAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiRSBoaDptbSIpOworICAgICAgICAgICAgZGYuc2V0RGF0ZUZvcm1hdFN5bWJvbHMoc3ltYm9scyk7CisgICAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGRmQ2xvbmUgPSAoU2ltcGxlRGF0ZUZvcm1hdCkgZGYuY2xvbmUoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbG9nbG4oZGYudG9Mb2NhbGl6ZWRQYXR0ZXJuKCkpOworICAgICAgICAgICAgU3RyaW5nIHMwID0gZGYuZm9ybWF0KGQpOworICAgICAgICAgICAgU3RyaW5nIHNfZGZDbG9uZSA9IGRmQ2xvbmUuZm9ybWF0KGQpOworICAgICAgICAgICAgCisgICAgICAgICAgICBzeW1ib2xzLnNldExvY2FsUGF0dGVybkNoYXJzKCJhYmNkZWZnaGlqa2xtb25wcXIiKTsgLy8gY2hhbmdlIHZhbHVlIG9mIGZpZWxkCisgICAgICAgICAgICBsb2dsbihkZi50b0xvY2FsaXplZFBhdHRlcm4oKSk7CisgICAgICAgICAgICBTdHJpbmcgczEgPSBkZi5mb3JtYXQoZCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICghczEuZXF1YWxzKHMwKSB8fCAhczEuZXF1YWxzKHNfZGZDbG9uZSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigic2V0RGF0ZUZvcm1hdFN5bWJvbHM6IHRoZSBmb3JtYXRzIGFyZSBub3QgZXF1YWwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghZGYuZXF1YWxzKGRmQ2xvbmUpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlRoZSBDbG9uZSBPYmplY3QgZG9lcyBub3QgZXF1YWwgd2l0aCB0aGUgb3JpZ25hbCBzb3VyY2UiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKgorICAgICAqIEBidWcgNDExNzMzNQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTE3MzM1KCkgeworICAgICAgICAvL2NoYXIgYmNDW10gPSB7MHg3RDAwLCAweDUxNDMsIDB4NTI0RH07CisgICAgICAgIFN0cmluZyBiYyA9ICJcdTdEMDBcdTUxNDNcdTUyNEQiOworICAgICAgICBTdHJpbmcgYWQgPSAiXHU4OTdmXHU2NmE2IjsKKyAgICAgICAgLy9jaGFyIGFkQ1tdID0gezB4ODk3RiwgMHg2NkE2fTsKKyAgICAgICAgU3RyaW5nIGpzdExvbmcgPSAiXHU2NWU1XHU2NzJjXHU2YTE5XHU2ZTk2XHU2NjQyIjsKKyAgICAgICAgLy9jaGFyIGpzdExvbmdDW10gPSB7MHg2NWU1LCAweDY3MmMsIDB4NmExOSwgMHg2ZTk2LCAweDY2NDJ9OyAvL1RoZSB2YXJpYWJsZSBpcyBuZXZlciB1c2VkCisgICAgICAgIFN0cmluZyBqc3RTaG9ydCA9ICJKU1QiOworICAgIAorICAgICAgICBEYXRlRm9ybWF0U3ltYm9scyBzeW1ib2xzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5KQVBBTik7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIGVyYXMgPSBzeW1ib2xzLmdldEVyYXMoKTsKKyAgICAgICAgLy9pbnQgZXJhQ291bnQgPSBlcmFzLmxlbmd0aDsgLy9UaGUgdmFyaWFibGUgaXMgbmV2ZXIgdXNlZAorICAgICAgICBsb2dsbigiQkMgPSAiICsgZXJhc1swXSk7CisgICAgICAgIGlmICghZXJhc1swXS5lcXVhbHMoYmMpKSB7CisgICAgICAgICAgICBlcnJsbigiKioqIFNob3VsZCBoYXZlIGJlZW4gIiArIGJjKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBsb2dsbigiQUQgPSAiICsgZXJhc1sxXSk7CisgICAgICAgIGlmICghZXJhc1sxXS5lcXVhbHMoYWQpKSB7CisgICAgICAgICAgICBlcnJsbigiKioqIFNob3VsZCBoYXZlIGJlZW4gIiArIGFkKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBmaW5hbCBTdHJpbmcgem9uZXNbXVtdID0gc3ltYm9scy5nZXRab25lU3RyaW5ncygpOworICAgICAgICAvL2ludCByb3dDb3VudCA9IHpvbmVzLmxlbmd0aCwgY29sQ291bnQgPSB6b25lc1swXS5sZW5ndGg7IC8vVGhlIHZhcmlhYmxlIGlzIG5ldmVyIHVzZWQKKyAgICAgICAgbG9nbG4oIkxvbmcgem9uZSBuYW1lID0gIiArIHpvbmVzWzBdWzFdKTsKKyAgICAgICAgaWYgKCF6b25lc1swXVsxXS5lcXVhbHMoanN0TG9uZykpIHsKKyAgICAgICAgICAgIGVycmxuKCIqKiogU2hvdWxkIGhhdmUgYmVlbiAiICsganN0TG9uZyk7CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4oIlNob3J0IHpvbmUgbmFtZSA9ICIgKyB6b25lc1swXVsyXSk7CisgICAgICAgIGlmICghem9uZXNbMF1bMl0uZXF1YWxzKGpzdFNob3J0KSkgeworICAgICAgICAgICAgZXJybG4oIioqKiBTaG91bGQgaGF2ZSBiZWVuICIgKyBqc3RTaG9ydCk7CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4oIkxvbmcgem9uZSBuYW1lID0gIiArIHpvbmVzWzBdWzNdKTsKKyAgICAgICAgaWYgKHpvbmVzWzBdWzNdICE9IGpzdExvbmcpIHsKKyAgICAgICAgICAgIGVycmxuKCIqKiogU2hvdWxkIGhhdmUgYmVlbiAiICsganN0TG9uZyk7CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4oIlNIT1JUIHpvbmUgbmFtZSA9ICIgKyB6b25lc1swXVs0XSk7CisgICAgICAgIGlmICh6b25lc1swXVs0XSAhPSBqc3RTaG9ydCkgeworICAgICAgICAgICAgZXJybG4oIioqKiBTaG91bGQgaGF2ZSBiZWVuICIgKyBqc3RTaG9ydCk7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0RhdGVGb3JtYXRSZWdyZXNzaW9uVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9EYXRlRm9ybWF0UmVncmVzc2lvblRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yY2Y4MDM2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9EYXRlRm9ybWF0UmVncmVzc2lvblRlc3QuamF2YQpAQCAtMCwwICsxLDg4NSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0RhdGVGb3JtYXRSZWdyZXNzaW9uVGVzdC5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAzLzEwIDE5OjQwOjEzICQgCisgKiAkUmV2aXNpb246IDEuNSAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYxLjguMSA6IGZvcm1hdCA6IERhdGVGb3JtYXRSZWdyZXNzaW9uVGVzdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3QvZHRmbXJndHMuY3BwCisgKiovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0OworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMb2NhbGVEYXRhOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworCitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5Gb3JtYXQ7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLlJlc291cmNlQnVuZGxlOworCisvKiogCisgKiBQZXJmb3JtcyByZWdyZXNzaW9uIHRlc3QgZm9yIERhdGVGb3JtYXQKKyAqKi8KK3B1YmxpYyBjbGFzcyBEYXRlRm9ybWF0UmVncmVzc2lvblRlc3QgZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ayB7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBuZXcgRGF0ZUZvcm1hdFJlZ3Jlc3Npb25UZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAYnVnIDQwMjkxOTUKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDAyOTE5NSgpIHsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgRGF0ZSB0b2RheSA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGxvZ2xuKCJ0b2RheTogIiArIHRvZGF5KTsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSAoU2ltcGxlRGF0ZUZvcm1hdCkgRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoKTsKKyAgICAgICAgU3RyaW5nIHBhdCA9IHNkZi50b1BhdHRlcm4oKTsKKyAgICAgICAgbG9nbG4oInBhdHRlcm46ICIgKyBwYXQpOworICAgICAgICBTdHJpbmdCdWZmZXIgZm10ZCA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgICAgICBGaWVsZFBvc2l0aW9uIHBvcyA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBmbXRkID0gc2RmLmZvcm1hdCh0b2RheSwgZm10ZCwgcG9zKTsKKyAgICAgICAgbG9nbG4oInRvZGF5OiAiICsgZm10ZCk7CisgICAgCisgICAgICAgIHNkZi5hcHBseVBhdHRlcm4oIkcgeXl5eSBEREQiKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHRvZGF5UyA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgICAgICB0b2RheVMgPSBzZGYuZm9ybWF0KHRvZGF5LCB0b2RheVMsIHBvcyk7CisgICAgICAgIGxvZ2xuKCJ0b2RheTogIiArIHRvZGF5Uyk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB0b2RheSA9IHNkZi5wYXJzZSh0b2RheVMudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBsb2dsbigidG9kYXkgZGF0ZTogIiArIHRvZGF5KTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciByZXBhcnNpbmcgZGF0ZTogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHJ0ID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgICAgICBydCA9IHNkZi5mb3JtYXQoc2RmLnBhcnNlKHRvZGF5Uy50b1N0cmluZygpKSwgcnQsIHBvcyk7CisgICAgICAgICAgICBsb2dsbigicm91bmQgdHJpcDogIiArIHJ0KTsKKyAgICAgICAgICAgIGlmICghcnQudG9TdHJpbmcoKS5lcXVhbHModG9kYXlTLnRvU3RyaW5nKCkpKQorICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBXYW50ICIgKyB0b2RheVMgKyAiIEdvdCAiICsgcnQpOworICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIGUpOworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAYnVnIDQwNTI0MDgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA1MjQwOCgpIHsKKyAgICAKKyAgICAgICAgRGF0ZUZvcm1hdCBmbXQgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5TSE9SVCwgRGF0ZUZvcm1hdC5TSE9SVCwgTG9jYWxlLlVTKTsgCisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDk3ICsgMTkwMCwgQ2FsZW5kYXIuTUFZLCAzLCA4LCA1NSk7CisgICAgICAgIERhdGUgZHQgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBTdHJpbmcgc3RyID0gZm10LmZvcm1hdChkdCk7CisgICAgICAgIGxvZ2xuKHN0cik7CisgICAgICAgIAorICAgICAgICBpZiAoIXN0ci5lcXVhbHMoIjUvMy85NyA4OjU1IEFNIikpCisgICAgICAgICAgICBlcnJsbigiRmFpbDogVGVzdCBicm9rZW47IFdhbnQgNS8zLzk3IDg6NTUgQU0gR290ICIgKyBzdHIpOworICAgIAorICAgICAgICBTdHJpbmcgZXhwZWN0ZWRbXSA9IHsKKyAgICAgICAgICAgICIiLCAvLyJFUkFfRklFTEQiLAorICAgICAgICAgICAgIjk3IiwgLy8iWUVBUl9GSUVMRCIsCisgICAgICAgICAgICAiNSIsIC8vIk1PTlRIX0ZJRUxEIiwKKyAgICAgICAgICAgICIzIiwgLy8iREFURV9GSUVMRCIsCisgICAgICAgICAgICAiIiwgLy8iSE9VUl9PRl9EQVkxX0ZJRUxEIiwKKyAgICAgICAgICAgICIiLCAvLyJIT1VSX09GX0RBWTBfRklFTEQiLAorICAgICAgICAgICAgIjU1IiwgLy8iTUlOVVRFX0ZJRUxEIiwKKyAgICAgICAgICAgICIiLCAvLyJTRUNPTkRfRklFTEQiLAorICAgICAgICAgICAgIiIsIC8vIk1JTExJU0VDT05EX0ZJRUxEIiwKKyAgICAgICAgICAgICIiLCAvLyJEQVlfT0ZfV0VFS19GSUVMRCIsCisgICAgICAgICAgICAiIiwgLy8iREFZX09GX1lFQVJfRklFTEQiLAorICAgICAgICAgICAgIiIsIC8vIkRBWV9PRl9XRUVLX0lOX01PTlRIX0ZJRUxEIiwKKyAgICAgICAgICAgICIiLCAvLyJXRUVLX09GX1lFQVJfRklFTEQiLAorICAgICAgICAgICAgIiIsIC8vIldFRUtfT0ZfTU9OVEhfRklFTEQiLAorICAgICAgICAgICAgIkFNIiwgLy8iQU1fUE1fRklFTEQiLAorICAgICAgICAgICAgIjgiLCAvLyJIT1VSMV9GSUVMRCIsCisgICAgICAgICAgICAiIiwgLy8iSE9VUjBfRklFTEQiLAorICAgICAgICAgICAgIiIgLy8iVElNRVpPTkVfRklFTEQiCisgICAgICAgICAgICB9OyAgICAgICAgCisgICAgICAgIFN0cmluZyBmaWVsZE5hbWVzW10gPSB7CisgICAgICAgICAgICAgICAgIkVSQV9GSUVMRCIsIAorICAgICAgICAgICAgICAgICJZRUFSX0ZJRUxEIiwgCisgICAgICAgICAgICAgICAgIk1PTlRIX0ZJRUxEIiwgCisgICAgICAgICAgICAgICAgIkRBVEVfRklFTEQiLCAKKyAgICAgICAgICAgICAgICAiSE9VUl9PRl9EQVkxX0ZJRUxEIiwgCisgICAgICAgICAgICAgICAgIkhPVVJfT0ZfREFZMF9GSUVMRCIsIAorICAgICAgICAgICAgICAgICJNSU5VVEVfRklFTEQiLCAKKyAgICAgICAgICAgICAgICAiU0VDT05EX0ZJRUxEIiwgCisgICAgICAgICAgICAgICAgIk1JTExJU0VDT05EX0ZJRUxEIiwgCisgICAgICAgICAgICAgICAgIkRBWV9PRl9XRUVLX0ZJRUxEIiwgCisgICAgICAgICAgICAgICAgIkRBWV9PRl9ZRUFSX0ZJRUxEIiwgCisgICAgICAgICAgICAgICAgIkRBWV9PRl9XRUVLX0lOX01PTlRIX0ZJRUxEIiwgCisgICAgICAgICAgICAgICAgIldFRUtfT0ZfWUVBUl9GSUVMRCIsIAorICAgICAgICAgICAgICAgICJXRUVLX09GX01PTlRIX0ZJRUxEIiwgCisgICAgICAgICAgICAgICAgIkFNX1BNX0ZJRUxEIiwgCisgICAgICAgICAgICAgICAgIkhPVVIxX0ZJRUxEIiwgCisgICAgICAgICAgICAgICAgIkhPVVIwX0ZJRUxEIiwgCisgICAgICAgICAgICAgICAgIlRJTUVaT05FX0ZJRUxEIn07IAorICAgIAorICAgICAgICBib29sZWFuIHBhc3MgPSB0cnVlOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSAxNzsgKytpKSB7CisgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIHBvcyA9IG5ldyBGaWVsZFBvc2l0aW9uKGkpOworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgICAgICAgICAgZm10LmZvcm1hdChkdCwgYnVmLCBwb3MpOworICAgICAgICAgICAgLy9jaGFyW10gZHN0ID0gbmV3IGNoYXJbcG9zLmdldEVuZEluZGV4KCkgLSBwb3MuZ2V0QmVnaW5JbmRleCgpXTsKKyAgICAgICAgICAgIFN0cmluZyBkc3QgPSBidWYuc3Vic3RyaW5nKHBvcy5nZXRCZWdpbkluZGV4KCksIHBvcy5nZXRFbmRJbmRleCgpKTsKKyAgICAgICAgICAgIHN0ciA9IGRzdDsKKyAgICAgICAgICAgIGxvZyhpICsgIjogIiArIGZpZWxkTmFtZXNbaV0gKyAiLCBcIiIgKyBzdHIgKyAiXCIsICIKKyAgICAgICAgICAgICAgICAgICAgKyBwb3MuZ2V0QmVnaW5JbmRleCgpICsgIiwgIiArIHBvcy5nZXRFbmRJbmRleCgpKTsgCisgICAgICAgICAgICBTdHJpbmcgZXhwID0gZXhwZWN0ZWRbaV07CisgICAgICAgICAgICBpZiAoKGV4cC5sZW5ndGgoKSA9PSAwICYmIHN0ci5sZW5ndGgoKSA9PSAwKSB8fCBzdHIuZXF1YWxzKGV4cCkpCisgICAgICAgICAgICAgICAgbG9nbG4oIiBvayIpOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIiBleHBlY3RlZCAiICsgZXhwKTsKKyAgICAgICAgICAgICAgICBwYXNzID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFwYXNzKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IEZpZWxkUG9zaXRpb24gbm90IHNldCByaWdodCBieSBEYXRlRm9ybWF0Iik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEBidWcgNDA1NjU5MQorICAgICAqIFZlcmlmeSB0aGUgZnVuY3Rpb24gb2YgdGhlIFtzfGddZXQyRGlnaXRZZWFyU3RhcnQoKSBBUEkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwNTY1OTEoKSB7CisgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJ5eU1NZGQiLCBMb2NhbGUuVVMpOworICAgICAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgY2FsLnNldCgxODA5LCBDYWxlbmRhci5ERUNFTUJFUiwgMjUpOworICAgICAgICAgICAgRGF0ZSBzdGFydCA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgICAgICBmbXQuc2V0MkRpZ2l0WWVhclN0YXJ0KHN0YXJ0KTsKKyAgICAgICAgICAgIGlmICgoZm10LmdldDJEaWdpdFllYXJTdGFydCgpICE9IHN0YXJ0KSkKKyAgICAgICAgICAgICAgICBlcnJsbigiZ2V0MkRpZ2l0WWVhclN0YXJ0IGJyb2tlbiIpOworICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICBjYWwuc2V0KDE4MDksIENhbGVuZGFyLkRFQ0VNQkVSLCAyNSk7CisgICAgICAgICAgICBEYXRlIGQxID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgY2FsLnNldCgxOTA5LCBDYWxlbmRhci5ERUNFTUJFUiwgMjQpOworICAgICAgICAgICAgRGF0ZSBkMiA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgIGNhbC5zZXQoMTgwOSwgQ2FsZW5kYXIuREVDRU1CRVIsIDI2KTsKKyAgICAgICAgICAgIERhdGUgZDMgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICBjYWwuc2V0KDE4NjEsIENhbGVuZGFyLkRFQ0VNQkVSLCAyNSk7CisgICAgICAgICAgICBEYXRlIGQ0ID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgRGF0ZSBkYXRlc1tdID0ge2QxLCBkMiwgZDMsIGQ0fTsKKyAgICAKKyAgICAgICAgICAgIFN0cmluZyBzdHJpbmdzW10gPSB7IjA5MTIyNSIsICIwOTEyMjQiLCAiMDkxMjI2IiwgIjYxMTIyNSJ9OyAgICAgICAgICAgIAorICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA0OyBpKyspIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcyA9IHN0cmluZ3NbaV07CisgICAgICAgICAgICAgICAgRGF0ZSBleHAgPSBkYXRlc1tpXTsKKyAgICAgICAgICAgICAgICBEYXRlIGdvdCA9IGZtdC5wYXJzZShzKTsKKyAgICAgICAgICAgICAgICBsb2dsbihzICsgIiAuICIgKyBnb3QgKyAiOyBleHAgIiArIGV4cCk7CisgICAgICAgICAgICAgICAgaWYgKGdvdC5nZXRUaW1lKCkgIT0gZXhwLmdldFRpbWUoKSkKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oInNldDJEaWdpdFllYXJTdGFydCBicm9rZW4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyBlKTsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQGJ1ZyA0MDU5OTE3CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwNTk5MTcoKSB7ICAgICAgICAKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmbXQ7CisgICAgICAgIFN0cmluZyBteURhdGU7CisgICAgICAgIGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJ5eXl5L01NL2RkIik7CisgICAgICAgIG15RGF0ZSA9ICIxOTk3LzAxLzAxIjsKKyAgICAgICAgYXV4OTE3KCBmbXQsIG15RGF0ZSApOyAgICAgICAgCisgICAgICAgIGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJ5eXl5TU1kZCIpOworICAgICAgICBteURhdGUgPSAiMTk5NzAxMDEiOworICAgICAgICBhdXg5MTcoIGZtdCwgbXlEYXRlICk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGF1eDkxNyhTaW1wbGVEYXRlRm9ybWF0IGZtdCwgU3RyaW5nIHN0cikgeworICAgIAorICAgICAgICBTdHJpbmcgcGF0ID0gZm10LnRvUGF0dGVybigpOworICAgICAgICBsb2dsbigiPT09PT09PT09PT09PT09PT09Iik7CisgICAgICAgIGxvZ2xuKCJ0ZXN0SXQ6IHBhdHRlcm49IiArIHBhdCArICIgc3RyaW5nPSIgKyBzdHIpOworICAgICAgICBQYXJzZVBvc2l0aW9uIHBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICBPYmplY3QgbyA9IGZtdC5wYXJzZU9iamVjdChzdHIsIHBvcyk7CisgICAgICAgIC8vbG9nbG4oIFVuaWNvZGVTdHJpbmcoIlBhcnNlZCBvYmplY3Q6ICIpICsgbyApOworICAgIAorICAgICAgICBTdHJpbmdCdWZmZXIgZm9ybWF0dGVkID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zcyA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBmb3JtYXR0ZWQgPSBmbXQuZm9ybWF0KG8sIGZvcm1hdHRlZCwgcG9zcyk7CisgICAgCisgICAgICAgIGxvZ2xuKCJGb3JtYXR0ZWQgc3RyaW5nOiAiICsgZm9ybWF0dGVkKTsKKyAgICAgICAgaWYgKCFmb3JtYXR0ZWQudG9TdHJpbmcoKS5lcXVhbHMoc3RyKSkKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBXYW50ICIgKyBzdHIgKyAiIEdvdCAiICsgZm9ybWF0dGVkKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQGJ1ZyA0MDYwMjEyCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwNjAyMTIoKSB7CisgICAgICAgIFN0cmluZyBkYXRlU3RyaW5nID0gIjE5OTUtMDQwLjA1OjAxOjI5IjsKKyAgICAgICAgbG9nbG4oImRhdGVTdHJpbmc9ICIgKyBkYXRlU3RyaW5nKTsKKyAgICAgICAgbG9nbG4oIlVzaW5nIHl5eXktRERELmhoOm1tOnNzIik7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm9ybWF0dGVyID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoInl5eXktRERELmhoOm1tOnNzIik7CisgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIERhdGUgbXlEYXRlID0gZm9ybWF0dGVyLnBhcnNlKGRhdGVTdHJpbmcsIHBvcyk7CisgICAgICAgIERhdGVGb3JtYXQgZm10ID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKERhdGVGb3JtYXQuRlVMTCwgRGF0ZUZvcm1hdC5MT05HKTsgCisgICAgICAgIFN0cmluZyBteVN0cmluZyA9IGZtdC5mb3JtYXQobXlEYXRlKTsKKyAgICAgICAgbG9nbG4obXlTdHJpbmcpOworICAgICAgICBDYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgY2FsLnNldFRpbWUobXlEYXRlKTsKKyAgICAgICAgaWYgKChjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9ZRUFSKSAhPSA0MCkpCisgICAgICAgICAgICBlcnJsbigiRmFpbDogR290ICIgKyBjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9ZRUFSKSArICIgV2FudCA0MCIpOworICAgIAorICAgICAgICBsb2dsbigiVXNpbmcgeXl5eS1kZGQuaGg6bW06c3MiKTsKKyAgICAgICAgZm9ybWF0dGVyID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoInl5eXktZGRkLmhoOm1tOnNzIik7CisgICAgICAgIHBvcy5zZXRJbmRleCgwKTsKKyAgICAgICAgbXlEYXRlID0gZm9ybWF0dGVyLnBhcnNlKGRhdGVTdHJpbmcsIHBvcyk7CisgICAgICAgIG15U3RyaW5nID0gZm10LmZvcm1hdChteURhdGUpOworICAgICAgICBsb2dsbihteVN0cmluZyk7CisgICAgICAgIGNhbC5zZXRUaW1lKG15RGF0ZSk7CisgICAgICAgIGlmICgoY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfWUVBUikgIT0gNDApKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IEdvdCAiICsgY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfWUVBUikgKyAiIFdhbnQgNDAiKTsKKyAgICB9CisgICAgLyoqCisgICAgICogQGJ1ZyA0MDYxMjg3CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwNjEyODcoKSB7CisgICAgCisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiZGQvTU0veXl5eSIpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgbG9nbG4oZGYucGFyc2UoIjM1LzAxLzE5NzEiKS50b1N0cmluZygpKTsKKyAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyBlKTsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICAgICAgZGYuc2V0TGVuaWVudChmYWxzZSk7CisgICAgICAgIGJvb2xlYW4gb2sgPSBmYWxzZTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGxvZ2xuKGRmLnBhcnNlKCIzNS8wMS8xOTcxIikudG9TdHJpbmcoKSk7CisgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIG9rID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIW9rKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IExlbmllbnQgbm90IHdvcmtpbmciKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQGJ1ZyA0MDY1MjQwCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwNjUyNDAoKSB7CisgICAgICAgIERhdGUgY3VyRGF0ZTsKKyAgICAgICAgRGF0ZUZvcm1hdCBzaG9ydGRhdGUsIGZ1bGxkYXRlOworICAgICAgICBTdHJpbmcgc3RyU2hvcnREYXRlLCBzdHJGdWxsRGF0ZTsKKyAgICAgICAgTG9jYWxlIHNhdmVMb2NhbGUgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICBUaW1lWm9uZSBzYXZlWm9uZSA9IFRpbWVab25lLmdldERlZmF1bHQoKTsKKyAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIExvY2FsZSBjdXJMb2NhbGUgPSBuZXcgTG9jYWxlKCJkZSIsICJERSIpOworICAgICAgICAgICAgTG9jYWxlLnNldERlZmF1bHQoY3VyTG9jYWxlKTsKKyAgICAgICAgICAgIC8vIHtzZmJ9IGFkb3B0RGVmYXVsdCBpbnN0ZWFkIG9mIHNldERlZmF1bHQKKyAgICAgICAgICAgIC8vVGltZVpvbmUuc2V0RGVmYXVsdChUaW1lWm9uZS5jcmVhdGVUaW1lWm9uZSgiRVNUIikpOworICAgICAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdChUaW1lWm9uZS5nZXRUaW1lWm9uZSgiRVNUIikpOworICAgICAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgY2FsLnNldCg5OCArIDE5MDAsIDAsIDEpOworICAgICAgICAgICAgY3VyRGF0ZSA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgICAgICBzaG9ydGRhdGUgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LlNIT1JUKTsKKyAgICAgICAgICAgIGZ1bGxkYXRlID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKERhdGVGb3JtYXQuTE9ORywgRGF0ZUZvcm1hdC5MT05HKTsKKyAgICAgICAgICAgIHN0clNob3J0RGF0ZSA9ICJUaGUgY3VycmVudCBkYXRlIChzaG9ydCBmb3JtKSBpcyAiOworICAgICAgICAgICAgU3RyaW5nIHRlbXA7CisgICAgICAgICAgICB0ZW1wID0gc2hvcnRkYXRlLmZvcm1hdChjdXJEYXRlKTsKKyAgICAgICAgICAgIHN0clNob3J0RGF0ZSArPSB0ZW1wOworICAgICAgICAgICAgc3RyRnVsbERhdGUgPSAiVGhlIGN1cnJlbnQgZGF0ZSAobG9uZyBmb3JtKSBpcyAiOworICAgICAgICAgICAgU3RyaW5nIHRlbXAyID0gZnVsbGRhdGUuZm9ybWF0KGN1ckRhdGUpOworICAgICAgICAgICAgc3RyRnVsbERhdGUgKz0gdGVtcDI7CisgICAgCisgICAgICAgICAgICBsb2dsbihzdHJTaG9ydERhdGUpOworICAgICAgICAgICAgbG9nbG4oc3RyRnVsbERhdGUpOworICAgIAorICAgICAgICAgICAgLy8ge3NmYn0gV2hhdCB0byBkbyB3aXRoIHJlc291cmNlIGJ1bmRsZSBzdHVmZj8/Pz8/CisgICAgCisgICAgICAgICAgICAvLyBDaGVjayB0byBzZWUgaWYgdGhlIHJlc291cmNlIGlzIHByZXNlbnQ7IGlmIG5vdCwgd2UgY2FuJ3QgdGVzdAorICAgICAgICAgICAgLy9SZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSAvL1RoZSB2YXJpYWJsZSBpcyBuZXZlciB1c2VkCisgICAgICAgICAgICAvLyAgICBJQ1VMb2NhbGVEYXRhLmdldEJ1bmRsZSgiRGF0ZUZvcm1hdFpvbmVEYXRhIiwgY3VyTG9jYWxlKTsgCisgICAgCisgICAgICAgICAgICAvLyB7c2ZifSBBUEkgY2hhbmdlIHRvIFJlc291cmNlQnVuZGxlIC0tIGFkZCBnZXRMb2NhbGUoKQorICAgICAgICAgICAgLyppZiAoYnVuZGxlLmdldExvY2FsZSgpLmdldExhbmd1YWdlKCkuZXF1YWxzKCJkZSIpKSB7CisgICAgICAgICAgICAgICAgLy8gVVBEQVRFIFRISVMgQVMgWk9ORSBOQU1FIFJFU09VUkNFIEZPUiA8RVNUPiBpbiBkZV9ERSBpcyB1cGRhdGVkCisgICAgICAgICAgICAgICAgaWYgKCFzdHJGdWxsRGF0ZS5lbmRzV2l0aCgiR01ULTA1OjAwIikpCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBXYW50IEdNVC0wNTowMCIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiKioqIFRFU1QgQ09VTEQgTk9UIEJFIENPTVBMRVRFRCBCRUNBVVNFIERhdGVGb3JtYXRab25lRGF0YSAqKioiKTsKKyAgICAgICAgICAgICAgICBsb2dsbigiKioqIEZPUiBMT0NBTEUgZGUgT1IgZGVfREUgSVMgTUlTU0lORyAqKioiKTsKKyAgICAgICAgICAgIH0qLworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nbG4oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgTG9jYWxlLnNldERlZmF1bHQoc2F2ZUxvY2FsZSk7CisgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KHNhdmVab25lKTsKKyAgICAgICAgfQorICAgIAorICAgIH0KKyAgICAKKyAgICAvKgorICAgICAgRGF0ZUZvcm1hdC5lcXVhbHMgaXMgdG9vIG5hcnJvd2x5IGRlZmluZWQuICBBcyBhIHJlc3VsdCwgTWVzc2FnZUZvcm1hdAorICAgICAgZG9lcyBub3Qgd29yayBjb3JyZWN0bHkuICBEYXRlRm9ybWF0LmVxdWFscyBuZWVkcyB0byBiZSB3cml0dGVuIHNvCisgICAgICB0aGF0IHRoZSBDYWxlbmRhciBzdWItb2JqZWN0IGlzIG5vdCBjb21wYXJlZCB1c2luZyBDYWxlbmRhci5lcXVhbHMsCisgICAgICBidXQgcmF0aGVyIGNvbXBhcmVkIGZvciBlcXVpdmFsZW5jeS4gIFRoaXMgbWF5IG5lY2Vzc2l0YXRlIGFkZGluZyBhCisgICAgICAocGFja2FnZSBwcml2YXRlKSBtZXRob2QgdG8gQ2FsZW5kYXIgdG8gdGVzdCBmb3IgZXF1aXZhbGVuY3kuCisgICAgICAKKyAgICAgIEN1cnJlbnRseSB0aGlzIGJ1ZyBicmVha3MgTWVzc2FnZUZvcm1hdC50b1BhdHRlcm4KKyAgICAgICovCisgICAgLyoqCisgICAgICogQGJ1ZyA0MDcxNDQxCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwNzE0NDEoKSB7CisgICAgICAgIERhdGVGb3JtYXQgZm10QSA9IERhdGVGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgRGF0ZUZvcm1hdCBmbXRCID0gRGF0ZUZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgIAorICAgICAgICAvLyB7c2ZifSBJcyBpdCBPSyB0byBjYXN0IGF3YXkgY29uc3QgaGVyZT8KKyAgICAgICAgQ2FsZW5kYXIgY2FsQSA9IGZtdEEuZ2V0Q2FsZW5kYXIoKTsKKyAgICAgICAgQ2FsZW5kYXIgY2FsQiA9IGZtdEIuZ2V0Q2FsZW5kYXIoKTsKKyAgICAgICAgY2FsQS5jbGVhcigpOworICAgICAgICBjYWxBLnNldCgxOTAwLCAwICwwKTsKKyAgICAgICAgY2FsQi5jbGVhcigpOworICAgICAgICBjYWxCLnNldCgxOTAwLCAwLCAwKTsKKyAgICAgICAgaWYgKCFjYWxBLmVxdWFscyhjYWxCKSkKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBDYW4ndCBjb21wbGV0ZSB0ZXN0OyBDYWxlbmRhciBpbnN0YW5jZXMgdW5lcXVhbCIpOworICAgICAgICBpZiAoIWZtdEEuZXF1YWxzKGZtdEIpKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IERhdGVGb3JtYXQgdW5lcXVhbCB3aGVuIENhbGVuZGFycyBlcXVhbCIpOworICAgICAgICBjYWxCLmNsZWFyKCk7CisgICAgICAgIGNhbEIuc2V0KDE5NjEsIENhbGVuZGFyLkRFQ0VNQkVSLCAyNSk7CisgICAgICAgIGlmIChjYWxBLmVxdWFscyhjYWxCKSkKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBDYW4ndCBjb21wbGV0ZSB0ZXN0OyBDYWxlbmRhciBpbnN0YW5jZXMgZXF1YWwiKTsKKyAgICAgICAgaWYgKCFmbXRBLmVxdWFscyhmbXRCKSkKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBEYXRlRm9ybWF0IHVuZXF1YWwgd2hlbiBDYWxlbmRhcnMgZXF1aXZhbGVudCIpOworICAgICAgICBsb2dsbigiRGF0ZUZvcm1hdC5lcXVhbHMgb2siKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qIFRoZSBqYXZhLnRleHQuRGF0ZUZvcm1hdC5wYXJzZShTdHJpbmcpIG1ldGhvZCBleHBlY3RzIGZvciB0aGUKKyAgICAgIFVTIGxvY2FsZSBhIHN0cmluZyBmb3JtYXR0ZWQgYWNjb3JkaW5nIHRvIG1tL2RkL3l5IGFuZCBwYXJzZXMgaXQKKyAgICAgIGNvcnJlY3RseS4KKyAgICAKKyAgICAgIFdoZW4gZ2l2ZW4gYSBzdHJpbmcgbW0vZGQveXl5eSBpdCBvbmx5IHBhcnNlcyB1cCB0byB0aGUgZmlyc3QKKyAgICAgIHR3byB5J3MsIHR5cGljYWxseSByZXN1bHRpbmcgaW4gYSBkYXRlIGluIHRoZSB5ZWFyIDE5MTkuCisgICAgICAKKyAgICAgIFBsZWFzZSBleHRlbmQgdGhlIHBhcnNpbmcgbWV0aG9kKHMpIHRvIGhhbmRsZSBzdHJpbmdzIHdpdGgKKyAgICAgIGZvdXItZGlnaXQgeWVhciB2YWx1ZXMgKHByb2JhYmx5IGFsc28gYXBwbGljYWJsZSB0byB2YXJpb3VzCisgICAgICBvdGhlciBsb2NhbGVzLiAgKi8KKyAgICAvKioKKyAgICAgKiBAYnVnIDQwNzMwMDMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA3MzAwMygpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIERhdGVGb3JtYXQgZm10ID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5TSE9SVCwgTG9jYWxlLlVTKTsKKyAgICAgICAgICAgIFN0cmluZyB0ZXN0c1tdID0geyIxMi8yNS82MSIsICIxMi8yNS8xOTYxIiwgIjQvMy8yMDEwIiwgIjQvMy8xMCJ9OworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA0OyBpICs9IDIpIHsKKyAgICAgICAgICAgICAgICBEYXRlIGQgPSBmbXQucGFyc2UodGVzdHNbaV0pOworICAgICAgICAgICAgICAgIERhdGUgZGQgPSBmbXQucGFyc2UodGVzdHNbaSArIDFdKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgczsKKyAgICAgICAgICAgICAgICBzID0gZm10LmZvcm1hdChkKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgc3M7CisgICAgICAgICAgICAgICAgc3MgPSBmbXQuZm9ybWF0KGRkKTsKKyAgICAgICAgICAgICAgICBpZiAoZC5nZXRUaW1lKCkgIT0gZGQuZ2V0VGltZSgpKQorICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIGQgKyAiICE9ICIgKyBkZCk7CisgICAgICAgICAgICAgICAgaWYgKCFzLmVxdWFscyhzcykpCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgcyArICIgIT0gIiArIHNzKTsKKyAgICAgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyBzICsgIiAiICsgZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgZSk7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9ICAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAYnVnIDQwODkxMDYKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA4OTEwNigpIHsKKyAgICAgICAgVGltZVpvbmUgZGVmID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgVGltZVpvbmUgeiA9IG5ldyBTaW1wbGVUaW1lWm9uZSgoaW50KSAoMS4yNSAqIDM2MDAwMDApLCAiRkFLRVpPTkUiKTsKKyAgICAgICAgICAgIFRpbWVab25lLnNldERlZmF1bHQoeik7CisgICAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgpOworICAgICAgICAgICAgaWYgKCFmLmdldFRpbWVab25lKCkuZXF1YWxzKHopKQorICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBTaW1wbGVUaW1lWm9uZSBzaG91bGQgdXNlIFRpbWVab25lLmdldERlZmF1bHQoKSIpOworICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdChkZWYpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEBidWcgNDEwMDMwMgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTAwMzAyKCkgeworICAgICAgICAKKyAgICAgICAgTG9jYWxlIGxvY2FsZXNbXSA9IHsKKyAgICAgICAgICAgIExvY2FsZS5DQU5BREEsIExvY2FsZS5DQU5BREFfRlJFTkNILCBMb2NhbGUuQ0hJTkEsIAorICAgICAgICAgICAgTG9jYWxlLkNISU5FU0UsIExvY2FsZS5FTkdMSVNILCBMb2NhbGUuRlJBTkNFLCBMb2NhbGUuRlJFTkNILCAKKyAgICAgICAgICAgIExvY2FsZS5HRVJNQU4sIExvY2FsZS5HRVJNQU5ZLCBMb2NhbGUuSVRBTElBTiwgTG9jYWxlLklUQUxZLCAKKyAgICAgICAgICAgIExvY2FsZS5KQVBBTiwgTG9jYWxlLkpBUEFORVNFLCBMb2NhbGUuS09SRUEsIExvY2FsZS5LT1JFQU4sIAorICAgICAgICAgICAgTG9jYWxlLlBSQywgTG9jYWxlLlNJTVBMSUZJRURfQ0hJTkVTRSwgTG9jYWxlLlRBSVdBTiwgCisgICAgICAgICAgICBMb2NhbGUuVFJBRElUSU9OQUxfQ0hJTkVTRSwgTG9jYWxlLlVLLCBMb2NhbGUuVVN9OyAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGJvb2xlYW4gcGFzcyA9IHRydWU7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDIxOyBpKyspIHsKKyAgICAgICAgICAgICAgICBGb3JtYXQgZm9ybWF0ID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKERhdGVGb3JtYXQuRlVMTCwgRGF0ZUZvcm1hdC5GVUxMLCBsb2NhbGVzW2ldKTsgCisgICAgICAgICAgICAgICAgYnl0ZVtdIGJ5dGVzOworICAgICAgICAgICAgICAgIEJ5dGVBcnJheU91dHB1dFN0cmVhbSBiYW9zID0gbmV3IEJ5dGVBcnJheU91dHB1dFN0cmVhbSgpOworICAgICAgICAgICAgICAgIE9iamVjdE91dHB1dFN0cmVhbSBvb3MgPSBuZXcgT2JqZWN0T3V0cHV0U3RyZWFtKGJhb3MpOworICAgICAgICAgICAgICAgIG9vcy53cml0ZU9iamVjdChmb3JtYXQpOworICAgICAgICAgICAgICAgIG9vcy5mbHVzaCgpOworICAgICAgICAgICAgICAgIGJhb3MuY2xvc2UoKTsKKyAgICAgICAgICAgICAgICBieXRlcyA9IGJhb3MudG9CeXRlQXJyYXkoKTsKKyAgICAgICAgICAgICAgICBPYmplY3RJbnB1dFN0cmVhbSBvaXMgPSBuZXcgT2JqZWN0SW5wdXRTdHJlYW0obmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKGJ5dGVzKSk7CisgICAgICAgICAgICAgICAgT2JqZWN0IG8gPSBvaXMucmVhZE9iamVjdCgpOworICAgICAgICAgICAgICAgIGlmICghZm9ybWF0LmVxdWFscyhvKSkgeworICAgICAgICAgICAgICAgICAgICBwYXNzID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJEYXRlRm9ybWF0IGluc3RhbmNlIGZvciBsb2NhbGUgIiArIGxvY2FsZXNbaV0gKyAiIGlzIGluY29ycmVjdGx5IHNlcmlhbGl6ZWQvZGVzZXJpYWxpemVkLiIpOyAKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiRGF0ZUZvcm1hdCBpbnN0YW5jZSBmb3IgbG9jYWxlICIgKyBsb2NhbGVzW2ldICsgIiBpcyBPS0FZLiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghcGFzcykKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogRGF0ZUZvcm1hdCBzZXJpYWxpemF0aW9uL2VxdWFsaXR5IGJ1ZyIpOworICAgICAgICB9IGNhdGNoIChPcHRpb25hbERhdGFFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyBlKTsKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyBlKTsKKyAgICAgICAgfSBjYXRjaCAoQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIGUpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyBlKTsKKyAgICAgICAgfQorICAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAYnVnIDQxMDE0ODMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEwMTQ4MygpIHsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgieiIsIExvY2FsZS5VUyk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gZnAgPSBuZXcgRmllbGRQb3NpdGlvbihEYXRlRm9ybWF0LlRJTUVaT05FX0ZJRUxEKTsKKyAgICAgICAgRGF0ZSBkID0gbmV3IERhdGUoOTIzNDU2Nzg5MEwpOworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgIHNkZi5mb3JtYXQoZCwgYnVmLCBmcCk7CisgICAgICAgIGxvZ2xuKHNkZi5mb3JtYXQoZCwgYnVmLCBmcCkudG9TdHJpbmcoKSk7CisgICAgICAgIGxvZ2xuKCJiZWdpbkluZGV4ID0gIiArIGZwLmdldEJlZ2luSW5kZXgoKSk7CisgICAgICAgIGxvZ2xuKCJlbmRJbmRleCA9ICIgKyBmcC5nZXRFbmRJbmRleCgpKTsKKyAgICAgICAgaWYgKGZwLmdldEJlZ2luSW5kZXgoKSA9PSBmcC5nZXRFbmRJbmRleCgpKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IEVtcHR5IGZpZWxkIik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEBidWcgNDEwMzM0MAorICAgICAqIEBidWcgNDEzODIwMworICAgICAqIFRoaXMgYnVnIHJlYWxseSBvbmx5IHdvcmtzIGluIExvY2FsZS5VUywgc2luY2UgdGhhdCdzIHdoYXQgdGhlIGxvY2FsZQorICAgICAqIHVzZWQgZm9yIERhdGUudG9TdHJpbmcoKSBpcy4gIEJ1ZyA0MTM4MjAzIHJlcG9ydHMgdGhhdCBpdCBmYWlscyBvbiBLb3JlYW4KKyAgICAgKiBOVDsgaXQgd291bGQgYWN0dWFsbHkgaGF2ZSBmYWlsZWQgb24gYW55IG5vbi1VUyBsb2NhbGUuICBOb3cgaXQgc2hvdWxkCisgICAgICogd29yayBvbiBhbGwgbG9jYWxlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEwMzM0MCgpIHsKKyAgICAKKyAgICAgICAgLy8gY2hvb3NlIGEgZGF0ZSB0aGF0IGlzIHRoZSBGSVJTVCBvZiBzb21lIG1vbnRoIAorICAgICAgICAvLyBhbmQgc29tZSBhcmJpdHJhcnkgdGltZQorICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgxOTk3LCAzLCAxLCAxLCAxLCAxKTsKKyAgICAgICAgRGF0ZSBkID0gY2FsLmdldFRpbWUoKTsgCisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiTU1NTSIsIExvY2FsZS5VUyk7CisgICAgICAgIFN0cmluZyBzID0gZC50b1N0cmluZygpOworICAgICAgICBTdHJpbmdCdWZmZXIgczIgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgczIgPSBkZi5mb3JtYXQoZCwgczIsIHBvcyk7CisgICAgICAgIGxvZ2xuKCJEYXRlPSIgKyBzKTsgCisgICAgICAgIGxvZ2xuKCJERj0iICsgczIpOworICAgICAgICBTdHJpbmcgc3Vic3RyID0gczIuc3Vic3RyaW5nKDAsMik7CisgICAgICAgIGlmIChzLmluZGV4T2Yoc3Vic3RyKSA9PSAtMSkKKyAgICAgICAgICBlcnJsbigiTW9udGhzIHNob3VsZCBtYXRjaCIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAYnVnIDQxMDMzNDEKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEwMzM0MSgpIHsKKyAgICAgICAgVGltZVpvbmUgc2F2ZVpvbmUgPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAvLyB7c2ZifSBjaGFuZ2VkIGZyb20gYWRvcHREZWZhdWx0IHRvIHNldERlZmF1bHQKKyAgICAgICAgICAgIFRpbWVab25lLnNldERlZmF1bHQoVGltZVpvbmUuZ2V0VGltZVpvbmUoIkNTVCIpKTsKKyAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2ltcGxlID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIk1NL2RkL3l5eXkgSEg6bW0iKTsKKyAgICAgICAgICAgIFRpbWVab25lIHRlbXAgPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgICAgICAgICBpZiAoIXNpbXBsZS5nZXRUaW1lWm9uZSgpLmVxdWFscyh0ZW1wKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogU2ltcGxlRGF0ZUZvcm1hdCBub3QgdXNpbmcgZGVmYXVsdCB6b25lIik7CisgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KHNhdmVab25lKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAYnVnIDQxMDQxMzYKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEwNDEzNigpIHsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgpOworICAgICAgICBTdHJpbmcgcGF0dGVybiA9ICIndGltZScgaGg6bW0iOworICAgICAgICBzZGYuYXBwbHlQYXR0ZXJuKHBhdHRlcm4pOworICAgICAgICBsb2dsbigicGF0dGVybjogXCIiICsgcGF0dGVybiArICJcIiIpOworICAgICAgICBTdHJpbmcgc3RyaW5nc1tdID0geyJ0aW1lIDEwOjMwIiwgInRpbWUgMTA6eCIsICJ0aW1lIDEweCJ9OworICAgICAgICBQYXJzZVBvc2l0aW9uIHBwb3NbXSA9IHtuZXcgUGFyc2VQb3NpdGlvbigxMCksIG5ldyBQYXJzZVBvc2l0aW9uKDApLCBuZXcgUGFyc2VQb3NpdGlvbigwKX07CisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDE5NzAsIENhbGVuZGFyLkpBTlVBUlksIDEsIDEwLCAzMCk7CisgICAgICAgIERhdGUgZGF0ZXNbXSA9IHtjYWwuZ2V0VGltZSgpLCBuZXcgRGF0ZSgtMSksIG5ldyBEYXRlKC0xKX07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMzsgaSsrKSB7CisgICAgICAgICAgICBTdHJpbmcgdGV4dCA9IHN0cmluZ3NbaV07CisgICAgICAgICAgICBQYXJzZVBvc2l0aW9uIGZpbmlzaCA9IHBwb3NbaV07CisgICAgICAgICAgICBEYXRlIGV4cCA9IGRhdGVzW2ldOworICAgICAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgICAgIERhdGUgZCA9IHNkZi5wYXJzZSh0ZXh0LCBwb3MpOworICAgICAgICAgICAgbG9nbG4oIiB0ZXh0OiBcIiIgKyB0ZXh0ICsgIlwiIik7CisgICAgICAgICAgICBsb2dsbigiIGluZGV4OiAlZCIgKyBwb3MuZ2V0SW5kZXgoKSk7CisgICAgICAgICAgICBsb2dsbigiIHJlc3VsdDogIiArIGQpOworICAgICAgICAgICAgaWYgKHBvcy5nZXRJbmRleCgpICE9IGZpbmlzaC5nZXRJbmRleCgpKQorICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBFeHBlY3RlZCBwb3MgIiArIGZpbmlzaC5nZXRJbmRleCgpKTsKKyAgICAgICAgICAgIGlmICghKChkID09IG51bGwgJiYgZXhwLmVxdWFscyhuZXcgRGF0ZSgtMSkpKSB8fCAoZC5lcXVhbHMoZXhwKSkpKQorICAgICAgICAgICAgICAgIGVycmxuKCAiRmFpbDogRXhwZWN0ZWQgcmVzdWx0ICIgKyBleHApOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEBidWcgNDEwNDUyMgorICAgICAqIENBTk5PVCBSRVBST0RVQ0UKKyAgICAgKiBBY2NvcmRpbmcgdG8gdGhlIGJ1ZyByZXBvcnQsIHRoaXMgdGVzdCBzaG91bGQgdGhyb3cgYQorICAgICAqIFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gZHVyaW5nIHRoZSBzZWNvbmQgcGFyc2UuICBIb3dldmVyLAorICAgICAqIHRoaXMgaXMgbm90IHNlZW4uCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDQ1MjIoKSB7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoKTsKKyAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSAiJ3RpbWUnIGhoOm1tIjsKKyAgICAgICAgc2RmLmFwcGx5UGF0dGVybihwYXR0ZXJuKTsKKyAgICAgICAgbG9nbG4oInBhdHRlcm46IFwiIiArIHBhdHRlcm4gKyAiXCIiKTsKKyAgICAgICAgLy8gd29ya3MgY29ycmVjdGx5CisgICAgICAgIFBhcnNlUG9zaXRpb24gcHAgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgU3RyaW5nIHRleHQgPSAidGltZSAiOworICAgICAgICBEYXRlIGR0ID0gc2RmLnBhcnNlKHRleHQsIHBwKTsKKyAgICAgICAgbG9nbG4oIiB0ZXh0OiBcIiIgKyB0ZXh0ICsgIlwiIiArICIgZGF0ZTogIiArIGR0KTsKKyAgICAgICAgLy8gd29ya3Mgd3JvbmcKKyAgICAgICAgcHAuc2V0SW5kZXgoMCk7CisgICAgICAgIHRleHQgPSAidGltZSI7CisgICAgICAgIGR0ID0gc2RmLnBhcnNlKHRleHQsIHBwKTsKKyAgICAgICAgbG9nbG4oIiB0ZXh0OiBcIiIgKyB0ZXh0ICsgIlwiIiArICIgZGF0ZTogIiArIGR0KTsgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEBidWcgNDEwNjgwNworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTA2ODA3KCkgeworICAgICAgICBEYXRlIGR0OworICAgICAgICBEYXRlRm9ybWF0IGRmID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKCk7CisgICAgCisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2Rmc1tdID0geworICAgICAgICAgICAgICAgIG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJ5eXl5TU1kZEhIbW1zcyIpLCAKKyAgICAgICAgICAgICAgICBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgieXl5eU1NZGRISG1tc3MnWiciKSwgCisgICAgICAgICAgICAgICAgbmV3IFNpbXBsZURhdGVGb3JtYXQoInl5eXlNTWRkSEhtbXNzJyciKSwgCisgICAgICAgICAgICAgICAgbmV3IFNpbXBsZURhdGVGb3JtYXQoInl5eXlNTWRkSEhtbXNzJ2EnJ2EnIiksIAorICAgICAgICAgICAgICAgIG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJ5eXl5TU1kZEhIbW1zcyAlIil9OyAKKyAgICAgICAgU3RyaW5nIHN0cmluZ3NbXSA9IHsKKyAgICAgICAgICAgICAgICAiMTk5ODAyMTExNDAwMDAiLCAKKyAgICAgICAgICAgICAgICAiMTk5ODAyMTExNDAwMDAiLCAKKyAgICAgICAgICAgICAgICAiMTk5ODAyMTExNDAwMDAiLCAKKyAgICAgICAgICAgICAgICAiMTk5ODAyMTExNDAwMDBhIiwgCisgICAgICAgICAgICAgICAgIjE5OTgwMjExMTQwMDAwICJ9OyAKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZ2MgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgVGltZVpvbmUgdGltZVpvbmUgPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgICAgIFRpbWVab25lIGdtdCA9IChUaW1lWm9uZSkgdGltZVpvbmUuY2xvbmUoKTsKKyAgICAgICAgZ210LnNldFJhd09mZnNldCgwKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA1OyBpKyspIHsKKyAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm9ybWF0ID0gc2Rmc1tpXTsKKyAgICAgICAgICAgIFN0cmluZyBkYXRlU3RyaW5nID0gc3RyaW5nc1tpXTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZm9ybWF0LnNldFRpbWVab25lKGdtdCk7CisgICAgICAgICAgICAgICAgZHQgPSBmb3JtYXQucGFyc2UoZGF0ZVN0cmluZyk7CisgICAgICAgICAgICAgICAgLy8ge3NmYn0gc29tZSBvZiB0aGVzZSBwYXJzZXMgd2lsbCBmYWlsIHB1cnBvc2VseQorICAgIAorICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBmbXRkID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgICAgICAgICBmbXRkID0gZGYuZm9ybWF0KGR0LCBmbXRkLCBwb3MpOworICAgICAgICAgICAgICAgIGxvZ2xuKGZtdGQudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgLy9sb2dsbihkZi5mb3JtYXQoZHQpKTsgCisgICAgICAgICAgICAgICAgZ2Muc2V0VGltZShkdCk7CisgICAgICAgICAgICAgICAgbG9nbG4oIiIgKyBnYy5nZXQoQ2FsZW5kYXIuWk9ORV9PRkZTRVQpKTsKKyAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcyA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgICAgICAgICAgICAgIHMgPSBmb3JtYXQuZm9ybWF0KGR0LCBzLCBwb3MpOworICAgICAgICAgICAgICAgIGxvZ2xuKHMudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk5vIHdheSBKb3NlIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoKKyAgICAgIFN5bm9wc2lzOiBDaGluZXNlIHRpbWUgem9uZSBDVFQgaXMgbm90IHJlY29nb25pemVkIGNvcnJlY3RseS4KKyAgICAgIERlc2NyaXB0aW9uOiBQbGF0Zm9ybSBDaGluZXNlIFdpbmRvd3MgOTUgLSAqKiBUaW1lIHpvbmUgc2V0IHRvIENTVCAqKiAKKyAgICAgICovCisgICAgLyoqCisgICAgICogQGJ1ZyA0MTA4NDA3CisgICAgICovCisgICAgCisgICAgLy8ge3NmYn0gd2hhdCB0byBkbyB3aXRoIHRoaXMgb25lID8/IAorICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTA4NDA3KCkgeworICAgICAgICAvKgorICAgICAgICBsb25nIGwgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsgCisgICAgICAgIGxvZ2xuKCJ1c2VyLnRpbWV6b25lID0gIiArIFN5c3RlbS5nZXRQcm9wZXJ0eSgidXNlci50aW1lem9uZSIsICI/IikpOworICAgICAgICBsb2dsbigiVGltZSBab25lIDoiICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZSgpLmdldFRpbWVab25lKCkuZ2V0SUQoKSk7IAorICAgICAgICBsb2dsbigiRGVmYXVsdCBmb3JtYXQgOiIgKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKCkuZm9ybWF0KG5ldyBEYXRlKGwpKSk7IAorICAgICAgICBsb2dsbigiRnVsbCBmb3JtYXQgOiIgKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuRlVMTCkuZm9ybWF0KG5ldyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGUobCkpKTsgCisgICAgICAgIGxvZ2xuKCIqKiogU2V0IGhvc3QgVFogdG8gQ1NUICoqKiIpOworICAgICAgICBsb2dsbigiKioqIFRIRSBSRVNVTFRTIE9GIFRISVMgVEVTVCBNVVNUIEJFIFZFUklGSUVEIE1BTlVBTExZICoqKiIpOworICAgICAgICAqLworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAYnVnIDQxMzQyMDMKKyAgICAgKiBTaW1wbGVEYXRlRm9ybWF0IHdvbid0IHBhcnNlICJHTVQiCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMzQyMDMoKSB7CisgICAgICAgIFN0cmluZyBkYXRlRm9ybWF0ID0gIk1NL2RkL3l5IEhIOm1tOnNzIHp6eiI7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoZGF0ZUZvcm1hdCk7CisgICAgCisgICAgICAgIFBhcnNlUG9zaXRpb24gcDAgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgRGF0ZSBkID0gZm10LnBhcnNlKCIwMS8yMi85MiAwNDo1MjowMCBHTVQiLCBwMCk7CisgICAgICAgIGxvZ2xuKGQudG9TdHJpbmcoKSk7CisgICAgICAgIGlmKHAwLmVxdWFscyhuZXcgUGFyc2VQb3NpdGlvbigwKSkpCisgICAgICAgICAgICBlcnJsbigiRmFpbDogZmFpbGVkIHRvIHBhcnNlICdHTVQnIik7CisgICAgICAgIC8vIEluIHRoZSBmYWlsdXJlIGNhc2UgYW4gZXhjZXB0aW9uIGlzIHRocm93biBieSBwYXJzZSgpOworICAgICAgICAvLyBpZiBubyBleGNlcHRpb24gaXMgdGhyb3duLCB0aGUgdGVzdCBwYXNzZXMuCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEBidWcgNDE1MTYzMQorICAgICAqIFNpbXBsZURhdGVGb3JtYXQgaW5jb3JyZWN0IGhhbmRsaW5nIG9mIDIgc2luZ2xlIHF1b3RlcyBpbiBmb3JtYXQoKQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTUxNjMxKCkgeworICAgICAgICBTdHJpbmcgcGF0dGVybiA9IAorICAgICAgICAgICAgIidUT19EQVRFKCcnJ2RkJy0nTU0nLSd5eXl5IEhIOm1tOnNzJycnICwgJydERC1NTS1ZWVlZIEhIOk1JOlNTJycpJyI7IAorICAgICAgICBsb2dsbigicGF0dGVybj0iICsgcGF0dGVybik7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm9ybWF0ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQocGF0dGVybiwgTG9jYWxlLlVTKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgICAgICBGaWVsZFBvc2l0aW9uIHBvcyA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgxOTk4LCBDYWxlbmRhci5KVU5FLCAzMCwgMTMsIDMwLCAwKTsKKyAgICAgICAgRGF0ZSBkID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgcmVzdWx0ID0gZm9ybWF0LmZvcm1hdChkLCByZXN1bHQsIHBvcyk7IAorICAgICAgICBpZiAoIXJlc3VsdC50b1N0cmluZygpLmVxdWFscygiVE9fREFURSgnMzAtMDYtMTk5OCAxMzozMDowMCcgLCAnREQtTU0tWVlZWSBISDpNSTpTUycpIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiByZXN1bHQ9IiArIHJlc3VsdCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2dsbigiUGFzczogcmVzdWx0PSIgKyByZXN1bHQpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEBidWcgNDE1MTcwNgorICAgICAqICd6JyBhdCBlbmQgb2YgZGF0ZSBmb3JtYXQgdGhyb3dzIGluZGV4IGV4Y2VwdGlvbiBpbiBTaW1wbGVEYXRlRm9ybWF0CisgICAgICogQ0FOTk9UIFJFUFJPRFVDRSBUSElTIEJVRyBPTiAxLjJGQ1MKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE1MTcwNigpIHsKKyAgICAgICAgU3RyaW5nIGRhdGVTdHJpbmcgPSAiVGh1cnNkYXksIDMxLURlYy05OCAyMzowMDowMCBHTVQiOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJFRUVFLCBkZC1NTU0teXkgSEg6bW06c3MgeiIsIExvY2FsZS5VUyk7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKFRpbWVab25lLmdldFRpbWVab25lKCJVVEMiKSwgTG9jYWxlLlVTKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMTk5OCwgQ2FsZW5kYXIuREVDRU1CRVIsIDMxLCAyMywgMCwgMCk7CisgICAgICAgIERhdGUgZCA9IG5ldyBEYXRlKCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBkID0gZm10LnBhcnNlKGRhdGVTdHJpbmcpOworICAgICAgICAgICAgLy8ge3NmYn0gd2hhdCBhYm91dCBuZXh0IHR3byBsaW5lcz8KKyAgICAgICAgICAgIGlmIChkLmdldFRpbWUoKSAhPSBjYWwuZ2V0VGltZSgpLmdldFRpbWUoKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiSW5jb3JyZWN0IHZhbHVlOiAiICsgZCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIGUpOworICAgICAgICB9CisgICAgICAgIFN0cmluZ0J1ZmZlciB0ZW1wID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIGxvZ2xuKGRhdGVTdHJpbmcgKyAiIC4gIiArIGZtdC5mb3JtYXQoZCwgdGVtcCwgcG9zKSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEBidWcgNDE2MjA3MQorICAgICAqIENhbm5vdCByZXByb2R1Y2UgdGhpcyBidWcgdW5kZXIgMS4yIEZDUyAtLSBpdCBtYXkgYmUgYSBjb252b2x1dGVkIGR1cGxpY2F0ZQorICAgICAqIG9mIHNvbWUgb3RoZXIgYnVnIHRoYXQgaGFzIGJlZW4gZml4ZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNjIwNzEoKSB7CisgICAgICAgIFN0cmluZyBkYXRlU3RyaW5nID0gIlRodSwgMzAtSnVsLTE5OTkgMTE6NTE6MTQgR01UIjsKKyAgICAgICAgU3RyaW5nIGZvcm1hdCA9ICJFRUUnLCAnZGQtTU1NLXl5eXkgSEg6bW06c3MgeiI7IC8vIFJGQyA4MjIvMTEyMworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGRmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoZm9ybWF0LCBMb2NhbGUuVVMpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgRGF0ZSB4ID0gZGYucGFyc2UoZGF0ZVN0cmluZyk7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgdGVtcCA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgICAgIGxvZ2xuKGRhdGVTdHJpbmcgKyAiIC0+ICIgKyBkZi5mb3JtYXQoeCwgdGVtcCwgcG9zKSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiUGFyc2UgZm9ybWF0IFwiIiArIGZvcm1hdCArICJcIiBmYWlsZWQuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogRGF0ZUZvcm1hdCBzaG91bGRuJ3QgcGFyc2UgeWVhciAiLTEiIGFzIGEgdHdvLWRpZ2l0IHllYXIgKGUuZy4sICItMSIgLiAxOTk5KS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE4MjA2NigpIHsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiTU0vZGQveXkiLCBMb2NhbGUuVVMpOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGRpc3BGbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiTU1NIGRkIHl5eXkgSEg6bW06c3MgR0ciLCBMb2NhbGUuVVMpOworICAgICAgICAvKiBXZSBleHBlY3QgMi1kaWdpdCB5ZWFyIGZvcm1hdHMgdG8gcHV0IDItZGlnaXQgeWVhcnMgaW4gdGhlIHJpZ2h0CisgICAgICAgICAqIHdpbmRvdy4gIE91dCBvZiByYW5nZSB5ZWFycywgdGhhdCBpcywgYW55dGhpbmcgbGVzcyB0aGFuICIwMCIgb3IKKyAgICAgICAgICogZ3JlYXRlciB0aGFuICI5OSIsIGFyZSB0cmVhdGVkIGFzIGxpdGVyYWwgeWVhcnMuICBTbyAiMS8yLzM0NTYiCisgICAgICAgICAqIGJlY29tZXMgMzQ1NiBBRC4gIExpa2V3aXNlLCAiMS8yLy0zIiBiZWNvbWVzIC0zIEFEID09IDIgQkMuCisgICAgICAgICAqLworICAgICAgICBmaW5hbCBTdHJpbmcgU1RSSU5HU1tdID0gCisgICAgICAgICAgICB7IjAyLzI5LzAwIiwgIjAxLzIzLzAxIiwgIjA0LzA1Ly0xIiwgIjAxLzIzLy05IiwgIjExLzEyLzEzMTQiLCAiMTAvMzEvMSIsICIwOS8xMi8rMSIsICIwOS8xMi8wMDEiLH07IAorICAgICAgICBpbnQgU1RSSU5HU19DT1VOVCA9IFNUUklOR1MubGVuZ3RoOworICAgICAgICAgICAgICAgIAorICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBEYXRlIEZBSUxfREFURSA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDIwMDAsIENhbGVuZGFyLkZFQlJVQVJZLCAyOSk7CisgICAgICAgIERhdGUgZDAgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgyMDAxLCBDYWxlbmRhci5KQU5VQVJZLCAyMyk7CisgICAgICAgIERhdGUgZDEgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgtMSwgQ2FsZW5kYXIuQVBSSUwsIDUpOworICAgICAgICBEYXRlIGQyID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoLTksIENhbGVuZGFyLkpBTlVBUlksIDIzKTsKKyAgICAgICAgRGF0ZSBkMyA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDEzMTQsIENhbGVuZGFyLk5PVkVNQkVSLCAxMik7CisgICAgICAgIERhdGUgZDQgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgxLCBDYWxlbmRhci5PQ1RPQkVSLCAzMSk7CisgICAgICAgIERhdGUgZDUgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBjYWwuY2xlYXIoKTsgICAgICAgIAorICAgICAgICBjYWwuc2V0KDEsIENhbGVuZGFyLlNFUFRFTUJFUiwgMTIpOworICAgICAgICBEYXRlIGQ3ID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgRGF0ZSBEQVRFU1tdID0ge2QwLCBkMSwgZDIsIGQzLCBkNCwgZDUsIEZBSUxfREFURSwgZDd9OworICAgIAorICAgICAgICBTdHJpbmcgb3V0ID0gIiI7CisgICAgICAgIGJvb2xlYW4gcGFzcyA9IHRydWU7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgU1RSSU5HU19DT1VOVDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgc3RyID0gU1RSSU5HU1tpXTsKKyAgICAgICAgICAgIERhdGUgZXhwZWN0ZWQgPSBEQVRFU1tpXTsgICAgICAgICAgICAKKyAgICAgICAgICAgIERhdGUgYWN0dWFsID0gbnVsbDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgYWN0dWFsID0gZm10LnBhcnNlKHN0cik7CisgICAgICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgYWN0dWFsID0gRkFJTF9EQVRFOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3RyaW5nIGFjdFN0ciA9ICIiOworICAgICAgICAgICAgaWYgKChhY3R1YWwuZ2V0VGltZSgpKSA9PSBGQUlMX0RBVEUuZ2V0VGltZSgpKSB7CisgICAgICAgICAgICAgICAgYWN0U3RyICs9ICJudWxsIjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gWXVjazogU2VlIGoyNQorICAgICAgICAgICAgICAgIGFjdFN0ciA9ICgoRGF0ZUZvcm1hdCkgZGlzcEZtdCkuZm9ybWF0KGFjdHVhbCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoZXhwZWN0ZWQuZ2V0VGltZSgpID09IChhY3R1YWwuZ2V0VGltZSgpKSkgeworICAgICAgICAgICAgICAgIG91dCArPSBzdHIgKyAiID0+ICIgKyBhY3RTdHIgKyAiXG4iOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZXhwU3RyID0gIiI7CisgICAgICAgICAgICAgICAgaWYgKGV4cGVjdGVkLmdldFRpbWUoKSA9PSBGQUlMX0RBVEUuZ2V0VGltZSgpKSB7CisgICAgICAgICAgICAgICAgICAgIGV4cFN0ciArPSAibnVsbCI7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gWXVjazogU2VlIGoyNQorICAgICAgICAgICAgICAgICAgICBleHBTdHIgPSAoKERhdGVGb3JtYXQpIGRpc3BGbXQpLmZvcm1hdChleHBlY3RlZCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG91dCArPSAiRkFJTDogIiArIHN0ciArICIgPT4gIiArIGFjdFN0ciArICIsIGV4cGVjdGVkICIgKyBleHBTdHIgKyAiXG4iOworICAgICAgICAgICAgICAgIHBhc3MgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAocGFzcykgeworICAgICAgICAgICAgbG9nKG91dCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnIob3V0KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBqMzIge0pESyBCdWcgNDIxMDIwOSA0MjA5MjcyfQorICAgICAqIERhdGVGb3JtYXQgY2Fubm90IHBhcnNlIEZlYiAyOSAyMDAwIHdoZW4gc2V0TGVuaWVudChmYWxzZSkKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDIxMDIwOSgpIHsKKyAgICAKKyAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSAiTU1NIGQsIHl5eXkiOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChwYXR0ZXJuLCBMb2NhbGUuVVMpOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkaXNwID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIk1NTSBkZCB5eXl5IEdHIiwgTG9jYWxlLlVTKTsKKyAgICAgICAgRGF0ZUZvcm1hdCBmbXQgPSAoRGF0ZUZvcm1hdCkgc2ZtdDsgLy8gWXVjazogU2VlIGoyNQorICAgICAgICBEYXRlRm9ybWF0IGRpc3AgPSAoRGF0ZUZvcm1hdCkgc2Rpc3A7IC8vIFl1Y2s6IFNlZSBqMjUKKyAgICAKKyAgICAgICAgQ2FsZW5kYXIgY2FseCA9IChDYWxlbmRhcikgZm10LmdldENhbGVuZGFyKCk7IC8vIGNhc3QgYXdheSBjb25zdCEKKyAgICAgICAgY2FseC5zZXRMZW5pZW50KGZhbHNlKTsKKyAgICAgICAgQ2FsZW5kYXIgY2FsZW5kYXIgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjYWxlbmRhci5jbGVhcigpOworICAgICAgICBjYWxlbmRhci5zZXQoMjAwMCwgQ2FsZW5kYXIuRkVCUlVBUlksIDI5KTsKKyAgICAgICAgRGF0ZSBkID0gY2FsZW5kYXIuZ2V0VGltZSgpOworICAgICAgICBTdHJpbmcgcyA9IGZtdC5mb3JtYXQoZCk7CisgICAgICAgIGxvZ2xuKGRpc3AuZm9ybWF0KGQpICsgIiBmPiAiICsgcGF0dGVybiArICIgPT4gXCIiICsgcyArICJcIiIpOworICAgICAgICBQYXJzZVBvc2l0aW9uIHBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICBkID0gZm10LnBhcnNlKHMsIHBvcyk7CisgICAgICAgIGxvZ2xuKCJcIiIgKyBzICsgIlwiIHA+ICIgKyBwYXR0ZXJuICsgIiA9PiAiICsgZGlzcC5mb3JtYXQoZCkpOworICAgICAgICBsb2dsbigiUGFyc2UgcG9zID0gIiArIHBvcy5nZXRJbmRleCgpICsgIiwgZXJyb3IgcG9zID0gIiArIHBvcy5nZXRFcnJvckluZGV4KCkpOworICAgICAgICBpZiAocG9zLmdldEVycm9ySW5kZXgoKSAhPSAtMSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IEVycm9yIGluZGV4IHNob3VsZCBiZSAtMSIpOworICAgICAgICB9CisgICAgCisgICAgICAgIC8vIFRoZSB1bmRlcmx5aW5nIGJ1ZyBpcyBpbiBHcmVnb3JpYW5DYWxlbmRhci4gIElmIHRoZSBmb2xsb3dpbmcgbGluZXMKKyAgICAgICAgLy8gc3VjY2VlZCwgdGhlIGJ1ZyBpcyBmaXhlZC4gIElmIHRoZSBidWcgaXNuJ3QgZml4ZWQsIHRoZXkgd2lsbCB0aHJvdworICAgICAgICAvLyBhbiBleGNlcHRpb24uCisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldExlbmllbnQoZmFsc2UpOworICAgICAgICBjYWwuc2V0KDIwMDAsIENhbGVuZGFyLkZFQlJVQVJZLCAyOSk7IC8vIFRoaXMgc2hvdWxkIHdvcmshCisgICAgICAgIGxvZ2xuKCJBdHRlbXB0IHRvIHNldCBDYWxlbmRhciB0byBGZWIgMjkgMjAwMDogIiArIGRpc3AuZm9ybWF0KGNhbC5nZXRUaW1lKCkpKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdDcxNCgpIHsKKyAgICAgICAgLy9UaW1lWm9uZSBPZmZzZXQKKyAgICAgICAgVGltZVpvbmUgZGVmYXVsdFRaID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICBUaW1lWm9uZSBQU1QgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisgICAgICAgIGludCBkZWZhdWx0T2Zmc2V0ID0gZGVmYXVsdFRaLmdldFJhd09mZnNldCgpOworICAgICAgICBpbnQgUFNUT2Zmc2V0ID0gUFNULmdldFJhd09mZnNldCgpOworICAgICAgICBEYXRlIGQgPSBuZXcgRGF0ZSg5NzgxMDM1NDMwMDBsIC0gKGRlZmF1bHRPZmZzZXQgLSBQU1RPZmZzZXQpKTsKKyAgICAgICAgZCA9IG5ldyBEYXRlKGQuZ2V0VGltZSgpIC0gKGRlZmF1bHRUWi5pbkRheWxpZ2h0VGltZShkKSA/IDM2MDAwMDAgOiAwKSk7CisgICAgICAgIERhdGVGb3JtYXQgZm10ID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKC0xLCBEYXRlRm9ybWF0Lk1FRElVTSwgTG9jYWxlLlVTKTsKKyAgICAgICAgU3RyaW5nIHRlc3RzID0gIjc6MjU6NDMgQU0iOworICAgICAgICBTdHJpbmcgcyA9IGZtdC5mb3JtYXQoZCk7CisgICAgICAgIGlmICghcy5lcXVhbHModGVzdHMpKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIHMgKyAiICE9ICIgKyB0ZXN0cyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2dsbigiT0s6ICIgKyBzICsgIiA9PSAiICsgdGVzdHMpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9EYXRlRm9ybWF0UmVncmVzc2lvblRlc3RKLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0RhdGVGb3JtYXRSZWdyZXNzaW9uVGVzdEouamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xZTY1YmYyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9EYXRlRm9ybWF0UmVncmVzc2lvblRlc3RKLmphdmEKQEAgLTAsMCArMSwyODYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9EYXRlRm9ybWF0UmVncmVzc2lvblRlc3RKLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDU6MDggJCAKKyAqICRSZXZpc2lvbjogMS40ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKgorICogTmV3IGFkZGVkLCAyMDAxLTEwLTE3IFtKaW5nL0dDTF0KKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworCitwdWJsaWMgY2xhc3MgRGF0ZUZvcm1hdFJlZ3Jlc3Npb25UZXN0SiBleHRlbmRzIGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrIHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIFRJTUVfU1RSSU5HID0gIjIwMDAvMTEvMTcgMDg6MDE6MDAiOworICAgIHN0YXRpYyBmaW5hbCBsb25nIFVUQ19MT05HID0gOTc0NDc2ODYwMDAwTDsKKyAgICBzdGF0aWMgU2ltcGxlRGF0ZUZvcm1hdCBzZGZfID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoInl5eXkvTU0vZGQgSEg6bW06c3MiKTsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IERhdGVGb3JtYXRSZWdyZXNzaW9uVGVzdEooKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIC8vUmV0dXJuIHZhbHVlIG9mIGdldEFtUG1TdHJpbmdzCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDM5MjYoKSB7CisgICAgICAgIFN0cmluZyBhY3RfQW1wbXNbXTsKKyAgICAgICAgU3RyaW5nIGV4cF9BbXBtc1tdPXsiQU0iLCJQTSJ9OworICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChMb2NhbGUuVVMpOworICAgICAgICAKKyAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKCk7CisgICAgICAgIGFjdF9BbXBtcyA9IGRmcy5nZXRBbVBtU3RyaW5ncygpOworICAgICAgICBpZihhY3RfQW1wbXMubGVuZ3RoICE9IGV4cF9BbXBtcy5sZW5ndGgpIHsKKyAgICAgICAgICAgIGVycmxuKCJUaGUgcmVzdWx0IGlzIG5vdCBleHBlY3RlZCEiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGZvcihpbnQgaSA9MDsgaTxhY3RfQW1wbXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZighYWN0X0FtcG1zW2ldLmVxdWFscyhleHBfQW1wbXNbaV0pKQorICAgICAgICAgICAgICAgICAgICBlcnJsbigiVGhlIHJlc3VsdCBpcyBub3QgZXhwZWN0ZWQhIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy9NaXNzaW5nIGRpZ2l0IGluIG1pbGxpc2Vjb25lIGZvcm1hdCBpbiBTaW1wbGVEYXRlRm9ybWF0IAorICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTQ4MTY4KCkgeworICAgICAgICAgICAgRGF0ZSBkID0gbmV3IERhdGUoMTAwMjcwNTIxMjkwNmwpOyAKKyAgICAgICAgICAgIFN0cmluZ1tdIElTT1BhdHRlcm4gPSB7CisgICAgICAgICAgICAgICAgIicneXl5eS1NTS1kZC1oaC5tbS5zcy5TJyciLCAiJyd5eXl5LU1NLWRkLWhoLm1tLnNzLlNTJyciLCAKKyAgICAgICAgICAgICAgICAiJyd5eXl5LU1NLWRkLWhoLm1tLnNzLlNTUycnIiwgIicneXl5eS1NTS1kZC1oaC5tbS5zcy5TU1NTJyciLCAKKyAgICAgICAgICAgICAgICAiJyd5eXl5LU1NLWRkLWhoLm1tLnNzLlNTU1NTJyciLCAiJyd5eXl5LU1NLWRkLWhoLm1tLnNzLlNTU1NTUycnIiwgCisgICAgICAgICAgICAgICAgIicneXl5eS1NTS1kZC1oaC5tbS5zcy5TU1NTU1NTJyciLCAiJyd5eXl5LU1NLWRkLWhoLm1tLnNzLlNTUzAwMCcnIn07CisgICAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGFTaW1wbGVERiA9IChTaW1wbGVEYXRlRm9ybWF0KURhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZSgpOworICAgIAorICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaTxJU09QYXR0ZXJuLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgYVNpbXBsZURGLmFwcGx5UGF0dGVybiggSVNPUGF0dGVybltpXSApOworICAgICAgICAgICAgICAgIGxvZ2xuKCAiUGF0dGVybiA9ICIgKyBhU2ltcGxlREYudG9QYXR0ZXJuKCkpOworICAgICAgICAgICAgICAgIGxvZ2xuKCAiRm9ybWF0ID0gIiArIGFTaW1wbGVERi5mb3JtYXQoZCkpOworICAgICAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvL0RhdGVGb3JtYXQgZ2V0RGF0ZVRpbWVJbnN0YW5jZShpbnQsIGludCksIGludmFsaWQgc3R5bGVzIG5vIGV4Y2VwdGlvbgorICAgIHB1YmxpYyB2b2lkIFRlc3Q0MjEzMDg2KCkgeworICAgICAgICBEYXRlIHNvbWVEYXRlID0gbmV3IERhdGUoKTsKKyAgICAgICAgU3RyaW5nIGQ7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBEYXRlRm9ybWF0IGRmMiA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZSgyLCAtMik7CisgICAgICAgICAgICBkID0gZGYyLmZvcm1hdChzb21lRGF0ZSk7CisgICAgICAgICAgICBlcnJsbigid2Ugc2hvdWxkIGNhdGNoIGFuIGV4Y2VwdGlvbiBoZXJlIik7CisgICAgICAgIH0gY2F0Y2goRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgbG9nbG4oImRhdGVTdHlsZSA9IDIiICsgIlx0IHRpbWVTdHlsZSA9IC0yIik7CisgICAgICAgICAgICBsb2dsbigiRXhjZXB0aW9uIGNhdWdodCEiKTsKKyAgICAgICAgfSAgICAgICAgICAgIAorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIERhdGVGb3JtYXQgZGYzID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKDQsIDIpOworICAgICAgICAgICAgZCA9IGRmMy5mb3JtYXQoc29tZURhdGUpOworICAgICAgICAgICAgZXJybG4oIndlIHNob3VsZCBjYXRjaCBhbiBleGNlcHRpb24gaGVyZSIpOworICAgICAgICB9IGNhdGNoKEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIGxvZ2xuKCJkYXRlU3R5bGUgPSA0IiArICJcdCB0aW1lU3R5bGUgPSAyIik7CisgICAgICAgICAgICBsb2dsbigiRXhjZXB0aW9uIGNhdWdodCEiKTsKKyAgICAgICAgICAgIGxvZ2xuKCIqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiIpOworICAgICAgICB9CisgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBEYXRlRm9ybWF0IGRmNCA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZSgtMTIsIC0xMik7CisgICAgICAgICAgICBkID0gZGY0LmZvcm1hdChzb21lRGF0ZSk7CisgICAgICAgICAgICBlcnJsbigid2Ugc2hvdWxkIGNhdGNoIGFuIGV4Y2VwdGlvbiBoZXJlIik7CisgICAgICAgIH0gY2F0Y2goRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgbG9nbG4oImRhdGVTdHlsZSA9IC0xMiIgKyAiXHQgdGltZVN0eWxlID0gLTEyIik7CisgICAgICAgICAgICBsb2dsbigiRXhjZXB0aW9uIGNhdWdodCEiKTsKKyAgICAgICAgICAgIGxvZ2xuKCIqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiIpOworICAgICAgICB9CisgICAgCisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIERhdGVGb3JtYXQgZGY1ID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKDIsIDEyMyk7CisgICAgICAgICAgICBkID0gZGY1LmZvcm1hdChzb21lRGF0ZSk7ICAgIAorICAgICAgICAgICAgZXJybG4oIndlIHNob3VsZCBjYXRjaCBhbiBleGNlcHRpb24gaGVyZSIpOworICAgICAgICB9IGNhdGNoKEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIGxvZ2xuKCJkYXRlU3R5bGUgPSAyIiArICJcdCB0aW1lU3R5bGUgPSAxMjMiKTsKKyAgICAgICAgICAgIGxvZ2xuKCJFeGNlcHRpb24gY2F1Z2h0ISIpOworICAgICAgICAgICAgbG9nbG4oIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy9EYXRlRm9ybWF0LmZvcm1hdCB3b3JrcyB3cm9uZ2x5PworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MjUwMzU5KCkgeworICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChMb2NhbGUuVVMpOworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgxMDEgKyAxOTAwLCA5LCA5LCAxNywgNTMpOworICAgICAgICBEYXRlIGQgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBEYXRlRm9ybWF0IHRmID0gRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5TSE9SVCk7CisgICAgICAgIFN0cmluZyBhY3RfcmVzdWx0ID0gdGYuZm9ybWF0KGQpOworICAgICAgICBTdHJpbmcgZXhwX3Jlc3VsdCA9ICI1OjUzIFBNIjsKKyAgICAgICAgCisgICAgICAgIGlmKCFhY3RfcmVzdWx0LmVxdWFscyhleHBfcmVzdWx0KSl7CisgICAgICAgICAgICBlcnJsbigiVGhlIHJlc3VsdCBpcyBub3QgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvL3BhdHRlcm4gInMuUywgcGFyc2UgJzFtcyciCisgICAgcHVibGljIHZvaWQgVGVzdDQyNTM0OTAoKSB7CisgICAgICAgIERhdGUgZCA9IG5ldyBEYXRlKDEwMDI3MDUyMTIyMzFsKTsKKyAgICAKKyAgICAgICAgU3RyaW5nW10gSVNPUGF0dGVybiA9IHsKKyAgICAgICAgICAgICAgICAiJyd5eXl5LU1NLWRkLWhoLm1tLnNzLlMnJyIsIAorICAgICAgICAgICAgICAgICInJ3l5eXktTU0tZGQtaGgubW0uc3MuU1MnJyIsIAorICAgICAgICAgICAgICAgICInJ3l5eXktTU0tZGQtaGgubW0uc3MuU1NTJyciLCAKKyAgICAgICAgICAgICAgICAiJyd5eXl5LU1NLWRkLWhoLm1tLnNzLlNTU1MnJyIsIAorICAgICAgICAgICAgICAgICInJ3l5eXktTU0tZGQtaGgubW0uc3MuU1NTU1MnJyIsIAorICAgICAgICAgICAgICAgICInJ3l5eXktTU0tZGQtaGgubW0uc3MuU1NTU1NTJyciLCAKKyAgICAgICAgICAgICAgICAiJyd5eXl5LU1NLWRkLWhoLm1tLnNzLlNTU1NTU1MnJyJ9OyAKKyAgICAKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBhU2ltcGxlREYgPSAoU2ltcGxlRGF0ZUZvcm1hdCkgRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgSVNPUGF0dGVybi5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgYVNpbXBsZURGLmFwcGx5UGF0dGVybihJU09QYXR0ZXJuW2ldKTsKKyAgICAgICAgICAgIGxvZ2xuKCJQYXR0ZXJuID0gIiArIGFTaW1wbGVERi50b1BhdHRlcm4oKSk7CisgICAgICAgICAgICBsb2dsbigiRm9ybWF0ID0gIiArIGFTaW1wbGVERi5mb3JtYXQoZCkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vYWJvdXQgcmVncmVzc2lvbiB0ZXN0CisgICAgcHVibGljIHZvaWQgVGVzdDQyNjY0MzIoKSB7CisgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KExvY2FsZS5KQVBBTik7CisgICAgICAgIExvY2FsZSBsb2MgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICBTdHJpbmcgZGF0ZUZvcm1hdCA9ICJNTS9kZC95eSBISDptbTpzcyB6enoiOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KGRhdGVGb3JtYXQpOworICAgIAorICAgICAgICBQYXJzZVBvc2l0aW9uIHAwID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIGxvZ2xuKCJVbmRlciAgIiArIGxvYyArIiAgbG9jYWxlIik7CisgICAgICAgIERhdGUgZCA9IGZtdC5wYXJzZSgiMDEvMjIvOTIgMDQ6NTI6MDAgR01UIiwgcDApOworICAgICAgICBsb2dsbihkLnRvU3RyaW5nKCkpOworICAgIH0KKyAgICAKKyAgICAvL1NpbXBsZURhdGVGb3JtYXQgaW5jb25zaXN0ZW50IGZvciBudW1iZXIgb2YgZGlnaXRzIGZvciB5ZWFycworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MzU4NzMwKCkgeworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCk7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDIwMDEsMTEsMTApOworICAgICAgICBEYXRlIHRvZGF5ID0gY2FsLmdldFRpbWUoKTsKKyAgICAKKyAgICAgICAgc2RmLmFwcGx5UGF0dGVybigiTU0gZCB5Iik7CisgICAgICAgIGxvZ2xuKHNkZi5mb3JtYXQodG9kYXkpKTsKKyAgICAgICAgc2RmLmFwcGx5UGF0dGVybigiTU0gZCB5eSIpOworICAgICAgICBsb2dsbihzZGYuZm9ybWF0KHRvZGF5KSk7CisgICAgCisgICAgICAgIHNkZi5hcHBseVBhdHRlcm4oIk1NIGQgeXl5Iik7CisgICAgICAgIGxvZ2xuKHNkZi5mb3JtYXQodG9kYXkpKTsKKyAgICAKKyAgICAgICAgc2RmLmFwcGx5UGF0dGVybigiTU0gZCB5eXl5Iik7CisgICAgICAgIGxvZ2xuKHNkZi5mb3JtYXQodG9kYXkpKTsKKyAgICAKKyAgICAgICAgc2RmLmFwcGx5UGF0dGVybigiTU0gZCB5eXl5eSIpOworICAgICAgICBsb2dsbihzZGYuZm9ybWF0KHRvZGF5KSk7CisgICAgfQorICAgIAorICAgIC8vUGFyc2UgaW52YWxpZCBzdHJpbmcKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDM3NTM5OSgpIHsKKyAgICAgICAgZmluYWwgU3RyaW5nIHBhdHRlcm4gPSBuZXcgU3RyaW5nKCJ5eXl5Lk1NLmRkIEcgJ2F0JyBoaDptbTpzcyB6Iik7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQocGF0dGVybiwgTG9jYWxlLkpBUEFOKTsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgRGF0ZSBjdXJyZW50VGltZSA9IHNkZi5wYXJzZSgidmdnZiAyMCAgMDEuMCA5LjI5IGFwLiBKLi1DLiBhdCAwNToyNjozMyBHTVQrMDg6MDAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgUGFyc2VQb3NpdGlvbigwKSk7CisgICAgICAgICAgICBpZihjdXJyZW50VGltZSA9PW51bGwpCisgICAgICAgICAgICAgICAgbG9nbG4oInBhcnNlIHJpZ2h0Iik7CisgICAgICAgIH0gY2F0Y2goRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgZXJybG4oIkVycm9yIik7CisgICAgICAgIH0KKyAgICB9CisgICAgLyoKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDQwNzA0MigpIHsKKyAgICAgICAgRGF0ZVBhcnNlVGhyZWFkIGQxID0gbmV3IERhdGVQYXJzZVRocmVhZCgpOworICAgICAgICBEYXRlRm9ybWF0VGhyZWFkIGQyID0gbmV3IERhdGVGb3JtYXRUaHJlYWQoKTsKKyAgICAgICAgZDEuc3RhcnQoKTsKKyAgICAgICAgZDIuc3RhcnQoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGxvZ2xuKCJ0ZXN0Iik7CisgICAgICAgICAgICBUaHJlYWQuc2xlZXAoMTAwMCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7fQorICAgIH0qLworICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3Q0NDY4NjYzKCkgeworICAgICAgICBEYXRlIGQgPW5ldyBEYXRlKC05MzcxNjY3MTExNTc2N2wpOworICAgICAgICBTdHJpbmcgb3JpZ2luX2QgPSBkLnRvU3RyaW5nKCk7CisgICAgICAgIFN0cmluZyBzdHI7CisgICAgICAgIGZpbmFsIFN0cmluZyBwYXR0ZXJuID0gbmV3IFN0cmluZygiRUVFRSwgTU1NTSBkLCB5eXl5Iik7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQocGF0dGVybik7CisKKyAgICAgICAgaWYgKHNkZi5nZXRUaW1lWm9uZSgpLnVzZURheWxpZ2h0VGltZSgpKSB7CisgICAgICAgICAgICBsb2dsbigib3JpZ2luYWwgZGF0ZTogIiArIG9yaWdpbl9kLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgc3RyID0gc2RmLmZvcm1hdChkKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgYWZ0ZXIgZm9ybWF0LS0tLS0+IiArIHN0cik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGQgPSBzZGYucGFyc2Uoc3RyLCBuZXcgUGFyc2VQb3NpdGlvbigwKSk7CisgICAgICAgICAgICBsb2dsbigiIGFmdGVyIHBhcnNlLS0tLS0+IiArIGQudG9TdHJpbmcoKSk7CisgICAgCisgICAgICAgICAgICBzdHIgPSBzZGYuZm9ybWF0KGQpOworICAgICAgICAgICAgbG9nbG4oIiBhZnRlciBmb3JtYXQtLS0tLT4iICsgc3RyKTsKKyAgICAKKyAgICAgICAgICAgIGQgPSBzZGYucGFyc2Uoc3RyLCBuZXcgUGFyc2VQb3NpdGlvbigwKSk7CisgICAgICAgICAgICBsb2dsbigiIGFmdGVyIHBhcnNlLS0tLS0+IiArIGQudG9TdHJpbmcoKSk7CisgICAgCisgICAgICAgICAgICBzdHIgPSBzZGYuZm9ybWF0KGQpOworICAgICAgICAgICAgbG9nbG4oIiBhZnRlciBmb3JtYXQtLS0tLT4iICsgc3RyKTsgICAgICAgIAorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vQ2xhc3MgdXNlZCBieSBUZXN0NDQwNzA0MgorICAgIGNsYXNzIERhdGVQYXJzZVRocmVhZCBleHRlbmRzIFRocmVhZCB7CisgICAgICAgIHB1YmxpYyB2b2lkIHJ1bigpIHsKKyAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gKFNpbXBsZURhdGVGb3JtYXQpIHNkZl8uY2xvbmUoKTsKKyAgICAgICAgICAgIFRpbWVab25lIGRlZmF1bHRUWiA9IFRpbWVab25lLmdldERlZmF1bHQoKTsKKyAgICAgICAgICAgIFRpbWVab25lIFBTVCA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKyAgICAgICAgICAgIGludCBkZWZhdWx0T2Zmc2V0ID0gZGVmYXVsdFRaLmdldFJhd09mZnNldCgpOworICAgICAgICAgICAgaW50IFBTVE9mZnNldCA9IFBTVC5nZXRSYXdPZmZzZXQoKTsKKyAgICAgICAgICAgIGludCBvZmZzZXQgPSBkZWZhdWx0T2Zmc2V0IC0gUFNUT2Zmc2V0OworICAgICAgICAgICAgbG9uZyBtcyA9IFVUQ19MT05HIC0gb2Zmc2V0OworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgICAgICAgICAgd2hpbGUgKGkgPCAxMDAwMCkgeworICAgICAgICAgICAgICAgICAgICBEYXRlIGRhdGUgPSBzZGYucGFyc2UoVElNRV9TVFJJTkcpOworICAgICAgICAgICAgICAgICAgICBsb25nIHQgPSBkYXRlLmdldFRpbWUoKTsKKyAgICAgICAgICAgICAgICAgICAgaSsrOworICAgICAgICAgICAgICAgICAgICBpZiAodCAhPSBtcykgeworICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFBhcnNlRXhjZXB0aW9uKCJQYXJzZSBFcnJvcjogIiArIGkgKyAiICgiICsgc2RmLmZvcm1hdChkYXRlKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIpICIgKyB0ICsgIiAhPSAiICsgbXMsIDApOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigicGFyc2UgZXJyb3I6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy9DbGFzcyB1c2VkIGJ5IFRlc3Q0NDA3MDQyCisgICAgY2xhc3MgRGF0ZUZvcm1hdFRocmVhZCBleHRlbmRzIFRocmVhZCB7CisgICAgICAgIHB1YmxpYyB2b2lkIHJ1bigpIHsgICAgICAgICAgICAKKyAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gKFNpbXBsZURhdGVGb3JtYXQpIHNkZl8uY2xvbmUoKTsKKyAgICAgICAgICAgIFRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworICAgICAgICAgICAgc2RmLnNldFRpbWVab25lKHR6KTsKKyAgICAgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgICAgIHdoaWxlIChpIDwgMTAwMDApIHsKKyAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICAgICAgU3RyaW5nIHMgPSBzZGYuZm9ybWF0KG5ldyBEYXRlKFVUQ19MT05HKSk7CisgICAgICAgICAgICAgICAgaWYgKCFzLmVxdWFscyhUSU1FX1NUUklORykpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZvcm1hdCBFcnJvcjogIiArIGkgKyAiICIgKyBzICsgIiAhPSAiIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBUSU1FX1NUUklORyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvRGF0ZUZvcm1hdFJvdW5kVHJpcFRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvRGF0ZUZvcm1hdFJvdW5kVHJpcFRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iZmRlNDI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9EYXRlRm9ybWF0Um91bmRUcmlwVGVzdC5qYXZhCkBAIC0wLDAgKzEsMjczIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvRGF0ZUZvcm1hdFJvdW5kVHJpcFRlc3QuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNTowOCAkIAorICogJFJldmlzaW9uOiAxLjMgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2MS44LjEgOiBmb3JtYXQgOiBEYXRlRm9ybWF0Um91bmRUcmlwVGVzdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3QvZHRmbXRydHRzLmNwcAorICoqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLlJhbmRvbTsKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CisKKy8qKiAKKyAqIFBlcmZvcm1zIHJvdW5kLXRyaXAgdGVzdHMgZm9yIERhdGVGb3JtYXQKKyAqKi8KK3B1YmxpYyBjbGFzcyBEYXRlRm9ybWF0Um91bmRUcmlwVGVzdCBleHRlbmRzIGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrIHsKKyAgICBwdWJsaWMgYm9vbGVhbiBJTkZJTklURSA9IGZhbHNlOworICAgIHB1YmxpYyBib29sZWFuIHF1aWNrID0gdHJ1ZTsKKyAgICBwcml2YXRlIFNpbXBsZURhdGVGb3JtYXQgZGF0ZUZvcm1hdDsKKyAgICBwcml2YXRlIENhbGVuZGFyIGdldEZpZWxkQ2FsOworICAgIHByaXZhdGUgaW50IFNQQVJTRU5FU1MgPSAxODsKKyAgICBwcml2YXRlIGludCBUUklBTFMgPSA0OworICAgIHByaXZhdGUgaW50IERFUFRIID0gNTsKKyAgICBwcml2YXRlIFJhbmRvbSByYW4gPSBuZXcgUmFuZG9tKCk7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IERhdGVGb3JtYXRSb3VuZFRyaXBUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0RGF0ZUZvcm1hdFJvdW5kVHJpcCgpIHsKKyAgICAgICAgZGF0ZUZvcm1hdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJFRUUgTU1NIGRkIEhIOm1tOnNzLlNTUyB6enogeXl5eSBHIik7CisgICAgICAgIGdldEZpZWxkQ2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAKKyAgICAgICAgZmluYWwgTG9jYWxlW10gYXZhaWwgPSBEYXRlRm9ybWF0LmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgaW50IGxvY0NvdW50ID0gYXZhaWwubGVuZ3RoOworICAgICAgICBsb2dsbigiRGF0ZUZvcm1hdCBhdmFpbGFibGUgbG9jYWxlczogIiArIGxvY0NvdW50KTsKKyAgICAgICAgaWYgKHF1aWNrKSB7CisgICAgICAgICAgICBpZiAobG9jQ291bnQgPiA1KQorICAgICAgICAgICAgICAgIGxvY0NvdW50ID0gNTsKKyAgICAgICAgICAgIGxvZ2xuKCJRdWljayBtb2RlOiBvbmx5IHRlc3RpbmcgZmlyc3QgNSBMb2NhbGVzIik7CisgICAgICAgIH0KKyAgICAgICAgVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgICAgIGxvZ2xuKCJEZWZhdWx0IFRpbWVab25lOiAgICAgICAgICAgICAiICsgdHouZ2V0SUQoKSk7CisgICAgCisgICAgICAgIGlmIChJTkZJTklURSkgeworICAgICAgICAgICAgLy8gU3BlY2lhbCBpbmZpbml0ZSBsb29wIHRlc3QgbW9kZSBmb3IgZmluZGluZyBoYXJkIHRvIHJlcHJvZHVjZSBlcnJvcnMKKyAgICAgICAgICAgIExvY2FsZSBsb2MgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICAgICAgbG9nbG4oIkVOVEVSSU5HIElORklOSVRFIFRFU1QgTE9PUCBGT1IgTG9jYWxlOiAiICsgbG9jLmdldERpc3BsYXlOYW1lKCkpOworICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgIF90ZXN0KGxvYyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7ICAgICAgICAKKyAgICAgICAgICAgIF90ZXN0KExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NDb3VudDsgKytpKSB7CisgICAgICAgICAgICAgICAgX3Rlc3QoYXZhaWxbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgc3R5bGVOYW1lKGludCBzKSB7CisgICAgICAgIHN3aXRjaCAocykgeworICAgICAgICAgICAgY2FzZSBEYXRlRm9ybWF0LlNIT1JUIDoKKyAgICAgICAgICAgICAgICByZXR1cm4gIlNIT1JUIjsKKyAgICAgICAgICAgIGNhc2UgRGF0ZUZvcm1hdC5NRURJVU0gOgorICAgICAgICAgICAgICAgIHJldHVybiAiTUVESVVNIjsKKyAgICAgICAgICAgIGNhc2UgRGF0ZUZvcm1hdC5MT05HIDoKKyAgICAgICAgICAgICAgICByZXR1cm4gIkxPTkciOworICAgICAgICAgICAgY2FzZSBEYXRlRm9ybWF0LkZVTEwgOgorICAgICAgICAgICAgICAgIHJldHVybiAiRlVMTCI7CisgICAgICAgICAgICBkZWZhdWx0IDoKKyAgICAgICAgICAgICAgICByZXR1cm4gIlVua25vd24iOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIF90ZXN0KExvY2FsZSBsb2MpIHsKKyAgICAgICAgaWYgKCFJTkZJTklURSkgeworICAgICAgICAgICAgbG9nbG4oIkxvY2FsZTogIiArIGxvYy5nZXREaXNwbGF5TmFtZSgpKTsKKyAgICAgICAgfQorICAgICAgICAvLyBUb3RhbCBwb3NzaWJpbGl0aWVzID0gMjQKKyAgICAgICAgLy8gIDQgZGF0ZQorICAgICAgICAvLyAgNCB0aW1lCisgICAgICAgIC8vICAxNiBkYXRlLXRpbWUKKyAgICAgICAgYm9vbGVhbltdIFRFU1RfVEFCTEUgPSBuZXcgYm9vbGVhblsyNF07CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IDI0OyArK2kpCisgICAgICAgICAgICBURVNUX1RBQkxFW2ldID0gdHJ1ZTsKKyAgICAKKyAgICAgICAgLy8gSWYgd2UgaGF2ZSBzb21lIHNwYXJzZW5lc3MsIGltcGxlbWVudCBpdCBoZXJlLiAgU3BhcnNlbmVzcyBkZWNyZWFzZXMKKyAgICAgICAgLy8gdGVzdCB0aW1lIGJ5IGVsaW1pbmF0aW5nIHNvbWUgdGVzdHMsIHVwIHRvIDIzLgorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgU1BBUlNFTkVTUzsgaSsrKSB7CisgICAgICAgICAgICBpbnQgcmFuZG9tID0gKGludCkgKHJhbi5uZXh0RG91YmxlKCkgKiAyNCk7CisgICAgICAgICAgICBpZiAocmFuZG9tID49IDAgJiYgcmFuZG9tIDwgMjQgJiYgVEVTVF9UQUJMRVtpXSkgeworICAgICAgICAgICAgICAgIFRFU1RfVEFCTEVbcmFuZG9tXSA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9ICAgIAorICAgICAgICAKKyAgICAgICAgaW50IGl0YWJsZSA9IDA7CisgICAgICAgIGludCBzdHlsZSA9IDA7CisgICAgICAgIGZvciAoc3R5bGUgPSBEYXRlRm9ybWF0LkZVTEw7IHN0eWxlIDw9IERhdGVGb3JtYXQuU0hPUlQ7ICsrc3R5bGUpIHsKKyAgICAgICAgICAgIGlmIChURVNUX1RBQkxFW2l0YWJsZSsrXSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJUZXN0aW5nIHN0eWxlICIgKyBzdHlsZU5hbWUoc3R5bGUpKTsgCisgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKHN0eWxlLCBsb2MpOyAKKyAgICAgICAgICAgICAgICBfdGVzdChkZiwgZmFsc2UpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIGZvciAoc3R5bGUgPSBEYXRlRm9ybWF0LkZVTEw7IHN0eWxlIDw9IERhdGVGb3JtYXQuU0hPUlQ7ICsrc3R5bGUpIHsKKyAgICAgICAgICAgIGlmIChURVNUX1RBQkxFW2l0YWJsZSsrXSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJUZXN0aW5nIHN0eWxlICIgKyBzdHlsZU5hbWUoc3R5bGUpKTsKKyAgICAgICAgICAgICAgICBEYXRlRm9ybWF0ICBkZiA9IERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKHN0eWxlLCBsb2MpOyAKKyAgICAgICAgICAgICAgICBfdGVzdChkZiwgdHJ1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgZm9yIChpbnQgZHN0eWxlID0gRGF0ZUZvcm1hdC5GVUxMOyBkc3R5bGUgPD0gRGF0ZUZvcm1hdC5TSE9SVDsgKytkc3R5bGUpIHsKKyAgICAgICAgICAgIGZvciAoaW50IHRzdHlsZSA9IERhdGVGb3JtYXQuRlVMTDsgdHN0eWxlIDw9IERhdGVGb3JtYXQuU0hPUlQ7ICsrdHN0eWxlKSB7CisgICAgICAgICAgICAgICAgaWYgKFRFU1RfVEFCTEVbaXRhYmxlKytdKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGRzdHlsZSAiICsgc3R5bGVOYW1lKGRzdHlsZSkgKyAiLCB0c3R5bGUgIiArIHN0eWxlTmFtZSh0c3R5bGUpKTsgCisgICAgICAgICAgICAgICAgICAgIERhdGVGb3JtYXQgZGYgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoZHN0eWxlLCB0c3R5bGUsIGxvYyk7IAorICAgICAgICAgICAgICAgICAgICBfdGVzdChkZiwgZmFsc2UpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBfdGVzdChEYXRlRm9ybWF0IGZtdCwgYm9vbGVhbiB0aW1lT25seSkgeworICAgIAorICAgICAgICBpZiAoIShmbXQgaW5zdGFuY2VvZiBTaW1wbGVEYXRlRm9ybWF0KSkgeworICAgICAgICAgICAgZXJybG4oIkRhdGVGb3JtYXQgd2Fzbid0IGEgU2ltcGxlRGF0ZUZvcm1hdCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIFN0cmluZyBwYXQgPSAoKFNpbXBsZURhdGVGb3JtYXQpIGZtdCkudG9QYXR0ZXJuKCk7CisgICAgICAgIGxvZ2xuKHBhdCk7CisgICAgCisgICAgICAgIC8vIE5PVEUgVE8gTUFJTlRBSU5FUgorICAgICAgICAvLyBUaGlzIGluZGV4T2YgY2hlY2sgaW50byB0aGUgcGF0dGVybiBuZWVkcyB0byBiZSByZWZpbmVkIHRvIGlnbm9yZQorICAgICAgICAvLyBxdW90ZWQgY2hhcmFjdGVycy4gIEN1cnJlbnRseSwgdGhpcyBpc24ndCBhIHByb2JsZW0gd2l0aCB0aGUgbG9jYWxlCisgICAgICAgIC8vIHBhdHRlcm5zIHdlIGhhdmUsIGJ1dCBpdCBtYXkgYmUgYSBwcm9ibGVtIGxhdGVyLgorICAgIAorICAgICAgICBib29sZWFuIGhhc0VyYSA9IChwYXQuaW5kZXhPZigiRyIpICE9IC0xKTsKKyAgICAgICAgYm9vbGVhbiBoYXNab25lID0gKHBhdC5pbmRleE9mKCJ6IikgIT0gLTEpOworICAgIAorICAgICAgICAvLyBCZWNhdXNlIHBhdHRlcm5zIGNvbnRhaW4gaW5jb21wbGV0ZSBkYXRhIHJlcHJlc2VudGluZyB0aGUgRGF0ZSwKKyAgICAgICAgLy8gd2UgbXVzdCBiZSBjYXJlZnVsIG9mIGhvdyB3ZSBkbyB0aGUgcm91bmR0cmlwLiAgV2Ugc3RhcnQgd2l0aAorICAgICAgICAvLyBhIHJhbmRvbWx5IGdlbmVyYXRlZCBEYXRlIGJlY2F1c2UgdGhleSdyZSBlYXNpZXIgdG8gZ2VuZXJhdGUuCisgICAgICAgIC8vIEZyb20gdGhpcyB3ZSBnZXQgYSBzdHJpbmcuICBUaGUgc3RyaW5nIGlzIG91ciByZWFsIHN0YXJ0aW5nIHBvaW50LAorICAgICAgICAvLyBiZWNhdXNlIHRoaXMgc3RyaW5nIHNob3VsZCBwYXJzZSB0aGUgc2FtZSB3YXkgYWxsIHRoZSB0aW1lLiAgTm90ZQorICAgICAgICAvLyB0aGF0IGl0IHdpbGwgbm90IG5lY2Vzc2FyaWx5IHBhcnNlIGJhY2sgdG8gdGhlIG9yaWdpbmFsIGRhdGUgYmVjYXVzZQorICAgICAgICAvLyBvZiBpbmNvbXBsZXRlbmVzcyBpbiBwYXR0ZXJucy4gIEZvciBleGFtcGxlLCBhIHRpbWUtb25seSBwYXR0ZXJuIHdvbid0CisgICAgICAgIC8vIHBhcnNlIGJhY2sgdG8gdGhlIHNhbWUgZGF0ZS4KKyAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgVFJJQUxTOyArK2kpIHsKKyAgICAgICAgICAgICAgICBEYXRlW10gZCA9IG5ldyBEYXRlW0RFUFRIXTsKKyAgICAgICAgICAgICAgICBTdHJpbmdbXSBzID0gbmV3IFN0cmluZ1tERVBUSF07CisgICAgCisgICAgICAgICAgICAgICAgZFswXSA9IGdlbmVyYXRlRGF0ZSgpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIFdlIGdvIHRocm91Z2ggdGhpcyBsb29wIHVudGlsIHdlIGFjaGlldmUgYSBtYXRjaCBvciB1bnRpbAorICAgICAgICAgICAgICAgIC8vIHRoZSBtYXhpbXVtIGxvb3AgY291bnQgaXMgcmVhY2hlZC4gIFdlIHJlY29yZCB0aGUgcG9pbnRzIGF0CisgICAgICAgICAgICAgICAgLy8gd2hpY2ggdGhlIGRhdGUgYW5kIHRoZSBzdHJpbmcgc3RhcnRzIHRvIG1hdGNoLiAgT25jZSBtYXRjaGluZworICAgICAgICAgICAgICAgIC8vIHN0YXJ0cywgaXQgc2hvdWxkIGNvbnRpbnVlLgorICAgICAgICAgICAgICAgIGludCBsb29wOworICAgICAgICAgICAgICAgIGludCBkbWF0Y2ggPSAwOyAvLyBkW2RtYXRjaF0uZ2V0VGltZSgpID09IGRbZG1hdGNoLTFdLmdldFRpbWUoKQorICAgICAgICAgICAgICAgIGludCBzbWF0Y2ggPSAwOyAvLyBzW3NtYXRjaF0uZXF1YWxzKHNbc21hdGNoLTFdKQorICAgICAgICAgICAgICAgIGZvciAobG9vcCA9IDA7IGxvb3AgPCBERVBUSDsgKytsb29wKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChsb29wID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZFtsb29wXSA9IGZtdC5wYXJzZShzW2xvb3AgLSAxXSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAgICAgc1tsb29wXSA9IGZtdC5mb3JtYXQoZFtsb29wXSk7CisgICAgCisgICAgICAgICAgICAgICAgICAgIGlmIChsb29wID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNtYXRjaCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBtYXRjaCA9IHNbbG9vcF0uZXF1YWxzKHNbbG9vcCAtIDFdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc21hdGNoID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1hdGNoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc21hdGNoID0gbG9vcDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFtYXRjaCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBTdHJpbmcgbWlzbWF0Y2ggYWZ0ZXIgbWF0Y2giKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkbWF0Y2ggPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHtzZmJ9IHdhdGNoIG91dCBoZXJlLCB0aGlzIG1pZ2h0IG5vdCB3b3JrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBtYXRjaCA9IGRbbG9vcF0uZ2V0VGltZSgpID09IGRbbG9vcCAtIDFdLmdldFRpbWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZG1hdGNoID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1hdGNoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG1hdGNoID0gbG9vcDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFtYXRjaCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBEYXRlIG1pc21hdGNoIGFmdGVyIG1hdGNoIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc21hdGNoICE9IDAgJiYgZG1hdGNoICE9IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gQXQgdGhpcyBwb2ludCBsb29wID09IERFUFRIIGlmIHdlJ3ZlIGZhaWxlZCwgb3RoZXJ3aXNlIGxvb3AgaXMgdGhlCisgICAgICAgICAgICAgICAgLy8gbWF4KHNtYXRjaCwgZG1hdGNoKSwgdGhhdCBpcywgdGhlIGluZGV4IGF0IHdoaWNoIHdlIGhhdmUgc3RyaW5nIGFuZAorICAgICAgICAgICAgICAgIC8vIGRhdGUgbWF0Y2hpbmcuCisgICAgCisgICAgICAgICAgICAgICAgLy8gRGF0ZSB1c3VhbGx5IG1hdGNoZXMgaW4gMi4gIEV4Y2VwdGlvbnMgaGFuZGxlZCBiZWxvdy4KKyAgICAgICAgICAgICAgICBpbnQgbWF4RG1hdGNoID0gMjsKKyAgICAgICAgICAgICAgICBpbnQgbWF4U21hdGNoID0gMTsKKyAgICAgICAgICAgICAgICBpZiAoZG1hdGNoID4gbWF4RG1hdGNoIHx8IHNtYXRjaCA+IG1heFNtYXRjaCkgeworICAgICAgICAgICAgICAgICAgICAvL0lmIHRoZSBEYXRlIGlzIEJDCisgICAgICAgICAgICAgICAgICAgIGlmICghdGltZU9ubHkgJiYgIWhhc0VyYSAmJiBnZXRGaWVsZChkWzBdLCBDYWxlbmRhci5FUkEpID09IEdyZWdvcmlhbkNhbGVuZGFyLkJDKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtYXhEbWF0Y2ggPSAzOworICAgICAgICAgICAgICAgICAgICAgICAgbWF4U21hdGNoID0gMjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoaGFzWm9uZSAmJiAoZm10LmdldFRpbWVab25lKCkuaW5EYXlsaWdodFRpbWUoZFswXSkgfHwgZm10LmdldFRpbWVab25lKCkuaW5EYXlsaWdodFRpbWUoZFsxXSkgKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbWF4U21hdGNoID0gMjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aW1lT25seSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heERtYXRjaCA9IDM7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChkbWF0Y2ggPiBtYXhEbWF0Y2ggfHwgc21hdGNoID4gbWF4U21hdGNoKSB7CisgICAgICAgICAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIkVFRUUsIE1NTU0gZCwgeXl5eSBISDptbTpzcywgeiBHIiwgTG9jYWxlLlVTKTsgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBsb2dsbigiRGF0ZSA9ICIgKyBzZGYuZm9ybWF0KGRbMF0pICsgIjsgbXMgPSAiICsgZFswXS5nZXRUaW1lKCkpOworICAgICAgICAgICAgICAgICAgICBsb2dsbigiRG1hdGNoOiAiICsgZG1hdGNoICsgIiBtYXhEOiAiICsgbWF4RG1hdGNoICsgIiBTbWF0Y2g6IiArIHNtYXRjaCArICIgbWF4UzoiICsgbWF4U21hdGNoKTsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlBhdHRlcm46ICIgKyBwYXQgKyAiIGZhaWxlZCB0byBtYXRjaCIgKyAiOyBtcyA9ICIgKyBkWzBdLmdldFRpbWUoKSk7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDw9IGxvb3AgJiYgaiA8IERFUFRIOyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB0ZW1wID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgICAgICAgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIHBvcyA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oKGogPiAwID8gIiBQPiAiIDogIiAgICAiKSArIGRhdGVGb3JtYXQuZm9ybWF0KGRbal0sIHRlbXAsIHBvcykgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIEY+ICIgKyBzW2pdICsgKGogPiAwICYmIGRbal0uZ2V0VGltZSgpID09IGRbaiAtIDFdLmdldFRpbWUoKSA/ICIgZD09IiA6ICIiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgKGogPiAwICYmIHNbal0uZXF1YWxzKHNbaiAtIDFdKSA/ICIgcz09IiA6ICIiKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFeGNlcHRpb246ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICBsb2dsbihlLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBpbnQgZ2V0RmllbGQoRGF0ZSBkLCBpbnQgZikgeworICAgICAgICBnZXRGaWVsZENhbC5zZXRUaW1lKGQpOworICAgICAgICBpbnQgcmV0ID0gZ2V0RmllbGRDYWwuZ2V0KGYpOyAgICAKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisgICAgCisgICAgcHVibGljIERhdGUgZ2VuZXJhdGVEYXRlKCkgeworICAgICAgICBkb3VibGUgYSA9IHJhbi5uZXh0RG91YmxlKCk7CisgICAgICAgIC8vIE5vdyAnYScgcmFuZ2VzIGZyb20gMC4uMTsgc2NhbGUgaXQgdG8gcmFuZ2UgZnJvbSAwIHRvIDgwMDAgeWVhcnMKKyAgICAgICAgYSAqPSA4MDAwOworICAgICAgICAvLyBSYW5nZSBmcm9tICg0MDAwLTE5NzApIEJDIHRvICg4MDAwLTE5NzApIEFECisgICAgICAgIGEgLT0gNDAwMDsKKyAgICAgICAgLy8gTm93IHNjYWxlIHVwIHRvIG1zCisgICAgICAgIGEgKj0gMzY1LjI1ICogMjQgKiA2MCAqIDYwICogMTAwMDsKKyAgICAgICAgcmV0dXJuIG5ldyBEYXRlKChsb25nKWEpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0RhdGVGb3JtYXRUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0RhdGVGb3JtYXRUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmYyMzJhMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvRGF0ZUZvcm1hdFRlc3QuamF2YQpAQCAtMCwwICsxLDgzOSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0RhdGVGb3JtYXRUZXN0LmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDQvMDkgMjM6MzM6MTMgJCAKKyAqICRSZXZpc2lvbjogMS44ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjEuOC4xIDogZm9ybWF0IDogRGF0ZUZvcm1hdFRlc3QKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L2R0Zm10dHN0LmNwcAorICoqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworCitwdWJsaWMgY2xhc3MgRGF0ZUZvcm1hdFRlc3QgZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ayB7CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBEYXRlRm9ybWF0VGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgLy8gVGVzdCB3cml0dGVuIGJ5IFdhbGx5IFdlZGVsIGFuZCBlbWFpbGVkIHRvIG1lLgorICAgIHB1YmxpYyB2b2lkIFRlc3RXYWxseVdlZGVsKCkgeworICAgICAgICAvKgorICAgICAgICAgKiBJbnN0YW50aWF0ZSBhIFRpbWVab25lIHNvIHdlIGNhbiBnZXQgdGhlIGlkcy4KKyAgICAgICAgICovCisgICAgICAgIC8vVGltZVpvbmUgdHogPSBuZXcgU2ltcGxlVGltZVpvbmUoNywgIiIpOyAvL1RoZSB2YXJpYWJsZSBpcyBuZXZlciB1c2VkCisgICAgICAgIC8qCisgICAgICAgICAqIENvbXB1dGF0aW9uYWwgdmFyaWFibGVzLgorICAgICAgICAgKi8KKyAgICAgICAgaW50IG9mZnNldCwgaG91cnMsIG1pbnV0ZXM7CisgICAgICAgIC8qCisgICAgICAgICAqIEluc3RhbnRpYXRlIGEgU2ltcGxlRGF0ZUZvcm1hdCBzZXQgdXAgdG8gcHJvZHVjZSBhIGZ1bGwgdGltZQorICAgICAgICAgem9uZSBuYW1lLgorICAgICAgICAgKi8KKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgienp6eiIpOworICAgICAgICAvKgorICAgICAgICAgKiBBIFN0cmluZyBhcnJheSBmb3IgdGhlIHRpbWUgem9uZSBpZHMuCisgICAgICAgICAqLworICAgIAorICAgICAgICBmaW5hbCBTdHJpbmdbXSBpZHMgPSBUaW1lWm9uZS5nZXRBdmFpbGFibGVJRHMoKTsKKyAgICAgICAgaW50IGlkc19sZW5ndGggPSBpZHMubGVuZ3RoOyAvL3doZW4gZml4ZWQgdGhlIGJ1ZyBzaG91bGQgY29tbWVudCBpdCBvdXQKKyAgICAKKyAgICAgICAgLyoKKyAgICAgICAgICogSG93IG1hbnkgaWRzIGRvIHdlIGhhdmU/CisgICAgICAgICAqLworICAgICAgICBsb2dsbigiVGltZSBab25lIElEcyBzaXplOiIgKyBpZHNfbGVuZ3RoKTsKKyAgICAgICAgLyoKKyAgICAgICAgICogQ29sdW1uIGhlYWRpbmdzIChzb3J0IG9mKQorICAgICAgICAgKi8KKyAgICAgICAgbG9nbG4oIk9yZGluYWwgSUQgb2Zmc2V0KGg6bSkgbmFtZSIpOworICAgICAgICAvKgorICAgICAgICAgKiBMb29wIHRocm91Z2ggdGhlIHR6cy4KKyAgICAgICAgICovCisgICAgICAgIERhdGUgdG9kYXkgPSBuZXcgRGF0ZSgpOworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGlkc19sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgbG9nbG4oaSArICIgIiArIGlkc1tpXSk7CisgICAgICAgICAgICBUaW1lWm9uZSB0dHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZShpZHNbaV0pOworICAgICAgICAgICAgLy8gb2Zmc2V0ID0gdHR6LmdldFJhd09mZnNldCgpOworICAgICAgICAgICAgY2FsLnNldFRpbWVab25lKHR0eik7CisgICAgICAgICAgICBjYWwuc2V0VGltZSh0b2RheSk7CisgICAgICAgICAgICBvZmZzZXQgPSBjYWwuZ2V0KENhbGVuZGFyLlpPTkVfT0ZGU0VUKSArIGNhbC5nZXQoQ2FsZW5kYXIuRFNUX09GRlNFVCk7CisgICAgICAgICAgICAvLyBsb2dsbihpICsgIiAiICsgaWRzW2ldICsgIiBvZmZzZXQgIiArIG9mZnNldCk7CisgICAgICAgICAgICBTdHJpbmcgc2lnbiA9ICIrIjsKKyAgICAgICAgICAgIGlmIChvZmZzZXQgPCAwKSB7CisgICAgICAgICAgICAgICAgc2lnbiA9ICItIjsKKyAgICAgICAgICAgICAgICBvZmZzZXQgPSAtb2Zmc2V0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaG91cnMgPSBvZmZzZXQgLyAzNjAwMDAwOworICAgICAgICAgICAgbWludXRlcyA9IChvZmZzZXQgJSAzNjAwMDAwKSAvIDYwMDAwOworICAgICAgICAgICAgU3RyaW5nIGRzdE9mZnNldCA9IHNpZ24gKyAoaG91cnMgPCAxMCA/ICIwIiA6ICIiKSArIGhvdXJzCisgICAgICAgICAgICAgICAgICAgICsgIjoiICsgKG1pbnV0ZXMgPCAxMCA/ICIwIiA6ICIiKSArIG1pbnV0ZXM7IAorICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIEluc3RhbnRpYXRlIGEgZGF0ZSBzbyB3ZSBjYW4gZGlzcGxheSB0aGUgdGltZSB6b25lIG5hbWUuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHNkZi5zZXRUaW1lWm9uZSh0dHopOworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIEZvcm1hdCB0aGUgb3V0cHV0LgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgZm10T2Zmc2V0ID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIHBvcyA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICAgICAgCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGZtdE9mZnNldCA9IHNkZi5mb3JtYXQodG9kYXksIGZtdE9mZnNldCwgcG9zKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbG9nbG4oIkV4Y2VwdGlvbjoiICsgZSk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBVbmljb2RlU3RyaW5nIGZtdE9mZnNldCA9IHR6Uy50b1N0cmluZygpOworICAgICAgICAgICAgU3RyaW5nIGZtdERzdE9mZnNldCA9IG51bGw7CisgICAgICAgICAgICBpZiAoZm10T2Zmc2V0LnRvU3RyaW5nKCkuc3RhcnRzV2l0aCgiR01UIikpIHsKKyAgICAgICAgICAgICAgICAvL2ZtdERzdE9mZnNldCA9IGZtdE9mZnNldC5zdWJzdHJpbmcoMyk7CisgICAgICAgICAgICAgICAgZm10RHN0T2Zmc2V0ID0gZm10T2Zmc2V0LnN1YnN0cmluZygzLCBmbXRPZmZzZXQubGVuZ3RoKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIFNob3cgb3VyIHJlc3VsdC4KKyAgICAgICAgICAgICAqLworICAgIAorICAgICAgICAgICAgYm9vbGVhbiBvayA9IGZtdERzdE9mZnNldCA9PSBudWxsIHx8IGZtdERzdE9mZnNldC5lcXVhbHMoZHN0T2Zmc2V0KTsKKyAgICAgICAgICAgIC8vZml4IHRoZSBqZGsgcmVzb3VyY2VzIGRpZmZlcmVuY2VzIGJldHdlZW4gamRrIDEuMi8xLjMuMCBhbmQgamRrIDEuMy4xCisgICAgICAgICAgICBTdHJpbmcgamF2YVZlcnNpb24gPSBTeXN0ZW0uZ2V0UHJvcGVydHkoImphdmEudmVyc2lvbiIpOworICAgICAgICAgICAgb2sgPSBvayB8fCAoKGphdmFWZXJzaW9uLnN0YXJ0c1dpdGgoIjEuMiIpIHx8IGphdmFWZXJzaW9uLnN0YXJ0c1dpdGgoIjEuMy4wIikpICYmIChmbXREc3RPZmZzZXQgIT0gbnVsbCkgJiYgZm10RHN0T2Zmc2V0LmVxdWFscygiIikpOworICAgICAgICAgICAgaWYgKG9rKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oaSArICIgIiArIGlkc1tpXSArICIgIiArIGRzdE9mZnNldCArICIgIgorICAgICAgICAgICAgICAgICAgICAgICsgZm10T2Zmc2V0ICsgKGZtdERzdE9mZnNldCAhPSBudWxsID8gIiBvayIgOiAiID8iKSk7IAorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihpICsgIiAiICsgaWRzW2ldICsgIiAiICsgZHN0T2Zmc2V0ICsgIiAiICsgZm10T2Zmc2V0ICsgIiAqKiogRkFJTCAqKioiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEVxdWFscygpIHsKKyAgICAgICAgRGF0ZUZvcm1hdCBmbXRBID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKERhdGVGb3JtYXQuTUVESVVNLCBEYXRlRm9ybWF0LkZVTEwpOyAKKyAgICAgICAgRGF0ZUZvcm1hdCBmbXRCID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKERhdGVGb3JtYXQuTUVESVVNLCBEYXRlRm9ybWF0LkZVTEwpOyAKKyAgICAgICAgaWYgKCFmbXRBLmVxdWFscyhmbXRCKSkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMIik7ICAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBwYXJzaW5nIG9mIDItZGlnaXQgeWVhcnMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFR3b0RpZ2l0WWVhckRTVFBhcnNlKCkgeworICAgIAorICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZ1bGxGbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiRUVFIE1NTSBkZCBISDptbTpzcy5TU1Mgenp6IHl5eXkgRyIpOyAKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiZGQtTU1NLXl5IGg6bW06c3MgJ28nJ2Nsb2NrJyBhIHoiLCBMb2NhbGUuRU5HTElTSCk7IAorICAgICAgICBTdHJpbmcgcyA9ICIwMy1BcHItMDQgMjoyMDo0NyBvJ2Nsb2NrIEFNIFBTVCI7CisgICAgCisgICAgICAgIC8qCisgICAgICAgICAqIFNpbXBsZURhdGVGb3JtYXQocGF0dGVybiwgbG9jYWxlKSBDb25zdHJ1Y3QgYSBTaW1wbGVEYXRlRGF0ZUZvcm1hdCB1c2luZworICAgICAgICAgKiB0aGUgZ2l2ZW5pbmcgcGF0dGVybiwgdGhlIGxvY2FsZSBhbmQgdXNpbmcgdGhlIFRpbWVab25lLmdldERlZmF1bHQoKTsKKyAgICAgICAgICogU28gaXQgbmVlZCB0byBhZGQgdGhlIHRpbWV6b25lIG9mZnNldCBvbiBob3VyIGZpZWxkLiAKKyAgICAgICAgICogcHMuIHRoZSBNZXRob2QgQ2FsZW5kYXIuZ2V0VGltZSgpIHVzZWQgYnkgU2ltcGxlRGF0ZUZvcm1hdC5wYXJzZSgpIGFsd2F5cyAKKyAgICAgICAgICogcmV0dXJuIERhdGUgdmF1bGUgd2l0aCBUaW1lWm9uZS5nZXREZWZhdWx0KCkgW1JpY2hhcmQvR0NMXQorICAgICAgICAgKi8KKyAgICAgICAgCisgICAgICAgIFRpbWVab25lIGRlZmF1bHRUWiA9IFRpbWVab25lLmdldERlZmF1bHQoKTsKKyAgICAgICAgVGltZVpvbmUgUFNUID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworICAgICAgICBpbnQgZGVmYXVsdE9mZnNldCA9IGRlZmF1bHRUWi5nZXRSYXdPZmZzZXQoKTsKKyAgICAgICAgaW50IFBTVE9mZnNldCA9IFBTVC5nZXRSYXdPZmZzZXQoKTsKKyAgICAgICAgaW50IGhvdXIgPSAyICsgKGRlZmF1bHRPZmZzZXQgLSBQU1RPZmZzZXQpIC8gKDYwKjYwKjEwMDApOworICAgICAgICBob3VyID0gKGhvdXIgPCAwKSA/IGhvdXIgKyAyNCA6IGhvdXI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBEYXRlIGQgPSBmbXQucGFyc2Uocyk7CisgICAgICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICAgICAgY2FsLnNldFRpbWUoZCk7CisgICAgICAgICAgICAvL0RTVE9mZnNldAorICAgICAgICAgICAgaG91ciArPSBkZWZhdWx0VFouaW5EYXlsaWdodFRpbWUoZCkgPyAxIDogMDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbG9nbG4ocyArICIgUD4gIiArICgoRGF0ZUZvcm1hdCkgZnVsbEZtdCkuZm9ybWF0KGQpKTsKKyAgICAgICAgICAgIGludCBociA9IGNhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpOworICAgICAgICAgICAgaWYgKGhyICE9IGhvdXIpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFNob3VsZCBwYXJzZSB0byBob3VyICIgKyBob3VyKTsKKyAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIlBhcnNlIEVycm9yOiIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVmVyaWZ5IHRoYXQgcmV0dXJuZWQgZmllbGQgcG9zaXRpb24gaW5kaWNlcyBhcmUgY29ycmVjdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RmllbGRQb3NpdGlvbigpIHsKKyAgICAgICAgRGF0ZUZvcm1hdFtdIGRhdGVGb3JtYXRzID0gbmV3IERhdGVGb3JtYXRbNF07CisgICAgICAgIGludCBkYXRlRm9ybWF0c19sZW5ndGggPSBkYXRlRm9ybWF0cy5sZW5ndGg7CisgICAgICAgIFN0cmluZyBmaWVsZE5hbWVzW10gPSB7CisgICAgICAgICAgICAgICAgIkVSQSIsICJZRUFSIiwgIk1PTlRIIiwgIldFRUtfT0ZfWUVBUiIsICJXRUVLX09GX01PTlRIIiwgIkRBWV9PRl9NT05USCIsICAgIkRBWV9PRl9ZRUFSIiwKKyAgICAgICAgICAgICAgICAiREFZX09GX1dFRUsiLCAgICJEQVlfT0ZfV0VFS19JTl9NT05USCIsICJBTV9QTSIsICJIT1VSIiwiSE9VUl9PRl9EQVkiLCJNSU5VVEUiLAorICAgICAgICAgICAgICAgICJTRUNPTkQiLCAiTUlMTElTRUNPTkQiLCAiWk9ORV9PRkZTRVQiIH07CisgICAgICAgIC8qIHtzZmJ9IFRoaXMgdGVzdCB3YXMgY29kZWQgaW5jb3JyZWN0bHkuCisgICAgICAgIC8gRmllbGRQb3NpdGlvbiB1c2VzIHRoZSBmaWVsZHMgaW4gdGhlIGNsYXNzIHlvdSBhcmUgZm9ybWF0dGluZyB3aXRoCisgICAgICAgIC8gU28sIGZvciBleGFtcGxlLCB0byBnZXQgdGhlIERBVEUgZmllbGQgZnJvbSBhIERhdGVGb3JtYXQgdXNlCisgICAgICAgIC8gRGF0ZUZvcm1hdC5EQVRFX0ZJRUxELCBfX25vdF9fIENhbGVuZGFyLkRBVEUKKyAgICAgICAgLyBUaGUgb3JkZXJpbmcgb2YgdGhlIGV4cGVjdGVkIHZhbHVlcyB1c2VkIHByZXZpb3VzbHkgd2FzIHdyb25nLgorICAgICAgICAvIGluc3RlYWQgb2YgcmUtb3JkZXJpbmcgdGhpcyBtZXNzIG9mIHN0cmluZ3MsIGp1c3QgdHJhbnNmb3JtIHRoZSBpbmRleCB2YWx1ZXMgKi8KKyAgICAKKyAgICAgICAgLyogZmllbGQgdmFsdWVzLCBpbiBDYWxlbmRhciBvcmRlciAqLworICAgICAgICBmaW5hbCBTdHJpbmdbXSBleHBlY3RlZCA9CisgICAgICAgICAgICB7ICIiLCAiMTk5NyIsICJBdWd1c3QiLCAiIiwgIiIsICIxMyIsICIiLCAiV2VkbmVzZGF5IiwgIiIsICJQTSIsICIyIiwgIiIsICIzNCIsICIxMiIsICIiLCAiUERUIiwKKyAgICAgICAgICAgIC8qIEZvbGxvd2luZyB0d28gYWRkZWQgYnkgd2VpdiBmb3IgdHdvIG5ldyBmaWVsZHMgKi8iIiwgIjE5OTciLCAiIyIsIAorICAgICAgICAgICAgLyogIyBpcyBhIG1hcmtlciBmb3IgImFvXHhmYnQiID09ICJhb3VedCIgKi8KKyAgICAgICAgICAgICIiLCAiIiwgIjEzIiwgIiIsICJtZXJjcmVkaSIsICIiLCAiIiwgIiIsICIxNCIsICIzNCIsICIiLCAiIiwgIlBEVCIsCisgICAgICAgICAgICAvKiBGb2xsb3dpbmcgdHdvIGFkZGVkIGJ5IHdlaXYgZm9yIHR3byBuZXcgZmllbGRzICovCisgICAgICAgICAgICAiQUQiLCAiMTk5NyIsICI4IiwgIjMzIiwgIjMiLCAiMTMiLCAiMjI1IiwgIldlZCIsICIyIiwgIlBNIiwgIjIiLCAiMTQiLCAiMzQiLCAiMTIiLCAiNTEzIiwgIlBEVCIsCisgICAgICAgICAgICAvKiBGb2xsb3dpbmcgdHdvIGFkZGVkIGJ5IHdlaXYgZm9yIHR3byBuZXcgZmllbGRzICovCisgICAgICAgICAgICAiQUQiLCAgIjE5OTciLCAgIkF1Z3VzdCIsICAiMDAzMyIsICIwMDAzIiwgIjAwMTMiLCAiMDIyNSIsICJXZWRuZXNkYXkiLCAiMDAwMiIsCisgICAgICAgICAgICAgIlBNIiwgIjAwMDIiLCAgIjAwMTQiLCAiMDAzNCIsICIwMDEyIiwgICAiMDUxMyIsICJQYWNpZmljIERheWxpZ2h0IFRpbWUiLAorICAgICAgICAgICAgLyogRm9sbG93aW5nIHR3byBhZGRlZCBieSB3ZWl2IGZvciB0d28gbmV3IGZpZWxkcyAqLyAiMTk5NyIsICIwMDA0IiwgIiIgfTsKKyAgICAKKyAgICAgICAgRGF0ZSBzb21lRGF0ZSA9IG5ldyBEYXRlKChsb25nKSA4NzE1MDgwNTI1MTMuMCk7CisgICAgICAgIGludCBqLCBleHA7CisgICAgCisgICAgICAgIGRhdGVGb3JtYXRzWzBdID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKERhdGVGb3JtYXQuRlVMTCwgRGF0ZUZvcm1hdC5GVUxMLCBMb2NhbGUuVVMpOworICAgICAgICBkYXRlRm9ybWF0c1sxXSA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkZVTEwsIERhdGVGb3JtYXQuRlVMTCwgTG9jYWxlLkZSQU5DRSk7CisgICAgICAgIGRhdGVGb3JtYXRzWzJdID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIkcsIHksIE0sIGQsIGssIEgsIG0sIHMsIFMsIEUsIEQsIEYsIHcsIFcsIGEsIGgsIEssIHosIHksIEUiLCBMb2NhbGUuVVMpOworICAgICAgICBkYXRlRm9ybWF0c1szXSA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJHR0dHLCB5eXl5LCBNTU1NLCBkZGRkLCBra2trLCBISEhILCBtbW1tLCBzc3NzLCBTU1NTLCBFRUVFLCBERERELCBGRkZGLCB3d3d3LCBXV1dXLCBhYWFhLCBoaGhoLCBLS0tLLCB6enp6LCB5eXl5LCBFRUVFIiwgTG9jYWxlLlVTKTsKKyAgICAgICAgLy9maXggdGhlIGpkayByZXNvdXJjZXMgZGlmZmVyZW5jZXMgYmV0d2VlbiBqZGsgMS4yIGFuZCBqZGsgMS4zCisgICAgICAgIFN0cmluZyBqYXZhVmVyc2lvbiA9IFN5c3RlbS5nZXRQcm9wZXJ0eSgiamF2YS52ZXJzaW9uIik7CisgICAgICAgIAorICAgICAgICBmb3IgKGogPSAwLCBleHAgPSAwOyBqIDwgZGF0ZUZvcm1hdHNfbGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgIFN0cmluZyBzdHI7CisgICAgICAgICAgICBEYXRlRm9ybWF0IGRmID0gZGF0ZUZvcm1hdHNbal07CisgICAgICAgICAgICBUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKyAgICAgICAgICAgICgoU2ltcGxlVGltZVpvbmUpdHopLnNldERTVFNhdmluZ3MoMzYwMDAwMCk7CisgICAgICAgICAgICBkZi5zZXRUaW1lWm9uZSh0eik7CisgICAgICAgICAgICBsb2dsbigiIFBhdHRlcm4gPSAiICsgKChTaW1wbGVEYXRlRm9ybWF0KSBkZikudG9QYXR0ZXJuKCkpOworICAgICAgICAgICAgc3RyID0gIiI7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCIgIFJlc3VsdCA9ICIgKyBkZi5mb3JtYXQoc29tZURhdGUpKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWVsZE5hbWVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGZpZWxkID0gZ2V0RmllbGRUZXh0KGRmLCBpLCBzb21lRGF0ZSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGV4cFN0ciA9ICIiOworICAgICAgICAgICAgICAgIGlmICghZXhwZWN0ZWRbZXhwXS5zdWJzdHJpbmcoMCkuZXF1YWxzKCIjIikpIHsKKyAgICAgICAgICAgICAgICAgICAgZXhwU3RyID0gZXhwZWN0ZWRbZXhwXTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyB3ZSBjYW5ub3QgaGF2ZSBsYXRpbi0xIGNoYXJhY3RlcnMgaW4gc291cmNlIGNvZGUsIHRoZXJlZm9yZSB3ZSBmaXggdXAgdGhlIHN0cmluZyBmb3IgImFvdV50IiAKKyAgICAgICAgICAgICAgICAgICAgZXhwU3RyID0gZXhwU3RyICsgIlx1MDA2MSIgKyAiXHUwMDZmIiArICJcdTAwZmIiICsgIlx1MDA3NCI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICgvKmphdmFWZXJzaW9uLnN0YXJ0c1dpdGgoIjEuMiIpICYmKi8gKGV4cD09MzEpKSB7CisgICAgICAgICAgICAgICAgICAgIGV4cFN0ciA9ICJHTVQtMDc6MDAiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoIWZpZWxkLmVxdWFscyhleHBTdHIpKQorICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogZmllbGQgIyIgKyBpICsgIiAiICsgZmllbGROYW1lc1tpXSArICIgPSBcIiIgKyBmaWVsZCArICJcIiwgZXhwZWN0ZWQgXCIiICsgZXhwU3RyICsgIlwiIik7CisgICAgICAgICAgICAgICAgKytleHA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gaW50ZXJuYWwgdXRpbGl0eSBmdW5jdGlvbgorICAgIHB1YmxpYyBTdHJpbmcgZ2V0RmllbGRUZXh0KERhdGVGb3JtYXQgZGYsIGludCBmaWVsZCwgRGF0ZSBkYXRlKSB7CisgICAgICAgIGZpbmFsIGludFtdIGZnQ2FsZW5kYXJUb0RhdGVGb3JtYXRGaWVsZCA9eworICAgICAgICAgICAgRGF0ZUZvcm1hdC5FUkFfRklFTEQsIAorICAgICAgICAgICAgRGF0ZUZvcm1hdC5ZRUFSX0ZJRUxELCAKKyAgICAgICAgICAgIERhdGVGb3JtYXQuTU9OVEhfRklFTEQsCisgICAgICAgICAgICBEYXRlRm9ybWF0LldFRUtfT0ZfWUVBUl9GSUVMRCwgCisgICAgICAgICAgICBEYXRlRm9ybWF0LldFRUtfT0ZfTU9OVEhfRklFTEQsCisgICAgICAgICAgICBEYXRlRm9ybWF0LkRBVEVfRklFTEQsIAorICAgICAgICAgICAgRGF0ZUZvcm1hdC5EQVlfT0ZfWUVBUl9GSUVMRCwgCisgICAgICAgICAgICBEYXRlRm9ybWF0LkRBWV9PRl9XRUVLX0ZJRUxELCAgICAgCisgICAgICAgICAgICBEYXRlRm9ybWF0LkRBWV9PRl9XRUVLX0lOX01PTlRIX0ZJRUxELCAKKyAgICAgICAgICAgIERhdGVGb3JtYXQuQU1fUE1fRklFTEQsCisgICAgICAgICAgICBEYXRlRm9ybWF0LkhPVVIxX0ZJRUxELCAKKyAgICAgICAgICAgIERhdGVGb3JtYXQuSE9VUl9PRl9EQVkwX0ZJRUxELCAKKyAgICAgICAgICAgIERhdGVGb3JtYXQuTUlOVVRFX0ZJRUxELCAKKyAgICAgICAgICAgIERhdGVGb3JtYXQuU0VDT05EX0ZJRUxELCAKKyAgICAgICAgICAgIERhdGVGb3JtYXQuTUlMTElTRUNPTkRfRklFTEQsCisgICAgICAgICAgICBEYXRlRm9ybWF0LlRJTUVaT05FX0ZJRUxECisgICAgICAgICAgICB9OworICAgICAgICBTdHJpbmdCdWZmZXIgZm9ybWF0UmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgIC8vIHtzZmJ9IGFkZGVkIHRvIGNvbnZlcnQgQ2FsZW5kYXIgRmllbGRzIHRvIERhdGVGb3JtYXQgZmllbGRzCisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zID0gbmV3IEZpZWxkUG9zaXRpb24oZmdDYWxlbmRhclRvRGF0ZUZvcm1hdEZpZWxkW2ZpZWxkXSk7CisgICAgICAgIGZvcm1hdFJlc3VsdCA9IGRmLmZvcm1hdChkYXRlLCBmb3JtYXRSZXN1bHQsIHBvcyk7ICAgIAorICAgICAgICByZXR1cm4gZm9ybWF0UmVzdWx0LnN1YnN0cmluZyhwb3MuZ2V0QmVnaW5JbmRleCgpLCBwb3MuZ2V0RW5kSW5kZXgoKSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFZlcmlmeSB0aGF0IHN0cmluZ3Mgd2hpY2ggY29udGFpbiBpbmNvbXBsZXRlIHNwZWNpZmljYXRpb25zIGFyZSBwYXJzZWQKKyAgICAgKiBjb3JyZWN0bHkuICBJbiBzb21lIGluc3RhbmNlcywgdGhpcyBtZWFucyBub3QgYmVpbmcgcGFyc2VkIGF0IGFsbCwgYW5kCisgICAgICogcmV0dXJuaW5nIGFuIGFwcHJvcHJpYXRlIGVycm9yLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RQYXJ0aWFsUGFyc2U5OTQoKSB7CisgICAgCisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCk7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDE5OTcsIDEgLSAxLCAxNywgMTAsIDExLCA0Mik7CisgICAgICAgIERhdGUgZGF0ZSA9IG51bGw7CisgICAgICAgIHRyeVBhdDk5NChmLCAieXkvTU0vZGQgSEg6bW06c3MiLCAiOTcvMDEvMTcgMTA6MTE6NDIiLCBjYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgdHJ5UGF0OTk0KGYsICJ5eS9NTS9kZCBISDptbTpzcyIsICI5Ny8wMS8xNyAxMDoiLCBkYXRlKTsKKyAgICAgICAgdHJ5UGF0OTk0KGYsICJ5eS9NTS9kZCBISDptbTpzcyIsICI5Ny8wMS8xNyAxMCIsIGRhdGUpOworICAgICAgICB0cnlQYXQ5OTQoZiwgInl5L01NL2RkIEhIOm1tOnNzIiwgIjk3LzAxLzE3ICIsIGRhdGUpOworICAgICAgICB0cnlQYXQ5OTQoZiwgInl5L01NL2RkIEhIOm1tOnNzIiwgIjk3LzAxLzE3IiwgZGF0ZSk7CisgICAgfQorICAgIAorICAgIC8vIGludGVybmFsIHRlc3Qgc3Vicm91dGluZSwgdXNlZCBieSBUZXN0UGFydGlhbFBhcnNlOTk0CisgICAgcHVibGljIHZvaWQgdHJ5UGF0OTk0KFNpbXBsZURhdGVGb3JtYXQgZm9ybWF0LCBTdHJpbmcgcGF0LCBTdHJpbmcgc3RyLCBEYXRlIGV4cGVjdGVkKSB7CisgICAgICAgIERhdGUgTnVsbCA9IG51bGw7CisgICAgICAgIGxvZ2xuKCJQYXR0ZXJuIFwiIiArIHBhdCArICJcIiAgIFN0cmluZyBcIiIgKyBzdHIgKyAiXCIiKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZvcm1hdC5hcHBseVBhdHRlcm4ocGF0KTsKKyAgICAgICAgICAgIERhdGUgZGF0ZSA9IGZvcm1hdC5wYXJzZShzdHIpOyAgICAKKyAgICAgICAgICAgIFN0cmluZyBmID0gKChEYXRlRm9ybWF0KSBmb3JtYXQpLmZvcm1hdChkYXRlKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgcGFyc2UoIiArIHN0ciArICIpIC0+ICIgKyBkYXRlKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgZm9ybWF0IC0+ICIgKyBmKTsKKyAgICAgICAgICAgIGlmIChleHBlY3RlZC5lcXVhbHMoTnVsbCkgfHwgIWRhdGUuZXF1YWxzKGV4cGVjdGVkKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgbnVsbCIpOyAvLyIgKyBleHBlY3RlZCk7CisgICAgICAgICAgICBpZiAoIWYuZXF1YWxzKHN0cikpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkICIgKyBzdHIpOworICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbigiUGFyc2VFeGNlcHRpb246ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICBpZiAoIShleHBlY3RlZCA9PU51bGwpKQorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCAiICsgZXhwZWN0ZWQpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIioqKiBFeGNlcHRpb246Iik7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFZlcmlmeSB0aGUgYmVoYXZpb3Igb2YgcGF0dGVybnMgaW4gd2hpY2ggZGlnaXRzIGZvciBkaWZmZXJlbnQgZmllbGRzIHJ1biB0b2dldGhlcgorICAgICAqIHdpdGhvdXQgaW50ZXJ2ZW5pbmcgc2VwYXJhdG9ycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UnVuVG9nZXRoZXJQYXR0ZXJuOTg1KCkgeworICAgICAgICBTdHJpbmcgZm9ybWF0ID0gInl5eXlNTWRkSEhtbXNzU1NTIjsKKyAgICAgICAgU3RyaW5nIG5vdywgdGhlbjsKKyAgICAgICAgLy9VQm9vbCBmbGFnOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZvcm1hdHRlciA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KGZvcm1hdCk7CisgICAgICAgIERhdGUgZGF0ZTEgPSBuZXcgRGF0ZSgpOworICAgICAgICBub3cgPSAoKERhdGVGb3JtYXQpIGZvcm1hdHRlcikuZm9ybWF0KGRhdGUxKTsKKyAgICAgICAgbG9nbG4obm93KTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgRGF0ZSBkYXRlMiA9IGZvcm1hdHRlci5wYXJzZShub3csIHBvcyk7CisgICAgICAgIGlmIChkYXRlMiA9PSBudWxsKQorICAgICAgICAgICAgdGhlbiA9ICJQYXJzZSBzdG9wcGVkIGF0ICIgKyBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhlbiA9ICgoRGF0ZUZvcm1hdCkgZm9ybWF0dGVyKS5mb3JtYXQoZGF0ZTIpOworICAgICAgICBsb2dsbih0aGVuKTsKKyAgICAgICAgaWYgKCFkYXRlMi5lcXVhbHMoZGF0ZTEpKQorICAgICAgICAgICAgZXJybG4oIkZBSUwiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBWZXJpZnkgdGhlIGJlaGF2aW9yIG9mIHBhdHRlcm5zIGluIHdoaWNoIGRpZ2l0cyBmb3IgZGlmZmVyZW50IGZpZWxkcyBydW4gdG9nZXRoZXIKKyAgICAgKiB3aXRob3V0IGludGVydmVuaW5nIHNlcGFyYXRvcnMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFJ1blRvZ2V0aGVyUGF0dGVybjkxNygpIHsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmbXQ7CisgICAgICAgIFN0cmluZyBteURhdGU7CisgICAgICAgIGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJ5eXl5L01NL2RkIik7CisgICAgICAgIG15RGF0ZSA9ICIxOTk3LzAyLzAzIjsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMTk5NywgMiAtIDEsIDMpOworICAgICAgICBfdGVzdEl0OTE3KGZtdCwgbXlEYXRlLCBjYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoInl5eXlNTWRkIik7CisgICAgICAgIG15RGF0ZSA9ICIxOTk3MDMwNCI7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDE5OTcsIDMgLSAxLCA0KTsKKyAgICAgICAgX3Rlc3RJdDkxNyhmbXQsIG15RGF0ZSwgY2FsLmdldFRpbWUoKSk7CisgICAgCisgICAgfQorICAgIAorICAgIC8vIGludGVybmFsIHRlc3Qgc3Vicm91dGluZSwgdXNlZCBieSBUZXN0UnVuVG9nZXRoZXJQYXR0ZXJuOTE3CisgICAgcHVibGljIHZvaWQgX3Rlc3RJdDkxNyhTaW1wbGVEYXRlRm9ybWF0IGZtdCwgU3RyaW5nIHN0ciwgRGF0ZSBleHBlY3RlZCkgeworICAgICAgICBsb2dsbigicGF0dGVybj0iICsgZm10LnRvUGF0dGVybigpICsgIiAgIHN0cmluZz0iICsgc3RyKTsKKyAgICAgICAgRGF0ZSBvID0gbmV3IERhdGUoKTsKKyAgICAgICAgbyA9IChEYXRlKSAoKERhdGVGb3JtYXQpIGZtdCkucGFyc2VPYmplY3Qoc3RyLCBuZXcgUGFyc2VQb3NpdGlvbigwKSk7CisgICAgICAgIGxvZ2xuKCJQYXJzZWQgb2JqZWN0OiAiICsgbyk7CisgICAgICAgIGlmICghby5lcXVhbHMoZXhwZWN0ZWQpKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkICIgKyBleHBlY3RlZCk7CisgICAgICAgIFN0cmluZyBmb3JtYXR0ZWQgPSAoKERhdGVGb3JtYXQpIGZtdCkuZm9ybWF0KG8pOworICAgICAgICBsb2dsbiggIkZvcm1hdHRlZCBzdHJpbmc6ICIgKyBmb3JtYXR0ZWQpOworICAgICAgICBpZiAoIWZvcm1hdHRlZC5lcXVhbHMoc3RyKSkKKyAgICAgICAgICAgIGVycmxuKCAiRkFJTDogRXhwZWN0ZWQgIiArIHN0cik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFZlcmlmeSB0aGUgaGFuZGxpbmcgb2YgQ3plY2ggSnVuZSBhbmQgSnVseSwgd2hpY2ggaGF2ZSB0aGUgdW5pcXVlIGF0dHJpYnV0ZSB0aGF0CisgICAgICogb25lIGlzIGEgcHJvcGVyIHByZWZpeCBzdWJzdHJpbmcgb2YgdGhlIG90aGVyLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDemVjaE1vbnRoczQ1OSgpIHsKKyAgICAgICAgRGF0ZUZvcm1hdCBmbXQgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LkZVTEwsIG5ldyBMb2NhbGUoImNzIiwgIiIsICIiKSk7IAorICAgICAgICBsb2dsbigiUGF0dGVybiAiICsgKChTaW1wbGVEYXRlRm9ybWF0KSBmbXQpLnRvUGF0dGVybigpKTsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuSlVORSwgMTUpOworICAgICAgICBEYXRlIGp1bmUgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgxOTk3LCBDYWxlbmRhci5KVUxZLCAxNSk7CisgICAgICAgIERhdGUganVseSA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIFN0cmluZyBqdW5lU3RyID0gZm10LmZvcm1hdChqdW5lKTsKKyAgICAgICAgU3RyaW5nIGp1bHlTdHIgPSBmbXQuZm9ybWF0KGp1bHkpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgbG9nbG4oImZvcm1hdChKdW5lIDE1IDE5OTcpID0gIiArIGp1bmVTdHIpOworICAgICAgICAgICAgRGF0ZSBkID0gZm10LnBhcnNlKGp1bmVTdHIpOworICAgICAgICAgICAgU3RyaW5nIHMgPSBmbXQuZm9ybWF0KGQpOworICAgICAgICAgICAgaW50IG1vbnRoLCB5ciwgZGF5LCBociwgbWluLCBzZWM7CisgICAgICAgICAgICBjYWwuc2V0VGltZShkKTsKKyAgICAgICAgICAgIHlyID0gY2FsLmdldChDYWxlbmRhci5ZRUFSKSAtIDE5MDA7CisgICAgICAgICAgICBtb250aCA9IGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpOworICAgICAgICAgICAgZGF5ID0gY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSyk7CisgICAgICAgICAgICBociA9IGNhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpOworICAgICAgICAgICAgbWluID0gY2FsLmdldChDYWxlbmRhci5NSU5VVEUpOworICAgICAgICAgICAgc2VjID0gY2FsLmdldChDYWxlbmRhci5TRUNPTkQpOworICAgICAgICAgICAgbG9nbG4oIiAgLiBwYXJzZSAuICIgKyBzICsgIiAobW9udGggPSAiICsgbW9udGggKyAiKSIpOworICAgICAgICAgICAgaWYgKG1vbnRoICE9IENhbGVuZGFyLkpVTkUpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IE1vbnRoIHNob3VsZCBiZSBKdW5lIik7CisgICAgICAgICAgICBsb2dsbigiZm9ybWF0KEp1bHkgMTUgMTk5NykgPSAiICsganVseVN0cik7CisgICAgICAgICAgICBkID0gZm10LnBhcnNlKGp1bHlTdHIpOworICAgICAgICAgICAgcyA9IGZtdC5mb3JtYXQoZCk7CisgICAgICAgICAgICBjYWwuc2V0VGltZShkKTsKKyAgICAgICAgICAgIHlyID0gY2FsLmdldChDYWxlbmRhci5ZRUFSKSAtIDE5MDA7CisgICAgICAgICAgICBtb250aCA9IGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpOworICAgICAgICAgICAgZGF5ID0gY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSyk7CisgICAgICAgICAgICBociA9IGNhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpOworICAgICAgICAgICAgbWluID0gY2FsLmdldChDYWxlbmRhci5NSU5VVEUpOworICAgICAgICAgICAgc2VjID0gY2FsLmdldChDYWxlbmRhci5TRUNPTkQpOworICAgICAgICAgICAgbG9nbG4oIiAgLiBwYXJzZSAuICIgKyBzICsgIiAobW9udGggPSAiICsgbW9udGggKyAiKSIpOworICAgICAgICAgICAgaWYgKG1vbnRoICE9IENhbGVuZGFyLkpVTFkpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IE1vbnRoIHNob3VsZCBiZSBKdWx5Iik7CisgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBoYW5kbGluZyBvZiAnRCcgaW4gcGF0dGVybnMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdExldHRlckRQYXR0ZXJuMjEyKCkgeworICAgICAgICBTdHJpbmcgZGF0ZVN0cmluZyA9ICIxOTk1LTA0MC4wNTowMToyOSI7CisgICAgICAgIFN0cmluZyBiaWdEID0gInl5eXktRERELmhoOm1tOnNzIjsKKyAgICAgICAgU3RyaW5nIGxpdHRsZUQgPSAieXl5eS1kZGQuaGg6bW06c3MiOworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgxOTk1LCAwLCAxLCA1LCAxLCAyOSk7CisgICAgICAgIERhdGUgZXhwTGl0dGxlRCA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIERhdGUgZXhwQmlnRCA9IG5ldyBEYXRlKChsb25nKSAoZXhwTGl0dGxlRC5nZXRUaW1lKCkgKyAzOSAqIDI0ICogMzYwMDAwMC4wKSk7CisgICAgICAgIGV4cExpdHRsZUQgPSBleHBCaWdEOyAvLyBFeHBlY3QgdGhlIHNhbWUsIHdpdGggZGVmYXVsdCBsZW5pZW50IHBhcnNpbmcKKyAgICAgICAgbG9nbG4oImRhdGVTdHJpbmc9ICIgKyBkYXRlU3RyaW5nKTsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmb3JtYXR0ZXIgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChiaWdEKTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgRGF0ZSBteURhdGUgPSBmb3JtYXR0ZXIucGFyc2UoZGF0ZVN0cmluZywgcG9zKTsKKyAgICAgICAgbG9nbG4oIlVzaW5nICIgKyBiaWdEICsgIiAuICIgKyBteURhdGUpOworICAgICAgICBpZiAoIW15RGF0ZS5lcXVhbHMoZXhwQmlnRCkpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgIiArIGV4cEJpZ0QpOworICAgICAgICBmb3JtYXR0ZXIgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChsaXR0bGVEKTsKKyAgICAgICAgcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIG15RGF0ZSA9IGZvcm1hdHRlci5wYXJzZShkYXRlU3RyaW5nLCBwb3MpOworICAgICAgICBsb2dsbigiVXNpbmcgIiArIGxpdHRsZUQgKyAiIC4gIiArIG15RGF0ZSk7CisgICAgICAgIGlmICghbXlEYXRlLmVxdWFscyhleHBMaXR0bGVEKSkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCAiICsgZXhwTGl0dGxlRCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgdGhlIGRheSBvZiB5ZWFyIHBhdHRlcm4uCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdERheU9mWWVhclBhdHRlcm4xOTUoKSB7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIERhdGUgdG9kYXkgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBpbnQgeWVhcixtb250aCxkYXk7IAorICAgICAgICB5ZWFyID0gY2FsLmdldChDYWxlbmRhci5ZRUFSKTsKKyAgICAgICAgbW9udGggPSBjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKTsKKyAgICAgICAgZGF5ID0gY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCh5ZWFyLCBtb250aCwgZGF5KTsKKyAgICAgICAgRGF0ZSBleHBlY3RlZCA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGxvZ2xuKCJUZXN0IERhdGU6ICIgKyB0b2RheSk7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gKFNpbXBsZURhdGVGb3JtYXQpRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoKTsKKyAgICAgICAgdHJ5UGF0dGVybihzZGYsIHRvZGF5LCBudWxsLCBleHBlY3RlZCk7CisgICAgICAgIHRyeVBhdHRlcm4oc2RmLCB0b2RheSwgIkcgeXl5eSBEREQiLCBleHBlY3RlZCk7CisgICAgfQorICAgIAorICAgIC8vIGludGVybCB0ZXN0IHN1YnJvdXRpbmUsIHVzZWQgYnkgVGVzdERheU9mWWVhclBhdHRlcm4xOTUKKyAgICBwdWJsaWMgdm9pZCB0cnlQYXR0ZXJuKFNpbXBsZURhdGVGb3JtYXQgc2RmLCBEYXRlIGQsIFN0cmluZyBwYXR0ZXJuLCBEYXRlIGV4cGVjdGVkKSB7CisgICAgICAgIGlmIChwYXR0ZXJuICE9IG51bGwpCisgICAgICAgICAgICBzZGYuYXBwbHlQYXR0ZXJuKHBhdHRlcm4pOworICAgICAgICBsb2dsbigicGF0dGVybjogIiArIHNkZi50b1BhdHRlcm4oKSk7CisgICAgICAgIFN0cmluZyBmb3JtYXRSZXN1bHQgPSAoKERhdGVGb3JtYXQpIHNkZikuZm9ybWF0KGQpOworICAgICAgICBsb2dsbigiIGZvcm1hdCAtPiAiICsgZm9ybWF0UmVzdWx0KTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIERhdGUgZDIgPSBzZGYucGFyc2UoZm9ybWF0UmVzdWx0KTsKKyAgICAgICAgICAgIGxvZ2xuKCIgcGFyc2UoIiArIGZvcm1hdFJlc3VsdCArICIpIC0+ICIgKyBkMik7CisgICAgICAgICAgICBpZiAoIWQyLmVxdWFscyhleHBlY3RlZCkpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkICIgKyBleHBlY3RlZCk7CisgICAgICAgICAgICBTdHJpbmcgZm9ybWF0MiA9ICgoRGF0ZUZvcm1hdCkgc2RmKS5mb3JtYXQoZDIpOworICAgICAgICAgICAgbG9nbG4oIiBmb3JtYXQgLT4gIiArIGZvcm1hdDIpOworICAgICAgICAgICAgaWYgKCFmb3JtYXRSZXN1bHQuZXF1YWxzKGZvcm1hdDIpKQorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBSb3VuZCB0cmlwIGRyaWZ0Iik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgaGFuZGxpbmcgb2Ygc2luZ2xlIHF1b3RlcyBpbiBwYXR0ZXJucy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UXVvdGVQYXR0ZXJuMTYxKCkgeworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZvcm1hdHRlciA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJNTS9kZC95eXl5ICdhdCcgaGg6bW06c3MgYSB6enoiLCBMb2NhbGUuVVMpOyAKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuQVVHVVNULCAxMywgMTAsIDQyLCAyOCk7CisgICAgICAgIERhdGUgY3VycmVudFRpbWVfMSA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIFN0cmluZyBkYXRlU3RyaW5nID0gKChEYXRlRm9ybWF0KSBmb3JtYXR0ZXIpLmZvcm1hdChjdXJyZW50VGltZV8xKTsKKyAgICAgICAgU3RyaW5nIGV4cCA9ICIwOC8xMy8xOTk3IGF0IDEwOjQyOjI4IEFNICI7CisgICAgICAgIGxvZ2xuKCJmb3JtYXQoIiArIGN1cnJlbnRUaW1lXzEgKyAiKSA9ICIgKyBkYXRlU3RyaW5nKTsKKyAgICAgICAgaWYgKCFkYXRlU3RyaW5nLnN1YnN0cmluZygwLCBleHAubGVuZ3RoKCkpLmVxdWFscyhleHApKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkICIgKyBleHApOworICAgIAorICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogVmVyaWZ5IHRoZSBjb3JyZWN0IGJlaGF2aW9yIHdoZW4gaGFuZGxpbmcgaW52YWxpZCBpbnB1dCBzdHJpbmdzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RCYWRJbnB1dDEzNSgpIHsKKyAgICAgICAgaW50IGxvb2tzW10gPSB7RGF0ZUZvcm1hdC5TSE9SVCwgRGF0ZUZvcm1hdC5NRURJVU0sIERhdGVGb3JtYXQuTE9ORywgRGF0ZUZvcm1hdC5GVUxMfTsgCisgICAgICAgIGludCBsb29rc19sZW5ndGggPSBsb29rcy5sZW5ndGg7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIHN0cmluZ3MgPSB7Ik1hciAxNSIsICJNYXIgMTUgMTk5NyIsICJhc2RmIiwgIjMvMS85NyAxOjIzOiIsICIzLzEvMDAgMToyMzo0NSBBTSJ9OyAKKyAgICAgICAgaW50IHN0cmluZ3NfbGVuZ3RoID0gc3RyaW5ncy5sZW5ndGg7CisgICAgICAgIERhdGVGb3JtYXQgZnVsbCA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkxPTkcsIERhdGVGb3JtYXQuTE9ORywgTG9jYWxlLlVTKTsgCisgICAgICAgIFN0cmluZyBleHBlY3RlZCA9ICJNYXJjaCAxLCAyMDAwIDE6MjM6NDUgQU0gIjsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzdHJpbmdzX2xlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBmaW5hbCBTdHJpbmcgdGV4dCA9IHN0cmluZ3NbaV07CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGxvb2tzX2xlbmd0aDsgKytqKSB7CisgICAgICAgICAgICAgICAgaW50IGRhdGVMb29rID0gbG9va3Nbal07CisgICAgICAgICAgICAgICAgZm9yIChpbnQgayA9IDA7IGsgPCBsb29rc19sZW5ndGg7ICsraykgeworICAgICAgICAgICAgICAgICAgICBpbnQgdGltZUxvb2sgPSBsb29rc1trXTsKKyAgICAgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShkYXRlTG9vaywgdGltZUxvb2ssIExvY2FsZS5VUyk7IAorICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcHJlZml4ID0gdGV4dCArICIsICIgKyBkYXRlTG9vayArICIvIiArIHRpbWVMb29rICsgIjogIjsgCisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICBEYXRlIHdoZW4gPSBkZi5wYXJzZSh0ZXh0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aGVuID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbihwcmVmaXggKyAiU0hPVUxEIE5PVCBIQVBQRU46IHBhcnNlIHJldHVybmVkIG51bGwuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9ICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aGVuICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZm9ybWF0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdCA9IGZ1bGwuZm9ybWF0KHdoZW4pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKHByZWZpeCArICJPSzogIiArIGZvcm1hdCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFmb3JtYXQuc3Vic3RyaW5nKDAsIGV4cGVjdGVkLmxlbmd0aCgpKS5lcXVhbHMoZXhwZWN0ZWQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgIiArIGV4cGVjdGVkKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBjYXRjaChqYXZhLnRleHQuUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFZlcmlmeSB0aGUgY29ycmVjdCBiZWhhdmlvciB3aGVuIHBhcnNpbmcgYW4gYXJyYXkgb2YgaW5wdXRzIGFnYWluc3QgYW4KKyAgICAgKiBhcnJheSBvZiBwYXR0ZXJucywgd2l0aCBrbm93biByZXN1bHRzLiAgVGhlIHJlc3VsdHMgYXJlIGVuY29kZWQgYWZ0ZXIKKyAgICAgKiB0aGUgaW5wdXQgc3RyaW5ncyBpbiBlYWNoIHJvdy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QmFkSW5wdXQxMzVhKCkgeworICAgIAorICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGRhdGVQYXJzZSA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCIiLCBMb2NhbGUuVVMpOworICAgICAgICBmaW5hbCBTdHJpbmcgc3M7CisgICAgICAgIERhdGUgZGF0ZTsKKyAgICAgICAgU3RyaW5nW10gcGFyc2VGb3JtYXRzID17Ik1NTU0gZCwgeXl5eSIsICJNTU1NIGQgeXl5eSIsICJNL2QveXkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZCBNTU1NLCB5eXl5IiwgImQgTU1NTSB5eXl5IiwgICJkIE1NTU0iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTU1NTSBkIiwgInl5eXkiLCAiaDptbSBhIE1NTU0gZCwgeXl5eSIgfTsKKyAgICAgICAgU3RyaW5nW10gaW5wdXRTdHJpbmdzID0geworICAgICAgICAgICAgImJvZ3VzIHN0cmluZyIsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsCisgICAgICAgICAgICAgICAgIkFwcmlsIDEsIDE5OTciLCAiQXByaWwgMSwgMTk5NyIsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsICJBcHJpbCAxIiwgbnVsbCwgbnVsbCwKKyAgICAgICAgICAgICAgICAiSmFuIDEsIDE5NzAiLCAiSmFudWFyeSAxLCAxOTcwIiwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgIkphbnVhcnkgMSIsIG51bGwsIG51bGwsCisgICAgICAgICAgICAgICAgIkphbiAxIDIwMzciLCBudWxsLCAiSmFudWFyeSAxIDIwMzciLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCAiSmFudWFyeSAxIiwgbnVsbCwgbnVsbCwKKyAgICAgICAgICAgICAgICAiMS8xLzcwIiwgbnVsbCwgbnVsbCwgIjEvMS83MCIsIG51bGwsIG51bGwsIG51bGwsIG51bGwsICIwMDAxIiwgbnVsbCwKKyAgICAgICAgICAgICAgICAiNSBNYXkgMTk5NyIsIG51bGwsIG51bGwsIG51bGwsIG51bGwsICI1IE1heSAxOTk3IiwgIjUgTWF5IiwgbnVsbCwgIjAwMDUiLCBudWxsLAorICAgICAgICAgICAgICAgICIxNiBNYXkiLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCAiMTYgTWF5IiwgbnVsbCwgIjAwMTYiLCBudWxsLAorICAgICAgICAgICAgICAgICJBcHJpbCAzMCIsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsICJBcHJpbCAzMCIsIG51bGwsIG51bGwsCisgICAgICAgICAgICAgICAgIjE5OTgiLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCAiMTk5OCIsIG51bGwsCisgICAgICAgICAgICAgICAgIjEiLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCAiMDAwMSIsIG51bGwsCisgICAgICAgICAgICAgICAgIjM6MDAgcG0gSmFuIDEsIDE5OTciLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCAiMDAwMyIsICIzOjAwIFBNIEphbnVhcnkgMSwgMTk5NyIsCisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgZmluYWwgaW50IFBGX0xFTkdUSCA9IHBhcnNlRm9ybWF0cy5sZW5ndGg7CisgICAgICAgIGZpbmFsIGludCBJTlBVVF9MRU5HVEggPSBpbnB1dFN0cmluZ3MubGVuZ3RoOworICAgIAorICAgICAgICBkYXRlUGFyc2UuYXBwbHlQYXR0ZXJuKCJkIE1NTU0sIHl5eXkiKTsKKyAgICAgICAgZGF0ZVBhcnNlLnNldFRpbWVab25lKFRpbWVab25lLmdldERlZmF1bHQoKSk7CisgICAgICAgIHNzID0gIm5vdCBwYXJzZWFibGUiOworICAgICAgICAvLyAgICBTdHJpbmcgdGhlUGF0OworICAgICAgICBsb2dsbigiVHJ5aW5nIHRvIHBhcnNlIFwiIiArIHNzICsgIlwiIHdpdGggIiArIGRhdGVQYXJzZS50b1BhdHRlcm4oKSk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBkYXRlID0gZGF0ZVBhcnNlLnBhcnNlKHNzKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICBsb2dsbigiRkFJTDoiICsgZXgpOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgSU5QVVRfTEVOR1RIOyBpICs9IChQRl9MRU5HVEggKyAxKSkgeworICAgICAgICAgICAgUGFyc2VQb3NpdGlvbiBwYXJzZVBvc2l0aW9uID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgICAgICBTdHJpbmcgcyA9IGlucHV0U3RyaW5nc1tpXTsKKyAgICAgICAgICAgIGZvciAoaW50IGluZGV4ID0gMDsgaW5kZXggPCBQRl9MRU5HVEg7ICsraW5kZXgpIHsKKyAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmcgZXhwZWN0ZWQgPSBpbnB1dFN0cmluZ3NbaSArIDEgKyBpbmRleF07CisgICAgICAgICAgICAgICAgZGF0ZVBhcnNlLmFwcGx5UGF0dGVybihwYXJzZUZvcm1hdHNbaW5kZXhdKTsKKyAgICAgICAgICAgICAgICBkYXRlUGFyc2Uuc2V0VGltZVpvbmUoVGltZVpvbmUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEluZGV4KDApOworICAgICAgICAgICAgICAgICAgICBkYXRlID0gZGF0ZVBhcnNlLnBhcnNlKHMsIHBhcnNlUG9zaXRpb24pOworICAgICAgICAgICAgICAgICAgICBpZiAocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzMSwgczI7CisgICAgICAgICAgICAgICAgICAgICAgICBzMSA9IHMuc3Vic3RyaW5nKDAsIHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzMiA9IHMuc3Vic3RyaW5nKHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSwgcy5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0ZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBudWxsIHJlc3VsdCBmbXQ9XCIiICsgcGFyc2VGb3JtYXRzW2luZGV4XQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiXCIgcG9zPSIgKyBwYXJzZVBvc2l0aW9uLmdldEluZGV4KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiAiICsgczEgKyAifCIgKyBzMik7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSAoKERhdGVGb3JtYXQpIGRhdGVQYXJzZSkuZm9ybWF0KGRhdGUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJQYXJzZWQgXCIiICsgcyArICJcIiB1c2luZyBcIiIgKyBkYXRlUGFyc2UudG9QYXR0ZXJuKCkgKyAiXCIgdG86ICIgKyByZXN1bHQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChleHBlY3RlZCA9PSBudWxsKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgcGFyc2UgZmFpbHVyZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQuZXF1YWxzKGV4cGVjdGVkKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCAiICsgZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChleHBlY3RlZCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkICIgKyBleHBlY3RlZCArICIgZnJvbSBcIiIgKyBzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICJcIiB3aXRoIFwiIiArIGRhdGVQYXJzZS50b1BhdHRlcm4oKSsgIlwiIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJGQUlMOiIgKyBleCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgdGhlIHBhcnNpbmcgb2YgdHdvLWRpZ2l0IHllYXJzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RUd29EaWdpdFllYXIoKSB7CisgICAgICAgIERhdGVGb3JtYXQgZm10ID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5TSE9SVCwgTG9jYWxlLlVTKTsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMTE3ICsgMTkwMCwgQ2FsZW5kYXIuSlVORSwgNSk7CisgICAgICAgIHBhcnNlMkRpZ2l0WWVhcihmbXQsICI2LzUvMTciLCBjYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMzQgKyAxOTAwLCBDYWxlbmRhci5KVU5FLCA0KTsKKyAgICAgICAgcGFyc2UyRGlnaXRZZWFyKGZtdCwgIjYvNC8zNCIsIGNhbC5nZXRUaW1lKCkpOworICAgIH0KKyAgICAKKyAgICAvLyBpbnRlcm5hbCB0ZXN0IHN1YnJvdXRpbmUsIHVzZWQgYnkgVGVzdFR3b0RpZ2l0WWVhcgorICAgIHB1YmxpYyB2b2lkIHBhcnNlMkRpZ2l0WWVhcihEYXRlRm9ybWF0IGZtdCwgU3RyaW5nIHN0ciwgRGF0ZSBleHBlY3RlZCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgRGF0ZSBkID0gZm10LnBhcnNlKHN0cik7CisgICAgICAgICAgICBsb2dsbigiUGFyc2luZyBcIiIrIHN0cisgIlwiIHdpdGggIisgKChTaW1wbGVEYXRlRm9ybWF0KSBmbXQpLnRvUGF0dGVybigpCisgICAgICAgICAgICAgICAgICAgICsgIiAgPT4gIisgZCk7IAorICAgICAgICAgICAgaWYgKCFkLmVxdWFscyhleHBlY3RlZCkpCisgICAgICAgICAgICAgICAgZXJybG4oICJGQUlMOiBFeHBlY3RlZCAiICsgZXhwZWN0ZWQpOworICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgZm9ybWF0dGluZyBvZiB0aW1lIHpvbmVzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3REYXRlRm9ybWF0Wm9uZTA2MSgpIHsKKyAgICAgICAgRGF0ZSBkYXRlOworICAgICAgICBEYXRlRm9ybWF0IGZvcm1hdHRlcjsKKyAgICAgICAgZGF0ZSA9IG5ldyBEYXRlKDg1OTI0ODAwMDAwMGwpOworICAgICAgICBsb2dsbigiRGF0ZSAxOTk3LzMvMjUgMDA6MDAgR01UOiAiICsgZGF0ZSk7CisgICAgICAgIGZvcm1hdHRlciA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJkZC1NTU0teXl5eXkgSEg6bW0iLCBMb2NhbGUuVUspOworICAgICAgICBmb3JtYXR0ZXIuc2V0VGltZVpvbmUoVGltZVpvbmUuZ2V0VGltZVpvbmUoIkdNVCIpKTsKKyAgICAgICAgU3RyaW5nIHRlbXAgPSBmb3JtYXR0ZXIuZm9ybWF0KGRhdGUpOworICAgICAgICBsb2dsbigiRm9ybWF0dGVkIGluIEdNVCB0bzogIiArIHRlbXApOworICAgICAgICB0cnkgeworICAgICAgICAgICAgRGF0ZSB0ZW1wRGF0ZSA9IGZvcm1hdHRlci5wYXJzZSh0ZW1wKTsKKyAgICAgICAgICAgIGxvZ2xuKCJQYXJzZWQgdG86ICIgKyB0ZW1wRGF0ZSk7CisgICAgICAgICAgICBpZiAoIXRlbXBEYXRlLmVxdWFscyhkYXRlKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgIiArIGRhdGUpOworICAgICAgICB9IGNhdGNoIChUaHJvd2FibGUgdCkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHQpOworICAgICAgICB9CisgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgdGhlIGZvcm1hdHRpbmcgb2YgdGltZSB6b25lcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RGF0ZUZvcm1hdFpvbmUxNDYoKSB7CisgICAgICAgIFRpbWVab25lIHNhdmVEZWZhdWx0ID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgIAorICAgICAgICAvL3RyeSB7CisgICAgICAgIFRpbWVab25lIHRoZWRlZmF1bHQgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiR01UIik7CisgICAgICAgIFRpbWVab25lLnNldERlZmF1bHQodGhlZGVmYXVsdCk7CisgICAgICAgIC8vIGphdmEudXRpbC5Mb2NhbGUuc2V0RGVmYXVsdChuZXcgamF2YS51dGlsLkxvY2FsZSgiYXIiLCAiIiwgIiIpKTsKKyAgICAKKyAgICAgICAgLy8gY2hlY2sgdG8gYmUgc3VyZS4uLiBpdHMgR01UIGFsbCByaWdodAorICAgICAgICBUaW1lWm9uZSB0ZXN0ZGVmYXVsdCA9IFRpbWVab25lLmdldERlZmF1bHQoKTsKKyAgICAgICAgU3RyaW5nIHRlc3R0aW1lem9uZSA9IHRlc3RkZWZhdWx0LmdldElEKCk7CisgICAgICAgIGlmICh0ZXN0dGltZXpvbmUuZXF1YWxzKCJHTVQiKSkKKyAgICAgICAgICAgIGxvZ2xuKCJUZXN0IHRpbWV6b25lID0gIiArIHRlc3R0aW1lem9uZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVycmxuKCJUZXN0IHRpbWV6b25lIHNob3VsZCBiZSBHTVQsIG5vdCAiICsgdGVzdHRpbWV6b25lKTsKKyAgICAKKyAgICAgICAgLy8gbm93IHRyeSB0byB1c2UgdGhlIGRlZmF1bHQgR01UIHRpbWUgem9uZQorICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBncmVlbndpY2hjYWxlbmRhciA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigxOTk3LCAzLCA0LCAyMywgMCk7CisgICAgICAgIC8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKipncmVlbndpY2hjYWxlbmRhci5zZXRUaW1lWm9uZShUaW1lWm9uZS5nZXREZWZhdWx0KCkpOworICAgICAgICAvL2dyZWVud2ljaGNhbGVuZGFyLnNldCgxOTk3LCAzLCA0LCAyMywgMCk7CisgICAgICAgIC8vIHRyeSBhbnl0aGluZyB0byBzZXQgaG91ciB0byAyMzowMCAhISEKKyAgICAgICAgZ3JlZW53aWNoY2FsZW5kYXIuc2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZLCAyMyk7CisgICAgICAgIC8vIGdldCB0aW1lCisgICAgICAgIERhdGUgZ3JlZW53aWNoZGF0ZSA9IGdyZWVud2ljaGNhbGVuZGFyLmdldFRpbWUoKTsKKyAgICAgICAgLy8gZm9ybWF0IGV2ZXJ5IHdheQorICAgICAgICBTdHJpbmcgREFUQVtdID0geworICAgICAgICAgICAgICAgICJzaW1wbGUgZm9ybWF0OiAgIiwgIjA0LzA0Lzk3IDIzOjAwIEdNVCIsIAorICAgICAgICAgICAgICAgICJNTS9kZC95eSBISDptbSB6IiwgImZ1bGwgZm9ybWF0OiAgICAiLCAKKyAgICAgICAgICAgICAgICAiRnJpZGF5LCBBcHJpbCA0LCAxOTk3IDExOjAwOjAwIG8nY2xvY2sgUE0gR01UIiwgCisgICAgICAgICAgICAgICAgIkVFRUUsIE1NTU0gZCwgeXl5eSBoOm1tOnNzICdvJydjbG9jaycgYSB6IiwgCisgICAgICAgICAgICAgICAgImxvbmcgZm9ybWF0OiAgICAiLCAiQXByaWwgNCwgMTk5NyAxMTowMDowMCBQTSBHTVQiLCAKKyAgICAgICAgICAgICAgICAiTU1NTSBkLCB5eXl5IGg6bW06c3MgYSB6IiwgImRlZmF1bHQgZm9ybWF0OiAiLCAKKyAgICAgICAgICAgICAgICAiMDQtQXByLTk3IDExOjAwOjAwIFBNIiwgImRkLU1NTS15eSBoOm1tOnNzIGEiLCAKKyAgICAgICAgICAgICAgICAic2hvcnQgZm9ybWF0OiAgICIsICI0LzQvOTcgMTE6MDAgUE0iLCAKKyAgICAgICAgICAgICAgICAiTS9kL3l5IGg6bW0gYSJ9OyAKKyAgICAgICAgaW50IERBVEFfbGVuZ3RoID0gREFUQS5sZW5ndGg7CisgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgREFUQV9sZW5ndGg7IGkgKz0gMykgeworICAgICAgICAgICAgRGF0ZUZvcm1hdCBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChEQVRBW2kgKyAyXSwgTG9jYWxlLkVOR0xJU0gpOworICAgICAgICAgICAgZm10LnNldENhbGVuZGFyKGdyZWVud2ljaGNhbGVuZGFyKTsKKyAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSBmbXQuZm9ybWF0KGdyZWVud2ljaGRhdGUpOworICAgICAgICAgICAgbG9nbG4oREFUQVtpXSArIHJlc3VsdCk7CisgICAgICAgICAgICBpZiAoIXJlc3VsdC5lcXVhbHMoREFUQVtpICsgMV0pKQorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCAiICsgREFUQVtpICsgMV0gKyAiLCBnb3QgIiArIHJlc3VsdCk7CisgICAgICAgIH0KKyAgICAgICAgLy99CisgICAgICAgIC8vZmluYWxseSB7CisgICAgICAgIFRpbWVab25lLnNldERlZmF1bHQoc2F2ZURlZmF1bHQpOworICAgICAgICAvL30KKyAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgZm9ybWF0dGluZyBvZiBkYXRlcyBpbiBkaWZmZXJlbnQgbG9jYWxlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TG9jYWxlRGF0ZUZvcm1hdCgpIHsKKyAgICAKKyAgICAgICAgRGF0ZSB0ZXN0RGF0ZSA9IG5ldyBEYXRlKDg3NDMwNjgwMDAwMGwpOyAvL01vbiBTZXAgMTUgMDA6MDA6MDAgUERUIDE5OTcKKyAgICAgICAgRGF0ZUZvcm1hdCBkZkZyZW5jaCA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkZVTEwsIERhdGVGb3JtYXQuRlVMTCwgTG9jYWxlLkZSRU5DSCk7CisgICAgICAgIERhdGVGb3JtYXQgZGZVUyA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkZVTEwsIERhdGVGb3JtYXQuRlVMTCwgTG9jYWxlLlVTKTsKKyAgICAgICAgLy9TZXQgVGltZVpvbmUgPSBQRFQKKyAgICAgICAgVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisgICAgICAgICgoU2ltcGxlVGltZVpvbmUpdHopLnNldERTVFNhdmluZ3MoMzYwMDAwMCk7CisgICAgICAgIGRmRnJlbmNoLnNldFRpbWVab25lKHR6KTsKKyAgICAgICAgZGZVUy5zZXRUaW1lWm9uZSh0eik7CisgICAgICAgIFN0cmluZyBleHBlY3RlZEZSRU5DSF9KREsxMiA9ICJsdW5kaSAxNSBzZXB0ZW1icmUgMTk5NyAwMCBoIDAwIEdNVC0wNzowMCI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZEZSRU5DSCA9ICJsdW5kaSAxNSBzZXB0ZW1icmUgMTk5NyAwMCBoIDAwIFBEVCI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZFVTID0gIk1vbmRheSwgU2VwdGVtYmVyIDE1LCAxOTk3IDEyOjAwOjAwIEFNIFBEVCI7CisgICAgICAgIGxvZ2xuKCJEYXRlIHNldCB0byA6ICIgKyB0ZXN0RGF0ZSk7CisgICAgICAgIFN0cmluZyBvdXQgPSBkZkZyZW5jaC5mb3JtYXQodGVzdERhdGUpOworICAgICAgICBsb2dsbigiRGF0ZSBGb3JtYXRlZCB3aXRoIEZyZW5jaCBMb2NhbGUgIiArIG91dCk7CisgICAgICAgIC8vZml4IHRoZSBqZGsgcmVzb3VyY2VzIGRpZmZlcmVuY2VzIGJldHdlZW4gamRrIDEuMiBhbmQgamRrIDEuMworCQkvKiBvdXIgb3duIGRhdGEgb25seSBoYXMgR01ULXh4eHggaW5mb3JtYXRpb24gaGVyZQorICAgICAgICBTdHJpbmcgamF2YVZlcnNpb24gPSBTeXN0ZW0uZ2V0UHJvcGVydHkoImphdmEudmVyc2lvbiIpOworICAgICAgICBpZiAoamF2YVZlcnNpb24uc3RhcnRzV2l0aCgiMS4yIikpIHsKKyAgICAgICAgICAgIGlmICghb3V0LmVxdWFscyhleHBlY3RlZEZSRU5DSF9KREsxMikpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkICIgKyBleHBlY3RlZEZSRU5DSF9KREsxMik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoIW91dC5lcXVhbHMoZXhwZWN0ZWRGUkVOQ0gpKQorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCAiICsgZXhwZWN0ZWRGUkVOQ0gpOworICAgICAgICB9CisJCSovCisJCWlmICghb3V0LmVxdWFscyhleHBlY3RlZEZSRU5DSF9KREsxMikpCisJCQllcnJsbigiRkFJTDogRXhwZWN0ZWQgIiArIGV4cGVjdGVkRlJFTkNIX0pESzEyKTsKKyAgICAgICAgb3V0ID0gZGZVUy5mb3JtYXQodGVzdERhdGUpOworICAgICAgICBsb2dsbigiRGF0ZSBGb3JtYXRlZCB3aXRoIFVTIExvY2FsZSAiICsgb3V0KTsKKyAgICAgICAgaWYgKCFvdXQuZXF1YWxzKGV4cGVjdGVkVVMpKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkICIgKyBleHBlY3RlZFVTKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IERhdGVGb3JtYXQoQ2FsZW5kYXIpIEFQSQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3REYXRlRm9ybWF0Q2FsZW5kYXIoKSB7CisgICAgICAgIERhdGVGb3JtYXQgZGF0ZT1udWxsLCB0aW1lPW51bGwsIGZ1bGw9bnVsbDsKKyAgICAgICAgQ2FsZW5kYXIgY2FsPW51bGw7CisgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIFN0cmluZyBzdHI7CisgICAgICAgIERhdGUgd2hlbjsKKworICAgICAgICAvKiBDcmVhdGUgYSBmb3JtYXR0ZXIgZm9yIGRhdGUgZmllbGRzLiAqLworICAgICAgICBkYXRlID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5TSE9SVCwgTG9jYWxlLlVTKTsKKyAgICAgICAgaWYgKGRhdGUgPT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldERhdGVJbnN0YW5jZSBmYWlsZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8qIENyZWF0ZSBhIGZvcm1hdHRlciBmb3IgdGltZSBmaWVsZHMuICovCisgICAgICAgIHRpbWUgPSBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LlNIT1JULCBMb2NhbGUuVVMpOworICAgICAgICBpZiAodGltZSA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogZ2V0VGltZUluc3RhbmNlIGZhaWxlZCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLyogQ3JlYXRlIGEgZnVsbCBmb3JtYXQgZm9yIG91dHB1dCAqLworICAgICAgICBmdWxsID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKERhdGVGb3JtYXQuRlVMTCwgRGF0ZUZvcm1hdC5GVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsZS5VUyk7CisgICAgICAgIGlmIChmdWxsID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRJbnN0YW5jZSBmYWlsZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8qIENyZWF0ZSBhIGNhbGVuZGFyICovCisgICAgICAgIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIGlmIChjYWwgPT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IENhbGVuZGFyLmdldEluc3RhbmNlIGZhaWxlZCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLyogUGFyc2UgdGhlIGRhdGUgKi8KKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIHN0ciA9ICI0LzUvMjAwMSI7CisgICAgICAgIHBvcy5zZXRJbmRleCgwKTsKKyAgICAgICAgZGF0ZS5wYXJzZShzdHIsIGNhbCwgcG9zKTsKKyAgICAgICAgaWYgKHBvcy5nZXRJbmRleCgpICE9IHN0ci5sZW5ndGgoKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IERhdGVGb3JtYXQucGFyc2UoNC81LzIwMDEpIGZhaWxlZCBhdCAiICsKKyAgICAgICAgICAgICAgICAgIHBvcy5nZXRJbmRleCgpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8qIFBhcnNlIHRoZSB0aW1lICovCisgICAgICAgIHN0ciA9ICI1OjQ1IFBNIjsKKyAgICAgICAgcG9zLnNldEluZGV4KDApOworICAgICAgICB0aW1lLnBhcnNlKHN0ciwgY2FsLCBwb3MpOworICAgICAgICBpZiAocG9zLmdldEluZGV4KCkgIT0gc3RyLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogRGF0ZUZvcm1hdC5wYXJzZSgxNzo0NSkgZmFpbGVkIGF0ICIgKworICAgICAgICAgICAgICAgICAgcG9zLmdldEluZGV4KCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIC8qIENoZWNrIHJlc3VsdCAqLworICAgICAgICB3aGVuID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgc3RyID0gZnVsbC5mb3JtYXQod2hlbik7CisgICAgICAgIC8vIFRodXJzZGF5LCBBcHJpbCA1LCAyMDAxIDU6NDU6MDAgUE0gUERUIDk4NjUxNzkwMDAwMAorICAgICAgICBpZiAod2hlbi5nZXRUaW1lKCkgPT0gOTg2NTE3OTAwMDAwLjApIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPazogUGFyc2VkIHJlc3VsdDogIiArIHN0cik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogUGFyc2VkIHJlc3VsdDogIiArIHN0ciArICIsIGV4cCA0LzUvMjAwMSA1OjQ1IFBNIik7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0RGF0ZUZvcm1hdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERhdGVGb3JtYXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45YzYwMDA1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERhdGVGb3JtYXQuamF2YQpAQCAtMCwwICsxLDI2NiBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERhdGVGb3JtYXQuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wOC8wMSAyMDoyNzoyMSAkIAorICogJFJldmlzaW9uOiAxLjUgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBKREsgMS40YjEgOiBqYXZhLnRleHQuRm9ybWF0LkludGxUZXN0RGF0ZUZvcm1hdAorICogU291cmNlIEZpbGU6IGphdmEvdGV4dC9mb3JtYXQvSW50bFRlc3REYXRlRm9ybWF0LmphdmEKKyAqKi8KKworLyoKKyAgICBAdGVzdCAxLjQgOTgvMDMvMDYKKyAgICBAc3VtbWFyeSB0ZXN0IEludGVybmF0aW9uYWwgRGF0ZSBGb3JtYXQKKyovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk2LTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuUmFuZG9tOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworCitwdWJsaWMgY2xhc3MgSW50bFRlc3REYXRlRm9ybWF0IGV4dGVuZHMgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2sgeworICAgIC8vIFZhbHVlcyBpbiBtaWxsaXNlY29uZHMgKD09IERhdGUpCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBPTkVTRUNPTkQgPSAxMDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgT05FTUlOVVRFID0gNjAgKiBPTkVTRUNPTkQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBPTkVIT1VSID0gNjAgKiBPTkVNSU5VVEU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBPTkVEQVkgPSAyNCAqIE9ORUhPVVI7CisgICAgLy9wcml2YXRlIHN0YXRpYyBmaW5hbCBkb3VibGUgT05FWUVBUiA9IDM2NS4yNSAqIE9ORURBWTsgLy8gQXBwcm94aW1hdGUgLy9UaGUgdmFyaWFibGUgaXMgbmV2ZXIgdXNlZAorCisgICAgLy8gRU1vZGVzCisgICAgLy9wcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIEdFTkVSSUMgPSAwOworICAgIC8vcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBUSU1FID0gR0VORVJJQyArIDE7IC8vVGhlIHZhcmlhYmxlIGlzIG5ldmVyIHVzZWQKKyAgICAvL3ByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgREFURSA9IFRJTUUgKyAxOyAvL1RoZSB2YXJpYWJsZSBpcyBuZXZlciB1c2VkCisgICAgLy9wcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIERBVEVfVElNRSA9IERBVEUgKyAxOyAvL1RoZSB2YXJpYWJsZSBpcyBuZXZlciB1c2VkCisKKyAgICBwcml2YXRlIERhdGVGb3JtYXQgZkZvcm1hdCA9IERhdGVGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICBwcml2YXRlIFN0cmluZyBmVGVzdE5hbWUgPSBuZXcgU3RyaW5nKCJnZXRJbnN0YW5jZSIpOworICAgIHByaXZhdGUgaW50IGZMaW1pdCA9IDM7IC8vIEhvdyBtYW55IGl0ZXJhdGlvbnMgaXQgc2hvdWxkIHRha2UgdG8gcmVhY2ggY29udmVyZ2VuY2UKKyAgICAKKyAgICBwdWJsaWMgSW50bFRlc3REYXRlRm9ybWF0KCkgeworICAgICAgICAvL0NvbnN0cnVjdHVyZQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IEludGxUZXN0RGF0ZUZvcm1hdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0TG9jYWxlKCkgeworICAgICAgICBsb2NhbGVUZXN0KExvY2FsZS5nZXREZWZhdWx0KCksICJEZWZhdWx0IExvY2FsZSIpOworICAgIH0KKworICAgIC8vIFRoaXMgdGVzdCBkb2VzIHJvdW5kLXRyaXAgdGVzdGluZyAoZm9ybWF0IC0+IHBhcnNlIC0+IGZvcm1hdCAtPiBwYXJzZSAtPiBldGMuKSBvZiBEYXRlRm9ybWF0LgorICAgIHB1YmxpYyB2b2lkIGxvY2FsZVRlc3QoZmluYWwgTG9jYWxlIGxvY2FsZSwgZmluYWwgU3RyaW5nIGxvY2FsZU5hbWUpIHsKKyAgICAgICAgaW50IHRpbWVTdHlsZSwgZGF0ZVN0eWxlOworCisgICAgICAgIC8vIEZvciBwYXR0ZXJucyBpbmNsdWRpbmcgb25seSB0aW1lIGluZm9ybWF0aW9uIGFuZCBhIHRpbWV6b25lLCBpdCBtYXkgdGFrZQorICAgICAgICAvLyB1cCB0byB0aHJlZSBpdGVyYXRpb25zLCBzaW5jZSB0aGUgdGltZXpvbmUgbWF5IHNoaWZ0IGFzIHRoZSB5ZWFyIG51bWJlcgorICAgICAgICAvLyBpcyBkZXRlcm1pbmVkLiAgRm9yIG90aGVyIHBhdHRlcm5zLCAyIGl0ZXJhdGlvbnMgc2hvdWxkIHN1ZmZpY2UuCisgICAgICAgIGZMaW1pdCA9IDM7CisKKyAgICAgICAgZm9yKHRpbWVTdHlsZSA9IDA7IHRpbWVTdHlsZSA8IDQ7IHRpbWVTdHlsZSsrKSB7CisgICAgICAgICAgICBmVGVzdE5hbWUgPSBuZXcgU3RyaW5nKCJUaW1lIHRlc3QgIiArIHRpbWVTdHlsZSArICIgKCIgKyBsb2NhbGVOYW1lICsgIikiKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZkZvcm1hdCA9IERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKHRpbWVTdHlsZSwgbG9jYWxlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoKFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBsb2NhbGVUZXN0IHRpbWUgZ2V0VGltZUluc3RhbmNlIGV4Y2VwdGlvbiIpOworICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBUZXN0Rm9ybWF0KCk7CisgICAgICAgIH0KKworICAgICAgICBmTGltaXQgPSAyOworCisgICAgICAgIGZvcihkYXRlU3R5bGUgPSAwOyBkYXRlU3R5bGUgPCA0OyBkYXRlU3R5bGUrKykgeworICAgICAgICAgICAgZlRlc3ROYW1lID0gbmV3IFN0cmluZygiRGF0ZSB0ZXN0ICIgKyBkYXRlU3R5bGUgKyAiICgiICsgbG9jYWxlTmFtZSArICIpIik7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGZGb3JtYXQgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShkYXRlU3R5bGUsIGxvY2FsZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaChTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogbG9jYWxlVGVzdCBkYXRlIGdldFRpbWVJbnN0YW5jZSBleGNlcHRpb24iKTsKKyAgICAgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgVGVzdEZvcm1hdCgpOworICAgICAgICB9CisKKyAgICAgICAgZm9yKGRhdGVTdHlsZSA9IDA7IGRhdGVTdHlsZSA8IDQ7IGRhdGVTdHlsZSsrKSB7CisgICAgICAgICAgICBmb3IodGltZVN0eWxlID0gMDsgdGltZVN0eWxlIDwgNDsgdGltZVN0eWxlKyspIHsKKyAgICAgICAgICAgICAgICBmVGVzdE5hbWUgPSBuZXcgU3RyaW5nKCJEYXRlVGltZSB0ZXN0ICIgKyBkYXRlU3R5bGUgKyAiLyIgKyB0aW1lU3R5bGUgKyAiICgiICsgbG9jYWxlTmFtZSArICIpIik7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgZkZvcm1hdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShkYXRlU3R5bGUsIHRpbWVTdHlsZSwgbG9jYWxlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2goU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBsb2NhbGVUZXN0IGRhdGUvdGltZSBnZXREYXRlVGltZUluc3RhbmNlIGV4Y2VwdGlvbiIpOworICAgICAgICAgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBUZXN0Rm9ybWF0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Rm9ybWF0KCkgeworICAgICAgICBpZiAoZkZvcm1hdCA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogRGF0ZUZvcm1hdCBjcmVhdGlvbiBmYWlsZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAvLyAgICAgICAgbG9nbG4oIlRlc3RGb3JtYXQ6ICIgKyBmVGVzdE5hbWUpOworICAgICAgICBEYXRlIG5vdyA9IG5ldyBEYXRlKCk7CisgICAgICAgIHRyeURhdGUobmV3IERhdGUoMCkpOworICAgICAgICB0cnlEYXRlKG5ldyBEYXRlKChsb25nKSAxMjc4MTYxODAxNzc4LjApKTsKKyAgICAgICAgdHJ5RGF0ZShub3cpOworICAgICAgICAvLyBTaGlmdCA2IG1vbnRocyBpbnRvIHRoZSBmdXR1cmUsIEFUIFRIRSBTQU1FIFRJTUUgT0YgREFZLgorICAgICAgICAvLyBUaGlzIHdpbGwgdGVzdCB0aGUgRFNUIGhhbmRsaW5nLgorICAgICAgICB0cnlEYXRlKG5ldyBEYXRlKG5vdy5nZXRUaW1lKCkgKyA2KjMwKk9ORURBWSkpOworCisgICAgICAgIERhdGUgbGltaXQgPSBuZXcgRGF0ZShub3cuZ2V0VGltZSgpICogMTApOyAvLyBBcmJpdHJhcnkgbGltaXQKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPDI7ICsraSkKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgdHJ5RGF0ZShuZXcgRGF0ZShmbG9vcihyYW5kRG91YmxlKCkgKiBsaW1pdCkpKTsKKyAgICAgICAgICAgIHRyeURhdGUobmV3IERhdGUoKGxvbmcpIChyYW5kRG91YmxlKCkgKiBsaW1pdC5nZXRUaW1lKCkpKSk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGRlc2NyaWJlVGVzdCgpIHsKKyAgICAgICAgaWYgKGZGb3JtYXQgPT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IG5vIERhdGVGb3JtYXQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEFzc3VtZSBpdCdzIGEgU2ltcGxlRGF0ZUZvcm1hdCBhbmQgZ2V0IHNvbWUgaW5mbworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHMgPSAoU2ltcGxlRGF0ZUZvcm1hdCkgZkZvcm1hdDsKKyAgICAgICAgbG9nbG4oZlRlc3ROYW1lICsgIiBQYXR0ZXJuICIgKyBzLnRvUGF0dGVybigpKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgdHJ5RGF0ZShEYXRlIHRoZURhdGUpIHsKKyAgICAgICAgZmluYWwgaW50IERFUFRIID0gMTA7CisgICAgICAgIERhdGVbXSBkYXRlID0gbmV3IERhdGVbREVQVEhdOworICAgICAgICBTdHJpbmdCdWZmZXJbXSBzdHJpbmcgPSBuZXcgU3RyaW5nQnVmZmVyW0RFUFRIXTsKKworICAgICAgICBpbnQgZGF0ZU1hdGNoID0gMDsKKyAgICAgICAgaW50IHN0cmluZ01hdGNoID0gMDsKKyAgICAgICAgYm9vbGVhbiBkdW1wID0gZmFsc2U7CisgICAgICAgIGludCBpOworICAgICAgICBmb3IgKGk9MDsgaTxERVBUSDsgKytpKSBzdHJpbmdbaV0gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaT0wOyBpPERFUFRIOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChpID09IDApIGRhdGVbaV0gPSB0aGVEYXRlOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgZGF0ZVtpXSA9IGZGb3JtYXQucGFyc2Uoc3RyaW5nW2ktMV0udG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGRlc2NyaWJlVGVzdCgpOworICAgICAgICAgICAgICAgICAgICBlcnJsbigiKioqKioqKioqKiBGQUlMOiBQYXJzZSBvZiAiICsgc3RyaW5nW2ktMV0gKyAiIGZhaWxlZC4iKTsKKyAgICAgICAgICAgICAgICAgICAgZHVtcCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zaXRpb24gPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgICAgIGZGb3JtYXQuZm9ybWF0KGRhdGVbaV0sIHN0cmluZ1tpXSwgcG9zaXRpb24pOworICAgICAgICAgICAgaWYgKGkgPiAwKSB7CisgICAgICAgICAgICAgICAgaWYgKGRhdGVNYXRjaCA9PSAwICYmIGRhdGVbaV0gPT0gZGF0ZVtpLTFdKSBkYXRlTWF0Y2ggPSBpOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKGRhdGVNYXRjaCA+IDAgJiYgZGF0ZVtpXSAhPSBkYXRlW2ktMV0pIHsKKyAgICAgICAgICAgICAgICAgICAgZGVzY3JpYmVUZXN0KCk7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCIqKioqKioqKioqIEZBSUw6IERhdGUgbWlzbWF0Y2ggYWZ0ZXIgbWF0Y2guIik7CisgICAgICAgICAgICAgICAgICAgIGR1bXAgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHN0cmluZ01hdGNoID09IDAgJiYgc3RyaW5nW2ldID09IHN0cmluZ1tpLTFdKSBzdHJpbmdNYXRjaCA9IGk7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoc3RyaW5nTWF0Y2ggPiAwICYmIHN0cmluZ1tpXSAhPSBzdHJpbmdbaS0xXSkgeworICAgICAgICAgICAgICAgICAgICBkZXNjcmliZVRlc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIioqKioqKioqKiogRkFJTDogU3RyaW5nIG1pc21hdGNoIGFmdGVyIG1hdGNoLiIpOworICAgICAgICAgICAgICAgICAgICBkdW1wID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGRhdGVNYXRjaCA+IDAgJiYgc3RyaW5nTWF0Y2ggPiAwKSBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAoaSA9PSBERVBUSCkgLS1pOworCisgICAgICAgIGlmIChzdHJpbmdNYXRjaCA+IGZMaW1pdCB8fCBkYXRlTWF0Y2ggPiBmTGltaXQpIHsKKyAgICAgICAgICAgIGRlc2NyaWJlVGVzdCgpOworICAgICAgICAgICAgZXJybG4oIioqKioqKioqKiogRkFJTDogTm8gc3RyaW5nIGFuZC9vciBkYXRlIG1hdGNoIHdpdGhpbiAiICsgZkxpbWl0ICsgIiBpdGVyYXRpb25zLiIpOworICAgICAgICAgICAgZHVtcCA9IHRydWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZHVtcCkgeworICAgICAgICAgICAgZm9yIChpbnQgaz0wOyBrPD1pOyArK2spIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiIiArIGsgKyAiOiAiICsgZGF0ZVtrXSArICIgRj4gIiArIHN0cmluZ1trXSArICIgUD4gIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBSZXR1cm4gYSByYW5kb20gZG91YmxlIGZyb20gMC4wMSB0byAxLCBpbmNsdXNpdmUKKyAgICBwcml2YXRlIGRvdWJsZSByYW5kRG91YmxlKCkgeworICAgICAgICAvLyBBc3N1bWUgOC1iaXQgKG9yIGxhcmdlcikgcmFuZCB2YWx1ZXMuICBBbHNvIGFzc3VtZQorICAgICAgICAvLyB0aGF0IHRoZSBzeXN0ZW0gcmFuZCgpIGZ1bmN0aW9uIGlzIHZlcnkgcG9vciwgd2hpY2ggaXQgYWx3YXlzIGlzLgorICAgICAgICAvLyAgICAgICAgZG91YmxlIGQ7CisgICAgICAgIC8vICAgICAgICBpbnQgaTsKKyAgICAgICAgLy8gICAgICAgIGRvIHsKKyAgICAgICAgLy8gICAgICAgICAgICBmb3IgKGk9MDsgaSA8IHNpemVvZihkb3VibGUpOyArK2kpCisgICAgICAgIC8vICAgICAgICAgICAgeworICAgICAgICAvLyAgICAgICAgICAgICAgICBjaGFyIHBva2UgPSAoY2hhciopJmQ7CisgICAgICAgIC8vICAgICAgICAgICAgICAgIHBva2VbaV0gPSAocmFuZCgpICYgMHhGRik7CisgICAgICAgIC8vICAgICAgICAgICAgfQorICAgICAgICAvLyAgICAgICAgfSB3aGlsZSAoVFBsYXRmb3JtVXRpbGl0aWVzLmlzTmFOKGQpIHx8IFRQbGF0Zm9ybVV0aWxpdGllcy5pc0luZmluaXRlKGQpKTsKKworICAgICAgICAvLyAgICAgICAgaWYgKGQgPCAwLjApIGQgPSAtZDsKKyAgICAgICAgLy8gICAgICAgIGlmIChkID4gMC4wKQorICAgICAgICAvLyAgICAgICAgeworICAgICAgICAvLyAgICAgICAgICAgIGRvdWJsZSBlID0gZmxvb3IobG9nMTAoZCkpOworICAgICAgICAvLyAgICAgICAgICAgIGlmIChlIDwgLTIuMCkgZCAqPSBwb3coMTAuMCwgLWUtMik7CisgICAgICAgIC8vICAgICAgICAgICAgZWxzZSBpZiAoZSA+IC0xLjApIGQgLz0gcG93KDEwLjAsIGUrMSk7CisgICAgICAgIC8vICAgICAgICB9CisgICAgICAgIC8vICAgICAgICByZXR1cm4gZDsKKyAgICAgICAgUmFuZG9tIHJhbmQgPSBuZXcgUmFuZG9tKCk7CisgICAgICAgIHJldHVybiByYW5kLm5leHREb3VibGUoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QXZhaWxhYmxlTG9jYWxlcygpIHsKKyAgICAgICAgZmluYWwgTG9jYWxlW10gbG9jYWxlcyA9IERhdGVGb3JtYXQuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICBsb25nIGNvdW50ID0gbG9jYWxlcy5sZW5ndGg7CisgICAgICAgIGxvZ2xuKCIiICsgY291bnQgKyAiIGF2YWlsYWJsZSBsb2NhbGVzIik7CisgICAgICAgIGlmIChsb2NhbGVzICE9IG51bGwgICYmICBjb3VudCAhPSAwKSB7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYWxsID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoaSE9MCkgYWxsLmFwcGVuZCgiLCAiKTsKKyAgICAgICAgICAgICAgICBhbGwuYXBwZW5kKGxvY2FsZXNbaV0uZ2V0RGlzcGxheU5hbWUoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2dsbihhbGwudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBlcnJsbigiKioqKioqKioqKiBGQUlMOiBaZXJvIGF2YWlsYWJsZSBsb2NhbGVzIG9yIG51bGwgYXJyYXkgcG9pbnRlciIpOworICAgIH0KKworICAgIC8qIFRoaXMgdGVzdCBpcyB0b28gc2xvdzsgd2UgZGlzYWJsZSBpdCBmb3Igbm93CisgICAgcHVibGljIHZvaWQgVGVzdE1vbnN0ZXIoKSB7CisgICAgICAgIGZpbmFsIExvY2FsZVtdIGxvY2FsZXMgPSBEYXRlRm9ybWF0LmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgbG9uZyBjb3VudCA9IGxvY2FsZXMubGVuZ3RoOworICAgICAgICBpZiAobG9jYWxlcyAhPSBudWxsICAmJiAgY291bnQgIT0gMCkgeworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IGxvY2FsZXNbaV0uZ2V0RGlzcGxheU5hbWUoKTsKKyAgICAgICAgICAgICAgICBsb2dsbigiVGVzdGluZyAiICsgbmFtZSArICIuLi4iKTsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBsb2NhbGVUZXN0KGxvY2FsZXNbaV0sIG5hbWUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogVGVzdE1vbnN0ZXIgbG9jYWxlVGVzdCBleGNlcHRpb24iICsgZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgICovCit9CisKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0RGF0ZUZvcm1hdEFQSS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERhdGVGb3JtYXRBUEkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kODJhYmRhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERhdGVGb3JtYXRBUEkuamF2YQpAQCAtMCwwICsxLDIwOCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0RGF0ZUZvcm1hdEFQSS5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzA4LzAxIDIwOjI3OjIxICQgCisgKiAkUmV2aXNpb246IDEuNiAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBKREsgMS40YjEgOiBqYXZhLnRleHQuRm9ybWF0LkludGxUZXN0RGF0ZUZvcm1hdEFQSQorICogU291cmNlIEZpbGU6IGphdmEvdGV4dC9mb3JtYXQvSW50bFRlc3REYXRlRm9ybWF0QVBJLmphdmEKKyAqKi8KKworLyoKKyAgICBAdGVzdCAxLjQgOTgvMDMvMDYKKyAgICBAc3VtbWFyeSB0ZXN0IEludGVybmF0aW9uYWwgRGF0ZSBGb3JtYXQgQVBJCisqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMTk5Ni0yMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0OworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CisKK3B1YmxpYyBjbGFzcyBJbnRsVGVzdERhdGVGb3JtYXRBUEkgZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13aworeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgSW50bFRlc3REYXRlRm9ybWF0QVBJKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIC8vIFRlc3QgdGhhdCB0aGUgZXF1YWxzIG1ldGhvZCB3b3JrcyBjb3JyZWN0bHkuCisgICAgcHVibGljIHZvaWQgVGVzdEVxdWFscygpCisgICAgeworICAgICAgICAvLyBDcmVhdGUgdHdvIG9iamVjdHMgYXQgZGlmZmVyZW50IHN5c3RlbSB0aW1lcworICAgICAgICBEYXRlRm9ybWF0IGEgPSBEYXRlRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgICAgIERhdGUgc3RhcnQgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpLmdldFRpbWUoKTsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIC8vIGNoYW5nZWQgdG8gcmVtb3ZlIGNvbXBpbGVyIHdhcm5pbmdzLgorICAgICAgICAgICAgaWYgKCFzdGFydC5lcXVhbHMoQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKS5nZXRUaW1lKCkpKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7IC8vIFdhaXQgZm9yIHRpbWUgdG8gY2hhbmdlCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgRGF0ZUZvcm1hdCBiID0gRGF0ZUZvcm1hdC5nZXRJbnN0YW5jZSgpOworCisgICAgICAgIGlmICghKGEuZXF1YWxzKGIpKSkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBEYXRlRm9ybWF0IG9iamVjdHMgY3JlYXRlZCBhdCBkaWZmZXJlbnQgdGltZXMgYXJlIHVuZXF1YWwuIik7CisKKyAgICAgICAgLy8gV2h5IGhhcyB0aGlzIHRlc3QgYmVlbiBkaXNhYmxlZD8/PyAtIGFsaXUKKy8vICAgICAgICBpZiAoYiBpbnN0YW5jZW9mIFNpbXBsZURhdGVGb3JtYXQpCisvLyAgICAgICAgeworLy8gICAgICAgICAgICAvL2RvdWJsZSBPTkVfWUVBUiA9IDM2NSoyNCo2MCo2MCoxMDAwLjA7IC8vVGhlIHZhcmlhYmxlIGlzIG5ldmVyIHVzZWQKKy8vICAgICAgICAgICAgdHJ5IHsKKy8vICAgICAgICAgICAgICAgICgoU2ltcGxlRGF0ZUZvcm1hdCliKS5zZXRUd29EaWdpdFN0YXJ0RGF0ZShzdGFydC5nZXRUaW1lKCkgKyA1MCpPTkVfWUVBUik7CisvLyAgICAgICAgICAgICAgICBpZiAoYS5lcXVhbHMoYikpCisvLyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IERhdGVGb3JtYXQgb2JqZWN0cyB3aXRoIGRpZmZlcmVudCB0d28gZGlnaXQgc3RhcnQgZGF0ZXMgYXJlIGVxdWFsLiIpOworLy8gICAgICAgICAgICB9CisvLyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworLy8gICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IHNldFR3b0RpZ2l0U3RhcnREYXRlIGZhaWxlZC4iKTsKKy8vICAgICAgICAgICAgfQorLy8gICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBUaGlzIHRlc3QgY2hlY2tzIHZhcmlvdXMgZ2VuZXJpYyBBUEkgbWV0aG9kcyBpbiBEYXRlRm9ybWF0IHRvIGFjaGlldmUgMTAwJSBBUEkgY292ZXJhZ2UuCisgICAgcHVibGljIHZvaWQgVGVzdEFQSSgpCisgICAgeworICAgICAgICBsb2dsbigiRGF0ZUZvcm1hdCBBUEkgdGVzdC0tLSIpOyBsb2dsbigiIik7CisgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KExvY2FsZS5FTkdMSVNIKTsKKworCisgICAgICAgIC8vID09PT09PT0gVGVzdCBjb25zdHJ1Y3RvcnMKKworICAgICAgICBsb2dsbigiVGVzdGluZyBEYXRlRm9ybWF0IGNvbnN0cnVjdG9ycyIpOworCisgICAgICAgIERhdGVGb3JtYXQgZGVmID0gRGF0ZUZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgICAgICBEYXRlRm9ybWF0IGZyID0gRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5GVUxMLCBMb2NhbGUuRlJFTkNIKTsKKyAgICAgICAgRGF0ZUZvcm1hdCBpdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuTUVESVVNLCBMb2NhbGUuSVRBTElBTik7CisgICAgICAgIERhdGVGb3JtYXQgZGUgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5MT05HLCBEYXRlRm9ybWF0LkxPTkcsIExvY2FsZS5HRVJNQU4pOworCisgICAgICAgIC8vID09PT09PT0gVGVzdCBlcXVhbGl0eQorCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGVxdWFsaXR5IG9wZXJhdG9yIik7CisKKyAgICAgICAgaWYoIGZyLmVxdWFscyhpdCkgKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGVxdWFscyBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vID09PT09PT0gVGVzdCB2YXJpb3VzIGZvcm1hdCgpIG1ldGhvZHMKKworICAgICAgICBsb2dsbigiVGVzdGluZyB2YXJpb3VzIGZvcm1hdCgpIG1ldGhvZHMiKTsKKworICAgICAgICBEYXRlIGQgPSBuZXcgRGF0ZSgobG9uZyk4MzcwMzk5MjgwNDYuMCk7CisKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlczEgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXMyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBTdHJpbmcgcmVzMyA9IG5ldyBTdHJpbmcoKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MxID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zMiA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworCisgICAgICAgIHJlczEgPSBmci5mb3JtYXQoZCwgcmVzMSwgcG9zMSk7CisgICAgICAgIGxvZ2xuKCIiICsgZC5nZXRUaW1lKCkgKyAiIGZvcm1hdHRlZCB0byAiICsgcmVzMSk7CisKKyAgICAgICAgcmVzMiA9IGl0LmZvcm1hdChkLCByZXMyLCBwb3MyKTsKKyAgICAgICAgbG9nbG4oIiIgKyBkLmdldFRpbWUoKSArICIgZm9ybWF0dGVkIHRvICIgKyByZXMyKTsKKworICAgICAgICByZXMzID0gZGUuZm9ybWF0KGQpOworICAgICAgICBsb2dsbigiIiArIGQuZ2V0VGltZSgpICsgIiBmb3JtYXR0ZWQgdG8gIiArIHJlczMpOworCisgICAgICAgIC8vID09PT09PT0gVGVzdCBwYXJzZSgpCisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgcGFyc2UoKSIpOworCisgICAgICAgIFN0cmluZyB0ZXh0ID0gbmV3IFN0cmluZygiMDIvMDMvNzYgMjo1MCBBTSwgQ1NUIik7CisgICAgICAgIE9iamVjdCByZXN1bHQxID0gbmV3IERhdGUoKTsKKyAgICAgICAgRGF0ZSByZXN1bHQyID0gbmV3IERhdGUoKTsKKyAgICAgICAgRGF0ZSByZXN1bHQzID0gbmV3IERhdGUoKTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MwMSA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworCisgICAgICAgIHJlc3VsdDEgPSBkZWYucGFyc2VPYmplY3QodGV4dCwgcG9zKTsKKyAgICAgICAgaWYgKHJlc3VsdDEgPT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBwYXJzZU9iamVjdCgpIGZhaWxlZCBmb3IgIiArIHRleHQpOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKHRleHQgKyAiIHBhcnNlZCBpbnRvICIgKyAoKERhdGUpcmVzdWx0MSkuZ2V0VGltZSgpKTsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0MiA9IGRlZi5wYXJzZSh0ZXh0KTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBwYXJzZSgpIGZhaWxlZCIpOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKHRleHQgKyAiIHBhcnNlZCBpbnRvICIgKyByZXN1bHQyLmdldFRpbWUoKSk7CisKKyAgICAgICAgcmVzdWx0MyA9IGRlZi5wYXJzZSh0ZXh0LCBwb3MwMSk7CisgICAgICAgIGlmIChyZXN1bHQzID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogcGFyc2UoKSBmYWlsZWQgZm9yICIgKyB0ZXh0KTsKKyAgICAgICAgfQorICAgICAgICBsb2dsbih0ZXh0ICsgIiBwYXJzZWQgaW50byAiICsgcmVzdWx0My5nZXRUaW1lKCkpOworCisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGdldHRlcnMgYW5kIHNldHRlcnMKKworICAgICAgICBsb2dsbigiVGVzdGluZyBnZXR0ZXJzIGFuZCBzZXR0ZXJzIik7CisKKyAgICAgICAgZmluYWwgTG9jYWxlW10gbG9jYWxlcyA9IERhdGVGb3JtYXQuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICBsb25nIGNvdW50ID0gbG9jYWxlcy5sZW5ndGg7CisgICAgICAgIGxvZ2xuKCJHb3QgIiArIGNvdW50ICsgIiBsb2NhbGVzIiApOworICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgU3RyaW5nIG5hbWU7CisgICAgICAgICAgICBuYW1lID0gbG9jYWxlc1tpXS5nZXREaXNwbGF5TmFtZSgpOworICAgICAgICAgICAgbG9nbG4obmFtZSk7CisgICAgICAgIH0KKworICAgICAgICBmci5zZXRMZW5pZW50KGl0LmlzTGVuaWVudCgpKTsKKyAgICAgICAgaWYoZnIuaXNMZW5pZW50KCkgIT0gaXQuaXNMZW5pZW50KCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0TGVuaWVudCgpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgZmluYWwgQ2FsZW5kYXIgY2FsID0gZGVmLmdldENhbGVuZGFyKCk7CisgICAgICAgIENhbGVuZGFyIG5ld0NhbCA9IChDYWxlbmRhcikgY2FsLmNsb25lKCk7CisgICAgICAgIGRlLnNldENhbGVuZGFyKG5ld0NhbCk7CisgICAgICAgIGl0LnNldENhbGVuZGFyKG5ld0NhbCk7CisgICAgICAgIGlmKCAhIGRlLmdldENhbGVuZGFyKCkuZXF1YWxzKGl0LmdldENhbGVuZGFyKCkpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldCBDYWxlbmRhcigpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgZmluYWwgTnVtYmVyRm9ybWF0IG5mID0gZGVmLmdldE51bWJlckZvcm1hdCgpOworICAgICAgICBOdW1iZXJGb3JtYXQgbmV3TmYgPSAoTnVtYmVyRm9ybWF0KSBuZi5jbG9uZSgpOworICAgICAgICBkZS5zZXROdW1iZXJGb3JtYXQobmV3TmYpOworICAgICAgICBpdC5zZXROdW1iZXJGb3JtYXQobmV3TmYpOworICAgICAgICBpZiggISBkZS5nZXROdW1iZXJGb3JtYXQoKS5lcXVhbHMoaXQuZ2V0TnVtYmVyRm9ybWF0KCkpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldCBOdW1iZXJGb3JtYXQoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIFRpbWVab25lIHR6ID0gZGVmLmdldFRpbWVab25lKCk7CisgICAgICAgIFRpbWVab25lIG5ld1R6ID0gKFRpbWVab25lKSB0ei5jbG9uZSgpOworICAgICAgICBkZS5zZXRUaW1lWm9uZShuZXdUeik7CisgICAgICAgIGl0LnNldFRpbWVab25lKG5ld1R6KTsKKyAgICAgICAgaWYoICEgZGUuZ2V0VGltZVpvbmUoKS5lcXVhbHMoaXQuZ2V0VGltZVpvbmUoKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0IFRpbWVab25lKCkgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICAvLyA9PT09PT09IFRlc3QgZ2V0U3RhdGljQ2xhc3NJRCgpCisKKy8vICAgICAgICBsb2dsbigiVGVzdGluZyBpbnN0YW5jZW9mKCkiKTsKKworLy8gICAgICAgIHRyeSB7CisvLyAgICAgICAgICAgIERhdGVGb3JtYXQgdGVzdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCk7CisKKy8vICAgICAgICAgICAgaWYgKCEgKHRlc3QgaW5zdGFuY2VvZiBTaW1wbGVEYXRlRm9ybWF0KSkgeworLy8gICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBpbnN0YW5jZW9mIGZhaWxlZCIpOworLy8gICAgICAgICAgICB9CisvLyAgICAgICAgfQorLy8gICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworLy8gICAgICAgICAgICBlcnJsbigiRVJST1I6IENvdWxkbid0IGNyZWF0ZSBhIERhdGVGb3JtYXQiKTsKKy8vICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERhdGVGb3JtYXRBUElDLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0RGF0ZUZvcm1hdEFQSUMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45N2FlOTQxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERhdGVGb3JtYXRBUElDLmphdmEKQEAgLTAsMCArMSwxNjAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERhdGVGb3JtYXRBUElDLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDU6MTAgJCAKKyAqICRSZXZpc2lvbjogMS4yICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjEuOC4xIDogZm9ybWF0IDogSW50bFRlc3REYXRlRm9ybWF0QVBJCisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9kdGZtYXB0cy5jcHAKKyAqKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKKworLyoKKyAqIFRoaXMgaXMgYW4gQVBJIHRlc3QsIG5vdCBhIHVuaXQgdGVzdC4gIEl0IGRvZXNuJ3QgdGVzdCB2ZXJ5IG1hbnkgY2FzZXMsIGFuZCBkb2Vzbid0CisgKiB0cnkgdG8gdGVzdCB0aGUgZnVsbCBmdW5jdGlvbmFsaXR5LiAgSXQganVzdCBjYWxscyBlYWNoIGZ1bmN0aW9uIGluIHRoZSBjbGFzcyBhbmQKKyAqIHZlcmlmaWVzIHRoYXQgaXQgd29ya3Mgb24gYSBiYXNpYyBsZXZlbC4KKyAqLworcHVibGljIGNsYXNzIEludGxUZXN0RGF0ZUZvcm1hdEFQSUMgZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ayB7CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgSW50bFRlc3REYXRlRm9ybWF0QVBJQygpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCBoaWRpbmcgb2YgcGFyc2UoKSBhbmQgZm9ybWF0KCkgQVBJcyBpbiB0aGUgRm9ybWF0IGhpZXJhcmNoeS4KKyAgICAgKiBXZSB0ZXN0IHRoZSBlbnRpcmUgaGllcmFyY2h5LCBldmVuIHRob3VnaCB0aGlzIHRlc3QgaXMgbG9jYXRlZCBpbgorICAgICAqIHRoZSBEYXRlRm9ybWF0IEFQSSB0ZXN0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3ROYW1lSGlkaW5nKCkgeworICAgIAorICAgICAgICAvLyBOLkIuOiBUaGlzIHRlc3QgcGFzc2VzIGlmIGl0IENPTVBJTEVTLCBzaW5jZSBpdCdzIGEgdGVzdCBvZgorICAgICAgICAvLyBjb21waWxlLXRpbWUgbmFtZSBoaWRpbmcuCisgICAgCisgICAgICAgIERhdGUgZGF0ZU9iaiA9IG5ldyBEYXRlKDApOworICAgICAgICBOdW1iZXIgbnVtT2JqID0gbmV3IERvdWJsZSgzLjE0MTU5MjY1MzU4OTc5MzIzODQ2MjY0MzM4MzI3OTUpOworICAgICAgICBTdHJpbmdCdWZmZXIgc3RyQnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgIFN0cmluZyBzdHI7CisgICAgICAgIEZpZWxkUG9zaXRpb24gZnBvcyA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBQYXJzZVBvc2l0aW9uIHBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAKKyAgICAgICAgLy8gRGF0ZUZvcm1hdCBjYWxsaW5nIEZvcm1hdCBBUEkKKyAgICAgICAgeworICAgICAgICAgICAgbG9nbG4oIkRhdGVGb3JtYXQiKTsKKyAgICAgICAgICAgIERhdGVGb3JtYXQgZGF0ZUZtdCA9IERhdGVGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgICAgIGlmIChkYXRlRm10ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzdHIgPSBkYXRlRm10LmZvcm1hdChkYXRlT2JqKTsKKyAgICAgICAgICAgICAgICBzdHJCdWZmZXIgPSBkYXRlRm10LmZvcm1hdChkYXRlT2JqLCBzdHJCdWZmZXIsIGZwb3MpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogQ2FuJ3QgY3JlYXRlIERhdGVGb3JtYXQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyBTaW1wbGVEYXRlRm9ybWF0IGNhbGxpbmcgRm9ybWF0ICYgRGF0ZUZvcm1hdCBBUEkKKyAgICAgICAgeworICAgICAgICAgICAgbG9nbG4oIlNpbXBsZURhdGVGb3JtYXQiKTsKKyAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoKTsKKyAgICAgICAgICAgIC8vIEZvcm1hdCBBUEkKKyAgICAgICAgICAgIHN0ciA9IHNkZi5mb3JtYXQoZGF0ZU9iaik7CisgICAgICAgICAgICBzdHJCdWZmZXIgPSBzZGYuZm9ybWF0KGRhdGVPYmosIHN0ckJ1ZmZlciwgZnBvcyk7CisgICAgICAgICAgICAvLyBEYXRlRm9ybWF0IEFQSQorICAgICAgICAgICAgc3RyQnVmZmVyID0gc2RmLmZvcm1hdChuZXcgRGF0ZSgwKSwgc3RyQnVmZmVyLCBmcG9zKTsKKyAgICAgICAgICAgIHN0ciA9IHNkZi5mb3JtYXQobmV3IERhdGUoMCkpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBzZGYucGFyc2Uoc3RyKTsKKyAgICAgICAgICAgICAgICBzZGYucGFyc2Uoc3RyLCBwcG9zKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbiBwZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihwZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gTnVtYmVyRm9ybWF0IGNhbGxpbmcgRm9ybWF0IEFQSQorICAgICAgICB7CisgICAgICAgICAgICBsb2dsbigiTnVtYmVyRm9ybWF0Iik7CisgICAgICAgICAgICBOdW1iZXJGb3JtYXQgZm10ID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgICAgICAgICBpZiAoZm10ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzdHIgPSBmbXQuZm9ybWF0KG51bU9iaik7CisgICAgICAgICAgICAgICAgc3RyQnVmZmVyID0gZm10LmZvcm1hdChudW1PYmosIHN0ckJ1ZmZlciwgZnBvcyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDYW4ndCBjcmVhdGUgTnVtYmVyRm9ybWF0Iik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gRGVjaW1hbEZvcm1hdCBjYWxsaW5nIEZvcm1hdCAmIE51bWJlckZvcm1hdCBBUEkKKyAgICAgICAgeworICAgICAgICAgICAgbG9nbG4oIkRlY2ltYWxGb3JtYXQiKTsKKyAgICAgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQoKTsKKyAgICAgICAgICAgIC8vIEZvcm1hdCBBUEkKKyAgICAgICAgICAgIHN0ciA9IGZtdC5mb3JtYXQobnVtT2JqKTsKKyAgICAgICAgICAgIHN0ckJ1ZmZlciA9IGZtdC5mb3JtYXQobnVtT2JqLCBzdHJCdWZmZXIsIGZwb3MpOworICAgICAgICAgICAgLy8gTnVtYmVyRm9ybWF0IEFQSQorICAgICAgICAgICAgc3RyID0gZm10LmZvcm1hdCgyLjcxODI4KTsKKyAgICAgICAgICAgIHN0ciA9IGZtdC5mb3JtYXQoMTIzNDU2Nyk7CisgICAgICAgICAgICBzdHJCdWZmZXIgPSBmbXQuZm9ybWF0KDEuNDE0MjEsIHN0ckJ1ZmZlciwgZnBvcyk7CisgICAgICAgICAgICBzdHJCdWZmZXIgPSBmbXQuZm9ybWF0KDk4NzY1NDMsIHN0ckJ1ZmZlciwgZnBvcyk7CisgICAgICAgICAgICBOdW1iZXIgb2JqID0gZm10LnBhcnNlKHN0ciwgcHBvcyk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIG9iaiA9IGZtdC5wYXJzZShzdHIpOworICAgICAgICAgICAgfSBjYXRjaCAoamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uIHBlKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy9JQ1U0SiBoYXZlIG5vdCB0aGUgY2xhc3NlcyBDaG9pY2VGb3JtYXQgYW5kIE1lc3NhZ2VGb3JtYXQKKyAgICAgICAgLyoKKyAgICAgICAgLy8gQ2hvaWNlRm9ybWF0IGNhbGxpbmcgRm9ybWF0ICYgTnVtYmVyRm9ybWF0IEFQSQorICAgICAgICB7CisgICAgICAgICAgICBsb2dsbigiQ2hvaWNlRm9ybWF0Iik7CisgICAgICAgICAgICBDaG9pY2VGb3JtYXQgZm10ID0gbmV3IENob2ljZUZvcm1hdCgiMCNmb298MSNmb29zfDIjZm9vcyIpOworICAgICAgICAgICAgLy8gRm9ybWF0IEFQSQorICAgICAgICAgICAgc3RyID0gZm10LmZvcm1hdChudW1PYmopOworICAgICAgICAgICAgc3RyQnVmZmVyID0gZm10LmZvcm1hdChudW1PYmosIHN0ckJ1ZmZlciwgZnBvcyk7CisgICAgICAgICAgICAvLyBOdW1iZXJGb3JtYXQgQVBJCisgICAgICAgICAgICBzdHIgPSBmbXQuZm9ybWF0KDIuNzE4MjgpOworICAgICAgICAgICAgc3RyID0gZm10LmZvcm1hdCgxMjM0NTY3KTsKKyAgICAgICAgICAgIHN0ckJ1ZmZlciA9IGZtdC5mb3JtYXQoMS40MTQyMSwgc3RyQnVmZmVyLCBmcG9zKTsKKyAgICAgICAgICAgIHN0ckJ1ZmZlciA9IGZtdC5mb3JtYXQoOTg3NjU0Mywgc3RyQnVmZmVyLCBmcG9zKTsKKyAgICAgICAgICAgIE51bWJlciBvYmogPSBmbXQucGFyc2Uoc3RyLCBwcG9zKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgb2JqID0gZm10LnBhcnNlKHN0cik7CisgICAgICAgICAgICB9IGNhdGNoIChqYXZhLnRleHQuUGFyc2VFeGNlcHRpb24gcGUpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIAorICAgICAgICAvLyBNZXNzYWdlRm9ybWF0IGNhbGxpbmcgRm9ybWF0IEFQSQorICAgICAgICB7CisgICAgICAgICAgICBsb2dsbigiTWVzc2FnZUZvcm1hdCIpOworICAgICAgICAgICAgTWVzc2FnZUZvcm1hdCBmbXQgPSBuZXcgTWVzc2FnZUZvcm1hdCgiIik7CisgICAgICAgICAgICAvLyBGb3JtYXQgQVBJCisgICAgICAgICAgICAvLyBXZSB1c2UgZGF0ZU9iaiwgd2hpY2ggTWVzc2FnZUZvcm1hdCBzaG91bGQgcmVqZWN0LgorICAgICAgICAgICAgLy8gV2UncmUgdGVzdGluZyBuYW1lIGhpZGluZywgbm90IHRoZSBmb3JtYXQgbWV0aG9kLgorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBzdHIgPSBmbXQuZm9ybWF0KGRhdGVPYmopOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAvL2UucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHN0ckJ1ZmZlciA9IGZtdC5mb3JtYXQoZGF0ZU9iaiwgc3RyQnVmZmVyLCBmcG9zKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgLy9lLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgICovCisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvSW50bFRlc3REYXRlRm9ybWF0U3ltYm9scy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERhdGVGb3JtYXRTeW1ib2xzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGExMzg5YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvSW50bFRlc3REYXRlRm9ybWF0U3ltYm9scy5qYXZhCkBAIC0wLDAgKzEsMTk1IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvSW50bFRlc3REYXRlRm9ybWF0U3ltYm9scy5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzA4LzAxIDIwOjI3OjIxICQgCisgKiAkUmV2aXNpb246IDEuNCAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBKREsgMS40YjEgOiBqYXZhLnRleHQuRm9ybWF0LkludGxUZXN0RGF0ZUZvcm1hdFN5bWJvbHMKKyAqIFNvdXJjZSBGaWxlOiBqYXZhL3RleHQvZm9ybWF0L0ludGxUZXN0RGF0ZUZvcm1hdFN5bWJvbHMuamF2YQorICoqLworIAorLyoKKyAgICBAdGVzdCAxLjQgOTgvMDMvMDYKKyAgICBAc3VtbWFyeSB0ZXN0IEludGVybmF0aW9uYWwgRGF0ZSBGb3JtYXQgU3ltYm9scworKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0OworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworcHVibGljIGNsYXNzIEludGxUZXN0RGF0ZUZvcm1hdFN5bWJvbHMgZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13aworeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgSW50bFRlc3REYXRlRm9ybWF0U3ltYm9scygpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICAvLyBUZXN0IGdldE1vbnRocworICAgIHB1YmxpYyB2b2lkIFRlc3RHZXRNb250aHMoKQorICAgIHsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gbW9udGg7CisgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzIHN5bWJvbDsKKworICAgICAgICBzeW1ib2w9bmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5nZXREZWZhdWx0KCkpOworCisgICAgICAgIG1vbnRoPXN5bWJvbC5nZXRNb250aHMoKTsKKyAgICAgICAgaW50IGNudCA9IG1vbnRoLmxlbmd0aDsKKworICAgICAgICBsb2dsbigic2l6ZSA9ICIgKyBjbnQpOworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxjbnQ7ICsraSkKKyAgICAgICAgeworICAgICAgICAgICAgbG9nbG4obW9udGhbaV0pOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gVGVzdCB0aGUgQVBJIG9mIERhdGVGb3JtYXRTeW1ib2xzOyBwcmltYXJpbHkgYSBzaW1wbGUgZ2V0L3NldCBzZXQuCisgICAgcHVibGljIHZvaWQgVGVzdFN5bWJvbHMoKQorICAgIHsKKyAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgZnIgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlLkZSRU5DSCk7CisKKyAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgZW4gPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlLkVOR0xJU0gpOworCisgICAgICAgIGlmKGVuLmVxdWFscyhmcikpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogRW5nbGlzaCBEYXRlRm9ybWF0U3ltYm9scyBlcXVhbCB0byBGcmVuY2giKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGp1c3QgZG8gc29tZSBWRVJZIGJhc2ljIHRlc3RzIHRvIG1ha2Ugc3VyZSB0aGF0IGdldC9zZXQgd29yaworCisgICAgICAgIGxvbmcgY291bnQ7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIGVyYXMgPSBlbi5nZXRFcmFzKCk7CisgICAgICAgIGZyLnNldEVyYXMoZXJhcyk7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIGVyYXMxID0gZnIuZ2V0RXJhcygpOworICAgICAgICBjb3VudCA9IGVyYXMubGVuZ3RoOworICAgICAgICBpZiggY291bnQgIT0gZXJhczEubGVuZ3RoKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldEVyYXMoKSBmYWlsZWQgKGRpZmZlcmVudCBzaXplIGFycmF5KSIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZighIGVyYXNbaV0uZXF1YWxzKGVyYXMxW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldEVyYXMoKSBmYWlsZWQgKGRpZmZlcmVudCBzdHJpbmcgdmFsdWVzKSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisKKyAgICAgICAgZmluYWwgU3RyaW5nW10gbW9udGhzID0gZW4uZ2V0TW9udGhzKCk7CisgICAgICAgIGZyLnNldE1vbnRocyhtb250aHMpOworICAgICAgICBmaW5hbCBTdHJpbmdbXSBtb250aHMxID0gZnIuZ2V0TW9udGhzKCk7CisgICAgICAgIGNvdW50ID0gbW9udGhzLmxlbmd0aDsKKyAgICAgICAgaWYoIGNvdW50ICE9IG1vbnRoczEubGVuZ3RoKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldE1vbnRocygpIGZhaWxlZCAoZGlmZmVyZW50IHNpemUgYXJyYXkpIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIGlmKCEgbW9udGhzW2ldLmVxdWFscyhtb250aHMxW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldE1vbnRocygpIGZhaWxlZCAoZGlmZmVyZW50IHN0cmluZyB2YWx1ZXMpIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZmluYWwgU3RyaW5nW10gc2hvcnRNb250aHMgPSBlbi5nZXRTaG9ydE1vbnRocygpOworICAgICAgICBmci5zZXRTaG9ydE1vbnRocyhzaG9ydE1vbnRocyk7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIHNob3J0TW9udGhzMSA9IGZyLmdldFNob3J0TW9udGhzKCk7CisgICAgICAgIGNvdW50ID0gc2hvcnRNb250aHMubGVuZ3RoOworICAgICAgICBpZiggY291bnQgIT0gc2hvcnRNb250aHMxLmxlbmd0aCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRTaG9ydE1vbnRocygpIGZhaWxlZCAoZGlmZmVyZW50IHNpemUgYXJyYXkpIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIGlmKCEgc2hvcnRNb250aHNbaV0uZXF1YWxzKHNob3J0TW9udGhzMVtpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRTaG9ydE1vbnRocygpIGZhaWxlZCAoZGlmZmVyZW50IHN0cmluZyB2YWx1ZXMpIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZmluYWwgU3RyaW5nW10gd2Vla2RheXMgPSBlbi5nZXRXZWVrZGF5cygpOworICAgICAgICBmci5zZXRXZWVrZGF5cyh3ZWVrZGF5cyk7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIHdlZWtkYXlzMSA9IGZyLmdldFdlZWtkYXlzKCk7CisgICAgICAgIGNvdW50ID0gd2Vla2RheXMubGVuZ3RoOworICAgICAgICBpZiggY291bnQgIT0gd2Vla2RheXMxLmxlbmd0aCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRXZWVrZGF5cygpIGZhaWxlZCAoZGlmZmVyZW50IHNpemUgYXJyYXkpIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIGlmKCEgd2Vla2RheXNbaV0uZXF1YWxzKHdlZWtkYXlzMVtpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRXZWVrZGF5cygpIGZhaWxlZCAoZGlmZmVyZW50IHN0cmluZyB2YWx1ZXMpIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZmluYWwgU3RyaW5nW10gc2hvcnRXZWVrZGF5cyA9IGVuLmdldFNob3J0V2Vla2RheXMoKTsKKyAgICAgICAgZnIuc2V0U2hvcnRXZWVrZGF5cyhzaG9ydFdlZWtkYXlzKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gc2hvcnRXZWVrZGF5czEgPSBmci5nZXRTaG9ydFdlZWtkYXlzKCk7CisgICAgICAgIGNvdW50ID0gc2hvcnRXZWVrZGF5cy5sZW5ndGg7CisgICAgICAgIGlmKCBjb3VudCAhPSBzaG9ydFdlZWtkYXlzMS5sZW5ndGgpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0U2hvcnRXZWVrZGF5cygpIGZhaWxlZCAoZGlmZmVyZW50IHNpemUgYXJyYXkpIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIGlmKCEgc2hvcnRXZWVrZGF5c1tpXS5lcXVhbHMoc2hvcnRXZWVrZGF5czFbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0U2hvcnRXZWVrZGF5cygpIGZhaWxlZCAoZGlmZmVyZW50IHN0cmluZyB2YWx1ZXMpIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZmluYWwgU3RyaW5nW10gYW1wbXMgPSBlbi5nZXRBbVBtU3RyaW5ncygpOworICAgICAgICBmci5zZXRBbVBtU3RyaW5ncyhhbXBtcyk7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIGFtcG1zMSA9IGZyLmdldEFtUG1TdHJpbmdzKCk7CisgICAgICAgIGNvdW50ID0gYW1wbXMubGVuZ3RoOworICAgICAgICBpZiggY291bnQgIT0gYW1wbXMxLmxlbmd0aCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRBbVBtU3RyaW5ncygpIGZhaWxlZCAoZGlmZmVyZW50IHNpemUgYXJyYXkpIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIGlmKCEgYW1wbXNbaV0uZXF1YWxzKGFtcG1zMVtpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRBbVBtU3RyaW5ncygpIGZhaWxlZCAoZGlmZmVyZW50IHN0cmluZyB2YWx1ZXMpIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgbG9uZyByb3dDb3VudCA9IDAsIGNvbHVtbkNvdW50ID0gMDsKKyAgICAgICAgZmluYWwgU3RyaW5nW11bXSBzdHJpbmdzID0gZW4uZ2V0Wm9uZVN0cmluZ3MoKTsKKyAgICAgICAgZnIuc2V0Wm9uZVN0cmluZ3Moc3RyaW5ncyk7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdW10gc3RyaW5nczEgPSBmci5nZXRab25lU3RyaW5ncygpOworICAgICAgICByb3dDb3VudCA9IHN0cmluZ3MubGVuZ3RoOworICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgcm93Q291bnQ7IGkrKykgeworICAgICAgICAgICAgY29sdW1uQ291bnQgPSBzdHJpbmdzW2ldLmxlbmd0aDsKKyAgICAgICAgICAgIGZvcihpbnQgaiA9IDA7IGogPCBjb2x1bW5Db3VudDsgaisrKSB7CisgICAgICAgICAgICAgICAgaWYoIHN0cmluZ3NbaV1bal0gIT0gc3RyaW5nczFbaV1bal0gKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0Wm9uZVN0cmluZ3MoKSBmYWlsZWQiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworLy8gICAgICAgIGZpbmFsIFN0cmluZyBwYXR0ZXJuID0gRGF0ZUZvcm1hdFN5bWJvbHMuZ2V0UGF0dGVybkNoYXJzKCk7CisKKyAgICAgICAgU3RyaW5nIGxvY2FsUGF0dGVybjsgLy8gcGF0MSwgcGF0MjsgLy9UaGUgdmFyaWFibGUgaXMgbmV2ZXIgdXNlZAorICAgICAgICBsb2NhbFBhdHRlcm4gPSBlbi5nZXRMb2NhbFBhdHRlcm5DaGFycygpOworICAgICAgICBmci5zZXRMb2NhbFBhdHRlcm5DaGFycyhsb2NhbFBhdHRlcm4pOworICAgICAgICBpZighIGVuLmdldExvY2FsUGF0dGVybkNoYXJzKCkuZXF1YWxzKGZyLmdldExvY2FsUGF0dGVybkNoYXJzKCkpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldExvY2FsUGF0dGVybkNoYXJzKCkgZmFpbGVkIik7CisgICAgICAgIH0KKworCisgICAgICAgIC8vRGF0ZUZvcm1hdFN5bWJvbHMgZm9vID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKCk7IC8vVGhlIHZhcmlhYmxlIGlzIG5ldmVyIHVzZWQKKworICAgICAgICBlbiA9IChEYXRlRm9ybWF0U3ltYm9scykgZnIuY2xvbmUoKTsKKworICAgICAgICBpZighIGVuLmVxdWFscyhmcikpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogQ2xvbmUgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0RGVjaW1hbEZvcm1hdEFQSS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERlY2ltYWxGb3JtYXRBUEkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hZmEyNzMwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERlY2ltYWxGb3JtYXRBUEkuamF2YQpAQCAtMCwwICsxLDIzMiBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0RGVjaW1hbEZvcm1hdEFQSS5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzA4LzAxIDIwOjI3OjIxICQgCisgKiAkUmV2aXNpb246IDEuMyAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBKREsgMS40YjEgOiBqYXZhLnRleHQuRm9ybWF0LkludGxUZXN0RGVjaW1hbEZvcm1hdEFQSQorICogU291cmNlIEZpbGU6IGphdmEvdGV4dC9mb3JtYXQvSW50bFRlc3REZWNpbWFsRm9ybWF0QVBJLmphdmEKKyAqKi8KKyAKKy8qCisgICAgQHRlc3QgMS40IDk4LzAzLzA2CisgICAgQHN1bW1hcnkgdGVzdCBJbnRlcm5hdGlvbmFsIERlY2ltYWwgRm9ybWF0IEFQSQorKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LkZvcm1hdDsKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKKworcHVibGljIGNsYXNzIEludGxUZXN0RGVjaW1hbEZvcm1hdEFQSSBleHRlbmRzIGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrCit7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgSW50bFRlc3REZWNpbWFsRm9ybWF0QVBJKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIC8vIFRoaXMgdGVzdCBjaGVja3MgdmFyaW91cyBnZW5lcmljIEFQSSBtZXRob2RzIGluIERlY2ltYWxGb3JtYXQgdG8gYWNoaWV2ZSAxMDAlIEFQSSBjb3ZlcmFnZS4KKyAgICBwdWJsaWMgdm9pZCBUZXN0QVBJKCkKKyAgICB7CisgICAgICAgIGxvZ2xuKCJEZWNpbWFsRm9ybWF0IEFQSSB0ZXN0LS0tIik7IGxvZ2xuKCIiKTsKKyAgICAgICAgTG9jYWxlLnNldERlZmF1bHQoTG9jYWxlLkVOR0xJU0gpOworCisgICAgICAgIC8vID09PT09PT0gVGVzdCBjb25zdHJ1Y3RvcnMKKworICAgICAgICBsb2dsbigiVGVzdGluZyBEZWNpbWFsRm9ybWF0IGNvbnN0cnVjdG9ycyIpOworCisgICAgICAgIERlY2ltYWxGb3JtYXQgZGVmID0gbmV3IERlY2ltYWxGb3JtYXQoKTsKKworICAgICAgICBmaW5hbCBTdHJpbmcgcGF0dGVybiA9IG5ldyBTdHJpbmcoIiMsIyMwLiMgRkYiKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBwYXQgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgcGF0ID0gbmV3IERlY2ltYWxGb3JtYXQocGF0dGVybik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IENvdWxkIG5vdCBjcmVhdGUgRGVjaW1hbEZvcm1hdCAocGF0dGVybikiKTsKKyAgICAgICAgfQorCisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIHN5bWJvbHMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLkZSRU5DSCk7CisKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBjdXN0MSA9IG5ldyBEZWNpbWFsRm9ybWF0KHBhdHRlcm4sIHN5bWJvbHMpOworCisgICAgICAgIC8vID09PT09PT0gVGVzdCBjbG9uZSgpLCBhc3NpZ25tZW50LCBhbmQgZXF1YWxpdHkKKworICAgICAgICBsb2dsbigiVGVzdGluZyBjbG9uZSgpIGFuZCBlcXVhbGl0eSBvcGVyYXRvcnMiKTsKKworICAgICAgICBGb3JtYXQgY2xvbmUgPSAoRm9ybWF0KSBkZWYuY2xvbmUoKTsKKyAgICAgICAgaWYoICEgZGVmLmVxdWFscyhjbG9uZSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogQ2xvbmUoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vID09PT09PT0gVGVzdCB2YXJpb3VzIGZvcm1hdCgpIG1ldGhvZHMKKworICAgICAgICBsb2dsbigiVGVzdGluZyB2YXJpb3VzIGZvcm1hdCgpIG1ldGhvZHMiKTsKKworLy8gICAgICAgIGZpbmFsIGRvdWJsZSBkID0gLTEwNDU2LjAwMzc7IC8vIHRoaXMgYXBwZWFycyBhcyAtMTA0NTYuMDAzNzAwMDAwMDAxIG9uIE5UCisvLyAgICAgICAgZmluYWwgZG91YmxlIGQgPSAtMS4wNDU2MDAzN2UtNDsgLy8gdGhpcyBhcHBlYXJzIGFzIC0xLjA0NTYwMDM3MDAwMDAwMDJFLTQgb24gTlQKKyAgICAgICAgZmluYWwgZG91YmxlIGQgPSAtMTA0NTYuMDAzNzAwMDAwMDAwMDA7IC8vIHRoaXMgd29ya3MhCisgICAgICAgIGZpbmFsIGxvbmcgbCA9IDEwMDAwMDAwMDsKKyAgICAgICAgbG9nbG4oIiIgKyBkICsgIiBpcyB0aGUgZG91YmxlIHZhbHVlIik7CisKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlczEgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXMyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzMyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlczQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zMSA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBGaWVsZFBvc2l0aW9uIHBvczIgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MzID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zNCA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworCisgICAgICAgIHJlczEgPSBkZWYuZm9ybWF0KGQsIHJlczEsIHBvczEpOworICAgICAgICBsb2dsbigiIiArIGQgKyAiIGZvcm1hdHRlZCB0byAiICsgcmVzMSk7CisKKyAgICAgICAgcmVzMiA9IHBhdC5mb3JtYXQobCwgcmVzMiwgcG9zMik7CisgICAgICAgIGxvZ2xuKCIiICsgbCArICIgZm9ybWF0dGVkIHRvICIgKyByZXMyKTsKKworICAgICAgICByZXMzID0gY3VzdDEuZm9ybWF0KGQsIHJlczMsIHBvczMpOworICAgICAgICBsb2dsbigiIiArIGQgKyAiIGZvcm1hdHRlZCB0byAiICsgcmVzMyk7CisKKyAgICAgICAgcmVzNCA9IGN1c3QxLmZvcm1hdChsLCByZXM0LCBwb3M0KTsKKyAgICAgICAgbG9nbG4oIiIgKyBsICsgIiBmb3JtYXR0ZWQgdG8gIiArIHJlczQpOworCisgICAgICAgIC8vID09PT09PT0gVGVzdCBwYXJzZSgpCisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgcGFyc2UoKSIpOworCisgICAgICAgIFN0cmluZyB0ZXh0ID0gbmV3IFN0cmluZygiLTEwLDQ1Ni4wMDM3Iik7CisgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIFN0cmluZyBwYXR0ID0gbmV3IFN0cmluZygiIywjIzAuIyIpOworICAgICAgICBwYXQuYXBwbHlQYXR0ZXJuKHBhdHQpOworICAgICAgICBkb3VibGUgZDIgPSBwYXQucGFyc2UodGV4dCwgcG9zKS5kb3VibGVWYWx1ZSgpOworICAgICAgICBpZihkMiAhPSBkKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IFJvdW5kdHJpcCBmYWlsZWQgKHZpYSBwYXJzZSgiICsgZDIgKyAiICE9ICIgKyBkICsgIikpIGZvciAiICsgdGV4dCk7CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4odGV4dCArICIgcGFyc2VkIGludG8gIiArIChsb25nKSBkMik7CisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGdldHRlcnMgYW5kIHNldHRlcnMKKworICAgICAgICBsb2dsbigiVGVzdGluZyBnZXR0ZXJzIGFuZCBzZXR0ZXJzIik7CisKKyAgICAgICAgZmluYWwgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltcyA9IHBhdC5nZXREZWNpbWFsRm9ybWF0U3ltYm9scygpOworICAgICAgICBkZWYuc2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoc3ltcyk7CisgICAgICAgIGlmKCAhIHBhdC5nZXREZWNpbWFsRm9ybWF0U3ltYm9scygpLmVxdWFscyhkZWYuZ2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0IERlY2ltYWxGb3JtYXRTeW1ib2xzKCkgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgcG9zUHJlZml4OworICAgICAgICBwYXQuc2V0UG9zaXRpdmVQcmVmaXgoIisiKTsKKyAgICAgICAgcG9zUHJlZml4ID0gcGF0LmdldFBvc2l0aXZlUHJlZml4KCk7CisgICAgICAgIGxvZ2xuKCJQb3NpdGl2ZSBwcmVmaXggKHNob3VsZCBiZSArKTogIiArIHBvc1ByZWZpeCk7CisgICAgICAgIGlmKHBvc1ByZWZpeCAhPSAiKyIpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0UG9zaXRpdmVQcmVmaXgoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBuZWdQcmVmaXg7CisgICAgICAgIHBhdC5zZXROZWdhdGl2ZVByZWZpeCgiLSIpOworICAgICAgICBuZWdQcmVmaXggPSBwYXQuZ2V0TmVnYXRpdmVQcmVmaXgoKTsKKyAgICAgICAgbG9nbG4oIk5lZ2F0aXZlIHByZWZpeCAoc2hvdWxkIGJlIC0pOiAiICsgbmVnUHJlZml4KTsKKyAgICAgICAgaWYobmVnUHJlZml4ICE9ICItIikgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXROZWdhdGl2ZVByZWZpeCgpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIHBvc1N1ZmZpeDsKKyAgICAgICAgcGF0LnNldFBvc2l0aXZlU3VmZml4KCJfIik7CisgICAgICAgIHBvc1N1ZmZpeCA9IHBhdC5nZXRQb3NpdGl2ZVN1ZmZpeCgpOworICAgICAgICBsb2dsbigiUG9zaXRpdmUgc3VmZml4IChzaG91bGQgYmUgXyk6ICIgKyBwb3NTdWZmaXgpOworICAgICAgICBpZihwb3NTdWZmaXggIT0gIl8iKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldFBvc2l0aXZlU3VmZml4KCkgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgbmVnU3VmZml4OworICAgICAgICBwYXQuc2V0TmVnYXRpdmVTdWZmaXgoIn4iKTsKKyAgICAgICAgbmVnU3VmZml4ID0gcGF0LmdldE5lZ2F0aXZlU3VmZml4KCk7CisgICAgICAgIGxvZ2xuKCJOZWdhdGl2ZSBzdWZmaXggKHNob3VsZCBiZSB+KTogIiArIG5lZ1N1ZmZpeCk7CisgICAgICAgIGlmKG5lZ1N1ZmZpeCAhPSAifiIpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0TmVnYXRpdmVTdWZmaXgoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGxvbmcgbXVsdGlwbGllciA9IDA7CisgICAgICAgIHBhdC5zZXRNdWx0aXBsaWVyKDgpOworICAgICAgICBtdWx0aXBsaWVyID0gcGF0LmdldE11bHRpcGxpZXIoKTsKKyAgICAgICAgbG9nbG4oIk11bHRpcGxpZXIgKHNob3VsZCBiZSA4KTogIiArIG11bHRpcGxpZXIpOworICAgICAgICBpZihtdWx0aXBsaWVyICE9IDgpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0TXVsdGlwbGllcigpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgaW50IGdyb3VwaW5nU2l6ZSA9IDA7CisgICAgICAgIHBhdC5zZXRHcm91cGluZ1NpemUoMik7CisgICAgICAgIGdyb3VwaW5nU2l6ZSA9IHBhdC5nZXRHcm91cGluZ1NpemUoKTsKKyAgICAgICAgbG9nbG4oIkdyb3VwaW5nIHNpemUgKHNob3VsZCBiZSAyKTogIiArIChsb25nKSBncm91cGluZ1NpemUpOworICAgICAgICBpZihncm91cGluZ1NpemUgIT0gMikgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRHcm91cGluZ1NpemUoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIHBhdC5zZXREZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24odHJ1ZSk7CisgICAgICAgIGJvb2xlYW4gdGYgPSBwYXQuaXNEZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24oKTsKKyAgICAgICAgbG9nbG4oIkRlY2ltYWxTZXBhcmF0b3JJc0Fsd2F5c1Nob3duIChzaG91bGQgYmUgdHJ1ZSkgaXMgIiArICAodGYgPyAidHJ1ZSIgOiAiZmFsc2UiKSk7CisgICAgICAgIGlmKHRmICE9IHRydWUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0RGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duKCkgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgZnVua3lQYXQ7CisgICAgICAgIGZ1bmt5UGF0ID0gcGF0LnRvUGF0dGVybigpOworICAgICAgICBsb2dsbigiUGF0dGVybiBpcyAiICsgZnVua3lQYXQpOworCisgICAgICAgIFN0cmluZyBsb2NQYXQ7CisgICAgICAgIGxvY1BhdCA9IHBhdC50b0xvY2FsaXplZFBhdHRlcm4oKTsKKyAgICAgICAgbG9nbG4oIkxvY2FsaXplZCBwYXR0ZXJuIGlzICIgKyBsb2NQYXQpOworCisgICAgICAgIC8vID09PT09PT0gVGVzdCBhcHBseVBhdHRlcm4oKQorCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGFwcGx5UGF0dGVybigpIik7CisKKyAgICAgICAgU3RyaW5nIHAxID0gbmV3IFN0cmluZygiIywjIzAuMCM7KCMsIyMwLjAjKSIpOworICAgICAgICBsb2dsbigiQXBwbHlpbmcgcGF0dGVybiAiICsgcDEpOworICAgICAgICBwYXQuYXBwbHlQYXR0ZXJuKHAxKTsKKyAgICAgICAgU3RyaW5nIHMyOworICAgICAgICBzMiA9IHBhdC50b1BhdHRlcm4oKTsKKyAgICAgICAgbG9nbG4oIkV4dHJhY3RlZCBwYXR0ZXJuIGlzICIgKyBzMik7CisgICAgICAgIGlmKCAhIHMyLmVxdWFscyhwMSkgKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHRvUGF0dGVybigpIHJlc3VsdCBkaWQgbm90IG1hdGNoIHBhdHRlcm4gYXBwbGllZCIpOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIHAyID0gbmV3IFN0cmluZygiIywjIzAuMCMgRkY7KCMsIyMwLjAjIEZGKSIpOworICAgICAgICBsb2dsbigiQXBwbHlpbmcgcGF0dGVybiAiICsgcDIpOworICAgICAgICBwYXQuYXBwbHlMb2NhbGl6ZWRQYXR0ZXJuKHAyKTsKKyAgICAgICAgU3RyaW5nIHMzOworICAgICAgICBzMyA9IHBhdC50b0xvY2FsaXplZFBhdHRlcm4oKTsKKyAgICAgICAgbG9nbG4oIkV4dHJhY3RlZCBwYXR0ZXJuIGlzICIgKyBzMyk7CisgICAgICAgIGlmKCAhIHMzLmVxdWFscyhwMikgKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHRvTG9jYWxpemVkUGF0dGVybigpIHJlc3VsdCBkaWQgbm90IG1hdGNoIHBhdHRlcm4gYXBwbGllZCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGdldFN0YXRpY0NsYXNzSUQoKQorCisvLyAgICAgICAgbG9nbG4oIlRlc3RpbmcgaW5zdGFuY2VvZigpIik7CisKKy8vICAgICAgICB0cnkgeworIC8vICAgICAgICAgICBOdW1iZXJGb3JtYXQgdGVzdCA9IG5ldyBEZWNpbWFsRm9ybWF0KCk7CisKKy8vICAgICAgICAgICAgaWYgKCEgKHRlc3QgaW5zdGFuY2VvZiBEZWNpbWFsRm9ybWF0KSkgeworLy8gICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBpbnN0YW5jZW9mIGZhaWxlZCIpOworLy8gICAgICAgICAgICB9CisvLyAgICAgICAgfQorLy8gICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworLy8gICAgICAgICAgICBlcnJsbigiRVJST1I6IENvdWxkbid0IGNyZWF0ZSBhIERlY2ltYWxGb3JtYXQiKTsKKy8vICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERlY2ltYWxGb3JtYXRBUElDLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0RGVjaW1hbEZvcm1hdEFQSUMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iMjNhZjdiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERlY2ltYWxGb3JtYXRBUElDLmphdmEKQEAgLTAsMCArMSwyODggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERlY2ltYWxGb3JtYXRBUElDLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDU6MTAgJCAKKyAqICRSZXZpc2lvbjogMS4yICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjEuOC4xIDogZm9ybWF0IDogSW50bFRlc3REZWNpbWFsRm9ybWF0QVBJCisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9kY2ZtYXB0cy5jcHAKKyAqKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CisKKy8vIFRoaXMgaXMgYW4gQVBJIHRlc3QsIG5vdCBhIHVuaXQgdGVzdC4gIEl0IGRvZXNuJ3QgdGVzdCB2ZXJ5IG1hbnkgY2FzZXMsIGFuZCBkb2Vzbid0CisvLyB0cnkgdG8gdGVzdCB0aGUgZnVsbCBmdW5jdGlvbmFsaXR5LiAgSXQganVzdCBjYWxscyBlYWNoIGZ1bmN0aW9uIGluIHRoZSBjbGFzcyBhbmQKKy8vIHZlcmlmaWVzIHRoYXQgaXQgd29ya3Mgb24gYSBiYXNpYyBsZXZlbC4KK3B1YmxpYyBjbGFzcyBJbnRsVGVzdERlY2ltYWxGb3JtYXRBUElDIGV4dGVuZHMgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2sgeworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpICB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IEludGxUZXN0RGVjaW1hbEZvcm1hdEFQSUMoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgLy8gVGhpcyB0ZXN0IGNoZWNrcyB2YXJpb3VzIGdlbmVyaWMgQVBJIG1ldGhvZHMgaW4gRGVjaW1hbEZvcm1hdCB0byBhY2hpZXZlIDEwMCUgQVBJIGNvdmVyYWdlLgorICAgIHB1YmxpYyB2b2lkIFRlc3RBUEkoKSB7CisgICAgICAgIAorICAgICAgICBsb2dsbigiRGVjaW1hbEZvcm1hdCBBUEkgdGVzdC0tLSIpOworICAgICAgICBsb2dsbigiIik7CisgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KExvY2FsZS5FTkdMSVNIKTsKKyAgICAKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGNvbnN0cnVjdG9ycworICAgIAorICAgICAgICBsb2dsbigiVGVzdGluZyBEZWNpbWFsRm9ybWF0IGNvbnN0cnVjdG9ycyIpOworICAgIAorICAgICAgICBEZWNpbWFsRm9ybWF0IGRlZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCk7CisgICAgCisgICAgICAgIGZpbmFsIFN0cmluZyBwYXR0ZXJuID0gbmV3IFN0cmluZygiIywjIzAuIyBGRiIpOworICAgICAgICBEZWNpbWFsRm9ybWF0IHBhdCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBwYXQgPSBuZXcgRGVjaW1hbEZvcm1hdChwYXR0ZXJuKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogQ291bGQgbm90IGNyZWF0ZSBEZWNpbWFsRm9ybWF0IChwYXR0ZXJuKSIpOworICAgICAgICB9CisgICAgCisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIHN5bWJvbHMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLkZSRU5DSCk7CisgICAgCisgICAgICAgIERlY2ltYWxGb3JtYXQgY3VzdDEgPSBuZXcgRGVjaW1hbEZvcm1hdChwYXR0ZXJuLCBzeW1ib2xzKTsKKyAgICAKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGNsb25lKCksIGFzc2lnbm1lbnQsIGFuZCBlcXVhbGl0eQorICAgIAorICAgICAgICBsb2dsbigiVGVzdGluZyBjbG9uZSgpIGFuZCBlcXVhbGl0eSBvcGVyYXRvcnMiKTsKKyAgICAKKyAgICAgICAgRm9ybWF0IGNsb25lID0gKEZvcm1hdCkgZGVmLmNsb25lKCk7CisgICAgICAgIGlmICghZGVmLmVxdWFscyhjbG9uZSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogQ2xvbmUoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyA9PT09PT09IFRlc3QgdmFyaW91cyBmb3JtYXQoKSBtZXRob2RzCisgICAgCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIHZhcmlvdXMgZm9ybWF0KCkgbWV0aG9kcyIpOworICAgIAorICAgICAgICAvLyAgICAgICAgZmluYWwgZG91YmxlIGQgPSAtMTA0NTYuMDAzNzsgLy8gdGhpcyBhcHBlYXJzIGFzIC0xMDQ1Ni4wMDM3MDAwMDAwMDEgb24gTlQKKyAgICAgICAgLy8gICAgICAgIGZpbmFsIGRvdWJsZSBkID0gLTEuMDQ1NjAwMzdlLTQ7IC8vIHRoaXMgYXBwZWFycyBhcyAtMS4wNDU2MDAzNzAwMDAwMDAyRS00IG9uIE5UCisgICAgICAgIGZpbmFsIGRvdWJsZSBkID0gLTEwNDU2LjAwMzcwMDAwMDAwMDAwOyAvLyB0aGlzIHdvcmtzIQorICAgICAgICBmaW5hbCBsb25nIGwgPSAxMDAwMDAwMDA7CisgICAgICAgIGxvZ2xuKCIiICsgRG91YmxlLnRvU3RyaW5nKGQpICsgIiBpcyB0aGUgZG91YmxlIHZhbHVlIik7CisgICAgCisgICAgICAgIFN0cmluZ0J1ZmZlciByZXMxID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzMiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlczMgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXM0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBGaWVsZFBvc2l0aW9uIHBvczEgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MyID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zMyA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBGaWVsZFBvc2l0aW9uIHBvczQgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAKKyAgICAgICAgcmVzMSA9IGRlZi5mb3JtYXQoZCwgcmVzMSwgcG9zMSk7CisgICAgICAgIGxvZ2xuKCIiICsgRG91YmxlLnRvU3RyaW5nKGQpICsgIiBmb3JtYXR0ZWQgdG8gIiArIHJlczEpOworICAgIAorICAgICAgICByZXMyID0gcGF0LmZvcm1hdChsLCByZXMyLCBwb3MyKTsKKyAgICAgICAgbG9nbG4oIiIgKyBsICsgIiBmb3JtYXR0ZWQgdG8gIiArIHJlczIpOworICAgIAorICAgICAgICByZXMzID0gY3VzdDEuZm9ybWF0KGQsIHJlczMsIHBvczMpOworICAgICAgICBsb2dsbigiIiArIERvdWJsZS50b1N0cmluZyhkKSArICIgZm9ybWF0dGVkIHRvICIgKyByZXMzKTsKKyAgICAKKyAgICAgICAgcmVzNCA9IGN1c3QxLmZvcm1hdChsLCByZXM0LCBwb3M0KTsKKyAgICAgICAgbG9nbG4oIiIgKyBsICsgIiBmb3JtYXR0ZWQgdG8gIiArIHJlczQpOworICAgIAorICAgICAgICAvLyA9PT09PT09IFRlc3QgcGFyc2UoKQorICAgIAorICAgICAgICBsb2dsbigiVGVzdGluZyBwYXJzZSgpIik7CisgICAgCisgICAgICAgIFN0cmluZyB0ZXh0ID0gbmV3IFN0cmluZygiLTEwLDQ1Ni4wMDM3Iik7CisgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIFN0cmluZyBwYXR0ID0gbmV3IFN0cmluZygiIywjIzAuIyIpOworICAgICAgICBwYXQuYXBwbHlQYXR0ZXJuKHBhdHQpOworICAgICAgICBkb3VibGUgZDIgPSBwYXQucGFyc2UodGV4dCwgcG9zKS5kb3VibGVWYWx1ZSgpOworICAgICAgICBpZiAoZDIgIT0gZCkgeworICAgICAgICAgICAgZXJybG4oCisgICAgICAgICAgICAgICAgIkVSUk9SOiBSb3VuZHRyaXAgZmFpbGVkICh2aWEgcGFyc2UoIiArIERvdWJsZS50b1N0cmluZyhkMikgKyAiICE9ICIgKyBEb3VibGUudG9TdHJpbmcoZCkgKyAiKSkgZm9yICIgKyB0ZXh0KTsgCisgICAgICAgIH0KKyAgICAgICAgbG9nbG4odGV4dCArICIgcGFyc2VkIGludG8gIiArIChsb25nKSBkMik7CisgICAgCisgICAgICAgIC8vID09PT09PT0gVGVzdCBnZXR0ZXJzIGFuZCBzZXR0ZXJzCisgICAgCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGdldHRlcnMgYW5kIHNldHRlcnMiKTsKKyAgICAKKyAgICAgICAgZmluYWwgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltcyA9IHBhdC5nZXREZWNpbWFsRm9ybWF0U3ltYm9scygpOworICAgICAgICBkZWYuc2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoc3ltcyk7CisgICAgICAgIGlmICghcGF0LmdldERlY2ltYWxGb3JtYXRTeW1ib2xzKCkuZXF1YWxzKGRlZi5nZXREZWNpbWFsRm9ybWF0U3ltYm9scygpKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXQgRGVjaW1hbEZvcm1hdFN5bWJvbHMoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBTdHJpbmcgcG9zUHJlZml4OworICAgICAgICBwYXQuc2V0UG9zaXRpdmVQcmVmaXgoIisiKTsKKyAgICAgICAgcG9zUHJlZml4ID0gcGF0LmdldFBvc2l0aXZlUHJlZml4KCk7CisgICAgICAgIGxvZ2xuKCJQb3NpdGl2ZSBwcmVmaXggKHNob3VsZCBiZSArKTogIiArIHBvc1ByZWZpeCk7CisgICAgICAgIGlmIChwb3NQcmVmaXggIT0gIisiKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldFBvc2l0aXZlUHJlZml4KCkgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgU3RyaW5nIG5lZ1ByZWZpeDsKKyAgICAgICAgcGF0LnNldE5lZ2F0aXZlUHJlZml4KCItIik7CisgICAgICAgIG5lZ1ByZWZpeCA9IHBhdC5nZXROZWdhdGl2ZVByZWZpeCgpOworICAgICAgICBsb2dsbigiTmVnYXRpdmUgcHJlZml4IChzaG91bGQgYmUgLSk6ICIgKyBuZWdQcmVmaXgpOworICAgICAgICBpZiAobmVnUHJlZml4ICE9ICItIikgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXROZWdhdGl2ZVByZWZpeCgpIGZhaWxlZCIpOworICAgICAgICB9CisgICAgCisgICAgICAgIFN0cmluZyBwb3NTdWZmaXg7CisgICAgICAgIHBhdC5zZXRQb3NpdGl2ZVN1ZmZpeCgiXyIpOworICAgICAgICBwb3NTdWZmaXggPSBwYXQuZ2V0UG9zaXRpdmVTdWZmaXgoKTsKKyAgICAgICAgbG9nbG4oIlBvc2l0aXZlIHN1ZmZpeCAoc2hvdWxkIGJlIF8pOiAiICsgcG9zU3VmZml4KTsKKyAgICAgICAgaWYgKHBvc1N1ZmZpeCAhPSAiXyIpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0UG9zaXRpdmVTdWZmaXgoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBTdHJpbmcgbmVnU3VmZml4OworICAgICAgICBwYXQuc2V0TmVnYXRpdmVTdWZmaXgoIn4iKTsKKyAgICAgICAgbmVnU3VmZml4ID0gcGF0LmdldE5lZ2F0aXZlU3VmZml4KCk7CisgICAgICAgIGxvZ2xuKCJOZWdhdGl2ZSBzdWZmaXggKHNob3VsZCBiZSB+KTogIiArIG5lZ1N1ZmZpeCk7CisgICAgICAgIGlmIChuZWdTdWZmaXggIT0gIn4iKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldE5lZ2F0aXZlU3VmZml4KCkgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgbG9uZyBtdWx0aXBsaWVyID0gMDsKKyAgICAgICAgcGF0LnNldE11bHRpcGxpZXIoOCk7CisgICAgICAgIG11bHRpcGxpZXIgPSBwYXQuZ2V0TXVsdGlwbGllcigpOworICAgICAgICBsb2dsbigiTXVsdGlwbGllciAoc2hvdWxkIGJlIDgpOiAiICsgbXVsdGlwbGllcik7CisgICAgICAgIGlmIChtdWx0aXBsaWVyICE9IDgpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0TXVsdGlwbGllcigpIGZhaWxlZCIpOworICAgICAgICB9CisgICAgCisgICAgICAgIGludCBncm91cGluZ1NpemUgPSAwOworICAgICAgICBwYXQuc2V0R3JvdXBpbmdTaXplKDIpOworICAgICAgICBncm91cGluZ1NpemUgPSBwYXQuZ2V0R3JvdXBpbmdTaXplKCk7CisgICAgICAgIGxvZ2xuKCJHcm91cGluZyBzaXplIChzaG91bGQgYmUgMik6ICIgKyAobG9uZykgZ3JvdXBpbmdTaXplKTsKKyAgICAgICAgaWYgKGdyb3VwaW5nU2l6ZSAhPSAyKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldEdyb3VwaW5nU2l6ZSgpIGZhaWxlZCIpOworICAgICAgICB9CisgICAgCisgICAgICAgIHBhdC5zZXREZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24odHJ1ZSk7CisgICAgICAgIGJvb2xlYW4gdGYgPSBwYXQuaXNEZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24oKTsKKyAgICAgICAgbG9nbG4oCisgICAgICAgICAgICAiRGVjaW1hbFNlcGFyYXRvcklzQWx3YXlzU2hvd24gKHNob3VsZCBiZSB0cnVlKSBpcyAiICsgKHRmID8gInRydWUiIDogImZhbHNlIikpOyAKKyAgICAgICAgaWYgKHRmICE9IHRydWUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0RGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duKCkgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgU3RyaW5nIGZ1bmt5UGF0OworICAgICAgICBmdW5reVBhdCA9IHBhdC50b1BhdHRlcm4oKTsKKyAgICAgICAgbG9nbG4oIlBhdHRlcm4gaXMgIiArIGZ1bmt5UGF0KTsKKyAgICAKKyAgICAgICAgU3RyaW5nIGxvY1BhdDsKKyAgICAgICAgbG9jUGF0ID0gcGF0LnRvTG9jYWxpemVkUGF0dGVybigpOworICAgICAgICBsb2dsbigiTG9jYWxpemVkIHBhdHRlcm4gaXMgIiArIGxvY1BhdCk7CisgICAgCisgICAgICAgIC8vID09PT09PT0gVGVzdCBhcHBseVBhdHRlcm4oKQorICAgIAorICAgICAgICBsb2dsbigiVGVzdGluZyBhcHBseVBhdHRlcm4oKSIpOworICAgIAorICAgICAgICBTdHJpbmcgcDEgPSBuZXcgU3RyaW5nKCIjLCMjMC4wIzsoIywjIzAuMCMpIik7CisgICAgICAgIGxvZ2xuKCJBcHBseWluZyBwYXR0ZXJuICIgKyBwMSk7CisgICAgICAgIHBhdC5hcHBseVBhdHRlcm4ocDEpOworICAgICAgICBTdHJpbmcgczI7CisgICAgICAgIHMyID0gcGF0LnRvUGF0dGVybigpOworICAgICAgICBsb2dsbigiRXh0cmFjdGVkIHBhdHRlcm4gaXMgIiArIHMyKTsKKyAgICAgICAgaWYgKCFzMi5lcXVhbHMocDEpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHRvUGF0dGVybigpIHJlc3VsdCBkaWQgbm90IG1hdGNoIHBhdHRlcm4gYXBwbGllZCIpOworICAgICAgICB9CisgICAgCisgICAgICAgIFN0cmluZyBwMiA9IG5ldyBTdHJpbmcoIiMsIyMwLjAjIEZGOygjLCMjMC4wIyBGRikiKTsKKyAgICAgICAgbG9nbG4oIkFwcGx5aW5nIHBhdHRlcm4gIiArIHAyKTsKKyAgICAgICAgcGF0LmFwcGx5TG9jYWxpemVkUGF0dGVybihwMik7CisgICAgICAgIFN0cmluZyBzMzsKKyAgICAgICAgczMgPSBwYXQudG9Mb2NhbGl6ZWRQYXR0ZXJuKCk7CisgICAgICAgIGxvZ2xuKCJFeHRyYWN0ZWQgcGF0dGVybiBpcyAiICsgczMpOworICAgICAgICBpZiAoIXMzLmVxdWFscyhwMikpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogdG9Mb2NhbGl6ZWRQYXR0ZXJuKCkgcmVzdWx0IGRpZCBub3QgbWF0Y2ggcGF0dGVybiBhcHBsaWVkIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGdldFN0YXRpY0NsYXNzSUQoKQorICAgIAorICAgICAgICAvLyAgICAgICAgbG9nbG4oIlRlc3RpbmcgaW5zdGFuY2VvZigpIik7CisgICAgCisgICAgICAgIC8vICAgICAgICB0cnkgeworICAgICAgICAvLyAgICAgICAgICAgTnVtYmVyRm9ybWF0IHRlc3QgPSBuZXcgRGVjaW1hbEZvcm1hdCgpOworICAgIAorICAgICAgICAvLyAgICAgICAgICAgIGlmICghICh0ZXN0IGluc3RhbmNlb2YgRGVjaW1hbEZvcm1hdCkpIHsKKyAgICAgICAgLy8gICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBpbnN0YW5jZW9mIGZhaWxlZCIpOworICAgICAgICAvLyAgICAgICAgICAgIH0KKyAgICAgICAgLy8gICAgICAgIH0KKyAgICAgICAgLy8gICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAvLyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogQ291bGRuJ3QgY3JlYXRlIGEgRGVjaW1hbEZvcm1hdCIpOworICAgICAgICAvLyAgICAgICAgfQorICAgICAgIAorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RSb3VuZGluZygpIHsKKyAgICAgICAgZG91YmxlIFJvdW5kaW5nbnVtYmVyID0gMi41NTsKKyAgICAgICAgZG91YmxlIFJvdW5kaW5nbnVtYmVyMSA9IC0yLjU1OworICAgICAgICAvLysyLjU1IHJlc3VsdHMgICAtMi41NSByZXN1bHRzCisgICAgICAgIGRvdWJsZSByZXN1bHRbXSA9IHsKKyAgICAgICAgICAgIDMsIC0zLCAgIAorICAgICAgICAgICAgMiwgLTIsIAorICAgICAgICAgICAgMywgLTIsIAorICAgICAgICAgICAgMiwgLTMsIAorICAgICAgICAgICAgMywgLTMsIAorICAgICAgICAgICAgMywgLTMsIAorICAgICAgICAgICAgMywgLTMgCisgICAgICAgIH07CisgICAgICAgIERlY2ltYWxGb3JtYXQgcGF0ID0gbmV3IERlY2ltYWxGb3JtYXQoKTsKKyAgICAgICAgU3RyaW5nIHMgPSAiIjsKKyAgICAgICAgcyA9IHBhdC50b1BhdHRlcm4oKTsKKyAgICAgICAgbG9nbG4oInBhdHRlcm4gPSAiICsgcyk7CisgICAgICAgIGludCBtb2RlOworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIFN0cmluZyBtZXNzYWdlOworICAgICAgICBTdHJpbmcgcmVzdWx0U3RyOworICAgICAgICBmb3IgKG1vZGUgPSAwOyBtb2RlIDwgNzsgbW9kZSsrKSB7CisgICAgICAgICAgICBwYXQuc2V0Um91bmRpbmdNb2RlKG1vZGUpOworICAgICAgICAgICAgaWYgKHBhdC5nZXRSb3VuZGluZ01vZGUoKSAhPSBtb2RlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oCisgICAgICAgICAgICAgICAgICAgICAiU2V0Um91bmRpbmdNb2RlIG9yIEdldFJvdW5kaW5nTW9kZSBmYWlsZWQgZm9yIG1vZGU9IiArIG1vZGUpOyAKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8vZm9yICsyLjU1IHdpdGggUm91bmRpbmdJbmNyZW1lbnQ9MS4wCisgICAgICAgICAgICBwYXQuc2V0Um91bmRpbmdJbmNyZW1lbnQoMS4wKTsKKyAgICAgICAgICAgIHJlc3VsdFN0ciA9IHBhdC5mb3JtYXQoUm91bmRpbmdudW1iZXIpOworICAgICAgICAgICAgbWVzc2FnZSA9ICJyb3VuZCgiICsgKGRvdWJsZSkgUm91bmRpbmdudW1iZXIKKyAgICAgICAgICAgICAgICAgICAgKyAiLCIgKyBtb2RlICsgIixGQUxTRSkgd2l0aCBSb3VuZGluZ0luY3JlbWVudD0xLjA9PT4iOyAKKyAgICAgICAgICAgIHZlcmlmeShtZXNzYWdlLCByZXN1bHRTdHIsIHJlc3VsdFtpKytdKTsKKyAgICAgICAgICAgIG1lc3NhZ2UgPSAiIjsKKyAgICAgICAgICAgIHJlc3VsdFN0ciA9ICIiOworICAgIAorICAgICAgICAgICAgLy9mb3IgLTIuNTUgd2l0aCBSb3VuZGluZ0luY3JlbWVudD0xLjAKKyAgICAgICAgICAgIHJlc3VsdFN0ciA9IHBhdC5mb3JtYXQoUm91bmRpbmdudW1iZXIxKTsKKyAgICAgICAgICAgIG1lc3NhZ2UgPSAicm91bmQoIiArIChkb3VibGUpIFJvdW5kaW5nbnVtYmVyMQorICAgICAgICAgICAgICAgICAgICArICIsIiArIG1vZGUgKyAiLEZBTFNFKSB3aXRoIFJvdW5kaW5nSW5jcmVtZW50PTEuMD09PiI7IAorICAgICAgICAgICAgdmVyaWZ5KG1lc3NhZ2UsIHJlc3VsdFN0ciwgcmVzdWx0W2krK10pOworICAgICAgICAgICAgbWVzc2FnZSA9ICIiOworICAgICAgICAgICAgcmVzdWx0U3RyID0gIiI7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLypIZWxwZXIgZnVuY3Rpb25zICovCisgICAgcHVibGljIHZvaWQgdmVyaWZ5KFN0cmluZyBtZXNzYWdlLCBTdHJpbmcgZ290LCBkb3VibGUgZXhwZWN0ZWQpIHsKKyAgICAgICAgbG9nbG4obWVzc2FnZSArIGdvdCArICIgRXhwZWN0ZWQgOiAiICsgKGxvbmcpZXhwZWN0ZWQpOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRTdHIgPSAiIjsKKyAgICAgICAgZXhwZWN0ZWRTdHI9ZXhwZWN0ZWRTdHIgKyAobG9uZylleHBlY3RlZDsKKyAgICAgICAgaWYoIWdvdC5lcXVhbHMoZXhwZWN0ZWRTdHIpICkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBSb3VuZCgpIGZhaWxlZDogICIgKyBtZXNzYWdlICsgZ290ICsgIiAgRXhwZWN0ZWQgOiAiICsgZXhwZWN0ZWRTdHIpOworICAgICAgICB9CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvSW50bFRlc3REZWNpbWFsRm9ybWF0U3ltYm9scy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERlY2ltYWxGb3JtYXRTeW1ib2xzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTdiZjJlZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvSW50bFRlc3REZWNpbWFsRm9ybWF0U3ltYm9scy5qYXZhCkBAIC0wLDAgKzEsMTI5IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvSW50bFRlc3REZWNpbWFsRm9ybWF0U3ltYm9scy5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzA4LzAxIDIwOjI3OjIxICQgCisgKiAkUmV2aXNpb246IDEuNCAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBKREsgMS40YjEgOiBqYXZhLnRleHQuRm9ybWF0LkludGxUZXN0RGVjaW1hbEZvcm1hdFN5bWJvbHMKKyAqIFNvdXJjZSBGaWxlOiBqYXZhL3RleHQvZm9ybWF0L0ludGxUZXN0RGVjaW1hbEZvcm1hdFN5bWJvbHMuamF2YQorICoqLworIAorLyoKKyAgICBAdGVzdCAxLjQgOTgvMDMvMDYKKyAgICBAc3VtbWFyeSB0ZXN0IEludGVybmF0aW9uYWwgRGVjaW1hbCBGb3JtYXQgU3ltYm9scworKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0OworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKKworcHVibGljIGNsYXNzIEludGxUZXN0RGVjaW1hbEZvcm1hdFN5bWJvbHMgZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13aworeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgSW50bFRlc3REZWNpbWFsRm9ybWF0U3ltYm9scygpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICAvLyBUZXN0IHRoZSBBUEkgb2YgRGVjaW1hbEZvcm1hdFN5bWJvbHM7IHByaW1hcmlseSBhIHNpbXBsZSBnZXQvc2V0IHNldC4KKyAgICBwdWJsaWMgdm9pZCBUZXN0U3ltYm9scygpCisgICAgeworICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBmciA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuRlJFTkNIKTsKKworICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBlbiA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuRU5HTElTSCk7CisKKyAgICAgICAgaWYoZW4uZXF1YWxzKGZyKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBFbmdsaXNoIERlY2ltYWxGb3JtYXRTeW1ib2xzIGVxdWFsIHRvIEZyZW5jaCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8ganVzdCBkbyBzb21lIFZFUlkgYmFzaWMgdGVzdHMgdG8gbWFrZSBzdXJlIHRoYXQgZ2V0L3NldCB3b3JrCisKKyAgICAgICAgY2hhciB6ZXJvID0gZW4uZ2V0WmVyb0RpZ2l0KCk7CisgICAgICAgIGZyLnNldFplcm9EaWdpdCh6ZXJvKTsKKyAgICAgICAgaWYoZnIuZ2V0WmVyb0RpZ2l0KCkgIT0gZW4uZ2V0WmVyb0RpZ2l0KCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBaZXJvRGlnaXQgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICBjaGFyIGdyb3VwID0gZW4uZ2V0R3JvdXBpbmdTZXBhcmF0b3IoKTsKKyAgICAgICAgZnIuc2V0R3JvdXBpbmdTZXBhcmF0b3IoZ3JvdXApOworICAgICAgICBpZihmci5nZXRHcm91cGluZ1NlcGFyYXRvcigpICE9IGVuLmdldEdyb3VwaW5nU2VwYXJhdG9yKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBHcm91cGluZ1NlcGFyYXRvciBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGNoYXIgZGVjaW1hbCA9IGVuLmdldERlY2ltYWxTZXBhcmF0b3IoKTsKKyAgICAgICAgZnIuc2V0RGVjaW1hbFNlcGFyYXRvcihkZWNpbWFsKTsKKyAgICAgICAgaWYoZnIuZ2V0RGVjaW1hbFNlcGFyYXRvcigpICE9IGVuLmdldERlY2ltYWxTZXBhcmF0b3IoKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IERlY2ltYWxTZXBhcmF0b3IgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICBjaGFyIHBlck1pbGwgPSBlbi5nZXRQZXJNaWxsKCk7CisgICAgICAgIGZyLnNldFBlck1pbGwocGVyTWlsbCk7CisgICAgICAgIGlmKGZyLmdldFBlck1pbGwoKSAhPSBlbi5nZXRQZXJNaWxsKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBQZXJNaWxsIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgY2hhciBwZXJjZW50ID0gZW4uZ2V0UGVyY2VudCgpOworICAgICAgICBmci5zZXRQZXJjZW50KHBlcmNlbnQpOworICAgICAgICBpZihmci5nZXRQZXJjZW50KCkgIT0gZW4uZ2V0UGVyY2VudCgpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGdldC9zZXQgUGVyY2VudCBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGNoYXIgZGlnaXQgPSBlbi5nZXREaWdpdCgpOworICAgICAgICBmci5zZXREaWdpdChkaWdpdCk7CisgICAgICAgIGlmKGZyLmdldFBlcmNlbnQoKSAhPSBlbi5nZXRQZXJjZW50KCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBQZXJjZW50IGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgY2hhciBwYXR0ZXJuU2VwYXJhdG9yID0gZW4uZ2V0UGF0dGVyblNlcGFyYXRvcigpOworICAgICAgICBmci5zZXRQYXR0ZXJuU2VwYXJhdG9yKHBhdHRlcm5TZXBhcmF0b3IpOworICAgICAgICBpZihmci5nZXRQYXR0ZXJuU2VwYXJhdG9yKCkgIT0gZW4uZ2V0UGF0dGVyblNlcGFyYXRvcigpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGdldC9zZXQgUGF0dGVyblNlcGFyYXRvciBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBpbmZpbml0eSA9IGVuLmdldEluZmluaXR5KCk7CisgICAgICAgIGZyLnNldEluZmluaXR5KGluZmluaXR5KTsKKyAgICAgICAgU3RyaW5nIGluZmluaXR5MiA9IGZyLmdldEluZmluaXR5KCk7CisgICAgICAgIGlmKCEgaW5maW5pdHkuZXF1YWxzKGluZmluaXR5MikpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBJbmZpbml0eSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBuYW4gPSBlbi5nZXROYU4oKTsKKyAgICAgICAgZnIuc2V0TmFOKG5hbik7CisgICAgICAgIFN0cmluZyBuYW4yID0gZnIuZ2V0TmFOKCk7CisgICAgICAgIGlmKCEgbmFuLmVxdWFscyhuYW4yKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IE5hTiBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGNoYXIgbWludXNTaWduID0gZW4uZ2V0TWludXNTaWduKCk7CisgICAgICAgIGZyLnNldE1pbnVzU2lnbihtaW51c1NpZ24pOworICAgICAgICBpZihmci5nZXRNaW51c1NpZ24oKSAhPSBlbi5nZXRNaW51c1NpZ24oKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IE1pbnVzU2lnbiBmYWlsZWQiKTsKKyAgICAgICAgfQorCisvLyAgICAgICAgY2hhciBleHBvbmVudGlhbCA9IGVuLmdldEV4cG9uZW50aWFsU3ltYm9sKCk7CisvLyAgICAgICAgZnIuc2V0RXhwb25lbnRpYWxTeW1ib2woZXhwb25lbnRpYWwpOworLy8gICAgICAgIGlmKGZyLmdldEV4cG9uZW50aWFsU3ltYm9sKCkgIT0gZW4uZ2V0RXhwb25lbnRpYWxTeW1ib2woKSkgeworLy8gICAgICAgICAgICBlcnJsbigiRVJST1I6IGdldC9zZXQgRXhwb25lbnRpYWwgZmFpbGVkIik7CisvLyAgICAgICAgfQorCisgICAgICAgIC8vRGVjaW1hbEZvcm1hdFN5bWJvbHMgZm9vID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKCk7IC8vVGhlIHZhcmlhYmxlIGlzIG5ldmVyIHVzZWQKKworICAgICAgICBlbiA9IChEZWNpbWFsRm9ybWF0U3ltYm9scykgZnIuY2xvbmUoKTsKKworICAgICAgICBpZighIGVuLmVxdWFscyhmcikpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogQ2xvbmUgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0RGVjaW1hbEZvcm1hdFN5bWJvbHNDLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0RGVjaW1hbEZvcm1hdFN5bWJvbHNDLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzM3ZjdhMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvSW50bFRlc3REZWNpbWFsRm9ybWF0U3ltYm9sc0MuamF2YQpAQCAtMCwwICsxLDE0OCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0RGVjaW1hbEZvcm1hdFN5bWJvbHNDLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDU6MTEgJCAKKyAqICRSZXZpc2lvbjogMS4zICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjEuOC4xIDogZm9ybWF0IDogSW50bFRlc3REZWNpbWFsRm9ybWF0U3ltYm9scworICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3QvdHNkY2Ztc3kuY3BwCisgKiovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0OworCitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKKworLyoqCisgKiBUZXN0cyBmb3IgRGVjaW1hbEZvcm1hdFN5bWJvbHMKKyAqKi8KK3B1YmxpYyBjbGFzcyBJbnRsVGVzdERlY2ltYWxGb3JtYXRTeW1ib2xzQyBleHRlbmRzIGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrIHsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IEludGxUZXN0RGVjaW1hbEZvcm1hdFN5bWJvbHNDKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlIEFQSSBvZiBEZWNpbWFsRm9ybWF0U3ltYm9sczsgcHJpbWFyaWx5IGEgc2ltcGxlIGdldC9zZXQgc2V0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTeW1ib2xzKCkgeyAgICAKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgZnIgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLkZSRU5DSCk7ICAgIAorICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBlbiA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuRU5HTElTSCk7CisgICAgCisgICAgICAgIGlmIChlbi5lcXVhbHMoZnIpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IEVuZ2xpc2ggRGVjaW1hbEZvcm1hdFN5bWJvbHMgZXF1YWwgdG8gRnJlbmNoIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8ganVzdCBkbyBzb21lIFZFUlkgYmFzaWMgdGVzdHMgdG8gbWFrZSBzdXJlIHRoYXQgZ2V0L3NldCB3b3JrCisgICAgCisgICAgICAgIGNoYXIgemVybyA9IGVuLmdldFplcm9EaWdpdCgpOworICAgICAgICBmci5zZXRaZXJvRGlnaXQoemVybyk7CisgICAgICAgIGlmIChmci5nZXRaZXJvRGlnaXQoKSAhPSBlbi5nZXRaZXJvRGlnaXQoKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IFplcm9EaWdpdCBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBjaGFyIGdyb3VwID0gZW4uZ2V0R3JvdXBpbmdTZXBhcmF0b3IoKTsKKyAgICAgICAgZnIuc2V0R3JvdXBpbmdTZXBhcmF0b3IoZ3JvdXApOworICAgICAgICBpZiAoZnIuZ2V0R3JvdXBpbmdTZXBhcmF0b3IoKSAhPSBlbi5nZXRHcm91cGluZ1NlcGFyYXRvcigpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGdldC9zZXQgR3JvdXBpbmdTZXBhcmF0b3IgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgY2hhciBkZWNpbWFsID0gZW4uZ2V0RGVjaW1hbFNlcGFyYXRvcigpOworICAgICAgICBmci5zZXREZWNpbWFsU2VwYXJhdG9yKGRlY2ltYWwpOworICAgICAgICBpZiAoZnIuZ2V0RGVjaW1hbFNlcGFyYXRvcigpICE9IGVuLmdldERlY2ltYWxTZXBhcmF0b3IoKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IERlY2ltYWxTZXBhcmF0b3IgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgY2hhciBwZXJNaWxsID0gZW4uZ2V0UGVyTWlsbCgpOworICAgICAgICBmci5zZXRQZXJNaWxsKHBlck1pbGwpOworICAgICAgICBpZiAoZnIuZ2V0UGVyTWlsbCgpICE9IGVuLmdldFBlck1pbGwoKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IFBlck1pbGwgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgY2hhciBwZXJjZW50ID0gZW4uZ2V0UGVyY2VudCgpOworICAgICAgICBmci5zZXRQZXJjZW50KHBlcmNlbnQpOworICAgICAgICBpZiAoZnIuZ2V0UGVyY2VudCgpICE9IGVuLmdldFBlcmNlbnQoKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IFBlcmNlbnQgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgY2hhciBkaWdpdCA9IGVuLmdldERpZ2l0KCk7CisgICAgICAgIGZyLnNldERpZ2l0KGRpZ2l0KTsKKyAgICAgICAgaWYgKGZyLmdldFBlcmNlbnQoKSAhPSBlbi5nZXRQZXJjZW50KCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBQZXJjZW50IGZhaWxlZCIpOworICAgICAgICB9CisgICAgCisgICAgICAgIGNoYXIgcGF0dGVyblNlcGFyYXRvciA9IGVuLmdldFBhdHRlcm5TZXBhcmF0b3IoKTsKKyAgICAgICAgZnIuc2V0UGF0dGVyblNlcGFyYXRvcihwYXR0ZXJuU2VwYXJhdG9yKTsKKyAgICAgICAgaWYgKGZyLmdldFBhdHRlcm5TZXBhcmF0b3IoKSAhPSBlbi5nZXRQYXR0ZXJuU2VwYXJhdG9yKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBQYXR0ZXJuU2VwYXJhdG9yIGZhaWxlZCIpOworICAgICAgICB9CisgICAgCisgICAgICAgIFN0cmluZyBpbmZpbml0eSA9IGVuLmdldEluZmluaXR5KCk7CisgICAgICAgIGZyLnNldEluZmluaXR5KGluZmluaXR5KTsKKyAgICAgICAgU3RyaW5nIGluZmluaXR5MiA9IGZyLmdldEluZmluaXR5KCk7CisgICAgICAgIGlmICghaW5maW5pdHkuZXF1YWxzKGluZmluaXR5MikpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBJbmZpbml0eSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBTdHJpbmcgbmFuID0gZW4uZ2V0TmFOKCk7CisgICAgICAgIGZyLnNldE5hTihuYW4pOworICAgICAgICBTdHJpbmcgbmFuMiA9IGZyLmdldE5hTigpOworICAgICAgICBpZiAoIW5hbi5lcXVhbHMobmFuMikpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBOYU4gZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgY2hhciBtaW51c1NpZ24gPSBlbi5nZXRNaW51c1NpZ24oKTsKKyAgICAgICAgZnIuc2V0TWludXNTaWduKG1pbnVzU2lnbik7CisgICAgICAgIGlmIChmci5nZXRNaW51c1NpZ24oKSAhPSBlbi5nZXRNaW51c1NpZ24oKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IE1pbnVzU2lnbiBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyAgICAgICAgY2hhciBleHBvbmVudGlhbCA9IGVuLmdldEV4cG9uZW50aWFsU3ltYm9sKCk7CisgICAgICAgIC8vICAgICAgICBmci5zZXRFeHBvbmVudGlhbFN5bWJvbChleHBvbmVudGlhbCk7CisgICAgICAgIC8vICAgICAgICBpZihmci5nZXRFeHBvbmVudGlhbFN5bWJvbCgpICE9IGVuLmdldEV4cG9uZW50aWFsU3ltYm9sKCkpIHsKKyAgICAgICAgLy8gICAgICAgICAgICBlcnJsbigiRVJST1I6IGdldC9zZXQgRXhwb25lbnRpYWwgZmFpbGVkIik7CisgICAgICAgIC8vICAgICAgICB9CisgICAgCisgICAgICAgIC8vRGVjaW1hbEZvcm1hdFN5bWJvbHMgZm9vID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKCk7IC8vVGhlIHZhcmlhYmxlIGlzIG5ldmVyIHVzZWQKKyAgICAKKyAgICAgICAgZW4gPSAoRGVjaW1hbEZvcm1hdFN5bWJvbHMpIGZyLmNsb25lKCk7CisgICAgCisgICAgICAgIGlmICghZW4uZXF1YWxzKGZyKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBDbG9uZSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisgICAgCisgICAgICAgIHZlcmlmeSgzNC41LCAiMDAuMDAiLCBzeW0sICIzNC41MCIpOworICAgICAgICBzeW0uc2V0RGVjaW1hbFNlcGFyYXRvcignUycpOworICAgICAgICB2ZXJpZnkoMzQuNSwgIjAwLjAwIiwgc3ltLCAiMzRTNTAiKTsKKyAgICAgICAgc3ltLnNldFBlcmNlbnQoJ1AnKTsKKyAgICAgICAgdmVyaWZ5KDM0LjUsICIwMCAlIiwgc3ltLCAiMzQ1MCBQIik7CisgICAgICAgIHN5bS5zZXRDdXJyZW5jeVN5bWJvbCgiRCIpOworICAgICAgICB2ZXJpZnkoMzQuNSwgIlx1MDBhNCMjLiMjIiwgc3ltLCAiRDM0LjUiKTsKKyAgICAgICAgc3ltLnNldEdyb3VwaW5nU2VwYXJhdG9yKCd8Jyk7CisgICAgICAgIHZlcmlmeSgzNDU2LjUsICIwLDAwMC4jIyIsIHN5bSwgIjN8NDU2UzUiKTsKKyAgICB9CisgICAgCisgICAgLyoqIGhlbHBlciBmdW5jdGlvbnMqKi8KKyAgICBwdWJsaWMgdm9pZCB2ZXJpZnkoZG91YmxlIHZhbHVlLCBTdHJpbmcgcGF0dGVybiwgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltLCBTdHJpbmcgZXhwZWN0ZWQpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KHBhdHRlcm4sIHN5bSk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MgPSBuZXcgRmllbGRQb3NpdGlvbigtMSk7CisgICAgICAgIGJ1ZmZlciA9IGRmLmZvcm1hdCh2YWx1ZSwgYnVmZmVyLCBwb3MpOworICAgICAgICBpZighYnVmZmVyLnRvU3RyaW5nKCkuZXF1YWxzKGV4cGVjdGVkKSl7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGZvcm1hdCBmYWlsZWQgYWZ0ZXIgc2V0U3ltYm9scygpXG4gRXhwZWN0ZWQiICsgCisgICAgICAgICAgICAgICAgZXhwZWN0ZWQgKyAiLCBHb3QgIiArIGJ1ZmZlcik7CisgICAgICAgIH0KKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdE51bWJlckZvcm1hdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdE51bWJlckZvcm1hdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM1NjIzODgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0TnVtYmVyRm9ybWF0LmphdmEKQEAgLTAsMCArMSwyOTIgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdE51bWJlckZvcm1hdC5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA1OjExICQgCisgKiAkUmV2aXNpb246IDEuMyAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYxLjguMSA6IGZvcm1hdCA6IEludGxUZXN0TnVtYmVyRm9ybWF0CisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC90c25tZm10LmNwcAorICoqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworCisvKioKKyAqIFRoaXMgdGVzdCBkb2VzIHJvdW5kLXRyaXAgdGVzdGluZyAoZm9ybWF0IC0+IHBhcnNlIC0+IGZvcm1hdCAtPiBwYXJzZSAtPiBldGMuKSBvZgorICogTnVtYmVyRm9ybWF0LgorICovCitwdWJsaWMgY2xhc3MgSW50bFRlc3ROdW1iZXJGb3JtYXQgZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ayB7CisgICAgCisgICAgcHVibGljIE51bWJlckZvcm1hdCBmTnVtYmVyRm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IEludGxUZXN0TnVtYmVyRm9ybWF0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICAvKgorICAgICAqIEludGVybmFsIHVzZQorICAgICAqKi8KKyAgICBwdWJsaWMgdm9pZCBfdGVzdExvY2FsZShqYXZhLnV0aWwuTG9jYWxlIGxvY2FsZSwgU3RyaW5nIGxvY2FsZU5hbWUpIHsKKyAgICAgICAgU3RyaW5nIG5hbWU7CisgICAgLy8gICAgbG9jYWxlID0gamF2YS51dGlsLkxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgLy8gICAgbG9jYWxlTmFtZSA9IGxvY2FsZS5nZXREaXNwbGF5TmFtZSgpOworICAgICAgICAgICAgCisgICAgICAgIG5hbWUgPSAiTnVtYmVyIHRlc3QiOworICAgICAgICBsb2dsbihuYW1lICsgIiAoICIgKyBsb2NhbGVOYW1lICsgIiApICIpOworICAgICAgICBmTnVtYmVyRm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKGxvY2FsZSk7CisgICAgICAgIFRlc3RGb3JtYXQoKTsKKyAgICAKKyAgICAgICAgbmFtZSA9ICJDdXJyZW5jeSB0ZXN0IjsKKyAgICAgICAgbG9nbG4obmFtZSArICIgKCIgKyBsb2NhbGVOYW1lICsgIikiKTsKKyAgICAgICAgZk51bWJlckZvcm1hdCA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKGxvY2FsZSk7CisgICAgICAgIFRlc3RGb3JtYXQoLyogcGFyICovKTsKKyAgICAKKyAgICAgICAgbmFtZSA9ICJQZXJjZW50IHRlc3QiOworICAgICAgICBsb2dsbihuYW1lICsgIiAoIiArIGxvY2FsZU5hbWUgKyAiKSIpOworICAgICAgICBmTnVtYmVyRm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZShsb2NhbGUpOworICAgICAgICBUZXN0Rm9ybWF0KC8qIHBhciAqLyk7CisgICAgICAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiAgY2FsbCBUZXN0Rm9ybWF0IGZvciBjdXJyZW5jeSwgcGVyY2VudCBhbmQgcGxhaW4gbnVtYmVyIGluc3RhbmNlcworICAgICAqKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TG9jYWxlKCkgeworICAgICAgICBTdHJpbmcgbmFtZTsKKyAgICAgICAgU3RyaW5nIGxvY2FsZU5hbWU7ICAgIAorICAgICAgICBqYXZhLnV0aWwuTG9jYWxlIGxvY2FsZSA9IGphdmEudXRpbC5Mb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICBsb2NhbGVOYW1lID0gbG9jYWxlLmdldERpc3BsYXlOYW1lKCk7CisgICAgICAgICAgICAKKyAgICAgICAgbmFtZSA9ICJOdW1iZXIgdGVzdCI7CisgICAgICAgIGxvZ2xuKG5hbWUgKyAiICggIiArIGxvY2FsZU5hbWUgKyAiICkgIik7CisgICAgICAgIGZOdW1iZXJGb3JtYXQgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgVGVzdEZvcm1hdCgpOworICAgIAorICAgICAgICBuYW1lID0gIkN1cnJlbmN5IHRlc3QiOworICAgICAgICBsb2dsbihuYW1lICsgIiAoIiArIGxvY2FsZU5hbWUgKyAiKSIpOworICAgICAgICBmTnVtYmVyRm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoKTsKKyAgICAgICAgVGVzdEZvcm1hdCgvKiBwYXIgKi8pOworICAgIAorICAgICAgICBuYW1lID0gIlBlcmNlbnQgdGVzdCI7CisgICAgICAgIGxvZ2xuKG5hbWUgKyAiICgiICsgbG9jYWxlTmFtZSArICIpIik7CisgICAgICAgIGZOdW1iZXJGb3JtYXQgPSBOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKCk7CisgICAgICAgIFRlc3RGb3JtYXQoLyogcGFyICovKTsKKyAgICAgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqICBjYWxsIHRyeUl0IHdpdGggbWFueSB2YXJpYXRpb25zLCBjYWxsZWQgYnkgdGVzdExvY2FsZQorICAgICAqKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Rm9ybWF0KCkgeworICAgICAgICAKKyAgICAgICAgaWYgKGZOdW1iZXJGb3JtYXQgPT0gbnVsbCl7CisgICAgICAgICAgICBlcnJsbigiKioqKiBGQUlMOiBOdWxsIGZvcm1hdCByZXR1cm5lZCBieSBjcmVhdGVYeHhJbnN0YW5jZS4iKTsKKyAgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgRGVjaW1hbEZvcm1hdCBzID0gKERlY2ltYWxGb3JtYXQpZk51bWJlckZvcm1hdDsKKyAgICAgICAgbG9nbG4oInBhdHRlcm4gOiIgKyBzLnRvUGF0dGVybigpKTsKKyAgICAKKyAgICAgICAgdHJ5SXQoLTIuMDIxNDczMDQ4NDAxMzJlLTY4KTsKKyAgICAgICAgdHJ5SXQoMy44ODA1Nzg1OTU4ODgxN2UtNjgpOyAKKyAgICAgICAgdHJ5SXQoLTIuNjQ2NTExMTA0ODU5NDVlKzY1KTsKKyAgICAgICAgdHJ5SXQoOS4yOTUyNjgxOTQ4ODMzOGUrNjQpOworICAgIAorICAgICAgICB0cnlJdCgtMi4wMjE0NzMwNDg0MDEzMmUtMTAwKTsKKyAgICAgICAgdHJ5SXQoMy44ODA1Nzg1OTU4ODgxN2UtMDk2KTsgCisgICAgICAgIHRyeUl0KC0yLjY0NjUxMTEwNDg1OTQ1ZSszMDYpOworICAgICAgICB0cnlJdCg5LjI5NTI2ODE5NDg4MzM4ZSsyNTApOyAKKyAgICAKKyAgICAgICAgdHJ5SXQoLTkuMTgyMjgwNTQ0OTY0MDJlKzY0KTsKKyAgICAgICAgdHJ5SXQoLTkuNjk0MTMwMzQ0NTQxOTFlKzY0KTsKKyAgICAKKyAgICAgICAgdHJ5SXQoLTkuMTgyMjgwNTQ0OTY0MDJlKzI1NSk7CisgICAgICAgIHRyeUl0KC05LjY5NDEzMDM0NDU0MTkxZSsyNzMpOworICAgIAorICAgIAorICAgICAgICB0cnlJdCgxLjIzNGUtMjAwKTsKKyAgICAgICAgdHJ5SXQoLTIuM2UtMTY4KTsKKyAgICAKKyAgICAgICAgdHJ5SXQoRG91YmxlLk5hTik7CisgICAgICAgIHRyeUl0KERvdWJsZS5QT1NJVElWRV9JTkZJTklUWSk7CisgICAgICAgIHRyeUl0KERvdWJsZS5ORUdBVElWRV9JTkZJTklUWSk7CisgICAgCisgICAgICAgIHRyeUl0KDI1MTg4NzUzMSk7CisgICAgICAgIHRyeUl0KDVlLTIwIC8gOSk7CisgICAgICAgIHRyeUl0KDVlMjAgLyA5KTsKKyAgICAgICAgdHJ5SXQoMS4yMzRlLTUwKTsKKyAgICAgICAgdHJ5SXQoOS45OTk5OTk5OTk5OTk5Nik7CisgICAgICAgIHRyeUl0KDkuOTk5OTk5OTk5OTk5OTk2KTsKKyAgICAKKyAgICAgICAgdHJ5SXQoSW50ZWdlci5NSU5fVkFMVUUpOworICAgICAgICB0cnlJdChJbnRlZ2VyLk1BWF9WQUxVRSk7CisgICAgICAgIHRyeUl0KChkb3VibGUpSW50ZWdlci5NSU5fVkFMVUUpOworICAgICAgICB0cnlJdCgoZG91YmxlKUludGVnZXIuTUFYX1ZBTFVFKTsKKyAgICAgICAgdHJ5SXQoKGRvdWJsZSlJbnRlZ2VyLk1JTl9WQUxVRSAtIDEuMCk7CisgICAgICAgIHRyeUl0KChkb3VibGUpSW50ZWdlci5NQVhfVkFMVUUgKyAxLjApOworICAgIAorICAgICAgICB0cnlJdCg1LjAgLyA5LjAgKiAxZS0yMCk7CisgICAgICAgIHRyeUl0KDQuMCAvIDkuMCAqIDFlLTIwKTsKKyAgICAgICAgdHJ5SXQoNS4wIC8gOS4wICogMWUrMjApOworICAgICAgICB0cnlJdCg0LjAgLyA5LjAgKiAxZSsyMCk7CisgICAgCisgICAgICAgIHRyeUl0KDIxNDc0ODM2NDcuKTsKKyAgICAgICAgdHJ5SXQoMCk7CisgICAgICAgIHRyeUl0KDAuMCk7CisgICAgICAgIHRyeUl0KDEpOworICAgICAgICB0cnlJdCgxMCk7CisgICAgICAgIHRyeUl0KDEwMCk7CisgICAgICAgIHRyeUl0KC0xKTsKKyAgICAgICAgdHJ5SXQoLTEwKTsKKyAgICAgICAgdHJ5SXQoLTEwMCk7CisgICAgICAgIHRyeUl0KC0xOTEzODYwMzUyKTsKKyAgICAKKyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCAxMDsgaisrKSB7CisgICAgICAgICAgICBkb3VibGUgZCA9IE1hdGgucmFuZG9tKCkqMmUxMCAtIDFlMTA7CisgICAgICAgICAgICB0cnlJdChkKTsKKyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqICBwZXJmb3JtIHRlc3RzIHVzaW5nIGFOdW1iZXIgYW5kIGZOdW1iZXJGb3JtYXQsIGNhbGxlZCBpbiBtYW55IHZhcmlhdGlvbnMKKyAgICAgKiovCisgICAgcHVibGljIHZvaWQgdHJ5SXQoZG91YmxlIGFOdW1iZXIpIHsgICAgCisgICAgICAgIGZpbmFsIGludCBERVBUSCA9IDEwOworICAgICAgICBkb3VibGVbXSBudW1iZXIgPSBuZXcgZG91YmxlW0RFUFRIXTsKKyAgICAgICAgU3RyaW5nW10gc3RyaW5nID0gbmV3IFN0cmluZ1tERVBUSF07CisgICAgICAgIGludCBudW1iZXJNYXRjaCA9IDA7CisgICAgICAgIGludCBzdHJpbmdNYXRjaCA9IDA7CisgICAgICAgIGJvb2xlYW4gZHVtcCA9IGZhbHNlOworICAgICAgICBpbnQgaTsKKyAgICAKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IERFUFRIOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChpID09IDApIHsKKyAgICAgICAgICAgICAgICBudW1iZXJbaV0gPSBhTnVtYmVyOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBudW1iZXJbaSAtIDFdID0gZk51bWJlckZvcm1hdC5wYXJzZShzdHJpbmdbaSAtIDFdKS5kb3VibGVWYWx1ZSgpOworICAgICAgICAgICAgICAgIH0gY2F0Y2goamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uIHBlKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCIqKioqIEZBSUw6IFBhcnNlIG9mICIgKyBzdHJpbmdbaS0xXSArICIgZmFpbGVkLiIpOworICAgICAgICAgICAgICAgICAgICBkdW1wID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgc3RyaW5nW2ldID0gZk51bWJlckZvcm1hdC5mb3JtYXQobnVtYmVyW2ldKTsKKyAgICAgICAgICAgIGlmIChpID4gMCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAobnVtYmVyTWF0Y2ggPT0gMCAmJiBudW1iZXJbaV0gPT0gbnVtYmVyW2ktMV0pCisgICAgICAgICAgICAgICAgICAgIG51bWJlck1hdGNoID0gaTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChudW1iZXJNYXRjaCA+IDAgJiYgbnVtYmVyW2ldICE9IG51bWJlcltpLTFdKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIioqKiogRkFJTDogTnVtZXJpYyBtaXNtYXRjaCBhZnRlciBtYXRjaC4iKTsKKyAgICAgICAgICAgICAgICAgICAgZHVtcCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoc3RyaW5nTWF0Y2ggPT0gMCAmJiBzdHJpbmdbaV0gPT0gc3RyaW5nW2ktMV0pCisgICAgICAgICAgICAgICAgICAgIHN0cmluZ01hdGNoID0gaTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChzdHJpbmdNYXRjaCA+IDAgJiYgc3RyaW5nW2ldICE9IHN0cmluZ1tpLTFdKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIioqKiogRkFJTDogU3RyaW5nIG1pc21hdGNoIGFmdGVyIG1hdGNoLiIpOworICAgICAgICAgICAgICAgICAgICBkdW1wID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG51bWJlck1hdGNoID4gMCAmJiBzdHJpbmdNYXRjaCA+IDApCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgCisgICAgICAgICAgICBpZiAoaSA9PSBERVBUSCkKKyAgICAgICAgICAgIC0taTsKKyAgICAKKyAgICAgICAgaWYgKHN0cmluZ01hdGNoID4gMiB8fCBudW1iZXJNYXRjaCA+IDIpCisgICAgICAgIHsKKyAgICAgICAgICAgIGVycmxuKCIqKioqIEZBSUw6IE5vIHN0cmluZyBhbmQvb3IgbnVtYmVyIG1hdGNoIHdpdGhpbiAyIGl0ZXJhdGlvbnMuIik7CisgICAgICAgICAgICBkdW1wID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpZiAoZHVtcCkKKyAgICAgICAgeworICAgICAgICAgICAgZm9yIChpbnQgaz0wOyBrPD1pOyArK2spCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbG9nbG4oayArICI6ICIgKyBudW1iZXJba10gKyAiIEY+ICIgKworICAgICAgICAgICAgICAgICAgICAgIHN0cmluZ1trXSArICIgUD4gIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiAgcGVyZm9ybSB0ZXN0cyB1c2luZyBhTnVtYmVyIGFuZCBmTnVtYmVyRm9ybWF0LCBjYWxsZWQgaW4gbWFueSB2YXJpYXRpb25zCisgICAgICoqLworICAgIHB1YmxpYyB2b2lkIHRyeUl0KGludCBhTnVtYmVyKSB7CisgICAgICAgIGxvbmcgbnVtYmVyOzsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyBzdHJpbmdOdW0gPSBmTnVtYmVyRm9ybWF0LmZvcm1hdChhTnVtYmVyKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG51bWJlciA9IGZOdW1iZXJGb3JtYXQucGFyc2Uoc3RyaW5nTnVtKS5sb25nVmFsdWUoKTsKKyAgICAgICAgfSBjYXRjaCAoamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uIHBlKSB7CisgICAgICAgICAgICBlcnJsbigiKioqKiBGQUlMOiBQYXJzZSBvZiAiICsgc3RyaW5nTnVtICsgIiBmYWlsZWQuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgaWYgKG51bWJlciAhPSBhTnVtYmVyKSB7CisgICAgICAgICAgICBlcnJsbigiKioqKiBGQUlMOiBQYXJzZSBvZiAiICsgc3RyaW5nTnVtICsgIiBmYWlsZWQuIEdvdDoiICsgbnVtYmVyCisgICAgICAgICAgICAgICAgKyAiIEV4cGVjdGVkOiIgKyBhTnVtYmVyKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogIHRlc3QgTnVtYmVyRm9ybWF0OjpnZXRBdmFpbGFibGVMb2NhbGVzCisgICAgICoqLworICAgIHB1YmxpYyB2b2lkIFRlc3RBdmFpbGFibGVMb2NhbGVzKCkgeworICAgICAgICBmaW5hbCBqYXZhLnV0aWwuTG9jYWxlW10gbG9jYWxlcyA9IE51bWJlckZvcm1hdC5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgIGludCBjb3VudCA9IGxvY2FsZXMubGVuZ3RoOworICAgICAgICBsb2dsbihjb3VudCArICIgYXZhaWxhYmxlIGxvY2FsZXMiKTsKKyAgICAgICAgaWYgKGNvdW50ICE9IDApCisgICAgICAgIHsKKyAgICAgICAgICAgIFN0cmluZyBhbGwgPSAiIjsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpPCBjb3VudDsgKytpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmIChpIT0wKQorICAgICAgICAgICAgICAgICAgICBhbGwgKz0gIiwgIjsKKyAgICAgICAgICAgICAgICBhbGwgKz0gbG9jYWxlc1tpXS5nZXREaXNwbGF5TmFtZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbG9nbG4oYWxsKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgICAgICBlcnJsbigiKioqKiBGQUlMOiBaZXJvIGF2YWlsYWJsZSBsb2NhbGVzIG9yIG51bGwgYXJyYXkgcG9pbnRlciIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiAgY2FsbCB0ZXN0TG9jYWxlIGZvciBhbGwgbG9jYWxlcworICAgICAqKi8gICAgCisgICAgcHVibGljIHZvaWQgVGVzdE1vbnN0ZXIoKSB7CisgICAgICAgIGZpbmFsIFN0cmluZyBTRVAgPSAiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iOworICAgICAgICBpbnQgY291bnQ7CisgICAgICAgIGZpbmFsIGphdmEudXRpbC5Mb2NhbGVbXSBsb2NhbGVzID0gTnVtYmVyRm9ybWF0LmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgY291bnQgPSBsb2NhbGVzLmxlbmd0aDsKKyAgICAgICAgaWYgKGNvdW50ICE9IDApCisgICAgICAgIHsKKyAgICAgICAgICAgIGNvdW50ID0gMzsgLy8gIGp1c3QgdGVzdCAzIGxvY2FsZXMgCisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8Y291bnQ7ICsraSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IGxvY2FsZXNbaV0uZ2V0RGlzcGxheU5hbWUoKTsKKyAgICAgICAgICAgICAgICBsb2dsbihTRVApOworICAgICAgICAgICAgICAgIF90ZXN0TG9jYWxlKC8qIHBhciwgKi9sb2NhbGVzW2ldLCBuYW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICBsb2dsbihTRVApOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0TnVtYmVyRm9ybWF0QVBJLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0TnVtYmVyRm9ybWF0QVBJLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGVjNDM5OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvSW50bFRlc3ROdW1iZXJGb3JtYXRBUEkuamF2YQpAQCAtMCwwICsxLDIxMSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0TnVtYmVyRm9ybWF0QVBJLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDgvMDEgMjA6Mjc6MjEgJCAKKyAqICRSZXZpc2lvbjogMS40ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIEpESyAxLjRiMSA6IGphdmEudGV4dC5Gb3JtYXQuSW50bFRlc3ROdW1iZXJGb3JtYXRBUEkKKyAqIFNvdXJjZSBGaWxlOiBqYXZhL3RleHQvZm9ybWF0L0ludGxUZXN0TnVtYmVyRm9ybWF0QVBJLmphdmEKKyAqKi8KKworLyoKKyAgICBAdGVzdCAxLjQgOTgvMDMvMDYKKyAgICBAc3VtbWFyeSB0ZXN0IEludGVybmF0aW9uYWwgTnVtYmVyIEZvcm1hdCBBUEkKKyovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk2LTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKKworcHVibGljIGNsYXNzIEludGxUZXN0TnVtYmVyRm9ybWF0QVBJIGV4dGVuZHMgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2sKK3sKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IEludGxUZXN0TnVtYmVyRm9ybWF0QVBJKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIC8vIFRoaXMgdGVzdCBjaGVja3MgdmFyaW91cyBnZW5lcmljIEFQSSBtZXRob2RzIGluIERlY2ltYWxGb3JtYXQgdG8gYWNoaWV2ZSAxMDAlIEFQSSBjb3ZlcmFnZS4KKyAgICBwdWJsaWMgdm9pZCBUZXN0QVBJKCkKKyAgICB7CisgICAgICAgIGxvZ2xuKCJOdW1iZXJGb3JtYXQgQVBJIHRlc3QtLS0iKTsgbG9nbG4oIiIpOworICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChMb2NhbGUuRU5HTElTSCk7CisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGNvbnN0cnVjdG9ycworCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIE51bWJlckZvcm1hdCBjb25zdHJ1Y3RvcnMiKTsKKworICAgICAgICBOdW1iZXJGb3JtYXQgZGVmID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisKKyAgICAgICAgTnVtYmVyRm9ybWF0IGZyID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKExvY2FsZS5GUkVOQ0gpOworCisgICAgICAgIE51bWJlckZvcm1hdCBjdXIgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZSgpOworCisgICAgICAgIE51bWJlckZvcm1hdCBjdXJfZnIgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShMb2NhbGUuRlJFTkNIKTsKKworICAgICAgICBOdW1iZXJGb3JtYXQgcGVyID0gTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZSgpOworCisgICAgICAgIE51bWJlckZvcm1hdCBwZXJfZnIgPSBOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKExvY2FsZS5GUkVOQ0gpOworICAgICAgICAKKyAgICAgICAgTnVtYmVyRm9ybWF0IGludGVnZXIgPSBOdW1iZXJGb3JtYXQuZ2V0SW50ZWdlckluc3RhbmNlKCk7CisgICAgICAgIAorICAgICAgICBOdW1iZXJGb3JtYXQgaW50X2ZyID0gTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZShMb2NhbGUuRlJFTkNIKTsKKyAgICAgICAgCisgICAgICAgIC8vRml4ICJUaGUgdmFyaWFibGUgaXMgbmV2ZXIgdXNlZCIgY29tcGlsYXRpb24gd2FybmluZ3MKKyAgICAgICAgbG9nbG4oIkN1cnJlbmN5IDogIiArIGN1ci5mb3JtYXQoMTIzNC41KSk7CisgICAgICAgIGxvZ2xuKCJQZXJjZW50IDogIiArIHBlci5mb3JtYXQoMTIzNC41KSk7CisgICAgICAgIGxvZ2xuKCJJbnRlZ2VyIDogIiArIGludGVnZXIuZm9ybWF0KDEyMzQuNSkpOworICAgICAgICBsb2dsbigiSW50X2ZyIDogIiArIGludF9mci5mb3JtYXQoMTIzNC41KSk7CisgICAgICAgIAorICAgICAgICAvLyA9PT09PT09IFRlc3QgZXF1YWxpdHkKKworICAgICAgICBsb2dsbigiVGVzdGluZyBlcXVhbGl0eSBvcGVyYXRvciIpOworCisgICAgICAgIGlmKCBwZXJfZnIuZXF1YWxzKGN1cl9mcikgKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6ID09IGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IHZhcmlvdXMgZm9ybWF0KCkgbWV0aG9kcworCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIHZhcmlvdXMgZm9ybWF0KCkgbWV0aG9kcyIpOworCisvLyAgICAgICAgZmluYWwgZG91YmxlIGQgPSAtMTA0NTYuMDAzNzsgLy8gdGhpcyBhcHBlYXJzIGFzIC0xMDQ1Ni4wMDM3MDAwMDAwMDEgb24gTlQKKy8vICAgICAgICBmaW5hbCBkb3VibGUgZCA9IC0xLjA0NTYwMDM3ZS00OyAvLyB0aGlzIGFwcGVhcnMgYXMgLTEuMDQ1NjAwMzcwMDAwMDAwMkUtNCBvbiBOVAorICAgICAgICBmaW5hbCBkb3VibGUgZCA9IC0xMDQ1Ni4wMDM3MDAwMDAwMDAwMDsgLy8gdGhpcyB3b3JrcyEKKyAgICAgICAgZmluYWwgbG9uZyBsID0gMTAwMDAwMDAwOworCisgICAgICAgIFN0cmluZyByZXMxID0gbmV3IFN0cmluZygpOworICAgICAgICBTdHJpbmcgcmVzMiA9IG5ldyBTdHJpbmcoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlczMgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXM0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzNSA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlczYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zMSA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBGaWVsZFBvc2l0aW9uIHBvczIgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MzID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zNCA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworCisgICAgICAgIHJlczEgPSBjdXJfZnIuZm9ybWF0KGQpOworICAgICAgICBsb2dsbiggIiIgKyBkICsgIiBmb3JtYXR0ZWQgdG8gIiArIHJlczEpOworCisgICAgICAgIHJlczIgPSBjdXJfZnIuZm9ybWF0KGwpOworICAgICAgICBsb2dsbigiIiArIGwgKyAiIGZvcm1hdHRlZCB0byAiICsgcmVzMik7CisKKyAgICAgICAgcmVzMyA9IGN1cl9mci5mb3JtYXQoZCwgcmVzMywgcG9zMSk7CisgICAgICAgIGxvZ2xuKCAiIiArIGQgKyAiIGZvcm1hdHRlZCB0byAiICsgcmVzMyk7CisKKyAgICAgICAgcmVzNCA9IGN1cl9mci5mb3JtYXQobCwgcmVzNCwgcG9zMik7CisgICAgICAgIGxvZ2xuKCIiICsgbCArICIgZm9ybWF0dGVkIHRvICIgKyByZXM0KTsKKworICAgICAgICByZXM1ID0gY3VyX2ZyLmZvcm1hdChkLCByZXM1LCBwb3MzKTsKKyAgICAgICAgbG9nbG4oIiIgKyBkICsgIiBmb3JtYXR0ZWQgdG8gIiArIHJlczUpOworCisgICAgICAgIHJlczYgPSBjdXJfZnIuZm9ybWF0KGwsIHJlczYsIHBvczQpOworICAgICAgICBsb2dsbigiIiArIGwgKyAiIGZvcm1hdHRlZCB0byAiICsgcmVzNik7CisKKworICAgICAgICAvLyA9PT09PT09IFRlc3QgcGFyc2UoKQorCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIHBhcnNlKCkiKTsKKworLy8gICAgICAgIFN0cmluZyB0ZXh0ID0gbmV3IFN0cmluZygiLTEwLDQ1Ni4wMDM3Iik7CisgICAgICAgIFN0cmluZyB0ZXh0ID0gbmV3IFN0cmluZygiLTEwNDU2LDAwMzciKTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MwMSA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICBkb3VibGUgZDEgPSAoKE51bWJlcilmci5wYXJzZU9iamVjdCh0ZXh0LCBwb3MpKS5kb3VibGVWYWx1ZSgpOworICAgICAgICBpZihkMSAhPSBkKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IFJvdW5kdHJpcCBmYWlsZWQgKHZpYSBwYXJzZSgpKSBmb3IgIiArIHRleHQpOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKHRleHQgKyAiIHBhcnNlZCBpbnRvICIgKyBkMSk7CisKKyAgICAgICAgZG91YmxlIGQyID0gZnIucGFyc2UodGV4dCwgcG9zMDEpLmRvdWJsZVZhbHVlKCk7CisgICAgICAgIGlmKGQyICE9IGQpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogUm91bmR0cmlwIGZhaWxlZCAodmlhIHBhcnNlKCkpIGZvciAiICsgdGV4dCk7CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4odGV4dCArICIgcGFyc2VkIGludG8gIiArIGQyKTsKKworICAgICAgICBkb3VibGUgZDMgPSAwOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZDMgPSBmci5wYXJzZSh0ZXh0KS5kb3VibGVWYWx1ZSgpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHBhcnNlKCkgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAgICAgaWYoZDMgIT0gZCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBSb3VuZHRyaXAgZmFpbGVkICh2aWEgcGFyc2UoKSkgZm9yICIgKyB0ZXh0KTsKKyAgICAgICAgfQorICAgICAgICBsb2dsbih0ZXh0ICsgIiBwYXJzZWQgaW50byAiICsgZDMpOworCisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGdldHRlcnMgYW5kIHNldHRlcnMKKworICAgICAgICBsb2dsbigiVGVzdGluZyBnZXR0ZXJzIGFuZCBzZXR0ZXJzIik7CisKKyAgICAgICAgZmluYWwgTG9jYWxlW10gbG9jYWxlcyA9IE51bWJlckZvcm1hdC5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgIGxvbmcgY291bnQgPSBsb2NhbGVzLmxlbmd0aDsKKyAgICAgICAgbG9nbG4oIkdvdCAiICsgY291bnQgKyAiIGxvY2FsZXMiICk7CisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgICAgICBTdHJpbmcgbmFtZTsKKyAgICAgICAgICAgIG5hbWUgPSBsb2NhbGVzW2ldLmdldERpc3BsYXlOYW1lKCk7CisgICAgICAgICAgICBsb2dsbihuYW1lKTsKKyAgICAgICAgfQorCisgICAgICAgIGZyLnNldFBhcnNlSW50ZWdlck9ubHkoIGRlZi5pc1BhcnNlSW50ZWdlck9ubHkoKSApOworICAgICAgICBpZihmci5pc1BhcnNlSW50ZWdlck9ubHkoKSAhPSBkZWYuaXNQYXJzZUludGVnZXJPbmx5KCkgKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRQYXJzZUludGVnZXJPbmx5KCkgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICBmci5zZXRHcm91cGluZ1VzZWQoIGRlZi5pc0dyb3VwaW5nVXNlZCgpICk7CisgICAgICAgIGlmKGZyLmlzR3JvdXBpbmdVc2VkKCkgIT0gZGVmLmlzR3JvdXBpbmdVc2VkKCkgKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRHcm91cGluZ1VzZWQoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZyLnNldE1heGltdW1JbnRlZ2VyRGlnaXRzKCBkZWYuZ2V0TWF4aW11bUludGVnZXJEaWdpdHMoKSApOworICAgICAgICBpZihmci5nZXRNYXhpbXVtSW50ZWdlckRpZ2l0cygpICE9IGRlZi5nZXRNYXhpbXVtSW50ZWdlckRpZ2l0cygpICkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0TWF4aW11bUludGVnZXJEaWdpdHMoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZyLnNldE1pbmltdW1JbnRlZ2VyRGlnaXRzKCBkZWYuZ2V0TWluaW11bUludGVnZXJEaWdpdHMoKSApOworICAgICAgICBpZihmci5nZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpICE9IGRlZi5nZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpICkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0TWluaW11bUludGVnZXJEaWdpdHMoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZyLnNldE1heGltdW1GcmFjdGlvbkRpZ2l0cyggZGVmLmdldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpICk7CisgICAgICAgIGlmKGZyLmdldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpICE9IGRlZi5nZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoKSApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgZnIuc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKCBkZWYuZ2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKCkgKTsKKyAgICAgICAgaWYoZnIuZ2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKCkgIT0gZGVmLmdldE1pbmltdW1GcmFjdGlvbkRpZ2l0cygpICkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKCkgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICAvLyA9PT09PT09IFRlc3QgZ2V0U3RhdGljQ2xhc3NJRCgpCisKKy8vICAgICAgICBsb2dsbigiVGVzdGluZyBpbnN0YW5jZW9mKCkiKTsKKworLy8gICAgICAgIHRyeSB7CisvLyAgICAgICAgICAgIE51bWJlckZvcm1hdCB0ZXN0ID0gbmV3IERlY2ltYWxGb3JtYXQoKTsKKworLy8gICAgICAgICAgICBpZiAoISAodGVzdCBpbnN0YW5jZW9mIERlY2ltYWxGb3JtYXQpKSB7CisvLyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IGluc3RhbmNlb2YgZmFpbGVkIik7CisvLyAgICAgICAgICAgIH0KKy8vICAgICAgICB9CisvLyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisvLyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogQ291bGRuJ3QgY3JlYXRlIGEgRGVjaW1hbEZvcm1hdCIpOworLy8gICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0U2ltcGxlRGF0ZUZvcm1hdEFQSS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdFNpbXBsZURhdGVGb3JtYXRBUEkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zOWMyZDExCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdFNpbXBsZURhdGVGb3JtYXRBUEkuamF2YQpAQCAtMCwwICsxLDE4MCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0U2ltcGxlRGF0ZUZvcm1hdEFQSS5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA1OjExICQgCisgKiAkUmV2aXNpb246IDEuMyAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBKREsgMS40YjEgOiBqYXZhLnRleHQuRm9ybWF0LkludGxUZXN0U2ltcGxlRGF0ZUZvcm1hdEFQSQorICogU291cmNlIEZpbGU6IGphdmEvdGV4dC9mb3JtYXQvSW50bFRlc3RTaW1wbGVEYXRlRm9ybWF0QVBJLmphdmEKKyAqKi8KKyAKKy8qCisgICAgQHRlc3QgMS40IDk4LzAzLzA2CisgICAgQHN1bW1hcnkgdGVzdCBJbnRlcm5hdGlvbmFsIFNpbXBsZSBEYXRlIEZvcm1hdCBBUEkKKyovCisvKgorKEMpIENvcHlyaWdodCBUYWxpZ2VudCwgSW5jLiAxOTk2LCAxOTk3IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZAorKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5NiwgMTk5NywgMjAwMSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQKKworICBUaGUgb3JpZ2luYWwgdmVyc2lvbiBvZiB0aGlzIHNvdXJjZSBjb2RlIGFuZCBkb2N1bWVudGF0aW9uIGlzIGNvcHlyaWdodGVkIGFuZAorb3duZWQgYnkgVGFsaWdlbnQsIEluYy4sIGEgd2hvbGx5LW93bmVkIHN1YnNpZGlhcnkgb2YgSUJNLiBUaGVzZSBtYXRlcmlhbHMgYXJlCitwcm92aWRlZCB1bmRlciB0ZXJtcyBvZiBhIExpY2Vuc2UgQWdyZWVtZW50IGJldHdlZW4gVGFsaWdlbnQgYW5kIFN1bi4gVGhpcwordGVjaG5vbG9neSBpcyBwcm90ZWN0ZWQgYnkgbXVsdGlwbGUgVVMgYW5kIEludGVybmF0aW9uYWwgcGF0ZW50cy4gVGhpcyBub3RpY2UgYW5kCithdHRyaWJ1dGlvbiB0byBUYWxpZ2VudCBtYXkgbm90IGJlIHJlbW92ZWQuCisgIFRhbGlnZW50IGlzIGEgcmVnaXN0ZXJlZCB0cmFkZW1hcmsgb2YgVGFsaWdlbnQsIEluYy4KKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0OworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuRm9ybWF0OworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKKworcHVibGljIGNsYXNzIEludGxUZXN0U2ltcGxlRGF0ZUZvcm1hdEFQSSBleHRlbmRzIGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrCit7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBJbnRsVGVzdFNpbXBsZURhdGVGb3JtYXRBUEkoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgLy8gVGhpcyB0ZXN0IGNoZWNrcyB2YXJpb3VzIGdlbmVyaWMgQVBJIG1ldGhvZHMgaW4gRGVjaW1hbEZvcm1hdCB0byBhY2hpZXZlIDEwMCUgQVBJIGNvdmVyYWdlLgorICAgIHB1YmxpYyB2b2lkIFRlc3RBUEkoKQorICAgIHsKKyAgICAgICAgbG9nbG4oIlNpbXBsZURhdGVGb3JtYXQgQVBJIHRlc3QtLS0iKTsgbG9nbG4oIiIpOworCisgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KExvY2FsZS5FTkdMSVNIKTsKKworICAgICAgICAvLyA9PT09PT09IFRlc3QgY29uc3RydWN0b3JzCisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgU2ltcGxlRGF0ZUZvcm1hdCBjb25zdHJ1Y3RvcnMiKTsKKworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGRlZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCk7CisKKyAgICAgICAgZmluYWwgU3RyaW5nIHBhdHRlcm4gPSBuZXcgU3RyaW5nKCJ5eXl5Lk1NLmRkIEcgJ2F0JyBoaDptbTpzcyB6Iik7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgcGF0ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQocGF0dGVybik7CisKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBwYXRfZnIgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChwYXR0ZXJuLCBMb2NhbGUuRlJFTkNIKTsKKworICAgICAgICBEYXRlRm9ybWF0U3ltYm9scyBzeW1ib2xzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5GUkVOQ0gpOworCisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgY3VzdDEgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChwYXR0ZXJuLCBzeW1ib2xzKTsKKworICAgICAgICAvLyA9PT09PT09IFRlc3QgY2xvbmUoKSBhbmQgZXF1YWxpdHkKKworICAgICAgICBsb2dsbigiVGVzdGluZyBjbG9uZSgpLCBhc3NpZ25tZW50IGFuZCBlcXVhbGl0eSBvcGVyYXRvcnMiKTsKKworICAgICAgICBGb3JtYXQgY2xvbmUgPSAoRm9ybWF0KSBkZWYuY2xvbmUoKTsKKyAgICAgICAgaWYoICEgY2xvbmUuZXF1YWxzKGRlZikgKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IEZvcm1hdCBjbG9uZSBvciBlcXVhbHMgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICAvLyA9PT09PT09IFRlc3QgdmFyaW91cyBmb3JtYXQoKSBtZXRob2RzCisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgdmFyaW91cyBmb3JtYXQoKSBtZXRob2RzIik7CisKKyAgICAgICAgRGF0ZSBkID0gbmV3IERhdGUoKGxvbmcpODM3MDM5OTI4MDQ2LjApOworCisgICAgICAgIFN0cmluZ0J1ZmZlciByZXMxID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzMiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MxID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zMiA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworCisgICAgICAgIHJlczEgPSBkZWYuZm9ybWF0KGQsIHJlczEsIHBvczEpOworICAgICAgICBsb2dsbiggIiIgKyBkLmdldFRpbWUoKSArICIgZm9ybWF0dGVkIHRvICIgKyByZXMxKTsKKworICAgICAgICByZXMyID0gY3VzdDEuZm9ybWF0KGQsIHJlczIsIHBvczIpOworICAgICAgICBsb2dsbigiIiArIGQuZ2V0VGltZSgpICsgIiBmb3JtYXR0ZWQgdG8gIiArIHJlczIpOworCisgICAgICAgIC8vID09PT09PT0gVGVzdCBwYXJzZSgpCisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgcGFyc2UoKSIpOworCisgICAgICAgIFN0cmluZyB0ZXh0ID0gbmV3IFN0cmluZygiMDIvMDMvNzYgMjo1MCBBTSwgQ1NUIik7CisgICAgICAgIERhdGUgcmVzdWx0MSA9IG5ldyBEYXRlKCk7CisgICAgICAgIERhdGUgcmVzdWx0MiA9IG5ldyBEYXRlKCk7CisgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgcmVzdWx0MSA9IGRlZi5wYXJzZSh0ZXh0LCBwb3MpOworICAgICAgICBsb2dsbih0ZXh0ICsgIiBwYXJzZWQgaW50byAiICsgcmVzdWx0MSk7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdDIgPSBkZWYucGFyc2UodGV4dCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogcGFyc2UoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBsb2dsbih0ZXh0ICsgIiBwYXJzZWQgaW50byAiICsgcmVzdWx0Mik7CisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGdldHRlcnMgYW5kIHNldHRlcnMKKworICAgICAgICBsb2dsbigiVGVzdGluZyBnZXR0ZXJzIGFuZCBzZXR0ZXJzIik7CisKKyAgICAgICAgZmluYWwgRGF0ZUZvcm1hdFN5bWJvbHMgc3ltcyA9IHBhdC5nZXREYXRlRm9ybWF0U3ltYm9scygpOworICAgICAgICBkZWYuc2V0RGF0ZUZvcm1hdFN5bWJvbHMoc3ltcyk7CisgICAgICAgIHBhdF9mci5zZXREYXRlRm9ybWF0U3ltYm9scyhzeW1zKTsKKyAgICAgICAgaWYoICEgcGF0LmdldERhdGVGb3JtYXRTeW1ib2xzKCkuZXF1YWxzKGRlZi5nZXREYXRlRm9ybWF0U3ltYm9scygpKSApIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0IERhdGVGb3JtYXRTeW1ib2xzKCkgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICAvKgorICAgICAgICBEYXRlRm9ybWF0U3ltYm9scyBoYXMgbm90IHRoZSBtZXRob2QgZ2V0VHdvRGlnaXRTdGFydERhdGUoKTsKKyAgICAgICAgLy9EYXRlIHN0YXJ0RGF0ZSA9IG51bGw7IC8vVGhlIHZhcmlhYmxlIGlzIG5ldmVyIHVzZWQKKyAgICAgICAgdHJ5IHsKKy8vICAgICAgICAgICAgc3RhcnREYXRlID0gcGF0LmdldFR3b0RpZ2l0U3RhcnREYXRlKCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGdldFR3b0RpZ2l0U3RhcnREYXRlKCkgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICB0cnkgeworLy8gICAgICAgICAgICBwYXRfZnIuc2V0VHdvRGlnaXRTdGFydERhdGUoc3RhcnREYXRlKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0VHdvRGlnaXRTdGFydERhdGUoKSBmYWlsZWQiKTsKKyAgICAgICAgfSovCisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGFwcGx5UGF0dGVybigpCisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgYXBwbHlQYXR0ZXJuKCkiKTsKKworICAgICAgICBTdHJpbmcgcDEgPSBuZXcgU3RyaW5nKCJ5eXl5Lk1NLmRkIEcgJ2F0JyBoaDptbTpzcyB6Iik7CisgICAgICAgIGxvZ2xuKCJBcHBseWluZyBwYXR0ZXJuICIgKyBwMSk7CisgICAgICAgIHBhdC5hcHBseVBhdHRlcm4ocDEpOworCisgICAgICAgIFN0cmluZyBzMiA9IHBhdC50b1BhdHRlcm4oKTsKKyAgICAgICAgbG9nbG4oIkV4dHJhY3RlZCBwYXR0ZXJuIGlzICIgKyBzMik7CisgICAgICAgIGlmKCAhIHMyLmVxdWFscyhwMSkgKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHRvUGF0dGVybigpIHJlc3VsdCBkaWQgbm90IG1hdGNoIHBhdHRlcm4gYXBwbGllZCIpOworICAgICAgICB9CisKKyAgICAgICAgbG9nbG4oIkFwcGx5aW5nIHBhdHRlcm4gIiArIHAxKTsKKyAgICAgICAgcGF0LmFwcGx5TG9jYWxpemVkUGF0dGVybihwMSk7CisgICAgICAgIFN0cmluZyBzMyA9IHBhdC50b0xvY2FsaXplZFBhdHRlcm4oKTsKKyAgICAgICAgbG9nbG4oIkV4dHJhY3RlZCBwYXR0ZXJuIGlzICIgKyBzMyk7CisgICAgICAgIGlmKCAhIHMzLmVxdWFscyhwMSkgKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHRvTG9jYWxpemVkUGF0dGVybigpIHJlc3VsdCBkaWQgbm90IG1hdGNoIHBhdHRlcm4gYXBwbGllZCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGdldFN0YXRpY0NsYXNzSUQoKQorCisvLyAgICAgICAgbG9nbG4oIlRlc3RpbmcgaW5zdGFuY2VvZiIpOworCisvLyAgICAgICAgdHJ5IHsKKy8vICAgICAgICAgICAgRGF0ZUZvcm1hdCB0ZXN0ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoKTsKKworLy8gICAgICAgICAgICBpZiAoISAodGVzdCBpbnN0YW5jZW9mIFNpbXBsZURhdGVGb3JtYXQpKSB7CisvLyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IGluc3RhbmNlb2YgZmFpbGVkIik7CisvLyAgICAgICAgICAgIH0KKy8vICAgICAgICB9CisvLyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisvLyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogQ291bGRuJ3QgY3JlYXRlIGEgU2ltcGxlRGF0ZUZvcm1hdCIpOworLy8gICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L051bWJlckZvcm1hdFJlZ3Jlc3Npb25UZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L051bWJlckZvcm1hdFJlZ3Jlc3Npb25UZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDRiMmQ3ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvTnVtYmVyRm9ybWF0UmVncmVzc2lvblRlc3QuamF2YQpAQCAtMCwwICsxLDE4OCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L051bWJlckZvcm1hdFJlZ3Jlc3Npb25UZXN0LmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDU6MTEgJCAKKyAqICRSZXZpc2lvbjogMS4zICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjEuOC4xIDogZm9ybWF0IDogTnVtYmVyRm9ybWF0UmVncmVzc2lvblRlc3QKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L251bXJndHMuY3BwCisgKiovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0OworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CitpbXBvcnQgamF2YS5pby4qOworCisvKiogCisgKiBQZXJmb3JtcyByZWdyZXNzaW9uIHRlc3QgZm9yIE1lc3NhZ2VGb3JtYXQKKyAqKi8KK3B1YmxpYyBjbGFzcyBOdW1iZXJGb3JtYXRSZWdyZXNzaW9uVGVzdCBleHRlbmRzIGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrIHsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBuZXcgTnVtYmVyRm9ybWF0UmVncmVzc2lvblRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIGFscGhhV29ya3MgdXBncmFkZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTYxMTAwKCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgbmYuc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKDEpOworICAgICAgICBuZi5zZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoMSk7CisgICAgICAgIGRvdWJsZSBhID0gLTAuMDk7CisgICAgICAgIFN0cmluZyBzID0gbmYuZm9ybWF0KGEpOworICAgICAgICBsb2dsbihhICsgIiB4ICIgKworICAgICAgICAgICAgICAoKERlY2ltYWxGb3JtYXQpIG5mKS50b1BhdHRlcm4oKSArICIgPSAiICsgcyk7CisgICAgICAgIGlmICghcy5lcXVhbHMoIi0wLjEiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUwiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBEYXRlRm9ybWF0IHNob3VsZCBjYWxsIHNldEludGVnZXJQYXJzZU9ubHkoVFJVRSkgb24gYWRvcHRlZAorICAgICAqIE51bWJlckZvcm1hdCBvYmplY3RzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RKNjkxKCkgeworICAgICAgICAKKyAgICAgICAgTG9jYWxlIGxvYyA9IG5ldyBMb2NhbGUoImZyIiwgIkNIIik7CisgICAgCisgICAgICAgIC8vIHNldCB1cCB0aGUgaW5wdXQgZGF0ZSBzdHJpbmcgJiBleHBlY3RlZCBvdXRwdXQKKyAgICAgICAgU3RyaW5nIHVkdCA9ICIxMS4xMC4yMDAwIjsKKyAgICAgICAgU3RyaW5nIGV4cCA9ICIxMS4xMC4wMCI7CisgICAgCisgICAgICAgIC8vIGNyZWF0ZSBhIENhbGVuZGFyIGZvciB0aGlzIGxvY2FsZQorICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShsb2MpOworICAgIAorICAgICAgICAvLyBjcmVhdGUgYSBOdW1iZXJGb3JtYXQgZm9yIHRoaXMgbG9jYWxlCisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShsb2MpOworICAgIAorICAgICAgICAvLyAqKiogSGVyZSdzIHRoZSBrZXk6IFdlIGRvbid0IHdhbnQgdG8gaGF2ZSB0byBkbyBUSElTOgorICAgICAgICAvL25mLnNldFBhcnNlSW50ZWdlck9ubHkodHJ1ZSk7CisgICAgCisgICAgICAgIC8vIGNyZWF0ZSB0aGUgRGF0ZUZvcm1hdAorICAgICAgICBEYXRlRm9ybWF0IGRmID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5TSE9SVCwgbG9jKTsKKyAgICAKKyAgICAgICAgZGYuc2V0Q2FsZW5kYXIoY2FsKTsKKyAgICAgICAgZGYuc2V0TnVtYmVyRm9ybWF0KG5mKTsKKyAgICAKKyAgICAgICAgLy8gc2V0IHBhcnNpbmcgdG8gbGVuaWVudCAmIHBhcnNlCisgICAgICAgIERhdGUgdWxvY2RhdCA9IG5ldyBEYXRlKCk7CisgICAgICAgIGRmLnNldExlbmllbnQodHJ1ZSk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB1bG9jZGF0ID0gZGYucGFyc2UodWR0KTsKKyAgICAgICAgfSBjYXRjaCAoamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uIHBlKSB7CisgICAgICAgICAgICBlcnJsbihwZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgICAgIC8vIGZvcm1hdCBiYWNrIHRvIGEgc3RyaW5nCisgICAgICAgIFN0cmluZyBvdXRTdHJpbmcgPSBkZi5mb3JtYXQodWxvY2RhdCk7CisgICAgCisgICAgICAgIGlmICghb3V0U3RyaW5nLmVxdWFscyhleHApKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIHVkdCArICIgPT4gIiArIG91dFN0cmluZyk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCBnZXRJbnRlZ2VySW5zdGFuY2UoKTsKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDQwODA2NigpIHsKKyAgICAgICAgCisgICAgICAgIE51bWJlckZvcm1hdCBuZjEgPSBOdW1iZXJGb3JtYXQuZ2V0SW50ZWdlckluc3RhbmNlKCk7CisgICAgICAgIE51bWJlckZvcm1hdCBuZjIgPSBOdW1iZXJGb3JtYXQuZ2V0SW50ZWdlckluc3RhbmNlKExvY2FsZS5DSElOQSk7CisgICAgCisgICAgICAgIC8vdGVzdCBpc1BhcnNlSW50ZWdlck9ubHkKKyAgICAgICAgaWYgKCFuZjEuaXNQYXJzZUludGVnZXJPbmx5KCkgfHwgIW5mMi5pc1BhcnNlSW50ZWdlck9ubHkoKSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWxlZCA6IEludGVnZXIgTnVtYmVyIEZvcm1hdCBJbnN0YW5jZSBzaG91bGQgc2V0IHNldFBhcnNlSW50ZWdlck9ubHkodHJ1ZSkiKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvL1Rlc3QgZm9ybWF0CisgICAgICAgIHsKKyAgICAgICAgICAgIGRvdWJsZVtdIGRhdGEgPSB7CisgICAgICAgICAgICAgICAgLTMuNzUsIC0yLjUsIC0xLjUsIAorICAgICAgICAgICAgICAgIC0xLjI1LCAwLCAgICAxLjAsIAorICAgICAgICAgICAgICAgIDEuMjUsICAxLjUsICAyLjUsIAorICAgICAgICAgICAgICAgIDMuNzUsICAxMC4wLCAyNTUuNQorICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICBTdHJpbmdbXSBleHBlY3RlZCA9IHsKKyAgICAgICAgICAgICAgICAiLTQiLCAiLTIiLCAiLTIiLAorICAgICAgICAgICAgICAgICItMSIsICIwIiwgICIxIiwKKyAgICAgICAgICAgICAgICAiMSIsICAiMiIsICAiMiIsCisgICAgICAgICAgICAgICAgIjQiLCAgIjEwIiwgIjI1NiIKKyAgICAgICAgICAgICAgICB9OworICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IG5mMS5mb3JtYXQoZGF0YVtpXSk7CisgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQuZXF1YWxzKGV4cGVjdGVkW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbGVkID0+IFNvdXJjZTogIiArIERvdWJsZS50b1N0cmluZyhkYXRhW2ldKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIjtGb3JtYXR0ZWQgOiAiICsgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgICAgICArICI7YnV0IGV4cGVjdHRlZDogIiArIGV4cGVjdGVkW2ldKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy9UZXN0IHBhcnNlLCBQYXJzaW5nIHNob3VsZCBzdG9wIGF0ICIuIgorICAgICAgICB7CisgICAgICAgICAgICBTdHJpbmcgZGF0YVtdID0geworICAgICAgICAgICAgICAgICItMy43NSIsICItMi41IiwgIi0xLjUiLCAKKyAgICAgICAgICAgICAgICAiLTEuMjUiLCAiMCIsICAgICIxLjAiLCAKKyAgICAgICAgICAgICAgICAiMS4yNSIsICAiMS41IiwgICIyLjUiLCAKKyAgICAgICAgICAgICAgICAiMy43NSIsICAiMTAuMCIsICIyNTUuNSIKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgbG9uZ1tdIGV4cGVjdGVkID0geworICAgICAgICAgICAgICAgIC0zLCAtMiwgLTEsCisgICAgICAgICAgICAgICAgLTEsIDAsICAxLAorICAgICAgICAgICAgICAgIDEsICAxLCAgMiwKKyAgICAgICAgICAgICAgICAzLCAgMTAsIDI1NQorICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIE51bWJlciBuID0gbnVsbDsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBuID0gbmYxLnBhcnNlKGRhdGFbaV0pOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWxlZDogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCEobiBpbnN0YW5jZW9mIExvbmcpIHx8IChuIGluc3RhbmNlb2YgSW50ZWdlcikpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWxlZDogSW50ZWdlciBOdW1iZXIgRm9ybWF0IHNob3VsZCBwYXJzZSBzdHJpbmcgdG8gTG9uZy9JbnRlZ2VyIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChuLmxvbmdWYWx1ZSgpICE9IGV4cGVjdGVkW2ldKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsZWQ9PiBTb3VyY2U6ICIgKyBkYXRhW2ldIAorICAgICAgICAgICAgICAgICAgICAgICAgKyAiO3Jlc3VsdCA6ICIgKyBuLnRvU3RyaW5nKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIjtleHBlY3RlZCA6IiArIExvbmcudG9TdHJpbmcoZXhwZWN0ZWRbaV0pKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy9UZXN0IE5ldyBzZXJpYWxpemVkIERlY2ltYWxGb3JtYXQoMi4wKSByZWFkIG9sZCBzZXJpYWxpemVkIGZvcm1zIG9mIERlY2ltYWxGb3JtYXQoMS4zLjEuMSkKKyAgICBwdWJsaWMgdm9pZCBUZXN0U2VyaWFsaXphdGlvbigpIHRocm93cyBJT0V4Y2VwdGlvbiwgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbnsKKyAgICAgICAgYnl0ZVtdW10gY29udGVudHMgPSBOdW1iZXJGb3JtYXRTZXJpYWxUZXN0RGF0YS5nZXRDb250ZW50KCk7CisgICAgICAgIGRvdWJsZSBkYXRhID0gMTIzNC41NjsKKyAgICAgICAgU3RyaW5nW10gZXhwZWN0ZWQgPSB7CisgICAgICAgICAgICAiMSwyMzQuNTYiLCAiJDEsMjM0LjU2IiwgIjEyMyw0NTYlIiwgIjEuMjM0NTZFMyJ9OworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDQ7ICsraSkgeworICAgICAgICAgICAgT2JqZWN0SW5wdXRTdHJlYW0gb2lzID0gbmV3IE9iamVjdElucHV0U3RyZWFtKG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbShjb250ZW50c1tpXSkpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBOdW1iZXJGb3JtYXQgZm9ybWF0ID0gKE51bWJlckZvcm1hdCkgb2lzLnJlYWRPYmplY3QoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gZm9ybWF0LmZvcm1hdChkYXRhKTsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmVxdWFscyhleHBlY3RlZFtpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIk9LOiBEZXNlcmlhbGl6ZWQgYm9ndXMgTnVtYmVyRm9ybWF0KG5ldyB2ZXJzaW9uIHJlYWQgb2xkIHZlcnNpb24pIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IHRoZSB0ZXN0IGRhdGEgZm9ybWF0cyBhcmUgbm90IGV1cWFsIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L051bWJlckZvcm1hdFJvdW5kVHJpcFRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvTnVtYmVyRm9ybWF0Um91bmRUcmlwVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg5YTQ4MGEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L051bWJlckZvcm1hdFJvdW5kVHJpcFRlc3QuamF2YQpAQCAtMCwwICsxLDIzNiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L051bWJlckZvcm1hdFJvdW5kVHJpcFRlc3QuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNToxMiAkIAorICogJFJldmlzaW9uOiAxLjIgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnRpbmcgRnJvbTogSUNVNEMgdjEuOC4xIDogZm9ybWF0IDogTnVtYmVyRm9ybWF0Um91bmRUcmlwVGVzdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3Qvbm1mbXRydC5jcHAKKyAqKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCisvKiogCisgKiBQZXJmb3JtcyByb3VuZC10cmlwIHRlc3RzIGZvciBOdW1iZXJGb3JtYXQKKyAqKi8KK3B1YmxpYyBjbGFzcyBOdW1iZXJGb3JtYXRSb3VuZFRyaXBUZXN0IGV4dGVuZHMgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2sgeworICAgIAorICAgIHB1YmxpYyBkb3VibGUgTUFYX0VSUk9SID0gMWUtMTQ7CisgICAgcHVibGljIGRvdWJsZSBtYXhfbnVtZXJpY19lcnJvciA9IDAuMDsKKyAgICBwdWJsaWMgZG91YmxlIG1pbl9udW1lcmljX2Vycm9yID0gMS4wOworICAgIHB1YmxpYyBib29sZWFuIHZlcmJvc2UgPSBmYWxzZTsKKyAgICBwdWJsaWMgYm9vbGVhbiBTVFJJTkdfQ09NUEFSRSA9IGZhbHNlOworICAgIHB1YmxpYyBib29sZWFuIEVYQUNUX05VTUVSSUNfQ09NUEFSRSA9IGZhbHNlOworICAgIHB1YmxpYyBib29sZWFuIERFQlVHID0gZmFsc2U7CisgICAgcHVibGljIGJvb2xlYW4gcXVpY2sgPSB0cnVlOworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgTnVtYmVyRm9ybWF0Um91bmRUcmlwVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdE51bWJlckZvcm1hdFJvdW5kVHJpcCgpIHsKKyAgICAKKyAgICAgICAgTnVtYmVyRm9ybWF0IGZtdCA9IG51bGw7CisgICAgCisgICAgICAgIGxvZ2xuKCJEZWZhdWx0IExvY2FsZSIpOworICAgICAgICAKKyAgICAgICAgbG9nbG4oIkRlZmF1bHQgTnVtYmVyIGZvcm1hdCIpOworICAgICAgICBmbXQgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgX3Rlc3QoZm10KTsKKyAgICAKKyAgICAgICAgbG9nbG4oIkN1cnJlbmN5IEZvcm1hdCIpOworICAgICAgICBmbXQgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZSgpOworICAgICAgICBfdGVzdChmbXQpOworICAgIAorICAgICAgICBsb2dsbigiUGVyY2VudCBGb3JtYXQiKTsKKyAgICAgICAgZm10ID0gTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZSgpOworICAgICAgICBfdGVzdChmbXQpOworICAgIAorICAgIAorICAgICAgICBpbnQgbG9jQ291bnQgPSAwOworICAgICAgICBmaW5hbCBMb2NhbGVbXSBsb2MgPSBOdW1iZXJGb3JtYXQuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICBpZihxdWljaykgeworICAgICAgICAgICAgaWYobG9jQ291bnQgPiA1KQorICAgICAgICAgICAgICAgIGxvY0NvdW50ID0gNTsKKyAgICAgICAgICAgIGxvZ2xuKCJRdWljayBtb2RlOiBvbmx5IF90ZXN0aW5nIGZpcnN0IDUgTG9jYWxlcyIpOworICAgICAgICB9CisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBsb2NDb3VudDsgKytpKSB7CisgICAgICAgICAgICBsb2dsbihsb2NbaV0uZ2V0RGlzcGxheU5hbWUoKSk7CisgICAgCisgICAgICAgICAgICBmbXQgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UobG9jW2ldKTsKKyAgICAgICAgICAgIF90ZXN0KGZtdCk7CisgICAgICAgIAorICAgICAgICAgICAgZm10ID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UobG9jW2ldKTsKKyAgICAgICAgICAgIF90ZXN0KGZtdCk7CisgICAgICAgIAorICAgICAgICAgICAgZm10ID0gTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZShsb2NbaV0pOworICAgICAgICAgICAgX3Rlc3QoZm10KTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBsb2dsbigiTnVtZXJpYyBlcnJvciAiICsgbWluX251bWVyaWNfZXJyb3IgKyAiIHRvICIgKyBtYXhfbnVtZXJpY19lcnJvcik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiBhIHJhbmRvbSB2YWx1ZSBmcm9tIC1yYW5nZS4uK3JhbmdlLgorICAgICAqLworICAgIHB1YmxpYyBkb3VibGUgcmFuZG9tRG91YmxlKGRvdWJsZSByYW5nZSkgeworICAgICAgICByZXR1cm4gTWF0aC5yYW5kb20oKSAqIHJhbmdlOworICAgIH0gCisgICAgCisgICAgcHVibGljIHZvaWQgX3Rlc3QoTnVtYmVyRm9ybWF0IGZtdCkgeworICAgIAorICAgICAgICBfdGVzdChmbXQsIERvdWJsZS5OYU4pOworICAgICAgICBfdGVzdChmbXQsIERvdWJsZS5QT1NJVElWRV9JTkZJTklUWSk7CisgICAgICAgIF90ZXN0KGZtdCwgRG91YmxlLk5FR0FUSVZFX0lORklOSVRZKTsKKyAgICAKKyAgICAgICAgX3Rlc3QoZm10LCA1MDApOworICAgICAgICBfdGVzdChmbXQsIDApOworICAgICAgICBfdGVzdChmbXQsIC0wKTsKKyAgICAgICAgX3Rlc3QoZm10LCAwLjApOworICAgICAgICBkb3VibGUgbmVnWmVybyA9IDAuMDsKKyAgICAgICAgbmVnWmVybyAvPSAtMS4wOworICAgICAgICBfdGVzdChmbXQsIG5lZ1plcm8pOworICAgICAgICBfdGVzdChmbXQsIDkyMjMzNzIwMzY4NTQ3NzU4MDguMGQpOworICAgICAgICBfdGVzdChmbXQsIC05MjIzMzcyMDM2ODU0Nzc1ODA5LjBkKTsKKyAgICAgICAgLy9fdGVzdChmbXQsIDYuOTM2MDY1ODc2MTAwNDkzRTc0ZCk7CisgICAgICAgIAorICAgIC8vICAgIF90ZXN0KGZtdCwgNi4yMTIxMjI4NDUyODE5MDlFNDhkKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAxMDsgKytpKSB7CisgICAgCisgICAgICAgICAgICBfdGVzdChmbXQsIHJhbmRvbURvdWJsZSgxKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIF90ZXN0KGZtdCwgcmFuZG9tRG91YmxlKDEwMDAwKSk7CisgICAgCisgICAgICAgICAgICBfdGVzdChmbXQsIE1hdGguZmxvb3IoKHJhbmRvbURvdWJsZSgxMDAwMCkpKSk7CisgICAgCisgICAgICAgICAgICBfdGVzdChmbXQsIHJhbmRvbURvdWJsZSgxZTUwKSk7CisgICAgCisgICAgICAgICAgICBfdGVzdChmbXQsIHJhbmRvbURvdWJsZSgxZS01MCkpOworICAgIAorICAgICAgICAgICAgX3Rlc3QoZm10LCByYW5kb21Eb3VibGUoMWUxMDApKTsKKyAgICAKKyAgICAgICAgICAgIF90ZXN0KGZtdCwgcmFuZG9tRG91YmxlKDFlNzUpKTsKKyAgICAKKyAgICAgICAgICAgIF90ZXN0KGZtdCwgcmFuZG9tRG91YmxlKDFlMzA4KSAvICgoRGVjaW1hbEZvcm1hdCkgZm10KS5nZXRNdWx0aXBsaWVyKCkpOworICAgIAorICAgICAgICAgICAgX3Rlc3QoZm10LCByYW5kb21Eb3VibGUoMWU3NSkgLyAoKERlY2ltYWxGb3JtYXQpIGZtdCkuZ2V0TXVsdGlwbGllcigpKTsKKyAgICAKKyAgICAgICAgICAgIF90ZXN0KGZtdCwgcmFuZG9tRG91YmxlKDFlNjUpIC8gKChEZWNpbWFsRm9ybWF0KSBmbXQpLmdldE11bHRpcGxpZXIoKSk7CisgICAgCisgICAgICAgICAgICBfdGVzdChmbXQsIHJhbmRvbURvdWJsZSgxZS0yOTIpKTsKKyAgICAKKyAgICAgICAgICAgIF90ZXN0KGZtdCwgcmFuZG9tRG91YmxlKDFlLTc4KSk7CisgICAgCisgICAgICAgICAgICBfdGVzdChmbXQsIHJhbmRvbURvdWJsZSgxZS0zMjMpKTsKKyAgICAKKyAgICAgICAgICAgIF90ZXN0KGZtdCwgcmFuZG9tRG91YmxlKDFlLTEwMCkpOworICAgIAorICAgICAgICAgICAgX3Rlc3QoZm10LCByYW5kb21Eb3VibGUoMWUtNzgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBfdGVzdChOdW1iZXJGb3JtYXQgZm10LCBkb3VibGUgdmFsdWUpIHsKKyAgICAgICAgX3Rlc3QoZm10LCBuZXcgRG91YmxlKHZhbHVlKSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIF90ZXN0KE51bWJlckZvcm1hdCBmbXQsIGxvbmcgdmFsdWUpIHsKKyAgICAgICAgX3Rlc3QoZm10LCBuZXcgTG9uZyh2YWx1ZSkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBfdGVzdChOdW1iZXJGb3JtYXQgZm10LCBOdW1iZXIgdmFsdWUpIHsKKyAgICAgICAgbG9nbG4oInRlc3QgZGF0YSA9ICIgKyB2YWx1ZSk7CisgICAgICAgIGZtdC5zZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoOTk5KTsKKyAgICAgICAgU3RyaW5nIHMsIHMyOworICAgICAgICBpZiAodmFsdWUuZ2V0Q2xhc3MoKS5nZXROYW1lKCkuZXF1YWxzSWdub3JlQ2FzZSgiamF2YS5sYW5nLkRvdWJsZSIpKQorICAgICAgICAgICAgcyA9IGZtdC5mb3JtYXQodmFsdWUuZG91YmxlVmFsdWUoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHMgPSBmbXQuZm9ybWF0KHZhbHVlLmxvbmdWYWx1ZSgpKTsKKyAgICAKKyAgICAgICAgTnVtYmVyIG4gPSBuZXcgRG91YmxlKDApOworICAgICAgICBib29sZWFuIHNob3cgPSB2ZXJib3NlOworICAgICAgICBpZiAoREVCVUcpCisgICAgICAgICAgICBsb2dsbigKKyAgICAgICAgICAgIC8qdmFsdWUuZ2V0U3RyaW5nKHRlbXApICsqLyAiIEY+ICIgKyBzKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG4gPSBmbXQucGFyc2Uocyk7CisgICAgICAgIH0gY2F0Y2ggKGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZSk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgaWYgKERFQlVHKQorICAgICAgICAgICAgbG9nbG4ocyArICIgUD4gIiAvKisgbi5nZXRTdHJpbmcodGVtcCkqLyk7CisgICAgCisgICAgICAgIGlmICh2YWx1ZS5nZXRDbGFzcygpLmdldE5hbWUoKS5lcXVhbHNJZ25vcmVDYXNlKCJqYXZhLmxhbmcuRG91YmxlIikpCisgICAgICAgICAgICBzMiA9IGZtdC5mb3JtYXQobi5kb3VibGVWYWx1ZSgpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgczIgPSBmbXQuZm9ybWF0KG4ubG9uZ1ZhbHVlKCkpOworICAgIAorICAgICAgICBpZiAoREVCVUcpCisgICAgICAgICAgICBsb2dsbigvKm4uZ2V0U3RyaW5nKHRlbXApICsqLyAiIEY+ICIgKyBzMik7CisgICAgCisgICAgICAgIGlmIChTVFJJTkdfQ09NUEFSRSkgeworICAgICAgICAgICAgaWYgKCFzLmVxdWFscyhzMikpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiKioqIFNUUklORyBFUlJPUiBcIiIgKyBzICsgIlwiICE9IFwiIiArIHMyICsgIlwiIik7CisgICAgICAgICAgICAgICAgc2hvdyA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgaWYgKEVYQUNUX05VTUVSSUNfQ09NUEFSRSkgeworICAgICAgICAgICAgaWYgKHZhbHVlICE9IG4pIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiKioqIE5VTUVSSUMgRVJST1IiKTsKKyAgICAgICAgICAgICAgICBzaG93ID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIENvbXB1dGUgcHJvcG9ydGlvbmFsIGVycm9yCisgICAgICAgICAgICBkb3VibGUgZXJyb3IgPSBwcm9wb3J0aW9uYWxFcnJvcih2YWx1ZSwgbik7CisgICAgCisgICAgICAgICAgICBpZiAoZXJyb3IgPiBNQVhfRVJST1IpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiKioqIE5VTUVSSUMgRVJST1IgIiArIGVycm9yKTsKKyAgICAgICAgICAgICAgICBzaG93ID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIGlmIChlcnJvciA+IG1heF9udW1lcmljX2Vycm9yKQorICAgICAgICAgICAgICAgIG1heF9udW1lcmljX2Vycm9yID0gZXJyb3I7CisgICAgICAgICAgICBpZiAoZXJyb3IgPCBtaW5fbnVtZXJpY19lcnJvcikKKyAgICAgICAgICAgICAgICBtaW5fbnVtZXJpY19lcnJvciA9IGVycm9yOworICAgICAgICB9CisgICAgCisgICAgICAgIGlmIChzaG93KQorICAgICAgICAgICAgbG9nbG4oCisgICAgICAgICAgICAvKnZhbHVlLmdldFN0cmluZyh0ZW1wKSArKi8gdmFsdWUuZ2V0Q2xhc3MoKS5nZXROYW1lKCkgKyAiIEY+ICIgKyBzICsgIiBQPiAiICsKKyAgICAgICAgICAgIC8qbi5nZXRTdHJpbmcodGVtcCkgKyovIG4uZ2V0Q2xhc3MoKS5nZXROYW1lKCkgKyAiIEY+ICIgKyBzMik7CisgICAgCisgICAgfQorICAgICAgICAKKyAgICBwdWJsaWMgZG91YmxlIHByb3BvcnRpb25hbEVycm9yKE51bWJlciBhLCBOdW1iZXIgYikgeworICAgICAgICBkb3VibGUgYWEsYmI7CisgICAgICAgIAorICAgICAgICBpZihhLmdldENsYXNzKCkuZ2V0TmFtZSgpLmVxdWFsc0lnbm9yZUNhc2UoImphdmEubGFuZy5Eb3VibGUiKSkKKyAgICAgICAgICAgIGFhID0gYS5kb3VibGVWYWx1ZSgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBhYSA9IGEubG9uZ1ZhbHVlKCk7CisgICAgCisgICAgICAgIGlmKGEuZ2V0Q2xhc3MoKS5nZXROYW1lKCkuZXF1YWxzSWdub3JlQ2FzZSgiamF2YS5sYW5nLkRvdWJsZSIpKQorICAgICAgICAgICAgYmIgPSBiLmRvdWJsZVZhbHVlKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGJiID0gYi5sb25nVmFsdWUoKTsKKyAgICAKKyAgICAgICAgZG91YmxlIGVycm9yID0gYWEgLSBiYjsKKyAgICAgICAgaWYoYWEgIT0gMCAmJiBiYiAhPSAwKSAKKyAgICAgICAgICAgIGVycm9yIC89IGFhOworICAgICAgICAgICAKKyAgICAgICAgcmV0dXJuIE1hdGguYWJzKGVycm9yKTsKKyAgICB9ICAgCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJGb3JtYXRTZXJpYWxUZXN0RGF0YS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJGb3JtYXRTZXJpYWxUZXN0RGF0YS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjkwMzdjMmMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L051bWJlckZvcm1hdFNlcmlhbFRlc3REYXRhLmphdmEKQEAgLTAsMCArMSwzMTEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJGb3JtYXRTZXJpYWxUZXN0RGF0YS5qYXZhLHYgJAorICogJERhdGU6IDIwMDIvMDIvMTkgMTc6NTk6MDMgJAorICogJFJldmlzaW9uOiAxLjQgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0OworCitwdWJsaWMgY2xhc3MgTnVtYmVyRm9ybWF0U2VyaWFsVGVzdERhdGEgeworICAgIC8vZ2V0IENvbnRlbnQKKyAgICBwdWJsaWMgc3RhdGljIGJ5dGVbXVtdIGdldENvbnRlbnQoKSB7CisJICAgICAgICByZXR1cm4gY29udGVudDsKKyAgICB9CisKKyAgICAvL051bWJlckZvcm1hdC5nZXRJbnN0YW5jZShMb2NhbGUuVVMpCisgICAgc3RhdGljIGJ5dGVbXSBnZW5lcmFsSW5zdGFuY2UgPSBuZXcgYnl0ZVtdeyAKKyAgICAgICAgLTg0LCAtMTksIDAsIDUsIDExNSwgMTE0LCAwLCAzMCwgOTksIDExMSwgMTA5LCA0NiwgMTA1LCA5OCwgMTA5LCA0NiwgMTA1LCA5OSwgMTE3LCA0NiwgCisgICAgICAgIDExNiwgMTAxLCAxMjAsIDExNiwgNDYsIDY4LCAxMDEsIDk5LCAxMDUsIDEwOSwgOTcsIDEwOCwgNzAsIDExMSwgMTE0LCAxMDksIDk3LCAxMTYsIDExLCAtMSwgCisgICAgICAgIDMsIDk4LCAtNDAsIDExNCwgNDgsIDU4LCAyLCAwLCAyMiwgOTAsIDAsIDI3LCAxMDAsIDEwMSwgOTksIDEwNSwgMTA5LCA5NywgMTA4LCA4MywgCisgICAgICAgIDEwMSwgMTEyLCA5NywgMTE0LCA5NywgMTE2LCAxMTEsIDExNCwgNjUsIDEwOCwgMTE5LCA5NywgMTIxLCAxMTUsIDgzLCAxMDQsIDExMSwgMTE5LCAxMTAsIDkwLCAKKyAgICAgICAgMCwgMjMsIDEwMSwgMTIwLCAxMTIsIDExMSwgMTEwLCAxMDEsIDExMCwgMTE2LCA4MywgMTA1LCAxMDMsIDExMCwgNjUsIDEwOCwgMTE5LCA5NywgMTIxLCAxMTUsIAorICAgICAgICA4MywgMTA0LCAxMTEsIDExOSwgMTEwLCA3MywgMCwgMTEsIDEwMiwgMTExLCAxMTQsIDEwOSwgOTcsIDExNiwgODcsIDEwNSwgMTAwLCAxMTYsIDEwNCwgNjYsIAorICAgICAgICAwLCAxMiwgMTAzLCAxMTQsIDExMSwgMTE3LCAxMTIsIDEwNSwgMTEwLCAxMDMsIDgzLCAxMDUsIDEyMiwgMTAxLCA2NiwgMCwgMTMsIDEwMywgMTE0LCAxMTEsIAorICAgICAgICAxMTcsIDExMiwgMTA1LCAxMTAsIDEwMywgODMsIDEwNSwgMTIyLCAxMDEsIDUwLCA2NiwgMCwgMTcsIDEwOSwgMTA1LCAxMTAsIDY5LCAxMjAsIDExMiwgMTExLCAKKyAgICAgICAgMTEwLCAxMDEsIDExMCwgMTE2LCA2OCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAxMTUsIDczLCAwLCAxMCwgMTA5LCAxMTcsIDEwOCwgMTE2LCAxMDUsIDExMiwgMTA4LCAKKyAgICAgICAgMTA1LCAxMDEsIDExNCwgNjcsIDAsIDMsIDExMiwgOTcsIDEwMCwgNzMsIDAsIDExLCAxMTIsIDk3LCAxMDAsIDgwLCAxMTEsIDExNSwgMTA1LCAxMTYsIAorICAgICAgICAxMDUsIDExMSwgMTEwLCA3MywgMCwgMTIsIDExNCwgMTExLCAxMTcsIDExMCwgMTAwLCAxMDUsIDExMCwgMTAzLCA3NywgMTExLCAxMDAsIDEwMSwgNzMsIDAsIAorICAgICAgICAyMSwgMTE1LCAxMDEsIDExNCwgMTA1LCA5NywgMTA4LCA4NiwgMTAxLCAxMTQsIDExNSwgMTA1LCAxMTEsIDExMCwgNzksIDExMCwgODMsIDExNiwgMTE0LCAxMDEsIAorICAgICAgICA5NywgMTA5LCA5MCwgMCwgMjIsIDExNywgMTE1LCAxMDEsIDY5LCAxMjAsIDExMiwgMTExLCAxMTAsIDEwMSwgMTEwLCAxMTYsIDEwNSwgOTcsIDEwOCwgNzgsIAorICAgICAgICAxMTEsIDExNiwgOTcsIDExNiwgMTA1LCAxMTEsIDExMCwgNzYsIDAsIDE2LCAxMTAsIDEwMSwgMTAzLCA4MCwgMTE0LCAxMDEsIDEwMiwgMTA1LCAxMjAsIDgwLCAKKyAgICAgICAgOTcsIDExNiwgMTE2LCAxMDEsIDExNCwgMTEwLCAxMTYsIDAsIDE4LCA3NiwgMTA2LCA5NywgMTE4LCA5NywgNDcsIDEwOCwgOTcsIDExMCwgMTAzLCA0NywgCisgICAgICAgIDgzLCAxMTYsIDExNCwgMTA1LCAxMTAsIDEwMywgNTksIDc2LCAwLCAxNiwgMTEwLCAxMDEsIDEwMywgODMsIDExNywgMTAyLCAxMDIsIDEwNSwgMTIwLCA4MCwgCisgICAgICAgIDk3LCAxMTYsIDExNiwgMTAxLCAxMTQsIDExMCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNCwgMTEwLCAxMDEsIDEwMywgOTcsIDExNiwgMTA1LCAKKyAgICAgICAgMTE4LCAxMDEsIDgwLCAxMTQsIDEwMSwgMTAyLCAxMDUsIDEyMCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNCwgMTEwLCAxMDEsIDEwMywgOTcsIAorICAgICAgICAxMTYsIDEwNSwgMTE4LCAxMDEsIDgzLCAxMTcsIDEwMiwgMTAyLCAxMDUsIDEyMCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNiwgMTEyLCAxMTEsIAorICAgICAgICAxMTUsIDgwLCAxMTQsIDEwMSwgMTAyLCAxMDUsIDEyMCwgODAsIDk3LCAxMTYsIDExNiwgMTAxLCAxMTQsIDExMCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAKKyAgICAgICAgMCwgMTYsIDExMiwgMTExLCAxMTUsIDgzLCAxMTcsIDEwMiwgMTAyLCAxMDUsIDEyMCwgODAsIDk3LCAxMTYsIDExNiwgMTAxLCAxMTQsIDExMCwgMTEzLCAwLCAKKyAgICAgICAgMTI2LCAwLCAxLCA3NiwgMCwgMTQsIDExMiwgMTExLCAxMTUsIDEwNSwgMTE2LCAxMDUsIDExOCwgMTAxLCA4MCwgMTE0LCAxMDEsIDEwMiwgMTA1LCAxMjAsIAorICAgICAgICAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE0LCAxMTIsIDExMSwgMTE1LCAxMDUsIDExNiwgMTA1LCAxMTgsIDEwMSwgODMsIDExNywgMTAyLCAxMDIsIAorICAgICAgICAxMDUsIDEyMCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNywgMTE0LCAxMTEsIDExNywgMTEwLCAxMDAsIDEwNSwgMTEwLCAxMDMsIDczLCAxMTAsIAorICAgICAgICA5OSwgMTE0LCAxMDEsIDEwOSwgMTAxLCAxMTAsIDExNiwgMTE2LCAwLCAyMiwgNzYsIDEwNiwgOTcsIDExOCwgOTcsIDQ3LCAxMDksIDk3LCAxMTYsIDEwNCwgCisgICAgICAgIDQ3LCA2NiwgMTA1LCAxMDMsIDY4LCAxMDEsIDk5LCAxMDUsIDEwOSwgOTcsIDEwOCwgNTksIDc2LCAwLCA3LCAxMTUsIDEyMSwgMTA5LCA5OCwgMTExLCAKKyAgICAgICAgMTA4LCAxMTUsIDExNiwgMCwgMzksIDc2LCA5OSwgMTExLCAxMDksIDQ3LCAxMDUsIDk4LCAxMDksIDQ3LCAxMDUsIDk5LCAxMTcsIDQ3LCAxMTYsIDEwMSwgCisgICAgICAgIDEyMCwgMTE2LCA0NywgNjgsIDEwMSwgOTksIDEwNSwgMTA5LCA5NywgMTA4LCA3MCwgMTExLCAxMTQsIDEwOSwgOTcsIDExNiwgODMsIDEyMSwgMTA5LCA5OCwgCisgICAgICAgIDExMSwgMTA4LCAxMTUsIDU5LCAxMjAsIDExNCwgMCwgMjksIDk5LCAxMTEsIDEwOSwgNDYsIDEwNSwgOTgsIDEwOSwgNDYsIDEwNSwgOTksIDExNywgNDYsIAorICAgICAgICAxMTYsIDEwMSwgMTIwLCAxMTYsIDQ2LCA3OCwgMTE3LCAxMDksIDk4LCAxMDEsIDExNCwgNzAsIDExMSwgMTE0LCAxMDksIDk3LCAxMTYsIC0zMywgLTEwLCAtNzcsIAorICAgICAgICAtNjUsIDE5LCAxMjUsIDcsIC0yNCwgMywgMCwgMTEsIDkwLCAwLCAxMiwgMTAzLCAxMTQsIDExMSwgMTE3LCAxMTIsIDEwNSwgMTEwLCAxMDMsIDg1LCAKKyAgICAgICAgMTE1LCAxMDEsIDEwMCwgNjYsIDAsIDE3LCAxMDksIDk3LCAxMjAsIDcwLCAxMTQsIDk3LCA5OSwgMTE2LCAxMDUsIDExMSwgMTEwLCA2OCwgMTA1LCAxMDMsIAorICAgICAgICAxMDUsIDExNiwgMTE1LCA2NiwgMCwgMTYsIDEwOSwgOTcsIDEyMCwgNzMsIDExMCwgMTE2LCAxMDEsIDEwMywgMTAxLCAxMTQsIDY4LCAxMDUsIDEwMywgMTA1LCAKKyAgICAgICAgMTE2LCAxMTUsIDczLCAwLCAyMSwgMTA5LCA5NywgMTIwLCAxMDUsIDEwOSwgMTE3LCAxMDksIDcwLCAxMTQsIDk3LCA5OSwgMTE2LCAxMDUsIDExMSwgMTEwLCAKKyAgICAgICAgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA3MywgMCwgMjAsIDEwOSwgOTcsIDEyMCwgMTA1LCAxMDksIDExNywgMTA5LCA3MywgMTEwLCAxMTYsIDEwMSwgCisgICAgICAgIDEwMywgMTAxLCAxMTQsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgNjYsIDAsIDE3LCAxMDksIDEwNSwgMTEwLCA3MCwgMTE0LCA5NywgOTksIDExNiwgCisgICAgICAgIDEwNSwgMTExLCAxMTAsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgNjYsIDAsIDE2LCAxMDksIDEwNSwgMTEwLCA3MywgMTEwLCAxMTYsIDEwMSwgMTAzLCAKKyAgICAgICAgMTAxLCAxMTQsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgNzMsIDAsIDIxLCAxMDksIDEwNSwgMTEwLCAxMDUsIDEwOSwgMTE3LCAxMDksIDcwLCAxMTQsIAorICAgICAgICA5NywgOTksIDExNiwgMTA1LCAxMTEsIDExMCwgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA3MywgMCwgMjAsIDEwOSwgMTA1LCAxMTAsIDEwNSwgMTA5LCAKKyAgICAgICAgMTE3LCAxMDksIDczLCAxMTAsIDExNiwgMTAxLCAxMDMsIDEwMSwgMTE0LCA2OCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAxMTUsIDkwLCAwLCAxNiwgMTEyLCA5NywgCisgICAgICAgIDExNCwgMTE1LCAxMDEsIDczLCAxMTAsIDExNiwgMTAxLCAxMDMsIDEwMSwgMTE0LCA3OSwgMTEwLCAxMDgsIDEyMSwgNzMsIDAsIDIxLCAxMTUsIDEwMSwgMTE0LCAKKyAgICAgICAgMTA1LCA5NywgMTA4LCA4NiwgMTAxLCAxMTQsIDExNSwgMTA1LCAxMTEsIDExMCwgNzksIDExMCwgODMsIDExNiwgMTE0LCAxMDEsIDk3LCAxMDksIDEyMCwgMTE0LCAKKyAgICAgICAgMCwgMTYsIDEwNiwgOTcsIDExOCwgOTcsIDQ2LCAxMTYsIDEwMSwgMTIwLCAxMTYsIDQ2LCA3MCwgMTExLCAxMTQsIDEwOSwgOTcsIDExNiwgLTUsIC00MCwgCisgICAgICAgIC02OCwgMTgsIC0yMywgMTUsIDI0LCA2NywgMiwgMCwgMCwgMTIwLCAxMTIsIDEsIDMsIDEyNywgMCwgMCwgMCwgMywgMCwgMCwgCisgICAgICAgIDEsIDUzLCAwLCAxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxLCAwLCAwLCAwLCAwLCAxLCAxMjAsIDAsIDAsIAorICAgICAgICAwLCAwLCAwLCAwLCAzLCAwLCAwLCAwLCAwLCAwLCAxLCAwLCAzMiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgICAgIDYsIDAsIDAsIDAsIDIsIDAsIDExNiwgMCwgMSwgNDUsIDExNiwgMCwgMCwgMTE2LCAwLCAxLCA0NSwgMTE2LCAwLCAwLCAKKyAgICAgICAgMTE2LCAwLCAwLCAxMTYsIDAsIDAsIDExNiwgMCwgMCwgMTE2LCAwLCAwLCAxMTIsIDExNSwgMTE0LCAwLCAzNywgOTksIDExMSwgMTA5LCAKKyAgICAgICAgNDYsIDEwNSwgOTgsIDEwOSwgNDYsIDEwNSwgOTksIDExNywgNDYsIDExNiwgMTAxLCAxMjAsIDExNiwgNDYsIDY4LCAxMDEsIDk5LCAxMDUsIDEwOSwgOTcsIAorICAgICAgICAxMDgsIDcwLCAxMTEsIDExNCwgMTA5LCA5NywgMTE2LCA4MywgMTIxLCAxMDksIDk4LCAxMTEsIDEwOCwgMTE1LCA4MCwgMjksIDIzLCAtMTAzLCA4LCAxMDQsIAorICAgICAgICAtMTA5LCAtMTAwLCAyLCAwLCAxOCwgNjcsIDAsIDE2LCAxMDAsIDEwMSwgOTksIDEwNSwgMTA5LCA5NywgMTA4LCA4MywgMTAxLCAxMTIsIDk3LCAxMTQsIAorICAgICAgICA5NywgMTE2LCAxMTEsIDExNCwgNjcsIDAsIDUsIDEwMCwgMTA1LCAxMDMsIDEwNSwgMTE2LCA2NywgMCwgMTEsIDEwMSwgMTIwLCAxMTIsIDExMSwgMTEwLCAKKyAgICAgICAgMTAxLCAxMTAsIDExNiwgMTA1LCA5NywgMTA4LCA2NywgMCwgMTcsIDEwMywgMTE0LCAxMTEsIDExNywgMTEyLCAxMDUsIDExMCwgMTAzLCA4MywgMTAxLCAxMTIsIAorICAgICAgICA5NywgMTE0LCA5NywgMTE2LCAxMTEsIDExNCwgNjcsIDAsIDksIDEwOSwgMTA1LCAxMTAsIDExNywgMTE1LCA4MywgMTA1LCAxMDMsIDExMCwgNjcsIDAsIAorICAgICAgICAxNywgMTA5LCAxMTEsIDExMCwgMTAxLCAxMTYsIDk3LCAxMTQsIDEyMSwgODMsIDEwMSwgMTEyLCA5NywgMTE0LCA5NywgMTE2LCAxMTEsIDExNCwgNjcsIDAsIAorICAgICAgICA5LCAxMTIsIDk3LCAxMDAsIDY5LCAxMTUsIDk5LCA5NywgMTEyLCAxMDEsIDY3LCAwLCAxNiwgMTEyLCA5NywgMTE2LCAxMTYsIDEwMSwgMTE0LCAxMTAsIAorICAgICAgICA4MywgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCA2NywgMCwgNywgMTEyLCAxMDEsIDExNCwgNzcsIDEwNSwgMTA4LCAxMDgsIDY3LCAKKyAgICAgICAgMCwgNywgMTEyLCAxMDEsIDExNCwgOTksIDEwMSwgMTEwLCAxMTYsIDY3LCAwLCA4LCAxMTIsIDEwOCwgMTE3LCAxMTUsIDgzLCAxMDUsIDEwMywgMTEwLCAKKyAgICAgICAgNzMsIDAsIDIxLCAxMTUsIDEwMSwgMTE0LCAxMDUsIDk3LCAxMDgsIDg2LCAxMDEsIDExNCwgMTE1LCAxMDUsIDExMSwgMTEwLCA3OSwgMTEwLCA4MywgMTE2LCAKKyAgICAgICAgMTE0LCAxMDEsIDk3LCAxMDksIDY3LCAwLCA5LCAxMjIsIDEwMSwgMTE0LCAxMTEsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDc2LCAwLCAzLCA3OCwgCisgICAgICAgIDk3LCA3OCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNCwgOTksIDExNywgMTE0LCAxMTQsIDEwMSwgMTEwLCA5OSwgMTIxLCA4MywgMTIxLCAKKyAgICAgICAgMTA5LCA5OCwgMTExLCAxMDgsIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgMTcsIDEwMSwgMTIwLCAxMTIsIDExMSwgMTEwLCAxMDEsIDExMCwgMTE2LCAKKyAgICAgICAgODMsIDEwMSwgMTEyLCA5NywgMTE0LCA5NywgMTE2LCAxMTEsIDExNCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCA4LCAxMDUsIDExMCwgMTAyLCAKKyAgICAgICAgMTA1LCAxMTAsIDEwNSwgMTE2LCAxMjEsIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgMTgsIDEwNSwgMTEwLCAxMTYsIDEwOCwgNjcsIDExNywgMTE0LCAKKyAgICAgICAgMTE0LCAxMDEsIDExMCwgOTksIDEyMSwgODMsIDEyMSwgMTA5LCA5OCwgMTExLCAxMDgsIDExMywgMCwgMTI2LCAwLCAxLCAxMjAsIDExMiwgMCwgNDYsIAorICAgICAgICAwLCAzNSwgMCwgMCwgMCwgNDQsIDAsIDQ1LCAwLCA0NiwgMCwgNDIsIDAsIDU5LCAzMiwgNDgsIDAsIDM3LCAwLCA0MywgCisgICAgICAgIDAsIDAsIDAsIDIsIDAsIDQ4LCAxMTYsIDAsIDMsIC0xNywgLTY1LCAtNjcsIDExNiwgMCwgMSwgMzYsIDExNiwgMCwgMSwgNjksIAorICAgICAgICAxMTYsIDAsIDMsIC0zMCwgLTEyMCwgLTk4LCAxMTYsIDAsIDMsIDg1LCA4MywgNjgsIAorICAgIH07CisKKyAgICAvL051bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKExvY2FsZS5VUykKKyAgICBzdGF0aWMgYnl0ZVtdIGN1cnJlbmN5SW5zdGFuY2UgPSBuZXcgYnl0ZVtdeyAKKyAgICAgICAgLTg0LCAtMTksIDAsIDUsIDExNSwgMTE0LCAwLCAzMCwgOTksIDExMSwgMTA5LCA0NiwgMTA1LCA5OCwgMTA5LCA0NiwgMTA1LCA5OSwgMTE3LCA0NiwgCisgICAgICAgIDExNiwgMTAxLCAxMjAsIDExNiwgNDYsIDY4LCAxMDEsIDk5LCAxMDUsIDEwOSwgOTcsIDEwOCwgNzAsIDExMSwgMTE0LCAxMDksIDk3LCAxMTYsIDExLCAtMSwgCisgICAgICAgIDMsIDk4LCAtNDAsIDExNCwgNDgsIDU4LCAyLCAwLCAyMiwgOTAsIDAsIDI3LCAxMDAsIDEwMSwgOTksIDEwNSwgMTA5LCA5NywgMTA4LCA4MywgCisgICAgICAgIDEwMSwgMTEyLCA5NywgMTE0LCA5NywgMTE2LCAxMTEsIDExNCwgNjUsIDEwOCwgMTE5LCA5NywgMTIxLCAxMTUsIDgzLCAxMDQsIDExMSwgMTE5LCAxMTAsIDkwLCAKKyAgICAgICAgMCwgMjMsIDEwMSwgMTIwLCAxMTIsIDExMSwgMTEwLCAxMDEsIDExMCwgMTE2LCA4MywgMTA1LCAxMDMsIDExMCwgNjUsIDEwOCwgMTE5LCA5NywgMTIxLCAxMTUsIAorICAgICAgICA4MywgMTA0LCAxMTEsIDExOSwgMTEwLCA3MywgMCwgMTEsIDEwMiwgMTExLCAxMTQsIDEwOSwgOTcsIDExNiwgODcsIDEwNSwgMTAwLCAxMTYsIDEwNCwgNjYsIAorICAgICAgICAwLCAxMiwgMTAzLCAxMTQsIDExMSwgMTE3LCAxMTIsIDEwNSwgMTEwLCAxMDMsIDgzLCAxMDUsIDEyMiwgMTAxLCA2NiwgMCwgMTMsIDEwMywgMTE0LCAxMTEsIAorICAgICAgICAxMTcsIDExMiwgMTA1LCAxMTAsIDEwMywgODMsIDEwNSwgMTIyLCAxMDEsIDUwLCA2NiwgMCwgMTcsIDEwOSwgMTA1LCAxMTAsIDY5LCAxMjAsIDExMiwgMTExLCAKKyAgICAgICAgMTEwLCAxMDEsIDExMCwgMTE2LCA2OCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAxMTUsIDczLCAwLCAxMCwgMTA5LCAxMTcsIDEwOCwgMTE2LCAxMDUsIDExMiwgMTA4LCAKKyAgICAgICAgMTA1LCAxMDEsIDExNCwgNjcsIDAsIDMsIDExMiwgOTcsIDEwMCwgNzMsIDAsIDExLCAxMTIsIDk3LCAxMDAsIDgwLCAxMTEsIDExNSwgMTA1LCAxMTYsIAorICAgICAgICAxMDUsIDExMSwgMTEwLCA3MywgMCwgMTIsIDExNCwgMTExLCAxMTcsIDExMCwgMTAwLCAxMDUsIDExMCwgMTAzLCA3NywgMTExLCAxMDAsIDEwMSwgNzMsIDAsIAorICAgICAgICAyMSwgMTE1LCAxMDEsIDExNCwgMTA1LCA5NywgMTA4LCA4NiwgMTAxLCAxMTQsIDExNSwgMTA1LCAxMTEsIDExMCwgNzksIDExMCwgODMsIDExNiwgMTE0LCAxMDEsIAorICAgICAgICA5NywgMTA5LCA5MCwgMCwgMjIsIDExNywgMTE1LCAxMDEsIDY5LCAxMjAsIDExMiwgMTExLCAxMTAsIDEwMSwgMTEwLCAxMTYsIDEwNSwgOTcsIDEwOCwgNzgsIAorICAgICAgICAxMTEsIDExNiwgOTcsIDExNiwgMTA1LCAxMTEsIDExMCwgNzYsIDAsIDE2LCAxMTAsIDEwMSwgMTAzLCA4MCwgMTE0LCAxMDEsIDEwMiwgMTA1LCAxMjAsIDgwLCAKKyAgICAgICAgOTcsIDExNiwgMTE2LCAxMDEsIDExNCwgMTEwLCAxMTYsIDAsIDE4LCA3NiwgMTA2LCA5NywgMTE4LCA5NywgNDcsIDEwOCwgOTcsIDExMCwgMTAzLCA0NywgCisgICAgICAgIDgzLCAxMTYsIDExNCwgMTA1LCAxMTAsIDEwMywgNTksIDc2LCAwLCAxNiwgMTEwLCAxMDEsIDEwMywgODMsIDExNywgMTAyLCAxMDIsIDEwNSwgMTIwLCA4MCwgCisgICAgICAgIDk3LCAxMTYsIDExNiwgMTAxLCAxMTQsIDExMCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNCwgMTEwLCAxMDEsIDEwMywgOTcsIDExNiwgMTA1LCAKKyAgICAgICAgMTE4LCAxMDEsIDgwLCAxMTQsIDEwMSwgMTAyLCAxMDUsIDEyMCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNCwgMTEwLCAxMDEsIDEwMywgOTcsIAorICAgICAgICAxMTYsIDEwNSwgMTE4LCAxMDEsIDgzLCAxMTcsIDEwMiwgMTAyLCAxMDUsIDEyMCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNiwgMTEyLCAxMTEsIAorICAgICAgICAxMTUsIDgwLCAxMTQsIDEwMSwgMTAyLCAxMDUsIDEyMCwgODAsIDk3LCAxMTYsIDExNiwgMTAxLCAxMTQsIDExMCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAKKyAgICAgICAgMCwgMTYsIDExMiwgMTExLCAxMTUsIDgzLCAxMTcsIDEwMiwgMTAyLCAxMDUsIDEyMCwgODAsIDk3LCAxMTYsIDExNiwgMTAxLCAxMTQsIDExMCwgMTEzLCAwLCAKKyAgICAgICAgMTI2LCAwLCAxLCA3NiwgMCwgMTQsIDExMiwgMTExLCAxMTUsIDEwNSwgMTE2LCAxMDUsIDExOCwgMTAxLCA4MCwgMTE0LCAxMDEsIDEwMiwgMTA1LCAxMjAsIAorICAgICAgICAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE0LCAxMTIsIDExMSwgMTE1LCAxMDUsIDExNiwgMTA1LCAxMTgsIDEwMSwgODMsIDExNywgMTAyLCAxMDIsIAorICAgICAgICAxMDUsIDEyMCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNywgMTE0LCAxMTEsIDExNywgMTEwLCAxMDAsIDEwNSwgMTEwLCAxMDMsIDczLCAxMTAsIAorICAgICAgICA5OSwgMTE0LCAxMDEsIDEwOSwgMTAxLCAxMTAsIDExNiwgMTE2LCAwLCAyMiwgNzYsIDEwNiwgOTcsIDExOCwgOTcsIDQ3LCAxMDksIDk3LCAxMTYsIDEwNCwgCisgICAgICAgIDQ3LCA2NiwgMTA1LCAxMDMsIDY4LCAxMDEsIDk5LCAxMDUsIDEwOSwgOTcsIDEwOCwgNTksIDc2LCAwLCA3LCAxMTUsIDEyMSwgMTA5LCA5OCwgMTExLCAKKyAgICAgICAgMTA4LCAxMTUsIDExNiwgMCwgMzksIDc2LCA5OSwgMTExLCAxMDksIDQ3LCAxMDUsIDk4LCAxMDksIDQ3LCAxMDUsIDk5LCAxMTcsIDQ3LCAxMTYsIDEwMSwgCisgICAgICAgIDEyMCwgMTE2LCA0NywgNjgsIDEwMSwgOTksIDEwNSwgMTA5LCA5NywgMTA4LCA3MCwgMTExLCAxMTQsIDEwOSwgOTcsIDExNiwgODMsIDEyMSwgMTA5LCA5OCwgCisgICAgICAgIDExMSwgMTA4LCAxMTUsIDU5LCAxMjAsIDExNCwgMCwgMjksIDk5LCAxMTEsIDEwOSwgNDYsIDEwNSwgOTgsIDEwOSwgNDYsIDEwNSwgOTksIDExNywgNDYsIAorICAgICAgICAxMTYsIDEwMSwgMTIwLCAxMTYsIDQ2LCA3OCwgMTE3LCAxMDksIDk4LCAxMDEsIDExNCwgNzAsIDExMSwgMTE0LCAxMDksIDk3LCAxMTYsIC0zMywgLTEwLCAtNzcsIAorICAgICAgICAtNjUsIDE5LCAxMjUsIDcsIC0yNCwgMywgMCwgMTEsIDkwLCAwLCAxMiwgMTAzLCAxMTQsIDExMSwgMTE3LCAxMTIsIDEwNSwgMTEwLCAxMDMsIDg1LCAKKyAgICAgICAgMTE1LCAxMDEsIDEwMCwgNjYsIDAsIDE3LCAxMDksIDk3LCAxMjAsIDcwLCAxMTQsIDk3LCA5OSwgMTE2LCAxMDUsIDExMSwgMTEwLCA2OCwgMTA1LCAxMDMsIAorICAgICAgICAxMDUsIDExNiwgMTE1LCA2NiwgMCwgMTYsIDEwOSwgOTcsIDEyMCwgNzMsIDExMCwgMTE2LCAxMDEsIDEwMywgMTAxLCAxMTQsIDY4LCAxMDUsIDEwMywgMTA1LCAKKyAgICAgICAgMTE2LCAxMTUsIDczLCAwLCAyMSwgMTA5LCA5NywgMTIwLCAxMDUsIDEwOSwgMTE3LCAxMDksIDcwLCAxMTQsIDk3LCA5OSwgMTE2LCAxMDUsIDExMSwgMTEwLCAKKyAgICAgICAgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA3MywgMCwgMjAsIDEwOSwgOTcsIDEyMCwgMTA1LCAxMDksIDExNywgMTA5LCA3MywgMTEwLCAxMTYsIDEwMSwgCisgICAgICAgIDEwMywgMTAxLCAxMTQsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgNjYsIDAsIDE3LCAxMDksIDEwNSwgMTEwLCA3MCwgMTE0LCA5NywgOTksIDExNiwgCisgICAgICAgIDEwNSwgMTExLCAxMTAsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgNjYsIDAsIDE2LCAxMDksIDEwNSwgMTEwLCA3MywgMTEwLCAxMTYsIDEwMSwgMTAzLCAKKyAgICAgICAgMTAxLCAxMTQsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgNzMsIDAsIDIxLCAxMDksIDEwNSwgMTEwLCAxMDUsIDEwOSwgMTE3LCAxMDksIDcwLCAxMTQsIAorICAgICAgICA5NywgOTksIDExNiwgMTA1LCAxMTEsIDExMCwgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA3MywgMCwgMjAsIDEwOSwgMTA1LCAxMTAsIDEwNSwgMTA5LCAKKyAgICAgICAgMTE3LCAxMDksIDczLCAxMTAsIDExNiwgMTAxLCAxMDMsIDEwMSwgMTE0LCA2OCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAxMTUsIDkwLCAwLCAxNiwgMTEyLCA5NywgCisgICAgICAgIDExNCwgMTE1LCAxMDEsIDczLCAxMTAsIDExNiwgMTAxLCAxMDMsIDEwMSwgMTE0LCA3OSwgMTEwLCAxMDgsIDEyMSwgNzMsIDAsIDIxLCAxMTUsIDEwMSwgMTE0LCAKKyAgICAgICAgMTA1LCA5NywgMTA4LCA4NiwgMTAxLCAxMTQsIDExNSwgMTA1LCAxMTEsIDExMCwgNzksIDExMCwgODMsIDExNiwgMTE0LCAxMDEsIDk3LCAxMDksIDEyMCwgMTE0LCAKKyAgICAgICAgMCwgMTYsIDEwNiwgOTcsIDExOCwgOTcsIDQ2LCAxMTYsIDEwMSwgMTIwLCAxMTYsIDQ2LCA3MCwgMTExLCAxMTQsIDEwOSwgOTcsIDExNiwgLTUsIC00MCwgCisgICAgICAgIC02OCwgMTgsIC0yMywgMTUsIDI0LCA2NywgMiwgMCwgMCwgMTIwLCAxMTIsIDEsIDIsIDEyNywgMCwgMCwgMCwgMiwgMCwgMCwgCisgICAgICAgIDEsIDUzLCAyLCAxLCAwLCAwLCAwLCAyLCAwLCAwLCAwLCAxLCAwLCAwLCAwLCAwLCAxLCAxMjAsIDAsIDAsIAorICAgICAgICAwLCAwLCAwLCAwLCAzLCAwLCAwLCAwLCAwLCAwLCAxLCAwLCAzMiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgICAgIDYsIDAsIDAsIDAsIDIsIDAsIDExNiwgMCwgMywgNDAsIC02MiwgLTkyLCAxMTYsIDAsIDEsIDQxLCAxMTYsIDAsIDIsIDQwLCAKKyAgICAgICAgMzYsIDExNiwgMCwgMSwgNDEsIDExNiwgMCwgMiwgLTYyLCAtOTIsIDExNiwgMCwgMCwgMTE2LCAwLCAxLCAzNiwgMTE2LCAwLCAwLCAKKyAgICAgICAgMTEyLCAxMTUsIDExNCwgMCwgMzcsIDk5LCAxMTEsIDEwOSwgNDYsIDEwNSwgOTgsIDEwOSwgNDYsIDEwNSwgOTksIDExNywgNDYsIDExNiwgMTAxLCAxMjAsIAorICAgICAgICAxMTYsIDQ2LCA2OCwgMTAxLCA5OSwgMTA1LCAxMDksIDk3LCAxMDgsIDcwLCAxMTEsIDExNCwgMTA5LCA5NywgMTE2LCA4MywgMTIxLCAxMDksIDk4LCAxMTEsIAorICAgICAgICAxMDgsIDExNSwgODAsIDI5LCAyMywgLTEwMywgOCwgMTA0LCAtMTA5LCAtMTAwLCAyLCAwLCAxOCwgNjcsIDAsIDE2LCAxMDAsIDEwMSwgOTksIDEwNSwgCisgICAgICAgIDEwOSwgOTcsIDEwOCwgODMsIDEwMSwgMTEyLCA5NywgMTE0LCA5NywgMTE2LCAxMTEsIDExNCwgNjcsIDAsIDUsIDEwMCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAKKyAgICAgICAgNjcsIDAsIDExLCAxMDEsIDEyMCwgMTEyLCAxMTEsIDExMCwgMTAxLCAxMTAsIDExNiwgMTA1LCA5NywgMTA4LCA2NywgMCwgMTcsIDEwMywgMTE0LCAxMTEsIAorICAgICAgICAxMTcsIDExMiwgMTA1LCAxMTAsIDEwMywgODMsIDEwMSwgMTEyLCA5NywgMTE0LCA5NywgMTE2LCAxMTEsIDExNCwgNjcsIDAsIDksIDEwOSwgMTA1LCAxMTAsIAorICAgICAgICAxMTcsIDExNSwgODMsIDEwNSwgMTAzLCAxMTAsIDY3LCAwLCAxNywgMTA5LCAxMTEsIDExMCwgMTAxLCAxMTYsIDk3LCAxMTQsIDEyMSwgODMsIDEwMSwgMTEyLCAKKyAgICAgICAgOTcsIDExNCwgOTcsIDExNiwgMTExLCAxMTQsIDY3LCAwLCA5LCAxMTIsIDk3LCAxMDAsIDY5LCAxMTUsIDk5LCA5NywgMTEyLCAxMDEsIDY3LCAwLCAKKyAgICAgICAgMTYsIDExMiwgOTcsIDExNiwgMTE2LCAxMDEsIDExNCwgMTEwLCA4MywgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCA2NywgMCwgNywgCisgICAgICAgIDExMiwgMTAxLCAxMTQsIDc3LCAxMDUsIDEwOCwgMTA4LCA2NywgMCwgNywgMTEyLCAxMDEsIDExNCwgOTksIDEwMSwgMTEwLCAxMTYsIDY3LCAwLCA4LCAKKyAgICAgICAgMTEyLCAxMDgsIDExNywgMTE1LCA4MywgMTA1LCAxMDMsIDExMCwgNzMsIDAsIDIxLCAxMTUsIDEwMSwgMTE0LCAxMDUsIDk3LCAxMDgsIDg2LCAxMDEsIDExNCwgCisgICAgICAgIDExNSwgMTA1LCAxMTEsIDExMCwgNzksIDExMCwgODMsIDExNiwgMTE0LCAxMDEsIDk3LCAxMDksIDY3LCAwLCA5LCAxMjIsIDEwMSwgMTE0LCAxMTEsIDY4LCAKKyAgICAgICAgMTA1LCAxMDMsIDEwNSwgMTE2LCA3NiwgMCwgMywgNzgsIDk3LCA3OCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNCwgOTksIDExNywgCisgICAgICAgIDExNCwgMTE0LCAxMDEsIDExMCwgOTksIDEyMSwgODMsIDEyMSwgMTA5LCA5OCwgMTExLCAxMDgsIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgMTcsIAorICAgICAgICAxMDEsIDEyMCwgMTEyLCAxMTEsIDExMCwgMTAxLCAxMTAsIDExNiwgODMsIDEwMSwgMTEyLCA5NywgMTE0LCA5NywgMTE2LCAxMTEsIDExNCwgMTEzLCAwLCAxMjYsIAorICAgICAgICAwLCAxLCA3NiwgMCwgOCwgMTA1LCAxMTAsIDEwMiwgMTA1LCAxMTAsIDEwNSwgMTE2LCAxMjEsIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgCisgICAgICAgIDE4LCAxMDUsIDExMCwgMTE2LCAxMDgsIDY3LCAxMTcsIDExNCwgMTE0LCAxMDEsIDExMCwgOTksIDEyMSwgODMsIDEyMSwgMTA5LCA5OCwgMTExLCAxMDgsIDExMywgCisgICAgICAgIDAsIDEyNiwgMCwgMSwgMTIwLCAxMTIsIDAsIDQ2LCAwLCAzNSwgMCwgMCwgMCwgNDQsIDAsIDQ1LCAwLCA0NiwgMCwgNDIsIAorICAgICAgICAwLCA1OSwgMzIsIDQ4LCAwLCAzNywgMCwgNDMsIDAsIDAsIDAsIDIsIDAsIDQ4LCAxMTYsIDAsIDMsIC0xNywgLTY1LCAtNjcsIAorICAgICAgICAxMTYsIDAsIDEsIDM2LCAxMTYsIDAsIDEsIDY5LCAxMTYsIDAsIDMsIC0zMCwgLTEyMCwgLTk4LCAxMTYsIDAsIDMsIDg1LCA4MywgNjgsIAorICAgICAgICAKKyAgICB9OworCisgICAgLy9OdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKExvY2FsZS5VUykKKyAgICBzdGF0aWMgYnl0ZVtdIHBlcmNlbnRJbnN0YW5jZSA9IG5ldyBieXRlW117IAorICAgICAgICAtODQsIC0xOSwgMCwgNSwgMTE1LCAxMTQsIDAsIDMwLCA5OSwgMTExLCAxMDksIDQ2LCAxMDUsIDk4LCAxMDksIDQ2LCAxMDUsIDk5LCAxMTcsIDQ2LCAKKyAgICAgICAgMTE2LCAxMDEsIDEyMCwgMTE2LCA0NiwgNjgsIDEwMSwgOTksIDEwNSwgMTA5LCA5NywgMTA4LCA3MCwgMTExLCAxMTQsIDEwOSwgOTcsIDExNiwgMTEsIC0xLCAKKyAgICAgICAgMywgOTgsIC00MCwgMTE0LCA0OCwgNTgsIDIsIDAsIDIyLCA5MCwgMCwgMjcsIDEwMCwgMTAxLCA5OSwgMTA1LCAxMDksIDk3LCAxMDgsIDgzLCAKKyAgICAgICAgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCA2NSwgMTA4LCAxMTksIDk3LCAxMjEsIDExNSwgODMsIDEwNCwgMTExLCAxMTksIDExMCwgOTAsIAorICAgICAgICAwLCAyMywgMTAxLCAxMjAsIDExMiwgMTExLCAxMTAsIDEwMSwgMTEwLCAxMTYsIDgzLCAxMDUsIDEwMywgMTEwLCA2NSwgMTA4LCAxMTksIDk3LCAxMjEsIDExNSwgCisgICAgICAgIDgzLCAxMDQsIDExMSwgMTE5LCAxMTAsIDczLCAwLCAxMSwgMTAyLCAxMTEsIDExNCwgMTA5LCA5NywgMTE2LCA4NywgMTA1LCAxMDAsIDExNiwgMTA0LCA2NiwgCisgICAgICAgIDAsIDEyLCAxMDMsIDExNCwgMTExLCAxMTcsIDExMiwgMTA1LCAxMTAsIDEwMywgODMsIDEwNSwgMTIyLCAxMDEsIDY2LCAwLCAxMywgMTAzLCAxMTQsIDExMSwgCisgICAgICAgIDExNywgMTEyLCAxMDUsIDExMCwgMTAzLCA4MywgMTA1LCAxMjIsIDEwMSwgNTAsIDY2LCAwLCAxNywgMTA5LCAxMDUsIDExMCwgNjksIDEyMCwgMTEyLCAxMTEsIAorICAgICAgICAxMTAsIDEwMSwgMTEwLCAxMTYsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgNzMsIDAsIDEwLCAxMDksIDExNywgMTA4LCAxMTYsIDEwNSwgMTEyLCAxMDgsIAorICAgICAgICAxMDUsIDEwMSwgMTE0LCA2NywgMCwgMywgMTEyLCA5NywgMTAwLCA3MywgMCwgMTEsIDExMiwgOTcsIDEwMCwgODAsIDExMSwgMTE1LCAxMDUsIDExNiwgCisgICAgICAgIDEwNSwgMTExLCAxMTAsIDczLCAwLCAxMiwgMTE0LCAxMTEsIDExNywgMTEwLCAxMDAsIDEwNSwgMTEwLCAxMDMsIDc3LCAxMTEsIDEwMCwgMTAxLCA3MywgMCwgCisgICAgICAgIDIxLCAxMTUsIDEwMSwgMTE0LCAxMDUsIDk3LCAxMDgsIDg2LCAxMDEsIDExNCwgMTE1LCAxMDUsIDExMSwgMTEwLCA3OSwgMTEwLCA4MywgMTE2LCAxMTQsIDEwMSwgCisgICAgICAgIDk3LCAxMDksIDkwLCAwLCAyMiwgMTE3LCAxMTUsIDEwMSwgNjksIDEyMCwgMTEyLCAxMTEsIDExMCwgMTAxLCAxMTAsIDExNiwgMTA1LCA5NywgMTA4LCA3OCwgCisgICAgICAgIDExMSwgMTE2LCA5NywgMTE2LCAxMDUsIDExMSwgMTEwLCA3NiwgMCwgMTYsIDExMCwgMTAxLCAxMDMsIDgwLCAxMTQsIDEwMSwgMTAyLCAxMDUsIDEyMCwgODAsIAorICAgICAgICA5NywgMTE2LCAxMTYsIDEwMSwgMTE0LCAxMTAsIDExNiwgMCwgMTgsIDc2LCAxMDYsIDk3LCAxMTgsIDk3LCA0NywgMTA4LCA5NywgMTEwLCAxMDMsIDQ3LCAKKyAgICAgICAgODMsIDExNiwgMTE0LCAxMDUsIDExMCwgMTAzLCA1OSwgNzYsIDAsIDE2LCAxMTAsIDEwMSwgMTAzLCA4MywgMTE3LCAxMDIsIDEwMiwgMTA1LCAxMjAsIDgwLCAKKyAgICAgICAgOTcsIDExNiwgMTE2LCAxMDEsIDExNCwgMTEwLCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE0LCAxMTAsIDEwMSwgMTAzLCA5NywgMTE2LCAxMDUsIAorICAgICAgICAxMTgsIDEwMSwgODAsIDExNCwgMTAxLCAxMDIsIDEwNSwgMTIwLCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE0LCAxMTAsIDEwMSwgMTAzLCA5NywgCisgICAgICAgIDExNiwgMTA1LCAxMTgsIDEwMSwgODMsIDExNywgMTAyLCAxMDIsIDEwNSwgMTIwLCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE2LCAxMTIsIDExMSwgCisgICAgICAgIDExNSwgODAsIDExNCwgMTAxLCAxMDIsIDEwNSwgMTIwLCA4MCwgOTcsIDExNiwgMTE2LCAxMDEsIDExNCwgMTEwLCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIAorICAgICAgICAwLCAxNiwgMTEyLCAxMTEsIDExNSwgODMsIDExNywgMTAyLCAxMDIsIDEwNSwgMTIwLCA4MCwgOTcsIDExNiwgMTE2LCAxMDEsIDExNCwgMTEwLCAxMTMsIDAsIAorICAgICAgICAxMjYsIDAsIDEsIDc2LCAwLCAxNCwgMTEyLCAxMTEsIDExNSwgMTA1LCAxMTYsIDEwNSwgMTE4LCAxMDEsIDgwLCAxMTQsIDEwMSwgMTAyLCAxMDUsIDEyMCwgCisgICAgICAgIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgMTQsIDExMiwgMTExLCAxMTUsIDEwNSwgMTE2LCAxMDUsIDExOCwgMTAxLCA4MywgMTE3LCAxMDIsIDEwMiwgCisgICAgICAgIDEwNSwgMTIwLCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE3LCAxMTQsIDExMSwgMTE3LCAxMTAsIDEwMCwgMTA1LCAxMTAsIDEwMywgNzMsIDExMCwgCisgICAgICAgIDk5LCAxMTQsIDEwMSwgMTA5LCAxMDEsIDExMCwgMTE2LCAxMTYsIDAsIDIyLCA3NiwgMTA2LCA5NywgMTE4LCA5NywgNDcsIDEwOSwgOTcsIDExNiwgMTA0LCAKKyAgICAgICAgNDcsIDY2LCAxMDUsIDEwMywgNjgsIDEwMSwgOTksIDEwNSwgMTA5LCA5NywgMTA4LCA1OSwgNzYsIDAsIDcsIDExNSwgMTIxLCAxMDksIDk4LCAxMTEsIAorICAgICAgICAxMDgsIDExNSwgMTE2LCAwLCAzOSwgNzYsIDk5LCAxMTEsIDEwOSwgNDcsIDEwNSwgOTgsIDEwOSwgNDcsIDEwNSwgOTksIDExNywgNDcsIDExNiwgMTAxLCAKKyAgICAgICAgMTIwLCAxMTYsIDQ3LCA2OCwgMTAxLCA5OSwgMTA1LCAxMDksIDk3LCAxMDgsIDcwLCAxMTEsIDExNCwgMTA5LCA5NywgMTE2LCA4MywgMTIxLCAxMDksIDk4LCAKKyAgICAgICAgMTExLCAxMDgsIDExNSwgNTksIDEyMCwgMTE0LCAwLCAyOSwgOTksIDExMSwgMTA5LCA0NiwgMTA1LCA5OCwgMTA5LCA0NiwgMTA1LCA5OSwgMTE3LCA0NiwgCisgICAgICAgIDExNiwgMTAxLCAxMjAsIDExNiwgNDYsIDc4LCAxMTcsIDEwOSwgOTgsIDEwMSwgMTE0LCA3MCwgMTExLCAxMTQsIDEwOSwgOTcsIDExNiwgLTMzLCAtMTAsIC03NywgCisgICAgICAgIC02NSwgMTksIDEyNSwgNywgLTI0LCAzLCAwLCAxMSwgOTAsIDAsIDEyLCAxMDMsIDExNCwgMTExLCAxMTcsIDExMiwgMTA1LCAxMTAsIDEwMywgODUsIAorICAgICAgICAxMTUsIDEwMSwgMTAwLCA2NiwgMCwgMTcsIDEwOSwgOTcsIDEyMCwgNzAsIDExNCwgOTcsIDk5LCAxMTYsIDEwNSwgMTExLCAxMTAsIDY4LCAxMDUsIDEwMywgCisgICAgICAgIDEwNSwgMTE2LCAxMTUsIDY2LCAwLCAxNiwgMTA5LCA5NywgMTIwLCA3MywgMTEwLCAxMTYsIDEwMSwgMTAzLCAxMDEsIDExNCwgNjgsIDEwNSwgMTAzLCAxMDUsIAorICAgICAgICAxMTYsIDExNSwgNzMsIDAsIDIxLCAxMDksIDk3LCAxMjAsIDEwNSwgMTA5LCAxMTcsIDEwOSwgNzAsIDExNCwgOTcsIDk5LCAxMTYsIDEwNSwgMTExLCAxMTAsIAorICAgICAgICA2OCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAxMTUsIDczLCAwLCAyMCwgMTA5LCA5NywgMTIwLCAxMDUsIDEwOSwgMTE3LCAxMDksIDczLCAxMTAsIDExNiwgMTAxLCAKKyAgICAgICAgMTAzLCAxMDEsIDExNCwgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA2NiwgMCwgMTcsIDEwOSwgMTA1LCAxMTAsIDcwLCAxMTQsIDk3LCA5OSwgMTE2LCAKKyAgICAgICAgMTA1LCAxMTEsIDExMCwgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA2NiwgMCwgMTYsIDEwOSwgMTA1LCAxMTAsIDczLCAxMTAsIDExNiwgMTAxLCAxMDMsIAorICAgICAgICAxMDEsIDExNCwgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA3MywgMCwgMjEsIDEwOSwgMTA1LCAxMTAsIDEwNSwgMTA5LCAxMTcsIDEwOSwgNzAsIDExNCwgCisgICAgICAgIDk3LCA5OSwgMTE2LCAxMDUsIDExMSwgMTEwLCA2OCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAxMTUsIDczLCAwLCAyMCwgMTA5LCAxMDUsIDExMCwgMTA1LCAxMDksIAorICAgICAgICAxMTcsIDEwOSwgNzMsIDExMCwgMTE2LCAxMDEsIDEwMywgMTAxLCAxMTQsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgOTAsIDAsIDE2LCAxMTIsIDk3LCAKKyAgICAgICAgMTE0LCAxMTUsIDEwMSwgNzMsIDExMCwgMTE2LCAxMDEsIDEwMywgMTAxLCAxMTQsIDc5LCAxMTAsIDEwOCwgMTIxLCA3MywgMCwgMjEsIDExNSwgMTAxLCAxMTQsIAorICAgICAgICAxMDUsIDk3LCAxMDgsIDg2LCAxMDEsIDExNCwgMTE1LCAxMDUsIDExMSwgMTEwLCA3OSwgMTEwLCA4MywgMTE2LCAxMTQsIDEwMSwgOTcsIDEwOSwgMTIwLCAxMTQsIAorICAgICAgICAwLCAxNiwgMTA2LCA5NywgMTE4LCA5NywgNDYsIDExNiwgMTAxLCAxMjAsIDExNiwgNDYsIDcwLCAxMTEsIDExNCwgMTA5LCA5NywgMTE2LCAtNSwgLTQwLCAKKyAgICAgICAgLTY4LCAxOCwgLTIzLCAxNSwgMjQsIDY3LCAyLCAwLCAwLCAxMjAsIDExMiwgMSwgMCwgMTI3LCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAgICAgMSwgNTMsIDAsIDEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEsIDAsIDAsIDAsIDAsIDEsIDEyMCwgMCwgMCwgCisgICAgICAgIDAsIDAsIDAsIDAsIDMsIDAsIDAsIDAsIDAsIDAsIDEwMCwgMCwgMzIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgICAgICA2LCAwLCAwLCAwLCAyLCAwLCAxMTYsIDAsIDEsIDQ1LCAxMTYsIDAsIDEsIDM3LCAxMTYsIDAsIDEsIDQ1LCAxMTYsIDAsIAorICAgICAgICAxLCAzNywgMTE2LCAwLCAwLCAxMTMsIDAsIDEyNiwgMCwgOCwgMTE2LCAwLCAwLCAxMTYsIDAsIDEsIDM3LCAxMTIsIDExNSwgMTE0LCAKKyAgICAgICAgMCwgMzcsIDk5LCAxMTEsIDEwOSwgNDYsIDEwNSwgOTgsIDEwOSwgNDYsIDEwNSwgOTksIDExNywgNDYsIDExNiwgMTAxLCAxMjAsIDExNiwgNDYsIDY4LCAKKyAgICAgICAgMTAxLCA5OSwgMTA1LCAxMDksIDk3LCAxMDgsIDcwLCAxMTEsIDExNCwgMTA5LCA5NywgMTE2LCA4MywgMTIxLCAxMDksIDk4LCAxMTEsIDEwOCwgMTE1LCA4MCwgCisgICAgICAgIDI5LCAyMywgLTEwMywgOCwgMTA0LCAtMTA5LCAtMTAwLCAyLCAwLCAxOCwgNjcsIDAsIDE2LCAxMDAsIDEwMSwgOTksIDEwNSwgMTA5LCA5NywgMTA4LCAKKyAgICAgICAgODMsIDEwMSwgMTEyLCA5NywgMTE0LCA5NywgMTE2LCAxMTEsIDExNCwgNjcsIDAsIDUsIDEwMCwgMTA1LCAxMDMsIDEwNSwgMTE2LCA2NywgMCwgMTEsIAorICAgICAgICAxMDEsIDEyMCwgMTEyLCAxMTEsIDExMCwgMTAxLCAxMTAsIDExNiwgMTA1LCA5NywgMTA4LCA2NywgMCwgMTcsIDEwMywgMTE0LCAxMTEsIDExNywgMTEyLCAxMDUsIAorICAgICAgICAxMTAsIDEwMywgODMsIDEwMSwgMTEyLCA5NywgMTE0LCA5NywgMTE2LCAxMTEsIDExNCwgNjcsIDAsIDksIDEwOSwgMTA1LCAxMTAsIDExNywgMTE1LCA4MywgCisgICAgICAgIDEwNSwgMTAzLCAxMTAsIDY3LCAwLCAxNywgMTA5LCAxMTEsIDExMCwgMTAxLCAxMTYsIDk3LCAxMTQsIDEyMSwgODMsIDEwMSwgMTEyLCA5NywgMTE0LCA5NywgCisgICAgICAgIDExNiwgMTExLCAxMTQsIDY3LCAwLCA5LCAxMTIsIDk3LCAxMDAsIDY5LCAxMTUsIDk5LCA5NywgMTEyLCAxMDEsIDY3LCAwLCAxNiwgMTEyLCA5NywgCisgICAgICAgIDExNiwgMTE2LCAxMDEsIDExNCwgMTEwLCA4MywgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCA2NywgMCwgNywgMTEyLCAxMDEsIDExNCwgCisgICAgICAgIDc3LCAxMDUsIDEwOCwgMTA4LCA2NywgMCwgNywgMTEyLCAxMDEsIDExNCwgOTksIDEwMSwgMTEwLCAxMTYsIDY3LCAwLCA4LCAxMTIsIDEwOCwgMTE3LCAKKyAgICAgICAgMTE1LCA4MywgMTA1LCAxMDMsIDExMCwgNzMsIDAsIDIxLCAxMTUsIDEwMSwgMTE0LCAxMDUsIDk3LCAxMDgsIDg2LCAxMDEsIDExNCwgMTE1LCAxMDUsIDExMSwgCisgICAgICAgIDExMCwgNzksIDExMCwgODMsIDExNiwgMTE0LCAxMDEsIDk3LCAxMDksIDY3LCAwLCA5LCAxMjIsIDEwMSwgMTE0LCAxMTEsIDY4LCAxMDUsIDEwMywgMTA1LCAKKyAgICAgICAgMTE2LCA3NiwgMCwgMywgNzgsIDk3LCA3OCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNCwgOTksIDExNywgMTE0LCAxMTQsIDEwMSwgCisgICAgICAgIDExMCwgOTksIDEyMSwgODMsIDEyMSwgMTA5LCA5OCwgMTExLCAxMDgsIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgMTcsIDEwMSwgMTIwLCAxMTIsIAorICAgICAgICAxMTEsIDExMCwgMTAxLCAxMTAsIDExNiwgODMsIDEwMSwgMTEyLCA5NywgMTE0LCA5NywgMTE2LCAxMTEsIDExNCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAKKyAgICAgICAgMCwgOCwgMTA1LCAxMTAsIDEwMiwgMTA1LCAxMTAsIDEwNSwgMTE2LCAxMjEsIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgMTgsIDEwNSwgMTEwLCAKKyAgICAgICAgMTE2LCAxMDgsIDY3LCAxMTcsIDExNCwgMTE0LCAxMDEsIDExMCwgOTksIDEyMSwgODMsIDEyMSwgMTA5LCA5OCwgMTExLCAxMDgsIDExMywgMCwgMTI2LCAwLCAKKyAgICAgICAgMSwgMTIwLCAxMTIsIDAsIDQ2LCAwLCAzNSwgMCwgMCwgMCwgNDQsIDAsIDQ1LCAwLCA0NiwgMCwgNDIsIDAsIDU5LCAzMiwgCisgICAgICAgIDQ4LCAwLCAzNywgMCwgNDMsIDAsIDAsIDAsIDIsIDAsIDQ4LCAxMTYsIDAsIDMsIC0xNywgLTY1LCAtNjcsIDExNiwgMCwgMSwgCisgICAgICAgIDM2LCAxMTYsIDAsIDEsIDY5LCAxMTYsIDAsIDMsIC0zMCwgLTEyMCwgLTk4LCAxMTYsIDAsIDMsIDg1LCA4MywgNjgsIAorICAgIH07CisKKyAgICAvL051bWJlckZvcm1hdC5nZXRTY2llbnRpZmljSW5zdGFuY2UoTG9jYWxlLlVTKQorICAgIHN0YXRpYyBieXRlW10gc2NpZW50aWZpY0luc3RhbmNlID0gbmV3IGJ5dGVbXXsgCisgICAgICAgIC04NCwgLTE5LCAwLCA1LCAxMTUsIDExNCwgMCwgMzAsIDk5LCAxMTEsIDEwOSwgNDYsIDEwNSwgOTgsIDEwOSwgNDYsIDEwNSwgOTksIDExNywgNDYsIAorICAgICAgICAxMTYsIDEwMSwgMTIwLCAxMTYsIDQ2LCA2OCwgMTAxLCA5OSwgMTA1LCAxMDksIDk3LCAxMDgsIDcwLCAxMTEsIDExNCwgMTA5LCA5NywgMTE2LCAxMSwgLTEsIAorICAgICAgICAzLCA5OCwgLTQwLCAxMTQsIDQ4LCA1OCwgMiwgMCwgMjIsIDkwLCAwLCAyNywgMTAwLCAxMDEsIDk5LCAxMDUsIDEwOSwgOTcsIDEwOCwgODMsIAorICAgICAgICAxMDEsIDExMiwgOTcsIDExNCwgOTcsIDExNiwgMTExLCAxMTQsIDY1LCAxMDgsIDExOSwgOTcsIDEyMSwgMTE1LCA4MywgMTA0LCAxMTEsIDExOSwgMTEwLCA5MCwgCisgICAgICAgIDAsIDIzLCAxMDEsIDEyMCwgMTEyLCAxMTEsIDExMCwgMTAxLCAxMTAsIDExNiwgODMsIDEwNSwgMTAzLCAxMTAsIDY1LCAxMDgsIDExOSwgOTcsIDEyMSwgMTE1LCAKKyAgICAgICAgODMsIDEwNCwgMTExLCAxMTksIDExMCwgNzMsIDAsIDExLCAxMDIsIDExMSwgMTE0LCAxMDksIDk3LCAxMTYsIDg3LCAxMDUsIDEwMCwgMTE2LCAxMDQsIDY2LCAKKyAgICAgICAgMCwgMTIsIDEwMywgMTE0LCAxMTEsIDExNywgMTEyLCAxMDUsIDExMCwgMTAzLCA4MywgMTA1LCAxMjIsIDEwMSwgNjYsIDAsIDEzLCAxMDMsIDExNCwgMTExLCAKKyAgICAgICAgMTE3LCAxMTIsIDEwNSwgMTEwLCAxMDMsIDgzLCAxMDUsIDEyMiwgMTAxLCA1MCwgNjYsIDAsIDE3LCAxMDksIDEwNSwgMTEwLCA2OSwgMTIwLCAxMTIsIDExMSwgCisgICAgICAgIDExMCwgMTAxLCAxMTAsIDExNiwgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA3MywgMCwgMTAsIDEwOSwgMTE3LCAxMDgsIDExNiwgMTA1LCAxMTIsIDEwOCwgCisgICAgICAgIDEwNSwgMTAxLCAxMTQsIDY3LCAwLCAzLCAxMTIsIDk3LCAxMDAsIDczLCAwLCAxMSwgMTEyLCA5NywgMTAwLCA4MCwgMTExLCAxMTUsIDEwNSwgMTE2LCAKKyAgICAgICAgMTA1LCAxMTEsIDExMCwgNzMsIDAsIDEyLCAxMTQsIDExMSwgMTE3LCAxMTAsIDEwMCwgMTA1LCAxMTAsIDEwMywgNzcsIDExMSwgMTAwLCAxMDEsIDczLCAwLCAKKyAgICAgICAgMjEsIDExNSwgMTAxLCAxMTQsIDEwNSwgOTcsIDEwOCwgODYsIDEwMSwgMTE0LCAxMTUsIDEwNSwgMTExLCAxMTAsIDc5LCAxMTAsIDgzLCAxMTYsIDExNCwgMTAxLCAKKyAgICAgICAgOTcsIDEwOSwgOTAsIDAsIDIyLCAxMTcsIDExNSwgMTAxLCA2OSwgMTIwLCAxMTIsIDExMSwgMTEwLCAxMDEsIDExMCwgMTE2LCAxMDUsIDk3LCAxMDgsIDc4LCAKKyAgICAgICAgMTExLCAxMTYsIDk3LCAxMTYsIDEwNSwgMTExLCAxMTAsIDc2LCAwLCAxNiwgMTEwLCAxMDEsIDEwMywgODAsIDExNCwgMTAxLCAxMDIsIDEwNSwgMTIwLCA4MCwgCisgICAgICAgIDk3LCAxMTYsIDExNiwgMTAxLCAxMTQsIDExMCwgMTE2LCAwLCAxOCwgNzYsIDEwNiwgOTcsIDExOCwgOTcsIDQ3LCAxMDgsIDk3LCAxMTAsIDEwMywgNDcsIAorICAgICAgICA4MywgMTE2LCAxMTQsIDEwNSwgMTEwLCAxMDMsIDU5LCA3NiwgMCwgMTYsIDExMCwgMTAxLCAxMDMsIDgzLCAxMTcsIDEwMiwgMTAyLCAxMDUsIDEyMCwgODAsIAorICAgICAgICA5NywgMTE2LCAxMTYsIDEwMSwgMTE0LCAxMTAsIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgMTQsIDExMCwgMTAxLCAxMDMsIDk3LCAxMTYsIDEwNSwgCisgICAgICAgIDExOCwgMTAxLCA4MCwgMTE0LCAxMDEsIDEwMiwgMTA1LCAxMjAsIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgMTQsIDExMCwgMTAxLCAxMDMsIDk3LCAKKyAgICAgICAgMTE2LCAxMDUsIDExOCwgMTAxLCA4MywgMTE3LCAxMDIsIDEwMiwgMTA1LCAxMjAsIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgMTYsIDExMiwgMTExLCAKKyAgICAgICAgMTE1LCA4MCwgMTE0LCAxMDEsIDEwMiwgMTA1LCAxMjAsIDgwLCA5NywgMTE2LCAxMTYsIDEwMSwgMTE0LCAxMTAsIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgCisgICAgICAgIDAsIDE2LCAxMTIsIDExMSwgMTE1LCA4MywgMTE3LCAxMDIsIDEwMiwgMTA1LCAxMjAsIDgwLCA5NywgMTE2LCAxMTYsIDEwMSwgMTE0LCAxMTAsIDExMywgMCwgCisgICAgICAgIDEyNiwgMCwgMSwgNzYsIDAsIDE0LCAxMTIsIDExMSwgMTE1LCAxMDUsIDExNiwgMTA1LCAxMTgsIDEwMSwgODAsIDExNCwgMTAxLCAxMDIsIDEwNSwgMTIwLCAKKyAgICAgICAgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNCwgMTEyLCAxMTEsIDExNSwgMTA1LCAxMTYsIDEwNSwgMTE4LCAxMDEsIDgzLCAxMTcsIDEwMiwgMTAyLCAKKyAgICAgICAgMTA1LCAxMjAsIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgMTcsIDExNCwgMTExLCAxMTcsIDExMCwgMTAwLCAxMDUsIDExMCwgMTAzLCA3MywgMTEwLCAKKyAgICAgICAgOTksIDExNCwgMTAxLCAxMDksIDEwMSwgMTEwLCAxMTYsIDExNiwgMCwgMjIsIDc2LCAxMDYsIDk3LCAxMTgsIDk3LCA0NywgMTA5LCA5NywgMTE2LCAxMDQsIAorICAgICAgICA0NywgNjYsIDEwNSwgMTAzLCA2OCwgMTAxLCA5OSwgMTA1LCAxMDksIDk3LCAxMDgsIDU5LCA3NiwgMCwgNywgMTE1LCAxMjEsIDEwOSwgOTgsIDExMSwgCisgICAgICAgIDEwOCwgMTE1LCAxMTYsIDAsIDM5LCA3NiwgOTksIDExMSwgMTA5LCA0NywgMTA1LCA5OCwgMTA5LCA0NywgMTA1LCA5OSwgMTE3LCA0NywgMTE2LCAxMDEsIAorICAgICAgICAxMjAsIDExNiwgNDcsIDY4LCAxMDEsIDk5LCAxMDUsIDEwOSwgOTcsIDEwOCwgNzAsIDExMSwgMTE0LCAxMDksIDk3LCAxMTYsIDgzLCAxMjEsIDEwOSwgOTgsIAorICAgICAgICAxMTEsIDEwOCwgMTE1LCA1OSwgMTIwLCAxMTQsIDAsIDI5LCA5OSwgMTExLCAxMDksIDQ2LCAxMDUsIDk4LCAxMDksIDQ2LCAxMDUsIDk5LCAxMTcsIDQ2LCAKKyAgICAgICAgMTE2LCAxMDEsIDEyMCwgMTE2LCA0NiwgNzgsIDExNywgMTA5LCA5OCwgMTAxLCAxMTQsIDcwLCAxMTEsIDExNCwgMTA5LCA5NywgMTE2LCAtMzMsIC0xMCwgLTc3LCAKKyAgICAgICAgLTY1LCAxOSwgMTI1LCA3LCAtMjQsIDMsIDAsIDExLCA5MCwgMCwgMTIsIDEwMywgMTE0LCAxMTEsIDExNywgMTEyLCAxMDUsIDExMCwgMTAzLCA4NSwgCisgICAgICAgIDExNSwgMTAxLCAxMDAsIDY2LCAwLCAxNywgMTA5LCA5NywgMTIwLCA3MCwgMTE0LCA5NywgOTksIDExNiwgMTA1LCAxMTEsIDExMCwgNjgsIDEwNSwgMTAzLCAKKyAgICAgICAgMTA1LCAxMTYsIDExNSwgNjYsIDAsIDE2LCAxMDksIDk3LCAxMjAsIDczLCAxMTAsIDExNiwgMTAxLCAxMDMsIDEwMSwgMTE0LCA2OCwgMTA1LCAxMDMsIDEwNSwgCisgICAgICAgIDExNiwgMTE1LCA3MywgMCwgMjEsIDEwOSwgOTcsIDEyMCwgMTA1LCAxMDksIDExNywgMTA5LCA3MCwgMTE0LCA5NywgOTksIDExNiwgMTA1LCAxMTEsIDExMCwgCisgICAgICAgIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgNzMsIDAsIDIwLCAxMDksIDk3LCAxMjAsIDEwNSwgMTA5LCAxMTcsIDEwOSwgNzMsIDExMCwgMTE2LCAxMDEsIAorICAgICAgICAxMDMsIDEwMSwgMTE0LCA2OCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAxMTUsIDY2LCAwLCAxNywgMTA5LCAxMDUsIDExMCwgNzAsIDExNCwgOTcsIDk5LCAxMTYsIAorICAgICAgICAxMDUsIDExMSwgMTEwLCA2OCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAxMTUsIDY2LCAwLCAxNiwgMTA5LCAxMDUsIDExMCwgNzMsIDExMCwgMTE2LCAxMDEsIDEwMywgCisgICAgICAgIDEwMSwgMTE0LCA2OCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAxMTUsIDczLCAwLCAyMSwgMTA5LCAxMDUsIDExMCwgMTA1LCAxMDksIDExNywgMTA5LCA3MCwgMTE0LCAKKyAgICAgICAgOTcsIDk5LCAxMTYsIDEwNSwgMTExLCAxMTAsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgNzMsIDAsIDIwLCAxMDksIDEwNSwgMTEwLCAxMDUsIDEwOSwgCisgICAgICAgIDExNywgMTA5LCA3MywgMTEwLCAxMTYsIDEwMSwgMTAzLCAxMDEsIDExNCwgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA5MCwgMCwgMTYsIDExMiwgOTcsIAorICAgICAgICAxMTQsIDExNSwgMTAxLCA3MywgMTEwLCAxMTYsIDEwMSwgMTAzLCAxMDEsIDExNCwgNzksIDExMCwgMTA4LCAxMjEsIDczLCAwLCAyMSwgMTE1LCAxMDEsIDExNCwgCisgICAgICAgIDEwNSwgOTcsIDEwOCwgODYsIDEwMSwgMTE0LCAxMTUsIDEwNSwgMTExLCAxMTAsIDc5LCAxMTAsIDgzLCAxMTYsIDExNCwgMTAxLCA5NywgMTA5LCAxMjAsIDExNCwgCisgICAgICAgIDAsIDE2LCAxMDYsIDk3LCAxMTgsIDk3LCA0NiwgMTE2LCAxMDEsIDEyMCwgMTE2LCA0NiwgNzAsIDExMSwgMTE0LCAxMDksIDk3LCAxMTYsIC01LCAtNDAsIAorICAgICAgICAtNjgsIDE4LCAtMjMsIDE1LCAyNCwgNjcsIDIsIDAsIDAsIDEyMCwgMTEyLCAwLCAwLCAxLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAgICAgMCwgMSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMSwgMTIwLCAwLCAwLCAKKyAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMSwgMCwgMCwgMCwgMSwgMCwgMzIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgICAgICA2LCAwLCAwLCAwLCAyLCAxLCAxMTYsIDAsIDEsIDQ1LCAxMTYsIDAsIDAsIDExNiwgMCwgMSwgNDUsIDExNiwgMCwgMCwgCisgICAgICAgIDExNiwgMCwgMCwgMTEzLCAwLCAxMjYsIDAsIDgsIDExNiwgMCwgMCwgMTE2LCAwLCAwLCAxMTIsIDExNSwgMTE0LCAwLCAzNywgOTksIAorICAgICAgICAxMTEsIDEwOSwgNDYsIDEwNSwgOTgsIDEwOSwgNDYsIDEwNSwgOTksIDExNywgNDYsIDExNiwgMTAxLCAxMjAsIDExNiwgNDYsIDY4LCAxMDEsIDk5LCAxMDUsIAorICAgICAgICAxMDksIDk3LCAxMDgsIDcwLCAxMTEsIDExNCwgMTA5LCA5NywgMTE2LCA4MywgMTIxLCAxMDksIDk4LCAxMTEsIDEwOCwgMTE1LCA4MCwgMjksIDIzLCAtMTAzLCAKKyAgICAgICAgOCwgMTA0LCAtMTA5LCAtMTAwLCAyLCAwLCAxOCwgNjcsIDAsIDE2LCAxMDAsIDEwMSwgOTksIDEwNSwgMTA5LCA5NywgMTA4LCA4MywgMTAxLCAxMTIsIAorICAgICAgICA5NywgMTE0LCA5NywgMTE2LCAxMTEsIDExNCwgNjcsIDAsIDUsIDEwMCwgMTA1LCAxMDMsIDEwNSwgMTE2LCA2NywgMCwgMTEsIDEwMSwgMTIwLCAxMTIsIAorICAgICAgICAxMTEsIDExMCwgMTAxLCAxMTAsIDExNiwgMTA1LCA5NywgMTA4LCA2NywgMCwgMTcsIDEwMywgMTE0LCAxMTEsIDExNywgMTEyLCAxMDUsIDExMCwgMTAzLCA4MywgCisgICAgICAgIDEwMSwgMTEyLCA5NywgMTE0LCA5NywgMTE2LCAxMTEsIDExNCwgNjcsIDAsIDksIDEwOSwgMTA1LCAxMTAsIDExNywgMTE1LCA4MywgMTA1LCAxMDMsIDExMCwgCisgICAgICAgIDY3LCAwLCAxNywgMTA5LCAxMTEsIDExMCwgMTAxLCAxMTYsIDk3LCAxMTQsIDEyMSwgODMsIDEwMSwgMTEyLCA5NywgMTE0LCA5NywgMTE2LCAxMTEsIDExNCwgCisgICAgICAgIDY3LCAwLCA5LCAxMTIsIDk3LCAxMDAsIDY5LCAxMTUsIDk5LCA5NywgMTEyLCAxMDEsIDY3LCAwLCAxNiwgMTEyLCA5NywgMTE2LCAxMTYsIDEwMSwgCisgICAgICAgIDExNCwgMTEwLCA4MywgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCA2NywgMCwgNywgMTEyLCAxMDEsIDExNCwgNzcsIDEwNSwgMTA4LCAKKyAgICAgICAgMTA4LCA2NywgMCwgNywgMTEyLCAxMDEsIDExNCwgOTksIDEwMSwgMTEwLCAxMTYsIDY3LCAwLCA4LCAxMTIsIDEwOCwgMTE3LCAxMTUsIDgzLCAxMDUsIAorICAgICAgICAxMDMsIDExMCwgNzMsIDAsIDIxLCAxMTUsIDEwMSwgMTE0LCAxMDUsIDk3LCAxMDgsIDg2LCAxMDEsIDExNCwgMTE1LCAxMDUsIDExMSwgMTEwLCA3OSwgMTEwLCAKKyAgICAgICAgODMsIDExNiwgMTE0LCAxMDEsIDk3LCAxMDksIDY3LCAwLCA5LCAxMjIsIDEwMSwgMTE0LCAxMTEsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDc2LCAwLCAKKyAgICAgICAgMywgNzgsIDk3LCA3OCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNCwgOTksIDExNywgMTE0LCAxMTQsIDEwMSwgMTEwLCA5OSwgMTIxLCAKKyAgICAgICAgODMsIDEyMSwgMTA5LCA5OCwgMTExLCAxMDgsIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgMTcsIDEwMSwgMTIwLCAxMTIsIDExMSwgMTEwLCAxMDEsIAorICAgICAgICAxMTAsIDExNiwgODMsIDEwMSwgMTEyLCA5NywgMTE0LCA5NywgMTE2LCAxMTEsIDExNCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCA4LCAxMDUsIAorICAgICAgICAxMTAsIDEwMiwgMTA1LCAxMTAsIDEwNSwgMTE2LCAxMjEsIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgMTgsIDEwNSwgMTEwLCAxMTYsIDEwOCwgNjcsIAorICAgICAgICAxMTcsIDExNCwgMTE0LCAxMDEsIDExMCwgOTksIDEyMSwgODMsIDEyMSwgMTA5LCA5OCwgMTExLCAxMDgsIDExMywgMCwgMTI2LCAwLCAxLCAxMjAsIDExMiwgCisgICAgICAgIDAsIDQ2LCAwLCAzNSwgMCwgMCwgMCwgNDQsIDAsIDQ1LCAwLCA0NiwgMCwgNDIsIDAsIDU5LCAzMiwgNDgsIDAsIDM3LCAKKyAgICAgICAgMCwgNDMsIDAsIDAsIDAsIDIsIDAsIDQ4LCAxMTYsIDAsIDMsIC0xNywgLTY1LCAtNjcsIDExNiwgMCwgMSwgMzYsIDExNiwgMCwgCisgICAgICAgIDEsIDY5LCAxMTYsIDAsIDMsIC0zMCwgLTEyMCwgLTk4LCAxMTYsIDAsIDMsIDg1LCA4MywgNjgsIAorICAgIH07CisKKyAgICBmaW5hbCBzdGF0aWMgYnl0ZVtdW10gY29udGVudCA9IHtnZW5lcmFsSW5zdGFuY2UsIGN1cnJlbmN5SW5zdGFuY2UsIHBlcmNlbnRJbnN0YW5jZSwgc2NpZW50aWZpY0luc3RhbmNlfTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvTnVtYmVyRm9ybWF0VGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJGb3JtYXRUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODM0Yjk2YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvTnVtYmVyRm9ybWF0VGVzdC5qYXZhCkBAIC0wLDAgKzEsNzg1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvTnVtYmVyRm9ybWF0VGVzdC5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzA3LzMxIDE5OjM3OjA2ICQgCisgKiAkUmV2aXNpb246IDEuNiAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYxLjguMSA6IGZvcm1hdCA6IE51bWJlckZvcm1hdFRlc3QKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L251bWZtdHN0LmNwcAorICoqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworCitwdWJsaWMgY2xhc3MgTnVtYmVyRm9ybWF0VGVzdCBleHRlbmRzIGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrIHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEVVUk8gPSAnXHUyMGFjJzsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgTnVtYmVyRm9ybWF0VGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgLy8gVGVzdCB2YXJpb3VzIHBhdHRlcm5zCisgICAgcHVibGljIHZvaWQgVGVzdFBhdHRlcm5zKCkgeworICAgIAorICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBzeW0gPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKyAgICAgICAgZmluYWwgU3RyaW5nIHBhdFtdICAgID0geyAiIy4jIiwgIiMuIiwgIi4jIiwgIiMiIH07CisgICAgICAgIGludCBwYXRfbGVuZ3RoID0gcGF0Lmxlbmd0aDsKKyAgICAgICAgZmluYWwgU3RyaW5nIG5ld3BhdFtdID0geyAiIzAuIyIsICIjMC4iLCAiIy4wIiwgIiMiIH07CisgICAgICAgIGZpbmFsIFN0cmluZyBudW1bXSAgICA9IHsgIjAiLCAgICIwLiIsICIuMCIsICIwIiB9OworICAgICAgICBmb3IgKGludCBpPTA7IGk8cGF0X2xlbmd0aDsgKytpKQorICAgICAgICB7CisgICAgICAgICAgICBEZWNpbWFsRm9ybWF0IGZtdCA9IG5ldyBEZWNpbWFsRm9ybWF0KHBhdFtpXSwgc3ltKTsKKyAgICAgICAgICAgIFN0cmluZyBuZXdwID0gZm10LnRvUGF0dGVybigpOworICAgICAgICAgICAgaWYgKCFuZXdwLmVxdWFscyhuZXdwYXRbaV0pKQorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBQYXR0ZXJuICIgKyBwYXRbaV0gKyAiIHNob3VsZCB0cmFuc211dGUgdG8gIiArIG5ld3BhdFtpXSArCisgICAgICAgICAgICAgICAgICAgICAgIjsgIiArIG5ld3AgKyAiIHNlZW4gaW5zdGVhZCIpOworICAgIAorICAgICAgICAgICAgU3RyaW5nIHMgPSAoKE51bWJlckZvcm1hdClmbXQpLmZvcm1hdCgwKTsKKyAgICAgICAgICAgIGlmICghcy5lcXVhbHMobnVtW2ldKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogUGF0dGVybiAiICsgcGF0W2ldICsgIiBzaG91bGQgZm9ybWF0IHplcm8gYXMgIiArIG51bVtpXSArCisgICAgICAgICAgICAgICAgICAgICAgIjsgIiArIHMgKyAiIHNlZW4gaW5zdGVhZCIpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJNaW4gaW50ZWdlciBkaWdpdHMgPSAiICsgZm10LmdldE1pbmltdW1JbnRlZ2VyRGlnaXRzKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIFRlc3QgZXhwb25lbnRpYWwgcGF0dGVybgorICAgIHB1YmxpYyB2b2lkIFRlc3RFeHBvbmVudGlhbCgpIHsKKyAgICAKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisgICAgICAgIGZpbmFsIFN0cmluZyBwYXRbXSA9IHsgIjAuIyMjI0UwIiwgIjAwLjAwMEUwMCIsICIjIzAuIyMjIyMjRTAwMCIsICIwLiMjI0UwO1swLiMjI0UwXSIgfTsKKyAgICAgICAgaW50IHBhdF9sZW5ndGggPSBwYXQubGVuZ3RoOworICAgIAorICAgICAgICBkb3VibGUgdmFsW10gPSB7IDAuMDEyMzQsIDEyMzQ1Njc4OSwgMS4yM2UzMDAsIC0zLjE0MTU5MjY1M2UtMjcxIH07CisgICAgICAgIGludCB2YWxfbGVuZ3RoID0gdmFsLmxlbmd0aDsKKyAgICAgICAgZmluYWwgU3RyaW5nIHZhbEZvcm1hdFtdID0geworICAgICAgICAgICAgLy8gMC4jIyMjRTAKKyAgICAgICAgICAgICIxLjIzNEUtMiIsICIxLjIzNDZFOCIsICIxLjIzRTMwMCIsICItMy4xNDE2RS0yNzEiLAorICAgICAgICAgICAgLy8gMDAuMDAwRTAwCisgICAgICAgICAgICAiMTIuMzQwRS0wMyIsICIxMi4zNDZFMDciLCAiMTIuMzAwRTI5OSIsICItMzEuNDE2RS0yNzIiLAorICAgICAgICAgICAgLy8gIyMwLiMjIyMjI0UwMDAKKyAgICAgICAgICAgICIxMi4zNEUtMDAzIiwgIjEyMy40NTY4RTAwNiIsICIxLjIzRTMwMCIsICItMzE0LjE1OTNFLTI3MyIsCisgICAgICAgICAgICAvLyAwLiMjI0UwO1swLiMjI0UwXQorICAgICAgICAgICAgIjEuMjM0RS0yIiwgIjEuMjM1RTgiLCAiMS4yM0UzMDAiLCAiWzMuMTQyRS0yNzFdIiB9OworICAgICAgICAvKmRvdWJsZSB2YWxQYXJzZVtdID0KKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAwLjAxMjM0LCAxMjM0NjAwMDAsIDEuMjNFMzAwLCAtMy4xNDE2RS0yNzEsCisgICAgICAgICAgICAgICAgMC4wMTIzNCwgMTIzNDYwMDAwLCAxLjIzRTMwMCwgLTMuMTQxNkUtMjcxLAorICAgICAgICAgICAgICAgIDAuMDEyMzQsIDEyMzQ1NjgwMCwgMS4yM0UzMDAsIC0zLjE0MTU5M0UtMjcxLAorICAgICAgICAgICAgICAgIDAuMDEyMzQsIDEyMzUwMDAwMCwgMS4yM0UzMDAsIC0zLjE0MkUtMjcxLAorICAgICAgICAgICAgfTsqLyAvL1RoZSB2YXJpYWJsZSBpcyBuZXZlciB1c2VkCisgICAgCisgICAgICAgIGludCBsdmFsW10gPSB7IDAsIC0xLCAxLCAxMjM0NTY3ODkgfTsKKyAgICAgICAgaW50IGx2YWxfbGVuZ3RoID0gbHZhbC5sZW5ndGg7CisgICAgICAgIGZpbmFsIFN0cmluZyBsdmFsRm9ybWF0W10gPSB7CisgICAgICAgICAgICAvLyAwLiMjIyNFMAorICAgICAgICAgICAgIjBFMCIsICItMUUwIiwgIjFFMCIsICIxLjIzNDZFOCIsCisgICAgICAgICAgICAvLyAwMC4wMDBFMDAKKyAgICAgICAgICAgICIwMC4wMDBFMDAiLCAiLTEwLjAwMEUtMDEiLCAiMTAuMDAwRS0wMSIsICIxMi4zNDZFMDciLAorICAgICAgICAgICAgLy8gIyMwLiMjIyMjI0UwMDAKKyAgICAgICAgICAgICIwRTAwMCIsICItMUUwMDAiLCAiMUUwMDAiLCAiMTIzLjQ1NjhFMDA2IiwKKyAgICAgICAgICAgIC8vIDAuIyMjRTA7WzAuIyMjRTBdCisgICAgICAgICAgICAiMEUwIiwgIlsxRTBdIiwgIjFFMCIsICIxLjIzNUU4IiB9OworICAgICAgICBpbnQgbHZhbFBhcnNlW10gPSAKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAwLCAtMSwgMSwgMTIzNDYwMDAwLCAKKyAgICAgICAgICAgICAgICAwLCAtMSwgMSwgMTIzNDYwMDAwLCAKKyAgICAgICAgICAgICAgICAwLCAtMSwgMSwgMTIzNDU2ODAwLCAKKyAgICAgICAgICAgICAgICAwLCAtMSwgMSwgMTIzNTAwMDAwLCAKKyAgICAgICAgICAgIH07CisgICAgICAgIGludCBpdmFsID0gMCwgaWx2YWwgPSAwOworICAgICAgICBmb3IgKGludCBwID0gMDsgcCA8IHBhdF9sZW5ndGg7ICsrcCkgeworICAgICAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQgPSBuZXcgRGVjaW1hbEZvcm1hdChwYXRbcF0sIHN5bSk7CisgICAgICAgICAgICBsb2dsbigiUGF0dGVybiBcIiIgKyBwYXRbcF0gKyAiXCIgLXRvUGF0dGVybi0+IFwiIiArIGZtdC50b1BhdHRlcm4oKSArICJcIiIpOworICAgICAgICAgICAgaW50IHY7CisgICAgICAgICAgICBmb3IgKHYgPSAwOyB2IDwgdmFsX2xlbmd0aDsgKyt2KSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHM7CisgICAgICAgICAgICAgICAgcyA9ICgoTnVtYmVyRm9ybWF0KSBmbXQpLmZvcm1hdCh2YWxbdl0pOworICAgICAgICAgICAgICAgIGxvZ2xuKCIgIiArIHZhbFt2XSArICIgLWZvcm1hdC0+ICIgKyBzKTsKKyAgICAgICAgICAgICAgICBpZiAoIXMuZXF1YWxzKHZhbEZvcm1hdFt2ICsgaXZhbF0pKQorICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgIiArIHZhbEZvcm1hdFt2ICsgaXZhbF0pOworICAgIAorICAgICAgICAgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgICAgICAgICAgZG91YmxlIGEgPSBmbXQucGFyc2UocywgcG9zKS5kb3VibGVWYWx1ZSgpOworICAgICAgICAgICAgICAgIGlmIChwb3MuZ2V0SW5kZXgoKSA9PSBzLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCIgIC1wYXJzZS0+ICIgKyBEb3VibGUudG9TdHJpbmcoYSkpOworICAgICAgICAgICAgICAgICAgICAvLyBVc2UgZXBzaWxvbiBjb21wYXJpc29uIGFzIG5lY2Vzc2FyeQorICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogUGFydGlhbCBwYXJzZSAoIiArIHBvcy5nZXRJbmRleCgpICsgIiBjaGFycykgLT4gIiArIGEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yICh2ID0gMDsgdiA8IGx2YWxfbGVuZ3RoOyArK3YpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgczsKKyAgICAgICAgICAgICAgICBzID0gKChOdW1iZXJGb3JtYXQpIGZtdCkuZm9ybWF0KGx2YWxbdl0pOworICAgICAgICAgICAgICAgIGxvZ2xuKCIgIiArIGx2YWxbdl0gKyAiTCAtZm9ybWF0LT4gIiArIHMpOworICAgICAgICAgICAgICAgIGlmICghcy5lcXVhbHMobHZhbEZvcm1hdFt2ICsgaWx2YWxdKSkKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBFeHBlY3RlZCAiICsgbHZhbEZvcm1hdFt2ICsgaWx2YWxdICsgIiBHb3Q6ICIgKyBzKTsKKyAgICAKKyAgICAgICAgICAgICAgICBQYXJzZVBvc2l0aW9uIHBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICAgICAgICAgIGxvbmcgYSA9IDA7CisgICAgICAgICAgICAgICAgTnVtYmVyIEEgPSBmbXQucGFyc2UocywgcG9zKTsKKyAgICAgICAgICAgICAgICBpZiAoQSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGEgPSBBLmxvbmdWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICBpZiAocG9zLmdldEluZGV4KCkgPT0gcy5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIiAgLXBhcnNlLT4gIiArIGEpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGEgIT0gbHZhbFBhcnNlW3YgKyBpbHZhbF0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkICIgKyBsdmFsUGFyc2VbdiArIGlsdmFsXSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFBhcnRpYWwgcGFyc2UgKCIgKyBwb3MuZ2V0SW5kZXgoKSArICIgY2hhcnMpIC0+ICIgKyBMb25nLnRvU3RyaW5nKGEpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbCB0byBwYXJzZSB0aGUgc3RyaW5nOiAiICsgcyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaXZhbCArPSB2YWxfbGVuZ3RoOworICAgICAgICAgICAgaWx2YWwgKz0gbHZhbF9sZW5ndGg7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBUZXN0IHRoZSBoYW5kbGluZyBvZiBxdW90ZXMKKyAgICBwdWJsaWMgdm9pZCBUZXN0UXVvdGVzKCkgeworICAgIAorICAgICAgICBTdHJpbmdCdWZmZXIgcGF0OworICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBzeW0gPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKyAgICAgICAgcGF0ID0gbmV3IFN0cmluZ0J1ZmZlcigiYSdmbycnbydiIyIpOworICAgICAgICBEZWNpbWFsRm9ybWF0IGZtdCA9IG5ldyBEZWNpbWFsRm9ybWF0KHBhdC50b1N0cmluZygpLCBzeW0pOworICAgICAgICBTdHJpbmcgcyA9ICgoTnVtYmVyRm9ybWF0KWZtdCkuZm9ybWF0KDEyMyk7CisgICAgICAgIGxvZ2xuKCJQYXR0ZXJuIFwiIiArIHBhdCArICJcIiIpOworICAgICAgICBsb2dsbigiIEZvcm1hdCAxMjMgLiAiICsgcyk7CisgICAgICAgIGlmICghcy5lcXVhbHMoImFmbydvYjEyMyIpKSAKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCBhZm8nb2IxMjMiKTsKKyAgICAgICAgCisgICAgICAgIHMgPSIiOworICAgICAgICBwYXQgPSBuZXcgU3RyaW5nQnVmZmVyKCJhJydiIyIpOworICAgICAgICBmbXQgPSBuZXcgRGVjaW1hbEZvcm1hdChwYXQudG9TdHJpbmcoKSwgc3ltKTsKKyAgICAgICAgcyA9ICgoTnVtYmVyRm9ybWF0KWZtdCkuZm9ybWF0KDEyMyk7CisgICAgICAgIGxvZ2xuKCJQYXR0ZXJuIFwiIiArIHBhdCArICJcIiIpOworICAgICAgICBsb2dsbigiIEZvcm1hdCAxMjMgLiAiICsgcyk7CisgICAgICAgIGlmICghcy5lcXVhbHMoImEnYjEyMyIpKSAKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCBhJ2IxMjMiKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgaGFuZGxpbmcgb2YgdGhlIGN1cnJlbmN5IHN5bWJvbCBpbiBwYXR0ZXJucy4KKyAgICAgKiovCisgICAgcHVibGljIHZvaWQgVGVzdEN1cnJlbmN5U2lnbigpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBwYXQgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgY2hhciBjdXJyZW5jeSA9IDB4MDBBNDsKKyAgICAgICAgLy8gIlx4QTQjLCMjMC4wMDstXHhBNCMsIyMwLjAwIgorICAgICAgICBwYXQuYXBwZW5kKGN1cnJlbmN5KS5hcHBlbmQoIiMsIyMwLjAwOy0iKS5hcHBlbmQoY3VycmVuY3kpLmFwcGVuZCgiIywjIzAuMDAiKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQgPSBuZXcgRGVjaW1hbEZvcm1hdChwYXQudG9TdHJpbmcoKSwgc3ltKTsKKyAgICAgICAgU3RyaW5nIHMgPSAoKE51bWJlckZvcm1hdCkgZm10KS5mb3JtYXQoMTIzNC41Nik7CisgICAgICAgIHBhdCA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgICAgICBsb2dsbigiUGF0dGVybiBcIiIgKyBmbXQudG9QYXR0ZXJuKCkgKyAiXCIiKTsKKyAgICAgICAgbG9nbG4oIiBGb3JtYXQgIiArIDEyMzQuNTYgKyAiIC4gIiArIHMpOworICAgICAgICBpZiAoIXMuZXF1YWxzKCIkMSwyMzQuNTYiKSkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCAkMSwyMzQuNTYiKTsKKyAgICAgICAgcyA9ICIiOworICAgICAgICBzID0gKChOdW1iZXJGb3JtYXQpIGZtdCkuZm9ybWF0KC0xMjM0LjU2KTsKKyAgICAgICAgbG9nbG4oIiBGb3JtYXQgIiArIERvdWJsZS50b1N0cmluZygtMTIzNC41NikgKyAiIC4gIiArIHMpOworICAgICAgICBpZiAoIXMuZXF1YWxzKCItJDEsMjM0LjU2IikpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgLSQxLDIzNC41NiIpOworICAgIAorICAgICAgICBwYXQgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgLy8gIlx4QTRceEE0ICMsIyMwLjAwO1x4QTRceEE0IC0jLCMjMC4wMCIKKyAgICAgICAgcGF0LmFwcGVuZChjdXJyZW5jeSkuYXBwZW5kKGN1cnJlbmN5KS5hcHBlbmQoIiAjLCMjMC4wMDsiKS5hcHBlbmQoY3VycmVuY3kpLmFwcGVuZChjdXJyZW5jeSkuYXBwZW5kKCIgLSMsIyMwLjAwIik7IAorICAgICAgICBmbXQgPSBuZXcgRGVjaW1hbEZvcm1hdChwYXQudG9TdHJpbmcoKSwgc3ltKTsKKyAgICAgICAgcyA9ICIiOworICAgICAgICBzID0gKChOdW1iZXJGb3JtYXQpIGZtdCkuZm9ybWF0KDEyMzQuNTYpOworICAgICAgICBsb2dsbigiUGF0dGVybiBcIiIgKyBmbXQudG9QYXR0ZXJuKCkgKyAiXCIiKTsKKyAgICAgICAgbG9nbG4oIiBGb3JtYXQgIiArIERvdWJsZS50b1N0cmluZygxMjM0LjU2KSArICIgLiAiICsgcyk7CisgICAgCisgICAgICAgIGlmICghcy5lcXVhbHMoIlVTRCAxLDIzNC41NiIpKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkIFVTRCAxLDIzNC41NiIpOworICAgICAgICBzID0gIiI7CisgICAgICAgIHMgPSAoKE51bWJlckZvcm1hdCkgZm10KS5mb3JtYXQoLTEyMzQuNTYpOworICAgICAgICBsb2dsbigiIEZvcm1hdCAiICsgRG91YmxlLnRvU3RyaW5nKC0xMjM0LjU2KSArICIgLiAiICsgcyk7CisgICAgICAgIGlmICghcy5lcXVhbHMoIlVTRCAtMSwyMzQuNTYiKSkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCBVU0QgLTEsMjM0LjU2Iik7CisgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgbG9jYWxpemVkIGN1cnJlbmN5IHBhdHRlcm5zLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDdXJyZW5jeSgpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IGN1cnJlbmN5Rm10ID0gCisgICAgICAgICAgICBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShMb2NhbGUuQ0FOQURBX0ZSRU5DSCk7CisgICAgCisgICAgICAgIFN0cmluZyBzOworICAgICAgICBzID0gY3VycmVuY3lGbXQuZm9ybWF0KDEuNTApOworICAgICAgICBsb2dsbigiVW4gcGF1dnJlIGljaSBhLi4uLi4uLi4uLi4iICsgcyk7CisgICAgICAgICAgICAKKyAgICAgICAgaWYgKCFzLmVxdWFscygiMSw1MCAkIikpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgMSw1MCAkLCBnb3QgIiArIHMpOworICAgICAgICBzID0gIiI7CisgICAgICAgIGN1cnJlbmN5Rm10ID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBzID0gY3VycmVuY3lGbXQuZm9ybWF0KDEuNTApOworICAgICAgICBsb2dsbigiVW4gcGF1dnJlIGVuIEFsbGVtYWduZSBhLi4iICsgcyk7CisgICAgICAgIGlmICghcy5lcXVhbHMoIjEsNTAgIiArIEVVUk8pKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkIDEsNTAgRE0sIGdvdCAiICsgcyk7CisgICAgICAgIHMgPSAiIjsKKyAgICAgICAgY3VycmVuY3lGbXQgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShMb2NhbGUuRlJBTkNFKTsKKyAgICAgICAgcyA9IGN1cnJlbmN5Rm10LmZvcm1hdCgxLjUwKTsKKyAgICAgICAgbG9nbG4oIlVuIHBhdXZyZSBlbiBGcmFuY2UgYS4uLi4uIiArIHMpOworICAgICAgICBpZiAoIXMuZXF1YWxzKCIxLDUwICIgKyBFVVJPKSkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCAxLDUwIEYsIGdvdCAiICsgcyk7CisgICAgCisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgQ3VycmVuY3kgb2JqZWN0IGhhbmRsaW5nLCBuZXcgYXMgb2YgSUNVIDIuMi4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q3VycmVuY3lPYmplY3QoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBmbXQgPSAKKyAgICAgICAgICAgIE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIAorICAgICAgICBleHBlY3RDdXJyZW5jeShmbXQsIG51bGwsIDEyMzQuNTYsICIkMSwyMzQuNTYiKTsKKworICAgICAgICBleHBlY3RDdXJyZW5jeShmbXQsIEN1cnJlbmN5LmdldEluc3RhbmNlKExvY2FsZS5GUkFOQ0UpLAorICAgICAgICAgICAgICAgICAgICAgICAxMjM0LjU2LCAiXHUyMEFDMSwyMzQuNTYiKTsgLy8gRXVybworCisgICAgICAgIGV4cGVjdEN1cnJlbmN5KGZtdCwgQ3VycmVuY3kuZ2V0SW5zdGFuY2UoTG9jYWxlLkpBUEFOKSwKKyAgICAgICAgICAgICAgICAgICAgICAgMTIzNC41NiwgIlx1RkZFNTEsMjM1Iik7IC8vIFllbgorCisgICAgICAgIGV4cGVjdEN1cnJlbmN5KGZtdCwgQ3VycmVuY3kuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiZnIiLCAiQ0giLCAiIikpLAorICAgICAgICAgICAgICAgICAgICAgICAxMjM0LjU2LCAiQ0hGMSwyMzQuNTAiKTsgLy8gMC4yNSByb3VuZGluZworCisgICAgICAgIGV4cGVjdEN1cnJlbmN5KGZtdCwgQ3VycmVuY3kuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKSwKKyAgICAgICAgICAgICAgICAgICAgICAgMTIzNC41NiwgIiQxLDIzNC41NiIpOworCisgICAgICAgIGZtdCA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKExvY2FsZS5GUkFOQ0UpOworICAgICAgICAKKyAgICAgICAgZXhwZWN0Q3VycmVuY3koZm10LCBudWxsLCAxMjM0LjU2LCAiMSAyMzQsNTYgXHUyMEFDIik7CisKKyAgICAgICAgZXhwZWN0Q3VycmVuY3koZm10LCBDdXJyZW5jeS5nZXRJbnN0YW5jZShMb2NhbGUuSkFQQU4pLAorICAgICAgICAgICAgICAgICAgICAgICAxMjM0LjU2LCAiMSAyMzUgXHVGRkU1Iik7IC8vIFllbgorCisgICAgICAgIGV4cGVjdEN1cnJlbmN5KGZtdCwgQ3VycmVuY3kuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiZnIiLCAiQ0giLCAiIikpLAorICAgICAgICAgICAgICAgICAgICAgICAxMjM0LjU2LCAiMSAyMzQsNTAgQ0hGIik7IC8vIDAuMjUgcm91bmRpbmcKKworICAgICAgICBleHBlY3RDdXJyZW5jeShmbXQsIEN1cnJlbmN5LmdldEluc3RhbmNlKExvY2FsZS5VUyksCisgICAgICAgICAgICAgICAgICAgICAgIDEyMzQuNTYsICIxIDIzNCw1NiBVU0QiKTsKKworICAgICAgICBleHBlY3RDdXJyZW5jeShmbXQsIEN1cnJlbmN5LmdldEluc3RhbmNlKExvY2FsZS5GUkFOQ0UpLAorICAgICAgICAgICAgICAgICAgICAgICAxMjM0LjU2LCAiMSAyMzQsNTYgXHUyMEFDIik7IC8vIEV1cm8KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGV4cGVjdEN1cnJlbmN5KE51bWJlckZvcm1hdCBuZiwgQ3VycmVuY3kgY3VyciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIHZhbHVlLCBTdHJpbmcgc3RyaW5nKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gKERlY2ltYWxGb3JtYXQpIG5mOworICAgICAgICBpZiAoY3VyciAhPSBudWxsKSB7CisgICAgICAgICAgICBmbXQuc2V0Q3VycmVuY3koY3Vycik7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHMgPSBmbXQuZm9ybWF0KHZhbHVlKS5yZXBsYWNlKCdcdTAwQTAnLCAnICcpOworCisgICAgICAgIGlmIChzLmVxdWFscyhzdHJpbmcpKSB7CisgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyB2YWx1ZSArICIgeCAiICsgY3VyciArICIgPT4gIiArIHMpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyB2YWx1ZSArICIgeCAiICsgY3VyciArICIgPT4gIiArIHMgKworICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQgIiArIHN0cmluZyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q3VycmVuY3lQYXR0ZXJucygpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIExvY2FsZVtdIGxvY3MgPSBOdW1iZXJGb3JtYXQuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICBmb3IgKGk9MDsgaTxsb2NzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShsb2NzW2ldKTsKKyAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSBjdXJyZW5jeSBmb3JtYXRzIGRvIG5vdCBoYXZlIGEgdmFyaWFibGUgbnVtYmVyCisgICAgICAgICAgICAvLyBvZiBmcmFjdGlvbiBkaWdpdHMKKyAgICAgICAgICAgIGludCBtaW4gPSBuZi5nZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoKTsKKyAgICAgICAgICAgIGludCBtYXggPSBuZi5nZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoKTsKKyAgICAgICAgICAgIGlmIChtaW4gIT0gbWF4KSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGEgPSBuZi5mb3JtYXQoMS4wKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgYiA9IG5mLmZvcm1hdCgxLjEyNSk7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBsb2NzW2ldICsKKyAgICAgICAgICAgICAgICAgICAgICAiIG1pbiBmcmFjdGlvbiBkaWdpdHMgIT0gbWF4IGZyYWN0aW9uIGRpZ2l0czsgIisKKyAgICAgICAgICAgICAgICAgICAgICAieCAxLjAgPT4gIiArIGEgKworICAgICAgICAgICAgICAgICAgICAgICI7IHggMS4xMjUgPT4gIiArIGIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gTWFrZSBzdXJlIEVVUk8gY3VycmVuY3kgZm9ybWF0cyBoYXZlIGV4YWN0bHkgMiBmcmFjdGlvbiBkaWdpdHMKKyAgICAgICAgICAgIGlmIChuZiBpbnN0YW5jZW9mIERlY2ltYWxGb3JtYXQpIHsKKyAgICAgICAgICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gKERlY2ltYWxGb3JtYXQpIG5mOworICAgICAgICAgICAgICAgIGlmICgiRVVSIi5lcXVhbHMoZGYuZ2V0Q3VycmVuY3koKS5nZXRDdXJyZW5jeUNvZGUoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1pbiAhPSAyIHx8IG1heCAhPSAyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgYSA9IG5mLmZvcm1hdCgxLjApOworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBsb2NzW2ldICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgaXMgYSBFVVJPIGZvcm1hdCBidXQgaXQgZG9lcyBub3QgaGF2ZSAyIGZyYWN0aW9uIGRpZ2l0czsgIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ4IDEuMCA9PiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRG8gcnVkaW1lbnRhcnkgdGVzdGluZyBvZiBwYXJzaW5nLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RQYXJzZSgpIHsKKyAgICAgICAgU3RyaW5nIGFyZyA9ICIwLjAiOworICAgICAgICBEZWNpbWFsRm9ybWF0IGZvcm1hdCA9IG5ldyBEZWNpbWFsRm9ybWF0KCIwMCIpOworICAgICAgICBkb3VibGUgYU51bWJlciA9IDBsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgYU51bWJlciA9IGZvcm1hdC5wYXJzZShhcmcpLmRvdWJsZVZhbHVlKCk7CisgICAgICAgIH0gY2F0Y2ggKGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZSk7CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4oInBhcnNlKCIgKyBhcmcgKyAiKSA9ICIgKyBhTnVtYmVyKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCBwcm9wZXIgcm91bmRpbmcgYnkgdGhlIGZvcm1hdCBtZXRob2QuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFJvdW5kaW5nNDg3KCkgeworICAgIAorICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgcm91bmRpbmdUZXN0KG5mLCAwLjAwMTU5OTk5LCA0LCAiMC4wMDE2Iik7CisgICAgICAgIHJvdW5kaW5nVGVzdChuZiwgMC4wMDk5NSwgNCwgIjAuMDEiKTsKKyAgICAKKyAgICAgICAgcm91bmRpbmdUZXN0KG5mLCAxMi4zOTk1LCAzLCAiMTIuNCIpOworICAgIAorICAgICAgICByb3VuZGluZ1Rlc3QobmYsIDEyLjQ5OTksIDAsICIxMiIpOworICAgICAgICByb3VuZGluZ1Rlc3QobmYsIC0gMTkuNSwgMCwgIi0yMCIpOworICAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBmdW5jdGlvbmluZyBvZiB0aGUgc2Vjb25kYXJ5IGdyb3VwaW5nIHZhbHVlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTZWNvbmRhcnlHcm91cGluZygpIHsKKyAgICAKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgVVMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBmID0gbmV3IERlY2ltYWxGb3JtYXQoIiMsIyMsIyMjIiwgVVMpOworICAgIAorICAgICAgICBleHBlY3QoZiwgMTIzNDU2Nzg5TCwgIjEyLDM0LDU2LDc4OSIpOworICAgICAgICBleHBlY3RQYXQoZiwgIiMsIyMsIyMjIik7CisgICAgICAgIGYuYXBwbHlQYXR0ZXJuKCIjLCMjIyIpOworICAgIAorICAgICAgICBmLnNldFNlY29uZGFyeUdyb3VwaW5nU2l6ZSg0KTsKKyAgICAgICAgZXhwZWN0KGYsIDEyMzQ1Njc4OUwsICIxMiwzNDU2LDc4OSIpOworICAgICAgICBleHBlY3RQYXQoZiwgIiMsIyMjIywjIyMiKTsKKyAgICAgICAgTnVtYmVyRm9ybWF0IGcgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiaGkiLCAiSU4iKSk7CisgICAgCisgICAgICAgIFN0cmluZyBvdXQgPSAiIjsKKyAgICAgICAgbG9uZyBsID0gMTg3NjU0MzIxMEw7CisgICAgICAgIG91dCA9IGcuZm9ybWF0KGwpOworICAgIAorICAgICAgICAvLyBleHBlY3QgIjEsODcsNjUsNDMsMjEwIiwgYnV0IHdpdGggSGluZGkgZGlnaXRzCisgICAgICAgIC8vICAgICAgICAgMDEyMzQ1Njc4OTAxMjMKKyAgICAgICAgYm9vbGVhbiBvayA9IHRydWU7CisgICAgICAgIGlmIChvdXQubGVuZ3RoKCkgIT0gMTQpIHsKKyAgICAgICAgICAgIG9rID0gZmFsc2U7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG91dC5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBleHBlY3RHcm91cCA9IGZhbHNlOworICAgICAgICAgICAgICAgIHN3aXRjaCAoaSkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIDEgOgorICAgICAgICAgICAgICAgICAgICBjYXNlIDQgOgorICAgICAgICAgICAgICAgICAgICBjYXNlIDcgOgorICAgICAgICAgICAgICAgICAgICBjYXNlIDEwIDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdEdyb3VwID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBMYXRlciAtLSBmaXggdGhpcyB0byBnZXQgdGhlIGFjdHVhbCBncm91cGluZworICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlciBmcm9tIHRoZSByZXNvdXJjZSBidW5kbGUuCisgICAgICAgICAgICAgICAgYm9vbGVhbiBpc0dyb3VwID0gKG91dC5jaGFyQXQoaSkgPT0gMHgwMDJDKTsKKyAgICAgICAgICAgICAgICBpZiAoaXNHcm91cCAhPSBleHBlY3RHcm91cCkgeworICAgICAgICAgICAgICAgICAgICBvayA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFvaykgeworICAgICAgICAgICAgZXJybG4oIkZBSUwgIEV4cGVjdGVkICIrIGwgKyAiIHggaGlfSU4gLiBcIjEsODcsNjUsNDMsMjEwXCIgKHdpdGggSGluZGkgZGlnaXRzKSwgZ290IFwiIgorICAgICAgICAgICAgICAgICAgICArIG91dCArICJcIiIpOyAKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPayAgICAiICsgbCArICIgeCBoaV9JTiAuIFwiIiArIG91dCArICJcIiIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHJvdW5kaW5nVGVzdChOdW1iZXJGb3JtYXQgbmYsIGRvdWJsZSB4LCBpbnQgbWF4RnJhY3Rpb25EaWdpdHMsIGZpbmFsIFN0cmluZyBleHBlY3RlZCkgeworICAgICAgICBuZi5zZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMobWF4RnJhY3Rpb25EaWdpdHMpOworICAgICAgICBTdHJpbmcgb3V0ID0gbmYuZm9ybWF0KHgpOworICAgICAgICBsb2dsbih4ICsgIiBmb3JtYXRzIHdpdGggIiArIG1heEZyYWN0aW9uRGlnaXRzICsgIiBmcmFjdGlvbmFsIGRpZ2l0cyB0byAiICsgb3V0KTsgCisgICAgICAgIGlmICghb3V0LmVxdWFscyhleHBlY3RlZCkpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgIiArIGV4cGVjdGVkKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVXBncmFkZSB0byBhbHBoYVdvcmtzCisgICAgICovCisgICAgcHVibGljIHZvaWQgZXhwZWN0KE51bWJlckZvcm1hdCBmbXQsIFN0cmluZyBzdHIsIGludCBuKSB7CisgICAgICAgIExvbmcgbnVtID0gbmV3IExvbmcoMCk7CisgICAgICAgIHRyeSB7CisgICAgICAgIG51bSA9IChMb25nKWZtdC5wYXJzZShzdHIpOworICAgICAgICB9IGNhdGNoIChqYXZhLnRleHQuUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nbG4oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgICAgIFN0cmluZyBwYXQgPSAoKERlY2ltYWxGb3JtYXQpZm10KS50b1BhdHRlcm4oKTsKKyAgICAgICAgaWYgKG51bS5sb25nVmFsdWUoKSA9PSBuKSB7CisgICAgICAgICAgICBsb2dsbigiT2sgICBcIiIgKyBzdHIgKyAiXCIgeCAiICsKKyAgICAgICAgICAgICAgICAgIHBhdCArICIgPSAiICsKKyAgICAgICAgICAgICAgICAgIG51bS50b1N0cmluZygpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMIFwiIiArIHN0ciArICJcIiB4ICIgKworICAgICAgICAgICAgICAgICAgcGF0ICsgIiA9ICIgKworICAgICAgICAgICAgICAgICAgbnVtLnRvU3RyaW5nKCkgKyAiLCBleHBlY3RlZCAiICsgbiArICJMIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVXBncmFkZSB0byBhbHBoYVdvcmtzCisgICAgICovICAgICAgICAKKyAgICBwdWJsaWMgdm9pZCBleHBlY3QoTnVtYmVyRm9ybWF0IGZtdCwgZmluYWwgZG91YmxlIG4sIGZpbmFsIFN0cmluZyBleHApIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHNhdyA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgICAgICBGaWVsZFBvc2l0aW9uIHBvcyA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOyAKKyAgICAgICAgc2F3ID0gZm10LmZvcm1hdChuLCBzYXcsIHBvcyk7CisgICAgICAgIFN0cmluZyBwYXQgPSAoKERlY2ltYWxGb3JtYXQpZm10KS50b1BhdHRlcm4oKTsKKyAgICAgICAgaWYgKHNhdy50b1N0cmluZygpLmVxdWFscyhleHApKSB7CisgICAgICAgICAgICBsb2dsbigiT2sgICAiICsgRG91YmxlLnRvU3RyaW5nKG4pICsgIiB4ICIgKworICAgICAgICAgICAgICAgICAgcGF0ICsgIiA9IFwiIiArCisgICAgICAgICAgICAgICAgICBzYXcgKyAiXCIiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMICIgKyBEb3VibGUudG9TdHJpbmcobikgKyAiIHggIiArCisgICAgICAgICAgICAgICAgICBwYXQgKyAiID0gXCIiICsKKyAgICAgICAgICAgICAgICAgIHNhdyArICJcIiwgZXhwZWN0ZWQgXCIiICsgZXhwICsgIlwiIik7CisgICAgICAgIH0gICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFVwZ3JhZGUgdG8gYWxwaGFXb3JrcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RFeHBvbmVudCgpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgVVMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQxID0gbmV3IERlY2ltYWxGb3JtYXQoIjAuIyMjRTAiLCBVUyk7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZm10MiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIwLiMjI0UrMCIsIFVTKTsKKyAgICAgICAgaW50IG4gPSAxMjM0OworICAgICAgICBleHBlY3QoZm10MSwgbiwgIjEuMjM0RTMiKTsKKyAgICAgICAgZXhwZWN0KGZtdDIsIG4sICIxLjIzNEUrMyIpOworICAgICAgICBleHBlY3QoZm10MSwgIjEuMjM0RTMiLCBuKTsKKyAgICAgICAgZXhwZWN0KGZtdDEsICIxLjIzNEUrMyIsIG4pOyAvLyBFaXRoZXIgZm9ybWF0IHNob3VsZCBwYXJzZSAiRSszIgorICAgICAgICBleHBlY3QoZm10MiwgIjEuMjM0RSszIiwgbik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFVwZ3JhZGUgdG8gYWxwaGFXb3JrcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTY2llbnRpZmljKCkgeworICAgIAorICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBVUyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworICAgIAorICAgICAgICAvLyBUZXN0IHBhdHRlcm4gcm91bmQtdHJpcAorICAgICAgICBmaW5hbCBTdHJpbmcgUEFUW10gPSB7ICIjRTAiLCAiMC4jIyMjRTAiLCAiMDAuMDAwRTAwIiwgIiMjMC4jIyMjRTAwMCIsICIwLiMjI0UwO1swLiMjI0UwXSIgfTsKKyAgICAgICAgaW50IFBBVF9sZW5ndGggPSBQQVQubGVuZ3RoOworICAgICAgICBpbnQgRElHSVRTW10gPSB7CisgICAgICAgICAgICAvLyBtaW4gaW50LCBtYXggaW50LCBtaW4gZnJhYywgbWF4IGZyYWMKKyAgICAgICAgICAgIDAsIDEsIDAsIDAsIC8vICIjRTAiCisgICAgICAgICAgICAxLCAxLCAwLCA0LCAvLyAiMC4jIyMjRTAiCisgICAgICAgICAgICAyLCAyLCAzLCAzLCAvLyAiMDAuMDAwRTAwIgorICAgICAgICAgICAgMSwgMywgMCwgNCwgLy8gIiMjMC4jIyMjRTAwMCIKKyAgICAgICAgICAgIDEsIDEsIDAsIDMsIC8vICIwLiMjI0UwO1swLiMjI0UwXSIKKyAgICAgICAgfTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBQQVRfbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBwYXQgPSBQQVRbaV07CisgICAgICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQocGF0LCBVUyk7CisgICAgICAgICAgICBTdHJpbmcgcGF0MiA9IGRmLnRvUGF0dGVybigpOworICAgICAgICAgICAgaWYgKHBhdC5lcXVhbHMocGF0MikpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT2sgICBQYXR0ZXJuIHJ0IFwiIiArIHBhdCArICJcIiAuIFwiIiArIHBhdDIgKyAiXCIiKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgUGF0dGVybiBydCBcIiIgKyBwYXQgKyAiXCIgLiBcIiIgKyBwYXQyICsgIlwiIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBNYWtlIHN1cmUgZGlnaXQgY291bnRzIG1hdGNoIHdoYXQgd2UgZXhwZWN0CisgICAgICAgICAgICBpZiAoZGYuZ2V0TWluaW11bUludGVnZXJEaWdpdHMoKSAhPSBESUdJVFNbNCAqIGldCisgICAgICAgICAgICAgICAgfHwgZGYuZ2V0TWF4aW11bUludGVnZXJEaWdpdHMoKSAhPSBESUdJVFNbNCAqIGkgKyAxXQorICAgICAgICAgICAgICAgIHx8IGRmLmdldE1pbmltdW1GcmFjdGlvbkRpZ2l0cygpICE9IERJR0lUU1s0ICogaSArIDJdCisgICAgICAgICAgICAgICAgfHwgZGYuZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCkgIT0gRElHSVRTWzQgKiBpICsgM10pIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcIiIrIHBhdCsgIlwiIG1pbi9tYXggaW50OyBtaW4vbWF4IGZyYWMgPSAiCisgICAgICAgICAgICAgICAgICAgICAgICArIGRmLmdldE1pbmltdW1JbnRlZ2VyRGlnaXRzKCkgKyAiLyIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgZGYuZ2V0TWF4aW11bUludGVnZXJEaWdpdHMoKSArICI7IgorICAgICAgICAgICAgICAgICAgICAgICAgKyBkZi5nZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoKSArICIvIgorICAgICAgICAgICAgICAgICAgICAgICAgKyBkZi5nZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoKSArICIsIGV4cGVjdCAiCisgICAgICAgICAgICAgICAgICAgICAgICArIERJR0lUU1s0ICogaV0gKyAiLyIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgRElHSVRTWzQgKiBpICsgMV0gKyAiOyIgCisgICAgICAgICAgICAgICAgICAgICAgICArIERJR0lUU1s0ICogaSArIDJdICsgIi8iCisgICAgICAgICAgICAgICAgICAgICAgICArIERJR0lUU1s0ICogaSArIDNdKTsgCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIjRTAiLCBVUyksIDEyMzQ1LjAsICIxLjIzNDVFNCIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIjBFMCIsIFVTKSwgMTIzNDUuMCwgIjFFNCIpOworICAgIAorICAgICAgICAvLyBwYXR0ZXJuIG9mIE51bWJlckZvcm1hdC5nZXRTY2llbnRpZmljSW5zdGFuY2UoTG9jYWxlLlVTKSA9ICIwLiMjIyMjI0UwIiBub3QgIiNFMCIKKyAgICAgICAgLy8gc28gcmVzdWx0ID0gMS4yMzQ1NjhFNCBub3QgMS4yMzQ1Njc4OTAxRTQKKyAgICAgICAgLy93aGVuIHRoZSBwYXR0ZXJuIHByb2JsZW0gaXMgZmluYWxpemVkLCBkZWxldGUgY29tbWVudCBtYXJrJy8vJyAKKyAgICAgICAgLy9vZiB0aGUgZm9sbG93aW5nIGNvZGUKKyAgICAgICAgZXhwZWN0KE51bWJlckZvcm1hdC5nZXRTY2llbnRpZmljSW5zdGFuY2UoTG9jYWxlLlVTKSwgMTIzNDUuNjc4OTAxLCAiMS4yMzQ1Njc4OTAxRTQiKTsKKyAgICAKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIjIzAuIyMjRTAiLCBVUyksIDEyMzQ1LjAsICIxMi4zNEUzIik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiIyMwLiMjI0UwIiwgVVMpLCAxMjM0NS4wMDAwMSwgIjEyLjM1RTMiKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIjIzAuIyMjI0UwIiwgVVMpLCAxMjM0NSwgIjEyLjM0NUUzIik7CisgICAgCisgICAgICAgIC8vIHBhdHRlcm4gb2YgTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZShMb2NhbGUuVVMpID0gIjAuIyMjIyMjRTAiIG5vdCAiI0UwIgorICAgICAgICAvLyBzbyByZXN1bHQgPSAxLjIzNDU2OEU0IG5vdCAxLjIzNDU2Nzg5MDFFNAorICAgICAgICBleHBlY3QoTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZShMb2NhbGUuRlJBTkNFKSwgMTIzNDUuNjc4OTAxLCAiMSwyMzQ1Njc4OTAxRTQiKTsKKyAgICAKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIjIzAuIyMjI0UwIiwgVVMpLCA3ODkuMTIzNDVlLTksICI3ODkuMTJFLTkiKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIjIzAuIyMjI0UwIiwgVVMpLCA3ODAuZS05LCAiNzgwRS05Iik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiLiMjI0UwIiwgVVMpLCA0NTY3OC4wLCAiLjQ1N0U1Iik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiLiMjI0UwIiwgVVMpLCAwLCAiLjBFMCIpOworICAgICAgICAvKgorICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXRbXSB7IG5ldyBEZWNpbWFsRm9ybWF0KCIjRTAiLCBVUyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERlY2ltYWxGb3JtYXQoIiMjRTAiLCBVUyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERlY2ltYWxGb3JtYXQoIiMjIyNFMCIsIFVTKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRGVjaW1hbEZvcm1hdCgiMEUwIiwgVVMpLCAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRGVjaW1hbEZvcm1hdCgiMDBFMCIsIFVTKSwgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRGVjaW1hbEZvcm1hdCgiMDAwRTAiLCBVUyksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgbmV3IExvbmcoNDU2NzgwMDApLAorICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgIjQuNTY3OEU3IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI0NS42NzhFNiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiNDU2Ny44RTQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjVFNyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiNDZFNiIsICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI0NTdFNSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgKTsKKyAgICAgICAgIQorICAgICAgICAhIFVucm9sbCB0aGlzIHRlc3QgaW50byBpbmRpdmlkdWFsIHRlc3RzIGJlbG93Li4uCisgICAgICAgICEKKyAgICAgICAgKi8KKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIjRTAiLCBVUyksIDQ1Njc4MDAwLCAiNC41Njc4RTciKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIjI0UwIiwgVVMpLCA0NTY3ODAwMCwgIjQ1LjY3OEU2Iik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiIyMjI0UwIiwgVVMpLCA0NTY3ODAwMCwgIjQ1NjcuOEU0Iik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiMEUwIiwgVVMpLCA0NTY3ODAwMCwgIjVFNyIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIjAwRTAiLCBVUyksIDQ1Njc4MDAwLCAiNDZFNiIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIjAwMEUwIiwgVVMpLCA0NTY3ODAwMCwgIjQ1N0U1Iik7CisgICAgICAgIC8qCisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiIyMjRTAiLCBVUywgc3RhdHVzKSwKKyAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7IG5ldyBEb3VibGUoMC4wMDAwMTIzKSwgIjEyLjNFLTYiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERvdWJsZSgwLjAwMDEyMyksICIxMjNFLTYiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERvdWJsZSgwLjAwMTIzKSwgIjEuMjNFLTMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERvdWJsZSgwLjAxMjMpLCAiMTIuM0UtMyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRG91YmxlKDAuMTIzKSwgIjEyM0UtMyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRG91YmxlKDEuMjMpLCAiMS4yM0UwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEb3VibGUoMTIuMyksICIxMi4zRTAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERvdWJsZSgxMjMpLCAiMTIzRTAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERvdWJsZSgxMjMwKSwgIjEuMjNFMyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAhCisgICAgICAgICEgVW5yb2xsIHRoaXMgdGVzdCBpbnRvIGluZGl2aWR1YWwgdGVzdHMgYmVsb3cuLi4KKyAgICAgICAgIQorICAgICAgICAqLworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIiMjI0UwIiwgVVMpLCAwLjAwMDAxMjMsICIxMi4zRS02Iik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiIyMjRTAiLCBVUyksIDAuMDAwMTIzLCAiMTIzRS02Iik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiIyMjRTAiLCBVUyksIDAuMDAxMjMsICIxLjIzRS0zIik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiIyMjRTAiLCBVUyksIDAuMDEyMywgIjEyLjNFLTMiKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIjIyNFMCIsIFVTKSwgMC4xMjMsICIxMjNFLTMiKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIjIyNFMCIsIFVTKSwgMS4yMywgIjEuMjNFMCIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIiMjI0UwIiwgVVMpLCAxMi4zLCAiMTIuM0UwIik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiIyMjRTAiLCBVUyksIDEyMy4wLCAiMTIzRTAiKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIjIyNFMCIsIFVTKSwgMTIzMC4wLCAiMS4yM0UzIik7CisgICAgICAgIC8qCisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiMC4jRSswMCIsIFVTLCBzdGF0dXMpLAorICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdIHsgbmV3IERvdWJsZSgwLjAwMDEyKSwgIjEuMkUtMDQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExvbmcoMTIwMDApLCAgICAgIjEuMkUrMDQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgIQorICAgICAgICAhIFVucm9sbCB0aGlzIHRlc3QgaW50byBpbmRpdmlkdWFsIHRlc3RzIGJlbG93Li4uCisgICAgICAgICEKKyAgICAgICAgKi8KKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIwLiNFKzAwIiwgVVMpLCAwLjAwMDEyLCAiMS4yRS0wNCIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIjAuI0UrMDAiLCBVUyksIDEyMDAwLCAiMS4yRSswNCIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBVcGdyYWRlIHRvIGFscGhhV29ya3MKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UGFkKCkgeworICAgIAorICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBVUyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIipeIyMuIyMiLCBVUyksIDAsICJeXl5eMCIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIipeIyMuIyMiLCBVUyksIC0xLjMsICJeLTEuMyIpOworICAgICAgICBleHBlY3QoCisgICAgICAgICAgICBuZXcgRGVjaW1hbEZvcm1hdCgiIyMwLjAjIyMjRTAqXyBnLW0vc14yIiwgVVMpLCAKKyAgICAgICAgICAgIDAsIAorICAgICAgICAgICAgIjAuMEUwX19fX19fIGctbS9zXjIiKTsgCisgICAgICAgIGV4cGVjdCgKKyAgICAgICAgICAgIG5ldyBEZWNpbWFsRm9ybWF0KCIjIzAuMCMjIyNFMCpfIGctbS9zXjIiLCBVUyksIAorICAgICAgICAgICAgMS4wIC8gMywgCisgICAgICAgICAgICAiMzMzLjMzM0UtM18gZy1tL3NeMiIpOyAKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIjIzAuMCMjIyMqXyBnLW0vc14yIiwgVVMpLCAwLCAiMC4wX19fX19fIGctbS9zXjIiKTsKKyAgICAgICAgZXhwZWN0KAorICAgICAgICAgICAgbmV3IERlY2ltYWxGb3JtYXQoIiMjMC4wIyMjIypfIGctbS9zXjIiLCBVUyksIAorICAgICAgICAgICAgMS4wIC8gMywgCisgICAgICAgICAgICAiMC4zMzMzM19fIGctbS9zXjIiKTsgCisgICAgCisgICAgICAgIC8vIFRlc3QgcGFkZGluZyBiZWZvcmUgYSBzaWduCisgICAgICAgIGZpbmFsIFN0cmluZyBmb3JtYXRTdHIgPSAiKngjLCMjIywjIyMsIyMwLjAjOyp4KCMjIywjIyMsIyMwLjAjKSI7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIsIFVTKSwgLTEwLCAieHh4eHh4eHh4eCgxMC4wKSIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyLCBVUyksIC0xMDAwLCAieHh4eHh4eCgxLDAwMC4wKSIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyLCBVUyksIC0xMDAwMDAwLCAieHh4KDEsMDAwLDAwMC4wKSIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyLCBVUyksIC0xMDAuMzcsICJ4eHh4eHh4eCgxMDAuMzcpIik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIsIFVTKSwgLTEwNDU2LjM3LCAieHh4eHgoMTAsNDU2LjM3KSIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyLCBVUyksIC0xMTIwNDU2LjM3LCAieHgoMSwxMjAsNDU2LjM3KSIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyLCBVUyksIC0xMTIwNDU2MDAuMzcsICIoMTEyLDA0NSw2MDAuMzcpIik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIsIFVTKSwgLTEyNTIwNDU2MDAuMzcsICIoMSwyNTIsMDQ1LDYwMC4zNykiKTsKKyAgICAKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KGZvcm1hdFN0ciwgVVMpLCAxMCwgInh4eHh4eHh4eHh4eDEwLjAiKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KGZvcm1hdFN0ciwgVVMpLCAxMDAwLCAieHh4eHh4eHh4MSwwMDAuMCIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyLCBVUyksIDEwMDAwMDAsICJ4eHh4eDEsMDAwLDAwMC4wIik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIsIFVTKSwgMTAwLjM3LCAieHh4eHh4eHh4eDEwMC4zNyIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyLCBVUyksIDEwNDU2LjM3LCAieHh4eHh4eDEwLDQ1Ni4zNyIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyLCBVUyksIDExMjA0NTYuMzcsICJ4eHh4MSwxMjAsNDU2LjM3Iik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIsIFVTKSwgMTEyMDQ1NjAwLjM3LCAieHgxMTIsMDQ1LDYwMC4zNyIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyLCBVUyksIDEwMjUyMDQ1NjAwLjM3LCAiMTAsMjUyLDA0NSw2MDAuMzciKTsKKyAgICAKKyAgICAgICAgLy8gVGVzdCBwYWRkaW5nIGJldHdlZW4gYSBzaWduIGFuZCBhIG51bWJlcgorICAgICAgICBmaW5hbCBTdHJpbmcgZm9ybWF0U3RyMiA9ICIjLCMjIywjIyMsIyMwLjAjKng7KCMjIywjIyMsIyMwLjAjKngpIjsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KGZvcm1hdFN0cjIsIFVTKSwgLTEwLCAiKDEwLjB4eHh4eHh4eHh4KSIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyMiwgVVMpLCAtMTAwMCwgIigxLDAwMC4weHh4eHh4eCkiKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KGZvcm1hdFN0cjIsIFVTKSwgLTEwMDAwMDAsICIoMSwwMDAsMDAwLjB4eHgpIik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIyLCBVUyksIC0xMDAuMzcsICIoMTAwLjM3eHh4eHh4eHgpIik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIyLCBVUyksIC0xMDQ1Ni4zNywgIigxMCw0NTYuMzd4eHh4eCkiKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KGZvcm1hdFN0cjIsIFVTKSwgLTExMjA0NTYuMzcsICIoMSwxMjAsNDU2LjM3eHgpIik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIyLCBVUyksIC0xMTIwNDU2MDAuMzcsICIoMTEyLDA0NSw2MDAuMzcpIik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIyLCBVUyksIC0xMjUyMDQ1NjAwLjM3LCAiKDEsMjUyLDA0NSw2MDAuMzcpIik7IAorICAgIAorICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyMiwgVVMpLCAxMCwgIjEwLjB4eHh4eHh4eHh4eHgiKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KGZvcm1hdFN0cjIsIFVTKSwgMTAwMCwgIjEsMDAwLjB4eHh4eHh4eHgiKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KGZvcm1hdFN0cjIsIFVTKSwgMTAwMDAwMCwgIjEsMDAwLDAwMC4weHh4eHgiKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KGZvcm1hdFN0cjIsIFVTKSwgMTAwLjM3LCAiMTAwLjM3eHh4eHh4eHh4eCIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyMiwgVVMpLCAxMDQ1Ni4zNywgIjEwLDQ1Ni4zN3h4eHh4eHgiKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KGZvcm1hdFN0cjIsIFVTKSwgMTEyMDQ1Ni4zNywgIjEsMTIwLDQ1Ni4zN3h4eHgiKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KGZvcm1hdFN0cjIsIFVTKSwgMTEyMDQ1NjAwLjM3LCAiMTEyLDA0NSw2MDAuMzd4eCIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyMiwgVVMpLCAxMDI1MjA0NTYwMC4zNywgIjEwLDI1MiwwNDUsNjAwLjM3Iik7CisgICAgCisgICAgICAgIC8vdGVzdGluZyB0aGUgc2V0UGFkQ2hhcmFjdGVyKFVuaWNvZGVTdHJpbmcpIGFuZCBnZXRQYWRDaGFyYWN0ZXJTdHJpbmcoKQorICAgICAgICBEZWNpbWFsRm9ybWF0IGZtdCA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjIiwgVVMpOworICAgICAgICBjaGFyIHBhZFN0cmluZyA9ICdQJzsKKyAgICAgICAgZm10LnNldFBhZENoYXJhY3RlcihwYWRTdHJpbmcpOworICAgICAgICBleHBlY3RQYWQoZm10LCAiKlAjIy4jIyIsIERlY2ltYWxGb3JtYXQuUEFEX0JFRk9SRV9QUkVGSVgsIDUsIHBhZFN0cmluZyk7CisgICAgICAgIGZtdC5zZXRQYWRDaGFyYWN0ZXIoJ14nKTsKKyAgICAgICAgZXhwZWN0UGFkKGZtdCwgIipeIyIsIERlY2ltYWxGb3JtYXQuUEFEX0JFRk9SRV9QUkVGSVgsIDEsICdeJyk7CisgICAgICAgIC8vY29tbWVudGVkIHVudGlsbCBpbXBsZW1lbnRhdGlvbiBpcyBjb21wbGV0ZQorICAgICAgICAvKiAgZm10LnNldFBhZENoYXJhY3RlcigoVW5pY29kZVN0cmluZykiXl5eIik7CisgICAgICAgICAgZXhwZWN0UGFkKGZtdCwgIipeXl4jIiwgRGVjaW1hbEZvcm1hdC5rUGFkQmVmb3JlUHJlZml4LCAzLCAoVW5pY29kZVN0cmluZykiXl5eIik7CisgICAgICAgICAgcGFkU3RyaW5nLnJlbW92ZSgpOworICAgICAgICAgIHBhZFN0cmluZy5hcHBlbmQoKFVDaGFyKTB4MDA2MSk7CisgICAgICAgICAgcGFkU3RyaW5nLmFwcGVuZCgoVUNoYXIpMHgwMzAyKTsKKyAgICAgICAgICBmbXQuc2V0UGFkQ2hhcmFjdGVyKHBhZFN0cmluZyk7CisgICAgICAgICAgVUNoYXIgcGF0dGVybkNoYXJzW109ezB4MDAyYSwgMHgwMDYxLCAweDAzMDIsIDB4MDA2MSwgMHgwMzAyLCAweDAwMjMsIDB4MDAwMH07CisgICAgICAgICAgVW5pY29kZVN0cmluZyBwYXR0ZXJuKHBhdHRlcm5DaGFycyk7CisgICAgICAgICAgZXhwZWN0UGFkKGZtdCwgcGF0dGVybiAsIERlY2ltYWxGb3JtYXQua1BhZEJlZm9yZVByZWZpeCwgNCwgcGFkU3RyaW5nKTsKKyAgICAgICAgICAqLworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBVcGdyYWRlIHRvIGFscGhhV29ya3MKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UGF0dGVybnMyKCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBVUyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworICAgICAgICBEZWNpbWFsRm9ybWF0IGZtdCA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjIiwgVVMpOworICAgIAorICAgICAgICBjaGFyIGhhdCA9IDB4MDA1RTsgLypeKi8KKyAgICAKKyAgICAgICAgZXhwZWN0UGFkKGZtdCwgIipeIyIsIERlY2ltYWxGb3JtYXQuUEFEX0JFRk9SRV9QUkVGSVgsIDEsIGhhdCk7CisgICAgICAgIGV4cGVjdFBhZChmbXQsICIkKl4jIiwgRGVjaW1hbEZvcm1hdC5QQURfQUZURVJfUFJFRklYLCAyLCBoYXQpOworICAgICAgICBleHBlY3RQYWQoZm10LCAiIypeIiwgRGVjaW1hbEZvcm1hdC5QQURfQkVGT1JFX1NVRkZJWCwgMSwgaGF0KTsKKyAgICAgICAgZXhwZWN0UGFkKGZtdCwgIiMkKl4iLCBEZWNpbWFsRm9ybWF0LlBBRF9BRlRFUl9TVUZGSVgsIDIsIGhhdCk7CisgICAgICAgIGV4cGVjdFBhZChmbXQsICIkKl4kIyIsIC0xKTsKKyAgICAgICAgZXhwZWN0UGFkKGZtdCwgIiMkKl4kIiwgLTEpOworICAgICAgICBleHBlY3RQYWQoZm10LCAiJ3ByZScjLCMjMCp4J3Bvc3QnIiwgRGVjaW1hbEZvcm1hdC5QQURfQkVGT1JFX1NVRkZJWCwgMTIsIChjaGFyKSAweDAwNzggLyp4Ki8pOyAKKyAgICAgICAgZXhwZWN0UGFkKGZtdCwgIicnIzAqeCIsIERlY2ltYWxGb3JtYXQuUEFEX0JFRk9SRV9TVUZGSVgsIDMsIChjaGFyKSAweDAwNzggLyp4Ki8pOyAKKyAgICAgICAgZXhwZWN0UGFkKGZtdCwgIidJJydsbCcqYSMjIy4jIyIsIERlY2ltYWxGb3JtYXQuUEFEX0FGVEVSX1BSRUZJWCwgMTAsIChjaGFyKSAweDAwNjEgLyphKi8pOyAKKyAgICAKKyAgICAgICAgZm10LmFwcGx5UGF0dGVybigiQUEjLCMjMC4wMFpaIik7CisgICAgICAgIGZtdC5zZXRQYWRDaGFyYWN0ZXIoaGF0KTsKKyAgICAKKyAgICAgICAgZm10LnNldEZvcm1hdFdpZHRoKDEwKTsKKyAgICAKKyAgICAgICAgZm10LnNldFBhZFBvc2l0aW9uKERlY2ltYWxGb3JtYXQuUEFEX0JFRk9SRV9QUkVGSVgpOworICAgICAgICBleHBlY3RQYXQoZm10LCAiKl5BQSMsIyMwLjAwWloiKTsKKyAgICAKKyAgICAgICAgZm10LnNldFBhZFBvc2l0aW9uKERlY2ltYWxGb3JtYXQuUEFEX0JFRk9SRV9TVUZGSVgpOworICAgICAgICBleHBlY3RQYXQoZm10LCAiQUEjLCMjMC4wMCpeWloiKTsKKyAgICAKKyAgICAgICAgZm10LnNldFBhZFBvc2l0aW9uKERlY2ltYWxGb3JtYXQuUEFEX0FGVEVSX1NVRkZJWCk7CisgICAgICAgIGV4cGVjdFBhdChmbXQsICJBQSMsIyMwLjAwWloqXiIpOworICAgIAorICAgICAgICAvLyAgICAgICAgICAgIDEyICAzNDU2Nzg5MDEyCisgICAgICAgIFN0cmluZyBleHAgPSAiQUEqXiMsIyMwLjAwWloiOworICAgICAgICBmbXQuc2V0Rm9ybWF0V2lkdGgoMTIpOworICAgICAgICBmbXQuc2V0UGFkUG9zaXRpb24oRGVjaW1hbEZvcm1hdC5QQURfQUZURVJfUFJFRklYKTsKKyAgICAgICAgZXhwZWN0UGF0KGZtdCwgZXhwKTsKKyAgICAKKyAgICAgICAgZm10LnNldEZvcm1hdFdpZHRoKDEzKTsKKyAgICAgICAgLy8gICAgICAgICAgICAgIDEyICAzNDU2Nzg5MDEyMworICAgICAgICBleHBlY3RQYXQoZm10LCAiQUEqXiMjLCMjMC4wMFpaIik7CisgICAgCisgICAgICAgIGZtdC5zZXRGb3JtYXRXaWR0aCgxNCk7CisgICAgICAgIC8vICAgICAgICAgICAgICAxMiAgMzQ1Njc4OTAxMjM0CisgICAgICAgIGV4cGVjdFBhdChmbXQsICJBQSpeIyMjLCMjMC4wMFpaIik7CisgICAgCisgICAgICAgIGZtdC5zZXRGb3JtYXRXaWR0aCgxNSk7CisgICAgICAgIC8vICAgICAgICAgICAgICAxMiAgMzQ1Njc4OTAxMjM0NQorICAgICAgICBleHBlY3RQYXQoZm10LCAiQUEqXiMjIyMsIyMwLjAwWloiKTsgLy8gVGhpcyBpcyB0aGUgaW50ZXJlc3RpbmcgY2FzZQorICAgIAorICAgICAgICBmbXQuc2V0Rm9ybWF0V2lkdGgoMTYpOworICAgICAgICAvLyAgICAgICAgICAgICAgMTIgIDM0NTY3ODkwMTIzNDU2CisgICAgICAgIGV4cGVjdFBhdChmbXQsICJBQSpeIywjIyMsIyMwLjAwWloiKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgZXhwZWN0UGFkKERlY2ltYWxGb3JtYXQgZm10LCBTdHJpbmcgcGF0LCBpbnQgcG9zKSB7CisgICAgICAgIGV4cGVjdFBhZChmbXQsIHBhdCwgcG9zLCAwLCAoY2hhcikwKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgZXhwZWN0UGFkKERlY2ltYWxGb3JtYXQgZm10LCBmaW5hbCBTdHJpbmcgcGF0LCBpbnQgcG9zLCBpbnQgd2lkdGgsIGZpbmFsIGNoYXIgcGFkKSB7CisgICAgICAgIGludCBhcG9zID0gMCwgYXdpZHRoID0gMDsKKyAgICAgICAgY2hhciBhcGFkU3RyOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZm10LmFwcGx5UGF0dGVybihwYXQpOworICAgICAgICAgICAgYXBvcyA9IGZtdC5nZXRQYWRQb3NpdGlvbigpOworICAgICAgICAgICAgYXdpZHRoID0gZm10LmdldEZvcm1hdFdpZHRoKCk7CisgICAgICAgICAgICBhcGFkU3RyID0gZm10LmdldFBhZENoYXJhY3RlcigpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgYXBvcyA9IC0xOworICAgICAgICAgICAgYXdpZHRoID0gd2lkdGg7CisgICAgICAgICAgICBhcGFkU3RyID0gcGFkOworICAgICAgICB9CisgICAgCisgICAgICAgIGlmIChhcG9zID09IHBvcyAmJiBhd2lkdGggPT0gd2lkdGggJiYgYXBhZFN0ciA9PSBwYWQpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPayAgIFwiIiArIHBhdCArICJcIiBwb3M9IgorICAgICAgICAgICAgICAgICAgICArIGFwb3MgKyAoKHBvcyA9PSAtMSkgPyAiIiA6ICIgd2lkdGg9IiArIGF3aWR0aCArICIgcGFkPSIgKyBhcGFkU3RyKSk7IAorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUwgXCIiICsgcGF0ICsgIlwiIHBvcz0iICsgYXBvcyArICIgd2lkdGg9IgorICAgICAgICAgICAgICAgICAgICArIGF3aWR0aCArICIgcGFkPSIgKyBhcGFkU3RyICsgIiwgZXhwZWN0ZWQgIgorICAgICAgICAgICAgICAgICAgICArIHBvcyArICIgIiArIHdpZHRoICsgIiAiICsgcGFkKTsgCisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBleHBlY3RQYXQoRGVjaW1hbEZvcm1hdCBmbXQsIGZpbmFsIFN0cmluZyBleHApIHsKKyAgICAgICAgU3RyaW5nIHBhdCA9IGZtdC50b1BhdHRlcm4oKTsKKyAgICAgICAgaWYgKHBhdC5lcXVhbHMoZXhwKSkgeworICAgICAgICAgICAgbG9nbG4oIk9rICAgXCIiICsgcGF0ICsgIlwiIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTCBcIiIgKyBwYXQgKyAiXCIsIGV4cGVjdGVkIFwiIiArIGV4cCArICJcIiIpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJSZWdyZXNzaW9uLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L051bWJlclJlZ3Jlc3Npb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45Mjc5ZjgyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJSZWdyZXNzaW9uLmphdmEKQEAgLTAsMCArMSwxNzc2IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvTnVtYmVyUmVncmVzc2lvbi5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzEwLzA5IDE5OjIwOjQwICQgCisgKiAkUmV2aXNpb246IDEuMTAuMi4xICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIEpESyAxLjRiMSA6IGphdmEudGV4dC5Gb3JtYXQuTnVtYmVyUmVncmVzc2lvbgorICogU291cmNlIEZpbGU6IGphdmEvdGV4dC9mb3JtYXQvTnVtYmVyUmVncmVzc2lvbi5qYXZhCisgKiovCisgCisvKioKKyAqIEB0ZXN0IDEuNDkgMDEvMDUvMjEKKyAqIEBidWcgNDA1MjIyMyA0MDU5ODcwIDQwNjEzMDIgNDA2MjQ4NiA0MDY2NjQ2IDQwNjg2OTMgNDA3MDc5OCA0MDcxMDA1IDQwNzEwMTQKKyAqIDQwNzE0OTIgNDA3MTg1OSA0MDc0NDU0IDQwNzQ2MjAgNDA3NTcxMyA0MDgzMDE4IDQwODY1NzUgNDA4NzI0NCA0MDg3MjQ1CisgKiA0MDg3MjUxIDQwODc1MzUgNDA4ODE2MSA0MDg4NTAzIDQwOTA0ODkgNDA5MDUwNCA0MDkyNDgwIDQwOTI1NjEgNDA5NTcxMworICogNDA5ODc0MSA0MDk5NDA0IDQxMDE0ODEgNDEwNjY1OCA0MTA2NjYyIDQxMDY2NjQgNDEwODczOCA0MTEwOTM2IDQxMjI4NDAKKyAqIDQxMjU4ODUgNDEzNDAzNCA0MTM0MzAwIDQxNDAwMDkgNDE0MTc1MCA0MTQ1NDU3IDQxNDcyOTUgNDE0NzcwNiA0MTYyMTk4CisgKiA0MTYyODUyIDQxNjc0OTQgNDE3MDc5OCA0MTc2MTE0IDQxNzk4MTggNDE4NTc2MSA0MjEyMDcyIDQyMTIwNzMgNDIxNjc0MgorICogNDIxNzY2MSA0MjQzMDExIDQyNDMxMDggNDMzMDM3NyA0MjMzODQwCisgKiBAc3VtbWFyeSBSZWdyZXNzaW9uIHRlc3RzIGZvciBOdW1iZXJGb3JtYXQgYW5kIGFzc29jaWF0ZWQgY2xhc3NlcworICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlRGF0YTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworCitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEubWF0aC5CaWdEZWNpbWFsOworaW1wb3J0IGphdmEubWF0aC5CaWdJbnRlZ2VyOworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIE51bWJlclJlZ3Jlc3Npb24gZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ayB7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IE51bWJlclJlZ3Jlc3Npb24oKS5ydW4oYXJncyk7CisgICAgfQorCisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBFVVJPID0gJ1x1MjBhYyc7CisKKyAgICAvKioKKyAgICAgKiBOdW1iZXJGb3JtYXQuZXF1YWxzIGNvbXBhcmluZyB3aXRoIG51bGwgc2hvdWxkIGFsd2F5cyByZXR1cm4gZmFsc2UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwNzU3MTMoKXsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgTXlOdW1iZXJGb3JtYXRUZXN0IHRtcCA9IG5ldyBNeU51bWJlckZvcm1hdFRlc3QoKTsKKyAgICAgICAgICAgIGlmICghdG1wLmVxdWFscyhudWxsKSkKKyAgICAgICAgICAgICAgICBsb2dsbigiTnVtYmVyRm9ybWF0LmVxdWFscyBwYXNzZWQiKTsKKyAgICAgICAgfSBjYXRjaCAoTnVsbFBvaW50ZXJFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIihuZXcgTXlOdW1iZXJGb3JtYXRUZXN0KCkpLmVxdWFscyhudWxsKSB0aHJvd3MgdW5leHBlY3RlZCBleGNlcHRpb24iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE51bWJlckZvcm1hdC5lcXVhbHMgY29tcGFyaW5nIHR3byBvYmogZXF1YWwgZXZlbiB0aGUgc2V0R3JvdXBpbmdVc2VkCisgICAgICogZmxhZyBpcyBkaWZmZXJlbnQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwNzQ2MjAoKSB7CisKKyAgICAgICAgTXlOdW1iZXJGb3JtYXRUZXN0IG5mMSA9IG5ldyBNeU51bWJlckZvcm1hdFRlc3QoKTsKKyAgICAgICAgTXlOdW1iZXJGb3JtYXRUZXN0IG5mMiA9IG5ldyBNeU51bWJlckZvcm1hdFRlc3QoKTsKKworICAgICAgICBuZjEuc2V0R3JvdXBpbmdVc2VkKGZhbHNlKTsKKyAgICAgICAgbmYyLnNldEdyb3VwaW5nVXNlZCh0cnVlKTsKKworICAgICAgICBpZiAobmYxLmVxdWFscyhuZjIpKSBlcnJsbigiVGVzdCBmb3IgYnVnIDQwNzQ2MjAgZmFpbGVkIik7CisgICAgICAgIGVsc2UgbG9nbG4oIlRlc3QgZm9yIGJ1ZyA0MDc0NjIwIHBhc3NlZC4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworCisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdC5mb3JtYXQoKSBpbmNvcnJlY3RseSB1c2VzIG1heEZyYWN0aW9uRGlnaXRzIHNldHRpbmcuCisgICAgICovCisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA4ODE2MSAoKXsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCk7CisgICAgICAgIGRvdWJsZSBkID0gMTAwOworICAgICAgICBkZi5zZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoMCk7CisgICAgICAgIGRmLnNldE1heGltdW1GcmFjdGlvbkRpZ2l0cygxNik7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzQnVmMSA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgICAgICBGaWVsZFBvc2l0aW9uIGZwMSA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBsb2dsbigiZCA9ICIgKyBkKTsKKyAgICAgICAgbG9nbG4oIm1heEZyYWN0aW9uRGlnaXRzID0gIiArIGRmLmdldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpKTsKKyAgICAgICAgbG9nbG4oIiBmb3JtYXQoZCkgPSAnIiArIGRmLmZvcm1hdChkLCBzQnVmMSwgZnAxKSArICInIik7CisgICAgICAgIGRmLnNldE1heGltdW1GcmFjdGlvbkRpZ2l0cygxNyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzQnVmMiA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgICAgICBGaWVsZFBvc2l0aW9uIGZwMiA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBsb2dsbigibWF4RnJhY3Rpb25EaWdpdHMgPSAiICsgZGYuZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCkpOworICAgICAgICBkZi5mb3JtYXQoZCwgc0J1ZjIsIGZwMik7CisgICAgICAgIGlmICghc0J1ZjIudG9TdHJpbmcoKS5lcXVhbHMoIjEwMCIpKQorICAgICAgICAgICAgZXJybG4oIiBmb3JtYXQoZCkgPSAnIiArIHNCdWYyICsgIiciKTsKKyAgICB9CisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdFN5bWJvbHMgc2hvdWxkIGJlIGNsb25lZCBpbiB0aGUgY3RvciBEZWNpbWFsRm9ybWF0LgorICAgICAqIERlY2ltYWxGb3JtYXQoU3RyaW5nLCBEZWNpbWFsRm9ybWF0U3ltYm9scykuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwODcyNDUgKCl7CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIHN5bWJvbHMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLCMjMC4wIiwgc3ltYm9scyk7CisgICAgICAgIGxvbmcgbiA9IDEyMzsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZjEgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBsb2dsbigiZm9ybWF0KCIgKyBuICsgIikgPSAiICsKKyAgICAgICAgZGYuZm9ybWF0KG4sIGJ1ZjEsIG5ldyBGaWVsZFBvc2l0aW9uKDApKSk7CisgICAgICAgIHN5bWJvbHMuc2V0RGVjaW1hbFNlcGFyYXRvcigncCcpOyAvLyBjaGFuZ2UgdmFsdWUgb2YgZmllbGQKKyAgICAgICAgbG9nbG4oImZvcm1hdCgiICsgbiArICIpID0gIiArCisgICAgICAgIGRmLmZvcm1hdChuLCBidWYyLCBuZXcgRmllbGRQb3NpdGlvbigwKSkpOworICAgICAgICBpZiAoIWJ1ZjEudG9TdHJpbmcoKS5lcXVhbHMoYnVmMi50b1N0cmluZygpKSkKKyAgICAgICAgICAgIGVycmxuKCJUZXN0IGZvciBidWcgNDA4NzI0NSBmYWlsZWQiKTsKKyAgICB9CisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdC5mb3JtYXQoKSBpbmNvcnJlY3RseSBmb3JtYXRzIDAuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDg3NTM1ICgpCisgICAgeworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoKTsKKyAgICAgICAgZGYuc2V0TWluaW11bUludGVnZXJEaWdpdHMoMCk7CisKKyAgICAgICAgZG91YmxlIG4gPSAwOworICAgICAgICBTdHJpbmcgYnVmZmVyID0gbmV3IFN0cmluZygpOworICAgICAgICBidWZmZXIgPSBkZi5mb3JtYXQobik7CisgICAgICAgIGlmIChidWZmZXIubGVuZ3RoKCkgPT0gMCkKKyAgICAgICAgICAgIGVycmxuKG4gKyAiOiAnIiArIGJ1ZmZlciArICInIik7CisgICAgICAgIG4gPSAwLjE7CisgICAgICAgIGJ1ZmZlciA9IGRmLmZvcm1hdChuKTsKKyAgICAgICAgaWYgKGJ1ZmZlci5sZW5ndGgoKSA9PSAwKQorICAgICAgICAgICAgZXJybG4obiArICI6ICciICsgYnVmZmVyICsgIiciKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0LmZvcm1hdCBmYWlscyB3aGVuIGdyb3VwaW5nU2l6ZSBpcyBzZXQgdG8gMC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA4ODUwMyAoKXsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCk7CisgICAgICAgIGRmLnNldEdyb3VwaW5nU2l6ZSgwKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHNCdWYgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBmcCA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICB0cnkgeworICAgICAgICAgICAgbG9nbG4oZGYuZm9ybWF0KDEyMywgc0J1ZiwgZnApLnRvU3RyaW5nKCkpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZm9vKSB7CisgICAgICAgICAgICBlcnJsbigiVGVzdCBmb3IgYnVnIDQwODg1MDMgZmFpbGVkLiIpOworICAgICAgICB9CisKKyAgICB9CisgICAgLyoqCisgICAgICogTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UgaXMgd3JvbmcuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwNjY2NDYgKCkgeworICAgICAgICAvL2Zsb2F0IHJldHVybmZsb2F0ID0gMC4wZjsgLy9UaGUgdmFyaWFibGUgaXMgbmV2ZXIgdXNlZAorICAgICAgICBhc3NpZ25GbG9hdFZhbHVlKDIuMDRmKTsKKyAgICAgICAgYXNzaWduRmxvYXRWYWx1ZSgyLjAzZik7CisgICAgICAgIGFzc2lnbkZsb2F0VmFsdWUoMi4wMmYpOworICAgICAgICBhc3NpZ25GbG9hdFZhbHVlKDAuMGYpOworICAgIH0KKworICAgIHB1YmxpYyBmbG9hdCBhc3NpZ25GbG9hdFZhbHVlKGZsb2F0IHJldHVybmZsb2F0KQorICAgIHsKKyAgICAgICAgbG9nbG4oIiBWQUxVRSAiICsgcmV0dXJuZmxvYXQpOworICAgICAgICBOdW1iZXJGb3JtYXQgbmZjb21tb24gPSAgTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgbmZjb21tb24uc2V0R3JvdXBpbmdVc2VkKGZhbHNlKTsKKworICAgICAgICBTdHJpbmcgc3RyaW5nVmFsdWUgPSBuZmNvbW1vbi5mb3JtYXQocmV0dXJuZmxvYXQpLnN1YnN0cmluZygxKTsKKyAgICAgICAgaWYgKEZsb2F0LnZhbHVlT2Yoc3RyaW5nVmFsdWUpLmZsb2F0VmFsdWUoKSAhPSByZXR1cm5mbG9hdCkKKyAgICAgICAgICAgIGVycmxuKCIgRElTUExBWVZBTFVFICIgKyBzdHJpbmdWYWx1ZSk7CisgICAgICAgIHJldHVybiByZXR1cm5mbG9hdDsKKyAgICB9IC8vIEVuZCBPZiBhc3NpZ25GbG9hdFZhbHVlKCkKKworICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQgdGhyb3dzIGV4Y2VwdGlvbiB3aGVuIHBhcnNpbmcgIjAiCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwNTk4NzAoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZm9ybWF0ID0gbmV3IERlY2ltYWxGb3JtYXQoIjAwIik7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBsb2dsbihmb3JtYXQucGFyc2UoIjAiKS50b1N0cmluZygpKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsgZXJybG4oIlRlc3QgZm9yIGJ1ZyA0MDU5ODcwIGZhaWxlZCA6ICIgKyBlKTsgfQorICAgIH0KKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0U3ltYm9sLmVxdWFscyBzaG91bGQgYWx3YXlzIHJldHVybiBmYWxzZSB3aGVuCisgICAgICogY29tcGFyaW5nIHdpdGggbnVsbC4KKyAgICAgKi8KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDgzMDE4ICgpeworICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGlmICghZGZzLmVxdWFscyhudWxsKSkKKyAgICAgICAgICAgICAgICBsb2dsbigiVGVzdCBQYXNzZWQhIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBmb28pIHsKKyAgICAgICAgICAgIGVycmxuKCJUZXN0IGZvciBidWcgNDA4MzAxOCBmYWlsZWQgPT4gTWVzc2FnZSA6ICIgKyBmb28uZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0IGRvZXMgbm90IHJvdW5kIHVwIGNvcnJlY3RseS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA3MTQ5MiAoKXsKKyAgICAgICAgZG91YmxlIHggPSAwLjAwMTU5OTk5OworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgbmYuc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKDQpOworICAgICAgICBTdHJpbmcgb3V0ID0gbmYuZm9ybWF0KHgpOworICAgICAgICBsb2dsbigiMC4wMDE1OTk5OSBmb3JtYXRzIHdpdGggNCBmcmFjdGlvbmFsIGRpZ2l0cyB0byAiICsgb3V0KTsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkID0gIjAuMDAxNiI7CisgICAgICAgIGlmICghb3V0LmVxdWFscyhleHBlY3RlZCkpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgIiArIGV4cGVjdGVkKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBIHNwYWNlIGFzIGEgZ3JvdXAgc2VwYXJhdG9yIGZvciBsb2NhbGl6ZWQgcGF0dGVybiBjYXVzZXMKKyAgICAgKiB3cm9uZyBmb3JtYXQuICBXb3JrQXJvdW5kIDogdXNlIG5vbi1icmVha2luZyBzcGFjZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA4NjU3NSgpIHsKKworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoTG9jYWxlLkZSQU5DRSk7CisgICAgICAgIGxvZ2xuKCJuZiB0b1BhdHRlcm4xOiAiICsgKChEZWNpbWFsRm9ybWF0KW5mKS50b1BhdHRlcm4oKSk7CisgICAgICAgIGxvZ2xuKCJuZiB0b0xvY1BhdHRlcm4xOiAiICsgKChEZWNpbWFsRm9ybWF0KW5mKS50b0xvY2FsaXplZFBhdHRlcm4oKSk7CisKKyAgICAgICAgLy8gTm8gZ3JvdXAgc2VwYXJhdG9yCisgICAgICAgIGxvZ2xuKCIuLi5hcHBseUxvY2FsaXplZFBhdHRlcm4gIyMjLDAwOygjIyMsMDApICIpOworICAgICAgICAoKERlY2ltYWxGb3JtYXQpbmYpLmFwcGx5TG9jYWxpemVkUGF0dGVybigiIyMjLDAwOygjIyMsMDApIik7CisgICAgICAgIGxvZ2xuKCJuZiB0b1BhdHRlcm4yOiAiICsgKChEZWNpbWFsRm9ybWF0KW5mKS50b1BhdHRlcm4oKSk7CisgICAgICAgIGxvZ2xuKCJuZiB0b0xvY1BhdHRlcm4yOiAiICsgKChEZWNpbWFsRm9ybWF0KW5mKS50b0xvY2FsaXplZFBhdHRlcm4oKSk7CisKKyAgICAgICAgbG9nbG4oIm5mOiAiICsgbmYuZm9ybWF0KDEyMzQpKTsgLy8gMTIzNCwwMAorICAgICAgICBsb2dsbigibmY6ICIgKyBuZi5mb3JtYXQoLTEyMzQpKTsgLy8gKDEyMzQsMDApCisKKyAgICAgICAgLy8gU3BhY2UgYXMgZ3JvdXAgc2VwYXJhdG9yCisKKyAgICAgICAgbG9nbG4oIi4uLmFwcGx5TG9jYWxpemVkUGF0dGVybiAjICMjIywwMDsoIyAjIyMsMDApICIpOworICAgICAgICAoKERlY2ltYWxGb3JtYXQpbmYpLmFwcGx5TG9jYWxpemVkUGF0dGVybigiI1x1MDBhMCMjIywwMDsoI1x1MDBhMCMjIywwMCkiKTsKKyAgICAgICAgbG9nbG4oIm5mIHRvUGF0dGVybjI6ICIgKyAoKERlY2ltYWxGb3JtYXQpbmYpLnRvUGF0dGVybigpKTsKKyAgICAgICAgbG9nbG4oIm5mIHRvTG9jUGF0dGVybjI6ICIgKyAoKERlY2ltYWxGb3JtYXQpbmYpLnRvTG9jYWxpemVkUGF0dGVybigpKTsKKyAgICAgICAgU3RyaW5nIGJ1ZmZlciA9IG5mLmZvcm1hdCgxMjM0KTsKKyAgICAgICAgaWYgKCFidWZmZXIuZXF1YWxzKCIxXHUwMGEwMjM0LDAwIikpCisgICAgICAgICAgICBlcnJsbigibmYgOiAiICsgYnVmZmVyKTsgLy8gRXhwZWN0IDEgMjM0LDAwCisgICAgICAgIGJ1ZmZlciA9IG5mLmZvcm1hdCgtMTIzNCk7CisgICAgICAgIGlmICghYnVmZmVyLmVxdWFscygiKDFcdTAwYTAyMzQsMDApIikpCisgICAgICAgICAgICBlcnJsbigibmYgOiAiICsgYnVmZmVyKTsgLy8gRXhwZWN0ICgxIDIzNCwwMCkKKworICAgICAgICAvLyBFcnJvbmVvdXNseSBwcmludHM6CisgICAgICAgIC8vIDEyMzQsMDAgLAorICAgICAgICAvLyAoMTIzNCwwMCAsKQorCisgICAgfQorICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQucGFyc2UgcmV0dXJucyB3cm9uZyB2YWx1ZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDY4NjkzKCkKKyAgICB7CisgICAgICAgIGxvZ2xuKCItLS0tLSBUZXN0IEFwcGxpY2F0aW9uIC0tLS0tIik7CisgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zOworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoKTsKKyAgICAgICAgTnVtYmVyIGQgPSBkZi5wYXJzZSgiMTIzLjU1NDU2IiwgcG9zPW5ldyBQYXJzZVBvc2l0aW9uKDApKTsKKyAgICAgICAgaWYgKCFkLnRvU3RyaW5nKCkuZXF1YWxzKCIxMjMuNTU0NTYiKSkgeworICAgICAgICAgICAgZXJybG4oIlJlc3VsdCAtPiAiICsgZC5kb3VibGVWYWx1ZSgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qIGJ1Z3MgNDA2OTc1NCwgNDA2Nzg3OAorICAgICAqIG51bGwgcG9pbnRlciB0aHJvd24gd2hlbiBhY2Nlc3NpbmcgYSBkZXNlcmlhbGl6ZWQgRGVjaW1hbEZvcm1hdAorICAgICAqIG9iamVjdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA2OTc1NCgpIHRocm93cyBFeGNlcHRpb24KKyAgICB7CisgICAgICAgIC8vdHJ5IHsKKyAgICAgICAgICAgIEJ5dGVBcnJheU91dHB1dFN0cmVhbSBiYW9zID0gbmV3IEJ5dGVBcnJheU91dHB1dFN0cmVhbSgpOworICAgICAgICAgICAgT2JqZWN0T3V0cHV0U3RyZWFtIG9vcyA9IG5ldyBPYmplY3RPdXRwdXRTdHJlYW0oYmFvcyk7CisgICAgICAgICAgICBteWZvcm1hdCBpdCA9IG5ldyBteWZvcm1hdCgpOworICAgICAgICAgICAgbG9nbG4oaXQuTm93KCkpOworICAgICAgICAgICAgb29zLndyaXRlT2JqZWN0KGl0KTsKKyAgICAgICAgICAgIG9vcy5mbHVzaCgpOworICAgICAgICAgICAgYmFvcy5jbG9zZSgpOworICAgICAgICAgICAgbG9nbG4oIlNhdmUgT0shIik7CisgICAgICAgICAgICBieXRlIFtdIGJ5dGVzID0gYmFvcy50b0J5dGVBcnJheSgpOworICAgICAgICAgICAgT2JqZWN0SW5wdXRTdHJlYW0gb2lzID0gbmV3IE9iamVjdElucHV0U3RyZWFtKG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbShieXRlcykpOworICAgICAgICAgICAgbXlmb3JtYXQgbyA9IChteWZvcm1hdClvaXMucmVhZE9iamVjdCgpOworICAgICAgICAgICAgb2lzLmNsb3NlKCk7CisgICAgICAgICAgICBpdC5Ob3coKTsKKyAgICAgICAgICAgIGxvZ2xuKCJMb2FkIE9LISIpOworICAgICAgICAgICAgaWYgKCFvLl9kYXRlRm9ybWF0LmVxdWFscyhpdC5fZGF0ZUZvcm1hdCkpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCJUaGUgc2F2ZWQgYW5kIGxvYWRlZCBvYmplY3QgYXJlIG5vdCBlcXVhbHMhIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2dsbigiQ29tcGFyZSBPSyEiKTsKKyAgICAgICAgLy99IGNhdGNoIChFeGNlcHRpb24gZm9vKSB7CisgICAgICAgICAgICAvL2VycmxuKCJUZXN0IGZvciBidWcgNDA2OTc1NCBvciA0MDU3ODc4IGZhaWxlZCA9PiBFeGNlcHRpb246ICIgKyBmb28uZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgLy99CisgICAgfQorCisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdC5hcHBseVBhdHRlcm4oU3RyaW5nKSBhbGxvd3MgaWxsZWdhbCBwYXR0ZXJucworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDg3MjUxICgpeworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGRmLmFwcGx5UGF0dGVybigiIy4jLiMiKTsKKyAgICAgICAgICAgIGxvZ2xuKCJ0b1BhdHRlcm4oKSByZXR1cm5zIFwiIiArIGRmLnRvUGF0dGVybigpICsgIlwiIik7CisgICAgICAgICAgICBlcnJsbigiYXBwbHlQYXR0ZXJuKFwiIy4jLiNcIikgZG9lc24ndCB0aHJvdyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24iKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJDYXVnaHQgSWxsZWdhbCBBcmd1bWVudCBFcnJvciAhIik7CisgICAgICAgIH0KKyAgICAgICAgLy8gU2Vjb25kIHRlc3Q7IGFkZGVkIDUvMTEvOTggd2hlbiByZXBvcnRlZCB0byBmYWlsIG9uIDEuMmIzCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBkZi5hcHBseVBhdHRlcm4oIiMwLjAjMCMwIik7CisgICAgICAgICAgICBsb2dsbigidG9QYXR0ZXJuKCkgcmV0dXJucyBcIiIgKyBkZi50b1BhdHRlcm4oKSArICJcIiIpOworICAgICAgICAgICAgZXJybG4oImFwcGx5UGF0dGVybihcIiMwLjAjMCMwXCIpIGRvZXNuJ3QgdGhyb3cgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbigiT2sgLSBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZm9yICMwLjAjMCMwIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0LmZvcm1hdCgpIGxvc2VzIHByZWNpc2lvbgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDkwNDg5ICgpeworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoKTsKKyAgICAgICAgZGYuc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKDEwKTsKKyAgICAgICAgZGYuc2V0R3JvdXBpbmdVc2VkKGZhbHNlKTsKKyAgICAgICAgZG91YmxlIGQgPSAxLjAwMDAwMDAwMDAwMDAwMUU3OworICAgICAgICBCaWdEZWNpbWFsIGJkID0gbmV3IEJpZ0RlY2ltYWwoZCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzYiA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgICAgICBGaWVsZFBvc2l0aW9uIGZwID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIGxvZ2xuKCJkID0gIiArIGQpOworICAgICAgICBsb2dsbigiQmlnRGVjaW1hbC50b1N0cmluZygpOiAgIiArIGJkLnRvU3RyaW5nKCkpOworICAgICAgICBkZi5mb3JtYXQoZCwgc2IsIGZwKTsKKyAgICAgICAgaWYgKCFzYi50b1N0cmluZygpLmVxdWFscygiMTAwMDAwMDAuMDAwMDAwMDEwMCIpKSB7CisgICAgICAgICAgICBlcnJsbigiRGVjaW1hbEZvcm1hdC5mb3JtYXQoKTogIiArIHNiLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdC5mb3JtYXQoKSBsb3NlcyBwcmVjaXNpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA5MDUwNCAoKQorICAgIHsKKyAgICAgICAgZG91YmxlIGQgPSAxOworICAgICAgICBsb2dsbigiZCA9ICIgKyBkKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzYjsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBmcDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAxNzsgaSA8PSAyMDsgaSsrKSB7CisgICAgICAgICAgICAgICAgZGYuc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKGkpOworICAgICAgICAgICAgICAgIHNiID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgICAgICAgICAgZnAgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgICAgICAgICBsb2dsbigiICBnZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoKSA9ICIgKyBpKTsKKyAgICAgICAgICAgICAgICBsb2dsbigiICBmb3JtYXRlZDogIiArIGRmLmZvcm1hdChkLCBzYiwgZnApKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGZvbykgeworICAgICAgICAgICAgZXJybG4oIkJ1ZyA0MDkwNTA0IHJlZ3Jlc3Npb24gdGVzdCBmYWlsZWQuIE1lc3NhZ2UgOiAiICsgZm9vLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdC5wYXJzZShTdHJpbmcgc3RyLCBQYXJzZVBvc2l0aW9uIHBwKSBsb3NlcyBwcmVjaXNpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA5NTcxMyAoKQorICAgIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCk7CisgICAgICAgIFN0cmluZyBzdHIgPSAiMC4xMjM0IjsKKyAgICAgICAgRG91YmxlIGQxID0gbmV3IERvdWJsZShzdHIpOworICAgICAgICBOdW1iZXIgZDIgPSBkZi5wYXJzZShzdHIsIG5ldyBQYXJzZVBvc2l0aW9uKDApKTsKKyAgICAgICAgbG9nbG4oZDEudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChkMi5kb3VibGVWYWx1ZSgpICE9IGQxLmRvdWJsZVZhbHVlKCkpCisgICAgICAgICAgICBlcnJsbigiQnVnIDQwOTU3MTMgdGVzdCBmYWlsZWQsIG5ldyBkb3VibGUgdmFsdWUgOiAiICsgZDIuZG91YmxlVmFsdWUoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdC5wYXJzZSgpIGZhaWxzIHdoZW4gbXVsdGlwbGllciBpcyBub3Qgc2V0IHRvIDEKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA5MjU2MSAoKQorICAgIHsKKyAgICAgICAgTG9jYWxlIHNhdmVkTG9jYWxlID0gTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgTG9jYWxlLnNldERlZmF1bHQoTG9jYWxlLlVTKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCk7CisgICAgICAgIFN0cmluZyBzdHIgPSBMb25nLnRvU3RyaW5nKExvbmcuTUlOX1ZBTFVFKTsKKyAgICAgICAgbG9nbG4oIkxvbmcuTUlOX1ZBTFVFIDogIiArIGRmLnBhcnNlKHN0ciwgbmV3IFBhcnNlUG9zaXRpb24oMCkpLnRvU3RyaW5nKCkpOworICAgICAgICBkZi5zZXRNdWx0aXBsaWVyKDEwMCk7CisgICAgICAgIE51bWJlciBudW0gPSBkZi5wYXJzZShzdHIsIG5ldyBQYXJzZVBvc2l0aW9uKDApKTsKKyAgICAgICAgaWYgKG51bS5kb3VibGVWYWx1ZSgpICE9IC05LjIyMzM3MjAzNjg1NDc3NkUxNikgeworICAgICAgICAgICAgZXJybG4oIkJ1ZyA0MDkyNTYxIHRlc3QgZmFpbGVkIHdoZW4gbXVsdGlwbGllciBpcyBzZXQgdG8gbm90IDEuIik7CisgICAgICAgIH0KKyAgICAgICAgTG9jYWxlLnNldERlZmF1bHQoc2F2ZWRMb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQ6IE5lZ2F0aXZlIGZvcm1hdCBpZ25vcmVkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDkyNDgwICgpCisgICAgeworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmRm9vID0gbmV3IERlY2ltYWxGb3JtYXQoIjAwMCIpOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBkZkZvby5hcHBseVBhdHRlcm4oIjAwMDA7LTAwMCIpOworICAgICAgICAgICAgaWYgKCFkZkZvby50b1BhdHRlcm4oKS5lcXVhbHMoIiMwMDAwIikpCisgICAgICAgICAgICAgICAgZXJybG4oImRmRm9vLnRvUGF0dGVybiA6ICIgKyBkZkZvby50b1BhdHRlcm4oKSk7CisgICAgICAgICAgICBsb2dsbihkZkZvby5mb3JtYXQoNDIpKTsKKyAgICAgICAgICAgIGxvZ2xuKGRmRm9vLmZvcm1hdCgtNDIpKTsKKyAgICAgICAgICAgIGRmRm9vLmFwcGx5UGF0dGVybigiMDAwOy0wMDAiKTsKKyAgICAgICAgICAgIGlmICghZGZGb28udG9QYXR0ZXJuKCkuZXF1YWxzKCIjMDAwIikpCisgICAgICAgICAgICAgICAgZXJybG4oImRmRm9vLnRvUGF0dGVybiA6ICIgKyBkZkZvby50b1BhdHRlcm4oKSk7CisgICAgICAgICAgICBsb2dsbihkZkZvby5mb3JtYXQoNDIpKTsKKyAgICAgICAgICAgIGxvZ2xuKGRmRm9vLmZvcm1hdCgtNDIpKTsKKworICAgICAgICAgICAgZGZGb28uYXBwbHlQYXR0ZXJuKCIwMDA7LTAwMDAiKTsKKyAgICAgICAgICAgIGlmICghZGZGb28udG9QYXR0ZXJuKCkuZXF1YWxzKCIjMDAwIikpCisgICAgICAgICAgICAgICAgZXJybG4oImRmRm9vLnRvUGF0dGVybiA6ICIgKyBkZkZvby50b1BhdHRlcm4oKSk7CisgICAgICAgICAgICBsb2dsbihkZkZvby5mb3JtYXQoNDIpKTsKKyAgICAgICAgICAgIGxvZ2xuKGRmRm9vLmZvcm1hdCgtNDIpKTsKKworICAgICAgICAgICAgZGZGb28uYXBwbHlQYXR0ZXJuKCIwMDAwOy0wMDAiKTsKKyAgICAgICAgICAgIGlmICghZGZGb28udG9QYXR0ZXJuKCkuZXF1YWxzKCIjMDAwMCIpKQorICAgICAgICAgICAgICAgIGVycmxuKCJkZkZvby50b1BhdHRlcm4gOiAiICsgZGZGb28udG9QYXR0ZXJuKCkpOworICAgICAgICAgICAgbG9nbG4oZGZGb28uZm9ybWF0KDQyKSk7CisgICAgICAgICAgICBsb2dsbihkZkZvby5mb3JtYXQoLTQyKSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBmb28pIHsKKyAgICAgICAgICAgIGVycmxuKCJNZXNzYWdlICIgKyBmb28uZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKioKKyAgICAgKiBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZSgpIHByb2R1Y2VzIGZvcm1hdCB0aGF0IHVzZXMKKyAgICAgKiBkZWNpbWFsIHNlcGFyYXRvciBpbnN0ZWFkIG9mIG1vbmV0YXJ5IGRlY2ltYWwgc2VwYXJhdG9yLgorICAgICAqCisgICAgICogUmV3cm90ZSB0aGlzIHRlc3Qgbm90IHRvIGRlcGVuZCBvbiB0aGUgYWN0dWFsIHBhdHRlcm4uICBQYXR0ZXJuIHNob3VsZAorICAgICAqIG5ldmVyIGNvbnRhaW4gdGhlIG1vbmV0YXJ5IHNlcGFyYXRvciEgIERlY2ltYWwgc2VwYXJhdG9yIGluIHBhdHRlcm4gaXMKKyAgICAgKiBpbnRlcnByZXRlZCBhcyBtb25ldGFyeSBzZXBhcmF0b3IgaWYgY3VycmVuY3kgc3ltYm9sIGlzIHNlZW4hCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwODcyNDQgKCkgeworICAgICAgICBMb2NhbGUgZGUgPSBuZXcgTG9jYWxlKCJwdCIsICJQVCIpOworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gKERlY2ltYWxGb3JtYXQpIE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKGRlKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltID0gZGYuZ2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoKTsKKyAgICAgICAgc3ltLnNldE1vbmV0YXJ5RGVjaW1hbFNlcGFyYXRvcignJCcpOworCWRmLnNldERlY2ltYWxGb3JtYXRTeW1ib2xzKHN5bSk7CisgICAgICAgIGNoYXIgZGVjU2VwID0gc3ltLmdldERlY2ltYWxTZXBhcmF0b3IoKTsKKyAgICAgICAgY2hhciBtb25TZXAgPSBzeW0uZ2V0TW9uZXRhcnlEZWNpbWFsU2VwYXJhdG9yKCk7CisgICAgICAgIC8vY2hhciB6ZXJvID0gc3ltLmdldFplcm9EaWdpdCgpOyAvL1RoZSB2YXJpYWJsZSBpcyBuZXZlciB1c2VkCisgICAgICAgIGlmIChkZWNTZXAgPT0gbW9uU2VwKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gdGVzdDogd2FudCBkZWNpbWFsIHNlcCAhPSBtb25ldGFyeSBzZXAiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRmLnNldE1pbmltdW1JbnRlZ2VyRGlnaXRzKDEpOworICAgICAgICAgICAgZGYuc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKDIpOworICAgICAgICAgICAgU3RyaW5nIHN0ciA9IGRmLmZvcm1hdCgxLjIzKTsKKyAgICAgICAgICAgIFN0cmluZyBtb25TdHIgPSAiMSIgKyBtb25TZXAgKyAiMjMiOworICAgICAgICAgICAgU3RyaW5nIGRlY1N0ciA9ICIxIiArIGRlY1NlcCArICIyMyI7CisgICAgICAgICAgICBpZiAoc3RyLmluZGV4T2YobW9uU3RyKSA+PSAwICYmIHN0ci5pbmRleE9mKGRlY1N0cikgPCAwKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9LOiAxLjIzIC0+IFwiIiArIHN0ciArICJcIiBjb250YWlucyBcIiIgKworICAgICAgICAgICAgICAgICAgICAgIG1vblN0ciArICJcIiBhbmQgbm90IFwiIiArIGRlY1N0ciArICciJyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAxLjIzIC0+IFwiIiArIHN0ciArICJcIiwgc2hvdWxkIGNvbnRhaW4gXCIiICsKKyAgICAgICAgICAgICAgICAgICAgICBtb25TdHIgKworICAgICAgICAgICAgICAgICAgICAgICJcIiBhbmQgbm90IFwiIiArIGRlY1N0ciArICciJyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgLyoqCisgICAgICogTnVtYmVyIGZvcm1hdCBkYXRhIHJvdW5kaW5nIGVycm9ycyBmb3IgbG9jYWxlIEZSCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwNzA3OTggKCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgZm9ybWF0dGVyOworICAgICAgICBTdHJpbmcgdGVtcFN0cmluZzsKKyAgICAgICAgLyogVXNlciBlcnJvciA6CisgICAgICAgIFN0cmluZyBleHBlY3RlZERlZmF1bHQgPSAiLTVcdTAwYTA3ODksOTg3IjsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkQ3VycmVuY3kgPSAiNVx1MDBhMDc4OSw5OCBGIjsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkUGVyY2VudCA9ICItNTc4XHUwMGEwOTk4JSI7CisgICAgICAgICovCisgICAgICAgIFN0cmluZyBleHBlY3RlZERlZmF1bHQgPSAiLTVcdTAwYTA3ODksOTg4IjsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkQ3VycmVuY3kgPSAiNVx1MDBhMDc4OSw5OSAiICsgRVVSTzsgLy8gZXVybworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRQZXJjZW50ID0gIi01NzhcdTAwYTA5OTklIjsKKworICAgICAgICBmb3JtYXR0ZXIgPSBOdW1iZXJGb3JtYXQuZ2V0TnVtYmVySW5zdGFuY2UoTG9jYWxlLkZSQU5DRSk7CisgICAgICAgIHRlbXBTdHJpbmcgPSBmb3JtYXR0ZXIuZm9ybWF0ICgtNTc4OS45ODc2KTsKKworICAgICAgICBpZiAodGVtcFN0cmluZy5lcXVhbHMoZXhwZWN0ZWREZWZhdWx0KSkgeworICAgICAgICAgICAgbG9nbG4gKCJCdWcgNDA3MDc5OCBkZWZhdWx0IHRlc3QgcGFzc2VkLiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZhaWxlZDoiICsKKyAgICAgICAgICAgICIgRXhwZWN0ZWQgIiArIGV4cGVjdGVkRGVmYXVsdCArCisgICAgICAgICAgICAiIFJlY2VpdmVkICIgKyB0ZW1wU3RyaW5nICk7CisgICAgICAgIH0KKworCisgICAgICAgIGZvcm1hdHRlciA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKExvY2FsZS5GUkFOQ0UpOworICAgICAgICB0ZW1wU3RyaW5nID0gZm9ybWF0dGVyLmZvcm1hdCggNTc4OS45ODc2ICk7CisKKyAgICAgICAgaWYgKHRlbXBTdHJpbmcuZXF1YWxzKGV4cGVjdGVkQ3VycmVuY3kpICkgeworICAgICAgICAgICAgbG9nbG4gKCJCdWcgNDA3MDc5OCBjdXJyZW5jeSB0ZXN0IGFzc2VkLiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZhaWxlZDoiICsKKyAgICAgICAgICAgICIgRXhwZWN0ZWQgIiArIGV4cGVjdGVkQ3VycmVuY3kgKworICAgICAgICAgICAgIiBSZWNlaXZlZCAiICsgdGVtcFN0cmluZyApOworICAgICAgICB9CisKKworICAgICAgICBmb3JtYXR0ZXIgPSBOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKExvY2FsZS5GUkFOQ0UpOworICAgICAgICB0ZW1wU3RyaW5nID0gZm9ybWF0dGVyLmZvcm1hdCAoLTU3ODkuOTg3Nik7CisKKyAgICAgICAgaWYgKHRlbXBTdHJpbmcuZXF1YWxzKGV4cGVjdGVkUGVyY2VudCkgKSB7CisgICAgICAgICAgICBsb2dsbiAoIkJ1ZyA0MDcwNzk4IHBlcmNlbnRhZ2UgdGVzdCBwYXNzZWQuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkOiIgKworICAgICAgICAgICAgIiBFeHBlY3RlZCAiICsgZXhwZWN0ZWRQZXJjZW50ICsKKyAgICAgICAgICAgICIgUmVjZWl2ZWQgIiArIHRlbXBTdHJpbmcgKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKioKKyAgICAgKiBEYXRhIHJvdW5kaW5nIGVycm9ycyBmb3IgRnJlbmNoIChDYW5hZGEpIGxvY2FsZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDcxMDA1ICgpIHsKKworICAgICAgICBOdW1iZXJGb3JtYXQgZm9ybWF0dGVyOworICAgICAgICBTdHJpbmcgdGVtcFN0cmluZzsKKyAgICAvKiB1c2VyIGVycm9yIDoKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkRGVmYXVsdCA9ICItNSA3ODksOTg3IjsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkQ3VycmVuY3kgPSAiNSA3ODksOTggJCI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZFBlcmNlbnQgPSAiLTU3OCA5OTglIjsKKyAgICAqLworICAgICAgICBTdHJpbmcgZXhwZWN0ZWREZWZhdWx0ID0gIi01XHUwMGEwNzg5LDk4OCI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZEN1cnJlbmN5ID0gIjVcdTAwYTA3ODksOTkgJCI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZFBlcmNlbnQgPSAiLTU3OFx1MDBhMDk5OSUiOworCisgICAgICAgIGZvcm1hdHRlciA9IE51bWJlckZvcm1hdC5nZXROdW1iZXJJbnN0YW5jZShMb2NhbGUuQ0FOQURBX0ZSRU5DSCk7CisgICAgICAgIHRlbXBTdHJpbmcgPSBmb3JtYXR0ZXIuZm9ybWF0ICgtNTc4OS45ODc2KTsKKyAgICAgICAgaWYgKHRlbXBTdHJpbmcuZXF1YWxzKGV4cGVjdGVkRGVmYXVsdCkpIHsKKyAgICAgICAgICAgIGxvZ2xuICgiQnVnIDQwNzEwMDUgZGVmYXVsdCB0ZXN0IHBhc3NlZC4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQ6IiArCisgICAgICAgICAgICAiIEV4cGVjdGVkICIgKyBleHBlY3RlZERlZmF1bHQgKworICAgICAgICAgICAgIiBSZWNlaXZlZCAiICsgdGVtcFN0cmluZyApOworICAgICAgICB9CisKKyAgICAgICAgZm9ybWF0dGVyID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoTG9jYWxlLkNBTkFEQV9GUkVOQ0gpOworICAgICAgICB0ZW1wU3RyaW5nID0gZm9ybWF0dGVyLmZvcm1hdCggNTc4OS45ODc2ICkgOworCisgICAgICAgIGlmICh0ZW1wU3RyaW5nLmVxdWFscyhleHBlY3RlZEN1cnJlbmN5KSApIHsKKyAgICAgICAgICAgIGxvZ2xuICgiQnVnIDQwNzEwMDUgY3VycmVuY3kgdGVzdCBwYXNzZWQuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkOiIgKworICAgICAgICAgICAgIiBFeHBlY3RlZCAiICsgZXhwZWN0ZWRDdXJyZW5jeSArCisgICAgICAgICAgICAiIFJlY2VpdmVkICIgKyB0ZW1wU3RyaW5nICk7CisgICAgICAgIH0KKyAgICAgICAgZm9ybWF0dGVyID0gTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZShMb2NhbGUuQ0FOQURBX0ZSRU5DSCk7CisgICAgICAgIHRlbXBTdHJpbmcgPSBmb3JtYXR0ZXIuZm9ybWF0ICgtNTc4OS45ODc2KTsKKworICAgICAgICBpZiAodGVtcFN0cmluZy5lcXVhbHMoZXhwZWN0ZWRQZXJjZW50KSApIHsKKyAgICAgICAgICAgIGxvZ2xuICgiQnVnIDQwNzEwMDUgcGVyY2VudGFnZSB0ZXN0IHBhc3NlZC4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQ6IiArCisgICAgICAgICAgICAiIEV4cGVjdGVkICIgKyBleHBlY3RlZFBlcmNlbnQgKworICAgICAgICAgICAgIiBSZWNlaXZlZCAiICsgdGVtcFN0cmluZyApOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRGF0YSByb3VuZGluZyBlcnJvcnMgZm9yIEdlcm1hbiAoR2VybWFueSkgbG9jYWxlCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwNzEwMTQgKCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgZm9ybWF0dGVyOworICAgICAgICBTdHJpbmcgdGVtcFN0cmluZzsKKyAgICAgICAgLyogdXNlciBlcnJvciA6CisgICAgICAgIFN0cmluZyBleHBlY3RlZERlZmF1bHQgPSAiLTUuNzg5LDk4NyI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZEN1cnJlbmN5ID0gIjUuNzg5LDk4IERNIjsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkUGVyY2VudCA9ICItNTc4Ljk5OCUiOworICAgICAgICAqLworICAgICAgICBTdHJpbmcgZXhwZWN0ZWREZWZhdWx0ID0gIi01Ljc4OSw5ODgiOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRDdXJyZW5jeSA9ICI1Ljc4OSw5OSAiICsgRVVSTzsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkUGVyY2VudCA9ICItNTc4Ljk5OSUiOworCisgICAgICAgIGZvcm1hdHRlciA9IE51bWJlckZvcm1hdC5nZXROdW1iZXJJbnN0YW5jZShMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIHRlbXBTdHJpbmcgPSBmb3JtYXR0ZXIuZm9ybWF0ICgtNTc4OS45ODc2KTsKKworICAgICAgICBpZiAodGVtcFN0cmluZy5lcXVhbHMoZXhwZWN0ZWREZWZhdWx0KSkgeworICAgICAgICAgICAgbG9nbG4gKCJCdWcgNDA3MTAxNCBkZWZhdWx0IHRlc3QgcGFzc2VkLiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZhaWxlZDoiICsKKyAgICAgICAgICAgICIgRXhwZWN0ZWQgIiArIGV4cGVjdGVkRGVmYXVsdCArCisgICAgICAgICAgICAiIFJlY2VpdmVkICIgKyB0ZW1wU3RyaW5nICk7CisgICAgICAgIH0KKworICAgICAgICBmb3JtYXR0ZXIgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIHRlbXBTdHJpbmcgPSBmb3JtYXR0ZXIuZm9ybWF0KCA1Nzg5Ljk4NzYgKSA7CisKKyAgICAgICAgaWYgKHRlbXBTdHJpbmcuZXF1YWxzKGV4cGVjdGVkQ3VycmVuY3kpICkgeworICAgICAgICAgICAgbG9nbG4gKCJCdWcgNDA3MTAxNCBjdXJyZW5jeSB0ZXN0IHBhc3NlZC4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQ6IiArCisgICAgICAgICAgICAiIEV4cGVjdGVkICIgKyBleHBlY3RlZEN1cnJlbmN5ICsKKyAgICAgICAgICAgICIgUmVjZWl2ZWQgIiArIHRlbXBTdHJpbmcgKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvcm1hdHRlciA9IE51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UoTG9jYWxlLkdFUk1BTlkpOworICAgICAgICB0ZW1wU3RyaW5nID0gZm9ybWF0dGVyLmZvcm1hdCAoLTU3ODkuOTg3Nik7CisKKyAgICAgICAgaWYgKHRlbXBTdHJpbmcuZXF1YWxzKGV4cGVjdGVkUGVyY2VudCkgKSB7CisgICAgICAgICAgICBsb2dsbiAoIkJ1ZyA0MDcxMDE0IHBlcmNlbnRhZ2UgdGVzdCBwYXNzZWQuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkOiIgKworICAgICAgICAgICAgIiBFeHBlY3RlZCAiICsgZXhwZWN0ZWRQZXJjZW50ICsKKyAgICAgICAgICAgICIgUmVjZWl2ZWQgIiArIHRlbXBTdHJpbmcgKTsKKyAgICAgICAgfQorCisgICAgfQorICAgIC8qKgorICAgICAqIERhdGEgcm91bmRpbmcgZXJyb3JzIGZvciBJdGFsaWFuIGxvY2FsZSBudW1iZXIgZm9ybWF0cworCSAqIE5vdGUtIHdpdGggdGhlIEV1cm8sIHRoZXJlIGlzIG5vIG5lZWQgZm9yIGN1cnJlbmN5IHJvdW5kaW5nIGFueW1vcmUKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA3MTg1OSAoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBmb3JtYXR0ZXI7CisgICAgICAgIFN0cmluZyB0ZW1wU3RyaW5nOworICAgICAgICAvKiB1c2VyIGVycm9yIDoKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkRGVmYXVsdCA9ICItNS43ODksOTg3IjsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkQ3VycmVuY3kgPSAiLUwuIDUuNzg5LDk4IjsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkUGVyY2VudCA9ICItNTc4Ljk5OCUiOworICAgICAgICAqLworICAgICAgICBTdHJpbmcgZXhwZWN0ZWREZWZhdWx0ID0gIi01Ljc4OSw5ODgiOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRDdXJyZW5jeSA9ICItIiArIEVVUk8gKyAiIDUuNzg5LDk5IjsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkUGVyY2VudCA9ICItNTc4Ljk5OSUiOworCisgICAgICAgIGZvcm1hdHRlciA9IE51bWJlckZvcm1hdC5nZXROdW1iZXJJbnN0YW5jZShMb2NhbGUuSVRBTFkpOworICAgICAgICB0ZW1wU3RyaW5nID0gZm9ybWF0dGVyLmZvcm1hdCAoLTU3ODkuOTg3Nik7CisKKyAgICAgICAgaWYgKHRlbXBTdHJpbmcuZXF1YWxzKGV4cGVjdGVkRGVmYXVsdCkpIHsKKyAgICAgICAgICAgIGxvZ2xuICgiQnVnIDQwNzE4NTkgZGVmYXVsdCB0ZXN0IHBhc3NlZC4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQ6IiArCisgICAgICAgICAgICAiIEV4cGVjdGVkICIgKyBleHBlY3RlZERlZmF1bHQgKworICAgICAgICAgICAgIiBSZWNlaXZlZCAiICsgdGVtcFN0cmluZyApOworICAgICAgICB9CisKKyAgICAgICAgZm9ybWF0dGVyID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoTG9jYWxlLklUQUxZKTsKKyAgICAgICAgdGVtcFN0cmluZyA9IGZvcm1hdHRlci5mb3JtYXQoIC01Nzg5Ljk4NzYgKSA7CisKKyAgICAgICAgaWYgKHRlbXBTdHJpbmcuZXF1YWxzKGV4cGVjdGVkQ3VycmVuY3kpICkgeworICAgICAgICAgICAgbG9nbG4gKCJCdWcgNDA3MTg1OSBjdXJyZW5jeSB0ZXN0IHBhc3NlZC4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQ6IiArCisgICAgICAgICAgICAiIEV4cGVjdGVkICIgKyBleHBlY3RlZEN1cnJlbmN5ICsKKyAgICAgICAgICAgICIgUmVjZWl2ZWQgIiArIHRlbXBTdHJpbmcgKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvcm1hdHRlciA9IE51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UoTG9jYWxlLklUQUxZKTsKKyAgICAgICAgdGVtcFN0cmluZyA9IGZvcm1hdHRlci5mb3JtYXQgKC01Nzg5Ljk4NzYpOworCisgICAgICAgIGlmICh0ZW1wU3RyaW5nLmVxdWFscyhleHBlY3RlZFBlcmNlbnQpICkgeworICAgICAgICAgICAgbG9nbG4gKCJCdWcgNDA3MTg1OSBwZXJjZW50YWdlIHRlc3QgcGFzc2VkLiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZhaWxlZDoiICsKKyAgICAgICAgICAgICIgRXhwZWN0ZWQgIiArIGV4cGVjdGVkUGVyY2VudCArCisgICAgICAgICAgICAiIFJlY2VpdmVkICIgKyB0ZW1wU3RyaW5nICk7CisgICAgICAgIH0KKworICAgIH0KKyAgICAvKiBidWcgNDA3MTg1OQorICAgICAqIFRlc3Qgcm91bmRpbmcgZm9yIG5lYXJlc3QgZXZlbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA5MzYxMCgpCisgICAgeworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoIiMwLiMiKTsKKyAgICAgICAgcm91bmRpbmdUZXN0KGRmLCAxMi4zNSwgIjEyLjQiKTsKKyAgICAgICAgcm91bmRpbmdUZXN0KGRmLCAxMi40NSwgIjEyLjQiKTsKKyAgICAgICAgcm91bmRpbmdUZXN0KGRmLCAxMi40NTIsIjEyLjUiKTsKKyAgICAgICAgcm91bmRpbmdUZXN0KGRmLCAxMi41NSwgIjEyLjYiKTsKKyAgICAgICAgcm91bmRpbmdUZXN0KGRmLCAxMi42NSwgIjEyLjYiKTsKKyAgICAgICAgcm91bmRpbmdUZXN0KGRmLCAxMi42NTIsIjEyLjciKTsKKyAgICAgICAgcm91bmRpbmdUZXN0KGRmLCAxMi43NSwgIjEyLjgiKTsKKyAgICAgICAgcm91bmRpbmdUZXN0KGRmLCAxMi43NTIsIjEyLjgiKTsKKyAgICAgICAgcm91bmRpbmdUZXN0KGRmLCAxMi44NSwgIjEyLjgiKTsKKyAgICAgICAgcm91bmRpbmdUZXN0KGRmLCAxMi44NTIsIjEyLjkiKTsKKyAgICAgICAgcm91bmRpbmdUZXN0KGRmLCAxMi45NSwgIjEzIik7CisgICAgICAgIHJvdW5kaW5nVGVzdChkZiwgMTIuOTUyLCIxMyIpOworCisgICAgfQorICAgIHZvaWQgcm91bmRpbmdUZXN0KERlY2ltYWxGb3JtYXQgZGYsIGRvdWJsZSB4LCBTdHJpbmcgZXhwZWN0ZWQpCisgICAgeworICAgICAgICBTdHJpbmcgb3V0ID0gZGYuZm9ybWF0KHgpOworICAgICAgICBsb2dsbigiIiArIHggKyAiIGZvcm1hdHMgd2l0aCAxIGZyYWN0aW9uYWwgZGlnaXRzIHRvICIgKyBvdXQpOworICAgICAgICBpZiAoIW91dC5lcXVhbHMoZXhwZWN0ZWQpKSBlcnJsbigiRkFJTDogRXhwZWN0ZWQgIiArIGV4cGVjdGVkKTsKKyAgICB9CisgICAgLyoqCisgICAgICogVGVzdHMgdGhlIHNldE1heGltdW1GcmFjdGlvbkRpZ2l0cyBsaW1pdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA5ODc0MSgpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgTnVtYmVyRm9ybWF0IGZtdCA9IE51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UoKTsKKyAgICAgICAgICAgIGZtdC5zZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoMjApOworICAgICAgICAgICAgbG9nbG4oZm10LmZvcm1hdCguMDAxKSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBmb28pIHsKKyAgICAgICAgICAgIGVycmxuKCJCdWcgNDA5ODQ3MSBmYWlsZWQgd2l0aCBleGNlcHRpb24gdGhyb3duIDogIiArIGZvby5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorICAgIC8qKgorICAgICAqIFRlc3RzIGlsbGVnYWwgcGF0dGVybiBleGNlcHRpb24uCisgICAgICogRml4IGNvbW1lbnQgOiBIU2hpaCBBMzEgUGFydDEgd2lsbCBub3QgYmUgZml4ZWQgYW5kIGphdmFkb2MgbmVlZHMgdG8gYmUgdXBkYXRlZC4KKyAgICAgKiBQYXJ0MiBoYXMgYmVlbiBmaXhlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA3NDQ1NCgpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIywjMDAuMDA7LSMuIyIpOworICAgICAgICAgICAgbG9nbG4oImZvcm1hdCAzNDU2Ljc4OiAiICsgZm10LmZvcm1hdCgzNDU2Ljc4KSk7IC8vZml4ICJUaGUgdmFyaWFibGUgJ2ZtdCcgaXMgbmV2ZXIgdXNlZCIKKyAgICAgICAgICAgIGxvZ2xuKCJJbmNvbnNpc3RlbnQgbmVnYXRpdmUgcGF0dGVybiBpcyBmaW5lLiIpOworICAgICAgICAgICAgRGVjaW1hbEZvcm1hdCBuZXdGbXQgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIywjMDAuMDAgcCcnaWVjZXM7LSMsIzAwLjAwIHAnJ2llY2VzIik7CisgICAgICAgICAgICBTdHJpbmcgdGVtcFN0cmluZyA9IG5ld0ZtdC5mb3JtYXQoMzQ1Ni43OCk7CisgICAgICAgICAgICBpZiAoIXRlbXBTdHJpbmcuZXF1YWxzKCIzLDQ1Ni43OCBwJ2llY2VzIikpCisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWxlZCEgIDM0NTYuNzggcCdpZWNlcyBleHBlY3RlZCwgYnV0IGdvdCA6ICIgKyB0ZW1wU3RyaW5nKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGZvbykgeworICAgICAgICAgICAgZXJybG4oIkFuIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGZvciBhbnkgaW5jb25zaXN0ZW50IG5lZ2F0aXZlIHBhdHRlcm4uIik7CisgICAgICAgIH0KKyAgICB9CisgICAgLyoqCisgICAgICogVGVzdHMgYWxsIGRpZmZlcmVudCBjb21tZW50cy4KKyAgICAgKiBSZXNwb25zZSB0byBzb21lIGNvbW1lbnRzIDoKKyAgICAgKiBbMV0gRGVjaW1hbEZvcm1hdC5wYXJzZSBBUEkgZG9jdW1lbnRhdGlvbiBpcyBtb3JlIHRoYW4ganVzdCBvbmUgbGluZS4KKyAgICAgKiBUaGlzIGlzIG5vdCBhIHJlcHJvZHVjYWJsZSBkb2MgZXJyb3IgaW4gMTE2IHNvdXJjZSBjb2RlLgorICAgICAqIFsyXSBTZWUgdXBkYXRlZCBqYXZhZG9jLgorICAgICAqIFszXSBGaXhlZC4KKyAgICAgKiBbNF0gTnVtYmVyRm9ybWF0LnBhcnNlKFN0cmluZywgUGFyc2VQb3NpdGlvbikgOiBJZiBwYXJzaW5nIGZhaWxzLAorICAgICAqIGEgbnVsbCBvYmplY3Qgd2lsbCBiZSByZXR1cm5lZC4gIFRoZSB1bmNoYW5nZWQgcGFyc2UgcG9zaXRpb24gYWxzbworICAgICAqIHJlZmxlY3RzIGFuIGVycm9yLgorICAgICAqIE51bWJlckZvcm1hdC5wYXJzZShTdHJpbmcpIDogSWYgcGFyc2luZyBmYWlscywgYW4gUGFyc2VFeGNlcHRpb24KKyAgICAgKiB3aWxsIGJlIHRocm93bi4KKyAgICAgKiBTZWUgdXBkYXRlZCBqYXZhZG9jIGZvciBtb3JlIGRldGFpbHMuCisgICAgICogWzVdIFNlZSB1cGRhdGVkIGphdmFkb2MuCisgICAgICogWzZdIFNlZSB1cGRhdGVkIGphdmFkb2MuCisgICAgICogWzddIFRoaXMgaXMgYSBjb3JyZWN0IGJlaGF2aW9yIGlmIHRoZSBEYXRlRm9ybWF0IG9iamVjdCBpcyBsaW5pZW50LgorICAgICAqIE90aGVyd2lzZSwgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHdpbGwgYmUgdGhyb3duIHdoZW4gZm9ybWF0dGluZworICAgICAqICJKYW51YXJ5IDM1Ii4gIFNlZSBHcmVnb3JpYW5DYWxlbmRhciBjbGFzcyBqYXZhZG9jIGZvciBtb3JlIGRldGFpbHMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwOTk0MDQoKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQoIjAwMC4wIzAiKTsKKyAgICAgICAgICAgIGxvZ2xuKCJmb3JtYXQgMzQ1Ni43ODogIiArIGZtdC5mb3JtYXQoMzQ1Ni43OCkpOyAvL2ZpeCAiVGhlIHZhcmlhYmxlICdmbXQnIGlzIG5ldmVyIHVzZWQiCisgICAgICAgICAgICBlcnJsbigiQnVnIDQwOTk0MDQgZmFpbGVkIGFwcGx5aW5nIGlsbGVnYWwgcGF0dGVybiBcIjAwMC4wIzBcIiIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZm9vKSB7CisgICAgICAgICAgICBsb2dsbigiQnVnIDQwOTk0MDQgcGF0dGVybiBcIjAwMC4wIzBcIiBwYXNzZWQiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQgPSBuZXcgRGVjaW1hbEZvcm1hdCgiMCMwLjAwMCIpOworICAgICAgICAgICAgbG9nbG4oImZvcm1hdCAzNDU2Ljc4OiAiICsgZm10LmZvcm1hdCgzNDU2Ljc4KSk7IC8vZml4ICJUaGUgdmFyaWFibGUgJ2ZtdCcgaXMgbmV2ZXIgdXNlZCIKKyAgICAgICAgICAgIGVycmxuKCJCdWcgNDA5OTQwNCBmYWlsZWQgYXBwbHlpbmcgaWxsZWdhbCBwYXR0ZXJuIFwiMCMwLjAwMFwiIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBmb28pIHsKKyAgICAgICAgICAgIGxvZ2xuKCJCdWcgNDA5OTQwNCBwYXR0ZXJuIFwiMCMwLjAwMFwiIHBhc3NlZCIpOworICAgICAgICB9CisgICAgfQorICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQuYXBwbHlQYXR0ZXJuIGRvZXNuJ3Qgc2V0IG1pbmltdW0gaW50ZWdlciBkaWdpdHMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEwMTQ4MSgpCisgICAgeworICAgICAgICBEZWNpbWFsRm9ybWF0IHNkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLCMjMCIpOworICAgICAgICBpZiAoc2RmLmdldE1pbmltdW1JbnRlZ2VyRGlnaXRzKCkgIT0gMSkKKyAgICAgICAgICAgIGVycmxuKCJNaW5pbXVtIGludGVnZXIgZGlnaXRzIDogIiArIHNkZi5nZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpKTsKKyAgICB9CisgICAgLyoqCisgICAgICogVGVzdHMgUGFyc2VQb3NpdGlvbi5zZXRFcnJvclBvc2l0aW9uKCkgYW5kIFBhcnNlUG9zaXRpb24uZ2V0RXJyb3JQb3NpdGlvbigpLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDUyMjIzKCkKKyAgICB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBEZWNpbWFsRm9ybWF0IGZtdCA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLCMwMC4wMCIpOworICAgICAgICAgICAgTnVtYmVyIG51bSA9IGZtdC5wYXJzZSgiYWJjMyIpOworICAgICAgICAgICAgZXJybG4oIkJ1ZyA0MDUyMjIzIGZhaWxlZCA6IGNhbid0IHBhcnNlIHN0cmluZyBcImFcIi4gIEdvdCAiICsgbnVtKTsKKyAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZm9vKSB7CisgICAgICAgICAgICBsb2dsbigiQ2F1Z2h0IGV4cGVjdGVkIFBhcnNlRXhjZXB0aW9uIDogIiArIGZvby5nZXRNZXNzYWdlKCkgKyAiIGF0IGluZGV4IDogIiArIGZvby5nZXRFcnJvck9mZnNldCgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKioKKyAgICAgKiBBUEkgdGVzdHMgZm9yIEFQSSBhZGRpdGlvbiByZXF1ZXN0IEE5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDYxMzAyKCkKKyAgICB7CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIGZtdCA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scygpOworICAgICAgICBTdHJpbmcgY3VycmVuY3kgPSBmbXQuZ2V0Q3VycmVuY3lTeW1ib2woKTsKKyAgICAgICAgU3RyaW5nIGludGxDdXJyZW5jeSA9IGZtdC5nZXRJbnRlcm5hdGlvbmFsQ3VycmVuY3lTeW1ib2woKTsKKyAgICAgICAgY2hhciBtb25EZWNTZXBhcmF0b3IgPSBmbXQuZ2V0TW9uZXRhcnlEZWNpbWFsU2VwYXJhdG9yKCk7CisgICAgICAgIGlmIChjdXJyZW5jeS5lcXVhbHMoIiIpIHx8CisgICAgICAgICAgICBpbnRsQ3VycmVuY3kuZXF1YWxzKCIiKSB8fAorICAgICAgICAgICAgbW9uRGVjU2VwYXJhdG9yID09IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJnZXRDdXJyZW5jeVN5bWJvbHMgZmFpbGVkLCBnb3QgZW1wdHkgc3RyaW5nLiIpOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKCJCZWZvcmUgc2V0ID09PiBDdXJyZW5jeSA6ICIgKyBjdXJyZW5jeSArICIgSW50bCBDdXJyZW5jeSA6ICIgKyBpbnRsQ3VycmVuY3kgKyAiIE1vbmV0YXJ5IERlY2ltYWwgU2VwYXJhdG9yIDogIiArIG1vbkRlY1NlcGFyYXRvcik7CisgICAgICAgIGZtdC5zZXRDdXJyZW5jeVN5bWJvbCgiWFlaIik7CisgICAgICAgIGZtdC5zZXRJbnRlcm5hdGlvbmFsQ3VycmVuY3lTeW1ib2woIkFCQyIpOworICAgICAgICBmbXQuc2V0TW9uZXRhcnlEZWNpbWFsU2VwYXJhdG9yKCcqJyk7CisgICAgICAgIGN1cnJlbmN5ID0gZm10LmdldEN1cnJlbmN5U3ltYm9sKCk7CisgICAgICAgIGludGxDdXJyZW5jeSA9IGZtdC5nZXRJbnRlcm5hdGlvbmFsQ3VycmVuY3lTeW1ib2woKTsKKyAgICAgICAgbW9uRGVjU2VwYXJhdG9yID0gZm10LmdldE1vbmV0YXJ5RGVjaW1hbFNlcGFyYXRvcigpOworICAgICAgICBpZiAoIWN1cnJlbmN5LmVxdWFscygiWFlaIikgfHwKKyAgICAgICAgICAgICFpbnRsQ3VycmVuY3kuZXF1YWxzKCJBQkMiKSB8fAorICAgICAgICAgICAgbW9uRGVjU2VwYXJhdG9yICE9ICcqJykgeworICAgICAgICAgICAgZXJybG4oInNldEN1cnJlbmN5U3ltYm9scyBmYWlsZWQuIik7CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4oIkFmdGVyIHNldCA9PT4gQ3VycmVuY3kgOiAiICsgY3VycmVuY3kgKyAiIEludGwgQ3VycmVuY3kgOiAiICsgaW50bEN1cnJlbmN5ICsgIiBNb25ldGFyeSBEZWNpbWFsIFNlcGFyYXRvciA6ICIgKyBtb25EZWNTZXBhcmF0b3IpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBBUEkgdGVzdHMgZm9yIEFQSSBhZGRpdGlvbiByZXF1ZXN0IEEyMy4gRmllbGRQb3NpdGlvbi5nZXRCZWdpbkluZGV4IGFuZAorICAgICAqIEZpZWxkUG9zaXRpb24uZ2V0RW5kSW5kZXguCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwNjI0ODYoKQorICAgIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIywjIzAuMDAiKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGZvcm1hdHRlZCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBmaWVsZCA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBEb3VibGUgbnVtID0gbmV3IERvdWJsZSgxMjM0LjUpOworICAgICAgICBmbXQuZm9ybWF0KG51bSwgZm9ybWF0dGVkLCBmaWVsZCk7CisgICAgICAgIGlmIChmaWVsZC5nZXRCZWdpbkluZGV4KCkgIT0gMCAmJiBmaWVsZC5nZXRFbmRJbmRleCgpICE9IDUpCisgICAgICAgICAgICBlcnJsbigiRm9ybWF0IDEyMzQuNSBmYWlsZWQuIEJlZ2luIGluZGV4OiAiICsgZmllbGQuZ2V0QmVnaW5JbmRleCgpICsgIiBFbmQgaW5kZXg6ICIgKyBmaWVsZC5nZXRFbmRJbmRleCgpKTsKKyAgICAgICAgZmllbGQuc2V0QmVnaW5JbmRleCg3KTsKKyAgICAgICAgZmllbGQuc2V0RW5kSW5kZXgoNCk7CisgICAgICAgIGlmIChmaWVsZC5nZXRCZWdpbkluZGV4KCkgIT0gNyAmJiBmaWVsZC5nZXRFbmRJbmRleCgpICE9IDQpCisgICAgICAgICAgICBlcnJsbigiU2V0IGJlZ2luL2VuZCBmaWVsZCBpbmRleGVzIGZhaWxlZC4gQmVnaW4gaW5kZXg6ICIgKyBmaWVsZC5nZXRCZWdpbkluZGV4KCkgKyAiIEVuZCBpbmRleDogIiArIGZpZWxkLmdldEVuZEluZGV4KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQucGFyc2UgaW5jb3JyZWN0bHkgd29ya3Mgd2l0aCBhIGdyb3VwIHNlcGFyYXRvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEwODczOCgpCisgICAgeworCisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIywjIzAuIyMjIiwgbmV3CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzKGphdmEudXRpbC5Mb2NhbGUuVVMpKTsKKyAgICAgICAgU3RyaW5nIHRleHQgPSAiMS4yMjIsMTExIjsKKyAgICAgICAgTnVtYmVyIG51bSA9IGRmLnBhcnNlKHRleHQsbmV3IFBhcnNlUG9zaXRpb24oMCkpOworICAgICAgICBpZiAoIW51bS50b1N0cmluZygpLmVxdWFscygiMS4yMjIiKSkKKyAgICAgICAgICAgIGVycmxuKCJcIiIgKyB0ZXh0ICsgIlwiICBpcyBwYXJzZWQgYXMgIiArIG51bSk7CisgICAgICAgIHRleHQgPSAiMS4yMjJ4MTExIjsKKyAgICAgICAgbnVtID0gZGYucGFyc2UodGV4dCxuZXcgUGFyc2VQb3NpdGlvbigwKSk7CisgICAgICAgIGlmICghbnVtLnRvU3RyaW5nKCkuZXF1YWxzKCIxLjIyMiIpKQorICAgICAgICAgICAgZXJybG4oIlwiIiArIHRleHQgKyAiXCIgIGlzIHBhcnNlZCBhcyAiICsgbnVtKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0LmZvcm1hdCgpIGluY29ycmVjdGx5IGZvcm1hdHMgbmVnYXRpdmUgZG91Ymxlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEwNjY1OCgpCisgICAgeworICAgICAgICBMb2NhbGUgc2F2ZWRMb2NhbGUgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChMb2NhbGUuVVMpOworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoKTsgLy8gQ29ycmVjdGVkOyBzZWUgNDE0NzcwNgorICAgICAgICBkb3VibGUgZDEgPSAtMC4wOworICAgICAgICBkb3VibGUgZDIgPSAtMC4wMDAxOworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBsb2dsbigicGF0dGVybjogXCIiICsgZGYudG9QYXR0ZXJuKCkgKyAiXCIiKTsKKyAgICAgICAgZGYuZm9ybWF0KGQxLCBidWZmZXIsIG5ldyBGaWVsZFBvc2l0aW9uKDApKTsKKyAgICAgICAgaWYgKCFidWZmZXIudG9TdHJpbmcoKS5lcXVhbHMoIi0wIikpIHsgLy8gQ29ycmVjdGVkOyBzZWUgNDE0NzcwNgorICAgICAgICAgICAgZXJybG4oZDEgKyAiICAgICAgaXMgZm9ybWF0dGVkIGFzICIgKyBidWZmZXIpOworICAgICAgICB9CisgICAgICAgIGJ1ZmZlci5zZXRMZW5ndGgoMCk7CisgICAgICAgIGRmLmZvcm1hdChkMiwgYnVmZmVyLCBuZXcgRmllbGRQb3NpdGlvbigwKSk7CisgICAgICAgIGlmICghYnVmZmVyLnRvU3RyaW5nKCkuZXF1YWxzKCItMCIpKSB7IC8vIENvcnJlY3RlZDsgc2VlIDQxNDc3MDYKKyAgICAgICAgICAgIGVycmxuKGQyICsgIiAgICAgIGlzIGZvcm1hdHRlZCBhcyAiICsgYnVmZmVyKTsKKyAgICAgICAgfQorICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChzYXZlZExvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdC5wYXJzZSByZXR1cm5zIDAgaWYgc3RyaW5nIHBhcmFtZXRlciBpcyBpbmNvcnJlY3QuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDY2NjIoKQorICAgIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCk7CisgICAgICAgIFN0cmluZyB0ZXh0ID0gIngiOworICAgICAgICBQYXJzZVBvc2l0aW9uIHBvczEgPSBuZXcgUGFyc2VQb3NpdGlvbigwKSwgcG9zMiA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworCisgICAgICAgIGxvZ2xuKCJwYXR0ZXJuOiBcIiIgKyBkZi50b1BhdHRlcm4oKSArICJcIiIpOworICAgICAgICBOdW1iZXIgbnVtID0gZGYucGFyc2UodGV4dCwgcG9zMSk7CisgICAgICAgIGlmIChudW0gIT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIlRlc3QgRmFpbGVkOiBcIiIgKyB0ZXh0ICsgIlwiIGlzIHBhcnNlZCBhcyAiICsgbnVtKTsKKyAgICAgICAgfQorICAgICAgICBkZiA9IG51bGw7CisgICAgICAgIGRmID0gbmV3IERlY2ltYWxGb3JtYXQoIiQjIyMuMDAiKTsKKyAgICAgICAgbnVtID0gZGYucGFyc2UoIiQiLCBwb3MyKTsKKyAgICAgICAgaWYgKG51bSAhPSBudWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJUZXN0IEZhaWxlZDogXCIkXCIgaXMgcGFyc2VkIGFzICIgKyBudW0pOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTnVtYmVyRm9ybWF0LnBhcnNlIGRvZXNuJ3QgcmV0dXJuIG51bGwKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDExNDYzOSgpCisgICAgeworICAgICAgICBOdW1iZXJGb3JtYXQgZm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgICAgIFN0cmluZyB0ZXh0ID0gInRpbWUgMTA6eCI7CisgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oOCk7CisgICAgICAgIE51bWJlciByZXN1bHQgPSBmb3JtYXQucGFyc2UodGV4dCwgcG9zKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPSBudWxsKSBlcnJsbigiU2hvdWxkIHJldHVybiBudWxsIGJ1dCBnb3QgOiAiICsgcmVzdWx0KTsgLy8gU2hvdWxkIGJlIG51bGw7IGl0IGlzbid0CisgICAgfQorCisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdC5mb3JtYXQobG9uZyBuKSBmYWlscyBpZiBuICogbXVsdGlwbGllciA+IE1BWF9MT05HLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTA2NjY0KCkKKyAgICB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgpOworICAgICAgICBsb25nIG4gPSAxMjM0NTY3ODkwMTIzNDU2TDsKKyAgICAgICAgaW50IG0gPSAxMjM0NTY3ODsKKyAgICAgICAgQmlnSW50ZWdlciBiaWdOID0gQmlnSW50ZWdlci52YWx1ZU9mKG4pOworICAgICAgICBiaWdOID0gYmlnTi5tdWx0aXBseShCaWdJbnRlZ2VyLnZhbHVlT2YobSkpOworICAgICAgICBkZi5zZXRNdWx0aXBsaWVyKG0pOworICAgICAgICBkZi5zZXRHcm91cGluZ1VzZWQoZmFsc2UpOworICAgICAgICBsb2dsbigiZm9ybWF0ZWQ6ICIgKworICAgICAgICAgICAgZGYuZm9ybWF0KG4sIG5ldyBTdHJpbmdCdWZmZXIoKSwgbmV3IEZpZWxkUG9zaXRpb24oMCkpKTsKKyAgICAgICAgbG9nbG4oImV4cGVjdGVkOiAiICsgYmlnTi50b1N0cmluZygpKTsKKyAgICB9CisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdC5mb3JtYXQgaW5jb3JyZWN0bHkgZm9ybWF0cyAtMC4wLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTA2NjY3KCkKKyAgICB7CisgICAgICAgIExvY2FsZSBzYXZlZExvY2FsZSA9IExvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KExvY2FsZS5VUyk7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgpOworICAgICAgICBkZi5zZXRQb3NpdGl2ZVByZWZpeCgiKyIpOworICAgICAgICBkb3VibGUgZCA9IC0wLjA7CisgICAgICAgIGxvZ2xuKCJwYXR0ZXJuOiBcIiIgKyBkZi50b1BhdHRlcm4oKSArICJcIiIpOworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBkZi5mb3JtYXQoZCwgYnVmZmVyLCBuZXcgRmllbGRQb3NpdGlvbigwKSk7CisgICAgICAgIGlmICghYnVmZmVyLnRvU3RyaW5nKCkuZXF1YWxzKCItMCIpKSB7IC8vIENvcnJlY3RlZDsgc2VlIDQxNDc3MDYKKyAgICAgICAgICAgIGVycmxuKGQgKyAiICBpcyBmb3JtYXR0ZWQgYXMgIiArIGJ1ZmZlcik7CisgICAgICAgIH0KKyAgICAgICAgTG9jYWxlLnNldERlZmF1bHQoc2F2ZWRMb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQuc2V0TWF4aW11bUludGVnZXJEaWdpdHMoKSB3b3JrcyBpbmNvcnJlY3RseS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDExMDkzNigpCisgICAgeworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgbmYuc2V0TWF4aW11bUludGVnZXJEaWdpdHMoMTI4KTsKKyAgICAgICAgbG9nbG4oInNldE1heGltdW1JbnRlZ2VyRGlnaXRzKDEyOCkiKTsKKyAgICAgICAgaWYgKG5mLmdldE1heGltdW1JbnRlZ2VyRGlnaXRzKCkgIT0gMTI4KQorICAgICAgICAgICAgZXJybG4oImdldE1heGltdW1JbnRlZ2VyRGlnaXRzKCkgcmV0dXJucyAiICsKKyAgICAgICAgICAgICAgICBuZi5nZXRNYXhpbXVtSW50ZWdlckRpZ2l0cygpKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogTG9jYWxlIGRhdGEgc2hvdWxkIHVzZSBnZW5lcmljIGN1cnJlbmN5IHN5bWJvbAorICAgICAqCisgICAgICogMSkgTWFrZSBzdXJlIHRoYXQgYWxsIGN1cnJlbmN5IGZvcm1hdHMgdXNlIHRoZSBnZW5lcmljIGN1cnJlbmN5IHN5bWJvbC4KKyAgICAgKiAyKSBNYWtlIHN1cmUgd2UgZ2V0IHRoZSBzYW1lIHJlc3VsdHMgdXNpbmcgdGhlIGdlbmVyaWMgc3ltYm9sIG9yIGEKKyAgICAgKiAgICBoYXJkLWNvZGVkIG9uZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEyMjg0MCgpCisgICAgeworICAgICAgICBMb2NhbGVbXSBsb2NhbGVzID0gTnVtYmVyRm9ybWF0LmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgUmVzb3VyY2VCdW5kbGUgcmIgPSBJQ1VMb2NhbGVEYXRhLmdldFJlc291cmNlQnVuZGxlKCJMb2NhbGVFbGVtZW50cyIsIGxvY2FsZXNbaV0pOworCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gR2V0IHRoZSBjdXJyZW5jeSBwYXR0ZXJuIGZvciB0aGlzIGxvY2FsZS4gIFdlIGhhdmUgdG8gZmlzaCBpdAorICAgICAgICAgICAgLy8gb3V0IG9mIHRoZSBSZXNvdXJjZUJ1bmRsZSBkaXJlY3RseSwgc2luY2UgRGVjaW1hbEZvcm1hdC50b1BhdHRlcm4KKyAgICAgICAgICAgIC8vIHdpbGwgcmV0dXJuIHRoZSBsb2NhbGl6ZWQgc3ltYm9sLCBub3QgXDAwYTQKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICBTdHJpbmdbXSBudW1QYXR0ZXJucyA9IChTdHJpbmdbXSlyYi5nZXRPYmplY3QoIk51bWJlclBhdHRlcm5zIik7CisgICAgICAgICAgICBTdHJpbmcgcGF0dGVybiA9IG51bVBhdHRlcm5zWzFdOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAocGF0dGVybi5pbmRleE9mKCJcdTAwQTQiKSA9PSAtMSApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ3VycmVuY3kgZm9ybWF0IGZvciAiICsgbG9jYWxlc1tpXSArCisgICAgICAgICAgICAgICAgICAgICAgICAiIGRvZXMgbm90IGNvbnRhaW4gZ2VuZXJpYyBjdXJyZW5jeSBzeW1ib2w6IiArCisgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuICk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIENyZWF0ZSBhIERlY2ltYWxGb3JtYXQgdXNpbmcgdGhlIHBhdHRlcm4gd2UgZ290IGFuZCBmb3JtYXQgYSBudW1iZXIKKyAgICAgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIHN5bWJvbHMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMobG9jYWxlc1tpXSk7CisgICAgICAgICAgICBEZWNpbWFsRm9ybWF0IGZtdDEgPSBuZXcgRGVjaW1hbEZvcm1hdChwYXR0ZXJuLCBzeW1ib2xzKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIHJlc3VsdDEgPSBmbXQxLmZvcm1hdCgxLjExMSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBOb3cgc3Vic3RpdHV0ZSBpbiB0aGUgbG9jYWxlJ3MgY3VycmVuY3kgc3ltYm9sIGFuZCBjcmVhdGUgYW5vdGhlcgorICAgICAgICAgICAgLy8gcGF0dGVybi4gIFJlcGxhY2UgdGhlIGRlY2ltYWwgc2VwYXJhdG9yIHdpdGggdGhlIG1vbmV0YXJ5IHNlcGFyYXRvci4KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvL2NoYXIgZGVjU2VwID0gc3ltYm9scy5nZXREZWNpbWFsU2VwYXJhdG9yKCk7IC8vVGhlIHZhcmlhYmxlIGlzIG5ldmVyIHVzZWQKKyAgICAgICAgICAgIGNoYXIgbW9uU2VwID0gc3ltYm9scy5nZXRNb25ldGFyeURlY2ltYWxTZXBhcmF0b3IoKTsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKHBhdHRlcm4pOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBidWYubGVuZ3RoKCk7IGorKykgeworICAgICAgICAgICAgICAgIGlmIChidWYuY2hhckF0KGopID09ICdcdTAwYTQnKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBjdXIgPSAiJyIgKyBzeW1ib2xzLmdldEN1cnJlbmN5U3ltYm9sKCkgKyAiJyI7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5yZXBsYWNlKGosIGorMSwgY3VyKTsgCisgICAgICAgICAgICAgICAgICAgIGogKz0gY3VyLmxlbmd0aCgpIC0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzeW1ib2xzLnNldERlY2ltYWxTZXBhcmF0b3IobW9uU2VwKTsKKyAgICAgICAgICAgIERlY2ltYWxGb3JtYXQgZm10MiA9IG5ldyBEZWNpbWFsRm9ybWF0KGJ1Zi50b1N0cmluZygpLCBzeW1ib2xzKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIHJlc3VsdDIgPSBmbXQyLmZvcm1hdCgxLjExMSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICghcmVzdWx0MS5lcXVhbHMocmVzdWx0MikpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiUmVzdWx0cyBmb3IgIiArIGxvY2FsZXNbaV0gKyAiIGRpZmZlcjogIiArCisgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MSArICIgdnMgIiArIHJlc3VsdDIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgICAKKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0LmZvcm1hdCgpIGRlbGl2ZXJzIHdyb25nIHN0cmluZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEyNTg4NSgpCisgICAgeworICAgICAgICBkb3VibGUgcmF0ZSA9IDEyLjM0OworICAgICAgICBEZWNpbWFsRm9ybWF0IGZvcm1hdERlYyA9IG5ldyBEZWNpbWFsRm9ybWF0ICgiMDAwLjAwIik7CisgICAgICAgIGxvZ2xuKCJ0b1BhdHRlcm46ICIgKyBmb3JtYXREZWMudG9QYXR0ZXJuKCkpOworICAgICAgICBTdHJpbmcgcmF0ZVN0cmluZz0gZm9ybWF0RGVjLmZvcm1hdChyYXRlKTsKKyAgICAgICAgaWYgKCFyYXRlU3RyaW5nLmVxdWFscygiMDEyLjM0IikpCisgICAgICAgICAgICBlcnJsbigicmVzdWx0IDogIiArIHJhdGVTdHJpbmcgKyAiIGV4cGVjdGVkIDogMDEyLjM0Iik7CisgICAgICAgIHJhdGUgPSAwLjEyMzQ7CisgICAgICAgIGZvcm1hdERlYyA9IG51bGw7CisgICAgICAgIGZvcm1hdERlYyA9IG5ldyBEZWNpbWFsRm9ybWF0ICgiKzAwMC4wMCU7LTAwMC4wMCUiKTsKKyAgICAgICAgbG9nbG4oInRvUGF0dGVybjogIiArIGZvcm1hdERlYy50b1BhdHRlcm4oKSk7CisgICAgICAgIHJhdGVTdHJpbmc9IGZvcm1hdERlYy5mb3JtYXQocmF0ZSk7CisgICAgICAgIGlmICghcmF0ZVN0cmluZy5lcXVhbHMoIiswMTIuMzQlIikpCisgICAgICAgICAgICBlcnJsbigicmVzdWx0IDogIiArIHJhdGVTdHJpbmcgKyAiIGV4cGVjdGVkIDogKzAxMi4zNCUiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0IHByb2R1Y2VzIGV4dHJhIHplcm9zIHdoZW4gZm9ybWF0dGluZyBudW1iZXJzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTM0MDM0KCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0IG5mID0gbmV3IERlY2ltYWxGb3JtYXQoIiMjLCMjIywjIyMuMDAiKTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyBmID0gbmYuZm9ybWF0KDkuMDIpOworICAgICAgICBpZiAoZi5lcXVhbHMoIjkuMDIiKSkgbG9nbG4oZiArICIgb2siKTsgZWxzZSBlcnJsbigiOS4wMiAtPiAiICsgZiArICI7IHdhbnQgOS4wMiIpOworCisgICAgICAgIGYgPSBuZi5mb3JtYXQoMCk7CisgICAgICAgIGlmIChmLmVxdWFscygiLjAwIikpIGxvZ2xuKGYgKyAiIG9rIik7IGVsc2UgZXJybG4oIjAgLT4gIiArIGYgKyAiOyB3YW50IC4wMCIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENBTk5PVCBSRVBST0RVQ0UgLSBUaGlzIGJ1ZyBjb3VsZCBub3QgYmUgcmVwcm9kdWNlZC4gIEl0IG1heSBiZQorICAgICAqIGEgZHVwbGljYXRlIG9mIDQxMzQwMzQuCisgICAgICoKKyAgICAgKiBKREsgMS4xLjYgQnVnLCBkaWQgTk9UIG9jY3VyIGluIDEuMS41CisgICAgICogUG9zc2libHkgcmVsYXRlZCB0byBidWcgNDEyNTg4NS4KKyAgICAgKiAKKyAgICAgKiBUaGlzIGNsYXNzIGRlbW9uc3RyYXRlcyBhIHJlZ3Jlc3Npb24gaW4gdmVyc2lvbiAxLjEuNgorICAgICAqIG9mIERlY2ltYWxGb3JtYXQgY2xhc3MuCisgICAgICogCisgICAgICogMS4xLjYgUmVzdWx0cworICAgICAqIFZhbHVlIDEuMiBGb3JtYXQgIy4wMCBSZXN1bHQgJzAxLjIwJyAhISF3cm9uZworICAgICAqIFZhbHVlIDEuMiBGb3JtYXQgMC4wMCBSZXN1bHQgJzAwMS4yMCcgISEhd3JvbmcKKyAgICAgKiBWYWx1ZSAxLjIgRm9ybWF0IDAwLjAwIFJlc3VsdCAnMDAwMS4yMCcgISEhd3JvbmcKKyAgICAgKiBWYWx1ZSAxLjIgRm9ybWF0ICMwLjAjIFJlc3VsdCAnMS4yJworICAgICAqIFZhbHVlIDEuMiBGb3JtYXQgIzAuMDAgUmVzdWx0ICcwMDEuMjAnICEhIXdyb25nCisgICAgICogCisgICAgICogMS4xLjUgUmVzdWx0cworICAgICAqIFZhbHVlIDEuMiBGb3JtYXQgIy4wMCBSZXN1bHQgJzEuMjAnCisgICAgICogVmFsdWUgMS4yIEZvcm1hdCAwLjAwIFJlc3VsdCAnMS4yMCcKKyAgICAgKiBWYWx1ZSAxLjIgRm9ybWF0IDAwLjAwIFJlc3VsdCAnMDEuMjAnCisgICAgICogVmFsdWUgMS4yIEZvcm1hdCAjMC4wIyBSZXN1bHQgJzEuMicKKyAgICAgKiBWYWx1ZSAxLjIgRm9ybWF0ICMwLjAwIFJlc3VsdCAnMS4yMCcKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEzNDMwMCgpIHsKKyAgICAgICAgU3RyaW5nW10gREFUQSA9IHsKKyAgICAgICAgIC8vIFBhdHRlcm4gICAgICBFeHBlY3RlZCBzdHJpbmcKKyAgICAgICAgICAgICIjLjAwIiwgICAgICAiMS4yMCIsCisgICAgICAgICAgICAiMC4wMCIsICAgICAgIjEuMjAiLAorICAgICAgICAgICAgIjAwLjAwIiwgICAgICIwMS4yMCIsCisgICAgICAgICAgICAiIzAuMCMiLCAgICAgIjEuMiIsCisgICAgICAgICAgICAiIzAuMDAiLCAgICAgIjEuMjAiLAorICAgICAgICB9OworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTIpIHsKKyAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSBuZXcgRGVjaW1hbEZvcm1hdChEQVRBW2ldKS5mb3JtYXQoMS4yKTsKKyAgICAgICAgICAgIGlmICghcmVzdWx0LmVxdWFscyhEQVRBW2krMV0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IDEuMiB4ICIgKyBEQVRBW2ldICsgIiA9ICIgKyByZXN1bHQgKworICAgICAgICAgICAgICAgICAgICAgICI7IHdhbnQgIiArIERBVEFbaSsxXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT2s6IDEuMiB4ICIgKyBEQVRBW2ldICsgIiA9ICIgKyByZXN1bHQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRW1wdHkgcGF0dGVybiBwcm9kdWNlcyBkb3VibGUgbmVnYXRpdmUgcHJlZml4LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTQwMDA5KCkgeworICAgICAgICBmb3IgKGludCBpPTA7IGk8MjsgKytpKSB7CisgICAgICAgICAgICBEZWNpbWFsRm9ybWF0IGYgPSBudWxsOworICAgICAgICAgICAgc3dpdGNoIChpKSB7CisgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuRU5HTElTSCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgIGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIy4jIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLkVOR0xJU0gpKTsKKyAgICAgICAgICAgICAgICBmLmFwcGx5UGF0dGVybigiIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTdHJpbmcgcyA9IGYuZm9ybWF0KDEyMy40NTYpOworICAgICAgICAgICAgaWYgKCFzLmVxdWFscygiMTIzLjQ1NiIpKQorICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBGb3JtYXQgZW1wdHkgcGF0dGVybiB4IDEyMy40NTYgPT4gIiArIHMpOworICAgICAgICAgICAgcyA9IGYuZm9ybWF0KC0xMjMuNDU2KTsKKyAgICAgICAgICAgIGlmICghcy5lcXVhbHMoIi0xMjMuNDU2IikpCisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IEZvcm1hdCBlbXB0eSBwYXR0ZXJuIHggLTEyMy40NTYgPT4gIiArIHMpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQmlnRGVjaW1hbCBudW1iZXJzIGdldCB0aGVpciBmcmFjdGlvbnMgdHJ1bmNhdGVkIGJ5IE51bWJlckZvcm1hdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE0MTc1MCgpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFN0cmluZyBzdHIgPSAiMTIzNDUuNjciOworICAgICAgICAgICAgQmlnRGVjaW1hbCBiZCA9IG5ldyBCaWdEZWNpbWFsKHN0cik7CisgICAgICAgICAgICBTdHJpbmcgc2QgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKS5mb3JtYXQoYmQpOworICAgICAgICAgICAgaWYgKCFzZC5lbmRzV2l0aCgiNjciKSkgZXJybG4oIkZhaWw6ICIgKyBzdHIgKyAiIHggZm9ybWF0IC0+ICIgKyBzZCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbihlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0IHRvUGF0dGVybigpIGRvZXNuJ3QgcXVvdGUgc3BlY2lhbCBjaGFyYWN0ZXJzIG9yIGhhbmRsZQorICAgICAqIHNpbmdsZSBxdW90ZXMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNDU0NTcoKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBEZWNpbWFsRm9ybWF0IG5mID0gKERlY2ltYWxGb3JtYXQpTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBzeW0gPSBuZi5nZXREZWNpbWFsRm9ybWF0U3ltYm9scygpOworICAgICAgICAgICAgc3ltLnNldERlY2ltYWxTZXBhcmF0b3IoJ1wnJyk7CisgICAgICAgICAgICBuZi5zZXREZWNpbWFsRm9ybWF0U3ltYm9scyhzeW0pOworICAgICAgICAgICAgZG91YmxlIHBpID0gMy4xNDE1OTsKKworICAgICAgICAgICAgU3RyaW5nW10gUEFUUyA9IHsgIiMuMDAgJ251bScnYmVyJyIsICInJyMuMDAnJyIgfTsKKworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPFBBVFMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBuZi5hcHBseVBhdHRlcm4oUEFUU1tpXSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIG91dCA9IG5mLmZvcm1hdChwaSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHBhdCA9IG5mLnRvUGF0dGVybigpOworICAgICAgICAgICAgICAgIGRvdWJsZSB2YWwgPSBuZi5wYXJzZShvdXQpLmRvdWJsZVZhbHVlKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBuZi5hcHBseVBhdHRlcm4ocGF0KTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgb3V0MiA9IG5mLmZvcm1hdChwaSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHBhdDIgPSBuZi50b1BhdHRlcm4oKTsKKyAgICAgICAgICAgICAgICBkb3VibGUgdmFsMiA9IG5mLnBhcnNlKG91dDIpLmRvdWJsZVZhbHVlKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoIXBhdC5lcXVhbHMocGF0MikpCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsIHdpdGggXCIiICsgUEFUU1tpXSArICJcIjogUGF0dGVybnMgc2hvdWxkIGNvbmN1ciwgXCIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0ICsgIlwiIHZzLiBcIiIgKyBwYXQyICsgIlwiIik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBsb2dsbigiT2sgXCIiICsgUEFUU1tpXSArICJcIiB0b1BhdHRlcm4oKSAtPiBcIiIgKyBwYXQgKyAnIicpOworCisgICAgICAgICAgICAgICAgaWYgKHZhbCA9PSB2YWwyICYmIG91dC5lcXVhbHMob3V0MikpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIk9rICIgKyBwaSArICIgeCBcIiIgKyBQQVRTW2ldICsgIlwiIC0+IFwiIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIG91dCArICJcIiAtPiAiICsgdmFsICsgIiAtPiBcIiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQyICsgIlwiIC0+ICIgKyB2YWwyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsICIgKyBwaSArICIgeCBcIiIgKyBQQVRTW2ldICsgIlwiIC0+IFwiIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIG91dCArICJcIiAtPiAiICsgdmFsICsgIiAtPiBcIiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQyICsgIlwiIC0+ICIgKyB2YWwyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgZSk7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdC5hcHBseVBhdHRlcm4oKSBzZXRzIG1pbmltdW0gaW50ZWdlciBkaWdpdHMgaW5jb3JyZWN0bHkuCisgICAgICogQ0FOTk9UIFJFUFJPRFVDRQorICAgICAqIFRoaXMgYnVnIGlzIGEgZHVwbGljYXRlIG9mIDQxMzkzNDQsIHdoaWNoIGlzIGEgZHVwbGljYXRlIG9mIDQxMzQzMDAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE0NzI5NSgpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBzZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgpOworICAgICAgICBTdHJpbmcgcGF0dGVybiA9ICIjLCMjIyI7CisgICAgICAgIGxvZ2xuKCJBcHBseWluZyBwYXR0ZXJuIFwiIiArIHBhdHRlcm4gKyAiXCIiKTsKKyAgICAgICAgc2RmLmFwcGx5UGF0dGVybihwYXR0ZXJuKTsKKyAgICAgICAgaW50IG1pbkludERpZyA9IHNkZi5nZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpOworICAgICAgICBpZiAobWluSW50RGlnICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJUZXN0IGZhaWxlZCIpOworICAgICAgICAgICAgZXJybG4oIiBNaW5pbXVtIGludGVnZXIgZGlnaXRzIDogIiArIG1pbkludERpZyk7CisgICAgICAgICAgICBlcnJsbigiIG5ldyBwYXR0ZXJuOiAiICsgc2RmLnRvUGF0dGVybigpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJUZXN0IHBhc3NlZCIpOworICAgICAgICAgICAgbG9nbG4oIiBNaW5pbXVtIGludGVnZXIgZGlnaXRzIDogIiArIG1pbkludERpZyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0IGZvcm1hdHMgLTAuMCBhcyArMC4wCisgICAgICogU2VlIGFsc28gb2xkZXIgcmVsYXRlZCBidWcgNDEwNjY1OCwgNDEwNjY2NworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTQ3NzA2KCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoIiMsIyMwLjAjIyIpOworICAgICAgICBkZi5zZXREZWNpbWFsRm9ybWF0U3ltYm9scyhuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLkVOR0xJU0gpKTsKKyAgICAgICAgZG91YmxlIGQxID0gLTAuMDsKKyAgICAgICAgZG91YmxlIGQyID0gLTAuMDAwMTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGYxID0gZGYuZm9ybWF0KGQxLCBuZXcgU3RyaW5nQnVmZmVyKCksIG5ldyBGaWVsZFBvc2l0aW9uKDApKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGYyID0gZGYuZm9ybWF0KGQyLCBuZXcgU3RyaW5nQnVmZmVyKCksIG5ldyBGaWVsZFBvc2l0aW9uKDApKTsKKyAgICAgICAgaWYgKCFmMS50b1N0cmluZygpLmVxdWFscygiLTAuMCIpKSB7CisgICAgICAgICAgICBlcnJsbihkMSArICIgeCBcIiIgKyBkZi50b1BhdHRlcm4oKSArICJcIiBpcyBmb3JtYXR0ZWQgYXMgXCIiICsgZjEgKyAnIicpOworICAgICAgICB9CisgICAgICAgIGlmICghZjIudG9TdHJpbmcoKS5lcXVhbHMoIi0wLjAiKSkgeworICAgICAgICAgICAgZXJybG4oZDIgKyAiIHggXCIiICsgZGYudG9QYXR0ZXJuKCkgKyAiXCIgaXMgZm9ybWF0dGVkIGFzIFwiIiArIGYyICsgJyInKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE51bWJlckZvcm1hdCBjYW5ub3QgZm9ybWF0IERvdWJsZS5NQVhfVkFMVUUKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE2MjE5OCgpIHsKKyAgICAgICAgZG91YmxlIGRibCA9IERvdWJsZS5NQVhfVkFMVUU7CisgICAgICAgIE51bWJlckZvcm1hdCBmID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgICAgIGYuc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKEludGVnZXIuTUFYX1ZBTFVFKTsKKyAgICAgICAgZi5zZXRNYXhpbXVtSW50ZWdlckRpZ2l0cyhJbnRlZ2VyLk1BWF9WQUxVRSk7CisgICAgICAgIFN0cmluZyBzID0gZi5mb3JtYXQoZGJsKTsKKyAgICAgICAgbG9nbG4oIlRoZSBudW1iZXIgIiArIGRibCArICIgZm9ybWF0dGVkIHRvICIgKyBzKTsKKyAgICAgICAgTnVtYmVyIG4gPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgbiA9IGYucGFyc2Uocyk7CisgICAgICAgIH0gY2F0Y2ggKGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiQ2F1Z2h0IGEgUGFyc2VFeGNlcHRpb246Iik7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKCJUaGUgc3RyaW5nICIgKyBzICsgIiBwYXJzZWQgYXMgIiArIG4pOworICAgICAgICBpZiAobi5kb3VibGVWYWx1ZSgpICE9IGRibCkgeworICAgICAgICAgICAgZXJybG4oIlJvdW5kIHRyaXAgZmFpbHVyZSIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTnVtYmVyRm9ybWF0IGRvZXMgbm90IHBhcnNlIG5lZ2F0aXZlIHplcm8uCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNjI4NTIoKSB0aHJvd3MgUGFyc2VFeGNlcHRpb24geworICAgICAgICBmb3IgKGludCBpPTA7IGk8MjsgKytpKSB7CisgICAgICAgICAgICBOdW1iZXJGb3JtYXQgZiA9IChpID09IDApID8gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCkKKyAgICAgICAgICAgICAgICA6IE51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UoKTsKKyAgICAgICAgICAgIGRvdWJsZSBkID0gLTAuMDsKKyAgICAgICAgICAgIFN0cmluZyBzID0gZi5mb3JtYXQoZCk7CisgICAgICAgICAgICBkb3VibGUgZSA9IGYucGFyc2UocykuZG91YmxlVmFsdWUoKTsKKyAgICAgICAgICAgIGxvZ2xuKCIiICsKKyAgICAgICAgICAgICAgICAgIGQgKyAiIC0+ICIgKworICAgICAgICAgICAgICAgICAgJyInICsgcyArICciJyArICIgLT4gIiArCisgICAgICAgICAgICAgIGUpOworICAgICAgICAgICAgaWYgKGUgIT0gMC4wIHx8IDEuMC9lID4gMC4wKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIkZhaWxlZCB0byBwYXJzZSBuZWdhdGl2ZSB6ZXJvIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBOdW1iZXJGb3JtYXQgdHJ1bmNhdGVzIGRhdGEKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE2NzQ5NCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBOdW1iZXJGb3JtYXQgZm10ID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIAorICAgICAgICBkb3VibGUgYSA9IERvdWJsZS5NQVhfVkFMVUU7CisgICAgICAgIFN0cmluZyBzID0gZm10LmZvcm1hdChhKTsKKyAgICAgICAgZG91YmxlIGIgPSBmbXQucGFyc2UocykuZG91YmxlVmFsdWUoKTsKKyAgICAgICAgYm9vbGVhbiBtYXRjaCA9IGEgPT0gYjsKKyAgICAgICAgaWYgKG1hdGNoKSB7CisgICAgICAgICAgICBsb2dsbigiIiArIGEgKyAiIC0+IFwiIiArIHMgKyAiXCIgLT4gIiArIGIgKyAiIG9rIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiIiArIGEgKyAiIC0+IFwiIiArIHMgKyAiXCIgLT4gIiArIGIgKyAiIEZBSUwiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFdlIGRvbid0IHRlc3QgRG91YmxlLk1JTl9WQUxVRSBiZWNhdXNlIHRoZSBsb2NhbGUgZGF0YSBmb3IgdGhlIFVTCisgICAgICAgIC8vIGN1cnJlbnRseSBkb2Vzbid0IHNwZWNpZnkgZW5vdWdoIGRpZ2l0cyB0byBkaXNwbGF5IERvdWJsZS5NSU5fVkFMVUUuCisgICAgICAgIC8vIFRoaXMgaXMgY29ycmVjdCBmb3Igbm93OyBob3dldmVyLCB3ZSBsZWF2ZSB0aGlzIGhlcmUgYXMgYSByZW1pbmRlcgorICAgICAgICAvLyBpbiBjYXNlIHdlIHdhbnQgdG8gYWRkcmVzcyB0aGlzIGxhdGVyLgorICAgICAgICBpZiAoZmFsc2UpIHsKKyAgICAgICAgICAgIGEgPSBEb3VibGUuTUlOX1ZBTFVFOworICAgICAgICAgICAgcyA9IGZtdC5mb3JtYXQoYSk7CisgICAgICAgICAgICBiID0gZm10LnBhcnNlKHMpLmRvdWJsZVZhbHVlKCk7CisgICAgICAgICAgICBtYXRjaCA9IGEgPT0gYjsKKyAgICAgICAgICAgIGlmIChtYXRjaCkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCIiICsgYSArICIgLT4gXCIiICsgcyArICJcIiAtPiAiICsgYiArICIgb2siKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIiIgKyBhICsgIiAtPiBcIiIgKyBzICsgIlwiIC0+ICIgKyBiICsgIiBGQUlMIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0LnBhcnNlKCkgZmFpbHMgd2hlbiBQYXJzZUludGVnZXJPbmx5IHNldCB0byB0cnVlCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNzA3OTgoKSB7CisgICAgICAgIExvY2FsZSBzYXZlZExvY2FsZSA9IExvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KExvY2FsZS5VUyk7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgpOworICAgICAgICBkZi5zZXRQYXJzZUludGVnZXJPbmx5KHRydWUpOworICAgICAgICBOdW1iZXIgbiA9IGRmLnBhcnNlKCItMC4wIiwgbmV3IFBhcnNlUG9zaXRpb24oMCkpOworICAgICAgICBpZiAoIShuIGluc3RhbmNlb2YgRG91YmxlKQorICAgICAgICAgICAgfHwgbi5pbnRWYWx1ZSgpICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBwYXJzZShcIi0wLjBcIikgcmV0dXJucyAiICsKKyAgICAgICAgICAgICAgICAgIG4gKyAiICgiICsgbi5nZXRDbGFzcygpLmdldE5hbWUoKSArICcpJyk7CisgICAgICAgIH0KKyAgICAgICAgTG9jYWxlLnNldERlZmF1bHQoc2F2ZWRMb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIHRvUGF0dGVybiBvbmx5IHB1dHMgdGhlIGZpcnN0IGdyb3VwaW5nIHNlcGFyYXRvciBpbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE3NjExNCgpIHsKKyAgICAgICAgU3RyaW5nW10gREFUQSA9IHsKKyAgICAgICAgICAgICIwMCIsICIjMDAiLAorICAgICAgICAgICAgIjAwMCIsICIjMDAwIiwgLy8gTm8gZ3JvdXBpbmcKKyAgICAgICAgICAgICIjMDAwIiwgIiMwMDAiLCAvLyBObyBncm91cGluZworICAgICAgICAgICAgIiMsIyMwIiwgIiMsIyMwIiwKKyAgICAgICAgICAgICIjLDAwMCIsICIjLDAwMCIsCisgICAgICAgICAgICAiMCwwMDAiLCAiIzAsMDAwIiwKKyAgICAgICAgICAgICIwMCwwMDAiLCAiIzAwLDAwMCIsCisgICAgICAgICAgICAiMDAwLDAwMCIsICIjLDAwMCwwMDAiLAorICAgICAgICAgICAgIjAsMDAwLDAwMCwwMDAsMDAwLjAwMDAiLCAiIzAsMDAwLDAwMCwwMDAsMDAwLjAwMDAiLCAvLyBSZXBvcnRlZAorICAgICAgICB9OworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTIpIHsKKyAgICAgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdChEQVRBW2ldKTsKKyAgICAgICAgICAgIFN0cmluZyBzID0gZGYudG9QYXR0ZXJuKCk7CisgICAgICAgICAgICBpZiAoIXMuZXF1YWxzKERBVEFbaSsxXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIERBVEFbaV0gKyAiIC0+ICIgKyBzICsgIiwgd2FudCAiICsgREFUQVtpKzFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQgaXMgaW5jb3JyZWN0bHkgcm91bmRpbmcgbnVtYmVycyBsaWtlIDEuMjUwMSB0byAxLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE3OTgxOCgpIHsKKyAgICAgICAgU3RyaW5nIERBVEFbXSA9IHsKKyAgICAgICAgICAgIC8vIElucHV0ICBQYXR0ZXJuICBFeHBlY3RlZCBvdXRwdXQKKyAgICAgICAgICAgICIxLjI1MTEiLCAiIy4jIiwgICAiMS4zIiwKKyAgICAgICAgICAgICIxLjI1MDEiLCAiIy4jIiwgICAiMS4zIiwKKyAgICAgICAgICAgICIwLjk5OTkiLCAiIyIsICAgICAiMSIsCisgICAgICAgIH07CisgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQoIiMiLAorICAgICAgICAgICAgICAgIG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0zKSB7CisgICAgICAgICAgICBkb3VibGUgaW4gPSBEb3VibGUudmFsdWVPZihEQVRBW2ldKS5kb3VibGVWYWx1ZSgpOworICAgICAgICAgICAgU3RyaW5nIHBhdCA9IERBVEFbaSsxXTsKKyAgICAgICAgICAgIFN0cmluZyBleHAgPSBEQVRBW2krMl07CisgICAgICAgICAgICBmbXQuYXBwbHlQYXR0ZXJuKHBhdCk7CisgICAgICAgICAgICBTdHJpbmcgb3V0ID0gZm10LmZvcm1hdChpbik7CisgICAgICAgICAgICBpZiAob3V0LmVxdWFscyhleHApKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgaW4gKyAiIHggIiArIHBhdCArICIgPSAiICsgb3V0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBpbiArICIgeCAgIiArIHBhdCArICIgPSAiICsgb3V0ICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCAiICsgZXhwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTg1NzYxKCkgdGhyb3dzIElPRXhjZXB0aW9uLCBDbGFzc05vdEZvdW5kRXhjZXB0aW9uIHsKKyAgICAgICAgQnl0ZUFycmF5T3V0cHV0U3RyZWFtIGJhb3MgPSBuZXcgQnl0ZUFycmF5T3V0cHV0U3RyZWFtKCk7CisgICAgICAgIE9iamVjdE91dHB1dFN0cmVhbSBvb3MgPSBuZXcgT2JqZWN0T3V0cHV0U3RyZWFtKGJhb3MpOworICAgICAgICAKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisKKwkvLyBTZXQgc3BlY2lhbCB2YWx1ZXMgd2UgYXJlIGdvaW5nIHRvIHNlYXJjaCBmb3IgaW4gdGhlIG91dHB1dCBieXRlIHN0cmVhbQorCS8vIFRoZXNlIGFyZSBhbGwgbGVnYWwgdmFsdWVzLgorICAgICAgICBuZi5zZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygweDExMSk7IC8vIEtlZXAgdW5kZXIgMzA5CisgICAgICAgIG5mLnNldE1heGltdW1JbnRlZ2VyRGlnaXRzKDB4MTEyKTsgLy8gS2VlcCB1bmRlciAzMDkKKyAgICAgICAgbmYuc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKDB4MTEzKTsgLy8gS2VlcCB1bmRlciAzNDAKKyAgICAgICAgbmYuc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKDB4MTE0KTsgLy8gS2VlcCB1bmRlciAzNDAKKyAgICAgICAgCisgICAgICAgIG9vcy53cml0ZU9iamVjdChuZik7CisgICAgICAgIG9vcy5mbHVzaCgpOworICAgICAgICBiYW9zLmNsb3NlKCk7CisgICAgICAgIAorICAgICAgICBieXRlW10gYnl0ZXMgPSBiYW9zLnRvQnl0ZUFycmF5KCk7CisKKwkvLyBTY2FuIGZvciBsb2NhdGlvbnMgb2YgbWluL21heCBpbnQvZnJhY3QgdmFsdWVzIGluIHRoZSBieXRlIGFycmF5LgorCS8vIEF0IHRoZSBtb21lbnQgKElDVTRKIDIuMSksIHRoZXJlIGlzIG9ubHkgb25lIGluc3RhbmNlIG9mIGVhY2ggdGFyZ2V0IHBhaXIKKyAgICAgICAgLy8gaW4gdGhlIGJ5dGUgc3RyZWFtLCBzbyBhc3N1bWUgZmlyc3QgbWF0Y2ggaXMgaXQuICBOb3RlIHRoaXMgaXMgbm90IGVudGlyZWx5CisJLy8gZmFpbHNhZmUsIGFuZCBuZWVkcyB0byBiZSBjaGVja2VkIGlmIHdlIGNoYW5nZSB0aGUgcGFja2FnZSBvciBzdHJ1Y3R1cmUgb2YKKwkvLyB0aGlzIGNsYXNzLgorCS8vIEN1cnJlbnQgcG9zaXRpb25zIGFyZSA4OTAsIDg4MCwgODg2LCA4NzYKKwlpbnRbXSBvZmZzZXRzID0gbmV3IGludFs0XTsKKwlmb3IgKGludCBpID0gMDsgaSA8IGJ5dGVzLmxlbmd0aCAtIDE7ICsraSkgeworCSAgICBpZiAoYnl0ZXNbaV0gPT0gMHgwMSkgeyAvLyBoaWdoIGJ5dGUKKwkJZm9yIChpbnQgaiA9IDA7IGogPCBvZmZzZXRzLmxlbmd0aDsgKytqKSB7CisJCSAgICBpZiAoKG9mZnNldHNbal0gPT0gMCkgJiYgKGJ5dGVzW2krMV0gPT0gKDB4MTEgKyBqKSkpIHsgLy8gbG93IGJ5dGUKKwkJCW9mZnNldHNbal0gPSBpOworCQkJYnJlYWs7CisJCSAgICB9CisJCX0KKwkgICAgfQorCX0KKworICAgICAgICB7CisgICAgICAgICAgICBPYmplY3RJbnB1dFN0cmVhbSBvaXMgPSBuZXcgT2JqZWN0SW5wdXRTdHJlYW0obmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKGJ5dGVzKSk7CisgICAgICAgICAgICBPYmplY3QgbyA9IG9pcy5yZWFkT2JqZWN0KCk7CisgICAgICAgICAgICBvaXMuY2xvc2UoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKCFuZi5lcXVhbHMobykpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogRGF0ZUZvcm1hdCBzZXJpYWxpemF0aW9uL2VxdWFsaXR5IGJ1ZyIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiRGF0ZUZvcm1hdCBzZXJpYWxpemF0aW9uL2VxdWFsaXR5IGlzIE9LQVkuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworCS8vIENoYW5nZSB0aGUgdmFsdWVzIGluIHRoZSBieXRlIHN0cmVhbSBzbyB0aGF0IG1pbiA+IG1heC4KKwkvLyBOdW1iZXJmb3JtYXQgc2hvdWxkIGNhdGNoIHRoaXMgYW5kIHRocm93IGFuIGV4Y2VwdGlvbi4KKwlmb3IgKGludCBpID0gMDsgaSA8IG9mZnNldHMubGVuZ3RoOyArK2kpIHsKKwkgICAgYnl0ZXNbb2Zmc2V0c1tpXV0gPSAoYnl0ZSkoNCAtIGkpOworCX0KKworICAgICAgICB7CisgICAgICAgICAgICBPYmplY3RJbnB1dFN0cmVhbSBvaXMgPSBuZXcgT2JqZWN0SW5wdXRTdHJlYW0obmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKGJ5dGVzKSk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIE51bWJlckZvcm1hdCBmb3JtYXQgPSAoTnVtYmVyRm9ybWF0KSBvaXMucmVhZE9iamVjdCgpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJmb3JtYXQ6ICIgKyBmb3JtYXQuZm9ybWF0KDEyMzQuNTYpKTsgLy9maXggIlRoZSB2YXJpYWJsZSBpcyBuZXZlciB1c2VkIgorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBEZXNlcmlhbGl6ZWQgYm9ndXMgTnVtYmVyRm9ybWF0IHdpdGggbWluWERpZ2l0cyA+IG1heFhEaWdpdHMiKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEludmFsaWRPYmplY3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisJLy8gU2V0IHZhbHVlcyBzbyB0aGV5IGFyZSB0b28gaGlnaCwgYnV0IG1pbiA8PSBtYXgKKwkvLyBGb3JtYXQgc2hvdWxkIHBhc3MgdGhlIG1pbjw9IG1heCB0ZXN0LCBhbmQgRGVjaW1hbEZvcm1hdCBzaG91bGQgcmVzZXQgdG8gY3VycmVudCBtYXhpbXVtCisJLy8gKGZvciBjb21wYXRpYmlsaXR5IHdpdGggdmVyc2lvbnMgc3RyZWFtZWQgb3V0IGJlZm9yZSB0aGUgbWF4aW11bXMgd2VyZSBpbXBvc2VkKS4KKwlmb3IgKGludCBpID0gMDsgaSA8IG9mZnNldHMubGVuZ3RoOyArK2kpIHsKKwkgICAgYnl0ZXNbb2Zmc2V0c1tpXV0gPSA0OworCX0KKworICAgICAgICB7CisgICAgICAgICAgICBPYmplY3RJbnB1dFN0cmVhbSBvaXMgPSBuZXcgT2JqZWN0SW5wdXRTdHJlYW0obmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKGJ5dGVzKSk7CisgICAgICAgICAgICBOdW1iZXJGb3JtYXQgZm9ybWF0ID0gKE51bWJlckZvcm1hdCkgb2lzLnJlYWRPYmplY3QoKTsKKyAgICAgICAgICAgIC8vRm9yIGNvbXBhdGliaWxpdHkgd2l0aCBwcmV2aW91cyB2ZXJzaW9uCisgICAgICAgICAgICBpZiAoKGZvcm1hdC5nZXRNYXhpbXVtSW50ZWdlckRpZ2l0cygpICE9IDMwOSkgCisgICAgICAgICAgICAgICAgfHwgZm9ybWF0LmdldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpICE9IDM0MCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBEZXNlcmlhbGl6ZWQgYm9ndXMgTnVtYmVyRm9ybWF0IHdpdGggdmFsdWVzIG91dCBvZiByYW5nZSwiICsKKwkJCQkJICAiIGludE1pbjogIiArIGZvcm1hdC5nZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpICsKKwkJCQkJICAiIGludE1heDogIiArIGZvcm1hdC5nZXRNYXhpbXVtSW50ZWdlckRpZ2l0cygpICsKKwkJCQkJICAiIGZyYWNNaW46ICIgKyBmb3JtYXQuZ2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKCkgKworCQkJCQkgICIgZnJhY01heDogIiArIGZvcm1hdC5nZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogRGlnaXQgY291bnQgb3V0IG9mIHJhbmdlIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFNvbWUgRGVjaW1hbEZvcm1hdFN5bWJvbHMgY2hhbmdlcyBhcmUgbm90IHBpY2tlZCB1cCBieSBEZWNpbWFsRm9ybWF0LgorICAgICAqIFRoaXMgaW5jbHVkZXMgdGhlIG1pbnVzIHNpZ24sIGN1cnJlbmN5IHN5bWJvbCwgaW50ZXJuYXRpb25hbCBjdXJyZW5jeQorICAgICAqIHN5bWJvbCwgcGVyY2VudCwgYW5kIHBlcm1pbGxlLiAgVGhpcyBpcyBmaWxlZCBhcyBidWdzIDQyMTIwNzIgYW5kCisgICAgICogNDIxMjA3My4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDIxMjA3MigpIHRocm93cyBJT0V4Y2VwdGlvbiwgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiB7CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIHN5bSA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworICAgICAgICBEZWNpbWFsRm9ybWF0IGZtdCA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjIiwgc3ltKTsKKworICAgICAgICBzeW0uc2V0TWludXNTaWduKCdeJyk7CisgICAgICAgIGZtdC5zZXREZWNpbWFsRm9ybWF0U3ltYm9scyhzeW0pOworICAgICAgICBpZiAoIWZtdC5mb3JtYXQoLTEpLmVxdWFscygiXjEiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IC0xIHggKG1pbnVzPV4pIC0+ICIgKyBmbXQuZm9ybWF0KC0xKSArCisgICAgICAgICAgICAgICAgICAiLCBleHAgXjEiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWZtdC5nZXROZWdhdGl2ZVByZWZpeCgpLmVxdWFscygiXiIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogKG1pbnVzPV4pLmdldE5lZ2F0aXZlUHJlZml4IC0+ICIgKworICAgICAgICAgICAgICAgICAgZm10LmdldE5lZ2F0aXZlUHJlZml4KCkgKyAiLCBleHAgXiIpOworICAgICAgICB9CisgICAgICAgIHN5bS5zZXRNaW51c1NpZ24oJy0nKTsKKworICAgICAgICBmbXQuYXBwbHlQYXR0ZXJuKCIjJSIpOworICAgICAgICBzeW0uc2V0UGVyY2VudCgnXicpOworICAgICAgICBmbXQuc2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoc3ltKTsKKyAgICAgICAgaWYgKCFmbXQuZm9ybWF0KDAuMjUpLmVxdWFscygiMjVeIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAwLjI1IHggKHBlcmNlbnQ9XikgLT4gIiArIGZtdC5mb3JtYXQoMC4yNSkgKworICAgICAgICAgICAgICAgICAgIiwgZXhwIDI1XiIpOworICAgICAgICB9CisgICAgICAgIGlmICghZm10LmdldFBvc2l0aXZlU3VmZml4KCkuZXF1YWxzKCJeIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAocGVyY2VudD1eKS5nZXRQb3NpdGl2ZVN1ZmZpeCAtPiAiICsKKyAgICAgICAgICAgICAgICAgIGZtdC5nZXRQb3NpdGl2ZVN1ZmZpeCgpICsgIiwgZXhwIF4iKTsKKyAgICAgICAgfQorICAgICAgICBzeW0uc2V0UGVyY2VudCgnJScpOworICAgICAgICAKKyAgICAgICAgZm10LmFwcGx5UGF0dGVybigiI1x1MjAzMCIpOworICAgICAgICBzeW0uc2V0UGVyTWlsbCgnXicpOworICAgICAgICBmbXQuc2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoc3ltKTsKKyAgICAgICAgaWYgKCFmbXQuZm9ybWF0KDAuMjUpLmVxdWFscygiMjUwXiIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogMC4yNSB4IChwZXJtaWxsPV4pIC0+ICIgKyBmbXQuZm9ybWF0KDAuMjUpICsKKyAgICAgICAgICAgICAgICAgICIsIGV4cCAyNTBeIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFmbXQuZ2V0UG9zaXRpdmVTdWZmaXgoKS5lcXVhbHMoIl4iKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IChwZXJtaWxsPV4pLmdldFBvc2l0aXZlU3VmZml4IC0+ICIgKworICAgICAgICAgICAgICAgICAgZm10LmdldFBvc2l0aXZlU3VmZml4KCkgKyAiLCBleHAgXiIpOworICAgICAgICB9CisgICAgICAgIHN5bS5zZXRQZXJNaWxsKCdcdTIwMzAnKTsKKworICAgICAgICBmbXQuYXBwbHlQYXR0ZXJuKCJcdTAwQTQjLjAwIik7CisgICAgICAgIHN5bS5zZXRDdXJyZW5jeVN5bWJvbCgidXNkIik7CisgICAgICAgIGZtdC5zZXREZWNpbWFsRm9ybWF0U3ltYm9scyhzeW0pOworICAgICAgICBpZiAoIWZtdC5mb3JtYXQoMTIuNSkuZXF1YWxzKCJ1c2QxMi41MCIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogMTIuNSB4IChjdXJyZW5jeT11c2QpIC0+ICIgKyBmbXQuZm9ybWF0KDEyLjUpICsKKyAgICAgICAgICAgICAgICAgICIsIGV4cCB1c2QxMi41MCIpOworICAgICAgICB9CisgICAgICAgIGlmICghZm10LmdldFBvc2l0aXZlUHJlZml4KCkuZXF1YWxzKCJ1c2QiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IChjdXJyZW5jeT11c2QpLmdldFBvc2l0aXZlUHJlZml4IC0+ICIgKworICAgICAgICAgICAgICAgICAgZm10LmdldFBvc2l0aXZlUHJlZml4KCkgKyAiLCBleHAgdXNkIik7CisgICAgICAgIH0KKyAgICAgICAgc3ltLnNldEN1cnJlbmN5U3ltYm9sKCIkIik7CisKKyAgICAgICAgZm10LmFwcGx5UGF0dGVybigiXHUwMEE0XHUwMEE0Iy4wMCIpOworICAgICAgICBzeW0uc2V0SW50ZXJuYXRpb25hbEN1cnJlbmN5U3ltYm9sKCJET0wiKTsKKyAgICAgICAgZm10LnNldERlY2ltYWxGb3JtYXRTeW1ib2xzKHN5bSk7CisgICAgICAgIGlmICghZm10LmZvcm1hdCgxMi41KS5lcXVhbHMoIkRPTDEyLjUwIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAxMi41IHggKGludGxjdXJyZW5jeT1ET0wpIC0+ICIgKyBmbXQuZm9ybWF0KDEyLjUpICsKKyAgICAgICAgICAgICAgICAgICIsIGV4cCBET0wxMi41MCIpOworICAgICAgICB9CisgICAgICAgIGlmICghZm10LmdldFBvc2l0aXZlUHJlZml4KCkuZXF1YWxzKCJET0wiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IChpbnRsY3VycmVuY3k9RE9MKS5nZXRQb3NpdGl2ZVByZWZpeCAtPiAiICsKKyAgICAgICAgICAgICAgICAgIGZtdC5nZXRQb3NpdGl2ZVByZWZpeCgpICsgIiwgZXhwIERPTCIpOworICAgICAgICB9CisgICAgICAgIHN5bS5zZXRJbnRlcm5hdGlvbmFsQ3VycmVuY3lTeW1ib2woIlVTRCIpOworCisJaWYgKFZlcnNpb25JbmZvLklDVV9WRVJTSU9OLmNvbXBhcmVUbyhWZXJzaW9uSW5mby5nZXRJbnN0YW5jZSgyLDQpKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IDApIHsKKyAgICAgICAgICAgIC8vIGJ1ZyBpbiAyLjIgdGhhdCBmYWlscyB0aGlzIHRlc3QKKyAgICAgICAgICAgIC8vIHRvIGJlIGZpeGVkIGluIHRoZSBsYXRlciB2ZXJzaW9ucworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcbiAgICAgICAgVGVzdCBza2lwcGVkIGZvciByZWxlYXNlIDIuMiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBTaW5jZSB0aGUgcGF0dGVybiBsb2dpYyBoYXMgY2hhbmdlZCwgbWFrZSBzdXJlIHRoYXQgcGF0dGVybnMgcm91bmQKKyAgICAgICAgLy8gdHJpcCBwcm9wZXJseS4gIFRlc3Qgc3RyZWFtIGluL291dCBpbnRlZ3JpdHkgdG9vLgorICAgICAgICBMb2NhbGVbXSBhdmFpbCA9IE51bWJlckZvcm1hdC5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxhdmFpbC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgZm9yIChpbnQgaj0wOyBqPDM7ICsraikgeworICAgICAgICAgICAgICAgIE51bWJlckZvcm1hdCBuZjsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGopIHsKKyAgICAgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgICAgIG5mID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKGF2YWlsW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgICAgICBuZiA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKGF2YWlsW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKGF2YWlsW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSAoRGVjaW1hbEZvcm1hdCkgbmY7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gVGVzdCB0b1BhdHRlcm4vYXBwbHlQYXR0ZXJuIHJvdW5kIHRyaXAKKyAgICAgICAgICAgICAgICBTdHJpbmcgcGF0ID0gZGYudG9QYXR0ZXJuKCk7CisgICAgICAgICAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltYiA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhhdmFpbFtpXSk7CisgICAgICAgICAgICAgICAgRGVjaW1hbEZvcm1hdCBmMiA9IG5ldyBEZWNpbWFsRm9ybWF0KHBhdCwgc3ltYik7CisgICAgICAgICAgICAgICAgaWYgKCFkZi5lcXVhbHMoZjIpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgYXZhaWxbaV0gKyAiIC0+IFwiIiArIHBhdCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcIiAtPiBcIiIgKyBmMi50b1BhdHRlcm4oKSArICciJyk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gVGVzdCB0b0xvY2FsaXplZFBhdHRlcm4vYXBwbHlMb2NhbGl6ZWRQYXR0ZXJuIHJvdW5kIHRyaXAKKyAgICAgICAgICAgICAgICBwYXQgPSBkZi50b0xvY2FsaXplZFBhdHRlcm4oKTsKKyAgICAgICAgICAgICAgICBmMi5hcHBseUxvY2FsaXplZFBhdHRlcm4ocGF0KTsKKyAgICAgICAgICAgICAgICBpZiAoIWRmLmVxdWFscyhmMikpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBhdmFpbFtpXSArICIgLT4gbG9jYWxpemVkIFwiIiArIHBhdCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcIiAtPiBcIiIgKyBmMi50b1BhdHRlcm4oKSArICciJyk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gVGVzdCB3cml0ZU9iamVjdC9yZWFkT2JqZWN0IHJvdW5kIHRyaXAKKyAgICAgICAgICAgICAgICBCeXRlQXJyYXlPdXRwdXRTdHJlYW0gYmFvcyA9IG5ldyBCeXRlQXJyYXlPdXRwdXRTdHJlYW0oKTsKKyAgICAgICAgICAgICAgICBPYmplY3RPdXRwdXRTdHJlYW0gb29zID0gbmV3IE9iamVjdE91dHB1dFN0cmVhbShiYW9zKTsKKyAgICAgICAgICAgICAgICBvb3Mud3JpdGVPYmplY3QoZGYpOworICAgICAgICAgICAgICAgIG9vcy5mbHVzaCgpOworICAgICAgICAgICAgICAgIGJhb3MuY2xvc2UoKTsKKyAgICAgICAgICAgICAgICBieXRlW10gYnl0ZXMgPSBiYW9zLnRvQnl0ZUFycmF5KCk7CisgICAgICAgICAgICAgICAgT2JqZWN0SW5wdXRTdHJlYW0gb2lzID0KKyAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdElucHV0U3RyZWFtKG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbShieXRlcykpOworICAgICAgICAgICAgICAgIGYyID0gKERlY2ltYWxGb3JtYXQpIG9pcy5yZWFkT2JqZWN0KCk7CisgICAgICAgICAgICAgICAgaWYgKCFkZi5lcXVhbHMoZjIpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBTdHJlYW0gaW4vb3V0ICIgKyBhdmFpbFtpXSArICIgLT4gXCIiICsgcGF0ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlwiIC0+ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAoZjIgIT0gbnVsbCA/ICgiXCIiK2YyLnRvUGF0dGVybigpKyciJykgOiAibnVsbCIpKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQucGFyc2UoKSBmYWlscyBmb3IgbXVsaXBsaWVycyAyXm4uCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQyMTY3NDIoKSB0aHJvd3MgUGFyc2VFeGNlcHRpb24geworICAgICAgICBEZWNpbWFsRm9ybWF0IGZtdCA9IChEZWNpbWFsRm9ybWF0KSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgbG9uZ1tdIERBVEEgPSB7IExvbmcuTUlOX1ZBTFVFLCBMb25nLk1BWF9WQUxVRSwgLTEwMDAwMDAwMEwsIDEwMDAwMDAwMEx9OworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIHN0ciA9IExvbmcudG9TdHJpbmcoREFUQVtpXSk7CisgICAgICAgICAgICBmb3IgKGludCBtID0gMTsgbSA8PSAxMDA7IG0rKykgeworICAgICAgICAgICAgICAgIGZtdC5zZXRNdWx0aXBsaWVyKG0pOworICAgICAgICAgICAgICAgIGxvbmcgbiA9ICgoTnVtYmVyKSBmbXQucGFyc2Uoc3RyKSkubG9uZ1ZhbHVlKCk7CisgICAgICAgICAgICAgICAgaWYgKG4gPiAwICE9IERBVEFbaV0gPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJcIiIgKyBzdHIgKyAiXCIgcGFyc2UoeCAiICsgZm10LmdldE11bHRpcGxpZXIoKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIpID0+ICIgKyBuKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0IGZvcm1hdHMgMS4wMDEgdG8gIjEuMDAiIGluc3RlYWQgb2YgIjEiIHdpdGggMiBmcmFjdGlvbgorICAgICAqIGRpZ2l0cy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDIxNzY2MSgpIHsKKyAgICAgICAgT2JqZWN0W10gREFUQSA9IHsKKyAgICAgICAgICAgIG5ldyBEb3VibGUoMC4wMDEpLCAiMCIsCisgICAgICAgICAgICBuZXcgRG91YmxlKDEuMDAxKSwgIjEiLAorICAgICAgICAgICAgbmV3IERvdWJsZSgwLjAwNiksICIwLjAxIiwKKyAgICAgICAgICAgIG5ldyBEb3VibGUoMS4wMDYpLCAiMS4wMSIsCisgICAgICAgIH07CisgICAgICAgIE51bWJlckZvcm1hdCBmbXQgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgZm10LnNldE1heGltdW1GcmFjdGlvbkRpZ2l0cygyKTsgCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MikgeworICAgICAgICAgICAgU3RyaW5nIHMgPSBmbXQuZm9ybWF0KCgoRG91YmxlKSBEQVRBW2ldKS5kb3VibGVWYWx1ZSgpKTsKKyAgICAgICAgICAgIGlmICghcy5lcXVhbHMoREFUQVtpKzFdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBHb3QgIiArIHMgKyAiLCBleHAgIiArIERBVEFbaSsxXSk7IAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIDQyNDMwMTE6IEZvcm1hdHRpbmcgLjUgcm91bmRzIHRvICIxIiBpbnN0ZWFkIG9mICIwIgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MjQzMDExKCkgeworICAgICAgICBkb3VibGUgREFUQVtdID0gezAuNSwgMS41LCAyLjUsIDMuNSwgNC41fTsKKyAgICAgICAgU3RyaW5nIEVYUEVDVEVEW10gPSB7IjAuIiwgIjIuIiwgIjIuIiwgIjQuIiwgIjQuIn07CisgICAgICAgIAorICAgICAgICBEZWNpbWFsRm9ybWF0IGZvcm1hdCA9IG5ldyBEZWNpbWFsRm9ybWF0KCIwLiIpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IERBVEEubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSBmb3JtYXQuZm9ybWF0KERBVEFbaV0pOworICAgICAgICAgICAgaWYgKHJlc3VsdC5lcXVhbHMoRVhQRUNURURbaV0pKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9LOiBnb3QgIiArIHJlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnb3QgIiArIHJlc3VsdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogNDI0MzEwODogZm9ybWF0KDAuMCkgZ2l2ZXMgIjAuMSIgaWYgcHJlY2VkZWQgYnkgcGFyc2UoIjk5Ljk5IikKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDI0MzEwOCgpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBmID0gbmV3IERlY2ltYWxGb3JtYXQoIiMuIyIpOworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gZi5mb3JtYXQoMC4wKTsKKyAgICAgICAgaWYgKHJlc3VsdC5lcXVhbHMoIjAiKSkgeworICAgICAgICAgICAgbG9nbG4oIk9LOiBnb3QgIiArIHJlc3VsdCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogZ290ICIgKyByZXN1bHQpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBkb3VibGUgZFJlc3VsdCA9IGYucGFyc2UoIjk5Ljk5IikuZG91YmxlVmFsdWUoKTsKKyAgICAgICAgICAgIGlmIChkUmVzdWx0ID09IDk5Ljk5KSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9LOiBnb3QgIiArIGRSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogZ290ICIgKyBkUmVzdWx0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkNhdWdodCBhIFBhcnNlRXhjZXB0aW9uOiIpOworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfSAgICAgICAgICAgIAorICAgICAgICByZXN1bHQgPSBmLmZvcm1hdCgwLjApOworICAgICAgICBpZiAocmVzdWx0LmVxdWFscygiMCIpKSB7CisgICAgICAgICAgICBsb2dsbigiT0s6IGdvdCAiICsgcmVzdWx0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnb3QgIiArIHJlc3VsdCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogNDMzMDM3NzogRGVjaW1hbEZvcm1hdCBlbmdpbmVlcmluZyBub3RhdGlvbiBnaXZlcyBpbmNvcnJlY3QgcmVzdWx0cworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3Q0MzMwMzc3KCkgeworICAgICAgICAvKgorICAgICAgICBkb3VibGVbXSBpbnB1dCA9IHs1MDAwLjAsIDUwMC4wLCA1MC4wLCA1LjAsIDAuNSwgMC4wNSwgMC4wMDUsIDAuMDAwNSwKKyAgICAgICAgICAgICAgIDUwNTAuMCwgNTA1LjAsIDUwLjUsIDUuMDUsIDAuNTA1LCAwLjA1MDUsIDAuMDA1MDUsIDAuMDAwNTA1fTsKKyAgICAgICAgU3RyaW5nW10gcGF0dGVybiA9IHsiMDAwLiNFMCIsICIjIzAuI0UwIiwgIiMwMC4jRTAifTsKKyAgICAgICAgU3RyaW5nW11bXSBleHBlY3RlZCA9IHsKKyAgICAgICAgICAgIC8vIGl0J3MgcXVlc3Rpb25hYmxlIHdoZXRoZXIgIiMwMC4jRTAiIHNob3VsZCByZXN1bHQgaW4gcG9zdC1kZWNpbWFsCisgICAgICAgICAgICAvLyB6ZXJvZXMsIGkuZS4sIHdoZXRoZXIgIjUuMEUzIiwgIjUuMEUwIiwgIjUuMEUtMyIgYXJlIHJlYWxseSBnb29kCisgICAgICAgICAgICB7IjUwMEUxIiwgIjVFMyIsICI1LjBFMyJ9LAorICAgICAgICAgICAgeyI1MDBFMCIsICI1MDBFMCIsICI1MDBFMCJ9LAorICAgICAgICAgICAgeyI1MDBFLTEiLCAiNTBFMCIsICI1MEUwIn0sCisgICAgICAgICAgICB7IjUwMEUtMiIsICI1RTAiLCAiNS4wRTAifSwKKyAgICAgICAgICAgIHsiNTAwRS0zIiwgIjUwMEUtMyIsICI1MDBFLTMifSwKKyAgICAgICAgICAgIHsiNTAwRS00IiwgIjUwRS0zIiwgIjUwRS0zIn0sCisgICAgICAgICAgICB7IjUwMEUtNSIsICI1RS0zIiwgIjUuMEUtMyJ9LAorICAgICAgICAgICAgeyI1MDBFLTYiLCAiNTAwRS02IiwgIjUwMEUtNiJ9LAorICAgICAgICAgICAgeyI1MDVFMSIsICI1LjA1RTMiLCAiNS4wNUUzIn0sCisgICAgICAgICAgICB7IjUwNUUwIiwgIjUwNUUwIiwgIjUwNUUwIn0sCisgICAgICAgICAgICB7IjUwNUUtMSIsICI1MC41RTAiLCAiNTAuNUUwIn0sCisgICAgICAgICAgICB7IjUwNUUtMiIsICI1LjA1RTAiLCAiNS4wNUUwIn0sCisgICAgICAgICAgICB7IjUwNUUtMyIsICI1MDVFLTMiLCAiNTA1RS0zIn0sCisgICAgICAgICAgICB7IjUwNUUtNCIsICI1MC41RS0zIiwgIjUwLjVFLTMifSwKKyAgICAgICAgICAgIHsiNTA1RS01IiwgIjUuMDVFLTMiLCAiNS4wNUUtMyJ9LAorICAgICAgICAgICAgeyI1MDVFLTYiLCAiNTA1RS02IiwgIjUwNUUtNiJ9CisgICAgICAgIH07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaW5wdXQubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgcGF0dGVybi5sZW5ndGg7IGorKykgeworICAgICAgICAgICAgICAgIERlY2ltYWxGb3JtYXQgZm9ybWF0ID0gbmV3IERlY2ltYWxGb3JtYXQocGF0dGVybltqXSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IGZvcm1hdC5mb3JtYXQoaW5wdXRbaV0pOworICAgICAgICAgICAgICAgIGlmICghcmVzdWx0LmVxdWFscyhleHBlY3RlZFtpXVtqXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGlucHV0OiAiICsgaW5wdXRbaV0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsIHBhdHRlcm46ICIgKyBwYXR0ZXJuW2pdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZDogIiArIGV4cGVjdGVkW2ldW2pdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLCBnb3Q6ICIgKyByZXN1bHQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAqLworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA0MjMzODQwOiBOdW1iZXJGb3JtYXQgZG9lcyBub3Qgcm91bmQgY29ycmVjdGx5CisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdDQyMzM4NDAoKSB7CisgICAgICAgIGZsb2F0IGYgPSAwLjAwOTlmOworCisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIwLiMjIiwgbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUykpOworCW5mLnNldE1pbmltdW1GcmFjdGlvbkRpZ2l0cygyKTsKKwkKKwlTdHJpbmcgcmVzdWx0ID0gbmYuZm9ybWF0KGYpOworCQorCWlmICghcmVzdWx0LmVxdWFscygiMC4wMSIpKSB7CisJICAgIGVycmxuKCJGQUlMOiBpbnB1dDogIiArIGYgKyAiLCBleHBlY3RlZDogMC4wMSwgZ290OiAiICsgcmVzdWx0KTsKKwl9CisgICAgfQorfQorCitjbGFzcyBteWZvcm1hdCBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZQoreworICAgIERhdGVGb3JtYXQgX2RhdGVGb3JtYXQgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZSgpOworCisgICAgcHVibGljIFN0cmluZyBOb3coKQorICAgIHsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsZW5kYXIgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgRGF0ZSB0ID0gY2FsZW5kYXIuZ2V0VGltZSgpOworICAgICAgICBTdHJpbmcgbm93U3RyID0gX2RhdGVGb3JtYXQuZm9ybWF0KHQpOworICAgICAgICByZXR1cm4gbm93U3RyOworICAgIH0KK30KKworY2xhc3MgTXlOdW1iZXJGb3JtYXRUZXN0IGV4dGVuZHMgTnVtYmVyRm9ybWF0IHsKKyAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIGZvcm1hdChkb3VibGUgbnVtYmVyLCBTdHJpbmdCdWZmZXIgdG9BcHBlbmRUbywgRmllbGRQb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgIH0KKyAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIGZvcm1hdChsb25nIG51bWJlcixTdHJpbmdCdWZmZXIgdG9BcHBlbmRUbywgRmllbGRQb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgIH0KKyAgICBwdWJsaWMgTnVtYmVyIHBhcnNlKFN0cmluZyB0ZXh0LCBQYXJzZVBvc2l0aW9uIHBhcnNlUG9zaXRpb24pIHsKKyAgICAgICAgcmV0dXJuIG5ldyBJbnRlZ2VyKDApOworICAgIH0KKyAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIGZvcm1hdChCaWdEZWNpbWFsIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sIEZpZWxkUG9zaXRpb24gcG9zKSB7CisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICB9CisgICAgcHVibGljIFN0cmluZ0J1ZmZlciBmb3JtYXQoQmlnSW50ZWdlciBudW1iZXIsIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLCBGaWVsZFBvc2l0aW9uIHBvcykgeworICAgICAgICByZXR1cm4gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgfQorICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBudW1iZXIsIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLCBGaWVsZFBvc2l0aW9uIHBvcykgeworICAgICAgICByZXR1cm4gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L1JibmZSb3VuZFRyaXBUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L1JibmZSb3VuZFRyaXBUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmRlNzRjNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvUmJuZlJvdW5kVHJpcFRlc3QuamF2YQpAQCAtMCwwICsxLDIyMCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9SYm5mUm91bmRUcmlwVGVzdC5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzIyIDAzOjQzOjMyICQgCisgKiAkUmV2aXNpb246IDEuNCAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0OworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SdWxlQmFzZWROdW1iZXJGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudGV4dC5OdW1iZXJGb3JtYXQ7CisKK3B1YmxpYyBjbGFzcyBSYm5mUm91bmRUcmlwVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICAvKioKKyAgICAgKiBQdXRzIGEgY29weXJpZ2h0IGluIHRoZSAuY2xhc3MgZmlsZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHROb3RpY2UKKyAgICAgICAgPSAiQ29weXJpZ2h0IFx1MDBhOTE5OTctMTk5OCBJQk0gQ29ycC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgUmJuZlJvdW5kVHJpcFRlc3QgdGVzdCA9IG5ldyBSYm5mUm91bmRUcmlwVGVzdCgpOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB0ZXN0LnJ1bihhcmdzKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoVGhyb3dhYmxlIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRW50aXJlIHRlc3QgZmFpbGVkIGJlY2F1c2Ugb2YgZXhjZXB0aW9uOiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm0gYW4gZXhoYXVzdGl2ZSByb3VuZC10cmlwIHRlc3Qgb24gdGhlIEVuZ2xpc2ggc3BlbGxvdXQgcnVsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RW5nbGlzaFNwZWxsb3V0UlQoKSB7CisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChMb2NhbGUuVVMsCisgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQuU1BFTExPVVQpOworCisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIC0xMjM0NTY3OCwgMTIzNDU2NzgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm0gYW4gZXhoYXVzdGl2ZSByb3VuZC10cmlwIHRlc3Qgb24gdGhlIGR1cmF0aW9uLWZvcm1hdHRpbmcgcnVsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RHVyYXRpb25zUlQoKSB7CisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChMb2NhbGUuVVMsCisgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQuRFVSQVRJT04pOworCisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIDAsIDEyMzQ1Njc4KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIGFuIGV4aGF1c3RpdmUgcm91bmQtdHJpcCB0ZXN0IG9uIHRoZSBTcGFuaXNoIHNwZWxsb3V0IHJ1bGVzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFNwYW5pc2hTcGVsbG91dFJUKCkgeworICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyCisgICAgICAgICAgICAgICAgICAgICAgICA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQobmV3IExvY2FsZSgiZXMiLCAiZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgIiIpLCBSdWxlQmFzZWROdW1iZXJGb3JtYXQuU1BFTExPVVQpOworCisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIC0xMjM0NTY3OCwgMTIzNDU2NzgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm0gYW4gZXhoYXVzdGl2ZSByb3VuZC10cmlwIHRlc3Qgb24gdGhlIEZyZW5jaCBzcGVsbG91dCBydWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RGcmVuY2hTcGVsbG91dFJUKCkgeworICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyCisgICAgICAgICAgICAgICAgICAgICAgICA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoTG9jYWxlLkZSQU5DRSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5TUEVMTE9VVCk7CisKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgLTEyMzQ1Njc4LCAxMjM0NTY3OCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGVyZm9ybSBhbiBleGhhdXN0aXZlIHJvdW5kLXRyaXAgdGVzdCBvbiB0aGUgU3dpc3MgRnJlbmNoIHNwZWxsb3V0IHJ1bGVzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFN3aXNzRnJlbmNoU3BlbGxvdXRSVCgpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KG5ldyBMb2NhbGUoImZyIiwgIkNIIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICIiKSwgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKworICAgICAgICBkb1Rlc3QoZm9ybWF0dGVyLCAtMTIzNDU2NzgsIDEyMzQ1Njc4KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIGFuIGV4aGF1c3RpdmUgcm91bmQtdHJpcCB0ZXN0IG9uIHRoZSBJdGFsaWFuIHNwZWxsb3V0IHJ1bGVzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEl0YWxpYW5TcGVsbG91dFJUKCkgeworICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyCisgICAgICAgICAgICAgICAgICAgICAgICA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoTG9jYWxlLklUQUxJQU4sCisgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQuU1BFTExPVVQpOworCisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIC05OTk5OTksIDk5OTk5OSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGVyZm9ybSBhbiBleGhhdXN0aXZlIHJvdW5kLXRyaXAgdGVzdCBvbiB0aGUgR2VybWFuIHNwZWxsb3V0IHJ1bGVzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEdlcm1hblNwZWxsb3V0UlQoKSB7CisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChMb2NhbGUuR0VSTUFOWSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5TUEVMTE9VVCk7CisKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgMCwgMTIzNDU2NzgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm0gYW4gZXhoYXVzdGl2ZSByb3VuZC10cmlwIHRlc3Qgb24gdGhlIFN3ZWRpc2ggc3BlbGxvdXQgcnVsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0U3dlZGlzaFNwZWxsb3V0UlQoKSB7CisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChuZXcgTG9jYWxlKCJzdiIsICJTRSIsCisgICAgICAgICAgICAgICAgICAgICAgICAiIiksIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5TUEVMTE9VVCk7CisKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgMCwgMTIzNDU2NzgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm0gYW4gZXhoYXVzdGl2ZSByb3VuZC10cmlwIHRlc3Qgb24gdGhlIER1dGNoIHNwZWxsb3V0IHJ1bGVzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdER1dGNoU3BlbGxvdXRSVCgpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KG5ldyBMb2NhbGUoIm5sIiwgIk5MIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICIiKSwgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKworICAgICAgICBkb1Rlc3QoZm9ybWF0dGVyLCAtMTIzNDU2NzgsIDEyMzQ1Njc4KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIGFuIGV4aGF1c3RpdmUgcm91bmQtdHJpcCB0ZXN0IG9uIHRoZSBKYXBhbmVzZSBzcGVsbG91dCBydWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RKYXBhbmVzZVNwZWxsb3V0UlQoKSB7CisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChMb2NhbGUuSkFQQU4sCisgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQuU1BFTExPVVQpOworCisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIDAsIDEyMzQ1Njc4KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIGFuIGV4aGF1c3RpdmUgcm91bmQtdHJpcCB0ZXN0IG9uIHRoZSBSdXNzaWFuIHNwZWxsb3V0IHJ1bGVzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFJ1c3NpYW5TcGVsbG91dFJUKCkgeworICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyCisgICAgICAgICAgICAgICAgICAgICAgICA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQobmV3IExvY2FsZSgicnUiLCAiUlUiLAorICAgICAgICAgICAgICAgICAgICAgICAgIiIpLCBSdWxlQmFzZWROdW1iZXJGb3JtYXQuU1BFTExPVVQpOworCisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIDAsIDEyMzQ1Njc4KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIGFuIGV4aGF1c3RpdmUgcm91bmQtdHJpcCB0ZXN0IG9uIHRoZSBHcmVlayBzcGVsbG91dCBydWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RHcmVla1NwZWxsb3V0UlQoKSB7CisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChuZXcgTG9jYWxlKCJlbCIsICJHUiIsCisgICAgICAgICAgICAgICAgICAgICAgICAiIiksIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5TUEVMTE9VVCk7CisKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgMCwgMTIzNDU2NzgpOworICAgIH0KKworICAgIHZvaWQgZG9UZXN0KFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIsICBsb25nIGxvd0xpbWl0LAorICAgICAgICAgICAgICAgICAgICBsb25nIGhpZ2hMaW1pdCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgbG9uZyBjb3VudCA9IDA7CisgICAgICAgICAgICBsb25nIGluY3JlbWVudCA9IDE7CisgICAgICAgICAgICBmb3IgKGxvbmcgaSA9IGxvd0xpbWl0OyBpIDw9IGhpZ2hMaW1pdDsgaSArPSBpbmNyZW1lbnQpIHsKKyAgICAgICAgICAgICAgICBpZiAoY291bnQgJSAxMDAwID09IDApCisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKExvbmcudG9TdHJpbmcoaSkpOworCisgICAgICAgICAgICAgICAgaWYgKE1hdGguYWJzKGkpIDwgNTAwMCkKKyAgICAgICAgICAgICAgICAgICAgaW5jcmVtZW50ID0gMTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChNYXRoLmFicyhpKSA8IDUwMDAwMCkKKyAgICAgICAgICAgICAgICAgICAgaW5jcmVtZW50ID0gMjczNzsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGluY3JlbWVudCA9IDI2NzQzNzsKKworICAgICAgICAgICAgICAgIFN0cmluZyB0ZXh0ID0gZm9ybWF0dGVyLmZvcm1hdChpKTsKKyAgICAgICAgICAgICAgICBsb25nIHJ0ID0gZm9ybWF0dGVyLnBhcnNlKHRleHQpLmxvbmdWYWx1ZSgpOworCisgICAgICAgICAgICAgICAgaWYgKHJ0ICE9IGkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlJvdW5kLXRyaXAgZmFpbGVkOiAiICsgaSArICIgLT4gIiArIHRleHQgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAtPiAiICsgcnQpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICsrY291bnQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChsb3dMaW1pdCA8IDApIHsKKyAgICAgICAgICAgICAgICBkb3VibGUgZCA9IDEuMjM0OworICAgICAgICAgICAgICAgIHdoaWxlIChkIDwgMTAwMCkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGV4dCA9IGZvcm1hdHRlci5mb3JtYXQoZCk7CisgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBydCA9IGZvcm1hdHRlci5wYXJzZSh0ZXh0KS5kb3VibGVWYWx1ZSgpOworCisgICAgICAgICAgICAgICAgICAgIGlmIChydCAhPSBkKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiUm91bmQtdHJpcCBmYWlsZWQ6ICIgKyBkICsgIiAtPiAiICsgdGV4dCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAtPiAiICsgcnQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGQgKj0gMTA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdGNoIChUaHJvd2FibGUgZSkgeworICAgICAgICAgICAgZXJybG4oIlRlc3QgZmFpbGVkIHdpdGggZXhjZXB0aW9uOiAiICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvUmJuZlRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvUmJuZlRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jMDAyNTBiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9SYm5mVGVzdC5qYXZhCkBAIC0wLDAgKzEsNzY4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L1JibmZUZXN0LmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDgvMDIgMjA6NTQ6MzcgJCAKKyAqICRSZXZpc2lvbjogMS4xMyAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0OworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SdWxlQmFzZWROdW1iZXJGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudGV4dC5OdW1iZXJGb3JtYXQ7CisKK3B1YmxpYyBjbGFzcyBSYm5mVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICAvKioKKyAgICAgKiBQdXRzIGEgY29weXJpZ2h0IGluIHRoZSAuY2xhc3MgZmlsZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHROb3RpY2UKKyAgICAgICAgPSAiQ29weXJpZ2h0IFx1MDBhOTE5OTctMTk5OSBJQk0gQ29ycC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgUmJuZlRlc3QgdGVzdCA9IG5ldyBSYm5mVGVzdCgpOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB0ZXN0LnJ1bihhcmdzKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoVGhyb3dhYmxlIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRW50aXJlIHRlc3QgZmFpbGVkIGJlY2F1c2Ugb2YgZXhjZXB0aW9uOiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBTdHJpbmcgZnJhY1J1bGVzID0gCisgICAgICAgICIlbWFpbjpcbiIgKworICAgICAgICAvLyB0aGlzIHJ1bGUgZm9ybWF0cyB0aGUgbnVtYmVyIGlmIGl0J3MgMSBvciBtb3JlLiAgSXQgZm9ybWF0cworICAgICAgICAvLyB0aGUgaW50ZWdyYWwgcGFydCB1c2luZyBhIERlY2ltYWxGb3JtYXQgKCIjLCMjMCIgcHV0cworICAgICAgICAvLyB0aG91c2FuZHMgc2VwYXJhdG9ycyBpbiB0aGUgcmlnaHQgcGxhY2VzKSBhbmQgdGhlIGZyYWN0aW9uYWwKKyAgICAgICAgLy8gcGFydCB1c2luZyAlJWZyYWMuICBJZiB0aGVyZSBpcyBubyBmcmFjdGlvbmFsIHBhcnQsIGl0CisgICAgICAgIC8vIGp1c3Qgc2hvd3MgdGhlIGludGVncmFsIHBhcnQuCisgICAgICAgICIgICAgeC4wOiA8IywjIzA8WyA+JSVmcmFjPl07XG4iICsKKyAgICAgICAgLy8gdGhpcyBydWxlIGZvcm1hdHMgdGhlIG51bWJlciBpZiBpdCdzIGJldHdlZW4gMCBhbmQgMS4gIEl0CisgICAgICAgIC8vIHNob3dzIG9ubHkgdGhlIGZyYWN0aW9uYWwgcGFydCAoMC41IHNob3dzIHVwIGFzICIxLzIsIiBub3QKKyAgICAgICAgLy8gIjAgMS8yIikKKyAgICAgICAgIiAgICAwLng6ID4lJWZyYWM+O1xuIiArCisgICAgICAgIC8vIHRoZSBmcmFjdGlvbiBydWxlIHNldC4gIFRoaXMgd29ya3MgdGhlIHNhbWUgd2F5IGFzIHRoZSBvbmUgaW4gdGhlCisgICAgICAgIC8vIHByZWNlZGluZyBleGFtcGxlOiBXZSBtdWx0aXBseSB0aGUgZnJhY3Rpb25hbCBwYXJ0IG9mIHRoZSBudW1iZXIKKyAgICAgICAgLy8gYmVpbmcgZm9ybWF0dGVkIGJ5IGVhY2ggcnVsZSdzIGJhc2UgdmFsdWUgYW5kIHVzZSB0aGUgcnVsZSB0aGF0CisgICAgICAgIC8vIHByb2R1Y2VzIHRoZSByZXN1bHQgY2xvc2VzdCB0byAwIChvciB0aGUgZmlyc3QgcnVsZSB0aGF0IHByb2R1Y2VzIDApLgorICAgICAgICAvLyBTaW5jZSB3ZSBvbmx5IHByb3ZpZGUgcnVsZXMgZm9yIHRoZSBudW1iZXJzIGZyb20gMiB0byAxMCwgd2Uga25vdworICAgICAgICAvLyB3ZSdsbCBnZXQgYSBmcmFjdGlvbiB3aXRoIGEgZGVub21pbmF0b3IgYmV0d2VlbiAyIGFuZCAxMC4KKyAgICAgICAgLy8gIjwwPCIgY2F1c2VzIHRoZSBudW1lcmF0b3Igb2YgdGhlIGZyYWN0aW9uIHRvIGJlIGZvcm1hdHRlZAorICAgICAgICAvLyB1c2luZyBudW1lcmFscworICAgICAgICAiJSVmcmFjOlxuIiArCisgICAgICAgICIgICAgMjogMS8yO1xuIiArCisgICAgICAgICIgICAgMzogPDA8LzM7XG4iICsKKyAgICAgICAgIiAgICA0OiA8MDwvNDtcbiIgKworICAgICAgICAiICAgIDU6IDwwPC81O1xuIiArCisgICAgICAgICIgICAgNjogPDA8LzY7XG4iICsKKyAgICAgICAgIiAgICA3OiA8MDwvNztcbiIgKworICAgICAgICAiICAgIDg6IDwwPC84O1xuIiArCisgICAgICAgICIgICAgOTogPDA8Lzk7XG4iICsKKyAgICAgICAgIiAgIDEwOiA8MDwvMTA7XG4iOworCisgICAgc3RhdGljIHsKKyAgICAgICAgLy8gbW9uZG8gaGFjaworCWNoYXJbXSBmcmFjUnVsZXNBcnIgPSBmcmFjUnVsZXMudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgaW50IGxlbiA9IGZyYWNSdWxlc0Fyci5sZW5ndGg7CisgICAgICAgIGludCBjaGFuZ2UgPSAyOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbjsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGNoID0gZnJhY1J1bGVzQXJyW2ldOworICAgICAgICAgICAgaWYgKGNoID09ICdcbicpIHsKKyAgICAgICAgICAgICAgICBjaGFuZ2UgPSAyOyAvLyBjaGFuZ2Ugb2sKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoY2ggPT0gJzonKSB7CisgICAgICAgICAgICAgICAgY2hhbmdlID0gMTsgLy8gY2hhbmdlLCBidXQgb25jZSB3ZSBoaXQgYSBub24tc3BhY2UgY2hhciwgZG9uJ3QgY2hhbmdlCisgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09ICcgJykgeworICAgICAgICAgICAgICAgIGlmIChjaGFuZ2UgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBmcmFjUnVsZXNBcnJbaV0gPSAoY2hhcikweDIwMGU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoY2hhbmdlID09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgY2hhbmdlID0gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKwlmcmFjUnVsZXMgPSBuZXcgU3RyaW5nKGZyYWNSdWxlc0Fycik7CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBkdXJhdGlvbkluU2Vjb25kc1J1bGVzID0KKyAgICAgICAgLy8gbWFpbiBydWxlIHNldCBmb3IgZm9ybWF0dGluZyB3aXRoIHdvcmRzCisgICAgICAgICIld2l0aC13b3JkczpcbiIKKyAgICAgICAgLy8gdGFrZSBjYXJlIG9mIHNpbmd1bGFyIGFuZCBwbHVyYWwgZm9ybXMgb2YgInNlY29uZCIKKyAgICAgICAgKyAiICAgIDAgc2Vjb25kczsgMSBzZWNvbmQ7ID0wPSBzZWNvbmRzO1xuIgorICAgICAgICAvLyB1c2UgJSVtaW4gdG8gZm9ybWF0IHZhbHVlcyBncmVhdGVyIHRoYW4gNjAgc2Vjb25kcworICAgICAgICArICIgICAgNjAvNjA6IDwlJW1pbjxbLCA+Pl07XG4iCisgICAgICAgIC8vIHVzZSAlJWhyIHRvIGZvcm1hdCB2YWx1ZXMgZ3JlYXRlciB0aGFuIDMsNjAwIHNlY29uZHMKKyAgICAgICAgLy8gKHRoZSAiPj4+IiBiZWxvdyBjYXVzZXMgdXMgdG8gc2VlIHRoZSBudW1iZXIgb2YgbWludXRlcworICAgICAgICAvLyB3aGVuIHdoZW4gdGhlcmUgYXJlIHplcm8gbWludXRlcykKKyAgICAgICAgKyAiICAgIDM2MDAvNjA6IDwlJWhyPFssID4+Pl07XG4iCisgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgdGFrZXMgY2FyZSBvZiB0aGUgc2luZ3VsYXIgYW5kIHBsdXJhbCBmb3JtcworICAgICAgICAvLyBvZiAibWludXRlIgorICAgICAgICArICIlJW1pbjpcbiIKKyAgICAgICAgKyAiICAgIDAgbWludXRlczsgMSBtaW51dGU7ID0wPSBtaW51dGVzO1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IHRha2VzIGNhcmUgb2YgdGhlIHNpbmd1bGFyIGFuZCBwbHVyYWwgZm9ybXMKKyAgICAgICAgLy8gb2YgImhvdXIiCisgICAgICAgICsgIiUlaHI6XG4iCisgICAgICAgICsgIiAgICAwIGhvdXJzOyAxIGhvdXI7ID0wPSBob3VycztcbiIKKworICAgICAgICAvLyBtYWluIHJ1bGUgc2V0IGZvciBmb3JtYXR0aW5nIGluIG51bWVyYWxzCisgICAgICAgICsgIiVpbi1udW1lcmFsczpcbiIKKyAgICAgICAgLy8gdmFsdWVzIGJlbG93IDYwIHNlY29uZHMgYXJlIHNob3duIHdpdGggInNlYy4iCisgICAgICAgICsgIiAgICA9MD0gc2VjLjtcbiIKKyAgICAgICAgLy8gaGlnaGVyIHZhbHVlcyBhcmUgc2hvd24gd2l0aCBjb2xvbnM6ICUlbWluLXNlYyBpcyB1c2VkIGZvcgorICAgICAgICAvLyB2YWx1ZXMgYmVsb3cgMyw2MDAgc2Vjb25kcy4uLgorICAgICAgICArICIgICAgNjA6ID0lJW1pbi1zZWM9O1xuIgorICAgICAgICAvLyAuLi5hbmQgJSVoci1taW4tc2VjIGlzIHVzZWQgZm9yIHZhbHVlcyBvZiAzLDYwMCBzZWNvbmRzCisgICAgICAgIC8vIGFuZCBhYm92ZQorICAgICAgICArICIgICAgMzYwMDogPSUlaHItbWluLXNlYz07XG4iCisgICAgICAgIC8vIHRoaXMgcnVsZSBjYXVzZXMgdmFsdWVzIG9mIGxlc3MgdGhhbiAxMCBtaW51dGVzIHRvIHNob3cgd2l0aG91dAorICAgICAgICAvLyBhIGxlYWRpbmcgemVybworICAgICAgICArICIlJW1pbi1zZWM6XG4iCisgICAgICAgICsgIiAgICAwOiA6PTAwPTtcbiIKKyAgICAgICAgKyAiICAgIDYwLzYwOiA8MDw+PjtcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCBpcyB1c2VkIGZvciB2YWx1ZXMgb2YgMyw2MDAgb3IgbW9yZS4gIE1pbnV0ZXMgYXJlIGFsd2F5cworICAgICAgICAvLyBzaG93biwgYW5kIGFsd2F5cyBzaG93biB3aXRoIHR3byBkaWdpdHMKKyAgICAgICAgKyAiJSVoci1taW4tc2VjOlxuIgorICAgICAgICArICIgICAgMDogOj0wMD07XG4iCisgICAgICAgICsgIiAgICA2MC82MDogPDAwPD4+O1xuIgorICAgICAgICArICIgICAgMzYwMC82MDogPCMsIyMwPDo+Pj47XG4iCisgICAgICAgIC8vIHRoZSBsZW5pZW50LXBhcnNlIHJ1bGVzIGFsbG93IHNldmVyYWwgZGlmZmVyZW50IGNoYXJhY3RlcnMgdG8gYmUgdXNlZAorICAgICAgICAvLyBhcyBkZWxpbWl0ZXJzIGJldHdlZW4gaG91cnMsIG1pbnV0ZXMsIGFuZCBzZWNvbmRzCisgICAgICAgICsgIiUlbGVuaWVudC1wYXJzZTpcbiIKKyAgICAgICAgKyAiICAgICYgOiA9IC4gPSAnICcgPSAtO1xuIjsKKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb3ZlcmFnZSgpIHsKKyAgICAgICAgLy8gZXh0cmEgY2FsbHMgdG8gYm9vc3QgY292ZXJhZ2UgbnVtYmVycworICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm10MCA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZtdDEgPSAoUnVsZUJhc2VkTnVtYmVyRm9ybWF0KWZtdDAuY2xvbmUoKTsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZtdDIgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KFJ1bGVCYXNlZE51bWJlckZvcm1hdC5TUEVMTE9VVCk7CisgICAgICAgIGlmICghZm10MC5lcXVhbHMoZm10MCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJzZWxmIGVxdWFsaXR5IGZhaWxzIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFmbXQwLmVxdWFscyhmbXQxKSkgeworICAgICAgICAgICAgZXJybG4oImNsb25lIGVxdWFsaXR5IGZhaWxzIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFmbXQwLmVxdWFscyhmbXQyKSkgeworICAgICAgICAgICAgZXJybG4oImR1cGxpY2F0ZSBlcXVhbGl0eSBmYWlscyIpOworICAgICAgICB9CisgICAgICAgIFN0cmluZyBzdHIgPSBmbXQwLnRvU3RyaW5nKCk7CisgICAgICAgIGxvZ2xuKHN0cik7CisKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZtdDMgPSAgbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChkdXJhdGlvbkluU2Vjb25kc1J1bGVzKTsKKworICAgICAgICBpZiAoZm10MC5lcXVhbHMoZm10MykpIHsKKyAgICAgICAgICAgIGVycmxuKCJub25lcXVhbCBmYWlscyIpOworICAgICAgICB9CisgICAgICAgIGlmICghZm10My5lcXVhbHMoZm10MykpIHsKKyAgICAgICAgICAgIGVycmxuKCJzZWxmIGVxdWFsIDIgZmFpbHMiKTsKKyAgICAgICAgfQorICAgICAgICBzdHIgPSBmbXQzLnRvU3RyaW5nKCk7CisgICAgICAgIGxvZ2xuKHN0cik7CisKKyAgICAgICAgU3RyaW5nW10gbmFtZXMgPSBmbXQzLmdldFJ1bGVTZXROYW1lcygpOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmbXQzLnNldERlZmF1bHRSdWxlU2V0KG51bGwpOworICAgICAgICAgICAgZm10My5zZXREZWZhdWx0UnVsZVNldCgiJSVmb28iKTsKKyAgICAgICAgICAgIGVycmxuKCJzZHJmICUlZm9vIGRpZG4ndCBmYWlsIik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIH0KKworICAgICAgICB0cnkgeworICAgICAgICAgICAgZm10My5zZXREZWZhdWx0UnVsZVNldCgiJWJvZ3VzIik7CisgICAgICAgICAgICBlcnJsbigic2RyZiAlYm9ndXMgZGlkbid0IGZhaWwiKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzdHIgPSBmbXQzLmZvcm1hdCgyLjMsIG5hbWVzWzBdKTsKKyAgICAgICAgICAgIGxvZ2xuKHN0cik7CisgICAgICAgICAgICBzdHIgPSBmbXQzLmZvcm1hdCgyLjMsICIlJWZvbyIpOworICAgICAgICAgICAgZXJybG4oImZvcm1hdCBkb3VibGUgJSVmb28gZGlkbid0IGZhaWwiKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzdHIgPSBmbXQzLmZvcm1hdCgxMjNMLCBuYW1lc1swXSk7CisgICAgICAgICAgICBsb2dsbihzdHIpOworICAgICAgICAgICAgc3RyID0gZm10My5mb3JtYXQoMTIzTCwgIiUlZm9vIik7CisgICAgICAgICAgICBlcnJsbigiZm9ybWF0IGRvdWJsZSAlJWZvbyBkaWRuJ3QgZmFpbCIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICB9CisKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZtdDQgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KGZyYWNSdWxlcywgTG9jYWxlLkVOR0xJU0gpOworICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm10NSA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoZnJhY1J1bGVzLCBMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIHN0ciA9IGZtdDQudG9TdHJpbmcoKTsKKyAgICAgICAgbG9nbG4oc3RyKTsKKyAgICAgICAgaWYgKCFmbXQ0LmVxdWFscyhmbXQ1KSkgeworICAgICAgICAgICAgZXJybG4oImR1cGxpY2F0ZSAyIGVxdWFsaXR5IGZhaWxlZCIpOworICAgICAgICB9CisgICAgICAgIHN0ciA9IGZtdDQuZm9ybWF0KDEyM0wpOworICAgICAgICBsb2dsbihzdHIpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgTnVtYmVyIG51bSA9IGZtdDQucGFyc2Uoc3RyKTsKKyAgICAgICAgICAgIGxvZ2xuKG51bS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJwYXJzZSBjYXVnaHQgZXhjZXB0aW9uIik7CisgICAgICAgIH0KKworICAgICAgICBzdHIgPSBmbXQ0LmZvcm1hdCguMDAwMTIzKTsKKyAgICAgICAgbG9nbG4oc3RyKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIE51bWJlciBudW0gPSBmbXQ0LnBhcnNlKHN0cik7CisgICAgICAgICAgICBsb2dsbihudW0udG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigicGFyc2UgY2F1Z2h0IGV4Y2VwdGlvbiIpOworICAgICAgICB9CisKKyAgICAgICAgc3RyID0gZm10NC5mb3JtYXQoNDU2LjAwMDEyMyk7CisgICAgICAgIGxvZ2xuKHN0cik7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBOdW1iZXIgbnVtID0gZm10NC5wYXJzZShzdHIpOworICAgICAgICAgICAgbG9nbG4obnVtLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oInBhcnNlIGNhdWdodCBleGNlcHRpb24iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RVbmRlZmluZWRTcGVsbG91dCgpIHsKKyAgICAgICAgTG9jYWxlIGdyZWVrID0gbmV3IExvY2FsZSgiZWwiLCAiIiwgIiIpOworICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXRbXSBmb3JtYXR0ZXJzID0geworICAgICAgICAgICAgbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChncmVlaywgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKSwKKyAgICAgICAgICAgIG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoZ3JlZWssIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5PUkRJTkFMKSwKKyAgICAgICAgICAgIG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoZ3JlZWssIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5EVVJBVElPTiksCisgICAgICAgIH07CisKKyAgICAgICAgU3RyaW5nW10gZGF0YSA9IHsKKyAgICAgICAgICAgICIwIiwKKyAgICAgICAgICAgICIxIiwKKyAgICAgICAgICAgICIxNSIsCisgICAgICAgICAgICAiMjAiLAorICAgICAgICAgICAgIjIzIiwKKyAgICAgICAgICAgICI3MyIsCisgICAgICAgICAgICAiODgiLAorICAgICAgICAgICAgIjEwMCIsCisgICAgICAgICAgICAiMTA2IiwKKyAgICAgICAgICAgICIxMjciLAorICAgICAgICAgICAgIjIwMCIsCisgICAgICAgICAgICAiNTc5IiwKKyAgICAgICAgICAgICIxLDAwMCIsCisgICAgICAgICAgICAiMiwwMDAiLAorICAgICAgICAgICAgIjMsMDA0IiwKKyAgICAgICAgICAgICI0LDU2NyIsCisgICAgICAgICAgICAiMTUsOTQzIiwKKyAgICAgICAgICAgICIxMDUsMDAwIiwKKyAgICAgICAgICAgICIyLDM0NSw2NzgiLAorICAgICAgICAgICAgIi0zNiIsCisgICAgICAgICAgICAiLTM2LjkxMjE1IiwKKyAgICAgICAgICAgICIyMzQuNTY3ODkiCisgICAgICAgIH07CisKKyAgICAgICAgTnVtYmVyRm9ybWF0IGRlY0Zvcm1hdCA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGZvcm1hdHRlcnMubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgIGNvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0IGZvcm1hdHRlciA9IGZvcm1hdHRlcnNbal07CisgICAgICAgICAgICBsb2dsbigiZm9ybWF0dGVyWyIgKyBqICsgIl0iKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSBmb3JtYXR0ZXIuZm9ybWF0KGRlY0Zvcm1hdC5wYXJzZShkYXRhW2ldKSk7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJbIiArIGkgKyAiXSAiICsgZGF0YVtpXSArICIgPT0+ICIgKyByZXN1bHQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oImZvcm1hdHRlclsiICsgaiArICJdLCBkYXRhWyIgKyBpICsgIl0gIiArIGRhdGFbaV0gKyAiIHRocmV3IGV4Y2VwdGlvbiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm0gYSBzaW1wbGUgc3BvdCBjaGVjayBvbiB0aGUgRW5nbGlzaCBzcGVsbG91dCBydWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RFbmdsaXNoU3BlbGxvdXQoKSB7CisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIKKyAgICAgICAgICAgID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChMb2NhbGUuVVMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKyAgICAgICAgU3RyaW5nW11bXSB0ZXN0RGF0YSA9IHsKKyAgICAgICAgICAgIHsgIjEiLCAib25lIiB9LAorICAgICAgICAgICAgeyAiMTUiLCAiZmlmdGVlbiIgfSwKKyAgICAgICAgICAgIHsgIjIwIiwgInR3ZW50eSIgfSwKKyAgICAgICAgICAgIHsgIjIzIiwgInR3ZW50eS10aHJlZSIgfSwKKyAgICAgICAgICAgIHsgIjczIiwgInNldmVudHktdGhyZWUiIH0sCisgICAgICAgICAgICB7ICI4OCIsICJlaWdodHktZWlnaHQiIH0sCisgICAgICAgICAgICB7ICIxMDAiLCAib25lIGh1bmRyZWQiIH0sCisgICAgICAgICAgICB7ICIxMDYiLCAib25lIGh1bmRyZWQgYW5kIHNpeCIgfSwKKyAgICAgICAgICAgIHsgIjEyNyIsICJvbmUgaHVuZHJlZCBhbmQgdHdlbnR5LXNldmVuIiB9LAorICAgICAgICAgICAgeyAiMjAwIiwgInR3byBodW5kcmVkIiB9LAorICAgICAgICAgICAgeyAiNTc5IiwgImZpdmUgaHVuZHJlZCBhbmQgc2V2ZW50eS1uaW5lIiB9LAorICAgICAgICAgICAgeyAiMSwwMDAiLCAib25lIHRob3VzYW5kIiB9LAorICAgICAgICAgICAgeyAiMiwwMDAiLCAidHdvIHRob3VzYW5kIiB9LAorICAgICAgICAgICAgeyAiMywwMDQiLCAidGhyZWUgdGhvdXNhbmQgYW5kIGZvdXIiIH0sCisgICAgICAgICAgICB7ICI0LDU2NyIsICJmb3VyIHRob3VzYW5kIGZpdmUgaHVuZHJlZCBhbmQgc2l4dHktc2V2ZW4iIH0sCisgICAgICAgICAgICB7ICIxNSw5NDMiLCAiZmlmdGVlbiB0aG91c2FuZCBuaW5lIGh1bmRyZWQgYW5kIGZvcnR5LXRocmVlIiB9LAorICAgICAgICAgICAgeyAiMiwzNDUsNjc4IiwgInR3byBtaWxsaW9uLCB0aHJlZSBodW5kcmVkIGFuZCBmb3J0eS1maXZlICIKKyAgICAgICAgICAgICAgKyAidGhvdXNhbmQsIHNpeCBodW5kcmVkIGFuZCBzZXZlbnR5LWVpZ2h0IiB9LAorICAgICAgICAgICAgeyAiLTM2IiwgIm1pbnVzIHRoaXJ0eS1zaXgiIH0sCisgICAgICAgICAgICB7ICIyMzQuNTY3IiwgInR3byBodW5kcmVkIGFuZCB0aGlydHktZm91ciBwb2ludCBmaXZlIHNpeCBzZXZlbiIgfQorICAgICAgICB9OworCisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIHRlc3REYXRhLCB0cnVlKTsKKworICAgICAgICBmb3JtYXR0ZXIuc2V0TGVuaWVudFBhcnNlTW9kZSh0cnVlKTsKKyAgICAgICAgU3RyaW5nW11bXSBscFRlc3REYXRhID0geworICAgICAgICAgICAgeyAiRk91cmh1bmRyZWQgICAgIHRoaVJUWSBzaXgiLCAiNDM2IiB9LAorICAgICAgICAgICAgLy8gdGVzdCBzcGFjZXMgYmVmb3JlIGZpZnR5LTcgY2F1c2luZyBsZW5pZW50IHBhcnNlIG1hdGNoIG9mICJmaWZ0eS0iIHRvICIgZmlmdHkiCisgICAgICAgICAgICAvLyBsZWF2aW5nICItNyIgZm9yIHJlbWFpbmluZyBwYXJzZSwgcmVzdWx0aW5nIGluIDI2NDMgYXMgdGhlIHBhcnNlIHJlc3VsdC4KKyAgICAgICAgICAgIHsgImZpZnR5LTciLCAiNTciIH0sCisgICAgICAgICAgICB7ICIgZmlmdHktNyIsICI1NyIgfSwKKyAgICAgICAgICAgIHsgIiAgZmlmdHktNyIsICI1NyIgfSwKKyAgICAgICAgICAgIHsgIjIgdGhvdXNhbmQgc2l4IEhVTkRSRUQgICBmaWZ0eS03IiwgIjIsNjU3IiB9LAorICAgICAgICAgICAgeyAiZmlmdGVlbiBodW5kcmVkIGFuZCB6ZXJvIiwgIjEsNTAwIiB9CisgICAgICAgIH07CisgICAgICAgIGRvTGVuaWVudFBhcnNlVGVzdChmb3JtYXR0ZXIsIGxwVGVzdERhdGEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm0gYSBzaW1wbGUgc3BvdCBjaGVjayBvbiB0aGUgRW5nbGlzaCBvcmRpbmFsLWFiYnJldmlhdGlvbiBydWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RPcmRpbmFsQWJicmV2aWF0aW9ucygpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KExvY2FsZS5VUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQuT1JESU5BTCk7CisgICAgICAgIFN0cmluZ1tdW10gdGVzdERhdGEgPSB7CisgICAgICAgICAgICB7ICIxIiwgIjFzdCIgfSwKKyAgICAgICAgICAgIHsgIjIiLCAiMm5kIiB9LAorICAgICAgICAgICAgeyAiMyIsICIzcmQiIH0sCisgICAgICAgICAgICB7ICI0IiwgIjR0aCIgfSwKKyAgICAgICAgICAgIHsgIjciLCAiN3RoIiB9LAorICAgICAgICAgICAgeyAiMTAiLCAiMTB0aCIgfSwKKyAgICAgICAgICAgIHsgIjExIiwgIjExdGgiIH0sCisgICAgICAgICAgICB7ICIxMyIsICIxM3RoIiB9LAorICAgICAgICAgICAgeyAiMjAiLCAiMjB0aCIgfSwKKyAgICAgICAgICAgIHsgIjIxIiwgIjIxc3QiIH0sCisgICAgICAgICAgICB7ICIyMiIsICIyMm5kIiB9LAorICAgICAgICAgICAgeyAiMjMiLCAiMjNyZCIgfSwKKyAgICAgICAgICAgIHsgIjI0IiwgIjI0dGgiIH0sCisgICAgICAgICAgICB7ICIzMyIsICIzM3JkIiB9LAorICAgICAgICAgICAgeyAiMTAyIiwgIjEwMm5kIiB9LAorICAgICAgICAgICAgeyAiMzEyIiwgIjMxMnRoIiB9LAorICAgICAgICAgICAgeyAiMTIsMzQ1IiwgIjEyLDM0NXRoIiB9CisgICAgICAgIH07CisKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgdGVzdERhdGEsIGZhbHNlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIGEgc2ltcGxlIHNwb3QgY2hlY2sgb24gdGhlIGR1cmF0aW9uLWZvcm1hdHRpbmcgcnVsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RHVyYXRpb25zKCkgeworICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyCisgICAgICAgICAgICA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoTG9jYWxlLlVTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5EVVJBVElPTik7CisgICAgICAgIFN0cmluZ1tdW10gdGVzdERhdGEgPSB7CisgICAgICAgICAgICB7ICIzLDYwMCIsICIxOjAwOjAwIiB9LCAgICAgICAgICAgICAvL21vdmUgbWUgYW5kIEkgZmFpbAorICAgICAgICAgICAgeyAiMCIsICIwIHNlYy4iIH0sCisgICAgICAgICAgICB7ICIxIiwgIjEgc2VjLiIgfSwKKyAgICAgICAgICAgIHsgIjI0IiwgIjI0IHNlYy4iIH0sCisgICAgICAgICAgICB7ICI2MCIsICIxOjAwIiB9LAorICAgICAgICAgICAgeyAiNzMiLCAiMToxMyIgfSwKKyAgICAgICAgICAgIHsgIjE0NSIsICIyOjI1IiB9LAorICAgICAgICAgICAgeyAiNjY2IiwgIjExOjA2IiB9LAorICAgICAgICAgICAgLy8gICAgICAgICAgICB7ICIzLDYwMCIsICIxOjAwOjAwIiB9LAorICAgICAgICAgICAgeyAiMyw3NDAiLCAiMTowMjoyMCIgfSwKKyAgICAgICAgICAgIHsgIjEwLDI5MyIsICIyOjUxOjMzIiB9CisgICAgICAgIH07CisKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgdGVzdERhdGEsIHRydWUpOworCisgICAgICAgIGZvcm1hdHRlci5zZXRMZW5pZW50UGFyc2VNb2RlKHRydWUpOworICAgICAgICBTdHJpbmdbXVtdIGxwVGVzdERhdGEgPSB7CisgICAgICAgICAgICB7ICIyLTUxLTMzIiwgIjEwLDI5MyIgfQorICAgICAgICB9OworICAgICAgICBkb0xlbmllbnRQYXJzZVRlc3QoZm9ybWF0dGVyLCBscFRlc3REYXRhKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIGEgc2ltcGxlIHNwb3QgY2hlY2sgb24gdGhlIFNwYW5pc2ggc3BlbGxvdXQgcnVsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0U3BhbmlzaFNwZWxsb3V0KCkgeworICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyCisgICAgICAgICAgICA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQobmV3IExvY2FsZSgiZXMiLCAiZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIpLCBSdWxlQmFzZWROdW1iZXJGb3JtYXQuU1BFTExPVVQpOworICAgICAgICBTdHJpbmdbXVtdIHRlc3REYXRhID0geworICAgICAgICAgICAgeyAiMSIsICJ1bm8iIH0sCisgICAgICAgICAgICB7ICI2IiwgInNlaXMiIH0sCisgICAgICAgICAgICB7ICIxNiIsICJkaWVjaXNcdTAwZTlpcyIgfSwKKyAgICAgICAgICAgIHsgIjIwIiwgInZlaW50ZSIgfSwKKyAgICAgICAgICAgIHsgIjI0IiwgInZlaW50aWN1YXRybyIgfSwKKyAgICAgICAgICAgIHsgIjI2IiwgInZlaW50aXNcdTAwZTlpcyIgfSwKKyAgICAgICAgICAgIHsgIjczIiwgInNldGVudGEgeSB0cmVzIiB9LAorICAgICAgICAgICAgeyAiODgiLCAib2NoZW50YSB5IG9jaG8iIH0sCisgICAgICAgICAgICB7ICIxMDAiLCAiY2llbiIgfSwKKyAgICAgICAgICAgIHsgIjEwNiIsICJjaWVudG8gc2VpcyIgfSwKKyAgICAgICAgICAgIHsgIjEyNyIsICJjaWVudG8gdmVpbnRpc2lldGUiIH0sCisgICAgICAgICAgICB7ICIyMDAiLCAiZG9zY2llbnRvcyIgfSwKKyAgICAgICAgICAgIHsgIjU3OSIsICJxdWluaWVudG9zIHNldGVudGEgeSBudWV2ZSIgfSwKKyAgICAgICAgICAgIHsgIjEsMDAwIiwgIm1pbCIgfSwKKyAgICAgICAgICAgIHsgIjIsMDAwIiwgImRvcyBtaWwiIH0sCisgICAgICAgICAgICB7ICIzLDAwNCIsICJ0cmVzIG1pbCBjdWF0cm8iIH0sCisgICAgICAgICAgICB7ICI0LDU2NyIsICJjdWF0cm8gbWlsIHF1aW5pZW50b3Mgc2VzZW50YSB5IHNpZXRlIiB9LAorICAgICAgICAgICAgeyAiMTUsOTQzIiwgInF1aW5jZSBtaWwgbm92ZWNpZW50b3MgY3VhcmVudGEgeSB0cmVzIiB9LAorICAgICAgICAgICAgeyAiMiwzNDUsNjc4IiwgImRvcyBtaWxsXHUwMGYzbiB0cmVzY2llbnRvcyBjdWFyZW50YSB5IGNpbmNvIG1pbCAiCisgICAgICAgICAgICAgICsgInNlaXNjaWVudG9zIHNldGVudGEgeSBvY2hvIn0sCisgICAgICAgICAgICB7ICItMzYiLCAibWVub3MgdHJlaW50YSB5IHNlaXMiIH0sCisgICAgICAgICAgICB7ICIyMzQuNTY3IiwgImRvc2NpZW50b3MgdHJlaW50YSB5IGN1YXRybyBwdW50byBjaW5jbyBzZWlzIHNpZXRlIiB9CisgICAgICAgIH07CisKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgdGVzdERhdGEsIHRydWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm0gYSBzaW1wbGUgc3BvdCBjaGVjayBvbiB0aGUgRnJlbmNoIHNwZWxsb3V0IHJ1bGVzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEZyZW5jaFNwZWxsb3V0KCkgeworICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyCisgICAgICAgICAgICA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoTG9jYWxlLkZSQU5DRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQuU1BFTExPVVQpOworICAgICAgICBTdHJpbmdbXVtdIHRlc3REYXRhID0geworICAgICAgICAgICAgeyAiMSIsICJ1biIgfSwKKyAgICAgICAgICAgIHsgIjE1IiwgInF1aW56ZSIgfSwKKyAgICAgICAgICAgIHsgIjIwIiwgInZpbmd0IiB9LAorICAgICAgICAgICAgeyAiMjEiLCAidmluZ3QtZXQtdW4iIH0sCisgICAgICAgICAgICB7ICIyMyIsICJ2aW5ndC10cm9pcyIgfSwKKyAgICAgICAgICAgIHsgIjYyIiwgInNvaXhhbnRlLWRldXgiIH0sCisgICAgICAgICAgICB7ICI3MCIsICJzb2l4YW50ZS1kaXgiIH0sCisgICAgICAgICAgICB7ICI3MSIsICJzb2l4YW50ZSBldCBvbnplIiB9LAorICAgICAgICAgICAgeyAiNzMiLCAic29peGFudGUtdHJlaXplIiB9LAorICAgICAgICAgICAgeyAiODAiLCAicXVhdHJlLXZpbmd0cyIgfSwKKyAgICAgICAgICAgIHsgIjg4IiwgInF1YXRyZS12aW5ndC1odWl0IiB9LAorICAgICAgICAgICAgeyAiMTAwIiwgImNlbnQiIH0sCisgICAgICAgICAgICB7ICIxMDYiLCAiY2VudCBzaXgiIH0sCisgICAgICAgICAgICB7ICIxMjciLCAiY2VudCB2aW5ndC1zZXB0IiB9LAorICAgICAgICAgICAgeyAiMjAwIiwgImRldXggY2VudHMiIH0sCisgICAgICAgICAgICB7ICI1NzkiLCAiY2lucSBjZW50cyBzb2l4YW50ZS1kaXgtbmV1ZiIgfSwKKyAgICAgICAgICAgIHsgIjEsMDAwIiwgIm1pbGxlIiB9LAorICAgICAgICAgICAgeyAiMSwxMjMiLCAib256ZSBjZW50cyB2aW5ndC10cm9pcyIgfSwKKyAgICAgICAgICAgIHsgIjEsNTk0IiwgIm1pbGxlIGNpbnEgY2VudHMgcXVhdHJlLXZpbmd0LXF1YXRvcnplIiB9LAorICAgICAgICAgICAgeyAiMiwwMDAiLCAiZGV1eCBtaWxsZSIgfSwKKyAgICAgICAgICAgIHsgIjMsMDA0IiwgInRyb2lzIG1pbGxlIHF1YXRyZSIgfSwKKyAgICAgICAgICAgIHsgIjQsNTY3IiwgInF1YXRyZSBtaWxsZSBjaW5xIGNlbnRzIHNvaXhhbnRlLXNlcHQiIH0sCisgICAgICAgICAgICB7ICIxNSw5NDMiLCAicXVpbnplIG1pbGxlIG5ldWYgY2VudHMgcXVhcmFudGUtdHJvaXMiIH0sCisgICAgICAgICAgICB7ICIyLDM0NSw2NzgiLCAiZGV1eCBtaWxsaW9uIHRyb2lzIGNlbnRzIHF1YXJhbnRlLWNpbnEgbWlsbGUgIgorICAgICAgICAgICAgICArICJzaXggY2VudHMgc29peGFudGUtZGl4LWh1aXQiIH0sCisgICAgICAgICAgICB7ICItMzYiLCAibW9pbnMgdHJlbnRlLXNpeCIgfSwKKyAgICAgICAgICAgIHsgIjIzNC41NjciLCAiZGV1eCBjZW50cyB0cmVudGUtcXVhdHJlIHZpcmd1bGUgY2lucSBzaXggc2VwdCIgfQorICAgICAgICB9OworCisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIHRlc3REYXRhLCB0cnVlKTsKKworICAgICAgICBmb3JtYXR0ZXIuc2V0TGVuaWVudFBhcnNlTW9kZSh0cnVlKTsKKyAgICAgICAgU3RyaW5nW11bXSBscFRlc3REYXRhID0geworICAgICAgICAgICAgeyAidHJlbnRlLXVuIiwgIjMxIiB9LAorICAgICAgICAgICAgeyAidW4gY2VudHMgcXVhdHJlIHZpbmd0IGRpeCBodWl0IiwgIjE5OCIgfQorICAgICAgICB9OworICAgICAgICBkb0xlbmllbnRQYXJzZVRlc3QoZm9ybWF0dGVyLCBscFRlc3REYXRhKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIGEgc2ltcGxlIHNwb3QgY2hlY2sgb24gdGhlIFN3aXNzIEZyZW5jaCBzcGVsbG91dCBydWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTd2lzc0ZyZW5jaFNwZWxsb3V0KCkgeworICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyCisgICAgICAgICAgICA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQobmV3IExvY2FsZSgiZnIiLCAiQ0giLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIpLCBSdWxlQmFzZWROdW1iZXJGb3JtYXQuU1BFTExPVVQpOworICAgICAgICBTdHJpbmdbXVtdIHRlc3REYXRhID0geworICAgICAgICAgICAgeyAiMSIsICJ1biIgfSwKKyAgICAgICAgICAgIHsgIjE1IiwgInF1aW56ZSIgfSwKKyAgICAgICAgICAgIHsgIjIwIiwgInZpbmd0IiB9LAorICAgICAgICAgICAgeyAiMjEiLCAidmluZ3QtZXQtdW4iIH0sCisgICAgICAgICAgICB7ICIyMyIsICJ2aW5ndC10cm9pcyIgfSwKKyAgICAgICAgICAgIHsgIjYyIiwgInNvaXhhbnRlLWRldXgiIH0sCisgICAgICAgICAgICB7ICI3MCIsICJzZXB0YW50ZSIgfSwKKyAgICAgICAgICAgIHsgIjcxIiwgInNlcHRhbnRlLWV0LXVuIiB9LAorICAgICAgICAgICAgeyAiNzMiLCAic2VwdGFudGUtdHJvaXMiIH0sCisgICAgICAgICAgICB7ICI4MCIsICJvY3RhbnRlIiB9LAorICAgICAgICAgICAgeyAiODgiLCAib2N0YW50ZS1odWl0IiB9LAorICAgICAgICAgICAgeyAiMTAwIiwgImNlbnQiIH0sCisgICAgICAgICAgICB7ICIxMDYiLCAiY2VudCBzaXgiIH0sCisgICAgICAgICAgICB7ICIxMjciLCAiY2VudCB2aW5ndC1zZXB0IiB9LAorICAgICAgICAgICAgeyAiMjAwIiwgImRldXggY2VudHMiIH0sCisgICAgICAgICAgICB7ICI1NzkiLCAiY2lucSBjZW50cyBzZXB0YW50ZS1uZXVmIiB9LAorICAgICAgICAgICAgeyAiMSwwMDAiLCAibWlsbGUiIH0sCisgICAgICAgICAgICB7ICIxLDEyMyIsICJvbnplIGNlbnRzIHZpbmd0LXRyb2lzIiB9LAorICAgICAgICAgICAgeyAiMSw1OTQiLCAibWlsbGUgY2lucSBjZW50cyBub25hbnRlLXF1YXRyZSIgfSwKKyAgICAgICAgICAgIHsgIjIsMDAwIiwgImRldXggbWlsbGUiIH0sCisgICAgICAgICAgICB7ICIzLDAwNCIsICJ0cm9pcyBtaWxsZSBxdWF0cmUiIH0sCisgICAgICAgICAgICB7ICI0LDU2NyIsICJxdWF0cmUgbWlsbGUgY2lucSBjZW50cyBzb2l4YW50ZS1zZXB0IiB9LAorICAgICAgICAgICAgeyAiMTUsOTQzIiwgInF1aW56ZSBtaWxsZSBuZXVmIGNlbnRzIHF1YXJhbnRlLXRyb2lzIiB9LAorICAgICAgICAgICAgeyAiMiwzNDUsNjc4IiwgImRldXggbWlsbGlvbiB0cm9pcyBjZW50cyBxdWFyYW50ZS1jaW5xIG1pbGxlICIKKyAgICAgICAgICAgICAgKyAic2l4IGNlbnRzIHNlcHRhbnRlLWh1aXQiIH0sCisgICAgICAgICAgICB7ICItMzYiLCAibW9pbnMgdHJlbnRlLXNpeCIgfSwKKyAgICAgICAgICAgIHsgIjIzNC41NjciLCAiZGV1eCBjZW50cyB0cmVudGUtcXVhdHJlIHZpcmd1bGUgY2lucSBzaXggc2VwdCIgfQorICAgICAgICB9OworCisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIHRlc3REYXRhLCB0cnVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIGEgc2ltcGxlIHNwb3QgY2hlY2sgb24gdGhlIEl0YWxpYW4gc3BlbGxvdXQgcnVsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SXRhbGlhblNwZWxsb3V0KCkgeworICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyCisgICAgICAgICAgICA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoTG9jYWxlLklUQUxJQU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKyAgICAgICAgU3RyaW5nW11bXSB0ZXN0RGF0YSA9IHsKKyAgICAgICAgICAgIHsgIjEiLCAidW5vIiB9LAorICAgICAgICAgICAgeyAiMTUiLCAicXVpbmRpY2kiIH0sCisgICAgICAgICAgICB7ICIyMCIsICJ2ZW50aSIgfSwKKyAgICAgICAgICAgIHsgIjIzIiwgInZlbnRpdHJlIiB9LAorICAgICAgICAgICAgeyAiNzMiLCAic2V0dGFudGF0cmUiIH0sCisgICAgICAgICAgICB7ICI4OCIsICJvdHRhbnRvdHRvIiB9LAorICAgICAgICAgICAgeyAiMTAwIiwgImNlbnRvIiB9LAorICAgICAgICAgICAgeyAiMTA2IiwgImNlbnRvc2VpIiB9LAorICAgICAgICAgICAgeyAiMTA4IiwgImNlbnRvdHRvIiB9LAorICAgICAgICAgICAgeyAiMTI3IiwgImNlbnRvdmVudGlzZXR0ZSIgfSwKKyAgICAgICAgICAgIHsgIjE4MSIsICJjZW50b3R0YW50dW5vIiB9LAorICAgICAgICAgICAgeyAiMjAwIiwgImR1ZWNlbnRvIiB9LAorICAgICAgICAgICAgeyAiNTc5IiwgImNpbnF1ZWNlbnRvc2V0dGFudGFub3ZlIiB9LAorICAgICAgICAgICAgeyAiMSwwMDAiLCAibWlsbGUiIH0sCisgICAgICAgICAgICB7ICIyLDAwMCIsICJkdWVtaWxhIiB9LAorICAgICAgICAgICAgeyAiMywwMDQiLCAidHJlbWlsYXF1YXR0cm8iIH0sCisgICAgICAgICAgICB7ICI0LDU2NyIsICJxdWF0dHJvbWlsYWNpbnF1ZWNlbnRvc2Vzc2FudGFzZXR0ZSIgfSwKKyAgICAgICAgICAgIHsgIjE1LDk0MyIsICJxdWluZGljaW1pbGFub3ZlY2VudG9xdWFyYW50YXRyZSIgfSwKKyAgICAgICAgICAgIHsgIi0zNiIsICJtZW5vIHRyZW50aXNlaSIgfSwKKyAgICAgICAgICAgIHsgIjIzNC41NjciLCAiZHVlY2VudG90cmVudGlxdWF0dHJvIHZpcmdvbGEgY2lucXVlIHNlaSBzZXR0ZSIgfQorICAgICAgICB9OworCisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIHRlc3REYXRhLCB0cnVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIGEgc2ltcGxlIHNwb3QgY2hlY2sgb24gdGhlIEdlcm1hbiBzcGVsbG91dCBydWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RHZXJtYW5TcGVsbG91dCgpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KExvY2FsZS5HRVJNQU5ZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5TUEVMTE9VVCk7CisgICAgICAgIFN0cmluZ1tdW10gdGVzdERhdGEgPSB7CisgICAgICAgICAgICB7ICIxIiwgImVpbnMiIH0sCisgICAgICAgICAgICB7ICIxNSIsICJmXHUwMGZjbmZ6ZWhuIiB9LAorICAgICAgICAgICAgeyAiMjAiLCAiendhbnppZyIgfSwKKyAgICAgICAgICAgIHsgIjIzIiwgImRyZWl1bmR6d2FuemlnIiB9LAorICAgICAgICAgICAgeyAiNzMiLCAiZHJlaXVuZHNpZWJ6aWciIH0sCisgICAgICAgICAgICB7ICI4OCIsICJhY2h0dW5kYWNodHppZyIgfSwKKyAgICAgICAgICAgIHsgIjEwMCIsICJodW5kZXJ0IiB9LAorICAgICAgICAgICAgeyAiMTA2IiwgImh1bmRlcnRzZWNocyIgfSwKKyAgICAgICAgICAgIHsgIjEyNyIsICJodW5kZXJ0c2llYmVudW5kendhbnppZyIgfSwKKyAgICAgICAgICAgIHsgIjIwMCIsICJ6d2VpaHVuZGVydCIgfSwKKyAgICAgICAgICAgIHsgIjU3OSIsICJmXHUwMGZjbmZodW5kZXJ0bmV1bnVuZHNpZWJ6aWciIH0sCisgICAgICAgICAgICB7ICIxLDAwMCIsICJ0YXVzZW5kIiB9LAorICAgICAgICAgICAgeyAiMiwwMDAiLCAiendlaXRhdXNlbmQiIH0sCisgICAgICAgICAgICB7ICIzLDAwNCIsICJkcmVpdGF1c2VuZHZpZXIiIH0sCisgICAgICAgICAgICB7ICI0LDU2NyIsICJ2aWVydGF1c2VuZGZcdTAwZmNuZmh1bmRlcnRzaWViZW51bmRzZWNoemlnIiB9LAorICAgICAgICAgICAgeyAiMTUsOTQzIiwgImZcdTAwZmNuZnplaG50YXVzZW5kbmV1bmh1bmRlcnRkcmVpdW5kdmllcnppZyIgfSwKKyAgICAgICAgICAgIHsgIjIsMzQ1LDY3OCIsICJ6d2VpIE1pbGxpb25lbiBkcmVpaHVuZGVydGZcdTAwZmNuZnVuZHZpZXJ6aWd0YXVzZW5kIgorICAgICAgICAgICAgICArICJzZWNoc2h1bmRlcnRhY2h0dW5kc2llYnppZyIgfQorICAgICAgICB9OworCisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIHRlc3REYXRhLCB0cnVlKTsKKworICAgICAgICBmb3JtYXR0ZXIuc2V0TGVuaWVudFBhcnNlTW9kZSh0cnVlKTsKKyAgICAgICAgU3RyaW5nW11bXSBscFRlc3REYXRhID0geworICAgICAgICAgICAgeyAiZWluIFRhdXNlbmQgc2VjaHMgSHVuZGVydCBmdWVuZnVuZGRyZWlzc2lnIiwgIjEsNjM1IiB9CisgICAgICAgIH07CisgICAgICAgIGRvTGVuaWVudFBhcnNlVGVzdChmb3JtYXR0ZXIsIGxwVGVzdERhdGEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm0gYSBzaW1wbGUgc3BvdCBjaGVjayBvbiB0aGUgR2VybWFuIHNwZWxsb3V0IHJ1bGVzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFRoYWlTcGVsbG91dCgpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KG5ldyBMb2NhbGUoInRoIiwgIlRIIiwgIiIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5TUEVMTE9VVCk7CisgICAgICAgIFN0cmluZ1tdW10gdGVzdERhdGEgPSB7CisgICAgICAgICAgICB7ICIwIiwgIlx1MGUyOFx1MGUzOVx1MGUxOVx1MGUyMlx1MGU0YyIgfSwKKyAgICAgICAgICAgIHsgIjEiLCAiXHUwZTJiXHUwZTE5XHUwZTM2XHUwZTQ4XHUwZTA3IiB9LAorICAgICAgICAgICAgeyAiMTAiLCAiXHUwZTJhXHUwZTM0XHUwZTFhIiB9LAorICAgICAgICAgICAgeyAiMTEiLCAiXHUwZTJhXHUwZTM0XHUwZTFhXHUwZTQwXHUwZTJkXHUwZTQ3XHUwZTE0IiB9LAorICAgICAgICAgICAgeyAiMjEiLCAiXHUwZTIyXHUwZTM1XHUwZTQ4XHUwZTJhXHUwZTM0XHUwZTFhXHUwZTQwXHUwZTJkXHUwZTQ3XHUwZTE0IiB9LAorICAgICAgICAgICAgeyAiMTAxIiwgIlx1MGUyYlx1MGUxOVx1MGUzNlx1MGU0OFx1MGUwN1x1MGUyM1x1MGU0OVx1MGUyZFx1MGUyMlx1MGUyYlx1MGUxOVx1MGUzNlx1MGU0OFx1MGUwNyIgfSwKKyAgICAgICAgICAgIHsgIjEuMjM0IiwgIlx1MGUyYlx1MGUxOVx1MGUzNlx1MGU0OFx1MGUwN1x1MGUwOFx1MGUzOFx1MGUxNFx1MGUyYVx1MGUyZFx1MGUwN1x1MGUyYVx1MGUzMlx1MGUyMVx1MGUyYVx1MGUzNVx1MGU0OCIgfSwKKyAgICAgICAgfTsKKworICAgICAgICBkb1Rlc3QoZm9ybWF0dGVyLCB0ZXN0RGF0YSwgdHJ1ZSk7CisKKyAgICAgICAgLyoKKyAgICAgICAgICBmb3JtYXR0ZXIuc2V0TGVuaWVudFBhcnNlTW9kZSh0cnVlKTsKKyAgICAgICAgICBTdHJpbmdbXVtdIGxwVGVzdERhdGEgPSB7CisgICAgICAgICAgeyAiZWluIFRhdXNlbmQgc2VjaHMgSHVuZGVydCBmdWVuZnVuZGRyZWlzc2lnIiwgIjEsNjM1IiB9CisgICAgICAgICAgfTsKKyAgICAgICAgICBkb0xlbmllbnRQYXJzZVRlc3QoZm9ybWF0dGVyLCBscFRlc3REYXRhKTsKKyAgICAgICAgKi8KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0RnJhY3Rpb25hbFJ1bGVTZXQoKSB7CisKKworICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyID0KKyAgICAgICAgICAgIG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoZnJhY1J1bGVzLCBMb2NhbGUuRU5HTElTSCk7CisKKyAgICAgICAgU3RyaW5nW11bXSB0ZXN0RGF0YSA9IHsKKyAgICAgICAgICAgIHsgIjAiLCAiMCIgfSwKKyAgICAgICAgICAgIHsgIi4xIiwgIjEvMTAiIH0sCisgICAgICAgICAgICB7ICIuMTEiLCAiMS85IiB9LAorICAgICAgICAgICAgeyAiLjEyNSIsICIxLzgiIH0sCisgICAgICAgICAgICB7ICIuMTQyOCIsICIxLzciIH0sCisgICAgICAgICAgICB7ICIuMTY2NyIsICIxLzYiIH0sCisgICAgICAgICAgICB7ICIuMiIsICIxLzUiIH0sCisgICAgICAgICAgICB7ICIuMjUiLCAiMS80IiB9LAorICAgICAgICAgICAgeyAiLjMzMyIsICIxLzMiIH0sCisgICAgICAgICAgICB7ICIuNSIsICIxLzIiIH0sCisgICAgICAgICAgICB7ICIxLjEiLCAiMSAxLzEwIiB9LAorICAgICAgICAgICAgeyAiMi4xMSIsICIyIDEvOSIgfSwKKyAgICAgICAgICAgIHsgIjMuMTI1IiwgIjMgMS84IiB9LAorICAgICAgICAgICAgeyAiNC4xNDI4IiwgIjQgMS83IiB9LAorICAgICAgICAgICAgeyAiNS4xNjY3IiwgIjUgMS82IiB9LAorICAgICAgICAgICAgeyAiNi4yIiwgIjYgMS81IiB9LAorICAgICAgICAgICAgeyAiNy4yNSIsICI3IDEvNCIgfSwKKyAgICAgICAgICAgIHsgIjguMzMzIiwgIjggMS8zIiB9LAorICAgICAgICAgICAgeyAiOS41IiwgIjkgMS8yIiB9LAorICAgICAgICAgICAgeyAiLjIyMjIiLCAiMi85IiB9LAorICAgICAgICAgICAgeyAiLjQ0NDQiLCAiNC85IiB9LAorICAgICAgICAgICAgeyAiLjU1NTUiLCAiNS85IiB9LAorICAgICAgICAgICAgeyAiMS4yODU2IiwgIjEgMi83IiB9CisgICAgICAgIH07CisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIHRlc3REYXRhLCBmYWxzZSk7IC8vIGV4YWN0IHZhbHVlcyBhcmVuJ3QgcGFyc2FibGUgZnJvbSBmcmFjdGlvbnMKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U3dlZGlzaFNwZWxsb3V0KCkKKyAgICB7CisgICAgICAgIExvY2FsZSBsb2NhbGUgPSBuZXcgTG9jYWxlKCJzdiIsICIiLCAiIik7CisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KGxvY2FsZSwgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKworICAgICAgICBTdHJpbmdbXVtdIHRlc3REYXRhRGVmYXVsdCA9IHsKKyAgICAgICAgICAgIHsgIjEwMSIsICJldHRodW5kcmFcdTAwYWRlbiIgfSwKKyAgICAgICAgICAgIHsgIjEyMyIsICJldHRodW5kcmFcdTAwYWR0anVnb3RyZSIgfSwKKyAgICAgICAgICAgIHsgIjEsMDAxIiwgImV0dHVzZW4gZW4iIH0sCisgICAgICAgICAgICB7ICIxLDEwMCIsICJldHR1c2VuIGV0dGh1bmRyYSIgfSwKKyAgICAgICAgICAgIHsgIjEsMTAxIiwgImV0dHVzZW4gZXR0aHVuZHJhXHUwMGFkZW4iIH0sCisgICAgICAgICAgICB7ICIxLDIzNCIsICJldHR1c2VuIHR2XHUwMGU1aHVuZHJhXHUwMGFkdHJldHRpb2Z5cmEiIH0sCisgICAgICAgICAgICB7ICIxMCwwMDEiLCAidGlvXHUwMGFkdHVzZW4gZW4iIH0sCisgICAgICAgICAgICB7ICIxMSwwMDAiLCAiZWx2YVx1MDBhZHR1c2VuIiB9LAorICAgICAgICAgICAgeyAiMTIsMDAwIiwgInRvbHZcdTAwYWR0dXNlbiIgfSwKKyAgICAgICAgICAgIHsgIjIwLDAwMCIsICJ0anVnb1x1MDBhZHR1c2VuIiB9LAorICAgICAgICAgICAgeyAiMjEsMDAwIiwgInRqdWdvZW5cdTAwYWR0dXNlbiIgfSwKKyAgICAgICAgICAgIHsgIjIxLDAwMSIsICJ0anVnb2VuXHUwMGFkdHVzZW4gZW4iIH0sCisgICAgICAgICAgICB7ICIyMDAsMDAwIiwgInR2XHUwMGU1aHVuZHJhXHUwMGFkdHVzZW4iIH0sCisgICAgICAgICAgICB7ICIyMDEsMDAwIiwgInR2XHUwMGU1aHVuZHJhXHUwMGFkZW5cdTAwYWR0dXNlbiIgfSwKKyAgICAgICAgICAgIHsgIjIwMCwyMDAiLCAidHZcdTAwZTVodW5kcmFcdTAwYWR0dXNlbiB0dlx1MDBlNWh1bmRyYSIgfSwKKyAgICAgICAgICAgIHsgIjIsMDAyLDAwMCIsICJ0dlx1MDBlNSBtaWxqb25lciB0dlx1MDBlNVx1MDBhZHR1c2VuIiB9LAorICAgICAgICAgICAgeyAiMTIsMzQ1LDY3OCIsICJ0b2x2IG1pbGpvbmVyIHRyZWh1bmRyYVx1MDBhZGZ5cnRpb2ZlbVx1MDBhZHR1c2VuIHNleGh1bmRyYVx1MDBhZHNqdXR0aW9cdTAwZTV0dGEiIH0sCisgICAgICAgICAgICB7ICIxMjMsNDU2Ljc4OSIsICJldHRodW5kcmFcdTAwYWR0anVnb3RyZVx1MDBhZHR1c2VuIGZ5cmFodW5kcmFcdTAwYWRmZW10aW9zZXgga29tbWEgc2p1IFx1MDBlNXR0YSBuaW8iIH0sCisgICAgICAgICAgICB7ICItMTIsMzQ1LjY3OCIsICJtaW51cyB0b2x2XHUwMGFkdHVzZW4gdHJlaHVuZHJhXHUwMGFkZnlydGlvZmVtIGtvbW1hIHNleCBzanUgXHUwMGU1dHRhIiB9CisgICAgICAgIH07CisKKyAgICAgICAgbG9nbG4oInRlc3RpbmcgZGVmYXVsdCBydWxlcyIpOworICAgICAgICBkb1Rlc3QoZm9ybWF0dGVyLCB0ZXN0RGF0YURlZmF1bHQsIHRydWUpOworCisgICAgICAgIFN0cmluZ1tdW10gdGVzdERhdGFOZXV0cnVtID0geworICAgICAgICAgICAgeyAiMTAxIiwgImV0dGh1bmRyYVx1MDBhZGV0dCIgfSwKKyAgICAgICAgICAgIHsgIjEsMDAxIiwgImV0dHVzZW4gZXR0IiB9LAorICAgICAgICAgICAgeyAiMSwxMDEiLCAiZXR0dXNlbiBldHRodW5kcmFcdTAwYWRldHQiIH0sCisgICAgICAgICAgICB7ICIxMCwwMDEiLCAidGlvXHUwMGFkdHVzZW4gZXR0IiB9LAorICAgICAgICAgICAgeyAiMjEsMDAxIiwgInRqdWdvZW5cdTAwYWR0dXNlbiBldHQiIH0KKyAgICAgICAgfTsKKworICAgICAgICBmb3JtYXR0ZXIuc2V0RGVmYXVsdFJ1bGVTZXQoIiVuZXV0cnVtIik7CisgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIG5ldXRydW0gcnVsZXMiKTsKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgdGVzdERhdGFOZXV0cnVtLCB0cnVlKTsKKworICAgICAgICBTdHJpbmdbXVtdIHRlc3REYXRhWWVhciA9IHsKKyAgICAgICAgICAgIHsgIjEwMSIsICJldHRodW5kcmFcdTAwYWRldHQiIH0sCisgICAgICAgICAgICB7ICI5MDAiLCAibmlvaHVuZHJhIiB9LAorICAgICAgICAgICAgeyAiMSwwMDEiLCAidGlvaHVuZHJhXHUwMGFkZXR0IiB9LAorICAgICAgICAgICAgeyAiMSwxMDAiLCAiZWx2YWh1bmRyYSIgfSwKKyAgICAgICAgICAgIHsgIjEsMTAxIiwgImVsdmFodW5kcmFcdTAwYWRldHQiIH0sCisgICAgICAgICAgICB7ICIxLDIzNCIsICJ0b2x2aHVuZHJhXHUwMGFkdHJldHRpb2Z5cmEiIH0sCisgICAgICAgICAgICB7ICIyLDAwMSIsICJ0anVnb2h1bmRyYVx1MDBhZGV0dCIgfSwKKyAgICAgICAgICAgIHsgIjEwLDAwMSIsICJ0aW9cdTAwYWR0dXNlbiBldHQiIH0KKyAgICAgICAgfTsKKworICAgICAgICBmb3JtYXR0ZXIuc2V0RGVmYXVsdFJ1bGVTZXQoIiV5ZWFyIik7CisgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIHllYXIgcnVsZXMiKTsKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgdGVzdERhdGFZZWFyLCB0cnVlKTsKKyAgICB9CisKKyAgICB2b2lkIGRvVGVzdChSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyLCBTdHJpbmdbXVtdIHRlc3REYXRhLAorICAgICAgICAgICAgICAgIGJvb2xlYW4gdGVzdFBhcnNpbmcpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IGRlY0ZtdCA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3REYXRhLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIG51bWJlciA9IHRlc3REYXRhW2ldWzBdOworICAgICAgICAgICAgICAgIFN0cmluZyBleHBlY3RlZFdvcmRzID0gdGVzdERhdGFbaV1bMV07CisgICAgICAgICAgICAgICAgbG9nbG4oInRlc3RbIiArIGkgKyAiXSBudW1iZXI6ICIgKyBudW1iZXIgKyAiIHRhcmdldDogIiArIGV4cGVjdGVkV29yZHMpOworICAgICAgICAgICAgICAgIE51bWJlciBudW0gPSBkZWNGbXQucGFyc2UobnVtYmVyKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgYWN0dWFsV29yZHMgPSBmb3JtYXR0ZXIuZm9ybWF0KG51bSk7CisKKyAgICAgICAgICAgICAgICBpZiAoIWFjdHVhbFdvcmRzLmVxdWFscyhleHBlY3RlZFdvcmRzKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiU3BvdCBjaGVjayBmYWlsZWQ6IGZvciAiICsgbnVtYmVyICsgIiwgZXhwZWN0ZWQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICArIGV4cGVjdGVkV29yZHMgKyAiLCBidXQgZ290ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWxXb3Jkcyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRlc3RQYXJzaW5nKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBhY3R1YWxOdW1iZXIgPSBkZWNGbXQuZm9ybWF0KGZvcm1hdHRlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucGFyc2UoYWN0dWFsV29yZHMpKTsKKworICAgICAgICAgICAgICAgICAgICBpZiAoIWFjdHVhbE51bWJlci5lcXVhbHMobnVtYmVyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIlNwb3QgY2hlY2sgZmFpbGVkOiBmb3IgIiArIGFjdHVhbFdvcmRzICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkICIgKyBudW1iZXIgKyAiLCBidXQgZ290ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsTnVtYmVyKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoVGhyb3dhYmxlIGUpIHsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICBlcnJsbigiVGVzdCBmYWlsZWQgd2l0aCBleGNlcHRpb246ICIgKyBlLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBkb0xlbmllbnRQYXJzZVRlc3QoUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdbXVtdIHRlc3REYXRhKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBkZWNGbXQgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0RGF0YS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIFN0cmluZyB3b3JkcyA9IHRlc3REYXRhW2ldWzBdOworICAgICAgICAgICAgICAgIFN0cmluZyBleHBlY3RlZE51bWJlciA9IHRlc3REYXRhW2ldWzFdOworICAgICAgICAgICAgICAgIFN0cmluZyBhY3R1YWxOdW1iZXIgPSBkZWNGbXQuZm9ybWF0KGZvcm1hdHRlci5wYXJzZSh3b3JkcykpOworCisgICAgICAgICAgICAgICAgaWYgKCFhY3R1YWxOdW1iZXIuZXF1YWxzKGV4cGVjdGVkTnVtYmVyKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiTGVuaWVudC1wYXJzZSBzcG90IGNoZWNrIGZhaWxlZDogZm9yICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyB3b3JkcyArICIsIGV4cGVjdGVkICIgKyBleHBlY3RlZE51bWJlcgorICAgICAgICAgICAgICAgICAgICAgICAgICArICIsIGJ1dCBnb3QgIiArIGFjdHVhbE51bWJlcik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdGNoIChUaHJvd2FibGUgZSkgeworICAgICAgICAgICAgZXJybG4oIlRlc3QgZmFpbGVkIHdpdGggZXhjZXB0aW9uOiAiICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvV3JpdGVOdW1iZXJGb3JtYXRTZXJpYWxUZXN0RGF0YS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9Xcml0ZU51bWJlckZvcm1hdFNlcmlhbFRlc3REYXRhLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzcwNDU2ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvV3JpdGVOdW1iZXJGb3JtYXRTZXJpYWxUZXN0RGF0YS5qYXZhCkBAIC0wLDAgKzEsMTAwIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvV3JpdGVOdW1iZXJGb3JtYXRTZXJpYWxUZXN0RGF0YS5qYXZhLHYgJAorICogJERhdGU6IDIwMDIvMDIvMjIgMDA6Mjg6MTEgJAorICogJFJldmlzaW9uOiAxLjEgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLmlvLio7CisKKy8qKgorICogQHZlcnNpb24gCTEuMAorICogQGF1dGhvciBSYW0gVmlzd2FuYWRoYQorICovCitwdWJsaWMgY2xhc3MgV3JpdGVOdW1iZXJGb3JtYXRTZXJpYWxUZXN0RGF0YSB7CisJc3RhdGljIGZpbmFsIFN0cmluZyBoZWFkZXI9Ii8qXG4iICsKKwkJCQkJCQkgICAiICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiIrCisJCQkJCQkJICAgIiAqIENvcHlyaWdodCAoQykgMjAwMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqXG4iKworCQkJCQkJCSAgICIgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuIisKKwkJCQkJCQkgICAiICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiIrCisJCQkJCQkJICAgIiAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvV3JpdGVOdW1iZXJGb3JtYXRTZXJpYWxUZXN0RGF0YS5qYXZhLHYgJFxuIisgCisJCQkJCQkJICAgIiAqICREYXRlOiAyMDAyLzAyLzIyIDAwOjI4OjExICRcbiIrIAorCQkJCQkJCSAgICIgKiAkUmV2aXNpb246IDEuMSAkXG4iKworCQkJCQkJCSAgICIgKlxuIisKKwkJCQkJCQkgICAiICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4iKworCQkJCQkJCSAgICIgKi9cblxuIisKKwkJCQkJCQkgICAicGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7XG5cbiIrCisJCQkJCQkJCQorCQkJCQkJCSAgICJwdWJsaWMgY2xhc3MgTnVtYmVyRm9ybWF0U2VyaWFsVGVzdERhdGEge1xuIisKKwkJCQkJCQkgICAiICAgIC8vZ2V0IENvbnRlbnRcbiIrCisJCQkJCQkJICAgIiAgICBwdWJsaWMgc3RhdGljIGJ5dGVbXVtdIGdldENvbnRlbnQoKSB7XG4iKworCQkJCQkJCSAgICIJICAgICAgICByZXR1cm4gY29udGVudDtcbiIrCisJCQkJCQkJICAgIiAgICB9XG4iOworCQkJCQkJCSAgCisJc3RhdGljIGZpbmFsIFN0cmluZyBmb290ZXIgPSJcbiAgICBmaW5hbCBzdGF0aWMgYnl0ZVtdW10gY29udGVudCA9IHtnZW5lcmFsSW5zdGFuY2UsIGN1cnJlbmN5SW5zdGFuY2UsIHBlcmNlbnRJbnN0YW5jZSwgc2NpZW50aWZpY0luc3RhbmNlfTtcbiIrCisJCQkJCQkJCSJ9XG4iOwkJCQkJCSAgIAorCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpeworCQlOdW1iZXJGb3JtYXQgbmYgCT0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisJCU51bWJlckZvcm1hdCBuZmMJPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShMb2NhbGUuVVMpOworCQlOdW1iZXJGb3JtYXQgbmZwIAk9IE51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UoTG9jYWxlLlVTKTsKKwkJTnVtYmVyRm9ybWF0IG5mc3AgCT0gTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZShMb2NhbGUuVVMpOworCQkKKwkJdHJ5eworCQkJRmlsZU91dHB1dFN0cmVhbSBmaWxlID0gbmV3IEZpbGVPdXRwdXRTdHJlYW0oIk51bWJlckZvcm1hdFNlcmlhbFRlc3REYXRhLmphdmEiKTsKKwkJCWZpbGUud3JpdGUoaGVhZGVyLmdldEJ5dGVzKCkpOworCQkJd3JpdGUoZmlsZSwoT2JqZWN0KW5mLCJnZW5lcmFsSW5zdGFuY2UiLCAiLy9OdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKSIpOworCQkJd3JpdGUoZmlsZSwoT2JqZWN0KW5mYywiY3VycmVuY3lJbnN0YW5jZSIsIi8vTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoTG9jYWxlLlVTKSIpOworCQkJd3JpdGUoZmlsZSwoT2JqZWN0KW5mcCwicGVyY2VudEluc3RhbmNlIiwiLy9OdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKExvY2FsZS5VUykiKTsKKwkJCXdyaXRlKGZpbGUsKE9iamVjdCluZnNwLCJzY2llbnRpZmljSW5zdGFuY2UiLCIvL051bWJlckZvcm1hdC5nZXRTY2llbnRpZmljSW5zdGFuY2UoTG9jYWxlLlVTKSIpOworCQkJZmlsZS53cml0ZShmb290ZXIuZ2V0Qnl0ZXMoKSk7CQkJCisJCQlmaWxlLmNsb3NlKCk7CisJCX1jYXRjaCggRXhjZXB0aW9uIGUpeworCQkJU3lzdGVtLm91dC5wcmludGxuKGUuZ2V0TWVzc2FnZSgpKTsKKwkJCWUucHJpbnRTdGFja1RyYWNlKCk7CisJCX0KKwl9CisJcHJpdmF0ZSBzdGF0aWMgdm9pZCB3cml0ZShGaWxlT3V0cHV0U3RyZWFtIGZpbGUsT2JqZWN0IG8gLFN0cmluZyBuYW1lLFN0cmluZyBjb21tZW50KXsKKwkJdHJ5eworCQkgICAgQnl0ZUFycmF5T3V0cHV0U3RyZWFtIGJ0cyA9ICBuZXcgQnl0ZUFycmF5T3V0cHV0U3RyZWFtKCk7CisJCQlPYmplY3RPdXRwdXRTdHJlYW0gb3MgPSBuZXcgT2JqZWN0T3V0cHV0U3RyZWFtKGJ0cyk7CQorCQkJb3Mud3JpdGVPYmplY3QoKE9iamVjdClvKTsKKwkJCW9zLmZsdXNoKCk7CisJCQlvcy5jbG9zZSgpOworCQkJYnl0ZVtdIG15QXJyID0gYnRzLnRvQnl0ZUFycmF5KCk7CisJCQlTdHJpbmcgdGVtcCA9IG5ldyBTdHJpbmcobXlBcnIpOworCQkJU3lzdGVtLm91dC5wcmludGxuKCIgICAgIitjb21tZW50KyAiIDoiKTsKKwkJCS8qU3lzdGVtLm91dC5wcmludGxuKCJtaW5pbXVtSW50ZWdlckRpZ2l0cyA6ICIgICsgKHRlbXAuaW5kZXhPZigibWluaW11bUludGVnZXJEaWdpdHMiKSsibWluaW11bUludGVnZXJEaWdpdHMiLmxlbmd0aCgpKSk7CisJCQlTeXN0ZW0ub3V0LnByaW50bG4oIm1heGltdW1JbnRlZ2VyRGlnaXRzIDogIiAgKyAodGVtcC5pbmRleE9mKCJtYXhpbXVtSW50ZWdlckRpZ2l0cyIpKyJtYXhpbXVtSW50ZWdlckRpZ2l0cyIubGVuZ3RoKCkpKTsKKwkJCVN5c3RlbS5vdXQucHJpbnRsbigibWluaW11bUZyYWN0aW9uRGlnaXRzIDogIiArICh0ZW1wLmluZGV4T2YoIm1pbmltdW1GcmFjdGlvbkRpZ2l0cyIpKyJtaW5pbXVtRnJhY3Rpb25EaWdpdHMiLmxlbmd0aCgpKSk7CisJCQlTeXN0ZW0ub3V0LnByaW50bG4oIm1heGltdW1GcmFjdGlvbkRpZ2l0cyA6ICIgKyAodGVtcC5pbmRleE9mKCJtYXhpbXVtRnJhY3Rpb25EaWdpdHMiKSsibWF4aW11bUZyYWN0aW9uRGlnaXRzIi5sZW5ndGgoKSkpOworCQkJKi8KKwkJCS8vZmlsZS53cml0ZShteUFycik7CisJCQlmaWxlLndyaXRlKCgiXG4gICAgIitjb21tZW50KS5nZXRCeXRlcygpKTsKKwkJCWZpbGUud3JpdGUobmV3IFN0cmluZygiXG4gICAgc3RhdGljIGJ5dGVbXSAiK25hbWUrIiA9IG5ldyBieXRlW117IFxuIikuZ2V0Qnl0ZXMoIlVURi04IikpOworCQkJZmlsZS53cml0ZSggIiAgICAgICAgIi5nZXRCeXRlcygpKTsKKwkJCWZvcihpbnQgaT0wOyBpPG15QXJyLmxlbmd0aDsgaSsrKXsKKwkJCQlmaWxlLndyaXRlKFN0cmluZy52YWx1ZU9mKChpbnQpbXlBcnJbaV0pLmdldEJ5dGVzKCkpOworCQkJCWZpbGUud3JpdGUoICIsICIuZ2V0Qnl0ZXMoKSk7CisJCQkJaWYoKGkrMSklMjAgPT0gMCl7CisJCQkJCWZpbGUud3JpdGUoIlxuIi5nZXRCeXRlcygpKTsKKwkJCQkJZmlsZS53cml0ZSggIiAgICAgICAgIi5nZXRCeXRlcygpKTsKKwkJCQl9CisJCQl9CisJCQlmaWxlLndyaXRlKG5ldyBTdHJpbmcoIlxuICAgIH07XG4iKS5nZXRCeXRlcygiVVRGLTgiKSk7CisJCX1jYXRjaCggRXhjZXB0aW9uIGUpeworCQkJU3lzdGVtLm91dC5wcmludGxuKGUuZ2V0TWVzc2FnZSgpKTsKKwkJCWUucHJpbnRTdGFja1RyYWNlKCk7CisJCX0KKwkKKwl9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvaXRlcmF0b3IvVGVzdFVDaGFyYWN0ZXJJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2l0ZXJhdG9yL1Rlc3RVQ2hhcmFjdGVySXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MDNiMTRkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2l0ZXJhdG9yL1Rlc3RVQ2hhcmFjdGVySXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDU4NiBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9pdGVyYXRvci9UZXN0VUNoYXJhY3Rlckl0ZXJhdG9yLmphdmEsdiAkCisgKiAkRGF0ZTogMjAwMi8wOC8xMyAyMTo1NzowNSAkCisgKiAkUmV2aXNpb246IDEuNiAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5pdGVyYXRvcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlJlcGxhY2VhYmxlU3RyaW5nOworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvcjsKKworLyoqCisgKiBAYXV0aG9yIHJhbQorICoKKyAqIFRvIGNoYW5nZSB0aGlzIGdlbmVyYXRlZCBjb21tZW50IGVkaXQgdGhlIHRlbXBsYXRlIHZhcmlhYmxlICJ0eXBlY29tbWVudCI6CisgKiBXaW5kb3c+UHJlZmVyZW5jZXM+SmF2YT5UZW1wbGF0ZXMuCisgKiBUbyBlbmFibGUgYW5kIGRpc2FibGUgdGhlIGNyZWF0aW9uIG9mIHR5cGUgY29tbWVudHMgZ28gdG8KKyAqIFdpbmRvdz5QcmVmZXJlbmNlcz5KYXZhPkNvZGUgR2VuZXJhdGlvbi4KKyAqLworcHVibGljIGNsYXNzIFRlc3RVQ2hhcmFjdGVySXRlcmF0b3IgZXh0ZW5kcyBUZXN0Rm13a3sKKworICAgIC8vIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yCisgICAgICovCisgICAgcHVibGljIFRlc3RVQ2hhcmFjdGVySXRlcmF0b3IoKQorICAgIHsKKyAgICB9CisgIAorICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIAorICAgIC8qKgorICAgICogVGVzdGluZyBjbG9uaW5nCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2xvbmUoKSB0aHJvd3MgQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24KKyAgICB7CisgICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlcmF0b3IgPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2UoInRlc3RpbmciKTsKKyAgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBjbG9uZWQgPSAoVUNoYXJhY3Rlckl0ZXJhdG9yKWl0ZXJhdG9yLmNsb25lKCk7CisgICAgICAgICBpbnQgY29tcGxldGVkID0gMDsKKyAgICAgICAgIHdoaWxlIChjb21wbGV0ZWQgIT0gVUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgIGNvbXBsZXRlZCA9IGl0ZXJhdG9yLm5leHQoKTsKKyAgICAgICAgICAgIGlmIChjb21wbGV0ZWQgIT0gY2xvbmVkLm5leHQoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJDbG9uZWQgb3BlcmF0aW9uIGZhaWxlZCIpOworICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBnZXRUZXh0KFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyYXRvciwgU3RyaW5nIHJlc3VsdCl7CisgICAgICAgIC8qIHRlc3QgZ2V0VGV4dCAqLworICAgICAgICBjaGFyW10gYnVmPSBuZXcgY2hhclsxXTsKKwkJZm9yKDs7KXsKKwkJICAgIHRyeXsKKwkJICAgICAgICBpdGVyYXRvci5nZXRUZXh0KGJ1Zik7CisJCSAgICAgICAgYnJlYWs7CisJCSAgICB9Y2F0Y2goSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKXsKKwkJICAgICAgICBidWYgPSBuZXcgY2hhcltpdGVyYXRvci5nZXRMZW5ndGgoKV07CisJCSAgICB9CisJCX0KKyAgICAgICAgaWYocmVzdWx0LmNvbXBhcmVUbyhuZXcgU3RyaW5nKGJ1ZiwwLGl0ZXJhdG9yLmdldExlbmd0aCgpKSkhPTApeworICAgICAgICAgICAgZXJybG4oImdldFRleHQgZmFpbGVkIGZvciBpdGVyYXRvciIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3RpbmcgaXRlcmF0aW9uCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEl0ZXJhdGlvbigpCisgICAgeworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlcmF0b3IgID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElURVJBVElPTl9TVFJJTkdfKTsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXJhdG9yMiA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJVEVSQVRJT05fU1RSSU5HXyk7CisgICAgICAgIGl0ZXJhdG9yLnNldFRvU3RhcnQoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBpZiAoaXRlcmF0b3IuY3VycmVudCgpICE9IElURVJBVElPTl9TVFJJTkdfLmNoYXJBdCgwKSkgeworICAgICAgICAgICAgZXJybG4oIkl0ZXJhdG9yIGZhaWxlZCByZXRyaWV2aW5nIGZpcnN0IGNoYXJhY3RlciIpOworICAgICAgICB9CisgICAgICAgIGl0ZXJhdG9yLnNldFRvTGltaXQoKTsgCisgICAgICAgIGlmIChpdGVyYXRvci5wcmV2aW91cygpICE9IElURVJBVElPTl9TVFJJTkdfLmNoYXJBdCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElURVJBVElPTl9TVFJJTkdfLmxlbmd0aCgpIC0gMSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJJdGVyYXRvciBmYWlsZWQgcmV0cmlldmluZyBsYXN0IGNoYXJhY3RlciIpOworICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgaWYgKGl0ZXJhdG9yLmdldExlbmd0aCgpICE9IElURVJBVElPTl9TVFJJTkdfLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBlcnJsbigiSXRlcmF0b3IgZmFpbGVkIGRldGVybWluaW5nIGJlZ2luIGFuZCBlbmQgaW5kZXgiKTsKKyAgICAgICAgfSAgCisgICAgICAgIGl0ZXJhdG9yMi5zZXRJbmRleCgwKTsKKyAgICAgICAgaXRlcmF0b3Iuc2V0SW5kZXgoMCk7CisgICAgICAgIGludCBjaCA9IDA7CisgICAgICAgIHdoaWxlIChjaCAhPSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgaW50IGluZGV4ID0gaXRlcmF0b3IyLmdldEluZGV4KCk7CisgICAgICAgICAgICBjaCA9IGl0ZXJhdG9yMi5uZXh0Q29kZVBvaW50KCk7CisgICAgICAgICAgICBpZiAoaW5kZXggIT0gSVRFUkFUSU9OX1NVUFBMRU1FTlRBUllfSU5ERVgpIHsKKyAgICAgICAgICAgICAgICBpZiAoY2ggIT0gKGludClpdGVyYXRvci5uZXh0KCkgJiYgCisgICAgICAgICAgICAgICAgICAgIGNoICE9IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBtaXNtYXRjaCBpbiBuZXh0KCkgYW5kIG5leHRDb2RlUG9pbnQoKSIpOyAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZShjaCkgIT0gaXRlcmF0b3IubmV4dCgpIHx8CisgICAgICAgICAgICAgICAgICAgIFVURjE2LmdldFRyYWlsU3Vycm9nYXRlKGNoKSAhPSBpdGVyYXRvci5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIG1pc21hdGNoIGluIG5leHQgYW5kIG5leHRDb2RlUG9pbnQgZm9yICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAic3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGl0ZXJhdG9yLnNldEluZGV4KElURVJBVElPTl9TVFJJTkdfLmxlbmd0aCgpKTsKKyAgICAgICAgaXRlcmF0b3IyLnNldEluZGV4KElURVJBVElPTl9TVFJJTkdfLmxlbmd0aCgpKTsKKyAgICAgICAgd2hpbGUgKGNoICE9IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICBpbnQgaW5kZXggPSBpdGVyYXRvcjIuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgIGNoID0gaXRlcmF0b3IyLnByZXZpb3VzQ29kZVBvaW50KCk7CisgICAgICAgICAgICBpZiAoaW5kZXggIT0gSVRFUkFUSU9OX1NVUFBMRU1FTlRBUllfSU5ERVgpIHsKKyAgICAgICAgICAgICAgICBpZiAoY2ggIT0gKGludClpdGVyYXRvci5wcmV2aW91cygpICYmIAorICAgICAgICAgICAgICAgICAgICBjaCAhPSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgbWlzbWF0Y2ggaW4gcHJldmlvdXMoKSBhbmQgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJwcmV2aW91c0NvZGVQb2ludCgpIik7IAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKGNoKSAhPSBpdGVyYXRvci5wcmV2aW91cygpIHx8IAorICAgICAgICAgICAgICAgICAgICBVVEYxNi5nZXRUcmFpbFN1cnJvZ2F0ZShjaCkgIT0gaXRlcmF0b3IucHJldmlvdXMoKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgbWlzbWF0Y2ggaW4gcHJldmlvdXMgYW5kICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAicHJldmlvdXNDb2RlUG9pbnQgZm9yIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmcpCisgICAgeworICAgICAgICB0cnkKKyAgICAgICAgeworICAgICAgICAgICAgVGVzdFVDaGFyYWN0ZXJJdGVyYXRvciB0ZXN0ID0gbmV3IFRlc3RVQ2hhcmFjdGVySXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHRlc3QucnVuKGFyZyk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKQorICAgICAgICB7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vVGVzdHMgZm9yIG5ldyBBUEkgZm9yIHV0Zi0xNiBzdXBwb3J0IAorCXB1YmxpYyB2b2lkIFRlc3RJdGVyYXRpb25VQ2hhcjMyKCkgeworCSAgICBTdHJpbmcgdGV4dD0iXHUwMDYxXHUwMDYyXHVkODQxXHVkYzAyXHUyMGFjXHVkN2ZmXHVkODQyXHVkYzA2XHVkODAxXHVkYzAwXHUwMDYxIjsKKwkgICAgaW50IGM7CisJICAgIGludCBpOworCSAgICB7CisJICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZSh0ZXh0KTsKKwkKKwkgICAgICAgIFN0cmluZyBpdGVyVGV4dCA9IGl0ZXIuZ2V0VGV4dCgpOworCSAgICAgICAgaWYgKCFpdGVyVGV4dC5lcXVhbHModGV4dCkpCisJICAgICAgICAgIGVycmxuKCJpdGVyLmdldFRleHQoKSBmYWlsZWQiKTsKKwkgICAgICAgIAorICAgICAgICAgICAgaXRlci5zZXRJbmRleCgxKTsKKwkgICAgICAgIGlmIChpdGVyLmN1cnJlbnRDb2RlUG9pbnQoKSAhPSBVVEYxNi5jaGFyQXQodGV4dCwxKSkKKwkgICAgICAgICAgICBlcnJsbigiSXRlcmF0b3IgZGlkbid0IHN0YXJ0IG91dCBpbiB0aGUgcmlnaHQgcGxhY2UuIik7CisJCisJICAgICAgICBpdGVyLnNldFRvU3RhcnQoKTsKKwkgICAgICAgIGM9aXRlci5jdXJyZW50Q29kZVBvaW50KCk7CisgICAgICAgICAgICBpPTA7CisJICAgICAgICBpPWl0ZXIubW92ZUNvZGVQb2ludEluZGV4KDEpOworCSAgICAgICAgYz1pdGVyLmN1cnJlbnRDb2RlUG9pbnQoKTsKKwkgICAgICAgIGlmKGMgIT0gVVRGMTYuY2hhckF0KHRleHQsMSkgfHwgaSE9MSkKKwkgICAgICAgICAgICBlcnJsbigibW92ZUNvZGVQb2ludEluZGV4KDEpIGRpZG4ndCB3b3JrIGNvcnJlY3RseSBleHBlY3RlZCAiKyBoZXgoYykgKyIgZ290ICIraGV4KFVURjE2LmNoYXJBdCh0ZXh0LDEpKSArICIgaT0gIiArIGkpOworCQorCSAgICAgICAgaT1pdGVyLm1vdmVDb2RlUG9pbnRJbmRleCgyKTsKKwkgICAgICAgIGM9aXRlci5jdXJyZW50Q29kZVBvaW50KCk7CisJICAgICAgICBpZihjICE9IFVURjE2LmNoYXJBdCh0ZXh0LDQpIHx8IGkhPTQpCisJICAgICAgICAgICAgZXJybG4oIm1vdmVDb2RlUG9pbnRJbmRleCgyKSBkaWRuJ3Qgd29yayBjb3JyZWN0bHkgZXhwZWN0ZWQgIisgaGV4KGMpICsiIGdvdCAiK2hleChVVEYxNi5jaGFyQXQodGV4dCw0KSkgKyAiIGk9ICIgKyBpKTsKKyAgICAgICAgICAgICAgICAKKwkgICAgICAgIGk9aXRlci5tb3ZlQ29kZVBvaW50SW5kZXgoLTIpOworCSAgICAgICAgYz1pdGVyLmN1cnJlbnRDb2RlUG9pbnQoKTsKKwkgICAgICAgIGlmKGMgIT0gVVRGMTYuY2hhckF0KHRleHQsMSkgfHwgaSE9MSkKKyAgICAgICAgICAgICAgICAgZXJybG4oIm1vdmVDb2RlUG9pbnRJbmRleCgtMikgZGlkbid0IHdvcmsgY29ycmVjdGx5IGV4cGVjdGVkICIrIGhleChjKSArIiBnb3QgIitoZXgoVVRGMTYuY2hhckF0KHRleHQsMSkpICsgIiBpPSAiICsgaSk7CisKKwkgICAgICAgIGl0ZXIuc2V0VG9MaW1pdCgpOworCSAgICAgICAgaT1pdGVyLm1vdmVDb2RlUG9pbnRJbmRleCgtMik7CisJICAgICAgICBjPWl0ZXIuY3VycmVudENvZGVQb2ludCgpOworCSAgICAgICAgaWYoYyAhPSBVVEYxNi5jaGFyQXQodGV4dCwodGV4dC5sZW5ndGgoKS0zKSkgfHwgaSE9KHRleHQubGVuZ3RoKCktMykpCisgICAgICAgICAgICAgICAgZXJybG4oIm1vdmVDb2RlUG9pbnRJbmRleCgtMikgZGlkbid0IHdvcmsgY29ycmVjdGx5IGV4cGVjdGVkICIrIGhleChjKSArIiBnb3QgIitoZXgoVVRGMTYuY2hhckF0KHRleHQsKHRleHQubGVuZ3RoKCktMykpICkgKyAiIGk9ICIgKyBpKTsKKwkgICAgICAgIAorCSAgICAgICAgaXRlci5zZXRUb1N0YXJ0KCk7CisJICAgICAgICBjID0gaXRlci5jdXJyZW50Q29kZVBvaW50KCk7CisJICAgICAgICBpID0gMDsKKwkKKwkgICAgICAgIC8vdGVzdGluZyBmaXJzdDMyUG9zdEluYywgbmV4dENvZGVQb2ludFBvc3RJbmMsIHNldFRvc3RhcnQKKwkgICAgICAgIGkgPSAwOworCSAgICAgICAgaXRlci5zZXRUb1N0YXJ0KCk7CisJICAgICAgICBjID1pdGVyLm5leHQoKTsKKyAgICAgICAgICAgIGlmKGMgIT0gVVRGMTYuY2hhckF0KHRleHQsaSkpCisJICAgICAgICAgICAgZXJybG4oImZpcnN0MzJQb3N0SW5jIGZhaWxlZC4gIEV4cGVjdGVkLT4iK2hleChVVEYxNi5jaGFyQXQodGV4dCxpKSkrIiBHb3QtPiAiK2hleChjKSk7CisJICAgICAgICBpZihpdGVyLmdldEluZGV4KCkgIT0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpICsgaSkKKwkgICAgICAgICAgICBlcnJsbigiZ2V0SW5kZXgoKSBhZnRlciBmaXJzdDMyUG9zdEluYygpIGZhaWxlZCIpOworCQorCSAgICAgICAgaXRlci5zZXRUb1N0YXJ0KCk7CisJICAgICAgICBpPTA7CisJICAgICAgICBpZiAoaXRlci5nZXRJbmRleCgpICE9IDApCisJICAgICAgICAgICAgZXJybG4oInNldFRvU3RhcnQgZmFpbGVkIik7CisJICAgICAgIAorCSAgICAgICAgbG9nbG4oIlRlc3RpbmcgZm9yd2FyZCBpdGVyYXRpb24uLi4iKTsKKwkgICAgICAgIGRvIHsKKwkgICAgICAgICAgICBpZiAoYyAhPSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkKKwkgICAgICAgICAgICAgICAgYyA9IGl0ZXIubmV4dENvZGVQb2ludCgpOworCQorCSAgICAgICAgICAgIGlmKGMgIT0gVVRGMTYuY2hhckF0KHRleHQsaSkpCisJICAgICAgICAgICAgICAgIGVycmxuKCJDaGFyYWN0ZXIgbWlzbWF0Y2ggYXQgcG9zaXRpb24gIitpKyIsIGl0ZXJhdG9yIGhhcyAiK2hleChjKSsiLCBzdHJpbmcgaGFzICIraGV4KFVURjE2LmNoYXJBdCh0ZXh0LGkpKSk7CisgICAgCisJICAgICAgICAgICAgaSs9VVRGMTYuZ2V0Q2hhckNvdW50KGMpOworCSAgICAgICAgICAgIGlmKGl0ZXIuZ2V0SW5kZXgoKSAhPSBpKQorCSAgICAgICAgICAgICAgICBlcnJsbigiZ2V0SW5kZXgoKSBhZnRyIG5leHRDb2RlUG9pbnRQb3N0SW5jKCkgaXNuJ3Qgd29ya2luZyByaWdodCIpOworICAgICAgICAgICAgICAgIGMgPSBpdGVyLmN1cnJlbnRDb2RlUG9pbnQoKTsgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYoIGMhPVVDaGFyYWN0ZXJJdGVyYXRvci5ET05FICYmIGMgIT0gVVRGMTYuY2hhckF0KHRleHQsaSkpCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJjdXJyZW50KCkgYWZ0ZXIgbmV4dENvZGVQb2ludFBvc3RJbmMoKSBpc24ndCB3b3JraW5nIHJpZ2h0Iik7CisKKwkgICAgICAgIH0gd2hpbGUgKGMhPVVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKTsKKwkgICAgICAgIGM9aXRlci5uZXh0Q29kZVBvaW50KCk7CisJICAgICAgICBpZihjIT0gVUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpCisJICAgICAgICAgICAgZXJybG4oIm5leHRDb2RlUG9pbnRQb3N0SW5jKCkgZGlkbid0IHJldHVybiBET05FIGF0IHRoZSBiZWdpbm5pbmciKTsKKwkKKwkKKwkgICAgfQorCX0gIAorICAgIAorICAgIGNsYXNzIFVDaGFySXRlcmF0b3IgeworICAgIAorICAgICAgIHB1YmxpYyBVQ2hhckl0ZXJhdG9yKGludFtdIHNyYywgaW50IGxlbiwgaW50IGluZGV4KXsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcz1zcmM7CisgICAgICAgICAgICBsZW5ndGg9bGVuOworICAgICAgICAgICAgaT1pbmRleDsKKyAgICAgICB9CisgICAgCisgICAgICAgIHB1YmxpYyBpbnQgY3VycmVudCgpIHsKKyAgICAgICAgICAgIGlmKGk8bGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHNbaV07CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICBwdWJsaWMgaW50IG5leHQoKSB7CisgICAgICAgICAgICBpZihpPGxlbmd0aCkgeworICAgICAgICAgICAgICAgIHJldHVybiBzW2krK107CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICBwdWJsaWMgaW50IHByZXZpb3VzKCkgeworICAgICAgICAgICAgaWYoaT4wKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHNbLS1pXTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0SW5kZXgoKSB7CisgICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBwcml2YXRlIGludFtdIHM7CisgICAgICAgIHByaXZhdGUgaW50IGxlbmd0aCwgaTsKKyAgICB9OworICAgIC8vIHNyYyBhbmQgZXhwZWN0IHN0cmluZ3MKKyAgICBwcml2YXRlIGZpbmFsIGNoYXIgc3JjW109eworICAgICAgICBVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKDB4MmY5OTkpLCBVVEYxNi5nZXRUcmFpbFN1cnJvZ2F0ZSgweDJmOTk5KSwKKyAgICAgICAgVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZSgweDFkMTVmKSwgVVRGMTYuZ2V0VHJhaWxTdXJyb2dhdGUoMHgxZDE1ZiksCisgICAgICAgIDB4YzQsCisgICAgICAgIDB4MWVkMAorICAgIH07CisgICAgcHVibGljIHZvaWQgVGVzdFByZXZpb3VzTmV4dCgpeworICAgICAgICAvLyBpdGVyYXRvcnMKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIxID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKG5ldyBSZXBsYWNlYWJsZVN0cmluZyhuZXcgU3RyaW5nKHNyYykpKTsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHNyYy8qY2hhciBhcnJheSovKTsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIzID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihuZXcgU3RyaW5nKHNyYykpKTsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXI0ID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKG5ldyBTdHJpbmdCdWZmZXIobmV3IFN0cmluZyhzcmMpKSk7CisgICAgICAgIHByZXZpb3VzTmV4dChpdGVyMSk7CisgICAgICAgIHByZXZpb3VzTmV4dChpdGVyMik7CisgICAgICAgIHByZXZpb3VzTmV4dChpdGVyMyk7CisgICAgICAgIHByZXZpb3VzTmV4dChpdGVyNCk7CisgICAgICAgIGdldFRleHQoaXRlcjEsbmV3IFN0cmluZyhzcmMpKTsKKyAgICAgICAgZ2V0VGV4dChpdGVyMixuZXcgU3RyaW5nKHNyYykpOworICAgICAgICBnZXRUZXh0KGl0ZXIzLG5ldyBTdHJpbmcoc3JjKSk7CisgICAgICAgIC8qIGdldENoYXJhY3Rlckl0ZXJhdG9yICovCisgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIGNpdGVyMSA9IGl0ZXIxLmdldENoYXJhY3Rlckl0ZXJhdG9yKCk7CisgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIGNpdGVyMiA9IGl0ZXIyLmdldENoYXJhY3Rlckl0ZXJhdG9yKCk7CisgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIGNpdGVyMyA9IGl0ZXIzLmdldENoYXJhY3Rlckl0ZXJhdG9yKCk7CisgICAgICAgIGlmKGNpdGVyMS5maXJzdCgpICE9aXRlcjEuY3VycmVudCgpKXsKKyAgICAgICAgICAgIGVycmxuKCJnZXRDaGFyYWN0ZXJJdGVyYXRvciBmb3IgaXRlcjEgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAgICAgaWYoY2l0ZXIyLmZpcnN0KCkgIT1pdGVyMi5jdXJyZW50KCkpeworICAgICAgICAgICAgZXJybG4oImdldENoYXJhY3Rlckl0ZXJhdG9yIGZvciBpdGVyMiBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBpZihjaXRlcjMuZmlyc3QoKSAhPWl0ZXIzLmN1cnJlbnQoKSl7CisgICAgICAgICAgICBlcnJsbigiZ2V0Q2hhcmFjdGVySXRlcmF0b3IgZm9yIGl0ZXIzIGZhaWxlZCIpOworICAgICAgICB9CisgICAgICAgIC8qIFRlc3QgY2xvbmUoKSAgJiYgbW92ZUluZGV4KCkqLworICAgICAgICB0cnl7CisJICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgY2xvbmUxID0gKFVDaGFyYWN0ZXJJdGVyYXRvcilpdGVyMS5jbG9uZSgpOworCSAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGNsb25lMiA9IChVQ2hhcmFjdGVySXRlcmF0b3IpaXRlcjIuY2xvbmUoKTsKKwkgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBjbG9uZTMgPSAoVUNoYXJhY3Rlckl0ZXJhdG9yKWl0ZXIzLmNsb25lKCk7CisJICAgICAgICBpZihjbG9uZTEubW92ZUluZGV4KDMpIT1pdGVyMS5tb3ZlSW5kZXgoMykpeworCSAgICAgICAgICAgIGVycmxuKCJtb3ZlSW5kZXggZm9yIGl0ZXIxIGZhaWxlZCIpOworCSAgICAgICAgfQorCSAgICAgICAgaWYoY2xvbmUyLm1vdmVJbmRleCgzKSE9aXRlcjIubW92ZUluZGV4KDMpKXsKKwkgICAgICAgICAgICBlcnJsbigibW92ZUluZGV4IGZvciBpdGVyMiBmYWlsZWQiKTsKKwkgICAgICAgIH0KKwkgICAgICAgIGlmKGNsb25lMy5tb3ZlSW5kZXgoMykhPWl0ZXIzLm1vdmVJbmRleCgzKSl7CisJICAgICAgICAgICAgZXJybG4oIm1vdmVJbmRleCBmb3IgaXRlcjEgZmFpbGVkIik7CisJICAgICAgICB9CisgICAgICAgIH1jYXRjaCAoRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjbG9uZSB0aGUgaXRlcmF0b3IiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBwcmV2aW91c05leHQoVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIpIHsKKworICAgICAgICBpbnQgZXhwZWN0W109eworICAgICAgICAgICAgMHgyZjk5OSwKKyAgICAgICAgICAgIDB4MWQxNWYsCisgICAgICAgICAgICAweGM0LAorICAgICAgICAgICAgMHgxZWQwCisgICAgICAgIH07CisgICAgCisgICAgICAgIC8vIGV4cGVjdGVkIHNyYyBpbmRleGVzIGNvcnJlc3BvbmRpbmcgdG8gZXhwZWN0IGluZGV4ZXMKKyAgICAgICAgaW50IGV4cGVjdEluZGV4W109eworICAgICAgICAgICAgMCwwLAorICAgICAgICAgICAgMSwxLAorICAgICAgICAgICAgMiwKKyAgICAgICAgICAgIDMsCisgICAgICAgICAgICA0IC8vbmVlZGVkIAorICAgICAgICB9OworICAgIAorICAgICAgICAvLyBpbml0aWFsIGluZGV4ZXMgaW50byB0aGUgc3JjIGFuZCBleHBlY3Qgc3RyaW5ncworICAgICAgICAKKyAgICAgICAgZmluYWwgaW50IFNSQ19NSURETEU9NDsKKyAgICAgICAgZmluYWwgaW50IEVYUEVDVF9NSURETEU9MjsKKyAgICAgICAgCisgICAgCisgICAgICAgIC8vIG1vdmVtZW50IHZlY3RvcgorICAgICAgICAvLyAtIGZvciBwcmV2aW91cygpLCAwIGZvciBjdXJyZW50KCksICsgZm9yIG5leHQoKQorICAgICAgICAvLyBub3QgY29uc3Qgc28gdGhhdCB3ZSBjYW4gdGVybWluYXRlIGl0IGJlbG93IGZvciB0aGUgZXJyb3IgbWVzc2FnZQorICAgICAgICBTdHJpbmcgbW92ZXM9IjArMCswLS0wLTAtKysrMC0tKysrKysrKzAtLS0tLS0tLSI7CisgICAgCisgICAgICAgIAorICAgICAgICBVQ2hhckl0ZXJhdG9yIGl0ZXIzMiA9IG5ldyBVQ2hhckl0ZXJhdG9yKGV4cGVjdCwgZXhwZWN0Lmxlbmd0aCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9NSURETEUpOworICAgIAorICAgICAgICBpbnQgYzEsIGMyOworICAgICAgICBjaGFyIG07CisgICAgCisgICAgICAgIC8vIGluaXRpYWxseSBzZXQgdGhlIGluZGV4ZXMgaW50byB0aGUgbWlkZGxlIG9mIHRoZSBzdHJpbmdzCisgICAgICAgIGl0ZXIuc2V0SW5kZXgoU1JDX01JRERMRSk7CisgICAgCisgICAgICAgIC8vIG1vdmUgYXJvdW5kIGFuZCBjb21wYXJlIHRoZSBpdGVyYXRpb24gY29kZSBwb2ludHMgd2l0aAorICAgICAgICAvLyB0aGUgZXhwZWN0ZWQgb25lcworICAgICAgICBpbnQgbW92ZXNJbmRleCA9MDsKKyAgICAgICAgd2hpbGUobW92ZXNJbmRleDxtb3Zlcy5sZW5ndGgoKSkgeworICAgICAgICAgICAgbT1tb3Zlcy5jaGFyQXQobW92ZXNJbmRleCsrKTsKKyAgICAgICAgICAgIGlmKG09PSctJykgeworICAgICAgICAgICAgICAgIGMxPWl0ZXIucHJldmlvdXNDb2RlUG9pbnQoKTsKKyAgICAgICAgICAgICAgICBjMj1pdGVyMzIucHJldmlvdXMoKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZihtPT0nMCcpIHsKKyAgICAgICAgICAgICAgICBjMT1pdGVyLmN1cnJlbnRDb2RlUG9pbnQoKTsKKyAgICAgICAgICAgICAgICBjMj1pdGVyMzIuY3VycmVudCgpOworICAgICAgICAgICAgfSBlbHNlICB7Ly8gbT09JysnIAorICAgICAgICAgICAgICAgIGMxPWl0ZXIubmV4dENvZGVQb2ludCgpOworICAgICAgICAgICAgICAgIGMyPWl0ZXIzMi5uZXh0KCk7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvLyBjb21wYXJlIHJlc3VsdHMKKyAgICAgICAgICAgIGlmKGMxIT1jMikgeworICAgICAgICAgICAgICAgIC8vIGNvcHkgdGhlIG1vdmVzIHVudGlsIHRoZSBjdXJyZW50IChtKSBtb3ZlLCBhbmQgdGVybWluYXRlCisgICAgICAgICAgICAgICAgU3RyaW5nIGhpc3RvcnkgPSBtb3Zlcy5zdWJzdHJpbmcoMCxtb3Zlc0luZGV4KTsKKyAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3I6IG1pc21hdGNoIGluIE5vcm1hbGl6ZXIgaXRlcmF0aW9uIGF0ICIraGlzdG9yeSsiOiAiCisgICAgICAgICAgICAgICAgICAgICAgKyJnb3QgYzE9ICIgKyBoZXgoYzEpICsiICE9IGV4cGVjdGVkIGMyPSAiKyBoZXgoYzIpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8vIGNvbXBhcmUgaW5kZXhlcworICAgICAgICAgICAgaWYoZXhwZWN0SW5kZXhbaXRlci5nZXRJbmRleCgpXSE9aXRlcjMyLmdldEluZGV4KCkpIHsKKyAgICAgICAgICAgICAgICAvLyBjb3B5IHRoZSBtb3ZlcyB1bnRpbCB0aGUgY3VycmVudCAobSkgbW92ZSwgYW5kIHRlcm1pbmF0ZQorICAgICAgICAgICAgICAgIFN0cmluZyBoaXN0b3J5ID0gbW92ZXMuc3Vic3RyaW5nKDAsbW92ZXNJbmRleCk7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yOiBpbmRleCBtaXNtYXRjaCBpbiBOb3JtYWxpemVyIGl0ZXJhdGlvbiBhdCAiCisgICAgICAgICAgICAgICAgICAgICAgK2hpc3RvcnkrICIgOiAiKyAiTm9ybWFsaXplciBpbmRleCAiICtpdGVyLmdldEluZGV4KCkKKyAgICAgICAgICAgICAgICAgICAgICArIiBleHBlY3RlZCAiKyBleHBlY3RJbmRleFtpdGVyMzIuZ2V0SW5kZXgoKV0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RVbmljb2RlQ2hhcmFjYXRlckl0ZXJhdG9yKCl7CisgICAgICAgIGludCBleHBlY3RbXT17CisgICAgICAgICAgICAweDJmOTk5LAorICAgICAgICAgICAgMHgxZDE1ZiwKKyAgICAgICAgICAgIDB4YzQsCisgICAgICAgICAgICAweDFlZDAKKyAgICAgICAgfTsKKyAgICAKKyAgICAgICAgLy8gZXhwZWN0ZWQgc3JjIGluZGV4ZXMgY29ycmVzcG9uZGluZyB0byBleHBlY3QgaW5kZXhlcworICAgICAgICBpbnQgZXhwZWN0SW5kZXhbXT17CisgICAgICAgICAgICAwLDAsCisgICAgICAgICAgICAxLDEsCisgICAgICAgICAgICAyLAorICAgICAgICAgICAgMywKKyAgICAgICAgICAgIDQgLy9uZWVkZWQgCisgICAgICAgIH07CisgICAgCisgICAgICAgIC8vIGluaXRpYWwgaW5kZXhlcyBpbnRvIHRoZSBzcmMgYW5kIGV4cGVjdCBzdHJpbmdzCisgICAgICAgIAorICAgICAgICBmaW5hbCBpbnQgU1JDX01JRERMRT00OworICAgICAgICBmaW5hbCBpbnQgRVhQRUNUX01JRERMRT0yOworICAgICAgICAKKyAgICAKKyAgICAgICAgLy8gbW92ZW1lbnQgdmVjdG9yCisgICAgICAgIC8vIC0gZm9yIHByZXZpb3VzKCksIDAgZm9yIGN1cnJlbnQoKSwgKyBmb3IgbmV4dCgpCisgICAgICAgIC8vIG5vdCBjb25zdCBzbyB0aGF0IHdlIGNhbiB0ZXJtaW5hdGUgaXQgYmVsb3cgZm9yIHRoZSBlcnJvciBtZXNzYWdlCisgICAgICAgIFN0cmluZyBtb3Zlcz0iMCswKzAtLTAtMC0rKyswLS0rKysrKysrMC0tLS0tLS0tIjsKKyAgICAKKyAgICAgICAgCisgICAgICAgIFVDaGFySXRlcmF0b3IgaXRlcjMyID0gbmV3IFVDaGFySXRlcmF0b3IoZXhwZWN0LCBleHBlY3QubGVuZ3RoLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNUX01JRERMRSk7CisgICAgICAgIAorICAgICAgICBVbmljb2RlQ2hhcmFjdGVySXRlcmF0b3IgaXRlciA9IG5ldyBVbmljb2RlQ2hhcmFjdGVySXRlcmF0b3IobmV3IFN0cmluZyhzcmMpKTsgCisgICAgICAgIGludCBjMSwgYzI7CisgICAgICAgIGNoYXIgbTsKKyAgICAgIAorICAgICAgICAvLyBpbml0aWFsbHkgc2V0IHRoZSBpbmRleGVzIGludG8gdGhlIG1pZGRsZSBvZiB0aGUgc3RyaW5ncworICAgICAgICBpdGVyLnNldEluZGV4KFNSQ19NSURETEUpOworICAgIAorICAgICAgICAvLyBtb3ZlIGFyb3VuZCBhbmQgY29tcGFyZSB0aGUgaXRlcmF0aW9uIGNvZGUgcG9pbnRzIHdpdGgKKyAgICAgICAgLy8gdGhlIGV4cGVjdGVkIG9uZXMKKyAgICAgICAgaW50IG1vdmVzSW5kZXggPTA7CisgICAgICAgIHdoaWxlKG1vdmVzSW5kZXg8bW92ZXMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIG09bW92ZXMuY2hhckF0KG1vdmVzSW5kZXgrKyk7CisgICAgICAgICAgICBpZihtPT0nLScpIHsKKyAgICAgICAgICAgICAgICBjMT1pdGVyLnByZXZpb3VzQ29kZVBvaW50KCk7CisgICAgICAgICAgICAgICAgYzI9aXRlcjMyLnByZXZpb3VzKCk7CisgICAgICAgICAgICB9IGVsc2UgaWYobT09JzAnKSB7CisgICAgICAgICAgICAgICAgYzE9aXRlci5jdXJyZW50Q29kZVBvaW50KCk7CisgICAgICAgICAgICAgICAgYzI9aXRlcjMyLmN1cnJlbnQoKTsKKyAgICAgICAgICAgIH0gZWxzZSAgey8vIG09PScrJyAKKyAgICAgICAgICAgICAgICBjMT1pdGVyLm5leHRDb2RlUG9pbnQoKTsKKyAgICAgICAgICAgICAgICBjMj1pdGVyMzIubmV4dCgpOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLy8gY29tcGFyZSByZXN1bHRzCisgICAgICAgICAgICBpZihjMSE9YzIpIHsKKyAgICAgICAgICAgICAgICAvLyBjb3B5IHRoZSBtb3ZlcyB1bnRpbCB0aGUgY3VycmVudCAobSkgbW92ZSwgYW5kIHRlcm1pbmF0ZQorICAgICAgICAgICAgICAgIFN0cmluZyBoaXN0b3J5ID0gbW92ZXMuc3Vic3RyaW5nKDAsbW92ZXNJbmRleCk7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yOiBtaXNtYXRjaCBpbiBOb3JtYWxpemVyIGl0ZXJhdGlvbiBhdCAiK2hpc3RvcnkrIjogIgorICAgICAgICAgICAgICAgICAgICAgICsiZ290IGMxPSAiICsgaGV4KGMxKSArIiAhPSBleHBlY3RlZCBjMj0gIisgaGV4KGMyKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvLyBjb21wYXJlIGluZGV4ZXMKKyAgICAgICAgICAgIGlmKGV4cGVjdEluZGV4W2l0ZXIuZ2V0SW5kZXgoKV0hPWl0ZXIzMi5nZXRJbmRleCgpKSB7CisgICAgICAgICAgICAgICAgLy8gY29weSB0aGUgbW92ZXMgdW50aWwgdGhlIGN1cnJlbnQgKG0pIG1vdmUsIGFuZCB0ZXJtaW5hdGUKKyAgICAgICAgICAgICAgICBTdHJpbmcgaGlzdG9yeSA9IG1vdmVzLnN1YnN0cmluZygwLG1vdmVzSW5kZXgpOworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogaW5kZXggbWlzbWF0Y2ggaW4gTm9ybWFsaXplciBpdGVyYXRpb24gYXQgIgorICAgICAgICAgICAgICAgICAgICAgICtoaXN0b3J5KyAiIDogIisgIk5vcm1hbGl6ZXIgaW5kZXggIiAraXRlci5nZXRJbmRleCgpCisgICAgICAgICAgICAgICAgICAgICAgKyIgZXhwZWN0ZWQgIisgZXhwZWN0SW5kZXhbaXRlcjMyLmdldEluZGV4KCldKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB7CisJICAgICAgICAvL3Rlc3QgcHJldmlvdXMgY29kZSBwb2ludAorCSAgICAgICAgY2hhcltdIHNyYyA9IG5ldyBjaGFyW117ICdcdURDMDAnLCdcdUQ4MDAnLCdcdURDMDEnLCdcdUQ4MDInLCdcdURDMDInLCdcdURDMDMnfTsKKwkgICAgICAgIFVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyMSA9IG5ldyBVbmljb2RlQ2hhcmFjdGVySXRlcmF0b3IobmV3IFN0cmluZyhzcmMpKTsKKwkgICAgICAgIGl0ZXIxLnNldEluZGV4KDEpOworCSAgICAgICAgaW50IGNoOworCSAgICAgICAgLy8gdGhpcyBzaG91bGQgbmV2ZXIgZ28gaW50byBhIGluZmluaXRlIGxvb3AKKwkgICAgICAgIC8vIGlmIGl0IGRvZXMgdGhlbiB3ZSBoYXZlIGEgcHJvYmxlbQorCSAgICAgICAgd2hpbGUoKGNoPWl0ZXIxLnByZXZpb3VzQ29kZVBvaW50KCkpIT1pdGVyLkRPTkVfQ09ERVBPSU5UKXsKKwkgICAgICAgICAgICBpZihjaCE9MHhEYzAwKXsKKwkgICAgICAgICAgICAgICAgZXJybG4oIml0ZXIucHJldmlvdXNDb2RlUG9pbnQoKSBmYWlsZWQiKTsKKwkgICAgICAgICAgICB9CisJICAgICAgICB9CisJICAgICAgICBpdGVyMS5zZXRJbmRleCg1KTsKKwkgICAgICAgIHdoaWxlKChjaD1pdGVyMS5uZXh0Q29kZVBvaW50KCkpICE9aXRlci5ET05FX0NPREVQT0lOVCl7CisJICAgICAgICAgICAgaWYoY2ghPSAweERDMDMpeworCSAgICAgICAgICAgICAgICBlcnJsbigiaXRlci5uZXh0Q29kZVBvaW50KCkgZmFpbGVkIik7CisJICAgICAgICAgICAgfSAKKwkgICAgICAgIH0gICAgICAKKwkgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0VUNoYXJhY3Rlckl0ZXJhdG9yV3JhcHBlcigpeworICAgICAgICBTdHJpbmcgc291cmNlID0iYXNkZmFzZGZqb2l1eW9pdXkyMzQxMjM1Njc5ODg2NzY1IjsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHNvdXJjZSk7CisgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIHdyYXBfY2kgPSBpdC5nZXRDaGFyYWN0ZXJJdGVyYXRvcigpOworICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciBjaSA9IG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihzb3VyY2UpOworICAgICAgICB3cmFwX2NpLnNldEluZGV4KDEwKTsKKyAgICAgICAgY2kuc2V0SW5kZXgoMTApOworICAgICAgICBTdHJpbmcgbW92ZXM9IjArMCswLS0wLTAtKysrMC0tKysrKysrKzAtLS0tLS0tLSsrKyswMDAwLS0tLTAtIjsKKyAgICAgICAgaW50IGMxLCBjMjsKKyAgICAgICAgY2hhciBtOworICAgICAgICBpbnQgbW92ZXNJbmRleCA9MDsKKyAgICAgICAgCisgICAgICAgIHdoaWxlKG1vdmVzSW5kZXg8bW92ZXMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIG09bW92ZXMuY2hhckF0KG1vdmVzSW5kZXgrKyk7CisgICAgICAgICAgICBpZihtPT0nLScpIHsKKyAgICAgICAgICAgICAgICBjMT13cmFwX2NpLnByZXZpb3VzKCk7CisgICAgICAgICAgICAgICAgYzI9Y2kucHJldmlvdXMoKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZihtPT0nMCcpIHsKKyAgICAgICAgICAgICAgICBjMT13cmFwX2NpLmN1cnJlbnQoKTsKKyAgICAgICAgICAgICAgICBjMj1jaS5jdXJyZW50KCk7CisgICAgICAgICAgICB9IGVsc2UgIHsvLyBtPT0nKycgCisgICAgICAgICAgICAgICAgYzE9d3JhcF9jaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgYzI9Y2kubmV4dCgpOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLy8gY29tcGFyZSByZXN1bHRzCisgICAgICAgICAgICBpZihjMSE9YzIpIHsKKyAgICAgICAgICAgICAgICAvLyBjb3B5IHRoZSBtb3ZlcyB1bnRpbCB0aGUgY3VycmVudCAobSkgbW92ZSwgYW5kIHRlcm1pbmF0ZQorICAgICAgICAgICAgICAgIFN0cmluZyBoaXN0b3J5ID0gbW92ZXMuc3Vic3RyaW5nKDAsbW92ZXNJbmRleCk7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yOiBtaXNtYXRjaCBpbiBOb3JtYWxpemVyIGl0ZXJhdGlvbiBhdCAiK2hpc3RvcnkrIjogIgorICAgICAgICAgICAgICAgICAgICAgICsiZ290IGMxPSAiICsgaGV4KGMxKSArIiAhPSBleHBlY3RlZCBjMj0gIisgaGV4KGMyKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvLyBjb21wYXJlIGluZGV4ZXMKKyAgICAgICAgICAgIGlmKHdyYXBfY2kuZ2V0SW5kZXgoKSE9Y2kuZ2V0SW5kZXgoKSkgeworICAgICAgICAgICAgICAgIC8vIGNvcHkgdGhlIG1vdmVzIHVudGlsIHRoZSBjdXJyZW50IChtKSBtb3ZlLCBhbmQgdGVybWluYXRlCisgICAgICAgICAgICAgICAgU3RyaW5nIGhpc3RvcnkgPSBtb3Zlcy5zdWJzdHJpbmcoMCxtb3Zlc0luZGV4KTsKKyAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3I6IGluZGV4IG1pc21hdGNoIGluIE5vcm1hbGl6ZXIgaXRlcmF0aW9uIGF0ICIKKyAgICAgICAgICAgICAgICAgICAgICAraGlzdG9yeSsgIiA6ICIrICJOb3JtYWxpemVyIGluZGV4ICIgK3dyYXBfY2kuZ2V0SW5kZXgoKQorICAgICAgICAgICAgICAgICAgICAgICsiIGV4cGVjdGVkICIrIGNpLmdldEluZGV4KCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmKGNpLmZpcnN0KCkhPXdyYXBfY2kuZmlyc3QoKSl7CisgICAgICAgICAgICBlcnJsbigiQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyLmZpcnN0KCkgZmFpbGVkLiBleHBlY3RlZDogIiArIGNpLmZpcnN0KCkgKyAiIGdvdDogIiArd3JhcF9jaS5maXJzdCgpKTsKKyAgICAgICAgfQorICAgICAgICBpZihjaS5sYXN0KCkhPXdyYXBfY2kubGFzdCgpKXsKKyAgICAgICAgICAgIGVycmxuKCJDaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXIubGFzdCgpIGZhaWxlZCBleHBlY3RlZDogIiArIGNpLmxhc3QoKSArICIgZ290OiAiICt3cmFwX2NpLmxhc3QoKSk7CisgICAgICAgIH0KKyAgICAgICAgaWYoY2kuZ2V0QmVnaW5JbmRleCgpIT13cmFwX2NpLmdldEJlZ2luSW5kZXgoKSl7CisgICAgICAgICAgICBlcnJsbigiQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyLmdldEJlZ2luSW5kZXgoKSBmYWlsZWQgZXhwZWN0ZWQ6ICIgKyBjaS5nZXRCZWdpbkluZGV4KCkgKyAiIGdvdDogIiArd3JhcF9jaS5nZXRCZWdpbkluZGV4KCkpOworICAgICAgICB9CisgICAgICAgIGlmKGNpLmdldEVuZEluZGV4KCkhPXdyYXBfY2kuZ2V0RW5kSW5kZXgoKSl7CisgICAgICAgICAgICBlcnJsbigiQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyLmdldEVuZEluZGV4KCkgZmFpbGVkIGV4cGVjdGVkOiAiICsgY2kuZ2V0RW5kSW5kZXgoKSArICIgZ290OiAiICt3cmFwX2NpLmdldEVuZEluZGV4KCkpOworICAgICAgICB9CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIGNsb25lV0NJID0gKENoYXJhY3Rlckl0ZXJhdG9yKSB3cmFwX2NpLmNsb25lKCk7CisgICAgICAgICAgICBpZih3cmFwX2NpLmdldEluZGV4KCkhPWNsb25lV0NJLmdldEluZGV4KCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJDaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXIuY2xvbmUoKSBmYWlsZWQgZXhwZWN0ZWQ6ICIgK3dyYXBfY2kuZ2V0SW5kZXgoKSArICIgZ290OiAiICsgY2xvbmVXQ0kuZ2V0SW5kZXgoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICAgZXJybG4oIkNoYXJhY3Rlckl0ZXJhdG9yLmNsb25lKCkgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICB9CisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIElURVJBVElPTl9TVFJJTkdfID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVzdGluZyAxIDIgMyBcdWQ4MDBcdWRjMDAgNDU2IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSVRFUkFUSU9OX1NVUFBMRU1FTlRBUllfSU5ERVggPSAxNDsKKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Sml0dGVyYnVnMTk1MigpeworICAgICAgICAvL3Rlc3QgcHJldmlvdXMgY29kZSBwb2ludAorICAgICAgICBjaGFyW10gc3JjID0gbmV3IGNoYXJbXXsgJ1x1REMwMCcsJ1x1RDgwMCcsJ1x1REMwMScsJ1x1RDgwMicsJ1x1REMwMicsJ1x1REMwMyd9OworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShzcmMpOworICAgICAgICBpdGVyLnNldEluZGV4KDEpOworICAgICAgICBpbnQgY2g7CisgICAgICAgIC8vIHRoaXMgc2hvdWxkIG5ldmVyIGdvIGludG8gYSBpbmZpbml0ZSBsb29wCisgICAgICAgIC8vIGlmIGl0IGRvZXMgdGhlbiB3ZSBoYXZlIGEgcHJvYmxlbQorICAgICAgICB3aGlsZSgoY2g9aXRlci5wcmV2aW91c0NvZGVQb2ludCgpKSE9aXRlci5ET05FKXsKKwkgICAgICAgIGlmKGNoIT0weERjMDApeworCSAgICAgICAgICAgIGVycmxuKCJpdGVyLnByZXZpb3VzQ29kZVBvaW50KCkgZmFpbGVkIik7CisJICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaXRlci5zZXRJbmRleCg1KTsKKyAgICAgICAgd2hpbGUoKGNoPWl0ZXIubmV4dENvZGVQb2ludCgpKSAhPWl0ZXIuRE9ORSl7CisJICAgICAgICBpZihjaCE9IDB4REMwMyl7CisJICAgICAgICAgICAgZXJybG4oIml0ZXIubmV4dENvZGVQb2ludCgpIGZhaWxlZCIpOworCSAgICAgICAgfSAKKyAgICAgICAgfSAgICAgIAorICAgIH0KKyAgICAgICAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9UZXN0VVNjcmlwdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVGVzdFVTY3JpcHQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42NTI3OTVmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVGVzdFVTY3JpcHQuamF2YQpAQCAtMCwwICsxLDMyNCBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0Lmxhbmc7CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVTY3JpcHQ7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VU2NyaXB0UnVuOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVHJhbnNsaXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBUZXN0VVNjcmlwdCBleHRlbmRzIFRlc3RGbXdreworICAKKyAgICAvKioKKyAgICAqIENvbnN0cnVjdG9yCisgICAgKi8KKyAgICBwdWJsaWMgVGVzdFVTY3JpcHQoKQorICAgIHsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBUZXN0VVNjcmlwdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdExvY2FsZUdldENvZGUoKXsKKyAgICAgICAgZmluYWwgTG9jYWxlW10gdGVzdE5hbWVzPXsKKyAgICAgICAgLyogdGVzdCBsb2NhbGUgKi8KKyAgICAgICAgbmV3IExvY2FsZSgiZW4iLCIiKSwgbmV3IExvY2FsZSgiZW4iLCJVUyIpLAorICAgICAgICBuZXcgTG9jYWxlKCJzciIsIiIpLCBuZXcgTG9jYWxlKCJ0YSIsIiIpICwgCisgICAgICAgIG5ldyBMb2NhbGUoInRlIiwiSU4iKSwKKyAgICAgICAgbmV3IExvY2FsZSgiaGkiLCIiKSwgCisgICAgICAgIG5ldyBMb2NhbGUoImhlIiwiIiksIG5ldyBMb2NhbGUoImFyIiwiIiksCisgICAgICAgIG5ldyBMb2NhbGUoImFiY2RlIiwiIiksCisgICAgICAgIG5ldyBMb2NhbGUoImFiY2RlIiwiY2RlZiIpCisgICAgICAgIH07CisgICAgICAgIGZpbmFsIGludFtdIGV4cGVjdGVkID17CisgICAgICAgICAgICAgICAgLyogbG9jYWxlcyBzaG91bGQgcmV0dXJuICovCisgICAgICAgICAgICAgICAgVVNjcmlwdC5MQVRJTiwgVVNjcmlwdC5MQVRJTiwgCisgICAgICAgICAgICAgICAgVVNjcmlwdC5DWVJJTExJQywgVVNjcmlwdC5UQU1JTCwgCisgICAgICAgICAgICAgICAgVVNjcmlwdC5URUxVR1UsVVNjcmlwdC5ERVZBTkFHQVJJLCAKKyAgICAgICAgICAgICAgICBVU2NyaXB0LkhFQlJFVywgVVNjcmlwdC5BUkFCSUMsCisgICAgICAgICAgICAgICAgVVNjcmlwdC5JTlZBTElEX0NPREUsVVNjcmlwdC5JTlZBTElEX0NPREUKKyAgICAgICAgfTsKKyAgICAgICAgaW50IGkgPTA7CisgICAgICAgIGludCBudW1FcnJvcnMgPTA7CisKKyAgICAgICAgZm9yKCA7IGk8dGVzdE5hbWVzLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgIGludFtdIGNvZGUgPSBVU2NyaXB0LmdldENvZGUodGVzdE5hbWVzW2ldKTsKKyAgICAgICAgICAgIGlmKChjb2RlIT1udWxsKSAmJiAoY29kZVswXSAhPSBleHBlY3RlZFtpXSkpeworICAgICAgICAgICAgICAgIGxvZ2xuKCJFcnJvciBnZXR0aW5nIHNjcmlwdCBjb2RlIEdvdDogIiArY29kZVswXSArICIgRXhwZWN0ZWQ6ICIgK2V4cGVjdGVkW2ldICsiIGZvciBuYW1lICIrdGVzdE5hbWVzW2ldKTsKKyAgICAgICAgICAgICAgICBudW1FcnJvcnMrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZihudW1FcnJvcnMgPjAgKXsKKyAgICAgICAgICAgIGVycmxuKCJOdW1iZXIgb2YgRXJyb3JzIGluIFVTY3JpcHQuZ2V0Q29kZSgpIDogIiArIG51bUVycm9ycyk7CisgICAgICAgIH0gICAgICAgICAgICAKKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdE11bHRpcGxlQ29kZSgpeworICAgICAgICBmaW5hbCBTdHJpbmdbXSB0ZXN0TmFtZXMgPSB7ICJqYSIgLCJrb19LUiIsInpoIiwiemhfVFcifTsKKyAgICAgICAgZmluYWwgaW50W11bXSBleHBlY3RlZCA9IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1VTY3JpcHQuS0FUQUtBTkEsVVNjcmlwdC5ISVJBR0FOQSxVU2NyaXB0LkhBTn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtVU2NyaXB0LkhBTkdVTCwgVVNjcmlwdC5IQU59LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7VVNjcmlwdC5IQU59LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7VVNjcmlwdC5IQU4sVVNjcmlwdC5CT1BPTU9GT30KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgIGZvcihpbnQgaT0wOyBpPHRlc3ROYW1lcy5sZW5ndGg7aSsrKXsKKyAgICAgICAgICAgIGludFtdIGNvZGUgPSBVU2NyaXB0LmdldENvZGUodGVzdE5hbWVzW2ldKTsKKyAgICAgICAgICAgIGludFtdIGV4cHQgPSAoaW50W10pIGV4cGVjdGVkW2ldOworICAgICAgICAgICAgZm9yKGludCBqID0wOyBqPCBjb2RlLmxlbmd0aDtqKyspeworICAgICAgICAgICAgICAgIGlmKGNvZGVbal0hPWV4cHRbal0peworICAgICAgICAgICAgICAgICAgICBsb2dsbigiRXJyb3IgZ2V0dGluZyBzY3JpcHQgY29kZSBHb3Q6ICIgK2NvZGVbal0gKyAiIEV4cGVjdGVkOiAiICtleHB0W2pdICsiIGZvciBuYW1lICIrdGVzdE5hbWVzW2ldKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdEdldENvZGUoKXsKKworICAgICAgICBmaW5hbCBTdHJpbmdbXSB0ZXN0TmFtZXM9eworICAgICAgICAgICAgLyogdGVzdCBsb2NhbGUgKi8gICAgICAgICAgICAgICAgCisgICAgICAgICAgICAiZW4iLCAiZW5fVVMiLCAic3IiLCAidGEiLCIgIF9fXyAgICAtLS10YSIgLCAidGVfSU4iLCAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICJoaSIsICJoZSIsICJhciIsCisgICAgICAgICAgICAvKiB0ZXN0IGFiYnIgKi8KKyAgICAgICAgICAgICJIYW5pIiwgIkhhbmciLCJIZWJyIiwiSGlyYSIsCisgICAgICAgICAgICAiS25kYSIsIkthbmEiLCJLaG1yIiwiTGFvIiwKKyAgICAgICAgICAgICJMYXRuIiwvKiJMYXRmIiwiTGF0ZyIsKi8gCisgICAgICAgICAgICAiTWx5bSIsICJNb25nIiwKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIC8qIHRlc3QgbmFtZXMgKi8KKyAgICAgICAgICAgICJDWVJJTExJQyIsIkRFU0VSRVQiLCJERVZBTkFHQVJJIiwiRVRISU9QSUMiLCJHRU9SR0lBTiIsIAorICAgICAgICAgICAgIkdPVEhJQyIsICAiR1JFRUsiLCAgIkdVSkFSQVRJIiwgIkNPTU1PTiIsICJJTkhFUklURUQiLCAKKyAgICAgICAgICAgIC8qIHRlc3QgbG93ZXIgY2FzZSBuYW1lcyAqLworICAgICAgICAgICAgIm1hbGF5YWxhbSIsICJtb25nb2xpYW4iLCAibXlhbm1hciIsICJvZ2hhbSIsICJvbGQtaXRhbGljIiwKKyAgICAgICAgICAgICJvcml5YSIsICAgICAicnVuaWMiLCAgICAgInNpbmhhbGEiLCAic3lyaWFjIiwidGFtaWwiLCAgICAgCisgICAgICAgICAgICAidGVsdWd1IiwgICAgInRoYWFuYSIsICAgICJ0aGFpIiwgICAgInRpYmV0YW4iLCAKKyAgICAgICAgICAgIC8qIHRlc3QgdGhlIGJvdW5kcyovCisgICAgICAgICAgICAidWNhcyIsICJhcmFiaWMiLCJZaSIsIlp5eXkiCisgICAgICAgIH07CisgICAgICAgIGZpbmFsIGludFtdIGV4cGVjdGVkID17CisgICAgICAgICAgICAvKiBsb2NhbGVzIHNob3VsZCByZXR1cm4gKi8KKyAgICAgICAgICAgIFVTY3JpcHQuTEFUSU4sIFVTY3JpcHQuTEFUSU4sIAorICAgICAgICAgICAgVVNjcmlwdC5DWVJJTExJQywgVVNjcmlwdC5UQU1JTCwgVVNjcmlwdC5UQU1JTCwgCisgICAgICAgICAgICBVU2NyaXB0LlRFTFVHVSxVU2NyaXB0LkRFVkFOQUdBUkksIAorICAgICAgICAgICAgVVNjcmlwdC5IRUJSRVcsIFVTY3JpcHQuQVJBQklDLAorICAgICAgICAgICAgLyogYWJiciBzaG91bGQgcmV0dXJuICovCisgICAgICAgICAgICBVU2NyaXB0LkhBTiwgVVNjcmlwdC5IQU5HVUwsIFVTY3JpcHQuSEVCUkVXLCBVU2NyaXB0LkhJUkFHQU5BLAorICAgICAgICAgICAgVVNjcmlwdC5LQU5OQURBLCBVU2NyaXB0LktBVEFLQU5BLCBVU2NyaXB0LktITUVSLCBVU2NyaXB0LkxBTywKKyAgICAgICAgICAgIFVTY3JpcHQuTEFUSU4sLyogVVNjcmlwdC5MQVRJTiwgVVNjcmlwdC5MQVRJTiwqLyAKKyAgICAgICAgICAgIFVTY3JpcHQuTUFMQVlBTEFNLCBVU2NyaXB0Lk1PTkdPTElBTiwKKyAgICAgICAgICAgIC8qIG5hbWVzIHNob3VsZCByZXR1cm4gKi8KKyAgICAgICAgICAgIFVTY3JpcHQuQ1lSSUxMSUMsIFVTY3JpcHQuREVTRVJFVCwgVVNjcmlwdC5ERVZBTkFHQVJJLCBVU2NyaXB0LkVUSElPUElDLCBVU2NyaXB0LkdFT1JHSUFOLAorICAgICAgICAgICAgVVNjcmlwdC5HT1RISUMsIFVTY3JpcHQuR1JFRUssIFVTY3JpcHQuR1VKQVJBVEksIFVTY3JpcHQuQ09NTU9OLCBVU2NyaXB0LklOSEVSSVRFRCwKKyAgICAgICAgICAgIC8qIGxvd2VyIGNhc2UgbmFtZXMgc2hvdWxkIHJldHVybiAqLyAgICAKKyAgICAgICAgICAgIFVTY3JpcHQuTUFMQVlBTEFNLCBVU2NyaXB0Lk1PTkdPTElBTiwgVVNjcmlwdC5NWUFOTUFSLCBVU2NyaXB0Lk9HSEFNLCBVU2NyaXB0Lk9MRF9JVEFMSUMsCisgICAgICAgICAgICBVU2NyaXB0Lk9SSVlBLCBVU2NyaXB0LlJVTklDLCBVU2NyaXB0LlNJTkhBTEEsIFVTY3JpcHQuU1lSSUFDLCBVU2NyaXB0LlRBTUlMLAorICAgICAgICAgICAgVVNjcmlwdC5URUxVR1UsIFVTY3JpcHQuVEhBQU5BLCBVU2NyaXB0LlRIQUksIFVTY3JpcHQuVElCRVRBTiwKKyAgICAgICAgICAgIC8qIGJvdW5kcyAqLworICAgICAgICAgICAgVVNjcmlwdC5VQ0FTLCBVU2NyaXB0LkFSQUJJQywgVVNjcmlwdC5ZSSwgVVNjcmlwdC5DT01NT04JCisgICAgICAgIH07CisgICAgICAgIGludCBpID0wOworICAgICAgICBpbnQgbnVtRXJyb3JzID0wOworCisgICAgICAgIGZvciggOyBpPHRlc3ROYW1lcy5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICBpbnRbXSBjb2RlID0gVVNjcmlwdC5nZXRDb2RlKHRlc3ROYW1lc1tpXSk7CisgICAgICAgICAgICBpZigoY29kZSE9bnVsbCkgJiYgKGNvZGVbMF0gIT0gZXhwZWN0ZWRbaV0pKXsKKyAgICAgICAgICAgICAgICBsb2dsbigiRXJyb3IgZ2V0dGluZyBzY3JpcHQgY29kZSBHb3Q6ICIgK2NvZGVbMF0gKyAiIEV4cGVjdGVkOiAiICtleHBlY3RlZFtpXSArIiBmb3IgbmFtZSAiK3Rlc3ROYW1lc1tpXSk7CisgICAgICAgICAgICAgICAgbnVtRXJyb3JzKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYobnVtRXJyb3JzID4wICl7CisgICAgICAgICAgICBlcnJsbigiTnVtYmVyIG9mIEVycm9ycyBpbiBVU2NyaXB0LmdldENvZGUoKSA6ICIgKyBudW1FcnJvcnMpOworICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RHZXROYW1lKCl7CisgICAgICAgIAorICAgICAgICBmaW5hbCBpbnRbXSB0ZXN0Q29kZXM9eworICAgICAgICAgICAgLyogbmFtZXMgc2hvdWxkIHJldHVybiAqLworICAgICAgICAgICAgVVNjcmlwdC5DWVJJTExJQywgVVNjcmlwdC5ERVNFUkVULCBVU2NyaXB0LkRFVkFOQUdBUkksIFVTY3JpcHQuRVRISU9QSUMsIFVTY3JpcHQuR0VPUkdJQU4sCisgICAgICAgICAgICBVU2NyaXB0LkdPVEhJQywgVVNjcmlwdC5HUkVFSywgVVNjcmlwdC5HVUpBUkFUSSwKKyAgICAgICAgfTsKKworICAgICAgICBmaW5hbCBTdHJpbmdbXSBleHBlY3RlZE5hbWVzPXsKKyAgICAgICAgICAgICAgCisgICAgICAgICAgICAvKiB0ZXN0IG5hbWVzICovCisgICAgICAgICAgICAiQ1lSSUxMSUMiLCJERVNFUkVUIiwiREVWQU5BR0FSSSIsIkVUSElPUElDIiwiR0VPUkdJQU4iLCAKKyAgICAgICAgICAgICJHT1RISUMiLCAgIkdSRUVLIiwgICJHVUpBUkFUSSIsIAorICAgICAgICB9OworICAgICAgICBpbnQgaSA9MDsKKworICAgICAgICB3aGlsZShpPCB0ZXN0Q29kZXMubGVuZ3RoKXsKKyAgICAgICAgICAgIFN0cmluZyBzY3JpcHROYW1lICA9IFVTY3JpcHQuZ2V0TmFtZSh0ZXN0Q29kZXNbaV0pOworICAgICAgICAgICAgaW50IG51bUVycm9ycz0wOworICAgICAgICAgICAgaWYoIWV4cGVjdGVkTmFtZXNbaV0uZXF1YWxzKHNjcmlwdE5hbWUpKXsKKyAgICAgICAgICAgICAgICBsb2dsbigiRXJyb3IgZ2V0dGluZyBhYmJyZXZpYXRpb25zIEdvdDogIiArc2NyaXB0TmFtZSArIiBFeHBlY3RlZDogIitleHBlY3RlZE5hbWVzW2ldKTsKKyAgICAgICAgICAgICAgICBudW1FcnJvcnMrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKG51bUVycm9ycyA+IDApeworICAgICAgICAgICAgICAgIGlmKG51bUVycm9ycyA+MCApeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3JzIFVTY3JpcHQuZ2V0U2hvck5hbWUoKSA6ICIgKyBudW1FcnJvcnMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGkrKzsKKyAgICAgICAgfQorCisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RHZXRTaG9ydE5hbWUoKXsKKyAgICAgICAgZmluYWwgaW50W10gdGVzdENvZGVzPXsKKyAgICAgICAgICAgIC8qIGFiYnIgc2hvdWxkIHJldHVybiAqLworICAgICAgICAgICAgVVNjcmlwdC5IQU4sIFVTY3JpcHQuSEFOR1VMLCBVU2NyaXB0LkhFQlJFVywgVVNjcmlwdC5ISVJBR0FOQSwKKyAgICAgICAgICAgIFVTY3JpcHQuS0FOTkFEQSwgVVNjcmlwdC5LQVRBS0FOQSwgVVNjcmlwdC5LSE1FUiwgVVNjcmlwdC5MQU8sCisgICAgICAgICAgICBVU2NyaXB0LkxBVElOLCAKKyAgICAgICAgICAgIFVTY3JpcHQuTUFMQVlBTEFNLCBVU2NyaXB0Lk1PTkdPTElBTiwKKyAgICAgICAgfTsKKworICAgICAgICBmaW5hbCBTdHJpbmdbXSBleHBlY3RlZEFiYnI9eworICAgICAgICAgICAgICAvKiB0ZXN0IGFiYnIgKi8KKyAgICAgICAgICAgICJIYW5pIiwgIkhhbmciLCJIZWJyIiwiSGlyYSIsCisgICAgICAgICAgICAiS25kYSIsIkthbmEiLCJLaG1yIiwiTGFvIiwKKyAgICAgICAgICAgICJMYXRuIiwKKyAgICAgICAgICAgICJNbHltIiwgIk1vbmciLAorICAgICAgICB9OworICAgICAgICBpbnQgaT0wOworICAgICAgICB3aGlsZShpPHRlc3RDb2Rlcy5sZW5ndGgpeworICAgICAgICAgICAgU3RyaW5nICBzaG9ydE5hbWUgPSBVU2NyaXB0LmdldFNob3J0TmFtZSh0ZXN0Q29kZXNbaV0pOworICAgICAgICAgICAgaW50IG51bUVycm9ycz0wOworICAgICAgICAgICAgaWYoIWV4cGVjdGVkQWJicltpXS5lcXVhbHMoc2hvcnROYW1lKSl7CisgICAgICAgICAgICAgICAgbG9nbG4oIkVycm9yIGdldHRpbmcgYWJicmV2aWF0aW9ucyBHb3Q6ICIgK3Nob3J0TmFtZSsgIiBFeHBlY3RlZDogIiArZXhwZWN0ZWRBYmJyW2ldKTsKKyAgICAgICAgICAgICAgICBudW1FcnJvcnMrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKG51bUVycm9ycyA+IDApeworICAgICAgICAgICAgICAgIGlmKG51bUVycm9ycyA+MCApeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3JzIFVDaGFyLmdldFNjcmlwdEFiYnIoKSA6ICIrbnVtRXJyb3JzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpKys7CisgICAgICAgIH0KKworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0R2V0U2NyaXB0KCl7CisgICAgICAgIGludCBjb2RlcG9pbnRzW10gPSB7CisgICAgICAgICAgICAgICAgMHgwMDAwRkY5RCwgCisgICAgICAgICAgICAgICAgMHgwMDAwRkZCRSwgCisgICAgICAgICAgICAgICAgMHgwMDAwRkZDNywgCisgICAgICAgICAgICAgICAgMHgwMDAwRkZDRiwgCisgICAgICAgICAgICAgICAgMHgwMDAwRkZENywgCisgICAgICAgICAgICAgICAgMHgwMDAwRkZEQywgCisgICAgICAgICAgICAgICAgMHgwMDAxMDMwMCwKKyAgICAgICAgICAgICAgICAweDAwMDEwMzMwLAorICAgICAgICAgICAgICAgIDB4MDAwMTAzNEEsCisgICAgICAgICAgICAgICAgMHgwMDAxMDQwMCwKKyAgICAgICAgICAgICAgICAweDAwMDEwNDI4LAorICAgICAgICAgICAgICAgIDB4MDAwMUQxNjcsCisgICAgICAgICAgICAgICAgMHgwMDAxRDE3QiwKKyAgICAgICAgICAgICAgICAweDAwMDFEMTg1LAorICAgICAgICAgICAgICAgIDB4MDAwMUQxQUEsCisgICAgICAgICAgICAgICAgMHgwMDAyMDAwMCwKKyAgICAgICAgICAgICAgICAweDAwMDAwRDAyLAorICAgICAgICAgICAgICAgIDB4MDAwMDBEMDAsCisgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwKKyAgICAgICAgICAgICAgICAweDAwMDFEMTY5LCAKKyAgICAgICAgICAgICAgICAweDAwMDFEMTgyLCAKKyAgICAgICAgICAgICAgICAweDAwMDFEMThCLCAKKyAgICAgICAgICAgICAgICAweDAwMDFEMUFELCAKKyAgICAgICAgfTsKKworICAgICAgICBpbnQgZXhwZWN0ZWRbXSA9IHsKKyAgICAgICAgICAgICAgICBVU2NyaXB0LktBVEFLQU5BICwKKyAgICAgICAgICAgICAgICBVU2NyaXB0LkhBTkdVTCAsCisgICAgICAgICAgICAgICAgVVNjcmlwdC5IQU5HVUwgLAorICAgICAgICAgICAgICAgIFVTY3JpcHQuSEFOR1VMICwKKyAgICAgICAgICAgICAgICBVU2NyaXB0LkhBTkdVTCAsCisgICAgICAgICAgICAgICAgVVNjcmlwdC5IQU5HVUwgLAorICAgICAgICAgICAgICAgIFVTY3JpcHQuT0xEX0lUQUxJQywgCisgICAgICAgICAgICAgICAgVVNjcmlwdC5HT1RISUMgLAorICAgICAgICAgICAgICAgIFVTY3JpcHQuR09USElDICwKKyAgICAgICAgICAgICAgICBVU2NyaXB0LkRFU0VSRVQgLAorICAgICAgICAgICAgICAgIFVTY3JpcHQuREVTRVJFVCAsCisgICAgICAgICAgICAgICAgVVNjcmlwdC5JTkhFUklURUQsCisgICAgICAgICAgICAgICAgVVNjcmlwdC5JTkhFUklURUQsCisgICAgICAgICAgICAgICAgVVNjcmlwdC5JTkhFUklURUQsCisgICAgICAgICAgICAgICAgVVNjcmlwdC5JTkhFUklURUQsCisgICAgICAgICAgICAgICAgVVNjcmlwdC5IQU4gLAorICAgICAgICAgICAgICAgIFVTY3JpcHQuTUFMQVlBTEFNLAorICAgICAgICAgICAgICAgIFVTY3JpcHQuQ09NTU9OLAorICAgICAgICAgICAgICAgIFVTY3JpcHQuQ09NTU9OLAorICAgICAgICAgICAgICAgIFVTY3JpcHQuSU5IRVJJVEVEICwKKyAgICAgICAgICAgICAgICBVU2NyaXB0LklOSEVSSVRFRCAsCisgICAgICAgICAgICAgICAgVVNjcmlwdC5JTkhFUklURUQgLAorICAgICAgICAgICAgICAgIFVTY3JpcHQuSU5IRVJJVEVEICwKKyAgICAgICAgfTsKKyAgICAgICAgaW50IGkgPTA7CisgICAgICAgIGludCBjb2RlID0gVVNjcmlwdC5JTlZBTElEX0NPREU7CisgICAgICAgIGJvb2xlYW4gcGFzc2VkID0gdHJ1ZTsKKworICAgICAgICB3aGlsZShpPCBjb2RlcG9pbnRzLmxlbmd0aCl7CisgICAgICAgICAgICBjb2RlID0gVVNjcmlwdC5nZXRTY3JpcHQoY29kZXBvaW50c1tpXSk7CisKKyAgICAgICAgICAgIGlmKGNvZGUgIT0gZXhwZWN0ZWRbaV0peworICAgICAgICAgICAgICAgIGxvZ2xuKCJVU2NyaXB0LmdldFNjcmlwdCBmb3IgY29kZXBvaW50IDB4IisgaGV4KGNvZGVwb2ludHNbaV0pKyIgZmFpbGVkIik7CisgICAgICAgICAgICAgICAgcGFzc2VkID0gZmFsc2U7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGkrKzsKKyAgICAgICAgfQorICAgICAgICBpZighcGFzc2VkKXsKKyAgICAgICAgICAgZXJybG4oIlVTY3JpcHQuZ2V0U2NyaXB0IGZhaWxlZC4iKTsKKyAgICAgICAgfSAgICAgIAorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0QWxsQ29kZXBvaW50cygpeworICAgIAlpbnQgY29kZTsKKyAgICAgICAgU3RyaW5nIG9sZElkPSIiOworICAgICAgICBTdHJpbmcgb2xkQWJicklkPSIiOworICAgIAlmb3IoIGludCBpID0wOyBpIDw9IDB4MTBmZmZmOyBpKyspeworICAgIAkJY29kZSA9VVNjcmlwdC5JTlZBTElEX0NPREU7CisgICAgCQljb2RlID0gVVNjcmlwdC5nZXRTY3JpcHQoaSk7CisgICAgCQlpZihjb2RlPT1VU2NyaXB0LklOVkFMSURfQ09ERSl7CisgICAgCQkJZXJybG4oIlVTY3JpcHQuZ2V0U2NyaXB0IGZvciBjb2RlcG9pbnQgMHgiKyBoZXgoaSkrIiBmYWlsZWQiKTsKKyAgICAJCX0KKyAgICAgICAgICAgIFN0cmluZyBpZCA9VVNjcmlwdC5nZXROYW1lKGNvZGUpOworICAgICAgICAgICAgU3RyaW5nIGFiYnIgPSBVU2NyaXB0LmdldFNob3J0TmFtZShjb2RlKTsKKyAgICAgICAgICAgIFN0cmluZyBuZXdJZCA9Ils6IitpZCsiOl07TkZEIjsKKyAgICAgICAgICAgIFN0cmluZyBuZXdBYmJySWQgPSJbOiIrYWJicisiOl07TkZEIjsKKyAgICAgICAgICAgIGlmKCFvbGRJZC5lcXVhbHMobmV3SWQpKXsKKyAgICAgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShuZXdJZCk7CisgICAgICAgICAgICAgICAgICAgIGlmKHQ9PW51bGwpeworICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsZWQgdG8gY3JlYXRlIHRyYW5zbGl0ZXJhdG9yIGZvciAiK2hleChpKSsKKyAgICAgICAgICAgICAgICAgICAgICAgICAiIHNjcmlwdCBjb2RlOiAiICtpZCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9Y2F0Y2goRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbGVkIHRvIGNyZWF0ZSB0cmFuc2xpdGVyYXRvciBmb3IgIitoZXgoaSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIiBzY3JpcHQgY29kZTogIiAraWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgRXhjZXB0aW9uOiAiK2UuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvbGRJZCA9IG5ld0lkOworICAgICAgICAgICAgaWYoIW9sZEFiYnJJZC5lcXVhbHMobmV3QWJicklkKSl7CisgICAgICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UobmV3QWJicklkKTsKKyAgICAgICAgICAgICAgICAgICAgaWYodD09bnVsbCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWxlZCB0byBjcmVhdGUgdHJhbnNsaXRlcmF0b3IgZm9yICIraGV4KGkpKworICAgICAgICAgICAgICAgICAgICAgICAgICIgc2NyaXB0IGNvZGU6ICIgK2FiYnIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfWNhdGNoKEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWxlZCB0byBjcmVhdGUgdHJhbnNsaXRlcmF0b3IgZm9yICIraGV4KGkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyIgc2NyaXB0IGNvZGU6ICIgK2FiYnIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgRXhjZXB0aW9uOiAiK2UuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvbGRBYmJySWQgPSBuZXdBYmJySWQ7CisgICAgCX0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdFNjcmlwdE5hbWVzKCl7CisgICAgICAgIGZvcihpbnQgaT0wOyBpPFVTY3JpcHQuQ09ERV9MSU1JVDtpKyspeworICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBVU2NyaXB0LmdldE5hbWUoaSk7CisgICAgICAgICAgICBpZihuYW1lLmVxdWFscygiIikgKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTEVEOiBnZXROYW1lIGZvciBjb2RlIDogIitpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0gICAJCisgfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1Rlc3RVU2NyaXB0UnVuLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9UZXN0VVNjcmlwdFJ1bi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmOGNhOTQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9UZXN0VVNjcmlwdFJ1bi5qYXZhCkBAIC0wLDAgKzEsMzQxIEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk5LTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QubGFuZzsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVNjcmlwdDsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVTY3JpcHRSdW47CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CisKK3B1YmxpYyBjbGFzcyBUZXN0VVNjcmlwdFJ1biBleHRlbmRzIFRlc3RGbXdrCit7CisgICAgcHVibGljIFRlc3RVU2NyaXB0UnVuKCkKKyAgICB7CisgICAgICAgIC8vIG5vdGhpbmcKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBUZXN0VVNjcmlwdFJ1bigpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBSdW5UZXN0RGF0YQorICAgIHsKKyAgICAgICAgU3RyaW5nIHJ1blRleHQ7CisgICAgICAgIGludCAgICBydW5TY3JpcHQ7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgUnVuVGVzdERhdGEoU3RyaW5nIHRoZVRleHQsIGludCB0aGVTY3JpcHRDb2RlKQorICAgICAgICB7CisgICAgICAgICAgICBydW5UZXh0ICAgPSB0aGVUZXh0OworICAgICAgICAgICAgcnVuU2NyaXB0ID0gdGhlU2NyaXB0Q29kZTsKKyAgICAgICAgfQorICAgIH07CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgUnVuVGVzdERhdGFbXSB0ZXN0RGF0YSA9IHsKKyAgICAgICAgbmV3IFJ1blRlc3REYXRhKCJcdTAwMjBcdTA5NDZcdTA5MzlcdTA5M0ZcdTA5MjhcdTA5NERcdTA5MjZcdTA5NDBcdTAwMjAiLCBVU2NyaXB0LkRFVkFOQUdBUkkpLAorICAgICAgICBuZXcgUnVuVGVzdERhdGEoIlx1MDYyN1x1MDY0NFx1MDYzOVx1MDYzMVx1MDYyOFx1MDY0QVx1MDYyOVx1MDAyMCIsIFVTY3JpcHQuQVJBQklDKSwKKyAgICAgICAgbmV3IFJ1blRlc3REYXRhKCJcdTA0MjBcdTA0NDNcdTA0NDFcdTA0NDFcdTA0M0FcdTA0MzhcdTA0MzlcdTAwMjAiLCBVU2NyaXB0LkNZUklMTElDKSwKKyAgICAgICAgbmV3IFJ1blRlc3REYXRhKCJFbmdsaXNoICgiLCBVU2NyaXB0LkxBVElOKSwKKyAgICAgICAgbmV3IFJ1blRlc3REYXRhKCJcdTBFNDRcdTBFMTdcdTBFMjIiLCBVU2NyaXB0LlRIQUkpLAorICAgICAgICBuZXcgUnVuVGVzdERhdGEoIikgIiwgVVNjcmlwdC5MQVRJTiksCisgICAgICAgIG5ldyBSdW5UZXN0RGF0YSgiXHU2RjIyXHU1Qjc1IiwgVVNjcmlwdC5IQU4pLAorICAgICAgICBuZXcgUnVuVGVzdERhdGEoIlx1MzA2OFx1MzA3Mlx1MzA4OVx1MzA0Q1x1MzA2QVx1MzA2OCIsIFVTY3JpcHQuSElSQUdBTkEpLAorICAgICAgICBuZXcgUnVuVGVzdERhdGEoIlx1MzBBQlx1MzBCRlx1MzBBQlx1MzBDQSIsIFVTY3JpcHQuS0FUQUtBTkEpLAorICAgICAgICBuZXcgUnVuVGVzdERhdGEoIlx1RDgwMVx1REMwMFx1RDgwMVx1REMwMVx1RDgwMVx1REMwMlx1RDgwMVx1REMwMyIsIFVTY3JpcHQuREVTRVJFVCkKKyAgICB9OworICAgIAorICAgIHByaXZhdGUgdm9pZCBDaGVja1NjcmlwdFJ1bnMoVVNjcmlwdFJ1biBzY3JpcHRSdW4sIGludFtdIHJ1blN0YXJ0cywgUnVuVGVzdERhdGFbXSB0ZXN0RGF0YSkKKyAgICB7CisgICAgICAgIGludCBydW4sIHJ1blN0YXJ0LCBydW5MaW1pdDsKKyAgICAgICAgaW50IHJ1blNjcmlwdDsKKworICAgICAgICAvKiBpdGVyYXRlIG92ZXIgYWxsIHRoZSBydW5zICovCisgICAgICAgIHJ1biA9IDA7CisgICAgICAgIHdoaWxlIChzY3JpcHRSdW4ubmV4dCgpKSB7CisgICAgICAgICAgICBydW5TdGFydCAgPSBzY3JpcHRSdW4uZ2V0U2NyaXB0U3RhcnQoKTsKKyAgICAgICAgICAgIHJ1bkxpbWl0ICA9IHNjcmlwdFJ1bi5nZXRTY3JpcHRMaW1pdCgpOworICAgICAgICAgICAgcnVuU2NyaXB0ID0gc2NyaXB0UnVuLmdldFNjcmlwdENvZGUoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHJ1blN0YXJ0ICE9IHJ1blN0YXJ0c1tydW5dKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkluY29ycmVjdCBzdGFydCBvZmZzZXQgZm9yIHJ1biAiICsgcnVuICsgIjogZXhwZWN0ZWQgIiArIHJ1blN0YXJ0c1tydW5dICsgIiwgZ290ICIgKyBydW5TdGFydCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChydW5MaW1pdCAhPSBydW5TdGFydHNbcnVuICsgMV0pIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiSW5jb3JyZWN0IGxpbWl0IG9mZnNldCBmb3IgcnVuICIgKyBydW4gKyAiOiBleHBlY3RlZCAiICsgcnVuU3RhcnRzW3J1biArIDFdICsgIiwgZ290ICIgKyBydW5MaW1pdCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChydW5TY3JpcHQgIT0gdGVzdERhdGFbcnVuXS5ydW5TY3JpcHQpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiSW5jb3JyZWN0IHNjcmlwdCBmb3IgcnVuICIgKyBydW4gKyAiOiBleHBlY3RlZCBcIiIgKyBVU2NyaXB0LmdldE5hbWUodGVzdERhdGFbcnVuXS5ydW5TY3JpcHQpICsgIlwiLCBnb3QgXCIiICsgVVNjcmlwdC5nZXROYW1lKHJ1blNjcmlwdCkgKyAiXCIiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcnVuICs9IDE7CisKKyAgICAgICAgICAgIC8qIHN0b3Agd2hlbiB3ZSd2ZSBzZWVuIGFsbCB0aGUgcnVucyB3ZSBleHBlY3QgdG8gc2VlICovCisgICAgICAgICAgICBpZiAocnVuID49IHRlc3REYXRhLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyogQ29tcGxhaW4gaWYgd2UgZGlkbid0IHNlZSB0aGVuIG51bWJlciBvZiBydW5zIHdlIGV4cGVjdGVkICovCisgICAgICAgIGlmIChydW4gIT0gdGVzdERhdGEubGVuZ3RoKSB7CisgICAgICAgICAgICBlcnJsbigiSW5jb3JyZWN0IG51bWJlciBvZiBydW5zOiBleHBlY3RlZCAiICsgdGVzdERhdGEubGVuZ3RoICsgIiwgZ290ICIgKyBydW4pOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvbnRzdHJ1Y3Rpb24oKQorICAgIHsKKyAgICAgICAgVVNjcmlwdFJ1biBzY3JpcHRSdW4gPSBudWxsOworICAgICAgICBjaGFyW10gbnVsbENoYXJzICA9IG51bGwsIGR1bW15Q2hhcnMgID0geydkJywgJ3UnLCAnbScsICdtJywgJ3knfTsKKyAgICAgICAgU3RyaW5nIG51bGxTdHJpbmcgPSBudWxsLCBkdW1teVN0cmluZyA9IG5ldyBTdHJpbmcoZHVtbXlDaGFycyk7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuID0gbmV3IFVTY3JpcHRSdW4obnVsbFN0cmluZywgMCwgMTAwKTsKKyAgICAgICAgICAgIGVycmxuKCJuZXcgVVNjcmlwdFJ1bihudWxsU3RyaW5nLCAwLCAxMDApIGRpZCBub3QgcHJvZHVjZSBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1biA9IG5ldyBVU2NyaXB0UnVuKG51bGxTdHJpbmcsIDEwMCwgMCk7CisgICAgICAgICAgICBlcnJsbigibmV3IFVTY3JpcHRSdW4obnVsbFN0cmluZywgMTAwLCAwKSBkaWQgbm90IHByb2R1Y2UgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4gPSBuZXcgVVNjcmlwdFJ1bihudWxsU3RyaW5nLCAwLCAtMTAwKTsKKyAgICAgICAgICAgIGVycmxuKCJuZXcgVVNjcmlwdFJ1bihudWxsU3RyaW5nLCAwLCAtMTAwKSBkaWQgbm90IHByb2R1Y2UgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4gPSBuZXcgVVNjcmlwdFJ1bihudWxsU3RyaW5nLCAtMTAwLCAwKTsKKyAgICAgICAgICAgIGVycmxuKCJuZXcgVVNjcmlwdFJ1bihudWxsU3RyaW5nLCAtMTAwLCAwKSBkaWQgbm90IHByb2R1Y2UgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4gPSBuZXcgVVNjcmlwdFJ1bihudWxsQ2hhcnMsIDAsIDEwMCk7CisgICAgICAgICAgICBlcnJsbigibmV3IFVTY3JpcHRSdW4obnVsbENoYXJzLCAwLCAxMDApIGRpZCBub3QgcHJvZHVjZSBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1biA9IG5ldyBVU2NyaXB0UnVuKG51bGxDaGFycywgMTAwLCAwKTsKKyAgICAgICAgICAgIGVycmxuKCJuZXcgVVNjcmlwdFJ1bihudWxsQ2hhcnMsIDEwMCwgMCkgZGlkIG5vdCBwcm9kdWNlIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuID0gbmV3IFVTY3JpcHRSdW4obnVsbENoYXJzLCAwLCAtMTAwKTsKKyAgICAgICAgICAgIGVycmxuKCJuZXcgVVNjcmlwdFJ1bihudWxsQ2hhcnMsIDAsIC0xMDApIGRpZCBub3QgcHJvZHVjZSBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1biA9IG5ldyBVU2NyaXB0UnVuKG51bGxDaGFycywgLTEwMCwgMCk7CisgICAgICAgICAgICBlcnJsbigibmV3IFVTY3JpcHRSdW4obnVsbENoYXJzLCAtMTAwLCAwKSBkaWQgbm90IHByb2R1Y2UgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4gPSBuZXcgVVNjcmlwdFJ1bihkdW1teVN0cmluZywgMCwgNik7CisgICAgICAgICAgICBlcnJsbigibmV3IFVTY3JpcHRSdW4oZHVtbXlTdHJpbmcsIDAsIDYpIGRpZCBub3QgcHJvZHVjZSBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1biA9IG5ldyBVU2NyaXB0UnVuKGR1bW15U3RyaW5nLCA2LCAwKTsKKyAgICAgICAgICAgIGVycmxuKCJuZXcgVVNjcmlwdFJ1bihkdW1teSwgNiwgMCkgZGlkIG5vdCBwcm9kdWNlIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfWNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4gPSBuZXcgVVNjcmlwdFJ1bihkdW1teVN0cmluZywgMCwgLTEwMCk7CisgICAgICAgICAgICBlcnJsbigibmV3IFVTY3JpcHRSdW4oZHVtbXlTdHJpbmcsIDAsIC0xMDApIGRpZCBub3QgcHJvZHVjZSBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1biA9IG5ldyBVU2NyaXB0UnVuKGR1bW15U3RyaW5nLCAtMTAwLCAwKTsKKyAgICAgICAgICAgIGVycmxuKCJuZXcgVVNjcmlwdFJ1bihkdW1teSwgLTEwMCwgMCkgZGlkIG5vdCBwcm9kdWNlIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuID0gbmV3IFVTY3JpcHRSdW4oZHVtbXlDaGFycywgMCwgNik7CisgICAgICAgICAgICBlcnJsbigibmV3IFVTY3JpcHRSdW4oZHVtbXlDaGFycywgMCwgNikgZGlkIG5vdCBwcm9kdWNlIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuID0gbmV3IFVTY3JpcHRSdW4oZHVtbXlDaGFycywgNiwgMCk7CisgICAgICAgICAgICBlcnJsbigibmV3IFVTY3JpcHRSdW4oZHVtbXlDaGFycywgNiwgMCkgZGlkIG5vdCBwcm9kdWNlIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfWNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4gPSBuZXcgVVNjcmlwdFJ1bihkdW1teUNoYXJzLCAwLCAtMTAwKTsKKyAgICAgICAgICAgIGVycmxuKCJuZXcgVVNjcmlwdFJ1bihkdW1teUNoYXJzLCAwLCAtMTAwKSBkaWQgbm90IHByb2R1Y2UgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4gPSBuZXcgVVNjcmlwdFJ1bihkdW1teUNoYXJzLCAtMTAwLCAwKTsKKyAgICAgICAgICAgIGVycmxuKCJuZXcgVVNjcmlwdFJ1bihkdW1teSwgLTEwMCwgMCkgZGlkIG5vdCBwcm9kdWNlIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RSZXNldCgpCisgICAgeworICAgICAgICBVU2NyaXB0UnVuIHNjcmlwdFJ1biA9IG51bGw7CisgICAgICAgIGNoYXJbXSBkdW1teSA9IHsnZCcsICd1JywgJ20nLCAnbScsICd5J307CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuID0gbmV3IFVTY3JpcHRSdW4oKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgZXJybG4oIm5ldyBVU2NyaXB0UnVuKCkgcHJvZHVjZWQgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuLnJlc2V0KDAsIDEwMCk7CisgICAgICAgICAgICBlcnJsbigic2NyaXB0UnVuLnJlc2V0KDAsIDEwMCkgZGlkIG5vdCBwcm9kdWNlIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuLnJlc2V0KDEwMCwgMCk7CisgICAgICAgICAgICBlcnJsbigic2NyaXB0UnVuLnJlc2V0KDEwMCwgMCkgZGlkIG5vdCBwcm9kdWNlIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuLnJlc2V0KDAsIC0xMDApOworICAgICAgICAgICAgZXJybG4oInNjcmlwdFJ1bi5yZXNldCgwLCAtMTAwKSBkaWQgbm90IHByb2R1Y2UgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4ucmVzZXQoLTEwMCwgMCk7CisgICAgICAgICAgICBlcnJsbigic2NyaXB0UnVuLnJlc2V0KC0xMDAsIDApIGRpZCBub3QgcHJvZHVjZSBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1bi5yZXNldChkdW1teSwgMCwgNik7CisgICAgICAgICAgICBlcnJsbigic2NyaXB0UnVuLnJlc2V0KGR1bW15LCAwLCA2KSBkaWQgbm90IHByb2R1Y2UgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4ucmVzZXQoZHVtbXksIDYsIDApOworICAgICAgICAgICAgZXJybG4oInNjcmlwdFJ1bi5yZXNldChkdW1teSwgNiwgMCkgZGlkIG5vdCBwcm9kdWNlIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfWNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4ucmVzZXQoZHVtbXksIDAsIC0xMDApOworICAgICAgICAgICAgZXJybG4oInNjcmlwdFJ1bi5yZXNldChkdW1teSwgMCwgLTEwMCkgZGlkIG5vdCBwcm9kdWNlIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuLnJlc2V0KGR1bW15LCAtMTAwLCAwKTsKKyAgICAgICAgICAgIGVycmxuKCJzY3JpcHRSdW4ucmVzZXQoZHVtbXksIC0xMDAsIDApIGRpZCBub3QgcHJvZHVjZSBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1bi5yZXNldChkdW1teSwgMCwgZHVtbXkubGVuZ3RoKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgZXJybG4oInNjcmlwdFJ1bi5yZXNldChkdW1teSwgMCwgZHVtbXkubGVuZ3RoKSBwcm9kdWNlZCBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuLnJlc2V0KDAsIDYpOworICAgICAgICAgICAgZXJybG4oInNjcmlwdFJ1bi5yZXNldCgwLCA2KSBkaWQgbm90IHByb2R1Y2UgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4ucmVzZXQoNiwgMCk7CisgICAgICAgICAgICBlcnJsbigic2NyaXB0UnVuLnJlc2V0KDYsIDApIGRpZCBub3QgcHJvZHVjZSBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0UnVucygpCisgICAgeworICAgICAgICBpbnQgc3RyaW5nTGltaXQgPSAwOworICAgICAgICBpbnRbXSBydW5TdGFydHMgPSBuZXcgaW50W3Rlc3REYXRhLmxlbmd0aCArIDFdOworICAgICAgICBTdHJpbmcgdGVzdFN0cmluZyA9ICIiOworICAgICAgICBVU2NyaXB0UnVuIHNjcmlwdFJ1biA9IG51bGw7CisgICAgICAgIAorICAgICAgICAvKgorICAgICAgICAgKiBGaWxsIGluIHRoZSB0ZXN0IHN0cmluZyBhbmQgdGhlIHJ1blN0YXJ0cyBhcnJheS4KKyAgICAgICAgICovCisgICAgICAgIGZvciAoaW50IHJ1biA9IDA7IHJ1biA8IHRlc3REYXRhLmxlbmd0aDsgcnVuICs9IDEpIHsKKyAgICAgICAgICAgIHJ1blN0YXJ0c1tydW5dID0gc3RyaW5nTGltaXQ7CisgICAgICAgICAgICBzdHJpbmdMaW1pdCArPSB0ZXN0RGF0YVtydW5dLnJ1blRleHQubGVuZ3RoKCk7CisgICAgICAgICAgICB0ZXN0U3RyaW5nICArPSB0ZXN0RGF0YVtydW5dLnJ1blRleHQ7CisgICAgICAgIH0KKworICAgICAgICAvKiBUaGUgbGltaXQgb2YgdGhlIGxhc3QgcnVuICovIAorICAgICAgICBydW5TdGFydHNbdGVzdERhdGEubGVuZ3RoXSA9IHN0cmluZ0xpbWl0OworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1biA9IG5ldyBVU2NyaXB0UnVuKHRlc3RTdHJpbmcpOworICAgICAgICAgICAgQ2hlY2tTY3JpcHRSdW5zKHNjcmlwdFJ1biwgcnVuU3RhcnRzLCB0ZXN0RGF0YSk7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgIGVycmxuKCJuZXcgVVNjcmlwdFJ1bih0ZXN0U3RyaW5nKSBwcm9kdWNlZCBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4ucmVzZXQoKTsKKyAgICAgICAgICAgIENoZWNrU2NyaXB0UnVucyhzY3JpcHRSdW4sIHJ1blN0YXJ0cywgdGVzdERhdGEpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICBlcnJsbigic2NyaXB0UnVuLnJlc2V0KCkgb24gYSB2YWxpZCBVU2NyaXB0UnVuIHByb2R1Y2VkIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1biA9IG5ldyBVU2NyaXB0UnVuKHRlc3RTdHJpbmcudG9DaGFyQXJyYXkoKSk7CisgICAgICAgICAgICBDaGVja1NjcmlwdFJ1bnMoc2NyaXB0UnVuLCBydW5TdGFydHMsIHRlc3REYXRhKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgZXJybG4oIm5ldyBVU2NyaXB0UnVuKHRlc3RTdHJpbmcudG9DaGFyQXJyYXkoKSkgcHJvZHVjZWQgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuLnJlc2V0KCk7CisgICAgICAgICAgICBDaGVja1NjcmlwdFJ1bnMoc2NyaXB0UnVuLCBydW5TdGFydHMsIHRlc3REYXRhKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgZXJybG4oInNjcmlwdFJ1bi5yZXNldCgpIG9uIGEgdmFsaWQgVVNjcmlwdFJ1biBwcm9kdWNlZCBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4gPSBuZXcgVVNjcmlwdFJ1bigpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoc2NyaXB0UnVuLm5leHQoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJzY3JpcHRSdW4ubmV4dCgpIG9uIGFuIGVtcHR5IFVTY3JpcHRSdW4gcmV0dXJuZWQgdHJ1ZSEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgZXJybG4oIm5ldyBVU2NyaXB0UnVuKCkgcHJvZHVjZWQgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuLnJlc2V0KHRlc3RTdHJpbmcsIDAsIHRlc3RTdHJpbmcubGVuZ3RoKCkpOworICAgICAgICAgICAgQ2hlY2tTY3JpcHRSdW5zKHNjcmlwdFJ1biwgcnVuU3RhcnRzLCB0ZXN0RGF0YSk7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgIGVycmxuKCJzY3JpcHRSdW4ucmVzZXQodGVzdFN0cmluZy50b0NoYXJBcnJheSgpLCAwLCB0ZXN0U3RyaW5nLmxlbmd0aCkgcHJvZHVjZWQgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1bi5yZXNldCh0ZXN0U3RyaW5nLnRvQ2hhckFycmF5KCksIDAsIHRlc3RTdHJpbmcubGVuZ3RoKCkpOworICAgICAgICAgICAgQ2hlY2tTY3JpcHRSdW5zKHNjcmlwdFJ1biwgcnVuU3RhcnRzLCB0ZXN0RGF0YSk7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgIGVycmxuKCJzY3JpcHRSdW4ucmVzZXQodGVzdFN0cmluZy50b0NoYXJBcnJheSgpLCAwLCB0ZXN0U3RyaW5nLmxlbmd0aCkgcHJvZHVjZWQgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVUNoYXJhY3RlckNhc2VUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9VQ2hhcmFjdGVyQ2FzZVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZGZhMzk4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVUNoYXJhY3RlckNhc2VUZXN0LmphdmEKQEAgLTAsMCArMSw2OTIgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9VQ2hhcmFjdGVyQ2FzZVRlc3QuamF2YSx2ICQgCisqICREYXRlOiAyMDAyLzA3LzExIDIxOjI1OjI0ICQgCisqICRSZXZpc2lvbjogMS41ICQKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QubGFuZzsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RVdGlsOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkUmVhZGVyOworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CisKKy8qKgorKiA8cD5UZXN0aW5nIGNoYXJhY3RlciBjYXNpbmc8L3A+CisqIDxwPk1vc3RseSBmb2xsb3dpbmcgdGhlIHRlc3QgY2FzZXMgaW4gc3RyY2FzZS5jcHAgZm9yIElDVTwvcD4KKyogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyogQHNpbmNlIG1hcmNoIDE0IDIwMDIKKyovCitwdWJsaWMgZmluYWwgY2xhc3MgVUNoYXJhY3RlckNhc2VUZXN0IGV4dGVuZHMgVGVzdEZtd2sKK3sgCisJLy8gY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwkgIAorCS8qKgorCSAqIENvbnN0cnVjdG9yCisJICovCisJcHVibGljIFVDaGFyYWN0ZXJDYXNlVGVzdCgpCisJeworCX0KKwkgIAorCS8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisJICAKKwlwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmcpICAKKwl7CisJICAgIHRyeQorCSAgICB7CisJICAgICAgCVVDaGFyYWN0ZXJDYXNlVGVzdCB0ZXN0ID0gbmV3IFVDaGFyYWN0ZXJDYXNlVGVzdCgpOworCSAgICAgIAl0ZXN0LnJ1bihhcmcpOworCSAgICB9CisJICAgIGNhdGNoIChFeGNlcHRpb24gZSkKKwkgICAgeworCSAgICAgIAllLnByaW50U3RhY2tUcmFjZSgpOworCSAgICB9CisJfQorCSAgCisJLyoqCisJICogVGVzdGluZyB0aGUgdXBwZXJjYXNlIGFuZCBsb3dlcmNhc2UgZnVuY3Rpb24gb2YgVUNoYXJhY3RlcgorCSAqLworCXB1YmxpYyB2b2lkIFRlc3RDaGFyYWN0ZXIoKQorCXsKKwkgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBDSEFSQUNURVJfTE9XRVJfLmxlbmd0aDsgaSArKykgeworCSAgICAgIAlpZiAoVUNoYXJhY3Rlci5pc0xldHRlcihDSEFSQUNURVJfTE9XRVJfW2ldKSAmJiAKKwkgICAgICAJIAkhVUNoYXJhY3Rlci5pc0xvd2VyQ2FzZShDSEFSQUNURVJfTE9XRVJfW2ldKSkgeworCSAgICAgICAgCWVycmxuKCJGQUlMIGlzTG93ZXJDYXNlIHRlc3QgZm9yIFxcdSIgKyAKKwkgICAgICAgIAkgICAgICBoZXgoQ0hBUkFDVEVSX0xPV0VSX1tpXSkpOworCSAgICAgICAgCWJyZWFrOworCSAgICAgIAl9CisJICAgICAgCWlmIChVQ2hhcmFjdGVyLmlzTGV0dGVyKENIQVJBQ1RFUl9VUFBFUl9baV0pICYmIAorCSAgICAgIAkgICAgIShVQ2hhcmFjdGVyLmlzVXBwZXJDYXNlKENIQVJBQ1RFUl9VUFBFUl9baV0pIHx8CisJICAgICAgCSAgICAgIFVDaGFyYWN0ZXIuaXNUaXRsZUNhc2UoQ0hBUkFDVEVSX1VQUEVSX1tpXSkpKSB7CisJICAgICAgICAJZXJybG4oIkZBSUwgaXNVcHBlckNhc2UgdGVzdCBmb3IgXFx1IiArIAorCSAgICAgICAgCSAgICAgIGhleChDSEFSQUNURVJfVVBQRVJfW2ldKSk7CisJICAgICAgICAJYnJlYWs7CisJICAgICAgCX0KKwkgICAgICAJaWYgKENIQVJBQ1RFUl9MT1dFUl9baV0gIT0gCisJICAgICAgCSAgICBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKENIQVJBQ1RFUl9VUFBFUl9baV0pIHx8IAorCSAgICAgICAgICAJKENIQVJBQ1RFUl9VUFBFUl9baV0gIT0gCisJICAgICAgICAgIAlVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKENIQVJBQ1RFUl9MT1dFUl9baV0pICYmCisJICAgICAgICAgICAgQ0hBUkFDVEVSX1VQUEVSX1tpXSAhPSAKKwkgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvVGl0bGVDYXNlKENIQVJBQ1RFUl9MT1dFUl9baV0pKSkgeworCSAgICAgICAgCWVycmxuKCJGQUlMIGNhc2UgY29udmVyc2lvbiB0ZXN0IGZvciBcXHUiICsgCisJICAgICAgICAJICAgICAgaGV4KENIQVJBQ1RFUl9VUFBFUl9baV0pICsgCisJICAgICAgICAJICAgICAgIiB0byBcXHUiICsgaGV4KENIQVJBQ1RFUl9MT1dFUl9baV0pKTsKKwkgICAgICAgIAlicmVhazsKKwkgICAgICAJfQorCSAgICAgIAlpZiAoQ0hBUkFDVEVSX0xPV0VSX1tpXSAhPSAKKwkgICAgICAJICAgIFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoQ0hBUkFDVEVSX0xPV0VSX1tpXSkpIHsKKwkgICAgICAgIAllcnJsbigiRkFJTCBsb3dlciBjYXNlIGNvbnZlcnNpb24gdGVzdCBmb3IgXFx1IiArIAorCSAgICAgICAgCSAgICAgIGhleChDSEFSQUNURVJfTE9XRVJfW2ldKSk7CisJICAgICAgICAJYnJlYWs7CisJICAgICAgCX0KKwkgICAgICAJaWYgKENIQVJBQ1RFUl9VUFBFUl9baV0gIT0gCisJICAgICAgCSAgICBVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKENIQVJBQ1RFUl9VUFBFUl9baV0pICYmIAorCSAgICAgICAgICAJQ0hBUkFDVEVSX1VQUEVSX1tpXSAhPSAKKwkgICAgICAgICAgCVVDaGFyYWN0ZXIudG9UaXRsZUNhc2UoQ0hBUkFDVEVSX1VQUEVSX1tpXSkpIHsKKwkgICAgICAgIAllcnJsbigiRkFJTCB1cHBlciBjYXNlIGNvbnZlcnNpb24gdGVzdCBmb3IgXFx1IiArIAorCSAgICAgICAgCSAgICAgIGhleChDSEFSQUNURVJfVVBQRVJfW2ldKSk7CisJICAgICAgICAJYnJlYWs7CisJICAgICAgCX0KKwkgICAgICAJbG9nbG4oIk9rICAgIFxcdSIgKyBoZXgoQ0hBUkFDVEVSX1VQUEVSX1tpXSkgKyAiIGFuZCBcXHUiICsgCisJICAgICAgCSAgICAgIGhleChDSEFSQUNURVJfTE9XRVJfW2ldKSk7CisJICAgIH0KKwl9CisJICAKKwlwdWJsaWMgdm9pZCBUZXN0Rm9sZGluZygpIAorCXsKKwkgICAgLy8gdGVzdCBzaW1wbGUgY2FzZSBmb2xkaW5nCisJICAgIGZvciAoaW50IGkgPSAwOyBpIDwgRk9MRElOR19TSU1QTEVfLmxlbmd0aDsgaSArPSAzKSB7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5mb2xkQ2FzZShGT0xESU5HX1NJTVBMRV9baV0sIHRydWUpICE9IAorCSAgICAgICAgICAgIEZPTERJTkdfU0lNUExFX1tpICsgMV0pIHsKKwkgICAgICAgICAgICBlcnJsbigiRkFJTDogZm9sZENhc2UoXFx1IiArIGhleChGT0xESU5HX1NJTVBMRV9baV0pICsgCisJICAgICAgICAgICAgICAgICAgIiwgdHJ1ZSkgc2hvdWxkIGJlIFxcdSIgKyBoZXgoRk9MRElOR19TSU1QTEVfW2kgKyAxXSkpOworCSAgICAgICAgfQorCSAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZm9sZENhc2UoRk9MRElOR19TSU1QTEVfW2ldLCBmYWxzZSkgIT0gCisJICAgICAgICAgICAgRk9MRElOR19TSU1QTEVfW2kgKyAyXSkgeworCSAgICAgICAgICAgIGVycmxuKCJGQUlMOiBmb2xkQ2FzZShcXHUiICsgaGV4KEZPTERJTkdfU0lNUExFX1tpXSkgKyAKKwkgICAgICAgICAgICAgICAgICAiLCBmYWxzZSkgc2hvdWxkIGJlIFxcdSIgKyBoZXgoRk9MRElOR19TSU1QTEVfW2kgKyAyXSkpOworCSAgICAgICAgfQorCSAgICB9CisKKwkJLy8gVGVzdCBmdWxsIHN0cmluZyBjYXNlIGZvbGRpbmcgd2l0aCBkZWZhdWx0IG9wdGlvbiBhbmQgc2VwYXJhdGUgCisJCS8vIGJ1ZmZlcnMgICAKKyAgICAgICAgaWYgKCFGT0xESU5HX0RFRkFVTFRfWzBdLmVxdWFscyhVQ2hhcmFjdGVyLmZvbGRDYXNlKEZPTERJTkdfTUlYRURfWzBdLCAKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSkgeworCSAgICAgICAgZXJybG4oIkZBSUw6IGZvbGRDYXNlKCIgKyBoZXgoRk9MRElOR19NSVhFRF9bMF0pICsgCisJICAgICAgICAgICAgICAiLCB0cnVlKSBzaG91bGQgYmUgIiArIEZPTERJTkdfREVGQVVMVF9bMF0pOworCSAgICB9CisJICAgIAorCQlpZiAoIUZPTERJTkdfRVhDTFVERV9TUEVDSUFMX0lfWzBdLmVxdWFscyggICAgICAJCSAgICAgICAgICAgICAgICAgICAgCisJCQkJCQkJVUNoYXJhY3Rlci5mb2xkQ2FzZShGT0xESU5HX01JWEVEX1swXSwgZmFsc2UpKSkgeworCSAgICAgIAllcnJsbigiRkFJTDogZm9sZENhc2UoIiArIGhleChGT0xESU5HX01JWEVEX1swXSkgKyAKKwkgICAgICAJICAgICAgIiwgZmFsc2UpIHNob3VsZCBiZSAiICsgRk9MRElOR19FWENMVURFX1NQRUNJQUxfSV9bMF0pOworCSAgICB9CisJICAgIAorCSAgICBpZiAoIUZPTERJTkdfREVGQVVMVF9bMV0uZXF1YWxzKFVDaGFyYWN0ZXIuZm9sZENhc2UoRk9MRElOR19NSVhFRF9bMV0sIAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKSB7CisJICAgICAgIGVycmxuKCJGQUlMOiBmb2xkQ2FzZSgiICsgaGV4KEZPTERJTkdfTUlYRURfWzFdKSArIAorCSAgICAgICAgICAgICAiLCB0cnVlKSBzaG91bGQgYmUgIiArIGhleChGT0xESU5HX0RFRkFVTFRfWzFdKSk7CisJICAgIH0KKwkKKwkKKwkgICAgLy8gYWx0ZXJuYXRlIGhhbmRsaW5nIGZvciBkb3R0ZWQgSS9kb3RsZXNzIGkgKFUrMDEzMCwgVSswMTMxKQorCSAgICBpZiAoIUZPTERJTkdfRVhDTFVERV9TUEVDSUFMX0lfWzFdLmVxdWFscygKKwkgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuZm9sZENhc2UoRk9MRElOR19NSVhFRF9bMV0sIGZhbHNlKSkpIHsKKwkgICAgICAgIGVycmxuKCJGQUlMOiBmb2xkQ2FzZSgiICsgaGV4KEZPTERJTkdfTUlYRURfWzFdKSArIAorCSAgICAgICAgICAgICAgIiwgZmFsc2UpIHNob3VsZCBiZSAiICsgaGV4KEZPTERJTkdfRVhDTFVERV9TUEVDSUFMX0lfWzFdKSk7CisJICAgIH0KKwl9CisJCQorCS8qKgorCSAqIFRlc3RpbmcgdGhlIHN0cmluZ3MgY2FzZSBtYXBwaW5nIG1ldGhvZHMKKwkgKi8KKwlwdWJsaWMgdm9pZCBUZXN0VXBwZXIoKSAKKwl7CQorCSAgICAvLyB1cHBlcmNhc2Ugd2l0aCByb290IGxvY2FsZSBhbmQgaW4gdGhlIHNhbWUgYnVmZmVyCisJICAgIGlmICghVVBQRVJfUk9PVF8uZXF1YWxzKFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoVVBQRVJfQkVGT1JFXykpKSB7CisJICAgIAllcnJsbigiRmFpbCAiICsgVVBQRVJfQkVGT1JFXyArICIgYWZ0ZXIgdXBwZXJjYXNlIHNob3VsZCBiZSAiICsgCisJICAgICAgCQkgIFVQUEVSX1JPT1RfICsgIiBpbnN0ZWFkIGdvdCAiICsgCisJICAgICAgCQkgIFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoVVBQRVJfQkVGT1JFXykpOworCSAgICB9CisJICAgICAgCisJICAgIC8vIHVwcGVyY2FzZSB3aXRoIHR1cmtpc2ggbG9jYWxlIGFuZCBzZXBhcmF0ZSBidWZmZXJzCisJICAgIGlmICghVVBQRVJfVFVSS0lTSF8uZXF1YWxzKFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoVFVSS0lTSF9MT0NBTEVfLAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVBQRVJfQkVGT1JFXykpKSB7CisgICAgICAJCWVycmxuKCJGYWlsICIgKyBVUFBFUl9CRUZPUkVfICsgCisgICAgICAJCSAgICAgICIgYWZ0ZXIgdHVya2lzaC1zZW5zaXRpdmUgdXBwZXJjYXNlIHNob3VsZCBiZSAiICsgCisgICAgICAJCSAgICAgIFVQUEVSX1RVUktJU0hfICsgIiBpbnN0ZWFkIG9mICIgKworICAgICAgCQkgICAgICBVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKFRVUktJU0hfTE9DQUxFXywgVVBQRVJfQkVGT1JFXykpOworCSAgCX0KKwkgIAkJCisJICAJLy8gdXBwZXJjYXNlIGEgc2hvcnQgc3RyaW5nIHdpdGggcm9vdCBsb2NhbGUKKwkgICAgaWYgKCFVUFBFUl9NSU5JX1VQUEVSXy5lcXVhbHMoVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShVUFBFUl9NSU5JXykpKSB7CisJICAgICAgICBlcnJsbigiZXJyb3IgaW4gdG9VcHBlcihyb290IGxvY2FsZSk9XCIiICsgVVBQRVJfTUlOSV8gKyAKKwkgICAgICAgICAgICAgICJcIiBleHBlY3RlZCBcIiIgKyBVUFBFUl9NSU5JX1VQUEVSXyArICJcIiIpOworCSAgICB9CisJICAgIAorCSAgICBpZiAoIVNIQVJFRF9VUFBFUkNBU0VfVE9QS0FQXy5lcXVhbHMoCisgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoU0hBUkVEX0xPV0VSQ0FTRV9UT1BLQVBfKSkpIHsKKwkgICAgICAgIGVycmxuKCJ0b1VwcGVyIGZhaWxlZDogZXhwZWN0ZWQgXCIiICsKKwkgICAgICAgICAgICAgIFNIQVJFRF9VUFBFUkNBU0VfVE9QS0FQXyArICJcIiwgZ290IFwiIiArIAorICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShTSEFSRURfTE9XRVJDQVNFX1RPUEtBUF8pICsgIlwiLiIpOworCQl9CisJCisJICAgIGlmICghU0hBUkVEX1VQUEVSQ0FTRV9UVVJLSVNIXy5lcXVhbHMoCisgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKFRVUktJU0hfTE9DQUxFXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNIQVJFRF9MT1dFUkNBU0VfVE9QS0FQXykpKSB7CisJICAgICAgICBlcnJsbigidG9VcHBlciBmYWlsZWQ6IGV4cGVjdGVkIFwiIiArIAorCSAgICAgICAgICAgICAgU0hBUkVEX1VQUEVSQ0FTRV9UVVJLSVNIXyArICJcIiwgZ290IFwiIiArIAorCSAgICAgICAgICAgICAgVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShUVVJLSVNIX0xPQ0FMRV8sIAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNIQVJFRF9MT1dFUkNBU0VfVE9QS0FQXykgKyAiXCIuIik7CisJCX0KKwkKKwkgICAgaWYgKCFTSEFSRURfVVBQRVJDQVNFX0dFUk1BTl8uZXF1YWxzKAorCSAgICAJCVVDaGFyYWN0ZXIudG9VcHBlckNhc2UoR0VSTUFOX0xPQ0FMRV8sIAorCSAgICAgCSAgICAgICAgICAgICAgICAgICAgICAgICAgIFNIQVJFRF9MT1dFUkNBU0VfR0VSTUFOXykpKSB7CisJICAgICAgICBlcnJsbigidG9VcHBlciBmYWlsZWQ6IGV4cGVjdGVkIFwiIiArIFNIQVJFRF9VUFBFUkNBU0VfR0VSTUFOXyAKKwkgICAgICAgICAgICAgICsgIlwiLCBnb3QgXCIiICsgVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShHRVJNQU5fTE9DQUxFXywgCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hBUkVEX0xPV0VSQ0FTRV9HRVJNQU5fKSArICJcIi4iKTsKKyAgICAgICAgfQorCSAgICAKKwkgICAgaWYgKCFTSEFSRURfVVBQRVJDQVNFX0dSRUVLXy5lcXVhbHMoCisJICAgIAkJVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShTSEFSRURfTE9XRVJDQVNFX0dSRUVLXykpKSB7CisJICAgICAgICBlcnJsbigidG9Mb3dlciBmYWlsZWQ6IGV4cGVjdGVkIFwiIiArIFNIQVJFRF9VUFBFUkNBU0VfR1JFRUtfICsKKwkgICAgICAgICAgICAgICJcIiwgZ290IFwiIiArIFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoCisgICAgICAgCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hBUkVEX0xPV0VSQ0FTRV9HUkVFS18pICsgIlwiLiIpOworICAgIAl9CisJfQorCSAgCisJcHVibGljIHZvaWQgVGVzdExvd2VyKCkgCisJeworCQlpZiAoIUxPV0VSX1JPT1RfLmVxdWFscyhVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKExPV0VSX0JFRk9SRV8pKSkgeworCSAgIAkJZXJybG4oIkZhaWwgIiArIExPV0VSX0JFRk9SRV8gKyAiIGFmdGVyIGxvd2VyY2FzZSBzaG91bGQgYmUgIiArIAorCSAgIAkJICAgICAgTE9XRVJfUk9PVF8gKyAiIGluc3RlYWQgb2YgIiArIAorCSAgIAkJICAgICAgVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShMT1dFUl9CRUZPUkVfKSk7CisJCX0KKwkgICAKKwkgICAJLy8gbG93ZXJjYXNlIHdpdGggdHVya2lzaCBsb2NhbGUKKwkgICAJaWYgKCFMT1dFUl9UVVJLSVNIXy5lcXVhbHMoVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShUVVJLSVNIX0xPQ0FMRV8sIAorCSAgIAkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExPV0VSX0JFRk9SRV8pKSkgeworCSAgIAkJZXJybG4oIkZhaWwgIiArIExPV0VSX0JFRk9SRV8gKyAKKwkgICAgIAkJICAiIGFmdGVyIHR1cmtpc2gtc2Vuc2l0aXZlIGxvd2VyY2FzZSBzaG91bGQgYmUgIiArIAorCSAgICAgCQkgIExPV0VSX1RVUktJU0hfICsgIiBpbnN0ZWFkIG9mICIgKyAKKwkgICAgIAkJICBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKFRVUktJU0hfTE9DQUxFXywgTE9XRVJfQkVGT1JFXykpOworCSAgICB9CisJICAgIGlmICghU0hBUkVEX0xPV0VSQ0FTRV9JU1RBTkJVTF8uZXF1YWxzKAorICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShTSEFSRURfVVBQRVJDQVNFX0lTVEFOQlVMXykpKSB7CisJICAgICAgICBlcnJsbigiMS4gdG9Mb3dlciBmYWlsZWQ6IGV4cGVjdGVkIFwiIiArIAorCSAgICAgICAgICAgICAgU0hBUkVEX0xPV0VSQ0FTRV9JU1RBTkJVTF8gKyAiXCIsIGdvdCBcIiIgKyAKKyAgICAgICAgICAgICAgVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShTSEFSRURfVVBQRVJDQVNFX0lTVEFOQlVMXykgKyAiXCIuIik7CisJICAgIH0KKworCQlpZiAoIVNIQVJFRF9MT1dFUkNBU0VfVFVSS0lTSF8uZXF1YWxzKAorCSAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoVFVSS0lTSF9MT0NBTEVfLCAKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNIQVJFRF9VUFBFUkNBU0VfSVNUQU5CVUxfKSkpIHsJCisJICAgIAllcnJsbigiMi4gdG9Mb3dlciBmYWlsZWQ6IGV4cGVjdGVkIFwiIiArIAorCSAgICAJICAgICAgU0hBUkVEX0xPV0VSQ0FTRV9UVVJLSVNIXyArICJcIiwgZ290IFwiIiArIAorCSAgICAJICAgICAgVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShUVVJLSVNIX0xPQ0FMRV8sCisJCSAgICAgICAgICAgICAgICAgICAgICAgIFNIQVJFRF9VUFBFUkNBU0VfSVNUQU5CVUxfKSArICJcIi4iKTsKKwkgICAgfQorCSAgICBpZiAoIVNIQVJFRF9MT1dFUkNBU0VfR1JFRUtfLmVxdWFscygKKwkgICAgCQlVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKEdSRUVLX0xPQ0FMRV8sIAorCSAgICAJCSAgICAgICAgICAgICAgICAgICAgICAgU0hBUkVEX1VQUEVSQ0FTRV9HUkVFS18pKSkgeworCSAgICAgICAgZXJybG4oInRvTG93ZXIgZmFpbGVkOiBleHBlY3RlZCBcIiIgKyBTSEFSRURfTE9XRVJDQVNFX0dSRUVLXyArCisJICAgICAgICAgICAgICAiXCIsIGdvdCBcIiIgKyBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKEdSRUVLX0xPQ0FMRV8sIAorICAgICAgIAkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNIQVJFRF9VUFBFUkNBU0VfR1JFRUtfKSArICJcIi4iKTsKKyAgICAJfQorCX0KKwkgIAkKKwlwdWJsaWMgdm9pZCBUZXN0VGl0bGUoKSAKKwl7CisJICAgIGZvciAoaW50IGkgPSAwOyBpIDwgVElUTEVfQlJFQUtJVEVSQVRPUlNfLmxlbmd0aDsgaSArKykgeworCSAgICAJU3RyaW5nIHRlc3QgPSBUSVRMRV9EQVRBX1tpIDw8IDFdOworCSAgICAJU3RyaW5nIGV4cGVjdGVkID0gVElUTEVfREFUQV9bKGkgPDwgMSkgKyAxXTsKKwkgICAgCWlmICghZXhwZWN0ZWQuZXF1YWxzKAorCSAgICAJICAgIFVDaGFyYWN0ZXIudG9UaXRsZUNhc2UodGVzdCwKKwkgICAgCSAgICAgICAgICAgICAgICAgICAgICAgICAgIFRJVExFX0JSRUFLSVRFUkFUT1JTX1tpXSkpKSB7CisJICAgICAgICAgICAgZXJybG4oImVycm9yOiB0aXRsZWNhc2luZyBmb3IgIiArIGhleCh0ZXN0KSArICIgc2hvdWxkIGJlICIgKyAKKwkgICAgICAgICAgICAgICAgICBoZXgoZXhwZWN0ZWQpICsgIiBidXQgZ290ICIgKworCSAgICAgICAgICAgICAgICAgIGhleChVQ2hhcmFjdGVyLnRvVGl0bGVDYXNlKHRlc3QsIAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRJVExFX0JSRUFLSVRFUkFUT1JTX1tpXSkpKTsKKwkgICAgICAgIH0KKwkgICAgfQorCX0KKwkKKwlwdWJsaWMgdm9pZCBUZXN0U3BlY2lhbCgpCisJeyAgIAorCSAgICBmb3IgKGludCBpID0gMDsgaSA8IFNQRUNJQUxfTE9DQUxFU18ubGVuZ3RoOyBpICsrKSB7CisJICAgIAlpbnQgICAgaiAgICAgID0gaSAqIDM7CisJICAgIAlMb2NhbGUgbG9jYWxlID0gU1BFQ0lBTF9MT0NBTEVTX1tpXTsKKwkgICAgCVN0cmluZyBzdHIgICAgPSBTUEVDSUFMX0RBVEFfW2pdOworCSAgICAJaWYgKGxvY2FsZSAhPSBudWxsKSB7CisJIAkJCWlmICghU1BFQ0lBTF9EQVRBX1tqICsgMV0uZXF1YWxzKAorCSAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShsb2NhbGUsIHN0cikpKSB7CisJCSAgICAgICAgCWVycmxuKCJlcnJvciBsb3dlcmNhc2luZyBzcGVjaWFsIGNoYXJhY3RlcnMgIiArIAorCQkgICAgICAgICAgICAgIAloZXgoc3RyKSArICIgZXhwZWN0ZWQgIiArIGhleChTUEVDSUFMX0RBVEFfW2ogKyAxXSkgCisJCSAgICAgICAgICAgICAgCSsgIiBmb3IgbG9jYWxlICIgKyBsb2NhbGUudG9TdHJpbmcoKSArICIgYnV0IGdvdCAiICsgCisJCSAgICAgICAgICAgICAgCWhleChVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKGxvY2FsZSwgc3RyKSkpOworCSAgICAgICAgICAgIH0KKwkgICAgICAgICAgICBpZiAoIVNQRUNJQUxfREFUQV9baiArIDJdLmVxdWFscygKKwkgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9VcHBlckNhc2UobG9jYWxlLCBzdHIpKSkgeworCQkgICAgICAgIAllcnJsbigiZXJyb3IgdXBwZXJjYXNpbmcgc3BlY2lhbCBjaGFyYWN0ZXJzICIgKyAKKwkJICAgICAgICAgICAgICAJaGV4KHN0cikgKyAiIGV4cGVjdGVkICIgKyBTUEVDSUFMX0RBVEFfW2ogKyAyXSAKKwkJICAgICAgICAgICAgICAJKyAiIGZvciBsb2NhbGUgIiArIGxvY2FsZS50b1N0cmluZygpICsgIiBidXQgZ290ICIgKyAKKwkJICAgICAgICAgICAgICAJaGV4KFVDaGFyYWN0ZXIudG9VcHBlckNhc2UobG9jYWxlLCBzdHIpKSk7CisJICAgICAgICAgICAgfQorCQkgICAgfSAgIAkKKwkJICAgIGVsc2UgeworCQkgICAgCWlmICghU1BFQ0lBTF9EQVRBX1tqICsgMV0uZXF1YWxzKAorCSAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShzdHIpKSkgeworCQkgICAgICAgIAllcnJsbigiZXJyb3IgbG93ZXJjYXNpbmcgc3BlY2lhbCBjaGFyYWN0ZXJzICIgKyAKKwkJICAgICAgICAgICAgICAJaGV4KHN0cikgKyAiIGV4cGVjdGVkICIgKyBTUEVDSUFMX0RBVEFfW2ogKyAxXSArIAorCQkgICAgICAgICAgICAgIAkiIGJ1dCBnb3QgIiArIAorCQkgICAgICAgICAgICAgIAloZXgoVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShsb2NhbGUsIHN0cikpKTsKKwkgICAgICAgICAgICB9CisJICAgICAgICAgICAgaWYgKCFTUEVDSUFMX0RBVEFfW2ogKyAyXS5lcXVhbHMoCisJICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGxvY2FsZSwgc3RyKSkpIHsKKwkJICAgICAgICAJZXJybG4oImVycm9yIHVwcGVyY2FzaW5nIHNwZWNpYWwgY2hhcmFjdGVycyAiICsgCisJCSAgICAgICAgICAgICAgCWhleChzdHIpICsgIiBleHBlY3RlZCAiICsgU1BFQ0lBTF9EQVRBX1tqICsgMl0gKyAKKwkJICAgICAgICAgICAgICAJIiBidXQgZ290ICIgKyAKKwkJICAgICAgICAgICAgICAJaGV4KFVDaGFyYWN0ZXIudG9VcHBlckNhc2UobG9jYWxlLCBzdHIpKSk7CisJICAgICAgICAgICAgfQorCQkgICAgfQorCSAgICB9CisJICAgIAorCSAgICAvLyB0dXJraXNoICYgYXplcmJhaWphbmkgZG90bGVzcyBpICYgZG90dGVkIEkKKwkgICAgLy8gcmVtb3ZlIGRvdCBhYm92ZSBpZiB0aGVyZSB3YXMgYSBjYXBpdGFsIEkgYmVmb3JlIGFuZCB0aGVyZSBhcmUgbm8gCisJICAgIC8vIG1vcmUgYWNjZW50cyBhYm92ZQorCSAgICBpZiAoIVNQRUNJQUxfRE9UVEVEX0xPV0VSX1RVUktJU0hfLmVxdWFscyhVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRVUktJU0hfTE9DQUxFXywgU1BFQ0lBTF9ET1RURURfKSkpIHsKKwkgICAgICAgIGVycmxuKCJlcnJvciBpbiBkb3RzLnRvTG93ZXIodHIpPVwiIiArIFNQRUNJQUxfRE9UVEVEXyArIAorCSAgICAgICAgICAgICAgIlwiIGV4cGVjdGVkIFwiIiArIFNQRUNJQUxfRE9UVEVEX0xPV0VSX1RVUktJU0hfICsgCisJICAgICAgICAgICAgICAiXCIgYnV0IGdvdCAiICsgVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShUVVJLSVNIX0xPQ0FMRV8sCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUEVDSUFMX0RPVFRFRF8pKTsKKwkgICAgfQorCQlpZiAoIVNQRUNJQUxfRE9UVEVEX0xPV0VSX0dFUk1BTl8uZXF1YWxzKFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRVJNQU5fTE9DQUxFXywgU1BFQ0lBTF9ET1RURURfKSkpIHsKKwkgICAgICAgIGVycmxuKCJlcnJvciBpbiBkb3RzLnRvTG93ZXIoZGUpPVwiIiArIFNQRUNJQUxfRE9UVEVEXyArIAorCSAgICAgICAgICAgICAgIlwiIGV4cGVjdGVkIFwiIiArIFNQRUNJQUxfRE9UVEVEX0xPV0VSX0dFUk1BTl8gKyAKKwkgICAgICAgICAgICAgICJcIiBidXQgZ290ICIgKyBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKEdFUk1BTl9MT0NBTEVfLAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BFQ0lBTF9ET1RURURfKSk7CisJICAgIH0KKwkKKwkJLy8gbGl0aHVhbmlhbiBkb3QgYWJvdmUgaW4gdXBwZXJjYXNpbmcKKwkJaWYgKCFTUEVDSUFMX0RPVF9BQk9WRV9VUFBFUl9MSVRIVUFOSUFOXy5lcXVhbHMoCisJCSAgICAgVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShMSVRIVUFOSUFOX0xPQ0FMRV8sIFNQRUNJQUxfRE9UX0FCT1ZFXykpKSB7CisJICAgICAgICBlcnJsbigiZXJyb3IgaW4gZG90cy50b1VwcGVyKGx0KT1cIiIgKyBTUEVDSUFMX0RPVF9BQk9WRV8gKyAKKwkgICAgICAgICAgICAgICJcIiBleHBlY3RlZCBcIiIgKyBTUEVDSUFMX0RPVF9BQk9WRV9VUFBFUl9MSVRIVUFOSUFOXyArIAorCSAgICAgICAgICAgICAgIlwiIGJ1dCBnb3QgIiArIFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoTElUSFVBTklBTl9MT0NBTEVfLAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BFQ0lBTF9ET1RfQUJPVkVfKSk7CisJICAgIH0KKwkJaWYgKCFTUEVDSUFMX0RPVF9BQk9WRV9VUFBFUl9HRVJNQU5fLmVxdWFscyhVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFUk1BTl9MT0NBTEVfLCBTUEVDSUFMX0RPVF9BQk9WRV8pKSkgeworCSAgICAgICAgZXJybG4oImVycm9yIGluIGRvdHMudG9VcHBlcihkZSk9XCIiICsgU1BFQ0lBTF9ET1RfQUJPVkVfICsgCisJICAgICAgICAgICAgICAiXCIgZXhwZWN0ZWQgXCIiICsgU1BFQ0lBTF9ET1RfQUJPVkVfVVBQRVJfR0VSTUFOXyArIAorCSAgICAgICAgICAgICAgIlwiIGJ1dCBnb3QgIiArIFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoR0VSTUFOX0xPQ0FMRV8sCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUEVDSUFMX0RPVF9BQk9WRV8pKTsKKwkgICAgfQkgICAgCisJICAgIAorCQkvLyBsaXRodWFuaWFuIGFkZHMgZG90IGFib3ZlIHRvIGkgaW4gbG93ZXJjYXNpbmcgaWYgdGhlcmUgYXJlIG1vcmUgCisJCS8vIGFib3ZlIGFjY2VudHMKKwkJaWYgKCFTUEVDSUFMX0RPVF9BQk9WRV9MT1dFUl9MSVRIVUFOSUFOXy5lcXVhbHMoCisJCQlVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKExJVEhVQU5JQU5fTE9DQUxFXywgCisJCQkgICAgICAgICAgICAgICAgICAgICAgIFNQRUNJQUxfRE9UX0FCT1ZFX1VQUEVSXykpKSB7CisJICAgICAgICBlcnJsbigiZXJyb3IgaW4gZG90cy50b0xvd2VyKGx0KT1cIiIgKyBTUEVDSUFMX0RPVF9BQk9WRV9VUFBFUl8gKyAKKwkgICAgICAgICAgICAgICJcIiBleHBlY3RlZCBcIiIgKyBTUEVDSUFMX0RPVF9BQk9WRV9MT1dFUl9MSVRIVUFOSUFOXyArIAorCSAgICAgICAgICAgICAgIlwiIGJ1dCBnb3QgIiArIFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoTElUSFVBTklBTl9MT0NBTEVfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BFQ0lBTF9ET1RfQUJPVkVfVVBQRVJfKSk7CisJICAgIH0KKwkJaWYgKCFTUEVDSUFMX0RPVF9BQk9WRV9MT1dFUl9HRVJNQU5fLmVxdWFscygKKwkJCVVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoR0VSTUFOX0xPQ0FMRV8sIAorCQkJICAgICAgICAgICAgICAgICAgICAgICBTUEVDSUFMX0RPVF9BQk9WRV9VUFBFUl8pKSkgeworCSAgICAgICAgZXJybG4oImVycm9yIGluIGRvdHMudG9Mb3dlcihkZSk9XCIiICsgU1BFQ0lBTF9ET1RfQUJPVkVfVVBQRVJfICsgCisJICAgICAgICAgICAgICAiXCIgZXhwZWN0ZWQgXCIiICsgU1BFQ0lBTF9ET1RfQUJPVkVfTE9XRVJfR0VSTUFOXyArIAorCSAgICAgICAgICAgICAgIlwiIGJ1dCBnb3QgIiArIFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoR0VSTUFOX0xPQ0FMRV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUEVDSUFMX0RPVF9BQk9WRV9VUFBFUl8pKTsKKwkgICAgfQorCX0KKwkgIAorCS8qKgorCSAqIFRlc3RzIGZvciBjYXNlIG1hcHBpbmcgaW4gdGhlIGZpbGUgU3BlY2lhbENhc2luZy50eHQKKwkgKiBUaGlzIG1ldGhvZCByZWFkcyBpbiBTcGVjaWFsQ2FzaW5nLnR4dCBmaWxlIGZvciB0ZXN0aW5nIHB1cnBvc2VzLiAKKwkgKiBBIGRlZmF1bHQgcGF0aCBpcyBwcm92aWRlZCByZWxhdGl2ZSB0byB0aGUgc3JjIHBhdGgsIGhvd2V2ZXIgdGhlIHVzZXIgCisJICogY291bGQgc2V0IGEgc3lzdGVtIHByb3BlcnR5IHRvIGNoYW5nZSB0aGUgZGlyZWN0b3J5IHBhdGguPGJyPgorCSAqIGUuZy4gamF2YSAtRFVuaWNvZGVEYXRhPSJkYXRhX2Rpcl9wYXRoIiBjb20uaWJtLmRldi50ZXN0LmxhbmcuVUNoYXJhY3RlclRlc3QKKwkgKi8KKwlwdWJsaWMgdm9pZCBUZXN0U3BlY2lhbENhc2luZ1R4dCgpCisJeworCSAgICB0cnkKKwkJeworCQkgIAkvLyByZWFkaW5nIGluIHRoZSBTcGVjaWFsQ2FzaW5nIGZpbGUKKwkJICAJQnVmZmVyZWRSZWFkZXIgaW5wdXQgPSBUZXN0VXRpbC5nZXREYXRhUmVhZGVyKAorCQkgIAkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1bmljb2RlL1NwZWNpYWxDYXNpbmcudHh0Iik7CisgICAgICAgICAgICB3aGlsZSAodHJ1ZSkKKwkgICAgICAJeworICAgICAgICAgICAgICAgIFN0cmluZyBzID0gaW5wdXQucmVhZExpbmUoKTsKKwkgICAgICAgIAlpZiAocyA9PSBudWxsKSB7CisJICAgICAgICAgICAgCWJyZWFrOworCSAgICAgICAgCX0KKyAgICAgICAgICAgICAgICBpZiAocy5sZW5ndGgoKSA9PSAwIHx8IHMuY2hhckF0KDApID09ICcjJykgeworCSAgICAgICAgICAgIAljb250aW51ZTsKKwkgICAgICAgIAl9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgU3RyaW5nIGNoc3RyW10gPSBnZXRVbmljb2RlU3RyaW5ncyhzKTsKKyAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgc3RyYnVmZmVyICAgPSBuZXcgU3RyaW5nQnVmZmVyKGNoc3RyWzBdKTsKKyAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgbG93ZXJidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKGNoc3RyWzFdKTsgCisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHVwcGVyYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcihjaHN0clszXSk7IAorICAgICAgICAgICAgICAgIExvY2FsZSBsb2NhbGUgPSBudWxsOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSA0OyBpIDwgY2hzdHIubGVuZ3RoOyBpICsrKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBjb25kaXRpb24gPSBjaHN0cltpXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKENoYXJhY3Rlci5pc0xvd2VyQ2FzZShjaHN0cltpXS5jaGFyQXQoMCkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBzcGVjaWZpZWQgbG9jYWxlCisgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGUgPSBuZXcgTG9jYWxlKGNoc3RyW2ldLCAiIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoY29uZGl0aW9uLmNvbXBhcmVUb0lnbm9yZUNhc2UoIk5vdF9CZWZvcmVfRG90IikgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0dXJucyBJIGludG8gZG90bGVzcyBpCisgICAgICAgICAgICAgICAgICAgIH0gICAgCisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGNvbmRpdGlvbi5jb21wYXJlVG9JZ25vcmVDYXNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1vcmVfQWJvdmUiKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyYnVmZmVyLmFwcGVuZCgoY2hhcikweDMwMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG93ZXJidWZmZXIuYXBwZW5kKChjaGFyKTB4MzAwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cHBlcmJ1ZmZlci5hcHBlbmQoKGNoYXIpMHgzMDApOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGNvbmRpdGlvbi5jb21wYXJlVG9JZ25vcmVDYXNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFmdGVyX1NvZnRfRG90dGVkIikgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmJ1ZmZlci5pbnNlcnQoMCwgJ2knKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb3dlcmJ1ZmZlci5pbnNlcnQoMCwgJ2knKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbGFuZyA9ICIiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsb2NhbGUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYW5nID0gbG9jYWxlLmdldExhbmd1YWdlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsYW5nLmVxdWFscygidHIiKSB8fCBsYW5nLmVxdWFscygiYXoiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cHBlcmJ1ZmZlci5pbnNlcnQoMCwgJ1x1MDEzMCcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBwZXJidWZmZXIuaW5zZXJ0KDAsICdJJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGNvbmRpdGlvbi5jb21wYXJlVG9JZ25vcmVDYXNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZpbmFsX1NpZ21hIikgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmJ1ZmZlci5pbnNlcnQoMCwgJ2MnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb3dlcmJ1ZmZlci5pbnNlcnQoMCwgJ2MnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cHBlcmJ1ZmZlci5pbnNlcnQoMCwgJ0MnKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCSAgICAgICAgCX0KKyAgICAgICAgICAgICAgICBjaHN0clswXSA9IHN0cmJ1ZmZlci50b1N0cmluZygpOworICAgICAgICAgICAgICAgIGNoc3RyWzFdID0gbG93ZXJidWZmZXIudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICBjaHN0clszXSA9IHVwcGVyYnVmZmVyLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgaWYgKGxvY2FsZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShjaHN0clswXSkuZXF1YWxzKGNoc3RyWzFdKSkgeworICAgIAkgICAgICAgICAgICAgICAJZXJybG4ocyk7CisgICAgCSAgICAgICAgICAgICAgIAllcnJsbigiRmFpbDogdG9Mb3dlckNhc2UgZm9yIGNoYXJhY3RlciAiICsgCisgICAgCSAgICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmVzY2FwZShjaHN0clswXSkgKyAiLCBleHBlY3RlZCAiCisgICAgCSAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuZXNjYXBlKGNoc3RyWzFdKSArICIgYnV0IHJlc3VsdGVkIGluICIgKyAKKyAgICAJICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHkuZXNjYXBlKFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoY2hzdHJbMF0pKSk7CisgICAgCSAgICAgICAgICAgIH0KKyAgICAJICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGNoc3RyWzBdKS5lcXVhbHMoY2hzdHJbM10pKSB7CisgICAgCSAgICAgICAgICAgICAgICBlcnJsbihzKTsKKyAgICAJICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiB0b1VwcGVyQ2FzZSBmb3IgY2hhcmFjdGVyICIgKyAKKyAgICAJICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHkuZXNjYXBlKGNoc3RyWzBdKSArICIsIGV4cGVjdGVkICIKKyAgICAJICAgICAgICAgICAgICAgICAgICAgICsgVXRpbGl0eS5lc2NhcGUoY2hzdHJbM10pICsgIiBidXQgcmVzdWx0ZWQgaW4gIiArIAorICAgIAkgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0eS5lc2NhcGUoVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShjaHN0clswXSkpKTsKKyAgICAJICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKGxvY2FsZSwgY2hzdHJbMF0pLmVxdWFscygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaHN0clsxXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKHMpOworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IHRvTG93ZXJDYXNlIGZvciBjaGFyYWN0ZXIgIiArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0eS5lc2NhcGUoY2hzdHJbMF0pICsgIiwgZXhwZWN0ZWQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmVzY2FwZShjaHN0clsxXSkgKyAiIGJ1dCByZXN1bHRlZCBpbiAiICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmVzY2FwZShVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKGxvY2FsZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoc3RyWzBdKSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShsb2NhbGUsIGNoc3RyWzBdKS5lcXVhbHMoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hzdHJbM10pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbihzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiB0b1VwcGVyQ2FzZSBmb3IgY2hhcmFjdGVyICIgKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHkuZXNjYXBlKGNoc3RyWzBdKSArICIsIGV4cGVjdGVkICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgVXRpbGl0eS5lc2NhcGUoY2hzdHJbM10pICsgIiBidXQgcmVzdWx0ZWQgaW4gIiArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0eS5lc2NhcGUoVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShsb2NhbGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaHN0clswXSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKwkgICAgICAJfQorCSAgICAgIAlpbnB1dC5jbG9zZSgpOworCSAgICB9CisJICAgIGNhdGNoIChFeGNlcHRpb24gZSkKKwkgICAgeworCSAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisJICAgIH0KKwl9CisJCisJLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLSB0ZXN0IGRhdGEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwkKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBMb2NhbGUgVFVSS0lTSF9MT0NBTEVfID0gbmV3IExvY2FsZSgidHIiLCAiVFIiKTsKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBMb2NhbGUgR0VSTUFOX0xPQ0FMRV8gPSBuZXcgTG9jYWxlKCJkZSIsICJERSIpOworCXByaXZhdGUgc3RhdGljIGZpbmFsIExvY2FsZSBHUkVFS19MT0NBTEVfID0gbmV3IExvY2FsZSgiZWwiLCAiR1IiKTsKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBMb2NhbGUgRU5HTElTSF9MT0NBTEVfID0gbmV3IExvY2FsZSgiZW4iLCAiVVMiKTsKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBMb2NhbGUgTElUSFVBTklBTl9MT0NBTEVfID0gbmV3IExvY2FsZSgibHQiLCAiTFQiKTsKKwkKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBCcmVha0l0ZXJhdG9yIEJSRUFLSVRFUkFUT1JfQ0hBUkFDVEVSXyA9IAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZSgpOworCXByaXZhdGUgc3RhdGljIGZpbmFsIEJyZWFrSXRlcmF0b3IgQlJFQUtJVEVSQVRPUl9XT1JEXyA9IAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoKTsKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBCcmVha0l0ZXJhdG9yIEJSRUFLSVRFUkFUT1JfVElUTEVfID0gCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVha0l0ZXJhdG9yLmdldFRpdGxlSW5zdGFuY2UoKTsJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAkKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0hBUkFDVEVSX1VQUEVSX1tdID0gCisJICAgICAgICAgICAgICAgICAgezB4NDEsIDB4MDA0MiwgMHgwMDQzLCAweDAwNDQsIDB4MDA0NSwgMHgwMDQ2LCAweDAwNDcsIAorCSAgICAJICAgICAgICAgICAweDAwYjEsIDB4MDBiMiwgMHhiMywgMHgwMDQ4LCAweDAwNDksIDB4MDA0YSwgMHgwMDJlLCAKKwkgICAgCSAgICAgICAgICAgMHgwMDNmLCAweDAwM2EsIDB4MDA0YiwgMHgwMDRjLCAweDRkLCAweDAwNGUsIDB4MDA0ZiwgCisJICAgIAkgICAgICAgICAgIDB4MDFjNCwgMHgwMWM4LCAweDAwMGMsIDB4MDAwMH07CisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENIQVJBQ1RFUl9MT1dFUl9bXSA9IAorCSAgICAgICAgICAgICAgICAgIHsweDYxLCAweDAwNjIsIDB4MDA2MywgMHgwMDY0LCAweDAwNjUsIDB4MDA2NiwgMHgwMDY3LCAKKwkgICAgCSAgICAgICAgICAgMHgwMGIxLCAweDAwYjIsIDB4YjMsIDB4MDA2OCwgMHgwMDY5LCAweDAwNmEsIDB4MDAyZSwgCisJICAgIAkgICAgICAgICAgIDB4MDAzZiwgMHgwMDNhLCAweDAwNmIsIDB4MDA2YywgMHg2ZCwgMHgwMDZlLCAweDAwNmYsIAorCSAgICAJICAgICAgICAgICAweDAxYzYsIDB4MDFjOSwgMHgwMDBjLCAweDAwMDB9OworCSAgICAJICAgICAgICAgICAKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRk9MRElOR19TSU1QTEVfW10gPSB7CisJCS8vIGlucHV0LCBkZWZhdWx0LCBleGNsdWRlIHNwZWNpYWwgaQorCSAgICAweDYxLCAgIDB4NjEsICAweDYxLAorCSAgICAweDQ5LCAgIDB4NjksICAweDEzMSwKKwkgICAgMHgxMzAsICAweDY5LCAgMHg2OSwKKyAgICAgICAgMHgxMzEsICAweDEzMSwgMHgxMzEsCisgICAgICAgIDB4ZGYsICAgMHhkZiwgIDB4ZGYsCisgICAgICAgIDB4ZmIwMywgMHhmYjAzLCAweGZiMDMsCisgICAgICAgIDB4MTA0MGUsMHgxMDQzNiwweDEwNDM2LAorICAgICAgICAweDVmZmZmLDB4NWZmZmYsMHg1ZmZmZgorCX07CisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEZPTERJTkdfTUlYRURfW10gPSAKKwkgICAgICAgICAgICAgICAgICAgICAgeyJcdTAwNjFcdTAwNDJcdTAxMzBcdTAwNDlcdTAxMzFcdTAzZDBcdTAwZGZcdWZiMDNcdWQ5M2ZcdWRmZmYiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFcdTAwZGZcdTAwYjVcdWZiMDNcdUQ4MDFcdURDMENcdTAxMzBcdTAxMzEifTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgRk9MRElOR19ERUZBVUxUX1tdID0gCisJICAgICB7Ilx1MDA2MVx1MDA2Mlx1MDA2OVx1MDMwN1x1MDA2OVx1MDEzMVx1MDNiMlx1MDA3M1x1MDA3M1x1MDA2Nlx1MDA2Nlx1MDA2OVx1ZDkzZlx1ZGZmZiIsCisJICAgICAgImFzc1x1MDNiY2ZmaVx1RDgwMVx1REMzNGlcdTAzMDdcdTAxMzEifTsKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgRk9MRElOR19FWENMVURFX1NQRUNJQUxfSV9bXSA9IAorCSAgICAgeyJcdTAwNjFcdTAwNjJcdTAwNjlcdTAxMzFcdTAxMzFcdTAzYjJcdTAwNzNcdTAwNzNcdTAwNjZcdTAwNjZcdTAwNjlcdWQ5M2ZcdWRmZmYiLAorCSAgICAgICJhc3NcdTAzYmNmZmlcdUQ4MDFcdURDMzRpXHUwMTMxIn07CisJLyoqIAorCSAqICJJRVNVUyBDSFJJU1RPUyIKKwkgKi8KKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0hBUkVEX1VQUEVSQ0FTRV9HUkVFS18gPQorCQkiXHUwMzk5XHUwMzk1XHUwM2EzXHUwM2E1XHUwM2EzXHUwMDIwXHUwM2E3XHUwM2ExXHUwMzk5XHUwM2EzXHUwM2E0XHUwMzlmXHUwM2EzIjsKKwkvKioKKwkgKiAiaWVzdXMgY2hyaXN0b3MiCisJICovCisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNIQVJFRF9MT1dFUkNBU0VfR1JFRUtfID0gCisJICAgICJcdTAzYjlcdTAzYjVcdTAzYzNcdTAzYzVcdTAzYzJcdTAwMjBcdTAzYzdcdTAzYzFcdTAzYjlcdTAzYzNcdTAzYzRcdTAzYmZcdTAzYzIiOworCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBTSEFSRURfTE9XRVJDQVNFX1RVUktJU0hfID0gCisJICAgICJcdTAwNjlcdTAwNzNcdTAwNzRcdTAwNjFcdTAwNmVcdTAwNjJcdTAwNzVcdTAwNmNcdTAwMmNcdTAwMjBcdTAwNmVcdTAwNmZcdTAwNzRcdTAwMjBcdTAwNjNcdTAwNmZcdTAwNmVcdTAwNzNcdTAwNzRcdTAwNjFcdTAwNmVcdTAwNzRcdTAxMzFcdTAwNmVcdTAwNmZcdTAwNzBcdTAwNmNcdTAwNjVcdTAwMjEiOworCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBTSEFSRURfVVBQRVJDQVNFX1RVUktJU0hfID0gCisJICAgICJcdTAwNTRcdTAwNGZcdTAwNTBcdTAwNGJcdTAwNDFcdTAwNTBcdTAwNDlcdTAwMjBcdTAwNTBcdTAwNDFcdTAwNGNcdTAwNDFcdTAwNDNcdTAwNDVcdTAwMmNcdTAwMjBcdTAxMzBcdTAwNTNcdTAwNTRcdTAwNDFcdTAwNGVcdTAwNDJcdTAwNTVcdTAwNGMiOyAgICAgIAorCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBTSEFSRURfVVBQRVJDQVNFX0lTVEFOQlVMXyA9IAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEzMFNUQU5CVUwsIE5PVCBDT05TVEFOVElOT1BMRSEiOworCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBTSEFSRURfTE9XRVJDQVNFX0lTVEFOQlVMXyA9IAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImlcdTAzMDdzdGFuYnVsLCBub3QgY29uc3RhbnRpbm9wbGUhIjsKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0hBUkVEX0xPV0VSQ0FTRV9UT1BLQVBfID0gCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidG9wa2FwXHUwMTMxIHBhbGFjZSwgaXN0YW5idWwiOworCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBTSEFSRURfVVBQRVJDQVNFX1RPUEtBUF8gPSAgCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVE9QS0FQSSBQQUxBQ0UsIElTVEFOQlVMIjsKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0hBUkVEX0xPV0VSQ0FTRV9HRVJNQU5fID0gCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU1x1MDBGQ1x1MDBERm1heXJzdHJhXHUwMERGZSI7CQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBTSEFSRURfVVBQRVJDQVNFX0dFUk1BTl8gPSAKKyAgICAJCQkJCQkJCQkgICJTXHUwMERDU1NNQVlSU1RSQVNTRSI7CisgCQorIAlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVVBQRVJfQkVGT1JFXyA9ICAKKyAgIAkgICAgICJcdTAwNjFcdTAwNDJcdTAwNjlcdTAzYzJcdTAwZGZcdTAzYzNcdTAwMmZcdWZiMDNcdWZiMDNcdWZiMDNcdWQ5M2ZcdWRmZmYiOworCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBVUFBFUl9ST09UXyA9ICAgIAorCSAgICAgIlx1MDA0MVx1MDA0Mlx1MDA0OVx1MDNhM1x1MDA1M1x1MDA1M1x1MDNhM1x1MDAyZlx1MDA0Nlx1MDA0Nlx1MDA0OVx1MDA0Nlx1MDA0Nlx1MDA0OVx1MDA0Nlx1MDA0Nlx1MDA0OVx1ZDkzZlx1ZGZmZiI7CisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFVQUEVSX1RVUktJU0hfID0gCQorCSAgICAgIlx1MDA0MVx1MDA0Mlx1MDEzMFx1MDNhM1x1MDA1M1x1MDA1M1x1MDNhM1x1MDAyZlx1MDA0Nlx1MDA0Nlx1MDA0OVx1MDA0Nlx1MDA0Nlx1MDA0OVx1MDA0Nlx1MDA0Nlx1MDA0OVx1ZDkzZlx1ZGZmZiI7CisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFVQUEVSX01JTklfID0gIlx1MDBkZlx1MDA2MSI7CisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFVQUEVSX01JTklfVVBQRVJfID0gIlx1MDA1M1x1MDA1M1x1MDA0MSI7CisJCisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIExPV0VSX0JFRk9SRV8gPSAKKyAgICAgICAgICAgICAgICAgICAgICAiXHUwMDYxXHUwMDQyXHUwMDQ5XHUwM2EzXHUwMGRmXHUwM2EzXHUwMDJmXHVkOTNmXHVkZmZmIjsKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgTE9XRVJfUk9PVF8gPSAgICAKKwkgICAgICAgICAgICAgICAgICAiXHUwMDYxXHUwMDYyXHUwMDY5XHUwM2MzXHUwMGRmXHUwM2MyXHUwMDJmXHVkOTNmXHVkZmZmIjsKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgTE9XRVJfVFVSS0lTSF8gPSAKKwkgICAgICAgICAgICAgICAgICAiXHUwMDYxXHUwMDYyXHUwMTMxXHUwM2MzXHUwMGRmXHUwM2MyXHUwMDJmXHVkOTNmXHVkZmZmIjsKKworCS8qKgorCSAqIGVhY2ggaXRlbSBpcyBhbiBhcnJheSB3aXRoIGlucHV0IHN0cmluZywgcmVzdWx0IHN0cmluZywgbG9jYWxlCisJICovCisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFRJVExFX0RBVEFfW10gPSB7CisJCSJcdTAwNjFcdTAwNDJcdTAwMjBcdTAwNjlcdTAzYzJcdTAwMjBcdTAwZGZcdTAzYzNcdTAwMmZcdWZiMDNcdWQ5M2ZcdWRmZmYiLAorCQkiXHUwMDQxXHUwMDQyXHUwMDIwXHUwMDQ5XHUwM2EzXHUwMDIwXHUwMDUzXHUwMDczXHUwM2EzXHUwMDJmXHUwMDQ2XHUwMDY2XHUwMDY5XHVkOTNmXHVkZmZmIiwKKwkJCisJCSJcdTAwNjFcdTAwNDJcdTAwMjBcdTAwNjlcdTAzYzJcdTAwMjBcdTAwZGZcdTAzYzNcdTAwMmZcdWZiMDNcdWQ5M2ZcdWRmZmYiLAorCQkiXHUwMDQxXHUwMDYyXHUwMDIwXHUwMDQ5XHUwM2MyXHUwMDIwXHUwMDUzXHUwMDczXHUwM2MzXHUwMDJmXHUwMDQ2XHUwMDY2XHUwMDY5XHVkOTNmXHVkZmZmIiwKKwkJCisJCSIgdEhlIFFVSWNLIGJSb1duIiwgIiBUaGUgUXVpY2sgQnJvd24iLAorCQkKKwkJIlx1MDFjNFx1MDFjNVx1MDFjNlx1MDFjN1x1MDFjOFx1MDFjOVx1MDFjYVx1MDFjYlx1MDFjYyIsIAorCQkiXHUwMWM1XHUwMWM1XHUwMWM1XHUwMWM4XHUwMWM4XHUwMWM4XHUwMWNiXHUwMWNiXHUwMWNiIiwgLy8gVUJSS19DSEFSQUNURVIKKwkJCisgICAgCSJcdTAxYzl1YmF2IGxqdWJhdiIsICJcdTAxYzh1YmF2IExqdWJhdiIsIC8vIExqIHZzLiBMK2oKKyAgICAJCisgICAgCSInb0ggZE9uJ1QgdEl0TGVDYVNlIEFmVGVSIGxFdFRlUisnIiwgCisgICAgCSInT2ggRG9uJ3QgVGl0bGVjYXNlIEFmdGVyIExldHRlcisnIgorCX07CisJICAgICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEJyZWFrSXRlcmF0b3IgVElUTEVfQlJFQUtJVEVSQVRPUlNfW10gPQorICAgIHsKKyAgICAJQlJFQUtJVEVSQVRPUl9DSEFSQUNURVJfLAorICAgIAlCUkVBS0lURVJBVE9SX1dPUkRfLAorICAgIAlCUkVBS0lURVJBVE9SX1RJVExFXywKKyAgICAJQlJFQUtJVEVSQVRPUl9DSEFSQUNURVJfLAorICAgIAludWxsLAorICAgIAludWxsCisgICAgfTsKKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD5iYXNpYyBzdHJpbmcsIGxvd2VyIHN0cmluZywgdXBwZXIgc3RyaW5nLCB0aXRsZSBzdHJpbmc8L3A+CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNQRUNJQUxfREFUQV9bXSA9IHsKKyAgICAJVVRGMTYudmFsdWVPZigweDEwNDNDKSArIFVURjE2LnZhbHVlT2YoMHgxMDQxNCksCisJCVVURjE2LnZhbHVlT2YoMHgxMDQzQykgKyBVVEYxNi52YWx1ZU9mKDB4MTA0M0MpLAorCQlVVEYxNi52YWx1ZU9mKDB4MTA0MTQpICsgVVRGMTYudmFsdWVPZigweDEwNDE0KSwKKwkJImFiJ2NEIFx1RkIwMGlcdTAxMzFJXHUwMTMwIFx1MDFDN1x1MDFDOFx1MDFDOSAiICsgCisJICAgICAgICAgICAgICAgICAgICAgVVRGMTYudmFsdWVPZigweDEwNDNDKSArIFVURjE2LnZhbHVlT2YoMHgxMDQxNCksCisJICAgICJhYidjZCBcdUZCMDBpXHUwMTMxaWlcdTAzMDcgXHUwMUM5XHUwMUM5XHUwMUM5ICIgKyAKKwkgICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LnZhbHVlT2YoMHgxMDQzQykgKyBVVEYxNi52YWx1ZU9mKDB4MTA0M0MpLAorCSAgICAiQUInQ0QgRkZJSUlcdTAxMzAgXHUwMUM3XHUwMUM3XHUwMUM3ICIgKworCSAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYudmFsdWVPZigweDEwNDE0KSArIFVURjE2LnZhbHVlT2YoMHgxMDQxNCksCisJICAgIC8vIHNpZ21hcyBmb2xsb3dlZC9wcmVjZWRlZCBieSBjYXNlZCBsZXR0ZXJzCisJICAgICJpXHUwMzA3XHUwM2EzXHUwMzA4aiBcdTAzMDdcdTAzYTNcdTAzMDhqIGlcdTAwYWRcdTAzYTNcdTAzMDggXHUwMzA3XHUwM2EzXHUwMzA4ICIsCisJICAgICJpXHUwMzA3XHUwM2MzXHUwMzA4aiBcdTAzMDdcdTAzYzNcdTAzMDhqIGlcdTAwYWRcdTAzYzJcdTAzMDggXHUwMzA3XHUwM2MzXHUwMzA4ICIsCisJICAgICJJXHUwMzA3XHUwM2EzXHUwMzA4SiBcdTAzMDdcdTAzYTNcdTAzMDhKIElcdTAwYWRcdTAzYTNcdTAzMDggXHUwMzA3XHUwM2EzXHUwMzA4ICIKKyAgICB9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvY2FsZSBTUEVDSUFMX0xPQ0FMRVNfW10gPSB7CisgICAgCW51bGwsCisgICAgCUVOR0xJU0hfTE9DQUxFXywKKyAgICAJbnVsbCwKKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNQRUNJQUxfRE9UVEVEXyA9IAorICAgICAgICAgICAgIkkgXHUwMTMwIElcdTAzMDcgSVx1MDMyN1x1MDMwNyBJXHUwMzAxXHUwMzA3IElcdTAzMjdcdTAzMDdcdTAzMDEiOworCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBTUEVDSUFMX0RPVFRFRF9MT1dFUl9UVVJLSVNIXyA9CisJCQkiXHUwMTMxIGkgaVx1MDMwNyBpXHUwMzI3XHUwMzA3IFx1MDEzMVx1MDMwMVx1MDMwNyBpXHUwMzI3XHUwMzA3XHUwMzAxIjsKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU1BFQ0lBTF9ET1RURURfTE9XRVJfR0VSTUFOXyA9IAorCSAgICAgICAgImkgaVx1MDMwNyBpXHUwMzA3IGlcdTAzMjdcdTAzMDcgaVx1MDMwMVx1MDMwNyBpXHUwMzI3XHUwMzA3XHUwMzAxIjsKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU1BFQ0lBTF9ET1RfQUJPVkVfID0KKwkJCSJhXHUwMzA3IFx1MDMwNyBpXHUwMzA3IGpcdTAzMjdcdTAzMDcgalx1MDMwMVx1MDMwNyI7CisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNQRUNJQUxfRE9UX0FCT1ZFX1VQUEVSX0xJVEhVQU5JQU5fID0gCisJICAgICAgICAiQVx1MDMwNyBcdTAzMDcgSSBKXHUwMzI3IEpcdTAzMDFcdTAzMDciOworCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBTUEVDSUFMX0RPVF9BQk9WRV9VUFBFUl9HRVJNQU5fID0gCisJICAgICAgICAiQVx1MDMwNyBcdTAzMDcgSVx1MDMwNyBKXHUwMzI3XHUwMzA3IEpcdTAzMDFcdTAzMDciOworCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBTUEVDSUFMX0RPVF9BQk9WRV9VUFBFUl8gPQorCSAgICAgICAgIkkgSVx1MDMwMSBKIEpcdTAzMDEgXHUwMTJlIFx1MDEyZVx1MDMwMSBcdTAwY2NcdTAwY2RcdTAxMjgiOworCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBTUEVDSUFMX0RPVF9BQk9WRV9MT1dFUl9MSVRIVUFOSUFOXyA9CisJICAgICAgICAiaSBpXHUwMzA3XHUwMzAxIGogalx1MDMwN1x1MDMwMSBcdTAxMmYgXHUwMTJmXHUwMzA3XHUwMzAxIGlcdTAzMDdcdTAzMDBpXHUwMzA3XHUwMzAxaVx1MDMwN1x1MDMwMyI7CisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNQRUNJQUxfRE9UX0FCT1ZFX0xPV0VSX0dFUk1BTl8gPQorCSAgCQkiaSBpXHUwMzAxIGogalx1MDMwMSBcdTAxMmYgXHUwMTJmXHUwMzAxIFx1MDBlY1x1MDBlZFx1MDEyOSI7CisJICAgICAgICAgICAgICAgICAgCisJLy8gcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwkKKwkvKioKKyAgCSAqIENvbnZlcnRpbmcgdGhlIGhleCBudW1iZXJzIHJlcHJlc2VudGVkIGJldHdlZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbiAnOycgdG8gVW5pY29kZSBzdHJpbmdzCisgIAkgKiBAcGFyYW0gc3RyIHN0cmluZyB0byBicmVhayB1cCBpbnRvIFVuaWNvZGUgc3RyaW5ncworICAJICogQHJldHVybiBhcnJheSBvZiBVbmljb2RlIHN0cmluZ3MgZW5kaW5nIHdpdGggYSBudWxsCisgIAkgKi8KKyAgCXByaXZhdGUgU3RyaW5nW10gZ2V0VW5pY29kZVN0cmluZ3MoU3RyaW5nIHN0cikKKyAgCXsKKyAgICAJVmVjdG9yIHYgPSBuZXcgVmVjdG9yKDEwKTsKKyAgICAgICAgaW50IHN0YXJ0ID0gMDsKKyAgICAgICAgZm9yIChpbnQgY2FzZWNvdW50ID0gNDsgY2FzZWNvdW50ID4gMDsgY2FzZWNvdW50IC0tKSB7CisgICAgICAgICAgICBpbnQgZW5kID0gc3RyLmluZGV4T2YoIjsgIiwgc3RhcnQpOworICAgICAgICAgICAgU3RyaW5nIGNhc2VzdHIgPSBzdHIuc3Vic3RyaW5nKHN0YXJ0LCBlbmQpOworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGludCBzcGFjZW9mZnNldCA9IDA7CisgICAgICAgICAgICB3aGlsZSAoc3BhY2VvZmZzZXQgPCBjYXNlc3RyLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgaW50IG5leHRzcGFjZSA9IGNhc2VzdHIuaW5kZXhPZignICcsIHNwYWNlb2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBpZiAobmV4dHNwYWNlID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIG5leHRzcGFjZSA9IGNhc2VzdHIubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoKGNoYXIpSW50ZWdlci5wYXJzZUludCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlc3RyLnN1YnN0cmluZyhzcGFjZW9mZnNldCwgbmV4dHNwYWNlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2KSk7CisgICAgICAgICAgICAgICAgc3BhY2VvZmZzZXQgPSBuZXh0c3BhY2UgKyAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3RhcnQgPSBlbmQgKyAyOworICAgICAgICAgICAgdi5hZGQoYnVmZmVyLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgICAgIGludCBjb21tZW50cyA9IHN0ci5pbmRleE9mKCIgIyIsIHN0YXJ0KTsKKyAgICAgICAgaWYgKGNvbW1lbnRzICE9IC0xICYmIGNvbW1lbnRzICE9IHN0YXJ0KSB7CisgICAgICAgICAgICBpZiAoc3RyLmNoYXJBdChjb21tZW50cyAtIDEpID09ICc7JykgeworICAgICAgICAgICAgICAgIGNvbW1lbnRzIC0tOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3RyaW5nIGNvbmRpdGlvbnMgPSBzdHIuc3Vic3RyaW5nKHN0YXJ0LCBjb21tZW50cyk7CisgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gMDsKKyAgICAJICAgIHdoaWxlIChvZmZzZXQgPCBjb25kaXRpb25zLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgaW50IHNwYWNlb2Zmc2V0ID0gY29uZGl0aW9ucy5pbmRleE9mKCcgJywgb2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBpZiAoc3BhY2VvZmZzZXQgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgc3BhY2VvZmZzZXQgPSBjb25kaXRpb25zLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB2LmFkZChjb25kaXRpb25zLnN1YnN0cmluZyhvZmZzZXQsIHNwYWNlb2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgb2Zmc2V0ID0gc3BhY2VvZmZzZXQgKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9CisJICAgIGludCBzaXplID0gdi5zaXplKCk7CisJICAgIFN0cmluZyByZXN1bHRbXSA9IG5ldyBTdHJpbmdbc2l6ZV07CisJICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSArKykgeworCSAgICAgICAgcmVzdWx0W2ldID0gKFN0cmluZyl2LmVsZW1lbnRBdChpKTsKKwkgICAgfQorCSAgICByZXR1cm4gcmVzdWx0OworICAJfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9VQ2hhcmFjdGVyQ2F0ZWdvcnlUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9VQ2hhcmFjdGVyQ2F0ZWdvcnlUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTk5NWRjOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VDaGFyYWN0ZXJDYXRlZ29yeVRlc3QuamF2YQpAQCAtMCwwICsxLDk0IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogJFNvdXJjZTogCisqICAgICAgL3Vzci9jdnMvaWN1NGovaWN1NGovc3JjL2NvbS9pYm0vaWN1L3RleHQvVUNoYXJhY3RlckNhdGVnb3J5LmphdmEgJCAKKyogJERhdGU6IDIwMDIvMDcvMDggMjM6NTI6MTMgJCAKKyogJFJldmlzaW9uOiAxLjIgJAorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QubGFuZzsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXJDYXRlZ29yeTsKKworLyoqCisqIFRlc3RpbmcgVUNoYXJhY3RlckNhdGVnb3J5CisqIEBhdXRob3IgU3luIFdlZSBRdWVrCisqIEBzaW5jZSBBcHJpbCAwMiAyMDAyCisqLworcHVibGljIGNsYXNzIFVDaGFyYWN0ZXJDYXRlZ29yeVRlc3QgZXh0ZW5kcyBUZXN0Rm13aworeworCS8vIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisJCisJLyoqCisgICAgKiBQcml2YXRlIGNvbnN0cnVjdG9yIHRvIHByZXZlbnQgaW5pdGlhbGlzYXRpb24KKyAgICAqLworICAgIHB1YmxpYyBVQ2hhcmFjdGVyQ2F0ZWdvcnlUZXN0KCkKKyAgICB7CisgICAgfQorICAgIAorICAJLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwkgIAorCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZykgIAorCXsKKwkgICAgdHJ5CisJICAgIHsKKwkgICAgICAJVUNoYXJhY3RlckNhdGVnb3J5VGVzdCB0ZXN0ID0gbmV3IFVDaGFyYWN0ZXJDYXRlZ29yeVRlc3QoKTsKKwkgICAgICAJdGVzdC5ydW4oYXJnKTsKKwkgICAgfQorCSAgICBjYXRjaCAoRXhjZXB0aW9uIGUpCisJICAgIHsKKwkgICAgICAJZS5wcmludFN0YWNrVHJhY2UoKTsKKwkgICAgfQorCX0KKwkKKwkvKioKKwkqIEdldHMgdGhlIG5hbWUgb2YgdGhlIGFyZ3VtZW50IGNhdGVnb3J5CisJKiBAcGFyYW0gY2F0ZWdvcnkgdG8gcmV0cmlldmUgbmFtZQorCSogQHJldHVybiBjYXRlZ29yeSBuYW1lCisJKi8KKwlwdWJsaWMgdm9pZCBUZXN0VG9TdHJpbmcoKQorCXsKKwkgIAlTdHJpbmcgbmFtZVtdID0geyJVbmFzc2lnbmVkIiwKKwkgIAkJICAgICAgICAgICAgICJMZXR0ZXIsIFVwcGVyY2FzZSIsCisJICAJCSAgICAgICAgICAgICAiTGV0dGVyLCBMb3dlcmNhc2UiLAorCSAgCQkgICAgICAgICAgICAgIkxldHRlciwgVGl0bGVjYXNlIiwKKwkgIAkJICAgICAgICAgICAgICJMZXR0ZXIsIE1vZGlmaWVyIiwKKwkgIAkJICAgICAgICAgICAgICJMZXR0ZXIsIE90aGVyIiwKKwkgIAkJICAgICAgICAgICAgICJNYXJrLCBOb24tU3BhY2luZyIsCisJICAJCSAgICAgICAgICAgICAiTWFyaywgRW5jbG9zaW5nIiwKKwkgIAkJICAgICAgICAgICAgICJNYXJrLCBTcGFjaW5nIENvbWJpbmluZyIsCisJICAJCSAgICAgICAgICAgICAiTnVtYmVyLCBEZWNpbWFsIERpZ2l0IiwKKwkgIAkJICAgICAgICAgICAgICJOdW1iZXIsIExldHRlciIsCisJICAJCSAgICAgICAgICAgICAiTnVtYmVyLCBPdGhlciIsCisJICAJCSAgICAgICAgICAgICAiU2VwYXJhdG9yLCBTcGFjZSIsCisJICAJCSAgICAgICAgICAgICAiU2VwYXJhdG9yLCBMaW5lIiwKKwkgIAkJICAgICAgICAgICAgICJTZXBhcmF0b3IsIFBhcmFncmFwaCIsCisJICAJCSAgICAgICAgICAgICAiT3RoZXIsIENvbnRyb2wiLAorCSAgCQkgICAgICAgICAgICAgIk90aGVyLCBGb3JtYXQiLAorCSAgCQkgICAgICAgICAgICAgIk90aGVyLCBQcml2YXRlIFVzZSIsCisJICAJCSAgICAgICAgICAgICAiT3RoZXIsIFN1cnJvZ2F0ZSIsCisJICAJCSAgICAgICAgICAgICAiUHVuY3R1YXRpb24sIERhc2giLAorCSAgCQkgICAgICAgICAgICAgIlB1bmN0dWF0aW9uLCBPcGVuIiwKKwkgIAkJICAgICAgICAgICAgICJQdW5jdHVhdGlvbiwgQ2xvc2UiLAorCSAgCQkgICAgICAgICAgICAgIlB1bmN0dWF0aW9uLCBDb25uZWN0b3IiLAorCSAgCQkgICAgICAgICAgICAgIlB1bmN0dWF0aW9uLCBPdGhlciIsCisJICAJCSAgICAgICAgICAgICAiU3ltYm9sLCBNYXRoIiwKKwkgIAkJICAgICAgICAgICAgICJTeW1ib2wsIEN1cnJlbmN5IiwKKwkgIAkJICAgICAgICAgICAgICJTeW1ib2wsIE1vZGlmaWVyIiwKKwkgIAkJICAgICAgICAgICAgICJTeW1ib2wsIE90aGVyIiwgCisJICAJCSAgICAgICAgICAgICAiUHVuY3R1YXRpb24sIEluaXRpYWwgcXVvdGUiLAorCSAgCQkgICAgICAgICAgICAgIlB1bmN0dWF0aW9uLCBGaW5hbCBxdW90ZSJ9OworCQlmb3IgKGludCBpID0gVUNoYXJhY3RlckNhdGVnb3J5LlVOQVNTSUdORUQ7IAorCQkgICAgICAgICBpIDwgVUNoYXJhY3RlckNhdGVnb3J5LkNIQVJfQ0FURUdPUllfQ09VTlQ7IGkgKyspIHsKKwkJICAgICBpZiAoIVVDaGFyYWN0ZXJDYXRlZ29yeS50b1N0cmluZyhpKS5lcXVhbHMobmFtZVtpXSkpIHsKKwkJICAgICAJZXJybG4oIkVycm9yIHRvU3RyaW5nIGZvciBjYXRlZ29yeSAiICsgaSArICIgZXhwZWN0ZWQgIiArCisJCSAgICAgCSAgICAgIG5hbWVbaV0pOworCQkgICAgIH0KKwkJfQorCX0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VDaGFyYWN0ZXJDb21wYXJlLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9VQ2hhcmFjdGVyQ29tcGFyZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQ5MTQ2MTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9VQ2hhcmFjdGVyQ29tcGFyZS5qYXZhCkBAIC0wLDAgKzEsMzE1IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVUNoYXJhY3RlckNvbXBhcmUuamF2YSx2ICQgCisqICREYXRlOiAyMDAyLzA0LzA0IDAwOjUyOjMxICQgCisqICRSZXZpc2lvbjogMS4xMCAkCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0Lmxhbmc7CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyQ2F0ZWdvcnk7CitpbXBvcnQgamF2YS5pby5GaWxlV3JpdGVyOworaW1wb3J0IGphdmEuaW8uUHJpbnRXcml0ZXI7CitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CisKKy8qKgorKiBBIGNsYXNzIHRvIGNvbXBhcmUgdGhlIGRpZmZlcmVuY2UgaW4gbWV0aG9kcyBiZXR3ZWVuIGphdmEubGFuZy5DaGFyYWN0ZXIgYW5kCisqIFVDaGFyYWN0ZXIKKyogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyogQHNpbmNlIG9jdCAwNiAyMDAwCisqIEBzZWUgY29tLmlibS5pY3UudGV4dC5VQ2hhcmFjdGVyCisqLworCitwdWJsaWMgZmluYWwgY2xhc3MgVUNoYXJhY3RlckNvbXBhcmUKK3sgCisgIC8vIHByaXZhdGUgdmFyaWFibGVzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAKKyAgcHJpdmF0ZSBzdGF0aWMgSGFzaHRhYmxlIG1faGFzaHRhYmxlXyA9IG5ldyBIYXNodGFibGUoKTsKKyAgCisgIC8vIHB1YmxpYyBtZXRob2RzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAKKyAgLyoqCisgICogTWFpbiB0ZXN0aW5nIG1ldGhvZAorICAqLworICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnW10pCisgIHsKKyAgCVN5c3RlbS5vdXQucHJpbnRsbigiU3RhcnRpbmcgY2hhcmFjdGVyIGNvbXBhcmUiKTsKKyAgICB0cnkKKyAgICB7CisgICAgICBGaWxlV3JpdGVyIGY7CisgICAgICBpZiAoYXJnLmxlbmd0aCA9PSAwKQorICAgICAgICBmID0gbmV3IEZpbGVXcml0ZXIoImNvbXBhcmUudHh0Iik7CisgICAgICBlbHNlCisgICAgICAgIGYgPSBuZXcgRmlsZVdyaXRlcihhcmdbMF0pOworICAgICAgUHJpbnRXcml0ZXIgcCA9IG5ldyBQcmludFdyaXRlcihmKTsKKyAgICAgIHAucHJpbnQoImNoYXIgIGNoYXJhY3RlciBuYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKTsKKyAgICAgIHAucHJpbnRsbigibWV0aG9kIG5hbWUgICAgICAgICAgICAgICB1Y2hhcmFjdGVyIGNoYXJhY3RlciIpOworICAgICAgZm9yIChjaGFyIGkgPSBDaGFyYWN0ZXIuTUlOX1ZBTFVFOyBpIDwgQ2hhcmFjdGVyLk1BWF9WQUxVRTsgaSArKykKKyAgICAgIHsKKyAgICAgIAlTeXN0ZW0ub3V0LnByaW50bG4oImNoYXJhY3RlciBcXHUiICsgSW50ZWdlci50b0hleFN0cmluZyhpKSk7CisgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzRGVmaW5lZChpKSAhPSBDaGFyYWN0ZXIuaXNEZWZpbmVkKGkpKQorICAgICAgICAgIHRyYWNrRGlmZmVyZW5jZShwLCBpLCAiaXNEZWZpbmVkKCkiLCAiIiArIFVDaGFyYWN0ZXIuaXNEZWZpbmVkKGkpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiIgKyBDaGFyYWN0ZXIuaXNEZWZpbmVkKGkpKTsKKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZGlnaXQoaSwgMTApICE9IENoYXJhY3Rlci5kaWdpdChpLCAxMCkpCisgICAgICAgICAgICB0cmFja0RpZmZlcmVuY2UocCwgaSwgImRpZ2l0KCkiLCAiIiArIFVDaGFyYWN0ZXIuZGlnaXQoaSwgMTApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgQ2hhcmFjdGVyLmRpZ2l0KGksIDEwKSk7CisgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZ2V0TnVtZXJpY1ZhbHVlKGkpICE9IENoYXJhY3Rlci5nZXROdW1lcmljVmFsdWUoaSkpCisgICAgICAgICAgICB0cmFja0RpZmZlcmVuY2UocCwgaSwgImdldE51bWVyaWNWYWx1ZSgpIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIgKyBVQ2hhcmFjdGVyLmdldE51bWVyaWNWYWx1ZShpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiArIENoYXJhY3Rlci5nZXROdW1lcmljVmFsdWUoaSkpOworICAgICAgICAgIGlmICghY29tcGFyZVR5cGUoVUNoYXJhY3Rlci5nZXRUeXBlKGkpLCBDaGFyYWN0ZXIuZ2V0VHlwZShpKSkpCisgICAgICAgICAgICB0cmFja0RpZmZlcmVuY2UocCwgaSwgImdldFR5cGUoKSIsICIiICsgVUNoYXJhY3Rlci5nZXRUeXBlKGkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgQ2hhcmFjdGVyLmdldFR5cGUoaSkpOworICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzRGlnaXQoaSkgIT0gQ2hhcmFjdGVyLmlzRGlnaXQoaSkpCisgICAgICAgICAgICB0cmFja0RpZmZlcmVuY2UocCwgaSwgImlzRGlnaXQoKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIgKyBVQ2hhcmFjdGVyLmlzRGlnaXQoaSksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgQ2hhcmFjdGVyLmlzRGlnaXQoaSkpOworICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzSVNPQ29udHJvbChpKSAhPSBDaGFyYWN0ZXIuaXNJU09Db250cm9sKGkpKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJpc0lTT0NvbnRyb2woKSIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgVUNoYXJhY3Rlci5pc0lTT0NvbnRyb2woaSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIgKyBDaGFyYWN0ZXIuaXNJU09Db250cm9sKGkpKTsKKyAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0xldHRlcihpKSAhPSBDaGFyYWN0ZXIuaXNMZXR0ZXIoaSkpCisgICAgICAgICAgICB0cmFja0RpZmZlcmVuY2UocCwgaSwgImlzTGV0dGVyKCkiLCAiIiArIFVDaGFyYWN0ZXIuaXNMZXR0ZXIoaSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIgKyBDaGFyYWN0ZXIuaXNMZXR0ZXIoaSkpOworICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzTGV0dGVyT3JEaWdpdChpKSAhPSBDaGFyYWN0ZXIuaXNMZXR0ZXJPckRpZ2l0KGkpKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJpc0xldHRlck9yRGlnaXQoKSIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgVUNoYXJhY3Rlci5pc0xldHRlck9yRGlnaXQoaSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIgKyBDaGFyYWN0ZXIuaXNMZXR0ZXJPckRpZ2l0KGkpKTsKKyAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0xvd2VyQ2FzZShpKSAhPSBDaGFyYWN0ZXIuaXNMb3dlckNhc2UoaSkpCisgICAgICAgICAgICB0cmFja0RpZmZlcmVuY2UocCwgaSwgImlzTG93ZXJDYXNlKCkiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiArIFVDaGFyYWN0ZXIuaXNMb3dlckNhc2UoaSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIgKyBDaGFyYWN0ZXIuaXNMb3dlckNhc2UoaSkpOworICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzV2hpdGVzcGFjZShpKSAhPSBDaGFyYWN0ZXIuaXNXaGl0ZXNwYWNlKGkpKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJpc1doaXRlc3BhY2UoKSIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgVUNoYXJhY3Rlci5pc1doaXRlc3BhY2UoaSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIgKyBDaGFyYWN0ZXIuaXNXaGl0ZXNwYWNlKGkpKTsKKyAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc1NwYWNlQ2hhcihpKSAhPSBDaGFyYWN0ZXIuaXNTcGFjZUNoYXIoaSkpCisgICAgICAgICAgICB0cmFja0RpZmZlcmVuY2UocCwgaSwgImlzU3BhY2VDaGFyKCkiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiArIFVDaGFyYWN0ZXIuaXNTcGFjZUNoYXIoaSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIgKyBDaGFyYWN0ZXIuaXNTcGFjZUNoYXIoaSkpOworICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzVGl0bGVDYXNlKGkpICE9IENoYXJhY3Rlci5pc1RpdGxlQ2FzZShpKSkKKyAgICAgICAgICAgIHRyYWNrRGlmZmVyZW5jZShwLCBpLCAiaXNUaXRsZUNoYXIoKSIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgVUNoYXJhY3Rlci5pc1RpdGxlQ2FzZShpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiArIENoYXJhY3Rlci5pc1RpdGxlQ2FzZShpKSk7CisgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclBhcnQoaSkgIT0gCisgICAgICAgICAgICAgIENoYXJhY3Rlci5pc1VuaWNvZGVJZGVudGlmaWVyUGFydChpKSkKKyAgICAgICAgICAgIHRyYWNrRGlmZmVyZW5jZShwLCBpLCAiaXNVbmljb2RlSWRlbnRpZmllclBhcnQoKSIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgVUNoYXJhY3Rlci5pc1VuaWNvZGVJZGVudGlmaWVyUGFydChpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiArIENoYXJhY3Rlci5pc1VuaWNvZGVJZGVudGlmaWVyUGFydChpKSk7CisgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclN0YXJ0KGkpICE9IAorICAgICAgICAgICAgICBDaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclN0YXJ0KGkpKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJpc1VuaWNvZGVJZGVudGlmaWVyU3RhcnQoKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIgKyBVQ2hhcmFjdGVyLmlzVW5pY29kZUlkZW50aWZpZXJTdGFydChpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiArIENoYXJhY3Rlci5pc1VuaWNvZGVJZGVudGlmaWVyU3RhcnQoaSkpOworICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzSWRlbnRpZmllcklnbm9yYWJsZShpKSAhPSAKKyAgICAgICAgICAgICAgQ2hhcmFjdGVyLmlzSWRlbnRpZmllcklnbm9yYWJsZShpKSkKKyAgICAgICAgICAgIHRyYWNrRGlmZmVyZW5jZShwLCBpLCAiaXNJZGVudGlmaWVySWdub3JhYmxlKCkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgVUNoYXJhY3Rlci5pc0lkZW50aWZpZXJJZ25vcmFibGUoaSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIgKyBDaGFyYWN0ZXIuaXNJZGVudGlmaWVySWdub3JhYmxlKGkpKTsKKyAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc1VwcGVyQ2FzZShpKSAhPSBDaGFyYWN0ZXIuaXNVcHBlckNhc2UoaSkpCisgICAgICAgICAgICB0cmFja0RpZmZlcmVuY2UocCwgaSwgImlzVXBwZXJDYXNlKCkiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiArIFVDaGFyYWN0ZXIuaXNVcHBlckNhc2UoaSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIgKyBDaGFyYWN0ZXIuaXNVcHBlckNhc2UoaSkpOworICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKGkpICE9IENoYXJhY3Rlci50b0xvd2VyQ2FzZShpKSkKKyAgICAgICAgICAgIHRyYWNrRGlmZmVyZW5jZShwLCBpLCAidG9Mb3dlckNhc2UoKSIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShpKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhDaGFyYWN0ZXIudG9Mb3dlckNhc2UoaSkpKTsKKyAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXIudG9TdHJpbmcoaSkuZXF1YWxzKG5ldyBDaGFyYWN0ZXIoaSkudG9TdHJpbmcoKSkpCisgICAgICAgICAgICB0cmFja0RpZmZlcmVuY2UocCwgaSwgInRvU3RyaW5nKCkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9TdHJpbmcoaSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IENoYXJhY3RlcihpKS50b1N0cmluZygpKTsKKyAgICAgICAgICBpZiAoVUNoYXJhY3Rlci50b1RpdGxlQ2FzZShpKSAhPSBDaGFyYWN0ZXIudG9UaXRsZUNhc2UoaSkpCisgICAgICAgICAgICB0cmFja0RpZmZlcmVuY2UocCwgaSwgInRvVGl0bGVDYXNlKCkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoVUNoYXJhY3Rlci50b1RpdGxlQ2FzZShpKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhDaGFyYWN0ZXIudG9UaXRsZUNhc2UoaSkpKTsKKyAgICAgICAgICBpZiAoVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShpKSAhPSBDaGFyYWN0ZXIudG9VcHBlckNhc2UoaSkpCisgICAgICAgICAgICB0cmFja0RpZmZlcmVuY2UocCwgaSwgInRvVXBwZXJDYXNlKCkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShpKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhDaGFyYWN0ZXIudG9VcHBlckNhc2UoaSkpKTsKKyAgICAgICAgfQorICAgICAgfQorICAgICAgc3VtbWFyeShwKTsKKyAgICAgIHAuY2xvc2UoKTsKKyAgICB9IAorICAgIGNhdGNoIChFeGNlcHRpb24gZSkKKyAgICB7CisgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgIH0KKyAgfQorICAKKyAgLy8gcHJpdmF0ZSBtZXRob2RzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAKKyAgLyoqCisgICogQ29tcGFyaW5nIHR5cGVzCisgICogQHBhcmFtIHVjaGFydHlwZSBVQ2hhcmFjdGVyIHR5cGUKKyAgKiBAcGFyYW0gamNoYXJ0eXBlIGphdmEubGFuZy5DaGFyYWN0ZXIgdHlwZQorICAqLworICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGNvbXBhcmVUeXBlKGludCB1Y2hhcnR5cGUsIGludCBqY2hhcnR5cGUpCisgIHsKKyAgICBpZiAodWNoYXJ0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5VTkFTU0lHTkVEICYmIAorICAgICAgICBqY2hhcnR5cGUgPT0gQ2hhcmFjdGVyLlVOQVNTSUdORUQpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAodWNoYXJ0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5VUFBFUkNBU0VfTEVUVEVSICYmIAorICAgICAgICBqY2hhcnR5cGUgPT0gQ2hhcmFjdGVyLlVQUEVSQ0FTRV9MRVRURVIpCisgICAgICByZXR1cm4gdHJ1ZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICBpZiAodWNoYXJ0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5MT1dFUkNBU0VfTEVUVEVSICYmIAorICAgICAgICBqY2hhcnR5cGUgPT0gQ2hhcmFjdGVyLkxPV0VSQ0FTRV9MRVRURVIpCisgICAgICByZXR1cm4gdHJ1ZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICBpZiAodWNoYXJ0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5USVRMRUNBU0VfTEVUVEVSICYmIAorICAgICAgICBqY2hhcnR5cGUgPT0gQ2hhcmFjdGVyLlRJVExFQ0FTRV9MRVRURVIpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAodWNoYXJ0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5NT0RJRklFUl9MRVRURVIgJiYgCisgICAgICAgIGpjaGFydHlwZSA9PSBDaGFyYWN0ZXIuTU9ESUZJRVJfTEVUVEVSKQorICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuT1RIRVJfTEVUVEVSICYmIAorICAgICAgICBqY2hhcnR5cGUgPT0gQ2hhcmFjdGVyLk9USEVSX0xFVFRFUikKKyAgICAgIHJldHVybiB0cnVlOworICAgIGlmICh1Y2hhcnR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5Lk5PTl9TUEFDSU5HX01BUksgJiYgCisgICAgICAgIGpjaGFydHlwZSA9PSBDaGFyYWN0ZXIuTk9OX1NQQUNJTkdfTUFSSykKKyAgICAgIHJldHVybiB0cnVlOworICAgIGlmICh1Y2hhcnR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5LkVOQ0xPU0lOR19NQVJLICYmIAorICAgICAgICBqY2hhcnR5cGUgPT0gQ2hhcmFjdGVyLkVOQ0xPU0lOR19NQVJLKQorICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuQ09NQklOSU5HX1NQQUNJTkdfTUFSSyAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5DT01CSU5JTkdfU1BBQ0lOR19NQVJLKQorICAgICAgcmV0dXJuIHRydWU7CisJICBpZiAodWNoYXJ0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5ERUNJTUFMX0RJR0lUX05VTUJFUiAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5ERUNJTUFMX0RJR0lUX05VTUJFUikKKyAgICAgIHJldHVybiB0cnVlOworCSAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTEVUVEVSX05VTUJFUiAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5MRVRURVJfTlVNQkVSKQorICAgICAgcmV0dXJuIHRydWU7CisJICBpZiAodWNoYXJ0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5PVEhFUl9OVU1CRVIgJiYgCisgICAgICAgIGpjaGFydHlwZSA9PSBDaGFyYWN0ZXIuT1RIRVJfTlVNQkVSKQorICAgICAgcmV0dXJuIHRydWU7CisJICBpZiAodWNoYXJ0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5TUEFDRV9TRVBBUkFUT1IgJiYgCisgICAgICAgIGpjaGFydHlwZSA9PSBDaGFyYWN0ZXIuU1BBQ0VfU0VQQVJBVE9SKQorICAgICAgcmV0dXJuIHRydWU7CisJICBpZiAodWNoYXJ0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5MSU5FX1NFUEFSQVRPUiAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5MSU5FX1NFUEFSQVRPUikKKyAgICAgIHJldHVybiB0cnVlOworCSAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuUEFSQUdSQVBIX1NFUEFSQVRPUiAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5QQVJBR1JBUEhfU0VQQVJBVE9SKQorICAgICAgcmV0dXJuIHRydWU7CisJICBpZiAodWNoYXJ0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5DT05UUk9MICYmIAorICAgICAgICBqY2hhcnR5cGUgPT0gQ2hhcmFjdGVyLkNPTlRST0wpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAodWNoYXJ0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5GT1JNQVQgJiYgCisgICAgICAgIGpjaGFydHlwZSA9PSBDaGFyYWN0ZXIuRk9STUFUKQorICAgICAgcmV0dXJuIHRydWU7CisJICBpZiAodWNoYXJ0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5QUklWQVRFX1VTRSAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5QUklWQVRFX1VTRSkKKyAgICAgIHJldHVybiB0cnVlOworICAgIGlmICh1Y2hhcnR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5LlNVUlJPR0FURSAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5TVVJST0dBVEUpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAodWNoYXJ0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5EQVNIX1BVTkNUVUFUSU9OICYmIAorICAgICAgICBqY2hhcnR5cGUgPT0gQ2hhcmFjdGVyLkRBU0hfUFVOQ1RVQVRJT04pCisgICAgICByZXR1cm4gdHJ1ZTsKKwkgIGlmICh1Y2hhcnR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5LlNUQVJUX1BVTkNUVUFUSU9OICYmIAorICAgICAgICBqY2hhcnR5cGUgPT0gQ2hhcmFjdGVyLlNUQVJUX1BVTkNUVUFUSU9OKQorICAgICAgcmV0dXJuIHRydWU7CisJICBpZiAodWNoYXJ0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5FTkRfUFVOQ1RVQVRJT04gJiYgCisgICAgICAgIGpjaGFydHlwZSA9PSBDaGFyYWN0ZXIuRU5EX1BVTkNUVUFUSU9OKQorICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuQ09OTkVDVE9SX1BVTkNUVUFUSU9OICYmIAorICAgICAgICBqY2hhcnR5cGUgPT0gQ2hhcmFjdGVyLkNPTk5FQ1RPUl9QVU5DVFVBVElPTikKKyAgICAgIHJldHVybiB0cnVlOworICAgIGlmICh1Y2hhcnR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5Lk9USEVSX1BVTkNUVUFUSU9OICYmIAorICAgICAgICBqY2hhcnR5cGUgPT0gQ2hhcmFjdGVyLk9USEVSX1BVTkNUVUFUSU9OKQorICAgICAgcmV0dXJuIHRydWU7CisJICBpZiAodWNoYXJ0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5NQVRIX1NZTUJPTCAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5NQVRIX1NZTUJPTCkKKyAgICAgIHJldHVybiB0cnVlOworCSAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuQ1VSUkVOQ1lfU1lNQk9MICYmIAorICAgICAgICBqY2hhcnR5cGUgPT0gQ2hhcmFjdGVyLkNVUlJFTkNZX1NZTUJPTCkKKyAgICAgIHJldHVybiB0cnVlOworCSAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTU9ESUZJRVJfU1lNQk9MICYmIAorICAgICAgICBqY2hhcnR5cGUgPT0gQ2hhcmFjdGVyLk1PRElGSUVSX1NZTUJPTCkKKyAgICAgIHJldHVybiB0cnVlOworCSAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuT1RIRVJfU1lNQk9MICYmIAorICAgICAgICBqY2hhcnR5cGUgPT0gQ2hhcmFjdGVyLk9USEVSX1NZTUJPTCkKKyAgICAgIHJldHVybiB0cnVlOworCSAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuSU5JVElBTF9QVU5DVFVBVElPTiAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5TVEFSVF9QVU5DVFVBVElPTikKKyAgICAgIHJldHVybiB0cnVlOworICAgIGlmICh1Y2hhcnR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5LkZJTkFMX1BVTkNUVUFUSU9OICYmIAorICAgICAgICBqY2hhcnR5cGUgPT0gQ2hhcmFjdGVyLkVORF9QVU5DVFVBVElPTikKKyAgICAgIHJldHVybiB0cnVlOworCSAgLyppZiAodWNoYXJ0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5HRU5FUkFMX09USEVSX1RZUEVTICYmIAorICAgICAgICBqY2hhcnR5cGUgPT0gQ2hhcmFjdGVyLkdFTkVSQUxfT1RIRVJfVFlQRVMpCisgICAgICByZXR1cm4gdHJ1ZTsqLworICAgIHJldHVybiBmYWxzZTsKKwl9CisJCisJLyoqCisJKiBEaWZmZXJlbmNlIHdyaXRpbmcgdG8gZmlsZQorCSogQHBhcmFtIGYgZmlsZSBvdXRwdXRzdHJlYW0KKwkqIEBwYXJhbSBjaCBjb2RlIHBvaW50CisJKiBAcGFyYW0gbWV0aG9kIGZvciB0ZXN0aW5nCisJKiBAcGFyYW0gdWNoYXJ2YWwgVUNoYXJhY3RlciB2YWx1ZSBhZnRlciBydW5uaW5nIG1ldGhvZAorCSogQHBhcmFtIGNoYXJ2YWwgQ2hhcmFjdGVyIHZhbHVlIGFmdGVyIHJ1bm5pbmcgbWV0aG9kCisJKiBAZXhjZXB0aW9uIHRocm93biB3aGVuIGVycm9yIG9jY3VyIGluIHdyaXRpbmcgdG8gZmlsZQorCSovCisJcHJpdmF0ZSBzdGF0aWMgdm9pZCB0cmFja0RpZmZlcmVuY2UoUHJpbnRXcml0ZXIgZiwgaW50IGNoLCBTdHJpbmcgbWV0aG9kLAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB1Y2hhcnZhbCwgU3RyaW5nIGNoYXJ2YWwpCisJICB0aHJvd3MgRXhjZXB0aW9uCisJeworCSAgaWYgKG1faGFzaHRhYmxlXy5jb250YWluc0tleShtZXRob2QpKQorCSAgeworCSAgICBJbnRlZ2VyIHZhbHVlID0gKEludGVnZXIpbV9oYXNodGFibGVfLmdldChtZXRob2QpOworCSAgICBtX2hhc2h0YWJsZV8ucHV0KG1ldGhvZCwgbmV3IEludGVnZXIodmFsdWUuaW50VmFsdWUoKSArIDEpKTsKKwkgIH0KKwkgIGVsc2UKKwkgICAgbV9oYXNodGFibGVfLnB1dChtZXRob2QsIG5ldyBJbnRlZ2VyKDEpKTsKKwkgIAorCSAgU3RyaW5nIHRlbXAgPSBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNoKTsKKwkgIFN0cmluZ0J1ZmZlciBzID0gbmV3IFN0cmluZ0J1ZmZlcih0ZW1wKTsKKwkgIGZvciAoaW50IGkgPSAwOyBpIDwgNiAtIHRlbXAubGVuZ3RoKCk7IGkgKyspCisJICAgIHMuYXBwZW5kKCcgJyk7CisJICB0ZW1wID0gVUNoYXJhY3Rlci5nZXRFeHRlbmRlZE5hbWUoY2gpOworCSAgaWYgKHRlbXAgPT0gbnVsbCkKKwkgICAgdGVtcCA9ICIgIjsKKwkgIHMuYXBwZW5kKHRlbXApOworCSAgZm9yIChpbnQgaSA9IDA7IGkgPCA3MyAtIHRlbXAubGVuZ3RoKCk7IGkgKyspCisJICAgIHMuYXBwZW5kKCcgJyk7CisJICAKKwkgIHMuYXBwZW5kKG1ldGhvZCk7CisJICBmb3IgKGludCBpID0gMDsgaSA8IDI3IC0gbWV0aG9kLmxlbmd0aCgpOyBpICsrKQorCSAgICBzLmFwcGVuZCgnICcpOworCSAgcy5hcHBlbmQodWNoYXJ2YWwpOworCSAgZm9yIChpbnQgaSA9IDA7IGkgPCAxMSAtIHVjaGFydmFsLmxlbmd0aCgpOyBpICsrKQorCSAgICBzLmFwcGVuZCgnICcpOworCSAgcy5hcHBlbmQoY2hhcnZhbCk7CisJICBmLnByaW50bG4ocy50b1N0cmluZygpKTsKKwl9CisJCisJLyoqCisJKiBEb2VzIHVwIGEgc3VtbWFyeSBvZiB0aGUgZGlmZmVyZW5jZXMKKwkqIEBwYXJhbSBmIGZpbGUgb3V0cHV0c3RyZWFtCisJKi8KKwlwcml2YXRlIHN0YXRpYyB2b2lkIHN1bW1hcnkoUHJpbnRXcml0ZXIgZikKKwl7CisJICBmLnByaW50bG4oIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Iik7CisJICBmLnByaW50bG4oIlN1bW1hcnkgb2YgZGlmZmVyZW5jZXMiKTsKKwkgIGZvciAoRW51bWVyYXRpb24gZSA9IG1faGFzaHRhYmxlXy5rZXlzKCkgOyBlLmhhc01vcmVFbGVtZW50cygpIDspIAorCSAgeworCSAgICBTdHJpbmdCdWZmZXIgbWV0aG9kID0gbmV3IFN0cmluZ0J1ZmZlcigoU3RyaW5nKWUubmV4dEVsZW1lbnQoKSk7CisJICAgIGludCBjb3VudCA9ICgoSW50ZWdlciltX2hhc2h0YWJsZV8uZ2V0KG1ldGhvZC50b1N0cmluZygpKSkuaW50VmFsdWUoKTsKKwkgICAgZm9yIChpbnQgaSA9IDMwIC0gbWV0aG9kLmxlbmd0aCgpOyBpID4gMDsgaSAtLSkKKwkgICAgICBtZXRob2QuYXBwZW5kKCcgJyk7CisgICAgICBmLnByaW50bG4obWV0aG9kICsgIiAgIiArIGNvdW50KTsKKyAgICB9CisJfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9VQ2hhcmFjdGVyRGlyZWN0aW9uVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVUNoYXJhY3RlckRpcmVjdGlvblRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNjViZjEwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVUNoYXJhY3RlckRpcmVjdGlvblRlc3QuamF2YQpAQCAtMCwwICsxLDg0IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVUNoYXJhY3RlckRpcmVjdGlvblRlc3QuamF2YSx2ICQKKyAqICREYXRlOiAyMDAyLzA4LzEzIDIxOjU4OjM4ICQKKyAqICRSZXZpc2lvbjogMS4yICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0Lmxhbmc7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXJEaXJlY3Rpb247CisKKy8qKgorKiBUZXN0aW5nIFVDaGFyYWN0ZXJEaXJlY3Rpb24KKyogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyogQHNpbmNlIEp1bHkgMjIgMjAwMgorKi8KK3B1YmxpYyBjbGFzcyBVQ2hhcmFjdGVyRGlyZWN0aW9uVGVzdCBleHRlbmRzIFRlc3RGbXdrCit7ICAgIAorICAgIC8vIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgKiBQcml2YXRlIGNvbnN0cnVjdG9yIHRvIHByZXZlbnQgaW5pdGlhbGlzYXRpb24KKyAgICAqLworICAgIHB1YmxpYyBVQ2hhcmFjdGVyRGlyZWN0aW9uVGVzdCgpCisgICAgeworICAgIH0KKyAgICAKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJnKSAgCisgICAgeworICAgICAgICB0cnkKKyAgICAgICAgeworICAgICAgICAgICAgVUNoYXJhY3RlckRpcmVjdGlvblRlc3QgdGVzdCA9IG5ldyBVQ2hhcmFjdGVyRGlyZWN0aW9uVGVzdCgpOworICAgICAgICAgICAgdGVzdC5ydW4oYXJnKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBHZXRzIHRoZSBuYW1lIG9mIHRoZSBhcmd1bWVudCBjYXRlZ29yeQorICAgICogQHBhcmFtIGNhdGVnb3J5IHRvIHJldHJpZXZlIG5hbWUKKyAgICAqIEByZXR1cm4gY2F0ZWdvcnkgbmFtZQorICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFRvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIFN0cmluZyBuYW1lW10gPSB7IkxlZnQtdG8tUmlnaHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICJSaWdodC10by1MZWZ0IiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIkV1cm9wZWFuIE51bWJlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIkV1cm9wZWFuIE51bWJlciBTZXBhcmF0b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICJFdXJvcGVhbiBOdW1iZXIgVGVybWluYXRvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIkFyYWJpYyBOdW1iZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICJDb21tb24gTnVtYmVyIFNlcGFyYXRvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIlBhcmFncmFwaCBTZXBhcmF0b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICJTZWdtZW50IFNlcGFyYXRvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIldoaXRlc3BhY2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICJPdGhlciBOZXV0cmFscyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIkxlZnQtdG8tUmlnaHQgRW1iZWRkaW5nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiTGVmdC10by1SaWdodCBPdmVycmlkZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIlJpZ2h0LXRvLUxlZnQgQXJhYmljIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiUmlnaHQtdG8tTGVmdCBFbWJlZGRpbmciLAorICAgICAgICAgICAgICAgICAgICAgICAgICJSaWdodC10by1MZWZ0IE92ZXJyaWRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiUG9wIERpcmVjdGlvbmFsIEZvcm1hdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIk5vbi1TcGFjaW5nIE1hcmsiLAorICAgICAgICAgICAgICAgICAgICAgICAgICJCb3VuZGFyeSBOZXV0cmFsIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiVW5hc3NpZ25lZCJ9OworICAgICAgICBmb3IgKGludCBpID0gVUNoYXJhY3RlckRpcmVjdGlvbi5MRUZUX1RPX1JJR0hUOyAKKyAgICAgICAgICAgICAgICAgaSA8IFVDaGFyYWN0ZXJEaXJlY3Rpb24uQ0hBUl9ESVJFQ1RJT05fQ09VTlQ7IGkgKyspIHsKKyAgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXJEaXJlY3Rpb24udG9TdHJpbmcoaSkuZXF1YWxzKG5hbWVbaV0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIHRvU3RyaW5nIGZvciBkaXJlY3Rpb24gIiArIGkgKyAiIGV4cGVjdGVkICIgKworICAgICAgICAgICAgICAgICAgICAgIG5hbWVbaV0pOworICAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VDaGFyYWN0ZXJJdGVyYXRvclRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VDaGFyYWN0ZXJJdGVyYXRvclRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMWY2OWVhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVUNoYXJhY3Rlckl0ZXJhdG9yVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTM2IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvQXR0aWMvVUNoYXJhY3Rlckl0ZXJhdG9yVGVzdC5qYXZhLHYgJCAKKyogJERhdGU6IDIwMDIvMDYvMjAgMDE6MTY6MDAgJCAKKyogJFJldmlzaW9uOiAxLjIgJAorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5sYW5nOworCisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworCisvKioKKyogVGVzdGluZyBjbGFzcyBmb3IgVUNoYXJhY3Rlckl0ZXJhdG9yCisqIEBhdXRob3IgU3luIFdlZSBRdWVrCisqIEBzaW5jZSBhcHJpbCAwMiAyMDAyCisqLworcHVibGljIGZpbmFsIGNsYXNzIFVDaGFyYWN0ZXJJdGVyYXRvclRlc3QgZXh0ZW5kcyBUZXN0Rm13aworeyAKKwkvLyBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAKKwkvKioKKwkgKiBDb25zdHJ1Y3RvcgorCSAqLworICAJcHVibGljIFVDaGFyYWN0ZXJJdGVyYXRvclRlc3QoKQorICAJeworICAJfQorICAKKyAgCS8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIAorICAJLyoqCisgIAkqIFRlc3RpbmcgY2xvbmluZworICAJKi8KKyAgCXB1YmxpYyB2b2lkIFRlc3RDbG9uZSgpCisgIAl7CisgICAgIAkgVW5pY29kZUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXJhdG9yID0gbmV3IFVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvcigidGVzdGluZyIpOworICAgICAJIFVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvciBjbG9uZWQgPSAoVW5pY29kZUNoYXJhY3Rlckl0ZXJhdG9yKWl0ZXJhdG9yLmNsb25lKCk7CisgICAgIAkgY2hhciBjb21wbGV0ZWQgPSAwOworICAgICAJIHdoaWxlIChjb21wbGV0ZWQgIT0gVW5pY29kZUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgCSAJY29tcGxldGVkID0gaXRlcmF0b3IubmV4dCgpOworICAgICAJIAlpZiAoY29tcGxldGVkICE9IGNsb25lZC5uZXh0KCkpIHsKKyAgICAgCSAJCWVycmxuKCJDbG9uZWQgb3BlcmF0aW9uIGZhaWxlZCIpOworICAgICAJIAl9CisgICAgIAkgfQorICAJfQorICAJCisgIAkvKioKKyAgCSAqIFRlc3RpbmcgaXRlcmF0aW9uCisgIAkgKi8KKyAgCXB1YmxpYyB2b2lkIFRlc3RJdGVyYXRpb24oKQorICAJeworICAJCVVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyYXRvciAgPSBuZXcgVW5pY29kZUNoYXJhY3Rlckl0ZXJhdG9yKAorICAJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVRFUkFUSU9OX1NUUklOR18pOworICAJCVVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyYXRvcjIgPSBuZXcgVW5pY29kZUNoYXJhY3Rlckl0ZXJhdG9yKAorICAJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVRFUkFUSU9OX1NUUklOR18pOworICAJCWlmIChpdGVyYXRvci5maXJzdCgpICE9IElURVJBVElPTl9TVFJJTkdfLmNoYXJBdCgwKSkgeworICAJCQllcnJsbigiSXRlcmF0b3IgZmFpbGVkIHJldHJpZXZpbmcgZmlyc3QgY2hhcmFjdGVyIik7CisgIAkJfQorICAJCWlmIChpdGVyYXRvci5sYXN0KCkgIT0gSVRFUkFUSU9OX1NUUklOR18uY2hhckF0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVRFUkFUSU9OX1NUUklOR18ubGVuZ3RoKCkgLSAxKSkgeworICAJCQllcnJsbigiSXRlcmF0b3IgZmFpbGVkIHJldHJpZXZpbmcgbGFzdCBjaGFyYWN0ZXIiKTsKKyAgCQl9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgCQlpZiAoaXRlcmF0b3IuZ2V0QmVnaW5JbmRleCgpICE9IDAgfHwgCisgIAkJICAgIGl0ZXJhdG9yLmdldEVuZEluZGV4KCkgIT0gSVRFUkFUSU9OX1NUUklOR18ubGVuZ3RoKCkpIHsKKyAgCQkgICAgZXJybG4oIkl0ZXJhdG9yIGZhaWxlZCBkZXRlcm1pbmluZyBiZWdpbiBhbmQgZW5kIGluZGV4Iik7CisgIAkJfSAgCisgIAkJaXRlcmF0b3IyLnNldEluZGV4KDApOworICAJCWl0ZXJhdG9yLnNldEluZGV4KDApOworICAJCWludCBjaCA9IDA7CisgIAkJd2hpbGUgKGNoICE9IFVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvci5ET05FX0NPREVQT0lOVCkgeworICAJCQlpbnQgaW5kZXggPSBpdGVyYXRvcjIuZ2V0SW5kZXgoKTsKKyAgCQkJY2ggPSBpdGVyYXRvcjIubmV4dENvZGVQb2ludCgpOworICAJCQlpZiAoaW5kZXggIT0gSVRFUkFUSU9OX1NVUFBMRU1FTlRBUllfSU5ERVgpIHsKKyAgCQkJCWlmIChjaCAhPSAoaW50KWl0ZXJhdG9yLm5leHQoKSAmJiAKKyAgCQkJCSAgICBjaCAhPSBVbmljb2RlQ2hhcmFjdGVySXRlcmF0b3IuRE9ORV9DT0RFUE9JTlQpIHsKKyAgCQkJCQllcnJsbigiRXJyb3IgbWlzbWF0Y2ggaW4gbmV4dCgpIGFuZCBuZXh0Q29kZVBvaW50KCkiKTsgCisgIAkJCQl9CisgIAkJCX0KKyAgCQkJZWxzZSB7CisgIAkJCQlpZiAoVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZShjaCkgIT0gaXRlcmF0b3IubmV4dCgpIHx8CisgIAkJCQkgICAgVVRGMTYuZ2V0VHJhaWxTdXJyb2dhdGUoY2gpICE9IGl0ZXJhdG9yLm5leHQoKSkgeworICAJCQkJICAgIGVycmxuKCJFcnJvciBtaXNtYXRjaCBpbiBuZXh0IGFuZCBuZXh0Q29kZVBvaW50IGZvciAiICsKKyAgCQkJCSAgICAgICAgICAic3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIik7CisgIAkJCQl9CisgIAkJCX0KKyAgCQl9CisgIAkJaXRlcmF0b3Iuc2V0SW5kZXgoSVRFUkFUSU9OX1NUUklOR18ubGVuZ3RoKCkpOworICAJCWl0ZXJhdG9yMi5zZXRJbmRleChJVEVSQVRJT05fU1RSSU5HXy5sZW5ndGgoKSk7CisgIAkJd2hpbGUgKGNoICE9IFVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvci5ET05FX0NPREVQT0lOVCkgeworICAJCQlpbnQgaW5kZXggPSBpdGVyYXRvcjIuZ2V0SW5kZXgoKTsKKyAgCQkJY2ggPSBpdGVyYXRvcjIucHJldmlvdXNDb2RlUG9pbnQoKTsKKyAgCQkJaWYgKGluZGV4ICE9IElURVJBVElPTl9TVVBQTEVNRU5UQVJZX0lOREVYKSB7CisgIAkJCQlpZiAoY2ggIT0gKGludClpdGVyYXRvci5wcmV2aW91cygpICYmIAorICAJCQkJICAgIGNoICE9IFVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvci5ET05FX0NPREVQT0lOVCkgeworICAJCQkJCWVycmxuKCJFcnJvciBtaXNtYXRjaCBpbiBwcmV2aW91cygpIGFuZCAiICsKKyAgCQkJCQkgICAgICAicHJldmlvdXNDb2RlUG9pbnQoKSIpOyAKKyAgCQkJCX0KKyAgCQkJfQorICAJCQllbHNlIHsKKyAgCQkJCWlmIChVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKGNoKSAhPSBpdGVyYXRvci5wcmV2aW91cygpIHx8IAorICAJCQkJICAgIFVURjE2LmdldFRyYWlsU3Vycm9nYXRlKGNoKSAhPSBpdGVyYXRvci5wcmV2aW91cygpKSB7CisgIAkJCQkgICAgZXJybG4oIkVycm9yIG1pc21hdGNoIGluIHByZXZpb3VzIGFuZCAiICsKKyAgCQkJCSAgICAgICAgICAicHJldmlvdXNDb2RlUG9pbnQgZm9yIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyIpOworICAJCQkJfQorICAJCQl9CisgIAkJfQorICAJfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZykKKyAgICB7CisgICAgICAgIHRyeQorICAgICAgICB7CisgICAgICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3JUZXN0IHRlc3QgPSBuZXcgVUNoYXJhY3Rlckl0ZXJhdG9yVGVzdCgpOworICAgICAgICAgICAgdGVzdC5ydW4oYXJnKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpCisgICAgICAgIHsKKyAgICAgICAgCWUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIElURVJBVElPTl9TVFJJTkdfID0KKwkJCQkJICAgICAgICAgICAgICAgICAgICAiVGVzdGluZyAxIDIgMyBcdWQ4MDBcdWRjMDAgNDU2IjsKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSVRFUkFUSU9OX1NVUFBMRU1FTlRBUllfSU5ERVggPSAxNDsgICAgCit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VDaGFyYWN0ZXJUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9VQ2hhcmFjdGVyVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmMxZDczMzcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9VQ2hhcmFjdGVyVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTI4MyBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VDaGFyYWN0ZXJUZXN0LmphdmEsdiAkIAorKiAkRGF0ZTogMjAwMi8wOC8wOCAyMjo0NDo1MiAkIAorKiAkUmV2aXNpb246IDEuNDEgJAorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5sYW5nOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdFV0aWw7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlckNhdGVnb3J5OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlckRpcmVjdGlvbjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVQcm9wZXJ0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuUmFuZ2VWYWx1ZUl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmFsdWVJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlZlcnNpb25JbmZvOworCitpbXBvcnQgamF2YS5pby5CdWZmZXJlZFJlYWRlcjsKKy8qKgorKiBUZXN0aW5nIGNsYXNzIGZvciBVQ2hhcmFjdGVyCisqIE1vc3RseSBmb2xsb3dpbmcgdGhlIHRlc3QgY2FzZXMgZm9yIElDVQorKiBAYXV0aG9yIFN5biBXZWUgUXVlaworKiBAc2luY2Ugbm92IDA0IDIwMDAKKyovCitwdWJsaWMgZmluYWwgY2xhc3MgVUNoYXJhY3RlclRlc3QgZXh0ZW5kcyBUZXN0Rm13aworeyAKKyAgCS8vIHByaXZhdGUgdmFyaWFibGVzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAKKyAgCS8qKgorICAJKiBJQ1U0SiBkYXRhIHZlcnNpb24gbnVtYmVyCisgIAkqLworICAJcHJpdmF0ZSBmaW5hbCBWZXJzaW9uSW5mbyBWRVJTSU9OXyA9IFZlcnNpb25JbmZvLmdldEluc3RhbmNlKCIzLjIuMC4wIik7CisgIAorICAJLy8gY29uc3RydWN0b3IgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgIAorICAJLyoqCisgIAkqIENvbnN0cnVjdG9yCisgIAkqLworICAJcHVibGljIFVDaGFyYWN0ZXJUZXN0KCkKKyAgCXsKKyAgCX0KKyAgCisgIAkvLyBwdWJsaWMgbWV0aG9kcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZykKKyAgCXsKKyAgICAJdHJ5CisgICAgCXsKKyAgICAgIAkJVUNoYXJhY3RlclRlc3QgdGVzdCA9IG5ldyBVQ2hhcmFjdGVyVGVzdCgpOworICAgICAgCQl0ZXN0LnJ1bihhcmcpOworICAgICAgCQkvL3Rlc3QuVGVzdEdldEFnZSgpOworICAgICAgCQkvL3Rlc3QuVGVzdEFkZGl0aW9uYWxQcm9wZXJ0aWVzKCk7CisgICAgCX0KKyAgICAJY2F0Y2ggKEV4Y2VwdGlvbiBlKQorICAgIAl7CisgICAgICAJZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAJfQorICAJfQorICAKKyAgCS8qKgorICAJKiBUZXN0aW5nIHRoZSBsZXR0ZXIgYW5kIG51bWJlciBkZXRlcm1pbmF0aW9uIGluIFVDaGFyYWN0ZXIKKyAgCSovCisgIAlwdWJsaWMgdm9pZCBUZXN0TGV0dGVyTnVtYmVyKCkKKyAgCXsKKyAgICAJZm9yIChpbnQgaSA9IDB4MDA0MTsgaSA8IDB4MDA1QjsgaSArKykgCisgICAgICAJaWYgKCFVQ2hhcmFjdGVyLmlzTGV0dGVyKGkpKQorICAgICAgICAJZXJybG4oIkZBSUwgXFx1IiArIGhleChpKSArICIgZXhwZWN0ZWQgdG8gYmUgYSBsZXR0ZXIiKTsKKyAgICAgICAgCisgICAgCWZvciAoaW50IGkgPSAweDA2NjA7IGkgPCAweDA2NkE7IGkgKyspIAorICAgICAgCWlmIChVQ2hhcmFjdGVyLmlzTGV0dGVyKGkpKQorICAgICAgICAJZXJybG4oIkZBSUwgXFx1IiArIGhleChpKSArICIgZXhwZWN0ZWQgbm90IHRvIGJlIGEgbGV0dGVyIik7CisgICAgCisgICAgCWZvciAoaW50IGkgPSAweDA2NjA7IGkgPCAweDA2NkE7IGkgKyspIAorICAgICAgCWlmICghVUNoYXJhY3Rlci5pc0RpZ2l0KGkpKQorICAgICAgICAJZXJybG4oIkZBSUwgXFx1IiArIGhleChpKSArICIgZXhwZWN0ZWQgdG8gYmUgYSBkaWdpdCIpOworICAgIAorICAgIAlmb3IgKGludCBpID0gMHgwMDQxOyBpIDwgMHgwMDVCOyBpICsrKSAKKyAgICAgIAkJaWYgKCFVQ2hhcmFjdGVyLmlzTGV0dGVyT3JEaWdpdChpKSkKKyAgICAgICAgCQllcnJsbigiRkFJTCBcXHUiICsgaGV4KGkpICsgIiBleHBlY3RlZCBub3QgdG8gYmUgYSBkaWdpdCIpOworICAgICAgICAKKyAgICAJZm9yIChpbnQgaSA9IDB4MDY2MDsgaSA8IDB4MDY2QTsgaSArKykgCisgICAgICAJCWlmICghVUNoYXJhY3Rlci5pc0xldHRlck9yRGlnaXQoaSkpCisgICAgICAgIAkJZXJybG4oIkZBSUwgXFx1IiArIGhleChpKSArIAorICAgICAgICAgICAgICAJCSJleHBlY3RlZCB0byBiZSBlaXRoZXIgYSBsZXR0ZXIgb3IgYSBkaWdpdCIpOworCX0KKworICAJLyoqCisgIAkqIFRlc3RzIGZvciBzcGFjZSBkZXRlcm1pbmF0aW9uIGluIFVDaGFyYWN0ZXIKKyAgCSovCisgIAlwdWJsaWMgdm9pZCBUZXN0U3BhY2VzKCkKKyAgCXsKKyAgICAJaW50IHNwYWNlc1tdID0gezB4MDAyMCwgMHgwMDAwYTAsIDB4MDAyMDAwLCAweDAwMjAwMSwgMHgwMDIwMDV9OworICAgIAlpbnQgbm9uc3BhY2VzW10gPSB7MHg2MSwgMHgwMDYyLCAweDAwNjMsIDB4MDA2NCwgMHgwMDc0fTsKKyAgICAJaW50IHdoaXRlc3BhY2VzW10gPSB7MHgyMDA4LCAweDAwMjAwOSwgMHgwMDIwMGEsIDB4MDAwMDFjLCAweDAwMDAwY307CisgICAgCWludCBub253aGl0ZXNwYWNlc1tdID0gezB4NjEsIDB4MDA2MiwgMHgwMDNjLCAweDAwMjgsIDB4MDAzZn07CisgICAgICAgICAgICAgICAgICAgICAgIAorICAgIAlpbnQgc2l6ZSA9IHNwYWNlcy5sZW5ndGg7CisgICAgCWZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSArKykKKyAgICAJeworICAgICAgCQlpZiAoIVVDaGFyYWN0ZXIuaXNTcGFjZUNoYXIoc3BhY2VzW2ldKSkKKyAgICAgIAkJeworICAgICAgICAJCWVycmxuKCJGQUlMIFxcdSIgKyBoZXgoc3BhY2VzW2ldKSArIAorICAgICAgICAgICAgICAJCSIgZXhwZWN0ZWQgdG8gYmUgYSBzcGFjZSBjaGFyYWN0ZXIiKTsKKyAgICAgICAgCQlicmVhazsKKyAgICAgIAkJfQorICAgICAgCisgICAgICAJCWlmIChVQ2hhcmFjdGVyLmlzU3BhY2VDaGFyKG5vbnNwYWNlc1tpXSkpCisgICAgICAJCXsKKyAgICAgICAgCQllcnJsbigiRkFJTCBcXHUiICsgaGV4KG5vbnNwYWNlc1tpXSkgKyAKKyAgICAgICAgICAJICAgICIgZXhwZWN0ZWQgbm90IHRvIGJlIHNwYWNlIGNoYXJhY3RlciIpOworICAgICAgICAJCWJyZWFrOworICAgICAgCQl9CisgCisgICAgIAkgCWlmICghVUNoYXJhY3Rlci5pc1doaXRlc3BhY2Uod2hpdGVzcGFjZXNbaV0pKQorICAgICAgCQl7CisgICAgICAgIAkJZXJybG4oIkZBSUwgXFx1IiArIGhleCh3aGl0ZXNwYWNlc1tpXSkgKyAKKyAgICAgICAgICAgICAgCQkJIiBleHBlY3RlZCB0byBiZSBhIHdoaXRlIHNwYWNlIGNoYXJhY3RlciIpOworICAgICAgICAJCWJyZWFrOworICAgICAgCQl9CisgICAgICAJCWlmIChVQ2hhcmFjdGVyLmlzV2hpdGVzcGFjZShub253aGl0ZXNwYWNlc1tpXSkpCisgICAgICAJCXsKKyAgICAgICAJIAkJZXJybG4oIkZBSUwgXFx1IiArIGhleChub253aGl0ZXNwYWNlc1tpXSkgKyAKKyAgICAgICAgICAgICAgCQkJCSIgZXhwZWN0ZWQgbm90IHRvIGJlIGEgc3BhY2UgY2hhcmFjdGVyIik7CisgICAgICAgIAkJYnJlYWs7CisgICAgICAJCX0KKyAgICAgIAkJbG9nbG4oIk9rICAgIFxcdSIgKyBoZXgoc3BhY2VzW2ldKSArICIgYW5kIFxcdSIgKyAKKyAgICAgIAkJICAgICAgaGV4KG5vbnNwYWNlc1tpXSkgKyAiIGFuZCBcXHUiICsgaGV4KHdoaXRlc3BhY2VzW2ldKSArIAorICAgICAgCQkgICAgICAiIGFuZCBcXHUiICsgaGV4KG5vbndoaXRlc3BhY2VzW2ldKSk7CisgICAgCX0KKyAgCX0KKyAgCisgIAkvKioKKyAgCSogVGVzdHMgZm9yIGRlZmluZWQgYW5kIHVuZGVmaW5lZCBjaGFyYWN0ZXJzCisgIAkqLworICAJcHVibGljIHZvaWQgVGVzdERlZmluZWQoKQorICAJeworICAgIAlpbnQgdW5kZWZpbmVkW10gPSB7MHhmZmYxLCAweGZmZjcsIDB4ZmE2Yn07CisgICAgCWludCBkZWZpbmVkW10gPSB7MHg1MjNFLCAweDAwNGY4OCwgMHgwMGZmZmR9OworICAgIAorICAgIAlpbnQgc2l6ZSA9IHVuZGVmaW5lZC5sZW5ndGg7CisgICAgCWZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSArKykgCisgICAgCXsKKyAgICAgIAkJaWYgKFVDaGFyYWN0ZXIuaXNEZWZpbmVkKHVuZGVmaW5lZFtpXSkpCisgICAgICAJCXsKKyAgICAgICAgCQllcnJsbigiRkFJTCBcXHUiICsgaGV4KHVuZGVmaW5lZFtpXSkgKyAKKyAgICAgICAgICAJICAgIAkJCSIgZXhwZWN0ZWQgbm90IHRvIGJlIGRlZmluZWQiKTsKKyAgICAgICAgCQlicmVhazsKKyAgICAgIAkJfQorICAgICAgCQlpZiAoIVVDaGFyYWN0ZXIuaXNEZWZpbmVkKGRlZmluZWRbaV0pKQorICAgICAgCQl7CisgICAgICAgIAkJZXJybG4oIkZBSUwgXFx1IiArIGhleChkZWZpbmVkW2ldKSArICIgZXhwZWN0ZWQgZGVmaW5lZCIpOworICAgICAgICAJCWJyZWFrOworICAgICAgCQl9CisgICAgCX0KKyAgCX0KKyAgCisgIAkvKioKKyAgCSogVGVzdHMgZm9yIGJhc2UgY2hhcmFjdGVycyBhbmQgdGhlaXIgY2VsbHdpZHRoCisgIAkqLworICAJcHVibGljIHZvaWQgVGVzdEJhc2UoKQorICAJeworICAgIAlpbnQgYmFzZVtdID0gezB4MDA2MSwgMHgwMDAwMzEsIDB4MDAwM2QyfTsKKyAgICAJaW50IG5vbmJhc2VbXSA9IHsweDAwMkIsIDB4MDAwMDIwLCAweDAwMjAzQn07ICAgIAorICAgIAlpbnQgc2l6ZSA9IGJhc2UubGVuZ3RoOworICAgIAlmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkgKyspIAorICAgIAl7CisgICAgICAJCWlmIChVQ2hhcmFjdGVyLmlzQmFzZUZvcm0obm9uYmFzZVtpXSkpCisgICAgICAJCXsKKyAgICAgICAJCSAJZXJybG4oIkZBSUwgXFx1IiArIGhleChub25iYXNlW2ldKSArIAorICAgICAgICAgICAgICAJCQkJIiBleHBlY3RlZCBub3QgdG8gYmUgYSBiYXNlIGNoYXJhY3RlciIpOworICAgICAgICAJCWJyZWFrOworICAgICAgCQl9CisgICAgICAJCWlmICghVUNoYXJhY3Rlci5pc0Jhc2VGb3JtKGJhc2VbaV0pKQorICAgICAgCQl7CisgICAgICAgIAkJZXJybG4oIkZBSUwgXFx1IiArIGhleChiYXNlW2ldKSArIAorICAgICAgICAJCSAgICAgICIgZXhwZWN0ZWQgdG8gYmUgYSBiYXNlIGNoYXJhY3RlciIpOworICAgICAgICAJCWJyZWFrOworICAgICAgCQl9CisgICAgCX0KKyAgCX0KKyAgICAKKyAgCS8qKgorICAJKiBUZXN0cyBmb3IgZGlnaXQgY2hhcmFjdGVycyAKKyAgCSovCisgIAlwdWJsaWMgdm9pZCBUZXN0RGlnaXRzKCkKKyAgCXsKKyAgICAJaW50IGRpZ2l0c1tdID0gezB4MDAzMCwgMHgwMDA2NjIsIDB4MDAwRjIzLCAweDAwMEVENSwgMHgwMDIxNjB9OworICAgIAorICAgIAkvL3NwZWNpYWwgY2hhcmFjdGVycyBub3QgaW4gdGhlIHByb3BlcnRpZXMgdGFibGUKKyAgICAgCWludCBkaWdpdHMyW10gPSB7MHgzMDA3LCAweDAwNGUwMCwgMHgwMDRlOGMsIDB4MDA0ZTA5LCAweDAwNTZkOCwgCisgICAgIAkJICAgICAgICAgICAgIDB4MDA0ZTk0LCAweDAwNTE2ZCwgMHg0ZTAzLCAweDAwNTE2YiwgMHgwMDRlNWR9OyAKKyAgICAJaW50IG5vbmRpZ2l0c1tdID0gezB4MDAxMCwgMHgwMDAwNDEsIDB4MDAwMTIyLCAweDAwNjhGRX07CisgICAgCisgICAgCWludCBkaWdpdHZhbHVlc1tdID0gezAsIDIsIDMsIDUsIDF9OworICAgIAlpbnQgZGlnaXR2YWx1ZXMyW10gPSB7MCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOX07ICAgICAKKyAgICAKKyAgICAJaW50IHNpemUgID0gZGlnaXRzLmxlbmd0aDsKKyAgICAJZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpICsrKSAKKyAgICAgIAkJaWYgKFVDaGFyYWN0ZXIuaXNEaWdpdChkaWdpdHNbaV0pICYmIAorICAgICAgICAgIAkJVUNoYXJhY3Rlci5kaWdpdChkaWdpdHNbaV0pICE9IGRpZ2l0dmFsdWVzW2ldKSAKKyAgICAgIAkJeworICAgICAgIAkJIAllcnJsbigiRkFJTCBcXHUiICsgaGV4KGRpZ2l0c1tpXSkgKyAKKyAgICAgICAgICAgICAgCQkJIiBleHBlY3RlZCBkaWdpdCB3aXRoIHZhbHVlICIgKyBkaWdpdHZhbHVlc1tpXSk7CisgICAgICAgIAkJYnJlYWs7CisgICAgICAJCX0KKyAgICAKKyAgICAJc2l6ZSA9IG5vbmRpZ2l0cy5sZW5ndGg7CisgICAgCWZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSArKykKKyAgICAgIAkJaWYgKFVDaGFyYWN0ZXIuaXNEaWdpdChub25kaWdpdHNbaV0pKQorICAgICAgCQl7CisgICAgICAgIAkJZXJybG4oIkZBSUwgXFx1IiArIGhleChub25kaWdpdHNbaV0pICsgIiBleHBlY3RlZCBub25kaWdpdCIpOworICAgICAgICAJCWJyZWFrOworICAgICAgCQl9CisgICAgICAKKyAgICAJc2l6ZSA9IGRpZ2l0czIubGVuZ3RoOworICAgIAlmb3IgKGludCBpID0gMDsgaSA8IDEwOyBpICsrKSAKKyAgICAgIAkJaWYgKFVDaGFyYWN0ZXIuaXNEaWdpdChkaWdpdHMyW2ldKSAmJgorICAgICAgICAgIAkJVUNoYXJhY3Rlci5kaWdpdChkaWdpdHMyW2ldKSAhPSBkaWdpdHZhbHVlczJbaV0pIAorICAgICAgCQl7CisgICAgICAgIAkJZXJybG4oIkZBSUwgXFx1IiArIGhleChkaWdpdHMyW2ldKSArIAorICAgICAgICAgICAgICAJCSIgZXhwZWN0ZWQgZGlnaXQgd2l0aCB2YWx1ZSAiICsgZGlnaXR2YWx1ZXMyW2ldKTsKKyAgICAgICAgCQlicmVhazsKKyAgICAgIAkJfQorICAJfQorICAKKyAgCS8qKgorICAgCSogIFRlc3RzIGZvciBudW1lcmljIGNoYXJhY3RlcnMKKyAgIAkqLworICAJcHVibGljIHZvaWQgVGVzdE51bWVyaWMoKQorICAJeworCQlmb3IgKGludCBpID0gJzAnOyBpIDwgJzknOyBpICsrKSB7CisJCQlpbnQgbjEgPSBVQ2hhcmFjdGVyLmdldE51bWVyaWNWYWx1ZShpKTsKKwkJCWludCBuMiA9IFVDaGFyYWN0ZXIuZ2V0VW5pY29kZU51bWVyaWNWYWx1ZShpKTsKKwkJCWlmIChuMSAhPSBuMiB8fCAgbjEgIT0gKGkgLSAnMCcpKSB7CisJCQkJZXJybG4oIk51bWVyaWMgdmFsdWUgb2YgIiArIChjaGFyKWkgKyAiIGV4cGVjdGVkIHRvIGJlICIgKworCQkJCSAgICAgIChpIC0gJzAnKSk7CisJCQl9CisJCX0KKwkJZm9yIChpbnQgaSA9ICdBJzsgaSA8ICdGJzsgaSArKykgeworCQkJaW50IG4xID0gVUNoYXJhY3Rlci5nZXROdW1lcmljVmFsdWUoaSk7CisJCQlpbnQgbjIgPSBVQ2hhcmFjdGVyLmdldFVuaWNvZGVOdW1lcmljVmFsdWUoaSk7CisJCQlpZiAobjIgIT0gLTEgfHwgIG4xICE9IChpIC0gJ0EnICsgMTApKSB7CisJCQkJZXJybG4oIk51bWVyaWMgdmFsdWUgb2YgIiArIChjaGFyKWkgKyAiIGV4cGVjdGVkIHRvIGJlICIgKworCQkJCSAgICAgIChpIC0gJ0EnICsgMTApKTsKKwkJCX0KKwkJfQorCQlmb3IgKGludCBpID0gMHhGRjIxOyBpIDwgMHhGRjI2OyBpICsrKSB7CisJCQkvLyB0ZXN0aW5nIGZ1bGwgd2lkZXRoIGxhdGluIGNoYXJhY3RlcnMgQS1GCisJCQlpbnQgbjEgPSBVQ2hhcmFjdGVyLmdldE51bWVyaWNWYWx1ZShpKTsKKwkJCWludCBuMiA9IFVDaGFyYWN0ZXIuZ2V0VW5pY29kZU51bWVyaWNWYWx1ZShpKTsKKwkJCWlmIChuMiAhPSAtMSB8fCAgbjEgIT0gKGkgLSAweEZGMjEgKyAxMCkpIHsKKwkJCQllcnJsbigiTnVtZXJpYyB2YWx1ZSBvZiAiICsgKGNoYXIpaSArICIgZXhwZWN0ZWQgdG8gYmUgIiArCisJCQkJICAgICAgKGkgLSAweEZGMjEgKyAxMCkpOworCQkJfQorCQl9CisJCS8vIHRlc3RpbmcgaGFuIG51bWJlcnMKKwkJaW50IGhhbltdID0gezB4OTZmNiwgMCwgMHg1OGY5LCAxLCAweDhjYjMsIDIsIDB4NTNjMywgMywgCisJCQkgICAgICAgICAweDgwODYsIDQsIDB4NGYwZCwgNSwgMHg5Njc4LCA2LCAweDY3ZDIsIDcsIAorCQkJICAgICAgICAgMHg2MzRjLCA4LCAweDczOTYsIDksIDB4NTM0MSwgMTAsIDB4NjJmZSwgMTAsCisJCQkgICAgICAgICAweDc2N2UsIDEwMCwgMHg0ZjcwLCAxMDAsIDB4NTM0MywgMTAwMCwgMHg0ZWRmLCAxMDAwLAorCQkJICAgICAgICAgMHg4MjRjLCAxMDAwMCwgMHg1MTA0LCAxMDAwMDAwMDB9OworCQlmb3IgKGludCBpID0gMDsgaSA8IGhhbi5sZW5ndGg7IGkgKz0gMikgeworCQkJaWYgKFVDaGFyYWN0ZXIuZ2V0SGFuTnVtZXJpY1ZhbHVlKGhhbltpXSkgIT0gaGFuW2kgKyAxXSkgeworCQkJCWVycmxuKCJOdW1lcmljIHZhbHVlIG9mIFxcdSIgKyAKKwkJCQkgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKGhhbltpXSkgKwkiIGV4cGVjdGVkIHRvIGJlICIgKyAKKwkJCQkgICAgICBoYW5baSArIDFdKTsKKwkJCX0KKwkJfQorICAJfQorCisgIAkvKioKKyAgCSogVGVzdHMgZm9yIHZlcnNpb24gCisgIAkqLworICAJcHVibGljIHZvaWQgVGVzdFZlcnNpb24oKQorICAJeworICAgIAlpZiAoIVVDaGFyYWN0ZXIuZ2V0VW5pY29kZVZlcnNpb24oKS5lcXVhbHMoVkVSU0lPTl8pKQorICAgICAgCQllcnJsbigiRkFJTCBleHBlY3RlZCAiICsgVkVSU0lPTl8pOworICAJfQorICAKKyAgCS8qKgorICAJKiBUZXN0cyBmb3IgY29udHJvbCBjaGFyYWN0ZXJzCisgIAkqLworICAJcHVibGljIHZvaWQgVGVzdElTT0NvbnRyb2woKQorICAJeworICAgIAlpbnQgY29udHJvbFtdID0gezB4MDAxYiwgMHgwMDAwOTcsIDB4MDAwMDgyfTsKKyAgICAJaW50IG5vbmNvbnRyb2xbXSA9IHsweDYxLCAweDAwMDAzMSwgMHgwMDAwZTJ9OworICAgIAorICAgIAlpbnQgc2l6ZSA9IGNvbnRyb2wubGVuZ3RoOworICAgIAlmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkgKyspIAorICAgIAl7CisgICAgICAJCWlmICghVUNoYXJhY3Rlci5pc0lTT0NvbnRyb2woY29udHJvbFtpXSkpCisgICAgICAJCXsKKyAgICAgICAgCQllcnJsbigiRkFJTCAweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNvbnRyb2xbaV0pICsgCisgICAgICAgICAJICAgICAJCSIgZXhwZWN0ZWQgdG8gYmUgYSBjb250cm9sIGNoYXJhY3RlciIpOworICAgICAgICAJCWJyZWFrOworICAgICAgCQl9ICAKKyAgICAgIAkJaWYgKFVDaGFyYWN0ZXIuaXNJU09Db250cm9sKG5vbmNvbnRyb2xbaV0pKQorICAgICAgCQl7CisgICAgICAgIAkJZXJybG4oIkZBSUwgMHgiICsgSW50ZWdlci50b0hleFN0cmluZyhub25jb250cm9sW2ldKSArIAorICAgICAgICAgICAgICAJCQkiIGV4cGVjdGVkIHRvIGJlIG5vdCBhIGNvbnRyb2wgY2hhcmFjdGVyIik7CisgICAgICAgIAkJYnJlYWs7CisgICAgICAJCX0KKyAgICAgIAorICAgICAgCQlsb2dsbigiT2sgICAgMHgiICsgSW50ZWdlci50b0hleFN0cmluZyhjb250cm9sW2ldKSArICIgYW5kIDB4IiArCisgICAgICAgICAgICAJCUludGVnZXIudG9IZXhTdHJpbmcobm9uY29udHJvbFtpXSkpOworICAgIAl9CisgIAl9CisgIAkKKyAgCS8qKgorICAJICogVGVzdCBTdXBwbGVtZW50YXJ5CisgIAkgKi8KKyAgCXB1YmxpYyB2b2lkIFRlc3RTdXBwbGVtZW50YXJ5KCkKKyAgCXsKKyAgCQlmb3IgKGludCBpID0gMDsgaSA8IDB4MTAwMDA7IGkgKyspIHsKKyAgCQkJaWYgKFVDaGFyYWN0ZXIuaXNTdXBwbGVtZW50YXJ5KGkpKSB7CisgIAkJCQllcnJsbigiQ29kZXBvaW50IFxcdSIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGkpICsgCisgIAkJCQkgICAgICAiIGlzIG5vdCBzdXBwbGVtZW50YXJ5Iik7CisgIAkJCX0KKyAgCQl9CisgIAkJZm9yIChpbnQgaSA9IDB4MTAwMDA7IGkgPCAweDEwRkZGRjsgaSArKykgeworICAJCQlpZiAoIVVDaGFyYWN0ZXIuaXNTdXBwbGVtZW50YXJ5KGkpKSB7CisgIAkJCQllcnJsbigiQ29kZXBvaW50IFxcdSIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGkpICsgCisgIAkJCQkgICAgICAiIGlzIHN1cHBsZW1lbnRhcnkiKTsKKyAgCQkJfQorICAJCX0KKyAgCX0KKyAgCQorICAJLyoqCisgIAkgKiBUZXN0IG1pcnJvcmluZworICAJICovCisgIAlwdWJsaWMgdm9pZCBUZXN0TWlycm9yKCkKKyAgCXsKKyAgCQlpZiAoIShVQ2hhcmFjdGVyLmlzTWlycm9yZWQoMHgyOCkgJiYgVUNoYXJhY3Rlci5pc01pcnJvcmVkKDB4YmIpICYmIAorICAJCSAgICAgIFVDaGFyYWN0ZXIuaXNNaXJyb3JlZCgweDIwNDUpICYmIFVDaGFyYWN0ZXIuaXNNaXJyb3JlZCgweDIzMmEpCisgIAkJICAgICAgJiYgIVVDaGFyYWN0ZXIuaXNNaXJyb3JlZCgweDI3KSAmJiAKKyAgCQkgICAgICAhVUNoYXJhY3Rlci5pc01pcnJvcmVkKDB4NjEpICYmICFVQ2hhcmFjdGVyLmlzTWlycm9yZWQoMHgyODQpIAorICAJCSAgICAgICYmICFVQ2hhcmFjdGVyLmlzTWlycm9yZWQoMHgzNDAwKSkpIHsKKyAgICAgICAgCWVycmxuKCJpc01pcnJvcmVkKCkgZG9lcyBub3Qgd29yayBjb3JyZWN0bHkiKTsKKyAgICAJfQorCisgICAgCWlmICghKFVDaGFyYWN0ZXIuZ2V0TWlycm9yKDB4M2MpID09IDB4M2UgJiYgCisgICAgCSAgICAgIFVDaGFyYWN0ZXIuZ2V0TWlycm9yKDB4NWQpID09IDB4NWIgJiYgCisgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuZ2V0TWlycm9yKDB4MjA4ZCkgPT0gMHgyMDhlICYmIAorICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldE1pcnJvcigweDMwMTcpID09IDB4MzAxNiAmJgorICAgICAgICAgCSAgVUNoYXJhY3Rlci5nZXRNaXJyb3IoMHgyZSkgPT0gMHgyZSAmJiAKKyAgICAgICAgIAkgIFVDaGFyYWN0ZXIuZ2V0TWlycm9yKDB4NmYzKSA9PSAweDZmMyAmJiAKKyAgICAgICAgIAkgIFVDaGFyYWN0ZXIuZ2V0TWlycm9yKDB4MzAxYykgPT0gMHgzMDFjICYmIAorICAgICAgICAgCSAgVUNoYXJhY3Rlci5nZXRNaXJyb3IoMHhhNGFiKSA9PSAweGE0YWIpKSB7CisgICAgICAgIAllcnJsbigiZ2V0TWlycm9yKCkgZG9lcyBub3Qgd29yayBjb3JyZWN0bHkiKTsKKyAgICAJfQorCX0KKyAgCisgIAkvKioKKyAgCSogVGVzdHMgZm9yIHByaW50YWJsZSBjaGFyYWN0ZXJzCisgIAkqLworICAJcHVibGljIHZvaWQgVGVzdFByaW50KCkKKyAgCXsKKyAgICAJaW50IHByaW50YWJsZVtdID0gezB4MDA0MiwgMHgwMDAwNWYsIDB4MDAyMDE0fTsKKyAgICAJaW50IG5vbnByaW50YWJsZVtdID0gezB4MjAwYywgMHgwMDAwOWYsIDB4MDAwMDFifTsKKyAgICAKKyAgICAJaW50IHNpemUgPSBwcmludGFibGUubGVuZ3RoOworICAgIAlmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkgKyspCisgICAgCXsKKyAgICAgIAkJaWYgKCFVQ2hhcmFjdGVyLmlzUHJpbnRhYmxlKHByaW50YWJsZVtpXSkpCisgICAgICAJCXsKKyAgICAgICAJIAkJZXJybG4oIkZBSUwgXFx1IiArIGhleChwcmludGFibGVbaV0pICsgCisgICAgICAgICAgICAgIAkJIiBleHBlY3RlZCB0byBiZSBhIHByaW50YWJsZSBjaGFyYWN0ZXIiKTsKKyAgICAgICAgCQlicmVhazsKKyAgICAgIAkJfQorICAgICAgCQlpZiAoVUNoYXJhY3Rlci5pc1ByaW50YWJsZShub25wcmludGFibGVbaV0pKQorICAgICAgCQl7CisgICAgICAgIAkJZXJybG4oIkZBSUwgXFx1IiArIGhleChub25wcmludGFibGVbaV0pICsKKyAgICAgICAgICAgICAgCQkJIiBleHBlY3RlZCBub3QgdG8gYmUgYSBwcmludGFibGUgY2hhcmFjdGVyIik7CisgICAgICAgIAkJYnJlYWs7CisgICAgICAJCX0KKyAgICAgIAkJbG9nbG4oIk9rICAgIFxcdSIgKyBoZXgocHJpbnRhYmxlW2ldKSArICIgYW5kIFxcdSIgKyAKKyAgICAgICAgICAgIAkJaGV4KG5vbnByaW50YWJsZVtpXSkpOworICAgIAl9CisgICAgCisgICAgCS8vIHRlc3QgYWxsIElTTyA4IGNvbnRyb2xzCisgICAgCWZvciAoaW50IGNoID0gMDsgY2ggPD0gMHg5ZjsgKysgY2gpIHsKKyAgICAgIAkJaWYgKGNoID09IDB4MjApIHsKKyAgICAgIAkJCS8vIHNraXAgQVNDSUkgZ3JhcGhpYyBjaGFyYWN0ZXJzIGFuZCBjb250aW51ZSB3aXRoIERFTAorICAgICAgICAJCWNoID0gMHg3ZjsKKyAgICAgIAkJfQorICAgICAgCQlpZiAoVUNoYXJhY3Rlci5pc1ByaW50YWJsZShjaCkpIHsKKyAgICAgICAgCQllcnJsbigiRmFpbCBcXHUiICsgaGV4KGNoKSArIAorICAgICAgICAgICAgICAJCSIgaXMgYSBJU08gOCBjb250cm9sIGNoYXJhY3RlciBoZW5jZSBub3QgcHJpbnRhYmxlXG4iKTsKKyAgICAgIAkJfQorICAgIAl9CisKKyAgICAJLyogdGVzdCBhbGwgTGF0aW4tMSBncmFwaGljIGNoYXJhY3RlcnMgKi8KKyAgICAJZm9yIChpbnQgY2ggPSAweDIwOyBjaCA8PSAweGZmOyArKyBjaCkgeworICAgICAgCQlpZiAoY2ggPT0gMHg3ZikgeworICAgICAgICAJCWNoID0gMHhhMDsKKyAgICAgIAkJfQorICAgICAgCQlpZiAoIVVDaGFyYWN0ZXIuaXNQcmludGFibGUoY2gpKSB7CisgICAgICAgIAkJZXJybG4oIkZhaWwgXFx1IiArIGhleChjaCkgKyAKKyAgICAgICAgCQkgICAgICAiIGlzIGEgTGF0aW4tMSBncmFwaGljIGNoYXJhY3RlclxuIik7CisgICAgICAgIAl9CisgICAgCX0KKyAgCX0KKyAgCisgIAkvKiogCisgIAkqIFRlc3RpbmcgZm9yIGlkZW50aWZpZXIgY2hhcmFjdGVycworICAJKi8KKyAgCXB1YmxpYyB2b2lkIFRlc3RJZGVudGlmaWVyKCkKKyAgCXsKKyAgICAJaW50IHVuaWNvZGVpZHN0YXJ0W10gPSB7MHgwMjUwLCAweDAwMDBlMiwgMHgwMDAwNjF9OworICAgIAlpbnQgbm9udW5pY29kZWlkc3RhcnRbXSA9IHsweDIwMDAsIDB4MDAwMDBhLCAweDAwMjAxOX07CisgICAgCWludCB1bmljb2RlaWRwYXJ0W10gPSB7MHgwMDVmLCAweDAwMDAzMiwgMHgwMDAwNDV9OworICAgIAlpbnQgbm9udW5pY29kZWlkcGFydFtdID0gezB4MjAzMCwgMHgwMDAwYTMsIDB4MDAwMDIwfTsKKyAgICAJaW50IGlkaWdub3JlW10gPSB7MHgwMDA2LCAweDAwMTAsIDB4MjA2Yn07CisgICAgCWludCBub25pZGlnbm9yZVtdID0gezB4MDA3NSwgMHgwMDAwYTMsIDB4MDAwMDYxfTsKKyAgICAKKyAgICAJaW50IHNpemUgPSB1bmljb2RlaWRzdGFydC5sZW5ndGg7CisgICAgCWZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSArKykgCisgICAgCXsKKyAgICAgIAkJaWYgKCFVQ2hhcmFjdGVyLmlzVW5pY29kZUlkZW50aWZpZXJTdGFydCh1bmljb2RlaWRzdGFydFtpXSkpCisgICAgICAJCXsKKyAgICAgICAgCQllcnJsbigiRkFJTCBcXHUiICsgaGV4KHVuaWNvZGVpZHN0YXJ0W2ldKSArIAorICAgICAgICAgICAgICAJCSIgZXhwZWN0ZWQgdG8gYmUgYSB1bmljb2RlIGlkZW50aWZpZXIgc3RhcnQgY2hhcmFjdGVyIik7CisgICAgICAgIAkJYnJlYWs7CisgICAgICAJCX0KKyAgICAgIAkJaWYgKFVDaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclN0YXJ0KG5vbnVuaWNvZGVpZHN0YXJ0W2ldKSkKKyAgICAgIAkJeworICAgICAgICAJCWVycmxuKCJGQUlMIFxcdSIgKyBoZXgobm9udW5pY29kZWlkc3RhcnRbaV0pICsgCisgICAgICAgICAgICAgIAkJCSIgZXhwZWN0ZWQgbm90IHRvIGJlIGEgdW5pY29kZSBpZGVudGlmaWVyIHN0YXJ0ICIgKyAKKyAgICAgICAgICAgICAgCQkJImNoYXJhY3RlciIpOworICAgICAgICAJCWJyZWFrOworICAgICAgCQl9CisgICAgICAJCWlmICghVUNoYXJhY3Rlci5pc1VuaWNvZGVJZGVudGlmaWVyUGFydCh1bmljb2RlaWRwYXJ0W2ldKSkKKyAgICAgIAkJeworICAgICAgICAJCWVycmxuKCJGQUlMIFxcdSIgKyBoZXgodW5pY29kZWlkcGFydFtpXSkgKyAKKyAgICAgICAgICAgICAgCQkiIGV4cGVjdGVkIHRvIGJlIGEgdW5pY29kZSBpZGVudGlmaWVyIHBhcnQgY2hhcmFjdGVyIik7CisgICAgICAgIAkJYnJlYWs7CisgICAgICAJCX0KKyAgICAgIAkJaWYgKFVDaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclBhcnQobm9udW5pY29kZWlkcGFydFtpXSkpCisgICAgICAJCXsKKyAgICAgICAgCQllcnJsbigiRkFJTCBcXHUiICsgaGV4KG5vbnVuaWNvZGVpZHBhcnRbaV0pICsgCisgICAgICAgICAgICAgIAkJCSIgZXhwZWN0ZWQgbm90IHRvIGJlIGEgdW5pY29kZSBpZGVudGlmaWVyIHBhcnQgIiArCisgICAgICAgICAgICAgIAkJCSJjaGFyYWN0ZXIiKTsKKyAgICAgICAgCQlicmVhazsKKyAgICAgIAkJfQorICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLmlzSWRlbnRpZmllcklnbm9yYWJsZShpZGlnbm9yZVtpXSkpCisgICAgICAJCXsKKyAgICAgICAgCQllcnJsbigiRkFJTCBcXHUiICsgaGV4KGlkaWdub3JlW2ldKSArIAorICAgICAgICAgICAgICAJCQkiIGV4cGVjdGVkIHRvIGJlIGEgaWdub3JhYmxlIHVuaWNvZGUgY2hhcmFjdGVyIik7CisgICAgICAgIAkJYnJlYWs7CisgICAgICAJCX0KKyAgICAgIAkJaWYgKFVDaGFyYWN0ZXIuaXNJZGVudGlmaWVySWdub3JhYmxlKG5vbmlkaWdub3JlW2ldKSkKKyAgICAgIAkJeworICAgICAgICAJCWVycmxuKCJGQUlMIFxcdSIgKyBoZXgobm9uaWRpZ25vcmVbaV0pICsgCisgICAgICAgICAgICAgIAkJIiBleHBlY3RlZCBub3QgdG8gYmUgYSBpZ25vcmFibGUgdW5pY29kZSBjaGFyYWN0ZXIiKTsKKyAgICAgICAgCQlicmVhazsKKyAgICAgIAkJfQorICAgICAgCQlsb2dsbigiT2sgICAgXFx1IiArIGhleCh1bmljb2RlaWRzdGFydFtpXSkgKyAiIGFuZCBcXHUiICsKKyAgICAgICAgICAgIAkJaGV4KG5vbnVuaWNvZGVpZHN0YXJ0W2ldKSArICIgYW5kIFxcdSIgKyAKKyAgICAgICAgICAgIAkJaGV4KHVuaWNvZGVpZHBhcnRbaV0pICsgIiBhbmQgXFx1IiArIAorICAgICAgICAgICAgCQloZXgobm9udW5pY29kZWlkcGFydFtpXSkgKyAiIGFuZCBcXHUiICsKKyAgICAgICAgICAgIAkJaGV4KGlkaWdub3JlW2ldKSArICIgYW5kIFxcdSIgKyBoZXgobm9uaWRpZ25vcmVbaV0pKTsKKyAgICAJfQorICAJfQorICAKKyAgCS8qKgorICAJKiBUZXN0cyBmb3IgdGhlIGNoYXJhY3RlciB0eXBlcywgZGlyZWN0aW9uLjxicj4KKyAgCSogVGhpcyBtZXRob2QgcmVhZHMgaW4gVW5pY29kZURhdGEudHh0IGZpbGUgZm9yIHRlc3RpbmcgcHVycG9zZXMuIEEgCisgIAkqIGRlZmF1bHQgcGF0aCBpcyBwcm92aWRlZCByZWxhdGl2ZSB0byB0aGUgc3JjIHBhdGgsIGhvd2V2ZXIgdGhlIHVzZXIgCisgIAkqIGNvdWxkIHNldCBhIHN5c3RlbSBwcm9wZXJ0eSB0byBjaGFuZ2UgdGhlIGRpcmVjdG9yeSBwYXRoLjxicj4KKyAgCSogZS5nLiBqYXZhIC1EVW5pY29kZURhdGE9ImRhdGFfZGlyZWN0b3J5X3BhdGgiIAorICAJKiBjb20uaWJtLmljdS5kZXYudGVzdC5sYW5nLlVDaGFyYWN0ZXJUZXN0CisgIAkqLworICAJcHVibGljIHZvaWQgVGVzdFVuaWNvZGVEYXRhKCkKKyAgCXsKKyAgICAJLy8gdGhpcyBpcyB0aGUgMiBjaGFyIGNhdGVnb3J5IHR5cGVzIHVzZWQgaW4gdGhlIFVuaWNvZGVEYXRhIGZpbGUKKyAgICAJZmluYWwgU3RyaW5nIFRZUEUgPSAKKyAgICAgIAkJIkx1TGxMdExtTG9Nbk1lTWNOZE5sTm9ac1psWnBDY0NmQ29Dc1BkUHNQZVBjUG9TbVNjU2tTb1BpUGYiOworICAgIAorICAgIAkvLyBkaXJlY3RvcnkgdHlwZXMgdXNlZCBpbiB0aGUgVW5pY29kZURhdGEgZmlsZQorICAgIAkvLyBwYWRkZWQgYnkgc3BhY2VzIHRvIG1ha2UgZWFjaCB0eXBlIHNpemUgNAorICAgIAlmaW5hbCBTdHJpbmcgRElSID0gCisgICAgICAJCSJMICAgUiAgIEVOICBFUyAgRVQgIEFOICBDUyAgQiAgIFMgICBXUyAgT04gIExSRSBMUk8gQUwgIFJMRSBSTE8gUERGIE5TTSBCTiAgIjsKKyAgICAgIAorICAgIAlmaW5hbCBpbnQgTEFTVFVOSUNPREVDSEFSID0gMHhGRkZEOworICAgIAlpbnQgY2ggPSAwLAorICAgICAgICAJaW5kZXggPSAwLAorICAgICAgICAJdHlwZSA9IDAsCisgICAgICAgIAlkaXIgPSAwOworCQorCQl0cnkKKwkJeworCSAgCQlCdWZmZXJlZFJlYWRlciBpbnB1dCA9IFRlc3RVdGlsLmdldERhdGFSZWFkZXIoCisJICAJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1bmljb2RlL1VuaWNvZGVEYXRhLnR4dCIpOworCSAgICAKKyAgICAgIAkJd2hpbGUgKGNoICE9IExBU1RVTklDT0RFQ0hBUikKKyAgICAgIAkJeworICAgICAgIAkgCQlTdHJpbmcgcyA9IGlucHV0LnJlYWRMaW5lKCk7CisgICAgICAgIAkJLy8gZ2V0aW5nIHRoZSB1bmljb2RlIGNoYXJhY3RlciwgaXRzIHR5cGUgYW5kIGl0cyBkaXJlY3Rpb24KKyAgICAgICAgCQljaCA9IEludGVnZXIucGFyc2VJbnQocy5zdWJzdHJpbmcoMCwgNCksIDE2KTsKKyAgICAgICAgCQlpbmRleCA9IHMuaW5kZXhPZignOycsIDUpOworICAgICAgICAJCVN0cmluZyB0ID0gcy5zdWJzdHJpbmcoaW5kZXggKyAxLCBpbmRleCArIDMpOworICAgICAgICAJCWluZGV4ICs9IDQ7CisgICAgICAgIAkJaW50IGNjID0gSW50ZWdlci5wYXJzZUludChzLnN1YnN0cmluZyhpbmRleCwgcy5pbmRleE9mKCc7JywgCisgICAgICAgIAkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCkpKTsKKyAgICAgICAgCQlpbmRleCA9IHMuaW5kZXhPZignOycsIGluZGV4KTsKKyAgICAgICAgCQlTdHJpbmcgZCA9IHMuc3Vic3RyaW5nKGluZGV4ICsgMSwgcy5pbmRleE9mKCc7JywgaW5kZXggKyAxKSk7CisgICAgICAgIAorICAgICAgICAJCS8vIHRlc3RpbmcgdGhlIGNhdGVnb3J5CisgICAgICAgIAkJLy8gd2Ugb3ZlcnJpZGUgdGhlIGdlbmVyYWwgY2F0ZWdvcnkgb2Ygc29tZSBjb250cm9sIAorICAgICAgICAJCS8vIGNoYXJhY3RlcnMKKyAgICAgICAgCQl0eXBlID0gVFlQRS5pbmRleE9mKHQpOworICAgICAgICAJCWlmICh0eXBlIDwgMCkKKyAgICAgICAgICAgIAkJdHlwZSA9IDA7CisgICAgICAgIAkJZWxzZSAKKyAgICAgICAgICAgIAkJdHlwZSA9ICh0eXBlID4+IDEpICsgMTsgIAorICAgICAgICAJCWlmIChVQ2hhcmFjdGVyLmdldFR5cGUoY2gpICE9IHR5cGUpCisgICAgICAgIAkJeworICAgICAgICAgIAkJCWVycmxuKCJGQUlMIFxcdSIgKyBoZXgoY2gpICsgIiBleHBlY3RlZCB0eXBlICIgKyAKKyAgICAgICAgICAgICAgICAJCQl0eXBlKTsKKyAgICAgICAgICAJCQlicmVhazsKKyAgICAgICAgCQl9CisgICAgICAgIAorICAgICAgICAJCS8vIHRlc3RpbmcgY29tYmluaW5nIGNsYXNzCisgICAgICAgIAkJaWYgKFVDaGFyYWN0ZXIuZ2V0Q29tYmluaW5nQ2xhc3MoY2gpICE9IGNjKQorICAgICAgICAJCXsKKyAgICAgICAgICAJCQllcnJsbigiRkFJTCBcXHUiICsgaGV4KGNoKSArICIgZXhwZWN0ZWQgY29tYmluaW5nICIgKworICAgICAgICAgICAgICAgIAkJCSJjbGFzcyAiICsgY2MpOworICAgICAgICAgIAkJCWJyZWFrOworICAgICAgICAJCX0KKyAgICAgICAgCisgICAgICAgIAkJLy8gdGVzdGluZyB0aGUgZGlyZWN0aW9uCisgICAgICAgIAkJaWYgKGQubGVuZ3RoKCkgPT0gMSkKKyAgICAgICAgICAJCQlkID0gZCArICIgICAiOyAgCisgICAgICAgICAgCisgICAgICAgIAkJZGlyID0gRElSLmluZGV4T2YoZCkgPj4gMjsKKyAgICAgICAgCQlpZiAoVUNoYXJhY3Rlci5nZXREaXJlY3Rpb24oY2gpICE9IGRpcikgCisgICAgICAgIAkJeworICAgICAgICAgIAkJCWVycmxuKCJGQUlMIFxcdSIgKyBoZXgoY2gpICsgCisgICAgICAgICAgICAgICAgCQkiIGV4cGVjdGVkIHdyb25nIGRpcmVjdGlvbiAiICsgZGlyKTsKKyAgICAgICAgICAJCQlicmVhazsKKyAgICAgICAgCQl9CisgICAgICAJCX0KKyAgICAgIAkJaW5wdXQuY2xvc2UoKTsKKyAgICAJfQorICAgIAljYXRjaCAoRXhjZXB0aW9uIGUpCisgICAgCXsKKyAgICAgIAkJZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAJfQorICAJfQorICAKKyAgCisgIAkvKioKKyAgCSogVGVzdCBmb3IgdGhlIGNoYXJhY3RlciBuYW1lcworICAJKi8KKyAgCXB1YmxpYyB2b2lkIFRlc3ROYW1lcygpCisgIAl7CisgICAgCWludCBjW10gPSB7MHgwMDYxLCAweDAwMDI4NCwgMHgwMDM0MDEsIDB4MDA3ZmVkLCAweDAwYWMwMCwgMHgwMGQ3YTMsIAorICAgIAkJICAgICAgIDB4MDBkODAwLCAweDAwZGMwMCwgMHhmZjA4LCAweDAwZmZlNSwgMHgwMGZmZmYsIAorICAgIAkJICAgICAgIDB4MDAyMzQ1Nn07CisgICAgCVN0cmluZyBuYW1lW10gPSB7IkxBVElOIFNNQUxMIExFVFRFUiBBIiwgCisgICAgICAgICAgICAgICAgICAgICAiTEFUSU4gU01BTEwgTEVUVEVSIERPVExFU1MgSiBXSVRIIFNUUk9LRSBBTkQgSE9PSyIsIAorICAgICAgICAgICAgICAgICAgICAgIkNKSyBVTklGSUVEIElERU9HUkFQSC0zNDAxIiwgCisgICAgICAgICAgICAgICAgICAgICAiQ0pLIFVOSUZJRUQgSURFT0dSQVBILTdGRUQiLCAiSEFOR1VMIFNZTExBQkxFIEdBIiwgCisgICAgICAgICAgICAgICAgICAgICAiSEFOR1VMIFNZTExBQkxFIEhJSCIsICIiLCAiIiwKKyAgICAgICAgICAgICAgICAgICAgICJGVUxMV0lEVEggTEVGVCBQQVJFTlRIRVNJUyIsCisgICAgICAgICAgICAgICAgICAgICAiRlVMTFdJRFRIIFlFTiBTSUdOIiwgIiIsICJDSksgVU5JRklFRCBJREVPR1JBUEgtMjM0NTYifTsKKyAgICAJU3RyaW5nIG9sZG5hbWVbXSA9IHsiIiwgIkxBVElOIFNNQUxMIExFVFRFUiBET1RMRVNTIEogQkFSIEhPT0siLCAiIiwgCisgICAgCQkgICAgICAgICAgICAiIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICIiLCAiIiwgIiIsICIiLCAiRlVMTFdJRFRIIE9QRU5JTkcgUEFSRU5USEVTSVMiLCAiIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAiIiwgIiJ9OworICAgIAlTdHJpbmcgZXh0ZW5kZWRuYW1lW10gPSB7IkxBVElOIFNNQUxMIExFVFRFUiBBIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMQVRJTiBTTUFMTCBMRVRURVIgRE9UTEVTUyBKIFdJVEggU1RST0tFIEFORCBIT09LIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNKSyBVTklGSUVEIElERU9HUkFQSC0zNDAxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNKSyBVTklGSUVEIElERU9HUkFQSC03RkVEIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkhBTkdVTCBTWUxMQUJMRSBHQSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJIQU5HVUwgU1lMTEFCTEUgSElIIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxsZWFkIHN1cnJvZ2F0ZS1EODAwPiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8dHJhaWwgc3Vycm9nYXRlLURDMDA+IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZVTExXSURUSCBMRUZUIFBBUkVOVEhFU0lTIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZVTExXSURUSCBZRU4gU0lHTiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8bm9uY2hhcmFjdGVyLUZGRkY+IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNKSyBVTklGSUVEIElERU9HUkFQSC0yMzQ1NiJ9OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAJaW50IHNpemUgPSBjLmxlbmd0aDsKKyAgICAJU3RyaW5nIHN0cjsKKyAgICAJaW50IHVjOworICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkgKyspIAorICAgIAl7CisgICAgICAJCS8vIG1vZGVybiBVbmljb2RlIGNoYXJhY3RlciBuYW1lCisgICAgICAJCXN0ciA9IFVDaGFyYWN0ZXIuZ2V0TmFtZShjW2ldKTsKKyAgICAgIAkJaWYgKChzdHIgPT0gbnVsbCAmJiBuYW1lW2ldLmxlbmd0aCgpID4gMCkgfHwgCisgICAgICAgICAgCQkoc3RyICE9IG51bGwgJiYgIXN0ci5lcXVhbHMobmFtZVtpXSkpKQorICAgICAgCQl7CisgICAgICAgIAkJZXJybG4oIkZBSUwgXFx1IiArIGhleChjW2ldKSArICIgZXhwZWN0ZWQgbmFtZSAiICsKKyAgICAgICAgICAgICAgCQkJbmFtZVtpXSk7CisgICAgICAgIAkJYnJlYWs7CisgICAgICAJCX0KKyAgICAgCisgICAgICAJCS8vIDEuMCBVbmljb2RlIGNoYXJhY3RlciBuYW1lCisgICAgICAJCXN0ciA9IFVDaGFyYWN0ZXIuZ2V0TmFtZTFfMChjW2ldKTsKKyAgICAgIAkJaWYgKChzdHIgPT0gbnVsbCAmJiBvbGRuYW1lW2ldLmxlbmd0aCgpID4gMCkgfHwgCisgICAgICAgICAgCQkoc3RyICE9IG51bGwgJiYgIXN0ci5lcXVhbHMob2xkbmFtZVtpXSkpKQorICAgICAgCQl7CisgICAgICAgIAkJZXJybG4oIkZBSUwgXFx1IiArIGhleChjW2ldKSArICIgZXhwZWN0ZWQgMS4wIG5hbWUgIiArCisgICAgICAgICAgICAgIAkJCW9sZG5hbWVbaV0pOworICAgICAgICAJCWJyZWFrOworICAgICAgCQl9CisgICAgICAKKyAgICAgIAkJLy8gZXh0ZW5kZWQgY2hhcmFjdGVyIG5hbWUKKyAgICAgIAkJc3RyID0gVUNoYXJhY3Rlci5nZXRFeHRlbmRlZE5hbWUoY1tpXSk7CisgICAgICAJCWlmIChzdHIgPT0gbnVsbCB8fCAhc3RyLmVxdWFscyhleHRlbmRlZG5hbWVbaV0pKQorICAgICAgCQl7CisgICAgICAgIAkJZXJybG4oIkZBSUwgXFx1IiArIGhleChjW2ldKSArICIgZXhwZWN0ZWQgZXh0ZW5kZWQgbmFtZSAiICsKKyAgICAgICAgICAgICAgCQkJZXh0ZW5kZWRuYW1lW2ldKTsKKyAgICAgICAgCQlicmVhazsKKyAgICAgIAkJfQorICAgICAgCisgICAgICAJCS8vIHJldHJpZXZpbmcgdW5pY29kZSBjaGFyYWN0ZXIgZnJvbSBtb2Rlcm4gbmFtZQorICAgICAgCQl1YyA9IFVDaGFyYWN0ZXIuZ2V0Q2hhckZyb21OYW1lKG5hbWVbaV0pOworICAgICAgCQlpZiAodWMgIT0gY1tpXSAmJiBuYW1lW2ldLmxlbmd0aCgpICE9IDApCisgICAgICAJCXsKKyAgICAgICAgCQllcnJsbigiRkFJTCAiICsgbmFtZVtpXSArICIgZXhwZWN0ZWQgY2hhcmFjdGVyIFxcdSIgKyAKKyAgICAgICAgCQkgICAgICBoZXgoY1tpXSkpOworICAgICAgICAJCWJyZWFrOworICAgICAgCQl9CisgICAgICAKKyAgICAgIAkJLy9yZXRyaWV2aW5nIHVuaWNvZGUgY2hhcmFjdGVyIGZyb20gMS4wIG5hbWUKKyAgICAgIAkJdWMgPSBVQ2hhcmFjdGVyLmdldENoYXJGcm9tTmFtZTFfMChvbGRuYW1lW2ldKTsKKyAgICAgIAkJaWYgKHVjICE9IGNbaV0gJiYgb2xkbmFtZVtpXS5sZW5ndGgoKSAhPSAwKQorICAgICAgCQl7CisgICAgICAgIAkJZXJybG4oIkZBSUwgIiArIG9sZG5hbWVbaV0gKyAiIGV4cGVjdGVkIDEuMCBjaGFyYWN0ZXIgXFx1IiArIAorICAgICAgICAJCSAgICAgIGhleChjW2ldKSk7CisgICAgICAgIAkJYnJlYWs7CisgICAgICAJCX0KKyAgICAgIAorICAgICAgCQkvL3JldHJpZXZpbmcgdW5pY29kZSBjaGFyYWN0ZXIgZnJvbSAxLjAgbmFtZQorICAgICAgCQl1YyA9IFVDaGFyYWN0ZXIuZ2V0Q2hhckZyb21FeHRlbmRlZE5hbWUoZXh0ZW5kZWRuYW1lW2ldKTsKKyAgICAgIAkJaWYgKHVjICE9IGNbaV0gJiYgaSAhPSAwICYmIChpID09IDEgfHwgaSA9PSA2KSkKKyAgICAgIAkJeworICAgICAgICAJCWVycmxuKCJGQUlMICIgKyBleHRlbmRlZG5hbWVbaV0gKyAKKyAgICAgICAgCQkgICAgICAiIGV4cGVjdGVkIGV4dGVuZGVkIGNoYXJhY3RlciBcXHUiICsgaGV4KGNbaV0pKTsKKyAgICAgICAgCQlicmVhazsKKyAgICAgIAkJfQorICAgIAl9CisgICAgCisgICAgCS8vIHRlc3QgZ2V0TmFtZSB3b3JrcyB3aXRoIG1peGVkLWNhc2UgbmFtZXMgKG5ldyBpbiAyLjApCisgICAgCWlmICgweDYxICE9IFVDaGFyYWN0ZXIuZ2V0Q2hhckZyb21OYW1lKCJMQVRpbiBzbUFMbCBsZXRURVIgQSIpKSB7IAorICAgICAgICAJZXJybG4oIkZBSUw6ICdMQVRpbiBzbUFMbCBsZXRURVIgQScgc2hvdWxkIHJlc3VsdCBpbiBjaGFyYWN0ZXIgIgorICAgICAgICAJICAgICAgKyAiVSswMDYxIik7IAorICAgIAl9IAorCSAgICAKKyAgICAgICAgaWYgKGdldEluY2x1c2lvbigpID49IDUpIHsKKyAgICAgICAgICAgIC8vIGV4dHJhIHRlc3RpbmcgZGlmZmVyZW50IGZyb20gaWN1CisgICAgICAgIAlmb3IgKGludCBpID0gVUNoYXJhY3Rlci5NSU5fVkFMVUU7IGkgPCBVQ2hhcmFjdGVyLk1BWF9WQUxVRTsgaSArKykKKyAgICAgICAgCXsKKyAgICAgICAgICAJCXN0ciA9IFVDaGFyYWN0ZXIuZ2V0TmFtZShpKTsKKyAgICAgICAgICAJCWlmIChzdHIgIT0gbnVsbCAmJiBVQ2hhcmFjdGVyLmdldENoYXJGcm9tTmFtZShzdHIpICE9IGkpCisgICAgICAgICAgCQl7CQorICAgICAgICAgICAgCQllcnJsbigiRkFJTCBcXHUiICsgaGV4KGkpICsgIiAiICsgc3RyICArIAorICAgICAgICAgICAgICAgICAgCQkJCQkJIiByZXRyaWV2YWwgb2YgbmFtZSBhbmQgdmljZSB2ZXJzYSIgKTsKKyAgICAgICAgICAgIAkJYnJlYWs7CisgICAgICAgICAgCQl9CisgICAgICAgIAl9CisgICAgICAgIH0KKyAgCX0KKyAgCisgIAkvKioKKyAgIAkqIFRlc3RpbmcgbmFtZSBpdGVyYXRpb24KKyAgIAkqLworICAJcHVibGljIHZvaWQgVGVzdE5hbWVJdGVyYXRpb24oKQorICAJeworICAJCVZhbHVlSXRlcmF0b3IgaXRlcmF0b3IgPSBVQ2hhcmFjdGVyLmdldEV4dGVuZGVkTmFtZUl0ZXJhdG9yKCk7CisgIAkJVmFsdWVJdGVyYXRvci5FbGVtZW50IGVsZW1lbnQgPSBuZXcgVmFsdWVJdGVyYXRvci5FbGVtZW50KCk7CisgICAJIAlWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQgb2xkICAgICA9IG5ldyBWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQoKTsKKyAgICAJLy8gdGVzdGluZyBzdWJyYW5nZQorICAgIAlpdGVyYXRvci5zZXRSYW5nZSgtMTAsIC01KTsKKyAgICAJaWYgKGl0ZXJhdG9yLm5leHQoZWxlbWVudCkpIHsKKyAgICAJCWVycmxuKCJGYWlsLCBleHBlY3RlZCBpdGVyYXRvciB0byByZXR1cm4gZmFsc2Ugd2hlbiByYW5nZSBpcyBzZXQgb3V0c2lkZSB0aGUgbWVhbmluZ2Z1bCByYW5nZSIpOworICAgIAl9CisgICAgCWl0ZXJhdG9yLnNldFJhbmdlKDB4MTEwMDAwLCAweDExMTExMSk7CisgICAgCWlmIChpdGVyYXRvci5uZXh0KGVsZW1lbnQpKSB7CisgICAgCQllcnJsbigiRmFpbCwgZXhwZWN0ZWQgaXRlcmF0b3IgdG8gcmV0dXJuIGZhbHNlIHdoZW4gcmFuZ2UgaXMgc2V0IG91dHNpZGUgdGhlIG1lYW5pbmdmdWwgcmFuZ2UiKTsKKyAgICAJfQorICAgIAl0cnkgeworICAgIAkJaXRlcmF0b3Iuc2V0UmFuZ2UoNTAsIDEwKTsKKyAgICAJCWVycmxuKCJGYWlsLCBleHBlY3RlZCBleGNlcHRpb24gd2hlbiBlbmNvdW50ZXJlZCBpbnZhbGlkIHJhbmdlIik7CisgICAgCX0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgCX0KKyAgICAJCQorICAgIAlpdGVyYXRvci5zZXRSYW5nZSgtMTAsIDEwKTsKKyAgICAJaWYgKCFpdGVyYXRvci5uZXh0KGVsZW1lbnQpIHx8IGVsZW1lbnQuaW50ZWdlciAhPSAwKSB7CisgICAgCQllcnJsbigiRmFpbCwgZXhwZWN0ZWQgaXRlcmF0b3IgdG8gcmV0dXJuIDAgd2hlbiByYW5nZSBzdGFydCBsaW1pdCBpcyBzZXQgb3V0c2lkZSB0aGUgbWVhbmluZ2Z1bCByYW5nZSIpOworICAgIAl9CisgICAgCQorICAgIAlpdGVyYXRvci5zZXRSYW5nZSgweDEwRkZGRSwgMHgyMDAwMDApOworICAgIAlpbnQgbGFzdCA9IDA7CisgICAgCXdoaWxlIChpdGVyYXRvci5uZXh0KGVsZW1lbnQpKSB7CisgICAgCQlsYXN0ID0gZWxlbWVudC5pbnRlZ2VyOworICAgIAl9CisgICAgCWlmIChsYXN0ICE9IDB4MTBGRkZGKSB7CisgICAgCQllcnJsbigiRmFpbCwgZXhwZWN0ZWQgaXRlcmF0b3IgdG8gcmV0dXJuIDB4MTBGRkZGIHdoZW4gcmFuZ2UgZW5kIGxpbWl0IGlzIHNldCBvdXRzaWRlIHRoZSBtZWFuaW5nZnVsIHJhbmdlIik7CisgICAgCX0KKyAgICAJCisgICAgCWl0ZXJhdG9yID0gVUNoYXJhY3Rlci5nZXROYW1lSXRlcmF0b3IoKTsJCisgCQlpdGVyYXRvci5zZXRSYW5nZSgweEYsIDB4NDUpOworIAkJd2hpbGUgKGl0ZXJhdG9yLm5leHQoZWxlbWVudCkpIHsKKyAgICAJCWlmIChlbGVtZW50LmludGVnZXIgPD0gb2xkLmludGVnZXIpIHsKKyAgICAgICAgIAkJZXJybG4oIkZBSUwgbmV4dCByZXR1cm5lZCBhIGxlc3MgY29kZXBvaW50IFxcdSIgKyAKKyAgICAgICAgIAkgICAgICAJSW50ZWdlci50b0hleFN0cmluZyhlbGVtZW50LmludGVnZXIpICsgIiB0aGFuIFxcdSIgKyAKKyAgICAgICAgIAkgICAgICAJSW50ZWdlci50b0hleFN0cmluZyhvbGQuaW50ZWdlcikpOworICAgICAgICAgCQlicmVhazsKKyAgICAgICAgCX0KKyAgICAgICAgCWlmICghVUNoYXJhY3Rlci5nZXROYW1lKGVsZW1lbnQuaW50ZWdlcikuZXF1YWxzKGVsZW1lbnQudmFsdWUpKSAKKyAgICAgICAgCXsKKyAgICAgICAgIAkJZXJybG4oIkZBSUwgbmV4dCBjb2RlcG9pbnQgXFx1IiArIAorICAgICAgICAgCSAgICAgIAlJbnRlZ2VyLnRvSGV4U3RyaW5nKGVsZW1lbnQuaW50ZWdlcikgKyAKKyAgICAgICAgIAkgICAgICAJIiBkb2VzIG5vdCBoYXZlIHRoZSBleHBlY3RlZCBuYW1lICIgKyAKKyAgICAgICAgIAkgICAgICAJVUNoYXJhY3Rlci5nZXROYW1lKGVsZW1lbnQuaW50ZWdlcikgKyAKKyAgICAgICAgIAkgICAgICAJIiBpbnN0ZWFkIGhhdmUgdGhlIG5hbWUgIiArIChTdHJpbmcpZWxlbWVudC52YWx1ZSk7CisgICAgICAgICAJCWJyZWFrOworICAgICAgICAJfQorICAgICAgICAJb2xkLmludGVnZXIgPSBlbGVtZW50LmludGVnZXI7IAorICAgIAl9CisgICAgCisgICAgCWl0ZXJhdG9yLnJlc2V0KCk7CisgICAgCWl0ZXJhdG9yLm5leHQoZWxlbWVudCk7CisgICAgCWlmIChlbGVtZW50LmludGVnZXIgIT0gMHgyMCkgeworICAgIAkJZXJybG4oIkZBSUwgcmVzZXQgaW4gaXRlcmF0b3IiKTsKKyAgICAJfQorIAorICAgIAlpdGVyYXRvci5zZXRSYW5nZSgwLCAweDExMDAwMCk7CisgICAgCW9sZC5pbnRlZ2VyID0gMDsgCisgICAgCXdoaWxlIChpdGVyYXRvci5uZXh0KGVsZW1lbnQpKSB7CisgICAgCQlpZiAoZWxlbWVudC5pbnRlZ2VyICE9IDAgJiYgZWxlbWVudC5pbnRlZ2VyIDw9IG9sZC5pbnRlZ2VyKSB7CisgICAgICAgICAJCWVycmxuKCJGQUlMIG5leHQgcmV0dXJuZWQgYSBsZXNzIGNvZGVwb2ludCBcXHUiICsgCisgICAgICAgICAJICAgICAgCUludGVnZXIudG9IZXhTdHJpbmcoZWxlbWVudC5pbnRlZ2VyKSArICIgdGhhbiBcXHUiICsgCisgICAgICAgICAJICAgICAgCUludGVnZXIudG9IZXhTdHJpbmcob2xkLmludGVnZXIpKTsKKyAgICAgICAgIAkJYnJlYWs7CisgICAgICAgIAl9CisgICAgICAgIAlpZiAoIVVDaGFyYWN0ZXIuZ2V0TmFtZShlbGVtZW50LmludGVnZXIpLmVxdWFscyhlbGVtZW50LnZhbHVlKSkgCisgICAgICAgIAl7CisgICAgICAgICAJCWVycmxuKCJGQUlMIG5leHQgY29kZXBvaW50IFxcdSIgKyAKKyAgICAgICAgIAkgICAgICAJCUludGVnZXIudG9IZXhTdHJpbmcoZWxlbWVudC5pbnRlZ2VyKSArIAorICAgICAgICAgCSAgICAgIAkJIiBkb2VzIG5vdCBoYXZlIHRoZSBleHBlY3RlZCBuYW1lICIgKyAKKyAgICAgICAgIAkgICAgICAJCVVDaGFyYWN0ZXIuZ2V0TmFtZShlbGVtZW50LmludGVnZXIpICsgCisgICAgICAgICAJICAgICAgCQkiIGluc3RlYWQgaGF2ZSB0aGUgbmFtZSAiICsgKFN0cmluZyllbGVtZW50LnZhbHVlKTsKKyAgICAgICAgIAkJYnJlYWs7CisgICAgICAgIAl9CisgICAgICAgIAlmb3IgKGludCBpID0gb2xkLmludGVnZXIgKyAxOyBpIDwgZWxlbWVudC5pbnRlZ2VyOyBpICsrKSB7CisgICAgICAgIAkJaWYgKFVDaGFyYWN0ZXIuZ2V0TmFtZShpKSAhPSBudWxsKSB7CisgICAgICAgICAJCQllcnJsbigiRkFJTCBiZXR3ZWVuIGNvZGVwb2ludHMgYXJlIG5vdCBudWxsIFxcdSIgKyAKKyAgICAgICAgIAkgICAgICAJCQlJbnRlZ2VyLnRvSGV4U3RyaW5nKG9sZC5pbnRlZ2VyKSArICIgYW5kICIgKyAKKyAgICAgICAgIAkgICAgICAJCQlJbnRlZ2VyLnRvSGV4U3RyaW5nKGVsZW1lbnQuaW50ZWdlcikgKyAiIGhhcyAiICsgCisgICAgICAgICAJICAgICAgCQkJSW50ZWdlci50b0hleFN0cmluZyhpKSArICIgd2l0aCBhIG5hbWUgIiArIAorICAgICAgICAgCSAgICAgIAkJCVVDaGFyYWN0ZXIuZ2V0TmFtZShpKSk7CisgICAgICAgICAJCQlicmVhazsKKyAgICAgICAgCQl9CisgICAgICAgIAl9CisgICAgICAgIAlvbGQuaW50ZWdlciA9IGVsZW1lbnQuaW50ZWdlcjsgCisgICAgCX0KKyAgICAKKyAgICAJaXRlcmF0b3IgPSBVQ2hhcmFjdGVyLmdldEV4dGVuZGVkTmFtZUl0ZXJhdG9yKCk7CisgICAgCW9sZC5pbnRlZ2VyID0gMDsKKyAgICAJd2hpbGUgKGl0ZXJhdG9yLm5leHQoZWxlbWVudCkpIHsKKyAgICAJCWlmIChlbGVtZW50LmludGVnZXIgIT0gMCAmJiBlbGVtZW50LmludGVnZXIgIT0gb2xkLmludGVnZXIpIHsKKyAgICAgICAgIAkJZXJybG4oIkZBSUwgbmV4dCByZXR1cm5lZCBhIGNvZGVwb2ludCBcXHUiICsgCisgICAgICAgICAJICAgICAgCQlJbnRlZ2VyLnRvSGV4U3RyaW5nKGVsZW1lbnQuaW50ZWdlcikgKyAKKyAgICAgICAgIAkgICAgICAJCSIgZGlmZmVyZW50IGZyb20gXFx1IiArIAorICAgICAgICAgCSAgICAgIAkJSW50ZWdlci50b0hleFN0cmluZyhvbGQuaW50ZWdlcikpOworICAgICAgICAgCQlicmVhazsKKyAgICAgICAgCX0KKyAgICAgICAgCWlmICghVUNoYXJhY3Rlci5nZXRFeHRlbmRlZE5hbWUoZWxlbWVudC5pbnRlZ2VyKS5lcXVhbHMoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSkpIHsKKyAgICAgICAgIAkJZXJybG4oIkZBSUwgbmV4dCBjb2RlcG9pbnQgXFx1IiArIAorICAgICAgICAgCSAgICAgIAlJbnRlZ2VyLnRvSGV4U3RyaW5nKGVsZW1lbnQuaW50ZWdlcikgKyAKKyAgICAgICAgIAkgICAgICAJIiBuYW1lIHNob3VsZCBiZSAiCisgICAgICAgICAJICAgICAgCSsgVUNoYXJhY3Rlci5nZXRFeHRlbmRlZE5hbWUoZWxlbWVudC5pbnRlZ2VyKSArIAorICAgICAgICAgCSAgICAgIAkiIGluc3RlYWQgb2YgIiArIChTdHJpbmcpZWxlbWVudC52YWx1ZSk7CisgICAgICAgICAJCWJyZWFrOworICAgICAgICAJfQorICAgICAgICAJb2xkLmludGVnZXIrKzsgCisgICAgCX0KKwkJaXRlcmF0b3IgPSBVQ2hhcmFjdGVyLmdldE5hbWUxXzBJdGVyYXRvcigpOworIAkgICAJb2xkLmludGVnZXIgPSAwOworICAgIAl3aGlsZSAoaXRlcmF0b3IubmV4dChlbGVtZW50KSkgeworICAgIAkJbG9nbG4oSW50ZWdlci50b0hleFN0cmluZyhlbGVtZW50LmludGVnZXIpICsgIiAiICsKKwkgICAgICAJCQkJCQkJCQkJCShTdHJpbmcpZWxlbWVudC52YWx1ZSk7CisgICAgCQlpZiAoZWxlbWVudC5pbnRlZ2VyICE9IDAgJiYgZWxlbWVudC5pbnRlZ2VyIDw9IG9sZC5pbnRlZ2VyKSB7CisgICAgICAgICAJCWVycmxuKCJGQUlMIG5leHQgcmV0dXJuZWQgYSBsZXNzIGNvZGVwb2ludCBcXHUiICsgCisgICAgICAgICAJICAgICAgCUludGVnZXIudG9IZXhTdHJpbmcoZWxlbWVudC5pbnRlZ2VyKSArICIgdGhhbiBcXHUiICsgCisgICAgICAgICAJICAgICAgCUludGVnZXIudG9IZXhTdHJpbmcob2xkLmludGVnZXIpKTsKKyAgICAgICAgIAkJYnJlYWs7CisgICAgICAgIAl9CisgICAgICAgIAlpZiAoIWVsZW1lbnQudmFsdWUuZXF1YWxzKFVDaGFyYWN0ZXIuZ2V0TmFtZTFfMCgKKyAgICAgICAgCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbnRlZ2VyKSkpIHsKKyAgICAgICAgIAkJZXJybG4oIkZBSUwgbmV4dCBjb2RlcG9pbnQgXFx1IiArIAorICAgICAgICAgCSAgICAgIAkJSW50ZWdlci50b0hleFN0cmluZyhlbGVtZW50LmludGVnZXIpICsgCisgICAgICAgICAJICAgICAgCQkiIG5hbWUgY2Fubm90IGJlIG51bGwiKTsKKyAgICAgICAgIAkJYnJlYWs7CisgICAgICAgIAl9CisgICAgICAgIAlmb3IgKGludCBpID0gb2xkLmludGVnZXIgKyAxOyBpIDwgZWxlbWVudC5pbnRlZ2VyOyBpICsrKSB7CisgICAgICAgIAkJaWYgKFVDaGFyYWN0ZXIuZ2V0TmFtZTFfMChpKSAhPSBudWxsKSB7CisgICAgICAgICAJCQllcnJsbigiRkFJTCBiZXR3ZWVuIGNvZGVwb2ludHMgYXJlIG5vdCBudWxsIFxcdSIgKyAKKyAgICAgICAgIAkgICAgICAJCUludGVnZXIudG9IZXhTdHJpbmcob2xkLmludGVnZXIpICsgIiBhbmQgIiArIAorICAgICAgICAgCSAgICAgIAkJSW50ZWdlci50b0hleFN0cmluZyhlbGVtZW50LmludGVnZXIpICsgIiBoYXMgIiArIAorICAgICAgICAgCSAgICAgIAkJSW50ZWdlci50b0hleFN0cmluZyhpKSArICIgd2l0aCBhIG5hbWUgIiArIAorICAgICAgICAgCSAgICAgIAkJVUNoYXJhY3Rlci5nZXROYW1lMV8wKGkpKTsKKyAgICAgICAgIAkJCWJyZWFrOworICAgICAgICAJCX0KKyAgICAgICAgCX0KKyAgICAgICAgCW9sZC5pbnRlZ2VyID0gZWxlbWVudC5pbnRlZ2VyOyAKKyAgICAJfQorICAJfQorICAKKyAgCS8qKgorICAJKiBUZXN0aW5nIHRoZSBmb3IgaWxsZWdhbCBjaGFyYWN0ZXJzCisgIAkqLworICAJcHVibGljIHZvaWQgVGVzdElzTGVnYWwoKSAKKyAgCXsKKyAgICAJaW50IGlsbGVnYWxbXSA9IHsweEZGRkUsIDB4MDBGRkZGLCAweDAwNUZGRkUsIDB4MDA1RkZGRiwgMHgwMDEwRkZGRSwKKyAgICAJCSAgICAgICAgICAgICAweDAwMTBGRkZGLCAweDExMDAwMCwgMHgwMEZERDAsIDB4MDBGRERGLCAweDAwRkRFMCwKKyAgICAJCSAgICAgICAgICAgICAweDAwRkRFRiwgMHhEODAwLCAweERDMDAsIC0xfTsKKyAgICAJaW50IGxlZ2FsW10gPSB7MHg2MSwgMHgwMEZGRkQsIDB4MDAxMDAwMCwgMHgwMDVGRkZELCAweDAwNjAwMDAsIAorICAgIAkJICAgICAgICAgICAweDAwMTBGRkZELCAweEZEQ0YsIDB4MDBGREYwfTsKKyAgICAJZm9yIChpbnQgY291bnQgPSAwOyBjb3VudCA8IGlsbGVnYWwubGVuZ3RoOyBjb3VudCArKykgeworICAgICAgICAJaWYgKFVDaGFyYWN0ZXIuaXNMZWdhbChpbGxlZ2FsW2NvdW50XSkpIHsKKyAgICAgICAgICAgIAllcnJsbigiRkFJTCBcXHUiICsgaGV4KGlsbGVnYWxbY291bnRdKSArIAorICAgICAgICAgICAgICAgICAgICAJIiBpcyBub3QgYSBsZWdhbCBjaGFyYWN0ZXIiKTsKKyAgICAgICAgCX0KKyAgICAJfQorICAgIAorICAgIAlmb3IgKGludCBjb3VudCA9IDA7IGNvdW50IDwgbGVnYWwubGVuZ3RoOyBjb3VudCArKykgeworICAgICAgICAJaWYgKCFVQ2hhcmFjdGVyLmlzTGVnYWwobGVnYWxbY291bnRdKSkgeworICAgICAgICAgICAgCWVycmxuKCJGQUlMIFxcdSIgKyBoZXgobGVnYWxbY291bnRdKSArIAorICAgICAgICAgICAgCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBpcyBhIGxlZ2FsIGNoYXJhY3RlciIpOworICAgICAgICAJfQorICAgIAl9CisgICAgCQorICAgIAlTdHJpbmcgaWxsZWdhbFN0ciA9ICJUaGlzIGlzIGFuIGlsbGVnYWwgc3RyaW5nICI7CisgICAgCVN0cmluZyBsZWdhbFN0ciA9ICJUaGlzIGlzIGEgbGVnYWwgc3RyaW5nICI7CisgICAgCQorICAgIAlmb3IgKGludCBjb3VudCA9IDA7IGNvdW50IDwgaWxsZWdhbC5sZW5ndGg7IGNvdW50ICsrKSB7CisgICAgCQlTdHJpbmdCdWZmZXIgc3RyID0gbmV3IFN0cmluZ0J1ZmZlcihpbGxlZ2FsU3RyKTsKKyAgICAJCWlmIChpbGxlZ2FsW2NvdW50XSA8IDB4MTAwMDApIHsKKyAgICAJCQlzdHIuYXBwZW5kKChjaGFyKWlsbGVnYWxbY291bnRdKTsKKyAgICAJCX0KKyAgICAJCWVsc2UgeworICAgIAkJCWNoYXIgbGVhZCA9IFVURjE2LmdldExlYWRTdXJyb2dhdGUoaWxsZWdhbFtjb3VudF0pOworICAgIAkJCWNoYXIgdHJhaWwgPSBVVEYxNi5nZXRUcmFpbFN1cnJvZ2F0ZShpbGxlZ2FsW2NvdW50XSk7CisgICAgCQkJc3RyLmFwcGVuZChsZWFkKTsKKyAgICAJCQlzdHIuYXBwZW5kKHRyYWlsKTsKKyAgICAJCX0KKyAgICAgICAgCWlmIChVQ2hhcmFjdGVyLmlzTGVnYWwoc3RyLnRvU3RyaW5nKCkpKSB7CisgICAgICAgICAgICAJZXJybG4oIkZBSUwgIiArIGhleChzdHIudG9TdHJpbmcoKSkgKyAKKyAgICAgICAgICAgIAkgICAgICAiIGlzIG5vdCBhIGxlZ2FsIHN0cmluZyIpOworICAgICAgICAJfQorICAgIAl9CisgICAgCisgICAgCWZvciAoaW50IGNvdW50ID0gMDsgY291bnQgPCBsZWdhbC5sZW5ndGg7IGNvdW50ICsrKSB7CisgICAgCQlTdHJpbmdCdWZmZXIgc3RyID0gbmV3IFN0cmluZ0J1ZmZlcihsZWdhbFN0cik7CisgICAgCQlpZiAobGVnYWxbY291bnRdIDwgMHgxMDAwMCkgeworICAgIAkJCXN0ci5hcHBlbmQoKGNoYXIpbGVnYWxbY291bnRdKTsKKyAgICAJCX0KKyAgICAJCWVsc2UgeworICAgIAkJCWNoYXIgbGVhZCA9IFVURjE2LmdldExlYWRTdXJyb2dhdGUobGVnYWxbY291bnRdKTsKKyAgICAJCQljaGFyIHRyYWlsID0gVVRGMTYuZ2V0VHJhaWxTdXJyb2dhdGUobGVnYWxbY291bnRdKTsKKyAgICAJCQlzdHIuYXBwZW5kKGxlYWQpOworICAgIAkJCXN0ci5hcHBlbmQodHJhaWwpOworICAgIAkJfQorICAgICAgICAJaWYgKCFVQ2hhcmFjdGVyLmlzTGVnYWwoc3RyLnRvU3RyaW5nKCkpKSB7CisgICAgICAgICAgICAJZXJybG4oIkZBSUwgIiArIGhleChzdHIudG9TdHJpbmcoKSkgKyAiIGlzIGEgbGVnYWwgc3RyaW5nIik7CisgICAgICAgIAl9CisgICAgCX0KKyAgCX0KKyAgCisgIAkvKioKKyAgCSAqIFRlc3QgZ2V0Q29kZVBvaW50CisgIAkgKi8KKyAgCXB1YmxpYyB2b2lkIFRlc3RDb2RlUG9pbnQoKQorICAJeworICAJCWludCBjaCA9IDB4MTAwMDA7CisgIAkJZm9yIChjaGFyIGkgPSAweEQ4MDA7IGkgPCAweERDMDA7IGkgKyspIHsKKyAgCQkJZm9yIChjaGFyIGogPSAweERDMDA7IGogPD0gMHhERkZGOyBqICsrKSB7CisgIAkJCQlpZiAoVUNoYXJhY3Rlci5nZXRDb2RlUG9pbnQoaSwgaikgIT0gY2gpIHsKKyAgCQkJCQllcnJsbigiRXJyb3IgZ2V0dGluZyBjb2RlcG9pbnQgZm9yIHN1cnJvZ2F0ZSAiICsKKyAgCQkJCQkgICAgICAiY2hhcmFjdGVycyBcXHUiCisgIAkJCQkJICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGkpICsgIiBcXHUiICsgCisgIAkJCQkJICAgICAgSW50ZWdlci50b0hleFN0cmluZyhqKSk7CSAgICAgIAorICAJCQkJfQorICAJCQkJY2ggKys7CisgIAkJCX0KKyAgCQl9CisgIAkJdHJ5IAorICAJCXsKKyAgCQkJVUNoYXJhY3Rlci5nZXRDb2RlUG9pbnQoKGNoYXIpMHhEN2ZmLCAoY2hhcikweERDMDApOworICAJCQllcnJsbigiSW52YWxpZCBzdXJyb2dhdGUgY2hhcmFjdGVycyBzaG91bGQgbm90IGZvcm0gYSAiICsKKyAgCQkJICAgICAgInN1cHBsZW1lbnRhcnkiKTsKKyAgCQl9IGNhdGNoKEV4Y2VwdGlvbiBlKSB7CisgIAkJfQorICAJCWZvciAoY2hhciBpID0gMDsgaSA8IDB4RkZGRjsgaSsrKSB7CisgIAkJCWlmIChpID09IDB4RkZGRSB8fCAKKyAgCQkJICAgIChpID49IDB4RDgwMCAmJiBpIDw9IDB4REZGRikgfHwgCisgIAkJCSAgICAoaSA+PSAweEZERDAgJiYgaSA8PSAweEZERUYpKSB7CisgIAkJCSAgICAvLyBub3QgYSBjaGFyYWN0ZXIKKyAgCQkJCXRyeSB7CisgIAkJCQkJVUNoYXJhY3Rlci5nZXRDb2RlUG9pbnQoaSk7CisgIAkJCQkJZXJybG4oIk5vdCBhIGNoYXJhY3RlciBpcyBub3QgYSB2YWxpZCBjb2RlcG9pbnQiKTsKKyAgCQkJCX0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgIAkJCQl9CisgIAkJCX0KKyAgCQkJZWxzZSB7CisgIAkJCQlpZiAoVUNoYXJhY3Rlci5nZXRDb2RlUG9pbnQoaSkgIT0gaSkgeworICAJCQkJCWVycmxuKCJBIHZhbGlkIGNvZGVwb2ludCBzaG91bGQgcmV0dXJuIGl0c2VsZiIpOworICAJCQkJfQorICAJCQl9CisgIAkJfQorICAJfQorICAJCisgIAkvKioKKyAgCSogVGhpcyBtZXRob2QgaXMgYWxpdHRsZSBkaWZmZXJlbnQgZnJvbSB0aGUgdHlwZSB0ZXN0IGluIGljdTRjLgorICAJKiBCdXQgY29tYmluZWQgd2l0aCB0ZXN0VW5pY29kZURhdGEsIHRoZXkgYmFzaWNhbGx5IGRvIHRoZSBzYW1lIHRoaW5nLgorICAJKi8KKyAgCXB1YmxpYyB2b2lkIFRlc3RJdGVyYXRpb24oKSAKKyAgCXsKKyAgICAgIAlpbnQgbGltaXQgICAgID0gMDsKKyAgICAgIAlpbnQgcHJldnR5cGUgID0gLTE7CisgICAgICAgIGludCB0ZXN0W11bXT17ezB4NDEsIFVDaGFyYWN0ZXJDYXRlZ29yeS5VUFBFUkNBU0VfTEVUVEVSfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsweDMwOCwgVUNoYXJhY3RlckNhdGVnb3J5Lk5PTl9TUEFDSU5HX01BUkt9LAorICAgICAgICAgICAgICAgICAgICAgICAgezB4ZmZmZSwgVUNoYXJhY3RlckNhdGVnb3J5LkdFTkVSQUxfT1RIRVJfVFlQRVN9LAorICAgICAgICAgICAgICAgICAgICAgICAgezB4ZTAwNDEsIFVDaGFyYWN0ZXJDYXRlZ29yeS5GT1JNQVR9LAorICAgICAgICAgICAgICAgICAgICAgICAgezB4ZWZmZmYsIFVDaGFyYWN0ZXJDYXRlZ29yeS5VTkFTU0lHTkVEfX07CisKKyAgICAgICAgLy8gZGVmYXVsdCBCaWRpIGNsYXNzZXMgZm9yIHVuYXNzaWduZWQgY29kZSBwb2ludHMgCisgICAgICAgIGludCBkZWZhdWx0QmlkaVtdW109e3sgMHgwNTkwLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLkxFRlRfVE9fUklHSFQgfSwKKyAgICAgICAgICAgIHsgMHgwNjAwLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlQgfSwKKyAgICAgICAgICAgIHsgMHgwN0MwLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlRfQVJBQklDIH0sCisgICAgICAgICAgICB7IDB4RkIxRCwgVUNoYXJhY3RlckRpcmVjdGlvbi5MRUZUX1RPX1JJR0hUIH0sCisgICAgICAgICAgICB7IDB4RkI1MCwgVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUIH0sCisgICAgICAgICAgICB7IDB4RkUwMCwgVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUX0FSQUJJQyB9LAorICAgICAgICAgICAgeyAweEZFNzAsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uTEVGVF9UT19SSUdIVCB9LAorICAgICAgICAgICAgeyAweEZGMDAsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVF9BUkFCSUMgfSwKKyAgICAgICAgICAgIHsgMHgxMTAwMDAsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uTEVGVF9UT19SSUdIVCB9fTsKKyAgICAKKyAgICAgIAlSYW5nZVZhbHVlSXRlcmF0b3IgaXRlcmF0b3IgPSBVQ2hhcmFjdGVyLmdldFR5cGVJdGVyYXRvcigpOworICAgICAgCVJhbmdlVmFsdWVJdGVyYXRvci5FbGVtZW50IHJlc3VsdCA9IG5ldyBSYW5nZVZhbHVlSXRlcmF0b3IuRWxlbWVudCgpOworICAgICAgCXdoaWxlIChpdGVyYXRvci5uZXh0KHJlc3VsdCkpIHsKKyAgICAgICAgICAJaWYgKHJlc3VsdC5zdGFydCAhPSBsaW1pdCkgeworICAgICAgICAgICAgICAJZXJybG4oIlVDaGFyYWN0ZXJJdGVyYXRpb24gZmFpbGVkOiBSYW5nZXMgbm90IGNvbnRpbnVvdXMgIiArIAorICAgICAgICAgICAgICAgICAgICAJIjB4IiArIEludGVnZXIudG9IZXhTdHJpbmcocmVzdWx0LnN0YXJ0KSk7CisgICAgICAgICAgCX0KKyAgICAgICAgICAKKyAgICAgICAgICAJbGltaXQgPSByZXN1bHQubGltaXQ7CisgICAgICAgICAgCWlmIChyZXN1bHQudmFsdWUgPT0gcHJldnR5cGUpIHsKKyAgICAgICAgICAgICAgCWVycmxuKCJUeXBlIG9mIHRoZSBuZXh0IHNldCBvZiBlbnVtZXJhdGlvbiBzaG91bGQgYmUgZGlmZmVyZW50Iik7CisgICAgICAgICAgCX0KKyAgICAgICAgICAJcHJldnR5cGUgPSByZXN1bHQudmFsdWU7CisgICAgICAgICAgCisJCSAgCWZvciAoaW50IGkgPSByZXN1bHQuc3RhcnQ7IGkgPCBsaW1pdDsgaSArKykgeworICAgICAgICAgICAgICAJaW50IHRlbXB0eXBlID0gVUNoYXJhY3Rlci5nZXRUeXBlKGkpOworICAgICAgICAgICAgICAJaWYgKHRlbXB0eXBlICE9IHJlc3VsdC52YWx1ZSkgeworICAgICAgICAgICAgICAgICAgCWVycmxuKCJVQ2hhcmFjdGVySXRlcmF0aW9uIGZhaWxlZDogQ29kZXBvaW50IFxcdSIgKyAKKyAgICAgICAgICAgICAgICAgICAgICAgIAlJbnRlZ2VyLnRvSGV4U3RyaW5nKGkpICsgIiBzaG91bGQgYmUgb2YgdHlwZSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIAl0ZW1wdHlwZSArICIgbm90ICIgKyByZXN1bHQudmFsdWUpOworICAgICAgICAgICAgICAJfQorICAgICAgICAgIAl9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdC5sZW5ndGg7ICsrIGkpIHsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0LnN0YXJ0IDw9IHRlc3RbaV1bMF0gJiYgdGVzdFtpXVswXSA8IHJlc3VsdC5saW1pdCkgeworICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LnZhbHVlICE9IHRlc3RbaV1bMV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogZ2V0VHlwZXMoKSBoYXMgcmFuZ2UgWyIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcocmVzdWx0LnN0YXJ0KSArICIsICIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcocmVzdWx0LmxpbWl0KSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIl0gd2l0aCB0eXBlICIgKyByZXN1bHQudmFsdWUgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgaW5zdGVhZCBvZiBbIiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyh0ZXN0W2ldWzBdKSArICIsICIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcodGVzdFtpXVsxXSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIC8vIExpbmVCcmVhay50eHQgc3BlY2lmaWVzOgorICAgICAgICAgICAgLy8gICAjICAtIEFzc2lnbmVkIGNoYXJhY3RlcnMgdGhhdCBhcmUgbm90IGxpc3RlZCBleHBsaWNpdGx5IGFyZSBnaXZlbiB0aGUgdmFsdWUKKyAgICAgICAgICAgIC8vICAgIyAgICAiQUwiLgorICAgICAgICAgICAgLy8gICAjICAtIFVuYXNzaWduZWQgY2hhcmFjdGVycyBhcmUgZ2l2ZW4gdGhlIHZhbHVlICJYWCIuCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gUFVBIGNoYXJhY3RlcnMgYXJlIGxpc3RlZCBleHBsaWNpdGx5IHdpdGggIlhYIi4KKyAgICAgICAgICAgIC8vIFZlcmlmeSB0aGF0IG5vIGFzc2lnbmVkIGNoYXJhY3RlciBoYXMgIlhYIi4KKyAgICAgICAgICAgIC8qIHN5bndlZSB0aGlzIGlzIG5vdCBwb3J0ZWQgdG8gamF2YSB5ZXQKKyAgICAgICAgICAgICAqIGlmIChyZXN1bHQudmFsdWUgIT0gVUNoYXJhY3RlckNhdGVnb3J5LlVOQVNTSUdORUQgCisgICAgICAgICAgICAgICAgJiYgcmVzdWx0LnZhbHVlICE9IFVDaGFyYWN0ZXJDYXRlZ29yeS5QUklWQVRFX1VTRSkgeworICAgICAgICAgICAgICAgIGludCBjID0gcmVzdWx0LnN0YXJ0OworICAgICAgICAgICAgICAgIHdoaWxlIChjIDwgcmVzdWx0LmxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgwID09IHVfZ2V0SW50UHJvcGVydHlWYWx1ZShjLCBVQ0hBUl9MSU5FX0JSRUFLKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbG9nX2VycigiZXJyb3IgVUNIQVJfTElORV9CUkVBSyhhc3NpZ25lZCBVKyUwNGx4KT1YWFxuIiwgYyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgKytjOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICovCisgICAgICAgIAorICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIFZlcmlmeSBkZWZhdWx0IEJpZGkgY2xhc3Nlcy4KKyAgICAgICAgICAgICAqIFNlZSB0YWJsZSAzLTcgIkJpZGlyZWN0aW9uYWwgQ2hhcmFjdGVyIFR5cGVzIiBpbiBVQVggIzkuCisgICAgICAgICAgICAgKiBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9ydHMvdHI5LworICAgICAgICAgICAgICovCisgICAgICAgICAgICBpZiAocmVzdWx0LnZhbHVlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5VTkFTU0lHTkVEIAorICAgICAgICAgICAgICAgIHx8IHJlc3VsdC52YWx1ZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuUFJJVkFURV9VU0UpIHsKKyAgICAgICAgICAgICAgICBpbnQgYyA9IHJlc3VsdC5zdGFydDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRlZmF1bHRCaWRpLmxlbmd0aCAmJiBjIDwgcmVzdWx0LmxpbWl0OyAKKyAgICAgICAgICAgICAgICAgICAgICsrIGkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGMgPCBkZWZhdWx0QmlkaVtpXVswXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGMgPCByZXN1bHQubGltaXQgJiYgYyA8IGRlZmF1bHRCaWRpW2ldWzBdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZ2V0RGlyZWN0aW9uKGMpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBkZWZhdWx0QmlkaVtpXVsxXSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogc3lud2VlIHRoaXMgaXMgbm90IHBvcnRlZCB5ZXQgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdV9nZXRJbnRQcm9wZXJ0eVZhbHVlKGMsIFVDSEFSX0JJRElfQ0xBU1MpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBkZWZhdWx0QmlkaVtpXVsxXSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3I6IGdldERpcmVjdGlvbih1bmFzc2lnbmVkL1BVQSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyhjKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiKSBzaG91bGQgYmUgIiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBkZWZhdWx0QmlkaVtpXVsxXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrIGM7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAJfQorICAgICAgCisgICAgICAJaXRlcmF0b3IucmVzZXQoKTsKKyAgICAgIAlpZiAoaXRlcmF0b3IubmV4dChyZXN1bHQpID09IGZhbHNlIHx8IHJlc3VsdC5zdGFydCAhPSAwKSB7CisgICAgICAgICAgCVN5c3RlbS5vdXQucHJpbnRsbigicmVzdWx0ICIgKyByZXN1bHQuc3RhcnQpOworICAgICAgICAgIAllcnJsbigiVUNoYXJhY3Rlckl0ZXJhdGlvbiByZXNldCgpIGZhaWxlZCIpOworICAgICAgCX0KKyAgCX0KKyAgCisgIAkvKioKKyAgCSAqIFRlc3RpbmcgZ2V0QWdlCisgICAJICovCisgIAlwdWJsaWMgdm9pZCBUZXN0R2V0QWdlKCkgCisgIAl7CisgIAkJaW50IGFnZXNbXSA9IHsweDQxLCAgICAxLCAxLCAwLCAwLAorCQkJCQkgIDB4ZmZmZiwgIDEsIDEsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgMHgyMGFiLCAgMiwgMCwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAweDJmZmZlLCAyLCAwLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgIDB4MjBhYywgIDIsIDEsIDAsIDAsCisgICAgICAgIAkJCSAgMHhmYjFkLCAgMywgMCwgMCwgMCwKKyAgICAgICAgCQkJICAweDNmNCwgICAzLCAxLCAwLCAwLAorICAgICAgICAJCQkgIDB4MTAzMDAsIDMsIDEsIDAsIDAsCisgICAgICAgIAkJCSAgMHgyMjAsICAgMywgMiwgMCwgMCwKKyAgICAgICAgCQkJICAweGZmNjAsICAzLCAyLCAwLCAwfTsKKyAgCQlmb3IgKGludCBpID0gMDsgaSA8IGFnZXMubGVuZ3RoOyBpICs9IDUpIHsKKyAgCQkJVmVyc2lvbkluZm8gYWdlID0gVUNoYXJhY3Rlci5nZXRBZ2UoYWdlc1tpXSk7CisgICAgICAgIAlpZiAoYWdlICE9IFZlcnNpb25JbmZvLmdldEluc3RhbmNlKGFnZXNbaSArIDFdLCBhZ2VzW2kgKyAyXSwKKyAgICAgICAgCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWdlc1tpICsgM10sIGFnZXNbaSArIDRdKSkgeworICAgICAgICAgICAgCWVycmxuKCJlcnJvcjogZ2V0QWdlKFxcdSIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGFnZXNbaV0pICsKKyAgICAgICAgICAgIAkgICAgICAiKSA9PSAiICsgYWdlLnRvU3RyaW5nKCkgKyAiIGluc3RlYWQgb2YgIiArIAorCQkJCQkgIGFnZXNbaSArIDFdICsgIi4iICsgYWdlc1tpICsgMl0gKyAiLiIgKyBhZ2VzW2kgKyAzXSArIAorCQkJCQkgICIuIiArIGFnZXNbaSArIDRdKTsKKyAgICAgICAgCX0KKyAgICAgICAgfQorCX0KKyAgCisgIAkvKioKKyAgCSAqIFRlc3QgYmluYXJ5IG5vbiBjb3JlIHByb3BlcnRpZXMKKyAgCSAqLworICAJcHVibGljIHZvaWQgVGVzdEFkZGl0aW9uYWxQcm9wZXJ0aWVzKCkgCisgIAl7CisgICAgCS8vIHRlc3QgZGF0YSBmb3IgaGFzQmluYXJ5UHJvcGVydHkoKQorICAgIAlpbnQgcHJvcHNbXVtdID0geyAvLyBjb2RlIHBvaW50LCBwcm9wZXJ0eQorCSAgICAgICAgeyAweDA2MjcsIFVQcm9wZXJ0eS5BTFBIQUJFVElDIH0sCisJICAgICAgICB7IDB4MTAzNGEsIFVQcm9wZXJ0eS5BTFBIQUJFVElDIH0sCisJICAgICAgICB7IDB4MjAyOCwgVVByb3BlcnR5LkFMUEhBQkVUSUMgfSwKKwkKKwkgICAgICAgIHsgMHgwMDY2LCBVUHJvcGVydHkuQVNDSUlfSEVYX0RJR0lUIH0sCisJICAgICAgICB7IDB4MDA2NywgVVByb3BlcnR5LkFTQ0lJX0hFWF9ESUdJVCB9LAorCQorCSAgICAgICAgeyAweDIwMmMsIFVQcm9wZXJ0eS5CSURJX0NPTlRST0wgfSwKKwkgICAgICAgIHsgMHgyMDJmLCBVUHJvcGVydHkuQklESV9DT05UUk9MIH0sCisJCisJICAgICAgICB7IDB4MDAzYywgVVByb3BlcnR5LkJJRElfTUlSUk9SRUQgfSwKKwkgICAgICAgIHsgMHgwMDNkLCBVUHJvcGVydHkuQklESV9NSVJST1JFRCB9LAorCQorCSAgICAgICAgeyAweDA1OGEsIFVQcm9wZXJ0eS5EQVNIIH0sCisJICAgICAgICB7IDB4MDA3ZSwgVVByb3BlcnR5LkRBU0ggfSwKKwkKKwkgICAgICAgIHsgMHgwYzRkLCBVUHJvcGVydHkuRElBQ1JJVElDIH0sCisJICAgICAgICB7IDB4MzAwMCwgVVByb3BlcnR5LkRJQUNSSVRJQyB9LAorCQorCSAgICAgICAgeyAweDBlNDYsIFVQcm9wZXJ0eS5FWFRFTkRFUiB9LAorCSAgICAgICAgeyAweDAwMjAsIFVQcm9wZXJ0eS5FWFRFTkRFUiB9LAorCQorCSAgICAgICAgeyAweGZiMWQsIFVQcm9wZXJ0eS5GVUxMX0NPTVBPU0lUSU9OX0VYQ0xVU0lPTiB9LAorCSAgICAgICAgeyAweDFkMTVmLCBVUHJvcGVydHkuRlVMTF9DT01QT1NJVElPTl9FWENMVVNJT04gfSwKKwkgICAgICAgIHsgMHhmYjFlLCBVUHJvcGVydHkuRlVMTF9DT01QT1NJVElPTl9FWENMVVNJT04gfSwKKwkKKwkgICAgICAgIHsgMHgwMDQ0LCBVUHJvcGVydHkuSEVYX0RJR0lUIH0sCisJICAgICAgICB7IDB4ZmY0NiwgVVByb3BlcnR5LkhFWF9ESUdJVCB9LAorCSAgICAgICAgeyAweDAwNDcsIFVQcm9wZXJ0eS5IRVhfRElHSVQgfSwKKwkKKwkgICAgICAgIHsgMHgzMGZiLCBVUHJvcGVydHkuSFlQSEVOIH0sCisJICAgICAgICB7IDB4ZmU1OCwgVVByb3BlcnR5LkhZUEhFTiB9LAorCQorCSAgICAgICAgeyAweDIxNzIsIFVQcm9wZXJ0eS5JRF9DT05USU5VRSB9LAorCSAgICAgICAgeyAweDAzMDcsIFVQcm9wZXJ0eS5JRF9DT05USU5VRSB9LAorCSAgICAgICAgeyAweDAwNWMsIFVQcm9wZXJ0eS5JRF9DT05USU5VRSB9LAorCQorCSAgICAgICAgeyAweDIxNzIsIFVQcm9wZXJ0eS5JRF9TVEFSVCB9LAorCSAgICAgICAgeyAweDAwN2EsIFVQcm9wZXJ0eS5JRF9TVEFSVCB9LAorCSAgICAgICAgeyAweDAwMzksIFVQcm9wZXJ0eS5JRF9TVEFSVCB9LAorCQorCSAgICAgICAgeyAweDRkYjUsIFVQcm9wZXJ0eS5JREVPR1JBUEhJQyB9LAorCSAgICAgICAgeyAweDJmOTk5LCBVUHJvcGVydHkuSURFT0dSQVBISUMgfSwKKwkgICAgICAgIHsgMHgyZjk5LCBVUHJvcGVydHkuSURFT0dSQVBISUMgfSwKKwkKKwkgICAgICAgIHsgMHgyMDBjLCBVUHJvcGVydHkuSk9JTl9DT05UUk9MIH0sCisJICAgICAgICB7IDB4MjAyOSwgVVByb3BlcnR5LkpPSU5fQ09OVFJPTCB9LAorCQorCSAgICAgICAgeyAweDFkN2JjLCBVUHJvcGVydHkuTE9XRVJDQVNFIH0sCisJICAgICAgICB7IDB4MDM0NSwgVVByb3BlcnR5LkxPV0VSQ0FTRSB9LAorCSAgICAgICAgeyAweDAwMzAsIFVQcm9wZXJ0eS5MT1dFUkNBU0UgfSwKKwkKKwkgICAgICAgIHsgMHgxZDdhOSwgVVByb3BlcnR5Lk1BVEggfSwKKwkgICAgICAgIHsgMHgyMTM1LCBVUHJvcGVydHkuTUFUSCB9LAorCSAgICAgICAgeyAweDAwNjIsIFVQcm9wZXJ0eS5NQVRIIH0sCisJCisJICAgICAgICB7IDB4ZmRlMSwgVVByb3BlcnR5Lk5PTkNIQVJBQ1RFUl9DT0RFX1BPSU5UIH0sCisJICAgICAgICB7IDB4MTBmZmZmLCBVUHJvcGVydHkuTk9OQ0hBUkFDVEVSX0NPREVfUE9JTlQgfSwKKwkgICAgICAgIHsgMHgxMGZmZmQsIFVQcm9wZXJ0eS5OT05DSEFSQUNURVJfQ09ERV9QT0lOVCB9LAorCQorCSAgICAgICAgeyAweDAwMjIsIFVQcm9wZXJ0eS5RVU9UQVRJT05fTUFSSyB9LAorCSAgICAgICAgeyAweGZmNjIsIFVQcm9wZXJ0eS5RVU9UQVRJT05fTUFSSyB9LAorCSAgICAgICAgeyAweGQ4NDAsIFVQcm9wZXJ0eS5RVU9UQVRJT05fTUFSSyB9LAorCQorCSAgICAgICAgeyAweDA2MWYsIFVQcm9wZXJ0eS5URVJNSU5BTF9QVU5DVFVBVElPTiB9LAorCSAgICAgICAgeyAweGUwMDNmLCBVUHJvcGVydHkuVEVSTUlOQUxfUFVOQ1RVQVRJT04gfSwKKwkKKwkgICAgICAgIHsgMHgxZDQ0YSwgVVByb3BlcnR5LlVQUEVSQ0FTRSB9LAorCSAgICAgICAgeyAweDIxNjIsIFVQcm9wZXJ0eS5VUFBFUkNBU0UgfSwKKwkgICAgICAgIHsgMHgwMzQ1LCBVUHJvcGVydHkuVVBQRVJDQVNFIH0sCisJCisJICAgICAgICB7IDB4MDAyMCwgVVByb3BlcnR5LldISVRFX1NQQUNFIH0sCisJICAgICAgICB7IDB4MjAyZiwgVVByb3BlcnR5LldISVRFX1NQQUNFIH0sCisJICAgICAgICB7IDB4MzAwMSwgVVByb3BlcnR5LldISVRFX1NQQUNFIH0sCisJCisJICAgICAgICB7IDB4MDcxMSwgVVByb3BlcnR5LlhJRF9DT05USU5VRSB9LAorCSAgICAgICAgeyAweDFkMWFhLCBVUHJvcGVydHkuWElEX0NPTlRJTlVFIH0sCisJICAgICAgICB7IDB4MDA3YywgVVByb3BlcnR5LlhJRF9DT05USU5VRSB9LAorCQorCSAgICAgICAgeyAweDE2ZWUsIFVQcm9wZXJ0eS5YSURfU1RBUlQgfSwKKwkgICAgICAgIHsgMHgyMzQ1NiwgVVByb3BlcnR5LlhJRF9TVEFSVCB9LAorCSAgICAgICAgeyAweDFkMWFhLCBVUHJvcGVydHkuWElEX1NUQVJUIH0sCisJCisJICAgICAgICAvLyBWZXJzaW9uIGJyZWFrOgorCSAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBvbmx5IHN1cHBvcnRlZCBzdGFydGluZyB3aXRoIHRoZQorCSAgICAgICAgLy8gVVByb3BlcnR5LlVuaWNvZGUgdmVyc2lvbiBpbmRpY2F0ZWQgaW4gdGhlIHNlY29uZCBmaWVsZC4KKwkgICAgICAgICAKKwkgICAgICAgIHsgLTEsIDB4MzIsIDAgfSwKKwkKKwkgICAgICAgIHsgMHgxODBjLCBVUHJvcGVydHkuREVGQVVMVF9JR05PUkFCTEVfQ09ERV9QT0lOVCB9LAorCSAgICAgICAgeyAweGZlMDIsIFVQcm9wZXJ0eS5ERUZBVUxUX0lHTk9SQUJMRV9DT0RFX1BPSU5UIH0sCisJICAgICAgICB7IDB4MTgwMSwgVVByb3BlcnR5LkRFRkFVTFRfSUdOT1JBQkxFX0NPREVfUE9JTlQgfSwKKwkKKwkgICAgICAgIHsgMHgwMzQxLCBVUHJvcGVydHkuREVQUkVDQVRFRCB9LAorCSAgICAgICAgeyAweGUwMDQxLCBVUHJvcGVydHkuREVQUkVDQVRFRCB9LAorCQorCSAgICAgICAgeyAweDAwYTAsIFVQcm9wZXJ0eS5HUkFQSEVNRV9CQVNFIH0sCisJICAgICAgICB7IDB4MGE0ZCwgVVByb3BlcnR5LkdSQVBIRU1FX0JBU0UgfSwKKwkgICAgICAgIHsgMHhmZjlmLCBVUHJvcGVydHkuR1JBUEhFTUVfQkFTRSB9LAorCQorCSAgICAgICAgeyAweDAzMDAsIFVQcm9wZXJ0eS5HUkFQSEVNRV9FWFRFTkQgfSwKKwkgICAgICAgIHsgMHhmZjlmLCBVUHJvcGVydHkuR1JBUEhFTUVfRVhURU5EIH0sCisJICAgICAgICB7IDB4MGE0ZCwgVVByb3BlcnR5LkdSQVBIRU1FX0VYVEVORCB9LAorCQorCSAgICAgICAgeyAweDBhNGQsIFVQcm9wZXJ0eS5HUkFQSEVNRV9MSU5LIH0sCisJICAgICAgICB7IDB4ZmY5ZiwgVVByb3BlcnR5LkdSQVBIRU1FX0xJTksgfSwKKwkKKwkgICAgICAgIHsgMHgyZmY3LCBVUHJvcGVydHkuSURTX0JJTkFSWV9PUEVSQVRPUiB9LAorCSAgICAgICAgeyAweDJmZjMsIFVQcm9wZXJ0eS5JRFNfQklOQVJZX09QRVJBVE9SIH0sCisJCisJICAgICAgICB7IDB4MmZmMywgVVByb3BlcnR5LklEU19UUklOQVJZX09QRVJBVE9SIH0sCisJICAgICAgICB7IDB4MmYwMywgVVByb3BlcnR5LklEU19UUklOQVJZX09QRVJBVE9SIH0sCisJCisJICAgICAgICB7IDB4MGVjMSwgVVByb3BlcnR5LkxPR0lDQUxfT1JERVJfRVhDRVBUSU9OIH0sCisJICAgICAgICB7IDB4ZGNiYSwgVVByb3BlcnR5LkxPR0lDQUxfT1JERVJfRVhDRVBUSU9OIH0sCisJCisJICAgICAgICB7IDB4MmU5YiwgVVByb3BlcnR5LlJBRElDQUwgfSwKKwkgICAgICAgIHsgMHg0ZTAwLCBVUHJvcGVydHkuUkFESUNBTCB9LAorCQorCSAgICAgICAgeyAweDAxMmYsIFVQcm9wZXJ0eS5TT0ZUX0RPVFRFRCB9LAorCSAgICAgICAgeyAweDAwNDksIFVQcm9wZXJ0eS5TT0ZUX0RPVFRFRCB9LAorCQorCSAgICAgICAgeyAweGZhMTEsIFVQcm9wZXJ0eS5VTklGSUVEX0lERU9HUkFQSCB9LAorCSAgICAgICAgeyAweGZhMTIsIFVQcm9wZXJ0eS5VTklGSUVEX0lERU9HUkFQSCB9CisJICAgIH07CisJICAgIAorCSAgICBib29sZWFuIGV4cGVjdGVkW10gPSB7IHRydWUsIHRydWUsIGZhbHNlLCB0cnVlLCBmYWxzZSwgCisJICAgIAkgICAgICAgICAgICAgICAgICAgdHJ1ZSwgZmFsc2UsIHRydWUsIGZhbHNlLCB0cnVlLCAKKwkgICAgCSAgICAgICAgICAgICAgICAgICBmYWxzZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIGZhbHNlLCAKKwkgICAgCSAgICAgICAgICAgICAgICAgICB0cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgCisJICAgIAkgICAgICAgICAgICAgICAgICAgZmFsc2UsIHRydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCAKKwkgICAgCSAgICAgICAgICAgICAgICAgICBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIAorCSAgICAJICAgICAgICAgICAgICAgICAgIHRydWUsIGZhbHNlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgCisJICAgIAkgICAgICAgICAgICAgICAgICAgdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIGZhbHNlLCAKKwkgICAgCSAgICAgICAgICAgICAgICAgICB0cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgCisJICAgIAkgICAgICAgICAgICAgICAgICAgZmFsc2UsIHRydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCAKKwkgICAgCSAgICAgICAgICAgICAgICAgICBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIAorCSAgICAJICAgICAgICAgICAgICAgICAgIHRydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwKKwkgICAgCSAgICAgICAgICAgICAgICAgICBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIAorCSAgICAJICAgICAgICAgICAgICAgICAgIGZhbHNlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIHRydWUsIAorCSAgICAJICAgICAgICAgICAgICAgICAgIHRydWUsIGZhbHNlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgCisJICAgIAkgICAgICAgICAgICAgICAgICAgZmFsc2UsIHRydWUsIGZhbHNlLCB0cnVlLCBmYWxzZSwgCisJICAgIAkgICAgICAgICAgICAgICAgICAgdHJ1ZSwgZmFsc2UsIHRydWUsIGZhbHNlLCB0cnVlLCAKKwkgICAgCSAgICAgICAgICAgICAgICAgICBmYWxzZX07CisKKwkgICAgVmVyc2lvbkluZm8gdmVyc2lvbiA9IFVDaGFyYWN0ZXIuZ2V0VW5pY29kZVZlcnNpb24oKTsKKwkgICAgCisJICAgIC8vIHRlc3QgaGFzQmluYXJ5UHJvcGVydHkoKSAKKwkgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7ICsrIGkpIHsKKwkgICAgCWlmIChwcm9wc1tpXVswXSA8IDApIHsKKwkJCQlpZiAodmVyc2lvbi5jb21wYXJlVG8oVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UocHJvcHNbaV1bMV0gPj4gNCwgCisJICAgIAkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHNbaV1bMV0gJiAweEYsIAorCSAgICAJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDApKSA8IDApIHsKKwkgICAgCSAgICAJYnJlYWs7CisJICAgIAkgICAgfQorCSAgICAJICAgIGNvbnRpbnVlOworCSAgICAgICAgfQorICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaGFzQmluYXJ5UHJvcGVydHkocHJvcHNbaV1bMF0sIHByb3BzW2ldWzFdKQorCSAgICAgICAgICAgICE9IGV4cGVjdGVkW2ldKSB7CisJICAgICAgICAgICAgZXJybG4oImVycm9yOiBVQ2hhcmFjdGVyLmhhc0JpbmFyeVByb3BlcnR5KFxcdSIgKyAKKwkgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKHByb3BzW2ldWzBdKSArICIsICIgKyAKKwkgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKHByb3BzW2ldWzFdKSArICIpIGhhcyBhbiBlcnJvciBleHBlY3RlZCAiICsKKwkgICAgICAgICAgICAgICAgICBleHBlY3RlZFtpXSk7CisJICAgICAgICB9CisJCisJICAgICAgICAvLyB0ZXN0IHNlcGFyYXRlIGZ1bmN0aW9ucywgdG9vIAorCSAgICAgICAgc3dpdGNoIChwcm9wc1tpXVsxXSkgeworCSAgICAgICAgY2FzZSBVUHJvcGVydHkuQUxQSEFCRVRJQzoKKwkgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc1VBbHBoYWJldGljKHByb3BzW2ldWzBdKSAhPSBleHBlY3RlZFtpXSkgeworCSAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3I6IFVDaGFyYWN0ZXIuaXNVQWxwaGFiZXRpYyhcXHUiICsgCisJICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcocHJvcHNbaV1bMF0pICsgCisJICAgICAgICAgICAgICAgICAgICAgICIpIGlzIHdyb25nIGV4cGVjdGVkICIgKyBleHBlY3RlZFtpXSk7CisJICAgICAgICAgICAgfQorCSAgICAgICAgICAgIGJyZWFrOworCSAgICAgICAgY2FzZSBVUHJvcGVydHkuTE9XRVJDQVNFOgorCSAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzVUxvd2VyY2FzZShwcm9wc1tpXVswXSkgIT0gZXhwZWN0ZWRbaV0pIHsKKwkgICAgICAgICAgICAgICAgZXJybG4oImVycm9yOiBVQ2hhcmFjdGVyLmlzVUxvd2VyY2FzZShcXHUiICsgCisJICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcocHJvcHNbaV1bMF0pICsgCisJICAgICAgICAgICAgICAgICAgICAgICIpIGlzIHdyb25nIGV4cGVjdGVkICIgKyBleHBlY3RlZFtpXSk7CisJICAgICAgICAgICAgfQorCSAgICAgICAgICAgIGJyZWFrOworCSAgICAgICAgY2FzZSBVUHJvcGVydHkuVVBQRVJDQVNFOgorCSAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzVVVwcGVyY2FzZShwcm9wc1tpXVswXSkgIT0gZXhwZWN0ZWRbaV0pIHsKKwkgICAgICAgICAgICAgICAgZXJybG4oImVycm9yOiBVQ2hhcmFjdGVyLmlzVVVwcGVyY2FzZShcXHUiICsgCisJICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcocHJvcHNbaV1bMF0pICsgCisJICAgICAgICAgICAgICAgICAgICAgICIpIGlzIHdyb25nIGV4cGVjdGVkICIgKyBleHBlY3RlZFtpXSk7CisJICAgICAgICAgICAgfQorCSAgICAgICAgICAgIGJyZWFrOworCSAgICAgICAgY2FzZSBVUHJvcGVydHkuV0hJVEVfU1BBQ0U6CisJICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNVV2hpdGVTcGFjZShwcm9wc1tpXVswXSkgIT0gZXhwZWN0ZWRbaV0pIHsKKwkgICAgICAgICAgICAgICAgZXJybG4oImVycm9yOiBVQ2hhcmFjdGVyLmlzVVdoaXRlU3BhY2UoXFx1IiArIAorCSAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKHByb3BzW2ldWzBdKSArIAorCSAgICAgICAgICAgICAgICAgICAgICAiKSBpcyB3cm9uZyBleHBlY3RlZCAiICsgZXhwZWN0ZWRbaV0pOworCSAgICAgICAgICAgIH0KKwkgICAgICAgICAgICBicmVhazsKKwkgICAgICAgIGRlZmF1bHQ6CisJICAgICAgICAgICAgYnJlYWs7CisJICAgICAgICB9CisJICAgIH0KKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VURjE2VGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVVRGMTZUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2E2Y2E4NAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VURjE2VGVzdC5qYXZhCkBAIC0wLDAgKzEsMTI5OCBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VURjE2VGVzdC5qYXZhLHYgJCAKKyogJERhdGU6IDIwMDIvMDcvMTEgMjE6MjU6MjMgJCAKKyogJFJldmlzaW9uOiAxLjE4ICQKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QubGFuZzsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuUmVwbGFjZWFibGVTdHJpbmc7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCisvKioKKyogVGVzdGluZyBjbGFzcyBmb3IgVVRGMTYKKyogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyogQHNpbmNlIGZlYiAwOSAyMDAxCisqLworcHVibGljIGZpbmFsIGNsYXNzIFVURjE2VGVzdCBleHRlbmRzIFRlc3RGbXdrCit7IAorICAJLy8gY29uc3RydWN0b3IgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgIAorICAJLyoqCisgIAkqIENvbnN0cnVjdG9yCisgIAkqLworICAJcHVibGljIFVURjE2VGVzdCgpCisgIAl7CisgIAl9CisgIAorICAJLy8gcHVibGljIG1ldGhvZHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgIAorICAJLyoqCisgIAkqIFRlc3RpbmcgVVRGMTYgY2xhc3MgbWV0aG9kcyBhcHBlbmQKKyAgCSovCisgIAlwdWJsaWMgdm9pZCBUZXN0QXBwZW5kKCkKKyAgCXsKKyAgICAgIAlTdHJpbmdCdWZmZXIgc3RyYnVmZiA9IG5ldyBTdHJpbmdCdWZmZXIoInRoaXMgaXMgYSBzdHJpbmcgIik7CisgICAgICAJY2hhciBhcnJheVtdID0gbmV3IGNoYXJbVUNoYXJhY3Rlci5NQVhfVkFMVUUgPj4gMl07CisgICAgICAJaW50IHN0cnNpemUgPSBzdHJidWZmLmxlbmd0aCgpOworICAgICAgCWludCBhcnJheXNpemUgPSBzdHJzaXplOworICAgICAgICAKKyAgICAgIAlVdGlsaXR5LmdldENoYXJzKHN0cmJ1ZmYsIDAsIHN0cnNpemUsIGFycmF5LCAwKTsKKyAgICAgIAlmb3IgKGludCBpID0gMTsgaSA8IFVDaGFyYWN0ZXIuTUFYX1ZBTFVFOyBpICs9IDEwMCkKKyAgICAgIAl7CisgICAgICAJICAJVVRGMTYuYXBwZW5kKHN0cmJ1ZmYsIGkpOworICAgICAgICAgCWFycmF5c2l6ZSA9IFVURjE2LmFwcGVuZChhcnJheSwgYXJyYXlzaXplLCBpKTsKKyAgICAgICAgICAKKyAgICAgICAgICAJU3RyaW5nIGFycmF5c3RyID0gbmV3IFN0cmluZyhhcnJheSwgMCwgYXJyYXlzaXplKTsKKyAgICAgICAgICAJaWYgKCFhcnJheXN0ci5lcXVhbHMoc3RyYnVmZi50b1N0cmluZygpKSkgeworICAgICAgICAgICAgICAJZXJybG4oIkZBSUwgQ29tcGFyaW5nIGNoYXIgYXJyYXkgYXBwZW5kIGFuZCBzdHJpbmcgYXBwZW5kICIgKworICAgICAgICAgICAgICAJICAgICAgIndpdGggMHgiICsgSW50ZWdlci50b0hleFN0cmluZyhpKSk7CisgICAgICAgICAgCX0KKyAgICAgICAgICAKKyAgICAgICAgICAJLy8gdGhpcyBpcyB0byBjYXRlciBmb3IgdGhlIGNvbWJpbmF0aW9uIG9mIDB4REJYWCAweERDNTAgd2hpY2ggCisgICAgICAgICAgCS8vIGZvcm1zIGEgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIKKyAgICAgICAgICAJaWYgKGkgPT0gMHhEQzUxKSB7CisgICAgICAgICAgICAgIAlzdHJzaXplIC0tOworICAgICAgICAgIAl9CisgICAgICAgICAgICAKKyAgICAgICAgICAJaWYgKFVURjE2LmNvdW50Q29kZVBvaW50KHN0cmJ1ZmYpICE9IHN0cnNpemUgKyAoaSAvIDEwMCkgKyAxKSB7CisgICAgICAgICAgICAgIAllcnJsbigiRkFJTCBDb3VudGluZyBjb2RlIHBvaW50cyBpbiBzdHJpbmcgYXBwZW5kZWQgd2l0aCAiICsgCisgICAgICAgICAgICAgICAgICAgIAkiIDB4IiArIEludGVnZXIudG9IZXhTdHJpbmcoaSkpOworICAgICAgICAgICAgICAJYnJlYWs7CisgICAgICAgICAgCX0gIAorICAgICAgCX0KKyAgCX0KKyAgCisgIAkvKioKKyAgCSogVGVzdGluZyBVVEYxNiBjbGFzcyBtZXRob2RzIGJvdW5kcworICAJKi8KKyAgCXB1YmxpYyB2b2lkIFRlc3RCb3VuZHMoKQorICAJeworICAgICAgCVN0cmluZ0J1ZmZlciBzdHJidWZmID0gCisgICAgICAgICAgCQkgICAgICAgICAgICAgICAgICAvLzAgICAxMjM0NSAgICAgNiAgICAgNyAgICAgOCAgICAgOQorICAgICAgICAgIAkJbmV3IFN0cmluZ0J1ZmZlcigiXHVkYzAwMDEyM1x1ZDgwMFx1ZGMwMFx1ZDgwMVx1ZGMwMVx1ZDgwMiIpOworICAgICAgCVN0cmluZyBzdHIgPSBzdHJidWZmLnRvU3RyaW5nKCk7CisgICAgICAJY2hhciBhcnJheVtdID0gc3RyLnRvQ2hhckFycmF5KCk7CisgICAgICAJaW50IGJvdW5kdHlwZVtdID0ge1VURjE2LlNJTkdMRV9DSEFSX0JPVU5EQVJZLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5TSU5HTEVfQ0hBUl9CT1VOREFSWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5TSU5HTEVfQ0hBUl9CT1VOREFSWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5TSU5HTEVfQ0hBUl9CT1VOREFSWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5TSU5HTEVfQ0hBUl9CT1VOREFSWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5MRUFEX1NVUlJPR0FURV9CT1VOREFSWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5UUkFJTF9TVVJST0dBVEVfQk9VTkRBUlksCisgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuTEVBRF9TVVJST0dBVEVfQk9VTkRBUlksCisgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuVFJBSUxfU1VSUk9HQVRFX0JPVU5EQVJZLAorICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LlNJTkdMRV9DSEFSX0JPVU5EQVJZfTsKKyAgICAgIAlpbnQgbGVuZ3RoID0gc3RyLmxlbmd0aCgpOworICAgICAgCWZvciAoaW50IGkgPSAwOyBpIDwgbGVuZ3RoOyBpICsrKSB7CisgICAgICAgIAlpZiAoVVRGMTYuYm91bmRzKHN0ciwgaSkgIT0gYm91bmR0eXBlW2ldKSB7CisgICAgICAgICAgICAgIAllcnJsbigiRkFJTCBjaGVja2luZyBib3VuZCB0eXBlIGF0IGluZGV4ICIgKyBpKTsKKyAgICAgICAgICAJfQorICAgICAgICAgIAlpZiAoVVRGMTYuYm91bmRzKHN0cmJ1ZmYsIGkpICE9IGJvdW5kdHlwZVtpXSkgeworICAgICAgICAgICAgICAJZXJybG4oIkZBSUwgY2hlY2tpbmcgYm91bmQgdHlwZSBhdCBpbmRleCAiICsgaSk7CisgICAgICAgICAgCX0KKyAgICAgICAgICAJaWYgKFVURjE2LmJvdW5kcyhhcnJheSwgMCwgbGVuZ3RoLCBpKSAhPSBib3VuZHR5cGVbaV0pIHsKKyAgICAgICAgICAgICAgCWVycmxuKCJGQUlMIGNoZWNraW5nIGJvdW5kIHR5cGUgYXQgaW5kZXggIiArIGkpOworICAgICAgICAgIAl9CisgICAgICAJfQorICAgICAgCS8vIGRvZXMgbm90IHN0cmFkZGxlIGJldHdlZW4gc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIKKyAgICAgIAlpbnQgc3RhcnQgPSA0OworICAgICAgCWludCBsaW1pdCA9IDk7CisgICAgICAJaW50IHN1YmJvdW5kdHlwZTFbXSA9IHtVVEYxNi5TSU5HTEVfQ0hBUl9CT1VOREFSWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuTEVBRF9TVVJST0dBVEVfQk9VTkRBUlksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LlRSQUlMX1NVUlJPR0FURV9CT1VOREFSWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuTEVBRF9TVVJST0dBVEVfQk9VTkRBUlksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LlRSQUlMX1NVUlJPR0FURV9CT1VOREFSWX07CisgICAgICAJdHJ5IHsKKyAgICAgICAgICAJVVRGMTYuYm91bmRzKGFycmF5LCBzdGFydCwgbGltaXQsIC0xKTsKKyAgICAgICAgICAJZXJybG4oIkZBSUwgT3V0IG9mIGJvdW5kcyBpbmRleCBpbiBib3VuZHMgc2hvdWxkIGZhaWwiKTsKKyAgICAgIAl9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgIAkvLyBnZXR0aW5nIHJpZCBvZiB3YXJuaW5ncworICAgICAgICAgIAlTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgIAl9CisgICAgICAKKyAgICAgIAlmb3IgKGludCBpID0gMDsgaSA8IGxpbWl0IC0gc3RhcnQ7IGkgKyspIHsKKyAgICAgICAgICAJaWYgKFVURjE2LmJvdW5kcyhhcnJheSwgc3RhcnQsIGxpbWl0LCBpKSAhPSBzdWJib3VuZHR5cGUxW2ldKSB7CisgICAgICAgICAgICAgIAllcnJsbigiRkFJTEVEIFN1YmFycmF5IGJvdW5kcyBpbiBbIiArIHN0YXJ0ICsgIiwgIiArIGxpbWl0ICsgCisgICAgICAgICAgICAgICAgICAgIAkiXSBleHBlY3RlZCAiICsgc3ViYm91bmR0eXBlMVtpXSArICIgYXQgb2Zmc2V0ICIgKyBpKTsKKyAgICAgICAgICAJfQorICAgICAgCX0KKyAgICAgIAorICAgICAgCS8vIHN0YXJ0cyBmcm9tIHRoZSBtaWQgb2YgYSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcgorICAgICAgCWludCBzdWJib3VuZHR5cGUyW10gPSB7VVRGMTYuU0lOR0xFX0NIQVJfQk9VTkRBUlksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LkxFQURfU1VSUk9HQVRFX0JPVU5EQVJZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5UUkFJTF9TVVJST0dBVEVfQk9VTkRBUll9OworICAgICAgCisgICAgICAJc3RhcnQgPSA2OworICAgICAgCWxpbWl0ID0gOTsKKyAgICAgIAlmb3IgKGludCBpID0gMDsgaSA8IGxpbWl0IC0gc3RhcnQ7IGkgKyspIHsKKyAgICAgICAgICAJaWYgKFVURjE2LmJvdW5kcyhhcnJheSwgc3RhcnQsIGxpbWl0LCBpKSAhPSBzdWJib3VuZHR5cGUyW2ldKSB7CisgICAgICAgICAgICAgIAllcnJsbigiRkFJTEVEIFN1YmFycmF5IGJvdW5kcyBpbiBbIiArIHN0YXJ0ICsgIiwgIiArIGxpbWl0ICsgCisgICAgICAgICAgICAgICAgICAgIAkiXSBleHBlY3RlZCAiICsgc3ViYm91bmR0eXBlMltpXSArICIgYXQgb2Zmc2V0ICIgKyBpKTsKKyAgICAgICAgICAJfQorICAgICAgCX0KKyAgICAgIAorICAgICAgCS8vIGVuZHMgaW4gdGhlIG1pZCBvZiBhIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyCisgICAgICAJaW50IHN1YmJvdW5kdHlwZTNbXSA9IHtVVEYxNi5MRUFEX1NVUlJPR0FURV9CT1VOREFSWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuVFJBSUxfU1VSUk9HQVRFX0JPVU5EQVJZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5TSU5HTEVfQ0hBUl9CT1VOREFSWX07CisgICAgICAJc3RhcnQgPSA1OworICAgICAgCWxpbWl0ID0gODsKKyAgICAgIAlmb3IgKGludCBpID0gMDsgaSA8IGxpbWl0IC0gc3RhcnQ7IGkgKyspIHsKKyAgICAgICAgICAJaWYgKFVURjE2LmJvdW5kcyhhcnJheSwgc3RhcnQsIGxpbWl0LCBpKSAhPSBzdWJib3VuZHR5cGUzW2ldKSB7CisgICAgICAgICAgICAgIAllcnJsbigiRkFJTEVEIFN1YmFycmF5IGJvdW5kcyBpbiBbIiArIHN0YXJ0ICsgIiwgIiArIGxpbWl0ICsgCisgICAgICAgICAgICAgICAgICAgIAkiXSBleHBlY3RlZCAiICsgc3ViYm91bmR0eXBlM1tpXSArICIgYXQgb2Zmc2V0ICIgKyBpKTsKKyAgICAgICAgICAJfQorICAgICAgCX0KKyAgCX0KKyAgCisgIAkvKioKKyAgCSogVGVzdGluZyBVVEYxNiBjbGFzcyBtZXRob2RzIGNoYXJBdCBhbmQgY2hhckF0Q29kZVBvaW50IAorICAJKi8KKyAgCXB1YmxpYyB2b2lkIFRlc3RDaGFyQXQoKQorICAJeworICAgICAgCVN0cmluZ0J1ZmZlciBzdHJidWZmID0gCisgICAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZ0J1ZmZlcigiMTIzNDVcdWQ4MDBcdWRjMDE2Nzg5MFx1ZDgwMFx1ZGMwMiIpOworICAgICAgCWlmIChVVEYxNi5jaGFyQXQoc3RyYnVmZiwgMCkgIT0gJzEnIHx8IFVURjE2LmNoYXJBdChzdHJidWZmLCAyKSAhPSAnMycgCisgICAgICAJICAgIHx8IFVURjE2LmNoYXJBdChzdHJidWZmLCA1KSAhPSAweDEwMDAxIHx8IAorICAgICAgICAgIAlVVEYxNi5jaGFyQXQoc3RyYnVmZiwgNikgIT0gMHgxMDAwMSB8fCAKKyAgICAgICAgICAJVVRGMTYuY2hhckF0KHN0cmJ1ZmYsIDEyKSAhPSAweDEwMDAyIHx8IAorICAgICAgICAgIAlVVEYxNi5jaGFyQXQoc3RyYnVmZiwgMTMpICE9IDB4MTAwMDIpIHsKKyAgICAgICAgICAJZXJybG4oIkZBSUwgR2V0dGluZyBjaGFyYWN0ZXIgZnJvbSBzdHJpbmcgYnVmZmVyIGVycm9yIiApOworICAgICAgCX0KKyAgICAgIAlTdHJpbmcgc3RyID0gc3RyYnVmZi50b1N0cmluZygpOworICAgICAgCWlmIChVVEYxNi5jaGFyQXQoc3RyLCAwKSAhPSAnMScgfHwgVVRGMTYuY2hhckF0KHN0ciwgMikgIT0gJzMnIHx8IAorICAgICAgICAgIAlVVEYxNi5jaGFyQXQoc3RyLCA1KSAhPSAweDEwMDAxIHx8IFVURjE2LmNoYXJBdChzdHIsIDYpICE9IDB4MTAwMDEgCisgICAgICAgICAgCXx8IFVURjE2LmNoYXJBdChzdHIsIDEyKSAhPSAweDEwMDAyIHx8IAorICAgICAgICAgIAlVVEYxNi5jaGFyQXQoc3RyLCAxMykgIT0gMHgxMDAwMikgCisgICAgICAJeworICAgICAgICAgIAllcnJsbigiRkFJTCBHZXR0aW5nIGNoYXJhY3RlciBmcm9tIHN0cmluZyBlcnJvciIgKTsKKyAgICAgIAl9CisgICAgICAJY2hhciBhcnJheVtdID0gc3RyLnRvQ2hhckFycmF5KCk7CisgICAgICAJaW50IHN0YXJ0ID0gMDsKKyAgICAgIAlpbnQgbGltaXQgPSBzdHIubGVuZ3RoKCk7CisgICAgICAJaWYgKFVURjE2LmNoYXJBdChhcnJheSwgc3RhcnQsIGxpbWl0LCAwKSAhPSAnMScgfHwgCisgICAgICAgICAgCVVURjE2LmNoYXJBdChhcnJheSwgc3RhcnQsIGxpbWl0LCAyKSAhPSAnMycgfHwgCisgICAgICAgICAgCVVURjE2LmNoYXJBdChhcnJheSwgc3RhcnQsIGxpbWl0LCA1KSAhPSAweDEwMDAxIHx8IAorICAgICAgICAgIAlVVEYxNi5jaGFyQXQoYXJyYXksIHN0YXJ0LCBsaW1pdCwgNikgIT0gMHgxMDAwMSB8fCAKKyAgICAgICAgICAJVVRGMTYuY2hhckF0KGFycmF5LCBzdGFydCwgbGltaXQsIDEyKSAhPSAweDEwMDAyIHx8IAorICAgICAgICAgIAlVVEYxNi5jaGFyQXQoYXJyYXksIHN0YXJ0LCBsaW1pdCwgMTMpICE9IDB4MTAwMDIpIHsKKyAgICAgICAgICAJZXJybG4oIkZBSUwgR2V0dGluZyBjaGFyYWN0ZXIgZnJvbSBhcnJheSBlcnJvciIgKTsKKyAgICAgIAl9CisgICAgICAJLy8gY2hlY2sgdGhlIHN1YiBhcnJheSBoZXJlLgorICAgICAgCXN0YXJ0ID0gNjsKKyAgICAgIAlsaW1pdCA9IDEzOworICAgICAgCXRyeSB7CisgICAgICAgICAgCVVURjE2LmNoYXJBdChhcnJheSwgc3RhcnQsIGxpbWl0LCAtMSk7CisgICAgICAgICAgCWVycmxuKCJGQUlMIG91dCBvZiBib3VuZHMgZXJyb3IgZXhwZWN0ZWQiKTsKKyAgICAgIAl9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgIAlTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgIAl9CisgICAgICAJdHJ5IHsKKyAgICAgICAgICAJVVRGMTYuY2hhckF0KGFycmF5LCBzdGFydCwgbGltaXQsIDgpOworICAgICAgICAgIAllcnJsbigiRkFJTCBvdXQgb2YgYm91bmRzIGVycm9yIGV4cGVjdGVkIik7CisgICAgICAJfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAJU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAJfQorICAgICAgCWlmIChVVEYxNi5jaGFyQXQoYXJyYXksIHN0YXJ0LCBsaW1pdCwgMCkgIT0gMHhkYzAxKSB7CisgICAgICAgICAgCWVycmxuKCJGQUlMIEV4cGVjdGVkIHJlc3VsdCBpbiBzdWJhcnJheSAweGRjMDEiKTsKKyAgICAgIAl9CisgICAgICAJaWYgKFVURjE2LmNoYXJBdChhcnJheSwgc3RhcnQsIGxpbWl0LCA2KSAhPSAweGQ4MDApIHsKKyAgICAgICAgICAJZXJybG4oIkZBSUwgRXhwZWN0ZWQgcmVzdWx0IGluIHN1YmFycmF5IDB4ZDgwMCIpOworICAgICAgCX0KKyAgICAgIAlSZXBsYWNlYWJsZVN0cmluZyByZXBsYWNlYWJsZSA9IG5ldyBSZXBsYWNlYWJsZVN0cmluZyhzdHIpOyAKKyAgICAgIAlpZiAoVVRGMTYuY2hhckF0KHJlcGxhY2VhYmxlLCAwKSAhPSAnMScgfHwgCisgICAgICAJICAgIFVURjE2LmNoYXJBdChyZXBsYWNlYWJsZSwgMikgIT0gJzMnIHx8IAorICAgICAgICAgIAlVVEYxNi5jaGFyQXQocmVwbGFjZWFibGUsIDUpICE9IDB4MTAwMDEgfHwgCisgICAgICAgICAgCVVURjE2LmNoYXJBdChyZXBsYWNlYWJsZSwgNikgIT0gMHgxMDAwMSB8fCAKKyAgICAgICAgICAJVVRGMTYuY2hhckF0KHJlcGxhY2VhYmxlLCAxMikgIT0gMHgxMDAwMiB8fCAKKyAgICAgICAgICAJVVRGMTYuY2hhckF0KHJlcGxhY2VhYmxlLCAxMykgIT0gMHgxMDAwMikgeworICAgICAgICAgIAllcnJsbigiRkFJTCBHZXR0aW5nIGNoYXJhY3RlciBmcm9tIHJlcGxhY2VhYmxlIGVycm9yIiApOworICAgICAgCX0KKyAgCX0KKyAgCisgIAkvKioKKyAgCSogVGVzdGluZyBVVEYxNiBjbGFzcyBtZXRob2RzIGNvdW50Q29kZVBvaW50CisgIAkqLworICAJcHVibGljIHZvaWQgVGVzdENvdW50Q29kZVBvaW50KCkKKyAgCXsKKyAgICAJU3RyaW5nQnVmZmVyIHN0cmJ1ZmYgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAJY2hhciAgICAgICAgIGFycmF5W10gPSBudWxsOworICAgIAlpZiAoVVRGMTYuY291bnRDb2RlUG9pbnQoc3RyYnVmZikgIT0gMCB8fAorICAgICAgICAJVVRGMTYuY291bnRDb2RlUG9pbnQoIiIpICE9IDAgfHwKKyAgICAgICAgCVVURjE2LmNvdW50Q29kZVBvaW50KGFycmF5LDAgLDApICE9IDApIHsKKyAgICAgICAgCWVycmxuKCJGQUlMIENvdW50aW5nIGNvZGUgcG9pbnRzIGZvciBlbXB0eSBzdHJpbmdzIik7CisgICAgCX0KKyAgICAKKyAgICAJc3RyYnVmZiA9IG5ldyBTdHJpbmdCdWZmZXIoInRoaXMgaXMgYSBzdHJpbmcgIik7CisgICAgCVN0cmluZyBzdHIgPSBzdHJidWZmLnRvU3RyaW5nKCk7CisgICAgCWFycmF5ID0gc3RyLnRvQ2hhckFycmF5KCk7CisgICAgCWludCBzaXplID0gc3RyLmxlbmd0aCgpOworICAgIAorICAgIAlpZiAoVVRGMTYuY291bnRDb2RlUG9pbnQoYXJyYXksIDAsIDApICE9IDApIHsKKyAgICAgICAgCWVycmxuKCJGQUlMIENvdW50aW5nIGNvZGUgcG9pbnRzIGZvciAwIG9mZnNldCBhcnJheSIpOworICAgIAl9CisgICAgCisgICAgCWlmIChVVEYxNi5jb3VudENvZGVQb2ludChzdHIpICE9IHNpemUgfHwKKyAgICAgICAgCVVURjE2LmNvdW50Q29kZVBvaW50KHN0cmJ1ZmYpICE9IHNpemUgfHwKKyAgICAgICAgCVVURjE2LmNvdW50Q29kZVBvaW50KGFycmF5LCAwLCBzaXplKSAhPSBzaXplKSB7CisgICAgICAgIAllcnJsbigiRkFJTCBDb3VudGluZyBjb2RlIHBvaW50cyIpOworICAgIAl9CSAKKyAgICAKKyAgICAJVVRGMTYuYXBwZW5kKHN0cmJ1ZmYsIDB4MTAwMDApOworICAgIAlzdHIgPSBzdHJidWZmLnRvU3RyaW5nKCk7CisgICAgCWFycmF5ID0gc3RyLnRvQ2hhckFycmF5KCk7CisgICAgCWlmIChVVEYxNi5jb3VudENvZGVQb2ludChzdHIpICE9IHNpemUgKyAxIHx8CisgICAgICAgIAlVVEYxNi5jb3VudENvZGVQb2ludChzdHJidWZmKSAhPSBzaXplICsgMSB8fAorICAgICAgICAJVVRGMTYuY291bnRDb2RlUG9pbnQoYXJyYXksIDAsIHNpemUgKyAxKSAhPSBzaXplICsgMSB8fAorICAgICAgICAJVVRGMTYuY291bnRDb2RlUG9pbnQoYXJyYXksIDAsIHNpemUgKyAyKSAhPSBzaXplICsgMSkgeworICAgICAgICAJZXJybG4oIkZBSUwgQ291bnRpbmcgY29kZSBwb2ludHMiKTsKKyAgICAJfQorICAgIAlVVEYxNi5hcHBlbmQoc3RyYnVmZiwgMHg2MSk7CisgICAgCXN0ciA9IHN0cmJ1ZmYudG9TdHJpbmcoKTsKKyAgICAJYXJyYXkgPSBzdHIudG9DaGFyQXJyYXkoKTsKKyAgICAJaWYgKFVURjE2LmNvdW50Q29kZVBvaW50KHN0cikgIT0gc2l6ZSArIDIgfHwKKyAgICAgICAgCVVURjE2LmNvdW50Q29kZVBvaW50KHN0cmJ1ZmYpICE9IHNpemUgKyAyIHx8CisgICAgICAgIAlVVEYxNi5jb3VudENvZGVQb2ludChhcnJheSwgMCwgc2l6ZSArIDEpICE9IHNpemUgKyAxIHx8CisgICAgICAgIAlVVEYxNi5jb3VudENvZGVQb2ludChhcnJheSwgMCwgc2l6ZSArIDIpICE9IHNpemUgKyAxIHx8CisgICAgICAgIAlVVEYxNi5jb3VudENvZGVQb2ludChhcnJheSwgMCwgc2l6ZSArIDMpICE9IHNpemUgKyAyKSB7CisgICAgICAgIAllcnJsbigiRkFJTCBDb3VudGluZyBjb2RlIHBvaW50cyIpOworICAgIAl9CisgIAl9CisgIAorICAJLyoqCisgIAkqIFRlc3RpbmcgVVRGMTYgY2xhc3MgbWV0aG9kcyBkZWxldGUKKyAgCSovCisgIAlwdWJsaWMgdm9pZCBUZXN0RGVsZXRlKCkKKyAgCXsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8wMTIzNDU2Nzg5MDEyMzQ1NgorICAgIAlTdHJpbmdCdWZmZXIgc3RyYnVmZiA9IG5ldyBTdHJpbmdCdWZmZXIoInRoZXNlIGFyZSBzdHJpbmdzIik7CisgICAgCWludCBzaXplID0gc3RyYnVmZi5sZW5ndGgoKTsKKyAgICAJY2hhciBhcnJheVtdID0gc3RyYnVmZi50b1N0cmluZygpLnRvQ2hhckFycmF5KCk7CisgICAgCisgICAgCVVURjE2LmRlbGV0ZShzdHJidWZmLCAzKTsKKyAgICAJVVRGMTYuZGVsZXRlKHN0cmJ1ZmYsIDMpOworICAgIAlVVEYxNi5kZWxldGUoc3RyYnVmZiwgMyk7CisgICAgCVVURjE2LmRlbGV0ZShzdHJidWZmLCAzKTsKKyAgICAJVVRGMTYuZGVsZXRlKHN0cmJ1ZmYsIDMpOworICAgIAlVVEYxNi5kZWxldGUoc3RyYnVmZiwgMyk7CisgICAgCXRyeSB7CisgICAgICAgIAlVVEYxNi5kZWxldGUoc3RyYnVmZiwgc3RyYnVmZi5sZW5ndGgoKSk7CisgICAgICAgIAllcnJsbigiRkFJTCBkZWxldGluZyBvdXQgb2YgYm91bmRzIGNoYXJhY3RlciBzaG91bGQgZmFpbCIpOworICAgIAl9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAJU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgCX0KKyAgICAJVVRGMTYuZGVsZXRlKHN0cmJ1ZmYsIHN0cmJ1ZmYubGVuZ3RoKCkgLSAxKTsKKyAgICAJaWYgKCFzdHJidWZmLnRvU3RyaW5nKCkuZXF1YWxzKCJ0aGUgc3RyaW5nIikpIHsKKyAgICAgICAgCWVycmxuKCJGQUlMIGV4cGVjdGVkIHJlc3VsdCBhZnRlciBkZWxldGluZyBjaGFyYWN0ZXJzIGlzICIgKworICAgICAgICAgICAgICAJCSJcInRoZSBzdHJpbmdcIiIpOworICAgIAl9CisgICAgCisgICAgCXNpemUgPSBVVEYxNi5kZWxldGUoYXJyYXksIHNpemUsIDMpOworICAgIAlzaXplID0gVVRGMTYuZGVsZXRlKGFycmF5LCBzaXplLCAzKTsKKyAgICAJc2l6ZSA9IFVURjE2LmRlbGV0ZShhcnJheSwgc2l6ZSwgMyk7CisgICAgCXNpemUgPSBVVEYxNi5kZWxldGUoYXJyYXksIHNpemUsIDMpOworICAgIAlzaXplID0gVVRGMTYuZGVsZXRlKGFycmF5LCBzaXplLCAzKTsKKyAgICAJc2l6ZSA9IFVURjE2LmRlbGV0ZShhcnJheSwgc2l6ZSwgMyk7CisgICAgCXRyeSB7CisgICAgICAgIAlVVEYxNi5kZWxldGUoYXJyYXksIHNpemUsIHNpemUpOworICAgICAgICAJZXJybG4oIkZBSUwgZGVsZXRpbmcgb3V0IG9mIGJvdW5kcyBjaGFyYWN0ZXIgc2hvdWxkIGZhaWwiKTsKKyAgICAJfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgCVN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgIAl9CisgICAgCXNpemUgPSBVVEYxNi5kZWxldGUoYXJyYXksIHNpemUsIHNpemUgLSAxKTsKKyAgICAJU3RyaW5nIHN0ciA9IG5ldyBTdHJpbmcoYXJyYXksIDAsIHNpemUpOworICAgIAlpZiAoIXN0ci5lcXVhbHMoInRoZSBzdHJpbmciKSkgeworICAgICAgICAJZXJybG4oIkZBSUwgZXhwZWN0ZWQgcmVzdWx0IGFmdGVyIGRlbGV0aW5nIGNoYXJhY3RlcnMgaXMgIiArCisgICAgICAgICAgICAgIAkJIlwidGhlIHN0cmluZ1wiIik7CisgICAgCX0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAkJLy8wMTIzNDU2NzggICAgIDkgICAgIDAxICAgICAyICAgICAgMyAgICAgNAorICAgIAlzdHJidWZmID0gbmV3IFN0cmluZ0J1ZmZlcigic3RyaW5nOiBcdWQ4MDBcdWRjMDAgXHVkODAxXHVkYzAxIFx1ZDgwMVx1ZGMwMSIpOworICAgIAlzaXplID0gc3RyYnVmZi5sZW5ndGgoKTsKKyAgICAJYXJyYXkgPSBzdHJidWZmLnRvU3RyaW5nKCkudG9DaGFyQXJyYXkoKTsKKyAgICAKKyAgICAJVVRGMTYuZGVsZXRlKHN0cmJ1ZmYsIDgpOworICAgIAlVVEYxNi5kZWxldGUoc3RyYnVmZiwgOCk7CisgICAgCVVURjE2LmRlbGV0ZShzdHJidWZmLCA5KTsKKyAgICAJVVRGMTYuZGVsZXRlKHN0cmJ1ZmYsIDgpOworICAgIAlVVEYxNi5kZWxldGUoc3RyYnVmZiwgOSk7CisgICAgCVVURjE2LmRlbGV0ZShzdHJidWZmLCA2KTsKKyAgICAJVVRGMTYuZGVsZXRlKHN0cmJ1ZmYsIDYpOworICAgIAlpZiAoIXN0cmJ1ZmYudG9TdHJpbmcoKS5lcXVhbHMoInN0cmluZyIpKSB7CisgICAgICAgIAllcnJsbigiRkFJTCBleHBlY3RlZCByZXN1bHQgYWZ0ZXIgZGVsZXRpbmcgY2hhcmFjdGVycyBpcyBcInN0cmluZ1wiIik7CisgICAgCX0KKyAgICAKKyAgICAJc2l6ZSA9IFVURjE2LmRlbGV0ZShhcnJheSwgc2l6ZSwgOCk7CisgICAgCXNpemUgPSBVVEYxNi5kZWxldGUoYXJyYXksIHNpemUsIDgpOworICAgIAlzaXplID0gVVRGMTYuZGVsZXRlKGFycmF5LCBzaXplLCA5KTsKKyAgICAJc2l6ZSA9IFVURjE2LmRlbGV0ZShhcnJheSwgc2l6ZSwgOCk7CisgICAgCXNpemUgPSBVVEYxNi5kZWxldGUoYXJyYXksIHNpemUsIDkpOworICAgIAlzaXplID0gVVRGMTYuZGVsZXRlKGFycmF5LCBzaXplLCA2KTsKKyAgICAJc2l6ZSA9IFVURjE2LmRlbGV0ZShhcnJheSwgc2l6ZSwgNik7CisgICAgCXN0ciA9IG5ldyBTdHJpbmcoYXJyYXksIDAsIHNpemUpOworICAgIAlpZiAoIXN0ci5lcXVhbHMoInN0cmluZyIpKSB7CisgICAgICAgIAllcnJsbigiRkFJTCBleHBlY3RlZCByZXN1bHQgYWZ0ZXIgZGVsZXRpbmcgY2hhcmFjdGVycyBpcyBcInN0cmluZ1wiIik7CisgICAgCX0KKyAgCX0KKyAgCisgIAkvKioKKyAgCSogVGVzdGluZyBmaW5kT2Zmc2V0RnJvbUNvZGVQb2ludCBhbmQgZmluZENvZGVQb2ludE9mZnNldAorICAJKi8KKyAgCXB1YmxpYyB2b2lkIFRlc3RmaW5kT2Zmc2V0KCkKKyAgCXsKKyAgICAJLy8gaml0dGVyYnVnIDQ3CisgICAgCVN0cmluZyBzdHIgPSAiYVx1RDgwMFx1REMwMGIiOworICAgIAlTdHJpbmdCdWZmZXIgc3RyYnVmZiA9IG5ldyBTdHJpbmdCdWZmZXIoc3RyKTsKKyAgICAJY2hhciBhcnJheVtdID0gc3RyLnRvQ2hhckFycmF5KCk7CisgICAgCWludCBsaW1pdCA9IHN0ci5sZW5ndGgoKTsKKyAgICAJaWYgKFVURjE2LmZpbmRDb2RlUG9pbnRPZmZzZXQoc3RyLCAwKSAhPSAwIHx8CisgICAgICAgIAlVVEYxNi5maW5kT2Zmc2V0RnJvbUNvZGVQb2ludChzdHIsIDApICE9IDAgfHwKKyAgICAgICAgCVVURjE2LmZpbmRDb2RlUG9pbnRPZmZzZXQoc3RyYnVmZiwgMCkgIT0gMCB8fAorICAgICAgICAJVVRGMTYuZmluZE9mZnNldEZyb21Db2RlUG9pbnQoc3RyYnVmZiwgMCkgIT0gMCB8fAorICAgICAgICAJVVRGMTYuZmluZENvZGVQb2ludE9mZnNldChhcnJheSwgMCwgbGltaXQsIDApICE9IDAgfHwKKyAgICAgICAgCVVURjE2LmZpbmRPZmZzZXRGcm9tQ29kZVBvaW50KGFycmF5LCAwLCBsaW1pdCwgMCkgIT0gMCkgeworICAgICAgICAJZXJybG4oIkZBSUwgR2V0dGluZyB0aGUgZmlyc3QgY29kZXBvaW50IG9mZnNldCB0byBhIHN0cmluZyB3aXRoICIgKworICAgICAgICAgICAgICAJCSJzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMiKTsKKyAgICAJfQorICAgIAlpZiAoVVRGMTYuZmluZENvZGVQb2ludE9mZnNldChzdHIsIDEpICE9IDEgfHwKKyAgICAgICAgCVVURjE2LmZpbmRPZmZzZXRGcm9tQ29kZVBvaW50KHN0ciwgMSkgIT0gMSB8fAorICAgICAgICAJVVRGMTYuZmluZENvZGVQb2ludE9mZnNldChzdHJidWZmLCAxKSAhPSAxIHx8CisgICAgICAgIAlVVEYxNi5maW5kT2Zmc2V0RnJvbUNvZGVQb2ludChzdHJidWZmLCAxKSAhPSAxIHx8CisgICAgICAgIAlVVEYxNi5maW5kQ29kZVBvaW50T2Zmc2V0KGFycmF5LCAwLCBsaW1pdCwgMSkgIT0gMSB8fAorICAgICAgICAJVVRGMTYuZmluZE9mZnNldEZyb21Db2RlUG9pbnQoYXJyYXksIDAsIGxpbWl0LCAxKSAhPSAxKSB7CisgICAgICAgIAllcnJsbigiRkFJTCBHZXR0aW5nIHRoZSBzZWNvbmQgY29kZXBvaW50IG9mZnNldCB0byBhIHN0cmluZyB3aXRoICIgKworICAgICAgICAgICAgICAJCSJzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMiKTsKKyAgICAJfQorICAgIAlpZiAoVVRGMTYuZmluZENvZGVQb2ludE9mZnNldChzdHIsIDIpICE9IDEgfHwKKyAgICAgICAgCVVURjE2LmZpbmRPZmZzZXRGcm9tQ29kZVBvaW50KHN0ciwgMikgIT0gMyB8fAorICAgICAgICAJVVRGMTYuZmluZENvZGVQb2ludE9mZnNldChzdHJidWZmLCAyKSAhPSAxIHx8CisgICAgICAgIAlVVEYxNi5maW5kT2Zmc2V0RnJvbUNvZGVQb2ludChzdHJidWZmLCAyKSAhPSAzIHx8CisgICAgICAgIAlVVEYxNi5maW5kQ29kZVBvaW50T2Zmc2V0KGFycmF5LCAwLCBsaW1pdCwgMikgIT0gMSB8fAorICAgICAgICAJVVRGMTYuZmluZE9mZnNldEZyb21Db2RlUG9pbnQoYXJyYXksIDAsIGxpbWl0LCAyKSAhPSAzKSB7CisgICAgICAgIAllcnJsbigiRkFJTCBHZXR0aW5nIHRoZSB0aGlyZCBjb2RlcG9pbnQgb2Zmc2V0IHRvIGEgc3RyaW5nIHdpdGggIiArCisgICAgICAgICAgICAgIAkJInN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyIpOworICAgIAl9CisgICAgCWlmIChVVEYxNi5maW5kQ29kZVBvaW50T2Zmc2V0KHN0ciwgMykgIT0gMiB8fAorICAgICAgICAJVVRGMTYuZmluZE9mZnNldEZyb21Db2RlUG9pbnQoc3RyLCAzKSAhPSA0IHx8CisgICAgICAgIAlVVEYxNi5maW5kQ29kZVBvaW50T2Zmc2V0KHN0cmJ1ZmYsIDMpICE9IDIgfHwKKyAgICAgICAgCVVURjE2LmZpbmRPZmZzZXRGcm9tQ29kZVBvaW50KHN0cmJ1ZmYsIDMpICE9IDQgfHwKKyAgICAgICAgCVVURjE2LmZpbmRDb2RlUG9pbnRPZmZzZXQoYXJyYXksIDAsIGxpbWl0LCAzKSAhPSAyIHx8CisgICAgICAgIAlVVEYxNi5maW5kT2Zmc2V0RnJvbUNvZGVQb2ludChhcnJheSwgMCwgbGltaXQsIDMpICE9IDQpIHsKKyAgICAgICAgCWVycmxuKCJGQUlMIEdldHRpbmcgdGhlIGxhc3QgY29kZXBvaW50IG9mZnNldCB0byBhIHN0cmluZyB3aXRoICIgKworICAgICAgICAgICAgICAJCSJzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMiKTsKKyAgICAJfQorICAgIAlpZiAoVVRGMTYuZmluZENvZGVQb2ludE9mZnNldChzdHIsIDQpICE9IDMgfHwgCisgICAgICAgIAlVVEYxNi5maW5kQ29kZVBvaW50T2Zmc2V0KHN0cmJ1ZmYsIDQpICE9IDMgfHwKKyAgICAgICAgCVVURjE2LmZpbmRDb2RlUG9pbnRPZmZzZXQoYXJyYXksIDAsIGxpbWl0LCA0KSAhPSAzKSB7CisgICAgICAgIAllcnJsbigiRkFJTCBHZXR0aW5nIHRoZSBsZW5ndGggb2Zmc2V0IHRvIGEgc3RyaW5nIHdpdGggIiArCisgICAgICAgICAgICAgIAkJInN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyIpOworICAgIAl9CisgICAgCXRyeSB7CisgICAgICAgIAlVVEYxNi5maW5kQ29kZVBvaW50T2Zmc2V0KHN0ciwgNSk7CisgICAgICAgIAllcnJsbigiRkFJTCBHZXR0aW5nIHRoZSBhIG5vbi1leGlzdGVuY2UgY29kZXBvaW50IHRvIGEgc3RyaW5nICIgKworICAgICAgICAJICAgICAgIndpdGggc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIik7CisgICAgCX0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIAkvLyB0aGlzIGlzIGEgc3VjY2VzcworICAgICAgICAJbG9nbG4oIlBhc3NlZCBvdXQgb2YgYm91bmRzIGNvZGVwb2ludCBvZmZzZXQiKTsKKyAgICAJfQorICAgIAl0cnkgeworICAgICAgICAJVVRGMTYuZmluZE9mZnNldEZyb21Db2RlUG9pbnQoc3RyLCA0KTsKKyAgICAgICAgCWVycmxuKCJGQUlMIEdldHRpbmcgdGhlIGEgbm9uLWV4aXN0ZW5jZSBjb2RlcG9pbnQgdG8gYSBzdHJpbmcgIiArCisgICAgICAgIAkgICAgICAid2l0aCBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMiKTsKKyAgICAJfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgCS8vIHRoaXMgaXMgYSBzdWNjZXNzCisgICAgICAgIAlsb2dsbigiUGFzc2VkIG91dCBvZiBib3VuZHMgY29kZXBvaW50IG9mZnNldCIpOworICAgIAl9CisgICAgCXRyeSB7CisgICAgICAgIAlVVEYxNi5maW5kQ29kZVBvaW50T2Zmc2V0KHN0cmJ1ZmYsIDUpOworICAgICAgICAJZXJybG4oIkZBSUwgR2V0dGluZyB0aGUgYSBub24tZXhpc3RlbmNlIGNvZGVwb2ludCB0byBhIHN0cmluZyAiICsgCisgICAgICAgIAkgICAgICAid2l0aCBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMiKTsKKyAgICAJfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgCS8vIHRoaXMgaXMgYSBzdWNjZXNzCisgICAgICAgIAlsb2dsbigiUGFzc2VkIG91dCBvZiBib3VuZHMgY29kZXBvaW50IG9mZnNldCIpOworICAgIAl9CisgICAgCXRyeSB7CisgICAgICAgIAlVVEYxNi5maW5kT2Zmc2V0RnJvbUNvZGVQb2ludChzdHJidWZmLCA0KTsKKyAgICAgICAgCWVycmxuKCJGQUlMIEdldHRpbmcgdGhlIGEgbm9uLWV4aXN0ZW5jZSBjb2RlcG9pbnQgdG8gYSBzdHJpbmcgIiArCisgICAgICAgIAkgICAgICAid2l0aCBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMiKTsKKyAgICAJfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgCS8vIHRoaXMgaXMgYSBzdWNjZXNzCisgICAgICAgIAlsb2dsbigiUGFzc2VkIG91dCBvZiBib3VuZHMgY29kZXBvaW50IG9mZnNldCIpOworICAgIAl9CisgICAgCXRyeSB7CisgICAgICAgIAlVVEYxNi5maW5kQ29kZVBvaW50T2Zmc2V0KGFycmF5LCAwLCBsaW1pdCwgNSk7CisgICAgICAgIAllcnJsbigiRkFJTCBHZXR0aW5nIHRoZSBhIG5vbi1leGlzdGVuY2UgY29kZXBvaW50IHRvIGEgc3RyaW5nICIgKyAKKyAgICAgICAgCSAgICAgICJ3aXRoIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyIpOworICAgIAl9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAJLy8gdGhpcyBpcyBhIHN1Y2Nlc3MKKyAgICAgICAgCWxvZ2xuKCJQYXNzZWQgb3V0IG9mIGJvdW5kcyBjb2RlcG9pbnQgb2Zmc2V0Iik7CisgICAgCX0KKyAgICAJdHJ5IHsKKyAgICAgICAgCVVURjE2LmZpbmRPZmZzZXRGcm9tQ29kZVBvaW50KGFycmF5LCAwLCBsaW1pdCwgNCk7CisgICAgICAgIAllcnJsbigiRkFJTCBHZXR0aW5nIHRoZSBhIG5vbi1leGlzdGVuY2UgY29kZXBvaW50IHRvIGEgc3RyaW5nICIgKworICAgICAgICAJICAgICAgIndpdGggc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIik7CisgICAgCX0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIAkvLyB0aGlzIGlzIGEgc3VjY2VzcworICAgICAgICAJbG9nbG4oIlBhc3NlZCBvdXQgb2YgYm91bmRzIGNvZGVwb2ludCBvZmZzZXQiKTsKKyAgICAJfQorICAgIAorICAgIAlpZiAoVVRGMTYuZmluZENvZGVQb2ludE9mZnNldChhcnJheSwgMSwgMywgMCkgIT0gMCB8fAorICAgICAgICAJVVRGMTYuZmluZE9mZnNldEZyb21Db2RlUG9pbnQoYXJyYXksIDEsIDMsIDApICE9IDAgfHwKKyAgICAgICAgCVVURjE2LmZpbmRDb2RlUG9pbnRPZmZzZXQoYXJyYXksIDEsIDMsIDEpICE9IDAgfHwKKyAgICAgICAgCVVURjE2LmZpbmRDb2RlUG9pbnRPZmZzZXQoYXJyYXksIDEsIDMsIDIpICE9IDEgfHwKKyAgICAgICAgCVVURjE2LmZpbmRPZmZzZXRGcm9tQ29kZVBvaW50KGFycmF5LCAxLCAzLCAxKSAhPSAyKSB7CisgICAgICAgIAllcnJsbigiRkFJTCBHZXR0aW5nIHZhbGlkIGNvZGVwb2ludCBvZmZzZXQgaW4gc3ViIGFycmF5Iik7CisgICAgCX0KKyAgCX0KKyAgCisgIAkvKioKKyAgCSogVGVzdGluZyBVVEYxNiBjbGFzcyBtZXRob2RzIGdldENoYXJDb3VudCwgKlN1cnJvZ2F0ZQorICAJKi8KKyAgCXB1YmxpYyB2b2lkIFRlc3RHZXRDaGFyQ291bnRTdXJyb2dhdGUoKQorICAJeworICAgIAlpZiAoVVRGMTYuZ2V0Q2hhckNvdW50KDB4NjEpICE9IDEgfHwKKyAgICAgICAgCVVURjE2LmdldENoYXJDb3VudCgweDEwMDAwKSAhPSAyKSB7CisgICAgICAgIAllcnJsbigiRkFJTCBnZXRDaGFyQ291bnQgcmVzdWx0IGZhaWx1cmUiKTsKKyAgICAJfQorICAgIAlpZiAoVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZSgweDYxKSAhPSAwIHx8CisgICAgICAgIAlVVEYxNi5nZXRUcmFpbFN1cnJvZ2F0ZSgweDYxKSAhPSAweDYxIHx8CisgICAgICAgIAlVVEYxNi5pc0xlYWRTdXJyb2dhdGUoKGNoYXIpMHg2MSkgfHwKKyAgICAgICAgCVVURjE2LmlzVHJhaWxTdXJyb2dhdGUoKGNoYXIpMHg2MSkgfHwKKyAgICAgICAgCVVURjE2LmdldExlYWRTdXJyb2dhdGUoMHgxMDAwMCkgIT0gMHhkODAwIHx8CisgICAgICAgIAlVVEYxNi5nZXRUcmFpbFN1cnJvZ2F0ZSgweDEwMDAwKSAhPSAweGRjMDAgfHwKKyAgICAgICAgCVVURjE2LmlzTGVhZFN1cnJvZ2F0ZSgoY2hhcikweGQ4MDApICE9IHRydWUgfHwKKyAgICAgICAgCVVURjE2LmlzVHJhaWxTdXJyb2dhdGUoKGNoYXIpMHhkODAwKSB8fAorICAgICAgICAJVVRGMTYuaXNMZWFkU3Vycm9nYXRlKChjaGFyKTB4ZGMwMCkgfHwKKyAgICAgICAgCVVURjE2LmlzVHJhaWxTdXJyb2dhdGUoKGNoYXIpMHhkYzAwKSAhPSB0cnVlKSB7CisgICAgICAgIAllcnJsbigiRkFJTCAqU3Vycm9nYXRlIHJlc3VsdCBmYWlsdXJlIik7CisgICAgCX0KKyAgICAKKyAgICAJaWYgKFVURjE2LmlzU3Vycm9nYXRlKChjaGFyKTB4NjEpIHx8ICFVVEYxNi5pc1N1cnJvZ2F0ZSgoY2hhcikweGQ4MDApIAorICAgIAkgICAgfHwgIVVURjE2LmlzU3Vycm9nYXRlKChjaGFyKTB4ZGMwMCkpIHsKKyAgICAgICAgCWVycmxuKCJGQUlMIGlzU3Vycm9nYXRlIHJlc3VsdCBmYWlsdXJlIik7CisgICAgCX0KKyAgCX0KKyAgCisgIAkvKioKKyAgCSogVGVzdGluZyBVVEYxNiBjbGFzcyBtZXRob2QgaW5zZXJ0CisgIAkqLworICAJcHVibGljIHZvaWQgVGVzdEluc2VydCgpCisgIAl7CisgICAgCVN0cmluZ0J1ZmZlciBzdHJidWZmID0gbmV3IFN0cmluZ0J1ZmZlcigiMDEyMzQ1Njc4OSIpOworICAgIAljaGFyIGFycmF5W10gPSBuZXcgY2hhclsxMjhdOworICAgIAlVdGlsaXR5LmdldENoYXJzKHN0cmJ1ZmYsIDAsIHN0cmJ1ZmYubGVuZ3RoKCksIGFycmF5LCAwKTsKKyAgICAJaW50IGxlbmd0aCA9IDEwOworICAgIAlVVEYxNi5pbnNlcnQoc3RyYnVmZiwgNSwgJ3QnKTsKKyAgICAJVVRGMTYuaW5zZXJ0KHN0cmJ1ZmYsIDUsICdzJyk7CisgICAgCVVURjE2Lmluc2VydChzdHJidWZmLCA1LCAnZScpOworICAgIAlVVEYxNi5pbnNlcnQoc3RyYnVmZiwgNSwgJ3QnKTsKKyAgICAJaWYgKCEoc3RyYnVmZi50b1N0cmluZygpLmVxdWFscygiMDEyMzR0ZXN0NTY3ODkiKSkpIHsKKyAgICAgICAgCWVycmxuKCJGQUlMIGluc2VydGluZyBcInRlc3RcIiIpOworICAgIAl9CisgICAgCWxlbmd0aCA9IFVURjE2Lmluc2VydChhcnJheSwgbGVuZ3RoLCA1LCAndCcpOworICAgIAlsZW5ndGggPSBVVEYxNi5pbnNlcnQoYXJyYXksIGxlbmd0aCwgNSwgJ3MnKTsKKyAgICAJbGVuZ3RoID0gVVRGMTYuaW5zZXJ0KGFycmF5LCBsZW5ndGgsIDUsICdlJyk7CisgICAgCWxlbmd0aCA9IFVURjE2Lmluc2VydChhcnJheSwgbGVuZ3RoLCA1LCAndCcpOworICAgIAlTdHJpbmcgc3RyID0gbmV3IFN0cmluZyhhcnJheSwgMCwgbGVuZ3RoKTsKKyAgICAJaWYgKCEoc3RyLmVxdWFscygiMDEyMzR0ZXN0NTY3ODkiKSkpIHsKKyAgICAgICAgCWVycmxuKCJGQUlMIGluc2VydGluZyBcInRlc3RcIiIpOworICAgIAl9CisgICAgCVVURjE2Lmluc2VydChzdHJidWZmLCAwLCAweDEwMDAwKTsKKyAgICAJVVRGMTYuaW5zZXJ0KHN0cmJ1ZmYsIDExLCAweDEwMDAwKTsKKyAgICAJVVRGMTYuaW5zZXJ0KHN0cmJ1ZmYsIHN0cmJ1ZmYubGVuZ3RoKCksIDB4MTAwMDApOworICAgIAlpZiAoIShzdHJidWZmLnRvU3RyaW5nKCkuZXF1YWxzKAorICAgICAgICAgICAgICAgICAgICAgIlx1ZDgwMFx1ZGMwMDAxMjM0dGVzdFx1ZDgwMFx1ZGMwMDU2Nzg5XHVkODAwXHVkYzAwIikpKSB7CisgICAgICAgIAllcnJsbigiRkFJTCBpbnNlcnRpbmcgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIik7CisgICAgCX0KKyAgICAJbGVuZ3RoID0gVVRGMTYuaW5zZXJ0KGFycmF5LCBsZW5ndGgsIDAsIDB4MTAwMDApOworICAgIAlsZW5ndGggPSBVVEYxNi5pbnNlcnQoYXJyYXksIGxlbmd0aCwgMTEsIDB4MTAwMDApOworICAgIAlsZW5ndGggPSBVVEYxNi5pbnNlcnQoYXJyYXksIGxlbmd0aCwgbGVuZ3RoLCAweDEwMDAwKTsKKyAgICAJc3RyID0gbmV3IFN0cmluZyhhcnJheSwgMCwgbGVuZ3RoKTsKKyAgICAJaWYgKCEoc3RyLmVxdWFscygKKyAgICAJICAgICAgICAgICAgICJcdWQ4MDBcdWRjMDAwMTIzNHRlc3RcdWQ4MDBcdWRjMDA1Njc4OVx1ZDgwMFx1ZGMwMCIpKSkgeworICAgICAgICAJZXJybG4oIkZBSUwgaW5zZXJ0aW5nIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyIpOworICAgIAl9CisgICAgCisgICAgCXRyeSB7CisgICAgICAgIAlVVEYxNi5pbnNlcnQoc3RyYnVmZiwgLTEsIDApOworICAgICAgICAJZXJybG4oIkZBSUwgaW52YWxpZCBpbnNlcnRpb24gb2Zmc2V0Iik7CisgICAgCX0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIAlTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAJfQorICAgIAl0cnkgeworICAgICAgICAJVVRGMTYuaW5zZXJ0KHN0cmJ1ZmYsIDY0LCAwKTsKKyAgICAgICAgCWVycmxuKCJGQUlMIGludmFsaWQgaW5zZXJ0aW9uIG9mZnNldCIpOworICAgIAl9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAJU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgCX0KKyAgICAJdHJ5IHsKKyAgICAgICAgCVVURjE2Lmluc2VydChhcnJheSwgbGVuZ3RoLCAtMSwgMCk7CisgICAgICAgIAllcnJsbigiRkFJTCBpbnZhbGlkIGluc2VydGlvbiBvZmZzZXQiKTsKKyAgICAJfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgCVN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgIAl9CisgICAgCXRyeSB7CisgICAgICAgIAlVVEYxNi5pbnNlcnQoYXJyYXksIGxlbmd0aCwgNjQsIDApOworICAgICAgICAJZXJybG4oIkZBSUwgaW52YWxpZCBpbnNlcnRpb24gb2Zmc2V0Iik7CisgICAgCX0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIAlTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAJfQorICAgIAl0cnkgeworICAgIAkJLy8gZXhjZWVkZWQgYXJyYXkgc2l6ZQorICAgICAgICAJVVRGMTYuaW5zZXJ0KGFycmF5LCBhcnJheS5sZW5ndGgsIDY0LCAwKTsKKyAgICAgICAgCWVycmxuKCJGQUlMIGludmFsaWQgaW5zZXJ0aW9uIG9mZnNldCIpOworICAgIAl9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAJU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgCX0KKyAgCX0KKyAgCisgIAkvKiAKKyAgCSogVGVzdGluZyBtb3ZlQ29kZVBvaW50T2Zmc2V0IEFQSXMKKyAgCSovCisgIAlwdWJsaWMgdm9pZCBUZXN0TW92ZUNvZGVQb2ludE9mZnNldCgpCisgIAl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAkvLzAxMjM0NTY3ODkwICAgICAxICAgICAyICAgICAzICAgICA0NTY3ODkwMTIzNAorICAgICAgCVN0cmluZyBzdHIgPSBuZXcgU3RyaW5nKCIwMTIzNDU2Nzg5XHVkODAwXHVkYzAwXHVkODAxXHVkYzAxMDEyMzQ1Njc4OSIpOworICAgICAgCWludCBtb3ZlMVtdID0gezEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMiwgMTIsIDE0LCAxNCwgMTUsIDE2LCAKKyAgICAgIAkgICAgICAgICAgICAgICAxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjR9OworICAgICAgCWludCBtb3ZlMltdID0gezIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMiwgMTQsIDE0LCAxNSwgMTUsIDE2LCAxNywgCisgICAgICAgIAkgICAgICAgICAgICAgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjR9OworICAgICAgCWludCBtb3ZlM1tdID0gezMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMiwgMTQsIDE1LCAxNSwgMTYsIDE2LCAxNywgMTgsCisgICAgICAgICAgCSAgICAgICAgICAgMTksIDIwLCAyMSwgMjIsIDIzLCAyNH07CisgICAgICAJaW50IHNpemUgPSBzdHIubGVuZ3RoKCk7CisgICAgICAJZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpICsrKSB7CisgICAgICAgICAgCWlmIChVVEYxNi5tb3ZlQ29kZVBvaW50T2Zmc2V0KHN0ciwgaSwgMSkgIT0gbW92ZTFbaV0pIHsKKyAgICAgICAgICAgICAgCWVycmxuKCJGQUlMOiBNb3Zpbmcgb2Zmc2V0ICIgKyBpICsgCisgICAgICAgICAgICAgICAgICAgIAkiIGJ5IDEgY29kZXBvaW50IGV4cGVjdGVkIHJlc3VsdCAiICsgbW92ZTFbaV0pOworICAgICAgICAgIAl9CisgICAgICAgICAgCXRyeSB7CisgICAgICAgICAgICAgIAlpZiAoVVRGMTYubW92ZUNvZGVQb2ludE9mZnNldChzdHIsIGksIDIpICE9IG1vdmUyW2ldKSB7CisgICAgICAgICAgICAgICAgICAJZXJybG4oIkZBSUw6IE1vdmluZyBvZmZzZXQgIiArIGkgKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiBieSAyIGNvZGVwb2ludCBleHBlY3RlZCByZXN1bHQgIiArIG1vdmUyW2ldKTsKKyAgICAgICAgICAgICAgCX0KKyAgICAgICAgICAJfSBjYXRjaCAoSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgIAlpZiAoaSA8PSAyMikgeworICAgICAgICAgICAgICAgICAgCXRocm93IGU7CisgICAgICAgICAgICAgIAl9CisgICAgICAgICAgCX0KKyAgICAgICAgICAJdHJ5CisgICAgICAgICAgCXsKKyAgICAgICAgICAgICAgCWlmIChVVEYxNi5tb3ZlQ29kZVBvaW50T2Zmc2V0KHN0ciwgaSwgMykgIT0gbW92ZTNbaV0pIHsKKyAgICAgICAgICAgICAgICAgIAllcnJsbigiRkFJTDogTW92aW5nIG9mZnNldCAiICsgaSArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAiIGJ5IDMgY29kZXBvaW50IGV4cGVjdGVkIHJlc3VsdCAiICsgbW92ZTNbaV0pOworICAgICAgICAgICAgICAJfQorICAgICAgICAgIAl9IGNhdGNoIChJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgCWlmIChpIDw9IDIxKSB7CisgICAgICAgICAgICAgICAgICAJdGhyb3cgZTsKKyAgICAgICAgICAgICAgCX0KKyAgICAgICAgICAJfQorICAgICAgCX0KKyAgICAgCisgICAgICAJU3RyaW5nQnVmZmVyIHN0cmJ1ZmYgPSBuZXcgU3RyaW5nQnVmZmVyKHN0cik7CisgICAgICAJZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpICsrKSB7CisgICAgICAgICAgCWlmIChVVEYxNi5tb3ZlQ29kZVBvaW50T2Zmc2V0KHN0cmJ1ZmYsIGksIDEpICE9IG1vdmUxW2ldKSB7CisgICAgICAgICAgICAgIAllcnJsbigiRkFJTDogTW92aW5nIG9mZnNldCAiICsgaSArIAorICAgICAgICAgICAgICAgICAgICAJIiBieSAxIGNvZGVwb2ludCBleHBlY3RlZCByZXN1bHQgIiArIG1vdmUxW2ldKTsKKyAgICAgICAgICAJfQorICAgICAgICAgIAl0cnkgeworICAgICAgICAgICAgICAJaWYgKFVURjE2Lm1vdmVDb2RlUG9pbnRPZmZzZXQoc3RyYnVmZiwgaSwgMikgIT0gbW92ZTJbaV0pIHsKKyAgICAgICAgICAgICAgICAgIAllcnJsbigiRkFJTDogTW92aW5nIG9mZnNldCAiICsgaSArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAiIGJ5IDIgY29kZXBvaW50IGV4cGVjdGVkIHJlc3VsdCAiICsgbW92ZTJbaV0pOworICAgICAgICAgICAgICAJfQorICAgICAgICAgIAl9IGNhdGNoIChJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgCWlmIChpIDw9IDIyKSB7CisgICAgICAgICAgICAgICAgICAJdGhyb3cgZTsKKyAgICAgICAgICAgICAgCX0KKyAgICAgICAgICAJfQorICAgICAgICAgIAl0cnkKKyAgICAgICAgICAJeworICAgICAgICAgICAgICAJaWYgKFVURjE2Lm1vdmVDb2RlUG9pbnRPZmZzZXQoc3RyYnVmZiwgaSwgMykgIT0gbW92ZTNbaV0pIHsKKyAgICAgICAgICAgICAgICAgIAllcnJsbigiRkFJTDogTW92aW5nIG9mZnNldCAiICsgaSArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAiIGJ5IDMgY29kZXBvaW50IGV4cGVjdGVkIHJlc3VsdCAiICsgbW92ZTNbaV0pOworICAgICAgICAgICAgICAJfQorICAgICAgICAgIAl9IGNhdGNoIChJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgCWlmIChpIDw9IDIxKSB7CisgICAgICAgICAgICAgICAgICAJdGhyb3cgZTsKKyAgICAgICAgICAgICAgCX0KKyAgICAgICAgICAJfSAgCisgICAgICAJfQorICAgICAgCisgICAgICAJY2hhciBzdHJhcnJheVtdID0gc3RyLnRvQ2hhckFycmF5KCk7CisgICAgICAJZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpICsrKSB7CisgICAgICAgICAgCWlmIChVVEYxNi5tb3ZlQ29kZVBvaW50T2Zmc2V0KHN0cmFycmF5LCAwLCBzaXplLCBpLCAxKSAhPSBtb3ZlMVtpXSkgCisgICAgICAgICAgCXsKKyAgICAgICAgICAgICAgCWVycmxuKCJGQUlMOiBNb3Zpbmcgb2Zmc2V0ICIgKyBpICsgCisgICAgICAgICAgICAgICAgICAgIAkiIGJ5IDEgY29kZXBvaW50IGV4cGVjdGVkIHJlc3VsdCAiICsgbW92ZTFbaV0pOworICAgICAgICAgIAl9CisgICAgICAgICAgCXRyeSB7CisgICAgICAgICAgICAgIAlpZiAoVVRGMTYubW92ZUNvZGVQb2ludE9mZnNldChzdHJhcnJheSwgMCwgc2l6ZSwgaSwgMikgIT0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW92ZTJbaV0pIHsKKyAgICAgICAgICAgICAgICAgIAllcnJsbigiRkFJTDogTW92aW5nIG9mZnNldCAiICsgaSArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAiIGJ5IDIgY29kZXBvaW50IGV4cGVjdGVkIHJlc3VsdCAiICsgbW92ZTJbaV0pOworICAgICAgICAgICAgICAJfQorICAgICAgICAgIAl9IGNhdGNoIChJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgCWlmIChpIDw9IDIyKSB7CisgICAgICAgICAgICAgICAgICAJdGhyb3cgZTsKKyAgICAgICAgICAgICAgCX0KKyAgICAgICAgICAJfQorICAgICAgICAgIAl0cnkKKyAgICAgICAgICAJeworICAgICAgICAgICAgICAJaWYgKFVURjE2Lm1vdmVDb2RlUG9pbnRPZmZzZXQoc3RyYXJyYXksICAwLCBzaXplLCBpLCAzKSAhPSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb3ZlM1tpXSkgeworICAgICAgICAgICAgICAgICAgCWVycmxuKCJGQUlMOiBNb3Zpbmcgb2Zmc2V0ICIgKyBpICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgYnkgMyBjb2RlcG9pbnQgZXhwZWN0ZWQgcmVzdWx0ICIgKyBtb3ZlM1tpXSk7CisgICAgICAgICAgICAgIAl9CisgICAgICAgICAgCX0gY2F0Y2ggKEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAJaWYgKGkgPD0gMjEpIHsKKyAgICAgICAgICAgICAgICAgIAl0aHJvdyBlOworICAgICAgICAgICAgICAJfQorICAgICAgICAgIAl9ICAKKyAgICAgIAl9CisgICAgICAKKyAgICAgIAlpZiAoVVRGMTYubW92ZUNvZGVQb2ludE9mZnNldChzdHJhcnJheSwgOSwgMTMsIDAsIDIpICE9IDMpIHsKKyAgICAgICAgICAJZXJybG4oIkZBSUw6IE1vdmluZyBvZmZzZXQgMCBieSAyIGNvZGVwb2ludCBpbiBzdWJhcnJheSBbOSwgMTNdICIgKworICAgICAgICAgICAgICAgIAkiZXhwZWN0ZWQgcmVzdWx0IDMiKTsKKyAgICAgIAl9CisgICAgICAJaWYgKFVURjE2Lm1vdmVDb2RlUG9pbnRPZmZzZXQoc3RyYXJyYXksIDksIDEzLCAxLCAyKSAhPSA0KSB7CisgICAgICAgICAgCWVycmxuKCJGQUlMOiBNb3Zpbmcgb2Zmc2V0IDEgYnkgMiBjb2RlcG9pbnQgaW4gc3ViYXJyYXkgWzksIDEzXSAiICsKKyAgICAgICAgICAgICAgICAJImV4cGVjdGVkIHJlc3VsdCA0Iik7CisgICAgICAJfQorICAgICAgCWlmIChVVEYxNi5tb3ZlQ29kZVBvaW50T2Zmc2V0KHN0cmFycmF5LCAxMSwgMTQsIDAsIDIpICE9IDMpIHsKKyAgICAgICAgICAJZXJybG4oIkZBSUw6IE1vdmluZyBvZmZzZXQgMCBieSAyIGNvZGVwb2ludCBpbiBzdWJhcnJheSBbMTEsIDE0XSAiIAorICAgICAgICAgIAkgICAgICArICJleHBlY3RlZCByZXN1bHQgMyIpOworICAgICAgCX0KKyAgCX0KKyAgCisgIAkvKioKKyAgCSogVGVzdGluZyBVVEYxNiBjbGFzcyBtZXRob2RzIHNldENoYXJBdAorICAJKi8KKyAgCXB1YmxpYyB2b2lkIFRlc3RTZXRDaGFyQXQoKQorICAJeworICAgIAlTdHJpbmdCdWZmZXIgc3RyYnVmZiA9IG5ldyBTdHJpbmdCdWZmZXIoIjAxMjM0NSIpOworICAgIAljaGFyIGFycmF5W10gPSBuZXcgY2hhclsxMjhdOworICAgIAlVdGlsaXR5LmdldENoYXJzKHN0cmJ1ZmYsIDAsIHN0cmJ1ZmYubGVuZ3RoKCksIGFycmF5LCAwKTsKKyAgICAJaW50IGxlbmd0aCA9IDY7CisgICAgCWZvciAoaW50IGkgPSAwOyBpIDwgbGVuZ3RoOyBpICsrKSB7CisgICAgICAgIAlVVEYxNi5zZXRDaGFyQXQoc3RyYnVmZiwgaSwgJzAnKTsKKyAgICAgICAgCVVURjE2LnNldENoYXJBdChhcnJheSwgbGVuZ3RoLCBpLCAnMCcpOworICAgIAl9CisgICAgCVN0cmluZyBzdHIgPSBuZXcgU3RyaW5nKGFycmF5LCAwLCBsZW5ndGgpOworICAgIAlpZiAoIShzdHJidWZmLnRvU3RyaW5nKCkuZXF1YWxzKCIwMDAwMDAiKSkgfHwKKyAgICAgICAgCSEoc3RyLmVxdWFscygiMDAwMDAwIikpKSB7CisgICAgICAgIAllcnJsbigiRkFJTDogc2V0Q2hhciB0byAnMCcgZmFpbGVkIik7CisgICAgCX0KKyAgICAJVVRGMTYuc2V0Q2hhckF0KHN0cmJ1ZmYsIDAsIDB4MTAwMDApOworICAgIAlVVEYxNi5zZXRDaGFyQXQoc3RyYnVmZiwgNCwgMHgxMDAwMCk7CisgICAgCVVURjE2LnNldENoYXJBdChzdHJidWZmLCA3LCAweDEwMDAwKTsKKyAgICAJaWYgKCEoc3RyYnVmZi50b1N0cmluZygpLmVxdWFscygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVkODAwXHVkYzAwMDBcdWQ4MDBcdWRjMDAwXHVkODAwXHVkYzAwIikpKSB7CisgICAgICAgIAllcnJsbigiRkFJTDogc2V0Q2hhciB0byAweDEwMDAwIGZhaWxlZCIpOworICAgIAl9CisgICAgCWxlbmd0aCA9IFVURjE2LnNldENoYXJBdChhcnJheSwgbGVuZ3RoLCAwLCAweDEwMDAwKTsKKyAgICAJbGVuZ3RoID0gVVRGMTYuc2V0Q2hhckF0KGFycmF5LCBsZW5ndGgsIDQsIDB4MTAwMDApOworICAgIAlsZW5ndGggPSBVVEYxNi5zZXRDaGFyQXQoYXJyYXksIGxlbmd0aCwgNywgMHgxMDAwMCk7CisgICAgCXN0ciA9IG5ldyBTdHJpbmcoYXJyYXksIDAsIGxlbmd0aCk7CisgICAgCWlmICghKHN0ci5lcXVhbHMoIlx1ZDgwMFx1ZGMwMDAwXHVkODAwXHVkYzAwMFx1ZDgwMFx1ZGMwMCIpKSkgeworICAgICAgICAJZXJybG4oIkZBSUw6IHNldENoYXIgdG8gMHgxMDAwMCBmYWlsZWQiKTsKKyAgICAJfQorICAgIAlVVEYxNi5zZXRDaGFyQXQoc3RyYnVmZiwgMCwgJzAnKTsKKyAgICAJVVRGMTYuc2V0Q2hhckF0KHN0cmJ1ZmYsIDEsICcxJyk7CisgICAgCVVURjE2LnNldENoYXJBdChzdHJidWZmLCAyLCAnMicpOworICAgIAlVVEYxNi5zZXRDaGFyQXQoc3RyYnVmZiwgNCwgJzMnKTsKKyAgICAJVVRGMTYuc2V0Q2hhckF0KHN0cmJ1ZmYsIDQsICc0Jyk7CisgICAgCVVURjE2LnNldENoYXJBdChzdHJidWZmLCA1LCAnNScpOworICAgIAlpZiAoIXN0cmJ1ZmYudG9TdHJpbmcoKS5lcXVhbHMoIjAxMjM0NSIpKSB7CisgICAgCQllcnJsbigiRmFpbCBjb252ZXJ0aW5nIHN1cHBsZW1lbnRhcmllcyBpbiBTdHJpbmdCdWZmZXIgdG8gQk1QICIgKworICAgIAkJICAgICAgImNoYXJhY3RlcnMiKTsKKyAgICAJfQorICAgIAlsZW5ndGggPSBVVEYxNi5zZXRDaGFyQXQoYXJyYXksIGxlbmd0aCwgMCwgJzAnKTsKKyAgICAJbGVuZ3RoID0gVVRGMTYuc2V0Q2hhckF0KGFycmF5LCBsZW5ndGgsIDEsICcxJyk7CisgICAgCWxlbmd0aCA9IFVURjE2LnNldENoYXJBdChhcnJheSwgbGVuZ3RoLCAyLCAnMicpOworICAgIAlsZW5ndGggPSBVVEYxNi5zZXRDaGFyQXQoYXJyYXksIGxlbmd0aCwgNCwgJzMnKTsKKyAgICAJbGVuZ3RoID0gVVRGMTYuc2V0Q2hhckF0KGFycmF5LCBsZW5ndGgsIDQsICc0Jyk7CisgICAgCWxlbmd0aCA9IFVURjE2LnNldENoYXJBdChhcnJheSwgbGVuZ3RoLCA1LCAnNScpOworICAgIAlzdHIgPSBuZXcgU3RyaW5nKGFycmF5LCAwLCBsZW5ndGgpOworICAgIAlpZiAoIXN0ci5lcXVhbHMoIjAxMjM0NSIpKSB7CisgICAgCQllcnJsbigiRmFpbCBjb252ZXJ0aW5nIHN1cHBsZW1lbnRhcmllcyBpbiBhcnJheSB0byBCTVAgIiArCisgICAgCQkgICAgICAiY2hhcmFjdGVycyIpOworICAgIAl9CisgICAgCXRyeSB7CisgICAgICAgIAlVVEYxNi5zZXRDaGFyQXQoc3RyYnVmZiwgLTEsIDApOworICAgICAgICAJZXJybG4oIkZBSUw6IHNldHRpbmcgY2hhcmFjdGVyIGF0IGludmFsaWQgb2Zmc2V0Iik7CisgICAgCX0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIAlTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAJfQorICAgIAl0cnkgeworICAgICAgICAJVVRGMTYuc2V0Q2hhckF0KGFycmF5LCBsZW5ndGgsIC0xLCAwKTsKKyAgICAgICAgCWVycmxuKCJGQUlMOiBzZXR0aW5nIGNoYXJhY3RlciBhdCBpbnZhbGlkIG9mZnNldCIpOworICAgIAl9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAJU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgCX0KKyAgICAJdHJ5IHsKKyAgICAgICAgCVVURjE2LnNldENoYXJBdChzdHJidWZmLCBsZW5ndGgsIDApOworICAgICAgICAJZXJybG4oIkZBSUw6IHNldHRpbmcgY2hhcmFjdGVyIGF0IGludmFsaWQgb2Zmc2V0Iik7CisgICAgCX0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIAlTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAJfQorICAgIAl0cnkgeworICAgICAgICAJVVRGMTYuc2V0Q2hhckF0KGFycmF5LCBsZW5ndGgsIGxlbmd0aCwgMCk7CisgICAgICAgIAllcnJsbigiRkFJTDogc2V0dGluZyBjaGFyYWN0ZXIgYXQgaW52YWxpZCBvZmZzZXQiKTsKKyAgICAJfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgCVN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgIAl9CisgIAl9CisKKyAgCS8qKgorICAJKiBUZXN0aW5nIFVURjE2IHZhbHVlb2YgQVBJcworICAJKi8KKyAgCXB1YmxpYyB2b2lkIFRlc3RWYWx1ZU9mKCkKKyAgCXsKKyAgICAJaWYgKCFVVEYxNi52YWx1ZU9mKDB4NjEpLmVxdWFscygiYSIpIHx8IAorICAgICAgICAJIVVURjE2LnZhbHVlT2YoMHgxMDAwMCkuZXF1YWxzKCJcdWQ4MDBcdWRjMDAiKSkgeworICAgICAgICAJZXJybG4oIkZBSUw6IHZhbHVlb2YoY2hhcjMyKSIpOworICAgIAl9CisgICAgCVN0cmluZyBzdHIgPSBuZXcgU3RyaW5nKCIwMTIzNFx1ZDgwMFx1ZGMwMDU2Nzg5Iik7CisgICAgCVN0cmluZ0J1ZmZlciBzdHJidWZmID0gbmV3IFN0cmluZ0J1ZmZlcihzdHIpOworICAgIAljaGFyIGFycmF5W10gPSBzdHIudG9DaGFyQXJyYXkoKTsKKyAgICAJaW50IGxlbmd0aCA9IHN0ci5sZW5ndGgoKTsKKyAgICAKKyAgICAJU3RyaW5nIGV4cGVjdGVkW10gPSB7IjAiLCAiMSIsICIyIiwgIjMiLCAiNCIsICJcdWQ4MDBcdWRjMDAiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAJCSJcdWQ4MDBcdWRjMDAiLCAiNSIsICI2IiwgIjciLCAiOCIsICI5In07CisgICAgCWZvciAoaW50IGkgPSAwOyBpIDwgbGVuZ3RoOyBpICsrKSB7CisgICAgICAgIAlpZiAoIVVURjE2LnZhbHVlT2Yoc3RyLCBpKS5lcXVhbHMoZXhwZWN0ZWRbaV0pIHx8CisgICAgICAgICAgICAJIVVURjE2LnZhbHVlT2Yoc3RyYnVmZiwgaSkuZXF1YWxzKGV4cGVjdGVkW2ldKSB8fAorICAgICAgICAgICAgCSFVVEYxNi52YWx1ZU9mKGFycmF5LCAwLCBsZW5ndGgsIGkpLmVxdWFscyhleHBlY3RlZFtpXSkpIHsKKyAgICAgICAgICAgIAllcnJsbigiRkFJTDogdmFsdWVPZigpIGV4cGVjdGVkICIgKyBleHBlY3RlZFtpXSk7CisgICAgICAgIAl9CisgICAgCX0KKyAgICAJdHJ5IHsKKyAgICAgICAgCVVURjE2LnZhbHVlT2Yoc3RyLCAtMSk7CisgICAgICAgIAllcnJsbigiRkFJTDogb3V0IG9mIGJvdW5kcyBlcnJvciBleHBlY3RlZCIpOworICAgIAl9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAJU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgCX0KKyAgICAJdHJ5IHsKKyAgICAgICAgCVVURjE2LnZhbHVlT2Yoc3RyYnVmZiwgLTEpOworICAgICAgICAJZXJybG4oIkZBSUw6IG91dCBvZiBib3VuZHMgZXJyb3IgZXhwZWN0ZWQiKTsKKyAgICAJfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgCVN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgIAl9CisgICAgCXRyeSB7CisgICAgICAgIAlVVEYxNi52YWx1ZU9mKGFycmF5LCAwLCBsZW5ndGgsIC0xKTsKKyAgICAgICAgCWVycmxuKCJGQUlMOiBvdXQgb2YgYm91bmRzIGVycm9yIGV4cGVjdGVkIik7CisgICAgCX0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIAlTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAJfQorICAgIAl0cnkgeworICAgICAgICAJVVRGMTYudmFsdWVPZihzdHIsIGxlbmd0aCk7CisgICAgICAgIAllcnJsbigiRkFJTDogb3V0IG9mIGJvdW5kcyBlcnJvciBleHBlY3RlZCIpOworICAgIAl9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAJU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgCX0KKyAgICAJdHJ5IHsKKyAgICAgICAgCVVURjE2LnZhbHVlT2Yoc3RyYnVmZiwgbGVuZ3RoKTsKKyAgICAgICAgCWVycmxuKCJGQUlMOiBvdXQgb2YgYm91bmRzIGVycm9yIGV4cGVjdGVkIik7CisgICAgCX0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIAlTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAJfQorICAgIAl0cnkgeworICAgICAgICAJVVRGMTYudmFsdWVPZihhcnJheSwgMCwgbGVuZ3RoLCBsZW5ndGgpOworICAgICAgICAJZXJybG4oIkZBSUw6IG91dCBvZiBib3VuZHMgZXJyb3IgZXhwZWN0ZWQiKTsKKyAgICAJfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgCVN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgIAl9CisgICAgCWlmICghVVRGMTYudmFsdWVPZihhcnJheSwgNiwgbGVuZ3RoLCAwKS5lcXVhbHMoIlx1ZGMwMCIpIHx8CisgICAgICAgIAkhVVRGMTYudmFsdWVPZihhcnJheSwgMCwgNiwgNSkuZXF1YWxzKCJcdWQ4MDAiKSkgeworICAgICAgICAJZXJybG4oIkZBSUw6IGVycm9yIGdldHRpbmcgcGFydGlhbCBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlciIpOworICAgIAl9CisgICAgCXRyeSB7CisgICAgICAgIAlVVEYxNi52YWx1ZU9mKGFycmF5LCAzLCA1LCAtMSk7CisgICAgICAgIAllcnJsbigiRkFJTDogb3V0IG9mIGJvdW5kcyBlcnJvciBleHBlY3RlZCIpOworICAgIAl9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAJU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgCX0KKyAgICAJdHJ5IHsKKyAgICAgICAgCVVURjE2LnZhbHVlT2YoYXJyYXksIDMsIDUsIDMpOworICAgICAgICAJZXJybG4oIkZBSUw6IG91dCBvZiBib3VuZHMgZXJyb3IgZXhwZWN0ZWQiKTsKKyAgICAJfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgCVN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgIAl9CisgIAl9CisgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RJbmRleE9mKCkKKyAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgIC8vMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1CisgICAgICAgIFN0cmluZyB0ZXN0MSAgICAgPSAidGVzdCB0ZXN0IHR0ZXN0IHRldGVzdCB0ZXN0ZXN0ZXN0c3R0IjsKKyAgICAgICAgU3RyaW5nIHRlc3QyICAgICA9ICJ0ZXN0IjsKKyAgICAgICAgaW50ICAgIHRlc3RDaGFyMSA9IDB4NzQ7CisgICAgICAgIGludCAgICB0ZXN0Q2hhcjIgPSAweDIwNDAyOworICAgICAgICBpbnQgICAgdGVzdENoYXIzID0gMHhkYzAyOworICAgICAgICBpbnQgICAgdGVzdENoYXI0ID0gMHhkODQxOworICAgICAgICBTdHJpbmcgdGVzdDMgICAgID0gIlx1ZDg0MVx1ZGMwMlx1MDA3MVx1ZGMwMlx1ZDg0MVx1MDA3MVx1ZDg0MVx1ZGMwMlx1MDA3MVx1MDA3Mlx1ZDg0MVx1ZGMwMlx1MDA3MVx1ZDg0MVx1ZGMwMlx1MDA3MVx1ZGMwMlx1ZDg0MVx1MDA3MyI7CisgICAgICAgIFN0cmluZyB0ZXN0NCAgICAgPSBVQ2hhcmFjdGVyLnRvU3RyaW5nKHRlc3RDaGFyMik7CisKKyAgICAgICAgaWYgKFVURjE2LmluZGV4T2YodGVzdDEsIHRlc3QyKSAhPSAwIHx8CisgICAgICAgICAgICBVVEYxNi5pbmRleE9mKHRlc3QxLCB0ZXN0MiwgMCkgIT0gMCkgeworICAgICAgICAgICAgZXJybG4oImluZGV4T2YgZmFpbGVkOiBleHBlY3RlZCB0byBmaW5kICciICsgdGVzdDIgKyAKKyAgICAgICAgICAgICAgICAgICInIGF0IHBvc2l0aW9uIDAgaW4gdGV4dCAnIiArIHRlc3QxICsgIiciKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoVVRGMTYuaW5kZXhPZih0ZXN0MSwgdGVzdENoYXIxKSAhPSAwIHx8CisgICAgICAgICAgICBVVEYxNi5pbmRleE9mKHRlc3QxLCB0ZXN0Q2hhcjEsIDApICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJpbmRleE9mIGZhaWxlZDogZXhwZWN0ZWQgdG8gZmluZCAweCIgKyAKKyAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcodGVzdENoYXIxKSArIAorICAgICAgICAgICAgICAgICAgIiBhdCBwb3NpdGlvbiAwIGluIHRleHQgJyIgKyB0ZXN0MSArICInIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKFVURjE2LmluZGV4T2YodGVzdDMsIHRlc3RDaGFyMikgIT0gMCB8fAorICAgICAgICAgICAgVVRGMTYuaW5kZXhPZih0ZXN0MywgdGVzdENoYXIyLCAwKSAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiaW5kZXhPZiBmYWlsZWQ6IGV4cGVjdGVkIHRvIGZpbmQgMHgiICsgCisgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKHRlc3RDaGFyMikgKyAKKyAgICAgICAgICAgICAgICAgICIgYXQgcG9zaXRpb24gMCBpbiB0ZXh0ICciICsgVXRpbGl0eS5oZXgodGVzdDMpICsgIiciKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgdGVzdDUgPSAiXHVkODQxXHVkODQxXHVkYzAyIjsKKyAgICAgICAgaWYgKFVURjE2LmluZGV4T2YodGVzdDUsIHRlc3RDaGFyMikgIT0gMSB8fAorICAgICAgICAgICAgVVRGMTYuaW5kZXhPZih0ZXN0NSwgdGVzdENoYXIyLCAwKSAhPSAxKSB7CisgICAgICAgICAgICBlcnJsbigiaW5kZXhPZiBmYWlsZWQ6IGV4cGVjdGVkIHRvIGZpbmQgMHgiICsgCisgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKHRlc3RDaGFyMikgKyAKKyAgICAgICAgICAgICAgICAgICIgYXQgcG9zaXRpb24gMCBpbiB0ZXh0ICciICsgVXRpbGl0eS5oZXgodGVzdDMpICsgIiciKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoVVRGMTYubGFzdEluZGV4T2YodGVzdDEsIHRlc3QyKSAhPSAyOSB8fAorICAgICAgICAgICAgVVRGMTYubGFzdEluZGV4T2YodGVzdDEsIHRlc3QyLCB0ZXN0MS5sZW5ndGgoKSkgIT0gMjkpIHsKKyAgICAgICAgICAgIGVycmxuKCJsYXN0SW5kZXhPZiBmYWlsZWQ6IGV4cGVjdGVkIHRvIGZpbmQgJyIgKyB0ZXN0MiArIAorICAgICAgICAgICAgICAgICAgIicgYXQgcG9zaXRpb24gMjkgaW4gdGV4dCAnIiArIHRlc3QxICsgIiciKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoVVRGMTYubGFzdEluZGV4T2YodGVzdDEsIHRlc3RDaGFyMSkgIT0gMzUgfHwKKyAgICAgICAgICAgIFVURjE2Lmxhc3RJbmRleE9mKHRlc3QxLCB0ZXN0Q2hhcjEsIHRlc3QxLmxlbmd0aCgpKSAhPSAzNSkgeworICAgICAgICAgICAgZXJybG4oImxhc3RJbmRleE9mIGZhaWxlZDogZXhwZWN0ZWQgdG8gZmluZCAweCIgKyAKKyAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcodGVzdENoYXIxKSArIAorICAgICAgICAgICAgICAgICAgIiBhdCBwb3NpdGlvbiAzNSBpbiB0ZXh0ICciICsgdGVzdDEgKyAiJyIpOworICAgICAgICB9CisgICAgICAgIGlmIChVVEYxNi5sYXN0SW5kZXhPZih0ZXN0MywgdGVzdENoYXIyKSAhPSAxMyB8fAorICAgICAgICAgICAgVVRGMTYubGFzdEluZGV4T2YodGVzdDMsIHRlc3RDaGFyMiwgdGVzdDMubGVuZ3RoKCkpICE9IDEzKSB7CisgICAgICAgICAgICBlcnJsbigiaW5kZXhPZiBmYWlsZWQ6IGV4cGVjdGVkIHRvIGZpbmQgMHgiICsgCisgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKHRlc3RDaGFyMikgKyAKKyAgICAgICAgICAgICAgICAgICIgYXQgcG9zaXRpb24gMTMgaW4gdGV4dCAnIiArIFV0aWxpdHkuaGV4KHRlc3QzKSArICInIik7CisgICAgICAgIH0KKyAgICAgICAgaW50IG9jY3VycmVuY2VzID0gMDsKKyAgICAgICAgZm9yIChpbnQgc3RhcnRQb3MgPSAwOyBzdGFydFBvcyAhPSAtMSAmJiBzdGFydFBvcyA8IHRlc3QxLmxlbmd0aCgpOykKKyAgICAgICAgeworICAgICAgICAgICAgc3RhcnRQb3MgPSBVVEYxNi5pbmRleE9mKHRlc3QxLCB0ZXN0Miwgc3RhcnRQb3MpOworICAgICAgICAgICAgaWYgKHN0YXJ0UG9zID49IDApIHsKKyAgICAgICAgICAgICAgICArKyBvY2N1cnJlbmNlczsKKyAgICAgICAgICAgICAgICBzdGFydFBvcyArPSA0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChvY2N1cnJlbmNlcyAhPSA2KSB7CisgICAgICAgICAgICBlcnJsbigiaW5kZXhPZiBmYWlsZWQ6IGV4cGVjdGVkIHRvIGZpbmQgNiBvY2N1cnJlbmNlcywgZm91bmQgIiAKKyAgICAgICAgICAgICAgICAgICsgb2NjdXJyZW5jZXMpOworICAgICAgICB9CisgICAgCisgICAgICAgIG9jY3VycmVuY2VzID0gMDsKKyAgICAgICAgZm9yIChpbnQgc3RhcnRQb3MgPSAxMDsgc3RhcnRQb3MgIT0gLTEgJiYgc3RhcnRQb3MgPCB0ZXN0MS5sZW5ndGgoKTspCisgICAgICAgIHsKKyAgICAgICAgICAgIHN0YXJ0UG9zID0gVVRGMTYuaW5kZXhPZih0ZXN0MSwgdGVzdDIsIHN0YXJ0UG9zKTsKKyAgICAgICAgICAgIGlmIChzdGFydFBvcyA+PSAwKSB7CisgICAgICAgICAgICAgICAgKysgb2NjdXJyZW5jZXM7CisgICAgICAgICAgICAgICAgc3RhcnRQb3MgKz0gNDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAob2NjdXJyZW5jZXMgIT0gNCkgeworICAgICAgICAgICAgZXJybG4oImluZGV4T2Ygd2l0aCBzdGFydGluZyBvZmZzZXQgZmFpbGVkOiBleHBlY3RlZCB0byBmaW5kIDQgb2NjdXJyZW5jZXMsIGZvdW5kICIgCisgICAgICAgICAgICAgICAgICArIG9jY3VycmVuY2VzKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgb2NjdXJyZW5jZXMgPSAwOworICAgICAgICBmb3IgKGludCBzdGFydFBvcyA9IDA7CisgICAgICAgICAgICBzdGFydFBvcyAhPSAtMSAmJiBzdGFydFBvcyA8IHRlc3QzLmxlbmd0aCgpOykgeworICAgICAgICAgICAgc3RhcnRQb3MgPSBVVEYxNi5pbmRleE9mKHRlc3QzLCB0ZXN0NCwgc3RhcnRQb3MpOworICAgICAgICAgICAgaWYgKHN0YXJ0UG9zICE9IC0xKSB7CisgICAgICAgICAgICAgICAgKysgb2NjdXJyZW5jZXM7CisgICAgICAgICAgICAgICAgc3RhcnRQb3MgKz0gMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAob2NjdXJyZW5jZXMgIT0gNCkgeworICAgICAgICAgICAgZXJybG4oImluZGV4T2YgZmFpbGVkOiBleHBlY3RlZCB0byBmaW5kIDQgb2NjdXJyZW5jZXMsIGZvdW5kICIgCisgICAgICAgICAgICArIG9jY3VycmVuY2VzKTsKKyAgICAgICAgfQorCisgICAgICAgIG9jY3VycmVuY2VzID0gMDsKKyAgICAgICAgZm9yIChpbnQgc3RhcnRQb3MgPSAxMDsKKyAgICAgICAgICAgICBzdGFydFBvcyAhPSAtMSAmJiBzdGFydFBvcyA8IHRlc3QzLmxlbmd0aCgpOykgeworICAgICAgICAgICAgc3RhcnRQb3MgPSBVVEYxNi5pbmRleE9mKHRlc3QzLCB0ZXN0NCwgc3RhcnRQb3MpOworICAgICAgICAgICAgaWYgKHN0YXJ0UG9zICE9IC0xKSB7CisgICAgICAgICAgICAgICAgKysgb2NjdXJyZW5jZXM7IAorICAgICAgICAgICAgICAgIHN0YXJ0UG9zICs9IDI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKG9jY3VycmVuY2VzICE9IDIpIHsKKyAgICAgICAgICAgIGVycmxuKCJpbmRleE9mIGZhaWxlZDogZXhwZWN0ZWQgdG8gZmluZCAyIG9jY3VycmVuY2VzLCBmb3VuZCAiIAorICAgICAgICAgICAgICAgICAgKyBvY2N1cnJlbmNlcyk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG9jY3VycmVuY2VzID0gMDsKKyAgICAgICAgZm9yIChpbnQgc3RhcnRQb3MgPSAwOworICAgICAgICAgICAgc3RhcnRQb3MgIT0gLTEgJiYgc3RhcnRQb3MgPCB0ZXN0MS5sZW5ndGgoKTspIHsKKyAgICAgICAgICAgIHN0YXJ0UG9zID0gVVRGMTYuaW5kZXhPZih0ZXN0MSwgdGVzdENoYXIxLCBzdGFydFBvcyk7CisgICAgICAgICAgICBpZiAoc3RhcnRQb3MgIT0gLTEpIHsgCisgICAgICAgICAgICAgICAgKysgb2NjdXJyZW5jZXM7IAorICAgICAgICAgICAgICAgIHN0YXJ0UG9zICs9IDE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKG9jY3VycmVuY2VzICE9IDE2KSB7CisgICAgICAgICAgICBlcnJsbigiaW5kZXhPZiB3aXRoIGNoYXJhY3RlciBmYWlsZWQ6IGV4cGVjdGVkIHRvIGZpbmQgMTYgb2NjdXJyZW5jZXMsIGZvdW5kICIgCisgICAgICAgICAgICAgICAgICArIG9jY3VycmVuY2VzKTsKKyAgICAgICAgfQorCisgICAgICAgIG9jY3VycmVuY2VzID0gMDsKKyAgICAgICAgZm9yIChpbnQgc3RhcnRQb3MgPSAxMDsKKyAgICAgICAgICAgIHN0YXJ0UG9zICE9IC0xICYmIHN0YXJ0UG9zIDwgdGVzdDEubGVuZ3RoKCk7KSB7CisgICAgICAgICAgICBzdGFydFBvcyA9IFVURjE2LmluZGV4T2YodGVzdDEsIHRlc3RDaGFyMSwgc3RhcnRQb3MpOworICAgICAgICAgICAgaWYgKHN0YXJ0UG9zICE9IC0xKSB7IAorICAgICAgICAgICAgICAgICsrIG9jY3VycmVuY2VzOyAKKyAgICAgICAgICAgICAgICBzdGFydFBvcyArPSAxOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChvY2N1cnJlbmNlcyAhPSAxMikgeworICAgICAgICAgICAgZXJybG4oImluZGV4T2Ygd2l0aCBjaGFyYWN0ZXIgJiBzdGFydCBvZmZzZXQgZmFpbGVkOiBleHBlY3RlZCB0byBmaW5kIDEyIG9jY3VycmVuY2VzLCBmb3VuZCAiIAorICAgICAgICAgICAgKyBvY2N1cnJlbmNlcyk7CisgICAgICAgIH0KKworICAgICAgICBvY2N1cnJlbmNlcyA9IDA7CisgICAgICAgIGZvciAoaW50IHN0YXJ0UG9zID0gMDsKKyAgICAgICAgICAgIHN0YXJ0UG9zICE9IC0xICYmIHN0YXJ0UG9zIDwgdGVzdDMubGVuZ3RoKCk7KSB7CisgICAgICAgICAgICBzdGFydFBvcyA9IFVURjE2LmluZGV4T2YodGVzdDMsIHRlc3RDaGFyMiwgc3RhcnRQb3MpOworICAgICAgICAgICAgaWYgKHN0YXJ0UG9zICE9IC0xKSB7CisgICAgICAgICAgICAgICAgKysgb2NjdXJyZW5jZXM7IAorICAgICAgICAgICAgICAgIHN0YXJ0UG9zICs9IDE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKG9jY3VycmVuY2VzICE9IDQpIHsKKyAgICAgICAgICAgIGVycmxuKCJpbmRleE9mIGZhaWxlZDogZXhwZWN0ZWQgdG8gZmluZCA0IG9jY3VycmVuY2VzLCBmb3VuZCAiIAorICAgICAgICAgICAgICAgICAgKyBvY2N1cnJlbmNlcyk7CisgICAgICAgIH0KKyAgICAgCisgICAgICAgIG9jY3VycmVuY2VzID0gMDsKKyAgICAgICAgZm9yIChpbnQgc3RhcnRQb3MgPSA1OyBzdGFydFBvcyAhPSAtMSAmJiBzdGFydFBvcyA8IHRlc3QzLmxlbmd0aCgpOykgeworICAgICAgICAgICAgc3RhcnRQb3MgPSBVVEYxNi5pbmRleE9mKHRlc3QzLCB0ZXN0Q2hhcjIsIHN0YXJ0UG9zKTsKKyAgICAgICAgICAgIGlmIChzdGFydFBvcyAhPSAtMSkgeworICAgICAgICAgICAgICAgICsrIG9jY3VycmVuY2VzOyAKKyAgICAgICAgICAgICAgICBzdGFydFBvcyArPSAxOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChvY2N1cnJlbmNlcyAhPSAzKSB7CisgICAgICAgICAgICBlcnJsbigiaW5kZXhPZiB3aXRoIGNoYXJhY3RlciAmIHN0YXJ0ICYgZW5kIG9mZnNldHMgZmFpbGVkOiBleHBlY3RlZCB0byBmaW5kIDIgb2NjdXJyZW5jZXMsIGZvdW5kICIgCisgICAgICAgICAgICArIG9jY3VycmVuY2VzKTsKKyAgICAgICAgfQorICAgICAgICBvY2N1cnJlbmNlcyA9IDA7CisgICAgICAgIGZvciAoaW50IHN0YXJ0UG9zID0gMzI7IHN0YXJ0UG9zICE9IC0xOykgeworICAgICAgICAgICAgc3RhcnRQb3MgPSBVVEYxNi5sYXN0SW5kZXhPZih0ZXN0MSwgdGVzdDIsIHN0YXJ0UG9zKTsKKyAgICAgICAgICAgIGlmIChzdGFydFBvcyAhPSAtMSkgeworICAgICAgICAgICAgICAgICsrIG9jY3VycmVuY2VzOworICAgICAgICAgICAgICAgIHN0YXJ0UG9zIC09IDU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKG9jY3VycmVuY2VzICE9IDYpIHsKKyAgICAgICAgICAgIGVycmxuKCJsYXN0SW5kZXhPZiB3aXRoIHN0YXJ0aW5nIGFuZCBlbmRpbmcgb2Zmc2V0cyBmYWlsZWQ6IGV4cGVjdGVkIHRvIGZpbmQgNCBvY2N1cnJlbmNlcywgZm91bmQgIiAKKyAgICAgICAgICAgICAgICAgICsgb2NjdXJyZW5jZXMpOworICAgICAgICB9CisgICAgICAgIG9jY3VycmVuY2VzID0gMDsKKyAgICAgICAgZm9yIChpbnQgc3RhcnRQb3MgPSAzMjsgc3RhcnRQb3MgIT0gLTE7KSB7CisgICAgICAgICAgICBzdGFydFBvcyA9IFVURjE2Lmxhc3RJbmRleE9mKHRlc3QxLCB0ZXN0Q2hhcjEsIHN0YXJ0UG9zKTsKKyAgICAgICAgICAgIGlmIChzdGFydFBvcyAhPSAtMSkgeyAKKyAgICAgICAgICAgICAgICArKyBvY2N1cnJlbmNlczsKKyAgICAgICAgICAgICAgICBzdGFydFBvcyAtPSA1OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChvY2N1cnJlbmNlcyAhPSA3KSB7CisgICAgICAgICAgICBlcnJsbigibGFzdEluZGV4T2Ygd2l0aCBjaGFyYWN0ZXIgJiBzdGFydCAmIGVuZCBvZmZzZXRzIGZhaWxlZDogZXhwZWN0ZWQgdG8gZmluZCAxMSBvY2N1cnJlbmNlcywgZm91bmQgIiAKKyAgICAgICAgICAgICsgb2NjdXJyZW5jZXMpOworICAgICAgICB9CisKKyAgICAgICAgLy90ZXN0aW5nIFVDaGFyMzIKKyAgICAgICAgb2NjdXJyZW5jZXMgPSAwOworICAgICAgICBmb3IgKGludCBzdGFydFBvcyA9IHRlc3QzLmxlbmd0aCgpOyBzdGFydFBvcyAhPSAtMTspIHsKKyAgICAgICAgICAgIHN0YXJ0UG9zID0gVVRGMTYubGFzdEluZGV4T2YodGVzdDMsIHRlc3RDaGFyMiwgc3RhcnRQb3MgLSA1KTsKKyAgICAgICAgICAgIGlmIChzdGFydFBvcyAhPSAtMSkgeyAKKyAgICAgICAgICAgICAgICArKyBvY2N1cnJlbmNlczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAob2NjdXJyZW5jZXMgIT0gMykgeworICAgICAgICAgICAgZXJybG4oImxhc3RJbmRleE9mIHdpdGggY2hhcmFjdGVyICYgc3RhcnQgJiBlbmQgb2Zmc2V0cyBmYWlsZWQ6IGV4cGVjdGVkIHRvIGZpbmQgMyBvY2N1cnJlbmNlcywgZm91bmQgIiAKKyAgICAgICAgICAgICsgb2NjdXJyZW5jZXMpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyB0ZXN0aW5nIHN1cHBsZW1lbnRhcnkKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBJTkRFWE9GX1NVUFBMRU1FTlRBUllfQ0hBUl8ubGVuZ3RoOyBpICsrKSB7CisgICAgICAgIAlpbnQgY2ggPSBJTkRFWE9GX1NVUFBMRU1FTlRBUllfQ0hBUl9baV07CisgICAgICAgIAlmb3IgKGludCBqID0gMDsgaiA8IElOREVYT0ZfU1VQUExFTUVOVEFSWV9DSEFSX0lOREVYX1tpXS5sZW5ndGg7CisgICAgICAgIAkgICAgIGogKyspIHsKKyAgICAgICAgCSAgICAgaW50IGluZGV4ID0gMDsKKyAgICAgICAgCSAgICAgaW50IGV4cGVjdGVkID0gSU5ERVhPRl9TVVBQTEVNRU5UQVJZX0NIQVJfSU5ERVhfW2ldW2pdOworICAgICAgICAJICAgICBpZiAgKGogPiAwKSB7CisgICAgICAgIAkgICAgIAlpbmRleCA9IElOREVYT0ZfU1VQUExFTUVOVEFSWV9DSEFSX0lOREVYX1tpXVtqIC0gMV0gKyAxOworICAgICAgICAJICAgICB9CisgICAgICAgIAkgICAgIGlmIChVVEYxNi5pbmRleE9mKElOREVYT0ZfU1VQUExFTUVOVEFSWV9TVFJJTkdfLCBjaCwgaW5kZXgpICE9CisgICAgICAgIAkgICAgICAgICBleHBlY3RlZCB8fAorICAgICAgICAJICAgICAgICAgVVRGMTYuaW5kZXhPZihJTkRFWE9GX1NVUFBMRU1FTlRBUllfU1RSSU5HXywgCisgICAgICAgIAkgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LnRvU3RyaW5nKGNoKSwgaW5kZXgpICE9CisgICAgICAgIAkgICAgICAgICBleHBlY3RlZCkgeworICAgICAgICAJICAgICAgICAgZXJybG4oIkZhaWxlZCBmaW5kaW5nIGluZGV4IGZvciBzdXBwbGVtZW50YXJ5IDB4IiArIAorICAgICAgICAJICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhjaCkpOworICAgICAgICAJICAgICB9CisgICAgICAgIAkgICAgIGluZGV4ID0gSU5ERVhPRl9TVVBQTEVNRU5UQVJZX1NUUklOR18ubGVuZ3RoKCk7CisgICAgICAgIAkgICAgIGlmIChqIDwgSU5ERVhPRl9TVVBQTEVNRU5UQVJZX0NIQVJfSU5ERVhfW2ldLmxlbmd0aCAtIDEpIHsKKyAgICAgICAgCSAgICAgCWluZGV4ID0gSU5ERVhPRl9TVVBQTEVNRU5UQVJZX0NIQVJfSU5ERVhfW2ldW2ogKyAxXSAtIDE7CisgICAgICAgIAkgICAgIH0KKyAgICAgICAgCSAgICAgaWYgKFVURjE2Lmxhc3RJbmRleE9mKElOREVYT0ZfU1VQUExFTUVOVEFSWV9TVFJJTkdfLCBjaCwgCisgICAgICAgIAkgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCkgIT0gZXhwZWN0ZWQgfHwKKyAgICAgICAgCSAgICAgICAgIFVURjE2Lmxhc3RJbmRleE9mKElOREVYT0ZfU1VQUExFTUVOVEFSWV9TVFJJTkdfLCAKKyAgICAgICAgCSAgICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LnRvU3RyaW5nKGNoKSwgaW5kZXgpICE9IGV4cGVjdGVkKSAKKyAgICAgICAgCSAgICAgeworICAgICAgICAJICAgICAgICAgZXJybG4oIkZhaWxlZCBmaW5kaW5nIGxhc3QgaW5kZXggZm9yIHN1cHBsZW1lbnRhcnkgMHgiICsgCisgICAgICAgIAkgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNoKSk7CisgICAgICAgIAkgICAgIH0KKyAgICAgICAgCX0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBJTkRFWE9GX1NVUFBMRU1FTlRBUllfU1RSX0lOREVYXy5sZW5ndGg7IGkgKyspIHsKKyAgICAgICAgCWludCBpbmRleCA9IDA7CisgICAgICAgIAlpbnQgZXhwZWN0ZWQgPSBJTkRFWE9GX1NVUFBMRU1FTlRBUllfU1RSX0lOREVYX1tpXTsKKyAgICAgICAgCWlmICAoaSA+IDApIHsKKyAgICAgICAgCSAgICAgaW5kZXggPSBJTkRFWE9GX1NVUFBMRU1FTlRBUllfU1RSX0lOREVYX1tpIC0gMV0gKyAxOworICAgICAgICAJfQorICAgICAgICAJaWYgKFVURjE2LmluZGV4T2YoSU5ERVhPRl9TVVBQTEVNRU5UQVJZX1NUUklOR18sIAorICAgICAgICAJICAgICAgICAgICAgICAgICAgSU5ERVhPRl9TVVBQTEVNRU5UQVJZX1NUUl8sIGluZGV4KSAhPSBleHBlY3RlZCkgeworICAgICAgICAJICAgIGVycmxuKCJGYWlsZWQgZmluZGluZyBpbmRleCBmb3Igc3VwcGxlbWVudGFyeSBzdHJpbmcgIiArIAorICAgICAgICAJICAgICAgICAgIGhleChJTkRFWE9GX1NVUFBMRU1FTlRBUllfU1RSSU5HXykpOworICAgICAgICAJfQorICAgICAgICAJaW5kZXggPSBJTkRFWE9GX1NVUFBMRU1FTlRBUllfU1RSSU5HXy5sZW5ndGgoKTsKKyAgICAgICAgCWlmIChpIDwgSU5ERVhPRl9TVVBQTEVNRU5UQVJZX1NUUl9JTkRFWF8ubGVuZ3RoIC0gMSkgeworICAgICAgICAJICAgIGluZGV4ID0gSU5ERVhPRl9TVVBQTEVNRU5UQVJZX1NUUl9JTkRFWF9baSArIDFdIC0gMTsKKyAgICAgICAgCX0KKyAgICAgICAgCWlmIChVVEYxNi5sYXN0SW5kZXhPZihJTkRFWE9GX1NVUFBMRU1FTlRBUllfU1RSSU5HXywgCisgICAgICAgIAkgICAgICAgICAgICAgICAgICBJTkRFWE9GX1NVUFBMRU1FTlRBUllfU1RSXywgaW5kZXgpICE9IGV4cGVjdGVkKSB7CisgICAgICAgIAkgICAgZXJybG4oIkZhaWxlZCBmaW5kaW5nIGxhc3QgaW5kZXggZm9yIHN1cHBsZW1lbnRhcnkgc3RyaW5nICIgKyAKKyAgICAgICAgCSAgICAgICAgICBoZXgoSU5ERVhPRl9TVVBQTEVNRU5UQVJZX1NUUklOR18pKTsKKyAgICAgICAgCX0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0UmVwbGFjZSgpCisgICAgeworICAgICAgICBTdHJpbmcgdGVzdDEgPSAiT25lIHBvdGF0bywgdHdvIHBvdGF0bywgdGhyZWUgcG90YXRvLCBmb3VyXG4iOworICAgICAgICBTdHJpbmcgdGVzdDIgPSAicG90YXRvIjsKKyAgICAgICAgU3RyaW5nIHRlc3QzID0gIk1JU1NJU1NJUFBJIjsKKworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gVVRGMTYucmVwbGFjZSh0ZXN0MSwgdGVzdDIsIHRlc3QzKTsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkVmFsdWUgPSAKKyAgICAgICAgICAgICJPbmUgTUlTU0lTU0lQUEksIHR3byBNSVNTSVNTSVBQSSwgdGhyZWUgTUlTU0lTU0lQUEksIGZvdXJcbiI7CisgICAgICAgIGlmICghcmVzdWx0LmVxdWFscyhleHBlY3RlZFZhbHVlKSkgeworICAgICAgICAgICAgZXJybG4oImZpbmRBbmRSZXBsYWNlIGZhaWxlZDogZXhwZWN0ZWQgXCIiICsgZXhwZWN0ZWRWYWx1ZSArIAorICAgICAgICAgICAgICAgICAgIlwiLCBnb3QgXCIiICsgdGVzdDEgKyAiXCIuIik7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0ID0gVVRGMTYucmVwbGFjZSh0ZXN0MSwgdGVzdDMsIHRlc3QyKTsKKyAgICAgICAgZXhwZWN0ZWRWYWx1ZSA9IHRlc3QxOworICAgICAgICBpZiAoIXJlc3VsdC5lcXVhbHMoZXhwZWN0ZWRWYWx1ZSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJmaW5kQW5kUmVwbGFjZSBmYWlsZWQ6IGV4cGVjdGVkIFwiIiArIGV4cGVjdGVkVmFsdWUgKyAKKyAgICAgICAgICAgICAgICAgICJcIiwgZ290IFwiIiArIHRlc3QxICsgIlwiLiIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXN1bHQgPSBVVEYxNi5yZXBsYWNlKHRlc3QxLCAnLCcsICdlJyk7CisgICAgICAgIGV4cGVjdGVkVmFsdWUgPSAiT25lIHBvdGF0b2UgdHdvIHBvdGF0b2UgdGhyZWUgcG90YXRvZSBmb3VyXG4iOworICAgICAgICBpZiAoIXJlc3VsdC5lcXVhbHMoZXhwZWN0ZWRWYWx1ZSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJmaW5kQW5kUmVwbGFjZSBmYWlsZWQ6IGV4cGVjdGVkIFwiIiArIGV4cGVjdGVkVmFsdWUgKyAKKyAgICAgICAgICAgICAgICAgICJcIiwgZ290IFwiIiArIHRlc3QxICsgIlwiLiIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXN1bHQgPSBVVEYxNi5yZXBsYWNlKHRlc3QxLCAnLCcsIDB4MTAwMDApOworICAgICAgICBleHBlY3RlZFZhbHVlID0gIk9uZSBwb3RhdG9cdWQ4MDBcdWRjMDAgdHdvIHBvdGF0b1x1ZDgwMFx1ZGMwMCB0aHJlZSBwb3RhdG9cdWQ4MDBcdWRjMDAgZm91clxuIjsKKyAgICAgICAgaWYgKCFyZXN1bHQuZXF1YWxzKGV4cGVjdGVkVmFsdWUpKSB7CisgICAgICAgICAgICBlcnJsbigiZmluZEFuZFJlcGxhY2UgZmFpbGVkOiBleHBlY3RlZCBcIiIgKyBleHBlY3RlZFZhbHVlICsgCisgICAgICAgICAgICAgICAgICAiXCIsIGdvdCBcIiIgKyB0ZXN0MSArICJcIi4iKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmVzdWx0ID0gVVRGMTYucmVwbGFjZSh0ZXN0MSwgInBvdGF0byIsICJcdWQ4MDBcdWRjMDBcdWQ4MDFcdWRjMDEiKTsKKyAgICAgICAgZXhwZWN0ZWRWYWx1ZSA9ICJPbmUgXHVkODAwXHVkYzAwXHVkODAxXHVkYzAxLCB0d28gXHVkODAwXHVkYzAwXHVkODAxXHVkYzAxLCB0aHJlZSBcdWQ4MDBcdWRjMDBcdWQ4MDFcdWRjMDEsIGZvdXJcbiI7CisgICAgICAgIGlmICghcmVzdWx0LmVxdWFscyhleHBlY3RlZFZhbHVlKSkgeworICAgICAgICAgICAgZXJybG4oImZpbmRBbmRSZXBsYWNlIGZhaWxlZDogZXhwZWN0ZWQgXCIiICsgZXhwZWN0ZWRWYWx1ZSArIAorICAgICAgICAgICAgICAgICAgIlwiLCBnb3QgXCIiICsgdGVzdDEgKyAiXCIuIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN0cmluZyB0ZXN0NCA9ICJcdWQ4MDBcdWQ4MDBcdWRjMDBcdWQ4MDBcdWRjMDBcdWRjMDBcdWQ4MDBcdWQ4MDBcdWRjMDBcdWQ4MDBcdWRjMDBcdWRjMDAiOworICAgICAgICByZXN1bHQgPSBVVEYxNi5yZXBsYWNlKHRlc3Q0LCAweGQ4MDAsICdBJyk7CisgICAgICAgIGV4cGVjdGVkVmFsdWUgPSAiQVx1ZDgwMFx1ZGMwMFx1ZDgwMFx1ZGMwMFx1ZGMwMEFcdWQ4MDBcdWRjMDBcdWQ4MDBcdWRjMDBcdWRjMDAiOworICAgICAgICBpZiAoIXJlc3VsdC5lcXVhbHMoZXhwZWN0ZWRWYWx1ZSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJmaW5kQW5kUmVwbGFjZSBmYWlsZWQ6IGV4cGVjdGVkIFwiIiArIGV4cGVjdGVkVmFsdWUgKyAKKyAgICAgICAgICAgICAgICAgICJcIiwgZ290IFwiIiArIHRlc3QxICsgIlwiLiIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXN1bHQgPSBVVEYxNi5yZXBsYWNlKHRlc3Q0LCAweGRDMDAsICdBJyk7CisgICAgICAgIGV4cGVjdGVkVmFsdWUgPSAiXHVkODAwXHVkODAwXHVkYzAwXHVkODAwXHVkYzAwQVx1ZDgwMFx1ZDgwMFx1ZGMwMFx1ZDgwMFx1ZGMwMEEiOworICAgICAgICBpZiAoIXJlc3VsdC5lcXVhbHMoZXhwZWN0ZWRWYWx1ZSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJmaW5kQW5kUmVwbGFjZSBmYWlsZWQ6IGV4cGVjdGVkIFwiIiArIGV4cGVjdGVkVmFsdWUgKyAKKyAgICAgICAgICAgICAgICAgICJcIiwgZ290IFwiIiArIHRlc3QxICsgIlwiLiIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXN1bHQgPSBVVEYxNi5yZXBsYWNlKHRlc3Q0LCAweDEwMDAwLCAnQScpOworICAgICAgICBleHBlY3RlZFZhbHVlID0gIlx1ZDgwMEFBXHVkYzAwXHVkODAwQUFcdWRjMDAiOworICAgICAgICBpZiAoIXJlc3VsdC5lcXVhbHMoZXhwZWN0ZWRWYWx1ZSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJmaW5kQW5kUmVwbGFjZSBmYWlsZWQ6IGV4cGVjdGVkIFwiIiArIGV4cGVjdGVkVmFsdWUgKyAKKyAgICAgICAgICAgICAgICAgICJcIiwgZ290IFwiIiArIHRlc3QxICsgIlwiLiIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RSZXZlcnNlKCkKKyAgICB7CisgICAgICAgIFN0cmluZ0J1ZmZlciB0ZXN0ID0gbmV3IFN0cmluZ0J1ZmZlcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJiYWNrd2FyZHMgd29yZHMgc2F5IHRvIHVzZWQgSSIpOworCisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBVVEYxNi5yZXZlcnNlKHRlc3QpOworICAgICAgICBpZiAoIXJlc3VsdC50b1N0cmluZygpLmVxdWFscygiSSBkZXN1IG90IHlhcyBzZHJvdyBzZHJhd2tjYWIiKSkgeworICAgICAgICAgICAgZXJybG4oInJldmVyc2UoKSBmYWlsZWQ6ICBFeHBlY3RlZCBcIkkgZGVzdSBvdCB5YXMgc2Ryb3cgc2RyYXdrY2FiXCIsXG4gZ290IFwiIgorICAgICAgICAgICAgKyByZXN1bHQgKyAiXCIiKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmdCdWZmZXIgdGVzdGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgVVRGMTYuYXBwZW5kKHRlc3RidWZmZXIsIDB4MmY5OTkpOworICAgICAgICBVVEYxNi5hcHBlbmQodGVzdGJ1ZmZlciwgMHgxZDE1Zik7CisgICAgICAgIFVURjE2LmFwcGVuZCh0ZXN0YnVmZmVyLCAweDAwYzQpOworICAgICAgICBVVEYxNi5hcHBlbmQodGVzdGJ1ZmZlciwgMHgxZWQwKTsKKyAgICAgICAgcmVzdWx0ID0gVVRGMTYucmV2ZXJzZSh0ZXN0YnVmZmVyKTsKKyAgICAgICAgaWYgKHJlc3VsdC5jaGFyQXQoMCkgIT0gMHgxZWQwIHx8IAorICAgICAgICAgICAgcmVzdWx0LmNoYXJBdCgxKSAhPSAweGM0IHx8IAorICAgICAgICAgICAgVVRGMTYuY2hhckF0KHJlc3VsdCwgMikgIT0gMHgxZDE1ZiB8fCAKKyAgICAgICAgICAgIFVURjE2LmNoYXJBdChyZXN1bHQsIDQpIT0weDJmOTk5KSB7CisgICAgICAgICAgICBlcnJsbigicmV2ZXJzZSgpIGZhaWxlZCB3aXRoIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyIpOworICAgICAgICB9CisgICAgfQorICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2FzZUNvbXBhcmUoKSAKKyAgICB7CisgICAgICAgIFN0cmluZyBtaXhlZCA9ICJcdTAwNjFcdTAwNDJcdTAxMzFcdTAzYTNcdTAwZGZcdWZiMDNcdWQ5M2ZcdWRmZmYiOworICAgICAgICBTdHJpbmcgb3RoZXJEZWZhdWx0ID0gIlx1MDA0MVx1MDA2Mlx1MDEzMVx1MDNjM1x1MDA3M1x1MDA1M1x1MDA0Nlx1MDA2Nlx1MDA0OVx1ZDkzZlx1ZGZmZiI7CisgICAgICAgIFN0cmluZyBvdGhlckV4Y2x1ZGVTcGVjaWFsSSA9ICJcdTAwNDFcdTAwNjJcdTAxMzFcdTAzYzNcdTAwNTNcdTAwNzNcdTAwNjZcdTAwNDZcdTAwNjlcdWQ5M2ZcdWRmZmYiOworICAgICAgICBTdHJpbmcgZGlmZmVyZW50ID0gIlx1MDA0MVx1MDA2Mlx1MDEzMVx1MDNjM1x1MDA3M1x1MDA1M1x1MDA0Nlx1MDA2Nlx1MDA0OVx1ZDkzZlx1ZGZmZCI7CisgICAgCisgICAgICAgIC8qCisgICAgICAgICAqIFVWZXJzaW9uSW5mbyB1bmljb2RlVmVyc2lvbj17IDAsIDAsIDE3LCA4OSB9LCB1bmljb2RlXzNfMT17IDMsIDEsIDAsIDAgfTsKKyAgICAKKyAgICAgICAgaW50MzJfdCByZXN1bHQsIGxlbk1peGVkLCBsZW5PdGhlckRlZmF1bHQsIGxlbk90aGVyRXhjbHVkZVNwZWNpYWxJLCBsZW5EaWZmZXJlbnQ7CisgICAgICAgIFVFcnJvckNvZGUgZXJyb3JDb2RlOworICAgICAgICBVQm9vbCBpc1VuaWNvZGVfM18xOworICAgIAorICAgICAgICBlcnJvckNvZGU9VV9aRVJPX0VSUk9SOworICAgIAorICAgICAgICBsZW5NaXhlZD11X3N0cmxlbihtaXhlZCk7CisgICAgICAgIGxlbk90aGVyRGVmYXVsdD11X3N0cmxlbihvdGhlckRlZmF1bHQpOworICAgICAgICBsZW5PdGhlckV4Y2x1ZGVTcGVjaWFsST11X3N0cmxlbihvdGhlckV4Y2x1ZGVTcGVjaWFsSSk7CisgICAgICAgIGxlbkRpZmZlcmVudD11X3N0cmxlbihkaWZmZXJlbnQpOworICAgIAorICAgICAgICAvLyBpZiB1bmljb2RlVmVyc2lvbigpPj0zLjEgdGhlbiB0ZXN0IGV4Y2x1ZGUtc3BlY2lhbC1pIGNhc2VzIGFzIHdlbGwKKyAgICAgICAgdV9nZXRVbmljb2RlVmVyc2lvbih1bmljb2RlVmVyc2lvbik7CisgICAgICAgIGlzVW5pY29kZV8zXzE9IHVwcnZfbWVtY21wKHVuaWNvZGVWZXJzaW9uLCB1bmljb2RlXzNfMSwgNCk+PTA7CisgICAgCisgICAgICAgIC8vIHRlc3QgdV9zdHJjYXNlY21wKCkKKyAgICAgICAgcmVzdWx0PXVfc3RyY2FzZWNtcChtaXhlZCwgb3RoZXJEZWZhdWx0LCBVX0ZPTERfQ0FTRV9ERUZBVUxUKTsKKyAgICAgICAgaWYocmVzdWx0IT0wKSB7CisgICAgICAgICAgICBsb2dfZXJyKCJlcnJvcjogdV9zdHJjYXNlY21wKG1peGVkLCBvdGhlciwgZGVmYXVsdCk9JWxkIGluc3RlYWQgb2YgMFxuIiwgcmVzdWx0KTsKKyAgICAgICAgfQorICAgICAgICByZXN1bHQ9dV9zdHJDYXNlQ29tcGFyZShtaXhlZCwgLTEsIG90aGVyRGVmYXVsdCwgLTEsIFVfRk9MRF9DQVNFX0RFRkFVTFQsICZlcnJvckNvZGUpOworICAgICAgICBpZihyZXN1bHQhPTApIHsKKyAgICAgICAgICAgIGxvZ19lcnIoImVycm9yOiB1X3N0ckNhc2VDb21wYXJlKG1peGVkLCBvdGhlciwgZGVmYXVsdCk9JWxkIGluc3RlYWQgb2YgMFxuIiwgcmVzdWx0KTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyB0ZXN0IHVfc3RyY2FzZWNtcCgpIC0gZXhjbHVkZSBzcGVjaWFsIGkgCisgICAgICAgIHJlc3VsdD11X3N0cmNhc2VjbXAobWl4ZWQsIG90aGVyRXhjbHVkZVNwZWNpYWxJLCBVX0ZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSk7CisgICAgICAgIGlmKHJlc3VsdCE9MCkgeworICAgICAgICAgICAgbG9nX2VycigiZXJyb3I6IHVfc3RyY2FzZWNtcChtaXhlZCwgb3RoZXIsIGV4Y2x1ZGUgc3BlY2lhbCBpKT0lbGQgaW5zdGVhZCBvZiAwXG4iLCByZXN1bHQpOworICAgICAgICB9CisgICAgICAgIHJlc3VsdD11X3N0ckNhc2VDb21wYXJlKG1peGVkLCBsZW5NaXhlZCwgb3RoZXJFeGNsdWRlU3BlY2lhbEksIGxlbk90aGVyRXhjbHVkZVNwZWNpYWxJLCBVX0ZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSwgJmVycm9yQ29kZSk7CisgICAgICAgIGlmKHJlc3VsdCE9MCkgeworICAgICAgICAgICAgbG9nX2VycigiZXJyb3I6IHVfc3RyQ2FzZUNvbXBhcmUobWl4ZWQsIG90aGVyLCBleGNsdWRlIHNwZWNpYWwgaSk9JWxkIGluc3RlYWQgb2YgMFxuIiwgcmVzdWx0KTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyB0ZXN0IHVfc3RyY2FzZWNtcCgpCisgICAgICAgIHJlc3VsdD11X3N0cmNhc2VjbXAobWl4ZWQsIGRpZmZlcmVudCwgVV9GT0xEX0NBU0VfREVGQVVMVCk7CisgICAgICAgIGlmKHJlc3VsdDw9MCkgeworICAgICAgICAgICAgbG9nX2VycigiZXJyb3I6IHVfc3RyY2FzZWNtcChtaXhlZCwgZGlmZmVyZW50LCBkZWZhdWx0KT0lbGQgaW5zdGVhZCBvZiBwb3NpdGl2ZVxuIiwgcmVzdWx0KTsKKyAgICAgICAgfQorICAgICAgICByZXN1bHQ9dV9zdHJDYXNlQ29tcGFyZShtaXhlZCwgLTEsIGRpZmZlcmVudCwgbGVuRGlmZmVyZW50LCBVX0ZPTERfQ0FTRV9ERUZBVUxULCAmZXJyb3JDb2RlKTsKKyAgICAgICAgaWYocmVzdWx0PD0wKSB7CisgICAgICAgICAgICBsb2dfZXJyKCJlcnJvcjogdV9zdHJDYXNlQ29tcGFyZShtaXhlZCwgZGlmZmVyZW50LCBkZWZhdWx0KT0lbGQgaW5zdGVhZCBvZiBwb3NpdGl2ZVxuIiwgcmVzdWx0KTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyB0ZXN0IHVfc3RybmNhc2VjbXAoKSAtIHN0b3AgYmVmb3JlIHRoZSBzaGFycCBzIChVKzAwZGYpCisgICAgICAgIHJlc3VsdD11X3N0cm5jYXNlY21wKG1peGVkLCBkaWZmZXJlbnQsIDQsIFVfRk9MRF9DQVNFX0RFRkFVTFQpOworICAgICAgICBpZihyZXN1bHQhPTApIHsKKyAgICAgICAgICAgIGxvZ19lcnIoImVycm9yOiB1X3N0cm5jYXNlY21wKG1peGVkLCBkaWZmZXJlbnQsIDQsIGRlZmF1bHQpPSVsZCBpbnN0ZWFkIG9mIDBcbiIsIHJlc3VsdCk7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0PXVfc3RyQ2FzZUNvbXBhcmUobWl4ZWQsIDQsIGRpZmZlcmVudCwgNCwgVV9GT0xEX0NBU0VfREVGQVVMVCwgJmVycm9yQ29kZSk7CisgICAgICAgIGlmKHJlc3VsdCE9MCkgeworICAgICAgICAgICAgbG9nX2VycigiZXJyb3I6IHVfc3RyQ2FzZUNvbXBhcmUobWl4ZWQsIDQsIGRpZmZlcmVudCwgNCwgZGVmYXVsdCk9JWxkIGluc3RlYWQgb2YgMFxuIiwgcmVzdWx0KTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyB0ZXN0IHVfc3RybmNhc2VjbXAoKSAtIHN0b3AgaW4gdGhlIG1pZGRsZSBvZiB0aGUgc2hhcnAgcyAoVSswMGRmKSAKKyAgICAgICAgcmVzdWx0PXVfc3RybmNhc2VjbXAobWl4ZWQsIGRpZmZlcmVudCwgNSwgVV9GT0xEX0NBU0VfREVGQVVMVCk7CisgICAgICAgIGlmKHJlc3VsdDw9MCkgeworICAgICAgICAgICAgbG9nX2VycigiZXJyb3I6IHVfc3RybmNhc2VjbXAobWl4ZWQsIGRpZmZlcmVudCwgNSwgZGVmYXVsdCk9JWxkIGluc3RlYWQgb2YgcG9zaXRpdmVcbiIsIHJlc3VsdCk7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0PXVfc3RyQ2FzZUNvbXBhcmUobWl4ZWQsIDUsIGRpZmZlcmVudCwgNSwgVV9GT0xEX0NBU0VfREVGQVVMVCwgJmVycm9yQ29kZSk7CisgICAgICAgIGlmKHJlc3VsdDw9MCkgeworICAgICAgICAgICAgbG9nX2VycigiZXJyb3I6IHVfc3RyQ2FzZUNvbXBhcmUobWl4ZWQsIDUsIGRpZmZlcmVudCwgNSwgZGVmYXVsdCk9JWxkIGluc3RlYWQgb2YgcG9zaXRpdmVcbiIsIHJlc3VsdCk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gdGVzdCB1X21lbWNhc2VjbXAoKSAtIHN0b3AgYmVmb3JlIHRoZSBzaGFycCBzIChVKzAwZGYpIAorICAgICAgICByZXN1bHQ9dV9tZW1jYXNlY21wKG1peGVkLCBkaWZmZXJlbnQsIDQsIFVfRk9MRF9DQVNFX0RFRkFVTFQpOworICAgICAgICBpZihyZXN1bHQhPTApIHsKKyAgICAgICAgICAgIGxvZ19lcnIoImVycm9yOiB1X21lbWNhc2VjbXAobWl4ZWQsIGRpZmZlcmVudCwgNCwgZGVmYXVsdCk9JWxkIGluc3RlYWQgb2YgMFxuIiwgcmVzdWx0KTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyB0ZXN0IHVfbWVtY2FzZWNtcCgpIC0gc3RvcCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBzaGFycCBzIChVKzAwZGYpIAorICAgICAgICByZXN1bHQ9dV9tZW1jYXNlY21wKG1peGVkLCBkaWZmZXJlbnQsIDUsIFVfRk9MRF9DQVNFX0RFRkFVTFQpOworICAgICAgICBpZihyZXN1bHQ8PTApIHsKKyAgICAgICAgICAgIGxvZ19lcnIoImVycm9yOiB1X21lbWNhc2VjbXAobWl4ZWQsIGRpZmZlcmVudCwgNSwgZGVmYXVsdCk9JWxkIGluc3RlYWQgb2YgcG9zaXRpdmVcbiIsIHJlc3VsdCk7CisgICAgICAgIH0KKyAgICAgICAgKi8KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmcpCisgICAgeworICAgIAl0cnkKKyAgICAgICAgeworICAgICAgICAgICAgVVRGMTZUZXN0IHRlc3QgPSBuZXcgVVRGMTZUZXN0KCk7CisgICAgICAgICAgICAvLyB0ZXN0LlRlc3RJbmRleE9mKCk7CisgICAgICAgICAgICB0ZXN0LnJ1bihhcmcpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkKKyAgICAgICAgeworICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBTdHJpbmcgSU5ERVhPRl9TVVBQTEVNRU5UQVJZX1NUUklOR18gPQorICAgICAgICAiXHVkODQxXHVkYzAyXHUwMDcxXHVkYzAyXHVkODQxXHUwMDcxXHVkODQxXHVkYzAyXHUwMDcxXHUwMDcyIiArCisgICAgICAgICJcdWQ4NDFcdWRjMDJcdTAwNzFcdWQ4NDFcdWRjMDJcdTAwNzFcdWRjMDJcdWQ4NDFcdTAwNzMiOworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBJTkRFWE9GX1NVUFBMRU1FTlRBUllfQ0hBUl9bXSA9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAJCQl7MHg3MSwgMHhkODQxLCAweGRjMDIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgCQkgICAgIFVDaGFyYWN0ZXIuZ2V0Q29kZVBvaW50KChjaGFyKTB4ZDg0MSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpMHhkYzAyKX07CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IElOREVYT0ZfU1VQUExFTUVOVEFSWV9DSEFSX0lOREVYX1tdW10gPSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ezIsIDUsIDgsIDEyLCAxNX0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHs0LCAxN30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHszLCAxNn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHswLCA2LCAxMCwgMTN9ICAgICAgICAgICAgICAJCisJCQkJCQkJCQkgICAgICAgICAgICAgICAgfTsKKwlwcml2YXRlIGZpbmFsIHN0YXRpYyBTdHJpbmcgSU5ERVhPRl9TVVBQTEVNRU5UQVJZX1NUUl8gPSAiXHVkYzAyXHVkODQxIjsKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgSU5ERVhPRl9TVVBQTEVNRU5UQVJZX1NUUl9JTkRFWF9bXSA9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHszLCAxNn07CQkJCQkJCQkgICAgICAgICAgICAgICAgCit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL0Jhc2ljVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvQmFzaWNUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmFkN2I3NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL0Jhc2ljVGVzdC5qYXZhCkBAIC0wLDAgKzEsMjEyMSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvQmFzaWNUZXN0LmphdmEsdiAkCisgKiAkRGF0ZTogMjAwMi8xMC8wOSAxODoxMTozNyAkCisgKiAkUmV2aXNpb246IDEuMTUuMi4xICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0Lm5vcm1hbGl6ZXI7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5SYW5kb207CisKK3B1YmxpYyBjbGFzcyBCYXNpY1Rlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisJcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBCYXNpY1Rlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgU3RyaW5nW11bXSBjYW5vblRlc3RzID0geworICAgICAgICAvLyBJbnB1dCAgICAgICAgICAgICAgICBEZWNvbXBvc2VkICAgICAgICAgICAgICBDb21wb3NlZAorICAgICAgICB7ICJjYXQiLCAgICAgICAgICAgICAgICAiY2F0IiwgICAgICAgICAgICAgICAgICAiY2F0IiAgICAgICAgICAgICAgIH0sCisgICAgICAgIHsgIlx1MDBlMGFyZHZhcmsiLCAgICAgICJhXHUwMzAwYXJkdmFyayIsICAgICAgICJcdTAwZTBhcmR2YXJrIiwgICAgfSwKKworICAgICAgICB7ICJcdTFlMGEiLCAgICAgICAgICAgICAiRFx1MDMwNyIsICAgICAgICAgICAgICAiXHUxZTBhIiAgICAgICAgICAgIH0sIC8vIEQtZG90X2Fib3ZlCisgICAgICAgIHsgIkRcdTAzMDciLCAgICAgICAgICAgICJEXHUwMzA3IiwgICAgICAgICAgICAgICJcdTFlMGEiICAgICAgICAgICAgfSwgLy8gRCBkb3RfYWJvdmUKKworICAgICAgICB7ICJcdTFlMGNcdTAzMDciLCAgICAgICAiRFx1MDMyM1x1MDMwNyIsICAgICAgICAiXHUxZTBjXHUwMzA3IiAgICAgIH0sIC8vIEQtZG90X2JlbG93IGRvdF9hYm92ZQorICAgICAgICB7ICJcdTFlMGFcdTAzMjMiLCAgICAgICAiRFx1MDMyM1x1MDMwNyIsICAgICAgICAiXHUxZTBjXHUwMzA3IiAgICAgIH0sIC8vIEQtZG90X2Fib3ZlIGRvdF9iZWxvdworICAgICAgICB7ICJEXHUwMzA3XHUwMzIzIiwgICAgICAiRFx1MDMyM1x1MDMwNyIsICAgICAgICAiXHUxZTBjXHUwMzA3IiAgICAgIH0sIC8vIEQgZG90X2JlbG93IGRvdF9hYm92ZQorCisgICAgICAgIHsgIlx1MWUxMFx1MDMwN1x1MDMyMyIsICJEXHUwMzI3XHUwMzIzXHUwMzA3IiwgICJcdTFlMTBcdTAzMjNcdTAzMDcifSwgLy8gRCBkb3RfYmVsb3cgY2VkaWxsYSBkb3RfYWJvdmUKKyAgICAgICAgeyAiRFx1MDMwN1x1MDMyOFx1MDMyMyIsIkRcdTAzMjhcdTAzMjNcdTAzMDciLCAgIlx1MWUwY1x1MDMyOFx1MDMwNyJ9LCAvLyBEIGRvdF9hYm92ZSBvZ29uZWsgZG90X2JlbG93CisKKyAgICAgICAgeyAiXHUxRTE0IiwgICAgICAgICAgICAgIkVcdTAzMDRcdTAzMDAiLCAgICAgICAgIlx1MUUxNCIgICAgICAgICAgICB9LCAvLyBFLW1hY3Jvbi1ncmF2ZQorICAgICAgICB7ICJcdTAxMTJcdTAzMDAiLCAgICAgICAiRVx1MDMwNFx1MDMwMCIsICAgICAgICAiXHUxRTE0IiAgICAgICAgICAgIH0sIC8vIEUtbWFjcm9uICsgZ3JhdmUKKyAgICAgICAgeyAiXHUwMGM4XHUwMzA0IiwgICAgICAgIkVcdTAzMDBcdTAzMDQiLCAgICAgICAgIlx1MDBjOFx1MDMwNCIgICAgICB9LCAvLyBFLWdyYXZlICsgbWFjcm9uCisKKyAgICAgICAgeyAiXHUyMTJiIiwgICAgICAgICAgICAgIkFcdTAzMGEiLCAgICAgICAgICAgICAgIlx1MDBjNSIgICAgICAgICAgICB9LCAvLyBhbmdzdHJvbV9zaWduCisgICAgICAgIHsgIlx1MDBjNSIsICAgICAgICAgICAgICJBXHUwMzBhIiwgICAgICAgICAgICAgICJcdTAwYzUiICAgICAgICAgICAgfSwgLy8gQS1yaW5nCisKKyAgICAgICAgeyAiXHUwMGM0ZmZpbiIsICAgICAgICAgIkFcdTAzMDhmZmluIiwgICAgICAgICAgIlx1MDBjNGZmaW4iICAgICAgICB9LAorICAgICAgICB7ICJcdTAwYzRcdUZCMDNuIiwgICAgICAiQVx1MDMwOFx1RkIwM24iLCAgICAgICAiXHUwMGM0XHVGQjAzbiIgICAgIH0sCisKKyAgICAgICAgeyAiXHUwMGZkZmZpbiIsICAgICAgICAgInlcdTAzMDFmZmluIiwgICAgICAgICAgIlx1MDBmZGZmaW4iICAgICAgICB9LCAvL3VwZGF0ZWQgd2l0aCAzLjAKKyAgICAgICAgeyAiXHUwMGZkXHVGQjAzbiIsICAgICAgInlcdTAzMDFcdUZCMDNuIiwgICAgICAgIlx1MDBmZFx1RkIwM24iICAgICB9LCAvL3VwZGF0ZWQgd2l0aCAzLjAKKworICAgICAgICB7ICJIZW5yeSBJViIsICAgICAgICAgICAiSGVucnkgSVYiLCAgICAgICAgICAgICAiSGVucnkgSVYiICAgICAgICAgIH0sCisgICAgICAgIHsgIkhlbnJ5IFx1MjE2MyIsICAgICAgICJIZW5yeSBcdTIxNjMiLCAgICAgICAgICJIZW5yeSBcdTIxNjMiICAgICAgfSwKKworICAgICAgICB7ICJcdTMwQUMiLCAgICAgICAgICAgICAiXHUzMEFCXHUzMDk5IiwgICAgICAgICAiXHUzMEFDIiAgICAgICAgICAgIH0sIC8vIGdhIChLYXRha2FuYSkKKyAgICAgICAgeyAiXHUzMEFCXHUzMDk5IiwgICAgICAgIlx1MzBBQlx1MzA5OSIsICAgICAgICAgIlx1MzBBQyIgICAgICAgICAgICB9LCAvLyBrYSArIHRlbgorICAgICAgICB7ICJcdUZGNzZcdUZGOUUiLCAgICAgICAiXHVGRjc2XHVGRjlFIiwgICAgICAgICAiXHVGRjc2XHVGRjlFIiAgICAgIH0sIC8vIGh3X2thICsgaHdfdGVuCisgICAgICAgIHsgIlx1MzBBQlx1RkY5RSIsICAgICAgICJcdTMwQUJcdUZGOUUiLCAgICAgICAgICJcdTMwQUJcdUZGOUUiICAgICAgfSwgLy8ga2EgKyBod190ZW4KKyAgICAgICAgeyAiXHVGRjc2XHUzMDk5IiwgICAgICAgIlx1RkY3Nlx1MzA5OSIsICAgICAgICAgIlx1RkY3Nlx1MzA5OSIgICAgICB9LCAvLyBod19rYSArIHRlbgorCisgICAgICAgIHsgIkFcdTAzMDBcdTAzMTYiLCAiQVx1MDMxNlx1MDMwMCIsICJcdTAwQzBcdTAzMTYiIH0sCisgICAgICAgIHsiXFxVMDAwMWQxNWVcXFUwMDAxZDE1N1xcVTAwMDFkMTY1XFxVMDAwMWQxNWUiLCJcXFUwMDAxRDE1N1xcVTAwMDFEMTY1XFxVMDAwMUQxNTdcXFUwMDAxRDE2NVxcVTAwMDFEMTU3XFxVMDAwMUQxNjUiLCAiXFxVMDAwMUQxNTdcXFUwMDAxRDE2NVxcVTAwMDFEMTU3XFxVMDAwMUQxNjVcXFUwMDAxRDE1N1xcVTAwMDFEMTY1In0sCisgICAgfTsKKworICAgIFN0cmluZ1tdW10gY29tcGF0VGVzdHMgPSB7CisgICAgICAgICAgICAvLyBJbnB1dCAgICAgICAgICAgICAgICBEZWNvbXBvc2VkICAgICAgICAgICAgICBDb21wb3NlZAorICAgICAgICB7ICJjYXQiLCAgICAgICAgICAgICAgICAgImNhdCIsICAgICAgICAgICAgICAgICAgICAgImNhdCIgICAgICAgICAgIH0sCisgICAgICAgIHsgIlx1RkI0ZiIsICAgICAgICAgICAgICJcdTA1RDBcdTA1REMiLCAgICAgICAgICJcdTA1RDBcdTA1REMiLCAgICAgfSwgLy8gQWxlZi1MYW1lZCB2cy4gQWxlZiwgTGFtZWQKKworICAgICAgICB7ICJcdTAwQzRmZmluIiwgICAgICAgICAiQVx1MDMwOGZmaW4iLCAgICAgICAgICAiXHUwMEM0ZmZpbiIgICAgICAgIH0sCisgICAgICAgIHsgIlx1MDBDNFx1RkIwM24iLCAgICAgICJBXHUwMzA4ZmZpbiIsICAgICAgICAgICJcdTAwQzRmZmluIiAgICAgICAgfSwgLy8gZmZpIGxpZ2F0dXJlIC0+IGYgKyBmICsgaQorCisgICAgICAgIHsgIlx1MDBmZGZmaW4iLCAgICAgICAgICJ5XHUwMzAxZmZpbiIsICAgICAgICAgICJcdTAwZmRmZmluIiAgICAgICAgfSwgICAgICAgIC8vdXBkYXRlZCBmb3IgMy4wCisgICAgICAgIHsgIlx1MDBmZFx1RkIwM24iLCAgICAgICJ5XHUwMzAxZmZpbiIsICAgICAgICAgICJcdTAwZmRmZmluIiAgICAgICAgfSwgLy8gZmZpIGxpZ2F0dXJlIC0+IGYgKyBmICsgaQorCisgICAgICAgIHsgIkhlbnJ5IElWIiwgICAgICAgICAgICJIZW5yeSBJViIsICAgICAgICAgICAgICJIZW5yeSBJViIgICAgICAgICAgfSwKKyAgICAgICAgeyAiSGVucnkgXHUyMTYzIiwgICAgICAgIkhlbnJ5IElWIiwgICAgICAgICAgICAgIkhlbnJ5IElWIiAgICAgICAgICB9LAorCisgICAgICAgIHsgIlx1MzBBQyIsICAgICAgICAgICAgICJcdTMwQUJcdTMwOTkiLCAgICAgICAgICJcdTMwQUMiICAgICAgICAgICAgfSwgLy8gZ2EgKEthdGFrYW5hKQorICAgICAgICB7ICJcdTMwQUJcdTMwOTkiLCAgICAgICAiXHUzMEFCXHUzMDk5IiwgICAgICAgICAiXHUzMEFDIiAgICAgICAgICAgIH0sIC8vIGthICsgdGVuCisKKyAgICAgICAgeyAiXHVGRjc2XHUzMDk5IiwgICAgICAgIlx1MzBBQlx1MzA5OSIsICAgICAgICAgIlx1MzBBQyIgICAgICAgICAgICB9LCAvLyBod19rYSArIHRlbgorCisgICAgICAgIC8qIFRoZXNlIHR3byBhcmUgYnJva2VuIGluIFVuaWNvZGUgMi4xLjIgYnV0IGZpeGVkIGluIDIuMS41IGFuZCBsYXRlciovCisgICAgICAgIHsgIlx1RkY3Nlx1RkY5RSIsICAgICAgICJcdTMwQUJcdTMwOTkiLCAgICAgICAgICJcdTMwQUMiICAgICAgICAgICAgfSwgLy8gaHdfa2EgKyBod190ZW4KKyAgICAgICAgeyAiXHUzMEFCXHVGRjlFIiwgICAgICAgIlx1MzBBQlx1MzA5OSIsICAgICAgICAgIlx1MzBBQyIgICAgICAgICAgICB9LCAvLyBrYSArIGh3X3RlbgorCisgICAgfTsKKworICAgIC8vIFdpdGggQ2Fub25pY2FsIGRlY29tcG9zaXRpb24sIEhhbmd1bCBzeWxsYWJsZXMgc2hvdWxkIGdldCBkZWNvbXBvc2VkCisgICAgLy8gaW50byBKYW1vLCBidXQgSmFtbyBjaGFyYWN0ZXJzIHNob3VsZCBub3QgYmUgZGVjb21wb3NlZCBpbnRvCisgICAgLy8gY29uam9pbmluZyBKYW1vCisgICAgU3RyaW5nW11bXSBoYW5ndWxDYW5vbiA9IHsKKyAgICAgICAgLy8gSW5wdXQgICAgICAgICAgICAgICAgRGVjb21wb3NlZCAgICAgICAgICAgICAgQ29tcG9zZWQKKyAgICAgICAgeyAiXHVkNGRiIiwgICAgICAgICAgICAgIlx1MTExMVx1MTE3MVx1MTFiNiIsICAgIlx1ZDRkYiIgICAgICAgIH0sCisgICAgICAgIHsgIlx1MTExMVx1MTE3MVx1MTFiNiIsICJcdTExMTFcdTExNzFcdTExYjYiLCAgICJcdWQ0ZGIiICAgICAgICB9LAorICAgIH07CisKKyAgICAvLyBXaXRoIGNvbXBhdGliaWxpdHkgZGVjb21wb3NpdGlvbiB0dXJuZWQgb24sCisgICAgLy8gaXQgc2hvdWxkIGdvIGFsbCB0aGUgd2F5IGRvd24gdG8gY29uam9pbmluZyBKYW1vIGNoYXJhY3RlcnMuCisgICAgLy8gVEhJUyBJUyBOTyBMT05HRVIgVFJVRSBJTiBVTklDT0RFIHYyLjEuOCwgU08gVEhJUyBURVNUIElTIE9CU09MRVRFCisgICAgU3RyaW5nW11bXSBoYW5ndWxDb21wYXQgPSB7CisgICAgICAgIC8vIElucHV0ICAgICAgICBEZWNvbXBvc2VkICAgICAgICAgICAgICAgICAgICAgICAgICBDb21wb3NlZAorICAgICAgICAvLyB7ICJcdWQ0ZGIiLCAgICAgIlx1MTExMVx1MTE2ZVx1MTE3NVx1MTFhZlx1MTFjMiIsICAgIlx1ZDQ3OFx1MTE3NVx1MTFhZlx1MTFjMiIgIH0sCisgICAgfTsKKworICAgIHB1YmxpYyB2b2lkIFRlc3RIYW5ndWxDb21wb3NlKCkKKyAgICAgICAgICAgICAgICB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUgc3RhdGljIGNvbXBvc2l0aW9uIG1ldGhvZHMgd29yaworICAgICAgICBsb2dsbigiQ2Fub25pY2FsIGNvbXBvc2l0aW9uLi4uIik7CisgICAgICAgIHN0YXRpY1Rlc3QoTm9ybWFsaXplci5ORkMsIGhhbmd1bENhbm9uLCAgMik7CisgICAgICAgIGxvZ2xuKCJDb21wYXRpYmlsaXR5IGNvbXBvc2l0aW9uLi4uIik7CisgICAgICAgIHN0YXRpY1Rlc3QoTm9ybWFsaXplci5ORktDLCBoYW5ndWxDb21wYXQsIDIpOworICAgICAgICAvLyBOb3cgdHJ5IGl0ZXJhdGl2ZSBjb21wb3NpdGlvbi4uLi4KKyAgICAgICAgbG9nbG4oIkl0ZXJhdGl2ZSBjb21wb3NpdGlvbi4uLiIpOworICAgICAgICBOb3JtYWxpemVyIG5vcm0gPSBuZXcgTm9ybWFsaXplcigiIiwgTm9ybWFsaXplci5ORkMpOworICAgICAgICBpdGVyYXRlVGVzdChub3JtLCBoYW5ndWxDYW5vbiwgMik7CisKKyAgICAgICAgbm9ybS5zZXRNb2RlKE5vcm1hbGl6ZXIuTkZLRCk7CisgICAgICAgIGl0ZXJhdGVUZXN0KG5vcm0sIGhhbmd1bENvbXBhdCwgMik7CisKKyAgICAgICAgLy8gQW5kIGZpbmFsbHksIG1ha2Ugc3VyZSB5b3UgY2FuIGRvIGl0IGluIHJldmVyc2UgdG9vCisgICAgICAgIGxvZ2xuKCJSZXZlcnNlIGl0ZXJhdGlvbi4uLiIpOworICAgICAgICBub3JtLnNldE1vZGUoTm9ybWFsaXplci5ORkMpOworICAgICAgICBiYWNrQW5kRm9ydGgobm9ybSwgaGFuZ3VsQ2Fub24pOworICAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0SGFuZ3VsRGVjb21wKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdGhlIHN0YXRpYyBkZWNvbXBvc2l0aW9uIG1ldGhvZHMgd29yaworICAgICAgICBsb2dsbigiQ2Fub25pY2FsIGRlY29tcG9zaXRpb24uLi4iKTsKKyAgICAgICAgc3RhdGljVGVzdChOb3JtYWxpemVyLk5GRCwgaGFuZ3VsQ2Fub24sICAxKTsKKyAgICAgICAgbG9nbG4oIkNvbXBhdGliaWxpdHkgZGVjb21wb3NpdGlvbi4uLiIpOworICAgICAgICBzdGF0aWNUZXN0KE5vcm1hbGl6ZXIuTkZLRCwgaGFuZ3VsQ29tcGF0LCAxKTsKKworICAgICAgICAgLy8gTm93IHRoZSBpdGVyYXRpdmUgZGVjb21wb3NpdGlvbiBtZXRob2RzLi4uCisgICAgICAgIGxvZ2xuKCJJdGVyYXRpdmUgZGVjb21wb3NpdGlvbi4uLiIpOworICAgICAgICBOb3JtYWxpemVyIG5vcm0gPSBuZXcgTm9ybWFsaXplcigiIiwgTm9ybWFsaXplci5ORkQpOworICAgICAgICBpdGVyYXRlVGVzdChub3JtLCBoYW5ndWxDYW5vbiwgMSk7CisKKyAgICAgICAgbm9ybS5zZXRNb2RlKE5vcm1hbGl6ZXIuTkZLRCk7CisgICAgICAgIGl0ZXJhdGVUZXN0KG5vcm0sIGhhbmd1bENvbXBhdCwgMSk7CisKKyAgICAgICAgLy8gQW5kIGZpbmFsbHksIG1ha2Ugc3VyZSB5b3UgY2FuIGRvIGl0IGluIHJldmVyc2UgdG9vCisgICAgICAgIGxvZ2xuKCJSZXZlcnNlIGl0ZXJhdGlvbi4uLiIpOworICAgICAgICBub3JtLnNldE1vZGUoTm9ybWFsaXplci5ORkQpOworICAgICAgICBiYWNrQW5kRm9ydGgobm9ybSwgaGFuZ3VsQ2Fub24pOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0Tm9uZSgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIE5vcm1hbGl6ZXIgbm9ybSA9IG5ldyBOb3JtYWxpemVyKCIiLCBOb3JtYWxpemVyLk5PTkUpOworICAgICAgICBpdGVyYXRlVGVzdChub3JtLCBjYW5vblRlc3RzLCAwKTsKKyAgICAgICAgc3RhdGljVGVzdChOb3JtYWxpemVyLk5PTkUsIGNhbm9uVGVzdHMsIDApOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0RGVjb21wKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgTm9ybWFsaXplciBub3JtID0gbmV3IE5vcm1hbGl6ZXIoIiIsIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgaXRlcmF0ZVRlc3Qobm9ybSwgY2Fub25UZXN0cywgMSk7CisgICAgICAgIHN0YXRpY1Rlc3QoTm9ybWFsaXplci5ORkQsIGNhbm9uVGVzdHMsIDEpOworICAgICAgICBkZWNvbXBvc2VUZXN0KE5vcm1hbGl6ZXIuTkZELCBjYW5vblRlc3RzLCAxKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcGF0RGVjb21wKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgTm9ybWFsaXplciBub3JtID0gbmV3IE5vcm1hbGl6ZXIoIiIsIE5vcm1hbGl6ZXIuTkZLRCk7CisgICAgICAgIGl0ZXJhdGVUZXN0KG5vcm0sIGNvbXBhdFRlc3RzLCAxKTsKKyAgICAgICAgc3RhdGljVGVzdChOb3JtYWxpemVyLk5GS0QsY29tcGF0VGVzdHMsIDEpOworICAgICAgICBkZWNvbXBvc2VUZXN0KE5vcm1hbGl6ZXIuTkZLRCxjb21wYXRUZXN0cywgMSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENhbm9uQ29tcG9zZSgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIE5vcm1hbGl6ZXIgbm9ybSA9IG5ldyBOb3JtYWxpemVyKCIiLCBOb3JtYWxpemVyLk5GQyk7CisgICAgICAgIGl0ZXJhdGVUZXN0KG5vcm0sIGNhbm9uVGVzdHMsIDIpOworICAgICAgICBzdGF0aWNUZXN0KE5vcm1hbGl6ZXIuTkZDLCBjYW5vblRlc3RzLCAyKTsKKyAgICAgICAgY29tcG9zZVRlc3QoTm9ybWFsaXplci5ORkMsIGNhbm9uVGVzdHMsIDIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb21wYXRDb21wb3NlKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgTm9ybWFsaXplciBub3JtID0gbmV3IE5vcm1hbGl6ZXIoIiIsIE5vcm1hbGl6ZXIuTkZLQyk7CisgICAgICAgIGl0ZXJhdGVUZXN0KG5vcm0sIGNvbXBhdFRlc3RzLCAyKTsKKyAgICAgICAgc3RhdGljVGVzdChOb3JtYWxpemVyLk5GS0MsY29tcGF0VGVzdHMsIDIpOworICAgICAgICBjb21wb3NlVGVzdChOb3JtYWxpemVyLk5GS0MsY29tcGF0VGVzdHMsIDIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RFeHBsb2RpbmdCYXNlKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgLy8gXHUwMTdmIC0gTGF0aW4gc21hbGwgbGV0dGVyIGxvbmcgcworICAgICAgICAvLyBcdTAzMDcgLSBjb21iaW5pbmcgZG90IGFib3ZlCisgICAgICAgIC8vIFx1MWU2MSAtIExhdGluIHNtYWxsIGxldHRlciBzIHdpdGggZG90IGFib3ZlCisgICAgICAgIC8vIFx1MWU5YiAtIExhdGluIHNtYWxsIGxldHRlciBsb25nIHMgd2l0aCBkb3QgYWJvdmUKKyAgICAgICAgU3RyaW5nW11bXSBjYW5vbiA9IHsKKyAgICAgICAgICAgIC8vIElucHV0ICAgICAgICAgICAgICAgIERlY29tcG9zZWQgICAgICAgICAgICAgIENvbXBvc2VkCisgICAgICAgICAgICB7ICJUc2NodVx1MDE3ZiIsICAgICAgICAiVHNjaHVcdTAxN2YiLCAgICAgICAgICAiVHNjaHVcdTAxN2YiICAgIH0sCisgICAgICAgICAgICB7ICJUc2NodVx1MWU5YiIsICAgICAgICAiVHNjaHVcdTAxN2ZcdTAzMDciLCAgICAiVHNjaHVcdTFlOWIiICAgIH0sCisgICAgICAgIH07CisgICAgICAgIFN0cmluZ1tdW10gY29tcGF0ID0geworICAgICAgICAgICAgLy8gSW5wdXQgICAgICAgICAgICAgICAgRGVjb21wb3NlZCAgICAgICAgICAgICAgQ29tcG9zZWQKKyAgICAgICAgICAgIHsgIlx1MDE3ZiIsICAgICAgICAicyIsICAgICAgICAgICAgICAicyIgICAgICAgICAgIH0sCisgICAgICAgICAgICB7ICJcdTFlOWIiLCAgICAgICAgInNcdTAzMDciLCAgICAgICAgIlx1MWU2MSIgICAgICB9LAorICAgICAgICB9OworCisgICAgICAgIHN0YXRpY1Rlc3QoTm9ybWFsaXplci5ORkQsIGNhbm9uLCAgMSk7CisgICAgICAgIHN0YXRpY1Rlc3QoTm9ybWFsaXplci5ORkMsIGNhbm9uLCAgMik7CisKKyAgICAgICAgc3RhdGljVGVzdChOb3JtYWxpemVyLk5GS0QsIGNvbXBhdCwgMSk7CisgICAgICAgIHN0YXRpY1Rlc3QoTm9ybWFsaXplci5ORktDLCBjb21wYXQsIDIpOworCisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlIFRpYmV0YW4gdm93ZWwgc2lnbiBBQSwgMGY3MSwgd2FzIG1lc3NlZCB1cCBwcmlvciB0bworICAgICAqIFVuaWNvZGUgdmVyc2lvbiAyLjEuOS4KKyAgICAgKiBPbmNlIDIuMS45IG9yIDMuMCBpcyByZWxlYXNlZCwgdW5jb21tZW50IHRoaXMgdGVzdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0VGliZXRhbigpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIFN0cmluZ1tdW10gZGVjb21wID0geworICAgICAgICAgICAgeyAiXHUwZjc3IiwgIlx1MGY3NyIsICJcdTBmYjJcdTBmNzFcdTBmODAiIH0KKyAgICAgICAgfTsKKyAgICAgICAgU3RyaW5nW11bXSBjb21wb3NlID0geworICAgICAgICAgICAgeyAiXHUwZmIyXHUwZjcxXHUwZjgwIiwgIlx1MGZiMlx1MGY3MVx1MGY4MCIsICJcdTBmYjJcdTBmNzFcdTBmODAiIH0KKyAgICAgICAgfTsKKworICAgICAgICBzdGF0aWNUZXN0KE5vcm1hbGl6ZXIuTkZELCBkZWNvbXAsIDEpOworICAgICAgICBzdGF0aWNUZXN0KE5vcm1hbGl6ZXIuTkZLRCxkZWNvbXAsIDIpOworICAgICAgICBzdGF0aWNUZXN0KE5vcm1hbGl6ZXIuTkZDLCBjb21wb3NlLCAxKTsKKyAgICAgICAgc3RhdGljVGVzdChOb3JtYWxpemVyLk5GS0MsY29tcG9zZSwgMik7CisgICAgfQorCisgICAgLyoqCisgICAgICogTWFrZSBzdXJlIGNoYXJhY3RlcnMgaW4gdGhlIENvbXBvc2l0aW9uRXhjbHVzaW9uLnR4dCBsaXN0IGRvIG5vdCBnZXQKKyAgICAgKiBjb21wb3NlZCB0by4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcG9zaXRpb25FeGNsdXNpb24oKQorICAgICAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIC8vIFRoaXMgbGlzdCBpcyBnZW5lcmF0ZWQgZnJvbSBDb21wb3NpdGlvbkV4Y2x1c2lvbi50eHQuCisgICAgICAgIC8vIFVwZGF0ZSB3aGVuZXZlciB0aGUgbm9ybWFsaXplciB0YWJsZXMgYXJlIHVwZGF0ZWQuICBOb3RlCisgICAgICAgIC8vIHRoYXQgd2UgdGVzdCBhbGwgY2hhcmFjdGVycyBsaXN0ZWQsIGV2ZW4gdGhvc2UgdGhhdCBjYW4gYmUKKyAgICAgICAgLy8gZGVyaXZlZCBmcm9tIHRoZSBVbmljb2RlIERCIGFuZCBhcmUgdGhlcmVmb3JlIGNvbW1lbnRlZAorICAgICAgICAvLyBvdXQuCisgICAgICAgIFN0cmluZyBFWENMVURFRCA9CisgICAgICAgICAgICAiXHUwMzQwXHUwMzQxXHUwMzQzXHUwMzQ0XHUwMzc0XHUwMzdFXHUwMzg3XHUwOTU4IiArCisgICAgICAgICAgICAiXHUwOTU5XHUwOTVBXHUwOTVCXHUwOTVDXHUwOTVEXHUwOTVFXHUwOTVGXHUwOURDIiArCisgICAgICAgICAgICAiXHUwOUREXHUwOURGXHUwQTMzXHUwQTM2XHUwQTU5XHUwQTVBXHUwQTVCXHUwQTVFIiArCisgICAgICAgICAgICAiXHUwQjVDXHUwQjVEXHUwRjQzXHUwRjREXHUwRjUyXHUwRjU3XHUwRjVDXHUwRjY5IiArCisgICAgICAgICAgICAiXHUwRjczXHUwRjc1XHUwRjc2XHUwRjc4XHUwRjgxXHUwRjkzXHUwRjlEXHUwRkEyIiArCisgICAgICAgICAgICAiXHUwRkE3XHUwRkFDXHUwRkI5XHUxRjcxXHUxRjczXHUxRjc1XHUxRjc3XHUxRjc5IiArCisgICAgICAgICAgICAiXHUxRjdCXHUxRjdEXHUxRkJCXHUxRkJFXHUxRkM5XHUxRkNCXHUxRkQzXHUxRkRCIiArCisgICAgICAgICAgICAiXHUxRkUzXHUxRkVCXHUxRkVFXHUxRkVGXHUxRkY5XHUxRkZCXHUxRkZEXHUyMDAwIiArCisgICAgICAgICAgICAiXHUyMDAxXHUyMTI2XHUyMTJBXHUyMTJCXHUyMzI5XHUyMzJBXHVGOTAwXHVGQTEwIiArCisgICAgICAgICAgICAiXHVGQTEyXHVGQTE1XHVGQTIwXHVGQTIyXHVGQTI1XHVGQTI2XHVGQTJBXHVGQjFGIiArCisgICAgICAgICAgICAiXHVGQjJBXHVGQjJCXHVGQjJDXHVGQjJEXHVGQjJFXHVGQjJGXHVGQjMwXHVGQjMxIiArCisgICAgICAgICAgICAiXHVGQjMyXHVGQjMzXHVGQjM0XHVGQjM1XHVGQjM2XHVGQjM4XHVGQjM5XHVGQjNBIiArCisgICAgICAgICAgICAiXHVGQjNCXHVGQjNDXHVGQjNFXHVGQjQwXHVGQjQxXHVGQjQzXHVGQjQ0XHVGQjQ2IiArCisgICAgICAgICAgICAiXHVGQjQ3XHVGQjQ4XHVGQjQ5XHVGQjRBXHVGQjRCXHVGQjRDXHVGQjREXHVGQjRFIjsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPEVYQ0xVREVELmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBhID0gU3RyaW5nLnZhbHVlT2YoRVhDTFVERUQuY2hhckF0KGkpKTsKKyAgICAgICAgICAgIFN0cmluZyBiID0gTm9ybWFsaXplci5ub3JtYWxpemUoYSwgTm9ybWFsaXplci5ORktEKTsKKyAgICAgICAgICAgIFN0cmluZyBjID0gTm9ybWFsaXplci5ub3JtYWxpemUoYiwgTm9ybWFsaXplci5ORkMpOworICAgICAgICAgICAgaWYgKGMuZXF1YWxzKGEpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBoZXgoYSkgKyAiIHggREVDT01QX0NPTVBBVCA9PiAiICsKKyAgICAgICAgICAgICAgICAgICAgICBoZXgoYikgKyAiIHggQ09NUE9TRSA9PiAiICsKKyAgICAgICAgICAgICAgICAgICAgICBoZXgoYykpOworICAgICAgICAgICAgfSBlbHNlIGlmIChpc1ZlcmJvc2UoKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIGhleChhKSArICIgeCBERUNPTVBfQ09NUEFUID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgIGhleChiKSArICIgeCBDT01QT1NFID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgIGhleChjKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBtZXRob2Qgd29ya3MgdG9vLCBidXQgaXQgaXMgc29tZXdoYXQKKyAgICAgICAgLy8gaW5jZXN0dW91cy4gIEl0IHVzZXMgVUluZm8sIHdoaWNoIGlzIHRoZSBzYW1lIGRhdGFiYXNlIHRoYXQKKyAgICAgICAgLy8gTm9ybWFsaXplckJ1aWxkZXIgdXNlcywgc28gaWYgc29tZXRoaW5nIGlzIHdyb25nIHdpdGgKKyAgICAgICAgLy8gVUluZm8sIHRoZSBmb2xsb3dpbmcgdGVzdCB3b24ndCBzaG93IGl0LiAgQWxsIGl0IHdpbGwgc2hvdworICAgICAgICAvLyBpcyB0aGF0IE5vcm1hbGl6ZXJCdWlsZGVyIGhhcyBiZWVuIHJ1biB3aXRoIHdoYXRldmVyIHRoZQorICAgICAgICAvLyBjdXJyZW50IFVJbmZvIGlzLgorICAgICAgICAvLworICAgICAgICAvLyBXZSBjb21tZW50IHRoaXMgb3V0IGluIGZhdm9yIG9mIHRoZSB0ZXN0IGFib3ZlLCB3aGljaAorICAgICAgICAvLyBwcm92aWRlcyBpbmRlcGVuZGVudCB2ZXJpZmljYXRpb24gKGJ1dCBhbHNvIHJlcXVpcmVzCisgICAgICAgIC8vIGluZGVwZW5kZW50IHVwZGF0aW5nKS4KKy8vICAgICAgbG9nbG4oIi0tLSIpOworLy8gICAgICBVSW5mbyB1aW5mbyA9IG5ldyBVSW5mbygpOworLy8gICAgICBmb3IgKGludCBpPTA7IGk8PTB4RkZGRjsgKytpKSB7CisvLyAgICAgICAgICBpZiAoIXVpbmZvLmlzRXhjbHVkZWRDb21wb3NpdGlvbigoY2hhcilpKSB8fAorLy8gICAgICAgICAgICAgICghdWluZm8uaGFzQ2Fub25pY2FsRGVjb21wb3NpdGlvbigoY2hhcilpKSAmJgorLy8gICAgICAgICAgICAgICAhdWluZm8uaGFzQ29tcGF0aWJpbGl0eURlY29tcG9zaXRpb24oKGNoYXIpaSkpKSBjb250aW51ZTsKKy8vICAgICAgICAgIFN0cmluZyBhID0gU3RyaW5nLnZhbHVlT2YoKGNoYXIpaSk7CisvLyAgICAgICAgICBTdHJpbmcgYiA9IE5ld05vcm1hbGl6ZXIubm9ybWFsaXplKGEsTmV3Tm9ybWFsaXplci5ERUNPTVBfQ09NUEFULDApOworLy8gICAgICAgICAgU3RyaW5nIGMgPSBOZXdOb3JtYWxpemVyLm5vcm1hbGl6ZShiLE5ld05vcm1hbGl6ZXIuQ09NUE9TRSwwKTsKKy8vICAgICAgICAgIGlmIChjLmVxdWFscyhhKSkgeworLy8gICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgaGV4KGEpICsgIiB4IERFQ09NUF9DT01QQVQgPT4gIiArCisvLyAgICAgICAgICAgICAgICAgICAgaGV4KGIpICsgIiB4IENPTVBPU0UgPT4gIiArCisvLyAgICAgICAgICAgICAgICAgICAgaGV4KGMpKTsKKy8vICAgICAgICAgIH0gZWxzZSBpZiAoaXNWZXJib3NlKCkpIHsKKy8vICAgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyBoZXgoYSkgKyAiIHggREVDT01QX0NPTVBBVCA9PiAiICsKKy8vICAgICAgICAgICAgICAgICAgICBoZXgoYikgKyAiIHggQ09NUE9TRSA9PiAiICsKKy8vICAgICAgICAgICAgICAgICAgICBoZXgoYykpOworLy8gICAgICAgICAgfQorLy8gICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBmb3IgYSBwcm9ibGVtIHRoYXQgc2hvd2VkIHVwIGp1c3QgYmVmb3JlIElDVSAxLjYgcmVsZWFzZQorICAgICAqIGhhdmluZyB0byBkbyB3aXRoIGNvbWJpbmluZyBjaGFyYWN0ZXJzIHdpdGggYW4gaW5kZXggb2YgemVyby4KKyAgICAgKiBTdWNoIGNoYXJhY3RlcnMgZG8gbm90IHBhcnRpY2lwYXRlIGluIGFueSBjYW5vbmljYWwKKyAgICAgKiBkZWNvbXBvc2l0aW9ucy4gIEhvd2V2ZXIsIGhhdmluZyBhbiBpbmRleCBvZiB6ZXJvIG1lYW5zIHRoYXQKKyAgICAgKiB0aGV5IGFsbCBzaGFyZSBvbmUgdHlwZU1hc2tbXSBlbnRyeSwgdGhhdCBpcywgdGhleSBhbGwgaGF2ZSB0bworICAgICAqIG1hcCB0byB0aGUgc2FtZSBjYW5vbmljYWwgY2xhc3MsIHdoaWNoIGlzIG5vdCB0aGUgY2FzZSwgaW4KKyAgICAgKiByZWFsaXR5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RaZXJvSW5kZXgoKQorICAgICAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIFN0cmluZ1tdIERBVEEgPSB7CisgICAgICAgICAgICAvLyBFeHBlY3QgY29sMSB4IENPTVBPU0VfQ09NUEFUID0+IGNvbDIKKyAgICAgICAgICAgIC8vIEV4cGVjdCBjb2wyIHggREVDT01QID0+IGNvbDMKKyAgICAgICAgICAgICJBXHUwMzE2XHUwMzAwIiwgIlx1MDBDMFx1MDMxNiIsICJBXHUwMzE2XHUwMzAwIiwKKyAgICAgICAgICAgICJBXHUwMzAwXHUwMzE2IiwgIlx1MDBDMFx1MDMxNiIsICJBXHUwMzE2XHUwMzAwIiwKKyAgICAgICAgICAgICJBXHUwMzI3XHUwMzAwIiwgIlx1MDBDMFx1MDMyNyIsICJBXHUwMzI3XHUwMzAwIiwKKyAgICAgICAgICAgICJjXHUwMzIxXHUwMzI3IiwgImNcdTAzMjFcdTAzMjciLCAiY1x1MDMyMVx1MDMyNyIsCisgICAgICAgICAgICAiY1x1MDMyN1x1MDMyMSIsICJcdTAwRTdcdTAzMjEiLCAiY1x1MDMyN1x1MDMyMSIsCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0zKSB7CisgICAgICAgICAgICBTdHJpbmcgYSA9IERBVEFbaV07CisgICAgICAgICAgICBTdHJpbmcgYiA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKGEsIE5vcm1hbGl6ZXIuTkZLQyk7CisgICAgICAgICAgICBTdHJpbmcgZXhwID0gREFUQVtpKzFdOworICAgICAgICAgICAgaWYgKGIuZXF1YWxzKGV4cCkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyBoZXgoYSkgKyAiIHggQ09NUE9TRV9DT01QQVQgPT4gIiArIGhleChiKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgaGV4KGEpICsgIiB4IENPTVBPU0VfQ09NUEFUID0+ICIgKyBoZXgoYikgKworICAgICAgICAgICAgICAgICAgICAgICIsIGV4cGVjdCAiICsgaGV4KGV4cCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYSA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKGIsIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgIGV4cCA9IERBVEFbaSsyXTsKKyAgICAgICAgICAgIGlmIChhLmVxdWFscyhleHApKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgaGV4KGIpICsgIiB4IERFQ09NUCA9PiAiICsgaGV4KGEpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBoZXgoYikgKyAiIHggREVDT01QID0+ICIgKyBoZXgoYSkgKworICAgICAgICAgICAgICAgICAgICAgICIsIGV4cGVjdCAiICsgaGV4KGV4cCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBmb3IgYSBwcm9ibGVtIGZvdW5kIGJ5IFZlcmlzaWduLiAgUHJvYmxlbSBpcyB0aGF0CisgICAgICogY2hhcmFjdGVycyBhdCB0aGUgc3RhcnQgb2YgYSBzdHJpbmcgYXJlIG5vdCBwdXQgaW4gY2Fub25pY2FsCisgICAgICogb3JkZXIgY29ycmVjdGx5IGJ5IGNvbXBvc2UoKSBpZiB0aGVyZSBpcyBubyBzdGFydGVyLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RWZXJpc2lnbigpCisgICAgICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgU3RyaW5nW10gaW5wdXRzID0geworICAgICAgICAgICAgIlx1MDViOFx1MDViOVx1MDViMVx1MDU5MVx1MDVjM1x1MDViMFx1MDVhY1x1MDU5ZiIsCisgICAgICAgICAgICAiXHUwNTkyXHUwNWI3XHUwNWJjXHUwNWE1XHUwNWIwXHUwNWMwXHUwNWM0XHUwNWFkIgorICAgICAgICB9OworICAgICAgICBTdHJpbmdbXSBvdXRwdXRzID0geworICAgICAgICAgICAgIlx1MDViMVx1MDViOFx1MDViOVx1MDU5MVx1MDVjM1x1MDViMFx1MDVhY1x1MDU5ZiIsCisgICAgICAgICAgICAiXHUwNWIwXHUwNWI3XHUwNWJjXHUwNWE1XHUwNTkyXHUwNWMwXHUwNWFkXHUwNWM0IgorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgaW5wdXQgPSBpbnB1dHNbaV07CisgICAgICAgICAgICBTdHJpbmcgb3V0cHV0ID0gb3V0cHV0c1tpXTsKKyAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSBOb3JtYWxpemVyLmRlY29tcG9zZShpbnB1dCwgZmFsc2UpOworICAgICAgICAgICAgaWYgKCFyZXN1bHQuZXF1YWxzKG91dHB1dCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBpbnB1dDogIiArIGhleChpbnB1dCkpOworICAgICAgICAgICAgICAgIGVycmxuKCIgZGVjb21wb3NlOiAiICsgaGV4KHJlc3VsdCkpOworICAgICAgICAgICAgICAgIGVycmxuKCIgIGV4cGVjdGVkOiAiICsgaGV4KG91dHB1dCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVzdWx0ID0gTm9ybWFsaXplci5jb21wb3NlKGlucHV0LCBmYWxzZSk7CisgICAgICAgICAgICBpZiAoIXJlc3VsdC5lcXVhbHMob3V0cHV0KSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIGlucHV0OiAiICsgaGV4KGlucHV0KSk7CisgICAgICAgICAgICAgICAgZXJybG4oIiAgIGNvbXBvc2U6ICIgKyBoZXgocmVzdWx0KSk7CisgICAgICAgICAgICAgICAgZXJybG4oIiAgZXhwZWN0ZWQ6ICIgKyBoZXgob3V0cHV0KSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgIH0KKyAgICBwdWJsaWMgdm9pZCAgVGVzdFF1aWNrQ2hlY2tSZXN1bHROTygpCisgICAgICAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIGZpbmFsIGNoYXIgQ1BORkRbXSA9IHsweDAwQzUsIDB4MDQwNywgMHgxRTAwLCAweDFGNTcsIDB4MjIwQywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzMEFFLCAweEFDMDAsIDB4RDdBMywgMHhGQjM2LCAweEZCNEV9OworICAgICAgICBmaW5hbCBjaGFyIENQTkZDW10gPSB7MHgwMzQwLCAweDBGOTMsIDB4MUY3NywgMHgxRkJCLCAweDFGRUIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMCwgMHgyMzJBLCAweEY5MDAsIDB4RkExRSwgMHhGQjRFfTsKKyAgICAgICAgZmluYWwgY2hhciBDUE5GS0RbXSA9IHsweDAwQTAsIDB4MDJFNCwgMHgxRkRCLCAweDI0RUEsIDB4MzJGRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhBQzAwLCAweEZCNEUsIDB4RkExMCwgMHhGRjNGLCAweEZBMkR9OworICAgICAgICBmaW5hbCBjaGFyIENQTkZLQ1tdID0gezB4MDBBMCwgMHgwMTdGLCAweDIwMDAsIDB4MjRFQSwgMHgzMkZFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMzRkUsIDB4RkI0RSwgMHhGQTEwLCAweEZGM0YsIDB4RkEyRH07CisKKworICAgICAgICBmaW5hbCBpbnQgU0laRSA9IDEwOworCisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIGZvciAoOyBjb3VudCA8IFNJWkU7IGNvdW50ICsrKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKFN0cmluZy52YWx1ZU9mKENQTkZEW2NvdW50XSksCisgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZEKSAhPSBOb3JtYWxpemVyLk5PKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUiBpbiBORkQgcXVpY2sgY2hlY2sgYXQgVSsiICsKKyAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhDUE5GRFtjb3VudF0pKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKFN0cmluZy52YWx1ZU9mKENQTkZDW2NvdW50XSksCisgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GQykgIT1Ob3JtYWxpemVyLk5PKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUiBpbiBORkMgcXVpY2sgY2hlY2sgYXQgVSsiKworICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKENQTkZDW2NvdW50XSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soU3RyaW5nLnZhbHVlT2YoQ1BORktEW2NvdW50XSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZLRCkgIT0gTm9ybWFsaXplci5OTykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZLRCBxdWljayBjaGVjayBhdCBVKyIrCisgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoQ1BORktEW2NvdW50XSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soU3RyaW5nLnZhbHVlT2YoQ1BORktDW2NvdW50XSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZLQykgIT1Ob3JtYWxpemVyLk5PKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUiBpbiBORktDIHF1aWNrIGNoZWNrIGF0IFUrIisKKyAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhDUE5GS0NbY291bnRdKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisKKyAgICBwdWJsaWMgdm9pZCBUZXN0UXVpY2tDaGVja1Jlc3VsdFlFUygpCisgICAgICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgZmluYWwgY2hhciBDUE5GRFtdID0gezB4MDBDNiwgMHgwMTdGLCAweDBGNzQsIDB4MTAwMCwgMHgxRTlBLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyNjEsIDB4MzA3NSwgMHg0MDAwLCAweDUwMDAsIDB4RjAwMH07CisgICAgICAgIGZpbmFsIGNoYXIgQ1BORkNbXSA9IHsweDA0MDAsIDB4MDU0MCwgMHgwOTAxLCAweDEwMDAsIDB4MTUwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRTlBLCAweDMwMDAsIDB4NDAwMCwgMHg1MDAwLCAweEYwMDB9OworICAgICAgICBmaW5hbCBjaGFyIENQTkZLRFtdID0gezB4MDBBQiwgMHgwMkEwLCAweDEwMDAsIDB4MTAyNywgMHgyRkZCLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYsIDB4NEZGRiwgMHhBMDAwLCAweEYwMDAsIDB4RkEyN307CisgICAgICAgIGZpbmFsIGNoYXIgQ1BORktDW10gPSB7MHgwMEIwLCAweDAxMDAsIDB4MDIwMCwgMHgwQTAyLCAweDEwMDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAxMCwgMHgzMDMwLCAweDQwMDAsIDB4QTAwMCwgMHhGQTBFfTsKKworICAgICAgICBmaW5hbCBpbnQgU0laRSA9IDEwOworICAgICAgICBpbnQgY291bnQgPSAwOworCisgICAgICAgIGNoYXIgY3AgPSAwOworICAgICAgICB3aGlsZSAoY3AgPCAweEEwKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKFN0cmluZy52YWx1ZU9mKGNwKSwgTm9ybWFsaXplci5ORkQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICE9IE5vcm1hbGl6ZXIuWUVTKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUiBpbiBORkQgcXVpY2sgY2hlY2sgYXQgVSsiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhjcCkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soU3RyaW5nLnZhbHVlT2YoY3ApLCBOb3JtYWxpemVyLk5GQykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICE9IE5vcm1hbGl6ZXIuWUVTKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUiBpbiBORkMgcXVpY2sgY2hlY2sgYXQgVSsiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhjcCkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soU3RyaW5nLnZhbHVlT2YoY3ApLCBOb3JtYWxpemVyLk5GS0QpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBOb3JtYWxpemVyLllFUykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZLRCBxdWljayBjaGVjayBhdCBVKyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhjcCkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soU3RyaW5nLnZhbHVlT2YoY3ApLCBOb3JtYWxpemVyLk5GS0MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBOb3JtYWxpemVyLllFUykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZLQyBxdWljayBjaGVjayBhdCBVKyIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhjcCkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNwKys7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKDsgY291bnQgPCBTSVpFOyBjb3VudCArKykKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayhTdHJpbmcudmFsdWVPZihDUE5GRFtjb3VudF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GRCkhPU5vcm1hbGl6ZXIuWUVTKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUiBpbiBORkQgcXVpY2sgY2hlY2sgYXQgVSsiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhDUE5GRFtjb3VudF0pKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKFN0cmluZy52YWx1ZU9mKENQTkZDW2NvdW50XSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZDKSE9Tm9ybWFsaXplci5ZRVMpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SIGluIE5GQyBxdWljayBjaGVjayBhdCBVKyIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKENQTkZDW2NvdW50XSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soU3RyaW5nLnZhbHVlT2YoQ1BORktEW2NvdW50XSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZLRCkhPU5vcm1hbGl6ZXIuWUVTKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUiBpbiBORktEIHF1aWNrIGNoZWNrIGF0IFUrIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoQ1BORktEW2NvdW50XSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soU3RyaW5nLnZhbHVlT2YoQ1BORktDW2NvdW50XSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZLQykhPU5vcm1hbGl6ZXIuWUVTKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUiBpbiBORktDIHF1aWNrIGNoZWNrIGF0IFUrIisKKyAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoQ1BORktDW2NvdW50XSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0QmVuZ2FsaSgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIFN0cmluZyBpbnB1dCA9ICJcdTA5YmNcdTA5YmVcdTA5Y2RcdTA5YmUiOworICAgICAgICBTdHJpbmcgb3V0cHV0PU5vcm1hbGl6ZXIubm9ybWFsaXplKGlucHV0LE5vcm1hbGl6ZXIuTkZDKTsKKyAgICAgICAgaWYoIWlucHV0LmVxdWFscyhvdXRwdXQpKXsKKyAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZDIG9mIHN0cmluZyIpOworICAgICAgICB9CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdFF1aWNrQ2hlY2tSZXN1bHRNQVlCRSgpCisgICAgICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbnsKKworICAgICAgICBmaW5hbCBjaGFyW10gQ1BORkMgPSB7MHgwMzA2LCAweDA2NTQsIDB4MEJCRSwgMHgxMDJFLCAweDExNjEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTE2QSwgMHgxMTczLCAweDExNzUsIDB4MzA5OSwgMHgzMDlBfTsKKyAgICAgICAgZmluYWwgY2hhcltdIENQTkZLQyA9IHsweDAzMDAsIDB4MDY1NCwgMHgwNjU1LCAweDA5RDcsIDB4MEIzRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRENGLCAweERERiwgMHgxMDJFLCAweDExQTgsIDB4MzA5OX07CisKKworICAgICAgICBmaW5hbCBpbnQgU0laRSA9IDEwOworCisgICAgICAgIGludCBjb3VudCA9IDA7CisKKyAgICAgICAgLyogTkZEIGFuZCBORktEIGRvZXMgbm90IGhhdmUgYW55IE1BWUJFIGNvZGVwb2ludHMgKi8KKyAgICAgICAgZm9yICg7IGNvdW50IDwgU0laRTsgY291bnQgKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soU3RyaW5nLnZhbHVlT2YoQ1BORkNbY291bnRdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GQykhPU5vcm1hbGl6ZXIuTUFZQkUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SIGluIE5GQyBxdWljayBjaGVjayBhdCBVKyIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoQ1BORkNbY291bnRdKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayhTdHJpbmcudmFsdWVPZihDUE5GS0NbY291bnRdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZLQykhPU5vcm1hbGl6ZXIuTUFZQkUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SIGluIE5GS0MgcXVpY2sgY2hlY2sgYXQgVSsiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKENQTkZLQ1tjb3VudF0pKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKG5ldyBjaGFyW117Q1BORkNbY291bnRdfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GQykhPU5vcm1hbGl6ZXIuTUFZQkUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SIGluIE5GQyBxdWljayBjaGVjayBhdCBVKyIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoQ1BORkNbY291bnRdKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayhuZXcgY2hhcltde0NQTkZLQ1tjb3VudF19LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORktDKSE9Tm9ybWFsaXplci5NQVlCRSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZLQyBxdWljayBjaGVjayBhdCBVKyIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoQ1BORktDW2NvdW50XSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2sobmV3IGNoYXJbXXtDUE5GS0NbY291bnRdfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTk9ORSkhPU5vcm1hbGl6ZXIuTUFZQkUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SIGluIE5GS0MgcXVpY2sgY2hlY2sgYXQgVSsiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKENQTkZLQ1tjb3VudF0pKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0UXVpY2tDaGVja1N0cmluZ1Jlc3VsdCgpCisgICAgICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgaW50IGNvdW50OworICAgICAgICBTdHJpbmcgZDsKKyAgICAgICAgU3RyaW5nIGM7CisKKyAgICAgICAgZm9yIChjb3VudCA9IDA7IGNvdW50IDwgY2Fub25UZXN0cy5sZW5ndGg7IGNvdW50ICsrKQorICAgICAgICB7CisgICAgICAgICAgICBkID0gY2Fub25UZXN0c1tjb3VudF1bMV07CisgICAgICAgICAgICBjID0gY2Fub25UZXN0c1tjb3VudF1bMl07CisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKGQsTm9ybWFsaXplci5ORkQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICE9IE5vcm1hbGl6ZXIuWUVTKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUiBpbiBORkQgcXVpY2sgY2hlY2sgZm9yIHN0cmluZyBhdCBjb3VudCAiICsgY291bnQpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayhjLCBOb3JtYWxpemVyLk5GQykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gTm9ybWFsaXplci5OTykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZDIHF1aWNrIGNoZWNrIGZvciBzdHJpbmcgYXQgY291bnQgIiArIGNvdW50KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGNvdW50ID0gMDsgY291bnQgPCBjb21wYXRUZXN0cy5sZW5ndGg7IGNvdW50ICsrKQorICAgICAgICB7CisgICAgICAgICAgICBkID0gY29tcGF0VGVzdHNbY291bnRdWzFdOworICAgICAgICAgICAgYyA9IGNvbXBhdFRlc3RzW2NvdW50XVsyXTsKKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soZCwgTm9ybWFsaXplci5ORktEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBOb3JtYWxpemVyLllFUykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZLRCBxdWljayBjaGVjayBmb3Igc3RyaW5nIGF0IGNvdW50ICIgKyBjb3VudCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKGMsICBOb3JtYWxpemVyLk5GS0MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICE9IE5vcm1hbGl6ZXIuWUVTKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUiBpbiBORktDIHF1aWNrIGNoZWNrIGZvciBzdHJpbmcgYXQgY291bnQgIiArIGNvdW50KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBJbnRlcm5hbCB1dGlsaXRpZXMKKyAgICAvLworICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gSW50ZXJuYWwgdXRpbGl0aWVzCisgICAgLy8KKworICAgIHByaXZhdGUgdm9pZCBiYWNrQW5kRm9ydGgoTm9ybWFsaXplciBpdGVyLCBTdHJpbmcgaW5wdXQpCisgICAgeworICAgICAgICBpdGVyLnNldFRleHQoaW5wdXQpOworCisgICAgICAgIC8vIFJ1biB0aHJvdWdoIHRoZSBpdGVyYXRvciBmb3J3YXJkcyBhbmQgc3RpY2sgaXQgaW50byBhIFN0cmluZ0J1ZmZlcgorICAgICAgICBTdHJpbmdCdWZmZXIgZm9yd2FyZCA9ICBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGNoID0gaXRlci5maXJzdCgpOyBjaCAhPSBpdGVyLkRPTkU7IGNoID0gaXRlci5uZXh0KCkpIHsKKyAgICAgICAgICAgIGZvcndhcmQuYXBwZW5kKGNoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE5vdyBkbyBpdCBiYWNrd2FyZHMKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJldmVyc2UgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGNoID0gaXRlci5sYXN0KCk7IGNoICE9IGl0ZXIuRE9ORTsgY2ggPSBpdGVyLnByZXZpb3VzKCkpIHsKKyAgICAgICAgICAgIHJldmVyc2UuaW5zZXJ0KDAsIGNoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghZm9yd2FyZC50b1N0cmluZygpLmVxdWFscyhyZXZlcnNlLnRvU3RyaW5nKCkpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogRm9yd2FyZC9yZXZlcnNlIG1pc21hdGNoIGZvciBpbnB1dCAiICsgaGV4KGlucHV0KQorICAgICAgICAgICAgICAgICAgKyAiLCBmb3J3YXJkOiAiICsgaGV4KGZvcndhcmQpICsgIiwgYmFja3dhcmQ6ICIraGV4KHJldmVyc2UpKTsKKyAgICAgICAgfSBlbHNlIGlmIChpc1ZlcmJvc2UoKSkgeworICAgICAgICAgICAgbG9nbG4oIk9rOiBGb3J3YXJkL3JldmVyc2UgZm9yIGlucHV0ICIgKyBoZXgoaW5wdXQpCisgICAgICAgICAgICAgICAgICArICIsIGZvcndhcmQ6ICIgKyBoZXgoZm9yd2FyZCkgKyAiLCBiYWNrd2FyZDogIitoZXgocmV2ZXJzZSkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGJhY2tBbmRGb3J0aChOb3JtYWxpemVyIGl0ZXIsIFN0cmluZ1tdW10gdGVzdHMpCisgICAgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgaSsrKQorICAgICAgICB7CisgICAgICAgICAgICBpdGVyLnNldFRleHQodGVzdHNbaV1bMF0pOworCisgICAgICAgICAgICAvLyBSdW4gdGhyb3VnaCB0aGUgaXRlcmF0b3IgZm9yd2FyZHMgYW5kIHN0aWNrIGl0IGludG8gYQorICAgICAgICAgICAgLy8gU3RyaW5nQnVmZmVyCisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgZm9yd2FyZCA9ICBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBmb3IgKGludCBjaCA9IGl0ZXIuZmlyc3QoKTsgY2ggIT0gaXRlci5ET05FOyBjaCA9IGl0ZXIubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgZm9yd2FyZC5hcHBlbmQoY2gpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBOb3cgZG8gaXQgYmFja3dhcmRzCisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcmV2ZXJzZSA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGNoID0gaXRlci5sYXN0KCk7IGNoICE9IGl0ZXIuRE9ORTsgY2ggPSBpdGVyLnByZXZpb3VzKCkpIHsKKyAgICAgICAgICAgICAgICByZXZlcnNlLmluc2VydCgwLCBjaCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghZm9yd2FyZC50b1N0cmluZygpLmVxdWFscyhyZXZlcnNlLnRvU3RyaW5nKCkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEZvcndhcmQvcmV2ZXJzZSBtaXNtYXRjaCBmb3IgaW5wdXQgIgorICAgICAgICAgICAgICAgICAgICArIGhleCh0ZXN0c1tpXVswXSkgKyAiLCBmb3J3YXJkOiAiICsgaGV4KGZvcndhcmQpCisgICAgICAgICAgICAgICAgICAgICsgIiwgYmFja3dhcmQ6ICIgKyBoZXgocmV2ZXJzZSkpOworICAgICAgICAgICAgfSBlbHNlIGlmIChpc1ZlcmJvc2UoKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogRm9yd2FyZC9yZXZlcnNlIGZvciBpbnB1dCAiICsgaGV4KHRlc3RzW2ldWzBdKQorICAgICAgICAgICAgICAgICAgICAgICsgIiwgZm9yd2FyZDogIiArIGhleChmb3J3YXJkKSArICIsIGJhY2t3YXJkOiAiCisgICAgICAgICAgICAgICAgICAgICAgKyBoZXgocmV2ZXJzZSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHN0YXRpY1Rlc3QgKE5vcm1hbGl6ZXIuTW9kZSBtb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdbXVtdIHRlc3RzLCBpbnQgb3V0Q29sKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgaSsrKQorICAgICAgICB7CisgICAgICAgICAgICBTdHJpbmcgaW5wdXQgPSBVdGlsaXR5LnVuZXNjYXBlKHRlc3RzW2ldWzBdKTsKKyAgICAgICAgICAgIFN0cmluZyBleHBlY3QgPSBVdGlsaXR5LnVuZXNjYXBlKHRlc3RzW2ldW291dENvbF0pOworCisgICAgICAgICAgICBsb2dsbigiTm9ybWFsaXppbmcgJyIgKyBpbnB1dCArICInICgiICsgaGV4KGlucHV0KSArICIpIiApOworCisgICAgICAgICAgICBTdHJpbmcgb3V0cHV0ID0gTm9ybWFsaXplci5ub3JtYWxpemUoaW5wdXQsIG1vZGUpOworCisgICAgICAgICAgICBpZiAoIW91dHB1dC5lcXVhbHMoZXhwZWN0KSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjYXNlICIgKyBpCisgICAgICAgICAgICAgICAgICAgICsgIiBleHBlY3RlZCAnIiArIGV4cGVjdCArICInICgiICsgaGV4KGV4cGVjdCkgKyAiKSIKKyAgICAgICAgICAgICAgICAgICAgKyAiIGJ1dCBnb3QgJyIgKyBvdXRwdXQgKyAiJyAoIiArIGhleChvdXRwdXQpICsgIikiICk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2hhcltdIG91dHB1dCA9IG5ldyBjaGFyWzFdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgaSsrKQorICAgICAgICB7CisgICAgICAgICAgICBjaGFyW10gaW5wdXQgPSBVdGlsaXR5LnVuZXNjYXBlKHRlc3RzW2ldWzBdKS50b0NoYXJBcnJheSgpOworICAgICAgICAgICAgU3RyaW5nIGV4cGVjdCA9VXRpbGl0eS51bmVzY2FwZSggdGVzdHNbaV1bb3V0Q29sXSk7CisKKyAgICAgICAgICAgIGxvZ2xuKCJOb3JtYWxpemluZyAnIiArIG5ldyBTdHJpbmcoaW5wdXQpICsgIicgKCIgKworICAgICAgICAgICAgICAgICAgICAgICAgaGV4KG5ldyBTdHJpbmcoaW5wdXQpKSArICIpIiApOworICAgICAgICAgICAgaW50IHJlcUxlbmd0aD0wOworCSAgICAgICAgd2hpbGUodHJ1ZSl7CisJCSAgICAgICAgdHJ5eworCQkgICAgICAgIAlyZXFMZW5ndGg9Tm9ybWFsaXplci5ub3JtYWxpemUoaW5wdXQsb3V0cHV0LCBtb2RlKTsKKwkJICAgICAgICAJaWYocmVxTGVuZ3RoPD1vdXRwdXQubGVuZ3RoCSl7CisJCSAgICAgICAgCQlicmVhazsKKwkJICAgICAgICAJfQorCQkgICAgICAgIH1jYXRjaChJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpeworCQkgICAgICAgIAlvdXRwdXQ9IG5ldyBjaGFyW0ludGVnZXIucGFyc2VJbnQoZS5nZXRNZXNzYWdlKCkpXTsKKwkJICAgICAgICAJY29udGludWU7CisJCSAgICAgICAgfQorCSAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFleHBlY3QuZXF1YWxzKG5ldyBTdHJpbmcob3V0cHV0LDAscmVxTGVuZ3RoKSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogY2FzZSAiICsgaQorICAgICAgICAgICAgICAgICAgICArICIgZXhwZWN0ZWQgJyIgKyBleHBlY3QgKyAiJyAoIiArIGhleChleHBlY3QpICsgIikiCisgICAgICAgICAgICAgICAgICAgICsgIiBidXQgZ290ICciICsgbmV3IFN0cmluZyhvdXRwdXQpCisgICAgICAgICAgICAgICAgICAgICsgIicgKCIgICsgaGV4KG5ldyBTdHJpbmcob3V0cHV0KSkgKyAiKSIgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHZvaWQgZGVjb21wb3NlVGVzdChOb3JtYWxpemVyLk1vZGUgbW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nW11bXSB0ZXN0cywgaW50IG91dENvbCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7IGkrKykKKyAgICAgICAgeworICAgICAgICAgICAgU3RyaW5nIGlucHV0ID0gVXRpbGl0eS51bmVzY2FwZSh0ZXN0c1tpXVswXSk7CisgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ID0gVXRpbGl0eS51bmVzY2FwZSh0ZXN0c1tpXVtvdXRDb2xdKTsKKworICAgICAgICAgICAgbG9nbG4oIk5vcm1hbGl6aW5nICciICsgaW5wdXQgKyAiJyAoIiArIGhleChpbnB1dCkgKyAiKSIgKTsKKworICAgICAgICAgICAgU3RyaW5nIG91dHB1dCA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKGlucHV0LCBtb2RlPT1Ob3JtYWxpemVyLk5GS0QpOworCisgICAgICAgICAgICBpZiAoIW91dHB1dC5lcXVhbHMoZXhwZWN0KSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjYXNlICIgKyBpCisgICAgICAgICAgICAgICAgICAgICsgIiBleHBlY3RlZCAnIiArIGV4cGVjdCArICInICgiICsgaGV4KGV4cGVjdCkgKyAiKSIKKyAgICAgICAgICAgICAgICAgICAgKyAiIGJ1dCBnb3QgJyIgKyBvdXRwdXQgKyAiJyAoIiArIGhleChvdXRwdXQpICsgIikiICk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2hhcltdIG91dHB1dCA9IG5ldyBjaGFyWzFdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgaSsrKQorICAgICAgICB7CisgICAgICAgICAgICBjaGFyW10gaW5wdXQgPSBVdGlsaXR5LnVuZXNjYXBlKHRlc3RzW2ldWzBdKS50b0NoYXJBcnJheSgpOworICAgICAgICAgICAgU3RyaW5nIGV4cGVjdCA9IFV0aWxpdHkudW5lc2NhcGUodGVzdHNbaV1bb3V0Q29sXSk7CisKKyAgICAgICAgICAgIGxvZ2xuKCJOb3JtYWxpemluZyAnIiArIG5ldyBTdHJpbmcoaW5wdXQpICsgIicgKCIgKworICAgICAgICAgICAgICAgICAgICAgICAgaGV4KG5ldyBTdHJpbmcoaW5wdXQpKSArICIpIiApOworICAgICAgICAgICAgaW50IHJlcUxlbmd0aD0wOworICAgICAgICAgICAgd2hpbGUodHJ1ZSl7CisgICAgICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgICAgICByZXFMZW5ndGg9Tm9ybWFsaXplci5kZWNvbXBvc2UoaW5wdXQsb3V0cHV0LCBtb2RlPT1Ob3JtYWxpemVyLk5GS0QpOworICAgICAgICAgICAgICAgICAgICBpZihyZXFMZW5ndGg8PW91dHB1dC5sZW5ndGggKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfWNhdGNoKEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gZSl7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dD0gbmV3IGNoYXJbSW50ZWdlci5wYXJzZUludChlLmdldE1lc3NhZ2UoKSldOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWV4cGVjdC5lcXVhbHMobmV3IFN0cmluZyhvdXRwdXQsMCxyZXFMZW5ndGgpKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjYXNlICIgKyBpCisgICAgICAgICAgICAgICAgICAgICsgIiBleHBlY3RlZCAnIiArIGV4cGVjdCArICInICgiICsgaGV4KGV4cGVjdCkgKyAiKSIKKyAgICAgICAgICAgICAgICAgICAgKyAiIGJ1dCBnb3QgJyIgKyBuZXcgU3RyaW5nKG91dHB1dCkKKyAgICAgICAgICAgICAgICAgICAgKyAiJyAoIiAgKyBoZXgobmV3IFN0cmluZyhvdXRwdXQpKSArICIpIiApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGNvbXBvc2VUZXN0KE5vcm1hbGl6ZXIuTW9kZSBtb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdbXVtdIHRlc3RzLCBpbnQgb3V0Q29sKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgaSsrKQorICAgICAgICB7CisgICAgICAgICAgICBTdHJpbmcgaW5wdXQgPSBVdGlsaXR5LnVuZXNjYXBlKHRlc3RzW2ldWzBdKTsKKyAgICAgICAgICAgIFN0cmluZyBleHBlY3QgPSBVdGlsaXR5LnVuZXNjYXBlKHRlc3RzW2ldW291dENvbF0pOworCisgICAgICAgICAgICBsb2dsbigiTm9ybWFsaXppbmcgJyIgKyBpbnB1dCArICInICgiICsgaGV4KGlucHV0KSArICIpIiApOworCisgICAgICAgICAgICBTdHJpbmcgb3V0cHV0ID0gTm9ybWFsaXplci5jb21wb3NlKGlucHV0LCBtb2RlPT1Ob3JtYWxpemVyLk5GS0MpOworCisgICAgICAgICAgICBpZiAoIW91dHB1dC5lcXVhbHMoZXhwZWN0KSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjYXNlICIgKyBpCisgICAgICAgICAgICAgICAgICAgICsgIiBleHBlY3RlZCAnIiArIGV4cGVjdCArICInICgiICsgaGV4KGV4cGVjdCkgKyAiKSIKKyAgICAgICAgICAgICAgICAgICAgKyAiIGJ1dCBnb3QgJyIgKyBvdXRwdXQgKyAiJyAoIiArIGhleChvdXRwdXQpICsgIikiICk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2hhcltdIG91dHB1dCA9IG5ldyBjaGFyWzFdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgaSsrKQorICAgICAgICB7CisgICAgICAgICAgICBjaGFyW10gaW5wdXQgPSBVdGlsaXR5LnVuZXNjYXBlKHRlc3RzW2ldWzBdKS50b0NoYXJBcnJheSgpOworICAgICAgICAgICAgU3RyaW5nIGV4cGVjdCA9IFV0aWxpdHkudW5lc2NhcGUodGVzdHNbaV1bb3V0Q29sXSk7CisKKyAgICAgICAgICAgIGxvZ2xuKCJOb3JtYWxpemluZyAnIiArIG5ldyBTdHJpbmcoaW5wdXQpICsgIicgKCIgKworICAgICAgICAgICAgICAgICAgICAgICAgaGV4KG5ldyBTdHJpbmcoaW5wdXQpKSArICIpIiApOworICAgICAgICAgICAgaW50IHJlcUxlbmd0aD0wOworICAgICAgICAgICAgd2hpbGUodHJ1ZSl7CisgICAgICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgICAgICByZXFMZW5ndGg9Tm9ybWFsaXplci5jb21wb3NlKGlucHV0LG91dHB1dCwgbW9kZT09Tm9ybWFsaXplci5ORktDKTsKKyAgICAgICAgICAgICAgICAgICAgaWYocmVxTGVuZ3RoPD1vdXRwdXQubGVuZ3RoICl7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH1jYXRjaChJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgICAgICAgICBvdXRwdXQ9IG5ldyBjaGFyW0ludGVnZXIucGFyc2VJbnQoZS5nZXRNZXNzYWdlKCkpXTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFleHBlY3QuZXF1YWxzKG5ldyBTdHJpbmcob3V0cHV0LDAscmVxTGVuZ3RoKSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogY2FzZSAiICsgaQorICAgICAgICAgICAgICAgICAgICArICIgZXhwZWN0ZWQgJyIgKyBleHBlY3QgKyAiJyAoIiArIGhleChleHBlY3QpICsgIikiCisgICAgICAgICAgICAgICAgICAgICsgIiBidXQgZ290ICciICsgbmV3IFN0cmluZyhvdXRwdXQpCisgICAgICAgICAgICAgICAgICAgICsgIicgKCIgICsgaGV4KG5ldyBTdHJpbmcob3V0cHV0KSkgKyAiKSIgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHZvaWQgaXRlcmF0ZVRlc3QoTm9ybWFsaXplciBpdGVyLCBTdHJpbmdbXVtdIHRlc3RzLCBpbnQgb3V0Q29sKXsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7IGkrKykKKyAgICAgICAgeworICAgICAgICAgICAgU3RyaW5nIGlucHV0ID0gVXRpbGl0eS51bmVzY2FwZSh0ZXN0c1tpXVswXSk7CisgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ID0gVXRpbGl0eS51bmVzY2FwZSh0ZXN0c1tpXVtvdXRDb2xdKTsKKworICAgICAgICAgICAgbG9nbG4oIk5vcm1hbGl6aW5nICciICsgaW5wdXQgKyAiJyAoIiArIGhleChpbnB1dCkgKyAiKSIgKTsKKworICAgICAgICAgICAgaXRlci5zZXRUZXh0KGlucHV0KTsKKyAgICAgICAgICAgIGFzc2VydEVxdWFsKGV4cGVjdCwgaXRlciwgImNhc2UgIiArIGkgKyAiICIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGFzc2VydEVxdWFsKFN0cmluZyBleHBlY3RlZCwgTm9ybWFsaXplciBpdGVyLCBTdHJpbmcgbXNnKQorICAgIHsKKyAgICAgICAgaW50IGluZGV4ID0gMDsKKyAgICAgICAgaW50IGNoOworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgY0l0ZXIgPSAgVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKGV4cGVjdGVkKTsKKyAgICAgICAgCisgICAgICAgIHdoaWxlICgoY2g9aXRlci5uZXh0KCkpIT0gaXRlci5ET05FKXsKKyAgICAgICAgICAgIGlmIChpbmRleCA+PSBleHBlY3RlZC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgbXNnICsgIlVuZXhwZWN0ZWQgY2hhcmFjdGVyICciICsgKGNoYXIpY2gKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIicgKCIgKyBoZXgoY2gpICsgIikiCisgICAgICAgICAgICAgICAgICAgICAgICArICIgYXQgaW5kZXggIiArIGluZGV4KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCB3YW50ID0gVVRGMTYuY2hhckF0KGV4cGVjdGVkLGluZGV4KTsKKyAgICAgICAgICAgIGlmIChjaCAhPSB3YW50KSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBtc2cgKyAiZ290ICciICsgKGNoYXIpY2gKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIicgKCIgKyBoZXgoY2gpICsgIikiCisgICAgICAgICAgICAgICAgICAgICAgICArICIgYnV0IGV4cGVjdGVkICciICsgd2FudCArICInICgiICsgaGV4KHdhbnQpKyAiKSIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiBhdCBpbmRleCAiICsgaW5kZXgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW5kZXgrPSAgVVRGMTYuZ2V0Q2hhckNvdW50KGNoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaW5kZXggPCBleHBlY3RlZC5sZW5ndGgoKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBtc2cgKyAiT25seSBnb3QgIiArIGluZGV4ICsgIiBjaGFycywgZXhwZWN0ZWQgIgorICAgICAgICAgICAgKyBleHBlY3RlZC5sZW5ndGgoKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGNJdGVyLnNldFRvTGltaXQoKTsKKyAgICAgICAgd2hpbGUoKGNoPWl0ZXIucHJldmlvdXMoKSkhPWl0ZXIuRE9ORSl7CisgICAgICAgICAgICBpbnQgd2FudCA9IGNJdGVyLnByZXZpb3VzQ29kZVBvaW50KCk7CisgICAgICAgICAgICBpZiAoY2ggIT0gd2FudCApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIG1zZyArICJnb3QgJyIgKyAoY2hhciljaAorICAgICAgICAgICAgICAgICAgICAgICAgKyAiJyAoIiArIGhleChjaCkgKyAiKSIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiBidXQgZXhwZWN0ZWQgJyIgKyB3YW50ICsgIicgKCIgKyBoZXgod2FudCkgKyAiKSIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiBhdCBpbmRleCAiICsgaW5kZXgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vIE5PVEU6IFRoZXNlIHRlc3RzIGFyZSB1c2VkIGZvciBxdWljayBkZWJ1Z2dpbmcgc28gYXJlIG5vdCBwb3J0ZWQKKyAgICAvLyB0byBJQ1U0QyB0c25vcm0uY3BwIGluIGludGx0ZXN0CisgICAgLy8KKworICAgIHB1YmxpYyB2b2lkIFRlc3REZWJ1Z1N0YXRpYygpeworICAgICAgICBTdHJpbmcgaW4gPSBVdGlsaXR5LnVuZXNjYXBlKCJcXFUwMDAxRDE1N1xcVTAwMDFEMTY1Iik7CisgICAgICAgIGlmKCFOb3JtYWxpemVyLmlzTm9ybWFsaXplZChpbixOb3JtYWxpemVyLk5GQykpeworICAgICAgICAgICAgZXJybG4oImlzTm9ybWFsaXplZCBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBpbnB1dCAgPSAgIlx1QUQ4Qlx1QUQ4Qlx1QUQ4Qlx1QUQ4QiIrCisgICAgICAgICAgICAiXFxVMDAwMWQxNWVcXFUwMDAxZDE1N1xcVTAwMDFkMTY1XFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWUiKworICAgICAgICAgICAgIlxcVTAwMDFkMTVlXFxVMDAwMWQxNTdcXFUwMDAxZDE2NVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlIisKKyAgICAgICAgICAgICJcXFUwMDAxZDE1ZVxcVTAwMDFkMTU3XFxVMDAwMWQxNjVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZSIrCisgICAgICAgICAgICAiXFxVMDAwMWQxNTdcXFUwMDAxZDE2NVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWUiKworICAgICAgICAgICAgIlxcVTAwMDFkMTU3XFxVMDAwMWQxNjVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlIisKKyAgICAgICAgICAgICJhYWFhYWFhYWFhYWFhYWFhYWF6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6eiIrCisgICAgICAgICAgICAiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiKworICAgICAgICAgICAgImNjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjIisKKyAgICAgICAgICAgICJkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZCIrCisgICAgICAgICAgICAiXHVBRDhCXHVBRDhCXHVBRDhCXHVBRDhCIisKKyAgICAgICAgICAgICJkXHUwMzFCXHUwMzA3XHUwMzIzIjsKKyAgICAgICAgU3RyaW5nIGV4cGVjdCA9ICJcdTExMDBcdTExNkZcdTExQUFcdTExMDBcdTExNkZcdTExQUFcdTExMDBcdTExNkYiKworICAgICAgICAgICAgICAgICAgICAgICAgIlx1MTFBQVx1MTEwMFx1MTE2Rlx1MTFBQVx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NSIrCisgICAgICAgICAgICAgICAgICAgICAgICAiXHVEODM0XHVERDU3XHVEODM0XHVERDY1XHVEODM0XHVERDU3XHVEODM0XHVERDY1IisKKyAgICAgICAgICAgICAgICAgICAgICAgICJcdUQ4MzRcdURENTdcdUQ4MzRcdURENjVcdUQ4MzRcdURENTdcdUQ4MzRcdURENjUiKworICAgICAgICAgICAgICAgICAgICAgICAgIlx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NVx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NSIrCisgICAgICAgICAgICAgICAgICAgICAgICAiXHVEODM0XHVERDU3XHVEODM0XHVERDY1XHVEODM0XHVERDU3XHVEODM0XHVERDY1IisKKyAgICAgICAgICAgICAgICAgICAgICAgICJcdUQ4MzRcdURENTdcdUQ4MzRcdURENjVcdUQ4MzRcdURENTdcdUQ4MzRcdURENjUiKworICAgICAgICAgICAgICAgICAgICAgICAgIlx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NVx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NSIrCisgICAgICAgICAgICAgICAgICAgICAgICAiXHVEODM0XHVERDU3XHVEODM0XHVERDY1XHVEODM0XHVERDU3XHVEODM0XHVERDY1IisKKyAgICAgICAgICAgICAgICAgICAgICAgICJcdUQ4MzRcdURENTdcdUQ4MzRcdURENjVcdUQ4MzRcdURENTdcdUQ4MzRcdURENjUiKworICAgICAgICAgICAgICAgICAgICAgICAgIlx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NVx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NSIrCisgICAgICAgICAgICAgICAgICAgICAgICAiXHVEODM0XHVERDU3XHVEODM0XHVERDY1XHVEODM0XHVERDU3XHVEODM0XHVERDY1IisKKyAgICAgICAgICAgICAgICAgICAgICAgICJcdUQ4MzRcdURENTdcdUQ4MzRcdURENjVcdUQ4MzRcdURENTdcdUQ4MzRcdURENjUiKworICAgICAgICAgICAgICAgICAgICAgICAgIlx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NVx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NSIrCisgICAgICAgICAgICAgICAgICAgICAgICAiXHVEODM0XHVERDU3XHVEODM0XHVERDY1XHVEODM0XHVERDU3XHVEODM0XHVERDY1IisKKyAgICAgICAgICAgICAgICAgICAgICAgICJcdUQ4MzRcdURENTdcdUQ4MzRcdURENjVcdUQ4MzRcdURENTdcdUQ4MzRcdURENjUiKworICAgICAgICAgICAgICAgICAgICAgICAgIlx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NWFhYWFhYWFhYWFhYWFhYWFhYXp6enp6eiIrCisgICAgICAgICAgICAgICAgICAgICAgICAienp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enoiKworICAgICAgICAgICAgICAgICAgICAgICAgImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIisKKyAgICAgICAgICAgICAgICAgICAgICAgICJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjYyIrCisgICAgICAgICAgICAgICAgICAgICAgICAiY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjIisKKyAgICAgICAgICAgICAgICAgICAgICAgICJkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZCIrCisgICAgICAgICAgICAgICAgICAgICAgICAiZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkIisKKyAgICAgICAgICAgICAgICAgICAgICAgICJcdTExMDBcdTExNkZcdTExQUFcdTExMDBcdTExNkZcdTExQUFcdTExMDBcdTExNkYiKworICAgICAgICAgICAgICAgICAgICAgICAgIlx1MTFBQVx1MTEwMFx1MTE2Rlx1MTFBQVx1MDA2NFx1MDMxQlx1MDMyM1x1MDMwNyI7CisgICAgICAgICAgICBTdHJpbmcgb3V0cHV0ID0gTm9ybWFsaXplci5ub3JtYWxpemUoVXRpbGl0eS51bmVzY2FwZShpbnB1dCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORkQpOworICAgICAgICAgICAgaWYoIWV4cGVjdC5lcXVhbHMob3V0cHV0KSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgZXhwZWN0ZWQ6ICIraGV4KGV4cGVjdCkgKyAiIGdvdDogIitoZXgob3V0cHV0KSk7CisgICAgICAgICAgICB9CisKKworCisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3REZWJ1Z0l0ZXIoKXsKKyAgICAgICAgU3RyaW5nIHNyYyA9IFV0aWxpdHkudW5lc2NhcGUoIlxcVTAwMDFkMTVlXFxVMDAwMWQxNTdcXFUwMDAxZDE2NVxcVTAwMDFkMTVlIik7CisgICAgICAgIFN0cmluZyBleHBlY3RlZCA9IFV0aWxpdHkudW5lc2NhcGUoIlxcVTAwMDFkMTVlXFxVMDAwMWQxNTdcXFUwMDAxZDE2NVxcVTAwMDFkMTVlIik7CisgICAgICAgIE5vcm1hbGl6ZXIgaXRlciA9IG5ldyBOb3JtYWxpemVyKG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihVdGlsaXR5LnVuZXNjYXBlKHNyYykpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5OT05FKTsKKyAgICAgICAgaW50IGluZGV4ID0gMDsKKyAgICAgICAgaW50IGNoOworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgY0l0ZXIgPSAgVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKGV4cGVjdGVkKTsKKyAgICAgICAgCisgICAgICAgIHdoaWxlICgoY2g9aXRlci5uZXh0KCkpIT0gaXRlci5ET05FKXsKKyAgICAgICAgICAgIGlmIChpbmRleCA+PSBleHBlY3RlZC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgICJVbmV4cGVjdGVkIGNoYXJhY3RlciAnIiArIChjaGFyKWNoCisgICAgICAgICAgICAgICAgICAgICAgICArICInICgiICsgaGV4KGNoKSArICIpIgorICAgICAgICAgICAgICAgICAgICAgICAgKyAiIGF0IGluZGV4ICIgKyBpbmRleCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgd2FudCA9IFVURjE2LmNoYXJBdChleHBlY3RlZCxpbmRleCk7CisgICAgICAgICAgICBpZiAoY2ggIT0gd2FudCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgICJnb3QgJyIgKyAoY2hhciljaAorICAgICAgICAgICAgICAgICAgICAgICAgKyAiJyAoIiArIGhleChjaCkgKyAiKSIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiBidXQgZXhwZWN0ZWQgJyIgKyB3YW50ICsgIicgKCIgKyBoZXgod2FudCkrICIpIgorICAgICAgICAgICAgICAgICAgICAgICAgKyAiIGF0IGluZGV4ICIgKyBpbmRleCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbmRleCs9ICBVVEYxNi5nZXRDaGFyQ291bnQoY2gpOworICAgICAgICB9CisgICAgICAgIGlmIChpbmRleCA8IGV4cGVjdGVkLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArICAiT25seSBnb3QgIiArIGluZGV4ICsgIiBjaGFycywgZXhwZWN0ZWQgIgorICAgICAgICAgICAgKyBleHBlY3RlZC5sZW5ndGgoKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGNJdGVyLnNldFRvTGltaXQoKTsKKyAgICAgICAgd2hpbGUoKGNoPWl0ZXIucHJldmlvdXMoKSkhPWl0ZXIuRE9ORSl7CisgICAgICAgICAgICBpbnQgd2FudCA9IGNJdGVyLnByZXZpb3VzQ29kZVBvaW50KCk7CisgICAgICAgICAgICBpZiAoY2ggIT0gd2FudCApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArICJnb3QgJyIgKyAoY2hhciljaAorICAgICAgICAgICAgICAgICAgICAgICAgKyAiJyAoIiArIGhleChjaCkgKyAiKSIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiBidXQgZXhwZWN0ZWQgJyIgKyB3YW50ICsgIicgKCIgKyBoZXgod2FudCkgKyAiKSIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiBhdCBpbmRleCAiICsgaW5kZXgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3REZWJ1Z0l0ZXJPbGQoKXsKKyAgICAgICAgU3RyaW5nIGlucHV0ID0gIlxcVTAwMDFEMTVFIjsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkID0gIlx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NSI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZFJldmVyc2UgPSAiXHVEODM0XHVERDY1XHVEODM0XHVERDU3IjsKKyAgICAgICAgaW50IGluZGV4ID0gMDsKKyAgICAgICAgaW50IGNoOworICAgICAgICBOb3JtYWxpemVyIGl0ZXIgPSBuZXcgTm9ybWFsaXplcihuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoVXRpbGl0eS51bmVzY2FwZShpbnB1dCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORktDKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGdvdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChjaCA9IGl0ZXIuZmlyc3QoKTtjaCE9aXRlci5ET05FO2NoPWl0ZXIubmV4dCgpKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoaW5kZXggPj0gZXhwZWN0ZWQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArICAiVW5leHBlY3RlZCBjaGFyYWN0ZXIgJyIgKyAoY2hhciljaCArCisgICAgICAgICAgICAgICAgICAgICAgICInICgiICsgaGV4KGNoKSArICIpIiArICIgYXQgaW5kZXggIiArIGluZGV4KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGdvdC5hcHBlbmQoVVRGMTYudG9TdHJpbmcoY2gpKTsKKyAgICAgICAgICAgIGluZGV4Kys7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFleHBlY3RlZC5lcXVhbHMoZ290LnRvU3RyaW5nKCkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyAgImdvdCAnIiArZ290KyAiJyAoIiArIGhleChnb3QpICsgIikiCisgICAgICAgICAgICAgICAgICAgICAgICArICIgYnV0IGV4cGVjdGVkICciICsgZXhwZWN0ZWQgKyAiJyAoIgorICAgICAgICAgICAgICAgICAgICAgICAgKyBoZXgoZXhwZWN0ZWQpICsgIikiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZ290Lmxlbmd0aCgpIDwgZXhwZWN0ZWQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgICJPbmx5IGdvdCAiICsgaW5kZXggKyAiIGNoYXJzLCBleHBlY3RlZCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICArIGV4cGVjdGVkLmxlbmd0aCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIGxvZ2xuKCJSZXZlcnNlIEl0ZXJhdGlvblxuIik7CisgICAgICAgIGl0ZXIuc2V0SW5kZXhPbmx5KGl0ZXIuZW5kSW5kZXgoKSk7CisgICAgICAgIGdvdC5zZXRMZW5ndGgoMCk7CisgICAgICAgIGZvcihjaD1pdGVyLnByZXZpb3VzKCk7Y2ghPWl0ZXIuRE9ORTtjaD1pdGVyLnByZXZpb3VzKCkpeworICAgICAgICAgICAgaWYgKGluZGV4ID49IGV4cGVjdGVkLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyAgIlVuZXhwZWN0ZWQgY2hhcmFjdGVyICciICsgKGNoYXIpY2gKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICInICgiICsgaGV4KGNoKSArICIpIiArICIgYXQgaW5kZXggIiArIGluZGV4KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGdvdC5hcHBlbmQoVVRGMTYudG9TdHJpbmcoY2gpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWV4cGVjdGVkUmV2ZXJzZS5lcXVhbHMoZ290LnRvU3RyaW5nKCkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyAgImdvdCAnIiArZ290KyAiJyAoIiArIGhleChnb3QpICsgIikiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIGJ1dCBleHBlY3RlZCAnIiArIGV4cGVjdGVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiJyAoIiArIGhleChleHBlY3RlZCkgKyAiKSIpOworICAgICAgICB9CisgICAgICAgIGlmIChnb3QubGVuZ3RoKCkgPCBleHBlY3RlZC5sZW5ndGgoKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyAgIk9ubHkgZ290ICIgKyBpbmRleCArICIgY2hhcnMsIGV4cGVjdGVkICIKKyAgICAgICAgICAgICAgICAgICAgICArIGV4cGVjdGVkLmxlbmd0aCgpKTsKKyAgICAgICAgfQorCisgICAgfQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwkvLyBoZWxwZXIgY2xhc3MgZm9yIFRlc3RQcmV2aW91c05leHQoKQorCS8vIHNpbXBsZSBVVEYtMzIgY2hhcmFjdGVyIGl0ZXJhdG9yCisJY2xhc3MgVUNoYXJJdGVyYXRvciB7CisKKwkgICBwdWJsaWMgVUNoYXJJdGVyYXRvcihpbnRbXSBzcmMsIGludCBsZW4sIGludCBpbmRleCl7CisKKwkgICAgICAgIHM9c3JjOworICAgICAgICAgICAgbGVuZ3RoPWxlbjsKKyAgICAgICAgICAgIGk9aW5kZXg7CisgICAgICAgfQorCisJICAgIHB1YmxpYyBpbnQgY3VycmVudCgpIHsKKwkgICAgICAgIGlmKGk8bGVuZ3RoKSB7CisJICAgICAgICAgICAgcmV0dXJuIHNbaV07CisJICAgICAgICB9IGVsc2UgeworCSAgICAgICAgICAgIHJldHVybiAtMTsKKwkgICAgICAgIH0KKwkgICAgfQorCisJICAgIHB1YmxpYyBpbnQgbmV4dCgpIHsKKwkgICAgICAgIGlmKGk8bGVuZ3RoKSB7CisJICAgICAgICAgICAgcmV0dXJuIHNbaSsrXTsKKwkgICAgICAgIH0gZWxzZSB7CisJICAgICAgICAgICAgcmV0dXJuIC0xOworCSAgICAgICAgfQorCSAgICB9CisKKwkgICAgcHVibGljIGludCBwcmV2aW91cygpIHsKKwkgICAgICAgIGlmKGk+MCkgeworCSAgICAgICAgICAgIHJldHVybiBzWy0taV07CisJICAgICAgICB9IGVsc2UgeworCSAgICAgICAgICAgIHJldHVybiAtMTsKKwkgICAgICAgIH0KKwkgICAgfQorCisJICAgIHB1YmxpYyBpbnQgZ2V0SW5kZXgoKSB7CisJICAgICAgICByZXR1cm4gaTsKKwkgICAgfQorCisJICAgIHByaXZhdGUgaW50W10gczsKKwkgICAgcHJpdmF0ZSBpbnQgbGVuZ3RoLCBpOworCX07CisJcHVibGljIHZvaWQgVGVzdFByZXZpb3VzTmV4dCgpIHsKKwkgICAgLy8gc3JjIGFuZCBleHBlY3Qgc3RyaW5ncworCSAgICBjaGFyIHNyY1tdPXsKKwkgICAgICAgIFVURjE2LmdldExlYWRTdXJyb2dhdGUoMHgyZjk5OSksIFVURjE2LmdldFRyYWlsU3Vycm9nYXRlKDB4MmY5OTkpLAorCSAgICAgICAgVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZSgweDFkMTVmKSwgVVRGMTYuZ2V0VHJhaWxTdXJyb2dhdGUoMHgxZDE1ZiksCisJICAgICAgICAweGM0LAorCSAgICAgICAgMHgxZWQwCisJICAgIH07CisJICAgIGludCBleHBlY3RbXT17CisJICAgICAgICAweDgzMWQsCisJICAgICAgICAweDFkMTU4LCAweDFkMTY1LAorCSAgICAgICAgMHg0MSwgMHgzMDgsCisJICAgICAgICAweDRmLCAweDMwMiwgMHgzMDEKKwkgICAgfTsKKworCSAgICAvLyBleHBlY3RlZCBzcmMgaW5kZXhlcyBjb3JyZXNwb25kaW5nIHRvIGV4cGVjdCBpbmRleGVzCisJICAgIGludCBleHBlY3RJbmRleFtdPXsKKwkgICAgICAgIDAsCisJICAgICAgICAyLCAyLAorCSAgICAgICAgNCwgNCwKKwkgICAgICAgIDUsIDUsIDUsCisJICAgICAgICA2IC8vIGJlaGluZCBsYXN0IGNoYXJhY3RlcgorCSAgICB9OworCisJICAgIC8vIGluaXRpYWwgaW5kZXhlcyBpbnRvIHRoZSBzcmMgYW5kIGV4cGVjdCBzdHJpbmdzCisKKwkgICAgZmluYWwgaW50IFNSQ19NSURETEU9NDsKKwkgICAgZmluYWwgaW50IEVYUEVDVF9NSURETEU9MzsKKworCisJICAgIC8vIG1vdmVtZW50IHZlY3RvcgorCSAgICAvLyAtIGZvciBwcmV2aW91cygpLCAwIGZvciBjdXJyZW50KCksICsgZm9yIG5leHQoKQorCSAgICAvLyBub3QgY29uc3Qgc28gdGhhdCB3ZSBjYW4gdGVybWluYXRlIGl0IGJlbG93IGZvciB0aGUgZXJyb3IgbWVzc2FnZQorCSAgICBTdHJpbmcgbW92ZXM9IjArMCswLS0wLTAtKysrMC0tKysrKysrKzAtLS0tLS0tLSI7CisKKwkgICAgLy8gaXRlcmF0b3JzCisJICAgIE5vcm1hbGl6ZXIgaXRlciA9IG5ldyBOb3JtYWxpemVyKG5ldyBTdHJpbmcoc3JjKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZEKTsKKwkgICAgVUNoYXJJdGVyYXRvciBpdGVyMzIgPSBuZXcgVUNoYXJJdGVyYXRvcihleHBlY3QsIGV4cGVjdC5sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9NSURETEUpOworCisJICAgIGludCBjMSwgYzI7CisJICAgIGNoYXIgbTsKKworCSAgICAvLyBpbml0aWFsbHkgc2V0IHRoZSBpbmRleGVzIGludG8gdGhlIG1pZGRsZSBvZiB0aGUgc3RyaW5ncworCSAgICBpdGVyLnNldEluZGV4T25seShTUkNfTUlERExFKTsKKworCSAgICAvLyBtb3ZlIGFyb3VuZCBhbmQgY29tcGFyZSB0aGUgaXRlcmF0aW9uIGNvZGUgcG9pbnRzIHdpdGgKKwkgICAgLy8gdGhlIGV4cGVjdGVkIG9uZXMKKwkgICAgaW50IG1vdmVzSW5kZXggPTA7CisJICAgIHdoaWxlKG1vdmVzSW5kZXg8bW92ZXMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIG09bW92ZXMuY2hhckF0KG1vdmVzSW5kZXgrKyk7CisJICAgICAgICBpZihtPT0nLScpIHsKKwkgICAgICAgICAgICBjMT1pdGVyLnByZXZpb3VzKCk7CisJICAgICAgICAgICAgYzI9aXRlcjMyLnByZXZpb3VzKCk7CisJICAgICAgICB9IGVsc2UgaWYobT09JzAnKSB7CisJICAgICAgICAgICAgYzE9aXRlci5jdXJyZW50KCk7CisJICAgICAgICAgICAgYzI9aXRlcjMyLmN1cnJlbnQoKTsKKwkgICAgICAgIH0gZWxzZSAvKiBtPT0nKycgKi8geworCSAgICAgICAgICAgIGMxPWl0ZXIubmV4dCgpOworCSAgICAgICAgICAgIGMyPWl0ZXIzMi5uZXh0KCk7CisJICAgICAgICB9CisKKwkgICAgICAgIC8vIGNvbXBhcmUgcmVzdWx0cworCSAgICAgICAgaWYoYzEhPWMyKSB7CisJICAgICAgICAgICAgLy8gY29weSB0aGUgbW92ZXMgdW50aWwgdGhlIGN1cnJlbnQgKG0pIG1vdmUsIGFuZCB0ZXJtaW5hdGUKKwkgICAgICAgICAgICBTdHJpbmcgaGlzdG9yeSA9IG1vdmVzLnN1YnN0cmluZygwLG1vdmVzSW5kZXgpOworCSAgICAgICAgICAgIGVycmxuKCJlcnJvcjogbWlzbWF0Y2ggaW4gTm9ybWFsaXplciBpdGVyYXRpb24gYXQgIitoaXN0b3J5KyI6ICIKKwkgICAgICAgICAgICAgICAgICArImdvdCBjMT0gIiArIGhleChjMSkgKyIgIT0gZXhwZWN0ZWQgYzI9ICIrIGhleChjMikpOworCSAgICAgICAgICAgIGJyZWFrOworCSAgICAgICAgfQorCisJICAgICAgICAvLyBjb21wYXJlIGluZGV4ZXMKKwkgICAgICAgIGlmKGl0ZXIuZ2V0SW5kZXgoKSE9ZXhwZWN0SW5kZXhbaXRlcjMyLmdldEluZGV4KCldKSB7CisJICAgICAgICAgICAgLy8gY29weSB0aGUgbW92ZXMgdW50aWwgdGhlIGN1cnJlbnQgKG0pIG1vdmUsIGFuZCB0ZXJtaW5hdGUKKwkgICAgICAgICAgICBTdHJpbmcgaGlzdG9yeSA9IG1vdmVzLnN1YnN0cmluZygwLG1vdmVzSW5kZXgpOworCSAgICAgICAgICAgIGVycmxuKCJlcnJvcjogaW5kZXggbWlzbWF0Y2ggaW4gTm9ybWFsaXplciBpdGVyYXRpb24gYXQgIgorICAgICAgICAgICAgICAgICAgICAgICtoaXN0b3J5KyAiIDogIisgIk5vcm1hbGl6ZXIgaW5kZXggIiAraXRlci5nZXRJbmRleCgpCisgICAgICAgICAgICAgICAgICAgICAgKyIgZXhwZWN0ZWQgIisgZXhwZWN0SW5kZXhbaXRlcjMyLmdldEluZGV4KCldKTsKKwkgICAgICAgICAgICBicmVhazsKKwkgICAgICAgIH0KKwkgICAgfQorCX0KKyAgICAvLyBPbmx5IGluIElDVTRqCisgICAgcHVibGljIHZvaWQgVGVzdFByZXZpb3VzTmV4dEpDSSgpIHsKKyAgICAgICAgLy8gc3JjIGFuZCBleHBlY3Qgc3RyaW5ncworICAgICAgICBjaGFyIHNyY1tdPXsKKyAgICAgICAgICAgIFVURjE2LmdldExlYWRTdXJyb2dhdGUoMHgyZjk5OSksIFVURjE2LmdldFRyYWlsU3Vycm9nYXRlKDB4MmY5OTkpLAorICAgICAgICAgICAgVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZSgweDFkMTVmKSwgVVRGMTYuZ2V0VHJhaWxTdXJyb2dhdGUoMHgxZDE1ZiksCisgICAgICAgICAgICAweGM0LAorICAgICAgICAgICAgMHgxZWQwCisgICAgICAgIH07CisgICAgICAgIGludCBleHBlY3RbXT17CisgICAgICAgICAgICAweDgzMWQsCisgICAgICAgICAgICAweDFkMTU4LCAweDFkMTY1LAorICAgICAgICAgICAgMHg0MSwgMHgzMDgsCisgICAgICAgICAgICAweDRmLCAweDMwMiwgMHgzMDEKKyAgICAgICAgfTsKKworICAgICAgICAvLyBleHBlY3RlZCBzcmMgaW5kZXhlcyBjb3JyZXNwb25kaW5nIHRvIGV4cGVjdCBpbmRleGVzCisgICAgICAgIGludCBleHBlY3RJbmRleFtdPXsKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICAyLCAyLAorICAgICAgICAgICAgNCwgNCwKKyAgICAgICAgICAgIDUsIDUsIDUsCisgICAgICAgICAgICA2IC8vIGJlaGluZCBsYXN0IGNoYXJhY3RlcgorICAgICAgICB9OworCisgICAgICAgIC8vIGluaXRpYWwgaW5kZXhlcyBpbnRvIHRoZSBzcmMgYW5kIGV4cGVjdCBzdHJpbmdzCisKKyAgICAgICAgZmluYWwgaW50IFNSQ19NSURETEU9NDsKKyAgICAgICAgZmluYWwgaW50IEVYUEVDVF9NSURETEU9MzsKKworCisgICAgICAgIC8vIG1vdmVtZW50IHZlY3RvcgorICAgICAgICAvLyAtIGZvciBwcmV2aW91cygpLCAwIGZvciBjdXJyZW50KCksICsgZm9yIG5leHQoKQorICAgICAgICAvLyBub3QgY29uc3Qgc28gdGhhdCB3ZSBjYW4gdGVybWluYXRlIGl0IGJlbG93IGZvciB0aGUgZXJyb3IgbWVzc2FnZQorICAgICAgICBTdHJpbmcgbW92ZXM9IjArMCswLS0wLTAtKysrMC0tKysrKysrKzAtLS0tLS0tLSI7CisKKyAgICAgICAgLy8gaXRlcmF0b3JzCisgICAgICAgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIHRleHQgPSBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IobmV3IFN0cmluZyhzcmMpKTsKKyAgICAgICAgTm9ybWFsaXplciBpdGVyID0gbmV3IE5vcm1hbGl6ZXIodGV4dCxOb3JtYWxpemVyLk5GRCk7CisgICAgICAgIFVDaGFySXRlcmF0b3IgaXRlcjMyID0gbmV3IFVDaGFySXRlcmF0b3IoZXhwZWN0LCBleHBlY3QubGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfTUlERExFKTsKKworICAgICAgICBpbnQgYzEsIGMyOworICAgICAgICBjaGFyIG07CisKKyAgICAgICAgLy8gaW5pdGlhbGx5IHNldCB0aGUgaW5kZXhlcyBpbnRvIHRoZSBtaWRkbGUgb2YgdGhlIHN0cmluZ3MKKyAgICAgICAgaXRlci5zZXRJbmRleE9ubHkoU1JDX01JRERMRSk7CisKKyAgICAgICAgLy8gbW92ZSBhcm91bmQgYW5kIGNvbXBhcmUgdGhlIGl0ZXJhdGlvbiBjb2RlIHBvaW50cyB3aXRoCisgICAgICAgIC8vIHRoZSBleHBlY3RlZCBvbmVzCisgICAgICAgIGludCBtb3Zlc0luZGV4ID0wOworICAgICAgICB3aGlsZShtb3Zlc0luZGV4PG1vdmVzLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBtPW1vdmVzLmNoYXJBdChtb3Zlc0luZGV4KyspOworICAgICAgICAgICAgaWYobT09Jy0nKSB7CisgICAgICAgICAgICAgICAgYzE9aXRlci5wcmV2aW91cygpOworICAgICAgICAgICAgICAgIGMyPWl0ZXIzMi5wcmV2aW91cygpOworICAgICAgICAgICAgfSBlbHNlIGlmKG09PScwJykgeworICAgICAgICAgICAgICAgIGMxPWl0ZXIuY3VycmVudCgpOworICAgICAgICAgICAgICAgIGMyPWl0ZXIzMi5jdXJyZW50KCk7CisgICAgICAgICAgICB9IGVsc2UgLyogbT09JysnICovIHsKKyAgICAgICAgICAgICAgICBjMT1pdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICBjMj1pdGVyMzIubmV4dCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBjb21wYXJlIHJlc3VsdHMKKyAgICAgICAgICAgIGlmKGMxIT1jMikgeworICAgICAgICAgICAgICAgIC8vIGNvcHkgdGhlIG1vdmVzIHVudGlsIHRoZSBjdXJyZW50IChtKSBtb3ZlLCBhbmQgdGVybWluYXRlCisgICAgICAgICAgICAgICAgU3RyaW5nIGhpc3RvcnkgPSBtb3Zlcy5zdWJzdHJpbmcoMCxtb3Zlc0luZGV4KTsKKyAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3I6IG1pc21hdGNoIGluIE5vcm1hbGl6ZXIgaXRlcmF0aW9uIGF0ICIraGlzdG9yeSsiOiAiCisgICAgICAgICAgICAgICAgICAgICAgKyJnb3QgYzE9ICIgKyBoZXgoYzEpICsiICE9IGV4cGVjdGVkIGMyPSAiKyBoZXgoYzIpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gY29tcGFyZSBpbmRleGVzCisgICAgICAgICAgICBpZihpdGVyLmdldEluZGV4KCkhPWV4cGVjdEluZGV4W2l0ZXIzMi5nZXRJbmRleCgpXSkgeworICAgICAgICAgICAgICAgIC8vIGNvcHkgdGhlIG1vdmVzIHVudGlsIHRoZSBjdXJyZW50IChtKSBtb3ZlLCBhbmQgdGVybWluYXRlCisgICAgICAgICAgICAgICAgU3RyaW5nIGhpc3RvcnkgPSBtb3Zlcy5zdWJzdHJpbmcoMCxtb3Zlc0luZGV4KTsKKyAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3I6IGluZGV4IG1pc21hdGNoIGluIE5vcm1hbGl6ZXIgaXRlcmF0aW9uIGF0ICIKKyAgICAgICAgICAgICAgICAgICAgICAraGlzdG9yeSsgIiA6ICIrICJOb3JtYWxpemVyIGluZGV4ICIgK2l0ZXIuZ2V0SW5kZXgoKQorICAgICAgICAgICAgICAgICAgICAgICsiIGV4cGVjdGVkICIrIGV4cGVjdEluZGV4W2l0ZXIzMi5nZXRJbmRleCgpXSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdERlcHJlY2F0ZWRBUEkoKXsKKyAgICAgICAgIC8vIGluc3RhbnRpYXRlIGEgTm9ybWFsaXplciBmcm9tIGEgQ2hhcmFjdGVySXRlcmF0b3IKKyAgICAgICAgU3RyaW5nIHM9VXRpbGl0eS51bmVzY2FwZSgiYVx1MDMwOFx1YWMwMFxcVTAwMDJmODAwIik7CisgICAgICAgIC8vIG1ha2UgcyBhIGJpdCBsb25nZXIgYW5kIG1vcmUgaW50ZXJlc3RpbmcKKyAgICAgICAgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIgPSBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IocytzKTsKKyAgICAgICAgLy90ZXN0IGRlcHJlY2F0ZWQgY29uc3RydWN0b3JzCisgICAgICAgIE5vcm1hbGl6ZXIgbm9ybSA9IG5ldyBOb3JtYWxpemVyKGl0ZXIsIE5vcm1hbGl6ZXIuTkZDLDApOworICAgICAgICBOb3JtYWxpemVyIG5vcm0yID0gbmV3IE5vcm1hbGl6ZXIocyxOb3JtYWxpemVyLk5GQywwKTsKKyAgICAgICAgaWYobm9ybS5uZXh0KCkhPTB4ZTQpIHsKKyAgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiBOb3JtYWxpemVyKENoYXJhY3Rlckl0ZXJhdG9yKS5uZXh0KCkiKTsKKyAgICAgICAgfSAgICAgICAKKyAgICAgICAgLy8gdGVzdCBjbG9uZSgpLCA9PSwgYW5kIGhhc2hDb2RlKCkKKyAgICAgICAgTm9ybWFsaXplciBjbG9uZT0oTm9ybWFsaXplcilub3JtLmNsb25lKCk7CisgICAgICAgIGlmKGNsb25lLmdldEJlZ2luSW5kZXgoKSE9IG5vcm0uZ2V0QmVnaW5JbmRleCgpKXsKKyAgICAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXIuZ2V0QmVnaW5JbmRleCgpIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmKGNsb25lLmdldEVuZEluZGV4KCkhPSBub3JtLmdldEVuZEluZGV4KCkpeworICAgICAgICAgICBlcnJsbigiZXJyb3IgaW4gTm9ybWFsaXplci5nZXRFbmRJbmRleCgpIik7CisgICAgICAgIH0KKyAgICAgICAgLy8gdGVzdCBzZXRPcHRpb24oKSBhbmQgZ2V0T3B0aW9uKCkKKyAgICAgICAgY2xvbmUuc2V0T3B0aW9uKDB4YWEwMDAwLCB0cnVlKTsKKyAgICAgICAgY2xvbmUuc2V0T3B0aW9uKDB4MjAwMDAsIGZhbHNlKTsKKyAgICAgICAgaWYoY2xvbmUuZ2V0T3B0aW9uKDB4ODgwMDAwKSA9PTB8fCBjbG9uZS5nZXRPcHRpb24oMHgyMDAwMCk9PTEpIHsKKyAgICAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXI6OnNldE9wdGlvbigpIG9yIE5vcm1hbGl6ZXI6OmdldE9wdGlvbigpIik7CisgICAgICAgIH0KKyAgICAgICAgLy90ZXN0IGRlcHJlY2F0ZWQgbm9ybWFsaXplIG1ldGhvZAorICAgICAgICBOb3JtYWxpemVyLm5vcm1hbGl6ZShzLE5vcm1hbGl6ZXIuTkZDLDApOworICAgICAgICAvL3Rlc3QgZGVwcmVjYXRlZCBjb21wb3NlIG1ldGhvZAorICAgICAgICBOb3JtYWxpemVyLmNvbXBvc2UocyxmYWxzZSwwKTsKKyAgICAgICAgLy90ZXN0IGRlcHJlY2F0ZWQgZGVjb21wb3NlIG1ldGhvZAorICAgICAgICBOb3JtYWxpemVyLmRlY29tcG9zZShzLGZhbHNlLDApOworCisgICAgfQorCisJLy8gdGVzdCBBUElzIHRoYXQgYXJlIG5vdCBvdGhlcndpc2UgdXNlZCAtIGltcHJvdmUgdGVzdCBjb3ZlcmFnZQorCXB1YmxpYyB2b2lkIFRlc3ROb3JtYWxpemVyQVBJKCkgeworCSAgICAvLyBpbnN0YW50aWF0ZSBhIE5vcm1hbGl6ZXIgZnJvbSBhIENoYXJhY3Rlckl0ZXJhdG9yCisJICAgIFN0cmluZyBzPVV0aWxpdHkudW5lc2NhcGUoImFcdTAzMDhcdWFjMDBcXFUwMDAyZjgwMCIpOworCSAgICAvLyBtYWtlIHMgYSBiaXQgbG9uZ2VyIGFuZCBtb3JlIGludGVyZXN0aW5nCisJICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHMrcyk7CisJICAgIE5vcm1hbGl6ZXIgbm9ybSA9IG5ldyBOb3JtYWxpemVyKGl0ZXIsIE5vcm1hbGl6ZXIuTkZDKTsKKwkgICAgaWYobm9ybS5uZXh0KCkhPTB4ZTQpIHsKKwkgICAgICAgIGVycmxuKCJlcnJvciBpbiBOb3JtYWxpemVyKENoYXJhY3Rlckl0ZXJhdG9yKS5uZXh0KCkiKTsKKwkgICAgfQorCisKKwkgICAgLy8gdGVzdCBjbG9uZSgpLCA9PSwgYW5kIGhhc2hDb2RlKCkKKwkgICAgTm9ybWFsaXplciBjbG9uZT0oTm9ybWFsaXplcilub3JtLmNsb25lKCk7CisJICAgIGlmKGNsb25lLmVxdWFscyhub3JtKSkgeworCSAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXIoTm9ybWFsaXplcihDaGFyYWN0ZXJJdGVyYXRvcikpLmNsb25lKCkhPW5vcm0iKTsKKwkgICAgfQorCisgICAgICAgIAorICAgICAgICBpZihjbG9uZS5nZXRMZW5ndGgoKSE9IG5vcm0uZ2V0TGVuZ3RoKCkpeworICAgICAgICAgICBlcnJsbigiZXJyb3IgaW4gTm9ybWFsaXplci5nZXRCZWdpbkluZGV4KCkiKTsKKyAgICAgICAgfSAKKwkgICAgLy8gY2xvbmUgbXVzdCBoYXZlIHRoZSBzYW1lIGhhc2hDb2RlKCkKKwkgICAgLy9pZihjbG9uZS5oYXNoQ29kZSgpIT1ub3JtLmhhc2hDb2RlKCkpIHsKKwkgICAgLy8gICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXIoTm9ybWFsaXplcihDaGFyYWN0ZXJJdGVyYXRvcikpLmNsb25lKCkuaGFzaENvZGUoKSE9Y29weS5oYXNoQ29kZSgpIik7CisJICAgIC8vfQorICAgICAgICBpZihjbG9uZS5uZXh0KCkhPTB4YWMwMCkgeworICAgICAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXIoTm9ybWFsaXplcihDaGFyYWN0ZXJJdGVyYXRvcikpLm5leHQoKSIpOworICAgICAgICB9CisgICAgICAgIGludCBjaCA9IGNsb25lLm5leHQoKTsKKwkgICAgaWYoY2ghPTB4NGUzZCkgeworCSAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXIoTm9ybWFsaXplcihDaGFyYWN0ZXJJdGVyYXRvcikpLmNsb25lKCkubmV4dCgpIik7CisJICAgIH0KKwkgICAgLy8gcG9zaXRpb24gY2hhbmdlZCwgbXVzdCBjaGFuZ2UgaGFzaENvZGUoKQorCSAgICBpZihjbG9uZS5oYXNoQ29kZSgpPT1ub3JtLmhhc2hDb2RlKCkpIHsKKwkgICAgICAgIGVycmxuKCJlcnJvciBpbiBOb3JtYWxpemVyKE5vcm1hbGl6ZXIoQ2hhcmFjdGVySXRlcmF0b3IpKS5jbG9uZSgpLm5leHQoKS5oYXNoQ29kZSgpPT1jb3B5Lmhhc2hDb2RlKCkiKTsKKwkgICAgfQorCisJICAgIC8vIHRlc3QgY29tcG9zZSgpIGFuZCBkZWNvbXBvc2UoKQorCSAgICBTdHJpbmdCdWZmZXIgdGVsOworICAgICAgICBTdHJpbmcgbmZrYywgbmZrZDsKKwkgICAgdGVsPW5ldyBTdHJpbmdCdWZmZXIoIlx1MjEyMVx1MjEyMVx1MjEyMVx1MjEyMVx1MjEyMVx1MjEyMVx1MjEyMVx1MjEyMVx1MjEyMVx1MjEyMSIpOworCSAgICB0ZWwuaW5zZXJ0KDEsKGNoYXIpMHgwMzAxKTsKKworCSAgICBuZmtjPU5vcm1hbGl6ZXIuY29tcG9zZSh0ZWwudG9TdHJpbmcoKSwgdHJ1ZSk7CisJICAgIG5ma2Q9Tm9ybWFsaXplci5kZWNvbXBvc2UodGVsLnRvU3RyaW5nKCksIHRydWUpOworCSAgICBpZigKKwkgICAgICAgICFuZmtjLmVxdWFscyhVdGlsaXR5LnVuZXNjYXBlKCJURVx1MDEzOVRFTFRFTFRFTFRFTFRFTFRFTFRFTFRFTFRFTCIpKXx8CisJICAgICAgICAhbmZrZC5lcXVhbHMoVXRpbGl0eS51bmVzY2FwZSgiVEVMXHUwMzAxVEVMVEVMVEVMVEVMVEVMVEVMVEVMVEVMVEVMIikpCisJICAgICkgeworCSAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXI6OihkZSljb21wb3NlKCk6IHdyb25nIHJlc3VsdChzKSIpOworCSAgICB9CisKKwkgICAgLy8gdGVzdCBzZXRJbmRleCgpCisgICAgICAgIGNoPW5vcm0uc2V0SW5kZXgoMyk7CisJICAgIGlmKGNoIT0weDRlM2QpIHsKKwkgICAgICAgIGVycmxuKCJlcnJvciBpbiBOb3JtYWxpemVyKENoYXJhY3Rlckl0ZXJhdG9yKS5zZXRJbmRleCgzKSIpOworCSAgICB9CisKKwkgICAgLy8gdGVzdCBzZXRUZXh0KENoYXJhY3Rlckl0ZXJhdG9yKSBhbmQgZ2V0VGV4dCgpCisJICAgIFN0cmluZyBvdXQsIG91dDI7CisJICAgIGNsb25lLnNldFRleHQoaXRlcik7CisKKyAgICAgICAgb3V0ID0gY2xvbmUuZ2V0VGV4dCgpOworICAgICAgICBvdXQyID0gaXRlci5nZXRUZXh0KCk7CisgICAgICAgIGlmKCAhb3V0LmVxdWFscyhvdXQyKSB8fAorICAgICAgICAgICAgY2xvbmUuc3RhcnRJbmRleCgpIT0wfHwKKyAgICAgICAgICAgIGNsb25lLmVuZEluZGV4KCkhPWl0ZXIuZ2V0TGVuZ3RoKCkKKyAgICAgICAgKSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3IgaW4gTm9ybWFsaXplcjo6c2V0VGV4dCgpIG9yIE5vcm1hbGl6ZXI6OmdldFRleHQoKSIpOworICAgICAgICB9CisgCisgICAgICAgIGNoYXJbXSBmaWxsSW4xID0gbmV3IGNoYXJbY2xvbmUuZ2V0TGVuZ3RoKCldOworICAgICAgICBjaGFyW10gZmlsbEluMiA9IG5ldyBjaGFyW2l0ZXIuZ2V0TGVuZ3RoKCldOworICAgICAgICBpbnQgbGVuID0gY2xvbmUuZ2V0VGV4dChmaWxsSW4xKTsKKyAgICAgICAgaXRlci5nZXRUZXh0KGZpbGxJbjIsMCk7CisgICAgICAgIGlmKCFVdGlsaXR5LmFycmF5UmVnaW9uTWF0Y2hlcyhmaWxsSW4xLDAsZmlsbEluMiwwLGxlbikpeworICAgICAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXIuZ2V0VGV4dCgpLiBOb3JtYWxpemVyOiAiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHkuaGV4KG5ldyBTdHJpbmcoZmlsbEluMSkpKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIEl0ZXI6ICIgKyBVdGlsaXR5LmhleChuZXcgU3RyaW5nKGZpbGxJbjIpKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGNsb25lLnNldFRleHQoZmlsbEluMSk7CisgICAgICAgIGxlbiA9IGNsb25lLmdldFRleHQoZmlsbEluMik7CisgICAgICAgIGlmKCFVdGlsaXR5LmFycmF5UmVnaW9uTWF0Y2hlcyhmaWxsSW4xLDAsZmlsbEluMiwwLGxlbikpeworICAgICAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXIuc2V0VGV4dCgpIG9yIE5vcm1hbGl6ZXIuZ2V0VGV4dCgpIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmhleChuZXcgU3RyaW5nKGZpbGxJbjEpKSsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBJdGVyOiAiICsgVXRpbGl0eS5oZXgobmV3IFN0cmluZyhmaWxsSW4yKSkpOworICAgICAgICB9CisKKwkgICAgLy8gdGVzdCBzZXRUZXh0KFVDaGFyICopLCBnZXRVTW9kZSgpIGFuZCBzZXRNb2RlKCkKKwkgICAgY2xvbmUuc2V0VGV4dChzKTsKKyAgICAgICAgY2xvbmUuc2V0SW5kZXhPbmx5KDEpOworCSAgICBjbG9uZS5zZXRNb2RlKE5vcm1hbGl6ZXIuTkZEKTsKKwkgICAgaWYoY2xvbmUuZ2V0TW9kZSgpIT1Ob3JtYWxpemVyLk5GRCkgeworCSAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXI6OnNldE1vZGUoKSBvciBOb3JtYWxpemVyOjpnZXRNb2RlKCkiKTsKKwkgICAgfQorCSAgICBpZihjbG9uZS5uZXh0KCkhPTB4MzA4IHx8IGNsb25lLm5leHQoKSE9MHgxMTAwKSB7CisJICAgICAgICBlcnJsbigiZXJyb3IgaW4gTm9ybWFsaXplcjo6c2V0VGV4dCgpIG9yIE5vcm1hbGl6ZXI6OnNldE1vZGUoKSIpOworCSAgICB9CisKKwkgICAgLy8gdGVzdCBsYXN0KCkvcHJldmlvdXMoKSB3aXRoIGFuIGludGVybmFsIGJ1ZmZlciBvdmVyZmxvdworCSAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigiYWFhYWFhYWFhYSIpOworICAgICAgICBidWYuc2V0Q2hhckF0KDEwLTEsJ1x1MDMwOCcpOworICAgICAgICBjbG9uZS5zZXRUZXh0KGJ1Zik7CisJICAgIGlmKGNsb25lLmxhc3QoKSE9MHgzMDgpIHsKKwkgICAgICAgIGVycmxuKCJlcnJvciBpbiBOb3JtYWxpemVyKDEwKlUrMDMwOCkubGFzdCgpIik7CisJICAgIH0KKworCSAgICAvLyB0ZXN0IFVOT1JNX05PTkUKKwkgICAgbm9ybS5zZXRNb2RlKE5vcm1hbGl6ZXIuTk9ORSk7CisJICAgIGlmKG5vcm0uZmlyc3QoKSE9MHg2MSB8fCBub3JtLm5leHQoKSE9MHgzMDggfHwgbm9ybS5sYXN0KCkhPTB4MmY4MDApIHsKKwkgICAgICAgIGVycmxuKCJlcnJvciBpbiBOb3JtYWxpemVyKFVOT1JNX05PTkUpLmZpcnN0KCkvbmV4dCgpL2xhc3QoKSIpOworCSAgICB9CisJICAgIG91dD1Ob3JtYWxpemVyLm5vcm1hbGl6ZShzLCBOb3JtYWxpemVyLk5PTkUpOworCSAgICBpZighb3V0LmVxdWFscyhzKSkgeworCSAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXI6Om5vcm1hbGl6ZShVTk9STV9OT05FKSIpOworCSAgICB9CisJfQorCisJcHVibGljIHZvaWQgVGVzdENvbmNhdGVuYXRlKCkgeworCisJICAgIE9iamVjdFtdW11jYXNlcz1uZXcgT2JqZWN0W11bXXsKKwkgICAgICAgIC8qIG1vZGUsIGxlZnQsIHJpZ2h0LCByZXN1bHQgKi8KKwkgICAgICAgIHsKKwkgICAgICAgICAgICBOb3JtYWxpemVyLk5GQywKKwkgICAgICAgICAgICAicmUiLAorCSAgICAgICAgICAgICJcdTAzMDFzdW1cdTAwZTkiLAorCSAgICAgICAgICAgICJyXHUwMGU5c3VtXHUwMGU5IgorCSAgICAgICAgfSwKKwkgICAgICAgIHsKKwkgICAgICAgICAgICBOb3JtYWxpemVyLk5GQywKKwkgICAgICAgICAgICAiYVx1MTEwMCIsCisJICAgICAgICAgICAgIlx1MTE2MWJjZGVmZ2hpamsiLAorCSAgICAgICAgICAgICJhXHVhYzAwYmNkZWZnaGlqayIKKwkgICAgICAgIH0sCisJICAgICAgICAvKiAjIyMgVE9ETzogYWRkIG1vcmUgaW50ZXJlc3RpbmcgY2FzZXMgKi8KKwkgICAgICAgIHsKKwkgICAgICAgICAgICBOb3JtYWxpemVyLk5GRCwKKwkgICAgICAgICAgICAiXHUwMzQwXHUwMzQxXHUwMzQzXHUwMzQ0XHUwMzc0XHUwMzdFXHUwMzg3XHUwOTU4IiArCisJICAgICAgICAgICAgIlx1MDk1OVx1MDk1QVx1MDk1Qlx1MDk1Q1x1MDk1RFx1MDk1RVx1MDk1Rlx1MDlEQyIgKworCSAgICAgICAgICAgICJcdTA5RERcdTA5REZcdTBBMzNcdTBBMzZcdTBBNTlcdTBBNUFcdTBBNUJcdTBBNUUiICsKKwkgICAgICAgICAgICAiXHUwQjVDXHUwQjVEXHUwRjQzXHUwRjREXHUwRjUyXHUwRjU3XHUwRjVDXHUwRjY5IiArCisJICAgICAgICAgICAgIlx1MEY3M1x1MEY3NVx1MEY3Nlx1MEY3OFx1MEY4MVx1MEY5M1x1MEY5RFx1MEZBMiIgKworCSAgICAgICAgICAgICJcdTBGQTdcdTBGQUNcdTBGQjlcdTFGNzFcdTFGNzNcdTFGNzVcdTFGNzdcdTFGNzkiICsKKwkgICAgICAgICAgICAiXHUxRjdCXHUxRjdEXHUxRkJCXHUxRkJFXHUxRkM5XHUxRkNCXHUxRkQzXHUxRkRCIiwKKworCSAgICAgICAgICAgICJcdTFGRTNcdTFGRUJcdTFGRUVcdTFGRUZcdTFGRjlcdTFGRkJcdTFGRkRcdTIwMDAiICsKKwkgICAgICAgICAgICAiXHUyMDAxXHUyMTI2XHUyMTJBXHUyMTJCXHUyMzI5XHUyMzJBXHVGOTAwXHVGQTEwIiArCisJICAgICAgICAgICAgIlx1RkExMlx1RkExNVx1RkEyMFx1RkEyMlx1RkEyNVx1RkEyNlx1RkEyQVx1RkIxRiIgKworCSAgICAgICAgICAgICJcdUZCMkFcdUZCMkJcdUZCMkNcdUZCMkRcdUZCMkVcdUZCMkZcdUZCMzBcdUZCMzEiICsKKwkgICAgICAgICAgICAiXHVGQjMyXHVGQjMzXHVGQjM0XHVGQjM1XHVGQjM2XHVGQjM4XHVGQjM5XHVGQjNBIiArCisJICAgICAgICAgICAgIlx1RkIzQlx1RkIzQ1x1RkIzRVx1RkI0MFx1RkI0MVx1RkI0M1x1RkI0NFx1RkI0NiIgKworCSAgICAgICAgICAgICJcdUZCNDdcdUZCNDhcdUZCNDlcdUZCNEFcdUZCNEJcdUZCNENcdUZCNERcdUZCNEUiLAorCisJICAgICAgICAgICAgIlx1MDM0MFx1MDM0MVx1MDM0M1x1MDM0NFx1MDM3NFx1MDM3RVx1MDM4N1x1MDk1OCIgKworCSAgICAgICAgICAgICJcdTA5NTlcdTA5NUFcdTA5NUJcdTA5NUNcdTA5NURcdTA5NUVcdTA5NUZcdTA5REMiICsKKwkgICAgICAgICAgICAiXHUwOUREXHUwOURGXHUwQTMzXHUwQTM2XHUwQTU5XHUwQTVBXHUwQTVCXHUwQTVFIiArCisJICAgICAgICAgICAgIlx1MEI1Q1x1MEI1RFx1MEY0M1x1MEY0RFx1MEY1Mlx1MEY1N1x1MEY1Q1x1MEY2OSIgKworCSAgICAgICAgICAgICJcdTBGNzNcdTBGNzVcdTBGNzZcdTBGNzhcdTBGODFcdTBGOTNcdTBGOURcdTBGQTIiICsKKwkgICAgICAgICAgICAiXHUwRkE3XHUwRkFDXHUwRkI5XHUxRjcxXHUxRjczXHUxRjc1XHUxRjc3XHUxRjc5IiArCisJICAgICAgICAgICAgIlx1MUY3Qlx1MUY3RFx1MUZCQlx1MUZCRVx1MUZDOVx1MUZDQlx1MUZEM1x1MDM5OSIgKworCSAgICAgICAgICAgICJcdTAzMDFcdTAzQzVcdTAzMDhcdTAzMDFcdTFGRUJcdTFGRUVcdTFGRUZcdTFGRjkiICsKKwkgICAgICAgICAgICAiXHUxRkZCXHUxRkZEXHUyMDAwXHUyMDAxXHUyMTI2XHUyMTJBXHUyMTJCXHUyMzI5IiArCisJICAgICAgICAgICAgIlx1MjMyQVx1RjkwMFx1RkExMFx1RkExMlx1RkExNVx1RkEyMFx1RkEyMlx1RkEyNSIgKworCSAgICAgICAgICAgICJcdUZBMjZcdUZBMkFcdUZCMUZcdUZCMkFcdUZCMkJcdUZCMkNcdUZCMkRcdUZCMkUiICsKKwkgICAgICAgICAgICAiXHVGQjJGXHVGQjMwXHVGQjMxXHVGQjMyXHVGQjMzXHVGQjM0XHVGQjM1XHVGQjM2IiArCisJICAgICAgICAgICAgIlx1RkIzOFx1RkIzOVx1RkIzQVx1RkIzQlx1RkIzQ1x1RkIzRVx1RkI0MFx1RkI0MSIgKworCSAgICAgICAgICAgICJcdUZCNDNcdUZCNDRcdUZCNDZcdUZCNDdcdUZCNDhcdUZCNDlcdUZCNEFcdUZCNEIiICsKKwkgICAgICAgICAgICAiXHVGQjRDXHVGQjREXHVGQjRFIgorCSAgICAgICAgfQorCSAgICB9OworCisJICAgIFN0cmluZyBsZWZ0LCByaWdodCwgZXhwZWN0LCByZXN1bHQ7CisJICAgIE5vcm1hbGl6ZXIuTW9kZSBtb2RlOworCSAgICBpbnQgaTsKKworCSAgICAvKiB0ZXN0IGNvbmNhdGVuYXRpb24gKi8KKwkgICAgZm9yKGk9MDsgaTxjYXNlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgbW9kZSA9IChOb3JtYWxpemVyLk1vZGUpY2FzZXNbaV1bMF07CisKKwkgICAgICAgIGxlZnQ9KFN0cmluZyljYXNlc1tpXVsxXTsKKwkgICAgICAgIHJpZ2h0PShTdHJpbmcpY2FzZXNbaV1bMl07CisJICAgICAgICBleHBlY3Q9KFN0cmluZyljYXNlc1tpXVszXTsKKwkJICAgIHsKKwkgICAgICAgICAgICByZXN1bHQ9Tm9ybWFsaXplci5jb25jYXRlbmF0ZShsZWZ0LCByaWdodCwgbW9kZSk7CisJCSAgICAgICAgaWYoIHJlc3VsdC5lcXVhbHMoZXhwZWN0KSkgeworCQkgICAgICAgICAgICBlcnJsbigiZXJyb3IgaW4gTm9ybWFsaXplci5jb25jYXRlbmF0ZSgpLCBjYXNlc1tdIGZhaWxlZCIKKwkgICAgICAgICAgICAgICAgICAgICAgKyIsIHJlc3VsdD09ZXhwZWN0OiBleHBlY3RlZDogIgorCSAgICAgICAgICAgICAgICAgICAgICArIGhleChleHBlY3QpKyIgPT09PT09PT09PiBnb3Q6ICIgKyBoZXgocmVzdWx0KSk7CisJCSAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJlc3VsdD1Ob3JtYWxpemVyLmNvbmNhdGVuYXRlKGxlZnQudG9DaGFyQXJyYXkoKSwgcmlnaHQudG9DaGFyQXJyYXkoKSwgbW9kZSk7CisgICAgICAgICAgICAgICAgaWYoIHJlc3VsdC5lcXVhbHMoZXhwZWN0KSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3IgaW4gTm9ybWFsaXplci5jb25jYXRlbmF0ZSgpLCBjYXNlc1tdIGZhaWxlZCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyIsIHJlc3VsdD09ZXhwZWN0OiBleHBlY3RlZDogIgorICAgICAgICAgICAgICAgICAgICAgICAgICArIGhleChleHBlY3QpKyIgPT09PT09PT09PiBnb3Q6ICIgKyBoZXgocmVzdWx0KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCSAgICB9CisJfQorICAgIHByaXZhdGUgZmluYWwgaW50IFJBTkRfTUFYID0gMHg3ZmZmOworCisgICAgcHVibGljIHZvaWQgVGVzdENoZWNrRkNEKCkKKwl7CisJICBjaGFyW10gRkFTVCA9IHsweDAwMDEsIDB4MDAwMiwgMHgwMDAzLCAweDAwMDQsIDB4MDAwNSwgMHgwMDA2LCAweDAwMDcsCisgICAgICAgICAgICAgICAgICAgICAweDAwMDgsIDB4MDAwOSwgMHgwMDBBfTsKKworCSAgY2hhcltdIEZBTFNFID0gezB4MDAwMSwgMHgwMDAyLCAweDAyRUEsIDB4MDNFQiwgMHgwMzAwLCAweDAzMDEsCisJICAgICAgICAgICAgICAgICAgMHgwMkI5LCAweDAzMTQsIDB4MDMxNSwgMHgwMzE2fTsKKworICAgICAgY2hhcltdIFRSVUUgPSB7MHgwMDMwLCAweDAwNDAsIDB4MDQ0MCwgMHgwNTZELCAweDA2NEYsIDB4MDZFNywKKwkgICAgICAgICAgICAgICAgIDB4MDA1MCwgMHgwNzMwLCAweDA5RUUsIDB4MUUxMH07CisKKwkgIGNoYXJbXVtdIGRhdGFzdHI9IHsgezB4MDA2MSwgMHgwMzBBLCAweDFFMDUsIDB4MDMwMiwgMH0sCisJICAgICAgICAgICAgICAgICAgICAgIHsweDAwNjEsIDB4MDMwQSwgMHgwMEUyLCAweDAzMjMsIDB9LAorCSAgICAgICAgICAgICAgICAgICAgICB7MHgwMDYxLCAweDAzMjMsIDB4MDBFMiwgMHgwMzIzLCAwfSwKKwkgICAgICAgICAgICAgICAgICAgICAgezB4MDA2MSwgMHgwMzIzLCAweDFFMDUsIDB4MDMwMiwgMH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH07CisJICBOb3JtYWxpemVyLlF1aWNrQ2hlY2tSZXN1bHQgcmVzdWx0W10gPSB7Tm9ybWFsaXplci5ZRVMsIE5vcm1hbGl6ZXIuTk8sIE5vcm1hbGl6ZXIuTk8sIE5vcm1hbGl6ZXIuWUVTfTsKKworCSAgY2hhcltdIGRhdGFjaGFyPSB7ICAgICAgICAweDYwLCAweDYxLCAweDYyLCAweDYzLCAweDY0LCAweDY1LCAweDY2LCAweDY3LCAweDY4LCAweDY5LAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDZhLAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGUwLCAweGUxLCAweGUyLCAweGUzLCAweGU0LCAweGU1LCAweGU2LCAweGU3LCAweGU4LCAweGU5LAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGVhLAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDAsIDB4MDMwMSwgMHgwMzAyLCAweDAzMDMsIDB4MDMwNCwgMHgwMzA1LCAweDAzMDYsCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwNywgMHgwMzA4LCAweDAzMDksIDB4MDMwYSwKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzIwLCAweDAzMjEsIDB4MDMyMiwgMHgwMzIzLCAweDAzMjQsIDB4MDMyNSwgMHgwMzI2LAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMjcsIDB4MDMyOCwgMHgwMzI5LCAweDAzMmEsCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUwMCwgMHgxZTAxLCAweDFlMDIsIDB4MWUwMywgMHgxZTA0LCAweDFlMDUsIDB4MWUwNiwKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZTA3LCAweDFlMDgsIDB4MWUwOSwgMHgxZTBhCisgICAgICAgICAgICAgICAgICAgICAgIH07CisKKwkgIGludCBjb3VudCA9IDA7CisKKwkgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soRkFTVCwwLEZBU1QubGVuZ3RoLCBOb3JtYWxpemVyLkZDRCkgIT0gTm9ybWFsaXplci5ZRVMpCisJICAgIGVycmxuKCJOZXdOb3JtYWxpemVyLnF1aWNrQ2hlY2soRkNEKSBmYWlsZWQ6IGV4cGVjdGVkIHZhbHVlIGZvciBmYXN0IE5ld05vcm1hbGl6ZXIucXVpY2tDaGVjayBpcyBOZXdOb3JtYWxpemVyLllFU1xuIik7CisJICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKEZBTFNFLDAsIEZBTFNFLmxlbmd0aCxOb3JtYWxpemVyLkZDRCkgIT0gTm9ybWFsaXplci5OTykKKwkgICAgZXJybG4oIk5ld05vcm1hbGl6ZXIucXVpY2tDaGVjayhGQ0QpIGZhaWxlZDogZXhwZWN0ZWQgdmFsdWUgZm9yIGVycm9yIE5ld05vcm1hbGl6ZXIucXVpY2tDaGVjayBpcyBOZXdOb3JtYWxpemVyLk5PXG4iKTsKKwkgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soVFJVRSwwLFRSVUUubGVuZ3RoLE5vcm1hbGl6ZXIuRkNEKSAhPSBOb3JtYWxpemVyLllFUykKKwkgICAgZXJybG4oIk5ld05vcm1hbGl6ZXIucXVpY2tDaGVjayhGQ0QpIGZhaWxlZDogZXhwZWN0ZWQgdmFsdWUgZm9yIGNvcnJlY3QgTmV3Tm9ybWFsaXplci5xdWlja0NoZWNrIGlzIE5ld05vcm1hbGl6ZXIuWUVTXG4iKTsKKworCisJICB3aGlsZSAoY291bnQgPCA0KQorCSAgeworCSAgICBOb3JtYWxpemVyLlF1aWNrQ2hlY2tSZXN1bHQgZmNkcmVzdWx0ID0gTm9ybWFsaXplci5xdWlja0NoZWNrKGRhdGFzdHJbY291bnRdLDAsZGF0YXN0cltjb3VudF0ubGVuZ3RoLCBOb3JtYWxpemVyLkZDRCk7CisgICAgICAgIGlmIChyZXN1bHRbY291bnRdICE9IGZjZHJlc3VsdCkgeworCSAgICAgICAgZXJybG4oIk5ld05vcm1hbGl6ZXIucXVpY2tDaGVjayhGQ0QpIGZhaWxlZDogRGF0YSBzZXQgIisgY291bnQKKyAgICAgICAgICAgICAgICAgICAgKyAiIGV4cGVjdGVkIHZhbHVlICIrIHJlc3VsdFtjb3VudF0pOworCSAgICB9CisJICAgIGNvdW50ICsrOworCSAgfQorCisJICAvKiByYW5kb20gY2hlY2tzIG9mIGxvbmcgc3RyaW5ncyAqLworCSAgLy9zcmFuZCgodW5zaWduZWQpdGltZSggTlVMTCApKTsKKyAgICAgIFJhbmRvbSByYW5kID0gbmV3IFJhbmRvbSgpOworCisKKwkgIGZvciAoY291bnQgPSAwOyBjb3VudCA8IDUwOyBjb3VudCArKykKKwkgIHsKKwkgICAgaW50IHNpemUgPSAwOworCSAgICBOb3JtYWxpemVyLlF1aWNrQ2hlY2tSZXN1bHQgdGVzdHJlc3VsdCA9IE5vcm1hbGl6ZXIuWUVTOworCSAgICBjaGFyW10gZGF0YT0gbmV3IGNoYXJbMjBdOworCSAgICBjaGFyW10gbm9ybT0gbmV3IGNoYXJbMTAwXTsKKwkgICAgY2hhcltdIG5mZCA9IG5ldyBjaGFyWzEwMF07CisJICAgIGludCBub3JtU3RhcnQgPSAwOworCSAgICBpbnQgbmZkc2l6ZSA9IDA7CisJICAgIHdoaWxlIChzaXplICE9IDE5KSB7CisJICAgICAgZGF0YVtzaXplXSA9IGRhdGFjaGFyW3JhbmQubmV4dEludChSQU5EX01BWCkqNTAvUkFORF9NQVhdOworCSAgICAgIGxvZ2xuKCIweCIrZGF0YVtzaXplXSk7CisJICAgICAgbm9ybVN0YXJ0ID0gTm9ybWFsaXplci5ub3JtYWxpemUoZGF0YSxzaXplLHNpemUrMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3JtLG5vcm1TdGFydCwxMDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORkQpOworCSAgICAgIHNpemUgKys7CisJICAgIH0KKwkgICAgbG9nbG4oIlxuIik7CisKKwkgICAgbmZkc2l6ZSA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKGRhdGEsMCxzaXplLCBuZmQsMCxuZmQubGVuZ3RoLE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgLy8gICAgbmZkc2l6ZSA9IHVub3JtX25vcm1hbGl6ZShkYXRhLCBzaXplLCBVTk9STV9ORkQsIFVDT0xfSUdOT1JFX0hBTkdVTCwKKyAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgbmZkLCAxMDAsICZzdGF0dXMpOworICAgICAgICBpZiAobmZkc2l6ZSAhPSBub3JtU3RhcnQgfHwgVXRpbGl0eS5hcnJheVJlZ2lvbk1hdGNoZXMobmZkLDAsIG5vcm0sMCxuZmRzaXplKSA9PWZhbHNlKSB7CisJICAgICAgdGVzdHJlc3VsdCA9IE5vcm1hbGl6ZXIuTk87CisJICAgIH0KKwkgICAgaWYgKHRlc3RyZXN1bHQgPT0gTm9ybWFsaXplci5ZRVMpIHsKKwkgICAgICBsb2dsbigicmVzdWx0IE5ld05vcm1hbGl6ZXIuWUVTXG4iKTsKKwkgICAgfQorCSAgICBlbHNlIHsKKwkgICAgICBsb2dsbigicmVzdWx0IE5ld05vcm1hbGl6ZXIuTk9cbiIpOworCSAgICB9CisKKwkgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayhkYXRhLDAsZGF0YS5sZW5ndGgsIE5vcm1hbGl6ZXIuRkNEKSAhPSB0ZXN0cmVzdWx0KSB7CisJICAgICAgZXJybG4oIk5ld05vcm1hbGl6ZXIucXVpY2tDaGVjayhGQ0QpIGZhaWxlZDogZXhwZWN0ZWQgIisgdGVzdHJlc3VsdCsiIGZvciByYW5kb20gZGF0YVxuIiApOworCSAgICB9CisJICB9CisJfQorCisKKwkvLyByZWZlcmVuY2UgaW1wbGVtZW50YXRpb24gb2YgTm9ybWFsaXplcjo6Y29tcGFyZQorCXByaXZhdGUgaW50IHJlZl9ub3JtX2NvbXBhcmUoU3RyaW5nIHMxLCBTdHJpbmcgczIsIGludCBvcHRpb25zKSB7CisJICAgIFN0cmluZyB0MSwgdDIscjEscjI7CisKKyAgICAgICAgcjE9czE7CisgICAgICAgIHIyPXMyOworCisJICAgIGlmKChvcHRpb25zJk5vcm1hbGl6ZXIuQ09NUEFSRV9JR05PUkVfQ0FTRSkhPTApIHsKKwkgICAgICAgIHIxID0gVUNoYXJhY3Rlci5mb2xkQ2FzZShzMSwoKG9wdGlvbnMmTm9ybWFsaXplci5GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kpPT0wKSk7CisJICAgICAgICByMiA9IFVDaGFyYWN0ZXIuZm9sZENhc2UoczIsKChvcHRpb25zJk5vcm1hbGl6ZXIuRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JKT09MCkpOworCSAgICB9CisKKyAgICAgICAgIHQxID0gTm9ybWFsaXplci5kZWNvbXBvc2UocjEsIGZhbHNlKTsKKyAgICAgICAgIHQyID0gTm9ybWFsaXplci5kZWNvbXBvc2UocjIsIGZhbHNlKTsKKworCSAgICBpZigob3B0aW9ucyZOb3JtYWxpemVyLkNPTVBBUkVfQ09ERV9QT0lOVF9PUkRFUikhPTApIHsKKyAgICAgICAgICAgIFVURjE2LlN0cmluZ0NvbXBhcmF0b3IgY29tcCA9IG5ldyBVVEYxNi5TdHJpbmdDb21wYXJhdG9yKCk7CisJICAgICAgICByZXR1cm4gY29tcC5jb21wYXJlKHQxLHQyKTsKKwkgICAgfSBlbHNlIHsKKwkgICAgICAgIHJldHVybiB0MS5jb21wYXJlVG8odDIpOworCSAgICB9CisKKwl9CisKKwkvLyB0ZXN0IHdyYXBwZXIgZm9yIE5vcm1hbGl6ZXI6OmNvbXBhcmUsIHNldHMgVU5PUk1fSU5QVVRfSVNfRkNEIGFwcHJvcHJpYXRlbHkKKwlwcml2YXRlIGludCBub3JtX2NvbXBhcmUoU3RyaW5nIHMxLCBTdHJpbmcgczIsIGludCBvcHRpb25zKSB7CisJICAgIGlmKCBOb3JtYWxpemVyLllFUz09Tm9ybWFsaXplci5xdWlja0NoZWNrKHMxLE5vcm1hbGl6ZXIuRkNEKSAmJgorCSAgICAgICAgTm9ybWFsaXplci5ZRVM9PU5vcm1hbGl6ZXIucXVpY2tDaGVjayhzMixOb3JtYWxpemVyLkZDRCkpIHsKKwkgICAgICAgIG9wdGlvbnN8PU5vcm1hbGl6ZXIuSU5QVVRfSVNfRkNEOworCSAgICB9CisKKwkgICAgcmV0dXJuIE5vcm1hbGl6ZXIuY29tcGFyZShzMSwgczIsIG9wdGlvbnMpOworCX0KKworCS8vIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiBvZiBVbmljb2RlU3RyaW5nOjpjYXNlQ29tcGFyZQorCXByaXZhdGUgaW50IHJlZl9jYXNlX2NvbXBhcmUoU3RyaW5nIHMxLCBTdHJpbmcgczIsIGludCBvcHRpb25zKSB7CisJICAgIFN0cmluZyB0MSwgdDI7CisKKwkgICAgdDE9czE7CisJICAgIHQyPXMyOworCisJICAgIHQxID0gVUNoYXJhY3Rlci5mb2xkQ2FzZSh0MSwoKG9wdGlvbnMmTm9ybWFsaXplci5GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kpPT0wKSk7CisJICAgIHQyID0gVUNoYXJhY3Rlci5mb2xkQ2FzZSh0MiwoKG9wdGlvbnMmTm9ybWFsaXplci5GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kpPT0wKSk7CisKKyAgICAgICAgaWYoKG9wdGlvbnMmTm9ybWFsaXplci5DT01QQVJFX0NPREVfUE9JTlRfT1JERVIpIT0wKSB7CisgICAgICAgICAgICBVVEYxNi5TdHJpbmdDb21wYXJhdG9yIGNvbXAgPSBuZXcgVVRGMTYuU3RyaW5nQ29tcGFyYXRvcigpOworICAgICAgICAgICAgcmV0dXJuIGNvbXAuY29tcGFyZSh0MSx0Mik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gdDEuY29tcGFyZVRvKHQyKTsKKyAgICAgICAgfQorCisJfQorCisJLy8gcmVkdWNlIGFuIGludGVnZXIgdG8gLTEvMC8xCisJcHJpdmF0ZSBzdGF0aWMgaW50IHNpZ24oaW50IHZhbHVlKSB7CisJICAgIGlmKHZhbHVlPT0wKSB7CisJICAgICAgICByZXR1cm4gMDsKKwkgICAgfSBlbHNlIHsKKwkgICAgICAgIHJldHVybiAodmFsdWU+PjMxKXwxOworCSAgICB9CisJfQorICAgICAgICAgICAgLy8gdGVzdCBOb3JtYWxpemVyOjpjb21wYXJlIGFuZCB1bm9ybV9jb21wYXJlICh0aGlubHkgd3JhcHBlZCBieSB0aGUgZm9ybWVyKQorICAgICAgICAvLyBieSBjb21wYXJpbmcgaXQgd2l0aCBpdHMgc2VtYW50aWMgZXF1aXZhbGVudAorICAgICAgICAvLyBzaW5jZSB3ZSB0cnVzdCB0aGUgcGllY2VzLCB0aGlzIGlzIHN1ZmZpY2llbnQKKworICAgICAgICAvLyB0ZXN0IGVhY2ggc3RyaW5nIHdpdGggaXRzZWxmIGFuZCBlYWNoIG90aGVyCisgICAgICAgIC8vIGVhY2ggdGltZSB3aXRoIGFsbCBvcHRpb25zCisgICAgIHByaXZhdGUgIFN0cmluZyBzdHJpbmdzW109bmV3IFN0cmluZ1tdeworICAgICAgICAgICAgLy8gc29tZSBjYXNlcyBmcm9tIE5vcm1hbGl6YXRpb25UZXN0LnR4dAorICAgICAgICAgICAgLy8gMC4uMworICAgICAgICAgICAgIkRcdTAzMUJcdTAzMDdcdTAzMjMiLAorICAgICAgICAgICAgIlx1MUUwQ1x1MDMxQlx1MDMwNyIsCisgICAgICAgICAgICAiRFx1MDMxQlx1MDMyM1x1MDMwNyIsCisgICAgICAgICAgICAiZFx1MDMxQlx1MDMyM1x1MDMwNyIsCisKKyAgICAgICAgICAgIC8vIDQuLjYKKyAgICAgICAgICAgICJcdTAwRTQiLAorICAgICAgICAgICAgImFcdTAzMDgiLAorICAgICAgICAgICAgIkFcdTAzMDgiLAorCisgICAgICAgICAgICAvLyBBbmdzdHJvbSBzaWduID0gQSByaW5nCisgICAgICAgICAgICAvLyA3Li4xMAorICAgICAgICAgICAgIlx1MjEyQiIsCisgICAgICAgICAgICAiXHUwMEM1IiwKKyAgICAgICAgICAgICJBXHUwMzBBIiwKKyAgICAgICAgICAgICJhXHUwMzBBIiwKKworICAgICAgICAgICAgLy8gMTEuMTQKKyAgICAgICAgICAgICJhXHUwNTlBXHUwMzE2XHUzMDJBXHUwMzJGYiIsCisgICAgICAgICAgICAiYVx1MzAyQVx1MDMxNlx1MDMyRlx1MDU5QWIiLAorICAgICAgICAgICAgImFcdTMwMkFcdTAzMTZcdTAzMkZcdTA1OUFiIiwKKyAgICAgICAgICAgICJBXHUwNTlBXHUwMzE2XHUzMDJBXHUwMzJGYiIsCisKKyAgICAgICAgICAgIC8vIGZyb20gSUNVIGNhc2UgZm9sZGluZyB0ZXN0cworICAgICAgICAgICAgLy8gMTUuLjIwCisgICAgICAgICAgICAiQVx1MDBkZlx1MDBiNVx1ZmIwM1xcVTAwMDEwNDBjXHUwMTMxIiwKKyAgICAgICAgICAgICJhc3NcdTAzYmNmZmlcXFUwMDAxMDQzNGkiLAorICAgICAgICAgICAgIlx1MDA2MVx1MDA0Mlx1MDEzMVx1MDNhM1x1MDBkZlx1ZmIwM1x1ZDkzZlx1ZGZmZiIsCisgICAgICAgICAgICAiXHUwMDQxXHUwMDYyXHUwMDY5XHUwM2MzXHUwMDczXHUwMDUzXHUwMDQ2XHUwMDY2XHUwMDQ5XHVkOTNmXHVkZmZmIiwKKyAgICAgICAgICAgICJcdTAwNDFcdTAwNjJcdTAxMzFcdTAzYzNcdTAwNTNcdTAwNzNcdTAwNjZcdTAwNDZcdTAwNjlcdWQ5M2ZcdWRmZmYiLAorICAgICAgICAgICAgIlx1MDA0MVx1MDA2Mlx1MDA2OVx1MDNjM1x1MDA3M1x1MDA1M1x1MDA0Nlx1MDA2Nlx1MDA0OVx1ZDkzZlx1ZGZmZCIsCisKKyAgICAgICAgICAgIC8vICAgICBVK2Q4MDAgVSsxMDAwMSAgIHNlZSBpbXBsZW1lbnRhdGlvbiBjb21tZW50IGluIHVub3JtX2NtcEVxdWl2Rm9sZAorICAgICAgICAgICAgLy8gdnMuIFUrMTAwMDAgICAgICAgICAgYXQgYm90dG9tIC0gY29kZSBwb2ludCBvcmRlcgorICAgICAgICAgICAgLy8gMjEuLjIyCisgICAgICAgICAgICAiXHVkODAwXHVkODAwXHVkYzAxIiwKKyAgICAgICAgICAgICJcdWQ4MDBcdWRjMDAiLAorCisgICAgICAgICAgICAvLyBvdGhlciBjb2RlIHBvaW50IG9yZGVyIHRlc3RzIGZyb20gdXN0cnRlc3QuY3BwCisgICAgICAgICAgICAvLyAyMy4uMzEKKyAgICAgICAgICAgICJcdTIwYWNcdWQ4MDEiLAorICAgICAgICAgICAgIlx1MjBhY1x1ZDgwMFx1ZGMwMCIsCisgICAgICAgICAgICAiXHVkODAwIiwKKyAgICAgICAgICAgICJcdWQ4MDBcdWZmNjEiLAorICAgICAgICAgICAgIlx1ZGZmZiIsCisgICAgICAgICAgICAiXHVmZjYxXHVkZmZmIiwKKyAgICAgICAgICAgICJcdWZmNjFcdWQ4MDBcdWRjMDIiLAorICAgICAgICAgICAgIlx1ZDgwMFx1ZGMwMiIsCisgICAgICAgICAgICAiXHVkODRkXHVkYzU2IiwKKworICAgICAgICAgICAgLy8gbG9uZyBzdHJpbmdzLCBzZWUgY25vcm10c3QuYy9UZXN0Tm9ybUNvdmVyYWdlKCkKKyAgICAgICAgICAgIC8vIGVxdWl2YWxlbnQgaWYgY2FzZS1pbnNlbnNpdGl2ZQorICAgICAgICAgICAgLy8gMzIuLjMzCisgICAgICAgICAgICAiXHVBRDhCXHVBRDhCXHVBRDhCXHVBRDhCIisKKyAgICAgICAgICAgICJcXFUwMDAxZDE1ZVxcVTAwMDFkMTU3XFxVMDAwMWQxNjVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZSIrCisgICAgICAgICAgICAiXFxVMDAwMWQxNWVcXFUwMDAxZDE1N1xcVTAwMDFkMTY1XFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWUiKworICAgICAgICAgICAgIlxcVTAwMDFkMTVlXFxVMDAwMWQxNTdcXFUwMDAxZDE2NVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlIisKKyAgICAgICAgICAgICJcXFUwMDAxZDE1N1xcVTAwMDFkMTY1XFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZSIrCisgICAgICAgICAgICAiXFxVMDAwMWQxNTdcXFUwMDAxZDE2NVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWUiKworICAgICAgICAgICAgImFhYWFhYWFhYWFhYWFhYWFhYXp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6IisKKyAgICAgICAgICAgICJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIrCisgICAgICAgICAgICAiY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2MiKworICAgICAgICAgICAgImRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkIisKKyAgICAgICAgICAgICJcdUFEOEJcdUFEOEJcdUFEOEJcdUFEOEIiKworICAgICAgICAgICAgImRcdTAzMUJcdTAzMDdcdTAzMjMiLAorCisgICAgICAgICAgICAiXHUxMTAwXHUxMTZmXHUxMWFhXHVBRDhCXHVBRDhCXHUxMTAwXHUxMTZmXHUxMWFhIisKKyAgICAgICAgICAgICJcXFUwMDAxZDE1N1xcVTAwMDFkMTY1XFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZSIrCisgICAgICAgICAgICAiXFxVMDAwMWQxNTdcXFUwMDAxZDE2NVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWUiKworICAgICAgICAgICAgIlxcVTAwMDFkMTU3XFxVMDAwMWQxNjVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlIisKKyAgICAgICAgICAgICJcXFUwMDAxZDE1ZVxcVTAwMDFkMTU3XFxVMDAwMWQxNjVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZSIrCisgICAgICAgICAgICAiXFxVMDAwMWQxNWVcXFUwMDAxZDE1N1xcVTAwMDFkMTY1XFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWUiKworICAgICAgICAgICAgImFhYWFhYWFhYWFBQUFBQUFBQVpaWlpaWlpaWlpaWlpaWlp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6IisKKyAgICAgICAgICAgICJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIrCisgICAgICAgICAgICAiY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2MiKworICAgICAgICAgICAgImRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkIisKKyAgICAgICAgICAgICJcdTExMDBcdTExNmZcdTExYWFcdUFEOEJcdUFEOEJcdTExMDBcdTExNmZcdTExYWEiKworICAgICAgICAgICAgIlx1MUUwQ1x1MDMxQlx1MDMwNyIsCisgICAgICAgICAgICAiXHUwMGRhdGVyXHUwMGZkIiwKKyAgICAgICAgICAgICJcdTAwZmF0ZXJcdTAwZmQiLAorCSAgICAgICAgLy8gc29tZSBzdHJpbmdzIHRoYXQgbWF5IG1ha2UgYSBkaWZmZXJlbmNlIHdoZXRoZXIgdGhlIGNvbXBhcmUgZnVuY3Rpb24KKwkgICAgICAgIC8vIGNhc2UtZm9sZHMgb3IgZGVjb21wb3NlcyBmaXJzdAorCSAgICAgICAgLy8gMzQuLjQxCisJICAgICAgICAiXHUwMzYwXHUwMzQ1XHUwMzM0IiwKKwkgICAgICAgICJcdTAzNjBcdTAzYjlcdTAzMzQiLAorCisJICAgICAgICAiXHUwMzYwXHUxZjgwXHUwMzM0IiwKKwkgICAgICAgICJcdTAzNjBcdTAzYjFcdTAzMTNcdTAzYjlcdTAzMzQiLAorCisJICAgICAgICAiXHUwMzYwXHUxZmZjXHUwMzM0IiwKKwkgICAgICAgICJcdTAzNjBcdTAzYzlcdTAzYjlcdTAzMzQiLAorCisJICAgICAgICAiXHUwMGNjIiwKKwkgICAgICAgICJcdTAwNjlcdTAzMDAiLAorICAgICAgICAgICAgImFcdTAzNjBcdTAzNDVcdTAzNjBcdTAzNDViIiwKKyAgICAgICAgICAgICJhXHUwMzQ1XHUwMzYwXHUwMzQ1XHUwMzYwYiIsCisKKyAgICB9OworCisJLy8gYWxsIGNvbWJpbmF0aW9ucyBvZiBvcHRpb25zCisJLy8gVU5PUk1fSU5QVVRfSVNfRkNEIGlzIHNldCBhdXRvbWF0aWNhbGx5IGlmIGJvdGggaW5wdXQgc3RyaW5ncyBmdWxmaWxsIEZDRCBjb25kaXRpb25zCisJZmluYWwgY2xhc3MgVGVtcCB7CisJCWludCBvcHRpb25zOworCQlTdHJpbmcgbmFtZTsKKwkJcHVibGljIFRlbXAoaW50IG9wdCxTdHJpbmcgc3RyKXsKKwkJCW9wdGlvbnMgPW9wdDsKKwkJCW5hbWUgPSBzdHI7CisJCX0KKworCX0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb21wYXJlRGVidWcoKXsKKworICAgICAgICBTdHJpbmdbXSBzID0gbmV3IFN0cmluZ1sxMDBdOyAvLyBhdCBsZWFzdCBhcyBtYW55IGl0ZW1zIGFzIGluIHN0cmluZ3NbXSAhCisKKworCisgICAgICAgIFRlbXBbXSBvcHQgPSBuZXcgVGVtcFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVGVtcCgwLCJkZWZhdWx0IiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBUZW1wKE5vcm1hbGl6ZXIuQ09NUEFSRV9DT0RFX1BPSU5UX09SREVSLCAiY29kZSBwb2ludCBvcmRlciIgKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFRlbXAoTm9ybWFsaXplci5DT01QQVJFX0lHTk9SRV9DQVNFLCAiaWdub3JlIGNhc2UiICksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBUZW1wKE5vcm1hbGl6ZXIuQ09NUEFSRV9DT0RFX1BPSU5UX09SREVSfE5vcm1hbGl6ZXIuQ09NUEFSRV9JR05PUkVfQ0FTRSwgImNvZGUgcG9pbnQgb3JkZXIgJiBpZ25vcmUgY2FzZSIgKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFRlbXAoTm9ybWFsaXplci5DT01QQVJFX0lHTk9SRV9DQVNFfE5vcm1hbGl6ZXIuRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JLCAiaWdub3JlIGNhc2UgJiBzcGVjaWFsIGkiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFRlbXAoTm9ybWFsaXplci5DT01QQVJFX0NPREVfUE9JTlRfT1JERVJ8Tm9ybWFsaXplci5DT01QQVJFX0lHTk9SRV9DQVNFfE5vcm1hbGl6ZXIuRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JLCAiY29kZSBwb2ludCBvcmRlciAmIGlnbm9yZSBjYXNlICYgc3BlY2lhbCBpIikKKyAgICAgICAgICAgICAgICAgICAgICAgIH07CisKKworCisgICAgICAgIGludCBpLCBqLCBrLCBjb3VudD1zdHJpbmdzLmxlbmd0aDsKKyAgICAgICAgaW50IHJlc3VsdCwgcmVmUmVzdWx0OworCisgICAgICAgIC8vIGNyZWF0ZSB0aGUgVW5pY29kZVN0cmluZ3MKKyAgICAgICAgZm9yKGk9MDsgaTxjb3VudDsgKytpKSB7CisgICAgICAgICAgICBzW2ldPVV0aWxpdHkudW5lc2NhcGUoc3RyaW5nc1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nQ29tcGFyYXRvciBjb21wID0gbmV3IFN0cmluZ0NvbXBhcmF0b3IoKTsKKyAgICAgICAgLy8gdGVzdCB0aGVtIGVhY2ggd2l0aCBlYWNoIG90aGVyCisKKyAgICAgICAgaSA9IDE1OworICAgICAgICBqID0gMTY7CisgICAgICAgIGsgPSA0OworICAgICAgICAvLyB0ZXN0IE5vcm1hbGl6ZXI6OmNvbXBhcmUKKyAgICAgICAgcmVzdWx0PW5vcm1fY29tcGFyZShzW2ldLCBzW2pdLCBvcHRba10ub3B0aW9ucyk7CisgICAgICAgIHJlZlJlc3VsdD1yZWZfbm9ybV9jb21wYXJlKHNbaV0sIHNbal0sIG9wdFtrXS5vcHRpb25zKTsKKyAgICAgICAgaWYoc2lnbihyZXN1bHQpIT1zaWduKHJlZlJlc3VsdCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyOjpjb21wYXJlKCAiICsgaSArIiwgIitqICsgIiwgIiAraysiKCAiICtvcHRba10ubmFtZSsiKSk9IiArIHJlc3VsdCArIiBzaG91bGQgYmUgc2FtZSBzaWduIGFzICIgKyByZWZSZXN1bHQpOworICAgICAgICB9CisKKyAgICAgICAgLy8gdGVzdCBVbmljb2RlU3RyaW5nOjpjYXNlQ29tcGFyZSAtIHNhbWUgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24gZnVuY3Rpb24KKyAgICAgICAgIGlmKDAhPShvcHRba10ub3B0aW9ucyZOb3JtYWxpemVyLkNPTVBBUkVfSUdOT1JFX0NBU0UpKSB7CisgICAgICAgIC8vICAgIHJlc3VsdD1zW2ldLiAoc1tqXSwgb3B0W2tdLm9wdGlvbnMpOworICAgICAgICAgICAgcmVzdWx0PWNvbXAuY2FzZUNvbXBhcmUoc1tpXSxzW2pdLCBvcHRba10ub3B0aW9ucyk7CisgICAgICAgICAgICByZWZSZXN1bHQ9cmVmX2Nhc2VfY29tcGFyZShzW2ldLCBzW2pdLCBvcHRba10ub3B0aW9ucyk7CisgICAgICAgICAgICBpZihzaWduKHJlc3VsdCkhPXNpZ24ocmVmUmVzdWx0KSkgeworICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyOjpjb21wYXJlKCAiICsgaSArIiwgIitqICsgIiwgIitrKyIoICIgK29wdFtrXS5uYW1lKyIpKT0iICsgcmVzdWx0ICsiIHNob3VsZCBiZSBzYW1lIHNpZ24gYXMgIiArIHJlZlJlc3VsdCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIFN0cmluZyB2YWx1ZTEgPSAiXHUwMGRhdGVyXHUwMGZkIjsKKyAgICAgICAgU3RyaW5nIHZhbHVlMiA9ICJcdTAwZmF0ZXJcdTAwZmQiOworICAgICAgICBpZihOb3JtYWxpemVyLmNvbXBhcmUodmFsdWUxLHZhbHVlMiwwKSE9MCl7CisgICAgICAgICAgICBpZihOb3JtYWxpemVyLmNvbXBhcmUodmFsdWUxLHZhbHVlMixOb3JtYWxpemVyLkNPTVBBUkVfSUdOT1JFX0NBU0UpPT0wKXsKKworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisKKyAgICAvKioKKyAgICAqIENvbXBhcmUgc3RyaW5ncyB1c2luZyBVbmljb2RlIGNvZGUgcG9pbnQgb3JkZXIsIGluc3RlYWQgb2YgVVRGLTE2IGNvZGUKKyAgICAqIHVuaXQgb3JkZXIuCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIFN0cmluZ0NvbXBhcmF0b3IgaW1wbGVtZW50cyBqYXZhLnV0aWwuQ29tcGFyYXRvcgorICAgIHsKKyAgICAgICAgLyoqCisgICAgICAgICogU3RhbmRhcmQgU3RyaW5nIGNvbXBhcmUuIE9ubHkgb25lIHNtYWxsIHNlY3Rpb24gaXMgZGlmZmVyZW50LCBtYXJrZWQgaW4KKyAgICAgICAgKiB0aGUgY29kZS4KKyAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBhLCBPYmplY3QgYikKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGEgPT0gYikgeworICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGEgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChiID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU3RyaW5nIHNhID0gKFN0cmluZykgYTsKKyAgICAgICAgICAgIFN0cmluZyBzYiA9IChTdHJpbmcpIGI7CisgICAgICAgICAgICBpbnQgbGVuYSA9IHNhLmxlbmd0aCgpOworICAgICAgICAgICAgaW50IGxlbmIgPSBzYi5sZW5ndGgoKTsKKyAgICAgICAgICAgIGludCBsZW4gPSBsZW5hOworICAgICAgICAgICAgaWYgKGxlbiA+IGxlbmIpIHsKKyAgICAgICAgICAgICAgICBsZW4gPSBsZW5iOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbjsgKytpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNoYXIgY2EgPSBzYS5jaGFyQXQoaSk7CisgICAgICAgICAgICAgICAgY2hhciBjYiA9IHNiLmNoYXJBdChpKTsKKyAgICAgICAgICAgICAgICBpZiAoY2EgPT0gY2IpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7IC8vIHNraXAgcmVtYXAgaWYgZXF1YWwKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBzdGFydCBvZiBvbmx5IGRpZmZlcmVudCBzZWN0aW9uCisgICAgICAgICAgICAgICAgLy8gaWYgZWl0aGVyIGNvZGUgdW5pdCBpcyBiZWxvdyAweGQ4MDAsIGkuZS4sIGJlbG93IHRoZQorICAgICAgICAgICAgICAgIC8vIHN1cnJvZ2F0ZSByYW5nZSwgdGhlbiBub3RoaW5nIG5lZWRzIHRvIGJlIGRvbmUKKworICAgICAgICAgICAgICAgIC8vIGlmIGJvdGggYXJlID49MHhkODAwIHRoZW4gc3BlY2lhbCBjb2RlIGFkanVzdHMgY29kZSB1bml0CisgICAgICAgICAgICAgICAgLy8gdmFsdWVzIHNvIHRoYXQgYWxsIEJNUCBjb2RlIHBvaW50cyAoaW5jbHVkaW5nIHNpbmdsZQorICAgICAgICAgICAgICAgIC8vIHN1cnJvZ2F0ZSBjb2RlIHBvaW50cykgc29ydCBiZWxvdyBzdXBwbGVtZW50YXJ5IG9uZXMKKworICAgICAgICAgICAgICAgIC8vIHRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2Ugc3Vycm9nYXRlcyBhcmUgbm90IGF0IHRoZSBlbmQgb2YKKyAgICAgICAgICAgICAgICAvLyB0aGUgY29kZSB1bml0IHJhbmdlCisgICAgICAgICAgICAgICAgaWYgKGNhID49IFVURjE2LkxFQURfU1VSUk9HQVRFX01JTl9WQUxVRQorICAgICAgICAgICAgICAgICAgICAmJiBjYiA+PSBVVEYxNi5MRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gc3VidHJhY3QgMHgyODAwIGZyb20gQk1QIGNvZGUgcG9pbnRzIHRvIG1ha2UgdGhlbQorICAgICAgICAgICAgICAgICAgICAvLyBzbWFsbGVyIHRoYW4gc3VwcGxlbWVudGFyeSBvbmVzCisgICAgICAgICAgICAgICAgICAgIGlmICgoY2EgPD0gVVRGMTYuTEVBRF9TVVJST0dBVEVfTUFYX1ZBTFVFICYmIChpICsgMSkgPCBsZW5hCisgICAgICAgICAgICAgICAgICAgICAgICAmJiBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHNhLmNoYXJBdChpICsgMSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgfHwgKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoY2EpICYmIGkgPiAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgVVRGMTYuaXNMZWFkU3Vycm9nYXRlKHNhLmNoYXJBdChpIC0gMSkpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gcGFydCBvZiBhIHN1cnJvZ2F0ZSBwYWlyLCBsZWF2ZSA+PWQ4MDAKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJNUCBjb2RlIHBvaW50IC0gbWF5IGJlIHN1cnJvZ2F0ZSBjb2RlIHBvaW50IC0gbWFrZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gPGQ4MDAKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhIC09IDB4MjgwMDsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGlmICgoY2IgPD0gVVRGMTYuTEVBRF9TVVJST0dBVEVfTUFYX1ZBTFVFICYmIChpICsgMSkgPCBsZW5iCisgICAgICAgICAgICAgICAgICAgICAgICAmJiBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHNiLmNoYXJBdChpICsgMSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgfHwgKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoY2IpICYmIGkgPiAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgVVRGMTYuaXNMZWFkU3Vycm9nYXRlKHNiLmNoYXJBdChpIC0gMSkpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gcGFydCBvZiBhIHN1cnJvZ2F0ZSBwYWlyLCBsZWF2ZSA+PWQ4MDAKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJNUCBjb2RlIHBvaW50IC0gbWF5IGJlIHN1cnJvZ2F0ZSBjb2RlIHBvaW50IC0gbWFrZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gPCBkODAwCisgICAgICAgICAgICAgICAgICAgICAgICBjYiAtPSAweDI4MDA7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBlbmQgb2Ygb25seSBkaWZmZXJlbnQgc2VjdGlvbgorCisgICAgICAgICAgICAgICAgaWYgKGNhIDwgY2IpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHJldHVybiAxOyAvLyB3YXNuJ3QgZXF1YWwsIHNvIHJldHVybiAxCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChsZW5hIDwgbGVuYikgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGxlbmEgPiBsZW5iKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBjYXNlQ29tcGFyZShPYmplY3QgYSwgT2JqZWN0IGIsIGludCBvcHRpb25zKXsKKyAgICAgICAgICAgIGlmIChhID09IGIpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChhID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYiA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTdHJpbmcgc2EgPSAoU3RyaW5nKSBhOworICAgICAgICAgICAgU3RyaW5nIHNiID0gKFN0cmluZykgYjsKKyAgICAgICAgICAgIGludCBsYSA9IHNhLmxlbmd0aCgpOworICAgICAgICAgICAgaW50IGxiID0gc2IubGVuZ3RoKCk7CisgICAgICAgICAgICBpZiggc2EgIT0gc2IgKXsKKyAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gTm9ybWFsaXplckltcGwuY21wRXF1aXZGb2xkKHNhLHNiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zfE5vcm1hbGl6ZXIuQ09NUEFSRV9JR05PUkVfQ0FTRSk7CisgICAgICAgICAgICAgICAgaWYocmVzdWx0IT0wKSB7CisgICAgICAgICAgICAgICAgICByZXR1cm4gKGludCkoKGJ5dGUpKHJlc3VsdCA+PiAyNCB8IDEpKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGlmKGxhICE9IGxiKXsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChpbnQpKChieXRlKSgobGEtbGIpID4+IDI0IHwgMSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorCisJcHVibGljIHZvaWQgVGVzdENvbXBhcmUoKSB7CisKKwkgICAgU3RyaW5nW10gcyA9IG5ldyBTdHJpbmdbMTAwXTsgLy8gYXQgbGVhc3QgYXMgbWFueSBpdGVtcyBhcyBpbiBzdHJpbmdzW10gIQorCisKKyAgICAgICAgVGVtcFtdIG9wdCA9IG5ldyBUZW1wW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBUZW1wKDAsImRlZmF1bHQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFRlbXAoTm9ybWFsaXplci5DT01QQVJFX0NPREVfUE9JTlRfT1JERVIsICJjb2RlIHBvaW50IG9yZGVyIiApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVGVtcChOb3JtYWxpemVyLkNPTVBBUkVfSUdOT1JFX0NBU0UsICJpZ25vcmUgY2FzZSIgKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFRlbXAoTm9ybWFsaXplci5DT01QQVJFX0NPREVfUE9JTlRfT1JERVJ8Tm9ybWFsaXplci5DT01QQVJFX0lHTk9SRV9DQVNFLCAiY29kZSBwb2ludCBvcmRlciAmIGlnbm9yZSBjYXNlIiApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVGVtcChOb3JtYWxpemVyLkNPTVBBUkVfSUdOT1JFX0NBU0V8Tm9ybWFsaXplci5GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0ksICJpZ25vcmUgY2FzZSAmIHNwZWNpYWwgaSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVGVtcChOb3JtYWxpemVyLkNPTVBBUkVfQ09ERV9QT0lOVF9PUkRFUnxOb3JtYWxpemVyLkNPTVBBUkVfSUdOT1JFX0NBU0V8Tm9ybWFsaXplci5GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0ksICJjb2RlIHBvaW50IG9yZGVyICYgaWdub3JlIGNhc2UgJiBzcGVjaWFsIGkiKQorICAgICAgICAgICAgICAgICAgICAgICAgfTsKKworCisKKwkgICAgaW50IGksIGosIGssIGNvdW50PXN0cmluZ3MubGVuZ3RoOworCSAgICBpbnQgcmVzdWx0LCByZWZSZXN1bHQ7CisKKwkgICAgLy8gY3JlYXRlIHRoZSBVbmljb2RlU3RyaW5ncworCSAgICBmb3IoaT0wOyBpPGNvdW50OyArK2kpIHsKKwkgICAgICAgIHNbaV09VXRpbGl0eS51bmVzY2FwZShzdHJpbmdzW2ldKTsKKwkgICAgfQorCSAgICBTdHJpbmdDb21wYXJhdG9yIGNvbXAgPSBuZXcgU3RyaW5nQ29tcGFyYXRvcigpOworCSAgICAvLyB0ZXN0IHRoZW0gZWFjaCB3aXRoIGVhY2ggb3RoZXIKKwkgICAgZm9yKGk9MDsgaTxjb3VudDsgKytpKSB7CisJICAgICAgICBmb3Ioaj1pOyBqPGNvdW50OyArK2opIHsKKwkgICAgICAgICAgICBmb3Ioaz0wOyBrPG9wdC5sZW5ndGg7ICsraykgeworCSAgICAgICAgICAgICAgICAvLyB0ZXN0IE5vcm1hbGl6ZXI6OmNvbXBhcmUKKwkgICAgICAgICAgICAgICAgcmVzdWx0PW5vcm1fY29tcGFyZShzW2ldLCBzW2pdLCBvcHRba10ub3B0aW9ucyk7CisJICAgICAgICAgICAgICAgIHJlZlJlc3VsdD1yZWZfbm9ybV9jb21wYXJlKHNbaV0sIHNbal0sIG9wdFtrXS5vcHRpb25zKTsKKwkgICAgICAgICAgICAgICAgaWYoc2lnbihyZXN1bHQpIT1zaWduKHJlZlJlc3VsdCkpIHsKKwkgICAgICAgICAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyOjpjb21wYXJlKCAiICsgaSArIiwgIitqICsgIiwgIiAraysiKCAiICtvcHRba10ubmFtZSsiKSk9IiArIHJlc3VsdCArIiBzaG91bGQgYmUgc2FtZSBzaWduIGFzICIgKyByZWZSZXN1bHQpOworCSAgICAgICAgICAgICAgICB9CisKKwkgICAgICAgICAgICAgICAgLy8gdGVzdCBVbmljb2RlU3RyaW5nOjpjYXNlQ29tcGFyZSAtIHNhbWUgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24gZnVuY3Rpb24KKwkgICAgICAgICAgICAgICAgIGlmKDAhPShvcHRba10ub3B0aW9ucyZOb3JtYWxpemVyLkNPTVBBUkVfSUdOT1JFX0NBU0UpKSB7CisJICAgICAgICAgICAgICAgIC8vICAgIHJlc3VsdD1zW2ldLiAoc1tqXSwgb3B0W2tdLm9wdGlvbnMpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0PWNvbXAuY2FzZUNvbXBhcmUoc1tpXSxzW2pdLCBvcHRba10ub3B0aW9ucyk7CisJICAgICAgICAgICAgICAgICAgICByZWZSZXN1bHQ9cmVmX2Nhc2VfY29tcGFyZShzW2ldLCBzW2pdLCBvcHRba10ub3B0aW9ucyk7CisJICAgICAgICAgICAgICAgICAgICBpZihzaWduKHJlc3VsdCkhPXNpZ24ocmVmUmVzdWx0KSkgeworCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyOjpjb21wYXJlKCAiICsgaSArIiwgIitqICsgIiwgIitrKyIoICIgK29wdFtrXS5uYW1lKyIpKT0iICsgcmVzdWx0ICsiIHNob3VsZCBiZSBzYW1lIHNpZ24gYXMgIiArIHJlZlJlc3VsdCk7CisgICAgICAgICAgICAgICAgIAkgICAgICAgICAgICAgICAgICAgIH0KKwkgICAgICAgICAgICAgICAgfQorCSAgICAgICAgICAgIH0KKwkgICAgICAgIH0KKwkgICAgfQorCX0KKworICAgIC8vIHZlcmlmeSB0aGF0IGNhc2UtZm9sZGluZyBkb2VzIG5vdCB1bi1GQ0Qgc3RyaW5ncworCWludCBjb3VudEZvbGRGQ0RFeGNlcHRpb25zKGludCBmb2xkaW5nT3B0aW9ucykgeworCSAgICBTdHJpbmcgcywgZDsKKwkgICAgaW50IGM7CisJICAgIGludCBjb3VudDsKKwkgICAgaW50Lyp1bnNpZ25lZCovIGNjLCB0cmFpbENDLCBmb2xkQ0MsIGZvbGRUcmFpbENDOworCSAgICBOb3JtYWxpemVyLlF1aWNrQ2hlY2tSZXN1bHQgcWNSZXN1bHQ7CisJICAgIGludCBjYXRlZ29yeTsKKwkgICAgYm9vbGVhbiBpc05GRDsKKworCisJICAgIGxvZ2xuKCJUZXN0IGlmIGNhc2UgZm9sZGluZyBtYXkgdW4tRkNEIGEgc3RyaW5nIChmb2xkaW5nIG9wdGlvbnMgMHgpIitoZXgoZm9sZGluZ09wdGlvbnMpKTsKKworCSAgICBjb3VudD0wOworCSAgICBmb3IoYz0wOyBjPD0weDEwZmZmZjsgKytjKSB7CisJICAgICAgICBjYXRlZ29yeT1VQ2hhcmFjdGVyLmdldFR5cGUoYyk7CisJICAgICAgICBpZihjYXRlZ29yeT09VUNoYXJhY3RlckNhdGVnb3J5LlVOQVNTSUdORUQpIHsKKwkgICAgICAgICAgICBjb250aW51ZTsgLy8gc2tpcCB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzCisJICAgICAgICB9CisJICAgICAgICBpZihjPT0weGFjMDApIHsKKwkgICAgICAgICAgICBjPTB4ZDdhMzsgLy8gc2tpcCBIYW5ndWwgLSBubyBjYXNlIGZvbGRpbmcgdGhlcmUKKwkgICAgICAgICAgICBjb250aW51ZTsKKwkgICAgICAgIH0KKwkgICAgICAgIC8vIHNraXAgSGFuIGJsb2NrcyAtIG5vIGNhc2UgZm9sZGluZyB0aGVyZSBlaXRoZXIKKwkgICAgICAgIGlmKGM9PTB4MzQwMCkgeworCSAgICAgICAgICAgIGM9MHg0ZGI1OworCSAgICAgICAgICAgIGNvbnRpbnVlOworCSAgICAgICAgfQorCSAgICAgICAgaWYoYz09MHg0ZTAwKSB7CisJICAgICAgICAgICAgYz0weDlmYTU7CisJICAgICAgICAgICAgY29udGludWU7CisJICAgICAgICB9CisJICAgICAgICBpZihjPT0weDIwMDAwKSB7CisJICAgICAgICAgICAgYz0weDJhNmQ2OworCSAgICAgICAgICAgIGNvbnRpbnVlOworCSAgICAgICAgfQorCisJICAgICAgICBzPSBVVEYxNi52YWx1ZU9mKGMpOworCisJICAgICAgICAvLyBnZXQgbGVhZGluZyBhbmQgdHJhaWxpbmcgY2MgZm9yIGMKKwkgICAgICAgIGQ9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKHMsZmFsc2UpOworCSAgICAgICAgaXNORkQ9IHM9PWQ7CisJICAgICAgICBjYz1VQ2hhcmFjdGVyLmdldENvbWJpbmluZ0NsYXNzKFVURjE2LmNoYXJBdChkLDApKTsKKwkgICAgICAgIHRyYWlsQ0M9VUNoYXJhY3Rlci5nZXRDb21iaW5pbmdDbGFzcyhVVEYxNi5jaGFyQXQoZCxkLmxlbmd0aCgpLTEpKTsKKworCSAgICAgICAgLy8gZ2V0IGxlYWRpbmcgYW5kIHRyYWlsaW5nIGNjIGZvciB0aGUgY2FzZS1mb2xkaW5nIG9mIGMKKwkgICAgICAgIFVDaGFyYWN0ZXIuZm9sZENhc2UocywoZm9sZGluZ09wdGlvbnM9PTApKTsKKwkgICAgICAgIGQgPSBOb3JtYWxpemVyLmRlY29tcG9zZShzLCBmYWxzZSk7CisJICAgICAgICBmb2xkQ0M9VUNoYXJhY3Rlci5nZXRDb21iaW5pbmdDbGFzcyhVVEYxNi5jaGFyQXQoZCwwKSk7CisJICAgICAgICBmb2xkVHJhaWxDQz1VQ2hhcmFjdGVyLmdldENvbWJpbmluZ0NsYXNzKFVURjE2LmNoYXJBdChkLGQubGVuZ3RoKCktMSkpOworCisJICAgICAgICBxY1Jlc3VsdD1Ob3JtYWxpemVyLnF1aWNrQ2hlY2socywgTm9ybWFsaXplci5GQ0QpOworCisKKwkgICAgICAgIC8vIGJhZDoKKwkgICAgICAgIC8vIC0gY2hhcmFjdGVyIG1hcHMgdG8gZW1wdHkgc3RyaW5nOiBhZGphY2VudCBjaGFyYWN0ZXJzIG1heSB0aGVuIG5lZWQgcmVvcmRlcmluZworCSAgICAgICAgLy8gLSBmb2xkaW5nIGhhcyBkaWZmZXJlbnQgbGVhZGluZy90cmFpbGluZyBjYydzLCBhbmQgdGhleSBkb24ndCBiZWNvbWUganVzdCAwCisJICAgICAgICAvLyAtIGZvbGRpbmcgaXRzZWxmIGlzIG5vdCBGQ0QKKwkgICAgICAgIGlmKCBxY1Jlc3VsdCE9Tm9ybWFsaXplci5ZRVMgfHwKKwkgICAgICAgICAgICBzLmxlbmd0aCgpPT0wIHx8CisJICAgICAgICAgICAgKGNjIT1mb2xkQ0MgJiYgZm9sZENDIT0wKSB8fCAodHJhaWxDQyE9Zm9sZFRyYWlsQ0MgJiYgZm9sZFRyYWlsQ0MhPTApCisJICAgICAgICApIHsKKwkgICAgICAgICAgICArK2NvdW50OworCSAgICAgICAgICAgIGVycmxuKCJVKyIraGV4KGMpKyI6IGNhc2UtZm9sZGluZyBtYXkgdW4tRkNEIGEgc3RyaW5nIChmb2xkaW5nIG9wdGlvbnMgMHgiK2hleChmb2xkaW5nT3B0aW9ucykrIikiKTsKKwkgICAgICAgICAgICAvL2VycmxuKCIgIGNjICUwMnggdHJhaWxDQyAlMDJ4ICAgIGZvbGRDQyhVKyUwNGx4KSAlMDJ4IGZvbGRUcmFpbENDKFUrJTA0bHgpICUwMnggICBxdWlja0NoZWNrKGZvbGRlZCk9JWQiLCBjYywgdHJhaWxDQywgVVRGMTYuY2hhckF0KGQsMCksIGZvbGRDQywgVVRGMTYuY2hhckF0KGQsZC5sZW5ndGgoKS0xKSwgZm9sZFRyYWlsQ0MsIHFjUmVzdWx0KTsKKwkgICAgICAgICAgICBjb250aW51ZTsKKwkgICAgICAgIH0KKworCSAgICAgICAgLy8gYWxzbyBiYWQ6CisJICAgICAgICAvLyBpZiBhIGNvZGUgcG9pbnQgaXMgaW4gTkZEIGJ1dCBpdHMgY2FzZSBmb2xkaW5nIGlzIG5vdCwgdGhlbgorCSAgICAgICAgLy8gdW5vcm1fY29tcGFyZSB3aWxsIGFsc28gZmFpbAorCSAgICAgICAgaWYoaXNORkQgJiYgTm9ybWFsaXplci5ZRVMhPU5vcm1hbGl6ZXIucXVpY2tDaGVjayhzLCBOb3JtYWxpemVyLk5GRCkpIHsKKwkgICAgICAgICAgICArK2NvdW50OworCSAgICAgICAgICAgIGVycmxuKCJVKyIraGV4KGMpKyI6IGNhc2UtZm9sZGluZyBtYXkgdW4tRkNEIGEgc3RyaW5nIChmb2xkaW5nIG9wdGlvbnMgMHgiK2hleChmb2xkaW5nT3B0aW9ucykrIikiKTsKKwkgICAgICAgIH0KKwkgICAgfQorCisJICAgIGxvZ2xuKCJUaGVyZSBhcmUgIitoZXgoY291bnQpKyIgY29kZSBwb2ludHMgZm9yIHdoaWNoIGNhc2UtZm9sZGluZyBtYXkgdW4tRkNEIGEgc3RyaW5nIChmb2xkaW5nIG9wdGlvbnMiK2ZvbGRpbmdPcHRpb25zKyJ4KSIgKTsKKwkgICAgcmV0dXJuIGNvdW50OworCX0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RGaW5kRm9sZEZDREV4Y2VwdGlvbnMoKSB7CisJICAgIGludCBjb3VudDsKKworCSAgICBjb3VudD1jb3VudEZvbGRGQ0RFeGNlcHRpb25zKDApOworCSAgICBjb3VudCs9Y291bnRGb2xkRkNERXhjZXB0aW9ucyhOb3JtYWxpemVyLkZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSk7CisJICAgIGlmKGNvdW50PjApIHsKKwkgICAgICAgIC8qCisJICAgICAgICAgKiBJZiBjYXNlLWZvbGRpbmcgdW4tRkNEcyBhbnkgc3RyaW5ncywgdGhlbiB1bm9ybV9jb21wYXJlKCkgbXVzdCBiZQorCSAgICAgICAgICogcmUtaW1wbGVtZW50ZWQuCisJICAgICAgICAgKiBJdCBjdXJyZW50bHkgYXNzdW1lcyB0aGF0IG9uZSBjYW4gY2hlY2sgZm9yIEZDRCB0aGVuIGNhc2UtZm9sZAorCSAgICAgICAgICogYW5kIHRoZW4gc3RpbGwgaGF2ZSBGQ0Qgc3RyaW5ncyBmb3IgcmF3IGRlY29tcG9zaXRpb24gd2l0aG91dCByZW9yZGVyaW5nLgorCSAgICAgICAgICovCisJICAgICAgICBlcnJsbigiZXJyb3I6IFRoZXJlIGFyZSAiK2NvdW50KyIgY29kZSBwb2ludHMgZm9yIHdoaWNoIGNhc2UtZm9sZGluZyIrCisJICAgICAgICAgICAgICAiIG1heSB1bi1GQ0QgYSBzdHJpbmcgZm9yIGFsbCBmb2xkaW5nIG9wdGlvbnMuXG4gU2VlIGNvbW1lbnQiKworICAgICAgICAgICAgICAgICAgIiBpbiBCYXNpY05vcm1hbGl6ZXJUZXN0OjpGaW5kRm9sZEZDREV4Y2VwdGlvbnMoKSEiKTsKKwkgICAgfQorCX0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tYmluaW5nTWFya3MoKXsKKyAgICAgICAgU3RyaW5nIHNyYyA9ICJcdTBmNzFcdTBmNzJcdTBmNzNcdTBmNzRcdTBmNzUiOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWQgPSAiXHUwRjcxXHUwRjcxXHUwRjcxXHUwRjcyXHUwRjcyXHUwRjc0XHUwRjc0IjsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKHNyYyxmYWxzZSk7CisgICAgICAgIGlmKCFleHBlY3RlZC5lcXVhbHMocmVzdWx0KSl7CisgICAgICAgICAgICBlcnJsbigiUmVvcmRlcmluZyBvZiBjb21iaW5pbmcgbWFya3MgZmFpbGVkLiBFeHBlY3RlZDogIitVdGlsaXR5LmhleChleHBlY3RlZCkrIiBHb3Q6ICIrIFV0aWxpdHkuaGV4KHJlc3VsdCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBSZS1lbmFibGUgdGhpcyB0ZXN0IHdoZW4gVVRDIGZpeGVzIFVBWCAyMQorICAgIHB1YmxpYyB2b2lkIFRlc3RVQVgyMUZhaWx1cmUoKXsKKyAgICAgICAgZmluYWwgU3RyaW5nW11bXSBjYXNlcyA9IG5ldyBTdHJpbmdbXVtdeworCQkgICAgICAgIHsiXHUwMDYxXHUwMzQ1XHUwMzYwXHUwMzQ1XHUwMDYyIiwgIlx1MDA2MVx1MDM2MFx1MDM0NVx1MDM0NVx1MDA2MiJ9LAorCQkJCXsiXHUwMDYxXHUwMzQ1XHUwMzQ1XHUwMzYwXHUwMDYyIiwgIlx1MDA2MVx1MDM2MFx1MDM0NVx1MDM0NVx1MDA2MiJ9LAorCQkJCXsiXHUwMDYxXHUwMzQ1XHUwMzYwXHUwMzYyXHUwMzYwXHUwMDYyIiwgIlx1MDA2MVx1MDM2Mlx1MDM2MFx1MDM2MFx1MDM0NVx1MDA2MiJ9LAorCQkJCXsiXHUwMDYxXHUwMzYwXHUwMzQ1XHUwMzYwXHUwMzYyXHUwMDYyIiwgIlx1MDA2MVx1MDM2Mlx1MDM2MFx1MDM2MFx1MDM0NVx1MDA2MiJ9LAorCQkJCXsiXHUwMDYxXHUwMzQ1XHUwMzYwXHUwMzYyXHUwMzYxXHUwMDYyIiwgIlx1MDA2MVx1MDM2Mlx1MDM2MFx1MDM2MVx1MDM0NVx1MDA2MiJ9LAorCQkJCXsiXHUwMDYxXHUwMzYxXHUwMzQ1XHUwMzYwXHUwMzYyXHUwMDYyIiwgIlx1MDA2MVx1MDM2Mlx1MDM2MVx1MDM2MFx1MDM0NVx1MDA2MiJ9LAorICAgICAgICB9OworICAgICAgICBmb3IoaW50IGkgPSAwOyBpPCBjYXNlcy5sZW5ndGg7IGkrKyl7CisJICAgICAgICBTdHJpbmcgczEgPWNhc2VzWzBdWzBdOyAKKwkgICAgICAgIFN0cmluZyBzMiA9IGNhc2VzWzBdWzFdOworCSAgICAgICAgaWYoIChOb3JtYWxpemVyLmNvbXBhcmUoczEsczIsTm9ybWFsaXplci5GT0xEX0NBU0VfREVGQVVMVCA9PTApLy9jYXNlIHNlbnNpdGl2ZSBjb21wYXJlCisgICAgICAgICAgICAgICAgJiYKKyAgICAgICAgICAgICAgICAoTm9ybWFsaXplci5jb21wYXJlKHMxLHMyLE5vcm1hbGl6ZXIuQ09NUEFSRV9JR05PUkVfQ0FTRSkhPTApKXsKKwkgICAgICAgICAgICBlcnJsbigiTm9ybWFsaXplci5jb21wYXJlKCkgZmFpbGVkIGZvciBzMTogIiAKKwkgICAgICAgICAgICAgICAgICAgICsgVXRpbGl0eS5oZXgoczEpICsiIHMyOiAiICsgVXRpbGl0eS5oZXgoczIpKTsKKwkgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAqLworCisgICAgcHVibGljIHZvaWQgVGVzdEJ1Z0oyMzI0KCkgeyAKKyAgICAgICAgLyogU3RyaW5nW10gaW5wdXQgPSBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLy8iXHUzMEZEXHUzMDk5IiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MzBGQVx1MzA5QSIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTMwRkJcdTMwOUEiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUzMEZDXHUzMDlBIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MzBGRVx1MzA5QSIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTMwRkRcdTMwOUEiLCAKKyAgICAKKyAgICAgICAgfTsgKi8gCisgICAgICAgIFN0cmluZyB0cm91Ymxlc29tZSA9ICJcdTMwOUEiOyAKKyAgICAgICAgZm9yIChpbnQgaT0weDMwMDA7IGk8MHgzMTAwO2krKykgeyAKKyAgICAgICAgICAgIFN0cmluZyBpbnB1dCA9ICgoY2hhcilpKSt0cm91Ymxlc29tZTsgCisgICAgICAgICAgICB0cnkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IE5vcm1hbGl6ZXIuY29tcG9zZShpbnB1dCxmYWxzZSk7IAorICAgICAgICAgICAgfSBjYXRjaChJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHsgCisgICAgICAgICAgICAgICAgZXJybG4oImNvbXBvc2UoKSBmYWlsZWQgZm9yIGlucHV0OiAiICsgVXRpbGl0eS5oZXgoaW5wdXQpIAorICAgICAgICAgICAgICAgICAgICAgICsgIiBFeGNlcHRpb246ICIgKyBlLnRvU3RyaW5nKCkpOyAKKyAgICAgICAgICAgIH0gCisgICAgICAgIH0gICAgICAgICAgICAgICAgIAorICAgIH0gCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9Db25mb3JtYW5jZVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL0NvbmZvcm1hbmNlVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJmNDJmNmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9Db25mb3JtYW5jZVRlc3QuamF2YQpAQCAtMCwwICsxLDQ2OCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvQ29uZm9ybWFuY2VUZXN0LmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDcvMjUgMjE6MjI6NTQgJCAKKyAqICRSZXZpc2lvbjogMS4xMCAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5ub3JtYWxpemVyOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdFV0aWw7CitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKworcHVibGljIGNsYXNzIENvbmZvcm1hbmNlVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKworICAgIE5vcm1hbGl6ZXIgbm9ybWFsaXplcjsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgQ29uZm9ybWFuY2VUZXN0KCkgeworICAgICAgICAvLyBEb2Vzbid0IG1hdHRlciB3aGF0IHRoZSBzdHJpbmcgYW5kIG1vZGUgYXJlOyB3ZSdsbCBjaGFuZ2UKKyAgICAgICAgLy8gdGhlbSBsYXRlciBhcyBuZWVkZWQuCisgICAgICAgIG5vcm1hbGl6ZXIgPSBuZXcgTm9ybWFsaXplcigiIiwgTm9ybWFsaXplci5ORkMpOworICAgIH0KKyAgICAvLyBtb3JlIGludGVyZXN0aW5nIGNvbmZvcm1hbmNlIHRlc3QgY2FzZXMsIG5vdCBpbiB0aGUgdW5pY29kZS5vcmcgTm9ybWFsaXphdGlvblRlc3QudHh0CisJc3RhdGljICBTdHJpbmdbXSBtb3JlQ2FzZXMgPXsKKwkgICAgLy8gTWFya3VzIDIwMDFhdWczMAorCSAgICAiMDA2MSAwMzMyIDAzMDg7MDBFNCAwMzMyOzAwNjEgMDMzMiAwMzA4OzAwRTQgMDMzMjswMDYxIDAzMzIgMDMwODsgIyBNYXJrdXMgMCIsCisJCisJICAgIC8vIE1hcmt1cyAyMDAxb2N0MjYgLSB0ZXN0IGVkZ2UgY2FzZSBmb3IgaXRlcmF0aW9uOiBVKzBmNzMuY2M9PTAgYnV0IGRlY29tcG9zaXRpb24ubGVhZC5jYz09MTI5CisJICAgICIwMDYxIDAzMDEgMEY3MzswMEUxIDBGNzEgMEY3MjswMDYxIDBGNzEgMEY3MiAwMzAxOzAwRTEgMEY3MSAwRjcyOzAwNjEgMEY3MSAwRjcyIDAzMDE7ICMgTWFya3VzIDEiCisJfTsKKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlIGNvbmZvcm1hbmNlIG9mIE5ld05vcm1hbGl6ZXIgdG8KKyAgICAgKiBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjE1L2NvbmZvcm1hbmNlL0RyYWZ0LVRlc3RTdWl0ZS50eHQuCisgICAgICogVGhpcyBmaWxlIG11c3QgYmUgbG9jYXRlZCBhdCB0aGUgcGF0aCBzcGVjaWZpZWQgYXMgVEVTVF9TVUlURV9GSUxFLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDb25mb3JtYW5jZSgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGlucHV0ID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIGxpbmUgPSBudWxsOworICAgICAgICBTdHJpbmdbXSBmaWVsZHMgPSBuZXcgU3RyaW5nWzVdOworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBpbnQgcGFzc0NvdW50ID0gMDsKKyAgICAgICAgaW50IGZhaWxDb3VudCA9IDA7CisgICAgICAgIFVuaWNvZGVTZXQgb3RoZXIgPSBuZXcgVW5pY29kZVNldCgwLCAweDEwZmZmZik7CisgICAgICAgIGludCBjPTA7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpbnB1dCA9IFRlc3RVdGlsLmdldERhdGFSZWFkZXIoInVuaWNvZGUvTm9ybWFsaXphdGlvblRlc3QudHh0Iik7CisgICAgICAgICAgICBmb3IgKGludCBjb3VudCA9IDA7OysrY291bnQpIHsKKyAgICAgICAgICAgICAgICBsaW5lID0gaW5wdXQucmVhZExpbmUoKTsKKyAgICAgICAgICAgICAgICBpZiAobGluZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIC8vcmVhZCB0aGUgZXh0cmEgdGVzdCBjYXNlcworCSAgICAgICAgICAgICAgICBpZihjb3VudCA+IG1vcmVDYXNlcy5sZW5ndGgpIHsKKwkJICAgICAgICAgICAgICAgIGNvdW50ID0gMDsKKwkJICAgICAgICAgICAgfSBlbHNlIGlmKGNvdW50ID09IG1vcmVDYXNlcy5sZW5ndGgpIHsKKwkJICAgICAgICAgICAgICAgIC8vIGFsbCBkb25lCisJCSAgICAgICAgICAgICAgICBicmVhazsKKwkJICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBsaW5lID0gbW9yZUNhc2VzW2NvdW50KytdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobGluZS5sZW5ndGgoKSA9PSAwKSBjb250aW51ZTsKKworICAgICAgICAgICAgICAgIC8vIEV4cGVjdCA1IGNvbHVtbnMgb2YgdGhpcyBmb3JtYXQ6CisgICAgICAgICAgICAgICAgLy8gMUUwQzsxRTBDOzAwNDQgMDMyMzsxRTBDOzAwNDQgMDMyMzsgIyA8Y29tbWVudHM+CisKKyAgICAgICAgICAgICAgICAvLyBTa2lwIGNvbW1lbnRzCisgICAgICAgICAgICAgICAgaWYgKGxpbmUuY2hhckF0KDApID09ICcjJyAgfHwgbGluZS5jaGFyQXQoMCk9PSdAJykgY29udGludWU7CisKKyAgICAgICAgICAgICAgICAvLyBQYXJzZSBvdXQgdGhlIGZpZWxkcworICAgICAgICAgICAgICAgIGhleHNwbGl0KGxpbmUsICc7JywgZmllbGRzLCBidWYpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIFJlbW92ZSBhIHNpbmdsZSBjb2RlIHBvaW50IGZyb20gdGhlICJvdGhlciIgVW5pY29kZVNldAorCQkgICAgICAgIGlmKGZpZWxkc1swXS5sZW5ndGgoKT09VVRGMTYubW92ZUNvZGVQb2ludE9mZnNldChmaWVsZHNbMF0sMCwgMSkpIHsKKwkJICAgICAgICAgICAgYz1VVEYxNi5jaGFyQXQoZmllbGRzWzBdLDApOyAKKwkJICAgICAgICAgICAgaWYoMHhhYzIwPD1jICYmIGM8PTB4ZDczZikgeworCQkgICAgICAgICAgICAgICAgLy8gbm90IGFuIGV4aGF1c3RpdmUgdGVzdCBydW46IHNraXAgbW9zdCBIYW5ndWwgc3lsbGFibGVzCisJCSAgICAgICAgICAgICAgICBpZihjPT0weGFjMjApIHsKKwkJICAgICAgICAgICAgICAgICAgICBvdGhlci5yZW1vdmUoMHhhYzIwLCAweGQ3M2YpOworCQkgICAgICAgICAgICAgICAgfQorCQkgICAgICAgICAgICAgICAgY29udGludWU7CisJCSAgICAgICAgICAgIH0KKwkJICAgICAgICAgICAgb3RoZXIucmVtb3ZlKGMpOworCQkgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoY2hlY2tDb25mb3JtYW5jZShmaWVsZHMsIGxpbmUpKSB7CisgICAgICAgICAgICAgICAgICAgICsrcGFzc0NvdW50OworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICsrZmFpbENvdW50OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoKGNvdW50ICUgMTAwMCkgPT0gOTk5KSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJMaW5lICIgKyAoY291bnQrMSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgaW5wdXQuY2xvc2UoKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBleDIpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGV4LnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQ291bGRuJ3QgcmVhZCBmaWxlICIKKyAgICAgICAgICAgICAgKyBleC5nZXRDbGFzcygpLmdldE5hbWUoKSArICIgIiArIGV4LmdldE1lc3NhZ2UoKQorICAgICAgICAgICAgICArICIgbGluZSA9ICIgKyBsaW5lCisgICAgICAgICAgICAgICk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZmFpbENvdW50ICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJUb3RhbDogIiArIGZhaWxDb3VudCArICIgbGluZXMgZmFpbGVkLCAiICsKKyAgICAgICAgICAgICAgICAgIHBhc3NDb3VudCArICIgbGluZXMgcGFzc2VkIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2dsbigiVG90YWw6ICIgKyBwYXNzQ291bnQgKyAiIGxpbmVzIHBhc3NlZCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFZlcmlmeSB0aGUgY29uZm9ybWFuY2Ugb2YgdGhlIGdpdmVuIGxpbmUgb2YgdGhlIFVuaWNvZGUKKyAgICAgKiBub3JtYWxpemF0aW9uIChVVFIgMTUpIHRlc3Qgc3VpdGUgZmlsZS4gIEZvciBlYWNoIGxpbmUsCisgICAgICogdGhlcmUgYXJlIGZpdmUgY29sdW1ucywgY29ycmVzcG9uZGluZyB0byBmaWVsZFswXS4uZmllbGRbNF0uCisgICAgICoKKyAgICAgKiBUaGUgZm9sbG93aW5nIGludmFyaWFudHMgbXVzdCBiZSB0cnVlIGZvciBhbGwgY29uZm9ybWFudCBpbXBsZW1lbnRhdGlvbnMKKyAgICAgKiAgYzIgPT0gTkZDKGMxKSA9PSBORkMoYzIpID09IE5GQyhjMykKKyAgICAgKiAgYzMgPT0gTkZEKGMxKSA9PSBORkQoYzIpID09IE5GRChjMykKKyAgICAgKiAgYzQgPT0gTkZLQyhjMSkgPT0gTkZLQyhjMikgPT0gTkZLQyhjMykgPT0gTkZLQyhjNCkgPT0gTkZLQyhjNSkKKyAgICAgKiAgYzUgPT0gTkZLRChjMSkgPT0gTkZLRChjMikgPT0gTkZLRChjMykgPT0gTkZLRChjNCkgPT0gTkZLRChjNSkKKyAgICAgKgorICAgICAqIEBwYXJhbSBmaWVsZCB0aGUgNSBjb2x1bW5zCisgICAgICogQHBhcmFtIGxpbmUgdGhlIHNvdXJjZSBsaW5lIGZyb20gdGhlIHRlc3Qgc3VpdGUgZmlsZQorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgdGVzdCBwYXNzZXMKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gY2hlY2tDb25mb3JtYW5jZShTdHJpbmdbXSBmaWVsZCwgU3RyaW5nIGxpbmUpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIGJvb2xlYW4gcGFzcyA9IHRydWU7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7IC8vIHNjcmF0Y2gKKyAgICAgICAgU3RyaW5nIG91dCxmY2Q7CisgICAgICAgIGludCBpPTA7CisgICAgICAgIGZvciAoaT0wOyBpPDU7ICsraSkgeworICAgICAgICAgICAgaWYgKGk8MykgeworICAgICAgICAgICAgICAgIG91dCA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKGZpZWxkW2ldLCBOb3JtYWxpemVyLk5GQyk7CisgICAgICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiQyIsIGZpZWxkW2ldLCBvdXQsIGZpZWxkWzFdLCAiYzIhPUMoYyIgKyAoaSsxKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgb3V0ID0gaXRlcmF0aXZlTm9ybShmaWVsZFtpXSwgTm9ybWFsaXplci5ORkMsIGJ1ZiwgKzEpOworICAgICAgICAgICAgICAgIHBhc3MgJj0gYXNzZXJ0RXF1YWwoIkMoKzEpIiwgZmllbGRbaV0sIG91dCwgZmllbGRbMV0sICJjMiE9QyhjIiArIChpKzEpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBvdXQgPSBpdGVyYXRpdmVOb3JtKGZpZWxkW2ldLCBOb3JtYWxpemVyLk5GQywgYnVmLCAtMSk7CisgICAgICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiQygtMSkiLCBmaWVsZFtpXSwgb3V0LCBmaWVsZFsxXSwgImMyIT1DKGMiICsgKGkrMSkpOworCisgICAgICAgICAgICAgICAgb3V0ID0gaXRlcmF0aXZlTm9ybShuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoZmllbGRbaV0pLCBOb3JtYWxpemVyLk5GQywgYnVmLCArMSk7CisgICAgICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiQygrMSkiLCBmaWVsZFtpXSwgb3V0LCBmaWVsZFsxXSwgImMyIT1DKGMiICsgKGkrMSkpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG91dCA9IGl0ZXJhdGl2ZU5vcm0obmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGZpZWxkW2ldKSwgTm9ybWFsaXplci5ORkMsIGJ1ZiwgLTEpOworICAgICAgICAgICAgICAgIHBhc3MgJj0gYXNzZXJ0RXF1YWwoIkMoLTEpIiwgZmllbGRbaV0sIG91dCwgZmllbGRbMV0sICJjMiE9QyhjIiArIChpKzEpKTsKKyAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgb3V0ID0gTm9ybWFsaXplci5ub3JtYWxpemUoZmllbGRbaV0sIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgICAgICBwYXNzICY9IGFzc2VydEVxdWFsKCJEIiwgZmllbGRbaV0sIG91dCwgZmllbGRbMl0sICJjMyE9RChjIiArIChpKzEpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBvdXQgPSBpdGVyYXRpdmVOb3JtKGZpZWxkW2ldLCBOb3JtYWxpemVyLk5GRCwgYnVmLCArMSk7CisgICAgICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiRCgrMSkiLCBmaWVsZFtpXSwgb3V0LCBmaWVsZFsyXSwgImMzIT1EKGMiICsgKGkrMSkpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG91dCA9IGl0ZXJhdGl2ZU5vcm0oZmllbGRbaV0sIE5vcm1hbGl6ZXIuTkZELCBidWYsIC0xKTsKKyAgICAgICAgICAgICAgICBwYXNzICY9IGFzc2VydEVxdWFsKCJEKC0xKSIsIGZpZWxkW2ldLCBvdXQsIGZpZWxkWzJdLCAiYzMhPUQoYyIgKyAoaSsxKSk7CisKKyAgICAgICAgICAgICAgICBvdXQgPSBpdGVyYXRpdmVOb3JtKG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihmaWVsZFtpXSksIE5vcm1hbGl6ZXIuTkZELCBidWYsICsxKTsKKyAgICAgICAgICAgICAgICBwYXNzICY9IGFzc2VydEVxdWFsKCJEKCsxKSIsIGZpZWxkW2ldLCBvdXQsIGZpZWxkWzJdLCAiYzMhPUQoYyIgKyAoaSsxKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgb3V0ID0gaXRlcmF0aXZlTm9ybShuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoZmllbGRbaV0pLCBOb3JtYWxpemVyLk5GRCwgYnVmLCAtMSk7CisgICAgICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiRCgtMSkiLCBmaWVsZFtpXSwgb3V0LCBmaWVsZFsyXSwgImMzIT1EKGMiICsgKGkrMSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb3V0ID0gTm9ybWFsaXplci5ub3JtYWxpemUoZmllbGRbaV0sIE5vcm1hbGl6ZXIuTkZLQyk7CisgICAgICAgICAgICBwYXNzICY9IGFzc2VydEVxdWFsKCJLQyIsIGZpZWxkW2ldLCBvdXQsIGZpZWxkWzNdLCAiYzQhPUtDKGMiICsgKGkrMSkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBvdXQgPSBpdGVyYXRpdmVOb3JtKGZpZWxkW2ldLCBOb3JtYWxpemVyLk5GS0MsIGJ1ZiwgKzEpOworICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiS0QoKzEpIiwgZmllbGRbaV0sIG91dCwgZmllbGRbM10sICJjNCE9S0MoYyIgKyAoaSsxKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG91dCA9IGl0ZXJhdGl2ZU5vcm0oZmllbGRbaV0sIE5vcm1hbGl6ZXIuTkZLQywgYnVmLCAtMSk7CisgICAgICAgICAgICBwYXNzICY9IGFzc2VydEVxdWFsKCJLRCgtMSkiLCBmaWVsZFtpXSwgb3V0LCBmaWVsZFszXSwgImM0IT1LQyhjIiArIChpKzEpKTsKKworICAgICAgICAgICAgb3V0ID0gaXRlcmF0aXZlTm9ybShuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoZmllbGRbaV0pLCBOb3JtYWxpemVyLk5GS0MsIGJ1ZiwgKzEpOworICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiS0QoKzEpIiwgZmllbGRbaV0sIG91dCwgZmllbGRbM10sICJjNCE9S0MoYyIgKyAoaSsxKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG91dCA9IGl0ZXJhdGl2ZU5vcm0obmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGZpZWxkW2ldKSwgTm9ybWFsaXplci5ORktDLCBidWYsIC0xKTsKKyAgICAgICAgICAgIHBhc3MgJj0gYXNzZXJ0RXF1YWwoIktEKC0xKSIsIGZpZWxkW2ldLCBvdXQsIGZpZWxkWzNdLCAiYzQhPUtDKGMiICsgKGkrMSkpOworICAgICAgICAgICAgICAKKworICAgICAgICAgICAgb3V0ID0gTm9ybWFsaXplci5ub3JtYWxpemUoZmllbGRbaV0sIE5vcm1hbGl6ZXIuTkZLRCk7CisgICAgICAgICAgICBwYXNzICY9IGFzc2VydEVxdWFsKCJLRCIsIGZpZWxkW2ldLCBvdXQsIGZpZWxkWzRdLCAiYzUhPUtEKGMiICsgKGkrMSkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBvdXQgPSBpdGVyYXRpdmVOb3JtKGZpZWxkW2ldLCBOb3JtYWxpemVyLk5GS0QsIGJ1ZiwgKzEpOworICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiS0QoKzEpIiwgZmllbGRbaV0sIG91dCwgZmllbGRbNF0sICJjNSE9S0QoYyIgKyAoaSsxKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG91dCA9IGl0ZXJhdGl2ZU5vcm0oZmllbGRbaV0sIE5vcm1hbGl6ZXIuTkZLRCwgYnVmLCAtMSk7CisgICAgICAgICAgICBwYXNzICY9IGFzc2VydEVxdWFsKCJLRCgtMSkiLCBmaWVsZFtpXSwgb3V0LCBmaWVsZFs0XSwgImM1IT1LRChjIiArIChpKzEpKTsKKyAgICAgICAgIAorICAgICAgICAgICAgb3V0ID0gaXRlcmF0aXZlTm9ybShuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoZmllbGRbaV0pLCBOb3JtYWxpemVyLk5GS0QsIGJ1ZiwgKzEpOworICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiS0QoKzEpIiwgZmllbGRbaV0sIG91dCwgZmllbGRbNF0sICJjNSE9S0QoYyIgKyAoaSsxKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG91dCA9IGl0ZXJhdGl2ZU5vcm0obmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGZpZWxkW2ldKSwgTm9ybWFsaXplci5ORktELCBidWYsIC0xKTsKKyAgICAgICAgICAgIHBhc3MgJj0gYXNzZXJ0RXF1YWwoIktEKC0xKSIsIGZpZWxkW2ldLCBvdXQsIGZpZWxkWzRdLCAiYzUhPUtEKGMiICsgKGkrMSkpOworICAgICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICBjb21wYXJlKGZpZWxkWzFdLGZpZWxkWzJdKTsKKyAgICAgICAgY29tcGFyZShmaWVsZFswXSxmaWVsZFsxXSk7CisgICAgICAgICAvLyB0ZXN0IHF1aWNrIGNoZWNrcworCSAgICBpZihOb3JtYWxpemVyLk5PID09IE5vcm1hbGl6ZXIucXVpY2tDaGVjayhmaWVsZFsxXSwgTm9ybWFsaXplci5ORkMpKSB7CisJICAgICAgICBlcnJsbigiTm9ybWFsaXplciBlcnJvcjogcXVpY2tDaGVjayhORkMocyksIE5ld05vcm1hbGl6ZXIuTkZDKSBpcyBOZXdOb3JtYWxpemVyLk5PIik7CisJICAgICAgICBwYXNzID0gZmFsc2U7CisJICAgIH0KKwkgICAgaWYoTm9ybWFsaXplci5OTyA9PSBOb3JtYWxpemVyLnF1aWNrQ2hlY2soZmllbGRbMl0sIE5vcm1hbGl6ZXIuTkZEKSkgeworCSAgICAgICAgZXJybG4oIk5vcm1hbGl6ZXIgZXJyb3I6IHF1aWNrQ2hlY2soTkZEKHMpLCBOZXdOb3JtYWxpemVyLk5GRCkgaXMgTmV3Tm9ybWFsaXplci5OTyIpOworCSAgICAgICAgcGFzcyA9IGZhbHNlOworCSAgICB9CisJICAgIGlmKE5vcm1hbGl6ZXIuTk8gPT0gTm9ybWFsaXplci5xdWlja0NoZWNrKGZpZWxkWzNdLCBOb3JtYWxpemVyLk5GS0MpKSB7CisJICAgICAgICBlcnJsbigiTm9ybWFsaXplciBlcnJvcjogcXVpY2tDaGVjayhORktDKHMpLCBOZXdOb3JtYWxpemVyLk5GS0MpIGlzIE5ld05vcm1hbGl6ZXIuTk8iKTsKKwkgICAgICAgIHBhc3MgPSBmYWxzZTsKKwkgICAgfQorCSAgICBpZihOb3JtYWxpemVyLk5PID09IE5vcm1hbGl6ZXIucXVpY2tDaGVjayhmaWVsZFs0XSwgTm9ybWFsaXplci5ORktEKSkgeworCSAgICAgICAgZXJybG4oIk5vcm1hbGl6ZXIgZXJyb3I6IHF1aWNrQ2hlY2soTkZLRChzKSwgTmV3Tm9ybWFsaXplci5ORktEKSBpcyBOZXdOb3JtYWxpemVyLk5PIik7CisJICAgICAgICBwYXNzID0gZmFsc2U7CisJICAgIH0KKwkKKyAgICAgICAgaWYoIU5vcm1hbGl6ZXIuaXNOb3JtYWxpemVkKGZpZWxkWzFdLCBOb3JtYWxpemVyLk5GQykpIHsKKyAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyIGVycm9yOiBpc05vcm1hbGl6ZWQoTkZDKHMpLCBOZXdOb3JtYWxpemVyLk5GQykgaXMgZmFsc2UiKTsKKyAgICAgICAgICAgIHBhc3MgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZighZmllbGRbMF0uZXF1YWxzKGZpZWxkWzFdKSAmJiBOb3JtYWxpemVyLmlzTm9ybWFsaXplZChmaWVsZFswXSwgTm9ybWFsaXplci5ORkMpKSB7CisgICAgICAgICAgICBlcnJsbigiTm9ybWFsaXplciBlcnJvcjogaXNOb3JtYWxpemVkKHMsIE5ld05vcm1hbGl6ZXIuTkZDKSBpcyBUUlVFIik7CisgICAgICAgICAgICBwYXNzID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYoIU5vcm1hbGl6ZXIuaXNOb3JtYWxpemVkKGZpZWxkWzNdLCBOb3JtYWxpemVyLk5GS0MpKSB7CisgICAgICAgICAgICBlcnJsbigiTm9ybWFsaXplciBlcnJvcjogaXNOb3JtYWxpemVkKE5GS0MocyksIE5ld05vcm1hbGl6ZXIuTkZLQykgaXMgZmFsc2UiKTsKKyAgICAgICAgICAgIHBhc3MgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZighZmllbGRbMF0uZXF1YWxzKGZpZWxkWzNdKSAmJiBOb3JtYWxpemVyLmlzTm9ybWFsaXplZChmaWVsZFswXSwgTm9ybWFsaXplci5ORktDKSkgeworICAgICAgICAgICAgZXJybG4oIk5vcm1hbGl6ZXIgZXJyb3I6IGlzTm9ybWFsaXplZChzLCBOZXdOb3JtYWxpemVyLk5GS0MpIGlzIFRSVUUiKTsKKyAgICAgICAgICAgIHBhc3MgPSBmYWxzZTsKKyAgICAgICAgfQorCSAgICAvLyB0ZXN0IGFwaSB0aGF0IHRha2VzIGEgY2hhcltdCisgICAgICAgIGlmKCFOb3JtYWxpemVyLmlzTm9ybWFsaXplZChmaWVsZFsxXS50b0NoYXJBcnJheSgpLDAsZmllbGRbMV0ubGVuZ3RoKCksIE5vcm1hbGl6ZXIuTkZDKSkgeworICAgICAgICAgICAgZXJybG4oIk5vcm1hbGl6ZXIgZXJyb3I6IGlzTm9ybWFsaXplZChORkMocyksIE5ld05vcm1hbGl6ZXIuTkZDKSBpcyBmYWxzZSIpOworICAgICAgICAgICAgcGFzcyA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIC8vIHRlc3QgYXBpIHRoYXQgdGFrZXMgYSBjb2RlcG9pbnQKKyAgICAgICAgaWYoIU5vcm1hbGl6ZXIuaXNOb3JtYWxpemVkKFVURjE2LmNoYXJBdChmaWVsZFsxXSwwKSwgTm9ybWFsaXplci5ORkMpKSB7CisgICAgICAgICAgICBlcnJsbigiTm9ybWFsaXplciBlcnJvcjogaXNOb3JtYWxpemVkKE5GQyhzKSwgTmV3Tm9ybWFsaXplci5ORkMpIGlzIGZhbHNlIik7CisgICAgICAgICAgICBwYXNzID0gZmFsc2U7CisgICAgICAgIH0KKwkgICAgLy8gdGVzdCBGQ0QgcXVpY2sgY2hlY2sgYW5kICJtYWtlRkNEIgorICAgICAgICBmY2Q9Tm9ybWFsaXplci5ub3JtYWxpemUoZmllbGRbMF0sIE5vcm1hbGl6ZXIuRkNEKTsKKwkgICAgaWYoTm9ybWFsaXplci5OTyA9PSBOb3JtYWxpemVyLnF1aWNrQ2hlY2soZmNkLCBOb3JtYWxpemVyLkZDRCkpIHsKKwkgICAgICAgIGVycmxuKCJOb3JtYWxpemVyIGVycm9yOiBxdWlja0NoZWNrKEZDRChzKSwgTmV3Tm9ybWFsaXplci5GQ0QpIGlzIE5ld05vcm1hbGl6ZXIuTk8iKTsKKwkgICAgICAgIHBhc3MgPSBmYWxzZTsKKwkgICAgfQorICAgICAgICBpZihOb3JtYWxpemVyLk5PID09IE5vcm1hbGl6ZXIucXVpY2tDaGVjayhmY2QsIE5vcm1hbGl6ZXIuRkNEKSkgeworICAgICAgICAgICAgZXJybG4oIk5vcm1hbGl6ZXIgZXJyb3I6IHF1aWNrQ2hlY2soRkNEKHMpLCBOZXdOb3JtYWxpemVyLkZDRCkgaXMgTmV3Tm9ybWFsaXplci5OTyIpOworICAgICAgICAgICAgcGFzcyA9IGZhbHNlOworICAgICAgICB9CisJICAgIGlmKE5vcm1hbGl6ZXIuTk8gPT0gTm9ybWFsaXplci5xdWlja0NoZWNrKGZpZWxkWzJdLCBOb3JtYWxpemVyLkZDRCkpIHsKKwkgICAgICAgIGVycmxuKCJOb3JtYWxpemVyIGVycm9yOiBxdWlja0NoZWNrKE5GRChzKSwgTmV3Tm9ybWFsaXplci5GQ0QpIGlzIE5ld05vcm1hbGl6ZXIuTk8iKTsKKwkgICAgICAgIHBhc3MgPSBmYWxzZTsKKwkgICAgfQorCisJICAgIGlmKE5vcm1hbGl6ZXIuTk8gPT0gTm9ybWFsaXplci5xdWlja0NoZWNrKGZpZWxkWzRdLCBOb3JtYWxpemVyLkZDRCkpIHsKKwkgICAgICAgIGVycmxuKCJOb3JtYWxpemVyIGVycm9yOiBxdWlja0NoZWNrKE5GS0QocyksIE5ld05vcm1hbGl6ZXIuRkNEKSBpcyBOZXdOb3JtYWxpemVyLk5PIik7CisJICAgICAgICBwYXNzID0gZmFsc2U7CisJICAgIH0KKyAgICAgICAgCisgICAgICAgIG91dCA9IGl0ZXJhdGl2ZU5vcm0obmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGZpZWxkWzBdKSwgTm9ybWFsaXplci5GQ0QsIGJ1ZiwgKzEpOworICAgICAgICBvdXQgPSBpdGVyYXRpdmVOb3JtKG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihmaWVsZFswXSksIE5vcm1hbGl6ZXIuRkNELCBidWYsIC0xKTsKKyAgICAgICAgCisgICAgICAgIG91dCA9IGl0ZXJhdGl2ZU5vcm0obmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGZpZWxkWzJdKSwgTm9ybWFsaXplci5GQ0QsIGJ1ZiwgKzEpOworICAgICAgICBvdXQgPSBpdGVyYXRpdmVOb3JtKG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihmaWVsZFsyXSksIE5vcm1hbGl6ZXIuRkNELCBidWYsIC0xKTsKKyAgICAgICAgCisgICAgICAgIG91dCA9IGl0ZXJhdGl2ZU5vcm0obmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGZpZWxkWzRdKSwgTm9ybWFsaXplci5GQ0QsIGJ1ZiwgKzEpOworICAgICAgICBvdXQgPSBpdGVyYXRpdmVOb3JtKG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihmaWVsZFs0XSksIE5vcm1hbGl6ZXIuRkNELCBidWYsIC0xKTsKKyAgICAgICAgCisgICAgICAgIG91dD1Ob3JtYWxpemVyLm5vcm1hbGl6ZShmY2QsIE5vcm1hbGl6ZXIuTkZEKTsKKwkgICAgaWYoIW91dC5lcXVhbHMoZmllbGRbMl0pKSB7CisJICAgICAgICBlcnJsbigiTm9ybWFsaXplciBlcnJvcjogTkZEKEZDRChzKSkhPU5GRChzKSIpOworCSAgICAgICAgcGFzcyA9IGZhbHNlOworCSAgICB9ICAgIAorICAgICAgICBpZiAoIXBhc3MpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgbGluZSk7CisgICAgICAgIH0gICAgIAorICAgICAgIAorICAgICAgICByZXR1cm4gcGFzczsKKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGNvbXBhcmUoU3RyaW5nIHMxLCBTdHJpbmcgczIpeworICAgICAgICBpZihzMS5sZW5ndGgoKT09MSAmJiBzMi5sZW5ndGgoKT09MSl7CisgICAgICAgICAgICBpZihOb3JtYWxpemVyLmNvbXBhcmUoVVRGMTYuY2hhckF0KHMxLDApLFVURjE2LmNoYXJBdChzMiwwKSxOb3JtYWxpemVyLkNPTVBBUkVfSUdOT1JFX0NBU0UpIT0wKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiTm9ybWFsaXplci5jb21wYXJlKGludCxpbnQpIGZhaWxlZCBmb3IgczE6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICtVdGlsaXR5LmhleChzMSkgKyAiIHMyOiAiICsgVXRpbGl0eS5oZXgoczIpKTsKKyAgICAgICAgICAgIH0gICAgCisgICAgICAgIH0KKyAgICAgICAgaWYoczEubGVuZ3RoKCk9PTEgJiYgczIubGVuZ3RoKCk+MSl7CisgICAgICAgICAgICBpZihOb3JtYWxpemVyLmNvbXBhcmUoVVRGMTYuY2hhckF0KHMxLDApLHMyLE5vcm1hbGl6ZXIuQ09NUEFSRV9JR05PUkVfQ0FTRSkhPTApeworICAgICAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyLmNvbXBhcmUoaW50LFN0cmluZykgZmFpbGVkIGZvciBzMTogIgorICAgICAgICAgICAgICAgICAgICAgICAgK1V0aWxpdHkuaGV4KHMxKSArICIgczI6ICIgKyBVdGlsaXR5LmhleChzMikpOworICAgICAgICAgICAgfSAgICAKKyAgICAgICAgfQorICAgICAgICBpZihzMS5sZW5ndGgoKT4xICYmIHMyLmxlbmd0aCgpPjEpeworICAgICAgICAgICAgLy8gVE9ETzogUmUtZW5hYmxlIHRoaXMgdGVzdHMgYWZ0ZXIgVVRDIGZpeGVzIFVBWCAyMQorICAgICAgICAgICAgaWYoczEuaW5kZXhPZignXHUwMzQ1Jyk+PTApcmV0dXJuOworICAgICAgICAgICAgaWYoTm9ybWFsaXplci5jb21wYXJlKHMxLnRvQ2hhckFycmF5KCksczIudG9DaGFyQXJyYXkoKSxOb3JtYWxpemVyLkNPTVBBUkVfSUdOT1JFX0NBU0UpIT0wKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiTm9ybWFsaXplci5jb21wYXJlKGNoYXJbXSxjaGFyW10pIGZhaWxlZCBmb3IgczE6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICtVdGlsaXR5LmhleChzMSkgKyAiIHMyOiAiICsgVXRpbGl0eS5oZXgoczIpKTsKKyAgICAgICAgICAgIH0gICAgCisgICAgICAgIH0gICAgCisgICAgfQorICAgIC8qKgorICAgICAqIERvIGEgbm9ybWFsaXphdGlvbiB1c2luZyB0aGUgaXRlcmF0aXZlIEFQSSBpbiB0aGUgZ2l2ZW4gZGlyZWN0aW9uLgorICAgICAqIEBwYXJhbSBidWYgc2NyYXRjaCBidWZmZXIKKyAgICAgKiBAcGFyYW0gZGlyIGVpdGhlciArMSBvciAtMQorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIGl0ZXJhdGl2ZU5vcm0oU3RyaW5nIHN0ciwgTm9ybWFsaXplci5Nb2RlIG1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmLCBpbnQgZGlyKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBub3JtYWxpemVyLnNldFRleHQoc3RyKTsKKyAgICAgICAgbm9ybWFsaXplci5zZXRNb2RlKG1vZGUpOworICAgICAgICBidWYuc2V0TGVuZ3RoKDApOworICAgICAgICAKKyAgICAgICAgaW50IGNoOworICAgICAgICBpZiAoZGlyID4gMCkgeworICAgICAgICAgICAgZm9yIChjaCA9IG5vcm1hbGl6ZXIuZmlyc3QoKTsgY2ggIT0gTm9ybWFsaXplci5ET05FOworICAgICAgICAgICAgICAgICBjaCA9IG5vcm1hbGl6ZXIubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChVVEYxNi50b1N0cmluZyhjaCkpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZm9yIChjaCA9IG5vcm1hbGl6ZXIubGFzdCgpOyBjaCAhPSBOb3JtYWxpemVyLkRPTkU7CisgICAgICAgICAgICAgICAgIGNoID0gbm9ybWFsaXplci5wcmV2aW91cygpKSB7CisgICAgICAgICAgICAgICAgYnVmLmluc2VydCgwLCBVVEYxNi50b1N0cmluZyhjaCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogRG8gYSBub3JtYWxpemF0aW9uIHVzaW5nIHRoZSBpdGVyYXRpdmUgQVBJIGluIHRoZSBnaXZlbiBkaXJlY3Rpb24uCisgICAgICogQHBhcmFtIHN0ciBhIEphdmEgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IKKyAgICAgKiBAcGFyYW0gYnVmIHNjcmF0Y2ggYnVmZmVyCisgICAgICogQHBhcmFtIGRpciBlaXRoZXIgKzEgb3IgLTEKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBpdGVyYXRpdmVOb3JtKFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIHN0ciwgTm9ybWFsaXplci5Nb2RlIG1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmLCBpbnQgZGlyKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBub3JtYWxpemVyLnNldFRleHQoc3RyKTsKKyAgICAgICAgbm9ybWFsaXplci5zZXRNb2RlKG1vZGUpOworICAgICAgICBidWYuc2V0TGVuZ3RoKDApOworICAgICAgICAKKyAgICAgICAgaW50IGNoOworICAgICAgICBpZiAoZGlyID4gMCkgeworICAgICAgICAgICAgZm9yIChjaCA9IG5vcm1hbGl6ZXIuZmlyc3QoKTsgY2ggIT0gTm9ybWFsaXplci5ET05FOworICAgICAgICAgICAgICAgICBjaCA9IG5vcm1hbGl6ZXIubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChVVEYxNi50b1N0cmluZyhjaCkpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZm9yIChjaCA9IG5vcm1hbGl6ZXIubGFzdCgpOyBjaCAhPSBOb3JtYWxpemVyLkRPTkU7CisgICAgICAgICAgICAgICAgIGNoID0gbm9ybWFsaXplci5wcmV2aW91cygpKSB7CisgICAgICAgICAgICAgICAgYnVmLmluc2VydCgwLCBVVEYxNi50b1N0cmluZyhjaCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gb3AgbmFtZSBvZiBub3JtYWxpemF0aW9uIGZvcm0sIGUuZy4sICJLQyIKKyAgICAgKiBAcGFyYW0gcyBzdHJpbmcgYmVpbmcgbm9ybWFsaXplZAorICAgICAqIEBwYXJhbSBnb3QgdmFsdWUgcmVjZWl2ZWQKKyAgICAgKiBAcGFyYW0gZXhwIGV4cGVjdGVkIHZhbHVlCisgICAgICogQHBhcmFtIG1zZyBkZXNjcmlwdGlvbiBvZiB0aGlzIHRlc3QKKyAgICAgKiBAcGFyYW0gcmV0dXJuIHRydWUgaWYgZ290ID09IGV4cAorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBhc3NlcnRFcXVhbChTdHJpbmcgb3AsIFN0cmluZyBzLCBTdHJpbmcgZ290LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZXhwLCBTdHJpbmcgbXNnKSB7CisgICAgICAgIGlmIChleHAuZXF1YWxzKGdvdCkpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGVycmxuKCgiICAgICAgIiArIG1zZyArICIpICIgKyBvcCArICIoIiArIHMgKyAiKT0iICsgaGV4KGdvdCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLCBleHAuICIgKyBoZXgoZXhwKSkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogU3BsaXQgYSBzdHJpbmcgaW50byBwaWVjZXMgYmFzZWQgb24gdGhlIGdpdmVuIGRlbGltaXRlcgorICAgICAqIGNoYXJhY3Rlci4gIFRoZW4sIHBhcnNlIHRoZSByZXN1bHRhbnQgZmllbGRzIGZyb20gaGV4IGludG8KKyAgICAgKiBjaGFyYWN0ZXJzLiAgVGhhdCBpcywgIjAwNDAgMDQwMDswQzAwOzA4OTkiIC0+IG5ldyBTdHJpbmdbXSB7CisgICAgICogIlx1MDA0MFx1MDQwMCIsICJcdTBDMDAiLCAiXHUwODk5IiB9LiAgVGhlIG91dHB1dCBpcyBhc3N1bWVkIHRvCisgICAgICogYmUgb2YgdGhlIHByb3BlciBsZW5ndGggYWxyZWFkeSwgYW5kIGV4YWN0bHkgb3V0cHV0Lmxlbmd0aAorICAgICAqIGZpZWxkcyBhcmUgcGFyc2VkLiAgSWYgdGhlcmUgYXJlIHRvbyBmZXcgYW4gZXhjZXB0aW9uIGlzCisgICAgICogdGhyb3duLiAgSWYgdGhlcmUgYXJlIHRvbyBtYW55IHRoZSBleHRyYXMgYXJlIGlnbm9yZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYnVmIHNjcmF0Y2ggYnVmZmVyCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBoZXhzcGxpdChTdHJpbmcgcywgY2hhciBkZWxpbWl0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdbXSBvdXRwdXQsIFN0cmluZ0J1ZmZlciBidWYpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGludCBwb3MgPSAwOworICAgICAgICBmb3IgKGk9MDsgaTxvdXRwdXQubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGludCBkZWxpbSA9IHMuaW5kZXhPZihkZWxpbWl0ZXIsIHBvcyk7CisgICAgICAgICAgICBpZiAoZGVsaW0gPCAwKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiTWlzc2luZyBmaWVsZCBpbiAiICsgcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBPdXIgZmllbGQgaXMgZnJvbSBwb3MuLmRlbGltLTEuCisgICAgICAgICAgICBidWYuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgdG9IZXggPSBzLnN1YnN0cmluZyhwb3MsZGVsaW0pOworICAgICAgICAgICAgcG9zID0gZGVsaW07CisgICAgICAgICAgICBpbnQgaW5kZXggPSAwOworICAgICAgICAgICAgaW50IGxlbiA9IHRvSGV4Lmxlbmd0aCgpOworICAgICAgICAgICAgd2hpbGUoaW5kZXg8IGxlbil7CisgICAgICAgICAgICAgICAgaWYodG9IZXguY2hhckF0KGluZGV4KT09JyAnKXsKKyAgICAgICAgICAgICAgICAgICAgaW5kZXgrKzsKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgaW50IHNwYWNlUG9zID0gdG9IZXguaW5kZXhPZignICcsIGluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgaWYoc3BhY2VQb3M9PS0xKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZEludChidWYsdG9IZXguc3Vic3RyaW5nKGluZGV4LGxlbikscyk7CisgICAgICAgICAgICAgICAgICAgICAgICBzcGFjZVBvcyA9IGxlbjsKKyAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRJbnQoYnVmLHRvSGV4LnN1YnN0cmluZyhpbmRleCwgc3BhY2VQb3MpLHMpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gc3BhY2VQb3MrMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChidWYubGVuZ3RoKCkgPCAxKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiRW1wdHkgZmllbGQgIiArIGkgKyAiIGluICIgKyBzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG91dHB1dFtpXSA9IGJ1Zi50b1N0cmluZygpOworICAgICAgICAgICAgKytwb3M7IC8vIFNraXAgb3ZlciBkZWxpbQorICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBhcHBlbmRJbnQoU3RyaW5nQnVmZmVyIGJ1ZiwgU3RyaW5nIHN0clRvSGV4LCBTdHJpbmcgcyl7CisgICAgICAgIGludCBoZXggPSBJbnRlZ2VyLnBhcnNlSW50KHN0clRvSGV4LDE2KTsKKyAgICAgICAgaWYgKGhleCA8IDAgKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJPdXQgb2YgcmFuZ2UgaGV4ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGV4ICsgIiBpbiAiICsgcyk7CisgICAgICAgIH1lbHNlIGlmIChoZXggPiAweEZGRkYpeworICAgICAgICAgICAgYnVmLmFwcGVuZCgoY2hhcikoKGhleD4+MTApKzB4ZDdjMCkpOyAKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoKGNoYXIpKChoZXgmMHgzZmYpfDB4ZGMwMCkpOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoKGNoYXIpIGhleCk7CisgICAgICAgIH0KKyAgICB9CisgICAgICAgICAgICAKKyAgICAvLyBTcGVjaWZpYyB0ZXN0cyBmb3IgZGVidWdnaW5nLiAgVGhlc2UgYXJlIGdlbmVyYWxseSBmYWlsdXJlcworICAgIC8vIHRha2VuIGZyb20gdGhlIGNvbmZvcm1hbmNlIGZpbGUsIGJ1dCBjdWxsZWQgb3V0IHRvIG1ha2UKKyAgICAvLyBkZWJ1Z2dpbmcgZWFzaWVyLiAgVGhlc2UgY2FuIGJlIGVsaW1pbmF0ZWQgd2l0aG91dCBhZmZlY3RpbmcKKyAgICAvLyBjb3ZlcmFnZS4KKworICAgIHB1YmxpYyB2b2lkIF9oaWRlVGVzdENhc2U2KCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgX3Rlc3RPbmVMaW5lKCIwMzg1OzAzODU7MDBBOCAwMzAxOzAwMjAgMDMwOCAwMzAxOzAwMjAgMDMwOCAwMzAxOyIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIF90ZXN0T25lTGluZShTdHJpbmcgbGluZSkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgU3RyaW5nW10gZmllbGRzID0gbmV3IFN0cmluZ1s1XTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgLy8gUGFyc2Ugb3V0IHRoZSBmaWVsZHMKKyAgICAgICAgaGV4c3BsaXQobGluZSwgJzsnLCBmaWVsZHMsIGJ1Zik7CisgICAgICAgIGNoZWNrQ29uZm9ybWFuY2UoZmllbGRzLCBsaW5lKTsKKyAgICB9CisgICAgCisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL0V4aGF1c3RpdmVUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9FeGhhdXN0aXZlVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFhNWFkNjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9FeGhhdXN0aXZlVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTQ2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9BdHRpYy9FeGhhdXN0aXZlVGVzdC5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzA2LzIwIDAxOjE2OjI0ICQgCisgKiAkUmV2aXNpb246IDEuMTEgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0Lm5vcm1hbGl6ZXI7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Ob3JtYWxpemVySW1wbDsKKworcHVibGljIGNsYXNzIEV4aGF1c3RpdmVUZXN0IGV4dGVuZHMgVGVzdEZtd2sKK3sKKyAJCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbgorICAgIHsKKyAgICAJU3RyaW5nW10gdGVtcEFyZ3MgPSBuZXcgU3RyaW5nW2FyZ3MubGVuZ3RoXTsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKworICAgICAgICAvLyBBbGxvdyB0aGUgdGVzdCB0byBiZSBwb2ludGVkIGF0IGEgc3BlY2lmaWMgdmVyc2lvbiBvZiB0aGUgVW5pY29kZSBkYXRhYmFzZQorICAgICAgICAvL2ZvciAoaW50IGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykKKyAgICAgICAgLy97CisgICAgICAgIC8vICAgIGlmIChhcmdzW2ldLmVxdWFscygiLWRhdGEiKSkgeworICAgICAgICAvLyAgICAgICAgdGVtcEluZm8gPSBuZXcgVUluZm8oYXJnc1srK2ldLCBhcmdzWysraV0pOworICAgICAgICAvLyAgICB9IGVsc2UgeworICAgICAgICAvLyAgICAgICAgdGVtcEFyZ3NbY291bnQrK10gPSBhcmdzW2ldOworICAgICAgICAvLyAgICB9CisgICAgICAgIC8vfQorCisgICAgICAgIGFyZ3MgPSBuZXcgU3RyaW5nW2NvdW50XTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0ZW1wQXJncywgMCwgYXJncywgMCwgY291bnQpOworCisKKworICAgICAgICBuZXcgRXhoYXVzdGl2ZVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBFeGhhdXN0aXZlVGVzdCgpIHsKKyAgICB9CisKKyAKKworICAgIC8qKgorICAgICAqIFJ1biB0aHJvdWdoIGFsbCBvZiB0aGUgY2hhcmFjdGVycyByZXR1cm5lZCBieSBhIGNvbXBvc2VkLWNoYXIgaXRlcmF0b3IKKyAgICAgKiBhbmQgbWFrZSBzdXJlIHRoYXQ6CisgICAgICogPHVsPgorICAgICAqIDxsaT5hKSBUaGV5IGRvIGluZGVlZCBoYXZlIGRlY29tcG9zaXRpb25zLgorICAgICAqIDxsaT5iKSBUaGUgZGVjb21wb3NpdGlvbiBhY2NvcmRpbmcgdG8gdGhlIGl0ZXJhdG9yIGlzIHRoZSBzYW1lIGFzCisgICAgICogICAgICAgICAgcmV0dXJuZWQgYnkgTm9ybWFsaXplci5kZWNvbXBvc2UoKS4KKyAgICAgKiA8bGk+YykgQWxsIGNoYXJhY3RlcnMgPGVtPm5vdDwvZW0+IHJldHVybmVkIGJ5IHRoZSBpdGVyYXRvciBkbyBub3QKKyAgICAgKiAgICAgICAgICBoYXZlIGRlY29tcG9zaXRpb25zLgorICAgICAqIDwvdWw+CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENvbXBvc2VkQ2hhckl0ZXIoKSB7CisgICAgICAgIGRvVGVzdENvbXBvc2VkQ2hhcnMoZmFsc2UpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGRvVGVzdENvbXBvc2VkQ2hhcnMoYm9vbGVhbiBjb21wYXQpIHsKKyAgICAgICAgaW50IG9wdGlvbnMgPSBOb3JtYWxpemVyLklHTk9SRV9IQU5HVUw7CisgICAgICAgIENvbXBvc2VkQ2hhckl0ZXIgaXRlciA9IG5ldyBDb21wb3NlZENoYXJJdGVyKGNvbXBhdCwgb3B0aW9ucyk7CisKKyAgICAgICAgY2hhciBsYXN0Q2hhciA9IDA7CisKKyAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBjaGFyIGNoID0gaXRlci5uZXh0KCk7CisKKyAgICAgICAgICAgIC8vIFRlc3QgYWxsIGNoYXJhY3RlcnMgYmV0d2VlbiB0aGUgbGFzdCBvbmUgYW5kIHRoaXMgb25lIHRvIG1ha2UKKyAgICAgICAgICAgIC8vIHN1cmUgdGhhdCB0aGV5IGRvbid0IGhhdmUgZGVjb21wb3NpdGlvbnMKKyAgICAgICAgICAgIGFzc2VydE5vRGVjb21wKGxhc3RDaGFyLCBjaCwgY29tcGF0LCBvcHRpb25zKTsKKyAgICAgICAgICAgIGxhc3RDaGFyID0gY2g7CisKKyAgICAgICAgICAgIC8vIE5vdyBtYWtlIHN1cmUgdGhhdCB0aGUgZGVjb21wb3NpdGlvbnMgZm9yIHRoaXMgY2hhcmFjdGVyCisgICAgICAgICAgICAvLyBtYWtlIHNlbnNlCisgICAgICAgICAgICBTdHJpbmcgY2hTdHJpbmcgICA9IG5ldyBTdHJpbmdCdWZmZXIoKS5hcHBlbmQoY2gpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBTdHJpbmcgaXRlckRlY29tcCA9IGl0ZXIuZGVjb21wb3NpdGlvbigpOworICAgICAgICAgICAgU3RyaW5nIG5vcm1EZWNvbXAgPSBOb3JtYWxpemVyLmRlY29tcG9zZShjaFN0cmluZywgY29tcGF0KTsKKworICAgICAgICAgICAgaWYgKGl0ZXJEZWNvbXAuZXF1YWxzKGNoU3RyaW5nKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogIiArIGhleChjaCkgKyAiIGhhcyBpZGVudGljYWwgZGVjb21wIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmICghaXRlckRlY29tcC5lcXVhbHMobm9ybURlY29tcCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IE5vcm1hbGl6ZXIgZGVjb21wIGZvciAiICsgaGV4KGNoKSArICIgKCIgKyBoZXgobm9ybURlY29tcCkgKyAiKSIKKyAgICAgICAgICAgICAgICAgICAgKyAiICE9IGl0ZXIgZGVjb21wICgiICsgaGV4KGl0ZXJEZWNvbXApICsgIikiICk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgYXNzZXJ0Tm9EZWNvbXAobGFzdENoYXIsICdcdUZGRkYnLCBjb21wYXQsIG9wdGlvbnMpOworICAgIH0KKworICAgIHZvaWQgYXNzZXJ0Tm9EZWNvbXAoY2hhciBzdGFydCwgY2hhciBsaW1pdCwgYm9vbGVhbiBjb21wYXQsIGludCBvcHRpb25zKQorICAgIHsKKyAgICAgICAgZm9yIChjaGFyIHggPSArK3N0YXJ0OyB4IDwgbGltaXQ7IHgrKykgeworICAgICAgICAgICAgU3RyaW5nIHhTdHJpbmcgICA9IG5ldyBTdHJpbmdCdWZmZXIoKS5hcHBlbmQoeCkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIFN0cmluZyBkZWNvbXAgPSBOb3JtYWxpemVyLmRlY29tcG9zZSh4U3RyaW5nLCBjb21wYXQpOworICAgICAgICAgICAgaWYgKCFkZWNvbXAuZXF1YWxzKHhTdHJpbmcpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiAiICsgaGV4KHgpICsgIiBoYXMgZGVjb21wb3NpdGlvbiAoIiArIGhleChkZWNvbXApICsgIikiCisgICAgICAgICAgICAgICAgICAgICsgIiBidXQgd2FzIG5vdCByZXR1cm5lZCBieSBpdGVyYXRvciIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Um91bmRUcmlwKCkgeworICAgICAgICBpbnQgb3B0aW9ucyA9IE5vcm1hbGl6ZXIuSUdOT1JFX0hBTkdVTDsKKyAgICAgICAgYm9vbGVhbiBjb21wYXQgPSBmYWxzZTsKKworICAgICAgICBDb21wb3NlZENoYXJJdGVyIGl0ZXIgPSBuZXcgQ29tcG9zZWRDaGFySXRlcihmYWxzZSwgb3B0aW9ucyk7CisgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgY2hhciBjaCA9IGl0ZXIubmV4dCgpOworCisgICAgICAgICAgICBTdHJpbmcgY2hTdHIgPSBuZXcgU3RyaW5nQnVmZmVyKCkuYXBwZW5kKGNoKS50b1N0cmluZygpOworICAgICAgICAgICAgU3RyaW5nIGRlY29tcCA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKGNoU3RyLCBjb21wYXQpOworICAgICAgICAgICAgU3RyaW5nIGNvbXAgPSBOb3JtYWxpemVyLmNvbXBvc2UoZGVjb21wLCBjb21wYXQpOworCisgICAgICAgICAgICBpbnQgY0NsYXNzID0gVUNoYXJhY3Rlci5nZXRDb21iaW5pbmdDbGFzcyhkZWNvbXAuY2hhckF0KDApKTsKKyAgICAgICAgICAgIGNDbGFzcyA9IDA7CisKKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVySW1wbC5pc0Z1bGxDb21wb3NpdGlvbkV4Y2x1c2lvbihjaCkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiU2tpcHBlZCBleGNsdWRlZCBjaGFyICIgKyBoZXgoY2gpICsgIiAoIiArIFVDaGFyYWN0ZXIuZ2V0TmFtZShjaCkgKyAiKSIgKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gQXZvaWQgZGlzcGFyYWdlZCBjaGFyYWN0ZXJzCisgICAgICAgICAgICBpZiAoZ2V0RGVjb21wb3NpdGlvbihjaCxjb21wYXQpLmxlbmd0aCgpID09IDQpIGNvbnRpbnVlOworCisgICAgICAgICAgICBpZiAoIWNvbXAuZXF1YWxzKGNoU3RyKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogUm91bmQgdHJpcCBpbnZhbGlkOiAiICsgaGV4KGNoU3RyKSArICIgLS0+ICIgKyBoZXgoZGVjb21wKQorICAgICAgICAgICAgICAgICAgICArICIgLS0+ICIgKyBoZXgoY29tcCkpOworCisgICAgICAgICAgICAgICAgZXJybG4oIiAgY2hhciBkZWNvbXAgaXMgJyIgKyBnZXREZWNvbXBvc2l0aW9uKGNoLGNvbXBhdCkgKyAiJyIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgU3RyaW5nIGdldERlY29tcG9zaXRpb24oY2hhciBjaCwgYm9vbGVhbiBjb21wYXQpeworICAgICAgICBjaGFyW10gZGVzdCA9IG5ldyBjaGFyWzEwXTsgICAKKyAgICAgICAgaW50IGxlbmd0aCA9IE5vcm1hbGl6ZXJJbXBsLmdldERlY29tcG9zaXRpb24oY2gsY29tcGF0LGRlc3QsMCxkZXN0Lmxlbmd0aCk7ICAgCisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGRlc3QsMCxsZW5ndGgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL1Rlc3RDYW5vbmljYWxJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvVGVzdENhbm9uaWNhbEl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmQzNGEyMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL1Rlc3RDYW5vbmljYWxJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMjQ2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9UZXN0Q2Fub25pY2FsSXRlcmF0b3IuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wNi8yMCAwMToxNjoyNCAkIAorICogJFJldmlzaW9uOiAxLjggJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0Lm5vcm1hbGl6ZXI7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnRleHQuU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLio7CisKKy8vIFRPRE86IGZpdCBpbnRvIHRlc3QgZnJhbWV3b3JrCisKK3B1YmxpYyBjbGFzcyBUZXN0Q2Fub25pY2FsSXRlcmF0b3IgZXh0ZW5kcyBUZXN0Rm13ayB7CisJCisgICAgc3RhdGljIGZpbmFsIGJvb2xlYW4gU0hPV19OQU1FUyA9IGZhbHNlOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBUZXN0Q2Fub25pY2FsSXRlcmF0b3IoKS5ydW4oYXJncyk7CisgICAgfQorCQorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgdGVzdEFycmF5W11bXSA9IHsKKyAgICAgICAgeyLFZFx1MDMwN1x1MDMyNyIsICJBXHUwMzBBZFx1MDMwN1x1MDMyNywgQVx1MDMwQWRcdTAzMjdcdTAzMDcsIEFcdTAzMEFcdTFFMEJcdTAzMjcsICIKKyAgICAgICAgCSsgIkFcdTAzMEFcdTFFMTFcdTAzMDcsIFx1MDBDNWRcdTAzMDdcdTAzMjcsIFx1MDBDNWRcdTAzMjdcdTAzMDcsICIKKyAgICAgICAgCSsgIlx1MDBDNVx1MUUwQlx1MDMyNywgXHUwMEM1XHUxRTExXHUwMzA3LCBcdTIxMkJkXHUwMzA3XHUwMzI3LCAiCisgICAgICAgIAkrICJcdTIxMkJkXHUwMzI3XHUwMzA3LCBcdTIxMkJcdTFFMEJcdTAzMjcsIFx1MjEyQlx1MUUxMVx1MDMwNyJ9LAorICAgICAgICB7Ilx1MDEwZFx1MDE3RSIsICJjXHUwMzBDelx1MDMwQywgY1x1MDMwQ1x1MDE3RSwgXHUwMTBEelx1MDMwQywgXHUwMTBEXHUwMTdFIn0sCisgICAgICAgIHsieFx1MDMwN1x1MDMyNyIsICJ4XHUwMzA3XHUwMzI3LCB4XHUwMzI3XHUwMzA3LCBcdTFFOEJcdTAzMjcifSwKKyAgICB9OworICAgIAorICAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0RXhoYXVzdGl2ZSgpIHsKKyAgICAJaW50IGNvdW50ZXIgPSAwOworICAgIAlpbnQgbWl4ZWRDb3VudGVyID0gMDsKKyAgICAJaW50IGxhc3RNaXhlZENvdW50ZXIgPSAtMTsKKyAgICAJQ2Fub25pY2FsSXRlcmF0b3IgaXQgPSBuZXcgQ2Fub25pY2FsSXRlcmF0b3IoIiIpOworICAgIAkvKgorICAgIAlDYW5vbmljYWxJdGVyYXRvciBzbG93SXQgPSBuZXcgQ2Fub25pY2FsSXRlcmF0b3IoIiIpOworICAgIAlzbG93SXQuU0tJUF9aRVJPUyA9IGZhbHNlOworICAgIAkqLworICAgIAlUcmFuc2xpdGVyYXRvciBuYW1lID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIlteXFx1MDAyMC1cXHUwMDdGXSBuYW1lIik7CisgICAgCVNldCBpdFNldCA9IG5ldyBUcmVlU2V0KCk7CisgICAgCVNldCBzbG93SXRTZXQgPSBuZXcgVHJlZVNldCgpOworICAgIAkKKyAgICAJCisgICAgCWZvciAoaW50IGkgPSAwOyBpIDwgMHgxMEZGRkY7ICsraSkgeworICAgIAkJCisgICAgCQkvLyBza2lwIGNoYXJhY3RlcnMgd2Uga25vdyBkb24ndCBoYXZlIGRlY29tcHMKKyAgICAJCWludCB0eXBlID0gVUNoYXJhY3Rlci5nZXRUeXBlKGkpOworICAgIAkJaWYgKHR5cGUgPT0gQ2hhcmFjdGVyLlVOQVNTSUdORUQgfHwgdHlwZSA9PSBDaGFyYWN0ZXIuUFJJVkFURV9VU0UKKyAgICAJCQl8fCB0eXBlID09IENoYXJhY3Rlci5TVVJST0dBVEUpIGNvbnRpbnVlOworICAgIAkJCQorICAgIAkJaWYgKCgrK2NvdW50ZXIgJSA1MDAwKSA9PSAwKSBsb2dsbigiVGVzdGluZyAiICsgVXRpbGl0eS5oZXgoaSwwKSk7CisgICAgCQkKKyAgICAJCVN0cmluZyBzID0gVVRGMTYudmFsdWVPZihpKSArICJcdTAzNDUiOworICAgIAkJU3RyaW5nIGRlY29tcCA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKHMsIGZhbHNlKTsKKyAgICAJCVN0cmluZyBjb21wID0gTm9ybWFsaXplci5jb21wb3NlKHMsIGZhbHNlKTsKKyAgICAJCS8vIHNraXAgY2hhcmFjdGVycyB0aGF0IGRvbid0IGhhdmUgZWl0aGVyIGRlY29tcC4KKyAgICAJCS8vIG5lZWQgcXVpY2sgdGVzdCBmb3IgdGhpcyEKKyAgICAJCWlmIChzLmVxdWFscyhkZWNvbXApICYmIHMuZXF1YWxzKGNvbXApKSBjb250aW51ZTsKKyAgICAJCQorICAgIAkJaXQuc2V0U291cmNlKHMpOworICAgIAkJYm9vbGVhbiBnb3REZWNvbXAgPSBmYWxzZTsKKyAgICAJCWJvb2xlYW4gZ290Q29tcCA9IGZhbHNlOworICAgIAkJYm9vbGVhbiBnb3RTb3VyY2UgPSBmYWxzZTsKKyAgICAJCXdoaWxlICh0cnVlKSB7CisgICAgCQkJU3RyaW5nIGl0ZW0gPSBpdC5uZXh0KCk7CisgICAgCQkJaWYgKGl0ZW0gPT0gbnVsbCkgYnJlYWs7CisgICAgCQkJaWYgKGl0ZW0uZXF1YWxzKHMpKSBnb3RTb3VyY2UgPSB0cnVlOworICAgIAkJCWlmIChpdGVtLmVxdWFscyhkZWNvbXApKSBnb3REZWNvbXAgPSB0cnVlOworICAgIAkJCWlmIChpdGVtLmVxdWFscyhjb21wKSkgZ290Q29tcCA9IHRydWU7CisgICAgCQkJaWYgKChtaXhlZENvdW50ZXIgJiAweDdGKSA9PSAwICYmIChpIDwgMHhBRDAwIHx8IGkgPiAweEFDMDAgKyAxMTE3MikpIHsKKyAgICAJCQkJaWYgKGxhc3RNaXhlZENvdW50ZXIgIT0gbWl4ZWRDb3VudGVyKSB7CisgICAgCQkJCQlsb2dsbigiIik7CisgICAgCQkJCQlsYXN0TWl4ZWRDb3VudGVyID0gbWl4ZWRDb3VudGVyOworICAgIAkJCQl9CisgICAgCQkJCWxvZ2xuKCJcdCIgKyBtaXhlZENvdW50ZXIgKyAiXHQiICsgbmFtZS50cmFuc2xpdGVyYXRlKGl0ZW0pCisgICAgCQkJCSsgKGl0ZW0uZXF1YWxzKHMpID8gIlx0KCpvcmlnaW5hbCopIiA6ICIiKQorICAgIAkJCQkrIChpdGVtLmVxdWFscyhkZWNvbXApID8gIlx0KCpkZWNvbXAqKSIgOiAiIikKKyAgICAJCQkJKyAoaXRlbS5lcXVhbHMoY29tcCkgPyAiXHQoKmNvbXAqKSIgOiAiIikKKyAgICAJCQkJKTsKKyAgICAJCQl9CisgICAgCQl9CisgICAgCQkKKyAgICAJCS8vIGNoZWNrIHRoYXQgemVyb3Mgb3B0aW1pemF0aW9uIGRvZXNuJ3QgbWVzcyB1cC4KKyAgICAJCS8qCisgICAgCQlpZiAodHJ1ZSkgeworICAgIAkJCWl0LnJlc2V0KCk7CisgICAgCQkJaXRTZXQuY2xlYXIoKTsKKyAgICAJCQl3aGlsZSAodHJ1ZSkgeworICAgIAkJCQlTdHJpbmcgaXRlbSA9IGl0Lm5leHQoKTsKKyAgICAJCQkJaWYgKGl0ZW0gPT0gbnVsbCkgYnJlYWs7CisgICAgCQkJCWl0U2V0LmFkZChpdGVtKTsKKyAgICAJCQl9CisgICAgCQkJc2xvd0l0LnNldFNvdXJjZShzKTsKKyAgICAJCQlzbG93SXRTZXQuY2xlYXIoKTsKKyAgICAJCQl3aGlsZSAodHJ1ZSkgeworICAgIAkJCQlTdHJpbmcgaXRlbSA9IHNsb3dJdC5uZXh0KCk7CisgICAgCQkJCWlmIChpdGVtID09IG51bGwpIGJyZWFrOworICAgIAkJCQlzbG93SXRTZXQuYWRkKGl0ZW0pOworICAgIAkJCX0KKyAgICAJCQlpZiAoIWl0U2V0LmVxdWFscyhzbG93SXRTZXQpKSB7CisgICAgCQkJCWVycmxuKCJaZXJvIG9wdGltaXphdGlvbiBmYWlsdXJlIHdpdGggIiArIGdldFJlYWRhYmxlKHMpKTsKKyAgICAJCQl9CisgICAgCQl9CisgICAgCQkqLworICAgIAkJCisgICAgCQltaXhlZENvdW50ZXIrKzsKKyAgICAJCWlmICghZ290U291cmNlIHx8ICFnb3REZWNvbXAgfHwgIWdvdENvbXApIHsKKyAgICAJCQllcnJsbigiRkFJTCBDYW5vbmljYWxJdGVyYXRvcjogIiArIHMpOworICAgIAkJfQorICAgIAl9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBpbnQgVGVzdFNwZWVkKCkgeworICAgICAgICAgLy8gc2tpcCB1bmxlc3MgdmVyYm9zZQorICAgICAgICBpZiAoIWlzVmVyYm9zZSgpKSByZXR1cm4gMDsKKworICAgCQlTdHJpbmcgcyA9ICJcdUFDMDFcdTAzNDUiOworICAgCQkKKyAgICAJQ2Fub25pY2FsSXRlcmF0b3IgaXQgPSBuZXcgQ2Fub25pY2FsSXRlcmF0b3Iocyk7CisgICAgCWRvdWJsZSBzdGFydCwgZW5kOworICAgIAlpbnQgeCA9IDA7IC8vIGp1c3QgdG8ga2VlcCBjb2RlIGZyb20gb3B0aW1pemluZyBhd2F5LgorICAgIAlpbnQgaXRlcmF0aW9ucyA9IDEwMDAwOworICAgIAlkb3VibGUgc2xvd0RlbHRhID0gMDsKKyAgICAJCisgICAgCS8qCisgICAgCUNhbm9uaWNhbEl0ZXJhdG9yIHNsb3dJdCA9IG5ldyBDYW5vbmljYWxJdGVyYXRvcihzKTsKKyAgICAJc2xvd0l0LlNLSVBfWkVST1MgPSBmYWxzZTsKKworICAgIAlzdGFydCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgIAlmb3IgKGludCBpID0gMDsgaSA8IGl0ZXJhdGlvbnM7ICsraSkgeworICAgIAkJc2xvd0l0LnNldFNvdXJjZShzKTsKKyAgICAJCXdoaWxlICh0cnVlKSB7CisgICAgCQkJU3RyaW5nIGl0ZW0gPSBzbG93SXQubmV4dCgpOworICAgIAkJCWlmIChpdGVtID09IG51bGwpIGJyZWFrOworICAgIAkJCXggKz0gaXRlbS5sZW5ndGgoKTsKKyAgICAJCX0KKyAgICAJfQorICAgIAllbmQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAJZG91YmxlIHNsb3dEZWx0YSA9IChlbmQtc3RhcnQpIC8gaXRlcmF0aW9uczsKKyAgICAJbG9nbG4oIlNsb3cgaXRlcmF0aW9uOiAiICsgc2xvd0RlbHRhKTsKKyAgICAJKi8KKworICAgIAlzdGFydCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgIAlmb3IgKGludCBpID0gMDsgaSA8IGl0ZXJhdGlvbnM7ICsraSkgeworICAgIAkJaXQuc2V0U291cmNlKHMpOworICAgIAkJd2hpbGUgKHRydWUpIHsKKyAgICAJCQlTdHJpbmcgaXRlbSA9IGl0Lm5leHQoKTsKKyAgICAJCQlpZiAoaXRlbSA9PSBudWxsKSBicmVhazsKKyAgICAJCQl4ICs9IGl0ZW0ubGVuZ3RoKCk7CisgICAgCQl9CisgICAgCX0KKyAgICAJZW5kID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgCWRvdWJsZSBmYXN0RGVsdGEgPSAoZW5kLXN0YXJ0KSAvIGl0ZXJhdGlvbnM7CisgICAgCWxvZ2xuKCJGYXN0IGl0ZXJhdGlvbjogIiArIGZhc3REZWx0YSArIChzbG93RGVsdGEgIT0gMCA/ICIsICIgKyAoZmFzdERlbHRhL3Nsb3dEZWx0YSkgOiAiIikpOworICAgIAkKKyAgICAJCisgICAgCXJldHVybiB4OworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0QmFzaWMoKSB7CisvLyAgICAgIFRoaXMgaXMgbm90IGludGVyZXN0aW5nIGFueW1vcmUgYXMgdGhlIGRhdGEgaXMgYWxyZWFkeSBidWlsdCAKKy8vICAgICAgYmVmb3JlaGFuZAorCisvLyAgICAgICAgY2hlY2sgYnVpbGQKKy8vICAgICAgICBVbmljb2RlU2V0IHNzID0gQ2Fub25pY2FsSXRlcmF0b3IuZ2V0U2FmZVN0YXJ0KCk7CisvLyAgICAgICAgbG9nbG4oIlNhZmUgU3RhcnQ6ICIgKyBzcy50b1BhdHRlcm4odHJ1ZSkpOworLy8gICAgICAgIHNzID0gQ2Fub25pY2FsSXRlcmF0b3IuZ2V0U3RhcnRzKCdhJyk7CisvLyAgICAgICAgZXhwZWN0RXF1YWwoIkNoYXJhY3RlcnMgd2l0aCAnYScgYXQgdGhlIHN0YXJ0IG9mIHRoZWlyIGRlY29tcG9zaXRpb246ICIsICIiLCBDYW5vbmljYWxJdGVyYXRvci5nZXRTdGFydHMoJ2EnKSwKKy8vICAgICAgICAJbmV3IFVuaWNvZGVTZXQoIltcdTAwRTAtXHUwMEU1XHUwMTAxXHUwMTAzXHUwMTA1XHUwMUNFXHUwMURGXHUwMUUxXHUwMUZCIgorLy8gICAgICAgIAkrICJcdTAyMDFcdTAyMDNcdTAyMjdcdTFFMDFcdTFFQTFcdTFFQTNcdTFFQTVcdTFFQTdcdTFFQTlcdTFFQUJcdTFFQURcdTFFQUZcdTFFQjFcdTFFQjNcdTFFQjVcdTFFQjddIikKKy8vICAgICAgICAJCSk7CisgICAgICAgIAorICAgICAgICAvLyBjaGVjayBwZXJtdXRlCisgICAgICAgIC8vIE5PVEU6IHdlIHVzZSBhIFRyZWVTZXQgYmVsb3cgdG8gc29ydCB0aGUgb3V0cHV0LCB3aGljaCBpcyBub3QgZ3VhcmFudGVlZCB0byBiZSBzb3J0ZWQhCisgICAgICAgIAorICAgICAgICBTZXQgcmVzdWx0cyA9IG5ldyBUcmVlU2V0KCk7CisgICAgICAgIENhbm9uaWNhbEl0ZXJhdG9yLnBlcm11dGUoIkFCQyIsIGZhbHNlLCByZXN1bHRzKTsKKyAgICAgICAgZXhwZWN0RXF1YWwoIlNpbXBsZSBwZXJtdXRhdGlvbiAiLCAiIiwgY29sbGVjdGlvblRvU3RyaW5nKHJlc3VsdHMpLCAiQUJDLCBBQ0IsIEJBQywgQkNBLCBDQUIsIENCQSIpOworICAgICAgICAKKyAgICAgICAgLy8gdHJ5IHNhbXBsZXMKKyAgICAgICAgU29ydGVkU2V0IHNldCA9IG5ldyBUcmVlU2V0KCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdEFycmF5Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAvL2xvZ2xuKCJSZXN1bHRzIGZvcjogIiArIG5hbWUudHJhbnNsaXRlcmF0ZSh0ZXN0QXJyYXlbaV0pKTsKKyAgICAgICAgICAgIENhbm9uaWNhbEl0ZXJhdG9yIGl0ID0gbmV3IENhbm9uaWNhbEl0ZXJhdG9yKHRlc3RBcnJheVtpXVswXSk7CisgICAgICAgICAgICBpbnQgY291bnRlciA9IDA7CisgICAgICAgICAgICBzZXQuY2xlYXIoKTsKKyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIGJyZWFrOworICAgICAgICAgICAgICAgIHNldC5hZGQocmVzdWx0KTsgLy8gc29ydCB0aGVtCisgICAgICAgICAgICAgICAgLy9sb2dsbigrK2NvdW50ZXIgKyAiOiAiICsgaGV4LnRyYW5zbGl0ZXJhdGUocmVzdWx0KSk7CisgICAgICAgICAgICAgICAgLy9sb2dsbigiID0gIiArIG5hbWUudHJhbnNsaXRlcmF0ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGV4cGVjdEVxdWFsKGkgKyAiOiAiLCB0ZXN0QXJyYXlbaV1bMF0sIGNvbGxlY3Rpb25Ub1N0cmluZyhzZXQpLCB0ZXN0QXJyYXlbaV1bMV0pOworCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgZXhwZWN0RXF1YWwoU3RyaW5nIG1lc3NhZ2UsIFN0cmluZyBpdGVtLCBPYmplY3QgYSwgT2JqZWN0IGIpIHsKKyAgICAJaWYgKCFhLmVxdWFscyhiKSkgeworICAgIAkJZXJybG4oIkZBSUw6ICIgKyBtZXNzYWdlICsgZ2V0UmVhZGFibGUoaXRlbSkpOworICAgIAkJZXJybG4oIlx0IiArIGdldFJlYWRhYmxlKGEpKTsKKyAgICAJCWVycmxuKCJcdCIgKyBnZXRSZWFkYWJsZShiKSk7CisgICAgCX0gZWxzZSB7CisgICAgCQlsb2dsbigiQ2hlY2tlZDogIiArIG1lc3NhZ2UgKyBnZXRSZWFkYWJsZShpdGVtKSk7CisgICAgCQlsb2dsbigiXHQiICsgZ2V0UmVhZGFibGUoYSkpOworICAgIAkJbG9nbG4oIlx0IiArIGdldFJlYWRhYmxlKGIpKTsKKyAgICAJfQorICAgIH0KKyAgICAKKyAgICBUcmFuc2xpdGVyYXRvciBuYW1lID0gbnVsbDsKKyAgICBUcmFuc2xpdGVyYXRvciBoZXggPSBudWxsOworICAgICAgICAKKyAgICBwdWJsaWMgU3RyaW5nIGdldFJlYWRhYmxlKE9iamVjdCBvYmopIHsKKyAgICAJaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gIm51bGwiOworICAgIAlTdHJpbmcgcyA9IG9iai50b1N0cmluZygpOworICAgIAlpZiAocy5sZW5ndGgoKSA9PSAwKSByZXR1cm4gIiI7CisgICAgICAgIC8vIHNldCB1cCBmb3IgcmVhZGFibGUgZGlzcGxheQorICAgICAgICBpZiAobmFtZSA9PSBudWxsKSBuYW1lID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIlteXFwgLVxcdTAwN0ZdIG5hbWUiKTsKKyAgICAgICAgaWYgKGhleCA9PSBudWxsKSBoZXggPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiW15cXCAtXFx1MDA3Rl0gaGV4Iik7CisgICAgICAgIHJldHVybiAiWyIgKyAoU0hPV19OQU1FUyA/IG5hbWUudHJhbnNsaXRlcmF0ZShzKSArICI7ICIgOiAiIikgKyBoZXgudHJhbnNsaXRlcmF0ZShzKSArICJdIjsKKyAgICB9CisgICAgCisgICAgc3RhdGljIFN0cmluZyBjb2xsZWN0aW9uVG9TdHJpbmcoQ29sbGVjdGlvbiBjb2wpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgSXRlcmF0b3IgaXQgPSBjb2wuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGgoKSAhPSAwKSByZXN1bHQuYXBwZW5kKCIsICIpOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChpdC5uZXh0KCkudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTAxMGE4MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKyAgJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvcGFja2FnZS5odG1sLHYgJAorICAkUmV2aXNpb246IDEuMSAkCisgICREYXRlOiAyMDAwLzAzLzE1IDIxOjM1OjQ5ICQKKy0tPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiPgorVGVzdHMgZm9yIE5vcm1hbGl6ZXIuCis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BhY2thZ2UuaHRtbCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGZhZjk5MgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wYWNrYWdlLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMiBGaW5hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisgICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wYWNrYWdlLmh0bWwsdiAkCisgICRSZXZpc2lvbjogMS4xICQKKyAgJERhdGU6IDIwMDAvMDMvMTUgMjE6MzU6NDggJAorLS0+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CitTaGFyZWQgdXRpbGl0aWVzIGZvciB0ZXN0cy4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9CcmVha0l0ZXJhdG9yUnVsZXNfZW5fVVNfVEVTVC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvQnJlYWtJdGVyYXRvclJ1bGVzX2VuX1VTX1RFU1QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mMzJkMzZiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvQnJlYWtJdGVyYXRvclJ1bGVzX2VuX1VTX1RFU1QuamF2YQpAQCAtMCwwICsxLDIyMiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvQnJlYWtJdGVyYXRvclJ1bGVzX2VuX1VTX1RFU1QuamF2YSx2ICQKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA1OjE0ICQKKyAqICRSZXZpc2lvbjogMS44ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5yYmJpOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBqYXZhLm5ldC5VUkw7CisKKy8qKgorICogVGhpcyByZXNvdXJjZSBidW5kbGUgaXMgaW5jbHVkZWQgZm9yIHRlc3RpbmcgYW5kIGRlbW9uc3RyYXRpb24gcHVycG9zZXMgb25seS4KKyAqIEl0IGFwcGxpZXMgdGhlIGRpY3Rpb25hcnktYmFzZWQgYWxnb3JpdGhtIHRvIEVuZ2xpc2ggdGV4dCB0aGF0IGhhcyBoYWQgYWxsIHRoZQorICogc3BhY2VzIHJlbW92ZWQuICBPbmNlIHdlIGhhdmUgZ29vZCB0ZXN0IGNhc2VzIGZvciBUaGFpLCB3ZSB3aWxsIHJlcGxhY2UgdGhpcworICogd2l0aCBnb29kIHJlc291cmNlIGRhdGEgKGFuZCBhIGdvb2QgZGljdGlvbmFyeSBmaWxlKSBmb3IgVGhhaQorICovCitwdWJsaWMgY2xhc3MgQnJlYWtJdGVyYXRvclJ1bGVzX2VuX1VTX1RFU1QgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFVSTCB1cmwgPQorICAgICAgICBCcmVha0l0ZXJhdG9yUnVsZXNfZW5fVVNfVEVTVC5jbGFzcy5nZXRSZXNvdXJjZSgiL2NvbS9pYm0vZGF0YS9taXNjL2VuZ2xpc2guZGljdCIpOworCisgICAgcHVibGljIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICAgICAgIHJldHVybiBjb250ZW50czsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0W11bXSBjb250ZW50cyA9IHsKKyAgICAgICAgLy8gbmFtZXMgb2YgY2xhc3NlcyB0byBpbnN0YW50aWF0ZSBmb3IgdGhlIGRpZmZlcmVudCBraW5kcyBvZiBicmVhaworICAgICAgICAvLyBpdGVyYXRvci4gIE5vdGljZSB3ZSdyZSBub3cgdXNpbmcgRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvcgorICAgICAgICAvLyBmb3Igd29yZCBhbmQgbGluZSBicmVha2luZy4KKyAgICAgICAgeyAiQnJlYWtJdGVyYXRvckNsYXNzZXMiLAorICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgIlJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IiLCAgICAgICAgICAgLy8gY2hhcmFjdGVyLWJyZWFrIGl0ZXJhdG9yIGNsYXNzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvciIsICAgICAvLyB3b3JkLWJyZWFrIGl0ZXJhdG9yIGNsYXNzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvciIsICAgICAvLyBsaW5lLWJyZWFrIGl0ZXJhdG9yIGNsYXNzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiUnVsZUJhc2VkQnJlYWtJdGVyYXRvciIgfSAgICAgICAgICAvLyBzZW50ZW5jZS1icmVhayBpdGVyYXRvciBjbGFzcworICAgICAgICB9LAorCisgICAgICAgIC8vIFRoZXNlIGFyZSB0aGUgc2FtZSB3b3JkLWJyZWFraW5nIHJ1bGVzIGFzIGFyZSBzcGVjaWZpZWQgaW4gdGhlIGRlZmF1bHQKKyAgICAgICAgLy8gcmVzb3VyY2UsIGV4Y2VwdCB0aGF0IHRoZSBMYXRpbiBsZXR0ZXJzLCBhcG9zdHJvcGhlLCBhbmQgaHlwaGVuIGFyZQorICAgICAgICAvLyBzcGVjaWZpZWQgYXMgZGljdGlvbmFyeSBjaGFyYWN0ZXJzCisgICAgICAgIHsgIldvcmRCcmVha1J1bGVzIiwKKyAgICAgICAgICAgIC8vIGlnbm9yZSBub24tc3BhY2luZyBtYXJrcywgZW5jbG9zaW5nIG1hcmtzLCBhbmQgZm9ybWF0IGNoYXJhY3RlcnMsCisgICAgICAgICAgICAvLyBhbGwgb2Ygd2hpY2ggc2hvdWxkIG5vdCBpbmZsdWVuY2UgdGhlIGFsZ29yaXRobQorICAgICAgICAgICAgIiRfaWdub3JlXz1bWzpNbjpdWzpNZTpdWzpDZjpdXTsiCisKKyAgICAgICAgICAgIC8vIGxvd2VyIGFuZCB1cHBlciBjYXNlIFJvbWFuIGxldHRlcnMsIGFwb3N0cm9waHkgYW5kIGRhc2ggYXJlCisgICAgICAgICAgICAvLyBpbiB0aGUgRW5nbGlzaCBkaWN0aW9uYXJ5CisgICAgICAgICAgICArICIkX2RpY3Rpb25hcnlfPVthLXpBLVpcXCdcXC1dOyIKKworICAgICAgICAgICAgLy8gSGluZGkgcGhyYXNlIHNlcGFyYXRvciwga2FuamksIGthdGFrYW5hLCBoaXJhZ2FuYSwgQ0pLIGRpYWNyaXRpY2FscywKKyAgICAgICAgICAgIC8vIG90aGVyIGxldHRlcnMsIGFuZCBkaWdpdHMKKyAgICAgICAgICAgICsgIiRkYW5kYT1bXHUwOTY0XHUwOTY1XTsiCisgICAgICAgICAgICArICIka2Fuamk9W1x1MzAwNVx1NGUwMC1cdTlmYTVcdWY5MDAtXHVmYTJkXTsiCisgICAgICAgICAgICArICIka2F0YT1bXHUzMDk5LVx1MzA5Y1x1MzBhMS1cdTMwZmVdOyIKKyAgICAgICAgICAgICsgIiRoaXJhPVtcdTMwNDEtXHUzMDllXHUzMGZjXTsiCisgICAgICAgICAgICArICIkbGV0PVtbWzpMOl1bOk1jOl1dLVska2Fuamkka2F0YSRoaXJhXV07IgorICAgICAgICAgICAgKyAiJGRndD1bOk46XTsiCisKKyAgICAgICAgICAgIC8vIHB1bmN0dWF0aW9uIHRoYXQgY2FuIG9jY3VyIGluIHRoZSBtaWRkbGUgb2YgYSB3b3JkOiBjdXJyZW50bHkKKyAgICAgICAgICAgIC8vIGRhc2hlcywgYXBvc3Ryb3BoZXMsIGFuZCBxdW90YXRpb24gbWFya3MKKyAgICAgICAgICAgICsgIiRtaWRfd29yZD1bWzpQZDpdXHUwMGFkXHUyMDI3XFxcIlxcXCddOyIKKworICAgICAgICAgICAgLy8gcHVuY3R1YXRpb24gdGhhdCBjYW4gb2NjdXIgaW4gdGhlIG1pZGRsZSBvZiBhIG51bWJlcjogY3VycmVudGx5CisgICAgICAgICAgICAvLyBhcG9zdHJvcGhlcywgcW91dGF0aW9uIG1hcmtzLCBwZXJpb2RzLCBjb21tYXMsIGFuZCB0aGUgQXJhYmljCisgICAgICAgICAgICAvLyBkZWNpbWFsIHBvaW50CisgICAgICAgICAgICArICIkbWlkX251bT1bXFxcIlxcXCdcXCxcdTA2NmJcXC5dOyIKKworICAgICAgICAgICAgLy8gcHVuY3R1YXRpb24gdGhhdCBjYW4gb2NjdXIgYXQgdGhlIGJlZ2lubmluZyBvZiBhIG51bWJlcjogY3VycmVudGx5CisgICAgICAgICAgICAvLyB0aGUgcGVyaW9kLCB0aGUgbnVtYmVyIHNpZ24sIGFuZCBhbGwgY3VycmVuY3kgc3ltYm9scyBleGNlcHQgdGhlIGNlbnRzIHNpZ24KKyAgICAgICAgICAgICsgIiRwcmVfbnVtPVtbWzpTYzpdLVtcdTAwYTJdXVxcI1xcLl07IgorCisgICAgICAgICAgICAvLyBwdW5jdHVhdGlvbiB0aGF0IGNhbiBvY2N1ciBhdCB0aGUgZW5kIG9mIGEgbnVtYmVyOiBjdXJyZW50bHkKKyAgICAgICAgICAgIC8vIHRoZSBwZXJjZW50LCBwZXItdGhvdXNhbmQsIHBlci10ZW4tdGhvdXNhbmQsIGFuZCBBcmFiaWMgcGVyY2VudAorICAgICAgICAgICAgLy8gc2lnbnMsIHRoZSBjZW50cyBzaWduLCBhbmQgdGhlIGFtcGVyc2FuZAorICAgICAgICAgICAgKyAiJHBvc3RfbnVtPVtcXCVcXCZcdTAwYTJcdTA2NmFcdTIwMzBcdTIwMzFdOyIKKworICAgICAgICAgICAgLy8gbGluZSBzZXBhcmF0b3JzOiBjdXJyZW50bHkgTEYsIEZGLCBQUywgYW5kIExTCisgICAgICAgICAgICArICIkbHM9W1xuXHUwMDBjXHUyMDI4XHUyMDI5XTsiCisKKyAgICAgICAgICAgIC8vIHdoaXRlc3BhY2U6IGFsbCBzcGFjZSBzZXBhcmF0b3JzIGFuZCB0aGUgdGFiIGNoYXJhY3RlcgorICAgICAgICAgICAgKyAiJHdzPVtbOlpzOl1cdF07IgorCisgICAgICAgICAgICAvLyBhIHdvcmQgaXMgYSBzZXF1ZW5jZSBvZiBsZXR0ZXJzIHRoYXQgbWF5IGNvbnRhaW4gaW50ZXJuYWwKKyAgICAgICAgICAgIC8vIHB1bmN0dWF0aW9uLCBhcyBsb25nIGFzIGl0IGJlZ2lucyBhbmQgZW5kcyB3aXRoIGEgbGV0dGVyIGFuZAorICAgICAgICAgICAgLy8gbmV2ZXIgY29udGFpbnMgdHdvIHB1bmN0dWF0aW9uIG1hcmtzIGluIGEgcm93CisgICAgICAgICAgICArICIkd29yZD0oJGxldCsoJG1pZF93b3JkJGxldCspKiRkYW5kYT8pOyIKKworICAgICAgICAgICAgLy8gYSBudW1iZXIgaXMgYSBzZXF1ZW5jZSBvZiBkaWdpdHMgdGhhdCBtYXkgY29udGFpbiBpbnRlcm5hbAorICAgICAgICAgICAgLy8gcHVuY3R1YXRpb24sIGFzIGxvbmcgYXMgaXQgYmVnaW5zIGFuZCBlbmRzIHdpdGggYSBkaWdpdCBhbmQKKyAgICAgICAgICAgIC8vIG5ldmVyIGNvbnRhaW5zIHR3byBwdW5jdHVhdGlvbiBtYXJrcyBpbiBhIHJvdy4KKyAgICAgICAgICAgICsgIiRudW1iZXI9KCRkZ3QrKCRtaWRfbnVtJGRndCspKik7IgorCisgICAgICAgICAgICAvLyBicmVhayBhZnRlciBldmVyeSBjaGFyYWN0ZXIsIHdpdGggdGhlIGZvbGxvd2luZyBleGNlcHRpb25zCisgICAgICAgICAgICAvLyAodGhpcyB3aWxsIGNhdXNlIHB1bmN0dWF0aW9uIG1hcmtzIHRoYXQgYXJlbid0IGNvbnNpZGVyZWQKKyAgICAgICAgICAgIC8vIHBhcnQgb2Ygd29yZHMgb3IgbnVtYmVycyB0byBiZSB0cmVhdGVkIGFzIHdvcmRzIHVudG8gdGhlbXNlbHZlcykKKyAgICAgICAgICAgICsgIi47IgorCisgICAgICAgICAgICAvLyBrZWVwIHRvZ2V0aGVyIGFueSBzZXF1ZW5jZSBvZiBjb250aWd1b3VzIHdvcmRzIGFuZCBudW1iZXJzCisgICAgICAgICAgICAvLyAoaW5jbHVkaW5nIGp1c3Qgb25lIG9mIGVpdGhlciksIHBsdXMgYW4gb3B0aW9uYWwgdHJhaWxpbmcKKyAgICAgICAgICAgIC8vIG51bWJlci1zdWZmaXggY2hhcmFjdGVyCisgICAgICAgICAgICArICIkd29yZD8oJG51bWJlciR3b3JkKSooJG51bWJlciRwb3N0X251bT8pPzsiCisKKyAgICAgICAgICAgIC8vIGtlZXAgdG9nZXRoZXIgYW5kIHNlcXVlbmNlIG9mIGNvbnRpZ3VvdXMgd29yZHMgYW5kIG51bWJlcnMKKyAgICAgICAgICAgIC8vIHRoYXQgc3RhcnRzIHdpdGggYSBudW1iZXItcHJlZml4IGNoYXJhY3RlciBhbmQgYSBudW1iZXIsCisgICAgICAgICAgICAvLyBhbmQgbWF5IGVuZCB3aXRoIGEgbnVtYmVyLXN1ZmZpeCBjaGFyYWN0ZXIKKyAgICAgICAgICAgICsgIiRwcmVfbnVtKCRudW1iZXIkd29yZCkqKCRudW1iZXIkcG9zdF9udW0/KT87IgorCisgICAgICAgICAgICAvLyBrZWVwIHRvZ2V0aGVyIHJ1bnMgb2Ygd2hpdGVzcGFjZSAob3B0aW9uYWxseSB3aXRoIGEgc2luZ2xlIHRyYWlsaW5nCisgICAgICAgICAgICAvLyBsaW5lIHNlcGFyYXRvciBvciBDUkxGIHNlcXVlbmNlKQorICAgICAgICAgICAgKyAiJHdzKlxyPyRscz87IgorCisgICAgICAgICAgICAvLyBrZWVwIHRvZ2V0aGVyIHJ1bnMgb2YgS2F0YWthbmEKKyAgICAgICAgICAgICsgIiRrYXRhKjsiCisKKyAgICAgICAgICAgIC8vIGtlZXAgdG9nZXRoZXIgcnVucyBvZiBIaXJhZ2FuYQorICAgICAgICAgICAgKyAiJGhpcmEqOyIKKworICAgICAgICAgICAgLy8ga2VlcCB0b2dldGhlciBydW5zIG9mIEthbmppCisgICAgICAgICAgICArICIka2FuamkqOyJ9LAorCisgICAgICAgIC8vIFRoZXNlIGFyZSB0aGUgc2FtZSBsaW5lLWJyZWFraW5nIHJ1bGVzIGFzIGFyZSBzcGVjaWZpZWQgaW4gdGhlIGRlZmF1bHQKKyAgICAgICAgLy8gcmVzb3VyY2UsIGV4Y2VwdCB0aGF0IHRoZSBMYXRpbiBsZXR0ZXJzLCBhcG9zdHJvcGhlLCBhbmQgaHlwaGVuIGFyZQorICAgICAgICAvLyBzcGVjaWZpZWQgYXMgZGljdGlvbmFyeSBjaGFyYWN0ZXJzCisgICAgICAgIHsgIkxpbmVCcmVha1J1bGVzIiwKKyAgICAgICAgICAgIC8vIGlnbm9yZSBub24tc3BhY2luZyBtYXJrcywgZW5jbG9zaW5nIG1hcmtzLCBhbmQgZm9ybWF0IGNoYXJhY3RlcnMKKyAgICAgICAgICAgICIkX2lnbm9yZV89W1s6TW46XVs6TWU6XVs6Q2Y6XV07IgorCisgICAgICAgICAgICAvLyBsb3dlciBhbmQgdXBwZXIgY2FzZSBSb21hbiBsZXR0ZXJzLCBhcG9zdHJvcGh5IGFuZCBkYXNoCisgICAgICAgICAgICAvLyBhcmUgaW4gdGhlIEVuZ2xpc2ggZGljdGlvbmFyeQorICAgICAgICAgICAgKyAiJF9kaWN0aW9uYXJ5Xz1bYS16QS1aXFwnXFwtXTsiCisKKyAgICAgICAgICAgIC8vIEhpbmRpIHBocmFzZSBzZXBhcmF0b3JzCisgICAgICAgICAgICArICIkZGFuZGE9W1x1MDk2NFx1MDk2NV07IgorCisgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzIHRoYXQgYWx3YXlzIGNhdXNlIGEgYnJlYWs6IEVUWCwgdGFiLCBMRiwgRkYsIExTLCBhbmQgUFMKKyAgICAgICAgICAgICsgIiRicmVhaz1bXHUwMDAzXHRcblxmXHUyMDI4XHUyMDI5XTsiCisKKyAgICAgICAgICAgIC8vIGNoYXJhY3RlcnMgdGhhdCBhbHdheXMgcHJldmVudCBhIGJyZWFrOiB0aGUgbm9uLWJyZWFraW5nIHNwYWNlCisgICAgICAgICAgICAvLyBhbmQgc2ltaWxhciBjaGFyYWN0ZXJzCisgICAgICAgICAgICArICIkbmJzcD1bXHUwMGEwXHUyMDA3XHUyMDExXHVmZWZmXTsiCisKKyAgICAgICAgICAgIC8vIHdoaXRlc3BhY2U6IHNwYWNlIHNlcGFyYXRvcnMgYW5kIGNvbnRyb2wgY2hhcmFjdGVycywgZXhjZXB0IGZvcgorICAgICAgICAgICAgLy8gQ1IgYW5kIHRoZSBvdGhlciBjaGFyYWN0ZXJzIG1lbnRpb25lZCBhYm92ZQorICAgICAgICAgICAgKyAiJHNwYWNlPVtbWzpaczpdWzpDYzpdXS1bJG5ic3AkYnJlYWtccl1dOyIKKworICAgICAgICAgICAgLy8gZGFzaGVzOiBkYXNoIHB1bmN0dWF0aW9uIGFuZCB0aGUgZGlzY3JldGlvbmFyeSBoeXBoZW4sIGV4Y2VwdCBmb3IKKyAgICAgICAgICAgIC8vIG5vbi1icmVha2luZyBoeXBoZW5zCisgICAgICAgICAgICArICIkZGFzaD1bW1s6UGQ6XVx1MDBhZF0tWyRuYnNwXV07IgorCisgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzIHRoYXQgc3RpY2sgdG8gYSB3b3JkIGlmIHRoZXkgcHJlY2VkZSBpdDogY3VycmVuY3kgc3ltYm9scworICAgICAgICAgICAgLy8gKGV4Y2VwdCB0aGUgY2VudHMgc2lnbikgYW5kIHN0YXJ0aW5nIHB1bmN0dWF0aW9uCisgICAgICAgICAgICArICIkcHJlX3dvcmQ9W1tbOlNjOl0tW1x1MDBhMl1dWzpQczpdXFxcIlxcXCddOyIKKworICAgICAgICAgICAgLy8gY2hhcmFjdGVycyB0aGF0IHN0aWNrIHRvIGEgd29yZCBpZiB0aGV5IGZvbGxvdyBpdDogZW5kaW5nIHB1bmN0dWF0aW9uLAorICAgICAgICAgICAgLy8gb3RoZXIgcHVuY3R1YXRpb24gdGhhdCB1c3VhbGx5IG9jY3VycyBhdCB0aGUgZW5kIG9mIGEgc2VudGVuY2UsCisgICAgICAgICAgICAvLyBzbWFsbCBLYW5hIGNoYXJhY3RlcnMsIHNvbWUgQ0pLIGRpYWNyaXRpY3MsIGV0Yy4KKyAgICAgICAgICAgICsgIiRwb3N0X3dvcmQ9W1s6UGU6XVxcIVxcXCJcXFwnXFwlXFwuXFwsXFw6XFw7XFw/XHUwMGEyXHUwMGIwXHUwNjZhXHUyMDMwLVx1MjAzNCIKKyAgICAgICAgICAgICAgICAgICAgKyAiXHUyMTAzXHUyMTA1XHUyMTA5XHUzMDAxXHUzMDAyXHUzMDA1XHUzMDQxXHUzMDQzXHUzMDQ1XHUzMDQ3XHUzMDQ5XHUzMDYzIgorICAgICAgICAgICAgICAgICAgICArICJcdTMwODNcdTMwODVcdTMwODdcdTMwOGVcdTMwOTktXHUzMDllXHUzMGExXHUzMGEzXHUzMGE1XHUzMGE3XHUzMGE5IgorICAgICAgICAgICAgICAgICAgICArICJcdTMwYzNcdTMwZTNcdTMwZTVcdTMwZTdcdTMwZWVcdTMwZjVcdTMwZjZcdTMwZmMtXHUzMGZlXHVmZjAxXHVmZjBjIgorICAgICAgICAgICAgICAgICAgICArICJcdWZmMGVcdWZmMWZdOyIKKworICAgICAgICAgICAgLy8gS2Fuamk6IGFjdHVhbGx5IGluY2x1ZGVzIGJvdGggS2FuamkgYW5kIEthbmEsIGV4Y2VwdCBmb3Igc21hbGwgS2FuYSBhbmQKKyAgICAgICAgICAgIC8vIENKSyBkaWFjcml0aWNzCisgICAgICAgICAgICArICIka2Fuamk9W1tcdTRlMDAtXHU5ZmE1XHVmOTAwLVx1ZmEyZFx1MzA0MS1cdTMwOTRcdTMwYTEtXHUzMGZhXS1bJHBvc3Rfd29yZCRfaWdub3JlX11dOyIKKworICAgICAgICAgICAgLy8gZGlnaXRzCisgICAgICAgICAgICArICIkZGlnaXQ9W1s6TmQ6XVs6Tm86XV07IgorCisgICAgICAgICAgICAvLyBwdW5jdHVhdGlvbiB0aGF0IGNhbiBvY2N1ciBpbiB0aGUgbWlkZGxlIG9mIGEgbnVtYmVyOiBwZXJpb2RzIGFuZCBjb21tYXMKKyAgICAgICAgICAgICsgIiRtaWRfbnVtPVtcXC5cXCxdOyIKKworICAgICAgICAgICAgLy8gZXZlcnl0aGluZyBub3QgbWVudGlvbmVkIGFib3ZlLCBwbHVzIHRoZSBxdW90ZSBtYXJrcyAod2hpY2ggYXJlIGJvdGgKKyAgICAgICAgICAgIC8vIDxwcmUtd29yZD4sIDxwb3N0LXdvcmQ+LCBhbmQgPGNoYXI+KQorICAgICAgICAgICAgKyAiJGNoYXI9W14kYnJlYWskc3BhY2UkZGFzaCRrYW5qaSRuYnNwJF9pZ25vcmVfJHByZV93b3JkJHBvc3Rfd29yZCRtaWRfbnVtJGRhbmRhXHJcXFwiXFxcJ107IgorCisgICAgICAgICAgICAvLyBhICJudW1iZXIiIGlzIGEgcnVuIG9mIHByZWZpeCBjaGFyYWN0ZXJzIGFuZCBkYXNoZXMsIGZvbGxvd2VkIGJ5IG9uZSBvcgorICAgICAgICAgICAgLy8gbW9yZSBkaWdpdHMgd2l0aCBpc29sYXRlZCBudW1iZXItcHVuY3R1YXRpb24gY2hhcmFjdGVycyBpbnRlcnNwZXJzZWQKKyAgICAgICAgICAgICsgIiRudW1iZXI9KFskcHJlX3dvcmQkZGFzaF0qJGRpZ2l0KygkbWlkX251bSRkaWdpdCspKik7IgorCisgICAgICAgICAgICAvLyB0aGUgYmFzaWMgY29yZSBvZiBhIHdvcmQgY2FuIGJlIGVpdGhlciBhICJudW1iZXIiIGFzIGRlZmluZWQgYWJvdmUsIGEgc2luZ2xlCisgICAgICAgICAgICAvLyAiS2FuamkiIGNoYXJhY3Rlciwgb3IgYSBydW4gb2YgYW55IG51bWJlciBvZiBub3QtZXhwbGljaXRseS1tZW50aW9uZWQKKyAgICAgICAgICAgIC8vIGNoYXJhY3RlcnMgKHRoaXMgaW5jbHVkZXMgTGF0aW4gbGV0dGVycykKKyAgICAgICAgICAgICsgIiR3b3JkX2NvcmU9KFskcHJlX3dvcmQkY2hhcl0qfCRrYW5qaXwkbnVtYmVyKTsiCisKKyAgICAgICAgICAgIC8vIGEgd29yZCBtYXkgZW5kIHdpdGggYW4gb3B0aW9uYWwgc3VmZml4IHRoYXQgYmUgZWl0aGVyIGEgcnVuIG9mIG9uZSBvcgorICAgICAgICAgICAgLy8gbW9yZSBkYXNoZXMgb3IgYSBydW4gb2Ygd29yZC1zdWZmaXggY2hhcmFjdGVycywgZm9sbG93ZWQgYnkgYW4gb3B0aW9uYWwKKyAgICAgICAgICAgIC8vIHJ1biBvZiB3aGl0ZXNwYWNlCisgICAgICAgICAgICArICIkd29yZF9zdWZmaXg9KCgkZGFzaCt8JHBvc3Rfd29yZCopJHNwYWNlKik7IgorCisgICAgICAgICAgICAvLyBhIHdvcmQsIHRodXMsIGlzIGFuIG9wdGlvbmFsIHJ1biBvZiB3b3JkLXByZWZpeCBjaGFyYWN0ZXJzLCBmb2xsb3dlZCBieQorICAgICAgICAgICAgLy8gYSB3b3JkIGNvcmUgYW5kIGEgd29yZCBzdWZmaXggKHRoZSBzeW50YXggb2YgPHdvcmQtY29yZT4gYW5kIDx3b3JkLXN1ZmZpeD4KKyAgICAgICAgICAgIC8vIGFjdHVhbGx5IGFsbG93cyBlaXRoZXIgb2YgdGhlbSB0byBtYXRjaCB0aGUgZW1wdHkgc3RyaW5nLCBwdXR0aW5nIGEgYnJlYWsKKyAgICAgICAgICAgIC8vIGJldHdlZW4gdGhpbmdzIGxpa2UgIikoIiBvciAiYWFhKGFhYSIKKyAgICAgICAgICAgICsgIiR3b3JkPSgkcHJlX3dvcmQqJHdvcmRfY29yZSR3b3JkX3N1ZmZpeCk7IgorCisgICAgICAgICAgICAvLyBmaW5hbGx5LCB0aGUgcnVsZSB0aGF0IGRvZXMgdGhlIHdvcms6IEtlZXAgdG9nZXRoZXIgYW55IHJ1biBvZiB3b3JkcyB0aGF0CisgICAgICAgICAgICAvLyBhcmUgam9pbmVkIGJ5IHJ1bnMgb2Ygb25lIG9mIG1vcmUgbm9uLXNwYWNpbmcgbWFyay4gIEFsc28ga2VlcCBhIHRyYWlsaW5nCisgICAgICAgICAgICAvLyBsaW5lLWJyZWFrIGNoYXJhY3RlciBvciBDUkxGIGNvbWJpbmF0aW9uIHdpdGggdGhlIHdvcmQuICAobGluZSBzZXBhcmF0b3JzCisgICAgICAgICAgICAvLyAid2luIiBvdmVyIG5ic3AncykKKyAgICAgICAgICAgICsgIiR3b3JkKCRuYnNwKyR3b3JkKSpccj8kYnJlYWs/OyIgfSwKKworICAgICAgICAvLyB0aGVzZSB0d28gcmVzb3VyY2VzIHNwZWNpZnkgdGhlIHBhdGhuYW1lcyBvZiB0aGUgZGljdGlvbmFyeSBmaWxlcyB0bworICAgICAgICAvLyB1c2UgZm9yIHdvcmQgYnJlYWtpbmcgYW5kIGxpbmUgYnJlYWtpbmcuICBCb3RoIGN1cnJlbnRseSByZWZlciB0bworICAgICAgICAvLyBhIGZpbGUgY2FsbGVkIGVuZ2xpc2guZGljdCBwbGFjZWQgaW4gY29tLmlibS5pY3UuaW1wbC5kYXRhCisgICAgICAgIC8vIHNvbWV3aGVyZSBpbiB0aGUgY2xhc3MgcGF0aC4gIEl0J3MgaW1wb3J0YW50IHRvIG5vdGUgdGhhdAorICAgICAgICAvLyBlbmdsaXNoLmRpY3Qgd2FzIGNyZWF0ZWQgZm9yIHRlc3RpbmcgcHVycG9zZXMgb25seSwgYW5kIGRvZXNuJ3QKKyAgICAgICAgLy8gY29tZSBhbnl3aGVyZSBjbG9zZSB0byBiZWluZyBhbiBleGhhdXN0aXZlIGRpY3Rpb25hcnkgb2YgRW5nbGlzaAorICAgICAgICAvLyB3b3JkcyAoYmFzaWNhbGx5LCBpdCBjb250YWlucyBhbGwgdGhlIHdvcmRzIGluIHRoZSBEZWNsYXJhdGlvbiBvZgorICAgICAgICAvLyBJbmRlcGVuZGVuY2UsIGFuZCB0aGUgUmV2aXNlZCBTdGFuZGFyZCBWZXJzaW9uIG9mIHRoZSBib29rIG9mIEdlbmVzaXMsCisgICAgICAgIC8vIHBsdXMgYSBmZXcgb3RoZXIgd29yZHMgdGhyb3duIGluIHRvIHNob3cgbW9yZSBpbnRlcmVzdGluZyBjYXNlcykuCisgICAgICAgIC8vIHsgIldvcmRCcmVha0RpY3Rpb25hcnkiLCAiY29tXFxpYm1cXHRleHRcXHJlc291cmNlc1xcZW5nbGlzaC5kaWN0IiB9LAorICAgICAgICAvLyB7ICJMaW5lQnJlYWtEaWN0aW9uYXJ5IiwgImNvbVxcaWJtXFx0ZXh0XFxyZXNvdXJjZXNcXGVuZ2xpc2guZGljdCIgfQorICAgICAgICB7ICJXb3JkQnJlYWtEaWN0aW9uYXJ5IiwgdXJsIH0sCisgICAgICAgIHsgIkxpbmVCcmVha0RpY3Rpb25hcnkiLCB1cmwgfQorICAgIH07Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9CcmVha0l0ZXJhdG9yVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvQnJlYWtJdGVyYXRvclRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kNzgzODcwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvQnJlYWtJdGVyYXRvclRlc3QuamF2YQpAQCAtMCwwICsxLDE0MjMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL0JyZWFrSXRlcmF0b3JUZXN0LmphdmEsdiAkCisgKiAkRGF0ZTogMjAwMi8wMy8wMSAxODo1NzoxOSAkCisgKiAkUmV2aXNpb246IDEuOSAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QucmJiaTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yOworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CitpbXBvcnQgamF2YS5pby4qOworCitwdWJsaWMgY2xhc3MgQnJlYWtJdGVyYXRvclRlc3QgZXh0ZW5kcyBUZXN0Rm13aworeworICAgIHByaXZhdGUgQnJlYWtJdGVyYXRvciBjaGFyYWN0ZXJCcmVhazsKKyAgICBwcml2YXRlIEJyZWFrSXRlcmF0b3Igd29yZEJyZWFrOworICAgIHByaXZhdGUgQnJlYWtJdGVyYXRvciBsaW5lQnJlYWs7CisgICAgcHJpdmF0ZSBCcmVha0l0ZXJhdG9yIHNlbnRlbmNlQnJlYWs7CisgICAgcHJpdmF0ZSBCcmVha0l0ZXJhdG9yIHRpdGxlQnJlYWs7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IEJyZWFrSXRlcmF0b3JUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyBCcmVha0l0ZXJhdG9yVGVzdCgpCisgICAgeworICAgICAgICBjaGFyYWN0ZXJCcmVhayA9IEJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoKTsKKyAgICAgICAgd29yZEJyZWFrID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoKTsKKyAgICAgICAgbGluZUJyZWFrID0gQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UoKTsKKyAgICAgICAgLy9sb2dsbigiQ3JlYXRpbmcgc2VudGVuY2UgaXRlcmF0b3IuLi4iKTsKKyAgICAgICAgc2VudGVuY2VCcmVhayA9IEJyZWFrSXRlcmF0b3IuZ2V0U2VudGVuY2VJbnN0YW5jZSgpOworICAgICAgICAvL2xvZ2xuKCJGaW5pc2hlZCBjcmVhdGluZyBzZW50ZW5jZSBpdGVyYXRvci4uLiIpOworICAgICAgICB0aXRsZUJyZWFrID0gQnJlYWtJdGVyYXRvci5nZXRUaXRsZUluc3RhbmNlKCk7CisgICAgfQorCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gZ2VuZXJhbCB0ZXN0IHN1YnJvdXRpbmVzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICBwcml2YXRlIHZvaWQgZ2VuZXJhbEl0ZXJhdG9yVGVzdChCcmVha0l0ZXJhdG9yIGJpLCBWZWN0b3IgZXhwZWN0ZWRSZXN1bHQpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgU3RyaW5nIHRleHQ7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZXhwZWN0ZWRSZXN1bHQuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgIHRleHQgPSAoU3RyaW5nKWV4cGVjdGVkUmVzdWx0LmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQodGV4dCk7CisgICAgICAgIH0KKyAgICAgICAgdGV4dCA9IGJ1ZmZlci50b1N0cmluZygpOworCisgICAgICAgIGJpLnNldFRleHQodGV4dCk7CisKKyAgICAgICAgVmVjdG9yIG5leHRSZXN1bHRzID0gX3Rlc3RGaXJzdEFuZE5leHQoYmksIHRleHQpOworICAgICAgICBWZWN0b3IgcHJldmlvdXNSZXN1bHRzID0gX3Rlc3RMYXN0QW5kUHJldmlvdXMoYmksIHRleHQpOworCisgICAgICAgIGxvZ2xuKCJjb21wYXJpbmcgZm9yd2FyZCBhbmQgYmFja3dhcmQuLi4iKTsKKyAgICAgICAgaW50IGVycnMgPSBnZXRFcnJvckNvdW50KCk7CisgICAgICAgIGNvbXBhcmVGcmFnbWVudExpc3RzKCJmb3J3YXJkIGl0ZXJhdGlvbiIsICJiYWNrd2FyZCBpdGVyYXRpb24iLCBuZXh0UmVzdWx0cywKKyAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzUmVzdWx0cyk7CisgICAgICAgIGlmIChnZXRFcnJvckNvdW50KCkgPT0gZXJycykgeworICAgICAgICAgICAgbG9nbG4oImNvbXBhcmluZyBleHBlY3RlZCBhbmQgYWN0dWFsLi4uIik7CisgICAgICAgICAgICBjb21wYXJlRnJhZ21lbnRMaXN0cygiZXhwZWN0ZWQgcmVzdWx0IiwgImFjdHVhbCByZXN1bHQiLCBleHBlY3RlZFJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0UmVzdWx0cyk7CisgICAgICAgIH0KKworICAgICAgICBpbnRbXSBib3VuZGFyaWVzID0gbmV3IGludFtleHBlY3RlZFJlc3VsdC5zaXplKCkgKyAzXTsKKyAgICAgICAgYm91bmRhcmllc1swXSA9IEJyZWFrSXRlcmF0b3IuRE9ORTsKKyAgICAgICAgYm91bmRhcmllc1sxXSA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZXhwZWN0ZWRSZXN1bHQuc2l6ZSgpOyBpKyspCisgICAgICAgICAgICBib3VuZGFyaWVzW2kgKyAyXSA9IGJvdW5kYXJpZXNbaSArIDFdICsgKChTdHJpbmcpZXhwZWN0ZWRSZXN1bHQuZWxlbWVudEF0KGkpKS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGgoKTsKKyAgICAgICAgYm91bmRhcmllc1tib3VuZGFyaWVzLmxlbmd0aCAtIDFdID0gQnJlYWtJdGVyYXRvci5ET05FOworCisgICAgICAgIF90ZXN0Rm9sbG93aW5nKGJpLCB0ZXh0LCBib3VuZGFyaWVzKTsKKyAgICAgICAgX3Rlc3RQcmVjZWRpbmcoYmksIHRleHQsIGJvdW5kYXJpZXMpOworICAgICAgICBfdGVzdElzQm91bmRhcnkoYmksIHRleHQsIGJvdW5kYXJpZXMpOworCisgICAgICAgIGRvTXVsdGlwbGVTZWxlY3Rpb25UZXN0KGJpLCB0ZXh0KTsKKyAgICB9CisKKyAgICBwcml2YXRlIFZlY3RvciBfdGVzdEZpcnN0QW5kTmV4dChCcmVha0l0ZXJhdG9yIGJpLCBTdHJpbmcgdGV4dCkgeworICAgICAgICBpbnQgcCA9IGJpLmZpcnN0KCk7CisgICAgICAgIGludCBsYXN0UCA9IHA7CisgICAgICAgIFZlY3RvciByZXN1bHQgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgaWYgKHAgIT0gMCkKKyAgICAgICAgICAgIGVycmxuKCJmaXJzdCgpIHJldHVybmVkICIgKyBwICsgIiBpbnN0ZWFkIG9mIDAiKTsKKyAgICAgICAgd2hpbGUgKHAgIT0gQnJlYWtJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICBwID0gYmkubmV4dCgpOworICAgICAgICAgICAgaWYgKHAgIT0gQnJlYWtJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAgICAgaWYgKHAgPD0gbGFzdFApCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJuZXh0KCkgZmFpbGVkIHRvIG1vdmUgZm9yd2FyZDogbmV4dCgpIG9uIHBvc2l0aW9uICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgbGFzdFAgKyAiIHlpZWxkZWQgIiArIHApOworCisgICAgICAgICAgICAgICAgcmVzdWx0LmFkZEVsZW1lbnQodGV4dC5zdWJzdHJpbmcobGFzdFAsIHApKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChsYXN0UCAhPSB0ZXh0Lmxlbmd0aCgpKQorICAgICAgICAgICAgICAgICAgICBlcnJsbigibmV4dCgpIHJldHVybmVkIERPTkUgcHJlbWF0dXJlbHk6IG9mZnNldCB3YXMgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBsYXN0UCArICIgaW5zdGVhZCBvZiAiICsgdGV4dC5sZW5ndGgoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsYXN0UCA9IHA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBwcml2YXRlIFZlY3RvciBfdGVzdExhc3RBbmRQcmV2aW91cyhCcmVha0l0ZXJhdG9yIGJpLCBTdHJpbmcgdGV4dCkgeworICAgICAgICBpbnQgcCA9IGJpLmxhc3QoKTsKKyAgICAgICAgaW50IGxhc3RQID0gcDsKKyAgICAgICAgVmVjdG9yIHJlc3VsdCA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICBpZiAocCAhPSB0ZXh0Lmxlbmd0aCgpKQorICAgICAgICAgICAgZXJybG4oImxhc3QoKSByZXR1cm5lZCAiICsgcCArICIgaW5zdGVhZCBvZiAiICsgdGV4dC5sZW5ndGgoKSk7CisgICAgICAgIHdoaWxlIChwICE9IEJyZWFrSXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgcCA9IGJpLnByZXZpb3VzKCk7CisgICAgICAgICAgICBpZiAocCAhPSBCcmVha0l0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgICAgICBpZiAocCA+PSBsYXN0UCkKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oInByZXZpb3VzKCkgZmFpbGVkIHRvIG1vdmUgYmFja3dhcmQ6IHByZXZpb3VzKCkgb24gcG9zaXRpb24gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBsYXN0UCArICIgeWllbGRlZCAiICsgcCk7CisKKyAgICAgICAgICAgICAgICByZXN1bHQuaW5zZXJ0RWxlbWVudEF0KHRleHQuc3Vic3RyaW5nKHAsIGxhc3RQKSwgMCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAobGFzdFAgIT0gMCkKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oInByZXZpb3VzKCkgcmV0dXJuZWQgRE9ORSBwcmVtYXR1cmVseTogb2Zmc2V0IHdhcyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGxhc3RQICsgIiBpbnN0ZWFkIG9mIDAiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxhc3RQID0gcDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBjb21wYXJlRnJhZ21lbnRMaXN0cyhTdHJpbmcgZjFOYW1lLCBTdHJpbmcgZjJOYW1lLCBWZWN0b3IgZjEsIFZlY3RvciBmMikgeworICAgICAgICBpbnQgcDEgPSAwOworICAgICAgICBpbnQgcDIgPSAwOworICAgICAgICBTdHJpbmcgczE7CisgICAgICAgIFN0cmluZyBzMjsKKyAgICAgICAgaW50IHQxID0gMDsKKyAgICAgICAgaW50IHQyID0gMDsKKworICAgICAgICB3aGlsZSAocDEgPCBmMS5zaXplKCkgJiYgcDIgPCBmMi5zaXplKCkpIHsKKyAgICAgICAgICAgIHMxID0gKFN0cmluZylmMS5lbGVtZW50QXQocDEpOworICAgICAgICAgICAgczIgPSAoU3RyaW5nKWYyLmVsZW1lbnRBdChwMik7CisgICAgICAgICAgICB0MSArPSBzMS5sZW5ndGgoKTsKKyAgICAgICAgICAgIHQyICs9IHMyLmxlbmd0aCgpOworCisgICAgICAgICAgICBpZiAoczEuZXF1YWxzKHMyKSkgeworICAgICAgICAgICAgICAgIGRlYnVnTG9nbG4oIiAgID4iICsgczEgKyAiPCIpOworICAgICAgICAgICAgICAgICsrcDE7CisgICAgICAgICAgICAgICAgKytwMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGludCB0ZW1wVDEgPSB0MTsKKyAgICAgICAgICAgICAgICBpbnQgdGVtcFQyID0gdDI7CisgICAgICAgICAgICAgICAgaW50IHRlbXBQMSA9IHAxOworICAgICAgICAgICAgICAgIGludCB0ZW1wUDIgPSBwMjsKKworICAgICAgICAgICAgICAgIHdoaWxlICh0ZW1wVDEgIT0gdGVtcFQyICYmIHRlbXBQMSA8IGYxLnNpemUoKSAmJiB0ZW1wUDIgPCBmMi5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRlbXBUMSA8IHRlbXBUMiAmJiB0ZW1wUDEgPCBmMS5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBUMSArPSAoKFN0cmluZylmMS5lbGVtZW50QXQodGVtcFAxKSkubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgICAgICArK3RlbXBQMTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB3aGlsZSAodGVtcFQyIDwgdGVtcFQxICYmIHRlbXBQMiA8IGYyLnNpemUoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVtcFQyICs9ICgoU3RyaW5nKWYyLmVsZW1lbnRBdCh0ZW1wUDIpKS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrdGVtcFAyOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxvZ2xuKCIqKiogIiArIGYxTmFtZSArICIgaGFzOiIpOworICAgICAgICAgICAgICAgIHdoaWxlIChwMSA8PSB0ZW1wUDEgJiYgcDEgPCBmMS5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgczEgPSAoU3RyaW5nKWYxLmVsZW1lbnRBdChwMSk7CisgICAgICAgICAgICAgICAgICAgIHQxICs9IHMxLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICBkZWJ1Z0xvZ2xuKCIgKioqID4iICsgczEgKyAiPCIpOworICAgICAgICAgICAgICAgICAgICArK3AxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsb2dsbigiKioqKiogIiArIGYyTmFtZSArICIgaGFzOiIpOworICAgICAgICAgICAgICAgIHdoaWxlIChwMiA8PSB0ZW1wUDIgJiYgcDIgPCBmMi5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgczIgPSAoU3RyaW5nKWYyLmVsZW1lbnRBdChwMik7CisgICAgICAgICAgICAgICAgICAgIHQyICs9IHMyLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICBkZWJ1Z0xvZ2xuKCIgKioqKiogPiIgKyBzMiArICI8Iik7CisgICAgICAgICAgICAgICAgICAgICsrcDI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVycmxuKCJEaXNjcmVwYW5jeSBiZXR3ZWVuICIgKyBmMU5hbWUgKyAiIGFuZCAiICsgZjJOYW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBfdGVzdEZvbGxvd2luZyhCcmVha0l0ZXJhdG9yIGJpLCBTdHJpbmcgdGV4dCwgaW50W10gYm91bmRhcmllcykgeworICAgICAgICBsb2dsbigidGVzdEZvbGxvd2luZygpOiIpOworICAgICAgICBpbnQgcCA9IDI7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IHRleHQubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgaWYgKGkgPT0gYm91bmRhcmllc1twXSkKKyAgICAgICAgICAgICAgICArK3A7CisKKyAgICAgICAgICAgIGludCBiID0gYmkuZm9sbG93aW5nKGkpOworICAgICAgICAgICAgbG9nbG4oImJpLmZvbGxvd2luZygiICsgaSArICIpIC0+ICIgKyBiKTsKKyAgICAgICAgICAgIGlmIChiICE9IGJvdW5kYXJpZXNbcF0pCisgICAgICAgICAgICAgICAgZXJybG4oIldyb25nIHJlc3VsdCBmcm9tIGZvbGxvd2luZygpIGZvciAiICsgaSArICI6IGV4cGVjdGVkICIgKyBib3VuZGFyaWVzW3BdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiwgZ290ICIgKyBiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBfdGVzdFByZWNlZGluZyhCcmVha0l0ZXJhdG9yIGJpLCBTdHJpbmcgdGV4dCwgaW50W10gYm91bmRhcmllcykgeworICAgICAgICBsb2dsbigidGVzdFByZWNlZGluZygpOiIpOworICAgICAgICBpbnQgcCA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IHRleHQubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgaW50IGIgPSBiaS5wcmVjZWRpbmcoaSk7CisgICAgICAgICAgICBsb2dsbigiYmkucHJlY2VkaW5nKCIgKyBpICsgIikgLT4gIiArIGIpOworICAgICAgICAgICAgaWYgKGIgIT0gYm91bmRhcmllc1twXSkKKyAgICAgICAgICAgICAgICBlcnJsbigiV3JvbmcgcmVzdWx0IGZyb20gcHJlY2VkaW5nKCkgZm9yICIgKyBpICsgIjogZXhwZWN0ZWQgIiArIGJvdW5kYXJpZXNbcF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiLCBnb3QgIiArIGIpOworCisgICAgICAgICAgICBpZiAoaSA9PSBib3VuZGFyaWVzW3AgKyAxXSkKKyAgICAgICAgICAgICAgICArK3A7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgX3Rlc3RJc0JvdW5kYXJ5KEJyZWFrSXRlcmF0b3IgYmksIFN0cmluZyB0ZXh0LCBpbnRbXSBib3VuZGFyaWVzKSB7CisgICAgICAgIGxvZ2xuKCJ0ZXN0SXNCb3VuZGFyeSgpOiIpOworICAgICAgICBpbnQgcCA9IDE7CisgICAgICAgIGJvb2xlYW4gaXNCOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSB0ZXh0Lmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgIGlzQiA9IGJpLmlzQm91bmRhcnkoaSk7CisgICAgICAgICAgICBsb2dsbigiYmkuaXNCb3VuZGFyeSgiICsgaSArICIpIC0+ICIgKyBpc0IpOworCisgICAgICAgICAgICBpZiAoaSA9PSBib3VuZGFyaWVzW3BdKSB7CisgICAgICAgICAgICAgICAgaWYgKCFpc0IpCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJXcm9uZyByZXN1bHQgZnJvbSBpc0JvdW5kYXJ5KCkgZm9yICIgKyBpICsgIjogZXhwZWN0ZWQgdHJ1ZSwgZ290IGZhbHNlIik7CisgICAgICAgICAgICAgICAgKytwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGlzQikKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIldyb25nIHJlc3VsdCBmcm9tIGlzQm91bmRhcnkoKSBmb3IgIiArIGkgKyAiOiBleHBlY3RlZCBmYWxzZSwgZ290IHRydWUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkb011bHRpcGxlU2VsZWN0aW9uVGVzdChCcmVha0l0ZXJhdG9yIGl0ZXJhdG9yLCBTdHJpbmcgdGVzdFRleHQpCisgICAgeworICAgICAgICBsb2dsbigiTXVsdGlwbGUgc2VsZWN0aW9uIHRlc3QuLi4iKTsKKyAgICAgICAgQnJlYWtJdGVyYXRvciB0ZXN0SXRlcmF0b3IgPSAoQnJlYWtJdGVyYXRvcilpdGVyYXRvci5jbG9uZSgpOworICAgICAgICBpbnQgb2Zmc2V0ID0gaXRlcmF0b3IuZmlyc3QoKTsKKyAgICAgICAgaW50IHRlc3RPZmZzZXQ7CisgICAgICAgIGludCBjb3VudCA9IDA7CisKKyAgICAgICAgZG8geworICAgICAgICAgICAgdGVzdE9mZnNldCA9IHRlc3RJdGVyYXRvci5maXJzdCgpOworICAgICAgICAgICAgdGVzdE9mZnNldCA9IHRlc3RJdGVyYXRvci5uZXh0KGNvdW50KTsKKyAgICAgICAgICAgIGxvZ2xuKCJuZXh0KCIgKyBjb3VudCArICIpIC0+ICIgKyB0ZXN0T2Zmc2V0KTsKKyAgICAgICAgICAgIGlmIChvZmZzZXQgIT0gdGVzdE9mZnNldCkKKyAgICAgICAgICAgICAgICBlcnJsbigibmV4dChuKSBhbmQgbmV4dCgpIG5vdCByZXR1cm5pbmcgY29uc2lzdGVudCByZXN1bHRzOiBmb3Igc3RlcCAiICsgY291bnQgKyAiLCBuZXh0KG4pIHJldHVybmVkICIgKyB0ZXN0T2Zmc2V0ICsgIiBhbmQgbmV4dCgpIGhhZCAiICsgb2Zmc2V0KTsKKworICAgICAgICAgICAgaWYgKG9mZnNldCAhPSBCcmVha0l0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgICAgIG9mZnNldCA9IGl0ZXJhdG9yLm5leHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSB3aGlsZSAob2Zmc2V0ICE9IEJyZWFrSXRlcmF0b3IuRE9ORSk7CisKKyAgICAgICAgLy8gbm93IGRvIGl0IGJhY2t3YXJkcy4uLgorICAgICAgICBvZmZzZXQgPSBpdGVyYXRvci5sYXN0KCk7CisgICAgICAgIGNvdW50ID0gMDsKKworICAgICAgICBkbyB7CisgICAgICAgICAgICB0ZXN0T2Zmc2V0ID0gdGVzdEl0ZXJhdG9yLmxhc3QoKTsKKyAgICAgICAgICAgIHRlc3RPZmZzZXQgPSB0ZXN0SXRlcmF0b3IubmV4dChjb3VudCk7CisgICAgICAgICAgICBsb2dsbigibmV4dCgiICsgY291bnQgKyAiKSAtPiAiICsgdGVzdE9mZnNldCk7CisgICAgICAgICAgICBpZiAob2Zmc2V0ICE9IHRlc3RPZmZzZXQpCisgICAgICAgICAgICAgICAgZXJybG4oIm5leHQobikgYW5kIG5leHQoKSBub3QgcmV0dXJuaW5nIGNvbnNpc3RlbnQgcmVzdWx0czogZm9yIHN0ZXAgIiArIGNvdW50ICsgIiwgbmV4dChuKSByZXR1cm5lZCAiICsgdGVzdE9mZnNldCArICIgYW5kIG5leHQoKSBoYWQgIiArIG9mZnNldCk7CisKKyAgICAgICAgICAgIGlmIChvZmZzZXQgIT0gQnJlYWtJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAgICAgY291bnQtLTsKKyAgICAgICAgICAgICAgICBvZmZzZXQgPSBpdGVyYXRvci5wcmV2aW91cygpOworICAgICAgICAgICAgfQorICAgICAgICB9IHdoaWxlIChvZmZzZXQgIT0gQnJlYWtJdGVyYXRvci5ET05FKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZG9CcmVha0ludmFyaWFudFRlc3QoQnJlYWtJdGVyYXRvciB0YiwgU3RyaW5nIHRlc3RDaGFycykKKyAgICB7CisgICAgICAgIFN0cmluZ0J1ZmZlciB3b3JrID0gbmV3IFN0cmluZ0J1ZmZlcigiYWFhIik7CisvLyAgICAgICAgaW50IGVycm9yQ291bnQgPSAwOworCisgICAgICAgIC8vIGEgYnJlYWsgc2hvdWxkIGFsd2F5cyBvY2N1ciBhZnRlciBDUiAodW5sZXNzIGZvbGxvd2VkIGJ5IExGKSwgTEYsIFBTLCBhbmQgTFMsCisgICAgICAgIC8vIHVubGVzcyB0aGV5J3JlIGZvbGxvd2VkIGJ5IGEgbm9uLXNwYWNpbmcgbWFyayBvciBhIGZvcm1hdCBjaGFyYWN0ZXIKKyAgICAgICAgU3RyaW5nIGJyZWFrcyA9ICJcclxuXHUyMDI5XHUyMDI4IjsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGJyZWFrcy5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgICB3b3JrLnNldENoYXJBdCgxLCBicmVha3MuY2hhckF0KGkpKTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgdGVzdENoYXJzLmxlbmd0aCgpOyBqKyspIHsKKyAgICAgICAgICAgICAgICB3b3JrLnNldENoYXJBdCgwLCB0ZXN0Q2hhcnMuY2hhckF0KGopKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IHRlc3RDaGFycy5sZW5ndGgoKTsgaysrKSB7CisgICAgICAgICAgICAgICAgICAgIGNoYXIgYyA9IHRlc3RDaGFycy5jaGFyQXQoayk7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgYSBjciBpcyBmb2xsb3dlZCBieSBsZiwgcHMsIGxzIG9yIGV0eCwgZG9uJ3QgZG8gdGhlIGNoZWNrICh0aGF0J3MKKyAgICAgICAgICAgICAgICAgICAgLy8gbm90IHN1cHBvc2VkIHRvIHdvcmspCisgICAgICAgICAgICAgICAgICAgIGlmICh3b3JrLmNoYXJBdCgxKSA9PSAnXHInICYmIChjID09ICdcbicgfHwgYyA9PSAnXHUyMDI5JworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGMgPT0gJ1x1MjAyOCcgfHwgYyA9PSAnXHUwMDAzJykpCisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgICAgICAgICB3b3JrLnNldENoYXJBdCgyLCBjKTsKKyAgICAgICAgICAgICAgICAgICAgdGIuc2V0VGV4dCh3b3JrLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICBib29sZWFuIHNlZW4yID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGwgPSB0Yi5maXJzdCgpOyBsICE9IEJyZWFrSXRlcmF0b3IuRE9ORTsgbCA9IHRiLm5leHQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGwgPT0gMikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWVuMiA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFzZWVuMikgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIk5vIGJyZWFrIGJldHdlZW4gVSsiICsgSW50ZWdlci50b0hleFN0cmluZygoaW50KSh3b3JrLmNoYXJBdCgxKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgYW5kIFUrIiArIEludGVnZXIudG9IZXhTdHJpbmcoKGludCkod29yay5jaGFyQXQoMikpKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZG9PdGhlckludmFyaWFudFRlc3QoQnJlYWtJdGVyYXRvciB0YiwgU3RyaW5nIHRlc3RDaGFycykKKyAgICB7CisgICAgICAgIFN0cmluZ0J1ZmZlciB3b3JrID0gbmV3IFN0cmluZ0J1ZmZlcigiYVxyXG5hIik7CisgICAgICAgIGludCBlcnJvckNvdW50ID0gMDsKKworICAgICAgICAvLyBhIGJyZWFrIHNob3VsZCBuZXZlciBvY2N1ciBiZXR3ZWVuIENSIGFuZCBMRgorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RDaGFycy5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgICB3b3JrLnNldENoYXJBdCgwLCB0ZXN0Q2hhcnMuY2hhckF0KGkpKTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgdGVzdENoYXJzLmxlbmd0aCgpOyBqKyspIHsKKyAgICAgICAgICAgICAgICB3b3JrLnNldENoYXJBdCgzLCB0ZXN0Q2hhcnMuY2hhckF0KGopKTsKKyAgICAgICAgICAgICAgICB0Yi5zZXRUZXh0KHdvcmsudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgayA9IHRiLmZpcnN0KCk7IGsgIT0gQnJlYWtJdGVyYXRvci5ET05FOyBrID0gdGIubmV4dCgpKQorICAgICAgICAgICAgICAgICAgICBpZiAoayA9PSAyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiQnJlYWsgYmV0d2VlbiBDUiBhbmQgTEYgaW4gc3RyaW5nIFUrIiArIEludGVnZXIudG9IZXhTdHJpbmcoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKHdvcmsuY2hhckF0KDApKSkgKyAiLCBVK2QgVSthIFUrIiArIEludGVnZXIudG9IZXhTdHJpbmcoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKHdvcmsuY2hhckF0KDMpKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JDb3VudCsrOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yQ291bnQgPj0gNzUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBhIGJyZWFrIHNob3VsZCBuZXZlciBvY2N1ciBiZWZvcmUgYSBub24tc3BhY2luZyBtYXJrLCB1bmxlc3MgaXQncyBwcmVjZWRlZAorICAgICAgICAvLyBieSBhIGxpbmUgdGVybWluYXRvcgorICAgICAgICB3b3JrLnNldExlbmd0aCgwKTsKKyAgICAgICAgd29yay5hcHBlbmQoImFhYWEiKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0Q2hhcnMubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgY2hhciBjID0gdGVzdENoYXJzLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmIChjID09ICdcbicgfHwgYyA9PSAnXHInIHx8IGMgPT0gJ1x1MjAyOScgfHwgYyA9PSAnXHUyMDI4JyB8fCBjID09ICdcdTAwMDMnKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgd29yay5zZXRDaGFyQXQoMSwgYyk7CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHRlc3RDaGFycy5sZW5ndGgoKTsgaisrKSB7CisgICAgICAgICAgICAgICAgYyA9IHRlc3RDaGFycy5jaGFyQXQoaik7CisgICAgICAgICAgICAgICAgaWYgKENoYXJhY3Rlci5nZXRUeXBlKGMpICE9IENoYXJhY3Rlci5OT05fU1BBQ0lOR19NQVJLICYmIENoYXJhY3Rlci5nZXRUeXBlKGMpCisgICAgICAgICAgICAgICAgICAgICAgICAhPSBDaGFyYWN0ZXIuRU5DTE9TSU5HX01BUkspCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIHdvcmsuc2V0Q2hhckF0KDIsIGMpOworICAgICAgICAgICAgICAgIHRiLnNldFRleHQod29yay50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBrID0gdGIuZmlyc3QoKTsgayAhPSBCcmVha0l0ZXJhdG9yLkRPTkU7IGsgPSB0Yi5uZXh0KCkpCisgICAgICAgICAgICAgICAgICAgIGlmIChrID09IDIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJCcmVhayBiZXR3ZWVuIFUrIiArIEludGVnZXIudG9IZXhTdHJpbmcoKGludCkod29yay5jaGFyQXQoMSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgYW5kIFUrIiArIEludGVnZXIudG9IZXhTdHJpbmcoKGludCkod29yay5jaGFyQXQoMikpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJvckNvdW50Kys7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3JDb3VudCA+PSA3NSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGRlYnVnTG9nbG4oU3RyaW5nIHMpIHsKKyAgICAgICAgZmluYWwgU3RyaW5nIHplcm9zID0gIjAwMDAiOworICAgICAgICBTdHJpbmcgdGVtcDsKKyAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IHMuY2hhckF0KGkpOworICAgICAgICAgICAgaWYgKGMgPj0gJyAnICYmIGMgPCAnXHUwMDdmJykKKyAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKGMpOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgiXFx1Iik7CisgICAgICAgICAgICAgICAgdGVtcCA9IEludGVnZXIudG9IZXhTdHJpbmcoKGludCljKTsKKyAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKHplcm9zLnN1YnN0cmluZygwLCA0IC0gdGVtcC5sZW5ndGgoKSkpOworICAgICAgICAgICAgICAgIG91dC5hcHBlbmQodGVtcCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4ob3V0LnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIHRlc3RzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0V29yZEJyZWFrKCkgeworICAgICAgICBWZWN0b3Igd29yZFNlbGVjdGlvbkRhdGEgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiMTIsMzQiKTsKKworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MDBBMiIpOyAvL2NlbnQgc2lnbgorICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTAwQTMiKTsgLy9wb3VuZCBzaWduCisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MDBBNCIpOyAvL2N1cnJlbmN5IHNpZ24KKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwMEE1Iik7IC8veWVuIHNpZ24KKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiYWxwaGEtYmV0YS1nYW1tYSIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIuIik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiQmFkZ2VzIik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIj8iKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJCQURHRVMiKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiISIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCI/Iik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIiEiKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJXZSIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoImRvbid0Iik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgibmVlZCIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIm5vIik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiU1RJTktJTkciKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJCQURHRVMiKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiISIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIhIik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIiEiKTsKKworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIwMTIuNTY2LDUiKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIxMjMuMzQzNCw5MDAiKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIxMDAwLDIzMyw0NTYuMDAwIik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiMSwyMy4zMjIlIik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiMTIzLjEyMjIiKTsKKworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MDAyNDEyMywwMDAuMjAiKTsKKworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIjE3OS4wMVx1MDAyNSIpOworCisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIkhlbGxvIik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIiwiKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJob3ciKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJhcmUiKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJ5b3UiKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJYIik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIiAiKTsKKworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJOb3ciKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHIiKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiaXMiKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXG4iKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgidGhlIik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlxyXG4iKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgidGltZSIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcbiIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcciIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJmb3IiKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHIiKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHIiKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiYWxsIik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIiAiKTsKKworICAgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KHdvcmRCcmVhaywgd29yZFNlbGVjdGlvbkRhdGEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBidWcgNDA5Nzc3OQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RCdWc0MDk3Nzc5KCkgeworICAgICAgICBWZWN0b3Igd29yZFNlbGVjdGlvbkRhdGEgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiYWFcdTAzMDBhIik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIiAiKTsKKworICAgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KHdvcmRCcmVhaywgd29yZFNlbGVjdGlvbkRhdGEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBidWcgNDA5ODQ2NworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RCdWc0MDk4NDY3V29yZHMoKSB7CisgICAgICAgIFZlY3RvciB3b3JkU2VsZWN0aW9uRGF0YSA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICAvLyBXaGF0IGZvbGxvd3MgaXMgYSBzdHJpbmcgb2YgS29yZWFuIGNoYXJhY3RlcnMgKEkgZm91bmQgaXQgaW4gdGhlIFllbGxvdyBQYWdlcworICAgICAgICAvLyBhZCBmb3IgdGhlIEtvcmVhbiBQcmVzYnl0ZXJpYW4gQ2h1cmNoIG9mIFNhbiBGcmFuY2lzY28sIGFuZCBJIGhvcGUgSSB0cmFuc2NyaWJlZAorICAgICAgICAvLyBpdCBjb3JyZWN0bHkpLCBmaXJzdCBhcyBwcmVjb21wb3NlZCBzeWxsYWJsZXMsIGFuZCB0aGVuIGFzIGNvbmpvaW5pbmcgamFtby4KKyAgICAgICAgLy8gQm90aCBzZXF1ZW5jZXMgc2hvdWxkIGJlIHNlbWFudGljYWxseSBpZGVudGljYWwgYW5kIGJyZWFrIHRoZSBzYW1lIHdheS4KKyAgICAgICAgLy8gcHJlY29tcG9zZWQgc3lsbGFibGVzLi4uCisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1YzBjMVx1ZDU2ZCIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1ZDU1Y1x1Yzc3OCIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1YzVmMFx1ZDU2OSIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1YzdhNVx1Yjg1Y1x1YWQ1MFx1ZDY4YyIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgIC8vIGNvbmpvaW5pbmcgamFtby4uLgorICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTExMDlcdTExNjFcdTExYmNcdTExMTJcdTExNjFcdTExYmMiKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTExMTJcdTExNjFcdTExYWJcdTExMGJcdTExNzVcdTExYWIiKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTExMGJcdTExNjdcdTExYWJcdTExMTJcdTExNjFcdTExYjgiKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTExMGNcdTExNjFcdTExYmNcdTExMDVcdTExNjlcdTExMDBcdTExNmRcdTExMTJcdTExNmMiKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiICIpOworCisgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3Qod29yZEJyZWFrLCB3b3JkU2VsZWN0aW9uRGF0YSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGJ1ZyA0MTE3NTU0CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEJ1ZzQxMTc1NTRXb3JkcygpIHsKKyAgICAgICAgVmVjdG9yIHdvcmRTZWxlY3Rpb25EYXRhID0gbmV3IFZlY3RvcigpOworCisgICAgICAgIC8vIHRoaXMgaXMgYSB0ZXN0IGZvciBidWcgIzQxMTc1NTQ6IHRoZSBpZGVvZ3JhcGhpYyBpdGVyYXRpb24gbWFyayAoVSszMDA1KSBzaG91bGQKKyAgICAgICAgLy8gY291bnQgYXMgYSBLYW5qaSBjaGFyYWN0ZXIgZm9yIHRoZSBwdXJwb3NlcyBvZiB3b3JkIGJyZWFraW5nCisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoImFiYyIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTRlMDFcdTRlMDJcdTMwMDVcdTRlMDNcdTRlMDMiKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiYWJjIik7CisKKyAgICAgICAgZ2VuZXJhbEl0ZXJhdG9yVGVzdCh3b3JkQnJlYWssIHdvcmRTZWxlY3Rpb25EYXRhKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U2VudGVuY2VCcmVhaygpIHsKKyAgICAgICAgVmVjdG9yIHNlbnRlbmNlU2VsZWN0aW9uRGF0YSA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiVGhpcyBpcyBhIHNpbXBsZSBzYW1wbGUgc2VudGVuY2UuICIpOworICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiKFRoaXMgaXMgaXQuKSAiKTsKKyAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlRoaXMgaXMgYSBzaW1wbGUgc2FtcGxlIHNlbnRlbmNlLiAiKTsKKyAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlwiVGhpcyBpc25cJ3QgaXQuXCIgIik7CisgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJIaSEgIik7CisgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJUaGlzIGlzIGEgc2ltcGxlIHNhbXBsZSBzZW50ZW5jZS4gIik7CisgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJJdCBkb2VzIG5vdCBoYXZlIHRvIG1ha2UgYW55IHNlbnNlIGFzIHlvdSBjYW4gc2VlLiAiKTsKKyAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIk5lbCBtZXp6byBkZWwgY2FtbWluIGRpIG5vc3RyYSB2aXRhLCBtaSByaXRyb3ZhaSBpbiB1bmEgc2VsdmEgb3NjdXJhLiAiKTsKKyAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIkNoZSBsYSBkcml0dGEgdmlhIGF2ZW8gc21hcnJpdGEuICIpOworICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiSGUgc2FpZCwgdGhhdCBJIHNhaWQsIHRoYXQgeW91IHNhaWQhISAiKTsKKworICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiRG9uJ3Qgcm9jayB0aGUgYm9hdC5cdTIwMjkiKTsKKworICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiQmVjYXVzZSBJIGFtIHRoZSBkYWRkeSwgdGhhdCBpcyB3aHkuICIpOworICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiTm90IG9uIG15IHRpbWUgKGVsIHRpbW8uKSEgIik7CisKKyAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlNvIHdoYXQhIVx1MjAyOSIpOworCisgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcIkJ1dCBub3csXCIgaGUgc2FpZCwgXCJJIGtub3chXCIgIik7CisgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJIYXJyaXMgdGh1bWJlZCBkb3duIHNldmVyYWwsIGluY2x1ZGluZyBcIkF3YXkgV2UgR29cIiAod2hpY2ggYmVjYW1lIHRoZSBodWdlIHN1Y2Nlc3MgT2tsYWhvbWEhKS4gIik7CisgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJPbmUgc3BlY2llcywgQi4gYW50aHJhY2lzLCBpcyBoaWdobHkgdmlydWxlbnQuXG4iKTsKKyAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIldvbGYgc2FpZCBhYm91dCBTb3VuZGVyOlwiQmVhdXRpZnVsbHkgdGhvdWdodC1vdXQgYW5kIGRpcmVjdGVkLlwiICIpOworICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiSGF2ZSB5b3UgZXZlciBzYWlkLCBcIlRoaXMgaXMgd2hlcmUgXHRJIHNoYWxsIGxpdmVcIj8gIik7CisgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJIZSBhbnN3ZXJlZCwgXCJZb3UgbWF5IG5vdCFcIiAiKTsKKyAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIkFub3RoZXIgcG9wdWxhciBzYXlpbmcgaXM6IFwiSG93IGRvIHlvdSBkbz9cIi4gIik7CisgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJZZXQgYW5vdGhlciBwb3B1bGFyIHNheWluZyBpczogXCdJXCdtIGZpbmUgdGhhbmtzLlwnICIpOworICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiV2hhdCBpcyB0aGUgcHJvcGVyIHVzZSBvZiB0aGUgYWJicmV2aWF0aW9uIHBwLj8gIik7CisgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJZZXMsIEkgYW0gZGVmaW5hdGVsbHkgMTJcIiB0YWxsISEiKTsKKworICAgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KHNlbnRlbmNlQnJlYWssIHNlbnRlbmNlU2VsZWN0aW9uRGF0YSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGJ1ZyA0MTEzODM1CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEJ1ZzQxMTM4MzUoKSB7CisgICAgICAgIFZlY3RvciBzZW50ZW5jZVNlbGVjdGlvbkRhdGEgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgLy8gdGVzdCBmb3IgYnVnICM0MTEzODM1OiBcbiBhbmQgXHIgY291bnQgYXMgc3BhY2VzLCBub3QgYXMgcGFyYWdyYXBoIGJyZWFrcworICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiTm93XHJpc1xudGhlXHJcbnRpbWVcblxyZm9yXHJccmFsbFx1MjAyOSIpOworCisgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3Qoc2VudGVuY2VCcmVhaywgc2VudGVuY2VTZWxlY3Rpb25EYXRhKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAYnVnIDQxMTEzMzgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QnVnNDExMTMzOCgpIHsKKyAgICAgICAgVmVjdG9yIHNlbnRlbmNlU2VsZWN0aW9uRGF0YSA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICAvLyB0ZXN0IGZvciBidWcgIzQxMTEzMzg6IERvbid0IGJyZWFrIHNlbnRlbmNlcyBhdCB0aGUgYm91bmRhcnkgYmV0d2VlbiBDSksKKyAgICAgICAgLy8gYW5kIG90aGVyIGxldHRlcnMKKyAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1NTQ4N1x1NjdmZlx1ZTU5MVx1NTAxN1x1NjFiM1x1NjBhMVx1OTUxMFx1ODE2NTpcIkpBVkFcdTgyMWMiCisgICAgICAgICAgICAgICAgKyAiXHU4MTY1XHU3ZmM4XHU1MWNlXHUzMDZkLFx1MjQ5NFx1NTZkOFx1NGVjMFx1NjBiMVx1ODU2MFx1NTFiYSIKKyAgICAgICAgICAgICAgICArICJcdTYxMWRcdTU3YjZcdTI1MTBcdTVkNDZcIi5cdTIwMjkiKTsKKyAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1NTQ4N1x1NjdmZlx1ZTU5MVx1NTAxN1x1NjFiM1x1NjBhMVx1OTUxMFx1ODE2NVx1OWRlOCIKKyAgICAgICAgICAgICAgICArICJcdTk3ZTRKQVZBXHU4MjFjXHU4MTY1XHU3ZmM4XHU1MWNlXHUzMDZkXHVlMzBiXHUyNDk0XHU1NmQ4XHU0ZWMwIgorICAgICAgICAgICAgICAgICsgIlx1NjBiMVx1ODU2MFx1NTFiYVx1NjExZFx1NTdiNlx1MjUxMFx1NWQ0Nlx1OTdlNVx1Nzc1MVx1MjAyOSIpOworICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHU1NDg3XHU2N2ZmXHVlNTkxXHU1MDE3XHU2MWIzXHU2MGExXHU5NTEwXHU4MTY1XHU5ZGU4XHU5N2U0IgorICAgICAgICAgICAgICAgICsgIlx1NjQ3MFx1ODc5MEpBVkFcdTgyMWNcdTgxNjVcdTdmYzhcdTUxY2VcdTMwNmRcdWUzMGJcdTI0OTRcdTU2ZDgiCisgICAgICAgICAgICAgICAgKyAiXHU0ZWMwXHU2MGIxXHU4NTYwXHU1MWJhXHU2MTFkXHU1N2I2XHUyNTEwXHU1ZDQ2XHU5N2U1XHU3NzUxXHUyMDI5Iik7CisgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJIZSBzYWlkLCBcIkkgY2FuIGdvIHRoZXJlLlwiXHUyMDI5Iik7CisKKyAgICAgICAgZ2VuZXJhbEl0ZXJhdG9yVGVzdChzZW50ZW5jZUJyZWFrLCBzZW50ZW5jZVNlbGVjdGlvbkRhdGEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBidWcgNDExNzU1NAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RCdWc0MTE3NTU0U2VudGVuY2VzKCkgeworICAgICAgICBWZWN0b3Igc2VudGVuY2VTZWxlY3Rpb25EYXRhID0gbmV3IFZlY3RvcigpOworCisgICAgICAgIC8vIFRyZWF0IGZ1bGx3aWR0aCB2YXJpYW50cyBvZiAuIT8gdGhlIHNhbWUgYXMgdGhlaXIKKyAgICAgICAgLy8gbm9ybWFsIGNvdW50ZXJwYXJ0cworICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiSSBrbm93IEknbSByaWdodFx1ZmYwZSAiKTsKKyAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlJpZ2h0XHVmZjFmICIpOworICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiUmlnaHRcdWZmMDEgIik7CisKKyAgICAgICAgLy8gRG9uJ3QgYnJlYWsgc2VudGVuY2VzIGF0IGJvdW5kYXJ5IGJldHdlZW4gQ0pLIGFuZCBkaWdpdHMKKyAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1NTQ4N1x1NjdmZlx1ZTU5MVx1NTAxN1x1NjFiM1x1NjBhMVx1OTUxMFx1ODE2NVx1OWRlOCIKKyAgICAgICAgICAgICAgICArICJcdTk3ZTQ4ODg4XHU4MjFjXHU4MTY1XHU3ZmM4XHU1MWNlXHUzMDZkXHVlMzBiXHUyNDk0XHU1NmQ4XHU0ZWMwIgorICAgICAgICAgICAgICAgICsgIlx1NjBiMVx1ODU2MFx1NTFiYVx1NjExZFx1NTdiNlx1MjUxMFx1NWQ0Nlx1OTdlNVx1Nzc1MVx1MjAyOSIpOworCisgICAgICAgIC8vIEJyZWFrIHNlbnRlbmNlIGJldHdlZW4gYSBzZW50ZW5jZSB0ZXJtaW5hdG9yIGFuZAorICAgICAgICAvLyBvcGVuaW5nIHB1bmN0dWF0aW9uCisgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJubz8iKTsKKyAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIih5ZXMpIik7CisKKyAgICAgICAgZ2VuZXJhbEl0ZXJhdG9yVGVzdChzZW50ZW5jZUJyZWFrLCBzZW50ZW5jZVNlbGVjdGlvbkRhdGEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBidWcgNDE1ODM4MQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RCdWc0MTU4MzgxKCkgeworICAgICAgICBWZWN0b3Igc2VudGVuY2VTZWxlY3Rpb25EYXRhID0gbmV3IFZlY3RvcigpOworCisgICAgICAgIC8vIERvbid0IGJyZWFrIHNlbnRlbmNlIGFmdGVyIHBlcmlvZCBpZiBpdCBpc24ndCBmb2xsb3dlZCBieSBhIHNwYWNlCisgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJUZXN0IDxjb2RlPkZsYWdzLkZsYWc8L2NvZGU+IGNsYXNzLiAgIik7CisgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJBbm90aGVyIHRlc3QuXHUyMDI5Iik7CisKKyAgICAgICAgLy8gTm8gYnJlYWtzIHdoZW4gdGhlcmUgYXJlIG5vIHRlcm1pbmF0b3JzIGFyb3VuZAorICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiPFA+UHJvdmlkZXMgYSBzZXQgb2YgIgorICAgICAgICAgICAgICAgICsgIiZxdW90O2xpZ2h0d2VpZ2h0JnF1b3Q7IChhbGwtamF2YTxGT05UIFNJWkU9XCItMlwiPjxTVVA+VE0iCisgICAgICAgICAgICAgICAgKyAiPC9TVVA+PC9GT05UPiBsYW5ndWFnZSkgY29tcG9uZW50cyB0aGF0LCAiCisgICAgICAgICAgICAgICAgKyAidG8gdGhlIG1heGltdW0gZGVncmVlIHBvc3NpYmxlLCB3b3JrIHRoZSBzYW1lIG9uIGFsbCBwbGF0Zm9ybXMuICAiKTsKKyAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIkFub3RoZXIgdGVzdC5cdTIwMjkiKTsKKworICAgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KHNlbnRlbmNlQnJlYWssIHNlbnRlbmNlU2VsZWN0aW9uRGF0YSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGJ1ZyA0MTQzMDcxCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEJ1ZzQxNDMwNzEoKSB7CisgICAgICAgIFZlY3RvciBzZW50ZW5jZVNlbGVjdGlvbkRhdGEgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgLy8gTWFrZSBzdXJlIHNlbnRlbmNlcyB0aGF0IGVuZCB3aXRoIGRpZ2l0cyB3b3JrIHJpZ2h0CisgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJUb2RheSBpcyB0aGUgMjd0aCBvZiBNYXksIDE5OTguICAiKTsKKyAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlRvbW9ycm93IHdpbGwgYmUgMjggTWF5IDE5OTguICAiKTsKKyAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlRoZSBkYXkgYWZ0ZXIgd2lsbCBiZSB0aGUgMzB0aC5cdTIwMjkiKTsKKworICAgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KHNlbnRlbmNlQnJlYWssIHNlbnRlbmNlU2VsZWN0aW9uRGF0YSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGJ1ZyA0MTUyNDE2CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEJ1ZzQxNTI0MTYoKSB7CisgICAgICAgIFZlY3RvciBzZW50ZW5jZVNlbGVjdGlvbkRhdGEgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgLy8gTWFrZSBzdXJlIHNlbnRlbmNlcyBlbmRpbmcgd2l0aCBhIGNhcGl0YWwgbGV0dGVyIGFyZSB0cmVhdGVkIGNvcnJlY3RseQorICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiVGhlIHR5cGUgb2YgYWxsIHByaW1pdGl2ZSAiCisgICAgICAgICAgICAgICAgKyAiPGNvZGU+Ym9vbGVhbjwvY29kZT4gdmFsdWVzIGFjY2Vzc2VkIGluIHRoZSB0YXJnZXQgVk0uICAiKTsKKyAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIkNhbGxzIHRvIHh4eCB3aWxsIHJldHVybiBhbiAiCisgICAgICAgICAgICAgICAgKyAiaW1wbGVtZW50b3Igb2YgdGhpcyBpbnRlcmZhY2UuXHUyMDI5Iik7CisKKyAgICAgICAgZ2VuZXJhbEl0ZXJhdG9yVGVzdChzZW50ZW5jZUJyZWFrLCBzZW50ZW5jZVNlbGVjdGlvbkRhdGEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBidWcgNDE1MjExNworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RCdWc0MTUyMTE3KCkgeworICAgICAgICBWZWN0b3Igc2VudGVuY2VTZWxlY3Rpb25EYXRhID0gbmV3IFZlY3RvcigpOworCisgICAgICAgIC8vIE1ha2Ugc3VyZSBzZW50ZW5jZSBicmVha2luZyBpcyBoYW5kbGluZyBwdW5jdHVhdGlvbiBjb3JyZWN0bHkKKyAgICAgICAgLy8gW0NPVUxEIE5PVCBSRVBST0RVQ0UgVEhJUyBCVUcsIEJVVCBURVNUIElTIEhFUkUgVE8gTUFLRSBTVVJFCisgICAgICAgIC8vIElUIERPRVNOJ1QgQ1JPUCBVUF0KKyAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIkNvbnN0cnVjdHMgYSByYW5kb21seSBnZW5lcmF0ZWQgIgorICAgICAgICAgICAgICAgICsgIkJpZ0ludGVnZXIsIHVuaWZvcm1seSBkaXN0cmlidXRlZCBvdmVyIHRoZSByYW5nZSA8dHQ+MDwvdHQ+ICIKKyAgICAgICAgICAgICAgICArICJ0byA8dHQ+KDI8c3VwPm51bUJpdHM8L3N1cD4gLSAxKTwvdHQ+LCBpbmNsdXNpdmUuICAiKTsKKyAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlRoZSB1bmlmb3JtaXR5IG9mIHRoZSBkaXN0cmlidXRpb24gIgorICAgICAgICAgICAgICAgICsgImFzc3VtZXMgdGhhdCBhIGZhaXIgc291cmNlIG9mIHJhbmRvbSBiaXRzIGlzIHByb3ZpZGVkIGluICIKKyAgICAgICAgICAgICAgICArICI8dHQ+cm5kPC90dD4uICAiKTsKKyAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIk5vdGUgdGhhdCB0aGlzIGNvbnN0cnVjdG9yIGFsd2F5cyAiCisgICAgICAgICAgICAgICAgKyAiY29uc3RydWN0cyBhIG5vbi1uZWdhdGl2ZSBCaWdJbnRlZ2VyLlx1MjAyOSIpOworCisgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3Qoc2VudGVuY2VCcmVhaywgc2VudGVuY2VTZWxlY3Rpb25EYXRhKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0TGluZUJyZWFrKCkgeworICAgICAgICBWZWN0b3IgbGluZVNlbGVjdGlvbkRhdGEgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiTXVsdGktIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIkxldmVsICIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJleGFtcGxlICIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJvZiAiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiYSAiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgic2VtaS0iKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiaWRpb3RpYyAiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgibm9uLSIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJzZW5zaWNhbCAiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiKG5vbi0iKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiaW1wb3J0YW50KSAiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgic2VudGVuY2UuICIpOworCisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIkhpICAiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiSGVsbG8gIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIkhvd1xuIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoImFyZVxyIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoInlvdVx1MjAyOCIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJmaW5lLlx0Iik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoImdvb2QuICAiKTsKKworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJOb3dcciIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJpc1xuIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoInRoZVxyXG4iKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgidGltZVxuIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlxyIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoImZvclxyIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlxyIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoImFsbCIpOworCisgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3QobGluZUJyZWFrLCBsaW5lU2VsZWN0aW9uRGF0YSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGJ1ZyA0MDY4MTMzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEJ1ZzQwNjgxMzMoKSB7CisgICAgICAgIFZlY3RvciBsaW5lU2VsZWN0aW9uRGF0YSA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTk2ZjYiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHU0ZTAwXHUzMDAyIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1NGU4Y1x1MzAwMSIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTRlMDlcdTMwMDJcdTMwMDEiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHU1NmRiXHUzMDAxXHUzMDAyXHUzMDAxIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1NGU5NCwiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHU1MTZkLiIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTRlMDMuXHUzMDAxLFx1MzAwMiIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTUxNmIiKTsKKworICAgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KGxpbmVCcmVhaywgbGluZVNlbGVjdGlvbkRhdGEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBidWcgNDA4NjA1MgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RCdWc0MDg2MDUyKCkgeworICAgICAgICBWZWN0b3IgbGluZVNlbGVjdGlvbkRhdGEgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiZm9vXHUwMGEwYmFyICIpOworLy8gICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoImZvb1x1ZmVmZmJhciIpOworCisgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3QobGluZUJyZWFrLCBsaW5lU2VsZWN0aW9uRGF0YSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGJ1ZyA0MDk3OTIwCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEJ1ZzQwOTc5MjAoKSB7CisgICAgICAgIFZlY3RvciBsaW5lU2VsZWN0aW9uRGF0YSA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJkb2csIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoImNhdCwiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgibW91c2UgIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIihvbmUpIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIih0d28pXG4iKTsKKworICAgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KGxpbmVCcmVhaywgbGluZVNlbGVjdGlvbkRhdGEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBidWcgNDAzNTI2NgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RCdWc0MDM1MjY2KCkgeworICAgICAgICBWZWN0b3IgbGluZVNlbGVjdGlvbkRhdGEgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiVGhlICIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJiYWxhbmNlICIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJpcyAiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiJC0yMyw0NTYuNzgsICIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJub3QgIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIi0kMzIsNDU2Ljc4IVxuIik7CisKKyAgICAgICAgZ2VuZXJhbEl0ZXJhdG9yVGVzdChsaW5lQnJlYWssIGxpbmVTZWxlY3Rpb25EYXRhKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAYnVnIDQwOTg0NjcKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QnVnNDA5ODQ2N0xpbmVzKCkgeworICAgICAgICBWZWN0b3IgbGluZVNlbGVjdGlvbkRhdGEgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgLy8gV2hhdCBmb2xsb3dzIGlzIGEgc3RyaW5nIG9mIEtvcmVhbiBjaGFyYWN0ZXJzIChJIGZvdW5kIGl0IGluIHRoZSBZZWxsb3cgUGFnZXMKKyAgICAgICAgLy8gYWQgZm9yIHRoZSBLb3JlYW4gUHJlc2J5dGVyaWFuIENodXJjaCBvZiBTYW4gRnJhbmNpc2NvLCBhbmQgSSBob3BlIEkgdHJhbnNjcmliZWQKKyAgICAgICAgLy8gaXQgY29ycmVjdGx5KSwgZmlyc3QgYXMgcHJlY29tcG9zZWQgc3lsbGFibGVzLCBhbmQgdGhlbiBhcyBjb25qb2luaW5nIGphbW8uCisgICAgICAgIC8vIEJvdGggc2VxdWVuY2VzIHNob3VsZCBiZSBzZW1hbnRpY2FsbHkgaWRlbnRpY2FsIGFuZCBicmVhayB0aGUgc2FtZSB3YXkuCisgICAgICAgIC8vIHByZWNvbXBvc2VkIHN5bGxhYmxlcy4uLgorICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdWMwYzFcdWQ1NmQgIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1ZDU1Y1x1Yzc3OCAiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHVjNWYwXHVkNTY5ICIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdWM3YTVcdWI4NWNcdWFkNTBcdWQ2OGMgIik7CisgICAgICAgIC8vIGNvbmpvaW5pbmcgamFtby4uLgorICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTExMDlcdTExNjFcdTExYmNcdTExMTJcdTExNjFcdTExYmMgIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MTExMlx1MTE2MVx1MTFhYlx1MTEwYlx1MTE3NVx1MTFhYiAiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUxMTBiXHUxMTY3XHUxMWFiXHUxMTEyXHUxMTYxXHUxMWI4ICIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTExMGNcdTExNjFcdTExYmNcdTExMDVcdTExNjlcdTExMDBcdTExNmRcdTExMTJcdTExNmMiKTsKKworICAgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KGxpbmVCcmVhaywgbGluZVNlbGVjdGlvbkRhdGEpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RUaGFpTGluZUJyZWFrKCkgeworICAgICAgICBWZWN0b3IgbGluZVNlbGVjdGlvbkRhdGEgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgLy8gXHUwZTJmLS0gdGhlIFRoYWkgcGFpeWFubm9pIGNoYXJhY3Rlci0tIGlzbid0IGEgbGV0dGVyLiAgSXQncyBhIHN5bWJvbCB0aGF0CisgICAgICAgIC8vIHJlcHJlc2VudHMgZWxpZGVkIGxldHRlcnMgYXQgdGhlIGVuZCBvZiBhIGxvbmcgd29yZC4gIEl0IHNob3VsZCBiZSBib3VuZCB0bworICAgICAgICAvLyB0aGUgZW5kIG9mIHRoZSB3b3JkIGFuZCBub3QgdHJlYXRlZCBhcyBhbiBpbmRlcGVuZGVudCBwdW5jdHVhdGlvbiBtYXJrLgorICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlMmFcdTBlMTZcdTBlMzJcdTBlMTlcdTBlMzVcdTBlMmYiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwZTA4XHUwZTMwIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGUyM1x1MGUzMFx1MGUxNFx1MGUyMSIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlNDBcdTBlMDhcdTBlNDlcdTBlMzIiKTsKKy8vICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlMmJcdTBlMTlcdTBlNDlcdTBlMzIiKTsKKy8vICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlMTdcdTBlMzVcdTBlNDgiKTsKKy8vIEkgdGhpbmsgdGhlIGFib3ZlIHR3byBsaW5lcyBhcmUgdGhlIHByZWZlcnJlZCByZWFkaW5nIG9mIHRoaXMgdGV4dCwgYnV0IG91ciBjdXJyZW50CisvLyBkaWN0aW9uYXJ5IHlpZWxkcyB0aGUgZm9sbG93aW5nOgorbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwZTJiXHUwZTE2XHUwZTQ5XHUwZTMyXHUwZTE3XHUwZTM1XHUwZTQ4Iik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGUyZFx1MGUyZFx1MGUwMSIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlMjFcdTBlMzIiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwZTQwXHUwZTIzXHUwZTQ4XHUwZTA3Iik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGUyM1x1MGUzMFx1MGUxYVx1MGUzMlx1MGUyMiIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlMmRcdTBlMjJcdTBlNDhcdTBlMzJcdTBlMDciKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwZTQwXHUwZTE1XHUwZTQ3XHUwZTIxIik7CisKKyAgICAgICAgLy8gdGhlIG9uZSB0aW1lIHdoZXJlIHRoZSBwYWl5YW5ub2kgb2NjdXJzIHNvbWV3aGVyZSBvdGhlciB0aGFuIGF0IHRoZSBlbmQKKyAgICAgICAgLy8gb2YgYSB3b3JkIGlzIGluIHRoZSBUaGFpIGFiYnJldmF0aW9uIGZvciAiZXRjLiIsIHdoaWNoIGJvdGggYmVnaW5zIGFuZAorICAgICAgICAvLyBlbmRzIHdpdGggYSBwYWl5YW5ub2kKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwZTJmXHUwZTI1XHUwZTJmIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGUxN1x1MGUzNVx1MGU0OCIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlMTlcdTBlMzFcdTBlNDlcdTBlMTkiKTsKKworICAgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KEJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKG5ldyBMb2NhbGUoInRoIiwgIiIsICIiKSksCisgICAgICAgICAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RNaXhlZFRoYWlMaW5lQnJlYWsoKSB7CisgICAgICAgIFZlY3RvciBsaW5lU2VsZWN0aW9uRGF0YSA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICAvLyBBcmFiaWMgbnVtZXJhbHMgc2hvdWxkIGFsd2F5cyBiZSBzZXBhcmF0ZWQgZnJvbSBzdXJyb3VuZGluZyBUaGFpIHRleHQKKy8qCisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGUwNFx1MGU0OFx1MGUzMiIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlNDBcdTBlMDdcdTBlMzRcdTBlMTkiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwZTFhXHUwZTMyXHUwZTE3Iik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGU0MVx1MGUxNVx1MGUzMCIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlMjNcdTBlMzBcdTBlMTRcdTBlMzFcdTBlMWEiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiMzkiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwZTFhXHUwZTMyXHUwZTE3ICIpOworCisgICAgICAgIC8vIHdvcmRzIGluIG5vbi1UaGFpIHNjcmlwdHMgc2hvdWxkIGFsd2F5cyBiZSBzZXBhcmF0ZWQgZnJvbSBzdXJyb3VuZGluZyBUaGFpIHRleHQKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwZTE3XHUwZTE0Iik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGUyYVx1MGUyZFx1MGUxYSIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJKYXZhIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGUxYVx1MGUxOSIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlNDBcdTBlMDRcdTBlMjNcdTBlMzdcdTBlNDhcdTBlMmRcdTBlMDciKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwZTQ0XHUwZTJkXHUwZTFhXHUwZTM1XHUwZTQwXHUwZTJkXHUwZTQ3XHUwZTIxICIpOworCisgICAgICAgIC8vIFRoYWkgbnVtZXJhbHMgc2hvdWxkIGFsd2F5cyBiZSBzZXBhcmF0ZWQgZnJvbSB0aGUgdGV4dCBzdXJyb3VuZGluZyB0aGVtCisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGUwNFx1MGU0OFx1MGUzMiIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlNDBcdTBlMDdcdTBlMzRcdTBlMTkiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwZTFhXHUwZTMyXHUwZTE3Iik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGU0MVx1MGUxNVx1MGUzMCIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlMjNcdTBlMzBcdTBlMTRcdTBlMzFcdTBlMWEiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwZTUzXHUwZTU5Iik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGUxYVx1MGUzMlx1MGUxNyAiKTsKKworICAgICAgICAvLyBUaGFpIHRleHQgc2hvdWxkIGludGVyYWN0IGNvcnJlY3RseSB3aXRoIHB1bmN0dWF0aW9uIGFuZCBzeW1ib2xzCisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGU0NFx1MGUyZFx1MGUxYVx1MGUzNVx1MGU0MFx1MGUyZFx1MGU0N1x1MGUyMSIpOworLy8gICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIihcdTBlMWJcdTBlMjNcdTBlMzBcdTBlNDBcdTBlMTdcdTBlMjgiKTsKKy8vICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlNDRcdTBlMTdcdTBlMjIpIik7CisvLyBJIHRoaW5rIHRoZSBhYm92ZSBsaW5lcyByZXByZXNlbnQgdGhlIHByZWZlcnJlZCByZWFkaW5nIGZvciB0aGlzIHRleHQsIGJ1dCBvdXIgY3VycmVudAorLy8gZGljdGlvbmFyeSBmaWxlIHlpZWxkcyB0aGUgZm9sbG93aW5nOgorbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiKFx1MGUxYlx1MGUyM1x1MGUzMFx1MGU0MFx1MGUxN1x1MGUyOFx1MGU0NFx1MGUxN1x1MGUyMikiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwZTA4XHUwZTMzXHUwZTAxXHUwZTMxXHUwZTE0Iik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGU0MFx1MGUxYlx1MGUzNFx1MGUxNCIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlMTVcdTBlMzFcdTBlMjdcIiIpOworKi8KKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwZTJlXHUwZTMyXHUwZTIzXHUwZTRjXHUwZTE0XHUwZTE0XHUwZTM0XHUwZTJhXHUwZTAxXHUwZTRjXCIiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwZTIzXHUwZTM4XHUwZTQ4XHUwZTE5Iik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGU0M1x1MGUyYlx1MGUyMVx1MGU0OCIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlNDBcdTBlMTRcdTBlMzdcdTBlMmRcdTBlMTlcdTBlMjFcdTBlMzQuIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGUyMi4iKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwZTE5XHUwZTM1XHUwZTQ5Iik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGUyM1x1MGUzMlx1MGUwNFx1MGUzMiIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIkMjAwIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGU0MFx1MGUxN1x1MGU0OFx1MGUzMiIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlMTlcdTBlMzFcdTBlNDlcdTBlMTkgIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIihcIlx1MGUyZVx1MGUzMlx1MGUyM1x1MGU0Y1x1MGUxNFx1MGUxNFx1MGUzNFx1MGUyYVx1MGUwMVx1MGU0Y1wiKS4iKTsKKworICAgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KEJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKG5ldyBMb2NhbGUoInRoIiwgIiIsICIiKSksCisgICAgICAgICAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RNYWl5YW1vaygpIHsKKyAgICAgICAgVmVjdG9yIGxpbmVTZWxlY3Rpb25EYXRhID0gbmV3IFZlY3RvcigpOworCisgICAgICAgIC8vIHRoZSBUaGFpIG1haXlhbW9rIGNoYXJhY3RlciBpcyBhIHNob3J0aGFuZCBzeW1ib2wgdGhhdCBtZWFucyAicmVwZWF0IHRoZSBwcmV2aW91cworICAgICAgICAvLyB3b3JkIi4gIEluc3RlYWQgb2YgYXBwZWFyaW5nIGFzIGEgd29yZCB1bnRvIGl0c2VsZiwgaG93ZXZlciwgaXQncyBrZXB0IHRvZ2V0aGVyCisgICAgICAgIC8vIHdpdGggdGhlIHdvcmQgYmVmb3JlIGl0CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGU0NFx1MGUxYlx1MGU0NiIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlMjFcdTBlMzJcdTBlNDYiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwZTIzXHUwZTMwXHUwZTJiXHUwZTI3XHUwZTQ4XHUwZTMyXHUwZTA3Iik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGUwMVx1MGUyM1x1MGUzOFx1MGUwN1x1MGU0MFx1MGUxN1x1MGUxZSIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlNDFcdTBlMjVcdTBlMzAiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwZTQwXHUwZTAzXHUwZTM1XHUwZTIyXHUwZTA3Iik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGU0M1x1MGUyYlx1MGUyMVx1MGU0OCIpOworCisgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3QoQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UobmV3IExvY2FsZSgidGgiLCAiIiwgIiIpKSwKKyAgICAgICAgICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGJ1ZyA0MTE3NTU0CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEJ1ZzQxMTc1NTRMaW5lcygpIHsKKyAgICAgICAgVmVjdG9yIGxpbmVTZWxlY3Rpb25EYXRhID0gbmV3IFZlY3RvcigpOworCisgICAgICAgIC8vIEZ1bGx3aWR0aCAuIT8gc2hvdWxkIGJlIHRyZWF0ZWQgYXMgcG9zdEp3cmQKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHU0ZTAxXHVmZjBlIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1NGUwMlx1ZmYwMSIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTRlMDNcdWZmMWYiKTsKKworICAgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KGxpbmVCcmVhaywgbGluZVNlbGVjdGlvbkRhdGEpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RMZXR0ZXJzQW5kRGlnaXRzKCkgeworICAgICAgICAvLyBhIGNoYXJhY3RlciBzZXF1ZW5jZSBzdWNoIGFzICJYMTEiIG9yICIzMEYzIiBvciAibmF0aXZlMmFzY2lpIiBzaG91bGQKKyAgICAgICAgLy8gYmUga2VwdCB0b2dldGhlciBhcyBhIHNpbmdsZSB3b3JkCisgICAgICAgIFZlY3RvciBsaW5lU2VsZWN0aW9uRGF0YSA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJYMTEgIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIjMwRjMgIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIm5hdGl2ZTJhc2NpaSIpOworCisgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3QobGluZUJyZWFrLCBsaW5lU2VsZWN0aW9uRGF0YSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGJ1ZyA0MjE3NzAzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEJ1ZzQyMTc3MDMoKSB7CisgICAgICAgIFZlY3RvciBsaW5lU2VsZWN0aW9uRGF0YSA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICAvLyBUaGVyZSBzaG91bGRuJ3QgYmUgYSBsaW5lIGJyZWFrIGJldHdlZW4gc2VudGVuY2UtZW5kaW5nIHB1bmN0dWF0aW9uCisgICAgICAgIC8vIGFuZCBhIGNsb3NpbmcgcXVvdGUKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiSGUgIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoInNhaWQgIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlwiR28hXCIgICIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJJICIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJ3ZW50LiAgIik7CisKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiSGFzaHRhYmxlJEVudW1lcmF0aW9uICIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJnZXRUZXh0KCkuIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoImdldEluZGV4KCkiKTsKKworICAgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KGxpbmVCcmVhaywgbGluZVNlbGVjdGlvbkRhdGEpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBncmF2ZVMgPSAiU1x1MDMwMCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGFjdXRlQmVsb3dJID0gImlcdTAzMTciOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBhY3V0ZUUgPSAiZVx1MDMwMSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGNpcmN1bWZsZXhBID0gImFcdTAzMDIiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyB0aWxkZUUgPSAiZVx1MDMwMyI7CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2hhcmFjdGVyQnJlYWsoKSB7CisgICAgICAgIFZlY3RvciBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhID0gbmV3IFZlY3RvcigpOworCisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudChncmF2ZVMpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoYWN1dGVCZWxvd0kpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIm0iKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJwIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgibCIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoYWN1dGVFKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgicyIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoY2lyY3VtZmxleEEpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIm0iKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJwIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgibCIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQodGlsZGVFKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIuIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgidyIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoY2lyY3VtZmxleEEpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoInciKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJhIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiZiIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoInEiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcbiIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlxyIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHJcbiIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlxuIik7CisKKyAgICAgICAgZ2VuZXJhbEl0ZXJhdG9yVGVzdChjaGFyYWN0ZXJCcmVhaywgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGJ1ZyA0MDk4NDY3CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEJ1ZzQwOTg0NjdDaGFyYWN0ZXJzKCkgeworICAgICAgICBWZWN0b3IgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YSA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICAvLyBXaGF0IGZvbGxvd3MgaXMgYSBzdHJpbmcgb2YgS29yZWFuIGNoYXJhY3RlcnMgKEkgZm91bmQgaXQgaW4gdGhlIFllbGxvdyBQYWdlcworICAgICAgICAvLyBhZCBmb3IgdGhlIEtvcmVhbiBQcmVzYnl0ZXJpYW4gQ2h1cmNoIG9mIFNhbiBGcmFuY2lzY28sIGFuZCBJIGhvcGUgSSB0cmFuc2NyaWJlZAorICAgICAgICAvLyBpdCBjb3JyZWN0bHkpLCBmaXJzdCBhcyBwcmVjb21wb3NlZCBzeWxsYWJsZXMsIGFuZCB0aGVuIGFzIGNvbmpvaW5pbmcgamFtby4KKyAgICAgICAgLy8gQm90aCBzZXF1ZW5jZXMgc2hvdWxkIGJlIHNlbWFudGljYWxseSBpZGVudGljYWwgYW5kIGJyZWFrIHRoZSBzYW1lIHdheS4KKyAgICAgICAgLy8gcHJlY29tcG9zZWQgc3lsbGFibGVzLi4uCisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHVjMGMxIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHVkNTZkIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1ZDU1YyIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1Yzc3OCIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdWM1ZjAiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdWQ1NjkiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHVjN2E1Iik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHViODVjIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHVhZDUwIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHVkNjhjIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgICAvLyBjb25qb2luaW5nIGphbW8uLi4KKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTExMDlcdTExNjFcdTExYmMiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTExMTJcdTExNjFcdTExYmMiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUxMTEyXHUxMTYxXHUxMWFiIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUxMTBiXHUxMTc1XHUxMWFiIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MTEwYlx1MTE2N1x1MTFhYiIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MTExMlx1MTE2MVx1MTFiOCIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTExMGNcdTExNjFcdTExYmMiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTExMDVcdTExNjkiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTExMDBcdTExNmQiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTExMTJcdTExNmMiKTsKKworICAgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KGNoYXJhY3RlckJyZWFrLCBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0VGl0bGVCcmVhaygpCisgICAgeworICAgICAgICBWZWN0b3IgdGl0bGVEYXRhID0gbmV3IFZlY3RvcigpOworICAgICAgICB0aXRsZURhdGEuYWRkRWxlbWVudCgiICAgIik7CisgICAgICAgIHRpdGxlRGF0YS5hZGRFbGVtZW50KCJUaGlzICIpOworICAgICAgICB0aXRsZURhdGEuYWRkRWxlbWVudCgiaXMgIik7CisgICAgICAgIHRpdGxlRGF0YS5hZGRFbGVtZW50KCJhICIpOworICAgICAgICB0aXRsZURhdGEuYWRkRWxlbWVudCgic2ltcGxlICIpOworICAgICAgICB0aXRsZURhdGEuYWRkRWxlbWVudCgic2FtcGxlICIpOworICAgICAgICB0aXRsZURhdGEuYWRkRWxlbWVudCgic2VudGVuY2UuICIpOworICAgICAgICB0aXRsZURhdGEuYWRkRWxlbWVudCgiVGhpcyAiKTsKKworICAgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KHRpdGxlQnJlYWssIHRpdGxlRGF0YSk7CisgICAgfQorCisKKworICAgIC8qCisgICAgICogQGJ1ZyA0MTUzMDcyCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEJ1ZzQxNTMwNzIoKSB7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgaXRlciA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKCk7CisgICAgICAgIFN0cmluZyBzdHIgPSAiLi4uSGVsbG8sIFdvcmxkIS4uLiI7CisgICAgICAgIGludCBiZWdpbiA9IDM7CisgICAgICAgIGludCBlbmQgPSBzdHIubGVuZ3RoKCkgLSAzOworICAgICAgICAvLyBub3QgdXNlZCBib29sZWFuIGdvdEV4Y2VwdGlvbiA9IGZhbHNlOworICAgICAgICBib29sZWFuIGR1bW15OworCisgICAgICAgIGl0ZXIuc2V0VGV4dChuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3Ioc3RyLCBiZWdpbiwgZW5kLCBiZWdpbikpOworICAgICAgICBmb3IgKGludCBpbmRleCA9IC0xOyBpbmRleCA8IGJlZ2luICsgMTsgKytpbmRleCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBkdW1teSA9IGl0ZXIuaXNCb3VuZGFyeShpbmRleCk7CisgICAgICAgICAgICAgICAgaWYgKGluZGV4IDwgYmVnaW4pCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEaWRuJ3QgZ2V0IGV4Y2VwdGlvbiB3aXRoIG9mZnNldCA9ICIgKyBpbmRleCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGFuZCBiZWdpbiBpbmRleCA9ICIgKyBiZWdpbik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoaW5kZXggPj0gYmVnaW4pCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJHb3QgZXhjZXB0aW9uIHdpdGggb2Zmc2V0ID0gIiArIGluZGV4ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgYW5kIGJlZ2luIGluZGV4ID0gIiArIGJlZ2luKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RCdWc0MTQ2MTc1U2VudGVuY2VzKCkgeworICAgICAgICBWZWN0b3Igc2VudGVuY2VTZWxlY3Rpb25EYXRhID0gbmV3IFZlY3RvcigpOworCisgICAgICAgIC8vIGJyZWFrIGJldHdlZW4gcGVyaW9kcyBhbmQgb3BlbmluZyBwdW5jdHVhdGlvbiBldmVuIHdoZW4gdGhlcmUncyBubworICAgICAgICAvLyBpbnRlcnZlbmluZyBzcGFjZQorICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiZW5kLiIpOworICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiKFRoaXMgaXNcdTIwMjkiKTsKKworICAgICAgICAvLyB0cmVhdCB0aGUgZnVsbHdpZHRoIHBlcmlvZCBhcyBhbiB1bmFtYmlndW91cyBzZW50ZW5jZSB0ZXJtaW5hdG9yCisgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTdkNDJcdTMwOGZcdTMwOGFcdWZmMGUiKTsKKyAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MzAwY1x1MzA1M1x1MzA4Y1x1MzA2ZiIpOworCisgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3Qoc2VudGVuY2VCcmVhaywgc2VudGVuY2VTZWxlY3Rpb25EYXRhKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QnVnNDE0NjE3NUxpbmVzKCkgeworICAgICAgICBWZWN0b3IgbGluZVNlbGVjdGlvbkRhdGEgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgLy8gdGhlIGZ1bGx3aWR0aCBjb21tYSBzaG91bGQgc3RpY2sgdG8gdGhlIHByZWNlZGluZyBKYXBhbmVzZSBjaGFyYWN0ZXIKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHU3ZDQyXHVmZjBjIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MzA4ZiIpOworCisgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3QobGluZUJyZWFrLCBsaW5lU2VsZWN0aW9uRGF0YSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEJ1ZzQyMTQzNjcoKSB7CisgICAgICAgIFZlY3RvciB3b3JkU2VsZWN0aW9uRGF0YSA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICAvLyB0aGUgaGlyYWdhbmEgYW5kIGthdGFrYW5hIGl0ZXJhdGlvbiBtYXJrcyBhbmQgdGhlIGxvbmcgdm93ZWwgbWFyaworICAgICAgICAvLyBhcmUgbm90IGJlaW5nIHRyZWF0ZWQgY29ycmVjdGx5IGJ5IHRoZSB3b3JkLWJyZWFrIGl0ZXJhdG9yCisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MzA0Mlx1MzA0NFx1MzA5ZFx1MzA0Mlx1MzA5ZVx1MzA0Mlx1MzBmY1x1MzA0MiIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTMwYTJcdTMwYTRcdTMwZmRcdTMwYTJcdTMwZmVcdTMwYTJcdTMwZmNcdTMwYTIiKTsKKworICAgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KHdvcmRCcmVhaywgd29yZFNlbGVjdGlvbkRhdGEpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjYW5uZWRUZXN0Q2hhcnMKKyAgICAgICAgPSAiXHUwMDAwXHUwMDAxXHUwMDAyXHUwMDAzXHUwMDA0ICFcIiMkJSYoKSstMDEyMzQ8PT5BQkNERVtdXl9gYWJjZGV7fXxcdTAwYTBcdTAwYTIiCisgICAgICAgICsgIlx1MDBhM1x1MDBhNFx1MDBhNVx1MDBhNlx1MDBhN1x1MDBhOFx1MDBhOVx1MDBhYlx1MDBhZFx1MDBhZVx1MDBhZlx1MDBiMFx1MDBiMlx1MDBiMyIKKyAgICAgICAgKyAiXHUwMGI0XHUwMGI5XHUwMGJiXHUwMGJjXHUwMGJkXHUwMmIwXHUwMmIxXHUwMmIyXHUwMmIzXHUwMmI0XHUwMzAwXHUwMzAxXHUwMzAyXHUwMzAzIgorICAgICAgICArICJcdTAzMDRcdTA1ZDBcdTA1ZDFcdTA1ZDJcdTA1ZDNcdTA1ZDRcdTA5MDNcdTA5M2VcdTA5M2ZcdTA5NDBcdTA5NDlcdTBmM2FcdTBmM2JcdTIwMDAiCisgICAgICAgICsgIlx1MjAwMVx1MjAwMlx1MjAwY1x1MjAwZFx1MjAwZVx1MjAwZlx1MjAxMFx1MjAxMVx1MjAxMlx1MjAyOFx1MjAyOVx1MjAyYVx1MjAzZVx1MjAzZiIKKyAgICAgICAgKyAiXHUyMDQwXHUyMGRkXHUyMGRlXHUyMGRmXHUyMGUwXHUyMTYwXHUyMTYxXHUyMTYyXHUyMTYzXHUyMTY0IjsKKworICAgIHB1YmxpYyB2b2lkIFRlc3RTZW50ZW5jZUludmFyaWFudHMoKQorICAgIHsKKyAgICAgICAgQnJlYWtJdGVyYXRvciBlID0gQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKCk7CisgICAgICAgIGRvT3RoZXJJbnZhcmlhbnRUZXN0KGUsIGNhbm5lZFRlc3RDaGFycyArICIuLFx1MzAwMVx1MzAwMlx1MzA0MVx1MzA0Mlx1MzA0M1x1ZmVmZiIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RXb3JkSW52YXJpYW50cygpCisgICAgeworICAgICAgICBCcmVha0l0ZXJhdG9yIGUgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSgpOworICAgICAgICBkb0JyZWFrSW52YXJpYW50VGVzdChlLCBjYW5uZWRUZXN0Q2hhcnMgKyAiXCcsLlx1MzA0MVx1MzA0Mlx1MzA0M1x1MzA5Ylx1MzA5Y1x1MzBhMVx1MzBhMiIKKyAgICAgICAgICAgICsgIlx1MzBhM1x1NGUwMFx1NGUwMVx1NGUwMiIpOworICAgICAgICBkb090aGVySW52YXJpYW50VGVzdChlLCBjYW5uZWRUZXN0Q2hhcnMgKyAiXCcsLlx1MzA0MVx1MzA0Mlx1MzA0M1x1MzA5Ylx1MzA5Y1x1MzBhMVx1MzBhMiIKKyAgICAgICAgICAgICsgIlx1MzBhM1x1NGUwMFx1NGUwMVx1NGUwMiIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RMaW5lSW52YXJpYW50cygpCisgICAgeworICAgICAgICBCcmVha0l0ZXJhdG9yIGUgPSBCcmVha0l0ZXJhdG9yLmdldExpbmVJbnN0YW5jZSgpOworICAgICAgICBTdHJpbmcgdGVzdENoYXJzID0gY2FubmVkVGVzdENoYXJzICsgIi4sOzpcdTMwMDFcdTMwMDJcdTMwNDFcdTMwNDJcdTMwNDNcdTMwNDRcdTMwNDUiCisgICAgICAgICAgICArICJcdTMwYTNcdTRlMDBcdTRlMDFcdTRlMDIiOworICAgICAgICBkb0JyZWFrSW52YXJpYW50VGVzdChlLCB0ZXN0Q2hhcnMpOworICAgICAgICBkb090aGVySW52YXJpYW50VGVzdChlLCB0ZXN0Q2hhcnMpOworCisgICAgICAgIGludCBlcnJvckNvdW50ID0gMDsKKworICAgICAgICAvLyBpbiBhZGRpdGlvbiB0byB0aGUgb3RoZXIgaW52YXJpYW50cywgYSBsaW5lLWJyZWFrIGl0ZXJhdG9yIHNob3VsZCBtYWtlIHN1cmUgdGhhdDoKKyAgICAgICAgLy8gaXQgZG9lc24ndCBicmVhayBhcm91bmQgdGhlIG5vbi1icmVha2luZyBjaGFyYWN0ZXJzCisgICAgICAgIFN0cmluZyBub0JyZWFrID0gIlx1MDBhMFx1MjAwN1x1MjAxMVx1ZmVmZiI7CisgICAgICAgIFN0cmluZ0J1ZmZlciB3b3JrID0gbmV3IFN0cmluZ0J1ZmZlcigiYWFhIik7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdENoYXJzLmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IHRlc3RDaGFycy5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoYyA9PSAnXHInIHx8IGMgPT0gJ1xuJyB8fCBjID09ICdcdTIwMjknIHx8IGMgPT0gJ1x1MjAyOCcgfHwgYyA9PSAnXHUwMDAzJykKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIHdvcmsuc2V0Q2hhckF0KDAsIGMpOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBub0JyZWFrLmxlbmd0aCgpOyBqKyspIHsKKyAgICAgICAgICAgICAgICB3b3JrLnNldENoYXJBdCgxLCBub0JyZWFrLmNoYXJBdChqKSk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgayA9IDA7IGsgPCB0ZXN0Q2hhcnMubGVuZ3RoKCk7IGsrKykgeworICAgICAgICAgICAgICAgICAgICB3b3JrLnNldENoYXJBdCgyLCB0ZXN0Q2hhcnMuY2hhckF0KGspKTsKKyAgICAgICAgICAgICAgICAgICAgZS5zZXRUZXh0KHdvcmsudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGwgPSBlLmZpcnN0KCk7IGwgIT0gQnJlYWtJdGVyYXRvci5ET05FOyBsID0gZS5uZXh0KCkpCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobCA9PSAxIHx8IGwgPT0gMikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJHb3QgYnJlYWsgYmV0d2VlbiBVKyIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKChpbnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod29yay5jaGFyQXQobCAtIDEpKSkgKyAiIGFuZCBVKyIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkod29yay5jaGFyQXQobCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JDb3VudCsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnJvckNvdW50ID49IDc1KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gaXQgZG9lcyBicmVhayBhZnRlciBkYXNoZXMgKHVubGVzcyB0aGV5J3JlIGZvbGxvd2VkIGJ5IGEgZGlnaXQsIGEgbm9uLXNwYWNpbmcgbWFyaywKKyAgICAgICAgLy8gYSBjdXJyZW5jeSBzeW1ib2wsIGEgc3BhY2UsIGEgZm9ybWF0LWNvbnRyb2wgY2hhcmFjdGVyLCBhIHJlZ3VsYXIgY29udHJvbCBjaGFyYWN0ZXIsCisgICAgICAgIC8vIGEgbGluZSBvciBwYXJhZ3JhcGggc2VwYXJhdG9yLCBvciBhbm90aGVyIGRhc2gpCisgICAgICAgIFN0cmluZyBkYXNoZXMgPSAiLVx1MDBhZFx1MjAxMFx1MjAxMlx1MjAxM1x1MjAxNCI7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdENoYXJzLmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgIHdvcmsuc2V0Q2hhckF0KDAsIHRlc3RDaGFycy5jaGFyQXQoaSkpOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBkYXNoZXMubGVuZ3RoKCk7IGorKykgeworICAgICAgICAgICAgICAgIHdvcmsuc2V0Q2hhckF0KDEsIGRhc2hlcy5jaGFyQXQoaikpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGsgPSAwOyBrIDwgdGVzdENoYXJzLmxlbmd0aCgpOyBrKyspIHsKKyAgICAgICAgICAgICAgICAgICAgY2hhciBjID0gdGVzdENoYXJzLmNoYXJBdChrKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKENoYXJhY3Rlci5nZXRUeXBlKGMpID09IENoYXJhY3Rlci5ERUNJTUFMX0RJR0lUX05VTUJFUiB8fAorICAgICAgICAgICAgICAgICAgICAgICAgQ2hhcmFjdGVyLmdldFR5cGUoYykgPT0gQ2hhcmFjdGVyLk9USEVSX05VTUJFUiB8fAorICAgICAgICAgICAgICAgICAgICAgICAgQ2hhcmFjdGVyLmdldFR5cGUoYykgPT0gQ2hhcmFjdGVyLk5PTl9TUEFDSU5HX01BUksgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgIENoYXJhY3Rlci5nZXRUeXBlKGMpID09IENoYXJhY3Rlci5FTkNMT1NJTkdfTUFSSyB8fAorICAgICAgICAgICAgICAgICAgICAgICAgQ2hhcmFjdGVyLmdldFR5cGUoYykgPT0gQ2hhcmFjdGVyLkNVUlJFTkNZX1NZTUJPTCB8fAorICAgICAgICAgICAgICAgICAgICAgICAgQ2hhcmFjdGVyLmdldFR5cGUoYykgPT0gQ2hhcmFjdGVyLkRBU0hfUFVOQ1RVQVRJT04gfHwKKyAgICAgICAgICAgICAgICAgICAgICAgIENoYXJhY3Rlci5nZXRUeXBlKGMpID09IENoYXJhY3Rlci5TUEFDRV9TRVBBUkFUT1IgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgIENoYXJhY3Rlci5nZXRUeXBlKGMpID09IENoYXJhY3Rlci5GT1JNQVQgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgIENoYXJhY3Rlci5nZXRUeXBlKGMpID09IENoYXJhY3Rlci5DT05UUk9MIHx8CisgICAgICAgICAgICAgICAgICAgICAgICBjID09ICdcbicgfHwgYyA9PSAnXHInIHx8IGMgPT0gJ1x1MjAyOCcgfHwgYyA9PSAnXHUyMDI5JyB8fAorICAgICAgICAgICAgICAgICAgICAgICAgYyA9PSAnXHUwMDAzJyB8fCBjID09ICdcdTIwMDcnIHx8IGMgPT0gJ1x1MjAxMScgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgIGMgPT0gJ1x1ZmVmZicpCisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgd29yay5zZXRDaGFyQXQoMiwgYyk7CisgICAgICAgICAgICAgICAgICAgIGUuc2V0VGV4dCh3b3JrLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICBib29sZWFuIHNhdzIgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgbCA9IGUuZmlyc3QoKTsgbCAhPSBCcmVha0l0ZXJhdG9yLkRPTkU7IGwgPSBlLm5leHQoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsID09IDIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2F3MiA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGlmICghc2F3MikgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkRpZG4ndCBnZXQgYnJlYWsgYmV0d2VlbiBVKyIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKChpbnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod29yay5jaGFyQXQoMSkpKSArICIgYW5kIFUrIiArIEludGVnZXIudG9IZXhTdHJpbmcoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSh3b3JrLmNoYXJBdCgyKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yQ291bnQrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnJvckNvdW50ID49IDc1KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDaGFyYWN0ZXJJbnZhcmlhbnRzKCkKKyAgICB7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgZSA9IEJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoKTsKKyAgICAgICAgZG9CcmVha0ludmFyaWFudFRlc3QoZSwgY2FubmVkVGVzdENoYXJzICsgIlx1MTEwMFx1MTEwMVx1MTEwMlx1MTE2MFx1MTE2MVx1MTE2Mlx1MTFhOCIKKyAgICAgICAgICAgICsgIlx1MTFhOVx1MTFhYSIpOworICAgICAgICBkb090aGVySW52YXJpYW50VGVzdChlLCBjYW5uZWRUZXN0Q2hhcnMgKyAiXHUxMTAwXHUxMTAxXHUxMTAyXHUxMTYwXHUxMTYxXHUxMTYyXHUxMWE4IgorICAgICAgICAgICAgKyAiXHUxMWE5XHUxMWFhIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEVtcHR5U3RyaW5nKCkKKyAgICB7CisgICAgICAgIFN0cmluZyB0ZXh0ID0gIiI7CisgICAgICAgIFZlY3RvciB4ID0gbmV3IFZlY3RvcigpOworICAgICAgICB4LmFkZEVsZW1lbnQodGV4dCk7CisKKyAgICAgICAgZ2VuZXJhbEl0ZXJhdG9yVGVzdChsaW5lQnJlYWssIHgpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RHZXRBdmFpbGFibGVMb2NhbGVzKCkKKyAgICB7CisgICAgICAgIExvY2FsZVtdIGxvY0xpc3QgPSBCcmVha0l0ZXJhdG9yLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKworICAgICAgICBpZiAobG9jTGlzdC5sZW5ndGggPT0gMCkKKyAgICAgICAgICAgIGVycmxuKCJnZXRBdmFpbGFibGVMb2NhbGVzKCkgcmV0dXJuZWQgYW4gZW1wdHkgbGlzdCEiKTsKKyAgICAgICAgLy8gSSBoYXZlIG5vIGlkZWEgaG93IHRvIHRlc3QgdGhpcyBmdW5jdGlvbi4uLgorICAgIH0KKworICAgIC8qKgorICAgICAqIEBidWcgNDA5NTMyMgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RKYXBhbmVzZUxpbmVCcmVhaygpCisgICAgeworICAgICAgICBTdHJpbmdCdWZmZXIgdGVzdFN0cmluZyA9IG5ldyBTdHJpbmdCdWZmZXIoIlx1NGUwMHhcdTRlOGMiKTsKKyAgICAgICAgU3RyaW5nIHByZWNlZGluZ0NoYXJzID0gIihbe1x1MDBhYiRcdTAwYTVcdTAwYTNcdTAwYTRcdTIwMThcdTIwMWFcdTIwMWNcdTIwMWVcdTIwMWJcdTIwMWYiOworICAgICAgICBTdHJpbmcgZm9sbG93aW5nQ2hhcnMgPSAiKV19XHUwMGJiISUsLlx1MzAwMVx1MzAwMlx1MzA2M1x1MzA4M1x1MzA4NVx1MzA4N1x1MzBjM1x1MzBlM1x1MzBlNVx1MzBlN1x1MzBmYzo7XHUzMDliXHUzMDljXHUzMDA1XHUzMDlkXHUzMDllXHUzMGZkXHUzMGZlXHUyMDE5XHUyMDFkXHUwMGIwXHUyMDMyXHUyMDMzXHUyMDM0XHUyMDMwXHUyMDMxXHUyMTAzXHUyMTA5XHUwMGEyXHUwMzAwXHUwMzAxXHUwMzAyIjsKKyAgICAgICAgQnJlYWtJdGVyYXRvciBpdGVyID0gQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UoTG9jYWxlLkpBUEFOKTsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHByZWNlZGluZ0NoYXJzLmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgIHRlc3RTdHJpbmcuc2V0Q2hhckF0KDEsIHByZWNlZGluZ0NoYXJzLmNoYXJBdChpKSk7CisgICAgICAgICAgICBpdGVyLnNldFRleHQodGVzdFN0cmluZy50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGludCBqID0gaXRlci5maXJzdCgpOworICAgICAgICAgICAgaWYgKGogIT0gMCkKKyAgICAgICAgICAgICAgICBlcnJsbigiamEgbGluZSBicmVhayBmYWlsdXJlOiBmYWlsZWQgdG8gc3RhcnQgYXQgMCIpOworICAgICAgICAgICAgaiA9IGl0ZXIubmV4dCgpOworICAgICAgICAgICAgaWYgKGogIT0gMSkKKyAgICAgICAgICAgICAgICBlcnJsbigiamEgbGluZSBicmVhayBmYWlsdXJlOiBmYWlsZWQgdG8gc3RvcCBiZWZvcmUgJyIgKyBwcmVjZWRpbmdDaGFycy5jaGFyQXQoaSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICInICgiICsgKChpbnQpKHByZWNlZGluZ0NoYXJzLmNoYXJBdChpKSkpICsgIikiKTsKKyAgICAgICAgICAgIGogPSBpdGVyLm5leHQoKTsKKyAgICAgICAgICAgIGlmIChqICE9IDMpCisgICAgICAgICAgICAgICAgZXJybG4oImphIGxpbmUgYnJlYWsgZmFpbHVyZTogZmFpbGVkIHRvIHNraXAgcG9zaXRpb24gYWZ0ZXIgJyIgKyBwcmVjZWRpbmdDaGFycy5jaGFyQXQoaSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICInICgiICsgKChpbnQpKHByZWNlZGluZ0NoYXJzLmNoYXJBdChpKSkpICsgIikiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZm9sbG93aW5nQ2hhcnMubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgdGVzdFN0cmluZy5zZXRDaGFyQXQoMSwgZm9sbG93aW5nQ2hhcnMuY2hhckF0KGkpKTsKKyAgICAgICAgICAgIGl0ZXIuc2V0VGV4dCh0ZXN0U3RyaW5nLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgaW50IGogPSBpdGVyLmZpcnN0KCk7CisgICAgICAgICAgICBpZiAoaiAhPSAwKQorICAgICAgICAgICAgICAgIGVycmxuKCJqYSBsaW5lIGJyZWFrIGZhaWx1cmU6IGZhaWxlZCB0byBzdGFydCBhdCAwIik7CisgICAgICAgICAgICBqID0gaXRlci5uZXh0KCk7CisgICAgICAgICAgICBpZiAoaiAhPSAyKQorICAgICAgICAgICAgICAgIGVycmxuKCJqYSBsaW5lIGJyZWFrIGZhaWx1cmU6IGZhaWxlZCB0byBza2lwIHBvc2l0aW9uIGJlZm9yZSAnIiArIGZvbGxvd2luZ0NoYXJzLmNoYXJBdChpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIicgKCIgKyAoKGludCkoZm9sbG93aW5nQ2hhcnMuY2hhckF0KGkpKSkgKyAiKSIpOworICAgICAgICAgICAgaiA9IGl0ZXIubmV4dCgpOworICAgICAgICAgICAgaWYgKGogIT0gMykKKyAgICAgICAgICAgICAgICBlcnJsbigiamEgbGluZSBicmVhayBmYWlsdXJlOiBmYWlsZWQgdG8gc3RvcCBhZnRlciAnIiArIGZvbGxvd2luZ0NoYXJzLmNoYXJBdChpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIicgKCIgKyAoKGludCkoZm9sbG93aW5nQ2hhcnMuY2hhckF0KGkpKSkgKyAiKSIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQGJ1ZyA0MDY4MTM3CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEVuZEJlaGF2aW9yKCkKKyAgICB7CisgICAgICAgIFN0cmluZyB0ZXN0U3RyaW5nID0gImJvby4iOworICAgICAgICBCcmVha0l0ZXJhdG9yIHdiID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoKTsKKyAgICAgICAgd2Iuc2V0VGV4dCh0ZXN0U3RyaW5nKTsKKworICAgICAgICBpZiAod2IuZmlyc3QoKSAhPSAwKQorICAgICAgICAgICAgZXJybG4oIkRpZG4ndCBnZXQgYnJlYWsgYXQgYmVnaW5uaW5nIG9mIHN0cmluZy4iKTsKKyAgICAgICAgaWYgKHdiLm5leHQoKSAhPSAzKQorICAgICAgICAgICAgZXJybG4oIkRpZG4ndCBnZXQgYnJlYWsgYmVmb3JlIHBlcmlvZCBpbiBcImJvby5cIiIpOworICAgICAgICBpZiAod2IuY3VycmVudCgpICE9IDQgJiYgd2IubmV4dCgpICE9IDQpCisgICAgICAgICAgICBlcnJsbigiRGlkbid0IGdldCBicmVhayBhdCBlbmQgb2Ygc3RyaW5nLiIpOworICAgIH0KKworICAgIC8vIFRoZSBGb2xsb3dpbmcgdHdvIHRlc3RzIGFyZSBwb3J0ZWQgZnJvbSBJQ1U0QyAxLjguMSBbUmljaGFyZC9HQ0xdCisgICAgLyoqCisgICAgICogUG9ydCBGcm9tOiAgIElDVTRDIHYxLjguMSA6IHRleHRib3VuZHMgOiBJbnRsVGVzdFRleHRCb3VuZGFyeQorICAgICAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L2l0dHh0YmQuY3BwCisgICAgICoqLworICAgIC8qKgorICAgICAqIHRlc3QgbWV0aG9kcyBwcmVjZWRpbmcsIGZvbGxvd2luZyBhbmQgaXNCb3VuZGFyeQorICAgICAqKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UHJlY2VkaW5nKCkgeworICAgICAgICBTdHJpbmcgd29yZHMzID0gImFhYSBiYmIgY2NjIjsKKyAgICAgICAgQnJlYWtJdGVyYXRvciBlID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIGUuc2V0VGV4dCggd29yZHMzICk7CisgICAgICAgIGUuZmlyc3QoKTsKKyAgICAgICAgaW50IHAxID0gZS5uZXh0KCk7CisgICAgICAgIGludCBwMiA9IGUubmV4dCgpOworICAgICAgICBpbnQgcDMgPSBlLm5leHQoKTsKKyAgICAgICAgaW50IHA0ID0gZS5uZXh0KCk7CisKKyAgICAgICAgaW50IGYgPSBlLmZvbGxvd2luZyhwMisxKTsKKyAgICAgICAgaW50IHAgPSBlLnByZWNlZGluZyhwMisxKTsKKyAgICAgICAgaWYgKGYhPXAzKQorICAgICAgICAgICAgZXJybG4oIkludGxUZXN0VGV4dEJvdW5kYXJ5OjpUZXN0UHJlY2VkaW5nOiBmIT1wMyIpOworICAgICAgICBpZiAocCE9cDIpCisgICAgICAgICAgICBlcnJsbigiSW50bFRlc3RUZXh0Qm91bmRhcnk6OlRlc3RQcmVjZWRpbmc6IHAhPXAyIik7CisKKyAgICAgICAgaWYgKHAxKzEhPXAyKQorICAgICAgICAgICAgZXJybG4oIkludGxUZXN0VGV4dEJvdW5kYXJ5OjpUZXN0UHJlY2VkaW5nOiBwMSsxIT1wMiIpOworCisgICAgICAgIGlmIChwMysxIT1wNCkKKyAgICAgICAgICAgIGVycmxuKCJJbnRsVGVzdFRleHRCb3VuZGFyeTo6VGVzdFByZWNlZGluZzogcDMrMSE9cDQiKTsKKworICAgICAgICBpZiAoIWUuaXNCb3VuZGFyeShwMikgfHwgZS5pc0JvdW5kYXJ5KHAyKzEpIHx8ICFlLmlzQm91bmRhcnkocDMpKQorICAgICAgICB7CisgICAgICAgICAgICBlcnJsbigiSW50bFRlc3RUZXh0Qm91bmRhcnk6OlRlc3RQcmVjZWRpbmc6IGlzQm91bmRhcnkgZXJyIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IFRoYWkgd29yZCBicmVhayB1c2luZyBnZW5lcmFsSXRlcmF0b3JUZXN0KCkKKyAgICAgKiovCisgICAgcHVibGljIHZvaWQgVGVzdFRoYWlXb3JkQnJlYWsoKSB7CisgICAgICAgIFZlY3RvciB0aGFpV29yZFNlbGVjdGlvbiA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICB0aGFpV29yZFNlbGVjdGlvbi5hZGRFbGVtZW50KCJcdTBFMUFcdTBFMTciKTsgLy8yCisgICAgICAgIHRoYWlXb3JkU2VsZWN0aW9uLmFkZEVsZW1lbnQoIlx1MEUxN1x1MEUzNVx1MEU0OCIpOyAvLzUKKyAgICAgICAgdGhhaVdvcmRTZWxlY3Rpb24uYWRkRWxlbWVudCgiXHUwRTUxIik7IC8vNgorICAgICAgICB0aGFpV29yZFNlbGVjdGlvbi5hZGRFbGVtZW50KCJcdTBFMUVcdTBFMzJcdTBFMjJcdTBFMzgiKTsgLy8xMAorICAgICAgICB0aGFpV29yZFNlbGVjdGlvbi5hZGRFbGVtZW50KCJcdTBFNDRcdTBFMEJcdTBFNDJcdTBFMDRcdTBFMjVcdTBFMTkiKTsgLy8xNgorICAgICAgICB0aGFpV29yZFNlbGVjdGlvbi5hZGRFbGVtZW50KCJcclxuIik7IC8vMTgKKworICAgICAgICAvLyBUaGlzIGlzIHRoZSBjb3JyZWN0IHJlc3VsdAorICAgICAgICAvL3RoYWlXb3JkU2VsZWN0aW9uLmFkZEVsZW1lbnQoKCJcdTBFNDJcdTBFMTRcdTBFNDJcdTBFMjNcdTBFMThcdTBFMzUiKSk7IC8vMjQKKyAgICAgICAgLy90aGFpV29yZFNlbGVjdGlvbi5hZGRFbGVtZW50KCgiXHUwRTJEXHUwRTMyXHUwRTI4XHUwRTMxXHUwRTIyIikpOyAvLzI5CisKKyAgICAgICAgLy8gYW5kIHRoaXMgaXMgd2hhdCB0aGUgZGljdGlvbmFyeSBkb2VzLi4uCisgICAgICAgIHRoYWlXb3JkU2VsZWN0aW9uLmFkZEVsZW1lbnQoIlx1MEU0Mlx1MEUxNCIpOyAvLyAyMAorICAgICAgICB0aGFpV29yZFNlbGVjdGlvbi5hZGRFbGVtZW50KCJcdTBFNDJcdTBFMjNcdTBFMThcdTBFMzVcdTBFMkRcdTBFMzJcdTBFMjhcdTBFMzFcdTBFMjIiKTsgLy8yOQorCisgICAgICAgIHRoYWlXb3JkU2VsZWN0aW9uLmFkZEVsZW1lbnQoIlx1MEUyRFx1MEUyMlx1MEUzOVx1MEU0OCIpOyAvLzMzCisKKyAgICAgICAgLy8gVGhpcyBpcyB0aGUgY29ycmVjdCByZXN1bHQKKyAgICAgICAgLy90aGFpV29yZFNlbGVjdGlvbi5hZGRFbGVtZW50KCJcdTBFMTdcdTBFNDhcdTBFMzJcdTBFMjEiKTsgLy8zNworICAgICAgICAvL3RoYWlXb3JkU2VsZWN0aW9uLmFkZEVsZW1lbnQoIlx1MEUwMVx1MEUyNVx1MEUzMlx1MEUwNyIpOyAvLzQxCisKKyAgICAgICAgLy8gYW5kIHRoaXMgaXMgd2hhdCB0aGUgZGljdGlvbmFyeSBkb2VzCisgICAgICAgIHRoYWlXb3JkU2VsZWN0aW9uLmFkZEVsZW1lbnQoIlx1MEUxN1x1MEU0OFx1MEUzMlx1MEUyMVx1MEUwMVx1MEUyNVx1MEUzMlx1MEUwNyIpOyAvLzQxCisKKyAgICAgICAgdGhhaVdvcmRTZWxlY3Rpb24uYWRkRWxlbWVudCgiXHUwRTE3XHUwRTM4XHUwRTQ4XHUwRTA3Iik7IC8vNDUKKyAgICAgICAgdGhhaVdvcmRTZWxlY3Rpb24uYWRkRWxlbWVudCgiXHUwRTQzXHUwRTJCXHUwRTBEXHUwRTQ4Iik7IC8vNDkKKyAgICAgICAgdGhhaVdvcmRTZWxlY3Rpb24uYWRkRWxlbWVudCgiXHUwRTQzXHUwRTE5Iik7IC8vNTEKKworICAgICAgICAvLyBUaGlzIGlzIHRoZSBjb3JyZWN0IHJlc3VsdAorICAgICAgICAvL3RoYWlXb3JkU2VsZWN0aW9uLmFkZEVsZW1lbnQoIlx1MEU0MVx1MEUwNFx1MEUxOVx1MEUwQlx1MEUzMVx1MEUyQSIpOyAvLzU3CisgICAgICAgIC8vdGhhaVdvcmRTZWxlY3Rpb24uYWRkRWxlbWVudCgiXHUwRTAxXHUwRTMxXHUwRTFBIik7IC8vNjAKKworICAgICAgICAvLyBhbmQgdGhpcyBpcyB3aGF0IHRoZSBkaWN0aW9uYXJ5IGRvZXMKKyAgICAgICAgdGhhaVdvcmRTZWxlY3Rpb24uYWRkRWxlbWVudCgiXHUwRTQxXHUwRTA0XHUwRTE5Iik7IC8vIDU0CisgICAgICAgIHRoYWlXb3JkU2VsZWN0aW9uLmFkZEVsZW1lbnQoIlx1MEUwQlx1MEUzMVx1MEUyQVx1MEUwMVx1MEUzMVx1MEUxQSIpOyAvLzYwCisKKyAgICAgICAgdGhhaVdvcmRTZWxlY3Rpb24uYWRkRWxlbWVudCgiXHUwRTI1XHUwRTM4XHUwRTA3Iik7IC8vNjMKKworICAgICAgICAvLyBUaGlzIGlzIHRoZSBjb3JyZWN0IHJlc3VsdAorICAgICAgICAvL3RoYWlXb3JkU2VsZWN0aW9uLmFkZEVsZW1lbnQoIlx1MEU0MFx1MEUyRVx1MEUxOVx1MEUyM1x1MEUzNSIpOyAvLzY4CisgICAgICAgIC8vdGhhaVdvcmRTZWxlY3Rpb24uYWRkRWxlbWVudCgiXHUwRTBBXHUwRTMyXHUwRTI3Iik7IC8vNzEKKyAgICAgICAgLy90aGFpV29yZFNlbGVjdGlvbi5hZGRFbGVtZW50KCJcdTBFNDRcdTBFMjNcdTBFNDgiKTsgLy83NAorICAgICAgICAvL3RoYWlXb3JkU2VsZWN0aW9uLmFkZEVsZW1lbnQoIlx1MEU0MVx1MEUyNVx1MEUzMCIpOyAvLzc3CisKKyAgICAgICAgLy8gYW5kIHRoaXMgaXMgd2hhdCB0aGUgZGljdGlvbmFyeSBkb2VzCisgICAgICAgIHRoYWlXb3JkU2VsZWN0aW9uLmFkZEVsZW1lbnQoIlx1MEU0MFx1MEUyRSIpOyAvLyA2NQorICAgICAgICB0aGFpV29yZFNlbGVjdGlvbi5hZGRFbGVtZW50KCJcdTBFMTlcdTBFMjNcdTBFMzVcdTBFMEFcdTBFMzJcdTBFMjdcdTBFNDRcdTBFMjNcdTBFNDhcdTBFNDFcdTBFMjVcdTBFMzAiKTsgLy83NworCisgICAgICAgIEJyZWFrSXRlcmF0b3IgZSA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKG5ldyBMb2NhbGUoInRoIiwiIiwiIikpOworCisgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3QoZSwgdGhhaVdvcmRTZWxlY3Rpb24pOworICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvUkJCSUFQSVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL1JCQklBUElUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDU4YWU4MgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL1JCQklBUElUZXN0LmphdmEKQEAgLTAsMCArMSw0NjAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL1JCQklBUElUZXN0LmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDU6MTUgJCAKKyAqICRSZXZpc2lvbjogMS4zICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjEuOC4xIDogcmJiaSA6IFJCQklBUElUZXN0CisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9yYmJpYXB0cy5jcHAKKyAqKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5yYmJpOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SdWxlQmFzZWRCcmVha0l0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcjsKKworLyoqCisgKiBBUEkgVGVzdCB0aGUgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBjbGFzcworICovCitwdWJsaWMgY2xhc3MgUkJCSUFQSVRlc3QgZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ayB7CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBSQkJJQVBJVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdHMgY2xvbmUoKSBhbmQgZXF1YWxzKCkgbWV0aG9kcyBvZiBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yICAgICAgICAgCisgICAgICoqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDbG9uZUVxdWFscygpIHsKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBiaTEgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZShMb2NhbGUuZ2V0RGVmYXVsdCgpKTsgCisgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgYmllcXVhbCA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOyAKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBiaTMgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZShMb2NhbGUuZ2V0RGVmYXVsdCgpKTsgCisgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgYmkyID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOyAKKworICAgICAgICBTdHJpbmcgdGVzdFN0cmluZyA9ICJUZXN0aW5nIHdvcmQgYnJlYWsgaXRlcmF0b3JzJ3MgY2xvbmUoKSBhbmQgZXF1YWxzKCkiOworICAgICAgICBiaTEuc2V0VGV4dCh0ZXN0U3RyaW5nKTsKKyAgICAgICAgYmkyLnNldFRleHQodGVzdFN0cmluZyk7CisgICAgICAgIGJpZXF1YWwuc2V0VGV4dCh0ZXN0U3RyaW5nKTsKKyAgICAgICAgCisgICAgICAgIGJpMy5zZXRUZXh0KCJoZWxsbyIpOworICAgICAgICBsb2dsbigiVGVzdGluZyBlcXVhbHMoKSIpOworICAgICAgICBsb2dsbigiVGVzdGluZyA9PSBhbmQgIT0iKTsKKyAgICAgICAgaWYgKCFiaTEuZXF1YWxzKGJpZXF1YWwpIHx8IGJpMS5lcXVhbHMoYmkyKSB8fCBiaTEuZXF1YWxzKGJpMykpCisgICAgICAgICAgICBlcnJsbigiRVJST1I6MSBSQkJJJ3MgPT0gYW5kICEtIG9wZXJhdG9yIGZhaWxlZC4iKTsKKyAgICAgICAgaWYgKGJpMi5lcXVhbHMoYmllcXVhbCkgfHwgYmkyLmVxdWFscyhiaTEpIHx8IGJpZXF1YWwuZXF1YWxzKGJpMykpCisgICAgICAgICAgICBlcnJsbigiRVJST1I6MiBSQkJJJ3MgPT0gYW5kICE9IG9wZXJhdG9yICBmYWlsZWQuIik7CisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGNsb25lKCkiKTsKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBiaTFjbG9uZSA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKSBiaTEuY2xvbmUoKTsKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBiaTJjbG9uZSA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKSBiaTIuY2xvbmUoKTsKKyAgICAgICAgaWYgKCFiaTFjbG9uZS5lcXVhbHMoYmkxKQorICAgICAgICAgICAgfHwgIWJpMWNsb25lLmVxdWFscyhiaWVxdWFsKQorICAgICAgICAgICAgfHwgYmkxY2xvbmUuZXF1YWxzKGJpMykKKyAgICAgICAgICAgIHx8IGJpMWNsb25lLmVxdWFscyhiaTIpKQorICAgICAgICAgICAgZXJybG4oIkVSUk9SOjEgUkJCSSdzIGNsb25lKCkgbWV0aG9kIGZhaWxlZCIpOworCisgICAgICAgIGlmIChiaTJjbG9uZS5lcXVhbHMoYmkxKQorICAgICAgICAgICAgfHwgYmkyY2xvbmUuZXF1YWxzKGJpZXF1YWwpCisgICAgICAgICAgICB8fCBiaTJjbG9uZS5lcXVhbHMoYmkzKQorICAgICAgICAgICAgfHwgIWJpMmNsb25lLmVxdWFscyhiaTIpKQorICAgICAgICAgICAgZXJybG4oIkVSUk9SOjIgUkJCSSdzIGNsb25lKCkgbWV0aG9kIGZhaWxlZCIpOworCisgICAgICAgIGlmICghYmkxLmdldFRleHQoKS5lcXVhbHMoYmkxY2xvbmUuZ2V0VGV4dCgpKQorICAgICAgICAgICAgfHwgIWJpMmNsb25lLmdldFRleHQoKS5lcXVhbHMoYmkyLmdldFRleHQoKSkKKyAgICAgICAgICAgIHx8IGJpMmNsb25lLmVxdWFscyhiaTFjbG9uZSkpCisgICAgICAgICAgICBlcnJsbigiRVJST1I6IFJCQkkncyBjbG9uZSgpIG1ldGhvZCBmYWlsZWQiKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdHMgdG9TdHJpbmcoKSBtZXRob2Qgb2YgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcgorICAgICAqKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0VG9TdHJpbmcoKSB7CisgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgYmkxID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7IAorICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGJpMiA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZShMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgdG9TdHJpbmcoKSIpOworICAgICAgICBiaTEuc2V0VGV4dCgiSGVsbG8gdGhlcmUiKTsKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBiaTMgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgYmkxLmNsb25lKCk7CisgICAgICAgIFN0cmluZyB0ZW1wID0gYmkxLnRvU3RyaW5nKCk7CisgICAgICAgIFN0cmluZyB0ZW1wMiA9IGJpMi50b1N0cmluZygpOworICAgICAgICBTdHJpbmcgdGVtcDMgPSBiaTMudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKHRlbXAyLmVxdWFscyh0ZW1wMykgfHwgdGVtcC5lcXVhbHModGVtcDIpIHx8ICF0ZW1wLmVxdWFscyh0ZW1wMykpCisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGVycm9yIGluIHRvU3RyaW5nKCkgbWV0aG9kIik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3RzIHRoZSBtZXRob2QgaGFzaENvZGUoKSBvZiBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yCisgICAgICoqLworICAgIHB1YmxpYyB2b2lkIFRlc3RIYXNoQ29kZSgpIHsKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBiaTEgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZShMb2NhbGUuZ2V0RGVmYXVsdCgpKTsgCisgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgYmkzID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7IAorICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGJpMiA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZShMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgaGFzaENvZGUoKSIpOworICAgICAgICBiaTEuc2V0VGV4dCgiSGFzaCBjb2RlIik7CisgICAgICAgIGJpMi5zZXRUZXh0KCJIYXNoIGNvZGUiKTsKKyAgICAgICAgYmkzLnNldFRleHQoIkhhc2ggY29kZSIpOworICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGJpMWNsb25lID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpIGJpMS5jbG9uZSgpOworICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGJpMmNsb25lID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpIGJpMi5jbG9uZSgpOworICAgICAgICBpZiAoYmkxLmhhc2hDb2RlKCkgIT0gYmkxY2xvbmUuaGFzaENvZGUoKQorICAgICAgICAgICAgfHwgYmkxLmhhc2hDb2RlKCkgIT0gYmkzLmhhc2hDb2RlKCkKKyAgICAgICAgICAgIHx8IGJpMWNsb25lLmhhc2hDb2RlKCkgIT0gYmkzLmhhc2hDb2RlKCkKKyAgICAgICAgICAgIHx8IGJpMi5oYXNoQ29kZSgpICE9IGJpMmNsb25lLmhhc2hDb2RlKCkpCisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGlkZW50aWNhbCBvYmplY3RzIGhhdmUgZGlmZmVyZW50IGhhc2hjb2RlcyIpOworICAgICAgICAKKyAgICAgICAgaWYgKGJpMS5oYXNoQ29kZSgpID09IGJpMi5oYXNoQ29kZSgpCisgICAgICAgICAgICB8fCBiaTIuaGFzaENvZGUoKSA9PSBiaTMuaGFzaENvZGUoKQorICAgICAgICAgICAgfHwgYmkxY2xvbmUuaGFzaENvZGUoKSA9PSBiaTJjbG9uZS5oYXNoQ29kZSgpCisgICAgICAgICAgICB8fCBiaTFjbG9uZS5oYXNoQ29kZSgpID09IGJpMi5oYXNoQ29kZSgpKQorICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBkaWZmZXJlbnQgb2JqZWN0cyBoYXZlIHNhbWUgaGFzaGNvZGVzIik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAgKiBUZXN0cyB0aGUgbWV0aG9kcyBnZXRUZXh0KCkgYW5kIHNldFRleHQoKSBvZiBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yCisgICAgICAqKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0R2V0U2V0VGV4dCgpIHsKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgZ2V0VGV4dCBzZXRUZXh0ICIpOworICAgICAgICBTdHJpbmcgc3RyMSA9ICJmaXJzdCBzdHJpbmcuIjsKKyAgICAgICAgU3RyaW5nIHN0cjIgPSAiU2Vjb25kIHN0cmluZy4iOworICAgICAgICAvL1J1bGVCYXNlZEJyZWFrSXRlcmF0b3IgY2hhckl0ZXIxID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7IAorICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHdvcmRJdGVyMSA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZShMb2NhbGUuZ2V0RGVmYXVsdCgpKTsgCisgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIHRleHQxID0gbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHN0cjEpOworICAgICAgICAvL0NoYXJhY3Rlckl0ZXJhdG9yIHRleHQxQ2xvbmUgPSAoQ2hhcmFjdGVySXRlcmF0b3IpIHRleHQxLmNsb25lKCk7CisgICAgICAgIC8vQ2hhcmFjdGVySXRlcmF0b3IgdGV4dDIgPSBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3Ioc3RyMik7CisgICAgICAgIHdvcmRJdGVyMS5zZXRUZXh0KHN0cjEpOworICAgICAgICBpZiAoIXdvcmRJdGVyMS5nZXRUZXh0KCkuZXF1YWxzKHRleHQxKSkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjoxIGVycm9yIGluIHNldFRleHQgb3IgZ2V0VGV4dCAiKTsKKyAgICAgICAgaWYgKHdvcmRJdGVyMS5jdXJyZW50KCkgIT0gMCkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjoxIHNldFRleHQgZGlkIG5vdCBzZXQgdGhlIGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LCBpdCBpcyIKKyAgICAgICAgICAgICAgICAgICArIHdvcmRJdGVyMS5jdXJyZW50KCkgKyAiXG4iKTsgCisgICAgICAgIHdvcmRJdGVyMS5uZXh0KDIpOworICAgICAgICB3b3JkSXRlcjEuc2V0VGV4dChzdHIyKTsKKyAgICAgICAgaWYgKHdvcmRJdGVyMS5jdXJyZW50KCkgIT0gMCkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjoyIHNldFRleHQgZGlkIG5vdCByZXNldCB0aGUgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQsIGl0IGlzIgorICAgICAgICAgICAgICAgICAgICArIHdvcmRJdGVyMS5jdXJyZW50KCkgKyAiXG4iKTsgCisgICAgICAgIC8vSUNVNEogaGFzIHJlbW92ZSB0aGUgbWV0aG9kIGFkb3B0VGV4dAorICAgICAgICAvKgorICAgICAgICBjaGFySXRlcjEuYWRvcHRUZXh0KHRleHQxQ2xvbmUpOworICAgICAgICBpZiAod29yZEl0ZXIxLmdldFRleHQoKSA9PSBjaGFySXRlcjEuZ2V0VGV4dCgpCisgICAgICAgICAgICB8fCB3b3JkSXRlcjEuZ2V0VGV4dCgpICE9IHRleHQyCisgICAgICAgICAgICB8fCBjaGFySXRlcjEuZ2V0VGV4dCgpICE9IHRleHQxKQorICAgICAgICAgICAgZXJybG4oKFVuaWNvZGVTdHJpbmcpICJFUlJPUjoyIGVycm9yIGlzIGdldFRleHQgb3Igc2V0VGV4dCgpIik7CisgICAgICAgIAorICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHJiID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpIHdvcmRJdGVyMS5jbG9uZSgpOworICAgICAgICByYi5hZG9wdFRleHQodGV4dDEpOworICAgICAgICBpZiAocmIuZ2V0VGV4dCgpICE9IHRleHQxKQorICAgICAgICAgICAgZXJybG4oKFVuaWNvZGVTdHJpbmcpICJFUlJPUjoxIGVycm9yIGluIGFkb3B0VGV4dCAiKTsKKyAgICAgICAgcmIuYWRvcHRUZXh0KHRleHQyKTsKKyAgICAgICAgaWYgKHJiLmdldFRleHQoKSAhPSB0ZXh0MikKKyAgICAgICAgICAgIGVycmxuKChVbmljb2RlU3RyaW5nKSAiRVJST1I6MiBlcnJvciBpbiBhZG9wdFRleHQgIik7CisgICAgICAgICovCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAgKiBUZXN0aW5nIHRoZSBtZXRob2RzIGZpcnN0KCksIG5leHQoKSwgbmV4dChpbnQpIGFuZCBmb2xsb3dpbmcoKSBvZiBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yCisgICAgICAqKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Rmlyc3ROZXh0Rm9sbG93aW5nKCkgeworICAgICAgICBpbnQgcCwgcTsKKyAgICAgICAgU3RyaW5nIHRlc3RTdHJpbmcgPSAiVGhpcyBpcyBhIHdvcmQgYnJlYWsuIElzbid0IGl0PyAyLjI1IjsKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgZmlyc3QoKSBhbmQgbmV4dCgpLCBmb2xsb3dpbmcoKSB3aXRoIGN1c3RvbSBydWxlcyIpOworICAgICAgICBsb2dsbigidGVzdGluZyB3b3JkIGl0ZXJhdG9yIC0gc3RyaW5nIDotIFwiIiArIHRlc3RTdHJpbmcgKyAiXCJcbiIpOworICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHdvcmRJdGVyMSA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZShMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgd29yZEl0ZXIxLnNldFRleHQodGVzdFN0cmluZyk7CisgICAgICAgIHAgPSB3b3JkSXRlcjEuZmlyc3QoKTsKKyAgICAgICAgaWYgKHAgIT0gMCkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZmlyc3QoKSByZXR1cm5lZCIgKyBwICsgImluc3RlYWQgb2YgMCIpOworICAgICAgICBxID0gd29yZEl0ZXIxLm5leHQoOSk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCAyMCwgIlRoaXMgaXMgYSB3b3JkIGJyZWFrIik7CisgICAgICAgIHAgPSBxOworICAgICAgICBxID0gd29yZEl0ZXIxLm5leHQoKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDIxLCAiLiIpOworICAgICAgICBwID0gcTsKKyAgICAgICAgcSA9IHdvcmRJdGVyMS5uZXh0KDMpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgMjgsICIgSXNuJ3QgIik7CisgICAgICAgIHAgPSBxOworICAgICAgICBxID0gd29yZEl0ZXIxLm5leHQoMik7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCAzMSwgIml0PyIpOworICAgICAgICBxID0gd29yZEl0ZXIxLmZvbGxvd2luZygyKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIDIsIHEsIDQsICJpcyIpOworICAgICAgICBxID0gd29yZEl0ZXIxLmZvbGxvd2luZygyMik7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCAyMiwgcSwgMjcsICJJc24ndCIpOworICAgICAgICB3b3JkSXRlcjEubGFzdCgpOworICAgICAgICBwID0gd29yZEl0ZXIxLm5leHQoKTsKKyAgICAgICAgcSA9IHdvcmRJdGVyMS5mb2xsb3dpbmcod29yZEl0ZXIxLmxhc3QoKSk7CisgICAgICAgIGlmIChwICE9IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuRE9ORSB8fCBxICE9IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuRE9ORSkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogbmV4dCgpL2ZvbGxvd2luZygpIGF0IGxhc3QgcG9zaXRpb24gcmV0dXJuZWQgIyIKKyAgICAgICAgICAgICAgICAgICAgKyBwICsgIiBhbmQgIiArIHEgKyAiIGluc3RlYWQgb2YiICsgdGVzdFN0cmluZy5sZW5ndGgoKSArICJcbiIpOyAKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBjaGFySXRlcjEgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZShMb2NhbGUuZ2V0RGVmYXVsdCgpKTsgCisgICAgICAgIHRlc3RTdHJpbmcgPSAiV3JpdGUgaGluZGkgaGVyZS4gXHUwOTJkXHUwOTNlXHUwOTMwXHUwOTI0IFx1MDkzOFx1MDk0MVx1MDkwMlx1MDkyNlx1MDkzMCBcdTA5MzlcdTA5NGNcdTA5NjQiOyAKKyAgICAgICAgbG9nbG4oInRlc3RpbmcgY2hhciBpdGVyIC0gc3RyaW5nOi0gXCIiICsgdGVzdFN0cmluZyArICJcIiIpOworICAgICAgICBjaGFySXRlcjEuc2V0VGV4dCh0ZXN0U3RyaW5nKTsKKyAgICAgICAgcCA9IGNoYXJJdGVyMS5maXJzdCgpOworICAgICAgICBpZiAocCAhPSAwKQorICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBmaXJzdCgpIHJldHVybmVkIiArIHAgKyAiaW5zdGVhZCBvZiAwIik7CisgICAgICAgIHEgPSBjaGFySXRlcjEubmV4dCgpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgMSwgIlciKTsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSBjaGFySXRlcjEubmV4dCg0KTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDUsICJyaXRlIik7CisgICAgICAgIHAgPSBxOworICAgICAgICBxID0gY2hhckl0ZXIxLm5leHQoMTIpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgMTcsICIgaGluZGkgaGVyZS4iKTsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSBjaGFySXRlcjEubmV4dCgtNik7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCAxMSwgIiBoZXJlLiIpOworICAgICAgICBwID0gcTsKKyAgICAgICAgcSA9IGNoYXJJdGVyMS5uZXh0KDYpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgMTcsICIgaGVyZS4iKTsKKyAgICAgICAgLy8gaGluZGkgc3RhcnRzIGhlcmUKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSBjaGFySXRlcjEubmV4dCg0KTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDIyLCAiIFx1MDkyZFx1MDkzZVx1MDkzMFx1MDkyNCIpOworICAgICAgICBwID0gcTsKKyAgICAgICAgcSA9IGNoYXJJdGVyMS5uZXh0KDIpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgMjYsICIgXHUwOTM4XHUwOTQxXHUwOTAyIik7CisKKyAgICAgICAgcSA9IGNoYXJJdGVyMS5mb2xsb3dpbmcoMjQpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgMjQsIHEsIDI2LCAiXHUwOTQxXHUwOTAyIik7CisgICAgICAgIHEgPSBjaGFySXRlcjEuZm9sbG93aW5nKDIwKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIDIwLCBxLCAyMSwgIlx1MDkzMCIpOworICAgICAgICBwID0gY2hhckl0ZXIxLmZvbGxvd2luZyhjaGFySXRlcjEubGFzdCgpKTsKKyAgICAgICAgcSA9IGNoYXJJdGVyMS5uZXh0KGNoYXJJdGVyMS5sYXN0KCkpOworICAgICAgICBpZiAocCAhPSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLkRPTkUgfHwgcSAhPSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLkRPTkUpCisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGZvbGxvd2luZygpL25leHQoKSBhdCBsYXN0IHBvc2l0aW9uIHJldHVybmVkICMiCisgICAgICAgICAgICAgICAgICAgICsgcCArICIgYW5kICIgKyBxICsgIiBpbnN0ZWFkIG9mIiArIHRlc3RTdHJpbmcubGVuZ3RoKCkpOyAKKyAgICAgICAgdGVzdFN0cmluZyA9ICJIZWxsbyEgaG93IGFyZSB5b3U/IEknYW0gZmluZS4gVGhhbmt5b3UuIEhvdyBhcmUgeW91IGRvaW5nPyBUaGlzXG4gY29zdHMgJDIwLDAwLDAwMC4iOyAKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBzZW50SXRlcjEgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOyAKKyAgICAgICAgbG9nbG4oInRlc3Rpbmcgc2VudGVuY2UgaXRlciAtIFN0cmluZzotIFwiIiArIHRlc3RTdHJpbmcgKyAiXCIiKTsKKyAgICAgICAgc2VudEl0ZXIxLnNldFRleHQodGVzdFN0cmluZyk7CisgICAgICAgIHAgPSBzZW50SXRlcjEuZmlyc3QoKTsKKyAgICAgICAgaWYgKHAgIT0gMCkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZmlyc3QoKSByZXR1cm5lZCIgKyBwICsgImluc3RlYWQgb2YgMCIpOworICAgICAgICBxID0gc2VudEl0ZXIxLm5leHQoKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDcsICJIZWxsbyEgIik7CisgICAgICAgIHAgPSBxOworICAgICAgICBxID0gc2VudEl0ZXIxLm5leHQoMik7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCAzMSwgImhvdyBhcmUgeW91PyBJJ2FtIGZpbmUuICIpOworICAgICAgICBwID0gcTsKKyAgICAgICAgcSA9IHNlbnRJdGVyMS5uZXh0KC0yKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDcsICJob3cgYXJlIHlvdT8gSSdhbSBmaW5lLiAiKTsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSBzZW50SXRlcjEubmV4dCg0KTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDYwLCAiaG93IGFyZSB5b3U/IEknYW0gZmluZS4gVGhhbmt5b3UuIEhvdyBhcmUgeW91IGRvaW5nPyAiKTsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSBzZW50SXRlcjEubmV4dCgpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgODMsICJUaGlzXG4gY29zdHMgJDIwLDAwLDAwMC4iKTsKKyAgICAgICAgcSA9IHNlbnRJdGVyMS5mb2xsb3dpbmcoMSk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCAxLCBxLCA3LCAiZWxsbyEgIik7CisgICAgICAgIHEgPSBzZW50SXRlcjEuZm9sbG93aW5nKDEwKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIDEwLCBxLCAyMCwgIiBhcmUgeW91PyAiKTsKKyAgICAgICAgcSA9IHNlbnRJdGVyMS5mb2xsb3dpbmcoMjApOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgMjAsIHEsIDMxLCAiSSdhbSBmaW5lLiAiKTsKKyAgICAgICAgcCA9IHNlbnRJdGVyMS5mb2xsb3dpbmcoc2VudEl0ZXIxLmxhc3QoKSk7CisgICAgICAgIHEgPSBzZW50SXRlcjEubmV4dChzZW50SXRlcjEubGFzdCgpKTsKKyAgICAgICAgaWYgKHAgIT0gUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5ET05FIHx8IHEgIT0gUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5ET05FKQorICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBmb2xsb3dpbmcoKS9uZXh0KCkgYXQgbGFzdCBwb3NpdGlvbiByZXR1cm5lZCAjIgorICAgICAgICAgICAgICAgICAgICArIHAgKyAiIGFuZCAiICsgcSArICIgaW5zdGVhZCBvZiIgKyB0ZXN0U3RyaW5nLmxlbmd0aCgpKTsgCisgICAgICAgIHRlc3RTdHJpbmcgPSAiSGVsbG8hIGhvd1xyXG4gKGFyZSlcciB5b3U/IEknYW0gZmluZS0gVGhhbmt5b3UuIGZvb1x1MDBhMGJhciBIb3csIGFyZSwgeW91PyBUaGlzLCBjb3N0cyAkMjAsMDAsMDAwLiI7IAorICAgICAgICBsb2dsbigiKFVuaWNvZGVTdHJpbmcpdGVzdGluZyBsaW5lIGl0ZXIgLSBTdHJpbmc6LSBcIiIgKyB0ZXN0U3RyaW5nICsgIlwiIik7CisgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgbGluZUl0ZXIxID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOyAKKyAgICAgICAgbGluZUl0ZXIxLnNldFRleHQodGVzdFN0cmluZyk7CisgICAgICAgIHAgPSBsaW5lSXRlcjEuZmlyc3QoKTsKKyAgICAgICAgaWYgKHAgIT0gMCkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZmlyc3QoKSByZXR1cm5lZCIgKyBwICsgImluc3RlYWQgb2YgMCIpOworICAgICAgICBxID0gbGluZUl0ZXIxLm5leHQoKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDcsICJIZWxsbyEgIik7CisgICAgICAgIHAgPSBxOworICAgICAgICBwID0gcTsKKyAgICAgICAgcSA9IGxpbmVJdGVyMS5uZXh0KDQpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgMjAsICJob3dcclxuIChhcmUpXHIgIik7CisgICAgICAgIHAgPSBxOworICAgICAgICBxID0gbGluZUl0ZXIxLm5leHQoLTQpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgNywgImhvd1xyXG4gKGFyZSlcciAiKTsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSBsaW5lSXRlcjEubmV4dCg2KTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDMwLCAiaG93XHJcbiAoYXJlKVxyIHlvdT8gSSdhbSAiKTsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSBsaW5lSXRlcjEubmV4dCgpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgMzYsICJmaW5lLSAiKTsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSBsaW5lSXRlcjEubmV4dCgyKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDU0LCAiVGhhbmt5b3UuIGZvb1x1MDBhMGJhciAiKTsKKyAgICAgICAgcSA9IGxpbmVJdGVyMS5mb2xsb3dpbmcoNjApOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgNjAsIHEsIDY0LCAicmUsICIpOworICAgICAgICBxID0gbGluZUl0ZXIxLmZvbGxvd2luZygxKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIDEsIHEsIDcsICJlbGxvISAiKTsKKyAgICAgICAgcSA9IGxpbmVJdGVyMS5mb2xsb3dpbmcoMTApOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgMTAsIHEsIDEyLCAiXHJcbiIpOworICAgICAgICBxID0gbGluZUl0ZXIxLmZvbGxvd2luZygyMCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCAyMCwgcSwgMjUsICJ5b3U/ICIpOworICAgICAgICBwID0gbGluZUl0ZXIxLmZvbGxvd2luZyhsaW5lSXRlcjEubGFzdCgpKTsKKyAgICAgICAgcSA9IGxpbmVJdGVyMS5uZXh0KGxpbmVJdGVyMS5sYXN0KCkpOworICAgICAgICBpZiAocCAhPSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLkRPTkUgfHwgcSAhPSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLkRPTkUpCisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGZvbGxvd2luZygpL25leHQoKSBhdCBsYXN0IHBvc2l0aW9uIHJldHVybmVkICMiCisgICAgICAgICAgICAgICAgICAgICsgcCArICIgYW5kICIgKyBxICsgIiBpbnN0ZWFkIG9mIiArIHRlc3RTdHJpbmcubGVuZ3RoKCkpOyAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdGluZyB0aGUgbWV0aG9kcyBsYXN0dCgpLCBwcmV2aW91cygpLCBhbmQgcHJlY2VkaW5nKCkgb2YgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcgorICAgICAqKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TGFzdFByZXZpb3VzUHJlY2VkaW5nKCkgeworICAgICAgICBpbnQgcCwgcTsKKyAgICAgICAgU3RyaW5nIHRlc3RTdHJpbmcgPSAiVGhpcyBpcyBhIHdvcmQgYnJlYWsuIElzbid0IGl0PyAyLjI1IGRvbGxhcnMiOworICAgICAgICBsb2dsbigiVGVzdGluZyBsYXN0KCkscHJldmlvdXMoKSwgcHJlY2VkaW5nKCkgd2l0aCBjdXN0b20gcnVsZXMiKTsKKyAgICAgICAgbG9nbG4oInRlc3Rpbmcgd29yZCBpdGVyYXRpb24gZm9yIHN0cmluZyBcIiIgKyB0ZXN0U3RyaW5nICsgIlwiIik7CisgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3Igd29yZEl0ZXIxID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOyAKKyAgICAgICAgd29yZEl0ZXIxLnNldFRleHQodGVzdFN0cmluZyk7CisgICAgICAgIHAgPSB3b3JkSXRlcjEubGFzdCgpOworICAgICAgICBpZiAocCAhPSB0ZXN0U3RyaW5nLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGZpcnN0KCkgcmV0dXJuZWQiICsgcCArICJpbnN0ZWFkIG9mIiArIHRlc3RTdHJpbmcubGVuZ3RoKCkpOworICAgICAgICB9CisgICAgICAgIHEgPSB3b3JkSXRlcjEucHJldmlvdXMoKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDM3LCAiZG9sbGFycyIpOworICAgICAgICBwID0gcTsKKyAgICAgICAgcSA9IHdvcmRJdGVyMS5wcmV2aW91cygpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgMzYsICIgIik7CisgICAgICAgIHEgPSB3b3JkSXRlcjEucHJlY2VkaW5nKDI1KTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIDI1LCBxLCAyMiwgIklzbiIpOworICAgICAgICBwID0gcTsKKyAgICAgICAgcSA9IHdvcmRJdGVyMS5wcmV2aW91cygpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgMjEsICIgIik7CisgICAgICAgIHEgPSB3b3JkSXRlcjEucHJlY2VkaW5nKDIwKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIDIwLCBxLCAxNSwgImJyZWFrIik7CisgICAgICAgIHAgPSB3b3JkSXRlcjEucHJlY2VkaW5nKHdvcmRJdGVyMS5maXJzdCgpKTsKKyAgICAgICAgaWYgKHAgIT0gUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5ET05FKQorICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBwcmVjZWRpbmcoKSAgYXQgc3RhcnRpbmcgcG9zaXRpb24gcmV0dXJuZWQgIyIgKyBwICsgIiBpbnN0ZWFkIG9mIDAiKTsKKyAgICAgICAgdGVzdFN0cmluZyA9ICJXcml0ZSBoaW5kaSBoZXJlLiBcdTA5MmRcdTA5M2VcdTA5MzBcdTA5MjQgXHUwOTM4XHUwOTQxXHUwOTAyXHUwOTI2XHUwOTMwIFx1MDkzOVx1MDk0Y1x1MDk2NCI7IAorICAgICAgICBsb2dsbigidGVzdGluZyBjaGFyYWN0ZXIgaXRlcmF0aW9uIGZvciBzdHJpbmcgXCIgIiArIHRlc3RTdHJpbmcgKyAiXCIgXG4iKTsKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBjaGFySXRlcjEgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZShMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgY2hhckl0ZXIxLnNldFRleHQodGVzdFN0cmluZyk7CisgICAgICAgIHAgPSBjaGFySXRlcjEubGFzdCgpOworICAgICAgICBpZiAocCAhPSB0ZXN0U3RyaW5nLmxlbmd0aCgpKQorICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBmaXJzdCgpIHJldHVybmVkIiArIHAgKyAiaW5zdGVhZCBvZiIgKyB0ZXN0U3RyaW5nLmxlbmd0aCgpKTsKKyAgICAgICAgcSA9IGNoYXJJdGVyMS5wcmV2aW91cygpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgMzEsICJcdTA5NjQiKTsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSBjaGFySXRlcjEucHJldmlvdXMoKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDI5LCAiXHUwOTM5XHUwOTRjIik7CisgICAgICAgIHEgPSBjaGFySXRlcjEucHJlY2VkaW5nKDI2KTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIDI2LCBxLCAyMywgIlx1MDkzOFx1MDk0MVx1MDkwMiIpOworICAgICAgICBxID0gY2hhckl0ZXIxLnByZWNlZGluZygxNik7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCAxNiwgcSwgMTUsICJlIik7CisgICAgICAgIHAgPSBxOworICAgICAgICBxID0gY2hhckl0ZXIxLnByZXZpb3VzKCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCAxNCwgInIiKTsKKyAgICAgICAgY2hhckl0ZXIxLmZpcnN0KCk7CisgICAgICAgIHAgPSBjaGFySXRlcjEucHJldmlvdXMoKTsKKyAgICAgICAgcSA9IGNoYXJJdGVyMS5wcmVjZWRpbmcoY2hhckl0ZXIxLmZpcnN0KCkpOworICAgICAgICBpZiAocCAhPSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLkRPTkUgfHwgcSAhPSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLkRPTkUpCisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHByZXZpb3VzKCkvcHJlY2VkaW5nKCkgYXQgc3RhcnRpbmcgcG9zaXRpb24gcmV0dXJuZWQgIyIKKyAgICAgICAgICAgICAgICAgICAgKyBwICsgIiBhbmQgIiArIHEgKyAiIGluc3RlYWQgb2YgMFxuIik7IAorICAgICAgICB0ZXN0U3RyaW5nID0gIkhlbGxvISBob3cgYXJlIHlvdT8gSSdhbSBmaW5lLiBUaGFua3lvdS4gSG93IGFyZSB5b3UgZG9pbmc/IFRoaXNcbiBjb3N0cyAkMjAsMDAsMDAwLiI7IAorICAgICAgICBsb2dsbigidGVzdGluZyBzZW50ZW5jZSBpdGVyIC0gU3RyaW5nOi0gXCIiICsgdGVzdFN0cmluZyArICJcIiIpOworICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHNlbnRJdGVyMSA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLmdldFNlbnRlbmNlSW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7IAorICAgICAgICBzZW50SXRlcjEuc2V0VGV4dCh0ZXN0U3RyaW5nKTsKKyAgICAgICAgcCA9IHNlbnRJdGVyMS5sYXN0KCk7CisgICAgICAgIGlmIChwICE9IHRlc3RTdHJpbmcubGVuZ3RoKCkpCisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGxhc3QoKSByZXR1cm5lZCIgKyBwICsgImluc3RlYWQgb2YgIiArIHRlc3RTdHJpbmcubGVuZ3RoKCkpOworICAgICAgICBxID0gc2VudEl0ZXIxLnByZXZpb3VzKCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCA2MCwgIlRoaXNcbiBjb3N0cyAkMjAsMDAsMDAwLiIpOworICAgICAgICBwID0gcTsKKyAgICAgICAgcSA9IHNlbnRJdGVyMS5wcmV2aW91cygpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgNDEsICJIb3cgYXJlIHlvdSBkb2luZz8gIik7CisgICAgICAgIHEgPSBzZW50SXRlcjEucHJlY2VkaW5nKDQwKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIDQwLCBxLCAzMSwgIlRoYW5reW91LiIpOworICAgICAgICBxID0gc2VudEl0ZXIxLnByZWNlZGluZygyNSk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCAyNSwgcSwgMjAsICJJJ2FtICIpOworICAgICAgICBzZW50SXRlcjEuZmlyc3QoKTsKKyAgICAgICAgcCA9IHNlbnRJdGVyMS5wcmV2aW91cygpOworICAgICAgICBxID0gc2VudEl0ZXIxLnByZWNlZGluZyhzZW50SXRlcjEuZmlyc3QoKSk7CisgICAgICAgIGlmIChwICE9IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuRE9ORSB8fCBxICE9IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuRE9ORSkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogcHJldmlvdXMoKS9wcmVjZWRpbmcoKSBhdCBzdGFydGluZyBwb3NpdGlvbiByZXR1cm5lZCAjIgorICAgICAgICAgICAgICAgICAgICArIHAgKyAiIGFuZCAiICsgcSArICIgaW5zdGVhZCBvZiAwXG4iKTsgCisgICAgICAgIHRlc3RTdHJpbmcgPSAiSGVsbG8hIGhvdyBhcmUgeW91PyBJJ2FtIGZpbmUuIFRoYW5reW91LiBIb3cgYXJlIHlvdSBkb2luZz8gVGhpc1xuIGNvc3RzICQyMCwwMCwwMDAuIjsgCisgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIGxpbmUgaXRlciAtIFN0cmluZzotIFwiIiArIHRlc3RTdHJpbmcgKyAiXCIiKTsKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBsaW5lSXRlcjEgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIGxpbmVJdGVyMS5zZXRUZXh0KHRlc3RTdHJpbmcpOworICAgICAgICBwID0gbGluZUl0ZXIxLmxhc3QoKTsKKyAgICAgICAgaWYgKHAgIT0gdGVzdFN0cmluZy5sZW5ndGgoKSkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogbGFzdCgpIHJldHVybmVkIiArIHAgKyAiaW5zdGVhZCBvZiAiICsgdGVzdFN0cmluZy5sZW5ndGgoKSk7CisgICAgICAgIHEgPSBsaW5lSXRlcjEucHJldmlvdXMoKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDcyLCAiJDIwLDAwLDAwMC4iKTsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSBsaW5lSXRlcjEucHJldmlvdXMoKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDY2LCAiY29zdHMgIik7CisgICAgICAgIHEgPSBsaW5lSXRlcjEucHJlY2VkaW5nKDQwKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIDQwLCBxLCAzMSwgIlRoYW5reW91LiIpOworICAgICAgICBxID0gbGluZUl0ZXIxLnByZWNlZGluZygyNSk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCAyNSwgcSwgMjAsICJJJ2FtICIpOworICAgICAgICBsaW5lSXRlcjEuZmlyc3QoKTsKKyAgICAgICAgcCA9IGxpbmVJdGVyMS5wcmV2aW91cygpOworICAgICAgICBxID0gbGluZUl0ZXIxLnByZWNlZGluZyhzZW50SXRlcjEuZmlyc3QoKSk7CisgICAgICAgIGlmIChwICE9IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuRE9ORSB8fCBxICE9IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuRE9ORSkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogcHJldmlvdXMoKS9wcmVjZWRpbmcoKSBhdCBzdGFydGluZyBwb3NpdGlvbiByZXR1cm5lZCAjIgorICAgICAgICAgICAgICAgICAgICArIHAgKyAiIGFuZCAiICsgcSArICIgaW5zdGVhZCBvZiAwXG4iKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdHMgdGhlIG1ldGhvZCBJc0JvdW5kYXJ5KCkgb2YgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcgorICAgICAqKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SXNCb3VuZGFyeSgpIHsKKyAgICAgICAgU3RyaW5nIHRlc3RTdHJpbmcxID0gIldyaXRlIGhlcmUuIFx1MDkyZFx1MDkzZVx1MDkzMFx1MDkyNCBcdTA5MzhcdTA5NDFcdTA5MDJcdTA5MjZcdTA5MzAgXHUwOTM5XHUwOTRjXHUwOTY0IjsKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBjaGFySXRlcjEgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZShMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgY2hhckl0ZXIxLnNldFRleHQodGVzdFN0cmluZzEpOworICAgICAgICBpbnQgYm91bmRzMVtdID0gezAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDE0LCAxNSwgMTYsIDE3LCAyMCwgMjEsIDIyLCAyMywgMjUsIDI2fTsKKyAgICAgICAgZG9Cb3VuZGFyeVRlc3QoY2hhckl0ZXIxLCB0ZXN0U3RyaW5nMSwgYm91bmRzMSk7CisgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3Igd29yZEl0ZXIyID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICB3b3JkSXRlcjIuc2V0VGV4dCh0ZXN0U3RyaW5nMSk7CisgICAgICAgIGludCBib3VuZHMyW10gPSB7MCwgNSwgNiwgMTAsIDExLCAxMiwgMTYsIDE3LCAyMiwgMjMsIDI2fTsKKyAgICAgICAgZG9Cb3VuZGFyeVRlc3Qod29yZEl0ZXIyLCB0ZXN0U3RyaW5nMSwgYm91bmRzMik7CisgICAgfQorICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy9JbnRlcm5hbCBzdWJyb3V0aW5lcworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyogSW50ZXJuYWwgc3Vicm91dGluZSB1c2VkIGJ5IFRlc3RJc0JvdW5kYXJ5KCkgKi8gCisgICAgcHVibGljIHZvaWQgZG9Cb3VuZGFyeVRlc3QoUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBiaSwgU3RyaW5nIHRleHQsIGludFtdIGJvdW5kYXJpZXMpIHsKKyAgICAgICAgbG9nbG4oInRlc3RJc0JvdW5kYXJ5KCk6Iik7CisgICAgICAgIGludCBwID0gMDsKKyAgICAgICAgYm9vbGVhbiBpc0I7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgICBpc0IgPSBiaS5pc0JvdW5kYXJ5KGkpOworICAgICAgICAgICAgbG9nbG4oImJpLmlzQm91bmRhcnkoIiArIGkgKyAiKSAtPiAiICsgaXNCKTsKKyAgICAgICAgICAgIGlmIChpID09IGJvdW5kYXJpZXNbcF0pIHsKKyAgICAgICAgICAgICAgICBpZiAoIWlzQikKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIldyb25nIHJlc3VsdCBmcm9tIGlzQm91bmRhcnkoKSBmb3IgIiArIGkgKyAiOiBleHBlY3RlZCB0cnVlLCBnb3QgZmFsc2UiKTsKKyAgICAgICAgICAgICAgICBwKys7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChpc0IpCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJXcm9uZyByZXN1bHQgZnJvbSBpc0JvdW5kYXJ5KCkgZm9yICIgKyBpICsgIjogZXhwZWN0ZWQgZmFsc2UsIGdvdCB0cnVlIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLypJbnRlcm5hbCBzdWJyb3V0aW5lIHVzZWQgZm9yIGNvbXBhcmlzaW9uIG9mIGV4cGVjdGVkIGFuZCBhY3F1aXJlZCByZXN1bHRzICovCisgICAgcHVibGljIHZvaWQgZG9UZXN0KFN0cmluZyB0ZXN0U3RyaW5nLCBpbnQgc3RhcnQsIGludCBnb3RvZmZzZXQsIGludCBleHBlY3RlZE9mZnNldCwgU3RyaW5nIGV4cGVjdGVkU3RyaW5nKSB7CisgICAgICAgIFN0cmluZyBzZWxlY3RlZDsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkID0gZXhwZWN0ZWRTdHJpbmc7CisgICAgICAgIGlmIChnb3RvZmZzZXQgIT0gZXhwZWN0ZWRPZmZzZXQpCisgICAgICAgICAgICBlcnJsbigiRVJST1I6KioqKnJldHVybmVkICMiICsgZ290b2Zmc2V0ICsgIiBpbnN0ZWFkIG9mICMiICsgZXhwZWN0ZWRPZmZzZXQpOworICAgICAgICBpZiAoc3RhcnQgPD0gZ290b2Zmc2V0KSB7CisgICAgICAgICAgICBzZWxlY3RlZCA9IHRlc3RTdHJpbmcuc3Vic3RyaW5nKHN0YXJ0LCBnb3RvZmZzZXQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgc2VsZWN0ZWQgPSB0ZXN0U3RyaW5nLnN1YnN0cmluZyhnb3RvZmZzZXQsIHN0YXJ0KTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIXNlbGVjdGVkLmVxdWFscyhleHBlY3RlZCkpCisgICAgICAgICAgICBlcnJsbigiRVJST1I6KioqKnNlbGVjdGVkIFwiIiArIHNlbGVjdGVkICsgIlwiIGluc3RlYWQgb2YgXCIiICsgZXhwZWN0ZWQgKyAiXCIiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbG9nbG4oIioqKipzZWxlY3RlZCBcIiIgKyBzZWxlY3RlZCArICJcIiIpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9SQkJJVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvUkJCSVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40YzBkYjkyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvUkJCSVRlc3QuamF2YQpAQCAtMCwwICsxLDk1MiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvUkJCSVRlc3QuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNToxNSAkIAorICogJFJldmlzaW9uOiAxLjMgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnJiYmk7CisgCisvL1JlZ3Jlc3Npb24gdGVzdGluZyBvZiBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworaW1wb3J0IGphdmEuaW8uKjsgIAorCitwdWJsaWMgY2xhc3MgUkJCSVRlc3QgZXh0ZW5kcyBUZXN0Rm13ayAKK3sgIAorICBwcml2YXRlIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgY2hhcmFjdGVyQnJlYWs7CisgIHByaXZhdGUgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciB3b3JkQnJlYWs7CisgIHByaXZhdGUgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBsaW5lQnJlYWs7CisgIHByaXZhdGUgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBzZW50ZW5jZUJyZWFrOworICAgIAorICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICBuZXcgUkJCSVRlc3QoKS5ydW4oYXJncyk7CisgIH0KKworICBwdWJsaWMgUkJCSVRlc3QoKSB7IAorICB9CisgIAorICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGhhbGZOQSA9ICJcdTA5MjhcdTA5NGRcdTIwMGQiOyAgLypoYWxmZm9ybSBOQSA9IGRldmFuaWdpcmkgTkEgKyB2aXJhbWEoc3VwcmVzc2VzIGluaGVyZW50IHZvd2VsKSsgemVybyB3aWR0aCBqb2luZXIgKi8gIAorICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgaGFsZlNBICA9ICJcdTA5MzhcdTA5NGRcdTIwMGQiOyAKKyAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGhhbGZDSEEgPSAiXHUwOTFhXHUwOTRkXHUyMDBkIjsgCisgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBoYWxmS0EgID0gIlx1MDkxNVx1MDk0ZFx1MjAwZCI7IAorICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgZGVhZFRBICA9ICJcdTA5MjRcdTA5NGQiOworCisgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBkZWFkUkEgICA9ICJcdTA5MzBcdTA5NGQiOyAgLypkZWFkZm9ybSBSQSA9IGRldmFuYWdhcmkgUkEgKyB2aXJhbWEqLworICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgZGVhZFBIQSAgPSAiXHUwOTJiXHUwOTRkIjsgIC8qZGVhZGZvcm0gUEhBID0gZGV2YW5hZ2FyaSBQSEEgKyB2aXJhbWEqLworICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgZGVhZFRUSEEgPSAiXHUwOTIwXHUwOTRkIjsgCisgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBkZWFkUEEgICA9ICJcdTA5MmFcdTA5NGQiOyAKKyAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGRlYWRTQSAgID0gIlx1MDkzOFx1MDk0ZCI7ICAgLypkZXZhbmFnYXJpIHZpc2FyZ2EgbG9va3MgbGlrZSBhIGVuZ2xpc2ggY29sb24qLworICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgdmlzYXJnYSAgPSAiXHUwOTAzIjsKKworCisgIC8vdGVzdHMgZGVmYXVsdCBydWxlcyBiYXNlZCBjaGFyYWN0ZXIgaXRlcmF0aW9uCisgIHB1YmxpYyB2b2lkIFRlc3REZWZhdWx0UnVsZUJhc2VkQ2hhcmFjdGVySXRlcmF0aW9uKCl7CisgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHJiYmk9KFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZSgpOworICAgICAgbG9nbG4oIlRlc3RpbmcgdGhlIFJCQkkgZm9yIGNoYXJhY3RlciBpdGVyYXRpb24gYnkgdXNpbmcgZGVmYXVsdCBydWxlcyIpOworICAgICAgLy9mZXRjaCB0aGUgcnVsZXMgdXNlZCB0byBjcmVhdGUgdGhlIGFib3ZlIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IKKyAgICAgIFN0cmluZyBkZWZhdWx0UnVsZXM9cmJiaS50b1N0cmluZygpOworICAgICAgCisgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGNoYXJJdGVyRGVmYXVsdD1udWxsOworICAgICAgdHJ5eworICAgICAgY2hhckl0ZXJEZWZhdWx0ICAgPSBuZXcgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihkZWZhdWx0UnVsZXMpOyAKKyAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKXsKKyAgICAgICAgICBlcnJsbigiRVJST1I6IGZhaWxlZCBjb25zdHJ1Y3Rpb24gaW4gVGVzdERlZmF1bHRSdWxlQmFzZWRDaGFyYWN0ZXJJdGVyYXRpb24oKSIrIGlhZS50b1N0cmluZygpKTsKKyAgICAgIH0KKworICAgICAgVmVjdG9yIGNoYXJkYXRhID0gbmV3IFZlY3RvcigpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiSCIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiZSIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgibCIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgibCIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgibyIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiZVx1MDMwMSIpOyAgICAgICAgICAgICAgICAgICAvL2FjdXRlRQorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiJiIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiZVx1MDMwMyIpOyAgICAgICAgICAgICAgICAgICAvL3RpbGRhRQorICAgICAgLy9kZXZhbmFnaXJpIGNoYXJhY3RlcnMgZm9yIEhpbmRpIHN1cHBvcnQKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MDkwNiIpOyAgICAgICAgICAgICAgICAgICAgLy9kZXZhbmFnaXJpIEFBCisgICAgICAvL2NoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MDkzZVx1MDkwMSIpOyAgICAgICAgICAgICAgLy9kZXZhbmFnaXJpIHZvd2Vsc2lnbiBBQSsgY2hhbmRyYWJpbmRodQorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUwOTE2XHUwOTQ3Iik7ICAgICAgICAgICAgICAvL2RldmFuYWdpcmkgS0hBK3Zvd2Vsc2lnbiBFCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTA5MzhcdTA5NDFcdTA5MDIiKTsgICAgICAgIC8vZGV2YW5hZ2lyaSBTQSt2b3dlbHNpZ24gVSArIGFudXN2YXJhKGJpbmR1KQorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUwOTI2Iik7ICAgICAgICAgICAgICAgICAgICAvL2RldmFuYWdpcmkgY29uc29uYW50IERBCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTA5MzAiKTsgICAgICAgICAgICAgICAgICAgIC8vZGV2YW5hZ2lyaSBjb25zb25hbnQgUkEKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MDkzOVx1MDk0YyIpOyAgICAgICAgICAgICAgLy9kZXZhbmFnaXJpIEhBK3Zvd2VsIHNpZ24gQUkKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MDk2NCIpOyAgICAgICAgICAgICAgICAgICAgLy9kZXZhbmFnaXJpIGRhbmRhCisgICAgICAvL2VuZCBoaW5kaSBjaGFyYWN0ZXJzICAgICAgCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJBXHUwMzAyIik7ICAgICAgICAgICAgICAgICAgIC8vIGNpcmN1bWZsZXhBIAorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiaVx1MDMwMSIpOyAgICAgICAgICAgICAgICAgICAvLyBhY3V0ZUJlbG93SSAgIAorICAgICAgLy8gY29uam9pbmluZyBqYW1vLi4uIAorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUxMTA5XHUxMTYxXHUxMWJjIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTExMTJcdTExNjFcdTExYmMiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlxuIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcclxuIik7ICAgICAgICAgICAgICAgICAgICAgIC8vIGtlZXAgQ1JMRiBzZXF1ZW5jZXMgdG9nZXRoZXIgIAorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiU1x1MDMwMCIpOyAgICAgICAgICAgICAgICAgICAvL2dyYXZlUworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiaVx1MDMwMSIpOyAgICAgICAgICAgICAgICAgICAvLyBhY3V0ZUJlbG93SQorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiISIpOworCisgICAgICAgLy8gV2hhdCBmb2xsb3dzIGlzIGEgc3RyaW5nIG9mIEtvcmVhbiBjaGFyYWN0ZXJzIChJIGZvdW5kIGl0IGluIHRoZSBZZWxsb3cgUGFnZXMKKyAgICAgIC8vIGFkIGZvciB0aGUgS29yZWFuIFByZXNieXRlcmlhbiBDaHVyY2ggb2YgU2FuIEZyYW5jaXNjbywgYW5kIEkgaG9wZSBJIHRyYW5zY3JpYmVkCisgICAgICAvLyBpdCBjb3JyZWN0bHkpLCBmaXJzdCBhcyBwcmVjb21wb3NlZCBzeWxsYWJsZXMsIGFuZCB0aGVuIGFzIGNvbmpvaW5pbmcgamFtby4KKyAgICAgIC8vIEJvdGggc2VxdWVuY2VzIHNob3VsZCBiZSBzZW1hbnRpY2FsbHkgaWRlbnRpY2FsIGFuZCBicmVhayB0aGUgc2FtZSB3YXkuCisgICAgICAvLyBwcmVjb21wb3NlZCBzeWxsYWJsZXMuLi4KKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1YzBjMSIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHVkNTZkIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdWQ1NWMiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1Yzc3OCIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHVjNWYwIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdWQ1NjkiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1YzdhNSIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHViODVjIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdWFkNTAiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1ZDY4YyIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgIC8vIGNvbmpvaW5pbmcgamFtby4uLgorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUxMTA5XHUxMTYxXHUxMWJjIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTExMTJcdTExNjFcdTExYmMiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MTExMlx1MTE2MVx1MTFhYiIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUxMTBiXHUxMTc1XHUxMWFiIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTExMGJcdTExNjdcdTExYWIiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MTExMlx1MTE2MVx1MTFiOCIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUxMTBjXHUxMTYxXHUxMWJjIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTExMDVcdTExNjkiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MTEwMFx1MTE2ZCIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUxMTEyXHUxMTZjIik7CisKKyAgICAgIC8vVGVzdGluZyB0aGUgQnJlYWtJdGVyYXRvciBmb3IgZGV2YW5hZ2FyaSBzY3JpcHQKKyAgICAgIC8vZGV2YW5hZ2FyaSBjaGFyYWN0ZXJzIGZvciBIaW5kaSBzdXBwb3J0CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTA5MDYiKTsgICAgICAgICAgICAgICAgICAgIC8vZGV2YW5hZ2FyaSBBQQorICAgICAgLy9oaW5kaSBjaGFyYWN0ZXIgYnJlYWsgc2hvdWxkIG1ha2Ugc3VyZSB0aGF0IGl0IAorICAgICAgLy8gZG9lc24ndCBicmVhayBpbi1iZXR3ZWVuIGEgdm93ZWxzaWduIGFuZCBhIGNoYW5kcmFiaW5kdQorICAgIC8vICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTA5M2VcdTA5MDEiKTsgICAgICAgICAgICAgIC8vZGV2YW5hZ2FyaSB2b3dlbHNpZ24gQUErIGNoYW5kcmFiaW5kdQorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUwOTE2XHUwOTQ3Iik7ICAgICAgICAgICAgICAvL2RldmFuYWdhcmkgS0hBK3Zvd2Vsc2lnbiBFCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTA5MzhcdTA5NDFcdTA5MDIiKTsgICAgICAgIC8vZGV2YW5hZ2FyaSBTQSt2b3dlbHNpZ24gVSArIGFudXN2YXJhKGJpbmR1KQorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUwOTI2Iik7ICAgICAgICAgICAgICAgICAgICAvL2RldmFuYWdhcmkgY29uc29uYW50IERBCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTA5MzAiKTsgICAgICAgICAgICAgICAgICAgIC8vZGV2YW5hZ2FyaSBjb25zb25hbnQgUkEKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MDkzOVx1MDk0YyIpOyAgICAgICAgICAgICAgLy9kZXZhbmFnYXJpIGNvbnNvbmFudCBIQStkZXBlbmRlbnQgdm93ZWwgc2lnbiBBSQorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUwOTY0Iik7ICAgICAgICAgICAgICAgICAgICAvL2RldmFuYWdhcmkgZGFuZGEKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MDk1MCIpOyAgICAgICAgICAgICAgICAgICAgLy9kZXZhbmFnYXJpIE9NIAorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUwOTE1XHUwOTQzIik7ICAgICAgICAgICAgICAvL2RldmFuYWdhcmkgS0ErZGVwZW5kZW50IHZvd2VsIFJJLT5LUkkKKworICAgICAgLy9kZXBlbmRlbnQgaGFsZi1mb3JtcworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudChoYWxmU0ErICJcdTA5MjQiKTsgICAgICAgICAgICAgLy9oYWxmU0ErYmFzZSBjb25zb25hbnQgVEEtPlNUQQorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudChoYWxmU0ErICJcdTA5MjUiKTsgICAgICAgICAgICAgLy9oYWxmU0ErYmFzZSBjb25zb25hbnQgVEhBLT5TVEhBCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KGhhbGZTQSsgIlx1MDkyZSIpOyAgICAgICAgICAgICAvL2hhbGZTQStiYXNlIGNvbnNvbmFudCBNQS0+U01BCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KGhhbGZDSEErICJcdTA5MWIiKTsgICAgICAgICAgICAvL2hhbGZDSEErYmFzZSBjb25zb25hbnQgQ0hIQS0+Q0hISEEKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoaGFsZk5BKyAiXHUwOTE3Iik7ICAgICAgICAgICAgIC8vaGFsZk5BK2Jhc2UgY29uc29uYW50IEdBLT5OR0EKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MDkyYVx1MDk0ZFx1MjAwZFx1MDkyZiIpOyAgIC8vaGFsZlBBKFBBK3ZpcmFtYSt6ZXJvd2lkdGhqb2luZXIrYmFzZSBjb25zb25hbnQgWUEtPlBZQQorCisKKyAgICAgIC8vY29uc29uYW50IFJBIHJ1bGVzIC0tLS0tLS0tLS0KKyAgICAgIC8vaWYgdGhlIGRlYWQgY29uc29uYW50IFJBIHByZWNlZGVzIGVpdGhlciBhIGNvbnNvbmFudCBvciBhbiBpbmRlcGVuZGVudCB2b3dlbCwKKyAgICAgIC8vdGhlbiBpdCBpcyByZXBsYWNlZCBieSBpdHMgc3VwZXJzY3JpcHQgbm9uLXNwYWNpbmcgbWFyaworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudChkZWFkUkErICJcdTA5MTUiKTsgICAgICAgICAgICAgLy9kZWFkUkErZGV2YW5hZ2FyaSBjb25zb25hbnQgS0EtPktBK3N1cGVyUkEgCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KGRlYWRSQSsgIlx1MDkyMyIpOyAgICAgICAgICAgICAvL2RlYWRSQStkZXZhbmFnYXJpIGNvbnNvbmFudCBOTkEtPk5OQStzdXBlclJBCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KGRlYWRSQSsgIlx1MDkxNyIpOyAgICAgICAgICAgICAvL2RlYWRSQStkZXZhbmFnYXJpIGNvbnNvbmFudCBHQS0+R0Erc3VwZXJSQQorICAgLy8gICBjaGFyZGF0YS5hZGRFbGVtZW50KGRlYWRSQSsgIlx1MDk2MCIpOyAgICAgICAgICAgLy9kZWFkUkErZGV2YW5hZ2FyaSBjb3NvbmFudCBSUkktPlJSSStzdXBlclJBCisgICAgICAKKyAgICAgIC8vaWYgYW55IGRlYWQgY29uc29uYW50KG90aGVyIHRoYW4gZGVhZCBSQSlwcmVjZWRlcyB0aGUgY29uc29uYW50IFJBLCB0aGVuCisgICAgICAvL2l0IGlzIHJlcGxhY2VkIHdpdGggaXRzIG5vbWluYWwgZm9ybWEgbmQgUkEgaXMgcmVwbGFjZWQgYnkgdGhlIHN1YnNjcmlwdCBub24tc3BhY2luZyBtYXJrLgorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudChkZWFkUEhBKyAiXHUwOTMwIik7ICAgICAgICAgICAgLy9kZWFkUEhBK2RldmFuYWdhcmkgY29uc29uYW50IFJBLT5QSEErc3ViUkEKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoZGVhZFBBKyAiXHUwOTMwIik7ICAgICAgICAgICAgIC8vZGVhZFBBK2RldmFuYWdhcmkgY29uc29uYW50IFJBLT5QQStzdWJSQQorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudChkZWFkVFRIQSsgIlx1MDkzMCIpOyAgICAgICAgICAgLy9kZWFkVFRIQStkZXZhbmFnYXJpIGNvbnNvbmFudCBSQS0+VFRIQStzdWJSQQorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudChkZWFkVEErICJcdTA5MzAiKTsgICAgICAgICAgICAgLy9kZWFkVEErUkEtPlRSQSAKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MDkzNlx1MDk0ZFx1MDkzMCIpOyAgICAgICAgIC8vZGVhZFNIQShTSEErdmlyYW1hKStSQS0+U0hSQSAKKworICAgICAgLy9jb25qdWN0IGxpZ2F0dXJlcworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUwOTE1XHUwOTRkXHUwOTM3Iik7ICAgICAgICAgLy9kZWFkS0EoS0ErdmlyYW1hKSBmb2xsb3dlZCBieSBTU0hBIHdyYXBzIHVwIGludG8gYSBzaW5nbGUgY2hhcmFjdGVyIEtTU0hBCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KGRlYWRUQSsgIlx1MDkyNCIpOyAgICAgICAgICAgICAgLy9kZWFkVEErVEEgd3JhcHMgdXAgaW50byBnbHlwaCBUVEhBCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTA5MjZcdTA5NGRcdTA5MzUiKTsgICAgICAgICAvL2RlYWREQShEQSt2aXJhbWEpK1ZBIHdyYXBzIHVwIGludG8gRFZBCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTA5MWNcdTA5NGRcdTA5MWUiKTsgICAgICAgICAvL2RlYWRKQShKQSt2aXJhbWEpK05ZQSB3cmFwcyB1cCBpbnRvIEpOWUEKKyAgICAgCisKKworICAgICAgZ2VuZXJhbEl0ZXJhdG9yVGVzdChjaGFySXRlckRlZmF1bHQsIGNoYXJkYXRhKTsKKworICB9CisKKyAgcHVibGljIHZvaWQgVGVzdERlZmF1bHRSdWxlQmFzZWRXb3JkSXRlcmF0aW9uKCl7CisgICAgICBsb2dsbigiVGVzdGluZyB0aGUgUkJCSSBmb3Igd29yZCBpdGVyYXRpb24gdXNpbmcgZGVmYXVsdCBydWxlcyIpOworICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciByYmJpPShSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKVJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKCk7CisgICAgICAvL2ZldGNoIHRoZSBydWxlcyB1c2VkIHRvIGNyZWF0ZSB0aGUgYWJvdmUgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcgorICAgICAgU3RyaW5nIGRlZmF1bHRSdWxlcz1yYmJpLnRvU3RyaW5nKCk7CisgICAgICAKKyAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3Igd29yZEl0ZXJEZWZhdWx0PW51bGw7CisgICAgICB0cnl7CisgICAgICB3b3JkSXRlckRlZmF1bHQgICA9IG5ldyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKGRlZmF1bHRSdWxlcyk7IAorICAgICAgfWNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpeworICAgICAgICAgIGVycmxuKCJFUlJPUjogZmFpbGVkIGNvbnN0cnVjdGlvbiBpbiBUZXN0RGVmYXVsdFJ1bGVCYXNlZFdvcmRJdGVyYXRpb24oKSAtLSBjdXN0b20gcnVsZXMiKyBpYWUudG9TdHJpbmcoKSk7CisgICAgICB9CisKKyAgICAgIFZlY3RvciB3b3JkZGF0YSA9IG5ldyBWZWN0b3IoKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQgKCJXcml0ZSIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCAoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQgKCJ3b3JkcnVsZXMiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQgKCIuIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJhbHBoYS1iZXRhLWdhbW1hIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7ICAgICAgCisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcdTA5MmZcdTA5MzkiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlx1MDkzOVx1MDkzZiIgKyBoYWxmTkEgKyAiXHUwOTI2XHUwOTQwIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcdTA5MzlcdTA5NDgiKTsKKyAgICAgIC8vICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcdTA5NjQiKTsgICAvL2RhbmRhIGZvbGxvd2VkIGJ5IGEgc3BhY2UKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlx1MDkwNVx1MDkzZVx1MDkyYSIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHUwOTM4XHUwOTNmXHUwOTE2XHUwOTRiXHUwOTE3XHUwOTQ3Iik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCI/Iik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcdTA5NjhcdTA5NjYuXHUwOTY5XHUwOTZmIik7ICAgICAgICAgICAgLy9oaW5kaSBudW1iZXJzCisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcdTA5NjdcdTA5NjZcdTA5NjYuXHUwOTY2XHUwOTY2JSIpOyAgICAgLy9wb3N0bnVtZXJpYworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHUyMGE4XHUwOTY3LFx1MDk2N1x1MDk2Nlx1MDk2Ni5cdTA5NjZcdTA5NjYiKTsgLy9wcmUtbnVtYmVyIEluZGlhIGN1cnJlbmN5IHN5bWJvbCBScy5cdTIwYUQKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlx1MDkwNVx1MDkyZVx1MDkxYyIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXG4iKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoaGFsZlNBKyJcdTA5MzVcdTA5MjRcdTA5MDIiK2RlYWRUQSsiXHUwOTMwIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcciIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiSXQncyIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiJDMwLjEwIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7ICAKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlx1MDBBMiIpOyAvL2NlbnQgc2lnbgorICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHUwMEEzIik7IC8vcG91bmQgc2lnbgorICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHUwMEE0Iik7IC8vY3VycmVuY3kgc2lnbgorICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHUwMEE1Iik7IC8veWVuIHNpZ24KKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoImFscGhhLWJldGEtZ2FtbWEiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIkJhZGdlcyIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiPyIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiQkFER0VTIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIhIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIxMDAwLDIzMyw0NTYuMDAwIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIxLDIzLjMyMiUiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIjEyMy4xMjIyIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcdTAwMjQxMjMsMDAwLjIwIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIxNzkuMDFcdTAwMjUiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlgiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIk5vdyIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHIiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoImlzIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcbiIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgidGhlIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcclxuIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJ0aW1lIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcdWM1ZjBcdWQ1NjkiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlx1YzdhNVx1Yjg1Y1x1YWQ1MFx1ZDY4YyIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgLy8gY29uam9pbmluZyBqYW1vLi4uCisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcdTExMDlcdTExNjFcdTExYmNcdTExMTJcdTExNjFcdTExYmMiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlx1MTExMlx1MTE2MVx1MTFhYlx1MTEwYlx1MTE3NVx1MTFhYiIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiSGVsbG8iKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiwiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoImhvdyIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiYXJlIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJ5b3UiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKworICAgICAgLy9UZXN0aW5nIHRoZSBCcmVha0l0ZXJhdG9yIGZvciBkZXZhbmFnYXJpIHNjcmlwdAorICAgICAgLy9oaW5kaQorICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHUwOTE3XHUwOTJhLVx1MDkzNlx1MDkyYSIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiISIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHUwOTJmXHUwOTM5Iik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcdTA5MzlcdTA5M2YiICsgaGFsZk5BICsgIlx1MDkyNlx1MDk0MCIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHUwOTM5XHUwOTQ4Iik7CisgICAgICAvL2RhbmRhIGlzIHNpbWlsYXIgdG8gZnVsbCBzdG9wLiBkYW5kYSBpcyBhIGhpbmRpIHBocmFzZSBzZXBlcmF0b3IKKyAgICAgIC8vTWFrZSBzdXJlIGl0IGJyZWFrcyBiZWZvcmUgZGFuZGEgYW5kIGFmdGVyIGRhbmRhIHdoZW4gaXQgaXMgZm9sbG93ZWQgYnkgYSBzcGFjZQorICAgICAgLy93b3JkZGF0YS5hZGRFbGVtZW50KCJcdTA5NjQiKTsgICAvL2ZhaWxzIGhlcmUgZG9lc24ndCBicmVhayBhdCBkYW5kYQorICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHUwOTA1XHUwOTNlXHUwOTJhIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcdTA5MzhcdTA5M2ZcdTA5MTZcdTA5NGJcdTA5MTdcdTA5NDciKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIj8iKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlxuIik7IAorICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiOiIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudChkZWFkUEErIlx1MDkzMFx1MDkzZVx1MDkyZiIrdmlzYXJnYSk7ICAgIC8vbm8gYnJlYWsgYmVmb3JlIHZpc2FyZ2EKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHUwOTM1IiArIGRlYWRSQSsgIlx1MDkzN1x1MDkzZSIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHJcbiIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudChkZWFkUEErICJcdTA5MzBcdTA5MTVcdTA5M2VcdTA5MzYiKTsgICAgIC8vZGVhZFBBK1JBK0tBK3Zvd2VsIEFBK1NIQSAtPiBwcmFrYXNoCisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIsIik7IAorICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHUwOTI0XHUwOTQxXHUwOTJlXHUwOTNlXHUwOTMwXHUwOTRiIik7IAorICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHUwOTJlXHUwOTNmIisgZGVhZFRBKyAiXHUwOTMwIik7ICAgICAgIC8vTUErdm93ZWwgSSsgZGVhZFRBICsgUkEgCisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcdTA5MTVcdTA5M2UiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlx1MDkyYSIrIGRlYWRUQSArICJcdTA5MzAiKTsgICAgICAgICAgICAvL1BBICsgZGVhZFRBICsgUkEKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlx1MDkyYVx1MDk1ZFx1MDk0YiIpOworICAgICAgLy8gd29yZGRhdGEuYWRkRWxlbWVudCgiXHUwOTY0Iik7IC8vZmFpbHMgaGVyZSBkb2Vzbid0IGJyZWFrIGF0IGRhbmRhCisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KGRlYWRTQSArIGRlYWRUQSArICJcdTA5MzBcdTA5M2YiKTsgICAgICAgLy9kZWFkU0ErZGVhZFRBK1JBK3Zvd2VsIEktPnN0aHJpCisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIuIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcdTA5NjhcdTA5NjYuXHUwOTY5XHUwOTZmIik7ICAgICAgICAgICAgLy9oaW5kaSBudW1iZXJzCisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcdTA5NjdcdTA5NjZcdTA5NjYuXHUwOTY2XHUwOTY2JSIpOyAgICAgLy9wb3N0bnVtZXJpYworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHUyMGE4XHUwOTY3LFx1MDk2N1x1MDk2Nlx1MDk2Ni5cdTA5NjZcdTA5NjYiKTsgLy9wcmUtbnVtYmVyIEluZGlhIGN1cnJlbmN5IHN5bWJvbCBScy5cdTIwYUQKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlx1MDkwNVx1MDkyZVx1MDkxYyIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXG4iKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoaGFsZlNBICsgIlx1MDkzNVx1MDkyNFx1MDkwMiIgK2RlYWRUQSsgIlx1MDkzMCIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHIiKTsKKworICAgICAgZ2VuZXJhbEl0ZXJhdG9yVGVzdCh3b3JkSXRlckRlZmF1bHQsIHdvcmRkYXRhKTsKKyAgfQorICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcga1BhcmFncmFwaFNlcGFyYXRvciA9ICJcdTIwMjkiOworICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcga0xpbmVTZXBhcmF0b3IgICAgICA9ICJcdTIwMjgiOworCisgIHB1YmxpYyB2b2lkIFRlc3REZWZhdWx0UnVsZUJhc2VkU2VudGVuY2VJdGVyYXRpb24oKXsKKyAgICAgIGxvZ2xuKCJUZXN0aW5nIHRoZSBSQkJJIGZvciBzZW50ZW5jZSBpdGVyYXRpb24gdXNpbmcgZGVmYXVsdCBydWxlcyIpOworICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciByYmJpPShSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKVJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuZ2V0U2VudGVuY2VJbnN0YW5jZSgpOworICAgICAgLy9mZXRjaCB0aGUgcnVsZXMgdXNlZCB0byBjcmVhdGUgdGhlIGFib3ZlIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IKKyAgICAgIFN0cmluZyBkZWZhdWx0UnVsZXM9cmJiaS50b1N0cmluZygpOworICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBzZW50SXRlckRlZmF1bHQ9bnVsbDsKKyAgICAgIHRyeXsKKyAgICAgIHNlbnRJdGVyRGVmYXVsdCAgID0gbmV3IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoZGVmYXVsdFJ1bGVzKTsgCisgICAgICB9Y2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSl7CisgICAgICAgICAgZXJybG4oIkVSUk9SOiBmYWlsZWQgY29uc3RydWN0aW9uIGluIFRlc3REZWZhdWx0UnVsZUJhc2VkU2VudGVuY2VJdGVyYXRpb24oKSIgKyBpYWUudG9TdHJpbmcoKSk7CisgICAgICB9CisKKyAgICAgIFZlY3RvciBzZW50ZGF0YSA9IG5ldyBWZWN0b3IoKTsKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIihUaGlzIGlzIGl0LikgIik7CisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJUZXN0aW5nIHRoZSBzZW50ZW5jZSBpdGVyYXRvci4gIik7CisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJcIlRoaXMgaXNuXCd0IGl0LlwiICIpOworICAgICAgc2VudGRhdGEuYWRkRWxlbWVudCgiSGkhICIpOworICAgICAgc2VudGRhdGEuYWRkRWxlbWVudCgiVGhpcyBpcyBhIHNpbXBsZSBzYW1wbGUgc2VudGVuY2UuICIpOworICAgICAgc2VudGRhdGEuYWRkRWxlbWVudCgiKFRoaXMgaXMgaXQuKSAiKTsKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIlRoaXMgaXMgYSBzaW1wbGUgc2FtcGxlIHNlbnRlbmNlLiAiKTsKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIlwiVGhpcyBpc25cJ3QgaXQuXCIgIik7CisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJIaSEgIik7CisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJUaGlzIGlzIGEgc2ltcGxlIHNhbXBsZSBzZW50ZW5jZS4gIik7CisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJJdCBkb2VzIG5vdCBoYXZlIHRvIG1ha2UgYW55IHNlbnNlIGFzIHlvdSBjYW4gc2VlLiAiKTsKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIk5lbCBtZXp6byBkZWwgY2FtbWluIGRpIG5vc3RyYSB2aXRhLCBtaSByaXRyb3ZhaSBpbiB1bmEgc2VsdmEgb3NjdXJhLiAiKTsKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIkNoZSBsYSBkcml0dGEgdmlhIGF2ZW8gc21hcnJpdGEuICIpOworICAgICAgc2VudGRhdGEuYWRkRWxlbWVudCgiSGUgc2FpZCwgdGhhdCBJIHNhaWQsIHRoYXQgeW91IHNhaWQhISAiKTsKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIkRvbid0IHJvY2sgdGhlIGJvYXQuIiArIGtQYXJhZ3JhcGhTZXBhcmF0b3IpOworICAgICAgc2VudGRhdGEuYWRkRWxlbWVudCgiQmVjYXVzZSBJIGFtIHRoZSBkYWRkeSwgdGhhdCBpcyB3aHkuICIpOworICAgICAgc2VudGRhdGEuYWRkRWxlbWVudCgiTm90IG9uIG15IHRpbWUgKGVsIHRpbW8uKSEgIik7CisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJTbyB3aGF0ISEiICsga1BhcmFncmFwaFNlcGFyYXRvcik7CisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJcIkJ1dCBub3csXCIgaGUgc2FpZCwgXCJJIGtub3chXCIgIik7CisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJIYXJyaXMgdGh1bWJlZCBkb3duIHNldmVyYWwsIGluY2x1ZGluZyBcIkF3YXkgV2UgR29cIiAod2hpY2ggYmVjYW1lIHRoZSBodWdlIHN1Y2Nlc3MgT2tsYWhvbWEhKS4gIik7CisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJPbmUgc3BlY2llcywgQi4gYW50aHJhY2lzLCBpcyBoaWdobHkgdmlydWxlbnQuXG4iKTsKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIldvbGYgc2FpZCBhYm91dCBTb3VuZGVyOlwiQmVhdXRpZnVsbHkgdGhvdWdodC1vdXQgYW5kIGRpcmVjdGVkLlwiICIpOworICAgICAgc2VudGRhdGEuYWRkRWxlbWVudCgiSGF2ZSB5b3UgZXZlciBzYWlkLCBcIlRoaXMgaXMgd2hlcmVcdEkgc2hhbGwgbGl2ZVwiPyAiKTsKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIkhlIGFuc3dlcmVkLCBcIllvdSBtYXkgbm90IVwiICIpOworICAgICAgc2VudGRhdGEuYWRkRWxlbWVudCgiQW5vdGhlciBwb3B1bGFyIHNheWluZyBpczogXCJIb3cgZG8geW91IGRvP1wiLiAiKTsKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIllldCBhbm90aGVyIHBvcHVsYXIgc2F5aW5nIGlzOiBcJ0lcJ20gZmluZSB0aGFua3MuXCcgIik7CisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJXaGF0IGlzIHRoZSBwcm9wZXIgdXNlIG9mIHRoZSBhYmJyZXZpYXRpb24gcHAuPyAiKTsKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIlllcywgSSBhbSBkZWZpbmF0ZWxseSAxMlwiIHRhbGwhISIpOworICAgICAgc2VudGRhdGEuYWRkRWxlbWVudCgiTm93XHJpc1xudGhlXHJcbnRpbWVcblxyZm9yXHJccmFsbFx1MjAyOSIpOworICAgICAgLy8gRG9uJ3QgYnJlYWsgc2VudGVuY2VzIGF0IHRoZSBib3VuZGFyeSBiZXR3ZWVuIENKSworICAgICAgLy8gYW5kIG90aGVyIGxldHRlcnMKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIlx1NTQ4N1x1NjdmZlx1ZTU5MVx1NTAxN1x1NjFiM1x1NjBhMVx1OTUxMFx1ODE2NTpcIkpBVkFcdTgyMWMiCisgICAgICAgICAgICAgICAgKyAiXHU4MTY1XHU3ZmM4XHU1MWNlXHUzMDZkLFx1MjQ5NFx1NTZkOFx1NGVjMFx1NjBiMVx1ODU2MFx1NTFiYSIKKyAgICAgICAgICAgICAgICArICJcdTYxMWRcdTU3YjZcdTI1MTBcdTVkNDZcIi5cdTIwMjkiKTsKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIlx1NTQ4N1x1NjdmZlx1ZTU5MVx1NTAxN1x1NjFiM1x1NjBhMVx1OTUxMFx1ODE2NVx1OWRlOCIKKyAgICAgICAgICAgICAgICArICJcdTk3ZTRKQVZBXHU4MjFjXHU4MTY1XHU3ZmM4XHU1MWNlXHUzMDZkXHVlMzBiXHUyNDk0XHU1NmQ4XHU0ZWMwIgorICAgICAgICAgICAgICAgICsgIlx1NjBiMVx1ODU2MFx1NTFiYVx1NjExZFx1NTdiNlx1MjUxMFx1NWQ0Nlx1OTdlNVx1Nzc1MVx1MjAyOSIpOworICAgICAgc2VudGRhdGEuYWRkRWxlbWVudCgiXHU1NDg3XHU2N2ZmXHVlNTkxXHU1MDE3XHU2MWIzXHU2MGExXHU5NTEwXHU4MTY1XHU5ZGU4XHU5N2U0IgorICAgICAgICAgICAgICAgICsgIlx1NjQ3MFx1ODc5MEpBVkFcdTgyMWNcdTgxNjVcdTdmYzhcdTUxY2VcdTMwNmRcdWUzMGJcdTI0OTRcdTU2ZDgiCisgICAgICAgICAgICAgICAgKyAiXHU0ZWMwXHU2MGIxXHU4NTYwXHU1MWJhXHU2MTFkXHU1N2I2XHUyNTEwXHU1ZDQ2XHU5N2U1XHU3NzUxXHUyMDI5Iik7CisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJIZSBzYWlkLCBcIkkgY2FuIGdvIHRoZXJlLlwiXHUyMDI5Iik7CisgICAgICAvLyBUcmVhdCBmdWxsd2lkdGggdmFyaWFudHMgb2YgLiE/IHRoZSBzYW1lIGFzIHRoZWlyCisgICAgICAvLyBub3JtYWwgY291bnRlcnBhcnRzCisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJJIGtub3cgSSdtIHJpZ2h0XHVmZjBlICIpOworICAgICAgc2VudGRhdGEuYWRkRWxlbWVudCgiUmlnaHRcdWZmMWYgIik7CisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJSaWdodFx1ZmYwMSAiKTsKKworICAgICAgLy8gRG9uJ3QgYnJlYWsgc2VudGVuY2VzIGF0IGJvdW5kYXJ5IGJldHdlZW4gQ0pLIGFuZCBkaWdpdHMKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIlx1NTQ4N1x1NjdmZlx1ZTU5MVx1NTAxN1x1NjFiM1x1NjBhMVx1OTUxMFx1ODE2NVx1OWRlOCIKKyAgICAgICAgICAgICAgICArICJcdTk3ZTQ4ODg4XHU4MjFjXHU4MTY1XHU3ZmM4XHU1MWNlXHUzMDZkXHVlMzBiXHUyNDk0XHU1NmQ4XHU0ZWMwIgorICAgICAgICAgICAgICAgICsgIlx1NjBiMVx1ODU2MFx1NTFiYVx1NjExZFx1NTdiNlx1MjUxMFx1NWQ0Nlx1OTdlNVx1Nzc1MVx1MjAyOSIpOworCisgICAgICAvLyBCcmVhayBzZW50ZW5jZSBiZXR3ZWVuIGEgc2VudGVuY2UgdGVybWluYXRvciBhbmQKKyAgICAgIC8vIG9wZW5pbmcgcHVuY3R1YXRpb24KKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIkhvdyBkbyB5b3UgZG8/Iik7CisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCIoZmluZSkuIik7CisgICAgICAvL3NlbnRlbmNlIGJyZWFrcyBmb3IgaGluZGkKKyAgICAgIC8vbWFrZSBzdXJlIHRoZXJlIGlzIHNlbnRlbmNlIGJyZWFrIGFmdGVyID8sZGFuZGEoaGluZGkgcGhyYXNlIHNlcGFyYXRvciksZnVsbHN0b3AgZm9sbG93ZWQgYnkgc3BhY2UgYW5kIG5vIGJyZWFrIGFmdGVyIFxuIFxyIAorICAgICAgc2VudGRhdGEuYWRkRWxlbWVudCgiXHUwOTI4XHUwOTJlIitoYWxmU0ErIlx1MDkyNFx1MDk0NyAiICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiXHUwOTMwXHUwOTJlXHUwOTQ3XHUwOTM2LCAiIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICJcdTA5MDVcdTA5M2VcdTA5MmEiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIlx1MDkxNVx1MDk0OFx1MDkzOFx1MDk0NyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIlx1MDkzOVx1MDk0OD8iKTsgICAKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIlx1MDkyZVx1MDk0OCBcdTA5MDUiCisgICAgICAgICAgICAgICAgICAgICAgICArIGhhbGZDSEEKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIlx1MDkxYlx1MDkzZSBcdTA5MzlcdTA5NDJcdTA5MDFcdTA5NjQgIik7ICAgCisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJcdTA5MDVcdTA5M2VcdTA5MmFcclxuIFx1MDkxNVx1MDk0OFx1MDkzOFx1MDk0NyBcdTA5MzlcdTA5NDg/Iik7ICAgCisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJcdTA5MzVcdTA5MzkgIgorICAgICAgICAgICAgICAgICAgICAgICArIGhhbGZLQQorICAgICAgICAgICAgICAgICAgICAgICArICJcdTA5MmZcdTA5M2VcbiBcdTA5MzlcdTA5NDg/Iik7ICAgCisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJcdTA5MmZcdTA5MzkgXHUwOTA1XHUwOTNlXHUwOTJlIFx1MDkzOVx1MDk0OC4gIik7ICAgCisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJcdTA5MmZcdTA5MzkgbWVhbnMgXCJ0aGlzXCIuICIpOyAKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIlwiXHUwOTJhXHUwOTVkXHUwOTNlXHUwOTA4XCIgbWVhbmluZyBcImVkdWNhdGlvblwiIG9yIFwic3R1ZGllc1wiLiAiKTsKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIlx1MDkwNVx1MDkzZVx1MDkxYyIgCisgICAgICAgICAgICAgICAgICAgICAgICArICIoIitoYWxmU0ErIlx1MDkzNVx1MDkyNFx1MDkwMiIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgZGVhZFRBCisgICAgICAgICAgICAgICAgICAgICAgICArICJcdTA5MzAgIgorICAgICAgICAgICAgICAgICAgICAgICAgKyAiXHUwOTI2XHUwOTNmXHUwOTM1XHUwOTNlXHUwOTM4KSAiCisgICAgICAgICAgICAgICAgICAgICAgICArICJcdTA5MzlcdTA5NDhcdTA5NjQgIik7CisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJMZXQncyBlbmQgaGVyZS4gIik7CisgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KHNlbnRJdGVyRGVmYXVsdCwgc2VudGRhdGEpOworICB9CisgICAKKyAgcHVibGljIHZvaWQgVGVzdERlZmF1bHRSdWxlQmFzZWRMaW5lSXRlcmF0aW9uKCl7CisgICAgIGxvZ2xuKCJUZXN0aW5nIHRoZSBSQkJJIGZvciBsaW5lIGl0ZXJhdGlvbiB1c2luZyBkZWZhdWx0IHJ1bGVzIik7CisgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgcmJiaT0oUnVsZUJhc2VkQnJlYWtJdGVyYXRvcilSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLmdldExpbmVJbnN0YW5jZSgpOworICAgICAvL2ZldGNoIHRoZSBydWxlcyB1c2VkIHRvIGNyZWF0ZSB0aGUgYWJvdmUgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcgorICAgICBTdHJpbmcgZGVmYXVsdFJ1bGVzPXJiYmkudG9TdHJpbmcoKTsKKyAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBsaW5lSXRlckRlZmF1bHQ9bnVsbDsKKyAgICAgdHJ5eworICAgICBsaW5lSXRlckRlZmF1bHQgICA9IG5ldyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKGRlZmF1bHRSdWxlcyk7IAorICAgICB9Y2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSl7CisgICAgICAgICBlcnJsbigiRVJST1I6IGZhaWxlZCBjb25zdHJ1Y3Rpb24gaW4gVGVzdERlZmF1bHRSdWxlQmFzZWRMaW5lSXRlcmF0aW9uKCkiICsgaWFlLnRvU3RyaW5nKCkpOworICAgICB9CisKKyAgICAgVmVjdG9yIGxpbmVkYXRhID0gbmV3IFZlY3RvcigpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJNdWx0aS0iKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiTGV2ZWwgIik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoImV4YW1wbGUgIik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoIm9mICIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJhICIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJzZW1pLSIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJpZGlvdGljICIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJub24tIik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoInNlbnNpY2FsICIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCIobm9uLSIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJpbXBvcnRhbnQpICIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJzZW50ZW5jZS4gIik7CisKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiSGkgICIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJIZWxsbyAiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiSG93XG4iKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiYXJlXHIiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgieW91IiArIGtMaW5lU2VwYXJhdG9yKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiZmluZS5cdCIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJnb29kLiAgIik7CisKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiTm93XHIiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiaXNcbiIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJ0aGVcclxuIik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoInRpbWVcbiIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJcciIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJmb3JcciIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJcciIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJhbGwiKTsKKworICAgIC8vIHRvIHRlc3QgZm9yIGJ1ZyAjNDA2ODEzMworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJcdTk2ZjYiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiXHU0ZTAwXHUzMDAyIik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoIlx1NGU4Y1x1MzAwMSIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJcdTRlMDlcdTMwMDJcdTMwMDEiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiXHU1NmRiXHUzMDAxXHUzMDAyXHUzMDAxIik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoIlx1NGU5NCwiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiXHU1MTZkLiIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJcdTRlMDMuXHUzMDAxLFx1MzAwMiIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJcdTUxNmIiKTsKKworICAgIC8vIHRvIHRlc3QgZm9yIGJ1ZyAjNDA4NjA1MgorICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJmb29cdTAwYTBiYXIgIik7CisgICAgLy8gbGluZWRhdGEuYWRkRWxlbWVudCgiZm9vXHVmZWZmYmFyIik7CisKKyAgICAvLyB0byB0ZXN0IGZvciBidWcgIzQwOTc5MjAKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiZG9nLCIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJjYXQsIik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoIm1vdXNlICIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCIob25lKSIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCIodHdvKVxuIik7CisKKyAgICAvLyB0byB0ZXN0IGZvciBidWcgIzQwMzUyNjYKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiVGhlICIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJiYWxhbmNlICIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJpcyAiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiJC0yMyw0NTYuNzgsICIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJub3QgIik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoIi0kMzIsNDU2Ljc4IVxuIik7CisKKyAgICAvLyB0byB0ZXN0IGZvciBidWcgIzQwOTg0NjcKKyAgICAvLyBXaGF0IGZvbGxvd3MgaXMgYSBzdHJpbmcgb2YgS29yZWFuIGNoYXJhY3RlcnMgKEkgZm91bmQgaXQgaW4gdGhlIFllbGxvdyBQYWdlcworICAgIC8vIGFkIGZvciB0aGUgS29yZWFuIFByZXNieXRlcmlhbiBDaHVyY2ggb2YgU2FuIEZyYW5jaXNjbywgYW5kIEkgaG9wZSBJIHRyYW5zY3JpYmVkCisgICAgLy8gaXQgY29ycmVjdGx5KSwgZmlyc3QgYXMgcHJlY29tcG9zZWQgc3lsbGFibGVzLCBhbmQgdGhlbiBhcyBjb25qb2luaW5nIGphbW8uCisgICAgLy8gQm90aCBzZXF1ZW5jZXMgc2hvdWxkIGJlIHNlbWFudGljYWxseSBpZGVudGljYWwgYW5kIGJyZWFrIHRoZSBzYW1lIHdheS4KKyAgICAvLyBwcmVjb21wb3NlZCBzeWxsYWJsZXMuLi4KKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiXHVjMGMxXHVkNTZkICIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJcdWQ1NWNcdWM3NzggIik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoIlx1YzVmMFx1ZDU2OSAiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiXHVjN2E1XHViODVjXHVhZDUwXHVkNjhjICIpOworICAgIC8vIGNvbmpvaW5pbmcgamFtby4uLgorICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJcdTExMDlcdTExNjFcdTExYmNcdTExMTJcdTExNjFcdTExYmMgIik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoIlx1MTExMlx1MTE2MVx1MTFhYlx1MTEwYlx1MTE3NVx1MTFhYiAiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiXHUxMTBiXHUxMTY3XHUxMWFiXHUxMTEyXHUxMTYxXHUxMWI4ICIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJcdTExMGNcdTExNjFcdTExYmNcdTExMDVcdTExNjlcdTExMDBcdTExNmRcdTExMTJcdTExNmMiKTsKKworICAgIC8vIHRvIHRlc3QgZm9yIGJ1ZyAjNDExNzU1NDogRnVsbHdpZHRoIC4hPyBzaG91bGQgYmUgdHJlYXRlZCBhcyBwb3N0SndyZAorICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJcdTRlMDFcdWZmMGUiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiXHU0ZTAyXHVmZjAxIik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoIlx1NGUwM1x1ZmYxZiIpOworICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KGxpbmVJdGVyRGVmYXVsdCwgbGluZWRhdGEpOworCisKKyAgfQorICBwdWJsaWMgdm9pZCBUZXN0Q3VzdG9tUnVsZUJhc2VkTGluZUl0ZXJhdG9yKCl7CisKKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHJiYmk9KFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UoKTsKKyAgICAvL2ZldGNoIHRoZSBydWxlcyB1c2VkIHRvIGNyZWF0ZSB0aGUgYWJvdmUgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcgorICAgIFN0cmluZyBydWxlcz0vLyIkX2lnbm9yZV89W2VdOyIgICsgLy8gW2xpdV0gTm90IHN1cmUgd2hhdCB0aGUgaW50ZW50aW9uIHdhcyBoZXJlLgorICAgICAgICAvLyBJdCdzIGlsbGVnYWwgdG8gcmVkZWZpbmUgdmFyaWFibGVzLCBhbHNvLCB3aHkgcHJlcGVuZCB0aGUgaWdub3JlIGRlZmluaXRpb24gLS0KKyAgICAgICAgLy8gZXZlbiBpZiBpdCdzIGxlZ2FsIHRvIHJlZGVmaW5lIHZhcmlhYmxlcywgdGhlIHByZXBlbmRlZCBkZWZpbml0aW9uIHdpbGwganVzdAorICAgICAgICAvLyBnZXQgb3ZlcnJpZGRlbi4KKyAgICAgICAgICAgICAgICAgcmJiaS50b1N0cmluZygpOworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgbGluZUl0ZXI9bnVsbDsKKyAgICB0cnl7CisgICAgIGxpbmVJdGVyICAgPSBuZXcgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihydWxlcyk7IAorICAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKXsKKyAgICAgICAgIGVycmxuKCJFUlJPUjogZmFpbGVkIGNvbnN0cnVjdGlvbiBpbiBUZXN0Q3VzdG9tUnVsZUJhc2VkTGluZUl0ZXJhdG9yKCkgLS0gY3VzdG9tIHJ1bGVzXG4iICsgaWFlLnRvU3RyaW5nKCkpOworICAgICAgIH0KKyAgICBWZWN0b3IgbGluZWRhdGE9bmV3IFZlY3RvcigpOworICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoIlNMaGVsbG8hICIpOworICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoIkhvdyAiKTsKKyAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KGxpbmVJdGVyLCBsaW5lZGF0YSk7CisgIH0KKyAgCisgIC8vdGVzdHMgdGhlIGJlaGF2aW91ciBvZiBjaGFyYWN0ZXIgaXRlcmF0aW9uIG9mIFJCQkkgd2l0aCBjdXN0b20gcnVsZXMKKyAgcHVibGljIHZvaWQgVGVzdEN1c3RvbVJ1bGVCYXNlZENoYXJhY3Rlckl0ZXJhdGlvbigpeworICAgICAgbG9nbG4oIlRlc3RpbmcgdGhlIFJCQkkgYnkgdXNpbmcgY3VzdG9tIHJ1bGVzIGZvciBjaGFyYWN0ZXIgaXRlcmF0aW9uIik7CisKKyAgICAgIFN0cmluZyBjcnVsZXMyPSIkX2lnbm9yZV89W2VdOyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIC8vaWdub3JlIHRoZSBjaGFyYWN0ZXIgImUiCisgICAgICAgICAgICAgICAgICAgICAiLjsiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIAorICAgICAgICAgICAgICAgICAgICAgIiRkZXZWb3dlbFNpZ249W1x1MDkzZS1cdTA5NGNcdTA5NjJcdTA5NjNdOyIgICArICAvL2RldmFuYWdpcmkgdm93ZWwgPSBcdTA5M2UgdHAgXHUwOTRjIGFuZCBcdTA5NjIuXHUwOTYzCisgICAgICAgICAgICAgICAgICAgICAiJGRldkNvbnNvbmFudD1bXHUwOTE1LVx1MDkzOV07IiAgICAgICAgICAgICAgICsgIC8vZGV2YW5hZ2lyaSBjb25zb25hbnQgPSBcdTA5MTUgdG8gXHUwOTM5CisgICAgICAgICAgICAgICAgICAgICAiJGRldkNvbnNvbmFudCRkZXZWb3dlbFNpZ247IiA7ICAgICAgICAgICAgICAgIC8vYnJlYWsgYXQgYWxsIHBsYWNlcyBleGNlcHQgdGhlICBmb2xsb3dpbmcgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9kZXZhbmFnaXJpIGNvbnNvbmFudHMrIGRldmFuYWdpcmkgdm93ZWxzaWduCisgICAgICAKKyAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgY2hhckl0ZXJSdWxlcz1udWxsOworICAgICAgdHJ5eworICAgICAgY2hhckl0ZXJSdWxlcyAgID0gbmV3IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoY3J1bGVzMik7IAorICAgICAgfWNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpeworICAgICAgICAgIGVycmxuKCJFUlJPUjogZmFpbGVkIGNvbnN0cnVjdGlvbiBpbiBUZXN0Q3VzdG9tQmFzZWRDaGFyYWN0ZXJJdGVyYXRpb24oKS0tIGN1c3RvbSBydWxlcyIgKyBpYWUudG9TdHJpbmcoKSk7CisgICAgICB9CisKKyAgICAgIFZlY3RvciBjaGFyZGF0YSA9IG5ldyBWZWN0b3IoKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIkhlIik7ICAgICAgICAgICAgICAvL2lnbm9yZXMgJ2UnCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJsIik7ICAgICAgICAgICAgICAgIAorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgibCIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgib2UiKTsgICAgICAgICAgICAgIC8vaWdub3JlcyAnZScgaGVuY2Ugd3JhcHMgaXQgaW50byAnbycgaW5zdGVhZCBvZiB3cmFwcGluZyB3aXRoCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTAzMDEiKTsgICAgICAgICAgLy8nXHUwMzAxJyB0byBmb3JtICdhY3V0ZUUgJworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiJmUiKTsgICAgICAgICAgICAgIC8vaWdub3JlcyAnZScgaGVuY2Ugd3JhcHMgaXQgaW50byAnJicgaW5zdGVhZCBvZiB3cmFwcGluZyB3aXRoCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTAzMDMiKTsgICAgICAgICAgLy8nXHUwMzAzIHRvIGZvcm0gJ3RpbGRhRScKKyAgICAgIC8vZGV2YW5hZ2lyaSBjaGFyYWN0ZXJzIAorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUwOTA2Iik7ICAgICAgICAgIC8vZGV2YW5hZ2lyaSBBQQorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUwOTNlIik7ICAgICAgICAgIC8vZGV2YW5hZ2lyaSB2b3dlbHNpZ24gQUE6LS1icmVha3MgYXQgXHUwOTAxIHdoaWNoIGlzIGRldmFuYWdpcmkgCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTA5MDEiKTsgICAgICAgICAgLy9jaGFuZHJhIGJpbmRodSBzaW5jZSBpdCBpcyBub3QgbWVudGlvbmVkIGluIHRoZSBydWxlcworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUwOTE2XHUwOTQ3Iik7ICAgIC8vZGV2YW5hZ2lyaSBLSEErdm93ZWxzaWduIEUKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MDkzOFx1MDk0MSIpOyAgICAvL2RldmFuYWdpcmkgU0Erdm93ZWxzaWduIFUgOiAtIGJyZWFrcyBhdAorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUwOTAyIik7ICAgICAgICAgIC8vXHUwOTAyIGRldmFuYWdpcmkgYW51c3ZhcmEgc2luY2UgaXQgaXMgbm90IG1lbnRpb25lZCBpbiB0aGUgcnVsZXMKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MDkyNiIpOyAgICAgICAgICAvL2RldmFuYWdpcmkgY29uc29uYW50IERBCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTA5MzAiKTsgICAgICAgICAgLy9kZXZhbmFnaXJpIGNvbnNvbmFudCBSQQorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUwOTM5XHUwOTRjIik7ICAgIC8vZGV2YW5hZ2lyaSBIQSt2b3dlbCBzaWduIEFJCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTA5NjQiKTsgICAgICAgICAgLy9kZXZhbmFnaXJpIGRhbmRhCisgICAgICAvLyBkZXZhbmFnaXJpIGNocmFjdGVycyBlbmQKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIkEiKTsgICAgICAgICAgICAgICAvL2JyZWFrcyBpbiBiZXR3ZWVuIHNpbmNlIGl0IGlzIG5vdCBtZW50aW9uZWQgaW4gdGhlIHJ1bGVzCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTAzMDIiKTsgICAgICAgICAgLyogY2lyY3VtZmxleEEgKi8gICAgCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJpIik7ICAgICAgICAgICAgICAgLy9icmVha3MgaW4gYmV0d2VlbiBzaW5jZSBub3QgbWVudGlvbmVkIGluIHRoZSBydWxlcworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUwMzAxIik7ICAgICAgICAgIC8qIGFjdXRlQmVsb3dJICovICAKKyAgICAgIC8vUnVsZXMgZG9uJ3Qgc3VwcG9ydCBjb25qb2luaW5nIGphbW8uLi4uCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTExMDkiKTsgICAgICAgICAgLy9icmVhayBhdCBldmVyeSBjaGFyYWN0ZXIgc2luY2UgcnVsZXMKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MTE2MSIpOyAgICAgICAgICAvL2Rvbid0IHN1cHBvcnQgY29uam9pbmluZyBqYW1vCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTExYmMiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MTExMiIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUxMTYxIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTExYmMiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlxuIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcciIpOyAgICAgICAgICAgICAvL2RvZXNuJ3Qga2VlcCBDUkxHRiB0b2dldGhlciBzaW5jZSBydWxlcyBkbyBub3QgbWVudGlvbiBpdAorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXG4iKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlMiKTsgICAgICAgICAgICAgIC8vZ3JhdmVTCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTAzMDAiKTsgICAgICAgICAvL2JyZWFrcyBpbiBiZXR3ZWVuIHNpbmNlIGl0IGlzIG5vdCBtZW50aW9uZWQgaW4gdGhlIHJ1bGVzCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJpIik7ICAgICAgICAgICAgICAvL2FjdXRlQmVsb3dJCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTAzMDEiKTsgICAgICAgICAvL2JyZWFrcyBpbiBiZXR3ZWVuIHNpbmNlIGl0IGlzIG5vdCBtZW50aW9uZWQgaW4gdGhlIHJ1bGVzCisKKyAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3QoY2hhckl0ZXJSdWxlcywgY2hhcmRhdGEpOworCisgIH0gICAgCisgIC8vdGVzdHMgY3VzdG9tIHJ1bGVzIGJhc2VkIHdvcmQgaXRlcmF0aW9uCisgIHB1YmxpYyB2b2lkIFRlc3RDdXN0b21SdWxlQmFzZWRXb3JkSXRlcmF0aW9uKCl7CisgICAgICBsb2dsbigiVGVzdGluZyB0aGUgUkJCSSBieSB1c2luZyBjdXN0b20gcnVsZXMgZm9yIHdvcmQgaXRlcmF0aW9uIik7CisgICAgICBTdHJpbmcgd3J1bGVzMT0iJF9pZ25vcmVfPVtbOk1uOl1bOk1lOl1bOkNmOl1dOyIgICAgICAgICArIC8vIGlnbm9yZSBub24tc3BhY2luZyBtYXJrcywgZW5jbG9zaW5nIG1hcmtzLCBhbmQgZm9ybWF0IGNoYXJhY3RlcnMsCisgICAgICAgICAgICAgICAgICAgICAgIiRkYW5kYT1bXHUwOTY0XHUwOTY1XTsiICAgICAgICAgICAgICAgICsgLy8gSGluZGkgUGhyYXNlIHNlcGVyYXRvcgorICAgICAgICAgICAgICAgICAgICAgICIkbGV0PVtbOkw6XVs6TWM6XV07IiAgICAgICAgICAgICAgICAgICArIC8vIHVwcGVyY2FzZShMdSksIGxvd2VyY2FzZShMbCksIHRpdGxlY2FzZShMdCksIG1vZGlmaWVyKExtKSBsZXR0ZXJzLCBNYy1jb21iaW5pbmcgc3BhY2UgbWFyaworICAgICAgICAgICAgICAgICAgICAgICIkbWlkX3dvcmQ9W1s6UGQ6XVxcXCJcXFwnXFwuXTsiICAgICAgICArIC8vIGRhc2hlcywgcXVvdGF0aW9uLCBhcG9zdHJhcGhlcywgcGVyaW9kCisgICAgICAgICAgICAgICAgICAgICAgIiRscz1bXG5cdTAwMGNcdTIwMjhcdTIwMjldOyIgICAgICAgICAgICsgLy8gbGluZSBzZXBhcmF0b3JzOiAgTEYsIEZGLCBQUywgYW5kIExTCisgICAgICAgICAgICAgICAgICAgICAgIiR3cz1bWzpaczpdXHRdOyIgICAgICAgICAgICAgICAgICAgICAgICsgLy8gYWxsIHNwYWNlIHNlcGFyYXRvcnMgYW5kIHRoZSB0YWIgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgICAgICAgIiR3b3JkPSgoJGxldCsoJG1pZF93b3JkJGxldCspKikpOyIgICsgIAorICAgICAgICAgICAgICAgICAgICAgICIuOyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgLy8gYnJlYWsgYWZ0ZXIgZXZlcnkgY2hhcmFjdGVyLCB3aXRoIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9ucworICAgICAgICAgICAgICAgICAgICAgICIkd29yZDsiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAKKyAgICAgICAgICAgICAgICAgICAgICAiJHdzKlxyJGxzJGRhbmRhPzsiIDsKKworICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciB3b3JkSXRlclJ1bGVzPW51bGw7CisgICAgICB0cnl7CisgICAgICB3b3JkSXRlclJ1bGVzICAgPSBuZXcgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcih3cnVsZXMxKTsgCisgICAgICB9Y2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSl7CisgICAgICAgICAgZXJybG4oIkVSUk9SOiBmYWlsZWQgY29uc3RydWN0aW9uIGluIFRlc3RDdXN0b21SdWxlQmFzZWRXb3JkSXRlcmF0aW9uKCkgLS0gY3VzdG9tIHJ1bGVzIiArIGlhZS50b1N0cmluZygpKTsKKyAgICAgIH0KKworICAgICAgVmVjdG9yIHdvcmRkYXRhID0gbmV3IFZlY3RvcigpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiV3JpdGUiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIndvcmRydWxlcyIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiLiIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgLy9wbGF5IHdpdGggaGluZGkKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlx1MDkyZlx1MDkzOSIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHUwOTM5XHUwOTNmIiArIGhhbGZOQSArICJcdTA5MjZcdTA5NDAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlx1MDkzOVx1MDk0OCIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHUwOTY0Iik7ICAgLy9EYW5kYSBpcyBzaW1pbGFyIHRvIGZ1bGwgc3RvcC4gRGFuZGEgZm9sbG93ZWQgYnkgYSBzcGFjZQorICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHUwOTA1XHUwOTNlXHUwOTJhIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcdTA5MzhcdTA5M2ZcdTA5MTZcdTA5NGJcdTA5MTdcdTA5NDciKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIj8iKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIkl0J3MiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiQiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIjMiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIjAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIi4iKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIjEiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIjAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIC8vIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3Qod29yZEl0ZXJSdWxlcywgd29yZGRhdGEpOyAKKyAgfSAKKyAgLy9hZGRzIGV4dHJhIHJ1bGVzIHRvIGRlYWwgd2l0aCBhYmJyZXZhdGlvbnMobGltaXRlZCkgYW5kIHRlc3QgdGhlIHdvcmQgSXRlcmF0aW9uCisgIHB1YmxpYyB2b2lkIFRlc3RBYmJyUnVsZUJhc2VkV29yZEl0ZXJhdGlvbigpeworICAgICAgbG9nbG4oIlRlc3RpbmcgdGhlIFJCQkkgZm9yIHdvcmQgaXRlcmF0aW9uIGJ5IGFkZGluZyBydWxlcyB0byBzdXBwb3J0IGFiYnJldmlhdGlvbiIpOworICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciByYiA9KFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoKTsKKyAgICAgIAorICAgICAgU3RyaW5nIHdydWxlczI9IiRhYmJyPSgoTXIuKXwoTXJzLil8KE1zLil8KERyLil8KFUuUy4pKTsiICsgLy8gYWJicmV2aWF0aW9ucy4gCisgICAgICAgICAgICAgICAgICAgICByYi50b1N0cmluZygpICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAiKCRhYmJyJHdzKSokd29yZDsiOworICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciB3b3JkSXRlcj1udWxsOworICAgICAgdHJ5eworICAgICAgd29yZEl0ZXIgICA9IG5ldyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKHdydWxlczIpOyAKKyAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKXsKKyAgICAgICAgICBlcnJsbigiRVJST1I6IGZhaWxlZCBjb25zdHJ1Y3Rpb24gaW4gVGVzdEFiYnJSdWxlQmFzZWRXb3JkSXRlcmF0aW9uKCkgLS1jdXN0b20gcnVsZXMiICsgaWFlLnRvU3RyaW5nKCkpOworICAgICAgfQorICAgICAgVmVjdG9yIHdvcmRkYXRhID0gbmV3IFZlY3RvcigpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiTXIuIEdlb3JnZSIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiaXMiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoImZyb20iKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlUuUy4gTmF2eSIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiLiIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiSGlzIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcbiIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiZnJpZW5kIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcdCIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiRHIuIFN0ZXZlbiIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgibWFycmllZCIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiTXMuIEJlbm5ldGgiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiEiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIk1ycy4gSm9obnNvbiIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHJcbiIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgicGFpZCIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiJDIsNDAwLjAwIik7CisgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KHdvcmRJdGVyLCB3b3JkZGF0YSk7IAorICB9IAorICAgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgIC8vIGdlbmVyYWwgdGVzdCBzdWJyb3V0aW5lcworICAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgICBwcml2YXRlIHZvaWQgZ2VuZXJhbEl0ZXJhdG9yVGVzdChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHJiYmksIFZlY3RvciBleHBlY3RlZFJlc3VsdCl7CisgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgU3RyaW5nIHRleHQ7CisgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGV4cGVjdGVkUmVzdWx0LnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgdGV4dCA9IChTdHJpbmcpZXhwZWN0ZWRSZXN1bHQuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQodGV4dCk7CisgICAgICAgICB9CisgICAgICAgICB0ZXh0ID0gYnVmZmVyLnRvU3RyaW5nKCk7CisKKyAgICAgICAgIHJiYmkuc2V0VGV4dCh0ZXh0KTsKKworICAgICAgICAgVmVjdG9yIG5leHRSZXN1bHRzID0gX3Rlc3RGaXJzdEFuZE5leHQocmJiaSwgdGV4dCk7CisgICAgICAgICBWZWN0b3IgcHJldmlvdXNSZXN1bHRzID0gX3Rlc3RMYXN0QW5kUHJldmlvdXMocmJiaSwgdGV4dCk7CisKKyAgICAgICAgIGxvZ2xuKCJjb21wYXJpbmcgZm9yd2FyZCBhbmQgYmFja3dhcmQuLi4iKTsKKyAgICAgICAgIGludCBlcnJzID0gZ2V0RXJyb3JDb3VudCgpOworICAgICAgICAgY29tcGFyZUZyYWdtZW50TGlzdHMoImZvcndhcmQgaXRlcmF0aW9uIiwgImJhY2t3YXJkIGl0ZXJhdGlvbiIsIG5leHRSZXN1bHRzLAorICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzUmVzdWx0cyk7CisgICAgICAgICBpZiAoZ2V0RXJyb3JDb3VudCgpID09IGVycnMpIHsKKyAgICAgICAgICAgICBsb2dsbigiY29tcGFyaW5nIGV4cGVjdGVkIGFuZCBhY3R1YWwuLi4iKTsKKyAgICAgICAgICAgICBjb21wYXJlRnJhZ21lbnRMaXN0cygiZXhwZWN0ZWQgcmVzdWx0IiwgImFjdHVhbCByZXN1bHQiLCBleHBlY3RlZFJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dFJlc3VsdHMpOworICAgICAgICAgfQorCisgICAgICAgIGludFtdIGJvdW5kYXJpZXMgPSBuZXcgaW50W2V4cGVjdGVkUmVzdWx0LnNpemUoKSArIDNdOworICAgICAgICBib3VuZGFyaWVzWzBdID0gUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5ET05FOworICAgICAgICBib3VuZGFyaWVzWzFdID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBleHBlY3RlZFJlc3VsdC5zaXplKCk7IGkrKykKKyAgICAgICAgIGJvdW5kYXJpZXNbaSArIDJdID0gYm91bmRhcmllc1tpICsgMV0gKyAoKFN0cmluZylleHBlY3RlZFJlc3VsdC5lbGVtZW50QXQoaSkpLmxlbmd0aCgpOworICAgICAgCisgICAgICAgIGJvdW5kYXJpZXNbYm91bmRhcmllcy5sZW5ndGggLSAxXSA9IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuRE9ORTsKKyAgICAgIAorICAgICAgICBfdGVzdEZvbGxvd2luZyhyYmJpLCB0ZXh0LCBib3VuZGFyaWVzKTsKKyAgICAgICAgX3Rlc3RQcmVjZWRpbmcocmJiaSwgdGV4dCwgYm91bmRhcmllcyk7CisgICAgICAgIF90ZXN0SXNCb3VuZGFyeShyYmJpLCB0ZXh0LCBib3VuZGFyaWVzKTsKKworICAgICAgICBkb011bHRpcGxlU2VsZWN0aW9uVGVzdChyYmJpLCB0ZXh0KTsKKyAgICAgfQorCisgICAgIHByaXZhdGUgVmVjdG9yIF90ZXN0Rmlyc3RBbmROZXh0KFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgcmJiaSwgU3RyaW5nIHRleHQpIHsKKyAgICAgICAgIGludCBwID0gcmJiaS5maXJzdCgpOworICAgICAgICAgaW50IGxhc3RQID0gcDsKKyAgICAgICAgIFZlY3RvciByZXN1bHQgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgIGlmIChwICE9IDApCisgICAgICAgICAgICAgZXJybG4oImZpcnN0KCkgcmV0dXJuZWQgIiArIHAgKyAiIGluc3RlYWQgb2YgMCIpOworICAgICAgICAgd2hpbGUgKHAgIT0gUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAgcCA9IHJiYmkubmV4dCgpOworICAgICAgICAgICAgIGlmIChwICE9IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgICBpZiAocCA8PSBsYXN0UCkKKyAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJuZXh0KCkgZmFpbGVkIHRvIG1vdmUgZm9yd2FyZDogbmV4dCgpIG9uIHBvc2l0aW9uICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGxhc3RQICsgIiB5aWVsZGVkICIgKyBwKTsKKworICAgICAgICAgICAgICAgICByZXN1bHQuYWRkRWxlbWVudCh0ZXh0LnN1YnN0cmluZyhsYXN0UCwgcCkpOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgaWYgKGxhc3RQICE9IHRleHQubGVuZ3RoKCkpCisgICAgICAgICAgICAgICAgICAgICBlcnJsbigibmV4dCgpIHJldHVybmVkIERPTkUgcHJlbWF0dXJlbHk6IG9mZnNldCB3YXMgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgbGFzdFAgKyAiIGluc3RlYWQgb2YgIiArIHRleHQubGVuZ3RoKCkpOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBsYXN0UCA9IHA7CisgICAgICAgICB9CisgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICB9CisKKyAgICAgcHJpdmF0ZSBWZWN0b3IgX3Rlc3RMYXN0QW5kUHJldmlvdXMoUnVsZUJhc2VkQnJlYWtJdGVyYXRvciByYmJpLCBTdHJpbmcgdGV4dCkgeworICAgICAgICAgaW50IHAgPSByYmJpLmxhc3QoKTsKKyAgICAgICAgIGludCBsYXN0UCA9IHA7CisgICAgICAgICBWZWN0b3IgcmVzdWx0ID0gbmV3IFZlY3RvcigpOworCisgICAgICAgICBpZiAocCAhPSB0ZXh0Lmxlbmd0aCgpKQorICAgICAgICAgICAgIGVycmxuKCJsYXN0KCkgcmV0dXJuZWQgIiArIHAgKyAiIGluc3RlYWQgb2YgIiArIHRleHQubGVuZ3RoKCkpOworICAgICAgICAgd2hpbGUgKHAgIT0gUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAgcCA9IHJiYmkucHJldmlvdXMoKTsKKyAgICAgICAgICAgICBpZiAocCAhPSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgICAgICAgaWYgKHAgPj0gbGFzdFApCisgICAgICAgICAgICAgICAgICAgICBlcnJsbigicHJldmlvdXMoKSBmYWlsZWQgdG8gbW92ZSBiYWNrd2FyZDogcHJldmlvdXMoKSBvbiBwb3NpdGlvbiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBsYXN0UCArICIgeWllbGRlZCAiICsgcCk7CisKKyAgICAgICAgICAgICAgICAgcmVzdWx0Lmluc2VydEVsZW1lbnRBdCh0ZXh0LnN1YnN0cmluZyhwLCBsYXN0UCksIDApOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgaWYgKGxhc3RQICE9IDApCisgICAgICAgICAgICAgICAgICAgICBlcnJsbigicHJldmlvdXMoKSByZXR1cm5lZCBET05FIHByZW1hdHVyZWx5OiBvZmZzZXQgd2FzICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGxhc3RQICsgIiBpbnN0ZWFkIG9mIDAiKTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgbGFzdFAgPSBwOworICAgICAgICAgfQorICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgfQorCisgICAgIHByaXZhdGUgdm9pZCBjb21wYXJlRnJhZ21lbnRMaXN0cyhTdHJpbmcgZjFOYW1lLCBTdHJpbmcgZjJOYW1lLCBWZWN0b3IgZjEsIFZlY3RvciBmMikgeworICAgICAgICAgaW50IHAxID0gMDsKKyAgICAgICAgIGludCBwMiA9IDA7CisgICAgICAgICBTdHJpbmcgczE7CisgICAgICAgICBTdHJpbmcgczI7CisgICAgICAgICBpbnQgdDEgPSAwOworICAgICAgICAgaW50IHQyID0gMDsKKworICAgICAgICAgd2hpbGUgKHAxIDwgZjEuc2l6ZSgpICYmIHAyIDwgZjIuc2l6ZSgpKSB7CisgICAgICAgICAgICAgczEgPSAoU3RyaW5nKWYxLmVsZW1lbnRBdChwMSk7CisgICAgICAgICAgICAgczIgPSAoU3RyaW5nKWYyLmVsZW1lbnRBdChwMik7CisgICAgICAgICAgICAgdDEgKz0gczEubGVuZ3RoKCk7CisgICAgICAgICAgICAgdDIgKz0gczIubGVuZ3RoKCk7CisKKyAgICAgICAgICAgICBpZiAoczEuZXF1YWxzKHMyKSkgeworICAgICAgICAgICAgICAgICBkZWJ1Z0xvZ2xuKCIgICA+IiArIHMxICsgIjwiKTsKKyAgICAgICAgICAgICAgICAgKytwMTsKKyAgICAgICAgICAgICAgICAgKytwMjsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgIGludCB0ZW1wVDEgPSB0MTsKKyAgICAgICAgICAgICAgICAgaW50IHRlbXBUMiA9IHQyOworICAgICAgICAgICAgICAgICBpbnQgdGVtcFAxID0gcDE7CisgICAgICAgICAgICAgICAgIGludCB0ZW1wUDIgPSBwMjsKKworICAgICAgICAgICAgICAgICB3aGlsZSAodGVtcFQxICE9IHRlbXBUMiAmJiB0ZW1wUDEgPCBmMS5zaXplKCkgJiYgdGVtcFAyIDwgZjIuc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgICAgICB3aGlsZSAodGVtcFQxIDwgdGVtcFQyICYmIHRlbXBQMSA8IGYxLnNpemUoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBUMSArPSAoKFN0cmluZylmMS5lbGVtZW50QXQodGVtcFAxKSkubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgKyt0ZW1wUDE7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICB3aGlsZSAodGVtcFQyIDwgdGVtcFQxICYmIHRlbXBQMiA8IGYyLnNpemUoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBUMiArPSAoKFN0cmluZylmMi5lbGVtZW50QXQodGVtcFAyKSkubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgKyt0ZW1wUDI7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgbG9nbG4oIioqKiAiICsgZjFOYW1lICsgIiBoYXM6Iik7CisgICAgICAgICAgICAgICAgIHdoaWxlIChwMSA8PSB0ZW1wUDEgJiYgcDEgPCBmMS5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgIHMxID0gKFN0cmluZylmMS5lbGVtZW50QXQocDEpOworICAgICAgICAgICAgICAgICAgICAgdDEgKz0gczEubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgICBkZWJ1Z0xvZ2xuKCIgKioqID4iICsgczEgKyAiPCIpOworICAgICAgICAgICAgICAgICAgICAgKytwMTsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICBsb2dsbigiKioqKiogIiArIGYyTmFtZSArICIgaGFzOiIpOworICAgICAgICAgICAgICAgICB3aGlsZSAocDIgPD0gdGVtcFAyICYmIHAyIDwgZjIuc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgICAgICBzMiA9IChTdHJpbmcpZjIuZWxlbWVudEF0KHAyKTsKKyAgICAgICAgICAgICAgICAgICAgIHQyICs9IHMyLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICAgZGVidWdMb2dsbigiICoqKioqID4iICsgczIgKyAiPCIpOworICAgICAgICAgICAgICAgICAgICAgKytwMjsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICBlcnJsbigiRGlzY3JlcGFuY3kgYmV0d2VlbiAiICsgZjFOYW1lICsgIiBhbmQgIiArIGYyTmFtZSk7CisgICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgX3Rlc3RGb2xsb3dpbmcoUnVsZUJhc2VkQnJlYWtJdGVyYXRvciByYmJpLCBTdHJpbmcgdGV4dCwgaW50W10gYm91bmRhcmllcykgeworICAgICAgIGxvZ2xuKCJ0ZXN0Rm9sbG93aW5nKCk6Iik7CisgICAgICAgaW50IHAgPSAyOworICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPD0gdGV4dC5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgIGlmIChpID09IGJvdW5kYXJpZXNbcF0pCisgICAgICAgICAgICAgICArK3A7CisgICAgICAgICAgIGludCBiID0gcmJiaS5mb2xsb3dpbmcoaSk7CisgICAgICAgICAgIGxvZ2xuKCJyYmJpLmZvbGxvd2luZygiICsgaSArICIpIC0+ICIgKyBiKTsKKyAgICAgICAgICAgaWYgKGIgIT0gYm91bmRhcmllc1twXSkKKyAgICAgICAgICAgICAgIGVycmxuKCJXcm9uZyByZXN1bHQgZnJvbSBmb2xsb3dpbmcoKSBmb3IgIiArIGkgKyAiOiBleHBlY3RlZCAiICsgYm91bmRhcmllc1twXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiwgZ290ICIgKyBiKTsKKyAgICAgICB9CisgICB9CisKKyAgIHByaXZhdGUgdm9pZCBfdGVzdFByZWNlZGluZyhSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHJiYmksIFN0cmluZyB0ZXh0LCBpbnRbXSBib3VuZGFyaWVzKSB7CisgICAgICAgbG9nbG4oInRlc3RQcmVjZWRpbmcoKToiKTsKKyAgICAgICBpbnQgcCA9IDA7CisgICAgICAgZm9yKGludCBpID0gMDsgaSA8PSB0ZXh0Lmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgaW50IGIgPSByYmJpLnByZWNlZGluZyhpKTsKKyAgICAgICAgICAgbG9nbG4oInJiYmkucHJlY2VkaW5nKCIgKyBpICsgIikgLT4gIiArIGIpOworICAgICAgICAgICBpZiAoYiAhPSBib3VuZGFyaWVzW3BdKQorICAgICAgICAgICAgICAgZXJybG4oIldyb25nIHJlc3VsdCBmcm9tIHByZWNlZGluZygpIGZvciAiICsgaSArICI6IGV4cGVjdGVkICIgKyBib3VuZGFyaWVzW3BdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIsIGdvdCAiICsgYik7CisgICAgICAgICAgIGlmIChpID09IGJvdW5kYXJpZXNbcCArIDFdKQorICAgICAgICAgICAgICAgKytwOworICAgICAgIH0KKyAgIH0KKworICAgcHJpdmF0ZSB2b2lkIF90ZXN0SXNCb3VuZGFyeShSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHJiYmksIFN0cmluZyB0ZXh0LCBpbnRbXSBib3VuZGFyaWVzKSB7CisgICAgICAgbG9nbG4oInRlc3RJc0JvdW5kYXJ5KCk6Iik7CisgICAgICAgaW50IHAgPSAxOworICAgICAgIGJvb2xlYW4gaXNCOworICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPD0gdGV4dC5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgIGlzQiA9IHJiYmkuaXNCb3VuZGFyeShpKTsKKyAgICAgICAgICAgbG9nbG4oInJiYmkuaXNCb3VuZGFyeSgiICsgaSArICIpIC0+ICIgKyBpc0IpOworICAgICAgICAgICBpZihpID09IGJvdW5kYXJpZXNbcF0pIHsKKyAgICAgICAgICAgICAgIGlmICghaXNCKQorICAgICAgICAgICAgICAgICAgIGVycmxuKCJXcm9uZyByZXN1bHQgZnJvbSBpc0JvdW5kYXJ5KCkgZm9yICIgKyBpICsgIjogZXhwZWN0ZWQgdHJ1ZSwgZ290IGZhbHNlIik7CisgICAgICAgICAgICAgICArK3A7CisgICAgICAgICAgIH0KKyAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICBpZihpc0IpCisgICAgICAgICAgICAgICAgICAgZXJybG4oIldyb25nIHJlc3VsdCBmcm9tIGlzQm91bmRhcnkoKSBmb3IgIiArIGkgKyAiOiBleHBlY3RlZCBmYWxzZSwgZ290IHRydWUiKTsKKyAgICAgICAgICAgfQorICAgICAgIH0KKyAgIH0KKyAgIHByaXZhdGUgdm9pZCBkb011bHRpcGxlU2VsZWN0aW9uVGVzdChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGl0ZXJhdG9yLCBTdHJpbmcgdGVzdFRleHQpCisgICB7CisgICAgICAgbG9nbG4oIk11bHRpcGxlIHNlbGVjdGlvbiB0ZXN0Li4uIik7CisgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciB0ZXN0SXRlcmF0b3IgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcilpdGVyYXRvci5jbG9uZSgpOworICAgICAgIGludCBvZmZzZXQgPSBpdGVyYXRvci5maXJzdCgpOworICAgICAgIGludCB0ZXN0T2Zmc2V0OworICAgICAgIGludCBjb3VudCA9IDA7CisKKyAgICAgICBkbyB7CisgICAgICAgICAgIHRlc3RPZmZzZXQgPSB0ZXN0SXRlcmF0b3IuZmlyc3QoKTsKKyAgICAgICAgICAgdGVzdE9mZnNldCA9IHRlc3RJdGVyYXRvci5uZXh0KGNvdW50KTsKKyAgICAgICAgICAgbG9nbG4oIm5leHQoIiArIGNvdW50ICsgIikgLT4gIiArIHRlc3RPZmZzZXQpOworICAgICAgICAgICBpZiAob2Zmc2V0ICE9IHRlc3RPZmZzZXQpCisgICAgICAgICAgICAgICBlcnJsbigibmV4dChuKSBhbmQgbmV4dCgpIG5vdCByZXR1cm5pbmcgY29uc2lzdGVudCByZXN1bHRzOiBmb3Igc3RlcCAiICsgY291bnQgKyAiLCBuZXh0KG4pIHJldHVybmVkICIgKyB0ZXN0T2Zmc2V0ICsgIiBhbmQgbmV4dCgpIGhhZCAiICsgb2Zmc2V0KTsKKworICAgICAgICAgICBpZiAob2Zmc2V0ICE9IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgICAgIG9mZnNldCA9IGl0ZXJhdG9yLm5leHQoKTsKKyAgICAgICAgICAgfQorICAgICAgIH0gd2hpbGUgKG9mZnNldCAhPSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLkRPTkUpOworCisgICAgICAgLy8gbm93IGRvIGl0IGJhY2t3YXJkcy4uLgorICAgICAgIG9mZnNldCA9IGl0ZXJhdG9yLmxhc3QoKTsKKyAgICAgICBjb3VudCA9IDA7CisKKyAgICAgICBkbyB7CisgICAgICAgICAgIHRlc3RPZmZzZXQgPSB0ZXN0SXRlcmF0b3IubGFzdCgpOworICAgICAgICAgICB0ZXN0T2Zmc2V0ID0gdGVzdEl0ZXJhdG9yLm5leHQoY291bnQpOworICAgICAgICAgICBsb2dsbigibmV4dCgiICsgY291bnQgKyAiKSAtPiAiICsgdGVzdE9mZnNldCk7CisgICAgICAgICAgIGlmIChvZmZzZXQgIT0gdGVzdE9mZnNldCkKKyAgICAgICAgICAgICAgIGVycmxuKCJuZXh0KG4pIGFuZCBuZXh0KCkgbm90IHJldHVybmluZyBjb25zaXN0ZW50IHJlc3VsdHM6IGZvciBzdGVwICIgKyBjb3VudCArICIsIG5leHQobikgcmV0dXJuZWQgIiArIHRlc3RPZmZzZXQgKyAiIGFuZCBuZXh0KCkgaGFkICIgKyBvZmZzZXQpOworCisgICAgICAgICAgIGlmIChvZmZzZXQgIT0gUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAgICBjb3VudC0tOworICAgICAgICAgICAgICAgb2Zmc2V0ID0gaXRlcmF0b3IucHJldmlvdXMoKTsKKyAgICAgICAgICAgfQorICAgICAgIH0gd2hpbGUgKG9mZnNldCAhPSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLkRPTkUpOworICAgfQorCisgICBwcml2YXRlIHZvaWQgZGVidWdMb2dsbihTdHJpbmcgcykgeworICAgICAgICBmaW5hbCBTdHJpbmcgemVyb3MgPSAiMDAwMCI7CisgICAgICAgIFN0cmluZyB0ZW1wOworICAgICAgICBTdHJpbmdCdWZmZXIgb3V0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgY2hhciBjID0gcy5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoYyA+PSAnICcgJiYgYyA8ICdcdTAwN2YnKQorICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoYyk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKCJcXHUiKTsKKyAgICAgICAgICAgICAgICB0ZW1wID0gSW50ZWdlci50b0hleFN0cmluZygoaW50KWMpOworICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoemVyb3Muc3Vic3RyaW5nKDAsIDQgLSB0ZW1wLmxlbmd0aCgpKSk7CisgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCh0ZW1wKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAgbG9nbG4ob3V0LnRvU3RyaW5nKCkpOworICAgIH0KKyAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9TaW1wbGVCSVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL1NpbXBsZUJJVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBjMWYyZDAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9TaW1wbGVCSVRlc3QuamF2YQpAQCAtMCwwICsxLDE3NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvU2ltcGxlQklUZXN0LmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDU6MTYgJCAKKyAqICRSZXZpc2lvbjogMS42ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5yYmJpOworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CisKK3B1YmxpYyBjbGFzcyBTaW1wbGVCSVRlc3QgZXh0ZW5kcyBUZXN0Rm13a3sKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyB0ZXN0VGV4dCA9CisvLyAgICAgICAgIlRoZSByYWluIGluIFNwYWluIHN0YXlzIG1haW5seSBvbiB0aGUgcGxhaW4uICBUaGUgcGxhaW5zIGluIFNwYWluIGFyZSBtYWlubHkgcGFpbmVkIHdpdGggcmFpbi4iOworLy8ib25lLXR3byBub3ctLSAgSGFoISAgWW91IG93ZSBtZSBleGFjdGx5ICQxLDM0NS42Ny4uLiAgUGF5IHVwLCBodWg/ICBCeSB0aGUgd2F5LCB3aHkgZG9uJ3QgSSBzZW5kIHlvdSBteSByZVx1MDMwMXN1bWVcdTAzMDE/ICBUaGlzIGlzIGEgbGluZVxyXG5icmVhay4iOworLy8ibm93aXN0aGV0aW1lZm9yYWxsZ29vZG1lbi4uLiAgdG9jb21ldG90aGVoZWxwb2Z0aGVpcmNvdW50cnkiOworIldoZW4sIGluIHRoZSBjb3Vyc2Ugb2YgaHVtYW4gZXZlbnRzLCBpdCBiZWNvbWVzIG5lY2Vzc2FyeSBmb3Igb25lIHBlb3BsZSB0byBkaXNzb2x2ZSB0aGUgcG9saXRpY2FsIGJvbmRzIHdoaWNoIGhhdmUgIgorLy8iV2hlbixpbnRoZWNvdXJzZW9maHVtYW5ldmVudHMsaXRiZWNvbWVzbmVjZXNzYXJ5Zm9yb25lcGVvcGxldG9kaXNzb2x2ZXRoZXBvbGl0aWNhbGJvbmRzd2hpY2hoYXZlIgorKyAiY29ubmVjdGVkdGhlbXdpdGhhbm90aGVyLGFuZHRvYXNzdW1lYW1vbmd0aGVwb3dlcnNvZnRoZWVhcnRoLHRoZXNlcGFyYXRlYW5kZXF1YWxzdGF0aW9udG93aGljaHRoZWxhd3MiCisrICJvZm5hdHVyZWFuZG9mbmF0dXJlJ3NHb2RlbnRpdGxldGhlbSxhZGVjZW50cmVzcGVjdHRvdGhlb3BpbmlvbnNvZm1hbmtpbmRyZXF1aXJlc3RoYXR0aGV5c2hvdWxkZGVjbGFyZXRoZSIKKysgImNhdXNlc3doaWNoaW1wZWx0aGVtdG90aGVzZXBhcmF0aW9uXG4iCisrICJXZWhvbGR0aGVzZXRydXRoc3RvYmVzZWxmLWV2aWRlbnQsdGhhdGFsbG1lbmFyZWNyZWF0ZWRlcXVhbCx0aGF0dGhleWFyZWVuZG93ZWRieXRoZWlyQ3JlYXRvcndpdGhjZXJ0YWluIgorKyAidW5hbGllbmFibGVyaWdodHMsdGhhdGFtb25ndGhlc2VhcmVsaWZlLGxpYmVydHlhbmR0aGVwdXJzdWl0b2ZoYXBwaW5lc3MuVGhhdHRvc2VjdXJldGhlc2VyaWdodHMsZ292ZXJubWVudHNhcmUiCisrICJpbnN0aXR1dGVkYW1vbmdtZW4sZGVyaXZpbmd0aGVpcmp1c3Rwb3dlcnNmcm9tdGhlY29uc2VudG9mdGhlZ292ZXJuZWQuVGhhdHdoZW5ldmVyYW55Zm9ybW9mZ292ZXJubWVudCIKKysgImJlY29tZXNkZXN0cnVjdGl2ZXRvdGhlc2VlbmRzLGl0aXN0aGVyaWdodG9mdGhlcGVvcGxldG9hbHRlcm9ydG9hYm9saXNoaXQsYW5kdG9pbnN0aXR1dGVuZXdnb3Zlcm5tZW50LGxheWluZyIKKysgIml0c2ZvdW5kYXRpb25vbnN1Y2hwcmluY2lwbGVzYW5kb3JnYW5pemluZ2l0c3Bvd2Vyc2luc3VjaGZvcm0sYXN0b3RoZW1zaGFsbHNlZW1tb3N0bGlrZWx5dG9lZmZlY3R0aGVpcnNhZmV0eSIKKysgImFuZGhhcHBpbmVzcy5QcnVkZW5jZSxpbmRlZWQsd2lsbGRpY3RhdGV0aGF0Z292ZXJubWVudHNsb25nZXN0YWJsaXNoZWRzaG91bGRub3RiZWNoYW5nZWRmb3JsaWdodGFuZHRyYW5zaWVudCIKKysgImNhdXNlczthbmRhY2NvcmRpbmdseWFsbGV4cGVyaWVuY2VoYXRoc2hvd250aGF0bWFua2luZGFyZW1vcmVkaXNwb3NlZHRvc3VmZmVyLHdoaWxlZXZpbHNhcmVzdWZmZXJhYmxlLHRoYW4iCisrICJ0b3JpZ2h0dGhlbXNlbHZlc2J5YWJvbGlzaGluZ3RoZWZvcm1zdG93aGljaHRoZXlhcmVhY2N1c3RvbWVkLkJ1dHdoZW5hbG9uZ3RyYWlub2ZhYnVzZXNhbmR1c3VycGF0aW9ucywiCisrICJwdXJzdWluZ2ludmFyaWFibHl0aGVzYW1lb2JqZWN0ZXZpbmNlc2FkZXNpZ250b3JlZHVjZXRoZW11bmRlcmFic29sdXRlZGVzcG90aXNtLGl0aXN0aGVpcnJpZ2h0LGl0aXN0aGVpcmR1dHksIgorKyAidG90aHJvd29mZnN1Y2hnb3Zlcm5tZW50LGFuZHRvcHJvdmlkZW5ld2d1YXJkc2ZvcnRoZWlyZnV0dXJlc2VjdXJpdHkuLS1TdWNoaGFzYmVlbnRoZXBhdGllbnRzdWZmZXJhbmNlb2YiCisrICJ0aGVzZWNvbG9uaWVzO2FuZHN1Y2hpc25vd3RoZW5lY2Vzc2l0eXdoaWNoY29uc3RyYWluc3RoZW10b2FsdGVydGhlaXJmb3JtZXJzeXN0ZW1zb2Znb3Zlcm5tZW50LlRoZWhpc3RvcnkiCisrICJvZnRoZXByZXNlbnRLaW5nb2ZHcmVhdEJyaXRhaW5pc2FoaXN0b3J5b2ZyZXBlYXRlZGluanVyaWVzYW5kdXN1cnBhdGlvbnMsYWxsaGF2aW5naW5kaXJlY3RvYmplY3R0aGUiCisrICJlc3RhYmxpc2htZW50b2ZhbmFic29sdXRldHlyYW5ueW92ZXJ0aGVzZXN0YXRlcy5Ub3Byb3ZldGhpcyxsZXRmYWN0c2Jlc3VibWl0dGVkdG9hY2FuZGlkd29ybGQuXG4iCisrICJIZWhhc3JlZnVzZWRoaXNhc3NlbnR0b2xhd3MsdGhlbW9zdHdob2xlc29tZWFuZG5lY2Vzc2FyeWZvcnRoZXB1YmxpY2dvb2QuXG4iCisrICJIZWhhc2ZvcmJpZGRlbmhpc2dvdmVybm9yc3RvcGFzc2xhd3NvZmltbWVkaWF0ZWFuZHByZXNzaW5naW1wb3J0YW5jZSx1bmxlc3NzdXNwZW5kZWRpbnRoZWlyb3BlcmF0aW9udGlsbCIKKysgImhpc2Fzc2VudHNob3VsZGJlb2J0YWluZWQ7YW5kd2hlbnNvc3VzcGVuZGVkLGhlaGFzdXR0ZXJseW5lZ2xlY3RlZHRvYXR0ZW5kdG90aGVtLlxuIgorKyAiSGVoYXNyZWZ1c2VkdG9wYXNzb3RoZXJsYXdzZm9ydGhlYWNjb21tb2RhdGlvbm9mbGFyZ2VkaXN0cmljdHNvZnBlb3BsZSx1bmxlc3N0aG9zZXBlb3BsZXdvdWxkcmVsaW5xdWlzaCIKKysgInRoZXJpZ2h0b2ZyZXByZXNlbnRhdGlvbmludGhlbGVnaXNsYXR1cmUsYXJpZ2h0aW5lc3RpbWFibGV0b3RoZW1hbmRmb3JtaWRhYmxldG90eXJhbnRzb25seS5cbiIKKysgIkhlaGFzY2FsbGVkdG9nZXRoZXJsZWdpc2xhdGl2ZWJvZGllc2F0cGxhY2VzdW51c3VhbCx1bmNvbWZvcnRhYmxlLGFuZGRpc3RhbnRmcm9tdGhlZGVwb3NpdG9yeW9mdGhlaXJwdWJsaWMiCisrICJyZWNvcmRzLGZvcnRoZXNvbGVwdXJwb3Nlb2ZmYXRpZ3Vpbmd0aGVtaW50b2NvbXBsaWFuY2V3aXRoaGlzbWVhc3VyZXMuXG4iCisrICJIZWhhc2Rpc3NvbHZlZHJlcHJlc2VudGF0aXZlaG91c2VzcmVwZWF0ZWRseSxmb3JvcHBvc2luZ3dpdGhtYW5seWZpcm1uZXNzaGlzaW52YXNpb25zb250aGVyaWdodHNvZnRoZXBlb3BsZS5cbiIKKysgIkhlaGFzcmVmdXNlZGZvcmFsb25ndGltZSxhZnRlcnN1Y2hkaXNzb2x1dGlvbnMsdG9jYXVzZW90aGVyc3RvYmVlbGVjdGVkO3doZXJlYnl0aGVsZWdpc2xhdGl2ZXBvd2VycywiCisrICJpbmNhcGFibGVvZmFubmloaWxhdGlvbixoYXZlcmV0dXJuZWR0b3RoZXBlb3BsZWF0bGFyZ2Vmb3J0aGVpcmV4ZXJjaXNlO3RoZXN0YXRlcmVtYWluaW5naW50aGVtZWFudGltZWV4cG9zZWQiCisrICJ0b2FsbHRoZWRhbmdlcnNvZmludmFzaW9uZnJvbXdpdGhvdXQsYW5kY29udnVsc2lvbnN3aXRoaW4uXG4iCisrICJIZWhhc2VuZGVhdm9yZWR0b3ByZXZlbnR0aGVwb3B1bGF0aW9ub2Z0aGVzZXN0YXRlcztmb3J0aGF0cHVycG9zZW9ic3RydWN0aW5ndGhlbGF3c2Zvcm5hdHVyYWxpemF0aW9ub2YiCisrICJmb3JlaWduZXJzO3JlZnVzaW5ndG9wYXNzb3RoZXJzdG9lbmNvdXJhZ2V0aGVpcm1pZ3JhdGlvbmhpdGhlcixhbmRyYWlzaW5ndGhlY29uZGl0aW9uc29mbmV3YXBwcm9wcmlhdGlvbnNvZiIKKysgImxhbmRzLlxuIgorKyAiSGVoYXNvYnN0cnVjdGVkdGhlYWRtaW5pc3RyYXRpb25vZmp1c3RpY2UsYnlyZWZ1c2luZ2hpc2Fzc2VudHRvbGF3c2ZvcmVzdGFibGlzaGluZ2p1ZGljaWFyeXBvd2Vycy5cbiIKKysgIkhlaGFzbWFkZWp1ZGdlc2RlcGVuZGVudG9uaGlzd2lsbGFsb25lLGZvcnRoZXRlbnVyZW9mdGhlaXJvZmZpY2VzLGFuZHRoZWFtb3VudGFuZHBheW1lbnRvZnRoZWlyc2FsYXJpZXMuXG4iCisrICJIZWhhc2VyZWN0ZWRhbXVsdGl0dWRlb2ZuZXdvZmZpY2VzLGFuZHNlbnRoaXRoZXJzd2FybXNvZm9mZmljZXJzdG9oYXJhc3NvdXJwZW9wbGUsYW5kZWF0b3V0dGhlaXIiCisrICJzdWJzdGFuY2UuXG4iCisrICJIZWhhc2tlcHRhbW9uZ3VzLGludGltZXNvZnBlYWNlLHN0YW5kaW5nYXJtaWVzd2l0aG91dHRoZWNvbnNlbnRvZm91cmxlZ2lzbGF0dXJlLlxuIgorKyAiSGVoYXNhZmZlY3RlZHRvcmVuZGVydGhlbWlsaXRhcnlpbmRlcGVuZGVudG9mYW5kc3VwZXJpb3J0b2NpdmlscG93ZXIuXG4iCisrICJIZWhhc2NvbWJpbmVkd2l0aG90aGVyc3Rvc3ViamVjdHVzdG9hanVyaXNkaWN0aW9uZm9yZWlnbnRvb3VyY29uc3RpdHV0aW9uLGFuZHVuYWNrbm93bGVkZ2VkYnlvdXJsYXdzOyIKKysgImdpdmluZ2hpc2Fzc2VudHRvdGhlaXJhY3Rzb2ZwcmV0ZW5kZWRsZWdpc2xhdGlvbjpcbiIKKysgIkZvcnF1YXJ0ZXJpbmdsYXJnZWJvZGllc29mYXJtZWR0cm9vcHNhbW9uZ3VzOlxuIgorKyAiRm9ycHJvdGVjdGluZ3RoZW0sYnltb2NrdHJpYWwsZnJvbXB1bmlzaG1lbnRmb3JhbnltdXJkZXJzd2hpY2h0aGV5c2hvdWxkY29tbWl0b250aGVpbmhhYml0YW50c29mdGhlc2UiCisrICJzdGF0ZXM6XG4iCisrICJGb3JjdXR0aW5nb2Zmb3VydHJhZGV3aXRoYWxscGFydHNvZnRoZXdvcmxkOlxuIgorKyAiRm9yaW1wb3Npbmd0YXhlc29udXN3aXRob3V0b3VyY29uc2VudDpcbiIKKysgIkZvcmRlcHJpdmluZ3VzaW5tYW55Y2FzZXMsb2Z0aGViZW5lZml0c29mdHJpYWxieWp1cnk6XG4iCisrICJGb3J0cmFuc3BvcnRpbmd1c2JleW9uZHNlYXN0b2JldHJpZWRmb3JwcmV0ZW5kZWRvZmZlbnNlczpcbiIKKysgIkZvcmFib2xpc2hpbmd0aGVmcmVlc3lzdGVtb2ZFbmdsaXNobGF3c2luYW5laWdoYm9yaW5ncHJvdmluY2UsZXN0YWJsaXNoaW5ndGhlcmVpbmFuYXJiaXRyYXJ5Z292ZXJubWVudCxhbmQiCisrICJlbmxhcmdpbmdpdHNib3VuZGFyaWVzc29hc3RvcmVuZGVyaXRhdG9uY2VhbmV4YW1wbGVhbmRmaXRpbnN0cnVtZW50Zm9yaW50cm9kdWNpbmd0aGVzYW1lYWJzb2x1dGVydWxlaW50aGVzZSIKKysgImNvbG9uaWVzOlxuIgorKyAiRm9ydGFraW5nYXdheW91cmNoYXJ0ZXJzLGFib2xpc2hpbmdvdXJtb3N0dmFsdWFibGVsYXdzLGFuZGFsdGVyaW5nZnVuZGFtZW50YWxseXRoZWZvcm1zb2ZvdXJnb3Zlcm5tZW50czpcbiIKKysgIkZvcnN1c3BlbmRpbmdvdXJvd25sZWdpc2xhdHVyZXMsYW5kZGVjbGFyaW5ndGhlbXNlbHZlc2ludmVzdGVkd2l0aHBvd2VydG9sZWdpc2xhdGVmb3J1c2luYWxsY2FzZXN3aGF0c29ldmVyLlxuIgorKyAiSGVoYXNhYmRpY2F0ZWRnb3Zlcm5tZW50aGVyZSxieWRlY2xhcmluZ3Vzb3V0b2ZoaXNwcm90ZWN0aW9uYW5kd2FnaW5nd2FyYWdhaW5zdHVzLlxuIgorKyAiSGVoYXNwbHVuZGVyZWRvdXJzZWFzLHJhdmFnZWRvdXJjb2FzdHMsYnVybmVkb3VydG93bnMsYW5kZGVzdHJveWVkdGhlbGl2ZXNvZm91cnBlb3BsZS5cbiIKKysgIkhlaXNhdHRoaXN0aW1ldHJhbnNwb3J0aW5nbGFyZ2Vhcm1pZXNvZmZvcmVpZ25tZXJjZW5hcmllc3RvY29tcGxldGV0aGV3b3Jrc29mZGVhdGgsZGVzb2xhdGlvbmFuZHR5cmFubnksIgorKyAiYWxyZWFkeWJlZ3Vud2l0aGNpcmN1bXN0YW5jZXNvZmNydWVsdHlhbmRwZXJmaWR5c2NhcmNlbHlwYXJhbGxlbGVkaW50aGVtb3N0YmFyYmFyb3VzYWdlcyxhbmR0b3RhbHl1bndvcnRoIgorKyAidGhlaGVhZG9mYWNpdmlsaXplZG5hdGlvbi5cbiIKKysgIkhlaGFzY29uc3RyYWluZWRvdXJmZWxsb3djaXRpemVuc3Rha2VuY2FwdGl2ZW9udGhlaGlnaHNlYXN0b2JlYXJhcm1zYWdhaW5zdHRoZWlyY291bnRyeSx0b2JlY29tZXRoZSIKKysgImV4ZWN1dGlvbmVyc29mdGhlaXJmcmllbmRzYW5kYnJldGhyZW4sb3J0b2ZhbGx0aGVtc2VsdmVzYnl0aGVpcmhhbmRzLlxuIgorKyAiSGVoYXNleGNpdGVkZG9tZXN0aWNpbnN1cnJlY3Rpb25zYW1vbmdzdHVzLGFuZGhhc2VuZGVhdm9yZWR0b2JyaW5nb250aGVpbmhhYml0YW50c29mb3VyZnJvbnRpZXJzLHRoZSIKKysgIm1lcmNpbGVzc0luZGlhbnNhdmFnZXMsd2hvc2Vrbm93bnJ1bGVvZndhcmZhcmUsaXN1bmRpc3Rpbmd1aXNoZWRkZXN0cnVjdGlvbm9mYWxsYWdlcyxzZXhlc2FuZGNvbmRpdGlvbnMuXG4iCisrICJJbmV2ZXJ5c3RhZ2VvZnRoZXNlb3BwcmVzc2lvbnN3ZWhhdmVwZXRpdGlvbmVkZm9ycmVkcmVzc2ludGhlbW9zdGh1bWJsZXRlcm1zOm91cnJlcGVhdGVkcGV0aXRpb25zaGF2ZSIKKysgImJlZW5hbnN3ZXJlZG9ubHlieXJlcGVhdGVkaW5qdXJ5LkFwcmluY2Usd2hvc2VjaGFyYWN0ZXJpc3RodXNtYXJrZWRieWV2ZXJ5YWN0d2hpY2htYXlkZWZpbmVhdHlyYW50LGlzIgorKyAidW5maXR0b2JldGhlcnVsZXJvZmFmcmVlcGVvcGxlLlxuIgorKyAiTm9yaGF2ZXdlYmVlbndhbnRpbmdpbmF0dGVudGlvbnRvb3VyQnJpdGlzaGJyZXRocmVuLldlaGF2ZXdhcm5lZHRoZW1mcm9tdGltZXRvdGltZW9mYXR0ZW1wdHNieXRoZWlyIgorKyAibGVnaXNsYXR1cmV0b2V4dGVuZGFudW53YXJyYW50YWJsZWp1cmlzZGljdGlvbm92ZXJ1cy5XZWhhdmVyZW1pbmRlZHRoZW1vZnRoZWNpcmN1bXN0YW5jZXNvZm91cmVtaWdyYXRpb24iCisrICJhbmRzZXR0bGVtZW50aGVyZS5XZWhhdmVhcHBlYWxlZHRvdGhlaXJuYXRpdmVqdXN0aWNlYW5kbWFnbmFuaW1pdHksYW5kd2VoYXZlY29uanVyZWR0aGVtYnl0aGV0aWVzb2ZvdXIiCisrICJjb21tb25raW5kcmVkdG9kaXNhdm93dGhlc2V1c3VycGF0aW9ucyx3aGljaCx3b3VsZGluZXZpdGFibHlpbnRlcnJ1cHRvdXJjb25uZWN0aW9uc2FuZGNvcnJlc3BvbmRlbmNlLldlIgorKyAibXVzdCx0aGVyZWZvcmUsYWNxdWllc2NlaW50aGVuZWNlc3NpdHksd2hpY2hkZW5vdW5jZXNvdXJzZXBhcmF0aW9uLGFuZGhvbGR0aGVtLGFzd2Vob2xkdGhlcmVzdG9mbWFua2luZCwiCisrICJlbmVtaWVzaW53YXIsaW5wZWFjZWZyaWVuZHMuXG4iCisrICJXZSx0aGVyZWZvcmUsdGhlcmVwcmVzZW50YXRpdmVzb2Z0aGVVbml0ZWRTdGF0ZXNvZkFtZXJpY2EsaW5HZW5lcmFsQ29uZ3Jlc3MsYXNzZW1ibGVkLGFwcGVhbGluZ3RvdGhlIgorKyAiU3VwcmVtZUp1ZGdlb2Z0aGV3b3JsZGZvcnRoZXJlY3RpdHVkZW9mb3VyaW50ZW50aW9ucyxkbyxpbnRoZW5hbWUsYW5kYnl0aGVhdXRob3JpdHlvZnRoZWdvb2RwZW9wbGVvZiIKKysgInRoZXNlY29sb25pZXMsc29sZW1ubHlwdWJsaXNoYW5kZGVjbGFyZSx0aGF0dGhlc2V1bml0ZWRjb2xvbmllc2FyZSxhbmRvZnJpZ2h0b3VnaHR0b2JlZnJlZWFuZGluZGVwZW5kZW50IgorKyAic3RhdGVzO3RoYXR0aGV5YXJlYWJzb2x2ZWRmcm9tYWxsYWxsZWdpYW5jZXRvdGhlQnJpdGlzaENyb3duLGFuZHRoYXRhbGxwb2xpdGljYWxjb25uZWN0aW9uYmV0d2VlbnRoZW1hbmR0aGUiCisrICJzdGF0ZW9mR3JlYXRCcml0YWluLGlzYW5kb3VnaHR0b2JldG90YWxseWRpc3NvbHZlZDthbmR0aGF0YXNmcmVlYW5kaW5kZXBlbmRlbnRzdGF0ZXMsdGhleWhhdmVmdWxscG93ZXJ0byIKKysgImxldmV5d2FyLGNvbmNsdWRlcGVhY2UsY29udHJhY3RhbGxpYW5jZXMsZXN0YWJsaXNoY29tbWVyY2UsYW5kdG9kb2FsbG90aGVyYWN0c2FuZHRoaW5nc3doaWNoaW5kZXBlbmRlbnQiCisrICJzdGF0ZXNtYXlvZnJpZ2h0ZG8uQW5kZm9ydGhlc3VwcG9ydG9mdGhpc2RlY2xhcmF0aW9uLHdpdGhhZmlybXJlbGlhbmNlb250aGVwcm90ZWN0aW9ub2ZEaXZpbmVQcm92aWRlbmNlLHdlIgorKyAibXV0dWFsbHlwbGVkZ2V0b2VhY2hvdGhlcm91cmxpdmVzLG91cmZvcnR1bmVzYW5kb3Vyc2FjcmVkaG9ub3IuXG4iOworCisJcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisJCW5ldyBTaW1wbGVCSVRlc3QoKS5ydW4oYXJncyk7CisJfQorCisgICAgcHVibGljIHZvaWQgdGVzdFdvcmRCcmVhaygpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBCcmVha0l0ZXJhdG9yIHdvcmRCcmVhayA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKG5ldyBMb2NhbGUoImVuIiwgIlVTIiwgIlRFU1QiKSk7CisgICAgICAgIGludCBicmVha3MgPSBkb1Rlc3Qod29yZEJyZWFrKTsKKyAgICAgICAgbG9nbG4oU3RyaW5nLnZhbHVlT2YoYnJlYWtzKSk7CisJfQorCisgICAgcHVibGljIHZvaWQgdGVzdExpbmVCcmVhaygpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBCcmVha0l0ZXJhdG9yIGxpbmVCcmVhayA9IEJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKG5ldyBMb2NhbGUoImVuIiwgIlVTIiwgIlRFU1QiKSk7CisgICAgICAgIGludCBicmVha3MgPSBkb1Rlc3QobGluZUJyZWFrKTsKKyAgICAgICAgbG9nbG4oU3RyaW5nLnZhbHVlT2YoYnJlYWtzKSk7CisJfQorCisgICAgcHVibGljIHZvaWQgdGVzdFNlbnRlbmNlQnJlYWsoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgQnJlYWtJdGVyYXRvciBzZW50ZW5jZUJyZWFrID0gQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKG5ldyBMb2NhbGUoImVuIiwgIlVTIiwgIlRFU1QiKSk7CisgICAgICAgIGludCBicmVha3MgPSBkb1Rlc3Qoc2VudGVuY2VCcmVhayk7CisgICAgICAgIGxvZ2xuKFN0cmluZy52YWx1ZU9mKGJyZWFrcykpOworICAgIH0KKworICAgIHByaXZhdGUgaW50IGRvVGVzdChCcmVha0l0ZXJhdG9yIGJpKSB7CisgICAgICAgIC8vIGZvcndhcmQKKyAgICAgICAgYmkuc2V0VGV4dCh0ZXN0VGV4dCk7CisgICAgICAgIGludCBwID0gYmkuZmlyc3QoKTsKKyAgICAgICAgaW50IGxhc3RQID0gcDsKKyAgICAgICAgU3RyaW5nIGZyYWdtZW50OworICAgICAgICBpbnQgYnJlYWtzID0gMDsKKyAgICAgICAgbG9nbG4oIkZvcndhcmQuLi4iKTsKKyAgICAgICAgd2hpbGUgKHAgIT0gQnJlYWtJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICBwID0gYmkubmV4dCgpOworICAgICAgICAgICAgaWYgKHAgIT0gQnJlYWtJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAgICAgZnJhZ21lbnQgPSB0ZXN0VGV4dC5zdWJzdHJpbmcobGFzdFAsIHApOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBmcmFnbWVudCA9IHRlc3RUZXh0LnN1YnN0cmluZyhsYXN0UCk7CisJCQl9CisgICAgICAgICAgICBkZWJ1Z1ByaW50bG4oIjogPiIgKyBmcmFnbWVudCArICI8Iik7CisgICAgICAgICAgICArK2JyZWFrczsKKyAgICAgICAgICAgIGxhc3RQID0gcDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYnJlYWtzOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkZWJ1Z1ByaW50bG4oU3RyaW5nIHMpIHsKKyAgICAgICAgZmluYWwgU3RyaW5nIHplcm9zID0gIjAwMDAiOworICAgICAgICBTdHJpbmcgdGVtcDsKKyAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IHMuY2hhckF0KGkpOworICAgICAgICAgICAgaWYgKGMgPj0gJyAnICYmIGMgPCAnXHUwMDdmJykKKyAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKGMpOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgiXFx1Iik7CisgICAgICAgICAgICAgICAgdGVtcCA9IEludGVnZXIudG9IZXhTdHJpbmcoKGludCljKTsKKyAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKHplcm9zLnN1YnN0cmluZygwLCA0IC0gdGVtcC5sZW5ndGgoKSkpOworICAgICAgICAgICAgICAgIG91dC5hcHBlbmQodGVtcCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4ob3V0LnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkZWJ1Z1ByaW50bG4yKFN0cmluZyBzKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBvdXQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgICBjaGFyIGMgPSBzLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmIChjID49ICdcdTAxMDAnKQorICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoIjwiICsgKChpbnQpYyAtIDB4MTAwKSArICI+Iik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgb3V0LmFwcGVuZChjKTsKKyAgICAgICAgfQorICAgICAgICBsb2dsbihvdXQudG9TdHJpbmcoKSk7CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTJmMWI3NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKyAgJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvcGFja2FnZS5odG1sLHYgJAorICAkUmV2aXNpb246IDEuMSAkCisgICREYXRlOiAyMDAwLzAzLzE1IDIxOjM1OjQ5ICQKKy0tPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiPgorVGVzdHMgZm9yIHRoZSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zYW1wbGUvTW9kdWxlVGVzdFNhbXBsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NhbXBsZS9Nb2R1bGVUZXN0U2FtcGxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzRjMDcxOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zYW1wbGUvTW9kdWxlVGVzdFNhbXBsZS5qYXZhCkBAIC0wLDAgKzEsMTUwIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NhbXBsZS9Nb2R1bGVUZXN0U2FtcGxlLmphdmEsdiAkCisgKiAkRGF0ZTogMjAwMi8wOC8xMyAyMjowMDo1OCAkCisgKiAkUmV2aXNpb246IDEuMiAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5zYW1wbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5Nb2R1bGVUZXN0OworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3REYXRhTW9kdWxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3REYXRhTW9kdWxlLkRhdGFNYXA7CisKK3B1YmxpYyBjbGFzcyBNb2R1bGVUZXN0U2FtcGxlIGV4dGVuZHMgTW9kdWxlVGVzdCB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisJbmV3IE1vZHVsZVRlc3RTYW1wbGUoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgLy8gc3RhbmRhcmQgbG9vcCwgc2V0dGluZ3MgYW5kIGNhc2VzCisgICAgcHVibGljIHZvaWQgVGVzdDAxKCkgeworCXdoaWxlIChuZXh0U2V0dGluZ3MoKSkgeworCSAgICBsb2dsbigiLS0tLS0tLS0iKTsKKwkgICAgbG9nbG4oIlN0cmluZzogIiArIHNldHRpbmdzLmdldFN0cmluZygiYVN0cmluZyIpKTsKKwkgICAgaWYgKHNldHRpbmdzLmlzRGVmaW5lZCgiYW5JbnQiKSkgeworCQlsb2dsbigiSW50OiAiICsgc2V0dGluZ3MuZ2V0SW50KCJhbkludCIpKTsKKwkgICAgfQorCSAgICBsb2dsbigiQm9vbGVhbjogIiArIHNldHRpbmdzLmdldEJvb2xlYW4oImFCb29sZWFuIikpOworCisJICAgIHdoaWxlIChuZXh0Q2FzZSgpKSB7CisJCWxvZ2xuKCIgIC0tLS0iKTsKKwkJbG9nbG4oIiAgU3RyaW5nQXJyYXk6ICIgKyBwcmludEFycmF5KHRlc3RjYXNlLmdldFN0cmluZ0FycmF5KCJhU3RyaW5nQXJyYXkiKSkpOworCQlsb2dsbigiICBJbnRBcnJheTogIiArIHByaW50QXJyYXkodGVzdGNhc2UuZ2V0SW50QXJyYXkoImFuSW50QXJyYXkiKSkpOworCQlsb2dsbigiICBCb29sZWFuQXJyYXk6ICIgKyBwcmludEFycmF5KHRlc3RjYXNlLmdldEJvb2xlYW5BcnJheSgiYUJvb2xlYW5BcnJheSIpKSk7CisJICAgIH0KKwl9CisgICAgfQorCisgICAgLy8gbG9vcCB3aXRoIGp1c3QgY2FzZXMKKyAgICBwdWJsaWMgdm9pZCBUZXN0MDIoKSB7CisJd2hpbGUgKG5leHRDYXNlKCkpIHsKKwkgICAgbG9nbG4oIi0tLS0iKTsKKwkgICAgbG9nbG4oIlN0cmluZzogIiArIHRlc3RjYXNlLmdldFN0cmluZygiYVN0cmluZyIpKTsKKwkgICAgbG9nbG4oIkludDogIiArIHRlc3RjYXNlLmdldEludCgiYW5JbnQiKSk7CisJICAgIGxvZ2xuKCJCb29sZWFuOiAiICsgdGVzdGNhc2UuZ2V0Qm9vbGVhbigiYUJvb2xlYW4iKSk7CisJfQorICAgIH0KKworICAgIC8vIG5vIGNhc2VzLCBqdXN0IHVzZXMgaW5mbyBmb3IgdGVzdAorICAgIHB1YmxpYyB2b2lkIFRlc3QwMygpIHsKKwlEYXRhTWFwIGluZm8gPSB0ZXN0SW5mbygpOworCWlmIChpbmZvICE9IG51bGwpIHsKKwkgICAgbG9nbG4oaW5mby5nZXRTdHJpbmcoVGVzdERhdGFNb2R1bGUuREVTQ1JJUFRJT04pKTsgLy8gc3RhbmRhcmQKKwkgICAgbG9nbG4oaW5mby5nZXRTdHJpbmcoIkV4dHJhIikpOyAvLyB0ZXN0LXNwZWNpZmljCisJfQorICAgIH0KKworICAgIC8vIG5vIGRhdGEsIE1vZHVsZVRlc3Qgc2hvdWxkIG5vdCBhbGxvdyB0aGlzIHRvIGV4ZWN1dGUgYnkgZGVmYXVsdAorICAgIHB1YmxpYyB2b2lkIFRlc3QwNCgpIHsKKwllcnJsbigiVGVzdDA0IHNob3VsZCBub3QgZXhlY3V0ZSEiKTsKKyAgICB9CisKKyAgICAvLyBzcGVjaWFsIG92ZXJyaWRlIG9mIHZhbGlkYXRlTWV0aG9kIGFsbG93cyBUZXN0MDUgCisgICAgLy8gdG8gZXhlY3V0ZSBldmVuIHRob3VnaCBpdCBoYXMgbm8gZGF0YSBpbiB0aGUgbW9kdWxlCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gdmFsaWRhdGVNZXRob2QoU3RyaW5nIG1ldGhvZE5hbWUpIHsKKwlyZXR1cm4gbWV0aG9kTmFtZS5lcXVhbHMoIlRlc3QwNSIpID8gdHJ1ZSA6IHN1cGVyLnZhbGlkYXRlTWV0aG9kKG1ldGhvZE5hbWUpOworICAgIH0KKworICAgIC8vIG5vIGRhdGEsIGJ1dCBvdmVycmlkZSBvZiB2YWxpZGF0ZU1ldGhvZCBhbGxvd3MgaXQgdG8gZXhlY3V0ZQorICAgIHB1YmxpYyB2b2lkIFRlc3QwNSgpIHsKKwlsb2dsbigiVGVzdDA1IGV4ZWN1dGVkLiIpOworICAgIH0KKworICAgIC8vIFRoZSB0ZXN0IGRhdGEgY29udGFpbnMgYW4gZXJyb3IgaW4gdGhlIHRoaXJkIGNhc2UuICBXaGVuIGdldEludCgiRGF0YSIpIGlzCisgICAgLy8gZXhlY3V0ZWQgdGhlIGVycm9yIGlzIGxvZ2dlZCBhbmQgaXRlcmF0aW9uIHN0b3BzLgorICAgIHB1YmxpYyB2b2lkIFRlc3QwNigpIHsKKwl3aGlsZSAobmV4dENhc2UoKSkgeworCSAgICBsb2dsbigiLS0tLSIpOworCSAgICBsb2dsbigiaXNHb29kOiAiICsgdGVzdGNhc2UuZ2V0U3RyaW5nKCJJc0dvb2QiKSk7CisJICAgIGxvZ2xuKCIgIERhdGE6ICIgKyB0ZXN0Y2FzZS5nZXRJbnQoIkRhdGEiKSk7CisJfQorICAgIH0KKworICAgIC8vIFRoZSB0ZXN0IHVzaW5nIHRoZSBkYXRhIHJlcG9ydHMgYW4gZXJyb3IsIHdoaWNoIGFsc28gYXV0b21hdGljYWxseSBzdG9wcyBpdGVyYXRpb24uCisgICAgcHVibGljIHZvaWQgVGVzdDA3KCkgeworCXdoaWxlIChuZXh0U2V0dGluZ3MoKSkgeworCSAgICBpbnQgdmFsdWUgPSBzZXR0aW5ncy5nZXRJbnQoIlZhbHVlIik7CisJICAgIHdoaWxlIChuZXh0Q2FzZSgpKSB7CisJCWludCBmYWN0b3IgPSB0ZXN0Y2FzZS5nZXRJbnQoIkZhY3RvciIpOworCQlmbG9hdCByZXN1bHQgPSAoZmxvYXQpdmFsdWUgLyBmYWN0b3I7CisJCWlmIChyZXN1bHQgIT0gKGludClyZXN1bHQpIHsKKwkJICAgIGVycmxuKCJ0aGUgbnVtYmVyICciICsgZmFjdG9yICsgIicgaXMgbm90IGEgZmFjdG9yIG9mIHRoZSBudW1iZXIgJyIgKyB2YWx1ZSArICInIik7CisJCX0gZWxzZSB7CisJCSAgICBsb2dsbigiJyIgKyBmYWN0b3IgKyAiJyBpcyBhIGZhY3RvciBvZiAnIiArIHZhbHVlICsgIiciKTsKKwkJfQorCSAgICB9CisJfQorICAgIH0KKworICAgIC8vIFRoZSBudW1iZXIgb2YgZGF0YSBlbGVtZW50cyBpcyBpbmNvcnJlY3QKKyAgICBwdWJsaWMgdm9pZCBUZXN0MDgoKSB7CisJd2hpbGUgKG5leHRDYXNlKCkpIHsKKwkgICAgaW50IG9uZSA9IHRlc3RjYXNlLmdldEludCgiT25lIik7CisJICAgIGludCB0d28gPSB0ZXN0Y2FzZS5nZXRJbnQoIlR3byIpOworCSAgICBpbnQgdGhyZWUgPSB0ZXN0Y2FzZS5nZXRJbnQoIlRocmVlIik7CisJICAgIGxvZ2xuKCJnb3Q6ICIgKyBvbmUgKyAiLCAiICsgdHdvICsgIiwgIiArIHRocmVlKTsKKwl9CisgICAgfQorCisgICAgLy8gdXRpbGl0eSBwcmludCBmdW5jdGlvbnMgdG8gZGlzcGxheSB0aGUgZGF0YSBmcm9tIHRoZSByZXNvdXJjZQorICAgIFN0cmluZyBwcmludEFycmF5KFN0cmluZ1tdIGEpIHsKKwlTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigiU3RyaW5nW10geyIpOworCWZvciAoaW50IGkgPSAwOyBpIDwgYS5sZW5ndGg7ICsraSkgeworCSAgICBpZiAoaSAhPSAwKSB7CisJCWJ1Zi5hcHBlbmQoIiwiKTsKKwkgICAgfQorCSAgICBidWYuYXBwZW5kKCIgIiArIGFbaV0pOworCX0KKwlidWYuYXBwZW5kKCIgfSIpOworCXJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBTdHJpbmcgcHJpbnRBcnJheShpbnRbXSBhKSB7CisJU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoImludFtdIHsiKTsKKwlmb3IgKGludCBpID0gMDsgaSA8IGEubGVuZ3RoOyArK2kpIHsKKwkgICAgaWYgKGkgIT0gMCkgeworCQlidWYuYXBwZW5kKCIsIik7CisJICAgIH0KKwkgICAgYnVmLmFwcGVuZCgiICIgKyBhW2ldKTsKKwl9CisJYnVmLmFwcGVuZCgiIH0iKTsKKwlyZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgU3RyaW5nIHByaW50QXJyYXkoYm9vbGVhbltdIGEpIHsKKwlTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigiYm9vbGVhbltdIHsiKTsKKwlmb3IgKGludCBpID0gMDsgaSA8IGEubGVuZ3RoOyArK2kpIHsKKwkgICAgaWYgKGkgIT0gMCkgeworCQlidWYuYXBwZW5kKCIsIik7CisJICAgIH0KKwkgICAgYnVmLmFwcGVuZCgiICIgKyBhW2ldKTsKKwl9CisJYnVmLmFwcGVuZCgiIH0iKTsKKwlyZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NhbXBsZS9Nb2R1bGVUZXN0U2FtcGxlRGF0YS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NhbXBsZS9Nb2R1bGVUZXN0U2FtcGxlRGF0YS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkMGI2M2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2FtcGxlL01vZHVsZVRlc3RTYW1wbGVEYXRhLmphdmEKQEAgLTAsMCArMSwxNjIgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2FtcGxlL01vZHVsZVRlc3RTYW1wbGVEYXRhLmphdmEsdiAkCisgKiAkRGF0ZTogMjAwMi8wOC8xMyAyMjowMDo1OCAkCisgKiAkUmV2aXNpb246IDEuMyAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5zYW1wbGU7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCisvKioKKyAqIFRoaXMgaXMgc2FtcGxlIGRhdGEgZm9yIE1vZHVsZVRlc3RTYW1wbGUsIHdoaWNoIGlzIGFuIGlsbHVzdHJhdGlvbgorICogb2YgYSBzdWJjbGFzcyBvZiBNb2R1bGVUZXN0LiAgVGhpcyBkYXRhIGlzIGluIGEgZm9ybWF0IHdoaWNoCisgKiBpcyB1bmRlcnN0b29kIGJ5IFJlc291cmNlTW9kdWxlLCB3aGljaCBmb3Igc2ltcGxpY2l0eSBleHBlY3RzCisgKiBhbGwgZGF0YSwgaW5jbHVkaW5nIG51bWVyaWMgYW5kIGJvb2xlYW4gZGF0YSwgdG8gYmUgcmVwcmVzZW50ZWQKKyAqIGJ5IFN0cmluZ3MuCisgKi8KK3B1YmxpYyBjbGFzcyBNb2R1bGVUZXN0U2FtcGxlRGF0YSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgcHVibGljIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisJcmV0dXJuIGNvbnRlbnRzOworICAgIH0KKworICAgIE9iamVjdFtdW10gY29udGVudHMgPSB7CisJeyAiSW5mbyIsIG5ldyBPYmplY3RbXVtdIHsKKwkgICAgeyAiRGVzY3JpcHRpb24iLCAiVGhpcyBpcyBhIHNhbXBsZSB0ZXN0IG1vZHVsZSB0aGF0IGlsbHVzdHJhdGVzIE1vZHVsZVRlc3QgIiArCisJICAgICAgImFuZCB1c2VzIGRhdGEgZm9ybWF0dGVkIGZvciBSZXNvdXJjZU1vZHVsZS4iIH0sCisJICAgIHsgIkhlYWRlcnMiLCBuZXcgU3RyaW5nW10geworCQkiYVN0cmluZ0FycmF5IiwgImFuSW50QXJyYXkiLCAiYUJvb2xlYW5BcnJheSIKKwkgICAgfX0sCisJfX0sCisJCisKKwl7ICJUZXN0RGF0YSIsIG5ldyBPYmplY3RbXVtdIHsKKwkgICAgeyAiVGVzdDAxIiwgbmV3IE9iamVjdFtdW10geworCQl7ICJJbmZvIiwgbmV3IE9iamVjdFtdW10geworCQkgICAgeyAiRGVzY3JpcHRpb24iLCAiQSB0eXBpY2FsIHRlc3QgdXNpbmcgYm90aCBzZXR0aW5ncyBhbmQgY2FzZXMuIiB9LAorCQkgICAgeyAiTG9uZ19EZXNjcmlwdGlvbiIsICJJdCBkb2VzIG5vdCBkZWZpbmVkIGl0cyBvd24gaGVhZGVycywgYnV0IGluc3RlYWQgIiArCisJCSAgICAgICJ1c2VzIHRoZSBkZWZhdWx0IGhlYWRlcnMgZGVmaW5lZCBmb3IgdGhlIG1vZHVsZS4gICIgKworCQkgICAgICAiVGhlcmUgYXJlIHR3byBzZXRzIG9mIHNldHRpbmdzIGFuZCB0aHJlZSBjYXNlcy4iIH0sCisJCX19LAorCQl7ICJTZXR0aW5ncyIsIG5ldyBPYmplY3RbXSB7CisgICAgICAgICAgICBuZXcgT2JqZWN0W11bXQorCQkgICAge3sgImFTdHJpbmciLCAidGhpcyBpcyBhIHN0cmluZyIgfSwKKwkJICAgICB7ICJhbkludCIsICI0MyIgfSwKKwkJICAgICB7ICJhQm9vbGVhbiIsICJmYWxzZSIgfX0sCisJCSAgICBuZXcgT2JqZWN0W11bXSAKKyAgICAgICAgICAgIHt7ICJhU3RyaW5nIiwgInRoaXMgaXMgYW5vdGhlciBzdHJpbmciIH0sCisJCSAgICAgeyAiYUJvb2xlYW4iLCAidHJ1ZSIgfX0KKwkJfX0sCisJCXsgIkNhc2VzIiwgbmV3IE9iamVjdFtdIHsKKyAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7CisgICAgCQkgICAgbmV3IFN0cmluZ1tdIHsgIm9uZSIsICJ0d28iLCAidGhyZWUiIH0sCisgICAgCQkgICAgbmV3IFN0cmluZ1tdIHsgIjI0IiwgIjQ4IiwgIjcyIiB9LAorICAgIAkJICAgIG5ldyBTdHJpbmdbXSB7ICJ0cnVlIiwgImZhbHNlIiwgInRydWUiIH0KKyAgICAJCX0sCisgICAgCQluZXcgT2JqZWN0W10geyAKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAiZm91ciIsICJmaXZlIiwgInNpeCIgfSwKKyAgICAJCSAgICBuZXcgU3RyaW5nW10geyAiLTEiLCAiLTUiLCAiLTEwIiB9LAorICAgIAkJICAgIG5ldyBTdHJpbmdbXSB7ICJ0cnVlIiwgImZhbHNlIiwgImZhbHNlIiB9CisgICAgCQl9LAorICAgIAkJbmV3IE9iamVjdFtdIHsgCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgImJhZ2VsIiwgInBlYW51dHMiLCAiY2Fycm90IiB9LAorICAgIAkJICAgIG5ldyBTdHJpbmdbXSB7ICIwIiwgIjAwMDAxIiwgIjEwMTAxIiB9LAorICAgIAkJICAgIG5ldyBTdHJpbmdbXSB7ICJmYWxzZSIsICJmYWxzZSIsICJGYWxzZSIgfQorICAgICAgICAgICAgfSwKKwkJfX0KKwkgICAgfX0sCisKKwkgICAgeyAiVGVzdDAyIiwgbmV3IE9iamVjdFtdW10geworCQl7ICJJbmZvIiwgbmV3IE9iamVjdFtdW10geworCQkgICAgeyAiRGVzY3JpcHRpb24iLCAiQSB0eXBpY2FsIHRlc3QgdGhhdCB1c2VzIGNhc2VzIGJ1dCBub3Qgc2V0dGluZ3MuIiB9LAorCQkgICAgeyAiTG9uZ19EZXNjcmlwdGlvbiIsICJJdCBkZWZpbmVzIGl0cyBvd24gaGVhZGVycy4iIH0sCisJCSAgICB7ICJIZWFkZXJzIiwgbmV3IFN0cmluZ1tdIHsKKwkJCSJhU3RyaW5nIiwgImFuSW50IiwgImFCb29sZWFuIgorCQkgICAgfX0sCisJCX19LAorCQl7ICJDYXNlcyIsIG5ldyBPYmplY3RbXSB7CisJCSAgICBuZXcgT2JqZWN0W10geyAiU3VwZXJzdHJpbmciLCAiNDIiLCAidHJ1ZSIgfSwKKwkJICAgIG5ldyBPYmplY3RbXSB7ICJVbmRlcmRvZyIsICIxMiIsICJmYWxzZSIgfSwKKwkJICAgIG5ldyBPYmplY3RbXSB7ICJTY29vYnlEb28iLCAiNyIsICJUclVlIiB9CisJCX19CisJICAgIH19LAorCisJICAgIHsgIlRlc3QwMyIsIG5ldyBPYmplY3RbXVtdIHsKKwkJeyAiSW5mbyIsIG5ldyBPYmplY3RbXVtdIHsKKwkJICAgIHsgIkRlc2NyaXB0aW9uIiwgIkEgdHlwaWNhbCB0ZXN0IHRoYXQgdXNlcyBqdXN0IHRoZSBpbmZvLCBubyBjYXNlcyBvciBzZXR0aW5ncy4iIH0sCisJCSAgICB7ICJFeHRyYSIsICJUaGlzIGlzIHNvbWUgZXh0cmEgaW5mb3JtYXRpb24uIiB9CisJCX19LAorCSAgICB9fSwKKworCSAgICAvLyBubyBUZXN0MDQgZGF0YQorCSAgICAvLyBUZXN0MDQgc2hvdWxkIGNhdXNlIGFuIGV4Y2VwdGlvbiB0byBiZSB0aHJvd24gc2luY2UgTW9kdWxlVGVzdFNhbXBsZSBkb2VzIG5vdAorCSAgICAvLyBzcGVjaWZ5IHRoYXQgaXQgaXMgb2sgZm9yIGl0IHRvIGhhdmUgbm8gZGF0YS4KKworCSAgICAvLyBubyBUZXN0MDUgZGF0YQorCSAgICAvLyBUZXN0MDUgc2hvdWxkIGp1c3QgbG9nIHRoaXMgZmFjdCwgc2luY2UgTW9kdWxlVGVzdFNhbXBsZSBpbmRpY2F0ZXMgdGhhdCBpdCBpcworCSAgICAvLyBvayBmb3IgVGVzdDA1IHRvIGhhdmUgbm8gZGF0YSBpbiBpdHMgb3ZlcnJpZGUgb2YgdmFsaWRhdGVNZXRob2QuCisKKwkgICAgeyAiVGVzdDA2IiwgbmV3IE9iamVjdFtdW10geworCQl7ICJJbmZvIiwgbmV3IE9iamVjdFtdW10geworCQkgICAgeyAiRGVzY3JpcHRpb24iLCAiQSB0ZXN0IHRoYXQgaGFzIGJhZCBkYXRhLiIgfSwKKwkJICAgIHsgIkxvbmdfRGVzY3JpcHRpb24iLCAiVGhpcyBpbGx1c3RyYXRlcyBob3cgYSBkYXRhIGVycm9yIHdpbGwgYXV0b21hdGljYWxseSAiICsKKwkJICAgICAgInRlcm1pbmF0ZSB0aGUgc2V0dGluZ3MgYW5kIGNhc2VzIGxvb3AuIiB9LAorCQkgICAgeyAiSGVhZGVycyIsIG5ldyBTdHJpbmdbXSB7CisJCQkiSXNHb29kIiwgIkRhdGEiLAorCQkgICAgfX0sCisJCX19LAorCQl7ICJDYXNlcyIsIG5ldyBPYmplY3RbXSB7CisJCSAgICBuZXcgT2JqZWN0W10geyAiR29vZCIsICIyMyIgfSwKKwkJICAgIG5ldyBPYmplY3RbXSB7ICJHb29kIiwgIi0xMjMiIH0sCisJCSAgICBuZXcgT2JqZWN0W10geyAiQmFkIiwgIldob29wcyIgfSwKKwkJICAgIG5ldyBPYmplY3RbXSB7ICJOb3QgRXhlY3V0ZWQiLCAiMzUiIH0sCisJCX19LAorCSAgICB9fSwKKworCSAgICB7ICJUZXN0MDciLCBuZXcgT2JqZWN0W11bXSB7CisJCXsgIkluZm8iLCBuZXcgT2JqZWN0W11bXSB7CisJCSAgICB7ICJEZXNjcmlwdGlvbiIsICJBIHRlc3QgdGhhdCBmYWlscyB3aXRoIGEgY2VydGFpbiBjb21iaW5hdGlvbiBvZiBzZXR0aW5ncyBhbmQgY2FzZS4iIH0sCisJCSAgICB7ICJMb25nX0Rlc2NyaXB0aW9uIiwgIlRoaXMgaWxsdXN0cmF0ZXMgaG93IGEgdGVzdCBlcnJvciB3aWxsIGF1dG9tYXRpY2FsbHkgIiArCisJCSAgICAgICJ0ZXJtaW5hdGUgdGhlIHNldHRpbmdzIGFuZCBjYXNlcyBsb29wLiAgU2V0dGluZ3MgZGF0YSBpcyB2YWx1ZXMsIHRoZSBjYXNlICIgKworCQkgICAgICAiZGF0YSBpcyBmYWN0b3JzLiAgVGhlIHRoaXJkIGZhY3RvciBpcyBub3QgYSBmYWN0b3Igb2YgdGhlIHNlY29uZCB2YWx1ZS4gICIgKworCQkgICAgICAiVGhlIHRlc3Qgd2lsbCBsb2cgYW4gZXJyb3IsIHdoaWNoIHdpbGwgYXV0b21hdGljYWxseSBzdG9wIHRoZSBsb29wLiIgfSwKKwkJICAgIHsgIkhlYWRlcnMiLCBuZXcgU3RyaW5nW10geworCQkJIkZhY3RvciIsCisJCSAgICB9fSwKKwkJfX0sCisJCXsgIlNldHRpbmdzIiAsIG5ldyBPYmplY3RbXSB7CisJCSAgICBuZXcgT2JqZWN0W11bXSB7eyAiVmFsdWUiLCAiMjEwIiB9fSwKKwkJICAgIG5ldyBPYmplY3RbXVtdIHt7ICJWYWx1ZSIsICI0MjAiIH19LAorCQkgICAgbmV3IE9iamVjdFtdW10ge3sgIlZhbHVlIiwgIjQyIiB9fSwKKwkJICAgIG5ldyBPYmplY3RbXVtdIHt7ICJWYWx1ZSIsICJOb3QgcmVhY2hlZC4iIH19CisJCX19LAorCQl7ICJDYXNlcyIsIG5ldyBPYmplY3RbXSB7CisJCSAgICBuZXcgT2JqZWN0W10geyAiMiIgfSwKKwkJICAgIG5ldyBPYmplY3RbXSB7ICIzIiB9LAorCQkgICAgbmV3IE9iamVjdFtdIHsgIjUiIH0sCisJCSAgICBuZXcgT2JqZWN0W10geyAiNyIgfSwKKwkJfX0sCisJICAgIH19LAorCisJICAgIHsgIlRlc3QwOCIsIG5ldyBPYmplY3RbXVtdIHsKKwkJeyAiSW5mbyIsIG5ldyBPYmplY3RbXVtdIHsKKwkJICAgIHsgIkRlc2NyaXB0aW9uIiwgIkEgdGVzdCB3aXRoIGRhdGEgbWlzc2luZyBmcm9tIGEgdGVzdCBjYXNlLiIgfSwKKwkJICAgIHsgIkhlYWRlcnMiLCBuZXcgU3RyaW5nW10geworCQkJIk9uZSIsICJUd28iLCAiVGhyZWUiCisJCSAgICB9fSwKKwkJfX0sCisJCXsgIkNhc2VzIiwgbmV3IE9iamVjdFtdIHsKKwkJICAgIG5ldyBPYmplY3RbXSB7ICIxIiwgIjIiLCAiMyIgfSwKKwkJICAgIG5ldyBPYmplY3RbXSB7ICI0IiwgIjUiIH0sIC8vIHRvbyBzaG9ydAorCQkgICAgbmV3IE9iamVjdFtdIHsgIjYiLCAiNyIsICI4IiB9LAorCQl9fSwKKwkgICAgfX0sCisJfX0sCisgICAgfTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZWFyY2gvU2VhcmNoVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlYXJjaC9TZWFyY2hUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjQ3NzBhMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZWFyY2gvU2VhcmNoVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTc5NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAkU291cmNlOiAKKyAqICREYXRlOiAKKyAqICRSZXZpc2lvbjogCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYyLjEgOiBjb2xsYXRlL1N0cmluZ1NlYXJjaFRlc3QKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L3NyY2h0ZXN0LmNwcAorICoqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnNlYXJjaDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBTZWFyY2hUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIAorICAgIC8vaW5uZXIgY2xhc3MKKyAgICBzdGF0aWMgY2xhc3MgU2VhcmNoRGF0YSB7CisgICAgICAgIFNlYXJjaERhdGEoU3RyaW5nIHRleHQsIFN0cmluZyBwYXR0ZXJuLCBTdHJpbmcgY29sbCwgaW50IHN0cmVuZ3RoLCBTdHJpbmcgYnJlYWtlciwKKyAgICAgICAgICAgICAgICAgICBpbnRbXSBvZmZzZXQsIGludFtdIHNpemUpIHsKKyAgICAgICAgICAgIHRoaXMudGV4dCA9IHRleHQ7CisgICAgICAgICAgICB0aGlzLnBhdHRlcm4gPSBwYXR0ZXJuOworICAgICAgICAgICAgdGhpcy5jb2xsYXRvciA9IGNvbGw7CisgICAgICAgICAgICB0aGlzLnN0cmVuZ3RoID0gc3RyZW5ndGg7CisgICAgICAgICAgICB0aGlzLmJyZWFrZXIgPSBicmVha2VyOworICAgICAgICAgICAgdGhpcy5vZmZzZXQgPSBvZmZzZXQ7CisgICAgICAgICAgICB0aGlzLnNpemUgPSBzaXplOworICAgICAgICB9CisgICAgICAgIFN0cmluZyAgICAgICAgICAgICAgdGV4dDsKKyAgICAgICAgU3RyaW5nICAgICAgICAgICAgICBwYXR0ZXJuOworICAgICAgICBTdHJpbmcgICAgICAgICAgICAgIGNvbGxhdG9yOworICAgICAgICBpbnQgICAgICAgICAgICAgICAgIHN0cmVuZ3RoOworICAgICAgICBTdHJpbmcgICAgICAgICAgICAgIGJyZWFrZXI7CisgICAgICAgIGludFtdICAgICAgICAgICAgICAgb2Zmc2V0OworICAgICAgICBpbnRbXSAgICAgICAgICAgICAgIHNpemU7CisgICAgfTsKKyAgICAKKyAgICBSdWxlQmFzZWRDb2xsYXRvciBtX2VuX3VzXzsgCisgICAgUnVsZUJhc2VkQ29sbGF0b3IgbV9mcl9mcl87CisgICAgUnVsZUJhc2VkQ29sbGF0b3IgbV9kZV87CisgICAgUnVsZUJhc2VkQ29sbGF0b3IgbV9lc187IAorICAgIEJyZWFrSXRlcmF0b3IgICAgIG1fZW5fd29yZGJyZWFrZXJfID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoKTsKKyAgICBCcmVha0l0ZXJhdG9yICAgICBtX2VuX2NoYXJhY3RlcmJyZWFrZXJfID0gQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZSgpOworICAgIAorICAgIHN0YXRpYyBTZWFyY2hEYXRhW10gQkFTSUMgPSB7CisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJ4eHh4eHh4eHh4eHh4eHh4eHh4eCIsICAgICAgICAgICJmaXNoZXIiLCAgICAgICBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sICAgICAgICAgICAgbmV3IGludFtdezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoInNpbGx5IHNwcmluZyBzdHJpbmciLCAgICAgICAgICAgInN0cmluZyIsICAgICAgIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W117MTMsIC0xfSwgICAgICAgICBuZXcgaW50W117Nn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgic2lsbHkgc3ByaW5nIHN0cmluZyBzdHJpbmciLCAgICAic3RyaW5nIiwgICAgICAgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXXsxMywgMjAsIC0xfSwgICAgIG5ldyBpbnRbXXs2LCA2fSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJzaWxseSBzdHJpbmcgc3ByaW5nIHN0cmluZyIsICAgICJzdHJpbmciLCAgICAgICBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdezYsIDIwLCAtMX0sICAgICAgbmV3IGludFtdezYsIDZ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoInN0cmluZyBzcHJpbmcgc3RyaW5nIiwgICAgICAgICAgInN0cmluZyIsICAgICAgIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W117MCwgMTQsIC0xfSwgICAgICBuZXcgaW50W117NiwgNn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiU2NvdHQgR2FueW8iLCAgICAgICAgICAgICAgICAgICAiYyIsICAgICAgICAgICAgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXXsxLCAtMX0sICAgICAgICAgIG5ldyBpbnRbXXsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJTY290dCBHYW55byIsICAgICAgICAgICAgICAgICAgICIgIiwgICAgICAgICAgICBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdezUsIC0xfSwgICAgICAgICAgbmV3IGludFtdezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDMwMFx1MDMyNSIsICAgICAgICAgICAgICAgICAgIlx1MDMwMCIsICAgICAgIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W117LTF9LCAgICAgICAgICAgICBuZXcgaW50W117MH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiYVx1MDMwMFx1MDMyNSIsICAgICAgICAgICAgICAgICAiXHUwMzAwIiwgICAgICAgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXXstMX0sICAgICAgICAgICAgIG5ldyBpbnRbXXswfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhXHUwMzAwXHUwMzI1IiwgICAgICAgICAgICAgICAgICJcdTAzMDBcdTAzMjUiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdezEsIC0xfSwgICAgICAgICAgbmV3IGludFtdezJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFcdTAzMDBiIiwgICAgICAgICAgICAgICAgICAgICAgIlx1MDMwMCIsICAgICAgIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W117MSwgLTF9LCAgICAgICAgICBuZXcgaW50W117MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMGM5IiwgICAgICAgICAgICAgICAgICAgICAgICAiZSIsICAgICAgICAgICAgbnVsbCwgQ29sbGF0b3IuUFJJTUFSWSwgIG51bGwsIG5ldyBpbnRbXXswLCAtMX0sICAgICAgICAgIG5ldyBpbnRbXXsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKG51bGwsICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsICAgICAgICAgICBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdey0xfSwgICAgICAgICAgICAgbmV3IGludFtdezB9KQorICAgIH07CisgICAgCisgICAgU2VhcmNoRGF0YSBCUkVBS0lURVJBVE9SRVhBQ1RbXSA9IHsKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImZveHkgZm94IiwgImZveCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCAiY2hhcmFjdGVyYnJlYWtlciIsIG5ldyBpbnRbXSB7MCwgNSwgLTF9LCBuZXcgaW50W10gezMsIDN9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImZveHkgZm94IiwgImZveCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCAid29yZGJyZWFrZXIiLCBuZXcgaW50W10gezUsIC0xfSwgbmV3IGludFtdIHszfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJUaGlzIGlzIGEgdG9lIFRcdTAwRjZuZSIsICJ0b2UiLCAiZGUiLCBDb2xsYXRvci5QUklNQVJZLCAiY2hhcmFjdGVyYnJlYWtlciIsIG5ldyBpbnRbXSB7MTAsIDE0LCAtMX0sIG5ldyBpbnRbXSB7MywgMn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiVGhpcyBpcyBhIHRvZSBUXHUwMEY2bmUiLCAidG9lIiwgImRlIiwgQ29sbGF0b3IuUFJJTUFSWSwgIndvcmRicmVha2VyIiwgbmV3IGludFtdIHsxMCwgLTF9LCBuZXcgaW50W10gezN9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIkNoYW5uZWwsIGFub3RoZXIgY2hhbm5lbCwgbW9yZSBjaGFubmVscywgYW5kIG9uZSBsYXN0IENoYW5uZWwiLCAiQ2hhbm5lbCIsICJlcyIsIENvbGxhdG9yLlRFUlRJQVJZLCAKKyAgICAgICAgICAgICAid29yZGJyZWFrZXIiLCBuZXcgaW50W10gezAsIDU0LCAtMX0sIG5ldyBpbnRbXSB7NywgN30pLAorICAgICAgICAvKiBqaXR0ZXJidWcgMTc0NSAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgidGVzdGluZyB0aGF0IFx1MDBlOSBkb2VzIG5vdCBtYXRjaCBlIiwgImUiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgCisgICAgICAgICAgICAiY2hhcmFjdGVyYnJlYWtlciIsIG5ldyBpbnRbXSB7MSwgMTcsIDMwLCAtMX0sIG5ldyBpbnRbXSB7MSwgMSwgMX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgidGVzdGluZyB0aGF0IHN0cmluZyBhYlx1MDBlOWNkIGRvZXMgbm90IG1hdGNoIGUiLCAiZSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCAKKyAgICAgICAgICAgICJjaGFyYWN0ZXJicmVha2VyIiwgbmV3IGludFtdIHsxLCAyOCwgNDEsIC0xfSwgbmV3IGludFtdIHsxLCAxLCAxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAwYzkiLCAiZSIsICJmciIsIENvbGxhdG9yLlBSSU1BUlksICAiY2hhcmFjdGVyYnJlYWtlciIsIG5ldyBpbnRbXXswLCAtMX0sIG5ldyBpbnRbXXsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKG51bGwsIG51bGwsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSkKKyAgICB9OworICAgIAorICAgIFNlYXJjaERhdGEgQlJFQUtJVEVSQVRPUkNBTk9OSUNBTFtdID0geworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiZm94eSBmb3giLCAiZm94IiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksICJjaGFyYWN0ZXJicmVha2VyIiwgbmV3IGludFtdIHswLCA1LCAtMX0sIG5ldyBpbnRbXSB7MywgM30pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiZm94eSBmb3giLCAiZm94IiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksICJ3b3JkYnJlYWtlciIsIG5ldyBpbnRbXSB7NSwgLTF9LCBuZXcgaW50W10gezN9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlRoaXMgaXMgYSB0b2UgVFx1MDBGNm5lIiwgInRvZSIsICJkZSIsIENvbGxhdG9yLlBSSU1BUlksICJjaGFyYWN0ZXJicmVha2VyIiwgbmV3IGludFtdIHsxMCwgMTQsIC0xfSwgbmV3IGludFtdIHszLCAyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJUaGlzIGlzIGEgdG9lIFRcdTAwRjZuZSIsICJ0b2UiLCAiZGUiLCBDb2xsYXRvci5QUklNQVJZLCAid29yZGJyZWFrZXIiLCBuZXcgaW50W10gezEwLCAtMX0sIG5ldyBpbnRbXSB7M30pLCAKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIkNoYW5uZWwsIGFub3RoZXIgY2hhbm5lbCwgbW9yZSBjaGFubmVscywgYW5kIG9uZSBsYXN0IENoYW5uZWwiLCAiQ2hhbm5lbCIsICJlcyIsIENvbGxhdG9yLlRFUlRJQVJZLCAid29yZGJyZWFrZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgbmV3IGludFtdIHswLCA1NCwgLTF9LCBuZXcgaW50W10gezcsIDd9KSwKKyAgICAgICAgLyogaml0dGVyYnVnIDE3NDUgKi8KKyAgICAgICAgbmV3IFNlYXJjaERhdGEoInRlc3RpbmcgdGhhdCBcdTAwZTkgZG9lcyBub3QgbWF0Y2ggZSIsICJlIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIAorICAgICAgICAgICAgImNoYXJhY3RlcmJyZWFrZXIiLCBuZXcgaW50W10gezEsIDE3LCAzMCwgLTF9LCBuZXcgaW50W10gezEsIDEsIDF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoInRlc3RpbmcgdGhhdCBzdHJpbmcgYWJcdTAwZTljZCBkb2VzIG5vdCBtYXRjaCBlIiwgImUiLCBudWxsLCAKKyAgICAgICAgICAgICBDb2xsYXRvci5URVJUSUFSWSwgImNoYXJhY3RlcmJyZWFrZXIiLCBuZXcgaW50W10gezEsIDI4LCA0MSwgLTF9LCBuZXcgaW50W10gezEsIDEsIDF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDBjOSIsICJlIiwgImZyIiwgQ29sbGF0b3IuUFJJTUFSWSwgICJjaGFyYWN0ZXJicmVha2VyIiwgbmV3IGludFtdezAsIC0xfSwgbmV3IGludFtdezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KQorICAgIH07CisgICAgCisgICAgU2VhcmNoRGF0YSBCQVNJQ0NBTk9OSUNBTFtdID0geworICAgICAgICBuZXcgU2VhcmNoRGF0YSgieHh4eHh4eHh4eHh4eHh4eHh4eHgiLCAiZmlzaGVyIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50IFtdIHswfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJzaWxseSBzcHJpbmcgc3RyaW5nIiwgInN0cmluZyIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezEzLCAtMX0sIG5ldyBpbnRbXSB7Nn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgic2lsbHkgc3ByaW5nIHN0cmluZyBzdHJpbmciLCAic3RyaW5nIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MTMsIDIwLCAtMX0sIG5ldyBpbnRbXSB7NiwgNn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgic2lsbHkgc3RyaW5nIHNwcmluZyBzdHJpbmciLCAic3RyaW5nIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7NiwgMjAsIC0xfSwgbmV3IGludFtdIHs2LCA2fSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJzdHJpbmcgc3ByaW5nIHN0cmluZyIsICJzdHJpbmciLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAxNCwgLTF9LCBuZXcgaW50W10gezYsIDZ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlNjb3R0IEdhbnlvIiwgImMiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHsxLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiU2NvdHQgR2FueW8iLCAiICIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezUsIC0xfSwgbmV3IGludFtdIHsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAzMDBcdTAzMjUiLCAiXHUwMzAwIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnQgW10gezAsIC0xfSwgbmV3IGludFtdIHsyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhXHUwMzAwXHUwMzI1IiwgIlx1MDMwMCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50IFtdIHsxLCAtMX0sIG5ldyBpbnRbXSB7Mn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiYVx1MDMwMFx1MDMyNSIsICJcdTAzMDBcdTAzMjUiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHsxLCAtMX0sIG5ldyBpbnRbXXsyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhXHUwMzAwYiIsICJcdTAzMDAiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdezEsIC0xfSwgbmV3IGludFtdIHsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhXHUwMzAwXHUwMzI1YiIsICJcdTAzMDBiIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MSwgLTF9LCBuZXcgaW50W10gezN9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDMyNVx1MDMwMEFcdTAzMjVcdTAzMDAiLCAiXHUwMzAwQVx1MDMwMCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHs1fSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAzMjVcdTAzMDBBXHUwMzI1XHUwMzAwIiwgIlx1MDMyNUFcdTAzMjUiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7NX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiYVx1MDMwMFx1MDMyNWJcdTAzMDBcdTAzMjVjIFx1MDMyNWJcdTAzMDAgXHUwMzAwYlx1MDMyNSIsICJcdTAzMDBiXHUwMzI1IiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIAorICAgICAgICAgICAgbmV3IGludFtdIHsxLCAxMiwgLTF9LCBuZXcgaW50W10gezUsIDN9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W117MH0pCisgICAgfTsKKworICAgIFNlYXJjaERhdGEgQ09MTEFUT1JbXSA9IHsKKyAgICAgICAgLyogZW5nbGlzaCAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiZm94IGZweCIsICJmb3giLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7M30pLCAKKyAgICAgICAgLyogdGFpbG9yZWQgKi8KKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImZveCBmcHgiLCAiZm94IiwgbnVsbCwgQ29sbGF0b3IuUFJJTUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCA0LCAtMX0sIG5ldyBpbnRbXSB7MywgM30pLCAKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KQorICAgIH07CisgICAgCisgICAgU3RyaW5nIFRFU1RDT0xMQVRPUlJVTEUgPSAiJiBvLE8gOyBwLFAiOworICAgIFN0cmluZyBFWFRSQUNPTExBVElPTlJVTEUgPSAiICYgYWUgOyBcdTAwZTQgJiBBRSA7IFx1MDBjNCAmIG9lIDsgXHUwMGY2ICYgT0UgOyBcdTAwZDYgJiB1ZSA7IFx1MDBmYyAmIFVFIDsgXHUwMGRjIjsKKworICAgIAorICAgIFNlYXJjaERhdGEgQ09MTEFUT1JDQU5PTklDQUxbXSA9IHsKKyAgICAgICAgLyogZW5nbGlzaCAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiZm94IGZweCIsICJmb3giLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7M30pLCAKKyAgICAgICAgLyogdGFpbG9yZWQgKi8KKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImZveCBmcHgiLCAiZm94IiwgbnVsbCwgQ29sbGF0b3IuUFJJTUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCA0LCAtMX0sIG5ldyBpbnRbXSB7MywgM30pLCAKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KQorICAgIH07CisKKyAgICBTZWFyY2hEYXRhIENPTVBPU0lURUJPVU5EQVJJRVNbXSA9IHsKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDBDMCIsICJBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIkFcdTAwQzBDIiwgIkEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdICB7MCwgMSwgLTF9LCBuZXcgaW50W10gIHsxLCAxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAwQzBBIiwgIkEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAxLCAtMX0sIG5ldyBpbnRbXSB7MSwgMX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiQlx1MDBDMCIsICJBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MSwgLTF9LCBuZXcgaW50W10gezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDBDMEIiLCAiQSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAwQzAiLCAiXHUwMzAwIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDMwMFx1MDBDMCIsICJcdTAzMDAiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAxLCAtMX0sIG5ldyBpbnRbXSB7MSwgMX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMEMwXHUwMzAwIiwgIlx1MDMwMCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSksCisgICAgICAgIC8qIEEgKyAwMzBBICsgMDMwMSAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMUZBIiwgIlx1MDFGQSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAxRkEiLCAiXHUwMzBBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDFGQSIsICJBXHUwMzBBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDFGQSIsICJcdTAzMEFBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDFGQSIsICJcdTAzMDEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMUZBIiwgIkFcdTAzMDEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMUZBIiwgIlx1MDMwMUEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMUZBIiwgIlx1MDMwQVx1MDMwMSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJBXHUwMUZBIiwgIkFcdTAzMEEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMUZBQSIsICJcdTAzMDFBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MEY3MyIsICJcdTBGNzMiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwRjczIiwgIlx1MEY3MSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTBGNzMiLCAiXHUwRjcyIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MEY3MyIsICJcdTBGNzFcdTBGNzIiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiQVx1MEY3MyIsICJBXHUwRjcxIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MEY3M0EiLCAiXHUwRjcyQSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKG51bGwsIG51bGwsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSkKKyAgICB9OworCisgICAgU2VhcmNoRGF0YSBDT01QT1NJVEVCT1VOREFSSUVTQ0FOT05JQ0FMW10gPSB7CisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAwQzAiLCAiQSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJBXHUwMEMwQyIsICJBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgMSwgLTF9LCBuZXcgaW50W10gezEsIDF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDBDMEEiLCAiQSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIDEsIC0xfSwgbmV3IGludFtdIHsxLCAxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJCXHUwMEMwIiwgIkEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHsxLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMEMwQiIsICJBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDBDMCIsICJcdTAzMDAiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMzAwXHUwMEMwIiwgIlx1MDMwMCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIDEsIC0xfSwgbmV3IGludFtdIHsxLCAxfSksCisgICAgICAgIC8qIFx1MDMwMCBibG9ja2VkIGJ5IFx1MDMwMCAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMEMwXHUwMzAwIiwgIlx1MDMwMCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsyfSksCisgICAgICAgIC8qIEEgKyAwMzBBICsgMDMwMSAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMUZBIiwgIlx1MDFGQSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAxRkEiLCAiXHUwMzBBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDFGQSIsICJBXHUwMzBBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDFGQSIsICJcdTAzMEFBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDFGQSIsICJcdTAzMDEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICAvKiBibG9ja2VkIGFjY2VudCAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMUZBIiwgIkFcdTAzMDEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMUZBIiwgIlx1MDMwMUEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMUZBIiwgIlx1MDMwQVx1MDMwMSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJBXHUwMUZBIiwgIkFcdTAzMEEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHsxLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMUZBQSIsICJcdTAzMDFBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MEY3MyIsICJcdTBGNzMiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwRjczIiwgIlx1MEY3MSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTBGNzMiLCAiXHUwRjcyIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MEY3MyIsICJcdTBGNzFcdTBGNzIiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiQVx1MEY3MyIsICJBXHUwRjcxIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MEY3M0EiLCAiXHUwRjcyQSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAxRkEgQVx1MDMwMVx1MDMwQSBBXHUwMzBBXHUwMzAxIEFcdTAzMEEgXHUwMUZBIiwgIkFcdTAzMEEiLCAKKyAgICAgICAgICAgIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIDYsIDEwLCAxMywgLTF9LCBuZXcgaW50W10gezEsIDMsIDIsIDF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KQorICAgIH07CisKKyAgICBTZWFyY2hEYXRhIFNVUFBMRU1FTlRBUllbXSA9IHsKKyAgICAgICAgLyogMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5ICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhYmMgXHVEODAwXHVEQzAwIFx1RDgwMFx1REMwMSBcdUQ4MDFcdURDMDAgXHVEODAwXHVEQzAwYWJjIGFiY1x1RDgwMFx1REMwMCBcdUQ4MDBcdUQ4MDBcdURDMDAgXHVEODAwXHVEQzAwXHVEQzAwIiwgCisgICAgICAgICAgICAiXHVEODAwXHVEQzAwIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7NCwgMTMsIDIyLCAyNiwgMjksIC0xfSwgbmV3IGludFtdIHsyLCAyLCAyLCAyLCAyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKG51bGwsIG51bGwsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSkKKyAgICB9OworCisgICAgU3RyaW5nIENPTlRSQUNUSU9OUlVMRSA9ICImeiA9IGFiL2MgPCBBQiA8IFhcdTAzMDAgPCBBQkMgPCBYXHUwMzAwXHUwMzE1IjsKKyAgICAKKyAgICBTZWFyY2hEYXRhIENPTlRSQUNUSU9OW10gPSB7CisgICAgICAgIC8qIGNvbW1vbiBkaXNjb250aWd1b3VzICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJBXHUwMzAwXHUwMzE1IiwgIlx1MDMwMCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJBXHUwMzAwXHUwMzE1IiwgIlx1MDMwMFx1MDMxNSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezEsIC0xfSwgbmV3IGludFtdIHsyfSksCisgICAgICAgIC8qIGNvbnRyYWN0aW9uIHByZWZpeCAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiQUJcdTAzMTVDIiwgIkEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiQUJcdTAzMTVDIiwgIkFCIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIkFCXHUwMzE1QyIsICJcdTAzMTUiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHsyLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICAvKiBkaXNjb250aWd1b3VzIHByb2JsZW0gaGVyZSBmb3IgYmFja3dhcmRzIGl0ZXJhdGlvbi4gCisgICAgICAgIGFjY2VudHMgbm90IGZvdW5kIGJlY2F1c2UgZGlzY29udGlndW91cyBzdG9yZXMgYWxsIGluZm9ybWF0aW9uICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJYXHUwMzAwXHUwMzE5XHUwMzE1IiwgIlx1MDMxOSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSksCisgICAgICAgICAvKiBlbmRzIG5vdCB3aXRoIGEgY29udHJhY3Rpb24gY2hhcmFjdGVyICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJYXHUwMzE1XHUwMzAwRCIsICJcdTAzMDBcdTAzMTUiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiWFx1MDMxNVx1MDMwMEQiLCAiWFx1MDMwMFx1MDMxNSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHszfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJYXHUwMzAwXHUwMzFBXHUwMzE1RCIsICJYXHUwMzAwIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgLyogYmxvY2tlZCBkaXNjb250aWd1b3VzICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJYXHUwMzAwXHUwMzFBXHUwMzE1RCIsICJcdTAzMUFcdTAzMTVEIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFiIiwgInoiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7Mn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pCisgICAgfTsKKyAgICAKKyAgICBTZWFyY2hEYXRhIENPTlRSQUNUSU9OQ0FOT05JQ0FMW10gPSB7CisgICAgICAgIC8qIGNvbW1vbiBkaXNjb250aWd1b3VzICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJBXHUwMzAwXHUwMzE1IiwgIlx1MDMwMCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezEsIC0xfSwgbmV3IGludFtdIHsyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJBXHUwMzAwXHUwMzE1IiwgIlx1MDMwMFx1MDMxNSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezEsIC0xfSwgbmV3IGludFtdIHsyfSksCisgICAgICAgIC8qIGNvbnRyYWN0aW9uIHByZWZpeCAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiQUJcdTAzMTVDIiwgIkEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiQUJcdTAzMTVDIiwgIkFCIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIkFCXHUwMzE1QyIsICJcdTAzMTUiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHsyLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICAvKiBkaXNjb250aWd1b3VzIHByb2JsZW0gaGVyZSBmb3IgYmFja3dhcmRzIGl0ZXJhdGlvbi4gCisgICAgICAgIGZvcndhcmRzIGdpdmVzIDAsIDQgYnV0IGJhY2t3YXJkcyBnaXZlIDEsIDMgKi8KKyAgICAgICAgLyogeyJYXHUwMzAwXHUwMzE5XHUwMzE1IiwgIlx1MDMxOSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCB7MCwgLTF9LCAKKyAgICAgICAgezR9fSwgKi8KKyAgICAgICAgCisgICAgICAgICAvKiBlbmRzIG5vdCB3aXRoIGEgY29udHJhY3Rpb24gY2hhcmFjdGVyICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJYXHUwMzE1XHUwMzAwRCIsICJcdTAzMDBcdTAzMTUiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiWFx1MDMxNVx1MDMwMEQiLCAiWFx1MDMwMFx1MDMxNSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCAKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezN9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlhcdTAzMDBcdTAzMUFcdTAzMTVEIiwgIlhcdTAzMDAiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgCisgICAgICAgICAgICBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHs0fSksCisgICAgICAgIC8qIGJsb2NrZWQgZGlzY29udGlndW91cyAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiWFx1MDMwMFx1MDMxQVx1MDMxNUQiLCAiXHUwMzFBXHUwMzE1RCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCAKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7MSwgLTF9LCBuZXcgaW50W10gezR9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFiIiwgInoiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7Mn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pCisgICAgfTsKKyAgICAKKyAgICBTZWFyY2hEYXRhIE1BVENIW10gPSB7CisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhIGJ1c3kgYmVlIGlzIGEgdmVyeSBidXN5IGJlZWVlIiwgImJlZSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCAKKyAgICAgICAgbmV3IGludFtdIHs3LCAyNiwgLTF9LCBuZXcgaW50W10gezMsIDN9KSwKKyAgICAgICAgLyogMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhIGJ1c3kgYmVlIGlzIGEgdmVyeSBidXN5IGJlZWVlIHdpdGggbm8gYmVlIGxpZmUiLCAiYmVlIiwgbnVsbCwgCisgICAgICAgICAgICBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHs3LCAyNiwgNDAsIC0xfSwgbmV3IGludFtdIHszLCAzLCAzfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKG51bGwsIG51bGwsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSkKKyAgICB9OworICAgIAorICAgIFN0cmluZyBJR05PUkFCTEVSVUxFID0gIiZhID0gXHUwMzAwIjsKKyAgICAKKyAgICBTZWFyY2hEYXRhIElHTk9SQUJMRVtdID0geworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMzE1XHUwMzAwIFx1MDMxNVx1MDMwMFx1MDMxNSAiLCAiXHUwMzAwIiwgbnVsbCwgQ29sbGF0b3IuUFJJTUFSWSwgbnVsbCwgCisgICAgICAgICAgICBuZXcgaW50W10gezAsIDMsIC0xfSwgbmV3IGludFtdIHsyLCAzfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKG51bGwsIG51bGwsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSkKKyAgICB9OworICAgIAorICAgIFNlYXJjaERhdGEgTk9STUNBTk9OSUNBTFtdID0geworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMzAwXHUwMzI1IiwgIlx1MDMwMCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAzMDBcdTAzMjUiLCAiXHUwMzI1IiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFcdTAzMDBcdTAzMjUiLCAiXHUwMzI1XHUwMzAwIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MSwgLTF9LCAKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7Mn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiYVx1MDMwMFx1MDMyNSIsICJcdTAzMDBcdTAzMjUiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHsxLCAtMX0sIAorICAgICAgICAgICAgbmV3IGludFtdIHsyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhXHUwMzAwXHUwMzI1IiwgIlx1MDMyNSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezEsIC0xfSwgbmV3IGludFtdIHsyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhXHUwMzAwXHUwMzI1IiwgIlx1MDMwMCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezEsIC0xfSwgbmV3IGludFtdIHsyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKG51bGwsIG51bGwsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSkKKyAgICB9OworICAgIAorICAgIFNlYXJjaERhdGEgTk9STUVYQUNUW10gPSB7CisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhXHUwMzAwXHUwMzI1IiwgIlx1MDMyNVx1MDMwMCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezEsIC0xfSwgbmV3IGludFtdIHsyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKG51bGwsIG51bGwsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSkKKyAgICB9OworCisgICAgU2VhcmNoRGF0YSBOT05OT1JNRVhBQ1RbXSA9IHsKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFcdTAzMDBcdTAzMjUiLCAiXHUwMzI1XHUwMzAwIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KQorICAgIH07CisgICAgCisgICAgU2VhcmNoRGF0YSBPVkVSTEFQW10gPSB7CisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhYmFiYWJhYiIsICJhYmFiIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgMiwgNCwgLTF9LCBuZXcgaW50W10gezQsIDQsIDR9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KQorICAgIH07CisgICAgCisgICAgU2VhcmNoRGF0YSBOT05PVkVSTEFQW10gPSB7CisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhYmFiYWJhYiIsICJhYmFiIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgNCwgLTF9LCBuZXcgaW50W10gezQsIDR9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KQorICAgIH07CisgICAgCisgICAgU2VhcmNoRGF0YSBPVkVSTEFQQ0FOT05JQ0FMW10gPSB7CisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhYmFiYWJhYiIsICJhYmFiIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgMiwgNCwgLTF9LCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBpbnRbXSB7NCwgNCwgNH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pCisgICAgfTsKKyAgICAKKyAgICBTZWFyY2hEYXRhIE5PTk9WRVJMQVBDQU5PTklDQUxbXSA9IHsKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFiYWJhYmFiIiwgImFiYWIiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCA0LCAtMX0sIG5ldyBpbnRbXSB7NCwgNH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pCisgICAgfTsKKyAgICAKKyAgICBTZWFyY2hEYXRhIFBBVFRFUk5DQU5PTklDQUxbXSA9IHsKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBmb3hlcyIsICJ0aGUiLCBudWxsLCAKKyAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuUFJJTUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAzMSwgLTF9LCBuZXcgaW50W10gezMsIDN9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBmb3hlcyIsICJmb3giLCBudWxsLCAKKyAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuUFJJTUFSWSwgbnVsbCwgbmV3IGludFtdIHsxNiwgNDAsIC0xfSwgbmV3IGludFtdIHszLCAzfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKG51bGwsIG51bGwsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSkKKyAgICB9OworICAgIAorICAgIFNlYXJjaERhdGEgUEFUVEVSTltdID0geworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGZveGVzIiwgInRoZSIsIG51bGwsIAorICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5QUklNQVJZLCBudWxsLCBuZXcgaW50W10gezAsIDMxLCAtMX0sIG5ldyBpbnRbXSB7MywgM30pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGZveGVzIiwgImZveCIsIG51bGwsIAorICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5QUklNQVJZLCBudWxsLCBuZXcgaW50W10gezE2LCA0MCwgLTF9LCBuZXcgaW50W10gezMsIDN9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KQorICAgIH07CisgICAgCisgICAgU2VhcmNoRGF0YSBTVFJFTkdUSFtdID0geworICAgICAgICAvKjAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OSovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZm94ZXMiLCAiZm94IiwgImVuIiwgCisgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlBSSU1BUlksIG51bGwsIG5ldyBpbnRbXSB7MTYsIDQwLCAtMX0sIG5ldyBpbnRbXSB7MywgM30pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGZveGVzIiwgImZveCIsICJlbiIsIAorICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5QUklNQVJZLCAid29yZGJyZWFrZXIiLCBuZXcgaW50W10gezE2LCAtMX0sIG5ldyBpbnRbXSB7M30pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiYmxhY2tiaXJkcyBQYXQgcFx1MDBFOWNoXHUwMEU5IHBcdTAwRUFjaGUgcFx1MDBFOWNoZXIgcFx1MDBFQWNoZXIgVG9kIFRcdTAwRjZuZSBibGFjayBUb2Z1IGJsYWNrYmlyZHMgVG9uIFBBVCB0b2Vob2xkIGJsYWNrYmlyZCBibGFjay1iaXJkIHBhdCB0b2UgYmlnIFRvZSIsCisgICAgICAgICAgICAgICAgICAgICAgICJwZWNoZSIsICJmciIsIENvbGxhdG9yLlBSSU1BUlksIG51bGwsIG5ldyBpbnRbXSB7MTUsIDIxLCAyNywgMzQsIC0xfSwgbmV3IGludFtdIHs1LCA1LCA1LCA1fSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJUaGlzIGlzIGEgdG9lIFRcdTAwRjZuZSIsICJ0b2UiLCAiZGUiLCBDb2xsYXRvci5QUklNQVJZLCBudWxsLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBpbnRbXSB7MTAsIDE0LCAtMX0sIG5ldyBpbnRbXSB7MywgMn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiQSBjaGFubmVsLCBhbm90aGVyIENIQU5ORUwsIG1vcmUgQ2hhbm5lbHMsIGFuZCBvbmUgbGFzdCBjaGFubmVsLi4uIiwgImNoYW5uZWwiLCAiZXMiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlBSSU1BUlksIG51bGwsIG5ldyBpbnRbXSB7MiwgMTksIDMzLCA1NiwgLTF9LCBuZXcgaW50W10gezcsIDcsIDcsIDd9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KQorICAgIH07CisgICAgCisgICAgU2VhcmNoRGF0YSBTVFJFTkdUSENBTk9OSUNBTFtdID0geworICAgICAgICAvKjAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OSAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGZveGVzIiwgImZveCIsICJlbiIsIAorICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5QUklNQVJZLCBudWxsLCBuZXcgaW50W10gezE2LCA0MCwgLTF9LCBuZXcgaW50W10gezMsIDN9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBmb3hlcyIsICJmb3giLCAiZW4iLCAKKyAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuUFJJTUFSWSwgIndvcmRicmVha2VyIiwgbmV3IGludFtdIHsxNiwgLTF9LCBuZXcgaW50W10gezN9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImJsYWNrYmlyZHMgUGF0IHBcdTAwRTljaFx1MDBFOSBwXHUwMEVBY2hlIHBcdTAwRTljaGVyIHBcdTAwRUFjaGVyIFRvZCBUXHUwMEY2bmUgYmxhY2sgVG9mdSBibGFja2JpcmRzIFRvbiBQQVQgdG9laG9sZCBibGFja2JpcmQgYmxhY2stYmlyZCBwYXQgdG9lIGJpZyBUb2UiLAorICAgICAgICAgICAgICAgICAgICAgICAicGVjaGUiLCAiZnIiLCBDb2xsYXRvci5QUklNQVJZLCBudWxsLCBuZXcgaW50W10gezE1LCAyMSwgMjcsIDM0LCAtMX0sIG5ldyBpbnRbXSB7NSwgNSwgNSwgNX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiVGhpcyBpcyBhIHRvZSBUXHUwMEY2bmUiLCAidG9lIiwgImRlIiwgQ29sbGF0b3IuUFJJTUFSWSwgbnVsbCwgCisgICAgICAgICAgICAgICAgICAgICAgIG5ldyBpbnRbXSB7MTAsIDE0LCAtMX0sIG5ldyBpbnRbXSB7MywgMn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiQSBjaGFubmVsLCBhbm90aGVyIENIQU5ORUwsIG1vcmUgQ2hhbm5lbHMsIGFuZCBvbmUgbGFzdCBjaGFubmVsLi4uIiwgImNoYW5uZWwiLCAiZXMiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuUFJJTUFSWSwgbnVsbCwgbmV3IGludFtdezIsIDE5LCAzMywgNTYsIC0xfSwgbmV3IGludFtdIHs3LCA3LCA3LCA3fSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKG51bGwsIG51bGwsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdezB9KQorICAgIH07CisgICAgCisgICAgU2VhcmNoRGF0YSBTVVBQTEVNRU5UQVJZQ0FOT05JQ0FMW10gPSB7CisgICAgICAgIC8qMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5ICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhYmMgXHVEODAwXHVEQzAwIFx1RDgwMFx1REMwMSBcdUQ4MDFcdURDMDAgXHVEODAwXHVEQzAwYWJjIGFiY1x1RDgwMFx1REMwMCBcdUQ4MDBcdUQ4MDBcdURDMDAgXHVEODAwXHVEQzAwXHVEQzAwIiwgCisgICAgICAgICAgICAgICAgICAgICAgICJcdUQ4MDBcdURDMDAiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHs0LCAxMywgMjIsIDI2LCAyOSwgLTF9LCAKKyAgICAgICAgICAgICAgICAgICAgICAgbmV3IGludFtdIHsyLCAyLCAyLCAyLCAyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKG51bGwsIG51bGwsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSkKKyAgICB9OworICAgIAorICAgIHN0YXRpYyBTZWFyY2hEYXRhIFZBUklBQkxFW10gPSB7CisgICAgICAgIC8qMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5Ki8KKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImJsYWNrYmlyZHMgYmxhY2sgYmxhY2tiaXJkcyBibGFja2JpcmQgYmxhY2stYmlyZCIsICJibGFja2JpcmQiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgICBudWxsLCAKKyAgICAgICAgbmV3IGludFtdIHswLCAxNywgMjgsIDM4LCAtMX0sIG5ldyBpbnRbXSB7OSwgOSwgOSwgMTB9KSwKKyAgICAgICAgCisgICAgICAgIC8qIHRvIHNlZSB0aGF0IGl0IGRvZXNuJ3QgZ28gaW50byBhbiBpbmZpbml0ZSBsb29wIGlmIHRoZSBzdGFydCBvZiB0ZXh0CisgICAgICAgIGlzIGEgaWdub3JhYmxlIGNoYXJhY3RlciAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiIG9uIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImdvIiwgICAgICAgIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCAgIG51bGwsIAorICAgICAgICAgICAgICAgICAgICAgICBuZXcgaW50W10gey0xfSwgbmV3IGludFtdezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiwgICAgICAgICAgICAgICAgICAgICAgICIgICAiLCAgICAgICBudWxsLCBDb2xsYXRvci5QUklNQVJZLCAgICBudWxsLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBpbnRbXXswLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgLTF9LCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBpbnRbXSB7MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMH0pLAorICAgICAgICAKKyAgICAgICAgLyogdGVzdGluZyB0aWdodGVzdCBtYXRjaCAqLyAKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIiBhYmMgIGEgYmMgICBhYiBjICAgIGEgIGJjICAgICBhYiAgYyIsICAgICAgICAgICAgICJhYmMiLCAgICAgICBudWxsLCBDb2xsYXRvci5RVUFURVJOQVJZLCBudWxsLCAKKyAgICAgICAgICAgICAgICAgICAgICAgbmV3IGludFtdezEsIC0xfSwgbmV3IGludFtdIHszfSksCisgICAgICAgIC8qMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5ICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCIgYWJjICBhIGJjICAgYWIgYyAgICBhICBiYyAgICAgYWIgIGMiLCAgICAgICAgICAgICAiYWJjIiwgICAgICAgbnVsbCwgQ29sbGF0b3IuU0VDT05EQVJZLCAgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgbmV3IGludFtdIHsxLCA2LCAxMywgMjEsIDMxLCAtMX0sIG5ldyBpbnRbXSB7MywgNCwgNCwgNSwgNX0pLAorICAgIAorICAgICAgICAvKiB0b3RhbGx5IGlnbm9yYWJsZSB0ZXh0ICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCIgICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLSIsICAgICAgICAgICAgICAgICAgICAgICAiYWJjIiwgICAgICAgbnVsbCwgQ29sbGF0b3IuU0VDT05EQVJZLCAgbnVsbCwgCisgICAgICAgICAgICAgICAgICAgICAgIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KQorICAgIH07CisgICAgCisgICAgc3RhdGljIFNlYXJjaERhdGEgVEVYVENBTk9OSUNBTFtdID0geworICAgICAgICBuZXcgU2VhcmNoRGF0YSgidGhlIGZveHkgYnJvd24gZm94IiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZveCIsICAgICAgIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCAgIG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgIG5ldyBpbnRbXSB7NCwgMTUsIC0xfSwgbmV3IGludFtdIHszLCAzfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJ0aGUgcXVpY2sgYnJvd24gZm94IiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm94IiwgICAgICAgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksICAgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgbmV3IGludFtdIHsxNiwgLTF9LCBuZXcgaW50W117M30pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSxudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSkKKyAgICB9OworICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yCisgICAgICovCisgICAgcHVibGljIFNlYXJjaFRlc3QoKQorICAgIHsKKyAgICAgICAgbV9lbl91c18gPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsgCisgICAgICAgIG1fZnJfZnJfID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5GUkFOQ0UpOworICAgICAgICBtX2RlXyA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJkZSIsICJERSIpKTsKKyAgICAgICAgbV9lc18gPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiZXMiLCAiRVMiKSk7IAorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFN0cmluZyBydWxlcyA9IG1fZGVfLmdldFJ1bGVzKCkgKyBFWFRSQUNPTExBVElPTlJVTEU7CisgICAgICAgICAgICBtX2RlXyA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlcyk7CisgICAgICAgICAgICBydWxlcyA9IG1fZXNfLmdldFJ1bGVzKCkgKyBFWFRSQUNPTExBVElPTlJVTEU7CisgICAgICAgICAgICBtX2VzXyA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlcyk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IgY3JlYXRpbmcgbW9kaWZpZWQgR2VybWFuIGFuZCBTcGFuaXNoIGNvbGxhdG9ycyIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgU2VhcmNoVGVzdCgpLnJ1bihhcmdzKTsKKyAgICAgICAgLy8gbmV3IFNlYXJjaFRlc3QoKS5UZXN0Q29udHJhY3Rpb24oKTsKKyAgICB9CisgICAgCisgICAgUnVsZUJhc2VkQ29sbGF0b3IgZ2V0Q29sbGF0b3IoU3RyaW5nIGNvbGxhdG9yKSB7CisgICAgICAgIGlmIChjb2xsYXRvciA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbV9lbl91c187CisgICAgICAgIH0gaWYgKGNvbGxhdG9yLmVxdWFscygiZnIiKSkgeworICAgICAgICAgICAgcmV0dXJuIG1fZnJfZnJfOworICAgICAgICB9IGVsc2UgaWYgKGNvbGxhdG9yLmVxdWFscygiZGUiKSkgeworICAgICAgICAgICAgcmV0dXJuIG1fZGVfOworICAgICAgICB9IGVsc2UgaWYgKGNvbGxhdG9yLmVxdWFscygiZXMiKSkgeworICAgICAgICAgICAgcmV0dXJuIG1fZXNfOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIG1fZW5fdXNfOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIEJyZWFrSXRlcmF0b3IgZ2V0QnJlYWtJdGVyYXRvcihTdHJpbmcgYnJlYWtlcikgeworICAgICAgICBpZiAoYnJlYWtlciA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfSBpZiAoYnJlYWtlci5lcXVhbHMoIndvcmRicmVha2VyIikpIHsKKyAgICAgICAgICAgIHJldHVybiBtX2VuX3dvcmRicmVha2VyXzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBtX2VuX2NoYXJhY3RlcmJyZWFrZXJfOworICAgICAgICB9CisgICAgfQorCisgICAgYm9vbGVhbiBhc3NlcnRDYW5vbmljYWxFcXVhbChTZWFyY2hEYXRhIHNlYXJjaCkgeworICAgICAgICBDb2xsYXRvciAgICAgIGNvbGxhdG9yID0gZ2V0Q29sbGF0b3Ioc2VhcmNoLmNvbGxhdG9yKTsKKyAgICAgICAgQnJlYWtJdGVyYXRvciBicmVha2VyICA9IGdldEJyZWFrSXRlcmF0b3Ioc2VhcmNoLmJyZWFrZXIpOworICAgICAgICBTdHJpbmdTZWFyY2ggIHN0cnNyY2g7IAorICAgICAgICAKKyAgICAgICAgU3RyaW5nIHRleHQgPSBzZWFyY2gudGV4dDsKKyAgICAgICAgU3RyaW5nICBwYXR0ZXJuID0gc2VhcmNoLnBhdHRlcm47CisgICAgCisgICAgICAgIGlmIChicmVha2VyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGJyZWFrZXIuc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgfQorICAgICAgICBjb2xsYXRvci5zZXRTdHJlbmd0aChzZWFyY2guc3RyZW5ndGgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgc3Ryc3JjaCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCAoUnVsZUJhc2VkQ29sbGF0b3IpY29sbGF0b3IsIGJyZWFrZXIpOworICAgICAgICAgICAgc3Ryc3JjaC5zZXRDYW5vbmljYWwodHJ1ZSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igb3BlbmluZyBzdHJpbmcgc2VhcmNoIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfSAgIAorICAgICAgICAKKyAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgc2VhcmNoKSkgeworICAgICAgICAgICAgY29sbGF0b3Iuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGNvbGxhdG9yLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIGJvb2xlYW4gYXNzZXJ0RXF1YWwoU2VhcmNoRGF0YSBzZWFyY2gpIHsKKyAgICAgICAgQ29sbGF0b3IgICAgICBjb2xsYXRvciA9IGdldENvbGxhdG9yKHNlYXJjaC5jb2xsYXRvcik7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgYnJlYWtlciAgPSBnZXRCcmVha0l0ZXJhdG9yKHNlYXJjaC5icmVha2VyKTsKKyAgICAgICAgU3RyaW5nU2VhcmNoICBzdHJzcmNoOyAKKyAgICAgICAgCisgICAgICAgIFN0cmluZyB0ZXh0ID0gc2VhcmNoLnRleHQ7CisgICAgICAgIFN0cmluZyAgcGF0dGVybiA9IHNlYXJjaC5wYXR0ZXJuOworICAgIAorICAgICAgICBpZiAoYnJlYWtlciAhPSBudWxsKSB7CisgICAgICAgICAgICBicmVha2VyLnNldFRleHQodGV4dCk7CisgICAgICAgIH0KKyAgICAgICAgY29sbGF0b3Iuc2V0U3RyZW5ndGgoc2VhcmNoLnN0cmVuZ3RoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHN0cnNyY2ggPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSwgKFJ1bGVCYXNlZENvbGxhdG9yKWNvbGxhdG9yLCBicmVha2VyKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBvcGVuaW5nIHN0cmluZyBzZWFyY2ggIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgc2VhcmNoKSkgeworICAgICAgICAgICAgY29sbGF0b3Iuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGNvbGxhdG9yLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIGJvb2xlYW4gYXNzZXJ0RXF1YWxXaXRoQXR0cmlidXRlKFNlYXJjaERhdGEgc2VhcmNoLCBib29sZWFuIGNhbm9uaWNhbCwgYm9vbGVhbiBvdmVybGFwKSB7CisgICAgICAgIENvbGxhdG9yICAgICAgY29sbGF0b3IgPSBnZXRDb2xsYXRvcihzZWFyY2guY29sbGF0b3IpOworICAgICAgICBCcmVha0l0ZXJhdG9yIGJyZWFrZXIgID0gZ2V0QnJlYWtJdGVyYXRvcihzZWFyY2guYnJlYWtlcik7CisgICAgICAgIFN0cmluZ1NlYXJjaCAgc3Ryc3JjaDsgCisgICAgICAgIAorICAgICAgICBTdHJpbmcgdGV4dCA9IHNlYXJjaC50ZXh0OworICAgICAgICBTdHJpbmcgIHBhdHRlcm4gPSBzZWFyY2gucGF0dGVybjsKKyAgICAKKyAgICAgICAgaWYgKGJyZWFrZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgYnJlYWtlci5zZXRUZXh0KHRleHQpOworICAgICAgICB9CisgICAgICAgIGNvbGxhdG9yLnNldFN0cmVuZ3RoKHNlYXJjaC5zdHJlbmd0aCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzdHJzcmNoID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGV4dCksIChSdWxlQmFzZWRDb2xsYXRvciljb2xsYXRvciwgYnJlYWtlcik7CisgICAgICAgICAgICBzdHJzcmNoLnNldENhbm9uaWNhbChjYW5vbmljYWwpOworICAgICAgICAgICAgc3Ryc3JjaC5zZXRPdmVybGFwcGluZyhvdmVybGFwKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBvcGVuaW5nIHN0cmluZyBzZWFyY2ggIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgc2VhcmNoKSkgeworICAgICAgICAgICAgY29sbGF0b3Iuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGNvbGxhdG9yLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIGJvb2xlYW4gYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKFN0cmluZ1NlYXJjaCBzdHJzcmNoLCBTZWFyY2hEYXRhIHNlYXJjaCkgeworICAgICAgICBpbnQgICAgICAgICAgIGNvdW50ICAgICAgID0gMDsKKyAgICAgICAgaW50ICAgbWF0Y2hpbmRleCAgPSBzZWFyY2gub2Zmc2V0W2NvdW50XTsKKyAgICAgICAgU3RyaW5nIG1hdGNodGV4dDsKKyAgICAgICAgCisgICAgICAgIGlmIChzdHJzcmNoLmdldE1hdGNoU3RhcnQoKSAhPSBTZWFyY2hJdGVyYXRvci5ET05FIHx8CisgICAgICAgICAgICBzdHJzcmNoLmdldE1hdGNoTGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHdpdGggdGhlIGluaXRpYWxpemF0aW9uIG9mIG1hdGNoIHN0YXJ0IGFuZCBsZW5ndGgiKTsKKyAgICAgICAgfQorICAgICAgICAvLyBzdGFydCBvZiBmb2xsb3dpbmcgbWF0Y2hlcyAKKyAgICAgICAgd2hpbGUgKG1hdGNoaW5kZXggPj0gMCkgeworICAgICAgICAgICAgaW50IG1hdGNobGVuZ3RoID0gc2VhcmNoLnNpemVbY291bnRdOworICAgICAgICAgICAgc3Ryc3JjaC5uZXh0KCk7CisgICAgICAgICAgICAvL2ludCB4ID0gc3Ryc3JjaC5nZXRNYXRjaFN0YXJ0KCk7CisgICAgICAgICAgICBpZiAobWF0Y2hpbmRleCAhPSBzdHJzcmNoLmdldE1hdGNoU3RhcnQoKSB8fCAKKyAgICAgICAgICAgICAgICBtYXRjaGxlbmd0aCAhPSBzdHJzcmNoLmdldE1hdGNoTGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiVGV4dDogIiArIHNlYXJjaC50ZXh0KTsKKyAgICAgICAgICAgICAgICBlcnJsbigiUGF0dGVybjogIiArIHN0cnNyY2guZ2V0UGF0dGVybigpKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgZm9sbG93aW5nIG1hdGNoIGZvdW5kIGF0ICIgKyBzdHJzcmNoLmdldE1hdGNoU3RhcnQoKSArICIsICIgKyBzdHJzcmNoLmdldE1hdGNoTGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICAgICAgCisgICAgICAgICAgICBtYXRjaHRleHQgPSBzdHJzcmNoLmdldE1hdGNoZWRUZXh0KCk7CisgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0VGV4dCA9IHNlYXJjaC50ZXh0OworICAgICAgICAgICAgaWYgKG1hdGNobGVuZ3RoID4gMCAmJgorICAgICAgICAgICAgICAgIHRhcmdldFRleHQuc3Vic3RyaW5nKG1hdGNoaW5kZXgsIG1hdGNoaW5kZXggKyBtYXRjaGxlbmd0aCkuY29tcGFyZVRvKG1hdGNodGV4dCkgIT0gMCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBnZXR0aW5nIGZvbGxvd2luZyBtYXRjaGVkIHRleHQiKTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIG1hdGNoaW5kZXggPSBzZWFyY2gub2Zmc2V0W2NvdW50XTsKKyAgICAgICAgfQorICAgICAgICBzdHJzcmNoLm5leHQoKTsKKyAgICAgICAgaWYgKHN0cnNyY2guZ2V0TWF0Y2hTdGFydCgpICE9IFNlYXJjaEl0ZXJhdG9yLkRPTkUgfHwKKyAgICAgICAgICAgIHN0cnNyY2guZ2V0TWF0Y2hMZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlRleHQ6ICIgKyBzZWFyY2gudGV4dCk7CisgICAgICAgICAgICAgICAgZXJybG4oIlBhdHRlcm46ICIgKyBzdHJzcmNoLmdldFBhdHRlcm4oKSk7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGZvbGxvd2luZyBtYXRjaCBmb3VuZCBhdCAiICsgc3Ryc3JjaC5nZXRNYXRjaFN0YXJ0KCkgKyAiLCAiICsgc3Ryc3JjaC5nZXRNYXRjaExlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgLy8gc3RhcnQgb2YgcHJlY2VkaW5nIG1hdGNoZXMgCisgICAgICAgIGNvdW50ID0gY291bnQgPT0gMCA/IDAgOiBjb3VudCAtIDE7CisgICAgICAgIG1hdGNoaW5kZXggPSBzZWFyY2gub2Zmc2V0W2NvdW50XTsKKyAgICAgICAgd2hpbGUgKG1hdGNoaW5kZXggPj0gMCkgeworICAgICAgICAgICAgaW50IG1hdGNobGVuZ3RoID0gc2VhcmNoLnNpemVbY291bnRdOworICAgICAgICAgICAgc3Ryc3JjaC5wcmV2aW91cygpOworICAgICAgICAgICAgaWYgKG1hdGNoaW5kZXggIT0gc3Ryc3JjaC5nZXRNYXRjaFN0YXJ0KCkgfHwgCisgICAgICAgICAgICAgICAgbWF0Y2hsZW5ndGggIT0gc3Ryc3JjaC5nZXRNYXRjaExlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlRleHQ6ICIgKyBzZWFyY2gudGV4dCk7CisgICAgICAgICAgICAgICAgZXJybG4oIlBhdHRlcm46ICIgKyBzdHJzcmNoLmdldFBhdHRlcm4oKSk7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGZvbGxvd2luZyBtYXRjaCBmb3VuZCBhdCAiICsgc3Ryc3JjaC5nZXRNYXRjaFN0YXJ0KCkgKyAiLCAiICsgc3Ryc3JjaC5nZXRNYXRjaExlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1hdGNodGV4dCA9IHN0cnNyY2guZ2V0TWF0Y2hlZFRleHQoKTsKKyAgICAgICAgICAgIFN0cmluZyB0YXJnZXRUZXh0ID0gc2VhcmNoLnRleHQ7CisgICAgICAgICAgICBpZiAobWF0Y2hsZW5ndGggPiAwICYmIAorICAgICAgICAgICAgICAgIHRhcmdldFRleHQuc3Vic3RyaW5nKG1hdGNoaW5kZXgsIG1hdGNoaW5kZXggKyBtYXRjaGxlbmd0aCkuY29tcGFyZVRvKG1hdGNodGV4dCkgIT0gMCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBnZXR0aW5nIGZvbGxvd2luZyBtYXRjaGVkIHRleHQiKTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIG1hdGNoaW5kZXggPSBjb3VudCA+IDAgPyBzZWFyY2gub2Zmc2V0W2NvdW50IC0gMV0gOiAtMTsKKyAgICAgICAgICAgIGNvdW50IC0tOworICAgICAgICB9CisgICAgICAgIHN0cnNyY2gucHJldmlvdXMoKTsKKyAgICAgICAgaWYgKHN0cnNyY2guZ2V0TWF0Y2hTdGFydCgpICE9IFNlYXJjaEl0ZXJhdG9yLkRPTkUgfHwKKyAgICAgICAgICAgIHN0cnNyY2guZ2V0TWF0Y2hMZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlRleHQ6ICIgKyBzZWFyY2gudGV4dCk7CisgICAgICAgICAgICAgICAgZXJybG4oIlBhdHRlcm46ICIgKyBzdHJzcmNoLmdldFBhdHRlcm4oKSk7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGZvbGxvd2luZyBtYXRjaCBmb3VuZCBhdCAiICsgc3Ryc3JjaC5nZXRNYXRjaFN0YXJ0KCkgKyAiLCAiICsgc3Ryc3JjaC5nZXRNYXRjaExlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RCYXNpYygpIHsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKEJBU0lDW2NvdW50XS50ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0RXF1YWwoQkFTSUNbY291bnRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCB0ZXN0IG51bWJlciAiICsgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEJyZWFrSXRlcmF0b3IoKSB7CisgICAgICAgIAorICAgICAgICBTdHJpbmcgdGV4dCA9IEJSRUFLSVRFUkFUT1JFWEFDVFswXS50ZXh0OworICAgICAgICBTdHJpbmcgcGF0dGVybiA9IEJSRUFLSVRFUkFUT1JFWEFDVFswXS5wYXR0ZXJuOworICAgICAgICBTdHJpbmdTZWFyY2ggc3Ryc3JjaCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzdHJzcmNoID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGV4dCksIG1fZW5fdXNfLCBudWxsKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBvcGVuaW5nIHN0cmluZyBzZWFyY2giKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc3Ryc3JjaC5zZXRCcmVha0l0ZXJhdG9yKG51bGwpOworICAgICAgICBpZiAoc3Ryc3JjaC5nZXRCcmVha0l0ZXJhdG9yKCkgIT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHVzZWFyY2hfZ2V0QnJlYWtJdGVyYXRvciByZXR1cm5lZCB3cm9uZyBvYmplY3QiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc3Ryc3JjaC5zZXRCcmVha0l0ZXJhdG9yKG1fZW5fY2hhcmFjdGVyYnJlYWtlcl8pOworICAgICAgICBpZiAoIXN0cnNyY2guZ2V0QnJlYWtJdGVyYXRvcigpLmVxdWFscyhtX2VuX2NoYXJhY3RlcmJyZWFrZXJfKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHVzZWFyY2hfZ2V0QnJlYWtJdGVyYXRvciByZXR1cm5lZCB3cm9uZyBvYmplY3QiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc3Ryc3JjaC5zZXRCcmVha0l0ZXJhdG9yKG1fZW5fd29yZGJyZWFrZXJfKTsKKyAgICAgICAgaWYgKCFzdHJzcmNoLmdldEJyZWFrSXRlcmF0b3IoKS5lcXVhbHMobV9lbl93b3JkYnJlYWtlcl8pKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IgdXNlYXJjaF9nZXRCcmVha0l0ZXJhdG9yIHJldHVybmVkIHdyb25nIG9iamVjdCIpOworICAgICAgICB9CisgICAgCisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChjb3VudCA8IDQpIHsKKyAgICAgICAgICAgIC8vIHNwZWNpYWwgcHVycG9zZXMgZm9yIHRlc3RzIG51bWJlcnMgMC0zCisgICAgICAgICAgICBTZWFyY2hEYXRhICAgICAgICBzZWFyY2ggICA9IEJSRUFLSVRFUkFUT1JFWEFDVFtjb3VudF07ICAgICAKKyAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yID0gZ2V0Q29sbGF0b3Ioc2VhcmNoLmNvbGxhdG9yKTsKKyAgICAgICAgICAgIEJyZWFrSXRlcmF0b3IgICAgIGJyZWFrZXIgID0gZ2V0QnJlYWtJdGVyYXRvcihzZWFyY2guYnJlYWtlcik7CisgICAgICAgICAgICAgICAgICAvL1N0cmluZ1NlYXJjaCAgICAgIHN0cnNyY2g7IAorICAgICAgICAKKyAgICAgICAgICAgIHRleHQgPSBzZWFyY2gudGV4dDsKKyAgICAgICAgICAgIHBhdHRlcm4gPSBzZWFyY2gucGF0dGVybjsgCisgICAgICAgICAgICBpZiAoYnJlYWtlciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgYnJlYWtlci5zZXRUZXh0KHRleHQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY29sbGF0b3Iuc2V0U3RyZW5ndGgoc2VhcmNoLnN0cmVuZ3RoKTsKKyAgICAgICAgICAgIHN0cnNyY2ggPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSwgY29sbGF0b3IsIGJyZWFrZXIpOworICAgICAgICAgICAgaWYgKHN0cnNyY2guZ2V0QnJlYWtJdGVyYXRvcigpICE9IGJyZWFrZXIpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBicmVhayBpdGVyYXRvciIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgc2VhcmNoKSkgeworICAgICAgICAgICAgICAgIGNvbGxhdG9yLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNlYXJjaCAgID0gQlJFQUtJVEVSQVRPUkVYQUNUW2NvdW50ICsgMV07CisgICAgICAgICAgICBicmVha2VyICA9IGdldEJyZWFrSXRlcmF0b3Ioc2VhcmNoLmJyZWFrZXIpOworICAgICAgICAgICAgaWYgKGJyZWFrZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGJyZWFrZXIuc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN0cnNyY2guc2V0QnJlYWtJdGVyYXRvcihicmVha2VyKTsKKyAgICAgICAgICAgIGlmIChzdHJzcmNoLmdldEJyZWFrSXRlcmF0b3IoKSAhPSBicmVha2VyKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgYnJlYWsgaXRlcmF0b3IiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN0cnNyY2gucmVzZXQoKTsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIHNlYXJjaCkpIHsKKyAgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IHRlc3QgbnVtYmVyICIgKyBjb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCArPSAyOworICAgICAgICB9CisgICAgICAgIGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKEJSRUFLSVRFUkFUT1JFWEFDVFtjb3VudF0udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoIWFzc2VydEVxdWFsKEJSRUFLSVRFUkFUT1JFWEFDVFtjb3VudF0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IHRlc3QgbnVtYmVyICIgKyBjb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0QnJlYWtJdGVyYXRvckNhbm9uaWNhbCgpIHsKKyAgICAgICAgaW50ICAgICAgICBjb3VudCAgPSAwOworICAgICAgICB3aGlsZSAoY291bnQgPCA0KSB7CisgICAgICAgICAgICAvLyBzcGVjaWFsIHB1cnBvc2VzIGZvciB0ZXN0cyBudW1iZXJzIDAtMworICAgICAgICAgICAgU2VhcmNoRGF0YSAgICAgc2VhcmNoICAgPSBCUkVBS0lURVJBVE9SQ0FOT05JQ0FMW2NvdW50XTsgICAgIAorICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyB0ZXh0ID0gc2VhcmNoLnRleHQ7CisgICAgICAgICAgICBTdHJpbmcgcGF0dGVybiA9IHNlYXJjaC5wYXR0ZXJuOworICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IgPSBnZXRDb2xsYXRvcihzZWFyY2guY29sbGF0b3IpOworICAgICAgICAgICAgY29sbGF0b3Iuc2V0U3RyZW5ndGgoc2VhcmNoLnN0cmVuZ3RoKTsKKyAgICAKKyAgICAgICAgICAgIEJyZWFrSXRlcmF0b3IgYnJlYWtlciA9IGdldEJyZWFrSXRlcmF0b3Ioc2VhcmNoLmJyZWFrZXIpOworICAgICAgICAgICAgU3RyaW5nU2VhcmNoICBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgc3Ryc3JjaCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCBjb2xsYXRvciwgYnJlYWtlcik7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBjcmVhdGluZyBzdHJpbmcgc2VhcmNoIGRhdGEiKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdHJzcmNoLnNldENhbm9uaWNhbCh0cnVlKTsKKyAgICAgICAgICAgIGlmICghc3Ryc3JjaC5nZXRCcmVha0l0ZXJhdG9yKCkuZXF1YWxzKGJyZWFrZXIpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgYnJlYWsgaXRlcmF0b3IiKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBzZWFyY2gpKSB7CisgICAgICAgICAgICAgICAgY29sbGF0b3Iuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNlYXJjaCAgPSBCUkVBS0lURVJBVE9SRVhBQ1RbY291bnQgKyAxXTsKKyAgICAgICAgICAgIGJyZWFrZXIgPSBnZXRCcmVha0l0ZXJhdG9yKHNlYXJjaC5icmVha2VyKTsKKyAgICAgICAgICAgIGJyZWFrZXIuc2V0VGV4dChzdHJzcmNoLmdldFRhcmdldCgpKTsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0QnJlYWtJdGVyYXRvcihicmVha2VyKTsKKyAgICAgICAgICAgIGlmICghc3Ryc3JjaC5nZXRCcmVha0l0ZXJhdG9yKCkuZXF1YWxzKGJyZWFrZXIpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgYnJlYWsgaXRlcmF0b3IiKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdHJzcmNoLnJlc2V0KCk7CisgICAgICAgICAgICBzdHJzcmNoLnNldENhbm9uaWNhbCh0cnVlKTsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIHNlYXJjaCkpIHsKKyAgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IHRlc3QgbnVtYmVyICIgKyBjb3VudCk7CisgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ICs9IDI7CisgICAgICAgIH0KKyAgICAgICAgY291bnQgPSAwOworICAgICAgICB3aGlsZSAoQlJFQUtJVEVSQVRPUkNBTk9OSUNBTFtjb3VudF0udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICAgaWYgKCFhc3NlcnRFcXVhbChCUkVBS0lURVJBVE9SQ0FOT05JQ0FMW2NvdW50XSkpIHsKKyAgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IHRlc3QgbnVtYmVyICIgKyBjb3VudCk7CisgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2Fub25pY2FsKCkgeworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICB3aGlsZSAoQkFTSUNDQU5PTklDQUxbY291bnRdLnRleHQgIT0gbnVsbCkgeworICAgICAgICAJaWYgKCFhc3NlcnRDYW5vbmljYWxFcXVhbChCQVNJQ0NBTk9OSUNBTFtjb3VudF0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IHRlc3QgbnVtYmVyICIgKyBjb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29sbGF0b3IoKSB7CisgICAgICAgIC8vIHRlc3QgY29sbGF0b3IgdGhhdCB0aGlua3MgIm8iIGFuZCAicCIgYXJlIHRoZSBzYW1lIHRoaW5nCisgICAgICAgIFN0cmluZyB0ZXh0ID0gQ09MTEFUT1JbMF0udGV4dDsKKyAgICAgICAgU3RyaW5nIHBhdHRlcm4gID0gQ09MTEFUT1JbMF0ucGF0dGVybjsKKyAgICAgICAgU3RyaW5nU2VhcmNoIHN0cnNyY2ggPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgc3Ryc3JjaCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCBtX2VuX3VzXywgbnVsbCk7ICAgIAorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIG9wZW5pbmcgc3RyaW5nIHNlYXJjaCAiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBDT0xMQVRPUlswXSkpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgcnVsZXMgPSBURVNUQ09MTEFUT1JSVUxFOworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciB0YWlsb3JlZCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB0YWlsb3JlZCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlcyk7CisgICAgICAgICAgICB0YWlsb3JlZC5zZXRTdHJlbmd0aChDT0xMQVRPUlsxXS5zdHJlbmd0aCk7IAorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIG9wZW5pbmcgcnVsZSBiYXNlZCBjb2xsYXRvciAiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICBzdHJzcmNoLnNldENvbGxhdG9yKHRhaWxvcmVkKTsKKyAgICAgICAgaWYgKCFzdHJzcmNoLmdldENvbGxhdG9yKCkuZXF1YWxzKHRhaWxvcmVkKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgcnVsZSBiYXNlZCBjb2xsYXRvciIpOworICAgICAgICB9CisgICAgICAgIHN0cnNyY2gucmVzZXQoKTsKKyAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgQ09MTEFUT1JbMV0pKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0gCisgICAgICAgIHN0cnNyY2guc2V0Q29sbGF0b3IobV9lbl91c18pOworICAgICAgICBzdHJzcmNoLnJlc2V0KCk7CisgICAgICAgIGlmICghc3Ryc3JjaC5nZXRDb2xsYXRvcigpLmVxdWFscyhtX2VuX3VzXykpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIHJ1bGUgYmFzZWQgY29sbGF0b3IiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBDT0xMQVRPUlswXSkpIHsKKyAgICAgICAgICAgZXJybG4oIkVycm9yIHNlYXJjaGluZyBjb2xsYXRvciB0ZXN0Iik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdENvbGxhdG9yQ2Fub25pY2FsKCkgeworICAgICAgICAvKiB0ZXN0IGNvbGxhdG9yIHRoYXQgdGhpbmtzICJvIiBhbmQgInAiIGFyZSB0aGUgc2FtZSB0aGluZyAqLworICAgICAgICBTdHJpbmcgdGV4dCA9IENPTExBVE9SQ0FOT05JQ0FMWzBdLnRleHQ7CisgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gQ09MTEFUT1JDQU5PTklDQUxbMF0ucGF0dGVybjsKKyAgICAKKyAgICAgICAgU3RyaW5nU2VhcmNoIHN0cnNyY2ggPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgc3Ryc3JjaCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCBtX2VuX3VzXywgbnVsbCk7CisgICAgICAgICAgICBzdHJzcmNoLnNldENhbm9uaWNhbCh0cnVlKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBvcGVuaW5nIHN0cmluZyBzZWFyY2ggIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIENPTExBVE9SQ0FOT05JQ0FMWzBdKSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIFN0cmluZyBydWxlcyA9IFRFU1RDT0xMQVRPUlJVTEU7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIHRhaWxvcmVkID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHRhaWxvcmVkID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGVzKTsKKyAgICAgICAgICAgIHRhaWxvcmVkLnNldFN0cmVuZ3RoKENPTExBVE9SQ0FOT05JQ0FMWzFdLnN0cmVuZ3RoKTsKKyAgICAgICAgICAgIHRhaWxvcmVkLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIG9wZW5pbmcgcnVsZSBiYXNlZCBjb2xsYXRvciAiKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBzdHJzcmNoLnNldENvbGxhdG9yKHRhaWxvcmVkKTsKKyAgICAgICAgaWYgKCFzdHJzcmNoLmdldENvbGxhdG9yKCkuZXF1YWxzKHRhaWxvcmVkKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgcnVsZSBiYXNlZCBjb2xsYXRvciIpOworICAgICAgICB9CisgICAgICAgIHN0cnNyY2gucmVzZXQoKTsKKyAgICAgICAgc3Ryc3JjaC5zZXRDYW5vbmljYWwodHJ1ZSk7CisgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIENPTExBVE9SQ0FOT05JQ0FMWzFdKSkgeworICAgICAgICB9CisgICAgICAgIHN0cnNyY2guc2V0Q29sbGF0b3IobV9lbl91c18pOworICAgICAgICBzdHJzcmNoLnJlc2V0KCk7CisgICAgICAgIGlmICghc3Ryc3JjaC5nZXRDb2xsYXRvcigpLmVxdWFscyhtX2VuX3VzXykpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIHJ1bGUgYmFzZWQgY29sbGF0b3IiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBDT0xMQVRPUkNBTk9OSUNBTFswXSkpIHsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcG9zaXRlQm91bmRhcmllcygpIHsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKENPTVBPU0lURUJPVU5EQVJJRVNbY291bnRdLnRleHQgIT0gbnVsbCkgeyAKKyAgICAgICAgICAgIC8vIGxvZ2xuKCJjb21wb3NpdGUgIiArIGNvdW50KTsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0RXF1YWwoQ09NUE9TSVRFQk9VTkRBUklFU1tjb3VudF0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IHRlc3QgbnVtYmVyICIgKyBjb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RDb21wb3NpdGVCb3VuZGFyaWVzQ2Fub25pY2FsKCkgeworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICB3aGlsZSAoQ09NUE9TSVRFQk9VTkRBUklFU0NBTk9OSUNBTFtjb3VudF0udGV4dCAhPSBudWxsKSB7IAorICAgICAgICAgICAgLy8gbG9nbG4oImNvbXBvc2l0ZSAiICsgY291bnQpOworICAgICAgICAgICAgaWYgKCFhc3NlcnRDYW5vbmljYWxFcXVhbChDT01QT1NJVEVCT1VOREFSSUVTQ0FOT05JQ0FMW2NvdW50XSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgYXQgdGVzdCBudW1iZXIgIiArIGNvdW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgIH0gCisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RDb250cmFjdGlvbigpIHsKKyAgICAgICAgU3RyaW5nIHJ1bGVzID0gQ09OVFJBQ1RJT05SVUxFOworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsYXRvciA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlcyk7IAorICAgICAgICAgICAgY29sbGF0b3Iuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgY29sbGF0b3Iuc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igb3BlbmluZyBjb2xsYXRvciAiKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgdGV4dCA9ICJ0ZXh0IjsKKyAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSAicGF0dGVybiI7CisgICAgICAgIFN0cmluZ1NlYXJjaCBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHN0cnNyY2ggPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSwgY29sbGF0b3IsIG51bGwpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIG9wZW5pbmcgc3RyaW5nIHNlYXJjaCAiKTsKKyAgICAgICAgfSAgIAorICAgICAgICAKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKENPTlRSQUNUSU9OW2NvdW50XS50ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRleHQgPSBDT05UUkFDVElPTltjb3VudF0udGV4dDsKKyAgICAgICAgICAgIHBhdHRlcm4gPSBDT05UUkFDVElPTltjb3VudF0ucGF0dGVybjsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0VGFyZ2V0KG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSk7CisgICAgICAgICAgICBzdHJzcmNoLnNldFBhdHRlcm4ocGF0dGVybik7CisgICAgICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBDT05UUkFDVElPTltjb3VudF0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IHRlc3QgbnVtYmVyICIgKyBjb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RDb250cmFjdGlvbkNhbm9uaWNhbCgpIHsKKyAgICAgICAgU3RyaW5nIHJ1bGVzID0gQ09OVFJBQ1RJT05SVUxFOworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsYXRvciA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlcyk7CisgICAgICAgICAgICBjb2xsYXRvci5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgICAgICBjb2xsYXRvci5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBvcGVuaW5nIGNvbGxhdG9yICIpOworICAgICAgICB9CisgICAgICAgIFN0cmluZyB0ZXh0ID0gInRleHQiOworICAgICAgICBTdHJpbmcgcGF0dGVybiA9ICJwYXR0ZXJuIjsKKyAgICAgICAgU3RyaW5nU2VhcmNoIHN0cnNyY2ggPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgc3Ryc3JjaCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCBjb2xsYXRvciwgbnVsbCk7CisgICAgICAgICAgICBzdHJzcmNoLnNldENhbm9uaWNhbCh0cnVlKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBvcGVuaW5nIHN0cmluZyBzZWFyY2giKTsKKyAgICAgICAgfSAgIAorICAgICAgICAKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKENPTlRSQUNUSU9OQ0FOT05JQ0FMW2NvdW50XS50ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRleHQgPSBDT05UUkFDVElPTkNBTk9OSUNBTFtjb3VudF0udGV4dDsKKyAgICAgICAgICAgIHBhdHRlcm4gPSBDT05UUkFDVElPTkNBTk9OSUNBTFtjb3VudF0ucGF0dGVybjsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0VGFyZ2V0KG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSk7CisgICAgICAgICAgICBzdHJzcmNoLnNldFBhdHRlcm4ocGF0dGVybik7CisgICAgICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBDT05UUkFDVElPTkNBTk9OSUNBTFtjb3VudF0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IHRlc3QgbnVtYmVyICIgKyBjb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RHZXRNYXRjaCgpIHsKKyAgICAgICAgU2VhcmNoRGF0YSBzZWFyY2ggPSBNQVRDSFswXTsKKyAgICAgICAgU3RyaW5nIHRleHQgPSBzZWFyY2gudGV4dDsKKyAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSBzZWFyY2gucGF0dGVybjsKKyAgICAKKyAgICAgICAgU3RyaW5nU2VhcmNoIHN0cnNyY2ggPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgc3Ryc3JjaCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCBtX2VuX3VzXywgbnVsbCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igb3BlbmluZyBzdHJpbmcgc2VhcmNoICIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgICAgICAgICAgIGNvdW50ICAgICAgPSAwOworICAgICAgICBpbnQgICBtYXRjaGluZGV4ID0gc2VhcmNoLm9mZnNldFtjb3VudF07CisgICAgICAgIFN0cmluZyBtYXRjaHRleHQ7CisgICAgICAgIHdoaWxlIChtYXRjaGluZGV4ID49IDApIHsKKyAgICAgICAgICAgIGludCBtYXRjaGxlbmd0aCA9IHNlYXJjaC5zaXplW2NvdW50XTsKKyAgICAgICAgICAgIHN0cnNyY2gubmV4dCgpOworICAgICAgICAgICAgaWYgKG1hdGNoaW5kZXggIT0gc3Ryc3JjaC5nZXRNYXRjaFN0YXJ0KCkgfHwgCisgICAgICAgICAgICAgICAgbWF0Y2hsZW5ndGggIT0gc3Ryc3JjaC5nZXRNYXRjaExlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlRleHQ6ICIgKyBzZWFyY2gudGV4dCk7CisgICAgICAgICAgICAgICAgZXJybG4oIlBhdHRlcm46ICIgKyBzdHJzcmNoLmdldFBhdHRlcm4oKSk7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIG1hdGNoIGZvdW5kIGF0ICIgKyBzdHJzcmNoLmdldE1hdGNoU3RhcnQoKSArICIsICIgKyBzdHJzcmNoLmdldE1hdGNoTGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1hdGNodGV4dCA9IHN0cnNyY2guZ2V0TWF0Y2hlZFRleHQoKTsKKyAgICAgICAgICAgIGlmIChtYXRjaHRleHQubGVuZ3RoKCkgIT0gbWF0Y2hsZW5ndGgpeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBnZXR0aW5nIG1hdGNoIHRleHQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1hdGNoaW5kZXggPSBzZWFyY2gub2Zmc2V0W2NvdW50XTsKKyAgICAgICAgfQorICAgICAgICBzdHJzcmNoLm5leHQoKTsKKyAgICAgICAgaWYgKHN0cnNyY2guZ2V0TWF0Y2hTdGFydCgpICAhPSBTdHJpbmdTZWFyY2guRE9ORSB8fCAKKyAgICAgICAgICAgIHN0cnNyY2guZ2V0TWF0Y2hMZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IgZW5kIG9mIG1hdGNoIG5vdCBmb3VuZCIpOworICAgICAgICB9CisgICAgICAgIG1hdGNodGV4dCA9IHN0cnNyY2guZ2V0TWF0Y2hlZFRleHQoKTsKKyAgICAgICAgaWYgKG1hdGNodGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IgZ2V0dGluZyBudWxsIG1hdGNoZXMiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0R2V0U2V0QXR0cmlidXRlKCkgeworICAgICAgICBTdHJpbmcgIHBhdHRlcm4gPSAicGF0dGVybiI7CisgICAgICAgIFN0cmluZyAgdGV4dCA9ICJ0ZXh0IjsKKyAgICAgICAgU3RyaW5nU2VhcmNoICBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHN0cnNyY2ggPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSwgbV9lbl91c18sIG51bGwpOyAKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBvcGVuaW5nIHNlYXJjaCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIGlmIChzdHJzcmNoLmlzT3ZlcmxhcHBpbmcoKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIGRlZmF1bHQgb3ZlcmxhcGluZyBzaG91bGQgYmUgZmFsc2UiKTsKKyAgICAgICAgfQorICAgICAgICBzdHJzcmNoLnNldE92ZXJsYXBwaW5nKHRydWUpOworICAgICAgICBpZiAoIXN0cnNyY2guaXNPdmVybGFwcGluZygpKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBvdmVybGFwIHRydWUiKTsKKyAgICAgICAgfQorICAgICAgICBzdHJzcmNoLnNldE92ZXJsYXBwaW5nKGZhbHNlKTsKKyAgICAgICAgaWYgKHN0cnNyY2guaXNPdmVybGFwcGluZygpKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBvdmVybGFwIGZhbHNlIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHN0cnNyY2guc2V0Q2Fub25pY2FsKHRydWUpOworICAgICAgICBpZiAoIXN0cnNyY2guaXNDYW5vbmljYWwoKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgY2Fub25pY2FsIG1hdGNoIHRydWUiKTsKKyAgICAgICAgfQorICAgICAgICBzdHJzcmNoLnNldENhbm9uaWNhbChmYWxzZSk7CisgICAgICAgIGlmIChzdHJzcmNoLmlzQ2Fub25pY2FsKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIGNhbm9uaWNhbCBtYXRjaCBmYWxzZSIpOworICAgICAgICB9CisgICAgICAgIAorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0R2V0U2V0T2Zmc2V0KCkgeworICAgICAgICBTdHJpbmcgIHBhdHRlcm4gPSAiMTIzNDU2Nzg5MDEyMzQ1NiI7CisgICAgICAgIFN0cmluZyAgdGV4dCAgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIiOworICAgICAgICBTdHJpbmdTZWFyY2ggIHN0cnNyY2ggPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgc3Ryc3JjaCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCBtX2VuX3VzXywgbnVsbCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igb3BlbmluZyBzZWFyY2giKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKiB0ZXN0aW5nIG91dCBvZiBib3VuZHMgZXJyb3IgKi8KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0SW5kZXgoLTEpOworICAgICAgICAgICAgZXJybG4oIkVycm9yIGV4cGVjdGluZyBzZXQgb2Zmc2V0IGVycm9yIik7CisgICAgICAgIH0gY2F0Y2ggKEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gZSkge30KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzdHJzcmNoLnNldEluZGV4KDEyOCk7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IgZXhwZWN0aW5nIHNldCBvZmZzZXQgZXJyb3IiKTsKKyAgICAgICAgfSBjYXRjaCAoSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKSB7fQorICAgICAgICAKKyAgICAgICAgaW50IGluZGV4ICAgPSAwOworICAgICAgICB3aGlsZSAoQkFTSUNbaW5kZXhdLnRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgU2VhcmNoRGF0YSAgc2VhcmNoICAgICAgPSBCQVNJQ1tpbmRleCArK107CisgICAgICAgIAorICAgICAgICAgICAgdGV4dCA9c2VhcmNoLnRleHQ7CisgICAgICAgICAgICBwYXR0ZXJuID0gc2VhcmNoLnBhdHRlcm47CisgICAgICAgICAgICBzdHJzcmNoLnNldFRhcmdldChuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGV4dCkpOworICAgICAgICAgICAgc3Ryc3JjaC5zZXRQYXR0ZXJuKHBhdHRlcm4pOworICAgICAgICAgICAgc3Ryc3JjaC5nZXRDb2xsYXRvcigpLnNldFN0cmVuZ3RoKHNlYXJjaC5zdHJlbmd0aCk7CisgICAgICAgICAgICBzdHJzcmNoLnJlc2V0KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgICAgICBpbnQgbWF0Y2hpbmRleCAgPSBzZWFyY2gub2Zmc2V0W2NvdW50XTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgd2hpbGUgKG1hdGNoaW5kZXggPj0gMCkgeworICAgICAgICAgICAgICAgIGludCBtYXRjaGxlbmd0aCA9IHNlYXJjaC5zaXplW2NvdW50XTsKKyAgICAgICAgICAgICAgICBzdHJzcmNoLm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAobWF0Y2hpbmRleCAhPSBzdHJzcmNoLmdldE1hdGNoU3RhcnQoKSB8fCAKKyAgICAgICAgICAgICAgICAgICAgbWF0Y2hsZW5ndGggIT0gc3Ryc3JjaC5nZXRNYXRjaExlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJUZXh0OiAiICsgdGV4dCk7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJQYXR0ZXJuOiAiICsgc3Ryc3JjaC5nZXRQYXR0ZXJuKCkpOworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgbWF0Y2ggZm91bmQgYXQgIiArIHN0cnNyY2guZ2V0TWF0Y2hTdGFydCgpICsgIiwgIiArIHN0cnNyY2guZ2V0TWF0Y2hMZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbWF0Y2hpbmRleCA9IHNlYXJjaC5vZmZzZXRbY291bnQgKyAxXSA9PSAtMSA/IC0xIDogCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaC5vZmZzZXRbY291bnQgKyAyXTsKKyAgICAgICAgICAgICAgICBpZiAoc2VhcmNoLm9mZnNldFtjb3VudCArIDFdICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIHN0cnNyY2guc2V0SW5kZXgoc2VhcmNoLm9mZnNldFtjb3VudCArIDFdICsgMSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdHJzcmNoLmdldEluZGV4KCkgIT0gc2VhcmNoLm9mZnNldFtjb3VudCArIDFdICsgMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgb2Zmc2V0XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBjb3VudCArPSAyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3Ryc3JjaC5uZXh0KCk7CisgICAgICAgICAgICBpZiAoc3Ryc3JjaC5nZXRNYXRjaFN0YXJ0KCkgIT0gU3RyaW5nU2VhcmNoLkRPTkUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiVGV4dDogIiArIHRleHQpOworICAgICAgICAgICAgICAgIGVycmxuKCJQYXR0ZXJuOiAiICsgc3Ryc3JjaC5nZXRQYXR0ZXJuKCkpOworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBtYXRjaCBmb3VuZCBhdCAiICsgc3Ryc3JjaC5nZXRNYXRjaFN0YXJ0KCkgKyAiLCAiICsgc3Ryc3JjaC5nZXRNYXRjaExlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgc3Ryc3JjaC5nZXRDb2xsYXRvcigpLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEdldFNldE9mZnNldENhbm9uaWNhbCgpIHsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyAgdGV4dCA9ICJ0ZXh0IjsKKyAgICAgICAgU3RyaW5nICBwYXR0ZXJuID0gInBhdHRlcm4iOworICAgICAgICBTdHJpbmdTZWFyY2ggIHN0cnNyY2ggPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgc3Ryc3JjaCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCBtX2VuX3VzXywgbnVsbCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbCB0byBvcGVuIFN0cmluZ1NlYXJjaCEiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBzdHJzcmNoLnNldENhbm9uaWNhbCh0cnVlKTsKKyAgICAgICAgLyogdGVzdGluZyBvdXQgb2YgYm91bmRzIGVycm9yICovCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzdHJzcmNoLnNldEluZGV4KC0xKTsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBleHBlY3Rpbmcgc2V0IG9mZnNldCBlcnJvciIpOworICAgICAgICB9IGNhdGNoIChJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHt9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzdHJzcmNoLnNldEluZGV4KDEyOCk7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IgZXhwZWN0aW5nIHNldCBvZmZzZXQgZXJyb3IiKTsKKyAgICAgICAgfSBjYXRjaCAoSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKSB7fQorICAgICAgICAKKyAgICAgICAgaW50ICAgaW5kZXggICA9IDA7CisgICAgICAgIHdoaWxlIChCQVNJQ0NBTk9OSUNBTFtpbmRleF0udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBTZWFyY2hEYXRhICBzZWFyY2ggICAgICA9IEJBU0lDQ0FOT05JQ0FMW2luZGV4ICsrXTsKKyAgICAgICAgICAgIGlmIChCQVNJQ0NBTk9OSUNBTFtpbmRleF0udGV4dCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgLy8gc2tpcCB0aGUgbGFzdCBvbmUgCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHRleHQgPSBzZWFyY2gudGV4dDsKKyAgICAgICAgICAgIHBhdHRlcm4gPSBzZWFyY2gucGF0dGVybjsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0VGFyZ2V0KG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSk7CisgICAgICAgICAgICBzdHJzcmNoLnNldFBhdHRlcm4ocGF0dGVybik7CisgICAgICAgICAgICBpbnQgICAgICAgICBjb3VudCAgICAgICA9IDA7CisgICAgICAgICAgICBpbnQgbWF0Y2hpbmRleCAgPSBzZWFyY2gub2Zmc2V0W2NvdW50XTsKKyAgICAgICAgICAgIHdoaWxlIChtYXRjaGluZGV4ID49IDApIHsKKyAgICAgICAgICAgICAgICBpbnQgbWF0Y2hsZW5ndGggPSBzZWFyY2guc2l6ZVtjb3VudF07CisgICAgICAgICAgICAgICAgc3Ryc3JjaC5uZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKG1hdGNoaW5kZXggIT0gc3Ryc3JjaC5nZXRNYXRjaFN0YXJ0KCkgfHwgCisgICAgICAgICAgICAgICAgICAgIG1hdGNobGVuZ3RoICE9IHN0cnNyY2guZ2V0TWF0Y2hMZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiVGV4dDogIiArIHRleHQpOworICAgICAgICAgICAgICAgICAgICBlcnJsbigiUGF0dGVybjogIiArIHN0cnNyY2guZ2V0UGF0dGVybigpKTsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIG1hdGNoIGZvdW5kIGF0ICIgKyBzdHJzcmNoLmdldE1hdGNoU3RhcnQoKSArICIsICIgKyBzdHJzcmNoLmdldE1hdGNoTGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1hdGNoaW5kZXggPSBzZWFyY2gub2Zmc2V0W2NvdW50ICsgMV0gPT0gLTEgPyAtMSA6IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2gub2Zmc2V0W2NvdW50ICsgMl07CisgICAgICAgICAgICAgICAgaWYgKHNlYXJjaC5vZmZzZXRbY291bnQgKyAxXSAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICBzdHJzcmNoLnNldEluZGV4KHNlYXJjaC5vZmZzZXRbY291bnQgKyAxXSArIDEpOworICAgICAgICAgICAgICAgICAgICBpZiAoc3Ryc3JjaC5nZXRJbmRleCgpICE9IHNlYXJjaC5vZmZzZXRbY291bnQgKyAxXSArIDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIG9mZnNldCIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGNvdW50ICs9IDI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdHJzcmNoLm5leHQoKTsKKyAgICAgICAgICAgIGlmIChzdHJzcmNoLmdldE1hdGNoU3RhcnQoKSAhPSBTdHJpbmdTZWFyY2guRE9ORSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJUZXh0OiAiICsgdGV4dCk7CisgICAgICAgICAgICAgICAgZXJybG4oIlBhdHRlcm46ICVzIiArIHN0cnNyY2guZ2V0UGF0dGVybigpKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgbWF0Y2ggZm91bmQgYXQgIiArIHN0cnNyY2guZ2V0TWF0Y2hTdGFydCgpICsgIiwgIiArIHN0cnNyY2guZ2V0TWF0Y2hMZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHN0cnNyY2guZ2V0Q29sbGF0b3IoKS5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RJZ25vcmFibGUoKSB7CisgICAgICAgIFN0cmluZyBydWxlcyA9IElHTk9SQUJMRVJVTEU7CisgICAgICAgIGludCAgICAgICAgY291bnQgID0gMDsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sbGF0b3IgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZXMpOworICAgICAgICAgICAgY29sbGF0b3Iuc2V0U3RyZW5ndGgoSUdOT1JBQkxFW2NvdW50XS5zdHJlbmd0aCk7CisgICAgICAgICAgICBjb2xsYXRvci5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsgIAorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIG9wZW5pbmcgY29sbGF0b3IgIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSAicGF0dGVybiI7CisgICAgICAgIFN0cmluZyB0ZXh0ID0gInRleHQiOworICAgICAgICBTdHJpbmdTZWFyY2ggc3Ryc3JjaCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzdHJzcmNoID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGV4dCksIGNvbGxhdG9yLCBudWxsKTsgCisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igb3BlbmluZyBzdHJpbmcgc2VhcmNoICIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB3aGlsZSAoSUdOT1JBQkxFW2NvdW50XS50ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRleHQgPSBJR05PUkFCTEVbY291bnRdLnRleHQ7CisgICAgICAgICAgICBwYXR0ZXJuID0gSUdOT1JBQkxFW2NvdW50XS5wYXR0ZXJuOworICAgICAgICAgICAgc3Ryc3JjaC5zZXRUYXJnZXQobmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpKTsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0UGF0dGVybihwYXR0ZXJuKTsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIElHTk9SQUJMRVtjb3VudF0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IHRlc3QgbnVtYmVyICIgKyBjb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RJbml0aWFsaXphdGlvbigpIHsKKyAgICAgICAgU3RyaW5nICBwYXR0ZXJuOworICAgICAgICBTdHJpbmcgIHRleHQ7CisgICAgICAgIFN0cmluZyAgdGVtcCA9ICJhIjsKKyAgICAgICAgU3RyaW5nU2VhcmNoICByZXN1bHQ7CisgICAgCisgICAgICAgIC8qIHNpbXBsZSB0ZXN0IG9uIHRoZSBwYXR0ZXJuIGNlIGNvbnN0cnVjdGlvbiAqLworICAgICAgICBwYXR0ZXJuID0gdGVtcCArIHRlbXA7CisgICAgICAgIHRleHQgPSB0ZW1wICsgdGVtcCArIHRlbXA7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSwgbV9lbl91c18sIG51bGwpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIG9wZW5pbmcgc2VhcmNoICIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKiB0ZXN0aW5nIGlmIGFuIGV4dHJlbWVseSBsYXJnZSBwYXR0ZXJuIHdpbGwgZmFpbCB0aGUgaW5pdGlhbGl6YXRpb24gKi8KKyAgICAgICAgcGF0dGVybiA9ICIiOworICAgICAgICBmb3IgKGludCBjb3VudCA9IDA7IGNvdW50IDwgNTEyOyBjb3VudCArKykgeworICAgICAgICAgICAgcGF0dGVybiArPSB0ZW1wOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSwgbV9lbl91c18sIG51bGwpOworICAgICAgICAgICAgbG9nbG4oInBhdHRlcm46IiArIHJlc3VsdC5nZXRQYXR0ZXJuKCkpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWw6IGFuIGV4dHJlbWVseSBsYXJnZSBwYXR0ZXJuIHdpbGwgZmFpbCB0aGUgaW5pdGlhbGl6YXRpb24iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAocmVzdWx0ICE9IHJlc3VsdCkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBzdHJpbmcgc2VhcmNoIG9iamVjdCBleHBlY3RlZCB0byBtYXRjaCBpdHNlbGYiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdE5vcm1DYW5vbmljYWwoKSB7CisgICAgICAgIG1fZW5fdXNfLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICB3aGlsZSAoTk9STUNBTk9OSUNBTFtjb3VudF0udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoIWFzc2VydENhbm9uaWNhbEVxdWFsKE5PUk1DQU5PTklDQUxbY291bnRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCB0ZXN0IG51bWJlciAiICsgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgfQorICAgICAgICBtX2VuX3VzXy5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLk5PX0RFQ09NUE9TSVRJT04pOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Tm9ybUV4YWN0KCkgeworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICBtX2VuX3VzXy5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgd2hpbGUgKEJBU0lDW2NvdW50XS50ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0RXF1YWwoQkFTSUNbY291bnRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCB0ZXN0IG51bWJlciAiICsgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgfQorICAgICAgICBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChOT1JNRVhBQ1RbY291bnRdLnRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKCFhc3NlcnRFcXVhbChOT1JNRVhBQ1RbY291bnRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCB0ZXN0IG51bWJlciAiICsgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgfQorICAgICAgICBtX2VuX3VzXy5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLk5PX0RFQ09NUE9TSVRJT04pOworICAgICAgICBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChOT05OT1JNRVhBQ1RbY291bnRdLnRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKCFhc3NlcnRFcXVhbChOT05OT1JNRVhBQ1RbY291bnRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCB0ZXN0IG51bWJlciAiICsgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0T3BlbkNsb3NlKCkgeworICAgICAgICBTdHJpbmdTZWFyY2ggICAgICAgICAgICByZXN1bHQ7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgICAgICAgICAgIGJyZWFraXRlciA9IG1fZW5fd29yZGJyZWFrZXJfOworICAgICAgICBTdHJpbmcgICAgICAgICAgIHBhdHRlcm4gPSAiIjsKKyAgICAgICAgU3RyaW5nICAgICAgICAgICB0ZXh0ID0gIiI7CisgICAgICAgIFN0cmluZyAgICAgICAgICAgdGVtcCAgPSAiYSI7CisgICAgICAgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yICBjaGFyaXRlcj0gbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpOworICAgIAorICAgICAgICAvKiB0ZXN0aW5nIG51bGwgYXJndW1lbnRzICovCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSwgbnVsbCwgbnVsbCk7CisgICAgICAgICAgICBlcnJsbigiRXJyb3I6IG51bGwgYXJndW1lbnRzIHNob3VsZCBwcm9kdWNlIGFuIGVycm9yIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7fQorICAgIAorICAgICAgICBjaGFyaXRlci5zZXRUZXh0KHRleHQpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBjaGFyaXRlciwgbnVsbCwgbnVsbCk7CisgICAgICAgICAgICBlcnJsbigiRXJyb3I6IG51bGwgYXJndW1lbnRzIHNob3VsZCBwcm9kdWNlIGFuIGVycm9yIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7fQorICAgICAgICAKKyAgICAgICAgdGV4dCAgPSBTdHJpbmcudmFsdWVPZigweDEpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGV4dCksIG51bGwsIG51bGwpOworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBFbXB0eSBwYXR0ZXJuIHNob3VsZCBwcm9kdWNlIGFuIGVycm9yIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgY2hhcml0ZXIuc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgY2hhcml0ZXIsIG51bGwsIG51bGwpOworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBFbXB0eSBwYXR0ZXJuIHNob3VsZCBwcm9kdWNlIGFuIGVycm9yIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7fQorICAgIAorICAgICAgICB0ZXh0ID0gIiI7CisgICAgICAgIHBhdHRlcm4gPXRlbXA7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSwgbnVsbCwgbnVsbCk7CisgICAgICAgICAgICBlcnJsbigiRXJyb3I6IEVtcHR5IHRleHQgc2hvdWxkIHByb2R1Y2UgYW4gZXJyb3IiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHt9CisgICAgICAgIAorICAgICAgICBjaGFyaXRlci5zZXRUZXh0KHRleHQpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBjaGFyaXRlciwgbnVsbCwgbnVsbCk7CisgICAgICAgICAgICBlcnJsbigiRXJyb3I6IEVtcHR5IHRleHQgc2hvdWxkIHByb2R1Y2UgYW4gZXJyb3IiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHt9CisgICAgCisgICAgICAgIHRleHQgKz0gdGVtcDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCBudWxsLCBudWxsKTsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvcjogbnVsbCBhcmd1bWVudHMgc2hvdWxkIHByb2R1Y2UgYW4gZXJyb3IiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHt9CisgICAgCisgICAgICAgIGNoYXJpdGVyLnNldFRleHQodGV4dCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIGNoYXJpdGVyLCBudWxsLCBudWxsKTsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvcjogbnVsbCBhcmd1bWVudHMgc2hvdWxkIHByb2R1Y2UgYW4gZXJyb3IiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHt9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGV4dCksIG1fZW5fdXNfLCBudWxsKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvcjogbnVsbCBicmVhayBpdGVyYXRvciBpcyB2YWxpZCBmb3Igb3BlbmluZyBzZWFyY2giKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBjaGFyaXRlciwgbV9lbl91c18sIG51bGwpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBudWxsIGJyZWFrIGl0ZXJhdG9yIGlzIHZhbGlkIGZvciBvcGVuaW5nIHNlYXJjaCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGV4dCksIExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvcjogbnVsbCBicmVhayBpdGVyYXRvciBpcyB2YWxpZCBmb3Igb3BlbmluZyBzZWFyY2giKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBjaGFyaXRlciwgTG9jYWxlLkVOR0xJU0gpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBudWxsIGJyZWFrIGl0ZXJhdG9yIGlzIHZhbGlkIGZvciBvcGVuaW5nIHNlYXJjaCIpOworICAgICAgICB9CisgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSwgbV9lbl91c18sIGJyZWFraXRlcik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3I6IEJyZWFrIGl0ZXJhdG9yIGlzIHZhbGlkIGZvciBvcGVuaW5nIHNlYXJjaCIpOworICAgICAgICB9CisgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIGNoYXJpdGVyLCBtX2VuX3VzXywgbnVsbCk7CisgICAgICAgICAgICBsb2dsbigicGF0dGVybjoiICsgcmVzdWx0LmdldFBhdHRlcm4oKSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3I6IEJyZWFrIGl0ZXJhdG9yIGlzIHZhbGlkIGZvciBvcGVuaW5nIHNlYXJjaCIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdE92ZXJsYXAoKSB7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChPVkVSTEFQW2NvdW50XS50ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoQXR0cmlidXRlKE9WRVJMQVBbY291bnRdLCBmYWxzZSwgdHJ1ZSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgYXQgb3ZlcmxhcCB0ZXN0IG51bWJlciAiICsgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgfSAgICAKKyAgICAgICAgY291bnQgPSAwOworICAgICAgICB3aGlsZSAoTk9OT1ZFUkxBUFtjb3VudF0udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoIWFzc2VydEVxdWFsKE5PTk9WRVJMQVBbY291bnRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCBub24gb3ZlcmxhcCB0ZXN0IG51bWJlciAiICsgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgfQorICAgIAorICAgICAgICBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChjb3VudCA8IDEpIHsKKyAgICAgICAgICAgIFNlYXJjaERhdGEgc2VhcmNoID0gKE9WRVJMQVBbY291bnRdKTsgICAgIAorICAgICAgICAgICAgU3RyaW5nIHRleHQgPSBzZWFyY2gudGV4dDsKKyAgICAgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gc2VhcmNoLnBhdHRlcm47CisgICAgCisgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciA9IGdldENvbGxhdG9yKHNlYXJjaC5jb2xsYXRvcik7CisgICAgICAgICAgICBTdHJpbmdTZWFyY2ggc3Ryc3JjaCA9IG51bGw7ICAgCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHN0cnNyY2ggID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGV4dCksIGNvbGxhdG9yLCBudWxsKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yIG9wZW4gU3RyaW5nU2VhcmNoIik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBzdHJzcmNoLnNldE92ZXJsYXBwaW5nKHRydWUpOworICAgICAgICAgICAgaWYgKCFzdHJzcmNoLmlzT3ZlcmxhcHBpbmcoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIG92ZXJsYXAgb3B0aW9uIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBzZWFyY2gpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBzZWFyY2ggPSBOT05PVkVSTEFQW2NvdW50XTsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0T3ZlcmxhcHBpbmcoZmFsc2UpOworICAgICAgICAgICAgaWYgKHN0cnNyY2guaXNPdmVybGFwcGluZygpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgb3ZlcmxhcCBvcHRpb24iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN0cnNyY2gucmVzZXQoKTsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIHNlYXJjaCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgYXQgdGVzdCBudW1iZXIgIiArIGNvdW50KTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RPdmVybGFwQ2Fub25pY2FsKCkgeworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICB3aGlsZSAoT1ZFUkxBUENBTk9OSUNBTFtjb3VudF0udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aEF0dHJpYnV0ZShPVkVSTEFQQ0FOT05JQ0FMW2NvdW50XSwgdHJ1ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCBvdmVybGFwIHRlc3QgbnVtYmVyICVkIiArIGNvdW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICB9ICAgIAorICAgICAgICBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChOT05PVkVSTEFQW2NvdW50XS50ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0Q2Fub25pY2FsRXF1YWwoTk9OT1ZFUkxBUENBTk9OSUNBTFtjb3VudF0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IG5vbiBvdmVybGFwIHRlc3QgbnVtYmVyICVkIiArIGNvdW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICB9CisgICAgCisgICAgICAgIGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKGNvdW50IDwgMSkgeworICAgICAgICAgICAgICAgICAvKiBVQ2hhciAgICAgICB0ZW1wWzEyOF07CisgICAgICAgICAgICBjb25zdCBTZWFyY2hEYXRhICpzZWFyY2ggPSAmKE9WRVJMQVBDQU5PTklDQUxbY291bnRdKTsgICAgIAorICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAgc3RhdHVzID0gVV9aRVJPX0VSUk9SOyovCisgICAgICAgICAgICBTZWFyY2hEYXRhIHNlYXJjaCA9IE9WRVJMQVBDQU5PTklDQUxbY291bnRdOworICAgICAgICAKKyAgICAgICAgICAgIC8qdV91bmVzY2FwZShzZWFyY2gudGV4dCwgdGVtcCwgMTI4KTsKKyAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcgdGV4dDsKKyAgICAgICAgICAgIHRleHQuc2V0VG8odGVtcCwgdV9zdHJsZW4odGVtcCkpOworICAgICAgICAgICAgdV91bmVzY2FwZShzZWFyY2gucGF0dGVybiwgdGVtcCwgMTI4KTsKKyAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcgcGF0dGVybjsKKyAgICAgICAgICAgIHBhdHRlcm4uc2V0VG8odGVtcCwgdV9zdHJsZW4odGVtcCkpOyovCisgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciA9IGdldENvbGxhdG9yKHNlYXJjaC5jb2xsYXRvcik7CisgICAgICAgICAgICBTdHJpbmdTZWFyY2ggc3Ryc3JjaCA9IG5ldyBTdHJpbmdTZWFyY2goc2VhcmNoLnBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihzZWFyY2gudGV4dCksIGNvbGxhdG9yLCBudWxsKTsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0Q2Fub25pY2FsKHRydWUpOworICAgICAgICAgICAgc3Ryc3JjaC5zZXRPdmVybGFwcGluZyh0cnVlKTsKKyAgICAgICAgICAgIGlmIChzdHJzcmNoLmlzT3ZlcmxhcHBpbmcoKSAhPSB0cnVlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgb3ZlcmxhcCBvcHRpb24iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIHNlYXJjaCkpIHsKKyAgICAgICAgICAgICAgICBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzZWFyY2ggPSBOT05PVkVSTEFQQ0FOT05JQ0FMW2NvdW50XTsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0T3ZlcmxhcHBpbmcoZmFsc2UpOworICAgICAgICAgICAgaWYgKHN0cnNyY2guaXNPdmVybGFwcGluZygpICE9IGZhbHNlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgb3ZlcmxhcCBvcHRpb24iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN0cnNyY2gucmVzZXQoKTsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIHNlYXJjaCkpIHsKKyAgICAgICAgICAgICAgICBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgYXQgdGVzdCBudW1iZXIgJWQiICsgY291bnQpOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAKKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICAgICAgc3Ryc3JjaCA9IG51bGw7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFBhdHRlcm4oKSB7ICAKKyAgICAgICAgbV9lbl91c18uc2V0U3RyZW5ndGgoUEFUVEVSTlswXS5zdHJlbmd0aCk7CisgICAgICAgIFN0cmluZ1NlYXJjaCBzdHJzcmNoID0gbmV3IFN0cmluZ1NlYXJjaChQQVRURVJOWzBdLnBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihQQVRURVJOWzBdLnRleHQpLCBtX2VuX3VzXywgbnVsbCk7CisgICAgICAgIAorICAgICAgICAvKmlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIG9wZW5pbmcgc3RyaW5nIHNlYXJjaCAlcyIsIHVfZXJyb3JOYW1lKHN0YXR1cykpOworICAgICAgICAgICAgbV9lbl91c18uc2V0U3RyZW5ndGgoZ2V0RUNvbGxhdGlvblN0cmVuZ3RoKFVDT0xfVEVSVElBUlkpKTsKKyAgICAgICAgICAgIGlmIChzdHJzcmNoICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBkZWxldGUgc3Ryc3JjaDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfSovCisgICAgICAgIAorICAgICAgICBpZiAoc3Ryc3JjaC5nZXRQYXR0ZXJuKCkgIT0gUEFUVEVSTlswXS5wYXR0ZXJuKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBwYXR0ZXJuIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgUEFUVEVSTlswXSkpIHsKKyAgICAgICAgICAgIG1fZW5fdXNfLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgICAgIGlmIChzdHJzcmNoICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICBzdHJzcmNoLnNldFBhdHRlcm4oUEFUVEVSTlsxXS5wYXR0ZXJuKTsKKyAgICAgICAgaWYgKFBBVFRFUk5bMV0ucGF0dGVybiAhPSBzdHJzcmNoLmdldFBhdHRlcm4oKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgcGF0dGVybiIpOworICAgICAgICAgICAgbV9lbl91c18uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgaWYgKHN0cnNyY2ggIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHN0cnNyY2ggPSBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHN0cnNyY2gucmVzZXQoKTsKKyAgICAKKyAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgUEFUVEVSTlsxXSkpIHsKKyAgICAgICAgICAgIG1fZW5fdXNfLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgICAgIGlmIChzdHJzcmNoICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICBzdHJzcmNoLnNldFBhdHRlcm4oUEFUVEVSTlswXS5wYXR0ZXJuKTsKKyAgICAgICAgaWYgKFBBVFRFUk5bMF0ucGF0dGVybiAhPSBzdHJzcmNoLmdldFBhdHRlcm4oKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgcGF0dGVybiIpOworICAgICAgICAgICAgbV9lbl91c18uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgaWYgKHN0cnNyY2ggIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHN0cnNyY2ggPSBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgICAgICBzdHJzcmNoLnJlc2V0KCk7CisgICAgICAgCisgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIFBBVFRFUk5bMF0pKSB7CisgICAgICAgICAgICBtX2VuX3VzXy5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgICAgICBpZiAoc3Ryc3JjaCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgc3Ryc3JjaCA9IG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgLyogZW5vcm1vdXMgcGF0dGVybiBzaXplIHRvIHNlZSBpZiB0aGlzIGNyYXNoZXMgKi8KKyAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSAiIjsKKyAgICAgICAgZm9yIChpbnQgdGVtcGxlbmd0aCA9IDA7IHRlbXBsZW5ndGggIT0gNTEyOyB0ZW1wbGVuZ3RoICsrKSB7CisgICAgICAgICAgICBwYXR0ZXJuICs9IDB4NjE7CisgICAgICAgIH0KKyAgICAgICAgdHJ5eworICAgICAgICAgICAgc3Ryc3JjaC5zZXRQYXR0ZXJuKHBhdHRlcm4pOworICAgICAgICB9Y2F0Y2goRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIHBhdHRlcm4gd2l0aCBzaXplIDUxMiIpOworICAgICAgICB9CisgICAgCisgICAgICAgIG1fZW5fdXNfLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgaWYgKHN0cnNyY2ggIT0gbnVsbCkgeworICAgICAgICAgICAgc3Ryc3JjaCA9IG51bGw7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFBhdHRlcm5DYW5vbmljYWwoKSB7CisgICAgICAgIC8vU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgdGV4dCA9IG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihQQVRURVJOQ0FOT05JQ0FMWzBdLnRleHQpOworICAgICAgICBtX2VuX3VzXy5zZXRTdHJlbmd0aChQQVRURVJOQ0FOT05JQ0FMWzBdLnN0cmVuZ3RoKTsKKyAgICAgICAgU3RyaW5nU2VhcmNoIHN0cnNyY2ggPSBuZXcgU3RyaW5nU2VhcmNoKFBBVFRFUk5DQU5PTklDQUxbMF0ucGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKFBBVFRFUk5DQU5PTklDQUxbMF0udGV4dCksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9lbl91c18sIG51bGwpOworICAgICAgICBzdHJzcmNoLnNldENhbm9uaWNhbCh0cnVlKTsKKyAgICAgICAgCisgICAgICAgIGlmIChQQVRURVJOQ0FOT05JQ0FMWzBdLnBhdHRlcm4gIT0gc3Ryc3JjaC5nZXRQYXR0ZXJuKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIHBhdHRlcm4iKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBQQVRURVJOQ0FOT05JQ0FMWzBdKSkgeworICAgICAgICAgICAgbV9lbl91c18uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgc3Ryc3JjaCA9IG51bGw7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgc3Ryc3JjaC5zZXRQYXR0ZXJuKFBBVFRFUk5DQU5PTklDQUxbMV0ucGF0dGVybik7CisgICAgICAgIGlmIChQQVRURVJOQ0FOT05JQ0FMWzFdLnBhdHRlcm4gIT0gc3Ryc3JjaC5nZXRQYXR0ZXJuKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIHBhdHRlcm4iKTsKKyAgICAgICAgICAgIG1fZW5fdXNfLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgICAgIHN0cnNyY2ggPSBudWxsOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHN0cnNyY2gucmVzZXQoKTsKKyAgICAgICAgc3Ryc3JjaC5zZXRDYW5vbmljYWwodHJ1ZSk7CisgICAgICAgIAorICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBQQVRURVJOQ0FOT05JQ0FMWzFdKSkgeworICAgICAgICAgICAgbV9lbl91c18uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgc3Ryc3JjaCA9IG51bGw7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBzdHJzcmNoLnNldFBhdHRlcm4oUEFUVEVSTkNBTk9OSUNBTFswXS5wYXR0ZXJuKTsKKyAgICAgICAgaWYgKFBBVFRFUk5DQU5PTklDQUxbMF0ucGF0dGVybiAhPSBzdHJzcmNoLmdldFBhdHRlcm4oKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgcGF0dGVybiIpOworICAgICAgICAgICAgbV9lbl91c18uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgc3Ryc3JjaCA9IG51bGw7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHN0cnNyY2gucmVzZXQoKTsKKyAgICAgICAgc3Ryc3JjaC5zZXRDYW5vbmljYWwodHJ1ZSk7CisgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIFBBVFRFUk5DQU5PTklDQUxbMF0pKSB7CisgICAgICAgICAgICBtX2VuX3VzXy5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgICAgICBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0UmVzZXQoKSB7CisgICAgICAgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIHRleHQgPSBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoImZpc2ggZmlzaCIpOworICAgICAgICBTdHJpbmcgcGF0dGVybiA9ICJzIjsKKyAgICAgICAgCisgICAgICAgIFN0cmluZ1NlYXJjaCAgc3Ryc3JjaCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgdGV4dCwgbV9lbl91c18sIG51bGwpOyAKKyAgICAgICAgc3Ryc3JjaC5zZXRPdmVybGFwcGluZyh0cnVlKTsKKyAgICAgICAgc3Ryc3JjaC5zZXRDYW5vbmljYWwodHJ1ZSk7CisgICAgICAgIHN0cnNyY2guc2V0SW5kZXgoOSk7CisgICAgICAgIHN0cnNyY2gucmVzZXQoKTsKKyAgICAgICAgaWYgKHN0cnNyY2guaXNDYW5vbmljYWwoKSB8fCBzdHJzcmNoLmlzT3ZlcmxhcHBpbmcoKSB8fAorICAgICAgICAgICAgc3Ryc3JjaC5nZXRJbmRleCgpICE9IDAgfHwgc3Ryc3JjaC5nZXRNYXRjaExlbmd0aCgpICE9IDAgfHwKKyAgICAgICAgICAgIHN0cnNyY2guZ2V0TWF0Y2hTdGFydCgpICE9IFNlYXJjaEl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgcmVzZXR0aW5nIHN0cmluZyBzZWFyY2giKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc3Ryc3JjaC5wcmV2aW91cygpOworICAgICAgICBpZiAoc3Ryc3JjaC5nZXRNYXRjaFN0YXJ0KCkgIT0gNyB8fCBzdHJzcmNoLmdldE1hdGNoTGVuZ3RoKCkgIT0gMSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHJlc2V0dGluZyBzdHJpbmcgc2VhcmNoXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0U2V0TWF0Y2goKSB7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChNQVRDSFtjb3VudF0udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBTZWFyY2hEYXRhICAgICBzZWFyY2ggPSBNQVRDSFtjb3VudF07CisgICAgICAgICAgICBTdHJpbmdTZWFyY2ggc3Ryc3JjaCA9IG5ldyBTdHJpbmdTZWFyY2goc2VhcmNoLnBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihzZWFyY2gudGV4dCksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZW5fdXNfLCBudWxsKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IHNpemUgPSAwOworICAgICAgICAgICAgd2hpbGUgKHNlYXJjaC5vZmZzZXRbc2l6ZV0gIT0gLTEpIHsKKyAgICAgICAgICAgICAgICBzaXplICsrOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgaWYgKHN0cnNyY2guZmlyc3QoKSAhPSBzZWFyY2gub2Zmc2V0WzBdKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGdldHRpbmcgZmlyc3QgbWF0Y2giKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChzdHJzcmNoLmxhc3QoKSAhPSBzZWFyY2gub2Zmc2V0W3NpemUgLTFdKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGdldHRpbmcgbGFzdCBtYXRjaCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgaW5kZXggPSAwOworICAgICAgICAgICAgd2hpbGUgKGluZGV4IDwgc2l6ZSkgeworICAgICAgICAgICAgICAgIGlmIChpbmRleCArIDIgPCBzaXplKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdHJzcmNoLmZvbGxvd2luZyhzZWFyY2gub2Zmc2V0W2luZGV4ICsgMl0gLSAxKSAhPSBzZWFyY2gub2Zmc2V0W2luZGV4ICsgMl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBnZXR0aW5nIGZvbGxvd2luZyBtYXRjaCBhdCBpbmRleCAiICsgKHNlYXJjaC5vZmZzZXRbaW5kZXggKyAyXS0xKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGluZGV4ICsgMSA8IHNpemUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0cnNyY2gucHJlY2VkaW5nKHNlYXJjaC5vZmZzZXRbaW5kZXggKyAxXSArIHNlYXJjaC5zaXplW2luZGV4ICsgMV0gKyAxKSAhPSBzZWFyY2gub2Zmc2V0W2luZGV4ICsgMV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBnZXR0aW5nIHByZWNlZWRpbmcgbWF0Y2ggYXQgaW5kZXggIiArIChzZWFyY2gub2Zmc2V0W2luZGV4ICsgMV0gKyAxKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaW5kZXggKz0gMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHN0cnNyY2guZm9sbG93aW5nKHNlYXJjaC50ZXh0Lmxlbmd0aCgpKSAhPSBTZWFyY2hJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGV4cGVjdGluZyBvdXQgb2YgYm91bmRzIG1hdGNoIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc3Ryc3JjaC5wcmVjZWRpbmcoMCkgIT0gU2VhcmNoSXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBleHBlY3Rpbmcgb3V0IG9mIGJvdW5kcyBtYXRjaCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgICAgICBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0U3RyZW5ndGgoKSB7ICAgCisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChTVFJFTkdUSFtjb3VudF0udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoY291bnQgPT0gMykgY291bnQgKys7CisgICAgICAgICAgICBpZiAoIWFzc2VydEVxdWFsKFNUUkVOR1RIW2NvdW50XSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgYXQgdGVzdCBudW1iZXIgIiArIGNvdW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RTdHJlbmd0aENhbm9uaWNhbCgpIHsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKFNUUkVOR1RIQ0FOT05JQ0FMW2NvdW50XS50ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmIChjb3VudCA9PSAzKSBjb3VudCArKzsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0Q2Fub25pY2FsRXF1YWwoU1RSRU5HVEhDQU5PTklDQUxbY291bnRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCB0ZXN0IG51bWJlciIgKyBjb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0U3VwcGxlbWVudGFyeSgpIHsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKFNVUFBMRU1FTlRBUllbY291bnRdLnRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKCFhc3NlcnRFcXVhbChTVVBQTEVNRU5UQVJZW2NvdW50XSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgYXQgdGVzdCBudW1iZXIiICsgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFN1cHBsZW1lbnRhcnlDYW5vbmljYWwoKSB7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChTVVBQTEVNRU5UQVJZQ0FOT05JQ0FMW2NvdW50XS50ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0Q2Fub25pY2FsRXF1YWwoU1VQUExFTUVOVEFSWUNBTk9OSUNBTFtjb3VudF0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IHRlc3QgbnVtYmVyIiArIGNvdW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFRleHQoKSB7CisgICAgICAgIFNlYXJjaERhdGEgVEVYVFtdID0geworICAgICAgICAgICAgbmV3IFNlYXJjaERhdGEoInRoZSBmb3h5IGJyb3duIGZveCIsICJmb3giLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHs0LCAxNSwgLTF9LCBuZXcgaW50W10gezMsIDN9KSwKKyAgICAgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJ0aGUgcXVpY2sgYnJvd24gZm94IiwgImZveCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezE2LCAtMX0sIG5ldyBpbnRbXSB7M30pLAorICAgICAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W117MH0pCisgICAgICAgIH07CisgICAgICAgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIHQgPSBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoVEVYVFswXS50ZXh0KTsKKyAgICAgICAgU3RyaW5nU2VhcmNoIHN0cnNyY2ggPSBuZXcgU3RyaW5nU2VhcmNoKFRFWFRbMF0ucGF0dGVybiwgdCwgbV9lbl91c18sIG51bGwpOworICAgICAgICAKKyAgICAgICAgaWYgKCF0LmVxdWFscyhzdHJzcmNoLmdldFRhcmdldCgpKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgdGV4dCIpOworICAgICAgICB9CisgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIFRFWFRbMF0pKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IgYXQgYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgdCA9IG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihURVhUWzFdLnRleHQpOworICAgICAgICBzdHJzcmNoLnNldFRhcmdldCh0KTsKKyAgICAgICAgaWYgKCF0LmVxdWFscyhzdHJzcmNoLmdldFRhcmdldCgpKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgdGV4dCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBURVhUWzFdKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IGFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RUZXh0Q2Fub25pY2FsKCkgeworICAgICAgICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciB0ID0gbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKFRFWFRDQU5PTklDQUxbMF0udGV4dCk7CisgICAgICAgIFN0cmluZ1NlYXJjaCBzdHJzcmNoID0gbmV3IFN0cmluZ1NlYXJjaChURVhUQ0FOT05JQ0FMWzBdLnBhdHRlcm4sIHQsIG1fZW5fdXNfLCBudWxsKTsKKyAgICAgICAgc3Ryc3JjaC5zZXRDYW5vbmljYWwodHJ1ZSk7CisgICAgICAgIAorICAgICAgICBpZiAoIXQuZXF1YWxzKHN0cnNyY2guZ2V0VGFyZ2V0KCkpKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyB0ZXh0Iik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgVEVYVENBTk9OSUNBTFswXSkpIHsKKyAgICAgICAgICAgIHN0cnNyY2ggPSBudWxsOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgdCA9IG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihURVhUQ0FOT05JQ0FMWzFdLnRleHQpOworICAgICAgICBzdHJzcmNoLnNldFRhcmdldCh0KTsKKyAgICAgICAgaWYgKCF0LmVxdWFscyhzdHJzcmNoLmdldFRhcmdldCgpKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgdGV4dCIpOworICAgICAgICAgICAgc3Ryc3JjaCA9IG51bGw7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIFRFWFRDQU5PTklDQUxbMV0pKSB7CisgICAgICAgICAgICBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHQgPSBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoVEVYVENBTk9OSUNBTFswXS50ZXh0KTsKKyAgICAgICAgc3Ryc3JjaC5zZXRUYXJnZXQodCk7CisgICAgICAgIGlmICghdC5lcXVhbHMoc3Ryc3JjaC5nZXRUYXJnZXQoKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIHRleHQiKTsKKyAgICAgICAgICAgIHN0cnNyY2ggPSBudWxsOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBURVhUQ0FOT05JQ0FMWzBdKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IGFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaCIpOworICAgICAgICAgICAgc3Ryc3JjaCA9IG51bGw7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0gICAgCisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RWYXJpYWJsZSgpIHsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgbV9lbl91c18uc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKHRydWUpOworICAgICAgICB3aGlsZSAoVkFSSUFCTEVbY291bnRdLnRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgLy8gbG9nbG4oInZhcmlhYmxlIiArIGNvdW50KTsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0RXF1YWwoVkFSSUFCTEVbY291bnRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCB0ZXN0IG51bWJlciAiICsgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgIH0KKyAgICAgICAgbV9lbl91c18uc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKGZhbHNlKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFZhcmlhYmxlQ2Fub25pY2FsKCkgeworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICBtX2VuX3VzXy5zZXRBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQodHJ1ZSk7CisgICAgICAgIHdoaWxlIChWQVJJQUJMRVtjb3VudF0udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICAvLyBsb2dsbigidmFyaWFibGUgIiArIGNvdW50KTsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0Q2Fub25pY2FsRXF1YWwoVkFSSUFCTEVbY291bnRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCB0ZXN0IG51bWJlciAiICsgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgIH0KKyAgICAgICAgbV9lbl91c18uc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKGZhbHNlKTsKKyAgICB9CisgICAgCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlYXJjaC9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VhcmNoL3BhY2thZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wZmFkMmUyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlYXJjaC9wYWNrYWdlLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMiBGaW5hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisgICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZWFyY2gvcGFja2FnZS5odG1sLHYgJAorICAkUmV2aXNpb246IDEuMSAkCisgICREYXRlOiAyMDAwLzAzLzE1IDIxOjM1OjUwICQKKy0tPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiPgorVGVzdHMgZm9yIHRoZSBpbnRlcm5hdGlvbmFsIHNlYXJjaCBjbGFzc2VzLgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zaGFwaW5nL0FyYWJpY1NoYXBpbmdSZWdUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2hhcGluZy9BcmFiaWNTaGFwaW5nUmVnVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRhYTY2NTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2hhcGluZy9BcmFiaWNTaGFwaW5nUmVnVGVzdC5qYXZhCkBAIC0wLDAgKzEsNDE1IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoQykgMjAwMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5zaGFwaW5nOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5BcmFiaWNTaGFwaW5nOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQXJhYmljU2hhcGluZ0V4Y2VwdGlvbjsKKworLyoqCisgKiBSZWdyZXNzaW9uIHRlc3QgZm9yIEFyYWJpYyBzaGFwaW5nLgorICovCitwdWJsaWMgY2xhc3MgQXJhYmljU2hhcGluZ1JlZ1Rlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisKKyAgICAvKiBjb25zdGFudHMgY29waWVkIGZyb20gQXJhYmljU2hhcGluZyBmb3IgY29udmVuaWVuY2UgKi8KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFTkdUSF9HUk9XX1NIUklOSyA9IDA7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEVOR1RIX0ZJWEVEX1NQQUNFU19ORUFSID0gMTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRU5HVEhfRklYRURfU1BBQ0VTX0FUX0VORCA9IDI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9CRUdJTk5JTkcgPSAzOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEVYVF9ESVJFQ1RJT05fTE9HSUNBTCA9IDA7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEVYVF9ESVJFQ1RJT05fVklTVUFMX0xUUiA9IDQ7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRVRURVJTX05PT1AgPSAwOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFVFRFUlNfU0hBUEUgPSA4OworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFVFRFUlNfU0hBUEVfVEFTSEtFRUxfSVNPTEFURUQgPSAweDE4OworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFVFRFUlNfVU5TSEFQRSA9IDB4MTA7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBESUdJVFNfTk9PUCA9IDA7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRElHSVRTX0VOMkFOID0gMHgyMDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBESUdJVFNfQU4yRU4gPSAweDQwOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERJR0lUU19FTjJBTl9JTklUX0xSID0gMHg2MDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBESUdJVFNfRU4yQU5fSU5JVF9BTCA9IDB4ODA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERJR0lUU19SRVNFUlZFRCA9IDB4YTA7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBESUdJVF9UWVBFX0FOID0gMDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBESUdJVF9UWVBFX0FOX0VYVEVOREVEID0gMHgxMDA7CisKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFRlc3REYXRhIHsKKyAgICAgICAgcHVibGljIGludCB0eXBlOworICAgICAgICBwdWJsaWMgU3RyaW5nIHNvdXJjZTsKKyAgICAgICAgcHVibGljIGludCBmbGFnczsKKyAgICAgICAgcHVibGljIFN0cmluZyByZXN1bHQ7CisgICAgICAgIHB1YmxpYyBpbnQgbGVuZ3RoOworICAgICAgICBwdWJsaWMgQ2xhc3MgZXJyb3I7CisKKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1RBTkRBUkQgPSAwOworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQUkVGTElHSFQgPSAxOworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFUlJPUiA9IDI7CisKKyAgICAgICAgcHVibGljIHN0YXRpYyBUZXN0RGF0YSBzdGFuZGFyZChTdHJpbmcgc291cmNlLCBpbnQgZmxhZ3MsIFN0cmluZyByZXN1bHQpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgVGVzdERhdGEoU1RBTkRBUkQsIHNvdXJjZSwgZmxhZ3MsIHJlc3VsdCwgMCwgbnVsbCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBzdGF0aWMgVGVzdERhdGEgcHJlZmxpZ2h0KFN0cmluZyBzb3VyY2UsIGludCBmbGFncywgaW50IGxlbmd0aCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBUZXN0RGF0YShQUkVGTElHSFQsIHNvdXJjZSwgZmxhZ3MsIG51bGwsIGxlbmd0aCwgbnVsbCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgc3RhdGljIFRlc3REYXRhIGVycm9yKFN0cmluZyBzb3VyY2UsIGludCBmbGFncywgQ2xhc3MgZXJyb3IpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgVGVzdERhdGEoRVJST1IsIHNvdXJjZSwgZmxhZ3MsIG51bGwsIDAsIGVycm9yKTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgVGVzdERhdGEoaW50IHR5cGUsIFN0cmluZyBzb3VyY2UsIGludCBmbGFncywgU3RyaW5nIHJlc3VsdCwgaW50IGxlbmd0aCwgQ2xhc3MgZXJyb3IpIHsKKyAgICAgICAgICAgIHRoaXMudHlwZSA9IHR5cGU7CisgICAgICAgICAgICB0aGlzLnNvdXJjZSA9IHNvdXJjZTsKKyAgICAgICAgICAgIHRoaXMuZmxhZ3MgPSBmbGFnczsKKyAgICAgICAgICAgIHRoaXMucmVzdWx0ID0gcmVzdWx0OworICAgICAgICAgICAgdGhpcy5sZW5ndGggPSBsZW5ndGg7CisgICAgICAgICAgICB0aGlzLmVycm9yID0gZXJyb3I7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSB0eXBlbmFtZXMgPSB7ICJzdGFuZGFyZCIsICJwcmVmbGlnaHQiLCAiZXJyb3IiIH07CisKKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKHN1cGVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgYnVmLmFwcGVuZCgiW1xuIik7CisgICAgICAgICAgICBidWYuYXBwZW5kKHR5cGVuYW1lc1t0eXBlXSk7CisgICAgICAgICAgICBidWYuYXBwZW5kKCIsXG4iKTsKKyAgICAgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIm51bGwiKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnIicpOworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoZXNjYXBlZFN0cmluZyhzb3VyY2UpKTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCciJyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBidWYuYXBwZW5kKCIsXG4iKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoSW50ZWdlci50b0hleFN0cmluZyhmbGFncykpOworICAgICAgICAgICAgYnVmLmFwcGVuZCgiLFxuIik7CisgICAgICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCJudWxsIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJyInKTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGVzY2FwZWRTdHJpbmcocmVzdWx0KSk7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnIicpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVmLmFwcGVuZCgiLFxuIik7CisgICAgICAgICAgICBidWYuYXBwZW5kKGxlbmd0aCk7CisgICAgICAgICAgICBidWYuYXBwZW5kKCIsXG4iKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoZXJyb3IpOworICAgICAgICAgICAgYnVmLmFwcGVuZCgnXScpOworICAgICAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGxhbUFsZWZTcGVjaWFsVkxUUiA9CisgICAgICAgICJcdTAwMjBcdTA2NDZcdTA2MjJcdTA2NDRcdTA2MjdcdTAwMjAiICsKKyAgICAgCSJcdTA2NDZcdTA2MjNcdTA2NEVcdTA2NDRcdTA2MjdcdTAwMjAiICsKKyAgICAgCSJcdTA2NDZcdTA2MjdcdTA2NzBcdTA2NDRcdTA2MjdcdTAwMjAiICsKKyAgICAgCSJcdTA2NDZcdTA2MjJcdTA2NTNcdTA2NDRcdTA2MjdcdTAwMjAiICsKKyAgICAgCSJcdTA2NDZcdTA2MjVcdTA2NTVcdTA2NDRcdTA2MjdcdTAwMjAiICsKKyAgICAgCSJcdTA2NDZcdTA2MjJcdTA2NTRcdTA2NDRcdTA2MjdcdTAwMjAiICsKKyAgICAgCSJcdUZFRkNcdTA2MzkiOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIHRhc2hrZWVsU3BlY2lhbFZMVFIgPSAKKyAgICAgICAgIlx1MDY0QVx1MDYyOFx1MDYzMVx1MDYzOVx1MDAyMCIgKworICAgICAgICAiXHUwNjRBXHUwNjI4XHUwNjUxXHUwNjMxXHUwNjRFXHUwNjM5XHUwMDIwIiArCisgICAgICAgICJcdTA2NENcdTA2NEFcdTA2MjhcdTA2MzFcdTA2NEZcdTA2MzlcdTAwMjAiICsKKyAgICAgICAgIlx1MDYyOFx1MDY3MFx1MDYzMVx1MDY3MFx1MDYzOVx1MDAyMCIgKworICAgICAgICAiXHUwNjI4XHUwNjUzXHUwNjMxXHUwNjUzXHUwNjM5XHUwMDIwIiArCisgICAgICAgICJcdTA2MjhcdTA2NTRcdTA2MzFcdTA2NTRcdTA2MzlcdTAwMjAiICsKKyAgICAgICAgIlx1MDYyOFx1MDY1NVx1MDYzMVx1MDY1NVx1MDYzOVx1MDAyMCI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgbG9naWNhbFVuc2hhcGUgPSAKKyAgICAgICAgIlx1MDAyMFx1MDAyMFx1MDAyMFx1RkU4RFx1RkVGNVx1MDAyMFx1RkVFNVx1MDAyMFx1RkU4RFx1RkVGN1x1MDAyMCIgKworICAgICAgICAiXHVGRUQ3XHVGRUZDXHUwMDIwXHVGRUUxXHUwMDIwXHVGRThEXHVGRURGXHVGRUNDXHVGRUFFXHVGRTkxXHVGRUY0IiArCisgICAgICAgICJcdUZFOTRcdTAwMjBcdUZFOERcdUZFREZcdUZFQTRcdUZFQUVcdUZFOTNcdTAwMjBcdTAwMjBcdTAwMjBcdTAwMjAiOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIG51bVNvdXJjZSA9CisgICAgICAgICJcdTAwMzEiICsgIC8qIGVuOjEgKi8KKyAgICAgICAgIlx1MDYyNyIgKyAgLyogYXJhYmljOmFsZWYgKi8KKyAgICAgICAgIlx1MDAzMiIgKyAgLyogZW46MiAqLworICAgICAgICAiXHUwNmYzIiArICAvKiBhbjozICovCisgICAgICAgICJcdTAwNjEiICsgIC8qIGxhdGluOmEgKi8KKyAgICAgICAgIlx1MDAzNCI7ICAgLyogZW46NCAqLworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVGVzdERhdGFbXSB0ZXN0cyA9IHsKKyAgICAgICAgLyogbGFtIGFsZWYgc3BlY2lhbCB2aXN1YWwgbHRyICovCisgICAgICAgIFRlc3REYXRhLnN0YW5kYXJkKGxhbUFsZWZTcGVjaWFsVkxUUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgTEVUVEVSU19TSEFQRSB8IFRFWFRfRElSRUNUSU9OX1ZJU1VBTF9MVFIgfCBMRU5HVEhfRklYRURfU1BBQ0VTX05FQVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdWZlZTVcdTAwMjBcdWZlZjVcdWZlOGRcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmVlNVx1MDAyMFx1ZmU3Nlx1ZmVmN1x1ZmU4ZFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWU1XHUwMDIwXHUwNjcwXHVmZWZiXHVmZThkXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlZTVcdTAwMjBcdTA2NTNcdWZlZjVcdWZlOGRcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmVlNVx1MDAyMFx1MDY1NVx1ZmVmOVx1ZmU4ZFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWU1XHUwMDIwXHUwNjU0XHVmZWY1XHVmZThkXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlZmNcdWZlY2IiKSwKKyAgICAgICAgVGVzdERhdGEuc3RhbmRhcmQobGFtQWxlZlNwZWNpYWxWTFRSLAorICAgICAgICAgICAgICAgICAgICAgICAgICBMRVRURVJTX1NIQVBFIHwgVEVYVF9ESVJFQ1RJT05fVklTVUFMX0xUUiB8IExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfRU5ELAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMDIwXHVmZWU1XHVmZWY1XHVmZThkXHUwMDIwXHVmZWU1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlNzZcdWZlZjdcdWZlOGRcdTAwMjBcdWZlZTVcdTA2NzAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmVmYlx1ZmU4ZFx1MDAyMFx1ZmVlNVx1MDY1M1x1ZmVmNSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZThkXHUwMDIwXHVmZWU1XHUwNjU1XHVmZWY5XHVmZThkIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdWZlZTVcdTA2NTRcdWZlZjVcdWZlOGRcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmVmY1x1ZmVjYlx1MDAyMFx1MDAyMFx1MDAyMFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMDIwXHUwMDIwIiksCisgICAgICAgIFRlc3REYXRhLnN0YW5kYXJkKGxhbUFsZWZTcGVjaWFsVkxUUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgTEVUVEVSU19TSEFQRSB8IFRFWFRfRElSRUNUSU9OX1ZJU1VBTF9MVFIgfCBMRU5HVEhfRklYRURfU1BBQ0VTX0FUX0JFR0lOTklORywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAyMFx1MDAyMFx1MDAyMFx1MDAyMFx1MDAyMFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMDIwXHVmZWU1XHVmZWY1XHVmZThkXHUwMDIwXHVmZWU1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlNzZcdWZlZjdcdWZlOGRcdTAwMjBcdWZlZTVcdTA2NzAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmVmYlx1ZmU4ZFx1MDAyMFx1ZmVlNVx1MDY1M1x1ZmVmNSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZThkXHUwMDIwXHVmZWU1XHUwNjU1XHVmZWY5XHVmZThkIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdWZlZTVcdTA2NTRcdWZlZjVcdWZlOGRcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmVmY1x1ZmVjYiIpLAorICAgICAgICBUZXN0RGF0YS5zdGFuZGFyZChsYW1BbGVmU3BlY2lhbFZMVFIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIExFVFRFUlNfU0hBUEUgfCBURVhUX0RJUkVDVElPTl9WSVNVQUxfTFRSIHwgTEVOR1RIX0dST1dfU0hSSU5LLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMDIwXHVmZWU1XHVmZWY1XHVmZThkXHUwMDIwXHVmZWU1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlNzZcdWZlZjdcdWZlOGRcdTAwMjBcdWZlZTVcdTA2NzAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmVmYlx1ZmU4ZFx1MDAyMFx1ZmVlNVx1MDY1M1x1ZmVmNSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZThkXHUwMDIwXHVmZWU1XHUwNjU1XHVmZWY5XHVmZThkIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdWZlZTVcdTA2NTRcdWZlZjVcdWZlOGRcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmVmY1x1ZmVjYiIpLAorCisgICAgICAgIC8qIFRBU0hLRUVMICovCisgICAgICAgIFRlc3REYXRhLnN0YW5kYXJkKGxhbUFsZWZTcGVjaWFsVkxUUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgTEVUVEVSU19TSEFQRV9UQVNIS0VFTF9JU09MQVRFRCB8IFRFWFRfRElSRUNUSU9OX1ZJU1VBTF9MVFIgfCBMRU5HVEhfRklYRURfU1BBQ0VTX05FQVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdWZlZTVcdTAwMjBcdWZlZjVcdWZlOGRcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmVlNVx1MDAyMFx1ZmU3Nlx1ZmVmN1x1ZmU4ZFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWU1XHUwMDIwXHUwNjcwXHVmZWZiXHVmZThkXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlZTVcdTAwMjBcdTA2NTNcdWZlZjVcdWZlOGRcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmVlNVx1MDAyMFx1MDY1NVx1ZmVmOVx1ZmU4ZFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWU1XHUwMDIwXHUwNjU0XHVmZWY1XHVmZThkXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlZmNcdWZlY2IiKSwKKyAgICAgICAgVGVzdERhdGEuc3RhbmRhcmQobGFtQWxlZlNwZWNpYWxWTFRSLAorICAgICAgICAgICAgICAgICAgICAgICAgICBMRVRURVJTX1NIQVBFX1RBU0hLRUVMX0lTT0xBVEVEIHwgVEVYVF9ESVJFQ1RJT05fVklTVUFMX0xUUiB8IExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfRU5ELAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMDIwXHVmZWU1XHVmZWY1XHVmZThkXHUwMDIwXHVmZWU1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlNzZcdWZlZjdcdWZlOGRcdTAwMjBcdWZlZTVcdTA2NzAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmVmYlx1ZmU4ZFx1MDAyMFx1ZmVlNVx1MDY1M1x1ZmVmNSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZThkXHUwMDIwXHVmZWU1XHUwNjU1XHVmZWY5XHVmZThkIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdWZlZTVcdTA2NTRcdWZlZjVcdWZlOGRcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmVmY1x1ZmVjYlx1MDAyMFx1MDAyMFx1MDAyMFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMDIwXHUwMDIwIiksCisgICAgICAgIFRlc3REYXRhLnN0YW5kYXJkKGxhbUFsZWZTcGVjaWFsVkxUUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgTEVUVEVSU19TSEFQRV9UQVNIS0VFTF9JU09MQVRFRCB8IFRFWFRfRElSRUNUSU9OX1ZJU1VBTF9MVFIgfCBMRU5HVEhfRklYRURfU1BBQ0VTX0FUX0JFR0lOTklORywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAyMFx1MDAyMFx1MDAyMFx1MDAyMFx1MDAyMFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMDIwXHVmZWU1XHVmZWY1XHVmZThkXHUwMDIwXHVmZWU1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlNzZcdWZlZjdcdWZlOGRcdTAwMjBcdWZlZTVcdTA2NzAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmVmYlx1ZmU4ZFx1MDAyMFx1ZmVlNVx1MDY1M1x1ZmVmNSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZThkXHUwMDIwXHVmZWU1XHUwNjU1XHVmZWY5XHVmZThkIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdWZlZTVcdTA2NTRcdWZlZjVcdWZlOGRcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmVmY1x1ZmVjYiIpLAorICAgICAgICBUZXN0RGF0YS5zdGFuZGFyZChsYW1BbGVmU3BlY2lhbFZMVFIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIExFVFRFUlNfU0hBUEVfVEFTSEtFRUxfSVNPTEFURUQgfCBURVhUX0RJUkVDVElPTl9WSVNVQUxfTFRSIHwgTEVOR1RIX0dST1dfU0hSSU5LLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMDIwXHVmZWU1XHVmZWY1XHVmZThkXHUwMDIwXHVmZWU1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlNzZcdWZlZjdcdWZlOGRcdTAwMjBcdWZlZTVcdTA2NzAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmVmYlx1ZmU4ZFx1MDAyMFx1ZmVlNVx1MDY1M1x1ZmVmNSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZThkXHUwMDIwXHVmZWU1XHUwNjU1XHVmZWY5XHVmZThkIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdWZlZTVcdTA2NTRcdWZlZjVcdWZlOGRcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmVmY1x1ZmVjYiIpLAorCisgICAgICAgIC8qIHRhc2hrZWVsIHNwZWNpYWwgdmlzdWFsIGx0ciAqLworICAgICAgICBUZXN0RGF0YS5zdGFuZGFyZCh0YXNoa2VlbFNwZWNpYWxWTFRSLAorICAgICAgICAgICAgICAgICAgICAgICAgICBMRVRURVJTX1NIQVBFIHwgVEVYVF9ESVJFQ1RJT05fVklTVUFMX0xUUiB8IExFTkdUSF9GSVhFRF9TUEFDRVNfTkVBUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmVmMlx1ZmU5MVx1ZmVhZVx1ZmVjYlx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWYyXHVmZTkxXHVmZTdjXHVmZWFlXHVmZTc3XHVmZWNiXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlNzJcdWZlZjJcdWZlOTFcdWZlYWVcdWZlNzlcdWZlY2JcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmU4Zlx1MDY3MFx1ZmVhZVx1MDY3MFx1ZmVjYlx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZThmXHUwNjUzXHVmZWFlXHUwNjUzXHVmZWNiXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlOGZcdTA2NTRcdWZlYWVcdTA2NTRcdWZlY2JcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmU4Zlx1MDY1NVx1ZmVhZVx1MDY1NVx1ZmVjYlx1MDAyMCIpLAorCisgICAgICAgIFRlc3REYXRhLnN0YW5kYXJkKHRhc2hrZWVsU3BlY2lhbFZMVFIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIExFVFRFUlNfU0hBUEVfVEFTSEtFRUxfSVNPTEFURUQgfCBURVhUX0RJUkVDVElPTl9WSVNVQUxfTFRSIHwgTEVOR1RIX0ZJWEVEX1NQQUNFU19ORUFSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWYyXHVmZTkxXHVmZWFlXHVmZWNiXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlZjJcdWZlOTFcdWZlN2NcdWZlYWVcdWZlNzZcdWZlY2JcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmU3Mlx1ZmVmMlx1ZmU5MVx1ZmVhZVx1ZmU3OFx1ZmVjYlx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZThmXHUwNjcwXHVmZWFlXHUwNjcwXHVmZWNiXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlOGZcdTA2NTNcdWZlYWVcdTA2NTNcdWZlY2JcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmU4Zlx1MDY1NFx1ZmVhZVx1MDY1NFx1ZmVjYlx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZThmXHUwNjU1XHVmZWFlXHUwNjU1XHVmZWNiXHUwMDIwIiksCisKKyAgICAgICAgLyogbG9naWNhbCB1bnNoYXBlICovCisgICAgICAgIFRlc3REYXRhLnN0YW5kYXJkKGxvZ2ljYWxVbnNoYXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBMRVRURVJTX1VOU0hBUEUgfCBURVhUX0RJUkVDVElPTl9MT0dJQ0FMIHwgTEVOR1RIX0ZJWEVEX1NQQUNFU19ORUFSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMDIwXHUwMDIwXHUwMDIwXHUwNjI3XHUwNjQ0XHUwNjIyXHUwNjQ2XHUwMDIwXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjQyXHUwNjQ0XHUwNjI3IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA2NDVcdTAwMjBcdTA2MjdcdTA2NDRcdTA2MzlcdTA2MzFcdTA2MjhcdTA2NGFcdTA2MjlcdTAwMjBcdTA2MjdcdTA2NDRcdTA2MmRcdTA2MzEiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDYyOVx1MDAyMFx1MDAyMFx1MDAyMFx1MDAyMCIpLAorICAgICAgICBUZXN0RGF0YS5zdGFuZGFyZChsb2dpY2FsVW5zaGFwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgTEVUVEVSU19VTlNIQVBFIHwgVEVYVF9ESVJFQ1RJT05fTE9HSUNBTCB8IExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfRU5ELAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMDIwXHUwMDIwXHUwMDIwXHUwNjI3XHUwNjQ0XHUwNjIyXHUwMDIwXHUwNjQ2XHUwMDIwXHUwNjI3XHUwNjQ0XHUwNjIzXHUwMDIwXHUwNjQyIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA2NDRcdTA2MjdcdTAwMjBcdTA2NDVcdTAwMjBcdTA2MjdcdTA2NDRcdTA2MzlcdTA2MzFcdTA2MjhcdTA2NGFcdTA2MjlcdTAwMjBcdTA2MjciICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDY0NFx1MDYyZFx1MDYzMVx1MDYyOVx1MDAyMCIpLAorICAgICAgICBUZXN0RGF0YS5zdGFuZGFyZChsb2dpY2FsVW5zaGFwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgTEVUVEVSU19VTlNIQVBFIHwgVEVYVF9ESVJFQ1RJT05fTE9HSUNBTCB8IExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfQkVHSU5OSU5HLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwNjI3XHUwNjQ0XHUwNjIyXHUwMDIwXHUwNjQ2XHUwMDIwXHUwNjI3XHUwNjQ0XHUwNjIzXHUwMDIwXHUwNjQyXHUwNjQ0XHUwNjI3XHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA2NDVcdTAwMjBcdTA2MjdcdTA2NDRcdTA2MzlcdTA2MzFcdTA2MjhcdTA2NGFcdTA2MjlcdTAwMjBcdTA2MjdcdTA2NDRcdTA2MmRcdTA2MzEiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDYyOVx1MDAyMFx1MDAyMFx1MDAyMFx1MDAyMCIpLAorICAgICAgICBUZXN0RGF0YS5zdGFuZGFyZChsb2dpY2FsVW5zaGFwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgTEVUVEVSU19VTlNIQVBFIHwgVEVYVF9ESVJFQ1RJT05fTE9HSUNBTCB8IExFTkdUSF9HUk9XX1NIUklOSywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAyMFx1MDAyMFx1MDAyMFx1MDYyN1x1MDY0NFx1MDYyMlx1MDAyMFx1MDY0Nlx1MDAyMFx1MDYyN1x1MDY0NFx1MDYyM1x1MDAyMFx1MDY0MiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwNjQ0XHUwNjI3XHUwMDIwXHUwNjQ1XHUwMDIwXHUwNjI3XHUwNjQ0XHUwNjM5XHUwNjMxXHUwNjI4XHUwNjRhXHUwNjI5XHUwMDIwXHUwNjI3IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA2NDRcdTA2MmRcdTA2MzFcdTA2MjlcdTAwMjBcdTAwMjBcdTAwMjBcdTAwMjAiKSwKKworICAgICAgICAvKiBudW1iZXJzICovCisgICAgICAgIFRlc3REYXRhLnN0YW5kYXJkKG51bVNvdXJjZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIERJR0lUU19FTjJBTiB8IERJR0lUX1RZUEVfQU4sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwNjYxXHUwNjI3XHUwNjYyXHUwNmYzXHUwMDYxXHUwNjY0IiksCisgICAgICAgIFRlc3REYXRhLnN0YW5kYXJkKG51bVNvdXJjZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIERJR0lUU19BTjJFTiB8IERJR0lUX1RZUEVfQU5fRVhURU5ERUQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMDMxXHUwNjI3XHUwMDMyXHUwMDMzXHUwMDYxXHUwMDM0IiksCisgICAgICAgIFRlc3REYXRhLnN0YW5kYXJkKG51bVNvdXJjZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIERJR0lUU19FTjJBTl9JTklUX0xSIHwgRElHSVRfVFlQRV9BTiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMzFcdTA2MjdcdTA2NjJcdTA2ZjNcdTAwNjFcdTAwMzQiKSwKKyAgICAgICAgVGVzdERhdGEuc3RhbmRhcmQobnVtU291cmNlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgRElHSVRTX0VOMkFOX0lOSVRfQUwgfCBESUdJVF9UWVBFX0FOX0VYVEVOREVELCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDZmMVx1MDYyN1x1MDZmMlx1MDZmM1x1MDA2MVx1MDAzNCIpLAorICAgICAgICBUZXN0RGF0YS5zdGFuZGFyZChudW1Tb3VyY2UsIAorICAgICAgICAgICAgICAgICAgICAgICAgICBESUdJVFNfRU4yQU5fSU5JVF9MUiB8IERJR0lUX1RZUEVfQU4gfCBURVhUX0RJUkVDVElPTl9WSVNVQUxfTFRSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwNjYxXHUwNjI3XHUwMDMyXHUwNmYzXHUwMDYxXHUwMDM0IiksCisgICAgICAgIFRlc3REYXRhLnN0YW5kYXJkKG51bVNvdXJjZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIERJR0lUU19FTjJBTl9JTklUX0FMIHwgRElHSVRfVFlQRV9BTl9FWFRFTkRFRCB8IFRFWFRfRElSRUNUSU9OX1ZJU1VBTF9MVFIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA2ZjFcdTA2MjdcdTAwMzJcdTA2ZjNcdTAwNjFcdTA2ZjQiKSwKKworICAgICAgICAvKiBuby1vcCAqLworICAgICAgICBUZXN0RGF0YS5zdGFuZGFyZChudW1Tb3VyY2UsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICBudW1Tb3VyY2UpLAorCisgICAgICAgIC8qIHByZWZsaWdodCAqLworICAgICAgICBUZXN0RGF0YS5wcmVmbGlnaHQoIlx1MDY0NFx1MDYyNyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBMRVRURVJTX1NIQVBFIHwgTEVOR1RIX0dST1dfU0hSSU5LLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMSksCisKKyAgICAgICAgVGVzdERhdGEucHJlZmxpZ2h0KCJcdTA2NDRcdTA2MjdcdTAwMzEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgRElHSVRTX0VOMkFOIHwgRElHSVRfVFlQRV9BTl9FWFRFTkRFRCB8IExFTkdUSF9HUk9XX1NIUklOSywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDMpLAorCisgICAgICAgIFRlc3REYXRhLnByZWZsaWdodCgiXHUwNjQ0XHUwNjQ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIExFVFRFUlNfU0hBUEUgfCBMRU5HVEhfR1JPV19TSFJJTkssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAyKSwKKworICAgICAgICBUZXN0RGF0YS5wcmVmbGlnaHQoIlx1ZmVmNyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBMRVRURVJTX1VOU0hBUEUgfCBMRU5HVEhfR1JPV19TSFJJTkssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAyKSwKKworICAgICAgICAvKiBiYWQgZGF0YSAqLworICAgICAgICBUZXN0RGF0YS5lcnJvcigiXHUwMDIwXHVmZWY3XHUwNjQ0XHUwMDIwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgTEVUVEVSU19VTlNIQVBFIHwgTEVOR1RIX0ZJWEVEX1NQQUNFU19ORUFSLAorICAgICAgICAgICAgICAgICAgICAgICBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uLmNsYXNzKSwKKworICAgICAgICBUZXN0RGF0YS5lcnJvcigiXHUwMDIwXHVmZWY3IiwKKyAgICAgICAgICAgICAgICAgICAgICAgTEVUVEVSU19VTlNIQVBFIHwgTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9FTkQsCisgICAgICAgICAgICAgICAgICAgICAgIEFyYWJpY1NoYXBpbmdFeGNlcHRpb24uY2xhc3MpLAorCisgICAgICAgIFRlc3REYXRhLmVycm9yKCJcdWZlZjdcdTAwMjAiLAorICAgICAgICAgICAgICAgICAgICAgICBMRVRURVJTX1VOU0hBUEUgfCBMRU5HVEhfRklYRURfU1BBQ0VTX0FUX0JFR0lOTklORywKKyAgICAgICAgICAgICAgICAgICAgICAgQXJhYmljU2hhcGluZ0V4Y2VwdGlvbi5jbGFzcyksCisKKyAgICAgICAgLyogYmFkIG9wdGlvbnMgKi8KKyAgICAgICAgVGVzdERhdGEuZXJyb3IoIlx1ZmVmNyIsCisgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYsCisgICAgICAgICAgICAgICAgICAgICAgIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi5jbGFzcyksCisgICAgfTsKKworICAgIHB1YmxpYyB2b2lkIHRlc3RTdGFuZGFyZCgpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgVGVzdERhdGEgdGVzdCA9IHRlc3RzW2ldOworCisgICAgICAgICAgICBFeGNlcHRpb24gZXggPSBudWxsOworICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IG51bGw7CisgICAgICAgICAgICBBcmFiaWNTaGFwaW5nIHNoYXBlciA9IG51bGw7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHNoYXBlciA9IG5ldyBBcmFiaWNTaGFwaW5nKHRlc3QuZmxhZ3MpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHNoYXBlci5zaGFwZSh0ZXN0LnNvdXJjZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBleCA9IGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHN3aXRjaCAodGVzdC50eXBlKSB7CisgICAgICAgICAgICBjYXNlIFRlc3REYXRhLlNUQU5EQVJEOgorICAgICAgICAgICAgICAgIGlmICghdGVzdC5yZXN1bHQuZXF1YWxzKHJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVwb3J0VGVzdEZhaWx1cmUoaSwgdGVzdCwgc2hhcGVyLCByZXN1bHQsIGV4KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlIFRlc3REYXRhLlBSRUZMSUdIVDoKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IG51bGwgfHwgdGVzdC5sZW5ndGggIT0gcmVzdWx0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlcG9ydFRlc3RGYWlsdXJlKGksIHRlc3QsIHNoYXBlciwgcmVzdWx0LCBleCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIFRlc3REYXRhLkVSUk9SOgorICAgICAgICAgICAgICAgIGlmICghdGVzdC5lcnJvci5pc0luc3RhbmNlKGV4KSkgeworICAgICAgICAgICAgICAgICAgICByZXBvcnRUZXN0RmFpbHVyZShpLCB0ZXN0LCBzaGFwZXIsIHJlc3VsdCwgZXgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgCisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVwb3J0VGVzdEZhaWx1cmUoaW50IGluZGV4LCBUZXN0RGF0YSB0ZXN0LCBBcmFiaWNTaGFwaW5nIHNoYXBlciwgU3RyaW5nIHJlc3VsdCwgRXhjZXB0aW9uIGVycm9yKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGJ1Zi5hcHBlbmQoIioqKiB0ZXN0IGZhaWx1cmUgKioqXG4iKTsKKyAgICAgICAgYnVmLmFwcGVuZCgiaW5kZXg6ICIgKyBpbmRleCArICJcbiIpOworICAgICAgICBidWYuYXBwZW5kKCJ0ZXN0OiAiICsgdGVzdCArICJcbiIpOworICAgICAgICBidWYuYXBwZW5kKCJzaGFwZXI6ICIgKyBzaGFwZXIgKyAiXG4iKTsKKyAgICAgICAgYnVmLmFwcGVuZCgicmVzdWx0OiAiICsgZXNjYXBlZFN0cmluZyhyZXN1bHQpICsgIlxuIik7CisgICAgICAgIGJ1Zi5hcHBlbmQoImVycm9yOiAiICsgZXJyb3IgKyAiXG4iKTsKKworICAgICAgICBpZiAocmVzdWx0ICE9IG51bGwgJiYgdGVzdC5yZXN1bHQgIT0gbnVsbCAmJiAhdGVzdC5yZXN1bHQuZXF1YWxzKHJlc3VsdCkpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTWF0aC5tYXgodGVzdC5yZXN1bHQubGVuZ3RoKCksIHJlc3VsdC5sZW5ndGgoKSk7ICsraSkgeworICAgICAgICAgICAgICAgIFN0cmluZyB0ZW1wID0gSW50ZWdlci50b1N0cmluZyhpKTsKKyAgICAgICAgICAgICAgICBpZiAodGVtcC5sZW5ndGgoKSA8IDIpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVtcCA9ICIgIi5jb25jYXQodGVtcCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNoYXIgdHJnID0gaSA8IHRlc3QucmVzdWx0Lmxlbmd0aCgpID8gdGVzdC5yZXN1bHQuY2hhckF0KGkpIDogJ1x1ZmZmZic7CisgICAgICAgICAgICAgICAgY2hhciByZXMgPSBpIDwgcmVzdWx0Lmxlbmd0aCgpID8gcmVzdWx0LmNoYXJBdChpKSA6ICdcdWZmZmYnOworCisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiWyIgKyB0ZW1wICsgIl0gIik7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChlc2NhcGVkU3RyaW5nKCIiICsgdHJnKSArICIgIik7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChlc2NhcGVkU3RyaW5nKCIiICsgcmVzKSArICIgIik7CisgICAgICAgICAgICAgICAgaWYgKHRyZyAhPSByZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiKioqIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIlxuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZXJyKGJ1Zi50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgZXNjYXBlZFN0cmluZyhTdHJpbmcgc3RyKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKHN0ci5sZW5ndGgoKSAqIDYpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHN0ci5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGNoID0gc3RyLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIlxcdSIpOworICAgICAgICAgICAgaWYgKGNoIDwgMHgxMDAwKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnMCcpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGNoIDwgMHgwMTAwKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnMCcpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGNoIDwgMHgwMDEwKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnMCcpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVmLmFwcGVuZChJbnRlZ2VyLnRvSGV4U3RyaW5nKGNoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG5ldyBBcmFiaWNTaGFwaW5nUmVnVGVzdCgpLnJ1bihhcmdzKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihlKTsKKyAgICAgICAgfQorICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NoYXBpbmcvQXJhYmljU2hhcGluZ1Rlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zaGFwaW5nL0FyYWJpY1NoYXBpbmdUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDI3MzM1YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zaGFwaW5nL0FyYWJpY1NoYXBpbmdUZXN0LmphdmEKQEAgLTAsMCArMSwyODYgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChDKSAyMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnNoYXBpbmc7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkFyYWJpY1NoYXBpbmc7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5BcmFiaWNTaGFwaW5nRXhjZXB0aW9uOworCisvKioKKyAqIEludGVyYWN0aXZlIHRlc3QgZm9yIEFyYWJpYyBzaGFwaW5nLgorICogSW52b2tlIGZyb20gYSBjb21tYW5kIGxpbmUgcGFzc2luZyBhcmdzIGFuZCBzdHJpbmdzLiAgVXNlICctaGVscCcgdG8gc2VlIGRlc2NyaXB0aW9uIG9mIGFyZ3VtZW50cy4KKyAqLworcHVibGljIGNsYXNzIEFyYWJpY1NoYXBpbmdUZXN0IHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09QWSA9IDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElOUExBQ0UgPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTVFJJTkcgPSAyOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBpbnQgdGVzdHR5cGUgPSBDT1BZOworICAgICAgICBpbnQgb3B0aW9ucyA9IDA7CisgICAgICAgIGludCBzcyA9IDA7CisgICAgICAgIGludCBzbCA9IC0xOworICAgICAgICBpbnQgZHMgPSAwOworICAgICAgICBpbnQgZGwgPSAtMTsKKyAgICAgICAgU3RyaW5nIHRleHQgPSAiJDIyLjQgdGVzdCAxMjMgXHVmZWY2XHUwNjQ0XHUwNjIyIDQ1NiBcdTA2NjRcdTA2NjVcdTA2NjYhIjsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBhcmcgPSBhcmdzW2ldOworICAgICAgICAgICAgaWYgKGFyZy5jaGFyQXQoMCkgPT0gJy0nKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIG9wdCA9IGFyZy5zdWJzdHJpbmcoMSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHZhbCA9IG9wdDsKKyAgICAgICAgICAgICAgICBpbnQgaW5kZXggPSBhcmcuaW5kZXhPZignOicpOworICAgICAgICAgICAgICAgIGlmIChpbmRleCAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICBvcHQgPSBvcHQuc3Vic3RyaW5nKDAsIE1hdGgubWluKGluZGV4LCAzKSk7CisgICAgICAgICAgICAgICAgICAgIHZhbCA9IGFyZy5zdWJzdHJpbmcoaW5kZXggKyAxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKG9wdC5lcXVhbHNJZ25vcmVDYXNlKCJsZW4iKSkgeworICAgICAgICAgICAgICAgICAgICBvcHRpb25zICY9IH5BcmFiaWNTaGFwaW5nLkxFTkdUSF9NQVNLOworICAgICAgICAgICAgICAgICAgICBpZiAodmFsLmVxdWFsc0lnbm9yZUNhc2UoImdzIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgfD0gQXJhYmljU2hhcGluZy5MRU5HVEhfR1JPV19TSFJJTks7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsLmVxdWFsc0lnbm9yZUNhc2UoInNuIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgfD0gQXJhYmljU2hhcGluZy5MRU5HVEhfRklYRURfU1BBQ0VTX05FQVI7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsLmVxdWFsc0lnbm9yZUNhc2UoInNlIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgfD0gQXJhYmljU2hhcGluZy5MRU5HVEhfRklYRURfU1BBQ0VTX0FUX0VORDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWwuZXF1YWxzSWdub3JlQ2FzZSgic2IiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyB8PSBBcmFiaWNTaGFwaW5nLkxFTkdUSF9GSVhFRF9TUEFDRVNfQVRfQkVHSU5OSU5HOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dWYWxFcnJvcihvcHQsIHZhbCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG9wdC5lcXVhbHNJZ25vcmVDYXNlKCJkaXIiKSkgeworICAgICAgICAgICAgICAgICAgICBvcHRpb25zICY9IH5BcmFiaWNTaGFwaW5nLlRFWFRfRElSRUNUSU9OX01BU0s7CisgICAgICAgICAgICAgICAgICAgIGlmICh2YWwuZXF1YWxzSWdub3JlQ2FzZSgibG9nIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgfD0gQXJhYmljU2hhcGluZy5URVhUX0RJUkVDVElPTl9MT0dJQ0FMOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbC5lcXVhbHNJZ25vcmVDYXNlKCJ2aXMiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyB8PSBBcmFiaWNTaGFwaW5nLlRFWFRfRElSRUNUSU9OX1ZJU1VBTF9MVFI7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd1ZhbEVycm9yKG9wdCwgdmFsKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0LmVxdWFsc0lnbm9yZUNhc2UoImxldCIpKSB7CisgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgJj0gfkFyYWJpY1NoYXBpbmcuTEVUVEVSU19NQVNLOworICAgICAgICAgICAgICAgICAgICBpZiAodmFsLmVxdWFsc0lnbm9yZUNhc2UoIm5vIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgfD0gQXJhYmljU2hhcGluZy5MRVRURVJTX05PT1A7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsLmVxdWFsc0lnbm9yZUNhc2UoInNoIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgfD0gQXJhYmljU2hhcGluZy5MRVRURVJTX1NIQVBFOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbC5lcXVhbHNJZ25vcmVDYXNlKCJ1biIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zIHw9IEFyYWJpY1NoYXBpbmcuTEVUVEVSU19VTlNIQVBFOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbC5lcXVhbHNJZ25vcmVDYXNlKCJ0YSIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zIHw9IEFyYWJpY1NoYXBpbmcuTEVUVEVSU19TSEFQRV9UQVNIS0VFTF9JU09MQVRFRDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93VmFsRXJyb3Iob3B0LCB2YWwpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChvcHQuZXF1YWxzSWdub3JlQ2FzZSgiZGlnIikpIHsKKyAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyAmPSB+QXJhYmljU2hhcGluZy5ESUdJVFNfTUFTSzsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhbC5lcXVhbHNJZ25vcmVDYXNlKCJubyIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zIHw9IEFyYWJpY1NoYXBpbmcuRElHSVRTX05PT1A7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsLmVxdWFsc0lnbm9yZUNhc2UoImVhIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgfD0gQXJhYmljU2hhcGluZy5ESUdJVFNfRU4yQU47CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsLmVxdWFsc0lnbm9yZUNhc2UoImFlIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgfD0gQXJhYmljU2hhcGluZy5ESUdJVFNfQU4yRU47CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsLmVxdWFsc0lnbm9yZUNhc2UoImxyIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgfD0gQXJhYmljU2hhcGluZy5ESUdJVFNfRU4yQU5fSU5JVF9MUjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWwuZXF1YWxzSWdub3JlQ2FzZSgiYWwiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyB8PSBBcmFiaWNTaGFwaW5nLkRJR0lUU19FTjJBTl9JTklUX0FMOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dWYWxFcnJvcihvcHQsIHZhbCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG9wdC5lcXVhbHNJZ25vcmVDYXNlKCJ0eXAiKSkgeworICAgICAgICAgICAgICAgICAgICBvcHRpb25zICY9IH5BcmFiaWNTaGFwaW5nLkRJR0lUX1RZUEVfTUFTSzsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhbC5lcXVhbHNJZ25vcmVDYXNlKCJhbiIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zIHw9IEFyYWJpY1NoYXBpbmcuRElHSVRfVFlQRV9BTjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWwuZXF1YWxzSWdub3JlQ2FzZSgiZXgiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyB8PSBBcmFiaWNTaGFwaW5nLkRJR0lUX1RZUEVfQU5fRVhURU5ERUQ7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd1ZhbEVycm9yKG9wdCwgdmFsKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0LmVxdWFsc0lnbm9yZUNhc2UoImRzdCIpKSB7CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkcyA9IEludGVnZXIucGFyc2VJbnQodmFsKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93VmFsRXJyb3Iob3B0LCB2YWwpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChvcHQuZXF1YWxzSWdub3JlQ2FzZSgiZGxuIikpIHsKKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRsID0gSW50ZWdlci5wYXJzZUludCh2YWwpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dWYWxFcnJvcihvcHQsIHZhbCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG9wdC5lcXVhbHNJZ25vcmVDYXNlKCJzc3QiKSkgeworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgc3MgPSBJbnRlZ2VyLnBhcnNlSW50KHZhbCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd1ZhbEVycm9yKG9wdCwgdmFsKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0LmVxdWFsc0lnbm9yZUNhc2UoInNsbiIpKSB7CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzbCA9IEludGVnZXIucGFyc2VJbnQodmFsKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93VmFsRXJyb3Iob3B0LCB2YWwpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChvcHQuZXF1YWxzSWdub3JlQ2FzZSgidGVzIikpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhbC5lcXVhbHNJZ25vcmVDYXNlKCJjcCIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0dHlwZSA9IENPUFk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsLmVxdWFsc0lnbm9yZUNhc2UoImlwIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3R0eXBlID0gSU5QTEFDRTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWwuZXF1YWxzSWdub3JlQ2FzZSgic3QiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdHR5cGUgPSBTVFJJTkc7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd1ZhbEVycm9yKG9wdCwgdmFsKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0LmVxdWFsc0lnbm9yZUNhc2UoImhlbHAiKSkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4odXNhZ2UpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93T3B0RXJyb3Iob3B0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIGFzc3VtZSB0ZXh0CisgICAgICAgICAgICAgICAgdGV4dCA9IHBhcnNlVGV4dChhcmcpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHNsIDwgMCkgeworICAgICAgICAgICAgc2wgPSB0ZXh0Lmxlbmd0aCgpIC0gc3M7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oInNsIGRlZmF1bHRpbmcgdG8gIiArIHNsKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZGwgPCAwKSB7CisgICAgICAgICAgICBkbCA9IDIgKiBzbDsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZGwgZGVmYXVsdGluZyB0byAiICsgZGwpOworICAgICAgICB9CisKKyAgICAgICAgQXJhYmljU2hhcGluZyBzaGFwZXIgPSBuZXcgQXJhYmljU2hhcGluZyhvcHRpb25zKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJzaGFwZXI6ICIgKyBzaGFwZXIpOworCisgICAgICAgIGNoYXJbXSBzcmMgPSB0ZXh0LnRvQ2hhckFycmF5KCk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiIGlucHV0OiAnIiArIGVzY2FwZWRUZXh0KHNyYywgc3MsIHNsKSArICInIik7CisgICAgICAgIGlmICh0ZXN0dHlwZSAhPSBTVFJJTkcpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigic3RhcnQ6ICIgKyBzcyArICIgbGVuZ3RoOiAiICsgc2wgKyAiIHRvdGFsIGxlbmd0aDogIiArIHNyYy5sZW5ndGgpOworICAgICAgICB9CisKKyAgICAgICAgaW50IHJlc3VsdCA9IC0xOworICAgICAgICBjaGFyW10gZGVzdCA9IG51bGw7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHN3aXRjaCAodGVzdHR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgQ09QWToKKyAgICAgICAgICAgICAgICBkZXN0ID0gbmV3IGNoYXJbZHMgKyBkbF07CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gc2hhcGVyLnNoYXBlKHNyYywgc3MsIHNsLCBkZXN0LCBkcywgZGwpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIElOUExBQ0U6CisgICAgICAgICAgICAgICAgc2hhcGVyLnNoYXBlKHNyYywgc3MsIHNsKTsKKyAgICAgICAgICAgICAgICBkcyA9IHNzOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHNsOworICAgICAgICAgICAgICAgIGRlc3QgPSBzcmM7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgU1RSSU5HOgorICAgICAgICAgICAgICAgIGRlc3QgPSBzaGFwZXIuc2hhcGUodGV4dCkudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgICAgICAgICBkcyA9IDA7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZGVzdC5sZW5ndGg7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigib3V0cHV0OiAnIiArIGVzY2FwZWRUZXh0KGRlc3QsIGRzLCByZXN1bHQpICsgIiciKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigibGVuZ3RoOiAiICsgcmVzdWx0KTsKKyAgICAgICAgICAgIGlmIChkcyAhPSAwIHx8IHJlc3VsdCAhPSBkZXN0Lmxlbmd0aCkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZnVsbCBvdXRwdXQ6ICciICsgZXNjYXBlZFRleHQoZGVzdCwgMCwgZGVzdC5sZW5ndGgpICsgIiciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoQXJhYmljU2hhcGluZ0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNhdWdodCBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uIik7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNhdWdodCBFeGNlcHRpb24iKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgdGhyb3dPcHRFcnJvcihTdHJpbmcgb3B0KSB7CisgICAgICAgIHRocm93VXNhZ2VFcnJvcigidW5rbm93biBvcHRpb246ICIgKyBvcHQpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgdGhyb3dWYWxFcnJvcihTdHJpbmcgb3B0LCBTdHJpbmcgdmFsKSB7CisgICAgICAgIHRocm93VXNhZ2VFcnJvcigidW5rbm93biB2YWx1ZTogIiArIHZhbCArICIgZm9yIG9wdGlvbjogIiArIG9wdCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCB0aHJvd1VzYWdlRXJyb3IoU3RyaW5nIG1lc3NhZ2UpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoIioqKiB1c2FnZSBlcnJvciAqKipcbiIpOworICAgICAgICBidWYuYXBwZW5kKG1lc3NhZ2UpOworICAgICAgICBidWYuYXBwZW5kKCJcbiIpOworICAgICAgICBidWYuYXBwZW5kKHVzYWdlKTsKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGJ1Zi50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgdXNhZ2UgPSAKKyAgICAgICAgIlVzYWdlOiBbb3B0aW9uXSogW3RleHRdXG4iICsKKyAgICAgICAgIiAgd2hlcmUgb3B0aW9uIGlzIGluIHRoZSBmb3JtYXQgJy1vcHRbOnZhbF0nXG4iICsKKyAgICAgICAgIiAgb3B0aW9ucyBhcmU6XG4iICsKKyAgICAgICAgIiAgICAtbGVuOltnc3xzbnxzZXxzYl0gICAgKGxlbmd0aDogZ3Jvdy9zaHJpbmssIHNwYWNlcyBuZWFyLCBzcGFjZXMgZW5kLCBzcGFjZXMgYmVnaW5uaW5nKVxuIiArCisgICAgICAgICIgICAgLWRpcjpbbG9nfHZpc10gICAgICAgIChkaXJlY3Rpb246IGxvZ2ljYWwsIHZpc3VhbClcbiIgKworICAgICAgICAiICAgIC1sZXQ6W25vfHNofHVufHRhXSAgICAobGV0dGVyczogbm9vcCwgc2hhcGUsIHVuc2hhcGUsIHRhc2hrZWVsKVxuIiArCisgICAgICAgIC8vICIgICAgLWxldDpbbm98c2h8dW5dICAgICAgIChsZXR0ZXJzOiBub29wLCBzaGFwZSwgdW5zaGFwZSlcbiIgKworICAgICAgICAiICAgIC1kaWc6W25vfGVhfGFlfGxyfGFsXSAoZGlnaXRzOiBub29wLCBlbjJhbiwgYW4yZW4sIGVuMmFuX2xyLCBlbjJhbl9hbClcbiIgKworICAgICAgICAiICAgIC10eXA6W2FufGV4XSAgICAgICAgICAoZGlnaXQgdHlwZTogYXJhYmljLCBhcmFiaWMgZXh0ZW5kZWQpXG4iICsKKyAgICAgICAgIiAgICAtZHN0OiMgICAgICAgICAgICAgICAgKGRlc3Qgc3RhcnQ6IFtpbnRlZ2VyXSlcbiIgKworICAgICAgICAiICAgIC1kbG46IyAgICAgICAgICAgICAgICAoZGVzdCBsZW5ndGggKG1heCBzaXplKTogW2ludGVnZXJdKVxuIiArCisgICAgICAgICIgICAgLXNzdDojICAgICAgICAgICAgICAgIChzb3VyY2Ugc3RhcnQ6IFtpbnRlZ2VyXSlcbiIgKworICAgICAgICAiICAgIC1zbG46IyAgICAgICAgICAgICAgICAoc291cmNlIGxlbmd0aDogW2ludGVnZXJdKVxuIiArCisgICAgICAgICIgICAgLXRlczpbY3B8aXB8c3RdICAgICAgICh0ZXN0IHR5cGU6IGNvcHksIGluIHBsYWNlLCBzdHJpbmcpXG4iICsKKyAgICAgICAgIiAgICAtaGVscCAgICAgICAgICAgICAgICAgKHByaW50IHRoaXMgaGVscCBtZXNzYWdlKVxuIiArCisgICAgICAgICIgIHRleHQgY2FuIGNvbnRhaW4gdW5pY29kZSBlc2NhcGUgdmFsdWVzIGluIHRoZSBmb3JtYXQgJ1xcdVhYWFgnIG9ubHlcbiI7CisgICAgICAgIAorICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBlc2NhcGVkVGV4dChjaGFyW10gdGV4dCwgaW50IHN0YXJ0LCBpbnQgbGVuZ3RoKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGkgPSBzdGFydCwgZSA9IHN0YXJ0ICsgbGVuZ3RoOyBpIDwgZTsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGNoID0gdGV4dFtpXTsKKyAgICAgICAgICAgIGlmIChjaCA8IDB4MjAgfHwgY2ggPiAweDdlKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiXFx1Iik7CisgICAgICAgICAgICAgICAgaWYgKGNoIDwgMHgxMDAwKSB7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJzAnKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGNoIDwgMHgxMDApIHsKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnMCcpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoY2ggPCAweDEwKSB7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJzAnKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChJbnRlZ2VyLnRvSGV4U3RyaW5nKGNoKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoY2gpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgcGFyc2VUZXh0KFN0cmluZyB0ZXh0KSB7CisgICAgICAgIC8vIHByb2Nlc3MgdW5pY29kZSBlc2NhcGVzIChvbmx5KQorICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBjaGFyW10gY2hhcnMgPSB0ZXh0LnRvQ2hhckFycmF5KCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2hhcnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgY2ggPSBjaGFyc1tpXTsKKyAgICAgICAgICAgIGlmIChjaCA9PSAnXFwnKSB7CisgICAgICAgICAgICAgICAgaWYgKChpIDwgY2hhcnMubGVuZ3RoIC0gMSkgJiYKKyAgICAgICAgICAgICAgICAgICAgKGNoYXJzW2krMV0gPT0gJ3UnKSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgdmFsID0gSW50ZWdlci5wYXJzZUludCh0ZXh0LnN1YnN0cmluZyhpKzIsIGkrNiksIDE2KTsKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgoY2hhcil2YWwpOworICAgICAgICAgICAgICAgICAgICBpICs9IDU7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnXFwnKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoY2gpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdGltZXpvbmUvVGltZVpvbmVCb3VuZGFyeVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lem9uZS9UaW1lWm9uZUJvdW5kYXJ5VGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFjOTgwOGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdGltZXpvbmUvVGltZVpvbmVCb3VuZGFyeVRlc3QuamF2YQpAQCAtMCwwICsxLDcxNSBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lem9uZS9UaW1lWm9uZUJvdW5kYXJ5VGVzdC5qYXZhLHYgJAorICogJERhdGU6IDIwMDIvMDgvMTMgMjI6MDQ6MzkgJAorICogJFJldmlzaW9uOiAxLjYgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudGltZXpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKKworLyoqCisgKiBBIHRlc3Qgd2hpY2ggZGlzY292ZXJzIHRoZSBib3VuZGFyaWVzIG9mIERTVCBwcm9ncmFtbWF0aWNhbGx5IGFuZCB2ZXJpZmllcworICogdGhhdCB0aGV5IGFyZSBjb3JyZWN0LgorICovCitwdWJsaWMgY2xhc3MgVGltZVpvbmVCb3VuZGFyeVRlc3QgZXh0ZW5kcyBUZXN0Rm13aworeworICAgIHN0YXRpYyBmaW5hbCBpbnQgT05FX1NFQ09ORCA9IDEwMDA7CisgICAgc3RhdGljIGZpbmFsIGludCBPTkVfTUlOVVRFID0gNjAqT05FX1NFQ09ORDsKKyAgICBzdGF0aWMgZmluYWwgaW50IE9ORV9IT1VSID0gNjAqT05FX01JTlVURTsKKyAgICBzdGF0aWMgZmluYWwgbG9uZyBPTkVfREFZID0gMjQqT05FX0hPVVI7CisgICAgc3RhdGljIGZpbmFsIGxvbmcgT05FX1lFQVIgPSAobG9uZykoMzY1LjI1ICogT05FX0RBWSk7CisgICAgc3RhdGljIGZpbmFsIGxvbmcgU0lYX01PTlRIUyA9IE9ORV9ZRUFSIC8gMjsKKworICAgIHN0YXRpYyBmaW5hbCBpbnQgTU9OVEhfTEVOR1RIW10gPSB7MzEsMjksMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzF9OworCisgICAgLy8gVGhlc2UgdmFsdWVzIGFyZSBlbXBpcmljYWxseSBkZXRlcm1pbmVkIHRvIGJlIGNvcnJlY3QKKyAgICBzdGF0aWMgZmluYWwgbG9uZyBQU1RfMTk5N19CRUcgID0gODYwMzIwODAwMDAwTDsKKyAgICBzdGF0aWMgZmluYWwgbG9uZyBQU1RfMTk5N19FTkQgID0gODc3ODU2NDAwMDAwTDsKKworICAgIC8vIE1pbmltdW0gaW50ZXJ2YWwgZm9yIGJpbmFyeSBzZWFyY2hlcyBpbiBtczsgc2hvdWxkIGJlIG5vIGxhcmdlcgorICAgIC8vIHRoYW4gMTAwMC4KKyAgICBzdGF0aWMgZmluYWwgbG9uZyBJTlRFUlZBTCA9IDEwOyAvLyBNaWxsaXNlY29uZHMKKworICAgIC8vIFszSmFuMDEgTGl1XSBVcGRhdGVkIGZvciAyMDAwZiBkYXRhCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBBVVNUUkFMSUEgPSAiQXVzdHJhbGlhL0FkZWxhaWRlIjsKKyAgICBzdGF0aWMgZmluYWwgbG9uZyBBVVNUUkFMSUFfMTk5N19CRUcgPSA4Nzc3OTcwMDAwMDBMOworICAgIHN0YXRpYyBmaW5hbCBsb25nIEFVU1RSQUxJQV8xOTk3X0VORCA9IDg1OTY1MzAwMDAwMEw7CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBUaW1lWm9uZUJvdW5kYXJ5VGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEYXRlLnRvU3RyaW5nKCkuc3Vic3RyaW5nKCkgQm91bmRhcnkgVGVzdAorICAgICAqIExvb2sgZm9yIGEgRFNUIGNoYW5nZW92ZXIgdG8gb2NjdXIgd2l0aGluIDYgbW9udGhzIG9mIHRoZSBnaXZlbiBEYXRlLgorICAgICAqIFRoZSBpbml0aWFsIERhdGUudG9TdHJpbmcoKSBzaG91bGQgeWllbGQgYSBzdHJpbmcgY29udGFpbmluZyB0aGUKKyAgICAgKiBzdGFydE1vZGUgYXMgYSBTVUJTVFJJTkcuICBUaGUgYm91bmRhcnkgd2lsbCBiZSB0ZXN0ZWQgdG8gYmUKKyAgICAgKiBhdCB0aGUgZXhwZWN0ZWRCb3VuZGFyeSB2YWx1ZS4KKyAgICAgKi8KKyAgICB2b2lkIGZpbmREYXlsaWdodEJvdW5kYXJ5VXNpbmdEYXRlKERhdGUgZCwgU3RyaW5nIHN0YXJ0TW9kZSwgbG9uZyBleHBlY3RlZEJvdW5kYXJ5KQorICAgIHsKKyAgICAgICAgLy8gR2l2ZW4gYSBkYXRlIHdpdGggYSB5ZWFyIHN0YXJ0LCBmaW5kIHRoZSBEYXlsaWdodCBvbnNldAorICAgICAgICAvLyBhbmQgZW5kLiAgVGhlIGdpdmVuIGRhdGUgc2hvdWxkIGJlIDEvMS94eCBpbiBzb21lIHllYXIuCisKKyAgICAgICAgaWYgKGQudG9TdHJpbmcoKS5pbmRleE9mKHN0YXJ0TW9kZSkgPT0gLTEpCisgICAgICAgIHsKKyAgICAgICAgICAgIGxvZ2xuKCJFcnJvcjogIiArIHN0YXJ0TW9kZSArICIgbm90IHByZXNlbnQgaW4gIiArIGQpOworICAgICAgICB9CisKKyAgICAgICAgLy8gVXNlIGEgYmluYXJ5IHNlYXJjaCwgYXNzdW1pbmcgdGhhdCB3ZSBoYXZlIGEgU3RhbmRhcmQKKyAgICAgICAgLy8gdGltZSBhdCB0aGUgbWlkcG9pbnQuCisgICAgICAgIGxvbmcgbWluID0gZC5nZXRUaW1lKCk7CisgICAgICAgIGxvbmcgbWF4ID0gbWluICsgU0lYX01PTlRIUzsKKworICAgICAgICB3aGlsZSAoKG1heCAtIG1pbikgPiAgSU5URVJWQUwpCisgICAgICAgIHsKKyAgICAgICAgICAgIGxvbmcgbWlkID0gKG1pbiArIG1heCkgPj4gMTsKKyAgICAgICAgICAgIFN0cmluZyBzID0gbmV3IERhdGUobWlkKS50b1N0cmluZygpOworICAgICAgICAgICAgLy8gbG9nbG4ocyk7CisgICAgICAgICAgICBpZiAocy5pbmRleE9mKHN0YXJ0TW9kZSkgIT0gLTEpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbWluID0gbWlkOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIG1heCA9IG1pZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGxvZ2xuKCJEYXRlIEJlZm9yZTogIiArIHNob3dEYXRlKG1pbikpOworICAgICAgICBsb2dsbigiRGF0ZSBBZnRlcjogICIgKyBzaG93RGF0ZShtYXgpKTsKKyAgICAgICAgbG9uZyBtaW5kZWx0YSA9IGV4cGVjdGVkQm91bmRhcnkgLSBtaW47CisgICAgICAgIC8vIG5vdCB1c2VkIGxvbmcgbWF4ZGVsdGEgPSBtYXggLSBleHBlY3RlZEJvdW5kYXJ5OworICAgICAgICBpZiAobWluZGVsdGEgPj0gMCAmJiBtaW5kZWx0YSA8PSBJTlRFUlZBTCAmJgorICAgICAgICAgICAgbWluZGVsdGEgPj0gMCAmJiBtaW5kZWx0YSA8PSBJTlRFUlZBTCkKKyAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBFeHBlY3RlZCBib3VuZGFyeSBhdCAiICsgZXhwZWN0ZWRCb3VuZGFyeSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCBib3VuZGFyeSBhdCAiICsgZXhwZWN0ZWRCb3VuZGFyeSk7CisgICAgfQorCisgICAgLy8gVGhpcyB0ZXN0IGNhbm5vdCBiZSBjb21waWxlZCB1bnRpbCB0aGUgaW5EYXlsaWdodFRpbWUoKSBtZXRob2Qgb2YgR3JlZ29yaWFuQ2FsZW5kYXIKKyAgICAvLyBiZWNvbWVzIHB1YmxpYy4KKyAgICAvLyAgICBzdGF0aWMgdm9pZCBmaW5kRGF5bGlnaHRCb3VuZGFyeVVzaW5nQ2FsZW5kYXIoRGF0ZSBkLCBib29sZWFuIHN0YXJ0c0luRFNUKQorICAgIC8vICAgIHsKKyAgICAvLyAgLy8gR2l2ZW4gYSBkYXRlIHdpdGggYSB5ZWFyIHN0YXJ0LCBmaW5kIHRoZSBEYXlsaWdodCBvbnNldAorICAgIC8vICAvLyBhbmQgZW5kLiAgVGhlIGdpdmVuIGRhdGUgc2hvdWxkIGJlIDEvMS94eCBpbiBzb21lIHllYXIuCisgICAgLy8KKyAgICAvLyAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgLy8gIGNhbC5zZXRUaW1lKGQpOworICAgIC8vICBpZiAoY2FsLmluRGF5bGlnaHRUaW1lKCkgIT0gc3RhcnRzSW5EU1QpCisgICAgLy8gIHsKKyAgICAvLyAgICAgIGxvZ2xuKCJFcnJvcjogaW5EYXlsaWdodFRpbWUoIiArIGQgKyAiKSAhPSAiICsgc3RhcnRzSW5EU1QpOworICAgIC8vICB9CisgICAgLy8KKyAgICAvLyAgLy8gVXNlIGEgYmluYXJ5IHNlYXJjaCwgYXNzdW1pbmcgdGhhdCB3ZSBoYXZlIGEgU3RhbmRhcmQKKyAgICAvLyAgLy8gdGltZSBhdCB0aGUgbWlkcG9pbnQuCisgICAgLy8gIGxvbmcgbWluID0gZC5nZXRUaW1lKCk7CisgICAgLy8gIGxvbmcgbWF4ID0gbWluICsgKGxvbmcpKDM2NS4yNSAvIDIgKiAyNCo2MCo2MCoxMDAwKTsKKyAgICAvLworICAgIC8vICB3aGlsZSAoKG1heCAtIG1pbikgPiAgSU5URVJWQUwpCisgICAgLy8gIHsKKyAgICAvLyAgICAgIGxvbmcgbWlkID0gKG1pbiArIG1heCkgPj4gMTsKKyAgICAvLyAgICAgIGNhbC5zZXRUaW1lKG5ldyBEYXRlKG1pZCkpOworICAgIC8vICAgICAgaWYgKGNhbC5pbkRheWxpZ2h0VGltZSgpID09IHN0YXJ0c0luRFNUKQorICAgIC8vICAgICAgeworICAgIC8vICAgICAgbWluID0gbWlkOworICAgIC8vICAgICAgfQorICAgIC8vICAgICAgZWxzZQorICAgIC8vICAgICAgeworICAgIC8vICAgICAgbWF4ID0gbWlkOworICAgIC8vICAgICAgfQorICAgIC8vICB9CisgICAgLy8KKyAgICAvLyAgbG9nbG4oIkNhbGVuZGFyIEJlZm9yZTogIiArIHNob3dEYXRlKG1pbikpOworICAgIC8vICBsb2dsbigiQ2FsZW5kYXIgQWZ0ZXI6ICAiICsgc2hvd0RhdGUobWF4KSk7CisgICAgLy8gICAgfQorCisgICAgdm9pZCBmaW5kRGF5bGlnaHRCb3VuZGFyeVVzaW5nVGltZVpvbmUoRGF0ZSBkLCBib29sZWFuIHN0YXJ0c0luRFNULCBsb25nIGV4cGVjdGVkQm91bmRhcnkpCisgICAgeworICAgICAgICBmaW5kRGF5bGlnaHRCb3VuZGFyeVVzaW5nVGltZVpvbmUoZCwgc3RhcnRzSW5EU1QsIGV4cGVjdGVkQm91bmRhcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaW1lWm9uZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIHZvaWQgZmluZERheWxpZ2h0Qm91bmRhcnlVc2luZ1RpbWVab25lKERhdGUgZCwgYm9vbGVhbiBzdGFydHNJbkRTVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGV4cGVjdGVkQm91bmRhcnksIFRpbWVab25lIHR6KQorICAgIHsKKyAgICAgICAgLy8gR2l2ZW4gYSBkYXRlIHdpdGggYSB5ZWFyIHN0YXJ0LCBmaW5kIHRoZSBEYXlsaWdodCBvbnNldAorICAgICAgICAvLyBhbmQgZW5kLiAgVGhlIGdpdmVuIGRhdGUgc2hvdWxkIGJlIDEvMS94eCBpbiBzb21lIHllYXIuCisKKyAgICAgICAgLy8gVXNlIGEgYmluYXJ5IHNlYXJjaCwgYXNzdW1pbmcgdGhhdCB3ZSBoYXZlIGEgU3RhbmRhcmQKKyAgICAgICAgLy8gdGltZSBhdCB0aGUgbWlkcG9pbnQuCisgICAgICAgIGxvbmcgbWluID0gZC5nZXRUaW1lKCk7CisgICAgICAgIGxvbmcgbWF4ID0gbWluICsgU0lYX01PTlRIUzsKKworICAgICAgICBpZiAodHouaW5EYXlsaWdodFRpbWUoZCkgIT0gc3RhcnRzSW5EU1QpCisgICAgICAgIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgdHouZ2V0SUQoKSArICIgaW5EYXlsaWdodFRpbWUoIiArCisgICAgICAgICAgICAgICAgICBkICsgIikgIT0gIiArIHN0YXJ0c0luRFNUKTsKKyAgICAgICAgICAgIHN0YXJ0c0luRFNUID0gIXN0YXJ0c0luRFNUOyAvLyBGbGlwIG92ZXI7IGZpbmQgdGhlIGFwcGFyZW50IHZhbHVlCisgICAgICAgIH0KKworICAgICAgICBpZiAodHouaW5EYXlsaWdodFRpbWUobmV3IERhdGUobWF4KSkgPT0gc3RhcnRzSW5EU1QpCisgICAgICAgIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgdHouZ2V0SUQoKSArICIgaW5EYXlsaWdodFRpbWUoIiArCisgICAgICAgICAgICAgICAgICAobmV3IERhdGUobWF4KSkgKyAiKSAhPSAiICsgKCFzdGFydHNJbkRTVCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgd2hpbGUgKChtYXggLSBtaW4pID4gIElOVEVSVkFMKQorICAgICAgICB7CisgICAgICAgICAgICBsb25nIG1pZCA9IChtaW4gKyBtYXgpID4+IDE7CisgICAgICAgICAgICBib29sZWFuIGlzSW4gPSB0ei5pbkRheWxpZ2h0VGltZShuZXcgRGF0ZShtaWQpKTsKKyAgICAgICAgICAgIGlmIChpc0luID09IHN0YXJ0c0luRFNUKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIG1pbiA9IG1pZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBtYXggPSBtaWQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBsb2dsbih0ei5nZXRJRCgpICsgIiBCZWZvcmU6ICIgKyBzaG93RGF0ZShtaW4sIHR6KSk7CisgICAgICAgIGxvZ2xuKHR6LmdldElEKCkgKyAiIEFmdGVyOiAgIiArIHNob3dEYXRlKG1heCwgdHopKTsKKworICAgICAgICBsb25nIG1pbmRlbHRhID0gZXhwZWN0ZWRCb3VuZGFyeSAtIG1pbjsKKyAgICAgICAgLy8gbm90IHVzZWQgbG9uZyBtYXhkZWx0YSA9IG1heCAtIGV4cGVjdGVkQm91bmRhcnk7IAorICAgICAgICBEYXRlRm9ybWF0IGZtdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkxPTkcsIERhdGVGb3JtYXQuTE9ORyk7CisgICAgICAgIGZtdC5zZXRUaW1lWm9uZSh0eik7CisgICAgICAgIGlmIChtaW5kZWx0YSA+PSAwICYmIG1pbmRlbHRhIDw9IElOVEVSVkFMICYmCisgICAgICAgICAgICBtaW5kZWx0YSA+PSAwICYmIG1pbmRlbHRhIDw9IElOVEVSVkFMKQorICAgICAgICAgICAgbG9nbG4oIlBBU1M6IEV4cGVjdGVkIGJvdW5kYXJ5IGF0ICIgKyBleHBlY3RlZEJvdW5kYXJ5ICsgIiA9ICIgKyBmbXQuZm9ybWF0KG5ldyBEYXRlKGV4cGVjdGVkQm91bmRhcnkpKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCBib3VuZGFyeSBhdCAiICsgZXhwZWN0ZWRCb3VuZGFyeSArICIgPSAiICsgZm10LmZvcm1hdChuZXcgRGF0ZShleHBlY3RlZEJvdW5kYXJ5KSkpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBzaG93RGF0ZShsb25nIGwpCisgICAgeworICAgICAgICByZXR1cm4gc2hvd0RhdGUobmV3IERhdGUobCkpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBzaG93RGF0ZShEYXRlIGQpCisgICAgeworICAgICAgICBqYXZhLnV0aWwuQ2FsZW5kYXIgY2FsID0gamF2YS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGNhbC5zZXRUaW1lKGQpOworICAgICAgICByZXR1cm4gIiIgKyAoY2FsLmdldChDYWxlbmRhci5ZRUFSKSAtIDE5MDApICsgIi8iICsgCisgICAgICAgICAgICAgICBzaG93Tk4oY2FsLmdldChDYWxlbmRhci5NT05USCkgKyAxKSArICIvIiArIAorICAgICAgICAgICAgICAgc2hvd05OKGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKSkgKyAiICIgKyAKKyAgICAgICAgICAgICAgIHNob3dOTihjYWwuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKSkgKyAiOiIgCisgICAgICAgICAgICAgICArIHNob3dOTihjYWwuZ2V0KENhbGVuZGFyLk1JTlVURSkpICsgIiBcIiIgKyBkICsgIlwiID0gIiArCisgICAgICAgICAgICAgICBkLmdldFRpbWUoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgc2hvd0RhdGUobG9uZyBsLCBUaW1lWm9uZSB6KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHNob3dEYXRlKG5ldyBEYXRlKGwpLCB6KTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgc2hvd0RhdGUoRGF0ZSBkLCBUaW1lWm9uZSB6b25lKQorICAgIHsKKyAgICAgICAgRGF0ZUZvcm1hdCBmbXQgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5MT05HLCBEYXRlRm9ybWF0LkxPTkcpOworICAgICAgICBmbXQuc2V0VGltZVpvbmUoem9uZSk7CisgICAgICAgIGphdmEudXRpbC5DYWxlbmRhciBjYWwgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsLnNldFRpbWUoZCk7CisgICAgICAgIHJldHVybiAiIiArIChjYWwuZ2V0KENhbGVuZGFyLllFQVIpIC0gMTkwMCkgKyAiLyIgKyAKKyAgICAgICAgICAgICAgIHNob3dOTihjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSArIDEpICsgIi8iICsgCisgICAgICAgICAgICAgICBzaG93Tk4oY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpKSArICIgIiArIAorICAgICAgICAgICAgICAgc2hvd05OKGNhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpKSArICI6IiArIAorICAgICAgICAgICAgICAgc2hvd05OKGNhbC5nZXQoQ2FsZW5kYXIuTUlOVVRFKSkgKyAiIFwiIiArIGQgKyAiXCIgPSAiICsKKyAgICAgICAgICAgICAgIGZtdC5mb3JtYXQoZCkgKyAiID0gIiArIGQuZ2V0VGltZSgpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBzaG93Tk4oaW50IG4pCisgICAgeworICAgICAgICByZXR1cm4gKChuIDwgMTApID8gIjAiIDogIiIpICsgbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHaXZlbiBhIGRhdGUsIGEgVGltZVpvbmUsIGFuZCBleHBlY3RlZCB2YWx1ZXMgZm9yIGluRGF5bGlnaHRUaW1lLAorICAgICAqIHVzZURheWxpZ2h0VGltZSwgem9uZSBhbmQgRFNUIG9mZnNldCwgdmVyaWZ5IHRoYXQgdGhpcyBpcyB0aGUgY2FzZS4KKyAgICAgKi8KKyAgICB2b2lkIHZlcmlmeURTVChEYXRlIGQsIFRpbWVab25lIHRpbWVfem9uZSwKKyAgICAgICAgICAgICAgICAgICBib29sZWFuIGV4cFVzZURheWxpZ2h0VGltZSwgYm9vbGVhbiBleHBJbkRheWxpZ2h0VGltZSwKKyAgICAgICAgICAgICAgICAgICBpbnQgZXhwWm9uZU9mZnNldCwgaW50IGV4cERTVE9mZnNldCkKKyAgICB7CisgICAgICAgIGxvZ2xuKCItLSBWZXJpZnlpbmcgdGltZSAiICsgZCArCisgICAgICAgICAgICAgICIgaW4gem9uZSAiICsgdGltZV96b25lLmdldElEKCkpOworCisgICAgICAgIGlmICh0aW1lX3pvbmUuaW5EYXlsaWdodFRpbWUoZCkgPT0gZXhwSW5EYXlsaWdodFRpbWUpCisgICAgICAgICAgICBsb2dsbigiUEFTUzogaW5EYXlsaWdodFRpbWUgPSAiICsgdGltZV96b25lLmluRGF5bGlnaHRUaW1lKGQpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IGluRGF5bGlnaHRUaW1lID0gIiArIHRpbWVfem9uZS5pbkRheWxpZ2h0VGltZShkKSk7CisKKyAgICAgICAgaWYgKHRpbWVfem9uZS51c2VEYXlsaWdodFRpbWUoKSA9PSBleHBVc2VEYXlsaWdodFRpbWUpCisgICAgICAgICAgICBsb2dsbigiUEFTUzogdXNlRGF5bGlnaHRUaW1lID0gIiArIHRpbWVfem9uZS51c2VEYXlsaWdodFRpbWUoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiB1c2VEYXlsaWdodFRpbWUgPSAiICsgdGltZV96b25lLnVzZURheWxpZ2h0VGltZSgpKTsKKworICAgICAgICBpZiAodGltZV96b25lLmdldFJhd09mZnNldCgpID09IGV4cFpvbmVPZmZzZXQpCisgICAgICAgICAgICBsb2dsbigiUEFTUzogZ2V0UmF3T2Zmc2V0KCkgPSAiICsgZXhwWm9uZU9mZnNldC8oZG91YmxlKU9ORV9IT1VSKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldFJhd09mZnNldCgpID0gIiArIHRpbWVfem9uZS5nZXRSYXdPZmZzZXQoKS8oZG91YmxlKU9ORV9IT1VSICsKKyAgICAgICAgICAgICAgICAgICI7IGV4cGVjdGVkICIgKyBleHBab25lT2Zmc2V0Lyhkb3VibGUpT05FX0hPVVIpOworCisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGdjID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKHRpbWVfem9uZSk7CisgICAgICAgIGdjLnNldFRpbWUoZCk7CisgICAgICAgIGludCBvZmZzZXQgPSB0aW1lX3pvbmUuZ2V0T2Zmc2V0KGdjLmdldChnYy5FUkEpLCBnYy5nZXQoZ2MuWUVBUiksIGdjLmdldChnYy5NT05USCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjLmdldChnYy5EQVlfT0ZfTU9OVEgpLCBnYy5nZXQoZ2MuREFZX09GX1dFRUspLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGdjLmdldChnYy5IT1VSX09GX0RBWSkgKiA2MCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2MuZ2V0KGdjLk1JTlVURSkpICogNjAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2MuZ2V0KGdjLlNFQ09ORCkpICogMTAwMCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjLmdldChnYy5NSUxMSVNFQ09ORCkpOworICAgICAgICBpZiAob2Zmc2V0ID09IGV4cERTVE9mZnNldCkKKyAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBnZXRPZmZzZXQoKSA9ICIgKyBvZmZzZXQvKGRvdWJsZSlPTkVfSE9VUik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRPZmZzZXQoKSA9ICIgKyBvZmZzZXQvKGRvdWJsZSlPTkVfSE9VUiArCisgICAgICAgICAgICAgICAgICAiOyBleHBlY3RlZCAiICsgZXhwRFNUT2Zmc2V0Lyhkb3VibGUpT05FX0hPVVIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RCb3VuZGFyaWVzKCkKKyAgICB7CisgICAgICAgIFRpbWVab25lIHBzdCA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKyAgICAgICAgVGltZVpvbmUgc2F2ZSA9IFRpbWVab25lLmdldERlZmF1bHQoKTsKKyAgICAgICAgamF2YS51dGlsLkNhbGVuZGFyIHRlbXBjYWwgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgdGVtcGNhbC5jbGVhcigpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdChwc3QpOworCisgICAgICAgICAgICAvLyBEU1QgY2hhbmdlb3ZlciBmb3IgUFNUIGlzIDQvNi8xOTk3IGF0IDIgaG91cnMgcGFzdCBtaWRuaWdodAorICAgICAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuQVBSSUwsIDYpOworICAgICAgICAgICAgRGF0ZSBkID0gdGVtcGNhbC5nZXRUaW1lKCk7CisKKyAgICAgICAgICAgIC8vIGkgaXMgbWludXRlcyBwYXN0IG1pZG5pZ2h0IHN0YW5kYXJkIHRpbWUKKyAgICAgICAgICAgIGZvciAoaW50IGk9NjA7IGk8PTE4MDsgaSs9MTUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBpbkRTVCA9IChpID49IDEyMCk7CisgICAgICAgICAgICAgICAgRGF0ZSBlID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgICAgICAgICAgZS5zZXRUaW1lKGQuZ2V0VGltZSgpICsgaSo2MCoxMDAwKTsKKyAgICAgICAgICAgICAgICB2ZXJpZnlEU1QoZSwgcHN0LCB0cnVlLCBpbkRTVCwgLTgqT05FX0hPVVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGluRFNUID8gLTcqT05FX0hPVVIgOiAtOCpPTkVfSE9VUik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KHNhdmUpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRydWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIFRoaXMgb25seSB3b3JrcyBpbiBQU1QvUERUCisgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKSk7CisgICAgICAgICAgICBsb2dsbigiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIpOworICAgICAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgMCwgMSk7CisgICAgICAgICAgICBmaW5kRGF5bGlnaHRCb3VuZGFyeVVzaW5nRGF0ZSh0ZW1wY2FsLmdldFRpbWUoKSwgIlBTVCIsIFBTVF8xOTk3X0JFRyk7CisgICAgICAgICAgICBsb2dsbigiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIpOworICAgICAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgNiwgMSk7CisgICAgICAgICAgICBmaW5kRGF5bGlnaHRCb3VuZGFyeVVzaW5nRGF0ZSh0ZW1wY2FsLmdldFRpbWUoKSwgIlBEVCIsIFBTVF8xOTk3X0VORCk7CisgICAgICAgIH0KKworICAgICAgICAvLyAgaWYgKHRydWUpCisgICAgICAgIC8vICB7CisgICAgICAgIC8vICAgICAgbG9nbG4oIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iKTsKKyAgICAgICAgLy8gICAgICBmaW5kRGF5bGlnaHRCb3VuZGFyeVVzaW5nQ2FsZW5kYXIobmV3IERhdGUoOTcsMCwxKSwgZmFsc2UpOworICAgICAgICAvLyAgICAgIGxvZ2xuKCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Iik7CisgICAgICAgIC8vICAgICAgZmluZERheWxpZ2h0Qm91bmRhcnlVc2luZ0NhbGVuZGFyKG5ldyBEYXRlKDk3LDYsMSksIHRydWUpOworICAgICAgICAvLyAgfQorCisgICAgICAgIGlmICh0cnVlKQorICAgICAgICB7CisgICAgICAgICAgICAvLyBTb3V0aGVybiBoZW1pc3BoZXJlIHRlc3QKKyAgICAgICAgICAgIGxvZ2xuKCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Iik7CisgICAgICAgICAgICBUaW1lWm9uZSB6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoQVVTVFJBTElBKTsKKyAgICAgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIDAsIDEpOworICAgICAgICAgICAgZmluZERheWxpZ2h0Qm91bmRhcnlVc2luZ1RpbWVab25lKHRlbXBjYWwuZ2V0VGltZSgpLCB0cnVlLCBBVVNUUkFMSUFfMTk5N19FTkQsIHopOworICAgICAgICAgICAgbG9nbG4oIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iKTsKKyAgICAgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIDYsIDEpOworICAgICAgICAgICAgZmluZERheWxpZ2h0Qm91bmRhcnlVc2luZ1RpbWVab25lKHRlbXBjYWwuZ2V0VGltZSgpLCBmYWxzZSwgQVVTVFJBTElBXzE5OTdfQkVHLCB6KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0cnVlKQorICAgICAgICB7CisgICAgICAgICAgICBsb2dsbigiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIpOworICAgICAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgMCwgMSk7CisgICAgICAgICAgICBmaW5kRGF5bGlnaHRCb3VuZGFyeVVzaW5nVGltZVpvbmUodGVtcGNhbC5nZXRUaW1lKCksIGZhbHNlLCBQU1RfMTk5N19CRUcpOworICAgICAgICAgICAgbG9nbG4oIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iKTsKKyAgICAgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIDYsIDEpOworICAgICAgICAgICAgZmluZERheWxpZ2h0Qm91bmRhcnlVc2luZ1RpbWVab25lKHRlbXBjYWwuZ2V0VGltZSgpLCB0cnVlLCBQU1RfMTk5N19FTkQpOworICAgICAgICB9CisKKyAgICAgICAgLy8gVGhpcyBqdXN0IHNob3dzIHRoZSBvZmZzZXQgZm9yIEFwcmlsIDQtNyBpbiAxOTk3LiAgVGhpcyBpcyByZWR1bmRhbnQKKyAgICAgICAgLy8gd2l0aCBhIHRlc3QgYWJvdmUsIHNvIHdlIGRpc2FibGUgaXQuCisgICAgICAgIGlmIChmYWxzZSkKKyAgICAgICAgeworICAgICAgICAgICAgVGltZVpvbmUgeiA9IFRpbWVab25lLmdldERlZmF1bHQoKTsKKyAgICAgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIDMsIDQpOworICAgICAgICAgICAgbG9nbG4oei5nZXRPZmZzZXQoMSwgOTcsIDMsIDQsIDYsIDApICsgIiAiICsgdGVtcGNhbC5nZXRUaW1lKCkpOworICAgICAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgMywgNSk7CisgICAgICAgICAgICBsb2dsbih6LmdldE9mZnNldCgxLCA5NywgMywgNSwgNywgMCkgKyAiICIgKyB0ZW1wY2FsLmdldFRpbWUoKSk7CisgICAgICAgICAgICB0ZW1wY2FsLnNldCgxOTk3LCAzLCA2KTsKKyAgICAgICAgICAgIGxvZ2xuKHouZ2V0T2Zmc2V0KDEsIDk3LCAzLCA2LCAxLCAwKSArICIgIiArIHRlbXBjYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIDMsIDcpOworICAgICAgICAgICAgbG9nbG4oei5nZXRPZmZzZXQoMSwgOTcsIDMsIDcsIDIsIDApICsgIiAiICsgdGVtcGNhbC5nZXRUaW1lKCkpOworICAgICAgICB9CisgICAgfQorCisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBDYW4ndCBkbyBhbnkgb2YgdGhlc2Ugd2l0aG91dCBhIHB1YmxpYyBpbkRheWxpZ2h0VGltZSBpbiBHQworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisKKyAgICAvLyAgICBzdGF0aWMgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgLy8KKyAgICAvLyAgICBzdGF0aWMgdm9pZCBfdGVzdFVzaW5nQmluYXJ5U2VhcmNoKERhdGUgZCwgYm9vbGVhbiBzdGFydHNJbkRTVCkKKyAgICAvLyAgICB7CisgICAgLy8gIC8vIEdpdmVuIGEgZGF0ZSB3aXRoIGEgeWVhciBzdGFydCwgZmluZCB0aGUgRGF5bGlnaHQgb25zZXQKKyAgICAvLyAgLy8gYW5kIGVuZC4gIFRoZSBnaXZlbiBkYXRlIHNob3VsZCBiZSAxLzEveHggaW4gc29tZSB5ZWFyLgorICAgIC8vCisgICAgLy8gIC8vIFVzZSBhIGJpbmFyeSBzZWFyY2gsIGFzc3VtaW5nIHRoYXQgd2UgaGF2ZSBhIFN0YW5kYXJkCisgICAgLy8gIC8vIHRpbWUgYXQgdGhlIG1pZHBvaW50LgorICAgIC8vICBsb25nIG1pbiA9IGQuZ2V0VGltZSgpOworICAgIC8vICBsb25nIG1heCA9IG1pbiArIChsb25nKSgzNjUuMjUgLyAyICogT05FX0RBWSk7CisgICAgLy8KKyAgICAvLyAgLy8gRmlyc3QgY2hlY2sgdGhlIG1heAorICAgIC8vICBjYWwuc2V0VGltZShuZXcgRGF0ZShtYXgpKTsKKyAgICAvLyAgaWYgKGNhbC5pbkRheWxpZ2h0VGltZSgpID09IHN0YXJ0c0luRFNUKQorICAgIC8vICB7CisgICAgLy8gICAgICBsb2dsbigiRXJyb3I6IGluRGF5bGlnaHRUaW1lKCIgKyAobmV3IERhdGUobWF4KSkgKyAiKSAhPSAiICsgKCFzdGFydHNJbkRTVCkpOworICAgIC8vICB9CisgICAgLy8KKyAgICAvLyAgY2FsLnNldFRpbWUoZCk7CisgICAgLy8gIGlmIChjYWwuaW5EYXlsaWdodFRpbWUoKSAhPSBzdGFydHNJbkRTVCkKKyAgICAvLyAgeworICAgIC8vICAgICAgbG9nbG4oIkVycm9yOiBpbkRheWxpZ2h0VGltZSgiICsgZCArICIpICE9ICIgKyBzdGFydHNJbkRTVCk7CisgICAgLy8gIH0KKyAgICAvLworICAgIC8vICB3aGlsZSAoKG1heCAtIG1pbikgPiAgSU5URVJWQUwpCisgICAgLy8gIHsKKyAgICAvLyAgICAgIGxvbmcgbWlkID0gKG1pbiArIG1heCkgPj4gMTsKKyAgICAvLyAgICAgIGNhbC5zZXRUaW1lKG5ldyBEYXRlKG1pZCkpOworICAgIC8vICAgICAgaWYgKGNhbC5pbkRheWxpZ2h0VGltZSgpID09IHN0YXJ0c0luRFNUKQorICAgIC8vICAgICAgeworICAgIC8vICAgICAgbWluID0gbWlkOworICAgIC8vICAgICAgfQorICAgIC8vICAgICAgZWxzZQorICAgIC8vICAgICAgeworICAgIC8vICAgICAgbWF4ID0gbWlkOworICAgIC8vICAgICAgfQorICAgIC8vICB9CisgICAgLy8KKyAgICAvLyAgbG9nbG4oIkJpbmFyeSBTZWFyY2ggQmVmb3JlOiAiICsgc2hvd0RhdGUobWluKSk7CisgICAgLy8gIGxvZ2xuKCJCaW5hcnkgU2VhcmNoIEFmdGVyOiAgIiArIHNob3dEYXRlKG1heCkpOworICAgIC8vICAgIH0KKyAgICAvLworICAgIC8vICAgIHN0YXRpYyB2b2lkIF90ZXN0VXNpbmdNaWxsaXMoRGF0ZSBkLCBib29sZWFuIHN0YXJ0c0luRFNUKQorICAgIC8vICAgIHsKKyAgICAvLyAgbG9uZyBtaWxsaXMgPSBkLmdldFRpbWUoKTsKKyAgICAvLyAgbG9uZyBtYXggPSBtaWxsaXMgKyAobG9uZykoMzcwICogT05FX0RBWSk7IC8vIEEgeWVhciBwbHVzIGV4dHJhCisgICAgLy8KKyAgICAvLyAgYm9vbGVhbiBsYXN0RFNUID0gc3RhcnRzSW5EU1Q7CisgICAgLy8gIHdoaWxlIChtaWxsaXMgPCBtYXgpCisgICAgLy8gIHsKKyAgICAvLyAgICAgIGNhbC5zZXRUaW1lKG5ldyBEYXRlKG1pbGxpcykpOworICAgIC8vICAgICAgYm9vbGVhbiBpbkRheWxpZ2h0ID0gY2FsLmluRGF5bGlnaHRUaW1lKCk7CisgICAgLy8KKyAgICAvLyAgICAgIGlmIChpbkRheWxpZ2h0ICE9IGxhc3REU1QpCisgICAgLy8gICAgICB7CisgICAgLy8gICAgICBsb2dsbigiU3dpdGNoICIgKyAoaW5EYXlsaWdodCA/ICJpbnRvIiA6ICJvdXQgb2YiKQorICAgIC8vICAgICAgICAgICAgICAgICArICIgRFNUIGF0ICIgKyAobmV3IERhdGUobWlsbGlzKSkpOworICAgIC8vICAgICAgbGFzdERTVCA9IGluRGF5bGlnaHQ7CisgICAgLy8gICAgICB9CisgICAgLy8KKyAgICAvLyAgICAgIG1pbGxpcyArPSAxNSpPTkVfTUlOVVRFOworICAgIC8vICB9CisgICAgLy8gICAgfQorICAgIC8vCisgICAgLy8gICAgc3RhdGljIHZvaWQgX3Rlc3RVc2luZ0ZpZWxkcyhpbnQgeSwgYm9vbGVhbiBzdGFydHNJbkRTVCkKKyAgICAvLyAgICB7CisgICAgLy8gIGJvb2xlYW4gbGFzdERTVCA9IHN0YXJ0c0luRFNUOworICAgIC8vICBmb3IgKGludCBtID0gMDsgbSA8IDEyOyArK20pCisgICAgLy8gIHsKKyAgICAvLyAgICAgIGZvciAoaW50IGQgPSAxOyBkIDw9IE1PTlRIX0xFTkdUSFttXTsgKytkKQorICAgIC8vICAgICAgeworICAgIC8vICAgICAgZm9yIChpbnQgaCA9IDA7IGggPCAyNDsgKytoKQorICAgIC8vICAgICAgeworICAgIC8vICAgICAgICAgIGZvciAoaW50IG1pbiA9IDA7IG1pbiA8IDYwOyBtaW4gKz0gMTUpCisgICAgLy8gICAgICAgICAgeworICAgIC8vICAgICAgICAgIGNhbC5jbGVhcigpOworICAgIC8vICAgICAgICAgIGNhbC5zZXQoeSwgbSwgZCwgaCwgbWluKTsKKyAgICAvLyAgICAgICAgICBib29sZWFuIGluRGF5bGlnaHQgPSBjYWwuaW5EYXlsaWdodFRpbWUoKTsKKyAgICAvLyAgICAgICAgICBpZiAoaW5EYXlsaWdodCAhPSBsYXN0RFNUKQorICAgIC8vICAgICAgICAgIHsKKyAgICAvLyAgICAgICAgICAgICAgbGFzdERTVCA9IGluRGF5bGlnaHQ7CisgICAgLy8gICAgICAgICAgICAgIGxvZygiU3dpdGNoICIgKyAobGFzdERTVCA/ICJpbnRvIiA6ICJvdXQgb2YiKQorICAgIC8vICAgICAgICAgICAgICAgICAgICAgICArICIgRFNUIGF0ICIgKyB5ICsgIi8iICsgKG0rMSkgKyAiLyIgKyBkCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICsgIiAiICsgc2hvd05OKGgpICsgIjoiICsgc2hvd05OKG1pbikpOworICAgIC8vICAgICAgICAgICAgICBsb2dsbigiICIgKyBjYWwuZ2V0VGltZSgpKTsKKyAgICAvLworICAgIC8vICAgICAgICAgICAgICBjYWwuc2V0KHksIG0sIGQsIGgtMSwgNDUpOworICAgIC8vICAgICAgICAgICAgICBsb2coIkJlZm9yZSA9ICIKKyAgICAvLysgeSArICIvIiArIChtKzEpICsgIi8iICsgZAorICAgIC8vKyAiICIgKyBzaG93Tk4oaC0xKSArICI6IiArIHNob3dOTig0NSkpOworICAgIC8vICAgICAgICAgICAgICBsb2dsbigiICIgKyBjYWwuZ2V0VGltZSgpKTsKKyAgICAvLyAgICAgICAgICB9CisgICAgLy8gICAgICAgICAgfQorICAgIC8vICAgICAgfQorICAgIC8vICAgICAgfQorICAgIC8vICB9CisgICAgLy8gICAgfQorICAgIC8vCisgICAgLy8gICAgcHVibGljIHZvaWQgVGVzdDEoKQorICAgIC8vICAgIHsKKyAgICAvLyAgbG9nbG4oTG9jYWxlLmdldERlZmF1bHQoKS5nZXREaXNwbGF5TmFtZSgpKTsKKyAgICAvLyAgbG9nbG4oVGltZVpvbmUuZ2V0RGVmYXVsdCgpLmdldElEKCkpOworICAgIC8vICBsb2dsbihuZXcgRGF0ZSgwKSk7CisgICAgLy8KKyAgICAvLyAgaWYgKHRydWUpCisgICAgLy8gIHsKKyAgICAvLyAgICAgIGxvZ2xuKCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Iik7CisgICAgLy8gICAgICBfdGVzdFVzaW5nQmluYXJ5U2VhcmNoKG5ldyBEYXRlKDk3LDAsMSksIGZhbHNlKTsKKyAgICAvLyAgICAgIGxvZ2xuKCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Iik7CisgICAgLy8gICAgICBfdGVzdFVzaW5nQmluYXJ5U2VhcmNoKG5ldyBEYXRlKDk3LDYsMSksIHRydWUpOworICAgIC8vICB9CisgICAgLy8KKyAgICAvLyAgaWYgKHRydWUpCisgICAgLy8gIHsKKyAgICAvLyAgICAgIGxvZ2xuKCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Iik7CisgICAgLy8gICAgICBsb2dsbigiU3RlcHBpbmcgdXNpbmcgbWlsbGlzIik7CisgICAgLy8gICAgICBfdGVzdFVzaW5nTWlsbGlzKG5ldyBEYXRlKDk3LDAsMSksIGZhbHNlKTsKKyAgICAvLyAgfQorICAgIC8vCisgICAgLy8gIGlmICh0cnVlKQorICAgIC8vICB7CisgICAgLy8gICAgICBsb2dsbigiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIpOworICAgIC8vICAgICAgbG9nbG4oIlN0ZXBwaW5nIHVzaW5nIGZpZWxkcyIpOworICAgIC8vICAgICAgX3Rlc3RVc2luZ0ZpZWxkcygxOTk3LCBmYWxzZSk7CisgICAgLy8gIH0KKyAgICAvLworICAgIC8vICBpZiAoZmFsc2UpCisgICAgLy8gIHsKKyAgICAvLyAgICAgIGNhbC5jbGVhcigpOworICAgIC8vICAgICAgY2FsLnNldCgxOTk3LCAzLCA1LCAxMCwgMCk7CisgICAgLy8gICAgICAvLyAgY2FsLmluRGF5bGlnaHRUaW1lKCk7CisgICAgLy8gICAgICBsb2dsbigiRGF0ZSA9ICIgKyBjYWwuZ2V0VGltZSgpKTsKKyAgICAvLyAgICAgIGxvZ2xuKCJNaWxsaXMgPSAiICsgY2FsLmdldFRpbWUoKS5nZXRUaW1lKCkvMzYwMDAwMCk7CisgICAgLy8gIH0KKyAgICAvLyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHZvaWQgX3Rlc3RVc2luZ0JpbmFyeVNlYXJjaChTaW1wbGVUaW1lWm9uZSB0eiwgRGF0ZSBkLCBsb25nIGV4cGVjdGVkQm91bmRhcnkpCisgICAgeworICAgICAgICAvLyBHaXZlbiBhIGRhdGUgd2l0aCBhIHllYXIgc3RhcnQsIGZpbmQgdGhlIERheWxpZ2h0IG9uc2V0CisgICAgICAgIC8vIGFuZCBlbmQuICBUaGUgZ2l2ZW4gZGF0ZSBzaG91bGQgYmUgMS8xL3h4IGluIHNvbWUgeWVhci4KKworICAgICAgICAvLyBVc2UgYSBiaW5hcnkgc2VhcmNoLCBhc3N1bWluZyB0aGF0IHdlIGhhdmUgYSBTdGFuZGFyZAorICAgICAgICAvLyB0aW1lIGF0IHRoZSBtaWRwb2ludC4KKyAgICAgICAgbG9uZyBtaW4gPSBkLmdldFRpbWUoKTsKKyAgICAgICAgbG9uZyBtYXggPSBtaW4gKyAobG9uZykoMzY1LjI1IC8gMiAqIE9ORV9EQVkpOworCisgICAgICAgIC8vIEZpcnN0IGNoZWNrIHRoZSBib3VuZGFyaWVzCisgICAgICAgIGJvb2xlYW4gc3RhcnRzSW5EU1QgPSB0ei5pbkRheWxpZ2h0VGltZShkKTsKKworICAgICAgICBpZiAodHouaW5EYXlsaWdodFRpbWUobmV3IERhdGUobWF4KSkgPT0gc3RhcnRzSW5EU1QpCisgICAgICAgIHsKKyAgICAgICAgICAgIGxvZ2xuKCJFcnJvcjogaW5EYXlsaWdodFRpbWUoIiArIChuZXcgRGF0ZShtYXgpKSArICIpICE9ICIgKyAoIXN0YXJ0c0luRFNUKSk7CisgICAgICAgIH0KKworICAgICAgICB3aGlsZSAoKG1heCAtIG1pbikgPiAgSU5URVJWQUwpCisgICAgICAgIHsKKyAgICAgICAgICAgIGxvbmcgbWlkID0gKG1pbiArIG1heCkgPj4gMTsKKyAgICAgICAgICAgIGlmICh0ei5pbkRheWxpZ2h0VGltZShuZXcgRGF0ZShtaWQpKSA9PSBzdGFydHNJbkRTVCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBtaW4gPSBtaWQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbWF4ID0gbWlkOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgbG9nbG4oIkJpbmFyeSBTZWFyY2ggQmVmb3JlOiAiICsgc2hvd0RhdGUobWluKSk7CisgICAgICAgIGxvZ2xuKCJCaW5hcnkgU2VhcmNoIEFmdGVyOiAgIiArIHNob3dEYXRlKG1heCkpOworCisgICAgICAgIGxvbmcgbWluZGVsdGEgPSBleHBlY3RlZEJvdW5kYXJ5IC0gbWluOworICAgICAgICAvLyBub3QgdXNlZCBsb25nIG1heGRlbHRhID0gbWF4IC0gZXhwZWN0ZWRCb3VuZGFyeTsKKyAgICAgICAgaWYgKG1pbmRlbHRhID49IDAgJiYgbWluZGVsdGEgPD0gSU5URVJWQUwgJiYKKyAgICAgICAgICAgIG1pbmRlbHRhID49IDAgJiYgbWluZGVsdGEgPD0gSU5URVJWQUwpCisgICAgICAgICAgICBsb2dsbigiUEFTUzogRXhwZWN0ZWQgYm91bmRhcnkgYXQgIiArIGV4cGVjdGVkQm91bmRhcnkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgYm91bmRhcnkgYXQgIiArIGV4cGVjdGVkQm91bmRhcnkpOworICAgIH0KKworICAgIC8qCisgICAgICBzdGF0aWMgdm9pZCBfdGVzdFVzaW5nTWlsbGlzKERhdGUgZCwgYm9vbGVhbiBzdGFydHNJbkRTVCkKKyAgICAgIHsKKyAgICAgIGxvbmcgbWlsbGlzID0gZC5nZXRUaW1lKCk7CisgICAgICBsb25nIG1heCA9IG1pbGxpcyArIChsb25nKSgzNzAgKiBPTkVfREFZKTsgLy8gQSB5ZWFyIHBsdXMgZXh0cmEKKworICAgICAgYm9vbGVhbiBsYXN0RFNUID0gc3RhcnRzSW5EU1Q7CisgICAgICB3aGlsZSAobWlsbGlzIDwgbWF4KQorICAgICAgeworICAgICAgY2FsLnNldFRpbWUobmV3IERhdGUobWlsbGlzKSk7CisgICAgICBib29sZWFuIGluRGF5bGlnaHQgPSBjYWwuaW5EYXlsaWdodFRpbWUoKTsKKworICAgICAgaWYgKGluRGF5bGlnaHQgIT0gbGFzdERTVCkKKyAgICAgIHsKKyAgICAgIGxvZ2xuKCJTd2l0Y2ggIiArIChpbkRheWxpZ2h0ID8gImludG8iIDogIm91dCBvZiIpCisgICAgICArICIgRFNUIGF0ICIgKyAobmV3IERhdGUobWlsbGlzKSkpOworICAgICAgbGFzdERTVCA9IGluRGF5bGlnaHQ7CisgICAgICB9CisKKyAgICAgIG1pbGxpcyArPSAxNSpPTkVfTUlOVVRFOworICAgICAgfQorICAgICAgfQorICAgICAgKi8KKworICAgIC8qKgorICAgICAqIFRlc3QgbmV3IHJ1bGUgZm9ybWF0cy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TmV3UnVsZXMoKQorICAgIHsKKyAgICAgICAgLy9sb2dsbihMb2NhbGUuZ2V0RGVmYXVsdCgpLmdldERpc3BsYXlOYW1lKCkpOworICAgICAgICAvL2xvZ2xuKFRpbWVab25lLmdldERlZmF1bHQoKS5nZXRJRCgpKTsKKyAgICAgICAgLy9sb2dsbihuZXcgRGF0ZSgwKSk7CisKKyAgICAgICAgaWYgKHRydWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIERvZXNuJ3QgbWF0dGVyIHdoYXQgdGhlIGRlZmF1bHQgVGltZVpvbmUgaXMgaGVyZSwgc2luY2Ugd2UKKyAgICAgICAgICAgIC8vIGFyZSBjcmVhdGluZyBvdXIgb3duIFRpbWVab25lIG9iamVjdHMuCisKKyAgICAgICAgICAgIFNpbXBsZVRpbWVab25lIHR6OworICAgICAgICAgICAgamF2YS51dGlsLkNhbGVuZGFyIHRlbXBjYWwgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgICAgIHRlbXBjYWwuY2xlYXIoKTsKKworICAgICAgICAgICAgbG9nbG4oIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIik7CisgICAgICAgICAgICBsb2dsbigiQXVnIDJuZFR1ZXMgLi4gTWFyIDE1Iik7CisgICAgICAgICAgICB0eiA9IG5ldyBTaW1wbGVUaW1lWm9uZSgtOCpPTkVfSE9VUiwgIlRlc3RfMSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5BVUdVU1QsIDIsIENhbGVuZGFyLlRVRVNEQVksIDIqT05FX0hPVVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5NQVJDSCwgMTUsIDAsIDIqT05FX0hPVVIpOworICAgICAgICAgICAgLy9sb2dsbih0ei50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGxvZ2xuKCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Iik7CisgICAgICAgICAgICB0ZW1wY2FsLnNldCgxOTk3LCAwLCAxKTsKKyAgICAgICAgICAgIF90ZXN0VXNpbmdCaW5hcnlTZWFyY2godHosIHRlbXBjYWwuZ2V0VGltZSgpLCA4NTg0MTY0MDAwMDBMKTsKKyAgICAgICAgICAgIGxvZ2xuKCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Iik7CisgICAgICAgICAgICB0ZW1wY2FsLnNldCgxOTk3LCA2LCAxKTsKKyAgICAgICAgICAgIF90ZXN0VXNpbmdCaW5hcnlTZWFyY2godHosIHRlbXBjYWwuZ2V0VGltZSgpLCA4NzEzODAwMDAwMDBMKTsKKworICAgICAgICAgICAgbG9nbG4oIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIik7CisgICAgICAgICAgICBsb2dsbigiQXByIFdlZD49MTQgLi4gU2VwIFN1bjw9MjAiKTsKKyAgICAgICAgICAgIHR6ID0gbmV3IFNpbXBsZVRpbWVab25lKC04Kk9ORV9IT1VSLCAiVGVzdF8yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLkFQUklMLCAxNCwgLUNhbGVuZGFyLldFRE5FU0RBWSwgMipPTkVfSE9VUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLlNFUFRFTUJFUiwgLTIwLCAtQ2FsZW5kYXIuU1VOREFZLCAyKk9ORV9IT1VSKTsKKyAgICAgICAgICAgIC8vbG9nbG4odHoudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBsb2dsbigiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIpOworICAgICAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgMCwgMSk7CisgICAgICAgICAgICBfdGVzdFVzaW5nQmluYXJ5U2VhcmNoKHR6LCB0ZW1wY2FsLmdldFRpbWUoKSwgODYxMTg0ODAwMDAwTCk7CisgICAgICAgICAgICBsb2dsbigiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIpOworICAgICAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgNiwgMSk7CisgICAgICAgICAgICBfdGVzdFVzaW5nQmluYXJ5U2VhcmNoKHR6LCB0ZW1wY2FsLmdldFRpbWUoKSwgODc0MjI3NjAwMDAwTCk7CisgICAgICAgIH0KKworICAgICAgICAvKgorICAgICAgICAgIGlmICh0cnVlKQorICAgICAgICAgIHsKKyAgICAgICAgICBsb2dsbigiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIpOworICAgICAgICAgIGxvZ2xuKCJTdGVwcGluZyB1c2luZyBtaWxsaXMiKTsKKyAgICAgICAgICBfdGVzdFVzaW5nTWlsbGlzKG5ldyBEYXRlKDk3LDAsMSksIGZhbHNlKTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBpZiAodHJ1ZSkKKyAgICAgICAgICB7CisgICAgICAgICAgbG9nbG4oIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iKTsKKyAgICAgICAgICBsb2dsbigiU3RlcHBpbmcgdXNpbmcgZmllbGRzIik7CisgICAgICAgICAgX3Rlc3RVc2luZ0ZpZWxkcygxOTk3LCBmYWxzZSk7CisgICAgICAgICAgfQorCisgICAgICAgICAgaWYgKGZhbHNlKQorICAgICAgICAgIHsKKyAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICBjYWwuc2V0KDE5OTcsIDMsIDUsIDEwLCAwKTsKKyAgICAgICAgICAvLyAgICBjYWwuaW5EYXlsaWdodFRpbWUoKTsKKyAgICAgICAgICBsb2dsbigiRGF0ZSA9ICIgKyBjYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgICBsb2dsbigiTWlsbGlzID0gIiArIGNhbC5nZXRUaW1lKCkuZ2V0VGltZSgpLzM2MDAwMDApOworICAgICAgICAgIH0KKyAgICAgICAgICAqLworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIExvbmcgQnVnCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvL3B1YmxpYyB2b2lkIFRlc3QzKCkKKyAgICAvL3sKKyAgICAvLyAgICBmaW5kRGF5bGlnaHRCb3VuZGFyeVVzaW5nVGltZVpvbmUobmV3IERhdGUoOTcsNiwxKSwgdHJ1ZSk7CisgICAgLy99CisKKyAgICAvKioKKyAgICAgKiBGaW5kIGJvdW5kYXJpZXMgYnkgc3RlcHBpbmcuCisgICAgICovCisgICAgdm9pZCBmaW5kQm91bmRhcmllc1N0ZXB3aXNlKGludCB5ZWFyLCBsb25nIGludGVydmFsLCBUaW1lWm9uZSB6LCBpbnQgZXhwZWN0ZWRDaGFuZ2VzKQorICAgIHsKKyAgICAgICAgamF2YS51dGlsLkNhbGVuZGFyIHRlbXBjYWwgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgdGVtcGNhbC5jbGVhcigpOworICAgICAgICB0ZW1wY2FsLnNldCh5ZWFyLCBDYWxlbmRhci5KQU5VQVJZLCAxKTsKKyAgICAgICAgRGF0ZSBkID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGxvbmcgdGltZSA9IGQuZ2V0VGltZSgpOyAvLyBtcworICAgICAgICBsb25nIGxpbWl0ID0gdGltZSArIE9ORV9ZRUFSICsgT05FX0RBWTsKKyAgICAgICAgYm9vbGVhbiBsYXN0U3RhdGUgPSB6LmluRGF5bGlnaHRUaW1lKGQpOworICAgICAgICBpbnQgY2hhbmdlcyA9IDA7CisgICAgICAgIGxvZ2xuKCItLSBab25lICIgKyB6LmdldElEKCkgKyAiIHN0YXJ0cyBpbiAiICsgeWVhciArICIgd2l0aCBEU1QgPSAiICsgbGFzdFN0YXRlKTsKKyAgICAgICAgbG9nbG4oInVzZURheWxpZ2h0VGltZSA9ICIgKyB6LnVzZURheWxpZ2h0VGltZSgpKTsKKyAgICAgICAgd2hpbGUgKHRpbWUgPCBsaW1pdCkKKyAgICAgICAgeworICAgICAgICAgICAgZC5zZXRUaW1lKHRpbWUpOworICAgICAgICAgICAgYm9vbGVhbiBzdGF0ZSA9IHouaW5EYXlsaWdodFRpbWUoZCk7CisgICAgICAgICAgICBpZiAoc3RhdGUgIT0gbGFzdFN0YXRlKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGxvZ2xuKChzdGF0ZSA/ICJFbnRyeSAiIDogIkV4aXQgIikgKworICAgICAgICAgICAgICAgICAgICAgICJhdCAiICsgZCk7CisgICAgICAgICAgICAgICAgbGFzdFN0YXRlID0gc3RhdGU7CisgICAgICAgICAgICAgICAgKytjaGFuZ2VzOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGltZSArPSBpbnRlcnZhbDsKKyAgICAgICAgfQorICAgICAgICBpZiAoY2hhbmdlcyA9PSAwKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIWxhc3RTdGF0ZSAmJiAhei51c2VEYXlsaWdodFRpbWUoKSkgbG9nbG4oIk5vIERTVCIpOworICAgICAgICAgICAgZWxzZSBlcnJsbigiRkFJTDogRFNUIGFsbCB5ZWFyLCBvciBubyBEU1Qgd2l0aCB0cnVlIHVzZURheWxpZ2h0VGltZSIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGNoYW5nZXMgIT0gMikKKyAgICAgICAgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBjaGFuZ2VzICsgIiBjaGFuZ2VzIHNlZW47IHNob3VsZCBzZWUgMCBvciAyIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoIXoudXNlRGF5bGlnaHRUaW1lKCkpCisgICAgICAgIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiB1c2VEYXlsaWdodFRpbWUgZmFsc2UgYnV0IDIgY2hhbmdlcyBzZWVuIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNoYW5nZXMgIT0gZXhwZWN0ZWRDaGFuZ2VzKQorICAgICAgICB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGNoYW5nZXMgKyAiIGNoYW5nZXMgc2VlbjsgZXhwZWN0ZWQgIiArIGV4cGVjdGVkQ2hhbmdlcyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U3RlcHdpc2UoKQorICAgIHsKKyAgICAgICAgZmluZEJvdW5kYXJpZXNTdGVwd2lzZSgxOTk3LCBPTkVfREFZLCBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiRVNUIiksIDIpOworICAgICAgICBmaW5kQm91bmRhcmllc1N0ZXB3aXNlKDE5OTcsIE9ORV9EQVksIFRpbWVab25lLmdldFRpbWVab25lKCJBQ1QiKSwgMik7IC8vIFVwZGF0ZWQgM0phbjAxCisgICAgICAgIGZpbmRCb3VuZGFyaWVzU3RlcHdpc2UoMTk5NywgT05FX0RBWSwgVGltZVpvbmUuZ2V0VGltZVpvbmUoIkFtZXJpY2EvUGhvZW5peCIpLCAwKTsgLy8gQWRkZWQgM0phbjAxCisgICAgICAgIGZpbmRCb3VuZGFyaWVzU3RlcHdpc2UoMTk5NywgT05FX0RBWSwgVGltZVpvbmUuZ2V0VGltZVpvbmUoQVVTVFJBTElBKSwgMik7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RpbWV6b25lL1RpbWVab25lUmVncmVzc2lvbi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RpbWV6b25lL1RpbWVab25lUmVncmVzc2lvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE2ZWY3NmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdGltZXpvbmUvVGltZVpvbmVSZWdyZXNzaW9uLmphdmEKQEAgLTAsMCArMSw5NjUgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdGltZXpvbmUvVGltZVpvbmVSZWdyZXNzaW9uLmphdmEsdiAkCisgKiAkRGF0ZTogMjAwMi8wOC8xMyAyMjowNDozOSAkCisgKiAkUmV2aXNpb246IDEuOCAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKioKKyAqIEB0ZXN0IDEuMTggOTkvMDkvMjEKKyAqIEBidWcgNDA1Mjk2NyA0MDczMjA5IDQwNzMyMTUgNDA4NDkzMyA0MDk2OTUyIDQxMDkzMTQgNDEyNjY3OCA0MTUxNDA2IDQxNTE0MjkKKyAqIEBidWcgNDE1NDUyNSA0MTU0NTM3IDQxNTQ1NDIgNDE1NDY1MCA0MTU5OTIyIDQxNjI1OTMgNDE3MzYwNCA0MTc2Njg2IDQxODQyMjkgNDIwODk2MAorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudGltZXpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworcHVibGljIGNsYXNzIFRpbWVab25lUmVncmVzc2lvbiBleHRlbmRzIFRlc3RGbXdrIHsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgVGltZVpvbmVSZWdyZXNzaW9uKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDUyOTY3KCkgeworICAgICAgICBsb2dsbigiKioqIENIRUNLIFRJTUVaT05FIEFHQUlOU1QgSE9TVCBPUyBTRVRUSU5HICoqKiIpOworCVN0cmluZyBpZCA9IFRpbWVab25lLmdldERlZmF1bHQoKS5nZXRJRCgpOworICAgICAgICBsb2dsbigidXNlci50aW1lem9uZTogIiArIFN5c3RlbS5nZXRQcm9wZXJ0eSgidXNlci50aW1lem9uZSIsICI8bm90IHNldD4iKSk7CisJbG9nbG4oIlRpbWVab25lLmdldERlZmF1bHQoKS5nZXRJRCgpOiAiICsgaWQpOworICAgICAgICBsb2dsbihuZXcgRGF0ZSgpLnRvU3RyaW5nKCkpOworICAgICAgICBsb2dsbigiKioqIFRIRSBSRVNVTFRTIE9GIFRISVMgVEVTVCBNVVNUIEJFIFZFUklGSUVEIE1BTlVBTExZICoqKiIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDczMjA5KCkgeworICAgICAgICBUaW1lWm9uZSB6MSA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKyAgICAgICAgVGltZVpvbmUgejIgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisgICAgICAgIGlmICh6MSA9PSB6MikgZXJybG4oIkZhaWw6IFRpbWVab25lIHNob3VsZCByZXR1cm4gY2xvbmVzIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQwNzMyMTUoKSB7CisgICAgICAgIFNpbXBsZVRpbWVab25lIHogPSAoU2ltcGxlVGltZVpvbmUpIFRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKTsKKyAgICAgICAgaWYgKHoudXNlRGF5bGlnaHRUaW1lKCkpCisgICAgICAgICAgICBlcnJsbigiRmFpbDogRml4IHRlc3QgdG8gc3RhcnQgd2l0aCBub24tRFNUIHpvbmUiKTsKKyAgICAgICAgei5zZXRTdGFydFJ1bGUoQ2FsZW5kYXIuRkVCUlVBUlksIDEsIENhbGVuZGFyLlNVTkRBWSwgMCk7CisgICAgICAgIHouc2V0RW5kUnVsZShDYWxlbmRhci5NQVJDSCwgLTEsIENhbGVuZGFyLlNVTkRBWSwgMCk7CisgICAgICAgIGlmICghei51c2VEYXlsaWdodFRpbWUoKSkKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBEU1Qgbm90IGFjdGl2ZSIpOworICAgICAgICBqYXZhLnV0aWwuQ2FsZW5kYXIgdGVtcGNhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIENhbGVuZGFyLkpBTlVBUlksIDMxKTsKKyAgICAgICAgRGF0ZSBkMSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk3LCBDYWxlbmRhci5NQVJDSCwgMSk7CisgICAgICAgIERhdGUgZDIgPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuTUFSQ0gsIDMxKTsKKyAgICAgICAgRGF0ZSBkMyA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICBpZiAoei5pbkRheWxpZ2h0VGltZShkMSkgfHwgIXouaW5EYXlsaWdodFRpbWUoZDIpIHx8CisgICAgICAgICAgICB6LmluRGF5bGlnaHRUaW1lKGQzKSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWw6IERTVCBub3Qgd29ya2luZyBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlIGV4cGVjdGVkIGJlaGF2aW9yIG9mIFRpbWVab25lIGFyb3VuZCB0aGUgYm91bmRhcmllcyBpczoKKyAgICAgKiAoQXNzdW1lIHRyYW5zaXRpb24gdGltZSBvZiAyOjAwIEFNKQorICAgICAqICAgIGRheSBvZiBvbnNldCAxOjU5IEFNIFNURCAgPSBkaXNwbGF5IG5hbWUgMTo1OSBBTSBTVAorICAgICAqICAgICAgICAgICAgICAgICAyOjAwIEFNIFNURCAgPSBkaXNwbGF5IG5hbWUgMzowMCBBTSBEVAorICAgICAqICAgIGRheSBvZiBlbmQgICAwOjU5IEFNIFNURCAgPSBkaXNwbGF5IG5hbWUgMTo1OSBBTSBEVAorICAgICAqICAgICAgICAgICAgICAgICAxOjAwIEFNIFNURCAgPSBkaXNwbGF5IG5hbWUgMTowMCBBTSBTVAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDg0OTMzKCkgeworICAgICAgICBUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKworICAgICAgICBsb25nIG9mZnNldDEgPSB0ei5nZXRPZmZzZXQoMSwKKyAgICAgICAgICAgIDE5OTcsIENhbGVuZGFyLk9DVE9CRVIsIDI2LCBDYWxlbmRhci5TVU5EQVksICgyKjYwKjYwKjEwMDApKTsKKyAgICAgICAgbG9uZyBvZmZzZXQyID0gdHouZ2V0T2Zmc2V0KDEsCisgICAgICAgICAgICAxOTk3LCBDYWxlbmRhci5PQ1RPQkVSLCAyNiwgQ2FsZW5kYXIuU1VOREFZLCAoMio2MCo2MCoxMDAwKS0xKTsKKworICAgICAgICBsb25nIG9mZnNldDMgPSB0ei5nZXRPZmZzZXQoMSwKKyAgICAgICAgICAgIDE5OTcsIENhbGVuZGFyLk9DVE9CRVIsIDI2LCBDYWxlbmRhci5TVU5EQVksICgxKjYwKjYwKjEwMDApKTsKKyAgICAgICAgbG9uZyBvZmZzZXQ0ID0gdHouZ2V0T2Zmc2V0KDEsCisgICAgICAgICAgICAxOTk3LCBDYWxlbmRhci5PQ1RPQkVSLCAyNiwgQ2FsZW5kYXIuU1VOREFZLCAoMSo2MCo2MCoxMDAwKS0xKTsKKworICAgICAgICAvKgorICAgICAgICAgKiAgVGhlIGZvbGxvd2luZyB3YXMgYWRkZWQganVzdCBmb3IgY29uc2lzdGVuY3kuICBJdCBzaG93cyB0aGF0IGdvaW5nICp0byogRGF5bGlnaHQKKyAgICAgICAgICogIFNhdmluZ3MgVGltZSAoUERUKSBkb2VzIHdvcmsgYXQgMmFtLgorICAgICAgICAgKi8KKworICAgICAgICBsb25nIG9mZnNldDUgPSB0ei5nZXRPZmZzZXQoMSwKKyAgICAgICAgICAgIDE5OTcsIENhbGVuZGFyLkFQUklMLCA2LCBDYWxlbmRhci5TVU5EQVksICgyKjYwKjYwKjEwMDApKTsKKyAgICAgICAgbG9uZyBvZmZzZXQ2ID0gdHouZ2V0T2Zmc2V0KDEsCisgICAgICAgICAgICAxOTk3LCBDYWxlbmRhci5BUFJJTCwgNiwgQ2FsZW5kYXIuU1VOREFZLCAoMio2MCo2MCoxMDAwKS0xKTsKKworICAgICAgICBsb25nIG9mZnNldDcgPSB0ei5nZXRPZmZzZXQoMSwKKyAgICAgICAgICAgIDE5OTcsIENhbGVuZGFyLkFQUklMLCA2LCBDYWxlbmRhci5TVU5EQVksICgxKjYwKjYwKjEwMDApKTsKKyAgICAgICAgbG9uZyBvZmZzZXQ4ID0gdHouZ2V0T2Zmc2V0KDEsCisgICAgICAgICAgICAxOTk3LCBDYWxlbmRhci5BUFJJTCwgNiwgQ2FsZW5kYXIuU1VOREFZLCAoMSo2MCo2MCoxMDAwKS0xKTsKKworICAgICAgICBsb25nIFNUb2Zmc2V0ID0gLTggKiA2MCo2MCoxMDAwTDsKKyAgICAgICAgbG9uZyBEVG9mZnNldCA9IC03ICogNjAqNjAqMTAwMEw7CisgICAgICAgIGlmIChvZmZzZXQxICE9IFNUb2Zmc2V0IHx8IG9mZnNldDIgIT0gU1RvZmZzZXQgfHwKKyAgICAgICAgICAgIG9mZnNldDMgIT0gU1RvZmZzZXQgfHwgb2Zmc2V0NCAhPSBEVG9mZnNldCB8fAorICAgICAgICAgICAgb2Zmc2V0NSAhPSBEVG9mZnNldCB8fCBvZmZzZXQ2ICE9IFNUb2Zmc2V0IHx8CisgICAgICAgICAgICBvZmZzZXQ3ICE9IFNUb2Zmc2V0IHx8IG9mZnNldDggIT0gU1RvZmZzZXQpCisgICAgICAgICAgICBlcnJsbigiRmFpbDogVGltZVpvbmUgbWlzYmVoYXZpbmciKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA5Njk1MigpIHsKKyAgICAgICAgU3RyaW5nW10gWk9ORVMgPSB7ICJHTVQiLCAiTUVUIiwgIklTVCIgfTsKKyAgICAgICAgYm9vbGVhbiBwYXNzID0gdHJ1ZTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxaT05FUy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIFRpbWVab25lIHpvbmUgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZShaT05FU1tpXSk7CisgICAgICAgICAgICAgICAgaWYgKCF6b25lLmdldElEKCkuZXF1YWxzKFpPTkVTW2ldKSkKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IFRlc3QgYnJva2VuOyB6b25lcyBub3QgaW5zdGFudGlhdGluZyIpOworCisgICAgICAgICAgICAgICAgQnl0ZUFycmF5T3V0cHV0U3RyZWFtIGJhb3M7CisgICAgICAgICAgICAgICAgT2JqZWN0T3V0cHV0U3RyZWFtIG9zdHJlYW0gPQorICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0T3V0cHV0U3RyZWFtKGJhb3MgPSBuZXcgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnl0ZUFycmF5T3V0cHV0U3RyZWFtKCkpOworICAgICAgICAgICAgICAgIG9zdHJlYW0ud3JpdGVPYmplY3Qoem9uZSk7CisgICAgICAgICAgICAgICAgb3N0cmVhbS5jbG9zZSgpOworICAgICAgICAgICAgICAgIGJhb3MuY2xvc2UoKTsKKyAgICAgICAgICAgICAgICBPYmplY3RJbnB1dFN0cmVhbSBpc3RyZWFtID0KKyAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdElucHV0U3RyZWFtKG5ldyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ5dGVBcnJheUlucHV0U3RyZWFtKGJhb3MudG9CeXRlQXJyYXkoKSkpOworICAgICAgICAgICAgICAgIFRpbWVab25lIGZyYW5rZW5ab25lID0gKFRpbWVab25lKSBpc3RyZWFtLnJlYWRPYmplY3QoKTsKKyAgICAgICAgICAgICAgICAvL2xvZ2xuKCJab25lOiAgICAgICAgIiArIHpvbmUpOworICAgICAgICAgICAgICAgIC8vbG9nbG4oIkZyYW5rZW5ab25lOiAiICsgZnJhbmtlblpvbmUpOworICAgICAgICAgICAgICAgIGlmICghem9uZS5lcXVhbHMoZnJhbmtlblpvbmUpKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJUaW1lWm9uZSAiICsgem9uZS5nZXRJRCgpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiBub3QgZXF1YWwgdG8gc2VyaWFsaXplZC9kZXNlcmlhbGl6ZWQgb25lIik7CisgICAgICAgICAgICAgICAgICAgIHBhc3MgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIXBhc3MpIGVycmxuKCJGYWlsOiBUaW1lWm9uZSBzZXJpYWxpemF0aW9uL2VxdWFsaXR5IGJ1ZyIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIGUpOworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIGUpOworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTA5MzE0KCkgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciB0ZXN0Q2FsID0gKEdyZWdvcmlhbkNhbGVuZGFyKUNhbGVuZGFyLmdldEluc3RhbmNlKCk7IAorICAgICAgICBUaW1lWm9uZSBQU1QgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisgICAgICAgIGphdmEudXRpbC5DYWxlbmRhciB0ZW1wY2FsID0gamF2YS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIHRlbXBjYWwuY2xlYXIoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5OCxDYWxlbmRhci5BUFJJTCw0LDIyLDApOworICAgICAgICBEYXRlIGQxID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTgsQ2FsZW5kYXIuQVBSSUwsNSw2LDApOworICAgICAgICBEYXRlIGQyID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTgsQ2FsZW5kYXIuT0NUT0JFUiwyNCwyMiwwKTsKKyAgICAgICAgRGF0ZSBkMyA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk4LENhbGVuZGFyLk9DVE9CRVIsMjUsNiwwKTsKKyAgICAgICAgRGF0ZSBkNCA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICBPYmplY3RbXSB0ZXN0RGF0YSA9IHsKKyAgICAgICAgICAgIFBTVCwgZDEsIGQyLAorICAgICAgICAgICAgUFNULCBkMywgZDQsCisgICAgICAgIH07CisgICAgICAgIGJvb2xlYW4gcGFzcz10cnVlOworICAgICAgICBmb3IgKGludCBpPTA7IGk8dGVzdERhdGEubGVuZ3RoOyBpKz0zKSB7CisgICAgICAgICAgICB0ZXN0Q2FsLnNldFRpbWVab25lKChUaW1lWm9uZSkgdGVzdERhdGFbaV0pOworICAgICAgICAgICAgbG9uZyB0ID0gKChEYXRlKXRlc3REYXRhW2krMV0pLmdldFRpbWUoKTsKKyAgICAgICAgICAgIERhdGUgZW5kID0gKERhdGUpIHRlc3REYXRhW2krMl07CisgICAgICAgICAgICB3aGlsZSAodCA8IGVuZC5nZXRUaW1lKCkpIHsgCisgICAgICAgICAgICAgICAgdGVzdENhbC5zZXRUaW1lKG5ldyBEYXRlKHQpKTsKKyAgICAgICAgICAgICAgICBpZiAoIWNoZWNrQ2FsZW5kYXIzMTQodGVzdENhbCwgKFRpbWVab25lKSB0ZXN0RGF0YVtpXSkpCisgICAgICAgICAgICAgICAgICAgIHBhc3MgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB0ICs9IDYwKjYwKjEwMDBMOworICAgICAgICAgICAgfSAKKyAgICAgICAgfQorICAgICAgICBpZiAoIXBhc3MpIGVycmxuKCJGYWlsOiBUWiBBUEkgaW5jb25zaXN0ZW50Iik7CisgICAgfSAKKworICAgIGJvb2xlYW4gY2hlY2tDYWxlbmRhcjMxNChHcmVnb3JpYW5DYWxlbmRhciB0ZXN0Q2FsLCBUaW1lWm9uZSB0ZXN0VFopIHsgCisgICAgICAgIC8vIEdyZWdvcmlhbkNhbGVuZGFyIHRlc3RDYWwgPSAoR3JlZ29yaWFuQ2FsZW5kYXIpYUNhbC5jbG9uZSgpOyAKKworICAgICAgICBmaW5hbCBpbnQgT05FX0RBWSA9IDI0KjYwKjYwKjEwMDA7CisKKyAgICAgICAgaW50IHR6T2Zmc2V0LCB0elJhd09mZnNldDsgCisgICAgICAgIEZsb2F0IHR6T2Zmc2V0RmxvYXQsdHpSYXdPZmZzZXRGbG9hdDsgCisgICAgICAgIC8vIEhlcmUgaXMgd2hlcmUgdGhlIHVzZXIgbWFkZSBhbiBlcnJvci4gIFRoZXkgd2VyZSBwYXNzaW5nIGluIHRoZSB2YWx1ZSBvZgorICAgICAgICAvLyB0aGUgTUlMTFNFQ09ORCBmaWVsZDsgeW91IG5lZWQgdG8gcGFzcyBpbiB0aGUgbWlsbGlzIGluIHRoZSBkYXkgaW4gU1RBTkRBUkQKKyAgICAgICAgLy8gdGltZS4KKyAgICAgICAgaW50IG1pbGxpcyA9IHRlc3RDYWwuZ2V0KENhbGVuZGFyLk1JTExJU0VDT05EKSArCisgICAgICAgICAgICAxMDAwICogKHRlc3RDYWwuZ2V0KENhbGVuZGFyLlNFQ09ORCkgKworICAgICAgICAgICAgICAgICAgICA2MCAqICh0ZXN0Q2FsLmdldChDYWxlbmRhci5NSU5VVEUpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgNjAgKiAodGVzdENhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpKSkpIC0KKyAgICAgICAgICAgIHRlc3RDYWwuZ2V0KENhbGVuZGFyLkRTVF9PRkZTRVQpOworCisgICAgICAgIC8qIEZpeCB1cCBtaWxsaXMgdG8gYmUgaW4gcmFuZ2UuICBBU1NVTUUgVEhBVCBXRSBBUkUgTk9UIEFUIFRIRQorICAgICAgICAgKiBCRUdJTk5JTkcgT1IgRU5EIE9GIEEgTU9OVEguICBXZSBtdXN0IGFkZCB0aGlzIGNvZGUgYmVjYXVzZQorICAgICAgICAgKiBnZXRPZmZzZXQoKSBoYXMgYmVlbiBjaGFuZ2VkIHRvIGJlIG1vcmUgc3RyaWN0IGFib3V0IHRoZSBwYXJhbWV0ZXJzCisgICAgICAgICAqIGl0IHJlY2VpdmVzIC0tIGl0IHR1cm5zIG91dCB0aGF0IHRoaXMgdGVzdCB3YXMgcGFzc2luZyBpbiBpbGxlZ2FsCisgICAgICAgICAqIHZhbHVlcy4gKi8KKyAgICAgICAgaW50IGRhdGUgPSB0ZXN0Q2FsLmdldChDYWxlbmRhci5EQVRFKTsKKyAgICAgICAgaW50IGRvdyAgPSB0ZXN0Q2FsLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSyk7CisgICAgICAgIHdoaWxlIChtaWxsaXMgPCAwKSB7CisgICAgICAgICAgICBtaWxsaXMgKz0gT05FX0RBWTsKKyAgICAgICAgICAgIC0tZGF0ZTsKKyAgICAgICAgICAgIGRvdyA9IENhbGVuZGFyLlNVTkRBWSArICgoZG93IC0gQ2FsZW5kYXIuU1VOREFZICsgNikgJSA3KTsKKyAgICAgICAgfQorICAgICAgICB3aGlsZSAobWlsbGlzID49IE9ORV9EQVkpIHsKKyAgICAgICAgICAgIG1pbGxpcyAtPSBPTkVfREFZOworICAgICAgICAgICAgKytkYXRlOworICAgICAgICAgICAgZG93ID0gQ2FsZW5kYXIuU1VOREFZICsgKChkb3cgLSBDYWxlbmRhci5TVU5EQVkgKyAxKSAlIDcpOworICAgICAgICB9CisKKyAgICAgICAgdHpPZmZzZXQgPSB0ZXN0VFouZ2V0T2Zmc2V0KHRlc3RDYWwuZ2V0KENhbGVuZGFyLkVSQSksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdENhbC5nZXQoQ2FsZW5kYXIuWUVBUiksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdENhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG93LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbGxpcyk7IAorICAgICAgICB0elJhd09mZnNldCA9IHRlc3RUWi5nZXRSYXdPZmZzZXQoKTsgCisgICAgICAgIHR6T2Zmc2V0RmxvYXQgPSBuZXcgRmxvYXQoKGZsb2F0KXR6T2Zmc2V0LyhmbG9hdCkzNjAwMDAwKTsgCisgICAgICAgIHR6UmF3T2Zmc2V0RmxvYXQgPSBuZXcgRmxvYXQoKGZsb2F0KXR6UmF3T2Zmc2V0LyhmbG9hdCkzNjAwMDAwKTsgCisKKyAgICAgICAgRGF0ZSB0ZXN0RGF0ZSA9IHRlc3RDYWwuZ2V0VGltZSgpOyAKKworICAgICAgICBib29sZWFuIGluRGF5bGlnaHRUaW1lID0gdGVzdFRaLmluRGF5bGlnaHRUaW1lKHRlc3REYXRlKTsgCisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIk1NL2RkL3l5eXkgSEg6bW0iKTsgCisgICAgICAgIHNkZi5zZXRDYWxlbmRhcih0ZXN0Q2FsKTsgCisgICAgICAgIFN0cmluZyBpbkRheWxpZ2h0VGltZVN0cmluZzsgCisKKyAgICAgICAgYm9vbGVhbiBwYXNzZWQ7IAorCisgICAgICAgIGlmIChpbkRheWxpZ2h0VGltZSkgCisgICAgICAgIHsgCisgICAgICAgICAgICBpbkRheWxpZ2h0VGltZVN0cmluZyA9ICIgRFNUICI7IAorICAgICAgICAgICAgcGFzc2VkID0gKHR6T2Zmc2V0ID09ICh0elJhd09mZnNldCArIDM2MDAwMDApKTsKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSAKKyAgICAgICAgeyAKKyAgICAgICAgICAgIGluRGF5bGlnaHRUaW1lU3RyaW5nID0gIiAgICAgIjsgCisgICAgICAgICAgICBwYXNzZWQgPSAodHpPZmZzZXQgPT0gdHpSYXdPZmZzZXQpOworICAgICAgICB9IAorCisgICAgICAgIFN0cmluZyBvdXRwdXQgPSB0ZXN0VFouZ2V0SUQoKSArICIgIiArIHNkZi5mb3JtYXQodGVzdERhdGUpICsKKyAgICAgICAgICAgICIgT2Zmc2V0KCIgKyB0ek9mZnNldEZsb2F0ICsgIikiICsKKyAgICAgICAgICAgICIgUmF3T2Zmc2V0KCIgKyB0elJhd09mZnNldEZsb2F0ICsgIikiICsgCisgICAgICAgICAgICAiICIgKyBtaWxsaXMvKGZsb2F0KTM2MDAwMDAgKyAiICIgKworICAgICAgICAgICAgaW5EYXlsaWdodFRpbWVTdHJpbmc7IAorCisgICAgICAgIGlmIChwYXNzZWQpIAorICAgICAgICAgICAgb3V0cHV0ICs9ICIgICAgICI7IAorICAgICAgICBlbHNlIAorICAgICAgICAgICAgb3V0cHV0ICs9ICJFUlJPUiI7IAorCisgICAgICAgIGlmIChwYXNzZWQpIGxvZ2xuKG91dHB1dCk7IGVsc2UgZXJybG4ob3V0cHV0KTsKKyAgICAgICAgcmV0dXJuIHBhc3NlZDsKKyAgICB9IAorCisgICAgLyoqCisgICAgICogQ0FOTk9UIFJFUFJPRFVERQorICAgICAqCisgICAgICogWWV0IGFub3RoZXIgX2FsbGVnZWRfIGJ1ZyBpbiBUaW1lWm9uZS5nZXRPZmZzZXQoKSwgYSBtZXRob2QgdGhhdCBuZXZlcgorICAgICAqIHNob3VsZCBoYXZlIGJlZW4gbWFkZSBwdWJsaWMuICBJdCdzIHNpbXBseSB0b28gaGFyZCB0byB1c2UgY29ycmVjdGx5LgorICAgICAqCisgICAgICogVGhlIG9yaWdpbmFsIHRlc3QgY29kZSBmYWlsZWQgdG8gZG8gdGhlIGZvbGxvd2luZzoKKyAgICAgKiAoMSkgQ2FsbCBDYWxlbmRhci5zZXRUaW1lKCkgYmVmb3JlIGdldHRpbmcgdGhlIGZpZWxkcyEKKyAgICAgKiAoMikgVXNlIHRoZSByaWdodCBtaWxsaXMgKGFzIHVzdWFsKSBmb3IgZ2V0T2Zmc2V0KCk7IHRoZXkgd2VyZSBwYXNzaW5nCisgICAgICogICAgIGluIHRoZSBNSUxMSVMgZmllbGQsIGluc3RlYWQgb2YgdGhlIFNUQU5EQVJEIE1JTExJUyBJTiBEQVkuCisgICAgICogV2hlbiB5b3UgZml4IHRoZXNlIHR3byBwcm9ibGVtcywgdGhlIHRlc3QgcGFzc2VzLCBhcyBleHBlY3RlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEyNjY3OCgpIHsKKwkvLyBOb3RlOiB0aGlzIHRlc3QgZGVwZW5kcyBvbiB0aGUgUFNUIHRpbWUgem9uZS4KKwlUaW1lWm9uZSBpbml0aWFsWm9uZSA9IFRpbWVab25lLmdldERlZmF1bHQoKTsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisJVGltZVpvbmUuc2V0RGVmYXVsdCh0eik7CisgICAgICAgIGNhbC5zZXRUaW1lWm9uZSh0eik7CisKKyAgICAgICAgamF2YS51dGlsLkNhbGVuZGFyIHRlbXBjYWwgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgdGVtcGNhbC5jbGVhcigpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk4LCBDYWxlbmRhci5BUFJJTCwgNSwgMTAsIDApOworICAgICAgICBEYXRlIGR0ID0gdGVtcGNhbC5nZXRUaW1lKCk7CisJLy8gdGhlIGR0IHZhbHVlIGlzIGxvY2FsIHRpbWUgaW4gUFNULgorICAgICAgICBpZiAoIXR6LmluRGF5bGlnaHRUaW1lKGR0KSkKKyAgICAgICAgICAgIGVycmxuKCJXZSdyZSBub3QgaW4gRGF5bGlnaHQgU2F2aW5ncyBUaW1lIGFuZCB3ZSBzaG91bGQgYmUuXG4iKTsKKworICAgICAgICBjYWwuc2V0VGltZShkdCk7CisgICAgICAgIGludCBlcmEgPSBjYWwuZ2V0KENhbGVuZGFyLkVSQSk7CisgICAgICAgIGludCB5ZWFyID0gY2FsLmdldChDYWxlbmRhci5ZRUFSKTsKKyAgICAgICAgaW50IG1vbnRoID0gY2FsLmdldChDYWxlbmRhci5NT05USCk7CisgICAgICAgIGludCBkYXkgPSBjYWwuZ2V0KENhbGVuZGFyLkRBVEUpOworICAgICAgICBpbnQgZGF5T2ZXZWVrID0gY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSyk7CisgICAgICAgIGludCBtaWxsaXMgPSBjYWwuZ2V0KENhbGVuZGFyLk1JTExJU0VDT05EKSArCisgICAgICAgICAgICAoY2FsLmdldChDYWxlbmRhci5TRUNPTkQpICsKKyAgICAgICAgICAgICAoY2FsLmdldChDYWxlbmRhci5NSU5VVEUpICsKKyAgICAgICAgICAgICAgKGNhbC5nZXQoQ2FsZW5kYXIuSE9VUikgKiA2MCkgKiA2MCkgKiAxMDAwKSAtCisgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLkRTVF9PRkZTRVQpOworCisgICAgICAgIGxvbmcgb2Zmc2V0ID0gdHouZ2V0T2Zmc2V0KGVyYSwgeWVhciwgbW9udGgsIGRheSwgZGF5T2ZXZWVrLCBtaWxsaXMpOworICAgICAgICBsb25nIHJhd19vZmZzZXQgPSB0ei5nZXRSYXdPZmZzZXQoKTsKKyAgICAgICAgaWYgKG9mZnNldCA9PSByYXdfb2Zmc2V0KQorICAgICAgICAgICAgZXJybG4oIk9mZnNldHMgc2hvdWxkIG5vdCBtYXRjaCB3aGVuIGluIERTVCIpOworCisJLy8gcmVzdG9yZSB0aGUgaW5pdGlhbCB0aW1lIHpvbmUgc28gdGhhdCB0aGlzIHRlc3QgY2FzZQorCS8vIGRvZXNuJ3QgYWZmZWN0IHRoZSBvdGhlcnMuCisJVGltZVpvbmUuc2V0RGVmYXVsdChpbml0aWFsWm9uZSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRpbWVab25lLmdldEF2YWlsYWJsZUlEcyhpbnQpIHRocm93cyBleGNlcHRpb24gZm9yIGNlcnRhaW4gdmFsdWVzLAorICAgICAqIGR1ZSB0byBhIGZhdWx0eSBjb25zdGFudCBpbiBUaW1lWm9uZS5qYXZhLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTUxNDA2KCkgeworICAgICAgICBpbnQgbWF4ID0gMDsKKyAgICAgICAgZm9yIChpbnQgaD0tMjg7IGg8PTMwOyArK2gpIHsKKyAgICAgICAgICAgIC8vIGggaXMgaW4gaGFsZi1ob3VycyBmcm9tIEdNVDsgcmF3b2Zmc2V0IGlzIGluIG1pbGxpcworICAgICAgICAgICAgaW50IHJhd29mZnNldCA9IGggKiAxODAwMDAwOworICAgICAgICAgICAgaW50IGhoID0gKGg8MCkgPyAtaCA6IGg7CisgICAgICAgICAgICBTdHJpbmcgaG5hbWUgPSAoKGg8MCkgPyAiR01ULSIgOiAiR01UKyIpICsKKyAgICAgICAgICAgICAgICAoKGhoLzIgPCAxMCkgPyAiMCIgOiAiIikgKworICAgICAgICAgICAgICAgIChoaC8yKSArICc6JyArCisgICAgICAgICAgICAgICAgKChoaCUyPT0wKSA/ICIwMCIgOiAiMzAiKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgU3RyaW5nW10gaWRzID0gVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzKHJhd29mZnNldCk7CisgICAgICAgICAgICAgICAgaWYgKGlkcy5sZW5ndGggPiBtYXgpIG1heCA9IGlkcy5sZW5ndGg7CisgICAgICAgICAgICAgICAgbG9nbG4oaG5hbWUgKyAnICcgKyBpZHMubGVuZ3RoICsKKyAgICAgICAgICAgICAgICAgICAgICAoKGlkcy5sZW5ndGggPiAwKSA/ICgiIGUuZy4gIiArIGlkc1swXSkgOiAiIikpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbihobmFtZSArICcgJyArICJGYWlsOiAiICsgZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4oIk1heGltdW0gem9uZXMgcGVyIG9mZnNldCA9ICIgKyBtYXgpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTUxNDI5KCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiR01UIik7CisgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IHR6LmdldERpc3BsYXlOYW1lKHRydWUsIEludGVnZXIuTUFYX1ZBTFVFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgICAgIG5hbWUgPSBudWxsOworICAgICAgICAgICAgZXJybG4oIklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBub3QgdGhyb3duIGJ5IFRpbWVab25lLmdldERpc3BsYXlOYW1lKCkiKTsKKyAgICAgICAgfSBjYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTaW1wbGVUaW1lWm9uZSBhY2NlcHRzIGlsbGVnYWwgRFNUIHNhdmluZ3MgdmFsdWVzLiAgVGhlc2UgdmFsdWVzCisgICAgICogbXVzdCBiZSBub24temVyby4gIFRoZXJlIGlzIG5vIHVwcGVyIGxpbWl0IGF0IHRoaXMgdGltZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE1NDUyNSgpIHsKKyAgICAgICAgZmluYWwgaW50IEdPT0QgPSAxLCBCQUQgPSAwOworICAgICAgICBpbnRbXSBEQVRBID0geworICAgICAgICAgICAgMSwgR09PRCwKKyAgICAgICAgICAgIDAsIEJBRCwKKyAgICAgICAgICAgIC0xLCBCQUQsCisgICAgICAgICAgICA2MCo2MCoxMDAwLCBHT09ELAorICAgICAgICAgICAgSW50ZWdlci5NSU5fVkFMVUUsIEJBRCwKKyAgICAgICAgICAgIC8vIEludGVnZXIuTUFYX1ZBTFVFLCA/LCAvLyBubyB1cHBlciBsaW1pdCBvbiBEU1Qgc2F2aW5ncyBhdCB0aGlzIHRpbWUKKyAgICAgICAgfTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0yKSB7CisgICAgICAgICAgICBpbnQgc2F2aW5ncyA9IERBVEFbaV07CisgICAgICAgICAgICBib29sZWFuIHZhbGlkID0gREFUQVtpKzFdID09IEdPT0Q7CisgICAgICAgICAgICBTdHJpbmcgbWV0aG9kID0gbnVsbDsKKyAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajwyOyArK2opIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGopIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kID0gImNvbnN0cnVjdG9yIjsKKyAgICAgICAgICAgICAgICAgICAgICAgIFNpbXBsZVRpbWVab25lIHogPSBuZXcgU2ltcGxlVGltZVpvbmUoMCwgImlkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5KQU5VQVJZLCAxLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLk1BUkNILCAxLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhdmluZ3MpOyAvLyA8LSB3aGF0IHdlJ3JlIGludGVyZXN0ZWQgaW4KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QgPSAic2V0RFNUU2F2aW5ncygpIjsKKyAgICAgICAgICAgICAgICAgICAgICAgIHogPSBuZXcgU2ltcGxlVGltZVpvbmUoMCwgIkdNVCIpOworICAgICAgICAgICAgICAgICAgICAgICAgei5zZXREU1RTYXZpbmdzKHNhdmluZ3MpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhbGlkKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiUGFzczogRFNUIHNhdmluZ3Mgb2YgIiArIHNhdmluZ3MgKyAiIGFjY2VwdGVkIGJ5ICIgKyBtZXRob2QpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IERTVCBzYXZpbmdzIG9mICIgKyBzYXZpbmdzICsgIiBhY2NlcHRlZCBieSAiICsgbWV0aG9kKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh2YWxpZCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IERTVCBzYXZpbmdzIG9mICIgKyBzYXZpbmdzICsgIiB0byAiICsgbWV0aG9kICsgIiBnYXZlICIgKyBlKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJQYXNzOiBEU1Qgc2F2aW5ncyBvZiAiICsgc2F2aW5ncyArICIgdG8gIiArIG1ldGhvZCArICIgZ2F2ZSAiICsgZSk7CisgICAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTaW1wbGVUaW1lWm9uZS5oYXNTYW1lUnVsZXMoKSBkb2Vzbid0IHdvcmsgZm9yIHpvbmVzIHdpdGggbm8gRFNUCisgICAgICogYW5kIGRpZmZlcmVudCBEU1QgcGFyYW1ldGVycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE1NDUzNygpIHsKKyAgICAgICAgLy8gdHoxIGFuZCB0ejIgaGF2ZSBubyBEU1QgYW5kIGRpZmZlcmVudCBydWxlIHBhcmFtZXRlcnMKKyAgICAgICAgU2ltcGxlVGltZVpvbmUgdHoxID0gbmV3IFNpbXBsZVRpbWVab25lKDAsICIxIiwgMCwgMCwgMCwgMCwgMiwgMCwgMCwgMCk7CisgICAgICAgIFNpbXBsZVRpbWVab25lIHR6MiA9IG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiMiIsIDEsIDAsIDAsIDAsIDMsIDAsIDAsIDApOworICAgICAgICAvLyB0emEgYW5kIHR6QSBoYXZlIHRoZSBzYW1lIHJ1bGUgcGFyYW1zCisgICAgICAgIFNpbXBsZVRpbWVab25lIHR6YSA9IG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiYSIsIDAsIDEsIDAsIDAsIDMsIDIsIDAsIDApOworICAgICAgICBTaW1wbGVUaW1lWm9uZSB0ekEgPSBuZXcgU2ltcGxlVGltZVpvbmUoMCwgIkEiLCAwLCAxLCAwLCAwLCAzLCAyLCAwLCAwKTsKKyAgICAgICAgLy8gdHpiIGRpZmZlcnMgZnJvbSB0emEKKyAgICAgICAgU2ltcGxlVGltZVpvbmUgdHpiID0gbmV3IFNpbXBsZVRpbWVab25lKDAsICJiIiwgMCwgMSwgMCwgMCwgMywgMSwgMCwgMCk7CisgICAgICAgIGlmICh0ejEudXNlRGF5bGlnaHRUaW1lKCkgfHwgdHoyLnVzZURheWxpZ2h0VGltZSgpIHx8CisgICAgICAgICAgICAhdHphLnVzZURheWxpZ2h0VGltZSgpIHx8ICF0ekEudXNlRGF5bGlnaHRUaW1lKCkgfHwKKyAgICAgICAgICAgICF0emIudXNlRGF5bGlnaHRUaW1lKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJUZXN0IGlzIGJyb2tlbiAtLSByZXdyaXRlIGl0Iik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCF0emEuaGFzU2FtZVJ1bGVzKHR6QSkgfHwgdHphLmhhc1NhbWVSdWxlcyh0emIpKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbDogaGFzU2FtZVJ1bGVzKCkgYnJva2VuIGZvciB6b25lcyB3aXRoIHJ1bGVzIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCF0ejEuaGFzU2FtZVJ1bGVzKHR6MikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBoYXNTYW1lUnVsZXMoKSByZXR1cm5zIGZhbHNlIGZvciB6b25lcyB3aXRob3V0IHJ1bGVzIik7CisgICAgICAgICAgICBlcnJsbigiem9uZSAxID0gIiArIHR6MSk7CisgICAgICAgICAgICBlcnJsbigiem9uZSAyID0gIiArIHR6Mik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTaW1wbGVUaW1lWm9uZSBjb25zdHJ1Y3RvcnMsIHNldFN0YXJ0UnVsZSgpLCBhbmQgc2V0RW5kUnVsZSgpIGRvbid0CisgICAgICogY2hlY2sgZm9yIG91dC1vZi1yYW5nZSBhcmd1bWVudHMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNTQ1NDIoKSB7CisgICAgICAgIGZpbmFsIGludCBHT09EID0gMTsKKyAgICAgICAgZmluYWwgaW50IEJBRCAgPSAwOworCisgICAgICAgIGZpbmFsIGludCBHT09EX01PTlRIICAgICAgID0gQ2FsZW5kYXIuSkFOVUFSWTsKKyAgICAgICAgZmluYWwgaW50IEdPT0RfREFZICAgICAgICAgPSAxOworICAgICAgICBmaW5hbCBpbnQgR09PRF9EQVlfT0ZfV0VFSyA9IENhbGVuZGFyLlNVTkRBWTsKKyAgICAgICAgZmluYWwgaW50IEdPT0RfVElNRSAgICAgICAgPSAwOworCisgICAgICAgIGludFtdIERBVEEgPSB7CisgICAgICAgICAgICBHT09ELCBJbnRlZ2VyLk1JTl9WQUxVRSwgICAgMCwgIEludGVnZXIuTUFYX1ZBTFVFLCAgIEludGVnZXIuTUlOX1ZBTFVFLAorICAgICAgICAgICAgR09PRCwgQ2FsZW5kYXIuSkFOVUFSWSwgICAgLTUsICBDYWxlbmRhci5TVU5EQVksICAgICAwLAorICAgICAgICAgICAgR09PRCwgQ2FsZW5kYXIuREVDRU1CRVIsICAgIDUsICBDYWxlbmRhci5TQVRVUkRBWSwgICAyNCo2MCo2MCoxMDAwLTEsCisgICAgICAgICAgICBCQUQsICBDYWxlbmRhci5ERUNFTUJFUiwgICAgNSwgIENhbGVuZGFyLlNBVFVSREFZLCAgIDI0KjYwKjYwKjEwMDAsCisgICAgICAgICAgICBCQUQsICBDYWxlbmRhci5ERUNFTUJFUiwgICAgNSwgIENhbGVuZGFyLlNBVFVSREFZLCAgLTEsCisgICAgICAgICAgICBCQUQsICBDYWxlbmRhci5KQU5VQVJZLCAgICAtNiwgIENhbGVuZGFyLlNVTkRBWSwgICAgIDAsCisgICAgICAgICAgICBCQUQsICBDYWxlbmRhci5ERUNFTUJFUiwgICAgNiwgIENhbGVuZGFyLlNBVFVSREFZLCAgIDI0KjYwKjYwKjEwMDAsCisgICAgICAgICAgICBHT09ELCBDYWxlbmRhci5ERUNFTUJFUiwgICAgMSwgIDAsICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICBHT09ELCBDYWxlbmRhci5ERUNFTUJFUiwgICAzMSwgIDAsICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICBCQUQsICBDYWxlbmRhci5BUFJJTCwgICAgICAzMSwgIDAsICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICBCQUQsICBDYWxlbmRhci5ERUNFTUJFUiwgICAzMiwgIDAsICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICBCQUQsICBDYWxlbmRhci5KQU5VQVJZLTEsICAgMSwgIENhbGVuZGFyLlNVTkRBWSwgICAgIDAsCisgICAgICAgICAgICBCQUQsICBDYWxlbmRhci5ERUNFTUJFUisxLCAgMSwgIENhbGVuZGFyLlNVTkRBWSwgICAgIDAsCisgICAgICAgICAgICBHT09ELCBDYWxlbmRhci5ERUNFTUJFUiwgICAzMSwgLUNhbGVuZGFyLlNVTkRBWSwgICAgIDAsCisgICAgICAgICAgICBHT09ELCBDYWxlbmRhci5ERUNFTUJFUiwgICAzMSwgLUNhbGVuZGFyLlNBVFVSREFZLCAgIDAsCisgICAgICAgICAgICBCQUQsICBDYWxlbmRhci5ERUNFTUJFUiwgICAzMiwgLUNhbGVuZGFyLlNBVFVSREFZLCAgIDAsCisgICAgICAgICAgICBCQUQsICBDYWxlbmRhci5ERUNFTUJFUiwgIC0zMiwgLUNhbGVuZGFyLlNBVFVSREFZLCAgIDAsCisgICAgICAgICAgICBCQUQsICBDYWxlbmRhci5ERUNFTUJFUiwgICAzMSwgLUNhbGVuZGFyLlNBVFVSREFZLTEsIDAsCisgICAgICAgIH07CisgICAgICAgIFNpbXBsZVRpbWVab25lIHpvbmUgPSBuZXcgU2ltcGxlVGltZVpvbmUoMCwgIloiKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz01KSB7CisgICAgICAgICAgICBib29sZWFuIHNob3VsZEJlR29vZCA9IChEQVRBW2ldID09IEdPT0QpOworICAgICAgICAgICAgaW50IG1vbnRoICAgICA9IERBVEFbaSsxXTsKKyAgICAgICAgICAgIGludCBkYXkgICAgICAgPSBEQVRBW2krMl07CisgICAgICAgICAgICBpbnQgZGF5T2ZXZWVrID0gREFUQVtpKzNdOworICAgICAgICAgICAgaW50IHRpbWUgICAgICA9IERBVEFbaSs0XTsKKworICAgICAgICAgICAgRXhjZXB0aW9uIGV4ID0gbnVsbDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgem9uZS5zZXRTdGFydFJ1bGUobW9udGgsIGRheSwgZGF5T2ZXZWVrLCB0aW1lKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXggPSBlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKChleCA9PSBudWxsKSAhPSBzaG91bGRCZUdvb2QpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigic2V0U3RhcnRSdWxlKG1vbnRoPSIgKyBtb250aCArICIsIGRheT0iICsgZGF5ICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCBkYXlPZldlZWs9IiArIGRheU9mV2VlayArICIsIHRpbWU9IiArIHRpbWUgKworICAgICAgICAgICAgICAgICAgICAgIChzaG91bGRCZUdvb2QgPyAoIikgc2hvdWxkIHdvcmsgYnV0IHRocm93cyAiICsgZXgpCisgICAgICAgICAgICAgICAgICAgICAgIDogIikgc2hvdWxkIGZhaWwgYnV0IGRvZXNuJ3QiKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGV4ID0gbnVsbDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgem9uZS5zZXRFbmRSdWxlKG1vbnRoLCBkYXksIGRheU9mV2VlaywgdGltZSk7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGV4ID0gZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgoZXggPT0gbnVsbCkgIT0gc2hvdWxkQmVHb29kKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInNldEVuZFJ1bGUobW9udGg9IiArIG1vbnRoICsgIiwgZGF5PSIgKyBkYXkgKworICAgICAgICAgICAgICAgICAgICAgICIsIGRheU9mV2Vlaz0iICsgZGF5T2ZXZWVrICsgIiwgdGltZT0iICsgdGltZSArCisgICAgICAgICAgICAgICAgICAgICAgKHNob3VsZEJlR29vZCA/ICgiKSBzaG91bGQgd29yayBidXQgdGhyb3dzICIgKyBleCkKKyAgICAgICAgICAgICAgICAgICAgICAgOiAiKSBzaG91bGQgZmFpbCBidXQgZG9lc24ndCIpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZXggPSBudWxsOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBTaW1wbGVUaW1lWm9uZSB0ZW1wID0gbmV3IFNpbXBsZVRpbWVab25lKDAsICJaIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRoLCBkYXksIGRheU9mV2VlaywgdGltZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIEdPT0RfTU9OVEgsIEdPT0RfREFZLCBHT09EX0RBWV9PRl9XRUVLLCBHT09EX1RJTUUpOworICAgICAgICAgICAgICAgIHRlbXAgPSBudWxsOworICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBleCA9IGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoKGV4ID09IG51bGwpICE9IHNob3VsZEJlR29vZCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJTaW1wbGVUaW1lWm9uZShtb250aD0iICsgbW9udGggKyAiLCBkYXk9IiArIGRheSArCisgICAgICAgICAgICAgICAgICAgICAgIiwgZGF5T2ZXZWVrPSIgKyBkYXlPZldlZWsgKyAiLCB0aW1lPSIgKyB0aW1lICsKKyAgICAgICAgICAgICAgICAgICAgICAoc2hvdWxkQmVHb29kID8gKCIsIDxlbmQ+KSBzaG91bGQgd29yayBidXQgdGhyb3dzICIgKyBleCkKKyAgICAgICAgICAgICAgICAgICAgICAgOiAiLCA8ZW5kPikgc2hvdWxkIGZhaWwgYnV0IGRvZXNuJ3QiKSk7CisgICAgICAgICAgICB9ICAgICAgICAgICAgCisKKyAgICAgICAgICAgIGV4ID0gbnVsbDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgU2ltcGxlVGltZVpvbmUgdGVtcCA9IG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiWiIsCisgICAgICAgICAgICAgICAgICAgICAgICBHT09EX01PTlRILCBHT09EX0RBWSwgR09PRF9EQVlfT0ZfV0VFSywgR09PRF9USU1FLAorICAgICAgICAgICAgICAgICAgICAgICAgbW9udGgsIGRheSwgZGF5T2ZXZWVrLCB0aW1lKTsKKyAgICAgICAgICAgICAgICB0ZW1wID0gbnVsbDsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXggPSBlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKChleCA9PSBudWxsKSAhPSBzaG91bGRCZUdvb2QpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiU2ltcGxlVGltZVpvbmUoPHN0YXJ0PiwgbW9udGg9IiArIG1vbnRoICsgIiwgZGF5PSIgKyBkYXkgKworICAgICAgICAgICAgICAgICAgICAgICIsIGRheU9mV2Vlaz0iICsgZGF5T2ZXZWVrICsgIiwgdGltZT0iICsgdGltZSArCisgICAgICAgICAgICAgICAgICAgICAgKHNob3VsZEJlR29vZCA/ICgiKSBzaG91bGQgd29yayBidXQgdGhyb3dzICIgKyBleCkKKyAgICAgICAgICAgICAgICAgICAgICAgOiAiKSBzaG91bGQgZmFpbCBidXQgZG9lc24ndCIpKTsKKyAgICAgICAgICAgIH0gICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFNpbXBsZVRpbWVab25lLmdldE9mZnNldCBhY2NlcHRzIGlsbGVnYWwgYXJndW1lbnRzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTU0NjUwKCkgeworICAgICAgICBmaW5hbCBpbnQgR09PRD0xLCBCQUQ9MDsKKyAgICAgICAgZmluYWwgaW50IEdPT0RfRVJBPUdyZWdvcmlhbkNhbGVuZGFyLkFELCBHT09EX1lFQVI9MTk5OCwgR09PRF9NT05USD1DYWxlbmRhci5BVUdVU1Q7CisgICAgICAgIGZpbmFsIGludCBHT09EX0RBWT0yLCBHT09EX0RPVz1DYWxlbmRhci5TVU5EQVksIEdPT0RfVElNRT0xNiozNjAwMDAwOworICAgICAgICBpbnRbXSBEQVRBID0geworICAgICAgICAgICAgR09PRCwgR09PRF9FUkEsIEdPT0RfWUVBUiwgR09PRF9NT05USCwgR09PRF9EQVksIEdPT0RfRE9XLCBHT09EX1RJTUUsCisKKyAgICAgICAgICAgIEdPT0QsIEdyZWdvcmlhbkNhbGVuZGFyLkJDLCBHT09EX1lFQVIsIEdPT0RfTU9OVEgsIEdPT0RfREFZLCBHT09EX0RPVywgR09PRF9USU1FLAorICAgICAgICAgICAgR09PRCwgR3JlZ29yaWFuQ2FsZW5kYXIuQUQsIEdPT0RfWUVBUiwgR09PRF9NT05USCwgR09PRF9EQVksIEdPT0RfRE9XLCBHT09EX1RJTUUsCisgICAgICAgICAgICBCQUQsICBHcmVnb3JpYW5DYWxlbmRhci5CQy0xLCBHT09EX1lFQVIsIEdPT0RfTU9OVEgsIEdPT0RfREFZLCBHT09EX0RPVywgR09PRF9USU1FLAorICAgICAgICAgICAgQkFELCAgR3JlZ29yaWFuQ2FsZW5kYXIuQUQrMSwgR09PRF9ZRUFSLCBHT09EX01PTlRILCBHT09EX0RBWSwgR09PRF9ET1csIEdPT0RfVElNRSwKKworICAgICAgICAgICAgR09PRCwgR09PRF9FUkEsIEdPT0RfWUVBUiwgQ2FsZW5kYXIuSkFOVUFSWSwgR09PRF9EQVksIEdPT0RfRE9XLCBHT09EX1RJTUUsCisgICAgICAgICAgICBHT09ELCBHT09EX0VSQSwgR09PRF9ZRUFSLCBDYWxlbmRhci5ERUNFTUJFUiwgR09PRF9EQVksIEdPT0RfRE9XLCBHT09EX1RJTUUsCisgICAgICAgICAgICBCQUQsICBHT09EX0VSQSwgR09PRF9ZRUFSLCBDYWxlbmRhci5KQU5VQVJZLTEsIEdPT0RfREFZLCBHT09EX0RPVywgR09PRF9USU1FLAorICAgICAgICAgICAgQkFELCAgR09PRF9FUkEsIEdPT0RfWUVBUiwgQ2FsZW5kYXIuREVDRU1CRVIrMSwgR09PRF9EQVksIEdPT0RfRE9XLCBHT09EX1RJTUUsCisgICAgICAgICAgICAKKyAgICAgICAgICAgIEdPT0QsIEdPT0RfRVJBLCBHT09EX1lFQVIsIENhbGVuZGFyLkpBTlVBUlksIDEsIEdPT0RfRE9XLCBHT09EX1RJTUUsCisgICAgICAgICAgICBHT09ELCBHT09EX0VSQSwgR09PRF9ZRUFSLCBDYWxlbmRhci5KQU5VQVJZLCAzMSwgR09PRF9ET1csIEdPT0RfVElNRSwKKyAgICAgICAgICAgIEJBRCwgIEdPT0RfRVJBLCBHT09EX1lFQVIsIENhbGVuZGFyLkpBTlVBUlksIDAsIEdPT0RfRE9XLCBHT09EX1RJTUUsCisgICAgICAgICAgICBCQUQsICBHT09EX0VSQSwgR09PRF9ZRUFSLCBDYWxlbmRhci5KQU5VQVJZLCAzMiwgR09PRF9ET1csIEdPT0RfVElNRSwKKworICAgICAgICAgICAgR09PRCwgR09PRF9FUkEsIEdPT0RfWUVBUiwgR09PRF9NT05USCwgR09PRF9EQVksIENhbGVuZGFyLlNVTkRBWSwgR09PRF9USU1FLAorICAgICAgICAgICAgR09PRCwgR09PRF9FUkEsIEdPT0RfWUVBUiwgR09PRF9NT05USCwgR09PRF9EQVksIENhbGVuZGFyLlNBVFVSREFZLCBHT09EX1RJTUUsCisgICAgICAgICAgICBCQUQsICBHT09EX0VSQSwgR09PRF9ZRUFSLCBHT09EX01PTlRILCBHT09EX0RBWSwgQ2FsZW5kYXIuU1VOREFZLTEsIEdPT0RfVElNRSwKKyAgICAgICAgICAgIEJBRCwgIEdPT0RfRVJBLCBHT09EX1lFQVIsIEdPT0RfTU9OVEgsIEdPT0RfREFZLCBDYWxlbmRhci5TQVRVUkRBWSsxLCBHT09EX1RJTUUsCisKKyAgICAgICAgICAgIEdPT0QsIEdPT0RfRVJBLCBHT09EX1lFQVIsIEdPT0RfTU9OVEgsIEdPT0RfREFZLCBHT09EX0RPVywgMCwKKyAgICAgICAgICAgIEdPT0QsIEdPT0RfRVJBLCBHT09EX1lFQVIsIEdPT0RfTU9OVEgsIEdPT0RfREFZLCBHT09EX0RPVywgMjQqMzYwMDAwMC0xLAorICAgICAgICAgICAgQkFELCAgR09PRF9FUkEsIEdPT0RfWUVBUiwgR09PRF9NT05USCwgR09PRF9EQVksIEdPT0RfRE9XLCAtMSwKKyAgICAgICAgICAgIEJBRCwgIEdPT0RfRVJBLCBHT09EX1lFQVIsIEdPT0RfTU9OVEgsIEdPT0RfREFZLCBHT09EX0RPVywgMjQqMzYwMDAwMCwKKyAgICAgICAgfTsKKworICAgICAgICBUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldERlZmF1bHQoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz03KSB7CisgICAgICAgICAgICBib29sZWFuIGdvb2QgPSBEQVRBW2ldID09IEdPT0Q7CisgICAgICAgICAgICBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSA9IG51bGw7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGludCBvZmZzZXQgPSB0ei5nZXRPZmZzZXQoREFUQVtpKzFdLCBEQVRBW2krMl0sIERBVEFbaSszXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERBVEFbaSs0XSwgREFUQVtpKzVdLCBEQVRBW2krNl0pOyAKKyAgICAgICAgICAgICAgICBvZmZzZXQgPSAwOworICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgICAgICBlID0gZXg7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZ29vZCAhPSAoZSA9PSBudWxsKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBnZXRPZmZzZXQoIiArCisgICAgICAgICAgICAgICAgICAgICAgREFUQVtpKzFdICsgIiwgIiArIERBVEFbaSsyXSArICIsICIgKyBEQVRBW2krM10gKyAiLCAiICsKKyAgICAgICAgICAgICAgICAgICAgICBEQVRBW2krNF0gKyAiLCAiICsgREFUQVtpKzVdICsgIiwgIiArIERBVEFbaSs2XSArCisgICAgICAgICAgICAgICAgICAgICAgKGdvb2QgPyAoIikgdGhyZXcgIiArIGUpIDogIikgYWNjZXB0cyBpbnZhbGlkIGFyZ3MiKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaW1lWm9uZSBjb25zdHJ1Y3RvcnMgYWxsb3cgbnVsbCBJRHMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNTk5MjIoKSB7CisgICAgICAgIFRpbWVab25lIHogPSBudWxsOworCisgICAgICAgIC8vIFRpbWVab25lIEFQSS4gIE9ubHkgaGFzU2FtZVJ1bGVzKCkgYW5kIHNldERlZmF1bHQoKSBzaG91bGQKKyAgICAgICAgLy8gYWxsb3cgbnVsbC4KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZShudWxsKTsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBOdWxsIGFsbG93ZWQgaW4gZ2V0VGltZVpvbmUiKTsKKyAgICAgICAgfSBjYXRjaCAoTnVsbFBvaW50ZXJFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICAgICAgeiA9IFRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHouZ2V0RGlzcGxheU5hbWUoZmFsc2UsIFRpbWVab25lLlNIT1JULCBudWxsKTsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBOdWxsIGFsbG93ZWQgaW4gZ2V0RGlzcGxheU5hbWUoMykiKTsKKyAgICAgICAgfSBjYXRjaCAoTnVsbFBvaW50ZXJFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHouZ2V0RGlzcGxheU5hbWUobnVsbCk7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogTnVsbCBhbGxvd2VkIGluIGdldERpc3BsYXlOYW1lKDEpIik7CisgICAgICAgIH0gY2F0Y2ggKE51bGxQb2ludGVyRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpZiAoei5oYXNTYW1lUnVsZXMobnVsbCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogaGFzU2FtZVJ1bGVzIHJldHVybmVkIHRydWUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoTnVsbFBvaW50ZXJFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IE51bGwgTk9UIGFsbG93ZWQgaW4gaGFzU2FtZVJ1bGVzIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHouaW5EYXlsaWdodFRpbWUobnVsbCk7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogTnVsbCBhbGxvd2VkIGluIGluRGF5bGlnaHRUaW1lIik7CisgICAgICAgIH0gY2F0Y2ggKE51bGxQb2ludGVyRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB6LnNldElEKG51bGwpOworICAgICAgICAgICAgZXJybG4oIkZBSUw6IE51bGwgYWxsb3dlZCBpbiBzZXRJRCIpOworICAgICAgICB9IGNhdGNoIChOdWxsUG9pbnRlckV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorCisgICAgICAgIFRpbWVab25lIHNhdmUgPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KG51bGwpOworICAgICAgICB9IGNhdGNoIChOdWxsUG9pbnRlckV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogTnVsbCBOT1QgYWxsb3dlZCBpbiBzZXREZWZhdWx0Iik7CisgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KHNhdmUpOworICAgICAgICB9CisKKyAgICAgICAgLy8gU2ltcGxlVGltZVpvbmUgQVBJCisgICAgICAgIFNpbXBsZVRpbWVab25lIHMgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgcyA9IG5ldyBTaW1wbGVUaW1lWm9uZSgwLCBudWxsKTsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBOdWxsIGFsbG93ZWQgaW4gU2ltcGxlVGltZVpvbmUoMikiKTsKKyAgICAgICAgfSBjYXRjaCAoTnVsbFBvaW50ZXJFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHMgPSBuZXcgU2ltcGxlVGltZVpvbmUoMCwgbnVsbCwgMCwgMSwgMCwgMCwgMCwgMSwgMCwgMCk7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogTnVsbCBhbGxvd2VkIGluIFNpbXBsZVRpbWVab25lKDEwKSIpOworICAgICAgICB9IGNhdGNoIChOdWxsUG9pbnRlckV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgcyA9IG5ldyBTaW1wbGVUaW1lWm9uZSgwLCBudWxsLCAwLCAxLCAwLCAwLCAwLCAxLCAwLCAwLCAxMDAwKTsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBOdWxsIGFsbG93ZWQgaW4gU2ltcGxlVGltZVpvbmUoMTEpIik7CisgICAgICAgIH0gY2F0Y2ggKE51bGxQb2ludGVyRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGltZVpvbmUgYnJva2VuIGF0IG1pZG5pZ2h0LiAgVGhlIFRpbWVab25lIGNvZGUgZmFpbHMgdG8gaGFuZGxlCisgICAgICogdHJhbnNpdGlvbnMgYXQgbWlkbmlnaHQgY29ycmVjdGx5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTYyNTkzKCkgeworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJ6IiwgTG9jYWxlLlVTKTsKKyAgICAgICAgZmluYWwgaW50IE9ORV9IT1VSID0gNjAqNjAqMTAwMDsKKwlUaW1lWm9uZSBpbml0aWFsWm9uZSA9IFRpbWVab25lLmdldERlZmF1bHQoKTsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiTU1NIGRkIHl5eXkgSEg6bW0geiIpOyAKKworICAgICAgICBTaW1wbGVUaW1lWm9uZSBhc3VuY2lvbiA9IG5ldyBTaW1wbGVUaW1lWm9uZSgtNCpPTkVfSE9VUiwgIkFtZXJpY2EvQXN1bmNpb24iIC8qUFklc1QqLywKKyAgICAgICAgICAgIENhbGVuZGFyLk9DVE9CRVIsIDEsIDAgLypET00qLywgMCpPTkVfSE9VUiwKKyAgICAgICAgICAgIENhbGVuZGFyLk1BUkNILCAxLCAwIC8qRE9NKi8sIDAqT05FX0hPVVIsIDEqT05FX0hPVVIpOworCisgICAgICAgIC8qIFpvbmUKKyAgICAgICAgICogU3RhcnRpbmcgdGltZQorICAgICAgICAgKiBUcmFuc2l0aW9uIGV4cGVjdGVkIGJldHdlZW4gc3RhcnQrMUggYW5kIHN0YXJ0KzJICisgICAgICAgICAqLworICAgICAgICBPYmplY3RbXSBEQVRBID0geworICAgICAgICAgICAgbmV3IFNpbXBsZVRpbWVab25lKDIqT05FX0hPVVIsICJBc2lhL0RhbWFzY3VzIiAvKkVFJXNUKi8sCisgICAgICAgICAgICAgICAgQ2FsZW5kYXIuQVBSSUwsIDEsIDAgLypET00qLywgMCpPTkVfSE9VUiwKKyAgICAgICAgICAgICAgICBDYWxlbmRhci5PQ1RPQkVSLCAxLCAwIC8qRE9NKi8sIDAqT05FX0hPVVIsIDEqT05FX0hPVVIpLAorICAgICAgICAgICAgbmV3IGludFtdIHs5OCwgQ2FsZW5kYXIuU0VQVEVNQkVSLCAzMCwgMjIsIDB9LAorICAgICAgICAgICAgQm9vbGVhbi5UUlVFLAorCisgICAgICAgICAgICBhc3VuY2lvbiwKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7MTAwLCBDYWxlbmRhci5GRUJSVUFSWSwgMjgsIDIyLCAwfSwKKyAgICAgICAgICAgIEJvb2xlYW4uRkFMU0UsCisKKyAgICAgICAgICAgIGFzdW5jaW9uLAorICAgICAgICAgICAgbmV3IGludFtdIHsxMDAsIENhbGVuZGFyLkZFQlJVQVJZLCAyOSwgMjIsIDB9LAorICAgICAgICAgICAgQm9vbGVhbi5UUlVFLAorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgU3RyaW5nW10gem9uZSA9IG5ldyBTdHJpbmdbNF07CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBqPTA7IGo8REFUQS5sZW5ndGg7IGorPTMpIHsKKyAgICAgICAgICAgIFRpbWVab25lIHR6ID0gKFRpbWVab25lKURBVEFbal07CisgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KHR6KTsKKyAgICAgICAgICAgIGZtdC5zZXRUaW1lWm9uZSh0eik7CisgICAgICAgICAgICBzZGYuc2V0VGltZVpvbmUodHopOworCisgICAgICAgICAgICAvLyBNdXN0IGNvbnN0cnVjdCB0aGUgRGF0ZSBvYmplY3QgQUZURVIgc2V0dGluZyB0aGUgZGVmYXVsdCB6b25lCisgICAgICAgICAgICBpbnRbXSBwID0gKGludFtdKURBVEFbaisxXTsKKyAgICAgICAgICAgIGphdmEudXRpbC5DYWxlbmRhciB0ZW1wY2FsID0gamF2YS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgICAgICB0ZW1wY2FsLnNldChwWzBdICsgMTkwMCwgcFsxXSwgcFsyXSwgcFszXSwgcFs0XSk7CisgICAgICAgICAgICBEYXRlIGQgPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgIGJvb2xlYW4gdHJhbnNpdGlvbkV4cGVjdGVkID0gKChCb29sZWFuKURBVEFbaisyXSkuYm9vbGVhblZhbHVlKCk7CisKKyAgICAgICAgICAgIGxvZ2xuKHR6LmdldElEKCkgKyAiOiIpOworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPDQ7ICsraSkgeworICAgICAgICAgICAgICAgIHpvbmVbaV0gPSBmbXQuZm9ybWF0KGQpOworICAgICAgICAgICAgICAgIGxvZ2xuKCIiICsgaSArICI6ICIgKyBzZGYuZm9ybWF0KGQpICsgIiA9PiAiICsgem9uZVtpXSk7CisgICAgICAgICAgICAgICAgZCA9IG5ldyBEYXRlKGQuZ2V0VGltZSgpICsgT05FX0hPVVIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHpvbmVbMF0uZXF1YWxzKHpvbmVbMV0pICYmCisgICAgICAgICAgICAgICAgKHpvbmVbMV0uZXF1YWxzKHpvbmVbMl0pICE9IHRyYW5zaXRpb25FeHBlY3RlZCkgJiYKKyAgICAgICAgICAgICAgICB6b25lWzJdLmVxdWFscyh6b25lWzNdKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogdHJhbnNpdGlvbiAiICsgdHJhbnNpdGlvbkV4cGVjdGVkKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IGJvdW5kYXJ5IHRyYW5zaXRpb24gaW5jb3JyZWN0Iik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworCS8vIHJlc3RvcmUgdGhlIGluaXRpYWwgdGltZSB6b25lIHNvIHRoYXQgdGhpcyB0ZXN0IGNhc2UKKwkvLyBkb2Vzbid0IGFmZmVjdCB0aGUgb3RoZXJzLgorCVRpbWVab25lLnNldERlZmF1bHQoaW5pdGlhbFpvbmUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRpbWVab25lIGJyb2tlbiBpbiBsYXN0IGhvdXIgb2YgeWVhcgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTczNjA0KCkgeworICAgICAgICBTaW1wbGVUaW1lWm9uZSBwc3QgPSAoU2ltcGxlVGltZVpvbmUpVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworICAgICAgICBpbnQgbzIyID0gcHN0LmdldE9mZnNldCgxLCAxOTk4LCAxMSwgMzEsIENhbGVuZGFyLlRIVVJTREFZLCAyMio2MCo2MCoxMDAwKTsKKyAgICAgICAgaW50IG8yMyA9IHBzdC5nZXRPZmZzZXQoMSwgMTk5OCwgMTEsIDMxLCBDYWxlbmRhci5USFVSU0RBWSwgMjMqNjAqNjAqMTAwMCk7CisgICAgICAgIGludCBvMDAgPSBwc3QuZ2V0T2Zmc2V0KDEsIDE5OTksIDAsIDEsIENhbGVuZGFyLkZSSURBWSwgMCk7CisgICAgICAgIGlmIChvMjIgIT0gbzIzIHx8IG8yMiAhPSBvMDApIHsKKyAgICAgICAgICAgIGVycmxuKCJPZmZzZXRzIHNob3VsZCBiZSB0aGUgc2FtZSAoZm9yIFBTVCksIGJ1dCBnb3Q6ICIgKworICAgICAgICAgICAgICAgICAgIjEyLzMxIDIyOjAwICIgKyBvMjIgKworICAgICAgICAgICAgICAgICAgIiwgMTIvMzEgMjM6MDAgIiArIG8yMyArCisgICAgICAgICAgICAgICAgICAiLCAwMS8wMSAwMDowMCAiICsgbzAwKTsKKyAgICAgICAgfQorCisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICBjYWwuc2V0VGltZVpvbmUocHN0KTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMTk5OCwgQ2FsZW5kYXIuSkFOVUFSWSwgMSk7CisgICAgICAgIGludCBsYXN0RFNUID0gY2FsLmdldChDYWxlbmRhci5EU1RfT0ZGU0VUKTsKKyAgICAgICAgaW50IHRyYW5zaXRpb25zID0gMDsKKyAgICAgICAgaW50IGRlbHRhID0gNTsKKyAgICAgICAgd2hpbGUgKGNhbC5nZXQoQ2FsZW5kYXIuWUVBUikgPCAyMDAwKSB7CisgICAgICAgICAgICBjYWwuYWRkKENhbGVuZGFyLk1JTlVURSwgZGVsdGEpOworICAgICAgICAgICAgaWYgKGNhbC5nZXQoQ2FsZW5kYXIuRFNUX09GRlNFVCkgIT0gbGFzdERTVCkgeworICAgICAgICAgICAgICAgICsrdHJhbnNpdGlvbnM7CisgICAgICAgICAgICAgICAgQ2FsZW5kYXIgdCA9IChDYWxlbmRhciljYWwuY2xvbmUoKTsKKyAgICAgICAgICAgICAgICB0LmFkZChDYWxlbmRhci5NSU5VVEUsIC1kZWx0YSk7CisgICAgICAgICAgICAgICAgbG9nbG4odC5nZXRUaW1lKCkgKyAiICAiICsgdC5nZXQoQ2FsZW5kYXIuRFNUX09GRlNFVCkpOworICAgICAgICAgICAgICAgIGxvZ2xuKGNhbC5nZXRUaW1lKCkgKyAiICAiICsgKGxhc3REU1Q9Y2FsLmdldChDYWxlbmRhci5EU1RfT0ZGU0VUKSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICh0cmFuc2l0aW9ucyAhPSA0KSB7CisgICAgICAgICAgICBlcnJsbigiU2F3ICIgKyB0cmFuc2l0aW9ucyArICIgdHJhbnNpdGlvbnM7IHNob3VsZCBoYXZlIHNlZW4gNCIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogZ2V0RGlzcGxheU5hbWUgZG9lc24ndCB3b3JrIHdpdGggdW51c3VhbCBzYXZpbmdzL29mZnNldHMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNzY2ODYoKSB7CisgICAgICAgIC8vIENvbnN0cnVjdCBhIHpvbmUgdGhhdCBkb2VzIG5vdCBvYnNlcnZlIERTVCBidXQKKyAgICAgICAgLy8gdGhhdCBkb2VzIGhhdmUgYSBEU1Qgc2F2aW5ncyAod2hpY2ggc2hvdWxkIGJlIGlnbm9yZWQpLgorICAgICAgICBpbnQgb2Zmc2V0ID0gOTAgKiA2MDAwMDsgLy8gMTozMAorICAgICAgICBTaW1wbGVUaW1lWm9uZSB6MSA9IG5ldyBTaW1wbGVUaW1lWm9uZShvZmZzZXQsICJfc3RkX3pvbmVfIik7CisgICAgICAgIHoxLnNldERTVFNhdmluZ3MoNDUgKiA2MDAwMCk7IC8vIDA6NDUKKworICAgICAgICAvLyBDb25zdHJ1Y3QgYSB6b25lIHRoYXQgb2JzZXJ2ZXMgRFNUIGZvciB0aGUgZmlyc3QgNiBtb250aHMuCisgICAgICAgIFNpbXBsZVRpbWVab25lIHoyID0gbmV3IFNpbXBsZVRpbWVab25lKG9mZnNldCwgIl9kc3Rfem9uZV8iKTsKKyAgICAgICAgejIuc2V0RFNUU2F2aW5ncyg0NSAqIDYwMDAwKTsgLy8gMDo0NQorICAgICAgICB6Mi5zZXRTdGFydFJ1bGUoQ2FsZW5kYXIuSkFOVUFSWSwgMSwgMCk7CisgICAgICAgIHoyLnNldEVuZFJ1bGUoQ2FsZW5kYXIuSlVMWSwgMSwgMCk7CisKKyAgICAgICAgLy8gQWxzbyBjaGVjayBEYXRlRm9ybWF0CisgICAgICAgIERhdGVGb3JtYXQgZm10MSA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJ6Iik7CisgICAgICAgIGZtdDEuc2V0VGltZVpvbmUoejEpOyAvLyBGb3JtYXQgdXNlcyBzdGFuZGFyZCB6b25lCisgICAgICAgIERhdGVGb3JtYXQgZm10MiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJ6Iik7CisgICAgICAgIGZtdDIuc2V0VGltZVpvbmUoejIpOyAvLyBGb3JtYXQgdXNlcyBEU1Qgem9uZQorICAgICAgICBqYXZhLnV0aWwuQ2FsZW5kYXIgdGVtcGNhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5NzAsIENhbGVuZGFyLkZFQlJVQVJZLCAxKTsKKyAgICAgICAgRGF0ZSBkc3QgPSB0ZW1wY2FsLmdldFRpbWUoKTsgLy8gVGltZSBpbiBEU1QKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk3MCwgQ2FsZW5kYXIuQVVHVVNULCAxKTsKKyAgICAgICAgRGF0ZSBzdGQgPSB0ZW1wY2FsLmdldFRpbWUoKTsgLy8gVGltZSBpbiBzdGFuZGFyZAorCisgICAgICAgIC8vIERlc2NyaXB0aW9uLCBSZXN1bHQsIEV4cGVjdGVkIFJlc3VsdAorICAgICAgICBTdHJpbmdbXSBEQVRBID0geworICAgICAgICAgICAgImdldERpc3BsYXlOYW1lKGZhbHNlLCBTSE9SVCkvc3RkIHpvbmUiLAorICAgICAgICAgICAgejEuZ2V0RGlzcGxheU5hbWUoZmFsc2UsIFRpbWVab25lLlNIT1JUKSwgIkdNVCswMTozMCIsCisgICAgICAgICAgICAiZ2V0RGlzcGxheU5hbWUoZmFsc2UsIExPTkcpL3N0ZCB6b25lIiwKKyAgICAgICAgICAgIHoxLmdldERpc3BsYXlOYW1lKGZhbHNlLCBUaW1lWm9uZS5MT05HICksICJHTVQrMDE6MzAiLAorICAgICAgICAgICAgImdldERpc3BsYXlOYW1lKHRydWUsIFNIT1JUKS9zdGQgem9uZSIsCisgICAgICAgICAgICB6MS5nZXREaXNwbGF5TmFtZSh0cnVlLCBUaW1lWm9uZS5TSE9SVCksICJHTVQrMDE6MzAiLAorICAgICAgICAgICAgImdldERpc3BsYXlOYW1lKHRydWUsIExPTkcpL3N0ZCB6b25lIiwKKyAgICAgICAgICAgIHoxLmdldERpc3BsYXlOYW1lKHRydWUsIFRpbWVab25lLkxPTkcgKSwgIkdNVCswMTozMCIsCisgICAgICAgICAgICAiZ2V0RGlzcGxheU5hbWUoZmFsc2UsIFNIT1JUKS9kc3Qgem9uZSIsCisgICAgICAgICAgICB6Mi5nZXREaXNwbGF5TmFtZShmYWxzZSwgVGltZVpvbmUuU0hPUlQpLCAiR01UKzAxOjMwIiwKKyAgICAgICAgICAgICJnZXREaXNwbGF5TmFtZShmYWxzZSwgTE9ORykvZHN0IHpvbmUiLAorICAgICAgICAgICAgejIuZ2V0RGlzcGxheU5hbWUoZmFsc2UsIFRpbWVab25lLkxPTkcgKSwgIkdNVCswMTozMCIsCisgICAgICAgICAgICAiZ2V0RGlzcGxheU5hbWUodHJ1ZSwgU0hPUlQpL2RzdCB6b25lIiwKKyAgICAgICAgICAgIHoyLmdldERpc3BsYXlOYW1lKHRydWUsIFRpbWVab25lLlNIT1JUKSwgIkdNVCswMjoxNSIsCisgICAgICAgICAgICAiZ2V0RGlzcGxheU5hbWUodHJ1ZSwgTE9ORykvZHN0IHpvbmUiLAorICAgICAgICAgICAgejIuZ2V0RGlzcGxheU5hbWUodHJ1ZSwgVGltZVpvbmUuTE9ORyApLCAiR01UKzAyOjE1IiwKKyAgICAgICAgICAgICJEYXRlRm9ybWF0LmZvcm1hdChzdGQpL3N0ZCB6b25lIiwgZm10MS5mb3JtYXQoc3RkKSwgIkdNVCswMTozMCIsCisgICAgICAgICAgICAiRGF0ZUZvcm1hdC5mb3JtYXQoZHN0KS9zdGQgem9uZSIsIGZtdDEuZm9ybWF0KGRzdCksICJHTVQrMDE6MzAiLAorICAgICAgICAgICAgIkRhdGVGb3JtYXQuZm9ybWF0KHN0ZCkvZHN0IHpvbmUiLCBmbXQyLmZvcm1hdChzdGQpLCAiR01UKzAxOjMwIiwKKyAgICAgICAgICAgICJEYXRlRm9ybWF0LmZvcm1hdChkc3QpL2RzdCB6b25lIiwgZm10Mi5mb3JtYXQoZHN0KSwgIkdNVCswMjoxNSIsCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0zKSB7CisgICAgICAgICAgICBpZiAoIURBVEFbaSsxXS5lcXVhbHMoREFUQVtpKzJdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgREFUQVtpXSArICIgLT4gIiArIERBVEFbaSsxXSArICIsIGV4cCAiICsgREFUQVtpKzJdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFNpbXBsZVRpbWVab25lIGFsbG93cyBpbnZhbGlkIERPTSB2YWx1ZXMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxODQyMjkoKSB7CisgICAgICAgIFNpbXBsZVRpbWVab25lIHpvbmUgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgem9uZSA9IG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiQSIsIDAsIC0xLCAwLCAwLCAwLCAwLCAwLCAwKTsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQuIE5vIGV4Y2VwdGlvbiBoYXMgYmVlbiB0aHJvd24gZm9yIERPTSAtMSBzdGFydERheSIpOworICAgICAgICB9IGNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbigiKGEpICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHpvbmUgPSBuZXcgU2ltcGxlVGltZVpvbmUoMCwgIkEiLCAwLCAwLCAwLCAwLCAwLCAtMSwgMCwgMCk7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkLiBObyBleGNlcHRpb24gaGFzIGJlZW4gdGhyb3duIGZvciBET00gLTEgZW5kRGF5Iik7CisgICAgICAgIH0gY2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCIoYikgIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgem9uZSA9IG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiQSIsIDAsIC0xLCAwLCAwLCAwLCAwLCAwLCAwLCAxMDAwKTsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQuIE5vIGV4Y2VwdGlvbiBoYXMgYmVlbiB0aHJvd24gZm9yIERPTSAtMSBzdGFydERheSArc2F2aW5ncyIpOworICAgICAgICB9IGNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbigiKGMpICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHpvbmUgPSBuZXcgU2ltcGxlVGltZVpvbmUoMCwgIkEiLCAwLCAwLCAwLCAwLCAwLCAtMSwgMCwgMCwgMTAwMCk7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkLiBObyBleGNlcHRpb24gaGFzIGJlZW4gdGhyb3duIGZvciBET00gLTEgZW5kRGF5ICtzYXZpbmdzIik7CisgICAgICAgIH0gY2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCIoZCkgIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgICAgICAvLyBNYWtlIGEgdmFsaWQgY29uc3RydWN0b3IgY2FsbCBmb3Igc3Vic2VxdWVudCB0ZXN0cy4KKyAgICAgICAgem9uZSA9IG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiQSIsIDAsIDEsIDAsIDAsIDAsIDEsIDAsIDApOworICAgICAgICB0cnkgeworICAgICAgICAgICAgem9uZS5zZXRTdGFydFJ1bGUoMCwgLTEsIDAsIDApOworICAgICAgICAgICAgZXJybG4oIkZhaWxlZC4gTm8gZXhjZXB0aW9uIGhhcyBiZWVuIHRocm93biBmb3IgRE9NIC0xIHNldFN0YXJ0UnVsZSArc2F2aW5ncyIpOworICAgICAgICB9IGNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbigiKGUpICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHpvbmUuc2V0U3RhcnRSdWxlKDAsIC0xLCAwKTsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQuIE5vIGV4Y2VwdGlvbiBoYXMgYmVlbiB0aHJvd24gZm9yIERPTSAtMSBzZXRTdGFydFJ1bGUiKTsKKyAgICAgICAgfSBjYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nbG4oIihmKSAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB6b25lLnNldEVuZFJ1bGUoMCwgLTEsIDAsIDApOworICAgICAgICAgICAgZXJybG4oIkZhaWxlZC4gTm8gZXhjZXB0aW9uIGhhcyBiZWVuIHRocm93biBmb3IgRE9NIC0xIHNldEVuZFJ1bGUgK3NhdmluZ3MiKTsKKyAgICAgICAgfSBjYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nbG4oIihnKSAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB6b25lLnNldEVuZFJ1bGUoMCwgLTEsIDApOworICAgICAgICAgICAgZXJybG4oIkZhaWxlZC4gTm8gZXhjZXB0aW9uIGhhcyBiZWVuIHRocm93biBmb3IgRE9NIC0xIHNldEVuZFJ1bGUiKTsKKyAgICAgICAgfSBjYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nbG4oIihoKSAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2ltcGxlVGltZVpvbmUuZ2V0T2Zmc2V0KCkgdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB3aGVuIHRvIGdldAorICAgICAqIG9mIDIvMjkvMTk5NiAobGVhcCBkYXkpLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MjA4OTYwICgpIHsKKwlTaW1wbGVUaW1lWm9uZSB0eiA9IChTaW1wbGVUaW1lWm9uZSlUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisJdHJ5IHsKKwkgICAgaW50IG9mZnNldCA9IHR6LmdldE9mZnNldChHcmVnb3JpYW5DYWxlbmRhci5BRCwgMTk5NiwgQ2FsZW5kYXIuRkVCUlVBUlksIDI5LCAKKwkJCQkgICAgICBDYWxlbmRhci5USFVSU0RBWSwgMCk7CisgICAgICAgIG9mZnNldCA9IDA7CisJfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKwkgICAgZXJybG4oIkZBSUxFRDogdG8gZ2V0IFRpbWVab25lLmdldE9mZnNldCgyLzI5Lzk2KSIpOworCX0KKwl0cnkgeworCSAgICBpbnQgb2Zmc2V0ID0gdHouZ2V0T2Zmc2V0KEdyZWdvcmlhbkNhbGVuZGFyLkFELCAxOTk3LCBDYWxlbmRhci5GRUJSVUFSWSwgMjksIAorCQkJCSAgICAgIENhbGVuZGFyLlRIVVJTREFZLCAwKTsKKwkgICAgb2Zmc2V0ID0gMDsKKwkgICAgZXJybG4oIkZBSUxFRDogVGltZVpvbmUuZ2V0T2Zmc2V0KDIvMjkvOTcpIGV4cGVjdGVkIHRvIHRocm93IEV4Y2VwdGlvbi4iKTsKKwl9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworCSAgICBsb2dsbigiZ290IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiIpOworCX0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRvIHNlZSBpZiBEYXRlRm9ybWF0IHVuZGVyc3RhbmRzIHpvbmUgZXF1aXZhbGVuY3kgZ3JvdXBzLiAgSXQKKyAgICAgKiBtaWdodCBzZWVtIHRoYXQgdGhpcyBzaG91bGQgYmUgYSBEYXRlRm9ybWF0IHRlc3QsIGJ1dCBpdCdzIHJlYWxseSBhCisgICAgICogVGltZVpvbmUgdGVzdCAtLSB0aGUgY2hhbmdlcyB0byBEYXRlRm9ybWF0IGFyZSBtaW5vci4KKyAgICAgKgorICAgICAqIFdlIHVzZSB0d28ga25vd24sIHN0YWJsZSB6b25lcyB0aGF0IHNob3VsZG4ndCBjaGFuZ2UgbXVjaCBvdmVyIHRpbWUKKyAgICAgKiAtLSBBbWVyaWNhL1ZhbmNvdXZlciBhbmQgQW1lcmljYS9Mb3NfQW5nZWxlcy4gIEhvd2V2ZXIsIHRoZXkgTUFZCisgICAgICogY2hhbmdlIGF0IHNvbWUgcG9pbnQgLS0gaWYgdGhhdCBoYXBwZW5zLCByZXBsYWNlIHRoZW0gd2l0aCBhbnkgdHdvCisgICAgICogem9uZXMgaW4gYW4gZXF1aXZhbGVuY3kgZ3JvdXAgd2hlcmUgb25lIHpvbmUgaGFzIGxvY2FsaXplZCBuYW1lCisgICAgICogZGF0YSwgYW5kIHRoZSBvdGhlciBkb2Vzbid0LCBpbiBzb21lIGxvY2FsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SjQ0OSgpIHsKKyAgICAgICAgLy8gbm90IHVzZWQgU3RyaW5nIHN0cjsKKworICAgICAgICAvLyBNb2RpZnkgdGhlIGZvbGxvd2luZyB0aHJlZSBhcyBuZWNlc3NhcnkuICBUaGUgdHdvIElEcyBtdXN0CisgICAgICAgIC8vIHNwZWNpZnkgdHdvIHpvbmVzIGluIHRoZSBzYW1lIGVxdWl2YWxlbmN5IGdyb3VwLiAgT25lIG11c3QgaGF2ZQorICAgICAgICAvLyBsb2NhbGUgZGF0YSBpbiAnbG9jJzsgdGhlIG90aGVyIG11c3Qgbm90LgorICAgICAgICBTdHJpbmcgaWRXaXRoTG9jYWxlRGF0YSA9ICJBbWVyaWNhL0xvc19BbmdlbGVzIjsKKyAgICAgICAgU3RyaW5nIGlkV2l0aG91dExvY2FsZURhdGEgPSAiQW1lcmljYS9WYW5jb3V2ZXIiOworICAgICAgICBMb2NhbGUgbG9jID0gbmV3IExvY2FsZSgiZW4iLCAiIiwgIiIpOworCisgICAgICAgIFRpbWVab25lIHpvbmVXaXRoID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoaWRXaXRoTG9jYWxlRGF0YSk7CisgICAgICAgIFRpbWVab25lIHpvbmVXaXRob3V0ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoaWRXaXRob3V0TG9jYWxlRGF0YSk7CisgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBnb3QgdmFsaWQgem9uZXMKKyAgICAgICAgaWYgKCEoem9uZVdpdGguZ2V0SUQoKS5lcXVhbHMoaWRXaXRoTG9jYWxlRGF0YSkgJiYKKyAgICAgICAgICAgICAgem9uZVdpdGhvdXQuZ2V0SUQoKS5lcXVhbHMoaWRXaXRob3V0TG9jYWxlRGF0YSkpKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbDogVW5hYmxlIHRvIGNyZWF0ZSB6b25lcyIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsV2l0aCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcih6b25lV2l0aCk7CisgICAgICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWxXaXRob3V0ID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKHpvbmVXaXRob3V0KTsKKyAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm10ID0KKyAgICAgICAgICAgICAgICBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiTU1NIGQgeXl5eSBoaDptbSBhIHp6eiIsIGxvYyk7CisgICAgICAgICAgICBEYXRlIGRhdGUgPSBuZXcgRGF0ZSgwTCk7CisgICAgICAgICAgICBmbXQuc2V0Q2FsZW5kYXIoY2FsV2l0aCk7CisgICAgICAgICAgICBTdHJpbmcgc3RyV2l0aCA9IGZtdC5mb3JtYXQoZGF0ZSk7CisgICAgICAgICAgICBmbXQuc2V0Q2FsZW5kYXIoY2FsV2l0aG91dCk7CisgICAgICAgICAgICBTdHJpbmcgc3RyV2l0aG91dCA9IGZtdC5mb3JtYXQoZGF0ZSk7CisgICAgICAgICAgICBpZiAoc3RyV2l0aC5lcXVhbHMoc3RyV2l0aG91dCkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyBpZFdpdGhMb2NhbGVEYXRhICsgIiAtPiAiICsKKyAgICAgICAgICAgICAgICAgICAgICBzdHJXaXRoICsgIjsgIiArIGlkV2l0aG91dExvY2FsZURhdGEgKyAiIC0+ICIgKworICAgICAgICAgICAgICAgICAgICAgIHN0cldpdGhvdXQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGlkV2l0aExvY2FsZURhdGEgKyAiIC0+ICIgKworICAgICAgICAgICAgICAgICAgICAgIHN0cldpdGggKyAiOyAiICsgaWRXaXRob3V0TG9jYWxlRGF0YSArICIgLT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgc3RyV2l0aG91dCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdGltZXpvbmUvVGltZVpvbmVUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdGltZXpvbmUvVGltZVpvbmVUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjE5YWUxYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lem9uZS9UaW1lWm9uZVRlc3QuamF2YQpAQCAtMCwwICsxLDc5NiBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lem9uZS9UaW1lWm9uZVRlc3QuamF2YSx2ICQKKyAqICREYXRlOiAyMDAyLzA4LzEzIDIyOjA0OjM5ICQKKyAqICRSZXZpc2lvbjogMS4xMCAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKioKKyAqIEB0ZXN0IDEuMjIgOTkvMDkvMjEKKyAqIEBidWcgNDAyODAwNiA0MDQ0MDEzIDQwOTY2OTQgNDEwNzI3NiA0MTA3NTcwIDQxMTI4NjkgNDEzMDg4NQorICogQHN1bW1hcnkgdGVzdCBUaW1lWm9uZQorICogQGJ1aWxkIFRpbWVab25lVGVzdAorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudGltZXpvbmU7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlRGF0YTsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKKworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBUaW1lWm9uZVRlc3QgZXh0ZW5kcyBUZXN0Rm13aworeworICAgIHN0YXRpYyBmaW5hbCBpbnQgbWlsbGlzUGVySG91ciA9IDM2MDAwMDA7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFRpbWVab25lVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBCdWcgNDEzMDg4NQorICAgICAqIENlcnRhaW4gc2hvcnQgem9uZSBJRHMsIHVzZWQgc2luY2UgMS4xLngsIGFyZSBpbmNvcnJlY3QuCisgICAgICogIAorICAgICAqIFRoZSB3b3JzdCBvZiB0aGVzZSBpczoKKyAgICAgKgorICAgICAqICJDQVQiIChDZW50cmFsIEFmcmljYW4gVGltZSkgc2hvdWxkIGJlIEdNVCsyOjAwLCBidXQgaW5zdGVhZCByZXR1cm5zIGEKKyAgICAgKiB6b25lIGF0IEdNVC0xOjAwLiBUaGUgem9uZSBhdCBHTVQtMTowMCBzaG91bGQgYmUgY2FsbGVkIEVHVCwgQ1ZULCBFR1NULAorICAgICAqIG9yIEFaT1NULCBkZXBlbmRpbmcgb24gd2hpY2ggem9uZSBpcyBtZWFudCwgYnV0IGluIG5vIGNhc2UgaXMgaXQgQ0FULgorICAgICAqCisgICAgICogT3RoZXIgd3Jvbmcgem9uZSBJRHM6CisgICAgICoKKyAgICAgKiBFQ1QgKEV1cm9wZWFuIENlbnRyYWwgVGltZSkgR01UKzE6MDA6IEVDVCBpcyBFY3VhZG9yIFRpbWUsCisgICAgICogR01ULTU6MDAuIEV1cm9wZWFuIENlbnRyYWwgdGltZSBpcyBhYmJyZXZpYXRlZCBDRVNULgorICAgICAqCisgICAgICogU1NUIChTb2xvbW9uIElzbGFuZCBUaW1lKSBHTVQrMTE6MDAuIFNTVCBpcyBhY3R1YWxseSBTYW1vYSBTdGFuZGFyZCBUaW1lLAorICAgICAqIEdNVC0xMTowMC4gU29sb21vbiBJc2xhbmQgdGltZSBpcyBTQlQuCisgICAgICoKKyAgICAgKiBOU1QgKE5ldyBaZWFsYW5kIFRpbWUpIEdNVCsxMjowMC4gTlNUIGlzIHRoZSBhYmJyZXZpYXRpb24gZm9yCisgICAgICogTmV3Zm91bmRsYW5kIFN0YW5kYXJkIFRpbWUsIEdNVC0zOjMwLiBOZXcgWmVhbGFuZGVycyB1c2UgTlpTVC4KKyAgICAgKgorICAgICAqIEFTVCAoQWxhc2thIFN0YW5kYXJkIFRpbWUpIEdNVC05OjAwLiBbVGhpcyBoYXMgYWxyZWFkeSBiZWVuIG5vdGVkIGluCisgICAgICogYW5vdGhlciBidWcuXSBJdCBzaG91bGQgYmUgIkFLU1QiLiBBU1QgaXMgQXRsYW50aWMgU3RhbmRhcmQgVGltZSwKKyAgICAgKiBHTVQtNDowMC4KKyAgICAgKgorICAgICAqIFBOVCAoUGhvZW5peCBUaW1lKSBHTVQtNzowMC4gUE5UIHVzdWFsbHkgbWVhbnMgUGl0Y2Fpcm4gVGltZSwKKyAgICAgKiBHTVQtODozMC4gVGhlcmUgaXMgbm8gc3RhbmRhcmQgYWJicmV2aWF0aW9uIGZvciBQaG9lbml4IHRpbWUsIGFzIGRpc3RpbmN0CisgICAgICogZnJvbSBNU1Qgd2l0aCBkYXlsaWdodCBzYXZpbmdzLgorICAgICAqCisgICAgICogSW4gYWRkaXRpb24gdG8gdGhlc2UgcHJvYmxlbXMsIGEgbnVtYmVyIG9mIHpvbmVzIGFyZSBGQUtFLiBUaGF0IGlzLCB0aGV5CisgICAgICogZG9uJ3QgbWF0Y2ggd2hhdCBwZW9wbGUgdXNlIGluIHRoZSByZWFsIHdvcmxkLgorICAgICAqCisgICAgICogRkFLRSB6b25lczoKKyAgICAgKgorICAgICAqIEVFVCAoc2hvdWxkIGJlIEVFU1QpCisgICAgICogQVJUIChzaG91bGQgYmUgRUVTVCkKKyAgICAgKiBNRVQgKHNob3VsZCBiZSBJUlNUKQorICAgICAqIE5FVCAoc2hvdWxkIGJlIEFNU1QpCisgICAgICogUExUIChzaG91bGQgYmUgUEtUKQorICAgICAqIEJTVCAoc2hvdWxkIGJlIEJEVCkKKyAgICAgKiBWU1QgKHNob3VsZCBiZSBJQ1QpCisgICAgICogQ1RUIChzaG91bGQgYmUgQ1NUKSArCisgICAgICogQUNUIChzaG91bGQgYmUgQ1NUKSArCisgICAgICogQUVUIChzaG91bGQgYmUgRVNUKSArCisgICAgICogTUlUIChzaG91bGQgYmUgV1NUKSArCisgICAgICogSUVUIChzaG91bGQgYmUgRVNUKSArCisgICAgICogUFJUIChzaG91bGQgYmUgQVNUKSArCisgICAgICogQ05UIChzaG91bGQgYmUgTlNUKQorICAgICAqIEFHVCAoc2hvdWxkIGJlIEFSU1QpCisgICAgICogQkVUIChzaG91bGQgYmUgRVNUKSArCisgICAgICoKKyAgICAgKiArIEEgem9uZSB3aXRoIHRoZSBjb3JyZWN0IG5hbWUgYWxyZWFkeSBleGlzdHMgYW5kIG1lYW5zIHNvbWV0aGluZworICAgICAqIGVsc2UuIEUuZy4sIEVTVCB1c3VhbGx5IGluZGljYXRlcyB0aGUgVVMgRWFzdGVybiB6b25lLCBzbyBpdCBjYW5ub3QgYmUKKyAgICAgKiB1c2VkIGZvciBCcmF6aWwgKEJFVCkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFNob3J0Wm9uZUlEcygpIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIFpvbmVEZXNjcmlwdG9yW10gSkRLXzExNl9SRUZFUkVOQ0VfTElTVCA9IHsKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiTUlUIiwgLTY2MCwgZmFsc2UpLAorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJIU1QiLCAtNjAwLCBmYWxzZSksCisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIkFTVCIsIC01NDAsIHRydWUpLAorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJQU1QiLCAtNDgwLCB0cnVlKSwKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiUE5UIiwgLTQyMCwgZmFsc2UpLAorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJNU1QiLCAtNDIwLCB0cnVlKSwKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiQ1NUIiwgLTM2MCwgdHJ1ZSksCisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIklFVCIsIC0zMDAsIGZhbHNlKSwKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiRVNUIiwgLTMwMCwgdHJ1ZSksCisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIlBSVCIsIC0yNDAsIGZhbHNlKSwKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiQ05UIiwgLTIxMCwgdHJ1ZSksCisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIkFHVCIsIC0xODAsIGZhbHNlKSwKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiQkVUIiwgLTE4MCwgdHJ1ZSksCisgICAgICAgICAgICAvLyBuZXcgWm9uZURlc2NyaXB0b3IoIkNBVCIsIC02MCwgZmFsc2UpLCAvLyBXcm9uZzoKKyAgICAgICAgICAgIC8vIEFzIG9mIGJ1ZyA0MTMwODg1LCBmaXggQ0FUIChDZW50cmFsIEFmcmljYSkKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiQ0FUIiwgMTIwLCBmYWxzZSksIC8vIEFmcmljYS9IYXJhcmUKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiR01UIiwgMCwgZmFsc2UpLAorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJVVEMiLCAwLCBmYWxzZSksCisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIkVDVCIsIDYwLCB0cnVlKSwKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiQVJUIiwgMTIwLCB0cnVlKSwKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiRUVUIiwgMTIwLCB0cnVlKSwKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiRUFUIiwgMTgwLCBmYWxzZSksCisgICAgICAgICAgICAvLyBuZXcgWm9uZURlc2NyaXB0b3IoIk1FVCIsIDIxMCwgdHJ1ZSksCisgICAgICAgICAgICAvLyBUaGlzIGlzIGEgc3RhbmRhcmQgVW5peCB6b25lLCBzbyBkb24ndCByZW1hcCBpdCAtIExpdSAzSmFuMDEKKyAgICAgICAgICAgIC8vIG5ldyBab25lRGVzY3JpcHRvcigiTkVUIiwgMjQwLCBmYWxzZSk7CisgICAgICAgICAgICAvLyBBcyBvZiBidWcgNDE5MTE2NCwgZml4IE5FVAorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJORVQiLCAyNDAsIHRydWUpLAorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJQTFQiLCAzMDAsIGZhbHNlKSwKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiSVNUIiwgMzMwLCBmYWxzZSksCisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIkJTVCIsIDM2MCwgZmFsc2UpLAorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJWU1QiLCA0MjAsIGZhbHNlKSwKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiQ1RUIiwgNDgwLCB0cnVlKSwgLy8gUmV2aXNlZCBMaXUgM0phbjAxLCBzdGQtPmRzdAorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJKU1QiLCA1NDAsIGZhbHNlKSwKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiQUNUIiwgNTcwLCB0cnVlKSwgLy8gUmV2aXNlZCBMaXUgM0phbjAxLCBzdGQtPmRzdAorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJBRVQiLCA2MDAsIHRydWUpLAorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJTU1QiLCA2NjAsIGZhbHNlKSwKKyAgICAgICAgICAgIC8vIG5ldyBab25lRGVzY3JpcHRvcigiTlNUIiwgNzIwLCBmYWxzZSksCisgICAgICAgICAgICAvLyBBcyBvZiBidWcgNDEzMDg4NSwgZml4IE5TVCAoTmV3IFplYWxhbmQpCisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIk5TVCIsIDcyMCwgdHJ1ZSksIC8vIFBhY2lmaWMvQXVja2xhbmQKKworICAgICAgICAgICAgLy8gWzNKYW4wMSBMaXVdIFRocmVlIG9mIHRoZXNlIHpvbmVzIGhhdmUgYmVlbiB1cGRhdGVkLgorICAgICAgICAgICAgLy8gVGhlIENUVCBhbmQgQUNUIHpvbmVzIGp1c3QgcmVtYXAgdG8gQXNpYS9TaGFuZ2hhaQorICAgICAgICAgICAgLy8gYW5kIEF1c3RyYWxpYS9EYXJ3aW4uICBTaW5jZSB0aG9zZSB6b25lcyBoYXZlIGNoYW5nZWQsCisgICAgICAgICAgICAvLyBJIGhhdmUgdXBkYXRlZCB0aGUgdGFibGUuICBUaGUgTUVUIHpvbmUgdXNlZCB0byBiZSBtYXBwZWQKKyAgICAgICAgICAgIC8vIHRvIEFzaWEvVGVocmFuIGJ1dCBzaW5jZSBNRVQgaXMgYSBzdGFuZGFyZCBVbml4IHpvbmUgbmFtZWQKKyAgICAgICAgICAgIC8vIGluIHRoZSBzb3VyY2UgZGF0YSB3ZSBubyBsb25nZXIgZG8gdGhpcyBpbiBpY3Ugb3IgaWN1NGouCisgICAgICAgIH07CisKKyAgICAgICAgSGFzaHRhYmxlIGhhc2ggPSBuZXcgSGFzaHRhYmxlKCk7CisKKyAgICAgICAgU3RyaW5nW10gaWRzID0gVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxpZHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBpZCA9IGlkc1tpXTsKKyAgICAgICAgICAgIGlmIChpZC5sZW5ndGgoKSA9PSAzKSB7CisgICAgICAgICAgICAgICAgaGFzaC5wdXQoaWQsIG5ldyBab25lRGVzY3JpcHRvcihUaW1lWm9uZS5nZXRUaW1lWm9uZShpZCkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxKREtfMTE2X1JFRkVSRU5DRV9MSVNULmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBab25lRGVzY3JpcHRvciByZWZlcmVuY2Vab25lID0gSkRLXzExNl9SRUZFUkVOQ0VfTElTVFtpXTsKKyAgICAgICAgICAgIFpvbmVEZXNjcmlwdG9yIGN1cnJlbnRab25lID0gKFpvbmVEZXNjcmlwdG9yKWhhc2guZ2V0KHJlZmVyZW5jZVpvbmUuZ2V0SUQoKSk7CisgICAgICAgICAgICBpZiAocmVmZXJlbmNlWm9uZS5lcXVhbHMoY3VycmVudFpvbmUpKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIm9rICIgKyByZWZlcmVuY2Vab25lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBFeHBlY3RlZCAiICsgcmVmZXJlbmNlWm9uZSArCisgICAgICAgICAgICAgICAgICAgICAgIjsgZ290ICIgKyBjdXJyZW50Wm9uZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBIGRlc2NyaXB0b3IgZm9yIGEgem9uZTsgdXNlZCB0byByZWdyZXNzIHRoZSBzaG9ydCB6b25lIElEcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgY2xhc3MgWm9uZURlc2NyaXB0b3IgeworICAgICAgICBTdHJpbmcgaWQ7CisgICAgICAgIGludCBvZmZzZXQ7IC8vIEluIG1pbnV0ZXMKKyAgICAgICAgYm9vbGVhbiBkYXlsaWdodDsKKworICAgICAgICBab25lRGVzY3JpcHRvcihUaW1lWm9uZSB6b25lKSB7CisgICAgICAgICAgICB0aGlzLmlkID0gem9uZS5nZXRJRCgpOworICAgICAgICAgICAgdGhpcy5vZmZzZXQgPSB6b25lLmdldFJhd09mZnNldCgpIC8gNjAwMDA7CisgICAgICAgICAgICB0aGlzLmRheWxpZ2h0ID0gem9uZS51c2VEYXlsaWdodFRpbWUoKTsKKyAgICAgICAgfQorCisgICAgICAgIFpvbmVEZXNjcmlwdG9yKFN0cmluZyBpZCwgaW50IG9mZnNldCwgYm9vbGVhbiBkYXlsaWdodCkgeworICAgICAgICAgICAgdGhpcy5pZCA9IGlkOworICAgICAgICAgICAgdGhpcy5vZmZzZXQgPSBvZmZzZXQ7CisgICAgICAgICAgICB0aGlzLmRheWxpZ2h0ID0gZGF5bGlnaHQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldElEKCkgeyByZXR1cm4gaWQ7IH0KKworICAgICAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG8pIHsKKyAgICAgICAgICAgIFpvbmVEZXNjcmlwdG9yIHRoYXQgPSAoWm9uZURlc2NyaXB0b3IpbzsKKyAgICAgICAgICAgIHJldHVybiB0aGF0ICE9IG51bGwgJiYKKyAgICAgICAgICAgICAgICBpZC5lcXVhbHModGhhdC5pZCkgJiYKKyAgICAgICAgICAgICAgICBvZmZzZXQgPT0gdGhhdC5vZmZzZXQgJiYKKyAgICAgICAgICAgICAgICBkYXlsaWdodCA9PSB0aGF0LmRheWxpZ2h0OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgICAgIGludCBtaW4gPSBvZmZzZXQ7CisgICAgICAgICAgICBjaGFyIHNpZ24gPSAnKyc7CisgICAgICAgICAgICBpZiAobWluIDwgMCkgeyBzaWduID0gJy0nOyBtaW4gPSAtbWluOyB9CisKKyAgICAgICAgICAgIHJldHVybiAiWm9uZVtcIiIgKyBpZCArICJcIiwgR01UIiArIHNpZ24gKyAobWluLzYwKSArICc6JyArCisgICAgICAgICAgICAgICAgKG1pbiU2MDwxMD8iMCI6IiIpICsgKG1pbiU2MCkgKyAiLCAiICsKKyAgICAgICAgICAgICAgICAoZGF5bGlnaHQgPyAiRGF5bGlnaHQiIDogIlN0YW5kYXJkIikgKyAiXSI7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgc3RhdGljIGludCBjb21wYXJlKE9iamVjdCBvMSwgT2JqZWN0IG8yKSB7CisgICAgICAgICAgICBab25lRGVzY3JpcHRvciBpMSA9IChab25lRGVzY3JpcHRvcilvMTsKKyAgICAgICAgICAgIFpvbmVEZXNjcmlwdG9yIGkyID0gKFpvbmVEZXNjcmlwdG9yKW8yOworICAgICAgICAgICAgaWYgKGkxLm9mZnNldCA+IGkyLm9mZnNldCkgcmV0dXJuIDE7CisgICAgICAgICAgICBpZiAoaTEub2Zmc2V0IDwgaTIub2Zmc2V0KSByZXR1cm4gLTE7CisgICAgICAgICAgICBpZiAoaTEuZGF5bGlnaHQgJiYgIWkyLmRheWxpZ2h0KSByZXR1cm4gMTsKKyAgICAgICAgICAgIGlmICghaTEuZGF5bGlnaHQgJiYgaTIuZGF5bGlnaHQpIHJldHVybiAtMTsKKyAgICAgICAgICAgIHJldHVybiBpMS5pZC5jb21wYXJlVG8oaTIuaWQpOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBFWFBFQ1RFRF9DVVNUT01fSUQgPSAiQ3VzdG9tIjsKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIGZvcm1hdE1pbnV0ZXMoaW50IG1pbikgeworICAgICAgICBjaGFyIHNpZ24gPSAnKyc7CisgICAgICAgIGlmIChtaW4gPCAwKSB7IHNpZ24gPSAnLSc7IG1pbiA9IC1taW47IH0KKyAgICAgICAgaW50IGggPSBtaW4vNjA7CisgICAgICAgIG1pbiA9IG1pbiU2MDsKKyAgICAgICAgcmV0dXJuICIiICsgc2lnbiArIGggKyAiOiIgKyAoKG1pbjwxMCkgPyAiMCIgOiAiIikgKyBtaW47CisgICAgfQorICAgIC8qKgorICAgICAqIEFzIHBhcnQgb2YgdGhlIFZNIGZpeCAoc2VlIENDQyBhcHByb3ZlZCBSRkUgNDAyODAwNiwgYnVnCisgICAgICogNDA0NDAxMyksIFRpbWVab25lLmdldFRpbWVab25lKCkgaGFzIGJlZW4gbW9kaWZpZWQgdG8gcmVjb2duaXplCisgICAgICogZ2VuZXJpYyBJRHMgb2YgdGhlIGZvcm0gR01UWystXWhoOm1tLCBHTVRbKy1daGhtbSwgYW5kCisgICAgICogR01UWystXWhoLiAgVGVzdCB0aGlzIGJlaGF2aW9yIGhlcmUuCisgICAgICoKKyAgICAgKiBCdWcgNDA0NDAxMworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDdXN0b21QYXJzZSgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBPYmplY3RbXSBEQVRBID0geworICAgICAgICAgICAgLy8gSUQgICAgICAgIEV4cGVjdGVkIG9mZnNldCBpbiBtaW51dGVzCisgICAgICAgICAgICAiR01UIiwgICAgICAgbnVsbCwKKyAgICAgICAgICAgICJHTVQwIiwgICAgICBudWxsLAorICAgICAgICAgICAgIkdNVCswIiwgICAgIG5ldyBJbnRlZ2VyKDApLAorICAgICAgICAgICAgIkdNVCsxIiwgICAgIG5ldyBJbnRlZ2VyKDYwKSwKKyAgICAgICAgICAgICJHTVQtMDAzMCIsICBuZXcgSW50ZWdlcigtMzApLAorICAgICAgICAgICAgIkdNVCsxNTo5OSIsIG5ldyBJbnRlZ2VyKDE1KjYwKzk5KSwKKyAgICAgICAgICAgICJHTVQrIiwgICAgICBudWxsLAorICAgICAgICAgICAgIkdNVC0iLCAgICAgIG51bGwsCisgICAgICAgICAgICAiR01UKzA6IiwgICAgbnVsbCwKKyAgICAgICAgICAgICJHTVQtOiIsICAgICBudWxsLAorICAgICAgICAgICAgIkdNVCswMDEwIiwgIG5ldyBJbnRlZ2VyKDEwKSwgLy8gSW50ZXJwcmV0IHRoaXMgYXMgMDA6MTAKKyAgICAgICAgICAgICJHTVQtMTAiLCAgICBuZXcgSW50ZWdlcigtMTAqNjApLAorICAgICAgICAgICAgIkdNVCszMCIsICAgIG5ldyBJbnRlZ2VyKDMwKSwKKyAgICAgICAgICAgICJHTVQtMzozMCIsICBuZXcgSW50ZWdlcigtKDMqNjArMzApKSwKKyAgICAgICAgICAgICJHTVQtMjMwIiwgICBuZXcgSW50ZWdlcigtKDIqNjArMzApKSwKKyAgICAgICAgfTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0yKSB7CisgICAgICAgICAgICBTdHJpbmcgaWQgPSAoU3RyaW5nKURBVEFbaV07CisgICAgICAgICAgICBJbnRlZ2VyIGV4cCA9IChJbnRlZ2VyKURBVEFbaSsxXTsKKyAgICAgICAgICAgIFRpbWVab25lIHpvbmUgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZShpZCk7CisgICAgICAgICAgICBpZiAoem9uZS5nZXRJRCgpLmVxdWFscygiR01UIikpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihpZCArICIgLT4gZ2VuZXJpYyBHTVQiKTsKKyAgICAgICAgICAgICAgICAvLyBXaGVuIFRpbWVab25lLmdldFRpbWVab25lKCkgY2FuJ3QgcGFyc2UgdGhlIGlkLCBpdAorICAgICAgICAgICAgICAgIC8vIHJldHVybnMgR01UIC0tIGEgZHViaW91cyBwcmFjdGljZSwgYnV0IHJlcXVpcmVkIGZvcgorICAgICAgICAgICAgICAgIC8vIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuCisgICAgICAgICAgICAgICAgaWYgKGV4cCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oIkV4cGVjdGVkIG9mZnNldCBvZiAiICsgZm9ybWF0TWludXRlcyhleHAuaW50VmFsdWUoKSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgZm9yICIgKyBpZCArICIsIGdvdCBwYXJzZSBmYWlsdXJlIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaW50IGlvZmZzZXQgPSB6b25lLmdldFJhd09mZnNldCgpLzYwMDAwOworICAgICAgICAgICAgICAgIFN0cmluZyBvZmZzZXQgPSBmb3JtYXRNaW51dGVzKGlvZmZzZXQpOworICAgICAgICAgICAgICAgIGxvZ2xuKGlkICsgIiAtPiAiICsgem9uZS5nZXRJRCgpICsgIiBHTVQiICsgb2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBpZiAoZXhwID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigiRXhwZWN0ZWQgcGFyc2UgZmFpbHVyZSBmb3IgIiArIGlkICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLCBnb3Qgb2Zmc2V0IG9mICIgKyBvZmZzZXQgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsIGlkICIgKyB6b25lLmdldElEKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmIChpb2Zmc2V0ICE9IGV4cC5pbnRWYWx1ZSgpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgIXpvbmUuZ2V0SUQoKS5lcXVhbHMoRVhQRUNURURfQ1VTVE9NX0lEKSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCJFeHBlY3RlZCBvZmZzZXQgb2YgIiArIGZvcm1hdE1pbnV0ZXMoZXhwLmludFZhbHVlKCkpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLCBpZCBDdXN0b20sIGZvciAiICsgaWQgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsIGdvdCBvZmZzZXQgb2YgIiArIG9mZnNldCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgaWQgIiArIHpvbmUuZ2V0SUQoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgYmFzaWMgZnVuY3Rpb25hbGl0eSBvZiB0aGUgZ2V0RGlzcGxheU5hbWUoKSBBUEkuCisgICAgICoKKyAgICAgKiBCdWcgNDExMjg2OQorICAgICAqIEJ1ZyA0MDI4MDA2CisgICAgICoKKyAgICAgKiBTZWUgYWxzbyBBUEkgY2hhbmdlIHJlcXVlc3QgQTQxLgorICAgICAqCisgICAgICogNC8yMS85OCAtIG1ha2Ugc21hcnRlciwgc28gdGhlIHRlc3Qgd29ya3MgaWYgdGhlIGV4dCByZXNvdXJjZXMKKyAgICAgKiBhcmUgcHJlc2VudCBvciBub3QuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdERpc3BsYXlOYW1lKCkgeworICAgICAgICBUaW1lWm9uZSB6b25lID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworICAgICAgICBTdHJpbmcgbmFtZSA9IHpvbmUuZ2V0RGlzcGxheU5hbWUoTG9jYWxlLkVOR0xJU0gpOworICAgICAgICBsb2dsbigiUFNULT4iICsgbmFtZSk7CisgICAgICAgIGlmICghbmFtZS5lcXVhbHMoIlBhY2lmaWMgU3RhbmRhcmQgVGltZSIpKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IEV4cGVjdGVkIFwiUGFjaWZpYyBTdGFuZGFyZCBUaW1lXCIsIGdvdCAiICsgbmFtZSArCisgICAgICAgICAgICAgICAgICAiIGZvciAiICsgem9uZSk7CisKKyAgICAgICAgLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICAgICAgICAvLyBUSEUgRk9MTE9XSU5HIExJTkVTIE1VU1QgQkUgVVBEQVRFRCBJRiBUSEUgTE9DQUxFIERBVEEgQ0hBTkdFUworICAgICAgICAvLyBUSEUgRk9MTE9XSU5HIExJTkVTIE1VU1QgQkUgVVBEQVRFRCBJRiBUSEUgTE9DQUxFIERBVEEgQ0hBTkdFUworICAgICAgICAvLyBUSEUgRk9MTE9XSU5HIExJTkVTIE1VU1QgQkUgVVBEQVRFRCBJRiBUSEUgTE9DQUxFIERBVEEgQ0hBTkdFUworICAgICAgICAvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgICAgICAgIE9iamVjdFtdIERBVEEgPSB7CisgICAgICAgICAgICBuZXcgQm9vbGVhbihmYWxzZSksIG5ldyBJbnRlZ2VyKFRpbWVab25lLlNIT1JUKSwgIlBTVCIsCisgICAgICAgICAgICBuZXcgQm9vbGVhbih0cnVlKSwgIG5ldyBJbnRlZ2VyKFRpbWVab25lLlNIT1JUKSwgIlBEVCIsCisgICAgICAgICAgICBuZXcgQm9vbGVhbihmYWxzZSksIG5ldyBJbnRlZ2VyKFRpbWVab25lLkxPTkcpLCAgIlBhY2lmaWMgU3RhbmRhcmQgVGltZSIsCisgICAgICAgICAgICBuZXcgQm9vbGVhbih0cnVlKSwgIG5ldyBJbnRlZ2VyKFRpbWVab25lLkxPTkcpLCAgIlBhY2lmaWMgRGF5bGlnaHQgVGltZSIsCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0zKSB7CisgICAgICAgICAgICBuYW1lID0gem9uZS5nZXREaXNwbGF5TmFtZSgoKEJvb2xlYW4pREFUQVtpXSkuYm9vbGVhblZhbHVlKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKEludGVnZXIpREFUQVtpKzFdKS5pbnRWYWx1ZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWxlLkVOR0xJU0gpOworICAgICAgICAgICAgaWYgKCFuYW1lLmVxdWFscyhEQVRBW2krMl0pKQorICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBFeHBlY3RlZCAiICsgREFUQVtpKzJdICsgIjsgZ290ICIgKyBuYW1lKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHdlIGRvbid0IGRpc3BsYXkgdGhlIERTVCBuYW1lIGJ5IGNvbnN0cnVjdGluZyBhIGZha2UKKyAgICAgICAgLy8gUFNUIHpvbmUgdGhhdCBoYXMgRFNUIGFsbCB5ZWFyIGxvbmcuCisgICAgICAgIFNpbXBsZVRpbWVab25lIHpvbmUyID0gbmV3IFNpbXBsZVRpbWVab25lKDAsICJQU1QiKTsKKyAgICAgICAgem9uZTIuc2V0U3RhcnRSdWxlKENhbGVuZGFyLkpBTlVBUlksIDEsIDApOworICAgICAgICB6b25lMi5zZXRFbmRSdWxlKENhbGVuZGFyLkRFQ0VNQkVSLCAzMSwgMCk7CisgICAgICAgIGxvZ2xuKCJNb2RpZmllZCBQU1QgaW5EYXlsaWdodFRpbWUtPiIgKyB6b25lMi5pbkRheWxpZ2h0VGltZShuZXcgRGF0ZSgpKSk7CisgICAgICAgIG5hbWUgPSB6b25lMi5nZXREaXNwbGF5TmFtZShMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIGxvZ2xuKCJNb2RpZmllZCBQU1QtPiIgKyBuYW1lKTsKKyAgICAgICAgaWYgKCFuYW1lLmVxdWFscygiUGFjaWZpYyBTdGFuZGFyZCBUaW1lIikpCisgICAgICAgICAgICBlcnJsbigiRmFpbDogRXhwZWN0ZWQgXCJQYWNpZmljIFN0YW5kYXJkIFRpbWVcIiIpOworCisgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBnZXQgdGhlIGRlZmF1bHQgZGlzcGxheSBmb3JtYXQgZm9yIExvY2FsZXMKKyAgICAgICAgLy8gd2l0aCBubyBkaXNwbGF5IG5hbWUgZGF0YS4KKyAgICAgICAgTG9jYWxlIHpoX0NOID0gTG9jYWxlLlNJTVBMSUZJRURfQ0hJTkVTRTsKKyAgICAgICAgbmFtZSA9IHpvbmUuZ2V0RGlzcGxheU5hbWUoemhfQ04pOworICAgICAgICAvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgICAgICAgIC8vIFRIRSBGT0xMT1dJTkcgTElORSBNVVNUIEJFIFVQREFURUQgSUYgVEhFIExPQ0FMRSBEQVRBIENIQU5HRVMKKyAgICAgICAgLy8gVEhFIEZPTExPV0lORyBMSU5FIE1VU1QgQkUgVVBEQVRFRCBJRiBUSEUgTE9DQUxFIERBVEEgQ0hBTkdFUworICAgICAgICAvLyBUSEUgRk9MTE9XSU5HIExJTkUgTVVTVCBCRSBVUERBVEVEIElGIFRIRSBMT0NBTEUgREFUQSBDSEFOR0VTCisgICAgICAgIC8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAgICAgICAgbG9nbG4oIlBTVCh6aF9DTiktPiIgKyBuYW1lKTsKKworICAgICAgICAvLyBOb3cgYmUgc21hcnQgLS0gY2hlY2sgdG8gc2VlIGlmIHpoIHJlc291cmNlIGlzIGV2ZW4gcHJlc2VudC4KKyAgICAgICAgLy8gSWYgbm90LCB3ZSBleHBlY3QgdGhlIGVuIGZhbGxiYWNrIGJlaGF2aW9yLgorCisJCS8vIGluIGljdTRqIDIuMSB3ZSBrbm93IHdlIGhhdmUgdGhlIHpoX0NOIGxvY2FsZSBkYXRhLCB0aG91Z2ggaXQncyBpbmNvbXBsZXRlCisJCS8qCisgICAgICAgIFJlc291cmNlQnVuZGxlIGVuUkIgPSBJQ1VMb2NhbGVEYXRhLmdldFJlc291cmNlQnVuZGxlKCJEYXRlRm9ybWF0Wm9uZURhdGEiLCBMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIFJlc291cmNlQnVuZGxlIHpoUkIgPSBJQ1VMb2NhbGVEYXRhLmdldFJlc291cmNlQnVuZGxlKCJEYXRlRm9ybWF0Wm9uZURhdGEiLCB6aF9DTik7CisgICAgICAgIGJvb2xlYW4gbm9aSCA9IGVuUkIgPT0gemhSQjsKKworICAgICAgICBpZiAobm9aSCkgeworICAgICAgICAgICAgbG9nbG4oIldhcm5pbmc6IE5vdCB0ZXN0aW5nIHRoZSB6aF9DTiBiZWhhdmlvciBiZWNhdXNlIHJlc291cmNlIGlzIGFic2VudCIpOworICAgICAgICAgICAgaWYgKCFuYW1lLmVxdWFscygiUGFjaWZpYyBTdGFuZGFyZCBUaW1lIikpCisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IEV4cGVjdGVkIFBhY2lmaWMgU3RhbmRhcmQgVGltZSIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgCisJCSovCisJCWlmICghbmFtZS5lcXVhbHMoIlBhY2lmaWMgU3RhbmRhcmQgVGltZSIpICYmCisJCQkhbmFtZS5lcXVhbHMoIkdNVC0wODowMCIpICYmCisJCQkhbmFtZS5lcXVhbHMoIkdNVC04OjAwIikgJiYKKwkJCSFuYW1lLmVxdWFscygiR01ULTA4MDAiKSAmJgorCQkJIW5hbWUuZXF1YWxzKCJHTVQtODAwIikpIHsKKworICAgICAgICAgICAgZXJybG4oIkZhaWw6IEV4cGVjdGVkIEdNVC0wODowMCBvciBzb21ldGhpbmcgc2ltaWxhciIpOworICAgICAgICAgICAgZXJybG4oIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiIpOworICAgICAgICAgICAgZXJybG4oIlRIRSBBQk9WRSBGQUlMVVJFIE1BWSBKVVNUIE1FQU4gVEhFIExPQ0FMRSBEQVRBIEhBUyBDSEFOR0VEIik7CisgICAgICAgICAgICBlcnJsbigiKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIE5vdyB0cnkgYSBub24tZXhpc3RlbnQgem9uZQorICAgICAgICB6b25lMiA9IG5ldyBTaW1wbGVUaW1lWm9uZSg5MCo2MCoxMDAwLCAieHl6enkiKTsKKyAgICAgICAgbmFtZSA9IHpvbmUyLmdldERpc3BsYXlOYW1lKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgbG9nbG4oIkdNVCs5MG1pbi0+IiArIG5hbWUpOworICAgICAgICBpZiAoIW5hbWUuZXF1YWxzKCJHTVQrMDE6MzAiKSAmJgorICAgICAgICAgICAgIW5hbWUuZXF1YWxzKCJHTVQrMTozMCIpICYmCisgICAgICAgICAgICAhbmFtZS5lcXVhbHMoIkdNVCswMTMwIikgJiYKKyAgICAgICAgICAgICFuYW1lLmVxdWFscygiR01UKzEzMCIpKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IEV4cGVjdGVkIEdNVCswMTozMCBvciBzb21ldGhpbmcgc2ltaWxhciIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RHZW5lcmljQVBJKCkgeworICAgICAgICBTdHJpbmcgaWQgPSAiTmV3R01UIjsKKyAgICAgICAgaW50IG9mZnNldCA9IDEyMzQ1OworCisgICAgICAgIFNpbXBsZVRpbWVab25lIHpvbmUgPSBuZXcgU2ltcGxlVGltZVpvbmUob2Zmc2V0LCBpZCk7CisgICAgICAgIGlmICh6b25lLnVzZURheWxpZ2h0VGltZSgpKSBlcnJsbigiRkFJTDogdXNlRGF5bGlnaHRUaW1lIHNob3VsZCByZXR1cm4gZmFsc2UiKTsKKworICAgICAgICBUaW1lWm9uZSB6b25lY2xvbmUgPSAoVGltZVpvbmUpem9uZS5jbG9uZSgpOworICAgICAgICBpZiAoIXpvbmVjbG9uZS5lcXVhbHMoem9uZSkpIGVycmxuKCJGQUlMOiBjbG9uZSBvciBvcGVyYXRvcj09IGZhaWxlZCIpOworICAgICAgICB6b25lY2xvbmUuc2V0SUQoImFiYyIpOworICAgICAgICBpZiAoem9uZWNsb25lLmVxdWFscyh6b25lKSkgZXJybG4oIkZBSUw6IGNsb25lIG9yIG9wZXJhdG9yIT0gZmFpbGVkIik7CisgICAgICAgIC8vIGRlbGV0ZSB6b25lY2xvbmU7CisKKyAgICAgICAgem9uZWNsb25lID0gKFRpbWVab25lKXpvbmUuY2xvbmUoKTsKKyAgICAgICAgaWYgKCF6b25lY2xvbmUuZXF1YWxzKHpvbmUpKSBlcnJsbigiRkFJTDogY2xvbmUgb3Igb3BlcmF0b3I9PSBmYWlsZWQiKTsKKyAgICAgICAgem9uZWNsb25lLnNldFJhd09mZnNldCg0NTY3OCk7CisgICAgICAgIGlmICh6b25lY2xvbmUuZXF1YWxzKHpvbmUpKSBlcnJsbigiRkFJTDogY2xvbmUgb3Igb3BlcmF0b3IhPSBmYWlsZWQiKTsKKworICAgICAgICAvLyBDKysgb25seQorICAgICAgICAvKgorICAgICAgICAgIFNpbXBsZVRpbWVab25lIGNvcHkoKnpvbmUpOworICAgICAgICAgIGlmICghKGNvcHkgPT0gKnpvbmUpKSBlcnJsbigiRkFJTDogY29weSBjb25zdHJ1Y3RvciBvciBvcGVyYXRvcj09IGZhaWxlZCIpOworICAgICAgICAgIGNvcHkgPSAqKFNpbXBsZVRpbWVab25lKil6b25lY2xvbmU7CisgICAgICAgICAgaWYgKCEoY29weSA9PSAqem9uZWNsb25lKSkgZXJybG4oIkZBSUw6IGFzc2lnbm1lbnQgb3BlcmF0b3Igb3Igb3BlcmF0b3I9PSBmYWlsZWQiKTsKKyAgICAgICAgICAqLworCisgICAgICAgIFRpbWVab25lIHNhdmVEZWZhdWx0ID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KHpvbmUpOworICAgICAgICBUaW1lWm9uZSBkZWZhdWx0em9uZSA9IFRpbWVab25lLmdldERlZmF1bHQoKTsKKyAgICAgICAgaWYgKGRlZmF1bHR6b25lID09IHpvbmUpIGVycmxuKCJGQUlMOiBEZWZhdWx0IG9iamVjdCBpcyBpZGVudGljYWwsIG5vdCBjbG9uZSIpOworICAgICAgICBpZiAoIWRlZmF1bHR6b25lLmVxdWFscyh6b25lKSkgZXJybG4oIkZBSUw6IERlZmF1bHQgb2JqZWN0IGlzIG5vdCBlcXVhbCIpOworICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KHNhdmVEZWZhdWx0KTsKKyAgICAgICAgLy8gZGVsZXRlIGRlZmF1bHR6b25lOworICAgICAgICAvLyBkZWxldGUgem9uZWNsb25lOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RSdWxlQVBJKCkKKyAgICB7CisgICAgICAgIC8vIEVycm9yQ29kZSBzdGF0dXMgPSBaRVJPX0VSUk9SOworCisgICAgICAgIGludCBvZmZzZXQgPSAoaW50KSg2MCo2MCoxMDAwKjEuNzUpOyAvLyBQaWNrIGEgd2VpcmQgb2Zmc2V0CisgICAgICAgIFNpbXBsZVRpbWVab25lIHpvbmUgPSBuZXcgU2ltcGxlVGltZVpvbmUob2Zmc2V0LCAiVGVzdFpvbmUiKTsKKyAgICAgICAgaWYgKHpvbmUudXNlRGF5bGlnaHRUaW1lKCkpIGVycmxuKCJGQUlMOiB1c2VEYXlsaWdodFRpbWUgc2hvdWxkIHJldHVybiBmYWxzZSIpOworCisgICAgICAgIC8vIEVzdGFibGlzaCBvdXIgZXhwZWN0ZWQgdHJhbnNpdGlvbiB0aW1lcy4gIERvIHRoaXMgd2l0aCBhIG5vbi1EU1QKKyAgICAgICAgLy8gY2FsZW5kYXIgd2l0aCB0aGUgKGFib3ZlKSBkZWNsYXJlZCBsb2NhbCBvZmZzZXQuCisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGdjID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKHpvbmUpOworICAgICAgICBnYy5jbGVhcigpOworICAgICAgICBnYy5zZXQoMTk5MCwgQ2FsZW5kYXIuTUFSQ0gsIDEpOworICAgICAgICBsb25nIG1hcmNoT25lU3RkID0gZ2MuZ2V0VGltZSgpLmdldFRpbWUoKTsgLy8gTG9jYWwgU3RkIHRpbWUgbWlkbmlnaHQKKyAgICAgICAgZ2MuY2xlYXIoKTsKKyAgICAgICAgZ2Muc2V0KDE5OTAsIENhbGVuZGFyLkpVTFksIDEpOworICAgICAgICBsb25nIGp1bHlPbmVTdGQgPSBnYy5nZXRUaW1lKCkuZ2V0VGltZSgpOyAvLyBMb2NhbCBTdGQgdGltZSBtaWRuaWdodAorCisgICAgICAgIC8vIFN0YXJ0aW5nIGFuZCBlbmRpbmcgaG91cnMsIFdBTEwgVElNRQorICAgICAgICBpbnQgc3RhcnRIb3VyID0gKGludCkoMi4yNSAqIDM2MDAwMDApOworICAgICAgICBpbnQgZW5kSG91ciAgID0gKGludCkoMy41ICAqIDM2MDAwMDApOworCisgICAgICAgIHpvbmUuc2V0U3RhcnRSdWxlKENhbGVuZGFyLk1BUkNILCAxLCAwLCBzdGFydEhvdXIpOworICAgICAgICB6b25lLnNldEVuZFJ1bGUgIChDYWxlbmRhci5KVUxZLCAgMSwgMCwgZW5kSG91cik7CisKKyAgICAgICAgZ2MgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoem9uZSk7CisgICAgICAgIC8vIGlmIChmYWlsdXJlKHN0YXR1cywgIm5ldyBHcmVnb3JpYW5DYWxlbmRhciIpKSByZXR1cm47CisKKyAgICAgICAgbG9uZyBtYXJjaE9uZSA9IG1hcmNoT25lU3RkICsgc3RhcnRIb3VyOworICAgICAgICBsb25nIGp1bHlPbmUgPSBqdWx5T25lU3RkICsgZW5kSG91ciAtIDM2MDAwMDA7IC8vIEFkanVzdCBmcm9tIHdhbGwgdG8gU3RkIHRpbWUKKworICAgICAgICBsb25nIGV4cE1hcmNoT25lID0gNjM2MjUxNDAwMDAwTDsKKyAgICAgICAgaWYgKG1hcmNoT25lICE9IGV4cE1hcmNoT25lKQorICAgICAgICB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgc3RhcnQgY29tcHV0ZWQgYXMgIiArIG1hcmNoT25lICsKKyAgICAgICAgICAgICAgICAgICIgPSAiICsgbmV3IERhdGUobWFyY2hPbmUpKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgICAgICBTaG91bGQgYmUgICAgICAgICAgICAgICAgICAiICsgZXhwTWFyY2hPbmUgKworICAgICAgICAgICAgICAgICAgIiA9ICIgKyBuZXcgRGF0ZShleHBNYXJjaE9uZSkpOworICAgICAgICB9CisKKyAgICAgICAgbG9uZyBleHBKdWx5T25lID0gNjQ2NzkzMTAwMDAwTDsKKyAgICAgICAgaWYgKGp1bHlPbmUgIT0gZXhwSnVseU9uZSkKKyAgICAgICAgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkIHN0YXJ0IGNvbXB1dGVkIGFzICIgKyBqdWx5T25lICsKKyAgICAgICAgICAgICAgICAgICIgPSAiICsgbmV3IERhdGUoanVseU9uZSkpOworICAgICAgICAgICAgbG9nbG4oIiAgICAgIFNob3VsZCBiZSAgICAgICAgICAgICAgICAgICIgKyBleHBKdWx5T25lICsKKyAgICAgICAgICAgICAgICAgICIgPSAiICsgbmV3IERhdGUoZXhwSnVseU9uZSkpOworICAgICAgICB9CisKKyAgICAgICAgQ2FsZW5kYXIgY2FsMSA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGNhbDEuc2V0KDE5OTAsIENhbGVuZGFyLkpBTlVBUlksIDEpOworICAgICAgICBDYWxlbmRhciBjYWwyID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsMi5zZXQoMTk5MCwgQ2FsZW5kYXIuSlVORSwgMSk7CisgICAgICAgIF90ZXN0VXNpbmdCaW5hcnlTZWFyY2goem9uZSwgY2FsMS5nZXRUaW1lSW5NaWxsaXMoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwyLmdldFRpbWVJbk1pbGxpcygpLCBtYXJjaE9uZSk7CisgICAgICAgIGNhbDEuc2V0KDE5OTAsIENhbGVuZGFyLkpVTkUsIDEpOworICAgICAgICBjYWwyLnNldCgxOTkwLCBDYWxlbmRhci5ERUNFTUJFUiwgMzEpOworICAgICAgICBfdGVzdFVzaW5nQmluYXJ5U2VhcmNoKHpvbmUsIGNhbDEuZ2V0VGltZUluTWlsbGlzKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsMi5nZXRUaW1lSW5NaWxsaXMoKSwganVseU9uZSk7CisKKyAgICAgICAgaWYgKHpvbmUuaW5EYXlsaWdodFRpbWUobmV3IERhdGUobWFyY2hPbmUgLSAxMDAwKSkgfHwKKyAgICAgICAgICAgICF6b25lLmluRGF5bGlnaHRUaW1lKG5ldyBEYXRlKG1hcmNoT25lKSkpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogU3RhcnQgcnVsZSBicm9rZW4iKTsKKyAgICAgICAgaWYgKCF6b25lLmluRGF5bGlnaHRUaW1lKG5ldyBEYXRlKGp1bHlPbmUgLSAxMDAwKSkgfHwKKyAgICAgICAgICAgIHpvbmUuaW5EYXlsaWdodFRpbWUobmV3IERhdGUoanVseU9uZSkpKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IEVuZCBydWxlIGJyb2tlbiIpOworCisgICAgICAgIHpvbmUuc2V0U3RhcnRZZWFyKDE5OTEpOworICAgICAgICBpZiAoem9uZS5pbkRheWxpZ2h0VGltZShuZXcgRGF0ZShtYXJjaE9uZSkpIHx8CisgICAgICAgICAgICB6b25lLmluRGF5bGlnaHRUaW1lKG5ldyBEYXRlKGp1bHlPbmUgLSAxMDAwKSkpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogU3RhcnQgeWVhciBicm9rZW4iKTsKKworICAgICAgICAvLyBmYWlsdXJlKHN0YXR1cywgIlRlc3RSdWxlQVBJIik7CisgICAgICAgIC8vIGRlbGV0ZSBnYzsKKyAgICAgICAgLy8gZGVsZXRlIHpvbmU7CisgICAgfQorCisgICAgdm9pZCBfdGVzdFVzaW5nQmluYXJ5U2VhcmNoKFNpbXBsZVRpbWVab25lIHR6LCBsb25nIG1pbiwgbG9uZyBtYXgsIGxvbmcgZXhwZWN0ZWRCb3VuZGFyeSkKKyAgICB7CisgICAgICAgIC8vIEVycm9yQ29kZSBzdGF0dXMgPSBaRVJPX0VSUk9SOworICAgICAgICBib29sZWFuIHN0YXJ0c0luRFNUID0gdHouaW5EYXlsaWdodFRpbWUobmV3IERhdGUobWluKSk7CisgICAgICAgIC8vIGlmIChmYWlsdXJlKHN0YXR1cywgIlNpbXBsZVRpbWVab25lOjppbkRheWxpZ2h0VGltZSIpKSByZXR1cm47CisgICAgICAgIGlmICh0ei5pbkRheWxpZ2h0VGltZShuZXcgRGF0ZShtYXgpKSA9PSBzdGFydHNJbkRTVCkgeworICAgICAgICAgICAgbG9nbG4oIkVycm9yOiBpbkRheWxpZ2h0VGltZSgiICsgbmV3IERhdGUobWF4KSArICIpICE9ICIgKyAoIXN0YXJ0c0luRFNUKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgLy8gaWYgKGZhaWx1cmUoc3RhdHVzLCAiU2ltcGxlVGltZVpvbmU6OmluRGF5bGlnaHRUaW1lIikpIHJldHVybjsKKyAgICAgICAgd2hpbGUgKChtYXggLSBtaW4pID4gSU5URVJWQUwpIHsKKyAgICAgICAgICAgIGxvbmcgbWlkID0gKG1pbiArIG1heCkgLyAyOworICAgICAgICAgICAgaWYgKHR6LmluRGF5bGlnaHRUaW1lKG5ldyBEYXRlKG1pZCkpID09IHN0YXJ0c0luRFNUKSB7CisgICAgICAgICAgICAgICAgbWluID0gbWlkOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgbWF4ID0gbWlkOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gaWYgKGZhaWx1cmUoc3RhdHVzLCAiU2ltcGxlVGltZVpvbmU6OmluRGF5bGlnaHRUaW1lIikpIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBsb2dsbigiQmluYXJ5IFNlYXJjaCBCZWZvcmU6ICIgKyBtaW4gKyAiID0gIiArIG5ldyBEYXRlKG1pbikpOworICAgICAgICBsb2dsbigiQmluYXJ5IFNlYXJjaCBBZnRlcjogICIgKyBtYXggKyAiID0gIiArIG5ldyBEYXRlKG1heCkpOworICAgICAgICBsb25nIG1pbmRlbHRhID0gZXhwZWN0ZWRCb3VuZGFyeSAtIG1pbjsKKyAgICAgICAgLy8gbm90IHVzZWQgbG9uZyBtYXhkZWx0YSA9IG1heCAtIGV4cGVjdGVkQm91bmRhcnk7CisgICAgICAgIGlmIChtaW5kZWx0YSA+PSAwICYmCisgICAgICAgICAgICBtaW5kZWx0YSA8PSBJTlRFUlZBTCAmJgorICAgICAgICAgICAgbWluZGVsdGEgPj0gMCAmJgorICAgICAgICAgICAgbWluZGVsdGEgPD0gSU5URVJWQUwpCisgICAgICAgICAgICBsb2dsbigiUEFTUzogRXhwZWN0ZWQgYmRyeTogICIgKyBleHBlY3RlZEJvdW5kYXJ5ICsgIiA9ICIgKyBuZXcgRGF0ZShleHBlY3RlZEJvdW5kYXJ5KSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCBiZHJ5OiAgIiArIGV4cGVjdGVkQm91bmRhcnkgKyAiID0gIiArIG5ldyBEYXRlKGV4cGVjdGVkQm91bmRhcnkpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgaW50IElOVEVSVkFMID0gMTAwOworCisgICAgLy8gQnVnIDAwNjsgdmVyaWZ5IHRoZSBvZmZzZXQgZm9yIGEgc3BlY2lmaWMgem9uZS4KKyAgICBwdWJsaWMgdm9pZCBUZXN0UFJUT2Zmc2V0KCkKKyAgICB7CisgICAgICAgIFRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoICJQUlQiICk7CisgICAgICAgIGlmKCB0eiA9PSBudWxsICkgeworICAgICAgICAgICAgZXJybG4oICJGQUlMOiBUaW1lWm9uZShQUlQpIGlzIG51bGwiICk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZXsKKyAgICAgICAgICAgIGlmICh0ei5nZXRSYXdPZmZzZXQoKSAhPSAoLTQqbWlsbGlzUGVySG91cikpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IE9mZnNldCBmb3IgUFJUIHNob3VsZCBiZSAtNCwgZ290ICIgKworICAgICAgICAgICAgICAgICAgICAgIHR6LmdldFJhd09mZnNldCgpIC8gKGRvdWJsZSltaWxsaXNQZXJIb3VyKTsKKyAgICAgICAgfQorCisgICAgfQorCisgICAgLy8gVGVzdCB2YXJpb3VzIGNhbGxzCisgICAgcHVibGljIHZvaWQgVGVzdFZhcmlvdXNBUEk1MTgoKQorICAgIHsKKyAgICAgICAgVGltZVpvbmUgdGltZV96b25lID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjYWwuc2V0KDE5OTcsIENhbGVuZGFyLkFQUklMLCAzMCk7CisgICAgICAgIERhdGUgZCA9IGNhbC5nZXRUaW1lKCk7CisKKyAgICAgICAgbG9nbG4oIlRoZSB0aW1lem9uZSBpcyAiICsgdGltZV96b25lLmdldElEKCkpOworCisgICAgICAgIGlmICh0aW1lX3pvbmUuaW5EYXlsaWdodFRpbWUoZCkgIT0gdHJ1ZSkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBpbkRheWxpZ2h0VGltZSByZXR1cm5lZCBmYWxzZSIpOworCisgICAgICAgIGlmICh0aW1lX3pvbmUudXNlRGF5bGlnaHRUaW1lKCkgIT0gdHJ1ZSkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiB1c2VEYXlsaWdodFRpbWUgcmV0dXJuZWQgZmFsc2UiKTsKKworICAgICAgICBpZiAodGltZV96b25lLmdldFJhd09mZnNldCgpICE9IC04Km1pbGxpc1BlckhvdXIpCisgICAgICAgICAgICBlcnJsbiggIkZBSUw6IGdldFJhd09mZnNldCByZXR1cm5lZCB3cm9uZyB2YWx1ZSIpOworCisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGdjID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgIGdjLnNldFRpbWUoZCk7CisgICAgICAgIGlmICh0aW1lX3pvbmUuZ2V0T2Zmc2V0KGdjLkFELCBnYy5nZXQoZ2MuWUVBUiksIGdjLmdldChnYy5NT05USCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjLmdldChnYy5EQVlfT0ZfTU9OVEgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYy5nZXQoZ2MuREFZX09GX1dFRUspLCAwKQorICAgICAgICAgICAgIT0gLTcqbWlsbGlzUGVySG91cikKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRPZmZzZXQgcmV0dXJuZWQgd3JvbmcgdmFsdWUiKTsKKyAgICB9CisKKyAgICAvLyBUZXN0IGdldEF2YWlsYWJsZUlEIEFQSQorICAgIHB1YmxpYyB2b2lkIFRlc3RHZXRBdmFpbGFibGVJRHM5MTMoKQorICAgIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoIlRpbWVab25lLmdldEF2YWlsYWJsZUlEcygpID0geyAiKTsKKyAgICAgICAgU3RyaW5nW10gcyA9IFRpbWVab25lLmdldEF2YWlsYWJsZUlEcygpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8cy5sZW5ndGg7ICsraSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGkgPiAwKSBidWYuYXBwZW5kKCIsICIpOworICAgICAgICAgICAgYnVmLmFwcGVuZChzW2ldKTsKKyAgICAgICAgfQorICAgICAgICBidWYuYXBwZW5kKCIgfTsiKTsKKyAgICAgICAgbG9nbG4oYnVmLnRvU3RyaW5nKCkpOworCisgICAgICAgIGJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgIGJ1Zi5hcHBlbmQoIlRpbWVab25lLmdldEF2YWlsYWJsZUlEcyhHTVQrMDI6MDApID0geyAiKTsKKyAgICAgICAgcyA9IFRpbWVab25lLmdldEF2YWlsYWJsZUlEcygrMiAqIDYwICogNjAgKiAxMDAwKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHMubGVuZ3RoOyArK2kpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChpID4gMCkgYnVmLmFwcGVuZCgiLCAiKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoc1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgYnVmLmFwcGVuZCgiIH07Iik7CisgICAgICAgIGxvZ2xuKGJ1Zi50b1N0cmluZygpKTsKKworICAgICAgICBUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKyAgICAgICAgaWYgKHR6ICE9IG51bGwpCisgICAgICAgICAgICBsb2dsbigiZ2V0VGltZVpvbmUoUFNUKSA9ICIgKyB0ei5nZXRJRCgpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldFRpbWVab25lKFBTVCkgPSBudWxsIik7CisKKyAgICAgICAgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiQW1lcmljYS9Mb3NfQW5nZWxlcyIpOworICAgICAgICBpZiAodHogIT0gbnVsbCkKKyAgICAgICAgICAgIGxvZ2xuKCJnZXRUaW1lWm9uZShBbWVyaWNhL0xvc19BbmdlbGVzKSA9ICIgKyB0ei5nZXRJRCgpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldFRpbWVab25lKFBTVCkgPSBudWxsIik7CisKKyAgICAgICAgLy8gQnVnIDQwOTY2OTQKKyAgICAgICAgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiTk9OX0VYSVNURU5UIik7CisgICAgICAgIGlmICh0eiA9PSBudWxsKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldFRpbWVab25lKE5PTl9FWElTVEVOVCkgPSBudWxsIik7CisgICAgICAgIGVsc2UgaWYgKCF0ei5nZXRJRCgpLmVxdWFscygiR01UIikpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogZ2V0VGltZVpvbmUoTk9OX0VYSVNURU5UKSA9ICIgKyB0ei5nZXRJRCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBCdWcgNDEwNzI3NgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3REU1RTYXZpbmdzKCkgeworICAgICAgICAvLyBJdCBtaWdodCBiZSBiZXR0ZXIgdG8gZmluZCBhIHdheSB0byBpbnRlZ3JhdGUgdGhpcyB0ZXN0IGludG8gdGhlIG1haW4gVGltZVpvbmUKKyAgICAgICAgLy8gdGVzdHMgYWJvdmUsIGJ1dCBJIGRvbid0IGhhdmUgdGltZSB0byBmaWd1cmUgb3V0IGhvdyB0byBkbyB0aGlzIChvciBpZiBpdCdzCisgICAgICAgIC8vIGV2ZW4gcmVhbGx5IGEgZ29vZCBpZGVhKS4gIExldCdzIGNvbnNpZGVyIHRoYXQgYSBmdXR1cmUuICAtLXJ0ZyAxLzI3Lzk4CisgICAgICAgIFNpbXBsZVRpbWVab25lIHR6ID0gbmV3IFNpbXBsZVRpbWVab25lKC01ICogbWlsbGlzUGVySG91ciwgImRzdFNhdmluZ3NUZXN0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuTUFSQ0gsIDEsIDAsIDAsIENhbGVuZGFyLlNFUFRFTUJFUiwgMSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoMC41ICogbWlsbGlzUGVySG91cikpOworCisgICAgICAgIGlmICh0ei5nZXRSYXdPZmZzZXQoKSAhPSAtNSAqIG1pbGxpc1BlckhvdXIpCisgICAgICAgICAgICBlcnJsbigiR290IGJhY2sgYSByYXcgb2Zmc2V0IG9mICIgKyAodHouZ2V0UmF3T2Zmc2V0KCkgLyBtaWxsaXNQZXJIb3VyKSArCisgICAgICAgICAgICAgICAgICAiIGhvdXJzIGluc3RlYWQgb2YgLTUgaG91cnMuIik7CisgICAgICAgIGlmICghdHoudXNlRGF5bGlnaHRUaW1lKCkpCisgICAgICAgICAgICBlcnJsbigiVGVzdCB0aW1lIHpvbmUgc2hvdWxkIHVzZSBEU1QgYnV0IGNsYWltcyBpdCBkb2Vzbid0LiIpOworICAgICAgICBpZiAodHouZ2V0RFNUU2F2aW5ncygpICE9IDAuNSAqIG1pbGxpc1BlckhvdXIpCisgICAgICAgICAgICBlcnJsbigiU2V0IERTVCBvZmZzZXQgdG8gMC41IGhvdXIsIGJ1dCBnb3QgYmFjayAiICsgKHR6LmdldERTVFNhdmluZ3MoKSAvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbGxpc1BlckhvdXIpICsgIiBob3VycyBpbnN0ZWFkLiIpOworCisgICAgICAgIGludCBvZmZzZXQgPSB0ei5nZXRPZmZzZXQoR3JlZ29yaWFuQ2FsZW5kYXIuQUQsIDE5OTgsIENhbGVuZGFyLkpBTlVBUlksIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuVEhVUlNEQVksIDEwICogbWlsbGlzUGVySG91cik7CisgICAgICAgIGlmIChvZmZzZXQgIT0gLTUgKiBtaWxsaXNQZXJIb3VyKQorICAgICAgICAgICAgZXJybG4oIlRoZSBvZmZzZXQgZm9yIDEwIEFNLCAxLzEvOTggc2hvdWxkIGhhdmUgYmVlbiAtNSBob3VycywgYnV0IHdlIGdvdCAiCisgICAgICAgICAgICAgICAgICArIChvZmZzZXQgLyBtaWxsaXNQZXJIb3VyKSArICIgaG91cnMuIik7CisKKyAgICAgICAgb2Zmc2V0ID0gdHouZ2V0T2Zmc2V0KEdyZWdvcmlhbkNhbGVuZGFyLkFELCAxOTk4LCBDYWxlbmRhci5KVU5FLCAxLCBDYWxlbmRhci5NT05EQVksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMCAqIG1pbGxpc1BlckhvdXIpOworICAgICAgICBpZiAob2Zmc2V0ICE9IC00LjUgKiBtaWxsaXNQZXJIb3VyKQorICAgICAgICAgICAgZXJybG4oIlRoZSBvZmZzZXQgZm9yIDEwIEFNLCA2LzEvOTggc2hvdWxkIGhhdmUgYmVlbiAtNC41IGhvdXJzLCBidXQgd2UgZ290ICIKKyAgICAgICAgICAgICAgICAgICsgKG9mZnNldCAvIG1pbGxpc1BlckhvdXIpICsgIiBob3Vycy4iKTsKKworICAgICAgICB0ei5zZXREU1RTYXZpbmdzKG1pbGxpc1BlckhvdXIpOworICAgICAgICBvZmZzZXQgPSB0ei5nZXRPZmZzZXQoR3JlZ29yaWFuQ2FsZW5kYXIuQUQsIDE5OTgsIENhbGVuZGFyLkpBTlVBUlksIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5USFVSU0RBWSwgMTAgKiBtaWxsaXNQZXJIb3VyKTsKKyAgICAgICAgaWYgKG9mZnNldCAhPSAtNSAqIG1pbGxpc1BlckhvdXIpCisgICAgICAgICAgICBlcnJsbigiVGhlIG9mZnNldCBmb3IgMTAgQU0sIDEvMS85OCBzaG91bGQgaGF2ZSBiZWVuIC01IGhvdXJzLCBidXQgd2UgZ290ICIKKyAgICAgICAgICAgICAgICAgICsgKG9mZnNldCAvIG1pbGxpc1BlckhvdXIpICsgIiBob3Vycy4iKTsKKworICAgICAgICBvZmZzZXQgPSB0ei5nZXRPZmZzZXQoR3JlZ29yaWFuQ2FsZW5kYXIuQUQsIDE5OTgsIENhbGVuZGFyLkpVTkUsIDEsIENhbGVuZGFyLk1PTkRBWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwICogbWlsbGlzUGVySG91cik7CisgICAgICAgIGlmIChvZmZzZXQgIT0gLTQgKiBtaWxsaXNQZXJIb3VyKQorICAgICAgICAgICAgZXJybG4oIlRoZSBvZmZzZXQgZm9yIDEwIEFNLCA2LzEvOTggKHdpdGggYSAxLWhvdXIgRFNUIG9mZnNldCkgc2hvdWxkIGhhdmUgYmVlbiAtNCBob3VycywgYnV0IHdlIGdvdCAiCisgICAgICAgICAgICAgICAgICArIChvZmZzZXQgLyBtaWxsaXNQZXJIb3VyKSArICIgaG91cnMuIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQnVnIDQxMDc1NzAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QWx0ZXJuYXRlUnVsZXMoKSB7CisgICAgICAgIC8vIExpa2UgVGVzdERTVFNhdmluZ3MsIHRoaXMgdGVzdCBzaG91bGQgcHJvYmFibHkgYmUgaW50ZWdyYXRlZCBzb21laG93IHdpdGggdGhlIG1haW4KKyAgICAgICAgLy8gdGVzdCBhdCB0aGUgdG9wIG9mIHRoaXMgY2xhc3MsIGJ1dCBJIGRpZG4ndCBoYXZlIHRpbWUgdG8gZmlndXJlIG91dCBob3cgdG8gZG8gdGhhdC4KKyAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgLS1ydGcgMS8yOC85OAorCisgICAgICAgIFNpbXBsZVRpbWVab25lIHR6ID0gbmV3IFNpbXBsZVRpbWVab25lKC01ICogbWlsbGlzUGVySG91ciwgImFsdGVybmF0ZVJ1bGVUZXN0Iik7CisKKyAgICAgICAgLy8gdGVzdCB0aGUgZGF5LW9mLW1vbnRoIEFQSQorICAgICAgICB0ei5zZXRTdGFydFJ1bGUoQ2FsZW5kYXIuTUFSQ0gsIDEwLCAxMiAqIG1pbGxpc1BlckhvdXIpOworICAgICAgICB0ei5zZXRFbmRSdWxlKENhbGVuZGFyLk9DVE9CRVIsIDIwLCAxMiAqIG1pbGxpc1BlckhvdXIpOworCisgICAgICAgIGludCBvZmZzZXQgPSB0ei5nZXRPZmZzZXQoR3JlZ29yaWFuQ2FsZW5kYXIuQUQsIDE5OTgsIENhbGVuZGFyLk1BUkNILCA1LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLlRIVVJTREFZLCAxMCAqIG1pbGxpc1BlckhvdXIpOworICAgICAgICBpZiAob2Zmc2V0ICE9IC01ICogbWlsbGlzUGVySG91cikKKyAgICAgICAgICAgIGVycmxuKCJUaGUgb2Zmc2V0IGZvciAxMEFNLCAzLzUvOTggc2hvdWxkIGhhdmUgYmVlbiAtNSBob3VycywgYnV0IHdlIGdvdCAiCisgICAgICAgICAgICAgICAgICArIChvZmZzZXQgLyBtaWxsaXNQZXJIb3VyKSArICIgaG91cnMuIik7CisKKyAgICAgICAgb2Zmc2V0ID0gdHouZ2V0T2Zmc2V0KEdyZWdvcmlhbkNhbGVuZGFyLkFELCAxOTk4LCBDYWxlbmRhci5NQVJDSCwgMTUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5TVU5EQVksIDEwICogbWlsbGlzUGVySG91cik7CisgICAgICAgIGlmIChvZmZzZXQgIT0gLTQgKiBtaWxsaXNQZXJIb3VyKQorICAgICAgICAgICAgZXJybG4oIlRoZSBvZmZzZXQgZm9yIDEwQU0sIDMvMTUvOTggc2hvdWxkIGhhdmUgYmVlbiAtNCBob3VycywgYnV0IHdlIGdvdCAiCisgICAgICAgICAgICAgICAgICArIChvZmZzZXQgLyBtaWxsaXNQZXJIb3VyKSArICIgaG91cnMuIik7CisKKyAgICAgICAgb2Zmc2V0ID0gdHouZ2V0T2Zmc2V0KEdyZWdvcmlhbkNhbGVuZGFyLkFELCAxOTk4LCBDYWxlbmRhci5PQ1RPQkVSLCAxNSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLlRIVVJTREFZLCAxMCAqIG1pbGxpc1BlckhvdXIpOworICAgICAgICBpZiAob2Zmc2V0ICE9IC00ICogbWlsbGlzUGVySG91cikKKyAgICAgICAgICAgIGVycmxuKCJUaGUgb2Zmc2V0IGZvciAxMEFNLCAxMC8xNS85OCBzaG91bGQgaGF2ZSBiZWVuIC00IGhvdXJzLCBidXQgd2UgZ290ICIKKyAgICAgICAgICAgICAgICAgICsgKG9mZnNldCAvIG1pbGxpc1BlckhvdXIpICsgIiBob3Vycy4iKTsKKworICAgICAgICBvZmZzZXQgPSB0ei5nZXRPZmZzZXQoR3JlZ29yaWFuQ2FsZW5kYXIuQUQsIDE5OTgsIENhbGVuZGFyLk9DVE9CRVIsIDI1LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuU1VOREFZLCAxMCAqIG1pbGxpc1BlckhvdXIpOworICAgICAgICBpZiAob2Zmc2V0ICE9IC01ICogbWlsbGlzUGVySG91cikKKyAgICAgICAgICAgIGVycmxuKCJUaGUgb2Zmc2V0IGZvciAxMEFNLCAxMC8yNS85OCBzaG91bGQgaGF2ZSBiZWVuIC01IGhvdXJzLCBidXQgd2UgZ290ICIKKyAgICAgICAgICAgICAgICAgICsgKG9mZnNldCAvIG1pbGxpc1BlckhvdXIpICsgIiBob3Vycy4iKTsKKworICAgICAgICAvLyB0ZXN0IHRoZSBkYXktb2Ytd2Vlay1hZnRlci1kYXktaW4tbW9udGggQVBJCisgICAgICAgIHR6LnNldFN0YXJ0UnVsZShDYWxlbmRhci5NQVJDSCwgMTAsIENhbGVuZGFyLkZSSURBWSwgMTIgKiBtaWxsaXNQZXJIb3VyLCB0cnVlKTsKKyAgICAgICAgdHouc2V0RW5kUnVsZShDYWxlbmRhci5PQ1RPQkVSLCAyMCwgQ2FsZW5kYXIuRlJJREFZLCAxMiAqIG1pbGxpc1BlckhvdXIsIGZhbHNlKTsKKworICAgICAgICBvZmZzZXQgPSB0ei5nZXRPZmZzZXQoR3JlZ29yaWFuQ2FsZW5kYXIuQUQsIDE5OTgsIENhbGVuZGFyLk1BUkNILCAxMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLldFRE5FU0RBWSwgMTAgKiBtaWxsaXNQZXJIb3VyKTsKKyAgICAgICAgaWYgKG9mZnNldCAhPSAtNSAqIG1pbGxpc1BlckhvdXIpCisgICAgICAgICAgICBlcnJsbigiVGhlIG9mZnNldCBmb3IgMTBBTSwgMy8xMS85OCBzaG91bGQgaGF2ZSBiZWVuIC01IGhvdXJzLCBidXQgd2UgZ290ICIKKyAgICAgICAgICAgICAgICAgICsgKG9mZnNldCAvIG1pbGxpc1BlckhvdXIpICsgIiBob3Vycy4iKTsKKworICAgICAgICBvZmZzZXQgPSB0ei5nZXRPZmZzZXQoR3JlZ29yaWFuQ2FsZW5kYXIuQUQsIDE5OTgsIENhbGVuZGFyLk1BUkNILCAxNCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLlNBVFVSREFZLCAxMCAqIG1pbGxpc1BlckhvdXIpOworICAgICAgICBpZiAob2Zmc2V0ICE9IC00ICogbWlsbGlzUGVySG91cikKKyAgICAgICAgICAgIGVycmxuKCJUaGUgb2Zmc2V0IGZvciAxMEFNLCAzLzE0Lzk4IHNob3VsZCBoYXZlIGJlZW4gLTQgaG91cnMsIGJ1dCB3ZSBnb3QgIgorICAgICAgICAgICAgICAgICAgKyAob2Zmc2V0IC8gbWlsbGlzUGVySG91cikgKyAiIGhvdXJzLiIpOworCisgICAgICAgIG9mZnNldCA9IHR6LmdldE9mZnNldChHcmVnb3JpYW5DYWxlbmRhci5BRCwgMTk5OCwgQ2FsZW5kYXIuT0NUT0JFUiwgMTUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5USFVSU0RBWSwgMTAgKiBtaWxsaXNQZXJIb3VyKTsKKyAgICAgICAgaWYgKG9mZnNldCAhPSAtNCAqIG1pbGxpc1BlckhvdXIpCisgICAgICAgICAgICBlcnJsbigiVGhlIG9mZnNldCBmb3IgMTBBTSwgMTAvMTUvOTggc2hvdWxkIGhhdmUgYmVlbiAtNCBob3VycywgYnV0IHdlIGdvdCAiCisgICAgICAgICAgICAgICAgICArIChvZmZzZXQgLyBtaWxsaXNQZXJIb3VyKSArICIgaG91cnMuIik7CisKKyAgICAgICAgb2Zmc2V0ID0gdHouZ2V0T2Zmc2V0KEdyZWdvcmlhbkNhbGVuZGFyLkFELCAxOTk4LCBDYWxlbmRhci5PQ1RPQkVSLCAxNywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLlNBVFVSREFZLCAxMCAqIG1pbGxpc1BlckhvdXIpOworICAgICAgICBpZiAob2Zmc2V0ICE9IC01ICogbWlsbGlzUGVySG91cikKKyAgICAgICAgICAgIGVycmxuKCJUaGUgb2Zmc2V0IGZvciAxMEFNLCAxMC8xNy85OCBzaG91bGQgaGF2ZSBiZWVuIC01IGhvdXJzLCBidXQgd2UgZ290ICIKKyAgICAgICAgICAgICAgICAgICsgKG9mZnNldCAvIG1pbGxpc1BlckhvdXIpICsgIiBob3Vycy4iKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0RXF1aXZhbGVuY3lHcm91cHMoKSB7CisgICAgICAgIFN0cmluZyBpZCA9ICJBbWVyaWNhL0xvc19BbmdlbGVzIjsKKyAgICAgICAgaW50IG4gPSBUaW1lWm9uZS5jb3VudEVxdWl2YWxlbnRJRHMoaWQpOworICAgICAgICBpZiAobiA8IDIpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjb3VudEVxdWl2YWxlbnRJRHMoIiArIGlkICsgIikgcmV0dXJuZWQgIiArIG4gKworICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQgPj0gMiIpOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxuOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBzID0gVGltZVpvbmUuZ2V0RXF1aXZhbGVudElEKGlkLCBpKTsKKyAgICAgICAgICAgIGlmIChzLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogZ2V0RXF1aXZhbGVudElEKCIgKyBpZCArICIsICIgKyBpICsKKyAgICAgICAgICAgICAgICAgICAgICAiKSByZXR1cm5lZCBcIiIgKyBzICsgIlwiLCBleHBlY3RlZCB2YWxpZCBJRCIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiIiArIGkgKyAiOiIgKyBzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb3VudHJpZXMoKSB7CisgICAgICAgIC8vIE1ha2Ugc3VyZSBBbWVyaWNhL0xvc19BbmdlbGVzIGlzIGluIHRoZSAiVVMiIGdyb3VwLCBhbmQKKyAgICAgICAgLy8gQXNpYS9Ub2t5byBpc24ndC4gIFZpY2UgdmVyc2EgZm9yIHRoZSAiSlAiIGdyb3VwLgorCisgICAgICAgIFN0cmluZ1tdIHMgPSBUaW1lWm9uZS5nZXRBdmFpbGFibGVJRHMoIlVTIik7CisgICAgICAgIGJvb2xlYW4gbGEgPSBmYWxzZSwgdG9reW8gPSBmYWxzZTsKKyAgICAgICAgU3RyaW5nIGxhWm9uZSA9ICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgdG9reW9ab25lID0gIkFzaWEvVG9reW8iOworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoc1tpXS5lcXVhbHMobGFab25lKSkgeworICAgICAgICAgICAgICAgIGxhID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChzW2ldLmVxdWFscyh0b2t5b1pvbmUpKSB7CisgICAgICAgICAgICAgICAgdG9reW8gPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICghbGEgfHwgdG9reW8pIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgbGFab25lICsgIiBpbiBVUyA9ICIgKyBsYSk7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIHRva3lvWm9uZSArICIgaW4gVVMgPSAiICsgdG9reW8pOworICAgICAgICB9CisKKyAgICAgICAgcyA9IFRpbWVab25lLmdldEF2YWlsYWJsZUlEcygiSlAiKTsKKyAgICAgICAgbGEgPSBmYWxzZTsgdG9reW8gPSBmYWxzZTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGk8cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKHNbaV0uZXF1YWxzKGxhWm9uZSkpIHsKKyAgICAgICAgICAgICAgICBsYSA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc1tpXS5lcXVhbHModG9reW9ab25lKSkgeworICAgICAgICAgICAgICAgIHRva3lvID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAobGEgfHwgIXRva3lvKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGxhWm9uZSArICIgaW4gSlAgPSAiICsgbGEpOworICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyB0b2t5b1pvbmUgKyAiIGluIEpQID0gIiArIHRva3lvKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy9lb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9Db21wb3VuZFRyYW5zbGl0ZXJhdG9yVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L0NvbXBvdW5kVHJhbnNsaXRlcmF0b3JUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzQ0NzE3YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9Db21wb3VuZFRyYW5zbGl0ZXJhdG9yVGVzdC5qYXZhCkBAIC0wLDAgKzEsMjg4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvQ29tcG91bmRUcmFuc2xpdGVyYXRvclRlc3QuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8yNSAyMjo0Mzo1NyAkIAorICogJFJldmlzaW9uOiAxLjYgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnRyYW5zbGl0OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgamF2YS50ZXh0Lio7CitpbXBvcnQgamF2YS51dGlsLio7CisKKworLyoqCisgKiBAdGVzdAorICogQHN1bW1hcnkgR2VuZXJhbCB0ZXN0IG9mIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IKKyAqLworcHVibGljIGNsYXNzIENvbXBvdW5kVHJhbnNsaXRlcmF0b3JUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29uc3RydWN0aW9uKCl7CisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIHRoZSBjb25zdHJ1Y3Rpb24gb2YgdGhlIGNvbXBvdW5kIFRyYW5zbGl0ZXJhdG9yIik7CisgICAgICAgIFN0cmluZyBuYW1lc1tdPXsiR3JlZWstTGF0aW4iLCAiTGF0aW4tRGV2YW5hZ2FyaSIsICJEZXZhbmFnYXJpLUxhdGluIiwgIkxhdGluLUdyZWVrIn07CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQxPW51bGw7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQyPW51bGw7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQzPW51bGw7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQ0PW51bGw7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHQxPVRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKG5hbWVzWzBdKTsKKyAgICAgICAgICAgIHQyPVRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKG5hbWVzWzFdKTsKKyAgICAgICAgICAgIHQzPVRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKG5hbWVzWzJdKTsKKyAgICAgICAgICAgIHQ0PVRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKG5hbWVzWzNdKTsKKyAgICAgICAgfWNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRyYW5zbGl0ZXJhdG9yIGNvbnN0cnVjdGlvbiBmYWlsZWQiKTsKKyAgICAgICAgICAgIHRocm93IGV4OworICAgICAgICB9CisgIAorICAgICAgICBUcmFuc2xpdGVyYXRvcltdIHRyYW5zYXJyYXkxPXt0MX07CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yW10gdHJhbnNhcnJheTI9e3QxLCB0NH07CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yW10gdHJhbnNhcnJheTM9e3Q0LCB0MSwgdDJ9OworICAgICAgICBUcmFuc2xpdGVyYXRvcltdIHRyYW5zYXJyYXk0PXt0MSwgdDIsIHQzLCB0NH07CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3JbXVtdIHRyYW5zYXJyYXk9e3RyYW5zYXJyYXkxLCB0cmFuc2FycmF5MiwgdHJhbnNhcnJheTMsIHRyYW5zYXJyYXk0fTsgCisgICAgICAgIGZpbmFsIFN0cmluZyBJRHNbXT17CisgICAgICAgICAgICBuYW1lc1swXSwgCisgICAgICAgICAgICBuYW1lc1swXSsiOyIrbmFtZXNbM10sIAorICAgICAgICAgICAgbmFtZXNbM10rIjsiK25hbWVzWzFdKyI7IituYW1lc1syXSwgCisgICAgICAgICAgICBuYW1lc1swXSsiOyIrbmFtZXNbMV0rIjsiK25hbWVzWzJdKyI7IituYW1lc1szXSAKKyAgICAgICAgfTsKKworICAgCisgICAgICAgIGZvcihpbnQgaT0wOyBpPDQ7IGkrKyl7CisgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgQ29tcG91bmRUcmFuc2xpdGVyYXRvciBjcGR0cmFucz1uZXcgQ29tcG91bmRUcmFuc2xpdGVyYXRvcihJRHNbaV0pOworICAgICAgICAgICAgICAgIGNwZHRyYW5zID0gbnVsbDsKKyAgICAgICAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXgxKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNvbnN0cnVjdGlvbiB1c2luZyBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKFN0cmluZyBJRCkgZmFpbGVkIGZvciAiICsgSURzW2ldKTsKKyAgICAgICAgICAgICAgICB0aHJvdyBleDE7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yIGNwZHRyYW5zPW5ldyBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKElEc1tpXSwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgICAgICAgICAgY3BkdHJhbnMgPSBudWxsOworICAgICAgICAgICAgfWNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBleDIpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogY29uc3RydWN0aW9uIHVzaW5nIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IoU3RyaW5nIElELCBpbnQgZGlyZWN0aW9uPUZPUldBUkQpIGZhaWxlZCBmb3IgIiArIElEc1tpXSk7CisgICAgICAgICAgICAgICAgdGhyb3cgZXgyOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgQ29tcG91bmRUcmFuc2xpdGVyYXRvciBjcGR0cmFucz1uZXcgQ29tcG91bmRUcmFuc2xpdGVyYXRvcihJRHNbaV0sIFRyYW5zbGl0ZXJhdG9yLlJFVkVSU0UpOworICAgICAgICAgICAgICAgIGNwZHRyYW5zID0gbnVsbDsKKyAgICAgICAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXgzKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNvbnN0cnVjdGlvbiB1c2luZyBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKFN0cmluZyBJRCwgaW50IGRpcmVjdGlvbj1SRVZFUlNFKSBmYWlsZWQgZm9yICIgKyBJRHNbaV0pOworICAgICAgICAgICAgICAgIHRocm93IGV4MzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IgY3BkdHJhbnM9bmV3IENvbXBvdW5kVHJhbnNsaXRlcmF0b3IoSURzW2ldLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJELCBudWxsKTsKKyAgICAgICAgICAgICAgICBjcGR0cmFucyA9IG51bGw7CisgICAgICAgICAgICB9Y2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGV4NCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjb25zdHJ1Y3Rpb24gdXNpbmcgQ29tcG91bmRUcmFuc2xpdGVyYXRvcihTdHJpbmcgSUQsIGludCBkaXJlY3Rpb249Rk9SV0FSRCwiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICJVbmljb2RlRmlsdGVyIGFkb3B0ZWRGaWx0ZXI9MCkgZmFpbGVkIGZvciAiICsgSURzW2ldKTsKKyAgICAgICAgICAgICAgICB0aHJvdyBleDQ7CisgICAgICAgICAgICB9CisgIAorICAgICAgIAorICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IgY3BkdHJhbnMyPW5ldyBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKHRyYW5zYXJyYXlbaV0sIG51bGwpOworICAgICAgICAgICAgICAgIGNwZHRyYW5zMiA9IG51bGw7CisgICAgICAgICAgICB9Y2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGV4NSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDb25zdHJ1Y3Rpb24gdXNpbmcgQ29tcG91bmRUcmFuc2xpdGVyYXRvcihUcmFuc2xpdGVyYXRvciB0cmFuc2xpdGVyYXRvcnNbXSwiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIlVuaWNvZGVGaWx0ZXIgYWRvcHRlZEZpbHRlciA9IDApICBmYWlsZWQiKTsKKyAgICAgICAgICAgICAgICB0aHJvdyBleDU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIAorICAgICAgICB9CisgICAKKyAgICB9CisgCisgICAgcHVibGljIHZvaWQgVGVzdEdldFRyYW5zbGl0ZXJhdG9yKCl7CisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIHRoZSBnZXRUcmFuc2xpdGVyYXRvcigpIEFQSSBvZiBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yIik7CisgICAgICAgIFN0cmluZyBJRD0iTGF0aW4tR3JlZWs7R3JlZWstTGF0aW47TGF0aW4tRGV2YW5hZ2FyaTtEZXZhbmFnYXJpLUxhdGluO0xhdGluLUN5cmlsbGljO0N5cmlsbGljLUxhdGluO0FueS1IZXg7SGV4LUFueSI7CisgICAgICAgIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IgY3QxPW51bGw7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIGN0MT1uZXcgQ29tcG91bmRUcmFuc2xpdGVyYXRvcihJRCk7CisgICAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICBlcnJsbigiQ29tcG91bmRUcmFuc2xpdGVyYXRvciBjb25zdHJ1Y3Rpb24gZmFpbGVkIGZvciBJRD0iICsgSUQpOworICAgICAgICAgICAgdGhyb3cgaWFlOworICAgICAgICAgfQorICAgICAgICBpbnQgY291bnQ9Y3QxLmdldENvdW50KCk7CisgICAgICAgIFN0cmluZyBhcnJheVtdPXNwbGl0KElELCAnOycpOworICAgICAgICBpZiAoY291bnQgIT0gYXJyYXkubGVuZ3RoKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3I6IGdldENvdW50KCkgZmFpbGVkLiBFeHBlY3RlZDoiICsgYXJyYXkubGVuZ3RoICsgIiBnb3Q6IiArIGNvdW50KTsKKyAgICAgICAgfQorICAgICAgICBmb3IoaW50IGk9MDsgaSA8IGNvdW50OyBpKyspeworICAgICAgICAgICAgU3RyaW5nIGNoaWxkPSBjdDEuZ2V0VHJhbnNsaXRlcmF0b3IoaSkuZ2V0SUQoKTsKKyAgICAgICAgICAgIGlmKCFjaGlsZC5lcXVhbHMoYXJyYXlbaV0pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgZ2V0VHJhbnNsaXRlcmF0b3IoKSBmYWlsZWQ6IEV4cGVjdGVkLT4iICsgYXJyYXlbaV0gKyAiIEdvdC0+IiArIGNoaWxkKTsKKyAgICAgICAgICAgIH1lbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT0s6IGdldFRyYW5zbGl0ZXJhdG9yKCkgcGFzc2VkOiBFeHBlY3RlZC0+IiArIGFycmF5W2ldICsgIiBHb3QtPiIgKyBjaGlsZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAKKyAgICB9CisgCisgICAgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFRyYW5zbGl0ZXJhdGUoKXsKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgdGhlIGhhbmRsZVRyYW5zbGl0ZXJhdGUoKSBBUEkgb2YgQ29tcG91bmRUcmFuc2xpdGVyYXRvciIpOworICAgICAgICBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yIGN0MT1udWxsOworICAgICAgICB0cnl7CisgICAgICAgICAgICBjdDE9bmV3IENvbXBvdW5kVHJhbnNsaXRlcmF0b3IoIkFueS1IZXg7SGV4LUFueSIpOworICAgICAgICB9Y2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSl7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogY29uc3RydWN0aW9uIHVzaW5nIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IoU3RyaW5nIElEKSBmYWlsZWQgZm9yICIgKyAiQW55LUhleDtIZXgtQW55Iik7CisgICAgICAgICAgICB0aHJvdyBpYWU7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgU3RyaW5nIHM9ImFiY2FiYyI7CisgICAgICAgIGV4cGVjdChjdDEsIHMsIHMpOworICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBpbmRleCA9IG5ldyBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbigpOworICAgICAgICBSZXBsYWNlYWJsZVN0cmluZyByc291cmNlMj1uZXcgUmVwbGFjZWFibGVTdHJpbmcocyk7CisgICAgICAgIFN0cmluZyBleHBlY3RlZFJlc3VsdD1zOworICAgICAgICBjdDEudHJhbnNsaXRlcmF0ZShyc291cmNlMiwgaW5kZXgpOworICAgICAgICBjdDEuZmluaXNoVHJhbnNsaXRlcmF0aW9uKHJzb3VyY2UyLCBpbmRleCk7CisgICAgICAgIFN0cmluZyByZXN1bHQ9cnNvdXJjZTIudG9TdHJpbmcoKTsKKyAgICAgICAgZXhwZWN0QXV4KGN0MS5nZXRJRCgpICsgIjpSZXBsYWNlYWJsZVN0cmluZywgaW5kZXgoMCwwLDAsMCkiLCBzICsgIi0+IiArIHJzb3VyY2UyLCByZXN1bHQuZXF1YWxzKGV4cGVjdGVkUmVzdWx0KSwgZXhwZWN0ZWRSZXN1bHQpOworICAgICAKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24gaW5kZXgyID0gbmV3IFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uKDEsMywyLDMpOworICAgICAgICBSZXBsYWNlYWJsZVN0cmluZyByc291cmNlMz1uZXcgUmVwbGFjZWFibGVTdHJpbmcocyk7CisgICAgICAgIGN0MS50cmFuc2xpdGVyYXRlKHJzb3VyY2UzLCBpbmRleDIpOyAKKyAgICAgICAgY3QxLmZpbmlzaFRyYW5zbGl0ZXJhdGlvbihyc291cmNlMywgaW5kZXgyKTsKKyAgICAgICAgcmVzdWx0PXJzb3VyY2UzLnRvU3RyaW5nKCk7CisgICAgICAgIGV4cGVjdEF1eChjdDEuZ2V0SUQoKSArICI6U3RyaW5nLCBpbmRleDIoMSwyLDIsMykiLCBzICsgIi0+IiArIHJzb3VyY2UzLCByZXN1bHQuZXF1YWxzKGV4cGVjdGVkUmVzdWx0KSwgZXhwZWN0ZWRSZXN1bHQpOworCisgICAgICAgCisgICAgICAgIFN0cmluZyBEYXRhW109eworICAgICAgICAgICAgIC8vSUQsIGlucHV0IHN0cmluZywgdHJhbnNsaXRlcmF0ZWQgc3RyaW5nCisgICAgICAgICAgICAgIkFueS1IZXg7SGV4LUFueTtBbnktSGV4IiwgICAgICJoZWxsbyIsICAiXFx1MDA2OFxcdTAwNjVcXHUwMDZDXFx1MDA2Q1xcdTAwNkYiLCAKKyAgICAgICAgICAgICAiQW55LUhleDtIZXgtQW55IiwgICAgICAgICAgICAgICAgICJoZWxsbyEgSG93IGFyZSB5b3U/IiwgICJoZWxsbyEgSG93IGFyZSB5b3U/IiwKKyAgICAgICAgICAgICAiRGV2YW5hZ2FyaS1MYXRpbjtMYXRpbi1EZXZhbmFnYXJpIiwgICAgICAgIlx1MDkyRFx1MDk0OCdcdTA5MzAnXHUwOTM1IiwgICJcdTA5MkRcdTA5NDhcdTA5MzBcdTA5MzUiLCAvLyBxdW90ZXMgbG9zdAorICAgICAgICAgICAgICJMYXRpbi1DeXJpbGxpYztDeXJpbGxpYy1MYXRpbiIsICAgICAgICAgICAiYSdiJ2snZCdlJ2YnZydoJ2knaidTaGNoJ3NoY2gnemgnaCIsICJhJ2InaydkJ2UnZidnJ2gnaSdqJ1NoY2gnc2hjaCd6aCdoIiwKKyAgICAgICAgICAgICAiTGF0aW4tR3JlZWs7R3JlZWstTGF0aW4iLCAgICAgICAgICAgICAgICAgIkFCR2FiZ0FLTE1OIiwgIkFCR2FiZ0FLTE1OIiwKKyAgICAgICAgICAgICAvLyJMYXRpbi1BcmFiaWM7QXJhYmljLUxhdGluIiwgICAgICAgICAgICAgICAiQWQncidhJ2InaSdrJ2RoJ2RkJ2doIiwgIkFkcmFiaWtkaGRkZ2giLAorICAgICAgICAgICAgICJIaXJhZ2FuYS1LYXRha2FuYSIsICAgICAgICAgICAgICAgICAgICAgICAiXHUzMDQxXHUzMDhmXHUzMDk5XHUzMDZlXHUzMDRiXHUzMDkyXHUzMDk5IiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTMwQTFcdTMwZjdcdTMwY2VcdTMwYWJcdTMwZmEiLCAgCisgICAgICAgICAgICAgIkhpcmFnYW5hLUthdGFrYW5hO0thdGFrYW5hLUhpcmFnYW5hIiwgICAgICJcdTMwNDFcdTMwOGZcdTMwOTlcdTMwNmVcdTMwNGJcdTMwNTEiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MzA0MVx1MzA4Zlx1MzA5OVx1MzA2ZVx1MzA0Ylx1MzA1MSIsCisgICAgICAgICAgICAgIkthdGFrYW5hLUhpcmFnYW5hO0hpcmFnYW5hLUthdGFrYW5hIiwgICAgICJcdTMwQTFcdTMwZjdcdTMwY2VcdTMwZjVcdTMwZjYiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MzBBMVx1MzBmN1x1MzBjZVx1MzBhYlx1MzBiMSIsICAKKyAgICAgICAgICAgICAiTGF0aW4tS2F0YWthbmE7S2F0YWthbmEtTGF0aW4iLCAgICAgICAgICAgICAgICAgICAidmF2aXZ1dmV2b2h1eml6dXpvbmludW5hc2VzdXplenUiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhdml2dXZldm9odXppenV6b25pbnVuYXNlc3V6ZXp1IiwgIAorICAgICAgICB9OworICAgICAgICBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yIGN0Mj1udWxsOworICAgICAgICBmb3IoaW50IGk9MDsgaTxEYXRhLmxlbmd0aDsgaSs9Myl7CisgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgY3QyPW5ldyBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKERhdGFbaSswXSk7CisgICAgICAgICAgICB9Y2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZTIpeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yIGNvbnN0cnVjdGlvbiBmYWlsZWQgZm9yICIgKyBEYXRhW2krMF0pOworICAgICAgICAgICAgICAgIHRocm93IGlhZTI7CisgICAgICAgICAgICB9CisgICAgICAgIGV4cGVjdChjdDIsIERhdGFbaSsxXSwgRGF0YVtpKzJdKTsKKyAgICAgICAgfQorICAgCisgICAgfQorIAorCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gU3VwcG9ydCBtZXRob2RzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAgLyoqCisgICAgICogU3BsaXRzIGEgc3RyaW5nLAorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW10gc3BsaXQoU3RyaW5nIHMsIGNoYXIgZGl2aWRlcikgeworICAgICAgCisJLy8gc2VlIGhvdyBtYW55IHRoZXJlIGFyZQorICAgICAgICBpbnQgY291bnQgPSAxOworCWZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgKytpKSB7CisJICAgaWYgKHMuY2hhckF0KGkpID09IGRpdmlkZXIpICsrY291bnQ7CisJfQorCSAgICAKKwkvLyBtYWtlIGFuIGFycmF5IHdpdGggdGhlbQorCVN0cmluZ1tdIHJlc3VsdCA9IG5ldyBTdHJpbmdbY291bnRdOworCWludCBsYXN0ID0gMDsKKwlpbnQgY3VycmVudCA9IDA7CisJaW50IGk7CisJZm9yIChpID0gMDsgaSA8IHMubGVuZ3RoKCk7ICsraSkgeworCSAgICBpZiAocy5jaGFyQXQoaSkgPT0gZGl2aWRlcikgeworCSAgICAgICAgcmVzdWx0W2N1cnJlbnQrK10gPSBzLnN1YnN0cmluZyhsYXN0LGkpOworCSAgICAgICAgbGFzdCA9IGkrMTsKKwkgICAgfQorCX0KKwlyZXN1bHRbY3VycmVudCsrXSA9IHMuc3Vic3RyaW5nKGxhc3QsaSk7CisJcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZXhwZWN0KENvbXBvdW5kVHJhbnNsaXRlcmF0b3IgdCwgU3RyaW5nIHNvdXJjZSwgU3RyaW5nIGV4cGVjdGVkUmVzdWx0KSB7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSB0LnRyYW5zbGl0ZXJhdGUoc291cmNlKTsKKyAgICAgICAgZXhwZWN0QXV4KHQuZ2V0SUQoKSArICI6U3RyaW5nIiwgc291cmNlLCByZXN1bHQsIGV4cGVjdGVkUmVzdWx0KTsKKworICAgICAgICBSZXBsYWNlYWJsZVN0cmluZyByc291cmNlID0gbmV3IFJlcGxhY2VhYmxlU3RyaW5nKHNvdXJjZSk7CisgICAgICAgIHQudHJhbnNsaXRlcmF0ZShyc291cmNlKTsKKyAgICAgICAgcmVzdWx0ID0gcnNvdXJjZS50b1N0cmluZygpOworICAgICAgICBleHBlY3RBdXgodC5nZXRJRCgpICsgIjpSZXBsYWNlYWJsZSIsIHNvdXJjZSwgcmVzdWx0LCBleHBlY3RlZFJlc3VsdCk7CisKKyAgICAgICAgLy8gVGVzdCBrZXlib2FyZCAoaW5jcmVtZW50YWwpIHRyYW5zbGl0ZXJhdGlvbiAtLSB0aGlzIHJlc3VsdAorICAgICAgICAvLyBtdXN0IGJlIHRoZSBzYW1lIGFmdGVyIHdlIGZpbmFsaXplIChzZWUgYmVsb3cpLgorICAgICAgICByc291cmNlLnJlcGxhY2UoMCwgcnNvdXJjZS5sZW5ndGgoKSwgIiIpOworICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBpbmRleCA9IG5ldyBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbigpOworICAgICAgICBTdHJpbmdCdWZmZXIgbG9nID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxzb3VyY2UubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgaWYgKGkgIT0gMCkgeworICAgICAgICAgICAgICAgIGxvZy5hcHBlbmQoIiArICIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbG9nLmFwcGVuZChzb3VyY2UuY2hhckF0KGkpKS5hcHBlbmQoIiAtPiAiKTsKKyAgICAgICAgICAgIHQudHJhbnNsaXRlcmF0ZShyc291cmNlLCBpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcudmFsdWVPZihzb3VyY2UuY2hhckF0KGkpKSk7CisgICAgICAgICAgICAvLyBBcHBlbmQgdGhlIHN0cmluZyBidWZmZXIgd2l0aCBhIHZlcnRpY2FsIGJhciAnfCcgd2hlcmUKKyAgICAgICAgICAgIC8vIHRoZSBjb21taXR0ZWQgaW5kZXggaXMuCisgICAgICAgICAgICBTdHJpbmcgcyA9IHJzb3VyY2UudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGxvZy5hcHBlbmQocy5zdWJzdHJpbmcoMCwgaW5kZXguc3RhcnQpKS4KKyAgICAgICAgICAgICAgICBhcHBlbmQoJ3wnKS4KKyAgICAgICAgICAgICAgICBhcHBlbmQocy5zdWJzdHJpbmcoaW5kZXguc3RhcnQpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gQXMgYSBmaW5hbCBzdGVwIGluIGtleWJvYXJkIHRyYW5zbGl0ZXJhdGlvbiwgd2UgbXVzdCBjYWxsCisgICAgICAgIC8vIHRyYW5zbGl0ZXJhdGUgdG8gZmluaXNoIG9mZiBhbnkgcGVuZGluZyBwYXJ0aWFsIG1hdGNoZXMgdGhhdAorICAgICAgICAvLyB3ZXJlIHdhaXRpbmcgZm9yIG1vcmUgaW5wdXQuCisgICAgICAgIHQuZmluaXNoVHJhbnNsaXRlcmF0aW9uKHJzb3VyY2UsIGluZGV4KTsKKyAgICAgICAgcmVzdWx0ID0gcnNvdXJjZS50b1N0cmluZygpOworICAgICAgICBsb2cuYXBwZW5kKCIgPT4gIikuYXBwZW5kKHJzb3VyY2UudG9TdHJpbmcoKSk7CisgICAgICAgIGV4cGVjdEF1eCh0LmdldElEKCkgKyAiOktleWJvYXJkIiwgbG9nLnRvU3RyaW5nKCksCisgICAgICAgICAgICAgICAgIHJlc3VsdC5lcXVhbHMoZXhwZWN0ZWRSZXN1bHQpLAorICAgICAgICAgICAgICAgICBleHBlY3RlZFJlc3VsdCk7CisKKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGV4cGVjdEF1eChTdHJpbmcgdGFnLCBTdHJpbmcgc291cmNlLAorICAgICAgICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCwgU3RyaW5nIGV4cGVjdGVkUmVzdWx0KSB7CisgICAgICAgIGV4cGVjdEF1eCh0YWcsIHNvdXJjZSArICIgLT4gIiArIHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgcmVzdWx0LmVxdWFscyhleHBlY3RlZFJlc3VsdCksCisgICAgICAgICAgICAgICAgIGV4cGVjdGVkUmVzdWx0KTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZXhwZWN0QXV4KFN0cmluZyB0YWcsIFN0cmluZyBzdW1tYXJ5LCBib29sZWFuIHBhc3MsIFN0cmluZyBleHBlY3RlZFJlc3VsdCkgeworICAgICAgICBpZiAocGFzcykgeworICAgICAgICAgICAgbG9nbG4oIigiICsgdGFnICsgIikgIiArIFV0aWxpdHkuZXNjYXBlKHN1bW1hcnkpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAoIiArIHRhZysgIikgIgorICAgICAgICAgICAgICAgICsgVXRpbGl0eS5lc2NhcGUoc3VtbWFyeSkKKyAgICAgICAgICAgICAgICArICIsIGV4cGVjdGVkICIgKyBVdGlsaXR5LmVzY2FwZShleHBlY3RlZFJlc3VsdCkpOworICAgICAgICB9CisgICAgfSAgCit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9FcnJvclRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9FcnJvclRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44NzdjYmZkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L0Vycm9yVGVzdC5qYXZhCkBAIC0wLDAgKzEsMjI3IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L0Vycm9yVGVzdC5qYXZhLHYgJAorICogJERhdGU6IDIwMDIvMDgvMTMgMjI6MDc6NTggJAorICogJFJldmlzaW9uOiAxLjUgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudHJhbnNsaXQ7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworCisvKioKKyAqIEB0ZXN0CisgKiBAc3VtbWFyeSBFcnJvciBjb25kaXRpb24gdGVzdCBvZiBUcmFuc2xpdGVyYXRvcgorICovCitwdWJsaWMgY2xhc3MgRXJyb3JUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgRXJyb3JUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RUcmFuc2xpdGVyYXRvckVycm9ycygpIHsKKyAgICAgICAgU3RyaW5nIHRyYW5zPSJMYXRpbi1HcmVlayI7CisgICAgICAgIFN0cmluZyBib2d1c0lEPSJMQVRJTkdSRUVLLUdSRUVLTEFUSU4iOworICAgICAgICBTdHJpbmcgbmV3SUQ9IkJvZ3VzLUxhdGluIjsKKyAgICAgICAgU3RyaW5nIG5ld0lEUnVsZXM9Inp6eiA+IFo7IGYgPD4gcGgiOworICAgICAgICBTdHJpbmcgYm9ndXNSdWxlcz0iYSB9IFtiLWcgbS1wICI7CisgICAgICAgIFJlcGxhY2VhYmxlU3RyaW5nIHRlc3RTdHJpbmc9IG5ldyBSZXBsYWNlYWJsZVN0cmluZygiQSBxdWljayBmb3gganVtcGVkIG92ZXIgdGhlIGxhenkgZG9nLiIpOworICAgICAgICBTdHJpbmcgaW5zZXJ0U3RyaW5nPSJjYXRzIGFuZCBkb2dzIjsKKyAgICAgICAgaW50IHN0b3BwZWRBdCA9IDAsIGxlbjsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24gcG9zID0gbmV3IFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uKCk7CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdD0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UodHJhbnMsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBpZih0PT1udWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjb25zdHJ1Y3Rpb24gb2YgTGF0aW4tR3JlZWsiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBsZW4gPSB0ZXN0U3RyaW5nLmxlbmd0aCgpOworICAgICAgICBzdG9wcGVkQXQgPSB0LnRyYW5zbGl0ZXJhdGUodGVzdFN0cmluZywgMCwgMTAwKTsKKyAgICAgICAgaWYgKHN0b3BwZWRBdCAhPSAtMSkgeworICAgICAgICAgICBlcnJsbigiRkFJTDogT3V0IG9mIGJvdW5kcyBjaGVjayBmYWlsZWQgKDEpLiIpOworICAgICAgICB9IGVsc2UgaWYgKHRlc3RTdHJpbmcubGVuZ3RoKCkgIT0gbGVuKSB7CisgICAgICAgICAgIHRlc3RTdHJpbmc9IG5ldyBSZXBsYWNlYWJsZVN0cmluZygiQSBxdWljayBmb3gganVtcGVkIG92ZXIgdGhlIGxhenkgZG9nLiIpOyAgICAgICAgCisgICAgICAgICAgIGVycmxuKCJGQUlMOiBUcmFuc2xpdGVyYXRlIGZhaWxzIGFuZCB0aGUgdGFyZ2V0IHN0cmluZyB3YXMgbW9kaWZpZWQuIik7CisgICAgICAgIH0KKyAgICAgICAgc3RvcHBlZEF0ID0gdC50cmFuc2xpdGVyYXRlKHRlc3RTdHJpbmcsIDEwMCwgdGVzdFN0cmluZy5sZW5ndGgoKS0xKTsKKyAgICAgICAgaWYgKHN0b3BwZWRBdCAhPSAtMSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IE91dCBvZiBib3VuZHMgY2hlY2sgZmFpbGVkICgyKS4iKTsKKyAgICAgICAgfSBlbHNlIGlmICh0ZXN0U3RyaW5nLmxlbmd0aCgpICE9IGxlbikgeworICAgICAgICAgICAgdGVzdFN0cmluZz1uZXcgUmVwbGFjZWFibGVTdHJpbmcoIkEgcXVpY2sgZm94IGp1bXBlZCBvdmVyIHRoZSBsYXp5IGRvZy4iKTsgICAgICAgIAorICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRyYW5zbGl0ZXJhdGUgZmFpbHMgYW5kIHRoZSB0YXJnZXQgc3RyaW5nIHdhcyBtb2RpZmllZC4iKTsKKwl9CisgICAgICAgIHBvcy5zdGFydCA9IDEwMDsKKyAgICAgICAgcG9zLmxpbWl0ID0gdGVzdFN0cmluZy5sZW5ndGgoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHQudHJhbnNsaXRlcmF0ZSh0ZXN0U3RyaW5nLCBwb3MpOworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFN0YXJ0IG9mZnNldCBpcyBvdXQgb2YgYm91bmRzLCBlcnJvciBub3QgcmVwb3J0ZWQuIik7CisgICAgICAgIH0gY2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKwkgICAgbG9nbG4oIlN0YXJ0IG9mZnNldCBpcyBvdXQgb2YgYm91bmRzIGFuZCBkZXRlY3RlZC4iKTsKKyAgICAgICAgfQorICAgICAgICBwb3MubGltaXQgPSAxMDA7CisgICAgICAgIHBvcy5zdGFydCA9IDA7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHQudHJhbnNsaXRlcmF0ZSh0ZXN0U3RyaW5nLCBwb3MgKTsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBMaW1pdCBvZmZzZXQgaXMgb3V0IG9mIGJvdW5kcywgZXJyb3Igbm90IHJlcG9ydGVkLlxuIik7CisgICAgICAgIH0gY2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKwkgICAgbG9nbG4oIlN0YXJ0IG9mZnNldCBpcyBvdXQgb2YgYm91bmRzIGFuZCBkZXRlY3RlZC4iKTsKKyAgICAgICAgfQorICAgICAgICBsZW4gPSBwb3MuY29udGV4dExpbWl0ID0gdGVzdFN0cmluZy5sZW5ndGgoKTsKKyAgICAgICAgcG9zLmNvbnRleHRTdGFydCA9IDA7CisgICAgICAgIHBvcy5saW1pdCA9IGxlbiAtIDE7CisgICAgICAgIHBvcy5zdGFydCA9IDU7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB0LnRyYW5zbGl0ZXJhdGUodGVzdFN0cmluZywgcG9zLCBpbnNlcnRTdHJpbmcpOworICAgICAgICAgICAgaWYgKGxlbiA9PSBwb3MubGltaXQpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogVGVzdCBpbnNlcnRpb24gd2l0aCBzdHJpbmc6IHRoZSB0cmFuc2xpdGVyYXRpb24gcG9zaXRpb24gbGltaXQgZGlkbid0IGNoYW5nZSBhcyBleHBlY3RlZC4iKTsKKwkgICAgfQorICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkluc2VydGlvbiB0ZXN0IHdpdGggc3RyaW5nIGZhaWxlZCBmb3Igc29tZSByZWFzb24uIik7CisJfQorICAgICAgICBwb3MuY29udGV4dFN0YXJ0ID0gMDsKKyAgICAgICAgcG9zLmNvbnRleHRMaW1pdCA9IHRlc3RTdHJpbmcubGVuZ3RoKCk7CisgICAgICAgIHBvcy5saW1pdCA9IHRlc3RTdHJpbmcubGVuZ3RoKCkgLTE7CisgICAgICAgIHBvcy5zdGFydCA9IDU7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB0LnRyYW5zbGl0ZXJhdGUodGVzdFN0cmluZywgcG9zLCAweDAwNjEpOworICAgICAgICAgICAgaWYgKGxlbiA9PSBwb3MubGltaXQpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogVGVzdCBpbnNlcnRpb24gd2l0aCBjaGFyYWN0ZXI6IHRoZSB0cmFuc2xpdGVyYXRpb24gcG9zaXRpb24gbGltaXQgZGlkbid0IGNoYW5nZSBhcyBleHBlY3RlZC4iKTsKKwkgICAgfQorICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IEluc2VydGlvbiB0ZXN0IHdpdGggVVRGLTE2IGNvZGUgcG9pbnQgZmFpbGVkIGZvciBzb21lIHJlYXNvbi4iKTsKKwl9CisgICAgICAgIGxlbiA9IHBvcy5saW1pdCA9IHRlc3RTdHJpbmcubGVuZ3RoKCk7CisgICAgICAgIHBvcy5jb250ZXh0U3RhcnQgPSAwOworICAgICAgICBwb3MuY29udGV4dExpbWl0ID0gdGVzdFN0cmluZy5sZW5ndGgoKSAtIDE7CisgICAgICAgIHBvcy5zdGFydCA9IDU7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB0LnRyYW5zbGl0ZXJhdGUodGVzdFN0cmluZywgcG9zLCBpbnNlcnRTdHJpbmcpOworICAgICAgICAgICAgZXJybG4oIkZBSUw6IE91dCBvZiBib3VuZHMgY2hlY2sgZmFpbGVkICgzKS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0U3RyaW5nLmxlbmd0aCgpICE9IGxlbikgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUaGUgaW5wdXQgc3RyaW5nIHdhcyBtb2RpZmllZCB0aG91Z2ggdGhlIG9mZnNldHMgd2VyZSBvdXQgb2YgYm91bmRzLiIpOworCSAgICB9CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbigiSW5zZXJ0aW9uIHRlc3Qgd2l0aCBvdXQgb2YgYm91bmRzIGluZGV4ZXMuIik7CisJfQorICAgICAgICBUcmFuc2xpdGVyYXRvciB0MSA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB0MT0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoYm9ndXNJRCwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgICAgICBpZih0MSE9bnVsbCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjb25zdHJ1Y3Rpb24gb2YgYm9ndXMgSUQgXCJMQVRJTkdSRUVLLUdSRUVLTEFUSU5cIiIpOyAKKwkgICAgfQorCX0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7IH0KKworICAgICAgICAvL3RyeSB7IC8vIHVubmVlZGVkIC0gRXhjZXB0aW9uIGNhbm5vdCBiZSB0aHJvd24KKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQyID0gbmV3IFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yKG5ld0lELCBuZXdJRFJ1bGVzKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDMgPSB0Mi5nZXRJbnZlcnNlKCk7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRoZSBuZXdJRCB0cmFuc2xpdGVyYXRvciB3YXMgbm90IHJlZ2lzdGVyZWQgc28gY3JlYXRlSW52ZXJzZSBzaG91bGQgZmFpbC4iKTsKKwkJfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsgfQorICAgICAgICAvL30gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7IH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQ0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKG5ld0lELCBib2d1c1J1bGVzLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgICAgIGlmICh0NCAhPSBudWxsICkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUaGUgcnVsZXMgaXMgbWFsZm9ybWVkIGJ1dCBlcnJvciB3YXMgbm90IHJlcG9ydGVkLiIpOyAKKwkgICAgfQorCX0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7IH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0VW5pY29kZVNldEVycm9ycygpIHsKKyAgICAgICAgU3RyaW5nIGJhZFBhdHRlcm49IltbOkw6XS1bMHgwMzAwLTB4MDQwMF0iOworICAgICAgICBVbmljb2RlU2V0IHNldCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIFN0cmluZyByZXN1bHQ7CisKKyAgICAgICAgaWYgKCFzZXQuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVGhlIGRlZmF1bHQgY3RvciBvZiBVbmljb2RlU2V0IGNyZWF0ZWQgYSBub24tZW1wdHkgb2JqZWN0LiIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzZXQuYXBwbHlQYXR0ZXJuKGJhZFBhdHRlcm4pOworICAgICAgICAgICAgZXJybG4oIkZBSUw6IEFwcGxpZWQgYSBiYWQgcGF0dGVybiB0byB0aGUgVW5pY29kZVNldCBvYmplY3Qgb2theS4iKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJUZXN0IGFwcGx5aW5nIHdpdGggdGhlIGJhZCBwYXR0ZXJuLiIpOworCX0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgc2V0MSA9IG5ldyBVbmljb2RlU2V0KGJhZFBhdHRlcm4pOworICAgICAgICAgICAgZXJybG4oIkZBSUw6IENyZWF0ZWQgYSBVbmljb2RlU2V0IGJhc2VkIG9uIGJhZCBwYXR0ZXJucy4iKTsKKwl9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nbG4oIlRlc3QgY29uc3RydWN0aW5nIHdpdGggdGhlIGJhZCBwYXR0ZXJuLiIpOworCX0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0VW5pVG9IZXhFcnJvcnMoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgdCA9IG5ldyBVbmljb2RlVG9IZXhUcmFuc2xpdGVyYXRvcigiIiwgdHJ1ZSwgbnVsbCk7CisgICAgICAgICAgICBpZiAodCAhPSBudWxsKSB7ICAgIAorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDcmVhdGVkIGEgVW5pY29kZVRvSGV4VHJhbnNsaXRlcmF0b3Igd2l0aCBhbiBlbXB0eSBwYXR0ZXJuLiIpOworCSAgICB9CisJfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgdCA9IG5ldyBVbmljb2RlVG9IZXhUcmFuc2xpdGVyYXRvcigiXFx4IiwgdHJ1ZSwgbnVsbCk7CisJICAgIGlmICh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogQ3JlYXRlZCBhIFVuaWNvZGVUb0hleFRyYW5zbGl0ZXJhdG9yIHdpdGggYSBiYWQgcGF0dGVybi4iKTsKKwkgICAgfQorCX0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7IH0KKyAgICAgICAgdCA9IG5ldyBVbmljb2RlVG9IZXhUcmFuc2xpdGVyYXRvcigpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgKChVbmljb2RlVG9IZXhUcmFuc2xpdGVyYXRvcil0KS5hcHBseVBhdHRlcm4oIlxceCIpOworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFVuaWNvZGVUb0hleFRyYW5zbGl0ZXJhdG9yOjphcHBseVBhdHRlcm4gc3VjY2VlZGVkIHdpdGggYSBiYWQgcGF0dGVybi4iKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RSQlRFcnJvcnMoKSB7CisKKyAgICAgICAgU3RyaW5nIHJ1bGVzPSJhYj55IjsKKyAgICAgICAgU3RyaW5nIGlkPSJNeVJhbmRvbS1ZUmV2ZXJzZSI7CisgICAgICAgIFN0cmluZyBnb29kUGF0dGVybj0iW1s6TDpdJltcXHUwMDAwLVxcdUZGRkZdXSI7IC8qIGFsbCBCTVAgbGV0dGVycyAqLworICAgICAgICBVbmljb2RlU2V0IHNldCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzZXQgPSBuZXcgVW5pY29kZVNldChnb29kUGF0dGVybik7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yIHQgPSBuZXcgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IoaWQsIHJ1bGVzLCBUcmFuc2xpdGVyYXRvci5SRVZFUlNFLCBzZXQpOworICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyQ2xhc3MoaWQsIHQuZ2V0Q2xhc3MoKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IudW5yZWdpc3RlcihpZCk7ICAKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0MT0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoaWQsIFRyYW5zbGl0ZXJhdG9yLlJFVkVSU0UpOworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogY29uc3RydWN0aW9uIG9mIHVucmVnaXN0ZXJlZCBJRCBzaG91bGQgaGF2ZSBmYWlsZWQuIik7CisJICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeyB9CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFdhcyBub3QgYWJsZSB0byBjcmVhdGUgYSBnb29kIFJCVCB0byB0ZXN0IHJlZ2lzdHJhdGlvbi4iKTsKKwkgICAgfQorICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFdhcyBub3QgYWJsZSB0byBjcmVhdGUgYSBnb29kIFVuaWNvZGVTZXQgYmFzZWQgb24gdmFsaWQgcGF0dGVybnMuIik7CisgICAgICAgICAgICByZXR1cm47CisJfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RIZXhUb1VuaUVycm9ycygpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IG51bGw7CisgICAgICAgIC8vdHJ5IHsgLy8gdW5uZWVkZWQgLSBleGNlcHRpb24gY2Fubm90IGJlIHRocm93bgorICAgICAgICAgICAgdCA9IG5ldyBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvcigiIiwgbnVsbCk7CisgICAgICAgIC8vfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgLy8gICAgZXJybG4oIkZBSUw6IENvdWxkIG5vdCBjcmVhdGUgYSBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvciB3aXRoIGFuIGVtcHR5IHBhdHRlcm4uIik7CisgICAgICAgIC8vfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgdCA9IG5ldyBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvcigiXFx4IiwgbnVsbCk7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogQ3JlYXRlZCBhIEhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yIHdpdGggYSBiYWQgcGF0dGVybi4iKTsKKwl9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeyB9CisKKyAgICAgICAgdCA9IG5ldyBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvcigpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgKChIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvcil0KS5hcHBseVBhdHRlcm4oIlxceCIpOworICAgICAgICAgICAgZXJybG4oIkZBSUw6IEhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yOjphcHBseVBhdHRlcm4gc3VjY2VlZGVkIHdpdGggYSBiYWQgcGF0dGVybi4iKTsKKwl9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeyB9CisgICAgfQorfQorCisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9IZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvclRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9IZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvclRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jYWU4ZGRiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L0hleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yVGVzdC5qYXZhCkBAIC0wLDAgKzEsMjYyIEBACisKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9BdHRpYy9IZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvclRlc3QuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8yNSAyMjo0Mzo1NyAkIAorICogJFJldmlzaW9uOiAxLjUgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnRyYW5zbGl0OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgamF2YS50ZXh0Lio7CitpbXBvcnQgamF2YS51dGlsLio7CisKKworLyoqCisgKiBAdGVzdAorICogQHN1bW1hcnkgR2VuZXJhbCB0ZXN0IG9mIEhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yCisgKi8KK3B1YmxpYyBjbGFzcyBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvclRlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IEhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFVzZWQgYnkgVGVzdENvbnN0cnVjdGlvbigpIGFuZCBUZXN0VHJhbnNsaXRlcmF0ZS4KKyAgICAqLworICAgIFVuaWNvZGVGaWx0ZXIgSGV4RmlsdGVyPW5ldyBVbmljb2RlRmlsdGVyKCkgeworICAgICAgICBwdWJsaWMgYm9vbGVhbiBjb250YWlucyhpbnQgYykgeworICAgICAgICAgICAgaWYoYyA9PSAweDAwNjEgfHwgYyA9PSAweDAwNjMgKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICB9CisgICAgfTsKKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb25zdHJ1Y3Rpb24oKXsKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgdGhlIGNvbnN0cnVjdGlvbiBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvcigpIik7CisgICAgICAgIEhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yIHRyYW5zMT1uZXcgSGV4VG9Vbmljb2RlVHJhbnNsaXRlcmF0b3IoKTsKKyAgICAgICAKKworICAgICAgICBsb2dsbigiVGVzdGluZyB0aGUgY29zbnRydWN0aW9uIEhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yKHBhdHRlcm4pIik7CisgICAgICAgIFN0cmluZyBwYXR0ZXJuPSJcXFxcVSswMDAwYWJjIjsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgdHJhbnMxPW5ldyBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvcihwYXR0ZXJuKTsKKyAgICAgICAgfWNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBleDIpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvciBjb25zdHJ1Y3Rpb24gZmFpbGVkIHdpdGggcGF0dGVybj0iICsgcGF0dGVybiArICIgRXhjZXB0aW9uPSAiICsgZXgyLnRvU3RyaW5nKCkpOworICAgICAgICB9CisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgdGhlIGNvc250cnVjdGlvbiBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvcihwYXR0ZXJuKSB3aXRoIGlsbGVnYWwgcGF0dGVybiIpOworICAgICAgICBTdHJpbmcgcGF0dGVybjI9IlxcWCsiOworICAgICAgICB0cnl7CisgICAgICAgICAgICB0cmFuczE9bmV3IEhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yKHBhdHRlcm4yKTsKKyAgICAgICAgfWNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBleDMpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPSzogY29uc3RydWN0aW9uIHdpdGggSWxsZWdhbCBwYXR0ZXJuIGhhbmRsZWQgY29ycmVjdGx5Iik7CisgICAgICAgIH0gIAorICAgICAgICAKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgdGhlIGNvbnN0cnVjdGlvbiBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvcihwYXR0ZXJuLCBhZG9wdGVkRmlsdGVyPW51bGwpIik7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIHRyYW5zMT1uZXcgSGV4VG9Vbmljb2RlVHJhbnNsaXRlcmF0b3IocGF0dGVybiwgbnVsbCk7CisgICAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXg0KSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogSGV4VG9Vbmljb2RlVHJhbnNsaXRlcmF0b3IocGF0dGVybiwgYWRvcHRlZEZpbHRlcj1udWxsKSBjb25zdHJ1Y3Rpb24gZmFpbGVkLiBFeGNlcHRpb249ICIgKyBleDQudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKworICAgICAgICBsb2dsbigiVGVzdGluZyB0aGUgY29uc3RydWN0aW9uIEhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yKHBhdHRlcm4sIGFkb3B0ZWRGaWx0ZXIpIik7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIHRyYW5zMT1uZXcgSGV4VG9Vbmljb2RlVHJhbnNsaXRlcmF0b3IocGF0dGVybiwgSGV4RmlsdGVyKTsKKyAgICAgICAgfWNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBleDQpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvcihwYXR0ZXJuLCBhZG9wdGVkRmlsdGVyKSBjb25zdHJ1Y3Rpb24gZmFpbGVkLiBFeGNlcHRpb249ICIgKyBleDQudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0UGF0dGVybigpeworICAgICAgICBsb2dsbigiVGVzdGluZyB0aGUgYXBwbHlQYXR0ZXJuKCkgYW5kIHRvUGF0dGVybigpIEFQSSBvZiBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvciIpOworICAgICAgICAvKmRlZmF1bHQgdHJhbnNsaXRlcmF0b3IgaGFzIHBhdHRlcm4gXFx1MDAwMCovCisgICAgICAgIEhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yIHRyYW5zZGVmYXVsdD1uZXcgSGV4VG9Vbmljb2RlVHJhbnNsaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgU3RyaW5nIGRlZmF1bHRwYXR0ZXJuPXRyYW5zZGVmYXVsdC50b1BhdHRlcm4oKTsKKyAgICAgICAgU3RyaW5nIHBhdHRlcm4xPSJcXFxcVSswMDAwIjsKKyAgICAgICAgCisgICAgICAgIEhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yIHRyYW5zMT1udWxsOworICAgICAgICB0cnl7CisgICAgICAgICAgICB0cmFuczE9bmV3IEhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yKHBhdHRlcm4xLCBudWxsKTsKKyAgICAgICAgfWNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBleDEpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvciBjb25zdHJ1Y3Rpb24gZmFpbGVkIHdpdGggcGF0dGVybiA9IiArIHBhdHRlcm4xICsKKyAgICAgICAgICAgICAgICAgICAiRXhjZXB0aW9uOiIgKyBleDEudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKworICAgICAgICAvKnRlc3QgdG9QYXR0ZXJuKCkgKi8KKyAgICAgICAgaWYodHJhbnNkZWZhdWx0LnRvUGF0dGVybigpLmVxdWFscyh0cmFuczEudG9QYXR0ZXJuKCkpID09IHRydWUgfHwKKyAgICAgICAgICAgIHRyYW5zZGVmYXVsdC50b1BhdHRlcm4oKS5lcXVhbHMoIlxcXFx1MDAwMDtcXFxcVTAwMDA7dSswMDAwO1UrMDAwMCIpICE9IHRydWUgfHwKKyAgICAgICAgICAgIHRyYW5zMS50b1BhdHRlcm4oKS5lcXVhbHMocGF0dGVybjEpICE9IHRydWUgKXsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvcjogdG9QYXR0ZXJuKCkgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICAvKmFwcGx5IHBhdHRlcm5zIGZvciB0cmFuc2RlZmF1bHQqLworICAgICAgICBTdHJpbmcgc3RyPSJhYktmIjsKKyAgICAgICAgZXhwZWN0UGF0dGVybih0cmFuc2RlZmF1bHQsICBwYXR0ZXJuMSwgIlxcVSswMDYxXFxVKzAwNjJcXFUrMDA0QlxcVSswMDY2Iiwgc3RyKTsKKyAgICAgICAgZXhwZWN0UGF0dGVybih0cmFuc2RlZmF1bHQsICAiXFxVIyMwMCwiLCAiVTYxLFU2MixVNEIsVTY2LCIsIHN0cik7CisgICAgICAgIGV4cGVjdFBhdHRlcm4odHJhbnNkZWZhdWx0LCBkZWZhdWx0cGF0dGVybiwgIlxcdTAwNjFcXHUwMDYyXFx1MDA0QlxcdTAwNjYiLCBzdHIpOworICAgICAgICBleHBlY3RQYXR0ZXJuKHRyYW5zMSwgIlxcdW5pMDAwMCIsICJ1bmkwMDYxdW5pMDA2MnVuaTAwNEJ1bmkwMDY2Iiwgc3RyKTsKKyAgICAgICAgZXhwZWN0UGF0dGVybih0cmFuczEsICJcXFxcUy0wMDAwLUUiLCAiXFxTLTAwNjEtRVxcUy0wMDYyLUVcXFMtMDA0Qi1FXFxTLTAwNjYtRSIsIHN0cik7CisgICAgICAgIAorICAgICAgICBleHBlY3RQYXR0ZXJuKHRyYW5zMSwgIlxcXFxTLTAwMDAtRSIsICJcXFMtMDA2MS1FXFxTLTAwNjItRVxcUy0wMDRCLUVcXFMtMDA2Ni1FIiwgIHN0cik7CisgICAgICAgIGV4cGVjdFBhdHRlcm4odHJhbnMxLCAiXFx1IyMwMDAwIiwgIlxcdSMjMDA2MVxcdSMjMDA2MiIsICJGQUlMIik7CisgICAgICAgIGV4cGVjdFBhdHRlcm4odHJhbnMxLCAiXFwqMDAwMCIsICAiKjAwNjEqMDA2MiowMDRCKjAwNjYiLCAgc3RyKTsgCisgICAgICAgIGV4cGVjdFBhdHRlcm4odHJhbnMxLCAiXFx1IyMjIyIsICJcXHUjIzAwNjFcXHUjIzAwNjIiLCAiRkFJTCIpOworICAKKworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RTaW1wbGVUcmFuc2xpdGVyYXRlKCl7IAorICAgICAgICBTdHJpbmcgcGF0dGVybjE9IlxcXFxVKzAwMDAiOworICAgICAgICBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvciB0cmFuczE9bnVsbDsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgdHJhbnMxPW5ldyBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvcihwYXR0ZXJuMSwgbnVsbCk7CisgICAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKXsKKyAgICAgICAgICAgIGVycmxuKCJIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvcihwYXR0ZXJuMSwgbnVsbCkgY29uc3RydWN0aW9uIGZhaWxlZCB3aXRoIHBhdHRlcm4gPSIgCisgICAgICAgICAgICAgICAgICArIHBhdHRlcm4xICsgIkV4Y2VwdGlvbjoiICsgaWFlLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgICAgIFN0cmluZyBzb3VyY2U9IkhlXFxVKzAwNkNcXFUrMDA2Q1xcVSswMDZGIjsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkPSJIZWxsbyI7CisKKyAgICAgICAgZXhwZWN0VHJhbnNsaXQodHJhbnMxLCAiOlJlcGxhY2VhYmxlICIsIHNvdXJjZSwgIDEsIHNvdXJjZS5sZW5ndGgoKSwgMiwgZXhwZWN0ZWQpOyAKKyAgICAgICAgZXhwZWN0KHRyYW5zMSwgIiIsICJcXFUrMDA0OFxcVSswMDY1XFxVKzAwNkNcXFUrMDA2Q1xcVSswMDZGIiwgZXhwZWN0ZWQpOworCisgICAgICAgIEhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yIHRyYW5zZGVmYXVsdD1uZXcgSGV4VG9Vbmljb2RlVHJhbnNsaXRlcmF0b3IoKTsKKyAgICAgICAgCisgICAgICAgIEhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yIHRyYW5zMj1udWxsOworICAgICAgICB0cnl7CisgICAgICAgICAgICB0cmFuczI9bmV3IEhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yKHRyYW5zZGVmYXVsdC50b1BhdHRlcm4oKSwgSGV4RmlsdGVyKTsKKyAgICAgICAgfWNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBleDIpeworICAgICAgICAgICAgZXJybG4oIkhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yKHBhdHRlcm4xLCBIZXhGaWx0ZXIpIGNvbnN0cnVjdGlvbiBmYWlsZWQgd2l0aCBwYXR0ZXJuID0iIAorICAgICAgICAgICAgICAgICAgKyBwYXR0ZXJuMSArICJFeGNlcHRpb246IiArIGV4Mi50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgICAgICBleHBlY3QodHJhbnMyLCAid2l0aCBGaWx0ZXIoMHgwMDYxLCAweDAwNjMpICIsICJcdTAwNjFcdTAwNjJcdTAwNjMiLCAgICJcdTAwNjFiXHUwMDYzIik7CisgICAgfQorICAgCisgICAgcHVibGljIHZvaWQgVGVzdFRyYW5zbGl0ZXJhdGUoKXsKKyAgICAgICAgU3RyaW5nIERhdGFbXT17CisgICAgICAgICAgICAvL3BhdHRlcm4sIHNvdXJjZSwgaW5kZXguY29udGV4dFN0YXJ0LCBpbmRleC5jb250ZXh0TGltaXQsIGluZGV4LnN0YXJ0LCBleHBlY3RlZFJlc3VsdCwKKyAgICAgICAvLyAgICAgIlUrIyMwMCIsICAgICJhYlUrNjMiLCAiMSIsICI3IiwgIjIiLCAgImFiYyIsIAorICAgICAgICAgICAgIlxcXFx1MDAwMCIsICJhXFx1MDA2MmMiLCAiMSIsICI3IiwgIjEiLCAgImFiYyIsIAorICAgICAgICAgICAgIlVuaTAwMDAiLCAgICJhYlVuaTAwNjMiLCAiMSIsICI5IiwgIjIiLCAgImFiYyIsIAorICAgICAgICAgICAgIlVbMDAwMF0iLCAgICJoZVVbMDA2Q11VWzAwNkNdbyIsICIwIiwgIjE2IiwgIjIiLCAiaGVsbG8iLCAKKyAgICAgICAvLyAgICAgInByZWZpeC0wMDAwLXN1ZmZpeCIsICJhcHJlZml4LTAwNjItc3VmZml4cHJlZml4LTAwNjMtc3VmZml4IiwgIjEiLCAiMzkiLCAiMSIsICJhYmMiLCAKKyAgICAgICAgICAgICIqIyMwMCoiLCAgICAiaGVsbCo2RioqNzQqKjY4Kio2NSpyZSIsICAiMSIsICIyMCIsICI0IiwgImhlbGxvdGhlcmUiLCAKKworICAgICAgICB9OworICAgICAgICBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvciB0cmFuczE9bnVsbDsKKyAgICAgICAgZm9yKGludCBpPTA7IGk8RGF0YS5sZW5ndGg7IGkrPTYpeworICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgIHRyYW5zMT1uZXcgSGV4VG9Vbmljb2RlVHJhbnNsaXRlcmF0b3IoRGF0YVtpKzBdLCBudWxsKTsKKyAgICAgICAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXgxKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiSGV4VG9Vbmljb2RlVHJhbnNsaXRlcmF0b3IocGF0dGVybjEsIG51bGwpIGNvbnN0cnVjdGlvbiBmYWlsZWQgd2l0aCBwYXR0ZXJuID0iIAorICAgICAgICAgICAgICAgICAgICAgKyBEYXRhW2krMF0gKyAiRXhjZXB0aW9uOiIgKyBleDEudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBleHBlY3RUcmFuc2xpdCh0cmFuczEsICIiLCBEYXRhW2krMV0sIEludGVnZXIucGFyc2VJbnQoRGF0YVtpKzJdKSwgCisgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIucGFyc2VJbnQoRGF0YVtpKzNdKSwgSW50ZWdlci5wYXJzZUludChEYXRhW2krNF0pLCBEYXRhW2krNV0gKTsKKyAgICAgICAgICAgIGV4cGVjdCh0cmFuczEsICIiLCBEYXRhW2krMV0sIERhdGFbaSs1XSk7CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIFN1cHBvcnQgbWV0aG9kcworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgcHJpdmF0ZSB2b2lkIGV4cGVjdFRyYW5zbGl0KEhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yIHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlLCBTdHJpbmcgc291cmNlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0LCBpbnQgbGltaXQsIGludCBjdXJzb3IsICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGV4cGVjdGVkUmVzdWx0KXsKKyAgICAKKworICAgICAgICBSZXBsYWNlYWJsZVN0cmluZyByc291cmNlID0gbmV3IFJlcGxhY2VhYmxlU3RyaW5nKHNvdXJjZSk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uIGluZGV4ID0gbmV3IFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uKHN0YXJ0LCBsaW1pdCwgY3Vyc29yLCBsaW1pdCk7CisgICAgICAgIHQudHJhbnNsaXRlcmF0ZShyc291cmNlLCBpbmRleCk7CisgICAgICAgIHQuZmluaXNoVHJhbnNsaXRlcmF0aW9uKHJzb3VyY2UsIGluZGV4KTsKKyAgICAgICAgU3RyaW5nIHJlc3VsdD1yc291cmNlLnRvU3RyaW5nKCk7CisgICAgICAgIGV4cGVjdEF1eCh0LmdldElEKCkgKyAiOmtleWJvYXJkICIgKyBtZXNzYWdlLCBzb3VyY2UgKyAiLT4iICsgcmVzdWx0LCByZXN1bHQuZXF1YWxzKGV4cGVjdGVkUmVzdWx0KSwgZXhwZWN0ZWRSZXN1bHQpOworICAgIH0KKyAgICBwcml2YXRlIHZvaWQgZXhwZWN0UGF0dGVybihIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvciB0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHBhdHRlcm4sIFN0cmluZyBzb3VyY2UsIFN0cmluZyBleHBlY3RlZFJlc3VsdCl7CisKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgdC5hcHBseVBhdHRlcm4ocGF0dGVybik7CisgICAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKXsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkUmVzdWx0LmVxdWFscygiRkFJTCIpKXsKKyAgICAgICAgICAgICAgICBsb2dsbigiT0s6IGNhbGxpbmcgYXBwbHlQYXR0ZXJuKCkgd2l0aCBpbGxlZ2FsIHBhdHRlcm4gZmFpbGVkIGFzIGV4cGVjdGVkLiIgKyBpYWUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9IGVsc2V7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGFwcGx5UGF0dGVybigpIGZhaWxlZCB3aXRoIHBhdHRlcm4gPSIgKyBwYXR0ZXJuICsgIi0tLT4iICsgaWFlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmKCFleHBlY3RlZFJlc3VsdC5lcXVhbHMoIkZBSUwiKSl7CisgICAgICAgICAgICBpZighdC50b1BhdHRlcm4oKS5lcXVhbHMocGF0dGVybikpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogYXBwbHlQYXR0ZXJuIG9yIHRvUGF0dGVuIGZhaWxlZC4gIEV4cGVjdGVkOiAiICsgcGF0dGVybiArICJHb3Q6ICIgKyB0LnRvUGF0dGVybigpKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGxvZ2xuKCJPSzogYXBwbHlQYXR0ZXJuIHBhc3NlZC4gVGVzdGluZyB0cmFuc2xpdGVyYXRpb24iKTsKKyAgICAgICAgICAgICAgICBleHBlY3QodCwgIiB3aXRoIHBhdHRlcm4gIitwYXR0ZXJuLCBzb3VyY2UsIGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHZvaWQgZXhwZWN0KEhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yIHQsICBTdHJpbmcgbWVzc2FnZSwgU3RyaW5nIHNvdXJjZSwgU3RyaW5nIGV4cGVjdGVkUmVzdWx0KSB7CisgICAgCisgICAgICAgIFN0cmluZyByZXN1bHQ9dC50cmFuc2xpdGVyYXRlKHNvdXJjZSk7CisgICAgICAgIGV4cGVjdEF1eCh0LmdldElEKCkgKyAiOlN0cmluZyAiICsgbWVzc2FnZSwgc291cmNlICsgIi0+IiArIHJlc3VsdCwgcmVzdWx0LmVxdWFscyhleHBlY3RlZFJlc3VsdCksIGV4cGVjdGVkUmVzdWx0KTsKKworICAgICAgICBSZXBsYWNlYWJsZVN0cmluZyByc291cmNlID0gbmV3IFJlcGxhY2VhYmxlU3RyaW5nKHNvdXJjZSk7CisgICAgICAgIHQudHJhbnNsaXRlcmF0ZShyc291cmNlKTsKKyAgICAgICAgcmVzdWx0ID0gcnNvdXJjZS50b1N0cmluZygpOworICAgICAgICBleHBlY3RBdXgodC5nZXRJRCgpICsgIjpSZXBsYWNlYWJsZSIgKyBtZXNzYWdlLCBzb3VyY2UgKyAiLT4iICsgcmVzdWx0LCByZXN1bHQuZXF1YWxzKGV4cGVjdGVkUmVzdWx0KSwgZXhwZWN0ZWRSZXN1bHQpOworCisgICAgICAgIC8vIFRlc3Qga2V5Ym9hcmQgKGluY3JlbWVudGFsKSB0cmFuc2xpdGVyYXRpb24gLS0gdGhpcyByZXN1bHQKKyAgICAgICAgLy8gbXVzdCBiZSB0aGUgc2FtZSBhZnRlciB3ZSBmaW5hbGl6ZSAoc2VlIGJlbG93KS4KKyAgICAgICAgcnNvdXJjZS5yZXBsYWNlKDAsIHJzb3VyY2UubGVuZ3RoKCksICIiKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24gaW5kZXggPSBuZXcgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24oKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGxvZyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGk8c291cmNlLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChpICE9IDApIHsKKyAgICAgICAgICAgICAgICBsb2cuYXBwZW5kKCIgKyAiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxvZy5hcHBlbmQoc291cmNlLmNoYXJBdChpKSkuYXBwZW5kKCIgLT4gIik7CisgICAgICAgICAgICB0LnRyYW5zbGl0ZXJhdGUocnNvdXJjZSwgaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nLnZhbHVlT2Yoc291cmNlLmNoYXJBdChpKSkpOworICAgICAgICAgICAgLy8gQXBwZW5kIHRoZSBzdHJpbmcgYnVmZmVyIHdpdGggYSB2ZXJ0aWNhbCBiYXIgJ3wnIHdoZXJlCisgICAgICAgICAgICAvLyB0aGUgY29tbWl0dGVkIGluZGV4IGlzLgorICAgICAgICAgICAgU3RyaW5nIHMgPSByc291cmNlLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBsb2cuYXBwZW5kKHMuc3Vic3RyaW5nKDAsIGluZGV4LnN0YXJ0KSkuCisgICAgICAgICAgICAgICAgYXBwZW5kKCd8JykuCisgICAgICAgICAgICAgICAgYXBwZW5kKHMuc3Vic3RyaW5nKGluZGV4LnN0YXJ0KSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIEFzIGEgZmluYWwgc3RlcCBpbiBrZXlib2FyZCB0cmFuc2xpdGVyYXRpb24sIHdlIG11c3QgY2FsbAorICAgICAgICAvLyB0cmFuc2xpdGVyYXRlIHRvIGZpbmlzaCBvZmYgYW55IHBlbmRpbmcgcGFydGlhbCBtYXRjaGVzIHRoYXQKKyAgICAgICAgLy8gd2VyZSB3YWl0aW5nIGZvciBtb3JlIGlucHV0LgorICAgICAgICB0LmZpbmlzaFRyYW5zbGl0ZXJhdGlvbihyc291cmNlLCBpbmRleCk7CisgICAgICAgIHJlc3VsdCA9IHJzb3VyY2UudG9TdHJpbmcoKTsKKyAgICAgICAgbG9nLmFwcGVuZCgiID0+ICIpLmFwcGVuZChyc291cmNlLnRvU3RyaW5nKCkpOworICAgICAgICBleHBlY3RBdXgodC5nZXRJRCgpICsgIjpLZXlib2FyZCIsIGxvZy50b1N0cmluZygpICsgIlxuIiArIHNvdXJjZSArICIgLT4gIiArIHJlc3VsdCwgcmVzdWx0LmVxdWFscyhleHBlY3RlZFJlc3VsdCksIGV4cGVjdGVkUmVzdWx0KTsKKworICAgIH0KKyAgICBwcml2YXRlIHZvaWQgZXhwZWN0QXV4KFN0cmluZyB0YWcsIFN0cmluZyBzdW1tYXJ5LCBib29sZWFuIHBhc3MsICBTdHJpbmcgZXhwZWN0ZWRSZXN1bHQpIHsKKyAgICAgICAgaWYgKHBhc3MpIHsKKyAgICAgICAgICAgIGxvZ2xuKCIoIiArIHRhZyArICIpICIgKyBVdGlsaXR5LmVzY2FwZShzdW1tYXJ5KSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogKCIgKyB0YWcrICIpICIKKyAgICAgICAgICAgICAgICArIFV0aWxpdHkuZXNjYXBlKHN1bW1hcnkpCisgICAgICAgICAgICAgICAgKyAiLCBleHBlY3RlZCAiICsgVXRpbGl0eS5lc2NhcGUoZXhwZWN0ZWRSZXN1bHQpKTsKKyAgICAgICAgfQorICAgIH0gIAorfQorCisKKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L0phbW9UZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvSmFtb1Rlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jM2YzNmEyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L0phbW9UZXN0LmphdmEKQEAgLTAsMCArMSw0OTQgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvSmFtb1Rlc3QuamF2YSx2ICQKKyAqICREYXRlOiAyMDAyLzA4LzEzIDIyOjA3OjU4ICQKKyAqICRSZXZpc2lvbjogMS4xNCAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC50cmFuc2xpdDsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGphdmEudGV4dC4qOworaW1wb3J0IGphdmEudXRpbC4qOworCisvKioKKyAqIEB0ZXN0CisgKiBAc3VtbWFyeSBUZXN0IHRoZSBMYXRpbi1KYW1vIHRyYW5zbGl0ZXJhdG9yCisgKi8KK3B1YmxpYyBjbGFzcyBKYW1vVGVzdCBleHRlbmRzIFRyYW5zbGl0ZXJhdG9yVGVzdCB7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIFNFUCA9ICdcJyc7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IEphbW9UZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RKYW1vKCkgeworICAgICAgICBUcmFuc2xpdGVyYXRvciBsYXRpbkphbW8gPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTGF0aW4tSmFtbyIpOworICAgICAgICBUcmFuc2xpdGVyYXRvciBqYW1vTGF0aW4gPSBsYXRpbkphbW8uZ2V0SW52ZXJzZSgpOworCisgICAgICAgIFN0cmluZ1tdIENBU0UgPSB7CisgICAgICAgICAgICAvLyBDb2x1bW4gMSBpcyB0aGUgbGF0aW4gdGV4dCBMMSB0byBiZSBmZWQgdG8gTGF0aW4tSmFtbworICAgICAgICAgICAgLy8gdG8geWllbGQgb3V0cHV0IEouCisKKyAgICAgICAgICAgIC8vIENvbHVtbiAyIGlzIGV4cGVjdGVkIHZhbHVlIG9mIEouICBKIGlzIGZlZCB0bworICAgICAgICAgICAgLy8gSmFtby1MYXRpbiB0byB5aWVsZCBvdXRwdXQgTDIuCisKKyAgICAgICAgICAgIC8vIENvbHVtbiAzIGlzIGV4cGVjdGVkIHZhbHVlIG9mIEwyLiAgSWYgdGhlIGV4cGVjdGVkCisgICAgICAgICAgICAvLyB2YWx1ZSBvZiBMMiBpcyBMMSwgdGhlbiBMMiBpcyBudWxsLgorICAgICAgICAgICAgImJhYiIsICIoQmkpKEEpKEJmKSIsIG51bGwsCisgICAgICAgICAgICAiYmFiYiIsICIoQmkpKEEpKEJmKShCaSkoRVUpIiwgImJhYiIrU0VQKyJiZXUiLAorICAgICAgICAgICAgImJhYmJiYSIsICIoQmkpKEEpKEJmKShCQikoQSkiLCBudWxsLAorICAgICAgICAgICAgImJhZ2ciLCAiKEJpKShBKShHR2YpIiwgbnVsbCwKKyAgICAgICAgICAgICJiYWdnZ2EiLCAiKEJpKShBKShHR2YpKEdpKShBKSIsIG51bGwsCisgICAgICAgICAgICAiYmFnIitTRVArImdnYSIsICIoQmkpKEEpKEdmKShHR2kpKEEpIiwgbnVsbCwKKyAgICAgICAgICAgICJrYWJzYSIsICIoS2kpKEEpKEJmKShTaSkoQSkiLCBudWxsLAorICAgICAgICAgICAgImthYnNrYSIsICIoS2kpKEEpKEJTKShLaSkoQSkiLCBudWxsLAorICAgICAgICAgICAgImdhYnNia2EiLCAiKEdpKShBKShCUykoQmkpKEVVKShLaSkoQSkiLCAiZ2Fic2JldWthIiwgLy8gbm90IChLZikKKyAgICAgICAgICAgICJnZ2EiLCAiKEdHaSkoQSkiLCBudWxsLAorICAgICAgICAgICAgImJzYSIsICIoQmkpKEVVKShTaSkoQSkiLCAiYmV1c2EiLAorICAgICAgICAgICAgImFnZyIsICIoSUVVTkcpKEEpKEdHZikiLCBudWxsLAorICAgICAgICAgICAgImFnZ2EiLCAiKElFVU5HKShBKShHR2kpKEEpIiwgbnVsbCwKKyAgICAgICAgICAgICJsYSIsICIoUikoQSkiLCAicmEiLAorICAgICAgICAgICAgImJzIiwgIihCaSkoRVUpKFNmKSIsICJiZXVzIiwKKyAgICAgICAgICAgICJrYWxnZ2EiLCAiKEtpKShBKShMKShHR2kpKEEpIiwgbnVsbCwKKworICAgICAgICAgICAgLy8gJ3InIGluIGEgZmluYWwgcG9zaXRpb24gaXMgdHJlYXRlZCBsaWtlICdsJworICAgICAgICAgICAgImthcmthIiwgIihLaSkoQSkoTCkoS2kpKEEpIiwgImthbGthIiwKKyAgICAgICAgfTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGk8Q0FTRS5sZW5ndGg7IGkrPTMpIHsKKyAgICAgICAgICAgIFN0cmluZyBqYW1vID0gbmFtZVRvSmFtbyhDQVNFW2krMV0pOworICAgICAgICAgICAgaWYgKENBU0VbaSsyXSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0KGxhdGluSmFtbywgQ0FTRVtpXSwgamFtbywgamFtb0xhdGluKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gSGFuZGxlIGNhc2Ugd2hlcmUgcm91bmQtdHJpcCBpcyBleHBlY3RlZCB0byBmYWlsCisgICAgICAgICAgICAgICAgZXhwZWN0KGxhdGluSmFtbywgQ0FTRVtpXSwgamFtbyk7CisgICAgICAgICAgICAgICAgZXhwZWN0KGphbW9MYXRpbiwgamFtbywgQ0FTRVtpKzJdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRoZXNlIGFyZSBwcm9ibGVtcyB0dXJuZWQgdXAgYnkgdGhlIEhhbmd1bC1KYW1vO0phbW8tTGF0aW4KKyAgICAgKiByb3VuZCB0cmlwIHRlc3QuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFJvdW5kVHJpcCgpIHsKKyAgICAgICAgU3RyaW5nIEhBTkdVTFtdID0geyAiXHVBQzAzXHVDMkY4IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVDNTQ0XHVDNUI0In07CisgICAgICAgIAorICAgICAgICBUcmFuc2xpdGVyYXRvciBsYXRpbkphbW8gPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTGF0aW4tSmFtbyIpOworICAgICAgICBUcmFuc2xpdGVyYXRvciBqYW1vTGF0aW4gPSBsYXRpbkphbW8uZ2V0SW52ZXJzZSgpOworICAgICAgICBUcmFuc2xpdGVyYXRvciBqYW1vSGFuZ3VsID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIk5GQyIpOworICAgICAgICBUcmFuc2xpdGVyYXRvciBoYW5ndWxKYW1vID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIk5GRCIpOworCisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxIQU5HVUwubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBoYW5ndWwgPSBIQU5HVUxbaV07CisgICAgICAgICAgICBTdHJpbmcgamFtbyA9IGhhbmd1bEphbW8udHJhbnNsaXRlcmF0ZShoYW5ndWwpOworICAgICAgICAgICAgU3RyaW5nIGxhdGluID0gamFtb0xhdGluLnRyYW5zbGl0ZXJhdGUoamFtbyk7CisgICAgICAgICAgICBTdHJpbmcgamFtbzIgPSBsYXRpbkphbW8udHJhbnNsaXRlcmF0ZShsYXRpbik7CisgICAgICAgICAgICBTdHJpbmcgaGFuZ3VsMiA9IGphbW9IYW5ndWwudHJhbnNsaXRlcmF0ZShqYW1vMik7CisgICAgICAgICAgICBidWYuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgYnVmLmFwcGVuZChoYW5ndWwgKyAiID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgICBqYW1vVG9OYW1lKGphbW8pICsgIiA9PiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgbGF0aW4gKyAiID0+ICIgKyBqYW1vVG9OYW1lKGphbW8yKQorICAgICAgICAgICAgICAgICAgICAgICArICIgPT4gIiArIGhhbmd1bDIKKyAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIGlmICghaGFuZ3VsLmVxdWFscyhoYW5ndWwyKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgVXRpbGl0eS5lc2NhcGUoYnVmLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbG9nbG4oVXRpbGl0eS5lc2NhcGUoYnVmLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdmFyaW91cyBzdGVwLWF0LWEtdGltZSB0cmFuc2Zvcm1hdGlvbiBvZiBoYW5ndWwgdG8gamFtbyB0bworICAgICAqIGxhdGluIGFuZCBiYWNrLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RQaWVjZW1lYWwoKSB7CisgICAgICAgIFN0cmluZyBoYW5ndWwgPSAiXHVCQzBGIjsKKyAgICAgICAgU3RyaW5nIGphbW8gPSBuYW1lVG9KYW1vKCIoTWkpKEkpKENmKSIpOworICAgICAgICBTdHJpbmcgbGF0aW4gPSAibWljIjsKKworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gbnVsbDsKKworICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIk5GRCIpOyAvLyB3YXMgSGFuZ3VsLUphbW8KKyAgICAgICAgZXhwZWN0KHQsIGhhbmd1bCwgamFtbyk7CisKKyAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJORkMiKTsgLy8gd2FzIEphbW8tSGFuZ3VsCisgICAgICAgIGV4cGVjdCh0LCBqYW1vLCBoYW5ndWwpOworCisgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTGF0aW4tSmFtbyIpOworICAgICAgICBleHBlY3QodCwgbGF0aW4sIGphbW8pOworCisgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiSmFtby1MYXRpbiIpOworICAgICAgICBleHBlY3QodCwgamFtbywgbGF0aW4pOworCisgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiSGFuZ3VsLUxhdGluIik7CisgICAgICAgIGV4cGVjdCh0LCBoYW5ndWwsIGxhdGluKTsKKworICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkxhdGluLUhhbmd1bCIpOworICAgICAgICBleHBlY3QodCwgbGF0aW4sIGhhbmd1bCk7CisKKyAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJIYW5ndWwtTGF0aW47IExhdGluLUphbW8iKTsKKyAgICAgICAgZXhwZWN0KHQsIGhhbmd1bCwgamFtbyk7CisKKyAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJKYW1vLUxhdGluOyBMYXRpbi1IYW5ndWwiKTsKKyAgICAgICAgZXhwZWN0KHQsIGphbW8sIGhhbmd1bCk7CisKKyAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJIYW5ndWwtTGF0aW47IExhdGluLUhhbmd1bCIpOworICAgICAgICBleHBlY3QodCwgaGFuZ3VsLCBoYW5ndWwpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RSZWFsVGV4dCgpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgbGF0aW5KYW1vID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkxhdGluLUphbW8iKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgamFtb0xhdGluID0gbGF0aW5KYW1vLmdldEludmVyc2UoKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgamFtb0hhbmd1bCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJORkMiKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgaGFuZ3VsSmFtbyA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJORkQiKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgcnQgPSBuZXcgQ29tcG91bmRUcmFuc2xpdGVyYXRvcihuZXcgVHJhbnNsaXRlcmF0b3JbXSB7CisgICAgICAgICAgICBoYW5ndWxKYW1vLCBqYW1vTGF0aW4sIGxhdGluSmFtbywgamFtb0hhbmd1bCB9KTsKKworICAgICAgICBpbnQgcG9zID0gMDsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50IHRvdGFsID0gMDsKKyAgICAgICAgaW50IGVycm9ycyA9IDA7CisgICAgICAgIHdoaWxlIChwb3MgPCBXSEFUX0lTX1VOSUNPREUubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGludCBzcGFjZSA9IFdIQVRfSVNfVU5JQ09ERS5pbmRleE9mKCcgJywgcG9zKzEpOworICAgICAgICAgICAgaWYgKHNwYWNlIDwgMCkgeworICAgICAgICAgICAgICAgIHNwYWNlID0gV0hBVF9JU19VTklDT0RFLmxlbmd0aCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHBvcyA8IHNwYWNlKSB7CisgICAgICAgICAgICAgICAgKyt0b3RhbDsKKyAgICAgICAgICAgICAgICBTdHJpbmcgaGFuZ3VsID0gV0hBVF9JU19VTklDT0RFLnN1YnN0cmluZyhwb3MsIHNwYWNlKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgaGFuZ3VsWCA9IHJ0LnRyYW5zbGl0ZXJhdGUoaGFuZ3VsKTsKKyAgICAgICAgICAgICAgICBpZiAoIWhhbmd1bC5lcXVhbHMoaGFuZ3VsWCkpIHsKKyAgICAgICAgICAgICAgICAgICAgKytlcnJvcnM7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBqYW1vID0gaGFuZ3VsSmFtby50cmFuc2xpdGVyYXRlKGhhbmd1bCk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBsYXRpbiA9IGphbW9MYXRpbi50cmFuc2xpdGVyYXRlKGphbW8pOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgamFtbzIgPSBsYXRpbkphbW8udHJhbnNsaXRlcmF0ZShsYXRpbik7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBoYW5ndWwyID0gamFtb0hhbmd1bC50cmFuc2xpdGVyYXRlKGphbW8yKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGhhbmd1bC5lcXVhbHMoaGFuZ3VsMikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCJGQUlMIChDb21wb3VuZCB0cmFuc2xpdGVyYXRvciBwcm9ibGVtKTogIik7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGhhbmd1bCArICIgPT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphbW9Ub05hbWUoamFtbykgKyAiID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXRpbiArICIgPT4gIiArIGphbW9Ub05hbWUoamFtbzIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiA9PiAiICsgaGFuZ3VsMiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI7IGJ1dCAiICsgaGFuZ3VsICsgIiA9Y3BkPT4gIiArIGphbW9Ub05hbWUoaGFuZ3VsWCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKFV0aWxpdHkuZXNjYXBlKGJ1Zi50b1N0cmluZygpKSk7ICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoamFtby5lcXVhbHMoamFtbzIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiRkFJTCAoSmFtbzw+SGFuZ3VsIHByb2JsZW0pOiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaGFuZ3VsMi5lcXVhbHMoaGFuZ3VsWCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCIoV2VpcmQ6ICIgKyBoYW5ndWxYICsgIiAhPSAiICsgaGFuZ3VsMiArICIpIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGhhbmd1bCArICIgPT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphbW9Ub05hbWUoamFtbykgKyAiID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXRpbiArICIgPT4gIiArIGphbW9Ub05hbWUoamFtbzIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiA9PiAiICsgaGFuZ3VsMgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oVXRpbGl0eS5lc2NhcGUoYnVmLnRvU3RyaW5nKCkpKTsgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCJGQUlMOiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaGFuZ3VsMi5lcXVhbHMoaGFuZ3VsWCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCIoV2VpcmQ6ICIgKyBoYW5ndWxYICsgIiAhPSAiICsgaGFuZ3VsMiArICIpIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgSGFuZ3VsLUphbW8gY29udmVyc2lvbiBpcyBub3QgdXN1YWxseSB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1ZyBoZXJlLCBzbyB3ZSBoaWRlIGl0IGZyb20gZGlzcGxheS4KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVuY29tbWVudCBsaW5lcyB0byBzZWUgdGhlIEhhbmd1bC4KKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoLy9oYW5ndWwgKyAiID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYW1vVG9OYW1lKGphbW8pICsgIiA9PiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF0aW4gKyAiID0+ICIgKyBqYW1vVG9OYW1lKGphbW8yKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLysgIiA9PiAiICsgaGFuZ3VsMgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oVXRpbGl0eS5lc2NhcGUoYnVmLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHBvcyA9IHNwYWNlKzE7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVycm9ycyAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiVGVzdCB3b3JkIGZhaWx1cmVzOiAiICsgZXJyb3JzICsgIiBvdXQgb2YgIiArIHRvdGFsKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJBbGwgIiArIHRvdGFsICsgIiB0ZXN0IHdvcmRzIHBhc3NlZCIpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gVGVzdCB0ZXh0IHRha2VuIGZyb20gdGhlIFVuaWNvZGUgd2ViIHNpdGUKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIFdIQVRfSVNfVU5JQ09ERSA9CisKKyAgICAgICAgIlx1YzcyMFx1YjJjOFx1Y2Y1NFx1YjRkY1x1YzVkMCBcdWIzMDBcdWQ1NzQgPyAiICsKKworICAgICAgICAiXHVjNWI0XHViNWE0IFx1ZDUwY1x1YjdhYlx1ZDNmYywgXHVjNWI0XHViNWE0ICIgKworICAgICAgICAiXHVkNTA0XHViODVjXHVhZGY4XHViN2E4LCBcdWM1YjRcdWI1YTQgXHVjNWI4XHVjNWI0XHVjNWQwXHViM2M0ICIgKworICAgICAgICAiXHVjMGMxXHVhZDAwXHVjNWM2XHVjNzc0IFx1YzcyMFx1YjJjOFx1Y2Y1NFx1YjRkY1x1YjI5NCBcdWJhYThcdWI0ZTAgIiArCisgICAgICAgICJcdWJiMzhcdWM3OTBcdWM1ZDAgXHViMzAwXHVkNTc0IFx1YWNlMFx1YzcyMCBcdWJjODhcdWQ2MzhcdWI5N2MgIiArCisgICAgICAgICJcdWM4MWNcdWFjZjVcdWQ1NjlcdWIyYzhcdWIyZTQuICIgKworICAgICAgICAKKyAgICAgICAgIlx1YWUzMFx1YmNmOFx1YzgwMVx1YzczY1x1Yjg1YyBcdWNlZjRcdWQ0ZThcdWQxMzBcdWIyOTQgIiArCisgICAgICAgICJcdWMyMmJcdWM3OTBcdWI5Y2MgXHVjYzk4XHViOWFjXHVkNTY5XHViMmM4XHViMmU0LiBcdWFlMDBcdWM3OTBcdWIwOTggIiArCisgICAgICAgICJcdWIyZTRcdWI5NzggXHViYjM4XHVjNzkwXHVjNWQwXHViM2M0IFx1YzIyYlx1Yzc5MFx1Yjk3YyAiICsKKyAgICAgICAgIlx1YzljMFx1YzgxNVx1ZDU1OFx1YzVlYyAiICsKKyAgICAgICAgIlx1YzgwMFx1YzdhNVx1ZDU2OVx1YjJjOFx1YjJlNC4gXHVjNzIwXHViMmM4XHVjZjU0XHViNGRjXHVhYzAwICIgKworICAgICAgICAiXHVhYzFjXHViYzFjXHViNDE4XHVhZTMwIFx1YzgwNFx1YzVkMFx1YjI5NCBcdWM3NzRcdWI3ZWNcdWQ1NWMgIiArCisgICAgICAgICJcdWMyMmJcdWM3OTBcdWI5N2MgXHVjOWMwXHVjODE1XHVkNTU4XHVhZTMwIFx1YzcwNFx1ZDU3NCBcdWMyMThcdWJjMzEgIiArCisgICAgICAgICJcdWFjMDBcdWM5YzBcdWM3NTggXHViMmU0XHViOTc4IFx1YWUzMFx1ZDYzOFx1ZDY1NCAiICsKKyAgICAgICAgIlx1YzJkY1x1YzJhNFx1ZDE1Y1x1Yzc0NCAiICsKKyAgICAgICAgIlx1YzBhY1x1YzZhOVx1ZDU4OFx1YzJiNVx1YjJjOFx1YjJlNC4gXHViMmU4XHVjNzdjIFx1YWUzMFx1ZDYzOFx1ZDY1NCAiICsKKyAgICAgICAgIlx1YmMyOVx1YmM5NVx1YzczY1x1Yjg1Y1x1YjI5NCBcdWJhYThcdWI0ZTAgXHViYjM4XHVjNzkwXHViOTdjICIgKworICAgICAgICAiXHVkM2VjXHVkNTY4XHVkNTYwIFx1YzIxOCBcdWM1YzZcdWM1YzhcdWMyYjVcdWIyYzhcdWIyZTQuIFx1YzYwOFx1Yjk3YyAiICsKKyAgICAgICAgIlx1YjRlNFx1YzViNCBcdWM3MjBcdWI3ZmQgXHVjNWYwXHVkNTY5XHVjNWQwXHVjMTFjXHViOWNjICIgKworICAgICAgICAiXHViY2Y0XHViMzU0XHViNzdjXHViM2M0IFx1YmFhOFx1YjRlMCBcdWFjMDEgXHViMDk4XHViNzdjXHViY2M0ICIgKworICAgICAgICAiXHVjNWI4XHVjNWI0XHViOTdjIFx1Y2M5OFx1YjlhY1x1ZDU1OFx1YjgyNFx1YmE3NCBcdWM1ZWNcdWI3ZWMgIiArCisgICAgICAgICJcdWFjMWNcdWM3NTggXHViMmU0XHViOTc4IFx1YWUzMFx1ZDYzOFx1ZDY1NCBcdWJjMjlcdWJjOTVcdWM3NzQgIiArCisgICAgICAgICJcdWQ1NDRcdWM2OTRcdWQ1NjlcdWIyYzhcdWIyZTQuIFx1YzYwMVx1YzViNFx1YzY0MCBcdWFjMTlcdWM3NDAgIiArCisgICAgICAgICJcdWIyZThcdWM3N2MgXHVjNWI4XHVjNWI0XHVjNzU4IFx1YWNiZFx1YzZiMFx1YjNjNCAiICsKKyAgICAgICAgIlx1YWNmNVx1ZDFiNVx1YzgwMVx1YzczY1x1Yjg1YyBcdWMwYWNcdWM2YTlcdWI0MThcdWIyOTQgXHViYWE4XHViNGUwICIgKworICAgICAgICAiXHVhZTAwXHVjNzkwLCBcdWJiMzhcdWM3YTUgXHViZDgwXHVkNjM4IFx1YmMwZiAiICsKKyAgICAgICAgIlx1ZDE0Y1x1ZDA2Y1x1YjJjOFx1Y2VlYyBcdWFlMzBcdWQ2MzhcdWM1ZDAgXHViOWRlXHViMjk0IFx1YjJlOFx1Yzc3YyAiICsKKyAgICAgICAgIlx1YWUzMFx1ZDYzOFx1ZDY1NCBcdWJjMjlcdWJjOTVcdWM3NDQgXHVhYzE2XHVhY2UwIFx1Yzc4OFx1YzljMCAiICsKKyAgICAgICAgIlx1YmFiYlx1ZDU1OFx1YzYwMFx1YzJiNVx1YjJjOFx1YjJlNC4gIiArCisgICAgICAgIAorICAgICAgICAiXHVjNzc0XHViN2VjXHVkNTVjIFx1YWUzMFx1ZDYzOFx1ZDY1NCBcdWMyZGNcdWMyYTRcdWQxNWNcdWM3NDAgIiArCisgICAgICAgICJcdWI2MTBcdWQ1NWMgXHViMmU0XHViOTc4IFx1YWUzMFx1ZDYzOFx1ZDY1NCBcdWMyZGNcdWMyYTRcdWQxNWNcdWFjZmMgIiArCisgICAgICAgICJcdWNkYTlcdWIzY2NcdWQ1NjlcdWIyYzhcdWIyZTQuIFx1Yzk4OSBcdWI0NTAgXHVhYzAwXHVjOWMwICIgKworICAgICAgICAiXHVhZTMwXHVkNjM4XHVkNjU0IFx1YmMyOVx1YmM5NVx1Yzc3NCBcdWI0NTAgXHVhYzFjXHVjNzU4IFx1YjJlNFx1Yjk3OCAiICsKKyAgICAgICAgIlx1YmIzOFx1Yzc5MFx1YzVkMCBcdWIzMDBcdWQ1NzQgXHVhYzE5XHVjNzQwIFx1YmM4OFx1ZDYzOFx1Yjk3YyAiICsKKyAgICAgICAgIlx1YzBhY1x1YzZhOVx1ZDU1OFx1YWM3MFx1YjA5OCBcdWFjMTlcdWM3NDAgXHViYjM4XHVjNzkwXHVjNWQwICIgKworICAgICAgICAiXHViMzAwXHVkNTc0IFx1YjJlNFx1Yjk3OCBcdWJjODhcdWQ2MzhcdWI5N2MgXHVjMGFjXHVjNmE5XHVkNTYwIFx1YzIxOCAiICsKKyAgICAgICAgIlx1Yzc4OFx1YzJiNVx1YjJjOFx1YjJlNC4gXHVjOGZjXHVjNWI0XHVjOWM0IFx1YmFhOFx1YjRlMCAiICsKKyAgICAgICAgIlx1Y2VmNFx1ZDRlOFx1ZDEzMChcdWQyYjlcdWQ3ODggXHVjMTFjXHViYzg0KVx1YjI5NCBcdWMxMWNcdWI4NWMgIiArCisgICAgICAgICJcdWIyZTRcdWI5NzggXHVjNWVjXHViN2VjIFx1YWMwMFx1YzljMCBcdWFlMzBcdWQ2MzhcdWQ2NTQgIiArCisgICAgICAgICJcdWJjMjlcdWJjOTVcdWM3NDQgXHVjOWMwXHVjNmQwXHVkNTc0XHVjNTdjICIgKworICAgICAgICAiXHVkNTY5XHViMmM4XHViMmU0LiBcdWFkZjhcdWI3ZWNcdWIwOTgsIFx1YjM3MFx1Yzc3NFx1ZDEzMFx1Yjk3YyAiICsKKyAgICAgICAgIlx1YzExY1x1Yjg1YyBcdWIyZTRcdWI5NzggXHVhZTMwXHVkNjM4XHVkNjU0IFx1YmMyOVx1YmM5NVx1Yzc3NFx1YjA5OCAiICsKKyAgICAgICAgIlx1ZDUwY1x1YjdhYlx1ZDNmYyBcdWFjMDRcdWM1ZDAgXHVjODA0XHViMmVjXHVkNTYwIFx1YjU0Y1x1YjljOFx1YjJlNCAiICsKKyAgICAgICAgIlx1YWRmOCBcdWIzNzBcdWM3NzRcdWQxMzBcdWIyOTQgXHVkNTZkXHVjMGMxIFx1YzE5MFx1YzBjMVx1Yzc1OCAiICsKKyAgICAgICAgIlx1YzcwNFx1ZDVkOFx1Yzc0NCBcdWFjYWFcdWFjOGMgXHViNDI5XHViMmM4XHViMmU0LiAiICsKKyAgICAgICAgCisgICAgICAgICJcdWM3MjBcdWIyYzhcdWNmNTRcdWI0ZGNcdWI4NWMgXHViYWE4XHViNGUwIFx1YWM4M1x1Yzc0NCAiICsKKyAgICAgICAgIlx1ZDU3NFx1YWNiMFx1ZDU2MCBcdWMyMTggXHVjNzg4XHVjMmI1XHViMmM4XHViMmU0ISAiICsKKyAgICAgICAgIlx1YzcyMFx1YjJjOFx1Y2Y1NFx1YjRkY1x1YjI5NCBcdWMwYWNcdWM2YTkgXHVjOTExXHVjNzc4ICIgKworICAgICAgICAiXHVkNTBjXHViN2FiXHVkM2ZjLCBcdWQ1MDRcdWI4NWNcdWFkZjhcdWI3YTgsIFx1YzViOFx1YzViNFx1YzVkMCAiICsKKyAgICAgICAgIlx1YWQwMFx1YWNjNFx1YzVjNlx1Yzc3NCBcdWJiMzhcdWM3OTBcdWI5YzhcdWIyZTQgXHVhY2UwXHVjNzIwXHVkNTVjICIgKworICAgICAgICAiXHVjMjJiXHVjNzkwXHViOTdjICIgKworICAgICAgICAiXHVjODFjXHVhY2Y1XHVkNTY5XHViMmM4XHViMmU0LiBcdWM3MjBcdWIyYzhcdWNmNTRcdWI0ZGMgIiArCisgICAgICAgICJcdWQ0NWNcdWM5MDBcdWM3NDAgIiArIC8vICJBcHBsZSwgSFAsIElCTSwgSnVzdFN5c3RlbSwgTWljcm9zb2Z0LCBPcmFjbGUsIFNBUCwgIiArCisgICAgICAgIC8vICJTdW4sIFN5YmFzZSwgVW5pc3lzICIgKyAKKyAgICAgICAgIlx1YmMwZiBcdWFlMzBcdWQwYzAgXHVjNWVjXHViN2VjICIgKworICAgICAgICAiXHVkNjhjXHVjMGFjXHVjNjQwIFx1YWMxOVx1Yzc0MCBcdWM1YzVcdWFjYzQgIiArCisgICAgICAgICJcdWMxMjBcdWI0NTBcdWM4ZmNcdWM3OTBcdWM1ZDAgXHVjNzU4XHVkNTc0ICIgKworICAgICAgICAiXHVjYzQ0XHVkMGRkXHViNDE4XHVjNWM4XHVjMmI1XHViMmM4XHViMmU0LiBcdWM3MjBcdWIyYzhcdWNmNTRcdWI0ZGNcdWIyOTQgIiArCisgICAgICAgIC8vICJYTUwsIEphdmEsIEVDTUFTY3JpcHQoSmF2YVNjcmlwdCksIExEQVAsIENPUkJBIDMuMCwgV01MICIgKworICAgICAgICAiXHViNGYxXHVhY2ZjICIgKworICAgICAgICAiXHVhYzE5XHVjNzc0IFx1ZDYwNFx1YzdhYyBcdWIxMTBcdWI5YWMgXHVjMGFjXHVjNmE5XHViNDE4XHViMjk0ICIgKworICAgICAgICAiXHVkNDVjXHVjOTAwXHVjNWQwXHVjMTFjIFx1ZDU0NFx1YzY5NFx1ZDU1OFx1YmE3MCBcdWM3NzRcdWIyOTQgIiArIC8vSVNPL0lFQyAiICsKKyAgICAgICAgIjEwNjQ2XHVjNzQ0IFx1YWQ2Y1x1ZDYwNFx1ZDU1OFx1YjI5NCBcdWFjZjVcdWMyZGRcdWM4MDFcdWM3NzggIiArCisgICAgICAgICJcdWJjMjlcdWJjOTVcdWM3ODVcdWIyYzhcdWIyZTQuIFx1Yzc3NFx1YjI5NCBcdWI5Y2VcdWM3NDAgXHVjNmI0XHVjNjAxICIgKworICAgICAgICAiXHVjY2I0XHVjODFjLCBcdWM2OTRcdWM5OTggXHVjMGFjXHVjNmE5XHViNDE4XHViMjk0IFx1YmFhOFx1YjRlMCAiICsKKyAgICAgICAgIlx1YmUwY1x1Yjc3Y1x1YzZiMFx1YzgwMCBcdWJjMGYgXHVhZTMwXHVkMGMwIFx1YjljZVx1Yzc0MCAiICsKKyAgICAgICAgIlx1YzgxY1x1ZDQ4OFx1YzVkMFx1YzExYyAiICsKKyAgICAgICAgIlx1YzljMFx1YzZkMFx1YjQyOVx1YjJjOFx1YjJlNC4gXHVjNzIwXHViMmM4XHVjZjU0XHViNGRjICIgKworICAgICAgICAiXHVkNDVjXHVjOTAwXHVjNzU4IFx1YmQ4MFx1YzBjMVx1YWNmYyBcdWM3NzRcdWI5N2MgIiArCisgICAgICAgICJcdWM5YzBcdWM2ZDBcdWQ1NThcdWIyOTQgXHViM2M0XHVhZDZjXHVjNzU4IFx1YWMwMFx1YzZhOVx1YzEzMVx1Yzc0MCAiICsKKyAgICAgICAgIlx1Y2Q1Y1x1YWRmYyBcdWM4MDQgXHVjMTM4XHVhY2M0XHVjNWQwIFx1YmQ4OFx1YWNlMCBcdWM3ODhcdWIyOTQgIiArCisgICAgICAgICJcdWFlMzBcdWMyMjAgXHVhY2JkXHVkNWE1XHVjNWQwXHVjMTFjIFx1YWMwMFx1YzdhNSBcdWM5MTFcdWM2OTRcdWQ1NWMgIiArCisgICAgICAgICJcdWJkODBcdWJkODRcdWM3NDQgXHVjYzI4XHVjOWMwXHVkNTU4XHVhY2UwIFx1Yzc4OFx1YzJiNVx1YjJjOFx1YjJlNC4gIiArCisgICAgICAgIAorICAgICAgICAiXHVjNzIwXHViMmM4XHVjZjU0XHViNGRjXHViOTdjICIgKworICAgICAgICAiXHVkMDc0XHViNzdjXHVjNzc0XHVjNWI4XHVkMmI4LVx1YzExY1x1YmM4NCBcdWI2MTBcdWIyOTQgIiArCisgICAgICAgICJcdWIyZTRcdWM5MTEtXHVjNWYwXHVhY2IwIFx1Yzc1MVx1YzZhOSBcdWQ1MDRcdWI4NWNcdWFkZjhcdWI3YThcdWFjZmMgIiArCisgICAgICAgICJcdWM2ZjkgXHVjMGFjXHVjNzc0XHVkMmI4XHVjNWQwIFx1ZDFiNVx1ZDU2OVx1ZDU1OFx1YmE3NCAiICsKKyAgICAgICAgIlx1YjgwOFx1YWM3MFx1YzJkYyBcdWJiMzhcdWM3OTAgXHVjMTM4XHVkMmI4IFx1YzBhY1x1YzZhOVx1YzVkMCAiICsKKyAgICAgICAgIlx1Yzc4OFx1YzViNFx1YzExYyBcdWMwYzFcdWIyZjlcdWQ1NWMgXHViZTQ0XHVjNmE5IFx1YzgwOFx1YWMxMCAiICsKKyAgICAgICAgIlx1ZDZhOFx1YWNmY1x1YWMwMCAiICsKKyAgICAgICAgIlx1YjA5OFx1ZDBjMFx1YjBhOVx1YjJjOFx1YjJlNC4gXHVjNzIwXHViMmM4XHVjZjU0XHViNGRjXHViOTdjICIgKworICAgICAgICAiXHVkMWI1XHVkNTc0IFx1YjlhY1x1YzVkNFx1YzljMFx1YjJjOFx1YzViNFx1YjljMSBcdWM1YzZcdWM3NzQgIiArCisgICAgICAgICJcdWIyZTRcdWM5MTEgXHVkNTBjXHViN2FiXHVkM2ZjLCBcdWM1YjhcdWM1YjQgXHViYzBmIFx1YWQ2ZFx1YWMwMCAiICsKKyAgICAgICAgIlx1YWMwNFx1YzVkMCBcdWIyZThcdWM3N2MgXHVjMThjXHVkNTA0XHVkMmI4XHVjNmU4XHVjNWI0ICIgKworICAgICAgICAiXHVkNTBjXHViN2FiXHVkM2ZjIFx1YjYxMFx1YjI5NCBcdWIyZThcdWM3N2MgXHVjNmY5ICIgKworICAgICAgICAiXHVjMGFjXHVjNzc0XHVkMmI4XHViOTdjIFx1YmFhOVx1ZDQ1Y1x1Yjg1YyBcdWMwYmNcdWM3NDQgXHVjMjE4ICIgKworICAgICAgICAiXHVjNzg4XHVjMmI1XHViMmM4XHViMmU0LiBcdWM3NzRcdWI5N2MgXHVjMGFjXHVjNmE5XHVkNTU4XHViYTc0ICIgKworICAgICAgICAiXHViMzcwXHVjNzc0XHVkMTMwXHViOTdjIFx1YzE5MFx1YzBjMSBcdWM1YzZcdWM3NzQgXHVjNWVjXHViN2VjICIgKworICAgICAgICAiXHVjMmRjXHVjMmE0XHVkMTVjXHVjNzQ0IFx1ZDFiNVx1ZDU3NCBcdWM4MDRcdWMxYTFcdWQ1NjAgXHVjMjE4ICIgKworICAgICAgICAiXHVjNzg4XHVjMmI1XHViMmM4XHViMmU0LiAiICsKKyAgICAgICAgCisgICAgICAgICJcdWM3MjBcdWIyYzhcdWNmNTRcdWI0ZGMgXHVjZjU4XHVjMThjXHVjMmRjXHVjNWM0XHVjNWQwIFx1YjMwMFx1ZDU3NCAiICsKKyAgICAgICAgIlx1YzcyMFx1YjJjOFx1Y2Y1NFx1YjRkYyBcdWNmNThcdWMxOGNcdWMyZGNcdWM1YzRcdWM3NDAgIiArCisgICAgICAgICJcdWJlNDRcdWM2MDFcdWI5YWMgXHVjODcwXHVjOWMxXHVjNzNjXHViODVjXHVjMTFjIFx1ZDYwNFx1YjMwMCAiICsKKyAgICAgICAgIlx1YzE4Y1x1ZDUwNFx1ZDJiOFx1YzZlOFx1YzViNCBcdWM4MWNcdWQ0ODhcdWFjZmMgIiArCisgICAgICAgICJcdWQ0NWNcdWM5MDBcdWM1ZDBcdWMxMWMgXHVkMTRkXHVjMmE0XHVkMmI4XHVjNzU4IFx1ZDQ1Y1x1ZDYwNFx1Yzc0NCAiICsKKyAgICAgICAgIlx1YzljMFx1YzgxNVx1ZDU1OFx1YjI5NCBcdWM3MjBcdWIyYzhcdWNmNTRcdWI0ZGMgXHVkNDVjXHVjOTAwXHVjNzU4ICIgKworICAgICAgICAiXHVjMGFjXHVjNmE5XHVjNzQ0IFx1YWMxY1x1YmMxY1x1ZDU1OFx1YWNlMCBcdWQ2NTVcdWM3YTVcdWQ1NThcdWJhNzAgIiArCisgICAgICAgICJcdWM3YTVcdWI4MjRcdWQ1NThcdWFlMzAgXHVjNzA0XHVkNTc0ICIgKworICAgICAgICAiXHVjMTM4XHVjNmNjXHVjODRjXHVjMmI1XHViMmM4XHViMmU0LiBcdWNmNThcdWMxOGNcdWMyZGNcdWM1YzQgIiArCisgICAgICAgICJcdWJhNjRcdWJjODRcdWMyN2RcdWM3NDAgXHVjZWY0XHVkNGU4XHVkMTMwXHVjNjQwIFx1YzgxNVx1YmNmNCAiICsKKyAgICAgICAgIlx1Y2M5OFx1YjlhYyBcdWMwYjBcdWM1YzVcdWM1ZDAgXHVjODg1XHVjMGFjXHVkNTU4XHVhY2UwIFx1Yzc4OFx1YjI5NCAiICsKKyAgICAgICAgIlx1YWQxMVx1YmM5NFx1YzcwNFx1ZDU1YyBcdWQ2OGNcdWMwYWMgXHViYzBmIFx1Yzg3MFx1YzljMVx1Yzc1OCAiICsKKyAgICAgICAgIlx1YmM5NFx1YzcwNFx1Yjk3YyAiICsKKyAgICAgICAgIlx1YjA5OFx1ZDBjMFx1YjBjNVx1YjJjOFx1YjJlNC4gXHVjZjU4XHVjMThjXHVjMmRjXHVjNWM0XHVjNzU4ICIgKworICAgICAgICAiXHVjN2FjXHVjODE1XHVjNzQwIFx1YzgwNFx1YzgwMVx1YzczY1x1Yjg1YyBcdWQ2OGNcdWJlNDRcdWM1ZDAgIiArCisgICAgICAgICJcdWM3NThcdWQ1NzQgXHVjZGE5XHViMmY5XHViNDI5XHViMmM4XHViMmU0LiBcdWM3MjBcdWIyYzhcdWNmNTRcdWI0ZGMgIiArCisgICAgICAgICJcdWNlZThcdWMxOGNcdWMyZGNcdWM1YzRcdWM1ZDBcdWMxMWNcdWM3NTggXHViYTY0XHViYzg0XHVjMjdkXHVjNzQwICIgKworICAgICAgICAiXHVjODA0IFx1YzEzOFx1YWNjNCBcdWM1YjRcdWIyOTAgXHVhY2YzXHVjNWQwXHVjMTFjXHViMDk4ICIgKworICAgICAgICAiXHVjNzIwXHViMmM4XHVjZjU0XHViNGRjIFx1ZDQ1Y1x1YzkwMFx1Yzc0NCBcdWM5YzBcdWM2ZDBcdWQ1NThcdWFjZTAgIiArCisgICAgICAgICJcdWFkZjggXHVkNjU1XHVjN2E1XHVhY2ZjIFx1YWQ2Y1x1ZDYwNFx1Yzc0NCAiICsKKyAgICAgICAgIlx1YzljMFx1YzZkMFx1ZDU1OFx1YWNlMFx1Yzc5MFx1ZDU1OFx1YjI5NCBcdWM4NzBcdWM5YzFcdWFjZmMgIiArCisgICAgICAgICJcdWFjMWNcdWM3NzhcdWM1ZDBcdWFjOGMgXHVhYzFjXHViYzI5XHViNDE4XHVjNWI0ICIgKworICAgICAgICAiXHVjNzg4XHVjMmI1XHViMmM4XHViMmU0LiAiICsKKyAgICAgICAgCisgICAgICAgICJcdWIzNTQgXHVjNzkwXHVjMTM4XHVkNTVjIFx1YjBiNFx1YzZhOVx1Yzc0MCBcdWM2YTlcdWM1YjRcdWM5ZDEsICIgKworICAgICAgICAiXHVjNjA4XHVjODFjIFx1YzcyMFx1YjJjOFx1Y2Y1NFx1YjRkYyBcdWMwYWNcdWM2YTkgXHVhYzAwXHViMmE1ICIgKworICAgICAgICAiXHVjODFjXHVkNDg4LCBcdWFlMzBcdWMyMjAgXHVjODE1XHViY2Y0IFx1YmMwZiBcdWFlMzBcdWQwYzAgIiArCisgICAgICAgICJcdWM3MjBcdWM2YTlcdWQ1NWMgXHVjODE1XHViY2Y0XHViOTdjICIgKworICAgICAgICAiXHVjYzM4XHVjODcwXHVkNTU4XHVjMmVkXHVjMmRjXHVjNjI0LiI7CisKKyAgICAvLyBUcmFuc2xpdGVyYXRvclRlc3Qgb3ZlcnJpZGUKKyAgICBib29sZWFuIGV4cGVjdEF1eChTdHJpbmcgdGFnLCBTdHJpbmcgc3VtbWFyeSwgYm9vbGVhbiBwYXNzLAorICAgICAgICAgICAgICAgICAgIFN0cmluZyBleHBlY3RlZFJlc3VsdCkgeworICAgICAgICByZXR1cm4gc3VwZXIuZXhwZWN0QXV4KHRhZywgamFtb1RvTmFtZShzdW1tYXJ5KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhc3MsIGphbW9Ub05hbWUoZXhwZWN0ZWRSZXN1bHQpKTsKKyAgICB9CisKKyAgICAvLyBVVElMSVRJRVMKKworICAgIC8vIE5vdGU6IFRoZSBmb2xsb3dpbmcgY291bGQgbW9yZSBlYXNpbHkgYmUgZG9uZSB3aXRoIGEgdHJhbnNsaXRlcmF0b3IhCisgICAgc3RhdGljIGZpbmFsIFN0cmluZ1tdIEpBTU9fTkFNRVMgPSB7CisgICAgICAgICIoR2kpIiwgIlx1MTEwMCIsCisgICAgICAgICIoR0dpKSIsICJcdTExMDEiLAorICAgICAgICAiKE5pKSIsICJcdTExMDIiLAorICAgICAgICAiKERpKSIsICJcdTExMDMiLAorICAgICAgICAiKEREKSIsICJcdTExMDQiLAorICAgICAgICAiKFIpIiwgIlx1MTEwNSIsCisgICAgICAgICIoTWkpIiwgIlx1MTEwNiIsCisgICAgICAgICIoQmkpIiwgIlx1MTEwNyIsCisgICAgICAgICIoQkIpIiwgIlx1MTEwOCIsCisgICAgICAgICIoU2kpIiwgIlx1MTEwOSIsCisgICAgICAgICIoU1NpKSIsICJcdTExMEEiLAorICAgICAgICAiKElFVU5HKSIsICJcdTExMEIiLAorICAgICAgICAiKEppKSIsICJcdTExMEMiLAorICAgICAgICAiKEpKKSIsICJcdTExMEQiLAorICAgICAgICAiKENpKSIsICJcdTExMEUiLAorICAgICAgICAiKEtpKSIsICJcdTExMEYiLAorICAgICAgICAiKFRpKSIsICJcdTExMTAiLAorICAgICAgICAiKFBpKSIsICJcdTExMTEiLAorICAgICAgICAiKEhpKSIsICJcdTExMTIiLAorICAgICAgICAKKyAgICAgICAgIihBKSIsICJcdTExNjEiLAorICAgICAgICAiKEFFKSIsICJcdTExNjIiLAorICAgICAgICAiKFlBKSIsICJcdTExNjMiLAorICAgICAgICAiKFlBRSkiLCAiXHUxMTY0IiwKKyAgICAgICAgIihFTykiLCAiXHUxMTY1IiwKKyAgICAgICAgIihFKSIsICJcdTExNjYiLAorICAgICAgICAiKFlFTykiLCAiXHUxMTY3IiwKKyAgICAgICAgIihZRSkiLCAiXHUxMTY4IiwKKyAgICAgICAgIihPKSIsICJcdTExNjkiLAorICAgICAgICAiKFdBKSIsICJcdTExNkEiLAorICAgICAgICAiKFdBRSkiLCAiXHUxMTZCIiwKKyAgICAgICAgIihPRSkiLCAiXHUxMTZDIiwKKyAgICAgICAgIihZTykiLCAiXHUxMTZEIiwKKyAgICAgICAgIihVKSIsICJcdTExNkUiLAorICAgICAgICAiKFdFTykiLCAiXHUxMTZGIiwKKyAgICAgICAgIihXRSkiLCAiXHUxMTcwIiwKKyAgICAgICAgIihXSSkiLCAiXHUxMTcxIiwKKyAgICAgICAgIihZVSkiLCAiXHUxMTcyIiwKKyAgICAgICAgIihFVSkiLCAiXHUxMTczIiwKKyAgICAgICAgIihZSSkiLCAiXHUxMTc0IiwKKyAgICAgICAgIihJKSIsICJcdTExNzUiLAorCisgICAgICAgICIoR2YpIiwgIlx1MTFBOCIsCisgICAgICAgICIoR0dmKSIsICJcdTExQTkiLAorICAgICAgICAiKEdTKSIsICJcdTExQUEiLAorICAgICAgICAiKE5mKSIsICJcdTExQUIiLAorICAgICAgICAiKE5KKSIsICJcdTExQUMiLAorICAgICAgICAiKE5IKSIsICJcdTExQUQiLAorICAgICAgICAiKERmKSIsICJcdTExQUUiLAorICAgICAgICAiKEwpIiwgIlx1MTFBRiIsCisgICAgICAgICIoTEcpIiwgIlx1MTFCMCIsCisgICAgICAgICIoTE0pIiwgIlx1MTFCMSIsCisgICAgICAgICIoTEIpIiwgIlx1MTFCMiIsCisgICAgICAgICIoTFMpIiwgIlx1MTFCMyIsCisgICAgICAgICIoTFQpIiwgIlx1MTFCNCIsCisgICAgICAgICIoTFApIiwgIlx1MTFCNSIsCisgICAgICAgICIoTEgpIiwgIlx1MTFCNiIsCisgICAgICAgICIoTWYpIiwgIlx1MTFCNyIsCisgICAgICAgICIoQmYpIiwgIlx1MTFCOCIsCisgICAgICAgICIoQlMpIiwgIlx1MTFCOSIsCisgICAgICAgICIoU2YpIiwgIlx1MTFCQSIsCisgICAgICAgICIoU1NmKSIsICJcdTExQkIiLAorICAgICAgICAiKE5HKSIsICJcdTExQkMiLAorICAgICAgICAiKEpmKSIsICJcdTExQkQiLAorICAgICAgICAiKENmKSIsICJcdTExQkUiLAorICAgICAgICAiKEtmKSIsICJcdTExQkYiLAorICAgICAgICAiKFRmKSIsICJcdTExQzAiLAorICAgICAgICAiKFBmKSIsICJcdTExQzEiLAorICAgICAgICAiKEhmKSIsICJcdTExQzIiLAorICAgIH07CisKKyAgICBzdGF0aWMgSGFzaHRhYmxlIEpBTU9fVE9fTkFNRTsKKyAgICBzdGF0aWMgSGFzaHRhYmxlIE5BTUVfVE9fSkFNTzsKKworICAgIHN0YXRpYyB7CisgICAgICAgIEpBTU9fVE9fTkFNRSA9IG5ldyBIYXNodGFibGUoKTsKKyAgICAgICAgTkFNRV9UT19KQU1PID0gbmV3IEhhc2h0YWJsZSgpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8SkFNT19OQU1FUy5sZW5ndGg7IGkrPTIpIHsKKyAgICAgICAgICAgIEpBTU9fVE9fTkFNRS5wdXQoSkFNT19OQU1FU1tpKzFdLCBKQU1PX05BTUVTW2ldKTsKKyAgICAgICAgICAgIE5BTUVfVE9fSkFNTy5wdXQoSkFNT19OQU1FU1tpXSwgSkFNT19OQU1FU1tpKzFdKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgc2hvcnQgbmFtZXMgdG8gYWN0dWFsIGphbW8uICBFLmcuLCAieChMRyl5IiByZXR1cm5zCisgICAgICogInhcdTExQjB5Ii4gIFNlZSBKQU1PX05BTUVTIGZvciB0YWJsZSBvZiBuYW1lcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgU3RyaW5nIG5hbWVUb0phbW8oU3RyaW5nIGlucHV0KSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxpbnB1dC5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGMgPSBpbnB1dC5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoYyA9PSAnKCcpIHsKKyAgICAgICAgICAgICAgICBpbnQgaiA9IGlucHV0LmluZGV4T2YoJyknLCBpKzEpOworICAgICAgICAgICAgICAgIGlmICgoai1pKSA+PSAyICYmIChqLWkpIDw9IDYpIHsgLy8gIihBKSIsICIoSUVVTkcpIgorICAgICAgICAgICAgICAgICAgICBTdHJpbmcgamFtbyA9IChTdHJpbmcpIE5BTUVfVE9fSkFNTy5nZXQoaW5wdXQuc3Vic3RyaW5nKGksIGorMSkpOworICAgICAgICAgICAgICAgICAgICBpZiAoamFtbyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGphbW8pOworICAgICAgICAgICAgICAgICAgICAgICAgaSA9IGo7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoYyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgamFtbyB0byBzaG9ydCBuYW1lcy4gIEUuZy4sICJ4XHUxMUIweSIgcmV0dXJucworICAgICAqICJ4KExHKXkiLiAgU2VlIEpBTU9fTkFNRVMgZm9yIHRhYmxlIG9mIG5hbWVzLgorICAgICAqLworICAgIHN0YXRpYyBTdHJpbmcgamFtb1RvTmFtZShTdHJpbmcgaW5wdXQpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPGlucHV0Lmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IGlucHV0LmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmIChjID49IDB4MTEwMCAmJiBjIDw9IDB4MTFDMikgeworICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lID0gKFN0cmluZykgSkFNT19UT19OQU1FLmdldChpbnB1dC5zdWJzdHJpbmcoaSwgaSsxKSk7CisgICAgICAgICAgICAgICAgaWYgKG5hbWUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKG5hbWUpOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBidWYuYXBwZW5kKGMpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvUmVwbGFjZWFibGVUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvUmVwbGFjZWFibGVUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYWVmMTJlNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9SZXBsYWNlYWJsZVRlc3QuamF2YQpAQCAtMCwwICsxLDE2NiBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9SZXBsYWNlYWJsZVRlc3QuamF2YSx2ICQKKyAqICREYXRlOiAyMDAyLzA4LzEzIDIyOjA3OjU4ICQKKyAqICRSZXZpc2lvbjogMS4xMSAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC50cmFuc2xpdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC5CaXRTZXQ7CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworCisvKioKKyAqIEB0ZXN0CisgKiBAc3VtbWFyeSBSb3VuZCB0cmlwIHRlc3Qgb2YgVHJhbnNsaXRlcmF0b3IKKyAqLworcHVibGljIGNsYXNzIFJlcGxhY2VhYmxlVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKwkKKwlwdWJsaWMgc3RhdGljIGZpbmFsIGJvb2xlYW4gTEFURVJfVEhBTl8yXzEgPSBmYWxzZTsKKwkKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFJlcGxhY2VhYmxlVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgIAorICAgIHB1YmxpYyB2b2lkIFRlc3QoKSB0aHJvd3MgSU9FeGNlcHRpb24sIFBhcnNlRXhjZXB0aW9uIHsKKyAgICAgICAgY2hlY2soIkxvd2VyIiwgIkFCQ0QiLCAiMTIzNCIpOworICAgICAgICBjaGVjaygiVXBwZXIiLCAiYWJjZFx1MDBERiIsICIxMjM0NTUiKTsgLy8gbXVzdCBtYXAgMDBERiB0byBTUworICAgICAgICBjaGVjaygiVGl0bGUiLCAiYUJDRCIsICIxMjM0Iik7CisgICAgICAgIGNoZWNrKCJORkMiLCAiQVx1MDMwMEVcdTAzMDAiLCAiMTMiKTsKKyAgICAgICAgY2hlY2soIk5GRCIsICJcdTAwQzBcdTAwQzgiLCAiMTEyMiIpOworICAgICAgICBpZiAoIUxBVEVSX1RIQU5fMl8xKSByZXR1cm47CisgICAgICAgIGNoZWNrKCIqKHgpID4gQSAkMSBCIiwgInd4eSIsICIxMTIyMyIpOworICAgICAgICBjaGVjaygiKih4KSh5KSA+IEEgJDIgQiAkMSBDICQyIEQiLCAid3h5eiIsICIxMTMzMjIzMzQiKTsKKyAgICAgICAgY2hlY2soIiooeCkoeSkoeikgPiBBICQzIEIgJDIgQyAkMSBEIiwgInd4eXp1IiwgIjExNDQzMzIyNSIpOworICAgIH0KKyAgICAKKyAgICB2b2lkIGNoZWNrKFN0cmluZyB0cmFuc2xpdGVyYXRvck5hbWUsIFN0cmluZyB0ZXN0LCBTdHJpbmcgc2hvdWxkUHJvZHVjZVN0eWxlcykgeworICAgICAgICBUZXN0UmVwbGFjZWFibGUgdHIgPSBuZXcgVGVzdFJlcGxhY2VhYmxlKHRlc3QsIG51bGwpOworICAgICAgICBTdHJpbmcgb3JpZ2luYWwgPSB0ci50b1N0cmluZygpOworICAgICAgICAKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDsKKyAgICAgICAgaWYgKHRyYW5zbGl0ZXJhdG9yTmFtZS5zdGFydHNXaXRoKCIqIikpIHsKKyAgICAgICAgCXRyYW5zbGl0ZXJhdG9yTmFtZSA9IHRyYW5zbGl0ZXJhdG9yTmFtZS5zdWJzdHJpbmcoMSk7CisgICAgICAgIAl0ID0gbmV3IFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yKCJ0ZXN0IiwgdHJhbnNsaXRlcmF0b3JOYW1lKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgCXQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSh0cmFuc2xpdGVyYXRvck5hbWUpOworICAgICAgICB9CisgICAgICAgIHQudHJhbnNsaXRlcmF0ZSh0cik7CisgICAgICAgIFN0cmluZyBuZXdTdHlsZXMgPSB0ci5nZXRTdHlsZXMoKTsKKyAgICAgICAgaWYgKCFuZXdTdHlsZXMuZXF1YWxzKHNob3VsZFByb2R1Y2VTdHlsZXMpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTCBTdHlsZXM6ICIgKyB0cmFuc2xpdGVyYXRvck5hbWUgKyAiICggIgorICAgICAgICAgICAgICAgICsgb3JpZ2luYWwgKyAiICkgPT4gIiArIHRyLnRvU3RyaW5nKCkgKyAiOyBzaG91bGQgYmUgeyIgKyBzaG91bGRQcm9kdWNlU3R5bGVzICsgIn0hIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2dsbigiT0s6ICIgKyB0cmFuc2xpdGVyYXRvck5hbWUgKyAiICggIiArIG9yaWdpbmFsICsgIiApID0+ICIgKyB0ci50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKworICAgIC8qKgorICAgICAqIFRoaXMgaXMgYSB0ZXN0IGNsYXNzIHRoYXQgc2ltdWxhdGVzIHN0eWxlZCB0ZXh0LgorICAgICAqIEl0IGFzc29jaWF0ZXMgYSBzdHlsZSBudW1iZXIgKDAuLjY1NTM2KSB3aXRoIGVhY2ggY2hhcmFjdGVyLAorICAgICAqIGFuZCBtYWludGFpbnMgdGhhdCBzdHlsZSBpbiB0aGUgbm9ybWFsIGZhc2hpb246CisgICAgICogV2hlbiBzZXR0aW5nIHRleHQgZnJvbSByYXcgc3RyaW5nIG9yIGNoYXJhY3RlcnMsPGJyPgorICAgICAqIFNldCB0aGUgc3R5bGVzIHRvIHRoZSBzdHlsZSBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIHJlcGxhY2VkLjxicj4KKyAgICAgKiBJZiBubyBjaGFyYWN0ZXJzIGFyZSByZXBsYWNlZCwgdXNlIHRoZSBzdHlsZSBvZiB0aGUgcHJldmlvdXMgY2hhcmFjdGVyLjxicj4KKyAgICAgKiBJZiBhdCBzdGFydCwgdXNlIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyPGJyPgorICAgICAqIE90aGVyd2lzZSB1c2UgZGVmYXVsdFN0eWxlLgorICAgICAqLworICAgIHN0YXRpYyBjbGFzcyBUZXN0UmVwbGFjZWFibGUgaW1wbGVtZW50cyBSZXBsYWNlYWJsZSB7CisgICAgICAgIFJlcGxhY2VhYmxlU3RyaW5nIGNoYXJzOworICAgICAgICBSZXBsYWNlYWJsZVN0cmluZyBzdHlsZXM7CisgICAgICAgIAorICAgICAgICBjaGFyIGRlZmF1bHRTdHlsZSA9ICdfJzsKKyAgICAgICAgCisgICAgICAgIFRlc3RSZXBsYWNlYWJsZSAoU3RyaW5nIHRleHQsIFN0cmluZyBzdHlsZXMpIHsKKyAgICAgICAgICAgIGNoYXJzID0gbmV3IFJlcGxhY2VhYmxlU3RyaW5nKHRleHQpOworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHMgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRleHQubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChzdHlsZXMgIT0gbnVsbCAmJiBpIDwgc3R5bGVzLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHMuYXBwZW5kKHN0eWxlcy5jaGFyQXQoaSkpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHMuYXBwZW5kKChjaGFyKSAoaSArICcxJykpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRoaXMuc3R5bGVzID0gbmV3IFJlcGxhY2VhYmxlU3RyaW5nKHMudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0U3R5bGVzKCkgeworICAgICAgICAgICAgcmV0dXJuIHN0eWxlcy50b1N0cmluZygpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgcmV0dXJuIGNoYXJzLnRvU3RyaW5nKCkgKyAieyIgKyBzdHlsZXMudG9TdHJpbmcoKSArICJ9IjsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTdHJpbmcgc3Vic3RyaW5nKGludCBzdGFydCwgaW50IGxpbWl0KSB7CisgICAgICAgICAgICByZXR1cm4gY2hhcnMuc3Vic3RyaW5nKHN0YXJ0LCBsaW1pdCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGxlbmd0aCgpIHsKKyAgICAgICAgICAgIHJldHVybiBjaGFycy5sZW5ndGgoKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBjaGFyIGNoYXJBdChpbnQgb2Zmc2V0KSB7CisgICAgICAgICAgICByZXR1cm4gY2hhcnMuY2hhckF0KG9mZnNldCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGNoYXIzMkF0KGludCBvZmZzZXQpIHsKKyAgICAgICAgICAgIHJldHVybiBjaGFycy5jaGFyMzJBdChvZmZzZXQpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgZ2V0Q2hhcnMoaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQsIGNoYXIgZHN0W10sIGludCBkc3RTdGFydCkgeworICAgICAgICAgICAgY2hhcnMuZ2V0Q2hhcnMoc3JjU3RhcnQsIHNyY0xpbWl0LCBkc3QsIGRzdFN0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIFN0cmluZyB0ZXh0KSB7CisgICAgICAgICAgICBpZiAoc3Vic3RyaW5nKHN0YXJ0LGxpbWl0KS5lcXVhbHModGV4dCkpIHJldHVybjsgLy8gTk8gQUNUSU9OIQorICAgICAgICAgICAgY2hhcnMucmVwbGFjZShzdGFydCwgbGltaXQsIHRleHQpOworICAgICAgICAgICAgZml4U3R5bGVzKHN0YXJ0LCBsaW1pdCwgdGV4dC5sZW5ndGgoKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyB2b2lkIHJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIGNoYXJbXSBjaGFycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2hhcnNTdGFydCwgaW50IGNoYXJzTGVuKSB7CisgICAgICAgICAgICBpZiAoc3Vic3RyaW5nKHN0YXJ0LGxpbWl0KS5lcXVhbHMobmV3IFN0cmluZyhjaGFycywgY2hhcnNTdGFydCwgY2hhcnNMZW4tY2hhcnNTdGFydCkpKSByZXR1cm47IC8vIE5PIEFDVElPTiEKKyAgICAgICAgICAgIHRoaXMuY2hhcnMucmVwbGFjZShzdGFydCwgbGltaXQsIGNoYXJzLCBjaGFyc1N0YXJ0LCBjaGFyc0xlbik7CisgICAgICAgICAgICBmaXhTdHlsZXMoc3RhcnQsIGxpbWl0LCBjaGFyc0xlbi1jaGFyc1N0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgZml4U3R5bGVzKGludCBzdGFydCwgaW50IGxpbWl0LCBpbnQgbmV3TGVuKSB7CisgICAgICAgICAgICBjaGFyIG5ld1N0eWxlID0gZGVmYXVsdFN0eWxlOworICAgICAgICAgICAgaWYgKHN0YXJ0ICE9IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgbmV3U3R5bGUgPSBzdHlsZXMuY2hhckF0KHN0YXJ0KTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RhcnQgPiAwKSB7CisgICAgICAgICAgICAgICAgbmV3U3R5bGUgPSBzdHlsZXMuY2hhckF0KHN0YXJ0LTEpOworICAgICAgICAgICAgfSBlbHNlIGlmIChsaW1pdCA8IHN0eWxlcy5sZW5ndGgoKSAtIDEpIHsKKyAgICAgICAgICAgICAgICBuZXdTdHlsZSA9IHN0eWxlcy5jaGFyQXQobGltaXQrMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBkdW1iIGltcGxlbWVudGF0aW9uIGZvciBub3cuCisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbmV3TGVuOyArK2kpIHsKKyAgICAgICAgICAgICAgICBzLmFwcGVuZChuZXdTdHlsZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdHlsZXMucmVwbGFjZShzdGFydCwgbGltaXQsIHMudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBjb3B5KGludCBzdGFydCwgaW50IGxpbWl0LCBpbnQgZGVzdCkgeworICAgICAgICAgICAgY2hhcnMuY29weShzdGFydCwgbGltaXQsIGRlc3QpOworICAgICAgICAgICAgc3R5bGVzLmNvcHkoc3RhcnQsIGxpbWl0LCBkZXN0KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaGFzTWV0YURhdGEoKSB7CisgICAgICAgIAlyZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9Sb3VuZFRyaXBUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvUm91bmRUcmlwVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJhYTllNjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvUm91bmRUcmlwVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTM3NSBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9Sb3VuZFRyaXBUZXN0LmphdmEsdiAkCisgKiAkRGF0ZTogMjAwMi8wOC8xMyAyMjowNzo1NyAkCisgKiAkUmV2aXNpb246IDEuNDcgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudHJhbnNsaXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworLyoqCisgKiBAdGVzdAorICogQHN1bW1hcnkgUm91bmQgdHJpcCB0ZXN0IG9mIFRyYW5zbGl0ZXJhdG9yCisgKi8KK3B1YmxpYyBjbGFzcyBSb3VuZFRyaXBUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIAorICAgIHN0YXRpYyBmaW5hbCBib29sZWFuIEVYVFJBX1RFU1RTID0gdHJ1ZTsKKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbiBQUklOVF9SVUxFUyA9IHRydWU7CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBSb3VuZFRyaXBUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAvKgorICAgIHB1YmxpYyB2b2lkIFRlc3RTaW5nbGUoKSB0aHJvd3MgSU9FeGNlcHRpb24sIFBhcnNlRXhjZXB0aW9uIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJMYXRpbi1HcmVlayIpOworICAgICAgICBTdHJpbmcgcyA9IHQudHJhbnNsaXRlcmF0ZSgiXHUwMTAxXHUwMDY5Iik7CisgICAgfQorICAgICovCisgICAgCisgICAgLyoKKyAgICBOb3RlOiBVbmljb2RlIDMuMiBhZGRlZCBuZXcgSGlyYWdhbmEvS2F0YWthbmEgY2hhcmFjdGVyczoKKyAgICAKKzMwOTUuLjMwOTYgICAgOyAzLjIgIyAgIFsyXSBISVJBR0FOQSBMRVRURVIgU01BTEwgS0EuLkhJUkFHQU5BIExFVFRFUiBTTUFMTCBLRQorMzA5Ri4uMzBBMCAgICA7IDMuMiAjICAgWzJdIEhJUkFHQU5BIERJR1JBUEggWU9SSS4uS0FUQUtBTkEtSElSQUdBTkEgRE9VQkxFIEhZUEhFTgorMzBGRiAgICAgICAgICA7IDMuMiAjICAgICAgIEtBVEFLQU5BIERJR1JBUEggS09UTworMzFGMC4uMzFGRiAgICA7IDMuMiAjICBbMTZdIEtBVEFLQU5BIExFVFRFUiBTTUFMTCBLVS4uS0FUQUtBTkEgTEVUVEVSIFNNQUxMIFJPCisKKyAgICBXZSB3aWxsIG5vdCBhZGQgdGhlbSB0byB0aGUgcnVsZXMgdW50aWwgdGhleSBhcmUgbW9yZSBzdXBwb3J0ZWQgKGUuZy4gaW4gZm9udHMgb24gV2luZG93cykKKyAgICBBIGJ1ZyBoYXMgYmVlbiBmaWxlZCB0byByZW1pbmQgdXMgdG8gZG8gdGhpczogIzE5NzkuCisgICAgKi8KKyAgICAKKyAgICBzdGF0aWMgU3RyaW5nIEtBVEFLQU5BID0gIltbWzprYXRha2FuYTpdW1x1MzBBMS1cdTMwRkFcdTMwRkNdXS1bXHUzMEZGXHUzMUYwLVx1MzFGRl1dIjsKKyAgICBzdGF0aWMgU3RyaW5nIEhJUkFHQU5BID0gIltbWzpoaXJhZ2FuYTpdW1x1MzA0MC1cdTMwOTRdXS1bXHUzMDk1LVx1MzA5Nlx1MzA5Ri1cdTMwQTBdXSI7CisgICAgc3RhdGljIFN0cmluZyBMRU5HVEggPSAiW1x1MzBGQ10iOworICAgIHN0YXRpYyBTdHJpbmcgSEFMRldJRFRIX0tBVEFLQU5BID0gIltcdUZGNjUtXHVGRjlEXSI7CisgICAgc3RhdGljIFN0cmluZyBLQVRBS0FOQV9JVEVSQVRJT04gPSAiW1x1MzBGRFx1MzBGRV0iOworICAgIHN0YXRpYyBTdHJpbmcgSElSQUdBTkFfSVRFUkFUSU9OID0gIltcdTMwOURcdTMwOUVdIjsKKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0S2FuYSgpIHRocm93cyBJT0V4Y2VwdGlvbiwgUGFyc2VFeGNlcHRpb24geworICAgICAgICBuZXcgVGVzdCgiS2F0YWthbmEtSGlyYWdhbmEiKQorICAgICAgICAgIC50ZXN0KEtBVEFLQU5BLCAiWyIgKyBISVJBR0FOQSArIExFTkdUSCArICJdIiwgIlsiICsgSEFMRldJRFRIX0tBVEFLQU5BICsgTEVOR1RIICsgIl0iLCB0aGlzLCBuZXcgTGVnYWwoKSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEhpcmFnYW5hKCkgdGhyb3dzIElPRXhjZXB0aW9uLCBQYXJzZUV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBUZXN0KCJMYXRpbi1IaXJhZ2FuYSIpCisgICAgICAgICAgLnRlc3QoIlthLXpBLVpdIiwgSElSQUdBTkEsIEhJUkFHQU5BX0lURVJBVElPTiwgdGhpcywgbmV3IExlZ2FsKCkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0S2F0YWthbmEoKSB0aHJvd3MgSU9FeGNlcHRpb24sIFBhcnNlRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFRlc3QoIkxhdGluLUthdGFrYW5hIikKKyAgICAgICAgICAudGVzdCgiW2EtekEtWl0iLCBLQVRBS0FOQSwgIlsiICsgS0FUQUtBTkFfSVRFUkFUSU9OICsgSEFMRldJRFRIX0tBVEFLQU5BICsgIl0iLCB0aGlzLCBuZXcgTGVnYWwoKSk7CisgICAgfQorCisvLyBTb21lIHRyYW5zbGl0ZXJhdG9ycyByZW1vdmVkIGZvciAyLjAKKworLy8gIHB1YmxpYyB2b2lkIFRlc3RBcmFiaWMoKSB0aHJvd3MgSU9FeGNlcHRpb24sIFBhcnNlRXhjZXB0aW9uIHsKKy8vICAgICAgbmV3IFRlc3QoIkxhdGluLUFyYWJpYyIsIAorLy8gICAgICAgIFRlc3RVdGlsaXR5LkxBVElOX1NDUklQVCwgVGVzdFV0aWxpdHkuQVJBQklDX1NDUklQVCkKKy8vICAgICAgICAudGVzdCgiW2EtekEtWl0iLCAiW1x1MDYyMC1cdTA2NUYtW1x1MDY0MF1dIiwgdGhpcyk7CisvLyAgfQorCisvLyAgcHVibGljIHZvaWQgVGVzdEhlYnJldygpIHRocm93cyBJT0V4Y2VwdGlvbiwgUGFyc2VFeGNlcHRpb24geworLy8gICAgICBuZXcgVGVzdCgiTGF0aW4tSGVicmV3IiwgCisvLyAgICAgICAgVGVzdFV0aWxpdHkuTEFUSU5fU0NSSVBULCBUZXN0VXRpbGl0eS5IRUJSRVdfU0NSSVBUKQorLy8gICAgICAgIC50ZXN0KG51bGwsICJbXHUwNUQwLVx1MDVFRl0iLCB0aGlzKTsKKy8vICB9CisKKy8vICBwdWJsaWMgdm9pZCBUZXN0SGFuZ3VsKCkgdGhyb3dzIElPRXhjZXB0aW9uLCBQYXJzZUV4Y2VwdGlvbiB7CisvLyAgICAgIFRlc3QgdCA9IG5ldyBUZXN0SGFuZ3VsKCk7CisvLyAgICAgIHQuc2V0UGFpckxpbWl0KDMwKTsgLy8gRG9uJ3QgcnVuIGZ1bGwgdGVzdCAtLSB0b28gbG9uZworLy8gICAgICB0LnRlc3QobnVsbCwgbnVsbCwgdGhpcyk7CisvLyAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEphbW8oKSB0aHJvd3MgSU9FeGNlcHRpb24sIFBhcnNlRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFRlc3QoIkxhdGluLUphbW8iKQorICAgICAgICAgICAgLnRlc3QoIlthLXpBLVpdIiwgIltcdTExMDAtXHUxMTEyIFx1MTE2MS1cdTExNzUgXHUxMUE4LVx1MTFDMl0iLCAiIiwgdGhpcywgbmV3IExlZ2FsSmFtbygpKTsKKyAgICB9CisKKy8qCisgICAgICAgIFNCYXNlID0gMHhBQzAwLCBMQmFzZSA9IDB4MTEwMCwgVkJhc2UgPSAweDExNjEsIFRCYXNlID0gMHgxMUE3LAorICAgICAgICBMQ291bnQgPSAxOSwgVkNvdW50ID0gMjEsIFRDb3VudCA9IDI4LAorICAgICAgICBOQ291bnQgPSBWQ291bnQgKiBUQ291bnQsICAgLy8gNTg4CisgICAgICAgIFNDb3VudCA9IExDb3VudCAqIE5Db3VudCwgICAvLyAxMTE3MgorICAgICAgICBMTGltaXQgPSBMQmFzZSArIExDb3VudCwgICAgLy8gMTExMworICAgICAgICBWTGltaXQgPSBWQmFzZSArIFZDb3VudCwgICAgLy8gMTE3NgorICAgICAgICBUTGltaXQgPSBUQmFzZSArIFRDb3VudCwgICAgLy8gMTFDMworICAgICAgICBTTGltaXQgPSBTQmFzZSArIFNDb3VudDsgICAgLy8gRDdBNAorKi8KKworICAgIHB1YmxpYyB2b2lkIFRlc3RIYW5ndWwoKSB0aHJvd3MgSU9FeGNlcHRpb24sIFBhcnNlRXhjZXB0aW9uIHsKKyAgICAgICAgVGVzdCB0ID0gbmV3IFRlc3QoIkxhdGluLUhhbmd1bCIpOworICAgICAgICB0LnRlc3QoIlthLXpBLVpdIiwgIltcdUFDMDAtXHVEN0E0XSIsICIiLCB0aGlzLCBuZXcgTGVnYWwoKSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RTaW5nbGUoKSB7CisJCVRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTGF0aW4tR3JlZWsiKTsKKyAgICAJdC50cmFuc2xpdGVyYXRlKCJcdTAwNjFcdTAxMDFcdTAwNjkiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0R3JlZWsoKSB0aHJvd3MgSU9FeGNlcHRpb24sIFBhcnNlRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFRlc3QoIkxhdGluLUdyZWVrIikKKyAgICAgICAgLnRlc3QoIlthLXpBLVpdIiwgIltcdTAwM0JcdTAwQjdbOkdyZWVrOl0tW1x1MDNENy1cdTAzRUZdXSIsIAorICAgICAgICAgICAgIltcdTAwQjVcdTAzN0FcdTAzRDAtXHUwM0Y1XSIsIC8qIHJvdW5kdHJpcCBleGNsdXNpb25zICovCisgICAgICAgICAgICB0aGlzLCBuZXcgTGVnYWxHcmVlayh0cnVlKSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEdyZWVrVU5HRUdOKCkgdGhyb3dzIElPRXhjZXB0aW9uLCBQYXJzZUV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBUZXN0KCJMYXRpbi1HcmVlay9VTkdFR04iKQorICAgICAgICAgIC50ZXN0KCJbYS16QS1aXSIsICJbXHUwMDNCXHUwMEI3WzpHcmVlazpdLVtcdTAzRDctXHUwM0VGXV0iLCAKKyAgICAgICAgICAgICJbXHUwMEI1XHUwMzdBXHUwM0QwLVx1RkZGRntcdTAzOUNcdTAzQzB9XSIsIC8qIHJvdW5kdHJpcCBleGNsdXNpb25zICovCisgICAgICAgICAgICB0aGlzLCBuZXcgTGVnYWxHcmVlayhmYWxzZSkpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RlbCgpIHRocm93cyBJT0V4Y2VwdGlvbiwgUGFyc2VFeGNlcHRpb24geworICAgICAgICBuZXcgVGVzdCgiTGF0aW4tZWwiKQorICAgICAgICAgIC50ZXN0KCJbYS16QS1aXSIsICJbXHUwMDNCXHUwMEI3WzpHcmVlazpdLVtcdTAzRDctXHUwM0VGXV0iLCAKKyAgICAgICAgICAgICJbXHUwMEI1XHUwMzdBXHUwM0QwLVx1RkZGRntcdTAzOUNcdTAzQzB9XSIsIC8qIHJvdW5kdHJpcCBleGNsdXNpb25zICovCisgICAgICAgICAgICB0aGlzLCBuZXcgTGVnYWxHcmVlayhmYWxzZSkpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDeXJpbGxpYygpIHRocm93cyBJT0V4Y2VwdGlvbiwgUGFyc2VFeGNlcHRpb24geworICAgICAgICBuZXcgVGVzdCgiTGF0aW4tQ3lyaWxsaWMiKQorICAgICAgICAgIC50ZXN0KCJbYS16QS1aXHUwMTEwXHUwMTExXSIsICJbXHUwNDAwLVx1MDQ1Rl0iLCBudWxsLCB0aGlzLCBuZXcgTGVnYWwoKSk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQVJBQklDID0gIltcdTA2MENcdTA2MUJcdTA2MUZcdTA2MjFcdTA2MjctXHUwNjNBXHUwNjQxLVx1MDY1NVx1MDY2MC1cdTA2NkNcdTA2N0VcdTA2ODZcdTA2OThcdTA2QTRcdTA2QURcdTA2QUZcdTA2Q0ItXHUwNkNDXHUwNkYwLVx1MDZGOV0iOworCisgICAgcHVibGljIHZvaWQgVGVzdEFyYWJpYygpIHRocm93cyBJT0V4Y2VwdGlvbiwgUGFyc2VFeGNlcHRpb24geworICAgICAgICBuZXcgVGVzdCgiTGF0aW4tQXJhYmljIikKKyAgICAgICAgICAudGVzdCgiW2EtekEtWlx1MDJCRVx1MDJCRl0iLCBBUkFCSUMsICJbYS16QS1aXHUwMkJFXHUwMkJGXHUyMDdGXSIsIG51bGwsIHRoaXMsIG5ldyBMZWdhbCgpKTsgLy8gCisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RIZWJyZXcoKSB0aHJvd3MgSU9FeGNlcHRpb24sIFBhcnNlRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFRlc3QoIkxhdGluLUhlYnJldyIpCisgICAgICAgICAgLnRlc3QoIlthLXpBLVpcdTAyQkNcdTAyQkJdIiwgIltbOmhlYnJldzpdLVtcdUZCMDAtXHVGQkZGXV0iLCAiW1x1MDVGMFx1MDVGMVx1MDVGMl0iLCB0aGlzLCBuZXcgTGVnYWxIZWJyZXcoKSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RUaGFpKCkgdGhyb3dzIElPRXhjZXB0aW9uLCBQYXJzZUV4Y2VwdGlvbiB7CisgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJcblRlc3QgY29tbWVudGVkIG91dCwgdG8gYmUgcmVpbnN0YXRlZCBsYXRlciIpOworICAgICAgICAKKyAgICAgICAgbmV3IFRlc3QoIkxhdGluLVRoYWkiKQorICAgICAgICAgIC50ZXN0KCJbYS16QS1aXHUwMTQyXHUxRUNEXHUwMEU2XHUwMTMxXHUwMjY4XSIsICJbXHUwRTAxLVx1MEUzQVx1MEU0MC1cdTBFNUJdIiwgbnVsbCwgdGhpcywgbmV3IExlZ2FsVGhhaSgpKTsKKyAgICAgICAgCisgICAgfQorICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEludGVyLUluZGljIFRlc3RzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBMZWdhbEluZGljIGV4dGVuZHMgTGVnYWx7CisgICAgICAgIFVuaWNvZGVTZXQgdm93ZWxTaWduU2V0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBMZWdhbEluZGljKCl7CisgICAgICAgICAgICB2b3dlbFNpZ25TZXQuYWRkQWxsKG5ldyBVbmljb2RlU2V0KCJbXHUwOTAxXHUwOTAyXHUwOTAzXHUwOTNlLVx1MDk0Y1x1MDk2Mlx1MDk2M10iKSk7CQkJCS8qIERldmFuYWdhcmkgKi8KKyAgICAgICAgICAgIHZvd2VsU2lnblNldC5hZGRBbGwobmV3IFVuaWNvZGVTZXQoIltcdTA5ODFcdTA5ODJcdTA5ODNcdTA5YmUtXHUwOWNjXHUwOWUyXHUwOWUzXHUwOUQ3XSIpKTsJCQkvKiBCZW5nYWxpICovCisgICAgICAgICAgICB2b3dlbFNpZ25TZXQuYWRkQWxsKG5ldyBVbmljb2RlU2V0KCJbXHUwYTAxXHUwYTAyXHUwYTAzXHUwYTNlLVx1MGE0Y1x1MGE2Mlx1MGE2M1x1MGE3MFx1MGE3MV0iKSk7CS8qIEd1cm11a2hpICovCisgICAgICAgICAgICB2b3dlbFNpZ25TZXQuYWRkQWxsKG5ldyBVbmljb2RlU2V0KCJbXHUwYTgxXHUwYTgyXHUwYTgzXHUwYWJlLVx1MGFjY1x1MGFlMlx1MGFlM10iKSk7CQkJCS8qIEd1amFyYXRpICovCisgICAgICAgICAgICB2b3dlbFNpZ25TZXQuYWRkQWxsKG5ldyBVbmljb2RlU2V0KCJbXHUwYjAxXHUwYjAyXHUwYjAzXHUwYjNlLVx1MGI0Y1x1MGI2Mlx1MGI2M1x1MGI1Nlx1MGI1N10iKSk7CS8qIE9yaXlhICovCisgICAgICAgICAgICB2b3dlbFNpZ25TZXQuYWRkQWxsKG5ldyBVbmljb2RlU2V0KCJbXHUwYjgxXHUwYjgyXHUwYjgzXHUwYmJlLVx1MGJjY1x1MGJlMlx1MGJlM1x1MGJkN10iKSk7CQkJLyogVGFtaWwgKi8KKyAgICAgICAgICAgIHZvd2VsU2lnblNldC5hZGRBbGwobmV3IFVuaWNvZGVTZXQoIltcdTBjMDFcdTBjMDJcdTBjMDNcdTBjM2UtXHUwYzRjXHUwYzYyXHUwYzYzXHUwYzU1XHUwYzU2XSIpKTsJLyogVGVsdWd1ICovCisgICAgICAgICAgICB2b3dlbFNpZ25TZXQuYWRkQWxsKG5ldyBVbmljb2RlU2V0KCJbXHUwYzgxXHUwYzgyXHUwYzgzXHUwY2JlLVx1MGNjY1x1MGNlMlx1MGNlM1x1MGNkNVx1MGNkNl0iKSk7CS8qIEthbm5hZGEgKi8KKyAgICAgICAgICAgIHZvd2VsU2lnblNldC5hZGRBbGwobmV3IFVuaWNvZGVTZXQoIltcdTBkMDFcdTBkMDJcdTBkMDNcdTBkM2UtXHUwZDRjXHUwZDYyXHUwZDYzXHUwZDU3XSIpKTsJCQkvKiBNYWxheWFsYW0gKi8KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgU3RyaW5nIGF2YWdyYWhhID0gIlx1MDkzZFx1MGFiZFx1MGIzZCI7CisgICAgICAgIFN0cmluZyBudWt0YSA9ICJcdTA5M2NcdTA5YmNcdTBhM2NcdTBhYmNcdTBiM2MiOworICAgICAgICBTdHJpbmcgdmlyYW1hID0gIlx1MDk0ZFx1MDljZFx1MGE0ZFx1MGFjZFx1MGI0ZFx1MGJjZFx1MGM0ZFx1MGNjZFx1MGQ0ZCI7CisgICAgICAgIFN0cmluZyBzYW5za3JpdFN0cmVzc1NpZ25zID0gIlx1MDk1MVx1MDk1Mlx1MDk1M1x1MDk1NCI7CisgICAgICAgIFN0cmluZyBjaGFuZHJhYmluZHUgPSAiXHUwOTAxXHUwOTgxXHUwQTgxXHUwYjAxXHUwYzAxIjsKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXMoU3RyaW5nIHNvdXJjZVN0cmluZyl7CisgICAgICAgICAgICBpbnQgY3A9c291cmNlU3RyaW5nLmNoYXJBdCgwKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gQSB2b3dlbCBzaWduIGNhbm5vdCBiZSB0aGUgZmlyc3QgY2hhcgorICAgICAgICAgICAgaWYodm93ZWxTaWduU2V0LmNvbnRhaW5zKGNwKSl7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfWVsc2UgaWYoYXZhZ3JhaGEuaW5kZXhPZihjcCkhPS0xKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9ZWxzZSBpZih2aXJhbWEuaW5kZXhPZihjcCkhPS0xKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9ZWxzZSBpZihudWt0YS5pbmRleE9mKGNwKSE9LTEpeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH1lbHNlIGlmKHNhbnNrcml0U3RyZXNzU2lnbnMuaW5kZXhPZihjcCkhPS0xKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9ZWxzZSBpZigoY2hhbmRyYWJpbmR1LmluZGV4T2YoY3ApIT0tMSkgJiYgCisgICAgICAgICAgICAgICAgICAgICAgICAoc291cmNlU3RyaW5nLmxlbmd0aCgpID4xICYmIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvd2VsU2lnblNldC5jb250YWlucyhzb3VyY2VTdHJpbmcuY2hhckF0KDEpKSkpeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorICAgIHN0YXRpYyBTdHJpbmcgbGF0aW5Gb3JJbmRpYyA9ICJbWycuMC05QS1aYS16flx1MDBDMC1cdTAwQzVcdTAwQzctXHUwMENGXHUwMEQxLVx1MDBENlx1MDBEOS1cdTAwREQiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMEUwLVx1MDBFNVx1MDBFNy1cdTAwRUZcdTAwRjEtXHUwMEY2XHUwMEY5LVx1MDBGRFx1MDBGRi1cdTAxMEYiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTEyLVx1MDEyNVx1MDEyOC1cdTAxMzBcdTAxMzQtXHUwMTM3XHUwMTM5LVx1MDEzRVx1MDE0My1cdTAxNDgiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTRDLVx1MDE1MVx1MDE1NC1cdTAxNjVcdTAxNjgtXHUwMTdFXHUwMUEwLVx1MDFBMVx1MDFBRi1cdTAxQjAiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMUNELVx1MDFEQ1x1MDFERS1cdTAxRTNcdTAxRTYtXHUwMUVEXHUwMUYwXHUwMUY0LVx1MDFGNVx1MDFGOC1cdTAxRkIiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMjAwLVx1MDIxQlx1MDIxRS1cdTAyMUZcdTAyMjYtXHUwMjMzXHUwMzAzLVx1MDMwNFx1MDMwNlx1MDMxNC1cdTAzMTUiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMzI1XHUwNDBFXHUwNDE5XHUwNDM5XHUwNDVFXHUwNEMxLVx1MDRDMlx1MDREMC1cdTA0RDFcdTA0RDYtXHUwNEQ3IisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDRFMi1cdTA0RTNcdTA0RUUtXHUwNEVGXHUxRTAwLVx1MUU5OVx1MUVBMC1cdTFFRjlcdTFGMDFcdTFGMDNcdTFGMDUiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUxRjA3XHUxRjA5XHUxRjBCXHUxRjBEXHUxRjBGXHUxRjExXHUxRjEzXHUxRjE1XHUxRjE5XHUxRjFCXHUxRjFEXHUxRjIxIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MUYyM1x1MUYyNVx1MUYyN1x1MUYyOVx1MUYyQlx1MUYyRFx1MUYyRlx1MUYzMVx1MUYzM1x1MUYzNVx1MUYzN1x1MUYzOSIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTFGM0JcdTFGM0RcdTFGM0ZcdTFGNDFcdTFGNDNcdTFGNDVcdTFGNDlcdTFGNEJcdTFGNERcdTFGNTFcdTFGNTNcdTFGNTUiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUxRjU3XHUxRjU5XHUxRjVCXHUxRjVEXHUxRjVGXHUxRjYxXHUxRjYzXHUxRjY1XHUxRjY3XHUxRjY5XHUxRjZCXHUxRjZEIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MUY2Rlx1MUY4MVx1MUY4M1x1MUY4NVx1MUY4N1x1MUY4OVx1MUY4Qlx1MUY4RFx1MUY4Rlx1MUY5MVx1MUY5M1x1MUY5NSIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTFGOTdcdTFGOTlcdTFGOUJcdTFGOURcdTFGOUZcdTFGQTFcdTFGQTNcdTFGQTVcdTFGQTdcdTFGQTlcdTFGQUJcdTFGQUQiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUxRkFGLVx1MUZCMVx1MUZCOC1cdTFGQjlcdTFGRDAtXHUxRkQxXHUxRkQ4LVx1MUZEOVx1MUZFMC1cdTFGRTFcdTFGRTUiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUxRkU4LVx1MUZFOVx1MUZFQ1x1MjEyQS1cdTIxMkJcdUUwNERcdUUwNjRdIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1bXHVFMDAwLVx1RTA4MCBcdTAxRTJcdTAxRTNdJiBbWzpsYXRpbjpdWzptYXJrOl1dXSI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3REZXZhbmFnYXJpTGF0aW4oKSB0aHJvd3MgSU9FeGNlcHRpb24sIFBhcnNlRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFRlc3QoIkxhdGluLURFVkFOQUdBUkkiKQorICAgICAgICAgIC50ZXN0KGxhdGluRm9ySW5kaWMsICJbWzpEZXZhbmFnYXJpOl1bXHUwOTRkXVtcdTA5NjRcdTA5NjVdXSIsICJbXHUwOTY1XSIsIHRoaXMsIG5ldyBMZWdhbEluZGljKCkpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgW11bXSBhcnJheT0gbmV3IFN0cmluZ1tdW117CisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkJFTkdBTEktREVWQU5BR0FSSSIsCisgICAgICAgICAgICAiWzpCRU5HQUxJOl0iLCAiWzpEZXZhbmFnYXJpOl0iLCAKKyAgICAgICAgICAgICAgICAiW1x1MDk1MS1cdTA5NTRcdTA5NDMtXHUwOTQ5XHUwOTRhXHUwOTYyXHUwOTYzXHUwOTBEXHUwOTBlXHUwOTExXHUwOTEyXHUwOTI5XHUwOTMzXHUwOTM0XHUwOTM1XHUwOTNkXHUwOTUwXHUwOTU4XHUwOTU5XHUwOTVhXHUwOTViXHUwOTVlXHUwOWYwXHUwOWYxXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkRFVkFOQUdBUkktQkVOR0FMSSIsCisgICAgICAgICAgICJbOkRldmFuYWdhcmk6XSIsICJbOkJFTkdBTEk6XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MDk1MS1cdTA5NTRcdTA5RDdcdTA5MERcdTA5MGVcdTA5MTFcdTA5MTJcdTA5MjlcdTA5MzNcdTA5MzRcdTA5MzVcdTA5M2RcdTA5NTBcdTA5NThcdTA5NTlcdTA5NWFcdTA5NWJcdTA5NWVcdTA5ZjBcdTA5ZjFdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkdVUk1VS0hJLURFVkFOQUdBUkkiLAorICAgICAgICAgICJbOkdVUk1VS0hJOl0iLCAiWzpEZXZhbmFnYXJpOl0iLCAKKyAgICAgICAgICAgICAgICAiW1x1MDkwMlx1MDkzNlx1MDkzM1x1MDk1MS1cdTA5NTRcdTA5MDJcdTA5MDNcdTA5NDMtXHUwOTQ5XHUwOTRhXHUwOTYyXHUwOTYzXHUwOTBCXHUwOTBDXHUwOTBEXHUwOTBlXHUwOTExXHUwOTEyXHUwOTM0XHUwOTM3XHUwOTNEXHUwOTUwXHUwOTYwXHUwOTYxXHUwYTcyXHUwYTczXHUwYTc0XSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkRFVkFOQUdBUkktR1VSTVVLSEkiLAorICAgICAgICAgICAiWzpEZXZhbmFnYXJpOl0iLCAiWzpHVVJNVUtISTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwQTAyXHUwOTQ2XHUwQTVDXHUwOTUxLVx1MDk1NFx1MEE3MFx1MEE3MVx1MDkwQlx1MDkwQ1x1MDkwRFx1MDkwZVx1MDkxMVx1MDkxMlx1MDkzNFx1MDkzN1x1MDkzRFx1MDk1MFx1MDk2MFx1MDk2MVx1MGE3Mlx1MGE3M1x1MGE3NF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiR1VKQVJBVEktREVWQU5BR0FSSSIsCisgICAgICAgICAgIls6R1VKQVJBVEk6XSIsICJbOkRldmFuYWdhcmk6XSIsIAorICAgICAgICAgICAgICAgICJbXHUwOTQ2XHUwOTRBXHUwOTYyXHUwOTYzXHUwOTUxLVx1MDk1NFx1MDk2MVx1MDkwY1x1MDkwZVx1MDkxMl0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJERVZBTkFHQVJJLUdVSkFSQVRJIiwKKyAgICAgICAgICAgIls6RGV2YW5hZ2FyaTpdIiwgIls6R1VKQVJBVEk6XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MDk1MS1cdTA5NTRcdTA5NjFcdTA5MGNcdTA5MGVcdTA5MTJdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIk9SSVlBLURFVkFOQUdBUkkiLAorICAgICAgICAgICJbOk9SSVlBOl0iLCAiWzpEZXZhbmFnYXJpOl0iLCAKKyAgICAgICAgICAgICAgICAiW1x1MDk0My1cdTA5NGFcdTA5NjJcdTA5NjNcdTA5NTEtXHUwOTU0XHUwOTUwXHUwOTBEXHUwOTBlXHUwOTEyXHUwOTExXHUwOTMxXHUwOTM1XSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkRFVkFOQUdBUkktT1JJWUEiLAorICAgICAgICAgICAiWzpEZXZhbmFnYXJpOl0iLCAiWzpPUklZQTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwYjVmXHUwYjU2XHUwYjU3XHUwOTUwXHUwOTBEXHUwOTBlXHUwOTEyXHUwOTExXHUwOTMxXHUwOTM1XSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJUYW1pbC1ERVZBTkFHQVJJIiwKKyAgICAgICAgICAiWzp0YW1pbDpdIiwgIls6RGV2YW5hZ2FyaTpdIiwgCisgICAgICAgICAgICAgICAgICAiW1x1MDkwMVx1MDkzY1x1MDk0My1cdTA5NGFcdTA5NTEtXHUwOTU0XHUwOTYyXHUwOTYzXHUwOTBCXHUwOTBDXHUwOTBEXHUwOTExXHUwOTE2XHUwOTE3XHUwOTE4XHUwOTFCXHUwOTFEXHUwOTIwXHUwOTIxXHUwOTIyXHUwOTI1XHUwOTI2XHUwOTI3XHUwOTJCXHUwOTJDXHUwOTJEXHUwOTM2XHUwOTNkXHUwOTUwW1x1MDk1OC1cdTA5NjFdXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiREVWQU5BR0FSSS1UYW1pbCIsCisgICAgICAgICAgICJbOkRldmFuYWdhcmk6XSIsICJbOnRhbWlsOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBiZDddIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIlRlbHVndS1ERVZBTkFHQVJJIiwKKyAgICAgICAgICAiWzp0ZWx1Z3U6XSIsICJbOkRldmFuYWdhcmk6XSIsIAorICAgICAgICAgICAgICAgICJbXHUwOTNjXHUwOTUwXHUwOTQ1XHUwOTQ5XHUwOTUxLVx1MDk1NFx1MDk2Mlx1MDk2M1x1MDkwRFx1MDkxMVx1MDkzZFx1MDkyOVx1MDkzNFtcdTA5NTgtXHUwOTVmXV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJERVZBTkFHQVJJLVRFTFVHVSIsCisgICAgICAgICAgICJbOkRldmFuYWdhcmk6XSIsICJbOlRFTFVHVTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwYzU1XHUwYzU2XHUwOTUwXHUwOTBEXHUwOTExXHUwOTNkXHUwOTI5XHUwOTM0W1x1MDk1OC1cdTA5NWZdXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJLQU5OQURBLURFVkFOQUdBUkkiLAorICAgICAgICAgICJbOktBTk5BREE6XSIsICJbOkRldmFuYWdhcmk6XSIsIAorICAgICAgICAgICAgICAgICJbXHUwOTAxXHUwOTQ2XHUwOTNjXHUwOTUwXHUwOTQ1XHUwOTQ5XHUwOTUxLVx1MDk1NFx1MDk2Mlx1MDk2M1x1MDk1MFx1MDkwRFx1MDkxMVx1MDkzZFx1MDkyOVx1MDkzNFtcdTA5NTgtXHUwOTVmXV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJERVZBTkFHQVJJLUtBTk5BREEiLAorICAgICAgICAgICAiWzpEZXZhbmFnYXJpOl0iLCAiWzpLQU5OQURBOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBjZGVcdTBjZDVcdTBjZDZcdTA5NTBcdTA5MERcdTA5MTFcdTA5M2RcdTA5MjlcdTA5MzRbXHUwOTU4LVx1MDk1Zl1dIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovIAorICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJNQUxBWUFMQU0tREVWQU5BR0FSSSIsCisgICAgICAgICAgIls6TUFMQVlBTEFNOl0iLCAiWzpEZXZhbmFnYXJpOl0iLCAKKyAgICAgICAgICAgICAgICAiW1x1MDkwMVx1MDk0YVx1MDk0Ylx1MDk0Y1x1MDkzY1x1MDk1MFx1MDk0NFx1MDk0NVx1MDk0OVx1MDk1MS1cdTA5NTRcdTA5NjJcdTA5NjNcdTA5MERcdTA5MTFcdTA5M2RcdTA5MjlcdTA5MzRbXHUwOTU4LVx1MDk1Zl1dIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiREVWQU5BR0FSSS1NQUxBWUFMQU0iLAorICAgICAgICAgICAiWzpEZXZhbmFnYXJpOl0iLCAiWzpNQUxBWUFMQU06XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MGQ0Y1x1MGQ1N1x1MDk1MFx1MDkwRFx1MDkxMVx1MDkzZFx1MDkyOVx1MDkzNFtcdTA5NTgtXHUwOTVmXV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiR1VSTVVLSEktQkVOR0FMSSIsCisgICAgICAgICAgIls6R1VSTVVLSEk6XSIsICJbOkJFTkdBTEk6XSIsICAKKyAgICAgICAgICAgICAgICAiW1x1MDk4Mlx1MDliNlx1MDllMlx1MDllM1x1MDljM1x1MDljNFx1MDlkN1x1MDk4Qlx1MDk4Q1x1MDlCN1x1MDlFMFx1MDlFMVx1MDlGMFx1MDlGMV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJCRU5HQUxJLUdVUk1VS0hJIiwKKyAgICAgICAgICAgIls6QkVOR0FMSTpdIiwgIls6R1VSTVVLSEk6XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MEEwMlx1MGE1Y1x1MGE0N1x1MGE3MFx1MGE3MVx1MEEzM1x1MEEzNVx1MEE1OVx1MEE1QVx1MEE1Qlx1MEE1RVx1MEE3Mlx1MEE3M1x1MEE3NF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiR1VKQVJBVEktQkVOR0FMSSIsCisgICAgICAgICAgIls6R1VKQVJBVEk6XSIsICJbOkJFTkdBTEk6XSIsIAorICAgICAgICAgICAgICAgICJbXHUwOWQ3XHUwOWUyXHUwOWUzXHUwOThjXHUwOWUxXHUwOWYwXHUwOWYxXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkJFTkdBTEktR1VKQVJBVEkiLAorICAgICAgICAgICAiWzpCRU5HQUxJOl0iLCAiWzpHVUpBUkFUSTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwQTgyXHUwYTgzXHUwQWM5XHUwQWM1XHUwYWM3XHUwQThEXHUwQTkxXHUwQUIzXHUwQUI1XHUwQUJEXHUwQUQwXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKyAKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiT1JJWUEtQkVOR0FMSSIsCisgICAgICAgICAgIls6T1JJWUE6XSIsICJbOkJFTkdBTEk6XSIsIAorICAgICAgICAgICAgICAgICJbXHUwOWM0XHUwOWUyXHUwOWUzXHUwOWYwXHUwOWYxXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkJFTkdBTEktT1JJWUEiLAorICAgICAgICAgICAiWzpCRU5HQUxJOl0iLCAiWzpPUklZQTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwYjVmXHUwYjU2XHUwYjMzXHUwYjNkXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJUYW1pbC1CRU5HQUxJIiwKKyAgICAgICAgICAiWzp0YW1pbDpdIiwgIls6QkVOR0FMSTpdIiwgCisgICAgICAgICAgICAgICAgICAiW1x1MDk4MVx1MDliY1x1MDljM1x1MDljNFx1MDllMlx1MDllM1x1MDlmMFx1MDlmMVx1MDk4Qlx1MDk4Q1x1MDk5Nlx1MDk5N1x1MDk5OFx1MDk5Qlx1MDk5RFx1MDlBMFx1MDlBMVx1MDlBMlx1MDlBNVx1MDlBNlx1MDlBN1x1MDlBQlx1MDlBQ1x1MDlBRFx1MDlCNlx1MDlEQ1x1MDlERFx1MDlERlx1MDlFMFx1MDlFMV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkJFTkdBTEktVGFtaWwiLAorICAgICAgICAgICAiWzpCRU5HQUxJOl0iLCAiWzp0YW1pbDpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwYmM2XHUwYmM3XHUwYmNhXHUwQjhFXHUwQjkyXHUwQkE5XHUwQkIxXHUwQkIzXHUwQkI0XHUwQkI1XSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJUZWx1Z3UtQkVOR0FMSSIsCisgICAgICAgICAgIls6dGVsdWd1Ol0iLCAiWzpCRU5HQUxJOl0iLCAKKyAgICAgICAgICAgICAgICAiW1x1MDllMlx1MDllM1x1MDliY1x1MDlkN1x1MDlmMFx1MDlmMVx1MDlkY1x1MDlkZFx1MDlkZl0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJCRU5HQUxJLVRFTFVHVSIsCisgICAgICAgICAgICJbOkJFTkdBTEk6XSIsICJbOlRFTFVHVTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwYzU1XHUwYzU2XHUwYzQ3XHUwYzQ2XHUwYzRhXHUwQzBFXHUwQzEyXHUwQzMxXHUwQzMzXHUwQzM1XSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJLQU5OQURBLUJFTkdBTEkiLAorICAgICAgICAgICJbOktBTk5BREE6XSIsICJbOkJFTkdBTEk6XSIsIAorICAgICAgICAgICAgICAgICJbXHUwOTgxXHUwOWUyXHUwOWUzXHUwOWJjXHUwOWQ3XHUwOWYwXHUwOWYxXHUwOWRjXHUwOWRkXHUwOWRmXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkJFTkdBTEktS0FOTkFEQSIsCisgICAgICAgICAgICJbOkJFTkdBTEk6XSIsICJbOktBTk5BREE6XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MGNjNlx1MGNjYVx1MGNkNVx1MGNkNlx1MGNjN1x1MEM4RVx1MEM5Mlx1MENCMVx1MGNiM1x1MGNiNVx1MGNkZV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8gCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIk1BTEFZQUxBTS1CRU5HQUxJIiwKKyAgICAgICAgICAiWzpNQUxBWUFMQU06XSIsICJbOkJFTkdBTEk6XSIsIAorICAgICAgICAgICAgICAgICJbXHUwOTgxXHUwOWUyXHUwOWUzXHUwOWJjXHUwOWM0XHUwOWYwXHUwOWYxXHUwOWRjXHUwOWRkXHUwOWRmXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkJFTkdBTEktTUFMQVlBTEFNIiwKKyAgICAgICAgICAgIls6QkVOR0FMSTpdIiwgIls6TUFMQVlBTEFNOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBkNDZcdTBkNGFcdTBkNDdcdTBkMzEtXHUwZDM1XHUwZDBlXHUwZDEyXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJHVUpBUkFUSS1HVVJNVUtISSIsCisgICAgICAgICAgIls6R1VKQVJBVEk6XSIsICJbOkdVUk1VS0hJOl0iLCAKKyAgICAgICAgICAgICAgICAiW1x1MEEwMlx1MGFiM1x1MGFiNlx1MEE3MFx1MGE3MVx1MGE4Mlx1MGE4M1x1MGFjM1x1MGFjNFx1MGFjNVx1MGFjOVx1MGE1Y1x1MGE3Mlx1MGE3M1x1MGE3NFx1MGE4Ylx1MGE4ZFx1MGE5MVx1MGFiZF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJHVVJNVUtISS1HVUpBUkFUSSIsCisgICAgICAgICAgICJbOkdVUk1VS0hJOl0iLCAiWzpHVUpBUkFUSTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwYWIzXHUwYWI2XHUwQTcwXHUwYTcxXHUwYTgyXHUwYTgzXHUwYWMzXHUwYWM0XHUwYWM1XHUwYWM5XHUwYTVjXHUwYTcyXHUwYTczXHUwYTc0XHUwYThiXHUwYThkXHUwYTkxXHUwYWI3XHUwYWJkXHUwYWQwXHUwYWUwXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJPUklZQS1HVVJNVUtISSIsCisgICAgICAgICAgIls6T1JJWUE6XSIsICJbOkdVUk1VS0hJOl0iLCAKKyAgICAgICAgICAgICAgICAiW1x1MEEwMlx1MGE1Y1x1MGEyMVx1MGE0N1x1MGE3MVx1MGIwMlx1MGIwM1x1MGIzM1x1MGIzNlx1MGI0M1x1MGI1Nlx1MGI1N1x1MEIwQlx1MEIwQ1x1MEIzN1x1MEIzRFx1MEI1Rlx1MEI2MFx1MEI2MVx1MGEzNVx1MGE3Mlx1MGE3M1x1MGE3NF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJHVVJNVUtISS1PUklZQSIsCisgICAgICAgICAgICJbOkdVUk1VS0hJOl0iLCAiWzpPUklZQTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwYTcxXHUwYjAyXHUwYjAzXHUwYjMzXHUwYjM2XHUwYjQzXHUwYjU2XHUwYjU3XHUwQjBCXHUwQjBDXHUwQjM3XHUwQjNEXHUwQjVGXHUwQjYwXHUwQjYxXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJUQU1JTC1HVVJNVUtISSIsCisgICAgICAgICAgIls6VEFNSUw6XSIsICJbOkdVUk1VS0hJOl0iLCAKKyAgICAgICAgICAgICAgICAiW1x1MEEwMlx1MGEzM1x1MGEzNlx1MGEzY1x1MGE3MFx1MGE3MVx1MGE0N1x1MEExNlx1MEExN1x1MEExOFx1MEExQlx1MEExRFx1MEEyMFx1MEEyMVx1MEEyMlx1MEEyNVx1MEEyNlx1MEEyN1x1MEEyQlx1MEEyQ1x1MEEyRFx1MEE1OVx1MEE1QVx1MEE1Qlx1MEE1Q1x1MEE1RVx1MEE3Mlx1MEE3M1x1MEE3NF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJHVVJNVUtISS1UQU1JTCIsCisgICAgICAgICAgICJbOkdVUk1VS0hJOl0iLCAiWzpUQU1JTDpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwYjgyXHUwYmM2XHUwYmNhXHUwYmQ3XHUwYmI3XHUwYmIzXHUwYjgzXHUwQjhFXHUwQjkyXHUwQkE5XHUwQkIxXHUwQkI0XSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJURUxVR1UtR1VSTVVLSEkiLAorICAgICAgICAgICJbOlRFTFVHVTpdIiwgIls6R1VSTVVLSEk6XSIsIAorICAgICAgICAgICAgICAgICJbXHUwQTAyXHUwYTMzXHUwYTM2XHUwYTNjXHUwYTcwXHUwYTcxXHUwQTU5XHUwQTVBXHUwQTVCXHUwQTVDXHUwQTVFXHUwQTcyXHUwQTczXHUwQTc0XSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkdVUk1VS0hJLVRFTFVHVSIsCisgICAgICAgICAgICJbOkdVUk1VS0hJOl0iLCAiWzpURUxVR1U6XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MGMwMlx1MGMwM1x1MGMzM1x1MGMzNlx1MGM0NFx1MGM0M1x1MGM0Nlx1MGM0YVx1MGM1Nlx1MGM1NVx1MEMwQlx1MEMwQ1x1MEMwRVx1MEMxMlx1MEMzMVx1MEMzN1x1MEM2MFx1MEM2MV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIktBTk5BREEtR1VSTVVLSEkiLAorICAgICAgICAgICJbOktBTk5BREE6XSIsICJbOkdVUk1VS0hJOl0iLCAKKyAgICAgICAgICAgICAgICAiW1x1MEEwMlx1MGEzM1x1MGEzNlx1MGEzY1x1MGE3MFx1MGE3MVx1MEE1OVx1MEE1QVx1MEE1Qlx1MEE1Q1x1MEE1RVx1MEE3Mlx1MEE3M1x1MEE3NF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJHVVJNVUtISS1LQU5OQURBIiwKKyAgICAgICAgICAgIls6R1VSTVVLSEk6XSIsICJbOktBTk5BREE6XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MGM4Mlx1MGM4M1x1MGNiM1x1MGNiNlx1MGNjNFx1MGNjM1x1MGNjNlx1MGNjYVx1MGNkNVx1MGNkNlx1MEM4Qlx1MEM4Q1x1MEM4RVx1MEM5Mlx1MENCMVx1MENCN1x1MENFMFx1MENFMV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiTUFMQVlBTEFNLUdVUk1VS0hJIiwKKyAgICAgICAgICAiWzpNQUxBWUFMQU06XSIsICJbOkdVUk1VS0hJOl0iLCAKKyAgICAgICAgICAgICAgICAiW1x1MEEwMlx1MGE0Ylx1MGE0Y1x1MGEzM1x1MGEzNlx1MGEzY1x1MGE3MFx1MGE3MVx1MEE1OVx1MEE1QVx1MEE1Qlx1MEE1Q1x1MEE1RVx1MEE3Mlx1MEE3M1x1MEE3NF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJHVVJNVUtISS1NQUxBWUFMQU0iLAorICAgICAgICAgICAiWzpHVVJNVUtISTpdIiwgIls6TUFMQVlBTEFNOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBkMDJcdTBkMDNcdTBkMzNcdTBkMzZcdTBkNDNcdTBkNDZcdTBkNGFcdTBkNGNcdTBkNTdcdTBEMEJcdTBEMENcdTBEMEVcdTBEMTJcdTBEMzFcdTBEMzRcdTBEMzdcdTBENjBcdTBENjFdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkdVSkFSQVRJLU9SSVlBIiwKKyAgICAgICAgICAiWzpHVUpBUkFUSTpdIiwgIls6T1JJWUE6XSIsIAorICAgICAgICAgICAgICAgICJbXHUwYjU2XHUwYjU3XHUwQjBDXHUwQjVGXHUwQjYxXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIk9SSVlBLUdVSkFSQVRJIiwKKyAgICAgICAgICAgIls6T1JJWUE6XSIsICJbOkdVSkFSQVRJOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBBYzRcdTBBYzVcdTBBYzlcdTBBYzdcdTBBOERcdTBBOTFcdTBBQjVcdTBBZDBdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIlRBTUlMLUdVSkFSQVRJIiwKKyAgICAgICAgICAiWzpUQU1JTDpdIiwgIls6R1VKQVJBVEk6XSIsIAorICAgICAgICAgICAgICAgICJbXHUwQTgxXHUwYWJjXHUwYWMzXHUwQWM0XHUwQWM1XHUwQWM5XHUwQWM3XHUwQThCXHUwQThEXHUwQTkxXHUwQTk2XHUwQTk3XHUwQTk4XHUwQTlCXHUwQTlEXHUwQUEwXHUwQUExXHUwQUEyXHUwQUE1XHUwQUE2XHUwQUE3XHUwQUFCXHUwQUFDXHUwQUFEXHUwQUI2XHUwQUJEXHUwQUQwXHUwQUUwXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkdVSkFSQVRJLVRBTUlMIiwKKyAgICAgICAgICAgIls6R1VKQVJBVEk6XSIsICJbOlRBTUlMOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBCYzZcdTBCY2FcdTBCZDdcdTBCOEVcdTBCOTJcdTBCQTlcdTBCQjFcdTBCQjRdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIlRFTFVHVS1HVUpBUkFUSSIsCisgICAgICAgICAgIls6VEVMVUdVOl0iLCAiWzpHVUpBUkFUSTpdIiwgCisgICAgICAgICAgICAgICAgIltcdTBhYmNcdTBBYzVcdTBBYzlcdTBBOERcdTBBOTFcdTBBQkRcdTBBZDBdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiR1VKQVJBVEktVEVMVUdVIiwKKyAgICAgICAgICAgIls6R1VKQVJBVEk6XSIsICJbOlRFTFVHVTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwYzQ2XHUwYzRhXHUwYzU1XHUwYzU2XHUwQzBDXHUwQzBFXHUwQzEyXHUwQzMxXHUwQzYxXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJLQU5OQURBLUdVSkFSQVRJIiwKKyAgICAgICAgICAiWzpLQU5OQURBOl0iLCAiWzpHVUpBUkFUSTpdIiwgCisgICAgICAgICAgICAgICAgIltcdTBBODFcdTBhYmNcdTBBYzVcdTBBYzlcdTBBOERcdTBBOTFcdTBBQkRcdTBBZDBdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiR1VKQVJBVEktS0FOTkFEQSIsCisgICAgICAgICAgICJbOkdVSkFSQVRJOl0iLCAiWzpLQU5OQURBOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBjYzZcdTBjY2FcdTBjZDVcdTBjZDZcdTBDOENcdTBDOEVcdTBDOTJcdTBDQjFcdTBDREVcdTBDRTFdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIk1BTEFZQUxBTS1HVUpBUkFUSSIsCisgICAgICAgICAgIls6TUFMQVlBTEFNOl0iLCAiWzpHVUpBUkFUSTpdIiwgCisgICAgICAgICAgICAgICAgIltcdTBBODFcdTBhYzRcdTBhY2JcdTBhY2NcdTBhYmNcdTBBYzVcdTBBYzlcdTBBOERcdTBBOTFcdTBBQkRcdTBBZDBdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiR1VKQVJBVEktTUFMQVlBTEFNIiwKKyAgICAgICAgICAgIls6R1VKQVJBVEk6XSIsICJbOk1BTEFZQUxBTTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwZDQ2XHUwZDRhXHUwZDRjXHUwZDU1XHUwZDU3XHUwRDBDXHUwRDBFXHUwRDEyXHUwRDMxXHUwRDM0XHUwRDYxXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJUQU1JTC1PUklZQSIsCisgICAgICAgICAgIls6VEFNSUw6XSIsICJbOk9SSVlBOl0iLCAKKyAgICAgICAgICAgICAgICAiW1x1MEIwMVx1MGIzY1x1MGI0M1x1MGI1Nlx1MEIwQlx1MEIwQ1x1MEIxNlx1MEIxN1x1MEIxOFx1MEIxQlx1MEIxRFx1MEIyMFx1MEIyMVx1MEIyMlx1MEIyNVx1MEIyNlx1MEIyN1x1MEIyQlx1MEIyQ1x1MEIyRFx1MEIzNlx1MEIzRFx1MEI1Q1x1MEI1RFx1MEI1Rlx1MEI2MFx1MEI2MV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJPUklZQS1UQU1JTCIsCisgICAgICAgICAgICJbOk9SSVlBOl0iLCAiWzpUQU1JTDpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwYmM2XHUwYmNhXHUwYmM3XHUwQjhFXHUwQjkyXHUwQkE5XHUwQkIxXHUwQkI0XHUwQkI1XSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJURUxVR1UtT1JJWUEiLAorICAgICAgICAgICJbOlRFTFVHVTpdIiwgIls6T1JJWUE6XSIsIAorICAgICAgICAgICAgICAgICJbXHUwYjNjXHUwYjU3XHUwYjU2XHUwQjNEXHUwQjVDXHUwQjVEXHUwQjVGXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIk9SSVlBLVRFTFVHVSIsCisgICAgICAgICAgICJbOk9SSVlBOl0iLCAiWzpURUxVR1U6XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MGM0NFx1MGM0Nlx1MGM0YVx1MGM1NVx1MGM0N1x1MEMwRVx1MEMxMlx1MEMzMVx1MEMzNV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiS0FOTkFEQS1PUklZQSIsCisgICAgICAgICAgIls6S0FOTkFEQTpdIiwgIls6T1JJWUE6XSIsIAorICAgICAgICAgICAgICAgICJbXHUwQjAxXHUwYjNjXHUwYjU3XHUwQjNEXHUwQjVDXHUwQjVEXHUwQjVGXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIk9SSVlBLUtBTk5BREEiLAorICAgICAgICAgICAiWzpPUklZQTpdIiwgIls6S0FOTkFEQTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwY2M0XHUwY2M2XHUwY2NhXHUwY2Q1XHUwY2M3XHUwQzhFXHUwQzkyXHUwQ0IxXHUwQ0I1XHUwQ0RFXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJNQUxBWUFMQU0tT1JJWUEiLAorICAgICAgICAgICJbOk1BTEFZQUxBTTpdIiwgIls6T1JJWUE6XSIsIAorICAgICAgICAgICAgICAgICJbXHUwQjAxXHUwYjNjXHUwYjU2XHUwQjNEXHUwQjVDXHUwQjVEXHUwQjVGXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIk9SSVlBLU1BTEFZQUxBTSIsCisgICAgICAgICAgICJbOk9SSVlBOl0iLCAiWzpNQUxBWUFMQU06XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MEQ0N1x1MEQ0Nlx1MEQ0YVx1MEQwRVx1MEQxMlx1MEQzMVx1MEQzNFx1MEQzNV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiVEVMVUdVLVRBTUlMIiwKKyAgICAgICAgICAiWzpURUxVR1U6XSIsICJbOlRBTUlMOl0iLCAKKyAgICAgICAgICAgICAgICAiW1x1MGJkN1x1MGJhOVx1MGJiNF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJUQU1JTC1URUxVR1UiLAorICAgICAgICAgICAiWzpUQU1JTDpdIiwgIls6VEVMVUdVOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBDMDFcdTBjNDNcdTBjNDRcdTBjNDZcdTBjNDdcdTBjNTVcdTBjNTZcdTBjNjZcdTBDMEJcdTBDMENcdTBDMTZcdTBDMTdcdTBDMThcdTBDMUJcdTBDMURcdTBDMjBcdTBDMjFcdTBDMjJcdTBDMjVcdTBDMjZcdTBDMjdcdTBDMkJcdTBDMkNcdTBDMkRcdTBDMzZcdTBDNjBcdTBDNjFdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIktBTk5BREEtVEFNSUwiLAorICAgICAgICAgICJbOktBTk5BREE6XSIsICJbOlRBTUlMOl0iLCAKKyAgICAgICAgICAgICAgICAiW1x1MGJkN1x1MGJjNlx1MGJhOVx1MGJiNF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJUQU1JTC1LQU5OQURBIiwKKyAgICAgICAgICAgIls6VEFNSUw6XSIsICJbOktBTk5BREE6XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MGNjM1x1MGNjNFx1MGNjNlx1MGNjN1x1MGNkNVx1MGNkNlx1MEM4Qlx1MEM4Q1x1MEM5Nlx1MEM5N1x1MEM5OFx1MEM5Qlx1MEM5RFx1MENBMFx1MENBMVx1MENBMlx1MENBNVx1MENBNlx1MENBN1x1MENBQlx1MENBQ1x1MENBRFx1MENCNlx1MENERVx1MENFMFx1MENFMV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiTUFMQVlBTEFNLVRBTUlMIiwKKyAgICAgICAgICAiWzpNQUxBWUFMQU06XSIsICJbOlRBTUlMOl0iLCAKKyAgICAgICAgICAgICAgICAiW1x1MGJhOV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJUQU1JTC1NQUxBWUFMQU0iLAorICAgICAgICAgICAiWzpUQU1JTDpdIiwgIls6TUFMQVlBTEFNOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBkNDNcdTBkMTJcdTBEMEJcdTBEMENcdTBEMTZcdTBEMTdcdTBEMThcdTBEMUJcdTBEMURcdTBEMjBcdTBEMjFcdTBEMjJcdTBEMjVcdTBEMjZcdTBEMjdcdTBEMkJcdTBEMkNcdTBEMkRcdTBEMzZcdTBENjBcdTBENjFdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIktBTk5BREEtVEVMVUdVIiwKKyAgICAgICAgICAiWzpLQU5OQURBOl0iLCAiWzpURUxVR1U6XSIsIAorICAgICAgICAgICAgICAgICJbXHUwQzAxXHUwYzNmXHUwYzQ2XHUwYzQ4XHUwYzRhXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIlRFTFVHVS1LQU5OQURBIiwKKyAgICAgICAgICAgIls6VEVMVUdVOl0iLCAiWzpLQU5OQURBOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBjYzhcdTBjZDVcdTBjZDZcdTBDREVdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIk1BTEFZQUxBTS1URUxVR1UiLAorICAgICAgICAgICJbOk1BTEFZQUxBTTpdIiwgIls6VEVMVUdVOl0iLCAKKyAgICAgICAgICAgICAgICAiW1x1MEMwMVx1MGM0NFx1MGM0YVx1MGM0Y1x1MGM0Ylx1MGM1NVx1MGM1Nl0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJURUxVR1UtTUFMQVlBTEFNIiwKKyAgICAgICAgICAgIls6VEVMVUdVOl0iLCAiWzpNQUxBWUFMQU06XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MGQ0Y1x1MGQ1N1x1MEQzNF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiTUFMQVlBTEFNLUtBTk5BREEiLAorICAgICAgICAgICJbOk1BTEFZQUxBTTpdIiwgIls6S0FOTkFEQTpdIiwgCisgICAgICAgICAgICAgICAgIltcdTBjYzRcdTBjYzZcdTBjY2FcdTBjY2NcdTBjY2JcdTBjZDVcdTBjZDZcdTBjRGVdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiTGF0aW4tQmVuZ2FsaSIsCisgICAgICAgICAgICBsYXRpbkZvckluZGljLCAiW1s6QmVuZ2FsaTpdW1x1MDk2NFx1MDk2NV1dIiwgCisgICAgICAgICAgICAgICAiW1x1MDk2NVx1MDlmMFx1MDlmMVx1MDk2NV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJMYXRpbi1HdXJtdWtoaSIsCisgICAgICAgICAgIGxhdGluRm9ySW5kaWMsICJbWzpHdXJtdWtoaTpdW1x1MDk2NFx1MDk2NV1dIiwgCisgICAgICAgICAgICAgICAiW1x1MGEwMlx1MDk2NVx1MGE3Mlx1MGE3M1x1MGE3NF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJMYXRpbi1HdWphcmF0aSIsCisgICAgICAgICAgICBsYXRpbkZvckluZGljLCAiW1s6R3VqYXJhdGk6XVtcdTA5NjRcdTA5NjVdXSIsIAorICAgICAgICAgICAgICAgIltcdTA5NjVdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiTGF0aW4tT3JpeWEiLAorICAgICAgICAgICAgbGF0aW5Gb3JJbmRpYywgIltbOk9yaXlhOl1bXHUwOTY0XHUwOTY1XV0iLCAKKyAgICAgICAgICAgICAgICJbXHUwOTY1XSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkxhdGluLVRhbWlsIiwKKyAgICAgICAgICAgIGxhdGluRm9ySW5kaWMsICJbOlRhbWlsOl0iLCAKKyAgICAgICAgICAgICAgIG51bGwsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkxhdGluLVRlbHVndSIsCisgICAgICAgICAgICBsYXRpbkZvckluZGljLCAiWzpUZWx1Z3U6XSIsIAorICAgICAgICAgICAgICAgbnVsbCwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiTGF0aW4tS2FubmFkYSIsCisgICAgICAgICAgICBsYXRpbkZvckluZGljLCAiWzpLYW5uYWRhOl0iLCAKKyAgICAgICAgICAgICAgIG51bGwsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJMYXRpbi1NYWxheWFsYW0iLAorICAgICAgICAgICBsYXRpbkZvckluZGljLCAiWzpNYWxheWFsYW06XSIsIAorICAgICAgICAgICAgICAgbnVsbCwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgfTsKKworICAgIHB1YmxpYyB2b2lkIFRlc3RJbnRlckluZGljKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgaW50IG51bSA9IGFycmF5Lmxlbmd0aDsKKyAgICAgICAgaWYgKGlzUXVpY2soKSkgeworICAgICAgICAgICAgbG9nbG4oIlRlc3Rpbmcgb25seSA1IG9mICIrIGFycmF5Lmxlbmd0aCsiIFNraXBwaW5nIHJlc3QgKHVzZSAtZSBmb3IgZXhoYXVzdGl2ZSkiKTsKKyAgICAgICAgICAgIG51bSA9IDU7CisgICAgICAgIH0KKyAgICAgICAgZm9yKGludCBpPTA7IGk8bnVtO2krKyl7CisgICAgICAgICAgIGxvZ2xuKCJUZXN0aW5nICIgKyBhcnJheVtpXVswXSArICIgYXQgaW5kZXggIiArIGkgICApOworICAgICAgICAgICBuZXcgVGVzdChhcnJheVtpXVswXSkKKyAgICAgICAgICAgICAgICAudGVzdChhcnJheVtpXVsxXSwgYXJyYXlbaV1bMl0sIAorICAgICAgICAgICAgICAgIGFycmF5W2ldWzNdLAorICAgICAgICAgICAgICAgIHRoaXMsIG5ldyBMZWdhbEluZGljKCkpOworICAgICAgICB9CisgICAgfQorIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gRW5kIEluZGljCisgICAgLy8tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIExlZ2FsIHsKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXMoU3RyaW5nIHNvdXJjZVN0cmluZykge3JldHVybiB0cnVlO30KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBMZWdhbEphbW8gZXh0ZW5kcyBMZWdhbCB7CisgICAgICAgIC8vIGFueSBpbml0aWFsIG11c3QgYmUgZm9sbG93ZWQgYnkgYSBtZWRpYWwgKG9yIGluaXRpYWwpCisgICAgICAgIC8vIGFueSBtZWRpYWwgbXVzdCBmb2xsb3cgYW4gaW5pdGlhbCAob3IgbWVkaWFsKQorICAgICAgICAvLyBhbnkgZmluYWwgbXVzdCBmb2xsb3cgYSBtZWRpYWwgKG9yIGZpbmFsKQorICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXMoU3RyaW5nIHNvdXJjZVN0cmluZykgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpbnQgdDsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZGVjb21wID0gTm9ybWFsaXplci5ub3JtYWxpemUoc291cmNlU3RyaW5nLCBOb3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkZWNvbXAubGVuZ3RoKCk7ICsraSkgeyAvLyBkb24ndCB3b3JyeSBhYm91dCBzdXJyb2dhdGVzCisgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZ2V0VHlwZShkZWNvbXAuY2hhckF0KGkpKSkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgICAgICAgICB0ID0gZ2V0VHlwZShkZWNvbXAuY2hhckF0KGkrMSkpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHQgIT0gMCAmJiB0ICE9IDEpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgICAgICB0ID0gZ2V0VHlwZShkZWNvbXAuY2hhckF0KGktMSkpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHQgIT0gMCAmJiB0ICE9IDEpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgICAgICAgICB0ID0gZ2V0VHlwZShkZWNvbXAuY2hhckF0KGktMSkpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHQgIT0gMSAmJiB0ICE9IDIpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfSBjYXRjaCAoU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IGdldFR5cGUoY2hhciBjKSB7CisgICAgICAgICAgICBpZiAoJ1x1MTEwMCcgPD0gYyAmJiBjIDw9ICdcdTExMTInKSByZXR1cm4gMDsKKyAgICAgICAgICAgIGVsc2UgaWYgKCdcdTExNjEnIDw9IGMgJiYgYyAgPD0gJ1x1MTE3NScpIHJldHVybiAxOworICAgICAgICAgICAgZWxzZSBpZiAoJ1x1MTFBOCcgPD0gYyAmJiBjICA8PSAnXHUxMUMyJykgcmV0dXJuIDI7CisgICAgICAgICAgICByZXR1cm4gLTE7IC8vIG90aGVyCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIEJyZWFrSXRlcmF0b3IgdGhhaUJyZWFrID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UobmV3IExvY2FsZSgidGgiLCAiVEgiKSk7CisgICAgLy8gYW55dGhpbmcgaXMgbGVnYWwgZXhjZXB0IHdvcmQgZW5kaW5nIHdpdGggTG9naWNhbC1vcmRlci1leGNlcHRpb24KKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIExlZ2FsVGhhaSBleHRlbmRzIExlZ2FsIHsKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXMoU3RyaW5nIHNvdXJjZVN0cmluZykgeworICAgICAgICAgICAgaWYgKHNvdXJjZVN0cmluZy5sZW5ndGgoKSA9PSAwKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIGNoYXIgY2ggPSBzb3VyY2VTdHJpbmcuY2hhckF0KHNvdXJjZVN0cmluZy5sZW5ndGgoKSAtIDEpOyAvLyBkb24ndCB3b3JyeSBhYm91dCBzdXJyb2dhdGVzLgorICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaGFzQmluYXJ5UHJvcGVydHkoY2gsIFVQcm9wZXJ0eS5MT0dJQ0FMX09SREVSX0VYQ0VQVElPTikpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBkaXNhbGxvdyBhbnl0aGluZyB3aXRoIGEgd29yZGJyZWFrIGJldHdlZW4KKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICBpZiAoVVRGMTYuY291bnRDb2RlUG9pbnQoc291cmNlU3RyaW5nKSA8PSAxKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIHRoYWlCcmVhay5zZXRUZXh0KHNvdXJjZVN0cmluZyk7CisgICAgICAgICAgICBmb3IgKGludCBwb3MgPSB0aGFpQnJlYWsuZmlyc3QoKTsgcG9zICE9IEJyZWFrSXRlcmF0b3IuRE9ORTsgcG9zID0gdGhhaUJyZWFrLm5leHQoKSkgeworICAgICAgICAgICAgICAgIGlmIChwb3MgPiAwICYmIHBvcyA8IHNvdXJjZVN0cmluZy5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlNraXBwaW5nICIgKyBVdGlsaXR5LmVzY2FwZShzb3VyY2VTdHJpbmcpKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICovCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBhbnl0aGluZyBpcyBsZWdhbCBleGNlcHQgdGhhdCBGaW5hbCBsZXR0ZXJzIGNhbid0IGJlIGZvbGxvd2VkIGJ5IGxldHRlcjsgTm9uRmluYWwgbXVzdCBiZQorICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgTGVnYWxIZWJyZXcgZXh0ZW5kcyBMZWdhbCB7CisgICAgICAgIHN0YXRpYyBVbmljb2RlU2V0IEZJTkFMID0gbmV3IFVuaWNvZGVTZXQoIltcdTA1REFcdTA1RERcdTA1REZcdTA1RTNcdTA1RTVdIik7CisgICAgICAgIHN0YXRpYyBVbmljb2RlU2V0IE5PTl9GSU5BTCA9IG5ldyBVbmljb2RlU2V0KCJbXHUwNURCXHUwNURFXHUwNUUwXHUwNUU0XHUwNUU2XSIpOworICAgICAgICBzdGF0aWMgVW5pY29kZVNldCBMRVRURVIgPSBuZXcgVW5pY29kZVNldCgiWzpsZXR0ZXI6XSIpOworICAgICAgICBwdWJsaWMgYm9vbGVhbiBpcyhTdHJpbmcgc291cmNlU3RyaW5nKSB7CisgICAgICAgICAgICBpZiAoc291cmNlU3RyaW5nLmxlbmd0aCgpID09IDApIHJldHVybiB0cnVlOworICAgICAgICAgICAgLy8gZG9uJ3Qgd29ycnkgYWJvdXQgc3Vycm9nYXRlcy4KKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc291cmNlU3RyaW5nLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICBjaGFyIGNoID0gc291cmNlU3RyaW5nLmNoYXJBdChpKTsKKyAgICAgICAgICAgICAgICBjaGFyIG5leHQgPSBpKzEgPT0gc291cmNlU3RyaW5nLmxlbmd0aCgpID8gJ1x1MDAwMCcgOiBzb3VyY2VTdHJpbmcuY2hhckF0KGkpOworICAgICAgICAgICAgICAgIGlmIChGSU5BTC5jb250YWlucyhjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKExFVFRFUi5jb250YWlucyhuZXh0KSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoTk9OX0ZJTkFMLmNvbnRhaW5zKGNoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIUxFVFRFUi5jb250YWlucyhuZXh0KSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0gICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgTGVnYWxHcmVlayBleHRlbmRzIExlZ2FsIHsKKyAgICAgICAgCisgICAgICAgIGJvb2xlYW4gZnVsbDsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBMZWdhbEdyZWVrKGJvb2xlYW4gZnVsbCkgeworICAgICAgICAgICAgdGhpcy5mdWxsID0gZnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc3RhdGljIGZpbmFsIGNoYXIgSU9UQV9TVUJTQ1JJUFQgPSAnXHUwMzQ1JzsKKyAgICAgICAgc3RhdGljIGZpbmFsIFVuaWNvZGVTZXQgYnJlYXRoaW5nID0gbmV3IFVuaWNvZGVTZXQoIltcXHUwMzEzXFx1MDMxNCddIik7CisgICAgICAgIHN0YXRpYyBmaW5hbCBVbmljb2RlU2V0IHZhbGlkU2Vjb25kVm93ZWwgPSBuZXcgVW5pY29kZVNldCgiW1xcdTAzQzVcXHUwM0I5XFx1MDNBNVxcdTAzOTldIik7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNWb3dlbChjaGFyIGMpIHsKKyAgICAgICAgICAgIHJldHVybiAiXHUwM0IxXHUwM0I1XHUwM0I3XHUwM0I5XHUwM0JGXHUwM0M1XHUwM0M5XHUwMzkxXHUwMzk1XHUwMzk3XHUwMzk5XHUwMzlGXHUwM0E1XHUwM0E5Ii5pbmRleE9mKGMpID49IDA7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1JobyhjaGFyIGMpIHsKKyAgICAgICAgICAgIHJldHVybiAiXHUwM0MxXHUwM0ExIi5pbmRleE9mKGMpID49IDA7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzKFN0cmluZyBzb3VyY2VTdHJpbmcpIHsgCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIFN0cmluZyBkZWNvbXAgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShzb3VyY2VTdHJpbmcsIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBtb2Rlcm4gaXMgc2ltcGxlcjogZG9uJ3QgY2FyZSBhYm91dCBhbnl0aGluZyBidXQgYSBncmF2ZQorICAgICAgICAgICAgICAgIGlmICghZnVsbCkgeworICAgICAgICAgICAgICAgICAgICAvL2lmIChzb3VyY2VTdHJpbmcuZXF1YWxzKCJcdTAzOUNcdTAzQzAiKSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRlY29tcC5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGMgPSBkZWNvbXAuY2hhckF0KGkpOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXhjbHVkZSBhbGwgdGhlIGFjY2VudHMKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjID09ICdcdTAzMTMnIHx8IGMgPT0gJ1x1MDMxNCcgfHwgYyA9PSAnXHUwMzAwJyB8fCBjID09ICdcdTAzMDInCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgYyA9PSAnXHUwMzQyJyB8fCBjID09ICdcdTAzNDUnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIExlZ2FsIGZ1bGwgR3JlZWsgaGFzIGJyZWF0aGluZyBtYXJrcyBJRkYgdGhlcmUgaXMgYSB2b3dlbCBvciBSSE8gYXQgdGhlIHN0YXJ0CisgICAgICAgICAgICAgICAgLy8gSUYgaXQgaGFzIHRoZW0sIGl0IGhhcyBleGFjdGx5IG9uZS4KKyAgICAgICAgICAgICAgICAvLyBJRiBpdCBzdGFydHMgd2l0aCBhIFJITywgdGhlbiB0aGUgYnJlYXRoaW5nIG1hcmsgbXVzdCBjb21lIGJlZm9yZSB0aGUgc2Vjb25kIGxldHRlci4KKyAgICAgICAgICAgICAgICAvLyBJRiBpdCBzdGFydHMgd2l0aCBhIHZvd2VsLCB0aGVuIGl0IG11c3QgYmVmb3JlIHRoZSB0aGlyZCBsZXR0ZXIuCisgICAgICAgICAgICAgICAgLy8JaXQgd2lsbCBvbmx5IGNvbWUgYWZ0ZXIgdGhlIHNlY29uZCBpZiBvZiB0aGUgZm9ybWF0IFt2b3dlbF0gW25vIGlvdGEgc3Vic2NyaXB0IV0gW3Vwc2lsb24gb3IgaW90YV0KKyAgICAgICAgICAgICAgICAvLyBTaW5jZSB0aGVyZSBhcmUgbm8gc3Vycm9nYXRlcyBpbiBncmVlaywgZG9uJ3Qgd29ycnkgYWJvdXQgdGhlbQorCisgICAgICAgICAgICAgICAgYm9vbGVhbiBmaXJzdElzVm93ZWwgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBib29sZWFuIGZpcnN0SXNSaG8gPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBib29sZWFuIG5vTGV0dGVyWWV0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBpbnQgYnJlYXRoaW5nQ291bnQgPSAwOworICAgICAgICAgICAgICAgIGludCBsZXR0ZXJDb3VudCA9IDA7CisgICAgICAgICAgICAgICAgaW50IGJyZWF0aGluZ1Bvc2l0aW9uID0gLTE7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkZWNvbXAubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBjaGFyIGMgPSBkZWNvbXAuY2hhckF0KGkpOworICAgICAgICAgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0xldHRlcihjKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgKytsZXR0ZXJDb3VudDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaXJzdElzVm93ZWwgJiYgIXZhbGlkU2Vjb25kVm93ZWwuY29udGFpbnMoYykgJiYgYnJlYXRoaW5nQ291bnQgPT0gMCkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5vTGV0dGVyWWV0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9MZXR0ZXJZZXQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdElzVm93ZWwgPSBpc1Zvd2VsKGMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0SXNSaG8gPSBpc1JobyhjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaXJzdElzUmhvICYmIGxldHRlckNvdW50ID09IDIgJiYgYnJlYXRoaW5nQ291bnQgPT0gMCkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChjID09IElPVEFfU1VCU0NSSVBUICYmIGZpcnN0SXNWb3dlbCAmJiBicmVhdGhpbmdDb3VudCA9PSAwKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGlmIChicmVhdGhpbmcuY29udGFpbnMoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgCWJyZWF0aGluZ1Bvc2l0aW9uID0gaTsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrYnJlYXRoaW5nQ291bnQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGZpcnN0SXNWb3dlbCB8fCBmaXJzdElzUmhvKSByZXR1cm4gYnJlYXRoaW5nQ291bnQgPT0gMTsKKyAgICAgICAgICAgICAgICByZXR1cm4gYnJlYXRoaW5nQ291bnQgPT0gMDsKKyAgICAgICAgICAgIH0gY2F0Y2ggKFRocm93YWJsZSB0KSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHQuZ2V0Q2xhc3MoKS5nZXROYW1lKCkgKyAiICIgKyB0LmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGNsYXNzIFRlc3QgeworICAgIAorICAgICAgICBQcmludFdyaXRlciBvdXQ7CisgICAgCisgICAgICAgIHByaXZhdGUgU3RyaW5nIHRyYW5zbGl0ZXJhdG9ySUQ7IAorICAgICAgICBwcml2YXRlIGludCBlcnJvckxpbWl0ID0gNTAwOworICAgICAgICBwcml2YXRlIGludCBlcnJvckNvdW50ID0gMDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgcGFpckxpbWl0ICA9IDB4MTAwMDA7CisgICAgICAgIFVuaWNvZGVTZXQgc291cmNlUmFuZ2U7CisgICAgICAgIFVuaWNvZGVTZXQgdGFyZ2V0UmFuZ2U7CisgICAgICAgIFVuaWNvZGVTZXQgdG9Tb3VyY2U7CisgICAgICAgIFVuaWNvZGVTZXQgdG9UYXJnZXQ7CisgICAgICAgIFVuaWNvZGVTZXQgcm91bmR0cmlwRXhjbHVzaW9uczsKKyAgICAgICAgCisgICAgICAgIFJvdW5kVHJpcFRlc3QgbG9nOworICAgICAgICBMZWdhbCBsZWdhbFNvdXJjZTsKKyAgICAgICAgVW5pY29kZVNldCBiYWRDaGFyYWN0ZXJzOworICAgIAorICAgICAgICAvKgorICAgICAgICAgKiBjcmVhdGUgYSB0ZXN0IGZvciB0aGUgZ2l2ZW4gc2NyaXB0IHRyYW5zbGl0ZXJhdG9yLgorICAgICAgICAgKi8KKyAgICAgICAgVGVzdChTdHJpbmcgdHJhbnNsaXRlcmF0b3JJRCkgeworICAgICAgICAgICAgdGhpcy50cmFuc2xpdGVyYXRvcklEID0gdHJhbnNsaXRlcmF0b3JJRDsKKyAgICAgICAgfQorICAgIAorICAgICAgICBwdWJsaWMgdm9pZCBzZXRFcnJvckxpbWl0KGludCBsaW1pdCkgeworICAgICAgICAgICAgZXJyb3JMaW1pdCA9IGxpbWl0OworICAgICAgICB9CisgICAgCisgICAgICAgIHB1YmxpYyB2b2lkIHNldFBhaXJMaW1pdChpbnQgbGltaXQpIHsKKyAgICAgICAgICAgIHBhaXJMaW1pdCA9IGxpbWl0OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBBZGRlZCB0byBkbyBiZXR0ZXIgZXF1YWxpdHkgY2hlY2suCisgICAgICAgIAorICAgICAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNTYW1lKFN0cmluZyBhLCBTdHJpbmcgYikgeworICAgICAgICAgICAgaWYgKGEuZXF1YWxzKGIpKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChhLmVxdWFsc0lnbm9yZUNhc2UoYikgJiYgaXNDYW1lbChhKSkgcmV0dXJuIHRydWU7CisgICAgICAgICAgICBhID0gTm9ybWFsaXplci5ub3JtYWxpemUoYSwgTm9ybWFsaXplci5ORkQpOworICAgICAgICAgICAgYiA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKGIsIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgIGlmIChhLmVxdWFscyhiKSkgcmV0dXJuIHRydWU7CisgICAgICAgICAgICBpZiAoYS5lcXVhbHNJZ25vcmVDYXNlKGIpICYmIGlzQ2FtZWwoYSkpIHJldHVybiB0cnVlOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKgorICAgICAgICBwdWJsaWMgYm9vbGVhbiBpbmNsdWRlc1NvbWUoVW5pY29kZVNldCBzZXQsIFN0cmluZyBhKSB7CisgICAgICAgICAgICBpbnQgY3A7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGEubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgICAgIGNwID0gVVRGMTYuY2hhckF0KGEsIGkpOworICAgICAgICAgICAgICAgIGlmIChzZXQuY29udGFpbnMoY3ApKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAqLworICAgICAgICAKKyAgICAgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzQ2FtZWwoU3RyaW5nIGEpIHsKKyAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJDYW1lbFRlc3QiKTsKKyAgICAgICAgICAgIC8vIHNlZSBpZiBzdHJpbmcgaXMgb2YgdGhlIGZvcm0gYUI7IGUuZy4gbG93ZXIsIHRoZW4gdXBwZXIgb3IgdGl0bGUKKyAgICAgICAgICAgIGludCBjcDsKKyAgICAgICAgICAgIGJvb2xlYW4gaGF2ZUxvd2VyID0gZmFsc2U7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGEubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgICAgIGNwID0gVVRGMTYuY2hhckF0KGEsIGkpOworICAgICAgICAgICAgICAgIGludCB0ID0gVUNoYXJhY3Rlci5nZXRUeXBlKGNwKTsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiXHQiICsgdCArICIgIiArIEludGVnZXIudG9TdHJpbmcoY3AsMTYpICsgIiAiICsgVUNoYXJhY3Rlci5nZXROYW1lKGNwKSk7CisgICAgICAgICAgICAgICAgc3dpdGNoICh0KSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgQ2hhcmFjdGVyLlVQUEVSQ0FTRV9MRVRURVI6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGF2ZUxvd2VyKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIENoYXJhY3Rlci5USVRMRUNBU0VfTEVUVEVSOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhhdmVMb3dlcikgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBkcm9wIHRocm91Z2gsIHNpbmNlIHNlY29uZCBsZXR0ZXIgaXMgbG93ZXIuCisgICAgICAgICAgICAgICAgICAgIGNhc2UgQ2hhcmFjdGVyLkxPV0VSQ0FTRV9MRVRURVI6CisgICAgICAgICAgICAgICAgICAgICAgICBoYXZlTG93ZXIgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIkZBTFNFIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHN0YXRpYyBmaW5hbCBVbmljb2RlU2V0IG9rQW55d2F5ID0gbmV3IFVuaWNvZGVTZXQoIlteWzpMZXR0ZXI6XV0iKTsKKyAgICAgICAgc3RhdGljIGZpbmFsIFVuaWNvZGVTZXQgbmV2ZXJPayA9IG5ldyBVbmljb2RlU2V0KCJbOk90aGVyOl0iKTsKKyAgICAgIAorICAgICAgICBwdWJsaWMgdm9pZCB0ZXN0KFN0cmluZyBzb3VyY2VSYW5nZSwgU3RyaW5nIHRhcmdldFJhbmdlLCAKKyAgICAgICAgICBTdHJpbmcgcm91bmR0cmlwRXhjbHVzaW9ucywgUm91bmRUcmlwVGVzdCBsb2csIExlZ2FsIGxlZ2FsU291cmNlKSAKKyAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiwgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uIHsKKyAgICAgICAgICAgIHRlc3Qoc291cmNlUmFuZ2UsIHRhcmdldFJhbmdlLCBzb3VyY2VSYW5nZSwgcm91bmR0cmlwRXhjbHVzaW9ucywgbG9nLCBsZWdhbFNvdXJjZSk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCB0ZXN0KFN0cmluZyBzb3VyY2VSYW5nZSwgU3RyaW5nIHRhcmdldFJhbmdlLCBTdHJpbmcgYmFja3RvU291cmNlUmFuZ2UsCisgICAgICAgICAgU3RyaW5nIHJvdW5kdHJpcEV4Y2x1c2lvbnMsIFJvdW5kVHJpcFRlc3QgbG9nLCBMZWdhbCBsZWdhbFNvdXJjZSkgCisgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24sIGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbiB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHRoaXMubGVnYWxTb3VyY2UgPSBsZWdhbFNvdXJjZTsKKyAgICAgICAgICAgIHRoaXMuc291cmNlUmFuZ2UgPSBuZXcgVW5pY29kZVNldChzb3VyY2VSYW5nZSk7CisgICAgICAgICAgICB0aGlzLnNvdXJjZVJhbmdlLnJlbW92ZUFsbChuZXZlck9rKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdGhpcy50YXJnZXRSYW5nZSA9IG5ldyBVbmljb2RlU2V0KHRhcmdldFJhbmdlKTsKKyAgICAgICAgICAgIHRoaXMudGFyZ2V0UmFuZ2UucmVtb3ZlQWxsKG5ldmVyT2spOworICAgICAgICAgICAgCisgICAgICAgICAgICB0aGlzLnRvU291cmNlID0gbmV3IFVuaWNvZGVTZXQoYmFja3RvU291cmNlUmFuZ2UpOworICAgICAgICAgICAgdGhpcy50b1NvdXJjZS5hZGRBbGwob2tBbnl3YXkpOworICAgICAgICAgICAgCisgICAgICAgICAgICB0aGlzLnRvVGFyZ2V0ID0gbmV3IFVuaWNvZGVTZXQodGFyZ2V0UmFuZ2UpOworICAgICAgICAgICAgdGhpcy50b1RhcmdldC5hZGRBbGwob2tBbnl3YXkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAocm91bmR0cmlwRXhjbHVzaW9ucyAhPSBudWxsICYmIHJvdW5kdHJpcEV4Y2x1c2lvbnMubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgdGhpcy5yb3VuZHRyaXBFeGNsdXNpb25zID0gbmV3IFVuaWNvZGVTZXQocm91bmR0cmlwRXhjbHVzaW9ucyk7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICB0aGlzLnJvdW5kdHJpcEV4Y2x1c2lvbnMgPSBuZXcgVW5pY29kZVNldCgpOyAvLyBlbXB0eQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0aGlzLmxvZyA9IGxvZzsKKworICAgICAgICAgICAgbG9nLmxvZ2xuKFV0aWxpdHkuZXNjYXBlKCJTb3VyY2U6ICAiICsgdGhpcy5zb3VyY2VSYW5nZSkpOworICAgICAgICAgICAgbG9nLmxvZ2xuKFV0aWxpdHkuZXNjYXBlKCJUYXJnZXQ6ICAiICsgdGhpcy50YXJnZXRSYW5nZSkpOworICAgICAgICAgICAgbG9nLmxvZ2xuKFV0aWxpdHkuZXNjYXBlKCJFeGNsdWRlOiAiICsgdGhpcy5yb3VuZHRyaXBFeGNsdXNpb25zKSk7CisgICAgICAgICAgICBpZiAobG9nLmlzUXVpY2soKSkgbG9nLmxvZ2xuKCJBYmJyZXZpYXRlZCBUZXN0Iik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGJhZENoYXJhY3RlcnMgPSBuZXcgVW5pY29kZVNldCgiWzpvdGhlcjpdIik7CisKKyAgICAgICAgICAgIC8vIG1ha2UgYSBVVEYtOCBvdXRwdXQgZmlsZSB3ZSBjYW4gcmVhZCB3aXRoIGEgYnJvd3NlcgorCisgICAgICAgICAgICAvLyBub3RlOiBjaGVjayB0aGF0IGV2ZXJ5IHRyYW5zbGl0ZXJhdG9yIHRyYW5zbGl0ZXJhdGVzIHRoZSBudWxsIHN0cmluZyBjb3JyZWN0bHkhCisKKyAgICAgICAgICAgIFN0cmluZyBsb2dGaWxlTmFtZSA9ICJ0ZXN0XyIgKyB0cmFuc2xpdGVyYXRvcklELnJlcGxhY2UoJy8nLCAnXycpICsgIi5odG1sIjsKKworICAgICAgICAgICAgRmlsZSBsZiA9IG5ldyBGaWxlKGxvZ0ZpbGVOYW1lKTsgCisgICAgICAgICAgICBsb2cubG9nbG4oIkNyZWF0aW5nIGxvZyBmaWxlICIgKyBsZi5nZXRBYnNvbHV0ZUZpbGUoKSk7CisKKyAgICAgICAgICAgIG91dCA9IG5ldyBQcmludFdyaXRlcihuZXcgQnVmZmVyZWRXcml0ZXIobmV3IE91dHB1dFN0cmVhbVdyaXRlcigKKyAgICAgICAgICAgICAgICAgICAgICBuZXcgRmlsZU91dHB1dFN0cmVhbShsb2dGaWxlTmFtZSksICJVVEY4IiksIDQqMTAyNCkpOworICAgICAgICAgICAgLy9vdXQud3JpdGUoJ1x1RkZFRicpOyAgICAvLyBCT00KKyAgICAgICAgICAgIG91dC5wcmludGxuKCI8IURPQ1RZUEUgSFRNTCBQVUJMSUMgXCItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOXCI+Iik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPEhUTUw+PEhFQUQ+Iik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPE1FVEEgY29udGVudD1cInRleHQvaHRtbDsgY2hhcnNldD11dGYtOFwiIGh0dHAtZXF1aXY9Q29udGVudC1UeXBlPjwvSEVBRD4iKTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCI8Qk9EWSBiZ2NvbG9yPScjRkZGRkZGJyBzdHlsZT0nZm9udC1mYW1pbHk6IEFyaWFsIFVuaWNvZGUgTVMnPiIpOworCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHRlc3QyKCk7CisgICAgICAgICAgICB9IGNhdGNoIChUZXN0VHJ1bmNhdGVkIGUpIHsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnRsbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPC9CT0RZPjwvSFRNTD4iKTsKKyAgICAgICAgICAgIG91dC5jbG9zZSgpOworCisgICAgICAgICAgICBpZiAoZXJyb3JDb3VudCA+IDApIHsKKyAgICAgICAgICAgICAgICBsb2cuZXJybG4odHJhbnNsaXRlcmF0b3JJRCArICIgZXJyb3JzOiAiIAorICAgICAgICAgICAgICAgICAgICArIGVycm9yQ291bnQgKyAoZXJyb3JDb3VudCA+IGVycm9yTGltaXQgPyAiIChhdCBsZWFzdCEpIiA6ICIiKQorICAgICAgICAgICAgICAgICAgICArICIsIHNlZSAiICsgbGYuZ2V0QWJzb2x1dGVGaWxlKCkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2cubG9nbG4odHJhbnNsaXRlcmF0b3JJRCArICIgb2siKTsKKyAgICAgICAgICAgICAgICBuZXcgRmlsZShsb2dGaWxlTmFtZSkuZGVsZXRlKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIG9rIGlmIGF0IGxlYXN0IG9uZSBpcyBub3QgZXF1YWwKKyAgICAgICAgcHVibGljIGJvb2xlYW4gY2hlY2tJcnJlbGV2YW50cyhUcmFuc2xpdGVyYXRvciB0LCBTdHJpbmcgaXJyZWxldmFudHMpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXJyZWxldmFudHMubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgICAgIGNoYXIgYyA9IGlycmVsZXZhbnRzLmNoYXJBdChpKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgY3MgPSBVVEYxNi52YWx1ZU9mKGMpOworICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnID0gdC50cmFuc2xpdGVyYXRlKGNzKTsKKyAgICAgICAgICAgICAgICBpZiAoY3MuZXF1YWxzKHRhcmcpKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHRlc3QyKCkgeworCisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciBzb3VyY2VUb1RhcmdldCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKHRyYW5zbGl0ZXJhdG9ySUQpOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdGFyZ2V0VG9Tb3VyY2UgPSBzb3VyY2VUb1RhcmdldC5nZXRJbnZlcnNlKCk7CisgICAgICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IgdXNpID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcigpOworICAgICAgICAgICAgVW5pY29kZVNldEl0ZXJhdG9yIHVzaTIgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGxvZy5sb2dsbigiQ2hlY2tpbmcgdGhhdCBhdCBsZWFzdCBvbmUgaXJyZXZhbnQgY2hhcmFjdGVycyBpcyBub3QgTkZDJ2VkIik7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgaXJyZWxldmFudHMgPSAiXHUyMDAwXHUyMDAxXHUyMTI2XHUyMTJBXHUyMTJCXHUyMzI5IjsgLy8gc3RyaW5nIGlzIGZyb20gTkZDX05PIGluIHRoZSBVQ0QKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICghY2hlY2tJcnJlbGV2YW50cyhzb3VyY2VUb1RhcmdldCwgaXJyZWxldmFudHMpKSB7CisgICAgICAgICAgICAgICAgbG9nRmFpbHMoIlNvdXJjZS1UYXJnZXQsIE11c3Qgbm90IE5GQyBldmVyeXRoaW5nIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWNoZWNrSXJyZWxldmFudHModGFyZ2V0VG9Tb3VyY2UsIGlycmVsZXZhbnRzKSkgeworICAgICAgICAgICAgICAgIGxvZ0ZhaWxzKCJUYXJnZXQtU291cmNlLCBpcnJlbGV2YW50cyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoRVhUUkFfVEVTVFMpIHsKKyAgICAgICAgICAgICAgICBsb2cubG9nbG4oIkNoZWNraW5nIHRoYXQgdG9SdWxlcyB3b3JrcyIpOworICAgICAgICAgICAgICAgIFN0cmluZyBydWxlcyA9ICIiOworICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHNvdXJjZVRvVGFyZ2V0MjsKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0YXJnZXRUb1NvdXJjZTI7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgcnVsZXMgPSBzb3VyY2VUb1RhcmdldC50b1J1bGVzKGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlVG9UYXJnZXQyID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJzMnQyIiwgcnVsZXMsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICAgICAgICAgICAgICBpZiAoUFJJTlRfUlVMRVMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8aDM+Rm9yd2FyZCBSdWxlczo8L2gzPjxwPiIpOworICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oVGVzdFV0aWxpdHkucmVwbGFjZShydWxlcywgIlxuIiwgIjxicj5cbiIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8L3A+Iik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcnVsZXMgPSB0YXJnZXRUb1NvdXJjZS50b1J1bGVzKGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VG9Tb3VyY2UyID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJ0MnMyIiwgcnVsZXMsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICAgICAgICAgICAgICBpZiAoUFJJTlRfUlVMRVMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8aDM+QmFja3dhcmQgUnVsZXM6PC9oMz48cD4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKFRlc3RVdGlsaXR5LnJlcGxhY2UocnVsZXMsICJcbiIsICI8YnI+XG4iKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiPC9wPiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoUnVudGltZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8aDM+QnJva2VuIFJ1bGVzOjwvaDM+PHA+Iik7CisgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKFRlc3RVdGlsaXR5LnJlcGxhY2UocnVsZXMsICJcbiIsICI8YnI+XG4iKSk7CisgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8L3A+Iik7CisgICAgICAgICAgICAgICAgICAgIG91dC5mbHVzaCgpOworICAgICAgICAgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB1c2kucmVzZXQoc291cmNlUmFuZ2UpOworICAgICAgICAgICAgICAgIHdoaWxlICh1c2kubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBjID0gdXNpLmNvZGVwb2ludDsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBjcyA9IFVURjE2LnZhbHVlT2YoYyk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnID0gc291cmNlVG9UYXJnZXQudHJhbnNsaXRlcmF0ZShjcyk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnMiA9IHNvdXJjZVRvVGFyZ2V0Mi50cmFuc2xpdGVyYXRlKGNzKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0YXJnLmVxdWFscyh0YXJnMikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ1RvUnVsZXNGYWlscygiU291cmNlLVRhcmdldCwgdG9SdWxlcyIsIGNzLCB0YXJnLCB0YXJnMik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgdXNpLnJlc2V0KHRhcmdldFJhbmdlKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAodXNpLm5leHQoKSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgYyA9IHVzaS5jb2RlcG9pbnQ7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBTdHJpbmcgY3MgPSBVVEYxNi52YWx1ZU9mKGMpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZyA9IHRhcmdldFRvU291cmNlLnRyYW5zbGl0ZXJhdGUoY3MpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZzIgPSB0YXJnZXRUb1NvdXJjZTIudHJhbnNsaXRlcmF0ZShjcyk7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGFyZy5lcXVhbHModGFyZzIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dUb1J1bGVzRmFpbHMoIlRhcmdldC1Tb3VyY2UsIHRvUnVsZXMiLCBjcywgdGFyZywgdGFyZzIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisKKyAgICAgICAgICAgIGxvZy5sb2dsbigiQ2hlY2tpbmcgdGhhdCBzb3VyY2UgY2hhcmFjdGVycyBjb252ZXJ0IHRvIHRhcmdldCAtIFNpbmdsZXMiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgVW5pY29kZVNldCBmYWlsU291cmNlVGFyZyA9IG5ldyBVbmljb2RlU2V0KCk7CisKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICBmb3IgKGNoYXIgYyA9IDA7IGMgPCAweEZGRkY7ICsrYykgeworICAgICAgICAgICAgICAgIGlmICghc291cmNlUmFuZ2UuY29udGFpbnMoYykpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICB1c2kucmVzZXQoc291cmNlUmFuZ2UpOworICAgICAgICAgICAgd2hpbGUgKHVzaS5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBpbnQgYyA9IHVzaS5jb2RlcG9pbnQ7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgU3RyaW5nIGNzID0gVVRGMTYudmFsdWVPZihjKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZyA9IHNvdXJjZVRvVGFyZ2V0LnRyYW5zbGl0ZXJhdGUoY3MpOworICAgICAgICAgICAgICAgIGlmICghdG9UYXJnZXQuY29udGFpbnNBbGwodGFyZykgCisgICAgICAgICAgICAgICAgICAgICAgICB8fCBiYWRDaGFyYWN0ZXJzLmNvbnRhaW5zU29tZSh0YXJnKSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZ0QgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZSh0YXJnLCBOb3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICAgICAgICAgIGlmICghdG9UYXJnZXQuY29udGFpbnNBbGwodGFyZ0QpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGJhZENoYXJhY3RlcnMuY29udGFpbnNTb21lKHRhcmdEKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbG9nV3JvbmdTY3JpcHQoIlNvdXJjZS1UYXJnZXQiLCBjcywgdGFyZyk7CisgICAgICAgICAgICAgICAgICAgICAgICBmYWlsU291cmNlVGFyZy5hZGQoYyk7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBTdHJpbmcgY3MyID0gTm9ybWFsaXplci5ub3JtYWxpemUoY3MsIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZzIgPSBzb3VyY2VUb1RhcmdldC50cmFuc2xpdGVyYXRlKGNzMik7CisgICAgICAgICAgICAgICAgaWYgKCF0YXJnLmVxdWFscyh0YXJnMikpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nTm90Q2Fub25pY2FsKCJTb3VyY2UtVGFyZ2V0IiwgY3MsIHRhcmcsIGNzMiwgdGFyZzIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbG9nLmxvZ2xuKCJDaGVja2luZyB0aGF0IHNvdXJjZSBjaGFyYWN0ZXJzIGNvbnZlcnQgdG8gdGFyZ2V0IC0gRG91YmxlcyIpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgZm9yIChjaGFyIGMgPSAwOyBjIDwgMHhGRkZGOyArK2MpIHsgCisgICAgICAgICAgICAgICAgaWYgKFRlc3RVdGlsaXR5LmlzVW5hc3NpZ25lZChjKSB8fAorICAgICAgICAgICAgICAgICAgICAhc291cmNlUmFuZ2UuY29udGFpbnMoYykpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGlmIChmYWlsU291cmNlVGFyZy5nZXQoYykpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIAorICAgICAgICAgICAgVW5pY29kZVNldCBzb3VyY2VSYW5nZU1pbnVzRmFpbHVyZXMgPSBuZXcgVW5pY29kZVNldChzb3VyY2VSYW5nZSk7CisgICAgICAgICAgICBzb3VyY2VSYW5nZU1pbnVzRmFpbHVyZXMucmVtb3ZlQWxsKGZhaWxTb3VyY2VUYXJnKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYm9vbGVhbiBza2lwU29tZSA9IGxvZy5nZXRJbmNsdXNpb24oKSA8IDEwOworICAgICAgICAgICAgCisgICAgICAgICAgICB1c2kucmVzZXQoc291cmNlUmFuZ2VNaW51c0ZhaWx1cmVzKTsKKyAgICAgICAgICAgIHVzaS5zZXRBYmJyZXZpYXRlZChza2lwU29tZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHdoaWxlICh1c2kubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgaW50IGMgPSB1c2kuY29kZXBvaW50OworICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgZm9yIChjaGFyIGQgPSAwOyBkIDwgMHhGRkZGOyArK2QpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKFRlc3RVdGlsaXR5LmlzVW5hc3NpZ25lZChkKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgIXNvdXJjZVJhbmdlLmNvbnRhaW5zKGQpKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZhaWxTb3VyY2VUYXJnLmdldChkKSkgY29udGludWU7CisgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICB1c2kyLnJlc2V0KHNvdXJjZVJhbmdlTWludXNGYWlsdXJlcyk7CisgICAgICAgICAgICAJdXNpMi5zZXRBYmJyZXZpYXRlZChza2lwU29tZSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgd2hpbGUgKHVzaTIubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBkID0gdXNpMi5jb2RlcG9pbnQ7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBTdHJpbmcgY3MgPSBVVEYxNi52YWx1ZU9mKGMpICsgVVRGMTYudmFsdWVPZihkKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRhcmcgPSBzb3VyY2VUb1RhcmdldC50cmFuc2xpdGVyYXRlKGNzKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0b1RhcmdldC5jb250YWluc0FsbCh0YXJnKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBiYWRDaGFyYWN0ZXJzLmNvbnRhaW5zU29tZSh0YXJnKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRhcmdEID0gTm9ybWFsaXplci5ub3JtYWxpemUodGFyZywgTm9ybWFsaXplci5ORkQpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0b1RhcmdldC5jb250YWluc0FsbCh0YXJnRCkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGJhZENoYXJhY3RlcnMuY29udGFpbnNTb21lKHRhcmdEKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ1dyb25nU2NyaXB0KCJTb3VyY2UtVGFyZ2V0IiwgY3MsIHRhcmcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBjczIgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShjcywgTm9ybWFsaXplci5ORkQpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZzIgPSBzb3VyY2VUb1RhcmdldC50cmFuc2xpdGVyYXRlKGNzMik7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGFyZy5lcXVhbHModGFyZzIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dOb3RDYW5vbmljYWwoIlNvdXJjZS1UYXJnZXQiLCBjcywgdGFyZywgY3MyLCB0YXJnMik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxvZy5sb2dsbigiQ2hlY2tpbmcgdGhhdCB0YXJnZXQgY2hhcmFjdGVycyBjb252ZXJ0IHRvIHNvdXJjZSBhbmQgYmFjayAtIFNpbmdsZXMiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgVW5pY29kZVNldCBmYWlsVGFyZ1NvdXJjZSA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgICAgICBVbmljb2RlU2V0IGZhaWxSb3VuZCA9IG5ldyBVbmljb2RlU2V0KCk7CisKKyAgICAgICAgICAgIC8qZm9yIChjaGFyIGMgPSAwOyBjIDwgMHhGRkZGOyArK2MpIHsKKyAgICAgICAgICAgICAgICBpZiAoVGVzdFV0aWxpdHkuaXNVbmFzc2lnbmVkKGMpIHx8CisgICAgICAgICAgICAgICAgICAgICF0YXJnZXRSYW5nZS5jb250YWlucyhjKSkgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgdXNpLnJlc2V0KHRhcmdldFJhbmdlKTsKKyAgICAgICAgICAgIHdoaWxlICh1c2kubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGNzOworICAgICAgICAgICAgICAgIGludCBjOworICAgICAgICAgICAgICAgIGlmKHVzaS5jb2RlcG9pbnQgPT0gdXNpLklTX1NUUklORyl7CisgICAgICAgICAgICAgICAgICAgIGNzID0gdXNpLnN0cmluZzsKKyAgICAgICAgICAgICAgICAgICAgYyA9IFVURjE2LmNoYXJBdChjcywwKTsKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgYyA9IHVzaS5jb2RlcG9pbnQ7CisgICAgICAgICAgICAgICAgICAgIGNzID1VVEYxNi52YWx1ZU9mKGMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgU3RyaW5nIHRhcmcgPSB0YXJnZXRUb1NvdXJjZS50cmFuc2xpdGVyYXRlKGNzKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcmV2ZXJzZSA9IHNvdXJjZVRvVGFyZ2V0LnRyYW5zbGl0ZXJhdGUodGFyZyk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKCF0b1NvdXJjZS5jb250YWluc0FsbCh0YXJnKSAKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IGJhZENoYXJhY3RlcnMuY29udGFpbnNTb21lKHRhcmcpKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnRCA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKHRhcmcsIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0b1NvdXJjZS5jb250YWluc0FsbCh0YXJnRCkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgYmFkQ2hhcmFjdGVycy5jb250YWluc1NvbWUodGFyZ0QpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dXcm9uZ1NjcmlwdCgiVGFyZ2V0LVNvdXJjZSIsIGNzLCB0YXJnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZhaWxUYXJnU291cmNlLmFkZChjcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoIWlzU2FtZShjcywgcmV2ZXJzZSkgJiYgIXJvdW5kdHJpcEV4Y2x1c2lvbnMuY29udGFpbnMoYykKKyAgICAgICAgICAgICAgICAgICAgJiYgIXJvdW5kdHJpcEV4Y2x1c2lvbnMuY29udGFpbnMoY3MpKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ1JvdW5kVHJpcEZhaWx1cmUoY3MsdGFyZ2V0VG9Tb3VyY2UuZ2V0SUQoKSwgdGFyZyxzb3VyY2VUb1RhcmdldC5nZXRJRCgpLCByZXZlcnNlKTsKKyAgICAgICAgICAgICAgICAgICAgZmFpbFJvdW5kLmFkZChjKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnMiA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKHRhcmcsIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcmV2ZXJzZTIgPSBzb3VyY2VUb1RhcmdldC50cmFuc2xpdGVyYXRlKHRhcmcyKTsKKyAgICAgICAgICAgICAgICBpZiAoIXJldmVyc2UuZXF1YWxzKHJldmVyc2UyKSkgeworICAgICAgICAgICAgICAgICAgICBsb2dOb3RDYW5vbmljYWwoIlRhcmdldC1Tb3VyY2UiLCB0YXJnLCByZXZlcnNlLCB0YXJnMiwgcmV2ZXJzZTIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbG9nLmxvZ2xuKCJDaGVja2luZyB0aGF0IHRhcmdldCBjaGFyYWN0ZXJzIGNvbnZlcnQgdG8gc291cmNlIGFuZCBiYWNrIC0gRG91YmxlcyIpOworICAgICAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgVW5pY29kZVNldCB0YXJnZXRSYW5nZU1pbnVzRmFpbHVyZXMgPSBuZXcgVW5pY29kZVNldCh0YXJnZXRSYW5nZSk7CisgICAgICAgICAgICB0YXJnZXRSYW5nZU1pbnVzRmFpbHVyZXMucmVtb3ZlQWxsKGZhaWxUYXJnU291cmNlKTsKKyAgICAgICAgICAgIHRhcmdldFJhbmdlTWludXNGYWlsdXJlcy5yZW1vdmVBbGwoZmFpbFJvdW5kKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy9jaGFyW10gYnVmID0gbmV3IGNoYXJbNF07IC8vIG1heGltdW0gd2UgY2FuIGhhdmUgd2l0aCAyIGNvZGUgcG9pbnRzCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgZm9yIChjaGFyIGMgPSAwOyBjIDwgMHhGRkZGOyArK2MpIHsKKyAgICAgICAgICAgICAgICBpZiAoVGVzdFV0aWxpdHkuaXNVbmFzc2lnbmVkKGMpIHx8CisgICAgICAgICAgICAgICAgICAgICF0YXJnZXRSYW5nZS5jb250YWlucyhjKSkgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAKKyAgICAgICAgICAgIHVzaS5yZXNldCh0YXJnZXRSYW5nZU1pbnVzRmFpbHVyZXMpOworICAgICAgICAgICAgdXNpLnNldEFiYnJldmlhdGVkKHNraXBTb21lKTsKKyAgICAgICAgICAgIAkKKyAgICAgICAgICAgIHdoaWxlICh1c2kubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgaW50IGMgPSB1c2kuY29kZXBvaW50OworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmICgrK2NvdW50ID4gcGFpckxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUZXN0VHJ1bmNhdGVkKCJUZXN0IHRydW5jYXRlZCBhdCAiICsgcGFpckxpbWl0ICsgIiB4IDY0ayBwYWlycyIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsb2cubG9nKFRlc3RVdGlsaXR5LmhleChjKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICBmb3IgKGNoYXIgZCA9IDA7IGQgPCAweEZGRkY7ICsrZCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoVGVzdFV0aWxpdHkuaXNVbmFzc2lnbmVkKGQpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAhdGFyZ2V0UmFuZ2UuY29udGFpbnMoZCkpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICB1c2kyLnJlc2V0KHRhcmdldFJhbmdlTWludXNGYWlsdXJlcyk7CisgICAgICAgICAgICAJdXNpMi5zZXRBYmJyZXZpYXRlZChza2lwU29tZSk7CisgICAgICAgICAgICAJCisgICAgICAgICAgICAJd2hpbGUgKHVzaTIubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBkID0gdXNpMi5jb2RlcG9pbnQ7CisgICAgICAgICAgICAgICAgICAgIGlmIChkIDwgMCkgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBTdHJpbmcgY3MgPSBVVEYxNi52YWx1ZU9mKGMpICsgVVRGMTYudmFsdWVPZihkKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRhcmcgPSB0YXJnZXRUb1NvdXJjZS50cmFuc2xpdGVyYXRlKGNzKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHJldmVyc2UgPSBzb3VyY2VUb1RhcmdldC50cmFuc2xpdGVyYXRlKHRhcmcpOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0b1NvdXJjZS5jb250YWluc0FsbCh0YXJnKSAvKiYmICFmYWlsVGFyZ1NvdXJjZS5jb250YWlucyhjKSAmJiAhZmFpbFRhcmdTb3VyY2UuY29udGFpbnMoZCkqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGJhZENoYXJhY3RlcnMuY29udGFpbnNTb21lKHRhcmcpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZ0QgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZSh0YXJnLCBOb3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRvU291cmNlLmNvbnRhaW5zQWxsKHRhcmdEKSAvKiYmICFmYWlsVGFyZ1NvdXJjZS5jb250YWlucyhjKSAmJiAhZmFpbFRhcmdTb3VyY2UuY29udGFpbnMoZCkqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBiYWRDaGFyYWN0ZXJzLmNvbnRhaW5zU29tZSh0YXJnRCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dXcm9uZ1NjcmlwdCgiVGFyZ2V0LVNvdXJjZSIsIGNzLCB0YXJnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoIWlzU2FtZShjcywgcmV2ZXJzZSkgLyomJiAhZmFpbFJvdW5kLmNvbnRhaW5zKGMpICYmICFmYWlsUm91bmQuY29udGFpbnMoZCkqLworICAgICAgICAgICAgICAgICAgICAgICAgICYmICFyb3VuZHRyaXBFeGNsdXNpb25zLmNvbnRhaW5zKGMpIAorICAgICAgICAgICAgICAgICAgICAgICAgICYmICFyb3VuZHRyaXBFeGNsdXNpb25zLmNvbnRhaW5zKGQpIAorICAgICAgICAgICAgICAgICAgICAgICAgICYmICFyb3VuZHRyaXBFeGNsdXNpb25zLmNvbnRhaW5zKGNzKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbG9nUm91bmRUcmlwRmFpbHVyZShjcyx0YXJnZXRUb1NvdXJjZS5nZXRJRCgpLCB0YXJnLHNvdXJjZVRvVGFyZ2V0LmdldElEKCksIHJldmVyc2UpOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRhcmcyID0gTm9ybWFsaXplci5ub3JtYWxpemUodGFyZywgTm9ybWFsaXplci5ORkQpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcmV2ZXJzZTIgPSBzb3VyY2VUb1RhcmdldC50cmFuc2xpdGVyYXRlKHRhcmcyKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXZlcnNlLmVxdWFscyhyZXZlcnNlMikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ05vdENhbm9uaWNhbCgiVGFyZ2V0LVNvdXJjZSIsIHRhcmcsIHJldmVyc2UsIHRhcmcyLCByZXZlcnNlMik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2cubG9nbG4oIiIpOworICAgICAgICB9CisKKyAgICAgICAgZmluYWwgdm9pZCBsb2dXcm9uZ1NjcmlwdChTdHJpbmcgbGFiZWwsIFN0cmluZyBmcm9tLCBTdHJpbmcgdG8pIHsKKyAgICAgICAgICAgIGlmICgrK2Vycm9yQ291bnQgPiBlcnJvckxpbWl0KSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFRlc3RUcnVuY2F0ZWQoIlRlc3QgdHJ1bmNhdGVkOyB0b28gbWFueSBmYWlsdXJlcyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb3V0LnByaW50bG4oIjxicj5GYWlsICIgKyBsYWJlbCArICI6IFx1MjAwRSIgKworICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSArICJcdTIwMEUgKCIgKworICAgICAgICAgICAgICAgICAgICAgICAgVGVzdFV0aWxpdHkuaGV4KGZyb20pICsgIikgPT4gXHUyMDBFIiArCisgICAgICAgICAgICAgICAgICAgICAgICB0byArICJcdTIwMEUgKCIgKworICAgICAgICAgICAgICAgICAgICAgICAgVGVzdFV0aWxpdHkuaGV4KHRvKSArICIpIgorICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIHZvaWQgbG9nTm90Q2Fub25pY2FsKFN0cmluZyBsYWJlbCwgU3RyaW5nIGZyb20sIFN0cmluZyB0bywgU3RyaW5nIGZyb21DYW4sIFN0cmluZyB0b0NhbikgeworICAgICAgICAgICAgaWYgKCsrZXJyb3JDb3VudCA+IGVycm9yTGltaXQpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVGVzdFRydW5jYXRlZCgiVGVzdCB0cnVuY2F0ZWQ7IHRvbyBtYW55IGZhaWx1cmVzIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPGJyPkZhaWwgKGNhbi5lcXVpdikgIiArIGxhYmVsICsgIjogXHUyMDBFIiArCisgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICsgIlx1MjAwRSAoIiArCisgICAgICAgICAgICAgICAgICAgICAgICBUZXN0VXRpbGl0eS5oZXgoZnJvbSkgKyAiKSA9PiBcdTIwMEUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRvICsgIlx1MjAwRSAoIiArCisgICAgICAgICAgICAgICAgICAgICAgICBUZXN0VXRpbGl0eS5oZXgodG8pICsgIikiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICIgLS0gXHUyMDBFIiArCisgICAgICAgICAgICAgICAgICAgICAgICBmcm9tQ2FuICsgIlx1MjAwRSAoIiArCisgICAgICAgICAgICAgICAgICAgICAgICBUZXN0VXRpbGl0eS5oZXgoZnJvbUNhbikgKyAiKSA9PiBcdTIwMEUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRvQ2FuICsgIlx1MjAwRSAoIiArCisgICAgICAgICAgICAgICAgICAgICAgICBUZXN0VXRpbGl0eS5oZXgodG9DYW4pICsgIikiCisgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmaW5hbCB2b2lkIGxvZ0ZhaWxzKFN0cmluZyBsYWJlbCkgeworICAgICAgICAgICAgaWYgKCsrZXJyb3JDb3VudCA+IGVycm9yTGltaXQpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVGVzdFRydW5jYXRlZCgiVGVzdCB0cnVuY2F0ZWQ7IHRvbyBtYW55IGZhaWx1cmVzIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPGJyPkZhaWwgKGNhbi5lcXVpdikiICsgbGFiZWwpOworICAgICAgICB9CisKKyAgICAgICAgZmluYWwgdm9pZCBsb2dUb1J1bGVzRmFpbHMoU3RyaW5nIGxhYmVsLCBTdHJpbmcgZnJvbSwgU3RyaW5nIHRvLCBTdHJpbmcgdG9DYW4pIHsKKyAgICAgICAgICAgIGlmICgrK2Vycm9yQ291bnQgPiBlcnJvckxpbWl0KSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFRlc3RUcnVuY2F0ZWQoIlRlc3QgdHJ1bmNhdGVkOyB0b28gbWFueSBmYWlsdXJlcyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb3V0LnByaW50bG4oIjxicj5GYWlsIChjYW4uZXF1aXYpICIgKyBsYWJlbCArICI6IFx1MjAwRSIgKworICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSArICJcdTIwMEUgKCIgKworICAgICAgICAgICAgICAgICAgICAgICAgVGVzdFV0aWxpdHkuaGV4KGZyb20pICsgIikgPT4gXHUyMDBFIiArCisgICAgICAgICAgICAgICAgICAgICAgICB0byArICJcdTIwMEUgKCIgKworICAgICAgICAgICAgICAgICAgICAgICAgVGVzdFV0aWxpdHkuaGV4KHRvKSArICIpXHUyMDBFIiArCisgICAgICAgICAgICAgICAgICAgICAgICB0b0NhbiArICJcdTIwMEUgKCIgKworICAgICAgICAgICAgICAgICAgICAgICAgVGVzdFV0aWxpdHkuaGV4KHRvQ2FuKSArICIpIgorICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIHZvaWQgbG9nUm91bmRUcmlwRmFpbHVyZShTdHJpbmcgZnJvbSxTdHJpbmcgdG9JRCwgU3RyaW5nIHRvLFN0cmluZyBiYWNrSUQsIFN0cmluZyBiYWNrKSB7CisgICAgICAgICAgICBpZiAoIWxlZ2FsU291cmNlLmlzKGZyb20pKSByZXR1cm47IC8vIHNraXAgaWxsZWdhbHMKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKCsrZXJyb3JDb3VudCA+IGVycm9yTGltaXQpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVGVzdFRydW5jYXRlZCgiVGVzdCB0cnVuY2F0ZWQ7IHRvbyBtYW55IGZhaWx1cmVzIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPGJyPkZhaWwgUm91bmR0cmlwOiBcdTIwMEUiICsgCisgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICsgIlx1MjAwRSAoIiArCisgICAgICAgICAgICAgICAgICAgICAgICBUZXN0VXRpbGl0eS5oZXgoZnJvbSkgKyAiKSAiK3RvSUQrIj0+IFx1MjAwRSIgKworICAgICAgICAgICAgICAgICAgICAgICAgdG8gKyAiXHUyMDBFICgiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIFRlc3RVdGlsaXR5LmhleCh0bykgKyAiKSAiICsgYmFja0lEKyI9PiBcdTIwMEUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJhY2sgKyAiXHUyMDBFICgiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIFRlc3RVdGlsaXR5LmhleChiYWNrKSArICIpIiAKKyAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgIH0KKworICAgICAgICAvKgorICAgICAgICAgKiBDaGFyYWN0ZXJzIHRvIGZpbHRlciBmb3Igc291cmNlLXRhcmdldCBtYXBwaW5nIGNvbXBsZXRlbmVzcworICAgICAgICAgKiBUeXBpY2FsbHkgaXMgYmFzZSBhbHBoYWJldCwgbWludXMgZXh0ZW5kZWQgY2hhcmFjdGVycworICAgICAgICAgKiBEZWZhdWx0IGlzIEFTQ0lJIGxldHRlcnMgZm9yIExhdGluCisgICAgICAgICAqLworICAgICAgICAgLyoKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXNTb3VyY2UoY2hhciBjKSB7CisgICAgICAgICAgICBpZiAoIXNvdXJjZVJhbmdlLmNvbnRhaW5zKGMpKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICAqLworCisgICAgICAgIC8qCisgICAgICAgICAqIENoYXJhY3RlcnMgdG8gY2hlY2sgZm9yIHRhcmdldCBiYWNrIHRvIHNvdXJjZSBtYXBwaW5nLgorICAgICAgICAgKiBUeXBpY2FsbHkgdGhlIHNhbWUgYXMgdGhlIHRhcmdldCBzY3JpcHQsIHBsdXMgcHVuY3R1YXRpb24KKyAgICAgICAgICovCisgICAgICAgICAvKgorICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc1JlY2VpdmluZ1NvdXJjZShjaGFyIGMpIHsKKyAgICAgICAgICAgIGlmICghdGFyZ2V0UmFuZ2UuY29udGFpbnMoYykpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgICovCisgICAgICAgIC8qCisgICAgICAgICAqIENoYXJhY3RlcnMgdG8gZmlsdGVyIGZvciB0YXJnZXQtc291cmNlIG1hcHBpbmcKKyAgICAgICAgICogVHlwaWNhbGx5IGlzIGJhc2UgYWxwaGFiZXQsIG1pbnVzIGV4dGVuZGVkIGNoYXJhY3RlcnMKKyAgICAgICAgICovCisgICAgICAgICAvKgorICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc1RhcmdldChjaGFyIGMpIHsKKyAgICAgICAgICAgIGJ5dGUgc2NyaXB0ID0gVGVzdFV0aWxpdHkuZ2V0U2NyaXB0KGMpOworICAgICAgICAgICAgaWYgKHNjcmlwdCAhPSB0YXJnZXRTY3JpcHQpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmICghVGVzdFV0aWxpdHkuaXNMZXR0ZXIoYykpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmICh0YXJnZXRSYW5nZSAhPSBudWxsICYmICF0YXJnZXRSYW5nZS5jb250YWlucyhjKSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgKi8KKyAgICAgICAgCisgICAgICAgIC8qCisgICAgICAgICAqIENoYXJhY3RlcnMgdG8gY2hlY2sgZm9yIHRhcmdldC1zb3VyY2UgbWFwcGluZworICAgICAgICAgKiBUeXBpY2FsbHkgdGhlIHNhbWUgYXMgdGhlIHNvdXJjZSBzY3JpcHQsIHBsdXMgcHVuY3R1YXRpb24KKyAgICAgICAgICovCisgICAgICAgIC8qCisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzUmVjZWl2aW5nVGFyZ2V0KGNoYXIgYykgeworICAgICAgICAgICAgYnl0ZSBzY3JpcHQgPSBUZXN0VXRpbGl0eS5nZXRTY3JpcHQoYyk7CisgICAgICAgICAgICByZXR1cm4gKHNjcmlwdCA9PSB0YXJnZXRTY3JpcHQgfHwgc2NyaXB0ID09IFRlc3RVdGlsaXR5LkNPTU1PTl9TQ1JJUFQpOworICAgICAgICB9CisKKyAgICAgICAgZmluYWwgYm9vbGVhbiBpc1NvdXJjZShTdHJpbmcgcykgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWlzU291cmNlKHMuY2hhckF0KGkpKSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBib29sZWFuIGlzVGFyZ2V0KFN0cmluZyBzKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgICAgIGlmICghaXNUYXJnZXQocy5jaGFyQXQoaSkpKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIGJvb2xlYW4gaXNSZWNlaXZpbmdTb3VyY2UoU3RyaW5nIHMpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFpc1JlY2VpdmluZ1NvdXJjZShzLmNoYXJBdChpKSkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgZmluYWwgYm9vbGVhbiBpc1JlY2VpdmluZ1RhcmdldChTdHJpbmcgcykgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWlzUmVjZWl2aW5nVGFyZ2V0KHMuY2hhckF0KGkpKSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgKi8KKworICAgICAgICBzdGF0aWMgY2xhc3MgVGVzdFRydW5jYXRlZCBleHRlbmRzIFJ1bnRpbWVFeGNlcHRpb24geworICAgICAgICAgICAgVGVzdFRydW5jYXRlZChTdHJpbmcgbXNnKSB7CisgICAgICAgICAgICAgICAgc3VwZXIobXNnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworLy8gIHN0YXRpYyBjbGFzcyBUZXN0SGFuZ3VsIGV4dGVuZHMgVGVzdCB7CisvLyAgICAgIFRlc3RIYW5ndWwgKCkgeworLy8gICAgICAgICAgc3VwZXIoIkphbW8tSGFuZ3VsIiwgVGVzdFV0aWxpdHkuSkFNT19TQ1JJUFQsIFRlc3RVdGlsaXR5LkhBTkdVTF9TQ1JJUFQpOworLy8gICAgICB9CisvLworLy8gICAgICBwdWJsaWMgYm9vbGVhbiBpc1NvdXJjZShjaGFyIGMpIHsKKy8vICAgICAgICAgIGlmICgweDExMTMgPD0gYyAmJiBjIDw9IDB4MTE2MCkgcmV0dXJuIGZhbHNlOworLy8gICAgICAgICAgaWYgKDB4MTE3NiA8PSBjICYmIGMgPD0gMHgxMUY5KSByZXR1cm4gZmFsc2U7CisvLyAgICAgICAgICBpZiAoMHgzMTMxIDw9IGMgJiYgYyA8PSAweDMxOEUpIHJldHVybiBmYWxzZTsKKy8vICAgICAgICAgIHJldHVybiBzdXBlci5pc1NvdXJjZShjKTsKKy8vICAgICAgfQorLy8gIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9UZXN0VXRpbGl0eS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L1Rlc3RVdGlsaXR5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODFkNmYyMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9UZXN0VXRpbGl0eS5qYXZhCkBAIC0wLDAgKzEsNDUzIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L1Rlc3RVdGlsaXR5LmphdmEsdiAkCisgKiAkRGF0ZTogMjAwMi8wOC8xMyAyMjowNzo1NyAkCisgKiAkUmV2aXNpb246IDEuMTAgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudHJhbnNsaXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyQ2F0ZWdvcnk7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKKworcHVibGljIGZpbmFsIGNsYXNzIFRlc3RVdGlsaXR5IHsKKworCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGhleChjaGFyIGNoKSB7CisJCVN0cmluZyBmb28gPSBJbnRlZ2VyLnRvU3RyaW5nKGNoLDE2KS50b1VwcGVyQ2FzZSgpOworCQlyZXR1cm4gIjAwMDAiLnN1YnN0cmluZygwLDQtZm9vLmxlbmd0aCgpKSArIGZvbzsKKwl9CisgICAgCisJcHVibGljIHN0YXRpYyBTdHJpbmcgaGV4KGludCBjaCkgeworCQlTdHJpbmcgZm9vID0gSW50ZWdlci50b1N0cmluZyhjaCwxNikudG9VcHBlckNhc2UoKTsKKwkJcmV0dXJuICIwMDAwMDAwMCIuc3Vic3RyaW5nKDAsNC1mb28ubGVuZ3RoKCkpICsgZm9vOworCX0KKyAgICAKKwlwdWJsaWMgc3RhdGljIFN0cmluZyBoZXgoU3RyaW5nIHMpIHsKKwkgIHJldHVybiBoZXgocywiLCIpOworCX0KKwkKKwlwdWJsaWMgc3RhdGljIFN0cmluZyBoZXgoU3RyaW5nIHMsIFN0cmluZyBzZXApIHsKKwkgIGlmIChzLmxlbmd0aCgpID09IDApIHJldHVybiAiIjsKKwkgIFN0cmluZyByZXN1bHQgPSBoZXgocy5jaGFyQXQoMCkpOworCSAgZm9yIChpbnQgaSA9IDE7IGkgPCBzLmxlbmd0aCgpOyArK2kpIHsKKwkgICAgcmVzdWx0ICs9IHNlcDsKKwkgICAgcmVzdWx0ICs9IGhleChzLmNoYXJBdChpKSk7CisJICB9CisJICByZXR1cm4gcmVzdWx0OworCX0KKwkKKwlwdWJsaWMgc3RhdGljIFN0cmluZyByZXBsYWNlKFN0cmluZyBzb3VyY2UsIFN0cmluZyB0b0JlUmVwbGFjZWQsIFN0cmluZyByZXBsYWNlbWVudCkgeworCSAgICBTdHJpbmdCdWZmZXIgcmVzdWx0cyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKwkgICAgaW50IGxlbiA9IHRvQmVSZXBsYWNlZC5sZW5ndGgoKTsKKwkgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzb3VyY2UubGVuZ3RoKCk7ICsraSkgeworCSAgICAgICAgaWYgKHNvdXJjZS5yZWdpb25NYXRjaGVzKGZhbHNlLCBpLCB0b0JlUmVwbGFjZWQsIDAsIGxlbikpIHsKKwkgICAgICAgICAgICByZXN1bHRzLmFwcGVuZChyZXBsYWNlbWVudCk7CisJICAgICAgICAgICAgaSArPSBsZW4gLSAxOyAvLyBtaW51cyBvbmUsIHNpbmNlIHdlIHdpbGwgaW5jcmVtZW50CisJICAgICAgICB9IGVsc2UgeworCSAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKHNvdXJjZS5jaGFyQXQoaSkpOworCSAgICAgICAgfQorCSAgICB9CisJICAgIHJldHVybiByZXN1bHRzLnRvU3RyaW5nKCk7CisJfQorCQorCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHJlcGxhY2VBbGwoU3RyaW5nIHNvdXJjZSwgVW5pY29kZVNldCBzZXQsIFN0cmluZyByZXBsYWNlbWVudCkgeworCSAgICBTdHJpbmdCdWZmZXIgcmVzdWx0cyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKwkgICAgaW50IGNwOworCSAgICBmb3IgKGludCBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisJICAgICAgICBjcCA9IFVURjE2LmNoYXJBdChzb3VyY2UsaSk7CisJICAgICAgICBpZiAoc2V0LmNvbnRhaW5zKGNwKSkgeworCSAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKHJlcGxhY2VtZW50KTsKKwkgICAgICAgIH0gZWxzZSB7CisJICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHJlc3VsdHMsIGNwKTsKKwkgICAgICAgIH0KKwkgICAgfQorCSAgICByZXR1cm4gcmVzdWx0cy50b1N0cmluZygpOworCX0KKwkKKyAgICAvLyBDT01NRU5URUQgT1VUIEFMTCBUSEUgT0xEIFNDUklQVCBTVFVGRgorICAgIC8qCisgICAgcHVibGljIHN0YXRpYyBieXRlIGdldFNjcmlwdChjaGFyIGMpIHsKKyAgICAgIHJldHVybiBnZXRTY3JpcHQoZ2V0QmxvY2soYykpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGJ5dGUgZ2V0U2NyaXB0KGJ5dGUgYmxvY2spIHsKKyAgICAgIHJldHVybiBibG9ja1RvU2NyaXB0W2Jsb2NrXTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBieXRlIGdldEJsb2NrKGNoYXIgYykgeworICAgICAgaW50IGluZGV4ID0gYyA+PiA3OworICAgICAgYnl0ZSBibG9jayA9IGNoYXJUb0Jsb2NrW2luZGV4XTsKKyAgICAgIHdoaWxlIChibG9jayA8IDApIHsgLy8gdGFrZSBjYXJlIG9mIGV4Y2VwdGlvbnMsIGJsb2NrcyBzcGxpdCBhY3Jvc3MgMTI4IGJvdW5kYXJpZXMKKyAgICAgICAgICBpbnRbXSB0dXBsZSA9IHNwbGl0Wy1ibG9jay0xXTsKKyAgICAgICAgICBpZiAoYyA8IHR1cGxlWzBdKSBibG9jayA9IChieXRlKXR1cGxlWzFdOworICAgICAgICAgIGVsc2UgYmxvY2sgPSAoYnl0ZSl0dXBsZVsyXTsKKyAgICAgIH0KKyAgICAgIHJldHVybiBibG9jazsKKyAgICB9CisgICAgICAgICAgICAgICAKKyAgICAvLyByZXR1cm5zIG5leHQgbGV0dGVyIG9mIHNjcmlwdCwgb3IgMHhGRkZGIGlmIGRvbmUKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGNoYXIgZ2V0TmV4dExldHRlcihjaGFyIGMsIGJ5dGUgc2NyaXB0KSB7CisgICAgICAgIHdoaWxlIChjIDwgMHhGRkZGKSB7CisgICAgICAgICAgICArK2M7CisgICAgICAgICAgICBpZiAoZ2V0U2NyaXB0KGMpID09IHNjcmlwdCAmJiBDaGFyYWN0ZXIuaXNMZXR0ZXIoYykpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gYzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYzsKKyAgICB9CisgICAgCisgICAgLy8gU3VwcGxlbWVudHMgdG8gQ2hhcmFjdGVyIG1ldGhvZHM7IHRoZXNlIG1ldGhvZHMgZ28gdGhyb3VnaAorICAgIC8vIFVDaGFyYWN0ZXIgaWYgcG9zc2libGUuICBJZiBub3QsIHRoZXkgZmFsbCBiYWNrIHRvIENoYXJhY3Rlci4KKworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1VuYXNzaWduZWQoY2hhciBjKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3Rlci5nZXRUeXBlKGMpID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5VTkFTU0lHTkVEOworICAgICAgICB9IGNhdGNoIChOdWxsUG9pbnRlckV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gQ2hhcmFjdGVyLmdldFR5cGUoYykgPT0gQ2hhcmFjdGVyLlVOQVNTSUdORUQ7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzTGV0dGVyKGNoYXIgYykgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXIuaXNMZXR0ZXIoYyk7CisgICAgICAgIH0gY2F0Y2ggKE51bGxQb2ludGVyRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBDaGFyYWN0ZXIuaXNMZXR0ZXIoYyk7CisgICAgfQorCisgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkJsb2NrczogIik7CisgICAgYnl0ZSBsYXN0YmxvY2sgPSAtMTI4OworICAgIGZvciAoY2hhciBjYyA9IDA7IGNjIDwgMHhGRkZGOyArK2NjKSB7CisgICAgICBieXRlIGJsb2NrID0gVGVzdFV0aWxpdHkuZ2V0QmxvY2soY2MpOworICAgICAgaWYgKGJsb2NrICE9IGxhc3RibG9jaykgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oVGVzdFV0aWxpdHkuaGV4KGNjKSArICJcdCIgKyBibG9jayk7CisgICAgICAgIGxhc3RibG9jayA9IGJsb2NrOworICAgICAgfQorICAgIH0KKyAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlNjcmlwdHM6ICIpOworICAgIGJ5dGUgbGFzdFNjcmlwdCA9IC0xMjg7CisgICAgZm9yIChjaGFyIGNjID0gMDsgY2MgPCAweEZGRkY7ICsrY2MpIHsKKyAgICAgIGJ5dGUgc2NyaXB0ID0gVGVzdFV0aWxpdHkuZ2V0U2NyaXB0KGNjKTsKKyAgICAgIGlmIChzY3JpcHQgIT0gbGFzdFNjcmlwdCkgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oVGVzdFV0aWxpdHkuaGV4KGNjKSArICJcdCIgKyBzY3JpcHQpOworICAgICAgICBsYXN0U2NyaXB0ID0gc2NyaXB0OworICAgICAgfQorICAgIH0KKyAgfQorICAgICAgCisJCisgICAgCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIC8vIFNDUklQVCBDT0RFCisgICAgICAgIENPTU1PTl9TQ1JJUFQgPSAwLAorICAgICAgICBMQVRJTl9TQ1JJUFQgPSAxLAorICAgICAgICBHUkVFS19TQ1JJUFQgPSAyLAorICAgICAgICBDWVJJTExJQ19TQ1JJUFQgPSAzLAorICAgICAgICBBUk1FTklBTl9TQ1JJUFQgPSA0LAorICAgICAgICBIRUJSRVdfU0NSSVBUID0gNSwKKyAgICAgICAgQVJBQklDX1NDUklQVCA9IDYsCisgICAgICAgIFNZUklBQ19TQ1JJUFQgPSA3LAorICAgICAgICBUSEFBTkFfU0NSSVBUID0gOCwgCisgICAgICAgIERFVkFOQUdBUklfU0NSSVBUID0gOSwKKyAgICAgICAgQkVOR0FMSV9TQ1JJUFQgPSAxMCwKKyAgICAgICAgR1VSTVVLSElfU0NSSVBUID0gMTEsCisgICAgICAgIEdVSkFSQVRJX1NDUklQVCA9IDEyLAorICAgICAgICBPUklZQV9TQ1JJUFQgPSAxMywKKyAgICAgICAgVEFNSUxfU0NSSVBUID0gMTQsCisgICAgICAgIFRFTFVHVV9TQ1JJUFQgPSAxNSwKKyAgICAgICAgS0FOTkFEQV9TQ1JJUFQgPSAxNiwKKyAgICAgICAgTUFMQVlBTEFNX1NDUklQVCA9IDE3LAorICAgICAgICBTSU5IQUxBX1NDUklQVCA9IDE4LAorICAgICAgICBUSEFJX1NDUklQVCA9IDE5LAorICAgICAgICBMQU9fU0NSSVBUID0gMjAsCisgICAgICAgIFRJQkVUQU5fU0NSSVBUID0gMjEsCisgICAgICAgIE1ZQU5NQVJfU0NSSVBUID0gMjIsCisgICAgICAgIEdFT1JHSUFOX1NDUklQVCA9IDIzLAorICAgICAgICBKQU1PX1NDUklQVCA9IDI0LAorICAgICAgICBIQU5HVUxfU0NSSVBUID0gMjUsCisgICAgICAgIEVUSElPUElDX1NDUklQVCA9IDI2LAorICAgICAgICBDSEVST0tFRV9TQ1JJUFQgPSAyNywKKyAgICAgICAgQUJPUklHSU5BTF9TQ1JJUFQgPSAyOCwKKyAgICAgICAgT0dIQU1fU0NSSVBUID0gMjksCisgICAgICAgIFJVTklDX1NDUklQVCA9IDMwLAorICAgICAgICBLSE1FUl9TQ1JJUFQgPSAzMSwKKyAgICAgICAgTU9OR09MSUFOX1NDUklQVCA9IDMyLAorICAgICAgICBISVJBR0FOQV9TQ1JJUFQgPSAzMywKKyAgICAgICAgS0FUQUtBTkFfU0NSSVBUID0gMzQsCisgICAgICAgIEJPUE9NT0ZPX1NDUklQVCA9IDM1LAorICAgICAgICBIQU5fU0NSSVBUID0gMzYsCisgICAgICAgIFlJX1NDUklQVCA9IDM3OworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSAvLyBibG9jayBjb2RlCisgICAgICAgIFJFU0VSVkVEX0JMT0NLID0gMCwKKyAgICAgICAgQkFTSUNfTEFUSU4gPSAxLAorICAgICAgICBMQVRJTl8xX1NVUFBMRU1FTlQgPSAyLAorICAgICAgICBMQVRJTl9FWFRFTkRFRF9BID0gMywKKyAgICAgICAgTEFUSU5fRVhURU5ERURfQiA9IDQsCisgICAgICAgIElQQV9FWFRFTlNJT05TID0gNSwKKyAgICAgICAgU1BBQ0lOR19NT0RJRklFUl9MRVRURVJTID0gNiwKKyAgICAgICAgQ09NQklOSU5HX0RJQUNSSVRJQ0FMX01BUktTID0gNywKKyAgICAgICAgR1JFRUsgPSA4LAorICAgICAgICBDWVJJTExJQyA9IDksCisgICAgICAgIEFSTUVOSUFOID0gMTAsCisgICAgICAgIEhFQlJFVyA9IDExLAorICAgICAgICBBUkFCSUMgPSAxMiwKKyAgICAgICAgU1lSSUFDID0gMTMsCisgICAgICAgIFRIQUFOQSA9IDE0LAorICAgICAgICBERVZBTkFHQVJJID0gMTUsCisgICAgICAgIEJFTkdBTEkgPSAxNiwKKyAgICAgICAgR1VSTVVLSEkgPSAxNywKKyAgICAgICAgR1VKQVJBVEkgPSAxOCwKKyAgICAgICAgT1JJWUEgPSAxOSwKKyAgICAgICAgVEFNSUwgPSAyMCwKKyAgICAgICAgVEVMVUdVID0gMjEsCisgICAgICAgIEtBTk5BREEgPSAyMiwKKyAgICAgICAgTUFMQVlBTEFNID0gMjMsCisgICAgICAgIFNJTkhBTEEgPSAyNCwKKyAgICAgICAgVEhBSSA9IDI1LAorICAgICAgICBMQU8gPSAyNiwKKyAgICAgICAgVElCRVRBTiA9IDI3LAorICAgICAgICBNWUFOTUFSID0gMjgsCisgICAgICAgIEdFT1JHSUFOID0gMjksCisgICAgICAgIEhBTkdVTF9KQU1PID0gMzAsCisgICAgICAgIEVUSElPUElDID0gMzEsCisgICAgICAgIENIRVJPS0VFID0gMzIsCisgICAgICAgIFVOSUZJRURfQ0FOQURJQU5fQUJPUklHSU5BTF9TWUxMQUJJQ1MgPSAzMywKKyAgICAgICAgT0dIQU0gPSAzNCwKKyAgICAgICAgUlVOSUMgPSAzNSwKKyAgICAgICAgS0hNRVIgPSAzNiwKKyAgICAgICAgTU9OR09MSUFOID0gMzcsCisgICAgICAgIExBVElOX0VYVEVOREVEX0FERElUSU9OQUwgPSAzOCwKKyAgICAgICAgR1JFRUtfRVhURU5ERUQgPSAzOSwKKyAgICAgICAgR0VORVJBTF9QVU5DVFVBVElPTiA9IDQwLAorICAgICAgICBTVVBFUlNDUklQVFNfQU5EX1NVQlNDUklQVFMgPSA0MSwKKyAgICAgICAgQ1VSUkVOQ1lfU1lNQk9MUyA9IDQyLAorICAgICAgICBDT01CSU5JTkdfTUFSS1NfRk9SX1NZTUJPTFMgPSA0MywKKyAgICAgICAgTEVUVEVSTElLRV9TWU1CT0xTID0gNDQsCisgICAgICAgIE5VTUJFUl9GT1JNUyA9IDQ1LAorICAgICAgICBBUlJPV1MgPSA0NiwKKyAgICAgICAgTUFUSEVNQVRJQ0FMX09QRVJBVE9SUyA9IDQ3LAorICAgICAgICBNSVNDRUxMQU5FT1VTX1RFQ0hOSUNBTCA9IDQ4LAorICAgICAgICBDT05UUk9MX1BJQ1RVUkVTID0gNDksCisgICAgICAgIE9QVElDQUxfQ0hBUkFDVEVSX1JFQ09HTklUSU9OID0gNTAsCisgICAgICAgIEVOQ0xPU0VEX0FMUEhBTlVNRVJJQ1MgPSA1MSwKKyAgICAgICAgQk9YX0RSQVdJTkcgPSA1MiwKKyAgICAgICAgQkxPQ0tfRUxFTUVOVFMgPSA1MywKKyAgICAgICAgR0VPTUVUUklDX1NIQVBFUyA9IDU0LAorICAgICAgICBNSVNDRUxMQU5FT1VTX1NZTUJPTFMgPSA1NSwKKyAgICAgICAgRElOR0JBVFMgPSA1NiwKKyAgICAgICAgQlJBSUxMRV9QQVRURVJOUyA9IDU3LAorICAgICAgICBDSktfUkFESUNBTFNfU1VQUExFTUVOVCA9IDU4LAorICAgICAgICBLQU5HWElfUkFESUNBTFMgPSA1OSwKKyAgICAgICAgSURFT0dSQVBISUNfREVTQ1JJUFRJT05fQ0hBUkFDVEVSUyA9IDYwLAorICAgICAgICBDSktfU1lNQk9MU19BTkRfUFVOQ1RVQVRJT04gPSA2MSwKKyAgICAgICAgSElSQUdBTkEgPSA2MiwKKyAgICAgICAgS0FUQUtBTkEgPSA2MywKKyAgICAgICAgQk9QT01PRk8gPSA2NCwKKyAgICAgICAgSEFOR1VMX0NPTVBBVElCSUxJVFlfSkFNTyA9IDY1LAorICAgICAgICBLQU5CVU4gPSA2NiwKKyAgICAgICAgQk9QT01PRk9fRVhURU5ERUQgPSA2NywKKyAgICAgICAgRU5DTE9TRURfQ0pLX0xFVFRFUlNfQU5EX01PTlRIUyA9IDY4LAorICAgICAgICBDSktfQ09NUEFUSUJJTElUWSA9IDY5LAorICAgICAgICBDSktfVU5JRklFRF9JREVPR1JBUEhTX0VYVEVOU0lPTl9BID0gNzAsCisgICAgICAgIENKS19VTklGSUVEX0lERU9HUkFQSFMgPSA3MSwKKyAgICAgICAgWUlfU1lMTEFCTEVTID0gNzIsCisgICAgICAgIFlJX1JBRElDQUxTID0gNzMsCisgICAgICAgIEhBTkdVTF9TWUxMQUJMRVMgPSA3NCwKKyAgICAgICAgSElHSF9TVVJST0dBVEVTID0gNzUsCisgICAgICAgIEhJR0hfUFJJVkFURV9VU0VfU1VSUk9HQVRFUyA9IDc2LAorICAgICAgICBMT1dfU1VSUk9HQVRFUyA9IDc3LAorICAgICAgICBQUklWQVRFX1VTRSA9IDc4LAorICAgICAgICBDSktfQ09NUEFUSUJJTElUWV9JREVPR1JBUEhTID0gNzksCisgICAgICAgIEFMUEhBQkVUSUNfUFJFU0VOVEFUSU9OX0ZPUk1TID0gODAsCisgICAgICAgIEFSQUJJQ19QUkVTRU5UQVRJT05fRk9STVNfQSA9IDgxLAorICAgICAgICBDT01CSU5JTkdfSEFMRl9NQVJLUyA9IDgyLAorICAgICAgICBDSktfQ09NUEFUSUJJTElUWV9GT1JNUyA9IDgzLAorICAgICAgICBTTUFMTF9GT1JNX1ZBUklBTlRTID0gODQsCisgICAgICAgIEFSQUJJQ19QUkVTRU5UQVRJT05fRk9STVNfQiA9IDg1LAorICAgICAgICBTUEVDSUFMUyA9IDg2LAorICAgICAgICBIQUxGV0lEVEhfQU5EX0ZVTExXSURUSF9GT1JNUyA9IDg3OworICAgICAgICAKKyAgICBzdGF0aWMgZmluYWwgYnl0ZVtdIGJsb2NrVG9TY3JpcHQgPSB7CisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDAsIDxSRVNFUlZFRF9CTE9DSz4KKyAgICAgICAgTEFUSU5fU0NSSVBULCAvLyAxLCBCQVNJQ19MQVRJTgorICAgICAgICBMQVRJTl9TQ1JJUFQsIC8vIDIsIExBVElOXzFfU1VQUExFTUVOVAorICAgICAgICBMQVRJTl9TQ1JJUFQsIC8vIDMsIExBVElOX0VYVEVOREVEX0EKKyAgICAgICAgTEFUSU5fU0NSSVBULCAvLyA0LCBMQVRJTl9FWFRFTkRFRF9CCisgICAgICAgIExBVElOX1NDUklQVCwgLy8gNSwgSVBBX0VYVEVOU0lPTlMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNiwgU1BBQ0lOR19NT0RJRklFUl9MRVRURVJTCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDcsIENPTUJJTklOR19ESUFDUklUSUNBTF9NQVJLUworICAgICAgICBHUkVFS19TQ1JJUFQsIC8vIDgsIEdSRUVLCisgICAgICAgIENZUklMTElDX1NDUklQVCwgLy8gOSwgQ1lSSUxMSUMKKyAgICAgICAgQVJNRU5JQU5fU0NSSVBULCAvLyAxMCwgQVJNRU5JQU4KKyAgICAgICAgSEVCUkVXX1NDUklQVCwgLy8gMTEsIEhFQlJFVworICAgICAgICBBUkFCSUNfU0NSSVBULCAvLyAxMiwgQVJBQklDCisgICAgICAgIFNZUklBQ19TQ1JJUFQsIC8vIDEzLCBTWVJJQUMKKyAgICAgICAgVEhBQU5BX1NDUklQVCwgLy8gMTQsIFRIQUFOQQorICAgICAgICBERVZBTkFHQVJJX1NDUklQVCwgLy8gMTUsIERFVkFOQUdBUkkKKyAgICAgICAgQkVOR0FMSV9TQ1JJUFQsIC8vIDE2LCBCRU5HQUxJCisgICAgICAgIEdVUk1VS0hJX1NDUklQVCwgLy8gMTcsIEdVUk1VS0hJCisgICAgICAgIEdVSkFSQVRJX1NDUklQVCwgLy8gMTgsIEdVSkFSQVRJCisgICAgICAgIE9SSVlBX1NDUklQVCwgLy8gMTksIE9SSVlBCisgICAgICAgIFRBTUlMX1NDUklQVCwgLy8gMjAsIFRBTUlMCisgICAgICAgIFRFTFVHVV9TQ1JJUFQsIC8vIDIxLCBURUxVR1UKKyAgICAgICAgS0FOTkFEQV9TQ1JJUFQsIC8vIDIyLCBLQU5OQURBCisgICAgICAgIE1BTEFZQUxBTV9TQ1JJUFQsIC8vIDIzLCBNQUxBWUFMQU0KKyAgICAgICAgU0lOSEFMQV9TQ1JJUFQsIC8vIDI0LCBTSU5IQUxBCisgICAgICAgIFRIQUlfU0NSSVBULCAvLyAyNSwgVEhBSQorICAgICAgICBMQU9fU0NSSVBULCAvLyAyNiwgTEFPCisgICAgICAgIFRJQkVUQU5fU0NSSVBULCAvLyAyNywgVElCRVRBTgorICAgICAgICBNWUFOTUFSX1NDUklQVCwgLy8gMjgsIE1ZQU5NQVIKKyAgICAgICAgR0VPUkdJQU5fU0NSSVBULCAvLyAyOSwgR0VPUkdJQU4KKyAgICAgICAgSkFNT19TQ1JJUFQsIC8vIDMwLCBIQU5HVUxfSkFNTworICAgICAgICBFVEhJT1BJQ19TQ1JJUFQsIC8vIDMxLCBFVEhJT1BJQworICAgICAgICBDSEVST0tFRV9TQ1JJUFQsIC8vIDMyLCBDSEVST0tFRQorICAgICAgICBBQk9SSUdJTkFMX1NDUklQVCwgLy8gMzMsIFVOSUZJRURfQ0FOQURJQU5fQUJPUklHSU5BTF9TWUxMQUJJQ1MKKyAgICAgICAgT0dIQU1fU0NSSVBULCAvLyAzNCwgT0dIQU0KKyAgICAgICAgUlVOSUNfU0NSSVBULCAvLyAzNSwgUlVOSUMKKyAgICAgICAgS0hNRVJfU0NSSVBULCAvLyAzNiwgS0hNRVIKKyAgICAgICAgTU9OR09MSUFOX1NDUklQVCwgLy8gMzcsIE1PTkdPTElBTgorICAgICAgICBMQVRJTl9TQ1JJUFQsIC8vIDM4LCBMQVRJTl9FWFRFTkRFRF9BRERJVElPTkFMCisgICAgICAgIEdSRUVLX1NDUklQVCwgLy8gMzksIEdSRUVLX0VYVEVOREVECisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDQwLCBHRU5FUkFMX1BVTkNUVUFUSU9OCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDQxLCBTVVBFUlNDUklQVFNfQU5EX1NVQlNDUklQVFMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNDIsIENVUlJFTkNZX1NZTUJPTFMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNDMsIENPTUJJTklOR19NQVJLU19GT1JfU1lNQk9MUworICAgICAgICBDT01NT05fU0NSSVBULCAvLyA0NCwgTEVUVEVSTElLRV9TWU1CT0xTCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDQ1LCBOVU1CRVJfRk9STVMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNDYsIEFSUk9XUworICAgICAgICBDT01NT05fU0NSSVBULCAvLyA0NywgTUFUSEVNQVRJQ0FMX09QRVJBVE9SUworICAgICAgICBDT01NT05fU0NSSVBULCAvLyA0OCwgTUlTQ0VMTEFORU9VU19URUNITklDQUwKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNDksIENPTlRST0xfUElDVFVSRVMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNTAsIE9QVElDQUxfQ0hBUkFDVEVSX1JFQ09HTklUSU9OCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDUxLCBFTkNMT1NFRF9BTFBIQU5VTUVSSUNTCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDUyLCBCT1hfRFJBV0lORworICAgICAgICBDT01NT05fU0NSSVBULCAvLyA1MywgQkxPQ0tfRUxFTUVOVFMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNTQsIEdFT01FVFJJQ19TSEFQRVMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNTUsIE1JU0NFTExBTkVPVVNfU1lNQk9MUworICAgICAgICBDT01NT05fU0NSSVBULCAvLyA1NiwgRElOR0JBVFMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNTcsIEJSQUlMTEVfUEFUVEVSTlMKKyAgICAgICAgSEFOX1NDUklQVCwgLy8gNTgsIENKS19SQURJQ0FMU19TVVBQTEVNRU5UCisgICAgICAgIEhBTl9TQ1JJUFQsIC8vIDU5LCBLQU5HWElfUkFESUNBTFMKKyAgICAgICAgSEFOX1NDUklQVCwgLy8gNjAsIElERU9HUkFQSElDX0RFU0NSSVBUSU9OX0NIQVJBQ1RFUlMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNjEsIENKS19TWU1CT0xTX0FORF9QVU5DVFVBVElPTgorICAgICAgICBISVJBR0FOQV9TQ1JJUFQsIC8vIDYyLCBISVJBR0FOQQorICAgICAgICBLQVRBS0FOQV9TQ1JJUFQsIC8vIDYzLCBLQVRBS0FOQQorICAgICAgICBCT1BPTU9GT19TQ1JJUFQsIC8vIDY0LCBCT1BPTU9GTworICAgICAgICBKQU1PX1NDUklQVCwgLy8gNjUsIEhBTkdVTF9DT01QQVRJQklMSVRZX0pBTU8KKyAgICAgICAgSEFOX1NDUklQVCwgLy8gNjYsIEtBTkJVTgorICAgICAgICBCT1BPTU9GT19TQ1JJUFQsIC8vIDY3LCBCT1BPTU9GT19FWFRFTkRFRAorICAgICAgICBDT01NT05fU0NSSVBULCAvLyA2OCwgRU5DTE9TRURfQ0pLX0xFVFRFUlNfQU5EX01PTlRIUworICAgICAgICBDT01NT05fU0NSSVBULCAvLyA2OSwgQ0pLX0NPTVBBVElCSUxJVFkKKyAgICAgICAgSEFOX1NDUklQVCwgLy8gNzAsIENKS19VTklGSUVEX0lERU9HUkFQSFNfRVhURU5TSU9OX0EKKyAgICAgICAgSEFOX1NDUklQVCwgLy8gNzEsIENKS19VTklGSUVEX0lERU9HUkFQSFMKKyAgICAgICAgWUlfU0NSSVBULCAvLyA3MiwgWUlfU1lMTEFCTEVTCisgICAgICAgIFlJX1NDUklQVCwgLy8gNzMsIFlJX1JBRElDQUxTCisgICAgICAgIEhBTkdVTF9TQ1JJUFQsIC8vIDc0LCBIQU5HVUxfU1lMTEFCTEVTCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDc1LCBISUdIX1NVUlJPR0FURVMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNzYsIEhJR0hfUFJJVkFURV9VU0VfU1VSUk9HQVRFUworICAgICAgICBDT01NT05fU0NSSVBULCAvLyA3NywgTE9XX1NVUlJPR0FURVMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNzgsIFBSSVZBVEVfVVNFCisgICAgICAgIEhBTl9TQ1JJUFQsIC8vIDc5LCBDSktfQ09NUEFUSUJJTElUWV9JREVPR1JBUEhTCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDgwLCBBTFBIQUJFVElDX1BSRVNFTlRBVElPTl9GT1JNUworICAgICAgICBBUkFCSUNfU0NSSVBULCAvLyA4MSwgQVJBQklDX1BSRVNFTlRBVElPTl9GT1JNU19BCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDgyLCBDT01CSU5JTkdfSEFMRl9NQVJLUworICAgICAgICBDT01NT05fU0NSSVBULCAvLyA4MywgQ0pLX0NPTVBBVElCSUxJVFlfRk9STVMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gODQsIFNNQUxMX0ZPUk1fVkFSSUFOVFMKKyAgICAgICAgQVJBQklDX1NDUklQVCwgLy8gODUsIEFSQUJJQ19QUkVTRU5UQVRJT05fRk9STVNfQgorICAgICAgICBDT01NT05fU0NSSVBULCAvLyA4NiwgU1BFQ0lBTFMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gODcsIEhBTEZXSURUSF9BTkRfRlVMTFdJRFRIX0ZPUk1TCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDg4LCBTUEVDSUFMUworICAgIH07CisgICAgICAgIAorICAgIC8vIGNvdWxkIGJlIGZ1cnRoZXIgcmVkdWNlZCB0byBhIGJ5dGUgYXJyYXksIGJ1dCBJIGRpZG4ndCBib3RoZXIuCisgICAgc3RhdGljIGZpbmFsIGludFtdW10gc3BsaXQgPSB7CisgICAgICAgIHsweDAyNTAsIDQsIDV9LCAvLyAtMQorICAgICAgICB7MHgwMkIwLCA1LCA2fSwgLy8gLTIKKyAgICAgICAgezB4MDM3MCwgNywgOH0sIC8vIC0zCisgICAgICAgIHsweDA1MzAsIDAsIDEwfSwgLy8gLTQKKyAgICAgICAgezB4MDU5MCwgMTAsIDExfSwgLy8gLTUKKyAgICAgICAgezB4MDc1MCwgMTMsIDB9LCAvLyAtNgorICAgICAgICB7MHgwN0MwLCAxNCwgMH0sIC8vIC03CisgICAgICAgIHsweDEwQTAsIDI4LCAyOX0sIC8vIC04CisgICAgICAgIHsweDEzQTAsIDAsIDMyfSwgLy8gLTkKKyAgICAgICAgezB4MTZBMCwgMzQsIDM1fSwgLy8gLTEwCisgICAgICAgIHsweDE4QjAsIDM3LCAwfSwgLy8gLTExCisgICAgICAgIHsweDIwNzAsIDQwLCA0MX0sIC8vIC0xMgorICAgICAgICB7MHgyMEEwLCA0MSwgLTMxfSwgLy8gLTEzCisgICAgICAgIHsweDIxNTAsIDQ0LCA0NX0sIC8vIC0xNAorICAgICAgICB7MHgyMTkwLCA0NSwgNDZ9LCAvLyAtMTUKKyAgICAgICAgezB4MjQ0MCwgNDksIC0zMn0sIC8vIC0xNgorICAgICAgICB7MHgyNUEwLCA1MywgNTR9LCAvLyAtMTcKKyAgICAgICAgezB4MjdDMCwgNTYsIDB9LCAvLyAtMTgKKyAgICAgICAgezB4MkZFMCwgNTksIC0zM30sIC8vIC0xOQorICAgICAgICB7MHgzMDQwLCA2MSwgNjJ9LCAvLyAtMjAKKyAgICAgICAgezB4MzBBMCwgNjIsIDYzfSwgLy8gLTIxCisgICAgICAgIHsweDMxMzAsIDY0LCA2NX0sIC8vIC0yMgorICAgICAgICB7MHgzMTkwLCA2NSwgLTM0fSwgLy8gLTIzCisgICAgICAgIHsweDREQjYsIDcwLCAwfSwgLy8gLTI0CisgICAgICAgIHsweEE0OTAsIDcyLCAtMzV9LCAvLyAtMjUKKyAgICAgICAgezB4RDdBNCwgNzQsIDB9LCAvLyAtMjYKKyAgICAgICAgezB4RkI1MCwgODAsIDgxfSwgLy8gLTI3CisgICAgICAgIHsweEZFMjAsIDAsIC0zNn0sIC8vIC0yOAorICAgICAgICB7MHhGRUZGLCA4NSwgODZ9LCAvLyAtMjkKKyAgICAgICAgezB4RkZGMCwgODcsIC0zN30sIC8vIC0zMAorICAgICAgICB7MHgyMEQwLCA0MiwgNDN9LCAvLyAtMzEKKyAgICAgICAgezB4MjQ2MCwgNTAsIDUxfSwgLy8gLTMyCisgICAgICAgIHsweDJGRjAsIDAsIDYwfSwgLy8gLTMzCisgICAgICAgIHsweDMxQTAsIDY2LCAtMzh9LCAvLyAtMzQKKyAgICAgICAgezB4QTREMCwgNzMsIDB9LCAvLy0zNQorICAgICAgICB7MHhGRTMwLCA4MiwgLTM5fSwgLy8tMzYKKyAgICAgICAgezB4RkZGRSwgODgsIDB9LCAvLy0zNworICAgICAgICB7MHgzMUMwLCA2NywgMH0sIC8vIC0zOAorICAgICAgICB7MHhGRTUwLCA4MywgLTQwfSwgLy8tMzkKKyAgICAgICAgezB4RkU3MCwgODQsIDg1fSAvLyAtNDAKKyAgICB9OworICAgICAgICAKKyAgICBzdGF0aWMgZmluYWwgYnl0ZVtdIGNoYXJUb0Jsb2NrID0geworICAgICAgMSwgMiwgMywgNCwgLTEsIC0yLCAtMywgOCwgOSwgOSwgLTQsIC01LCAxMiwgMTIsIC02LCAtNywKKyAgICAgIDAsIDAsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyNywKKyAgICAgIDI4LCAtOCwgMzAsIDMwLCAzMSwgMzEsIDMxLCAtOSwgMzMsIDMzLCAzMywgMzMsIDMzLCAtMTAsIDAsIDM2LAorICAgICAgMzcsIC0xMSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzgsIDM4LCAzOSwgMzksCisgICAgICAtMTIsIC0xMywgLTE0LCAtMTUsIDQ3LCA0NywgNDgsIDQ4LCAtMTYsIDUxLCA1MiwgLTE3LCA1NSwgNTUsIDU2LCAtMTgsCisgICAgICA1NywgNTcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU4LCA1OSwgLTE5LAorICAgICAgLTIwLCAtMjEsIC0yMiwgLTIzLCA2OCwgNjgsIDY5LCA2OSwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLAorICAgICAgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsCisgICAgICA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwKKyAgICAgIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgLTI0LCA3MSwgNzEsIDcxLCA3MSwKKyAgICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLAorICAgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsCisgICAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwKKyAgICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLAorICAgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsCisgICAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwKKyAgICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLAorICAgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsCisgICAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwKKyAgICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLAorICAgICAgNzIsIDcyLCA3MiwgNzIsIDcyLCA3MiwgNzIsIDcyLCA3MiwgLTI1LCAwLCAwLCAwLCAwLCAwLCAwLAorICAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LAorICAgICAgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsCisgICAgICA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwKKyAgICAgIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LAorICAgICAgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsCisgICAgICA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCAtMjYsCisgICAgICA3NSwgNzUsIDc1LCA3NSwgNzUsIDc1LCA3NSwgNzYsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywKKyAgICAgIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LAorICAgICAgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsCisgICAgICA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwKKyAgICAgIDc4LCA3OCwgNzksIDc5LCA3OSwgNzksIC0yNywgODEsIDgxLCA4MSwgODEsIDgxLCAtMjgsIC0yOSwgODcsIC0zMAorICAgIH07CisgICAgKi8KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9UcmFuc2xpdGVyYXRvclRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9UcmFuc2xpdGVyYXRvclRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xNWEwNDAwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L1RyYW5zbGl0ZXJhdG9yVGVzdC5qYXZhCkBAIC0wLDAgKzEsMjg0NCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L1RyYW5zbGl0ZXJhdG9yVGVzdC5qYXZhLHYgJAorICogJERhdGU6IDIwMDIvMDgvMDIgMjE6MTg6NDQgJAorICogJFJldmlzaW9uOiAxLjExNSAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudHJhbnNsaXQ7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhc2VJbnNlbnNpdGl2ZVN0cmluZzsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyAgICAgICAgICAgICAgICAgICAgIEhPVyBUTyBVU0UgVEhJUyBURVNUIEZJTEUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtb3ItCisgICAgICAgICAgICAgICAgICBIb3cgSSBkZXZlbG9wZWQgb24gdHdvIHBsYXRmb3JtcworICAgICAgICAgICAgICAgIHdpdGhvdXQgbG9zaW5nICh0b28gbXVjaCBvZikgbXkgbWluZAorCisKKzEuIEFkZCBuZXcgdGVzdHMgYnkgY29weWluZy9wYXN0aW5nL2NoYW5naW5nIGV4aXN0aW5nIHRlc3RzLiAgT24gSmF2YSwKKyAgIGFueSBwdWJsaWMgdm9pZCBtZXRob2QgbmFtZWQgVGVzdC4uLigpIHRha2luZyBubyBwYXJhbWV0ZXJzIGJlY29tZXMKKyAgIGEgdGVzdC4gIE9uIEMrKywgeW91IG5lZWQgdG8gbW9kaWZ5IHRoZSBoZWFkZXIgYW5kIGFkZCBhIGxpbmUgdG8KKyAgIHRoZSBydW5JbmRleGVkVGVzdCgpIGRpc3BhdGNoIG1ldGhvZC4KKworMi4gTWFrZSBsaWJlcmFsIHVzZSBvZiB0aGUgZXhwZWN0KCkgbWV0aG9kOyBpdCBpcyB5b3VyIGZyaWVuZC4KKworMy4gVGhlIHRlc3RzIGluIHRoaXMgZmlsZSBleGFjdGx5IG1hdGNoIHRob3NlIGluIGEgc2lzdGVyIGZpbGUgb24gdGhlCisgICBvdGhlciBzaWRlLiAgVGhlIHR3byBmaWxlcyBhcmU6CisKKyAgIGljdTRqOiAgc3JjL2NvbS5pYm0uaWN1LmRldi50ZXN0L3RyYW5zbGl0L1RyYW5zbGl0ZXJhdG9yVGVzdC5qYXZhCisgICBpY3U0YzogIHNvdXJjZS90ZXN0L2ludGx0ZXN0L3RyYW5zdHN0LmNwcAorCisgICAgICAgICAgICAgICAgICA9PT4gVEhJUyBJUyBUSEUgSU1QT1JUQU5UIFBBUlQgPD09CisKKyAgIFdoZW4geW91IGFkZCBhIHRlc3QgaW4gdGhpcyBmaWxlLCBhZGQgaXQgaW4gdHJhbnN0c3QuY3BwIHRvby4KKyAgIEdpdmUgaXQgdGhlIHNhbWUgbmFtZSBhbmQgcHV0IGl0IGluIHRoZSBzYW1lIHJlbGF0aXZlIHBsYWNlLiAgVGhpcworICAgbWFrZXMgbWFpbnRlbmFuY2UgYSBsb3Qgc2ltcGxlciBmb3IgYW55IHBvb3Igc291bCB3aG8gZW5kcyB1cAorICAgdHJ5aW5nIHRvIHN5bmNocm9uaXplIHRoZSB0ZXN0cyBiZXR3ZWVuIGljdTRqIGFuZCBpY3U0Yy4KKworNC4gSWYgeW91IE1VU1QgZW50ZXIgYSB0ZXN0IHRoYXQgaXMgTk9UIHBhcmFsbGVsZWQgaW4gdGhlIHNpc3RlciBmaWxlLAorICAgdGhlbiBhZGQgaXQgaW4gdGhlIHNwZWNpYWwgbm9uLW1pcnJvcmVkIHNlY3Rpb24uICBUaGVzZSBhcmUKKyAgIGxhYmVsZWQKKworICAgICAiaWN1NGogT05MWSIKKworICAgb3IKKworICAgICAiaWN1NGMgT05MWSIKKworICAgTWFrZSBzdXJlIHlvdSBkb2N1bWVudCB0aGUgcmVhc29uIHRoZSB0ZXN0IGlzIGhlcmUgYW5kIG5vdCB0aGVyZS4KKworCitUaGFuayB5b3UuCitUaGUgTWFuYWdlbWVudAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogQHRlc3QKKyAqIEBzdW1tYXJ5IEdlbmVyYWwgdGVzdCBvZiBUcmFuc2xpdGVyYXRvcgorICovCitwdWJsaWMgY2xhc3MgVHJhbnNsaXRlcmF0b3JUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBUcmFuc2xpdGVyYXRvclRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEluc3RhbnRpYXRpb24oKSB7CisgICAgICAgIGxvbmcgbXMgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgU3RyaW5nIElEOworICAgICAgICBmb3IgKEVudW1lcmF0aW9uIGUgPSBUcmFuc2xpdGVyYXRvci5nZXRBdmFpbGFibGVJRHMoKTsgZS5oYXNNb3JlRWxlbWVudHMoKTsgKSB7CisgICAgICAgICAgICBJRCA9IChTdHJpbmcpIGUubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgIGlmIChJRC5lcXVhbHMoIkxhdGluLUhhbi9kZWZpbml0aW9uIikpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxuVE9ETzogZGlzYWJsaW5nIExhdGluLUhhbi9kZWZpbml0aW9uIGNoZWNrIGZvciBub3c6IGZpeCBsYXRlciIpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IG51bGw7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShJRCk7CisgICAgICAgICAgICAgICAgLy8gV2Ugc2hvdWxkIGdldCBhIG5ldyBpbnN0YW5jZSBpZiB3ZSB0cnkgYWdhaW4KKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0MiA9IG51bGw7CisgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyB0cnVlIG9ubHkgb2YgUkJUCisgICAgICAgICAgICAgICAgaWYgKHQgaW5zdGFuY2VvZiBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvcikgeworICAgICAgICAgICAgICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoSUQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAodCAhPSB0MikgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiT0s6ICIgKyBUcmFuc2xpdGVyYXRvci5nZXREaXNwbGF5TmFtZShJRCkgKyAiICgiICsgSUQgKyAiKTogIiArIHQpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgSUQgKyAiIHJldHVybmVkIGlkZW50aWNhbCBpbnN0YW5jZXMiKTsKKyAgICAgICAgICAgICAgICAgICAgdCA9IG51bGw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBJRCk7CisgICAgICAgICAgICAgICAgdGhyb3cgZXg7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAvLyBOb3cgdGVzdCB0b1J1bGVzCisgICAgICAgICAgICAgICAgU3RyaW5nIHJ1bGVzID0gbnVsbDsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBydWxlcyA9IHQudG9SdWxlcyh0cnVlKTsKKworICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB1ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJ4IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlcywgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGV4MikgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIElEICsgIi50b1J1bGVzKCkgPT4gYmFkIHJ1bGVzOiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZXMpOworICAgICAgICAgICAgICAgICAgICB0aHJvdyBleDI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gTm93IHRlc3QgdGhlIGZhaWx1cmUgcGF0aAorICAgICAgICB0cnkgeworICAgICAgICAgICAgSUQgPSAiPE5vdCBhIHZhbGlkIFRyYW5zbGl0ZXJhdG9yIElEPiI7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoSUQpOworICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBJRCArICIgcmV0dXJuZWQgIiArIHQpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPSzogQm9ndXMgSUQgaGFuZGxlZCBwcm9wZXJseSIpOworICAgICAgICB9CisKKyAgICAgICAgbXMgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSAtIG1zOworICAgICAgICBsb2dsbigiRWxhcHNlZCB0aW1lOiAiICsgbXMgKyAiIG1zIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFNpbXBsZVJ1bGVzKCkgeworICAgICAgICAvKiBFeGFtcGxlOiBydWxlcyAxLiBhYj54fHkKKyAgICAgICAgICogICAgICAgICAgICAgICAgMi4geWM+egorICAgICAgICAgKgorICAgICAgICAgKiBbXXxlYWJjZCAgc3RhcnQgLSBubyBtYXRjaCwgY29weSBlIHRvIHRyYW5sYXRlZCBidWZmZXIKKyAgICAgICAgICogW2VdfGFiY2QgIG1hdGNoIHJ1bGUgMSAtIGNvcHkgb3V0cHV0ICYgYWRqdXN0IGN1cnNvcgorICAgICAgICAgKiBbZXh8eV1jZCAgbWF0Y2ggcnVsZSAyIC0gY29weSBvdXRwdXQgJiBhZGp1c3QgY3Vyc29yCisgICAgICAgICAqIFtleHpdfGQgICBubyBtYXRjaCwgY29weSBkIHRvIHRyYW5zbGl0ZXJhdGVkIGJ1ZmZlcgorICAgICAgICAgKiBbZXh6ZF18ICAgZG9uZQorICAgICAgICAgKi8KKyAgICAgICAgZXhwZWN0KCJhYj54fHk7IiArCisgICAgICAgICAgICAgICAieWM+eiIsCisgICAgICAgICAgICAgICAiZWFiY2QiLCAiZXh6ZCIpOworCisgICAgICAgIC8qIEFub3RoZXIgc2V0IG9mIHJ1bGVzOgorICAgICAgICAgKiAgICAxLiBhYj54fHl6YWN3CisgICAgICAgICAqICAgIDIuIHphPnEKKyAgICAgICAgICogICAgMy4gcWM+cgorICAgICAgICAgKiAgICA0LiBjdz5uCisgICAgICAgICAqCisgICAgICAgICAqIFtdfGFiICAgICAgIFJ1bGUgMQorICAgICAgICAgKiBbeHx5emFjd10gICBObyBtYXRjaAorICAgICAgICAgKiBbeHl8emFjd10gICBSdWxlIDIKKyAgICAgICAgICogW3h5cXxjd10gICAgUnVsZSA0CisgICAgICAgICAqIFt4eXFuXXwgICAgIERvbmUKKyAgICAgICAgICovCisgICAgICAgIGV4cGVjdCgiYWI+eHx5emFjdzsiICsKKyAgICAgICAgICAgICAgICJ6YT5xOyIgKworICAgICAgICAgICAgICAgInFjPnI7IiArCisgICAgICAgICAgICAgICAiY3c+biIsCisgICAgICAgICAgICAgICAiYWIiLCAieHlxbiIpOworCisgICAgICAgIC8qIFRlc3QgY2F0ZWdvcmllcworICAgICAgICAgKi8KKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IG5ldyBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvcigiPElEPiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiRkdW1teT1cdUUxMDA7IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiR2b3dlbD1bYWVpb3VBRUlPVV07IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiRsdT1bOkx1Ol07IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiR2b3dlbCB9ICRsdSA+ICchJzsiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJHZvd2VsID4gJyYnOyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICInIScgeyAkbHUgPiAnXic7IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiRsdSA+ICcqJzsiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYT5FUlJPUiIpOworICAgICAgICBleHBlY3QodCwgImFiY2RlZmdBQkNERUZHVSIsICImYmNkJmZnIV4qKiFeKiYiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IGlubGluZSBzZXQgc3ludGF4IGFuZCBzZXQgdmFyaWFibGUgc3ludGF4LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RJbmxpbmVTZXQoKSB7CisgICAgICAgIGV4cGVjdCgieyBbOkxsOl0gfSB4ID4geTsgWzpMbDpdID4gejsiLCAiYUFieHEiLCAiekF5enoiKTsKKyAgICAgICAgZXhwZWN0KCJhWzAtOV1iID4gcXJzIiwgIjFhN2I5IiwgIjFxcnM5Iik7CisKKyAgICAgICAgZXhwZWN0KCIkZGlnaXQgPSBbMC05XTsiICsKKyAgICAgICAgICAgICAgICIkYWxwaGEgPSBbYS16QS1aXTsiICsKKyAgICAgICAgICAgICAgICIkYWxwaGFudW1lcmljID0gWyRkaWdpdCAkYWxwaGFdOyIgKyAvLyAqKioKKyAgICAgICAgICAgICAgICIkc3BlY2lhbCA9IFteJGFscGhhbnVtZXJpY107IiArICAgICAvLyAqKioKKyAgICAgICAgICAgICAgICIkYWxwaGFudW1lcmljID4gJy0nOyIgKworICAgICAgICAgICAgICAgIiRzcGVjaWFsID4gJyonOyIsCisKKyAgICAgICAgICAgICAgICJ0aHgtMTEzOCIsICItLS0qLS0tLSIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBzb21lIGludmVyc2VzIGFuZCBjb25maXJtIHRoYXQgdGhleSB3b3JrLiAgV2UgaGF2ZSB0byBiZQorICAgICAqIGNhcmVmdWwgaG93IHdlIGRvIHRoaXMsIHNpbmNlIHRoZSBpbnZlcnNlcyB3aWxsIG5vdCBiZSB0cnVlCisgICAgICogaW52ZXJzZXMgLS0gd2UgY2FuJ3QgdGhyb3cgYW55IHJhbmRvbSBzdHJpbmcgYXQgdGhlIGNvbXBvc2l0aW9uCisgICAgICogb2YgdGhlIHRyYW5zbGl0ZXJhdG9ycyBhbmQgZXhwZWN0IHRoZSBpZGVudGl0eSBmdW5jdGlvbi4gIEYgeAorICAgICAqIEYnICE9IEkuICBIb3dldmVyLCBpZiB3ZSBhcmUgY2FyZWZ1bCBhYm91dCB0aGUgaW5wdXQsIHdlIHdpbGwKKyAgICAgKiBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdHMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFJ1bGVCYXNlZEludmVyc2UoKSB7CisgICAgICAgIFN0cmluZyBSVUxFUyA9CisgICAgICAgICAgICAiYWJjPnp5eDsiICsKKyAgICAgICAgICAgICJhYj55ejsiICsKKyAgICAgICAgICAgICJiYz56eDsiICsKKyAgICAgICAgICAgICJjYT54eTsiICsKKyAgICAgICAgICAgICJhPng7IiArCisgICAgICAgICAgICAiYj55OyIgKworICAgICAgICAgICAgImM+ejsiICsKKworICAgICAgICAgICAgImFiYzx6eXg7IiArCisgICAgICAgICAgICAiYWI8eXo7IiArCisgICAgICAgICAgICAiYmM8eng7IiArCisgICAgICAgICAgICAiY2E8eHk7IiArCisgICAgICAgICAgICAiYTx4OyIgKworICAgICAgICAgICAgImI8eTsiICsKKyAgICAgICAgICAgICJjPHo7IiArCisKKyAgICAgICAgICAgICIiOworCisgICAgICAgIFN0cmluZ1tdIERBVEEgPSB7CisgICAgICAgICAgICAvLyBDYXJlZnVsIGhlcmUgLS0gcmFuZG9tIHN0cmluZ3Mgd2lsbCBub3Qgd29yay4gIElmIHdlIGtlZXAKKyAgICAgICAgICAgIC8vIHRoZSBsZWZ0IHNpZGUgdG8gdGhlIGRvbWFpbiBhbmQgdGhlIHJpZ2h0IHNpZGUgdG8gdGhlIHJhbmdlCisgICAgICAgICAgICAvLyB3ZSB3aWxsIGJlIG9rYXkgdGhvdWdoIChsZWZ0LCBhYmM7IHJpZ2h0IHh5eikuCisgICAgICAgICAgICAiYSIsICJ4IiwKKyAgICAgICAgICAgICJhYmNhY2FiIiwgInp5eHh4eXkiLAorICAgICAgICAgICAgImNhY2NiIiwgInh5enp5IiwKKyAgICAgICAgfTsKKworICAgICAgICBUcmFuc2xpdGVyYXRvciBmd2QgPSBuZXcgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IoIjxJRD4iLCBSVUxFUyk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHJldiA9IG5ldyBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvcigiPElEPiIsIFJVTEVTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLlJFVkVSU0UsIG51bGwpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTIpIHsKKyAgICAgICAgICAgIGV4cGVjdChmd2QsIERBVEFbaV0sIERBVEFbaSsxXSk7CisgICAgICAgICAgICBleHBlY3QocmV2LCBEQVRBW2krMV0sIERBVEFbaV0pOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQmFzaWMgdGVzdCBvZiBrZXlib2FyZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0S2V5Ym9hcmQoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBuZXcgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IoIjxJRD4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwc2NoPlk7IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsicHM+eTsiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyJjaD54OyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArImE+QTsiKTsKKyAgICAgICAgU3RyaW5nIERBVEFbXSA9IHsKKyAgICAgICAgICAgIC8vIGluc2VydGlvbiwgYnVmZmVyCisgICAgICAgICAgICAiYSIsICJBIiwKKyAgICAgICAgICAgICJwIiwgIkFwIiwKKyAgICAgICAgICAgICJzIiwgIkFwcyIsCisgICAgICAgICAgICAiYyIsICJBcHNjIiwKKyAgICAgICAgICAgICJhIiwgIkF5Y0EiLAorICAgICAgICAgICAgInBzY2giLCAiQXljQVkiLAorICAgICAgICAgICAgbnVsbCwgIkF5Y0FZIiwgLy8gbnVsbCBtZWFucyBmaW5pc2hLZXlib2FyZFRyYW5zbGl0ZXJhdGlvbgorICAgICAgICB9OworCisgICAgICAgIGtleWJvYXJkQXV4KHQsIERBVEEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEJhc2ljIHRlc3Qgb2Yga2V5Ym9hcmQgd2l0aCBjdXJzb3IuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEtleWJvYXJkMigpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IG5ldyBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvcigiPElEPiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInljaD5ZOyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArInBzPnx5OyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArImNoPng7IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsiYT5BOyIpOworICAgICAgICBTdHJpbmcgREFUQVtdID0geworICAgICAgICAgICAgLy8gaW5zZXJ0aW9uLCBidWZmZXIKKyAgICAgICAgICAgICJhIiwgIkEiLAorICAgICAgICAgICAgInAiLCAiQXAiLAorICAgICAgICAgICAgInMiLCAiQXBzIiwgLy8gbW9kaWZpZWQgZm9yIHJvbGxiYWNrIC0gIkF5IiwKKyAgICAgICAgICAgICJjIiwgIkFwc2MiLCAvLyBtb2RpZmllZCBmb3Igcm9sbGJhY2sgLSAiQXljIiwKKyAgICAgICAgICAgICJhIiwgIkF5Y0EiLAorICAgICAgICAgICAgInAiLCAiQXljQXAiLAorICAgICAgICAgICAgInMiLCAiQXljQXBzIiwgLy8gbW9kaWZpZWQgZm9yIHJvbGxiYWNrIC0gIkF5Y0F5IiwKKyAgICAgICAgICAgICJjIiwgIkF5Y0Fwc2MiLCAvLyBtb2RpZmllZCBmb3Igcm9sbGJhY2sgLSAiQXljQXljIiwKKyAgICAgICAgICAgICJoIiwgIkF5Y0FZIiwKKyAgICAgICAgICAgIG51bGwsICJBeWNBWSIsIC8vIG51bGwgbWVhbnMgZmluaXNoS2V5Ym9hcmRUcmFuc2xpdGVyYXRpb24KKyAgICAgICAgfTsKKworICAgICAgICBrZXlib2FyZEF1eCh0LCBEQVRBKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IGtleWJvYXJkIHRyYW5zbGl0ZXJhdGlvbiB3aXRoIGJhY2stcmVwbGFjZW1lbnQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEtleWJvYXJkMygpIHsKKyAgICAgICAgLy8gV2Ugd2FudCB0aD56IGJ1dCB0PnkuICBGdXJ0aGVybW9yZSwgZHVyaW5nIGtleWJvYXJkCisgICAgICAgIC8vIHRyYW5zbGl0ZXJhdGlvbiB3ZSB3YW50IHQ+eSB0aGVuIHloPnogaWYgdCwgdGhlbiBoIGFyZQorICAgICAgICAvLyB0eXBlZC4KKyAgICAgICAgU3RyaW5nIFJVTEVTID0KKyAgICAgICAgICAgICJ0Pnx5OyIgKworICAgICAgICAgICAgInloPno7IiArCisgICAgICAgICAgICAiIjsKKworICAgICAgICBTdHJpbmdbXSBEQVRBID0geworICAgICAgICAgICAgLy8gQ29sdW1uIDE6IGNoYXJhY3RlcnMgdG8gYWRkIHRvIGJ1ZmZlciAoYXMgaWYgdHlwZWQpCisgICAgICAgICAgICAvLyBDb2x1bW4gMjogZXhwZWN0ZWQgYXBwZWFyYW5jZSBvZiBidWZmZXIgYWZ0ZXIKKyAgICAgICAgICAgIC8vICAgICAgICAgICBrZXlib2FyZCB4bGl0ZXJhdGlvbi4KKyAgICAgICAgICAgICJhIiwgImEiLAorICAgICAgICAgICAgImIiLCAiYWIiLAorICAgICAgICAgICAgInQiLCAiYWJ0IiwgLy8gbW9kaWZpZWQgZm9yIHJvbGxiYWNrIC0gImFieSIsCisgICAgICAgICAgICAiYyIsICJhYnljIiwKKyAgICAgICAgICAgICJ0IiwgImFieWN0IiwgLy8gbW9kaWZpZWQgZm9yIHJvbGxiYWNrIC0gImFieWN5IiwKKyAgICAgICAgICAgICJoIiwgImFieWN6IiwKKyAgICAgICAgICAgIG51bGwsICJhYnljeiIsIC8vIG51bGwgbWVhbnMgZmluaXNoS2V5Ym9hcmRUcmFuc2xpdGVyYXRpb24KKyAgICAgICAgfTsKKworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gbmV3IFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yKCI8SUQ+IiwgUlVMRVMpOworICAgICAgICBrZXlib2FyZEF1eCh0LCBEQVRBKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQga2V5Ym9hcmRBdXgoVHJhbnNsaXRlcmF0b3IgdCwgU3RyaW5nW10gREFUQSkgeworICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBpbmRleCA9IG5ldyBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbigpOworICAgICAgICBSZXBsYWNlYWJsZVN0cmluZyBzID0gbmV3IFJlcGxhY2VhYmxlU3RyaW5nKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MikgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGxvZzsKKyAgICAgICAgICAgIGlmIChEQVRBW2ldICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBsb2cgPSBuZXcgU3RyaW5nQnVmZmVyKHMudG9TdHJpbmcoKSArICIgKyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIERBVEFbaV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiAtPiAiKTsKKyAgICAgICAgICAgICAgICB0LnRyYW5zbGl0ZXJhdGUocywgaW5kZXgsIERBVEFbaV0pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2cgPSBuZXcgU3RyaW5nQnVmZmVyKHMudG9TdHJpbmcoKSArICIgPT4gIik7CisgICAgICAgICAgICAgICAgdC5maW5pc2hUcmFuc2xpdGVyYXRpb24ocywgaW5kZXgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgVXRpbGl0eS5mb3JtYXRJbnB1dChsb2csIHMsIGluZGV4KTsKKyAgICAgICAgICAgIGlmIChzLnRvU3RyaW5nKCkuZXF1YWxzKERBVEFbaSsxXSkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihsb2cudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgbG9nLnRvU3RyaW5nKCkgKyAiLCBleHBlY3RlZCAiICsgREFUQVtpKzFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIExhdGluLUFyYWJpYyBoYXMgYmVlbiB0ZW1wb3JhcmlseSByZW1vdmVkIHVudGlsIGl0IGNhbiBiZQorICAgIC8vIGRvbmUgY29ycmVjdGx5LgorCisvLyAgcHVibGljIHZvaWQgVGVzdEFyYWJpYygpIHsKKy8vICAgICAgU3RyaW5nIERBVEFbXSA9IHsKKy8vICAgICAgICAgICJBcmFiaWMiLAorLy8gICAgICAgICAgICAgICJcdTA2MmFcdTA2MmFcdTA2NDVcdTA2MmFcdTA2MzkgIisKKy8vICAgICAgICAgICAgICAiXHUwNjI3XHUwNjQ0XHUwNjQ0XHUwNjNhXHUwNjI5ICIrCisvLyAgICAgICAgICAgICAgIlx1MDYyN1x1MDY0NFx1MDYzOVx1MDYzMVx1MDYyOFx1MDYyOFx1MDY0YVx1MDYyOSAiKworLy8gICAgICAgICAgICAgICJcdTA2MjhcdTA2MjhcdTA2NDZcdTA2MzhcdTA2NDUgIisKKy8vICAgICAgICAgICAgICAiXHUwNjQzXHUwNjJhXHUwNjI3XHUwNjI4XHUwNjI4XHUwNjRhXHUwNjI5ICIrCisvLyAgICAgICAgICAgICAgIlx1MDYyY1x1MDY0NVx1MDY0YVx1MDY0NFx1MDYyOSIKKy8vICAgICAgfTsKKworLy8gICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkxhdGluLUFyYWJpYyIpOworLy8gICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTIpIHsKKy8vICAgICAgICAgIGV4cGVjdCh0LCBEQVRBW2ldLCBEQVRBW2krMV0pOworLy8gICAgICB9CisvLyAgfQorCisgICAgLyoqCisgICAgICogQ29tcG9zZSB0aGUgS2FuYSB0cmFuc2xpdGVyYXRvciBmb3J3YXJkIGFuZCByZXZlcnNlIGFuZCB0cnkKKyAgICAgKiBzb21lIHN0cmluZ3MgdGhhdCBzaG91bGQgY29tZSBvdXQgdW5jaGFuZ2VkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDb21wb3VuZEthbmEoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBuZXcgQ29tcG91bmRUcmFuc2xpdGVyYXRvcigiTGF0aW4tS2F0YWthbmE7S2F0YWthbmEtTGF0aW4iKTsKKyAgICAgICAgZXhwZWN0KHQsICJhYWFhYSIsICJhYWFhYSIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBvc2UgdGhlIGhleCB0cmFuc2xpdGVyYXRvcnMgZm9yd2FyZCBhbmQgcmV2ZXJzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcG91bmRIZXgoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGEgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiQW55LUhleCIpOworICAgICAgICBUcmFuc2xpdGVyYXRvciBiID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkhleC1BbnkiKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3JbXSB0cmFucyA9IHsgYSwgYiB9OworICAgICAgICBUcmFuc2xpdGVyYXRvciBhYiA9IG5ldyBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKHRyYW5zKTsKKworICAgICAgICAvLyBEbyBzb21lIGJhc2ljIHRlc3RzIG9mIGIKKyAgICAgICAgZXhwZWN0KGIsICJcXHUwMDMwXFx1MDAzMSIsICIwMSIpOworCisgICAgICAgIFN0cmluZyBzID0gImFiY2RlIjsKKyAgICAgICAgZXhwZWN0KGFiLCBzLCBzKTsKKworICAgICAgICB0cmFucyA9IG5ldyBUcmFuc2xpdGVyYXRvcltdIHsgYiwgYSB9OworICAgICAgICBUcmFuc2xpdGVyYXRvciBiYSA9IG5ldyBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKHRyYW5zKTsKKyAgICAgICAgUmVwbGFjZWFibGVTdHJpbmcgc3RyID0gbmV3IFJlcGxhY2VhYmxlU3RyaW5nKHMpOworICAgICAgICBhLnRyYW5zbGl0ZXJhdGUoc3RyKTsKKyAgICAgICAgZXhwZWN0KGJhLCBzdHIudG9TdHJpbmcoKSwgc3RyLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERvIHNvbWUgYmFzaWMgdGVzdHMgb2YgZmlsdGVyaW5nLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RGaWx0ZXJpbmcoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGhleCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJBbnktSGV4Iik7CisgICAgICAgIGhleC5zZXRGaWx0ZXIobmV3IFVuaWNvZGVGaWx0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgYm9vbGVhbiBjb250YWlucyhpbnQgYykgeworICAgICAgICAgICAgICAgIHJldHVybiBjICE9ICdjJzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIFN0cmluZyBzID0gImFiY2RlIjsKKyAgICAgICAgU3RyaW5nIG91dCA9IGhleC50cmFuc2xpdGVyYXRlKHMpOworICAgICAgICBTdHJpbmcgZXhwID0gIlxcdTAwNjFcXHUwMDYyY1xcdTAwNjRcXHUwMDY1IjsKKyAgICAgICAgaWYgKG91dC5lcXVhbHMoZXhwKSkgeworICAgICAgICAgICAgbG9nbG4oIk9rOiAgIFwiIiArIGV4cCArICJcIiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nbG4oIkZBSUw6IFwiIiArIG91dCArICJcIiwgd2FudGVkIFwiIiArIGV4cCArICJcIiIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBhbmNob3JzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEFuY2hvcnMoKSB7CisgICAgICAgIGV4cGVjdCgiXmFiICA+IDAxIDsiICsKKyAgICAgICAgICAgICAgICIgYWIgID4gfDggOyIgKworICAgICAgICAgICAgICAgIiAgYiAgPiBrIDsiICsKKyAgICAgICAgICAgICAgICIgOHgkID4gNDUgOyIgKworICAgICAgICAgICAgICAgIiA4eCAgPiA3NyA7IiwKKworICAgICAgICAgICAgICAgImFiYWJiYWJ4YWJ4IiwKKyAgICAgICAgICAgICAgICIwMThrNzc0NSIpOworICAgICAgICBleHBlY3QoIiRzID0gW3okXSA7IiArCisgICAgICAgICAgICAgICAiJHN7YWIgICAgPiAwMSA7IiArCisgICAgICAgICAgICAgICAiICAgYWIgICAgPiB8OCA7IiArCisgICAgICAgICAgICAgICAiICAgIGIgICAgPiBrIDsiICsKKyAgICAgICAgICAgICAgICIgICA4eH0kcyA+IDQ1IDsiICsKKyAgICAgICAgICAgICAgICIgICA4eCAgICA+IDc3IDsiLAorCisgICAgICAgICAgICAgICAiYWJ6YWJhYmJhYnh6YWJ4YWJ4IiwKKyAgICAgICAgICAgICAgICIwMXowMThrNDV6MDF4NDUiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHBhdHRlcm4gcXVvdGluZyBhbmQgZXNjYXBlIG1lY2hhbmlzbXMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFBhdHRlcm5RdW90aW5nKCkgeworICAgICAgICAvLyBBcnJheSBvZiAzbiBpdGVtcworICAgICAgICAvLyBFYWNoIGl0ZW0gaXMgPHJ1bGVzPiwgPGlucHV0PiwgPGV4cGVjdGVkIG91dHB1dD4KKyAgICAgICAgU3RyaW5nW10gREFUQSA9IHsKKyAgICAgICAgICAgICJcdTRFMDE+J1ttYWxlIGFkdWx0XSciLCAiXHU0RTAxIiwgIlttYWxlIGFkdWx0XSIsCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0zKSB7CisgICAgICAgICAgICBsb2dsbigiUGF0dGVybjogIiArIFV0aWxpdHkuZXNjYXBlKERBVEFbaV0pKTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBuZXcgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IoIjxJRD4iLCBEQVRBW2ldKTsKKyAgICAgICAgICAgIGV4cGVjdCh0LCBEQVRBW2krMV0sIERBVEFbaSsyXSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdyZXNzaW9uIHRlc3QgZm9yIGJ1Z3MgZm91bmQgaW4gR3JlZWsgdHJhbnNsaXRlcmF0aW9uLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RKMjc3KCkgeworICAgICAgICBUcmFuc2xpdGVyYXRvciBnbCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJHcmVlay1MYXRpbjsgTkZEOyBbOk06XVJlbW92ZTsgTkZDIik7CisKKyAgICAgICAgY2hhciBzaWdtYSA9IChjaGFyKTB4M0MzOworICAgICAgICBjaGFyIHVwc2lsb24gPSAoY2hhcikweDNDNTsKKyAgICAgICAgY2hhciBudSA9IChjaGFyKTB4M0JEOworICAgICAgICAvLyBub3QgdXNlZCBjaGFyIFBISSA9IChjaGFyKTB4M0E2OworICAgICAgICBjaGFyIGFscGhhID0gKGNoYXIpMHgzQjE7CisgICAgICAgIC8vIG5vdCB1c2VkIGNoYXIgb21lZ2EgPSAoY2hhcikweDNDOTsKKyAgICAgICAgLy8gbm90IHVzZWQgY2hhciBvbWljcm9uID0gKGNoYXIpMHgzQkY7CisgICAgICAgIC8vIG5vdCB1c2VkIGNoYXIgZXBzaWxvbiA9IChjaGFyKTB4M0I1OworCisgICAgICAgIC8vIHNpZ21hIHVwc2lsb24gbnUgLT4gc3luCisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGJ1Zi5hcHBlbmQoc2lnbWEpLmFwcGVuZCh1cHNpbG9uKS5hcHBlbmQobnUpOworICAgICAgICBTdHJpbmcgc3luID0gYnVmLnRvU3RyaW5nKCk7CisgICAgICAgIGV4cGVjdChnbCwgc3luLCAic3luIik7CisKKyAgICAgICAgLy8gc2lnbWEgYWxwaGEgdXBzaWxvbiBudSAtPiBzYXVuCisgICAgICAgIGJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgIGJ1Zi5hcHBlbmQoc2lnbWEpLmFwcGVuZChhbHBoYSkuYXBwZW5kKHVwc2lsb24pLmFwcGVuZChudSk7CisgICAgICAgIFN0cmluZyBzYXluID0gYnVmLnRvU3RyaW5nKCk7CisgICAgICAgIGV4cGVjdChnbCwgc2F5biwgInNhdW4iKTsKKworICAgICAgICAvLyBBZ2FpbiwgdXNpbmcgYSBzbWFsbGVyIHJ1bGUgc2V0CisgICAgICAgIFN0cmluZyBydWxlcyA9CisgICAgICAgICAgICAgICAgICAgICIkYWxwaGEgICA9IFx1MDNCMTsiICsKKyAgICAgICAgICAgICAgICAgICAgIiRudSAgICAgID0gXHUwM0JEOyIgKworICAgICAgICAgICAgICAgICAgICAiJHNpZ21hICAgPSBcdTAzQzM7IiArCisgICAgICAgICAgICAgICAgICAgICIkeXBzaWxvbiA9IFx1MDNDNTsiICsKKyAgICAgICAgICAgICAgICAgICAgIiR2b3dlbCAgID0gW2FlaW91QUVJT1UkYWxwaGEkeXBzaWxvbl07IiArCisgICAgICAgICAgICAgICAgICAgICJzIDw+ICAgICAgICAgICAkc2lnbWE7IiArCisgICAgICAgICAgICAgICAgICAgICJhIDw+ICAgICAgICAgICAkYWxwaGE7IiArCisgICAgICAgICAgICAgICAgICAgICJ1IDw+ICAkdm93ZWwgeyAkeXBzaWxvbjsiICsKKyAgICAgICAgICAgICAgICAgICAgInkgPD4gICAgICAgICAgICR5cHNpbG9uOyIgKworICAgICAgICAgICAgICAgICAgICAibiA8PiAgICAgICAgICAgJG51OyI7CisgICAgICAgIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yIG1pbmkgPSBuZXcgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IKKyAgICAgICAgICAgICgibWluaSIsIHJ1bGVzLCBUcmFuc2xpdGVyYXRvci5SRVZFUlNFLCBudWxsKTsKKyAgICAgICAgZXhwZWN0KG1pbmksIHN5biwgInN5biIpOworICAgICAgICBleHBlY3QobWluaSwgc2F5biwgInNhdW4iKTsKKworLy98ICAgIC8vIFRyYW5zbGl0ZXJhdGUgdGhlIEdyZWVrIGxvY2FsZSBkYXRhCisvL3wgICAgTG9jYWxlIGVsKCJlbCIpOworLy98ICAgIERhdGVGb3JtYXRTeW1ib2xzIHN5bXMoZWwsIHN0YXR1cyk7CisvL3wgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7IGVycmxuKCJGQUlMOiBUcmFuc2xpdGVyYXRvciBjb25zdHJ1Y3RvciBmYWlsZWQiKTsgcmV0dXJuOyB9CisvL3wgICAgaW50MzJfdCBpLCBjb3VudDsKKy8vfCAgICBjb25zdCBVbmljb2RlU3RyaW5nKiBkYXRhID0gc3ltcy5nZXRNb250aHMoY291bnQpOworLy98ICAgIGZvciAoaT0wOyBpPGNvdW50OyArK2kpIHsKKy8vfCAgICAgICAgaWYgKGRhdGFbaV0ubGVuZ3RoKCkgPT0gMCkgeworLy98ICAgICAgICAgICAgY29udGludWU7CisvL3wgICAgICAgIH0KKy8vfCAgICAgICAgVW5pY29kZVN0cmluZyBvdXQoZGF0YVtpXSk7CisvL3wgICAgICAgIGdsLT50cmFuc2xpdGVyYXRlKG91dCk7CisvL3wgICAgICAgIGJvb2xfdCBvayA9IFRSVUU7CisvL3wgICAgICAgIGlmIChkYXRhW2ldLmxlbmd0aCgpID49IDIgJiYgb3V0Lmxlbmd0aCgpID49IDIgJiYKKy8vfCAgICAgICAgICAgIHVfaXN1cHBlcihkYXRhW2ldLmNoYXJBdCgwKSkgJiYgdV9pc2xvd2VyKGRhdGFbaV0uY2hhckF0KDEpKSkgeworLy98ICAgICAgICAgICAgaWYgKCEodV9pc3VwcGVyKG91dC5jaGFyQXQoMCkpICYmIHVfaXNsb3dlcihvdXQuY2hhckF0KDEpKSkpIHsKKy8vfCAgICAgICAgICAgICAgICBvayA9IEZBTFNFOworLy98ICAgICAgICAgICAgfQorLy98ICAgICAgICB9CisvL3wgICAgICAgIGlmIChvaykgeworLy98ICAgICAgICAgICAgbG9nbG4ocHJldHRpZnkoZGF0YVtpXSArICIgLT4gIiArIG91dCkpOworLy98ICAgICAgICB9IGVsc2UgeworLy98ICAgICAgICAgICAgZXJybG4oVW5pY29kZVN0cmluZygiRkFJTDogIikgKyBwcmV0dGlmeShkYXRhW2ldICsgIiAtPiAiICsgb3V0KSk7CisvL3wgICAgICAgIH0KKy8vfCAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJlZml4LCBzdWZmaXggc3VwcG9ydCBpbiBoZXggdHJhbnNsaXRlcmF0b3JzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEoyNDMoKSB7CisgICAgICAgIC8vIFRlc3QgZGVmYXVsdCBIZXgtQW55LCB3aGljaCBzaG91bGQgaGFuZGxlCisgICAgICAgIC8vIFxcdSwgXFxVLCB1KywgYW5kIFUrCisgICAgICAgIEhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yIGhleCA9IG5ldyBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvcigpOworICAgICAgICBleHBlY3QoaGV4LCAiXFx1MDA0MStcXFUwMDQyLHUrMDA0M3V1KzAwNDR6IiwgIkErQixDdUR6Iik7CisKKyAgICAgICAgLy8gVHJ5IGEgY3VzdG9tIEhleC1BbnkKKyAgICAgICAgLy8gXFx1WFhYWCBhbmQgJiN4WFhYWDsKKyAgICAgICAgSGV4VG9Vbmljb2RlVHJhbnNsaXRlcmF0b3IgaGV4MiA9IG5ldyBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvcigiXFxcXHUjIyMwOyZcXCN4IyMjMFxcOyIpOworICAgICAgICBleHBlY3QoaGV4MiwgIlxcdTYxXFx1MDYyXFx1MDA2M1xcdTAwNjQ1XFx1NjZ4JiN4MzA7JiN4MDMxOyYjeDAwMzI7JiN4MDAwMzM7IiwKKyAgICAgICAgICAgICAgICJhYmNkNWZ4MDEyJiN4MDAwMzM7Iik7CisKKyAgICAgICAgLy8gVHJ5IGN1c3RvbSBBbnktSGV4IChkZWZhdWx0IGlzIHRlc3RlZCBlbHNld2hlcmUpCisgICAgICAgIFVuaWNvZGVUb0hleFRyYW5zbGl0ZXJhdG9yIGhleDMgPSBuZXcgVW5pY29kZVRvSGV4VHJhbnNsaXRlcmF0b3IoIiZcXCN4IyMjMDsiKTsKKyAgICAgICAgZXhwZWN0KGhleDMsICIwMTIiLCAiJiN4MzA7JiN4MzE7JiN4MzI7Iik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEozMjkoKSB7CisKKyAgICAgICAgT2JqZWN0W10gREFUQSA9IHsKKyAgICAgICAgICAgIG5ldyBCb29sZWFuKGZhbHNlKSwgImEgPiBiOyBjID4gZCIsCisgICAgICAgICAgICBuZXcgQm9vbGVhbih0cnVlKSwgICJhID4gYjsgbm8gb3BlcmF0b3I7IGMgPiBkIiwKKyAgICAgICAgfTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTIpIHsKKyAgICAgICAgICAgIFN0cmluZyBlcnIgPSBudWxsOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gbmV3CisgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yKCI8SUQ+IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFN0cmluZykgREFUQVtpKzFdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5GT1JXQVJELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJyID0gZS5nZXRNZXNzYWdlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBib29sZWFuIGdvdEVycm9yID0gKGVyciAhPSBudWxsKTsKKyAgICAgICAgICAgIFN0cmluZyBkZXNjID0gKFN0cmluZykgREFUQVtpKzFdICsKKyAgICAgICAgICAgICAgICAoZ290RXJyb3IgPyAoIiAtPiBlcnJvcjogIiArIGVycikgOiAiIC0+IG5vIGVycm9yIik7CisgICAgICAgICAgICBpZiAoKGVyciAhPSBudWxsKSA9PSAoKEJvb2xlYW4pREFUQVtpXSkuYm9vbGVhblZhbHVlKCkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT2s6ICAgIiArIGRlc2MpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGRlc2MpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBzZWdtZW50cyBhbmQgc2VnbWVudCByZWZlcmVuY2VzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTZWdtZW50cygpIHsKKyAgICAgICAgLy8gQXJyYXkgb2YgM24gaXRlbXMKKyAgICAgICAgLy8gRWFjaCBpdGVtIGlzIDxydWxlcz4sIDxpbnB1dD4sIDxleHBlY3RlZCBvdXRwdXQ+CisgICAgICAgIFN0cmluZ1tdIERBVEEgPSB7CisgICAgICAgICAgICAiKFthLXpdKSAnLicgKFswLTldKSA+ICQyICctJyAkMSIsCisgICAgICAgICAgICAiYWJjLjEyMy54eXouNDU2IiwKKyAgICAgICAgICAgICJhYjEtYzIzLnh5NC16NTYiLAorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MykgeworICAgICAgICAgICAgbG9nbG4oIlBhdHRlcm46ICIgKyBVdGlsaXR5LmVzY2FwZShEQVRBW2ldKSk7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gbmV3IFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yKCI8SUQ+IiwgREFUQVtpXSk7CisgICAgICAgICAgICBleHBlY3QodCwgREFUQVtpKzFdLCBEQVRBW2krMl0pOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBjdXJzb3IgcG9zaXRpb25pbmcgb3V0c2lkZSBvZiB0aGUga2V5CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEN1cnNvck9mZnNldCgpIHsKKyAgICAgICAgLy8gQXJyYXkgb2YgM24gaXRlbXMKKyAgICAgICAgLy8gRWFjaCBpdGVtIGlzIDxydWxlcz4sIDxpbnB1dD4sIDxleHBlY3RlZCBvdXRwdXQ+CisgICAgICAgIFN0cmluZ1tdIERBVEEgPSB7CisgICAgICAgICAgICAicHJlIHthbHBoYX0gcG9zdCA+IHwgQCBBTFBIQSA7IiArCisgICAgICAgICAgICAiZUFMUEhBID4gYmV0YSA7IiArCisgICAgICAgICAgICAicHJlIHtiZXRhfSBwb3N0ID4gQkVUQSBAQCB8IDsiICsKKyAgICAgICAgICAgICJwb3N0ID4geHl6IiwKKworICAgICAgICAgICAgInByZWFscGhhcG9zdCBwcmViZXRhcG9zdCIsCisgICAgICAgICAgICAicHJiZXRheHl6IHByZUJFVEFwb3N0IiwKKyAgICAgICAgfTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTMpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJQYXR0ZXJuOiAiICsgVXRpbGl0eS5lc2NhcGUoREFUQVtpXSkpOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IG5ldyBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvcigiPElEPiIsIERBVEFbaV0pOworICAgICAgICAgICAgZXhwZWN0KHQsIERBVEFbaSsxXSwgREFUQVtpKzJdKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgemVybyBsZW5ndGggYW5kID4gMSBjaGFyIGxlbmd0aCB2YXJpYWJsZSB2YWx1ZXMuICBUZXN0CisgICAgICogdXNlIG9mIHZhcmlhYmxlIHJlZnMgaW4gVW5pY29kZVNldHMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEFyYml0cmFyeVZhcmlhYmxlVmFsdWVzKCkgeworICAgICAgICAvLyBBcnJheSBvZiAzbiBpdGVtcworICAgICAgICAvLyBFYWNoIGl0ZW0gaXMgPHJ1bGVzPiwgPGlucHV0PiwgPGV4cGVjdGVkIG91dHB1dD4KKyAgICAgICAgU3RyaW5nW10gREFUQSA9IHsKKyAgICAgICAgICAgICIkYWJlID0gYWI7IiArCisgICAgICAgICAgICAiJHBhdCA9IHhbeVldejsiICsKKyAgICAgICAgICAgICIkbGwgID0gJ2Eteic7IiArCisgICAgICAgICAgICAiJGxsWiA9IFskbGxdOyIgKworICAgICAgICAgICAgIiRsbFkgPSBbJGxsJHBhdF07IiArCisgICAgICAgICAgICAiJGVtcCA9IDsiICsKKworICAgICAgICAgICAgIiRhYmUgPiBBQkU7IiArCisgICAgICAgICAgICAiJHBhdCA+IEVORDsiICsKKyAgICAgICAgICAgICIkbGxaID4gMTsiICsKKyAgICAgICAgICAgICIkbGxZID4gMjsiICsKKyAgICAgICAgICAgICI3JGVtcCA4ID4gOTsiICsKKyAgICAgICAgICAgICIiLAorCisgICAgICAgICAgICAiYWIgeFl6eHl6IHN0WTc4IiwKKyAgICAgICAgICAgICJBQkUgRU5ERU5EIDExMjkiLAorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MykgeworICAgICAgICAgICAgbG9nbG4oIlBhdHRlcm46ICIgKyBVdGlsaXR5LmVzY2FwZShEQVRBW2ldKSk7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gbmV3IFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yKCI8SUQ+IiwgREFUQVtpXSk7CisgICAgICAgICAgICBleHBlY3QodCwgREFUQVtpKzFdLCBEQVRBW2krMl0pOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uZmlybSB0aGF0IHRoZSBjb250ZXh0U3RhcnQsIGNvbnRleHRMaW1pdCwgc3RhcnQsIGFuZCBsaW1pdAorICAgICAqIGJlaGF2ZSBjb3JyZWN0bHkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFBvc2l0aW9uSGFuZGxpbmcoKSB7CisgICAgICAgIC8vIEFycmF5IG9mIDNuIGl0ZW1zCisgICAgICAgIC8vIEVhY2ggaXRlbSBpcyA8cnVsZXM+LCA8aW5wdXQ+LCA8ZXhwZWN0ZWQgb3V0cHV0PgorICAgICAgICBTdHJpbmdbXSBEQVRBID0geworICAgICAgICAgICAgImF7dH0gPiBTUyA7IHt0fWIgPiBVVSA7IHt0fSA+IFRUIDsiLAorICAgICAgICAgICAgInh0YXQgdHh0YiIsIC8vIHBvcyAwLDksMCw5CisgICAgICAgICAgICAieFRUYVNTIFRUeFVVYiIsCisKKyAgICAgICAgICAgICJhe3R9ID4gU1MgOyB7dH1iID4gVVUgOyB7dH0gPiBUVCA7IiwKKyAgICAgICAgICAgICJ4dGF0IHR4dGIiLCAvLyBwb3MgMiw5LDMsOAorICAgICAgICAgICAgInh0YVNTIFRUeFVVYiIsCisKKyAgICAgICAgICAgICJhe3R9ID4gU1MgOyB7dH1iID4gVVUgOyB7dH0gPiBUVCA7IiwKKyAgICAgICAgICAgICJ4dGF0IHR4dGIiLCAvLyBwb3MgMyw4LDMsOAorICAgICAgICAgICAgInh0YVRUIFRUeFRUYiIsCisgICAgICAgIH07CisKKyAgICAgICAgLy8gQXJyYXkgb2YgNG4gcG9zaXRpb25zIC0tIHRoZXNlIGdvIHdpdGggdGhlIERBVEEgYXJyYXkKKyAgICAgICAgLy8gVGhleSBhcmU6IGNvbnRleHRTdGFydCwgY29udGV4dExpbWl0LCBzdGFydCwgbGltaXQKKyAgICAgICAgaW50W10gUE9TID0geworICAgICAgICAgICAgMCwgOSwgMCwgOSwKKyAgICAgICAgICAgIDIsIDksIDMsIDgsCisgICAgICAgICAgICAzLCA4LCAzLCA4LAorICAgICAgICB9OworCisgICAgICAgIGludCBuID0gREFUQS5sZW5ndGgvMzsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPG47IGkrKykgeworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IG5ldyBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvcigiPElEPiIsIERBVEFbMyppXSk7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBwb3MgPSBuZXcgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24oCisgICAgICAgICAgICAgICAgUE9TWzQqaV0sIFBPU1s0KmkrMV0sIFBPU1s0KmkrMl0sIFBPU1s0KmkrM10pOworICAgICAgICAgICAgUmVwbGFjZWFibGVTdHJpbmcgcnNvdXJjZSA9IG5ldyBSZXBsYWNlYWJsZVN0cmluZyhEQVRBWzMqaSsxXSk7CisgICAgICAgICAgICB0LnRyYW5zbGl0ZXJhdGUocnNvdXJjZSwgcG9zKTsKKyAgICAgICAgICAgIHQuZmluaXNoVHJhbnNsaXRlcmF0aW9uKHJzb3VyY2UsIHBvcyk7CisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gcnNvdXJjZS50b1N0cmluZygpOworICAgICAgICAgICAgU3RyaW5nIGV4cCA9IERBVEFbMyppKzJdOworICAgICAgICAgICAgZXhwZWN0QXV4KFV0aWxpdHkuZXNjYXBlKERBVEFbMyppXSksCisgICAgICAgICAgICAgICAgICAgICAgREFUQVszKmkrMV0sCisgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5lcXVhbHMoZXhwKSwKKyAgICAgICAgICAgICAgICAgICAgICBleHApOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgSGlyYWdhbmEtS2F0YWthbmEgdHJhbnNsaXRlcmF0b3IuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEhpcmFnYW5hS2F0YWthbmEoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGhrID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkhpcmFnYW5hLUthdGFrYW5hIik7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGtoID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkthdGFrYW5hLUhpcmFnYW5hIik7CisKKyAgICAgICAgLy8gQXJyYXkgb2YgM24gaXRlbXMKKyAgICAgICAgLy8gRWFjaCBpdGVtIGlzICJoayJ8ImtoInwiYm90aCIsIDxIaXJhZ2FuYT4sIDxLYXRha2FuYT4KKyAgICAgICAgU3RyaW5nW10gREFUQSA9IHsKKyAgICAgICAgICAgICJib3RoIiwKKyAgICAgICAgICAgICJcdTMwNDJcdTMwOTBcdTMwOTlcdTMwOTJcdTMwNTAiLAorICAgICAgICAgICAgIlx1MzBBMlx1MzBGOFx1MzBGMlx1MzBCMCIsCisKKyAgICAgICAgICAgICJraCIsCisgICAgICAgICAgICAiXHUzMDdDXHUzMDUxXHUzMDYwXHUzMDQyXHUzMDkzXHUzMEZDIiwKKyAgICAgICAgICAgICJcdTMwRENcdTMwRjZcdTMwQzBcdTMwRkNcdTMwRjNcdTMwRkMiLAorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MykgeworICAgICAgICAgICAgc3dpdGNoIChEQVRBW2ldLmNoYXJBdCgwKSkgeworICAgICAgICAgICAgY2FzZSAnaCc6IC8vIEhpcmFnYW5hLUthdGFrYW5hCisgICAgICAgICAgICAgICAgZXhwZWN0KGhrLCBEQVRBW2krMV0sIERBVEFbaSsyXSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICdrJzogLy8gS2F0YWthbmEtSGlyYWdhbmEKKyAgICAgICAgICAgICAgICBleHBlY3Qoa2gsIERBVEFbaSsyXSwgREFUQVtpKzFdKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJ2InOiAvLyBib3RoCisgICAgICAgICAgICAgICAgZXhwZWN0KGhrLCBEQVRBW2krMV0sIERBVEFbaSsyXSk7CisgICAgICAgICAgICAgICAgZXhwZWN0KGtoLCBEQVRBW2krMl0sIERBVEFbaSsxXSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb3B5SjQ3NigpIHsKKyAgICAgICAgLy8gVGhpcyBpcyBhIEMrKy1vbmx5IGNvcHkgY29uc3RydWN0b3IgdGVzdAorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgaW50ZXItSW5kaWMgdHJhbnNsaXRlcmF0b3JzLiAgVGhlc2UgYXJlIGNvbXBvc2VkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RJbnRlckluZGljKCkgeworICAgICAgICBTdHJpbmcgSUQgPSAiRGV2YW5hZ2FyaS1HdWphcmF0aSI7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGRnID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoSUQpOworICAgICAgICBpZiAoZGcgPT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldEluc3RhbmNlKCIgKyBJRCArICIpIHJldHVybmVkIG51bGwiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgaWQgPSBkZy5nZXRJRCgpOworICAgICAgICBpZiAoIWlkLmVxdWFscyhJRCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRJbnN0YW5jZSgiICsgSUQgKyAiKS5nZXRJRCgpID0+ICIgKyBpZCk7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIGRldiA9ICJcdTA5MDFcdTA5MEJcdTA5MjUiOworICAgICAgICBTdHJpbmcgZ3VqID0gIlx1MEE4MVx1MEE4Qlx1MEFBNSI7CisgICAgICAgIGV4cGVjdChkZywgZGV2LCBndWopOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgZmlsdGVyIHN5bnRheCBpbiBJRHMuIChKMjMpCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEZpbHRlcklEcygpIHsKKyAgICAgICAgU3RyaW5nW10gREFUQSA9IHsKKyAgICAgICAgICAgICJbYWVpb3VdQW55LUhleCIsIC8vIElECisgICAgICAgICAgICAiW2FlaW91XUhleC1BbnkiLCAvLyBleHBlY3RlZCBpbnZlcnNlIElECisgICAgICAgICAgICAicXVpenppY2FsIiwgICAgICAvLyBzcmMKKyAgICAgICAgICAgICJxXFx1MDA3NVxcdTAwNjl6elxcdTAwNjljXFx1MDA2MWwiLCAvLyBleHBlY3RlZCBJRC50cmFuc2xpdChzcmMpCisKKyAgICAgICAgICAgICJbYWVpb3VdQW55LUhleDtbXjVdSGV4LUFueSIsCisgICAgICAgICAgICAiW141XUFueS1IZXg7W2FlaW91XUhleC1BbnkiLAorICAgICAgICAgICAgInF1aXp6aWNhbCIsCisgICAgICAgICAgICAicVxcdTAwNzVpenppY2FsIiwKKworICAgICAgICAgICAgIlthYmNdTnVsbCIsCisgICAgICAgICAgICAiW2FiY11OdWxsIiwKKyAgICAgICAgICAgICJ4eXoiLAorICAgICAgICAgICAgInh5eiIsCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz00KSB7CisgICAgICAgICAgICBTdHJpbmcgSUQgPSBEQVRBW2ldOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKElEKTsKKyAgICAgICAgICAgIGV4cGVjdCh0LCBEQVRBW2krMl0sIERBVEFbaSszXSk7CisKKyAgICAgICAgICAgIC8vIENoZWNrIHRoZSBJRAorICAgICAgICAgICAgaWYgKCFJRC5lcXVhbHModC5nZXRJRCgpKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRJbnN0YW5jZSgiICsgSUQgKyAiKS5nZXRJRCgpID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgIHQuZ2V0SUQoKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIENoZWNrIHRoZSBpbnZlcnNlCisgICAgICAgICAgICBTdHJpbmcgdUlEID0gREFUQVtpKzFdOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdSA9IHQuZ2V0SW52ZXJzZSgpOworICAgICAgICAgICAgaWYgKHUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgSUQgKyAiLmdldEludmVyc2UoKSByZXR1cm5lZCBOVUxMIik7CisgICAgICAgICAgICB9IGVsc2UgaWYgKCF1LmdldElEKCkuZXF1YWxzKHVJRCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIElEICsgIi5nZXRJbnZlcnNlKCkuZ2V0SUQoKSA9PiAiICsKKyAgICAgICAgICAgICAgICAgICAgICB1LmdldElEKCkgKyAiLCBleHBlY3RlZCAiICsgdUlEKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlIGNhc2UgbWFwcGluZyB0cmFuc2xpdGVyYXRvcnMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENhc2VNYXAoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHRvVXBwZXIgPQorICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1VcHBlclteeHl6WFlaXSIpOworICAgICAgICBUcmFuc2xpdGVyYXRvciB0b0xvd2VyID0KKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJBbnktTG93ZXJbXnh5elhZWl0iKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdG9UaXRsZSA9CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiQW55LVRpdGxlW154eXpYWVpdIik7CisKKyAgICAgICAgZXhwZWN0KHRvVXBwZXIsICJUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBlZCBvdmVyIHRoZSBsYXp5IGRvZ3MuIiwKKyAgICAgICAgICAgICAgICJUSEUgUVVJQ0sgQlJPV04gRk94IEpVTVBFRCBPVkVSIFRIRSBMQXp5IERPR1MuIik7CisgICAgICAgIGV4cGVjdCh0b0xvd2VyLCAiVGhlIHF1SWNrIGJyb3duIGZPWCBqVU1QRUQgT1ZFUiBUSEUgTEF6WSBkb2dzLiIsCisgICAgICAgICAgICAgICAidGhlIHF1aWNrIGJyb3duIGZvWCBqdW1wZWQgb3ZlciB0aGUgbGF6WSBkb2dzLiIpOworICAgICAgICBleHBlY3QodG9UaXRsZSwgInRoZSBxdWljayBicm93biBmb1ggY2FOJ1QganVtcCBvdmVyIHRoZSBsYVp5IGRvZ3MuIiwKKyAgICAgICAgICAgICAgICJUaGUgUXVpY2sgQnJvd24gRm9YIENhbid0IEp1bXAgT3ZlciBUaGUgTGFaeSBEb2dzLiIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlIG5hbWUgbWFwcGluZyB0cmFuc2xpdGVyYXRvcnMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdE5hbWVNYXAoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHVuaTJuYW1lID0KKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJBbnktTmFtZVteYWJjXSIpOworICAgICAgICBUcmFuc2xpdGVyYXRvciBuYW1lMnVuaSA9CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTmFtZS1BbnkiKTsKKworICAgICAgICBleHBlY3QodW5pMm5hbWUsICJcdTAwQTBhYmNcdTRFMDFcdTAwQjVcdTBBODFcdUZGRkRcdTAwMDRcdTAwMDlcdTAwODFcdUZGRkYiLAorICAgICAgICAgICAgICAgIntOTy1CUkVBSyBTUEFDRX1hYmN7Q0pLIFVOSUZJRUQgSURFT0dSQVBILTRFMDF9e01JQ1JPIFNJR059e0dVSkFSQVRJIFNJR04gQ0FORFJBQklORFV9e1JFUExBQ0VNRU5UIENIQVJBQ1RFUn17RU5EIE9GIFRSQU5TTUlTU0lPTn17Q0hBUkFDVEVSIFRBQlVMQVRJT059ezxjb250cm9sLTAwODE+fXs8bm9uY2hhcmFjdGVyLUZGRkY+fSIpOworICAgICAgICBleHBlY3QobmFtZTJ1bmksICJ7IE5PLUJSRUFLIFNQQUNFfWFiY3sgIENKSyBVTklGSUVEICBJREVPR1JBUEgtNEUwMSAgfXt4e01JQ1JPIFNJR059e0dVSkFSQVRJIFNJR04gQ0FORFJBQklORFV9e1JFUExBQ0VNRU5UIENIQVJBQ1RFUn17RU5EIE9GIFRSQU5TTUlTU0lPTn17Q0hBUkFDVEVSIFRBQlVMQVRJT059ezxjb250cm9sLTAwODE+fXs8bm9uY2hhcmFjdGVyLUZGRkY+fXs8Y29udHJvbC0wMDA0Pn17IiwKKyAgICAgICAgICAgICAgICJcdTAwQTBhYmNcdTRFMDF7eFx1MDBCNVx1MEE4MVx1RkZGRFx1MDAwNFx1MDAwOVx1MDA4MVx1RkZGRlx1MDAwNHsiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IGxpYmVyYWxpemVkIElEIHN5bnRheC4gIDEwMDZjCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdExpYmVyYWxpemVkSUQoKSB7CisgICAgICAgIC8vIFNvbWUgdGVzdCBjYXNlcyBoYXZlIGFuIGV4cGVjdGVkIGdldElEKCkgdmFsdWUgb2YgTlVMTC4gIFRoaXMKKyAgICAgICAgLy8gbWVhbnMgSSBoYXZlIGRpc2FibGVkIHRoZSB0ZXN0IGNhc2UgZm9yIG5vdy4gIFRoaXMgc3R1ZmYgaXMKKyAgICAgICAgLy8gc3RpbGwgdW5kZXIgZGV2ZWxvcG1lbnQsIGFuZCBJIGhhdmVuJ3QgZGVjaWRlZCB3aGV0aGVyIHRvIG1ha2UKKyAgICAgICAgLy8gZ2V0SUQoKSByZXR1cm4gY2Fub25pY2FsIGNhc2UgeWV0LiAgSXQgd2lsbCBhbGwgZ2V0IHJld3JpdHRlbgorICAgICAgICAvLyB3aXRoIHRoZSBtb3ZlIHRvIFNvdXJjZS1UYXJnZXQvVmFyaWFudCBJRHMgYW55d2F5LiBbYWxpdV0KKyAgICAgICAgU3RyaW5nIERBVEFbXSA9IHsKKyAgICAgICAgICAgICJsYXRpbi1ncmVlayIsIG51bGwgLyoiTGF0aW4tR3JlZWsiKi8sICJjYXNlIGluc2Vuc2l0aXZpdHkiLAorICAgICAgICAgICAgIiAgTnVsbCAgIiwgIk51bGwiLCAid2hpdGVzcGFjZSIsCisgICAgICAgICAgICAiIExhdGluW2Etel0tR3JlZWsgICIsICJbYS16XUxhdGluLUdyZWVrIiwgImlubGluZSBmaWx0ZXIiLAorICAgICAgICAgICAgIiAgbnVsbCAgOyBsYXRpbi1ncmVlayAgIiwgbnVsbCAvKiJOdWxsO0xhdGluLUdyZWVrIiovLCAiY29tcG91bmQgd2hpdGVzcGFjZSIsCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0zKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShEQVRBW2ldKTsKKyAgICAgICAgICAgICAgICBpZiAoREFUQVtpKzFdID09IG51bGwgfHwgREFUQVtpKzFdLmVxdWFscyh0LmdldElEKCkpKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIERBVEFbaSsyXSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgY3JlYXRlIElEIFwiIiArIERBVEFbaV0gKyAiXCIgPT4gXCIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdC5nZXRJRCgpICsgIlwiIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBEQVRBW2krMl0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAiIGNyZWF0ZSBJRCBcIiIgKyBEQVRBW2ldICsgIlwiID0+IFwiIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIHQuZ2V0SUQoKSArICJcIiwgZXhwIFwiIiArIERBVEFbaSsxXSArICJcIiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBEQVRBW2krMl0gKworICAgICAgICAgICAgICAgICAgICAgICIgY3JlYXRlIElEIFwiIiArIERBVEFbaV0gKyAiXCIiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDcmVhdGVJbnN0YW5jZSgpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgbXlUcmFucyA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJMYXRpbi1IYW5ndWwiLCBUcmFuc2xpdGVyYXRvci5SRVZFUlNFKTsKKyAgICAgICAgU3RyaW5nIG5ld0lEID0gbXlUcmFucy5nZXRJRCgpOworICAgICAgICBpZiAoIW5ld0lELmVxdWFscygiSGFuZ3VsLUxhdGluIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUZXN0IGZvciBKaXR0ZXJidWcgOTEyIFRyYW5zbGl0ZXJhdG9yOjpjcmVhdGVJbnN0YW5jZShpZCxVVFJBTlNfUkVWRVJTRSkgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBub3JtYWxpemF0aW9uIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3ROb3JtYWxpemF0aW9uVHJhbnNsaXRlcmF0b3IoKSB7CisgICAgICAgIC8vIFRIRSBGT0xMT1dJTkcgVFdPIFRBQkxFUyBBUkUgQ09QSUVEIEZST00gY29tLmlibS5pY3UuZGV2LnRlc3Qubm9ybWFsaXplci5CYXNpY1Rlc3QKKyAgICAgICAgLy8gUExFQVNFIEtFRVAgVEhFTSBJTiBTWU5DIFdJVEggQmFzaWNUZXN0LgorICAgICAgICBTdHJpbmdbXVtdIENBTk9OID0geworICAgICAgICAgICAgLy8gSW5wdXQgICAgICAgICAgICAgICBEZWNvbXBvc2VkICAgICAgICAgICAgQ29tcG9zZWQKKyAgICAgICAgICAgIHsiY2F0IiwgICAgICAgICAgICAgICAgImNhdCIsICAgICAgICAgICAgICAgICJjYXQiICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsiXHUwMGUwYXJkdmFyayIsICAgICAgImFcdTAzMDBhcmR2YXJrIiwgICAgICJcdTAwZTBhcmR2YXJrIiAgICAgfSwKKworICAgICAgICAgICAgeyJcdTFlMGEiLCAgICAgICAgICAgICAiRFx1MDMwNyIsICAgICAgICAgICAgIlx1MWUwYSIgICAgICAgICAgICB9LCAvLyBELWRvdF9hYm92ZQorICAgICAgICAgICAgeyJEXHUwMzA3IiwgICAgICAgICAgICAiRFx1MDMwNyIsICAgICAgICAgICAgIlx1MWUwYSIgICAgICAgICAgICB9LCAvLyBEIGRvdF9hYm92ZQorCisgICAgICAgICAgICB7Ilx1MWUwY1x1MDMwNyIsICAgICAgICJEXHUwMzIzXHUwMzA3IiwgICAgICAiXHUxZTBjXHUwMzA3IiAgICAgIH0sIC8vIEQtZG90X2JlbG93IGRvdF9hYm92ZQorICAgICAgICAgICAgeyJcdTFlMGFcdTAzMjMiLCAgICAgICAiRFx1MDMyM1x1MDMwNyIsICAgICAgIlx1MWUwY1x1MDMwNyIgICAgICB9LCAvLyBELWRvdF9hYm92ZSBkb3RfYmVsb3cKKyAgICAgICAgICAgIHsiRFx1MDMwN1x1MDMyMyIsICAgICAgIkRcdTAzMjNcdTAzMDciLCAgICAgICJcdTFlMGNcdTAzMDciICAgICAgfSwgLy8gRCBkb3RfYmVsb3cgZG90X2Fib3ZlCisKKyAgICAgICAgICAgIHsiXHUxZTEwXHUwMzA3XHUwMzIzIiwgIkRcdTAzMjdcdTAzMjNcdTAzMDciLCJcdTFlMTBcdTAzMjNcdTAzMDcifSwgLy8gRCBkb3RfYmVsb3cgY2VkaWxsYSBkb3RfYWJvdmUKKyAgICAgICAgICAgIHsiRFx1MDMwN1x1MDMyOFx1MDMyMyIsIkRcdTAzMjhcdTAzMjNcdTAzMDciLCJcdTFlMGNcdTAzMjhcdTAzMDcifSwgLy8gRCBkb3RfYWJvdmUgb2dvbmVrIGRvdF9iZWxvdworCisgICAgICAgICAgICB7Ilx1MUUxNCIsICAgICAgICAgICAgICJFXHUwMzA0XHUwMzAwIiwgICAgICAiXHUxRTE0IiAgICAgICAgICAgIH0sIC8vIEUtbWFjcm9uLWdyYXZlCisgICAgICAgICAgICB7Ilx1MDExMlx1MDMwMCIsICAgICAgICJFXHUwMzA0XHUwMzAwIiwgICAgICAiXHUxRTE0IiAgICAgICAgICAgIH0sIC8vIEUtbWFjcm9uICsgZ3JhdmUKKyAgICAgICAgICAgIHsiXHUwMGM4XHUwMzA0IiwgICAgICAgIkVcdTAzMDBcdTAzMDQiLCAgICAgICJcdTAwYzhcdTAzMDQiICAgICAgfSwgLy8gRS1ncmF2ZSArIG1hY3JvbgorCisgICAgICAgICAgICB7Ilx1MjEyYiIsICAgICAgICAgICAgICJBXHUwMzBhIiwgICAgICAgICAgICAiXHUwMGM1IiAgICAgICAgICAgIH0sIC8vIGFuZ3N0cm9tX3NpZ24KKyAgICAgICAgICAgIHsiXHUwMGM1IiwgICAgICAgICAgICAgIkFcdTAzMGEiLCAgICAgICAgICAgICJcdTAwYzUiICAgICAgICAgICAgfSwgLy8gQS1yaW5nCisKKyAgICAgICAgICAgIHsiXHUwMGZkZmZpbiIsICAgICAgICAgInlcdTAzMDFmZmluIiwgICAgICAgICJcdTAwZmRmZmluIiAgICAgICAgfSwJLy91cGRhdGVkIHdpdGggMy4wCisgICAgICAgICAgICB7Ilx1MDBmZFx1RkIwM24iLCAgICAgICJ5XHUwMzAxXHVGQjAzbiIsICAgICAiXHUwMGZkXHVGQjAzbiIgICAgIH0sCS8vdXBkYXRlZCB3aXRoIDMuMAorCisgICAgICAgICAgICB7IkhlbnJ5IElWIiwgICAgICAgICAgICJIZW5yeSBJViIsICAgICAgICAgICAiSGVucnkgSVYiICAgICAgICAgIH0sCisgICAgICAgICAgICB7IkhlbnJ5IFx1MjE2MyIsICAgICAgICJIZW5yeSBcdTIxNjMiLCAgICAgICAiSGVucnkgXHUyMTYzIiAgICAgIH0sCisKKyAgICAgICAgICAgIHsiXHUzMEFDIiwgICAgICAgICAgICAgIlx1MzBBQlx1MzA5OSIsICAgICAgICJcdTMwQUMiICAgICAgICAgICAgfSwgLy8gZ2EgKEthdGFrYW5hKQorICAgICAgICAgICAgeyJcdTMwQUJcdTMwOTkiLCAgICAgICAiXHUzMEFCXHUzMDk5IiwgICAgICAgIlx1MzBBQyIgICAgICAgICAgICB9LCAvLyBrYSArIHRlbgorICAgICAgICAgICAgeyJcdUZGNzZcdUZGOUUiLCAgICAgICAiXHVGRjc2XHVGRjlFIiwgICAgICAgIlx1RkY3Nlx1RkY5RSIgICAgICB9LCAvLyBod19rYSArIGh3X3RlbgorICAgICAgICAgICAgeyJcdTMwQUJcdUZGOUUiLCAgICAgICAiXHUzMEFCXHVGRjlFIiwgICAgICAgIlx1MzBBQlx1RkY5RSIgICAgICB9LCAvLyBrYSArIGh3X3RlbgorICAgICAgICAgICAgeyJcdUZGNzZcdTMwOTkiLCAgICAgICAiXHVGRjc2XHUzMDk5IiwgICAgICAgIlx1RkY3Nlx1MzA5OSIgICAgICB9LCAvLyBod19rYSArIHRlbgorCisgICAgICAgICAgICB7IkFcdTAzMDBcdTAzMTYiLCAgICAgICJBXHUwMzE2XHUwMzAwIiwgICAgICAiXHUwMEMwXHUwMzE2IiAgICAgIH0sCisgICAgICAgIH07CisKKyAgICAgICAgU3RyaW5nW11bXSBDT01QQVQgPSB7CisgICAgICAgICAgICAvLyBJbnB1dCAgICAgICAgICAgICAgIERlY29tcG9zZWQgICAgICAgICAgICBDb21wb3NlZAorICAgICAgICAgICAgeyJcdUZCNGYiLCAgICAgICAgICAgICAiXHUwNUQwXHUwNURDIiwgICAgICAgIlx1MDVEMFx1MDVEQyIgICAgICB9LCAvLyBBbGVmLUxhbWVkIHZzLiBBbGVmLCBMYW1lZAorCisgICAgICAgICAgICB7Ilx1MDBmZGZmaW4iLCAgICAgICAgICJ5XHUwMzAxZmZpbiIsICAgICAgICAiXHUwMGZkZmZpbiIgICAgICAgIH0sCS8vdXBkYXRlZCBmb3IgMy4wCisgICAgICAgICAgICB7Ilx1MDBmZFx1RkIwM24iLCAgICAgICJ5XHUwMzAxZmZpbiIsICAgICAgICAiXHUwMGZkZmZpbiIgICAgICAgIH0sIC8vIGZmaSBsaWdhdHVyZSAtPiBmICsgZiArIGkKKworICAgICAgICAgICAgeyJIZW5yeSBJViIsICAgICAgICAgICAiSGVucnkgSVYiLCAgICAgICAgICAgIkhlbnJ5IElWIiAgICAgICAgICB9LAorICAgICAgICAgICAgeyJIZW5yeSBcdTIxNjMiLCAgICAgICAiSGVucnkgSVYiLCAgICAgICAgICAgIkhlbnJ5IElWIiAgICAgICAgICB9LAorCisgICAgICAgICAgICB7Ilx1MzBBQyIsICAgICAgICAgICAgICJcdTMwQUJcdTMwOTkiLCAgICAgICAiXHUzMEFDIiAgICAgICAgICAgIH0sIC8vIGdhIChLYXRha2FuYSkKKyAgICAgICAgICAgIHsiXHUzMEFCXHUzMDk5IiwgICAgICAgIlx1MzBBQlx1MzA5OSIsICAgICAgICJcdTMwQUMiICAgICAgICAgICAgfSwgLy8ga2EgKyB0ZW4KKworICAgICAgICAgICAgeyJcdUZGNzZcdTMwOTkiLCAgICAgICAiXHUzMEFCXHUzMDk5IiwgICAgICAgIlx1MzBBQyIgICAgICAgICAgICB9LCAvLyBod19rYSArIHRlbgorICAgICAgICB9OworCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIE5GRCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJORkQiKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgTkZDID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIk5GQyIpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8Q0FOT04ubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBpbiA9IENBTk9OW2ldWzBdOworICAgICAgICAgICAgU3RyaW5nIGV4cGQgPSBDQU5PTltpXVsxXTsKKyAgICAgICAgICAgIFN0cmluZyBleHBjID0gQ0FOT05baV1bMl07CisgICAgICAgICAgICBleHBlY3QoTkZELCBpbiwgZXhwZCk7CisgICAgICAgICAgICBleHBlY3QoTkZDLCBpbiwgZXhwYyk7CisgICAgICAgIH0KKworICAgICAgICBUcmFuc2xpdGVyYXRvciBORktEID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIk5GS0QiKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgTkZLQyA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJORktDIik7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxDT01QQVQubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBpbiA9IENPTVBBVFtpXVswXTsKKyAgICAgICAgICAgIFN0cmluZyBleHBrZCA9IENPTVBBVFtpXVsxXTsKKyAgICAgICAgICAgIFN0cmluZyBleHBrYyA9IENPTVBBVFtpXVsyXTsKKyAgICAgICAgICAgIGV4cGVjdChORktELCBpbiwgZXhwa2QpOworICAgICAgICAgICAgZXhwZWN0KE5GS0MsIGluLCBleHBrYyk7CisgICAgICAgIH0KKworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIk5GRDsgW3hdUmVtb3ZlIik7CisgICAgICAgIGV4cGVjdCh0LCAiXHUwMTBkeCIsICJjXHUwMzBDIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBjb21wb3VuZCBSQlQgcnVsZXMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENvbXBvdW5kUkJUKCkgeworICAgICAgICAvLyBDYXJlZnVsIHdpdGggc3BhY2luZyBhbmQgJzsnIGhlcmU6ICBQaHJhc2UgdGhpcyBleGFjdGx5CisgICAgICAgIC8vIGFzIHRvUnVsZXMoKSBpcyBnb2luZyB0byByZXR1cm4gaXQuICBJZiB0b1J1bGVzKCkgY2hhbmdlcworICAgICAgICAvLyB3aXRoIHJlZ2FyZCB0byBzcGFjaW5nIG9yICc7JywgdGhlbiBhZGp1c3QgdGhpcyBzdHJpbmcuCisgICAgICAgIFN0cmluZyBydWxlID0gIjo6SGV4LUFueTtcbiIgKworICAgICAgICAgICAgICAgICAgICAgICI6OkFueS1Mb3dlcjtcbiIgKworICAgICAgICAgICAgICAgICAgICAgICJhID4gJy5BLic7XG4iICsKKyAgICAgICAgICAgICAgICAgICAgICAiYiA+ICcuQi4nO1xuIiArCisgICAgICAgICAgICAgICAgICAgICAgIjo6W150XUFueS1VcHBlcjsiOworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJUZXN0IiwgcnVsZSwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIGlmICh0ID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjcmVhdGVGcm9tUnVsZXMgZmFpbGVkIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgZXhwZWN0KHQsICJcdTAwNDNhdCBpbiB0aGUgaGF0LCBiYXQgb24gdGhlIG1hdCIsCisgICAgICAgICAgICAgICAiQy5BLnQgSU4gdEhFIEguQS50LCAuQi4uQS50IE9OIHRIRSBNLkEudCIpOworICAgICAgICBTdHJpbmcgciA9IHQudG9SdWxlcyh0cnVlKTsKKyAgICAgICAgaWYgKHIuZXF1YWxzKHJ1bGUpKSB7CisgICAgICAgICAgICBsb2dsbigiT0s6IHRvUnVsZXMoKSA9PiAiICsgcik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogdG9SdWxlcygpID0+ICIgKyByICsKKyAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkICIgKyBydWxlKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE5vdyB0ZXN0IHRvUnVsZXMKKyAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJHcmVlay1MYXRpbjsgTGF0aW4tQ3lyaWxsaWMiLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgaWYgKHQgPT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNyZWF0ZUluc3RhbmNlIGZhaWxlZCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIFN0cmluZyBleHAgPSAiOjpHcmVlay1MYXRpbjtcbjo6TGF0aW4tQ3lyaWxsaWM7IjsKKyAgICAgICAgciA9IHQudG9SdWxlcyh0cnVlKTsKKyAgICAgICAgaWYgKCFyLmVxdWFscyhleHApKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogdG9SdWxlcygpID0+ICIgKyByICsKKyAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkICIgKyBleHApOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nbG4oIk9LOiB0b1J1bGVzKCkgPT4gIiArIHIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gUm91bmQgdHJpcCB0aGUgcmVzdWx0IG9mIHRvUnVsZXMKKyAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiVGVzdCIsIHIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBpZiAodCA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogY3JlYXRlRnJvbVJ1bGVzICMyIGZhaWxlZCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nbG4oIk9LOiBjcmVhdGVGcm9tUnVsZXMoIiArIHIgKyAiKSBzdWNjZWVkZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFRlc3QgdG9SdWxlcyBhZ2FpbgorICAgICAgICByID0gdC50b1J1bGVzKHRydWUpOworICAgICAgICBpZiAoIXIuZXF1YWxzKGV4cCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiB0b1J1bGVzKCkgPT4gIiArIHIgKworICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQgIiArIGV4cCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2dsbigiT0s6IHRvUnVsZXMoKSA9PiAiICsgcik7CisgICAgICAgIH0KKworICAgICAgICAvLyBUZXN0IEZvbyhCYXIpIElEcy4gIENhcmVmdWwgd2l0aCBzcGFjaW5nIGluIGlkOyBtYWtlIGl0IGNvbmZvcm0KKyAgICAgICAgLy8gdG8gd2hhdCB0aGUgcmVnZW5lcmF0ZWQgSUQgd2lsbCBsb29rIGxpa2UuCisgICAgICAgIFN0cmluZyBpZCA9ICJVcHBlcihMb3dlcik7KE5GS0MpIjsKKyAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKGlkLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgaWYgKHQgPT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNyZWF0ZUluc3RhbmNlICMyIGZhaWxlZCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGlmICh0LmdldElEKCkuZXF1YWxzKGlkKSkgeworICAgICAgICAgICAgbG9nbG4oIk9LOiBjcmVhdGVkICIgKyBpZCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogY3JlYXRlSW5zdGFuY2UoIiArIGlkICsKKyAgICAgICAgICAgICAgICAgICIpLmdldElEKCkgPT4gIiArIHQuZ2V0SUQoKSk7CisgICAgICAgIH0KKworICAgICAgICBUcmFuc2xpdGVyYXRvciB1ID0gdC5nZXRJbnZlcnNlKCk7CisgICAgICAgIGlmICh1ID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjcmVhdGVJbnZlcnNlIGZhaWxlZCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGV4cCA9ICJORktDKCk7TG93ZXIoVXBwZXIpIjsKKyAgICAgICAgaWYgKHUuZ2V0SUQoKS5lcXVhbHMoZXhwKSkgeworICAgICAgICAgICAgbG9nbG4oIk9LOiBjcmVhdGVJbnZlcnNlKCIgKyBpZCArICIpID0+ICIgKworICAgICAgICAgICAgICAgICAgdS5nZXRJRCgpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjcmVhdGVJbnZlcnNlKCIgKyBpZCArICIpID0+ICIgKworICAgICAgICAgICAgICAgICAgdS5nZXRJRCgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBvdW5kIGZpbHRlciBzZW1hbnRpY3Mgd2VyZSBvcmdpbmlhbGx5IG5vdCBpbXBsZW1lbnRlZAorICAgICAqIGNvcnJlY3RseS4gIE9yaWdpbmFsbHksIGVhY2ggY29tcG9uZW50IGZpbHRlciBmKGkpIGlzIHJlcGxhY2VkIGJ5CisgICAgICogZicoaSkgPSBmKGkpICYmIGcsIHdoZXJlIGcgaXMgdGhlIGZpbHRlciBmb3IgdGhlIGNvbXBvdW5kCisgICAgICogdHJhbnNsaXRlcmF0b3IuCisgICAgICoKKyAgICAgKiBGcm9tIE1hcms6CisgICAgICoKKyAgICAgKiBTdXBwb3NlIGFuZCBJIGhhdmUgYSB0cmFuc2xpdGVyYXRvciBYLiBJbnRlcm5hbGx5IFggaXMKKyAgICAgKiAiR3JlZWstTGF0aW47IExhdGluLUN5cmlsbGljOyBBbnktTG93ZXIiLiBJIHVzZSBhIGZpbHRlciBbXkFdLgorICAgICAqCisgICAgICogVGhlIGNvbXBvdW5kIHNob3VsZCBjb252ZXJ0IGFsbCBncmVlayBjaGFyYWN0ZXJzICh0aHJvdWdoIGxhdGluKSB0bworICAgICAqIGN5cmlsbGljLCB0aGVuIGxvd2VyY2FzZSB0aGUgcmVzdWx0LiBUaGUgZmlsdGVyIHNob3VsZCBzYXkgImRvbid0CisgICAgICogdG91Y2ggJ0EnIGluIHRoZSBvcmlnaW5hbCIuIEJ1dCBiZWNhdXNlIGFuIGludGVybWVkaWF0ZSByZXN1bHQKKyAgICAgKiBoYXBwZW5zIHRvIGdvIHRocm91Z2ggIkEiLCB0aGUgR3JlZWsgQWxwaGEgZ2V0cyBodW5nIHVwLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDb21wb3VuZEZpbHRlcigpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlCisgICAgICAgICAgICAoIkdyZWVrLUxhdGluOyBMYXRpbi1HcmVlazsgTG93ZXIiLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgdC5zZXRGaWx0ZXIobmV3IFVuaWNvZGVTZXQoIlteQV0iKSk7CisKKyAgICAgICAgLy8gT25seSB0aGUgJ0EnIGF0IGluZGV4IDEgc2hvdWxkIHJlbWFpbiB1bmNoYW5nZWQKKyAgICAgICAgZXhwZWN0KHQsCisgICAgICAgICAgICAgICBDaGFyc1RvVW5pY29kZVN0cmluZygiQkFcXHUwMzlBXFx1MDM5MSIpLAorICAgICAgICAgICAgICAgQ2hhcnNUb1VuaWNvZGVTdHJpbmcoIlxcdTAzYjJBXFx1MDNiYVxcdTAzYjEiKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgIlJlbW92ZSIgdHJhbnNsaXRlcmF0b3IuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFJlbW92ZSgpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJSZW1vdmVbYWVpb3VdIik7CisgICAgICAgIGV4cGVjdCh0LCAiVGhlIHF1aWNrIGJyb3duIGZveC4iLAorICAgICAgICAgICAgICAgIlRoIHFjayBicnduIGZ4LiIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RUb1J1bGVzKCkgeworICAgICAgICBTdHJpbmcgUkJUID0gInJidCI7CisgICAgICAgIFN0cmluZyBTRVQgPSAic2V0IjsKKyAgICAgICAgU3RyaW5nW10gREFUQSA9IHsKKyAgICAgICAgICAgIFJCVCwKKyAgICAgICAgICAgICIkYT1cXHU0RTYxOyBbJGFdID4gQTsiLAorICAgICAgICAgICAgIltcXHU0RTYxXSA+IEE7IiwKKworICAgICAgICAgICAgUkJULAorICAgICAgICAgICAgIiR3aGl0ZT1bWzpaczpdWzpabDpdXTsgJHdoaXRle2F9ID4gQTsiLAorICAgICAgICAgICAgIltbOlpzOl1bOlpsOl1de2F9ID4gQTsiLAorCisgICAgICAgICAgICBTRVQsCisgICAgICAgICAgICAiW1s6WnM6XVs6Wmw6XV0iLAorICAgICAgICAgICAgIltbOlpzOl1bOlpsOl1dIiwKKworICAgICAgICAgICAgU0VULAorICAgICAgICAgICAgIls6UHM6XSIsCisgICAgICAgICAgICAiWzpQczpdIiwKKworICAgICAgICAgICAgU0VULAorICAgICAgICAgICAgIls6TDpdIiwKKyAgICAgICAgICAgICJbOkw6XSIsCisKKyAgICAgICAgICAgIFNFVCwKKyAgICAgICAgICAgICJbWzpMOl0tW0FdXSIsCisgICAgICAgICAgICAiW1s6TDpdLVtBXV0iLAorCisgICAgICAgICAgICBTRVQsCisgICAgICAgICAgICAiW35bOkx1Ol1bOkxsOl1dIiwKKyAgICAgICAgICAgICJbfls6THU6XVs6TGw6XV0iLAorCisgICAgICAgICAgICBTRVQsCisgICAgICAgICAgICAiW35bYS16XV0iLAorICAgICAgICAgICAgIlt+W2Etel1dIiwKKworICAgICAgICAgICAgUkJULAorICAgICAgICAgICAgIiR3aGl0ZT1bOlpzOl07ICRibGFjaz1bXiR3aGl0ZV07ICRibGFja3thfSA+IEE7IiwKKyAgICAgICAgICAgICJbXls6WnM6XV17YX0gPiBBOyIsCisKKyAgICAgICAgICAgIFJCVCwKKyAgICAgICAgICAgICIkYT1bOlpzOl07ICRiPVtbYS16XS0kYV07ICRie2F9ID4gQTsiLAorICAgICAgICAgICAgIltbYS16XS1bOlpzOl1de2F9ID4gQTsiLAorCisgICAgICAgICAgICBSQlQsCisgICAgICAgICAgICAiJGE9WzpaczpdOyAkYj1bJGEmW2Etel1dOyAkYnthfSA+IEE7IiwKKyAgICAgICAgICAgICJbWzpaczpdJlthLXpdXXthfSA+IEE7IiwKKworICAgICAgICAgICAgUkJULAorICAgICAgICAgICAgIiRhPVs6WnM6XTsgJGI9W3gkYV07ICRie2F9ID4gQTsiLAorICAgICAgICAgICAgIlt4WzpaczpdXXthfSA+IEE7IiwKKworICAgICAgICAgICAgUkJULAorICAgICAgICAgICAgIiRhY2NlbnRNaW51cyA9IFsgW1xcdTAzMDAtXFx1MDM0NV0gJiBbOk06XSAtIFtcXHUwMzM4XV0gOyIrCisgICAgICAgICAgICAiJG1hY3JvbiA9IFxcdTAzMDQgOyIrCisgICAgICAgICAgICAiJGV2b3dlbCA9IFthZWlvdXlBRUlPVVldIDsiKworICAgICAgICAgICAgIiRpb3Rhc3ViID0gXFx1MDM0NSA7IisKKyAgICAgICAgICAgICIoJGV2b3dlbCAkbWFjcm9uICRhY2NlbnRNaW51cyAqKSBpID4gfCAkMSAkaW90YXN1YiA7IiwKKyAgICAgICAgICAgICIoW0FFSU9VWWFlaW91eV1cXHUwMzA0W1tcXHUwMzAwLVxcdTAzNDVdJls6TTpdLVtcXHUwMzM4XV0qKWkgPiB8ICQxIFxcdTAzNDU7IiwKKyAgICAgICAgICAgIAorICAgICAgICAgICAgUkJULAorICAgICAgICAgICAgIihbQUVJT1VZYWVpb3V5XVxcdTAzMDRbWzpNOl0tW1xcdTAzMDRcXHUwMzQ1XV0qKWkgPiB8ICQxIFxcdTAzNDU7IiwKKyAgICAgICAgICAgICIoW0FFSU9VWWFlaW91eV1cXHUwMzA0W1s6TTpdLVtcXHUwMzA0XFx1MDM0NV1dKilpID4gfCAkMSBcXHUwMzQ1OyIsCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgZD0wOyBkIDwgREFUQS5sZW5ndGg7IGQrPTMpIHsKKyAgICAgICAgICAgIGlmIChEQVRBW2RdID09IFJCVCkgeworICAgICAgICAgICAgICAgIC8vIFRyYW5zbGl0ZXJhdG9yIHRlc3QKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJJRCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEQVRBW2QrMV0sIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICAgICAgICAgIGlmICh0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNyZWF0ZUZyb21SdWxlcyBmYWlsZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTdHJpbmcgcnVsZXMsIGVzY2FwZWRSdWxlczsKKyAgICAgICAgICAgICAgICBydWxlcyA9IHQudG9SdWxlcyhmYWxzZSk7CisgICAgICAgICAgICAgICAgZXNjYXBlZFJ1bGVzID0gdC50b1J1bGVzKHRydWUpOworICAgICAgICAgICAgICAgIFN0cmluZyBleHBSdWxlcyA9IFV0aWxpdHkudW5lc2NhcGUoREFUQVtkKzJdKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZXhwRXNjYXBlZFJ1bGVzID0gREFUQVtkKzJdOworICAgICAgICAgICAgICAgIGlmIChydWxlcy5lcXVhbHMoZXhwUnVsZXMpKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIERBVEFbZCsxXSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgPT4gIiArIFV0aWxpdHkuZXNjYXBlKHJ1bGVzKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBEQVRBW2QrMV0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAiID0+ICIgKyBVdGlsaXR5LmVzY2FwZShydWxlcyArICIsIGV4cCAiICsgZXhwUnVsZXMpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGVzY2FwZWRSdWxlcy5lcXVhbHMoZXhwRXNjYXBlZFJ1bGVzKSkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyBEQVRBW2QrMV0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAiID0+ICIgKyBlc2NhcGVkUnVsZXMpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgREFUQVtkKzFdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiA9PiAiICsgZXNjYXBlZFJ1bGVzICsgIiwgZXhwICIgKyBleHBFc2NhcGVkUnVsZXMpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBVbmljb2RlU2V0IHRlc3QKKyAgICAgICAgICAgICAgICBTdHJpbmcgcGF0ID0gREFUQVtkKzFdOworICAgICAgICAgICAgICAgIFN0cmluZyBleHBUb1BhdCA9IERBVEFbZCsyXTsKKyAgICAgICAgICAgICAgICBVbmljb2RlU2V0IHNldCA9IG5ldyBVbmljb2RlU2V0KHBhdCk7CisKKyAgICAgICAgICAgICAgICAvLyBBZGp1c3Qgc3BhY2luZyBldGMuIGFzIG5lY2Vzc2FyeS4KKyAgICAgICAgICAgICAgICBTdHJpbmcgdG9QYXQ7CisgICAgICAgICAgICAgICAgdG9QYXQgPSBzZXQudG9QYXR0ZXJuKHRydWUpOworICAgICAgICAgICAgICAgIGlmIChleHBUb1BhdC5lcXVhbHModG9QYXQpKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIHBhdCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgPT4gIiArIHRvUGF0KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIHBhdCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgPT4gIiArIFV0aWxpdHkuZXNjYXBlKHRvUGF0KSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIsIGV4cCAiICsgVXRpbGl0eS5lc2NhcGUocGF0KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvbnRleHQoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uIHBvcyA9IG5ldyBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbigwLCAyLCAwLCAxKTsgLy8gY3MgY2wgcyBsCisKKyAgICAgICAgZXhwZWN0KCJkZSA+IHg7IHtkfWUgPiB5OyIsCisgICAgICAgICAgICAgICAiZGUiLAorICAgICAgICAgICAgICAgInllIiwKKyAgICAgICAgICAgICAgIHBvcyk7CisKKyAgICAgICAgZXhwZWN0KCJhYntjfSA+IHo7IiwKKyAgICAgICAgICAgICAgICJ4YWRhYmRhYmN5IiwKKyAgICAgICAgICAgICAgICJ4YWRhYmRhYnp5Iik7CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDaGFyc1RvVW5pY29kZVN0cmluZyhTdHJpbmcgcykgeworICAgICAgICByZXR1cm4gVXRpbGl0eS51bmVzY2FwZShzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U3VwcGxlbWVudGFsKCkgeworCisgICAgICAgIGV4cGVjdChDaGFyc1RvVW5pY29kZVN0cmluZygiJGE9XFxVMDAwMTAzMDA7ICRzPVtcXFUwMDAxMDMwMC1cXFUwMDAxMDMyM107IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYSA+ICRhOyAkcyA+IGk7IiksCisgICAgICAgICAgICAgICBDaGFyc1RvVW5pY29kZVN0cmluZygiYWJcXFUwMDAxMDMwRngiKSwKKyAgICAgICAgICAgICAgIENoYXJzVG9Vbmljb2RlU3RyaW5nKCJcXFUwMDAxMDMwMGJpeCIpKTsKKworICAgICAgICBleHBlY3QoQ2hhcnNUb1VuaWNvZGVTdHJpbmcoIiRhPVthLXpcXFUwMDAxMDMwMC1cXFUwMDAxMDMyM107IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJGI9W0EtWlxcVTAwMDEwNDAwLVxcVTAwMDEwNDREXTsiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIoJGEpKCRiKSA+ICQyICQxOyIpLAorICAgICAgICAgICAgICAgQ2hhcnNUb1VuaWNvZGVTdHJpbmcoImFCXFxVMDAwMTAzMDBcXFUwMDAxMDQwMGNcXFUwMDAxMDQwMVxcVTAwMDEwMzAxRCIpLAorICAgICAgICAgICAgICAgQ2hhcnNUb1VuaWNvZGVTdHJpbmcoIkJhXFxVMDAwMTA0MDBcXFUwMDAxMDMwMFxcVTAwMDEwNDAxY0RcXFUwMDAxMDMwMSIpKTsKKworICAgICAgICAvLyBrfGF4XFxVMDAwMTAzMDB4bQorCisgICAgICAgIC8vIGt8YVxcVTAwMDEwNDAwXFxVMDAwMTAzMDB4bQorICAgICAgICAvLyBreXxcXFUwMDAxMDQwMFxcVTAwMDEwMzAweG0KKyAgICAgICAgLy8ga3lcXFUwMDAxMDQwMHxcXFUwMDAxMDMwMHhtCisKKyAgICAgICAgLy8ga3lcXFUwMDAxMDQwMHxcXFUwMDAxMDMwMFxcVTAwMDEwNDAwbQorICAgICAgICAvLyBreVxcVTAwMDEwNDAweXxcXFUwMDAxMDQwMG0KKyAgICAgICAgZXhwZWN0KENoYXJzVG9Vbmljb2RlU3RyaW5nKCIkYT1bYVxcVTAwMDEwMzAwLVxcVTAwMDEwMzIzXTsiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIkYSB7eH0gPiB8IEAgXFxVMDAwMTA0MDA7IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAieyRhfSBbXlxcdTAwMDAtXFx1RkZGRl0gPiB5OyIpLAorICAgICAgICAgICAgICAgQ2hhcnNUb1VuaWNvZGVTdHJpbmcoImtheFxcVTAwMDEwMzAweG0iKSwKKyAgICAgICAgICAgICAgIENoYXJzVG9Vbmljb2RlU3RyaW5nKCJreVxcVTAwMDEwNDAweVxcVTAwMDEwNDAwbSIpKTsKKworICAgICAgICBleHBlY3QoVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1OYW1lIiksCisgICAgICAgICAgICAgICBDaGFyc1RvVW5pY29kZVN0cmluZygiXFxVMDAwMTAzMzBcXFUwMDBFMDA2MVxcdTAwQTAiKSwKKyAgICAgICAgICAgICAgICJ7R09USElDIExFVFRFUiBBSFNBfXtUQUcgTEFUSU4gU01BTEwgTEVUVEVSIEF9e05PLUJSRUFLIFNQQUNFfSIpOworCisgICAgICAgIGV4cGVjdChUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiQW55LUhleC9Vbmljb2RlIiksCisgICAgICAgICAgICAgICBDaGFyc1RvVW5pY29kZVN0cmluZygiXFxVMDAwMTAzMzBcXFUwMDEwRkYwMFxcVTAwMEUwMDYxXFx1MDBBMCIpLAorICAgICAgICAgICAgICAgIlUrMTAzMzBVKzEwRkYwMFUrRTAwNjFVKzAwQTAiKTsKKyAgCisgICAgICAgIGV4cGVjdChUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiQW55LUhleC9DIiksCisgICAgICAgICAgICAgICBDaGFyc1RvVW5pY29kZVN0cmluZygiXFxVMDAwMTAzMzBcXFUwMDEwRkYwMFxcVTAwMEUwMDYxXFx1MDBBMCIpLAorICAgICAgICAgICAgICAgIlxcVTAwMDEwMzMwXFxVMDAxMEZGMDBcXFUwMDBFMDA2MVxcdTAwQTAiKTsKKworICAgICAgICBleHBlY3QoVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1IZXgvUGVybCIpLAorICAgICAgICAgICAgICAgQ2hhcnNUb1VuaWNvZGVTdHJpbmcoIlxcVTAwMDEwMzMwXFxVMDAxMEZGMDBcXFUwMDBFMDA2MVxcdTAwQTAiKSwKKyAgICAgICAgICAgICAgICJcXHh7MTAzMzB9XFx4ezEwRkYwMH1cXHh7RTAwNjF9XFx4e0EwfSIpOworCisgICAgICAgIGV4cGVjdChUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiQW55LUhleC9KYXZhIiksCisgICAgICAgICAgICAgICBDaGFyc1RvVW5pY29kZVN0cmluZygiXFxVMDAwMTAzMzBcXFUwMDEwRkYwMFxcVTAwMEUwMDYxXFx1MDBBMCIpLAorICAgICAgICAgICAgICAgIlxcdUQ4MDBcXHVERjMwXFx1REJGRlxcdURGMDBcXHVEQjQwXFx1REM2MVxcdTAwQTAiKTsKKworICAgICAgICBleHBlY3QoVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1IZXgvWE1MIiksCisgICAgICAgICAgICAgICBDaGFyc1RvVW5pY29kZVN0cmluZygiXFxVMDAwMTAzMzBcXFUwMDEwRkYwMFxcVTAwMEUwMDYxXFx1MDBBMCIpLAorICAgICAgICAgICAgICAgIiYjeDEwMzMwOyYjeDEwRkYwMDsmI3hFMDA2MTsmI3hBMDsiKTsKKworICAgICAgICBleHBlY3QoVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1IZXgvWE1MMTAiKSwKKyAgICAgICAgICAgICAgIENoYXJzVG9Vbmljb2RlU3RyaW5nKCJcXFUwMDAxMDMzMFxcVTAwMTBGRjAwXFxVMDAwRTAwNjFcXHUwMEEwIiksCisgICAgICAgICAgICAgICAiJiM2NjM1MjsmIzExMTM4NTY7JiM5MTc2MDE7JiMxNjA7Iik7CisKKyAgICAgICAgZXhwZWN0KFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJbXFxVMDAwRTAwMDAtXFxVMDAwRTBGRkZdIFJlbW92ZSIpLAorICAgICAgICAgICAgICAgQ2hhcnNUb1VuaWNvZGVTdHJpbmcoIlxcVTAwMDEwMzMwXFxVMDAxMEZGMDBcXFUwMDBFMDA2MVxcdTAwQTAiKSwKKyAgICAgICAgICAgICAgIENoYXJzVG9Vbmljb2RlU3RyaW5nKCJcXFUwMDAxMDMzMFxcVTAwMTBGRjAwXFx1MDBBMCIpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0UXVhbnRpZmllcigpIHsKKworICAgICAgICAvLyBNYWtlIHN1cmUgQCBpbiBhIHF1YW50aWZpZWQgYW50ZUNvbnRleHQgd29ya3MKKyAgICAgICAgZXhwZWN0KCJhKyB7Yn0gPiB8IEBAIGM7IEEgPiBhOyAoYSsgYykgPiAnKCcgJDEgJyknOyIsCisgICAgICAgICAgICAgICAiQUFBQUFiIiwKKyAgICAgICAgICAgICAgICJhYWEoYWFjKSIpOworCisgICAgICAgIC8vIE1ha2Ugc3VyZSBAIGluIGEgcXVhbnRpZmllZCBwb3N0Q29udGV4dCB3b3JrcworICAgICAgICBleHBlY3QoIntifSBhKyA+IGMgQEAgfDsgKGErKSA+ICcoJyAkMSAnKSc7IiwKKyAgICAgICAgICAgICAgICJiYWFhYWEiLAorICAgICAgICAgICAgICAgImNhYShhYWEpIik7CisKKyAgICAgICAgLy8gTWFrZSBzdXJlIEAgaW4gYSBxdWFudGlmaWVkIHBvc3RDb250ZXh0IHdpdGggc2VnIHJlZiB3b3JrcworICAgICAgICBleHBlY3QoInsoYil9IGErID4gJDEgQEAgfDsgKGErKSA+ICcoJyAkMSAnKSc7IiwKKyAgICAgICAgICAgICAgICJiYWFhYWEiLAorICAgICAgICAgICAgICAgImJhYShhYWEpIik7CisKKyAgICAgICAgLy8gTWFrZSBzdXJlIEAgcGFzdCBhbnRlIGNvbnRleHQgZG9lc24ndCBlbnRlciBhbnRlIGNvbnRleHQKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24gcG9zID0gbmV3IFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uKDAsIDUsIDMsIDUpOworICAgICAgICBleHBlY3QoImErIHtifSA+IHwgQEAgYzsgeCA+IHk7IChhKyBjKSA+ICcoJyAkMSAnKSc7IiwKKyAgICAgICAgICAgICAgICJ4eHhhYiIsCisgICAgICAgICAgICAgICAieHh4KGFjKSIsCisgICAgICAgICAgICAgICBwb3MpOworCisgICAgICAgIC8vIE1ha2Ugc3VyZSBAIHBhc3QgcG9zdCBjb250ZXh0IGRvZXNuJ3QgcGFzcyBsaW1pdAorICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBwb3MyID0gbmV3IFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uKDAsIDQsIDAsIDIpOworICAgICAgICBleHBlY3QoIntifSBhKyA+IGMgQEAgfDsgeCA+IHk7IGEgPiBBOyIsCisgICAgICAgICAgICAgICAiYmF4eCIsCisgICAgICAgICAgICAgICAiY2F4eCIsCisgICAgICAgICAgICAgICBwb3MyKTsKKworICAgICAgICAvLyBNYWtlIHN1cmUgQCBwYXN0IHBvc3QgY29udGV4dCBkb2Vzbid0IGVudGVyIHBvc3QgY29udGV4dAorICAgICAgICBleHBlY3QoIntifSBhKyA+IGMgQEAgfDsgeCA+IHk7IGEgPiBBOyIsCisgICAgICAgICAgICAgICAiYmF4eCIsCisgICAgICAgICAgICAgICAiY2F5eSIpOworCisgICAgICAgIGV4cGVjdCgiKGFiKT8gYyA+IGQ7IiwKKyAgICAgICAgICAgICAgICJjIGFiYyBhYmFiYyIsCisgICAgICAgICAgICAgICAiZCBkIGFiZCIpOworCisgICAgICAgIC8vIE5PVEU6IFRoZSAoYWIpKyB3aGVuIHJlZmVyZW5jZWQganVzdCB5aWVsZHMgYSBzaW5nbGUgImFiIiwKKyAgICAgICAgLy8gbm90IHRoZSBmdWxsIHNlcXVlbmNlIG9mIHRoZW0uICBUaGlzIGFjY29yZHMgd2l0aCBwZXJsIGJlaGF2aW9yLgorICAgICAgICBleHBlY3QoIihhYikrIHt4fSA+ICcoJyAkMSAnKSc7IiwKKyAgICAgICAgICAgICAgICJ4IGFieCBhYmFieHkiLAorICAgICAgICAgICAgICAgInggYWIoYWIpIGFiYWIoYWIpeSIpOworCisgICAgICAgIGV4cGVjdCgiYisgPiB4OyIsCisgICAgICAgICAgICAgICAiYWMgYWJjIGFiYmMgYWJiYmMiLAorICAgICAgICAgICAgICAgImFjIGF4YyBheGMgYXhjIik7CisKKyAgICAgICAgZXhwZWN0KCJbYWJjXSsgPiB4OyIsCisgICAgICAgICAgICAgICAicWFjIGFicmMgYWJiY3MgYWJ0YmJjIiwKKyAgICAgICAgICAgICAgICJxeCB4cnggeHMgeHR4Iik7CisKKyAgICAgICAgZXhwZWN0KCJxeyhhYikrfSA+IHg7IiwKKyAgICAgICAgICAgICAgICJxYSBxYWIgcWFiYSBxYWJhYmMgcWFiYSIsCisgICAgICAgICAgICAgICAicWEgcXggcXhhIHF4YyBxeGEiKTsKKworICAgICAgICBleHBlY3QoInEoYWIpKiA+IHg7IiwKKyAgICAgICAgICAgICAgICJxYSBxYWIgcWFiYSBxYWJhYmMiLAorICAgICAgICAgICAgICAgInhhIHggeGEgeGMiKTsKKworICAgICAgICAvLyBOT1RFOiBUaGUgKGFiKSsgd2hlbiByZWZlcmVuY2VkIGp1c3QgeWllbGRzIGEgc2luZ2xlICJhYiIsCisgICAgICAgIC8vIG5vdCB0aGUgZnVsbCBzZXF1ZW5jZSBvZiB0aGVtLiAgVGhpcyBhY2NvcmRzIHdpdGggcGVybCBiZWhhdmlvci4KKyAgICAgICAgZXhwZWN0KCJxKGFiKSogPiAnKCcgJDEgJyknOyIsCisgICAgICAgICAgICAgICAicWEgcWFiIHFhYmEgcWFiYWJjIiwKKyAgICAgICAgICAgICAgICIoKWEgKGFiKSAoYWIpYSAoYWIpYyIpOworCisgICAgICAgIC8vICdmb28nKyBhbmQgJ2ZvbycqIC0tIHRoZSBxdWFudGlmaWVyIHNob3VsZCBhcHBseSB0byB0aGUgZW50aXJlCisgICAgICAgIC8vIHF1b3RlZCBzdHJpbmcKKyAgICAgICAgZXhwZWN0KCInYWInKyA+IHg7IiwKKyAgICAgICAgICAgICAgICJiYiBhYiBhYmFiYiIsCisgICAgICAgICAgICAgICAiYmIgeCB4YiIpOworCisgICAgICAgIC8vICRmb28rIGFuZCAkZm9vKiAtLSB0aGUgcXVhbnRpZmllciBzaG91bGQgYXBwbHkgdG8gdGhlIGVudGlyZQorICAgICAgICAvLyB2YXJpYWJsZSByZWZlcmVuY2UKKyAgICAgICAgZXhwZWN0KCIkdmFyID0gYWI7ICR2YXIrID4geDsiLAorICAgICAgICAgICAgICAgImJiIGFiIGFiYWJiIiwKKyAgICAgICAgICAgICAgICJiYiB4IHhiIik7CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIFRlc3RGYWN0IGltcGxlbWVudHMgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSB7CisgICAgICAgIHN0YXRpYyBjbGFzcyBOYW1lYWJsZU51bGxUcmFucyBleHRlbmRzIE51bGxUcmFuc2xpdGVyYXRvciB7CisgICAgICAgICAgICBwdWJsaWMgTmFtZWFibGVOdWxsVHJhbnMoU3RyaW5nIGlkKSB7CisgICAgICAgICAgICAgICAgc2V0SUQoaWQpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgICAgICBTdHJpbmcgaWQ7CisgICAgICAgIHB1YmxpYyBUZXN0RmFjdChTdHJpbmcgdGhlSUQpIHsKKyAgICAgICAgICAgIGlkID0gdGhlSUQ7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBpZ25vcmVkSUQpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgTmFtZWFibGVOdWxsVHJhbnMoaWQpOworICAgICAgICB9CisgICAgfTsKKworICAgIHB1YmxpYyB2b2lkIFRlc3RTVFYoKSB7CisgICAgICAgIEVudW1lcmF0aW9uIGVzID0gVHJhbnNsaXRlcmF0b3IuZ2V0QXZhaWxhYmxlU291cmNlcygpOworICAgICAgICBmb3IgKGludCBpPTA7IGVzLmhhc01vcmVFbGVtZW50cygpOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBzb3VyY2UgPSAoU3RyaW5nKSBlcy5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgbG9nbG4oIiIgKyBpICsgIjogIiArIHNvdXJjZSk7CisgICAgICAgICAgICBpZiAoc291cmNlLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogZW1wdHkgc291cmNlIik7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBFbnVtZXJhdGlvbiBldCA9IFRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZVRhcmdldHMoc291cmNlKTsKKyAgICAgICAgICAgIGZvciAoaW50IGo9MDsgZXQuaGFzTW9yZUVsZW1lbnRzKCk7ICsraikgeworICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnZXQgPSAoU3RyaW5nKSBldC5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgICAgIGxvZ2xuKCIgIiArIGogKyAiOiAiICsgdGFyZ2V0KTsKKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Lmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGVtcHR5IHRhcmdldCIpOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgRW51bWVyYXRpb24gZXYgPSBUcmFuc2xpdGVyYXRvci5nZXRBdmFpbGFibGVWYXJpYW50cyhzb3VyY2UsIHRhcmdldCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaz0wOyBldi5oYXNNb3JlRWxlbWVudHMoKTsgKytrKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YXJpYW50ID0gKFN0cmluZykgZXYubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhcmlhbnQubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIiAgIiArIGsgKyAiOiA8ZW1wdHk+Iik7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiICAiICsgayArICI6ICIgKyB2YXJpYW50KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFRlc3QgcmVnaXN0cmF0aW9uCisgICAgICAgIFN0cmluZ1tdIElEUyA9IHsgIkZpZXJ1d2VyIiwgIlNlb3JpZGYtU3dlb3JpZSIsICJPZXdvaXItT3dlcmkvVnNpZSIgfTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPDM7ICsraSkgeworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJGYWN0b3J5KElEU1tpXSwgbmV3IFRlc3RGYWN0KElEU1tpXSkpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoSURTW2ldKTsKKyAgICAgICAgICAgICAgICBpZiAodC5nZXRJRCgpLmVxdWFscyhJRFNbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogUmVnaXN0cmF0aW9uL2NyZWF0aW9uIHN1Y2NlZWRlZCBmb3IgSUQgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIElEU1tpXSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFJlZ2lzdHJhdGlvbiBvZiBJRCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgSURTW2ldICsgIiBjcmVhdGVzIElEICIgKyB0LmdldElEKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci51bnJlZ2lzdGVyKElEU1tpXSk7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKElEU1tpXSk7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBVbnJlZ2lzdHJhdGlvbiBmYWlsZWQgZm9yIElEICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBJRFNbaV0gKyAiOyBzdGlsbCByZWNlaXZpbmcgSUQgIiArIHQuZ2V0SUQoKSk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUyKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIEdvb2Q7IHRoaXMgaXMgd2hhdCB3ZSBleHBlY3QKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIk9rOyBVbnJlZ2lzdGVyZWQgIiArIElEU1tpXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogUmVnaXN0cmF0aW9uL2NyZWF0aW9uIGZhaWxlZCBmb3IgSUQgIiArCisgICAgICAgICAgICAgICAgICAgICAgSURTW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgaW52ZXJzZSBvZiBHcmVlay1MYXRpbjsgVGl0bGUoKQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDb21wb3VuZEludmVyc2UoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZQorICAgICAgICAgICAgKCJHcmVlay1MYXRpbjsgVGl0bGUoKSIsIFRyYW5zbGl0ZXJhdG9yLlJFVkVSU0UpOworICAgICAgICBpZiAodCA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogY3JlYXRlSW5zdGFuY2UiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgZXhwID0gIihUaXRsZSk7TGF0aW4tR3JlZWsiOworICAgICAgICBpZiAodC5nZXRJRCgpLmVxdWFscyhleHApKSB7CisgICAgICAgICAgICBsb2dsbigiT2s6IGludmVyc2Ugb2YgXCJHcmVlay1MYXRpbjsgVGl0bGUoKVwiIGlzIFwiIiArCisgICAgICAgICAgICAgICAgICB0LmdldElEKCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGludmVyc2Ugb2YgXCJHcmVlay1MYXRpbjsgVGl0bGUoKVwiIGlzIFwiIiArCisgICAgICAgICAgICAgICAgICB0LmdldElEKCkgKyAiXCIsIGV4cGVjdGVkIFwiIiArIGV4cCArICJcIiIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBORkQgY2hhaW5pbmcgd2l0aCBSQlQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TkZEQ2hhaW5SQlQoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRFU1QiLCAiOjpORkQ7IGFhID4gUTsgYSA+IHE7IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgbG9nbG4odC50b1J1bGVzKHRydWUpKTsKKyAgICAgICAgZXhwZWN0KHQsICJhYSIsICJRIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW52ZXJzZSBvZiAiTnVsbCIgc2hvdWxkIGJlICJOdWxsIi4gKEoyMSkKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TnVsbEludmVyc2UoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTnVsbCIpOworICAgICAgICBUcmFuc2xpdGVyYXRvciB1ID0gdC5nZXRJbnZlcnNlKCk7CisgICAgICAgIGlmICghdS5nZXRJRCgpLmVxdWFscygiTnVsbCIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogSW52ZXJzZSBvZiBOdWxsIHNob3VsZCBiZSBOdWxsIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVjayBJRCBvZiBpbnZlcnNlIG9mIGFsaWFzLiAoSjIyKQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RBbGlhc0ludmVyc2VJRCgpIHsKKyAgICAgICAgU3RyaW5nIElEID0gIkxhdGluLUhhbmd1bCI7IC8vIFRoaXMgc2hvdWxkIGJlIGFueSBhbGlhcyBJRCB3aXRoIGFuIGludmVyc2UKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKElEKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdSA9IHQuZ2V0SW52ZXJzZSgpOworICAgICAgICBTdHJpbmcgZXhwID0gIkhhbmd1bC1MYXRpbiI7CisgICAgICAgIFN0cmluZyBnb3QgPSB1LmdldElEKCk7CisgICAgICAgIGlmICghZ290LmVxdWFscyhleHApKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogSW52ZXJzZSBvZiAiICsgSUQgKyAiIGlzICIgKyBnb3QgKworICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQgIiArIGV4cCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IElEcyBvZiBpbnZlcnNlcyBvZiBjb21wb3VuZCB0cmFuc2xpdGVyYXRvcnMuIChKMjApCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENvbXBvdW5kSW52ZXJzZUlEKCkgeworICAgICAgICBTdHJpbmcgSUQgPSAiTGF0aW4tSmFtbztORkMoTkZEKSI7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShJRCk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHUgPSB0LmdldEludmVyc2UoKTsKKyAgICAgICAgU3RyaW5nIGV4cCA9ICJORkQoTkZDKTtKYW1vLUxhdGluIjsKKyAgICAgICAgU3RyaW5nIGdvdCA9IHUuZ2V0SUQoKTsKKyAgICAgICAgaWYgKCFnb3QuZXF1YWxzKGV4cCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBJbnZlcnNlIG9mICIgKyBJRCArICIgaXMgIiArIGdvdCArCisgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCAiICsgZXhwKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdW5kZWZpbmVkIHZhcmlhYmxlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RVbmRlZmluZWRWYXJpYWJsZSgpIHsKKyAgICAgICAgU3RyaW5nIHJ1bGUgPSAiJGluaXRpYWwgfSBhIDw+IFx1MTE2MTsiOworICAgICAgICB0cnkgeworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IG5ldyBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvcigiPElEPiIsIHJ1bGUpOworICAgICAgICAgICAgdCA9IG51bGw7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbigiT0s6IEdvdCBleGNlcHRpb24gZm9yICIgKyBydWxlICsgIiwgYXMgZXhwZWN0ZWQ6ICIgKworICAgICAgICAgICAgICAgICAgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGVycmxuKCJGYWlsOiBib2d1cyBydWxlICIgKyBydWxlICsgIiBjb21waWxlZCB3aXRob3V0IGVycm9yIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBlbXB0eSBjb250ZXh0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RFbXB0eUNvbnRleHQoKSB7CisgICAgICAgIGV4cGVjdCgiIHsgYSB9ID4gYjsiLCAieGF5IGEgIiwgInhieSBiICIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgY29tcG91bmQgZmlsdGVyIElEIHN5bnRheAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDb21wb3VuZEZpbHRlcklEKCkgeworICAgICAgICBTdHJpbmdbXSBEQVRBID0geworICAgICAgICAgICAgLy8gQ29sLiAxID0gSUQgb3IgcnVsZSBzZXQgKGxhdHRlciBtdXN0IHN0YXJ0IHdpdGggIykKKworICAgICAgICAgICAgLy8gPSBjb2x1bW5zID4gMSBhcmUgbnVsbCBpZiBleHBlY3QgY29sLiAxIHRvIGJlIGlsbGVnYWwgPQorCisgICAgICAgICAgICAvLyBDb2wuIDIgPSBkaXJlY3Rpb24sICJGLi4uIiBvciAiUi4uLiIKKyAgICAgICAgICAgIC8vIENvbC4gMyA9IHNvdXJjZSBzdHJpbmcKKyAgICAgICAgICAgIC8vIENvbC4gNCA9IGV4cCByZXN1bHQKKworICAgICAgICAgICAgIlthYmNdOyBbYWJjXSIsIG51bGwsIG51bGwsIG51bGwsIC8vIG11bHRpcGxlIGZpbHRlcnMKKyAgICAgICAgICAgICJMYXRpbi1HcmVlazsgW2FiY107IiwgbnVsbCwgbnVsbCwgbnVsbCwgLy8gbWlzcGxhY2VkIGZpbHRlcgorICAgICAgICAgICAgIltiXTsgTGF0aW4tR3JlZWs7IFVwcGVyOyAoW3h5el0pIiwgIkYiLCAiYWJjIiwgImFcdTAzOTJjIiwKKyAgICAgICAgICAgICJbYl07IChMb3dlcik7IExhdGluLUdyZWVrOyBVcHBlcigpOyAoW1x1MDM5Ml0pIiwgIlIiLCAiXHUwMzkxXHUwMzkyXHUwMzkzIiwgIlx1MDM5MWJcdTAzOTMiLAorICAgICAgICAgICAgIiNcbjo6W2JdOyA6OkxhdGluLUdyZWVrOyA6OlVwcGVyOyA6OihbeHl6XSk7IiwgIkYiLCAiYWJjIiwgImFcdTAzOTJjIiwKKyAgICAgICAgICAgICIjXG46OltiXTsgOjooTG93ZXIpOyA6OkxhdGluLUdyZWVrOyA6OlVwcGVyKCk7IDo6KFtcdTAzOTJdKTsiLCAiUiIsICJcdTAzOTFcdTAzOTJcdTAzOTMiLCAiXHUwMzkxYlx1MDM5MyIsCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz00KSB7CisgICAgICAgICAgICBTdHJpbmcgaWQgPSBEQVRBW2ldOworICAgICAgICAgICAgaW50IGRpcmVjdGlvbiA9IChEQVRBW2krMV0gIT0gbnVsbCAmJiBEQVRBW2krMV0uY2hhckF0KDApID09ICdSJykgPworICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLlJFVkVSU0UgOiBUcmFuc2xpdGVyYXRvci5GT1JXQVJEOworICAgICAgICAgICAgU3RyaW5nIHNvdXJjZSA9IERBVEFbaSsyXTsKKyAgICAgICAgICAgIFN0cmluZyBleHAgPSBEQVRBW2krM107CisgICAgICAgICAgICBib29sZWFuIGV4cE9rID0gKERBVEFbaSsxXSAhPSBudWxsKTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBudWxsOworICAgICAgICAgICAgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUgPSBudWxsOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpZiAoaWQuY2hhckF0KDApID09ICcjJykgeworICAgICAgICAgICAgICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJJRCIsIGlkLCBkaXJlY3Rpb24pOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShpZCwgZGlyZWN0aW9uKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZWUpIHsKKyAgICAgICAgICAgICAgICBlID0gZWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBib29sZWFuIG9rID0gKHQgIT0gbnVsbCAmJiBlID09IG51bGwpOworICAgICAgICAgICAgaWYgKG9rID09IGV4cE9rKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgaWQgKyAiID0+ICIgKyB0ICsKKyAgICAgICAgICAgICAgICAgICAgICAoZSAhPSBudWxsID8gKCIsICIgKyBlLmdldE1lc3NhZ2UoKSkgOiAiIikpOworICAgICAgICAgICAgICAgIGlmIChzb3VyY2UgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBleHBlY3QodCwgc291cmNlLCBleHApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBpZCArICIgPT4gIiArIHQgKworICAgICAgICAgICAgICAgICAgICAgIChlICE9IG51bGwgPyAoIiwgIiArIGUuZ2V0TWVzc2FnZSgpKSA6ICIiKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IG5ldyBwcm9wZXJ0eSBzZXQgc3ludGF4CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFByb3BlcnR5U2V0KCkgeworICAgICAgICBleHBlY3QoImE+QTsgXFxwe0x1fT54OyBcXHB7QW55fT55OyIsICJhYmNERUYiLCAiQXl5eHh4Iik7CisgICAgICAgIGV4cGVjdCgiKC4rKT4nWycgJDEgJ10nOyIsICIgYSBzdGl0Y2ggXG4gaW4gdGltZSBcciBzYXZlcyA5IiwKKyAgICAgICAgICAgICAgICJbIGEgc3RpdGNoIF1cblsgaW4gdGltZSBdXHJbIHNhdmVzIDldIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB2YXJpb3VzIGZhaWx1cmUgcG9pbnRzIG9mIHRoZSBuZXcgMi4wIGVuZ2luZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TmV3RW5naW5lKCkgeworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkxhdGluLUhpcmFnYW5hIik7CisgICAgICAgIC8vIEthdGFrYW5hIHNob3VsZCBiZSB1bnRvdWNoZWQKKyAgICAgICAgZXhwZWN0KHQsICJhXHUzMDQyXHUzMEEyIiwgIlx1MzA0Mlx1MzA0Mlx1MzBBMiIpOworCisgICAgICAgIGlmICh0cnVlKSB7CisgICAgICAgICAgICAvLyBUaGlzIHRlc3Qgd2lsbCBvbmx5IHdvcmsgaWYgVHJhbnNsaXRlcmF0b3IuUk9MTEJBQ0sgaXMKKyAgICAgICAgICAgIC8vIHRydWUuICBPdGhlcndpc2UsIHRoaXMgdGVzdCB3aWxsIGZhaWwsIHJldmVhbGluZyBhCisgICAgICAgICAgICAvLyBsaW1pdGF0aW9uIG9mIGdsb2JhbCBmaWx0ZXJzIGluIGluY3JlbWVudGFsIG1vZGUuCisKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGEgPQorICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiYSIsICJhID4gQTsiLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIEEgPQorICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiQSIsICJBID4gYjsiLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgYXJyYXlbXSA9IG5ldyBUcmFuc2xpdGVyYXRvcltdIHsKKyAgICAgICAgICAgICAgICBhLAorICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJORkQiKSwKKyAgICAgICAgICAgICAgICBBIH07CisKKyAgICAgICAgICAgIHQgPSBuZXcgQ29tcG91bmRUcmFuc2xpdGVyYXRvcihhcnJheSwgbmV3IFVuaWNvZGVTZXQoIls6TGw6XSIpKTsKKworICAgICAgICAgICAgZXhwZWN0KHQsICJhQWFBIiwgImJBYkEiKTsKKyAgICAgICAgfQorCisgICAgICAgIGV4cGVjdCgiJHNtb290aCA9IHg7ICRtYWNyb24gPSBxOyBbOl5MOl0geyAoW2FlaW91eUFFSU9VWV0gJG1hY3Jvbj8pIH0gW15hZWlvdXlBRUlPVVkkc21vb3RoJG1hY3Jvbl0gPiB8ICQxICRzbW9vdGggOyIsCisgICAgICAgICAgICAgICAiYSIsCisgICAgICAgICAgICAgICAiYXgiKTsKKworICAgICAgICBTdHJpbmcgZ3IgPQorICAgICAgICAgICAgIiRkZG90ID0gXHUwMzA4IDsiICsKKyAgICAgICAgICAgICIkbGNndm93ZWwgPSBbXHUwM2IxXHUwM2I1XHUwM2I3XHUwM2I5XHUwM2JmXHUwM2M1XHUwM2M5XSA7IiArCisgICAgICAgICAgICAiJHJvdWdoID0gXHUwMzE0IDsiICsKKyAgICAgICAgICAgICIoJGxjZ3Zvd2VsKyAkZGRvdD8pICRyb3VnaCA+IGggfCAkMSA7IiArCisgICAgICAgICAgICAiXHUwM2IxIDw+IGEgOyIgKworICAgICAgICAgICAgIiRyb3VnaCA8PiBoIDsiOworCisgICAgICAgIGV4cGVjdChnciwgIlx1MDNCMVx1MDMxNCIsICJoYSIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgcXVhbnRpZmllZCBzZWdtZW50IGJlaGF2aW9yLiAgV2Ugd2FudDoKKyAgICAgKiAoW2FiY10pKyA+IHggJDEgeDsgYXBwbGllZCB0byAiY2JhIiBwcm9kdWNlcyAieGF4IgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RRdWFudGlmaWVkU2VnbWVudCgpIHsKKyAgICAgICAgLy8gVGhlIG5vcm1hbCBjYXNlCisgICAgICAgIGV4cGVjdCgiKFthYmNdKykgPiB4ICQxIHg7IiwgImNiYSIsICJ4Y2JheCIpOworCisgICAgICAgIC8vIFRoZSB0cmlja3kgY2FzZTsgdGhlIHF1YW50aWZpZXIgaXMgYXJvdW5kIHRoZSBzZWdtZW50CisgICAgICAgIGV4cGVjdCgiKFthYmNdKSsgPiB4ICQxIHg7IiwgImNiYSIsICJ4YXgiKTsKKworICAgICAgICAvLyBUcmlja3kgY2FzZSBpbiByZXZlcnNlIGRpcmVjdGlvbgorICAgICAgICBleHBlY3QoIihbYWJjXSkrIHsgcSA+IHggJDEgeDsiLCAiY2JhcSIsICJjYmF4YXgiKTsKKworICAgICAgICAvLyBDaGVjayBwb3N0LWNvbnRleHQgc2VnbWVudAorICAgICAgICBleHBlY3QoIntxfSAoW2EtZF0pKyA+ICcoJyAkMSAnKSc7IiwgImRkcWNiYSIsICJkZChhKWNiYSIpOworCisgICAgICAgIC8vIFRlc3QgdG9SdWxlL3RvUGF0dGVybiBmb3Igbm9uLXF1YW50aWZpZWQgc2VnbWVudC4KKyAgICAgICAgLy8gQ2FyZWZ1bCB3aXRoIHNwYWNpbmcgaGVyZS4KKyAgICAgICAgU3RyaW5nIHIgPSAiKFthLWNdKXtxfSA+IHggJDEgeDsiOworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJJRCIsIHIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBTdHJpbmcgcnIgPSB0LnRvUnVsZXModHJ1ZSk7CisgICAgICAgIGlmICghci5lcXVhbHMocnIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogXCIiICsgciArICJcIiB4IHRvUnVsZXMoKSA9PiBcIiIgKyByciArICJcIiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nbG4oIk9rOiBcIiIgKyByICsgIlwiIHggdG9SdWxlcygpID0+IFwiIiArIHJyICsgIlwiIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBUZXN0IHRvUnVsZS90b1BhdHRlcm4gZm9yIHF1YW50aWZpZWQgc2VnbWVudC4KKyAgICAgICAgLy8gQ2FyZWZ1bCB3aXRoIHNwYWNpbmcgaGVyZS4KKyAgICAgICAgciA9ICIoW2EtY10pK3txfSA+IHggJDEgeDsiOworICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJJRCIsIHIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICByciA9IHQudG9SdWxlcyh0cnVlKTsKKyAgICAgICAgaWYgKCFyLmVxdWFscyhycikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBcIiIgKyByICsgIlwiIHggdG9SdWxlcygpID0+IFwiIiArIHJyICsgIlwiIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2dsbigiT2s6IFwiIiArIHIgKyAiXCIgeCB0b1J1bGVzKCkgPT4gXCIiICsgcnIgKyAiXCIiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIFJhbSdzIHRlc3RzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgLyogdGhpcyB0ZXN0IHBlcmZvcm1zICB0ZXN0IG9mIHJ1bGVzIGluIElTTyAxNTkxNSAqLworICAgIHB1YmxpYyB2b2lkICBUZXN0RGV2YW5hZ2FyaUxhdGluUlQoKXsKKyAgICAgICAgU3RyaW5nW10gIHNvdXJjZSA9IHsKKyAgICAgICAgICAgICJiaFx1MDEwMXJhdGEiLAorICAgICAgICAgICAgImtyYSIsCisgICAgICAgICAgICAia1x1MUU2M2EiLAorICAgICAgICAgICAgImtocmEiLAorICAgICAgICAgICAgImdyYSIsCisgICAgICAgICAgICAiXHUxRTQ1cmEiLAorICAgICAgICAgICAgImNyYSIsCisgICAgICAgICAgICAiY2hyYSIsCisgICAgICAgICAgICAialx1MDBGMWEiLAorICAgICAgICAgICAgImpocmEiLAorICAgICAgICAgICAgIlx1MDBGMXJhIiwKKyAgICAgICAgICAgICJcdTFFNkR5YSIsCisgICAgICAgICAgICAiXHUxRTZEaHJhIiwKKyAgICAgICAgICAgICJcdTFFMER5YSIsCisgICAgICAgIC8vInJcdTAzMjN5YSIsIC8vIFx1MDk1YyBpcyBub3QgdmFsaWQgaW4gRGV2YW5hZ2FyaQorICAgICAgICAgICAgIlx1MUUwRGh5YSIsCisgICAgICAgICAgICAiXHUxRTVCaHJhIiwKKyAgICAgICAgICAgICJcdTFFNDdyYSIsCisgICAgICAgICAgICAidHRhIiwKKyAgICAgICAgICAgICJ0aHJhIiwKKyAgICAgICAgICAgICJkZGEiLAorICAgICAgICAgICAgImRocmEiLAorICAgICAgICAgICAgIm5uYSIsCisgICAgICAgICAgICAicHJhIiwKKyAgICAgICAgICAgICJwaHJhIiwKKyAgICAgICAgICAgICJicmEiLAorICAgICAgICAgICAgImJocmEiLAorICAgICAgICAgICAgIm1yYSIsCisgICAgICAgICAgICAiXHUxRTQ5cmEiLAorICAgICAgICAvLyJsXHUwMzMxcmEiLAorICAgICAgICAgICAgInlyYSIsCisgICAgICAgICAgICAiXHUxRThGcmEiLAorICAgICAgICAvLyJsLSIsCisgICAgICAgICAgICAidnJhIiwKKyAgICAgICAgICAgICJcdTAxNUJyYSIsCisgICAgICAgICAgICAiXHUxRTYzcmEiLAorICAgICAgICAgICAgInNyYSIsCisgICAgICAgICAgICAiaG1hIiwKKyAgICAgICAgICAgICJcdTFFNkRcdTFFNkRhIiwKKyAgICAgICAgICAgICJcdTFFNkRcdTFFNkRoYSIsCisgICAgICAgICAgICAiXHUxRTZEaFx1MUU2RGhhIiwKKyAgICAgICAgICAgICJcdTFFMERcdTFFMERhIiwKKyAgICAgICAgICAgICJcdTFFMERcdTFFMERoYSIsCisgICAgICAgICAgICAiXHUxRTZEeWEiLAorICAgICAgICAgICAgIlx1MUU2RGh5YSIsCisgICAgICAgICAgICAiXHUxRTBEeWEiLAorICAgICAgICAgICAgIlx1MUUwRGh5YSIsCisgICAgICAgICAgICAvLyBOb3Qgcm91bmR0cmlwcGFibGUgLS0KKyAgICAgICAgICAgIC8vIFx1MDkzOVx1MDk0ZFx1MDk0ZFx1MDkyRSAgLSBobWEKKyAgICAgICAgICAgIC8vIFx1MDkzOVx1MDk0ZFx1MDkyRSAgICAgICAgIC0gaG1hCisgICAgICAgICAgICAvLyBDaGFyc1RvVW5pY29kZVN0cmluZygiaG1hIiksCisgICAgICAgICAgICAiaHlhIiwKKyAgICAgICAgICAgICJcdTAxNUJyXHUwMzI1IiwKKyAgICAgICAgICAgICJcdTAxNUJjYSIsCisgICAgICAgICAgICAiXHUwMTE1IiwKKyAgICAgICAgICAgICJzYW5cdTAzMDRqXHUwMTJCYiBzXHUwMTEzbmFndXB0YSIsCisgICAgICAgICAgICAiXHUwMTAxbmFuZCB2YWRkaXJcdTAxMDFqdSIsCisgICAgICAgIH07CisgICAgICAgIFN0cmluZ1tdICBleHBlY3RlZCA9IHsKKyAgICAgICAgICAgICJcdTA5MkRcdTA5M0VcdTA5MzBcdTA5MjQiLCAgICAvKiBiaGFcdTAzMDRyYXRhICovCisgICAgICAgICAgICAiXHUwOTE1XHUwOTREXHUwOTMwIiwgICAgICAgICAgLyoga3JhICAgICAgICAgKi8KKyAgICAgICAgICAgICJcdTA5MTVcdTA5NERcdTA5MzciLCAgICAgICAgICAvKiBrc1x1MDMyM2EgICovCisgICAgICAgICAgICAiXHUwOTE2XHUwOTREXHUwOTMwIiwgICAgICAgICAgLyoga2hyYSAgICAgICAgKi8KKyAgICAgICAgICAgICJcdTA5MTdcdTA5NERcdTA5MzAiLCAgICAgICAgICAvKiBncmEgICAgICAgICAqLworICAgICAgICAgICAgIlx1MDkxOVx1MDk0RFx1MDkzMCIsICAgICAgICAgIC8qIG5cdTAzMDdyYSAgKi8KKyAgICAgICAgICAgICJcdTA5MUFcdTA5NERcdTA5MzAiLCAgICAgICAgICAvKiBjcmEgICAgICAgICAqLworICAgICAgICAgICAgIlx1MDkxQlx1MDk0RFx1MDkzMCIsICAgICAgICAgIC8qIGNocmEgICAgICAgICovCisgICAgICAgICAgICAiXHUwOTFDXHUwOTREXHUwOTFFIiwgICAgICAgICAgLyogam5cdTAzMDNhICAqLworICAgICAgICAgICAgIlx1MDkxRFx1MDk0RFx1MDkzMCIsICAgICAgICAgIC8qIGpocmEgICAgICAgICovCisgICAgICAgICAgICAiXHUwOTFFXHUwOTREXHUwOTMwIiwgICAgICAgICAgLyogblx1MDMwM3JhICAqLworICAgICAgICAgICAgIlx1MDkxRlx1MDk0RFx1MDkyRiIsICAgICAgICAgIC8qIHRcdTAzMjN5YSAgKi8KKyAgICAgICAgICAgICJcdTA5MjBcdTA5NERcdTA5MzAiLCAgICAgICAgICAvKiB0XHUwMzIzaHJhICovCisgICAgICAgICAgICAiXHUwOTIxXHUwOTREXHUwOTJGIiwgICAgICAgICAgLyogZFx1MDMyM3lhICAqLworICAgICAgICAvLyJcdTA5NUNcdTA5NERcdTA5MkYiLCAgICAgICAgICAvKiByXHUwMzIzeWEgICovIC8vIFx1MDk1YyBpcyBub3QgdmFsaWQgaW4gRGV2YW5hZ2FyaQorICAgICAgICAgICAgIlx1MDkyMlx1MDk0RFx1MDkyRiIsICAgICAgICAgIC8qIGRcdTAzMjNoeWEgKi8KKyAgICAgICAgICAgICJcdTA5MjJcdTA5M0NcdTA5NERcdTA5MzAiLCAgICAvKiByXHUwMzIzaHJhICovCisgICAgICAgICAgICAiXHUwOTIzXHUwOTREXHUwOTMwIiwgICAgICAgICAgLyogblx1MDMyM3JhICAqLworICAgICAgICAgICAgIlx1MDkyNFx1MDk0RFx1MDkyNCIsICAgICAgICAgIC8qIHR0YSAgICAgICAgICovCisgICAgICAgICAgICAiXHUwOTI1XHUwOTREXHUwOTMwIiwgICAgICAgICAgLyogdGhyYSAgICAgICAgKi8KKyAgICAgICAgICAgICJcdTA5MjZcdTA5NERcdTA5MjYiLCAgICAgICAgICAvKiBkZGEgICAgICAgICAqLworICAgICAgICAgICAgIlx1MDkyN1x1MDk0RFx1MDkzMCIsICAgICAgICAgIC8qIGRocmEgICAgICAgICovCisgICAgICAgICAgICAiXHUwOTI4XHUwOTREXHUwOTI4IiwgICAgICAgICAgLyogbm5hICAgICAgICAgKi8KKyAgICAgICAgICAgICJcdTA5MkFcdTA5NERcdTA5MzAiLCAgICAgICAgICAvKiBwcmEgICAgICAgICAqLworICAgICAgICAgICAgIlx1MDkyQlx1MDk0RFx1MDkzMCIsICAgICAgICAgIC8qIHBocmEgICAgICAgICovCisgICAgICAgICAgICAiXHUwOTJDXHUwOTREXHUwOTMwIiwgICAgICAgICAgLyogYnJhICAgICAgICAgKi8KKyAgICAgICAgICAgICJcdTA5MkRcdTA5NERcdTA5MzAiLCAgICAgICAgICAvKiBiaHJhICAgICAgICAqLworICAgICAgICAgICAgIlx1MDkyRVx1MDk0RFx1MDkzMCIsICAgICAgICAgIC8qIG1yYSAgICAgICAgICovCisgICAgICAgICAgICAiXHUwOTI5XHUwOTREXHUwOTMwIiwgICAgICAgICAgLyogblx1MDMzMXJhICAqLworICAgICAgICAvLyJcdTA5MzRcdTA5NERcdTA5MzAiLCAgICAgICAgICAvKiBsXHUwMzMxcmEgICovCisgICAgICAgICAgICAiXHUwOTJGXHUwOTREXHUwOTMwIiwgICAgICAgICAgLyogeXJhICAgICAgICAgKi8KKyAgICAgICAgICAgICJcdTA5MkZcdTA5M0NcdTA5NERcdTA5MzAiLCAgICAvKiB5XHUwMzA3cmEgICovCisgICAgICAgIC8vImwtIiwKKyAgICAgICAgICAgICJcdTA5MzVcdTA5NERcdTA5MzAiLCAgICAgICAgICAvKiB2cmEgICAgICAgICAqLworICAgICAgICAgICAgIlx1MDkzNlx1MDk0RFx1MDkzMCIsICAgICAgICAgIC8qIHNcdTAzMDFyYSAgKi8KKyAgICAgICAgICAgICJcdTA5MzdcdTA5NERcdTA5MzAiLCAgICAgICAgICAvKiBzXHUwMzIzcmEgICovCisgICAgICAgICAgICAiXHUwOTM4XHUwOTREXHUwOTMwIiwgICAgICAgICAgLyogc3JhICAgICAgICAgKi8KKyAgICAgICAgICAgICJcdTA5MzlcdTA5NGRcdTA5MkUiLCAgICAgICAgICAvKiBobWEgICAgICAgICAqLworICAgICAgICAgICAgIlx1MDkxRlx1MDk0RFx1MDkxRiIsICAgICAgICAgIC8qIHRcdTAzMjN0XHUwMzIzYSAgKi8KKyAgICAgICAgICAgICJcdTA5MUZcdTA5NERcdTA5MjAiLCAgICAgICAgICAvKiB0XHUwMzIzdFx1MDMyM2hhICovCisgICAgICAgICAgICAiXHUwOTIwXHUwOTREXHUwOTIwIiwgICAgICAgICAgLyogdFx1MDMyM2h0XHUwMzIzaGEqLworICAgICAgICAgICAgIlx1MDkyMVx1MDk0RFx1MDkyMSIsICAgICAgICAgIC8qIGRcdTAzMjNkXHUwMzIzYSAgKi8KKyAgICAgICAgICAgICJcdTA5MjFcdTA5NERcdTA5MjIiLCAgICAgICAgICAvKiBkXHUwMzIzZFx1MDMyM2hhICovCisgICAgICAgICAgICAiXHUwOTFGXHUwOTREXHUwOTJGIiwgICAgICAgICAgLyogdFx1MDMyM3lhICAqLworICAgICAgICAgICAgIlx1MDkyMFx1MDk0RFx1MDkyRiIsICAgICAgICAgIC8qIHRcdTAzMjNoeWEgKi8KKyAgICAgICAgICAgICJcdTA5MjFcdTA5NERcdTA5MkYiLCAgICAgICAgICAvKiBkXHUwMzIzeWEgICovCisgICAgICAgICAgICAiXHUwOTIyXHUwOTREXHUwOTJGIiwgICAgICAgICAgLyogZFx1MDMyM2h5YSAqLworICAgICAgICAvLyAiaG1hIiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogaG1hICAgICAgICAgKi8KKyAgICAgICAgICAgICJcdTA5MzlcdTA5NERcdTA5MkYiLCAgICAgICAgICAvKiBoeWEgICAgICAgICAqLworICAgICAgICAgICAgIlx1MDkzNlx1MDk0MyIsICAgICAgICAgICAgICAgIC8qIHNcdTAzMDFyXHUwMzI1YSAgKi8KKyAgICAgICAgICAgICJcdTA5MzZcdTA5NERcdTA5MUEiLCAgICAgICAgICAvKiBzXHUwMzAxY2EgICovCisgICAgICAgICAgICAiXHUwOTBkIiwgICAgICAgICAgICAgICAgICAgICAgLyogZVx1MDMwNiAgICAqLworICAgICAgICAgICAgIlx1MDkzOFx1MDkwMlx1MDkxQ1x1MDk0MFx1MDkyQ1x1MDk0RCBcdTA5MzhcdTA5NDdcdTA5MjhcdTA5MTdcdTA5NDFcdTA5MkFcdTA5NERcdTA5MjQiLAorICAgICAgICAgICAgIlx1MDkwNlx1MDkyOFx1MDkwMlx1MDkyNlx1MDk0RCBcdTA5MzVcdTA5MjZcdTA5NERcdTA5MjZcdTA5M0ZcdTA5MzBcdTA5M0VcdTA5MUNcdTA5NDEiLAorICAgICAgICB9OworCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGxhdGluVG9EZXY9VHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkxhdGluLURldmFuYWdhcmkiLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEICk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGRldlRvTGF0aW49VHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkRldmFuYWdhcmktTGF0aW4iLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKworICAgICAgICBmb3IoaW50IGk9IDA7IGk8c291cmNlLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgIGV4cGVjdChsYXRpblRvRGV2LChzb3VyY2VbaV0pLChleHBlY3RlZFtpXSkpOworICAgICAgICAgICAgZXhwZWN0KGRldlRvTGF0aW4sKGV4cGVjdGVkW2ldKSwoc291cmNlW2ldKSk7CisgICAgICAgIH0KKworICAgIH0KKyAgICBwdWJsaWMgdm9pZCAgVGVzdFRlbHVndUxhdGluUlQoKXsKKyAgICAgICAgU3RyaW5nW10gIHNvdXJjZSA9IHsKKyAgICAgICAgICAgICJyYWdodXJcdTAxMDFtIHZpXHUwMTVCdmFuXHUwMTAxZGhhIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSYWdodXJhbSBWaXN3YW5hZGhhICAgICovCisgICAgICAgICAgICAiXHUwMTAxbmFuZCB2YWRkaXJcdTAxMDFqdSIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQW5hbmQgVmFkZGlyYWp1IAkgICAgICAqLworICAgICAgICAgICAgInJcdTAxMDFqXHUwMTJCdiBrYVx1MDE1QmFyYWJcdTAxMDFkYSIsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFJhamVldiBLYXNhcmFiYWRhICAgICAgKi8KKyAgICAgICAgICAgICJzYW5cdTAzMDRqXHUwMTJCdiBrYVx1MDE1QmFyYWJcdTAxMDFkYSIsICAgICAgICAgICAgICAgICAgICAgICAvKiBzYW5qZWV2IGthc2FyYWJhZGEgICAgICovCisgICAgICAgICAgICAic2FuXHUwMzA0alx1MDEyQmIgc2VuJ2d1cHRhIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogc2FuamliIHNlbmd1cGF0YSAJICAqLworICAgICAgICAgICAgImFtYXJcdTAxMTNuZHJhIGhhbnVtXHUwMTAxbnVsYSIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFtYXJlbmRyYSBoYW51bWFudWxhICAgKi8KKyAgICAgICAgICAgICJyYXZpIGt1bVx1MDEwMXIgdmlcdTAxNUJ2YW5cdTAxMDFkaGEiLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSYXZpIEt1bWFyIFZpc3dhbmFkaGEgICovCisgICAgICAgICAgICAiXHUwMTAxZGl0eWEga2FuZHJcdTAxMTNndWxhIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQWRpdHlhIEthbmRyZWd1bGEgICAgICAqLworICAgICAgICAgICAgIlx1MDE1QnJcdTAxMkJkaGFyIGthXHUxRTQ3XHUxRTZEYW1hXHUwMTVCZVx1MUU2RFx1MUU2RGkiLCAgICAgIC8qIFNocmlkaGFyIEthbnRhbXNldHR5ICAgKi8KKyAgICAgICAgICAgICJtXHUwMTAxZGhhdiBkZVx1MDE1QmVcdTFFNkRcdTFFNkRpIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNYWRoYXYgRGVzZXR0eSAgICAgICAgICovCisgICAgICAgIH07CisKKyAgICAgICAgU3RyaW5nW10gIGV4cGVjdGVkID0geworICAgICAgICAgICAgIlx1MGMzMFx1MGMxOFx1MGM0MVx1MGMzMFx1MGMzZVx1MGMyZVx1MGM0ZCBcdTBjMzVcdTBjM2ZcdTBjMzZcdTBjNGRcdTBjMzVcdTBjMjhcdTBjM2VcdTBjMjciLAorICAgICAgICAgICAgIlx1MGMwNlx1MGMyOFx1MGMwMlx1MGMyNlx1MGM0ZCBcdTBDMzVcdTBDMjZcdTBDNERcdTBDMjZcdTBDM0ZcdTBDMzBcdTBDM0VcdTBDMUNcdTBDNDEiLAorICAgICAgICAgICAgIlx1MGMzMFx1MGMzZVx1MGMxY1x1MGM0MFx1MGMzNVx1MGM0ZCBcdTBjMTVcdTBjMzZcdTBjMzBcdTBjMmNcdTBjM2VcdTBjMjYiLAorICAgICAgICAgICAgIlx1MGMzOFx1MGMwMlx1MGMxY1x1MGM0MFx1MGMzNVx1MGM0ZCBcdTBjMTVcdTBjMzZcdTBjMzBcdTBjMmNcdTBjM2VcdTBjMjYiLAorICAgICAgICAgICAgIlx1MGMzOFx1MGMwMlx1MGMxY1x1MGM0MFx1MGMyY1x1MGM0ZCBcdTBjMzhcdTBjNDZcdTBjMjhcdTBjNGRcdTBjMTdcdTBjNDFcdTBjMmFcdTBjNGRcdTBjMjQiLAorICAgICAgICAgICAgIlx1MGMwNVx1MGMyZVx1MGMzMFx1MGM0N1x1MGMwMlx1MGMyNlx1MGM0ZFx1MGMzMCBcdTBjMzlcdTBjMjhcdTBjNDFcdTBjMmVcdTBjM2VcdTBjMjhcdTBjNDFcdTBjMzIiLAorICAgICAgICAgICAgIlx1MGMzMFx1MGMzNVx1MGMzZiBcdTBjMTVcdTBjNDFcdTBjMmVcdTBjM2VcdTBjMzBcdTBjNGQgXHUwYzM1XHUwYzNmXHUwYzM2XHUwYzRkXHUwYzM1XHUwYzI4XHUwYzNlXHUwYzI3IiwKKyAgICAgICAgICAgICJcdTBjMDZcdTBjMjZcdTBjM2ZcdTBjMjRcdTBjNGRcdTBjMmYgXHUwQzE1XHUwQzAyXHUwQzI2XHUwQzREXHUwQzMwXHUwQzQ3XHUwQzE3XHUwQzQxXHUwYzMyIiwKKyAgICAgICAgICAgICJcdTBjMzZcdTBjNGRcdTBjMzBcdTBjNDBcdTBDMjdcdTBDMzBcdTBDNEQgXHUwYzE1XHUwYzAyXHUwYzFmXHUwYzJlXHUwYzM2XHUwYzQ2XHUwYzFmXHUwYzRkXHUwYzFmXHUwYzNmIiwKKyAgICAgICAgICAgICJcdTBjMmVcdTBjM2VcdTBjMjdcdTBjMzVcdTBjNGQgXHUwYzI2XHUwYzQ2XHUwYzM2XHUwYzQ2XHUwYzFmXHUwYzRkXHUwYzFmXHUwYzNmIiwKKyAgICAgICAgfTsKKworCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGxhdGluVG9EZXY9VHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkxhdGluLVRlbHVndSIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBUcmFuc2xpdGVyYXRvciBkZXZUb0xhdGluPVRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJUZWx1Z3UtTGF0aW4iLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKworICAgICAgICBmb3IoaW50IGk9IDA7IGk8c291cmNlLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgIGV4cGVjdChsYXRpblRvRGV2LChzb3VyY2VbaV0pLChleHBlY3RlZFtpXSkpOworICAgICAgICAgICAgZXhwZWN0KGRldlRvTGF0aW4sKGV4cGVjdGVkW2ldKSwoc291cmNlW2ldKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCAgVGVzdFNhbnNrcml0TGF0aW5SVCgpeworICAgICAgICBpbnQgTUFYX0xFTiA9MTU7CisgICAgICAgIFN0cmluZ1tdICBzb3VyY2UgPSB7CisgICAgICAgICAgICAicm1rXHUxRTYzXHUwMTEzdCIsCisgICAgICAgICAgICAiXHUwMTVCclx1MDEyQm1hZCIsCisgICAgICAgICAgICAiYmhhZ2F2YWRnXHUwMTJCdFx1MDEwMSIsCisgICAgICAgICAgICAiYWRoeVx1MDEwMXlhIiwKKyAgICAgICAgICAgICJhcmp1bmEiLAorICAgICAgICAgICAgInZpXHUxRTYzXHUwMTAxZGEiLAorICAgICAgICAgICAgInlcdTAxNERnYSIsCisgICAgICAgICAgICAiZGhyXHUwMzI1dGFyXHUwMTAxXHUxRTYzXHUxRTZEcmEiLAorICAgICAgICAgICAgInV2XHUwMTAxY3JcdTAzMjUiLAorICAgICAgICAgICAgImRoYXJtYWtcdTFFNjNcdTAxMTN0clx1MDExMyIsCisgICAgICAgICAgICAia3VydWtcdTFFNjNcdTAxMTN0clx1MDExMyIsCisgICAgICAgICAgICAic2FtYXZcdTAxMTN0XHUwMTAxIiwKKyAgICAgICAgICAgICJ5dXl1dHNhdmFcdTFFMjUiLAorICAgICAgICAgICAgIm1cdTAxMDFtYWtcdTAxMDFcdTFFMjUiLAorICAgICAgICAvLyAicFx1MDEwMVx1MUU0N1x1MUUwRGF2XHUwMTAxXHUwMTVCY2FpdmEiLAorICAgICAgICAgICAgImtpbWFrdXJ2YXRhIiwKKyAgICAgICAgICAgICJzYW5cdTAzMDRqYXZhIiwKKyAgICAgICAgfTsKKyAgICAgICAgU3RyaW5nW10gIGV4cGVjdGVkID0geworICAgICAgICAgICAgIlx1MDkzMFx1MDk0RFx1MDkyRVx1MDk0RFx1MDkxNVx1MDk0RFx1MDkzN1x1MDk0N1x1MDkyNFx1MDk0RCIsCisgICAgICAgICAgICAiXHUwOTM2XHUwOTRkXHUwOTMwXHUwOTQwXHUwOTJlXHUwOTI2XHUwOTRkIiwKKyAgICAgICAgICAgICJcdTA5MmRcdTA5MTdcdTA5MzVcdTA5MjZcdTA5NGRcdTA5MTdcdTA5NDBcdTA5MjRcdTA5M2UiLAorICAgICAgICAgICAgIlx1MDkwNVx1MDkyN1x1MDk0ZFx1MDkyZlx1MDkzZVx1MDkyZiIsCisgICAgICAgICAgICAiXHUwOTA1XHUwOTMwXHUwOTRkXHUwOTFjXHUwOTQxXHUwOTI4IiwKKyAgICAgICAgICAgICJcdTA5MzVcdTA5M2ZcdTA5MzdcdTA5M2VcdTA5MjYiLAorICAgICAgICAgICAgIlx1MDkyZlx1MDk0Ylx1MDkxNyIsCisgICAgICAgICAgICAiXHUwOTI3XHUwOTQzXHUwOTI0XHUwOTMwXHUwOTNlXHUwOTM3XHUwOTRkXHUwOTFmXHUwOTRkXHUwOTMwIiwKKyAgICAgICAgICAgICJcdTA5MDlcdTA5MzVcdTA5M0VcdTA5MUFcdTA5NDMiLAorICAgICAgICAgICAgIlx1MDkyN1x1MDkzMFx1MDk0ZFx1MDkyZVx1MDkxNVx1MDk0ZFx1MDkzN1x1MDk0N1x1MDkyNFx1MDk0ZFx1MDkzMFx1MDk0NyIsCisgICAgICAgICAgICAiXHUwOTE1XHUwOTQxXHUwOTMwXHUwOTQxXHUwOTE1XHUwOTRkXHUwOTM3XHUwOTQ3XHUwOTI0XHUwOTRkXHUwOTMwXHUwOTQ3IiwKKyAgICAgICAgICAgICJcdTA5MzhcdTA5MmVcdTA5MzVcdTA5NDdcdTA5MjRcdTA5M2UiLAorICAgICAgICAgICAgIlx1MDkyZlx1MDk0MVx1MDkyZlx1MDk0MVx1MDkyNFx1MDk0ZFx1MDkzOFx1MDkzNVx1MDkwMyIsCisgICAgICAgICAgICAiXHUwOTJlXHUwOTNlXHUwOTJlXHUwOTE1XHUwOTNlXHUwOTAzIiwKKyAgICAgICAgLy8iXHUwOTJhXHUwOTNlXHUwOTIzXHUwOTRkXHUwOTIxXHUwOTM1XHUwOTNlXHUwOTM2XHUwOTRkXHUwOTFhXHUwOTQ4XHUwOTM1IiwKKyAgICAgICAgICAgICJcdTA5MTVcdTA5M2ZcdTA5MmVcdTA5MTVcdTA5NDFcdTA5MzBcdTA5NGRcdTA5MzVcdTA5MjQiLAorICAgICAgICAgICAgIlx1MDkzOFx1MDkwMlx1MDkxY1x1MDkzNSIsCisgICAgICAgIH07CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgbGF0aW5Ub0Rldj1UcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTGF0aW4tRGV2YW5hZ2FyaSIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBUcmFuc2xpdGVyYXRvciBkZXZUb0xhdGluPVRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJEZXZhbmFnYXJpLUxhdGluIiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIGZvcihpbnQgaT0gMDsgaTxNQVhfTEVOOyBpKyspeworICAgICAgICAgICAgZXhwZWN0KGxhdGluVG9EZXYsKHNvdXJjZVtpXSksKGV4cGVjdGVkW2ldKSk7CisgICAgICAgICAgICBleHBlY3QoZGV2VG9MYXRpbiwoZXhwZWN0ZWRbaV0pLChzb3VyY2VbaV0pKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkICBUZXN0Q29tcG91bmRMYXRpblJUKCl7CisgICAgICAgIGludCBNQVhfTEVOID0xNTsKKyAgICAgICAgU3RyaW5nW10gIHNvdXJjZSA9IHsKKyAgICAgICAgICAgICJybWtcdTFFNjNcdTAxMTN0IiwKKyAgICAgICAgICAgICJcdTAxNUJyXHUwMTJCbWFkIiwKKyAgICAgICAgICAgICJiaGFnYXZhZGdcdTAxMkJ0XHUwMTAxIiwKKyAgICAgICAgICAgICJhZGh5XHUwMTAxeWEiLAorICAgICAgICAgICAgImFyanVuYSIsCisgICAgICAgICAgICAidmlcdTFFNjNcdTAxMDFkYSIsCisgICAgICAgICAgICAieVx1MDE0RGdhIiwKKyAgICAgICAgICAgICJkaHJcdTAzMjV0YXJcdTAxMDFcdTFFNjNcdTFFNkRyYSIsCisgICAgICAgICAgICAidXZcdTAxMDFjclx1MDMyNSIsCisgICAgICAgICAgICAiZGhhcm1ha1x1MUU2M1x1MDExM3RyXHUwMTEzIiwKKyAgICAgICAgICAgICJrdXJ1a1x1MUU2M1x1MDExM3RyXHUwMTEzIiwKKyAgICAgICAgICAgICJzYW1hdlx1MDExM3RcdTAxMDEiLAorICAgICAgICAgICAgInl1eXV0c2F2YVx1MUUyNSIsCisgICAgICAgICAgICAibVx1MDEwMW1ha1x1MDEwMVx1MUUyNSIsCisgICAgICAgIC8vICJwXHUwMTAxXHUxRTQ3XHUxRTBEYXZcdTAxMDFcdTAxNUJjYWl2YSIsCisgICAgICAgICAgICAia2ltYWt1cnZhdGEiLAorICAgICAgICAgICAgInNhblx1MDMwNGphdmEiCisgICAgICAgIH07CisgICAgICAgIFN0cmluZ1tdICBleHBlY3RlZCA9IHsKKyAgICAgICAgICAgICJcdTA5MzBcdTA5NERcdTA5MkVcdTA5NERcdTA5MTVcdTA5NERcdTA5MzdcdTA5NDdcdTA5MjRcdTA5NEQiLAorICAgICAgICAgICAgIlx1MDkzNlx1MDk0ZFx1MDkzMFx1MDk0MFx1MDkyZVx1MDkyNlx1MDk0ZCIsCisgICAgICAgICAgICAiXHUwOTJkXHUwOTE3XHUwOTM1XHUwOTI2XHUwOTRkXHUwOTE3XHUwOTQwXHUwOTI0XHUwOTNlIiwKKyAgICAgICAgICAgICJcdTA5MDVcdTA5MjdcdTA5NGRcdTA5MmZcdTA5M2VcdTA5MmYiLAorICAgICAgICAgICAgIlx1MDkwNVx1MDkzMFx1MDk0ZFx1MDkxY1x1MDk0MVx1MDkyOCIsCisgICAgICAgICAgICAiXHUwOTM1XHUwOTNmXHUwOTM3XHUwOTNlXHUwOTI2IiwKKyAgICAgICAgICAgICJcdTA5MmZcdTA5NGJcdTA5MTciLAorICAgICAgICAgICAgIlx1MDkyN1x1MDk0M1x1MDkyNFx1MDkzMFx1MDkzZVx1MDkzN1x1MDk0ZFx1MDkxZlx1MDk0ZFx1MDkzMCIsCisgICAgICAgICAgICAiXHUwOTA5XHUwOTM1XHUwOTNFXHUwOTFBXHUwOTQzIiwKKyAgICAgICAgICAgICJcdTA5MjdcdTA5MzBcdTA5NGRcdTA5MmVcdTA5MTVcdTA5NGRcdTA5MzdcdTA5NDdcdTA5MjRcdTA5NGRcdTA5MzBcdTA5NDciLAorICAgICAgICAgICAgIlx1MDkxNVx1MDk0MVx1MDkzMFx1MDk0MVx1MDkxNVx1MDk0ZFx1MDkzN1x1MDk0N1x1MDkyNFx1MDk0ZFx1MDkzMFx1MDk0NyIsCisgICAgICAgICAgICAiXHUwOTM4XHUwOTJlXHUwOTM1XHUwOTQ3XHUwOTI0XHUwOTNlIiwKKyAgICAgICAgICAgICJcdTA5MmZcdTA5NDFcdTA5MmZcdTA5NDFcdTA5MjRcdTA5NGRcdTA5MzhcdTA5MzVcdTA5MDMiLAorICAgICAgICAgICAgIlx1MDkyZVx1MDkzZVx1MDkyZVx1MDkxNVx1MDkzZVx1MDkwMyIsCisgICAgICAgIC8vICAiXHUwOTJhXHUwOTNlXHUwOTIzXHUwOTRkXHUwOTIxXHUwOTM1XHUwOTNlXHUwOTM2XHUwOTRkXHUwOTFhXHUwOTQ4XHUwOTM1IiwKKyAgICAgICAgICAgICJcdTA5MTVcdTA5M2ZcdTA5MmVcdTA5MTVcdTA5NDFcdTA5MzBcdTA5NGRcdTA5MzVcdTA5MjQiLAorICAgICAgICAgICAgIlx1MDkzOFx1MDkwMlx1MDkxY1x1MDkzNSIKKyAgICAgICAgfTsKKworICAgICAgICBUcmFuc2xpdGVyYXRvciBsYXRpblRvRGV2VG9MYXRpbj1UcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTGF0aW4tRGV2YW5hZ2FyaTtEZXZhbmFnYXJpLUxhdGluIiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGRldlRvTGF0aW5Ub0Rldj1UcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiRGV2YW5hZ2FyaS1MYXRpbjtMYXRpbi1EZXZhbmFnYXJpIiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIGZvcihpbnQgaT0gMDsgaTxNQVhfTEVOOyBpKyspeworICAgICAgICAgICAgZXhwZWN0KGxhdGluVG9EZXZUb0xhdGluLChzb3VyY2VbaV0pLChzb3VyY2VbaV0pKTsKKyAgICAgICAgICAgIGV4cGVjdChkZXZUb0xhdGluVG9EZXYsKGV4cGVjdGVkW2ldKSwoZXhwZWN0ZWRbaV0pKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKioKKyAgICAgKiBUZXN0IEd1cm11a2hpLURldmFuYWdhcmkgVGlwcGkgYW5kIEJpbmRpCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEd1cm11a2hpRGV2YW5hZ2FyaSgpeworICAgICAgICAvLyB0aGUgcnVsZSBzYXlzOgorICAgICAgICAvLyAoXHUwOTAyKSAod2hlbiBwcmVjZWRlZCBieSB2b3dlbCkgICAgICAtLS0+ICAoXHUwQTAyKQorICAgICAgICAvLyAoXHUwOTAyKSAod2hlbiBwcmVjZWRlZCBieSBjb25zb25hbnQpICAtLS0+ICAoXHUwQTcwKQorCisgICAgICAgIFVuaWNvZGVTZXQgdm93ZWwgPW5ldyBVbmljb2RlU2V0KCJbXHUwOTA1LVx1MDkwQSBcdTA5MEZcdTA5MTBcdTA5MTNcdTA5MTQgXHUwOTNlLVx1MDk0Mlx1MDk0N1x1MDk0OFx1MDk0Qlx1MDk0Q1x1MDk0RF0iKTsKKyAgICAgICAgVW5pY29kZVNldCBub25fdm93ZWwgPW5ldyBVbmljb2RlU2V0KCJbXHUwOTE1LVx1MDkyOFx1MDkyQS1cdTA5MzBdIik7CisKKyAgICAgICAgVW5pY29kZVNldEl0ZXJhdG9yIHZJdGVyID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcih2b3dlbCk7CisgICAgICAgIFVuaWNvZGVTZXRJdGVyYXRvciBudkl0ZXIgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKG5vbl92b3dlbCk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHRyYW5zID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkRldmFuYWdhcmktR3VybXVraGkiKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHNyYyA9IG5ldyBTdHJpbmdCdWZmZXIoIiBcdTA5MDIiKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGV4cGVjdCA9IG5ldyBTdHJpbmdCdWZmZXIoIiBcdTBBMDIiKTsKKyAgICAgICAgd2hpbGUodkl0ZXIubmV4dCgpKXsKKyAgICAgICAgICAgIHNyYy5zZXRDaGFyQXQoMCwoY2hhcikgdkl0ZXIuY29kZXBvaW50KTsKKyAgICAgICAgICAgIGV4cGVjdC5zZXRDaGFyQXQoMCwoY2hhcikgKHZJdGVyLmNvZGVwb2ludCsweDAxMDApKTsKKyAgICAgICAgICAgIGV4cGVjdCh0cmFucyxzcmMudG9TdHJpbmcoKSxleHBlY3QudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGV4cGVjdC5zZXRDaGFyQXQoMSwnXHUwQTcwJyk7CisgICAgICAgIHdoaWxlKG52SXRlci5uZXh0KCkpeworICAgICAgICAgICAgLy9zcmMuc2V0Q2hhckF0KDAsKGNoYXIpIG52SXRlci5jb2RlcG9pbnQpOworICAgICAgICAgICAgc3JjLnNldENoYXJBdCgwLChjaGFyKW52SXRlci5jb2RlcG9pbnQpOworICAgICAgICAgICAgZXhwZWN0LnNldENoYXJBdCgwLChjaGFyKSAobnZJdGVyLmNvZGVwb2ludCsweDAxMDApKTsKKyAgICAgICAgICAgIGV4cGVjdCh0cmFucyxzcmMudG9TdHJpbmcoKSxleHBlY3QudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgLyoqCisgICAgICogVGVzdCBpbnN0YW50aWF0aW9uIGZyb20gYSBsb2NhbGUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdExvY2FsZUluc3RhbnRpYXRpb24oKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgicnVfUlUtTGF0aW4iKTsKKyAgICAgICAgZXhwZWN0KHQsICJcdTA0MzAiLCAiYSIpOworCisgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiZW4tZWwiKTsKKyAgICAgICAgZXhwZWN0KHQsICJhIiwgIlx1MDNCMSIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdGl0bGUgY2FzZSBoYW5kbGluZyBvZiBhY2NlbnQgKHNob3VsZCBpZ25vcmUgYWNjZW50cykKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0VGl0bGVBY2NlbnRzKCkgeworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIlRpdGxlIik7CisgICAgICAgIGV4cGVjdCh0LCAiYVx1MDMwMGIgY2FuJ3QgYWJlIiwgIkFcdTAzMDBiIENhbid0IEFiZSIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEJhc2ljIHRlc3Qgb2YgYSBsb2NhbGUgcmVzb3VyY2UgYmFzZWQgcnVsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TG9jYWxlUmVzb3VyY2UoKSB7CisgICAgICAgIFN0cmluZyBEQVRBW10gPSB7CisgICAgICAgICAgICAvLyBpZCAgICAgICAgICAgICAgICAgICAgZnJvbSAgICAgICAgICAgICB0bworICAgICAgICAgICAgIkxhdGluLUdyZWVrL1VOR0VHTiIsICAgICJiIiwgICAgICAgICAgICAgIlx1MDNiY1x1MDNjMCIsCisgICAgICAgICAgICAiTGF0aW4tZWwiLCAgICAgICAgICAgICAgImIiLCAgICAgICAgICAgICAiXHUwM2JjXHUwM2MwIiwKKyAgICAgICAgICAgICJMYXRpbi1HcmVlayIsICAgICAgICAgICAiYiIsICAgICAgICAgICAgICJcdTAzQjIiLAorICAgICAgICAgICAgIkdyZWVrLUxhdGluL1VOR0VHTiIsICAgICJcdTAzQjIiLCAgICAgICAgInYiLAorICAgICAgICAgICAgImVsLUxhdGluIiwgICAgICAgICAgICAgICJcdTAzQjIiLCAgICAgICAgInYiLAorICAgICAgICAgICAgIkdyZWVrLUxhdGluIiwgICAgICAgICAgICJcdTAzQjIiLCAgICAgICAgImIiLAorICAgICAgICB9OworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTMpIHsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShEQVRBW2ldKTsKKyAgICAgICAgICAgIGV4cGVjdCh0LCBEQVRBW2krMV0sIERBVEFbaSsyXSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNYWtlIHN1cmUgcGFyc2UgZXJyb3JzIHJlZmVyZW5jZSB0aGUgcmlnaHQgbGluZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UGFyc2VFcnJvcigpIHsKKyAgICAgICAgU3RyaW5nIHJ1bGUgPQorICAgICAgICAgICAgImEgPiBiO1xuIiArCisgICAgICAgICAgICAiIyBtb3JlIHN0dWZmXG4iICsKKyAgICAgICAgICAgICJkIDw8IGI7IjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIklEIiwgcnVsZSwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTdHJpbmcgZXJyID0gZS5nZXRNZXNzYWdlKCk7CisgICAgICAgICAgICBpZiAoZXJyLmluZGV4T2YoImQgPDwgYiIpID49IDApIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyBlcnIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGVycik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgZXJybG4oIkZBSUw6IG5vIHN5bnRheCBlcnJvciIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1ha2Ugc3VyZSBzZXRzIG9uIG91dHB1dCBhcmUgZGlzYWxsb3dlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0T3V0cHV0U2V0KCkgeworICAgICAgICBTdHJpbmcgcnVsZSA9ICIkc2V0ID0gW2EtY20tbl07IGIgPiAkc2V0OyI7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiSUQiLCBydWxlLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBlcnJsbigiRkFJTDogTm8gc3ludGF4IGVycm9yIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgdXNlIHZhcmlhYmxlIHJhbmdlIHByYWdtYSwgbWFraW5nIHN1cmUgdGhhdCB1c2Ugb2YKKyAgICAgKiB2YXJpYWJsZSByYW5nZSBjaGFyYWN0ZXJzIGlzIGRldGVjdGVkIGFuZCBmbGFnZ2VkIGFzIGFuIGVycm9yLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RWYXJpYWJsZVJhbmdlKCkgeworICAgICAgICBTdHJpbmcgcnVsZSA9ICJ1c2UgdmFyaWFibGUgcmFuZ2UgMHg3MCAweDcyOyBhID4gQTsgYiA+IEI7IHEgPiBROyI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0KKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIklEIiwgcnVsZSwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgZXJybG4oIkZBSUw6IE5vIHN5bnRheCBlcnJvciIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgaW52YWxpZCBwb3N0IGNvbnRleHQgZXJyb3IgaGFuZGxpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SW52YWxpZFBvc3RDb250ZXh0KCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJJRCIsICJhfWJ7Yz5kOyIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3RyaW5nIG1zZyA9IGUuZ2V0TWVzc2FnZSgpOworICAgICAgICAgICAgaWYgKG1zZy5pbmRleE9mKCJhfWJ7YyIpID49IDApIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyBtc2cpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIG1zZyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgZXJybG4oIkZBSUw6IE5vIHN5bnRheCBlcnJvciIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgSUQgZm9ybSB2YXJpYW50cworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RJREZvcm1zKCkgeworICAgICAgICBTdHJpbmcgREFUQVtdID0geworICAgICAgICAgICAgIk5GQyIsIG51bGwsICJORkQiLAorICAgICAgICAgICAgIm5mZCIsIG51bGwsICJORkMiLCAvLyBtYWtlIHN1cmUgY2FzZSBpcyBpZ25vcmVkCisgICAgICAgICAgICAiQW55LU5GS0QiLCBudWxsLCAiQW55LU5GS0MiLAorICAgICAgICAgICAgIk51bGwiLCBudWxsLCAiTnVsbCIsCisgICAgICAgICAgICAiLW5ma2MiLCAibmZrYyIsICJORktEIiwKKyAgICAgICAgICAgICItbmZrYy8iLCAibmZrYyIsICJORktEIiwKKyAgICAgICAgICAgICJMYXRpbi1HcmVlay9VTkdFR04iLCBudWxsLCAiR3JlZWstTGF0aW4vVU5HRUdOIiwKKyAgICAgICAgICAgICJHcmVlay9VTkdFR04tTGF0aW4iLCAiR3JlZWstTGF0aW4vVU5HRUdOIiwgIkxhdGluLUdyZWVrL1VOR0VHTiIsCisgICAgICAgICAgICAiQmVuZ2FsaS1EZXZhbmFnYXJpLyIsICJCZW5nYWxpLURldmFuYWdhcmkiLCAiRGV2YW5hZ2FyaS1CZW5nYWxpIiwKKyAgICAgICAgICAgICJTb3VyY2UtIiwgbnVsbCwgbnVsbCwKKyAgICAgICAgICAgICJTb3VyY2UvVmFyaWFudC0iLCBudWxsLCBudWxsLAorICAgICAgICAgICAgIlNvdXJjZS0vVmFyaWFudCIsIG51bGwsIG51bGwsCisgICAgICAgICAgICAiL1ZhcmlhbnQiLCBudWxsLCBudWxsLAorICAgICAgICAgICAgIi9WYXJpYW50LSIsIG51bGwsIG51bGwsCisgICAgICAgICAgICAiLS9WYXJpYW50IiwgbnVsbCwgbnVsbCwKKyAgICAgICAgICAgICItLyIsIG51bGwsIG51bGwsCisgICAgICAgICAgICAiLSIsIG51bGwsIG51bGwsCisgICAgICAgICAgICAiLyIsIG51bGwsIG51bGwsCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0zKSB7CisgICAgICAgICAgICBTdHJpbmcgSUQgPSBEQVRBW2ldOworICAgICAgICAgICAgU3RyaW5nIGV4cElEID0gREFUQVtpKzFdOworICAgICAgICAgICAgU3RyaW5nIGV4cEludklEID0gREFUQVtpKzJdOworICAgICAgICAgICAgYm9vbGVhbiBleHBWYWxpZCA9IChleHBJbnZJRCAhPSBudWxsKTsKKyAgICAgICAgICAgIGlmIChleHBJRCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgZXhwSUQgPSBJRDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9CisgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKElEKTsKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB1ID0gdC5nZXRJbnZlcnNlKCk7CisgICAgICAgICAgICAgICAgaWYgKHQuZ2V0SUQoKS5lcXVhbHMoZXhwSUQpICYmCisgICAgICAgICAgICAgICAgICAgIHUuZ2V0SUQoKS5lcXVhbHMoZXhwSW52SUQpKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIElEICsgIi5nZXRJbnZlcnNlKCkgPT4gIiArIGV4cEludklEKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogZ2V0SW5zdGFuY2UoIiArIElEICsgIikgPT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIHQuZ2V0SUQoKSArICIgeCBnZXRJbnZlcnNlKCkgPT4gIiArIHUuZ2V0SUQoKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkICIgKyBleHBJbnZJRCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWV4cFZhbGlkKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogZ2V0SW5zdGFuY2UoIiArIElEICsgIikgPT4gIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogZ2V0SW5zdGFuY2UoIiArIElEICsgIikgPT4gIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIGNoZWNrUnVsZXMoU3RyaW5nIGxhYmVsLCBUcmFuc2xpdGVyYXRvciB0MiwgU3RyaW5nIHRlc3RSdWxlc0ZvcndhcmQpIHsKKyAgICAgICAgU3RyaW5nIHJ1bGVzMiA9IHQyLnRvUnVsZXModHJ1ZSk7CisgICAgICAgIC8vcnVsZXMyID0gVGVzdFV0aWxpdHkucmVwbGFjZUFsbChydWxlczIsIG5ldyBVbmljb2RlU2V0KCJbJyAnXG5ccl0iKSwgIiIpOworICAgICAgICBydWxlczIgPSBUZXN0VXRpbGl0eS5yZXBsYWNlKHJ1bGVzMiwgIiAiLCAiIik7CisgICAgICAgIHJ1bGVzMiA9IFRlc3RVdGlsaXR5LnJlcGxhY2UocnVsZXMyLCAiXG4iLCAiIik7CisgICAgICAgIHJ1bGVzMiA9IFRlc3RVdGlsaXR5LnJlcGxhY2UocnVsZXMyLCAiXHIiLCAiIik7CisgICAgICAgIHRlc3RSdWxlc0ZvcndhcmQgPSBUZXN0VXRpbGl0eS5yZXBsYWNlKHRlc3RSdWxlc0ZvcndhcmQsICIgIiwgIiIpOworCisgICAgICAgIGlmICghcnVsZXMyLmVxdWFscyh0ZXN0UnVsZXNGb3J3YXJkKSkgeworICAgICAgICAgICAgZXJybG4obGFiZWwpOworICAgICAgICAgICAgbG9nbG4oIkdFTkVSQVRFRCBSVUxFUzogIiArIHJ1bGVzMik7CisgICAgICAgICAgICBsb2dsbigiU0hPVUxEIEJFOiAgICAgICAiICsgdGVzdFJ1bGVzRm9yd2FyZCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNYXJrJ3MgdG9SdWxlcyB0ZXN0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RUb1J1bGVzTWFyaygpIHsKKworICAgICAgICBTdHJpbmcgdGVzdFJ1bGVzID0KKyAgICAgICAgICAgICI6OltbOkxhdGluOl1bOk1hcms6XV07IgorICAgICAgICAgICAgKyAiOjpORktEIChORkMpOyIKKyAgICAgICAgICAgICsgIjo6TG93ZXIgKExvd2VyKTsiCisgICAgICAgICAgICArICJhIDw+IFxcdTAzQjE7IiAvLyBhbHBoYQorICAgICAgICAgICAgKyAiOjpORktDIChORkQpOyIKKyAgICAgICAgICAgICsgIjo6VXBwZXIgKExvd2VyKTsiCisgICAgICAgICAgICArICI6Okxvd2VyICgpOyIKKyAgICAgICAgICAgICsgIjo6KFtbOkdyZWVrOl1bOk1hcms6XV0pOyIKKyAgICAgICAgICAgIDsKKyAgICAgICAgU3RyaW5nIHRlc3RSdWxlc0ZvcndhcmQgPQorICAgICAgICAgICAgIjo6W1s6TGF0aW46XVs6TWFyazpdXTsiCisgICAgICAgICAgICArICI6Ok5GS0QoTkZDKTsiCisgICAgICAgICAgICArICI6Okxvd2VyKExvd2VyKTsiCisgICAgICAgICAgICArICJhID4gXFx1MDNCMTsiCisgICAgICAgICAgICArICI6Ok5GS0MoTkZEKTsiCisgICAgICAgICAgICArICI6OlVwcGVyIChMb3dlcik7IgorICAgICAgICAgICAgKyAiOjpMb3dlciAoKTsiCisgICAgICAgICAgICA7CisgICAgICAgIFN0cmluZyB0ZXN0UnVsZXNCYWNrd2FyZCA9CisgICAgICAgICAgICAiOjpbWzpHcmVlazpdWzpNYXJrOl1dOyIKKyAgICAgICAgICAgICsgIjo6TG93ZXIgKFVwcGVyKTsiCisgICAgICAgICAgICArICI6Ok5GRChORktDKTsiCisgICAgICAgICAgICArICJcXHUwM0IxID4gYTsiCisgICAgICAgICAgICArICI6Okxvd2VyKExvd2VyKTsiCisgICAgICAgICAgICArICI6Ok5GQyhORktEKTsiCisgICAgICAgICAgICA7CisgICAgICAgIFN0cmluZyBzb3VyY2UgPSAiXHUwMEUxIjsgLy8gYS1hY3V0ZQorICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gIlx1MDNBQyI7IC8vIGFscGhhLWFjdXRlCisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDIgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoInNvdXJjZS10YXJnZXQiLCB0ZXN0UnVsZXMsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBUcmFuc2xpdGVyYXRvciB0MyA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygidGFyZ2V0LXNvdXJjZSIsIHRlc3RSdWxlcywgVHJhbnNsaXRlcmF0b3IuUkVWRVJTRSk7CisKKyAgICAgICAgZXhwZWN0KHQyLCBzb3VyY2UsIHRhcmdldCk7CisgICAgICAgIGV4cGVjdCh0MywgdGFyZ2V0LCBzb3VyY2UpOworCisgICAgICAgIGNoZWNrUnVsZXMoIkZhaWxlZCB0b1J1bGVzIEZPUldBUkQiLCB0MiwgdGVzdFJ1bGVzRm9yd2FyZCk7CisgICAgICAgIGNoZWNrUnVsZXMoIkZhaWxlZCB0b1J1bGVzIEJBQ0tXQVJEIiwgdDMsIHRlc3RSdWxlc0JhY2t3YXJkKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IEVzY2FwZSBhbmQgVW5lc2NhcGUgdHJhbnNsaXRlcmF0b3JzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RFc2NhcGUoKSB7CisgICAgICAgIGV4cGVjdChUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiSGV4LUFueSIpLAorICAgICAgICAgICAgICAgIlxceHs0MH1cXFUwMDAwMDAzMSYjeDMyOyYjODE7IiwKKyAgICAgICAgICAgICAgICJAMTJRIik7CisgICAgICAgIGV4cGVjdChUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiQW55LUhleC9DIiksCisgICAgICAgICAgICAgICBDaGFyc1RvVW5pY29kZVN0cmluZygiQVxcVTAwMTBCRUVGXFx1RkVFRCIpLAorICAgICAgICAgICAgICAgIlxcdTAwNDFcXFUwMDEwQkVFRlxcdUZFRUQiKTsKKyAgICAgICAgZXhwZWN0KFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJBbnktSGV4L0phdmEiKSwKKyAgICAgICAgICAgICAgIENoYXJzVG9Vbmljb2RlU3RyaW5nKCJBXFxVMDAxMEJFRUZcXHVGRUVEIiksCisgICAgICAgICAgICAgICAiXFx1MDA0MVxcdURCRUZcXHVERUVGXFx1RkVFRCIpOworICAgICAgICBleHBlY3QoVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1IZXgvUGVybCIpLAorICAgICAgICAgICAgICAgQ2hhcnNUb1VuaWNvZGVTdHJpbmcoIkFcXFUwMDEwQkVFRlxcdUZFRUQiKSwKKyAgICAgICAgICAgICAgICJcXHh7NDF9XFx4ezEwQkVFRn1cXHh7RkVFRH0iKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNYWtlIHN1cmUgZGlzcGxheSBuYW1lcyBvZiB2YXJpYW50cyBsb29rIHJlYXNvbmFibGUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdERpc3BsYXlOYW1lKCkgeworICAgICAgICBTdHJpbmcgREFUQVtdID0geworICAgICAgICAgICAgLy8gSUQsIGZvcndhcmQgbmFtZSwgcmV2ZXJzZSBuYW1lCisgICAgICAgICAgICAvLyBVcGRhdGUgdGhlIHRleHQgYXMgbmVjZXNzYXJ5IC0tIHRoZSBpbXBvcnRhbnQgdGhpbmcgaXMKKyAgICAgICAgICAgIC8vIG5vdCB0aGUgdGV4dCBpdHNlbGYsIGJ1dCBob3cgdmFyaW91cyBjYXNlcyBhcmUgaGFuZGxlZC4KKworICAgICAgICAgICAgLy8gQmFzaWMgdGVzdAorICAgICAgICAgICAgIkFueS1IZXgiLCAiQW55IHRvIEhleCBFc2NhcGUiLCAiSGV4IEVzY2FwZSB0byBBbnkiLAorCisgICAgICAgICAgICAvLyBWYXJpYW50cworICAgICAgICAgICAgIkFueS1IZXgvUGVybCIsICJBbnkgdG8gSGV4IEVzY2FwZS9QZXJsIiwgIkhleCBFc2NhcGUgdG8gQW55L1BlcmwiLAorCisgICAgICAgICAgICAvLyBUYXJnZXQtb25seSBJRHMKKyAgICAgICAgICAgICJORkMiLCAiQW55IHRvIE5GQyIsICJBbnkgdG8gTkZEIiwKKyAgICAgICAgfTsKKworICAgICAgICBMb2NhbGUgVVMgPSBMb2NhbGUuVVM7CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0zKSB7CisgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IFRyYW5zbGl0ZXJhdG9yLmdldERpc3BsYXlOYW1lKERBVEFbaV0sIFVTKTsKKyAgICAgICAgICAgIGlmICghbmFtZS5lcXVhbHMoREFUQVtpKzFdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgREFUQVtpXSArICIuZ2V0RGlzcGxheU5hbWUoKSA9PiAiICsKKyAgICAgICAgICAgICAgICAgICAgICBuYW1lICsgIiwgZXhwZWN0ZWQgIiArIERBVEFbaSsxXSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIERBVEFbaV0gKyAiLmdldERpc3BsYXlOYW1lKCkgPT4gIiArIG5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKERBVEFbaV0sIFRyYW5zbGl0ZXJhdG9yLlJFVkVSU0UpOworICAgICAgICAgICAgbmFtZSA9IFRyYW5zbGl0ZXJhdG9yLmdldERpc3BsYXlOYW1lKHQuZ2V0SUQoKSwgVVMpOworICAgICAgICAgICAgaWYgKCFuYW1lLmVxdWFscyhEQVRBW2krMl0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyB0LmdldElEKCkgKyAiLmdldERpc3BsYXlOYW1lKCkgPT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgbmFtZSArICIsIGV4cGVjdGVkICIgKyBEQVRBW2krMl0pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyB0LmdldElEKCkgKyAiLmdldERpc3BsYXlOYW1lKCkgPT4gIiArIG5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBhbmNob3IgbWFza2luZworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RBbmNob3JNYXNraW5nKCkgeworICAgICAgICBTdHJpbmcgcnVsZSA9ICJeYSA+IFE7IGEgPiBxOyI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJJRCIsIHJ1bGUsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBydWxlICsgIiA9PiAiICsgZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nW11bXSByZWdpc3RlclJ1bGVzID0geworICAgICAgICB7IkFueS1EZXYxIiwgInggPiBYOyB5ID4gWTsifSwKKyAgICAgICAgeyJBbnktRGV2MiIsICJYWSA+IFoifSwKKyAgICAgICAgeyJHcmVlay1MYXRpbi9GQUtFIiwKKyAgICAgICAgICAgICJbXls6TDpdWzpNOl1dIHsgXHUwM2JjXHUwM2MwID4gYiA7ICIrCisgICAgICAgICAgICAiXHUwM2JjXHUwM2MwIH0gW15bOkw6XVs6TTpdXSA+IGIgOyAiKworICAgICAgICAgICAgIlteWzpMOl1bOk06XV0geyBbXHUwMzljXHUwM2JjXVtcdTAzYTBcdTAzYzBdID4gQiA7ICIrCisgICAgICAgICAgICAiW1x1MDM5Y1x1MDNiY11bXHUwM2EwXHUwM2MwXSB9IFteWzpMOl1bOk06XV0gPiBCIDsiCisgICAgICAgICAgICB9LAorICAgIH07CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIERFU0VSRVRfREVFID0gVVRGMTYudmFsdWVPZigweDEwNDE0KTsKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIERFU0VSRVRfZGVlID0gVVRGMTYudmFsdWVPZigweDEwNDNDKTsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmdbXVtdIHRlc3RDYXNlcyA9IHsKKworICAgICAgICAvLyBOT1JNQUxJWkFUSU9OCisgICAgICAgIC8vIHNob3VsZCBhZGQgbW9yZSB0ZXN0IGNhc2VzCisgICAgICAgIHsiTkZEIiAsICJhXHUwMzAwIFx1MDBFMCBcdTExMDBcdTExNjEgXHVGRjc2XHVGRjlFXHUwM0QzIn0sCisgICAgICAgIHsiTkZDIiAsICJhXHUwMzAwIFx1MDBFMCBcdTExMDBcdTExNjEgXHVGRjc2XHVGRjlFXHUwM0QzIn0sCisgICAgICAgIHsiTkZLRCIsICJhXHUwMzAwIFx1MDBFMCBcdTExMDBcdTExNjEgXHVGRjc2XHVGRjlFXHUwM0QzIn0sCisgICAgICAgIHsiTkZLQyIsICJhXHUwMzAwIFx1MDBFMCBcdTExMDBcdTExNjEgXHVGRjc2XHVGRjlFXHUwM0QzIn0sCisKKyAgICAgICAgLy8gbXAgLT4gYiBCVUcKKyAgICAgICAgeyJHcmVlay1MYXRpbi9VTkdFR04iLCAiKFx1MDNCQ1x1MDNDMCkiLCAiKGIpIn0sCisgICAgICAgIHsiR3JlZWstTGF0aW4vRkFLRSIsICIoXHUwM0JDXHUwM0MwKSIsICIoYikifSwKKworICAgICAgICAvLyBjaGVjayBmb3IgZGV2YW5hZ2FyaSBidWcKKyAgICAgICAgeyJuZmQ7RGV2MTtEZXYyO25mYyIsICJ4eSIsICJaIn0sCisKKyAgICAgICAgLy8gZmYsIGksIGRvdGxlc3MtaSwgSSwgZG90dGVkLUksIExKTGpsaiBkZXNlcmV0IGRlZURFRQorICAgICAgICB7IlRpdGxlIiwgImFiJ2NEIGZmaVx1MDEzMUlcdTAxMzAgXHUwMUM3XHUwMUM4XHUwMUM5ICIgKyBERVNFUkVUX2RlZSArIERFU0VSRVRfREVFLAorICAgICAgICAgICAgICAgICAgIkFiJ2NkIEZmaVx1MDEzMWlpXHUwMzA3IFx1MDFDOFx1MDFDOVx1MDFDOSAiICsgREVTRVJFVF9ERUUgKyBERVNFUkVUX2RlZX0sCisgICAgICAgIC8vVE9ETzogZW5hYmxlIHRoaXMgdGVzdCBvbmNlIFRpdGxlY2FzZSB3b3JrcyByaWdodAorICAgICAgICAvL3siVGl0bGUiLCAiXHVGQjAwaVx1MDEzMUlcdTAxMzAgXHUwMUM3XHUwMUM4XHUwMUM5ICIgKyBERVNFUkVUX2RlZSArIERFU0VSRVRfREVFLAorICAgICAgICAvLyAgICAgICAgICAiRmZpXHUwMTMxaWkgXHUwMUM4XHUwMUM5XHUwMUM5ICIgKyBERVNFUkVUX0RFRSArIERFU0VSRVRfZGVlfSwKKyAgICAgICAgCisgICAgICAgIHsiVXBwZXIiLCAiYWInY0QgXHVGQjAwaVx1MDEzMUlcdTAxMzAgXHUwMUM3XHUwMUM4XHUwMUM5ICIgKyBERVNFUkVUX2RlZSArIERFU0VSRVRfREVFLAorICAgICAgICAgICAgICAgICAgIkFCJ0NEIEZGSUlJXHUwMTMwIFx1MDFDN1x1MDFDN1x1MDFDNyAiICsgREVTRVJFVF9ERUUgKyBERVNFUkVUX0RFRX0sCisgICAgICAgIHsiTG93ZXIiLCAiYWInY0QgXHVGQjAwaVx1MDEzMUlcdTAxMzAgXHUwMUM3XHUwMUM4XHUwMUM5ICIgKyBERVNFUkVUX2RlZSArIERFU0VSRVRfREVFLAorICAgICAgICAgICAgICAgICAgImFiJ2NkIFx1RkIwMGlcdTAxMzFpaVx1MDMwNyBcdTAxQzlcdTAxQzlcdTAxQzkgIiArIERFU0VSRVRfZGVlICsgREVTRVJFVF9kZWV9LAorICAgICAgICAgICAgICAgICAgCisgICAgICAgIHsiVXBwZXIiLCAiYWInY0QgXHVGQjAwaVx1MDEzMUlcdTAxMzAgXHUwMUM3XHUwMUM4XHUwMUM5ICIgKyBERVNFUkVUX2RlZSArIERFU0VSRVRfREVFfSwKKyAgICAgICAgeyJMb3dlciIsICJhYidjRCBcdUZCMDBpXHUwMTMxSVx1MDEzMCBcdTAxQzdcdTAxQzhcdTAxQzkgIiArIERFU0VSRVRfZGVlICsgREVTRVJFVF9ERUV9LAorCisgICAgICAgICAvLyBGT1JNUyBPRiBTCisgICAgICAgIHsiR3JlZWstTGF0aW4vVU5HRUdOIiwgIlx1MDNDMyBcdTAzQzNcdTAzQzIgXHUwM0MyXHUwM0MzIiwgInMgc3Mgc1x1MDMzMXNcdTAzMzEifSwKKyAgICAgICAgeyJMYXRpbi1HcmVlay9VTkdFR04iLCAicyBzcyBzXHUwMzMxc1x1MDMzMSIsICJcdTAzQzMgXHUwM0MzXHUwM0MyIFx1MDNDMlx1MDNDMyJ9LAorICAgICAgICB7IkdyZWVrLUxhdGluIiwgIlx1MDNDMyBcdTAzQzNcdTAzQzIgXHUwM0MyXHUwM0MzIiwgInMgc3Mgc1x1MDMzMXNcdTAzMzEifSwKKyAgICAgICAgeyJMYXRpbi1HcmVlayIsICJzIHNzIHNcdTAzMzFzXHUwMzMxIiwgIlx1MDNDMyBcdTAzQzNcdTAzQzIgXHUwM0MyXHUwM0MzIn0sCisKKyAgICAgICAgLy8gVGF0aWFuYSBidWcKKyAgICAgICAgLy8gVXBwZXI6IFRBVFx1MDJCOVx1MDBDMk5BCisgICAgICAgIC8vIExvd2VyOiB0YXRcdTAyQjlcdTAwRTJuYQorICAgICAgICAvLyBUaXRsZTogVGF0XHUwMkI5XHUwMEUybmEKKyAgICAgICAgeyJVcHBlciIsICJ0YXRcdTAyQjlcdTAwRTJuYSIsICJUQVRcdTAyQjlcdTAwQzJOQSJ9LAorICAgICAgICB7Ikxvd2VyIiwgIlRBVFx1MDJCOVx1MDBDMk5BIiwgInRhdFx1MDJCOVx1MDBFMm5hIn0sCisgICAgICAgIHsiVGl0bGUiLCAidGF0XHUwMkI5XHUwMEUybmEiLCAiVGF0XHUwMkI5XHUwMEUybmEifSwKKyAgICB9OworCisgICAgcHVibGljIHZvaWQgVGVzdFNwZWNpYWxDYXNlcygpIHsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmVnaXN0ZXJSdWxlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcyhyZWdpc3RlclJ1bGVzW2ldWzBdLAorICAgICAgICAgICAgICAgIHJlZ2lzdGVyUnVsZXNbaV1bMV0sIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICAgICAgRHVtbXlGYWN0b3J5LmFkZChyZWdpc3RlclJ1bGVzW2ldWzBdLCB0KTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RDYXNlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSB0ZXN0Q2FzZXNbaV1bMF07CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UobmFtZSk7CisgICAgICAgICAgICBTdHJpbmcgaWQgPSB0LmdldElEKCk7CisgICAgICAgICAgICBTdHJpbmcgc291cmNlID0gdGVzdENhc2VzW2ldWzFdOworICAgICAgICAgICAgU3RyaW5nIHRhcmdldCA9IG51bGw7CisKKyAgICAgICAgICAgIC8vIEF1dG9tYXRpYyBnZW5lcmF0aW9uIG9mIHRhcmdldHMsIHRvIG1ha2UgaXQgc2ltcGxlciB0byBhZGQgdGVzdCBjYXNlcyAoYW5kIG1vcmUgZmFpbC1zYWZlKQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAodGVzdENhc2VzW2ldLmxlbmd0aCA+IDIpICAgIHRhcmdldCA9IHRlc3RDYXNlc1tpXVsyXTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGlkLmVxdWFsc0lnbm9yZUNhc2UoIk5GRCIpKSAgICB0YXJnZXQgPSBjb20uaWJtLmljdS50ZXh0Lk5vcm1hbGl6ZXIubm9ybWFsaXplKHNvdXJjZSwgY29tLmlibS5pY3UudGV4dC5Ob3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICBlbHNlIGlmIChpZC5lcXVhbHNJZ25vcmVDYXNlKCJORkMiKSkgICAgdGFyZ2V0ID0gY29tLmlibS5pY3UudGV4dC5Ob3JtYWxpemVyLm5vcm1hbGl6ZShzb3VyY2UsIGNvbS5pYm0uaWN1LnRleHQuTm9ybWFsaXplci5ORkMpOworICAgICAgICAgICAgZWxzZSBpZiAoaWQuZXF1YWxzSWdub3JlQ2FzZSgiTkZLRCIpKSAgIHRhcmdldCA9IGNvbS5pYm0uaWN1LnRleHQuTm9ybWFsaXplci5ub3JtYWxpemUoc291cmNlLCBjb20uaWJtLmljdS50ZXh0Lk5vcm1hbGl6ZXIuTkZLRCk7CisgICAgICAgICAgICBlbHNlIGlmIChpZC5lcXVhbHNJZ25vcmVDYXNlKCJORktDIikpICAgdGFyZ2V0ID0gY29tLmlibS5pY3UudGV4dC5Ob3JtYWxpemVyLm5vcm1hbGl6ZShzb3VyY2UsIGNvbS5pYm0uaWN1LnRleHQuTm9ybWFsaXplci5ORktDKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGlkLmVxdWFsc0lnbm9yZUNhc2UoIkxvd2VyIikpICB0YXJnZXQgPSBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKExvY2FsZS5VUywgc291cmNlKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGlkLmVxdWFsc0lnbm9yZUNhc2UoIlVwcGVyIikpICB0YXJnZXQgPSBVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKExvY2FsZS5VUywgc291cmNlKTsKKworICAgICAgICAgICAgZXhwZWN0KHQsIHNvdXJjZSwgdGFyZ2V0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIHNlZW1zIGxpa2UgdGhlcmUgc2hvdWxkIGJlIGFuIGVhc2llciB3YXkgdG8ganVzdCByZWdpc3RlciBhbiBpbnN0YW5jZSBvZiBhIHRyYW5zbGl0ZXJhdG9yCisKKyAgICBzdGF0aWMgY2xhc3MgRHVtbXlGYWN0b3J5IGltcGxlbWVudHMgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSB7CisgICAgICAgIHN0YXRpYyBEdW1teUZhY3Rvcnkgc2luZ2xldG9uID0gbmV3IER1bW15RmFjdG9yeSgpOworICAgICAgICBzdGF0aWMgSGFzaE1hcCBtID0gbmV3IEhhc2hNYXAoKTsKKworICAgICAgICAvLyBTaW5jZSBUcmFuc2xpdGVyYXRvcnMgYXJlIGltbXV0YWJsZSwgd2UgZG9uJ3QgaGF2ZSB0byBjbG9uZSBvbiBzZXQgJiBnZXQKKyAgICAgICAgc3RhdGljIHZvaWQgYWRkKFN0cmluZyBJRCwgVHJhbnNsaXRlcmF0b3IgdCkgeworICAgICAgICAgICAgbS5wdXQoSUQsIHQpOworICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIlJlZ2lzdGVyaW5nOiAiICsgSUQgKyAiLCAiICsgdC50b1J1bGVzKHRydWUpKTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeShJRCwgc2luZ2xldG9uKTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgICAgICByZXR1cm4gKFRyYW5zbGl0ZXJhdG9yKSBtLmdldChJRCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U3Vycm9nYXRlQ2FzaW5nICgpIHsKKyAgICAgICAgLy8gY2hlY2sgdGhhdCBjYXNpbmcgaGFuZGxlcyBzdXJyb2dhdGVzCisgICAgICAgIC8vIHRpdGxlY2FzZSBpcyBjdXJyZW50bHkgZGVmZWN0aXZlCisgICAgICAgIGludCBkZWUgPSBVVEYxNi5jaGFyQXQoREVTRVJFVF9kZWUsMCk7CisgICAgICAgIGludCBERUUgPSBVQ2hhcmFjdGVyLnRvVGl0bGVDYXNlKGRlZSk7CisgICAgICAgIGlmICghVVRGMTYudmFsdWVPZihERUUpLmVxdWFscyhERVNFUkVUX0RFRSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlscyB0aXRsZWNhc2Ugb2Ygc3Vycm9nYXRlcyIgKyBJbnRlZ2VyLnRvU3RyaW5nKGRlZSwxNikgKyAiLCAiICsgSW50ZWdlci50b1N0cmluZyhERUUsMTYpKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShERVNFUkVUX2RlZSArIERFU0VSRVRfREVFKS5lcXVhbHMoREVTRVJFVF9ERUUgKyBERVNFUkVUX0RFRSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlscyB1cHBlcmNhc2Ugb2Ygc3Vycm9nYXRlcyIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKERFU0VSRVRfZGVlICsgREVTRVJFVF9ERUUpLmVxdWFscyhERVNFUkVUX2RlZSArIERFU0VSRVRfZGVlKSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWxzIGxvd2VyY2FzZSBvZiBzdXJyb2dhdGVzIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBDaGVjayB0byBzZWUgdGhhdCBpbmNyZW1lbnRhbCBnZXRzIGF0IGxlYXN0IHBhcnQgd2F5IHRocm91Z2ggYSByZWFzb25hYmxlIHN0cmluZy4KKworICAgIHB1YmxpYyB2b2lkIFRlc3RJbmNyZW1lbnRhbFByb2dyZXNzKCkgeworICAgICAgICBTdHJpbmcgbGF0aW5UZXN0ID0gIlRoZSBRdWljayBCcm93biBGb3guIjsKKyAgICAgICAgU3RyaW5nIGRldmFUZXN0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkxhdGluLURldmFuYWdhcmkiKS50cmFuc2xpdGVyYXRlKGxhdGluVGVzdCk7CisgICAgICAgIFN0cmluZyBrYXRhVGVzdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJMYXRpbi1LYXRha2FuYSIpLnRyYW5zbGl0ZXJhdGUobGF0aW5UZXN0KTsKKyAgICAgICAgU3RyaW5nW11bXSB0ZXN0cyA9IHsKKyAgICAgICAgICAgIHsiQW55IiwgbGF0aW5UZXN0fSwKKyAgICAgICAgICAgIHsiTGF0aW4iLCBsYXRpblRlc3R9LAorICAgICAgICAgICAgeyJIYWxmd2lkdGgiLCBsYXRpblRlc3R9LAorICAgICAgICAgICAgeyJEZXZhbmFnYXJpIiwgZGV2YVRlc3R9LAorICAgICAgICAgICAgeyJLYXRha2FuYSIsIGthdGFUZXN0fSwKKyAgICAgICAgfTsKKworICAgICAgICBFbnVtZXJhdGlvbiBzb3VyY2VzID0gVHJhbnNsaXRlcmF0b3IuZ2V0QXZhaWxhYmxlU291cmNlcygpOworICAgICAgICB3aGlsZShzb3VyY2VzLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBTdHJpbmcgc291cmNlID0gKFN0cmluZykgc291cmNlcy5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgU3RyaW5nIHRlc3QgPSBmaW5kTWF0Y2goc291cmNlLCB0ZXN0cyk7CisgICAgICAgICAgICBpZiAodGVzdCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIlNraXBwaW5nICIgKyBzb3VyY2UgKyAiLVgiKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEVudW1lcmF0aW9uIHRhcmdldHMgPSBUcmFuc2xpdGVyYXRvci5nZXRBdmFpbGFibGVUYXJnZXRzKHNvdXJjZSk7CisgICAgICAgICAgICB3aGlsZSh0YXJnZXRzLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRhcmdldCA9IChTdHJpbmcpIHRhcmdldHMubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICBFbnVtZXJhdGlvbiB2YXJpYW50cyA9IFRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZVZhcmlhbnRzKHNvdXJjZSwgdGFyZ2V0KTsKKyAgICAgICAgICAgICAgICB3aGlsZSh2YXJpYW50cy5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFyaWFudCA9IChTdHJpbmcpIHZhcmlhbnRzLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBpZCA9IHNvdXJjZSArICItIiArIHRhcmdldCArICIvIiArIHZhcmlhbnQ7CisKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGZpbHRlciA9IGdldEZpbHRlcigpOworICAgICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyICE9IG51bGwgJiYgaWQuaW5kZXhPZihmaWx0ZXIpIDwgMCkgY29udGludWU7CisKKyAgICAgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKGlkKTsKKyAgICAgICAgICAgICAgICAgICAgQ2hlY2tJbmNyZW1lbnRhbEF1eCh0LCB0ZXN0KTsKKworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcmV2ID0gdC50cmFuc2xpdGVyYXRlKHRlc3QpOworICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciBpbnYgPSB0LmdldEludmVyc2UoKTsKKyAgICAgICAgICAgICAgICAgICAgQ2hlY2tJbmNyZW1lbnRhbEF1eChpbnYsIHJldik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBmaW5kTWF0Y2ggKFN0cmluZyBzb3VyY2UsIFN0cmluZ1tdW10gcGFpcnMpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwYWlycy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKHNvdXJjZS5lcXVhbHNJZ25vcmVDYXNlKHBhaXJzW2ldWzBdKSkgcmV0dXJuIHBhaXJzW2ldWzFdOworICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIENoZWNrSW5jcmVtZW50YWxBdXgoVHJhbnNsaXRlcmF0b3IgdCwgU3RyaW5nIGlucHV0KSB7CisKKyAgICAgICAgUmVwbGFjZWFibGUgdGVzdCA9IG5ldyBSZXBsYWNlYWJsZVN0cmluZyhpbnB1dCk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uIHBvcyA9IG5ldyBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbigwLCB0ZXN0Lmxlbmd0aCgpLCAwLCB0ZXN0Lmxlbmd0aCgpKTsKKyAgICAgICAgdC50cmFuc2xpdGVyYXRlKHRlc3QsIHBvcyk7CisgICAgICAgIGJvb2xlYW4gZ290RXJyb3IgPSBmYWxzZTsKKworICAgICAgICAvLyB3ZSBoYXZlIGEgZmV3IHNwZWNpYWwgY2FzZXMuIEFueS1SZW1vdmUgKHBvcy5zdGFydCA9IDAsIGJ1dCBhbHNvID0gbGltaXQpIGFuZCBVK1hYWFhYP1g/CisKKyAgICAgICAgaWYgKHBvcy5zdGFydCA9PSAwICYmIHBvcy5saW1pdCAhPSAwICYmICF0LmdldElEKCkuZXF1YWxzKCJIZXgtQW55L1VuaWNvZGUiKSkgeworICAgICAgICAgICAgZXJybG4oIk5vIFByb2dyZXNzLCAiICsgdC5nZXRJRCgpICsgIjogIiArIFV0aWxpdHkuZm9ybWF0SW5wdXQodGVzdCwgcG9zKSk7CisgICAgICAgICAgICBnb3RFcnJvciA9IHRydWU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2dsbigiUEFTUyBQcm9ncmVzcywgIiArIHQuZ2V0SUQoKSArICI6ICIgKyBVdGlsaXR5LmZvcm1hdElucHV0KHRlc3QsIHBvcykpOworICAgICAgICB9CisgICAgICAgIHQuZmluaXNoVHJhbnNsaXRlcmF0aW9uKHRlc3QsIHBvcyk7CisgICAgICAgIGlmIChwb3Muc3RhcnQgIT0gcG9zLmxpbWl0KSB7CisgICAgICAgICAgICBlcnJsbigiSW5jb21wbGV0ZSwgIiArIHQuZ2V0SUQoKSArICI6ICAiICsgVXRpbGl0eS5mb3JtYXRJbnB1dCh0ZXN0LCBwb3MpKTsKKyAgICAgICAgICAgIGdvdEVycm9yID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RGdW5jdGlvbigpIHsKKyAgICAgICAgLy8gQ2FyZWZ1bCB3aXRoIHNwYWNpbmcgYW5kICc7JyBoZXJlOiAgUGhyYXNlIHRoaXMgZXhhY3RseQorICAgICAgICAvLyBhcyB0b1J1bGVzKCkgaXMgZ29pbmcgdG8gcmV0dXJuIGl0LiAgSWYgdG9SdWxlcygpIGNoYW5nZXMKKyAgICAgICAgLy8gd2l0aCByZWdhcmQgdG8gc3BhY2luZyBvciAnOycsIHRoZW4gYWRqdXN0IHRoaXMgc3RyaW5nLgorICAgICAgICBTdHJpbmcgcnVsZSA9CisgICAgICAgICAgICAiKFs6THU6XSkgPiAkMSAnKCcgJkxvd2VyKCAkMSApICc9JyAmSGV4KCAmQW55LUxvd2VyKCAkMSApICkgJyknOyI7CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiVGVzdCIsIHJ1bGUsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBpZiAodCA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogY3JlYXRlRnJvbVJ1bGVzIGZhaWxlZCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIHIgPSB0LnRvUnVsZXModHJ1ZSk7CisgICAgICAgIGlmIChyLmVxdWFscyhydWxlKSkgeworICAgICAgICAgICAgbG9nbG4oIk9LOiB0b1J1bGVzKCkgPT4gIiArIHIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IHRvUnVsZXMoKSA9PiAiICsgciArCisgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCAiICsgcnVsZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGV4cGVjdCh0LCAiVGhlIFF1aWNrIEJyb3duIEZveCIsCisgICAgICAgICAgICAgICAiVCh0PVxcdTAwNzQpaGUgUShxPVxcdTAwNzEpdWljayBCKGI9XFx1MDA2Milyb3duIEYoZj1cXHUwMDY2KW94Iik7CisgICAgICAgIHJ1bGUgPQorICAgICAgICAgICAgIihbXlxcIC1cXHUwMDdGXSkgPiAmSGV4L1VuaWNvZGUoICQxICkgJyAnICZOYW1lKCAkMSApIDsiOworCisgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIlRlc3QiLCBydWxlLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgaWYgKHQgPT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNyZWF0ZUZyb21SdWxlcyBmYWlsZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHIgPSB0LnRvUnVsZXModHJ1ZSk7CisgICAgICAgIGlmIChyLmVxdWFscyhydWxlKSkgeworICAgICAgICAgICAgbG9nbG4oIk9LOiB0b1J1bGVzKCkgPT4gIiArIHIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IHRvUnVsZXMoKSA9PiAiICsgciArCisgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCAiICsgcnVsZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGV4cGVjdCh0LCAiXHUwMzAxIiwKKyAgICAgICAgICAgICAgICJVKzAzMDEge0NPTUJJTklORyBBQ1VURSBBQ0NFTlR9Iik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEludmFsaWRCYWNrUmVmKCkgeworICAgICAgICBTdHJpbmcgcnVsZSA9ICAiLiA+ICQxOyI7CisgICAgICAgIFN0cmluZyBydWxlMiA9IiguKSA8PiAmaGV4L3VuaWNvZGUoJDEpICZuYW1lKCQxKTsgLiA+ICQxOyBbe31dID5cdTAwMjA7IjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIlRlc3QiLCBydWxlLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgICAgIGlmICh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogY3JlYXRlRnJvbVJ1bGVzIHNob3VsZCBoYXZlIHJldHVybmVkIE5VTEwiKTsKKyAgICAgICAgICAgIH0KKwkgICAgICAgIGVycmxuKCJGQUlMOiBPazogLiA+ICQxOyA9PiBubyBlcnJvciIpOworCSAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDI9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiVGVzdDIiLCBydWxlMiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgICAgICBpZiAodDIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjcmVhdGVGcm9tUnVsZXMgc2hvdWxkIGhhdmUgcmV0dXJuZWQgTlVMTCIpOworICAgICAgICAgICAgfQorCSAgICAgICAgZXJybG4oIkZBSUw6IE9rOiAuID4gJDE7ID0+IG5vIGVycm9yIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7ICAgICAgICAKKyAgICAgICAgICAJIGxvZ2xuKCJPazogLiA+ICQxOyA9PiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdE11bHRpY2hhclN0cmluZ1NldCgpIHsKKyAgICAgICAgLy8gQmFzaWMgdGVzdGluZworICAgICAgICBTdHJpbmcgcnVsZSA9CisgICAgICAgICAgICAiICAgICAgIFt7YWF9XSAgICAgICA+IHg7IiArCisgICAgICAgICAgICAiICAgICAgICAgYSAgICAgICAgICA+IHk7IiArCisgICAgICAgICAgICAiICAgICAgIFtie2JjfV0gICAgICA+IHo7IiArCisgICAgICAgICAgICAiW3tnZH1dIHsgZSAgICAgICAgICA+IHE7IiArCisgICAgICAgICAgICAiICAgICAgICAgZSB9IFt7Zmd9XSA+IHI7IiA7CisgICAgICAgIAorICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJUZXN0IiwgcnVsZSwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIGlmICh0ID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjcmVhdGVGcm9tUnVsZXMgZmFpbGVkIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGV4cGVjdCh0LCAiYSBhYSBhYiBiYyBkIGdkIGRlIGdkZSBnZGVmZyBkZGVmZyIsCisgICAgICAgICAgICAgICAgICAieSB4IHl6IHogZCBnZCBkZSBnZHEgZ2RxZmcgZGRyZmciKTsKKworICAgICAgICAvLyBPdmVybGFwcGVkIHN0cmluZyB0ZXN0LiAgTWFrZSBzdXJlIHRoYXQgd2hlbiBtdWx0aXBsZQorICAgICAgICAvLyBzdHJpbmdzIGNhbiBtYXRjaCB0aGF0IHRoZSBsb25nZXN0IG9uZSBpcyBtYXRjaGVkLgorICAgICAgICBydWxlID0KKyAgICAgICAgICAgICIgICAgW2Ege2FifSB7YWJjfV0gICAgPiB4OyIgKworICAgICAgICAgICAgIiAgICAgICAgICAgYiAgICAgICAgICA+IHk7IiArCisgICAgICAgICAgICAiICAgICAgICAgICBjICAgICAgICAgID4gejsiICsKKyAgICAgICAgICAgICIgcSBbdCB7c3R9IHtyc3R9XSB7IGUgPiBwOyIgOworICAgICAgICAKKyAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiVGVzdCIsIHJ1bGUsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBpZiAodCA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogY3JlYXRlRnJvbVJ1bGVzIGZhaWxlZCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBleHBlY3QodCwgImEgYWIgYWJjIHF0ZSBxc3RlIHFyc3RlIiwKKyAgICAgICAgICAgICAgICAgICJ4IHggeCBxdHAgcXN0cCBxcnN0cCIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdGhhdCB1c2VyLXJlZ2lzdGVyZWQgdHJhbnNsaXRlcmF0b3JzIGNhbiBiZSB1c2VkIHVuZGVyIGZ1bmN0aW9uCisgICAgICogc3ludGF4LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RVc2VyRnVuY3Rpb24oKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQ7CisKKyAgICAgICAgLy8gVGhlcmUncyBubyBuZWVkIHRvIHJlZ2lzdGVyIGludmVyc2VzIGlmIHdlIGRvbid0IHVzZSB0aGVtCisgICAgICAgIFRlc3RVc2VyRnVuY3Rpb25GYWN0b3J5LmFkZCgiQW55LWdpZiIsCisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoImdpZiIsCisgICAgICAgICAgICAgICAgIidcXCd1KC4uKSguLikgPiAnPGltZyBzcmM9XCJodHRwOi8vd3d3LnVuaWNvZGUub3JnL2dpZnMvMjQvJyAkMSAnL1UnICQxJDIgJy5naWZcIj4nOyIsCisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCkpOworICAgICAgICAvL1Rlc3RVc2VyRnVuY3Rpb25GYWN0b3J5LmFkZCgiZ2lmLUFueSIsIFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJBbnktTnVsbCIpKTsKKworICAgICAgICBUZXN0VXNlckZ1bmN0aW9uRmFjdG9yeS5hZGQoIkFueS1SZW1vdmVDdXJseSIsCisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIlJlbW92ZUN1cmx5IiwgIltcXHtcXH1dID4gOyIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpKTsKKyAgICAgICAgLy9UZXN0VXNlckZ1bmN0aW9uRmFjdG9yeS5hZGQoIlJlbW92ZUN1cmx5LUFueSIsIFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJBbnktTnVsbCIpKTsKKworICAgICAgICBsb2dsbigiVHJ5aW5nICZoZXgiKTsKKyAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiaGV4MiIsICIoLikgPiAmaGV4KCQxKTsiLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgbG9nbG4oIlJlZ2lzdGVyaW5nIik7CisgICAgICAgIFRlc3RVc2VyRnVuY3Rpb25GYWN0b3J5LmFkZCgiQW55LWhleDIiLCB0KTsKKyAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJBbnktaGV4MiIpOworICAgICAgICBleHBlY3QodCwgImFiYyIsICJcXHUwMDYxXFx1MDA2MlxcdTAwNjMiKTsKKworICAgICAgICBsb2dsbigiVHJ5aW5nICZnaWYiKTsKKyAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiZ2lmMiIsICIoLikgPiAmR2lmKCZIZXgyKCQxKSk7IiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIGxvZ2xuKCJSZWdpc3RlcmluZyIpOworICAgICAgICBUZXN0VXNlckZ1bmN0aW9uRmFjdG9yeS5hZGQoIkFueS1naWYyIiwgdCk7CisgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiQW55LWdpZjIiKTsKKyAgICAgICAgZXhwZWN0KHQsICJhYiIsICI8aW1nIHNyYz1cImh0dHA6Ly93d3cudW5pY29kZS5vcmcvZ2lmcy8yNC8wMC9VMDA2MS5naWZcIj4iICsKKyAgICAgICAgICAgICAgICI8aW1nIHNyYz1cImh0dHA6Ly93d3cudW5pY29kZS5vcmcvZ2lmcy8yNC8wMC9VMDA2Mi5naWZcIj4iKTsKKworICAgICAgICAvLyBUZXN0IHRoYXQgZmlsdGVycyBhcmUgYWxsb3dlZCBhZnRlciAmCisgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoInRlc3QiLAorICAgICAgICAgICAgICAgICIoLikgPiAmSGV4KCQxKSAnICcgJltcXHtcXH1dUmVtb3ZlKCZOYW1lKCQxKSkgJyAnOyIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBleHBlY3QodCwgImFiYyIsICJcXHUwMDYxIExBVElOIFNNQUxMIExFVFRFUiBBIFxcdTAwNjIgTEFUSU4gU01BTEwgTEVUVEVSIEIgXFx1MDA2MyBMQVRJTiBTTUFMTCBMRVRURVIgQyAiKTsKKworICAgICAgICAvLyBVbnJlZ2lzdGVyIG91ciB0ZXN0IHN0dWZmCisgICAgICAgIFRlc3RVc2VyRnVuY3Rpb25GYWN0b3J5LnVucmVnaXN0ZXIoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgVGVzdFVzZXJGdW5jdGlvbkZhY3RvcnkgaW1wbGVtZW50cyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5IHsKKyAgICAgICAgc3RhdGljIFRlc3RVc2VyRnVuY3Rpb25GYWN0b3J5IHNpbmdsZXRvbiA9IG5ldyBUZXN0VXNlckZ1bmN0aW9uRmFjdG9yeSgpOworICAgICAgICBzdGF0aWMgSGFzaE1hcCBtID0gbmV3IEhhc2hNYXAoKTsKKworICAgICAgICBzdGF0aWMgdm9pZCBhZGQoU3RyaW5nIElELCBUcmFuc2xpdGVyYXRvciB0KSB7CisgICAgICAgICAgICBtLnB1dChuZXcgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nKElEKSwgdCk7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoSUQsIHNpbmdsZXRvbik7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgICAgICByZXR1cm4gKFRyYW5zbGl0ZXJhdG9yKSBtLmdldChuZXcgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nKElEKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHN0YXRpYyB2b2lkIHVucmVnaXN0ZXIoKSB7CisgICAgICAgICAgICBJdGVyYXRvciBpZHMgPSBtLmtleVNldCgpLml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAoaWRzLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIENhc2VJbnNlbnNpdGl2ZVN0cmluZyBpZCA9IChDYXNlSW5zZW5zaXRpdmVTdHJpbmcpIGlkcy5uZXh0KCk7CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IudW5yZWdpc3RlcihpZC5nZXRTdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgaWRzLnJlbW92ZSgpOyAvLyByZW1vdmVzIHBhaXIgZnJvbSBtCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBBbnktWCB0cmFuc2xpdGVyYXRvcnMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEFueVgoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGFueUxhdGluID0KKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJBbnktTGF0aW4iLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgCisgICAgICAgIGV4cGVjdChhbnlMYXRpbiwKKyAgICAgICAgICAgICAgICJncmVlazpcdTAzQjFcdTAzQjJcdTAzQkFcdTAzOTFcdTAzOTJcdTAzOUEgaGlyYWdhbmE6XHUzMDQyXHUzMDc2XHUzMDRGIGN5cmlsbGljOlx1MDQzMFx1MDQzMVx1MDQ0NiIsCisgICAgICAgICAgICAgICAiZ3JlZWs6YWJrQUJLIGhpcmFnYW5hOmFidWt1IGN5cmlsbGljOmFiYyIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlIHNvdXJjZSBhbmQgdGFyZ2V0IHNldCBBUEkuICBUaGVzZSBhcmUgb25seSBpbXBsZW1lbnRlZAorICAgICAqIGZvciBSQlQgYW5kIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IgYXQgdGhpcyB0aW1lLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTb3VyY2VUYXJnZXRTZXQoKSB7CisgICAgICAgIC8vIFJ1bGVzCisgICAgICAgIFN0cmluZyByID0KKyAgICAgICAgICAgICJhID4gYjsgIiArCisgICAgICAgICAgICAiciBbeHtsdX1dID4gcTsiOworCisgICAgICAgIC8vIEV4cGVjdGVkIHNvdXJjZQorICAgICAgICBVbmljb2RlU2V0IGV4cFNyYyA9IG5ldyBVbmljb2RlU2V0KCJbYXJ4e2x1fV0iKTsKKworICAgICAgICAvLyBFeHBlY3RlZCB0YXJnZXQKKyAgICAgICAgVW5pY29kZVNldCBleHBUcmcgPSBuZXcgVW5pY29kZVNldCgiW2JxXSIpOworCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoInRlc3QiLCByLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgVW5pY29kZVNldCBzcmMgPSB0LmdldFNvdXJjZVNldCgpOworICAgICAgICBVbmljb2RlU2V0IHRyZyA9IHQuZ2V0VGFyZ2V0U2V0KCk7CisKKyAgICAgICAgaWYgKHNyYy5lcXVhbHMoZXhwU3JjKSAmJiB0cmcuZXF1YWxzKGV4cFRyZykpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIHIgKyAiID0+IHNvdXJjZSA9ICIgKyBzcmMudG9QYXR0ZXJuKHRydWUpICsKKyAgICAgICAgICAgICAgICAgICIsIHRhcmdldCA9ICIgKyB0cmcudG9QYXR0ZXJuKHRydWUpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgciArICIgPT4gc291cmNlID0gIiArIHNyYy50b1BhdHRlcm4odHJ1ZSkgKworICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQgIiArIGV4cFNyYy50b1BhdHRlcm4odHJ1ZSkgKworICAgICAgICAgICAgICAgICAgIjsgdGFyZ2V0ID0gIiArIHRyZy50b1BhdHRlcm4odHJ1ZSkgKworICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQgIiArIGV4cFRyZy50b1BhdHRlcm4odHJ1ZSkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBoYW5kbGluZyBvZiBydWxlIHdoaXRlc3BhY2UsIGZvciBib3RoIFJCVCBhbmQgVW5pY29kZVNldC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UnVsZVdoaXRlc3BhY2UoKSB7CisgICAgICAgIC8vIFJ1bGVzCisgICAgICAgIFN0cmluZyByID0gImEgPiBcdTIwMEUgYjsiOworCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoInRlc3QiLCByLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKworICAgICAgICBleHBlY3QodCwgImEiLCAiYiIpOworCisgICAgICAgIC8vIFVuaWNvZGVTZXQKKyAgICAgICAgVW5pY29kZVNldCBzZXQgPSBuZXcgVW5pY29kZVNldCgiW2EgXHUyMDBFXSIpOworCisgICAgICAgIGlmIChzZXQuY29udGFpbnMoMHgyMDBFKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFUrMjAwRSBub3QgYmVpbmcgaWdub3JlZCBieSBVbmljb2RlU2V0Iik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBUaGVzZSB0ZXN0cyBhcmUgbm90IG1pcnJvcmVkICh5ZXQpIGluIGljdTRjIGF0CisgICAgLy8gc291cmNlL3Rlc3QvaW50bHRlc3QvdHJhbnN0c3QuY3BwCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBJbXByb3ZlIGNvZGUgY292ZXJhZ2UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENvdmVyYWdlKCkgeworICAgICAgICAvLyBOdWxsVHJhbnNsaXRlcmF0b3IKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJOdWxsIiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIGV4cGVjdCh0LCAiYSIsICJhIik7CisgICAgfQorCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gU3VwcG9ydCBtZXRob2RzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgdm9pZCBleHBlY3QoU3RyaW5nIHJ1bGVzLAorICAgICAgICAgICAgICAgIFN0cmluZyBzb3VyY2UsCisgICAgICAgICAgICAgICAgU3RyaW5nIGV4cGVjdGVkUmVzdWx0LAorICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uIHBvcykgeworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCI8SUQ+IiwgcnVsZXMsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBleHBlY3QodCwgc291cmNlLCBleHBlY3RlZFJlc3VsdCwgcG9zKTsKKyAgICB9CisKKyAgICB2b2lkIGV4cGVjdChTdHJpbmcgcnVsZXMsIFN0cmluZyBzb3VyY2UsIFN0cmluZyBleHBlY3RlZFJlc3VsdCkgeworICAgICAgICBleHBlY3QocnVsZXMsIHNvdXJjZSwgZXhwZWN0ZWRSZXN1bHQsIG51bGwpOworICAgIH0KKworICAgIHZvaWQgZXhwZWN0KFRyYW5zbGl0ZXJhdG9yIHQsIFN0cmluZyBzb3VyY2UsIFN0cmluZyBleHBlY3RlZFJlc3VsdCwKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciByZXZlcnNlVHJhbnNsaXRlcmF0b3IpIHsKKyAgICAgICAgZXhwZWN0KHQsIHNvdXJjZSwgZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBpZiAocmV2ZXJzZVRyYW5zbGl0ZXJhdG9yICE9IG51bGwpIHsKKyAgICAgICAgICAgIGV4cGVjdChyZXZlcnNlVHJhbnNsaXRlcmF0b3IsIGV4cGVjdGVkUmVzdWx0LCBzb3VyY2UpOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBleHBlY3QoVHJhbnNsaXRlcmF0b3IgdCwgU3RyaW5nIHNvdXJjZSwgU3RyaW5nIGV4cGVjdGVkUmVzdWx0KSB7CisgICAgICAgIGV4cGVjdCh0LCBzb3VyY2UsIGV4cGVjdGVkUmVzdWx0LCAoVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24pIG51bGwpOworICAgIH0KKworICAgIHZvaWQgZXhwZWN0KFRyYW5zbGl0ZXJhdG9yIHQsIFN0cmluZyBzb3VyY2UsIFN0cmluZyBleHBlY3RlZFJlc3VsdCwKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgaWYgKHBvcyA9PSBudWxsKSB7CisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gdC50cmFuc2xpdGVyYXRlKHNvdXJjZSk7CisgICAgICAgICAgICBpZiAoIWV4cGVjdEF1eCh0LmdldElEKCkgKyAiOlN0cmluZyIsIHNvdXJjZSwgcmVzdWx0LCBleHBlY3RlZFJlc3VsdCkpIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uIGluZGV4ID0gbnVsbDsKKyAgICAgICAgaWYgKHBvcyA9PSBudWxsKSB7CisgICAgICAgICAgICBpbmRleCA9IG5ldyBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbigwLCBzb3VyY2UubGVuZ3RoKCksIDAsIHNvdXJjZS5sZW5ndGgoKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbmRleCA9IG5ldyBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbihwb3MuY29udGV4dFN0YXJ0LCBwb3MuY29udGV4dExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zLnN0YXJ0LCBwb3MubGltaXQpOworICAgICAgICB9CisKKyAgICAgICAgUmVwbGFjZWFibGVTdHJpbmcgcnNvdXJjZSA9IG5ldyBSZXBsYWNlYWJsZVN0cmluZyhzb3VyY2UpOworCisgICAgICAgIHQuZmluaXNoVHJhbnNsaXRlcmF0aW9uKHJzb3VyY2UsIGluZGV4KTsKKyAgICAgICAgLy8gRG8gaXQgYWxsIGF0IG9uY2UgLS0gYmVsb3cgd2UgZG8gaXQgaW5jcmVtZW50YWxseQorCisgICAgICAgIGlmIChpbmRleC5zdGFydCAhPSBpbmRleC5saW1pdCkgeworICAgICAgICAgICAgZXhwZWN0QXV4KHQuZ2V0SUQoKSArICI6VU5GSU5JU0hFRCIsIHNvdXJjZSwKKyAgICAgICAgICAgICAgICAic3RhcnQ6ICIgKyBpbmRleC5zdGFydCArICIsIGxpbWl0OiAiICsgaW5kZXgubGltaXQsIGZhbHNlLCBleHBlY3RlZFJlc3VsdCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IHJzb3VyY2UudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKCFleHBlY3RBdXgodC5nZXRJRCgpICsgIjpSZXBsYWNlYWJsZSIsIHNvdXJjZSwgcmVzdWx0LCBleHBlY3RlZFJlc3VsdCkpIHJldHVybjsKKworCisgICAgICAgIGlmIChwb3MgPT0gbnVsbCkgeworICAgICAgICAgICAgaW5kZXggPSBuZXcgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24oKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGluZGV4ID0gbmV3IFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uKHBvcy5jb250ZXh0U3RhcnQsIHBvcy5jb250ZXh0TGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3Muc3RhcnQsIHBvcy5saW1pdCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBUZXN0IGluY3JlbWVudGFsIHRyYW5zbGl0ZXJhdGlvbiAtLSB0aGlzIHJlc3VsdAorICAgICAgICAvLyBtdXN0IGJlIHRoZSBzYW1lIGFmdGVyIHdlIGZpbmFsaXplIChzZWUgYmVsb3cpLgorICAgICAgICBWZWN0b3IgdiA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgdi5hZGQoc291cmNlKTsKKyAgICAgICAgcnNvdXJjZS5yZXBsYWNlKDAsIHJzb3VyY2UubGVuZ3RoKCksICIiKTsKKyAgICAgICAgaWYgKHBvcyAhPSBudWxsKSB7CisgICAgICAgICAgICByc291cmNlLnJlcGxhY2UoMCwgMCwgc291cmNlKTsKKyAgICAgICAgICAgIHYuYWRkKFV0aWxpdHkuZm9ybWF0SW5wdXQocnNvdXJjZSwgaW5kZXgpKTsKKyAgICAgICAgICAgIHQudHJhbnNsaXRlcmF0ZShyc291cmNlLCBpbmRleCk7CisgICAgICAgICAgICB2LmFkZChVdGlsaXR5LmZvcm1hdElucHV0KHJzb3VyY2UsIGluZGV4KSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8c291cmNlLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICAvL3YuYWRkKGkgPT0gMCA/ICIiIDogIiArICIgKyBzb3VyY2UuY2hhckF0KGkpICsgIiIpOworICAgICAgICAgICAgICAgIC8vbG9nLmFwcGVuZChzb3VyY2UuY2hhckF0KGkpKS5hcHBlbmQoIiAtPiAiKSk7CisgICAgICAgICAgICAgICAgdC50cmFuc2xpdGVyYXRlKHJzb3VyY2UsIGluZGV4LCBzb3VyY2UuY2hhckF0KGkpKTsKKyAgICAgICAgICAgICAgICAvL3YuYWRkKFV0aWxpdHkuZm9ybWF0SW5wdXQocnNvdXJjZSwgaW5kZXgpICsgc291cmNlLnN1YnN0cmluZyhpKzEpKTsKKyAgICAgICAgICAgICAgICB2LmFkZChVdGlsaXR5LmZvcm1hdElucHV0KHJzb3VyY2UsIGluZGV4KSArCisgICAgICAgICAgICAgICAgICAgICAgKChpPHNvdXJjZS5sZW5ndGgoKS0xKT8oIiArICciICsgc291cmNlLmNoYXJBdChpKzEpICsgIicgLT4iKToiID0+IikpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gQXMgYSBmaW5hbCBzdGVwIGluIGtleWJvYXJkIHRyYW5zbGl0ZXJhdGlvbiwgd2UgbXVzdCBjYWxsCisgICAgICAgIC8vIHRyYW5zbGl0ZXJhdGUgdG8gZmluaXNoIG9mZiBhbnkgcGVuZGluZyBwYXJ0aWFsIG1hdGNoZXMgdGhhdAorICAgICAgICAvLyB3ZXJlIHdhaXRpbmcgZm9yIG1vcmUgaW5wdXQuCisgICAgICAgIHQuZmluaXNoVHJhbnNsaXRlcmF0aW9uKHJzb3VyY2UsIGluZGV4KTsKKyAgICAgICAgcmVzdWx0ID0gcnNvdXJjZS50b1N0cmluZygpOworICAgICAgICAvL2xvZy5hcHBlbmQoIiA9PiAiKS5hcHBlbmQocnNvdXJjZS50b1N0cmluZygpKTsKKyAgICAgICAgdi5hZGQocmVzdWx0KTsKKworICAgICAgICBTdHJpbmdbXSByZXN1bHRzID0gbmV3IFN0cmluZ1t2LnNpemUoKV07CisgICAgICAgIHYuY29weUludG8ocmVzdWx0cyk7CisgICAgICAgIGV4cGVjdEF1eCh0LmdldElEKCkgKyAiOkluY3JlbWVudGFsIiwgcmVzdWx0cywKKyAgICAgICAgICAgICAgICAgIHJlc3VsdC5lcXVhbHMoZXhwZWN0ZWRSZXN1bHQpLAorICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRSZXN1bHQpOworICAgIH0KKworICAgIGJvb2xlYW4gZXhwZWN0QXV4KFN0cmluZyB0YWcsIFN0cmluZyBzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCwgU3RyaW5nIGV4cGVjdGVkUmVzdWx0KSB7CisgICAgICAgIHJldHVybiBleHBlY3RBdXgodGFnLCBuZXcgU3RyaW5nW10ge3NvdXJjZSwgcmVzdWx0fSwKKyAgICAgICAgICAgICAgICAgIHJlc3VsdC5lcXVhbHMoZXhwZWN0ZWRSZXN1bHQpLAorICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRSZXN1bHQpOworICAgIH0KKworICAgIGJvb2xlYW4gZXhwZWN0QXV4KFN0cmluZyB0YWcsIFN0cmluZyBzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCwgYm9vbGVhbiBwYXNzLAorICAgICAgICAgICAgICAgICAgIFN0cmluZyBleHBlY3RlZFJlc3VsdCkgeworICAgICAgICByZXR1cm4gZXhwZWN0QXV4KHRhZywgbmV3IFN0cmluZ1tdIHtzb3VyY2UsIHJlc3VsdH0sCisgICAgICAgICAgICAgICAgICBwYXNzLAorICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRSZXN1bHQpOworICAgIH0KKworICAgIGJvb2xlYW4gZXhwZWN0QXV4KFN0cmluZyB0YWcsIFN0cmluZyBzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBwYXNzLAorICAgICAgICAgICAgICAgICAgIFN0cmluZyBleHBlY3RlZFJlc3VsdCkgeworICAgICAgICByZXR1cm4gZXhwZWN0QXV4KHRhZywgbmV3IFN0cmluZ1tdIHtzb3VyY2V9LAorICAgICAgICAgICAgICAgICAgcGFzcywKKyAgICAgICAgICAgICAgICAgIGV4cGVjdGVkUmVzdWx0KTsKKyAgICB9CisKKyAgICBib29sZWFuIGV4cGVjdEF1eChTdHJpbmcgdGFnLCBTdHJpbmdbXSByZXN1bHRzLCBib29sZWFuIHBhc3MsCisgICAgICAgICAgICAgICAgICAgU3RyaW5nIGV4cGVjdGVkUmVzdWx0KSB7CisgICAgICAgIGxvZ2xuKChwYXNzPyIoIjoiRkFJTDogKCIpK3RhZysiKSIsIHBhc3MpOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmVzdWx0cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIGxhYmVsOworICAgICAgICAgICAgaWYgKGkgPT0gMCkgeworICAgICAgICAgICAgICAgIGxhYmVsID0gInNvdXJjZTogICAiOworICAgICAgICAgICAgfSBlbHNlIGlmIChpID09IHJlc3VsdHMubGVuZ3RoIC0gMSkgeworICAgICAgICAgICAgICAgIGxhYmVsID0gInJlc3VsdDogICAiOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoIWlzVmVyYm9zZSgpICYmIHBhc3MpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGxhYmVsID0gImludGVybSIgKyBpICsgIjogICI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2dsbigiICAgICIgKyBsYWJlbCArIHJlc3VsdHNbaV0sIHBhc3MsIGZhbHNlKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghcGFzcykgeworICAgICAgICAgICAgbG9nbG4oICAiICAgIGV4cGVjdGVkOiAiICsgZXhwZWN0ZWRSZXN1bHQsIHBhc3MsIGZhbHNlKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBwYXNzOworICAgIH0KK30KKworCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvVW5pY29kZUZpbHRlckxvZ2ljVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L1VuaWNvZGVGaWx0ZXJMb2dpY1Rlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jMTExMzM5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L1VuaWNvZGVGaWx0ZXJMb2dpY1Rlc3QuamF2YQpAQCAtMCwwICsxLDE5NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L0F0dGljL1VuaWNvZGVGaWx0ZXJMb2dpY1Rlc3QuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8yNSAyMjo0Mzo1NyAkIAorICogJFJldmlzaW9uOiAxLjUgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnRyYW5zbGl0OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgamF2YS50ZXh0Lio7CitpbXBvcnQgamF2YS51dGlsLio7CisKKy8qKgorICogQHRlc3QKKyAqIEBzdW1tYXJ5IFVuaWNvZGVGaWx0ZXJMb2dpYyB0ZXN0IAorICovCitwdWJsaWMgY2xhc3MgVW5pY29kZUZpbHRlckxvZ2ljVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKworICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBVbmljb2RlRmlsdGVyTG9naWNUZXN0KCkucnVuKGFyZ3MpOworICAgfQorCisKKyAgIFVuaWNvZGVGaWx0ZXIgRmlsdGVyMT1uZXcgVW5pY29kZUZpbHRlcigpIHsKKyAgICAgICAgcHVibGljIGJvb2xlYW4gY29udGFpbnMoaW50IGMpIHsKKyAgICAgICAgICAgIGlmKGMgPT0gMHgwMDYxIHx8IGMgPT0gMHgwMDQxIHx8IGMgPT0gMHgwMDYzIHx8IGMgPT0gMHgwMDQzKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICB9CisgICB9OworICAgVW5pY29kZUZpbHRlciBGaWx0ZXIyPW5ldyBVbmljb2RlRmlsdGVyKCkgeworICAgICAgICBwdWJsaWMgYm9vbGVhbiBjb250YWlucyhpbnQgYykgeworICAgICAgICAgICAgaWYoYyA9PSAweDAwNzkgfHwgYyA9PSAweDAwNTkgfHwgYyA9PSAweDAwN2EgfHwgYyA9PSAweDAwNWEgIHx8IGMgPT0gMHgwMDYxIHx8IGMgPT0gMHgwMDYzKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgfTsKKworICAgcHVibGljIHZvaWQgVGVzdEFsbEZpbHRlcnMoKSB7CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDEgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiQW55LUhleCIpOworICAgICAgICBTdHJpbmcgc291cmNlPSJhYmNkQUJDRHl6WVoiOworCisgICAgICAgIC8vc2FuaXR5IHRlc3Rpbmcgd2lodG91dCBhbnkgZmlsdGVyCisgICAgICAgIGV4cGVjdCh0MSwgIndpdGhvdXQgYW55IEZpbHRlciIsIHNvdXJjZSwgIlx1MDA2MVx1MDA2Mlx1MDA2M1x1MDA2NFx1MDA0MVx1MDA0Mlx1MDA0M1x1MDA0NFx1MDA3OVx1MDA3QVx1MDA1OVx1MDA1QSIpOworICAgICAgICAvL3Nhbml0eSB0ZXN0aW5nIHVzaW5nIHRoZSBGaWx0ZXIxKGFjQUMpIGFuZCBGaWx0ZXIyKGFjeXpZWikKKyAgICAgICAgdDEuc2V0RmlsdGVyKEZpbHRlcjEpOworICAgICAgICBleHBlY3QodDEsICJ3aXRoIEZpbHRlcihhY0FDKSIsIHNvdXJjZSwgImFcdTAwNjJjXHUwMDY0QVx1MDA0MkNcdTAwNDRcdTAwNzlcdTAwN0FcdTAwNTlcdTAwNUEiKTsKKyAgICAgICAgdDEuc2V0RmlsdGVyKEZpbHRlcjIpOworICAgICAgICBleHBlY3QodDEsICJ3aXRoIEZpbHRlcjIoYWN5ellaKSIsIHNvdXJjZSwgImFcdTAwNjJjXHUwMDY0XHUwMDQxXHUwMDQyXHUwMDQzXHUwMDQ0eXpZWiIpOworCisgICAgICAgIFVuaWNvZGVGaWx0ZXIgZmlsdGVyTk9UPVVuaWNvZGVGaWx0ZXJMb2dpYy5ub3QoRmlsdGVyMSk7CisgICAgICAgIFVuaWNvZGVGaWx0ZXIgZmlsdGVyQU5EPVVuaWNvZGVGaWx0ZXJMb2dpYy5hbmQoRmlsdGVyMSwgRmlsdGVyMik7CisgICAgICAgIFVuaWNvZGVGaWx0ZXIgZmlsdGVyT1I9VW5pY29kZUZpbHRlckxvZ2ljLm9yKEZpbHRlcjEsIEZpbHRlcjIpOworCisgICAgICAgIGNoZWNrTk9UKHQxLCBGaWx0ZXIxLCAiRmlsdGVyKGFjQUMpIiwgIHNvdXJjZSwgIlx1MDA2MWJcdTAwNjNkXHUwMDQxQlx1MDA0M0R5ellaIik7CisgICAgICAgIGNoZWNrTk9UKHQxLCBGaWx0ZXIyLCAiRmlsdGVyKGFjeXpZWikiLCBzb3VyY2UsICJcdTAwNjFiXHUwMDYzZEFCQ0RcdTAwNzlcdTAwN0FcdTAwNTlcdTAwNUEiKTsKKyAgICAgICAvLyBjaGVja05PVCh0MSwgbnVsbCwgIk5VTEwiLCBzb3VyY2UsICJhYmNkQUJDRHl6WVoiKTsKKyAgICAgICAgY2hlY2tOT1QodDEsIGZpbHRlck5PVCwgIkZpbHRlck5PVChGaXRsZXIxKGFjQUMpKSIsIHNvdXJjZSwgCisgICAgICAgICAgICAgICAgICJhXHUwMDYyY1x1MDA2NEFcdTAwNDJDXHUwMDQ0XHUwMDc5XHUwMDdBXHUwMDU5XHUwMDVBIik7CisgICAgICAgIGNoZWNrTk9UKHQxLCBmaWx0ZXJBTkQsICJGaWx0ZXJBTkQoRml0bGVyMShhY0FDKSwgIEZpbHRlcjIoYWN5ellaKSkiLCAgc291cmNlLCAKKyAgICAgICAgICAgICAgICAgICJcdTAwNjFiXHUwMDYzZFx1MDA0MUJcdTAwNDNEXHUwMDc5XHUwMDdBXHUwMDU5XHUwMDVBIik7CisgICAgICAgIGNoZWNrTk9UKHQxLCBmaWx0ZXJPUiwgIkZpbHRlck9SKEZpdGxlcjEoYWNBQyksICBGaWx0ZXIyKGFjeXpZWikpIiwgIHNvdXJjZSwgCisgICAgICAgICAgICAgICAgICJcdTAwNjFiXHUwMDYzZEFCQ0R5ellaIik7CisKKyAgICAgICAgY2hlY2tBTkQodDEsIEZpbHRlcjEsIEZpbHRlcjIsICJGaWx0ZXIxKGEsYyxBLEMpLCBGaWx0ZXIyKGFjeXpZWikiLCAgc291cmNlLCAKKyAgICAgICAgICAgICAgICAgImFcdTAwNjJjXHUwMDY0QVx1MDA0MkNcdTAwNDR5ellaIik7CisgICAgICAgIGNoZWNrQU5EKHQxLCBGaWx0ZXIyLCBGaWx0ZXIxLCAiRmlsdGVyMihhY3l6WVopLCBGaWx0ZXIxKGEsYyxBLEMpLCAiLCBzb3VyY2UsIAorICAgICAgICAgICAgICAgICAiYVx1MDA2MmNcdTAwNjRBXHUwMDQyQ1x1MDA0NHl6WVoiKTsKKyAgICAgICAgY2hlY2tBTkQodDEsIEZpbHRlcjEsIG51bGwsICJGaWx0ZXIxKGEsYyxBLEMpLCBOVUxMIiwgIHNvdXJjZSwgCisgICAgICAgICAgICAgICAgICJhXHUwMDYyY1x1MDA2NEFcdTAwNDJDXHUwMDQ0XHUwMDc5XHUwMDdBXHUwMDU5XHUwMDVBIik7CisgICAgICAgIGNoZWNrQU5EKHQxLCBudWxsLCBGaWx0ZXIyLCAiTlVMTCwgRmlsdGVyMihhY3l6WVopIiwgICBzb3VyY2UsIAorICAgICAgICAgICAgICAgICAiYVx1MDA2MmNcdTAwNjRcdTAwNDFcdTAwNDJcdTAwNDNcdTAwNDR5ellaIik7CisgICAgICAgIGNoZWNrQU5EKHQxLCBudWxsLCBudWxsLCAiTlVMTCwgTlVMTCIsICBzb3VyY2UsIAorICAgICAgICAgICAgICAgICAiXHUwMDYxXHUwMDYyXHUwMDYzXHUwMDY0XHUwMDQxXHUwMDQyXHUwMDQzXHUwMDQ0XHUwMDc5XHUwMDdBXHUwMDU5XHUwMDVBIik7CisgICAgICAgIGNoZWNrQU5EKHQxLCBmaWx0ZXJBTkQsIG51bGwsICJGaWx0ZXJBTkQoRml0bGVyMShhY0FDKSwgIEZpbHRlcjIoYWN5ellaKSksIE5VTEwiLCAgc291cmNlLAorICAgICAgICAgICAgICAgICAgImFcdTAwNjJjXHUwMDY0QVx1MDA0MkNcdTAwNDR5ellaIik7CisgICAgICAgIGNoZWNrQU5EKHQxLCBmaWx0ZXJBTkQsIEZpbHRlcjEsICJGaWx0ZXJBTkQoRml0bGVyMShhY0FDKSwgIEZpbHRlcjIoYWN5ellaKSksIEZpbHRlcjEoYWNBQykiLCBzb3VyY2UsIAorICAgICAgICAgICAgICAgICAiYVx1MDA2MmNcdTAwNjRBXHUwMDQyQ1x1MDA0NHl6WVoiKTsKKyAgICAgICAgY2hlY2tBTkQodDEsIGZpbHRlckFORCwgRmlsdGVyMiwgIkZpbHRlckFORChGaXRsZXIxKGFjQUMpLCAgRmlsdGVyMihhY3l6WVopKSwgRmlsdGVyMihhY3l6WVopIiwgc291cmNlLCAKKyAgICAgICAgICAgICAgICAgImFcdTAwNjJjXHUwMDY0QVx1MDA0MkNcdTAwNDR5ellaIik7CisgICAgICAgIGNoZWNrQU5EKHQxLCBGaWx0ZXIxLCBmaWx0ZXJBTkQsICJGaWx0ZXIxKGFjQUMpLCBGaWx0ZXJBTkQoRmlsdGVyMShhY0FDKSwgRml0bGVyMShhY0FDKSkiLCBzb3VyY2UsCisgICAgICAgICAgICAgICAgICAiYVx1MDA2MmNcdTAwNjRBXHUwMDQyQ1x1MDA0NHl6WVoiKTsKKyAgICAgICAgY2hlY2tBTkQodDEsIEZpbHRlcjIsIGZpbHRlckFORCwgIkZpbHRlcjIoYWN5ellaKSwgRmlsdGVyQU5EKEZpbHRlcjEoYWNBQyksIEZpdGxlcjEoYWNBQykpIiwgc291cmNlLCAKKyAgICAgICAgICAgICAgICAgImFcdTAwNjJjXHUwMDY0QVx1MDA0MkNcdTAwNDR5ellaIik7CisgICAgICAgIGNoZWNrQU5EKHQxLCBmaWx0ZXJPUiwgbnVsbCwgIkZpbHRlck9SKEZpdGxlcjEoYWNBQyksICBGaWx0ZXIyKGFjeXpZWikpLCBOVUxMIiwgIHNvdXJjZSwgCisgICAgICAgICAgICAgICAgICJhXHUwMDYyY1x1MDA2NFx1MDA0MVx1MDA0Mlx1MDA0M1x1MDA0NFx1MDA3OVx1MDA3QVx1MDA1OVx1MDA1QSIpOworICAgICAgICBjaGVja0FORCh0MSwgZmlsdGVyT1IsIEZpbHRlcjEsICJGaWx0ZXJPUihGaXRsZXIxKGFjQUMpLCAgRmlsdGVyMihhY3l6WVopKSwgRml0bGVyMShhY0FDKSIsIHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgImFcdTAwNjJjXHUwMDY0QVx1MDA0MkNcdTAwNDRcdTAwNzlcdTAwN0FcdTAwNTlcdTAwNUEiKTsKKyAgICAgICAgY2hlY2tBTkQodDEsIGZpbHRlck9SLCBGaWx0ZXIyLCAiRmlsdGVyT1IoRml0bGVyMShhY0FDKSwgIEZpbHRlcjIoYWN5ellaKSksIEZpdGxlcjIoYWN5ellaKSIsIHNvdXJjZSwgCisgICAgICAgICAgICAgICAgICJhXHUwMDYyY1x1MDA2NFx1MDA0MVx1MDA0Mlx1MDA0M1x1MDA0NHl6WVoiKTsKKyAgICAgICAgY2hlY2tBTkQodDEsIGZpbHRlck5PVCwgRmlsdGVyMSwgIkZpbHRlck5PVChGaXRsZXIxKGFjQUMpKSwgRml0bGVyMShhY0FDKSIsIHNvdXJjZSwgCisgICAgICAgICAgICAgICAgICJhYmNkQUJDRHl6WVoiKTsKKyAgICAgICAgY2hlY2tBTkQodDEsIEZpbHRlcjEsIGZpbHRlck5PVCwgIkZpdGxlcjEoYWNBQyksIEZpbHRlck5PVChGaXRsZXIxKGFjQUMpKSIsIHNvdXJjZSwgCisgICAgICAgICAgICAgICAgICJhYmNkQUJDRHl6WVoiKTsKKyAgICAgICAgY2hlY2tBTkQodDEsIGZpbHRlck5PVCwgRmlsdGVyMiwgIkZpbHRlck5PVChGaXRsZXIxKGFjQUMpKSwgRml0bGVyMihhY3l6WVopIiwgc291cmNlLCAKKyAgICAgICAgICAgICAgICAgImFiY2RcdTAwNDFCXHUwMDQzRHl6WVoiKTsKKyAgICAgICAgY2hlY2tBTkQodDEsIEZpbHRlcjIsIGZpbHRlck5PVCwgIkZpdGxlcjIoYWN5ellaKSwgRmlsdGVyTk9UKEZpdGxlcjEoYWNBQykpIiwgc291cmNlLCAKKyAgICAgICAgICAgICAgICAgImFiY2RcdTAwNDFCXHUwMDQzRHl6WVoiKTsKKworICAgICAgICBjaGVja09SKHQxLCBGaWx0ZXIxLCBGaWx0ZXIyLCAiRmlsdGVyMShhLGMsQSxDKSwgRmlsdGVyMihhY3l6WVopIiwgIHNvdXJjZSwKKyAgICAgICAgICAgICAgICAiYVx1MDA2MmNcdTAwNjRcdTAwNDFcdTAwNDJcdTAwNDNcdTAwNDRcdTAwNzlcdTAwN0FcdTAwNTlcdTAwNUEiKTsKKyAgICAgICAgY2hlY2tPUih0MSwgRmlsdGVyMiwgRmlsdGVyMSwgIkZpbHRlcjIoYWN5ellaKSwgRmlsdGVyMShhLGMsQSxDKSIsIHNvdXJjZSwgCisgICAgICAgICAgICAgICAgImFcdTAwNjJjXHUwMDY0XHUwMDQxXHUwMDQyXHUwMDQzXHUwMDQ0XHUwMDc5XHUwMDdBXHUwMDU5XHUwMDVBIik7CisgICAgICAgIGNoZWNrT1IodDEsIEZpbHRlcjEsIG51bGwsICJGaWx0ZXIxKGEsYyxBLEMpLCBOVUxMIiwgc291cmNlLCAKKyAgICAgICAgICAgICAgICAiYVx1MDA2MmNcdTAwNjRBXHUwMDQyQ1x1MDA0NFx1MDA3OVx1MDA3QVx1MDA1OVx1MDA1QSIpOworICAgICAgICBjaGVja09SKHQxLCBudWxsLCBGaWx0ZXIyLCAiTlVMTCwgRmlsdGVyMihhY3l6WVopIiwgIHNvdXJjZSwgCisgICAgICAgICAgICAgICAgImFcdTAwNjJjXHUwMDY0XHUwMDQxXHUwMDQyXHUwMDQzXHUwMDQ0eXpZWiIpOworICAgICAgICBjaGVja09SKHQxLCBudWxsLCBudWxsLCAiTlVMTCwgTlVMTCIsICAgc291cmNlLCAKKyAgICAgICAgICAgICAgICAiXHUwMDYxXHUwMDYyXHUwMDYzXHUwMDY0XHUwMDQxXHUwMDQyXHUwMDQzXHUwMDQ0XHUwMDc5XHUwMDdBXHUwMDU5XHUwMDVBIik7CisgICAgICAgIGNoZWNrT1IodDEsIGZpbHRlckFORCwgbnVsbCwgIkZpbHRlckFORChGaXRsZXIxKGFjQUMpLCAgRmlsdGVyMihhY3l6WVopKSwgTlVMTCIsIHNvdXJjZSwgCisgICAgICAgICAgICAgICAgImFcdTAwNjJjXHUwMDY0QVx1MDA0MkNcdTAwNDR5ellaIik7CisgICAgICAgIGNoZWNrT1IodDEsIGZpbHRlckFORCwgRmlsdGVyMSwgIkZpbHRlckFORChGaXRsZXIxKGFjQUMpLCAgRmlsdGVyMihhY3l6WVopKSwgRmlsdGVyMShhY0FDKSIsIHNvdXJjZSwgCisgICAgICAgICAgICAgICAgImFcdTAwNjJjXHUwMDY0QVx1MDA0MkNcdTAwNDRcdTAwNzlcdTAwN0FcdTAwNTlcdTAwNUEiKTsKKyAgICAgICAgY2hlY2tPUih0MSwgZmlsdGVyQU5ELCBGaWx0ZXIyLCAiRmlsdGVyQU5EKEZpdGxlcjEoYWNBQyksICBGaWx0ZXIyKGFjeXpZWikpLCBGaWx0ZXIyKGFjeXpZWikiLCBzb3VyY2UsIAorICAgICAgICAgICAgICAgICJhXHUwMDYyY1x1MDA2NFx1MDA0MVx1MDA0Mlx1MDA0M1x1MDA0NHl6WVoiKTsKKyAgICAgICAgY2hlY2tPUih0MSwgRmlsdGVyMSwgZmlsdGVyQU5ELCAiRmlsdGVyMShhY0FDKSwgRmlsdGVyQU5EKEZpbHRlcjEoYWNBQyksIEZpdGxlcjEoYWNBQykpIiwgc291cmNlLCAKKyAgICAgICAgICAgICAgICAiYVx1MDA2MmNcdTAwNjRBXHUwMDQyQ1x1MDA0NFx1MDA3OVx1MDA3QVx1MDA1OVx1MDA1QSIpOworICAgICAgICBjaGVja09SKHQxLCBGaWx0ZXIyLCBmaWx0ZXJBTkQsICJGaWx0ZXIyKGFjeXpZWiksIEZpbHRlckFORChGaWx0ZXIxKGFjQUMpLCBGaXRsZXIxKGFjQUMpKSIsIHNvdXJjZSwgCisgICAgICAgICAgICAgICAgImFcdTAwNjJjXHUwMDY0XHUwMDQxXHUwMDQyXHUwMDQzXHUwMDQ0eXpZWiIpOworICAgICAgICBjaGVja09SKHQxLCBmaWx0ZXJOT1QsIEZpbHRlcjEsICJGaWx0ZXJOT1QoRml0bGVyMShhY0FDKSksIEZpdGxlcjEoYWNBQykiLCBzb3VyY2UsIAorICAgICAgICAgICAgICAgICJcdTAwNjFcdTAwNjJcdTAwNjNcdTAwNjRcdTAwNDFcdTAwNDJcdTAwNDNcdTAwNDRcdTAwNzlcdTAwN0FcdTAwNTlcdTAwNUEiKTsKKyAgICAgICAgY2hlY2tPUih0MSwgRmlsdGVyMSwgZmlsdGVyTk9ULCAiRml0bGVyMShhY0FDKSwgRmlsdGVyTk9UKEZpdGxlcjEoYWNBQykpIiwgIHNvdXJjZSwgCisgICAgICAgICAgICAgICAgIlx1MDA2MVx1MDA2Mlx1MDA2M1x1MDA2NFx1MDA0MVx1MDA0Mlx1MDA0M1x1MDA0NFx1MDA3OVx1MDA3QVx1MDA1OVx1MDA1QSIpOworICAgICAgICBjaGVja09SKHQxLCBmaWx0ZXJOT1QsIEZpbHRlcjIsICJGaWx0ZXJOT1QoRml0bGVyMShhY0FDKSksIEZpdGxlcjEoYWN5ellaKSIsICBzb3VyY2UsIAorICAgICAgICAgICAgICAgICJcdTAwNjFcdTAwNjJcdTAwNjNcdTAwNjRcdTAwNDFcdTAwNDJcdTAwNDNcdTAwNDR5ellaIik7CisgICAgICAgIGNoZWNrT1IodDEsIEZpbHRlcjIsIGZpbHRlck5PVCwgIkZpdGxlcjIoYWN5ellaKSwgRmlsdGVyTk9UKEZpdGxlcjEoYWNBQykpIiwgc291cmNlLCAKKyAgICAgICAgICAgICAgICAiXHUwMDYxXHUwMDYyXHUwMDYzXHUwMDY0XHUwMDQxXHUwMDQyXHUwMDQzXHUwMDQ0eXpZWiIpOworCisgIAorfQorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIFN1cHBvcnQgbWV0aG9kcworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgdm9pZCBjaGVja09SKFRyYW5zbGl0ZXJhdG9yIHQsCisgICAgICAgICAgICAgICAgICAgVW5pY29kZUZpbHRlciBmMSwgCisgICAgICAgICAgICAgICAgICAgVW5pY29kZUZpbHRlciBmMiwgCisgICAgICAgICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgU3RyaW5nIHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ZWQpeworICAgICAgICBVbmljb2RlRmlsdGVyIGZpbHRlcj1Vbmljb2RlRmlsdGVyTG9naWMub3IoZjEsIGYyKTsKKyAgICAgICAgdC5zZXRGaWx0ZXIoZmlsdGVyKTsKKyAgICAgICAgZXhwZWN0KHQsICJ3aXRoIEZpbHRlck9SKCIgKyBtZXNzYWdlICsgIikiLCBzb3VyY2UsIGV4cGVjdGVkKTsKKworICAgIH0KKyAgICB2b2lkIGNoZWNrQU5EKFRyYW5zbGl0ZXJhdG9yIHQsCisgICAgICAgICAgICAgICAgICAgVW5pY29kZUZpbHRlciBmMSwgCisgICAgICAgICAgICAgICAgICAgVW5pY29kZUZpbHRlciBmMiwgCisgICAgICAgICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgU3RyaW5nIHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ZWQpeworICAgICAgICBVbmljb2RlRmlsdGVyIGZpbHRlcj1Vbmljb2RlRmlsdGVyTG9naWMuYW5kKGYxLCBmMik7CisgICAgICAgIHQuc2V0RmlsdGVyKGZpbHRlcik7CisgICAgICAgIGV4cGVjdCh0LCAid2l0aCBGaWx0ZXJBTkQoIiArIG1lc3NhZ2UgKyAiKSIsIHNvdXJjZSwgZXhwZWN0ZWQpOworCisgICAgfQorICAgIHZvaWQgY2hlY2tOT1QoVHJhbnNsaXRlcmF0b3IgdCwKKyAgICAgICAgICAgICAgICAgICBVbmljb2RlRmlsdGVyIGYxLCAKKyAgICAgICAgICAgICAgICAgICBTdHJpbmcgbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICBTdHJpbmcgc291cmNlLAorICAgICAgICAgICAgICAgICAgIFN0cmluZyBleHBlY3RlZCl7CisgICAgICAgIFVuaWNvZGVGaWx0ZXIgZmlsdGVyPVVuaWNvZGVGaWx0ZXJMb2dpYy5ub3QoZjEpOworICAgICAgICB0LnNldEZpbHRlcihmaWx0ZXIpOworICAgICAgICBleHBlY3QodCwgIndpdGggRmlsdGVyTk9UKCIgKyBtZXNzYWdlICsgIikiLCBzb3VyY2UsIGV4cGVjdGVkKTsKKworICAgIH0gIAorICAgIHZvaWQgZXhwZWN0KFRyYW5zbGl0ZXJhdG9yIHQsICBTdHJpbmcgbWVzc2FnZSwgIFN0cmluZyBzb3VyY2UsICBTdHJpbmcgZXhwZWN0ZWRSZXN1bHQpIHsKKyAgICAgICAgU3RyaW5nIHJzb3VyY2UgPSBzb3VyY2U7CisgICAgICAgIHQudHJhbnNsaXRlcmF0ZShyc291cmNlKTsKKyAgICAgICAgZXhwZWN0QXV4KHQuZ2V0SUQoKSArICI6UmVwbGFjZWFibGUgIiArIG1lc3NhZ2UsIHNvdXJjZSArICItPiIgKyByc291cmNlLCBleHBlY3RlZFJlc3VsdC5lcXVhbHMocnNvdXJjZSksIGV4cGVjdGVkUmVzdWx0KTsKKworICAgIH0KKyAgICB2b2lkIGV4cGVjdEF1eChTdHJpbmcgdGFnLCBTdHJpbmcgc3VtbWFyeSwgYm9vbGVhbiBwYXNzLCBTdHJpbmcgZXhwZWN0ZWRSZXN1bHQpIHsKKyAgICAgICAgaWYgKHBhc3MpIHsKKyAgICAgICAgICAgIGxvZ2xuKCIoIiArIHRhZysgIikgIiArIFV0aWxpdHkuZXNjYXBlKHN1bW1hcnkpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAoIisgdGFnKyAiKSAiCisgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmVzY2FwZShzdW1tYXJ5KQorICAgICAgICAgICAgICAgICsgIiwgZXhwZWN0ZWQgIiArIFV0aWxpdHkuZXNjYXBlKGV4cGVjdGVkUmVzdWx0KSk7CisgICAgICAgIH0KKyAgICB9CisKK30KKworCisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9Vbmljb2RlU2V0VGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L1VuaWNvZGVTZXRUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjBmOTdkNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9Vbmljb2RlU2V0VGVzdC5qYXZhCkBAIC0wLDAgKzEsMTE3MiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L1VuaWNvZGVTZXRUZXN0LmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMTAvMDkgMTg6NDg6MzcgJCAKKyAqICRSZXZpc2lvbjogMS4zMC4yLjEgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnRyYW5zbGl0OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgamF2YS50ZXh0Lio7CitpbXBvcnQgamF2YS51dGlsLio7CisKKy8qKgorICogQHRlc3QKKyAqIEBzdW1tYXJ5IEdlbmVyYWwgdGVzdCBvZiBVbmljb2RlU2V0CisgKi8KK3B1YmxpYyBjbGFzcyBVbmljb2RlU2V0VGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgTk9UID0gIiUlJSUiOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBVbmljb2RlU2V0VGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoYXQgdG9QYXR0ZXJuKCkgcm91bmQgdHJpcHMgd2l0aCBzeW50YXggY2hhcmFjdGVycyBhbmQKKyAgICAgKiB3aGl0ZXNwYWNlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RUb1BhdHRlcm4oKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBPVEhFUl9UT1BBVFRFUk5fVEVTVFMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGNoZWNrUGF0KE9USEVSX1RPUEFUVEVSTl9URVNUU1tpXSwgbmV3IFVuaWNvZGVTZXQoT1RIRVJfVE9QQVRURVJOX1RFU1RTW2ldKSk7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gMHgxMEZGRkY7ICsraSkgeworICAgICAgICAgICAgaWYgKChpIDw9IDB4RkYgJiYgIVVDaGFyYWN0ZXIuaXNMZXR0ZXIoaSkpIHx8IFVDaGFyYWN0ZXIuaXNXaGl0ZXNwYWNlKGkpKSB7CisgICAgICAgICAgICAgICAgLy8gY2hlY2sgdmFyaW91cyBjb21iaW5hdGlvbnMgdG8gbWFrZSBzdXJlIHRoZXkgYWxsIHdvcmsuCisgICAgICAgICAgICAgICAgaWYgKGkgIT0gMCAmJiAhdG9QYXR0ZXJuQXV4KGksIGkpKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAoIXRvUGF0dGVybkF1eCgwLCBpKSkgY29udGludWU7CisgICAgICAgICAgICAgICAgaWYgKCF0b1BhdHRlcm5BdXgoaSwgMHhGRkZGKSkgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIFN0cmluZ1tdIE9USEVSX1RPUEFUVEVSTl9URVNUUyA9IHsKKyAgICAgICAgICAgICAgICAiW1s6bGF0aW46XSZbOmdyZWVrOl1dIiwgCisgICAgICAgICAgICAgICAgIltbOmxhdGluOl0tWzpncmVlazpdXSIsCisgICAgICAgICAgICAgICAgIls6bm9uc3BhY2luZyBtYXJrOl0iCisgICAgfTsKKyAgICAKKyAgICAKKyAgICBwdWJsaWMgYm9vbGVhbiB0b1BhdHRlcm5BdXgoaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgIC8vIHVzZSBJbnRlZ2VyLnRvU3RyaW5nIGJlY2F1c2UgVXRpbGl0eS5oZXggZG9lc24ndCBoYW5kbGUgaW50cworICAgICAgICBTdHJpbmcgc291cmNlID0gIjB4IiArIEludGVnZXIudG9TdHJpbmcoc3RhcnQsMTYpLnRvVXBwZXJDYXNlKCk7CisgICAgICAgIGlmIChzdGFydCAhPSBlbmQpIHNvdXJjZSArPSAiLi4weCIgKyBJbnRlZ2VyLnRvU3RyaW5nKGVuZCwxNikudG9VcHBlckNhc2UoKTsKKyAgICAgICAgVW5pY29kZVNldCB0ZXN0U2V0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgdGVzdFNldC5hZGQoc3RhcnQsIGVuZCk7CisgICAgICAgIHJldHVybiBjaGVja1BhdChzb3VyY2UsIHRlc3RTZXQpOworICAgIH0KKyAgICAKKyAgICBib29sZWFuIGNoZWNrUGF0IChTdHJpbmcgc291cmNlLCBVbmljb2RlU2V0IHRlc3RTZXQpIHsKKyAgICAgICAgU3RyaW5nIHBhdCA9ICIiOworICAgICAgICB0cnkgeworICAgICAgICAgICAgLy8gV2hhdCB3ZSB3YW50IHRvIG1ha2Ugc3VyZSBvZiBpcyB0aGF0IGEgcGF0dGVybiBnZW5lcmF0ZWQKKyAgICAgICAgICAgIC8vIGJ5IHRvUGF0dGVybigpLCB3aXRoIG9yIHdpdGhvdXQgZXNjYXBlZCB1bnByaW50YWJsZXMsIGNhbgorICAgICAgICAgICAgLy8gYmUgcGFzc2VkIGJhY2sgaW50byB0aGUgVW5pY29kZVNldCBjb25zdHJ1Y3Rvci4KKyAgICAgICAgICAgIFN0cmluZyBwYXQwID0gdGVzdFNldC50b1BhdHRlcm4odHJ1ZSk7CisgICAgICAgICAgICBpZiAoIWNoZWNrUGF0KHNvdXJjZSArICIgKGVzY2FwZWQpIiwgdGVzdFNldCwgcGF0MCkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy9TdHJpbmcgcGF0MSA9IHVuZXNjYXBlTGVuaWVudGx5KHBhdDApOworICAgICAgICAgICAgLy9pZiAoIWNoZWNrUGF0KHNvdXJjZSArICIgKGluIGNvZGUpIiwgdGVzdFNldCwgcGF0MSkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIHBhdDIgPSB0ZXN0U2V0LnRvUGF0dGVybihmYWxzZSk7CisgICAgICAgICAgICBpZiAoIWNoZWNrUGF0KHNvdXJjZSwgdGVzdFNldCwgcGF0MikpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy9TdHJpbmcgcGF0MyA9IHVuZXNjYXBlTGVuaWVudGx5KHBhdDIpOworICAgICAgICAgICAgLy9pZiAoIWNoZWNrUGF0KHNvdXJjZSArICIgKGluIGNvZGUpIiwgdGVzdFNldCwgcGF0MykpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy9sb2dsbihzb3VyY2UgKyAiID0+ICIgKyBwYXQwICsgIiwgIiArIHBhdDEgKyAiLCAiICsgcGF0MiArICIsICIgKyBwYXQzKTsKKyAgICAgICAgICAgIGxvZ2xuKHNvdXJjZSArICIgPT4gIiArIHBhdDAgKyAiLCAiICsgcGF0Mik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRVhDRVBUSU9OIGluIHRvUGF0dGVybjogIiArIHNvdXJjZSArICIgPT4gIiArIHBhdCk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIGJvb2xlYW4gY2hlY2tQYXQgKFN0cmluZyBzb3VyY2UsIFVuaWNvZGVTZXQgdGVzdFNldCwgU3RyaW5nIHBhdCkgeworICAgICAgICBVbmljb2RlU2V0IHRlc3RTZXQyID0gbmV3IFVuaWNvZGVTZXQocGF0KTsKKyAgICAgICAgaWYgKCF0ZXN0U2V0Mi5lcXVhbHModGVzdFNldCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsIHRvUGF0dGVybjogIiArIHNvdXJjZSArICIgPT4gIiArIHBhdCk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIAorICAgIC8vIE5PVEU6IGNvcGllZCB0aGUgZm9sbG93aW5nIGZyb20gVXRpbGl0eS4gVGhlcmUgb3VnaHQgdG8gYmUgYSB2ZXJzaW9uIGluIHRoZXJlIHdpdGggYSBmbGFnCisgICAgLy8gdGhhdCBkb2VzIHRoZSBKYXZhIHN0dWZmCisgICAgCisgICAgcHVibGljIHN0YXRpYyBpbnQgdW5lc2NhcGVBdChTdHJpbmcgcywgaW50W10gb2Zmc2V0MTYpIHsKKyAgICAgICAgaW50IGM7CisgICAgICAgIGludCByZXN1bHQgPSAwOworICAgICAgICBpbnQgbiA9IDA7CisgICAgICAgIGludCBtaW5EaWcgPSAwOworICAgICAgICBpbnQgbWF4RGlnID0gMDsKKyAgICAgICAgaW50IGJpdHNQZXJEaWdpdCA9IDQ7CisgICAgICAgIGludCBkaWc7CisgICAgICAgIGludCBpOworCisgICAgICAgIC8qIENoZWNrIHRoYXQgb2Zmc2V0IGlzIGluIHJhbmdlICovCisgICAgICAgIGludCBvZmZzZXQgPSBvZmZzZXQxNlswXTsKKyAgICAgICAgaW50IGxlbmd0aCA9IHMubGVuZ3RoKCk7CisgICAgICAgIGlmIChvZmZzZXQgPCAwIHx8IG9mZnNldCA+PSBsZW5ndGgpIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorCisgICAgICAgIC8qIEZldGNoIGZpcnN0IFVDaGFyIGFmdGVyICdcXCcgKi8KKyAgICAgICAgYyA9IFVURjE2LmNoYXJBdChzLCBvZmZzZXQpOworICAgICAgICBvZmZzZXQgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworCisgICAgICAgIC8qIENvbnZlcnQgaGV4YWRlY2ltYWwgYW5kIG9jdGFsIGVzY2FwZXMgKi8KKyAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgIGNhc2UgJ3UnOgorICAgICAgICAgICAgbWluRGlnID0gbWF4RGlnID0gNDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAvKgorICAgICAgICBjYXNlICdVJzoKKyAgICAgICAgICAgIG1pbkRpZyA9IG1heERpZyA9IDg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAneCc6CisgICAgICAgICAgICBtaW5EaWcgPSAxOworICAgICAgICAgICAgbWF4RGlnID0gMjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAqLworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgZGlnID0gVUNoYXJhY3Rlci5kaWdpdChjLCA4KTsKKyAgICAgICAgICAgIGlmIChkaWcgPj0gMCkgeworICAgICAgICAgICAgICAgIG1pbkRpZyA9IDE7CisgICAgICAgICAgICAgICAgbWF4RGlnID0gMzsKKyAgICAgICAgICAgICAgICBuID0gMTsgLyogQWxyZWFkeSBoYXZlIGZpcnN0IG9jdGFsIGRpZ2l0ICovCisgICAgICAgICAgICAgICAgYml0c1BlckRpZ2l0ID0gMzsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBkaWc7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAobWluRGlnICE9IDApIHsKKyAgICAgICAgICAgIHdoaWxlIChvZmZzZXQgPCBsZW5ndGggJiYgbiA8IG1heERpZykgeworICAgICAgICAgICAgICAgIC8vIFRFTVBPUkFSWQorICAgICAgICAgICAgICAgIC8vIFRPRE86IFJlc3RvcmUgdGhlIGNoYXIzMi1iYXNlZCBjb2RlIHdoZW4gVUNoYXJhY3Rlci5kaWdpdAorICAgICAgICAgICAgICAgIC8vIGlzIHdvcmtpbmcgKEJ1ZyA2NikuCisKKyAgICAgICAgICAgICAgICAvL2MgPSBVVEYxNi5jaGFyQXQocywgb2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAvL2RpZyA9IFVDaGFyYWN0ZXIuZGlnaXQoYywgKGJpdHNQZXJEaWdpdCA9PSAzKSA/IDggOiAxNik7CisgICAgICAgICAgICAgICAgYyA9IHMuY2hhckF0KG9mZnNldCk7CisgICAgICAgICAgICAgICAgZGlnID0gQ2hhcmFjdGVyLmRpZ2l0KChjaGFyKWMsIChiaXRzUGVyRGlnaXQgPT0gMykgPyA4IDogMTYpOworICAgICAgICAgICAgICAgIGlmIChkaWcgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0IDw8IGJpdHNQZXJEaWdpdCkgfCBkaWc7CisgICAgICAgICAgICAgICAgLy9vZmZzZXQgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgICAgICsrb2Zmc2V0OworICAgICAgICAgICAgICAgICsrbjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChuIDwgbWluRGlnKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb2Zmc2V0MTZbMF0gPSBvZmZzZXQ7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgLyogQ29udmVydCBDLXN0eWxlIGVzY2FwZXMgaW4gdGFibGUgKi8KKyAgICAgICAgZm9yIChpPTA7IGk8VU5FU0NBUEVfTUFQLmxlbmd0aDsgaSs9MikgeworICAgICAgICAgICAgaWYgKGMgPT0gVU5FU0NBUEVfTUFQW2ldKSB7CisgICAgICAgICAgICAgICAgb2Zmc2V0MTZbMF0gPSBvZmZzZXQ7CisgICAgICAgICAgICAgICAgcmV0dXJuIFVORVNDQVBFX01BUFtpKzFdOworICAgICAgICAgICAgfSBlbHNlIGlmIChjIDwgVU5FU0NBUEVfTUFQW2ldKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKiBJZiBubyBzcGVjaWFsIGZvcm1zIGFyZSByZWNvZ25pemVkLCB0aGVuIGNvbnNpZGVyCisgICAgICAgICAqIHRoZSBiYWNrc2xhc2ggdG8gZ2VuZXJpY2FsbHkgZXNjYXBlIHRoZSBuZXh0IGNoYXJhY3Rlci4gKi8KKyAgICAgICAgb2Zmc2V0MTZbMF0gPSBvZmZzZXQ7CisgICAgICAgIHJldHVybiBjOworICAgIH0KKworICAgIC8qIFRoaXMgbWFwIG11c3QgYmUgaW4gQVNDRU5ESU5HIE9SREVSIE9GIFRIRSBFU0NBUEUgQ09ERSAqLworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIGNoYXJbXSBVTkVTQ0FQRV9NQVAgPSB7CisgICAgICAgIC8qIiAgIDB4MjIsIDB4MjIgKi8KKyAgICAgICAgLyonICAgMHgyNywgMHgyNyAqLworICAgICAgICAvKj8gICAweDNGLCAweDNGICovCisgICAgICAgIC8qXCAgIDB4NUMsIDB4NUMgKi8KKyAgICAgICAgLyphKi8gMHg2MSwgMHgwNywKKyAgICAgICAgLypiKi8gMHg2MiwgMHgwOCwKKyAgICAgICAgLypmKi8gMHg2NiwgMHgwYywKKyAgICAgICAgLypuKi8gMHg2RSwgMHgwYSwKKyAgICAgICAgLypyKi8gMHg3MiwgMHgwZCwKKyAgICAgICAgLyp0Ki8gMHg3NCwgMHgwOSwKKyAgICAgICAgLyp2Ki8gMHg3NiwgMHgwYgorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGFsbCBlc2NhcGVzIGluIGEgZ2l2ZW4gc3RyaW5nIHVzaW5nIHVuZXNjYXBlQXQoKS4KKyAgICAgKiBMZWF2ZSBpbnZhbGlkIGVzY2FwZSBzZXF1ZW5jZXMgdW5jaGFuZ2VkLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHVuZXNjYXBlTGVuaWVudGx5KFN0cmluZyBzKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludFtdIHBvcyA9IG5ldyBpbnRbMV07CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxzLmxlbmd0aCgpOyApIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IHMuY2hhckF0KGkrKyk7CisgICAgICAgICAgICBpZiAoYyA9PSAnXFwnKSB7CisgICAgICAgICAgICAgICAgcG9zWzBdID0gaTsKKyAgICAgICAgICAgICAgICBpbnQgZSA9IHVuZXNjYXBlQXQocywgcG9zKTsKKyAgICAgICAgICAgICAgICBpZiAoZSA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQoYnVmLCBlKTsKKyAgICAgICAgICAgICAgICAgICAgaSA9IHBvc1swXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoYyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RQYXR0ZXJucygpIHsKKyAgICAgICAgVW5pY29kZVNldCBzZXQgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICBleHBlY3RQYXR0ZXJuKHNldCwgIltbYS1tXSZbZC16XSZbay15XV0iLCAgImttIik7CisgICAgICAgIGV4cGVjdFBhdHRlcm4oc2V0LCAiW1thLXpdLVttLXldLVtkLXJdXSIsICAiYWN6eiIpOworICAgICAgICBleHBlY3RQYXR0ZXJuKHNldCwgIlthXFwtel0iLCAgIi0tYWF6eiIpOworICAgICAgICBleHBlY3RQYXR0ZXJuKHNldCwgIlstYXpdIiwgICItLWFhenoiKTsKKyAgICAgICAgZXhwZWN0UGF0dGVybihzZXQsICJbYXotXSIsICAiLS1hYXp6Iik7CisgICAgICAgIGV4cGVjdFBhdHRlcm4oc2V0LCAiW1tbYS16XS1bYWVpb3VdaV1dIiwgImJkZm5wdHZ6Iik7CisKKyAgICAgICAgLy8gVGhyb3cgaW4gYSB0ZXN0IG9mIGNvbXBsZW1lbnQKKyAgICAgICAgc2V0LmNvbXBsZW1lbnQoKTsKKyAgICAgICAgU3RyaW5nIGV4cCA9ICdcdTAwMDAnICsgImFlZW9vdXUiICsgKGNoYXIpKCd6JysxKSArICdcdUZGRkYnOworICAgICAgICBleHBlY3RQYWlycyhzZXQsIGV4cCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENhdGVnb3JpZXMoKSB7CisgICAgICAgIGludCBmYWlsdXJlcyA9IDA7CisgICAgICAgIFVuaWNvZGVTZXQgc2V0ID0gbmV3IFVuaWNvZGVTZXQoIls6THU6XSIpOworICAgICAgICBleHBlY3RDb250YWlubWVudChzZXQsICJBQkMiLCAiYWJjIik7CisKKyAgICAgICAgLy8gTWFrZSBzdXJlIGdlbmVyYXRpb24gb2YgTCBkb2Vzbid0IHBvbGx1dGUgY2FjaGVkIEx1IHNldAorICAgICAgICAvLyBGaXJzdCBnZW5lcmF0ZSBMLCB0aGVuIEx1CisgICAgICAgIC8vIG5vdCB1c2VkIGludCBUT1AgPSAweDIwMDsgLy8gRG9uJ3QgbmVlZCB0byBnbyBvdmVyIHRoZSB3aG9sZSByYW5nZToKKyAgICAgICAgc2V0ID0gbmV3IFVuaWNvZGVTZXQoIls6TDpdIik7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTwweDIwMDsgKytpKSB7CisgICAgICAgICAgICBib29sZWFuIGwgPSBVQ2hhcmFjdGVyLmlzTGV0dGVyKGkpOworICAgICAgICAgICAgaWYgKGwgIT0gc2V0LmNvbnRhaW5zKChjaGFyKWkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEwgY29udGFpbnMgIiArIChjaGFyKWkgKyAiID0gIiArIAorICAgICAgICAgICAgICAgICAgICAgIHNldC5jb250YWlucygoY2hhcilpKSk7CisgICAgICAgICAgICAgICAgaWYgKCsrZmFpbHVyZXMgPT0gMTApIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgc2V0ID0gbmV3IFVuaWNvZGVTZXQoIls6THU6XSIpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8MHgyMDA7ICsraSkgeworICAgICAgICAgICAgYm9vbGVhbiBsdSA9IChVQ2hhcmFjdGVyLmdldFR5cGUoaSkgPT0gVUNoYXJhY3RlckNhdGVnb3J5LlVQUEVSQ0FTRV9MRVRURVIpOworICAgICAgICAgICAgaWYgKGx1ICE9IHNldC5jb250YWlucygoY2hhcilpKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBMdSBjb250YWlucyAiICsgKGNoYXIpaSArICIgPSAiICsgCisgICAgICAgICAgICAgICAgICAgICAgc2V0LmNvbnRhaW5zKChjaGFyKWkpKTsKKyAgICAgICAgICAgICAgICBpZiAoKytmYWlsdXJlcyA9PSAyMCkgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QWRkUmVtb3ZlKCkgeworICAgICAgICBVbmljb2RlU2V0IHNldCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIHNldC5hZGQoJ2EnLCAneicpOworICAgICAgICBleHBlY3RQYWlycyhzZXQsICJheiIpOworICAgICAgICBzZXQucmVtb3ZlKCdtJywgJ3AnKTsKKyAgICAgICAgZXhwZWN0UGFpcnMoc2V0LCAiYWxxeiIpOworICAgICAgICBzZXQucmVtb3ZlKCdlJywgJ2cnKTsKKyAgICAgICAgZXhwZWN0UGFpcnMoc2V0LCAiYWRobHF6Iik7CisgICAgICAgIHNldC5yZW1vdmUoJ2QnLCAnaScpOworICAgICAgICBleHBlY3RQYWlycyhzZXQsICJhY2pscXoiKTsKKyAgICAgICAgc2V0LnJlbW92ZSgnYycsICdyJyk7CisgICAgICAgIGV4cGVjdFBhaXJzKHNldCwgImFic3oiKTsKKyAgICAgICAgc2V0LmFkZCgnZicsICdxJyk7CisgICAgICAgIGV4cGVjdFBhaXJzKHNldCwgImFiZnFzeiIpOworICAgICAgICBzZXQucmVtb3ZlKCdhJywgJ2cnKTsKKyAgICAgICAgZXhwZWN0UGFpcnMoc2V0LCAiaHFzeiIpOworICAgICAgICBzZXQucmVtb3ZlKCdhJywgJ3onKTsKKyAgICAgICAgZXhwZWN0UGFpcnMoc2V0LCAiIik7CisKKyAgICAgICAgLy8gVHJ5IHJlbW92aW5nIGFuIGVudGlyZSBzZXQgZnJvbSBhbm90aGVyIHNldAorICAgICAgICBleHBlY3RQYXR0ZXJuKHNldCwgIltjLXhdIiwgImN4Iik7CisgICAgICAgIFVuaWNvZGVTZXQgc2V0MiA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIGV4cGVjdFBhdHRlcm4oc2V0MiwgIltmLWt5LXphLWJjW3Z3XV0iLCAiYWNma3Z3eXoiKTsKKyAgICAgICAgc2V0LnJlbW92ZUFsbChzZXQyKTsKKyAgICAgICAgZXhwZWN0UGFpcnMoc2V0LCAiZGVsdXh4Iik7CisKKyAgICAgICAgLy8gVHJ5IGFkZGluZyBhbiBlbnRpcmUgc2V0IHRvIGFub3RoZXIgc2V0CisgICAgICAgIGV4cGVjdFBhdHRlcm4oc2V0LCAiW2phY2tpZW1jbGVhbl0iLCAiYWFjY2VlaW4iKTsKKyAgICAgICAgZXhwZWN0UGF0dGVybihzZXQyLCAiW2hpdG9zaGluYW1la2F0YWphbWVzYW5kZXJzb25dIiwgImFhZGVoa21vcnQiKTsKKyAgICAgICAgc2V0LmFkZEFsbChzZXQyKTsKKyAgICAgICAgZXhwZWN0UGFpcnMoc2V0LCAiYWFjZWhvcnQiKTsKKworICAgICAgICAvLyBUZXN0IGNvbW11dGF0aXZpdHkKKyAgICAgICAgZXhwZWN0UGF0dGVybihzZXQsICJbaGl0b3NoaW5hbWVrYXRhamFtZXNhbmRlcnNvbl0iLCAiYWFkZWhrbW9ydCIpOworICAgICAgICBleHBlY3RQYXR0ZXJuKHNldDIsICJbamFja2llbWNsZWFuXSIsICJhYWNjZWVpbiIpOworICAgICAgICBzZXQuYWRkQWxsKHNldDIpOworICAgICAgICBleHBlY3RQYWlycyhzZXQsICJhYWNlaG9ydCIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1ha2Ugc3VyZSBtaW5pbWFsIHJlcHJlc2VudGF0aW9uIGlzIG1haW50YWluZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdE1pbmltYWxSZXAoKSB7CisgICAgICAgIC8vIFRoaXMgaXMgcHJldHR5IHRob3JvdWdobHkgdGVzdGVkIGJ5IGNoZWNrQ2Fub25pY2FsUmVwKCkKKyAgICAgICAgLy8gcnVuIGFnYWluc3QgdGhlIGV4aGF1c3RpdmUgb3BlcmF0aW9uIHJlc3VsdHMuICBVc2UgdGhlIGNvZGUKKyAgICAgICAgLy8gaGVyZSBmb3IgZGVidWdnaW5nIHNwZWNpZmljIHNwb3QgcHJvYmxlbXMuCisgICAgICAgCisgICAgICAgIC8vIDEgb3ZlcmxhcCBhZ2FpbnN0IDIKKyAgICAgICAgVW5pY29kZVNldCBzZXQgPSBuZXcgVW5pY29kZVNldCgiW2gta20tcV0iKTsKKyAgICAgICAgVW5pY29kZVNldCBzZXQyID0gbmV3IFVuaWNvZGVTZXQoIltpLW9dIik7CisgICAgICAgIHNldC5hZGRBbGwoc2V0Mik7CisgICAgICAgIGV4cGVjdFBhaXJzKHNldCwgImhxIik7CisgICAgICAgIC8vIHJpZ2h0CisgICAgICAgIHNldC5hcHBseVBhdHRlcm4oIlthLW1dIik7CisgICAgICAgIHNldDIuYXBwbHlQYXR0ZXJuKCJbZS1vXSIpOworICAgICAgICBzZXQuYWRkQWxsKHNldDIpOworICAgICAgICBleHBlY3RQYWlycyhzZXQsICJhbyIpOworICAgICAgICAvLyBsZWZ0CisgICAgICAgIHNldC5hcHBseVBhdHRlcm4oIltlLW9dIik7CisgICAgICAgIHNldDIuYXBwbHlQYXR0ZXJuKCJbYS1tXSIpOworICAgICAgICBzZXQuYWRkQWxsKHNldDIpOworICAgICAgICBleHBlY3RQYWlycyhzZXQsICJhbyIpOworICAgICAgICAvLyAxIG92ZXJsYXAgYWdhaW5zdCAzCisgICAgICAgIHNldC5hcHBseVBhdHRlcm4oIlthLWVnLW1vLXddIik7CisgICAgICAgIHNldDIuYXBwbHlQYXR0ZXJuKCJbZC1xXSIpOworICAgICAgICBzZXQuYWRkQWxsKHNldDIpOworICAgICAgICBleHBlY3RQYWlycyhzZXQsICJhdyIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RBUEkoKSB7CisgICAgICAgIC8vIGRlZmF1bHQgY3QKKyAgICAgICAgVW5pY29kZVNldCBzZXQgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICBpZiAoIXNldC5pc0VtcHR5KCkgfHwgc2V0LmdldFJhbmdlQ291bnQoKSAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTCwgc2V0IHNob3VsZCBiZSBlbXB0eSBidXQgaXNuJ3Q6ICIgKworICAgICAgICAgICAgICAgICAgc2V0KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGNsZWFyKCksIGlzRW1wdHkoKQorICAgICAgICBzZXQuYWRkKCdhJyk7CisgICAgICAgIGlmIChzZXQuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTCwgc2V0IHNob3VsZG4ndCBiZSBlbXB0eSBidXQgaXM6ICIgKworICAgICAgICAgICAgICAgICAgc2V0KTsKKyAgICAgICAgfQorICAgICAgICBzZXQuY2xlYXIoKTsKKyAgICAgICAgaWYgKCFzZXQuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTCwgc2V0IHNob3VsZCBiZSBlbXB0eSBidXQgaXNuJ3Q6ICIgKworICAgICAgICAgICAgICAgICAgc2V0KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHNpemUoKQorICAgICAgICBzZXQuY2xlYXIoKTsKKyAgICAgICAgaWYgKHNldC5zaXplKCkgIT0gMCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUwsIHNpemUgc2hvdWxkIGJlIDAsIGJ1dCBpcyAiICsgc2V0LnNpemUoKSArCisgICAgICAgICAgICAgICAgICAiOiAiICsgc2V0KTsKKyAgICAgICAgfQorICAgICAgICBzZXQuYWRkKCdhJyk7CisgICAgICAgIGlmIChzZXQuc2l6ZSgpICE9IDEpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMLCBzaXplIHNob3VsZCBiZSAxLCBidXQgaXMgIiArIHNldC5zaXplKCkgKworICAgICAgICAgICAgICAgICAgIjogIiArIHNldCk7CisgICAgICAgIH0KKyAgICAgICAgc2V0LmFkZCgnMScsICc5Jyk7CisgICAgICAgIGlmIChzZXQuc2l6ZSgpICE9IDEwKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTCwgc2l6ZSBzaG91bGQgYmUgMTAsIGJ1dCBpcyAiICsgc2V0LnNpemUoKSArCisgICAgICAgICAgICAgICAgICAiOiAiICsgc2V0KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGNvbnRhaW5zKGZpcnN0LCBsYXN0KQorICAgICAgICBzZXQuY2xlYXIoKTsKKyAgICAgICAgc2V0LmFwcGx5UGF0dGVybigiW0EtWSAxLTggYi1kIGwteV0iKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGk8c2V0LmdldFJhbmdlQ291bnQoKTsgKytpKSB7CisgICAgICAgICAgICBpbnQgYSA9IHNldC5nZXRSYW5nZVN0YXJ0KGkpOworICAgICAgICAgICAgaW50IGIgPSBzZXQuZ2V0UmFuZ2VFbmQoaSk7CisgICAgICAgICAgICBpZiAoIXNldC5jb250YWlucyhhLCBiKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMLCBzaG91bGQgY29udGFpbiAiICsgKGNoYXIpYSArICctJyArIChjaGFyKWIgKworICAgICAgICAgICAgICAgICAgICAgICIgYnV0IGRvZXNuJ3Q6ICIgKyBzZXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHNldC5jb250YWlucygoY2hhcikoYS0xKSwgYikpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCwgc2hvdWxkbid0IGNvbnRhaW4gIiArCisgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpKGEtMSkgKyAnLScgKyAoY2hhciliICsKKyAgICAgICAgICAgICAgICAgICAgICAiIGJ1dCBkb2VzOiAiICsgc2V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChzZXQuY29udGFpbnMoYSwgKGNoYXIpKGIrMSkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwsIHNob3VsZG4ndCBjb250YWluICIgKworICAgICAgICAgICAgICAgICAgICAgIChjaGFyKWEgKyAnLScgKyAoY2hhcikoYisxKSArCisgICAgICAgICAgICAgICAgICAgICAgIiBidXQgZG9lczogIiArIHNldCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBQb3J0ZWQgSW52ZXJzaW9uTGlzdCB0ZXN0LgorICAgICAgICBVbmljb2RlU2V0IGEgPSBuZXcgVW5pY29kZVNldCgoY2hhcikzLChjaGFyKTEwKTsKKyAgICAgICAgVW5pY29kZVNldCBiID0gbmV3IFVuaWNvZGVTZXQoKGNoYXIpNywoY2hhcikxNSk7CisgICAgICAgIFVuaWNvZGVTZXQgYyA9IG5ldyBVbmljb2RlU2V0KCk7CisKKyAgICAgICAgbG9nbG4oImEgWzMtMTBdOiAiICsgYSk7CisgICAgICAgIGxvZ2xuKCJiIFs3LTE1XTogIiArIGIpOworICAgICAgICBjLnNldChhKTsgYy5hZGRBbGwoYik7CisgICAgICAgIFVuaWNvZGVTZXQgZXhwID0gbmV3IFVuaWNvZGVTZXQoKGNoYXIpMywoY2hhcikxNSk7CisgICAgICAgIGlmIChjLmVxdWFscyhleHApKSB7CisgICAgICAgICAgICBsb2dsbigiYy5zZXQoYSkuYWRkKGIpOiAiICsgYyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogYy5zZXQoYSkuYWRkKGIpID0gIiArIGMgKyAiLCBleHBlY3QgIiArIGV4cCk7CisgICAgICAgIH0KKyAgICAgICAgYy5jb21wbGVtZW50KCk7CisgICAgICAgIGV4cC5zZXQoKGNoYXIpMCwgKGNoYXIpMik7CisgICAgICAgIGV4cC5hZGQoKGNoYXIpMTYsIFVuaWNvZGVTZXQuTUFYX1ZBTFVFKTsKKyAgICAgICAgaWYgKGMuZXF1YWxzKGV4cCkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJjLmNvbXBsZW1lbnQoKTogIiArIGMpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oVXRpbGl0eS5lc2NhcGUoIkZBSUw6IGMuY29tcGxlbWVudCgpID0gIiArIGMgKyAiLCBleHBlY3QgIiArIGV4cCkpOworICAgICAgICB9CisgICAgICAgIGMuY29tcGxlbWVudCgpOworICAgICAgICBleHAuc2V0KChjaGFyKTMsIChjaGFyKTE1KTsKKyAgICAgICAgaWYgKGMuZXF1YWxzKGV4cCkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJjLmNvbXBsZW1lbnQoKTogIiArIGMpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGMuY29tcGxlbWVudCgpID0gIiArIGMgKyAiLCBleHBlY3QgIiArIGV4cCk7CisgICAgICAgIH0KKyAgICAgICAgYy5zZXQoYSk7IGMuY29tcGxlbWVudEFsbChiKTsKKyAgICAgICAgZXhwLnNldCgoY2hhcikzLChjaGFyKTYpOworICAgICAgICBleHAuYWRkKChjaGFyKTExLChjaGFyKSAxNSk7CisgICAgICAgIGlmIChjLmVxdWFscyhleHApKSB7CisgICAgICAgICAgICBsb2dsbigiYy5zZXQoYSkuY29tcGxlbWVudChiKTogIiArIGMpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGMuc2V0KGEpLmNvbXBsZW1lbnQoYikgPSAiICsgYyArICIsIGV4cGVjdCAiICsgZXhwKTsKKyAgICAgICAgfQorCisgICAgICAgIGV4cC5zZXQoYyk7CisgICAgICAgIGMgPSBiaXRzVG9TZXQoc2V0VG9CaXRzKGMpKTsKKyAgICAgICAgaWYgKGMuZXF1YWxzKGV4cCkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJiaXRzVG9TZXQoc2V0VG9CaXRzKGMpKTogIiArIGMpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGJpdHNUb1NldChzZXRUb0JpdHMoYykpID0gIiArIGMgKyAiLCBleHBlY3QgIiArIGV4cCk7CisgICAgICAgIH0gCisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RTdHJpbmdzKCkgeworICAgICAgICBPYmplY3RbXVtdIHRlc3RMaXN0ID0geworICAgICAgICAgICAge0lfRVFVQUxTLCAgVW5pY29kZVNldC5mcm9tQWxsKCJhYmMiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVbmljb2RlU2V0KCJbYS1jXSIpfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAge0lfRVFVQUxTLCAgVW5pY29kZVNldC5mcm9tKCJjaCIpLmFkZCgnYScsJ3onKS5hZGQoImxsIiksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVW5pY29kZVNldCgiW3tsbH17Y2h9YS16XSIpfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAge0lfRVFVQUxTLCAgVW5pY29kZVNldC5mcm9tKCJhYn1jIiksICAKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVbmljb2RlU2V0KCJbe2FiXFx9Y31dIil9LAorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB7SV9FUVVBTFMsICBuZXcgVW5pY29kZVNldCgnYScsJ3onKS5hZGQoJ0EnLCAnWicpLnJldGFpbignTScsJ20nKS5jb21wbGVtZW50KCdYJyksIAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFVuaWNvZGVTZXQoIltbYS16QS1aXSZbTS1tXS1bWF1dIil9LAorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0TGlzdC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgZXhwZWN0UmVsYXRpb24odGVzdExpc3RbaV1bMF0sIHRlc3RMaXN0W2ldWzFdLCB0ZXN0TGlzdFtpXVsyXSwgIigiICsgaSArICIpIik7CisgICAgICAgIH0gICAgICAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0IHBhdHRlcm4gYmVoYXZpb3Igb2YgbXVsdGljaGFyYWN0ZXIgc3RyaW5ncy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0U3RyaW5nUGF0dGVybnMoKSB7CisgICAgICAgIFVuaWNvZGVTZXQgcyA9IG5ldyBVbmljb2RlU2V0KCJbYS16IHthYX0ge2FifV0iKTsKKyAgICAgICAgZXhwZWN0VG9QYXR0ZXJuKHMsICJbYS16e2FhfXthYn1dIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7ImFhIiwgImFiIiwgTk9ULCAiYWMifSk7CisgICAgICAgIHMuYWRkKCJhYyIpOworICAgICAgICBleHBlY3RUb1BhdHRlcm4ocywgIlthLXp7YWF9e2FifXthY31dIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7ImFhIiwgImFiIiwgImFjIiwgTk9ULCAieHkifSk7CisKKyAgICAgICAgcy5hcHBseVBhdHRlcm4oIlthLXoge1xce2x9IHtyXFx9fV0iKTsKKyAgICAgICAgZXhwZWN0VG9QYXR0ZXJuKHMsICJbYS16e1xce2x9e3JcXH19XSIsCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyJ7bCIsICJyfSIsIE5PVCwgInh5In0pOworICAgICAgICBzLmFkZCgiW10iKTsKKyAgICAgICAgZXhwZWN0VG9QYXR0ZXJuKHMsICJbYS16e1xcW1xcXX17clxcfX17XFx7bH1dIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IntsIiwgInJ9IiwgIltdIiwgTk9ULCAieHkifSk7CisKKyAgICAgICAgcy5hcHBseVBhdHRlcm4oIlthLXoge1x1NEUwMVx1NEUwMn17XFxuXFxyfV0iKTsKKyAgICAgICAgZXhwZWN0VG9QYXR0ZXJuKHMsICJbYS16e1xcdTRFMDFcXHU0RTAyfXtcXG5cXHJ9XSIsCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyJcdTRFMDFcdTRFMDIiLCAiXG5cciJ9KTsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgSW50ZWdlciAKKyAgICAgICBJX0FOWSA9IG5ldyBJbnRlZ2VyKFVuaWNvZGVTZXQuQU5ZKSwKKyAgICAgICBJX0NPTlRBSU5TID0gbmV3IEludGVnZXIoVW5pY29kZVNldC5DT05UQUlOUyksCisgICAgICAgSV9ESVNKT0lOVCA9IG5ldyBJbnRlZ2VyKFVuaWNvZGVTZXQuRElTSk9JTlQpLAorICAgICAgIElfTk9fQiA9IG5ldyBJbnRlZ2VyKFVuaWNvZGVTZXQuTk9fQiksCisgICAgICAgSV9JU0NPTlRBSU5FRCA9IG5ldyBJbnRlZ2VyKFVuaWNvZGVTZXQuSVNDT05UQUlORUQpLAorICAgICAgIElfRVFVQUxTID0gbmV3IEludGVnZXIoVW5pY29kZVNldC5FUVVBTFMpLAorICAgICAgIElfTk9fQSA9IG5ldyBJbnRlZ2VyKFVuaWNvZGVTZXQuTk9fQSksCisgICAgICAgSV9OT05FID0gbmV3IEludGVnZXIoVW5pY29kZVNldC5OT05FKTsKKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0U2V0UmVsYXRpb24oKSB7CisKKyAgICAgICAgU3RyaW5nW10gY2hvaWNlcyA9IHsiYSIsICJiIiwgImNkIiwgImVmIn07CisgICAgICAgIGludCBsaW1pdCA9IDEgPDwgY2hvaWNlcy5sZW5ndGg7CisgICAgICAgIAorICAgICAgICBTb3J0ZWRTZXQgaXNldCA9IG5ldyBUcmVlU2V0KCk7CisgICAgICAgIFNvcnRlZFNldCBqc2V0ID0gbmV3IFRyZWVTZXQoKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGltaXQ7ICsraSkgeworICAgICAgICAgICAgcGljayhpLCBjaG9pY2VzLCBpc2V0KTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbGltaXQ7ICsraikgeworICAgICAgICAgICAgICAgIHBpY2soaiwgY2hvaWNlcywganNldCk7CisgICAgICAgICAgICAgICAgY2hlY2tTZXRSZWxhdGlvbihpc2V0LCBqc2V0LCAiKCIgKyBpICsgIikiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0U2V0U3BlZWQoKSB7CisgICAgICAgIC8vIHNraXAgdW5sZXNzIHZlcmJvc2UKKyAgICAgICAgaWYgKCFpc1ZlcmJvc2UoKSkgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgU2V0U3BlZWQyKDEwMCk7CisgICAgICAgIFNldFNwZWVkMigxMDAwKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgU2V0U3BlZWQyKGludCBzaXplKSB7CisgICAgICAgIAorICAgICAgICBTb3J0ZWRTZXQgaXNldCA9IG5ldyBUcmVlU2V0KCk7CisgICAgICAgIFNvcnRlZFNldCBqc2V0ID0gbmV3IFRyZWVTZXQoKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZSoyOyBpICs9IDIpIHsgLy8gb25seSBldmVuIHZhbHVlcworICAgICAgICAgICAgaXNldC5hZGQobmV3IEludGVnZXIoaSkpOworICAgICAgICAgICAganNldC5hZGQobmV3IEludGVnZXIoaSkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgaXRlcmF0aW9ucyA9IDEwMDAwMDAgLyBzaXplOworICAgICAgICAKKyAgICAgICAgbG9nbG4oIlRpbWluZyBjb21wYXJpc29uIG9mIEphdmEgdnMgVXRpbGl0eSIpOworICAgICAgICBsb2dsbigiRm9yIGFib3V0ICIgKyBzaXplICsgIiBvYmplY3RzIHRoYXQgYXJlIGFsbW9zdCBhbGwgdGhlIHNhbWUuIik7CisgICAgICAgIAorICAgICAgICBDaGVja1NwZWVkKGlzZXQsIGpzZXQsICJ3aGVuIGEgPSBiIiwgaXRlcmF0aW9ucyk7CisgICAgICAgIAorICAgICAgICBpc2V0LmFkZChuZXcgSW50ZWdlcihzaXplICsgMSkpOyAgICAvLyBhZGQgb2RkIHZhbHVlIGluIG1pZGRsZQorICAgICAgICAKKyAgICAgICAgQ2hlY2tTcGVlZChpc2V0LCBqc2V0LCAid2hlbiBhIGNvbnRhaW5zIGIiLCBpdGVyYXRpb25zKTsgICAgICAgIAorICAgICAgICBDaGVja1NwZWVkKGpzZXQsIGlzZXQsICJ3aGVuIGIgY29udGFpbnMgYSIsIGl0ZXJhdGlvbnMpOworICAgICAgICAKKyAgICAgICAganNldC5hZGQobmV3IEludGVnZXIoc2l6ZSAtIDEpKTsgICAgLy8gYWRkIGRpZmZlcmVudCBvZGQgdmFsdWUgaW4gbWlkZGxlCisgICAgICAgIAorICAgICAgICBDaGVja1NwZWVkKGpzZXQsIGlzZXQsICJ3aGVuIGEsIGIgYXJlIGRpc2pvaW50IiwgaXRlcmF0aW9ucyk7ICAgICAgICAKKyAgICB9CisgICAgCisgICAgdm9pZCBDaGVja1NwZWVkKFNvcnRlZFNldCBpc2V0LCBTb3J0ZWRTZXQganNldCwgU3RyaW5nIG1lc3NhZ2UsIGludCBpdGVyYXRpb25zKSB7CisgICAgICAgIENoZWNrU3BlZWQyKGlzZXQsIGpzZXQsIG1lc3NhZ2UsIGl0ZXJhdGlvbnMpOworICAgICAgICBDaGVja1NwZWVkMyhpc2V0LCBqc2V0LCBtZXNzYWdlLCBpdGVyYXRpb25zKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBDaGVja1NwZWVkMihTb3J0ZWRTZXQgaXNldCwgU29ydGVkU2V0IGpzZXQsIFN0cmluZyBtZXNzYWdlLCBpbnQgaXRlcmF0aW9ucykgeworICAgICAgICBib29sZWFuIHg7CisgICAgICAgIGJvb2xlYW4geTsKKyAgICAgICAgCisgICAgICAgIC8vIG1ha2Ugc3VyZSBjb2RlIGlzIGxvYWRlZDoKKyAgICAgICAgeCA9IGlzZXQuY29udGFpbnNBbGwoanNldCk7CisgICAgICAgIHkgPSBVbmljb2RlU2V0Lmhhc1JlbGF0aW9uKGlzZXQsIFVuaWNvZGVTZXQuQ09OVEFJTlMsIGpzZXQpOworICAgICAgICBpZiAoeCAhPSB5KSBlcnJsbigiRkFJTCBjb250YWlucyBjb21wYXJpc29uIik7CisgICAgICAgIAorICAgICAgICBkb3VibGUgc3RhcnQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpdGVyYXRpb25zOyArK2kpIHsKKyAgICAgICAgICAgIHggfD0gaXNldC5jb250YWluc0FsbChqc2V0KTsKKyAgICAgICAgfQorICAgICAgICBkb3VibGUgbWlkZGxlID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRlcmF0aW9uczsgKytpKSB7CisgICAgICAgICAgICB5IHw9IFVuaWNvZGVTZXQuaGFzUmVsYXRpb24oaXNldCwgVW5pY29kZVNldC5DT05UQUlOUywganNldCk7CisgICAgICAgIH0KKyAgICAgICAgZG91YmxlIGVuZCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICAKKyAgICAgICAgZG91YmxlIGp0aW1lID0gKG1pZGRsZSAtIHN0YXJ0KS9pdGVyYXRpb25zOworICAgICAgICBkb3VibGUgdXRpbWUgPSAoZW5kIC0gbWlkZGxlKS9pdGVyYXRpb25zOworICAgICAgICAKKyAgICAgICAgamF2YS50ZXh0Lk51bWJlckZvcm1hdCBuZiA9IGphdmEudGV4dC5OdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKCk7CisgICAgICAgIGxvZ2xuKCJUZXN0IGNvbnRhaW5zOiAiICsgbWVzc2FnZSArICI6IEphdmE6ICIgKyBqdGltZQorICAgICAgICAgICAgKyAiLCBVdGlsaXR5OiAiICsgdXRpbWUgKyAiLCB1Omo6ICIgKyBuZi5mb3JtYXQodXRpbWUvanRpbWUpKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBDaGVja1NwZWVkMyhTb3J0ZWRTZXQgaXNldCwgU29ydGVkU2V0IGpzZXQsIFN0cmluZyBtZXNzYWdlLCBpbnQgaXRlcmF0aW9ucykgeworICAgICAgICBib29sZWFuIHg7CisgICAgICAgIGJvb2xlYW4geTsKKyAgICAgICAgCisgICAgICAgIC8vIG1ha2Ugc3VyZSBjb2RlIGlzIGxvYWRlZDoKKyAgICAgICAgeCA9IGlzZXQuZXF1YWxzKGpzZXQpOworICAgICAgICB5ID0gVW5pY29kZVNldC5oYXNSZWxhdGlvbihpc2V0LCBVbmljb2RlU2V0LkVRVUFMUywganNldCk7CisgICAgICAgIGlmICh4ICE9IHkpIGVycmxuKCJGQUlMIGVxdWFsaXR5IGNvbXBhcmlzb24iKTsKKworICAgICAgICAKKyAgICAgICAgZG91YmxlIHN0YXJ0ID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRlcmF0aW9uczsgKytpKSB7CisgICAgICAgICAgICB4IHw9IGlzZXQuZXF1YWxzKGpzZXQpOworICAgICAgICB9CisgICAgICAgIGRvdWJsZSBtaWRkbGUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpdGVyYXRpb25zOyArK2kpIHsKKyAgICAgICAgICAgIHkgfD0gVW5pY29kZVNldC5oYXNSZWxhdGlvbihpc2V0LCBVbmljb2RlU2V0LkVRVUFMUywganNldCk7CisgICAgICAgIH0KKyAgICAgICAgZG91YmxlIGVuZCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICAKKyAgICAgICAgZG91YmxlIGp0aW1lID0gKG1pZGRsZSAtIHN0YXJ0KS9pdGVyYXRpb25zOworICAgICAgICBkb3VibGUgdXRpbWUgPSAoZW5kIC0gbWlkZGxlKS9pdGVyYXRpb25zOworICAgICAgICAKKyAgICAgICAgamF2YS50ZXh0Lk51bWJlckZvcm1hdCBuZiA9IGphdmEudGV4dC5OdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKCk7CisgICAgICAgIGxvZ2xuKCJUZXN0IGVxdWFsczogICAiICsgbWVzc2FnZSArICI6IEphdmE6ICIgKyBqdGltZQorICAgICAgICAgICAgKyAiLCBVdGlsaXR5OiAiICsgdXRpbWUgKyAiLCB1Omo6ICIgKyBuZi5mb3JtYXQodXRpbWUvanRpbWUpKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBwaWNrKGludCBiaXRzLCBPYmplY3RbXSBleGFtcGxlcywgU29ydGVkU2V0IG91dHB1dCkgeworICAgICAgICBvdXRwdXQuY2xlYXIoKTsKKyAgICAgICAgZm9yIChpbnQgayA9IDA7IGsgPCAzMjsgKytrKSB7CisgICAgICAgICAgICBpZiAoKCgxPDxrKSAmIGJpdHMpICE9IDApIG91dHB1dC5hZGQoZXhhbXBsZXNba10pOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nW10gUkVMQVRJT05fTkFNRSA9IHsKKyAgICAgICAgImJvdGgtYXJlLW51bGwiLAorICAgICAgICAiYS1pcy1udWxsIiwgCisgICAgICAgICJlcXVhbHMiLCAKKyAgICAgICAgImlzLWNvbnRhaW5lZC1pbiIsCisgICAgICAgICJiLWlzLW51bGwiLAorICAgICAgICAiaXMtZGlzam9pbnRfd2l0aCIsCisgICAgICAgICJjb250YWlucyIsIAorICAgICAgICAiYW55IiwgfTsKKyAgICAgICAgCisgICAgYm9vbGVhbiBkdW1iSGFzUmVsYXRpb24oQ29sbGVjdGlvbiBBLCBpbnQgZmlsdGVyLCBDb2xsZWN0aW9uIEIpIHsKKyAgICAgICAgQ29sbGVjdGlvbiBhYiA9IG5ldyBUcmVlU2V0KEEpOworICAgICAgICBhYi5yZXRhaW5BbGwoQik7CisgICAgICAgIGlmIChhYi5zaXplKCkgPiAwICYmIChmaWx0ZXIgJiBVbmljb2RlU2V0LkFfQU5EX0IpID09IDApIHJldHVybiBmYWxzZTsgCisgICAgICAgIAorICAgICAgICAvLyBBIC0gQiBzaXplID09IEEuc2l6ZSAtIEEmQi5zaXplCisgICAgICAgIGlmIChBLnNpemUoKSA+IGFiLnNpemUoKSAmJiAoZmlsdGVyICYgVW5pY29kZVNldC5BX05PVF9CKSA9PSAwKSByZXR1cm4gZmFsc2U7IAorICAgICAgICAKKyAgICAgICAgLy8gQiAtIEEgc2l6ZSA9PSBCLnNpemUgLSBBJkIuc2l6ZQorICAgICAgICBpZiAoQi5zaXplKCkgPiBhYi5zaXplKCkgJiYgKGZpbHRlciAmIFVuaWNvZGVTZXQuQl9OT1RfQSkgPT0gMCkgcmV0dXJuIGZhbHNlOyAKKworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfSAgICAKKyAgICAKKyAgICB2b2lkIGNoZWNrU2V0UmVsYXRpb24oU29ydGVkU2V0IGEsIFNvcnRlZFNldCBiLCBTdHJpbmcgbWVzc2FnZSkgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDg7ICsraSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBib29sZWFuIGhhc1JlbGF0aW9uID0gVW5pY29kZVNldC5oYXNSZWxhdGlvbihhLCBpLCBiKTsKKyAgICAgICAgICAgIGJvb2xlYW4gZHVtYkhhc1JlbGF0aW9uID0gZHVtYkhhc1JlbGF0aW9uKGEsIGksIGIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBsb2dsbihtZXNzYWdlICsgIiAiICsgaGFzUmVsYXRpb24gKyAiOlx0IiArIGEgKyAiXHQiICsgUkVMQVRJT05fTkFNRVtpXSArICJcdCIgKyBiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGhhc1JlbGF0aW9uICE9IGR1bWJIYXNSZWxhdGlvbikgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgCisgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgKyAiICIgKyBkdW1iSGFzUmVsYXRpb24gKyAiOlx0IiArIGEgKyAiXHQiICsgUkVMQVRJT05fTkFNRVtpXSArICJcdCIgKyBiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBsb2dsbigiIik7CisgICAgfQorICAgIAorICAgLyoqCisgICAgKiBUZXN0IHRoZSBbOkxhdGluOl0gc3ludGF4LgorICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFNjcmlwdFNldCgpIHsKKyAgICAgICAgVW5pY29kZVNldCBzZXQgPSBuZXcgVW5pY29kZVNldCgiWzpMYXRpbjpdIik7CisKKyAgICAgICAgZXhwZWN0Q29udGFpbm1lbnQoc2V0LCAiYUEiLCBDaGFyc1RvVW5pY29kZVN0cmluZygiXFx1MDM5MVxcdTAzQjEiKSk7CisKKyAgICAgICAgVW5pY29kZVNldCBzZXQyID0gbmV3IFVuaWNvZGVTZXQoIls6R3JlZWs6XSIpOworICAgICAgICBleHBlY3RDb250YWlubWVudChzZXQyLCBDaGFyc1RvVW5pY29kZVN0cmluZygiXFx1MDM5MVxcdTAzQjEiKSwgImFBIik7CisgICAgICAgIAorICAgICAgICAvKiBKaXR0ZXJidWcgMTQyMyAqLworICAgICAgICBVbmljb2RlU2V0IHNldDMgPSBuZXcgVW5pY29kZVNldCgiW1s6Q29tbW9uOl1bOkluaGVyaXRlZDpdXSIpOworICAgICAgICBleHBlY3RDb250YWlubWVudChzZXQzLCBDaGFyc1RvVW5pY29kZVN0cmluZygiXFxVMDAwMDMwOTlcXFUwMDAxRDE2OVxcdTAwMDAiKSwgImFBIik7CisKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgWzpMYXRpbjpdIHN5bnRheC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UHJvcGVydHlTZXQoKSB7CisgICAgICAgIFN0cmluZ1tdIERBVEEgPSB7CisgICAgICAgICAgICAvLyBQYXR0ZXJuLCBDaGFycyBJTiwgQ2hhcnMgTk9UIGluCisKKyAgICAgICAgICAgICJbOkxhdGluOl0iLAorICAgICAgICAgICAgImFBIiwKKyAgICAgICAgICAgICJcdTAzOTFcdTAzQjEiLAorCisgICAgICAgICAgICAiW1xccHtHcmVla31dIiwKKyAgICAgICAgICAgICJcdTAzOTFcdTAzQjEiLAorICAgICAgICAgICAgImFBIiwKKworICAgICAgICAgICAgIlxcUHsgR0VORVJBTCBDYXRlZ29yeSA9IHVwcGVyIGNhc2UgbGV0dGVyIH0iLAorICAgICAgICAgICAgImFiYyIsCisgICAgICAgICAgICAiQUJDIiwKKworICAgICAgICAgICAgLy8gQ29tYmluaW5nIGNsYXNzOiBAc2luY2UgSUNVIDIuMgorICAgICAgICAgICAgLy8gQ2hlY2sgYm90aCBzeW1ib2xpYyBhbmQgbnVtZXJpYworICAgICAgICAgICAgIlxccHtjY2M9TnVrdGF9IiwKKyAgICAgICAgICAgICJcdTBBQkMiLAorICAgICAgICAgICAgImFiYyIsCisKKyAgICAgICAgICAgICJcXHB7Q2Fub25pY2FsIENvbWJpbmluZyBDbGFzcyA9IDExfSIsCisgICAgICAgICAgICAiXHUwNUIxIiwKKyAgICAgICAgICAgICJcdTA1QjIiLAorCisgICAgICAgICAgICAiWzpjIGMgYyA9IGlvdGEgc3Vic2NyaXB0IDpdIiwKKyAgICAgICAgICAgICJcdTAzNDUiLAorICAgICAgICAgICAgInh5eiIsCisKKyAgICAgICAgICAgIC8vIEJpZGkgY2xhc3M6IEBzaW5jZSBJQ1UgMi4yCisgICAgICAgICAgICAiXFxwe2JpZGljbGFzcz1sZWZ0dG9yaWdodH0iLAorICAgICAgICAgICAgImFiYyIsCisgICAgICAgICAgICAiXHUwNjcxXHUwNjcyIiwKKworICAgICAgICAgICAgLy8gQmluYXJ5IHByb3BlcnRpZXM6IEBzaW5jZSBJQ1UgMi4yCisgICAgICAgICAgICAiXFxwe2lkZW9ncmFwaGljfSIsCisgICAgICAgICAgICAiXHU0RTBBIiwKKyAgICAgICAgICAgICJ4IiwKKworICAgICAgICAgICAgIls6bWF0aD1mYWxzZTpdIiwKKyAgICAgICAgICAgICJxIiwKKyAgICAgICAgICAgICIoKispIiwKKyAgICAgICAgfTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTMpIHsKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgc2V0ID0gbmV3IFVuaWNvZGVTZXQoREFUQVtpXSk7CisgICAgICAgICAgICBleHBlY3RDb250YWlubWVudChzZXQsIERBVEFbaSsxXSwgREFUQVtpKzJdKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgY2xvbmluZyBvZiBVbmljb2RlU2V0CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENsb25lKCkgeworICAgICAgICBVbmljb2RlU2V0IHMgPSBuZXcgVW5pY29kZVNldCgiW2FiY3h5el0iKTsKKyAgICAgICAgVW5pY29kZVNldCB0ID0gKFVuaWNvZGVTZXQpIHMuY2xvbmUoKTsKKyAgICAgICAgZXhwZWN0Q29udGFpbm1lbnQodCwgImFiYyIsICJkZWYiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBpbmRleE9mKCkgYW5kIGNoYXJBdCgpIG1ldGhvZHMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEluZGV4T2YoKSB7CisgICAgICAgIFVuaWNvZGVTZXQgc2V0ID0gbmV3IFVuaWNvZGVTZXQoIlthLWN4LXkzNTc4XSIpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8c2V0LnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBpbnQgYyA9IHNldC5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoc2V0LmluZGV4T2YoYykgIT0gaSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjaGFyQXQoIiArIGkgKyAiKSA9ICIgKyBjICsKKyAgICAgICAgICAgICAgICAgICAgICAiID0+IGluZGV4T2YoKSA9PiAiICsgc2V0LmluZGV4T2YoYykpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGludCBjID0gc2V0LmNoYXJBdChzZXQuc2l6ZSgpKTsKKyAgICAgICAgaWYgKGMgIT0gLTEpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjaGFyQXQoPG91dCBvZiByYW5nZT4pID0gIiArCisgICAgICAgICAgICAgICAgICBVdGlsaXR5LmVzY2FwZShTdHJpbmcudmFsdWVPZihjKSkpOworICAgICAgICB9CisgICAgICAgIGludCBqID0gc2V0LmluZGV4T2YoJ3EnKTsKKyAgICAgICAgaWYgKGogIT0gLTEpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBpbmRleE9mKCdxJykgPSAiICsgaik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0RXhoYXVzdGl2ZSgpIHsKKyAgICAgICAgLy8gZXhoYXVzdGl2ZSB0ZXN0cy4gU2ltdWxhdGUgVW5pY29kZVNldHMgd2l0aCBpbnRlZ2Vycy4KKyAgICAgICAgLy8gVGhhdCBnaXZlcyB1cyB2ZXJ5IHNvbGlkIHRlc3RzIChleGNlcHQgZm9yIGxhcmdlIG1lbW9yeSB0ZXN0cykuCisKKyAgICAgICAgY2hhciBsaW1pdCA9IChjaGFyKTEyODsKKworICAgICAgICBmb3IgKGNoYXIgaSA9IDA7IGkgPCBsaW1pdDsgKytpKSB7CisgICAgICAgICAgICBsb2dsbigiVGVzdGluZyAiICsgaSArICIsICIgKyBiaXRzVG9TZXQoaSkpOworICAgICAgICAgICAgX3Rlc3RDb21wbGVtZW50KGkpOworICAgICAgICAgICAgCisgICAgICAgIAkvLyBBUyBMT05HIEFTIFdFIEFSRSBIRVJFLCBjaGVjayByb3VuZHRyaXAKKyAgICAgICAgCWNoZWNrUm91bmRUcmlwKGJpdHNUb1NldChpKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoY2hhciBqID0gMDsgaiA8IGxpbWl0OyArK2opIHsKKyAgICAgICAgICAgICAgICBfdGVzdEFkZChpLGopOworICAgICAgICAgICAgICAgIF90ZXN0WG9yKGksaik7CisgICAgICAgICAgICAgICAgX3Rlc3RSZXRhaW4oaSxqKTsKKyAgICAgICAgICAgICAgICBfdGVzdFJlbW92ZShpLGopOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqIAorICAgICAqIE1ha2Ugc3VyZSBlYWNoIHNjcmlwdCBuYW1lIGFuZCBhYmJyZXZpYXRlZCBuYW1lIGNhbiBiZSB1c2VkIAorICAgICAqIHRvIGNvbnN0cnVjdCBhIFVuaWNvZGVTZXQuIAorICAgICAqLyAKKyAgICBwdWJsaWMgdm9pZCBUZXN0U2NyaXB0TmFtZXMoKSB7IAorICAgICAgICBmb3IgKGludCBpPTA7IGk8VVNjcmlwdC5DT0RFX0xJTUlUOyArK2kpIHsgCisgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8MjsgKytqKSB7IAorICAgICAgICAgICAgICAgIFN0cmluZyBwYXQgPSAiIjsgCisgICAgICAgICAgICAgICAgdHJ5IHsgCisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lID0gCisgICAgICAgICAgICAgICAgICAgICAgICAoaj09MCkgPyBVU2NyaXB0LmdldE5hbWUoaSkgOiBVU2NyaXB0LmdldFNob3J0TmFtZShpKTsgCisgICAgICAgICAgICAgICAgICAgIHBhdCA9ICJbOiIgKyBuYW1lICsgIjpdIjsgCisgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgc2V0ID0gbmV3IFVuaWNvZGVTZXQocGF0KTsgCisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIHBhdCk7IAorICAgICAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7IAorICAgICAgICAgICAgICAgICAgICBpZiAocGF0Lmxlbmd0aCgpID09IDApIHsgCisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCAoaW4gVVNjcmlwdCk6IE5vIG5hbWUgZm9yIHNjcmlwdCAiICsgaSk7IAorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeyAKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDb3VsZG4ndCBjcmVhdGUgIiArIHBhdCk7IAorICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICB9IAorICAgICAgICB9IAorICAgIH0gCisgICAgCisgICAgdm9pZCBfdGVzdENvbXBsZW1lbnQoaW50IGEpIHsKKyAgICAgICAgVW5pY29kZVNldCB4ID0gYml0c1RvU2V0KGEpOworICAgICAgICBVbmljb2RlU2V0IHogPSBiaXRzVG9TZXQoYSk7CisgICAgICAgIHouY29tcGxlbWVudCgpOworICAgICAgICBpbnQgYyA9IHNldFRvQml0cyh6KTsKKyAgICAgICAgaWYgKGMgIT0gKH5hKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUxFRDogYWRkOiB+IiArIHggKyAgIiAhPSAiICsgeik7CisgICAgICAgICAgICBlcnJsbigiRkFJTEVEOiBhZGQ6IH4iICsgYSArICIgIT0gIiArIGMpOworICAgICAgICB9CisgICAgICAgIGNoZWNrQ2Fub25pY2FsUmVwKHosICJjb21wbGVtZW50ICIgKyBhKTsKKyAgICB9CisKKyAgICB2b2lkIF90ZXN0QWRkKGludCBhLCBpbnQgYikgeworICAgICAgICBVbmljb2RlU2V0IHggPSBiaXRzVG9TZXQoYSk7CisgICAgICAgIFVuaWNvZGVTZXQgeSA9IGJpdHNUb1NldChiKTsKKyAgICAgICAgVW5pY29kZVNldCB6ID0gYml0c1RvU2V0KGEpOworICAgICAgICB6LmFkZEFsbCh5KTsKKyAgICAgICAgaW50IGMgPSBzZXRUb0JpdHMoeik7CisgICAgICAgIGlmIChjICE9IChhIHwgYikpIHsKKyAgICAgICAgICAgIGVycmxuKFV0aWxpdHkuZXNjYXBlKCJGQUlMRUQ6IGFkZDogIiArIHggKyAiIHwgIiArIHkgKyAiICE9ICIgKyB6KSk7CisgICAgICAgICAgICBlcnJsbigiRkFJTEVEOiBhZGQ6ICIgKyBhICsgIiB8ICIgKyBiICsgIiAhPSAiICsgYyk7CisgICAgICAgIH0KKyAgICAgICAgY2hlY2tDYW5vbmljYWxSZXAoeiwgImFkZCAiICsgYSArICIsIiArIGIpOworICAgIH0KKworICAgIHZvaWQgX3Rlc3RSZXRhaW4oaW50IGEsIGludCBiKSB7CisgICAgICAgIFVuaWNvZGVTZXQgeCA9IGJpdHNUb1NldChhKTsKKyAgICAgICAgVW5pY29kZVNldCB5ID0gYml0c1RvU2V0KGIpOworICAgICAgICBVbmljb2RlU2V0IHogPSBiaXRzVG9TZXQoYSk7CisgICAgICAgIHoucmV0YWluQWxsKHkpOworICAgICAgICBpbnQgYyA9IHNldFRvQml0cyh6KTsKKyAgICAgICAgaWYgKGMgIT0gKGEgJiBiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUxFRDogcmV0YWluOiAiICsgeCArICIgJiAiICsgeSArICIgIT0gIiArIHopOworICAgICAgICAgICAgZXJybG4oIkZBSUxFRDogcmV0YWluOiAiICsgYSArICIgJiAiICsgYiArICIgIT0gIiArIGMpOworICAgICAgICB9CisgICAgICAgIGNoZWNrQ2Fub25pY2FsUmVwKHosICJyZXRhaW4gIiArIGEgKyAiLCIgKyBiKTsKKyAgICB9CisKKyAgICB2b2lkIF90ZXN0UmVtb3ZlKGludCBhLCBpbnQgYikgeworICAgICAgICBVbmljb2RlU2V0IHggPSBiaXRzVG9TZXQoYSk7CisgICAgICAgIFVuaWNvZGVTZXQgeSA9IGJpdHNUb1NldChiKTsKKyAgICAgICAgVW5pY29kZVNldCB6ID0gYml0c1RvU2V0KGEpOworICAgICAgICB6LnJlbW92ZUFsbCh5KTsKKyAgICAgICAgaW50IGMgPSBzZXRUb0JpdHMoeik7CisgICAgICAgIGlmIChjICE9IChhICZ+IGIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTEVEOiByZW1vdmU6ICIgKyB4ICsgIiAmfiAiICsgeSArICIgIT0gIiArIHopOworICAgICAgICAgICAgZXJybG4oIkZBSUxFRDogcmVtb3ZlOiAiICsgYSArICIgJn4gIiArIGIgKyAiICE9ICIgKyBjKTsKKyAgICAgICAgfQorICAgICAgICBjaGVja0Nhbm9uaWNhbFJlcCh6LCAicmVtb3ZlICIgKyBhICsgIiwiICsgYik7CisgICAgfQorCisgICAgdm9pZCBfdGVzdFhvcihpbnQgYSwgaW50IGIpIHsKKyAgICAgICAgVW5pY29kZVNldCB4ID0gYml0c1RvU2V0KGEpOworICAgICAgICBVbmljb2RlU2V0IHkgPSBiaXRzVG9TZXQoYik7CisgICAgICAgIFVuaWNvZGVTZXQgeiA9IGJpdHNUb1NldChhKTsKKyAgICAgICAgei5jb21wbGVtZW50QWxsKHkpOworICAgICAgICBpbnQgYyA9IHNldFRvQml0cyh6KTsKKyAgICAgICAgaWYgKGMgIT0gKGEgXiBiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUxFRDogY29tcGxlbWVudDogIiArIHggKyAiIF4gIiArIHkgKyAiICE9ICIgKyB6KTsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMRUQ6IGNvbXBsZW1lbnQ6ICIgKyBhICsgIiBeICIgKyBiICsgIiAhPSAiICsgYyk7CisgICAgICAgIH0KKyAgICAgICAgY2hlY2tDYW5vbmljYWxSZXAoeiwgImNvbXBsZW1lbnQgIiArIGEgKyAiLCIgKyBiKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ2hlY2sgdGhhdCByYW5nZXMgYXJlIG1vbm90b25pY2FsbHkgaW5jcmVhc2luZyBhbmQgbm9uLQorICAgICAqIG92ZXJsYXBwaW5nLgorICAgICAqLworICAgIHZvaWQgY2hlY2tDYW5vbmljYWxSZXAoVW5pY29kZVNldCBzZXQsIFN0cmluZyBtc2cpIHsKKyAgICAgICAgaW50IG4gPSBzZXQuZ2V0UmFuZ2VDb3VudCgpOworICAgICAgICBpZiAobiA8IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMIHJlc3VsdCBvZiAiICsgbXNnICsKKyAgICAgICAgICAgICAgICAgICI6IHJhbmdlIGNvdW50IHNob3VsZCBiZSA+PSAwIGJ1dCBpcyAiICsKKyAgICAgICAgICAgICAgICAgIG4gKyAiIGZvciAiICsgVXRpbGl0eS5lc2NhcGUoc2V0LnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpbnQgbGFzdCA9IDA7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxuOyArK2kpIHsKKyAgICAgICAgICAgIGludCBzdGFydCA9IHNldC5nZXRSYW5nZVN0YXJ0KGkpOworICAgICAgICAgICAgaW50IGVuZCA9IHNldC5nZXRSYW5nZUVuZChpKTsKKyAgICAgICAgICAgIGlmIChzdGFydCA+IGVuZCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIHJlc3VsdCBvZiAiICsgbXNnICsKKyAgICAgICAgICAgICAgICAgICAgICAiOiByYW5nZSAiICsgKGkrMSkgKworICAgICAgICAgICAgICAgICAgICAgICIgc3RhcnQgPiBlbmQ6ICIgKyBzdGFydCArICIsICIgKyBlbmQgKworICAgICAgICAgICAgICAgICAgICAgICIgZm9yICIgKyBVdGlsaXR5LmVzY2FwZShzZXQudG9TdHJpbmcoKSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGkgPiAwICYmIHN0YXJ0IDw9IGxhc3QpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCByZXN1bHQgb2YgIiArIG1zZyArCisgICAgICAgICAgICAgICAgICAgICAgIjogcmFuZ2UgIiArIChpKzEpICsKKyAgICAgICAgICAgICAgICAgICAgICAiIG92ZXJsYXBzIHByZXZpb3VzIHJhbmdlOiAiICsgc3RhcnQgKyAiLCAiICsgZW5kICsKKyAgICAgICAgICAgICAgICAgICAgICAiIGZvciAiICsgVXRpbGl0eS5lc2NhcGUoc2V0LnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxhc3QgPSBlbmQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGEgYml0bWFzayB0byBhIFVuaWNvZGVTZXQuCisgICAgICovCisgICAgVW5pY29kZVNldCBiaXRzVG9TZXQoaW50IGEpIHsKKyAgICAgICAgVW5pY29kZVNldCByZXN1bHQgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDMyOyArK2kpIHsKKyAgICAgICAgICAgIGlmICgoYSAmICgxPDxpKSkgIT0gMCkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQoKGNoYXIpaSwoY2hhcilpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29udmVydCBhIFVuaWNvZGVTZXQgdG8gYSBiaXRtYXNrLiAgT25seSB0aGUgY2hhcmFjdGVycworICAgICAqIFUrMDAwMCB0byBVKzAwMjAgYXJlIHJlcHJlc2VudGVkIGluIHRoZSBiaXRtYXNrLgorICAgICAqLworICAgIHN0YXRpYyBpbnQgc2V0VG9CaXRzKFVuaWNvZGVTZXQgeCkgeworICAgICAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAzMjsgKytpKSB7CisgICAgICAgICAgICBpZiAoeC5jb250YWlucygoY2hhcilpKSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCB8PSAoMTw8aSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHJlcHJlc2VudGF0aW9uIG9mIGFuIGludmVyc2lvbiBsaXN0IGJhc2VkIFVuaWNvZGVTZXQKKyAgICAgKiBhcyBhIHBhaXJzIGxpc3QuICBSYW5nZXMgYXJlIGxpc3RlZCBpbiBhc2NlbmRpbmcgVW5pY29kZSBvcmRlci4KKyAgICAgKiBGb3IgZXhhbXBsZSwgdGhlIHNldCBbYS16QS1NM10gaXMgcmVwcmVzZW50ZWQgYXMgIjMzQU1heiIuCisgICAgICovCisgICAgc3RhdGljIFN0cmluZyBnZXRQYWlycyhVbmljb2RlU2V0IHNldCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgcGFpcnMgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxzZXQuZ2V0UmFuZ2VDb3VudCgpOyArK2kpIHsKKyAgICAgICAgICAgIGludCBzdGFydCA9IHNldC5nZXRSYW5nZVN0YXJ0KGkpOworICAgICAgICAgICAgaW50IGVuZCA9IHNldC5nZXRSYW5nZUVuZChpKTsKKyAgICAgICAgICAgIGlmIChlbmQgPiAweEZGRkYpIHsKKyAgICAgICAgICAgICAgICBlbmQgPSAweEZGRkY7CisgICAgICAgICAgICAgICAgaSA9IHNldC5nZXRSYW5nZUNvdW50KCk7IC8vIFNob3VsZCBiZSB1bm5lY2Vzc2FyeQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcGFpcnMuYXBwZW5kKChjaGFyKXN0YXJ0KS5hcHBlbmQoKGNoYXIpZW5kKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcGFpcnMudG9TdHJpbmcoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCBmdW5jdGlvbi4gTWFrZSBzdXJlIHRoYXQgdGhlIHNldHMgaGF2ZSB0aGUgcmlnaHQgcmVsYXRpb24KKyAgICAgKi8KKyAgICAgCisgICAgdm9pZCBleHBlY3RSZWxhdGlvbihPYmplY3QgcmVsYXRpb25PYmosIE9iamVjdCBzZXQxT2JqLCBPYmplY3Qgc2V0Mk9iaiwgU3RyaW5nIG1lc3NhZ2UpIHsKKyAgICAgICAgaW50IHJlbGF0aW9uID0gKChJbnRlZ2VyKSByZWxhdGlvbk9iaikuaW50VmFsdWUoKTsKKyAgICAgICAgVW5pY29kZVNldCBzZXQxID0gKFVuaWNvZGVTZXQpIHNldDFPYmo7CisgICAgICAgIFVuaWNvZGVTZXQgc2V0MiA9IChVbmljb2RlU2V0KSBzZXQyT2JqOworICAgICAgICAKKyAgICAgICAgLy8gYnktdGhlLWJ5LCBjaGVjayB0aGUgaXRlcmF0b3IKKyAgICAgICAgY2hlY2tSb3VuZFRyaXAoc2V0MSk7CisgICAgICAgIGNoZWNrUm91bmRUcmlwKHNldDIpOworICAgICAgICAKKyAgICAgICAgYm9vbGVhbiBjb250YWlucyA9IHNldDEuY29udGFpbnNBbGwoc2V0Mik7CisgICAgICAgIGJvb2xlYW4gaXNDb250YWluZWQgPSBzZXQyLmNvbnRhaW5zQWxsKHNldDEpOworICAgICAgICBib29sZWFuIGRpc2pvaW50ID0gc2V0MS5jb250YWluc05vbmUoc2V0Mik7CisgICAgICAgIGJvb2xlYW4gZXF1YWxzID0gc2V0MS5lcXVhbHMoc2V0Mik7CisgICAgICAgIAorICAgICAgICBVbmljb2RlU2V0IGludGVyc2VjdGlvbiA9IG5ldyBVbmljb2RlU2V0KHNldDEpLnJldGFpbkFsbChzZXQyKTsKKyAgICAgICAgVW5pY29kZVNldCBtaW51czEyID0gbmV3IFVuaWNvZGVTZXQoc2V0MSkucmVtb3ZlQWxsKHNldDIpOworICAgICAgICBVbmljb2RlU2V0IG1pbnVzMjEgPSBuZXcgVW5pY29kZVNldChzZXQyKS5yZW1vdmVBbGwoc2V0MSk7CisgICAgICAgIAorICAgICAgICAvLyB0ZXN0IGJhc2ljIHByb3BlcnRpZXMKKyAgICAgICAgCisgICAgICAgIGlmIChjb250YWlucyAhPSAoaW50ZXJzZWN0aW9uLnNpemUoKSA9PSBzZXQyLnNpemUoKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMIGNvbnRhaW5zMSIgKyBzZXQxLnRvUGF0dGVybih0cnVlKSArICIsICIgKyBzZXQyLnRvUGF0dGVybih0cnVlKSk7CisgICAgICAgIH0KKyAgICAgICAgICAKKyAgICAgICAgaWYgKGNvbnRhaW5zICE9IChpbnRlcnNlY3Rpb24uZXF1YWxzKHNldDIpKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUwgY29udGFpbnMyIiArIHNldDEudG9QYXR0ZXJuKHRydWUpICsgIiwgIiArIHNldDIudG9QYXR0ZXJuKHRydWUpKTsKKyAgICAgICAgfQorICAgICAgICAgIAorICAgICAgICBpZiAoaXNDb250YWluZWQgIT0gKGludGVyc2VjdGlvbi5zaXplKCkgPT0gc2V0MS5zaXplKCkpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTCBpc0NvbnRhaW5lZDEiICsgc2V0MS50b1BhdHRlcm4odHJ1ZSkgKyAiLCAiICsgc2V0Mi50b1BhdHRlcm4odHJ1ZSkpOworICAgICAgICB9CisgICAgICAgICAgCisgICAgICAgIGlmIChpc0NvbnRhaW5lZCAhPSAoaW50ZXJzZWN0aW9uLmVxdWFscyhzZXQxKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMIGlzQ29udGFpbmVkMiIgKyBzZXQxLnRvUGF0dGVybih0cnVlKSArICIsICIgKyBzZXQyLnRvUGF0dGVybih0cnVlKSk7CisgICAgICAgIH0KKyAgICAgICAgICAKKyAgICAgICAgaWYgKChjb250YWlucyAmJiBpc0NvbnRhaW5lZCkgIT0gZXF1YWxzKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTCBlcXVhbHMiICsgc2V0MS50b1BhdHRlcm4odHJ1ZSkgKyAiLCAiICsgc2V0Mi50b1BhdHRlcm4odHJ1ZSkpOworICAgICAgICB9CisgICAgICAgICAgCisgICAgICAgIGlmIChkaXNqb2ludCAhPSAoaW50ZXJzZWN0aW9uLnNpemUoKSA9PSAwKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUwgZGlzam9pbnQiICsgc2V0MS50b1BhdHRlcm4odHJ1ZSkgKyAiLCAiICsgc2V0Mi50b1BhdHRlcm4odHJ1ZSkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBOb3cgc2VlIGlmIHRoZSBleHBlY3RlZCByZWxhdGlvbiBpcyB0cnVlCisgICAgICAgIGludCBzdGF0dXMgPSAobWludXMxMi5zaXplKCkgIT0gMCA/IDQgOiAwKQorICAgICAgICAgIHwgKGludGVyc2VjdGlvbi5zaXplKCkgIT0gMCA/IDIgOiAwKQorICAgICAgICAgIHwgKG1pbnVzMjEuc2l6ZSgpICE9IDAgPyAxIDogMCk7CisgICAgICAgIAorICAgICAgICBpZiAoc3RhdHVzICE9IHJlbGF0aW9uKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTCByZWxhdGlvbiBpbmNvcnJlY3QiICsgbWVzc2FnZQorICAgICAgICAgICAgICArICI7IGRlc2lyZWQgPSAiICsgUkVMQVRJT05fTkFNRVtyZWxhdGlvbl0KKyAgICAgICAgICAgICAgKyAiOyBmb3VuZCA9ICIgKyBSRUxBVElPTl9OQU1FW3N0YXR1c10KKyAgICAgICAgICAgICAgKyAiOyBzZXQxID0gIiArIHNldDEudG9QYXR0ZXJuKHRydWUpCisgICAgICAgICAgICAgICsgIjsgc2V0MiA9ICIgKyBzZXQyLnRvUGF0dGVybih0cnVlKQorICAgICAgICAgICAgICApOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEJhc2ljIGNvbnNpc3RlbmN5IGNoZWNrIGZvciBhIGZldyBpdGVtcy4KKyAgICAgKiBUaGF0IHRoZSBpdGVyYXRvciB3b3JrcywgYW5kIHRoYXQgd2UgY2FuIGNyZWF0ZSBhIHBhdHRlcm4gYW5kCisgICAgICogZ2V0IHRoZSBzYW1lIHRoaW5nIGJhY2sKKyAgICAgKi8KKyAgICAKKyAgICB2b2lkIGNoZWNrUm91bmRUcmlwKFVuaWNvZGVTZXQgcykgeworICAgICAgICBTdHJpbmcgcGF0ID0gcy50b1BhdHRlcm4oZmFsc2UpOworICAgICAgICBVbmljb2RlU2V0IHQgPSBjb3B5V2l0aEl0ZXJhdG9yKHMsIGZhbHNlKTsKKyAgICAgICAgY2hlY2tFcXVhbChzLCB0LCAiaXRlcmF0b3Igcm91bmR0cmlwIik7CisKKyAgICAgICAgdCA9IGNvcHlXaXRoSXRlcmF0b3IocywgdHJ1ZSk7IC8vIHRyeSByYW5nZQorICAgICAgICBjaGVja0VxdWFsKHMsIHQsICJpdGVyYXRvciByb3VuZHRyaXAiKTsKKyAgICAgICAgCisgICAgICAgIHQgPSBuZXcgVW5pY29kZVNldChwYXQpOworICAgICAgICBjaGVja0VxdWFsKHMsIHQsICJ0b1BhdHRlcm4oZmFsc2UpIik7CisgICAgICAgIAorICAgICAgICBwYXQgPSBzLnRvUGF0dGVybih0cnVlKTsKKyAgICAgICAgdCA9IG5ldyBVbmljb2RlU2V0KHBhdCk7CisgICAgICAgIGNoZWNrRXF1YWwocywgdCwgInRvUGF0dGVybih0cnVlKSIpOworICAgIH0KKyAgICAKKyAgICBVbmljb2RlU2V0IGNvcHlXaXRoSXRlcmF0b3IoVW5pY29kZVNldCBzLCBib29sZWFuIHdpdGhSYW5nZSkgeworICAgIAlVbmljb2RlU2V0IHQgPSBuZXcgVW5pY29kZVNldCgpOworICAgIAlVbmljb2RlU2V0SXRlcmF0b3IgaXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKHMpOworICAgIAlpZiAod2l0aFJhbmdlKSB7CisgICAgCQl3aGlsZSAoaXQubmV4dFJhbmdlKCkpIHsKKyAgICAJCQlpZiAoaXQuY29kZXBvaW50ID09IFVuaWNvZGVTZXRJdGVyYXRvci5JU19TVFJJTkcpIHsKKyAgICAJCQkJdC5hZGQoaXQuc3RyaW5nKTsKKyAgICAJCQl9IGVsc2UgeworICAgIAkJCQl0LmFkZChpdC5jb2RlcG9pbnQsIGl0LmNvZGVwb2ludEVuZCk7CisgICAgCQkJfQorICAgIAkJfQorICAgIAl9IGVsc2UgeworICAgIAkJd2hpbGUgKGl0Lm5leHQoKSkgeworICAgIAkJCWlmIChpdC5jb2RlcG9pbnQgPT0gVW5pY29kZVNldEl0ZXJhdG9yLklTX1NUUklORykgeworICAgIAkJCQl0LmFkZChpdC5zdHJpbmcpOworICAgIAkJCX0gZWxzZSB7CisgICAgCQkJCXQuYWRkKGl0LmNvZGVwb2ludCk7CisgICAgCQkJfQorICAgIAkJfQorICAgIAl9CisgICAgCXJldHVybiB0OworICAgIH0KKyAgICAKKyAgICBib29sZWFuIGNoZWNrRXF1YWwoVW5pY29kZVNldCBzLCBVbmljb2RlU2V0IHQsIFN0cmluZyBtZXNzYWdlKSB7CisgICAgICAgIGlmICghcy5lcXVhbHModCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMICIgKyBtZXNzYWdlCisgICAgICAgICAgICAgICsgIjsgc291cmNlID0gIiArIHMudG9QYXR0ZXJuKHRydWUpCisgICAgICAgICAgICAgICsgIjsgcmVzdWx0ID0gIiArIHQudG9QYXR0ZXJuKHRydWUpCisgICAgICAgICAgICAgICk7CisgICAgICAgIAlyZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAkJCisgICAgCisgICAgLyoqCisgICAgICogRXhwZWN0IHRoZSBnaXZlbiBzZXQgdG8gY29udGFpbiB0aGUgY2hhcmFjdGVycyBpbiBjaGFyc0luIGFuZAorICAgICAqIHRvIG5vdCBjb250YWluIHRob3NlIGluIGNoYXJzT3V0LgorICAgICAqLworICAgIHZvaWQgZXhwZWN0Q29udGFpbm1lbnQoVW5pY29kZVNldCBzZXQsIFN0cmluZyBjaGFyc0luLCBTdHJpbmcgY2hhcnNPdXQpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJhZCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaWYgKGNoYXJzSW4gIT0gbnVsbCkgeworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPGNoYXJzSW4ubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgICAgIGludCBjID0gVVRGMTYuY2hhckF0KGNoYXJzSW4saSk7CisgICAgICAgICAgICAgICAgaWYoYz4weGZmZmYpIGkrKzsKKyAgICAgICAgICAgICAgICBpZiAoIXNldC5jb250YWlucyhjKSkgeworICAgICAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQoYmFkLGMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChiYWQubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oVXRpbGl0eS5lc2NhcGUoIkZBSUw6IHNldCAiICsgc2V0ICsgIiBkb2VzIG5vdCBjb250YWluICIgKyBiYWQgKworICAgICAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkIGNvbnRhaW5tZW50IG9mICIgKyBjaGFyc0luKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvZ2xuKFV0aWxpdHkuZXNjYXBlKCJPazogc2V0ICIgKyBzZXQgKyAiIGNvbnRhaW5zICIgKyBjaGFyc0luKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNoYXJzT3V0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGJhZC5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8Y2hhcnNPdXQubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgICAgIGNoYXIgYyA9IGNoYXJzT3V0LmNoYXJBdChpKTsKKyAgICAgICAgICAgICAgICBpZiAoc2V0LmNvbnRhaW5zKGMpKSB7CisgICAgICAgICAgICAgICAgICAgIGJhZC5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGJhZC5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbihVdGlsaXR5LmVzY2FwZSgiRkFJTDogc2V0ICIgKyBzZXQgKyAiIGNvbnRhaW5zICIgKyBiYWQgKworICAgICAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkIG5vbi1jb250YWlubWVudCBvZiAiICsgY2hhcnNPdXQpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbG9nbG4oVXRpbGl0eS5lc2NhcGUoIk9rOiBzZXQgIiArIHNldCArICIgZG9lcyBub3QgY29udGFpbiAiICsgY2hhcnNPdXQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgZXhwZWN0UGF0dGVybihVbmljb2RlU2V0IHNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHBhdHRlcm4sCisgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBleHBlY3RlZFBhaXJzKSB7CisgICAgICAgIHNldC5hcHBseVBhdHRlcm4ocGF0dGVybik7CisgICAgICAgIGlmICghZ2V0UGFpcnMoc2V0KS5lcXVhbHMoZXhwZWN0ZWRQYWlycykpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBhcHBseVBhdHRlcm4oXCIiICsgcGF0dGVybiArCisgICAgICAgICAgICAgICAgICAiXCIpID0+IHBhaXJzIFwiIiArCisgICAgICAgICAgICAgICAgICBVdGlsaXR5LmVzY2FwZShnZXRQYWlycyhzZXQpKSArICJcIiwgZXhwZWN0ZWQgXCIiICsKKyAgICAgICAgICAgICAgICAgIFV0aWxpdHkuZXNjYXBlKGV4cGVjdGVkUGFpcnMpICsgIlwiIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2dsbigiT2s6ICAgYXBwbHlQYXR0ZXJuKFwiIiArIHBhdHRlcm4gKworICAgICAgICAgICAgICAgICAgIlwiKSA9PiBwYWlycyBcIiIgKworICAgICAgICAgICAgICAgICAgVXRpbGl0eS5lc2NhcGUoZ2V0UGFpcnMoc2V0KSkgKyAiXCIiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgZXhwZWN0VG9QYXR0ZXJuKFVuaWNvZGVTZXQgc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBleHBQYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nW10gZXhwU3RyaW5ncykgeworICAgICAgICBTdHJpbmcgcGF0ID0gc2V0LnRvUGF0dGVybih0cnVlKTsKKyAgICAgICAgaWYgKHBhdC5lcXVhbHMoZXhwUGF0KSkgeworICAgICAgICAgICAgbG9nbG4oIk9rOiAgIHRvUGF0dGVybigpID0+IFwiIiArIHBhdCArICJcIiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IHRvUGF0dGVybigpID0+IFwiIiArIHBhdCArICJcIiwgZXhwZWN0ZWQgXCIiICsgZXhwUGF0ICsgIlwiIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgYm9vbGVhbiBpbiA9IHRydWU7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxleHBTdHJpbmdzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoZXhwU3RyaW5nc1tpXSA9PSBOT1QpIHsgLy8gc2ljOyBwb2ludGVyIGNvbXBhcmlzb24KKyAgICAgICAgICAgICAgICBpbiA9IGZhbHNlOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYm9vbGVhbiBjb250YWluZWQgPSBzZXQuY29udGFpbnMoZXhwU3RyaW5nc1tpXSk7CisgICAgICAgICAgICBpZiAoY29udGFpbmVkID09IGluKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgZXhwUGF0ICsgCisgICAgICAgICAgICAgICAgICAgICAgKGNvbnRhaW5lZCA/ICIgY29udGFpbnMgeyIgOiAiIGRvZXMgbm90IGNvbnRhaW4geyIpICsKKyAgICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmVzY2FwZShleHBTdHJpbmdzW2ldKSArICJ9Iik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgZXhwUGF0ICsgCisgICAgICAgICAgICAgICAgICAgICAgKGNvbnRhaW5lZCA/ICIgY29udGFpbnMgeyIgOiAiIGRvZXMgbm90IGNvbnRhaW4geyIpICsKKyAgICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmVzY2FwZShleHBTdHJpbmdzW2ldKSArICJ9Iik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIGV4cGVjdFBhaXJzKFVuaWNvZGVTZXQgc2V0LCBTdHJpbmcgZXhwZWN0ZWRQYWlycykgeworICAgICAgICBpZiAoIWdldFBhaXJzKHNldCkuZXF1YWxzKGV4cGVjdGVkUGFpcnMpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgcGFpciBsaXN0IFwiIiArCisgICAgICAgICAgICAgICAgICBVdGlsaXR5LmVzY2FwZShleHBlY3RlZFBhaXJzKSArICJcIiwgZ290IFwiIiArCisgICAgICAgICAgICAgICAgICBVdGlsaXR5LmVzY2FwZShnZXRQYWlycyhzZXQpKSArICJcIiIpOworICAgICAgICB9CisgICAgfQorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ2hhcnNUb1VuaWNvZGVTdHJpbmcoU3RyaW5nIHMpIHsKKyAgICAgICAgcmV0dXJuIFV0aWxpdHkudW5lc2NhcGUocyk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L1VuaWNvZGVUb0hleFRyYW5zbGl0ZXJhdG9yVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L1VuaWNvZGVUb0hleFRyYW5zbGl0ZXJhdG9yVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgzNjc4NTQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvVW5pY29kZVRvSGV4VHJhbnNsaXRlcmF0b3JUZXN0LmphdmEKQEAgLTAsMCArMSwzMDEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9BdHRpYy9Vbmljb2RlVG9IZXhUcmFuc2xpdGVyYXRvclRlc3QuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8yNSAyMjo0Mzo1NyAkIAorICogJFJldmlzaW9uOiAxLjYgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnRyYW5zbGl0OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgamF2YS50ZXh0Lio7CitpbXBvcnQgamF2YS51dGlsLio7CisKKworLyoqCisgKiBAdGVzdAorICogQHN1bW1hcnkgR2VuZXJhbCB0ZXN0IG9mIFVuaWNvZGVUb0hleFRyYW5zbGl0ZXJhdG9yCisgKi8KK3B1YmxpYyBjbGFzcyBVbmljb2RlVG9IZXhUcmFuc2xpdGVyYXRvclRlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFVuaWNvZGVUb0hleFRyYW5zbGl0ZXJhdG9yVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFVzZWQgYnkgVGVzdENvbnN0cnVjdGlvbigpIGFuZCBUZXN0VHJhbnNsaXRlcmF0ZS4KKyAgICAqLworICAgIFVuaWNvZGVGaWx0ZXIgVW5pRmlsdGVyPW5ldyBVbmljb2RlRmlsdGVyKCkgeworICAgICAgICBwdWJsaWMgYm9vbGVhbiBjb250YWlucyhpbnQgYykgeworICAgICAgICAgICAgaWYoYz09MHgwMDYzIHx8IGM9PTB4MDA2MSB8fCBjPT0weDAwNDMgfHwgYz09MHgwMDQxKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICB9CisgICAgfTsKKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb25zdHJ1Y3Rpb24oKXsKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgdGhlIGNvbnN0cnVjdGlvbiBVbmljb2RlVG9IZXhUcmFuc2xpdGVyYXRvcigpIik7CisgICAgICAgIFVuaWNvZGVUb0hleFRyYW5zbGl0ZXJhdG9yIHRyYW5zMT1uZXcgVW5pY29kZVRvSGV4VHJhbnNsaXRlcmF0b3IoKTsKKyAgICAgICAgCisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgdGhlIGNvc250cnVjdGlvbiBVbmljb2RlVG9IZXhUcmFuc2xpdGVyYXRvcihwYXR0ZXJuKSIpOworICAgICAgICBTdHJpbmcgcGF0dGVybj0iXFxcXFUrMDAwMGFiYyI7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIHRyYW5zMT1uZXcgVW5pY29kZVRvSGV4VHJhbnNsaXRlcmF0b3IocGF0dGVybik7CisgICAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXgyKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVW5pY29kZVRvSGV4VHJhbnNsaXRlcmF0b3IgY29uc3RydWN0aW9uIGZhaWxlZCB3aXRoIHBhdHRlcm49IiArIHBhdHRlcm4gKyAiIEV4Y2VwdGlvbj0gIiArIGV4Mi50b1N0cmluZygpKTsKKyAgICAgICAgfQorCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIHRoZSBjb3NudHJ1Y3Rpb24gVW5pY29kZVRvSGV4VHJhbnNsaXRlcmF0b3IocGF0dGVybikgd2l0aCBpbGxlZ2FsIHBhdHRlcm4iKTsKKyAgICAgICAgU3RyaW5nIHBhdHRlcm4yPSJcXFgrIjsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgdHJhbnMxPW5ldyBVbmljb2RlVG9IZXhUcmFuc2xpdGVyYXRvcihwYXR0ZXJuMik7CisgICAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXgzKSB7CisgICAgICAgICAgICBsb2dsbigiT0s6IGNvbnN0cnVjdGlvbiB3aXRoIElsbGVnYWwgcGF0dGVybiBoYW5kbGVkIGNvcnJlY3RseSIpOworICAgICAgICB9ICAKKyAgICAgICAgCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIHRoZSBjb25zdHJ1Y3Rpb24gVW5pY29kZVRvSGV4VHJhbnNsaXRlcmF0b3IocGF0dGVybiwgaXNVcHBlcmNhc2U9ZmFsc2UsIGFkb3B0ZWRGaWx0ZXI9bnVsbCkiKTsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgdHJhbnMxPW5ldyBVbmljb2RlVG9IZXhUcmFuc2xpdGVyYXRvcihwYXR0ZXJuLCBmYWxzZSwgbnVsbCk7CisgICAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXg0KSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVW5pY29kZVRvSGV4VHJhbnNsaXRlcmF0b3IocGF0dGVybiwgaXNVcHBlcmNhc2U9ZmFsc2UsIGFkb3B0ZWRGaWx0ZXI9bnVsbCkgY29uc3RydWN0aW9uIGZhaWxlZC4gRXhjZXB0aW9uPSAiICsgZXg0LnRvU3RyaW5nKCkpOworICAgICAgICB9CisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgdGhlIGNvbnN0cnVjdGlvbiBVbmljb2RlVG9IZXhUcmFuc2xpdGVyYXRvcihwYXR0ZXJuLCBpc1VwcGVyY2FzZT10cnVlLCBhZG9wdGVkRmlsdGVyKSIpOworICAgICAgICB0cnl7CisgICAgICAgICAgICB0cmFuczE9bmV3IFVuaWNvZGVUb0hleFRyYW5zbGl0ZXJhdG9yKHBhdHRlcm4sIHRydWUsIFVuaUZpbHRlcik7CisgICAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXg0KSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVW5pY29kZVRvSGV4VHJhbnNsaXRlcmF0b3IocGF0dGVybiwgaXNVcHBlcmNhc2U9dHJ1ZSwgYWRvcHRlZEZpbHRlcikgY29uc3RydWN0aW9uIGZhaWxlZC4gRXhjZXB0aW9uPSAiICsgZXg0LnRvU3RyaW5nKCkpOworICAgICAgICB9CisKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0VXBwZXJDYXNlKCl7CisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIHRoZSBpc1VwcGVyY2FzZSgpIGFuZCBzZXRVcHBlcmNhc2UoKSBBUEkgb2YgVW5pY29kZVRvSGV4VHJhbnNsaXRlcmF0b3IiKTsKKyAgICAgICAgU3RyaW5nIHN0cj0iYWJrIjsKKyAgICAgICAgLypkZWZhdWx0IHRyYW5zbGl0ZXJhdG9yIGhhcyB1cHBlciBjYXNlIFRSVUUqLworICAgICAgICBVbmljb2RlVG9IZXhUcmFuc2xpdGVyYXRvciB0cmFuc2RlZmF1bHQ9bmV3IFVuaWNvZGVUb0hleFRyYW5zbGl0ZXJhdG9yKCk7CisgICAgICAgIGV4cGVjdCh0cmFuc2RlZmF1bHQsICJ3aGVyZSB1cHBlcmNhc2U9ZGVmYXVsdCIsIHN0ciwgIlxcdTAwNjFcXHUwMDYyXFx1MDA2QiIpOworCisgICAgICAgIFN0cmluZyBwYXR0ZXJuPSJcXFxcdTAwMDAiOworICAgICAgICAvKnRyYW5zbGl0ZXJhdG9yIHdpdGggVXBwZXJjYXNlIEZBTFNFKi8KKyAgICAgICAgVW5pY29kZVRvSGV4VHJhbnNsaXRlcmF0b3IgdHJhbnMxPW51bGw7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIHRyYW5zMT1uZXcgVW5pY29kZVRvSGV4VHJhbnNsaXRlcmF0b3IocGF0dGVybiwgZmFsc2UsIG51bGwpOworICAgICAgICB9Y2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGV4MSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFVuaWNvZGVUb0hleFRyYW5zbGl0ZXJhdG9yKHBhdHRlcm4sIGZhbHNlLG51bGwpIGNvbnN0cnVjdGlvbiBmYWlsZWQgd2l0aCBwYXR0ZXIiIAorICAgICAgICAgICAgICAgICAgKyBwYXR0ZXJuKyAiIEV4Y2VwdGlvbjogIiArIGV4MS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgICAgICBleHBlY3QodHJhbnMxLCAid2hlcmUgdXBwZXJjYXNlPUZBTFNFIiwgc3RyLCAiXFx1MDA2MVxcdTAwNjJcXHUwMDZiIik7ICAvKmRvZXNuJ3QgZGlzcGxheSB1cHBlcmNhc2UqLworCisgICAgICAgIGlmKHRyYW5zZGVmYXVsdC5pc1VwcGVyY2FzZSgpICE9IHRydWUgIHx8IAorICAgICAgICAgICB0cmFuczEuaXNVcHBlcmNhc2UoKSAhPSBmYWxzZSApeworICAgICAgICAgICAgZXJybG4oImlzVXBwZXJDYXNlKCkgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qY2hhbmdpbmcgdGhlIG91dHB1dGhleGRpZ2l0cyB0byBsb3dlciBjYXNlIGZvciB0aGUgZGVmYXVsdCB0cmFuc2xpdGVyYXRvciovCisgICAgICAgIHRyYW5zZGVmYXVsdC5zZXRVcHBlcmNhc2UodHJhbnMxLmlzVXBwZXJjYXNlKCkpOworICAgICAgICBpZih0cmFuc2RlZmF1bHQuaXNVcHBlcmNhc2UoKSAhPSB0cmFuczEuaXNVcHBlcmNhc2UoKSB8fCAKKyAgICAgICAgICAgdHJhbnNkZWZhdWx0LmlzVXBwZXJjYXNlKCkgIT0gZmFsc2UpeworICAgICAgICAgICAgZXJybG4oInNldFVwcGVyY2FzZSgpIGZhaWxlZCIpOworICAgICAgICB9CisgICAgICAgIC8qZG9lc24ndCBvdXB1dCB1cHBlcmNhc2UgaGV4LCBzaW5jZSB0cmFuc2RlZmF1bHQncyB1cHBlcmNhc2UgaXMgc2V0IHRvIEZBTFNFIHVzaW5nIHNldFVwcGVyY2FzZSovCisgICAgICAgIGV4cGVjdCh0cmFuc2RlZmF1bHQsICJ3aGVyZSB1cHBlcmNhc2U9RkFMU0UiLCBzdHIsICJcXHUwMDYxXFx1MDA2MlxcdTAwNmIiKTsgICAgIAorCisgICAgICAgIC8qdHJ5aW5nIHJvdW5kIHRyaXAqLworICAgICAgICB0cmFuc2RlZmF1bHQuc2V0VXBwZXJjYXNlKHRydWUpOworICAgICAgICBpZih0cmFuc2RlZmF1bHQuaXNVcHBlcmNhc2UoKSAhPSB0cnVlIHx8IAorICAgICAgICAgICB0cmFuc2RlZmF1bHQuaXNVcHBlcmNhc2UoKSA9PSB0cmFuczEuaXNVcHBlcmNhc2UoKSApeworICAgICAgICAgICAgZXJybG4oInNldFVwcGVyY2FzZSgpIGZhaWxlZCIpOworICAgICAgICB9CisgICAgICAgIC8qZGlzcGxheXMgdXBwZXIgY2FzZSBzaW5jZSBpdCBpcyBzZXQgdG8gVFJVRSovCisgICAgICAgIGV4cGVjdCh0cmFuc2RlZmF1bHQsICJ3aGVyZSB1cHBlcmNhc2U9VFJVRSIsIHN0ciwgIlxcdTAwNjFcXHUwMDYyXFx1MDA2QiIpOworCisgICAgfSAKKyAgICBwdWJsaWMgdm9pZCBUZXN0UGF0dGVybigpeworICAgICAgICBsb2dsbigiVGVzdGluZyB0aGUgYXBwbHlQYXR0ZXJuKCkgYW5kIHRvUGF0dGVybigpIEFQSSBvZiBVbmljb2RlVG9IZXhUcmFuc2xpdGVyYXRvciIpOworICAgICAgICAvKmRlZmF1bHQgdHJhbnNsaXRlcmF0b3IgaGFzIHBhdHRlcm4gXFx1MDAwMCovCisgICAgICAgIFVuaWNvZGVUb0hleFRyYW5zbGl0ZXJhdG9yIHRyYW5zZGVmYXVsdD1uZXcgVW5pY29kZVRvSGV4VHJhbnNsaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgU3RyaW5nIGRlZmF1bHRwYXR0ZXJuPXRyYW5zZGVmYXVsdC50b1BhdHRlcm4oKTsKKyAgICAgICAgU3RyaW5nIHBhdHRlcm4xPSJcXFxcVSswMDAwIjsKKyAgICAgICAgCisgICAgICAgIFVuaWNvZGVUb0hleFRyYW5zbGl0ZXJhdG9yIHRyYW5zMT1udWxsOworICAgICAgICB0cnl7CisgICAgICAgICAgICB0cmFuczE9bmV3IFVuaWNvZGVUb0hleFRyYW5zbGl0ZXJhdG9yKHBhdHRlcm4xLCB0cnVlLCBudWxsKTsKKyAgICAgICAgfWNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBleDEpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBVbmljb2RlVG9IZXhUcmFuc2xpdGVyYXRvciBjb25zdHJ1Y3Rpb24gZmFpbGVkIHdpdGggcGF0dGVybiA9IiArIHBhdHRlcm4xICsKKyAgICAgICAgICAgICAgICAgICAiRXhjZXB0aW9uOiIgKyBleDEudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKworICAgICAgICAvKnRlc3QgdG9QYXR0ZXJuKCkgKi8KKyAgICAgICAgaWYodHJhbnNkZWZhdWx0LnRvUGF0dGVybigpLmVxdWFscyh0cmFuczEudG9QYXR0ZXJuKCkpID09IHRydWUgfHwKKyAgICAgICAgICAgIHRyYW5zZGVmYXVsdC50b1BhdHRlcm4oKS5lcXVhbHMoIlxcXFx1MDAwMCIpICE9IHRydWUgfHwKKyAgICAgICAgICAgIHRyYW5zMS50b1BhdHRlcm4oKS5lcXVhbHMocGF0dGVybjEpICE9IHRydWUgKXsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvcjogdG9QYXR0ZXJuKCkgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICAvKmFwcGx5IHBhdHRlcm5zIGZvciB0cmFuc2RlZmF1bHQqLworICAgICAgICBTdHJpbmcgc3RyPSJhYktmIjsKKyAgICAgICAgZXhwZWN0UGF0dGVybih0cmFuc2RlZmF1bHQsICBwYXR0ZXJuMSwgc3RyLCAiXFxVKzAwNjFcXFUrMDA2MlxcVSswMDRCXFxVKzAwNjYiKTsKKyAgICAgICAgZXhwZWN0UGF0dGVybih0cmFuc2RlZmF1bHQsICAiXFxVIyMwMCwiLCBzdHIsICJVNjEsVTYyLFU0QixVNjYsIik7CisgICAgICAgIGV4cGVjdFBhdHRlcm4odHJhbnNkZWZhdWx0LCBkZWZhdWx0cGF0dGVybiwgc3RyLCAiXFx1MDA2MVxcdTAwNjJcXHUwMDRCXFx1MDA2NiIpOworICAgICAgICBleHBlY3RQYXR0ZXJuKHRyYW5zMSwgIlxcdW5pMDAwMCIsIHN0ciwgInVuaTAwNjF1bmkwMDYydW5pMDA0QnVuaTAwNjYiKTsKKyAgICAgICAgZXhwZWN0UGF0dGVybih0cmFuczEsICJcXFxcUy0wMDAwLUUiLCBzdHIsICJcXFMtMDA2MS1FXFxTLTAwNjItRVxcUy0wMDRCLUVcXFMtMDA2Ni1FIik7CisgICAgICAgIGV4cGVjdFBhdHRlcm4odHJhbnMxLCAiXFx1IyMwMDAwIiwgc3RyLCAiRkFJTCIpOworICAgICAgICBleHBlY3RQYXR0ZXJuKHRyYW5zMSwgIlxcKjAwMDAiLCBzdHIsICIqMDA2MSowMDYyKjAwNEIqMDA2NiIpOyAKKyAgICAgICAgZXhwZWN0UGF0dGVybih0cmFuczEsICJcXHUjIyMjIiwgc3RyLCAiRkFJTCIpOworICAgCisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFNpbXBsZVRyYW5zbGl0ZXJhdGUoKXsgCisgICAgICAgIFN0cmluZyBwYXR0ZXJuMT0iXFxcXFUrMDAwMCI7CisgICAgICAgIFVuaWNvZGVUb0hleFRyYW5zbGl0ZXJhdG9yIHRyYW5zMT1udWxsOworICAgICAgICB0cnl7CisgICAgICAgICAgICB0cmFuczE9bmV3IFVuaWNvZGVUb0hleFRyYW5zbGl0ZXJhdG9yKHBhdHRlcm4xLCB0cnVlLCBudWxsKTsKKyAgICAgICAgfWNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpeworICAgICAgICAgICAgZXJybG4oIlVuaWNvZGVUb0hleFRyYW5zbGl0ZXJhdG9yKHBhdHRlcm4xLCB0cnVlLCBudWxsKSBjb25zdHJ1Y3Rpb24gZmFpbGVkIHdpdGggcGF0dGVybiA9IiAKKyAgICAgICAgICAgICAgICAgICsgcGF0dGVybjEgKyAiRXhjZXB0aW9uOiIgKyBpYWUudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHNvdXJjZT0iSGVsbG8iOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWQ9IkhlXFxVKzAwNkNcXFUrMDA2Q1xcVSswMDZGIjsKKworICAgICAgICBleHBlY3RUcmFuc2xpdCh0cmFuczEsICI6UmVwbGFjZWFibGUgIiwgc291cmNlLCAgMSwgNSwgMiwgZXhwZWN0ZWQpOyAgIAorICAgIH0KKyAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RUcmFuc2xpdGVyYXRlKCl7CisgICAgICAgIFN0cmluZyBEYXRhW109eworICAgICAgICAvL3BhdHRlcm4sIHNvdXJjZSwgaW5kZXguY29udGV4dFN0YXJ0LCBpbmRleC5jb250ZXh0TGltaXQsIGluZGV4LnN0YXJ0LCBleHBlY3RlZFJlc3VsdCwgZXhwZWN0ZWRSZXN1bHQgdXNpbmcgZmlsdGVyKGEsIGIpCisgICAgICAgICJVKyMjMDAiLCAgICAiYWJjIiwgIjEiLCAiMyIsICIyIiwgImFiVSs2MyIsICJhYmMiLAorICAgICAgICAiXFxcXHUwMDAwIiwgImFiYyIsICIxIiwgIjIiLCAiMSIsICJhXFx1MDA2MmMiLCAiYVxcdTAwNjJjIiwKKyAgICAgICAgIlVuaTAwMDAiLCAgICJhYmMiLCAiMSIsICIzIiwgIjIiLCAiYWJVbmkwMDYzIiwgImFiYyIsCisgICAgICAgICJVWzAwMDBdIiwgICAiaGVsbG8iLCAiMCIsICI0IiwgIjIiLCAiaGVVWzAwNkNdVVswMDZDXW8iLCAiaGVVWzAwNkNdVVswMDZDXW8iLAorICAgICAgICAicHJlZml4LTAwMDAtc3VmZml4IiwgImFiYyIsICIxIiwgIjMiLCAiMSIsICJhcHJlZml4LTAwNjItc3VmZml4cHJlZml4LTAwNjMtc3VmZml4IiwgImFwcmVmaXgtMDA2Mi1zdWZmaXhjIiwKKyAgICAgICAgIiojIzAwKiIsICAgICAiaGVsbG90aGVyZSIsICIxIiwgIjgiLCAiNCIsICJoZWxsKjZGKio3NCoqNjgqKjY1KnJlIiwgImhlbGwqNkYqKjc0Kio2OCoqNjUqcmUiLAorCisgICAgICAgIH07CisgICAgICAgIFVuaWNvZGVUb0hleFRyYW5zbGl0ZXJhdG9yIHRyYW5zMT1udWxsOworICAgICAgICBVbmljb2RlVG9IZXhUcmFuc2xpdGVyYXRvciB0cmFuczI9bnVsbDsKKyAgICAgICAgZm9yKGludCBpPTA7aTxEYXRhLmxlbmd0aDtpKz03KXsKKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICB0cmFuczE9bmV3IFVuaWNvZGVUb0hleFRyYW5zbGl0ZXJhdG9yKERhdGFbaSswXSx0cnVlLCBudWxsKTsKKyAgICAgICAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiVW5pY29kZVRvSGV4VHJhbnNsaXRlcmF0b3IocGF0dGVybjEsIHRydWUsIG51bGwpIGNvbnN0cnVjdGlvbiBmYWlsZWQgd2l0aCBwYXR0ZXJuID0iIAorICAgICAgICAgICAgICAgICAgKyBEYXRhW2krMF0gKyAiRXhjZXB0aW9uOiIgKyBpYWUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBleHBlY3RUcmFuc2xpdCh0cmFuczEsICIiLCBEYXRhW2krMV0sIEludGVnZXIucGFyc2VJbnQoRGF0YVtpKzJdKSwgCisgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIucGFyc2VJbnQoRGF0YVtpKzNdKSwgSW50ZWdlci5wYXJzZUludChEYXRhW2krNF0pLCAKKyAgICAgICAgICAgICAgICAgICAgICAgRGF0YVtpKzVdICk7CisgICAgICAgIAorICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgIHRyYW5zMj1uZXcgVW5pY29kZVRvSGV4VHJhbnNsaXRlcmF0b3IoRGF0YVtpKzBdLCB0cnVlLCBVbmlGaWx0ZXIpOworICAgICAgICAgICAgfWNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpeworICAgICAgICAgICAgICAgIGVycmxuKCJVbmljb2RlVG9IZXhUcmFuc2xpdGVyYXRvcihwYXR0ZXJuMSwgdHJ1ZSwgVW5pY29kZUZpbHRlcikgY29uc3RydWN0aW9uIGZhaWxlZCB3aXRoIHBhdHRlcm4gPSIgCisgICAgICAgICAgICAgICAgICArICBEYXRhW2krMF0gKyAiIHdpdGggZmlsdGVyKGEsYykuICBFeGNlcHRpb246IiArIGlhZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGV4cGVjdFRyYW5zbGl0KHRyYW5zMiwgIiB3aXRoIGZpbHRlcihhLEEsYyxDKSIsIERhdGFbaSsxXSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnBhcnNlSW50KERhdGFbaSsyXSksIEludGVnZXIucGFyc2VJbnQoRGF0YVtpKzNdKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnBhcnNlSW50KERhdGFbaSs0XSksIERhdGFbaSs2XSApOworICAgICAgICB9CisKKyAgICB9IAorICAgICAgICAKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBTdXBwb3J0IG1ldGhvZHMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIHByaXZhdGUgdm9pZCBleHBlY3RUcmFuc2xpdChVbmljb2RlVG9IZXhUcmFuc2xpdGVyYXRvciB0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbWVzc2FnZSwgU3RyaW5nIHNvdXJjZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCwgaW50IGxpbWl0LCBpbnQgY3Vyc29yLCAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBleHBlY3RlZFJlc3VsdCl7CisgICAgCisKKyAgICAgICAgUmVwbGFjZWFibGVTdHJpbmcgcnNvdXJjZSA9IG5ldyBSZXBsYWNlYWJsZVN0cmluZyhzb3VyY2UpOworICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBpbmRleCA9IG5ldyBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbihzdGFydCwgbGltaXQsIGN1cnNvciwgbGltaXQpOworICAgICAgICB0LnRyYW5zbGl0ZXJhdGUocnNvdXJjZSwgaW5kZXgpOworICAgICAgICB0LmZpbmlzaFRyYW5zbGl0ZXJhdGlvbihyc291cmNlLCBpbmRleCk7CisgICAgICAgIFN0cmluZyByZXN1bHQ9cnNvdXJjZS50b1N0cmluZygpOworICAgICAgICBleHBlY3RBdXgodC5nZXRJRCgpICsgIjprZXlib2FyZCAiICsgbWVzc2FnZSwgc291cmNlICsgIi0+IiArIHJlc3VsdCwgcmVzdWx0LmVxdWFscyhleHBlY3RlZFJlc3VsdCksIGV4cGVjdGVkUmVzdWx0KTsKKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGV4cGVjdFBhdHRlcm4oVW5pY29kZVRvSGV4VHJhbnNsaXRlcmF0b3IgdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBwYXR0ZXJuLCBTdHJpbmcgc291cmNlLCBTdHJpbmcgZXhwZWN0ZWRSZXN1bHQpeworCisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIHQuYXBwbHlQYXR0ZXJuKHBhdHRlcm4pOworICAgICAgICB9Y2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSl7CisgICAgICAgICAgICBpZihleHBlY3RlZFJlc3VsdC5lcXVhbHMoIkZBSUwiKSl7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9LOiBjYWxsaW5nIGFwcGx5UGF0dGVybigpIHdpdGggaWxsZWdhbCBwYXR0ZXJuIGZhaWxlZCBhcyBleHBlY3RlZC4iICsgaWFlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfSBlbHNleworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBhcHBseVBhdHRlcm4oKSBmYWlsZWQgd2l0aCBwYXR0ZXJuID0iICsgcGF0dGVybiArICItLS0+IiArIGlhZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZighZXhwZWN0ZWRSZXN1bHQuZXF1YWxzKCJGQUlMIikpeworICAgICAgICAgICAgaWYoIXQudG9QYXR0ZXJuKCkuZXF1YWxzKHBhdHRlcm4pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGFwcGx5UGF0dGVybiBvciB0b1BhdHRlbiBmYWlsZWQuICBFeHBlY3RlZDogIiArIHBhdHRlcm4gKyAiR290OiAiICsgdC50b1BhdHRlcm4oKSk7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBsb2dsbigiT0s6IGFwcGx5UGF0dGVybiBwYXNzZWQuIFRlc3RpbmcgdHJhbnNsaXRlcmF0aW9uIik7CisgICAgICAgICAgICAgICAgZXhwZWN0KHQsICIgd2l0aCBwYXR0ZXJuICIrcGF0dGVybiwgc291cmNlLCBleHBlY3RlZFJlc3VsdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGV4cGVjdChVbmljb2RlVG9IZXhUcmFuc2xpdGVyYXRvciB0LCAgU3RyaW5nIG1lc3NhZ2UsIFN0cmluZyBzb3VyY2UsIFN0cmluZyBleHBlY3RlZFJlc3VsdCkgeworICAgIAorICAgICAgICBTdHJpbmcgcmVzdWx0PXQudHJhbnNsaXRlcmF0ZShzb3VyY2UpOworICAgICAgICBleHBlY3RBdXgodC5nZXRJRCgpICsgIjpTdHJpbmcgIiArIG1lc3NhZ2UsIHNvdXJjZSArICItPiIgKyByZXN1bHQsIHJlc3VsdC5lcXVhbHMoZXhwZWN0ZWRSZXN1bHQpLCBleHBlY3RlZFJlc3VsdCk7CisKKyAgICAgICAgUmVwbGFjZWFibGVTdHJpbmcgcnNvdXJjZSA9IG5ldyBSZXBsYWNlYWJsZVN0cmluZyhzb3VyY2UpOworICAgICAgICB0LnRyYW5zbGl0ZXJhdGUocnNvdXJjZSk7CisgICAgICAgIHJlc3VsdCA9IHJzb3VyY2UudG9TdHJpbmcoKTsKKyAgICAgICAgZXhwZWN0QXV4KHQuZ2V0SUQoKSArICI6UmVwbGFjZWFibGUiICsgbWVzc2FnZSwgc291cmNlICsgIi0+IiArIHJlc3VsdCwgcmVzdWx0LmVxdWFscyhleHBlY3RlZFJlc3VsdCksIGV4cGVjdGVkUmVzdWx0KTsKKworICAgICAgICAvLyBUZXN0IGtleWJvYXJkIChpbmNyZW1lbnRhbCkgdHJhbnNsaXRlcmF0aW9uIC0tIHRoaXMgcmVzdWx0CisgICAgICAgIC8vIG11c3QgYmUgdGhlIHNhbWUgYWZ0ZXIgd2UgZmluYWxpemUgKHNlZSBiZWxvdykuCisgICAgICAgIHJzb3VyY2UucmVwbGFjZSgwLCByc291cmNlLmxlbmd0aCgpLCAiIik7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uIGluZGV4ID0gbmV3IFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBsb2cgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHNvdXJjZS5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBpZiAoaSAhPSAwKSB7CisgICAgICAgICAgICAgICAgbG9nLmFwcGVuZCgiICsgIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2cuYXBwZW5kKHNvdXJjZS5jaGFyQXQoaSkpLmFwcGVuZCgiIC0+ICIpOworICAgICAgICAgICAgdC50cmFuc2xpdGVyYXRlKHJzb3VyY2UsIGluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZy52YWx1ZU9mKHNvdXJjZS5jaGFyQXQoaSkpKTsKKyAgICAgICAgICAgIC8vIEFwcGVuZCB0aGUgc3RyaW5nIGJ1ZmZlciB3aXRoIGEgdmVydGljYWwgYmFyICd8JyB3aGVyZQorICAgICAgICAgICAgLy8gdGhlIGNvbW1pdHRlZCBpbmRleCBpcy4KKyAgICAgICAgICAgIFN0cmluZyBzID0gcnNvdXJjZS50b1N0cmluZygpOworICAgICAgICAgICAgbG9nLmFwcGVuZChzLnN1YnN0cmluZygwLCBpbmRleC5zdGFydCkpLgorICAgICAgICAgICAgICAgIGFwcGVuZCgnfCcpLgorICAgICAgICAgICAgICAgIGFwcGVuZChzLnN1YnN0cmluZyhpbmRleC5zdGFydCkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBBcyBhIGZpbmFsIHN0ZXAgaW4ga2V5Ym9hcmQgdHJhbnNsaXRlcmF0aW9uLCB3ZSBtdXN0IGNhbGwKKyAgICAgICAgLy8gdHJhbnNsaXRlcmF0ZSB0byBmaW5pc2ggb2ZmIGFueSBwZW5kaW5nIHBhcnRpYWwgbWF0Y2hlcyB0aGF0CisgICAgICAgIC8vIHdlcmUgd2FpdGluZyBmb3IgbW9yZSBpbnB1dC4KKyAgICAgICAgdC5maW5pc2hUcmFuc2xpdGVyYXRpb24ocnNvdXJjZSwgaW5kZXgpOworICAgICAgICByZXN1bHQgPSByc291cmNlLnRvU3RyaW5nKCk7CisgICAgICAgIGxvZy5hcHBlbmQoIiA9PiAiKS5hcHBlbmQocnNvdXJjZS50b1N0cmluZygpKTsKKyAgICAgICAgZXhwZWN0QXV4KHQuZ2V0SUQoKSArICI6S2V5Ym9hcmQiLCBsb2cudG9TdHJpbmcoKSArICJcbiIgKyBzb3VyY2UgKyAiIC0+ICIgKyByZXN1bHQsIHJlc3VsdC5lcXVhbHMoZXhwZWN0ZWRSZXN1bHQpLCBleHBlY3RlZFJlc3VsdCk7CisKKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGV4cGVjdEF1eChTdHJpbmcgdGFnLCBTdHJpbmcgc3VtbWFyeSwgYm9vbGVhbiBwYXNzLCAgU3RyaW5nIGV4cGVjdGVkUmVzdWx0KSB7CisgICAgICAgIGlmIChwYXNzKSB7CisgICAgICAgICAgICBsb2dsbigiKCIgKyB0YWcgKyAiKSAiICsgVXRpbGl0eS5lc2NhcGUoc3VtbWFyeSkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6ICgiICsgdGFnKyAiKSAiCisgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmVzY2FwZShzdW1tYXJ5KQorICAgICAgICAgICAgICAgICsgIiwgZXhwZWN0ZWQgIiArIFV0aWxpdHkuZXNjYXBlKGV4cGVjdGVkUmVzdWx0KSk7CisgICAgICAgIH0KKyAgICB9ICAKK30KKworCisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9Xcml0ZUNoYXJ0cy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L1dyaXRlQ2hhcnRzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTcwZWYxMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9Xcml0ZUNoYXJ0cy5qYXZhCkBAIC0wLDAgKzEsMzg3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvV3JpdGVDaGFydHMuamF2YSx2ICQKKyAqICREYXRlOiAyMDAyLzA2LzIwIDAxOjE2OjQ4ICQKKyAqICRSZXZpc2lvbjogMS4xNSAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudHJhbnNsaXQ7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKy8vaW1wb3J0IGphdmEudGV4dC4qOworaW1wb3J0IGphdmEudXRpbC4qOworaW1wb3J0IGphdmEuaW8uKjsKKworcHVibGljIGNsYXNzIFdyaXRlQ2hhcnRzIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBpZiAoZmFsc2UpIHsKKyAgICAgICAgICAgIHByaW50U2V0KCJbW1x1MDAwMC1cdTAwN0UgXHUzMEExLVx1MzBGQyBcdUZGNjEtXHVGRjlGXHUzMDAxXHUzMDAyXVs6S2F0YWthbmE6XVs6TWFyazpdXSIpOworICAgICAgICB9CisgICAgICAgIFN0cmluZyB0ZXN0U2V0ID0gIiI7CisgICAgICAgIGlmIChhcmdzLmxlbmd0aCA9PSAwKSBhcmdzID0gZ2V0QWxsU2NyaXB0cygpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyArK2kpIHsKKyAgICAvLyBFbnVtZXJhdGlvbiBlbnVtID0gVHJhbnNsaXRlcmF0b3IuZ2V0QXZhaWxhYmxlSURzKCk7CisgICAgICAgICAgICBpZiAoYXJnc1tpXS5zdGFydHNXaXRoKCJbIikpIHsKKyAgICAgICAgICAgICAgICB0ZXN0U2V0ID0gYXJnc1tpXTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHJpbnQodGVzdFNldCwgYXJnc1tpXSk7CisgICAgICAgICAgICAgICAgdGVzdFNldCA9ICIiOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBwcmludFNldChTdHJpbmcgc291cmNlKSB7CisgICAgICAgIFVuaWNvZGVTZXQgcyA9IG5ldyBVbmljb2RlU2V0KHNvdXJjZSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUHJpbnRvdXQgZm9yICciICsgc291cmNlICsgIiciKTsKKyAgICAgICAgaW50IGNvdW50ID0gcy5nZXRSYW5nZUNvdW50KCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICAgICAgaW50IHN0YXJ0ID0gcy5nZXRSYW5nZVN0YXJ0KGkpOworICAgICAgICAgICAgaW50IGVuZCA9IHMuZ2V0UmFuZ2VFbmQoaSk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oSW50ZWdlci50b1N0cmluZyhzdGFydCwxNikgKyAiLi4iICsgSW50ZWdlci50b1N0cmluZyhlbmQsMTYpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ1tdIGdldEFsbFNjcmlwdHMoKSB7CisgICAgICAgIFNldCBzZXQgPSBuZXcgVHJlZVNldCgpOworICAgICAgICBpbnQgc2NyaXB0c1tdOworICAgICAgICBFbnVtZXJhdGlvbiBzb3VyY2VzID0gVHJhbnNsaXRlcmF0b3IuZ2V0QXZhaWxhYmxlU291cmNlcygpOworICAgICAgICB3aGlsZShzb3VyY2VzLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBTdHJpbmcgc291cmNlID0gKFN0cmluZykgc291cmNlcy5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgc2NyaXB0cyA9IFVTY3JpcHQuZ2V0Q29kZShzb3VyY2UpOworICAgICAgICAgICAgaWYgKHNjcmlwdHMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiW1NraXBwaW5nICIgKyBzb3VyY2UgKyAiXSIpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IHNvdXJjZVNjcmlwdCA9IHNjcmlwdHNbMF07CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlNvdXJjZTogIiArIHNvdXJjZSArICI7XHRTY3JpcHRzOiAiICsgc2hvd1NjcmlwdHMoc2NyaXB0cykpOworICAgICAgICAgICAgRW51bWVyYXRpb24gdGFyZ2V0cyA9IFRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZVRhcmdldHMoc291cmNlKTsKKyAgICAgICAgICAgIHdoaWxlKHRhcmdldHMuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gKFN0cmluZykgdGFyZ2V0cy5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgICAgIHNjcmlwdHMgPSBVU2NyaXB0LmdldENvZGUodGFyZ2V0KTsKKyAgICAgICAgICAgICAgICBpZiAoc2NyaXB0cyA9PSBudWxsCisgICAgICAgICAgICAgICAgICAgICAgICB8fCBwcmlvcml0eShzY3JpcHRzWzBdKSA8IHByaW9yaXR5KHNvdXJjZVNjcmlwdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gc2tpcCBkb2luZyBib3RoIGRpcmVjdGlvbnMKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJbU2tpcHBpbmcgJyIgKyBzb3VyY2UgKyAiLSIgKyB0YXJnZXQgKyAiJ10iKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXHRUYXJnZXQ6ICIgKyB0YXJnZXQgKyAiO1x0U2NyaXB0czogIiArIHNob3dTY3JpcHRzKHNjcmlwdHMpKTsKKyAgICAgICAgICAgICAgICBFbnVtZXJhdGlvbiB2YXJpYW50cyA9IFRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZVZhcmlhbnRzKHNvdXJjZSwgdGFyZ2V0KTsKKyAgICAgICAgICAgICAgICB3aGlsZSh2YXJpYW50cy5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFyaWFudCA9IChTdHJpbmcpIHZhcmlhbnRzLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBpZCA9IHNvdXJjZSArICItIiArIHRhcmdldDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhcmlhbnQubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWQgKz0gIi8iICsgdmFyaWFudDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmYWxzZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU0tJUFBJTkcgVkFSSUFOVCwgU0lOQ0UgSVQgQ1VSUkVOVExZIEJSRUFLUyFcdCIgKyBpZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcdFx0XHRcdEFkZGluZzogJyIgKyBpZCArICInIik7CisgICAgICAgICAgICAgICAgICAgIHNldC5hZGQoaWQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBTdHJpbmdbXSByZXN1bHRzID0gbmV3IFN0cmluZ1tzZXQuc2l6ZSgpXTsKKyAgICAgICAgc2V0LnRvQXJyYXkocmVzdWx0cyk7CisgICAgICAgIHJldHVybiByZXN1bHRzOworICAgIH07CisgICAgCisgICAgc3RhdGljIHB1YmxpYyBpbnQgcHJpb3JpdHkoaW50IHNjcmlwdCkgeworICAgICAgICBpZiAoc2NyaXB0ID09IFVTY3JpcHQuTEFUSU4pIHJldHVybiAtMjsKKyAgICAgICAgcmV0dXJuIHNjcmlwdDsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgc2hvd1NjcmlwdHMoaW50W10gc2NyaXB0cykgeworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0cyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzY3JpcHRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoaSAhPSAwKSByZXN1bHRzLmFwcGVuZCgiLCAiKTsKKyAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKFVTY3JpcHQuZ2V0TmFtZShzY3JpcHRzW2ldKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdHMudG9TdHJpbmcoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHByaW50KFN0cmluZyB0ZXN0U2V0LCBTdHJpbmcgcmF3SWQpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUHJvY2Vzc2luZyAiICsgcmF3SWQpOworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UocmF3SWQpOworICAgICAgICBTdHJpbmcgaWQgPSB0LmdldElEKCk7CisgICAgICAgIAorICAgICAgICAvLyBjbGVhbiB1cCBJRHMuIE91Z2h0IHRvIGJlIEFQSSBmb3IgZ2V0dGluZyBzb3VyY2UsIHRhcmdldCwgdmFyaWFudAorICAgICAgICBpbnQgbWludXNQb3MgPSBpZC5pbmRleE9mKCctJyk7CisgICAgICAgIFN0cmluZyBzb3VyY2UgPSBpZC5zdWJzdHJpbmcoMCxtaW51c1Bvcyk7CisgICAgICAgIFN0cmluZyB0YXJnZXQgPSBpZC5zdWJzdHJpbmcobWludXNQb3MrMSk7CisgICAgICAgIGludCBzbGFzaFBvcyA9IHRhcmdldC5pbmRleE9mKCcvJyk7CisgICAgICAgIGlmIChzbGFzaFBvcyA+PSAwKSB0YXJnZXQgPSB0YXJnZXQuc3Vic3RyaW5nKDAsc2xhc2hQb3MpOworICAgICAgICAKKyAgICAgICAgLy8gY2hlY2sgdGhhdCB0aGUgc291cmNlIGlzIGEgc2NyaXB0CisgICAgICAgIGlmICh0ZXN0U2V0LmVxdWFscygiIikpIHsKKyAgICAgICAgICAgIGludFtdIHNjcmlwdHMgPSBVU2NyaXB0LmdldENvZGUoc291cmNlKTsKKyAgICAgICAgICAgIGlmIChzY3JpcHRzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkZBSUxFRDogIiAKKyAgICAgICAgICAgICAgICAgICAgKyBUcmFuc2xpdGVyYXRvci5nZXREaXNwbGF5TmFtZShpZCkKKyAgICAgICAgICAgICAgICAgICAgKyAiIGRvZXMgbm90IGhhdmUgYSBzY3JpcHQgYXMgdGhlIHNvdXJjZSIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdGVzdFNldCA9ICJbOiIgKyBzb3VyY2UgKyAiOl0iOworICAgICAgICAgICAgICAgIGlmIChzb3VyY2UuZXF1YWxzSWdub3JlQ2FzZSgia2F0YWthbmEiKSkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0U2V0ID0gIlsiICsgdGVzdFNldCArICJcdTMwRkNdIjsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRTZXQodGVzdFNldCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIFVuaWNvZGVTZXQgc291cmNlU2V0ID0gbmV3IFVuaWNvZGVTZXQodGVzdFNldCk7CisKKyAgICAgICAgLy8gY2hlY2sgdGhhdCB0aGUgdGFyZ2V0IGlzIGEgc2NyaXB0CisgICAgICAgIGludFtdIHNjcmlwdHMgPSBVU2NyaXB0LmdldENvZGUodGFyZ2V0KTsKKyAgICAgICAgaWYgKHNjcmlwdHMgPT0gbnVsbCkgeworICAgICAgICAgICAgdGFyZ2V0ID0gIls6TGF0aW46XSI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0YXJnZXQgPSAiWzoiICsgdGFyZ2V0ICsgIjpdIjsKKyAgICAgICAgfQorICAgICAgICBVbmljb2RlU2V0IHRhcmdldFNldCA9IG5ldyBVbmljb2RlU2V0KHRhcmdldCk7ICAgICAgICAKKyAgICAgICAgCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGludmVyc2UgPSB0LmdldEludmVyc2UoKTsKKyAgICAgICAgCisgICAgICAgIC8vVHJhbnNsaXRlcmF0b3IgaGV4ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1IZXgiKTsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgIC8vIGl0ZXJhdGUgdGhyb3VnaCBzY3JpcHQKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUcmFuc2xpdGVyYXRpbmcgIiArIHNvdXJjZVNldC50b1BhdHRlcm4odHJ1ZSkgCisgICAgICAgICAgICArICIgd2l0aCAiICsgVHJhbnNsaXRlcmF0b3IuZ2V0RGlzcGxheU5hbWUoaWQpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgVW5pY29kZVNldCBsZWZ0T3ZlclNldCA9IG5ldyBVbmljb2RlU2V0KHRhcmdldFNldCk7CisgICAgICAgIFVuaWNvZGVTZXQgcHJpdmF0ZVVzZSA9IG5ldyBVbmljb2RlU2V0KCJbOnByaXZhdGUgdXNlOl0iKTsKKyAgICAgICAgICAgIAorICAgICAgICBNYXAgbWFwID0gbmV3IFRyZWVNYXAoKTsKKyAgICAgICAgCisgICAgICAgIFVuaWNvZGVTZXQgdGFyZ2V0U2V0UGx1c0FueXdheXMgPSBuZXcgVW5pY29kZVNldCh0YXJnZXRTZXQpOworICAgICAgICB0YXJnZXRTZXRQbHVzQW55d2F5cy5hZGRBbGwob2tBbnl3YXkpOworICAgICAgICAKKyAgICAgICAgVW5pY29kZVNldCBzb3VyY2VTZXRQbHVzQW55d2F5cyA9IG5ldyBVbmljb2RlU2V0KHNvdXJjZVNldCk7CisgICAgICAgIHNvdXJjZVNldFBsdXNBbnl3YXlzLmFkZEFsbChva0FueXdheSk7CisgICAgICAgIAorICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IgdXNpID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcihzb3VyY2VTZXQpOworICAgICAgICAKKyAgICAgICAgd2hpbGUgKHVzaS5uZXh0KCkpIHsKKyAgICAgICAgICAgIGludCBqID0gdXNpLmNvZGVwb2ludDsKKyAgICAgICAgICAgIC8qCisgICAgICAgIGludCBjb3VudCA9IHNvdXJjZVNldC5nZXRSYW5nZUNvdW50KCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICAgICAgaW50IGVuZCA9IHNvdXJjZVNldC5nZXRSYW5nZUVuZChpKTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSBzb3VyY2VTZXQuZ2V0UmFuZ2VTdGFydChpKTsgaiA8PSBlbmQ7ICsraikgeworICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBTdHJpbmcgZmxhZyA9ICIiOworICAgICAgICAgICAgICAgIFN0cmluZyBzcyA9IFVURjE2LnZhbHVlT2Yoaik7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRzID0gdC50cmFuc2xpdGVyYXRlKHNzKTsKKyAgICAgICAgICAgICAgICBjaGFyIGdyb3VwID0gMDsKKyAgICAgICAgICAgICAgICBpZiAoIXRhcmdldFNldFBsdXNBbnl3YXlzLmNvbnRhaW5zQWxsKHRzKSkgeworICAgICAgICAgICAgICAgICAgICBncm91cCB8PSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoVVRGMTYuY291bnRDb2RlUG9pbnQodHMpID09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgbGVmdE92ZXJTZXQucmVtb3ZlKFVURjE2LmNoYXJBdCh0cywwKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN0cmluZyBydCA9IGludmVyc2UudHJhbnNsaXRlcmF0ZSh0cyk7CisgICAgICAgICAgICAgICAgaWYgKCFzb3VyY2VTZXRQbHVzQW55d2F5cy5jb250YWluc0FsbChydCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZ3JvdXAgfD0gMjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFzcy5lcXVhbHMocnQpKSB7CisgICAgICAgICAgICAgICAgICAgIGdyb3VwIHw9IDQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmICghcHJpdmF0ZVVzZS5jb250YWluc05vbmUodHMpIHx8ICFwcml2YXRlVXNlLmNvbnRhaW5zTm9uZShydCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZ3JvdXAgfD0gMTY7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBtYXAucHV0KGdyb3VwICsgVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShOb3JtYWxpemVyLm5vcm1hbGl6ZShzcywgTm9ybWFsaXplci5ORktEKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIlx1MDAwMCIgKyBzcywgCisgICAgICAgICAgICAgICAgICAgICI8dGQgY2xhc3M9J3MnPiIgKyBzcyArICI8YnI+PHR0PiIgKyBoZXgoc3MpCisgICAgICAgICAgICAgICAgICAgICAgICArICI8L3R0PjwvdGQ+PHRkIGNsYXNzPSd0Jz4iICsgdHMgKyAiPGJyPjx0dD4iICsgaGV4KHRzKQorICAgICAgICAgICAgICAgICAgICAgICAgKyAiPC90dD48L3RkPjx0ZCBjbGFzcz0ncic+IiArIHJ0ICsgIjxicj48dHQ+IiArIGhleChydCkgKyAiPC90dD48L3RkPiIgKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBDaGVjayBEdWFscworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgaW50IG1heER1YWwgPSAyMDA7CisgICAgICAgICAgICAgIGR1YWw6CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaTIgPSAwOyBpMiA8IGNvdW50OyArK2kyKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBlbmQyID0gc291cmNlU2V0LmdldFJhbmdlRW5kKGkyKTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgajIgPSBzb3VyY2VTZXQuZ2V0UmFuZ2VTdGFydChpMik7IGoyIDw9IGVuZDsgKytqMikgeworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHNzMiA9IFVURjE2LnZhbHVlT2YoajIpOworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRzMiA9IHQudHJhbnNsaXRlcmF0ZShzczIpOworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHJ0MiA9IGludmVyc2UudHJhbnNsaXRlcmF0ZSh0czIpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgc3MxMiA9IHNzICsgc3MyOworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRzMTIgPSB0LnRyYW5zbGl0ZXJhdGUoc3MgKyBzczEyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBydDEyID0gaW52ZXJzZS50cmFuc2xpdGVyYXRlKHRzMTIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRzMTIuZXF1YWxzKHRzICsgdHMyKSAmJiBydDEyLmVxdWFscyhydCArIHJ0MikpIGNvbnRpbnVlOyAgIAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC0tbWF4RHVhbCA8IDApIGJyZWFrIGR1YWw7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyYW5zbGl0ZXJhdGlvbiBvZiB3aG9sZSBkaWZmZXJzIGZyb20gdGhhdCBvZiBwYXJ0cworICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXAgPSAweDEwMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5wdXQoZ3JvdXAgKyBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKE5vcm1hbGl6ZXIubm9ybWFsaXplKHNzMTIsIE5vcm1hbGl6ZXIuREVDT01QX0NPTVBBVCwgMCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIlx1MDAwMCIgKyBzczEyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPHRkIGNsYXNzPSdzJz4iICsgc3MxMiArICI8YnI+PHR0PiIgKyBoZXgoc3MxMikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiPC90dD48L3RkPjx0ZCBjbGFzcz0ndCc+IiArIHRzMTIgKyAiPGJyPjx0dD4iICsgaGV4KHRzMTIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIjwvdHQ+PC90ZD48dGQgY2xhc3M9J3InPiIgKyBydDEyICsgIjxicj48dHQ+IiArIGhleChydDEyKSArICI8L3R0PjwvdGQ+IiApOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAvL30KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIGxlZnRPdmVyU2V0LnJlbW92ZSgweDAxMDAsMHgwMkZGKTsgLy8gcmVtb3ZlIGV4dGVuZGVkICYgSVBBCisgICAgICAgIAorICAgICAgICAvKmludCBjb3VudCA9IGxlZnRPdmVyU2V0LmdldFJhbmdlQ291bnQoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgICAgICBpbnQgZW5kID0gbGVmdE92ZXJTZXQuZ2V0UmFuZ2VFbmQoaSk7CisgICAgICAgICAgICBmb3IgKGludCBqID0gbGVmdE92ZXJTZXQuZ2V0UmFuZ2VTdGFydChpKTsgaiA8PSBlbmQ7ICsraikgeworICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIAorICAgICAgICB1c2kucmVzZXQobGVmdE92ZXJTZXQpOworICAgICAgICB3aGlsZSAodXNpLm5leHQoKSkgeworICAgICAgICAgICAgaW50IGogPSB1c2kuY29kZXBvaW50OworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgU3RyaW5nIHRzID0gVVRGMTYudmFsdWVPZihqKTsKKyAgICAgICAgICAgICAgICAvLyBTdHJpbmcgZGVjb21wID0gTm9ybWFsaXplci5ub3JtYWxpemUodHMsIE5vcm1hbGl6ZXIuREVDT01QX0NPTVBBVCwgMCk7CisgICAgICAgICAgICAgICAgLy8gaWYgKCFkZWNvbXAuZXF1YWxzKHRzKSkgY29udGludWU7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgU3RyaW5nIHJ0ID0gaW52ZXJzZS50cmFuc2xpdGVyYXRlKHRzKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZmxhZyA9ICIiOworICAgICAgICAgICAgICAgIGNoYXIgZ3JvdXAgPSAweDgwOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoIXNvdXJjZVNldFBsdXNBbnl3YXlzLmNvbnRhaW5zQWxsKHJ0KSkgeworICAgICAgICAgICAgICAgICAgICBncm91cCB8PSA4OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoIXByaXZhdGVVc2UuY29udGFpbnNOb25lKHJ0KSkgeworICAgICAgICAgICAgICAgICAgICBncm91cCB8PSAxNjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG1hcC5wdXQoZ3JvdXAgKyBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKE5vcm1hbGl6ZXIubm9ybWFsaXplKHRzLCBOb3JtYWxpemVyLk5GS0QpKSArIHRzLCAKKyAgICAgICAgICAgICAgICAgICAgIjx0ZCBjbGFzcz0ncyc+LTwvdGQ+PHRkIGNsYXNzPSd0Jz4iICsgdHMgKyAiPGJyPjx0dD4iICsgaGV4KHRzKQorICAgICAgICAgICAgICAgICAgICArICI8L3R0PjwvdGQ+PHRkIGNsYXNzPSdyJz4iCisgICAgICAgICAgICAgICAgICAgICsgcnQgKyAiPGJyPjx0dD4iICsgaGV4KHJ0KSArICI8L3R0PjwvdGQ+Iik7CisgICAgICAgICAgICAvL30KKyAgICAgICAgfQorCisgICAgICAgIC8vIG1ha2UgZmlsZSBuYW1lIGFuZCBvcGVuCisgICAgICAgIEZpbGUgZiA9IG5ldyBGaWxlKCJ0cmFuc2xpdGVyYXRpb24vY2hhcnRfIiArIGlkLnJlcGxhY2UoJy8nLCAnXycpICsgIi5odG1sIik7CisgICAgICAgIFN0cmluZyBmaWxlbmFtZSA9IGYuZ2V0Q2Fub25pY2FsRmlsZSgpLnRvU3RyaW5nKCk7CisgICAgICAgIFByaW50V3JpdGVyIG91dCA9IG5ldyBQcmludFdyaXRlcigKKyAgICAgICAgICAgIG5ldyBPdXRwdXRTdHJlYW1Xcml0ZXIoCisgICAgICAgICAgICAgICAgbmV3IEZpbGVPdXRwdXRTdHJlYW0oZmlsZW5hbWUpLCAiVVRGLTgiKSk7CisgICAgICAgIC8vb3V0LnByaW50KCdcdUZFRkYnKTsgLy8gQk9NCisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIldyaXRpbmcgIiArIGZpbGVuYW1lKTsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPCFET0NUWVBFIEhUTUwgUFVCTElDIFwiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTlwiPiIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oIjxIVE1MPjxIRUFEPiIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oIjxNRVRBIGNvbnRlbnQ9XCJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLThcIiBodHRwLWVxdWl2PUNvbnRlbnQtVHlwZT48L0hFQUQ+Iik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBocmVmPSdodHRwOi8vd3d3LnVuaWNvZGUub3JnL2NoYXJ0cy91Y2EvY2hhcnRzLmNzcycgdHlwZT0ndGV4dC9jc3MnPiIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBvdXQucHJpbnRsbigiPEJPRFk+Iik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPGgxPlRyYW5zbGl0ZXJhdGlvbiBTYW1wbGVzIGZvciAnIiArIFRyYW5zbGl0ZXJhdG9yLmdldERpc3BsYXlOYW1lKGlkKSArICInPC9oMT4iKTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCI8cD5UaGlzIGZpbGUgaWxsdXN0cmF0ZXMgdGhlIHRyYW5zbGl0ZXJhdGlvbnMgb2YgIiArIFRyYW5zbGl0ZXJhdG9yLmdldERpc3BsYXlOYW1lKGlkKSArICIuIik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiVGhlIHNhbXBsZXMgYXJlIG1lY2hhbmljYWxseSBnZW5lcmF0ZWQsIGFuZCBvbmx5IGluY2x1ZGUgc2luZ2xlIGNoYXJhY3RlcnMiKTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCJmcm9tIHRoZSBzb3VyY2Ugc2V0LiBUaHVzIGl0IHdpbGwgPGk+bm90PC9pPiBjb250YWluIGV4YW1wbGVzIHdoZXJlIHRoZSB0cmFuc2xpdGVyYXRpb24iKTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCJkZXBlbmRzIG9uIHRoZSBjb250ZXh0IGFyb3VuZCB0aGUgY2hhcmFjdGVyLiBGb3IgYSBtb3JlIGRldGFpbGVkIC0tIGFuZCBpbnRlcmFjdGl2ZSAtLSBleGFtcGxlLCBzZWUgdGhlIik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPGEgaHJlZj0naHR0cDovL29zcy5zb2Z0d2FyZS5pYm0uY29tL2NnaS1iaW4vaWN1L3RyJz5UcmFuc2xpdGVyYXRpb24gRGVtbzwvYT48L3A+PGhyPiIpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBzZXQgdXAgdGhlIGhlYWRlcnMKKyAgICAgICAgICAgIGludCBjb2x1bW5Db3VudCA9IDM7CisgICAgICAgICAgICBTdHJpbmcgaGVhZGVyQmFzZSA9ICI8dGg+U291cmNlPC90aD48dGg+VGFyZ2V0PC90aD48dGg+UmV0dXJuPC90aD4iOworICAgICAgICAgICAgU3RyaW5nIGhlYWRlcnMgPSBoZWFkZXJCYXNlOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IGNvbHVtbkNvdW50IC0gMTsgaSA+IDA7IC0taSkgeworICAgICAgICAgICAgICAgIGlmIChpICE9IGNvbHVtbkNvdW50IC0gMSkgaGVhZGVycyArPSAiPHRoPiZuYnNwOzwvdGg+IjsKKyAgICAgICAgICAgICAgICBoZWFkZXJzICs9IGhlYWRlckJhc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyB0YWJsZUhlYWRlciA9ICI8cD48dGFibGUgYm9yZGVyPScxJz48dHI+IiArIGhlYWRlcnMgKyAiPC90cj4iOworICAgICAgICAgICAgU3RyaW5nIHRhYmxlRm9vdGVyID0gIjwvdGFibGU+PC9wPiI7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPGgyPlJvdW5kIFRyaXA8L2gyPiIpOworICAgICAgICAgICAgb3V0LnByaW50bG4odGFibGVIZWFkZXIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBJdGVyYXRvciBpdCA9IG1hcC5rZXlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICAgICAgY2hhciBsYXN0R3JvdXAgPSAwOworICAgICAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgICAgIGludCBjb2x1bW4gPSAwOworICAgICAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBrZXkgPSAoU3RyaW5nKSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgY2hhciBncm91cCA9IGtleS5jaGFyQXQoMCk7CisgICAgICAgICAgICAgICAgaWYgKGdyb3VwICE9IGxhc3RHcm91cCB8fCBjb3VudCsrID4gNTApIHsKKyAgICAgICAgICAgICAgICAgICAgbGFzdEdyb3VwID0gZ3JvdXA7CisgICAgICAgICAgICAgICAgICAgIGNvdW50ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNvbHVtbiAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiPC90cj4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbiA9IDA7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4odGFibGVGb290ZXIpOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRpdGxlID0gIiI7CisgICAgICAgICAgICAgICAgICAgIGlmICgoZ3JvdXAgJiAweDEwMCkgIT0gMCkgb3V0LnByaW50bG4oIjxocj48aDI+RHVhbHM8L2gyPiIpOworICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgoZ3JvdXAgJiAweDgwKSAhPSAwKSBvdXQucHJpbnRsbigiPGhyPjxoMj5Db21wbGV0ZW5lc3M8L2gyPiIpOworICAgICAgICAgICAgICAgICAgICBlbHNlIG91dC5wcmludGxuKCI8aHI+PGgyPlJvdW5kIFRyaXA8L2gyPiIpOworICAgICAgICAgICAgICAgICAgICBpZiAoKGdyb3VwICYgMTYpICE9IDApIG91dC5wcmludGxuKCI8aDM+RXJyb3JzOiBDb250YWlucyBQcml2YXRlIFVzZSBDaGFyYWN0ZXJzPC9oMz4iKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKChncm91cCAmIDgpICE9IDApIG91dC5wcmludGxuKCI8aDM+UG9zc2libGUgRXJyb3JzOiBSZXR1cm4gbm90IGluIFNvdXJjZSBTZXQ8L2gzPiIpOworICAgICAgICAgICAgICAgICAgICBpZiAoKGdyb3VwICYgNCkgIT0gMCkgb3V0LnByaW50bG4oIjxoMz5PbmUtV2F5IE1hcHBpbmc6IFJldHVybiBub3QgZXF1YWwgdG8gU291cmNlPC9oMz4iKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKChncm91cCAmIDIpICE9IDApIG91dC5wcmludGxuKCI8aDM+RXJyb3JzOiBSZXR1cm4gbm90IGluIFNvdXJjZSBTZXQ8L2gzPiIpOworICAgICAgICAgICAgICAgICAgICBpZiAoKGdyb3VwICYgMSkgIT0gMCkgb3V0LnByaW50bG4oIjxoMz5FcnJvcnM6IFRhcmdldCBub3QgaW4gVGFyZ2V0IFNldDwvaDM+Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKHRhYmxlSGVhZGVyKTsKKyAgICAgICAgICAgICAgICAgICAgY29sdW1uID0gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gKFN0cmluZykgbWFwLmdldChrZXkpOworICAgICAgICAgICAgICAgIGlmIChjb2x1bW4rKyA9PSAwKSBvdXQucHJpbnQoIjx0cj4iKTsKKyAgICAgICAgICAgICAgICBlbHNlIG91dC5wcmludCgiPHRoPiZuYnNwOzwvdGg+Iik7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4odmFsdWUpOworICAgICAgICAgICAgICAgIGlmIChjb2x1bW4gPT0gMykgeworICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiPC90cj4iKTsKKyAgICAgICAgICAgICAgICAgICAgY29sdW1uID0gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY29sdW1uICE9IDApIHsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiPC90cj4iKTsKKyAgICAgICAgICAgICAgICBjb2x1bW4gPSAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb3V0LnByaW50bG4odGFibGVGb290ZXIgKyAiPC9CT0RZPjwvSFRNTD4iKTsKKyAgICAgICAgICAgIAorICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgb3V0LmNsb3NlKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgaGV4KFN0cmluZyBzKSB7CisgICAgICAgIGludCBjcDsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdHMgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdChzLCBpKTsKKyAgICAgICAgICAgIGlmIChpICE9IDApIHJlc3VsdHMuYXBwZW5kKCcgJyk7CisgICAgICAgICAgICByZXN1bHRzLmFwcGVuZChJbnRlZ2VyLnRvSGV4U3RyaW5nKGNwKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdHMudG9TdHJpbmcoKS50b1VwcGVyQ2FzZSgpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZmluYWwgVW5pY29kZVNldCBva0FueXdheSA9IG5ldyBVbmljb2RlU2V0KCJbXls6TGV0dGVyOl1dIik7CisgICAgCisgICAgLyoKKyAgICAvLyB0ZXN0cyB3aGV0aGVyIGEgc3RyaW5nIGlzIGluIGEgc2V0LiBBbHNvIGNoZWNrcyBmb3IgQ29tbW9uIGFuZCBJbmhlcml0ZWQKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNJbihTdHJpbmcgcywgVW5pY29kZVNldCBzZXQpIHsKKyAgICAgICAgaW50IGNwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGkpKSB7CisgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdChzLCBpKTsKKyAgICAgICAgICAgIGlmIChzZXQuY29udGFpbnMoY3ApKSBjb250aW51ZTsKKyAgICAgICAgICAgIGlmIChva0FueXdheS5jb250YWlucyhjcCkpIGNvbnRpbnVlOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAqLworICAgIAorfQorICAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvcGFja2FnZS5odG1sIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L3BhY2thZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zOWI1NjBjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKyAgJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L3BhY2thZ2UuaHRtbCx2ICQKKyAgJFJldmlzaW9uOiAxLjEgJAorICAkRGF0ZTogMjAwMC8wMy8xNSAyMTozNTo1MSAkCistLT4KKzwvaGVhZD4KKzxib2R5IGJnY29sb3I9IndoaXRlIj4KK1RyYW5zbGl0ZXJhdG9yIHRlc3RzLgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0NvbXBhY3RBcnJheVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0NvbXBhY3RBcnJheVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDhkZmY5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvQ29tcGFjdEFycmF5VGVzdC5qYXZhCkBAIC0wLDAgKzEsMTU2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9Db21wYWN0QXJyYXlUZXN0LmphdmEsdiAkCisgKiAkRGF0ZTogMjAwMi8wOC8xMiAyMDoyNjozOSAkCisgKiAkUmV2aXNpb246IDEuMSAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ29tcGFjdEJ5dGVBcnJheTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNvbXBhY3RDaGFyQXJyYXk7CisKKy8qKgorICogQHNpbmNlIHJlbGVhc2UgMi4yCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBDb21wYWN0QXJyYXlUZXN0IGV4dGVuZHMgVGVzdEZtd2sgCit7IAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24KKyAgICB7CisgICAgICAgIG5ldyBDb21wYWN0QXJyYXlUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Qnl0ZUFycmF5Q292ZXJhZ2UoKSB7CisJQ29tcGFjdEJ5dGVBcnJheSBjYmEgPSBuZXcgQ29tcGFjdEJ5dGVBcnJheSgpOworCWNiYS5zZXRFbGVtZW50QXQoKGNoYXIpMHg1LCAoYnl0ZSkweGRmKTsKKwljYmEuc2V0RWxlbWVudEF0KChjaGFyKTB4MTA1LCAoYnl0ZSkweGRmKTsKKwljYmEuc2V0RWxlbWVudEF0KChjaGFyKTB4MjA1LCAoYnl0ZSkweGRmKTsKKwljYmEuc2V0RWxlbWVudEF0KChjaGFyKTB4MzA1LCAoYnl0ZSkweGRmKTsKKwlDb21wYWN0Qnl0ZUFycmF5IGNiYTIgPSBuZXcgQ29tcGFjdEJ5dGVBcnJheSgoYnl0ZSkweGRmKTsKKwlpZiAoY2JhLmVxdWFscyhjYmEyKSkgeworCSAgICBlcnJsbigidW5lcXVhbCBieXRlIGFycmF5cyBjb21wYXJlIGVxdWFsIik7CisJfQorCUNvbXBhY3RCeXRlQXJyYXkgY2JhMyA9IChDb21wYWN0Qnl0ZUFycmF5KWNiYS5jbG9uZSgpOworCisJbG9nbG4oImVxdWFscyBudWxsOiAiICsgY2JhLmVxdWFscyhudWxsKSk7CisJbG9nbG4oImVxdWFscyBzZWxmOiAiICsgY2JhLmVxdWFscyhjYmEpKTsKKwlsb2dsbigiZXF1YWxzIGNsb25lOiAiICsgY2JhLmVxdWFscyhjYmEzKSk7CisJbG9nbG4oImVxdWFscyBib2d1czogIiArIGNiYS5lcXVhbHMobmV3IE9iamVjdCgpKSk7CisJbG9nbG4oImhhc2g6ICIgKyBjYmEuaGFzaENvZGUoKSk7CisKKwljYmEuY29tcGFjdCh0cnVlKTsKKwljYmEuY29tcGFjdCh0cnVlKTsKKworCWNoYXJbXSB4YSA9IGNiYS5nZXRJbmRleEFycmF5KCk7CisJYnl0ZVtdIHZhID0gY2JhLmdldFZhbHVlQXJyYXkoKTsKKwlDb21wYWN0Qnl0ZUFycmF5IGNiYTQgPSBuZXcgQ29tcGFjdEJ5dGVBcnJheSh4YSwgdmEpOworCisJU3RyaW5nIHhzID0gVXRpbGl0eS5hcnJheVRvUkxFU3RyaW5nKHhhKTsKKwlTdHJpbmcgdnMgPSBVdGlsaXR5LmFycmF5VG9STEVTdHJpbmcodmEpOworCUNvbXBhY3RCeXRlQXJyYXkgY2JhNSA9IG5ldyBDb21wYWN0Qnl0ZUFycmF5KHhzLCB2cyk7CisKKwlsb2dsbigiZXF1YWxzOiAiICsgY2JhNC5lcXVhbHMoY2JhNSkpOworCWxvZ2xuKCJlcXVhbHM6ICIgKyBjYmEuZXF1YWxzKGNiYTQpKTsKKworCWNiYTQuY29tcGFjdChmYWxzZSk7CisJbG9nbG4oImVxdWFsczogIiArIGNiYTQuZXF1YWxzKGNiYTUpKTsKKworCWNiYTUuY29tcGFjdCh0cnVlKTsKKwlsb2dsbigiZXF1YWxzOiAiICsgY2JhNC5lcXVhbHMoY2JhNSkpOworCisJY2JhLnNldEVsZW1lbnRBdCgoY2hhcikweDQwNSwgKGJ5dGUpMHhkZik7IC8vIGZvcmNlIGV4cGFuZAorCWxvZ2xuKCJtb2RpZmllZCBlcXVhbHMgY2xvbmU6ICIgKyBjYmEuZXF1YWxzKGNiYTMpKTsKKworCWNiYTMuc2V0RWxlbWVudEF0KChjaGFyKTB4NDA1LCAoYnl0ZSkweGRmKTsgLy8gZXF1aXZhbGVudCBtb2RpZmljYXRpb24KKwlsb2dsbigibW9kaWZpZWQgZXF1YWxzIG1vZGlmaWVkIGNsb25lOiAiICsgY2JhLmVxdWFscyhjYmEzKSk7CisKKwljYmEzLnNldEVsZW1lbnRBdCgoY2hhcikweDQwNSwgKGJ5dGUpMHhlZSk7IC8vIGRpZmZlcmVudCBtb2RpZmljYXRpb24KKwlsb2dsbigiZGlmZmVyZW50IG1vZCBlcXVhbHM6ICIgKyBjYmEuZXF1YWxzKGNiYTMpKTsKKworCWNiYS5jb21wYWN0KCk7CisJQ29tcGFjdEJ5dGVBcnJheSBjYmE2ID0gKENvbXBhY3RCeXRlQXJyYXkpY2JhLmNsb25lKCk7CisJbG9nbG4oImNsb25lZCBjb21wYWN0IGVxdWFsczogIiArIGNiYS5lcXVhbHMoY2JhNikpOworCisJY2JhNi5zZXRFbGVtZW50QXQoKGNoYXIpMHg0MDUsIChieXRlKTB4ZWUpOworCWxvZ2xuKCJtb2RpZmllZCBjbG9uZTogIiArIGNiYTMuZXF1YWxzKGNiYTYpKTsKKworCWNiYTYuc2V0RWxlbWVudEF0KChjaGFyKTB4MTAwLCAoY2hhcikweDEwNCwgKGJ5dGUpMHhmZSk7CisJZm9yIChpbnQgaSA9IDB4MTAwOyBpIDwgMHgxMDU7ICsraSkgeworCSAgICBjYmEzLnNldEVsZW1lbnRBdCgoY2hhcilpLCAoYnl0ZSkweGZlKTsKKwl9CisJbG9nbG4oImRvdWJsZSBtb2RpZmllZDogIiArIGNiYTMuZXF1YWxzKGNiYTYpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2hhckFycmF5Q292ZXJhZ2UoKSB7CisJLy8gdjEuOCBmYWlscyB3aXRoIGV4dGVuc2l2ZSBjb21wYWN0aW9uLCBzbyBzZXQgdG8gZmFsc2UKKwlmaW5hbCBib29sZWFuIEVYVEVOU0lWRSA9IGZhbHNlOworCisJQ29tcGFjdENoYXJBcnJheSBjY2EgPSBuZXcgQ29tcGFjdENoYXJBcnJheSgpOworCWNjYS5zZXRFbGVtZW50QXQoKGNoYXIpMHg1LCAoY2hhcikweGRmKTsKKwljY2Euc2V0RWxlbWVudEF0KChjaGFyKTB4MTA1LCAoY2hhcikweGRmKTsKKwljY2Euc2V0RWxlbWVudEF0KChjaGFyKTB4MjA1LCAoY2hhcikweGRmKTsKKwljY2Euc2V0RWxlbWVudEF0KChjaGFyKTB4MzA1LCAoY2hhcikweGRmKTsKKwlDb21wYWN0Q2hhckFycmF5IGNjYTIgPSBuZXcgQ29tcGFjdENoYXJBcnJheSgoY2hhcikweGRmKTsKKwlpZiAoY2NhLmVxdWFscyhjY2EyKSkgeworCSAgICBlcnJsbigidW5lcXVhbCBjaGFyIGFycmF5cyBjb21wYXJlIGVxdWFsIik7CisJfQorCUNvbXBhY3RDaGFyQXJyYXkgY2NhMyA9IChDb21wYWN0Q2hhckFycmF5KWNjYS5jbG9uZSgpOworCisJbG9nbG4oImVxdWFscyBudWxsOiAiICsgY2NhLmVxdWFscyhudWxsKSk7CisJbG9nbG4oImVxdWFscyBzZWxmOiAiICsgY2NhLmVxdWFscyhjY2EpKTsKKwlsb2dsbigiZXF1YWxzIGNsb25lOiAiICsgY2NhLmVxdWFscyhjY2EzKSk7CisJbG9nbG4oImVxdWFscyBib2d1czogIiArIGNjYS5lcXVhbHMobmV3IE9iamVjdCgpKSk7CisJbG9nbG4oImhhc2g6ICIgKyBjY2EuaGFzaENvZGUoKSk7CisKKwljY2EuY29tcGFjdChFWFRFTlNJVkUpOworCWNjYS5jb21wYWN0KEVYVEVOU0lWRSk7CisKKwljaGFyW10geGEgPSBjY2EuZ2V0SW5kZXhBcnJheSgpOworCWNoYXJbXSB2YSA9IGNjYS5nZXRWYWx1ZUFycmF5KCk7CisJQ29tcGFjdENoYXJBcnJheSBjY2E0ID0gbmV3IENvbXBhY3RDaGFyQXJyYXkoeGEsIHZhKTsKKworCVN0cmluZyB4cyA9IFV0aWxpdHkuYXJyYXlUb1JMRVN0cmluZyh4YSk7CisJU3RyaW5nIHZzID0gVXRpbGl0eS5hcnJheVRvUkxFU3RyaW5nKHZhKTsKKwlDb21wYWN0Q2hhckFycmF5IGNjYTUgPSBuZXcgQ29tcGFjdENoYXJBcnJheSh4cywgdnMpOworCisJbG9nbG4oImVxdWFsczogIiArIGNjYTQuZXF1YWxzKGNjYTUpKTsKKwlsb2dsbigiZXF1YWxzOiAiICsgY2NhLmVxdWFscyhjY2E0KSk7CisKKwljY2E0LmNvbXBhY3QoZmFsc2UpOworCWxvZ2xuKCJlcXVhbHM6ICIgKyBjY2E0LmVxdWFscyhjY2E1KSk7CisKKwljY2E1LmNvbXBhY3QoRVhURU5TSVZFKTsKKwlsb2dsbigiZXF1YWxzOiAiICsgY2NhNC5lcXVhbHMoY2NhNSkpOworCisJY2NhLnNldEVsZW1lbnRBdCgoY2hhcikweDQwNSwgKGNoYXIpMHhkZik7IC8vIGZvcmNlIGV4cGFuZAorCWxvZ2xuKCJtb2RpZmllZCBlcXVhbHMgY2xvbmU6ICIgKyBjY2EuZXF1YWxzKGNjYTMpKTsKKworCWNjYTMuc2V0RWxlbWVudEF0KChjaGFyKTB4NDA1LCAoY2hhcikweGRmKTsgLy8gZXF1aXZhbGVudCBtb2RpZmljYXRpb24KKwlsb2dsbigibW9kaWZpZWQgZXF1YWxzIG1vZGlmaWVkIGNsb25lOiAiICsgY2NhLmVxdWFscyhjY2EzKSk7CisKKwljY2EzLnNldEVsZW1lbnRBdCgoY2hhcikweDQwNSwgKGNoYXIpMHhlZSk7IC8vIGRpZmZlcmVudCBtb2RpZmljYXRpb24KKwlsb2dsbigiZGlmZmVyZW50IG1vZCBlcXVhbHM6ICIgKyBjY2EuZXF1YWxzKGNjYTMpKTsKKworCS8vIHYxLjggZmFpbHMgd2l0aCBleHRlbnNpdmUgY29tcGFjdGlvbiwgYW5kIGRlZmF1bHRzIGV4dGVuc2l2ZSwgc28gZG9uJ3QgY29tcGFjdAorCS8vIGNjYS5jb21wYWN0KCk7CisJQ29tcGFjdENoYXJBcnJheSBjY2E2ID0gKENvbXBhY3RDaGFyQXJyYXkpY2NhLmNsb25lKCk7CisJbG9nbG4oImNsb25lZCBjb21wYWN0IGVxdWFsczogIiArIGNjYS5lcXVhbHMoY2NhNikpOworCisJY2NhNi5zZXRFbGVtZW50QXQoKGNoYXIpMHg0MDUsIChjaGFyKTB4ZWUpOworCWxvZ2xuKCJtb2RpZmllZCBjbG9uZTogIiArIGNjYTMuZXF1YWxzKGNjYTYpKTsKKworCWNjYTYuc2V0RWxlbWVudEF0KChjaGFyKTB4MTAwLCAoY2hhcikweDEwNCwgKGNoYXIpMHhmZSk7CisJZm9yIChpbnQgaSA9IDB4MTAwOyBpIDwgMHgxMDU7ICsraSkgeworCSAgICBjY2EzLnNldEVsZW1lbnRBdCgoY2hhcilpLCAoY2hhcikweGZlKTsKKwl9CisJbG9nbG4oImRvdWJsZSBtb2RpZmllZDogIiArIGNjYTMuZXF1YWxzKGNjYTYpKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9JQ1VMaXN0UmVzb3VyY2VCdW5kbGVUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9JQ1VMaXN0UmVzb3VyY2VCdW5kbGVUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjIxZDYwZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0lDVUxpc3RSZXNvdXJjZUJ1bmRsZVRlc3QuamF2YQpAQCAtMCwwICsxLDcyIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvSUNVTGlzdFJlc291cmNlQnVuZGxlVGVzdC5qYXZhLHYgJAorICogJERhdGU6IDIwMDIvMDgvMTMgMjI6MTA6MjAgJAorICogJFJldmlzaW9uOiAxLjQgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlRGF0YTsKKworCitwdWJsaWMgZmluYWwgY2xhc3MgSUNVTGlzdFJlc291cmNlQnVuZGxlVGVzdCBleHRlbmRzIFRlc3RGbXdrIAoreworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pIHRocm93cyBFeGNlcHRpb24geworCQlJQ1VMaXN0UmVzb3VyY2VCdW5kbGVUZXN0IHRlc3QgPSBuZXcgSUNVTGlzdFJlc291cmNlQnVuZGxlVGVzdCgpOworCSAgICB0ZXN0LnJ1bihhcmdzKTsKKworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RSZWZlcmVuY2VzKCkgeworCQlSZXNvdXJjZUJ1bmRsZSByYiA9IElDVUxvY2FsZURhdGEuZ2V0TG9jYWxlRWxlbWVudHMoInRoIik7CisJCWxvZ2xuKCJnb3QgcmI6IiArIHJiKTsKKwkKKwkJYnl0ZVtdIGJpbmFyeURhdGEgPSBudWxsOy8vKGJ5dGVbXSlyYi5nZXRPYmplY3QoIiUlQ29sbGF0aW9uQmluIik7CisJCU9iamVjdCBjb2xFbGVtID0gcmIuZ2V0T2JqZWN0KCJDb2xsYXRpb25FbGVtZW50cyIpOworICAgICAgICBpZihjb2xFbGVtIGluc3RhbmNlb2YgT2JqZWN0W11bXSl7CisgICAgICAgICAgICBPYmplY3RbXVtdIGNvbEVsZW1BcnIgPSAoT2JqZWN0W11bXSljb2xFbGVtOworICAgICAgICAgICAgaWYoKChTdHJpbmcpY29sRWxlbUFyclswXVswXSkuZXF1YWxzKCIlJUNvbGxhdGlvbkJpbiIpKXsgICAKKwkgICAgICAgICAgIGJpbmFyeURhdGEgPSAoYnl0ZVtdKSBjb2xFbGVtQXJyWzBdWzFdOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGxvZ2xuKCJnb3QgYmluYXJ5RGF0YTogIiArIGJpbmFyeURhdGEgKyAiIGxlbmd0aDogIiArIChiaW5hcnlEYXRhID09IG51bGwgPyAwIDogYmluYXJ5RGF0YS5sZW5ndGgpKTsKKwkJT2JqZWN0W10gc3RyaW5nQXJyYXlEYXRhID0gKE9iamVjdFtdKXJiLmdldE9iamVjdCgiQ29sbGF0aW9uRWxlbWVudHMiKTsKKwkJLy9TdHJpbmdbXSBjb2xsYXRpb25EYXRhID0gbmV3IFN0cmluZ1tdIHsKKwkJIC8vICAgKFN0cmluZylzdHJpbmdBcnJheURhdGFbMF0sCisJCSAvLyAgIChTdHJpbmcpc3RyaW5nQXJyYXlEYXRhWzBdCisJCS8vfTsKKwkJbG9nbG4oImdvdCBzdHJpbmdEYXRhOiAiICsgc3RyaW5nQXJyYXlEYXRhICsgIiBsZW5ndGg6ICIgKyBzdHJpbmdBcnJheURhdGEubGVuZ3RoKTsKKwkJbG9nbG4oImdvdCBzdHJpbmdEYXRhRWxlbWVudDogIiArIHN0cmluZ0FycmF5RGF0YVswXSArICIgbGVuZ3RoOiAiICsgc3RyaW5nQXJyYXlEYXRhLmxlbmd0aCk7CisJCS8vU3lzdGVtLm91dC5wcmludGxuKCJnb3Qgc2RlZTogIiArIGNvbGxhdGlvbkRhdGFbMF0pOworCQkvLwlTeXN0ZW0ub3V0LnByaW50bG4oImNoYXIgZGF0YSBsZW5ndGg6ICIgKyBzdHJpbmdBcnJheURhdGEubGVuZ3RoKCkpOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0QWxpYXNlcygpeworICAgICAgICBSZXNvdXJjZUJ1bmRsZSByYiA9IElDVUxvY2FsZURhdGEuZ2V0UmVzb3VyY2VCdW5kbGUoImNvbS5pYm0uaWN1LmRldi5kYXRhIiwiVGVzdERhdGFFbGVtZW50cyIsInRlc3RhbGlhc2VzIik7CisgICAgICAgIE9iamVjdCBvID0gcmIuZ2V0T2JqZWN0KCJDb2xsYXRpb25FbGVtZW50cyIpOworICAgICAgICBPYmplY3QgbzEgPSByYi5nZXRPYmplY3QoInpvbmVUZXN0cyIpOworICAgICAgICAKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdENpcmN1bGFyQWxpYXNlcygpeworICAgICAgICB0cnl7CisJICAgICAgICBSZXNvdXJjZUJ1bmRsZSByYiA9IElDVUxvY2FsZURhdGEuZ2V0UmVzb3VyY2VCdW5kbGUoImNvbS5pYm0uaWN1LmRldi5kYXRhIiwiVGVzdERhdGFFbGVtZW50cyIsInRlc3RjaXJjdWxhcmFsaWFzIik7CisJICAgICAgICBPYmplY3QgbyA9IHJiLmdldE9iamVjdCgiYWFhIik7CisgICAgICAgIH1jYXRjaChqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgaWYoZS50b1N0cmluZygpLmluZGV4T2YoImlyY3VsYXIiKT09LTEpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgRXhjZXB0aW9uIGZvciBjaXJjdWxhciBhbGlhc2VzIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBFeGNlcHRpb24gZm9yIGNpcmN1bGFyIGFsaWFzZXMiKTsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0lDVVNlcnZpY2VUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9JQ1VTZXJ2aWNlVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4Njc5OWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9JQ1VTZXJ2aWNlVGVzdC5qYXZhCkBAIC0wLDAgKzEsODIwIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvSUNVU2VydmljZVRlc3QuamF2YSx2ICQKKyAqICREYXRlOiAyMDAyLzA4LzEzIDIyOjEwOjIwICQKKyAqICRSZXZpc2lvbjogMS40ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVU5vdGlmaWVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUldMb2NrOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVU2VydmljZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVNlcnZpY2UuRmFjdG9yeTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVNlcnZpY2UuS2V5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVU2VydmljZS5TZXJ2aWNlTGlzdGVuZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VTZXJ2aWNlLlNpbXBsZUZhY3Rvcnk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Mb2NhbGVVdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlRGF0YTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUxvY2FsZVNlcnZpY2U7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMb2NhbGVTZXJ2aWNlLkxvY2FsZUtleTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUxvY2FsZVNlcnZpY2UuTXVsdGlwbGVLZXlGYWN0b3J5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlU2VydmljZS5JQ1VSZXNvdXJjZUJ1bmRsZUZhY3Rvcnk7CisKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGphdmEudXRpbC5FdmVudExpc3RlbmVyOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLk1hcC5FbnRyeTsKK2ltcG9ydCBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZVNldDsKKworcHVibGljIGNsYXNzIElDVVNlcnZpY2VUZXN0IGV4dGVuZHMgVGVzdEZtd2sKK3sgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisJSUNVU2VydmljZVRlc3QgdGVzdCA9IG5ldyBJQ1VTZXJ2aWNlVGVzdCgpOworCXRlc3QucnVuKGFyZ3MpOworICAgIH0KKworICAgIHByaXZhdGUgU3RyaW5nIGxybXNnKFN0cmluZyBtZXNzYWdlLCBPYmplY3QgbGhzLCBPYmplY3QgcmhzKSB7CisJcmV0dXJuIG1lc3NhZ2UgKyAiIGxoczogIiArIGxocyArICIgcmhzOiAiICsgcmhzOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGNvbmZpcm1Cb29sZWFuKFN0cmluZyBtZXNzYWdlLCBib29sZWFuIHZhbCkgeworCWxvZ2xuKG1lc3NhZ2UsIHZhbCwgIXZhbCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgY29uZmlybUVxdWFsKFN0cmluZyBtZXNzYWdlLCBPYmplY3QgbGhzLCBPYmplY3QgcmhzKSB7CisJbG9nbG4obHJtc2cobWVzc2FnZSwgbGhzLCByaHMpLCBsaHMgPT0gbnVsbCA/IHJocyA9PSBudWxsIDogbGhzLmVxdWFscyhyaHMpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBjb25maXJtSWRlbnRpY2FsKFN0cmluZyBtZXNzYWdlLCBPYmplY3QgbGhzLCBPYmplY3QgcmhzKSB7CisJbG9nbG4obHJtc2cobWVzc2FnZSwgbGhzLCByaHMpLCBsaHMgPT0gcmhzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBjb25maXJtSWRlbnRpY2FsKFN0cmluZyBtZXNzYWdlLCBpbnQgbGhzLCBpbnQgcmhzKSB7CisJbG9nbG4obWVzc2FnZSArICIgbGhzOiAiICsgbGhzICsgIiByaHM6ICIgKyByaHMsIGxocyA9PSByaHMpOworICAgIH0KKworICAgIC8vIHVzZSBsb2NhbGUga2V5cworICAgIHN0YXRpYyBmaW5hbCBjbGFzcyBUZXN0U2VydmljZSBleHRlbmRzIElDVVNlcnZpY2UgeworCXByb3RlY3RlZCBLZXkgY3JlYXRlS2V5KFN0cmluZyBpZCkgeworCSAgICByZXR1cm4gTG9jYWxlS2V5LmNyZWF0ZVdpdGhDYW5vbmljYWxGYWxsYmFjayhpZCwgbnVsbCk7IC8vIG5vIGZhbGxiYWNrIGxvY2FsZQorCX0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0QVBJKCkgeworCS8vIGNyZWF0ZSBhIHNlcnZpY2UgdXNpbmcgbG9jYWxlIGtleXMsCisJSUNVU2VydmljZSBzZXJ2aWNlID0gbmV3IFRlc3RTZXJ2aWNlKCk7CisKKwkvLyByZWdpc3RlciBhbiBvYmplY3Qgd2l0aCBvbmUgbG9jYWxlLCAKKwkvLyBzZWFyY2ggZm9yIGFuIG9iamVjdCB3aXRoIGEgbW9yZSBzcGVjaWZpYyBsb2NhbGUKKwkvLyBzaG91bGQgcmV0dXJuIHRoZSBvcmlnaW5hbCBvYmplY3QKKwlJbnRlZ2VyIHNpbmdsZXRvbjAgPSBuZXcgSW50ZWdlcigwKTsKKwlzZXJ2aWNlLnJlZ2lzdGVyT2JqZWN0KHNpbmdsZXRvbjAsICJlbl9VUyIpOworIAlPYmplY3QgcmVzdWx0ID0gc2VydmljZS5nZXQoImVuX1VTX0ZPTyIpOworCWNvbmZpcm1JZGVudGljYWwoIjEpIGVuX1VTX0ZPTyAtPiBlbl9VUyIsIHJlc3VsdCwgc2luZ2xldG9uMCk7CisKKwkvLyByZWdpc3RlciBhIG5ldyBvYmplY3Qgd2l0aCB0aGUgbW9yZSBzcGVjaWZpYyBsb2NhbGUKKwkvLyBzZWFyY2ggZm9yIGFuIG9iamVjdCB3aXRoIHRoYXQgbG9jYWxlCisJLy8gc2hvdWxkIHJldHVybiB0aGUgbmV3IG9iamVjdAorCUludGVnZXIgc2luZ2xldG9uMSA9IG5ldyBJbnRlZ2VyKDEpOworCXNlcnZpY2UucmVnaXN0ZXJPYmplY3Qoc2luZ2xldG9uMSwgImVuX1VTX0ZPTyIpOworCXJlc3VsdCA9IHNlcnZpY2UuZ2V0KCJlbl9VU19GT08iKTsKKwljb25maXJtSWRlbnRpY2FsKCIyKSBlbl9VU19GT08gLT4gZW5fVVNfRk9PIiwgcmVzdWx0LCBzaW5nbGV0b24xKTsKKworCS8vIHNlYXJjaCBmb3IgYW4gb2JqZWN0IHRoYXQgZmFsbHMgYmFjayB0byB0aGUgZmlyc3QgcmVnaXN0ZXJlZCBsb2NhbGUKKwlyZXN1bHQgPSBzZXJ2aWNlLmdldCgiZW5fVVNfQkFSIik7CisJY29uZmlybUlkZW50aWNhbCgiMykgZW5fVVNfQkFSIC0+IGVuX1VTIiwgcmVzdWx0LCBzaW5nbGV0b24wKTsKKworCS8vIGdldCBhIGxpc3Qgb2YgdGhlIGZhY3Rvcmllcywgc2hvdWxkIGJlIHR3bworCUxpc3QgZmFjdG9yaWVzID0gc2VydmljZS5mYWN0b3JpZXMoKTsKKwljb25maXJtSWRlbnRpY2FsKCI0KSBmYWN0b3J5IHNpemUiLCBmYWN0b3JpZXMuc2l6ZSgpLCAyKTsKKworCS8vIHJlZ2lzdGVyIGEgbmV3IG9iamVjdCB3aXRoIHlldCBhbm90aGVyIGxvY2FsZQorCS8vIG9yaWdpbmFsIGZhY3RvcnkgbGlzdCBpcyB1bmNoYW5nZWQKKwlJbnRlZ2VyIHNpbmdsZXRvbjIgPSBuZXcgSW50ZWdlcigyKTsKKwlzZXJ2aWNlLnJlZ2lzdGVyT2JqZWN0KHNpbmdsZXRvbjIsICJlbiIpOworCWNvbmZpcm1JZGVudGljYWwoIjUpIGZhY3Rvcnkgc2l6ZSIsIGZhY3Rvcmllcy5zaXplKCksIDIpOworCisJLy8gc2VhcmNoIGZvciBhbiBvYmplY3Qgd2l0aCB0aGUgbmV3IGxvY2FsZQorCS8vIHN0YWNrIG9mIGZhY3RvcmllcyBpcyBub3cgZW4sIGVuX1VTX0ZPTywgZW5fVVMKKwkvLyBzZWFyY2ggZm9yIGVuX1VTIHNob3VsZCBzdGlsbCBmaW5kIGVuX1VTIG9iamVjdAorCXJlc3VsdCA9IHNlcnZpY2UuZ2V0KCJlbl9VU19CQVIiKTsKKwljb25maXJtSWRlbnRpY2FsKCI2KSBlbl9VU19CQVIgLT4gZW5fVVMiLCByZXN1bHQsIHNpbmdsZXRvbjApOworCisJLy8gcmVnaXN0ZXIgYSBuZXcgb2JqZWN0IHdpdGggYW4gb2xkIGlkLCBzaG91bGQgaGlkZSBlYXJsaWVyIGZhY3RvcnkgdXNpbmcgdGhpcyBpZCwgYnV0IGxlYXZlIGl0IHRoZXJlCisJSW50ZWdlciBzaW5nbGV0b24zID0gbmV3IEludGVnZXIoMyk7CisJc2VydmljZS5yZWdpc3Rlck9iamVjdChzaW5nbGV0b24zLCAiZW5fVVMiKTsKKwlmYWN0b3JpZXMgPSBzZXJ2aWNlLmZhY3RvcmllcygpOworCWNvbmZpcm1JZGVudGljYWwoIjkpIGZhY3Rvcnkgc2l6ZSIsIGZhY3Rvcmllcy5zaXplKCksIDQpOworCisJLy8gc2hvdWxkIGdldCBkYXRhIGZyb20gdGhhdCBuZXcgZmFjdG9yeQorCXJlc3VsdCA9IHNlcnZpY2UuZ2V0KCJlbl9VU19CQVIiKTsKKwljb25maXJtSWRlbnRpY2FsKCIxMCkgZW5fVVNfQkFSIC0+ICgzKSIsIHJlc3VsdCwgc2luZ2xldG9uMyk7CisKKwkvLyByZW1vdmUgbmV3IGZhY3RvcnkKKwkvLyBzaG91bGQgaGF2ZSBmZXdlciBmYWN0b3JpZXMgYWdhaW4KKwlzZXJ2aWNlLnVucmVnaXN0ZXJGYWN0b3J5KChGYWN0b3J5KWZhY3Rvcmllcy5nZXQoMCkpOworCWZhY3RvcmllcyA9IHNlcnZpY2UuZmFjdG9yaWVzKCk7CisJY29uZmlybUlkZW50aWNhbCgiMTEpIGZhY3Rvcnkgc2l6ZSIsIGZhY3Rvcmllcy5zaXplKCksIDMpOworCisJLy8gc2hvdWxkIGdldCBvcmlnaW5hbCBkYXRhIGFnYWluIGFmdGVyIHJlbW92ZSBmYWN0b3J5CisJcmVzdWx0ID0gc2VydmljZS5nZXQoImVuX1VTX0JBUiIpOworCWNvbmZpcm1JZGVudGljYWwoIjEyKSBlbl9VU19CQVIgLT4gMCIsIHJlc3VsdCwgc2luZ2xldG9uMCk7CisKKwkvLyBzaG91bGRuJ3QgZmluZCB1bnJlZ2lzdGVyZWQgaWRzCisJcmVzdWx0ID0gc2VydmljZS5nZXQoImZvbyIpOworCWNvbmZpcm1JZGVudGljYWwoIjEzKSBmb28gLT4gbnVsbCIsIHJlc3VsdCwgbnVsbCk7CisKKwkvLyBzaG91bGQgZmluZCBub24tY2Fub25pY2FsIHN0cmluZ3MKKwlTdHJpbmdbXSByZXN1bHRJRCA9IG5ldyBTdHJpbmdbMV07CisJcmVzdWx0ID0gc2VydmljZS5nZXQoIkVOX3VzX2ZPbyIsIHJlc3VsdElEKTsKKwljb25maXJtRXF1YWwoIjE0KSBmaW5kIG5vbi1jYW5vbmljYWwiLCByZXN1bHRJRFswXSwgImVuX1VTX0ZPTyIpOworCisJLy8gc2hvdWxkIGJlIGFibGUgdG8gcmVnaXN0ZXIgbm9uLWNhbm9uaWNhbCBzdHJpbmdzIGFuZCBnZXQgdGhlbSBjYW5vbmljYWxpemVkCisJc2VydmljZS5yZWdpc3Rlck9iamVjdChzaW5nbGV0b24zLCAiZU5fY2FfZFVkZSIpOworCXJlc3VsdCA9IHNlcnZpY2UuZ2V0KCJFbl9DYV9EdURlIiwgcmVzdWx0SUQpOworCWNvbmZpcm1FcXVhbCgiMTUpIHJlZ2lzdGVyIG5vbi1jYW5vbmljYWwiLCByZXN1bHRJRFswXSwgImVuX0NBX0RVREUiKTsKKworCS8vIHNob3VsZCBiZSBhYmxlIHRvIHJlZ2lzdGVyIGludmlzaWJsZSBmYWN0b3JpZXMsIHRoZXNlIHdpbGwgbm90CisJLy8gYmUgdmlzaWJsZSBieSBkZWZhdWx0LCBidXQgaWYgeW91IGtub3cgdGhlIHNlY3JldCBwYXNzd29yZCB5b3UKKwkvLyBjYW4gc3RpbGwgYWNjZXNzIHRoZXNlIHNlcnZpY2VzLi4uCisJSW50ZWdlciBzaW5nbGV0b240ID0gbmV3IEludGVnZXIoNCk7CisJc2VydmljZS5yZWdpc3Rlck9iamVjdChzaW5nbGV0b240LCAiZW5fVVNfQkFSIiwgZmFsc2UpOworCXJlc3VsdCA9IHNlcnZpY2UuZ2V0KCJlbl9VU19CQVIiKTsKKwljb25maXJtSWRlbnRpY2FsKCIxNykgZ2V0IGludmlzaWJsZSIsIHJlc3VsdCwgc2luZ2xldG9uNCk7CisJCisJLy8gc2hvdWxkIG5vdCBiZSBhYmxlIHRvIGxvY2F0ZSBpbnZpc2libGUgc2VydmljZXMKKwlTZXQgaWRzID0gc2VydmljZS5nZXRWaXNpYmxlSURzKCk7CisJY29uZmlybUJvb2xlYW4oIjE4KSBmaW5kIGludmlzaWJsZSIsICFpZHMuY29udGFpbnMoImVuX1VTX0JBUiIpKTsKKworCXNlcnZpY2UucmVzZXQoKTsKKwkvLyBhbiBhbm9ueW1vdXMgZmFjdG9yeSB0aGFuIGhhbmRsZXMgYWxsIGlkcworCXsKKwkgICAgRmFjdG9yeSBmYWN0b3J5ID0gbmV3IEZhY3RvcnkoKSB7CisJCSAgICBwdWJsaWMgT2JqZWN0IGNyZWF0ZShLZXkga2V5KSB7CisJCQlyZXR1cm4gTG9jYWxlVXRpbGl0eS5nZXRMb2NhbGVGcm9tTmFtZShrZXkuY3VycmVudElEKCkpOworCQkgICAgfQorCisJCSAgICBwdWJsaWMgdm9pZCB1cGRhdGVWaXNpYmxlSURzKE1hcCByZXN1bHQpIHsKKwkJICAgIH0KKworCQkgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShTdHJpbmcgaWQsIExvY2FsZSBsKSB7CisJCQlyZXR1cm4gbnVsbDsKKwkJICAgIH0KKwkJfTsKKwkgICAgc2VydmljZS5yZWdpc3RlckZhY3RvcnkoZmFjdG9yeSk7CisKKwkgICAgLy8gYW5vbnltb3VzIGZhY3Rvcnkgd2lsbCBzdGlsbCBoYW5kbGUgdGhlIGlkCisJICAgIHJlc3VsdCA9IHNlcnZpY2UuZ2V0KExvY2FsZS5VUy50b1N0cmluZygpKTsKKwkgICAgY29uZmlybUVxdWFsKCIyMSkgbG9jYWxlIiwgcmVzdWx0LCBMb2NhbGUuVVMpOworCisJICAgIC8vIHN0aWxsIG5vcm1hbGl6ZXMgaWQKKwkgICAgcmVzdWx0ID0gc2VydmljZS5nZXQoIkVOX1VTX0JBUiIpOworCSAgICBjb25maXJtRXF1YWwoIjIyKSBsb2NhbGUiLCByZXN1bHQsIExvY2FsZVV0aWxpdHkuZ2V0TG9jYWxlRnJvbU5hbWUoImVuX1VTX0JBUiIpKTsKKwkgICAgCisJICAgIC8vIHdlIGNhbiBvdmVycmlkZSBmb3IgcGFydGljdWxhciBpZHMKKwkgICAgc2VydmljZS5yZWdpc3Rlck9iamVjdChzaW5nbGV0b24zLCAiZW5fVVNfQkFSIik7CisJICAgIHJlc3VsdCA9IHNlcnZpY2UuZ2V0KCJlbl9VU19CQVIiKTsKKwkgICAgY29uZmlybUlkZW50aWNhbCgiMjMpIG92ZXJyaWRlIHN1cGVyIiwgcmVzdWx0LCBzaW5nbGV0b24zKTsKKwl9CisKKwkvLyBlbXB0eSBzZXJ2aWNlIHNob3VsZCBub3QgcmVjb2duaXplIGFueXRoaW5nIAorCXNlcnZpY2UucmVzZXQoKTsKKwlyZXN1bHQgPSBzZXJ2aWNlLmdldCgiZW5fVVMiKTsKKwljb25maXJtSWRlbnRpY2FsKCIyNCkgZW1wdHkiLCByZXN1bHQsIG51bGwpOworCisJLy8gY3JlYXRlIGEgY3VzdG9tIG11bHRpcGxlIGtleSBmYWN0b3J5CisJeworCSAgICBTdHJpbmdbXSB4aWRzID0geyAiZW5fVVNfVkFMTEVZX0dJUkwiLCAKKwkJCSAgICAgICJlbl9VU19WQUxMRVlfQk9ZIiwKKwkJCSAgICAgICJlbl9VU19TVVJGRVJfR0FMIiwKKwkJCSAgICAgICJlbl9VU19TVVJGRVJfRFVERSIKKwkgICAgfTsKKwkgICAgc2VydmljZS5yZWdpc3RlckZhY3RvcnkobmV3IFRlc3RNdWx0aXBsZUZhY3RvcnkoeGlkcykpOworCX0KKworCS8vIGl0ZXJhdGUgb3ZlciB0aGUgdmlzdWFsIGlkcyByZXR1cm5lZCBieSB0aGUgbXVsdGlwbGUgZmFjdG9yeQorCXsKKwkgICAgU2V0IHZpZHMgPSBzZXJ2aWNlLmdldFZpc2libGVJRHMoKTsKKwkgICAgSXRlcmF0b3IgaXRlciA9IHZpZHMuaXRlcmF0b3IoKTsKKwkgICAgaW50IGNvdW50ID0gMDsKKwkgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisJICAgICAgICArK2NvdW50OworCQlsb2dsbigiICAiICsgaXRlci5uZXh0KCkpOworCSAgICB9CisJICAgIC8vIGZvdXIgdmlzaWJsZSBpZHMKKwkgICAgY29uZmlybUlkZW50aWNhbCgiMjUpIHZpc2libGUgaWRzIiwgY291bnQsIDQpOworCX0KKworCS8vIGl0ZXJhdGUgb3ZlciB0aGUgZGlzcGxheSBuYW1lcworCXsKKwkgICAgTWFwIGRpZHMgPSBzZXJ2aWNlLmdldERpc3BsYXlOYW1lcyhMb2NhbGUuR0VSTUFOWSk7CisJICAgIEl0ZXJhdG9yIGl0ZXIgPSBkaWRzLmVudHJ5U2V0KCkuaXRlcmF0b3IoKTsKKwkgICAgaW50IGNvdW50ID0gMDsKKwkgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisJICAgICAgICArK2NvdW50OworCSAgICAgICAgRW50cnkgZSA9IChFbnRyeSlpdGVyLm5leHQoKTsKKwkgICAgICAgIGxvZ2xuKCIgICIgKyBlLmdldEtleSgpICsgIiAtLSA+ICIgKyBlLmdldFZhbHVlKCkpOworCSAgICB9CisJICAgIC8vIGZvdXIgZGlzcGxheSBuYW1lcywgaW4gZ2VybWFuCisJICAgIGNvbmZpcm1JZGVudGljYWwoIjI2KSBkaXNwbGF5IG5hbWVzIiwgY291bnQsIDQpOworCX0KKworCS8vIG5vIHZhbGlkIGRpc3BsYXkgbmFtZQorCWNvbmZpcm1JZGVudGljYWwoIjI3KSBnZXQgZGlzcGxheSBuYW1lIiwgc2VydmljZS5nZXREaXNwbGF5TmFtZSgiZW5fVVNfVkFMTEVZX0dFRUsiKSwgbnVsbCk7CisKKwl7CisJICAgIFN0cmluZyBuYW1lID0gc2VydmljZS5nZXREaXNwbGF5TmFtZSgiZW5fVVNfU1VSRkVSX0RVREUiLCBMb2NhbGUuVVMpOworCSAgICBjb25maXJtRXF1YWwoIjI4KSBnZXQgZGlzcGxheSBuYW1lIiwgbmFtZSwgIkVuZ2xpc2ggKFVuaXRlZCBTdGF0ZXMsU1VSRkVSLERVREUpIik7CisJfQorCisJLy8gcmVnaXN0ZXIgYW5vdGhlciBtdWx0aXBsZSBmYWN0b3J5CisJeworCSAgICBTdHJpbmdbXSB4aWRzID0geworCQkiZW5fVVNfU1VSRkVSX0dBTCIsICJlbl9VU19TSUxJQ09OIiwgImVuX1VTX1NJTElDT05fR0VFSyIsICJlbl9VUyIKKwkgICAgfTsKKwkgICAgc2VydmljZS5yZWdpc3RlckZhY3RvcnkobmV3IFRlc3RNdWx0aXBsZUZhY3RvcnkoeGlkcywgIlJhZCBkdWRlIikpOworCX0KKworCS8vIHRoaXMgdGltZSwgd2UgaGF2ZSBzZXZlbiBkaXNwbGF5IG5hbWVzICh3ZSByZXBsYWNlZCBzdXJmZXIgZ2FsKQorCXsKKwkgICAgTWFwIGRpZHMgPSBzZXJ2aWNlLmdldERpc3BsYXlOYW1lcyhMb2NhbGVVdGlsaXR5LmdldExvY2FsZUZyb21OYW1lKCJlcyIpKTsKKwkgICAgSXRlcmF0b3IgaXRlciA9IGRpZHMuZW50cnlTZXQoKS5pdGVyYXRvcigpOworCSAgICBpbnQgY291bnQgPSAwOworCSAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKwkgICAgICAgICsrY291bnQ7CisJICAgICAgICBFbnRyeSBlID0gKEVudHJ5KWl0ZXIubmV4dCgpOworCSAgICAgICAgbG9nbG4oIiAgIiArIGUuZ2V0S2V5KCkgKyAiIC0tID4gIiArIGUuZ2V0VmFsdWUoKSk7CisJICAgIH0KKwkgICAgLy8gc2V2ZW4gZGlzcGxheSBuYW1lcywgaW4gc3BhbmlzaAorCSAgICBjb25maXJtSWRlbnRpY2FsKCIyOSkgZGlzcGxheSBuYW1lcyIsIGNvdW50LCA3KTsKKwl9CisKKwkvLyB3ZSBzaG91bGQgZ2V0IHRoZSBkaXNwbGF5IG5hbWUgY29ycmVzcG9uZGluZyB0byB0aGUgYWN0dWFsIGlkCisJLy8gcmV0dXJuZWQgYnkgdGhlIGlkIHdlIHVzZWQuCisJeworCSAgICBTdHJpbmdbXSBhY3R1YWxJRCA9IG5ldyBTdHJpbmdbMV07CisJICAgIFN0cmluZyBpZCA9ICJlbl91c19zaWxpY29uX2R1ZGUiOworCSAgICBTdHJpbmcgZHVkZSA9IChTdHJpbmcpc2VydmljZS5nZXQoaWQsIGFjdHVhbElEKTsKKwkgICAgaWYgKGR1ZGUgIT0gbnVsbCkgeworCQlTdHJpbmcgZGlzcGxheU5hbWUgPSBzZXJ2aWNlLmdldERpc3BsYXlOYW1lKGFjdHVhbElEWzBdLCBMb2NhbGUuVVMpOworCQlsb2dsbigiZm91bmQgYWN0dWFsOiAiICsgZHVkZSArICIgd2l0aCBkaXNwbGF5IG5hbWU6ICIgKyBkaXNwbGF5TmFtZSk7CisJCWNvbmZpcm1Cb29sZWFuKCIzMCkgZm91bmQgZGlzcGxheSBuYW1lIGZvciBhY3R1YWwiLCBkaXNwbGF5TmFtZSAhPSBudWxsKTsKKworCQlkaXNwbGF5TmFtZSA9IHNlcnZpY2UuZ2V0RGlzcGxheU5hbWUoaWQsIExvY2FsZS5VUyk7CisJCWxvZ2xuKCJmb3VuZCBxdWVyeTogIiArIGR1ZGUgKyAiIHdpdGggZGlzcGxheSBuYW1lOiAiICsgZGlzcGxheU5hbWUpOworCQljb25maXJtQm9vbGVhbigiMzEpIGZvdW5kIGRpc3BsYXkgbmFtZSBmb3IgcXVlcnkiLCBkaXNwbGF5TmFtZSA9PSBudWxsKTsKKwkgICAgfSBlbHNlIHsKKwkJZXJybG4oIjMwKSBzZXJ2aWNlIGNvdWxkIG5vdCBmaW5kIGVudHJ5IGZvciAiICsgaWQpOworCSAgICB9CisKKwkgICAgaWQgPSAiZW5fVVNfQk9aTyI7CisJICAgIFN0cmluZyBib3pvID0gKFN0cmluZylzZXJ2aWNlLmdldChpZCwgYWN0dWFsSUQpOworCSAgICBpZiAoYm96byAhPSBudWxsKSB7CisJCVN0cmluZyBkaXNwbGF5TmFtZSA9IHNlcnZpY2UuZ2V0RGlzcGxheU5hbWUoYWN0dWFsSURbMF0sIExvY2FsZS5VUyk7CisJCWxvZ2xuKCJmb3VuZCBhY3R1YWw6ICIgKyBib3pvICsgIiB3aXRoIGRpc3BsYXkgbmFtZTogIiArIGRpc3BsYXlOYW1lKTsKKwkJY29uZmlybUJvb2xlYW4oIjMyKSBmb3VuZCBkaXNwbGF5IG5hbWUgZm9yIGFjdHVhbCIsIGRpc3BsYXlOYW1lICE9IG51bGwpOworCisJCWRpc3BsYXlOYW1lID0gc2VydmljZS5nZXREaXNwbGF5TmFtZShpZCwgTG9jYWxlLlVTKTsKKwkJbG9nbG4oImZvdW5kIGFjdHVhbDogIiArIGJvem8gKyAiIHdpdGggZGlzcGxheSBuYW1lOiAiICsgZGlzcGxheU5hbWUpOworCQljb25maXJtQm9vbGVhbigiMzMpIGZvdW5kIGRpc3BsYXkgbmFtZSBmb3IgcXVlcnkiLCBkaXNwbGF5TmFtZSA9PSBudWxsKTsKKwkgICAgfSBlbHNlIHsKKwkJZXJybG4oIjMyKSBzZXJ2aWNlIGNvdWxkIG5vdCBmaW5kIGVudHJ5IGZvciAiICsgaWQpOworCSAgICB9CisJfQorCisJLy8gaGlkaW5nIGZhY3Rvcnkgc2hvdWxkIG9ic2N1cmUgJ3N1YmxvY2FsZXMnCisJeworCSAgICBTdHJpbmdbXSB4aWRzID0geworCQkiZW5fVVNfVkFMTEVZIiwgImVuX1VTX1NJTElDT04iCisJICAgIH07CisJICAgIHNlcnZpY2UucmVnaXN0ZXJGYWN0b3J5KG5ldyBUZXN0SGlkaW5nRmFjdG9yeSh4aWRzKSk7CisJfQorCisJeworCSAgICBNYXAgZGlkcyA9IHNlcnZpY2UuZ2V0RGlzcGxheU5hbWVzKCk7CisJICAgIEl0ZXJhdG9yIGl0ZXIgPSBkaWRzLmVudHJ5U2V0KCkuaXRlcmF0b3IoKTsKKwkgICAgaW50IGNvdW50ID0gMDsKKwkgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisJICAgICAgICArK2NvdW50OworCSAgICAgICAgRW50cnkgZSA9IChFbnRyeSlpdGVyLm5leHQoKTsKKwkgICAgICAgIGxvZ2xuKCIgICIgKyBlLmdldEtleSgpICsgIiAtLSA+ICIgKyBlLmdldFZhbHVlKCkpOworCSAgICB9CisJICAgIGNvbmZpcm1JZGVudGljYWwoIjMxIGhpZGluZyBmYWN0b3J5IiwgY291bnQsIDUpOworCX0KKworCXsKKwkgICAgU2V0IHhpZHMgPSBzZXJ2aWNlLmdldFZpc2libGVJRHMoKTsKKwkgICAgSXRlcmF0b3IgaXRlciA9IHhpZHMuaXRlcmF0b3IoKTsKKwkgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisJCVN0cmluZyB4aWQgPSAoU3RyaW5nKWl0ZXIubmV4dCgpOworCQlsb2dsbih4aWQgKyAiPyAgIiArIHNlcnZpY2UuZ2V0KHhpZCkpOworCSAgICB9CisKKwkgICAgbG9nbG4oInZhbGxleWdpcmw/ICAiICsgc2VydmljZS5nZXQoImVuX1VTX1ZBTExFWV9HSVJMIikpOworCSAgICBsb2dsbigidmFsbGV5Ym95PyAgICIgKyBzZXJ2aWNlLmdldCgiZW5fVVNfVkFMTEVZX0JPWSIpKTsKKwkgICAgbG9nbG4oInZhbGxleWR1ZGU/ICAiICsgc2VydmljZS5nZXQoImVuX1VTX1ZBTExFWV9EVURFIikpOworCSAgICBsb2dsbigic3VyZmVyZ2lybD8gICIgKyBzZXJ2aWNlLmdldCgiZW5fVVNfU1VSRkVSX0dJUkwiKSk7CisJfQorCisJLy8gcmVzb3VyY2UgYnVuZGxlIGZhY3RvcnkuCisJc2VydmljZS5yZXNldCgpOworCXNlcnZpY2UucmVnaXN0ZXJGYWN0b3J5KG5ldyBJQ1VSZXNvdXJjZUJ1bmRsZUZhY3RvcnkoIkNvdW50cmllcztMYW5ndWFnZXMiLCB0cnVlKSk7CisKKwkvLyBsaXN0IGFsbCBvZiB0aGUgcmVzb3VyY2VzIHRoYXQgcmVhbGx5IGRlZmluZSBDb3VudHJpZXM7TGFuZ3VhZ2VzCisJLy8gdGhpcyB0YWtlcyBhIGxvbmcgdGltZSB0byBidWlsZCB0aGUgdmlzaWJsZSBpZCBsaXN0CisJeworCSAgICBTZXQgeGlkcyA9IHNlcnZpY2UuZ2V0VmlzaWJsZUlEcygpOworCSAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigieyIpOworCSAgICBib29sZWFuIG5vdGZpcnN0ID0gZmFsc2U7CisJICAgIEl0ZXJhdG9yIGl0ZXIgPSB4aWRzLml0ZXJhdG9yKCk7CisJICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworCQlTdHJpbmcgeGlkID0gKFN0cmluZylpdGVyLm5leHQoKTsKKwkJaWYgKG5vdGZpcnN0KSB7CisJCSAgICBidWYuYXBwZW5kKCIsICIpOworCQl9IGVsc2UgeworCQkgICAgbm90Zmlyc3QgPSB0cnVlOworCQl9CisJCWJ1Zi5hcHBlbmQoeGlkKTsKKwkgICAgfQorCSAgICBidWYuYXBwZW5kKCJ9Iik7CisJICAgIGxvZ2xuKGJ1Zi50b1N0cmluZygpKTsKKwl9CisKKwkvLyBnZXQgYWxsIHRoZSBkaXNwbGF5IG5hbWVzIG9mIHRoZXNlIHJlc291cmNlcworCS8vIHRoaXMgc2hvdWxkIGJlIGZhc3Qgc2luY2UgdGhlIGRpc3BsYXkgbmFtZXMgd2VyZSBjYWNoZWQuCisJeworCSAgICBNYXAgbmFtZXMgPSBzZXJ2aWNlLmdldERpc3BsYXlOYW1lcyhMb2NhbGVVdGlsaXR5LmdldExvY2FsZUZyb21OYW1lKCJkZV9ERSIpKTsKKwkgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoInsiKTsKKwkgICAgSXRlcmF0b3IgaXRlciA9IG5hbWVzLmVudHJ5U2V0KCkuaXRlcmF0b3IoKTsKKwkgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisJCUVudHJ5IGUgPSAoRW50cnkpaXRlci5uZXh0KCk7CisJCVN0cmluZyBuYW1lID0gKFN0cmluZyllLmdldEtleSgpOworCQlTdHJpbmcgaWQgPSAoU3RyaW5nKWUuZ2V0VmFsdWUoKTsKKwkJYnVmLmFwcGVuZCgiXG4gICAiICsgbmFtZSArICIgLS0+ICIgKyBpZCk7CisJICAgIH0KKwkgICAgYnVmLmFwcGVuZCgiXG59Iik7CisJICAgIGxvZ2xuKGJ1Zi50b1N0cmluZygpKTsKKwl9CisKKwlzZXJ2aWNlLnJlZ2lzdGVyRmFjdG9yeShuZXcgQ2FsaWZvcm5pb0xhbmd1YWdlRmFjdG9yeSgpKTsKKwkvLyBnZXQgYWxsIHRoZSBkaXNwbGF5IG5hbWVzIG9mIHRoZXNlIHJlc291cmNlcworCXsKKwkgICAgTWFwIG5hbWVzID0gc2VydmljZS5nZXREaXNwbGF5TmFtZXMoTG9jYWxlVXRpbGl0eS5nZXRMb2NhbGVGcm9tTmFtZSgiZW5fVVNfQ0FfU1VSRkVSIikpOworCSAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigieyIpOworCSAgICBJdGVyYXRvciBpdGVyID0gbmFtZXMuZW50cnlTZXQoKS5pdGVyYXRvcigpOworCSAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKwkJRW50cnkgZSA9IChFbnRyeSlpdGVyLm5leHQoKTsKKwkJU3RyaW5nIG5hbWUgPSAoU3RyaW5nKWUuZ2V0S2V5KCk7CisJCVN0cmluZyBpZCA9IChTdHJpbmcpZS5nZXRWYWx1ZSgpOworCQlidWYuYXBwZW5kKCJcbiAgICIgKyBuYW1lICsgIiAtLT4gIiArIGlkKTsKKwkgICAgfQorCSAgICBidWYuYXBwZW5kKCJcbn0iKTsKKwkgICAgbG9nbG4oYnVmLnRvU3RyaW5nKCkpOworCX0KKworCS8vIHRlc3Qgbm90aWZpY2F0aW9uCisJLy8gc2ltcGxlIHJlZ2lzdHJhdGlvbgorCXsKKwkgICAgSUNVTG9jYWxlU2VydmljZSBscyA9IG5ldyBJQ1VMb2NhbGVTZXJ2aWNlKCk7CisJICAgIFNlcnZpY2VMaXN0ZW5lciBsMSA9IG5ldyBTZXJ2aWNlTGlzdGVuZXIoKSB7CisJCSAgICBwcml2YXRlIGludCBuOworCQkgICAgcHVibGljIHZvaWQgc2VydmljZUNoYW5nZWQoSUNVU2VydmljZSBzKSB7CisJCQlsb2dsbigibGlzdGVuZXIgMSByZXBvcnQgIiArIG4rKyArICIgc2VydmljZSBjaGFuZ2VkOiAiICsgcyk7CisJCSAgICB9CisJCX07IAorCSAgICBscy5hZGRMaXN0ZW5lcihsMSk7CisJICAgIFNlcnZpY2VMaXN0ZW5lciBsMiA9IG5ldyBTZXJ2aWNlTGlzdGVuZXIoKSB7CisJCSAgICBwcml2YXRlIGludCBuOworCQkgICAgcHVibGljIHZvaWQgc2VydmljZUNoYW5nZWQoSUNVU2VydmljZSBzKSB7CisJCQlsb2dsbigibGlzdGVuZXIgMiByZXBvcnQgIiArIG4rKyArICIgc2VydmljZSBjaGFuZ2VkOiAiICsgcyk7CisJCSAgICB9CisJCX07CisJICAgIGxzLmFkZExpc3RlbmVyKGwyKTsKKwkgICAgbG9nbG4oInJlZ2lzdGVyaW5nIGZvby4uLiAiKTsKKwkgICAgbHMucmVnaXN0ZXJPYmplY3QoIkZvbyIsICJlbl9GT08iKTsKKwkgICAgbG9nbG4oInJlZ2lzdGVyaW5nIGJhci4uLiAiKTsKKwkgICAgbHMucmVnaXN0ZXJPYmplY3QoIkJhciIsICJlbl9CQVIiKTsKKwkgICAgbG9nbG4oImdldHRpbmcgZm9vLi4uIik7CisJICAgIGxvZ2xuKChTdHJpbmcpbHMuZ2V0KCJlbl9GT08iKSk7CisJICAgIGxvZ2xuKCJyZW1vdmluZyBsaXN0ZW5lciAyLi4uIik7CisJICAgIGxzLnJlbW92ZUxpc3RlbmVyKGwyKTsKKwkgICAgbG9nbG4oInJlZ2lzdGVyaW5nIGJhei4uLiIpOworCSAgICBscy5yZWdpc3Rlck9iamVjdCgiQmF6IiwgImVuX0JBWiIpOworCSAgICBsb2dsbigicmVtb3ZpbmcgbGlzdGVuZXIgMSIpOworCSAgICBscy5yZW1vdmVMaXN0ZW5lcihsMSk7CisJICAgIGxvZ2xuKCJyZWdpc3RlcmluZyBidXJwLi4uIik7CisJICAgIGxzLnJlZ2lzdGVyT2JqZWN0KCJCdXJwIiwgImVuX0JVUlAiKTsKKworCSAgICAvLyBzaG91bGQgb25seSBnZXQgb25lIG5vdGlmaWNhdGlvbiBldmVuIGlmIHJlZ2lzdGVyIG11bHRpcGxlIHRpbWVzCisJICAgIGxvZ2xuKCIuLi4gdHJ5aW5nIG11bHRpcGxlIHJlZ2lzdHJhdGlvbiIpOworCSAgICBscy5hZGRMaXN0ZW5lcihsMSk7CisJICAgIGxzLmFkZExpc3RlbmVyKGwxKTsKKwkgICAgbHMuYWRkTGlzdGVuZXIobDEpOworCSAgICBscy5hZGRMaXN0ZW5lcihsMik7CisJICAgIGxzLnJlZ2lzdGVyT2JqZWN0KCJGb28iLCAiZW5fRk9PIik7CisJICAgIGxvZ2xuKCIuLi4gcmVnaXN0ZXJlZCBmb28iKTsKKworCSAgICAvLyBzaW5jZSBpbiBhIHNlcGFyYXRlIHRocmVhZCwgd2UgY2FuIGNhbGxiYWNrIGFuZCBub3QgZGVhZGxvY2sKKwkgICAgU2VydmljZUxpc3RlbmVyIGwzID0gbmV3IFNlcnZpY2VMaXN0ZW5lcigpIHsKKwkJICAgIHByaXZhdGUgaW50IG47CisJCSAgICBwdWJsaWMgdm9pZCBzZXJ2aWNlQ2hhbmdlZChJQ1VTZXJ2aWNlIHMpIHsKKwkJCWxvZ2xuKCJsaXN0ZW5lciAzIHJlcG9ydCAiICsgbisrICsgIiBzZXJ2aWNlIGNoYW5nZWQuLi4iKTsKKwkJCWlmIChzLmdldCgiZW5fQk9JTksiKSA9PSBudWxsKSB7IC8vIGRvbid0IHJlY3Vyc2Ugb24gb3Vyc2VsdmVzISEhCisJCQkgICAgbG9nbG4oInJlZ2lzdGVyaW5nIGJvaW5rLi4uIik7CisJCQkgICAgcy5yZWdpc3Rlck9iamVjdCgiYm9pbmsiLCAiZW5fQk9JTksiKTsKKwkJCX0KKwkJICAgIH0KKwkJfTsKKwkgICAgbHMuYWRkTGlzdGVuZXIobDMpOworCSAgICBsb2dsbigicmVnaXN0ZXJpbmcgYm9vLi4uIik7CisJICAgIGxzLnJlZ2lzdGVyT2JqZWN0KCJCb28iLCAiZW5fQk9PIik7CisJICAgIGxvZ2xuKCIuLi5kb25lIik7CisKKwkgICAgdHJ5IHsKKwkJVGhyZWFkLnNsZWVwKDEwMCk7CisJICAgIH0KKwkgICAgY2F0Y2ggKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHsKKwkgICAgfQorCX0KKyAgICB9CisKKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgVGVzdE11bHRpcGxlRmFjdG9yeSBleHRlbmRzIE11bHRpcGxlS2V5RmFjdG9yeSB7CisJcHJvdGVjdGVkIGZpbmFsIFN0cmluZ1tdIGlkczsKKwlwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIGZhY3RvcnlJRDsKKworCXB1YmxpYyBUZXN0TXVsdGlwbGVGYWN0b3J5KFN0cmluZ1tdIGlkcykgeworCSAgICB0aGlzKGlkcywgIiIpOworCX0KKworCXB1YmxpYyBUZXN0TXVsdGlwbGVGYWN0b3J5KFN0cmluZ1tdIGlkcywgU3RyaW5nIGZhY3RvcnlJRCkgeworCSAgICB0aGlzLmlkcyA9IChTdHJpbmdbXSlpZHMuY2xvbmUoKTsKKworCSAgICBpZiAoZmFjdG9yeUlEID09IG51bGwgfHwgZmFjdG9yeUlELmxlbmd0aCgpID09IDApIHsKKwkJdGhpcy5mYWN0b3J5SUQgPSAiIjsKKwkgICAgfSBlbHNlIHsKKwkJdGhpcy5mYWN0b3J5SUQgPSBmYWN0b3J5SUQgKyAiOiAiOworCSAgICB9CisJfQorICAgIAorCXByb3RlY3RlZCBPYmplY3QgaGFuZGxlQ3JlYXRlKEtleSBrZXkpIHsKKwkgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpZHMubGVuZ3RoOyArK2kpIHsKKwkJaWYgKGtleS5jdXJyZW50SUQoKS5lcXVhbHNJZ25vcmVDYXNlKGlkc1tpXSkpIHsKKwkJICAgIHJldHVybiBmYWN0b3J5SUQgKyBrZXkuY2Fub25pY2FsSUQoKTsKKwkJfQorCSAgICB9CisJICAgIHJldHVybiBudWxsOworCX0KKworCXByb3RlY3RlZCB2b2lkIGhhbmRsZVVwZGF0ZVZpc2libGVJRHMoU2V0IHJlc3VsdCkgeworCSAgICBmb3IgKGludCBpID0gMDsgaSA8IGlkcy5sZW5ndGg7ICsraSkgeworCQlyZXN1bHQuYWRkKGlkc1tpXSk7CisJICAgIH0KKwl9CisJcHJvdGVjdGVkIFN0cmluZyBoYW5kbGVHZXREaXNwbGF5TmFtZShTdHJpbmcgaWQsIExvY2FsZSBsb2NhbGUpIHsKKwkgICAgcmV0dXJuIGZhY3RvcnlJRCArIExvY2FsZVV0aWxpdHkuZ2V0TG9jYWxlRnJvbU5hbWUoaWQpLmdldERpc3BsYXlOYW1lKGxvY2FsZSk7CisJfQorICAgIH0KKworICAgIHN0YXRpYyBjbGFzcyBUZXN0SGlkaW5nRmFjdG9yeSBpbXBsZW1lbnRzIElDVVNlcnZpY2UuRmFjdG9yeSB7CisJcHJvdGVjdGVkIGZpbmFsIFN0cmluZ1tdIGlkczsKKwlwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIGZhY3RvcnlJRDsKKworCXB1YmxpYyBUZXN0SGlkaW5nRmFjdG9yeShTdHJpbmdbXSBpZHMpIHsKKwkgICAgdGhpcyhpZHMsICJIaWRpbmciKTsKKwl9CisKKwlwdWJsaWMgVGVzdEhpZGluZ0ZhY3RvcnkoU3RyaW5nW10gaWRzLCBTdHJpbmcgZmFjdG9yeUlEKSB7CisJICAgIHRoaXMuaWRzID0gKFN0cmluZ1tdKWlkcy5jbG9uZSgpOworCisJICAgIGlmIChmYWN0b3J5SUQgPT0gbnVsbCB8fCBmYWN0b3J5SUQubGVuZ3RoKCkgPT0gMCkgeworCQl0aGlzLmZhY3RvcnlJRCA9ICIiOworCSAgICB9IGVsc2UgeworCQl0aGlzLmZhY3RvcnlJRCA9IGZhY3RvcnlJRCArICI6ICI7CisJICAgIH0KKwl9CisKKwlwdWJsaWMgT2JqZWN0IGNyZWF0ZShLZXkga2V5KSB7CisJICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaWRzLmxlbmd0aDsgKytpKSB7CisJCWlmIChMb2NhbGVVdGlsaXR5LmlzRmFsbGJhY2tPZihpZHNbaV0sIGtleS5jdXJyZW50SUQoKSkpIHsKKwkJICAgIHJldHVybiBmYWN0b3J5SUQgKyBrZXkuY2Fub25pY2FsSUQoKTsKKwkJfQorCSAgICB9CisJICAgIHJldHVybiBudWxsOworCX0KKworCXB1YmxpYyB2b2lkIHVwZGF0ZVZpc2libGVJRHMoTWFwIHJlc3VsdCkgeworCSAgICBmb3IgKGludCBpID0gMDsgaSA8IGlkcy5sZW5ndGg7ICsraSkgeworCQlTdHJpbmcgaWQgPSBpZHNbaV07CisJCUl0ZXJhdG9yIGl0ZXIgPSByZXN1bHQua2V5U2V0KCkuaXRlcmF0b3IoKTsKKwkJd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisJCSAgICBpZiAoTG9jYWxlVXRpbGl0eS5pc0ZhbGxiYWNrT2YoaWQsIChTdHJpbmcpaXRlci5uZXh0KCkpKSB7CisJCQlpdGVyLnJlbW92ZSgpOworCQkgICAgfQorCQl9CisJCXJlc3VsdC5wdXQoaWQsIHRoaXMpOworCSAgICB9CisJfQorCisJcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShTdHJpbmcgaWQsIExvY2FsZSBsb2NhbGUpIHsKKwkgICAgcmV0dXJuIGZhY3RvcnlJRCArIExvY2FsZVV0aWxpdHkuZ2V0TG9jYWxlRnJvbU5hbWUoaWQpLmdldERpc3BsYXlOYW1lKGxvY2FsZSk7CisJfQorICAgIH0KKworICAgIHN0YXRpYyBjbGFzcyBDYWxpZm9ybmlvTGFuZ3VhZ2VGYWN0b3J5IGV4dGVuZHMgSUNVUmVzb3VyY2VCdW5kbGVGYWN0b3J5IHsKKwlDYWxpZm9ybmlvTGFuZ3VhZ2VGYWN0b3J5KCkgeworCSAgICBzdXBlcigiQ291bnRyaWVzO0xhbmd1YWdlcyIsIHRydWUpOworCX0KKwkKKwlwcml2YXRlIHN0YXRpYyBTdHJpbmcgY2FsaWZvcm5pbyA9ICJlbl9VU19DQSI7CisJcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIHZhbGxleSA9IGNhbGlmb3JuaW8gKyAiX1ZBTExFWSI7CisJcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIHN1cmZlciA9IGNhbGlmb3JuaW8gKyAiX1NVUkZFUiI7CisJcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGdlZWsgPSBjYWxpZm9ybmlvICsgIl9HRUVLIjsKKworCXB1YmxpYyB2b2lkIGhhbmRsZVVwZGF0ZVZpc2libGVJRHMoU2V0IHJlc3VsdCkgeworCSAgICBzdXBlci5oYW5kbGVVcGRhdGVWaXNpYmxlSURzKHJlc3VsdCk7CisKKwkgICAgcmVzdWx0LmFkZChjYWxpZm9ybmlvKTsKKwkgICAgcmVzdWx0LmFkZCh2YWxsZXkpOworCSAgICByZXN1bHQuYWRkKHN1cmZlcik7CisJICAgIHJlc3VsdC5hZGQoZ2Vlayk7CisJfQorCisJcHJvdGVjdGVkIFN0cmluZyBoYW5kbGVHZXREaXNwbGF5TmFtZShTdHJpbmcgaWQsIExvY2FsZSBsb2NhbGUpIHsKKwkgICAgU3RyaW5nIHByZWZpeCA9ICIiOworCSAgICBTdHJpbmcgc3VmZml4ID0gIiI7CisJICAgIFN0cmluZyBscyA9IGxvY2FsZS50b1N0cmluZygpOworCSAgICBpZiAoTG9jYWxlVXRpbGl0eS5pc0ZhbGxiYWNrT2YoY2FsaWZvcm5pbywgbHMpKSB7CisJCWlmIChscy5lcXVhbHNJZ25vcmVDYXNlKHZhbGxleSkpIHsKKwkJICAgIHByZWZpeCA9ICJMaWtlLCB5b3Uga25vdywgaXQncyBzbyB0b3RhbGx5ICI7CisJCX0gZWxzZSBpZiAobHMuZXF1YWxzSWdub3JlQ2FzZShzdXJmZXIpKSB7CisJCSAgICBwcmVmaXggPSAiRHVkZSwgaXRzICI7CisJCX0gZWxzZSBpZiAobHMuZXF1YWxzSWdub3JlQ2FzZShnZWVrKSkgeworCQkgICAgcHJlZml4ID0gIkknZCBlc3RpbWF0ZSBpdCdzIGFwcHJveGltYXRlbHkgIjsKKwkJfSBlbHNlIHsKKwkJICAgIHByZWZpeCA9ICJIdWg/ICBNYXliZSAiOworCQl9CisJICAgIH0KKwkgICAgaWYgKExvY2FsZVV0aWxpdHkuaXNGYWxsYmFja09mKGNhbGlmb3JuaW8sIGlkKSkgeworCQlpZiAoaWQuZXF1YWxzSWdub3JlQ2FzZSh2YWxsZXkpKSB7CisJCSAgICBzdWZmaXggPSAibGlrZSB0aGUgVmFsbGV5LCB5b3Uga25vdz8gIExldCdzIGdvIHRvIHRoZSBtYWxsISI7CisJCX0gZWxzZSBpZiAoaWQuZXF1YWxzSWdub3JlQ2FzZShzdXJmZXIpKSB7CisJCSAgICBzdWZmaXggPSAidGltZSB0byBoaXQgdGhvc2UgZ25hcmx5IHdhdmVzLCBEdWRlISEhIjsKKwkJfSBlbHNlIGlmIChpZC5lcXVhbHNJZ25vcmVDYXNlKGdlZWspKSB7CisJCSAgICBzdWZmaXggPSAiYWxsIHN5c3RlbXMgZ28uICBULU1pbnVzIDksIDgsIDcuLi4iOworCQl9IGVsc2UgeworCQkgICAgc3VmZml4ID0gIk5vIEhhYmxhIEVuZ2xhaXMiOworCQl9CisJICAgIH0gZWxzZSB7CisJCXN1ZmZpeCA9IHN1cGVyLmhhbmRsZUdldERpc3BsYXlOYW1lKGlkLCBsb2NhbGUpOworCSAgICB9CisJCQorCSAgICByZXR1cm4gcHJlZml4ICsgc3VmZml4OworCX0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0TG9jYWxlKCkgeworCUlDVUxvY2FsZVNlcnZpY2Ugc2VydmljZSA9IG5ldyBJQ1VMb2NhbGVTZXJ2aWNlKCk7CisJc2VydmljZS5yZWdpc3Rlck9iamVjdCgicm9vdCIsICIiKTsKKwlzZXJ2aWNlLnJlZ2lzdGVyT2JqZWN0KCJnZXJtYW4iLCAiZGUiKTsKKwlzZXJ2aWNlLnJlZ2lzdGVyT2JqZWN0KCJnZXJtYW5fR2VybWFueSIsICJkZV9ERSIpOworCXNlcnZpY2UucmVnaXN0ZXJPYmplY3QoImphcGFuZXNlIiwgImphIik7CisJc2VydmljZS5yZWdpc3Rlck9iamVjdCgiamFwYW5lc2VfSmFwYW4iLCAiamFfSlAiKTsKKworCU9iamVjdCB0YXJnZXQgPSBzZXJ2aWNlLmdldCgiZGVfVVMiKTsKKwljb25maXJtRXF1YWwoInRlc3QgZGVfVVMiLCAiZ2VybWFuIiwgdGFyZ2V0KTsKKworCXRhcmdldCA9IHNlcnZpY2UuZ2V0KCJ6YV9QUFAiKTsKKwljb25maXJtRXF1YWwoInRlc3QgemFwcHAiLCAicm9vdCIsIHRhcmdldCk7CisKKwlMb2NhbGUgbG9jID0gTG9jYWxlLmdldERlZmF1bHQoKTsKKwlMb2NhbGUuc2V0RGVmYXVsdChMb2NhbGUuSkFQQU5FU0UpOworCXRhcmdldCA9IHNlcnZpY2UuZ2V0KCJ6YV9QUFAiKTsKKwljb25maXJtRXF1YWwoInRlc3Qgd2l0aCBqYSBsb2NhbGUiLCAiamFwYW5lc2UiLCB0YXJnZXQpOworCisJU2V0IGlkcyA9IHNlcnZpY2UuZ2V0VmlzaWJsZUlEcygpOworCWZvciAoSXRlcmF0b3IgaXRlciA9IGlkcy5pdGVyYXRvcigpOyBpdGVyLmhhc05leHQoKTspIHsKKwkgICAgbG9nbG4oImlkOiAiICsgaXRlci5uZXh0KCkpOworCX0KKworCUxvY2FsZS5zZXREZWZhdWx0KGxvYyk7CisJaWRzID0gc2VydmljZS5nZXRWaXNpYmxlSURzKCk7CisJZm9yIChJdGVyYXRvciBpdGVyID0gaWRzLml0ZXJhdG9yKCk7IGl0ZXIuaGFzTmV4dCgpOykgeworCSAgICBsb2dsbigiaWQ6ICIgKyBpdGVyLm5leHQoKSk7CisJfQorCisJdGFyZ2V0ID0gc2VydmljZS5nZXQoInphX1BQUCIpOworCWNvbmZpcm1FcXVhbCgidGVzdCB3aXRoIGVuIGxvY2FsZSIsICJyb290IiwgdGFyZ2V0KTsKKyAgICB9CisKKyAgICAvLyBtaXNjIGNvdmVyYWdlIHRlc3RzCisgICAgcHVibGljIHZvaWQgVGVzdENvdmVyYWdlKCkgeworCS8vIEtleQorCUtleSBrZXkgPSBuZXcgS2V5KCJmb29iYXIiKTsKKwlsb2dsbigiSUQ6ICIgKyBrZXkuaWQoKSk7CisJbG9nbG4oImNhbm9uaWNhbElEOiAiICsga2V5LmNhbm9uaWNhbElEKCkpOworCWxvZ2xuKCJjdXJyZW50SUQ6ICIgKyBrZXkuY3VycmVudElEKCkpOworCWxvZ2xuKCJoYXMgZmFsbGJhY2s6ICIgKyBrZXkuZmFsbGJhY2soKSk7CisKKwkvLyBTaW1wbGVGYWN0b3J5CisJT2JqZWN0IG9iaiA9IG5ldyBPYmplY3QoKTsKKwlTaW1wbGVGYWN0b3J5IHNmID0gbmV3IFNpbXBsZUZhY3Rvcnkob2JqLCAib2JqZWN0Iik7CisJdHJ5IHsKKwkgICAgc2YgPSBuZXcgU2ltcGxlRmFjdG9yeShudWxsLCBudWxsKTsKKwkgICAgZXJybG4oImRpZG4ndCB0aHJvdyBleGNlcHRpb24iKTsKKwl9CisJY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisJICAgIGxvZ2xuKCJPSzogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKwl9CisJY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisJICAgIGVycmxuKCJ0aHJldyB3cm9uZyBleGNlcHRpb24iKTsKKwl9CisJbG9nbG4oc2YuZ2V0RGlzcGxheU5hbWUoIm9iamVjdCIsIG51bGwpKTsKKworCS8vIElDVVNlcnZpY2UKKwlJQ1VTZXJ2aWNlIHNlcnZpY2UgPSBuZXcgSUNVU2VydmljZSgpOworCXNlcnZpY2UucmVnaXN0ZXJGYWN0b3J5KHNmKTsKKworCXRyeSB7CisJICAgIHNlcnZpY2UuZ2V0KG51bGwsIG51bGwpOworCSAgICBlcnJsbigiZGlkbid0IHRocm93IGV4Y2VwdGlvbiIpOworCX0KKwljYXRjaCAoTnVsbFBvaW50ZXJFeGNlcHRpb24gZSkgeworCSAgICBsb2dsbigiT0s6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisJfQorCWNhdGNoIChFeGNlcHRpb24gZSkgeworCSAgICBlcnJsbigidGhyZXcgd3JvbmcgZXhjZXB0aW9uIik7CisJfQorCisJdHJ5IHsKKwkgICAgc2VydmljZS5yZWdpc3RlckZhY3RvcnkobnVsbCk7CisJICAgIGVycmxuKCJkaWRuJ3QgdGhyb3cgZXhjZXB0aW9uIik7CisJfQorCWNhdGNoIChOdWxsUG9pbnRlckV4Y2VwdGlvbiBlKSB7CisJICAgIGxvZ2xuKCJPSzogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKwl9CisJY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisJICAgIGVycmxuKCJ0aHJldyB3cm9uZyBleGNlcHRpb24iKTsKKwl9CisKKwl0cnkgeworCSAgICBzZXJ2aWNlLnVucmVnaXN0ZXJGYWN0b3J5KG51bGwpOworCSAgICBlcnJsbigiZGlkbid0IHRocm93IGV4Y2VwdGlvbiIpOworCX0KKwljYXRjaCAoTnVsbFBvaW50ZXJFeGNlcHRpb24gZSkgeworCSAgICBsb2dsbigiT0s6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisJfQorCWNhdGNoIChFeGNlcHRpb24gZSkgeworCSAgICBlcnJsbigidGhyZXcgd3JvbmcgZXhjZXB0aW9uIik7CisJfQorCisJbG9nbG4oIm9iamVjdCBpczogIiArIHNlcnZpY2UuZ2V0KCJvYmplY3QiKSk7CisKKwlsb2dsbigic3RhdHM6ICIgKyBzZXJ2aWNlLnN0YXRzKCkpOworCisJLy8gSUNVUldMb2NrCisKKwlJQ1VSV0xvY2sgcndsb2NrID0gbmV3IElDVVJXTG9jaygpOworCXJ3bG9jay5hY3F1aXJlUmVhZCgpOworCXJ3bG9jay5yZWxlYXNlUmVhZCgpOworCisJcndsb2NrLmFjcXVpcmVXcml0ZSgpOworCXJ3bG9jay5yZWxlYXNlV3JpdGUoKTsKKwlsb2dsbigic3RhdHM6ICIgKyByd2xvY2suZ2V0U3RhdHMoKSk7CisJbG9nbG4oInN0YXRzOiAiICsgcndsb2NrLmNsZWFyU3RhdHMoKSk7CisJcndsb2NrLmFjcXVpcmVSZWFkKCk7CisJcndsb2NrLnJlbGVhc2VSZWFkKCk7CisJcndsb2NrLmFjcXVpcmVXcml0ZSgpOworCXJ3bG9jay5yZWxlYXNlV3JpdGUoKTsKKwlsb2dsbigic3RhdHM6ICIgKyByd2xvY2suZ2V0U3RhdHMoKSk7CisKKwl0cnkgeworCSAgICByd2xvY2sucmVsZWFzZVJlYWQoKTsKKwkgICAgZXJybG4oIm5vIGVycm9yIHRocm93biIpOworCX0KKwljYXRjaCAoSW50ZXJuYWxFcnJvciBlKSB7CisJICAgIGxvZ2xuKCJPSzogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKwl9CisKKwl0cnkgeworCSAgICByd2xvY2sucmVsZWFzZVdyaXRlKCk7CisJICAgIGVycmxuKCJubyBlcnJvciB0aHJvd24iKTsKKwl9CisJY2F0Y2ggKEludGVybmFsRXJyb3IgZSkgeworCSAgICBsb2dsbigiT0s6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisJfQorCisJLy8gTG9jYWxlS2V5CisJTG9jYWxlS2V5IGxrZXkgPSBMb2NhbGVLZXkuY3JlYXRlKCJlbl9VUyIsICJqYV9KUCIpOworCWxrZXkgPSBMb2NhbGVLZXkuY3JlYXRlKG51bGwsIG51bGwpOworCWxrZXkgPSBMb2NhbGVLZXkuY3JlYXRlV2l0aENhbm9uaWNhbCgiZW5fVVMiLCAiamFfSlAiKTsKKworCS8vIE11bHRpcGxlS2V5RmFjdG9yeSAKKwlNdWx0aXBsZUtleUZhY3RvcnkgbWtmID0gbmV3IE1LRlN1YmNsYXNzKGZhbHNlKTsKKwlsb2dsbigib2JqOiAiICsgbWtmLmNyZWF0ZShsa2V5KSk7CisJbG9nbG4obWtmLmdldERpc3BsYXlOYW1lKCJmb28iLCBudWxsKSk7CisJbG9nbG4obWtmLmdldERpc3BsYXlOYW1lKCJiYXIiLCBudWxsKSk7CisJbWtmLnVwZGF0ZVZpc2libGVJRHMobmV3IEhhc2hNYXAoKSk7CisKKwlNdWx0aXBsZUtleUZhY3RvcnkgaW52aXNpYmxlTUtGID0gbmV3IE1LRlN1YmNsYXNzKGZhbHNlKTsKKwlsb2dsbigib2JqOiAiICsgaW52aXNpYmxlTUtGLmNyZWF0ZShsa2V5KSk7CisJbG9nbG4oaW52aXNpYmxlTUtGLmdldERpc3BsYXlOYW1lKCJmb28iLCBudWxsKSk7CisJbG9nbG4oaW52aXNpYmxlTUtGLmdldERpc3BsYXlOYW1lKCJiYXIiLCBudWxsKSk7CisJaW52aXNpYmxlTUtGLnVwZGF0ZVZpc2libGVJRHMobmV3IEhhc2hNYXAoKSk7CisKKwkvLyBSZXNvdXJjZUJ1bmRsZUZhY3RvcnkKKwlJQ1VSZXNvdXJjZUJ1bmRsZUZhY3RvcnkgcmJmID0gbmV3IElDVVJlc291cmNlQnVuZGxlRmFjdG9yeShudWxsLCB0cnVlKTsKKwlsb2dsbigiUkI6ICIgKyByYmYuY3JlYXRlKGxrZXkpKTsKKwlMb2NhbGVLZXkgbm9rZXkgPSBMb2NhbGVLZXkuY3JlYXRlKG51bGwsIG51bGwpOworCWxvZ2xuKCJSQjogIiArIHJiZi5jcmVhdGUobm9rZXkpKTsKKworCXJiZiA9IG5ldyBJQ1VSZXNvdXJjZUJ1bmRsZUZhY3RvcnkoImZvb2JhciIsIHRydWUpOworCWxvZ2xuKCJSQjogIiArIHJiZi5jcmVhdGUobGtleSkpOworCisJLy8gSUNVTm90aWZpZXIKKwlJQ1VOb3RpZmllciBuZiA9IG5ldyBJQ1VOU3ViY2xhc3MoKTsKKwl0cnkgeworCSAgICBuZi5hZGRMaXN0ZW5lcihudWxsKTsKKwkgICAgZXJybG4oImFkZGVkIG51bGwgbGlzdGVuZXIiKTsKKwl9CisJY2F0Y2ggKE51bGxQb2ludGVyRXhjZXB0aW9uIGUpIHsKKwkgICAgbG9nbG4oZS5nZXRNZXNzYWdlKCkpOworCX0KKwljYXRjaCAoRXhjZXB0aW9uIGUpIHsKKwkgICAgZXJybG4oImdvdCB3cm9uZyBleGNlcHRpb24iKTsKKwl9CisKKwl0cnkgeworCSAgICBuZi5hZGRMaXN0ZW5lcihuZXcgV3JvbmdMaXN0ZW5lcigpKTsKKwkgICAgZXJybG4oImFkZGVkIHdyb25nIGxpc3RlbmVyIik7CisJfQorCWNhdGNoIChJbnRlcm5hbEVycm9yIGUpIHsKKwkgICAgbG9nbG4oZS5nZXRNZXNzYWdlKCkpOworCX0KKwljYXRjaCAoRXhjZXB0aW9uIGUpIHsKKwkgICAgZXJybG4oImdvdCB3cm9uZyBleGNlcHRpb24iKTsKKwl9CisKKwl0cnkgeworCSAgICBuZi5yZW1vdmVMaXN0ZW5lcihudWxsKTsKKwkgICAgZXJybG4oInJlbW92ZWQgbnVsbCBsaXN0ZW5lciIpOworCX0KKwljYXRjaCAoTnVsbFBvaW50ZXJFeGNlcHRpb24gZSkgeworCSAgICBsb2dsbihlLmdldE1lc3NhZ2UoKSk7CisJfQorCWNhdGNoIChFeGNlcHRpb24gZSkgeworCSAgICBlcnJsbigiZ290IHdyb25nIGV4Y2VwdGlvbiIpOworCX0KKworCW5mLnJlbW92ZUxpc3RlbmVyKG5ldyBNeUxpc3RlbmVyKCkpOworCW5mLm5vdGlmeUNoYW5nZWQoKTsKKwluZi5hZGRMaXN0ZW5lcihuZXcgTXlMaXN0ZW5lcigpKTsKKwluZi5yZW1vdmVMaXN0ZW5lcihuZXcgTXlMaXN0ZW5lcigpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgTXlMaXN0ZW5lciBpbXBsZW1lbnRzIEV2ZW50TGlzdGVuZXIgeworCXB1YmxpYyB2b2lkIGhleU1hbigpIHsKKwl9CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIFdyb25nTGlzdGVuZXIgaW1wbGVtZW50cyBFdmVudExpc3RlbmVyIHsKKwlwdWJsaWMgdm9pZCBzYXlXaGF0KCkgeworCX0KKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgSUNVTlN1YmNsYXNzIGV4dGVuZHMgSUNVTm90aWZpZXIgeworCXB1YmxpYyBib29sZWFuIGFjY2VwdHNMaXN0ZW5lcihFdmVudExpc3RlbmVyIGwpIHsKKwkgICAgcmV0dXJuIGwgaW5zdGFuY2VvZiBNeUxpc3RlbmVyOworCX0KKworCXB1YmxpYyB2b2lkIG5vdGlmeUxpc3RlbmVyKEV2ZW50TGlzdGVuZXIgbCkgeworCSAgICAoKE15TGlzdGVuZXIpbCkuaGV5TWFuKCk7CisJfQorICAgIH0KKworICAgIHN0YXRpYyBjbGFzcyBNS0ZTdWJjbGFzcyBleHRlbmRzIE11bHRpcGxlS2V5RmFjdG9yeSB7CisJTUtGU3ViY2xhc3MoYm9vbGVhbiB2aXNpYmxlKSB7CisJICAgIHN1cGVyKHZpc2libGUpOworCX0KKworCXB1YmxpYyBPYmplY3QgaGFuZGxlQ3JlYXRlKEtleSBrZXkpIHsKKwkgICAgcmV0dXJuIG51bGw7CisJfQorCisJcHVibGljIHZvaWQgaGFuZGxlVXBkYXRlVmlzaWJsZUlEcyhTZXQgcmVzdWx0KSB7CisJfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0lDVVNlcnZpY2VUZXN0U2FtcGxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9JQ1VTZXJ2aWNlVGVzdFNhbXBsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1MmUzZjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9JQ1VTZXJ2aWNlVGVzdFNhbXBsZS5qYXZhCkBAIC0wLDAgKzEsMjEwIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvSUNVU2VydmljZVRlc3RTYW1wbGUuamF2YSx2ICQKKyAqICREYXRlOiAyMDAyLzA4LzEzIDIyOjEwOjIwICQKKyAqICRSZXZpc2lvbjogMS4yICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUxvY2FsZVNlcnZpY2U7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VTZXJ2aWNlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTG9jYWxlVXRpbGl0eTsKK2ltcG9ydCBqYXZhLnV0aWwuRXZlbnRMaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5NYXAuRW50cnk7CitpbXBvcnQgamF2YS51dGlsLlNldDsKKworcHVibGljIGNsYXNzIElDVVNlcnZpY2VUZXN0U2FtcGxlIHsKKyAgICBzdGF0aWMgcHVibGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisJSGVsbG9TZXJ2aWNlQ2xpZW50IGNsaWVudCA9IG5ldyBIZWxsb1NlcnZpY2VDbGllbnQoKTsKKworCVRocmVhZCB0ID0gbmV3IEhlbGxvVXBkYXRlVGhyZWFkKCk7CisJdC5zdGFydCgpOworCXRyeSB7CisJICAgIHQuam9pbigpOworCX0KKwljYXRjaCAoSW50ZXJydXB0ZWRFeGNlcHRpb24gZSkgeworCX0KKwlTeXN0ZW0ub3V0LnByaW50bG4oImRvbmUiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBIGNsYXNzIHRoYXQgZGlzcGxheXMgdGhlIGN1cnJlbnQgbmFtZXMgaW4gdGhlIEhlbGxvIHNlcnZpY2UuCisgICAgICogRWFjaCB0aW1lIHRoZSBzZXJ2aWNlIGNoYW5nZXMsIGl0IHJlZGlzcGxheXMgdGhlIG5hbWVzLgorICAgICAqLworICAgIHN0YXRpYyBjbGFzcyBIZWxsb1NlcnZpY2VDbGllbnQgaW1wbGVtZW50cyBIZWxsb1NlcnZpY2UuSGVsbG9TZXJ2aWNlTGlzdGVuZXIgeworCisJSGVsbG9TZXJ2aWNlQ2xpZW50KCkgeworCSAgICBIZWxsb1NlcnZpY2UuYWRkTGlzdGVuZXIodGhpcyk7CisJICAgIGRpc3BsYXkoKTsKKwl9CisKKwkvKioKKwkgKiBUaGlzIHdpbGwgYmUgY2FsbGVkIGluIHRoZSBub3RpZmljYXRpb24gdGhyZWFkIG9mCisJICogSUNVTm90aWZpZXIuICBJQ1VOb3RpZmllciBjb3VsZCBzcGF3biBhIChub24tZGFlbW9uKSB0aHJlYWQKKwkgKiBmb3IgZWFjaCBsaXN0ZW5lciwgc28gdGhhdCBpbXBvbGl0ZSBsaXN0ZW5lcnMgd291bGRuJ3QgaG9sZAorCSAqIHVwIG5vdGlmaWNhdGlvbiwgYnV0IHJpZ2h0IG5vdyBpdCBkb2Vzbid0LiAgSW5zdGVhZCwgYWxsCisJICogbm90aWZpY2F0aW9ucyBhcmUgZGVsaXZlcmVkIG9uIHRoZSBub3RpZmljYXRpb24gdGhyZWFkLgorCSAqIFNpbmNlIHRoYXQncyBhIGRhZW1vbiB0aHJlYWQsIGEgbm90aWZpY2F0aW9uIG1pZ2h0IG5vdAorCSAqIGNvbXBsZXRlIGJlZm9yZSBtYWluIHRlcm1pbmF0ZXMuICAKKwkgKi8KKwlwdWJsaWMgdm9pZCBoZWxsb1NlcnZpY2VDaGFuZ2VkKCkgeworCSAgICBkaXNwbGF5KCk7CisJfQorCisJcHJpdmF0ZSB2b2lkIGRpc3BsYXkoKSB7CisJICAgIE1hcCBuYW1lcyA9IEhlbGxvU2VydmljZS5nZXREaXNwbGF5TmFtZXMoTG9jYWxlLlVTKTsKKwkgICAgU3lzdGVtLm91dC5wcmludGxuKCJkaXNwbGF5aW5nICIgKyBuYW1lcy5zaXplKCkgKyAiIG5hbWVzLiIpOworCSAgICBJdGVyYXRvciBpdGVyID0gbmFtZXMuZW50cnlTZXQoKS5pdGVyYXRvcigpOworCSAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKwkJRW50cnkgZW50cnkgPSAoRW50cnkpaXRlci5uZXh0KCk7CisJCVN0cmluZyBkaXNwbGF5TmFtZSA9IChTdHJpbmcpZW50cnkuZ2V0S2V5KCk7CisJCUhlbGxvU2VydmljZSBzZXJ2aWNlID0gSGVsbG9TZXJ2aWNlLmdldCgoU3RyaW5nKWVudHJ5LmdldFZhbHVlKCkpOworCQlTeXN0ZW0ub3V0LnByaW50bG4oZGlzcGxheU5hbWUgKyAiIHNheXMgIiArIHNlcnZpY2UuaGVsbG8oKSk7CisJCXRyeSB7CisJCSAgICBUaHJlYWQuc2xlZXAoNTApOworCQl9CisJCWNhdGNoIChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7CisJCX0KKwkgICAgfQorCSAgICBTeXN0ZW0ub3V0LnByaW50bG4oIi0tLS0iKTsKKwl9CisgICAgfQorCisgICAgLyoqCisgICAgICogQSB0aHJlYWQgdG8gdXBkYXRlIHRoZSBzZXJ2aWNlLgorICAgICAqLworICAgIHN0YXRpYyBjbGFzcyBIZWxsb1VwZGF0ZVRocmVhZCBleHRlbmRzIFRocmVhZCB7CisJU3RyaW5nW11bXSB1cGRhdGVzID0geworCSAgICB7ICJIZXkiLCAiZW5fVVNfSU5GT1JNQUwiIH0sCisJICAgIHsgIkhhbGxvIiwgImRlX0RFX0lORk9STUFMIiB9LAorCSAgICB7ICJZbyEiLCAiZW5fVVNfQ0FMSUZPUk5JQV9JTkZPUk1BTCIgfSwKKwkgICAgeyAiQ2hpIEZhbmxlIE1hPyIsICJ6aF9fSU5GT1JNQUwiIH0sCisJICAgIHsgIk11bmNoIG11bmNoLi4uIEJ1cmdlcj8iLCAiZW4iIH0sCisJICAgIHsgIlNuaWZmIiwgImZyIiB9LAorCSAgICB7ICJUb25nWmhpISBNYW9aZURvbmcgU2lYaWFuZyBXYW4gU3VpISIsICJ6aF9DTiIgfSwKKwkgICAgeyAiQmllcj8gSmEhIiwgImRlIiB9LAorCX07CisJcHVibGljIHZvaWQgcnVuKCkgeworCSAgICBmb3IgKGludCBpID0gMDsgaSA8IHVwZGF0ZXMubGVuZ3RoOyArK2kpIHsKKwkJdHJ5IHsKKwkJICAgIFRocmVhZC5zbGVlcCg1MDApOworCQl9CisJCWNhdGNoIChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7CisJCX0KKwkJSGVsbG9TZXJ2aWNlLnJlZ2lzdGVyKHVwZGF0ZXNbaV1bMF0sIExvY2FsZVV0aWxpdHkuZ2V0TG9jYWxlRnJvbU5hbWUodXBkYXRlc1tpXVsxXSkpOworCSAgICB9CisJfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEFuIGV4YW1wbGUgc2VydmljZSB0aGF0IHdyYXBzIGFuIElDVSBzZXJ2aWNlIGluIG9yZGVyIHRvIGV4cG9ydCBjdXN0b20gQVBJIGFuZAorICAgICAqIG5vdGlmaWNhdGlvbi4gVGhlIHNlcnZpY2UganVzdCBpbXBsZW1lbnRzICdoZWxsbycuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGNsYXNzIEhlbGxvU2VydmljZSB7CisJcHJpdmF0ZSBzdGF0aWMgSUNVU2VydmljZSByZWdpc3RyeTsKKwlwcml2YXRlIFN0cmluZyBuYW1lOworCisJcHJpdmF0ZSBIZWxsb1NlcnZpY2UoU3RyaW5nIG5hbWUpIHsgCisJICAgIHRoaXMubmFtZSA9IG5hbWU7IAorCX0KKworCS8qKgorCSAqIFRoZSBoZWxsbyBzZXJ2aWNlLi4uCisJICovCisJcHVibGljIFN0cmluZyBoZWxsbygpIHsgCisJICAgIHJldHVybiBuYW1lOyAKKwl9CisJCisJcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsgCisJICAgIHJldHVybiBzdXBlci50b1N0cmluZygpICsgIjogIiArIG5hbWU7IAorCX0KKworCS8qKgorCSAqIERlZmVycmVkIGluaXQuCisJICovCisJcHJpdmF0ZSBzdGF0aWMgSUNVU2VydmljZSByZWdpc3RyeSgpIHsKKwkgICAgaWYgKHJlZ2lzdHJ5ID09IG51bGwpIHsKKwkJaW5pdFJlZ2lzdHJ5KCk7CisJICAgIH0KKwkgICAgcmV0dXJuIHJlZ2lzdHJ5OworCX0KKworCXByaXZhdGUgc3RhdGljIHZvaWQgaW5pdFJlZ2lzdHJ5KCkgeworCSAgICByZWdpc3RyeSA9IG5ldyBJQ1VMb2NhbGVTZXJ2aWNlKCkgeworCQkgICAgcHJvdGVjdGVkIGJvb2xlYW4gYWNjZXB0c0xpc3RlbmVyKEV2ZW50TGlzdGVuZXIgbCkgeworCQkJcmV0dXJuIHRydWU7IC8vIHdlIGFscmVhZHkgdmVyaWZ5IGluIG91ciB3cmFwcGVyIEFQSXMKKwkJICAgIH0KKwkJICAgIHByb3RlY3RlZCB2b2lkIG5vdGlmeUxpc3RlbmVyKEV2ZW50TGlzdGVuZXIgbCkgeworCQkJKChIZWxsb1NlcnZpY2VMaXN0ZW5lcilsKS5oZWxsb1NlcnZpY2VDaGFuZ2VkKCk7CisJCSAgICB9CisJCX07CisKKwkgICAgLy8gaW5pdGlhbGl6ZQorCSAgICBkb1JlZ2lzdGVyKCJIZWxsbyIsICJlbiIpOworCSAgICBkb1JlZ2lzdGVyKCJCb25qb3VyIiwgImZyIik7CisJICAgIGRvUmVnaXN0ZXIoIk5pIEhhbyIsICJ6aF9DTiIpOworCSAgICBkb1JlZ2lzdGVyKCJHdXRlbiBUYWciLCAiZGUiKTsKKwl9CisKKwkvKioKKwkgKiBBIGN1c3RvbSBsaXN0ZW5lciBmb3IgY2hhbmdlcyB0byB0aGlzIHNlcnZpY2UuICBXZSBkb24ndCBuZWVkIHRvCisJICogcG9pbnQgdG8gdGhlIHNlcnZpY2Ugc2luY2UgaXQgaXMgZGVmaW5lZCBieSB0aGlzIGNsYXNzIGFuZCBub3QKKwkgKiBhbiBvYmplY3QuCisJICovCisJcHVibGljIHN0YXRpYyBpbnRlcmZhY2UgSGVsbG9TZXJ2aWNlTGlzdGVuZXIgZXh0ZW5kcyBFdmVudExpc3RlbmVyIHsKKwkgICAgcHVibGljIHZvaWQgaGVsbG9TZXJ2aWNlQ2hhbmdlZCgpOworCX0KKworCS8qKgorCSAqIFR5cGUtc2FmZSBub3RpZmljYXRpb24gZm9yIHRoaXMgc2VydmljZS4KKwkgKi8KKwlwdWJsaWMgc3RhdGljIHZvaWQgYWRkTGlzdGVuZXIoSGVsbG9TZXJ2aWNlTGlzdGVuZXIgbCkgeworCSAgICByZWdpc3RyeSgpLmFkZExpc3RlbmVyKGwpOworCX0KKworCS8qKgorCSAqIFR5cGUtc2FmZSBub3RpZmljYXRpb24gZm9yIHRoaXMgc2VydmljZS4KKwkgKi8KKwlwdWJsaWMgc3RhdGljIHZvaWQgcmVtb3ZlTGlzdGVuZXIoSGVsbG9TZXJ2aWNlTGlzdGVuZXIgbCkgeworCSAgICByZWdpc3RyeSgpLnJlbW92ZUxpc3RlbmVyKGwpOworCX0KKworCS8qKgorCSAqIFR5cGUtc2FmZSBhY2Nlc3MgdG8gdGhlIHNlcnZpY2UuCisJICovCisJcHVibGljIHN0YXRpYyBIZWxsb1NlcnZpY2UgZ2V0KFN0cmluZyBpZCkgeworCSAgICByZXR1cm4gKEhlbGxvU2VydmljZSlyZWdpc3RyeSgpLmdldChpZCk7CisJfQorCisJcHVibGljIHN0YXRpYyBTZXQgZ2V0VmlzaWJsZUlEcygpIHsKKwkgICAgcmV0dXJuIHJlZ2lzdHJ5KCkuZ2V0VmlzaWJsZUlEcygpOworCX0KKworCXB1YmxpYyBzdGF0aWMgTWFwIGdldERpc3BsYXlOYW1lcyhMb2NhbGUgbG9jYWxlKSB7CisJICAgIHJldHVybiByZWdpc3RyeSgpLmdldERpc3BsYXlOYW1lcyhsb2NhbGUpOworCX0KKworCS8qKgorCSAqIFJlZ2lzdGVyIGEgbmV3IGhlbGxvIHN0cmluZyBmb3IgdGhpcyBsb2NhbGUuCisJICovCisJcHVibGljIHN0YXRpYyB2b2lkIHJlZ2lzdGVyKFN0cmluZyBoZWxsb1N0cmluZywgTG9jYWxlIGxvY2FsZSkgeworCSAgICBpZiAoaGVsbG9TdHJpbmcgPT0gbnVsbCB8fCBsb2NhbGUgPT0gbnVsbCkgeworCQl0aHJvdyBuZXcgTnVsbFBvaW50ZXJFeGNlcHRpb24oKTsKKwkgICAgfQorCSAgICBkb1JlZ2lzdGVyKGhlbGxvU3RyaW5nLCBMb2NhbGVVdGlsaXR5LmNhbm9uaWNhbExvY2FsZVN0cmluZyhsb2NhbGUudG9TdHJpbmcoKSkpOworCX0KKworCXByaXZhdGUgc3RhdGljIHZvaWQgZG9SZWdpc3RlcihTdHJpbmcgaGVsbG8sIFN0cmluZyBpZCkgeworCSAgICByZWdpc3RyeSgpLnJlZ2lzdGVyT2JqZWN0KG5ldyBIZWxsb1NlcnZpY2UoaGVsbG8pLCBpZCk7CisJfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0lDVVNlcnZpY2VUaHJlYWRUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9JQ1VTZXJ2aWNlVGhyZWFkVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhOTBiZGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9JQ1VTZXJ2aWNlVGhyZWFkVGVzdC5qYXZhCkBAIC0wLDAgKzEsNDU3IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvSUNVU2VydmljZVRocmVhZFRlc3QuamF2YSx2ICQKKyAqICREYXRlOiAyMDAyLzA4LzEzIDIyOjEwOjIwICQKKyAqICRSZXZpc2lvbjogMS40ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0TG9nOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVU2VydmljZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVNlcnZpY2UuRmFjdG9yeTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVNlcnZpY2UuU2ltcGxlRmFjdG9yeTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVNlcnZpY2UuS2V5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTG9jYWxlVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUxvY2FsZURhdGE7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMb2NhbGVTZXJ2aWNlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlU2VydmljZS5Mb2NhbGVLZXk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMb2NhbGVTZXJ2aWNlLk11bHRpcGxlS2V5RmFjdG9yeTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUxvY2FsZVNlcnZpY2UuSUNVUmVzb3VyY2VCdW5kbGVGYWN0b3J5OworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuQ29tcGFyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5NYXAuRW50cnk7CitpbXBvcnQgamF2YS51dGlsLlJhbmRvbTsKK2ltcG9ydCBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZVNldDsKKworcHVibGljIGNsYXNzIElDVVNlcnZpY2VUaHJlYWRUZXN0IGV4dGVuZHMgVGVzdEZtd2sKK3sgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBQUklOVFNUQVRTID0gZmFsc2U7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKwlJQ1VTZXJ2aWNlVGhyZWFkVGVzdCB0ZXN0ID0gbmV3IElDVVNlcnZpY2VUaHJlYWRUZXN0KCk7CisJdGVzdC5ydW4oYXJncyk7CisKKwkvLyBnZXQKKwkvLyBnZXR2aXNpYmxlaWRzCisJLy8gZ2V0ZGlzcGxheW5hbWUobG9jYWxlKQorCS8vIGZhY3RvcmllcworCQorCS8vIHJlZ2lzdGVyRmFjdG9yeQorCS8vIHVucmVnaXN0ZXJGYWN0b3J5CisKKwkvLyAxKSBjb25jdXJyZW50IGFjY2VzcworCS8vIDIpIGFjY2VzcyB3aGlsZSBmYWN0b3JpZXMgY2hhbmdlCisJLy8gMykgaXRlcmF0aW9uIHdoaWxlIGZhY3RvcmllcyBjaGFuZ2UKKwkvLyA0KSBjb25jdXJyZW50IGNvbmZsaWN0aW5nIGFjY2VzcworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIGNvdW50cmllcyA9IHsKKwkiYWIiLCAiYmMiLCAiY2QiLCAiZGUiLCAiZWYiLCAiZmciLCAiZ2giLCAiamkiLCAiaWoiLCAiamsiCisgICAgfTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBsYW5ndWFnZXMgPSB7CisJIiIsICJaWSIsICJZWCIsICJYVyIsICJXViIsICJWVSIsICJVVCIsICJUUyIsICJTUiIsICJSUSIsICJRUCIKKyAgICB9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIHZhcmlhbnRzID0geworCSIiLCAiIiwgIiIsICJHT0xEIiwgIlNJTFZFUiIsICJCUk9OWkUiCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFRlc3RGYWN0b3J5IGV4dGVuZHMgU2ltcGxlRmFjdG9yeSB7CisJVGVzdEZhY3RvcnkoU3RyaW5nIGlkKSB7CisJICAgIHN1cGVyKExvY2FsZVV0aWxpdHkuZ2V0TG9jYWxlRnJvbU5hbWUoaWQpLCBpZCwgdHJ1ZSk7CisJfQorCisJcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShTdHJpbmcgaWQsIExvY2FsZSBsb2NhbGUpIHsKKwkgICAgcmV0dXJuICh2aXNpYmxlICYmIGlkLmVxdWFscyh0aGlzLmlkKSkgPyAiKCIgKyBsb2NhbGUudG9TdHJpbmcoKSArICIpICIgKyBpZCA6IG51bGw7CisJfQorCisJcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKwkgICAgcmV0dXJuICJGYWN0b3J5XyIgKyBpZDsKKwl9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgUmFuZG9tIHIgPSBuZXcgUmFuZG9tKCk7CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgZ2V0Q0xWKCkgeworCVN0cmluZyBjID0gY291bnRyaWVzW3IubmV4dEludChjb3VudHJpZXMubGVuZ3RoKV07CisJU3RyaW5nIGwgPSBsYW5ndWFnZXNbci5uZXh0SW50KGxhbmd1YWdlcy5sZW5ndGgpXTsKKwlTdHJpbmcgdiA9IHZhcmlhbnRzW3IubmV4dEludCh2YXJpYW50cy5sZW5ndGgpXTsKKwlyZXR1cm4gbmV3IExvY2FsZShjLCBsLCB2KS50b1N0cmluZygpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gV0FJVCA9IHRydWU7CisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBHTyA9IGZhbHNlOworICAgIHByaXZhdGUgc3RhdGljIGxvbmcgVElNRSA9IDUwMDA7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgcnVuVGhyZWFkcygpIHsKKwlydW5UaHJlYWRzKFRJTUUpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBydW5UaHJlYWRzKGxvbmcgdGltZSkgeworCXRyeSB7CisJICAgIEdPID0gdHJ1ZTsKKwkgICAgV0FJVCA9IGZhbHNlOworCisJICAgIFRocmVhZC5zbGVlcCh0aW1lKTsKKworCSAgICBXQUlUID0gdHJ1ZTsKKwkgICAgR08gPSBmYWxzZTsKKworCSAgICBUaHJlYWQuc2xlZXAoMzAwKTsKKwl9CisJY2F0Y2ggKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHsKKwl9CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIFRlc3RUaHJlYWQgZXh0ZW5kcyBUaHJlYWQgaW1wbGVtZW50cyBUZXN0TG9nIHsKKwlwcml2YXRlIGZpbmFsIFN0cmluZyBuYW1lOworCXByb3RlY3RlZCBJQ1VTZXJ2aWNlIHNlcnZpY2U7CisJcHJpdmF0ZSBmaW5hbCBsb25nIGRlbGF5OworCXByaXZhdGUgZmluYWwgVGVzdExvZyBsb2c7CisKKwlwdWJsaWMgVGVzdFRocmVhZChTdHJpbmcgbmFtZSwgSUNVU2VydmljZSBzZXJ2aWNlLCBsb25nIGRlbGF5LCBUZXN0TG9nIGxvZykgeworCSAgICB0aGlzLm5hbWUgPSBuYW1lICsgIiAiOworCSAgICB0aGlzLnNlcnZpY2UgPSBzZXJ2aWNlOworCSAgICB0aGlzLmRlbGF5ID0gZGVsYXk7CisJICAgIHRoaXMubG9nID0gbG9nOworCSAgICB0aGlzLnNldERhZW1vbih0cnVlKTsKKwl9CisKKwlwdWJsaWMgdm9pZCBydW4oKSB7CisJICAgIHdoaWxlIChXQUlUKSB7CisJCVRocmVhZC55aWVsZCgpOworCSAgICB9CisKKwkgICAgdHJ5IHsKKwkJd2hpbGUgKEdPKSB7CisJCSAgICBpdGVyYXRlKCk7CisJCSAgICBpZiAoZGVsYXkgPiAwKSB7CisJCQlUaHJlYWQuc2xlZXAoZGVsYXkpOworCQkgICAgfQorCQl9CisJICAgIH0KKwkgICAgY2F0Y2ggKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHsKKwkgICAgfQorCX0KKworCXByb3RlY3RlZCB2b2lkIGl0ZXJhdGUoKSB7CisJfQorCisJcHVibGljIGJvb2xlYW4gbG9nZ2luZygpIHsKKwkgICAgcmV0dXJuIGxvZyAhPSBudWxsOworCX0KKworCXB1YmxpYyB2b2lkIGxvZyhTdHJpbmcgbXNnKSB7CisJICAgIGlmIChsb2dnaW5nKCkpIHsKKwkJbG9nLmxvZyhuYW1lICsgbXNnKTsKKwkgICAgfQorCX0KKworCXB1YmxpYyB2b2lkIGxvZ2xuKFN0cmluZyBtc2cpIHsKKwkgICAgaWYgKGxvZ2dpbmcoKSkgeworCQlsb2cubG9nbG4obmFtZSArIG1zZyk7CisJICAgIH0KKwl9CisKKwlwdWJsaWMgdm9pZCBlcnIoU3RyaW5nIG1zZykgeworCSAgICBpZiAobG9nZ2luZygpKSB7CisJCWxvZy5lcnIobmFtZSArIG1zZyk7CisJICAgIH0KKwl9CisKKwlwdWJsaWMgdm9pZCBlcnJsbihTdHJpbmcgbXNnKSB7CisJICAgIGlmIChsb2dnaW5nKCkpIHsKKwkJbG9nLmVycmxuKG5hbWUgKyBtc2cpOworCSAgICB9CisJfQorICAgIH0KKworICAgIHN0YXRpYyBjbGFzcyBSZWdpc3RlckZhY3RvcnlUaHJlYWQgZXh0ZW5kcyBUZXN0VGhyZWFkIHsKKwlSZWdpc3RlckZhY3RvcnlUaHJlYWQoU3RyaW5nIG5hbWUsIElDVVNlcnZpY2Ugc2VydmljZSwgbG9uZyBkZWxheSwgVGVzdExvZyBsb2cpIHsKKwkgICAgc3VwZXIoIlJFRyAiICsgbmFtZSwgc2VydmljZSwgZGVsYXksIGxvZyk7CisJfQorCisJcHJvdGVjdGVkIHZvaWQgaXRlcmF0ZSgpIHsKKwkgICAgRmFjdG9yeSBmID0gbmV3IFRlc3RGYWN0b3J5KGdldENMVigpKTsKKwkgICAgc2VydmljZS5yZWdpc3RlckZhY3RvcnkoZik7CisJICAgIGxvZ2xuKGYudG9TdHJpbmcoKSk7CisJfQorICAgIH0KKworICAgIHN0YXRpYyBjbGFzcyBVbnJlZ2lzdGVyRmFjdG9yeVRocmVhZCBleHRlbmRzIFRlc3RUaHJlYWQgeworCXByaXZhdGUgUmFuZG9tIHI7CisJTGlzdCBmYWN0b3JpZXM7CisKKwlVbnJlZ2lzdGVyRmFjdG9yeVRocmVhZChTdHJpbmcgbmFtZSwgSUNVU2VydmljZSBzZXJ2aWNlLCBsb25nIGRlbGF5LCBUZXN0TG9nIGxvZykgeworCSAgICBzdXBlcigiVU5SRUcgIiArIG5hbWUsIHNlcnZpY2UsIGRlbGF5LCBsb2cpOworCSAgICAKKwkgICAgciA9IG5ldyBSYW5kb20oKTsKKwkgICAgZmFjdG9yaWVzID0gc2VydmljZS5mYWN0b3JpZXMoKTsKKwl9CisKKwlwdWJsaWMgdm9pZCBpdGVyYXRlKCkgeworCSAgICBpbnQgcyA9IGZhY3Rvcmllcy5zaXplKCk7CisJICAgIGlmIChzID09IDApIHsKKwkJZmFjdG9yaWVzID0gc2VydmljZS5mYWN0b3JpZXMoKTsKKwkgICAgfSBlbHNlIHsKKwkJaW50IG4gPSByLm5leHRJbnQocyk7CisJCUZhY3RvcnkgZiA9IChGYWN0b3J5KWZhY3Rvcmllcy5yZW1vdmUobik7CisJCWJvb2xlYW4gc3VjY2VzcyA9IHNlcnZpY2UudW5yZWdpc3RlckZhY3RvcnkoZik7CisJCWlmIChsb2dnaW5nKCkpIGxvZ2xuKCJmYWN0b3J5OiAiICsgZiArIChzdWNjZXNzID8gIiBzdWNjZWVkZWQuIiA6ICIgKioqIGZhaWxlZC4iKSk7CisJICAgIH0KKwl9CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIFVucmVnaXN0ZXJGYWN0b3J5TGlzdFRocmVhZCBleHRlbmRzIFRlc3RUaHJlYWQgeworCUZhY3RvcnlbXSBmYWN0b3JpZXM7CisJaW50IG47CisKKwlVbnJlZ2lzdGVyRmFjdG9yeUxpc3RUaHJlYWQoU3RyaW5nIG5hbWUsIElDVVNlcnZpY2Ugc2VydmljZSwgbG9uZyBkZWxheSwgRmFjdG9yeVtdIGZhY3RvcmllcywgVGVzdExvZyBsb2cpIHsKKwkgICAgc3VwZXIoIlVOUkVHICIgKyBuYW1lLCBzZXJ2aWNlLCBkZWxheSwgbG9nKTsKKwkgICAgCisJICAgIHRoaXMuZmFjdG9yaWVzID0gZmFjdG9yaWVzOworCX0KKworCXB1YmxpYyB2b2lkIGl0ZXJhdGUoKSB7CisJICAgIGlmIChuIDwgZmFjdG9yaWVzLmxlbmd0aCkgeworCQlGYWN0b3J5IGYgPSBmYWN0b3JpZXNbbisrXTsKKwkJYm9vbGVhbiBzdWNjZXNzID0gc2VydmljZS51bnJlZ2lzdGVyRmFjdG9yeShmKTsKKwkJaWYgKGxvZ2dpbmcoKSkgbG9nbG4oImZhY3Rvcnk6ICIgKyBmICsgKHN1Y2Nlc3MgPyAiIHN1Y2NlZWRlZC4iIDogIiAqKiogZmFpbGVkLiIpKTsKKwkgICAgfQorCX0KKyAgICB9CisKKworICAgIHN0YXRpYyBjbGFzcyBHZXRWaXNpYmxlVGhyZWFkIGV4dGVuZHMgVGVzdFRocmVhZCB7CisJR2V0VmlzaWJsZVRocmVhZChTdHJpbmcgbmFtZSwgSUNVU2VydmljZSBzZXJ2aWNlLCBsb25nIGRlbGF5LCBUZXN0TG9nIGxvZykgeworCSAgICBzdXBlcigiVklTICIgKyBuYW1lLCBzZXJ2aWNlLCBkZWxheSwgbG9nKTsKKwl9CisKKwlwcm90ZWN0ZWQgdm9pZCBpdGVyYXRlKCkgeworCSAgICBTZXQgaWRzID0gc2VydmljZS5nZXRWaXNpYmxlSURzKCk7CisJICAgIEl0ZXJhdG9yIGl0ZXIgPSBpZHMuaXRlcmF0b3IoKTsKKwkgICAgaW50IG4gPSAxMDsKKwkgICAgd2hpbGUgKC0tbiA+PSAwICYmIGl0ZXIuaGFzTmV4dCgpKSB7CisJCVN0cmluZyBpZCA9IChTdHJpbmcpaXRlci5uZXh0KCk7CisJCU9iamVjdCByZXN1bHQgPSBzZXJ2aWNlLmdldChpZCk7CisJCWxvZ2xuKCJpdGVyOiAiICsgbiArICIgaWQ6ICIgKyBpZCArICIgcmVzdWx0OiAiICsgcmVzdWx0KTsKKwkgICAgfQorCX0KKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgR2V0RGlzcGxheVRocmVhZCBleHRlbmRzIFRlc3RUaHJlYWQgeworCUxvY2FsZSBsb2NhbGU7CisKKwlHZXREaXNwbGF5VGhyZWFkKFN0cmluZyBuYW1lLCBJQ1VTZXJ2aWNlIHNlcnZpY2UsIGxvbmcgZGVsYXksIExvY2FsZSBsb2NhbGUsIFRlc3RMb2cgbG9nKSB7CisJICAgIHN1cGVyKCJESVMgIiArIG5hbWUsIHNlcnZpY2UsIGRlbGF5LCBsb2cpOworCisJICAgIHRoaXMubG9jYWxlID0gbG9jYWxlOworCX0KKworCXByb3RlY3RlZCB2b2lkIGl0ZXJhdGUoKSB7CisJICAgIE1hcCBuYW1lcyA9IHNlcnZpY2UuZ2V0RGlzcGxheU5hbWVzKGxvY2FsZSk7CisJICAgIEl0ZXJhdG9yIGl0ZXIgPSBuYW1lcy5lbnRyeVNldCgpLml0ZXJhdG9yKCk7CisJICAgIGludCBuID0gMTA7CisJICAgIHdoaWxlICgtLW4gPj0gMCAmJiBpdGVyLmhhc05leHQoKSkgeworCQlFbnRyeSBlID0gKEVudHJ5KWl0ZXIubmV4dCgpOworCQlTdHJpbmcgZG5hbWUgPSAoU3RyaW5nKWUuZ2V0S2V5KCk7CisJCVN0cmluZyBpZCA9IChTdHJpbmcpZS5nZXRWYWx1ZSgpOworCQlPYmplY3QgcmVzdWx0ID0gc2VydmljZS5nZXQoaWQpOworCQlpZiAobG9nZ2luZygpKSBsb2dsbigiIGl0ZXI6ICIgKyBuICsgCisJCQkJICAgICAiIGRuYW1lOiAiICsgZG5hbWUgKyAKKwkJCQkgICAgICIgaWQ6ICIgKyBpZCArIAorCQkJCSAgICAgIiByZXN1bHQ6ICIgKyByZXN1bHQpOworCSAgICB9CisJfQorICAgIH0KKworICAgIHN0YXRpYyBjbGFzcyBHZXRUaHJlYWQgZXh0ZW5kcyBUZXN0VGhyZWFkIHsKKwlwcml2YXRlIFN0cmluZ1tdIGFjdHVhbElEOworCisJR2V0VGhyZWFkKFN0cmluZyBuYW1lLCBJQ1VTZXJ2aWNlIHNlcnZpY2UsIGxvbmcgZGVsYXksIFRlc3RMb2cgbG9nKSB7CisJICAgIHN1cGVyKCJHRVQgIiArIG5hbWUsIHNlcnZpY2UsIGRlbGF5LCBsb2cpOworCisJICAgIGFjdHVhbElEID0gbmV3IFN0cmluZ1sxXTsKKwl9CisKKwlwcm90ZWN0ZWQgdm9pZCBpdGVyYXRlKCkgeworCSAgICBTdHJpbmcgaWQgPSBnZXRDTFYoKTsKKwkgICAgT2JqZWN0IG8gPSBzZXJ2aWNlLmdldChpZCwgYWN0dWFsSUQpOworCSAgICBpZiAobG9nZ2luZygpICYmIG8gIT0gbnVsbCkgeworCQlsb2dsbigiIGlkOiAiICsgaWQgKyAiIGFjdHVhbDogIiArIGFjdHVhbElEWzBdICsgIiByZXN1bHQ6ICIgKyBvKTsKKwkgICAgfQorCX0KKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgR2V0TGlzdFRocmVhZCBleHRlbmRzIFRlc3RUaHJlYWQgeworCXByaXZhdGUgZmluYWwgU3RyaW5nW10gbGlzdDsKKwlwcml2YXRlIGludCBuOworCisJR2V0TGlzdFRocmVhZChTdHJpbmcgbmFtZSwgSUNVU2VydmljZSBzZXJ2aWNlLCBsb25nIGRlbGF5LCBTdHJpbmdbXSBsaXN0LCBUZXN0TG9nIGxvZykgeworCSAgICBzdXBlcigiR0VUTCAiICsgbmFtZSwgc2VydmljZSwgZGVsYXksIGxvZyk7CisKKwkgICAgdGhpcy5saXN0ID0gbGlzdDsKKwl9CisKKwlwcm90ZWN0ZWQgdm9pZCBpdGVyYXRlKCkgeworCSAgICBpZiAoLS1uIDwgMCkgeworCQluID0gbGlzdC5sZW5ndGggLSAxOworCSAgICB9CisJICAgIFN0cmluZyBpZCA9IGxpc3Rbbl07CisJICAgIE9iamVjdCBvID0gc2VydmljZS5nZXQoaWQpOworCSAgICBpZiAobG9nZ2luZygpKSB7CisJCWxvZ2xuKCIgaWQ6ICIgKyBpZCArICIgcmVzdWx0OiAiICsgbyk7CisJICAgIH0KKwl9CisgICAgfQorCisgICAgLy8gcmV0dXJuIGEgY29sbGVjdGlvbiBvZiB1bmlxdWUgZmFjdG9yaWVzLCBtaWdodCBiZSBmZXdlciB0aGFuIHJlcXVlc3RlZAorICAgIENvbGxlY3Rpb24gZ2V0RmFjdG9yeUNvbGxlY3Rpb24oaW50IHJlcXVlc3RlZCkgeworCVNldCBsb2NhbGVzID0gbmV3IEhhc2hTZXQoKTsKKwlmb3IgKGludCBpID0gMDsgaSA8IHJlcXVlc3RlZDsgKytpKSB7CisJICAgIGxvY2FsZXMuYWRkKGdldENMVigpKTsKKwl9CisJTGlzdCBmYWN0b3JpZXMgPSBuZXcgQXJyYXlMaXN0KGxvY2FsZXMuc2l6ZSgpKTsKKwlJdGVyYXRvciBpdGVyID0gbG9jYWxlcy5pdGVyYXRvcigpOworCXdoaWxlIChpdGVyLmhhc05leHQoKSkgeworCSAgICBmYWN0b3JpZXMuYWRkKG5ldyBUZXN0RmFjdG9yeSgoU3RyaW5nKWl0ZXIubmV4dCgpKSk7CisJfQorCXJldHVybiBmYWN0b3JpZXM7CisgICAgfQorCisgICAgdm9pZCByZWdpc3RlckZhY3RvcmllcyhJQ1VTZXJ2aWNlIHNlcnZpY2UsIENvbGxlY3Rpb24gYykgeworCUl0ZXJhdG9yIGl0ZXIgPSBjLml0ZXJhdG9yKCk7CisJd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisJICAgIHNlcnZpY2UucmVnaXN0ZXJGYWN0b3J5KChGYWN0b3J5KWl0ZXIubmV4dCgpKTsKKwl9CisgICAgfQorCisgICAgSUNVU2VydmljZSBzdGFibGVTZXJ2aWNlKCkgeworCWlmIChzdGFibGVTZXJ2aWNlID09IG51bGwpIHsKKwkgICAgc3RhYmxlU2VydmljZSA9IG5ldyBJQ1VMb2NhbGVTZXJ2aWNlKCk7CisJICAgIHJlZ2lzdGVyRmFjdG9yaWVzKHN0YWJsZVNlcnZpY2UsIGdldEZhY3RvcnlDb2xsZWN0aW9uKDUwKSk7CisJfQorCXJldHVybiBzdGFibGVTZXJ2aWNlOworICAgIH0KKyAgICBwcml2YXRlIElDVVNlcnZpY2Ugc3RhYmxlU2VydmljZTsKKworICAgIC8vIHJ1biBtdWx0aXBsZSBnZXQgb24gYSBzdGFibGUgc2VydmljZQorICAgIHB1YmxpYyB2b2lkIFRlc3QwMF9Db25jdXJyZW50R2V0KCkgeworCWZvcihpbnQgaSA9IDA7IGkgPCAxMDsgKytpKSB7CisJICAgIG5ldyBHZXRUaHJlYWQoIlsiICsgSW50ZWdlci50b1N0cmluZyhpKSArICJdIiwgIHN0YWJsZVNlcnZpY2UoKSwgMCwgdGhpcykuc3RhcnQoKTsKKwl9CisJcnVuVGhyZWFkcygpOworCWlmIChQUklOVFNUQVRTKSBTeXN0ZW0ub3V0LnByaW50bG4oc3RhYmxlU2VydmljZS5zdGF0cygpKTsKKyAgICB9CisKKyAgICAvLyBydW4gbXVsdGlwbGUgZ2V0VmlzaWJsZUlEIG9uIGEgc3RhYmxlIHNlcnZpY2UKKyAgICBwdWJsaWMgdm9pZCBUZXN0MDFfQ29uY3VycmVudEdldFZpc2libGUoKSB7CisJZm9yKGludCBpID0gMDsgaSA8IDEwOyArK2kpIHsKKwkgICAgbmV3IEdldFZpc2libGVUaHJlYWQoIlsiICsgSW50ZWdlci50b1N0cmluZyhpKSArICJdIiwgIHN0YWJsZVNlcnZpY2UoKSwgMCwgdGhpcykuc3RhcnQoKTsKKwl9CisJcnVuVGhyZWFkcygpOworCWlmIChQUklOVFNUQVRTKSBTeXN0ZW0ub3V0LnByaW50bG4oc3RhYmxlU2VydmljZS5zdGF0cygpKTsKKyAgICB9CisKKyAgICAvLyBydW4gbXVsdGlwbGUgZ2V0RGlzcGxheU5hbWUgb24gYSBzdGFibGUgc2VydmljZQorICAgIHB1YmxpYyB2b2lkIFRlc3QwMl9Db25jdXJyZW50R2V0RGlzcGxheSgpIHsKKwlTdHJpbmdbXSBsb2NhbGVOYW1lcyA9IHsKKwkgICAgImVuIiwgImVzIiwgImRlIiwgImZyIiwgInpoIiwgIml0IiwgIm5vIiwgInN2IgorCX07CisJZm9yKGludCBpID0gMDsgaSA8IGxvY2FsZU5hbWVzLmxlbmd0aDsgKytpKSB7CisJICAgIFN0cmluZyBsb2NhbGUgPSBsb2NhbGVOYW1lc1tpXTsKKwkgICAgbmV3IEdldERpc3BsYXlUaHJlYWQoIlsiICsgbG9jYWxlICsgIl0iLCAgCisJCQkJIHN0YWJsZVNlcnZpY2UoKSwgCisJCQkJIDAsCisJCQkJIExvY2FsZVV0aWxpdHkuZ2V0TG9jYWxlRnJvbU5hbWUobG9jYWxlKSwKKwkJCQkgdGhpcykuc3RhcnQoKTsKKwl9CisJcnVuVGhyZWFkcygpOworCWlmIChQUklOVFNUQVRTKSBTeXN0ZW0ub3V0LnByaW50bG4oc3RhYmxlU2VydmljZS5zdGF0cygpKTsKKyAgICB9CisKKyAgICAvLyBydW4gcmVnaXN0ZXIvdW5yZWdpc3RlciBvbiBhIHNlcnZpY2UKKyAgICBwdWJsaWMgdm9pZCBUZXN0MDNfQ29uY3VycmVudFJlZ1VucmVnKCkgeworCUlDVVNlcnZpY2Ugc2VydmljZSA9IG5ldyBJQ1VMb2NhbGVTZXJ2aWNlKCk7CisJZm9yIChpbnQgaSA9IDA7IGkgPCA1OyArK2kpIHsKKwkgICAgbmV3IFJlZ2lzdGVyRmFjdG9yeVRocmVhZCgiWyIgKyBpICsgIl0iLCBzZXJ2aWNlLCAwLCB0aGlzKS5zdGFydCgpOworCX0KKwlmb3IgKGludCBpID0gMDsgaSA8IDU7ICsraSkgeworCSAgICBuZXcgVW5yZWdpc3RlckZhY3RvcnlUaHJlYWQoIlsiICsgaSArICJdIiwgc2VydmljZSwgMCwgdGhpcykuc3RhcnQoKTsKKwl9CisJcnVuVGhyZWFkcygpOworCWlmIChQUklOVFNUQVRTKSBTeXN0ZW0ub3V0LnByaW50bG4oc2VydmljZS5zdGF0cygpKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdDA0X1dpdGhlcmluZ1NlcnZpY2UoKSB7CisJSUNVU2VydmljZSBzZXJ2aWNlID0gbmV3IElDVUxvY2FsZVNlcnZpY2UoKTsKKworCUNvbGxlY3Rpb24gZmMgPSBnZXRGYWN0b3J5Q29sbGVjdGlvbig1MCk7CisJcmVnaXN0ZXJGYWN0b3JpZXMoc2VydmljZSwgZmMpOworCisJRmFjdG9yeVtdIGZhY3RvcmllcyA9IChGYWN0b3J5W10pZmMudG9BcnJheShuZXcgRmFjdG9yeVtmYy5zaXplKCldKTsKKwlDb21wYXJhdG9yIGNvbXAgPSBuZXcgQ29tcGFyYXRvcigpIHsKKwkJcHVibGljIGludCBjb21wYXJlKE9iamVjdCBsaHMsIE9iamVjdCByaHMpIHsKKwkJICAgIHJldHVybiBsaHMudG9TdHJpbmcoKS5jb21wYXJlVG8ocmhzLnRvU3RyaW5nKCkpOworCQl9CisJICAgIH07CisJQXJyYXlzLnNvcnQoZmFjdG9yaWVzLCBjb21wKTsKKworCW5ldyBHZXRUaHJlYWQoIiIsIHNlcnZpY2UsIDAsIHRoaXMpLnN0YXJ0KCk7CisJbmV3IFVucmVnaXN0ZXJGYWN0b3J5TGlzdFRocmVhZCgiIiwgc2VydmljZSwgMywgZmFjdG9yaWVzLCB0aGlzKS5zdGFydCgpOworCisJcnVuVGhyZWFkcygyMDAwKTsKKwlpZiAoUFJJTlRTVEFUUykgU3lzdGVtLm91dC5wcmludGxuKHNlcnZpY2Uuc3RhdHMoKSk7CisgICAgfQorCQorICAgIC8vICJhbGwgaGVsbCBicmVha3MgbG9vc2UiCisgICAgLy8gb25lIHJlZ2lzdGVyIGFuZCBvbmUgdW5yZWdpc3RlciB0aHJlYWQsIGRlbGF5IDUwMG1zCisgICAgLy8gdHdvIGRpc3BsYXkgdGhyZWFkcyB3aXRoIGRpZmZlcmVudCBsb2NhbGVzLCBkZWxheSA1MDBtczsKKyAgICAvLyBvbmUgdmlzaWJsZSBpZCB0aHJlYWQsIGRlbGF5IDUwbXMKKyAgICAvLyBmaWZ0ZWVuIGdldCB0aHJlYWRzLCBkZWxheSAwCisgICAgLy8gcnVuIGZvciB0ZW4gc2Vjb25kcworICAgIHB1YmxpYyB2b2lkIFRlc3QwNV9Db25jdXJyZW50RXZlcnl0aGluZygpIHsKKwlJQ1VTZXJ2aWNlIHNlcnZpY2UgPSBuZXcgSUNVTG9jYWxlU2VydmljZSgpOworCisJbmV3IFJlZ2lzdGVyRmFjdG9yeVRocmVhZCgiIiwgc2VydmljZSwgNTAwLCB0aGlzKS5zdGFydCgpOworCisJZm9yKGludCBpID0gMDsgaSA8IDE1OyArK2kpIHsKKwkgICAgbmV3IEdldFRocmVhZCgiWyIgKyBJbnRlZ2VyLnRvU3RyaW5nKGkpICsgIl0iLCBzZXJ2aWNlLCAwLCB0aGlzKS5zdGFydCgpOworCX0KKworCW5ldyBHZXRWaXNpYmxlVGhyZWFkKCIiLCAgc2VydmljZSwgNTAsIHRoaXMpLnN0YXJ0KCk7CisKKwlTdHJpbmdbXSBsb2NhbGVOYW1lcyA9IHsKKwkgICAgImVuIiwgImRlIgorCX07CisJZm9yKGludCBpID0gMDsgaSA8IGxvY2FsZU5hbWVzLmxlbmd0aDsgKytpKSB7CisJICAgIFN0cmluZyBsb2NhbGUgPSBsb2NhbGVOYW1lc1tpXTsKKwkgICAgbmV3IEdldERpc3BsYXlUaHJlYWQoIlsiICsgbG9jYWxlICsgIl0iLCAgCisJCQkJIHN0YWJsZVNlcnZpY2UoKSwgCisJCQkJIDUwMCwKKwkJCQkgTG9jYWxlVXRpbGl0eS5nZXRMb2NhbGVGcm9tTmFtZShsb2NhbGUpLAorCQkJCSB0aGlzKS5zdGFydCgpOworCX0KKworCW5ldyBVbnJlZ2lzdGVyRmFjdG9yeVRocmVhZCgiIiwgc2VydmljZSwgNTAwLCB0aGlzKS5zdGFydCgpOworCisJLy8geW93ZWVlISEhCisJcnVuVGhyZWFkcygxMDAwMCk7CisJaWYgKFBSSU5UU1RBVFMpIFN5c3RlbS5vdXQucHJpbnRsbihzZXJ2aWNlLnN0YXRzKCkpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1RyaWVUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UcmllVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjI5YzA1OTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UcmllVGVzdC5qYXZhCkBAIC0wLDAgKzEsNzM4IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVHJpZVRlc3QuamF2YSx2ICQgCisqICREYXRlOiAyMDAyLzA0LzAyIDIxOjAwOjA4ICQgCisqICRSZXZpc2lvbjogMS40ICQKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVHJpZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkludFRyaWU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5DaGFyVHJpZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBqYXZhLmlvLkJ5dGVBcnJheUlucHV0U3RyZWFtOworCisvKioKKyogVGVzdGluZyBjbGFzcyBmb3IgVHJpZS4gVGVzdHMgaGVyZSB3aWxsIGJlIHNpbXBsZSwgc2luY2UgYm90aCBDaGFyVHJpZSBhbmQgCisqIEludFRyaWUgYXJlIHZlcnkgc2ltaWxhciBhbmQgYXJlIGhlYXZpbHkgdXNlZCBpbiBvdGhlciBwYXJ0cyBvZiBJQ1U0Si4KKyogQ29kZXMgdXNpbmcgVHJpZXMgYXJlIGV4cGVjdGVkIHRvIGhhdmUgZGV0YWlsZWQgdGVzdHMuCisqIEBhdXRob3IgU3luIFdlZSBRdWVrCisqIEBzaW5jZSByZWxlYXNlIDIuMSBKYW4gMDEgMjAwMgorKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBUcmllVGVzdCBleHRlbmRzIFRlc3RGbXdrIAoreyAKKyAgICAvLyBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgCisgICAgLyoqCisgICAgKiBDb25zdHJ1Y3RvcgorICAgICovCisgICAgcHVibGljIFRyaWVUZXN0KCkKKyAgICB7CisgICAgfQorICAgICAgCisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnW10pIAorICAgIHsKKyAgICAgICAgVHJpZVRlc3QgdGVzdCA9IG5ldyBUcmllVGVzdCgpOworICAgICAgICB0cnkgeworCSAgICAgICAgdGVzdC5ydW4oYXJnKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgCXRlc3QuZXJybG4oIkVycm9yIHRlc3RpbmcgdHJpZXRlc3QiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0aW5nIHRoZSBjb25zdHJ1Y3RvcnMgb2YgdGhlIFRyaWVzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEluaXQoKSAKKyAgICB7CisgICAgCWJ5dGUgYXJyYXlbXSA9IG5ldyBieXRlW0lOVF9UUklFX0RBVEFfLmxlbmd0aCA8PCAxXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBJTlRfVFJJRV9EQVRBXy5sZW5ndGg7IGkgKyspIHsKKyAgICAgICAgICAgIGFycmF5W2kgPDwgMV0gPSAoYnl0ZSkoKElOVF9UUklFX0RBVEFfW2ldID4+IDgpICYgMHhGRik7CisgICAgICAgICAgICBhcnJheVsoaSA8PCAxKSArIDFdID0gKGJ5dGUpKElOVF9UUklFX0RBVEFfW2ldICYgMHhGRik7CisgICAgICAgIH0KKyAgICAgICAgQnl0ZUFycmF5SW5wdXRTdHJlYW0gaW5wdXRTdHJlYW0gICAgPSBuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheSk7CisgICAgICAgIEludERhdGFNYW5pcHVsYXRlICAgIGRhdGFtYW5pcHVsYXRlID0gbmV3IEludERhdGFNYW5pcHVsYXRlKCk7CisgICAgICAgIC8vIGNoYXJ0cmllIHNob3VsZCBmYWlsIHdpdGggaW50IGRhdGEKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgCUNoYXJUcmllIGNoYXJ0cmllID0gbmV3IENoYXJUcmllKGlucHV0U3RyZWFtLCBkYXRhbWFuaXB1bGF0ZSk7CisgICAgICAgIAllcnJsbigiQ2hhclRyaWUgc2hvdWxkIGZhaWwgd2l0aCBJbnQgZGF0YSBkdXJpbmcgY29uc3RydWN0aW9uIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIH0KKyAgICAgICAgLy8gaW50dHJpZSBzaG91bGQgcGFzcyB3aXRoIGludCBkYXRhCisgICAgICAgIHRyeSB7CisgICAgICAgIAlpbnB1dFN0cmVhbS5yZXNldCgpOworICAgICAgICAgICAgSW50VHJpZSBtX3RyaWVfID0gbmV3IEludFRyaWUoaW5wdXRTdHJlYW0sIGRhdGFtYW5pcHVsYXRlKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQgcmVhZGluZyBJbnRUcmllIGRhdGEiKTsKKyAgICAgICAgfQkKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEludFZhbHVlcygpCisgICAgeworICAgICAgICBieXRlIGFycmF5W10gPSBuZXcgYnl0ZVtJTlRfVFJJRV9EQVRBXy5sZW5ndGggPDwgMV07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgSU5UX1RSSUVfREFUQV8ubGVuZ3RoOyBpICsrKSB7CisgICAgICAgICAgICBhcnJheVtpIDw8IDFdID0gKGJ5dGUpKChJTlRfVFJJRV9EQVRBX1tpXSA+PiA4KSAmIDB4RkYpOworICAgICAgICAgICAgYXJyYXlbKGkgPDwgMSkgKyAxXSA9IChieXRlKShJTlRfVFJJRV9EQVRBX1tpXSAmIDB4RkYpOworICAgICAgICB9CisgICAgICAgIEJ5dGVBcnJheUlucHV0U3RyZWFtIGlucHV0U3RyZWFtID0gbmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKGFycmF5KTsKKyAgICAgICAgSW50VHJpZSB0cmllID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHRyaWUgPSBuZXcgSW50VHJpZShpbnB1dFN0cmVhbSwgbmV3IEludERhdGFNYW5pcHVsYXRlKCkpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWxlZCByZWFkaW5nIHRyaWUgZGF0YSIpOworICAgICAgICB9CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgU1RSSU5HXzFfLmxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgVVRGMTYuYXBwZW5kKGJ1ZmZlciwgU1RSSU5HXzFfW2ldKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgc3RyICAgICAgPSBidWZmZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaW50ICAgIHZhbHVlc1tdID0gVkFMVUVfMV87CisgICAgICAgIGludGVybmFsVGVzdEludFZhbHVlcyh0cmllLCBzdHIsIHZhbHVlcyk7CisgICAgICAgIAorICAgICAgICAvLyB0ZXN0aW5nIGludmFsaWQgY29kZXBvaW50cworICAgICAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICAgICAgcmVzdWx0ID0gdHJpZS5nZXRDb2RlUG9pbnRWYWx1ZSgweDExMDAwMCk7CisgICAgICAgIGlmIChyZXN1bHQgIT0gMCkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBFeHBlY3RlZCB2YWx1ZSBmb3IgaWxsZWdhbCBjb2RlcG9pbnQgc2hvdWxkIGJlIDAiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAweEZGRkY7IGkgKyspIHsKKyAgICAJCWlmICh0cmllLmdldEJNUFZhbHVlKChjaGFyKWkpICE9IHRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoaSkpIHsKKyAgICAJCQllcnJsbigiRm9yIEJNUCBjb2RlcG9pbnQsIGdldEJNUFZhbHVlIHNob3VsZCBiZSB0aGUgc2FtZSAiICsKKyAgICAJCQkgICAgICAgImFzIGdldENvZGVwb2ludFZhbHVlIik7CisgICAgCQl9CisgICAgCX0KKyAgICAJZm9yIChpbnQgaSA9IDB4MTAwMDA7IGkgPCAweDEwZmZmZjsgaSArKykgeworICAgIAkJY2hhciBsZWFkID0gVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZShpKTsKKyAgICAJCWNoYXIgdHJhaWwgPSBVVEYxNi5nZXRUcmFpbFN1cnJvZ2F0ZShpKTsKKyAgICAJCWludCB2YWx1ZSA9IHRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoaSk7CisgICAgCQlpZiAodmFsdWUgIT0gdHJpZS5nZXRTdXJyb2dhdGVWYWx1ZShsZWFkLCB0cmFpbCkgfHwKKyAgICAJCSAgICB2YWx1ZSAhPSB0cmllLmdldFRyYWlsVmFsdWUodHJpZS5nZXRMZWFkVmFsdWUobGVhZCksIAorICAgIAkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFpbCkpIHsKKyAgICAJCSAgICBlcnJsbigiRm9yIE5vbi1CTVAgY29kZXBvaW50cywgZ2V0U3Vycm9nYXRlVmFsdWUgc2hvdWxkIGJlICIKKyAgICAJCSAgICAgICAgICArICJ0aGUgc2FtZSBzIGdldENvZGVwb2ludFZhbHVlIGFuZCBnZXRUcmFpbFZhbHVlIik7CisgICAgCQl9CQkKKyAgICAJfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2hhclZhbHVlcygpCisgICAgeworICAgIAlDaGFyVHJpZSB0cmllID0gbnVsbDsKKyAgICAJdHJ5IHsKKwkJIAl0cmllID0gVUNoYXJhY3RlclByb3BlcnR5LmdldEluc3RhbmNlKCkubV90cmllXzsKKyAgICAJfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAJCWVycmxuKCJFcnJvciBjcmVhdGluZyB1Y2hhcmFjdGVyIHRyaWUiKTsKKyAgICAJfQorICAgIAkKKyAgICAJZm9yIChpbnQgaSA9IDA7IGkgPCAweEZGRkY7IGkgKyspIHsKKyAgICAJCWlmICh0cmllLmdldEJNUFZhbHVlKChjaGFyKWkpICE9IHRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoaSkpIHsKKyAgICAJCQllcnJsbigiRm9yIEJNUCBjb2RlcG9pbnQsIGdldEJNUFZhbHVlIHNob3VsZCBiZSB0aGUgc2FtZSAiICsKKyAgICAJCQkgICAgICAgImFzIGdldENvZGVwb2ludFZhbHVlIik7CisgICAgCQl9CisgICAgCX0KKyAgICAJZm9yIChpbnQgaSA9IDB4MTAwMDA7IGkgPCAweDEwZmZmZjsgaSArKykgeworICAgIAkJY2hhciBsZWFkID0gVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZShpKTsKKyAgICAJCWNoYXIgdHJhaWwgPSBVVEYxNi5nZXRUcmFpbFN1cnJvZ2F0ZShpKTsKKyAgICAJCWNoYXIgdmFsdWUgPSB0cmllLmdldENvZGVQb2ludFZhbHVlKGkpOworICAgIAkJaWYgKHZhbHVlICE9IHRyaWUuZ2V0U3Vycm9nYXRlVmFsdWUobGVhZCwgdHJhaWwpIHx8CisgICAgCQkgICAgdmFsdWUgIT0gdHJpZS5nZXRUcmFpbFZhbHVlKHRyaWUuZ2V0TGVhZFZhbHVlKGxlYWQpLCAKKyAgICAJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhaWwpKSB7CisgICAgCQkgICAgZXJybG4oIkZvciBOb24tQk1QIGNvZGVwb2ludHMsIGdldFN1cnJvZ2F0ZVZhbHVlIHNob3VsZCBiZSAiCisgICAgCQkgICAgICAgICAgKyAidGhlIHNhbWUgcyBnZXRDb2RlcG9pbnRWYWx1ZSBhbmQgZ2V0VHJhaWxWYWx1ZSIpOworICAgIAkJfQkJCisgICAgCX0KKyAgICB9CisgICAgCisgICAgLy8gcHJpdmF0ZSBjbGFzcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBJbnREYXRhTWFuaXB1bGF0ZSBpbXBsZW1lbnRzIFRyaWUuRGF0YU1hbmlwdWxhdGUKKyAgICB7CisgICAgICAgIHB1YmxpYyBpbnQgZ2V0Rm9sZGluZ09mZnNldChpbnQgZGF0YSkgCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBkYXRhID4+IDE2OworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAKKyAgICAvLyB0cmllIGRhdGEsIGdlbmVyYXRlZCBmcm9tIGljdTRjCisgICAgcHJpdmF0ZSBmaW5hbCBjaGFyIElOVF9UUklFX0RBVEFfW10gPSB7CisgICAgMHg1NDcyLCAweDY5NjUsIDB4MCwgMHgxMjUsIDB4MCwgMHg4YzAsIDB4MCwgMHgxOGMsIDB4MCwgMHg4LCAweDgsIDB4OCwgCisweDgsIDB4ZiwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgCisweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAKKzB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIAorMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgCisweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAKKzB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIAorMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgCisweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAKKzB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIAorMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgCisweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAKKzB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIAorMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgCisweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAKKzB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIAorMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgCisweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAKKzB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIAorMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgCisweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAKKzB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIAorMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgCisweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAKKzB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIAorMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgCisweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAKKzB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIAorMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgCisweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAKKzB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIAorMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgCisweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAKKzB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIAorMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgCisweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAKKzB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIAorMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgCisweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAKKzB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIAorMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgCisweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAKKzB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIAorMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgCisweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAKKzB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIAorMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgCisweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAKKzB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIAorMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgCisweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAKKzB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIAorMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgCisweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAKKzB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIAorMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgCisweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAKKzB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIAorMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgCisweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAKKzB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIAorMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgCisweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAKKzB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIAorMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgCisweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAKKzB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIAorMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgCisweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAKKzB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIAorMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgCisweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAKKzB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIAorMHgxNywgMHgxZSwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgCisweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAKKzB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAorMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgCisweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAKKzB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAorMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgCisweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAKKzB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAorMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgCisweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAKKzB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAorMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgCisweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAKKzB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAorMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgCisweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAKKzB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAorMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgCisweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAKKzB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAorMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgCisweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAKKzB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAorMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgCisweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAKKzB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAorMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgCisweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAKKzB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAorMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgCisweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAKKzB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAorMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgCisweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAKKzB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAorMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgCisweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDRkLCAweDRmLCAweDRmLCAweDRmLCAKKzB4NGYsIDB4NGYsIDB4NTMsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAorMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMiwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgCisweDViLCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAKKzB4MjksIDB4MjksIDB4MjksIDB4MjksIDB4MjksIDB4MjksIDB4MjksIDB4MjksIDB4MjksIDB4MjksIDB4MjksIDB4MjksIAorMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgCisweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAKKzB4MjksIDB4MjksIDB4MjksIDB4MjksIDB4MjksIDB4MjksIDB4MjksIDB4MjksIDB4MjksIDB4MjksIDB4MjksIDB4MjksIAorMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgCisweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAKKzB4MjksIDB4MjksIDB4MjksIDB4MjksIDB4MjksIDB4MjksIDB4MjksIDB4MjksIDB4MjksIDB4MjksIDB4MjksIDB4MjksIAorMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgCisweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAKKzB4MjksIDB4MjksIDB4MjksIDB4MjksIDB4MjksIDB4MjksIDB4MjksIDB4MjksIDB4MjksIDB4MjksIDB4MjksIDB4MjksIAorMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgCisweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDI5LCAweDJlLCAKKzB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIAorMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgCisweDMyLCAweDMyLCAweDMyLCAweDMyLCAweDMyLCAweDMyLCAweDMyLCAweDMyLCAweDMyLCAweDMyLCAweDMyLCAweDMyLCAKKzB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIAorMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgCisweDMyLCAweDMyLCAweDMyLCAweDMyLCAweDMyLCAweDMyLCAweDMyLCAweDMyLCAweDMyLCAweDMyLCAweDMyLCAweDMyLCAKKzB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIAorMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgCisweDMyLCAweDMyLCAweDMyLCAweDMyLCAweDMyLCAweDMyLCAweDMyLCAweDMyLCAweDMyLCAweDMyLCAweDMyLCAweDMyLCAKKzB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIAorMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgCisweDMyLCAweDMyLCAweDMyLCAweDMyLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAweDIwLCAKKzB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIDB4MjAsIAorMHgyMCwgMHgyMCwgMHgyMiwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgMHgyOSwgCisweDMyLCAweDMyLCAweDMyLCAweDMyLCAweDMyLCAweDMyLCAweDMyLCAweDMyLCAweDMyLCAweDMyLCAweDMyLCAweDMyLCAKKzB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIDB4MzIsIAorMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgMHgzMiwgCisweDMyLCAweDMyLCAweDMyLCAweDMyLCAweDM2LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAKKzB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIAorMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgMHgxNywgCisweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAweDE3LCAKKzB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIDB4MTcsIAorMHgxNywgMHgxNywgMHgzZCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDQ1LCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgxMjM0LCAweDAsIDB4MTIzNCwgCisweDAsIDB4MTIzNCwgMHgwLCAweDEyMzQsIDB4MCwgMHgxMjM0LCAweDAsIDB4MTIzNCwgMHgwLCAweDEyMzQsIDB4MCwgMHgxMjM0LCAKKzB4MCwgMHgxMjM0LCAweDAsIDB4MTIzNCwgMHgwLCAweDEyMzQsIDB4MCwgMHgxMjM0LCAweDAsIDB4MTIzNCwgMHgwLCAweDEyMzQsIAorMHgwLCAweDEyMzQsIDB4MCwgMHgxMjM0LCAweDAsIDB4MTIzNCwgMHgwLCAweDEyMzQsIDB4MCwgMHgxMjM0LCAweDAsIDB4MTIzNCwgCisweDAsIDB4MTIzNCwgMHgwLCAweDEyMzQsIDB4MCwgMHgxMjM0LCAweDAsIDB4MTIzNCwgMHgwLCAweDEyMzQsIDB4MCwgMHgxMjM0LCAKKzB4MCwgMHgxMjM0LCAweDAsIDB4MTIzNCwgMHgwLCAweDEyMzQsIDB4MCwgMHgxMjM0LCAweDAsIDB4MTIzNCwgMHgwLCAweDEyMzQsIAorMHgwLCAweDEyMzQsIDB4MCwgMHgxMjM0LCAweDAsIDB4MTIzNCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDYxNjIsIDB4MCwgMHg2MTYyLCAKKzB4MCwgMHg2MTYyLCAweDAsIDB4NjE2MiwgMHgwLCAweDYxNjIsIDB4MCwgMHg2MTYyLCAweDAsIDB4NjE2MiwgMHgwLCAweDYxNjIsIAorMHgwLCAweDYxNjIsIDB4MCwgMHg2MTYyLCAweDAsIDB4NjE2MiwgMHgwLCAweDYxNjIsIDB4MCwgMHg2MTYyLCAweDAsIDB4NjE2MiwgCisweDAsIDB4NjE2MiwgMHgwLCAweDYxNjIsIDB4MCwgMHg2MTYyLCAweDAsIDB4NjE2MiwgMHgwLCAweDYxNjIsIDB4MCwgMHg2MTYyLCAKKzB4MCwgMHg2MTYyLCAweDAsIDB4NjE2MiwgMHgwLCAweDYxNjIsIDB4MCwgMHg2MTYyLCAweDAsIDB4NjE2MiwgMHgwLCAweDYxNjIsIAorMHgwLCAweDYxNjIsIDB4MCwgMHg2MTYyLCAweDAsIDB4NjE2MiwgMHgwLCAweDYxNjIsIDB4MCwgMHg2MTYyLCAweDAsIDB4NjE2MiwgCisweDAsIDB4NjE2MiwgMHgwLCAweDYxNjIsIDB4MCwgMHgzMTMyLCAweDAsIDB4MzEzMiwgMHgwLCAweDMxMzIsIDB4MCwgMHgzMTMyLCAKKzB4MCwgMHgzMTMyLCAweDAsIDB4MzEzMiwgMHgwLCAweDMxMzIsIDB4MCwgMHgzMTMyLCAweDAsIDB4MzEzMiwgMHgwLCAweDMxMzIsIAorMHgwLCAweDMxMzIsIDB4MCwgMHgzMTMyLCAweDAsIDB4MzEzMiwgMHgwLCAweDMxMzIsIDB4MCwgMHgzMTMyLCAweDAsIDB4MzEzMiwgCisweDAsIDB4MzEzMiwgMHgwLCAweDMxMzIsIDB4MCwgMHgzMTMyLCAweDAsIDB4MzEzMiwgMHgwLCAweDMxMzIsIDB4MCwgMHgzMTMyLCAKKzB4MCwgMHgzMTMyLCAweDAsIDB4MzEzMiwgMHgwLCAweDMxMzIsIDB4MCwgMHgzMTMyLCAweDAsIDB4MzEzMiwgMHgwLCAweDMxMzIsIAorMHgwLCAweDMxMzIsIDB4MCwgMHgzMTMyLCAweDAsIDB4MzEzMiwgMHgwLCAweDMxMzIsIDB4MCwgMHgzMTMyLCAweDAsIDB4MzEzMiwgCisweDAsIDB4MzEzMiwgMHgwLCAweDMxMzIsIDB4MCwgMHgyNywgMHgwLCAweDI3LCAweDAsIDB4MjcsIDB4MCwgMHgyNywgCisweDAsIDB4MjcsIDB4MCwgMHgyNywgMHgwLCAweDI3LCAweDAsIDB4MjcsIDB4MCwgMHgyNywgMHgwLCAweDI3LCAKKzB4MCwgMHgyNywgMHgwLCAweDI3LCAweDAsIDB4MjcsIDB4MCwgMHgyNywgMHgwLCAweDI3LCAweDAsIDB4MjcsIAorMHgwLCAweDI3LCAweDAsIDB4MjcsIDB4MCwgMHgyNywgMHgwLCAweDI3LCAweDAsIDB4MjcsIDB4MCwgMHgyNywgCisweDAsIDB4MjcsIDB4MCwgMHgyNywgMHgwLCAweDI3LCAweDAsIDB4MjcsIDB4MCwgMHgyNywgMHgwLCAweDI3LCAKKzB4MCwgMHgyNywgMHgwLCAweDI3LCAweDAsIDB4MjcsIDB4MCwgMHgyNywgMHgwLCAweDI3LCAweDAsIDB4MjcsIAorMHgwLCAweDI3LCAweDAsIDB4MjcsIDB4MCwgMHgxLCAweDAsIDB4MSwgMHgwLCAweDEsIDB4MCwgMHgxLCAKKzB4MCwgMHgxLCAweDAsIDB4MSwgMHgwLCAweDEsIDB4MCwgMHgxLCAweDAsIDB4MSwgMHgwLCAweDEsIAorMHgwLCAweDEsIDB4MCwgMHgxLCAweDAsIDB4MSwgMHgwLCAweDEsIDB4MCwgMHgxLCAweDAsIDB4MSwgCisweDAsIDB4MSwgMHgwLCAweDEsIDB4MCwgMHgxLCAweDAsIDB4MSwgMHgwLCAweDEsIDB4MCwgMHgxLCAKKzB4MCwgMHgxLCAweDAsIDB4MSwgMHgwLCAweDEsIDB4MCwgMHgxLCAweDAsIDB4MSwgMHgwLCAweDEsIAorMHgwLCAweDEsIDB4MCwgMHgxLCAweDAsIDB4MSwgMHgwLCAweDEsIDB4MCwgMHgxLCAweDAsIDB4MSwgCisweDAsIDB4MSwgMHgwLCAweDYxNjIsIDB4MCwgMHg2MTYyLCAweDAsIDB4NjE2MiwgMHgwLCAweDYxNjIsIDB4MCwgMHg2MTYyLCAKKzB4MCwgMHg2MTYyLCAweDAsIDB4NjE2MiwgMHgwLCAweDYxNjIsIDB4MCwgMHg2MTYyLCAweDAsIDB4NjE2MiwgMHgwLCAweDYxNjIsIAorMHgwLCAweDYxNjIsIDB4MCwgMHg2MTYyLCAweDAsIDB4NjE2MiwgMHgwLCAweDYxNjIsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweGYsIAorMHgwLCAweDEwLCAweDAsIDB4MTAsIDB4MCwgMHgxMSwgMHgwLCAweDEyLCAweDAsIDB4MTIsIDB4MCwgMHgxMiwgCisweDAsIDB4MTIsIDB4MCwgMHgxMiwgMHgwLCAweDEyLCAweDAsIDB4MTIsIDB4MCwgMHgxMiwgMHgwLCAweDEyLCAKKzB4MCwgMHgxMiwgMHgwLCAweDEyLCAweDAsIDB4MTIsIDB4MCwgMHgxMiwgMHgwLCAweDEyLCAweDAsIDB4MTIsIAorMHgwLCAweDEyLCAweDAsIDB4MTIsIDB4MCwgMHgxMiwgMHgwLCAweDEyLCAweDAsIDB4MTIsIDB4MCwgMHgxMiwgCisweDAsIDB4MTIsIDB4MCwgMHgxMiwgMHgwLCAweDEyLCAweDAsIDB4MTIsIDB4ODIwLCAweDEsIDB4ODIwLCAweDEsIAorMHg4MjAsIDB4MSwgMHg4MjAsIDB4MSwgMHg4NDAsIDB4NjE2MywgMHg4NjAsIDB4NjE2MiwgMHg4NjAsIDB4NjE2MiwgMHg4NjAsIDB4NjE2MiwgCisweDg2MCwgMHg2MTYyLCAweDg2MCwgMHg2MTYyLCAweDg2MCwgMHg2MTYyLCAweDg2MCwgMHg2MTYyLCAweDg2MCwgMHg2MTYyLCAweDg2MCwgMHg2MTYyLCAKKzB4ODYwLCAweDYxNjIsIDB4ODYwLCAweDYxNjIsIDB4ODYwLCAweDYxNjIsIDB4ODYwLCAweDYxNjIsIDB4ODYwLCAweDYxNjIsIDB4ODYwLCAweDYxNjIsIAorMHg4NjAsIDB4NjE2MiwgMHg4NjAsIDB4NjE2MiwgMHg4NjAsIDB4NjE2MiwgMHg4NjAsIDB4NjE2MiwgMHg4NjAsIDB4NjE2MiwgMHg4NjAsIDB4NjE2MiwgCisweDg2MCwgMHg2MTYyLCAweDg2MCwgMHg2MTYyLCAweDg2MCwgMHg2MTYyLCAweDg2MCwgMHg2MTYyLCAweDg2MCwgMHg2MTYyLCAweDg2MCwgMHg2MTYyLCAKKzB4ODYwLCAweDYxNjIsIDB4ODYwLCAweDYxNjIsIDB4ODYwLCAweDYxNjIsIDB4ODYwLCAweDYxNjIsIDB4ODYwLCAweDYxNjIsIDB4ODYwLCAweDYxNjIsIAorMHg4NjAsIDB4NjE2MiwgMHg4NjAsIDB4NjE2MiwgMHg4NjAsIDB4NjE2MiwgMHg4ODAsIDB4NjE2MiwgMHgwLCAweDMxMzIsIDB4MCwgMHgzMTMyLCAKKzB4MCwgMHgzMTMyLCAweDAsIDB4MzEzMiwgMHgwLCAweDMxMzIsIDB4MCwgMHgzMTMyLCAweDAsIDB4MzEzMiwgMHgwLCAweDMxMzIsIAorMHgwLCAweDMxMzIsIDB4MCwgMHgzMTMyLCAweDAsIDB4MzEzMiwgMHgwLCAweDMxMzIsIDB4MCwgMHgzMTMyLCAweDAsIDB4MzEzMiwgCisweDhhMCwgMHgxZiwgMHgwLCAweDI3LCAweDAsIDB4MjcsIDB4MCwgMHgyNywgMHgwLCAweDI3LCAweDAsIDB4MjcsIAorMHgwLCAweDI3LCAweDAsIDB4MjcsIDB4MCwgMHgyNywgMHgwLCAweDI3LCAweDAsIDB4MjcsIDB4MCwgMHgyNywgCisweDAsIDB4MjcsIDB4MCwgMHgyNywgMHgwLCAweDI3LCAweDAsIDB4MjcsIDB4MCwgMHgyNywgMHgwLCAweDI3LCAKKzB4MCwgMHgyNywgMHgwLCAweDI3LCAweDAsIDB4MjcsIDB4MCwgMHgyNywgMHgwLCAweDI3LCAweDAsIDB4MjcsIAorMHgwLCAweDI3LCAweDAsIDB4MjcsIDB4MCwgMHgyNywgMHgwLCAweDI3LCAweDAsIDB4MjcsIDB4MCwgMHgyNywgCisweDAsIDB4MjcsIDB4MCwgMHgyNywgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgCisweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAKKzB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIAorMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAKKyAgICB9OworCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgU1RSSU5HXzFfW10gPSB7MCwgMHgyMCwgMHhhNywgMHgzNDAwLCAweDlmYTYsIDB4ZGFkYSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlZWVlLCAweDExMTExLCAweDQ0NDQ0LCAweGYwMDAzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGYwMDA0LCAweGYwMDA2LCAweGYwMDA3LCAweGYwMDIwfTsKKyAgICBwcml2YXRlIGZpbmFsIGludCBWQUxVRV8xX1tdID0gezAsIDB4MTIzNCwgMCwgMHg2MTYyLCAweDMxMzIsIDB4MjcsIDEsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2MTYyLCAwLCAweGYsIDB4MTAsIDB4MTEsIDB4MTIsIDB9OworICAgIAorICAgIC8vIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIAorICAgIHByaXZhdGUgdm9pZCBpbnRlcm5hbFRlc3RJbnRWYWx1ZXMoSW50VHJpZSB0cmllLCBTdHJpbmcgc3RyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB2YWx1ZXNbXSkgCisgICAgeworICAgICAgICAvLyB0cnkgZm9yd2FyZCAKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgaW50IHZhbHVlaW5kZXggPSAwOworICAgICAgICB3aGlsZSAoY291bnQgPCBzdHIubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGludCB2YWx1ZTsKKyAgICAgICAgICAgIGNoYXIgYyA9IHN0ci5jaGFyQXQoY291bnQgKyspOworICAgICAgICAgICAgY2hhciBjMiA9IFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjKSAmJiBjb3VudCA8IHN0ci5sZW5ndGgoKSAmJgorICAgICAgICAgICAgICAgICAgICAgIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoc3RyLmNoYXJBdChjb3VudCkpCisgICAgICAgICAgICAgICAgICAgICAgPyBzdHIuY2hhckF0KGNvdW50ICsrKSA6IDA7CisgICAgICAgICAgICBpZiAoYzIgIT0gMCkgeworICAgICAgICAgICAgICAgIHZhbHVlID0gdHJpZS5nZXRTdXJyb2dhdGVWYWx1ZShjLCBjMik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IHRyaWUuZ2V0Qk1QVmFsdWUoYyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodmFsdWUgIT0gdmFsdWVzW3ZhbHVlaW5kZXhdKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yOiBFeHBlY3RlZCB2YWx1ZSBmb3IgMHgiICsgSW50ZWdlci50b0hleFN0cmluZyhjKSArCisgICAgICAgICAgICAgICAgICAgICAgIiBhbmQgMHgiICsgSW50ZWdlci50b0hleFN0cmluZyhjMikgKyAiIHNob3VsZCBiZSAiICsgCisgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzW3ZhbHVlaW5kZXhdICsgIiBub3QgIiArIHZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZhbHVlID0gdHJpZS5nZXRMZWFkVmFsdWUoYyk7CisgICAgICAgICAgICBpZiAoYzIgIT0gMCkgeworICAgICAgICAgICAgICAgIHZhbHVlID0gdHJpZS5nZXRUcmFpbFZhbHVlKHZhbHVlLCBjMik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodmFsdWUgIT0gdmFsdWVzW3ZhbHVlaW5kZXhdKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yOiBFeHBlY3RlZCB2YWx1ZSBmb3IgMHgiICsgSW50ZWdlci50b0hleFN0cmluZyhjKSArCisgICAgICAgICAgICAgICAgICAgICAgIiBhbmQgMHgiICsgSW50ZWdlci50b0hleFN0cmluZyhjMikgKyAiIHNob3VsZCBiZSAiICsgCisgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzW3ZhbHVlaW5kZXhdICsgIiBub3QgIiArIHZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjMiE9MCkgeworICAgICAgICAgICAgICAgIGludCBjb2RlcG9pbnQgPSBVQ2hhcmFjdGVyLmdldENvZGVQb2ludChjLCBjMik7CisgICAgICAgICAgICAgICAgdmFsdWUgPSB0cmllLmdldENvZGVQb2ludFZhbHVlKGNvZGVwb2ludCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IHRyaWUuZ2V0Qk1QVmFsdWUoYyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodmFsdWUgIT0gdmFsdWVzW3ZhbHVlaW5kZXhdKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yOiBFeHBlY3RlZCB2YWx1ZSBmb3IgMHgiICsgSW50ZWdlci50b0hleFN0cmluZyhjKSArCisgICAgICAgICAgICAgICAgICAgICAgIiBhbmQgMHgiICsgSW50ZWdlci50b0hleFN0cmluZyhjMikgKyAiIHNob3VsZCBiZSAiICsgCisgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzW3ZhbHVlaW5kZXhdICsgIiBub3QgIiArIHZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZhbHVlaW5kZXggKys7CisgICAgICAgIH0KKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1ZlcnNpb25JbmZvVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVmVyc2lvbkluZm9UZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDRjZThlOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1ZlcnNpb25JbmZvVGVzdC5qYXZhCkBAIC0wLDAgKzEsMzI4IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVmVyc2lvbkluZm9UZXN0LmphdmEsdiAkIAorKiAkRGF0ZTogMjAwMi8wMy8yNyAwMTo1OTo0NiAkIAorKiAkUmV2aXNpb246IDEuNSAkCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5WZXJzaW9uSW5mbzsKKworCisvKioKKyogVGVzdGluZyBjbGFzcyBmb3IgVmVyc2lvbkluZm8KKyogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyogQHNpbmNlIHJlbGVhc2UgMi4xIE1hcmNoIDAxIDIwMDIKKyovCitwdWJsaWMgZmluYWwgY2xhc3MgVmVyc2lvbkluZm9UZXN0IGV4dGVuZHMgVGVzdEZtd2sgCit7IAorICAgIC8vIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAKKyAgICAvKioKKyAgICAqIENvbnN0cnVjdG9yCisgICAgKi8KKyAgICBwdWJsaWMgVmVyc2lvbkluZm9UZXN0KCkKKyAgICB7CisgICAgfQorCisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnW10pIAorICAgIHsKKyAgICAgICAgVmVyc2lvbkluZm9UZXN0IHRlc3QgPSBuZXcgVmVyc2lvbkluZm9UZXN0KCk7CisgICAgICAgIHRyeSB7CisJICAgICAgICB0ZXN0LnJ1bihhcmcpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAJdGVzdC5lcnJsbigiRXJyb3IgdGVzdGluZyBWZXJzaW9uSW5mbyIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgdGhhdCB0aGUgaW5zdGFudGlhdGlvbiB3b3JrcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RJbnN0YW5jZSgpCisgICAgeworICAgIAlWZXJzaW9uSW5mbyB2ZXJzaW9uOworICAgIAlmb3IgKGludCBpID0gMDsgaSA8IElOU1RBTkNFX0lOVkFMSURfU1RSSU5HXy5sZW5ndGg7IGkgKyspIHsKKyAgICAJCXRyeSB7CisgICAgCQkJdmVyc2lvbiA9IAorICAgIAkJCSAgICAgICAgVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UoSU5TVEFOQ0VfSU5WQUxJRF9TVFJJTkdfW2ldKTsKKyAgICAJCQllcnJsbigiXCIiICsgSU5TVEFOQ0VfSU5WQUxJRF9TVFJJTkdfW2ldICsgCisgICAgCQkJICAgICAgIlwiIHNob3VsZCBwcm9kdWNlIGFuIGV4Y2VwdGlvbiIpOworICAgIAkJfSBjYXRjaCAoUnVudGltZUV4Y2VwdGlvbiBlKSB7CisgICAgCQl9CisgICAgCX0KKyAgICAJZm9yIChpbnQgaSA9IDA7IGkgPCBJTlNUQU5DRV9WQUxJRF9TVFJJTkdfLmxlbmd0aDsgaSArKykgeworCSAgICAJdHJ5IHsKKwkgICAgCQl2ZXJzaW9uID0gVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UoSU5TVEFOQ0VfVkFMSURfU1RSSU5HX1tpXSk7CisJICAgIAl9IGNhdGNoIChSdW50aW1lRXhjZXB0aW9uIGUpIHsKKwkgICAgCQllcnJsbigiXCIiICsgSU5TVEFOQ0VfVkFMSURfU1RSSU5HX1tpXSArIAorCSAgICAJCSAgICAgICJcIiBzaG91bGQgcHJvZHVjZSBhbiB2YWxpZCB2ZXJzaW9uIik7CisJICAgIAl9CisgICAgCX0KKyAgICAJZm9yIChpbnQgaSA9IDA7IGkgPCBJTlNUQU5DRV9JTlZBTElEX0lOVF8ubGVuZ3RoOyBpICsrKSB7CisJICAgIAl0cnkgeworCSAgICAJCXZlcnNpb24gPSBnZXRJbnN0YW5jZShJTlNUQU5DRV9JTlZBTElEX0lOVF9baV0pOworCSAgICAJCWVycmxuKCJpbnZhbGlkIGludHMgc2hvdWxkIHByb2R1Y2UgYW4gZXhjZXB0aW9uIik7CisJICAgIAl9IGNhdGNoIChSdW50aW1lRXhjZXB0aW9uIGUpIHsKKwkgICAgCX0KKyAgICAJfQorICAgIAlmb3IgKGludCBpID0gMDsgaSA8IElOU1RBTkNFX1ZBTElEX0lOVF8ubGVuZ3RoOyBpICsrKSB7CisJICAgIAl0cnkgeworCSAgICAJCXZlcnNpb24gPSBnZXRJbnN0YW5jZShJTlNUQU5DRV9WQUxJRF9JTlRfW2ldKTsKKwkgICAgCX0gY2F0Y2ggKFJ1bnRpbWVFeGNlcHRpb24gZSkgeworCSAgICAJCWVycmxuKCJ2YWxpZCBpbnRzIHNob3VsZCBub3QgcHJvZHVjZSBhbiBleGNlcHRpb24iKTsKKwkgICAgCX0KKyAgICAJfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoYXQgdGhlIGNvbXBhcmlzb24gd29ya3MKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcGFyZSgpCisgICAgeworICAgIAlmb3IgKGludCBpID0gMDsgaSA8IENPTVBBUkVfTk9UX0VRVUFMX1NUUklOR18ubGVuZ3RoOyBpICs9IDIpIHsKKyAgICAJCVZlcnNpb25JbmZvIHYxID0gCisgICAgCQkgICAgICAgICAgICBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZShDT01QQVJFX05PVF9FUVVBTF9TVFJJTkdfW2ldKTsKKyAgICAJCVZlcnNpb25JbmZvIHYyID0gCisgICAgCQkgICAgICAgIFZlcnNpb25JbmZvLmdldEluc3RhbmNlKENPTVBBUkVfTk9UX0VRVUFMX1NUUklOR19baSArIDFdKTsKKyAgICAJCWlmICh2MS5jb21wYXJlVG8odjIpID09IDApIHsKKyAgICAJCQllcnJsbihDT01QQVJFX05PVF9FUVVBTF9TVFJJTkdfW2ldICsgIiBzaG91bGQgbm90IGVxdWFsICIgKworICAgIAkJCSAgICAgIENPTVBBUkVfTk9UX0VRVUFMX1NUUklOR19baSArIDFdKTsKKyAgICAJCX0KKyAgICAJfQorICAgIAlmb3IgKGludCBpID0gMDsgaSA8IENPTVBBUkVfTk9UX0VRVUFMX0lOVF8ubGVuZ3RoOyBpICs9IDIpIHsKKyAgICAJCVZlcnNpb25JbmZvIHYxID0gZ2V0SW5zdGFuY2UoQ09NUEFSRV9OT1RfRVFVQUxfSU5UX1tpXSk7CisgICAgCQlWZXJzaW9uSW5mbyB2MiA9IGdldEluc3RhbmNlKENPTVBBUkVfTk9UX0VRVUFMX0lOVF9baSArIDFdKTsKKyAgICAJCWlmICh2MS5jb21wYXJlVG8odjIpID09IDApIHsKKyAgICAJCQllcnJsbihDT01QQVJFX05PVF9FUVVBTF9JTlRfW2ldICsgIiBzaG91bGQgbm90IGVxdWFsICIgKworICAgIAkJCSAgICAgIENPTVBBUkVfTk9UX0VRVUFMX0lOVF9baSArIDFdKTsKKyAgICAJCX0KKyAgICAJfQorICAgIAlmb3IgKGludCBpID0gMDsgaSA8IENPTVBBUkVfRVFVQUxfU1RSSU5HXy5sZW5ndGggLSAxOyBpICsrKSB7CisgICAgCQlWZXJzaW9uSW5mbyB2MSA9IAorICAgIAkJICAgICAgICAgICAgVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UoQ09NUEFSRV9FUVVBTF9TVFJJTkdfW2ldKTsKKyAgICAJCVZlcnNpb25JbmZvIHYyID0gCisgICAgCQkgICAgICAgIFZlcnNpb25JbmZvLmdldEluc3RhbmNlKENPTVBBUkVfRVFVQUxfU1RSSU5HX1tpICsgMV0pOworICAgIAkJaWYgKHYxLmNvbXBhcmVUbyh2MikgIT0gMCkgeworICAgIAkJCWVycmxuKENPTVBBUkVfRVFVQUxfU1RSSU5HX1tpXSArICIgc2hvdWxkIGVxdWFsICIgKworICAgIAkJCSAgICAgIENPTVBBUkVfRVFVQUxfU1RSSU5HX1tpICsgMV0pOworICAgIAkJfQorICAgIAl9CisgICAgCWZvciAoaW50IGkgPSAwOyBpIDwgQ09NUEFSRV9FUVVBTF9JTlRfLmxlbmd0aCAtIDE7IGkgKyspIHsKKyAgICAJCVZlcnNpb25JbmZvIHYxID0gZ2V0SW5zdGFuY2UoQ09NUEFSRV9FUVVBTF9JTlRfW2ldKTsKKyAgICAJCVZlcnNpb25JbmZvIHYyID0gZ2V0SW5zdGFuY2UoQ09NUEFSRV9FUVVBTF9JTlRfW2kgKyAxXSk7CisgICAgCQlpZiAodjEuY29tcGFyZVRvKHYyKSAhPSAwKSB7CisgICAgCQkJZXJybG4oQ09NUEFSRV9FUVVBTF9JTlRfW2ldICsgIiBzaG91bGQgZXF1YWwgIiArCisgICAgCQkJICAgICAgQ09NUEFSRV9FUVVBTF9JTlRfW2kgKyAxXSk7CisgICAgCQl9CisgICAgCX0KKyAgICAJZm9yIChpbnQgaSA9IDA7IGkgPCBDT01QQVJFX0xFU1NfLmxlbmd0aCAtIDE7IGkgKyspIHsKKyAgICAJCVZlcnNpb25JbmZvIHYxID0gVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UoQ09NUEFSRV9MRVNTX1tpXSk7CisgICAgCQlWZXJzaW9uSW5mbyB2MiA9IFZlcnNpb25JbmZvLmdldEluc3RhbmNlKENPTVBBUkVfTEVTU19baSArIDFdKTsKKyAgICAJCWlmICh2MS5jb21wYXJlVG8odjIpID49IDApIHsKKyAgICAJCQllcnJsbihDT01QQVJFX0xFU1NfW2ldICsgIiBzaG91bGQgYmUgbGVzcyB0aGFuICIgKyAKKyAgICAJCQkgICAgICBDT01QQVJFX0xFU1NfW2kgKyAxXSk7CisgICAgCQl9CisgICAgCQlpZiAodjIuY29tcGFyZVRvKHYxKSA8PSAwKSB7CisgICAgCQkJZXJybG4oQ09NUEFSRV9MRVNTX1tpICsgMV0gKyAiIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gIiArIAorICAgIAkJCSAgICAgIENPTVBBUkVfTEVTU19baV0pOworICAgIAkJfQorICAgIAl9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgdGhhdCB0aGUgZ2V0dGVyIGZ1bmN0aW9uIHdvcmtzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEdldHRlcigpCisgICAgeworICAgIAlmb3IgKGludCBpID0gMDsgaSA8IEdFVF9TVFJJTkdfLmxlbmd0aDsgaSArKykgeworICAgIAkJVmVyc2lvbkluZm8gdiA9IFZlcnNpb25JbmZvLmdldEluc3RhbmNlKEdFVF9TVFJJTkdfW2ldKTsKKyAgICAJCWlmICh2LmdldE1ham9yKCkgIT0gR0VUX1JFU1VMVF9baSA8PCAyXSB8fAorICAgIAkJICAgIHYuZ2V0TWlub3IoKSAhPSBHRVRfUkVTVUxUX1soaSA8PCAyKSArIDFdIHx8CisgICAgCQkgICAgdi5nZXRNaWxsaSgpICE9IEdFVF9SRVNVTFRfWyhpIDw8IDIpICsgMl0gfHwKKyAgICAJCSAgICB2LmdldE1pY3JvKCkgIT0gR0VUX1JFU1VMVF9bKGkgPDwgMikgKyAzXSkgeworICAgIAkJICAgIGVycmxuKEdFVF9TVFJJTkdfW2ldICsgIiBzaG91bGQgcmV0dXJuIG1ham9yPSIgKyAKKyAgICAJCSAgICAgICAgICBHRVRfUkVTVUxUX1tpIDw8IDJdICsgIiBtaW5vcj0iICsgCisgICAgCQkgICAgICAgICAgR0VUX1JFU1VMVF9bKGkgPDwgMikgKyAxXSArICIgbWlsbGk9IiArIAorICAgIAkJICAgICAgICAgIEdFVF9SRVNVTFRfWyhpIDw8IDIpICsgMl0gKyAiIG1pY3JvPSIgKworICAgIAkJICAgICAgICAgIEdFVF9SRVNVTFRfWyhpIDw8IDIpICsgM10pOyAgCisgICAgCQl9CisgICAgCQl2ID0gZ2V0SW5zdGFuY2UoR0VUX0lOVF9baV0pOworICAgIAkJaWYgKHYuZ2V0TWFqb3IoKSAhPSBHRVRfUkVTVUxUX1tpIDw8IDJdIHx8CisgICAgCQkgICAgdi5nZXRNaW5vcigpICE9IEdFVF9SRVNVTFRfWyhpIDw8IDIpICsgMV0gfHwKKyAgICAJCSAgICB2LmdldE1pbGxpKCkgIT0gR0VUX1JFU1VMVF9bKGkgPDwgMikgKyAyXSB8fAorICAgIAkJICAgIHYuZ2V0TWljcm8oKSAhPSBHRVRfUkVTVUxUX1soaSA8PCAyKSArIDNdKSB7CisgICAgCQkgICAgZXJybG4oR0VUX1NUUklOR19baV0gKyAiIHNob3VsZCByZXR1cm4gbWFqb3I9IiArIAorICAgIAkJICAgICAgICAgIEdFVF9SRVNVTFRfW2kgPDwgMl0gKyAiIG1pbm9yPSIgKyAKKyAgICAJCSAgICAgICAgICBHRVRfUkVTVUxUX1soaSA8PCAyKSArIDFdICsgIiBtaWxsaT0iICsgCisgICAgCQkgICAgICAgICAgR0VUX1JFU1VMVF9bKGkgPDwgMikgKyAyXSArICIgbWljcm89IiArCisgICAgCQkgICAgICAgICAgR0VUX1JFU1VMVF9bKGkgPDwgMikgKyAzXSk7ICAKKyAgICAJCX0KKyAgICAJfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0IHRvU3RyaW5nKCkKKyAgICAgKi8KKwlwdWJsaWMgdm9pZCBUZXN0dG9TdHJpbmcoKSAKKwl7CisJCWZvciAoaW50IGkgPSAwOyBpIDwgVE9TVFJJTkdfU1RSSU5HXy5sZW5ndGg7IGkgKyspIHsKKyAgICAJCVZlcnNpb25JbmZvIHYgPSBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZShUT1NUUklOR19TVFJJTkdfW2ldKTsKKyAgICAJCWlmICghdi50b1N0cmluZygpLmVxdWFscyhUT1NUUklOR19SRVNVTFRfW2ldKSkgeworICAgIAkgICAgCWVycmxuKCJ0b1N0cmluZygpIGZvciAiICsgVE9TVFJJTkdfU1RSSU5HX1tpXSArIAorICAgIAkgICAgCSAgICAgICIgc2hvdWxkIHByb2R1Y2UgIiArIFRPU1RSSU5HX1JFU1VMVF9baV0pOworICAgIAkJfQorICAgIAkJdiA9IGdldEluc3RhbmNlKFRPU1RSSU5HX0lOVF9baV0pOworICAgIAkJaWYgKCF2LnRvU3RyaW5nKCkuZXF1YWxzKFRPU1RSSU5HX1JFU1VMVF9baV0pKSB7CisgICAgCSAgICAJZXJybG4oInRvU3RyaW5nKCkgZm9yICIgKyBUT1NUUklOR19JTlRfW2ldICsgCisgICAgCSAgICAJICAgICAgIiBzaG91bGQgcHJvZHVjZSAiICsgVE9TVFJJTkdfUkVTVUxUX1tpXSk7CisgICAgCQl9CisJCX0KKwl9CisJCisJLy8gcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisJCisJLyoqCisJICogaW50IGFycmF5IHZlcnNpb25pbmZvIGNyZWF0aW9uCisJICovCisJcHJpdmF0ZSBzdGF0aWMgVmVyc2lvbkluZm8gZ2V0SW5zdGFuY2UoaW50IGRhdGFbXSkKKwl7CisJCXN3aXRjaCAoZGF0YS5sZW5ndGgpIHsKKwkgICAgCWNhc2UgMToKKwkgICAgCQlyZXR1cm4gVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UoZGF0YVswXSk7CisJICAgIAljYXNlIDI6CisJICAgIAkJcmV0dXJuIFZlcnNpb25JbmZvLmdldEluc3RhbmNlKGRhdGFbMF0sIGRhdGFbMV0pOworCSAgICAJY2FzZSAzOgorCSAgICAJCXJldHVybiBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZShkYXRhWzBdLCBkYXRhWzFdLCBkYXRhWzJdKTsKKwkgICAgCWRlZmF1bHQ6CisJICAgIAkJcmV0dXJuIFZlcnNpb25JbmZvLmdldEluc3RhbmNlKGRhdGFbMF0sIGRhdGFbMV0sIGRhdGFbMl0sIAorCSAgICAJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhWzNdKTsKKwkJfQorCX0KKwkKKwkvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCQorCS8qKgorCSAqIFRlc3QgaW5zdGFuY2UgZGF0YQorCSAqLworCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBJTlNUQU5DRV9JTlZBTElEX1NUUklOR19bXSA9IHsKKwkJImEiLAorCQkiLTEiLAorCQkiLTEuMCIsCisJCSItMS4wLjAiLAorCQkiLTEuMC4wLjAiLAorCQkiMC4tMSIsCisJCSIwLjAuLTEiLAorCQkiMC4wLjAuLTEiLAorCQkiMjU2IiwKKwkJIjI1Ni4wIiwKKwkJIjI1Ni4wLjAiLAorCQkiMjU2LjAuMC4wIiwKKwkJIjAuMjU2IiwKKwkJIjAuMC4yNTYiLAorCQkiMC4wLjAuMjU2IiwKKwkJIjEuMi4zLjQuNSIKKwl9OworCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBJTlNUQU5DRV9WQUxJRF9TVFJJTkdfW10gPSB7CisJCSIyNTUiLAorCQkiMjU1LjI1NSIsCisJCSIyNTUuMjU1LjI1NSIsCisJCSIyNTUuMjU1LjI1NS4yNTUiCisJfTsKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSU5TVEFOQ0VfSU5WQUxJRF9JTlRfW11bXSA9IHsKKwkJey0xfSwKKwkJey0xLCAwfSwKKwkJey0xLCAwLCAwfSwKKwkJey0xLCAwLCAwLCAwfSwKKwkJezAsIC0xfSwKKwkJezAsIDAsIC0xfSwKKwkJezAsIDAsIDAsIC0xfSwKKwkJezI1Nn0sCisJCXsyNTYsIDB9LAorCQl7MjU2LCAwLCAwfSwKKwkJezI1NiwgMCwgMCwgMH0sCisJCXswLCAyNTZ9LAorCQl7MCwgMCwgMjU2fSwKKwkJezAsIDAsIDAsIDI1Nn0sCisJfTsKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSU5TVEFOQ0VfVkFMSURfSU5UX1tdW10gPSB7CisJCXsyNTV9LAorCQl7MjU1LCAyNTV9LAorCQl7MjU1LCAyNTUsIDI1NX0sCisJCXsyNTUsIDI1NSwgMjU1LCAyNTV9CisJfTsKKwkKKwkvKioKKwkgKiBUZXN0IGNvbXBhcmUgZGF0YQorCSAqLworCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDT01QQVJFX05PVF9FUVVBTF9TVFJJTkdfW10gPSB7CisJCSIyLjAuMC4wIiwgIjMuMC4wLjAiCisJfTsKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09NUEFSRV9OT1RfRVFVQUxfSU5UX1tdW10gPSB7CisJCXsyLCAwLCAwLCAwfSwgezMsIDAsIDAsIDB9CisJfTsKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09NUEFSRV9FUVVBTF9TVFJJTkdfW10gPSB7CisJCSIyLjAuMC4wIiwgIjIuMC4wIiwgIjIuMCIsICIyIgorCX07CisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENPTVBBUkVfRVFVQUxfSU5UX1tdW10gPSB7CisJCXsyfSwgezIsIDB9LCB7MiwgMCwgMH0sIHsyLCAwLCAwLCAwfQkKKwl9OworCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDT01QQVJFX0xFU1NfW10gPSB7CisJCSIwIiwgIjAuMC4wLjEiLCAiMC4wLjEiLCAiMC4xIiwgIjEiLCAiMiIsICIyLjEiLCAiMi4xLjEiLCAiMi4xLjEuMSIKKwl9OworCQorCS8qKgorCSAqIFRlc3QgR2V0dGVyIGRhdGEKKwkgKi8KKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgR0VUX1NUUklOR19bXSA9IHsKKwkJIjAiLAorCQkiMS4xIiwKKwkJIjIuMS4yNTUiLAorCQkiMy4xLjI1NS4xMDAiCisJfTsKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgR0VUX0lOVF9bXVtdID0geworCQl7MH0sCisJCXsxLCAxfSwKKwkJezIsIDEsIDI1NX0sCisJCXszLCAxLCAyNTUsIDEwMH0KKwl9OworCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBHRVRfUkVTVUxUX1tdID0geworCQkwLCAwLCAwLCAwLAorCQkxLCAxLCAwLCAwLAorCQkyLCAxLCAyNTUsIDAsCisJCTMsIDEsIDI1NSwgMTAwCisJfTsKKwkKKwkvKioKKwkgKiBUZXN0IHRvU3RyaW5nIGRhdGEKKwkgKi8KKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVE9TVFJJTkdfU1RSSU5HX1tdID0geworCQkiMCIsCisJCSIxLjEiLAorCQkiMi4xLjI1NSIsCisJCSIzLjEuMjU1LjEwMCIJCisJfTsKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVE9TVFJJTkdfSU5UX1tdW10gPSB7CisJCXswfSwKKwkJezEsIDF9LAorCQl7MiwgMSwgMjU1fSwKKwkJezMsIDEsIDI1NSwgMTAwfQorCX07CisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFRPU1RSSU5HX1JFU1VMVF9bXSA9IHsKKwkJIjAuMC4wLjAiLAorCQkiMS4xLjAuMCIsCisJCSIyLjEuMjU1LjAiLAorCQkiMy4xLjI1NS4xMDAiCQorCX07Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2NvbXByZXNzaW9uL0NvbXByZXNzaW9uVGFibGVHZW5lcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9jb21wcmVzc2lvbi9Db21wcmVzc2lvblRhYmxlR2VuZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjRmMmNjYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9jb21wcmVzc2lvbi9Db21wcmVzc2lvblRhYmxlR2VuZXJhdG9yLmphdmEKQEAgLTAsMCArMSwyMzEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9jb21wcmVzc2lvbi9Db21wcmVzc2lvblRhYmxlR2VuZXJhdG9yLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDU6MjUgJCAKKyAqICRSZXZpc2lvbjogMS4zICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5jb21wcmVzc2lvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CisKKy8qKgorICogVXRpbGl0eSBjbGFzcyB0byBnZW5lcmF0ZSB0aGUgdGFibGVzIHVzZWQgYnkgdGhlIFNDU1UgaW50ZXJmYWNlIGFuZAorICogdGhlIFVuaWNvZGVDb21wcmVzc29yIGNsYXNzLgorICoKKyAqIEBhdXRob3IgU3RlcGhlbiBGLiBCb290aAorICogQHZlcnNpb24gMS4wIDA4IE1hciA5OQorICovCitjbGFzcyBDb21wcmVzc2lvblRhYmxlR2VuZXJhdG9yCit7CisgICAgLy8gZHVwbGljYXRlIG9mIGNvbnN0YW50cyBpbiBTQ1NVCisKKyAgICBmaW5hbCBzdGF0aWMgaW50IExBVElOSU5ERVggICAgICAgICAgICAgICAgICA9IDB4Rjk7CisgICAgZmluYWwgc3RhdGljIGludCBJUEFFWFRFTlNJT05JTkRFWCAgICAgICAgICAgPSAweEZBOworICAgIGZpbmFsIHN0YXRpYyBpbnQgR1JFRUtJTkRFWCAgICAgICAgICAgICAgICAgID0gMHhGQjsKKyAgICBmaW5hbCBzdGF0aWMgaW50IEFSTUVOSUFOSU5ERVggICAgICAgICAgICAgICA9IDB4RkM7CisgICAgZmluYWwgc3RhdGljIGludCBISVJBR0FOQUlOREVYICAgICAgICAgICAgICAgPSAweEZEOworICAgIGZpbmFsIHN0YXRpYyBpbnQgS0FUQUtBTkFJTkRFWCAgICAgICAgICAgICAgID0gMHhGRTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IEhBTEZXSURUSEtBVEFLQU5BSU5ERVggICAgICA9IDB4RkY7CisKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkVYICAgICAgICAgICAgICAgICAgICA9IDB4MEI7CisgICAgZmluYWwgc3RhdGljIGludCBTUkVTRVJWRUQgICAgICAgICAgICAgICAgICAgPSAweDBDOyAgLy8gcmVzZXJ2ZWQgdmFsdWUKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNRVU9URVUgICAgICAgICAgICAgICAgICAgICA9IDB4MEU7CisgICAgZmluYWwgc3RhdGljIGludCBTQ0hBTkdFVSAgICAgICAgICAgICAgICAgICAgPSAweDBGOworCisgICAgZmluYWwgc3RhdGljIGludCBTUVVPVEUwICAgICAgICAgICAgICAgICAgICAgPSAweDAxOworICAgIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFMSAgICAgICAgICAgICAgICAgICAgID0gMHgwMjsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNRVU9URTIgICAgICAgICAgICAgICAgICAgICA9IDB4MDM7CisgICAgZmluYWwgc3RhdGljIGludCBTUVVPVEUzICAgICAgICAgICAgICAgICAgICAgPSAweDA0OworICAgIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFNCAgICAgICAgICAgICAgICAgICAgID0gMHgwNTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNRVU9URTUgICAgICAgICAgICAgICAgICAgICA9IDB4MDY7CisgICAgZmluYWwgc3RhdGljIGludCBTUVVPVEU2ICAgICAgICAgICAgICAgICAgICAgPSAweDA3OworICAgIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFNyAgICAgICAgICAgICAgICAgICAgID0gMHgwODsKKworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0NIQU5HRTAgICAgICAgICAgICAgICAgICAgID0gMHgxMDsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNDSEFOR0UxICAgICAgICAgICAgICAgICAgICA9IDB4MTE7CisgICAgZmluYWwgc3RhdGljIGludCBTQ0hBTkdFMiAgICAgICAgICAgICAgICAgICAgPSAweDEyOworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0NIQU5HRTMgICAgICAgICAgICAgICAgICAgID0gMHgxMzsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNDSEFOR0U0ICAgICAgICAgICAgICAgICAgICA9IDB4MTQ7CisgICAgZmluYWwgc3RhdGljIGludCBTQ0hBTkdFNSAgICAgICAgICAgICAgICAgICAgPSAweDE1OworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0NIQU5HRTYgICAgICAgICAgICAgICAgICAgID0gMHgxNjsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNDSEFOR0U3ICAgICAgICAgICAgICAgICAgICA9IDB4MTc7CisKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkUwICAgICAgICAgICAgICAgICAgICA9IDB4MTg7CisgICAgZmluYWwgc3RhdGljIGludCBTREVGSU5FMSAgICAgICAgICAgICAgICAgICAgPSAweDE5OworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0RFRklORTIgICAgICAgICAgICAgICAgICAgID0gMHgxQTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkUzICAgICAgICAgICAgICAgICAgICA9IDB4MUI7CisgICAgZmluYWwgc3RhdGljIGludCBTREVGSU5FNCAgICAgICAgICAgICAgICAgICAgPSAweDFDOworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0RFRklORTUgICAgICAgICAgICAgICAgICAgID0gMHgxRDsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkU2ICAgICAgICAgICAgICAgICAgICA9IDB4MUU7CisgICAgZmluYWwgc3RhdGljIGludCBTREVGSU5FNyAgICAgICAgICAgICAgICAgICAgPSAweDFGOworCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIFVuaWNvZGUgbW9kZSB0YWdzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIGZpbmFsIHN0YXRpYyBpbnQgVUNIQU5HRTAgICAgICAgICAgICAgICAgICAgID0gMHhFMDsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVDSEFOR0UxICAgICAgICAgICAgICAgICAgICA9IDB4RTE7CisgICAgZmluYWwgc3RhdGljIGludCBVQ0hBTkdFMiAgICAgICAgICAgICAgICAgICAgPSAweEUyOworICAgIGZpbmFsIHN0YXRpYyBpbnQgVUNIQU5HRTMgICAgICAgICAgICAgICAgICAgID0gMHhFMzsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVDSEFOR0U0ICAgICAgICAgICAgICAgICAgICA9IDB4RTQ7CisgICAgZmluYWwgc3RhdGljIGludCBVQ0hBTkdFNSAgICAgICAgICAgICAgICAgICAgPSAweEU1OworICAgIGZpbmFsIHN0YXRpYyBpbnQgVUNIQU5HRTYgICAgICAgICAgICAgICAgICAgID0gMHhFNjsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVDSEFOR0U3ICAgICAgICAgICAgICAgICAgICA9IDB4RTc7CisKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkUwICAgICAgICAgICAgICAgICAgICA9IDB4RTg7CisgICAgZmluYWwgc3RhdGljIGludCBVREVGSU5FMSAgICAgICAgICAgICAgICAgICAgPSAweEU5OworICAgIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORTIgICAgICAgICAgICAgICAgICAgID0gMHhFQTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkUzICAgICAgICAgICAgICAgICAgICA9IDB4RUI7CisgICAgZmluYWwgc3RhdGljIGludCBVREVGSU5FNCAgICAgICAgICAgICAgICAgICAgPSAweEVDOworICAgIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORTUgICAgICAgICAgICAgICAgICAgID0gMHhFRDsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkU2ICAgICAgICAgICAgICAgICAgICA9IDB4RUU7CisgICAgZmluYWwgc3RhdGljIGludCBVREVGSU5FNyAgICAgICAgICAgICAgICAgICAgPSAweEVGOworCisgICAgZmluYWwgc3RhdGljIGludCBVUVVPVEVVICAgICAgICAgICAgICAgICAgICAgPSAweEYwOworICAgIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORVggICAgICAgICAgICAgICAgICAgID0gMHhGMTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVSRVNFUlZFRCAgICAgICAgICAgICAgICAgICA9IDB4RjI7ICAvLyByZXNlcnZlZCB2YWx1ZQorCisgICAgZmluYWwgc3RhdGljIGludCBCTE9DS1NJWkUgPSAweEZGOworICAgIAorICAgIC8qKgorICAgICAqIEdlbmVyYXRlIHRoZSB0YWJsZSB1c2VkIGFzIHNPZmZzZXRUYWJsZSBpbiBTQ1NVLgorICAgICAqIFRoaXMgdGFibGUgY29udGFpbnMgcHJlZm9ybWVkIGluZGljZXMgc28gd2UgY2FuIGRvIGFycmF5IGxvb2t1cHMgCisgICAgICogaW5zdGVhZCBvZiBjYWxjdWxhdGlvbnMgZm9yIHNwZWVkIGR1cmluZyBkZWNvbXByZXNzaW9uLgorICAgICAqLworICAgIHN0YXRpYyB2b2lkIHByaW50T2Zmc2V0VGFibGUoKQorICAgIHsKKyAgICAgICAgaW50ICAgICBpICAgICAgICAgICA9IDA7CisJaW50IFtdCW9mZnNldFRhYmxlID0gbmV3IGludCBbIEJMT0NLU0laRSArIDEgXTsKKworICAgICAgICAvLyAweDAwIGlzIHJlc2VydmVkCisKKyAgICAgICAgLy8gaGFsZiBibG9ja3MgZnJvbSBVKzAwODAgdG8gVSszMzgwCisgICAgICAgIGZvciggaSA9IDB4MDE7IGkgPCAweDY4OyBpKysgKQorICAgICAgICAgICAgb2Zmc2V0VGFibGVbaV0gPSBpICogMHg4MDsKKwkKKyAgICAgICAgLy8gaGFsZiBibG9ja3MgZnJvbSBVK0UwMDAgdG8gVStGRjgwCisgICAgICAgIGZvciggaSA9IDB4Njg7IGkgPCAweEE4OyBpKysgKQorICAgICAgICAgICAgb2Zmc2V0VGFibGVbaV0gPSAoaSAqIDB4ODApICsgMHhBQzAwOworCQorICAgICAgICAvLyAweEE4Li4weEY4IGlzIHJlc2VydmVkCisgCisgICAgICAgIG9mZnNldFRhYmxlWyBMQVRJTklOREVYIF0gPSAweDAwQzA7CisgICAgICAgIG9mZnNldFRhYmxlWyBJUEFFWFRFTlNJT05JTkRFWCBdID0gMHgwMjUwOworICAgICAgICBvZmZzZXRUYWJsZVsgR1JFRUtJTkRFWCBdID0gMHgwMzcwOworICAgICAgICBvZmZzZXRUYWJsZVsgQVJNRU5JQU5JTkRFWCBdID0gMHgwNTMwOworICAgICAgICBvZmZzZXRUYWJsZVsgSElSQUdBTkFJTkRFWCBdID0gMHgzMDQwOworICAgICAgICBvZmZzZXRUYWJsZVsgS0FUQUtBTkFJTkRFWCBdID0gMHgzMEEwOworICAgICAgICBvZmZzZXRUYWJsZVsgSEFMRldJRFRIS0FUQUtBTkFJTkRFWCBdID0gMHhGRjYwOworCisgICAgICAgIC8vIGR1bXAgdGhlIGdlbmVyYXRlZCB0YWJsZQorCVN5c3RlbS5vdXQucHJpbnRsbigic3RhdGljIGludCBbXSBzT2Zmc2V0VGFibGUgPSB7Iik7CisgICAgICAgIGZvcihpID0gMDsgaSA8IG9mZnNldFRhYmxlLmxlbmd0aCAtIDE7IGkrKykKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIjB4IiArIEludGVnZXIudG9IZXhTdHJpbmcob2Zmc2V0VGFibGVbaV0pCisJCQkgICAgICsgIiwgIik7CisgICAgICAgIGZvcihpID0gb2Zmc2V0VGFibGUubGVuZ3RoIC0gMTsgaSA8IG9mZnNldFRhYmxlLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiMHgiICsgSW50ZWdlci50b0hleFN0cmluZyhvZmZzZXRUYWJsZVtpXSkpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJ9OyIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZW5lcmF0ZSB0aGUgdGFibGUgdXNlZCBhcyBzU2luZ2xlVGFnVGFibGUgaW4gVW5pY29kZUNvbXByZXNzb3IuCisgICAgICogVGhpcyB0YWJsZSBjb250YWlucyBib29sZWFuIHZhbHVlcyBpbmRpY2F0aW5nIGlmIGEgYnl0ZSBpcyBhCisgICAgICogc2luZ2xlLWJ5dGUgbW9kZSB0YWcuCisgICAgICovCisgICAgc3RhdGljIHZvaWQgcHJpbnRTaW5nbGVUYWdUYWJsZSgpCisgICAgeworICAgICAgICBpbnQgICAgICAgIGkgICAgICAgICAgICAgID0gMDsKKwlib29sZWFuIFtdIHNpbmdsZVRhZ1RhYmxlID0gbmV3IGJvb2xlYW4gIFsgQkxPQ0tTSVpFICsgMSBdOworCisgICAgICAgIGZvciggaSA9IDB4MDA7IGkgPD0gQkxPQ0tTSVpFOyBpKysgKSB7CisgICAgICAgICAgICBzd2l0Y2goIGkgKSB7CisJCQorCSAgICBjYXNlIFNRVU9URVU6ICBjYXNlIFNDSEFOR0VVOiAKKwkgICAgY2FzZSBTREVGSU5FWDogY2FzZSBTUkVTRVJWRUQ6CisJICAgIGNhc2UgU1FVT1RFMDogIGNhc2UgU1FVT1RFMTogIAorCSAgICBjYXNlIFNRVU9URTI6ICBjYXNlIFNRVU9URTM6CisJICAgIGNhc2UgU1FVT1RFNDogIGNhc2UgU1FVT1RFNTogIAorCSAgICBjYXNlIFNRVU9URTY6ICBjYXNlIFNRVU9URTc6CisJICAgIGNhc2UgU0NIQU5HRTA6IGNhc2UgU0NIQU5HRTE6IAorCSAgICBjYXNlIFNDSEFOR0UyOiBjYXNlIFNDSEFOR0UzOgorCSAgICBjYXNlIFNDSEFOR0U0OiBjYXNlIFNDSEFOR0U1OiAKKwkgICAgY2FzZSBTQ0hBTkdFNjogY2FzZSBTQ0hBTkdFNzoKKwkgICAgY2FzZSBTREVGSU5FMDogY2FzZSBTREVGSU5FMTogCisJICAgIGNhc2UgU0RFRklORTI6IGNhc2UgU0RFRklORTM6CisJICAgIGNhc2UgU0RFRklORTQ6IGNhc2UgU0RFRklORTU6IAorCSAgICBjYXNlIFNERUZJTkU2OiBjYXNlIFNERUZJTkU3OgorCQlzaW5nbGVUYWdUYWJsZVtpXSA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisJCQorCSAgICBkZWZhdWx0OgorCQlzaW5nbGVUYWdUYWJsZVtpXSA9IGZhbHNlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisJCisgICAgICAgIC8vIGR1bXAgdGhlIGdlbmVyYXRlZCB0YWJsZQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oInByaXZhdGUgc3RhdGljIGJvb2xlYW4gW10gc1NpbmdsZVRhZ1RhYmxlID0geyIpOworICAgICAgICBmb3IoaSA9IDA7IGkgPCBzaW5nbGVUYWdUYWJsZS5sZW5ndGggLSAxOyBpKyspCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KHNpbmdsZVRhZ1RhYmxlW2ldICsgIiwgIik7CisgICAgICAgIGZvcihpID0gc2luZ2xlVGFnVGFibGUubGVuZ3RoIC0gMTsgaSA8IHNpbmdsZVRhZ1RhYmxlLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludChzaW5nbGVUYWdUYWJsZVtpXSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIn07Iik7CisgICAgfQorICAgIAorICAgIAorICAgIC8qKgorICAgICAqIEdlbmVyYXRlIHRoZSB0YWJsZSB1c2VkIGFzIHNVbmljb2RlVGFnVGFibGUgaW4gCisgICAgICogVGhpcyB0YWJsZSBjb250YWlucyBib29sZWFuIHZhbHVlcyBpbmRpY2F0aW5nIGlmIGEgYnl0ZSBpcyBhCisgICAgICogdW5pY29kZSBtb2RlIHRhZy4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCBwcmludFVuaWNvZGVUYWdUYWJsZSgpCisgICAgeworICAgICAgICBpbnQgICAgICAgIGkgICAgICAgICAgICAgICA9IDA7CisJYm9vbGVhbiBbXSB1bmljb2RlVGFnVGFibGUgPSBuZXcgYm9vbGVhbiAgWyBCTE9DS1NJWkUgKyAxIF07CisKKyAgICAgICAgZm9yKCBpID0gMHgwMDsgaSA8PSBCTE9DS1NJWkU7IGkrKyApIHsKKyAgICAgICAgICAgIHN3aXRjaCggaSApIHsKKwkgICAgY2FzZSBVUVVPVEVVOiAgY2FzZSBVREVGSU5FWDogCisJICAgIGNhc2UgVVJFU0VSVkVEOgorCSAgICBjYXNlIFVDSEFOR0UwOiBjYXNlIFVDSEFOR0UxOiAKKwkgICAgY2FzZSBVQ0hBTkdFMjogY2FzZSBVQ0hBTkdFMzoKKwkgICAgY2FzZSBVQ0hBTkdFNDogY2FzZSBVQ0hBTkdFNTogCisJICAgIGNhc2UgVUNIQU5HRTY6IGNhc2UgVUNIQU5HRTc6CisJICAgIGNhc2UgVURFRklORTA6IGNhc2UgVURFRklORTE6IAorCSAgICBjYXNlIFVERUZJTkUyOiBjYXNlIFVERUZJTkUzOgorCSAgICBjYXNlIFVERUZJTkU0OiBjYXNlIFVERUZJTkU1OiAKKwkgICAgY2FzZSBVREVGSU5FNjogY2FzZSBVREVGSU5FNzoKKwkJdW5pY29kZVRhZ1RhYmxlW2ldID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKwkJCisJICAgIGRlZmF1bHQ6CisJCXVuaWNvZGVUYWdUYWJsZVtpXSA9IGZhbHNlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisJCisgICAgICAgIC8vIGR1bXAgdGhlIGdlbmVyYXRlZCB0YWJsZQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oInByaXZhdGUgc3RhdGljIGJvb2xlYW4gW10gc1VuaWNvZGVUYWdUYWJsZSA9IHsiKTsKKyAgICAgICAgZm9yKGkgPSAwOyBpIDwgdW5pY29kZVRhZ1RhYmxlLmxlbmd0aCAtIDE7IGkrKykKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQodW5pY29kZVRhZ1RhYmxlW2ldICsgIiwgIik7CisgICAgICAgIGZvcihpID0gdW5pY29kZVRhZ1RhYmxlLmxlbmd0aCAtIDE7IGkgPCB1bmljb2RlVGFnVGFibGUubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KHVuaWNvZGVUYWdUYWJsZVtpXSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIn07Iik7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3YpCisgICAgeworICAgICAgICBwcmludE9mZnNldFRhYmxlKCk7CisgICAgICAgIHByaW50U2luZ2xlVGFnVGFibGUoKTsKKyAgICAgICAgcHJpbnRVbmljb2RlVGFnVGFibGUoKTsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2NvbXByZXNzaW9uL3BhY2thZ2UuaHRtbCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9jb21wcmVzc2lvbi9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTlmOTZlMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9jb21wcmVzc2lvbi9wYWNrYWdlLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMiBGaW5hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisgICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9jb21wcmVzc2lvbi9wYWNrYWdlLmh0bWwsdiAkCisgICRSZXZpc2lvbjogMS4xICQKKyAgJERhdGU6IDIwMDAvMDMvMTUgMjE6MzU6NTIgJAorLS0+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CitUb29sIHVzZWQgdG8gcmVidWlsZCB0YWJsZXMgdXNlZCBieSB0aGUgVW5pY29kZSBjb21wcmVzc2lvbiBjbGFzc2VzLgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQXJyYXlFbnVtZXJhdGlvbi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9BcnJheUVudW1lcmF0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjVjMTdlNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQXJyYXlFbnVtZXJhdGlvbi5qYXZhCkBAIC0wLDAgKzEsOTMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQXJyYXlFbnVtZXJhdGlvbi5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA1OjI2ICQgCisgKiAkUmV2aXNpb246IDEuMiAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgamF2YS51dGlsLio7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBBcnJheUVudW1lcmF0aW9uIGltcGxlbWVudHMgRW51bWVyYXRpb24geworCisgICAgcHVibGljIEFycmF5RW51bWVyYXRpb24oT2JqZWN0W10gYXJyYXksIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisgICAgICAgIHRoaXMuYXJyYXkgPSBhcnJheTsKKyAgICAgICAgcG9zaXRpb24gPSBzdGFydDsKKyAgICAgICAgdGhpcy5saW1pdCA9IGxpbWl0OworICAgIH0KKworICAgIHB1YmxpYyBBcnJheUVudW1lcmF0aW9uKGJ5dGVbXSBhcnJheSwgaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKyAgICAgICAgdGhpcy5hcnJheSA9IG5ldyBPYmplY3RbYXJyYXkubGVuZ3RoXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdGhpcy5hcnJheVtpXSA9IG5ldyBCeXRlKGFycmF5W2ldKTsKKyAgICAgICAgfQorICAgICAgICBwb3NpdGlvbiA9IHN0YXJ0OworICAgICAgICB0aGlzLmxpbWl0ID0gbGltaXQ7CisgICAgfQorCisgICAgcHVibGljIEFycmF5RW51bWVyYXRpb24oY2hhcltdIGFycmF5LCBpbnQgc3RhcnQsIGludCBsaW1pdCkgeworICAgICAgICB0aGlzLmFycmF5ID0gbmV3IE9iamVjdFthcnJheS5sZW5ndGhdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB0aGlzLmFycmF5W2ldID0gbmV3IENoYXJhY3RlcihhcnJheVtpXSk7CisgICAgICAgIH0KKyAgICAgICAgcG9zaXRpb24gPSBzdGFydDsKKyAgICAgICAgdGhpcy5saW1pdCA9IGxpbWl0OworICAgIH0KKworICAgIHB1YmxpYyBBcnJheUVudW1lcmF0aW9uKHNob3J0W10gYXJyYXksIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisgICAgICAgIHRoaXMuYXJyYXkgPSBuZXcgT2JqZWN0W2FycmF5Lmxlbmd0aF07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHRoaXMuYXJyYXlbaV0gPSBuZXcgU2hvcnQoYXJyYXlbaV0pOworICAgICAgICB9CisgICAgICAgIHBvc2l0aW9uID0gc3RhcnQ7CisgICAgICAgIHRoaXMubGltaXQgPSBsaW1pdDsKKyAgICB9CisKKyAgICBwdWJsaWMgQXJyYXlFbnVtZXJhdGlvbihpbnRbXSBhcnJheSwgaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKyAgICAgICAgdGhpcy5hcnJheSA9IG5ldyBPYmplY3RbYXJyYXkubGVuZ3RoXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdGhpcy5hcnJheVtpXSA9IG5ldyBJbnRlZ2VyKGFycmF5W2ldKTsKKyAgICAgICAgfQorICAgICAgICBwb3NpdGlvbiA9IHN0YXJ0OworICAgICAgICB0aGlzLmxpbWl0ID0gbGltaXQ7CisgICAgfQorCisgICAgcHVibGljIEFycmF5RW51bWVyYXRpb24oZmxvYXRbXSBhcnJheSwgaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKyAgICAgICAgdGhpcy5hcnJheSA9IG5ldyBPYmplY3RbYXJyYXkubGVuZ3RoXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdGhpcy5hcnJheVtpXSA9IG5ldyBGbG9hdChhcnJheVtpXSk7CisgICAgICAgIH0KKyAgICAgICAgcG9zaXRpb24gPSBzdGFydDsKKyAgICAgICAgdGhpcy5saW1pdCA9IGxpbWl0OworICAgIH0KKworICAgIHB1YmxpYyBBcnJheUVudW1lcmF0aW9uKGRvdWJsZVtdIGFycmF5LCBpbnQgc3RhcnQsIGludCBsaW1pdCkgeworICAgICAgICB0aGlzLmFycmF5ID0gbmV3IE9iamVjdFthcnJheS5sZW5ndGhdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB0aGlzLmFycmF5W2ldID0gbmV3IERvdWJsZShhcnJheVtpXSk7CisgICAgICAgIH0KKyAgICAgICAgcG9zaXRpb24gPSBzdGFydDsKKyAgICAgICAgdGhpcy5saW1pdCA9IGxpbWl0OworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGhhc01vcmVFbGVtZW50cygpIHsKKyAgICAgICAgIHJldHVybiBwb3NpdGlvbiA8IGxpbWl0OworICAgIH0KKworICAgIHB1YmxpYyBPYmplY3QgbmV4dEVsZW1lbnQoKSB7CisgICAgICAgIGlmIChwb3NpdGlvbiA8IGxpbWl0KQorICAgICAgICAgICAgcmV0dXJuIGFycmF5W3Bvc2l0aW9uKytdOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aHJvdyBuZXcgamF2YS51dGlsLk5vU3VjaEVsZW1lbnRFeGNlcHRpb24oKTsKKyAgICB9CisgICAgLy8gcHJpdmF0ZXMKKyAgICBwcml2YXRlIE9iamVjdFtdIGFycmF5OworICAgIHByaXZhdGUgaW50IHBvc2l0aW9uID0gMDsKKyAgICBwcml2YXRlIGludCBsaW1pdCA9IDA7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Db2xsYXRpb25JdGVtLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbGxhdGlvbkl0ZW0uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kZjE1NDcxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Db2xsYXRpb25JdGVtLmphdmEKQEAgLTAsMCArMSw5NSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Db2xsYXRpb25JdGVtLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDU6MjYgJCAKKyAqICRSZXZpc2lvbjogMS4yICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS51dGlsLio7CisKKy8qKgorICogQSBDb2xsYXRpb25JdGVtIHJlcHJlc2VudHMgYSBzaW5nbGUgZW50cnkgaW4gYSBjb2xsYXRpb24gc2VxdWVuY2UuCisgKi8KK3B1YmxpYyBjbGFzcyBDb2xsYXRpb25JdGVtIHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyW10gT1BfQ0hBUlMgPSB7Jz0nLCAnPCcsICc7JywgJywnLCAnJicgfTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyW10gU1BFQ0lBTF9DSEFSUyA9IHsgJyYnLCAnQCcgLCAnPScsICc8JywgJzsnLCAnLCcgfTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOT05FID0gMDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQUklNQVJZID0gMTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTRUNPTkRBUlkgPSAyOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFUlRJQVJZID0gMzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRklSU1QgPSA0OworICAgIHB1YmxpYyBpbnQgb3A7CisgICAgcHVibGljIFN0cmluZyBpdGVtOworICAgIHB1YmxpYyBTdHJpbmcgZXhwYW5zaW9uOworICAgIHB1YmxpYyBTdHJpbmcgY29tbWVudDsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIENvbGxhdGlvbkl0ZW0gRk9SV0FSRCA9IG5ldyBDb2xsYXRpb25JdGVtKE5PTkUsICIiKSB7CisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7IHJldHVybiAiIjsgfQorICAgIH07CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBDb2xsYXRpb25JdGVtIEJBQ0tXQVJEID0gbmV3IENvbGxhdGlvbkl0ZW0oTk9ORSwgIiIpIHsKKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsgcmV0dXJuICJAIjsgfQorICAgIH07CisgICAgCisgICAgcHVibGljIENvbGxhdGlvbkl0ZW0oU3RyaW5nIGl0ZW0pIHsKKyAgICAgICAgdGhpcy5vcCA9IEZJUlNUOworICAgICAgICB0aGlzLml0ZW0gPSBjbGVhblN0cmluZyhpdGVtKTsKKyAgICAgICAgdGhpcy5leHBhbnNpb24gPSAiIjsKKyAgICB9CisgICAgCisgICAgcHVibGljIENvbGxhdGlvbkl0ZW0oaW50IG9wLCBTdHJpbmcgaXRlbSkgeworICAgICAgICB0aGlzKG9wLCBpdGVtLCBudWxsKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIENvbGxhdGlvbkl0ZW0oaW50IG9wLCBTdHJpbmcgaXRlbSwgU3RyaW5nIGV4cGFuc2lvbikgeworICAgICAgICB0aGlzLm9wID0gTWF0aC5hYnMob3ApOworICAgICAgICBpZiAodGhpcy5vcCA+IFRFUlRJQVJZKSB0aGlzLm9wID0gVEVSVElBUlk7CisgICAgICAgIHRoaXMuaXRlbSA9IGNsZWFuU3RyaW5nKGl0ZW0pOworICAgICAgICB0aGlzLmV4cGFuc2lvbiA9IGNsZWFuU3RyaW5nKGV4cGFuc2lvbik7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHNldENvbW1lbnQoU3RyaW5nIGNvbW1lbnQpIHsKKyAgICAgICAgdGhpcy5jb21tZW50ID0gY29tbWVudDsKKyAgICB9CisgICAgCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgU3RyaW5nIGl0ZW1TdHJpbmcgPSBpdGVtOworICAgICAgICBpZiAoZXhwYW5zaW9uLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiAiIitPUF9DSEFSU1tvcF0raXRlbTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAiJiIrZXhwYW5zaW9uK09QX0NIQVJTW29wXStpdGVtOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgU3RyaW5nIGNsZWFuU3RyaW5nKFN0cmluZyBzb3VyY2UpIHsKKyAgICAgICAgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm4gIiI7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSBzb3VyY2U7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmVzdWx0Lmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgIGZpbmFsIGNoYXIgYyA9IHJlc3VsdC5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoKGMgPT0gJ0AnKSB8fCAoYyA9PSAnXHQnKSB8fCAoYyA9PSAnXG4nKQorICAgICAgICAgICAgICAgICAgICB8fCAoYyA9PSAnXGYnKSB8fCAoYyA9PSdccicpIHx8IChjID09ICdcMDEzJykKKyAgICAgICAgICAgICAgICAgICAgfHwgKChjIDw9ICdcdTAwMkYnKSAmJiAoYyA+PSAnXHUwMDIwJykpCisgICAgICAgICAgICAgICAgICAgIHx8ICgoYyA8PSAnXHUwMDNGJykgJiYgKGMgPj0gJ1x1MDAzQScpKQorICAgICAgICAgICAgICAgICAgICB8fCAoKGMgPD0gJ1x1MDA2MCcpICYmIChjID49ICdcdTAwNUInKSkKKyAgICAgICAgICAgICAgICAgICAgfHwgKChjIDw9ICdcdTAwN0UnKSAmJiAoYyA+PSAnXHUwMDdCJykpKSB7CisgICAgICAgICAgICAgICAgaWYgKGkgPCByZXN1bHQubGVuZ3RoKCktMSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQuc3Vic3RyaW5nKDAsIGkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiJyIgKyBjICsiJyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHJlc3VsdC5zdWJzdHJpbmcoaSsxKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQuc3Vic3RyaW5nKDAsIGkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiJyIgKyBjICsiJyI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGkgKz0gMjsgLy9za2lwIHRoZSB0d28gY2hhcmFjdGVycyB3ZSBpbnNlcnRlZAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29tcGFyYWJsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Db21wYXJhYmxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjFiYWRjYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29tcGFyYWJsZS5qYXZhCkBAIC0wLDAgKzEsMjAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29tcGFyYWJsZS5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA1OjI2ICQgCisgKiAkUmV2aXNpb246IDEuMiAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitwdWJsaWMgaW50ZXJmYWNlIENvbXBhcmFibGUgeworICAgIC8qKgorICAgICAgICByZXR1cm5zIDAgaWYgb2JqZWN0cyBhcmUgZXF1YWwsIC0xIGlmIGEgaXMgbGVzcyB0aGFuIGIsIDEgb3RoZXJ3aXNlLgorICAgICovCisgICAgcHVibGljIGludCBjb21wYXJlVG8oT2JqZWN0IGIpOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29tcGFyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Db21wYXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTgzYTk0MgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29tcGFyYXRvci5qYXZhCkBAIC0wLDAgKzEsMjAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29tcGFyYXRvci5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA1OjI2ICQgCisgKiAkUmV2aXNpb246IDEuMiAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitwdWJsaWMgaW50ZXJmYWNlIENvbXBhcmF0b3IgeworICAgIC8qKgorICAgICAgICByZXR1cm5zIDAgaWYgb2JqZWN0cyBhcmUgZXF1YWwsIC0xIGlmIGEgaXMgbGVzcyB0aGFuIGIsIDEgb3RoZXJ3aXNlLgorICAgICovCisgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBhLCBPYmplY3QgYik7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbXBsZXhUcmFuc2l0aW9uLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbXBsZXhUcmFuc2l0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjEzMDRkYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29tcGxleFRyYW5zaXRpb24uamF2YQpAQCAtMCwwICsxLDczIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbXBsZXhUcmFuc2l0aW9uLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDU6MjYgJCAKKyAqICRSZXZpc2lvbjogMS4yICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS51dGlsLio7CisKKy8qKgorICogQSBDb21wbGV4VHJhbnNpdGlvbiBpcyBjb25jZXB0dWFsbHkgYSBzaW5nbGUgdHJhbnNpdGlvbiB0aGF0CisgKiBjb25zdW1lcyBtdWx0aXBsZSBpbnB1dCBjaGFyYWN0ZXJzLgorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQ29tcGxleFRyYW5zaXRpb24gaW1wbGVtZW50cyBMZXguVHJhbnNpdGlvbiB7CisgICAgICAgIC8vdGhlIHZhbHVlIHRoYXQgaXMgcmV0dXJuZWQgYnkgc3ViY2xhc3NlcyBpbmRpY2F0aW5nIHRoYXQKKyAgICAgICAgLy90aGUgdHJhbnNpdGlvbiB3YXMgc3VjY2Vzc2Z1bGwuICBUaGlzIHZhbHVlIGlzIHRoZW4KKyAgICAgICAgLy9kaXNjYXJkZWQgYW5kIHRoZSB2YWx1ZSBwYXNzZWQgdG8gdGhlIGNvbnN0cnVjdG9yCisgICAgICAgIC8vaXMgdGhlbiByZXR1cm5lZCB0byB0aGUgY2FsbGVyLgorICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IFNVQ0NFU1MgPSBMZXguRU5EX09GX0ZJTEUgLSAxOworICAgIHByaXZhdGUgaW50IHN1Y2Nlc3M7ICAgIC8vdmFsdWUgdG8gcmV0dXJuIGlmIHN1Y2Nlc3NmdWxsCisgICAgcHJpdmF0ZSBMZXggcGFyc2VyOyAgICAgLy90aGUgcGFyc2VyIHVzZWQgZm9yIHRoaXMgdHJhbnNpdGlvbgorICAgICAgICAKKyAgICBwdWJsaWMgQ29tcGxleFRyYW5zaXRpb24oaW50IHN1Y2Nlc3MpIHsKKyAgICAgICAgdGhpcy5zdWNjZXNzID0gc3VjY2VzczsKKyAgICAgICAgdGhpcy5wYXJzZXIgPSBuZXcgTGV4KG51bGwpOworICAgICAgICAvL3RoaXMucGFyc2VyLmRlYnVnKHRydWUpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGRvQWN0aW9uKGludCBjLCBQdXNoYmFja1JlYWRlciBpbnB1dCwgU3RyaW5nQnVmZmVyIGJ1ZmZlcikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgaW5wdXQudW5yZWFkKGMpOworICAgICAgICBwYXJzZXIuc2V0U3RhdGVzKGdldFN0YXRlcygpKTsKKyAgICAgICAgcGFyc2VyLnNldElucHV0KGlucHV0KTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGludCBzID0gcGFyc2VyLm5leHRUb2tlbigpOworICAgICAgICAgICAgaGFuZGxlU3VjY2VzcyhwYXJzZXIsIGJ1ZmZlcik7CisgICAgICAgICAgICByZXR1cm4gc3VjY2VzczsKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgaGFuZGxlRmFpbHVyZShwYXJzZXIsIGJ1ZmZlcik7CisgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICB9CisgICAgfQorCisgICAgICAgIC8vY2FsbGVkIGFmdGVyIGEgc3VjY2Vzc2Z1bCBwYXJzZQorICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVN1Y2Nlc3MoTGV4IHBhcnNlciwgU3RyaW5nQnVmZmVyIG91dHB1dCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgcGFyc2VyLmFwcGVuZERhdGFUbyhvdXRwdXQpOworICAgIH0KKyAgICAKKyAgICAgICAgLy9jYWxsZWQgYWZ0ZXIgYSBmYWlsZWQgcGFyc2UKKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVGYWlsdXJlKExleCBwYXJzZXIsIFN0cmluZ0J1ZmZlciBvdXRwdXQpIHsKKyAgICB9CisgICAgCisgICAgICAgIC8vc3ViY2xhc3NlcyBzaG91bGQgcmV0dXJuIHRoZSBzdGF0ZXMgdG8gdXNlIHRvIHBhcnNlIHRoaXMKKyAgICAgICAgLy90cmFuc2l0aW9uCisgICAgcHJvdGVjdGVkIGFic3RyYWN0IExleC5UcmFuc2l0aW9uW11bXSBnZXRTdGF0ZXMoKTsKKworICAgIHB1YmxpYyBDb21wbGV4VHJhbnNpdGlvbiBkZWJ1Zyhib29sZWFuIGRlYnVnKSB7CisgICAgICAgIHBhcnNlci5kZWJ1ZyhkZWJ1Zyk7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgQ29tcGxleFRyYW5zaXRpb24gZGVidWcoYm9vbGVhbiBkZWJ1ZywgU3RyaW5nIHRhZykgeworICAgICAgICBwYXJzZXIuZGVidWcoZGVidWcsIHRhZyk7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29udmVydEFsbEphdmFMb2NhbGVzLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbnZlcnRBbGxKYXZhTG9jYWxlcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg4ZmVjNWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbnZlcnRBbGxKYXZhTG9jYWxlcy5qYXZhCkBAIC0wLDAgKzEsODggQEAKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC4qOworCisvKioKKworVGhlIENvbnZlcnRKYXZhTG9jYWxlIGFwcGxpY2F0aW9uIGNvbnZlcnRzIGphdmEgbG9jYWxlcyB0byAKK0phdmEgYW5kIElDVSBMb2NhbGUgZmlsZXMuICBJdCdzIHVzYWdlIGlzIGFzIGZvbGxvd3MKKworICAgIENvbnZlcnRKYXZhTG9jYWxlIFstMTFdIFstMTJdIFstaWN1XSBsb2NhbGUuLi4KKworVXNhZ2UKKworLTExCisgICAgSWYgdGhpcyBvcHRpb24gaXMgc3BlY2lmaWVkLCBkYXRhIGlzIG91dHB1dCBpbiAKKyAgICBKYXZhIDEuMS54IGxvY2FsZSBmb3JtYXQuCisgICAgCistMTIKKyAgICBJZiB0aGlzIG9wdGlvbiBpcyBzcGVjaWZpZWQsIGRhdGEgaXMgb3V0cHV0IGluCisgICAgSmF2YSAxLjIueCBsb2NhbGUgZm9ybWF0LiAgSWYgYW4gb3V0cHV0IGZvcm1hdAorICAgIGlzIG5vdCBzcGVjaWZpZWQsIC0xMiBpcyB0aGUgZGVmYXVsdC4KKyAgICAKKy1pY3UKKyAgICBJZiB0aGlzIG9wdGlvbiBpcyBzcGVjaWZpZWQsIGRhdGEgaXMgb3V0cHV0IGluCisgICAgSUNVIGxvY2FsZSBmb3JtYXQuCisKK2xvY2FsZQorICAgIFRoZSBsb2NhbGUgdG8gY29udmVydAorCisKKyovCitpbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuKjsKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29udmVydEFsbEphdmFMb2NhbGVzLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDU6MjcgJCAKKyAqICRSZXZpc2lvbjogMS4yICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcHVibGljIGNsYXNzIENvbnZlcnRBbGxKYXZhTG9jYWxlcyB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3NbXSkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgbmV3IENvbnZlcnRBbGxKYXZhTG9jYWxlcyhhcmdzKTsKKyAgICAgICAgfSBjYXRjaCAoVGhyb3dhYmxlIHQpIHsKKyAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiVW5rbm93biBlcnJvcjogIit0KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgQ29udmVydEFsbEphdmFMb2NhbGVzKFN0cmluZyBhcmdzSW5bXSkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgU3RyaW5nIHBhY2thZ2VOYW1lID0gYXJnc0luWzBdOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUaGlzIGlzIHRoZSBwYWNrYWdlbmFtZSA6ICIrcGFja2FnZU5hbWUpOworICAgICAgICAgICAgU3RyaW5nIGNsYXNzbmFtZSA9IHBhY2thZ2VOYW1lKyIuTG9jYWxlIjsKKyAgICAgICAgICAgIC8vY2xhc3NuYW1lLmNvbmNhdCgpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUaGlzIGlzIHRoZSBjbGFzc25hbWUgOiAiK2NsYXNzbmFtZSk7CisgICAgICAgICAgLyogIENsYXNzIGNsID0gQ2xhc3MuZm9yTmFtZShjbGFzc25hbWUpOworICAgICAgICAgICAgQ2xhc3NbXSBwYXJhbUxpc3Q9bnVsbDsKKyAgICAgICAgICAgIE1ldGhvZCBndmwgPSBjbC5nZXRNZXRob2QoImdldEF2YWlsYWJsZUxvY2FsZXMiLCBwYXJhbUxpc3QpOworICAgICAgICAgICAgT2JqZWN0W10gcGFyYW1zID0gbmV3IE9iamVjdFtdeyIifTsKKyAgICAgICAgICAgIGd2bC5pbnZva2UobnVsbCxwYXJhbXMpOyovCisgICAgICAgICAgICBmaW5hbCBMb2NhbGVbXSBsb2NhbGVzID0gamF2YS51dGlsLkxvY2FsZS5nZXRBdmFpbGFibGVMb2NhbGVzKCk7Ly8oTG9jYWxlW10pZ3ZsLmludm9rZShudWxsLHBhcmFtcyk7OworICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgZmluYWwgU3RyaW5nIGxvY2FsZU5hbWUgPSBsb2NhbGVzW2ldLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgZmluYWwgU3RyaW5nW10gYXJncyA9IHsiLXBhY2thZ2UiLHBhY2thZ2VOYW1lLCItaWN1IiwgbG9jYWxlTmFtZX07CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb252ZXJ0aW5nICIrbG9jYWxlTmFtZSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgZmluYWwgRmlsZU91dHB1dFN0cmVhbSBvdXRGaWxlID0gbmV3IEZpbGVPdXRwdXRTdHJlYW0oIklDVUxvY2FsZV8iK2xvY2FsZU5hbWUpOworICAgICAgICAgICAgICAgIGZpbmFsIFByaW50U3RyZWFtIG91dCA9IG5ldyBQcmludFN0cmVhbShvdXRGaWxlLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBuZXcgQ29udmVydEphdmFMb2NhbGUoYXJncywgb3V0KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBvdXQuY2xvc2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJVbmV4cGVjdGVkIElPIGVycm9yIik7CisgICAgICAgIH1jYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbnZlcnRKYXZhTG9jYWxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbnZlcnRKYXZhTG9jYWxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGRkNDM3ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29udmVydEphdmFMb2NhbGUuamF2YQpAQCAtMCwwICsxLDE5NiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Db252ZXJ0SmF2YUxvY2FsZS5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA1OjI3ICQgCisgKiAkUmV2aXNpb246IDEuMiAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC4qOworCisvKioKKworVGhlIENvbnZlcnRKYXZhTG9jYWxlIGFwcGxpY2F0aW9uIGNvbnZlcnRzIGphdmEgbG9jYWxlcyB0byAKK0phdmEgYW5kIElDVSBMb2NhbGUgZmlsZXMuICBJdCdzIHVzYWdlIGlzIGFzIGZvbGxvd3MKKworICAgIENvbnZlcnRKYXZhTG9jYWxlIFstMTFdIFstMTJdIFstaWN1XSBsb2NhbGUuLi4KKworVXNhZ2UKKworLTExCisgICAgSWYgdGhpcyBvcHRpb24gaXMgc3BlY2lmaWVkLCBkYXRhIGlzIG91dHB1dCBpbiAKKyAgICBKYXZhIDEuMS54IGxvY2FsZSBmb3JtYXQuCisgICAgCistMTIKKyAgICBJZiB0aGlzIG9wdGlvbiBpcyBzcGVjaWZpZWQsIGRhdGEgaXMgb3V0cHV0IGluCisgICAgSmF2YSAxLjIueCBsb2NhbGUgZm9ybWF0LiAgSWYgYW4gb3V0cHV0IGZvcm1hdAorICAgIGlzIG5vdCBzcGVjaWZpZWQsIC0xMiBpcyB0aGUgZGVmYXVsdC4KKyAgICAKKy1pY3UKKyAgICBJZiB0aGlzIG9wdGlvbiBpcyBzcGVjaWZpZWQsIGRhdGEgaXMgb3V0cHV0IGluCisgICAgSUNVIGxvY2FsZSBmb3JtYXQuCisKK2xvY2FsZQorICAgIFRoZSBsb2NhbGUgdG8gY29udmVydAorCisKKyovCisKK3B1YmxpYyBjbGFzcyBDb252ZXJ0SmF2YUxvY2FsZSB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBPUFRfMTEgPSAoYnl0ZSkweDAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgT1BUXzEyID0gKGJ5dGUpMHgwMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIE9QVF9JQ1UgPSAoYnl0ZSkweDA0OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgT1BUX1BBQ0tBR0UgPSAoYnl0ZSkweDA4OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgT1BUX1VOS05PV04gPSAoYnl0ZSkweDgwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBVU0VSX09QVElPTlNbXSA9IHsKKyAgICAgICAgIi0xMSIsIAorICAgICAgICAiLTEyIiwgCisgICAgICAgICItaWN1IiwKKyAgICAgICAgIi1wYWNrYWdlIgorICAgIH07CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gdGFncyA9IHsKKyAgICAgICAgIkxvY2FsZVN0cmluZyIsCisgICAgICAgICJMb2NhbGVJRCIsCisgICAgICAgICJTaG9ydExhbmd1YWdlIiwKKyAgICAgICAgIlNob3J0Q291bnRyeSIsCisgICAgICAgICJMYW5ndWFnZXMiLAorICAgICAgICAiQ291bnRyaWVzIiwKKyAgICAgICAgIk1vbnRoTmFtZXMiLAorICAgICAgICAiTW9udGhBYmJyZXZpYXRpb25zIiwKKyAgICAgICAgIkRheU5hbWVzIiwKKyAgICAgICAgIkRheUFiYnJldmlhdGlvbnMiLAorICAgICAgICAiQW1QbU1hcmtlcnMiLAorICAgICAgICAiRXJhcyIsCisgICAgICAgICJOdW1iZXJQYXR0ZXJucyIsCisgICAgICAgICJOdW1iZXJFbGVtZW50cyIsCisgICAgICAgICJDdXJyZW5jeUVsZW1lbnRzIiwKKyAgICAgICAgIkRhdGVUaW1lUGF0dGVybnMiLAorICAgICAgICAiRGF0ZVRpbWVFbGVtZW50cyIsICAgCisgICAgICAgICJDb2xsYXRpb25FbGVtZW50cyIsCisgICAgICAgICJ6b25lU3RyaW5ncyIsCisgICAgICAgICJsb2NhbFBhdHRlcm5DaGFycyIsCisgICAgfTsKKworCisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBuZXcgQ29udmVydEphdmFMb2NhbGUoYXJncywgU3lzdGVtLm91dCk7CisgICAgICAgIH0gY2F0Y2ggKFRocm93YWJsZSB0KSB7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlVua25vd24gZXJyb3I6ICIrdCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIENvbnZlcnRKYXZhTG9jYWxlKFN0cmluZyBhcmdzW10sIFByaW50U3RyZWFtIG91dCkgeworICAgICAgICBwcm9jZXNzKGFyZ3MsIG91dCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHByb2Nlc3MoU3RyaW5nIGFyZ3NbXSwgUHJpbnRTdHJlYW0gb3V0KSB7CisgICAgICAgIHNob3J0IG9wdGlvbnMgPSBpZGVudGlmeU9wdGlvbnMoYXJncyk7CisgICAgICAgIGlmICgoYXJncy5sZW5ndGggPCAxKSB8fCAoKG9wdGlvbnMgJiBPUFRfVU5LTk9XTikgIT0gMCkpIHsKKyAgICAgICAgICAgIHByaW50VXNhZ2UoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBsb2NhbGVOYW1lID0gbnVsbDsKKyAgICAgICAgICAgIFN0cmluZyBwYWNrYWdlbmFtZSA9IG51bGw7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmcgdGhpc0FyZyA9IGFyZ3NbaV07CisgICAgICAgICAgICAgICAgaWYoYXJnc1tpXS5lcXVhbHNJZ25vcmVDYXNlKCItcGFja2FnZSIpKXsKKyAgICAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICAgICAgICAgcGFja2FnZW5hbWUgPSBhcmdzW2ldOworICAgICAgICAgICAgICAgIH1lbHNlIGlmKGFyZ3NbaV0uZXF1YWxzSWdub3JlQ2FzZSgiLWljdSIpKXsKKyAgICAgICAgICAgICAgICB9ZWxzZSBpZiAoIWFyZ3NbaV0uc3RhcnRzV2l0aCgiLSIpKSB7CisgICAgICAgICAgICAgICAgICAgIGxvY2FsZU5hbWUgPSBhcmdzW2ldOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZpbmFsIEhhc2h0YWJsZSBkYXRhID0gbmV3IEhhc2h0YWJsZSgpOworICAgICAgICAgICAgZmluYWwgU3RyaW5nIGxvY2FsZUVsZW1lbnRzID0gcGFja2FnZW5hbWUrIi5Mb2NhbGVFbGVtZW50cyIgKworICAgICAgICAgICAgICAgICAgICAoU3RyaW5nKSgobG9jYWxlTmFtZSAhPSBudWxsKSA/ICJfIitsb2NhbGVOYW1lIDogIiIpOworICAgICAgICAgICAgZmluYWwgU3RyaW5nIERhdGVGb3JtYXRab25lRGF0YSA9IHBhY2thZ2VuYW1lKyIuRGF0ZUZvcm1hdFpvbmVEYXRhIiArCisgICAgICAgICAgICAgICAgICAgIChTdHJpbmcpKChsb2NhbGVOYW1lICE9IG51bGwpID8gIl8iK2xvY2FsZU5hbWUgOiAiIik7CisgICAgICAgICAgICBhZGRMb2NhbGVEYXRhKGxvY2FsZUVsZW1lbnRzLCBkYXRhKTsKKyAgICAgICAgICAgIGFkZExvY2FsZURhdGEoRGF0ZUZvcm1hdFpvbmVEYXRhLCBkYXRhKTsKKyAgICAgICAgICAgIGZpbmFsIExvY2FsZSBsb2NhbGUgPSBsb2NhbGVGcm9tU3RyaW5nKGxvY2FsZU5hbWUpOworICAgICAgICAgICAgaWYgKChvcHRpb25zICYgT1BUXzExKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgbmV3IEphdmExTG9jYWxlV3JpdGVyKG91dCwgU3lzdGVtLmVycikud3JpdGUobG9jYWxlLCBkYXRhKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgob3B0aW9ucyAmIE9QVF8xMikgIT0gMCkgeworICAgICAgICAgICAgICAgIG5ldyBKYXZhTG9jYWxlV3JpdGVyKG91dCwgU3lzdGVtLmVycikud3JpdGUobG9jYWxlLCBkYXRhKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgob3B0aW9ucyAmIE9QVF9JQ1UpICE9IDApIHsKKyAgICAgICAgICAgICAgICBuZXcgSUNVTG9jYWxlV3JpdGVyKG91dCwgU3lzdGVtLmVycikud3JpdGUobG9jYWxlLCBkYXRhKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBhZGRMb2NhbGVEYXRhKGZpbmFsIFN0cmluZyBidW5kbGVDbGFzc05hbWUsIGZpbmFsIEhhc2h0YWJsZSBkYXRhKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmaW5hbCBDbGFzcyBidW5kbGVDbGFzcyA9IENsYXNzLmZvck5hbWUoYnVuZGxlQ2xhc3NOYW1lKTsKKyAgICAgICAgICAgIGZpbmFsIFJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IChSZXNvdXJjZUJ1bmRsZSlidW5kbGVDbGFzcy5uZXdJbnN0YW5jZSgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0YWdzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgZmluYWwgT2JqZWN0IHJlc291cmNlID0gYnVuZGxlLmdldE9iamVjdCh0YWdzW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgZGF0YS5wdXQodGFnc1tpXSwgcmVzb3VyY2UpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChDbGFzc05vdEZvdW5kRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiQ291bGQgbm90IGZpbmQgYnVuZGxlIGNsYXNzIGZvciBidW5kbGU6ICIrYnVuZGxlQ2xhc3NOYW1lKTsKKyAgICAgICAgfSBjYXRjaCAoSW5zdGFudGlhdGlvbkV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkNvdWxkIG5vdCBjcmVhdGUgYnVuZGxlIGluc3RhbmNlIGZvciBidW5kbGU6ICIrYnVuZGxlQ2xhc3NOYW1lKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkNvdWxkIG5vdCBjcmVhdGUgYnVuZGxlIGluc3RhbmNlIGZvciBidW5kbGU6ICIrYnVuZGxlQ2xhc3NOYW1lKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcHJpbnRVc2FnZSgpIHsKKyAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJVc2FnZTogQ29udmVydEphdmFMb2NhbGUgWy0xMV0gWy0xMl0gWy1pY3VdIGxvY2FsZU5hbWUiKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzaG9ydCBpZGVudGlmeU9wdGlvbnMoU3RyaW5nW10gb3B0aW9ucykgeworICAgICAgICBzaG9ydCByZXN1bHQgPSAwOworICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG9wdGlvbnMubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgIFN0cmluZyBvcHRpb24gPSBvcHRpb25zW2pdOworICAgICAgICAgICAgaWYgKG9wdGlvbi5zdGFydHNXaXRoKCItIikpIHsKKyAgICAgICAgICAgICAgICBib29sZWFuIG9wdGlvblJlY29nbml6ZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBmb3IgKHNob3J0IGkgPSAwOyBpIDwgVVNFUl9PUFRJT05TLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChVU0VSX09QVElPTlNbaV0uZXF1YWxzKG9wdGlvbikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCB8PSAoc2hvcnQpKDEgPDwgaSk7CisgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25SZWNvZ25pemVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghb3B0aW9uUmVjb2duaXplZCkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgfD0gT1BUX1VOS05PV047CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgTG9jYWxlIGxvY2FsZUZyb21TdHJpbmcoZmluYWwgU3RyaW5nIGxvY2FsZU5hbWUpIHsKKyAgICAgICAgaWYgKGxvY2FsZU5hbWUgPT0gbnVsbCkgcmV0dXJuIG5ldyBMb2NhbGUoIiIsICIiLCAiIik7CisgICAgICAgIFN0cmluZyBsYW5ndWFnZSA9IGxvY2FsZU5hbWU7CisgICAgICAgIFN0cmluZyBjb3VudHJ5ID0gIiI7CisgICAgICAgIFN0cmluZyB2YXJpYW50ID0gIiI7CisgICAgICAgIAorICAgICAgICBpbnQgbmR4ID0gbGFuZ3VhZ2UuaW5kZXhPZignXycpOworICAgICAgICBpZiAobmR4ID49IDApIHsKKyAgICAgICAgICAgIGNvdW50cnkgPSBsYW5ndWFnZS5zdWJzdHJpbmcobmR4KzEpOworICAgICAgICAgICAgbGFuZ3VhZ2UgPSBsYW5ndWFnZS5zdWJzdHJpbmcoMCwgbmR4KTsKKyAgICAgICAgfQorICAgICAgICBuZHggPSBjb3VudHJ5LmluZGV4T2YoJ18nKTsKKyAgICAgICAgaWYgKG5keCA+PSAwKSB7CisgICAgICAgICAgICB2YXJpYW50ID0gY291bnRyeS5zdWJzdHJpbmcobmR4KzEpOworICAgICAgICAgICAgY291bnRyeSA9IGNvdW50cnkuc3Vic3RyaW5nKDAsIG5keCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBMb2NhbGUobGFuZ3VhZ2UsIGNvdW50cnksIHZhcmlhbnQpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29udmVydExvY2FsZVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29udmVydExvY2FsZVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43MzJjZmJlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Db252ZXJ0TG9jYWxlVGVzdC5qYXZhCkBAIC0wLDAgKzEsOTggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29udmVydExvY2FsZVRlc3QuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNToyNyAkIAorICogJFJldmlzaW9uOiAxLjIgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKy8qCisKK0NvbnZlcnRQT1NJWExvY2FsZSBbLTExXSBbLTEyXSBbLWljdV0gWy1pY3UyXSBsb2NhbGVEYXRhRmlsZSBbY2hhck1hcEZpbGUgLi4uXQorCisqLworCitwdWJsaWMgY2xhc3MgQ29udmVydExvY2FsZVRlc3QgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pIHsKKy8qCisgICAgICAgIENvbnZlcnRQT1NJWExvY2FsZS5tYWluKCBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgIi0xMiIsCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXGNvbGxhdGlvblRlc3QudHh0IgorICAgICAgICB9ICk7ICAgIAorIAorICAgICAgICBDb252ZXJ0UE9TSVhMb2NhbGUubWFpbiggbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICItaWN1IiwKKyAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcY29sbGF0aW9uVGVzdDIudHh0IiwKKyAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcQ2hhck1hcHNcXElTTy04ODU5LTEiLAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxDaGFyTWFwc1xcbW5lbW9uaWMuZHMiLAorICAgICAgICB9ICk7CisKKyAgICAgICAgQ29udmVydFBPU0lYTG9jYWxlLm1haW4oIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAiLWljdSIsICItTENfTUVTU0FHRVMiLAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxMb2NhbGVzXFxWaXZueDQzLmlibSIsCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXENoYXJNYXBzXFxpYm0xMTI5LTItVW5pQ29kZS5jaG0iLAorICAgICAgICB9ICk7CisvKiAgICAgIENvbnZlcnRQT1NJWExvY2FsZS5tYWluKCBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgIi0xMiIsCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXExvY2FsZXNcXFBPU0lYTG9jYWxlc1xcZW5fVVMiLAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxDaGFyTWFwc1xcSVNPLTg4NTktMSIsCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXENoYXJNYXBzXFxtbmVtb25pYy5kcyIsCisgICAgICAgIH0pOworLyogICAgICBDb252ZXJ0UE9TSVhMb2NhbGUubWFpbiggbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICItMTIiLAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxMb2NhbGVzXFxQT1NJWExvY2FsZXNcXGZpX0ZJIiwKKyAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcQ2hhck1hcHNcXElTTy04ODU5LTEiLAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxDaGFyTWFwc1xcbW5lbW9uaWMuZHMiLAorICAgICAgICB9KTsKKworICAgICAgICBDb252ZXJ0UE9TSVhMb2NhbGUubWFpbiggbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICItMTIiLCAiZW5fQkUiLCAKKyAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcTG9jYWxlc1xcRU5CRVdJTi5JQk0iLAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxDaGFyTWFwc1xcSWJtMTI1Mi5jaG0iLAorICAgICAgICB9KTsKKworICAgICAgICBDb252ZXJ0UE9TSVhMb2NhbGUubWFpbiggbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICItMTIiLCAidmlfVk4iLAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxMb2NhbGVzXFxWaXZueDQzLmlibSIsCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXENoYXJNYXBzXFxpYm0xMTI5LTItVW5pQ29kZS5jaG0iLAorICAgICAgICB9KTsKKworICAgICAgICBDb252ZXJ0UE9TSVhMb2NhbGUubWFpbiggbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICItaWN1IiwgImZyX0ZSIiwgCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXExvY2FsZXNcXFBPU0lYTG9jYWxlc1xcZnJfRlIiLAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxDaGFyTWFwc1xcSVNPLTg4NTktMSIsCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXENoYXJNYXBzXFxtbmVtb25pYy5kcyIsCisgICAgICAgIH0pOworCisgICAgICAgIENvbnZlcnRQT1NJWExvY2FsZS5tYWluKCBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgIi1pY3UiLCAiZm9fRk8iLCAKKyAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcTG9jYWxlc1xcUE9TSVhMb2NhbGVzXFxmb19GTyIsCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXENoYXJNYXBzXFxJU08tODg1OS0xIiwKKyAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcQ2hhck1hcHNcXG1uZW1vbmljLmRzIiwKKyAgICAgICAgfSk7CisqLworICAgICAgICBDb252ZXJ0UE9TSVhMb2NhbGUubWFpbiggbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICItaWN1IiwgImZyX0xVIiwgCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXExvY2FsZXNcXFBPU0lYTG9jYWxlc1xcZnJfTFUiLAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxDaGFyTWFwc1xcSVNPLTg4NTktMSIsCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXENoYXJNYXBzXFxtbmVtb25pYy5kcyIsCisgICAgICAgIH0pOworLyoKKyAgICAgICAgQ29udmVydFBPU0lYTG9jYWxlLm1haW4oIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAiLWljdSIsICJkZV9MVSIsIAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxMb2NhbGVzXFxQT1NJWExvY2FsZXNcXGRlX0xVIiwKKyAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcQ2hhck1hcHNcXElTTy04ODU5LTEiLAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxDaGFyTWFwc1xcbW5lbW9uaWMuZHMiLAorICAgICAgICB9KTsKKyovCisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29udmVydFBPU0lYTG9jYWxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbnZlcnRQT1NJWExvY2FsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmVhNjljMWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbnZlcnRQT1NJWExvY2FsZS5qYXZhCkBAIC0wLDAgKzEsMzUyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbnZlcnRQT1NJWExvY2FsZS5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzA2LzIwIDAxOjE3OjExICQgCisgKiAkUmV2aXNpb246IDEuMyAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC4qOworCisvKioKKworVGhlIENvbnZlcnRQT1NJWExvY2FsZSBhcHBsaWNhdGlvbiBjb252ZXJ0cyBQT1NJWCBsb2NhbGUgZmlsZXMgdG8gCitKYXZhIGFuZCBJQ1UgTG9jYWxlIGZpbGVzLiAgSXQncyB1c2FnZSBpcyBhcyBmb2xsb3dzCisKKyAgICBDb252ZXJ0UE9TSVhMb2NhbGUgCisgICAgICAgIFstTENfQ1RZUEVdCisgICAgICAgIFstTENfVElNRV0KKyAgICAgICAgWy1MQ19OVU1FUklDXSAKKyAgICAgICAgWy1MQ19NT05FVEFSWV0gCisgICAgICAgIFstTENfTUVTU0FHRVNdIAorICAgICAgICBbLTExXSAKKyAgICAgICAgWy0xMl0gCisgICAgICAgIFstaWN1XQorICAgICAgICBbLWljdTJdCisgICAgICAgIGxvY2FsZU5hbWUKKyAgICAgICAgbG9jYWxlRGF0YUZpbGUgCisgICAgICAgIFtjaGFyTWFwRmlsZSAuLi5dCisgICAgICAgIAorVGhlIGFwcGxpY2F0aW9uIGlzIGludm9rZWQgd2l0aCBvcHRpb25zIHNwZWNpZnlpbmcgdGhlIGZvcm1hdChzKSBvZgordGhlIGxvY2FsZSBmaWxlKHMpIHRvIGdlbmVyYXRlIGFzIHdlbGwgYXMgdGhlIFBPU0lYIGxvY2FsZSBmaWxlIGFuZAorY2hhcmFjdGVyIG1hcHBpbmcgZmlsZXMuCisKK1VzYWdlCisKKy1MQ19DVFlQRQorICAgIElmIHRoZSAtTENfQ1RZUEUgb3B0aW9uIGlzIHNwZWNpZmllZCwgdGhlCisgICAgZm9sbG93aW5nIGl0ZW1zIGFyZSBhZGRlZCB0byB0aGUgbG9jYWxlIGlmIHRoZXkKKyAgICBhcmUgcHJlc2VudCBpbiB0aGUgc291cmNlOiB1cHBlciwgbG93ZXIsIGFscGhhLCBkaWdpdCwgCisgICAgc3BhY2UsIGNudHJsLCBwdW5jdCwgZ3JhcGgsIHByaW50LCB4ZGlnaXQsIGJsYW5rLCAKKyAgICB0b3VwcGVyLCB0b2xvd2VyLgorICAgIAorPENPREU+LUxDX1RJTUUKKyAgICBJZiB0aGUgLUxDX1RJTUUgb3B0aW9uIGlzIHNwZWNpZmllZCwgdGhlIGZvbGxvd2luZworICAgIGl0ZW1zIHdpbGwgYmUgaW5jbHVkZWQgaWYgdGhleSBhcmUgcHJlc2VudCBpbiB0aGUgUE9TSVggc291cmNlOgorICAgIGFiZGF5LCBkYXksIGFibW9uLCBtb24sIGRfdF9mbXQsIGRfZnRtLCB0X2ZtdCwgYW1fcG0sCisgICAgdF9mbXRfYW1wbSwgZXJhLCBlcmFfeWVhciwgZXJhX2RfZm10LCBhbHRfZGlnaXRzLgorICAgIAorLUxDX05VTUVSSUMKKyAgICBJZiB0aGUgLUxDX05VTUVSSUMgb3B0aW9uIGlzIHNwZWNpZmllZCwgdGhlIGZvbGxvd2luZworICAgIGl0ZW1zIHdpbGwgYmUgaW5jbHVkZWQgaWYgdGhleSBhcmUgcHJlc2VudCBpbiB0aGUgc291cmNlOgorICAgIGRlY2ltYWxfcG9pbnQsIHRob3VzYW5kc19zZXAsIGdyb3VwaW5nCisKKy1MQ19NT05FVEFSWQorICAgIElmIHRoZSAtTENfTU9ORVRBUlkgb3B0aW9uIGlzIHNwZWNpZmllZCwgdGhlIGZvbGxvd2luZworICAgIGl0ZW1zIHdpbGwgYmUgaW5jbHVkZWQgaWYgdGhleSBhcmUgcHJlc2VudCBpbiB0aGUgc291cmNlOgorICAgIGludF9jdXJyX3N5bWJvbCwgY3VycmVuY3lfc3ltYm9sLCBtb25fZGVjaW1hbF9wb2ludCwKKyAgICBtb25fdGhvdXNhbmRzX3NlcCwgbW9uX2dyb3VwaW5nLCBwb3NpdGl2ZV9zaWduLCAKKyAgICBuZWdhdGl2ZV9zaWduLCBpbnRfZnJhY19kaWdpdHMsIGZyYWNfZGlnaXRzLCBwX2NzX3ByZWNlZGVzLAorICAgIHBfc2VwX2J5X3NwYWNlLCBuX2NzX3ByZWNlZGVzLCBuX3NlcF9ieV9zcGFjZSwgcF9zaWduX3Bvc24uCisKKy1MQ19NRVNTQUdFUworICAgIElmIHRoZSAtTENfTUVTU0FHRVMgb3B0aW9uIGlzIHNwZWNpZmllZCwgdGhlCisgICAgZm9sbG93aW5nIGl0ZW1zIGFyZSBhZGRlZCB0byB0aGUgbG9jYWxlIGlmIHRoZXkKKyAgICBhcmUgcHJlc2VudCBpbiB0aGUgc291cmNlOiB5ZXNleHByLCBub2V4cHIKKworLTExCisgICAgSWYgdGhpcyBvcHRpb24gaXMgc3BlY2lmaWVkLCBkYXRhIGlzIG91dHB1dCBpbiAKKyAgICBKYXZhIDEuMS54IGxvY2FsZSBmb3JtYXQuCisgICAgCistMTIKKyAgICBJZiB0aGlzIG9wdGlvbiBpcyBzcGVjaWZpZWQsIGRhdGEgaXMgb3V0cHV0IGluCisgICAgSmF2YSAxLjIueCBsb2NhbGUgZm9ybWF0LiAgSWYgYW4gb3V0cHV0IGZvcm1hdAorICAgIGlzIG5vdCBzcGVjaWZpZWQsIC0xMiBpcyB0aGUgZGVmYXVsdC4KKyAgICAKKy1pY3UKKyAgICBJZiB0aGlzIG9wdGlvbiBpcyBzcGVjaWZpZWQsIGRhdGEgaXMgb3V0cHV0IGluCisgICAgSUNVIGxvY2FsZSBmb3JtYXQuCisKK2xvY2FsZU5hbWUKKyAgICBUaGUgbmFtZSBvZiB0aGUgbG9jYWxlIGluIHRoZSBsb2NhbGVEYXRhRmlsZS4gIEV4LiAgZW5fVVMuCisKK2xvY2FsZURhdGFGaWxlCisgICAgVGhlIGxvY2FsZURhdGFGaWxlIHBhdGggaXMgcmVxdWlyZWQgYW5kIHNwZWNpZmllcyB0aGUgcGF0aCAKKyAgICB0byB0aGUgbG9jYWxlIGRhdGEgZmlsZS4gIElmIGEgImNvcHkiIGRpcmVjdGl2ZSBpcyBlbmNvdW50ZXJlZCAKKyAgICB3aGlsZSBwcm9jZXNzaW5nIHRoZSBsb2NhbGVEYXRhRmlsZSwgQ29udmVydFBPU0lYTG9jYWxlIHdpbGwgbG9vaworICAgIGluIHRoZSBzYW1lIGRpcmVjdG9yeSBhcyB0aGUgbG9jYWxlRGF0YUZpbGUgZm9yIGFkZGl0aW9uYWwKKyAgICBQT1NJWCBsb2NhbGUgZGF0YSBmaWxlcy4gIEZpbGVzIG11c3QgYmUgaW4gdGhlIFBPU0lYIGZvcm1hdAorICAgIHNwZWNpZmllZCBpbiBJU08vSUVDIDk5NDUtIHdpdGggZXhjZXB0aW9ucyBub3RlZCBiZWxvdy4gIEV4YWN0bHkKKyAgICBvbmUgbG9jYWxlRGF0YUZpbGUgbXVzdCBiZSBzcGVjaWZpZWQuCisgICAgCitjaGFyTWFwRmlsZQorICAgIFplcm8gb3IgbW9yZSBjaGFyYWN0ZXIgbWFwcGluZyBmaWxlcyBtYXkgYmUgc3BlY2lmaWVkLiAgY2hhck1hcEZpbGVzIGFyZSB1c2VkCisgICAgdG8gbWFwIHN5bWJvbHMgaW4gdGhlIGxvY2FsZURhdGFGaWxlIHRvIFVuaWNvZGUgdmFsdWVzLiAgVGhleSBhcmUgcHJvY2Vzc2VkCisgICAgYXMgZm9sbG93cy4gIENvbnZlcnRQT1NJWExvY2FsZSBzZWFyY2hzIGZvciBhIGxpbmUgY29udGFpbmluZyBvbmx5IHRoZQorICAgIHdvcmQgIkNIQVJNQVAiIGFuZCByZWFkcyBzeW1ib2wgbWFwcGluZ3MgdW50aWwgaXQgcmVhY2hlcyBhIGxpbmUKKyAgICBjb250YWluaW5nIG9ubHkgdGhlIHdvcmRzICJFTkQgQ0hBUk1BUCIuICBTeW1ib2wgbWFwcGluZ3MgaGF2ZQorICAgIHRoZSBmb3JtICI8U1lNQk9MPiA8VWhoaGg+IiB3aGVyZSAiPFNZTUJPTD4iIGlzIGFueSBzeW1ib2wgdmFsaWQKKyAgICBpbiBhIGxvY2FsZURhdGFGaWxlIGFuZCAiaGhoaCIgaXMgZm91ciBoZXhpZGVjaW1hbCBkaWdpdHMgcmVwcmVzZW50aW5nCisgICAgdGhlIFVuaWNvZGUgdmFsdWUgZm9yIHRoYXQgc3ltYm9sLiAgU3Vycm9nYXRlIHBhaXJzIGFyZSBub3Qgc3VwcG9ydGVkCisgICAgaW4gY2hhck1hcEZpbGVzLiBBbiBleGFtcGxlIGNoYXJNYXBGaWxlIG1pZ2h0IGNvbnRhaW4gdGhlIGZvbGxvd2luZzoKKworICAgICAgICBDSEFSTUFQCisgICAgICAgIDxTVEFSVF9PRl9URVhUPiAgICAgICA8VTAwMDI+CisgICAgICAgIDxFPiAgICAgICAgICAgICAgICAgICA8VTAwNDU+CisgICAgICAgIDxxPiAgICAgICAgICAgICAgICAgICA8VTAwNzE+CisgICAgICAgIEVORCBDSEFSTUFQCisKKyAgICBzcGVjaWZ5aW5nIHRoYXQgdGhlIHN5bWJvbCA8U1RBUlRfT0ZfVEVYVD4gc2hvdWxkIGJlIHJlcGxhY2VkIGJ5IAorICAgIHRoZSBVbmljb2RlIHZhbHVlIG9mIDB4MDAwMiB3aGVyZXZlciBpdCBvY2N1cnMuCisgICAgCisgICAgV2hlbiBtdWx0aXBsZSBjaGFyTWFwRmlsZXMgYXJlIHNwZWNpZmllZCwgbWFwcGluZ3MgaW4gZmlsZXMgbGlzdGVkIAorICAgIGxhdGVyIHRha2UgcHJlY2VkZW5jZSBvdmVyIGVhcmxpZXIgb25lcy4KKworCitDb252ZXJzaW9uIHRvIElDVSBhbmQgSmF2YToKKworQ29sbGF0aW9uRWxlbWVudHMKKyAgICBDb252ZXJ0ZWQgZnJvbSB0aGUgTENfQ09MTEFURSBzZWN0aW9uLiAgVGhlICIuLi4iIGRpcmVjdGl2ZSBpcyBpZ25vcmVkLgorICAgIFRoZSAicmVwbGFjZS1hZnRlciIgZGlyZWN0aXZlIGlzIGlnbm9yZWQuCisKK0N1cnJlbmN5RWxlbWVudHMKKyAgICBlbGVtZW50IDAgaXMgc2V0IHRvIGN1cnJlbmN5X3N5bWJvbAorICAgIGVsZW1lbnQgMSBpcyBzZXQgdG8gaW50X2N1cnJfc3ltYm9sCisgICAgZWxlbWVudCAyIGlzIHNldCB0byBtb25fZGVjaW1hbF9wb2ludAorICAgIEFsbCBvdGhlciBlbGVtZW50cyBkZWZhdWx0LgorICAgIAorTnVtYmVyRWxlbWVudHMKKyAgICBlbGVtZW50IDAgaXMgc2V0IHRvIGRlY2ltYWxfcG9pbnQKKyAgICBlbGVtZW50IDEgaXMgc2V0IHRvIHRob3VzYW5kc19zZXAKKworTW9udGhOYW1lcyBpcyBzZXQgdG8gbW9uCisKK01vbnRoQWJicmV2aWF0aW9ucyBpcyBzZXQgdG8gYWJtb24KKworRGF5TmFtZXMgaXMgc2V0IHRvIGRheQorCitEYXlBYmJyZXZpYXRpb25zIGlzIHNldCB0byBhYmRheQorCitBbVBtTWFya2VycyBpcyBzZXQgdG8gYW1fcG0KKworRGF0ZVRpbWVQYXR0ZXJucworICAgIGVsZW1lbnRzIDAgdGhyb3VnaCAzIGFyZSBzZXQgdG8gdF9mbXRfYW1wbSB3aXRoIHRoZSBwYXR0ZXJucyBjb252ZXJ0ZWQKKyAgICBlbGVtZW50cyA0IHRocm91Z2ggNyBhcmUgc2V0IHRvIGRfZm10IHdpdGggdGhlIHBhdHRlcm5zIGNvbnZlcnRlZAorCisKK0FkaXRpb24gUE9TSVggZGF0YSBtYXkgYmUgaW5jbHVkZWQgaW4gdGhlIExvY2FsZSBhcyBmb2xsb3dzOgorCitMQ19UWVBFIAorICAgIFRoaXMgc2VjdGlvbiBpcyBpZ25vcmVkIHVubGVzcyB0aGUgLUxDX0NUWVBFIG9wdGlvbiBpcworICAgIHNwZWNpZmllZC4gIElmIHRoZSAtTENfQ1RZUEUgb3B0aW9uIGlzIHNwZWNpZmllZCwgdGhlCisgICAgZm9sbG93aW5nIGl0ZW1zIGFyZSBhZGRlZCB0byB0aGUgbG9jYWxlIGlmIHRoZXkKKyAgICBhcmUgcHJlc2VudCBpbiB0aGUgc291cmNlOiB1cHBlciwgbG93ZXIsIGFscGhhLCBkaWdpdCwgCisgICAgc3BhY2UsIGNudHJsLCBwdW5jdCwgZ3JhcGgsIHByaW50LCB4ZGlnaXQsIGJsYW5rLCAKKyAgICB0b3VwcGVyLCB0b2xvd2VyLgorCitMQ19NRVNTQUdFUworICAgIAorTENfTU9ORVRBUlkKKyAgICAKK0xDX05VTUVSSUMKKworTENfVElNRQorICAgIElmIHRoZSAtTENfVElNRSBvcHRpb24gaXMgc3BlY2lmaWVkLCB0aGUgZm9sbG93aW5nCisgICAgaXRlbXMgd2lsbCBiZSBpbmNsdWRlZCBpZiB0aGV5IGFyZSBwcmVzZW50IGluIHRoZSBzb3VyY2U6CisgICAgYWJkYXksIGRheSwgYWJtb24sIG1vbiwgZF90X2ZtdCwgZF9mdG0sIHRfZm10LCBhbV9wbSwKKyAgICB0X2ZtdF9hbXBtLCBlcmEsIGVyYV95ZWFyLCBlcmFfZF9mbXQsIGFsdF9kaWdpdHMuCisKK0xDX0NPTExBVEUKKyAgICBDb252ZXJ0ZWQgdG8gQ29sbGF0aW9uRWxlbWVudHMgaW4gdGhlIHJlc291cmNlIGZpbGUuCisgICAgCisgICAgCisqLworCitwdWJsaWMgY2xhc3MgQ29udmVydFBPU0lYTG9jYWxlIHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBzaG9ydCBPUFRfTENfQ1RZUEUgPSAweDAwMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBzaG9ydCBPUFRfTENfVElNRSA9IDB4MDAyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHNob3J0IE9QVF9MQ19OVU1FUklDID0gMHgwMDQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc2hvcnQgT1BUX0xDX01PTkVUQVJZID0gMHgwMDg7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc2hvcnQgT1BUX0xDX01FU1NBR0VTID0gMHgwMTA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc2hvcnQgT1BUXzExID0gMHgwMjA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc2hvcnQgT1BUXzEyID0gMHgwNDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc2hvcnQgT1BUX0lDVSA9IDB4MDgwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHNob3J0IE9QVF9JQ1UyID0gMHgxMDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc2hvcnQgT1BUX1JBVyA9IDB4MjAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHNob3J0IE9QVF9VTktOT1dOID0gMHg0MDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBVU0VSX09QVElPTlNbXSA9IHsKKyAgICAgICAgIi1MQ19DVFlQRSIsIAorICAgICAgICAiLUxDX1RJTUUiLCAKKyAgICAgICAgIi1MQ19OVU1FUklDIiwgCisgICAgICAgICItTENfTU9ORVRBUlkiLAorICAgICAgICAiLUxDX01FU1NBR0VTIiwKKyAgICAgICAgIi0xMSIsIAorICAgICAgICAiLTEyIiwgCisgICAgICAgICItaWN1IiwgCisgICAgICAgICItaWN1MiIsIAorICAgICAgICAiLVJBVyIsCisgICAgICAgICItZW5jIiwKKyAgICB9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHNob3J0IE9QVF9DT05WRVJUID0gKHNob3J0KShPUFRfTENfQ1RZUEUgfCBPUFRfTENfVElNRSAKKyAgICAgICAgICAgIHwgT1BUX0xDX05VTUVSSUMgfCBPUFRfTENfTU9ORVRBUlkgfCBPUFRfTENfTUVTU0FHRVMpOworICAgIAorICAgIHByaXZhdGUgSGFzaHRhYmxlIGRhdGE7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBuZXcgQ29udmVydFBPU0lYTG9jYWxlKGFyZ3MpOworICAgICAgICB9IGNhdGNoIChUaHJvd2FibGUgdCkgeworICAgICAgICAgICAgdC5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiVW5rbm93biBlcnJvcjogIit0KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgQ29udmVydFBPU0lYTG9jYWxlKFN0cmluZyBhcmdzW10pIHsKKyAgICAgICAgcHJvY2VzcyhhcmdzKTsKKyAgICAgICAgICAgIC8ve3tJTklUX0NPTlRST0xTCisJCS8vfX0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgcHJvY2VzcyhTdHJpbmcgYXJnc1tdKSB7CisgICAgICAgIHNob3J0IG9wdGlvbnMgPSBpZGVudGlmeU9wdGlvbnMoYXJncyk7CisgICAgICAgIFN0cmluZyBlbmM9bnVsbDsKKyAgICAgICAgaWYgKChhcmdzLmxlbmd0aCA8IDIpIHx8ICgob3B0aW9ucyAmIE9QVF9VTktOT1dOKSAhPSAwKSkgeworICAgICAgICAgICAgcHJpbnRVc2FnZSgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgVmVjdG9yIG1hcEZpbGVzID0gbmV3IFZlY3RvcigpOworICAgICAgICAgICAgTG9jYWxlIGxvY2FsZSA9IG51bGw7CisgICAgICAgICAgICBTdHJpbmcgZmlsZU5hbWUgPSBudWxsOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgZmluYWwgU3RyaW5nIHRoaXNBcmcgPSBhcmdzW2ldOworICAgICAgICAgICAgICAgIGlmICh0aGlzQXJnLnN0YXJ0c1dpdGgoIi0iKSkgeworICAgICAgICAgICAgICAgICAgICBpZih0aGlzQXJnLnN0YXJ0c1dpdGgoIi1lbmMiKSl7CisgICAgICAgICAgICAgICAgICAgICAgICBlbmMgPSBhcmdzWysraV07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxvY2FsZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGxvY2FsZSA9IGxvY2FsZUZyb21TdHJpbmcodGhpc0FyZyk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmaWxlTmFtZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGZpbGVOYW1lID0gdGhpc0FyZzsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtYXBGaWxlcy5hZGRFbGVtZW50KHRoaXNBcmcpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGVuYz09bnVsbCl7CisgICAgICAgICAgICAgICAgZW5jPSJEZWZhdWx0IjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgoZmlsZU5hbWUgPT0gbnVsbCkgfHwgKGxvY2FsZSA9PSBudWxsKSB8fCAob3B0aW9ucyA9PSAwKSkgeworICAgICAgICAgICAgICAgIHByaW50VXNhZ2UoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgUG9zaXhDaGFyTWFwIG1hcCA9IG5ldyBQb3NpeENoYXJNYXAoKTsKKyAgICAgICAgICAgICAgICBFbnVtZXJhdGlvbiBlbnVtID0gbWFwRmlsZXMuZWxlbWVudHMoKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoZW51bS5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbWFwRmlsZSA9IChTdHJpbmcpZW51bS5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkxvY2FsZTogIitsb2NhbGUpOworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkxvYWRpbmcgY2hhcmFjdGVyIG1hcCBmaWxlOiAiK21hcEZpbGUpOworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgbWFwLmxvYWQobmV3IEZpbGUobWFwRmlsZSksZW5jKTsKKyAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJFcnJvciBsb2FkaW5nIG1hcCBmaWxlOiAiK21hcEZpbGUrIiAgIitlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRmlsZSBza2lwcGVkIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU3ltYm9sVHJhbnNpdGlvbi5zZXRDaGFyTWFwKG1hcCk7CisgICAgICAgICAgICAgICAgRmlsZSBkYXRhRmlsZSA9IG5ldyBGaWxlKGZpbGVOYW1lKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkxvY2FsZSBkaXJlY3Rvcnk6ICIrZGF0YUZpbGUuZ2V0UGFyZW50KCkpOworICAgICAgICAgICAgICAgIFBPU0lYTG9jYWxlUmVhZGVyIHJlYWRlciA9IG5ldyBQT1NJWExvY2FsZVJlYWRlcihkYXRhRmlsZS5nZXRQYXJlbnQoKSwgbG9jYWxlKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlBhcnNpbmcgZmlsZTogIitkYXRhRmlsZS5nZXROYW1lKCkpOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIGRhdGEgPSByZWFkZXIucGFyc2UoZGF0YUZpbGUuZ2V0TmFtZSgpLCAoYnl0ZSkob3B0aW9ucyAmIE9QVF9DT05WRVJUKSk7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiQ29udmVydGluZy4uLi4iKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKChvcHRpb25zICYgT1BUXzExKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSmF2YTFMb2NhbGVXcml0ZXIoU3lzdGVtLm91dCwgU3lzdGVtLmVycikud3JpdGUobG9jYWxlLCBkYXRhKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoKG9wdGlvbnMgJiBPUFRfMTIpICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBKYXZhTG9jYWxlV3JpdGVyKFN5c3RlbS5vdXQsIFN5c3RlbS5lcnIpLndyaXRlKGxvY2FsZSwgZGF0YSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKChvcHRpb25zICYgT1BUX0lDVSkgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbmV3IElDVUxvY2FsZVdyaXRlcihTeXN0ZW0ub3V0LCBTeXN0ZW0uZXJyKS53cml0ZShsb2NhbGUsIGRhdGEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgob3B0aW9ucyAmIE9QVF9JQ1UyKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSUNVMkxvY2FsZVdyaXRlcihTeXN0ZW0ub3V0LCBTeXN0ZW0uZXJyKS53cml0ZShsb2NhbGUsIGRhdGEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgob3B0aW9ucyAmIE9QVF9SQVcpICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJQ1VMb2NhbGVXcml0ZXIoU3lzdGVtLm91dCwgU3lzdGVtLmVycikud3JpdGUobG9jYWxlLCBkYXRhKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBwcmludFVzYWdlKCkgeworICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlVzYWdlOiBDb252ZXJ0UE9TSVhMb2NhbGUgWy1MQ19DVFlQRV0gWy1MQ19USU1FXSIrCisgICAgICAgICAgICAiIFstTENfTlVNRVJJQ10gWy1MQ19NT05FVEFSWV0gWy1MQ19NRVNTQUdFU10gWy0xMV0gWy0xMl0gWy1pY3VdIisgCisgICAgICAgICAgICAiIGxvY2FsZU5hbWUgbG9jYWxlRGF0YUZpbGUgW2NoYXJNYXBGaWxlIC4uLl0iKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzaG9ydCBpZGVudGlmeU9wdGlvbnMoU3RyaW5nW10gb3B0aW9ucykgeworICAgICAgICBzaG9ydCByZXN1bHQgPSAwOworICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG9wdGlvbnMubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgIFN0cmluZyBvcHRpb24gPSBvcHRpb25zW2pdOworICAgICAgICAgICAgaWYgKG9wdGlvbi5zdGFydHNXaXRoKCItIikpIHsKKyAgICAgICAgICAgICAgICBib29sZWFuIG9wdGlvblJlY29nbml6ZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBmb3IgKHNob3J0IGkgPSAwOyBpIDwgVVNFUl9PUFRJT05TLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChVU0VSX09QVElPTlNbaV0uZXF1YWxzKG9wdGlvbikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCB8PSAoc2hvcnQpKDEgPDwgaSk7CisgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25SZWNvZ25pemVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghb3B0aW9uUmVjb2duaXplZCkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgfD0gT1BUX1VOS05PV047CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgTG9jYWxlIGxvY2FsZUZyb21TdHJpbmcoZmluYWwgU3RyaW5nIGxvY2FsZU5hbWUpIHsKKyAgICAgICAgU3RyaW5nIGxhbmd1YWdlID0gbG9jYWxlTmFtZTsKKyAgICAgICAgU3RyaW5nIGNvdW50cnkgPSAiIjsKKyAgICAgICAgU3RyaW5nIHZhcmlhbnQgPSAiIjsKKyAgICAgICAgCisgICAgICAgIGludCBuZHggPSBsYW5ndWFnZS5pbmRleE9mKCdfJyk7CisgICAgICAgIGlmIChuZHggPj0gMCkgeworICAgICAgICAgICAgY291bnRyeSA9IGxhbmd1YWdlLnN1YnN0cmluZyhuZHgrMSk7CisgICAgICAgICAgICBsYW5ndWFnZSA9IGxhbmd1YWdlLnN1YnN0cmluZygwLCBuZHgpOworICAgICAgICB9CisgICAgICAgIG5keCA9IGNvdW50cnkuaW5kZXhPZignXycpOworICAgICAgICBpZiAobmR4ID49IDApIHsKKyAgICAgICAgICAgIHZhcmlhbnQgPSBjb3VudHJ5LnN1YnN0cmluZyhuZHgrMSk7CisgICAgICAgICAgICBjb3VudHJ5ID0gY291bnRyeS5zdWJzdHJpbmcoMCwgbmR4KTsKKyAgICAgICAgfQorICAgICAgICBuZHggPSBjb3VudHJ5LmluZGV4T2YoJ0AnKTsKKyAgICAgICAgaWYobmR4PjApeworICAgICAgICAgICAgdmFyaWFudCA9IGNvdW50cnkuc3Vic3RyaW5nKG5keCsxKTsKKyAgICAgICAgICAgIGNvdW50cnkgPSBjb3VudHJ5LnN1YnN0cmluZygwLG5keCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBMb2NhbGUobGFuZ3VhZ2UsIGNvdW50cnksIHZhcmlhbnQpOworICAgIH0KKyAgICAvL3t7REVDTEFSRV9DT05UUk9MUworCS8vfX0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvRU9MVHJhbnNpdGlvbi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9FT0xUcmFuc2l0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYWEyMDNmMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvRU9MVHJhbnNpdGlvbi5qYXZhCkBAIC0wLDAgKzEsMTEzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0VPTFRyYW5zaXRpb24uamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNToyNyAkIAorICogJFJldmlzaW9uOiAxLjMgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworLyoqCisgKiBUaGlzIHRyYW5zaXRpb24gcGFyc2VzIGFuIGVuZC1vZi1saW5lIHNlcXVlbmNlLiAgVGhlIGNvbW1lbnQgY2hhcmFjdGVyCisgKiBjYW4gYmUgc2V0IHRvIGFuIGFyYml0cmFyeSBjaGFyYWN0ZXIsIGJ1dCBpdCBpcyBzaGFyZWQgZ2xvYmFsbHkuCisgKiBBIGNvbW1lbnQgbWF5IG9ubHkgb2NjdXIgYWZ0ZXIgYW4gZW5kLW9mLWxpbmUuCisgKiBFT0wgOj0gPEVPRj4gfCA8RU9MX0NIQVJTPiBbIDxFT0xfU0VHTUVOVD4gXSoKKyAqIEVPTF9TRUdNRU5UIDo9IDxFT0xfQ0hBUlM+IHwgPFNQQUNFX0NIQVJTPiB8IDxDT01NRU5UPgorICogU1BBQ0VfQ0hBUlMgOj0gIiBcdCI7CisgKiBFT0xfQ0hBUlMgPSAiXHJcblx1MjAyOFx1MjAyOSI7CisgKiBDT01NRU5UX1NUUklORyA6PSA8Q09NTUVOVF9DSEFSPiA8Q09NTUVOVF9CT0RZPgorICogQ09NTUVOVF9DSEFSID0gIiMiOworICogQ09NTUVOVF9CT0RZID0gWyB+PEVPRj4gJiB+PEVPTF9DSEFSUz4gXSoKKyAqLworcHVibGljIGNsYXNzIEVPTFRyYW5zaXRpb24gZXh0ZW5kcyBDb21wbGV4VHJhbnNpdGlvbiB7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgRU9MX0NIQVJTID0gIlxmXHJcblx1MjAyOFx1MjAyOSI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjaGFyIERFRkFVTFRfQ09NTUVOVF9DSEFSID0gJyMnOworICAgIHB1YmxpYyBzdGF0aWMgY2hhciBDT01NRU5UX0NIQVIgPSBERUZBVUxUX0NPTU1FTlRfQ0hBUjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEVPTFRyYW5zaXRpb24gR0xPQkFMID0gbmV3IEVPTFRyYW5zaXRpb24oU1VDQ0VTUyk7CisgICAgCisgICAgICAgIC8qKiBSZXN0b3JlIHRoZSBjb21tZW50IGNoYXJhY3RlciB0byB0aGUgZGVmYXVsdCB2YWx1ZSAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIGNoYXIgc2V0RGVmYXVsdENvbW1lbnRDaGFyKCkgeworICAgICAgICByZXR1cm4gc2V0Q29tbWVudENoYXIoREVGQVVMVF9DT01NRU5UX0NIQVIpOworICAgIH0KKyAgICAKKyAgICAgICAgLyoqIFNldCBhIG5ldyBjb21tZW50IGNoYXJhY3RlciAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIGNoYXIgc2V0Q29tbWVudENoYXIoY2hhciBjKSB7CisgICAgICAgIGNoYXIgcmVzdWx0ID0gQ09NTUVOVF9DSEFSOworICAgICAgICBDT01NRU5UX0NIQVIgPSBjOworICAgICAgICBzdGF0ZXMgPSBudWxsOyAgLy9mbHVzaCBzdGF0ZXMKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgcHVibGljIEVPTFRyYW5zaXRpb24oaW50IHN1Y2Nlc3MpIHsKKyAgICAgICAgc3VwZXIoc3VjY2Vzcyk7CisgICAgICAgICAgICAvL3t7SU5JVF9DT05UUk9MUworICAgICAgICAvL319Cit9CisgICAgcHVibGljIGJvb2xlYW4gYWNjZXB0cyhpbnQgYykgeworICAgICAgICByZXR1cm4gRU9MX0NIQVJTLmluZGV4T2YoKGNoYXIpYykgPj0gMDsKKyAgICB9CisgICAgcHJvdGVjdGVkIExleC5UcmFuc2l0aW9uW11bXSBnZXRTdGF0ZXMoKSB7CisgICAgICAgIHN5bmNocm9uaXplZCAoZ2V0Q2xhc3MoKSkgeworICAgICAgICAgICAgaWYgKHN0YXRlcyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgLy9jYWNoZSB0aGUgc3RhdGVzIHNvIHRoZXkgY2FuIGJlIHNoYXJlZC4gIFRoaXMgc3RhdGVzCisgICAgICAgICAgICAgICAgLy9uZWVkIHRvIGJlIGZsdXNoZWQgYW5kIHJlYnVpbHQgd2hlbiB0aGUgY29tbWVudAorICAgICAgICAgICAgICAgIC8vY2hhcmFjdGVyIGNoYW5nZXMuCisgICAgICAgICAgICAgICAgc3RhdGVzID0gbmV3IExleC5UcmFuc2l0aW9uW11bXSB7CisgICAgICAgICAgICAgICAgICAgIHsgLy9zdGF0ZSAwOiAKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguU3RyaW5nVHJhbnNpdGlvbihFT0xfQ0hBUlMsIExleC5JR05PUkVfQ09OU1VNRSwgLTEpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5FT0ZUcmFuc2l0aW9uKFNVQ0NFU1MpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5QYXJzZUV4Y2VwdGlvblRyYW5zaXRpb24oImJhZCBjaGFyYWN0ZXJzIGluIEVPTCIpCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsgLy9zdGF0ZSAxOgorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5DaGFyVHJhbnNpdGlvbihDT01NRU5UX0NIQVIsIExleC5JR05PUkVfQ09OU1VNRSwgLTIpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5TdHJpbmdUcmFuc2l0aW9uKEVPTF9DSEFSUywgTGV4LklHTk9SRV9DT05TVU1FLCAtMSksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LlN0cmluZ1RyYW5zaXRpb24oU3BhY2VUcmFuc2l0aW9uLlNQQUNFX0NIQVJTLCBMZXguSUdOT1JFX0NPTlNVTUUsIC0xKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguRU9GVHJhbnNpdGlvbihTVUNDRVNTKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguRGVmYXVsdFRyYW5zaXRpb24oTGV4LklHTk9SRV9QVVRCQUNLLCBTVUNDRVNTKQorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7IC8vc3RhdGUgMjoKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguU3RyaW5nVHJhbnNpdGlvbihFT0xfQ0hBUlMsIExleC5JR05PUkVfQ09OU1VNRSwgLTEpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5FT0ZUcmFuc2l0aW9uKFNVQ0NFU1MpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5EZWZhdWx0VHJhbnNpdGlvbihMZXguSUdOT1JFX0NPTlNVTUUsIC0yKQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc3RhdGVzOworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBMZXguVHJhbnNpdGlvbltdW10gc3RhdGVzOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3NbXSkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgTGV4LlRyYW5zaXRpb25bXVtdIHN0YXRlcyA9IHt7IAorICAgICAgICAgICAgICAgIG5ldyBFT0xUcmFuc2l0aW9uKFNVQ0NFU1MpLmRlYnVnKHRydWUpLAorICAgICAgICAgICAgICAgIG5ldyBMZXguRU9GVHJhbnNpdGlvbigpLAorICAgICAgICAgICAgICAgIG5ldyBMZXguUGFyc2VFeGNlcHRpb25UcmFuc2l0aW9uKCJiYWQgdGVzdCBpbnB1dCIpCisgICAgICAgICAgICB9fTsKKyAgICAgICAgICAgIFN0cmluZyB0ZXh0ID0gIlxuXHJcbiMgSGVsbG8gV29ybGRcblxyXG5cblxuXHJcclxuI2hlbGxvICBrZHNqXG4iOworICAgICAgICAgICAgU3RyaW5nUmVhZGVyIHNyID0gbmV3IFN0cmluZ1JlYWRlcih0ZXh0KTsKKyAgICAgICAgICAgIFB1c2hiYWNrUmVhZGVyIHByID0gbmV3IFB1c2hiYWNrUmVhZGVyKHNyKTsKKyAgICAgICAgICAgIExleCBwYXJzZXIgPSBuZXcgTGV4KHN0YXRlcywgcHIpOworICAgICAgICAgICAgcGFyc2VyLmRlYnVnKHRydWUpOworICAgICAgICAgICAgLy9wYXJzZXIuZGVidWcodHJ1ZSk7CisgICAgICAgICAgICBpbnQgcyA9IHBhcnNlci5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgIHdoaWxlIChzID09IFNVQ0NFU1MpIHsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbihwYXJzZXIuZ2V0RGF0YSgpKTsKKyAgICAgICAgICAgICAgICBzID0gcGFyc2VyLm5leHRUb2tlbigpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGUpOworICAgICAgICB9CisgICAgfQorICAgIC8ve3tERUNMQVJFX0NPTlRST0xTCisgICAgLy99fQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Fc2NhcGVUcmFuc2l0aW9uLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0VzY2FwZVRyYW5zaXRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wYTZmZmIwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Fc2NhcGVUcmFuc2l0aW9uLmphdmEKQEAgLTAsMCArMSwxNTIgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvRXNjYXBlVHJhbnNpdGlvbi5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA1OjI4ICQgCisgKiAkUmV2aXNpb246IDEuMiAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworLyoqCisgKiBBbiBlc2NhcGUgdHJhbnNpdGlvbiBwYXJzZXMgYSBQT1NJWCBlc2NhcGUgc2VxdWVuY2UuICBBbiBlc2NhcGUKKyAqIHNlcXVlbmNlIGNhbiBiZSBhIGhleCwgb2N0YWwsIG9yIGRlY2ltYWwgY29uc3RhbnQsIG9yIGFuIGVzY2FwZWQKKyAqIGNoYXJhY3Rlci4gIFRoZSByZXN1bHRhbnQgdmFsdWUgaXMgQUxXQVlTIG9uIGJ5dGUgbG9uZy4gIExvbmdlcgorICogZXNjYXBlZCB2YWx1ZXMgKGllLlx4RkY2Mykgb3ZlcmZsb3cgYW5kIGFyZSB0cnVuY2F0ZWQuICBBbiBlc2NhcGUKKyAqIGNoYXJhY3RlciBmb2xsb3dlZCBieSBhbiBFT0wgc2VxdWVuY2UgaXMgc2lsZW50bHkgZWF0ZW4uCisgKi8KK3B1YmxpYyBjbGFzcyBFc2NhcGVUcmFuc2l0aW9uIGV4dGVuZHMgQ29tcGxleFRyYW5zaXRpb24geworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRXNjYXBlVHJhbnNpdGlvbiBHTE9CQUwgPSBuZXcgRXNjYXBlVHJhbnNpdGlvbihTVUNDRVNTKTsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2hhciBERUZBVUxUX0VTQ0FQRV9DSEFSID0gJ1xcJzsKKyAgICBwdWJsaWMgc3RhdGljIGNoYXIgRVNDQVBFX0NIQVIgPSBERUZBVUxUX0VTQ0FQRV9DSEFSOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBERUNJTUFMID0gMTsgICAvL2RlY2ltYWwgZXNjYXBlIHNlcXVlbmNlIHdhcyBwYXJzZWQKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgT0NUQUwgPSAyOyAgICAgLy9vY3RhbCBlc2NhcGUgc2VxdWVuY2Ugd2FzIHBhcnNlZAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIRVggPSAzOyAgICAgICAvL2hleCBlc2NhcGUgc2VxdWVuY2Ugd2FzIHBhcnNlZAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFU0NBUEUgPSA0OyAgICAvL2NoYXJhY3RlciBlc2NhcGUgc2VxdWVuY2Ugd2FzIHBhcnNlZAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFT0wgPSA1OyAgICAgICAvL2FuIGVzY2FwZSBjaGFyYWN0ZXIgZm9sbG93ZWQgYnkgRU9GIGVhdGVuCisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIE9DVEFMX0NIQVJTID0gIjAxMjM0NTY3IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgREVDSU1BTF9DSEFSUyA9ICIwMTIzNDU2Nzg5IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSEVYX0NIQVJTID0gIjAxMjM0NTY3ODlhYmNkZWZBQkNERUYiOworICAgIAorICAgICAgICAvKiogU2V0IHRoZSBlc2NhcGUgY2hhcmFjdGVyIHRvIHRoZSBkZWZhdWx0ICovCisgICAgcHVibGljIHN0YXRpYyBzeW5jaHJvbml6ZWQgY2hhciBzZXREZWZhdWx0RXNjYXBlQ2hhcigpIHsKKyAgICAgICAgcmV0dXJuIHNldEVzY2FwZUNoYXIoREVGQVVMVF9FU0NBUEVfQ0hBUik7CisgICAgfQorICAgIAorICAgICAgICAvKiogU2V0IHRoZSBlc2NhcGUgY2hhcmFjdGVyICovCisgICAgcHVibGljIHN0YXRpYyBzeW5jaHJvbml6ZWQgY2hhciBzZXRFc2NhcGVDaGFyKGNoYXIgYykgeworICAgICAgICBjaGFyIHJlc3VsdCA9IEVTQ0FQRV9DSEFSOworICAgICAgICBFU0NBUEVfQ0hBUiA9IGM7CisgICAgICAgIHRoZVN0YXRlcyA9IG51bGw7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBFc2NhcGVUcmFuc2l0aW9uKGludCBzdWNjZXNzKSB7CisgICAgICAgIHN1cGVyKHN1Y2Nlc3MpOworICAgICAgICAgICAgLy97e0lOSVRfQ09OVFJPTFMKKyAgICAgICAgLy99fQorfQorICAgIAorICAgIHB1YmxpYyBib29sZWFuIGFjY2VwdHMoaW50IGMpIHsKKyAgICAgICAgcmV0dXJuIEVTQ0FQRV9DSEFSID09IChjaGFyKWM7CisgICAgfQorICAgIAorICAgICAgICAvKiogQ29udmVydCB0aGUgYWNjZXB0ZWQgdGV4dCBpbnRvIHRoZSBhcHByb3ByaWF0ZSB1bmljb2RlIGNoYXJhY3RlciAqLworICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVN1Y2Nlc3MoTGV4IHBhcnNlciwgU3RyaW5nQnVmZmVyIG91dHB1dCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgc3dpdGNoIChwYXJzZXIuZ2V0U3RhdGUoKSkgeworICAgICAgICBjYXNlIERFQ0lNQUw6CisgICAgICAgICAgICBvdXRwdXQuYXBwZW5kKChjaGFyKXBhcnNlci5kYXRhQXNOdW1iZXIoMTApKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE9DVEFMOgorICAgICAgICAgICAgb3V0cHV0LmFwcGVuZCgoY2hhcilwYXJzZXIuZGF0YUFzTnVtYmVyKDgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEhFWDoKKyAgICAgICAgICAgIG91dHB1dC5hcHBlbmQoKGNoYXIpcGFyc2VyLmRhdGFBc051bWJlcigxNikpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRVNDQVBFOgorICAgICAgICAgICAgcGFyc2VyLmFwcGVuZERhdGFUbyhvdXRwdXQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRU9MOgorICAgICAgICAgICAgLy9zaWxlbnRseSBlYXQgdGhlIEVPTCBjaGFyYWN0ZXJzCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIC8vc2hvdWxkIG5ldmVyIGdldCBoZXJlCisgICAgICAgICAgICB0aHJvdyBuZXcgTGV4LlBhcnNlRXhjZXB0aW9uKCJJbnRlcm5hbCBlcnJvciBwYXJzaW5nIGVzY2FwZSBzZXF1ZW5jZSIpOworLy8gICAgICAgICAgcGFyc2VyLmFwcGVuZERhdGFUbyhvdXRwdXQpOworICAgICAgICB9CisgICAgfQorICAgICAgICAvKiogcmV0dXJuIHRoZSBzdGF0ZXMgZm9yIHRoaXMgdHJhbnNhY3Rpb24gKi8KKyAgICBwcm90ZWN0ZWQgTGV4LlRyYW5zaXRpb25bXVtdIGdldFN0YXRlcygpIHsKKyAgICAgICAgc3luY2hyb25pemVkIChnZXRDbGFzcygpKSB7CisgICAgICAgICAgICBpZiAodGhlU3RhdGVzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAvL2NhY2hlIHRoZSBzdGF0ZXMgc28gdGhleSBjYW4gYmUgc2hhcmVkLiAgVGhleSBtdXN0CisgICAgICAgICAgICAgICAgLy9iZSByZWJ1aWx0IHdoZW4gdGhlIGVzY2FwZSBjaGFyYWN0ZXIgaXMgY2hhbmdlZC4KKyAgICAgICAgICAgICAgICB0aGVTdGF0ZXMgPSBuZXcgTGV4LlRyYW5zaXRpb25bXVtdIHsKKyAgICAgICAgICAgICAgICAgICAgeyAvL3N0YXRlIDA6IAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5DaGFyVHJhbnNpdGlvbihFU0NBUEVfQ0hBUiwgTGV4LklHTk9SRV9DT05TVU1FLCAtMSksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LlBhcnNlRXhjZXB0aW9uVHJhbnNpdGlvbigiaWxsZWdhbCBlc2NhcGUgY2hhcmFjdGVyIikKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAvL3N0YXRlIDE6CisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkVPRlRyYW5zaXRpb24oT0NUQUwpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5DaGFyVHJhbnNpdGlvbignZCcsIExleC5JR05PUkVfQ09OU1VNRSwgLTMpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5DaGFyVHJhbnNpdGlvbigneCcsIExleC5JR05PUkVfQ09OU1VNRSwgLTIpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5TdHJpbmdUcmFuc2l0aW9uKE9DVEFMX0NIQVJTLCBMZXguQUNDVU1VTEFURV9DT05TVU1FLCAtNCksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkNoYXJUcmFuc2l0aW9uKEVTQ0FQRV9DSEFSLCBMZXguQUNDVU1VTEFURV9DT05TVU1FLCBFU0NBUEUpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEVPTFRyYW5zaXRpb24oRU9MKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguRGVmYXVsdFRyYW5zaXRpb24oTGV4LkFDQ1VNVUxBVEVfQ09OU1VNRSwgRVNDQVBFKQorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7IC8vc3RhdGUgMjogaGV4CisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkVPRlRyYW5zaXRpb24oSEVYKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguU3RyaW5nVHJhbnNpdGlvbihIRVhfQ0hBUlMsIExleC5BQ0NVTVVMQVRFX0NPTlNVTUUsIC0yKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguRGVmYXVsdFRyYW5zaXRpb24oTGV4LklHTk9SRV9QVVRCQUNLLCBIRVgpCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsgLy9zdGF0ZSAzOiBkZWNpbWFsCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkVPRlRyYW5zaXRpb24oREVDSU1BTCksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LlN0cmluZ1RyYW5zaXRpb24oREVDSU1BTF9DSEFSUywgTGV4LkFDQ1VNVUxBVEVfQ09OU1VNRSwgLTMpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5EZWZhdWx0VHJhbnNpdGlvbihMZXguSUdOT1JFX1BVVEJBQ0ssIERFQ0lNQUwpCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsgLy9zdGF0ZSA0OiBvY3RhbAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5FT0ZUcmFuc2l0aW9uKE9DVEFMKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguU3RyaW5nVHJhbnNpdGlvbihPQ1RBTF9DSEFSUywgTGV4LkFDQ1VNVUxBVEVfQ09OU1VNRSwgLTQpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5EZWZhdWx0VHJhbnNpdGlvbihMZXguSUdOT1JFX1BVVEJBQ0ssIE9DVEFMKQorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoZVN0YXRlczsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgTGV4LlRyYW5zaXRpb25bXVtdIHRoZVN0YXRlcyA9IG51bGw7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBMZXguVHJhbnNpdGlvbltdW10gc3RhdGVzID0ge3sgCisgICAgICAgICAgICAgICAgbmV3IEVzY2FwZVRyYW5zaXRpb24oU1VDQ0VTUyksCisgICAgICAgICAgICAgICAgbmV3IExleC5FT0ZUcmFuc2l0aW9uKCksCisgICAgICAgICAgICAgICAgbmV3IExleC5QYXJzZUV4Y2VwdGlvblRyYW5zaXRpb24oImJhZCB0ZXN0IGlucHV0IikKKyAgICAgICAgICAgIH19OworICAgICAgICAgICAgU3RyaW5nIHRleHQgPSAiXFxkMTAwXFx4QWZcXFxcXFw3NzdcXFxuXFwxMjNcXHgyMDI4XFx4MjAyOSI7CisgICAgICAgICAgICBTdHJpbmdSZWFkZXIgc3IgPSBuZXcgU3RyaW5nUmVhZGVyKHRleHQpOworICAgICAgICAgICAgUHVzaGJhY2tSZWFkZXIgcHIgPSBuZXcgUHVzaGJhY2tSZWFkZXIoc3IpOworICAgICAgICAgICAgTGV4IHBhcnNlciA9IG5ldyBMZXgoc3RhdGVzLCBwcik7CisgICAgICAgICAgICAvL3BhcnNlci5kZWJ1Zyh0cnVlKTsKKyAgICAgICAgICAgIGludCBzID0gcGFyc2VyLm5leHRUb2tlbigpOworICAgICAgICAgICAgd2hpbGUgKHMgPT0gU1VDQ0VTUykgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihwYXJzZXIuZ2V0U3RhdGUoKSk7CisgICAgICAgICAgICAgICAgcyA9IHBhcnNlci5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvL3t7REVDTEFSRV9DT05UUk9MUworICAgIC8vfX0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvSUNVMkxvY2FsZVdyaXRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9JQ1UyTG9jYWxlV3JpdGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDMyODdkMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvSUNVMkxvY2FsZVdyaXRlci5qYXZhCkBAIC0wLDAgKzEsMTI1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0lDVTJMb2NhbGVXcml0ZXIuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wNi8yMCAwMToxNzoxMiAkIAorICogJFJldmlzaW9uOiAxLjMgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworcHVibGljIGNsYXNzIElDVTJMb2NhbGVXcml0ZXIgZXh0ZW5kcyBMb2NhbGVXcml0ZXIgeworICAgIHB1YmxpYyBJQ1UyTG9jYWxlV3JpdGVyKFByaW50U3RyZWFtIG91dCkgeworICAgICAgICBzdXBlcihvdXQpOworICAgICAgICAgICAgLy97e0lOSVRfQ09OVFJPTFMKKyAgICAgICAgLy99fQorfQorICAgIHB1YmxpYyBJQ1UyTG9jYWxlV3JpdGVyKFByaW50U3RyZWFtIG91dCwgUHJpbnRTdHJlYW0gZXJyKSB7CisgICAgICAgIHN1cGVyKG91dCwgZXJyKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgb3BlbihMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHByaW50KGxvY2FsZS50b1N0cmluZygpKTsKKyAgICAgICAgcHJpbnRsbigiIHsiKTsKKyAgICAgICAgaW5kZW50KCk7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlKFN0cmluZyB0YWcsIFN0cmluZyB2YWx1ZSkgeworICAgICAgICBwcmludCh0YWcpOworICAgICAgICBwcmludCgiIHsgIik7CisgICAgICAgIHByaW50U3RyaW5nKHZhbHVlKTsKKyAgICAgICAgcHJpbnRsbigiIH0iKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGUoU3RyaW5nIHRhZywgU3RyaW5nW10gdmFsdWUpIHsKKyAgICAgICAgaWYgKHRhZyAhPSBudWxsKSB7CisgICAgICAgICAgICBwcmludCh0YWcpOworICAgICAgICAgICAgcHJpbnRsbigiIHsgIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwcmludGxuKCJ7Iik7CisgICAgICAgIH0KKyAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgcHJpbnRTdHJpbmcodmFsdWVbaV0pOworICAgICAgICAgICAgICAgIHByaW50bG4oIiwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgb3V0ZGVudCgpOworICAgICAgICBwcmludGxuKCJ9Iik7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlKFN0cmluZyB0YWcsIE9iamVjdCBvKSB7CisgICAgICAgIGlmICgiQ29sbGF0aW9uRWxlbWVudHMiLmVxdWFscyh0YWcpKSB7CisgICAgICAgICAgICB3cml0ZVRhZ2dlZCh0YWcsKE9iamVjdFtdW10pbyk7CisgICAgICAgIH0gZWxzZSBpZiAoIShvIGluc3RhbmNlb2YgQ29sbGF0aW9uSXRlbVtdKSkgeworICAgICAgICAgICAgc3VwZXIud3JpdGUodGFnLCBvKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIENvbGxhdGlvbkl0ZW1bXSBpdGVtcyA9IChDb2xsYXRpb25JdGVtW10pbzsKKyAgICAgICAgICAgIGlmKGl0ZW1zWzBdIT1udWxsKXsKKyAgICAgICAgICAgICAgICBwcmludCgiU2VxdWVuY2UiKTsKKyAgICAgICAgICAgICAgICBwcmludGxuKCIgeyAiKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmKGl0ZW1zW2ldIT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50U3RyaW5nKGl0ZW1zW2ldLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1zW2ldLmNvbW1lbnQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYlRvKDMwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludCgiLy8iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGxuKGl0ZW1zW2ldLmNvbW1lbnQpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHByaW50bG4oIn0iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCB3cml0ZVRhZ2dlZChTdHJpbmcgdGFnLCBPYmplY3RbXVtdIHZhbHVlKSB7CisgICAgICAgIHByaW50KHRhZyk7CisgICAgICAgIHByaW50bG4oIiB7ICIpOworICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICB3cml0ZSgoU3RyaW5nKXZhbHVlW2ldWzBdLCB2YWx1ZVtpXVsxXSk7CisgICAgICAgICAgICB9CisgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgcHJpbnRsbigifSIpOworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCB3cml0ZTJEKFN0cmluZyB0YWcsIFN0cmluZ1tdW10gdmFsdWUpIHsKKyAgICAgICAgcHJpbnQodGFnKTsKKyAgICAgICAgcHJpbnRsbigiIHsgIik7CisgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIHdyaXRlKG51bGwsIHZhbHVlW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgb3V0ZGVudCgpOworICAgICAgICBwcmludGxuKCJ9Iik7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlVGFnZ2VkKFN0cmluZyB0YWcsIFN0cmluZ1tdW10gdmFsdWUpIHsKKyAgICAgICAgcHJpbnQodGFnKTsKKyAgICAgICAgcHJpbnRsbigiIHsgIik7CisgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIHdyaXRlKHZhbHVlW2ldWzBdLCB2YWx1ZVtpXVsxXSk7CisgICAgICAgICAgICB9CisgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgcHJpbnRsbigifSIpOworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCBjbG9zZSgpIHsKKyAgICAgICAgb3V0ZGVudCgpOworICAgICAgICBwcmludGxuKCJ9Iik7CisgICAgfQorCisgICAgcHJvdGVjdGVkIFN0cmluZyBnZXRTdHJpbmdKb2luaW5nQ2hhcmFjdGVyKCkgeworICAgICAgICByZXR1cm4gIiI7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBib29sZWFuIGlzRXNjYXBlQ2hhcihmaW5hbCBjaGFyIGMpIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0RXNjYXBlQ2hhcigpIHsKKyAgICAgICAgcmV0dXJuICIldSI7CisgICAgfQorICAgIC8ve3tERUNMQVJFX0NPTlRST0xTCisgICAgLy99fQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvSUNVTG9jYWxlV3JpdGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0lDVUxvY2FsZVdyaXRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjcxYTQ2YTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0lDVUxvY2FsZVdyaXRlci5qYXZhCkBAIC0wLDAgKzEsMTE4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0lDVUxvY2FsZVdyaXRlci5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzA2LzIwIDAxOjE3OjEyICQgCisgKiAkUmV2aXNpb246IDEuMyAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC4qOworCitwdWJsaWMgY2xhc3MgSUNVTG9jYWxlV3JpdGVyIGV4dGVuZHMgTG9jYWxlV3JpdGVyIHsKKyAgICBwdWJsaWMgSUNVTG9jYWxlV3JpdGVyKFByaW50U3RyZWFtIG91dCkgeworICAgICAgICBzdXBlcihvdXQpOworICAgIH0KKyAgICBwdWJsaWMgSUNVTG9jYWxlV3JpdGVyKFByaW50U3RyZWFtIG91dCwgUHJpbnRTdHJlYW0gZXJyKSB7CisgICAgICAgIHN1cGVyKG91dCwgZXJyKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgb3BlbihMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHByaW50KGxvY2FsZS50b1N0cmluZygpKTsKKyAgICAgICAgcHJpbnRsbigiIHsiKTsKKyAgICAgICAgaW5kZW50KCk7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlKFN0cmluZyB0YWcsIE9iamVjdCBvKSB7CisgICAgICAgIGlmICgiQ29sbGF0aW9uRWxlbWVudHMiLmVxdWFscyh0YWcpKSB7CisgICAgICAgICAgICBpZihvIGluc3RhbmNlb2YgT2JqZWN0W11bXSl7CisgICAgICAgICAgICAgICAgd3JpdGVUYWdnZWQodGFnLChPYmplY3RbXVtdKW8pOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICB3cml0ZSh0YWcsKFN0cmluZylvKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmICghKG8gaW5zdGFuY2VvZiBDb2xsYXRpb25JdGVtW10pKSB7CisgICAgICAgICAgICBzdXBlci53cml0ZSh0YWcsIG8pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQ29sbGF0aW9uSXRlbVtdIGl0ZW1zID0gKENvbGxhdGlvbkl0ZW1bXSlvOworICAgICAgICAgICAgaWYoaXRlbXNbMF0hPW51bGwpeworCSAgICAgICAgICAgIHByaW50KCJTZXF1ZW5jZSIpOworCSAgICAgICAgICAgIHByaW50bG4oIiB7ICIpOworCSAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHsKKwkgICAgICAgICAgICAgICAgaWYoaXRlbXNbaV0hPW51bGwpeworCSAgICAgICAgICAgICAgICAgICAgcHJpbnRTdHJpbmcoaXRlbXNbaV0udG9TdHJpbmcoKSk7CisJICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbXNbaV0uY29tbWVudCAhPSBudWxsKSB7CisJICAgICAgICAgICAgICAgICAgICAgICAgdGFiVG8oMzApOworCSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KCIvLyIpOworCSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50bG4oaXRlbXNbaV0uY29tbWVudCk7CisJICAgICAgICAgICAgICAgICAgICB9CisJICAgICAgICAgICAgICAgIH0KKwkgICAgICAgICAgICB9CisJICAgICAgICAgICAgcHJpbnRsbigifSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlKFN0cmluZyB0YWcsIFN0cmluZyB2YWx1ZSkgeworICAgICAgICBwcmludCh0YWcpOworICAgICAgICBwcmludCgiIHsgIik7CisgICAgICAgIHByaW50U3RyaW5nKHZhbHVlKTsKKyAgICAgICAgcHJpbnRsbigiIH0iKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGUoU3RyaW5nIHRhZywgU3RyaW5nW10gdmFsdWUpIHsKKyAgICAgICAgaWYgKHRhZyAhPSBudWxsKSB7CisgICAgICAgICAgICBwcmludCh0YWcpOworICAgICAgICAgICAgcHJpbnRsbigiIHsgIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwcmludGxuKCJ7Iik7CisgICAgICAgIH0KKyAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgcHJpbnRTdHJpbmcodmFsdWVbaV0pOworICAgICAgICAgICAgICAgIHByaW50bG4oIiwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgb3V0ZGVudCgpOworICAgICAgICBwcmludGxuKCJ9Iik7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlMkQoU3RyaW5nIHRhZywgU3RyaW5nW11bXSB2YWx1ZSkgeworICAgICAgICBwcmludCh0YWcpOworICAgICAgICBwcmludGxuKCIgeyAiKTsKKyAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgd3JpdGUobnVsbCwgdmFsdWVbaV0pOworICAgICAgICAgICAgfQorICAgICAgICBvdXRkZW50KCk7CisgICAgICAgIHByaW50bG4oIn0iKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGVUYWdnZWQoU3RyaW5nIHRhZywgT2JqZWN0W11bXSB2YWx1ZSkgeworICAgICAgICBwcmludCh0YWcpOworICAgICAgICBwcmludGxuKCIgeyAiKTsKKyAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgd3JpdGUoKFN0cmluZyl2YWx1ZVtpXVswXSwgdmFsdWVbaV1bMV0pOworICAgICAgICAgICAgfQorICAgICAgICBvdXRkZW50KCk7CisgICAgICAgIHByaW50bG4oIn0iKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGVUYWdnZWQoU3RyaW5nIHRhZywgU3RyaW5nW11bXSB2YWx1ZSkgeworICAgICAgICBwcmludCh0YWcpOworICAgICAgICBwcmludGxuKCIgeyAiKTsKKyAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgd3JpdGUodmFsdWVbaV1bMF0sIHZhbHVlW2ldWzFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgb3V0ZGVudCgpOworICAgICAgICBwcmludGxuKCJ9Iik7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIGNsb3NlKCkgeworICAgICAgICBvdXRkZW50KCk7CisgICAgICAgIHByaW50bG4oIn0iKTsKKyAgICAgICAgc3VwZXIuY2xvc2VGaWxlSGFuZGxlKCk7CisgICAgfQorCisgICAgcHJvdGVjdGVkIFN0cmluZyBnZXRTdHJpbmdKb2luaW5nQ2hhcmFjdGVyKCkgeworICAgICAgICByZXR1cm4gIiI7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9KYXZhMUxvY2FsZVdyaXRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9KYXZhMUxvY2FsZVdyaXRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjZhMGMyOTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0phdmExTG9jYWxlV3JpdGVyLmphdmEKQEAgLTAsMCArMSwxNDcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvSmF2YTFMb2NhbGVXcml0ZXIuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNToyOCAkIAorICogJFJldmlzaW9uOiAxLjIgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworcHVibGljIGNsYXNzIEphdmExTG9jYWxlV3JpdGVyIGV4dGVuZHMgTG9jYWxlV3JpdGVyIHsKKyAgICBwdWJsaWMgSmF2YTFMb2NhbGVXcml0ZXIoUHJpbnRTdHJlYW0gb3V0KSB7CisgICAgICAgIHN1cGVyKG91dCk7CisgICAgICAgICAgICAvL3t7SU5JVF9DT05UUk9MUworICAgICAgICAvL319CisgICAgfQorICAgIAorICAgIHB1YmxpYyBKYXZhMUxvY2FsZVdyaXRlcihQcmludFN0cmVhbSBvdXQsIFByaW50U3RyZWFtIGVycikgeworICAgICAgICBzdXBlcihvdXQsIGVycik7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHdyaXRlKExvY2FsZSBsb2NhbGUsIEhhc2h0YWJsZSBsb2NhbGVEYXRhKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBIYXNodGFibGUgdGVtcCA9IG5ldyBOZXV0cmFsVG9KMUNvbnZlcnRlcihsb2NhbGUpLmNvbnZlcnQobG9jYWxlRGF0YSk7CisgICAgICAgICAgICBzdXBlci53cml0ZShsb2NhbGUsIHRlbXApOworICAgICAgICB9IGNhdGNoIChMb2NhbGVDb252ZXJ0ZXIuQ29udmVyc2lvbkVycm9yIGUpIHsKKyAgICAgICAgICAgIGVyci5wcmludGxuKGUpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJvdGVjdGVkIHZvaWQgb3BlbihMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHByaW50KEhFQURFUjEpOworICAgICAgICBwcmludChsb2NhbGUudG9TdHJpbmcoKSk7CisgICAgICAgIHByaW50KEhFQURFUjIpOworICAgICAgICBwcmludChsb2NhbGUudG9TdHJpbmcoKSk7CisgICAgICAgIHByaW50bG4oSEVBREVSMyk7CisgICAgICAgIGluZGVudCgzKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGUoU3RyaW5nIHRhZywgU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHByaW50KCJ7ICIpOworICAgICAgICBwcmludFN0cmluZyh0YWcpOworICAgICAgICBwcmludCgiLCAiKTsKKyAgICAgICAgcHJpbnRTdHJpbmcodmFsdWUpOworICAgICAgICBwcmludGxuKCIgfSwiKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGUoU3RyaW5nIHRhZywgU3RyaW5nW10gdmFsdWUpIHsKKyAgICAgICAgcHJpbnQoInsgIik7CisgICAgICAgIGlmICh0YWcgIT0gbnVsbCkgeworICAgICAgICAgICAgcHJpbnRTdHJpbmcodGFnKTsKKyAgICAgICAgICAgIHByaW50bG4oIiwiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHByaW50bG4oIiIpOworICAgICAgICB9CisgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgcHJpbnRsbigibmV3IFN0cmluZ1tdIHsiKTsKKyAgICAgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRTdHJpbmcodmFsdWVbaV0pOworICAgICAgICAgICAgICAgICAgICBwcmludGxuKCIsIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgb3V0ZGVudCgpOworICAgICAgICAgICAgcHJpbnRsbigifSIpOworICAgICAgICBvdXRkZW50KCk7CisgICAgICAgIHByaW50bG4oIn0sIik7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlMkQoU3RyaW5nIHRhZywgU3RyaW5nW11bXSB2YWx1ZSkgeworICAgICAgICBwcmludCgieyAiKTsKKyAgICAgICAgcHJpbnRTdHJpbmcodGFnKTsKKyAgICAgICAgcHJpbnRsbigiLCIpOworICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgIHByaW50bG4oIm5ldyBTdHJpbmdbXVtdIHsiKTsKKyAgICAgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRsbigieyIpOworICAgICAgICAgICAgICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCB2YWx1ZVtpXS5sZW5ndGg7IGorKykgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRTdHJpbmcodmFsdWVbaV1bal0pOworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRsbigiLCIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRsbigifSwiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXRkZW50KCk7CisgICAgICAgICAgICBwcmludGxuKCJ9Iik7CisgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgcHJpbnRsbigifSwiKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGVUYWdnZWQoU3RyaW5nIHRhZywgU3RyaW5nW11bXSB2YWx1ZSkgeworICAgICAgICBwcmludCgieyAiKTsKKyAgICAgICAgcHJpbnRTdHJpbmcodGFnKTsKKyAgICAgICAgcHJpbnRsbigiLCIpOworICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgIHByaW50bG4oIm5ldyBTdHJpbmdbXVtdIHsiKTsKKyAgICAgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgd3JpdGUodmFsdWVbaV1bMF0sIHZhbHVlW2ldWzFdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXRkZW50KCk7CisgICAgICAgICAgICBwcmludGxuKCJ9Iik7CisgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgcHJpbnRsbigifSwiKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgY2xvc2UoKSB7CisgICAgICAgIG91dGRlbnQoMyk7CisgICAgICAgIHByaW50KEZPT1RFUik7CisgICAgfQorCisgICAgcHJvdGVjdGVkIHZvaWQgYXBwZW5kRXNjYXBlZENoYXIoY2hhciBjLCBTdHJpbmdCdWZmZXIgYnVmZmVyKSB7CisgICAgICAgIGlmIChjIDwgJ1x1MDAyMCcgfHwgYyA9PSAnIicgfHwgYyA9PSAnXFwnKSB7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKCdcXCcpOworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChIRVhfRElHSVRbKGMgJiAwNzAwKSA+PiA2XSk7IC8vIEhFWF9ESUdJVCB3b3JrcyBmb3Igb2N0YWwKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoSEVYX0RJR0lUWyhjICYgMDA3MCkgPj4gM10pOworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChIRVhfRElHSVRbKGMgJiAwMDA3KV0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgc3VwZXIuYXBwZW5kRXNjYXBlZENoYXIoYywgYnVmZmVyKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0U3RyaW5nSm9pbmluZ0NoYXJhY3RlcigpIHsKKyAgICAgICAgcmV0dXJuICIrIjsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEhFQURFUjEgPSAKKyAgICAgICAgICAgICJwYWNrYWdlIGphdmEudGV4dC5yZXNvdXJjZXM7XG4iKworICAgICAgICAgICAgInB1YmxpYyBjbGFzcyBMb2NhbGVFbGVtZW50c18iOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBIRUFERVIyID0gCisgICAgICAgICAgICAiIGV4dGVuZHMgTG9jYWxlRGF0YSB7XG4iKworICAgICAgICAgICAgIiAgICBwdWJsaWMgTG9jYWxlRWxlbWVudHNfIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSEVBREVSMyA9IAorICAgICAgICAiKCkge1xuIisKKyAgICAgICAgIiAgICAgICAgc3VwZXIuaW5pdCh0YWJsZSk7XG4iKworICAgICAgICAiICAgIH1cbiIrCisgICAgICAgICIgICAgc3RhdGljIFN0cmluZyB0YWJsZSBbXT0iOworICAgICAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgRk9PVEVSID0gCisgICAgICAgICIgICAgfVxuIisKKyAgICAgICAgIn0iOworICAgIC8ve3tERUNMQVJFX0NPTlRST0xTCisgICAgLy99fQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9KYXZhTG9jYWxlV3JpdGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0phdmFMb2NhbGVXcml0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kZjEwZmU1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9KYXZhTG9jYWxlV3JpdGVyLmphdmEKQEAgLTAsMCArMSwxNzAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvSmF2YUxvY2FsZVdyaXRlci5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA1OjI5ICQgCisgKiAkUmV2aXNpb246IDEuMiAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC4qOworCitwdWJsaWMgY2xhc3MgSmF2YUxvY2FsZVdyaXRlciBleHRlbmRzIExvY2FsZVdyaXRlciB7CisgICAgcHVibGljIEphdmFMb2NhbGVXcml0ZXIoUHJpbnRTdHJlYW0gb3V0KSB7CisgICAgICAgIHN1cGVyKG91dCk7CisgICAgfQorICAgIHB1YmxpYyBKYXZhTG9jYWxlV3JpdGVyKFByaW50U3RyZWFtIG91dCwgUHJpbnRTdHJlYW0gZXJyKSB7CisgICAgICAgIHN1cGVyKG91dCwgZXJyKTsKKyAgICB9CisgICAgcHVibGljIHZvaWQgb3BlbihMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHByaW50bG4oSEVBREVSKTsKKyAgICAgICAgaW5kZW50KDMpOworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCB3cml0ZShTdHJpbmcgdGFnLCBPYmplY3QgbykgeworICAgICAgICBpZiAoIkNvbGxhdGlvbkVsZW1lbnRzIi5lcXVhbHModGFnKSkgeworICAgICAgICAgICAgIHdyaXRlVGFnZ2VkKHRhZywoT2JqZWN0W11bXSlvKTsKKyAgICAgICAgfSBlbHNlIGlmICghKG8gaW5zdGFuY2VvZiBDb2xsYXRpb25JdGVtW10pKSB7CisgICAgICAgICAgICBzdXBlci53cml0ZSh0YWcsIG8pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQ29sbGF0aW9uSXRlbVtdIGl0ZW1zID0gKENvbGxhdGlvbkl0ZW1bXSlvOworICAgICAgICAgICAgcHJpbnQoInsgIik7CisgICAgICAgICAgICBwcmludFN0cmluZygiQ29sbGF0aW9uRWxlbWVudHMiKTsKKyAgICAgICAgICAgIHByaW50bG4oIiwgIik7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYoaXRlbXNbaV0hPW51bGwpeworICAgICAgICAgICAgICAgICAgICBwcmludFN0cmluZyhpdGVtc1tpXS50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1zW2ldLmNvbW1lbnQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoIisiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhYlRvKDMwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KCIvLyIpOworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRsbihpdGVtc1tpXS5jb21tZW50KTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50bG4oIisiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHByaW50bG4oIlwiXCIiKTsKKyAgICAgICAgICAgIHByaW50bG4oIiB9LCIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGUoU3RyaW5nIHRhZywgU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHByaW50KCJ7ICIpOworICAgICAgICBwcmludFN0cmluZyh0YWcpOworICAgICAgICBwcmludCgiLCAiKTsKKyAgICAgICAgcHJpbnRTdHJpbmcodmFsdWUpOworICAgICAgICBwcmludGxuKCIgfSwiKTsKKyAgICB9CisgICAgcHVibGljIHZvaWQgd3JpdGUoU3RyaW5nIHRhZywgU3RyaW5nW10gdmFsdWUpIHsKKyAgICAgICAgcHJpbnQoInsgIik7CisgICAgICAgIGlmICh0YWcgIT0gbnVsbCkgeworICAgICAgICAgICAgcHJpbnRTdHJpbmcodGFnKTsKKyAgICAgICAgICAgIHByaW50bG4oIiwiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHByaW50bG4oIiIpOworICAgICAgICB9CisgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgcHJpbnRsbigibmV3IFN0cmluZ1tdIHsiKTsKKyAgICAgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRTdHJpbmcodmFsdWVbaV0pOworICAgICAgICAgICAgICAgICAgICBwcmludGxuKCIsIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgb3V0ZGVudCgpOworICAgICAgICAgICAgcHJpbnRsbigifSIpOworICAgICAgICBvdXRkZW50KCk7CisgICAgICAgIHByaW50bG4oIn0sIik7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIHdyaXRlMkQoU3RyaW5nIHRhZywgU3RyaW5nW11bXSB2YWx1ZSkgeworICAgICAgICBwcmludCgieyAiKTsKKyAgICAgICAgcHJpbnRTdHJpbmcodGFnKTsKKyAgICAgICAgcHJpbnRsbigiLCIpOworICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgIHByaW50bG4oIm5ldyBTdHJpbmdbXVtdIHsiKTsKKyAgICAgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRsbigieyIpOworICAgICAgICAgICAgICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCB2YWx1ZVtpXS5sZW5ndGg7IGorKykgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRTdHJpbmcodmFsdWVbaV1bal0pOworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRsbigiLCIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRsbigifSwiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXRkZW50KCk7CisgICAgICAgICAgICBwcmludGxuKCJ9Iik7CisgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgcHJpbnRsbigifSwiKTsKKyAgICB9CisgICAgcHVibGljIHZvaWQgd3JpdGVUYWdnZWQoU3RyaW5nIHRhZywgU3RyaW5nW11bXSB2YWx1ZSkgeworICAgICAgICBwcmludCgieyAiKTsKKyAgICAgICAgcHJpbnRTdHJpbmcodGFnKTsKKyAgICAgICAgcHJpbnRsbigiLCIpOworICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgIHByaW50bG4oIm5ldyBTdHJpbmdbXVtdIHsiKTsKKyAgICAgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgd3JpdGUodmFsdWVbaV1bMF0sIHZhbHVlW2ldWzFdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXRkZW50KCk7CisgICAgICAgICAgICBwcmludGxuKCJ9Iik7CisgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgcHJpbnRsbigifSwiKTsKKyAgICB9CisgICAgcHVibGljIHZvaWQgd3JpdGVUYWdnZWQoU3RyaW5nIHRhZywgT2JqZWN0W11bXSB2YWx1ZSkgeworICAgICAgICBwcmludCgieyAiKTsKKyAgICAgICAgcHJpbnRTdHJpbmcodGFnKTsKKyAgICAgICAgcHJpbnRsbigiLCIpOworICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgIHByaW50bG4oIm5ldyBTdHJpbmdbXVtdIHsiKTsKKyAgICAgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgd3JpdGUoKFN0cmluZyl2YWx1ZVtpXVswXSwgdmFsdWVbaV1bMV0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgICAgIHByaW50bG4oIn0iKTsKKyAgICAgICAgb3V0ZGVudCgpOworICAgICAgICBwcmludGxuKCJ9LCIpOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBjbG9zZSgpIHsKKyAgICAgICAgb3V0ZGVudCgzKTsKKyAgICAgICAgcHJpbnQoRk9PVEVSKTsKKyAgICAgICAgcHJpbnRsbigiIik7CisgICAgfQorCisgICAgcHJvdGVjdGVkIHZvaWQgYXBwZW5kRXNjYXBlZENoYXIoY2hhciBjLCBTdHJpbmdCdWZmZXIgYnVmZmVyKSB7CisgICAgICAgIGlmIChjIDwgJ1x1MDAyMCcgfHwgYyA9PSAnIicgfHwgYyA9PSAnXFwnKSB7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKCdcXCcpOworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChIRVhfRElHSVRbKGMgJiAwNzAwKSA+PiA2XSk7IC8vIEhFWF9ESUdJVCB3b3JrcyBmb3Igb2N0YWwKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoSEVYX0RJR0lUWyhjICYgMDA3MCkgPj4gM10pOworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChIRVhfRElHSVRbKGMgJiAwMDA3KV0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgc3VwZXIuYXBwZW5kRXNjYXBlZENoYXIoYywgYnVmZmVyKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0U3RyaW5nSm9pbmluZ0NoYXJhY3RlcigpIHsKKyAgICAgICAgcmV0dXJuICIrIjsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEhFQURFUiA9IAorICAgICAgICAicGFja2FnZSBqYXZhLnRleHQucmVzb3VyY2VzO1xuIisKKyAgICAgICAgImltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlO1xuIisKKyAgICAgICAgInB1YmxpYyBjbGFzcyBUZXN0TG9jYWxlRWxlbWVudHMgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUge1xuIisKKyAgICAgICAgIiAgICBwdWJsaWMgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHtcbiIrCisgICAgICAgICIgICAgICAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7IjsKKyAgICAgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEZPT1RFUiA9IAorICAgICAgICAiICAgICAgICB9O1xuIisKKyAgICAgICAgIiAgICB9XG4iKworICAgICAgICAifSI7CisgICAgLy97e0RFQ0xBUkVfQ09OVFJPTFMKKyAgICAvL319Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0xleC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9MZXguamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44OWU0NWY1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9MZXguamF2YQpAQCAtMCwwICsxLDQyMCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9MZXguamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNToyOSAkIAorICogJFJldmlzaW9uOiAxLjMgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworLyoqCisgKiBBIExleCBpcyBhIHN0YXRlIG1hY2hpbmUuICBUcmFuc2l0aW9ucyBjYW4gYmUgYWN0aXZhdGVkCisgKiBhcmJpdHJhcmlseSBhbmQgY2FuIGNvbnN1bWUgYXJiaXRyYXJ5IGFtb3VudHMgb2YgdGV4dC4KKyAqIEEgdHJhbnNpdGlvbiBzaW1wbHkgc2F5cyBpdCBjYW4gY29uc3VtZSB0aGUgbmV4dCBjaGFyYWN0ZXIKKyAqIGFuZCByZXR1cm5zIHRoZSBzdGF0ZSB0aGF0IHRoZSBtYWNoaW5lIHNob3VsZCB0cmFuc2l0aW9uIGludG8uCisgKiBTdGF0ZXMgdGhhdCBhcmUgPiAwIGFyZSBmaW5hbCBzdGF0ZXMgYW5kIGNhdXNlIHRoZSBuZXh0VG9rZW4KKyAqIHJvdXRpbmUgdG8gcmV0dXJuIGEgdmFsdWUuCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBMZXggeworICAgIHByaXZhdGUgVHJhbnNpdGlvbltdW10gc3RhdGVzOyAgLy9maW5hbAorICAgIHByaXZhdGUgUHVzaGJhY2tSZWFkZXIgaW5wdXQ7ICAgLy9maW5hbAorICAgIHByaXZhdGUgaW50IHN0YXRlOworICAgIHByaXZhdGUgU3RyaW5nIGRhdGE7CisgICAgcHJpdmF0ZSBmaW5hbCBTdHJpbmdCdWZmZXIgZGF0YUJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICBwcml2YXRlIGJvb2xlYW4gZGVidWdNZXNzYWdlc09uOworICAgIHByaXZhdGUgU3RyaW5nIGRlYnVnVGFnOworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVORF9PRl9GSUxFID0gSW50ZWdlci5NQVhfVkFMVUU7CisKKyAgICAgICAgLyoqIENvbnN0cnVjdCBhIG5ldyBtYWNoaW5lLiAgTk9URTogc2V0SW5wdXQgbXVzdCBiZQorICAgICAgICAgKiBjYWxsZWQgYmVmb3JlIG5leHRUb2tlbiBpcyBjYWxsZWQgKi8KKyAgICBwdWJsaWMgTGV4KGZpbmFsIFRyYW5zaXRpb25bXVtdIHN0YXRlcykgeworICAgICAgICB0aGlzLnN0YXRlcyA9IHN0YXRlczsKKyAgICAgICAgICAgIC8ve3tJTklUX0NPTlRST0xTCisJCS8vfX0KK30KKworICAgICAgICAvKiogQ29uc3RydWN0IGEgbmV3IG1hY2hpbmUuICovCisgICAgcHVibGljIExleChmaW5hbCBUcmFuc2l0aW9uW11bXSBzdGF0ZXNJbiwgZmluYWwgUHVzaGJhY2tSZWFkZXIgaW5wdXRJbikgeworICAgICAgICBzdGF0ZXMgPSBzdGF0ZXNJbjsKKyAgICAgICAgaW5wdXQgPSBpbnB1dEluOworICAgIH0KKworICAgICAgICAvKiogUmV0dXJuIHRoZSBjdXJyZW50IHN0YXRlICovCisgICAgcHVibGljIGludCBnZXRTdGF0ZSgpIHsKKyAgICAgICAgcmV0dXJuIHN0YXRlOworICAgIH0KKworICAgICAgICAvKiogUmV0dXJuIHRoZSBkYXRhIHJlc3VsdGluZyBmcm9tIHRoZSBsYXN0IGNhbGwgdG8gbmV4dFRva2VuICovCisgICAgcHVibGljIFN0cmluZyBnZXREYXRhKCkgeworICAgICAgICBpZiAoZGF0YSA9PSBudWxsKSB7CisgICAgICAgICAgICBkYXRhID0gZGF0YUJ1ZmZlci50b1N0cmluZygpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBkYXRhOworICAgIH0KKyAgICAKKyAgICAgICAgLyoqIFJldHVybiB0aGUgaW5wdXQgcmVhZGVyIHVzZWQgYnkgdGhpcyBtYWNoaW5lICovCisgICAgcHVibGljIFB1c2hiYWNrUmVhZGVyIGdldElucHV0KCkgeworICAgICAgICByZXR1cm4gaW5wdXQ7CisgICAgfQorCisgICAgICAgIC8qKiBzZXQgdGhlIGlucHV0IHJlYWRlciB1c2VkIGJ5IHRoaXMgbWFjaGluZSAqLworICAgIHB1YmxpYyB2b2lkIHNldElucHV0KFB1c2hiYWNrUmVhZGVyIGlucHV0KSB7CisgICAgICAgIHRoaXMuaW5wdXQgPSBpbnB1dDsKKyAgICB9CisKKyAgICAgICAgLyoqIFJldHVybiB0aGUgc3RhdGVzIHVzZWQgYnkgdGhpcyBtYWNoaW5lICovCisgICAgcHVibGljIFRyYW5zaXRpb25bXVtdIGdldFN0YXRlcygpIHsKKyAgICAgICAgcmV0dXJuIHN0YXRlczsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRTdGF0ZXMoVHJhbnNpdGlvbltdW10gc3RhdGVzKSB7CisgICAgICAgIHRoaXMuc3RhdGVzID0gc3RhdGVzOworICAgIH0KKworICAgICAgICAvKiogUmV0dXJuIHRydWUgaWYgdGhlIHNwZWNpZmllZCBzdHJpbmcgZXF1YWxzIHRoZQorICAgICAgICAgKiBzdHJpbmcgcmV0dXJuZWQgYnkgZ2V0RGF0YSgpLiAgVGhpcyByb3V0aW5lCisgICAgICAgICAqIG1heSBiZSBmYXN0ZXIgdGhhbiBjYWxsaW5nIGdldERhdGEgYmVjYXVzZQorICAgICAgICAgKiBpdCBkb2VzIG5vdCBjcmVhdGUgYSBzdHJpbmcgb24gdGhlIGhlYXAuCisgICAgICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGRhdGFFcXVhbHMoZmluYWwgU3RyaW5nIG90aGVyKSB7CisgICAgICAgIGlmIChkYXRhICE9IG51bGwpIHsKKyAgICAgICAgICAgIC8vaWYgZGF0YUJ1ZmZlciBoYXMgYWxyZWFkeSBiZWVuIGNvbnZlcnRlZCB0bworICAgICAgICAgICAgLy9hIHN0cmluZywganVzdCBjb21wYXJlIHRoZSBzdHJpbmdzLgorICAgICAgICAgICAgcmV0dXJuIGRhdGEuZXF1YWxzKG90aGVyKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChvdGhlci5sZW5ndGgoKSAhPSBkYXRhQnVmZmVyLmxlbmd0aCgpKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBmaW5hbCBpbnQgbGVuID0gZGF0YUJ1ZmZlci5sZW5ndGgoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAob3RoZXIuY2hhckF0KGkpICE9IGRhdGFCdWZmZXIuY2hhckF0KGkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFwcGVuZCB0aGUgZGF0YSByZXR1cm5lZCBmcm9tIGdldERhdGEoKSB0byB0aGUKKyAgICAgICAgICogc3BlY2lmaWVkIFN0cmluZ0J1ZmZlci4gIFRoaXMgcm91dGluZSBhdm9pZHMKKyAgICAgICAgICogdGhlIGNyZWF0aW9uIG9mIGEgU3RyaW5nIG9uIHRoZSBoZWFwLgorICAgICAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhcHBlbmREYXRhVG8oU3RyaW5nQnVmZmVyIGJ1ZmZlcikgeworICAgICAgICBidWZmZXIuYXBwZW5kKGRhdGFCdWZmZXIpOworICAgIH0KKyAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBkYXRhIHJldHVybmVkIGJ5IGdldERhdGEoKQorICAgICAgICAgKiBzdGFydHMgd2l0aCB0aGUgc3BlY2lmaWVkIHN0cmluZy4gIFRoaXMgcm91dGluZSBhdm9pZHMKKyAgICAgICAgICogdGhlIGNyZWF0aW9uIG9mIGEgU3RyaW5nIG9uIHRoZSBoZWFwLgorICAgICAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBkYXRhU3RhcnRzV2l0aChTdHJpbmcgcykgeworICAgICAgICBpZiAoZGF0YUJ1ZmZlci5sZW5ndGgoKSA8IHMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGZpbmFsIGludCBzTGVuZ3RoID0gcy5sZW5ndGgoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc0xlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGRhdGFCdWZmZXIuY2hhckF0KGkpICE9IHMuY2hhckF0KGkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKiAKKyAgICAgICAgICogQ29udmVydCB0aGUgY29udGVudHMgb2YgdGhlIGRhdGEgYnVmZmVyIHRvIGFuIGludGVnZXIKKyAgICAgICAgICogb2YgdGhlIHNwZWNpZmllZCByYWRpeAorICAgICAgICAgKi8KKyAgICBwdWJsaWMgaW50IGRhdGFBc051bWJlcihpbnQgcmFkaXgpIHsKKyAgICAgICAgaW50IHZhbHVlID0gMDsKKyAgICAgICAgZmluYWwgaW50IGxlbiA9IGRhdGFCdWZmZXIubGVuZ3RoKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKKyAgICAgICAgICAgIHZhbHVlID0gdmFsdWUqcmFkaXggKyBDaGFyYWN0ZXIuZGlnaXQoZGF0YUJ1ZmZlci5jaGFyQXQoaSksIHJhZGl4KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgfQorICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogR2V0IHRoZSBuZXh0IHRva2VuIGZyb20gdGhlIGlucHV0IHN0cmVhbS4gIFRoZQorICAgICAgICAgKiBkYXRhQnVmZmVyIGlzIGNsZWFyZWQgYW5kIHRoZSBzdGF0ZSBpcyBzZXQgdG8gemVybyBiZWZvcmUKKyAgICAgICAgICogcGFyc2luZyBiZWdpbnMuICBQYXJzaW5nIGNvbnRpbnVlcyB1bnRpbCBhIHN0YXRlCisgICAgICAgICAqIGdyZWF0ZXIgb2YgZXF1YWwgdG8gMCBzIHJlYWNoZWQgb3IgYW4gZXhjZXB0aW9uIGlzIHRocm93bi4KKyAgICAgICAgICogQWZ0ZXIgZWFjaCBub24tdGVybWluYWwgdHJhbnNpdGlvbiwgdGhlIHN0YXRlIG1hY2hpbmUgCisgICAgICAgICAqIHdhbGtzIHRocm91Z2ggYWxsIHRoZSB0cmFuc2l0aW9ucywgaW4gb3JkZXIsIGZvciB0aGUgY3VycmVudAorICAgICAgICAgKiBzdGF0ZSB1bnRpbCBpdCBmaW5kcyBvbmUgdGhhdCB3aWxsIGFjY2VwdCB0aGUgY3VycmVudAorICAgICAgICAgKiBpbnB1dCBjaGFyYWN0ZXIgYW5kIHRoZW4gY2FsbHMgZG9BY3Rpb24gb24gdGhhdCB0cmFuc2l0aW9uLgorICAgICAgICAgKi8KKyAgICBwdWJsaWMgaW50IG5leHRUb2tlbigpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHN0YXRlID0gMDsKKyAgICAgICAgZGF0YUJ1ZmZlci5zZXRMZW5ndGgoMCk7CisKKyAgICAgICAgZG8geworICAgICAgICAgICAgaW50IGMgPSBpbnB1dC5yZWFkKCk7CisgICAgICAgICAgICBmaW5hbCBUcmFuc2l0aW9uW10gdHJhbnNpdGlvbiA9IHN0YXRlc1stc3RhdGVdOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0cmFuc2l0aW9uLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKHRyYW5zaXRpb25baV0uYWNjZXB0cyhjKSkgeworICAgICAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigic3RhdGVbIisgLXN0YXRlKyJdLnRyYW5zaXRpb25bIitpKyJdIG9uICIrYysiICAnIisoY2hhciljKyInIHRvIHN0YXRlWyIpOworICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHRyYW5zaXRpb25baV0uZG9BY3Rpb24oYywgaW5wdXQsIGRhdGFCdWZmZXIpOworICAgICAgICAgICAgICAgICAgICAvL3ByaW50bG4oIiIgKyAtc3RhdGUgKyAiXSIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gd2hpbGUgKHN0YXRlIDw9IDApOworICAgICAgICBkYXRhID0gbnVsbDsgICAgLy9kdW1wIHRoZSBjYWNoZWQgZGF0YSBzdHJpbmcKKyAgICAgICAgcmV0dXJuIHN0YXRlOworICAgIH0KKworICAgICAgICAvKiogCisgICAgICAgICAqIEdldCB0aGUgbmV4dCB0b2tlbiBhbmQgdGhyb3cgYW4gYWNjZXB0aW9uIGlmCisgICAgICAgICAqIHRoZSBzdGF0ZSBtYWNoaW5lIGlzIG5vdCBpbiB0aGUgc3BlY2lmaWVkIHN0YXRlLgorICAgICAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhY2NlcHQoZmluYWwgaW50IG5lZWRlZFN0YXRlKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBpZiAobmVlZGVkU3RhdGUgIT0gbmV4dFRva2VuKCkpIHsKKyAgICAgICAgICAgIEV4Y2VwdGlvbiBlID0gbmV3IEV4Y2VwdGlvbigpOworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgIHRocm93IG5ldyBQYXJzZUV4Y2VwdGlvbigiVW5leHBlY3RlZCB0b2tlbiAtICIrZ2V0RGF0YSgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEdldCB0aGUgbmV4dCB0b2tlbiBhbmQgdGhyb3cgYW4gZXhjZXB0aW9uIGlmIHRoZQorICAgICAgICAgKiBzdGF0ZSBtYWNoaW5lIGlzIG5vdCBpbiB0aGUgc3BlY2lmaWVkIHN0YXRlIGFuZCB0aGUKKyAgICAgICAgICogdmFsdWUgcmV0dXJuZWQgYnkgZ2V0RGF0YSgpIGRvZXMgbm90IG1hdGNoIHRoZSAKKyAgICAgICAgICogc3BlY2lmaWVkIHZhbHVlLgorICAgICAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhY2NlcHQoZmluYWwgaW50IG5lZWRlZFN0YXRlLCBmaW5hbCBTdHJpbmcgbmVlZGVkVmFsdWUpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGFjY2VwdChuZWVkZWRTdGF0ZSk7CisgICAgICAgIGlmICghZGF0YUVxdWFscyhuZWVkZWRWYWx1ZSkpIHsKKyAgICAgICAgICAgIEV4Y2VwdGlvbiBlID0gbmV3IEV4Y2VwdGlvbigpOworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgIHRocm93IG5ldyBQYXJzZUV4Y2VwdGlvbigiVW5leHBlY3RlZCB0b2tlbiAtICIrZ2V0RGF0YSgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGRlYnVnKGJvb2xlYW4gZGVidWdNZXNzYWdlc09uKSB7CisgICAgICAgIHRoaXMuZGVidWdNZXNzYWdlc09uID0gZGVidWdNZXNzYWdlc09uOworICAgICAgICBkZWJ1Z1RhZyA9IG51bGw7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGRlYnVnKGJvb2xlYW4gZGVidWdNZXNzYWdlc09uLCBTdHJpbmcgdGFnKSB7CisgICAgICAgIHRoaXMuZGVidWdNZXNzYWdlc09uID0gZGVidWdNZXNzYWdlc09uOworICAgICAgICB0aGlzLmRlYnVnVGFnID0gdGFnOworICAgIH0KKyAgICAKKy8qICBwcml2YXRlIHZvaWQgcHJpbnQoU3RyaW5nIHMpIHsKKyAgICAgICAgaWYgKGRlYnVnTWVzc2FnZXNPbikgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludChzKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBwcmludGxuKFN0cmluZyBzKSB7CisgICAgICAgIGlmIChkZWJ1Z01lc3NhZ2VzT24pIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihzKyIgIDwiK2RlYnVnVGFnKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRoZSBpbnRlcmZhY2UgZm9yIHN0YXRlIG1hY2hpbmUgdHJhbnNpdGlvbnMuIAorICAgICAqLworICAgIHB1YmxpYyBpbnRlcmZhY2UgVHJhbnNpdGlvbiB7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIHRyYW5zaXRpb24gY2FuIGFjY2VwdCB0aGUgY3VycmVudCBpbnB1dAorICAgICAgICAgKiBjaGFyYWN0ZXIuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgYm9vbGVhbiBhY2NlcHRzKGludCBjKTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFBlcmZvcm0gdGhlIHRyYW5zaXRpb24uCisgICAgICAgICAqIEBwYXJhbSBjIHRoZSBjdXJyZW50IGlucHV0IGNoYXJhY3RlcgorICAgICAgICAgKiBAcGFyYW0gaW5wdXQgdGhlIGN1cnJlbnQgaW5wdXQgc3RyZWFtLCBtaW51cyB0aGUgY3VycmVudCBpbnB1dCBjaGFyYWN0ZXIKKyAgICAgICAgICogQHBhcmFtIGJ1ZmZlciB0aGUgY3VycmVudCBvdXRwdXQgYnVmZmVyCisgICAgICAgICAqIEByZXR1cm4gdGhlIHN0YXRlIHRoZSBtYWNoaW5lIHNob3VsZCBiZSBpbiBuZXh0CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IGRvQWN0aW9uKGludCBjLCBQdXNoYmFja1JlYWRlciBpbnB1dCwgU3RyaW5nQnVmZmVyIGJ1ZmZlcikgdGhyb3dzIElPRXhjZXB0aW9uOworICAgIH0KKworICAgICAgICAvKiBjb25zdGFudHMgZm9yIEJhc2VUcmFuc2l0aW9ucyAqLworICAgICAgICAvKiogRG9uJ3QgY29weSB0aGUgY3VycmVudCBjaGFyYWN0ZXIgdG8gdGhlIG91dHB1dCAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBJR05PUkUgPSAweDAxOworICAgICAgICAvKiogQXBwZW5kIHRoZSBjdXJyZW50IGNoYXJhY3RlciB0byB0aGUgb3V0cHV0ICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIEFDQ1VNVUxBVEUgPSAweDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgQlVGRkVSX01BU0sgPSAweDAxOworCisgICAgICAgIC8qKiBSZW1vdmUgdGhlIGN1cnJlbnQgY2hhcmFjdGVyIGZyb20gdGhlIGlucHV0IHN0cmVhbSAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBDT05TVU1FID0gMHgwMDsKKyAgICAgICAgLyoqIFJldHVybiB0aGUgY3VycmVudCBjaGFyYWN0ZXIgdG8gdGhlIGlucHV0IHN0cmVhbSAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBQVVRCQUNLID0gMHgxMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIElOUFVUX01BU0sgPSAweDEwOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIAorICAgICAgICAgICAgQUNDVU1VTEFURV9DT05TVU1FID0gKGJ5dGUpKEFDQ1VNVUxBVEUgfCBDT05TVU1FKSwKKyAgICAgICAgICAgIElHTk9SRV9DT05TVU1FID0gKGJ5dGUpKElHTk9SRSB8IENPTlNVTUUpLAorICAgICAgICAgICAgQUNDVU1VTEFURV9QVVRCQUNLID0gKGJ5dGUpKEFDQ1VNVUxBVEUgfCBQVVRCQUNLKSwKKyAgICAgICAgICAgIElHTk9SRV9QVVRCQUNLID0gKGJ5dGUpKElHTk9SRSB8IFBVVEJBQ0spOworCisgICAgLyoqCisgICAgICogQmFzZSBjbGFzcyBmb3Igc2ltcGxlIHRyYW5zaXRpb24gY2xhc3NlcworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYWJzdHJhY3QgY2xhc3MgQmFzZVRyYW5zaXRpb24gaW1wbGVtZW50cyBUcmFuc2l0aW9uIHsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIGFkZFRvQnVmZmVyOworICAgICAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gdW5yZWFkSW5wdXQ7CisgICAgICAgIHByaXZhdGUgZmluYWwgaW50IG5leHQ7CisgICAgICAgIC8qKgorICAgICAgICAgKiBDb25zdHJ1Y3QgYSBuZXcgdHJhbnNpdGlvbi4gIE9uIGV4ZWN1dGlvbiwgdGhlIAorICAgICAgICAgKiBzcGVjaWZpZWQgYWN0aW9uIGlzIHBlcmZvcm1lZCBhbmQgdGhlCisgICAgICAgICAqIHNwZWNpZmllZCBzdGF0ZSBpcyByZXR1cm5lZC4KKyAgICAgICAgICogQHBhcmFtIGFjdGlvbiB0aGUgYWN0aW9ucyB0byBwZXJmb3JtIHRvIHRoZSAKKyAgICAgICAgICogaW5wdXQgYW5kIG91dHB1dCBidWZmZXJzLgorICAgICAgICAgKiBAcGFyYW0gbmV4dCB0aGUgbmV4dCBzdGF0ZSB0aGUgbWFjaGluZSBzaG91bGQKKyAgICAgICAgICogbW92ZSBpbnRvCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgQmFzZVRyYW5zaXRpb24oYnl0ZSBhY3Rpb24sIGludCBuZXh0KSB7CisgICAgICAgICAgICB0aGlzLmFkZFRvQnVmZmVyID0gKGFjdGlvbiAmIEJVRkZFUl9NQVNLKSA9PSBBQ0NVTVVMQVRFOworICAgICAgICAgICAgdGhpcy51bnJlYWRJbnB1dCA9IChhY3Rpb24gJiBJTlBVVF9NQVNLKSA9PSBQVVRCQUNLOworICAgICAgICAgICAgdGhpcy5uZXh0ID0gbmV4dDsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbiBhY2NlcHRzKGludCBjKTsKKyAgICAgICAgcHVibGljIGludCBkb0FjdGlvbihmaW5hbCBpbnQgYywgCisgICAgICAgICAgICAgICAgZmluYWwgUHVzaGJhY2tSZWFkZXIgaW5wdXQsIAorICAgICAgICAgICAgICAgIGZpbmFsIFN0cmluZ0J1ZmZlciBidWZmZXIpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoYWRkVG9CdWZmZXIpIHsKKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKChjaGFyKWMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHVucmVhZElucHV0KSB7CisgICAgICAgICAgICAgICAgaW5wdXQudW5yZWFkKGMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG5leHQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBY2NlcHQgZW5kLW9mLWZpbGUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBFT0ZUcmFuc2l0aW9uIGV4dGVuZHMgQmFzZVRyYW5zaXRpb24geworICAgICAgICBwdWJsaWMgRU9GVHJhbnNpdGlvbigpIHsKKyAgICAgICAgICAgIHRoaXMoSUdOT1JFX0NPTlNVTUUsIEVORF9PRl9GSUxFKTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgRU9GVHJhbnNpdGlvbihpbnQgbmV4dCkgeworICAgICAgICAgICAgdGhpcyhJR05PUkVfQ09OU1VNRSwgbmV4dCk7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIEVPRlRyYW5zaXRpb24oYnl0ZSBhY3Rpb24sIGludCBuZXh0KSB7CisgICAgICAgICAgICBzdXBlcihhY3Rpb24sIG5leHQpOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBib29sZWFuIGFjY2VwdHMoaW50IGMpIHsKKyAgICAgICAgICAgIHJldHVybiBjID09IC0xOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQWNjZXB0IGFueXRoaW5nLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgRGVmYXVsdFRyYW5zaXRpb24gZXh0ZW5kcyBCYXNlVHJhbnNpdGlvbiB7CisgICAgICAgIHB1YmxpYyBEZWZhdWx0VHJhbnNpdGlvbihieXRlIGFjdGlvbiwgaW50IG5leHRTdGF0ZSkgeworICAgICAgICAgICAgc3VwZXIoYWN0aW9uLCBuZXh0U3RhdGUpOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBib29sZWFuIGFjY2VwdHMoaW50IGMpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQWNjZXB0IGFueSBjaGFyYWN0ZXJzIGluIHRoZSBzcGVjaWZpZWQgc3RyaW5nLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgU3RyaW5nVHJhbnNpdGlvbiBleHRlbmRzIEJhc2VUcmFuc2l0aW9uIHsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgY2hhcnM7CisgICAgICAgIHB1YmxpYyBTdHJpbmdUcmFuc2l0aW9uKFN0cmluZyBjaGFycywgYnl0ZSBhY3Rpb24sIGludCBuZXh0U3RhdGUpIHsKKyAgICAgICAgICAgIHN1cGVyKGFjdGlvbiwgbmV4dFN0YXRlKTsKKyAgICAgICAgICAgIHRoaXMuY2hhcnMgPSBjaGFyczsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBhY2NlcHRzKGludCBjKSB7CisgICAgICAgICAgICByZXR1cm4gY2hhcnMuaW5kZXhPZigoY2hhciljKSAhPSAtMTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEFjY2VwdCBvbmx5IHRoZSBzcGVjaWZpZWQgY2hhcmFjdGVyLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgQ2hhclRyYW5zaXRpb24gZXh0ZW5kcyBCYXNlVHJhbnNpdGlvbiB7CisgICAgICAgIHByaXZhdGUgY2hhciBjOworICAgICAgICBwdWJsaWMgQ2hhclRyYW5zaXRpb24oY2hhciBjLCBieXRlIGFjdGlvbiwgaW50IG5leHRTdGF0ZSkgeworICAgICAgICAgICAgc3VwZXIoYWN0aW9uLCBuZXh0U3RhdGUpOworICAgICAgICAgICAgdGhpcy5jID0gYzsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBhY2NlcHRzKGludCBjKSB7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5jID09IChjaGFyKWM7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBY2NlcHQgYW55dGhpbmcsIGJ1dCB0aHJvdyB0aGUgc3BlY2lmaWVkIGV4Y2VwdGlvbiBhZnRlcgorICAgICAqIHBlcmZvcm1pbmcgdGhlIHNwZWNpZmllZCBhY3Rpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIEV4Y2VwdGlvblRyYW5zaXRpb24gZXh0ZW5kcyBCYXNlVHJhbnNpdGlvbiB7CisgICAgICAgIHByaXZhdGUgSU9FeGNlcHRpb24gZTsKKyAgICAgICAgcHVibGljIEV4Y2VwdGlvblRyYW5zaXRpb24oSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgc3VwZXIoSUdOT1JFX1BVVEJBQ0ssIEVORF9PRl9GSUxFKTsgLy9zdGF0ZSBpcyBpZ25vcmVkCisgICAgICAgIH0KKyAgICAgICAgcHVibGljIEV4Y2VwdGlvblRyYW5zaXRpb24oYnl0ZSBhY3Rpb24sIElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHN1cGVyKGFjdGlvbiwgRU5EX09GX0ZJTEUpOyAvL3N0YXRlIGlzIGlnbm9yZWQKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBhY2NlcHRzKGludCBjKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgZmluYWwgaW50IGRvQWN0aW9uKGZpbmFsIGludCBjLCAKKyAgICAgICAgICAgICAgICBmaW5hbCBQdXNoYmFja1JlYWRlciBpbnB1dCwgCisgICAgICAgICAgICAgICAgZmluYWwgU3RyaW5nQnVmZmVyIGJ1ZmZlcikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgICAgIHN1cGVyLmRvQWN0aW9uKGMsIGlucHV0LCBidWZmZXIpOworICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgfQorICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGJhc2UgY2xhc3MgZm9yIHBhcnNlIGV4Y2VwdGlvbnMuICBFeGNlcHRpb25zCisgICAgICAgICAqIHJlc3VsdGluZyBmcm9tIHBhcnNpbmcgZXJyb3JzIHNob3VsZCBiZSBzdWJjbGFzc2VzIG9mIHRoaXMKKyAgICAgICAgICogY2xhc3MuCisgICAgICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgUGFyc2VFeGNlcHRpb24gZXh0ZW5kcyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgcmVhc29uOworICAgICAgICBwdWJsaWMgUGFyc2VFeGNlcHRpb24oKSB7CisgICAgICAgICAgICB0aGlzLnJlYXNvbiA9ICJ1bmtvd24iOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBQYXJzZUV4Y2VwdGlvbihTdHJpbmcgcmVhc29uKSB7CisgICAgICAgICAgICB0aGlzLnJlYXNvbiA9IHJlYXNvbjsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgcmV0dXJuIHJlYXNvbjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEFjY2VwdCBhbnl0aGluZywgZXhlY3V0ZSBhcyBJR05PUkVfUFVUQkFDSywgYW5kIHRocm93CisgICAgICogYSBQYXJzZUV4Y2VwdGlvbiB3aXRoIHRoZSBzcGVjaWZpZWQgbWVzc2FnZQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgUGFyc2VFeGNlcHRpb25UcmFuc2l0aW9uIGltcGxlbWVudHMgVHJhbnNpdGlvbiB7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIHJlYXNvbjsKKyAgICAgICAgcHVibGljIFBhcnNlRXhjZXB0aW9uVHJhbnNpdGlvbihTdHJpbmcgcmVhc29uKSB7CisgICAgICAgICAgICB0aGlzLnJlYXNvbiA9IHJlYXNvbjsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBhY2NlcHRzKGludCBjKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgZmluYWwgaW50IGRvQWN0aW9uKGZpbmFsIGludCBjLCAKKyAgICAgICAgICAgICAgICBmaW5hbCBQdXNoYmFja1JlYWRlciBpbnB1dCwgCisgICAgICAgICAgICAgICAgZmluYWwgU3RyaW5nQnVmZmVyIGJ1ZmZlcikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgICAgIGlucHV0LnVucmVhZCgoY2hhciljKTsKKyAgICAgICAgICAgIHRocm93IG5ldyBQYXJzZUV4Y2VwdGlvbihyZWFzb24pOworICAgICAgICB9CisgICAgfQorCisgICAgLy97e0RFQ0xBUkVfQ09OVFJPTFMKKwkvL319Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0xpbmVDaGFyTnVtYmVyUmVhZGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0xpbmVDaGFyTnVtYmVyUmVhZGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjcxMWUzMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvTGluZUNoYXJOdW1iZXJSZWFkZXIuamF2YQpAQCAtMCwwICsxLDE0NiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9MaW5lQ2hhck51bWJlclJlYWRlci5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA1OjI5ICQgCisgKiAkUmV2aXNpb246IDEuMiAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgamF2YS5pby4qOworCisvKioKKyAqIEEgTGluZUNoYXJOdW1iZXJSZWFkZXIgaXMgYSBCdWZmZXJlZFJlYWRlciB0aGF0CisgKiBrZWVwcyB0cmFjayBvZiB0aGUgbGluZSBudW1iZXIgYW5kIGNoYXJhY3RlciBvZmZzZXQKKyAqIG9uIHRoYXQgbGluZSBvZiB0aGUgY3VycmVudCBpbnB1dCBzdHJlYW0uCisgKi8KK3B1YmxpYyBjbGFzcyBMaW5lQ2hhck51bWJlclJlYWRlciBleHRlbmRzIEJ1ZmZlcmVkUmVhZGVyIHsKKyAgICBwcml2YXRlIGludCBsaW5lTnVtYmVyID0gMDsKKyAgICBwcml2YXRlIGludCBjaGFyTnVtYmVyID0gMDsKKyAgICBwcml2YXRlIGludCBtYXJrZWRMaW5lTnVtYmVyOworICAgIHByaXZhdGUgaW50IG1hcmtlZENoYXJOdW1iZXI7CisgICAgcHJpdmF0ZSBib29sZWFuIHNraXBMRjsKKworICAgIHB1YmxpYyBMaW5lQ2hhck51bWJlclJlYWRlcihSZWFkZXIgaW4pIHsKKyAgICAgICAgc3VwZXIoaW4pOworICAgICAgICAgICAgLy97e0lOSVRfQ09OVFJPTFMKKyAgICAgICAgLy99fQorfQorCisgICAgcHVibGljIExpbmVDaGFyTnVtYmVyUmVhZGVyKFJlYWRlciBpbiwgaW50IHN6KSB7CisgICAgICAgIHN1cGVyKGluLCBzeik7CisgICAgfQorCisgICAgcHVibGljIGludCBnZXRMaW5lTnVtYmVyKCkgeworICAgICAgICByZXR1cm4gbGluZU51bWJlcjsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldENoYXJOdW1iZXIoKSB7CisgICAgICAgIHJldHVybiBjaGFyTnVtYmVyOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgcmVhZCgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHN5bmNocm9uaXplZCAobG9jaykgeworICAgICAgICAgICAgaW50IGMgPSBzdXBlci5yZWFkKCk7CisgICAgICAgICAgICBjaGFyTnVtYmVyKys7CisgICAgICAgICAgICBpZiAoc2tpcExGKSB7CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJ1xuJykgYyA9IHN1cGVyLnJlYWQoKTsKKyAgICAgICAgICAgICAgICBza2lwTEYgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgY2FzZSAnXHInOgorICAgICAgICAgICAgICAgIHNraXBMRiA9IHRydWU7CisgICAgICAgICAgICBjYXNlICdcbic6ICAgICAgLyogRmFsbCB0aHJvdWdoICovCisgICAgICAgICAgICBjYXNlICdcdTIwMjgnOiAgICAgIC8qIEZhbGwgdGhyb3VnaCAqLworICAgICAgICAgICAgY2FzZSAnXHUyMDI5JzogICAgICAvKiBGYWxsIHRocm91Z2ggKi8KKyAgICAgICAgICAgICAgICBsaW5lTnVtYmVyKys7CisgICAgICAgICAgICAgICAgY2hhck51bWJlciA9IDA7CisgICAgICAgICAgICAgICAgcmV0dXJuICdcbic7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gYzsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBpbnQgcmVhZChjaGFyIGNidWZbXSwgaW50IG9mZiwgaW50IGxlbikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgc3luY2hyb25pemVkIChsb2NrKSB7CisgICAgICAgICAgICBpbnQgbiA9IHN1cGVyLnJlYWQoY2J1Ziwgb2ZmLCBsZW4pOworCisgICAgICAgICAgICBmb3IgKGludCBpID0gb2ZmOyBpIDwgb2ZmICsgbGVuOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpbnQgYyA9IGNidWZbaV07CisgICAgICAgICAgICAgICAgY2hhck51bWJlcisrOworICAgICAgICAgICAgICAgIGlmIChza2lwTEYpIHsKKyAgICAgICAgICAgICAgICAgICAgc2tpcExGID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGlmIChjID09ICdcbicpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgICAgICAgICBjYXNlICdccic6CisgICAgICAgICAgICAgICAgICAgIHNraXBMRiA9IHRydWU7CisgICAgICAgICAgICAgICAgY2FzZSAnXG4nOiAgLyogRmFsbCB0aHJvdWdoICovCisgICAgICAgICAgICAgICAgY2FzZSAnXHUyMDI4JzogIC8qIEZhbGwgdGhyb3VnaCAqLworICAgICAgICAgICAgICAgIGNhc2UgJ1x1MjAyOSc6ICAvKiBGYWxsIHRocm91Z2ggKi8KKyAgICAgICAgICAgICAgICAgICAgbGluZU51bWJlcisrOworICAgICAgICAgICAgICAgICAgICBjaGFyTnVtYmVyID0gMDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gbjsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgcmVhZExpbmUoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBzeW5jaHJvbml6ZWQgKGxvY2spIHsKKyAgICAgICAgICAgIFN0cmluZyBsID0gc3VwZXIucmVhZExpbmUoKTsKKyAgICAgICAgICAgIGlmIChsICE9IG51bGwpCisgICAgICAgICAgICBsaW5lTnVtYmVyKys7CisgICAgICAgICAgICBjaGFyTnVtYmVyID0gMDsKKyAgICAgICAgICAgIHNraXBMRiA9IGZhbHNlOworICAgICAgICAgICAgcmV0dXJuIGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgbWF4U2tpcEJ1ZmZlclNpemUgPSA4MTkyOworCisgICAgcHJpdmF0ZSBjaGFyIHNraXBCdWZmZXJbXSA9IG51bGw7CisKKyAgICBwdWJsaWMgbG9uZyBza2lwKGxvbmcgbikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgaW50IG5uID0gKGludCkgTWF0aC5taW4obiwgbWF4U2tpcEJ1ZmZlclNpemUpOworICAgICAgICBzeW5jaHJvbml6ZWQgKGxvY2spIHsKKyAgICAgICAgICAgIGlmICgoc2tpcEJ1ZmZlciA9PSBudWxsKSB8fCAoc2tpcEJ1ZmZlci5sZW5ndGggPCBubikpCisgICAgICAgICAgICBza2lwQnVmZmVyID0gbmV3IGNoYXJbbm5dOworICAgICAgICAgICAgbG9uZyByID0gbjsKKyAgICAgICAgICAgIHdoaWxlIChyID4gMCkgeworICAgICAgICAgICAgaW50IG5jID0gcmVhZChza2lwQnVmZmVyLCAwLCBubik7CisgICAgICAgICAgICBpZiAobmMgPT0gLTEpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICByIC09IG5jOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG4gLSByOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgbWFyayhpbnQgcmVhZEFoZWFkTGltaXQpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHN5bmNocm9uaXplZCAobG9jaykgeworICAgICAgICAgICAgc3VwZXIubWFyayhyZWFkQWhlYWRMaW1pdCk7CisgICAgICAgICAgICBtYXJrZWRMaW5lTnVtYmVyID0gbGluZU51bWJlcjsKKyAgICAgICAgICAgIG1hcmtlZENoYXJOdW1iZXIgPSBjaGFyTnVtYmVyOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVzZXQoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBzeW5jaHJvbml6ZWQgKGxvY2spIHsKKyAgICAgICAgICAgIHN1cGVyLnJlc2V0KCk7CisgICAgICAgICAgICBsaW5lTnVtYmVyID0gbWFya2VkTGluZU51bWJlcjsKKyAgICAgICAgICAgIGNoYXJOdW1iZXIgPSBtYXJrZWRDaGFyTnVtYmVyOworICAgICAgICB9CisgICAgfQorCisgICAgLy97e0RFQ0xBUkVfQ09OVFJPTFMKKyAgICAvL319Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0xvY2FsZUNvbnZlcnRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Mb2NhbGVDb252ZXJ0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mZTQ3NGYwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Mb2NhbGVDb252ZXJ0ZXIuamF2YQpAQCAtMCwwICsxLDQyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0xvY2FsZUNvbnZlcnRlci5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA1OjI5ICQgCisgKiAkUmV2aXNpb246IDEuMiAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC4qOworCitwdWJsaWMgY2xhc3MgTG9jYWxlQ29udmVydGVyIHsKKyAgICBwdWJsaWMgSGFzaHRhYmxlIGNvbnZlcnQoSGFzaHRhYmxlIHRhYmxlKSB0aHJvd3MgQ29udmVyc2lvbkVycm9yIHsKKyAgICAgICAgSGFzaHRhYmxlIHJlc3VsdCA9IG5ldyBIYXNodGFibGUoKTsKKyAgICAgICAgY29udmVydChyZXN1bHQsIHRhYmxlKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgY29udmVydChIYXNodGFibGUgcmVzdWx0LCBIYXNodGFibGUgc291cmNlKSB0aHJvd3MgQ29udmVyc2lvbkVycm9yIHsKKyAgICAgICAgRW51bWVyYXRpb24gZW51bSA9IHNvdXJjZS5rZXlzKCk7CisgICAgICAgIHdoaWxlIChlbnVtLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBTdHJpbmcga2V5ID0gKFN0cmluZyllbnVtLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICBPYmplY3QgZGF0YSA9IHNvdXJjZS5nZXQoa2V5KTsKKyAgICAgICAgICAgIHJlc3VsdC5wdXQoa2V5LCBkYXRhKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIENvbnZlcnNpb25FcnJvciBleHRlbmRzIEV4Y2VwdGlvbiB7CisgICAgICAgIHB1YmxpYyBDb252ZXJzaW9uRXJyb3IoKSB7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBDb252ZXJzaW9uRXJyb3IoU3RyaW5nIHJlYXNvbikgeworICAgICAgICAgICAgc3VwZXIocmVhc29uKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvTG9jYWxlV3JpdGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0xvY2FsZVdyaXRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgwNWIyMzgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0xvY2FsZVdyaXRlci5qYXZhCkBAIC0wLDAgKzEsNDE5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0xvY2FsZVdyaXRlci5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA1OjI5ICQgCisgKiAkUmV2aXNpb246IDEuMyAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC4qOworLyoqCisgKiBBIExvY2FsZVdyaXRlciB0YWtlcyBsb2NhbGUgZGF0YSBpbiBzdGFuZGFyZCBmb3JtIGFuZAorICogd3JpdGVzIGl0IHRvIHN0YW5kYXJkIG91dHB1dCBpbiBhIGZvcm0gc3VpdGFibGUgZm9yCisgKiBsb2FkaW5nIHByb2dyYW1hdGljYWxseS4KKyAqLworcHVibGljIGFic3RyYWN0IGNsYXNzIExvY2FsZVdyaXRlciB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIElOREVOVF9DSEFSUyA9IAorICAgICAgICAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIrCisgICAgICAgICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIisKKyAgICAgICAgIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgRU9MX0NIQVJTW10gPSB7J1xyJywgJ1xuJywgJ1x1MjAyOCcsICdcdTIwMjknfTsKKyAgICAgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElOREVOVF9TSVpFID0gNDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0xJTkVfTEVOR1RIID0gODA7CisgICAgcHJpdmF0ZSBpbnQgaW5kZW50TGV2ZWw7CisgICAgcHJpdmF0ZSBTdHJpbmcgaW5kZW50U3RyaW5nOworICAgIHByaXZhdGUgYm9vbGVhbiBuZWVkc0luZGVudDsKKyAgICBwcm90ZWN0ZWQgU3RyaW5nQnVmZmVyIGxpbmVCdWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgcHJpdmF0ZSBpbnQgbGluZUxlbmd0aDsKKyAgICBwcm90ZWN0ZWQgUHJpbnRTdHJlYW0gb3V0OworICAgIHByb3RlY3RlZCBQcmludFN0cmVhbSBlcnI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvciBodVRyYW5zbGl0ID0gbmV3IEhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yKCI8VSMjIzA+Iik7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlVG9IZXhUcmFuc2xpdGVyYXRvciB1aFRyYW5zbGl0ID0gbmV3IFVuaWNvZGVUb0hleFRyYW5zbGl0ZXJhdG9yKCJcXFxcdTAwMDAiKTsKKyAgICBmaW5hbCBGaWxlIG91dEZpbGUgPSBuZXcgRmlsZSggICJjbnZMb2MudHh0Iik7CisgICAgRmlsZU91dHB1dFN0cmVhbSBvdXRGaWxlU3RyZWFtOworICAgIEJ1ZmZlcmVkV3JpdGVyIG91dEJ1ZldyaXRlOworICAgIFByaW50V3JpdGVyIG15T3V0OworICAgIAorICAgIHB1YmxpYyBMb2NhbGVXcml0ZXIoUHJpbnRTdHJlYW0gb3V0KSB7CisgICAgICAgIHRoaXMub3V0ID0gb3V0OworICAgICAgICB0aGlzLmVyciA9IG91dDsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgb3V0RmlsZS5jYW5Xcml0ZSgpOworICAgICAgICAgICAgb3V0RmlsZVN0cmVhbSA9IG5ldyBGaWxlT3V0cHV0U3RyZWFtKG91dEZpbGUpOworICAgICAgICAgICAgb3V0QnVmV3JpdGUgPSBuZXcgQnVmZmVyZWRXcml0ZXIobmV3IE91dHB1dFN0cmVhbVdyaXRlcihvdXRGaWxlU3RyZWFtLCJVVEY4IikpOyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goamF2YS5pby5JT0V4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRW5jb2RpbmcgdW5zdXBwb3J0ZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfSAgCisgICAgfQorICAgIHB1YmxpYyBMb2NhbGVXcml0ZXIoUHJpbnRTdHJlYW0gb3V0LCBQcmludFN0cmVhbSBlcnIpIHsKKyAgICAgICAgdGhpcy5vdXQgPSBvdXQ7CisgICAgICAgIHRoaXMuZXJyID0gZXJyOworICAgICAgICB0cnl7CisgICAgICAgICAgICBvdXRGaWxlLmNhbldyaXRlKCk7CisgICAgICAgICAgICBvdXRGaWxlU3RyZWFtID0gbmV3IEZpbGVPdXRwdXRTdHJlYW0ob3V0RmlsZSk7CisgICAgICAgICAgICBvdXRCdWZXcml0ZSA9IG5ldyBCdWZmZXJlZFdyaXRlcihuZXcgT3V0cHV0U3RyZWFtV3JpdGVyKG91dEZpbGVTdHJlYW0sIlVURjgiKSk7ICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICBjYXRjaChqYXZhLmlvLklPRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFbmNvZGluZyB1bnN1cHBvcnRlZCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9ICAKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZShMb2NhbGUgbG9jYWxlLCBIYXNodGFibGUgbG9jYWxlRGF0YSkgeworICAgICAgICBvcGVuKGxvY2FsZSk7CisgICAgICAgICAgICAvL3NvcnQgdGhlIGtleSBzbyB0aGUgdGFncyBhcmUgaW4gb3JkZXIgaW4gdGhlIHJlc291cmNlIGZpbGUKKyAgICAgICAgU29ydGVkVmVjdG9yIG9yZGVyID0gbmV3IFNvcnRlZFZlY3Rvcihsb2NhbGVEYXRhLmtleXMoKSwgbmV3IFNvcnRlZFZlY3Rvci5TdHJpbmdDb21wYXJhdG9yKCkpOworICAgICAgICBFbnVtZXJhdGlvbiBlID0gb3JkZXIuZWxlbWVudHMoKTsKKyAgICAgICAgd2hpbGUgKGUuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIGZpbmFsIFN0cmluZyBrZXkgPSAoU3RyaW5nKWUubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgIGZpbmFsIE9iamVjdCBkYXRhID0gbG9jYWxlRGF0YS5nZXQoa2V5KTsKKyAgICAgICAgICAgIGlmIChpc0R1cGxpY2F0ZU9mSW5oZXJpdGVkVmFsdWUobG9jYWxlLCBrZXksIGRhdGEpKSB7CisgICAgICAgICAgICAgICBwcmludGxuKCIvLy8qIERpc2NhcmRpbmcgZHVwbGljYXRlIGRhdGEgZm9yIHRhZzogIitrZXkrIiAqLyIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB3cml0ZShrZXksIGRhdGEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgCisgICAgICAgIGNsb3NlKCk7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIGNsb3NlRmlsZUhhbmRsZSgpeworICAgICAgICAgdHJ5eworICAgICAgICAgICAgb3V0QnVmV3JpdGUuY2xvc2UoKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChqYXZhLmlvLklPRXhjZXB0aW9uIGV4Y3ApeworICAgICAgICAgICAgb3V0LnByaW50bG4oImNvdWxkIG5vdCBjbG9zZSB0aGUgb3V0cHV0IGZpbGUiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGUoU3RyaW5nIHRhZywgT2JqZWN0IG8pIHsKKyAgICAgICAgaWYgKG8gaW5zdGFuY2VvZiBTdHJpbmcpIHsKKyAgICAgICAgICAgIHdyaXRlKHRhZywgKFN0cmluZylvKTsKKyAgICAgICAgfSBlbHNlIGlmIChvIGluc3RhbmNlb2YgU3RyaW5nW10pIHsKKyAgICAgICAgICAgIHdyaXRlKHRhZywgKFN0cmluZ1tdKSBvKTsKKyAgICAgICAgfSBlbHNlIGlmIChvIGluc3RhbmNlb2YgU3RyaW5nW11bXSkgeworICAgICAgICAgICAgd3JpdGUodGFnLCAoU3RyaW5nW11bXSlvKTsKKyAgICAgICAgfSBlbHNlIGlmIChvIGluc3RhbmNlb2YgT2JqZWN0W10pIHsKKyAgICAgICAgICAgIE9iamVjdFtdIGRhdGEgPSAoT2JqZWN0W10pbzsKKyAgICAgICAgICAgIFN0cmluZ1tdIHRlbXAgPSBuZXcgU3RyaW5nW2RhdGEubGVuZ3RoXTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIHRlbXBbaV0gPSBkYXRhW2ldLnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3cml0ZSh0YWcsIHRlbXApOworICAgICAgICB9IGVsc2UgaWYgKG8gaW5zdGFuY2VvZiBPYmplY3RbXVtdKSB7CisgICAgICAgICAgICBPYmplY3RbXVtdIGRhdGEgPSAoT2JqZWN0W11bXSlvOworICAgICAgICAgICAgU3RyaW5nW11bXSB0ZW1wID0gbmV3IFN0cmluZ1tkYXRhLmxlbmd0aF1bXTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIHRlbXBbaV0gPSBuZXcgU3RyaW5nW2RhdGFbaV0ubGVuZ3RoXTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHRlbXBbaV0ubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdGVtcFtpXVtqXSA9IGRhdGFbaV1bal0udG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3cml0ZSh0YWcsIHRlbXApOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgd3JpdGUodGFnLCBvLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorICAgIHByb3RlY3RlZCBmaW5hbCB2b2lkIHdyaXRlKFN0cmluZyB0YWcsIFN0cmluZ1tdW10gdmFsdWUpIHsKKyAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgIGlmICh2YWx1ZVswXS5sZW5ndGggPiAyKSB7CisgICAgICAgICAgICAgICAgd3JpdGUyRCh0YWcsIHZhbHVlKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgd3JpdGVUYWdnZWQodGFnLCB2YWx1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB3cml0ZVRhZ2dlZCh0YWcsIHZhbHVlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByb3RlY3RlZCBhYnN0cmFjdCB2b2lkIG9wZW4oTG9jYWxlIGxvY2FsZSk7CisgICAgcHJvdGVjdGVkIGFic3RyYWN0IHZvaWQgd3JpdGUoU3RyaW5nIHRhZywgU3RyaW5nIHZhbHVlKTsKKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3Qgdm9pZCB3cml0ZShTdHJpbmcgdGFnLCBTdHJpbmdbXSB2YWx1ZSk7CisgICAgcHJvdGVjdGVkIGFic3RyYWN0IHZvaWQgd3JpdGUyRChTdHJpbmcgdGFnLCBTdHJpbmdbXVtdIHZhbHVlKTsKKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3Qgdm9pZCB3cml0ZVRhZ2dlZChTdHJpbmcgdGFnLCBTdHJpbmdbXVtdIHZhbHVlKTsKKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3Qgdm9pZCBjbG9zZSgpOworICAgIHByb3RlY3RlZCBhYnN0cmFjdCBTdHJpbmcgZ2V0U3RyaW5nSm9pbmluZ0NoYXJhY3RlcigpOworCisgICAgcHJvdGVjdGVkIHZvaWQgdGFiVG8oaW50IHBvcykgeworICAgICAgICBpZiAocG9zID4gbGluZUxlbmd0aCkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IGxpbmVMZW5ndGg7IGkgPCBwb3M7IGkrKykgeworICAgICAgICAgICAgICAgIHByaW50KCIgIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGVUb0ZpbGUoU3RyaW5nIHN0cil7CisgICAgICAgIFJlcGxhY2VhYmxlU3RyaW5nIHRlbXBTdHIgPSBuZXcgUmVwbGFjZWFibGVTdHJpbmcoKTsKKyAgICAgICAgdGVtcFN0ci5yZXBsYWNlKDAsdGVtcFN0ci5sZW5ndGgoKSxzdHIpOworICAgICAgICAKKyAgICAgICAgLy9odVRyYW5zbGl0LnRyYW5zbGl0ZXJhdGUodGVtcFN0cik7CisgICAgICAgIC8vdWhUcmFuc2xpdC50cmFuc2xpdGVyYXRlKHRlbXBTdHIpOworICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgIG91dEJ1ZldyaXRlLndyaXRlKHRlbXBTdHIudG9TdHJpbmcoKSk7CisgICAgICAgICB9CisgICAgICAgICBjYXRjaChqYXZhLmlvLklPRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJDb3VsZCBub3Qgd3JpdGUgdG8gZmlsZSIpOworICAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCBwcmludChTdHJpbmcgdmFsKSB7CisgICAgICAgIGlmIChuZWVkc0luZGVudCkgeworICAgICAgICAgICAgb3V0LnByaW50KGluZGVudFN0cmluZyk7CisgICAgICAgICAgICB3cml0ZVRvRmlsZShpbmRlbnRTdHJpbmcpOworICAgICAgICAgICAgbGluZUxlbmd0aCArPSBpbmRlbnRTdHJpbmcubGVuZ3RoKCk7CisgICAgICAgICAgICBuZWVkc0luZGVudCA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIFJlcGxhY2VhYmxlU3RyaW5nIHRlbXBTdHIgPSBuZXcgUmVwbGFjZWFibGVTdHJpbmcoKTsKKyAgICAgICAgdGVtcFN0ci5yZXBsYWNlKDAsdGVtcFN0ci5sZW5ndGgoKSx2YWwpOyAgICAgIAorICAgICAgICBodVRyYW5zbGl0LnRyYW5zbGl0ZXJhdGUodGVtcFN0cik7CisgICAgICAgIFN0cmluZyB0dmFsID0gdGVtcFN0ci50b1N0cmluZygpOworICAgICAgICBpZih0dmFsLmxlbmd0aCgpPCB2YWwubGVuZ3RoKCkpeworICAgICAgICAgICAvLyB1aFRyYW5zbGl0LnRyYW5zbGl0ZXJhdGUodGVtcFN0cik7CisgICAgICAgICAgICB0dmFsPXByZXBlbmRFc2ModGVtcFN0ci50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAodHZhbCAhPSBudWxsKSB7CisgICAgICAgICAgICBvdXQucHJpbnQodHZhbCk7CisgICAgICAgICAgICB3cml0ZVRvRmlsZSh0dmFsKTsKKyAgICAgICAgICAgIGludCBsZW4gPSAwOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBFT0xfQ0hBUlMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBsZW4gPSBNYXRoLm1heChsZW4sIHR2YWwubGFzdEluZGV4T2YoRU9MX0NIQVJTW2ldKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobGVuID09IDApIHsKKyAgICAgICAgICAgICAgICBsaW5lTGVuZ3RoICs9IHR2YWwubGVuZ3RoKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxpbmVMZW5ndGggPSB0dmFsLmxlbmd0aCgpIC0gbGVuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHByb3RlY3RlZCBTdHJpbmcgcHJlcGVuZEVzYyhTdHJpbmcgc3RyKXsKKyAgICAgICAgU3RyaW5nQnVmZmVyIG15U3RyID0gIG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yKGludCBpPTA7aTxzdHIubGVuZ3RoKCk7aSsrKXsKKyAgICAgICAgICAgIGNoYXIgY2ggPSBzdHIuY2hhckF0KGkpOworICAgICAgICAgICAgaWYoY2ggPiAweDAwN2YpeworICAgICAgICAgICAgICAgIG15U3RyLmFwcGVuZCgiXFx1Iik7CisgICAgICAgICAgICAgICAgbXlTdHIuYXBwZW5kKHRvSGV4U3RyaW5nKGNoLDE2LDQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2V7CisgICAgICAgICAgICAgICAgbXlTdHIuYXBwZW5kKGNoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbXlTdHIudG9TdHJpbmcoKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIFN0cmluZyB0b0hleFN0cmluZyhjaGFyIGNoLCBpbnQgcmFkaXgsIGludCBwYWQpeworICAgICAgICBmaW5hbCBpbnQgTUFYX0RJR0lUUyA9IDEwOworICAgICAgICBpbnQgbGVuZ3RoID0gMDsKKyAgICAgICAgY2hhciBidWZmZXJbXSA9IG5ldyBjaGFyWzEwXTsKKyAgICAgICAgaW50IG51bSA9IDA7CisgICAgICAgIGludCBkaWdpdDsKKyAgICAgICAgaW50IGo7CisgICAgICAgIGNoYXIgdGVtcDsKKyAgICAgICAgaW50IGkgPSAoaW50KWNoOworICAgICAgICBkb3sKKyAgICAgICAgICAgIGRpZ2l0ID0gKGludCkoaSAlIHJhZGl4KTsKKyAgICAgICAgICAgIGJ1ZmZlcltsZW5ndGgrK109KGNoYXIpKGRpZ2l0PD05PygweDAwMzArZGlnaXQpOigweDAwMzArZGlnaXQrNykpOworICAgICAgICAgICAgaT0oaS9yYWRpeCk7CisgICAgICAgIH13aGlsZShpPjApOworCisgICAgICAgIHdoaWxlIChsZW5ndGggPCBwYWQpeyAgIAorICAgICAgICAgICAgYnVmZmVyW2xlbmd0aCsrXSA9ICAweDAwMzA7Lyp6ZXJvIHBhZGRpbmcgKi8KKyAgICAgICAgfQorICAgICAgICAvKiBudWxsIHRlcm1pbmF0ZSB0aGUgYnVmZmVyICovCisgICAgICAgIGlmKGxlbmd0aDxNQVhfRElHSVRTKXsKKyAgICAgICAgICAgIGJ1ZmZlcltsZW5ndGhdID0gIDB4MDAwMDsKKyAgICAgICAgfQorICAgICAgICBudW09IChwYWQ+PWxlbmd0aCkgPyBwYWQgOmxlbmd0aDsKKyAgICAgICAgICAgICAgCisgICAgICAgIC8qIFJldmVyc2VzIHRoZSBzdHJpbmcgKi8KKyAgICAgICAgZm9yIChqID0gMDsgaiA8IChudW0gLyAyKTsgaisrKXsKKyAgICAgICAgICAgIHRlbXAgPSBidWZmZXJbKGxlbmd0aC0xKSAtIGpdOworICAgICAgICAgICAgYnVmZmVyWyhsZW5ndGgtMSkgLSBqXSA9IGJ1ZmZlcltqXTsKKyAgICAgICAgICAgIGJ1ZmZlcltqXSA9IHRlbXA7CisgICAgICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGJ1ZmZlciwwLGxlbmd0aCk7CisgICAgfQorICAgICAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCBwcmludGxuKFN0cmluZyB2YWwpIHsKKyAgICAgICAgcHJpbnQodmFsKTsKKyAgICAgICAgb3V0LnByaW50bG4oKTsKKyAgICAgICAgd3JpdGVUb0ZpbGUoIlxuIik7CisgICAgICAgIGxpbmVMZW5ndGggPSAwOworICAgICAgICBuZWVkc0luZGVudCA9IHRydWU7CisgICAgfQorCisgICAgcHJvdGVjdGVkIHZvaWQgcHJpbnRTdHJpbmcoU3RyaW5nIHZhbCkgeworICAgICAgICBpZiAodmFsICE9IG51bGwpIHsKKyAgICAgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgbGluZUJ1ZmZlci5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICBsaW5lQnVmZmVyLmFwcGVuZCgiXCIiKTsKKyAgICAgICAgICAgIGZpbmFsIGludCBzaXplID0gdmFsLmxlbmd0aCgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKKyAgICAgICAgICAgICAgICBhcHBlbmQodmFsLmNoYXJBdChpKSk7CisgICAgICAgICAgICAgICAgLyppZiAoIWFwcGVuZCh2YWwuY2hhckF0KGkpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGluZUJ1ZmZlci5hcHBlbmQoIlwiIik7CisgICAgICAgICAgICAgICAgICAgICAgICBsaW5lQnVmZmVyLmFwcGVuZChnZXRTdHJpbmdKb2luaW5nQ2hhcmFjdGVyKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRsbihsaW5lQnVmZmVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgbGluZUJ1ZmZlci5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgICAgICAgICBsaW5lQnVmZmVyLmFwcGVuZCgiXCIiKTsKKyAgICAgICAgICAgICAgICB9Ki8KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbGluZUJ1ZmZlci5hcHBlbmQoIlwiIik7CisgICAgICAgICAgICBwcmludChsaW5lQnVmZmVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgb3V0ZGVudCgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcHJpbnQoIlwiXCIiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gYXBwZW5kKGZpbmFsIGNoYXIgYykgeworICAgICAgICBib29sZWFuIGVzY2FwZSA9IGlzRXNjYXBlQ2hhcihjKTsKKyAgICAgICAgaWYgKGVzY2FwZSkgeworICAgICAgICAgICAgYXBwZW5kRXNjYXBlZENoYXIoYywgbGluZUJ1ZmZlcik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsaW5lQnVmZmVyLmFwcGVuZChjKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKGxpbmVMZW5ndGggKyBsaW5lQnVmZmVyLmxlbmd0aCgpIDwgTUFYX0xJTkVfTEVOR1RIKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gaXNFc2NhcGVDaGFyKGZpbmFsIGNoYXIgYykgeworICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgY2FzZSAnIic6CisgICAgICAgIGNhc2UgJ1xcJzoKKyAgICAgICAgY2FzZSAnXG4nOgorICAgICAgICBjYXNlICdccic6CisgICAgICAgIGNhc2UgJ1x1MjAyOCc6CisgICAgICAgIGNhc2UgJ1x1MjAyOSc6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiAoYyA8ICcgJykgfHwgKGMgPiAweDA3Rik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgYXBwZW5kRXNjYXBlZENoYXIoY2hhciBjLCBTdHJpbmdCdWZmZXIgYnVmZmVyKSB7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoZ2V0RXNjYXBlQ2hhcigpKTsKKyAgICAgICAgaW50IHZhbHVlID0gKChpbnQpYykgJiAweEZGRkY7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoSEVYX0RJR0lUWyh2YWx1ZSAmIDB4RjAwMCkgPj4gMTJdKTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZChIRVhfRElHSVRbKHZhbHVlICYgMHgwRjAwKSA+PiA4XSk7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoSEVYX0RJR0lUWyh2YWx1ZSAmIDB4MDBGMCkgPj4gNF0pOworICAgICAgICBidWZmZXIuYXBwZW5kKEhFWF9ESUdJVFsodmFsdWUgJiAweDAwMEYpXSk7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0RXNjYXBlQ2hhcigpIHsKKyAgICAgICAgcmV0dXJuICJcXHUiOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgZmluYWwgdm9pZCBpbmRlbnQoKSB7CisgICAgICAgIGluZGVudCgxKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgaW5kZW50KGludCBhbW91bnQpIHsKKyAgICAgICAgaW5kZW50TGV2ZWwgKz0gYW1vdW50OworICAgICAgICBpbmRlbnRTdHJpbmcgPSBJTkRFTlRfQ0hBUlMuc3Vic3RyaW5nKDAsIGluZGVudExldmVsKklOREVOVF9TSVpFKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIGZpbmFsIHZvaWQgb3V0ZGVudCgpIHsKKyAgICAgICAgb3V0ZGVudCgxKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgb3V0ZGVudChpbnQgYW1vdW50KSB7CisgICAgICAgIGluZGVudExldmVsIC09IGFtb3VudDsKKyAgICAgICAgaW5kZW50U3RyaW5nID0gSU5ERU5UX0NIQVJTLnN1YnN0cmluZygwLCBpbmRlbnRMZXZlbCpJTkRFTlRfU0laRSk7CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIGNoYXJbXSBIRVhfRElHSVQgPSB7JzAnLCcxJywnMicsJzMnLCc0JywnNScsJzYnLCc3JywKKyAgICAgICAgICAgICAgICAgICAgICc4JywnOScsJ0EnLCdCJywnQycsJ0QnLCdFJywnRid9OworCisgICAgLyoqIFJldHVybiB0cnVlIGlmIHRoZSB2YWx1ZSBmb3IgdGhlIHNwZWNpZmllZCB0YWcgaXMgdGhlIHNhbWUKKyAgICAgKiBhcyB0aGUgdmFsdWUgaW5oZXJpdGVkIGZyb20gdGhlIHBhcmVudCBmb3IgdGhhdCB0YWcgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gaXNEdXBsaWNhdGVPZkluaGVyaXRlZFZhbHVlKGZpbmFsIExvY2FsZSBsb2MsIFN0cmluZyB0YWcsIE9iamVjdCB2YWx1ZSkgeworICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkgcmV0dXJuIHRydWU7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmaW5hbCBSZXNvdXJjZUJ1bmRsZSBwYXJlbnRCdW5kbGUgPSBnZXRQYXJlbnRCdW5kbGUobG9jKTsKKyAgICAgICAgICAgIGlmIChwYXJlbnRCdW5kbGUgPT0gbnVsbCkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgT2JqZWN0IHBhcmVudFZhbHVlID0gcGFyZW50QnVuZGxlLmdldE9iamVjdCh0YWcpOworICAgICAgICAgICAgaWYgKCFvYmplY3RzQXJlRXF1YWwodmFsdWUsIHBhcmVudFZhbHVlKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgYm9vbGVhbiBvYmplY3RzQXJlRXF1YWwoZmluYWwgT2JqZWN0IGl0ZW0sIGZpbmFsIE9iamVjdCBwYXJlbnRJdGVtKSB7CisgICAgICAgIGlmIChpdGVtIGluc3RhbmNlb2YgT2JqZWN0W10gJiYgcGFyZW50SXRlbSBpbnN0YW5jZW9mIE9iamVjdFtdKSB7CisgICAgICAgICAgICByZXR1cm4gYXJyYXlzQXJlRXF1YWwoKE9iamVjdFtdKWl0ZW0sIChPYmplY3RbXSlwYXJlbnRJdGVtKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBpdGVtLmVxdWFscyhwYXJlbnRJdGVtKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGJvb2xlYW4gYXJyYXlzQXJlRXF1YWwoZmluYWwgT2JqZWN0W10gaXRlbSwgZmluYWwgT2JqZWN0W10gcGFyZW50SXRlbSkgeworICAgICAgICBib29sZWFuIG1hdGNoZXMgPSBpdGVtLmxlbmd0aCA9PSBwYXJlbnRJdGVtLmxlbmd0aDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpdGVtLmxlbmd0aCAmJiBtYXRjaGVzOyBpKyspIHsKKyAgICAgICAgICAgIG1hdGNoZXMgPSBvYmplY3RzQXJlRXF1YWwoaXRlbVtpXSwgcGFyZW50SXRlbVtpXSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1hdGNoZXM7CisgICAgfQorICAgICAgICAKKyAgICBwcml2YXRlIFJlc291cmNlQnVuZGxlIGdldFBhcmVudEJ1bmRsZShmaW5hbCBMb2NhbGUgbG9jKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmaW5hbCBTdHJpbmcgeCA9IGxvYy50b1N0cmluZygpOworICAgICAgICAgICAgZmluYWwgaW50IG5keCA9IHgubGFzdEluZGV4T2YoJ18nKTsKKyAgICAgICAgICAgIGlmIChuZHggPCAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGZpbmFsIFN0cmluZyBwYXJlbnRMb2NOYW1lID0geC5zdWJzdHJpbmcoMCwgbmR4KTsKKyAgICAgICAgICAgICAgICBmaW5hbCBMb2NhbGUgcGFyZW50TG9jID0gbG9jYWxlRnJvbVN0cmluZyhwYXJlbnRMb2NOYW1lKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlKCJjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXIubXlMb2NhbGVFbGVtZW50cyIsIHBhcmVudExvYyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyByZXBsYWNlKFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQsIFN0cmluZyByZXBsYWNlbWVudCkgeworICAgICAgICBpZiAodGFyZ2V0LmVxdWFscyhyZXBsYWNlbWVudCkpIHsKKyAgICAgICAgICAgIHJldHVybiBzb3VyY2U7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgaW50IGxhc3ROZHggPSAwOworICAgICAgICAgICAgaW50IG5keCA9IHNvdXJjZS5pbmRleE9mKHRhcmdldCk7CisgICAgICAgICAgICB3aGlsZSAobmR4ID49IDApIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHNvdXJjZS5zdWJzdHJpbmcobGFzdE5keCwgbmR4KSk7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChyZXBsYWNlbWVudCk7CisgICAgICAgICAgICAgICAgbmR4ICs9IHRhcmdldC5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICBsYXN0TmR4ID0gbmR4OworICAgICAgICAgICAgICAgIG5keCA9IHNvdXJjZS5pbmRleE9mKHRhcmdldCwgbmR4KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc291cmNlLnN1YnN0cmluZyhsYXN0TmR4KSk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgTG9jYWxlIGxvY2FsZUZyb21TdHJpbmcoZmluYWwgU3RyaW5nIGxvY2FsZU5hbWUpIHsKKyAgICAgICAgU3RyaW5nIGxhbmd1YWdlID0gbG9jYWxlTmFtZTsKKyAgICAgICAgU3RyaW5nIGNvdW50cnkgPSAiIjsKKyAgICAgICAgU3RyaW5nIHZhcmlhbnQgPSAiIjsKKyAgICAgICAgCisgICAgICAgIGludCBuZHggPSBsYW5ndWFnZS5pbmRleE9mKCdfJyk7CisgICAgICAgIGlmIChuZHggPj0gMCkgeworICAgICAgICAgICAgY291bnRyeSA9IGxhbmd1YWdlLnN1YnN0cmluZyhuZHgrMSk7CisgICAgICAgICAgICBsYW5ndWFnZSA9IGxhbmd1YWdlLnN1YnN0cmluZygwLCBuZHgpOworICAgICAgICB9CisgICAgICAgIG5keCA9IGNvdW50cnkuaW5kZXhPZignXycpOworICAgICAgICBpZiAobmR4ID49IDApIHsKKyAgICAgICAgICAgIHZhcmlhbnQgPSBjb3VudHJ5LnN1YnN0cmluZyhuZHgpOworICAgICAgICAgICAgY291bnRyeSA9IGNvdW50cnkuc3Vic3RyaW5nKDAsIG5keCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBMb2NhbGUobGFuZ3VhZ2UsIGNvdW50cnksIHZhcmlhbnQpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvTmV1dHJhbFRvSjFDb252ZXJ0ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvTmV1dHJhbFRvSjFDb252ZXJ0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44MTc1M2VmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9OZXV0cmFsVG9KMUNvbnZlcnRlci5qYXZhCkBAIC0wLDAgKzEsMjA5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL05ldXRyYWxUb0oxQ29udmVydGVyLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDU6MzAgJCAKKyAqICRSZXZpc2lvbjogMS4zICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS51dGlsLio7CisKK3B1YmxpYyBjbGFzcyBOZXV0cmFsVG9KMUNvbnZlcnRlciBleHRlbmRzIExvY2FsZUNvbnZlcnRlciB7CisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgQ29udmVyc2lvbiB7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIHByb3BOYW1lOworICAgICAgICBwcml2YXRlIGludCBuZHg7CisgICAgICAgIHByb3RlY3RlZCBDb252ZXJzaW9uKCkgeworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBDb252ZXJzaW9uKFN0cmluZyBwcm9wTmFtZSkgeworICAgICAgICAgICAgdGhpcy5wcm9wTmFtZSA9IHByb3BOYW1lOworICAgICAgICAgICAgdGhpcy5uZHggPSAtMTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgQ29udmVyc2lvbihTdHJpbmcgcHJvcE5hbWUsIGludCBuZHgpIHsKKyAgICAgICAgICAgIHRoaXMucHJvcE5hbWUgPSBwcm9wTmFtZTsKKyAgICAgICAgICAgIHRoaXMubmR4ID0gbmR4OworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0UHJvcE5hbWUoKSB7CisgICAgICAgICAgICByZXR1cm4gcHJvcE5hbWU7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFN0cmluZyBjb252ZXJ0KEhhc2h0YWJsZSBzb3VyY2UpIHRocm93cyBDb252ZXJzaW9uRXJyb3IgeworICAgICAgICAgICAgT2JqZWN0IHNvdXJjZURhdGEgPSBzb3VyY2UuZ2V0KHByb3BOYW1lKTsKKyAgICAgICAgICAgIGlmIChzb3VyY2VEYXRhID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChuZHggPj0gMCkgeworICAgICAgICAgICAgICAgIGlmIChzb3VyY2VEYXRhIGluc3RhbmNlb2YgU3RyaW5nW10pIHsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlRGF0YSA9ICgoU3RyaW5nW10pc291cmNlRGF0YSlbbmR4XTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNvdXJjZURhdGEgaW5zdGFuY2VvZiBTdHJpbmdbXVtdKSB7CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZURhdGEgPSAoKFN0cmluZ1tdW10pc291cmNlRGF0YSlbbmR4XTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc291cmNlRGF0YSBpbnN0YW5jZW9mIFN0cmluZykgeworICAgICAgICAgICAgICAgIHJldHVybiAoU3RyaW5nKXNvdXJjZURhdGE7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHNvdXJjZURhdGEgaW5zdGFuY2VvZiBTdHJpbmdbXSkgeworICAgICAgICAgICAgICAgIFN0cmluZ1tdIGRhdGEgPSAoU3RyaW5nW10pc291cmNlRGF0YTsKKyAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBpZiAoaSA+IDApIHJlc3VsdC5hcHBlbmQoJzsnKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChkYXRhW2ldKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQ29udmVyc2lvbkVycm9yKCJjb3VsZCBub3QgY29udmVydCB0YWc6ICIrcHJvcE5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgQ29sbGF0aW9uQ29udmVyc2lvbiBleHRlbmRzIENvbnZlcnNpb24geworICAgICAgICBwdWJsaWMgU3RyaW5nIGNvbnZlcnQoSGFzaHRhYmxlIHNvdXJjZSkgdGhyb3dzIENvbnZlcnNpb25FcnJvciB7CisgICAgICAgICAgICBPYmplY3RbXVtdIGVsZW1lbnRzID0gKE9iamVjdFtdW10pc291cmNlLmdldCgiQ29sbGF0aW9uRWxlbWVudHMiKTsKKyAgICAgICAgICAgIENvbGxhdGlvbkl0ZW1bXSBpdGVtcyA9IChDb2xsYXRpb25JdGVtW10pZWxlbWVudHNbMl1bMV07CisgICAgICAgICAgICBpZiAoaXRlbXMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiAiIjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmKGl0ZW1zW2ldIT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoaXRlbXNbaV0udG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgQ29udmVyc2lvbltdIGNvbnZlcnNpb25zID0geworICAgICAgICBuZXcgQ29udmVyc2lvbigiTG9jYWxlU3RyaW5nIiksIC8qbG9jYWxlIGlkIGJhc2VkIG9uIGlzbyBjb2RlcyovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJMb2NhbGVJRCIpLCAvKldpbmRvd3MgaWQqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiU2hvcnRMYW5ndWFnZSIpLCAvKmlzby0zIGFiYnJldiBsYW5nIG5hbWUqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiU2hvcnRDb3VudHJ5IiksIC8qaXNvLTMgYWJicmV2IGNvdW50cnkgbmFtZSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJMYW5ndWFnZXMiKSwgLypsYW5ndWFnZSBuYW1lcyovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJDb3VudHJpZXMiKSwgLypjb3VudHJ5IG5hbWVzKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoTmFtZXMiLDApLCAvKmphbnVhcnkqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTW9udGhOYW1lcyIsMSksIC8qZmVicnVhcnkqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTW9udGhOYW1lcyIsMiksIC8qbWFyY2gqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTW9udGhOYW1lcyIsMyksIC8qYXByaWwqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTW9udGhOYW1lcyIsNCksIC8qbWF5Ki8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoTmFtZXMiLDUpLCAvKmp1bmUqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTW9udGhOYW1lcyIsNiksIC8qanVseSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJNb250aE5hbWVzIiw3KSwgLyphdWd1c3QqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTW9udGhOYW1lcyIsOCksIC8qc2VwdGVtYmVyKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoTmFtZXMiLDkpLCAvKm9jdG9iZXIqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTW9udGhOYW1lcyIsMTApLCAvKm5vdmVtYmVyKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoTmFtZXMiLDExKSwgLypkZWNlbWJlciovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJNb250aE5hbWVzIiwxMiksIC8qbW9udGggMTMgaWYgYXBwbGljYWJsZSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJNb250aEFiYnJldmlhdGlvbnMiLDApLCAvKmFiYiBqYW51YXJ5Ki8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoQWJicmV2aWF0aW9ucyIsMSksIC8qYWJiIGZlYnJ1YXJ5Ki8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoQWJicmV2aWF0aW9ucyIsMiksIC8qYWJiIG1hcmNoKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoQWJicmV2aWF0aW9ucyIsMyksIC8qYWJiIGFwcmlsKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoQWJicmV2aWF0aW9ucyIsNCksIC8qYWJiIG1heSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJNb250aEFiYnJldmlhdGlvbnMiLDUpLCAvKmFiYiBqdW5lKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoQWJicmV2aWF0aW9ucyIsNiksIC8qYWJiIGp1bHkqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTW9udGhBYmJyZXZpYXRpb25zIiw3KSwgLyphYmIgYXVndXN0Ki8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoQWJicmV2aWF0aW9ucyIsOCksIC8qYWJiIHNlcHRlbWJlciovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJNb250aEFiYnJldmlhdGlvbnMiLDkpLCAvKmFiYiBvY3RvYmVyKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoQWJicmV2aWF0aW9ucyIsMTApLCAvKmFiYiBub3ZlbWJlciovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJNb250aEFiYnJldmlhdGlvbnMiLDExKSwgLyphYmIgZGVjZW1iZXIqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTW9udGhBYmJyZXZpYXRpb25zIiwxMiksIC8qYWJiIG1vbnRoIDEzIGlmIGFwcGxpY2FibGUqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiRGF5TmFtZXMiLDApLCAvKk1vbmRheSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJEYXlOYW1lcyIsMSksIC8qVHVlc2RheSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJEYXlOYW1lcyIsMiksIC8qV2VkbmVzZGF5Ki8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRheU5hbWVzIiwzKSwgLypUaHVyc2RheSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJEYXlOYW1lcyIsNCksIC8qRnJpZGF5Ki8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRheU5hbWVzIiw1KSwgLypTYXR1cmRheSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJEYXlOYW1lcyIsNiksIC8qU3VuZGF5Ki8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRheUFiYnJldmlhdGlvbnMiLDApLCAvKmFiYiBNb25kYXkqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiRGF5QWJicmV2aWF0aW9ucyIsMSksIC8qYWJiIFR1ZXNkYXkqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiRGF5QWJicmV2aWF0aW9ucyIsMiksIC8qYWJiIFdlZG5lc2RheSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJEYXlBYmJyZXZpYXRpb25zIiwzKSwgLyphYmIgVGh1cnNkYXkqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiRGF5QWJicmV2aWF0aW9ucyIsNCksIC8qYWJiIEZyaWRheSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJEYXlBYmJyZXZpYXRpb25zIiw1KSwgLyphYmIgU2F0dXJkYXkqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiRGF5QWJicmV2aWF0aW9ucyIsNiksIC8qYWJiIFN1bmRheSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJBbVBtTWFya2VycyIsMCksIC8qYW0gbWFya2VyKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkFtUG1NYXJrZXJzIiwxKSwgLypwbSBtYXJrZXIqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiRXJhcyIpLC8qZXJhIHN0cmluZ3MqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTnVtYmVyUGF0dGVybnMiLDApLCAvKmRlY2ltYWwgcGF0dGVybiovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJOdW1iZXJQYXR0ZXJucyIsMSksIC8qY3VycmVuY3kgcGF0dGVybiovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJOdW1iZXJQYXR0ZXJucyIsMiksIC8qcGVyY2VudCBwYXR0ZXJuKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk51bWJlckVsZW1lbnRzIiwwKSwgLypkZWNpbWFsIHNlcGFyYXRvciovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJOdW1iZXJFbGVtZW50cyIsMSksIC8qZ3JvdXAgKHRob3VzYW5kcykgc2VwYXJhdG9yKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk51bWJlckVsZW1lbnRzIiwyKSwgLypsaXN0IHNlcGFyYXRvciovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJOdW1iZXJFbGVtZW50cyIsMyksIC8qcGVyY2VudCBzaWduKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk51bWJlckVsZW1lbnRzIiw0KSwgLypuYXRpdmUgMCBkaWdpdCovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJOdW1iZXJFbGVtZW50cyIsNSksIC8qcGF0dGVybiBkaWdpdCovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJOdW1iZXJFbGVtZW50cyIsNiksIC8qbWludXMgc2lnbiovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJOdW1iZXJFbGVtZW50cyIsNyksIC8qZXhwb25lbnRpYWwqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiQ3VycmVuY3lFbGVtZW50cyIsMCksIC8qbG9jYWwgY3VycmVuY3kgc3ltYm9sKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkN1cnJlbmN5RWxlbWVudHMiLDEpLCAvKmludGwgY3VycmVuY3kgc3ltYm9sKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkN1cnJlbmN5RWxlbWVudHMiLDIpLCAvKm1vbmV0YXJ5IGRlY2ltYWwgc2VwYXJhdG9yKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRhdGVUaW1lUGF0dGVybnMiLDApLCAvKmZ1bGwgdGltZSBwYXR0ZXJuKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRhdGVUaW1lUGF0dGVybnMiLDEpLCAvKmxvbmcgdGltZSBwYXR0ZXJuKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRhdGVUaW1lUGF0dGVybnMiLDIpLCAvKm1lZGl1bSB0aW1lIHBhdHRlcm4qLworICAgICAgICBuZXcgQ29udmVyc2lvbigiRGF0ZVRpbWVQYXR0ZXJucyIsMyksIC8qc2hvcnQgdGltZSBwYXR0ZXJuKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRhdGVUaW1lUGF0dGVybnMiLDQpLCAvKmZ1bGwgZGF0ZSBwYXR0ZXJuKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRhdGVUaW1lUGF0dGVybnMiLDUpLCAvKmxvbmcgZGF0ZSBwYXR0ZXJuKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRhdGVUaW1lUGF0dGVybnMiLDYpLCAvKm1lZGl1bSBkYXRlIHBhdHRlcm4qLworICAgICAgICBuZXcgQ29udmVyc2lvbigiRGF0ZVRpbWVQYXR0ZXJucyIsNyksIC8qc2hvcnQgZGF0ZSBwYXR0ZXJuKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRhdGVUaW1lUGF0dGVybnMiLDgpLCAvKmRhdGUtdGltZSBwYXR0ZXJuKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRhdGVUaW1lRWxlbWVudHMiLDkpLCAvKmZpcnN0IGRheSBvZiB3ZWVrKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRhdGVUaW1lRWxlbWVudHMiLDEwKSwgLyptaW4gZGF5cyBpbiBmaXJzdCB3ZWVrKi8KKyAgICAgICAgbmV3IENvbGxhdGlvbkNvbnZlcnNpb24oKSwgLypjb2xsYXRpb24gb3JkZXIqLworICAgIH07CisgICAgcHJpdmF0ZSBMb2NhbGUgbG9jYWxlOworICAgIHByaXZhdGUgTG9jYWxlIHBhcmVudExvY2FsZTsKKyAgICBwcml2YXRlIFJlc291cmNlQnVuZGxlIGRlZmF1bHREYXRhOworCisgICAgcHVibGljIE5ldXRyYWxUb0oxQ29udmVydGVyKExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgdGhpcy5sb2NhbGUgPSBsb2NhbGU7CisgICAgICAgIFN0cmluZyBsYW5ndWFnZSA9IGxvY2FsZS50b1N0cmluZygpOworICAgICAgICBTdHJpbmcgY291bnRyeSA9ICIiOworICAgICAgICBTdHJpbmcgdmFyaWFudCA9ICIiOworICAgICAgICAKKyAgICAgICAgaW50IG5keCA9IGxhbmd1YWdlLmluZGV4T2YoJ18nKTsKKyAgICAgICAgaWYgKG5keCA+PSAwKSB7CisgICAgICAgICAgICBjb3VudHJ5ID0gbGFuZ3VhZ2Uuc3Vic3RyaW5nKG5keCsxKTsKKyAgICAgICAgICAgIGxhbmd1YWdlID0gbGFuZ3VhZ2Uuc3Vic3RyaW5nKDAsIG5keCk7CisgICAgICAgIH0KKyAgICAgICAgbmR4ID0gY291bnRyeS5pbmRleE9mKCdfJyk7CisgICAgICAgIGlmIChuZHggPj0gMCkgeworICAgICAgICAgICAgdmFyaWFudCA9IGNvdW50cnkuc3Vic3RyaW5nKG5keCk7CisgICAgICAgICAgICBjb3VudHJ5ID0gY291bnRyeS5zdWJzdHJpbmcoMCwgbmR4KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKCIiLmVxdWFscyhjb3VudHJ5KSkgeworICAgICAgICAgICAgbGFuZ3VhZ2UgPSAiIjsKKyAgICAgICAgICAgIHZhcmlhbnQgPSAiIjsKKyAgICAgICAgfSBlbHNlIGlmICgiIi5lcXVhbHModmFyaWFudCkpIHsKKyAgICAgICAgICAgIGNvdW50cnkgPSAiIjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcGFyZW50TG9jYWxlID0gbmV3IExvY2FsZShsYW5ndWFnZSwgY291bnRyeSwgdmFyaWFudCk7CisgICAgICAgIGRlZmF1bHREYXRhID0KKyAgICAgICAgICAgIFJlc291cmNlQnVuZGxlLmdldEJ1bmRsZSgiY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyLm15TG9jYWxlRWxlbWVudHMiLCBwYXJlbnRMb2NhbGUpOworICAgICAgICAgICAgLy97e0lOSVRfQ09OVFJPTFMKKwkJLy99fQorfQorICAgIAorICAgIC8qKiBjb252ZXJ0IHRoZSBzb3VyY2UgdGFibGUgdG8gdGhlIHJlc3VsdCAqLworICAgIHByb3RlY3RlZCB2b2lkIGNvbnZlcnQoSGFzaHRhYmxlIHJlc3VsdCwgSGFzaHRhYmxlIHNvdXJjZSkgdGhyb3dzIENvbnZlcnNpb25FcnJvciB7CisgICAgICAgIFZlY3RvciBsb2NhbGVFbGVtZW50cyA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb252ZXJzaW9ucy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgZmluYWwgQ29udmVyc2lvbiBjb252ID0gY29udmVyc2lvbnNbaV07CisgICAgICAgICAgICBmaW5hbCBTdHJpbmcgbmV3VmFsdWUgPSBjb252LmNvbnZlcnQoc291cmNlKTsKKyAgICAgICAgICAgIGlmIChuZXdWYWx1ZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgbG9jYWxlRWxlbWVudHMuYWRkRWxlbWVudChuZXdWYWx1ZSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvY2FsZUVsZW1lbnRzLmFkZEVsZW1lbnQoZGVmYXVsdERhdGEuZ2V0T2JqZWN0KGNvbnYuZ2V0UHJvcE5hbWUoKSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJlc3VsdC5wdXQoIkxvY2FsZUVsZW1lbnRzIiwgbG9jYWxlRWxlbWVudHMpOworICAgIH0KKyAgICAvL3t7REVDTEFSRV9DT05UUk9MUworCS8vfX0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1BPU0lYTG9jYWxlUmVhZGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1BPU0lYTG9jYWxlUmVhZGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjZkZTFiOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvUE9TSVhMb2NhbGVSZWFkZXIuamF2YQpAQCAtMCwwICsxLDQwNyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9QT1NJWExvY2FsZVJlYWRlci5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzA4LzAxIDAwOjA4OjU3ICQgCisgKiAkUmV2aXNpb246IDEuMyAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC4qOworCitwdWJsaWMgY2xhc3MgUE9TSVhMb2NhbGVSZWFkZXIgeworICAgIHByaXZhdGUgZmluYWwgU3RyaW5nIGxvY2FsZURhdGFQYXRoOworICAgIHByaXZhdGUgZmluYWwgTG9jYWxlIGxvY2FsZTsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRBR19UT0tFTiA9IDE7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0VQQVJBVE9SX1RPS0VOID0gMjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFT0xfVE9LRU4gPSAzOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVPRl9UT0tFTiA9IDQ7CisKKyAgICAgICAgLy90aGVzZSBzdGF0ZXMgYXJlIHVzZWQgdG8gcGFyc2UgdGhlIGJ1bGsgb2YgdGhlCisgICAgICAgIC8vaW5wdXQgZmlsZS4gIFRoZXkgdHJhbnNsYXRlIGVzY2FwZWQgY2hhcmFjdGVycworICAgICAgICAvL2FuZCBzeW1vbGljIGNoYXJhY3RlciByZWZlcmVuY2VzIGlubGluZS4KKyAgICBzdGF0aWMgZmluYWwgTGV4LlRyYW5zaXRpb25bXVtdIGRhdGFTdGF0ZXMgPSB7CisgICAgICAgIHsgLy9zdGF0ZSAwOiBzdGFydAorICAgICAgICAgICAgbmV3IFNwYWNlVHJhbnNpdGlvbigwKSwKKyAgICAgICAgICAgIG5ldyBMZXguQ2hhclRyYW5zaXRpb24oJzsnLCBMZXguSUdOT1JFX0NPTlNVTUUsIFNFUEFSQVRPUl9UT0tFTiksCisgICAgICAgICAgICBuZXcgTGV4LkNoYXJUcmFuc2l0aW9uKCcsJywgTGV4LklHTk9SRV9DT05TVU1FLCBTRVBBUkFUT1JfVE9LRU4pLAorICAgICAgICAgICAgbmV3IEVPTFRyYW5zaXRpb24oRU9MX1RPS0VOKSwKKyAgICAgICAgICAgIG5ldyBUb2tlblRyYW5zaXRpb24oVEFHX1RPS0VOKSwKKyAgICAgICAgICAgIG5ldyBMZXguRU9GVHJhbnNpdGlvbihFT0ZfVE9LRU4pLAorICAgICAgICAgICAgbmV3IExleC5QYXJzZUV4Y2VwdGlvblRyYW5zaXRpb24oInVuZXhwZWN0ZWQgY2hhcmFjdGVycyIpCisgICAgICAgIH0KKyAgICB9OworCisgICAgc3RhdGljIGZpbmFsIExleC5UcmFuc2l0aW9uW11bXSBMQ1N0YXRlcyA9IHsKKyAgICAgICAgeyAvL3N0YXRlIDA6IHN0YXJ0CisgICAgICAgICAgICBuZXcgU3BhY2VUcmFuc2l0aW9uKDApLAorICAgICAgICAgICAgbmV3IEVPTFRyYW5zaXRpb24oRU9MX1RPS0VOKSwKKyAgICAgICAgICAgIG5ldyBMZXguRU9GVHJhbnNpdGlvbihFT0ZfVE9LRU4pLAorICAgICAgICAgICAgbmV3IExleC5EZWZhdWx0VHJhbnNpdGlvbihMZXguQUNDVU1VTEFURV9DT05TVU1FLCAtMSkKKyAgICAgICAgfSwKKyAgICAgICAgeyAgIC8vZ3JhYiBmaXJzdCB3b3JkCisgICAgICAgICAgICBuZXcgTGV4LlN0cmluZ1RyYW5zaXRpb24oU3BhY2VUcmFuc2l0aW9uLlNQQUNFX0NIQVJTLCBMZXguSUdOT1JFX1BVVEJBQ0ssIFRBR19UT0tFTiksCisgICAgICAgICAgICBuZXcgTGV4LlN0cmluZ1RyYW5zaXRpb24oRU9MVHJhbnNpdGlvbi5FT0xfQ0hBUlMsIExleC5JR05PUkVfUFVUQkFDSywgVEFHX1RPS0VOKSwKKyAgICAgICAgICAgIG5ldyBMZXguRU9GVHJhbnNpdGlvbihUQUdfVE9LRU4pLAorICAgICAgICAgICAgbmV3IExleC5EZWZhdWx0VHJhbnNpdGlvbihMZXguQUNDVU1VTEFURV9DT05TVU1FLCAtMSkKKyAgICAgICAgfQorICAgIH07CisKKyAgICBwdWJsaWMgUE9TSVhMb2NhbGVSZWFkZXIoZmluYWwgU3RyaW5nIGxvY2FsZURhdGFQYXRoLCBmaW5hbCBMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHRoaXMubG9jYWxlRGF0YVBhdGggPSBsb2NhbGVEYXRhUGF0aDsKKyAgICAgICAgdGhpcy5sb2NhbGUgPSBsb2NhbGU7CisgICAgICAgICAgICAvL3t7SU5JVF9DT05UUk9MUworCQkvL319Cit9CisgICAgCisgICAgcHVibGljIEhhc2h0YWJsZSBwYXJzZShTdHJpbmcgZmlsZU5hbWUsIGJ5dGUgZmxhZ3MpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBIYXNodGFibGUgdGFibGUgPSBwYXJzZU5hdGl2ZShmaWxlTmFtZSk7CisgICAgICAgICAgICBIYXNodGFibGUgcmVzdWx0ID0gbmV3IFBvc2l4VG9OZXV0cmFsQ29udmVydGVyKGZsYWdzLCBsb2NhbGUsZmlsZU5hbWUpLmNvbnZlcnQodGFibGUpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfSBjYXRjaCAoTG9jYWxlQ29udmVydGVyLkNvbnZlcnNpb25FcnJvciBlKSB7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkludGVybmFsIGVycm9yIGNvbnZlcnRpbmcgbG9jYWxlIGRhdGEiKTsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBIYXNodGFibGUgcGFyc2VOYXRpdmUoU3RyaW5nIGZpbGVOYW1lKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBjaGFyIG9sZEVzY2FwZUNoYXIgPSBFc2NhcGVUcmFuc2l0aW9uLnNldERlZmF1bHRFc2NhcGVDaGFyKCk7CisgICAgICAgIGNoYXIgb2xkQ29tbWVudENoYXIgPSBFT0xUcmFuc2l0aW9uLnNldERlZmF1bHRDb21tZW50Q2hhcigpOworICAgICAgICBIYXNodGFibGUgdGFibGUgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExpbmVDaGFyTnVtYmVyUmVhZGVyIGxpbmVzID0gbmV3IExpbmVDaGFyTnVtYmVyUmVhZGVyKAorICAgICAgICAgICAgICAgIG5ldyBCdWZmZXJlZFJlYWRlcigKKyAgICAgICAgICAgICAgICAgICAgbmV3IEZpbGVSZWFkZXIoCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRmlsZShsb2NhbGVEYXRhUGF0aCwgZmlsZU5hbWUpCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICApOworICAgICAgICAgICAgUHVzaGJhY2tSZWFkZXIgcmVhZGVyID0gbmV3IFB1c2hiYWNrUmVhZGVyKGxpbmVzKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy9TaG92ZSBhIG5ld2xpbmUgYXQgdGhlIHN0YXJ0IG9mIHRoZSBmaWxlLiAgVGhpcyBoYXMgdGhlIGFmZmVjdCBvZiBhbGxvd2luZworICAgICAgICAgICAgLy90aGUgZmlsZSB0byBzdGFydCB3aXRoIGEgY29tbWVudCwgc2luY2UgdGhlIHBhcnNlciBvbmx5IGFsbG93cyBjb21tZW50cyBhcyAKKyAgICAgICAgICAgIC8vcGFydCBvZiBhbiBFT0wKKyAgICAgICAgICAgIHJlYWRlci51bnJlYWQoJ1xuJyk7CisKKyAgICAgICAgICAgIFN0cmluZyBzZWN0aW9uVGFnID0gc2Vla0xDKHJlYWRlcik7CisgICAgICAgICAgICB3aGlsZSAoc2VjdGlvblRhZyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgcGFyc2VTZWN0aW9uKHRhYmxlLCByZWFkZXIsIHNlY3Rpb25UYWcpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKExleC5QYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRVJST1IgcGFyc2luZzogIitlLnJlYXNvbik7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiICAgICAgICAgTGluZTogIitsaW5lcy5nZXRMaW5lTnVtYmVyKCkpOworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIiAgICAgICAgIGNoYXI6ICIrbGluZXMuZ2V0Q2hhck51bWJlcigpKTsKKyAgICAgICAgICAgICAgICAgICAgc2Vla0VORChyZWFkZXIpOworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlNraXBwZWQgdG8gbGluZTogIisobGluZXMuZ2V0TGluZU51bWJlcigpKzEpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc2VjdGlvblRhZyA9IHNlZWtMQyhyZWFkZXIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgRXNjYXBlVHJhbnNpdGlvbi5zZXRFc2NhcGVDaGFyKG9sZEVzY2FwZUNoYXIpOworICAgICAgICAgICAgRU9MVHJhbnNpdGlvbi5zZXRDb21tZW50Q2hhcihvbGRDb21tZW50Q2hhcik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRhYmxlOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcGFyc2VTZWN0aW9uKEhhc2h0YWJsZSB0YWJsZSwgUHVzaGJhY2tSZWFkZXIgcmVhZGVyLCBTdHJpbmcgc2VjdGlvblRhZykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgaWYgKHNlY3Rpb25UYWcuZXF1YWxzKCJMQ19DVFlQRSIpKSB7CisgICAgICAgICAgICBwYXJzZUNUWVBFKHRhYmxlLCByZWFkZXIpOworICAgICAgICB9IGVsc2UgaWYgKHNlY3Rpb25UYWcuZXF1YWxzKCJMQ19DT0xMQVRFIikpIHsKKyAgICAgICAgICAgIHBhcnNlQ09MTEFURSh0YWJsZSwgcmVhZGVyKTsKKyAgICAgICAgfSBlbHNlIGlmIChzZWN0aW9uVGFnLmVxdWFscygiTENfTU9ORVRBUlkiKSkgeworICAgICAgICAgICAgcGFyc2VMQyh0YWJsZSwgcmVhZGVyLCBzZWN0aW9uVGFnKTsKKyAgICAgICAgfSBlbHNlIGlmIChzZWN0aW9uVGFnLmVxdWFscygiTENfTlVNRVJJQyIpKSB7CisgICAgICAgICAgICBwYXJzZUxDKHRhYmxlLCByZWFkZXIsIHNlY3Rpb25UYWcpOworICAgICAgICB9IGVsc2UgaWYgKHNlY3Rpb25UYWcuZXF1YWxzKCJMQ19USU1FIikpIHsKKyAgICAgICAgICAgIHBhcnNlTEModGFibGUsIHJlYWRlciwgc2VjdGlvblRhZyk7CisgICAgICAgIH0gZWxzZSBpZiAoc2VjdGlvblRhZy5lcXVhbHMoIkxDX01FU1NBR0VTIikpIHsKKyAgICAgICAgICAgIHBhcnNlTEModGFibGUsIHJlYWRlciwgc2VjdGlvblRhZyk7CisgICAgICAgIH1lbHNlIGlmKHNlY3Rpb25UYWcuZXF1YWxzKCJMQ19NRUFTVVJFTUVOVCIpKXsKKyAgICAgICAgICAgIHBhcnNlTEModGFibGUsIHJlYWRlciwgc2VjdGlvblRhZyk7CisgICAgICAgIH1lbHNlIGlmKHNlY3Rpb25UYWcuZXF1YWxzKCJMQ19BRERSRVNTIikpeworICAgICAgICAgICAgcGFyc2VMQyh0YWJsZSwgcmVhZGVyLCBzZWN0aW9uVGFnKTsKKyAgICAgICAgfWVsc2UgaWYoc2VjdGlvblRhZy5lcXVhbHMoIkxDX1BBUEVSIikpeworICAgICAgICAgICAgcGFyc2VMQyh0YWJsZSwgcmVhZGVyLCBzZWN0aW9uVGFnKTsKKyAgICAgICAgfWVsc2UgaWYoc2VjdGlvblRhZy5lcXVhbHMoIkxDX05BTUUiKSl7CisgICAgICAgICAgICBwYXJzZUxDKHRhYmxlLCByZWFkZXIsIHNlY3Rpb25UYWcpOworICAgICAgICB9ZWxzZSBpZihzZWN0aW9uVGFnLmVxdWFscygiTENfSURFTlRJRklDQVRJT04iKSl7CisgICAgICAgICAgICBwYXJzZUxDKHRhYmxlLCByZWFkZXIsIHNlY3Rpb25UYWcpOworICAgICAgICB9ZWxzZSBpZihzZWN0aW9uVGFnLmVxdWFscygiTENfVEVMRVBIT05FIikpeworICAgICAgICAgICAgcGFyc2VMQyh0YWJsZSwgcmVhZGVyLCBzZWN0aW9uVGFnKTsKKyAgICAgICAgICAgIAorICAgICAgICB9ZWxzZSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlVucmVjb2duaXNlZCBzZWN0aW9uOiIrc2VjdGlvblRhZyk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkRlZmF1bHQgcGFyc2luZyBhcHBsaWVkLiIpOworICAgICAgICAgICAgcGFyc2VMQyh0YWJsZSwgcmVhZGVyLCBzZWN0aW9uVGFnKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgUHVzaGJhY2tSZWFkZXIgY3JlYXRlUGFyc2VySW5wdXQoU3RyaW5nIGxvY2FsZU5hbWUpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIFB1c2hiYWNrUmVhZGVyIHJlYWRlciA9IG5ldyBQdXNoYmFja1JlYWRlcigKKyAgICAgICAgICAgIG5ldyBCdWZmZXJlZFJlYWRlcigKKyAgICAgICAgICAgICAgICBuZXcgRmlsZVJlYWRlcigKKyAgICAgICAgICAgICAgICAgICAgbmV3IEZpbGUobG9jYWxlRGF0YVBhdGgsIGxvY2FsZU5hbWUpCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICApOworICAgICAgICAvL1Nob3ZlIGEgbmV3bGluZSBhdCB0aGUgc3RhcnQgb2YgdGhlIGZpbGUuICBUaGlzIGhhcyB0aGUgYWZmZWN0IG9mIGFsbG93aW5nCisgICAgICAgIC8vdGhlIGZpbGUgdG8gc3RhcnQgd2l0aCBhIGNvbW1lbnQsIHNpbmNlIHRoZSBwYXJzZXIgb25seSBhbGxvd3MgY29tbWVudHMgYXMgCisgICAgICAgIC8vcGFydCBvZiBhbiBFT0wKKyAgICAgICAgcmVhZGVyLnVucmVhZCgnXG4nKTsKKyAgICAgICAgcmV0dXJuIHJlYWRlcjsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgc2Vla0xDKFB1c2hiYWNrUmVhZGVyIHJlYWRlcikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgTGV4IHAgPSBuZXcgTGV4KExDU3RhdGVzLCByZWFkZXIpOworICAgICAgICBmaW5hbCBTdHJpbmcgTEMgPSAiTENfIjsKKyAgICAgICAgaW50IHMgPSBwLm5leHRUb2tlbigpOworICAgICAgICB3aGlsZSAoKHMgIT0gRU9GX1RPS0VOKSkgeworICAgICAgICAgICAgaWYgKHMgPT0gVEFHX1RPS0VOKSB7CisgICAgICAgICAgICAgICAgaWYgKHAuZGF0YVN0YXJ0c1dpdGgoTEMpKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0YWcgPSBwLmdldERhdGEoKTsKKyAgICAgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICAgICAgcyA9IHAubmV4dFRva2VuKCk7CisgICAgICAgICAgICAgICAgICAgIH0gd2hpbGUgKHMgIT0gRU9MX1RPS0VOICYmIHMgIT0gRU9GX1RPS0VOKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRhZzsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHAuZGF0YUVxdWFscygiZXNjYXBlX2NoYXIiKSkgeworICAgICAgICAgICAgICAgICAgICBzID0gcC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHMgPT0gVEFHX1RPS0VOIHx8IHAuZ2V0RGF0YSgpLmxlbmd0aCgpICE9IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBlc2NhcGVfY2hhciA9IHAuZ2V0RGF0YSgpOworICAgICAgICAgICAgICAgICAgICAgICAgRXNjYXBlVHJhbnNpdGlvbi5zZXRFc2NhcGVDaGFyKGVzY2FwZV9jaGFyLmNoYXJBdCgwKSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkVycm9yIGluIGVzY2FwZV9jaGFyIGRpcmVjdGl2ZS4gIERpcmVjdGl2ZSBpZ25vcmVkLiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwLmRhdGFFcXVhbHMoImNvbW1lbnRfY2hhciIpKSB7CisgICAgICAgICAgICAgICAgICAgIHMgPSBwLm5leHRUb2tlbigpOworICAgICAgICAgICAgICAgICAgICBpZiAocyA9PSBUQUdfVE9LRU4gfHwgcC5nZXREYXRhKCkubGVuZ3RoKCkgIT0gMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGNvbW1lbnRfY2hhciA9IHAuZ2V0RGF0YSgpOworICAgICAgICAgICAgICAgICAgICAgICAgRU9MVHJhbnNpdGlvbi5zZXRDb21tZW50Q2hhcihjb21tZW50X2NoYXIuY2hhckF0KDApKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRXJyb3IgaW4gZXNjYXBlX2NoYXIgZGlyZWN0aXZlLiAgRGlyZWN0aXZlIGlnbm9yZWQuIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzID0gcC5uZXh0VG9rZW4oKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBwcml2YXRlIGJvb2xlYW4gc2Vla0VORChQdXNoYmFja1JlYWRlciByZWFkZXIpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIExleCBwID0gbmV3IExleChMQ1N0YXRlcywgcmVhZGVyKTsKKyAgICAgICAgZmluYWwgU3RyaW5nIEVORCA9ICJFTkQiOworICAgICAgICBpbnQgcyA9IHAubmV4dFRva2VuKCk7CisgICAgICAgIHdoaWxlICgocyAhPSBFT0ZfVE9LRU4pKSB7CisgICAgICAgICAgICBpZiAocyA9PSBUQUdfVE9LRU4pIHsKKyAgICAgICAgICAgICAgICBpZiAocC5kYXRhU3RhcnRzV2l0aChFTkQpKSB7CisgICAgICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHMgPSBwLm5leHRUb2tlbigpOworICAgICAgICAgICAgICAgICAgICB9IHdoaWxlIChzICE9IEVPTF9UT0tFTiAmJiBzICE9IEVPRl9UT0tFTik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHMgPSBwLm5leHRUb2tlbigpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHBhcnNlQ1RZUEUoSGFzaHRhYmxlIHRhYmxlLCBQdXNoYmFja1JlYWRlciByZWFkZXIpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIExleCBwID0gbmV3IExleChkYXRhU3RhdGVzLCByZWFkZXIpOworICAgICAgICBTdHJpbmdCdWZmZXIgdGVtcCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50IHMgPSBwLm5leHRUb2tlbigpOworICAgICAgICBpZiAoKHMgPT0gVEFHX1RPS0VOKSAmJiBwLmRhdGFFcXVhbHMoImNvcHkiKSkgeworICAgICAgICAgICAgcC5hY2NlcHQoVEFHX1RPS0VOKTsKKyAgICAgICAgICAgIHBhcnNlQ29weSgiTENfQ1RZUEUiLCBwLmdldERhdGEoKSwgdGFibGUpOworICAgICAgICAgICAgcC5hY2NlcHQoRU9MX1RPS0VOKTsKKyAgICAgICAgICAgIHAuYWNjZXB0KFRBR19UT0tFTiwgIkVORCIpOworICAgICAgICAgICAgcC5hY2NlcHQoVEFHX1RPS0VOLCAiTENfQ1RZUEUiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHdoaWxlICgocyA9PSBUQUdfVE9LRU4pICYmICFwLmRhdGFFcXVhbHMoIkVORCIpKSB7ICAKKyAgICAgICAgICAgICAgICBTdHJpbmcga2V5ID0gcC5nZXREYXRhKCk7CisgICAgICAgICAgICAgICAgdGVtcC5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgcC5hY2NlcHQoVEFHX1RPS0VOKTsKKyAgICAgICAgICAgICAgICBwLmFwcGVuZERhdGFUbyh0ZW1wKTsKKyAgICAgICAgICAgICAgICBzID0gcC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAocyA9PSBTRVBBUkFUT1JfVE9LRU4pIHsKKyAgICAgICAgICAgICAgICAgICAgcC5hY2NlcHQoVEFHX1RPS0VOKTsKKyAgICAgICAgICAgICAgICAgICAgcC5hcHBlbmREYXRhVG8odGVtcCk7CisgICAgICAgICAgICAgICAgICAgIHMgPSBwLm5leHRUb2tlbigpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocyAhPSBFT0xfVE9LRU4pIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdGFibGUucHV0KGtleSwgdGVtcC50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcyA9IHAubmV4dFRva2VuKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwLmFjY2VwdChUQUdfVE9LRU4sICJMQ19DVFlQRSIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBwYXJzZUNvcHkoU3RyaW5nIHNlY3Rpb24sIFN0cmluZyB0b0NvcHksIEhhc2h0YWJsZSB0KSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBjaGFyIG9sZEVzY2FwZUNoYXIgPSBFc2NhcGVUcmFuc2l0aW9uLnNldERlZmF1bHRFc2NhcGVDaGFyKCk7CisgICAgICAgIGNoYXIgb2xkQ29tbWVudENoYXIgPSBFT0xUcmFuc2l0aW9uLnNldERlZmF1bHRDb21tZW50Q2hhcigpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgUHVzaGJhY2tSZWFkZXIgcmVhZGVyID0gY3JlYXRlUGFyc2VySW5wdXQodG9Db3B5KTsKKyAgICAgICAgICAgIFN0cmluZyB0YWcgPSBzZWVrTEMocmVhZGVyKTsKKyAgICAgICAgICAgIHdoaWxlICh0YWcgIT0gbnVsbCAmJiAhc2VjdGlvbi5lcXVhbHModGFnKSkgeworICAgICAgICAgICAgICAgIHRhZyA9IHNlZWtMQyhyZWFkZXIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHRhZyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcGFyc2VTZWN0aW9uKHQsIHJlYWRlciwgc2VjdGlvbik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vaGV5IHtqZn0gLSBpcyB0aGlzIGFuIGVycm9yPworICAgICAgICAgICAgfQorICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgRXNjYXBlVHJhbnNpdGlvbi5zZXRFc2NhcGVDaGFyKG9sZEVzY2FwZUNoYXIpOworICAgICAgICAgICAgRU9MVHJhbnNpdGlvbi5zZXRDb21tZW50Q2hhcihvbGRDb21tZW50Q2hhcik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHBhcnNlTEMoSGFzaHRhYmxlIHQsIFB1c2hiYWNrUmVhZGVyIHJlYWRlciwgU3RyaW5nIHNlY3Rpb25UYWcpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIExleCBpbnB1dCA9IG5ldyBMZXgoZGF0YVN0YXRlcywgcmVhZGVyKTsKKyAgICAgICAgaW5wdXQuYWNjZXB0KFRBR19UT0tFTik7CisgICAgICAgIGlmIChpbnB1dC5kYXRhRXF1YWxzKCJjb3B5IikpIHsKKyAgICAgICAgICAgIGlucHV0LmFjY2VwdChUQUdfVE9LRU4pOworICAgICAgICAgICAgcGFyc2VDb3B5KHNlY3Rpb25UYWcsIGlucHV0LmdldERhdGEoKSwgdCk7ICAgICAgICAgIAorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgd2hpbGUgKChpbnB1dC5nZXRTdGF0ZSgpID09IFRBR19UT0tFTikgJiYgIWlucHV0LmRhdGFFcXVhbHMoIkVORCIpKSB7ICAgCisgICAgICAgICAgICAgICAgU3RyaW5nIGxhYmVsID0gaW5wdXQuZ2V0RGF0YSgpOworICAgICAgICAgICAgICAgIFZlY3RvciB2YWx1ZXMgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgICAgICAgICAgaW5wdXQuYWNjZXB0KFRBR19UT0tFTik7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRlbXAgPSBpbnB1dC5nZXREYXRhKCk7CisgICAgICAgICAgICAgICAgdmFsdWVzLmFkZEVsZW1lbnQodGVtcCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKGlucHV0Lm5leHRUb2tlbigpID09IFNFUEFSQVRPUl9UT0tFTikgeworICAgICAgICAgICAgICAgICAgICBpbnB1dC5hY2NlcHQoVEFHX1RPS0VOKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gaW5wdXQuZ2V0RGF0YSgpOworICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuYWRkRWxlbWVudCh2YWx1ZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh2YWx1ZXMuc2l6ZSgpID4gMSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmdbXSBkYXRhID0gbmV3IFN0cmluZ1t2YWx1ZXMuc2l6ZSgpXTsKKyAgICAgICAgICAgICAgICAgICAgdmFsdWVzLmNvcHlJbnRvKGRhdGEpOworICAgICAgICAgICAgICAgICAgICB0LnB1dChsYWJlbCwgZGF0YSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdC5wdXQobGFiZWwsIHZhbHVlcy5lbGVtZW50QXQoMCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoaW5wdXQuZ2V0U3RhdGUoKSAhPSBFT0xfVE9LRU4pIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFeHRyYW5lb3VzIHRleHQgYWZ0ZXIgbGFiZWw6ICIgK2xhYmVsKTsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlucHV0Lm5leHRUb2tlbigpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlucHV0LmFjY2VwdChUQUdfVE9LRU4sIHNlY3Rpb25UYWcpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcGFyc2VDT0xMQVRFKEhhc2h0YWJsZSB0YWJsZSwgUHVzaGJhY2tSZWFkZXIgcmVhZGVyKSAKKyAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIFBvc2l4Q2hhck1hcCBtYXAgPSBuZXcgUG9zaXhDaGFyTWFwKFN5bWJvbFRyYW5zaXRpb24uZ2V0Q2hhck1hcCgpKTsKKyAgICAgICAgU3ltYm9sVHJhbnNpdGlvbi5zZXRDaGFyTWFwKG1hcCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBMZXggaW5wdXQgPSBuZXcgTGV4KGRhdGFTdGF0ZXMsIHJlYWRlcik7CisgICAgICAgICAgICBQb3NpeENvbGxhdGlvbkJ1aWxkZXIgYnVpbGRlciA9IG5ldyBQb3NpeENvbGxhdGlvbkJ1aWxkZXIobWFwKTsKKworICAgICAgICAgICAgaW50IHMgPSBpbnB1dC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgIHdoaWxlIChzID09IEVPTF9UT0tFTikgcyA9IGlucHV0Lm5leHRUb2tlbigpOworICAgICAgICAgICAgd2hpbGUgKHMgPT0gVEFHX1RPS0VOKSB7CisgICAgICAgICAgICAgICAgaWYgKGlucHV0LmRhdGFFcXVhbHMoIkVORCIpKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQuZGF0YUVxdWFscygiVU5ERUZJTkVEIikpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJXQVJOSU5HOiBVbmRlZmluZWQgY2hhcmFjdGVycyB3aWxsIHNvcnQgbGFzdC4iKTsKKyAgICAgICAgICAgICAgICAgICAgcyA9IGlucHV0Lm5leHRUb2tlbigpOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAocyAhPSBFT0ZfVE9LRU4gJiYgcyAhPSBFT0xfVE9LRU4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHMgPSBpbnB1dC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQuZGF0YUVxdWFscygiY29weSIpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vY29weSBjb2xsYXRpb24gcnVsZXMgZnJvbSBhbm90aGVyIGxvY2FsZQorICAgICAgICAgICAgICAgICAgICBpbnB1dC5hY2NlcHQoVEFHX1RPS0VOKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRvQ29weSA9IGlucHV0LmdldERhdGEoKTsKKyAgICAgICAgICAgICAgICAgICAgaW5wdXQuYWNjZXB0KEVPTF9UT0tFTik7CisgICAgICAgICAgICAgICAgICAgIHBhcnNlQ29weSgiTENfQ09MTEFURSIsIHRvQ29weSwgdGFibGUpOworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkNvcHlpbmcgY29sbGF0aW9uIHJ1bGVzIGZyb20gIit0b0NvcHkrIi4uLiIpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQuZGF0YUVxdWFscygiLi4uIikpIHsKKyAgICAgICAgICAgICAgICAgICAgLy9maWxsIHRoZSBzcGFjZSBiZXR3ZWVuIHRoZSBsYXN0IGVsZW1lbnQgYW5kIHRoZSBuZXh0IGVsZW1lbnQKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJFUlJPUjogRWxsaXBzaXMgbm90IHN1cHBvcnRlZCBpbiBjb2xsYXRpb24gcnVsZXMuIik7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiICAgICAgIExpbmUgaWdub3JlZCIpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQuZGF0YUVxdWFscygicmVwbGFjZS1hZnRlciIpKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRVJST1I6IFJlcGxhY2UtYWZ0ZXIgbm90IHN1cHBvcnRlZCBpbiBjb2xsYXRpb24gcnVsZXMuIik7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiICAgICAgIFNraXBwaW5nIHVudGlsIG5leHQgcmVwbGFjZS1lbmQuIik7CisgICAgICAgICAgICAgICAgICAgIHMgPSBpbnB1dC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHMgIT0gRU9GX1RPS0VOKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocyA9PSBUQUdfVE9LRU4gJiYgaW5wdXQuZGF0YUVxdWFscygicmVwbGFjZS1lbmQiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LmFjY2VwdChFT0xfVE9LRU4pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbnB1dC5kYXRhRXF1YWxzKCJjb2xsYXRpbmctZWxlbWVudCIpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vU2V2ZXJhbCBjaGFyYWN0ZXJzIHNob3VsZCBzb3J0IGFzIGEgc2luZ2xlIGVsZW1lbnQuCisgICAgICAgICAgICAgICAgICAgIGlucHV0LmFjY2VwdChUQUdfVE9LRU4pOyAgICAvL2dldCB0aGUgc3ltYm9sCisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBrZXkgPSBpbnB1dC5nZXREYXRhKCk7CisgICAgICAgICAgICAgICAgICAgIGlucHV0LmFjY2VwdChUQUdfVE9LRU4sICJmcm9tIik7CisgICAgICAgICAgICAgICAgICAgIGlucHV0LmFjY2VwdChUQUdfVE9LRU4pOyAgICAvL2dldCB0aGUgZXhwYW5zaW9uCisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IGlucHV0LmdldERhdGEoKTsKKyAgICAgICAgICAgICAgICAgICAgYnVpbGRlci5kZWZpbmVDb250cmFjdGlvbihrZXksIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgaW5wdXQuYWNjZXB0KEVPTF9UT0tFTik7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbnB1dC5kYXRhRXF1YWxzKCJjb2xsYXRpbmctc3ltYm9sIikpIHsKKyAgICAgICAgICAgICAgICAgICAgLy9kZWZpbmUgYSB3ZWlnaHQgc3ltYm9sLiAgVGhpcyBzeW1ib2wgZG9lcyBub3QgcmVwcmVzZW50IGEgY2hhcmFjdGVyLgorICAgICAgICAgICAgICAgICAgICAvL0l0J3Mgb25seSB1c2VkIGZvciBjb21wYXJpc29uIHB1cnBvc2VzLiAgV2UgZGVmaW5lIHRoZSBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAgICAgLy92YWx1ZSBmb3IgdGhpcyBjaGFyYWN0ZXIgdG8gYmUgaW4gdGhlIHByaXZhdGUgYXJlYSBzaW5jZSBvdXIKKyAgICAgICAgICAgICAgICAgICAgLy9jb2xsYXRpb24gc3R1ZmYgZG9lc24ndCBzb3J0IHRoYXQgYXJlYS4KKyAgICAgICAgICAgICAgICAgICAgaW5wdXQuYWNjZXB0KFRBR19UT0tFTik7CisgICAgICAgICAgICAgICAgICAgIGJ1aWxkZXIuZGVmaW5lV2VpZ2h0U3ltYm9sKGlucHV0LmdldERhdGEoKSk7CisgICAgICAgICAgICAgICAgICAgIGlucHV0LmFjY2VwdChFT0xfVE9LRU4pOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQuZGF0YUVxdWFscygib3JkZXJfc3RhcnQiKSkgeworICAgICAgICAgICAgICAgICAgICBWZWN0b3IgdGVtcFZlY3RvciA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgICAgICAgICAgICAgLy9zdGFydCByZWFkaW5nIGNvbGxhdGlvbiBvcmRlcmluZyBydWxlcy4gCisgICAgICAgICAgICAgICAgICAgIGlucHV0LmFjY2VwdChUQUdfVE9LRU4pOworICAgICAgICAgICAgICAgICAgICB0ZW1wVmVjdG9yLmFkZEVsZW1lbnQoaW5wdXQuZ2V0RGF0YSgpKTsKKyAgICAgICAgICAgICAgICAgICAgcyA9IGlucHV0Lm5leHRUb2tlbigpOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAocyA9PSBTRVBBUkFUT1JfVE9LRU4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LmFjY2VwdChUQUdfVE9LRU4pOworICAgICAgICAgICAgICAgICAgICAgICAgdGVtcFZlY3Rvci5hZGRFbGVtZW50KGlucHV0LmdldERhdGEoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzID0gaW5wdXQubmV4dFRva2VuKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nW10gb3JkZXJfc3RhcnQgPSBuZXcgU3RyaW5nW3RlbXBWZWN0b3Iuc2l6ZSgpXTsKKyAgICAgICAgICAgICAgICAgICAgdGVtcFZlY3Rvci5jb3B5SW50byhvcmRlcl9zdGFydCk7CisgICAgICAgICAgICAgICAgICAgIHRhYmxlLnB1dCgic29ydF9vcmRlciIsIG9yZGVyX3N0YXJ0KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0LmRhdGFFcXVhbHMoIm9yZGVyX2VuZCIpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vYnVpbGQgYSBsaXN0IG9mIG9yZGVyZWQgY29sbGF0aW9uIGVsZW1lbnRzCisgICAgICAgICAgICAgICAgICAgIGlucHV0LmFjY2VwdChFT0xfVE9LRU4pOworICAgICAgICAgICAgICAgICAgICBTb3J0ZWRWZWN0b3Igb3JkZXIgPSBidWlsZGVyLmdldFNvcnRPcmRlcigpOworICAgICAgICAgICAgICAgICAgICBQb3NpeENvbGxhdGlvbkJ1aWxkZXIuQ29sbGF0aW9uUnVsZVtdIHJ1bGVTb3VyY2UgPSAKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBQb3NpeENvbGxhdGlvbkJ1aWxkZXIuQ29sbGF0aW9uUnVsZVtvcmRlci5zaXplKCldOworICAgICAgICAgICAgICAgICAgICBvcmRlci5jb3B5SW50byhydWxlU291cmNlKTsgLy9jb3B5IGludG8gYW4gYXJyYXkgc28gd2UgY2FuIGFkZCBpdCB0byB0aGUgb3V0cHV0IHRhYmxlCisgICAgICAgICAgICAgICAgICAgICAgICAvL3RoaXMgaXMgb25seSBmb3IgaW5mb3JtYXRpb24gcHVycG9zZXMgc28gd2UgY2FuIHJldHJpZXZlIHRoZSBzb3VyY2Ugb2YgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAvL2NvbGxhdGlvbkl0ZW1zIHdpdGggdGhlIHdlaWdodHMgaWYgd2Ugd2FudCB0aGVtIGxhdGVyCisgICAgICAgICAgICAgICAgICAgIHRhYmxlLnB1dCgicG9zaXhfc29ydF9ydWxlcyIsIHJ1bGVTb3VyY2UpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vYWRkIGEgY29sbGF0aW9uIGl0ZW0gdG8gdGhlIGxpc3QKKyAgICAgICAgICAgICAgICAgICAgYnVpbGRlci5hZGRSdWxlKGlucHV0LmdldERhdGEoKSk7CisgICAgICAgICAgICAgICAgICAgIHMgPSBpbnB1dC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHMgPT0gVEFHX1RPS0VOKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvL3dlJ3JlIGV4cGVjdGluZyB3ZWlnaHRzIGhlcmUKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkZXIuYWRkV2VpZ2h0KGlucHV0LmdldERhdGEoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzID0gaW5wdXQubmV4dFRva2VuKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocyA9PSBTRVBBUkFUT1JfVE9LRU4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzID0gaW5wdXQubmV4dFRva2VuKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcyA9IGlucHV0Lm5leHRUb2tlbigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW5wdXQuYWNjZXB0KFRBR19UT0tFTiwgIkxDX0NPTExBVEUiKTsKKyAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgIFN5bWJvbFRyYW5zaXRpb24uc2V0Q2hhck1hcChtYXAuZ2V0UGFyZW50KCkpOworICAgICAgICB9CisgICAgfQorICAgIC8ve3tERUNMQVJFX0NPTlRST0xTCisJLy99fQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Qb3NpeENoYXJNYXAuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvUG9zaXhDaGFyTWFwLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmY5NDVlNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvUG9zaXhDaGFyTWFwLmphdmEKQEAgLTAsMCArMSw0NjggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvUG9zaXhDaGFyTWFwLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDYvMjAgMDE6MTc6MTIgJCAKKyAqICRSZXZpc2lvbjogMS4zICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworIAorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKKworcHVibGljIGNsYXNzIFBvc2l4Q2hhck1hcCB7CisgICAgcHJpdmF0ZSBIYXNodGFibGUgdGFibGUgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgcHJpdmF0ZSBIYXNodGFibGUgYmFja1RhYmxlID0gbnVsbDsKKyAgICBwcml2YXRlIFBvc2l4Q2hhck1hcCBwYXJlbnRNYXA7CisgICAgcHJpdmF0ZSBTdHJpbmcgZW5jb2Rpbmc7CisgICAgCisgICAgcHVibGljIFBvc2l4Q2hhck1hcCgpIHsKKyAgICB9CisgICAgCisgICAgcHVibGljIFBvc2l4Q2hhck1hcChQb3NpeENoYXJNYXAgcGFyZW50KSB7CisgICAgICAgIHBhcmVudE1hcCA9IHBhcmVudDsKKyAgICB9CisKKyAgICBwdWJsaWMgUG9zaXhDaGFyTWFwKFN0cmluZyBmaWxlTmFtZSkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgdGhpcyhuZXcgRmlsZVJlYWRlcihmaWxlTmFtZSkpOworICAgIH0KKworICAgIHB1YmxpYyBQb3NpeENoYXJNYXAoU3RyaW5nIHBhdGhOYW1lLCBTdHJpbmcgZmlsZU5hbWUpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHRoaXMobmV3IEZpbGVSZWFkZXIobmV3IEZpbGUocGF0aE5hbWUsIGZpbGVOYW1lKSkpOworICAgIH0KKworICAgIHB1YmxpYyBQb3NpeENoYXJNYXAoUmVhZGVyIGlucHV0UmVhZGVyKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBsb2FkKG5ldyBCdWZmZXJlZFJlYWRlcihpbnB1dFJlYWRlcikpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgUG9zaXhDaGFyTWFwIGdldFBhcmVudCgpIHsKKyAgICAgICAgcmV0dXJuIHBhcmVudE1hcDsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgc2V0UGFyZW50KFBvc2l4Q2hhck1hcCBwYXJlbnQpIHsKKyAgICAgICAgcGFyZW50TWFwID0gcGFyZW50OworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGxvYWQoU3RyaW5nIHBhdGhOYW1lLCBTdHJpbmcgZmlsZU5hbWUpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGxvYWQobmV3IEZpbGUocGF0aE5hbWUsIGZpbGVOYW1lKSwiIik7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIGxvYWQoU3RyaW5nIHBhdGhOYW1lLCBTdHJpbmcgZmlsZU5hbWUsIFN0cmluZyBlbmMpdGhyb3dzIElPRXhjZXB0aW9ueworICAgICAgICBsb2FkKG5ldyBGaWxlKHBhdGhOYW1lLCBmaWxlTmFtZSksZW5jKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgbG9hZChGaWxlIGZpbGUsIFN0cmluZyBlbmMpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGVuY29kaW5nID1lbmM7CisgICAgICAgIGxvYWQobmV3IEJ1ZmZlcmVkUmVhZGVyKG5ldyBGaWxlUmVhZGVyKGZpbGUpKSk7CisgICAgfQorICAgIC8qIFRoaXMgbWFwIG11c3QgYmUgaW4gQVNDRU5ESU5HIE9SREVSIE9GIFRIRSBFU0NBUEUgQ09ERSAqLworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIGNoYXJbXSBVTkVTQ0FQRV9NQVAgPSB7CisgICAgICAgIC8qIiAgIDB4MjIsIDB4MjIgKi8KKyAgICAgICAgLyonICAgMHgyNywgMHgyNyAqLworICAgICAgICAvKj8gICAweDNGLCAweDNGICovCisgICAgICAgIC8qXCAgIDB4NUMsIDB4NUMgKi8KKyAgICAgICAgLyphKi8gMHg2MSwgMHgwNywKKyAgICAgICAgLypiKi8gMHg2MiwgMHgwOCwKKyAgICAgICAgLypmKi8gMHg2NiwgMHgwYywKKyAgICAgICAgLypuKi8gMHg2RSwgMHgwYSwKKyAgICAgICAgLypyKi8gMHg3MiwgMHgwZCwKKyAgICAgICAgLyp0Ki8gMHg3NCwgMHgwOSwKKyAgICAgICAgLyp2Ki8gMHg3NiwgMHgwYgorICAgIH07CisgICAgICAgIC8qKgorICAgICAqIENvbnZlcnQgYW4gZXNjYXBlIHRvIGEgMzItYml0IGNvZGUgcG9pbnQgdmFsdWUuICBXZSBhdHRlbXB0CisgICAgICogdG8gcGFyYWxsZWwgdGhlIGljdTRjIHVuZXNhY3BlQXQoKSBmdW5jdGlvbi4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0MTYgYW4gYXJyYXkgY29udGFpbmluZyBvZmZzZXQgdG8gdGhlIGNoYXJhY3RlcgorICAgICAqIDxlbT5hZnRlcjwvZW0+IHRoZSBiYWNrc2xhc2guICBVcG9uIHJldHVybiBvZmZzZXQxNlswXSB3aWxsCisgICAgICogYmUgdXBkYXRlZCB0byBwb2ludCBhZnRlciB0aGUgZXNjYXBlIHNlcXVlbmNlLgorICAgICAqIEByZXR1cm4gY2hhcmFjdGVyIHZhbHVlIGZyb20gMCB0byAxMEZGRkYsIG9yIC0xIG9uIGVycm9yLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IHVuZXNjYXBlQXQoU3RyaW5nIHMsIGludFtdIG9mZnNldDE2KSB7CisgICAgICAgIGludCBjOworICAgICAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICAgICAgaW50IG4gPSAwOworICAgICAgICBpbnQgbWluRGlnID0gMDsKKyAgICAgICAgaW50IG1heERpZyA9IDA7CisgICAgICAgIGludCBiaXRzUGVyRGlnaXQgPSA0OworICAgICAgICBpbnQgZGlnOworICAgICAgICBpbnQgaTsKKworICAgICAgICAvKiBDaGVjayB0aGF0IG9mZnNldCBpcyBpbiByYW5nZSAqLworICAgICAgICBpbnQgb2Zmc2V0ID0gb2Zmc2V0MTZbMF07CisgICAgICAgIGludCBsZW5ndGggPSBzLmxlbmd0aCgpOworICAgICAgICBpZiAob2Zmc2V0IDwgMCB8fCBvZmZzZXQgPj0gbGVuZ3RoKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKworICAgICAgICAvKiBGZXRjaCBmaXJzdCBVQ2hhciBhZnRlciAnXFwnICovCisgICAgICAgIGMgPSBVVEYxNi5jaGFyQXQocywgb2Zmc2V0KTsKKyAgICAgICAgb2Zmc2V0ICs9IFVURjE2LmdldENoYXJDb3VudChjKTsKKworICAgICAgICAvKiBDb252ZXJ0IGhleGFkZWNpbWFsIGFuZCBvY3RhbCBlc2NhcGVzICovCisgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICBjYXNlICd1JzoKKyAgICAgICAgICAgIG1pbkRpZyA9IG1heERpZyA9IDQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAnVSc6CisgICAgICAgICAgICBtaW5EaWcgPSBtYXhEaWcgPSA4OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgJ3gnOgorICAgICAgICAgICAgbWluRGlnID0gMTsKKyAgICAgICAgICAgIG1heERpZyA9IDI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGRpZyA9IFVDaGFyYWN0ZXIuZGlnaXQoYywgOCk7CisgICAgICAgICAgICBpZiAoZGlnID49IDApIHsKKyAgICAgICAgICAgICAgICBtaW5EaWcgPSAxOworICAgICAgICAgICAgICAgIG1heERpZyA9IDM7CisgICAgICAgICAgICAgICAgbiA9IDE7IC8qIEFscmVhZHkgaGF2ZSBmaXJzdCBvY3RhbCBkaWdpdCAqLworICAgICAgICAgICAgICAgIGJpdHNQZXJEaWdpdCA9IDM7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZGlnOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1pbkRpZyAhPSAwKSB7CisgICAgICAgICAgICB3aGlsZSAob2Zmc2V0IDwgbGVuZ3RoICYmIG4gPCBtYXhEaWcpIHsKKyAgICAgICAgICAgICAgICAvLyBURU1QT1JBUlkKKyAgICAgICAgICAgICAgICAvLyBUT0RPOiBSZXN0b3JlIHRoZSBjaGFyMzItYmFzZWQgY29kZSB3aGVuIFVDaGFyYWN0ZXIuZGlnaXQKKyAgICAgICAgICAgICAgICAvLyBpcyB3b3JraW5nIChCdWcgNjYpLgorCisgICAgICAgICAgICAgICAgLy9jID0gVVRGMTYuY2hhckF0KHMsIG9mZnNldCk7CisgICAgICAgICAgICAgICAgLy9kaWcgPSBVQ2hhcmFjdGVyLmRpZ2l0KGMsIChiaXRzUGVyRGlnaXQgPT0gMykgPyA4IDogMTYpOworICAgICAgICAgICAgICAgIGMgPSBzLmNoYXJBdChvZmZzZXQpOworICAgICAgICAgICAgICAgIGRpZyA9IENoYXJhY3Rlci5kaWdpdCgoY2hhciljLCAoYml0c1BlckRpZ2l0ID09IDMpID8gOCA6IDE2KTsKKyAgICAgICAgICAgICAgICBpZiAoZGlnIDwgMCkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCA8PCBiaXRzUGVyRGlnaXQpIHwgZGlnOworICAgICAgICAgICAgICAgIC8vb2Zmc2V0ICs9IFVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgICAgICArK29mZnNldDsKKyAgICAgICAgICAgICAgICArK247CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobiA8IG1pbkRpZykgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG9mZnNldDE2WzBdID0gb2Zmc2V0OworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIC8qIENvbnZlcnQgQy1zdHlsZSBlc2NhcGVzIGluIHRhYmxlICovCisgICAgICAgIGZvciAoaT0wOyBpPFVORVNDQVBFX01BUC5sZW5ndGg7IGkrPTIpIHsKKyAgICAgICAgICAgIGlmIChjID09IFVORVNDQVBFX01BUFtpXSkgeworICAgICAgICAgICAgICAgIG9mZnNldDE2WzBdID0gb2Zmc2V0OworICAgICAgICAgICAgICAgIHJldHVybiBVTkVTQ0FQRV9NQVBbaSsxXTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYyA8IFVORVNDQVBFX01BUFtpXSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyogSWYgbm8gc3BlY2lhbCBmb3JtcyBhcmUgcmVjb2duaXplZCwgdGhlbiBjb25zaWRlcgorICAgICAgICAgKiB0aGUgYmFja3NsYXNoIHRvIGdlbmVyaWNhbGx5IGVzY2FwZSB0aGUgbmV4dCBjaGFyYWN0ZXIuICovCisgICAgICAgIG9mZnNldDE2WzBdID0gb2Zmc2V0OworICAgICAgICByZXR1cm4gYzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGFsbCBlc2NhcGVzIGluIGEgZ2l2ZW4gc3RyaW5nIHVzaW5nIHVuZXNjYXBlQXQoKS4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBhbiBpbnZhbGlkIGVzY2FwZSBpcworICAgICAqIHNlZW4uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgdW5lc2NhcGUoU3RyaW5nIHMpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50W10gcG9zID0gbmV3IGludFsxXTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHMubGVuZ3RoKCk7ICkgeworICAgICAgICAgICAgY2hhciBjID0gcy5jaGFyQXQoaSsrKTsKKyAgICAgICAgICAgIGlmIChjID09ICdcXCcpIHsKKyAgICAgICAgICAgICAgICBwb3NbMF0gPSBpOworICAgICAgICAgICAgICAgIGludCBlID0gdW5lc2NhcGVBdChzLCBwb3MpOworICAgICAgICAgICAgICAgIGlmIChlIDwgMCkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGVzY2FwZSBzZXF1ZW5jZSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLnN1YnN0cmluZyhpLTEsIE1hdGgubWluKGkrOCwgcy5sZW5ndGgoKSkpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKGJ1ZiwgZSk7CisgICAgICAgICAgICAgICAgaSA9IHBvc1swXTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgbG9hZChSZWFkZXIgaW5wdXRSZWFkZXIpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIFBvc2l4Q2hhck1hcCBvbGRNYXAgPSBTeW1ib2xUcmFuc2l0aW9uLmdldENoYXJNYXAoKTsKKyAgICAgICAgU3ltYm9sVHJhbnNpdGlvbi5zZXRDaGFyTWFwKG51bGwpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZmluYWwgaW50IFRPS0VOID0gMTsKKyAgICAgICAgICAgIGZpbmFsIGludCBFT0YgPSAyOworICAgICAgICAgICAgZmluYWwgaW50IEVPTCA9IDM7CisgICAgICAgICAgICBmaW5hbCBpbnQgUkFOR0UgPSA0OworICAgICAgICAgICAgZmluYWwgTGV4LlRyYW5zaXRpb25bXVtdIHN0YXRlczEgPSB7CisgICAgICAgICAgICAgICAgeyAvL3N0YXRlIDA6IHN0YXJ0CisgICAgICAgICAgICAgICAgICAgIG5ldyBTcGFjZVRyYW5zaXRpb24oMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBFT0xUcmFuc2l0aW9uKEVPTCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguRU9GVHJhbnNpdGlvbihFT0YpLAorICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkRlZmF1bHRUcmFuc2l0aW9uKExleC5BQ0NVTVVMQVRFX0NPTlNVTUUsIC0xKQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeyAgIC8vZ3JhYiBmaXJzdCB3b3JkCisgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguU3RyaW5nVHJhbnNpdGlvbihTcGFjZVRyYW5zaXRpb24uU1BBQ0VfQ0hBUlMsIExleC5JR05PUkVfQ09OU1VNRSwgVE9LRU4pLAorICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LlN0cmluZ1RyYW5zaXRpb24oRU9MVHJhbnNpdGlvbi5FT0xfQ0hBUlMsIExleC5JR05PUkVfQ09OU1VNRSwgVE9LRU4pLAorICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkVPRlRyYW5zaXRpb24oVE9LRU4pLAorICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkRlZmF1bHRUcmFuc2l0aW9uKExleC5BQ0NVTVVMQVRFX0NPTlNVTUUsIC0xKQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIGZpbmFsIExleC5UcmFuc2l0aW9uW11bXSBzdGF0ZXMyID0geworICAgICAgICAgICAgICAgIHsgICAvL1RoZXNlIHN0YXRlcyBvbmx5IHJldHVybiA8c3ltYm9scz4uICBBbGwKKyAgICAgICAgICAgICAgICAgICAgLy9vdGhlciB0ZXh0IGlzIGlnbm9yZWQuCisgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguRU9GVHJhbnNpdGlvbihFT0YpLAorICAgICAgICAgICAgICAgICAgICBuZXcgRU9MVHJhbnNpdGlvbihFT0wpLAorICAgICAgICAgICAgICAgICAgICBuZXcgU3ltYm9sVHJhbnNpdGlvbihUT0tFTiksCisgICAgICAgICAgICAgICAgICAgIG5ldyBTcGFjZVRyYW5zaXRpb24oMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBSYW5nZVRyYW5zaXRpb24oUkFOR0UpLAorICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkRlZmF1bHRUcmFuc2l0aW9uKExleC5BQ0NVTVVMQVRFX0NPTlNVTUUsIDApCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIH07CisgICAgICAgIAorICAgICAgICAgICAgUHVzaGJhY2tSZWFkZXIgaW5wdXQgPSBuZXcgUHVzaGJhY2tSZWFkZXIoaW5wdXRSZWFkZXIpOworICAgICAgICAgICAgTGV4IHAgPSBuZXcgTGV4KHN0YXRlczEsIGlucHV0KTsKKyAgICAgICAgICAgIGludCBzdGF0ZTsKKyAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICBzdGF0ZSA9IHAubmV4dFRva2VuKCk7CisgICAgICAgICAgICB9IHdoaWxlICgoc3RhdGUgIT0gRU9GKSAmJiAhcC5kYXRhRXF1YWxzKCJDSEFSTUFQIikpOworICAgICAgICAgICAgcC5hY2NlcHQoRU9MKTsKKyAgICAgICAgICAgIGlmIChzdGF0ZSAhPSBFT0YgKSB7CisgICAgICAgICAgICAgICAgcCA9IG5ldyBMZXgoc3RhdGVzMiwgaW5wdXQpOworICAgICAgICAgICAgICAgIHN0YXRlID0gcC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoc3RhdGUgIT0gRU9GICkgeworCisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBrZXkgPSBwLmdldERhdGEoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYocC5kYXRhRXF1YWxzKCJFTkRDSEFSTUFQIikpeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBwLm5leHRUb2tlbigpOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoc3RhdGUgPT0gRU9MKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihwLmRhdGFFcXVhbHMoIkVORENIQVJNQVAiKSl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZGF0YSA9IHVuZXNjYXBlKHAuZ2V0RGF0YSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEudHJpbSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuc3RhcnRzV2l0aCgiPFUiKSB8fCBkYXRhLnN0YXJ0c1dpdGgoIiNVIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbnVtRGF0YSA9IGRhdGEuc3Vic3RyaW5nKDIsZGF0YS5sZW5ndGgoKS0xKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGlnaXQgPSBJbnRlZ2VyLnBhcnNlSW50KG51bURhdGEsIDE2KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmVNYXBwaW5nKGtleSwgIiIrKGNoYXIpZGlnaXQpOworICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2UgaWYoZGF0YS5zdGFydHNXaXRoKCJcXHgiKSl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZVtdIGVuY0RhdGEgPSBuZXcgYnl0ZVs2XTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbnVtID0gaGV4VG9CeXRlKGRhdGEsZW5jRGF0YSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHREYXRhID0gbmV3IFN0cmluZyhlbmNEYXRhLDAsbnVtLGVuY29kaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmVNYXBwaW5nKGtleSx0RGF0YSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHAubmV4dFRva2VuKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBrZXk9cC5nZXREYXRhKCk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBjb21lIGhlcmUgb25seSBpZiB0aGVyZSBpcyBhIHJhbmdlIHRyYW5zaXRpb24KKyAgICAgICAgICAgICAgICAgICAgIGlmKCBzdGF0ZSA9PVJBTkdFKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGJlZ2luID0ga2V5OworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHAubmV4dFRva2VuKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZW5kID0gcC5nZXREYXRhKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gcC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkYXRhID0gcC5nZXREYXRhKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLnRyaW0oKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVbXSBlbmNEYXRhID0gbmV3IGJ5dGVbNl07CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbnVtID0gaGV4VG9CeXRlKGRhdGEsZW5jRGF0YSk7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdERhdGEgPSBuZXcgU3RyaW5nKGVuY0RhdGEsMCxudW0sZW5jb2RpbmcpOworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHN0cmluZ1ZhbDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludFtdIHZhbCA9IGdldEludChiZWdpbik7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYmVnaW5SYW5nZSA9IHZhbFsxXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbCA9Z2V0SW50KGVuZCk7ICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZW5kUmFuZ2UgPSB2YWxbMV07CisgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmdWYWwgPSBrZXkuc3Vic3RyaW5nKDAsdmFsWzBdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBkaWdpdCA9IChpbnQpKGNoYXIpdERhdGEuY2hhckF0KDApOworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUoYmVnaW5SYW5nZSA8PSBlbmRSYW5nZSl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lTWFwcGluZygoc3RyaW5nVmFsK2JlZ2luUmFuZ2UrIj4iKSwiIisoY2hhcilkaWdpdCsrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWdpblJhbmdlKys7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gcC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGtleT1wLmdldERhdGEoKTsKKyAgICAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8vc3RhdGUgPSBwLm5leHRUb2tlbigpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoRU9GRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgIFN5bWJvbFRyYW5zaXRpb24uc2V0Q2hhck1hcChvbGRNYXApOworICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyBpbnRbXSBnZXRJbnQoU3RyaW5nIGRhdGEpeworICAgICAgICBpbnQgaT0wOworICAgICAgICBpbnRbXSByZXRWYWwgPSBuZXcgaW50WzJdOworICAgICAgICBpbnQgbGVuID1kYXRhLmxlbmd0aCgpOworICAgICAgICB3aGlsZShpPCBsZW4peworICAgICAgICAgICAgaWYoKGRhdGEuY2hhckF0KGkpKS0weDMwIDwgKDB4MzktMHgzMCkpeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaSsrOworICAgICAgICB9CisgICAgICAgIFN0cmluZyBzdWIgPWRhdGEuc3Vic3RyaW5nKGksbGVuLTEpOworICAgICAgICByZXRWYWxbMF0gPWk7CisgICAgICAgIHJldFZhbFsxXT1JbnRlZ2VyLnBhcnNlSW50KHN1YiwxMCk7CisgICAgICAgIHJldHVybiByZXRWYWw7CisgICAgfQorICAgIHB1YmxpYyBpbnQgaGV4VG9CeXRlKFN0cmluZyBkYXRhLCBieXRlW10gcmV0dmFsKXsKKyAgICAgICAgU3RyaW5nIHREYXRhID0gZGF0YTsKKyAgICAgICAgaW50IGk9MDsKKyAgICAgICAgZm9yKGk9MDtpIDwgZGF0YS5sZW5ndGgoKS80OyBpKyspeworICAgICAgICAgICAgaWYodERhdGEuY2hhckF0KDApPT0nXFwnICYmIHREYXRhLmNoYXJBdCgxKT09J3gnKXsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbnVtRGF0YSA9IHREYXRhLnN1YnN0cmluZygyLDQpOworICAgICAgICAgICAgICAgIHJldHZhbFtpXSA9IChieXRlKSBJbnRlZ2VyLnBhcnNlSW50KG51bURhdGEsMTYpOworICAgICAgICAgICAgICAgIHREYXRhID0gdERhdGEuc3Vic3RyaW5nKDQsdERhdGEubGVuZ3RoKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9ICAgICAgIAorICAgICAgICByZXR1cm4gaTsKKyAgICB9ICAgICAgICAKKyAgICBwdWJsaWMgdm9pZCBkZWZpbmVNYXBwaW5nKFN0cmluZyBmcm9tLCBTdHJpbmcgdG8pIHsKKyAgICAgICAgdGFibGUucHV0KGZyb20sIHRvKTsKKyAgICAgICAgYmFja1RhYmxlID0gbnVsbDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB1bmRlZmluZU1hcHBpbmcoU3RyaW5nIGZyb20pIHsKKyAgICAgICAgdGFibGUucmVtb3ZlKGZyb20pOworICAgICAgICBiYWNrVGFibGUgPSBudWxsOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHN3YXAoKSB7CisgICAgICAgIEhhc2h0YWJsZSBuZXdUYWJsZSA9IG5ldyBIYXNodGFibGUoKTsKKyAgICAgICAgRW51bWVyYXRpb24gZW51bSA9IHRhYmxlLmtleXMoKTsKKyAgICAgICAgd2hpbGUgKGVudW0uaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIFN0cmluZyBrZXkgPSAoU3RyaW5nKWVudW0ubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgIFN0cmluZyBjb2RlID0gKFN0cmluZyl0YWJsZS5nZXQoa2V5KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIG5ld0tleSA9IHRvU3ltYm9sKGNvZGUpOworICAgICAgICAgICAgU3RyaW5nIG5ld0NvZGUgPSB0b0xpdGVyYWwoa2V5KTsKKyAgICAgICAgICAgIFN0cmluZyBwcmV2Q29kZSA9IChTdHJpbmcpbmV3VGFibGUuZ2V0KG5ld0tleSk7CisgICAgICAgICAgICBpZiAocHJldkNvZGUgPT0gbnVsbCB8fCBwcmV2Q29kZS5jb21wYXJlVG8obmV3Q29kZSkgPiAwKSB7CisgICAgICAgICAgICAgICAgbmV3VGFibGUucHV0KG5ld0tleSwgbmV3Q29kZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdGFibGUgPSBuZXdUYWJsZTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgdG9MaXRlcmFsKFN0cmluZyBjb2RlKSB7CisgICAgICAgIFN0cmluZyBkYXRhID0gY29kZS5zdWJzdHJpbmcoMixjb2RlLmxlbmd0aCgpLTEpOworICAgICAgICBpbnQgZGlnaXQgPSBJbnRlZ2VyLnBhcnNlSW50KGRhdGEsIDE2KTsKKyAgICAgICAgcmV0dXJuICIiICsgKGNoYXIpZGlnaXQ7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgU3RyaW5nIHRvU3ltYm9sKFN0cmluZyBjb2RlKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBlc2NhcGVCdWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGVzY2FwZUJ1ZmZlci5hcHBlbmQoIj4iKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb2RlLmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgIGludCB2YWx1ZSA9ICgoaW50KWNvZGUuY2hhckF0KGkpKSAmIDB4RkZGRjsKKyAgICAgICAgICAgIHdoaWxlICgodmFsdWUgPiAwKSB8fCAoZXNjYXBlQnVmZmVyLmxlbmd0aCgpIDwgNSkpIHsKKyAgICAgICAgICAgICAgICBjaGFyIGRpZ2l0ID0gQ2hhcmFjdGVyLmZvckRpZ2l0KHZhbHVlICUgMTYsIDE2KTsKKyAgICAgICAgICAgICAgICBlc2NhcGVCdWZmZXIuYXBwZW5kKGRpZ2l0KTsKKyAgICAgICAgICAgICAgICB2YWx1ZSA+Pj0gNDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlc2NhcGVCdWZmZXIuYXBwZW5kKCJVPCIpOworICAgICAgICBlc2NhcGVCdWZmZXIucmV2ZXJzZSgpOworICAgICAgICByZXR1cm4gZXNjYXBlQnVmZmVyLnRvU3RyaW5nKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGR1bXAoUHJpbnRTdHJlYW0gb3V0KSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBlc2NhcGVCdWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIEVudW1lcmF0aW9uIGVudW0gPSB0YWJsZS5rZXlzKCk7CisgICAgICAgIHdoaWxlIChlbnVtLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBTdHJpbmcga2V5ID0gKFN0cmluZyllbnVtLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICBTdHJpbmcgY29kZSA9IChTdHJpbmcpdGFibGUuZ2V0KGtleSk7CisgICAgICAgICAgICBvdXQucHJpbnQoa2V5KTsKKyAgICAgICAgICAgIG91dC5wcmludCgiICAgICAgIDxVIik7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvZGUubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgICAgIGludCB2YWx1ZSA9ICgoaW50KWNvZGUuY2hhckF0KGkpKSAmIDB4RkZGRjsKKyAgICAgICAgICAgICAgICBlc2NhcGVCdWZmZXIuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgIHdoaWxlICgodmFsdWUgPiAwKSB8fCAoZXNjYXBlQnVmZmVyLmxlbmd0aCgpIDwgNCkpIHsKKyAgICAgICAgICAgICAgICAgICAgY2hhciBkaWdpdCA9IENoYXJhY3Rlci5mb3JEaWdpdCh2YWx1ZSAlIDE2LCAxNik7CisgICAgICAgICAgICAgICAgICAgIGVzY2FwZUJ1ZmZlci5hcHBlbmQoZGlnaXQpOworICAgICAgICAgICAgICAgICAgICB2YWx1ZSA+Pj0gNDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZXNjYXBlQnVmZmVyLnJldmVyc2UoKTsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnQoZXNjYXBlQnVmZmVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb3V0LnByaW50bG4oIj4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgbWFwS2V5KGZpbmFsIFN0cmluZyBrZXkpIHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IChTdHJpbmcpdGFibGUuZ2V0KGtleSk7CisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKHBhcmVudE1hcCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gcGFyZW50TWFwLm1hcEtleShrZXkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBrZXk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgcHVibGljIFN0cmluZyBiYWNrbWFwVmFsdWUoZmluYWwgU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIGlmIChiYWNrVGFibGUgPT0gbnVsbCkgeworICAgICAgICAgICAgYmFja1RhYmxlID0gbmV3IEhhc2h0YWJsZSgpOworICAgICAgICAgICAgRW51bWVyYXRpb24gZW51bSA9IHRhYmxlLmtleXMoKTsKKyAgICAgICAgICAgIHdoaWxlIChlbnVtLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGtleSA9IChTdHJpbmcpZW51bS5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgICAgIFN0cmluZyB2YWwgPSAoU3RyaW5nKXRhYmxlLmdldChrZXkpOworICAgICAgICAgICAgICAgIGJhY2tUYWJsZS5wdXQodmFsLCBrZXkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIFN0cmluZyByZXN1bHQgPSAoU3RyaW5nKWJhY2tUYWJsZS5nZXQodmFsdWUpOworICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHsKKyAgICAgICAgICAgIGlmIChwYXJlbnRNYXAgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHBhcmVudE1hcC5iYWNrbWFwVmFsdWUodmFsdWUpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSB2YWx1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OyAgICAgIAorICAgIH0KKworICAgIHB1YmxpYyBFbnVtZXJhdGlvbiBrZXlzKCkgeworICAgICAgICByZXR1cm4gdGFibGUua2V5cygpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgRW51bWVyYXRpb24gZWxlbWVudHMoKSB7CisgICAgICAgIHJldHVybiB0YWJsZS5lbGVtZW50cygpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBQb3NpeENoYXJNYXAgbWFwMSA9IG5ldyBQb3NpeENoYXJNYXAoCisgICAgICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxDaGFyTWFwcyIsCisgICAgICAgICAgICAgICAgIklCTS0xMTI5LlVQTUFQMTAwLnR4dCIpOworICAgICAgICAgICAgbWFwMS5zd2FwKCk7CisgICAgICAgICAgICBtYXAxLmR1bXAoU3lzdGVtLm91dCk7CisgICAgICAgIAorICAgICAgICAgICAgU3ltYm9sVHJhbnNpdGlvbi5zZXRDaGFyTWFwKG1hcDEpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7IFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICAKKyAgICAgICAgICAgIC8vUG9zaXhDaGFyTWFwIG1hcCA9IG5ldyBQb3NpeENoYXJNYXAoIkM6XFxwcm9qZWN0c1xcZGF0YVxcSVNPLTg4NTktMS5odG1sIik7CisgICAgICAgICAgICBQb3NpeENoYXJNYXAgbWFwID0gbmV3IFBvc2l4Q2hhck1hcCgKKyAgICAgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXENoYXJNYXBzIiwKKyAgICAgICAgICAgICAgICAiaWJtMTEyOS50eHQiKTsKKyAgICAgICAgICAgIG1hcC5kdW1wKFN5c3RlbS5vdXQpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZSk7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1Bvc2l4Q29sbGF0aW9uQnVpbGRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Qb3NpeENvbGxhdGlvbkJ1aWxkZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jMTEyYWIzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Qb3NpeENvbGxhdGlvbkJ1aWxkZXIuamF2YQpAQCAtMCwwICsxLDM1MCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Qb3NpeENvbGxhdGlvbkJ1aWxkZXIuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNTozMCAkIAorICogJFJldmlzaW9uOiAxLjIgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworY2xhc3MgUG9zaXhDb2xsYXRpb25CdWlsZGVyIHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFYX1dFSUdIVFMgPSA0OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNQVhfQ09NUE9TSVRJT04gPSA0OworICAgIHByaXZhdGUgc3RhdGljIGludCBuZXh0Q2hhck51bWJlciA9IDE7CisgICAgcHJpdmF0ZSBIYXNodGFibGUgd2VpZ2h0U3ltYm9scyA9IG5ldyBIYXNodGFibGUoKTsKKyAgICBwcml2YXRlIEhhc2h0YWJsZSBjb250cmFjdGlvbnMgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgcHJpdmF0ZSBIYXNodGFibGUgcnVsZXMgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgcHJpdmF0ZSBDb2xsYXRpb25SdWxlIGxhc3RSdWxlID0gbnVsbDsKKyAgICBwcml2YXRlIFBvc2l4Q2hhck1hcCBtYXA7CisgICAgcHJpdmF0ZSBTb3J0ZWRWZWN0b3Igb3JkZXI7CisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IEZJUlNUX1dFSUdIVF9DSEFSID0gMHgwMDAwRjdGRjsKKyAgICBwcml2YXRlIGludCBuZXh0V2VpZ2h0Q2hhciA9IEZJUlNUX1dFSUdIVF9DSEFSOworICAgIHByaXZhdGUgQ29sbGF0aW9uUnVsZSBpZ25vcmVSdWxlOyAgIC8vcnVsZSBmb3IgdGhlIGNvbGxhdGluZy1zeW1ib2wgSUdOT1JFCisgICAgCisgICAgcHVibGljIGNsYXNzIENvbGxhdGlvblJ1bGUgeworICAgICAgICBpbnQgY2hhck51bWJlcjsKKyAgICAgICAgU3RyaW5nIHZhbHVlOworICAgICAgICBpbnQgbmV4dFdlaWdodCA9IDA7CisgICAgICAgIFN0cmluZ1tdIHdlaWdodFNvdXJjZSA9IG5ldyBTdHJpbmdbTUFYX1dFSUdIVFNdOworICAgICAgICBpbnQgd2VpZ2h0W11bXSA9IG51bGw7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzb3VyY2UgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgQ29sbGF0aW9uUnVsZShTdHJpbmcgc3ltYm9sKSB7CisgICAgICAgICAgICBjaGFyTnVtYmVyPSBuZXh0Q2hhck51bWJlcisrOworICAgICAgICAgICAgdmFsdWUgPSBzeW1ib2w7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE1BWF9XRUlHSFRTOyBpKyspIHsKKyAgICAgICAgICAgICAgICB3ZWlnaHRTb3VyY2VbaV0gPSBzeW1ib2w7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzb3VyY2UuYXBwZW5kKG1hcC5iYWNrbWFwVmFsdWUoc3ltYm9sKSk7CisgICAgICAgICAgICBzb3VyY2UuYXBwZW5kKCJcdFx0Iik7CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBDb2xsYXRpb25SdWxlKENvbGxhdGlvblJ1bGUgb3RoZXIsIGludCBjb21wb3NpdGlvbikgeworICAgICAgICAgICAgY2hhck51bWJlciA9IG90aGVyLmNoYXJOdW1iZXI7CisgICAgICAgICAgICB2YWx1ZSA9IG90aGVyLnZhbHVlOworICAgICAgICAgICAgbmV4dFdlaWdodCA9IG90aGVyLm5leHRXZWlnaHQ7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE1BWF9XRUlHSFRTOyBpKyspIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgc291cmNlID0gb3RoZXIud2VpZ2h0U291cmNlW2ldOworICAgICAgICAgICAgICAgIGlmIChzb3VyY2UubGVuZ3RoKCkgPiBjb21wb3NpdGlvbikgeworICAgICAgICAgICAgICAgICAgICB3ZWlnaHRTb3VyY2VbaV0gPSAiIitzb3VyY2UuY2hhckF0KGNvbXBvc2l0aW9uKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB3ZWlnaHRTb3VyY2VbaV0gPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAvL0hleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yIG15VHJhbnNsaXQgPSBuZXcgSGV4VG9Vbmljb2RlVHJhbnNsaXRlcmF0b3IoIjxVIyMjMD4iKTsKKyAgICAgICAgcHVibGljIHZvaWQgYWRkV2VpZ2h0KFN0cmluZyBzeW1ib2wpIHsKKyAgICAgICAgIC8vICAgUmVwbGFjZWFibGVTdHJpbmcgdFN5bWJvbCA9IG5ldyBSZXBsYWNlYWJsZVN0cmluZyhzeW1ib2wpOworICAgICAgICAgICAvLyBteVRyYW5zbGl0LnRyYW5zbGl0ZXJhdGUodFN5bWJvbCk7CisgICAgICAgICAgICAgICAgLy9saW1pdCB0aGUgc2l6ZSBvZiBhIHNpbmdsZSB3ZWlnaHQKKyAgICAgICAgICAgIGlmIChzeW1ib2wubGVuZ3RoKCkgPiBNQVhfQ09NUE9TSVRJT04pIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIldBUk5JTkc6IFdlaWdodHMgb2YgY29tcG9zaXRpb24gZ3JlYXRlciB0aGFuICIrTUFYX0NPTVBPU0lUSU9OKyIgd2VyZSB0cnVuY2F0ZWQuIik7CisgICAgICAgICAgICAgICAgc3ltYm9sID0gc3ltYm9sLnN1YnN0cmluZygwLCBNQVhfQ09NUE9TSVRJT04pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vbGltaXQgdGhlIG51bWJlciBvZiB3ZWlnaHRzCisgICAgICAgICAgICBpZiAobmV4dFdlaWdodCA8IE1BWF9XRUlHSFRTKSB7CisgICAgICAgICAgICAgICAgaWYgKG5leHRXZWlnaHQgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5hcHBlbmQoIjsiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzeW1ib2wubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBzb3VyY2UuYXBwZW5kKG1hcC5iYWNrbWFwVmFsdWUoIiIrc3ltYm9sLmNoYXJBdChpKSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB3ZWlnaHRTb3VyY2VbbmV4dFdlaWdodCsrXSA9IHN5bWJvbDsKKyAgICAgICAgICAgICAgICB3ZWlnaHQgPSBudWxsOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZShDb2xsYXRpb25SdWxlIG90aGVyKSB7CisgICAgICAgICAgICBpZiAob3RoZXIgPT0gbnVsbCkgcmV0dXJuIGNvbXBhcmUoaWdub3JlUnVsZSk7CisgICAgICAgICAgICByZXNvbHZlV2VpZ2h0cygpOworICAgICAgICAgICAgb3RoZXIucmVzb2x2ZVdlaWdodHMoKTsKKyAgICAgICAgICAgIGludCBjb21wYXJlU2l6ZSA9IE1hdGgubWluKGdldFNpemUoKSwgb3RoZXIuZ2V0U2l6ZSgpKTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgY29tcGFyZVNpemU7IGorKykgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTUFYX1dFSUdIVFM7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBpbnQgZGlmZiA9IHdlaWdodFtqXVtpXSAtIG90aGVyLndlaWdodFtqXVtpXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGRpZmYgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLShpKzEpOworICAgICAgICAgICAgICAgICAgICB9IGlmIChkaWZmID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGkrMTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBnZXRTaXplKCkgLSBvdGhlci5nZXRTaXplKCk7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXNNdWx0aVdlaWdodCgpIHsKKyAgICAgICAgICAgIHJldHVybiBnZXRTaXplKCkgPiAxOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBpbnQgZ2V0U2l6ZSgpIHsKKyAgICAgICAgICAgIGludCBzaXplID0gMDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgd2VpZ2h0U291cmNlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgc2l6ZSA9IE1hdGgubWF4KHNpemUsIHdlaWdodFNvdXJjZVtpXS5sZW5ndGgoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gc2l6ZTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgQ29sbGF0aW9uUnVsZSBnZXRDb21wb25lbnQoaW50IG5keCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBDb2xsYXRpb25SdWxlKHRoaXMsIG5keCk7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRWYWx1ZSgpIHsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldFN5bWJvbCgpIHsKKyAgICAgICAgICAgIFN0cmluZyBuZXdWYWx1ZSA9IGlzQ29udHJhY3Rpb24oKTsKKyAgICAgICAgICAgIGlmIChuZXdWYWx1ZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ld1ZhbHVlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IGlzV2VpZ2h0U3ltYm9sKCk7CisgICAgICAgICAgICAgICAgaWYgKG5ld1ZhbHVlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ld1ZhbHVlOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRTb3VyY2UoKSB7CisgICAgICAgICAgICByZXR1cm4gc291cmNlLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgaXNDb250cmFjdGlvbigpIHsKKyAgICAgICAgICAgIHJldHVybiAoU3RyaW5nKWNvbnRyYWN0aW9ucy5nZXQodmFsdWUpOworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgU3RyaW5nIGlzV2VpZ2h0U3ltYm9sKCkgeworICAgICAgICAgICAgcmV0dXJuIChTdHJpbmcpd2VpZ2h0U3ltYm9scy5nZXQodmFsdWUpOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBDb2xsYXRpb25SdWxlIHNlZWtzVG9SdWxlKCkgeworICAgICAgICAgICAgQ29sbGF0aW9uUnVsZSBjb21wOworICAgICAgICAgICAgaWYgKGdldFNpemUoKSA8PSAxKSB7CisgICAgICAgICAgICAgICAgY29tcCA9IHRoaXM7ICAgIC8vc2F2ZSBhbiBvYmplY3QgY3JlYXRpb24KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY29tcCA9IGdldENvbXBvbmVudCgwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBuZHggPSBvcmRlci5pbmRleE9mKGNvbXApOworICAgICAgICAgICAgaWYgKG5keCA9PSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIENvbGxhdGlvblJ1bGUgZXhwOworICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgZXhwID0gKENvbGxhdGlvblJ1bGUpb3JkZXIuZWxlbWVudEF0KG5keC0tKTsKKyAgICAgICAgICAgICAgICB9IHdoaWxlIChuZHggPiAwICYmIGV4cC5nZXRTaXplKCkgPiAxKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZXhwOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0RXhwYW5zaW9uKCkgeworICAgICAgICAgICAgaWYgKGdldFNpemUoKSA8PSAxKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBleHBhbnNpb24gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBnZXRTaXplKCk7IGorKykgeworICAgICAgICAgICAgICAgICAgICBDb2xsYXRpb25SdWxlIGNvbXAgPSBnZXRDb21wb25lbnQoaik7CisgICAgICAgICAgICAgICAgICAgIGludCBuZHggPSBvcmRlci5pbmRleE9mKGNvbXApOworICAgICAgICAgICAgICAgICAgICBDb2xsYXRpb25SdWxlIGV4cDsKKyAgICAgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICAgICAgZXhwID0gKENvbGxhdGlvblJ1bGUpb3JkZXIuZWxlbWVudEF0KG5keC0tKTsKKyAgICAgICAgICAgICAgICAgICAgfSB3aGlsZSAobmR4ID49IDAgJiYgZXhwLmdldFNpemUoKSA+IDEpOworICAgICAgICAgICAgICAgICAgICBleHBhbnNpb24uYXBwZW5kKGV4cC5nZXRTeW1ib2woKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBleHBhbnNpb24udG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgcmV0dXJuIHNvdXJjZS50b1N0cmluZygpOworLyogICAgICAgICAgcmVzb2x2ZVdlaWdodHMoKTsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBidWYuYXBwZW5kKGNoYXJOdW1iZXIpOworICAgICAgICAgICAgYnVmLmFwcGVuZCgnICcpOworICAgICAgICAgICAgYnVmLmFwcGVuZCh2YWx1ZSk7CisgICAgICAgICAgICBidWYuYXBwZW5kKCcgJyk7CisgICAgICAgICAgICBidWYuYXBwZW5kKGdldFN5bWJvbCgpKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJyAnKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoKGlzV2VpZ2h0U3ltYm9sKCkgIT0gbnVsbCk/IlciOiIgIik7CisgICAgICAgICAgICBidWYuYXBwZW5kKCcgJyk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE1BWF9XRUlHSFRTOyBpKyspIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKHdlaWdodFNvdXJjZVtpXSk7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnICcpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBnZXRTaXplKCk7IGkrKykgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIlsgIik7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBNQVhfV0VJR0hUUzsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgIGludCB3ID0gd2VpZ2h0W2ldW2pdOworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKHcpOworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCcgJyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJ10nKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyovCisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSB2b2lkIHJlc29sdmVXZWlnaHRzKCkgeworICAgICAgICAgICAgaWYgKHdlaWdodCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgd2VpZ2h0ID0gbmV3IGludFtNQVhfQ09NUE9TSVRJT05dW01BWF9XRUlHSFRTXTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IE1BWF9XRUlHSFRTOyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHN5bWJvbCA9IHdlaWdodFNvdXJjZVtqXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN5bWJvbC5sZW5ndGgoKSA8PSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB3ZWlnaHRbMF1bal0gPSBvcmRpbmFsaXR5T2Yoc3ltYm9sKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHN5bWJvbC5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBjID0gc3ltYm9sLmNoYXJBdChpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWlnaHRbaV1bal0gPSBvcmRpbmFsaXR5T2YoIiIrYyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIFBvc2l4Q29sbGF0aW9uQnVpbGRlcihQb3NpeENoYXJNYXAgbWFwKSB7CisgICAgICAgIHRoaXMubWFwID0gbWFwOworICAgICAgICBTdHJpbmcgaWdub3JlU3ltYm9sID0gZGVmaW5lV2VpZ2h0U3ltYm9sKCJJR05PUkUiKTsKKyAgICAgICAgaWdub3JlUnVsZSA9IG5ldyBDb2xsYXRpb25SdWxlKGlnbm9yZVN5bWJvbCk7CisgICAgICAgIHJ1bGVzLnB1dChpZ25vcmVTeW1ib2wsIGlnbm9yZVJ1bGUpOworICAgICAgICBsYXN0UnVsZSA9IGlnbm9yZVJ1bGU7CisgICAgICAgICAgICAvL3t7SU5JVF9DT05UUk9MUworCQkvL319Cit9CisKKyAgICBwdWJsaWMgU3RyaW5nIGRlZmluZVdlaWdodFN5bWJvbChTdHJpbmcgc3ltYm9sKSB7CisgICAgICAgIG9yZGVyID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIGMgPSBuZXh0RnJlZVdlaWdodENoYXIoKTsKKyAgICAgICAgbWFwLmRlZmluZU1hcHBpbmcoc3ltYm9sLCBjKTsKKyAgICAgICAgd2VpZ2h0U3ltYm9scy5wdXQoYywgc3ltYm9sKTsKKyAgICAgICAgd2VpZ2h0U3ltYm9scy5wdXQoc3ltYm9sLCBjKTsKKyAgICAgICAgcmV0dXJuIGM7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgZGVmaW5lQ29udHJhY3Rpb24oU3RyaW5nIHN5bWJvbCwgU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIG9yZGVyID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIGMgPSBuZXh0RnJlZVdlaWdodENoYXIoKTsKKyAgICAgICAgbWFwLmRlZmluZU1hcHBpbmcoc3ltYm9sLCBjKTsKKyAgICAgICAgY29udHJhY3Rpb25zLnB1dChjLCB2YWx1ZSk7CisgICAgICAgIHJldHVybiBjOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBuZXh0RnJlZVdlaWdodENoYXIoKSB7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSAiIjsKKyAgICAgICAgU3RyaW5nIG1hcHBlZFNvdXJjZTsKKyAgICAgICAgZG8geworICAgICAgICAgICAgcmVzdWx0ID0gIiIrKGNoYXIpbmV4dFdlaWdodENoYXItLTsKKyAgICAgICAgICAgIG1hcHBlZFNvdXJjZSA9IG1hcC5iYWNrbWFwVmFsdWUocmVzdWx0KTsKKyAgICAgICAgfSB3aGlsZSAocmVzdWx0ICE9IG1hcHBlZFNvdXJjZSk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBpbnQgb3JkaW5hbGl0eU9mKFN0cmluZyBzeW1ib2wpIHsKKy8vICAgICAgICBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvciBuZXdUcmFuc2xpdCA9IG5ldyBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvcigpOworLy8gICAgICAgIFJlcGxhY2VhYmxlU3RyaW5nIHRTeW1ib2wgPSBuZXcgUmVwbGFjZWFibGVTdHJpbmcoc3ltYm9sKTsKKy8vICAgICAgICBuZXdUcmFuc2xpdC50cmFuc2xpdGVyYXRlKHRTeW1ib2wpOworICAgICAgICBDb2xsYXRpb25SdWxlIHcgPSAoQ29sbGF0aW9uUnVsZSlydWxlcy5nZXQoc3ltYm9sKTsKKyAgICAgICAgaWYgKHcgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIHcuY2hhck51bWJlcjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnQoIkVSUk9SOiBXZWlnaHQgc3ltYm9sIG5vdCBmb3VuZDogIik7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMCA7IGkgPCBzeW1ib2wubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgICAgIGNoYXIgYyA9IHN5bWJvbC5jaGFyQXQoaSk7CisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludCgiXFx1Iik7CisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludChIRVhfRElHSVRbKGMgJiAweDBGMDAwKSA+PiAxMl0pOyAvLyBIRVhfRElHSVQgd29ya3MgZm9yIG9jdGFsCisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludChIRVhfRElHSVRbKGMgJiAweDBGMDApID4+IDhdKTsgLy8gSEVYX0RJR0lUIHdvcmtzIGZvciBvY3RhbAorICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnQoSEVYX0RJR0lUWyhjICYgMHgwMEYwKSA+PiA0XSk7CisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKEhFWF9ESUdJVFsoYyAmIDB4MDAwRildKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiICAgICAgIFdlaWdodCBnaXZlbiBtYXhpbXVtIHBvc3NpYmxlIHZhbHVlLiIpOworICAgICAgICAgICAgcmV0dXJuIEludGVnZXIuTUFYX1ZBTFVFOworICAgICAgICB9CisgICAgfQorLy8gICAgSGV4VG9Vbmljb2RlVHJhbnNsaXRlcmF0b3IgbXlUcmFuc2xpdCA9IG5ldyBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvcigiPFUjIyMwPiIpOworICAgIHB1YmxpYyB2b2lkIGFkZFJ1bGUoU3RyaW5nIHN5bWJvbCkgeworICAvLyAgICAgIFJlcGxhY2VhYmxlU3RyaW5nIHRTeW1ib2wgPSBuZXcgUmVwbGFjZWFibGVTdHJpbmcoc3ltYm9sKTsKKyAgIC8vICAgICBteVRyYW5zbGl0LnRyYW5zbGl0ZXJhdGUodFN5bWJvbCk7CisgICAgICAgIGlmIChzeW1ib2wubGVuZ3RoKCkgPiAxKSB7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIldBUk5JTkc6IFVuZGVmaW5lZCBlbGVtZW50ICciK3N5bWJvbCsiJy4gIGNvbGxhdGluZy1zeW1ib2wgZ2VuZXJhdGVkLiIpOworICAgICAgICAgICAgc3ltYm9sID0gZGVmaW5lV2VpZ2h0U3ltYm9sKHN5bWJvbCk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgb3JkZXIgPSBudWxsOworICAgICAgICBsYXN0UnVsZSA9IG5ldyBDb2xsYXRpb25SdWxlKHN5bWJvbCk7CisgICAgICAgIHJ1bGVzLnB1dChzeW1ib2wsIGxhc3RSdWxlKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgYWRkUnVsZShDb2xsYXRpb25SdWxlIHJ1bGUpIHsKKyAgICAgICAgb3JkZXIgPSBudWxsOworICAgICAgICBsYXN0UnVsZSA9IHJ1bGU7CisgICAgICAgIHJ1bGVzLnB1dChydWxlLnZhbHVlLCBydWxlKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgYWRkV2VpZ2h0KFN0cmluZyB3ZWlnaHQpIHsKKyAgICAgICAgaWYgKHdlaWdodC5sZW5ndGgoKSA+IDEpIHsKKyAgICAgICAgICAgIC8vY2hlY2sgdG8gc2VlIGlmIGl0J3MgYSBib2d1cyB3ZWlnaHQgc3ltYm9sLgorICAgICAgICAgICAgd2VpZ2h0ID0gbWFwLm1hcEtleSh3ZWlnaHQpOworICAgICAgICB9CisgICAgICAgIG9yZGVyID0gbnVsbDsKKyAgICAgICAgbGFzdFJ1bGUuYWRkV2VpZ2h0KHdlaWdodCk7CisgICAgfQorCisgICAgcHVibGljIEVudW1lcmF0aW9uIGdldFJ1bGVzKCkgeworICAgICAgICByZXR1cm4gcnVsZXMuZWxlbWVudHMoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU29ydGVkVmVjdG9yIGdldFNvcnRPcmRlcigpIHsKKyAgICAgICAgaWYgKG9yZGVyID09IG51bGwpIHsKKyAgICAgICAgICAgIG9yZGVyID0gbmV3IFNvcnRlZFZlY3RvcigKKyAgICAgICAgICAgICAgICBuZXcgQ29tcGFyYXRvcigpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVibGljIGludCBjb21wYXJlKGZpbmFsIE9iamVjdCBpLCBmaW5hbCBPYmplY3QgaikgeworICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgQ29sbGF0aW9uUnVsZSBvMSA9IChDb2xsYXRpb25SdWxlKWk7CisgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBDb2xsYXRpb25SdWxlIG8yID0gKENvbGxhdGlvblJ1bGUpajsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIGJvb2xlYW4gdzEgPSBvMS5pc1dlaWdodFN5bWJvbCgpICE9IG51bGw7CisgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBib29sZWFuIHcyID0gbzIuaXNXZWlnaHRTeW1ib2woKSAhPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vc29ydCB3ZWlnaHRzIGZpcnN0CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodzEgJiYgIXcyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghdzEgJiYgdzIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG8xLmNvbXBhcmUobzIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIG9yZGVyLmFkZEVsZW1lbnRzKHJ1bGVzLmVsZW1lbnRzKCkpOworICAgICAgICAgICAgICAgIC8vcmVtb3ZlIHdlaWdodCBzeW1ib2xzIGZyb20gdGhlIGxpc3QKKyAgICAgICAgICAgIGludCBpOworICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG9yZGVyLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgQ29sbGF0aW9uUnVsZSByID0gKENvbGxhdGlvblJ1bGUpb3JkZXIuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgICAgIGlmIChyLmlzV2VpZ2h0U3ltYm9sKCkgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvcmRlci5yZW1vdmVFbGVtZW50cygwLCBpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gb3JkZXI7CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIGNoYXJbXSBIRVhfRElHSVQgPSB7JzAnLCcxJywnMicsJzMnLCc0JywnNScsJzYnLCc3JywKKyAgICAgICAgICAgICAgICAgICAgICc4JywnOScsJ0EnLCdCJywnQycsJ0QnLCdFJywnRid9OworICAgIC8ve3tERUNMQVJFX0NPTlRST0xTCisJLy99fQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Qb3NpeFRvTmV1dHJhbENvbnZlcnRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Qb3NpeFRvTmV1dHJhbENvbnZlcnRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjZiYmIxNjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1Bvc2l4VG9OZXV0cmFsQ29udmVydGVyLmphdmEKQEAgLTAsMCArMSwxMjQ4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1Bvc2l4VG9OZXV0cmFsQ29udmVydGVyLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDU6MzEgJCAKKyAqICRSZXZpc2lvbjogMS4zICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS51dGlsLio7CisKK3B1YmxpYyBjbGFzcyBQb3NpeFRvTmV1dHJhbENvbnZlcnRlciBleHRlbmRzIExvY2FsZUNvbnZlcnRlciB7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIExDX0NUWVBFICAgICAgICAgICA9IDB4MDE7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIExDX1RJTUUgICAgICAgICAgICA9IDB4MDI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIExDX05VTUVSSUMgICAgICAgICA9IDB4MDQ7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIExDX01PTkVUQVJZICAgICAgICA9IDB4MDg7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIExDX01FU1NBR0VTICAgICAgICA9IDB4MTA7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIExDX01FQVNVUkVNRU5UICAgICA9IDB4MTE7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIExDX0FERFJFU1MgICAgICAgICA9IDB4MTI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIExDX1BBUEVSICAgICAgICAgICA9IDB4MTM7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIExDX05BTUUgICAgICAgICAgICA9IDB4MTQ7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIExDX0lERU5USUZJQ0FUSU9OICA9IDB4MTU7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIExDX1RFTEVQSE9ORSAgICAgICA9IDB4MTY7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvciBteVRyYW5zbGl0ID0gbmV3IEhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yKCk7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZVtdIG1hc2tzID0geyAKKyAgICAgICAgTENfQ1RZUEUsIExDX1RJTUUsIExDX05VTUVSSUMsIExDX01PTkVUQVJZLCBMQ19NRVNTQUdFUywKKyAgICAgICAgTENfTUVBU1VSRU1FTlQsTENfQUREUkVTUyxMQ19QQVBFUixMQ19OQU1FLExDX0lERU5USUZJQ0FUSU9OLAorICAgICAgICBMQ19URUxFUEhPTkUKKyAgICAgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdW10gcHJvcHMgPSB7CisgICAgICAgIC8vTENfQ1RZUEUKKyAgICAgICAgeyAKKyAgICAgICAgICAgICJ1cHBlciIsICJsb3dlciIsICJhbHBoYSIsICJkaWdpdCIsICJzcGFjZSIsICJjbnRybCIsIAorICAgICAgICAgICAgInB1bmN0IiwgImdyYXBoIiwgInByaW50IiwgInhkaWdpdCIsICJibGFuayIsIAorICAgICAgICAgICAgInRvdXBwZXIiLCAidG9sb3dlciIgCisgICAgICAgIH0sCisgICAgICAgIC8vTENfVElNRQorICAgICAgICB7CisgICAgICAgICAgICAiYWJkYXkiLCAiZGF5IiwgImFibW9uIiwgIm1vbiIsICJkX3RfZm10IiwgImRfZnRtIiwgInRfZm10IiwgCisgICAgICAgICAgICAiYW1fcG0iLCAidF9mbXRfYW1wbSIsICJlcmEiLCAiZXJhX3llYXIiLCAiZXJhX2RfZm10IiwgImFsdF9kaWdpdHMiCisgICAgICAgIH0sCisgICAgICAgIC8vTENfTlVNRVJJQworICAgICAgICB7CisgICAgICAgICAgICAiZGVjaW1hbF9wb2ludCIsICJ0aG91c2FuZHNfc2VwIiwgImdyb3VwaW5nIgorICAgICAgICB9LAorICAgICAgICAvL0xDX01PTkVUQVJZCisgICAgICAgIHsKKyAgICAgICAgICAgICJpbnRfY3Vycl9zeW1ib2wiLCAiY3VycmVuY3lfc3ltYm9sIiwgIm1vbl9kZWNpbWFsX3BvaW50IiwKKyAgICAgICAgICAgICJtb25fdGhvdXNhbmRzX3NlcCIsICJtb25fZ3JvdXBpbmciLCAicG9zaXRpdmVfc2lnbiIsCisgICAgICAgICAgICAibmVnYXRpdmVfc2lnbiIsICJpbnRfZnJhY19kaWdpdHMiLCAiZnJhY19kaWdpdHMiLCAicF9jc19wcmVjZWRlcyIsCisgICAgICAgICAgICAicF9zZXBfYnlfc3BhY2UiLCAibl9jc19wcmVjZWRlcyIsICJuX3NlcF9ieV9zcGFjZSIsICJwX3NpZ25fcG9zbiIsCisgICAgICAgIH0sCisgICAgICAgIC8vTENfTUVTU0FHRVMKKyAgICAgICAgeworICAgICAgICAgICAgInllc2V4cHIiLCAibm9leHByIgorICAgICAgICB9LAorICAgICAgICAgICAKKyAgICAgICAgLy9MQ19NRUFTVVJFTUVOVAorICAgICAgICB7CisgICAgICAgICAgICJtZWFzdXJlbWVudCIKKyAgICAgICAgfSwKKyAgICAgICAgLy9MQ19BRERSRVNTCisgICAgICAgIHsKKyAgICAgICAgICAgImNvcHkiLCJwb3N0YWxfZm10IiwiY291bnRyeV9uYW1lIiwiY291bnRyeV9wb3N0IiwKKyAgICAgICAgICAgImNvdW50cnlfYWIyIiwiY291bnRyeV9hYjMiLCJjb3VudHJ5X251bSIsImNvdW50cnlfY2FyIiwKKyAgICAgICAgICAgImNvdW50cnlfaXNibiIsImxhbmdfbmFtZSIsImxhbmdfYWIiLCJsYW5nX3Rlcm0iLCJsYW5nX2xpYiIKKyAgICAgICAgICAgIAorICAgICAgICB9LAorICAgICAgICAvL0xDX1BBUEVSCisgICAgICAgIHsKKyAgICAgICAgICAgICJoZWlnaHQiLCJ3aWR0aCIsImNvcHkiCisgICAgICAgIH0sCisgICAgICAgIC8vTENfTkFNRSAgICAgICAgCisgICAgICAgIHsKKyAgICAgICAgICAgICJjb3B5IiwibmFtZV9mbXQiLCJuYW1lX2dlbiIsIm5hbWVfbWlzcyIsIm5hbWVfbXIiLCJuYW1lX21ycyIsIm5hbWVfbXMiICAKKyAgICAgICAgfSwKKyAgICAgICAgLy9MQ19JREVOVElGSUNBVElPTgorICAgICAgICB7CisgICAgICAgICAgICAidGl0bGUiLCJzb3VyY2UiLCJhZGRyZXNzIiwiY29udGFjdCIsImVtYWlsIiwidGVsIiwiZmF4IiwibGFuZ3VhZ2UiLAorICAgICAgICAgICAgInRlcnJpdG9yeSIsInJldmlzaW9uICIsImRhdGUiICAgICAKKyAgICAgICAgfSwKKyAgICAgICAgLy9MQ19URUxFUEhPTkUKKyAgICAgICAgeworICAgICAgICAgICAgImNvcHkiLCJ0ZWxfaW50X2ZtdCIsInRlbF9kb21fZm10IiwiaW50X3NlbGVjdCIsImludF9wcmVmaXgiIAorICAgICAgICB9LAorICAgICAgICAKKyAgICAgICAgICAgIAorICAgIH07CisgICAgcHJpdmF0ZSBmaW5hbCBieXRlIGZsYWdzOworICAgIHByaXZhdGUgZmluYWwgTG9jYWxlIGxvY2FsZTsKKyAgICBwcml2YXRlIGZpbmFsIExvY2FsZSBwYXJlbnRMb2NhbGU7CisgICAgcHJpdmF0ZSBmaW5hbCBTdHJpbmcgc2ZpbGVOYW1lOworICAgIHB1YmxpYyBQb3NpeFRvTmV1dHJhbENvbnZlcnRlcihieXRlIGZsYWdzLCBmaW5hbCBMb2NhbGUgbG9jYWxlLGZpbmFsIFN0cmluZyBmaWxlTmFtZSkgeworICAgICAgICB0aGlzLmZsYWdzID0gZmxhZ3M7CisgICAgICAgIHRoaXMubG9jYWxlID0gbG9jYWxlOworICAgICAgICB0aGlzLnNmaWxlTmFtZT1maWxlTmFtZTsKKyAgICAgICAgbXlUcmFuc2xpdC5hcHBseVBhdHRlcm4oIjxVIyMjMD4iKTsKKyAgICAgICAgU3RyaW5nIGxhbmd1YWdlID0gbG9jYWxlLmdldExhbmd1YWdlKCk7CisgICAgICAgIFN0cmluZyBjb3VudHJ5ID0gbG9jYWxlLmdldENvdW50cnkoKTsKKyAgICAgICAgU3RyaW5nIHZhcmlhbnQgPSAiIjsKKyAgICAgICAgCisgICAgICAgIGludCBuZHggPSBsYW5ndWFnZS5pbmRleE9mKCdfJyk7CisgICAgICAgIGlmIChuZHggPj0gMCkgeworICAgICAgICAgICAgY291bnRyeSA9IGxhbmd1YWdlLnN1YnN0cmluZyhuZHgrMSk7CisgICAgICAgICAgICBsYW5ndWFnZSA9IGxhbmd1YWdlLnN1YnN0cmluZygwLCBuZHgpOworICAgICAgICB9CisgICAgICAgIG5keCA9IGNvdW50cnkuaW5kZXhPZignXycpOworICAgICAgICBpZiAobmR4ID49IDApIHsKKyAgICAgICAgICAgIHZhcmlhbnQgPSBjb3VudHJ5LnN1YnN0cmluZyhuZHgpOworICAgICAgICAgICAgY291bnRyeSA9IGNvdW50cnkuc3Vic3RyaW5nKDAsIG5keCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmICgiIi5lcXVhbHMoY291bnRyeSkpIHsKKyAgICAgICAgICAgIGxhbmd1YWdlID0gIiI7CisgICAgICAgICAgICB2YXJpYW50ID0gIiI7CisgICAgICAgIH0gZWxzZSBpZiAoIiIuZXF1YWxzKHZhcmlhbnQpKSB7CisgICAgICAgICAgICBjb3VudHJ5ID0gIiI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHBhcmVudExvY2FsZSA9IG5ldyBMb2NhbGUobGFuZ3VhZ2UsIGNvdW50cnksIHZhcmlhbnQpOworICAgICAgICAgICAgLy97e0lOSVRfQ09OVFJPTFMKKwkJLy99fQorICAgIH0KKworICAgIHByb3RlY3RlZCB2b2lkIGNvbnZlcnQoZmluYWwgSGFzaHRhYmxlIHJlc3VsdCwgZmluYWwgSGFzaHRhYmxlIHNvdXJjZSkgCisgICAgICAgICAgICB0aHJvd3MgQ29udmVyc2lvbkVycm9yIHsKKy8vICAgICAgICBjb252ZXJ0TUVTU0FHRVMocmVzdWx0LHNvdXJjZSk7CisgICAgICAgIHdyaXRlUG9zaXhDb21wRGF0YShyZXN1bHQsc291cmNlKTsKKyAgICAgICAgY29udmVydE1FQVNVUkVNRU5UKHJlc3VsdCwgc291cmNlKTsKKyAgICAgICAgY29udmVydENPVU5UUllOVU1CRVIocmVzdWx0LCBzb3VyY2UpOworICAgICAgICBjb252ZXJ0Q09VTlRSWUlTQk5OVU1CRVIocmVzdWx0LCBzb3VyY2UpOworICAgICAgICBjb252ZXJ0TEFOR1VBR0VMSUIocmVzdWx0LCBzb3VyY2UpOworICAgICAgICBjb252ZXJ0UEFQRVJTSVpFKHJlc3VsdCwgc291cmNlKTsKKyAgICAgICAgY29udmVydE1PTkVUQVJZKHJlc3VsdCwgc291cmNlKTsKKyAgICAgICAgY29udmVydE5VTUVSSUMocmVzdWx0LCBzb3VyY2UpOworICAgICAgICBjb252ZXJ0VElNRShyZXN1bHQsIHNvdXJjZSk7CisgICAgICAgIGNvbnZlcnRDT0xMQVRFKHJlc3VsdCwgc291cmNlKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtYXNrcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKChmbGFncyAmIG1hc2tzW2ldKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBwcm9wc1tpXS5sZW5ndGg7IGorKykgeworICAgICAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmcgcHJvcCA9IHByb3BzW2ldW2pdOworICAgICAgICAgICAgICAgICAgICBmaW5hbCBPYmplY3QgdmFsID0gc291cmNlLmdldChwcm9wKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhbCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRQdXQocmVzdWx0LCBwcm9wLCB2YWwpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyBTdHJpbmdbXVtdIGNsb25lMkRBcnIoU3RyaW5nW11bXXN0cjJEYXJyYXkpeworICAgICAgICBTdHJpbmdbXVtdIG5ld1N0cjJEQXJyID0gbmV3IFN0cmluZ1tzdHIyRGFycmF5Lmxlbmd0aF1bc3RyMkRhcnJheVswXS5sZW5ndGhdOyAKKyAgICAgICAgZm9yKGludCBpPTA7IGk8c3RyMkRhcnJheS5sZW5ndGg7aSsrKXsKKyAgICAgICAgICAgIGZvcihpbnQgaj0wOyBqPHN0cjJEYXJyYXlbaV0ubGVuZ3RoO2orKyl7CisgICAgICAgICAgICAgICAgbmV3U3RyMkRBcnJbaV1bal0gPSBuZXcgU3RyaW5nKHN0cjJEYXJyYXlbaV1bal0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXdTdHIyREFycjsgICAgICAgICAgIAorICAgIH0KKyAgICBwdWJsaWMgT2JqZWN0W11bXSBjbG9uZTJEQXJyKE9iamVjdFtdW11zdHIyRGFycmF5KXsKKyAgICAgICAgT2JqZWN0W11bXSBuZXdTdHIyREFyciA9IG5ldyBPYmplY3Rbc3RyMkRhcnJheS5sZW5ndGhdW3N0cjJEYXJyYXlbMF0ubGVuZ3RoXTsgCisgICAgICAgIGZvcihpbnQgaT0wOyBpPHN0cjJEYXJyYXkubGVuZ3RoO2krKyl7CisgICAgICAgICAgICBmb3IoaW50IGo9MDsgajxzdHIyRGFycmF5W2ldLmxlbmd0aDtqKyspeworICAgICAgICAgICAgICAgIG5ld1N0cjJEQXJyW2ldW2pdID0gKE9iamVjdCkobmV3IFN0cmluZygoU3RyaW5nKXN0cjJEYXJyYXlbaV1bal0pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3U3RyMkRBcnI7ICAgICAgICAgICAKKyAgICB9CisgICAgcHVibGljIHZvaWQgd3JpdGVQb3NpeENvbXBEYXRhKGZpbmFsIEhhc2h0YWJsZSByZXN1bHQsIGZpbmFsIEhhc2h0YWJsZSBzb3VyY2UpeyAgICAgICAgCisgICAgICAgICAgIAorCisgICAgICAgICAgICBjbGFzcyBEdW1wUG9zaXhEYXRheworICAgICAgICAgICAgICAgICAgICBGaWxlT3V0cHV0U3RyZWFtIG91dEZpbGU7CisgICAgICAgICAgICAgICAgICAgIElDVUxvY2FsZVdyaXRlciBteUxvY2FsZVdyaXRlcjsKKyAgICAgICAgICAgICAgICAgICAgcHVibGljIER1bXBQb3NpeERhdGEoU3RyaW5nIGZpbGVOYW1lKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRGaWxlID0gbmV3IEZpbGVPdXRwdXRTdHJlYW0oZmlsZU5hbWUuY29uY2F0KCJfUENELnR4dCIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBteUxvY2FsZVdyaXRlcj1uZXcgSUNVTG9jYWxlV3JpdGVyKG5ldyBQcmludFN0cmVhbSgoT3V0cHV0U3RyZWFtKW91dEZpbGUpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoKGphdmEuaW8uSU9FeGNlcHRpb24gZSl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJGaWxlIG5vdCBmb3VuZFxuXG5cbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIHByaXZhdGUgdm9pZCB3cml0ZVBvc2l4Q29tcERhdGEoZmluYWwgSGFzaHRhYmxlIHJlc3VsdEhhc2gsIGZpbmFsIEhhc2h0YWJsZSBzb3VyY2UsIFN0cmluZyBmaWxlTmFtZSl7CisgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0TUVTU0FHRVMocmVzdWx0SGFzaCxzb3VyY2UpOworICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydElERU5USUZJQ0FUSU9OKHJlc3VsdEhhc2gsc291cmNlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnROQU1FRk9STUFUKHJlc3VsdEhhc2gsc291cmNlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnRBRERSRVNTRk9STUFUKHJlc3VsdEhhc2gsc291cmNlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnRURUxFUEhPTkVGT1JNQVQocmVzdWx0SGFzaCxzb3VyY2UpOworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGV1cm9WYXIgPSBsb2NhbGUuZ2V0VmFyaWFudCgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYoZXVyb1Zhci5lcXVhbHMoIiIpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBldXJvVmFyID0gIlBDRCI7CisgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBldXJvVmFyPWV1cm9WYXIuY29uY2F0KCJfUENEIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsZSBteUxvY2FsZSA9IG5ldyBMb2NhbGUobG9jYWxlLmdldExhbmd1YWdlKCksbG9jYWxlLmdldENvdW50cnkoKSxldXJvVmFyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG15TG9jYWxlV3JpdGVyLndyaXRlKG15TG9jYWxlLCByZXN1bHRIYXNoKTsgIAorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBwcml2YXRlIHZvaWQgY29udmVydE1FU1NBR0VTKGZpbmFsIEhhc2h0YWJsZSByZXN1bHQsIGZpbmFsIEhhc2h0YWJsZSBzb3VyY2UpeworICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgU3RyaW5nW11bXURFRkFVTFRfTUVTU0FHRVMgPSAoU3RyaW5nW11bXSkgZ2V0RGVmYXVsdCgiTWVzc2FnZXMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIFN0cmluZ1tdW10gbXlNZXNzYWdlcyA9IGNsb25lMkRBcnIoREVGQVVMVF9NRVNTQUdFUyk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9KFN0cmluZykgc291cmNlLmdldCgieWVzZXhwciIpOworICAgICAgICAgICAgICAgICAgICAgICAgUmVwbGFjZWFibGVTdHJpbmcgdGVtcCA9bmV3IFJlcGxhY2VhYmxlU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZih2YWx1ZSE9bnVsbCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcC5yZXBsYWNlKDAsdGVtcC5sZW5ndGgoKSx2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlUcmFuc2xpdC50cmFuc2xpdGVyYXRlKHRlbXApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15TWVzc2FnZXNbMF1bMV0gPSB0ZW1wLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IChTdHJpbmcpIHNvdXJjZS5nZXQoIm5vZXhwciIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYodmFsdWUgIT0gbnVsbCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcC5yZXBsYWNlKDAsdGVtcC5sZW5ndGgoKSx2YWx1ZSk7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15VHJhbnNsaXQudHJhbnNsaXRlcmF0ZSh0ZW1wKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBteU1lc3NhZ2VzWzFdWzFdID0gdGVtcC50b1N0cmluZygpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRQdXQocmVzdWx0LCJNZXNzYWdlcyIsbXlNZXNzYWdlcyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcHJpdmF0ZSB2b2lkIGNvbnZlcnRJREVOVElGSUNBVElPTihmaW5hbCBIYXNodGFibGUgcmVzdWx0LCBmaW5hbCBIYXNodGFibGUgc291cmNlKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIFN0cmluZ1tdW11ERUZBVUxUX01FU1NBR0VTID0gKFN0cmluZ1tdW10pIGdldERlZmF1bHQoIklkZW50aWZpY2F0aW9uIik7CisgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmdbXVtdIG15SWRlbnRpZmljYXRpb24gPSBjbG9uZTJEQXJyKERFRkFVTFRfTUVTU0FHRVMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0oU3RyaW5nKSBzb3VyY2UuZ2V0KCJ0aXRsZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgUmVwbGFjZWFibGVTdHJpbmcgdGVtcCA9bmV3IFJlcGxhY2VhYmxlU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZih2YWx1ZSE9bnVsbCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcC5yZXBsYWNlKDAsdGVtcC5sZW5ndGgoKSx2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlUcmFuc2xpdC50cmFuc2xpdGVyYXRlKHRlbXApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15SWRlbnRpZmljYXRpb25bMF1bMV0gPSB0ZW1wLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IChTdHJpbmcpIHNvdXJjZS5nZXQoInNvdXJjZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYodmFsdWUgIT0gbnVsbCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcC5yZXBsYWNlKDAsdGVtcC5sZW5ndGgoKSx2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlUcmFuc2xpdC50cmFuc2xpdGVyYXRlKHRlbXApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15SWRlbnRpZmljYXRpb25bMV1bMV0gPSB0ZW1wLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IChTdHJpbmcpIHNvdXJjZS5nZXQoImFkZHJlc3MiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKHZhbHVlICE9IG51bGwpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXAucmVwbGFjZSgwLHRlbXAubGVuZ3RoKCksdmFsdWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15VHJhbnNsaXQudHJhbnNsaXRlcmF0ZSh0ZW1wKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBteUlkZW50aWZpY2F0aW9uWzJdWzFdID0gdmFsdWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IChTdHJpbmcpIHNvdXJjZS5nZXQoImNvbnRhY3QiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKHZhbHVlICE9IG51bGwpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXAucmVwbGFjZSgwLHRlbXAubGVuZ3RoKCksdmFsdWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15VHJhbnNsaXQudHJhbnNsaXRlcmF0ZSh0ZW1wKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBteUlkZW50aWZpY2F0aW9uWzNdWzFdID0gdGVtcC50b1N0cmluZygpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAoU3RyaW5nKSBzb3VyY2UuZ2V0KCJlbWFpbCIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYodmFsdWUgIT0gbnVsbCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcC5yZXBsYWNlKDAsdGVtcC5sZW5ndGgoKSx2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlUcmFuc2xpdC50cmFuc2xpdGVyYXRlKHRlbXApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15SWRlbnRpZmljYXRpb25bNF1bMV0gPSB0ZW1wLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IChTdHJpbmcpIHNvdXJjZS5nZXQoInRlbCIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYodmFsdWUgIT0gbnVsbCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcC5yZXBsYWNlKDAsdGVtcC5sZW5ndGgoKSx2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlUcmFuc2xpdC50cmFuc2xpdGVyYXRlKHRlbXApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15SWRlbnRpZmljYXRpb25bNV1bMV0gPSB0ZW1wLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gKFN0cmluZykgc291cmNlLmdldCgiZmF4Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZih2YWx1ZSAhPSBudWxsKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wLnJlcGxhY2UoMCx0ZW1wLmxlbmd0aCgpLHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBteVRyYW5zbGl0LnRyYW5zbGl0ZXJhdGUodGVtcCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlJZGVudGlmaWNhdGlvbls2XVsxXSA9IHRlbXAudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gKFN0cmluZykgc291cmNlLmdldCgibGFuZ3VhZ2UiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKHZhbHVlICE9IG51bGwpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXAucmVwbGFjZSgwLHRlbXAubGVuZ3RoKCksdmFsdWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15VHJhbnNsaXQudHJhbnNsaXRlcmF0ZSh0ZW1wKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBteUlkZW50aWZpY2F0aW9uWzddWzFdID0gdGVtcC50b1N0cmluZygpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAoU3RyaW5nKSBzb3VyY2UuZ2V0KCJ0ZXJyaXRvcnkiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKHZhbHVlICE9IG51bGwpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXAucmVwbGFjZSgwLHRlbXAubGVuZ3RoKCksdmFsdWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15VHJhbnNsaXQudHJhbnNsaXRlcmF0ZSh0ZW1wKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBteUlkZW50aWZpY2F0aW9uWzhdWzFdID0gdGVtcC50b1N0cmluZygpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAoU3RyaW5nKSBzb3VyY2UuZ2V0KCJhdWRpZW5jZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYodmFsdWUgIT0gbnVsbCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcC5yZXBsYWNlKDAsdGVtcC5sZW5ndGgoKSx2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlUcmFuc2xpdC50cmFuc2xpdGVyYXRlKHRlbXApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15SWRlbnRpZmljYXRpb25bOV1bMV0gPSB0ZW1wLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gKFN0cmluZykgc291cmNlLmdldCgiYXBwbGljYXRpb24iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKHZhbHVlICE9IG51bGwpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXAucmVwbGFjZSgwLHRlbXAubGVuZ3RoKCksdmFsdWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15VHJhbnNsaXQudHJhbnNsaXRlcmF0ZSh0ZW1wKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBteUlkZW50aWZpY2F0aW9uWzEwXVsxXSA9IHRlbXAudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gKFN0cmluZykgc291cmNlLmdldCgiYWJicmV2aWF0aW9uIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZih2YWx1ZSAhPSBudWxsKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wLnJlcGxhY2UoMCx0ZW1wLmxlbmd0aCgpLHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBteVRyYW5zbGl0LnRyYW5zbGl0ZXJhdGUodGVtcCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlJZGVudGlmaWNhdGlvblsxMV1bMV0gPSB0ZW1wLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IChTdHJpbmcpIHNvdXJjZS5nZXQoInJldmlzaW9uIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZih2YWx1ZSAhPSBudWxsKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wLnJlcGxhY2UoMCx0ZW1wLmxlbmd0aCgpLHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBteVRyYW5zbGl0LnRyYW5zbGl0ZXJhdGUodGVtcCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlJZGVudGlmaWNhdGlvblsxMl1bMV0gPSB0ZW1wLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IChTdHJpbmcpIHNvdXJjZS5nZXQoImRhdGUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKHZhbHVlICE9IG51bGwpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXAucmVwbGFjZSgwLHRlbXAubGVuZ3RoKCksdmFsdWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15VHJhbnNsaXQudHJhbnNsaXRlcmF0ZSh0ZW1wKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBteUlkZW50aWZpY2F0aW9uWzEzXVsxXSA9IHRlbXAudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdFB1dChyZXN1bHQsIklkZW50aWZpY2F0aW9uIixteUlkZW50aWZpY2F0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBwcml2YXRlIHZvaWQgY29udmVydE5BTUVGT1JNQVQoZmluYWwgSGFzaHRhYmxlIHJlc3VsdCwgZmluYWwgSGFzaHRhYmxlIHNvdXJjZSl7CisgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmdbXVtdREVGQVVMVF9NRVNTQUdFUyA9IChTdHJpbmdbXVtdKSBnZXREZWZhdWx0KCJOYW1lRm9ybWF0Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmdbXVtdIG15TmFtZUZvcm1hdCA9IGNsb25lMkRBcnIoREVGQVVMVF9NRVNTQUdFUyk7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPShTdHJpbmcpIHNvdXJjZS5nZXQoIm5hbWVfbXIiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFJlcGxhY2VhYmxlU3RyaW5nIHRlbXAgPW5ldyBSZXBsYWNlYWJsZVN0cmluZygpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYodmFsdWUgIT0gbnVsbCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcC5yZXBsYWNlKDAsdGVtcC5sZW5ndGgoKSx2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlUcmFuc2xpdC50cmFuc2xpdGVyYXRlKHRlbXApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15TmFtZUZvcm1hdFsyXVsxXSA9IHRlbXAudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gKFN0cmluZykgc291cmNlLmdldCgibmFtZV9taXNzIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZih2YWx1ZSAhPSBudWxsKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wLnJlcGxhY2UoMCx0ZW1wLmxlbmd0aCgpLHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBteVRyYW5zbGl0LnRyYW5zbGl0ZXJhdGUodGVtcCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlOYW1lRm9ybWF0WzNdWzFdID0gdGVtcC50b1N0cmluZygpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAoU3RyaW5nKSBzb3VyY2UuZ2V0KCJuYW1lX21zIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZih2YWx1ZSAhPSBudWxsKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wLnJlcGxhY2UoMCx0ZW1wLmxlbmd0aCgpLHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBteVRyYW5zbGl0LnRyYW5zbGl0ZXJhdGUodGVtcCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlOYW1lRm9ybWF0WzZdWzFdID0gdGVtcC50b1N0cmluZygpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAoU3RyaW5nKSBzb3VyY2UuZ2V0KCJuYW1lX21ycyIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYodmFsdWUgIT0gbnVsbCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcC5yZXBsYWNlKDAsdGVtcC5sZW5ndGgoKSx2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlUcmFuc2xpdC50cmFuc2xpdGVyYXRlKHRlbXApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15TmFtZUZvcm1hdFs0XVsxXSA9IHRlbXAudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gKFN0cmluZykgc291cmNlLmdldCgibmFtZV9nZW5kZXIiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKHZhbHVlICE9IG51bGwpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXAucmVwbGFjZSgwLHRlbXAubGVuZ3RoKCksdmFsdWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15VHJhbnNsaXQudHJhbnNsaXRlcmF0ZSh0ZW1wKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBteU5hbWVGb3JtYXRbMV1bMV0gPSB0ZW1wLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IChTdHJpbmcpIHNvdXJjZS5nZXQoIm5hbWVfZm10Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZih2YWx1ZSAhPSBudWxsKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wLnJlcGxhY2UoMCx0ZW1wLmxlbmd0aCgpLHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBteVRyYW5zbGl0LnRyYW5zbGl0ZXJhdGUodGVtcCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIG15Q2hhcnM9IG5ldyBjaGFyWzEwMF07Ly8gPSB0ZW1wLnRvU3RyaW5nKCkuZ2V0Q2hhcnMoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wLmdldENoYXJzKDAsdGVtcC5sZW5ndGgoKSxteUNoYXJzLDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBteVN0cmluZz1uZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGkgPTA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG97CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG15Q2hhcnNbaV0hPSclJyl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBteVN0cmluZy5hcHBlbmQobXlDaGFyc1tpXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAobXlDaGFyc1tpXSl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnZicgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBteVN0cmluZy5hcHBlbmQgKCJ7MH0iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnRicgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBteVN0cmluZy5hcHBlbmQoInsxfSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdnJyA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15U3RyaW5nLmFwcGVuZCgiezJ9Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ0cnIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlTdHJpbmcuYXBwZW5kKCJ7M30iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnbCcgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBteVN0cmluZy5hcHBlbmQoICJ7NH0iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnbycgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBteVN0cmluZy5hcHBlbmQoIns1fSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdtJyA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15U3RyaW5nLmFwcGVuZCgiezZ9Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ00nIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlTdHJpbmcuYXBwZW5kKCJ7N30iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncCcgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBteVN0cmluZy5hcHBlbmQoIns4fSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdzJzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlTdHJpbmcuYXBwZW5kICgiezl9Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ1MnOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBteVN0cmluZy5hcHBlbmQgKCJ7MTB9Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2QnOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBteVN0cmluZy5hcHBlbmQgKCJ7MTF9Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3QnOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBteVN0cmluZy5hcHBlbmQgKCJ7MTJ9Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15U3RyaW5nLmFwcGVuZChteUNoYXJzW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9d2hpbGUoaTx0ZW1wLmxlbmd0aCgpKTsgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15TmFtZUZvcm1hdFswXVsxXSA9IG15U3RyaW5nLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0UHV0KHJlc3VsdCwiTmFtZUZvcm1hdCIsbXlOYW1lRm9ybWF0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBwcml2YXRlIHZvaWQgY29udmVydEFERFJFU1NGT1JNQVQoZmluYWwgSGFzaHRhYmxlIHJlc3VsdCwgZmluYWwgSGFzaHRhYmxlIHNvdXJjZSl7CisgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmdbXVtdREVGQVVMVF9NRVNTQUdFUyA9IChTdHJpbmdbXVtdKSBnZXREZWZhdWx0KCJBZGRyZXNzRm9ybWF0Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmdbXVtdIG15QWRkcmVzc0Zvcm1hdCA9KCBjbG9uZTJEQXJyKERFRkFVTFRfTUVTU0FHRVMpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9KFN0cmluZykgc291cmNlLmdldCgicG9zdGFsX2ZtdCIpOworICAgICAgICAgICAgICAgICAgICAgICAgUmVwbGFjZWFibGVTdHJpbmcgdGVtcCA9bmV3IFJlcGxhY2VhYmxlU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZih2YWx1ZSAhPSBudWxsKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wLnJlcGxhY2UoMCx0ZW1wLmxlbmd0aCgpLHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBteVRyYW5zbGl0LnRyYW5zbGl0ZXJhdGUodGVtcCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIG15Q2hhcnM9IG5ldyBjaGFyWzEwMF07Ly8gPSB0ZW1wLnRvU3RyaW5nKCkuZ2V0Q2hhcnMoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wLmdldENoYXJzKDAsdGVtcC5sZW5ndGgoKSxteUNoYXJzLDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBteVN0cmluZz1uZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGkgPTA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG97CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG15Q2hhcnNbaV0hPSclJyl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBteVN0cmluZy5hcHBlbmQobXlDaGFyc1tpXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAobXlDaGFyc1tpXSl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnYScgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBteVN0cmluZy5hcHBlbmQgKCJ7MH0iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnZicgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBteVN0cmluZy5hcHBlbmQoInsxfSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdkJyA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15U3RyaW5nLmFwcGVuZCgiezJ9Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2InIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlTdHJpbmcuYXBwZW5kKCJ7M30iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncycgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBteVN0cmluZy5hcHBlbmQoICJ7NH0iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnaCcgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBteVN0cmluZy5hcHBlbmQoIns1fSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdOJyA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15U3RyaW5nLmFwcGVuZCgiezZ9Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3QnIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlTdHJpbmcuYXBwZW5kKCJ7MTN9Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3InIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlTdHJpbmcuYXBwZW5kKCJ7N30iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnZSc6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15U3RyaW5nLmFwcGVuZCAoIns4fSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdDJzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlTdHJpbmcuYXBwZW5kICgiezl9Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ1onOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBteVN0cmluZy5hcHBlbmQgKCJ7MTB9Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ1QnOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBteVN0cmluZy5hcHBlbmQgKCJ7MTF9Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3onOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBteVN0cmluZy5hcHBlbmQgKCJ7MTJ9Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2MnOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBteVN0cmluZy5hcHBlbmQgKCJ7MTR9Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15U3RyaW5nLmFwcGVuZChteUNoYXJzW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfXdoaWxlKGk8dGVtcC5sZW5ndGgoKSk7ICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlBZGRyZXNzRm9ybWF0WzBdWzFdID0gbXlTdHJpbmcudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRQdXQocmVzdWx0LCJBZGRyZXNzRm9ybWF0IixteUFkZHJlc3NGb3JtYXQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHByaXZhdGUgdm9pZCBjb252ZXJ0VEVMRVBIT05FRk9STUFUKGZpbmFsIEhhc2h0YWJsZSByZXN1bHQsIGZpbmFsIEhhc2h0YWJsZSBzb3VyY2UpeworICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgU3RyaW5nW11bXURFRkFVTFRfTUVTU0FHRVMgPSAoU3RyaW5nW11bXSkgZ2V0RGVmYXVsdCgiVGVsZXBob25lRm9ybWF0Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmdbXVtdIG15VGVsZXBob25lRm9ybWF0ID0gY2xvbmUyREFycihERUZBVUxUX01FU1NBR0VTKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9KFN0cmluZykgc291cmNlLmdldCgidGVsX2ludF9mbXQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFJlcGxhY2VhYmxlU3RyaW5nIHRlbXAgPW5ldyBSZXBsYWNlYWJsZVN0cmluZygpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYodmFsdWUgIT0gbnVsbCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcC5yZXBsYWNlKDAsdGVtcC5sZW5ndGgoKSx2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlUcmFuc2xpdC50cmFuc2xpdGVyYXRlKHRlbXApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBteUNoYXJzPSBuZXcgY2hhclsxMDBdOy8vID0gdGVtcC50b1N0cmluZygpLmdldENoYXJzKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcC5nZXRDaGFycygwLHRlbXAubGVuZ3RoKCksbXlDaGFycywwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgbXlTdHJpbmc9bmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpID0wOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRveworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihteUNoYXJzW2ldIT0nJScpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlTdHJpbmcuYXBwZW5kKG15Q2hhcnNbaV0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKG15Q2hhcnNbaV0peworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2EnIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlTdHJpbmcuYXBwZW5kICgiezB9Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ0EnIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlTdHJpbmcuYXBwZW5kKCJ7MX0iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnbCcgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBteVN0cmluZy5hcHBlbmQoInsyfSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdjJyA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15U3RyaW5nLmFwcGVuZCgiezN9Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ0MnIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlTdHJpbmcuYXBwZW5kKCAiezR9Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15U3RyaW5nLmFwcGVuZChteUNoYXJzW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfXdoaWxlKGk8dGVtcC5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlUZWxlcGhvbmVGb3JtYXRbMF1bMV0gPSBteVN0cmluZy50b1N0cmluZygpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAoU3RyaW5nKSBzb3VyY2UuZ2V0KCJkb21fZm10Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZih2YWx1ZSAhPSBudWxsKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wLnJlcGxhY2UoMCx0ZW1wLmxlbmd0aCgpLHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBteVRyYW5zbGl0LnRyYW5zbGl0ZXJhdGUodGVtcCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIG15Q2hhcnM9IG5ldyBjaGFyWzEwMF07Ly8gPSB0ZW1wLnRvU3RyaW5nKCkuZ2V0Q2hhcnMoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wLmdldENoYXJzKDAsdGVtcC5sZW5ndGgoKSxteUNoYXJzLDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBteVN0cmluZz1uZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGkgPTA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRveworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihteUNoYXJzW2ldIT0nJScpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlTdHJpbmcuYXBwZW5kKG15Q2hhcnNbaV0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKG15Q2hhcnNbaV0peworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2EnIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlTdHJpbmcuYXBwZW5kICgiezB9Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ0EnIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlTdHJpbmcuYXBwZW5kKCJ7MX0iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnbCcgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBteVN0cmluZy5hcHBlbmQoInsyfSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdjJyA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15U3RyaW5nLmFwcGVuZCgiezN9Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ0MnIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlTdHJpbmcuYXBwZW5kKCAiezR9Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15U3RyaW5nLmFwcGVuZChteUNoYXJzW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfXdoaWxlKGk8dGVtcC5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlUZWxlcGhvbmVGb3JtYXRbMV1bMV0gPSBteVN0cmluZy50b1N0cmluZygpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAoU3RyaW5nKSBzb3VyY2UuZ2V0KCJpbnRfc2VsZWN0Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZih2YWx1ZSAhPSBudWxsKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wLnJlcGxhY2UoMCx0ZW1wLmxlbmd0aCgpLHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBteVRyYW5zbGl0LnRyYW5zbGl0ZXJhdGUodGVtcCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlUZWxlcGhvbmVGb3JtYXRbMl1bMV0gPSB0ZW1wLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IChTdHJpbmcpIHNvdXJjZS5nZXQoImludF9wcmVmaXgiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKHZhbHVlICE9IG51bGwpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXAucmVwbGFjZSgwLHRlbXAubGVuZ3RoKCksdmFsdWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15VHJhbnNsaXQudHJhbnNsaXRlcmF0ZSh0ZW1wKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBteVRlbGVwaG9uZUZvcm1hdFszXVsxXSA9IHRlbXAudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRQdXQocmVzdWx0LCJUZWxlcGhvbmVGb3JtYXQiLG15VGVsZXBob25lRm9ybWF0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBEdW1wUG9zaXhEYXRhIHAgPSBuZXcgRHVtcFBvc2l4RGF0YShzZmlsZU5hbWUpOworICAgICAgICAgICAgSGFzaHRhYmxlIG15cmVzdWx0ID0gbmV3IEhhc2h0YWJsZSgyMCk7CisgICAgICAgICAgICBwLndyaXRlUG9zaXhDb21wRGF0YShteXJlc3VsdCxzb3VyY2Usc2ZpbGVOYW1lKTsKKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGNvbnZlcnRNT05FVEFSWShmaW5hbCBIYXNodGFibGUgcmVzdWx0LCBmaW5hbCBIYXNodGFibGUgc291cmNlKSB7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIERFRkFVTFRfQ1VSUkVOQ1lfRUxFTUVOVFMgPSAoU3RyaW5nW10pZ2V0RGVmYXVsdCgiQ3VycmVuY3lFbGVtZW50cyIpOworICAgICAgICBmaW5hbCBTdHJpbmdbXSBlbGVtZW50cyA9IChTdHJpbmdbXSlERUZBVUxUX0NVUlJFTkNZX0VMRU1FTlRTLmNsb25lKCk7CisgICAgICAgIFN0cmluZyB2YWx1ZSA9IChTdHJpbmcpc291cmNlLmdldCgiY3VycmVuY3lfc3ltYm9sIik7CisgICAgICAgIC8vUmVwbGFjZWFibGUgdGVtcCA9IG5ldyBSZXBsYWNlYWJsZSh2YWx1ZSk7CisgICAgICAgCisgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7CisgICAgICAgICAgICBteVRyYW5zbGl0LnRyYW5zbGl0ZXJhdGUobmV3IFJlcGxhY2VhYmxlU3RyaW5nKHZhbHVlKSk7CisgICAgICAgICAgICBlbGVtZW50c1swXSA9IHZhbHVlOworICAgICAgICB9CisgICAgICAgIHZhbHVlID0gKFN0cmluZylzb3VyY2UuZ2V0KCJpbnRfY3Vycl9zeW1ib2wiKTsKKyAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHsKKyAgICAgICAgICAgICBteVRyYW5zbGl0LnRyYW5zbGl0ZXJhdGUobmV3IFJlcGxhY2VhYmxlU3RyaW5nKHZhbHVlKSk7CisgICAgICAgICAgICBlbGVtZW50c1sxXSA9IHZhbHVlOworICAgICAgICB9CisgICAgICAgIHZhbHVlID0gKFN0cmluZylzb3VyY2UuZ2V0KCJtb25fZGVjaW1hbF9wb2ludCIpOworICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkgeworICAgICAgICAgICAgbXlUcmFuc2xpdC50cmFuc2xpdGVyYXRlKG5ldyBSZXBsYWNlYWJsZVN0cmluZyh2YWx1ZSkpOworICAgICAgICAgICAgZWxlbWVudHNbMl0gPSB2YWx1ZTsKKyAgICAgICAgfQorICAgICAgICByZXN1bHRQdXQocmVzdWx0LCAiQ3VycmVuY3lFbGVtZW50cyIsIGVsZW1lbnRzKTsKKyAgICB9CisgICAgCisKKyAgICBwcml2YXRlIHZvaWQgY29udmVydE1FQVNVUkVNRU5UKGZpbmFsIEhhc2h0YWJsZSByZXN1bHQsIGZpbmFsIEhhc2h0YWJsZSBzb3VyY2UpeworICAgICAgICBmaW5hbCBTdHJpbmcgREVGQVVMVF9NRUFTVVJFTUVOVCA9KFN0cmluZylnZXREZWZhdWx0KCJNZWFzdXJlbWVudCIpOworICAgICAgICBTdHJpbmcgZWxlbWVudHMgPSAoU3RyaW5nKURFRkFVTFRfTUVBU1VSRU1FTlQ7CisgICAgICAgIFN0cmluZyB2YWx1ZSA9KFN0cmluZykgc291cmNlLmdldCgibWVhc3VyZW1lbnQiKTsKKyAgICAgICAgaWYodmFsdWUhPW51bGwpeworICAgICAgICAgICAgaWYodmFsdWUuZXF1YWxzKCIxIikpCisgICAgICAgICAgICAgICAgZWxlbWVudHMgPSAiTWV0cmljIjsKKyAgICAgICAgICAgIGVsc2UgaWYodmFsdWUuZXF1YWxzKCIyIikpCisgICAgICAgICAgICAgICAgZWxlbWVudHMgPSAiQW1lcmljYW4iOworICAgICAgICAgICAgZWxzZSBpZih2YWx1ZS5lcXVhbHMoIjMiKSkKKyAgICAgICAgICAgICAgICBlbGVtZW50cyA9ICJPdGhlciI7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0UHV0KHJlc3VsdCwiTWVhc3VyZW1lbnQiLGVsZW1lbnRzKTsKKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGNvbnZlcnRDT1VOVFJZTlVNQkVSIChmaW5hbCBIYXNodGFibGUgcmVzdWx0LCBmaW5hbCBIYXNodGFibGUgc291cmNlKXsKKyAgICAgICAgZmluYWwgU3RyaW5nIERFRkFVTFRfQ09VTlRSWU5VTUJFUiA9KFN0cmluZylnZXREZWZhdWx0KCJDb3VudHJ5TnVtYmVyIik7CisgICAgICAgIFN0cmluZyBlbGVtZW50cyA9IChTdHJpbmcpREVGQVVMVF9DT1VOVFJZTlVNQkVSOworICAgICAgICBTdHJpbmcgdmFsdWUgPShTdHJpbmcpIHNvdXJjZS5nZXQoImNvdW50cnlfbnVtIik7CisgICAgICAgIGlmKHZhbHVlIT1udWxsKXsKKyAgICAgICAgICAgIGVsZW1lbnRzID0gdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0UHV0KHJlc3VsdCwiQ291bnRyeU51bWJlciIsZWxlbWVudHMpOworICAgIH0KKyAgICBwcml2YXRlIHZvaWQgY29udmVydENPVU5UUllJU0JOTlVNQkVSIChmaW5hbCBIYXNodGFibGUgcmVzdWx0LCBmaW5hbCBIYXNodGFibGUgc291cmNlKXsKKyAgICAgICAgZmluYWwgU3RyaW5nIERFRkFVTFRfQ09VTlRSWU5VTUJFUiA9KFN0cmluZylnZXREZWZhdWx0KCJDb3VudHJ5SVNCTk51bWJlciIpOworICAgICAgICBTdHJpbmcgZWxlbWVudHMgPSBuZXcgU3RyaW5nKChTdHJpbmcpREVGQVVMVF9DT1VOVFJZTlVNQkVSKTsKKyAgICAgICAgU3RyaW5nIHZhbHVlID0oU3RyaW5nKSBzb3VyY2UuZ2V0KCJjb3VudHJ5X251bSIpOworICAgICAgICBpZih2YWx1ZSE9bnVsbCl7CisgICAgICAgICAgICBlbGVtZW50cyA9IHZhbHVlOworICAgICAgICB9CisgICAgICAgIHJlc3VsdFB1dChyZXN1bHQsIkNvdW50cnlJU0JOTnVtYmVyIixlbGVtZW50cyk7CisgICAgfQorICAgIHByaXZhdGUgdm9pZCBjb252ZXJ0TEFOR1VBR0VMSUIgKGZpbmFsIEhhc2h0YWJsZSByZXN1bHQsIGZpbmFsIEhhc2h0YWJsZSBzb3VyY2UpeworICAgICAgICBmaW5hbCBTdHJpbmcgREVGQVVMVF9MQU5HVUFHRUxJQiA9KFN0cmluZylnZXREZWZhdWx0KCJMYW5ndWFnZUxpYnJhcnlVc2UiKTsKKyAgICAgICAgU3RyaW5nIGVsZW1lbnRzID1uZXcgU3RyaW5nKCAoU3RyaW5nKURFRkFVTFRfTEFOR1VBR0VMSUIpOworICAgICAgICBTdHJpbmcgdmFsdWUgPShTdHJpbmcpIHNvdXJjZS5nZXQoImxhbmdfbGliIik7CisgICAgICAgIGlmKHZhbHVlIT1udWxsKXsKKyAgICAgICAgICAgIGVsZW1lbnRzID0gdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0UHV0KHJlc3VsdCwiTGFuZ3VhZ2VMaWJyYXJ5VXNlIixlbGVtZW50cyk7CisgICAgfQorICAgIHByaXZhdGUgdm9pZCBjb252ZXJ0UEFQRVJTSVpFIChmaW5hbCBIYXNodGFibGUgcmVzdWx0LCBmaW5hbCBIYXNodGFibGUgc291cmNlKXsKKyAgICAgICAgZmluYWwgU3RyaW5nW11bXSBERUZBVUxUX1BBUEVSU0laRT0oU3RyaW5nW11bXSkgZ2V0RGVmYXVsdCgiUGFwZXJTaXplIik7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdW10gZWxlbWVudHM9Y2xvbmUyREFycihERUZBVUxUX1BBUEVSU0laRSk7CisgICAgICAgIFN0cmluZyB2YWx1ZT0oU3RyaW5nKSBzb3VyY2UuZ2V0KCJoZWlnaHQiKTsKKyAgICAgICAgaWYgKHZhbHVlIT1udWxsKXsKKyAgICAgICAgICAgIGVsZW1lbnRzWzBdWzFdPSB2YWx1ZTsKKyAgICAgICAgfQorICAgICAgICB2YWx1ZSA9ICAoU3RyaW5nKSBzb3VyY2UuZ2V0KCJ3aWR0aCIpOworICAgICAgICBpZih2YWx1ZSE9bnVsbCl7CisgICAgICAgICAgICBlbGVtZW50c1sxXVsxXSA9IHZhbHVlOworICAgICAgICB9CisgICAgICAgIGVsZW1lbnRzWzJdWzFdPShTdHJpbmcpIm1tIjsKKyAgICAgICAgCisgICAgICAgIHJlc3VsdFB1dChyZXN1bHQsIlBhcGVyU2l6ZSIsZWxlbWVudHMpOworICAgIH0KKyAgICAKKyAgIC8qIHByaXZhdGUgdm9pZCBjb252ZXJ0SURFTlRJRklDQVRJT04oZmluYWwgSGFzaHRhYmxlIHJlc3VsdCwgZmluYWwgSGFzaHRhYmxlIHNvdXJjZSl7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdW11ERUZBVUxUX0lERU5USUZJQ0FUSU9OID0oU3RyaW5nW11bXSkgZ2V0RGVmYXVsdCgiSWRlbnRpZmljYXRpb24iKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW11bXSBlbGVtZW50cyA9IChTdHJpbmdbXVtdKURFRkFVTFRfSURFTlRJRklDQVRJT04uY2xvYW5lKCk7CisgICAgICAgIAorICAgIH0qLworICAgIHByaXZhdGUgdm9pZCBjb252ZXJ0TlVNRVJJQyhmaW5hbCBIYXNodGFibGUgcmVzdWx0LCBmaW5hbCBIYXNodGFibGUgc291cmNlKSB7CisgICAgICAgIC8vQnVpbGQgTnVtYmVyRWxlbWVudHMgZGF0YSBhcnJheQorICAgICAgICBmaW5hbCBTdHJpbmdbXSBERUZBVUxUX05VTUJFUl9FTEVNRU5UUyA9IChTdHJpbmdbXSlnZXREZWZhdWx0KCJOdW1iZXJFbGVtZW50cyIpOworICAgICAgICAvL1NldCBuZXcgbnVtYmVyIGVsZW1lbnRzIHRvIGEgY29weSBvZiB0aGUgZGVmYXVsdCB2YWx1ZSBmcm9tIHRoZSBwYXJlbnQuCisgICAgICAgIGZpbmFsIFN0cmluZ1tdIGVsZW1lbnRzID0gKFN0cmluZ1tdKURFRkFVTFRfTlVNQkVSX0VMRU1FTlRTLmNsb25lKCk7CisgICAgICAgIC8vcHV0IGRlY2ltYWwgc2VwZXJhdG9yIGludG8gdGhlIE51bWJlckVsZW1lbnRzIGFycmF5CisgICAgICAgIFN0cmluZyBkZWNpbWFsUG9pbnQgPSAoU3RyaW5nKXNvdXJjZS5nZXQoImRlY2ltYWxfcG9pbnQiKTsKKyAgICAgICAgaWYgKGRlY2ltYWxQb2ludCAhPSBudWxsKSB7IC8vaWYgd2UgaGF2ZSBhIFBPU0lYIHZhbHVlLCBzdG9tcCBvbiB0aGUgZGVmYXVsdAorICAgICAgICAgICAgZWxlbWVudHNbMF0gPSBkZWNpbWFsUG9pbnQ7CisgICAgICAgIH0KKworICAgICAgICAvL3B1dCB0aG91c2FuZHMgc2VwZXJhdG9yIGludG8gdGhlIE51bWJlckVsZW1lbnRzIGFycmF5CisgICAgICAgIFN0cmluZyB0aG91c2FuZHNTZXAgPSAoU3RyaW5nKXNvdXJjZS5nZXQoInRob3VzYW5kc19zZXAiKTsKKyAgICAgICAgaWYgKHRob3VzYW5kc1NlcCAhPSBudWxsKSB7IC8vaWYgd2UgaGF2ZSBhIFBPU0lYIHZhbHVlLCBzdG9tcCBvbiB0aGUgZGVmYXVsdAorICAgICAgICAgICAgZWxlbWVudHNbMV0gPSB0aG91c2FuZHNTZXA7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vQWRkIE51bWJlckVsZW1lbnRzIHRvIHJlc3VsdAorICAgICAgICByZXN1bHRQdXQocmVzdWx0LCAiTnVtYmVyRWxlbWVudHMiLCBlbGVtZW50cyk7CisKKyAgICAgICAgLy91c2UgY2Fub25pY2FsIGRlY2ltYWwgYW5kIHRob3VzYW5kcyBzZXBlcmF0b3JzIGZvciBwYXR0ZXJucworICAgICAgICBkZWNpbWFsUG9pbnQgPSAiLiI7CisgICAgICAgIHRob3VzYW5kc1NlcCA9ICIsIjsKKyAgICAgICAgCisgICAgICAgIC8vTnVtYmVyUGF0dGVybnMKKyAgICAgICAgZmluYWwgU3RyaW5nW10gREVGQVVMVF9OVU1CRVJfUEFUVEVSTlMgPSAoU3RyaW5nW10pZ2V0RGVmYXVsdCgiTnVtYmVyUGF0dGVybnMiKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gcGF0dGVybnMgPSAoU3RyaW5nW10pREVGQVVMVF9OVU1CRVJfUEFUVEVSTlMuY2xvbmUoKTsKKyAgICAgICAgCisgICAgICAgIGZpbmFsIFN0cmluZyBwYXR0ZXJuRGlnaXQgPSBlbGVtZW50c1s1XTsKKyAgICAgICAgZmluYWwgU3RyaW5nIHplcm9EaWdpdCA9IGVsZW1lbnRzWzRdOworICAgICAgICBmaW5hbCBTdHJpbmcgbmVnYXRpdmVTaWduID0gZWxlbWVudHNbNl07CisgICAgICAgIGZpbmFsIFN0cmluZyBwZXJjZW50U2lnbiA9IGVsZW1lbnRzWzNdOworICAgICAgICBTdHJpbmcgZ3JvdXBpbmdTdHJpbmc7CisgICAgICAgIE9iamVjdCBncm91cGluZ09iaiA9IHNvdXJjZS5nZXQoImdyb3VwaW5nIik7CisgICAgICAgIGJvb2xlYW4gaXNTdHJBcnJheSA9IGdyb3VwaW5nT2JqIGluc3RhbmNlb2YgU3RyaW5nW107CisgICAgICAgIGlmIChpc1N0ckFycmF5KSB7CisgICAgICAgICAgICBncm91cGluZ1N0cmluZyA9ICgoU3RyaW5nW10pZ3JvdXBpbmdPYmopWzBdOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZ3JvdXBpbmdTdHJpbmcgPSAoU3RyaW5nKWdyb3VwaW5nT2JqOworICAgICAgICB9CisgICAgICAgIGlmIChncm91cGluZ1N0cmluZyA9PSBudWxsKSB7CisgICAgICAgICAgICBwYXR0ZXJuc1swXSA9IHJlcGxhY2UocGF0dGVybnNbMF0sIGVsZW1lbnRzWzBdLCAiPERFQ0lNQUw+Iik7CisgICAgICAgICAgICBwYXR0ZXJuc1swXSA9IHJlcGxhY2UocGF0dGVybnNbMF0sIGVsZW1lbnRzWzFdLCAiPFRIT1VTQU5EPiIpOworICAgICAgICAgICAgcGF0dGVybnNbMF0gPSByZXBsYWNlKHBhdHRlcm5zWzBdLCAiPERFQ0lNQUw+IiwgZGVjaW1hbFBvaW50KTsKKyAgICAgICAgICAgIHBhdHRlcm5zWzBdID0gcmVwbGFjZShwYXR0ZXJuc1swXSwgIjxUSE9VU0FORD4iLCB0aG91c2FuZHNTZXApOworCisgICAgICAgICAgICBwYXR0ZXJuc1syXSA9IHJlcGxhY2UocGF0dGVybnNbMl0sIGVsZW1lbnRzWzFdLCAiPFRIT1VTQU5EPiIpOworICAgICAgICAgICAgcGF0dGVybnNbMl0gPSByZXBsYWNlKHBhdHRlcm5zWzJdLCAiPFRIT1VTQU5EPiIsIHRob3VzYW5kc1NlcCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmaW5hbCBpbnQgZ3JvdXBpbmcgPSBJbnRlZ2VyLnBhcnNlSW50KGdyb3VwaW5nU3RyaW5nKTsKKyAgICAgICAgICAgIC8vZm9yIGEgZ3JvdXBpbmcgb2YgNQorICAgICAgICAgICAgLy8jPHRob3VzYW5kc1NlcD4jIyMjMDxkZWNpbWFsUG9pbnQ+IyMjIyMKKyAgICAgICAgICAgIGZpbmFsIFN0cmluZ0J1ZmZlciBwYXR0ZXJuID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgcGF0dGVybi5hcHBlbmQocGF0dGVybkRpZ2l0KTsKKyAgICAgICAgICAgIHBhdHRlcm4uYXBwZW5kKHRob3VzYW5kc1NlcCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gTWF0aC5tYXgoMSwgZ3JvdXBpbmcgLSAxKTsgaSA+IDA7IGktLSkgeworICAgICAgICAgICAgICAgIHBhdHRlcm4uYXBwZW5kKHBhdHRlcm5EaWdpdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwYXR0ZXJuLmFwcGVuZCh6ZXJvRGlnaXQpOworICAgICAgICAgICAgcGF0dGVybi5hcHBlbmQoZGVjaW1hbFBvaW50KTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSBNYXRoLm1heCgxLCBncm91cGluZyAtIDEpOyBpID49IDA7IGktLSkgeworICAgICAgICAgICAgICAgIHBhdHRlcm4uYXBwZW5kKHBhdHRlcm5EaWdpdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmaW5hbCBTdHJpbmcgcGF0dGVyblN0cmluZyA9IHBhdHRlcm4udG9TdHJpbmcoKTsKKyAgICAgICAgICAgIHBhdHRlcm5zWzBdID0gcGF0dGVyblN0cmluZyArICI7IiArIG5lZ2F0aXZlU2lnbiArIHBhdHRlcm5TdHJpbmc7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHBhdHRlcm4uc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgcGF0dGVybi5hcHBlbmQocGF0dGVybkRpZ2l0KTsKKyAgICAgICAgICAgIHBhdHRlcm4uYXBwZW5kKHRob3VzYW5kc1NlcCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gTWF0aC5tYXgoMSwgZ3JvdXBpbmcgLSAxKTsgaSA+IDA7IGktLSkgeworICAgICAgICAgICAgICAgIHBhdHRlcm4uYXBwZW5kKHBhdHRlcm5EaWdpdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwYXR0ZXJuLmFwcGVuZCh6ZXJvRGlnaXQpOworICAgICAgICAgICAgcGF0dGVybi5hcHBlbmQocGVyY2VudFNpZ24pOyAgICAgICAgICAgIAorICAgICAgICAgICAgcGF0dGVybnNbMl0gPSBwYXR0ZXJuLnRvU3RyaW5nKCk7CisKKyAgICAgICAgICAgIGZpbmFsIFN0cmluZ1tdIGN1cnJlbmN5RWxlbWVudHMgPSAoKFN0cmluZ1tdKWdldERlZmF1bHQoIkN1cnJlbmN5RWxlbWVudHMiKSk7CisgICAgICAgICAgICBTdHJpbmcgY3VycmVuY3lfc3ltYm9sID0gKFN0cmluZylzb3VyY2UuZ2V0KCJjdXJyZW5jeV9zeW1ib2wiKTsKKyAgICAgICAgICAgIGN1cnJlbmN5X3N5bWJvbCA9IChjdXJyZW5jeV9zeW1ib2wgIT0gbnVsbCkgPyBjdXJyZW5jeV9zeW1ib2wgOiAoU3RyaW5nKXNvdXJjZS5nZXQoImludF9jdXJyX3N5bWJvbCIpOworICAgICAgICAgICAgY3VycmVuY3lfc3ltYm9sID0gKGN1cnJlbmN5X3N5bWJvbCAhPSBudWxsKSA/IGN1cnJlbmN5X3N5bWJvbCA6ICIiOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgbW9uX2RlY2ltYWxfcG9pbnQgPSAoU3RyaW5nKXNvdXJjZS5nZXQoIm1vbl9kZWNpbWFsX3BvaW50Iik7CisgICAgICAgICAgICBtb25fZGVjaW1hbF9wb2ludCA9IChtb25fZGVjaW1hbF9wb2ludCAhPSBudWxsKSA/IG1vbl9kZWNpbWFsX3BvaW50IDogIiI7CisKKyAgICAgICAgICAgIFN0cmluZyBtb25fdGhvdXNhbmRzX3NlcCA9IChTdHJpbmcpc291cmNlLmdldCgibW9uX3Rob3VzYW5kc19zZXAiKTsKKyAgICAgICAgICAgIG1vbl90aG91c2FuZHNfc2VwID0gKG1vbl90aG91c2FuZHNfc2VwICE9IG51bGwpID8gbW9uX3Rob3VzYW5kc19zZXAgOiAiIjsKKworICAgICAgICAgICAgU3RyaW5nIG1vbl9ncm91cGluZ19zdHJpbmc7CisgICAgICAgICAgICBmaW5hbCBPYmplY3QgbW9uR3JvdXBpbmdPYmogPSBzb3VyY2UuZ2V0KCJtb25fZ3JvdXBpbmciKTsKKyAgICAgICAgICAgIGlmIChtb25Hcm91cGluZ09iaiBpbnN0YW5jZW9mIFN0cmluZ1tdKSB7CisgICAgICAgICAgICAgICAgbW9uX2dyb3VwaW5nX3N0cmluZyA9ICgoU3RyaW5nW10pbW9uR3JvdXBpbmdPYmopWzBdOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBtb25fZ3JvdXBpbmdfc3RyaW5nID0gKFN0cmluZyltb25Hcm91cGluZ09iajsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZpbmFsIGludCBtb25fZ3JvdXBpbmcgPSAobW9uX2dyb3VwaW5nX3N0cmluZyA9PSBudWxsKSA/IGdyb3VwaW5nIDogSW50ZWdlci5wYXJzZUludChtb25fZ3JvdXBpbmdfc3RyaW5nKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZmluYWwgU3RyaW5nIGZyYWNfZGlnaXRzX3N0cmluZyA9IChTdHJpbmcpc291cmNlLmdldCgiZnJhY19kaWdpdHMiKTsKKyAgICAgICAgICAgIGZpbmFsIGludCBmcmFjX2RpZ2l0cyA9IChmcmFjX2RpZ2l0c19zdHJpbmcgPT0gbnVsbCkgPyBtb25fZ3JvdXBpbmcgOiBJbnRlZ2VyLnBhcnNlSW50KGZyYWNfZGlnaXRzX3N0cmluZyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBwb3NpdGl2ZV9zaWduID0gKFN0cmluZylzb3VyY2UuZ2V0KCJwb3NpdGl2ZV9zaWduIik7CisgICAgICAgICAgICBwb3NpdGl2ZV9zaWduID0gKHBvc2l0aXZlX3NpZ24gIT0gbnVsbCkgPyBwb3NpdGl2ZV9zaWduIDogIiI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBuZWdhdGl2ZV9zaWduID0gKFN0cmluZylzb3VyY2UuZ2V0KCJuZWdhdGl2ZV9zaWduIik7CisgICAgICAgICAgICBuZWdhdGl2ZV9zaWduID0gKG5lZ2F0aXZlX3NpZ24gIT0gbnVsbCkgPyBuZWdhdGl2ZV9zaWduIDogIiI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBwX3NpZ25fcG9zbiA9IChTdHJpbmcpc291cmNlLmdldCgicF9zaWduX3Bvc24iKTsKKyAgICAgICAgICAgIHBfc2lnbl9wb3NuID0gKHBfc2lnbl9wb3NuICE9IG51bGwpID8gcF9zaWduX3Bvc24gOiAiIjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIG5fc2lnbl9wb3NuID0gKFN0cmluZylzb3VyY2UuZ2V0KCJuX3NpZ25fcG9zbiIpOworICAgICAgICAgICAgbl9zaWduX3Bvc24gPSAobl9zaWduX3Bvc24gIT0gbnVsbCkgPyBuX3NpZ25fcG9zbiA6ICIiOworCisgICAgICAgICAgICBmaW5hbCBib29sZWFuIHBfY3NfcHJlY2VkZXMgPSAhIjAiLmVxdWFscyhzb3VyY2UuZ2V0KCJwX2NzX3ByZWNlZGVzIikpOworICAgICAgICAgICAgZmluYWwgU3RyaW5nIHBfc2VwX2J5X3NwYWNlID0gKFN0cmluZylzb3VyY2UuZ2V0KCJwX3NlcF9ieV9zcGFjZSIpOworICAgICAgICAgICAgZmluYWwgYm9vbGVhbiBuX2NzX3ByZWNlZGVzID0gISIwIi5lcXVhbHMoc291cmNlLmdldCgibl9jc19wcmVjZWRlcyIpKTsKKyAgICAgICAgICAgIGZpbmFsIFN0cmluZyBuX3NlcF9ieV9zcGFjZSA9IChTdHJpbmcpc291cmNlLmdldCgibl9zZXBfYnlfc3BhY2UiKTsKKworICAgICAgICAgICAgcGF0dGVybi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAKKy8qICAgICAgICAgICAgCisgICAgICAgICAgICBwYXR0ZXJuc1sxXSA9CisgICAgICAgICAgICAgICAgY3JlYXRlUGF0dGVyblN0cmluZyhjdXJyZW5jeV9zeW1ib2wsIG1vbl9kZWNpbWFsX3BvaW50LCBtb25fdGhvdXNhbmRzX3NlcCwgbW9uX2dyb3VwaW5nLCBmcmFjX2RpZ2l0cywKKyAgICAgICAgICAgICAgICAgICAgcG9zaXRpdmVfc2lnbiwgcF9jc19wcmVjZWRlcywgcF9zZXBfYnlfc3BhY2UsIHBfc2lnbl9wb3NuLCBwYXR0ZXJuRGlnaXQsIHplcm9EaWdpdCkKKyAgICAgICAgICAgICAgICArICI7IgorICAgICAgICAgICAgICAgICsgY3JlYXRlUGF0dGVyblN0cmluZyhjdXJyZW5jeV9zeW1ib2wsIG1vbl9kZWNpbWFsX3BvaW50LCBtb25fdGhvdXNhbmRzX3NlcCwgbW9uX2dyb3VwaW5nLCBmcmFjX2RpZ2l0cywKKyAgICAgICAgICAgICAgICAgICAgbmVnYXRpdmVfc2lnbiwgbl9jc19wcmVjZWRlcywgbl9zZXBfYnlfc3BhY2UsIG5fc2lnbl9wb3NuLCBwYXR0ZXJuRGlnaXQsIHplcm9EaWdpdCk7CisqLworICAgICAgICAgICAgCisvKiAgICAgICAgICAgIHBhdHRlcm5zWzFdID0KKyAgICAgICAgICAgICAgICBjcmVhdGVQYXR0ZXJuU3RyaW5nKGN1cnJlbmN5X3N5bWJvbCwgIi4iLCAiLCIsIG1vbl9ncm91cGluZywgZnJhY19kaWdpdHMsCisgICAgICAgICAgICAgICAgICAgIHBvc2l0aXZlX3NpZ24sIHBfY3NfcHJlY2VkZXMsIHBfc2VwX2J5X3NwYWNlLCBwX3NpZ25fcG9zbiwgcGF0dGVybkRpZ2l0LCB6ZXJvRGlnaXQpCisgICAgICAgICAgICAgICAgKyAiOyIKKyAgICAgICAgICAgICAgICArIGNyZWF0ZVBhdHRlcm5TdHJpbmcoY3VycmVuY3lfc3ltYm9sLCAiLiIsICIsIiwgbW9uX2dyb3VwaW5nLCBmcmFjX2RpZ2l0cywKKyAgICAgICAgICAgICAgICAgICAgbmVnYXRpdmVfc2lnbiwgbl9jc19wcmVjZWRlcywgbl9zZXBfYnlfc3BhY2UsIG5fc2lnbl9wb3NuLCBwYXR0ZXJuRGlnaXQsIHplcm9EaWdpdCk7CisqLworICAgICAgICAgICAgcGF0dGVybnNbMV0gPQorICAgICAgICAgICAgICAgIGNyZWF0ZVBhdHRlcm5TdHJpbmcoIi4iLCAiLCIsIG1vbl9ncm91cGluZywgZnJhY19kaWdpdHMsCisgICAgICAgICAgICAgICAgICAgIHBvc2l0aXZlX3NpZ24sIHBfY3NfcHJlY2VkZXMsIHBfc2VwX2J5X3NwYWNlLCBwX3NpZ25fcG9zbiwgcGF0dGVybkRpZ2l0LCB6ZXJvRGlnaXQpCisgICAgICAgICAgICAgICAgKyAiOyIKKyAgICAgICAgICAgICAgICArIGNyZWF0ZVBhdHRlcm5TdHJpbmcoIi4iLCAiLCIsIG1vbl9ncm91cGluZywgZnJhY19kaWdpdHMsCisgICAgICAgICAgICAgICAgICAgIG5lZ2F0aXZlX3NpZ24sIG5fY3NfcHJlY2VkZXMsIG5fc2VwX2J5X3NwYWNlLCBuX3NpZ25fcG9zbiwgcGF0dGVybkRpZ2l0LCB6ZXJvRGlnaXQpOworCisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0UHV0KHJlc3VsdCwgIk51bWJlclBhdHRlcm5zIiwgcGF0dGVybnMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgcm91dGluZSBjcmVhdGVzIGN1cnJlbmN5IGZvcm1hdHMgZnJvbSBhbGwgdGhlIHBvc2l4IHN0dWZmLgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIGNyZWF0ZVBhdHRlcm5TdHJpbmcoU3RyaW5nIGRlY2ltYWwsIFN0cmluZyB0aG91c2FuZHMsIGludCBncm91cGluZywgaW50IGZyYWNEaWdpdHMsCisgICAgICAgICAgICBTdHJpbmcgc2lnbiwgYm9vbGVhbiBwcmVjZWVkcywgU3RyaW5nIHNlcF9ieV9zcGFjZSwgU3RyaW5nIHNpZ25fcG9zbiwgU3RyaW5nIGRpZ2l0LAorICAgICAgICAgICAgU3RyaW5nIHJlcXVpcmVkRGlnaXQpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZmluYWwgU3RyaW5nIGN1cnJlbmN5ID0gIlx1MDBBNCI7CisgICAgICAgIGlmICgiMiIuZXF1YWxzKHNlcF9ieV9zcGFjZSkgJiYgKCIiLmVxdWFscyhjdXJyZW5jeSkgfHwgIiIuZXF1YWxzKHNpZ24pKSkgeworICAgICAgICAgICAgc2VwX2J5X3NwYWNlID0gIjAiOworICAgICAgICB9CisgICAgICAgIGlmICgiMSIuZXF1YWxzKHNlcF9ieV9zcGFjZSkgJiYgIiIuZXF1YWxzKGN1cnJlbmN5KSkgeworICAgICAgICAgICAgc2VwX2J5X3NwYWNlID0gIjAiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmaW5hbCBTdHJpbmcgc2lnbl9jdXJyZW5jeV9zZXBlcmF0b3IgPSAoIjIiLmVxdWFscyhzZXBfYnlfc3BhY2UpKSA/ICIgIiA6ICIiOworICAgICAgICBmaW5hbCBTdHJpbmcgcXVhbnRpdHlfY3VycmVuY3lfc2VwZXJhdG9yID0gKCIxIi5lcXVhbHMoc2VwX2J5X3NwYWNlKSkgPyAiICIgOiAiIjsKKyAgICAgICAgCisgICAgICAgIGlmICgiMCIuZXF1YWxzKHNpZ25fcG9zbikpIHsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoJygnKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIjEiLmVxdWFscyhzaWduX3Bvc24pKSB7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHNpZ24pOworICAgICAgICAgICAgaWYgKHByZWNlZWRzKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChzaWduX2N1cnJlbmN5X3NlcGVyYXRvcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByZWNlZWRzKSB7CisgICAgICAgICAgICBpZiAoIjMiLmVxdWFscyhzaWduX3Bvc24pKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChzaWduKTsKKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHNpZ25fY3VycmVuY3lfc2VwZXJhdG9yKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoY3VycmVuY3kpOworICAgICAgICAgICAgaWYgKCI0Ii5lcXVhbHMoc2lnbl9wb3NuKSkgeworICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoc2lnbl9jdXJyZW5jeV9zZXBlcmF0b3IpOworICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoc2lnbik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHF1YW50aXR5X2N1cnJlbmN5X3NlcGVyYXRvcik7CisgICAgICAgIH0gICAgICAgCisgICAgICAgIAorICAgICAgICBidWZmZXIuYXBwZW5kKGRpZ2l0KTsKKyAgICAgICAgaWYgKGdyb3VwaW5nID4gMCkgeworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCh0aG91c2FuZHMpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IGdyb3VwaW5nLTE7IGkgPiAwOyBpLS0pIHsKKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKGRpZ2l0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBidWZmZXIuYXBwZW5kKHJlcXVpcmVkRGlnaXQpOworICAgICAgICBidWZmZXIuYXBwZW5kKGRlY2ltYWwpOworICAgICAgICBpZiAoZnJhY0RpZ2l0cyA+IDApIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSBmcmFjRGlnaXRzLTE7IGkgPj0gMDsgaS0tKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChyZXF1aXJlZERpZ2l0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoZGlnaXQpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoIXByZWNlZWRzKSB7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHF1YW50aXR5X2N1cnJlbmN5X3NlcGVyYXRvcik7CisgICAgICAgICAgICBpZiAoIjEiLmVxdWFscyhzaWduX3Bvc24pKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChzaWduX2N1cnJlbmN5X3NlcGVyYXRvcik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIjMiLmVxdWFscyhzaWduX3Bvc24pKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChzaWduKTsKKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHNpZ25fY3VycmVuY3lfc2VwZXJhdG9yKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoY3VycmVuY3kpOworICAgICAgICAgICAgaWYgKCI0Ii5lcXVhbHMoc2lnbl9wb3NuKSkgeworICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoc2lnbl9jdXJyZW5jeV9zZXBlcmF0b3IpOworICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoc2lnbik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gICAgICAgCisgICAgICAgIGlmICgiMiIuZXF1YWxzKHNpZ25fcG9zbikpIHsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoc2lnbl9jdXJyZW5jeV9zZXBlcmF0b3IpOworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChzaWduKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIjAiLmVxdWFscyhzaWduX3Bvc24pKSB7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKCcpJyk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBidWZmZXIudG9TdHJpbmcoKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGNvbnZlcnRUSU1FKEhhc2h0YWJsZSByZXN1bHQsIEhhc2h0YWJsZSBzb3VyY2UpIHsKKyAgICAgICAgcmVzdWx0UHV0KHJlc3VsdCwgIkRheU5hbWVzIiwgc291cmNlLmdldCgiZGF5IikpOworICAgICAgICByZXN1bHRQdXQocmVzdWx0LCAiRGF5QWJicmV2aWF0aW9ucyIsIHNvdXJjZS5nZXQoImFiZGF5IikpOworICAgICAgICBTdHJpbmdbXSB0ZW1wID0gKFN0cmluZ1tdKXNvdXJjZS5nZXQoImFtX3BtIik7CisgICAgICAgIGlmICh0ZW1wICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZpbmFsIFN0cmluZ1tdIGRlZmF1bHRBTVBNID0gKFN0cmluZ1tdKWdldERlZmF1bHQoIkFtUG1NYXJrZXJzIik7CisgICAgICAgICAgICBpZiAoIiIuZXF1YWxzKHRlbXBbMF0pKSB0ZW1wWzBdID0gZGVmYXVsdEFNUE1bMF07CisgICAgICAgICAgICBpZiAoIiIuZXF1YWxzKHRlbXBbMV0pKSB0ZW1wWzFdID0gZGVmYXVsdEFNUE1bMV07CisgICAgICAgICAgICByZXN1bHRQdXQocmVzdWx0LCAiQW1QbU1hcmtlcnMiLCB0ZW1wKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdGVtcCA9IChTdHJpbmdbXSlzb3VyY2UuZ2V0KCJtb24iKTsKKyAgICAgICAgaWYgKHRlbXAgIT0gbnVsbCkgeworICAgICAgICAgICAgLy9hZGQgZW1wdHkgMTN0aCBtb250aAorICAgICAgICAgICAgU3RyaW5nW10gbmV3VGVtcCA9IG5ldyBTdHJpbmdbMTNdOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0ZW1wLCAwLCBuZXdUZW1wLCAwLCAxMik7CisgICAgICAgICAgICBuZXdUZW1wWzEyXSA9ICIiOworICAgICAgICAgICAgcmVzdWx0UHV0KHJlc3VsdCwgIk1vbnRoTmFtZXMiLCBuZXdUZW1wKTsKKyAgICAgICAgfQorICAgICAgICB0ZW1wID0gKFN0cmluZ1tdKXNvdXJjZS5nZXQoImFibW9uIik7CisgICAgICAgIGlmICh0ZW1wICE9IG51bGwpIHsKKyAgICAgICAgICAgIC8vYWRkIGVtcHR5IDEzdGggbW9udGgKKyAgICAgICAgICAgIFN0cmluZ1tdIG5ld1RlbXAgPSBuZXcgU3RyaW5nWzEzXTsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkodGVtcCwgMCwgbmV3VGVtcCwgMCwgMTIpOworICAgICAgICAgICAgbmV3VGVtcFsxMl0gPSAiIjsKKyAgICAgICAgICAgIHJlc3VsdFB1dChyZXN1bHQsICJNb250aEFiYnJldmlhdGlvbnMiLCBuZXdUZW1wKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZmluYWwgU3RyaW5nIHRfZm10X2FtcG0gPSAoU3RyaW5nKXNvdXJjZS5nZXQoInRfZm10X2FtcG0iKTsKKyAgICAgICAgZmluYWwgU3RyaW5nIHRfZm10ID0gKFN0cmluZylzb3VyY2UuZ2V0KCJ0X2ZtdCIpOworICAgICAgICBmaW5hbCBTdHJpbmcgZF90X2ZtdCA9IChTdHJpbmcpc291cmNlLmdldCgiZF90X2ZtdCIpOworICAgICAgICBmaW5hbCBTdHJpbmcgZF9mbXQgPSAoU3RyaW5nKXNvdXJjZS5nZXQoImRfZm10Iik7CisgICAgICAgIGZpbmFsIFN0cmluZyBubGxkYXRlID0gKFN0cmluZylzb3VyY2UuZ2V0KCJubGxkYXRlIik7ICAgLy9ub24tc3RhbmRhcmQgSUJNIHRoaW5nCisgICAgICAgIAorICAgICAgICBmaW5hbCBTdHJpbmcgREVGQVVMVF9EQVRFVElNRV9FTEVNRU5UU1tdID0gKFN0cmluZ1tdKWdldERlZmF1bHQoIkRhdGVUaW1lUGF0dGVybnMiKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gZWxlbWVudHMgPSAoU3RyaW5nW10pREVGQVVMVF9EQVRFVElNRV9FTEVNRU5UUy5jbG9uZSgpOworICAgICAgICBmaW5hbCBTdHJpbmcgWF9wYXR0ZXJuID0gZWxlbWVudHNbM107CisgICAgICAgIGZpbmFsIFN0cmluZyB4X3BhdHRlcm4gPSBlbGVtZW50c1s3XTsKKyAgICAgICAgZmluYWwgU3RyaW5nIGNfcGF0dGVybiA9IGVsZW1lbnRzWzRdICsgIiAiICsgZWxlbWVudHNbMF07CisgICAgICAgIAorICAgICAgICBlbGVtZW50c1swXSA9ICh0X2ZtdF9hbXBtICE9IG51bGwgJiYgdF9mbXRfYW1wbS5sZW5ndGgoKSA+IDApID8gdF9mbXRfYW1wbSA6IHRfZm10OworICAgICAgICBlbGVtZW50c1sxXSA9ICh0X2ZtdCAhPSBudWxsKSA/IHRfZm10IDogdF9mbXRfYW1wbTsKKyAgICAgICAgZWxlbWVudHNbMl0gPSAodF9mbXQgIT0gbnVsbCkgPyB0X2ZtdCA6IHRfZm10X2FtcG07CisgICAgICAgIGVsZW1lbnRzWzNdID0gKHRfZm10ICE9IG51bGwpID8gdF9mbXQgOiB0X2ZtdF9hbXBtOworICAgICAgICAKKyAgICAgICAgU3RyaW5nIGxvbmdpc2hEYXRlRm9ybWF0ID0gKG5sbGRhdGUgIT0gbnVsbCkgPyBubGxkYXRlIDogZF9mbXQ7CisgICAgICAgIGlmIChkX3RfZm10ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmICh0X2ZtdCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgLy90cnkgdG8gYnVpbGQgYSBkZXRhaWxlZCBkYXRhIGZvcm1hdCBieSB0YWtpbmcgdGhlIAorICAgICAgICAgICAgICAgIC8vZGF0ZS10aW1lIGZvcm1hdCBhbmQgcmVtb3ZpbmcgdGhlIHRpbWUgcG9ydGlvbgorICAgICAgICAgICAgICAgIGludCBuZHggPSBkX3RfZm10LmluZGV4T2YodF9mbXQpOworICAgICAgICAgICAgICAgIGlmIChuZHggPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBpZiAobmR4IDwgKGRfdF9mbXQubGVuZ3RoKCkgLSB0X2ZtdC5sZW5ndGgoKSkvMikgeworICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHNbOF0gPSAiezB9IHsxfSI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgbG9uZ2lzaERhdGVGb3JtYXQgPSByZXBsYWNlKGRfdF9mbXQsIHRfZm10LCAiIik7CisgICAgICAgICAgICAgICAgICAgIGxvbmdpc2hEYXRlRm9ybWF0ID0gcmVwbGFjZShsb25naXNoRGF0ZUZvcm1hdCwgIiVaIiwgIiIpOworICAgICAgICAgICAgICAgICAgICBsb25naXNoRGF0ZUZvcm1hdCA9IHJlcGxhY2UobG9uZ2lzaERhdGVGb3JtYXQsICIgICIsICIgIik7CisgICAgICAgICAgICAgICAgICAgIGxvbmdpc2hEYXRlRm9ybWF0ID0gcmVwbGFjZShsb25naXNoRGF0ZUZvcm1hdCwgIiAgIiwgIiAiKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxvbmdpc2hEYXRlRm9ybWF0LmNoYXJBdCgwKSA9PSAnICcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvbmdpc2hEYXRlRm9ybWF0ID0gbG9uZ2lzaERhdGVGb3JtYXQuc3Vic3RyaW5nKDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGxvbmdpc2hEYXRlRm9ybWF0LnRyaW0oKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxlbWVudHNbNF0gPSBsb25naXNoRGF0ZUZvcm1hdDsKKyAgICAgICAgZWxlbWVudHNbNV0gPSBkX3RfZm10OworICAgICAgICBlbGVtZW50c1s2XSA9IChubGxkYXRlICE9IG51bGwpID8gbmxsZGF0ZSA6IGRfZm10OworICAgICAgICBlbGVtZW50c1s3XSA9IGRfZm10OworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA4OyBpKyspIHsKKyAgICAgICAgICAgIGlmIChlbGVtZW50c1tpXSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgZWxlbWVudHNbaV0gPSBjb252ZXJ0Rm9ybWF0cyhlbGVtZW50c1tpXSwgWF9wYXR0ZXJuLCB4X3BhdHRlcm4sIGNfcGF0dGVybik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVsZW1lbnRzW2ldID0gREVGQVVMVF9EQVRFVElNRV9FTEVNRU5UU1tpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXN1bHRQdXQocmVzdWx0LCAiRGF0ZVRpbWVQYXR0ZXJucyIsIGVsZW1lbnRzKTsKKyAgICB9CisgICAKKyAgICBwcml2YXRlIFN0cmluZyBjb252ZXJ0Rm9ybWF0cyhTdHJpbmcgcGF0dGVybiwgU3RyaW5nIFhfcGF0dGVybiwgCisgICAgICAgICAgICBTdHJpbmcgeF9wYXR0ZXJuLCBTdHJpbmcgY19wYXR0ZXJuKSB7CisgICAgICAgIAorICAgICAgICBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvciBodVRyYW5zbGl0ID1teVRyYW5zbGl0OworICAgICAgICBodVRyYW5zbGl0LmFwcGx5UGF0dGVybigiPFUwMDAwPiIpOworICAgICAgICBSZXBsYWNlYWJsZVN0cmluZyB0ZW1wU3RyID0gbmV3IFJlcGxhY2VhYmxlU3RyaW5nKCk7CisgICAgICAgIHRlbXBTdHIucmVwbGFjZSgwLHRlbXBTdHIubGVuZ3RoKCkscGF0dGVybik7ICAgICAgCisgICAgICAgIGh1VHJhbnNsaXQudHJhbnNsaXRlcmF0ZSh0ZW1wU3RyKTsKKyAgICAgICAgU3RyaW5nIHRwYXR0ZXJuID0gdGVtcFN0ci50b1N0cmluZygpOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRwYXR0ZXJuLmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IHRwYXR0ZXJuLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmIChjICE9ICclJykgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoYyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGkrKzsKKyAgICAgICAgICAgICAgICBjID0gdHBhdHRlcm4uY2hhckF0KGkpOworICAgICAgICAgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgICAgIGNhc2UgJ2EnOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJFRUUiKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnQSc6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIkVFRUUiKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnYic6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIk1NTSIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdCJzoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiTU1NTSIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdjJzoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChjX3BhdHRlcm4pOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdDJzogICAvLyoqIGhleSB7amZ9IC0gdGhpcyBpcyBzdXBwb3NlZCB0byBiZSB0aGUgY2VudHVyeSBvbmx5LgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJZWVlZIik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ2QnOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJkZCIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdEJzoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgibW0vZGQveXkiKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnZSc6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoImRkIik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ2gnOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJNTU0iKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnSCc6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIkhIIik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ0knOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJoaCIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdqJzoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiREREIik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ20nOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJNTSIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdNJzoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgibW0iKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnbic6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xuJyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ3AnOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJhYSIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdyJzoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChjb252ZXJ0Rm9ybWF0cygiJUk6JU06JVMgJXAiLCBYX3BhdHRlcm4sIHhfcGF0dGVybiwgY19wYXR0ZXJuKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ1MnOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJzcyIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICd0JzoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnXHQnKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnVCc6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoY29udmVydEZvcm1hdHMoIiVJOiVNOiVTIiwgWF9wYXR0ZXJuLCB4X3BhdHRlcm4sIGNfcGF0dGVybikpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdVJzoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgid3ciKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAndyc6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIkUiKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnVyc6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoInd3Iik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ3gnOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHhfcGF0dGVybik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ1gnOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKFhfcGF0dGVybik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ3knOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJ5eSIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdZJzoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgieXl5eSIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdaJzoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgieiIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICclJzoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiJSIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCclJyk7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBjb252ZXJ0Q09MTEFURShIYXNodGFibGUgcmVzdWx0LCBIYXNodGFibGUgc291cmNlKSB7CisgICAgICAgIFN0cmluZ1tdIHNvcnRPcmRlciA9IChTdHJpbmdbXSlzb3VyY2UuZ2V0KCJzb3J0X29yZGVyIik7CisgICAgICAgIEhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yIGh1VHJhbnNsaXQgPW15VHJhbnNsaXQ7CisgICAgICAgIGh1VHJhbnNsaXQuYXBwbHlQYXR0ZXJuKCI8VTAwMDA+Iik7CisgICAgICAgIFJlcGxhY2VhYmxlU3RyaW5nIHRlbXBTdHIgPSBuZXcgUmVwbGFjZWFibGVTdHJpbmcoKTsKKyAgICAgICAgLy90ZW1wU3RyLnJlcGxhY2UoMCx0ZW1wU3RyLmxlbmd0aCgpLHNvcnRPcmRlcik7ICAgICAgCisgICAgICAgIGZpbmFsIE9iamVjdFtdW10gREVGQVVMVF9DT0xMQVRJT049KE9iamVjdFtdW10pIGdldERlZmF1bHQoIkNvbGxhdGlvbkVsZW1lbnRzIik7CisgICAgICAgIGZpbmFsIE9iamVjdFtdW10gZWxlbWVudHM9KE9iamVjdFtdW10pY2xvbmUyREFycihERUZBVUxUX0NPTExBVElPTik7ICAgICAgICAKKyAgICAgICAgaHVUcmFuc2xpdC50cmFuc2xpdGVyYXRlKHRlbXBTdHIpOworICAgICAgICBpZiAoc29ydE9yZGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmICghImZvcndhcmQiLmVxdWFscyhzb3J0T3JkZXJbMF0pKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJFUlJPUjogVW5zdXBwb3J0ZWQgcHJpbWFyeSBzb3J0IG9yZGVyOiAiK3NvcnRPcmRlclswXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc29ydE9yZGVyLmxlbmd0aCA9PSAyICYmICEiZm9yd2FyZCIuZXF1YWxzKHNvcnRPcmRlclsxXSkgJiYgISJiYWNrd2FyZCIuZXF1YWxzKHNvcnRPcmRlclsxXSkpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkVSUk9SOiBVbnN1cHBvcnRlZCBzZWNvbmRhcnkgc29ydCBvcmRlcjogIitzb3J0T3JkZXJbMV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHNvcnRPcmRlci5sZW5ndGggPT0gMyAmJiAhImZvcndhcmQiLmVxdWFscyhzb3J0T3JkZXJbMl0pKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJFUlJPUjogVW5zdXBwb3J0ZWQgdGVydGlhcnkgc29ydCBvcmRlcjogIitzb3J0T3JkZXJbMl0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHNvcnRPcmRlci5sZW5ndGggPiAzKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJXQVJOSU5HOiBTb3J0IGxldmVscyBvZiBvcmRlciBncmVhdGVyIHRoYW4gdGhyZWUgaWdub3JlZC4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgUG9zaXhDb2xsYXRpb25CdWlsZGVyLkNvbGxhdGlvblJ1bGVbXSBydWxlU291cmNlID0gCisgICAgICAgICAgICAoUG9zaXhDb2xsYXRpb25CdWlsZGVyLkNvbGxhdGlvblJ1bGVbXSlzb3VyY2UuZ2V0KCJwb3NpeF9zb3J0X3J1bGVzIik7CisKKyAgICAgICAgaWYgKHJ1bGVTb3VyY2UgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIC8vYWxsb2NhdGUgYSBsaXN0IG9mIGNvbGxhdGlvbkl0ZW1zLiAgQWRkIGFuIGV4dHJhIGVudHJ5IGZvciBzZWNvbmRhcnkgb3JkZXJpbmcKKyAgICAgICAgICAgIENvbGxhdGlvbkl0ZW1bXSBydWxlcyA9IG5ldyBDb2xsYXRpb25JdGVtW3J1bGVTb3VyY2UubGVuZ3RoKzFdOworICAgICAgICAgICAgUG9zaXhDb2xsYXRpb25CdWlsZGVyLkNvbGxhdGlvblJ1bGUgcHJldlJ1bGUgPSBudWxsOworICAgICAgICAgICAgICAgIC8vYWRkIGFsbCB0aGUgcnVsZXMgZm9yIG5vbi1leHBhbmRpbmcgY2hhcmFjdGVycworICAgICAgICAgICAgaW50IGkgPSAwOworICAgICAgICAgICAgZm9yIChpbnQgbmR4ID0gMDsgbmR4IDwgcnVsZVNvdXJjZS5sZW5ndGg7IG5keCsrKSB7CisgICAgICAgICAgICAgICAgUG9zaXhDb2xsYXRpb25CdWlsZGVyLkNvbGxhdGlvblJ1bGUgcnVsZSA9IHJ1bGVTb3VyY2VbbmR4XTsKKyAgICAgICAgICAgICAgICAgICAgLy9hZGQgbm9uLWV4cGFuZGluZyBjaGFyYWN0ZXJzIHRvIHRoZSBzb3J0IGxpc3QKKyAgICAgICAgICAgICAgICBpZiAocnVsZS5nZXRTaXplKCkgPD0gMSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgZGlmZjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHByZXZSdWxlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vaWYgaXQncyB0aGUgZmlyc3QgcnVsZSwgZG9uJ3QgY29tcGFyZSB0byBhbnl0aGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vc2VlayBiYWNrIHNvIGl0IGNhbiBiZSBhcHBlbmRlZCB0byB0aGUgZGVmYXVsdCBydWxlcworICAgICAgICAgICAgICAgICAgICAgICAgcnVsZXNbaV0gPSBuZXcgQ29sbGF0aW9uSXRlbShydWxlLmdldFN5bWJvbCgpKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vY29tcGFyZSB0byBwcmV2aW91cyBpdGVtCisgICAgICAgICAgICAgICAgICAgICAgICBkaWZmID0gcHJldlJ1bGUuY29tcGFyZShydWxlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVzW2ldID0gbmV3IENvbGxhdGlvbkl0ZW0oZGlmZiwgcnVsZS5nZXRTeW1ib2woKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcnVsZXNbaSsrXS5zZXRDb21tZW50KHJ1bGUuZ2V0U291cmNlKCkpOworICAgICAgICAgICAgICAgICAgICBwcmV2UnVsZSA9IHJ1bGU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vYWRkIHJ1bGVzIGZvciBleHBhbmRpbmcgY2hhcmFjdGVycworICAgICAgICAgICAgU3RyaW5nIHByZXZTZWVrID0gbnVsbDsKKyAgICAgICAgICAgIHByZXZSdWxlID0gbnVsbDsKKyAgICAgICAgICAgIGZvciAoaW50IG5keCA9IDA7IG5keCA8IHJ1bGVTb3VyY2UubGVuZ3RoOyBuZHgrKykgeworICAgICAgICAgICAgICAgIFBvc2l4Q29sbGF0aW9uQnVpbGRlci5Db2xsYXRpb25SdWxlIHJ1bGUgPSBydWxlU291cmNlW25keF07CisgICAgICAgICAgICAgICAgaWYgKHJ1bGUuZ2V0U2l6ZSgpID4gMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy9maW5kIG91dCB3aGF0IHRoaXMgY2hhcmFjdGVyIGV4cGFuZHMgdG8KKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHNlZWsgPSBydWxlLmdldEV4cGFuc2lvbigpOworICAgICAgICAgICAgICAgICAgICBpZiAoIXNlZWsuZXF1YWxzKHByZXZTZWVrKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vaWYgaXQncyBub3QgdGhlIHNhbWUgYXMgdGhlIHByZXZpb3VzIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vdGhlbiBzZWVrIHRvIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIGV4cGFuc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vYW5kIGNvbXBhcmUgdG8gdGhhdAorICAgICAgICAgICAgICAgICAgICAgICAgUG9zaXhDb2xsYXRpb25CdWlsZGVyLkNvbGxhdGlvblJ1bGUgc2Vla1J1bGUgPSBydWxlLnNlZWtzVG9SdWxlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBydWxlc1tpXSA9IG5ldyBDb2xsYXRpb25JdGVtKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWVrUnVsZS5jb21wYXJlKHJ1bGUpLCBydWxlLmdldFN5bWJvbCgpLCBydWxlLmdldEV4cGFuc2lvbigpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByZXZTZWVrID0gc2VlazsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwcmV2UnVsZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9pdCBleHBhbmRzIHRvIHRoZSBzYW1lIGNoYXJhY3RlcnMgYXMgdGhlIHByZXZpb3VzIGV4cGFuc2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3NvIGNvbXBhcmUgdG8gdGhlIHByZXZpb3VzIGV4cGFuc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgcnVsZXNbaV0gPSBuZXcgQ29sbGF0aW9uSXRlbSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldlJ1bGUuY29tcGFyZShydWxlKSwgcnVsZS5nZXRTeW1ib2woKSwgcHJldlJ1bGUuZ2V0U3ltYm9sKCkpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vVGhlIHVubGlrZWx5IGNhc2UgdGhhdCB0aGUgZmlyc3QgY2hhcmFjdGVyIHdpbGwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2JlIGFuIGV4cGFuZGluZyBjaGFyYWN0ZXIuLi5JIGRvbid0IHRoaW5rCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy90aGlzIGlzIGV2ZW4gcG9zc2libGUuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVzW2ldID0gbmV3IENvbGxhdGlvbkl0ZW0ocnVsZS5nZXRTeW1ib2woKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcnVsZXNbaSsrXS5zZXRDb21tZW50KHJ1bGUuZ2V0U291cmNlKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwcmV2UnVsZSA9IHJ1bGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoImJhY2t3YXJkIi5lcXVhbHMoc29ydE9yZGVyWzFdKSkgeworICAgICAgICAgICAgICAgIGVsZW1lbnRzWzFdWzFdID0gInRydWUiOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlbGVtZW50c1sxXVsxXSA9ICJmYWxzZSI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbGVtZW50c1syXVsxXT0oT2JqZWN0KXJ1bGVzOworICAgICAgICAgICAgcmVzdWx0UHV0KHJlc3VsdCwgIkNvbGxhdGlvbkVsZW1lbnRzIiwgZWxlbWVudHMpOworICAgICAgICB9CisgICAgfQorICAgICAgICAKKyAgICBwcml2YXRlIHZvaWQgcmVzdWx0UHV0KEhhc2h0YWJsZSByZXN1bHRUYWJsZSwgU3RyaW5nIHRhZywgT2JqZWN0IHZhbHVlKSB7CisgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSByZXR1cm47CisgICAgICAgIHJlc3VsdFRhYmxlLnB1dCh0YWcsIHZhbHVlKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBPYmplY3QgZ2V0RGVmYXVsdChTdHJpbmcgZGVzaXJlZFJlc291cmNlKSB7CisgICAgICAgIHJldHVybiBnZXRQYXJlbnRCdW5kbGUoKS5nZXRPYmplY3QoZGVzaXJlZFJlc291cmNlKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBSZXNvdXJjZUJ1bmRsZSBnZXRQYXJlbnRCdW5kbGUoKSB7CisgICAgICAgIHJldHVybiBSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGUoImNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlci5teUxvY2FsZUVsZW1lbnRzIiwgcGFyZW50TG9jYWxlKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgcmVwbGFjZShTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0LCBTdHJpbmcgcmVwbGFjZW1lbnQpIHsKKyAgICAgICAgaWYgKHRhcmdldC5lcXVhbHMocmVwbGFjZW1lbnQpKSB7CisgICAgICAgICAgICByZXR1cm4gc291cmNlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGludCBsYXN0TmR4ID0gMDsKKyAgICAgICAgICAgIGludCBuZHggPSBzb3VyY2UuaW5kZXhPZih0YXJnZXQpOworICAgICAgICAgICAgd2hpbGUgKG5keCA+PSAwKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChzb3VyY2Uuc3Vic3RyaW5nKGxhc3ROZHgsIG5keCkpOworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocmVwbGFjZW1lbnQpOworICAgICAgICAgICAgICAgIG5keCArPSB0YXJnZXQubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgbGFzdE5keCA9IG5keDsKKyAgICAgICAgICAgICAgICBuZHggPSBzb3VyY2UuaW5kZXhPZih0YXJnZXQsIG5keCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHNvdXJjZS5zdWJzdHJpbmcobGFzdE5keCkpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgICAgICB9CisgICAgfQorCS8ve3tERUNMQVJFX0NPTlRST0xTCisJLy99fQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvUXVvdGVUcmFuc2l0aW9uLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1F1b3RlVHJhbnNpdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjUwYTgwYzIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1F1b3RlVHJhbnNpdGlvbi5qYXZhCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvUXVvdGVUcmFuc2l0aW9uLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDU6MzEgJCAKKyAqICRSZXZpc2lvbjogMS4yICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS51dGlsLio7CisKK3B1YmxpYyBjbGFzcyBRdW90ZVRyYW5zaXRpb24gZXh0ZW5kcyBDb21wbGV4VHJhbnNpdGlvbiB7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBRdW90ZVRyYW5zaXRpb24gR0xPQkFMID0gbmV3IFF1b3RlVHJhbnNpdGlvbihTVUNDRVNTKTsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2hhciBTVFJJTkdfQ0hBUiA9ICciJzsKKyAgICAKKyAgICBwdWJsaWMgUXVvdGVUcmFuc2l0aW9uKGludCBzdWNjZXNzKSB7CisgICAgICAgIHN1cGVyKHN1Y2Nlc3MpOworICAgICAgICAgICAgLy97e0lOSVRfQ09OVFJPTFMKKyAgICAgICAgLy99fQorICAgIH0KKyAgICBwdWJsaWMgYm9vbGVhbiBhY2NlcHRzKGludCBjKSB7CisgICAgICAgIHJldHVybiBTVFJJTkdfQ0hBUiA9PSAoY2hhciljOworICAgIH0KKyAgICBwcm90ZWN0ZWQgTGV4LlRyYW5zaXRpb25bXVtdIGdldFN0YXRlcygpIHsKKyAgICAgICAgcmV0dXJuIHN0YXRlczsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTGV4LlRyYW5zaXRpb25bXVtdIHN0YXRlcyA9IHsKKyAgICAgICAgeyAvL3N0YXRlIDA6IAorICAgICAgICAgICAgbmV3IExleC5DaGFyVHJhbnNpdGlvbihTVFJJTkdfQ0hBUiwgTGV4LklHTk9SRV9DT05TVU1FLCAtMSksCisgICAgICAgICAgICBuZXcgTGV4LlBhcnNlRXhjZXB0aW9uVHJhbnNpdGlvbigiaWxsZWdhbCBjaGFyYWN0ZXIgaW4gcXVvdGVkIHN0cmluZyIpCisgICAgICAgIH0sCisgICAgICAgIHsgLy9zdGF0ZSAxOgorICAgICAgICAgICAgbmV3IExleC5DaGFyVHJhbnNpdGlvbihTVFJJTkdfQ0hBUiwgTGV4LklHTk9SRV9DT05TVU1FLCBTVUNDRVNTKSwKKyAgICAgICAgICAgIG5ldyBMZXguU3RyaW5nVHJhbnNpdGlvbihFT0xUcmFuc2l0aW9uLkVPTF9DSEFSUywgTGV4LklHTk9SRV9DT05TVU1FLCAtMiksCisgICAgICAgICAgICBuZXcgRXNjYXBlVHJhbnNpdGlvbigtMSksCisgICAgICAgICAgICBuZXcgU3ltYm9sVHJhbnNpdGlvbigtMSksCisgICAgICAgICAgICBuZXcgTGV4LkVPRlRyYW5zaXRpb24oLTIpLAorICAgICAgICAgICAgbmV3IExleC5EZWZhdWx0VHJhbnNpdGlvbihMZXguQUNDVU1VTEFURV9DT05TVU1FLCAtMSkKKyAgICAgICAgfSwKKyAgICAgICAgeyAvL3N0YXRlIDI6IGZhaWx1cmUgZnJvbSBlb2YKKyAgICAgICAgICAgIG5ldyBMZXguUGFyc2VFeGNlcHRpb25UcmFuc2l0aW9uKCJ1bnRlcm1pbmF0ZWQgc3RyaW5nIikKKyAgICAgICAgfQorICAgIH07CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBMZXguVHJhbnNpdGlvbltdW10gc3RhdGVzID0ge3sgCisgICAgICAgICAgICAgICAgbmV3IFF1b3RlVHJhbnNpdGlvbihTVUNDRVNTKSwKKyAgICAgICAgICAgICAgICBuZXcgTGV4LkVPRlRyYW5zaXRpb24oKSwKKyAgICAgICAgICAgICAgICBuZXcgTGV4LlBhcnNlRXhjZXB0aW9uVHJhbnNpdGlvbigiYmFkIHRlc3QgaW5wdXQiKQorICAgICAgICAgICAgfX07CisgICAgICAgICAgICBFc2NhcGVUcmFuc2l0aW9uLnNldEVzY2FwZUNoYXIoJy8nKTsKKyAgICAgICAgICAgIFN0cmluZyB0ZXh0ID0gIlwiaGVsbG88XCIvPj4vZDMyd29ybGRcIlwiPG9uZT4vXG48dHdvPlwiIjsKKyAgICAgICAgICAgIFN0cmluZ1JlYWRlciBzciA9IG5ldyBTdHJpbmdSZWFkZXIodGV4dCk7CisgICAgICAgICAgICBQdXNoYmFja1JlYWRlciBwciA9IG5ldyBQdXNoYmFja1JlYWRlcihzcik7CisgICAgICAgICAgICBMZXggcGFyc2VyID0gbmV3IExleChzdGF0ZXMsIHByKTsKKyAgICAgICAgICAgIC8vcGFyc2VyLmRlYnVnKHRydWUpOworICAgICAgICAgICAgaW50IHMgPSBwYXJzZXIubmV4dFRva2VuKCk7CisgICAgICAgICAgICB3aGlsZSAocyA9PSBTVUNDRVNTKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHBhcnNlci5nZXREYXRhKCkpOworICAgICAgICAgICAgICAgIHMgPSBwYXJzZXIubmV4dFRva2VuKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgLy97e0RFQ0xBUkVfQ09OVFJPTFMKKyAgICAvL319Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1JhbmdlVHJhbnNpdGlvbi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9SYW5nZVRyYW5zaXRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42NTM4OGVhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9SYW5nZVRyYW5zaXRpb24uamF2YQpAQCAtMCwwICsxLDQ3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1JhbmdlVHJhbnNpdGlvbi5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA1OjMxICQgCisgKiAkUmV2aXNpb246IDEuMiAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC4qOworCitwdWJsaWMgY2xhc3MgUmFuZ2VUcmFuc2l0aW9uIGV4dGVuZHMgQ29tcGxleFRyYW5zaXRpb24geworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgUmFuZ2VUcmFuc2l0aW9uIEdMT0JBTCA9IG5ldyBSYW5nZVRyYW5zaXRpb24oU1VDQ0VTUyk7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgUkFOR0VfQ0hBUlMgPSAiLi4uIjsKKyAgICBwdWJsaWMgUmFuZ2VUcmFuc2l0aW9uKGludCBzdWNjZXNzKXsKKyAgICAgICAgc3VwZXIoc3VjY2Vzcyk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBib29sZWFuIGFjY2VwdHMoaW50IGMpeworICAgICAgICByZXR1cm4gUkFOR0VfQ0hBUlMuaW5kZXhPZigoY2hhciljKSA+PTA7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBMZXguVHJhbnNpdGlvbltdW11nZXRTdGF0ZXMoKXsKKyAgICAgICAgcmV0dXJuIHN0YXRlczsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTGV4LlRyYW5zaXRpb25bXVtdIHN0YXRlcz0geworCisgICAgICAgIHsgLy9zdGF0ZSAwOiAKKyAgICAgICAgICAgIG5ldyBMZXguU3RyaW5nVHJhbnNpdGlvbihSQU5HRV9DSEFSUywgTGV4LklHTk9SRV9DT05TVU1FLCAtMSksCisgICAgICAgICAgICBuZXcgTGV4LlBhcnNlRXhjZXB0aW9uVHJhbnNpdGlvbigiaWxsZWdhbCBzcGFjZSBjaGFyYWN0ZXIiKQorICAgICAgICB9LAorICAgICAgICB7IC8vc3RhdGUgMToKKyAgICAgICAgICAgIG5ldyBMZXguRU9GVHJhbnNpdGlvbihTVUNDRVNTKSwKKyAgICAgICAgICAgIG5ldyBMZXguU3RyaW5nVHJhbnNpdGlvbihSQU5HRV9DSEFSUywgTGV4LklHTk9SRV9DT05TVU1FLCAtMSksCisgICAgICAgICAgICBuZXcgTGV4LkRlZmF1bHRUcmFuc2l0aW9uKExleC5JR05PUkVfUFVUQkFDSywgU1VDQ0VTUykKKyAgICAgICAgfSwKKyAgICB9OworfQorICAgICAgICAgICAgCisgICAgClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Tb3J0ZWRWZWN0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvU29ydGVkVmVjdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTllZWEwMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvU29ydGVkVmVjdG9yLmphdmEKQEAgLTAsMCArMSwzNTYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvU29ydGVkVmVjdG9yLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDU6MzEgJCAKKyAqICRSZXZpc2lvbjogMS4yICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworaW1wb3J0IGphdmEudXRpbC5FbnVtZXJhdGlvbjsKKy8qKgorICAgIEltcGxlbWVudHMgYSBzb3J0ZWQgdmVjdG9yLiBZb3UgY2FuIGFkZCBhbnl0aGluZyB0byBpdDsgd2hlbiB5b3UgYWNjZXNzIGFueSBlbGVtZW50LCBpdCBzb3J0cworICAgIHRoZSBhcnJheSBpbnRlcm5hbGx5IHdoZW4gbmVjZXNzYXJ5LgorICAgIDxwPkEgQ29tcGFyYXRvciBpcyB1c2VkIHRvIGNvbXBhcmUgdGhlIGVsZW1lbnRzLCBhbGxvd2luZyBhcmJpdHJhcnkgb3JkZXJpbmdzLgorICAgIElmIG5vIENvbXBhcmF0b3IgaXMgc3VwcGxpZWQsIHRoZW4gb25lIGlzIGNvbnN0cnVjdGVkIGJhc2VkIG9uIHRoZSB0eXBlCisgICAgb2YgdGhlIGZpcnN0IGVsZW1lbnQgYWRkZWQuIE9ubHkgTnVtYmVycyBhbmQgQ29tcGFyYWJsZXMgYXJlIGhhbmRsZWQuCisgICAgPHA+RHVwbGljYXRlcyBhcmUgYWxsb3dlZC4KKyovCitmaW5hbCBwdWJsaWMgY2xhc3MgU29ydGVkVmVjdG9yIHsKKyAgICAvKioKKyAgICAgICAgQ29waWVzIGVsZW1lbnRzIG9mIHZlY3RvciwgZW51bWVyYXRpb24gb3IgYXJyYXkKKyAgICAgICAgTm90ZTogdGhlIG9iamVjdHMgaW4gdGhlIHNvdXJjZSBhcmUgTk9UIGNsb25lZC4KKyAgICAgICAgRG8gbm90IGNoYW5nZSB0aGVtIG9yIHRoZSBzb3J0aW5nIHdpbGwgYmUgaW52YWxpZC4KKyAgICAqLworICAgIHB1YmxpYyBTb3J0ZWRWZWN0b3IoT2JqZWN0W10gbmV3VmFsdWVzLCBDb21wYXJhdG9yIGNvbXBhcmF0b3IpIHsKKyAgICAgICAgdGhpcy5jb21wYXJhdG9yID0gY29tcGFyYXRvcjsKKyAgICAgICAgYWRkRWxlbWVudHMobmV3VmFsdWVzKTsKKyAgICAgICAgICAgIC8ve3tJTklUX0NPTlRST0xTCisJCS8vfX0KK30KKworICAgIHB1YmxpYyBTb3J0ZWRWZWN0b3IoVmVjdG9yIG5ld1ZhbHVlcywgQ29tcGFyYXRvciBjb21wYXJhdG9yKSB7CisgICAgICAgIHRoaXMuY29tcGFyYXRvciA9IGNvbXBhcmF0b3I7CisgICAgICAgIGFkZEVsZW1lbnRzKG5ld1ZhbHVlcyk7CisgICAgfQorCisgICAgcHVibGljIFNvcnRlZFZlY3RvcihFbnVtZXJhdGlvbiBuZXdWYWx1ZXMsIENvbXBhcmF0b3IgY29tcGFyYXRvcikgeworICAgICAgICB0aGlzLmNvbXBhcmF0b3IgPSBjb21wYXJhdG9yOworICAgICAgICBhZGRFbGVtZW50cyhuZXdWYWx1ZXMpOworICAgIH0KKworICAgIHB1YmxpYyBTb3J0ZWRWZWN0b3IoT2JqZWN0W10gbmV3VmFsdWVzKSB7CisgICAgICAgIGFkZEVsZW1lbnRzKG5ld1ZhbHVlcyk7CisgICAgfQorCisgICAgcHVibGljIFNvcnRlZFZlY3RvcihDb21wYXJhdG9yIGNvbXBhcmF0b3IpIHsKKyAgICAgICAgdGhpcy5jb21wYXJhdG9yID0gY29tcGFyYXRvcjsKKyAgICB9CisKKyAgICBwdWJsaWMgU29ydGVkVmVjdG9yKFZlY3RvciBuZXdWYWx1ZXMpIHsKKyAgICAgICAgYWRkRWxlbWVudHMobmV3VmFsdWVzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU29ydGVkVmVjdG9yKEVudW1lcmF0aW9uIG5ld1ZhbHVlcykgeworICAgICAgICBhZGRFbGVtZW50cyhuZXdWYWx1ZXMpOworICAgIH0KKworICAgIHB1YmxpYyBTb3J0ZWRWZWN0b3IoKSB7CisgICAgfQorCisgICAgLyoqCisgICAgICAgIEFkZHMgb25lIGVsZW1lbnQuCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhZGRFbGVtZW50KE9iamVjdCBlbGVtZW50KSB7CisgICAgICAgIGlmIChjb3VudCA+PSBkYXRhQXJyYXkubGVuZ3RoKSBzZXRDYXBhY2l0eShjb3VudCoyICsgMTcpOworICAgICAgICBkYXRhQXJyYXlbY291bnQrK10gPSBlbGVtZW50OworICAgICAgICBpc1ZhbGlkID0gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICAgIEFkZHMgbXVsdGlwbGUgZWxlbWVudHMuIEZhc3RlciB0aGFuIGFkZGluZyBvbmUgYXQgYSB0aW1lLgorICAgICovCisgICAgcHVibGljIHZvaWQgYWRkRWxlbWVudHMoT2JqZWN0W10gbmV3VmFsdWVzKSB7CisgICAgICAgIGludCBuZXdDb3VudCA9IGNvdW50ICsgbmV3VmFsdWVzLmxlbmd0aDsKKyAgICAgICAgaWYgKG5ld0NvdW50ID4gZGF0YUFycmF5Lmxlbmd0aCkgc2V0Q2FwYWNpdHkobmV3Q291bnQpOworICAgICAgICBmb3IgKGludCBpID0gY291bnQ7IGkgPCBuZXdDb3VudDsgKytpKQorICAgICAgICAgICAgZGF0YUFycmF5W2ldID0gbmV3VmFsdWVzW2ktY291bnRdOworICAgICAgICBjb3VudCA9IG5ld0NvdW50OworICAgICAgICBpc1ZhbGlkID0gZmFsc2U7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYWRkRWxlbWVudHMoVmVjdG9yIG5ld1ZhbHVlcykgeworICAgICAgICBpbnQgbmV3Q291bnQgPSBjb3VudCArIG5ld1ZhbHVlcy5zaXplKCk7CisgICAgICAgIGlmIChuZXdDb3VudCA+IGRhdGFBcnJheS5sZW5ndGgpIHNldENhcGFjaXR5KG5ld0NvdW50KTsKKyAgICAgICAgZm9yIChpbnQgaSA9IGNvdW50OyBpIDwgbmV3Q291bnQ7ICsraSkKKyAgICAgICAgICAgIGRhdGFBcnJheVtpXSA9IG5ld1ZhbHVlcy5lbGVtZW50QXQoaS1jb3VudCk7CisgICAgICAgIGNvdW50ID0gbmV3Q291bnQ7CisgICAgICAgIGlzVmFsaWQgPSBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBhZGRFbGVtZW50cyhFbnVtZXJhdGlvbiBuZXdWYWx1ZXMpIHsKKyAgICAgICAgd2hpbGUgKG5ld1ZhbHVlcy5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgYWRkRWxlbWVudChuZXdWYWx1ZXMubmV4dEVsZW1lbnQoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgICAgUmVtb3ZlcyBlbGVtZW50cyBhdCBpbmRpY2VzID49IHN0YXJ0SW5kZXggYW5kIDwgZW5kSW5kZXgKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlbW92ZUVsZW1lbnRzKGludCBzdGFydEluZGV4LCBpbnQgZW5kSW5kZXgpIHsKKyAgICAgICAgaWYgKCFpc1ZhbGlkKSB2YWxpZGF0ZSgpOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGRhdGFBcnJheSxlbmRJbmRleCxkYXRhQXJyYXksc3RhcnRJbmRleCxjb3VudCAtIGVuZEluZGV4KTsKKyAgICAgICAgZm9yIChpbnQgaSA9IGNvdW50IC0gKGVuZEluZGV4IC0gc3RhcnRJbmRleCk7IGkgPCBjb3VudDsrK2kpCisgICAgICAgICAgICBkYXRhQXJyYXlbaV0gPSBudWxsOyAgIC8vIGZyZWUgdXAgc3RvcmFnZQorICAgICAgICBjb3VudCAtPSAoZW5kSW5kZXggLSBzdGFydEluZGV4KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgICAgU2V0cyBjb21wYXJhdG9yCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDb21wYXJhdG9yKENvbXBhcmF0b3IgY29tcGFyYXRvcikgeworICAgICAgICB0aGlzLmNvbXBhcmF0b3IgPSBjb21wYXJhdG9yOworICAgICAgICBpc1ZhbGlkID0gZmFsc2U7CisgICAgfQorCisgICAgcHVibGljIENvbXBhcmF0b3IgZ2V0Q29tcGFyYXRvcigpIHsKKyAgICAgICAgaWYgKGNvbXBhcmF0b3IgPT0gbnVsbCkgdmFsaWRhdGVDb21wYXJhdG9yKCk7CisgICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmF0b3I7CisgICAgfQorCisgICAgLyoqCisgICAgICAgIEdldHMgc2l6ZSwgdGhlIGFjdHVhbCBudW1iZXIgb2YgZWxlbWVudHMuCisgICAgKi8KKyAgICBwdWJsaWMgaW50IHNpemUoKSB7CisgICAgICAgIHJldHVybiBjb3VudDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgICAgR2V0cyBjYXBhY2l0eSwgdGhlIG51bWJlciBvZiBlbGVtZW50cyB5b3UgY2FuIGhhdmUgd2l0aG91dCBncm93aW5nIHRoZSBhcnJheS4KKyAgICAqLworICAgIHB1YmxpYyBpbnQgY2FwYWNpdHkoKSB7CisgICAgICAgIHJldHVybiBkYXRhQXJyYXkubGVuZ3RoOworICAgIH0KKworICAgIC8qKgorICAgICAgICBTZXRzIGNhcGFjaXR5LCB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIHlvdSBjYW4gaGF2ZSB3aXRob3V0IGdyb3dpbmcgdGhlIGFycmF5LgorICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Q2FwYWNpdHkoaW50IG5ld1NpemUpIHsKKyAgICAgICAgT2JqZWN0W10gdGVtcCA9IG5ldyBPYmplY3RbbmV3U2l6ZV07CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoZGF0YUFycmF5LCAwLCB0ZW1wLCAwLCBNYXRoLm1pbihjb3VudCxuZXdTaXplKSk7CisgICAgICAgIGRhdGFBcnJheSA9IHRlbXA7CisgICAgfQorCisgICAgLyoqCisgICAgICAgIFRyaW1zIHRoZSBhcnJheS4KKyAgICAqLworICAgIHB1YmxpYyB2b2lkIHRyaW1Ub1NpemUoKSB7CisgICAgICAgIHNldENhcGFjaXR5KGNvdW50KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgICAgR2V0cyB0aGUgZWxlbWVudCBhdCB0aGUgaW5kZXgKKyAgICAqLworICAgIHB1YmxpYyBPYmplY3QgZWxlbWVudEF0IChpbnQgaW5kZXgpIHsKKyAgICAgICAgaWYgKCFpc1ZhbGlkKSB2YWxpZGF0ZSgpOworICAgICAgICBpZiAoaW5kZXggPj0gY291bnQpIHJldHVybiBkYXRhQXJyYXlbZGF0YUFycmF5Lmxlbmd0aF07CisgICAgICAgIHJldHVybiBkYXRhQXJyYXlbaW5kZXhdOworICAgIH0KKworICAgIC8qKgorICAgICAgICBTZWVzIHdoZXRoZXIgdGhlIHZlY3RvciBjb250YWlucyB0aGUgb2JqZWN0CisgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBjb250YWlucyAoT2JqZWN0IHZhbHVlKSB7CisgICAgICAgIGludCBpbmRleCA9IGluZGV4T2YodmFsdWUpOworICAgICAgICByZXR1cm4gKGluZGV4ID49IDAgJiYgY29tcGFyYXRvci5jb21wYXJlKHZhbHVlLGRhdGFBcnJheVtpbmRleF0pID09IDApOworICAgIH0KKworICAgIC8qKgorICAgICAgICBHZXRzIGFuIGVudW1lcmF0aW9uCisgICAgKi8KKyAgICBwdWJsaWMgRW51bWVyYXRpb24gZWxlbWVudHMoKSB7CisgICAgICAgIGlmICghaXNWYWxpZCkgdmFsaWRhdGUoKTsKKyAgICAgICAgcmV0dXJuIG5ldyBBcnJheUVudW1lcmF0aW9uKGRhdGFBcnJheSwwLGNvdW50KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBjb3B5SW50byhPYmplY3RbXSB0b0ZpbGwpIHsKKyAgICAgICAgaWYgKCFpc1ZhbGlkKSB2YWxpZGF0ZSgpOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGRhdGFBcnJheSwwLHRvRmlsbCwwLHRvRmlsbC5sZW5ndGgpOworICAgIH0KKworICAgIC8qKgorICAgICAgICBGaW5kcyBmaXJzdCBpbmRleCB3aG9zZSB2YWx1ZSBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gc2VhcmNoVmFsdWUKKyAgICAgICAgSWYgdGhlcmUgYXJlIG5vbmUsIHJldHVybnMgLTEKKyAgICAqLworICAgIHB1YmxpYyBpbnQgaW5kZXhPZihPYmplY3Qgc2VhcmNoVmFsdWUpCisgICAgeworICAgICAgICBpZiAoIWlzVmFsaWQpIHZhbGlkYXRlKCk7CisgICAgICAgIGludCBpbmRleCA9IHN0YXJ0SW5kZXg7CisgICAgICAgIGlmICgwIDw9IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2F1eFN0YXJ0XSkpIHsKKyAgICAgICAgICAgIGluZGV4ICs9IGF1eFN0YXJ0OworICAgICAgICB9CisgICAgICAgIC8vIHZlcnkgZmFzdCwgY29tcGxldGVseSB1bnJvbGxlZCBiaW5hcnkgc2VhcmNoCisgICAgICAgIC8vIGVhY2ggY2FzZSBkZWxpYmVyYXRlbHkgZmFsbHMgdGhyb3VnaCB0byB0aGUgbmV4dAorICAgICAgICBzd2l0Y2ggKHBvd2VyKSB7CisgICAgICAgIGNhc2UgMzE6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHg0MDAwMDAwMF0pKSBpbmRleCAtPSAweDQwMDAwMDAwOworICAgICAgICBjYXNlIDMwOiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4LTB4MjAwMDAwMDBdKSkgaW5kZXggLT0gMHgyMDAwMDAwMDsKKyAgICAgICAgY2FzZSAyOTogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDEwMDAwMDAwXSkpIGluZGV4IC09IDB4MTAwMDAwMDA7CisKKyAgICAgICAgY2FzZSAyODogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDgwMDAwMDBdKSkgaW5kZXggLT0gMHg4MDAwMDAwOworICAgICAgICBjYXNlIDI3OiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4LTB4NDAwMDAwMF0pKSBpbmRleCAtPSAweDQwMDAwMDA7CisgICAgICAgIGNhc2UgMjY6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHgyMDAwMDAwXSkpIGluZGV4IC09IDB4MjAwMDAwMDsKKyAgICAgICAgY2FzZSAyNTogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDEwMDAwMDBdKSkgaW5kZXggLT0gMHgxMDAwMDAwOworCisgICAgICAgIGNhc2UgMjQ6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHg4MDAwMDBdKSkgaW5kZXggLT0gMHg4MDAwMDA7CisgICAgICAgIGNhc2UgMjM6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHg0MDAwMDBdKSkgaW5kZXggLT0gMHg0MDAwMDA7CisgICAgICAgIGNhc2UgMjI6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHgyMDAwMDBdKSkgaW5kZXggLT0gMHgyMDAwMDA7CisgICAgICAgIGNhc2UgMjE6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHgxMDAwMDBdKSkgaW5kZXggLT0gMHgxMDAwMDA7CisKKyAgICAgICAgY2FzZSAyMDogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDgwMDAwXSkpIGluZGV4IC09IDB4ODAwMDA7CisgICAgICAgIGNhc2UgMTk6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHg0MDAwMF0pKSBpbmRleCAtPSAweDQwMDAwOworICAgICAgICBjYXNlIDE4OiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4LTB4MjAwMDBdKSkgaW5kZXggLT0gMHgyMDAwMDsKKyAgICAgICAgY2FzZSAxNzogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDEwMDAwXSkpIGluZGV4IC09IDB4MTAwMDA7CisKKyAgICAgICAgY2FzZSAxNjogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDgwMDBdKSkgaW5kZXggLT0gMHg4MDAwOworICAgICAgICBjYXNlIDE1OiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4LTB4NDAwMF0pKSBpbmRleCAtPSAweDQwMDA7CisgICAgICAgIGNhc2UgMTQ6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHgyMDAwXSkpIGluZGV4IC09IDB4MjAwMDsKKyAgICAgICAgY2FzZSAxMzogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDEwMDBdKSkgaW5kZXggLT0gMHgxMDAwOworCisgICAgICAgIGNhc2UgMTI6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHg4MDBdKSkgaW5kZXggLT0gMHg4MDA7CisgICAgICAgIGNhc2UgMTE6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHg0MDBdKSkgaW5kZXggLT0gMHg0MDA7CisgICAgICAgIGNhc2UgMTA6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHgyMDBdKSkgaW5kZXggLT0gMHgyMDA7CisgICAgICAgIGNhc2UgIDk6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHgxMDBdKSkgaW5kZXggLT0gMHgxMDA7CisKKyAgICAgICAgY2FzZSAgODogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDgwXSkpIGluZGV4IC09IDB4ODA7CisgICAgICAgIGNhc2UgIDc6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHg0MF0pKSBpbmRleCAtPSAweDQwOworICAgICAgICBjYXNlICA2OiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4LTB4MjBdKSkgaW5kZXggLT0gMHgyMDsKKyAgICAgICAgY2FzZSAgNTogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDEwXSkpIGluZGV4IC09IDB4MTA7CisKKyAgICAgICAgY2FzZSAgNDogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDhdKSkgaW5kZXggLT0gODsKKyAgICAgICAgY2FzZSAgMzogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDRdKSkgaW5kZXggLT0gNDsKKyAgICAgICAgY2FzZSAgMjogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDJdKSkgaW5kZXggLT0gMjsKKyAgICAgICAgY2FzZSAgMTogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDFdKSkgaW5kZXggLT0gMTsKKworICAgICAgICBjYXNlICAwOiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4XSkpIGluZGV4IC09IDE7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGluZGV4OworICAgIH0KKworICAgIC8vID09PT09PT09PT09PT09PT09IHByaXZhdGVzID09PT09PT09PT09PT09PT09PQorICAgIC8qKiBPbmx5IGNhbGwgaWYgY29tcGFyYXRvciBpcyBudWxsCisgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgdmFsaWRhdGVDb21wYXJhdG9yKCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgT2JqZWN0IHRyaWFsID0gZGF0YUFycmF5WzBdOworICAgICAgICAgICAgaWYgKHRyaWFsIGluc3RhbmNlb2YgRmxvYXQgfHwgdHJpYWwgaW5zdGFuY2VvZiBEb3VibGUpIHsKKyAgICAgICAgICAgICAgICBjb21wYXJhdG9yID0gbmV3IERvdWJsZUNvbXBhcmF0b3IoKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodHJpYWwgaW5zdGFuY2VvZiBJbnRlZ2VyKSB7CisgICAgICAgICAgICAgICAgY29tcGFyYXRvciA9IG5ldyBJbnRlZ2VyQ29tcGFyYXRvcigpOworICAgICAgICAgICAgfSBlbHNlIGlmICh0cmlhbCBpbnN0YW5jZW9mIE51bWJlcikgeworICAgICAgICAgICAgICAgIGNvbXBhcmF0b3IgPSBuZXcgTG9uZ0NvbXBhcmF0b3IoKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodHJpYWwgaW5zdGFuY2VvZiBTdHJpbmcpIHsKKyAgICAgICAgICAgICAgICBjb21wYXJhdG9yID0gbmV3IFN0cmluZ0NvbXBhcmF0b3IoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY29tcGFyYXRvciA9IG5ldyBDb21wYXJhYmxlQ29tcGFyYXRvcigpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkge30gLy8gbGVhdmUgbnVsbAorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCB2YWxpZGF0ZSgpIHsKKyAgICAgICAgaWYgKGlzVmFsaWQpIHJldHVybjsKKyAgICAgICAgLy8gaWYgdGhlIENvbXBhcmF0b3IgaXMgbnVsbCwgdGhlbiBwaWNrIGEgcmVhc29uYWJsZSBvbmUKKyAgICAgICAgaWYgKGNvbXBhcmF0b3IgPT0gbnVsbCkgdmFsaWRhdGVDb21wYXJhdG9yKCk7CisKKyAgICAgICAgLy8gZGV0ZXJtaW5lIHNlYXJjaCBwYXJhbWV0ZXJzCisKKyAgICAgICAgLy8gZmluZCBsZWFzdCBwb3dlciBvZiAyIGdyZWF0ZXIgdGhhbiBjb3VudAorICAgICAgICBmb3IgKHBvd2VyID0gZXhwMi5sZW5ndGgtMTsgcG93ZXIgPiAwICYmIGNvdW50IDwgZXhwMltwb3dlcl07IHBvd2VyLS0pIHt9CisKKyAgICAgICAgLy8gZGV0ZXJtaW5lIHRoZSBzdGFydGluZyBwb2ludAorICAgICAgICBpZiAoZXhwMltwb3dlcl0gIT0gY291bnQpIHsKKyAgICAgICAgICAgIGF1eFN0YXJ0ID0gY291bnQgLSBleHAyW3Bvd2VyXTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGF1eFN0YXJ0ID0gMDsKKyAgICAgICAgfQorICAgICAgICBzdGFydEluZGV4ID0gZXhwMltwb3dlcl0tMTsKKworICAgICAgICAvLyBzaGVsbCBzb3J0LiBMYXRlciwgbWFrZSB0aGlzIGEgUXVpY2tTb3J0CisgICAgICAgIGludCBsbyA9IDA7CisgICAgICAgIGludCB1cCA9IGNvdW50LTE7CisgICAgICAgIGZvciAoaW50IHN0ZXAgPSB1cCAtIGxvICsgMTsgc3RlcCA+IDE7KSB7CisgICAgICAgICAgICBpZiAoc3RlcCA8IDUpCisgICAgICAgICAgICAgICAgc3RlcCA9IDE7CisgICAgICAgICAgICBlbHNlIHN0ZXAgPSAoNSAqIHN0ZXAgLSAxKSAvIDExOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IHVwIC0gc3RlcDsgaSA+PSBsbzsgLS1pKSB7CisgICAgICAgICAgICAgICAgT2JqZWN0IHRlbXAgPSBkYXRhQXJyYXlbaV07CisgICAgICAgICAgICAgICAgaW50IGo7CisgICAgICAgICAgICAgICAgZm9yIChqID0gaSArIHN0ZXA7IGogPD0gdXAgJiYgMCA+IGNvbXBhcmF0b3IuY29tcGFyZShkYXRhQXJyYXlbal0sdGVtcCk7IGogKz0gc3RlcCkKKyAgICAgICAgICAgICAgICAgICAgZGF0YUFycmF5W2otc3RlcF0gPSBkYXRhQXJyYXlbal07CisgICAgICAgICAgICAgICAgZGF0YUFycmF5W2otc3RlcF0gPSB0ZW1wOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlzVmFsaWQgPSB0cnVlOworICAgIH0KKworICAgIHByaXZhdGUgT2JqZWN0W10gZGF0YUFycmF5ID0gbmV3IE9iamVjdFsxNl07CisgICAgcHJpdmF0ZSBDb21wYXJhdG9yIGNvbXBhcmF0b3I7CisgICAgcHJpdmF0ZSBpbnQgY291bnQgPSAwOworICAgIHByaXZhdGUgYm9vbGVhbiBpc1ZhbGlkID0gZmFsc2U7CisgICAgcHJpdmF0ZSBpbnQgYXV4U3RhcnQ7CisgICAgcHJpdmF0ZSBpbnQgc3RhcnRJbmRleDsKKyAgICBwcml2YXRlIGludCBwb3dlcjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgZXhwMltdID0geworICAgICAgICAweDEsIDB4MiwgMHg0LCAweDgsCisgICAgICAgIDB4MTAsIDB4MjAsIDB4NDAsIDB4ODAsCisgICAgICAgIDB4MTAwLCAweDIwMCwgMHg0MDAsIDB4ODAwLAorICAgICAgICAweDEwMDAsIDB4MjAwMCwgMHg0MDAwLCAweDgwMDAsCisgICAgICAgIDB4MTAwMDAsIDB4MjAwMDAsIDB4NDAwMDAsIDB4ODAwMDAsCisgICAgICAgIDB4MTAwMDAwLCAweDIwMDAwMCwgMHg0MDAwMDAsIDB4ODAwMDAwLAorICAgICAgICAweDEwMDAwMDAsIDB4MjAwMDAwMCwgMHg0MDAwMDAwLCAweDgwMDAwMDAsCisgICAgICAgIDB4MTAwMDAwMDAsIDB4MjAwMDAwMDAsIDB4NDAwMDAwMDB9OworCisgICAgLy8gVXRpbGl0eSBDbGFzc2VzCisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIExvbmdDb21wYXJhdG9yIGltcGxlbWVudHMgQ29tcGFyYXRvciB7CisgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZShPYmplY3QgYSwgT2JqZWN0IGIpIHsKKyAgICAgICAgICAgIGxvbmcgYWEgPSAoKE51bWJlcilhKS5sb25nVmFsdWUoKTsKKyAgICAgICAgICAgIGxvbmcgYmIgPSAoKE51bWJlciliKS5sb25nVmFsdWUoKTsKKyAgICAgICAgICAgIHJldHVybiAoYWEgPCBiYiA/IC0xIDogYWEgPiBiYiA/IDEgOiAwKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgSW50ZWdlckNvbXBhcmF0b3IgaW1wbGVtZW50cyBDb21wYXJhdG9yIHsKKyAgICAgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBhLCBPYmplY3QgYikgeworICAgICAgICAgICAgcmV0dXJuICgoKE51bWJlcilhKS5pbnRWYWx1ZSgpIC0gKChOdW1iZXIpYikuaW50VmFsdWUoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIERvdWJsZUNvbXBhcmF0b3IgaW1wbGVtZW50cyBDb21wYXJhdG9yIHsKKyAgICAgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBhLCBPYmplY3QgYikgeworICAgICAgICAgICAgZG91YmxlIGFhID0gKChOdW1iZXIpYSkuZG91YmxlVmFsdWUoKTsKKyAgICAgICAgICAgIGRvdWJsZSBiYiA9ICgoTnVtYmVyKWIpLmRvdWJsZVZhbHVlKCk7CisgICAgICAgICAgICByZXR1cm4gKGFhIDwgYmIgPyAtMSA6IGFhID4gYmIgPyAxIDogMCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIENvbXBhcmFibGVDb21wYXJhdG9yIGltcGxlbWVudHMgQ29tcGFyYXRvciB7CisgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZShPYmplY3QgYSwgT2JqZWN0IGIpIHsKKyAgICAgICAgICAgIHJldHVybiAoKENvbXBhcmFibGUpYSkuY29tcGFyZVRvKGIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBTdHJpbmdDb21wYXJhdG9yIGltcGxlbWVudHMgQ29tcGFyYXRvciB7CisgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZShPYmplY3QgYSwgT2JqZWN0IGIpIHsKKyAgICAgICAgICAgIHJldHVybiAoKFN0cmluZylhKS5jb21wYXJlVG8oKFN0cmluZyliKTsKKyAgICAgICAgfTsKKyAgICB9CisgICAgLy97e0RFQ0xBUkVfQ09OVFJPTFMKKwkvL319Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvU3BhY2VUcmFuc2l0aW9uLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1NwYWNlVHJhbnNpdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmIwZTdmNDAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1NwYWNlVHJhbnNpdGlvbi5qYXZhCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvU3BhY2VUcmFuc2l0aW9uLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDU6MzIgJCAKKyAqICRSZXZpc2lvbjogMS4yICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS51dGlsLio7CisKK3B1YmxpYyBjbGFzcyBTcGFjZVRyYW5zaXRpb24gZXh0ZW5kcyBDb21wbGV4VHJhbnNpdGlvbiB7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTcGFjZVRyYW5zaXRpb24gR0xPQkFMID0gbmV3IFNwYWNlVHJhbnNpdGlvbihTVUNDRVNTKTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTUEFDRV9DSEFSUyA9ICIgXHQiOworICAgIAorICAgIHB1YmxpYyBTcGFjZVRyYW5zaXRpb24oaW50IHN1Y2Nlc3MpIHsKKyAgICAgICAgc3VwZXIoc3VjY2Vzcyk7CisgICAgICAgICAgICAvL3t7SU5JVF9DT05UUk9MUworICAgICAgICAvL319CisgICAgfQorICAgIHB1YmxpYyBib29sZWFuIGFjY2VwdHMoaW50IGMpIHsKKyAgICAgICAgcmV0dXJuIFNQQUNFX0NIQVJTLmluZGV4T2YoKGNoYXIpYykgPj0gMDsKKyAgICB9CisgICAgcHJvdGVjdGVkIExleC5UcmFuc2l0aW9uW11bXSBnZXRTdGF0ZXMoKSB7CisgICAgICAgIHJldHVybiBzdGF0ZXM7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExleC5UcmFuc2l0aW9uW11bXSBzdGF0ZXMgPSB7CisgICAgICAgIHsgLy9zdGF0ZSAwOiAKKyAgICAgICAgICAgIG5ldyBMZXguU3RyaW5nVHJhbnNpdGlvbihTUEFDRV9DSEFSUywgTGV4LklHTk9SRV9DT05TVU1FLCAtMSksCisgICAgICAgICAgICBuZXcgTGV4LlBhcnNlRXhjZXB0aW9uVHJhbnNpdGlvbigiaWxsZWdhbCBzcGFjZSBjaGFyYWN0ZXIiKQorICAgICAgICB9LAorICAgICAgICB7IC8vc3RhdGUgMToKKyAgICAgICAgICAgIG5ldyBMZXguRU9GVHJhbnNpdGlvbihTVUNDRVNTKSwKKyAgICAgICAgICAgIG5ldyBMZXguU3RyaW5nVHJhbnNpdGlvbihTUEFDRV9DSEFSUywgTGV4LklHTk9SRV9DT05TVU1FLCAtMSksCisgICAgICAgICAgICBuZXcgTGV4LkRlZmF1bHRUcmFuc2l0aW9uKExleC5JR05PUkVfUFVUQkFDSywgU1VDQ0VTUykKKyAgICAgICAgfSwKKyAgICB9OworICAgIC8ve3tERUNMQVJFX0NPTlRST0xTCisgICAgLy99fQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9TeW1ib2xUcmFuc2l0aW9uLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1N5bWJvbFRyYW5zaXRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40MDBjZjE0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9TeW1ib2xUcmFuc2l0aW9uLmphdmEKQEAgLTAsMCArMSwxMDMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvU3ltYm9sVHJhbnNpdGlvbi5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA1OjMyICQgCisgKiAkUmV2aXNpb246IDEuMiAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC4qOworCitwdWJsaWMgY2xhc3MgU3ltYm9sVHJhbnNpdGlvbiBleHRlbmRzIENvbXBsZXhUcmFuc2l0aW9uIHsKKyAgICBwcml2YXRlIHN0YXRpYyBQb3NpeENoYXJNYXAgbWFwcGluZyA9IG5ldyBQb3NpeENoYXJNYXAoKTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN5bWJvbFRyYW5zaXRpb24gR0xPQkFMID0gbmV3IFN5bWJvbFRyYW5zaXRpb24oU1VDQ0VTUyk7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIHNldENoYXJNYXAoUG9zaXhDaGFyTWFwIG1hcHBpbmdJbikgeworICAgICAgICBtYXBwaW5nID0gbWFwcGluZ0luOworICAgICAgICBpZiAobWFwcGluZyA9PSBudWxsKSB7CisgICAgICAgICAgICBtYXBwaW5nID0gbmV3IFBvc2l4Q2hhck1hcCgpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBQb3NpeENoYXJNYXAgZ2V0Q2hhck1hcCgpIHsKKyAgICAgICAgcmV0dXJuIG1hcHBpbmc7CisgICAgfQorCisgICAgcHVibGljIFN5bWJvbFRyYW5zaXRpb24oaW50IHN1Y2Nlc3MpIHsKKyAgICAgICAgc3VwZXIoc3VjY2Vzcyk7CisgICAgICAgICAgICAvL3t7SU5JVF9DT05UUk9MUworICAgICAgICAvL319CisgICAgfQorICAgIHB1YmxpYyBib29sZWFuIGFjY2VwdHMoaW50IGMpIHsKKyAgICAgICAgcmV0dXJuICc8JyA9PSAoY2hhciljOworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVTdWNjZXNzKExleCBwYXJzZXIsIFN0cmluZ0J1ZmZlciBvdXRwdXQpIHsKKyAgICAgICAgU3RyaW5nIHRleHQgPSBwYXJzZXIuZ2V0RGF0YSgpOworICAgICAgICBTdHJpbmcgbWFwcGVkVGV4dCA9IG1hcHBpbmcubWFwS2V5KHRleHQpOworICAgICAgICBpZiAobWFwcGVkVGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBvdXRwdXQuYXBwZW5kKG1hcHBlZFRleHQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgb3V0cHV0LmFwcGVuZCh0ZXh0KTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcm90ZWN0ZWQgTGV4LlRyYW5zaXRpb25bXVtdIGdldFN0YXRlcygpIHsKKyAgICAgICAgc3luY2hyb25pemVkIChnZXRDbGFzcygpKSB7CisgICAgICAgICAgICBpZiAoc3RhdGVzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzdGF0ZXMgPSBuZXcgTGV4LlRyYW5zaXRpb25bXVtdIHsKKyAgICAgICAgICAgICAgICAgICAgeyAvL3N0YXRlIDA6IAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5DaGFyVHJhbnNpdGlvbignPCcsIExleC5BQ0NVTVVMQVRFX0NPTlNVTUUsIC0xKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguUGFyc2VFeGNlcHRpb25UcmFuc2l0aW9uKCJpbGxlZ2FsIGNoYXJhY3RlcnMgaW4gc3ltYm9sIikKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAvL3N0YXRlIDE6CisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkNoYXJUcmFuc2l0aW9uKCcvJywgTGV4LkFDQ1VNVUxBVEVfQ09OU1VNRSwgLTIpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5DaGFyVHJhbnNpdGlvbignPicsIExleC5BQ0NVTVVMQVRFX0NPTlNVTUUsIFNVQ0NFU1MpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5TdHJpbmdUcmFuc2l0aW9uKEVPTFRyYW5zaXRpb24uRU9MX0NIQVJTLCBMZXguSUdOT1JFX1BVVEJBQ0ssIC0zKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguRU9GVHJhbnNpdGlvbigtMyksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkRlZmF1bHRUcmFuc2l0aW9uKExleC5BQ0NVTVVMQVRFX0NPTlNVTUUsIC0xKQorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7IC8vc3RhdGUgMjoKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguQ2hhclRyYW5zaXRpb24oJz4nLCBMZXguQUNDVU1VTEFURV9DT05TVU1FLCAtMSksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkNoYXJUcmFuc2l0aW9uKCcvJywgTGV4LkFDQ1VNVUxBVEVfQ09OU1VNRSwgLTEpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5QYXJzZUV4Y2VwdGlvblRyYW5zaXRpb24oImlsbGVnYWwgZXNjYXBlIGNoYXJhY3RlciBpbiBzeW1ib2wiKQorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7IC8vc3RhdGUgMzogZmFpbHVyZQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5QYXJzZUV4Y2VwdGlvblRyYW5zaXRpb24oInVuZXhwZWN0ZWQgZW5kIG9mIGxpbmUvZmlsZSIpCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBzdGF0ZXM7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIExleC5UcmFuc2l0aW9uW11bXSBzdGF0ZXM7CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3NbXSkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgTGV4LlRyYW5zaXRpb25bXVtdIHN0YXRlcyA9IHt7IAorICAgICAgICAgICAgICAgIG5ldyBTeW1ib2xUcmFuc2l0aW9uKFNVQ0NFU1MpLAorICAgICAgICAgICAgICAgIG5ldyBMZXguRU9GVHJhbnNpdGlvbigpLAorICAgICAgICAgICAgICAgIG5ldyBMZXguUGFyc2VFeGNlcHRpb25UcmFuc2l0aW9uKCJiYWQgdGVzdCBpbnB1dCIpCisgICAgICAgICAgICB9fTsKKyAgICAgICAgICAgIC8vU3RyaW5nIHRleHQgPSAiPENBUElUQUw+PFwiPD48Ly8+PFYlPjxONj48Q1lSSUxMSUM+IjsKKyAgICAgICAgICAgIFN0cmluZyB0ZXh0ID0gIjxVPjxTPjxEPiAiOworICAgICAgICAgICAgU3RyaW5nUmVhZGVyIHNyID0gbmV3IFN0cmluZ1JlYWRlcih0ZXh0KTsKKyAgICAgICAgICAgIFB1c2hiYWNrUmVhZGVyIHByID0gbmV3IFB1c2hiYWNrUmVhZGVyKHNyKTsKKyAgICAgICAgICAgIExleCBwYXJzZXIgPSBuZXcgTGV4KHN0YXRlcywgcHIpOworICAgICAgICAgICAgLy9wYXJzZXIuZGVidWcodHJ1ZSk7CisgICAgICAgICAgICBpbnQgcyA9IHBhcnNlci5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgIHdoaWxlIChzID09IFNVQ0NFU1MpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocGFyc2VyLmdldERhdGEoKSk7CisgICAgICAgICAgICAgICAgcyA9IHBhcnNlci5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvL3t7REVDTEFSRV9DT05UUk9MUworICAgIC8vfX0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvVG9rZW5UcmFuc2l0aW9uLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1Rva2VuVHJhbnNpdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjlhYTVjMjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1Rva2VuVHJhbnNpdGlvbi5qYXZhCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvVG9rZW5UcmFuc2l0aW9uLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDU6MzIgJCAKKyAqICRSZXZpc2lvbjogMS4yICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS51dGlsLio7CisKK3B1YmxpYyBjbGFzcyBUb2tlblRyYW5zaXRpb24gZXh0ZW5kcyBDb21wbGV4VHJhbnNpdGlvbiB7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBUb2tlblRyYW5zaXRpb24gR0xPQkFMID0gbmV3IFRva2VuVHJhbnNpdGlvbihTVUNDRVNTKTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTRVBBUkFUT1JfQ0hBUlMgPSAiOyIgKyBTcGFjZVRyYW5zaXRpb24uU1BBQ0VfQ0hBUlM7CisgICAgCisgICAgcHVibGljIFRva2VuVHJhbnNpdGlvbihpbnQgc3VjY2VzcykgeworICAgICAgICBzdXBlcihzdWNjZXNzKTsKKyAgICAgICAgICAgIC8ve3tJTklUX0NPTlRST0xTCisgICAgICAgIC8vfX0KK30KKyAgICBwdWJsaWMgYm9vbGVhbiBhY2NlcHRzKGludCBjKSB7CisgICAgICAgIHJldHVybiAoYyA+IDApICYmIAorICAgICAgICAgICAgIUVPTFRyYW5zaXRpb24uR0xPQkFMLmFjY2VwdHMoYykgJiYgCisgICAgICAgICAgICAhU3BhY2VUcmFuc2l0aW9uLkdMT0JBTC5hY2NlcHRzKGMpICYmICAKKyAgICAgICAgICAgICgKKyAgICAgICAgICAgICAgICAoU0VQQVJBVE9SX0NIQVJTLmluZGV4T2YoKGNoYXIpYykgPCAwKSB8fAorICAgICAgICAgICAgICAgIFN5bWJvbFRyYW5zaXRpb24uR0xPQkFMLmFjY2VwdHMoYykgfHwKKyAgICAgICAgICAgICAgICBRdW90ZVRyYW5zaXRpb24uR0xPQkFMLmFjY2VwdHMoYykgfHwKKyAgICAgICAgICAgICAgICBFc2NhcGVUcmFuc2l0aW9uLkdMT0JBTC5hY2NlcHRzKGMpCisgICAgICAgICAgICApOworICAgIH0KKyAgICBwcm90ZWN0ZWQgTGV4LlRyYW5zaXRpb25bXVtdIGdldFN0YXRlcygpIHsKKyAgICAgICAgcmV0dXJuIHN0YXRlczsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTGV4LlRyYW5zaXRpb25bXVtdIHN0YXRlcyA9IHsKKyAgICAgICAgeyAvL3N0YXRlIDA6IAorICAgICAgICAgICAgbmV3IFN5bWJvbFRyYW5zaXRpb24oLTEpLAorICAgICAgICAgICAgbmV3IFF1b3RlVHJhbnNpdGlvbigtMSksIAorICAgICAgICAgICAgbmV3IEVzY2FwZVRyYW5zaXRpb24oLTEpLAorICAgICAgICAgICAgbmV3IExleC5TdHJpbmdUcmFuc2l0aW9uKEVPTFRyYW5zaXRpb24uRU9MX0NIQVJTLCBMZXguSUdOT1JFX1BVVEJBQ0ssIC0yKSwKKyAgICAgICAgICAgIG5ldyBMZXguU3RyaW5nVHJhbnNpdGlvbihTRVBBUkFUT1JfQ0hBUlMsIExleC5JR05PUkVfUFVUQkFDSywgLTMpLAorICAgICAgICAgICAgbmV3IExleC5FT0ZUcmFuc2l0aW9uKC00KSwKKyAgICAgICAgICAgIG5ldyBMZXguRGVmYXVsdFRyYW5zaXRpb24oTGV4LkFDQ1VNVUxBVEVfQ09OU1VNRSwgLTEpCisgICAgICAgIH0sCisgICAgICAgIHsgLy9zdGF0ZSAxOgorICAgICAgICAgICAgbmV3IFN5bWJvbFRyYW5zaXRpb24oLTEpLAorICAgICAgICAgICAgbmV3IFF1b3RlVHJhbnNpdGlvbigtMSksIAorICAgICAgICAgICAgbmV3IEVzY2FwZVRyYW5zaXRpb24oLTEpLAorICAgICAgICAgICAgbmV3IExleC5TdHJpbmdUcmFuc2l0aW9uKEVPTFRyYW5zaXRpb24uRU9MX0NIQVJTLCBMZXguSUdOT1JFX1BVVEJBQ0ssIFNVQ0NFU1MpLAorICAgICAgICAgICAgbmV3IExleC5TdHJpbmdUcmFuc2l0aW9uKFNFUEFSQVRPUl9DSEFSUywgTGV4LklHTk9SRV9QVVRCQUNLLCBTVUNDRVNTKSwKKyAgICAgICAgICAgIG5ldyBMZXguRU9GVHJhbnNpdGlvbihTVUNDRVNTKSwKKyAgICAgICAgICAgIG5ldyBMZXguRGVmYXVsdFRyYW5zaXRpb24oTGV4LkFDQ1VNVUxBVEVfQ09OU1VNRSwgLTEpCisgICAgICAgIH0sCisgICAgICAgIHsgLy9zdGF0ZSAyOiBmYWlsdXJlIC0gdW5leHBlY3RlZCBFT0wKKyAgICAgICAgICAgIG5ldyBMZXguUGFyc2VFeGNlcHRpb25UcmFuc2l0aW9uKCJ1bmV4cGVjdGVkIEVPTCBpbiB0b2tlbiIpCisgICAgICAgIH0sCisgICAgICAgIHsgLy9zdGF0ZSAzOiBmYWlsdXJlCisgICAgICAgICAgICBuZXcgTGV4LlBhcnNlRXhjZXB0aW9uVHJhbnNpdGlvbigidW5leHBlY3RlZCBzZXBlcmF0b3IgY2hhcmFjdGVyIGluIHRva2VuIikKKyAgICAgICAgfSwKKyAgICAgICAgeyAvL3N0YXRlIDQ6IGZhaWx1cmUKKyAgICAgICAgICAgIG5ldyBMZXguUGFyc2VFeGNlcHRpb25UcmFuc2l0aW9uKCJ1bmV4cGVjdGVkIEVPRiBpbiB0b2tlbiIpCisgICAgICAgIH0sCisgICAgfTsKKyAgICAvL3t7REVDTEFSRV9DT05UUk9MUworICAgIC8vfX0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvbXlMb2NhbGVFbGVtZW50cy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9teUxvY2FsZUVsZW1lbnRzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDBmMmZkOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvbXlMb2NhbGVFbGVtZW50cy5qYXZhCkBAIC0wLDAgKzEsNTgzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAgIENvcHlyaWdodCAoQykgMTk5Ni0yMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisgKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9teUxvY2FsZUVsZW1lbnRzLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDgvMDEgMjA6Mjc6MjEgJCAKKyAqICRSZXZpc2lvbjogMS4zICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKioKKyAqCisgKiBUYWJsZSBvZiBKYXZhIHN1cHBsaWVkIHN0YW5kYXJkIGxvY2FsZSBlbGVtZW50cworICoKKyAqIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGphdmEgTG9jYWxlVG9vbCBMb2NhbGVFbGVtZW50cy5qYXZhCisgKgorICogRGF0ZSBDcmVhdGVkOiBXZWQgQXVnIDIxIDE1OjQ3OjU3ICAxOTk2CisgKgorICogICAgIExvY2FsZSBFbGVtZW50cyBhbmQgUGF0dGVybnM6ICBsYXN0IHVwZGF0ZSAxMC8yMy85NgorICoKKyAqCisgKi8KKworLy8gV0FSTklORyA6IHRoZSBmb3JtYXQgb2YgdGhpcyBmaWxlIHdpbGwgY2hhbmdlIGluIHRoZSBmdXR1cmUhCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIG15TG9jYWxlRWxlbWVudHMgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIC8qKgorICAgICAqIE92ZXJyaWRlcyBMaXN0UmVzb3VyY2VCdW5kbGUKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgICAgICAgIHsgIkxvY2FsZVN0cmluZyIsICJlbl9VUyIgfSwgLy8gbG9jYWxlIGlkIGJhc2VkIG9uIGlzbyBjb2RlcworICAgICAgICAgICAgeyAiTG9jYWxlSUQiLCAiMDQwOSIgfSwgLy8gV2luZG93cyBpZAorICAgICAgICAgICAgeyAiU2hvcnRMYW5ndWFnZSIsICJlbmciIH0sIC8vIGlzby0zIGFiYnJldiBsYW5nIG5hbWUKKyAgICAgICAgICAgIHsgIlNob3J0Q291bnRyeSIsICJVU0EiIH0sIC8vIGlzby0zIGFiYnJldiBjb3VudHJ5IG5hbWUKKyAgICAgICAgICAgIHsgIkxhbmd1YWdlcyIsIC8vIGxhbmd1YWdlIG5hbWVzCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdW10geworICAgICAgICAgICAgICAgICAgICB7ICJhYiIsICJBYmtoYXppYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImFhIiwgIkFmYXIiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImFmIiwgIkFmcmlrYWFucyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAic3EiLCAiQWxiYW5pYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImFtIiwgIkFtaGFyaWMiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImFyIiwgIkFyYWJpYyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiaHkiLCAiQXJtZW5pYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImFzIiwgIkFzc2FtZXNlIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJheSIsICJBeW1hcmEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImF6IiwgIkF6ZXJiYWlqYW5pIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJiYSIsICJCYXNoa2lyIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJldSIsICJCYXNxdWUiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImJuIiwgIkJlbmdhbGkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImR6IiwgIkJodXRhbmkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImJoIiwgIkJpaGFyaSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiYmkiLCAiQmlzbGFtYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiYnIiLCAiQnJldG9uIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJiZyIsICJCdWxnYXJpYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm15IiwgIkJ1cm1lc2UiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImJlIiwgIkJ5ZWxvcnVzc2lhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAia20iLCAiQ2FtYm9kaWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJjYSIsICJDYXRhbGFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJ6aCIsICJDaGluZXNlIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJjbyIsICJDb3JzaWNhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiaHIiLCAiQ3JvYXRpYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImNzIiwgIkN6ZWNoIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJkYSIsICJEYW5pc2giIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5sIiwgIkR1dGNoIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJlbiIsICJFbmdsaXNoIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJlbyIsICJFc3BlcmFudG8iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImV0IiwgIkVzdG9uaWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJmbyIsICJGYWVyb2VzZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiZmoiLCAiRmlqaSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiZmkiLCAiRmlubmlzaCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiZnIiLCAiRnJlbmNoIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJmeSIsICJGcmlzaWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJnbCIsICJHYWxpY2lhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAia2EiLCAiR2VvcmdpYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImRlIiwgIkdlcm1hbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiZWwiLCAiR3JlZWsiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImtsIiwgIkdyZWVubGFuZGljIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJnbiIsICJHdWFyYW5pIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJndSIsICJHdWphcmF0aSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiaGEiLCAiSGF1c2EiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIml3IiwgIkhlYnJldyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiaGkiLCAiSGluZGkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImh1IiwgIkh1bmdhcmlhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiaXMiLCAiSWNlbGFuZGljIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJpbiIsICJJbmRvbmVzaWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJpYSIsICJJbnRlcmxpbmd1YSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiaWUiLCAiSW50ZXJsaW5ndWUiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImlrIiwgIkludXBpYWsiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImdhIiwgIklyaXNoIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJpdCIsICJJdGFsaWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJqYSIsICJKYXBhbmVzZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAianciLCAiSmF2YW5lc2UiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImtuIiwgIkthbm5hZGEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImtzIiwgIkthc2htaXJpIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJrayIsICJLYXpha2giIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInJ3IiwgIktpbnlhcndhbmRhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJreSIsICJLaXJnaGl6IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJybiIsICJLaXJ1bmRpIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJrbyIsICJLb3JlYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImt1IiwgIkt1cmRpc2giIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImxvIiwgIkxhb3RoaWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJsYSIsICJMYXRpbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibHYiLCAiTGF0dmlhbiAoTGV0dGlzaCkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImxuIiwgIkxpbmdhbGEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImx0IiwgIkxpdGh1YW5pYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm1rIiwgIk1hY2Vkb25pYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm1nIiwgIk1hbGFnYXN5IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJtcyIsICJNYWxheSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibWwiLCAiTWFsYXlhbGFtIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJtdCIsICJNYWx0ZXNlIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJtaSIsICJNYW9yaSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibXIiLCAiTWFyYXRoaSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibW8iLCAiTW9sZGF2aWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJtbiIsICJNb25nb2xpYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hIiwgIk5hdXJ1IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuZSIsICJOZXBhbGkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5vIiwgIk5vcndlZ2lhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAib2MiLCAiT2NjaXRhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAib3IiLCAiT3JpeWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm9tIiwgIk9yb21vIChBZmFuKSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAicHMiLCAiUGFzaHRvIChQdXNodG8pIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJmYSIsICJQZXJzaWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJwbCIsICJQb2xpc2giIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInB0IiwgIlBvcnR1Z3Vlc2UiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInBhIiwgIlB1bmphYmkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInF1IiwgIlF1ZWNodWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInJtIiwgIlJoYWV0by1Sb21hbmNlIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJybyIsICJSb21hbmlhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAicnUiLCAiUnVzc2lhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAic20iLCAiU2Ftb2FuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJzZyIsICJTYW5ncm8iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInNhIiwgIlNhbnNrcml0IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJnZCIsICJTY290cyBHYWVsaWMiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInNyIiwgIlNlcmJpYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInNoIiwgIlNlcmJvLUNyb2F0aWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJzdCIsICJTZXNvdGhvIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJ0biIsICJTZXRzd2FuYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAic24iLCAiU2hvbmEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInNkIiwgIlNpbmRoaSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAic2kiLCAiU2luZ2hhbGVzZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAic3MiLCAiU2lzd2F0aSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAic2siLCAiU2xvdmFrIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJzbCIsICJTbG92ZW5pYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInNvIiwgIlNvbWFsaSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiZXMiLCAiU3BhbmlzaCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAic3UiLCAiU3VuZGFuZXNlIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJzdyIsICJTd2FoaWxpIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJzdiIsICJTd2VkaXNoIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJ0bCIsICJUYWdhbG9nIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJ0ZyIsICJUYWppayIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAidGEiLCAiVGFtaWwiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInR0IiwgIlRhdGFyIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJ0ZSIsICJUZWx1Z3UiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInRoIiwgIlRoYWkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImJvIiwgIlRpYmV0YW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInRpIiwgIlRpZ3JpbnlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJ0byIsICJUb25nYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAidHMiLCAiVHNvbmdhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJ0ciIsICJUdXJraXNoIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJ0ayIsICJUdXJrbWVuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJ0dyIsICJUd2kiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInVrIiwgIlVrcmFpbmlhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAidXIiLCAiVXJkdSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAidXoiLCAiVXpiZWsiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInZpIiwgIlZpZXRuYW1lc2UiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInZvIiwgIlZvbGFwdWsiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImN5IiwgIldlbHNoIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJ3byIsICJXb2xvZiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAieGgiLCAiWGhvc2EiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImppIiwgIllpZGRpc2giIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInlvIiwgIllvcnViYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAienUiLCAiWnVsdSIgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7ICJDb3VudHJpZXMiLCAvLyBjb3VudHJ5IG5hbWVzCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdW10geworICAgICAgICAgICAgICAgICAgICB7ICJBRiIsICJBZmdoYW5pc3RhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQUwiLCAiQWxiYW5pYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiRFoiLCAiQWxnZXJpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQUQiLCAiQW5kb3JyYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQU8iLCAiQW5nb2xhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJBSSIsICJBbmd1aWxsYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQVIiLCAiQXJnZW50aW5hIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJBTSIsICJBcm1lbmlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJBVyIsICJBcnViYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQVUiLCAiQXVzdHJhbGlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJBVCIsICJBdXN0cmlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJBWiIsICJBemVyYmFpamFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJCUyIsICJCYWhhbWFzIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJCSCIsICJCYWhyYWluIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJCRCIsICJCYW5nbGFkZXNoIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJCQiIsICJCYXJiYWRvcyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQlkiLCAiQmVsYXJ1cyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQkUiLCAiQmVsZ2l1bSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQloiLCAiQmVsaXplIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJCSiIsICJCZW5pbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQk0iLCAiQmVybXVkYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQlQiLCAiQmh1dGFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJCTyIsICJCb2xpdmlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJCQSIsICJCb3NuaWEgYW5kIEhlcnplZ292aW5hIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJCVyIsICJCb3Rzd2FuYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQlIiLCAiQnJhemlsIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJCTiIsICJCcnVuZWkgRGFydXNzYWxhbSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQkciLCAiQnVsZ2FyaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkJGIiwgIkJ1cmtpbmEgRmFzbyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQkkiLCAiQnVydW5kaSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiS0giLCAiQ2FtYm9kaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkNNIiwgIkNhbWVyb29uIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJDQSIsICJDYW5hZGEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkNWIiwgIkNhcGUgVmVyZGUiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkNGIiwgIkNlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiVEQiLCAiQ2hhZCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQ0wiLCAiQ2hpbGUiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkNOIiwgIkNoaW5hIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJDTyIsICJDb2xvbWJpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiS00iLCAiQ29tb3JvcyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQ0ciLCAiQ29uZ28iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkNSIiwgIkNvc3RhIFJpY2EiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkNJIiwgIkNvdGUgRCdpdm9pcmUiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkhSIiwgIkNyb2F0aWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkNVIiwgIkN1YmEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkNZIiwgIkN5cHJ1cyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQ1oiLCAiQ3plY2ggUmVwdWJsaWMiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkRLIiwgIkRlbm1hcmsiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkRKIiwgIkRqaWJvdXRpIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJETSIsICJEb21pbmljYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiRE8iLCAiRG9taW5pY2FuIFJlcHVibGljIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJUUCIsICJFYXN0IFRpbW9yIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJFQyIsICJFY3VhZG9yIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJFRyIsICJFZ3lwdCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiU1YiLCAiRWwgU2FsdmFkb3IiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkdRIiwgIkVxdWF0b3JpYWwgR3VpbmVhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJFUiIsICJFcml0cmVhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJFRSIsICJFc3RvbmlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJFVCIsICJFdGhpb3BpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiRkoiLCAiRmlqaSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiRkkiLCAiRmlubGFuZCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiRlIiLCAiRnJhbmNlIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJHRiIsICJGcmVuY2ggR3VpYW5hIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJQRiIsICJGcmVuY2ggUG9seW5lc2lhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJURiIsICJGcmVuY2ggU291dGhlcm4gVGVycml0b3JpZXMiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkdBIiwgIkdhYm9uIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJHTSIsICJHYW1iaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkdFIiwgIkdlb3JnaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkRFIiwgIkdlcm1hbnkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkdIIiwgIkdoYW5hIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJHUiIsICJHcmVlY2UiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkdQIiwgIkd1YWRlbG91cGUiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkdUIiwgIkd1YXRlbWFsYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiR04iLCAiR3VpbmVhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJHVyIsICJHdWluZWEtQmlzc2F1IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJHWSIsICJHdXlhbmEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkhUIiwgIkhhaXRpIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJITiIsICJIb25kdXJhcyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiSEsiLCAiSG9uZyBLb25nIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJIVSIsICJIdW5nYXJ5IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJJUyIsICJJY2VsYW5kIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJJTiIsICJJbmRpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiSUQiLCAiSW5kb25lc2lhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJJUiIsICJJcmFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJJUSIsICJJcmFxIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJJRSIsICJJcmVsYW5kIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJJTCIsICJJc3JhZWwiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIklUIiwgIkl0YWx5IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJKTSIsICJKYW1haWNhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJKUCIsICJKYXBhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiSk8iLCAiSm9yZGFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJLWiIsICJLYXpha2hzdGFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJLRSIsICJLZW55YSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiS0kiLCAiS2lyaWJhdGkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIktQIiwgIk5vcnRoIEtvcmVhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJLUiIsICJTb3V0aCBLb3JlYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiS1ciLCAiS3V3YWl0IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJLRyIsICJLeXJneXpzdGFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJMQSIsICJMYW9zIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJMViIsICJMYXR2aWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkxCIiwgIkxlYmFub24iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkxTIiwgIkxlc290aG8iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkxSIiwgIkxpYmVyaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkxZIiwgIkxpYnlhbiBBcmFiIEphbWFoaXJpeWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkxJIiwgIkxpZWNodGVuc3RlaW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkxUIiwgIkxpdGh1YW5pYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTFUiLCAiTHV4ZW1ib3VyZyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTUsiLCAiTWFjZWRvbmlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJNRyIsICJNYWRhZ2FzY2FyIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJNWSIsICJNYWxheXNpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTUwiLCAiTWFsaSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTVQiLCAiTWFsdGEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIk1RIiwgIk1hcnRpbmlxdWUiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIk1SIiwgIk1hdXJpdGFuaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIk1VIiwgIk1hdXJpdGl1cyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiWVQiLCAiTWF5b3R0ZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTVgiLCAiTWV4aWNvIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJGTSIsICJNaWNyb25lc2lhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJNRCIsICJNb2xkb3ZhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJNQyIsICJNb25hY28iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIk1OIiwgIk1vbmdvbGlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJNUyIsICJNb250c2VycmF0IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJNQSIsICJNb3JvY2NvIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJNWiIsICJNb3phbWJpcXVlIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJNTSIsICJNeWFubWFyIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJOQSIsICJOYW1pYmlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJOUCIsICJOZXBhbCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTkwiLCAiTmV0aGVybGFuZHMiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkFOIiwgIk5ldGhlcmxhbmRzIEFudGlsbGVzIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJOQyIsICJOZXcgQ2FsZWRvbmlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJOWiIsICJOZXcgWmVhbGFuZCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTkkiLCAiTmljYXJhZ3VhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJORSIsICJOaWdlciIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTkciLCAiTmlnZXJpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTlUiLCAiTml1ZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTk8iLCAiTm9yd2F5IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJPTSIsICJPbWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJQSyIsICJQYWtpc3RhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiUEEiLCAiUGFuYW1hIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJQRyIsICJQYXB1YSBOZXcgR3VpbmVhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJQWSIsICJQYXJhZ3VheSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiUEUiLCAiUGVydSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiUEgiLCAiUGhpbGlwcGluZXMiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlBMIiwgIlBvbGFuZCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiUFQiLCAiUG9ydHVnYWwiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlBSIiwgIlB1ZXJ0byBSaWNvIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJRQSIsICJRYXRhciIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiUk8iLCAiUm9tYW5pYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiUlUiLCAiUnVzc2lhbiBGZWRlcmF0aW9uIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJSVyIsICJSd2FuZGEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlNBIiwgIlNhdWRpIEFyYWJpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiU04iLCAiU2VuZWdhbCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiU1AiLCAiU2VyYmlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJTQyIsICJTZXljaGVsbGVzIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJTTCIsICJTaWVycmEgTGVvbmUiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlNHIiwgIlNpbmdhcG9yZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiU0siLCAiU2xvdmFraWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlNJIiwgIlNsb3ZlbmlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJTTyIsICJTb21hbGlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJaQSIsICJTb3V0aCBBZnJpY2EiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkVTIiwgIlNwYWluIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJMSyIsICJTcmkgTGFua2EiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlNEIiwgIlN1ZGFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJTUiIsICJTdXJpbmFtZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiU1oiLCAiU3dhemlsYW5kIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJTRSIsICJTd2VkZW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkNIIiwgIlN3aXR6ZXJsYW5kIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJTWSIsICJTeXJpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiVFciLCAiVGFpd2FuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJUSiIsICJUYWppa2lzdGFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJUWiIsICJUYW56YW5pYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiVEgiLCAiVGhhaWxhbmQiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlRHIiwgIlRvZ28iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlRLIiwgIlRva2VsYXUiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlRPIiwgIlRvbmdhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJUVCIsICJUcmluaWRhZCBhbmQgVG9iYWdvIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJUTiIsICJUdW5pc2lhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJUUiIsICJUdXJrZXkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlRNIiwgIlR1cmttZW5pc3RhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiVUciLCAiVWdhbmRhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJVQSIsICJVa3JhaW5lIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJBRSIsICJVbml0ZWQgQXJhYiBFbWlyYXRlcyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiR0IiLCAiVW5pdGVkIEtpbmdkb20iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlVTIiwgIlVuaXRlZCBTdGF0ZXMiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlVZIiwgIlVydWd1YXkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlVaIiwgIlV6YmVraXN0YW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlZVIiwgIlZhbnVhdHUiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlZBIiwgIlZhdGljYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlZFIiwgIlZlbmV6dWVsYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiVk4iLCAiVmlldCBOYW0iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlZHIiwgIkJyaXRpc2ggVmlyZ2luIElzbGFuZHMiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlZJIiwgIlUuUy4gVmlyZ2luIElzbGFuZHMiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkVIIiwgIldlc3Rlcm4gU2FoYXJhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJZRSIsICJZZW1lbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiWVUiLCAiWXVnb3NsYXZpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiWlIiLCAiWmFpcmUiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlpNIiwgIlphbWJpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiWlciLCAiWmltYmFid2UiIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeyAiJSVFVVJPIiwgIkV1cm8iIH0sIC8vIEV1cm8gdmFyaWFudCBkaXNwbGF5IG5hbWUKKyAgICAgICAgICAgIHsgIkxvY2FsZU5hbWVQYXR0ZXJucyIsCisgICAgICAgICAgICAgICAgLyogRm9ybWF0cyBmb3IgdGhlIGRpc3BsYXkgbmFtZSBvZiBhIGxvY2FsZSwgZm9yIGEgbGlzdCBvZgorICAgICAgICAgICAgICAgICAqIGl0ZW1zLCBhbmQgZm9yIGNvbXBvc2luZyB0d28gaXRlbXMgaW4gYSBsaXN0IGludG8gb25lIGl0ZW0uCisgICAgICAgICAgICAgICAgICogVGhlIGxpc3QgcGF0dGVybnMgYXJlIHVzZWQgaW4gdGhlIHZhcmlhbnQgbmFtZSBhbmQgaW4gdGhlCisgICAgICAgICAgICAgICAgICogZnVsbCBkaXNwbGF5IG5hbWUuCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICAgICAgICAgInswLGNob2ljZSwwI3wxI3sxfXwyI3sxfSAoezJ9KX0iLCAvLyBEaXNwbGF5IG5hbWUKKyAgICAgICAgICAgICAgICAgICAgInswLGNob2ljZSwwI3wxI3sxfXwyI3sxfSx7Mn18MyN7MX0sezJ9LHszfX0iLCAvLyBMaXN0CisgICAgICAgICAgICAgICAgICAgICJ7MH0sezF9IiAvLyBMaXN0IGNvbXBvc2l0aW9uCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsgIk1vbnRoTmFtZXMiLCAKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgIkphbnVhcnkiLCAvLyBqYW51YXJ5CisgICAgICAgICAgICAgICAgICAgICJGZWJydWFyeSIsIC8vIGZlYnJ1YXJ5CisgICAgICAgICAgICAgICAgICAgICJNYXJjaCIsIC8vIG1hcmNoCisgICAgICAgICAgICAgICAgICAgICJBcHJpbCIsIC8vIGFwcmlsCisgICAgICAgICAgICAgICAgICAgICJNYXkiLCAvLyBtYXkKKyAgICAgICAgICAgICAgICAgICAgIkp1bmUiLCAvLyBqdW5lCisgICAgICAgICAgICAgICAgICAgICJKdWx5IiwgLy8ganVseQorICAgICAgICAgICAgICAgICAgICAiQXVndXN0IiwgLy8gYXVndXN0CisgICAgICAgICAgICAgICAgICAgICJTZXB0ZW1iZXIiLCAvLyBzZXB0ZW1iZXIKKyAgICAgICAgICAgICAgICAgICAgIk9jdG9iZXIiLCAvLyBvY3RvYmVyCisgICAgICAgICAgICAgICAgICAgICJOb3ZlbWJlciIsIC8vIG5vdmVtYmVyCisgICAgICAgICAgICAgICAgICAgICJEZWNlbWJlciIsIC8vIGRlY2VtYmVyCisgICAgICAgICAgICAgICAgICAgICIiIC8vIG1vbnRoIDEzIGlmIGFwcGxpY2FibGUKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeyAiTW9udGhBYmJyZXZpYXRpb25zIiwgCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAgICJKYW4iLCAvLyBhYmIgamFudWFyeQorICAgICAgICAgICAgICAgICAgICAiRmViIiwgLy8gYWJiIGZlYnJ1YXJ5CisgICAgICAgICAgICAgICAgICAgICJNYXIiLCAvLyBhYmIgbWFyY2gKKyAgICAgICAgICAgICAgICAgICAgIkFwciIsIC8vIGFiYiBhcHJpbAorICAgICAgICAgICAgICAgICAgICAiTWF5IiwgLy8gYWJiIG1heQorICAgICAgICAgICAgICAgICAgICAiSnVuIiwgLy8gYWJiIGp1bmUKKyAgICAgICAgICAgICAgICAgICAgIkp1bCIsIC8vIGFiYiBqdWx5CisgICAgICAgICAgICAgICAgICAgICJBdWciLCAvLyBhYmIgYXVndXN0CisgICAgICAgICAgICAgICAgICAgICJTZXAiLCAvLyBhYmIgc2VwdGVtYmVyCisgICAgICAgICAgICAgICAgICAgICJPY3QiLCAvLyBhYmIgb2N0b2JlcgorICAgICAgICAgICAgICAgICAgICAiTm92IiwgLy8gYWJiIG5vdmVtYmVyCisgICAgICAgICAgICAgICAgICAgICJEZWMiLCAvLyBhYmIgZGVjZW1iZXIKKyAgICAgICAgICAgICAgICAgICAgIiIgLy8gYWJiIG1vbnRoIDEzIGlmIGFwcGxpY2FibGUKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeyAiRGF5TmFtZXMiLCAKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgIlN1bmRheSIsIC8vIFN1bmRheQorICAgICAgICAgICAgICAgICAgICAiTW9uZGF5IiwgLy8gTW9uZGF5CisgICAgICAgICAgICAgICAgICAgICJUdWVzZGF5IiwgLy8gVHVlc2RheQorICAgICAgICAgICAgICAgICAgICAiV2VkbmVzZGF5IiwgLy8gV2VkbmVzZGF5CisgICAgICAgICAgICAgICAgICAgICJUaHVyc2RheSIsIC8vIFRodXJzZGF5CisgICAgICAgICAgICAgICAgICAgICJGcmlkYXkiLCAvLyBGcmlkYXkKKyAgICAgICAgICAgICAgICAgICAgIlNhdHVyZGF5IiAvLyBTYXR1cmRheQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7ICJEYXlBYmJyZXZpYXRpb25zIiwgCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAgICJTdW4iLCAvLyBhYmIgU3VuZGF5CisgICAgICAgICAgICAgICAgICAgICJNb24iLCAvLyBhYmIgTW9uZGF5CisgICAgICAgICAgICAgICAgICAgICJUdWUiLCAvLyBhYmIgVHVlc2RheQorICAgICAgICAgICAgICAgICAgICAiV2VkIiwgLy8gYWJiIFdlZG5lc2RheQorICAgICAgICAgICAgICAgICAgICAiVGh1IiwgLy8gYWJiIFRodXJzZGF5CisgICAgICAgICAgICAgICAgICAgICJGcmkiLCAvLyBhYmIgRnJpZGF5CisgICAgICAgICAgICAgICAgICAgICJTYXQiIC8vIGFiYiBTYXR1cmRheQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7ICJBbVBtTWFya2VycyIsIAorICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICAgICAiQU0iLCAvLyBhbSBtYXJrZXIKKyAgICAgICAgICAgICAgICAgICAgIlBNIiAvLyBwbSBtYXJrZXIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeyAiRXJhcyIsIAorICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IC8vIGVyYSBzdHJpbmdzCisgICAgICAgICAgICAgICAgICAgICJCQyIsIAorICAgICAgICAgICAgICAgICAgICAiQUQiIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7ICJOdW1iZXJQYXR0ZXJucyIsIAorICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICAgICAiIywjIzAuIyMjOy0jLCMjMC4jIyMiLCAvLyBkZWNpbWFsIHBhdHRlcm4KKyAgICAgICAgICAgICAgICAgICAgIiQjLCMjMC4wMDsoJCMsIyMwLjAwKSIsIC8vIGN1cnJlbmN5IHBhdHRlcm4KKyAgICAgICAgICAgICAgICAgICAgIiMsIyMwJSIgLy8gcGVyY2VudCBwYXR0ZXJuCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsgIk51bWJlckVsZW1lbnRzIiwgCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAgICIuIiwgLy8gZGVjaW1hbCBzZXBhcmF0b3IKKyAgICAgICAgICAgICAgICAgICAgIiwiLCAvLyBncm91cCAodGhvdXNhbmRzKSBzZXBhcmF0b3IKKyAgICAgICAgICAgICAgICAgICAgIjsiLCAvLyBsaXN0IHNlcGFyYXRvcgorICAgICAgICAgICAgICAgICAgICAiJSIsIC8vIHBlcmNlbnQgc2lnbgorICAgICAgICAgICAgICAgICAgICAiMCIsIC8vIG5hdGl2ZSAwIGRpZ2l0CisgICAgICAgICAgICAgICAgICAgICIjIiwgLy8gcGF0dGVybiBkaWdpdAorICAgICAgICAgICAgICAgICAgICAiLSIsIC8vIG1pbnVzIHNpZ24KKyAgICAgICAgICAgICAgICAgICAgIkUiLCAvLyBleHBvbmVudGlhbAorICAgICAgICAgICAgICAgICAgICAiXHUyMDMwIiwgLy8gcGVyIG1pbGxlCisgICAgICAgICAgICAgICAgICAgICJcdTIyMWUiLCAvLyBpbmZpbml0eQorICAgICAgICAgICAgICAgICAgICAiXHVmZmZkIiAvLyBOYU4KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeyAiQ3VycmVuY3lFbGVtZW50cyIsIAorICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICAgICAiJCIsIC8vIGxvY2FsIGN1cnJlbmN5IHN5bWJvbAorICAgICAgICAgICAgICAgICAgICAiVVNEIiwgLy8gaW50bCBjdXJyZW5jeSBzeW1ib2wKKyAgICAgICAgICAgICAgICAgICAgIi4iIC8vIG1vbmV0YXJ5IGRlY2ltYWwgc2VwYXJhdG9yCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsgIkRhdGVUaW1lUGF0dGVybnMiLCAKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgImg6bW06c3MgJ28nJycnY2xvY2snIGEgeiIsIC8vIGZ1bGwgdGltZSBwYXR0ZXJuCisgICAgICAgICAgICAgICAgICAgICJoOm1tOnNzIGEgeiIsIC8vIGxvbmcgdGltZSBwYXR0ZXJuCisgICAgICAgICAgICAgICAgICAgICJoOm1tOnNzIGEiLCAvLyBtZWRpdW0gdGltZSBwYXR0ZXJuCisgICAgICAgICAgICAgICAgICAgICJoOm1tIGEiLCAvLyBzaG9ydCB0aW1lIHBhdHRlcm4KKyAgICAgICAgICAgICAgICAgICAgIkVFRUUsIE1NTU0gZCwgeXl5eSIsIC8vIGZ1bGwgZGF0ZSBwYXR0ZXJuCisgICAgICAgICAgICAgICAgICAgICJNTU1NIGQsIHl5eXkiLCAvLyBsb25nIGRhdGUgcGF0dGVybgorICAgICAgICAgICAgICAgICAgICAiZGQtTU1NLXl5IiwgLy8gbWVkaXVtIGRhdGUgcGF0dGVybgorICAgICAgICAgICAgICAgICAgICAiTS9kL3l5IiwgLy8gc2hvcnQgZGF0ZSBwYXR0ZXJuCisgICAgICAgICAgICAgICAgICAgICJ7MX0gezB9IiAvLyBkYXRlLXRpbWUgcGF0dGVybgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7ICJEYXRlVGltZUVsZW1lbnRzIiwgCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAgICIxIiwgLy8gZmlyc3QgZGF5IG9mIHdlZWsKKyAgICAgICAgICAgICAgICAgICAgIjEiIC8vIG1pbiBkYXlzIGluIGZpcnN0IHdlZWsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeyAiQ29sbGF0aW9uRWxlbWVudHMiLG5ldyBTdHJpbmdbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJWZXJzaW9uIiwiMS4wIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Ik92ZXJpZGUiLCJmYWxzZSJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJTZXF1ZW5jZSIsIiJ9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7ICJNZWFzdXJlbWVudCIgLCIifSwKKyAgICAgICAgICAgIHsgIkNvdW50cnlOdW1iZXIiICwgIiJ9LAorICAgICAgICAgICAgeyAiQ291bnRyeUlTQk5OdW1iZXIiICwgIiJ9LAorICAgICAgICAgICAgeyAiTGFuZ3VhZ2VMaWJyYXJ5VXNlIiAsICIifSwKKyAgICAgICAgICAgIHsgIlBhcGVyU2l6ZSIsIG5ldyBTdHJpbmdbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiSGllZ2h0IiwiIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJXaWR0aCIsIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiVW5pdHMiLCAiIn0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgCisgICAgICAgICAgICB7ICJNZXNzYWdlcyIgLCBuZXcgU3RyaW5nW11bXSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsieWVzRXhwcmVzc2lvbiIsIiJ9LCAvKiB5ZXMgZXhwcmVzc2lvbiAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Im5vRXhwcmVzc2lvbiIsIiJ9ICAvKiBubyBleHByZXNzaW9uICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsgIkFkZHJlc3NGb3JtYXQiLCBuZXcgU3RyaW5nW11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IlBvc3RhbEZvcm1hdCIsIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorCisgICAgICAgICAgICB7Ik5hbWVGb3JtYXQiLCBuZXcgU3RyaW5nW11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCXsiTmFtZVBhdHRlcm4iLCIifSwKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiR2VuZXJhbFNhbHV0YWlvbiIsICIifSwKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiU2hvcnRTYWx1dGF0aW9uTXIiLCAiIn0sCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IlNob3J0U2FsdXRhdGlvbk1pc3MiLCIifSwKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiU2hvcnRTYWx1dGF0aW9uTXJzIiwiIn0sCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IkxvbmdTYWx1dGF0aW9uTXIiLCIifSwKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiTG9uZ1NhbHV0YXRpb25NaXNzIiwiIn0sCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IkxvbmdTYWx1dGF0aW9uTXJzIiwiIn0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LCAKKyAgICAgICAgICAgIHsgIklkZW50aWZpY2F0aW9uIiwgbmV3IFN0cmluZ1tdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiVGl0bGUiLCIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJTb3VyY2UiLCIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJBZGRyZXNzIiwiIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiQ29udGFjdCIsIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IkVtYWlsIiwiIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiVGVsZXBob25lIiwgIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IkZheCIsICIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJMYW5ndWFnZSIsIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IlRlcnJpdG9yeSIsIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IkF1ZGllbmNlIiwgIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IkFwcGxpY2F0aW9uIiwgIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IkFiYnJldmlhdGlvbiIsICIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJSZXZpc2lvbiIsICIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJEYXRlIiwiIn0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsgIlRlbGVwaG9uZUZvcm1hdCIsIG5ldyBTdHJpbmdbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IkludGVybmF0aW9uYWxGb3JtYXQiLCIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJEb21lc3RpY0Zvcm1hdCIsIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IkludGVybmF0aW9uYWxEaWFsQ29kZSIsIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IkludGVybmF0aW9uYWxQcmVmaXgiLCIifQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSAgICAKKyAgICAgICAgfTsKKyAgICB9Cit9CisgICAgICAgICAgICAKKyAgICAgICAgICAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbm9ybWFsaXplci9DUFBXcml0ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9ub3JtYWxpemVyL0NQUFdyaXRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdhN2E1MWEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbm9ybWFsaXplci9DUFBXcml0ZXIuamF2YQpAQCAtMCwwICsxLDIxNSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL25vcm1hbGl6ZXIvQXR0aWMvQ1BQV3JpdGVyLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMjUgMjI6NDM6NTkgJCAKKyAqICRSZXZpc2lvbjogMS44ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5ub3JtYWxpemVyOworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5Db21wYWN0Qnl0ZUFycmF5OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ29tcGFjdENoYXJBcnJheTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgamF2YS5pby4qOworCisvKioKKyAqIENQUFdyaXRlciBrbm93cyBob3cgdG8gd3JpdGUgZGF0YSBzdHJ1Y3R1cmVzIG91dCB0byBDKysgc291cmNlIGFuZCBoZWFkZXIgZmlsZXMKKyAqLworY2xhc3MgQ1BQV3JpdGVyIGV4dGVuZHMgU291cmNlV3JpdGVyIHsKKyAgICBQcmludFdyaXRlciBzb3VyY2U7CisgICAgUHJpbnRXcml0ZXIgaGVhZGVyOworCisgICAgU3RyaW5nIGNsYXNzTmFtZTsKKworICAgIHB1YmxpYyBDUFBXcml0ZXIoU3RyaW5nIGZpbGVOYW1lLCBTdHJpbmcgY05hbWUpIHRocm93cyBGaWxlTm90Rm91bmRFeGNlcHRpb24geworICAgICAgICBjbGFzc05hbWUgPSBjTmFtZTsKKyAgICAgICAgaW50IGkgPSBmaWxlTmFtZS5sYXN0SW5kZXhPZignLycpOworICAgICAgICBTdHJpbmcgbmFtZSA9IChpID49IDApID8gZmlsZU5hbWUuc3Vic3RyaW5nKGkrMSkgOiBmaWxlTmFtZTsKKworICAgICAgICAvLyBGaW5kIHRoZSBjbGFzcyBuYW1lCisgICAgICAgIGhlYWRlciA9IG5ldyBQcmludFdyaXRlcihuZXcgRmlsZU91dHB1dFN0cmVhbShmaWxlTmFtZSArICIuaCIpKTsKKyAgICAgICAgd3JpdGVIZWFkZXIoaGVhZGVyKTsKKyAgICAgICAgaGVhZGVyLnByaW50bG4oIiNpbmNsdWRlIFwidW5pY29kZS91dHlwZXMuaFwiIik7CisgICAgICAgIGhlYWRlci5wcmludGxuKCIjaW5jbHVkZSBcInVjbXA4LmhcIiIpOworICAgICAgICBoZWFkZXIucHJpbnRsbigiI2luY2x1ZGUgXCJ1Y21wMTYuaFwiIik7CisgICAgICAgIGhlYWRlci5wcmludGxuKCIiKTsKKyAgICAgICAgaGVhZGVyLnByaW50bG4oInN0cnVjdCAiICsgY2xhc3NOYW1lICsgIiB7Iik7ICAgLy8gInN0cnVjdCIgbWFrZXMgZXZlcnl0aGluZyBwdWJsaWMKKworICAgICAgICBzb3VyY2UgPSBuZXcgUHJpbnRXcml0ZXIobmV3IEZpbGVPdXRwdXRTdHJlYW0oZmlsZU5hbWUgKyAiLmNwcCIpKTsKKyAgICAgICAgd3JpdGVIZWFkZXIoc291cmNlKTsKKyAgICAgICAgc291cmNlLnByaW50bG4oIiNpbmNsdWRlIFwiIiArIG5hbWUgKyAiLmhcIiAiKTsKKyAgICAgICAgc291cmNlLnByaW50bG4oIiIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGNsb3NlKCkgeworICAgICAgICBoZWFkZXIucHJpbnRsbigifTsiKTsKKyAgICAgICAgaGVhZGVyLmNsb3NlKCk7CisgICAgICAgIHNvdXJjZS5jbG9zZSgpOworICAgICAgICBoZWFkZXIgPSBudWxsOworICAgICAgICBzb3VyY2UgPSBudWxsOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlKFN0cmluZyBuYW1lLCBzaG9ydCB2YWx1ZSkgeworICAgICAgICBoZWFkZXIucHJpbnRsbigiICAgIGVudW0geyAiICsgbmFtZSArICIgPSAiICsgdmFsdWUgKyAiIH07Iik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGUoU3RyaW5nIG5hbWUsIGludCB2YWx1ZSkgeworICAgICAgICBoZWFkZXIucHJpbnRsbigiICAgIGVudW0geyAiICsgbmFtZSArICIgPSAiICsgdmFsdWUgKyAiIH07Iik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGVIZXgoU3RyaW5nIG5hbWUsIGNoYXIgdmFsdWUpIHsKKyAgICAgICAgaGVhZGVyLnByaW50bG4oIiAgICBlbnVtIHsgIiArIG5hbWUgKyAiID0gMHgiICsgVXRpbGl0eS5oZXgodmFsdWUpICsgIiB9OyIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlSGV4KFN0cmluZyBuYW1lLCBpbnQgdmFsdWUpIHsKKyAgICAgICAgaGVhZGVyLnByaW50bG4oIiAgICBlbnVtIHsgIiArIG5hbWUgKyAiID0gMHgiICsgSW50ZWdlci50b1N0cmluZyh2YWx1ZSwxNikgKyAiIH07Iik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGUoU3RyaW5nIG5hbWUsIENvbXBhY3RDaGFyQXJyYXkgYXJyYXkpIHsKKyAgICAgICAgYXJyYXkuY29tcGFjdChmYWxzZSk7CisKKyAgICAgICAgU3RyaW5nIGluZGV4TmFtZSA9IG5hbWUgKyAiX2luZGV4IjsKKyAgICAgICAgU3RyaW5nIHZhbHVlTmFtZSA9IG5hbWUgKyAiX3ZhbHVlcyI7CisKKyAgICAgICAgd3JpdGUoaW5kZXhOYW1lLCBhcnJheS5nZXRJbmRleEFycmF5KCkpOworICAgICAgICB3cml0ZSh2YWx1ZU5hbWUsIGFycmF5LmdldFZhbHVlQXJyYXkoKSk7CisKKyAgICAgICAgaGVhZGVyLnByaW50bG4oIiIpOworICAgICAgICBoZWFkZXIucHJpbnRsbigiICAgIHN0YXRpYyBDb21wYWN0U2hvcnRBcnJheSBfIiArIG5hbWUgKyAiOyIpOworICAgICAgICBoZWFkZXIucHJpbnRsbigiIik7CisgICAgICAgIGhlYWRlci5wcmludGxuKCIgICAgc3RhdGljIGNvbnN0IENvbXBhY3RTaG9ydEFycmF5KiAiICsgbmFtZSArICI7Iik7CisKKyAgICAgICAgc291cmNlLnByaW50bG4oIiIpOworICAgICAgICBzb3VyY2UucHJpbnRsbigiQ29tcGFjdFNob3J0QXJyYXkgIiArCisgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZSArICI6Ol8iICsgbmFtZSArICI7Iik7CisgICAgICAgIHNvdXJjZS5wcmludGxuKCIiKTsKKyAgICAgICAgc291cmNlLnByaW50bG4oImNvbnN0IENvbXBhY3RTaG9ydEFycmF5KiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lICsgIjo6IiArIG5hbWUgKyAiID0gIik7CisgICAgICAgIHNvdXJjZS5wcmludGxuKCIgICAgdWNtcDE2X2luaXRBbGlhc1dpdGhCbG9ja1NoaWZ0KCYiICsgY2xhc3NOYW1lICsgIjo6XyIgKyBuYW1lICsgIiwiKTsKKyAgICAgICAgc291cmNlLnByaW50bG4oIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVpbnQxNl90KikiICsgaW5kZXhOYW1lICsgIiwiKTsKKyAgICAgICAgc291cmNlLnByaW50bG4oIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludDE2X3QqKSIgKyB2YWx1ZU5hbWUgKyAiLCIpOworICAgICAgICBzb3VyY2UucHJpbnRsbigiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgYXJyYXkuZ2V0VmFsdWVBcnJheSgpLmxlbmd0aCArICIsICIgKworICAgICAgICAgICAgICAgICAgICAgICAiMHgwMDAwLCAiICsgLy8gZGVmYXVsdCB2YWx1ZQorICAgICAgICAgICAgICAgICAgICAgICBDb21wYWN0Q2hhckFycmF5LkJMT0NLU0hJRlQgKyAiKTsiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZShTdHJpbmcgbmFtZSwgQ29tcGFjdEJ5dGVBcnJheSBhcnJheSkgeworICAgICAgICBhcnJheS5jb21wYWN0KGZhbHNlKTsKKworICAgICAgICBTdHJpbmcgaW5kZXhOYW1lID0gbmFtZSArICJfaW5kZXgiOworICAgICAgICBTdHJpbmcgdmFsdWVOYW1lID0gbmFtZSArICJfdmFsdWVzIjsKKworICAgICAgICB3cml0ZShpbmRleE5hbWUsIGFycmF5LmdldEluZGV4QXJyYXkoKSk7CisgICAgICAgIHdyaXRlKHZhbHVlTmFtZSwgYXJyYXkuZ2V0VmFsdWVBcnJheSgpKTsKKworICAgICAgICBoZWFkZXIucHJpbnRsbigiIik7CisgICAgICAgIGhlYWRlci5wcmludGxuKCIgICAgc3RhdGljIENvbXBhY3RCeXRlQXJyYXkgXyIgKyBuYW1lICsgIjsiKTsKKyAgICAgICAgaGVhZGVyLnByaW50bG4oIiIpOworICAgICAgICBoZWFkZXIucHJpbnRsbigiICAgIHN0YXRpYyBjb25zdCBDb21wYWN0Qnl0ZUFycmF5KiAiICsgbmFtZSArICI7Iik7CisKKyAgICAgICAgc291cmNlLnByaW50bG4oIiIpOworICAgICAgICBzb3VyY2UucHJpbnRsbigiQ29tcGFjdEJ5dGVBcnJheSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lICsgIjo6XyIgKyBuYW1lICsgIjsiKTsKKyAgICAgICAgc291cmNlLnByaW50bG4oIiIpOworICAgICAgICBzb3VyY2UucHJpbnRsbigiY29uc3QgQ29tcGFjdEJ5dGVBcnJheSogIiArCisgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZSArICI6OiIgKyBuYW1lICsgIiA9ICIpOworICAgICAgICBzb3VyY2UucHJpbnRsbigiICAgIHVjbXA4X2luaXRBbGlhcygmIiArIGNsYXNzTmFtZSArICI6Ol8iICsgbmFtZSArICIsIik7CisgICAgICAgIHNvdXJjZS5wcmludGxuKCIgICAgICAgICAgICAgICAgICAgICh1aW50MTZfdCopIiArIGluZGV4TmFtZSArICIsIik7CisgICAgICAgIHNvdXJjZS5wcmludGxuKCIgICAgICAgICAgICAgICAgICAgIChpbnQ4X3QqKSIgKyB2YWx1ZU5hbWUgKyAiLCIpOworICAgICAgICBzb3VyY2UucHJpbnRsbigiICAgICAgICAgICAgICAgICAgICAiICsgYXJyYXkuZ2V0VmFsdWVBcnJheSgpLmxlbmd0aCArICIpOyIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlKFN0cmluZyBuYW1lLCBTdHJpbmdCdWZmZXIgc3RyKSB7CisgICAgICAgIHdyaXRlKG5hbWUsIHN0ci50b1N0cmluZygpLnRvQ2hhckFycmF5KCkpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlKFN0cmluZyBuYW1lLCBjaGFyW10gYXJyYXkpIHsKKyAgICAgICAgaGVhZGVyLnByaW50bG4oIiIpOworICAgICAgICBoZWFkZXIucHJpbnRsbigiICAgIHN0YXRpYyBjb25zdCB1aW50MTZfdCAiICsgbmFtZSArICJbXTsiKTsKKworICAgICAgICBzb3VyY2UucHJpbnRsbigiIik7CisgICAgICAgIHNvdXJjZS5wcmludGxuKCJjb25zdCB1aW50MTZfdCAiICsgY2xhc3NOYW1lICsgIjo6IiArIG5hbWUgKyAiW10gPSB7Iik7CisKKyAgICAgICAgc291cmNlLnByaW50KCIgICAgIik7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChpID4gMCAmJiBpICUgOCA9PSAwKSB7CisgICAgICAgICAgICAgICAgc291cmNlLnByaW50KFV0aWxpdHkuTElORV9TRVBBUkFUT1IgKyAiICAgICIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc291cmNlLnByaW50KCIweCIgKyBVdGlsaXR5LmhleChhcnJheVtpXSkgKyAiLCAiKTsKKyAgICAgICAgfQorICAgICAgICBzb3VyY2UucHJpbnRsbigifTsiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZShTdHJpbmcgbmFtZSwgc2hvcnRbXSBhcnJheSkgeworICAgICAgICBoZWFkZXIucHJpbnRsbigiIik7CisgICAgICAgIGhlYWRlci5wcmludGxuKCIgICAgc3RhdGljIGNvbnN0IHVpbnQxNl90ICIgKyBuYW1lICsgIltdOyIpOworCisgICAgICAgIHNvdXJjZS5wcmludGxuKCIiKTsKKyAgICAgICAgc291cmNlLnByaW50bG4oImNvbnN0IHVpbnQxNl90ICIgKyBjbGFzc05hbWUgKyAiOjoiICsgbmFtZSArICJbXSA9IHsiKTsKKworICAgICAgICBzb3VyY2UucHJpbnQoIiAgICAiKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKGkgPiAwICYmIGkgJSA4ID09IDApIHsKKyAgICAgICAgICAgICAgICBzb3VyY2UucHJpbnQoVXRpbGl0eS5MSU5FX1NFUEFSQVRPUiArICIgICAgIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzb3VyY2UucHJpbnQoIjB4IiArIFV0aWxpdHkuaGV4KChjaGFyKWFycmF5W2ldKSArICIsICIpOworICAgICAgICB9CisgICAgICAgIHNvdXJjZS5wcmludGxuKCJ9OyIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlKFN0cmluZyBuYW1lLCBpbnRbXSBhcnJheSkgeworICAgICAgICBoZWFkZXIucHJpbnRsbigiIik7CisgICAgICAgIGhlYWRlci5wcmludGxuKCIgICAgc3RhdGljIGNvbnN0IGludDMyX3QgIiArIG5hbWUgKyAiW107Iik7CisKKyAgICAgICAgc291cmNlLnByaW50bG4oIiIpOworICAgICAgICBzb3VyY2UucHJpbnRsbigiY29uc3QgaW50MzJfdCAiICsgY2xhc3NOYW1lICsgIjo6IiArIG5hbWUgKyAiW10gPSB7Iik7CisKKyAgICAgICAgc291cmNlLnByaW50KCIgICAgIik7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChpID4gMCAmJiBpICUgOCA9PSAwKSB7CisgICAgICAgICAgICAgICAgc291cmNlLnByaW50KFV0aWxpdHkuTElORV9TRVBBUkFUT1IgKyAiICAgICIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc291cmNlLnByaW50KCIweCIgKyBJbnRlZ2VyLnRvU3RyaW5nKGFycmF5W2ldLDE2KSArICIsICIpOworICAgICAgICB9CisgICAgICAgIHNvdXJjZS5wcmludGxuKCJ9OyIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlKFN0cmluZyBuYW1lLCBieXRlW10gYXJyYXkpIHsKKyAgICAgICAgaGVhZGVyLnByaW50bG4oIiIpOworICAgICAgICBoZWFkZXIucHJpbnRsbigiICAgIHN0YXRpYyBjb25zdCB1aW50OF90ICIgKyBuYW1lICsgIltdOyIpOworCisgICAgICAgIHNvdXJjZS5wcmludGxuKCIiKTsKKyAgICAgICAgc291cmNlLnByaW50bG4oImNvbnN0IHVpbnQ4X3QgIiArIGNsYXNzTmFtZSArICI6OiIgKyBuYW1lICsgIltdID0geyIpOworCisgICAgICAgIHNvdXJjZS5wcmludCgiICAgICIpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoaSA+IDAgJiYgaSAlIDggPT0gMCkgeworICAgICAgICAgICAgICAgIHNvdXJjZS5wcmludChVdGlsaXR5LkxJTkVfU0VQQVJBVE9SICsgIiAgICAiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNvdXJjZS5wcmludCgiMHgiICsgaGV4MihhcnJheVtpXSkgKyAiLCAiKTsKKyAgICAgICAgfQorICAgICAgICBzb3VyY2UucHJpbnRsbigifTsiKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmdCdWZmZXIgX19idWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisKKyAgICAvLyBUaGlzIG1ldGhvZCBub3QgbXVsdGl0aHJlYWQgc2FmZSEKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgaGV4MihpbnQgeCkgeworICAgICAgICBfX2J1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgIF9fYnVmLmFwcGVuZChoZXgxKHg+PjQpKS5hcHBlbmQoaGV4MSh4KSk7CisgICAgICAgIHJldHVybiBfX2J1Zi50b1N0cmluZygpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgaGV4MShpbnQgeCkgeworICAgICAgICByZXR1cm4gIjAxMjM0NTY3ODlBQkNERUYiLmNoYXJBdCh4ICYgMHhGKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbm9ybWFsaXplci9KYXZhV3JpdGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbm9ybWFsaXplci9KYXZhV3JpdGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2RhZTg2MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9ub3JtYWxpemVyL0phdmFXcml0ZXIuamF2YQpAQCAtMCwwICsxLDExMCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL25vcm1hbGl6ZXIvQXR0aWMvSmF2YVdyaXRlci5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzI1IDIyOjQzOjU5ICQgCisgKiAkUmV2aXNpb246IDEuNiAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubm9ybWFsaXplcjsKKworLy9pbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5Db21wYWN0Q2hhckFycmF5OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ29tcGFjdEJ5dGVBcnJheTsKK2ltcG9ydCBqYXZhLmlvLio7CisKKy8qKgorICogSmF2YVdyaXRlciBrbm93cyBob3cgdG8gd3JpdGUgZGF0YSBzdHJ1Y3R1cmVzIG91dCB0byBhIEphdmEgc291cmNlIGZpbGUKKyAqLworY2xhc3MgSmF2YVdyaXRlciBleHRlbmRzIFNvdXJjZVdyaXRlciB7CisgICAgUHJpbnRXcml0ZXIgb3V0OworCisgICAgcHVibGljIEphdmFXcml0ZXIoU3RyaW5nIG5hbWUpIHRocm93cyBGaWxlTm90Rm91bmRFeGNlcHRpb24geworICAgICAgICAvLyBGaW5kIHRoZSBjbGFzcyBuYW1lCisgICAgICAgIGludCBjSW5kZXggPSBuYW1lLmxhc3RJbmRleE9mKCcvJyk7CisgICAgICAgIFN0cmluZyBjTmFtZSA9IChjSW5kZXggPj0gMCkgPyBuYW1lLnN1YnN0cmluZyhjSW5kZXgrMSkgOiBuYW1lOworCisgICAgICAgIG91dCA9IG5ldyBQcmludFdyaXRlcihuZXcgRmlsZU91dHB1dFN0cmVhbShuYW1lICsgIi5qYXZhIikpOworCisgICAgICAgIHdyaXRlSGVhZGVyKG91dCk7CisgICAgICAgIG91dC5wcmludGxuKCJjbGFzcyAiICsgY05hbWUgKyAiIHsiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBjbG9zZSgpIHsKKyAgICAgICAgb3V0LnByaW50bG4oIn0iKTsKKyAgICAgICAgb3V0LmNsb3NlKCk7CisgICAgICAgIG91dCA9IG51bGw7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGUoU3RyaW5nIG5hbWUsIHNob3J0IHZhbHVlKSB7CisgICAgICAgIG91dC5wcmludGxuKCIgICAgc3RhdGljIGZpbmFsIHNob3J0ICIgKyBuYW1lICsgIiA9ICIgKyB2YWx1ZSArICI7Iik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGUoU3RyaW5nIG5hbWUsIGludCB2YWx1ZSkgeworICAgICAgICBvdXQucHJpbnRsbigiICAgIHN0YXRpYyBmaW5hbCBpbnQgIiArIG5hbWUgKyAiID0gIiArIHZhbHVlICsgIjsiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZUhleChTdHJpbmcgbmFtZSwgY2hhciB2YWx1ZSkgeworICAgICAgICBvdXQucHJpbnRsbigiICAgIHN0YXRpYyBmaW5hbCBjaGFyICIgKyBuYW1lICsgIiA9IDB4IiArIEludGVnZXIudG9TdHJpbmcoKGludCl2YWx1ZSwxNikgKyAiOyIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlSGV4KFN0cmluZyBuYW1lLCBpbnQgdmFsdWUpIHsKKyAgICAgICAgb3V0LnByaW50bG4oIiAgICBzdGF0aWMgZmluYWwgaW50ICIgKyBuYW1lICsgIiA9IDB4IiArIEludGVnZXIudG9TdHJpbmcodmFsdWUsMTYpICsgIjsiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZShTdHJpbmcgbmFtZSwgQ29tcGFjdENoYXJBcnJheSBhcnJheSkgeworICAgICAgICBhcnJheS5jb21wYWN0KGZhbHNlKTsKKyAgICAgICAgb3V0LnByaW50bG4oIiIpOworICAgICAgICBvdXQucHJpbnRsbigiICAgIHN0YXRpYyBmaW5hbCBDb21wYWN0Q2hhckFycmF5ICIgKyBuYW1lICsgIiA9IG5ldyBDb21wYWN0Q2hhckFycmF5KCIpOworICAgICAgICBvdXQucHJpbnRsbihVdGlsaXR5LmZvcm1hdEZvclNvdXJjZShVdGlsaXR5LmFycmF5VG9STEVTdHJpbmcoYXJyYXkuZ2V0SW5kZXhBcnJheSgpKSkpOworICAgICAgICBvdXQucHJpbnRsbigiICAgICAgICAsIiApOworICAgICAgICBvdXQucHJpbnRsbihVdGlsaXR5LmZvcm1hdEZvclNvdXJjZShVdGlsaXR5LmFycmF5VG9STEVTdHJpbmcoYXJyYXkuZ2V0VmFsdWVBcnJheSgpKSkpOworICAgICAgICBvdXQucHJpbnRsbigiICAgICAgICApOyIgKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZShTdHJpbmcgbmFtZSwgQ29tcGFjdEJ5dGVBcnJheSBhcnJheSkgeworICAgICAgICBhcnJheS5jb21wYWN0KGZhbHNlKTsKKyAgICAgICAgb3V0LnByaW50bG4oIiIpOworICAgICAgICBvdXQucHJpbnRsbigiICAgIHN0YXRpYyBmaW5hbCBDb21wYWN0Qnl0ZUFycmF5ICIgKyBuYW1lICsgIiA9IG5ldyBDb21wYWN0Qnl0ZUFycmF5KCIpOworICAgICAgICBvdXQucHJpbnRsbihVdGlsaXR5LmZvcm1hdEZvclNvdXJjZShVdGlsaXR5LmFycmF5VG9STEVTdHJpbmcoYXJyYXkuZ2V0SW5kZXhBcnJheSgpKSkpOworICAgICAgICBvdXQucHJpbnRsbigiICAgICAgICAsIiApOworICAgICAgICBvdXQucHJpbnRsbihVdGlsaXR5LmZvcm1hdEZvclNvdXJjZShVdGlsaXR5LmFycmF5VG9STEVTdHJpbmcoYXJyYXkuZ2V0VmFsdWVBcnJheSgpKSkpOworICAgICAgICBvdXQucHJpbnRsbigiICAgICAgICApOyIgKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZShTdHJpbmcgbmFtZSwgU3RyaW5nQnVmZmVyIHN0cikgeworICAgICAgICBvdXQucHJpbnRsbigiIik7CisgICAgICAgIG91dC5wcmludGxuKCIgICAgc3RhdGljIGZpbmFsIFN0cmluZyAiICsgbmFtZSArICIgPSAiKTsKKyAgICAgICAgb3V0LnByaW50bG4oVXRpbGl0eS5mb3JtYXRGb3JTb3VyY2Uoc3RyLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgb3V0LnByaW50bG4oIiAgICA7Iik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGUoU3RyaW5nIG5hbWUsIGNoYXJbXSBhcnJheSkgeworICAgICAgICBvdXQucHJpbnRsbigiIik7CisgICAgICAgIG91dC5wcmludGxuKCIgICAgc3RhdGljIGZpbmFsIGNoYXJbXSAiICsgbmFtZSArICIgPSBVdGlsaXR5LlJMRVN0cmluZ1RvQ2hhckFycmF5KCIpOworICAgICAgICBvdXQucHJpbnRsbihVdGlsaXR5LmZvcm1hdEZvclNvdXJjZShVdGlsaXR5LmFycmF5VG9STEVTdHJpbmcoYXJyYXkpKSk7CisgICAgICAgIG91dC5wcmludGxuKCIgICAgKTsiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZShTdHJpbmcgbmFtZSwgaW50W10gYXJyYXkpIHsKKyAgICAgICAgb3V0LnByaW50bG4oIiIpOworICAgICAgICBvdXQucHJpbnRsbigiICAgIHN0YXRpYyBmaW5hbCBpbnRbXSAiICsgbmFtZSArICIgPSBVdGlsaXR5LlJMRVN0cmluZ1RvSW50QXJyYXkoIik7CisgICAgICAgIG91dC5wcmludGxuKFV0aWxpdHkuZm9ybWF0Rm9yU291cmNlKFV0aWxpdHkuYXJyYXlUb1JMRVN0cmluZyhhcnJheSkpKTsKKyAgICAgICAgb3V0LnByaW50bG4oIiAgICApOyIpOworICAgIH0KKworICAgIHZvaWQgd3JpdGVIZWFkZXIoUHJpbnRXcml0ZXIgb3V0KSB7CisgICAgICAgIHN1cGVyLndyaXRlSGVhZGVyKG91dCk7CisgICAgICAgIG91dC5wcmludGxuKCIiKTsKKyAgICAgICAgb3V0LnByaW50bG4oInBhY2thZ2UgY29tLmlibS5pY3UudGV4dDsiKTsKKyAgICAgICAgb3V0LnByaW50bG4oImltcG9ydCBjb20uaWJtLmljdS51dGlsLio7Iik7CisgICAgICAgIG91dC5wcmludGxuKCIiKTsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9ub3JtYWxpemVyL011dGFibGVDaGFyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbm9ybWFsaXplci9NdXRhYmxlQ2hhci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjVjZDA5MzkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbm9ybWFsaXplci9NdXRhYmxlQ2hhci5qYXZhCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9ub3JtYWxpemVyL0F0dGljL011dGFibGVDaGFyLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDU6MzMgJCAKKyAqICRSZXZpc2lvbjogMS4zICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworLy8gTXV0YWJsZUNoYXIuamF2YQorCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLm5vcm1hbGl6ZXI7CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGphdmEubGFuZy5Db21wYXJhYmxlOworaW1wb3J0IGphdmEuaW8uU2VyaWFsaXphYmxlOworCitjbGFzcyBNdXRhYmxlQ2hhciBpbXBsZW1lbnRzIENsb25lYWJsZSwgQ29tcGFyYWJsZSwgU2VyaWFsaXphYmxlIHsKKworICAgIHB1YmxpYyBjaGFyIHZhbHVlOworCisgICAgcHVibGljIE11dGFibGVDaGFyKGNoYXIgbmV3VmFsdWUpIHsKKyAgICAgICAgdmFsdWUgPSBuZXdWYWx1ZTsKKyAgICB9CisgICAgcHVibGljIE11dGFibGVDaGFyIHNldChjaGFyIG5ld1ZhbHVlKSB7CisgICAgICAgIHZhbHVlID0gbmV3VmFsdWU7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG90aGVyKSB7CisgICAgICAgIHJldHVybiB2YWx1ZSA9PSAoKE11dGFibGVDaGFyKW90aGVyKS52YWx1ZTsKKyAgICB9CisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgcmV0dXJuIHZhbHVlOworICAgIH0KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gU3RyaW5nLnZhbHVlT2YodmFsdWUpOworICAgIH0KKyAgICBwdWJsaWMgaW50IGNvbXBhcmVUbyhPYmplY3QgYikgeworICAgICAgICBjaGFyIGNoID0gKChNdXRhYmxlQ2hhciliKS52YWx1ZTsKKyAgICAgICAgcmV0dXJuIHZhbHVlID09IGNoID8gMCA6IHZhbHVlIDwgY2ggPyAtMSA6IDE7CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbm9ybWFsaXplci9Ob3JtYWxpemVyQnVpbGRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL25vcm1hbGl6ZXIvTm9ybWFsaXplckJ1aWxkZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41OGZjNDk5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL25vcm1hbGl6ZXIvTm9ybWFsaXplckJ1aWxkZXIuamF2YQpAQCAtMCwwICsxLDExNTUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9ub3JtYWxpemVyL0F0dGljL05vcm1hbGl6ZXJCdWlsZGVyLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDMvMDEgMTg6NDg6MDEgJCAKKyAqICRSZXZpc2lvbjogMS4xNiAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5ub3JtYWxpemVyOworCitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5Db21wYWN0Qnl0ZUFycmF5OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ29tcGFjdENoYXJBcnJheTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKKworcHVibGljIGZpbmFsIGNsYXNzIE5vcm1hbGl6ZXJCdWlsZGVyCit7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3NbXSkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIE5vcm1hbGl6ZXJCdWlsZGVyIGZvbyA9IG5ldyBOb3JtYWxpemVyQnVpbGRlcihhcmdzKTsKKyAgICAgICAgICAgIGZvbyA9IG51bGw7CisgICAgICAgIH0gY2F0Y2ggKFRocm93YWJsZSBlKSB7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oZS5nZXRMb2NhbGl6ZWRNZXNzYWdlKCkpOworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgIFN5c3RlbS5pbi5yZWFkKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIFVJbmZvIHVpbmZvOworCisgICAgLyoqCisgICAgICogTWFwIGNoYXItPlN0cmluZy4gIEVhY2ggZW50cnkgbWFwcyBhIGNoYXJhY3RlciB3aXRoIGEKKyAgICAgKiBkZWNvbXBvc2l0aW9uIChlaXRoZXIgY2Fub25pY2FsIG9yIGNvbXBhdGliaWxpdHkpIHRvIHRoYXQKKyAgICAgKiBkZWNvbXBvc2l0aW9uLiAgVGhlIGRlY29tcG9zaXRpb24gaXMgaW4gY2Fub25pY2FsIG9yZGVyLgorICAgICAqLworICAgIHByaXZhdGUgRGVjb21wTWFwIGRlY29tcHMgPSBuZXcgRGVjb21wTWFwKCk7CisKKyAgICAvKioKKyAgICAgKiBNYXAgb2YgY2hhcmFjdGVycyB3aG9zZSBmdWxsIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9uIGlzCisgICAgICogRElGRkVSRU5UIGZyb20gdGhlaXIgZnVsbCBjb21wYXRpYmlsaXR5IGRlY29tcG9zaXRpb24uCisgICAgICovCisgICAgcHJpdmF0ZSBEZWNvbXBNYXAgZXhwbG9kZUNvbXBhdCA9IG5ldyBEZWNvbXBNYXAoKTsKKworICAgIC8qKgorICAgICAqIE1hcCBvZiBjaGFyYWN0ZXJzIHdpdGggYSBkZWNvbXBvc2l0aW9uIHRoYXQgYXJlIG5laXRoZXIKKyAgICAgKiBpbiBleHBsb2RlQ29tcGF0IG5vciBpbiBwZXJtdXRlZENvbXBvc2l0aW9ucy4KKyAgICAgKi8KKyAgICBwcml2YXRlIERlY29tcE1hcCBleHBsb2RlT25seSAgID0gbmV3IERlY29tcE1hcCgpOworCisgICAgLyoqCisgICAgICogTWFwIG9mIFN0cmluZy0+Y2hhciBvZiBwZXJtdXRhdGlvbnMgdGhhdCBjb21wb3NlIHRvIGEKKyAgICAgKiBjaGFyYWN0ZXIuICBUaGlzIGRvZXMgbm90IGluY2x1ZGUgc2luZ2xldG9ucyBvciBvdGhlcgorICAgICAqIGNvbXBvc2l0aW9uIGV4Y2x1c2lvbnMuICBJdCBpcyBhbiBpbnZlcnNlIGxpc3QsIHdpdGggdmFsaWQKKyAgICAgKiBwZXJtdXRhdGlvbnMsIGZvciBjYW5vbmljYWwgZGVjb21wb3NpdGlvbi4KKyAgICAgKi8KKyAgICBwcml2YXRlIENvbXBNYXAgcGVybXV0ZWRDb21wb3NpdGlvbnMgPSBuZXcgQ29tcE1hcCgpOworICAgIHByaXZhdGUgQ29tcE1hcCBiaW5hcnlDb21wb3NpdGlvbnMgPSBuZXcgQ29tcE1hcCgpOworCisgICAgLyoqCisgICAgICogQSBzZXQgb2YgY2hhcmFjdGVycyB0aGF0IGZvcm0gdGhlIGJhc2Ugb2YgYSBjb21iaW5pbmcKKyAgICAgKiBzZXF1ZW5jZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIENoYXJTZXQgYmFzZXMgPSBuZXcgQ2hhclNldCgpOworCisgICAgLyoqCisgICAgICogQSBzZXQgb2YgY2hhcmFjdGVycyB0aGF0IGZvcm0gdGhlIGNvbWJpbmluZyBjaGFyYWN0ZXIgb2YKKyAgICAgKiBhIGNvbWJpbmluZyBzZXF1ZW5jZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIENoYXJTZXQgY29tYmluaW5nID0gbmV3IENoYXJTZXQoKTsKKworICAgIHByaXZhdGUgTWFwIHBhaXJFeHBsb3Npb25zID0gbmV3IEhhc2hNYXAoKTsKKworICAgIHByaXZhdGUgYm9vbGVhbiBmVmVyYm9zZSA9IGZhbHNlOworICAgIHByaXZhdGUgYm9vbGVhbiBmV3JpdGVEYXRhID0gZmFsc2U7CisgICAgcHJpdmF0ZSBib29sZWFuIGZTaG93U2l6ZXMgPSBmYWxzZTsKKyAgICBwcml2YXRlIGJvb2xlYW4gZlByb21wdCA9IGZhbHNlOworICAgIHByaXZhdGUgYm9vbGVhbiBmSmF2YSA9IHRydWU7CisgICAgcHJpdmF0ZSBib29sZWFuIGZDUFAgPSBmYWxzZTsKKyAgICBwcml2YXRlIFN0cmluZyBmT3V0RGlyID0gbnVsbDsgLy8gb3V0cHV0IGRpcmVjdG9yeSBmb3IgZWl0aGVyIEphdmEgb3IgQysrCisKKyAgICAvKioKKyAgICAgKiBUaGUgaGlnaGVzdCBVbmljb2RlIGNoYXJhY3RlciB0aGF0IGhhcyBhIGNhbm9uaWNhbAorICAgICAqIGRlY29tcG9zaXRpb24uICAoaS5lLiBsYXJnZXN0IGNoYXIgdGhhdCBjYW4gcmVzdWx0IGZyb20gYQorICAgICAqIHByaW1hcnkgY2Fub25pY2FsIGNvbXBvc2l0aW9uLikgIFRoaXMgaXMgdGhlIGxhcmdlc3QgY2hhciBpbgorICAgICAqIHBlcm11dGVkQ29tcG9zaXRpb25zLgorICAgICAqLworICAgIGNoYXIgbGFyZ2VzdENoYXIgPSAwOworCisgICAgcHVibGljIE5vcm1hbGl6ZXJCdWlsZGVyKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBJT0V4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgLy8gUGFyc2UgbXkgY29tbWFuZCBsaW5lCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGFyZ3NbaV0uZXF1YWxzKCItZGF0YSIpKSB7CisgICAgICAgICAgICAgICAgdWluZm8gPSBuZXcgVUluZm8oYXJnc1srK2ldLCBhcmdzWysraV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoYXJnc1tpXS5lcXVhbHMoIi13cml0ZSIpKSB7CisgICAgICAgICAgICAgICAgZldyaXRlRGF0YSA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChhcmdzW2ldLmVxdWFscygiLXZlcmJvc2UiKSB8fCBhcmdzW2ldLiBlcXVhbHMoIi12IikpIHsKKyAgICAgICAgICAgICAgICBmVmVyYm9zZSA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChhcmdzW2ldLmVxdWFscygiLXNpemUiKSkgeworICAgICAgICAgICAgICAgIGZTaG93U2l6ZXMgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoYXJnc1tpXS5lcXVhbHMoIi1wcm9tcHQiKSkgeworICAgICAgICAgICAgICAgIGZQcm9tcHQgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoYXJnc1tpXS5lcXVhbHMoIi1qYXZhIikpIHsKKyAgICAgICAgICAgICAgICBmSmF2YSA9IHRydWU7CisgICAgICAgICAgICAgICAgZkNQUCA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoYXJnc1tpXS5lcXVhbHMoIi1jcHAiKSkgeworICAgICAgICAgICAgICAgIGZDUFAgPSB0cnVlOworICAgICAgICAgICAgICAgIGZKYXZhID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChhcmdzW2ldLmVxdWFscygiLW91dGRpciIpKSB7CisgICAgICAgICAgICAgICAgZk91dERpciA9IGFyZ3NbKytpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAodWluZm8gPT0gbnVsbCkgeworICAgICAgICAgICAgdWluZm8gPSBuZXcgVUluZm8oKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZk91dERpciA9PSBudWxsKSB7CisgICAgICAgICAgICBmT3V0RGlyID0gZkphdmEgPyAic3JjL2NvbS5pYm0uaWN1LnRleHQvIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIi4vIjsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWZPdXREaXIuZW5kc1dpdGgoIi8iKSkgeyBmT3V0RGlyICs9ICcvJzsgfQorCisgICAgICAgIC8vIG5vdCB1c2VkIGJvb2xlYW4gY2Fub25pY2FsT25seSA9IHRydWU7CisKKyAgICAgICAgLy8gQnVpbGQgZGVjb21wcywgYSBjaGFyLT5TdHJpbmcgbWFwcGluZyBvZiBjaGFyYWN0ZXJzIHRvIHRoZWlyCisgICAgICAgIC8vIGRlY29tcG9zaXRpb25zLCBlaXRoZXIgY2Fub25pY2FsIG9yIGNvbXBhdGliaWxpdHkuCisgICAgICAgIGNyZWF0ZURlY29tcG9zaXRpb25zKCk7CisKKyAgICAgICAgb3V0digiXG5HZW5lcmF0aW5nIHBlcm11dGVkIGNvbXBvc2l0aW9ucy4uLiIpOworCisgICAgICAgIC8vIEZvcm0gdGhlIGxpc3Qgb2YgYWxsIHRoZSBwZXJtdXRlZCBzZXF1ZW5jZXMgdGhhdCBhcmUKKyAgICAgICAgLy8gY2Fub25pY2FsbHkgZXF1aXZhbGVudCB0byB0aGUgY2Fub25pY2FsIGRlY29tcG9zaXRpb25zLiAgQXMKKyAgICAgICAgLy8gYSBieS1wcm9kdWN0LCBmaW5kIG91dCB3aGljaCBhcmUgbm90IGNvbWJpbmluZyBjaGFyYWN0ZXIKKyAgICAgICAgLy8gc2VxdWVuY2VzLgorCisgICAgICAgIGZvciAoY2hhciBjaCA9IDA7IGNoIDwgMHhGRkZGOyBjaCsrKSB7CisgICAgICAgICAgICBTdHJpbmcgZGVjb21wID0gZGVjb21wcy5nZXQoY2gpOworCisgICAgICAgICAgICBpZiAoZGVjb21wICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBib29sZWFuIGRvbmUgPSBmYWxzZTsKKworICAgICAgICAgICAgICAgIGlmICghdWluZm8uZ2V0RnVsbERlY29tcG9zaXRpb24oY2gsdHJ1ZSkuZXF1YWxzKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbmZvLmdldEZ1bGxEZWNvbXBvc2l0aW9uKGNoLGZhbHNlKSkpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBleHBsb2RlQ29tcGF0LnB1dChjaCwgdWluZm8uZ2V0RnVsbERlY29tcG9zaXRpb24oY2gsIGZhbHNlKSk7CisgICAgICAgICAgICAgICAgICAgIGRvbmUgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBJdCdzIGFsd2F5cyBhIGNvbWJpbmluZyBiYXNlIHNlcXVlbmNlLCBzbyByZW1vdmVkIGxhc3QgY2hlY2sgLSBsaXUKKyAgICAgICAgICAgICAgICBpZiAodWluZm8uaGFzQ2Fub25pY2FsRGVjb21wb3NpdGlvbihjaCkgJiYgZGVjb21wLmxlbmd0aCgpID4gMQorICAgICAgICAgICAgICAgICAgICAmJiAhdWluZm8uaXNFeGNsdWRlZENvbXBvc2l0aW9uKGNoKSAvKiYmIHVpbmZvLmlzQ0JTKGRlY29tcCkqLykKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGlmIChkZWNvbXAubGVuZ3RoKCkgPD0gMikgeworICAgICAgICAgICAgICAgICAgICAgICAgcGVybXV0ZWRDb21wb3NpdGlvbnMucHV0KGRlY29tcCwgY2gpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogQ3JlYXRlIGEgY29tcHJlaGVuc2l2ZSBsaXN0IG9mCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBwZXJtdXRhdGlvbnMuICBBc3N1bWUgdGhlIGZpcnN0IGNoYXIgaXMgYQorICAgICAgICAgICAgICAgICAgICAgICAgICogYmFzZSBjaGFyLCBzbyBkb24ndCBwZXJtdXRlIGl0IGludG8gdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBtaWRkbGUgb2YgdGhlIHN0cmluZyAtLSBqdXN0IGNvbmNhdGVuYXRlIGl0CisgICAgICAgICAgICAgICAgICAgICAgICAgKiBvbnRvIHRoZSBmcm9udC4gIEhvd2V2ZXIsIHRoZXJlIG1heSBiZQorICAgICAgICAgICAgICAgICAgICAgICAgICogZW1iZWRkZWQgYmFzZSBjaGFyYWN0ZXJzLCBzbyB3ZSBkbyBhCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBmdXJ0aGVyIGNoZWNrIGZvciBjYW5vbmljYWwgZGVjb21wb3NpdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICogZXF1aXZhbGVuY2UgYmVsb3cuICovCisgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IGFsdGVybmF0aXZlcyA9IGNvbmNhdChkZWNvbXAuY2hhckF0KDApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGp1bWJsZShkZWNvbXAuc3Vic3RyaW5nKDEsIGRlY29tcC5sZW5ndGgoKSkpKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhbHRlcm5hdGl2ZXMuc2l6ZSgpOyArK2kpCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhcmlhbnQgPSAoU3RyaW5nKWFsdGVybmF0aXZlcy5nZXQoaSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG5vcm1hbGl6ZWQgPSB1aW5mby5maXhDYW5vbmljYWwodmFyaWFudCk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobm9ybWFsaXplZC5lcXVhbHMoZGVjb21wKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJtdXRlZENvbXBvc2l0aW9ucy5wdXQodmFyaWFudCwgY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBsYXJnZXN0Q2hhciA9IGNoOworICAgICAgICAgICAgICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFkb25lKSB7CisgICAgICAgICAgICAgICAgICAgIGV4cGxvZGVPbmx5LnB1dChjaCwgZGVjb21wKTsgICAgLy8gRGlzcGFyYWdlZAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIG91dHYoIlxuTGFyZ2VzdCBjb21wb3NlZCBjaGFyOiAiICsgVXRpbGl0eS5oZXgobGFyZ2VzdENoYXIpKTsKKworICAgICAgICAvLyBGb3JtIHRoZSBiaW5hcnkgY29tcG9zaXRpb25zCisgICAgICAgIG91dHYoIlxuR2VuZXJhdGluZyBwYWlyd2lzZSBjb21wb3NpdGlvbnMuLi4iKTsKKworICAgICAgICBJdGVyYXRvciBsaXN0ID0gcGVybXV0ZWRDb21wb3NpdGlvbnMua2V5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGxpc3QuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBTdHJpbmcgZGVjb21wID0gKFN0cmluZylsaXN0Lm5leHQoKTsKKyAgICAgICAgICAgIGNoYXIgY2ggPSBwZXJtdXRlZENvbXBvc2l0aW9ucy5nZXQoZGVjb21wKTsKKworICAgICAgICAgICAgaWYgKGRlY29tcC5sZW5ndGgoKSA+IDIpIHsKKyAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgYSBjb21wb3NpdGlvbiBvZiBtb3JlIHRoYW4gdHdvIGNoYXJhY3RlcnMsCisgICAgICAgICAgICAgICAgLy8gc2VlIGlmIGl0cyBpbml0aWFsIHBvcnRpb24gaXMgYWxzbyBhIGNvbXBvc2l0aW9uLiAgSWYgc28sIHRoYXQgbGV0cworICAgICAgICAgICAgICAgIC8vIHVzIGJ1aWxkIHVwIHRoaXMgY29tcG9zZWQgY2hhcmFjdGVyIGl0ZXJhdGl2ZWx5LgorICAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IGRlY29tcC5sZW5ndGgoKS0xOyBpID4gMTsgLS1pKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBwYXJ0aWFsID0gZGVjb21wLnN1YnN0cmluZygwLGkpOworICAgICAgICAgICAgICAgICAgICBjaGFyIHBhcnRpYWxNYXAgPSBwZXJtdXRlZENvbXBvc2l0aW9ucy5nZXQocGFydGlhbCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChwYXJ0aWFsTWFwICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlY29tcCA9IHBhcnRpYWxNYXAgKyBkZWNvbXAuc3Vic3RyaW5nKGkpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZGVjb21wLmxlbmd0aCgpIDw9IDIpIHsKKyAgICAgICAgICAgICAgICBiaW5hcnlDb21wb3NpdGlvbnMucHV0KGRlY29tcCwgY2gpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgIC8vIFRoZSBjb21wb3NpdGlvbiB0YWtlcyBtb3JlIHRoYW4gdHdvIGNoYXJhY3RlcnMsIGFuZCB0aGVyZSdzCisgICAgICAgICAgICAgICAgLy8gbm8gd2F5IHRvIGJ1aWxkIGl0IHVwIGZyb20gc21hbGxlciBvbmVzLgorICAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgaWYgKGRlY29tcC5lcXVhbHModWluZm8uZml4Q2Fub25pY2FsKGRlY29tcCkpKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGRlY29tcCBpcyBpbiBjYW5vbmljYWwgb3JkZXIsIHdlJ3JlIGluIHRyb3VibGUsCisgICAgICAgICAgICAgICAgICAgIC8vIHNpbmNlIHRoYXQgbWVhbnMgdGhlcmUncyBubyB3YXkgdG8gZ2VuZXJhdGUgdGhpcyBjb21wb3NlZAorICAgICAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXIgZnJvbSBpdHMgY2Fub25pY2FsbHkgZGVjb21wb3NlZCBlcXVpdmFsZW50LgorICAgICAgICAgICAgICAgICAgICBlcnIoIk5vIHBhaXJ3aXNlIGNvbXBvc2Ugb2YgIiArIFV0aWxpdHkuaGV4KGRlY29tcCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgPiAiICsgVXRpbGl0eS5oZXgoY2gpICsgIiAiICsgdWluZm8uZ2V0TmFtZShjaCx0cnVlKSApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGRlY29tcCBpcyAqbm90KiBpbiBjYW5vbmljYWwgb3JkZXIsIGl0J3Mgbm90IGFzCisgICAgICAgICAgICAgICAgICAgIC8vIGJhZCwgc2luY2UgY29tcG9zaXRpb24gd2lsbCBzdGlsbCB3b3JrIGFzIGxvbmcgYXMKKyAgICAgICAgICAgICAgICAgICAgd2FybigiTm8gcGFpcndpc2UgY29tcG9zZSBvZiBub24tY2Fub24gIiArIFV0aWxpdHkuaGV4KGRlY29tcCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgPiAiICsgVXRpbGl0eS5oZXgoY2gpICsgIiAiICsgdWluZm8uZ2V0TmFtZShjaCx0cnVlKSApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYmFzZXMuYWRkKGRlY29tcC5jaGFyQXQoMCkpOworCisgICAgICAgICAgICAvLyBhZGQgdG8gbGlzdCBvZiBhbGwgY29tYmluaW5nIGNoYXJhY3RlcnMgaW4gY29tcG9zaXRlcworICAgICAgICAgICAgZm9yIChpbnQgcSA9IDE7IHEgPCBkZWNvbXAubGVuZ3RoKCk7ICsrcSkgeworICAgICAgICAgICAgICAgIGNvbWJpbmluZy5hZGQoZGVjb21wLmNoYXJBdChxKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworCisgICAgICAgIC8vIEdlbmVyYXRlIHRoZSBwYWlyd2lzZSBleHBsb3Npb25zLCB3aGVyZSBhIGNvbXBvc2VkIGNoYXIgKyBjb21iaW5pbmcgY2hhcgorICAgICAgICAvLyB0cmFuc2Zvcm1zIGludG8gYSBkaWZmZXJlbnQgcGFpciBvZiBjaGFyYWN0ZXJzLCB1c3VhbGx5IGJlY2F1c2UgdGhlCisgICAgICAgIC8vIGNhbm9uaWNhbCBjb21iaW5pbmcgY2xhc3NlcyBhcmUgcmV2ZXJzZWQuCisKKyAgICAgICAgb3V0digiXG5HZW5lcmF0aW5nIGV4cGxvZGluZyBwYWlycy4uLi4iKTsKKworICAgICAgICBMaXN0IGJpbmFyeVZhbHVlcyA9IG5ldyBBcnJheUxpc3QoYmluYXJ5Q29tcG9zaXRpb25zLnZhbHVlcygpKTsKKyAgICAgICAgQ29sbGVjdGlvbnMuc29ydChiaW5hcnlWYWx1ZXMpOworCisgICAgICAgIGZvciAoY2hhciBhZGRPbiA9IDA7IGFkZE9uIDwgMHhGRkZGOyBhZGRPbisrKSB7CisgICAgICAgICAgICBpZiAoY29tYmluaW5nLmNvbnRhaW5zKGFkZE9uKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBsaXN0ID0gYmluYXJ5VmFsdWVzLml0ZXJhdG9yKCk7CisKKyAgICAgICAgICAgICAgICB3aGlsZSAobGlzdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgTXV0YWJsZUNoYXIgdW5pY2hhciA9IChNdXRhYmxlQ2hhcilsaXN0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGNoU3RyID0gU3RyaW5nLnZhbHVlT2YodW5pY2hhci52YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzb3VyY2UgPSBjaFN0ciArIGFkZE9uOworCisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBjb21wID0gYmluYXJ5Q29tcG9zaXRpb24oc291cmNlKTsKKworICAgICAgICAgICAgICAgICAgICBpZiAoY29tcC5sZW5ndGgoKSA9PSAxKSBjb250aW51ZTsgLy8gZG9uJ3QgY2FyZSBpZiBjb21iaW5lcworICAgICAgICAgICAgICAgICAgICBpZiAoY29tcC5jaGFyQXQoMCkgPT0gYWRkT24gfHwgY29tcC5jaGFyQXQoMSkgPT0gYWRkT24pIGNvbnRpbnVlOyAvLyByZWFycmFuZ2VzCisKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFzb3VyY2UuZXF1YWxzKGNvbXApKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZGVjb21wID0gZnVsbERlY29tcG9zaXRpb24oc291cmNlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlY29tcCA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgICAgICBwYWlyRXhwbG9zaW9ucy5wdXQoc291cmNlLGNvbXApOworICAgICAgICAgICAgICAgICAgICAgICAgYmFzZXMuYWRkKHVuaWNoYXIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgYnVpbGREZWNvbXBEYXRhKCk7CisgICAgICAgIGJ1aWxkQ29tcG9zZURhdGEoKTsKKyAgICAgICAgb3V0digiU3VjY2VzcyEiKTsKKworICAgICAgICBpZiAoZlByb21wdCkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcbkhpdCBhbnkga2V5IHRvIGNvbnRpbnVlLi4uIik7CisgICAgICAgICAgICBTeXN0ZW0uaW4ucmVhZCgpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBmdWxsRGVjb21wb3NpdGlvbihTdHJpbmcgcykgeworICAgICAgICByZXR1cm4gZnVsbERlY29tcG9zaXRpb24ocywgbmV3IFN0cmluZ0J1ZmZlcigpKS50b1N0cmluZygpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZnVsbERlY29tcG9zaXRpb24oY2hhciBjaCwgU3RyaW5nQnVmZmVyIG91dHB1dCkgeworICAgICAgICBTdHJpbmcgdmFsdWUgPSBkZWNvbXBzLmdldChjaCk7CisgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7CisgICAgICAgICAgICBidWJibGVBcHBlbmQob3V0cHV0LCBjaCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBidWJibGVBcHBlbmQob3V0cHV0LCB2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG91dHB1dDsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIGZ1bGxEZWNvbXBvc2l0aW9uKFN0cmluZyBzLCBTdHJpbmdCdWZmZXIgb3V0cHV0KSB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBmdWxsRGVjb21wb3NpdGlvbihzLmNoYXJBdChpKSxvdXRwdXQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBvdXRwdXQ7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBiaW5hcnlDb21wb3NpdGlvbihTdHJpbmcgc3IpIHsKKyAgICAgICAgLy8gc2V0IHVwIGRlY29tcG9zZWQgc3RyaW5nLCBpbml0IHZhcmlhYmxlcworICAgICAgICBTdHJpbmdCdWZmZXIgb3V0cHV0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBTdHJpbmdCdWZmZXIgZGVjb21wID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCisgICAgICAgIGlmIChzci5sZW5ndGgoKSA9PSAwKSByZXR1cm4gb3V0cHV0LnRvU3RyaW5nKCk7CisKKyAgICAgICAgLy8gRmlyc3QgZ2VuZXJhdGUgdGhlIGZ1bGwgZGVjb21wb3NpdGlvbiBvZiB0aGUgaW5wdXQgc3RyaW5nCisgICAgICAgIGZ1bGxEZWNvbXBvc2l0aW9uKHNyLCBkZWNvbXApOworICAgICAgICBpbnQgYmFzZVBvc2l0aW9uID0gMDsKKyAgICAgICAgY2hhciBiYXNlID0gZGVjb21wLmNoYXJBdCgwKTsKKyAgICAgICAgb3V0cHV0LmFwcGVuZChiYXNlKTsKKworICAgICAgICAvLyBoYW5kbGUgZGVnZW5lcmF0ZSBjYXNlLS1ubyBiYXNlIGNoYXJhY3RlciBhdCBzdGFydAorICAgICAgICBpZiAodWluZm8uZ2V0Q2Fub25pY2FsQ2xhc3MoYmFzZSkgIT0gMCkgeworICAgICAgICAgICAgLy8gbGF0ZXIKKyAgICAgICAgfQorCisgICAgICAgIC8vIGxvb3AgdGhyb3VnaCwgY29tcG9zaW5nIGl0ZW1zIHdpdGggYmFzZQorICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IGRlY29tcC5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGNoID0gZGVjb21wLmNoYXJBdChpKTsKKyAgICAgICAgICAgIHNob3J0IGNhbiA9IHVpbmZvLmdldENhbm9uaWNhbENsYXNzKGNoKTsKKworICAgICAgICAgICAgY2hhciB2YWx1ZSA9IGJpbmFyeUNvbXBvc2l0aW9ucy5nZXQoU3RyaW5nLnZhbHVlT2YoYmFzZSkgKyBjaCk7CisKKyAgICAgICAgICAgIGlmICh2YWx1ZSAhPSAwICYmIG5vT2JzdHJ1Y3Rpb25zKG91dHB1dCwgYmFzZVBvc2l0aW9uLCBjYW4pKSB7CisgICAgICAgICAgICAgICAgYmFzZSA9IHZhbHVlOworICAgICAgICAgICAgICAgIG91dHB1dC5zZXRDaGFyQXQoYmFzZVBvc2l0aW9uLCBiYXNlKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoY2FuID09IDApIHsKKyAgICAgICAgICAgICAgICBiYXNlUG9zaXRpb24gPSBvdXRwdXQubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgYmFzZSA9IGNoOworICAgICAgICAgICAgICAgIG91dHB1dC5hcHBlbmQoY2gpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBidWJibGVBcHBlbmQob3V0cHV0LCBjaCwgY2FuKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gb3V0cHV0LnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gbm9PYnN0cnVjdGlvbnMoU3RyaW5nQnVmZmVyIGJ1ZmZlciwgaW50IHBvcywgc2hvcnQgY2FuKSB7CisgICAgICAgIGZvciAoaW50IGogPSBidWZmZXIubGVuZ3RoKCktMTsgaiA+IHBvczsgLS1qKSB7CisgICAgICAgICAgICBpZiAoY2FuID09IHVpbmZvLmdldENhbm9uaWNhbENsYXNzKGJ1ZmZlci5jaGFyQXQoaikpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGJ1YmJsZUFwcGVuZChTdHJpbmdCdWZmZXIgYnVmZmVyLCBjaGFyIGNoLCBzaG9ydCBjYW4pIHsKKyAgICAgICAgZm9yIChpbnQgaiA9IGJ1ZmZlci5sZW5ndGgoKS0xOyBqID49IDA7IC0taikgeworICAgICAgICAgICAgaWYgKGNhbiA+PSB1aW5mby5nZXRDYW5vbmljYWxDbGFzcyhidWZmZXIuY2hhckF0KGopKSkgeworICAgICAgICAgICAgICAgIGJ1ZmZlci5pbnNlcnQoaiArIDEsIGNoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgYnVmZmVyLmluc2VydCgwLCBjaCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYnViYmxlQXBwZW5kKFN0cmluZ0J1ZmZlciBidWZmZXIsIGNoYXIgY2gpIHsKKyAgICAgICAgYnViYmxlQXBwZW5kKGJ1ZmZlciwgY2gsIHVpbmZvLmdldENhbm9uaWNhbENsYXNzKGNoKSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYnViYmxlQXBwZW5kKFN0cmluZ0J1ZmZlciBidWZmZXIsIFN0cmluZyBzKSB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBidWJibGVBcHBlbmQoYnVmZmVyLCBzLmNoYXJBdChpKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBTdHJpbmcgZ2V0RGVjb21wb3NpdGlvbihjaGFyIGNoKSB7CisgICAgICAgIHJldHVybiBkZWNvbXBzLmdldChjaCk7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBHZW5lcmF0ZSBhIE1hcCBvZiBhbGwgZGVjb21wb3NpdGlvbnMgaW4gVW5pY29kZS4gIFRoZSBrZXlzIGluCisgICAgICogdGhlIG1hcCBhcmUgTXV0YWJsZUNoYXIgb2JqZWN0cywgb25lIGZvciBlYWNoIGNoYXJhY3RlciB0aGF0CisgICAgICogaGFzIGEgZGVjb21wb3NpdGlvbi4gIFRoZSB2YWx1ZXMgYXJlIFN0cmluZyBvYmplY3RzIGNvbnRhaW5pbmcKKyAgICAgKiB0aGUgZnVsbCBkZWNvbXBvc2l0aW9uIGZvciB0aGUgY2hhcmFjdGVyLCBpbiBjYW5vbmljYWwgb3JkZXIuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGNyZWF0ZURlY29tcG9zaXRpb25zKCkKKyAgICB7CisgICAgICAgIG91dHYoIlxuR2VuZXJhdGluZyBGdWxsIGRlY29tcG9zaXRpb25zLi4uIik7CisgICAgICAgIFN0cmluZ0J1ZmZlciB0ZW1wID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCisgICAgICAgIHNob3J0IGNvbXBhdENvdW50PTAsIGNhbm9uQ291bnQ9MDsKKworICAgICAgICBmb3IgKGNoYXIgY2ggPSAwOyBjaCA8IDB4RkZGRjsgKytjaCkgeworICAgICAgICAgICAgaWYgKGNoID49ICdcdTRFMDAnICYmIGNoIDw9ICdcdUQ3QTMnKSBjb250aW51ZTsgLy8gc2tpcCBpZGVvcworCisgICAgICAgICAgICBzaG9ydCBjYXRlZ29yeSA9IHVpbmZvLmdldENhdGVnb3J5KGNoKTsKKworICAgICAgICAgICAgaWYgKGNhdGVnb3J5ID09IHVpbmZvLlVOQVNTSUdORUQpIGNvbnRpbnVlOyAvL3NraXAgcmVzZXJ2ZWQKKyAgICAgICAgICAgIGlmIChjYXRlZ29yeSA9PSB1aW5mby5DT05UUk9MKSBjb250aW51ZTsKKyAgICAgICAgICAgIGlmIChjYXRlZ29yeSA9PSB1aW5mby5GT1JNQVQpIGNvbnRpbnVlOworICAgICAgICAgICAgaWYgKGNhdGVnb3J5ID09IHVpbmZvLlBSSVZBVEVfVVNFKSBjb250aW51ZTsKKyAgICAgICAgICAgIGlmIChjYXRlZ29yeSA9PSB1aW5mby5TVVJST0dBVEUpIGNvbnRpbnVlOworCisgICAgICAgICAgICBib29sZWFuIGNhbm9uID0gdWluZm8uaGFzQ2Fub25pY2FsRGVjb21wb3NpdGlvbihjaCk7CisgICAgICAgICAgICBib29sZWFuIGNvbXBhdCA9IHVpbmZvLmhhc0NvbXBhdGliaWxpdHlEZWNvbXBvc2l0aW9uKGNoKTsKKworICAgICAgICAgICAgaWYgKGNhbm9uKSBjYW5vbkNvdW50Kys7CisgICAgICAgICAgICBpZiAoY29tcGF0KSBjb21wYXRDb3VudCsrOworCisgICAgICAgICAgICBpZiAoY2Fub24gfHwgY29tcGF0KSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGRlY29tcCA9IHVpbmZvLmdldEZ1bGxEZWNvbXBvc2l0aW9uKGNoLCBjYW5vbik7CisgICAgICAgICAgICAgICAgdGVtcC5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgdGVtcC5hcHBlbmQoZGVjb21wKTsKKyAgICAgICAgICAgICAgICB1aW5mby5maXhDYW5vbmljYWwodGVtcCk7IC8vIHB1dCBpbnRvIGNhbm9uaWNhbCBvcmRlcgorCisgICAgICAgICAgICAgICAgZGVjb21wcy5wdXQoY2gsIHRlbXAudG9TdHJpbmcoKSApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTW9kaWZ5IGEgbGlzdCBpbiBwbGFjZSBieSBwcmVwZW5kaW5nIHRoZSBnaXZlbiBjaGFyYWN0ZXIgdG8gYWxsCisgICAgICogb2YgaXRzIGVsZW1lbnRzLCB3aGljaCBhcmUgYXNzdW1lZCB0byBiZSBzdHJpbmdzLgorICAgICAqLworICAgIHN0YXRpYyBMaXN0IGNvbmNhdChjaGFyIGNoLCBMaXN0IGEpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBhLnNldChpLCBjaCArIChTdHJpbmcpYS5nZXQoaSkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBhOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIGxpc3Qgb2YgU3RyaW5ncyBmb3IgYWxsIHBvc3NpYmxlIHBlcm11dGF0aW9ucyBvZiB0aGUKKyAgICAgKiBjaGFyYWN0ZXJzIGluIHRoZSBpbnB1dCBzdHJpbmcuCisgICAgICovCisgICAgc3RhdGljIExpc3QganVtYmxlIChTdHJpbmcgc291cmNlKQorICAgIHsKKyAgICAgICAgQXJyYXlMaXN0IHJlc3VsdCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgaWYgKHNvdXJjZS5sZW5ndGgoKSA9PSAxKSB7CisgICAgICAgICAgICByZXN1bHQuYWRkKHNvdXJjZSk7CisgICAgICAgIH0gZWxzZSBmb3IgKGludCBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICByZXN1bHQuYWRkQWxsKCBjb25jYXQoIHNvdXJjZS5jaGFyQXQoaSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGp1bWJsZShzb3VyY2Uuc3Vic3RyaW5nKDAsaSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgc291cmNlLnN1YnN0cmluZyhpKzEsc291cmNlLmxlbmd0aCgpKSkpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBpbnQgU1RSX0lOREVYX1NISUZUID0gMjsKKyAgICBzdGF0aWMgZmluYWwgaW50IFNUUl9MRU5HVEhfTUFTSyA9IDB4MDAwMzsKKworICAgIHN0YXRpYyBmaW5hbCBpbnQgREVDT01QX1JFQ1VSU0UgPSAweDAwMDA4MDAwOworICAgIHN0YXRpYyBmaW5hbCBpbnQgREVDT01QX01BU0sgID0gMHgwMDAwN0ZGRjsKKworICAgIC8qKgorICAgICAqIEdlbmVyYXRlIGEgbmV3ICJEZWNvbXBEYXRhLmphdmEiIHRoYXQgY29udGFpbnMgdGhlIENvbXBhY3RBcnJheSBkZWZpbml0aW9ucworICAgICAqIHVzZWQgaW4gdGhlIHtAbGluayBOb3JtYWxpemVyLkRFQ09NUE9TRX0gb3BlcmF0aW9uLgorICAgICAqLworICAgIHZvaWQgYnVpbGREZWNvbXBEYXRhKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKworICAgICAgICBvdXR2KCJcbkdlbmVyYXRpbmcgRGVjb21wRGF0YS5qYXZhLi4uLiIpOworICAgICAgICAvLworICAgICAgICAvLyBGb3IgZWFjaCBVbmljb2RlIGNoYXJhY3RlciB0aGF0IGhhcyBhIGRlY29tcG9zaXRpb24sIHdlIHB1dCBpdHMKKyAgICAgICAgLy8gZnVsbHktZGVjb21wb3NlZCBmb3JtIGF0IHRoZSBlbmQgb2YgdGhlICJjb250ZW50cyIgc3RyaW5nLCBmb2xsb3dlZAorICAgICAgICAvLyBieSBhIG51bGwsIGFuZCB3ZSBwdXQgaXRzIGluZGV4IGluICJjb250ZW50cyIgaW50byB0aGUgQ29tcGFjdEFycmF5LgorICAgICAgICAvLyBJZiBpdCBkb2VzIG5vdCBoYXZlIGEgZGVjb21wb3NpdGlvbiwgd2Ugc3RvcmUgYSBib2d1cyBpbmRleC4KKyAgICAgICAgLy8KKyAgICAgICAgLy8gV2UgZG8gdGhpcyBmaXJzdCBmb3IgYWxsIG9mIHRoZSBjb21wYXRpYmlsaXR5IGRlY29tcG9zaXRpb25zLCBzYXZlCisgICAgICAgIC8vIHRoZSBpbmRleCBpbiBNQVhfQ09NUEFULCBhbmQgdGhlbiBkbyBpdCBhZ2FpbiBmb3IgdGhlIGNhbm9uaWNhbAorICAgICAgICAvLyBkZWNvbXBvc2l0aW9ucy4gIFdoZW4gdGhlIGFycmF5IGlzIHVzZWQgbGF0ZXIsIGFueSBjaGFyYWN0ZXIgd2hvc2UKKyAgICAgICAgLy8gZGVjb21wIGhhcyBhbiBpbmRleCBncmVhdGVyIHRoYW4gTUFYX0NPTVBBVCBpcyBhIGNhbm9uaWNhbCBkZWNvbXAuCisgICAgICAgIC8vCisgICAgICAgIGludCBjYW5vbkluZGV4ID0gMDsKKyAgICAgICAgaW50IGNvbXBhdEluZGV4ID0gMDsKKworICAgICAgICAvLyBNYXAgZnJvbSBVbmljb2RlIGNoYXJhY3RlciB0byByZXBsYWNlbWVudCBzdHJpbmcgaW5kZXgKKyAgICAgICAgQ29tcGFjdENoYXJBcnJheSBvZmZzZXRzID0gbmV3IENvbXBhY3RDaGFyQXJyYXkoKGNoYXIpMCk7CisKKyAgICAgICAgLy8gV2UgYWxzbyBuZWVkIGEgcGxhY2UgdG8gc3RvcmUgdGhlIHJlcGxhY2VtZW50IHN0cmluZ3MuICBBZGQgYSBjaGFyIGF0CisgICAgICAgIC8vIHRoZSBmcm9udCBzbyB0aGF0ICIwIiB3b24ndCBiZSB0aGUgaW5kZXggb2YgYW55IG9mIHRoZSByZXBsYWNlbWVudCBzdHJpbmdzLgorICAgICAgICBTdHJpbmdCdWZmZXIgcmVwbGFjZSA9IG5ldyBTdHJpbmdCdWZmZXIoKS5hcHBlbmQoIlx1ZmZmZiIpOworCisgICAgICAgIGZvciAoY2hhciBjaCA9IDA7IGNoIDwgMHhGRkZGOyBjaCsrKSB7CisgICAgICAgICAgICBpZiAodWluZm8uaGFzQ29tcGF0aWJpbGl0eURlY29tcG9zaXRpb24oY2gpKSB7CisgICAgICAgICAgICAgICAgY29tcGF0SW5kZXggPSBwdXRMZW5ndGgocmVwbGFjZSwgZGVjb21wcy5nZXQoY2gpLCAwKTsKKyAgICAgICAgICAgICAgICBvZmZzZXRzLnNldEVsZW1lbnRBdChjaCwgKGNoYXIpY29tcGF0SW5kZXgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gQWRkIHRoZSBjYW5vbmljYWwgZGVjb21wcy4gIFRoZWlyIGluZGljZXMgbXVzdCBiZSA+IGNvbXBhdEluZGV4LgorICAgICAgICBmb3IgKGNoYXIgY2ggPSAwOyBjaCA8IDB4RkZGRjsgY2grKykgeworICAgICAgICAgICAgaWYgKHVpbmZvLmhhc0Nhbm9uaWNhbERlY29tcG9zaXRpb24oY2gpKSB7CisKKyAgICAgICAgICAgICAgICBpZiAoY2ggPT0gMHgwZjc3KSB7CisgICAgICAgICAgICAgICAgICAgIG91dHYoIjBGNzc6IGRlY29tcHMuZ2V0KCkgPSAiICsgVXRpbGl0eS5oZXgoZGVjb21wcy5nZXQoY2gpKSk7CisgICAgICAgICAgICAgICAgICAgIG91dHYoIjBGNzc6IGZ1bGxEZWNvbXAgPSAiICsgVXRpbGl0eS5oZXgodWluZm8uZ2V0RnVsbERlY29tcG9zaXRpb24oY2gsZmFsc2UpKSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgY2Fub25JbmRleCA9IHB1dExlbmd0aChyZXBsYWNlLCBkZWNvbXBzLmdldChjaCksIGNvbXBhdEluZGV4KTsKKworICAgICAgICAgICAgICAgIC8vIElmIHRoaXMgY2hhcmFjdGVyJ3MgZnVsbCBjb21wYXRpYmlsaXR5IGRlY29tcG9zaXRpb24gaXMgZGlmZmVyZW50IGZyb20KKyAgICAgICAgICAgICAgICAvLyBpdHMgY2Fub25pY2FsIGRlY29tcCwgdGhhdCBtZWFucyBvbmUgb2YgdGhlIGNoYXJhY3RlcnMgaW4gaXRzCisgICAgICAgICAgICAgICAgLy8gY2Fub25pY2FsIGRlY29tcCBpdHNlbGYgaGFzIGEgY29tcGF0aWJpbGl0eSBkZWNvbXAuICBUbyBkZWFsIHdpdGggdGhpcywKKyAgICAgICAgICAgICAgICAvLyB3ZSBzZXQgYSBiaXQgZmxhZyB0ZWxsaW5nIHRoZSBkZWNvbXBvc2VyIHRvIHJlY3Vyc2Ugb24gdGhpcyBjaGFyYWN0ZXIuCisKKyAgICAgICAgICAgICAgICBpZiAoIXVpbmZvLmdldEZ1bGxEZWNvbXBvc2l0aW9uKGNoLHRydWUpLmVxdWFscyh1aW5mby5nZXRGdWxsRGVjb21wb3NpdGlvbihjaCxmYWxzZSkpKSB7CisgICAgICAgICAgICAgICAgICAgIG9mZnNldHMuc2V0RWxlbWVudEF0KGNoLCAoY2hhcikoY2Fub25JbmRleCB8IERFQ09NUF9SRUNVUlNFKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5zZXRFbGVtZW50QXQoY2gsIChjaGFyKWNhbm9uSW5kZXgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vCisgICAgICAgIC8vIE5vdyBnZW5lcmF0ZSBhbm90aGVyIENvbXBhY3RBcnJheSBjb250YWluaW5nIHRoZSBjb21iaW5pbmcgY2xhc3Mgb2YgZXZlcnkKKyAgICAgICAgLy8gY2hhcmFjdGVyIGluIFVuaWNvZGUKKyAgICAgICAgLy8KKyAgICAgICAgZmluYWwgYnl0ZSBCQVNFID0gMDsKKyAgICAgICAgQ29tcGFjdEJ5dGVBcnJheSBjYW5vbkNsYXNzZXMgPSBuZXcgQ29tcGFjdEJ5dGVBcnJheShCQVNFKTsKKworICAgICAgICBmb3IgKGNoYXIgY2ggPSAwOyBjaCA8IDB4RkZGRjsgY2grKykgeworICAgICAgICAgICAgc2hvcnQgY2Fub25DbGFzcyA9IHVpbmZvLmdldENhbm9uaWNhbENsYXNzKGNoKTsKKyAgICAgICAgICAgIGlmIChjYW5vbkNsYXNzICE9IDApIHsKKyAgICAgICAgICAgICAgICBjYW5vbkNsYXNzZXMuc2V0RWxlbWVudEF0KGNoLCAoYnl0ZSljYW5vbkNsYXNzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIEZpbmFsbHksIHdyaXRlIHRoZSBkYXRhIG91dCB0byBhIGNvbXBpbGFibGUgSmF2YSBzb3VyY2UgZmlsZQorCisgICAgICAgIGlmIChmSmF2YSkgeworICAgICAgICAgICAgU3RyaW5nIGYgPSBmT3V0RGlyICsgIkRlY29tcERhdGEiOworICAgICAgICAgICAgb3V0KCJXcml0aW5nICIgKyBmKTsKKyAgICAgICAgICAgIHdyaXRlRGVjb21wRGF0YShuZXcgSmF2YVdyaXRlcihmKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhbm9uSW5kZXgsIGNvbXBhdEluZGV4LCBCQVNFLCBvZmZzZXRzLCByZXBsYWNlLCBjYW5vbkNsYXNzZXMpOworICAgICAgICAgICAgCisgICAgICAgIH0KKworICAgICAgICBpZiAoZkNQUCkgeworICAgICAgICAgICAgU3RyaW5nIGYgPSBmT3V0RGlyICsgImRjbXBkYXRhIjsKKyAgICAgICAgICAgIG91dCgiV3JpdGluZyAiICsgZiArICIuKGNwcHxoKSIpOworICAgICAgICAgICAgd3JpdGVEZWNvbXBEYXRhKG5ldyBDUFBXcml0ZXIoZiwgIkRlY29tcERhdGEiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhbm9uSW5kZXgsIGNvbXBhdEluZGV4LCBCQVNFLCBvZmZzZXRzLCByZXBsYWNlLCBjYW5vbkNsYXNzZXMpOworICAgICAgICB9CisKKyAgICAgICAgb3V0digiRGVjb21wIGRhdGE6IE1BWF9DQU5PTklDQUwgPSAiICsgY2Fub25JbmRleCArICIsIE1BWF9ERUNPTVAgPSAiICsgY29tcGF0SW5kZXgpOworCisgICAgICAgIGlmIChmU2hvd1NpemVzKSB7CisgICAgICAgICAgICBpbnQgb2Zmc2V0U2l6ZSA9IG9mZnNldHMuZ2V0SW5kZXhBcnJheSgpLmxlbmd0aCAqIDIgKyBvZmZzZXRzLmdldFZhbHVlQXJyYXkoKS5sZW5ndGggKiAyOworICAgICAgICAgICAgaW50IGNhbm9uU2l6ZSA9IGNhbm9uQ2xhc3Nlcy5nZXRJbmRleEFycmF5KCkubGVuZ3RoICogMiArIGNhbm9uQ2xhc3Nlcy5nZXRWYWx1ZUFycmF5KCkubGVuZ3RoOworICAgICAgICAgICAgaW50IHJlcGxhY2VMZW5ndGggPSByZXBsYWNlLmxlbmd0aCgpOworCisgICAgICAgICAgICBvdXR2KCJUb3RhbCBydW50aW1lIHNpemUgb2YgZGVjb21wIGRhdGEgaXMgIgorICAgICAgICAgICAgICAgICsgKG9mZnNldFNpemUgKyBjYW5vblNpemUgKyByZXBsYWNlTGVuZ3RoKSk7CisKKyAgICAgICAgICAgIG91dHYoIiAgb2Zmc2V0czogICAgICAiICsgb2Zmc2V0U2l6ZSk7CisgICAgICAgICAgICBvdXR2KCIgIGNhbm9uQ2xhc3NlczogIiArIGNhbm9uU2l6ZSk7CisgICAgICAgICAgICBvdXR2KCIgIHJlcGxhY2U6ICAgICAgIiArIHJlcGxhY2VMZW5ndGgpOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCB3cml0ZURlY29tcERhdGEoU291cmNlV3JpdGVyIG91dCwgaW50IG1heENhbm9uLCBpbnQgbWF4Q29tcGF0LCBzaG9ydCBCQVNFLAorICAgICAgICAgICAgICAgICAgICAgICAgQ29tcGFjdENoYXJBcnJheSBvZmZzZXRzLCBTdHJpbmdCdWZmZXIgY29udGVudHMsCisgICAgICAgICAgICAgICAgICAgICAgICBDb21wYWN0Qnl0ZUFycmF5IGNhbm9uQ2xhc3NlcykKKyAgICB7CisgICAgICAgIG91dC53cml0ZSgiTUFYX0NBTk9OSUNBTCIsICBtYXhDYW5vbiAgICAgICAgKTsKKyAgICAgICAgb3V0LndyaXRlKCJNQVhfQ09NUEFUIiwgICAgIG1heENvbXBhdCAgICAgICApOworICAgICAgICBvdXQud3JpdGUoIkRFQ09NUF9NQVNLIiwgICAgREVDT01QX01BU0sgICAgICk7CisgICAgICAgIG91dC53cml0ZSgiREVDT01QX1JFQ1VSU0UiLCBERUNPTVBfUkVDVVJTRSAgKTsKKyAgICAgICAgb3V0LndyaXRlKCJCQVNFIiwgICAgICAgICAgIEJBU0UgICAgICAgICAgICApOworICAgICAgICBvdXQud3JpdGUoIm9mZnNldHMiLCAgICAgICAgb2Zmc2V0cyAgICAgICAgICk7CisgICAgICAgIG91dC53cml0ZSgiY29udGVudHMiLCAgICAgICBjb250ZW50cyAgICAgICAgKTsKKyAgICAgICAgb3V0LndyaXRlKCJjYW5vbkNsYXNzIiwgICAgIGNhbm9uQ2xhc3NlcyAgICApOworICAgICAgICBvdXQuY2xvc2UoKTsKKyAgICB9CisKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gTWV0aG9kcyBmb3IgZ2VuZXJhdGluZyBhbmQgd3JpdGluZyB0aGUgY29tcG9zaXRpb24gZGF0YQorICAgIC8vCisgICAgZmluYWwgaW50IFRZUEVfTUFTSyAgID0gMHgwMDA3OworICAgIGZpbmFsIGludCBJTkRFWF9NQVNLICA9IDB4RkZGODsKKyAgICBmaW5hbCBpbnQgSU5ERVhfU0hJRlQgPSAzOworCisgICAgLy8gTUFYX0JBU0VTIGlzIHVzZWQgdG8gbWFwIGEgMi1kaW1pbnNpb25hbCAoYmFzZSxjb21iaW5pbmcpIGluZGV4IHBhaXIgb250byBhCisgICAgLy8gb25lLWRpbWVuc2lvbmFsIENvbXBhY3RBcnJheS4gIFdlIGNvdWxkIGp1c3QgdXNlIGJhc2VDb3VudCwgYnV0IG1ha2luZyBpdCBhIHBvd2VyCisgICAgLy8gb2YgdHdvIGFsbG93cyBzbGlnaHRseSBiZXR0ZXIgY29tcGFjdGlvbi4KKworICAgIGZpbmFsIGludCBNQVhfQkFTRVMgICA9IDEwMjQ7ICAgLy8gUHJvZHVjdCBtdXN0IGJlIDw9IDY0SworICAgIGZpbmFsIGludCBNQVhfQ09NQklORSA9IDY1NTM2L01BWF9CQVNFUzsKKworICAgIGZpbmFsIGNoYXIgICAgICAgICAgICAgICAgLy8gZm9yIGNoYXJhY3RlciB0eXBlcworICAgICAgICBJR05PUkUgPSAwLAorICAgICAgICBCQVNFID0gMSwKKyAgICAgICAgRVhQTE9ESU5HX0JBU0UgPSAyLAorICAgICAgICBDT01CSU5JTkcgPSAzLAorICAgICAgICBJTklUSUFMX0pBTU8gPSA0LAorICAgICAgICBNRURJQUxfSkFNTyA9IDUsCisgICAgICAgIEZJTkFMX0pBTU8gPSA2LAorICAgICAgICBIQU5HVUwgPSA3OworCisgICAgLy8gVGhlc2UgdmFyaWFibGVzIGFjdHVhbGx5IGhvbGQgdGhlIGNvbXBvc2l0aW9uIGRhdGEuCisgICAgc2hvcnQgYmFzZUNvdW50ID0gMTsgICAgICAgIC8vIExlYXZlIDAgYXMgYW4gaW52YWxpZCBpbmRleAorICAgIHNob3J0IGNvbWJpbmVDb3VudCA9IDE7ICAgICAvLyBMZWF2ZSAwIGFzIGFuIGludmFsaWQgaW5kZXgKKyAgICBzaG9ydCBuY2NDb3VudCA9IDA7CisgICAgaW50ICAgbWF4Q29tcGF0ID0gMDsKKyAgICBpbnQgICBtYXhDYW5vbiA9IDA7CisKKyAgICAvLyBUaGlzIGFycmF5IGNvbnRhaW5zIHR5cGVzIChmcm9tIHRoZSBzZXQgYWJvdmUpIGFuZCBpbmRpY2VzIGludG8gdGhlICJyZXBsYWNlIgorICAgIC8vIGFuZCAiYWN0aW9ucyIgYXJyYXlzCisgICAgQ29tcGFjdENoYXJBcnJheSBsb29rdXAgPSBuZXcgQ29tcGFjdENoYXJBcnJheShJR05PUkUpOworCisgICAgLy8gV2UgYWxzbyBuZWVkIGEgcGxhY2UgdG8gc3RvcmUgdGhlIHN0cmluZ3MgdGhhdCByZXN1bHQgZnJvbSByZXBsYWNlbWVudHMsCisgICAgLy8gZXhwbG9zaW9ucywgYW5kIGNvbWJpbmF0aW9ucy4gIEFkZCBhIGNoYXIgYXQgdGhlIGZyb250IHNvIHRoYXQgIjAiIHdvbid0CisgICAgLy8gYmUgdGhlIGluZGV4IG9mIGFueSBvZiB0aGUgcmVwbGFjZW1lbnQgc3RyaW5ncy4KKyAgICBTdHJpbmdCdWZmZXIgcmVwbGFjZSA9IG5ldyBTdHJpbmdCdWZmZXIoKS5hcHBlbmQoIiAiKTsKKworICAgIC8vIFdlIG5lZWQgdG8gcmVwcmVzZW50IGVhY2ggY2Fub25pY2FsIGNoYXJhY3RlciBjbGFzcyBhcyBhIHNpbmdsZSBiaXQKKyAgICAvLyBzbyB0aGF0IHdlIGNhbiBPUiB0b2dldGhlciBhIG1hc2sgb2YgYWxsIGNvbWJpbmluZyBjaGFyIGNsYXNzZXMgc2VlbgorICAgIC8vIEJ1aWxkIGFuIGFycmF5IHRoYXQgbWFwcyBmcm9tIGNvbWJpbmluZyBjbGFzcyB0byBhIGNvbXBhY3RlZCBpbnRlZ2VyCisgICAgLy8gZnJvbSAwLi5uLTEsIHdoZXJlIG4gaXMgdGhlIG51bWJlciBvZiBkaXN0aW5jdCBjb21iaW5pbmcgY2xhc3Nlcy4KKyAgICAvLyBFLmcuLCBpbiAzLjAsIHRoZXJlIGFyZSA1MyBkaXN0aW5jdCBjb21iaW5pbmcgY2xhc3Nlcy4KKyAgICBpbnRbXSBjbGFzc01hcCA9IG5ldyBpbnRbMjU2XTsKKyAgICBpbnRbXSB0eXBlQml0OworCisgICAgLy8gQnVpbGQgYSB0d28tZGltZW5zaW9uYWwgYXJyYXkgb2YgdGhlIGFjdGlvbiB0byB0YWtlIGZvciBlYWNoIGJhc2UvY29tYmluaW5nIHBhaXIKKyAgICBDb21wYWN0Q2hhckFycmF5IGFjdGlvbnMgPSBuZXcgQ29tcGFjdENoYXJBcnJheSgoY2hhcikwKTsKKworICAgIGNoYXJbXSBhY3Rpb25JbmRleDsKKworICAgIC8qKgorICAgICAqIEdlbmVyYXRlIGEgbmV3ICJDb21wb3NlRGF0YS5qYXZhIiB0aGF0IGNvbnRhaW5zIHRoZSBDb21wYWN0QXJyYXkgZGVmaW5pdGlvbnMKKyAgICAgKiB1c2VkIGluIHRoZSB7QGxpbmsgTm9ybWFsaXplci5DT01QT1NFfSBvcGVyYXRpb24uCisgICAgICovCisgICAgdm9pZCBidWlsZENvbXBvc2VEYXRhKCkgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgIG91dHYoIlxuR2VuZXJhdGluZyBDb21wb3NlRGF0YS5qYXZhLi4uLiIpOworCisgICAgICAgIEJpdFNldCB1c2VkSW5kaWNlcyA9IG5ldyBCaXRTZXQoKTsKKyAgICAgICAgQ2hhclNldCBleHBsb2RpbmdCYXNlcyA9IG5ldyBDaGFyU2V0KCk7CisgICAgICAgIE5vbkNvbXBvc2luZ0NvbWJpbmluZ01hcCBuY2NNYXAgPSBuZXcgTm9uQ29tcG9zaW5nQ29tYmluaW5nTWFwKCk7CisKKyAgICAgICAgLy8gRmluZCBhbGwgY2hhcmFjdGVycyB0aGF0IGFyZSBib3RoIGJhc2VzICphbmQqIGhhdmUgY29tcGF0aWJpbGl0eQorICAgICAgICAvLyBkZWNvbXBvc2l0aW9ucy4gIFRoZXNlIGFyZSB3ZWlyZAorICAgICAgICBmb3IgKGNoYXIgY2ggPSAwOyBjaCA8IDB4RkZGRjsgY2grKykgeworICAgICAgICAgICAgaWYgKGJhc2VzLmNvbnRhaW5zKGNoKSAmJiB1aW5mby5oYXNDb21wYXRpYmlsaXR5RGVjb21wb3NpdGlvbihjaCkpIHsKKyAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgIC8vIEFkZCB0aGlzIGNoYXJhY3RlcidzIGV4cGxvc2lvbiB0byB0aGUgcmVwbGFjZW1lbnQgc3RyaW5nIGxpc3QuCisgICAgICAgICAgICAgICAgLy8gV2UncmUgZ29pbmcgdG8gbWFrZSBzdXJlIHRoYXQgaXRzICJiYXNlIGluZGV4IiwgaS5lLiB0aGUKKyAgICAgICAgICAgICAgICAvLyBpbmRleCBmb3IgaXQgaW4gdGhlIGFjdGlvbnMgYXJyYXksIGlzIHRoZSBzYW1lIGFzIHRoZQorICAgICAgICAgICAgICAgIC8vIGV4cGxvc2lvbidzIGluZGV4IGluIHRoZSByZXBsYWNlIHN0cmluZy4gIFRoaXMgbGV0cworICAgICAgICAgICAgICAgIC8vIHVzIHVzZSB0aGUgc2FtZSBpbmRleCBmb3IgdGhlIGNoYXJhY3RlcidzIHR3byBiZWhhdmlvcnMKKyAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgIGludCBpbmRleCA9IHB1dChyZXBsYWNlLCBleHBsb2RlQ29tcGF0LmdldChjaCksIDApOworCisgICAgICAgICAgICAgICAgb3V0dihVdGlsaXR5LmhleChjaCkgKyAiIGlzIGJhc2UgYW5kIGhhcyBjb21wYXQgZXhwbG9zaW9uICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuaGV4KGV4cGxvZGVDb21wYXQuZ2V0KGNoKSkgKTsKKworICAgICAgICAgICAgICAgIGFkZENoYXIobG9va3VwLCBjaCwgRVhQTE9ESU5HX0JBU0UsIGluZGV4KTsKKyAgICAgICAgICAgICAgICB1c2VkSW5kaWNlcy5zZXQoaW5kZXgpOworICAgICAgICAgICAgICAgIGV4cGxvZGluZ0Jhc2VzLmFkZChjaCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBGaXJzdCBhZGQgdGhlIGJhc2UgY2hhcmFjdGVycyB0byB0aGUgYXJyYXkuCisgICAgICAgIC8vIEF0IHRoZSBzYW1lIHRpbWUsIGNvbXB1dGUgdGhlaXIgaW5kaWNlcy4KKyAgICAgICAgLy8gTGVhdmUgYW4gZW1wdHkgYmFzZSBpbmRleCBvZiAwIGFzIGEgcGxhY2Vob2xkZXIgZm9yIG51bGwgb3BlcmF0aW9ucy4KKyAgICAgICAgLy8KKworICAgICAgICBmb3IgKGNoYXIgY2ggPSAwOyBjaCA8IDB4RkZGRjsgY2grKykKKyAgICAgICAgeworCisgICAgICAgICAgICBpZiAoZXhwbG9kaW5nQmFzZXMuY29udGFpbnMoY2gpKSB7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHNob3J0IGNjbGFzcyA9IHVpbmZvLmdldENhbm9uaWNhbENsYXNzKGNoKTsKKworICAgICAgICAgICAgaWYgKGJhc2VzLmNvbnRhaW5zKGNoKSkgeworICAgICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHdlIGRvbid0IHVzZSBhIGJhc2UgaW5kZXggdGhhdCB3YXMgYWxyZWFkeSB1c2VkCisgICAgICAgICAgICAgICAgLy8gZm9yIGFuIGV4cGxvZGluZyBiYXNlIGNoYXJhY3Rlci4KKyAgICAgICAgICAgICAgICB3aGlsZSAodXNlZEluZGljZXMuZ2V0KGJhc2VDb3VudCkpIHsKKyAgICAgICAgICAgICAgICAgICAgYmFzZUNvdW50Kys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIE5vdyBhZGQgdGhlIGNoYXJhY3RlciB0byBsb29rdXAgYXMgYSBiYXNlCisgICAgICAgICAgICAgICAgYWRkQ2hhcihsb29rdXAsIGNoLCBCQVNFLCBiYXNlQ291bnQrKyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY29tYmluaW5nLmNvbnRhaW5zKGNoKSkgeworICAgICAgICAgICAgICAgIGNsYXNzTWFwW2NjbGFzc10gPSAxOyAgICAgICAvLyBNYXJrIHRoaXMgY29tYmluaW5nIGNsYXNzIGFzIGJlaW5nIHVzZWQKKyAgICAgICAgICAgICAgICBhZGRDaGFyKGxvb2t1cCwgY2gsIENPTUJJTklORywgY29tYmluZUNvdW50KyspOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoY2ggPj0gJ1x1MTEwMCcgJiYgY2ggPCAnXHUxMTYwJykgeworICAgICAgICAgICAgICAgIGFkZENoYXIobG9va3VwLCBjaCwgSU5JVElBTF9KQU1PLCAwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjaCA+PSAnXHUxMTYxJyAmJiBjaCA8ICdcdTExYTYnKSB7CisgICAgICAgICAgICAgICAgYWRkQ2hhcihsb29rdXAsIGNoLCBNRURJQUxfSkFNTywgMCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY2ggPj0gJ1x1MTFhNycgJiYgY2ggPCAnXHUxMWZhJykgeworICAgICAgICAgICAgICAgIGFkZENoYXIobG9va3VwLCBjaCwgRklOQUxfSkFNTywgMCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY2ggPj0gMHhhYzAwICYmIGNoIDw9IDB4ZDdhNCkgeworICAgICAgICAgICAgICAgIGFkZENoYXIobG9va3VwLCBjaCwgSEFOR1VMLCAwKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gQWRkIGV4cGxvc2lvbnMgZm9yIGFsbCBjb21wYXRpYmlsaXR5IGRlY29tcG9zaXRpb25zLAorICAgICAgICAgICAgLy8gaW5jbHVkaW5nIHRoZSBKYW1vIC0tPiBDb25qb2luaW5nIEphbW8gZGVjb21wcy4KKyAgICAgICAgICAgIC8vIElmIHRoZSBjYW5vbmljYWwgZGVjb21wb3NpdGlvbiBpcyBleGFjdGx5IG9uZSBjaGFyYWN0ZXIKKyAgICAgICAgICAgIC8vIG9uZSAoNCBoZXggZGlnaXRzKSB0aGVuIHdlIGRlYWwgd2l0aCBpdCBzZXBhcmF0ZWx5IGJlbG93LgorICAgICAgICAgICAgaWYgKGV4cGxvZGVDb21wYXQuY29udGFpbnMoY2gpICYmCisgICAgICAgICAgICAgICAgdWluZm8uZ2V0RGVjb21wb3NpdGlvbihjaCkubGVuZ3RoKCkgIT0gNCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBtYXhDb21wYXQgPSBwdXQocmVwbGFjZSwgZXhwbG9kZUNvbXBhdC5nZXQoY2gpLCAwKTsKKyAgICAgICAgICAgICAgICBhZGRFeHBsb3Npb24obG9va3VwLCBjaCwgbWF4Q29tcGF0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIE5vdyBhZGQgdGhlIGV4cGxvc2lvbnMgcmVzdWx0aW5nIGZyb20gY2Fub25pY2FsIGRlY29tcG9zaXRpb25zCisgICAgICAgIC8vIFRoZXNlIHdpbGwgYWxsIGhhdmUgaW5kaWNlcyBncmVhdGVyIHRoYW4gIm1heENvbXBhdCIgc28gd2UgY2FuIGRpc3Rpbmd1aXNoIHRoZW0uCisgICAgICAgIC8vCisgICAgICAgIGZvciAoY2hhciBjaCA9IDA7IGNoIDwgMHhGRkZGOyBjaCsrKSB7CisgICAgICAgICAgICBzaG9ydCBjY2xhc3MgPSB1aW5mby5nZXRDYW5vbmljYWxDbGFzcyhjaCk7CisgICAgICAgICAgICAvLyBub3QgdXNlZCBTdHJpbmcgZXhwbG9zaW9uID0gbnVsbDsKKworICAgICAgICAgICAgaWYgKGV4cGxvZGVPbmx5LmNvbnRhaW5zKGNoKSAmJiB1aW5mby5oYXNDYW5vbmljYWxEZWNvbXBvc2l0aW9uKGNoKSkgeworICAgICAgICAgICAgICAgIG1heENhbm9uID0gcHV0KHJlcGxhY2UsIGV4cGxvZGVPbmx5LmdldChjaCksIG1heENvbXBhdCk7CisgICAgICAgICAgICAgICAgYWRkRXhwbG9zaW9uKGxvb2t1cCwgY2gsIG1heENhbm9uKTsKKyAgICAgICAgICAgIH0KKworLy8gICAgICAgICAgZWxzZSBpZiAoIWNvbWJpbmluZy5jb250YWlucyhjaCkgJiYgY2NsYXNzICE9IDAgJiYgY2xhc3NNYXBbY2NsYXNzXSAhPSAwKSB7CisvLyAgICAgICAgICAgICAgLy8KKy8vICAgICAgICAgICAgICAvLyBJZiBhIGNvbWJpbmluZyBjaGFyYWN0ZXIgZGlkbid0IGhhcHBlbiB0byBlbmQgdXAgaW4gb25lIG9mCisvLyAgICAgICAgICAgICAgLy8gdGhlIHBhaXJ3aXNlIGNvbWJpbmF0aW9ucyBvciBleHBsb3Npb25zIHdlIHVzZSBidXQgc3RpbGwgaGFzCisvLyAgICAgICAgICAgICAgLy8gYSBjb21iaW5pbmcgY2xhc3MgdGhhdCBpcyB0aGUgc2FtZSBhcyBhIGNoYXJhY3RlciB3ZSAqZG8qIHVzZSwKKy8vICAgICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIHNhdmUgaXRzIGNsYXNzIHNvIHRoYXQgd2UgZG9uJ3QgY29tYmluZSB0aGluZ3MgInBhc3QiIGl0LgorLy8gICAgICAgICAgICAgIC8vCisvLyAgICAgICAgICAgICAgLy8gSG93ZXZlciwgaWYgdGhlIGNoYXJhY3RlciBoYXMgYW4gZXhwbG9zaW9uIHdlICpkb24ndCogbmVlZCBpdCwgYmVjYXVzZQorLy8gICAgICAgICAgICAgIC8vIHdlJ2xsIG5ldmVyIHNlZSBpdCwgb25seSB0aGUgcmVzdWx0cyBvZiBpdHMgZXhwbG9zaW9uLgorLy8gICAgICAgICAgICAgIC8vCisvLyAgICAgICAgICAgICAgYWRkQ2hhcihsb29rdXAsIGNoLCBDT01CSU5JTkcsIDApOworLy8gICAgICAgICAgICAgIG5jY0NvdW50Kys7CisvLyAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIEknbSByZXdyaXRpbmcgdGhpcyBsb2dpYy4gIEhhdmluZyBhbiBpbmRleCBvZiB6ZXJvIG1lYW5zIHRoYXQKKyAgICAgICAgICAgIC8vIHRoZSB0eXBlQml0W2luZGV4XSBnZXRzIG92ZXJ3cml0dGVuIHdpdGggbXVsdGlwbGUgZGlmZmVyZW50CisgICAgICAgICAgICAvLyB2YWx1ZXMuICBTbyB3ZSBtdXN0IHVzZSByZWFsIGluZGV4IHZhbHVlcyB0aGF0IGFyZSB1bmlxdWUKKyAgICAgICAgICAgIC8vIHBlciBjb21iaW5pbmcgY2xhc3MuICBBbHNvLCBpdCBkb2Vzbid0IG1hdHRlciBpZiB0aGUgY2xhc3MKKyAgICAgICAgICAgIC8vIGhhcyBiZWVuIHNlZW4gb3Igbm90OyB3ZSBzdGlsbCBuZWVkIHRvIHJlY29yZCB0aGUgY2hhcmFjdGVyCisgICAgICAgICAgICAvLyBpbiBvcmRlciB0byBoYXZlIGl0cyB0eXBlIGFuZCBjbGFzcyBkdXJpbmcgY29tcG9zaXRpb24uCisgICAgICAgICAgICBlbHNlIGlmICghY29tYmluaW5nLmNvbnRhaW5zKGNoKSAmJiBjY2xhc3MgIT0gMCkgeworICAgICAgICAgICAgICAgIC8vIElmIGEgY29tYmluaW5nIGNoYXJhY3RlciBkaWRuJ3QgaGFwcGVuIHRvIGVuZCB1cCBpbiBvbmUgb2YKKyAgICAgICAgICAgICAgICAvLyB0aGUgcGFpcndpc2UgY29tYmluYXRpb25zIG9yIGV4cGxvc2lvbnMgd2UgdXNlIGJ1dCBzdGlsbCBoYXMKKyAgICAgICAgICAgICAgICAvLyBhIGNvbWJpbmluZyBjbGFzcyB0aGF0IGlzIHRoZSBzYW1lIGFzIGEgY2hhcmFjdGVyIHdlICpkbyogdXNlLAorICAgICAgICAgICAgICAgIC8vIHdlIG5lZWQgdG8gc2F2ZSBpdHMgY2xhc3MuCisKKyAgICAgICAgICAgICAgICAvLyBBcyBvdXIgaW5kZXgsIHVzZSBjb21iaW5lQ291bnQgYW5kIHVwLiAgUmV1c2UgdmFsdWVzIGJ5CisgICAgICAgICAgICAgICAgLy8gbWFwcGluZyB0aGVtIHRocm91Z2ggbmNjTWFwLCB3aGljaCBrZWVwcyB0cmFjayBvZiBwcmV2aW91c2x5CisgICAgICAgICAgICAgICAgLy8gdXNlZCB2YWx1ZXMgYW5kIGFsbG9jYXRlcyBuZXcgb25lcyBvbmx5IGFzIG5lZWRlZCwgc3RhcnRpbmcKKyAgICAgICAgICAgICAgICAvLyB3aXRoIHplcm8uIC0gTGl1CisgICAgICAgICAgICAgICAgY2xhc3NNYXBbY2NsYXNzXSA9IDE7ICAgICAgIC8vIE1hcmsgdGhpcyBjb21iaW5pbmcgY2xhc3MgYXMgYmVpbmcgdXNlZAorICAgICAgICAgICAgICAgIGFkZENoYXIobG9va3VwLCBjaCwgQ09NQklOSU5HLCBjb21iaW5lQ291bnQgKyBuY2NNYXAuZ2V0SW5kZXhGb3IoY2NsYXNzKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBuY2NDb3VudCA9IChzaG9ydCkgbmNjTWFwLmdldEluZGV4Q291bnQoKTsgLy8gTGl1CisKKyAgICAgICAgLy8gUmVtYXAgY2hhcmFjdGVycyB0aGF0IGhhdmUgYSBjYW5vbmljYWwgZGVjb21wb3NpdGlvbiB0byBhIHNpbmdsZXRvbiwKKyAgICAgICAgLy8gYW5kIGFsc28gZGlmZmVyZW50IGNvbXBhdGliaWxpdHkgYW5kIGNhbm9uaWNhbCBmdWxsIGRlY29tcG9zaXRpb25zCisgICAgICAgIC8vICh0aGF0IGlzLCBhbHNvIGFyZSBtZW1iZXJzIG9mIGV4cGxvZGVDb21wYXQpLiAgVGhlc2UgY2hhcmFjdGVycyBjYW4ndAorICAgICAgICAvLyBiZSBleHBsb2RlZCB0byB0aGVpciBmdWxsIGRlY29tcG9zaXRpb24gc2luY2UgdGhhdCBicmVha3MgY2Fub25pY2FsCisgICAgICAgIC8vIGNvbXBvc2l0aW9uIChub3JtYWxpemF0aW9uIGZvcm0gQykuICBJbnN0ZWFkLCB3ZSBwbGFjZSB0aGVpcgorICAgICAgICAvLyBzaW5nbGV0b24gZGVjb21wb3NpdGlvbiBpbiB0aGUgdGFibGUsIGF0IHRoZSBlbmQuICBUaGlzIHdvcmtzIGJlY2F1c2UKKyAgICAgICAgLy8gdGhlIHNpbmdsZXRvbiB3aWxsIGdldCByZWN1cnNpdmVseSBleHBsb2RlZCBieSBOb3JtYWxpemVyLiAgQXMgb2YKKyAgICAgICAgLy8gVW5pY29kZSAzLjAsIHRoaXMgZml4IGFwcGxpZXMgdG8gVSsxRkZFLCAxRkZELCAyMDAwLCBhbmQgMjAwMS4gLSBMaXUKKyAgICAgICAgaW50IHNpbmdsZXRvbiA9IHJlcGxhY2UubGVuZ3RoKCk7CisgICAgICAgIGZvciAoY2hhciBjaCA9IDA7IGNoIDwgMHhGRkZGOyBjaCsrKSB7CisgICAgICAgICAgICBpZiAoIWV4cGxvZGluZ0Jhc2VzLmNvbnRhaW5zKGNoKSAmJgorICAgICAgICAgICAgICAgIGV4cGxvZGVDb21wYXQuY29udGFpbnMoY2gpICYmCisgICAgICAgICAgICAgICAgdWluZm8uZ2V0RGVjb21wb3NpdGlvbihjaCkubGVuZ3RoKCkgPT0gNCkgeworICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBUaGVyZSBtaWdodCBiZSBhIGNsZWFuZXIgd2F5IHRvIGRvIHRoaXMsIHBlcmhhcHMgYnkgZm9sZGluZworICAgICAgICAgICAgICAgIC8vIHRoaXMgbG9naWMgaW50byB0aGUgY29kZSBhYm92ZSAocGVyaGFwcyBjYWxsaW5nCisgICAgICAgICAgICAgICAgLy8gYWRkRXhwbG9zaW9uKCkgaW5zdGVhZCBvZiBhZGRDaGFyKCkpLCBidXQgSSBjb3VsZG4ndCBmaW5kIGl0LgorICAgICAgICAgICAgICAgIGNoYXIgcmVtYXAgPSAoY2hhcikKKyAgICAgICAgICAgICAgICAgICAgSW50ZWdlci5wYXJzZUludCh1aW5mby5nZXREZWNvbXBvc2l0aW9uKGNoKSwgMTYpOworCisgICAgICAgICAgICAgICAgaW50IGluZGV4ID0gcHV0KHJlcGxhY2UsIFN0cmluZy52YWx1ZU9mKHJlbWFwKSwgc2luZ2xldG9uKTsKKyAgICAgICAgICAgICAgICBhZGRDaGFyKGxvb2t1cCwgY2gsIEVYUExPRElOR19CQVNFLCBpbmRleCk7CisKKyAgICAgICAgICAgICAgICBvdXR2KCJDYW5vbmljYWwgc2luZ2xldG9uICIgKyBVdGlsaXR5LmhleChjaCkgKworICAgICAgICAgICAgICAgICAgICAgIiByZW1hcHMgdG8gIiArIFV0aWxpdHkuaGV4KHJlbWFwKSArICIgaW5kZXg9IiArIGluZGV4KTsgCisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBOb3cgcnVuIHRocm91Z2ggdGhlIGNvbWJpbmluZyBjbGFzc2VzIGFnYWluIGFuZCBhc3NpZ24gYml0IG51bWJlcnMKKyAgICAgICAgLy8gaW4gdGhlIHNhbWUgYXNjZW5kaW5nIG9yZGVyIGFzIHRoZSBjYW5vbmljYWwgY2xhc3NlcworICAgICAgICAvLyBub3QgdXNlZCBpbnQgbWFza1NoaWZ0ID0gMDsKKyAgICAgICAgaW50IGJpdCA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMjU2OyBpKyspIHsKKyAgICAgICAgICAgIGlmIChjbGFzc01hcFtpXSAhPSAwKSB7CisgICAgICAgICAgICAgICAgY2xhc3NNYXBbaV0gPSArK2JpdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoYml0ID49IDY0KSB7CisgICAgICAgICAgICBlcnIoU3RyaW5nLnZhbHVlT2YoYml0KzEpICsgIiBjb21iaW5pbmcgY2xhc3NlczsgbWF4IGlzIDY0Iik7CisgICAgICAgIH0KKyAgICAgICAgb3V0digiIyBvZiBjb21iaW5pbmcgY2xhc3NlcyBpcyAiICsgKGJpdCsxKSk7CisKKyAgICAgICAgb3V0digiYmFzZUNvdW50PSIgKyBiYXNlQ291bnQgKyAiLCBjb21iaW5lQ291bnQ9IiArIGNvbWJpbmVDb3VudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiwgbmNjQ291bnQ9IiArIG5jY0NvdW50KTsKKworICAgICAgICBpZiAoYmFzZUNvdW50ID4gTUFYX0JBU0VTKSB7CisgICAgICAgICAgICBlcnIoSW50ZWdlci50b1N0cmluZyhiYXNlQ291bnQpICsgIiBiYXNlcywgbGltaXQgaXMgIiArIE1BWF9CQVNFUyk7CisgICAgICAgICAgICBlcnIoSW50ZWdlci50b1N0cmluZyhjb21iaW5lQ291bnQpICsgIiBjb21iaW5pbmcgY2hhcnMsIGxpbWl0IGlzICIgKyBNQVhfQ09NQklORSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBOb3cgYnVpbGQgdGhlICJhY3Rpb25zIiBhcnJheSB0aGF0IHRlbGxzIHdoYXQgdG8gZG8gd2hlbiBlYWNoIGJhc2UgLworICAgICAgICAvLyBjb21iaW5pbmcgcGFpciBpcyBzZWVuLgorICAgICAgICAvLworICAgICAgICAvLyBGaXJzdCBkbyBjaGFyYWN0ZXIgcGFpcnMgdGhhdCBjb21iaW5lIGludG8gYSBzaW5nbGUgY2hhcmFjdGVyLi4uCisgICAgICAgIC8vCisgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSBiaW5hcnlDb21wb3NpdGlvbnMua2V5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBTdHJpbmcgc291cmNlID0gKFN0cmluZylpdGVyLm5leHQoKTsKKyAgICAgICAgICAgIGNoYXIgY2ggPSBiaW5hcnlDb21wb3NpdGlvbnMuZ2V0KHNvdXJjZSk7CisKKyAgICAgICAgICAgIGludCBiYXNlSW5kZXggPSBsb29rdXAuZWxlbWVudEF0KHNvdXJjZS5jaGFyQXQoMCkpID4+PiBJTkRFWF9TSElGVDsKKyAgICAgICAgICAgIGludCBjb21iaW5pbmdJbmRleCA9IGxvb2t1cC5lbGVtZW50QXQoc291cmNlLmNoYXJBdCgxKSkgPj4+IElOREVYX1NISUZUOworCisgICAgICAgICAgICBhY3Rpb25zLnNldEVsZW1lbnRBdCgoY2hhcikoYmFzZUluZGV4ICsgTUFYX0JBU0VTKmNvbWJpbmluZ0luZGV4KSwgY2gpOworICAgICAgICB9CisKKworICAgICAgICAvLworICAgICAgICAvLyBQYWlyIGV4cGxvc2lvbnM6IGJhc2UvY29tYmluaW5nIHBhaXJzIHRoYXQgZXhwbG9kZSBpbnRvIHNvbWV0aGluZyBlbHNlCisgICAgICAgIC8vIFdlJ3JlIHNxdWVlemluZyB0aGUgaW5kaWNlcyBmb3IgdGhlc2UgaW4gYmV0d2VlbiBNQVhfQ09NUE9TRUQgYW5kIDB4RkZGRiwKKyAgICAgICAgLy8gd2hpY2ggbWVhbnMgdGhleSBjYW4ndCBiZSBpbmRleGVzIGludG8gdGhlICJyZXBsYWNlIiBzdHJpbmc7IHRob3NlIGFyZSB0b28gYmlnLgorICAgICAgICAvLyBJbnN0ZWFkIHRoZXkncmUgaW5kZXhlcyBpbnRvIHRoZSAiYWN0aW9uSW5kZXgiIGFycmF5LCB3aGljaCBpbiB0dXJuIGNvbnRhaW5zCisgICAgICAgIC8vIGluZGljZXMgaW4gInJlcGxhY2UiCisgICAgICAgIC8vCisgICAgICAgIGFjdGlvbkluZGV4ID0gbmV3IGNoYXJbIHBhaXJFeHBsb3Npb25zLnNpemUoKSBdOworICAgICAgICBzaG9ydCBpbmRleCA9IDA7CisKKyAgICAgICAgaXRlciA9IHBhaXJFeHBsb3Npb25zLmtleVNldCgpLml0ZXJhdG9yKCk7CisgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgU3RyaW5nIHNvdXJjZSA9IChTdHJpbmcpaXRlci5uZXh0KCk7CisgICAgICAgICAgICBjaGFyIGJhc2UgPSBzb3VyY2UuY2hhckF0KDApOworICAgICAgICAgICAgY2hhciBjb21iaW5pbmcgPSBzb3VyY2UuY2hhckF0KDEpOworCisgICAgICAgICAgICBpbnQgc3RySW5kZXggPSBwdXQocmVwbGFjZSwgKFN0cmluZylwYWlyRXhwbG9zaW9ucy5nZXQoc291cmNlKSwgMCk7CisgICAgICAgICAgICBhY3Rpb25JbmRleFtpbmRleF0gPSAoY2hhcilzdHJJbmRleDsKKworICAgICAgICAgICAgaW50IGJhc2VJbmRleCA9IGxvb2t1cC5lbGVtZW50QXQoYmFzZSkgPj4+IElOREVYX1NISUZUOworICAgICAgICAgICAgaW50IGNvbWJpbmluZ0luZGV4ID0gbG9va3VwLmVsZW1lbnRBdChjb21iaW5pbmcpID4+PiBJTkRFWF9TSElGVDsKKworICAgICAgICAgICAgYWN0aW9ucy5zZXRFbGVtZW50QXQoKGNoYXIpKGJhc2VJbmRleCArIE1BWF9CQVNFUypjb21iaW5pbmdJbmRleCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcikoaW5kZXggKyBsYXJnZXN0Q2hhcikpOworICAgICAgICAgICAgaW5kZXgrKzsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEZpbGwgaW4gdGhlIGFycmF5IHRoYXQgbWFwcyBmcm9tIGNvbWJpbmluZyBjbGFzcyB2YWx1ZQorICAgICAgICAvLyB0byBhIGJpdCBudW1iZSByZXByZXNlbnRpbmcgdGhlIGNhbm9uaWNhbCBjb21iaW5pbmcgY2xhc3MuCisgICAgICAgIC8vIFRoYXQgaXMsIG1hcCBmcm9tIDAuLjI0MCAoaW4gMy4wKSB0byAwLi41Mi4KKyAgICAgICAgdHlwZUJpdCA9IG5ldyBpbnRbY29tYmluZUNvdW50ICsgbmNjQ291bnRdOworCisgICAgICAgIGZvciAoY2hhciBjaCA9IDA7IGNoIDwgMHhGRkZGOyBjaCsrKSB7CisgICAgICAgICAgICBpbnQgdmFsdWUgPSBsb29rdXAuZWxlbWVudEF0KGNoKTsKKyAgICAgICAgICAgIGludCB0eXBlID0gdmFsdWUgJiBUWVBFX01BU0s7CisKKyAgICAgICAgICAgIGlmICh0eXBlID09IENPTUJJTklORykgeworICAgICAgICAgICAgICAgIGludCBpbmQgPSB2YWx1ZSA+Pj4gSU5ERVhfU0hJRlQ7CisgICAgICAgICAgICAgICAgaW50IGNjbGFzcyA9IHVpbmZvLmdldENhbm9uaWNhbENsYXNzKGNoKTsKKyAgICAgICAgICAgICAgICBpZiAodHlwZUJpdFtpbmRdICE9IDAgJiYgdHlwZUJpdFtpbmRdICE9IGNsYXNzTWFwW2NjbGFzc10pIHsKKyAgICAgICAgICAgICAgICAgICAgZXJyKCJPdmVyd3JpdGluZyB0eXBlQml0WyIgKyBpbmQgKyAiXSwgd2FzICIgKworICAgICAgICAgICAgICAgICAgICAgICAgdHlwZUJpdFtpbmRdICsgIiwgY2hhbmdpbmcgdG8gIiArIGNsYXNzTWFwW2NjbGFzc10gKyAiIGZvciBjbGFzcyAiICsgY2NsYXNzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdHlwZUJpdFtpbmRdID0gY2xhc3NNYXBbY2NsYXNzXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChmSmF2YSkgeworICAgICAgICAgICAgU3RyaW5nIGYgPSBmT3V0RGlyICsgIkNvbXBvc2VEYXRhIjsKKyAgICAgICAgICAgIG91dCgiV3JpdGluZyAiICsgZik7CisgICAgICAgICAgICB3cml0ZUNvbXBvc2VEYXRhKG5ldyBKYXZhV3JpdGVyKGYpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZkNQUCkgeworICAgICAgICAgICAgU3RyaW5nIGYgPSBmT3V0RGlyICsgImNvbXBkYXRhIjsKKyAgICAgICAgICAgIG91dCgiV3JpdGluZyAiICsgZiArICIuKGNwcHxoKSIpOworICAgICAgICAgICAgd3JpdGVDb21wb3NlRGF0YShuZXcgQ1BQV3JpdGVyKGYsICJDb21wb3NlRGF0YSIpKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmU2hvd1NpemVzKSB7CisgICAgICAgICAgICBpbnQgbG9va3VwU2l6ZSA9IGxvb2t1cC5nZXRJbmRleEFycmF5KCkubGVuZ3RoICogMiArIGxvb2t1cC5nZXRWYWx1ZUFycmF5KCkubGVuZ3RoICogMjsKKyAgICAgICAgICAgIGludCBhY3Rpb25TaXplID0gYWN0aW9ucy5nZXRJbmRleEFycmF5KCkubGVuZ3RoICogMiArIGFjdGlvbnMuZ2V0VmFsdWVBcnJheSgpLmxlbmd0aCAqIDI7CisgICAgICAgICAgICBpbnQgYWN0SW5kZXhTaXplID0gYWN0aW9uSW5kZXgubGVuZ3RoICogMjsKKyAgICAgICAgICAgIGludCByZXBsYWNlU2l6ZSA9IHJlcGxhY2UubGVuZ3RoKCk7CisgICAgICAgICAgICBpbnQgdHlwZUJpdFNpemUgPSB0eXBlQml0Lmxlbmd0aCAqIDI7CisKKyAgICAgICAgICAgIG91dHYoIlRvdGFsIHJ1bnRpbWUgc2l6ZSBvZiBjb21wb3NlIGRhdGEgaXMgIgorICAgICAgICAgICAgICAgICsgKGxvb2t1cFNpemUgKyBhY3Rpb25TaXplICsgYWN0SW5kZXhTaXplICsgcmVwbGFjZVNpemUgKyB0eXBlQml0U2l6ZSkpOworCisgICAgICAgICAgICBvdXR2KCIgIGxvb2t1cDogICAgICAgIiArIGxvb2t1cFNpemUpOworICAgICAgICAgICAgb3V0digiICBhY3Rpb25zOiAgICAgICIgKyBhY3Rpb25TaXplKTsKKyAgICAgICAgICAgIG91dHYoIiAgYWN0aW9uSW5kZXg6ICAiICsgYWN0SW5kZXhTaXplKTsKKyAgICAgICAgICAgIG91dHYoIiAgdHlwZUJpdDogICAgICAiICsgdHlwZUJpdFNpemUpOworICAgICAgICAgICAgb3V0digiICByZXBsYWNlOiAgICAgICIgKyByZXBsYWNlU2l6ZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIHdyaXRlQ29tcG9zZURhdGEoU291cmNlV3JpdGVyIG91dCkgeworICAgICAgICBvdXQud3JpdGUoIkJBU0VfQ09VTlQiLCAgICAgICAgIGJhc2VDb3VudCk7CisgICAgICAgIG91dC53cml0ZSgiQ09NQklOSU5HX0NPVU5UIiwgICAgY29tYmluZUNvdW50KTsKKyAgICAgICAgb3V0LndyaXRlKCJNQVhfQ09NUEFUIiwgICAgICAgICBtYXhDb21wYXQpOworICAgICAgICBvdXQud3JpdGUoIk1BWF9DQU5PTklDQUwiLCAgICAgIG1heENhbm9uKTsKKworICAgICAgICBvdXQud3JpdGVIZXgoIk1BWF9DT01QT1NFRCIsICAgIGxhcmdlc3RDaGFyKTsKKworICAgICAgICBpbnQgbWF4SW5kZXggPSByZXBsYWNlLmxlbmd0aCgpOworICAgICAgICBvdXQud3JpdGUoIk1BWF9JTkRFWCIsICAgICAgICAgIG1heEluZGV4ICAgICk7CisgICAgICAgIG91dC53cml0ZSgiSU5JVElBTF9KQU1PX0lOREVYIiwgbWF4SW5kZXggKyAxKTsKKyAgICAgICAgb3V0LndyaXRlKCJNRURJQUxfSkFNT19JTkRFWCIsICBtYXhJbmRleCArIDIpOworCisgICAgICAgIG91dC53cml0ZSgiTUFYX0JBU0VTIiwgICAgICAgICAgTUFYX0JBU0VTICApOworICAgICAgICBvdXQud3JpdGUoIk1BWF9DT01CSU5FIiwgICAgICAgIE1BWF9DT01CSU5FKTsKKworICAgICAgICBvdXQud3JpdGVIZXgoIlRZUEVfTUFTSyIsICAgICAgIFRZUEVfTUFTSyk7CisgICAgICAgIG91dC53cml0ZSgiSU5ERVhfU0hJRlQiLCAgICAgICAgSU5ERVhfU0hJRlQpOworCisgICAgICAgIC8vIFRoZSBjaGFyYWN0ZXIgdHlwZXMKKyAgICAgICAgb3V0LndyaXRlKCJJR05PUkUiLCAgICAgICAgICAgICAoaW50KUlHTk9SRSk7CisgICAgICAgIG91dC53cml0ZSgiQkFTRSIsICAgICAgICAgICAgICAgKGludClCQVNFKTsKKyAgICAgICAgb3V0LndyaXRlKCJOT05fQ09NUE9TSU5HX0NPTUJJTklORyIsIChpbnQpRVhQTE9ESU5HX0JBU0UpOworICAgICAgICBvdXQud3JpdGUoIkNPTUJJTklORyIsICAgICAgICAgIChpbnQpQ09NQklOSU5HKTsKKyAgICAgICAgb3V0LndyaXRlKCJJTklUSUFMX0pBTU8iLCAgICAgICAoaW50KUlOSVRJQUxfSkFNTyk7CisgICAgICAgIG91dC53cml0ZSgiTUVESUFMX0pBTU8iLCAgICAgICAgKGludClNRURJQUxfSkFNTyk7CisgICAgICAgIG91dC53cml0ZSgiRklOQUxfSkFNTyIsICAgICAgICAgKGludClGSU5BTF9KQU1PKTsKKyAgICAgICAgb3V0LndyaXRlKCJIQU5HVUwiLCAgICAgICAgICAgICAoaW50KUhBTkdVTCk7CisKKyAgICAgICAgb3V0LndyaXRlKCJsb29rdXAiLCAgICAgICAgIGxvb2t1cCAgICAgICAgKTsKKyAgICAgICAgb3V0LndyaXRlKCJhY3Rpb25zIiwgICAgICAgIGFjdGlvbnMgICAgICAgKTsKKyAgICAgICAgb3V0LndyaXRlKCJhY3Rpb25JbmRleCIsICAgIGFjdGlvbkluZGV4ICAgKTsKKyAgICAgICAgb3V0LndyaXRlKCJyZXBsYWNlIiwgICAgICAgIHJlcGxhY2UgICAgICAgKTsKKyAgICAgICAgb3V0LndyaXRlKCJ0eXBlQml0IiwgICAgICAgIHR5cGVCaXQpOworCisgICAgICAgIG91dC5jbG9zZSgpOworICAgIH0KKworICAgIHZvaWQgYWRkQ2hhcihDb21wYWN0Q2hhckFycmF5IGxvb2t1cCwgY2hhciBjaCwgaW50IHR5cGUsIGludCBpbmRleCkKKyAgICB7CisgICAgICAgIC8vIEZpcnN0IG1ha2Ugc3VyZSBpdCdzIG5vdCBhbHJlYWR5IHByZXNlbnQKKyAgICAgICAgaWYgKGxvb2t1cC5lbGVtZW50QXQoY2gpICE9IElHTk9SRSkKKyAgICAgICAgeworICAgICAgICAgICAgY2hhciBvbGRWYWx1ZSA9IGxvb2t1cC5lbGVtZW50QXQoY2gpOworICAgICAgICAgICAgZXJyKHR5cGVOYW1lKHR5cGUpICsgIiBjaGFyIGlzIGFsc28gIgorICAgICAgICAgICAgICAgICAgKyB0eXBlTmFtZShvbGRWYWx1ZSAmIFRZUEVfTUFTSykgKyAiOiAiCisgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuaGV4KGNoKSArICIgICIgKyB1aW5mby5nZXROYW1lKGNoLHRydWUpKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmICgoaW5kZXggPDwgSU5ERVhfU0hJRlQpID4gNjU1MzYpIHsKKyAgICAgICAgICAgIGVycigibm90IGVub3VnaCBiaXRzOiBpbmRleCAiICsgaW5kZXggKyAiIDw8IElOREVYX1NISUZUID0gIiArIChpbmRleCA8PCBJTkRFWF9TSElGVCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9va3VwLnNldEVsZW1lbnRBdChjaCwgKGNoYXIpKHR5cGUgfCAoaW5kZXggPDwgSU5ERVhfU0hJRlQpKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIGFkZEV4cGxvc2lvbihDb21wYWN0Q2hhckFycmF5IGxvb2t1cCwgY2hhciBjaCwgaW50IGluZGV4KQorICAgIHsKKyAgICAgICAgLy8gRmlyc3QgbWFrZSBzdXJlIGl0IGRvZXNuJ3QgYWxyZWFkeSBoYXZlIGFuIGluZGV4CisgICAgICAgIGNoYXIgb2xkVmFsdWUgPSBsb29rdXAuZWxlbWVudEF0KGNoKTsKKyAgICAgICAgaW50IG9sZEluZGV4ID0gb2xkVmFsdWUgPj4+IElOREVYX1NISUZUOworCisgICAgICAgIGlmIChvbGRWYWx1ZSAhPSBJR05PUkUpIHsKKyAgICAgICAgICAgIGVycigiRXhwbG9kaW5nIGNoYXIgaXMgYWxyZWFkeSAiICsgdHlwZU5hbWUob2xkVmFsdWUgJiBUWVBFX01BU0spCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiAoaW5kZXggIiArIG9sZEluZGV4ICsgIik6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmhleChjaCkgKyAiICAiICsgdWluZm8uZ2V0TmFtZShjaCx0cnVlKSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAob2xkSW5kZXggIT0gMCkgeworICAgICAgICAgICAgZXJyKCJFeHBsb2RpbmcgY2hhciBpcyBhbHJlYWR5ICIgKyB0eXBlTmFtZShvbGRWYWx1ZSAmIFRZUEVfTUFTSykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIChpbmRleCAiICsgb2xkSW5kZXggKyAiKTogIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuaGV4KGNoKSArICIgICIgKyB1aW5mby5nZXROYW1lKGNoLHRydWUpKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmICgoaW5kZXggPDwgSU5ERVhfU0hJRlQpID4gNjU1MzYpIHsKKyAgICAgICAgICAgIGVycigibm90IGVub3VnaCBiaXRzOiBpbmRleCAiICsgaW5kZXggKyAiIDw8IElOREVYX1NISUZUID0gIiArIChpbmRleCA8PCBJTkRFWF9TSElGVCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9va3VwLnNldEVsZW1lbnRBdChjaCwgKGNoYXIpKChvbGRWYWx1ZSAmIH5JTkRFWF9NQVNLKSB8IChpbmRleCA8PCBJTkRFWF9TSElGVCkpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIFN0cmluZyB0eXBlTmFtZShpbnQgdHlwZSkgeworICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgSUdOT1JFOiAgICAgICAgICAgIHJldHVybiAiSWdub3JlZCI7CisgICAgICAgICAgICBjYXNlIEJBU0U6ICAgICAgICAgICAgICByZXR1cm4gIkJhc2UiOworICAgICAgICAgICAgY2FzZSBFWFBMT0RJTkdfQkFTRTogICAgcmV0dXJuICJFeHBsb2RpbmcgQmFzZSI7CisgICAgICAgICAgICBjYXNlIENPTUJJTklORzogICAgICAgICByZXR1cm4gIkNvbWJpbmluZyI7CisgICAgICAgICAgICBjYXNlIElOSVRJQUxfSkFNTzogICAgICByZXR1cm4gIkluaXRpYWwgSmFtbyI7CisgICAgICAgICAgICBjYXNlIE1FRElBTF9KQU1POiAgICAgICByZXR1cm4gIk1lZGlhbCBKYW1vIjsKKyAgICAgICAgICAgIGNhc2UgRklOQUxfSkFNTzogICAgICAgIHJldHVybiAiRmluYWwgSmFtbyI7CisgICAgICAgICAgICBjYXNlIEhBTkdVTDogICAgICAgICAgICByZXR1cm4gIkhhbmd1bCI7CisgICAgICAgICAgICBkZWZhdWx0OiAgICAgICAgICAgICAgICByZXR1cm4gIlVua25vd24iOworICAgICAgICB9CisgICAgfQorCisKKyAgICBzdGF0aWMgZmluYWwgaW50IHB1dChTdHJpbmdCdWZmZXIgYnVmLCBTdHJpbmcgc3RyLCBpbnQgbWluSW5kZXgpCisgICAgeworICAgICAgICBzdHIgPSBzdHIgKyAnXHUwMDAwJzsgICAvLyBBZGQgdHJhaWxpbmcgbnVsbAorCisgICAgICAgIGludCBpbmRleCA9IGJ1Zi50b1N0cmluZygpLmluZGV4T2Yoc3RyKTsKKyAgICAgICAgaWYgKGluZGV4IDw9IG1pbkluZGV4KSB7CisgICAgICAgICAgICBpbmRleCA9IGJ1Zi5sZW5ndGgoKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoc3RyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaW5kZXg7CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIGludCBwdXRMZW5ndGgoU3RyaW5nQnVmZmVyIGJ1ZiwgU3RyaW5nIHN0ciwgaW50IG1pbkluZGV4KSB7CisgICAgICAgIGludCBsZW5ndGggPSBzdHIubGVuZ3RoKCk7CisKKyAgICAgICAgaWYgKGxlbmd0aCA+PSAoMSA8PCBTVFJfSU5ERVhfU0hJRlQpKSB7CisgICAgICAgICAgICAvLyBUaGVyZSdzIG5vIHJvb20gdG8gc3RvcmUgdGhlIGxlbmd0aCBpbiB0aGUgaW5kZXgsIHNvCisgICAgICAgICAgICAvLyBhZGQgYSBudWxsIHRlcm1pbmF0b3IgYW5kIHVzZSBhIDAgbGVuZ3RoIHRvIGZsYWcgdGhpcworICAgICAgICAgICAgc3RyID0gc3RyICsgJ1x1MDAwMCc7CisgICAgICAgICAgICBsZW5ndGggPSAwOworICAgICAgICB9CisKKyAgICAgICAgaW50IGluZGV4ID0gYnVmLnRvU3RyaW5nKCkuaW5kZXhPZihzdHIpOworICAgICAgICBpZiAoaW5kZXggPD0gbWluSW5kZXgpIHsKKyAgICAgICAgICAgIGluZGV4ID0gYnVmLmxlbmd0aCgpOworICAgICAgICAgICAgYnVmLmFwcGVuZChzdHIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAoaW5kZXggPDwgU1RSX0lOREVYX1NISUZUKSB8IGxlbmd0aDsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gT3V0cHV0ICYgZm9ybWF0dGluZworCisgICAgdm9pZCBvdXQoU3RyaW5nIHN0cikgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oc3RyKTsKKyAgICB9CisgICAgdm9pZCBvdXR2KFN0cmluZyBzdHIpIHsKKyAgICAgICAgaWYgKGZWZXJib3NlKSBTeXN0ZW0ub3V0LnByaW50bG4oc3RyKTsKKyAgICB9CisgICAgdm9pZCB3YXJuKFN0cmluZyBzdHIpIHsKKyAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJXYXJuaW5nOiAiICsgc3RyKTsKKyAgICB9CisgICAgdm9pZCBlcnIoU3RyaW5nIHN0cikgeworICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkVSUk9SOiAgICIgKyBzdHIpOworICAgIH0KK30KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gVXRpbGl0eSBjbGFzc2VzCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2NsYXNzIERlY29tcE1hcCBleHRlbmRzIEhhc2hNYXAgeworICAgIHB1YmxpYyBEZWNvbXBNYXAoKSB7CisgICAgfQorCisgICAgdm9pZCBwdXQoY2hhciBjaCwgU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHB1dChuZXcgTXV0YWJsZUNoYXIoY2gpLCB2YWx1ZSk7CisgICAgfQorCisgICAgU3RyaW5nIGdldChjaGFyIGNoKSB7CisgICAgICAgIE9iamVjdCBvYmogPSBnZXQocHJvYmUuc2V0KGNoKSk7CisgICAgICAgIHJldHVybiAob2JqICE9IG51bGwpID8gKFN0cmluZylvYmogOiBudWxsOworICAgIH0KKworICAgIGJvb2xlYW4gY29udGFpbnMoY2hhciBjaCkgeworICAgICAgICByZXR1cm4gY29udGFpbnNLZXkocHJvYmUuc2V0KGNoKSk7CisgICAgfQorCisgICAgTXV0YWJsZUNoYXIgcHJvYmUgPSBuZXcgTXV0YWJsZUNoYXIoJyAnKTsKK30KKworY2xhc3MgQ29tcE1hcCBleHRlbmRzIEhhc2hNYXAgeworICAgIHB1YmxpYyBDb21wTWFwKCkgeworICAgIH0KKworICAgIHZvaWQgcHV0KFN0cmluZyBrZXksIGNoYXIgdmFsdWUpIHsKKyAgICAgICAgcHV0KGtleSwgbmV3IE11dGFibGVDaGFyKHZhbHVlKSk7CisgICAgfQorCisgICAgY2hhciBnZXQoU3RyaW5nIGtleSkgeworICAgICAgICBPYmplY3Qgb2JqID0gZ2V0KChPYmplY3Qpa2V5KTsKKyAgICAgICAgcmV0dXJuIChvYmogIT0gbnVsbCkgPyAoKE11dGFibGVDaGFyKW9iaikudmFsdWUgOiAwOworICAgIH0KK30KKworY2xhc3MgQ2hhclNldCBleHRlbmRzIEhhc2hTZXQgeworICAgIHB1YmxpYyBDaGFyU2V0KCkgeworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFkZChjaGFyIGNoKSB7CisgICAgICAgIGFkZChuZXcgTXV0YWJsZUNoYXIoY2gpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBjb250YWlucyhjaGFyIGNoKSB7CisgICAgICAgIHJldHVybiBjb250YWlucyhwcm9iZS5zZXQoY2gpKTsKKyAgICB9CisgICAgTXV0YWJsZUNoYXIgcHJvYmUgPSBuZXcgTXV0YWJsZUNoYXIoJyAnKTsKK30KKworLyoqCisgKiBBbiBpbnQtPmludCBtYXAuICBFYWNoIHRpbWUgYSBub24tZXhpc3RlbnQga2V5IGlzIGxvb2tlZCB1cCwKKyAqIGNyZWF0ZSBhIG5ldyBtYXBwaW5nIHRvIHRoZSBuZXh0IGF2YWlsYWJsZSBpbnRlZ2VyIHZhbHVlLgorICovCitjbGFzcyBOb25Db21wb3NpbmdDb21iaW5pbmdNYXAgeworICAgIGludCBpbmRleDsKKyAgICBIYXNodGFibGUgaGFzaDsKKworICAgIHB1YmxpYyBOb25Db21wb3NpbmdDb21iaW5pbmdNYXAoKSB7CisgICAgICAgIGluZGV4ID0gMDsKKyAgICAgICAgaGFzaCA9IG5ldyBIYXNodGFibGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGV4aXN0aW5nIG1hcHBpbmcgb2YgY2xhc3MuICBJZiBubyBzdWNoIG1hcHBpbmcKKyAgICAgKiBleGlzdHMsIGNyZWF0ZSBvbmUgYW5kIHJldHVybiBpdC4gIE5ldyBtYXBwaW5ncyBtYXAgdG8KKyAgICAgKiB6ZXJvLCB0aGVuIG9uZSwgZXRjLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0SW5kZXhGb3IoaW50IGNjbGFzcykgeworICAgICAgICBJbnRlZ2VyIGNsID0gbmV3IEludGVnZXIoY2NsYXNzKTsKKyAgICAgICAgSW50ZWdlciBpbmQgPSAoSW50ZWdlcikgaGFzaC5nZXQoY2wpOworICAgICAgICBpZiAoaW5kICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBpbmQuaW50VmFsdWUoKTsKKyAgICAgICAgfQorICAgICAgICBoYXNoLnB1dChjbCwgbmV3IEludGVnZXIoaW5kZXgpKTsKKyAgICAgICAgcmV0dXJuIGluZGV4Kys7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBudW1iZXIgb2YgbWFwcGluZ3MgbWFkZSBzbyBmYXIuICBUaGF0IGlzLCBnZXRJbmRleEZvcigpCisgICAgICogaGFzIHJldHVybmVkIGludGVnZXJzIDAuLmdldEluZGV4Q291bnQoKS0xLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0SW5kZXhDb3VudCgpIHsKKyAgICAgICAgcmV0dXJuIGluZGV4OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9ub3JtYWxpemVyL1F1aWNrQ2hlY2tCdWlsZGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbm9ybWFsaXplci9RdWlja0NoZWNrQnVpbGRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE2MTliNzkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbm9ybWFsaXplci9RdWlja0NoZWNrQnVpbGRlci5qYXZhCkBAIC0wLDAgKzEsNDg5IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9ub3JtYWxpemVyL0F0dGljL1F1aWNrQ2hlY2tCdWlsZGVyLmphdmEsdiAkIAorKiAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNTozNCAkIAorKiAkUmV2aXNpb246IDEuNyAkCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubm9ybWFsaXplcjsKKworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRXcml0ZXI7CitpbXBvcnQgamF2YS5pby5GaWxlV3JpdGVyOworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRSZWFkZXI7CitpbXBvcnQgamF2YS5pby5GaWxlUmVhZGVyOworaW1wb3J0IGphdmEuaW8uV3JpdGVyOworaW1wb3J0IGphdmEuaW8uUmVhZGVyOworaW1wb3J0IGphdmEuaW8uRU9GRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5TdHJpbmdUb2tlbml6ZXI7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkJ5dGVUcmllOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworCisvKioKKyogQ2xhc3MgdG8gZ2VuZXJhdGUgbW9kaWZpZWQgcXVpY2tjaGVjayBkYXRhIGZvciBjb2xsYXRpb24uCisqIERhdGEgZ2VuZXJhdGVkIGlzIGEgdHJpZSBvZiBub3JtYWxpemF0aW9uIGZvcm0gY29ycmVzcG9uZGluZyB0byB0aGUgaW5kZXggCisqIGNvZGUgcG9pbnQuCisqIEhlbmNlIGNvZGVwb2ludCAweEFCQ0Qgd2lsbCBoYXZlIG5vcm1hbGl6YXRpb24gZm9ybSAKKyogPGNvZGU+CisqICAgIHF1aWNrY2hlY2tbY29kZXBvaW50XSA9IAorKiAgICAgICAgICAgICAgU1RBR0VfM19bU1RBR0VfMl9bU1RBR0VfMV9bY29kZXBvaW50ID4+IFNUQUdFXzFfU0hJRlRfXSArIAorKiAgICAgICAgICAgICAgKChjb2RlcG9pbnQgPj4gU1RBR0VfMl9TSElGVF8pICYgU1RBR0VfMl9NQVNLX0FGVEVSX1NISUZUXyldICsKKyogICAgICAgICAgICAgIChjb2RlcG9pbnQgJiBTVEFHRV8zX01BU0tfKV07CisqIDwvY29kZT4KKyogdmFsdWUgaXMgYSBieXRlIGNvbnRhaW5pbmcgMiBzZXRzIG9mIDQgYml0cyBpbmZvcm1hdGlvbi48YnI+CisqIGJpdHMgMSAyIDMgNCAgICAgICAgICAgICAgICAgICAgICAgIDU2Nzg8YnI+CisqICAgICAgTkZLQyBORkMgTkZLRCBORkQgTUFZQkVTICAgICAgIE5GS0MgTkZDIE5GS0QgTkZEIFlFUzxicj4KKyogaWUgaWYgcXVpY2tbMHhBQkNEXSA9IDEwMDAwMDAxLCB0aGlzIG1lYW5zIHRoYXQgMHhBQkNEIGlzIGluIE5GRCBmb3JtIGFuZCAKKyogbWF5YmUgaW4gTkZLQyBmb3JtLgorKiBAZGVwcmVjYXRlZCBJQ1U0SiAyLjAsIHNpbmNlIElDVSBoYXMgd3JpdHRlbiBpdHMgb3duIHRvb2wuCisqLworcHVibGljIGNsYXNzIFF1aWNrQ2hlY2tCdWlsZGVyCit7CisgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgCisgIC8qKgorICAqIGNvbnN0cnVjdG9yIHdpdGggZGVmYXVsdCBpbnB1dCwgb3V0cHV0IGZpbGUgcGF0aAorICAqIEBkZXByZWNhdGVkIElDVTRKIDIuMCwgc2luY2UgSUNVIGhhcyB3cml0dGVuIGl0cyBvd24gdG9vbC4KKyAgKi8KKyAgcHVibGljIFF1aWNrQ2hlY2tCdWlsZGVyKCkKKyAgeworICB9CisgIAorICAvKioKKyAgKiBCdWlsZGluZyBtZXRob2QuCisgICogRWFjaCB1bmljb2RlIGNoYXJhY3RlciB3aWxsIGJlIHVzZWQgdG8gZ2VuZXJhdGUgZGF0YSwgb3V0cHV0IHRvIHRoZSBkZWZhdWx0CisgICogZmlsZSBwYXRoICAKKyAgKiBAZGVwcmVjYXRlZCBJQ1U0SiAyLjAsIHNpbmNlIElDVSBoYXMgd3JpdHRlbiBpdHMgb3duIHRvb2wuCisgICovCisgIHB1YmxpYyB2b2lkIGJ1aWxkKCkKKyAgeworICAgIGJ1aWxkKERFRkFVTFRfSU5QVVRfUEFUSF8sIERFRkFVTFRfT1VUUFVUX1BBVEhfKTsKKyAgfQorICAKKyAgLyoqCisgICogQnVpbGRpbmcgbWV0aG9kLgorICAqIEVhY2ggdW5pY29kZSBjaGFyYWN0ZXIgd2lsbCBiZSB1c2VkIHRvIGdlbmVyYXRlIGRhdGEuCisgICogQHBhcmFtIGlucHV0IGZpbGUgcGF0aAorICAqIEBwYXJhbSBvdXRwdXQgZmlsZSBwYXRoCisgICogQGRlcHJlY2F0ZWQgSUNVNEogMi4wLCBzaW5jZSBJQ1UgaGFzIHdyaXR0ZW4gaXRzIG93biB0b29sLgorICAqLworICBwdWJsaWMgdm9pZCBidWlsZChTdHJpbmcgaW5wdXQsIFN0cmluZyBvdXRwdXQpCisgIHsgICAKKyAgICB0cnkKKyAgICB7CisgICAgICBieXRlIHJlc3VsdFtdID0gZ2V0UXVpY2tDaGVja0FycmF5KGlucHV0KTsKKyAgICAgIGludCBub3R5ZXNbXSA9IGdldE5vdFllc0ZpcnN0Q1AocmVzdWx0KTsKKyAgICAgIEJ5dGVUcmllIHRyaWUgPSBuZXcgQnl0ZVRyaWUocmVzdWx0KTsKKyAgICAgIEZpbGVXcml0ZXIgZiA9IG5ldyBGaWxlV3JpdGVyKG91dHB1dCk7CisgICAgICBCdWZmZXJlZFdyaXRlciB3ID0gbmV3IEJ1ZmZlcmVkV3JpdGVyKGYpOworICAgICAgCisgICAgICB3LndyaXRlKCIjIFF1aWNrQ2hlY2sgZGF0YVxuIik7CisgICAgICB3LndyaXRlKCIjIEdlbmVyYXRlZCBmcm9tIE5vcm1hbGl6YXRpb25RdWlja0NoZWNrLnR4dFxuXG4iKTsKKyAgICAgIHcud3JpdGUoImludCBVUVVJQ0tfQ0hFQ0tfTUlOX1ZBTFVFU19bXSA9IHsiKTsKKyAgICAgIHcud3JpdGUoIjB4IiArIEludGVnZXIudG9IZXhTdHJpbmcobm90eWVzWzBdKSArICIsIDB4IiArIAorICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKG5vdHllc1sxXSkgKyAiLCAweCIgKyAKKyAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhub3R5ZXNbMl0pICsgIiwgMHgiICsgCisgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcobm90eWVzWzNdKSArICJ9O1xuIik7CisgICAgICAKKyAgICAgIFN0cmluZyBzID0gdHJpZS50b1N0cmluZygpOworICAgICAgdy53cml0ZShzKTsKKyAgICAgIHcuY2xvc2UoKTsKKyAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigidGVzdCAiICsgdGVzdChpbnB1dCwgdHJpZSkpOworICAgIH0KKyAgICBjYXRjaChFeGNlcHRpb24gZSkKKyAgICB7CisgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgIH0KKyAgfQorICAKKyAgLyoqCisgICogTWFpbiBtZXRob2QKKyAgKi8KKyAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ1tdKQorICB7CisgICAgUXVpY2tDaGVja0J1aWxkZXIgcWNiID0gbmV3IFF1aWNrQ2hlY2tCdWlsZGVyKCk7CisgICAgcWNiLmJ1aWxkKCk7CisgIH0KKyAgCisgIC8vIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAKKyAgLyoqCisgICogTWV0aG9kIHRvIG1hbmlwdWxhdGUgdGhlIHZhbHVlcyBvZiB0aGUgcmVhZCBpbiBub3JtYWxpemVkIGZvcm0KKyAgKiBAcGFyYW0gYXJyYXkgb2YgcXVpY2tjaGVjayB2YWx1ZXMKKyAgKiBAcGFyYW0gc3RhcnRjcCBzdGFydGluZyBjb2RlIHBvaW50CisgICogQHBhcmFtIGVuZGNwIGVuZGluZyBjb2RlIHBvaW50CisgICogQHBhcmFtIG5vcm1hbGl6YXRpb25mb3JtYXQgbm9ybWFsaXphdGlvbiBmb3JtYXQgYW5kIHRoZSBmb2xsb3dpbmcgYXJndW1lbnQKKyAgKiAgICAgICAgc3RhdGUgaW5kaWNhdGVzIGlmIGNvZGVwb2ludHMgZnJvbSBzdGFydGNwIHRvIGVuZGNwIGFyZSBvZiB0aGUgCisgICogICAgICAgIGluZGljYXRlZCBub3JtYWxpemF0aW9uIGZvcm1hdAorICAqIEBwYXJhbSBzdGF0ZSBpbmRpY2F0ZXMgaWYgY29kZXBvaW50cyBmcm9tIHN0YXJ0Y3AgdG8gZW5kY3AgYXJlIG9mIHRoZSAKKyAgKiAgICAgICAgYXJndW1lbnQgbm9ybWFsaXphdGlvbiBmb3JtYXQKKyAgKi8KKyAgcHJpdmF0ZSB2b2lkIGZvcm1RdWlja0NoZWNrVmFsdWUoYnl0ZVtdIGFycmF5LCBpbnQgc3RhcnRjcCwgaW50IGVuZGNwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbm9ybWFsaXphdGlvbmZvcm1hdCwgU3RyaW5nIHN0YXRlKSAKKyAgeworICAgIGJ5dGUgdmFsdWUgPSBORkRfTUFZQkVfTUFTS187CisgICAgYnl0ZSBjbGVhciA9IE5GRF9OT19NQVNLXzsKKworICAgIGlmIChub3JtYWxpemF0aW9uZm9ybWF0LmVxdWFscyhORkNfKSkgeworICAgICAgY2xlYXIgPSBORkNfTk9fTUFTS187CisgICAgICBpZiAoc3RhdGUuZXF1YWxzKE5PXykpIHsKKyAgICAgICAgdmFsdWUgPSBORkNfTk9fTUFTS187CisgICAgICB9CisgICAgICBlbHNlIHsKKyAgICAgICAgaWYgKHN0YXRlLmVxdWFscyhZRVNfKSkgeworICAgICAgICAgIHZhbHVlID0gTkZDX1lFU19NQVNLXzsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICB2YWx1ZSA9IE5GQ19NQVlCRV9NQVNLXzsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0KKyAgICBlbHNlIHsKKyAgICAgIGlmIChub3JtYWxpemF0aW9uZm9ybWF0LmVxdWFscyhORkRfKSkgeworICAgICAgICBpZiAoc3RhdGUuZXF1YWxzKE5PXykpIHsKKyAgICAgICAgICB2YWx1ZSA9IE5GRF9OT19NQVNLXzsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICBpZiAoc3RhdGUuZXF1YWxzKFlFU18pKSB7CisgICAgICAgICAgICB2YWx1ZSA9IE5GRF9ZRVNfTUFTS187CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9CisgICAgICBlbHNlIHsKKyAgICAgICAgaWYgKG5vcm1hbGl6YXRpb25mb3JtYXQuZXF1YWxzKE5GS0NfKSkgeworICAgICAgICAgIGNsZWFyID0gTkZLQ19OT19NQVNLXzsKKyAgICAgICAgICBpZiAoc3RhdGUuZXF1YWxzKE5PXykpIHsKKyAgICAgICAgICAgIHZhbHVlID0gTkZLQ19OT19NQVNLXzsKKyAgICAgICAgICB9CisgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpZiAoc3RhdGUuZXF1YWxzKFlFU18pKSB7CisgICAgICAgICAgICAgIHZhbHVlID0gTkZLQ19ZRVNfTUFTS187CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgdmFsdWUgPSBORktDX01BWUJFX01BU0tfOyAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgaWYgKG5vcm1hbGl6YXRpb25mb3JtYXQuZXF1YWxzKE5GS0RfKSkgeworICAgICAgICAgICAgY2xlYXIgPSBORktEX05PX01BU0tfOworICAgICAgICAgICAgaWYgKHN0YXRlLmVxdWFscyhOT18pKSB7CisgICAgICAgICAgICAgIHZhbHVlID0gTkZLRF9OT19NQVNLXzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICBpZiAoc3RhdGUuZXF1YWxzKFlFU18pKSB7CisgICAgICAgICAgICAgICAgdmFsdWUgPSBORktEX1lFU19NQVNLXzsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IE5GS0RfTUFZQkVfTUFTS187CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9CisKKyAgICBmb3IgKDsgc3RhcnRjcCA8PSBlbmRjcDsgc3RhcnRjcCArKykgeworICAgICAgYXJyYXlbc3RhcnRjcF0gJj0gY2xlYXI7CisgICAgICBpZiAodmFsdWUgIT0gY2xlYXIpIHsKKyAgICAgICAgYXJyYXlbc3RhcnRjcF0gfD0gdmFsdWU7CisgICAgICB9CisgICAgfQorICB9CisKKyAgLyoqCisgICogUmVhZHMgaW4gdGhlIE5vcm1hbGl6YXRpb25RdWlja0NoZWNrLnR4dCBmaWxlIGFuZCBnZW5lcmF0ZXMgYSBieXRlIG9mIAorICAqIFF1aWNrQ2hlY2sgZGF0YSBmb3IgZWFjaCBjb2RlcG9pbnQKKyAgKiBAcGFyYW0gaW5wdXQgZmlsZSBwYXRoCisgICogQGV4Y2VwdGlvbiB0aHJvd24gd2hlbiBmaWxlIHJlYWRpbmcgZXJyb3Igb2NjdXJzCisgICovCisgIHByaXZhdGUgYnl0ZVtdIGdldFF1aWNrQ2hlY2tBcnJheShTdHJpbmcgaW5wdXQpIHRocm93cyBFeGNlcHRpb24KKyAgeworICAgIGJ5dGUgcmVzdWx0W10gPSBuZXcgYnl0ZVtVQ2hhcmFjdGVyLk1BWF9WQUxVRSArIDFdOworICAgIAorICAgIC8vIGluaXRpYWxpemluZyBxdWlja2NoZWNrIGFycmF5CisgICAgaW5pdGlhbGl6ZVF1aWNrQ2hlY2tBcnJheShyZXN1bHQpOworICAgIAorICAgIFN0cmluZ1Rva2VuaXplciBzdDsKKyAgICAvLyByZWFkIGluIHN0YXJ0IGFuZCBlbmQgY29kZXBvaW50CisgICAgaW50IHN0YXJ0Y3AsCisgICAgICAgIGVuZGNwOworICAgIC8vIHJlYWQgaW4gbm9ybWFsaXphdGlvbiBmb3JtYXQgYW5kIGl0cyBjb3JyZXNwb25kaW5nIHZhbHVlCisgICAgU3RyaW5nIG5mLAorICAgICAgICAgICBjaGVjazsKKyAgICAKKyAgICB0cnkKKyAgICB7CisgICAgICBGaWxlUmVhZGVyIGYgPSBuZXcgRmlsZVJlYWRlcihpbnB1dCk7CisgICAgICBCdWZmZXJlZFJlYWRlciByID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKGYpOworICAgICAgU3RyaW5nIHMgPSAiIjsKKyAgICAgIHdoaWxlICh0cnVlKQorICAgICAgeworICAgICAgICBzID0gci5yZWFkTGluZSgpOworICAgICAgICBpZiAocyA9PSBudWxsKQorICAgICAgICAgIGJyZWFrOworICAgICAgICAgIAorICAgICAgICBpZiAoIXMuZXF1YWxzKCIiKSAmJiBzLmNoYXJBdCgwKSAhPSAnIycpCisgICAgICAgIHsKKyAgICAgICAgICBzdCA9IG5ldyBTdHJpbmdUb2tlbml6ZXIocywgIjsgIik7CisgICAgICAgICAgc3RhcnRjcCA9IEludGVnZXIucGFyc2VJbnQoc3QubmV4dFRva2VuKCksIDE2KTsKKyAgICAgICAgICBlbmRjcCA9IEludGVnZXIucGFyc2VJbnQoc3QubmV4dFRva2VuKCksIDE2KTsKKyAgICAgICAgICBuZiA9IHN0Lm5leHRUb2tlbigpOworICAgICAgICAgIGNoZWNrID0gc3QubmV4dFRva2VuKCk7CisgICAgICAgICAgZm9ybVF1aWNrQ2hlY2tWYWx1ZShyZXN1bHQsIHN0YXJ0Y3AsIGVuZGNwLCBuZiwgY2hlY2spOworICAgICAgICB9CisgICAgICB9CisgICAgICByLmNsb3NlKCk7CisgICAgfQorICAgIGNhdGNoKEVPRkV4Y2VwdGlvbiBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgcmV0dXJuIHJlc3VsdDsKKyAgfQorICAKKyAgLyoqCisgICogSW5pdGlhbGl6aW5nIHF1aWNrY2hlY2sgYXJyYXkuCisgICogQWxsIGFzc2lnbmVkIGNvZGVwb2ludHMgaGF2ZSB0aGUgdmFsdWUgWSwgYWxsIHVuYXNzaWduZWQgY29kZXBvaW50cyBoYXZlIAorICAqIHRoZSB2YWx1ZSBNLCBhbGwgbm9uLWNoYXJhY3RlciBjb2RlcG9pbnRzIChEODAwLi5ERkZGLCAqRkZGRSwgKkZGRkYpIGhhdmUgCisgICogdGhlIHZhbHVlIE4uCisgICogQHBhcmFtIGFycmF5IHF1aWNrY2hlY2sgYnl0ZSBhcnJheQorICAqLworICBwcml2YXRlIHZvaWQgaW5pdGlhbGl6ZVF1aWNrQ2hlY2tBcnJheShieXRlW10gYXJyYXkpCisgIHsKKyAgICBmb3IgKGludCBjaCA9IFVDaGFyYWN0ZXIuTUlOX1ZBTFVFOyBjaCA8PSBVQ2hhcmFjdGVyLk1BWF9WQUxVRTsgY2ggKyspCisgICAgeworICAgICAgYXJyYXlbY2hdID0gREVGSU5FRF9DSEFSX05PUk1fVkFMVUVfOyAgCisgICAgICBpZiAoKGNoID49IFNVUlJPR0FURV9TVEFSVF8gJiYgY2ggPD0gU1VSUk9HQVRFX0VORF8pIHx8IAorICAgICAgICAgICgoY2ggJiBNQVNLX0xBU1RfMTZfQklUU18pID49IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1JTl9OT1RfQV9DSEFSX0FGVEVSX01BU0tfTEFTVF8xNl9CSVRTXykpCisgICAgICAgIGFycmF5W2NoXSA9IE5PVF9BX0NIQVJBQ1RFUl9WQUxVRV87CisgICAgfQorICB9CisgIAorICAvKioKKyAgKiBUZXN0cyB0aGUgZ2VuZXJhdGVkIHRyaWUgd2l0aCB0aGUgZGF0YSBpbiB0aGUgaW5wdXQgZmlsZS4KKyAgKiBAcGFyYW0gaW5wdXQgZmlsZSBwYXRoCisgICogQHBhcmFtIHRyaWUgb2JqZWN0CisgICogQGV4Y2VwdGlvbiB0aHJvd24gd2hlbiBmaWxlIHJlYWRpbmcgZXJyb3Igb2NjdXJzCisgICovCisgIHByaXZhdGUgYm9vbGVhbiB0ZXN0KFN0cmluZyBpbnB1dCwgQnl0ZVRyaWUgdHJpZSkgdGhyb3dzIEV4Y2VwdGlvbgorICB7CisgICAgU3RyaW5nVG9rZW5pemVyIHN0OworICAgIC8vIHJlYWQgaW4gc3RhcnQgYW5kIGVuZCBjb2RlcG9pbnQKKyAgICBpbnQgc3RhcnRjcCwKKyAgICAgICAgZW5kY3A7CisgICAgLy8gcmVhZCBpbiBub3JtYWxpemF0aW9uIGZvcm1hdCBhbmQgaXRzIGNvcnJlc3BvbmRpbmcgdmFsdWUKKyAgICBTdHJpbmcgbmYsCisgICAgICAgICAgIGNoZWNrOworICAgIGJ5dGUgdGVtcDsKKyAgICAKKyAgICB0cnkKKyAgICB7CisgICAgICBGaWxlUmVhZGVyIGYgPSBuZXcgRmlsZVJlYWRlcihpbnB1dCk7CisgICAgICBCdWZmZXJlZFJlYWRlciByID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKGYpOworICAgICAgU3RyaW5nIHMgPSAiIjsKKyAgICAgIHdoaWxlICh0cnVlKQorICAgICAgeworICAgICAgICBzID0gci5yZWFkTGluZSgpOworICAgICAgICBpZiAocyA9PSBudWxsKQorICAgICAgICAgIGJyZWFrOworICAgICAgICAgIAorICAgICAgICBpZiAoIXMuZXF1YWxzKCIiKSAmJiBzLmNoYXJBdCgwKSAhPSAnIycpCisgICAgICAgIHsKKyAgICAgICAgICBzdCA9IG5ldyBTdHJpbmdUb2tlbml6ZXIocywgIjsgIik7CisgICAgICAgICAgc3RhcnRjcCA9IEludGVnZXIucGFyc2VJbnQoc3QubmV4dFRva2VuKCksIDE2KTsKKyAgICAgICAgICBlbmRjcCA9IEludGVnZXIucGFyc2VJbnQoc3QubmV4dFRva2VuKCksIDE2KTsKKyAgICAgICAgICBuZiA9IHN0Lm5leHRUb2tlbigpOworICAgICAgICAgIGNoZWNrID0gc3QubmV4dFRva2VuKCk7CisgICAgICAgICAgCisgICAgICAgICAgYnl0ZSBtYXNrID0gMDsKKyAgICAgICAgICAKKyAgICAgICAgICBpZiAobmYuZXF1YWxzKE5GQ18pKQorICAgICAgICAgICAgbWFzayA9IChieXRlKTB4NDQ7CisgICAgICAgICAgZWxzZQorICAgICAgICAgICAgaWYgKG5mLmVxdWFscyhORkRfKSkKKyAgICAgICAgICAgICAgbWFzayA9IChieXRlKTB4MTE7CisgICAgICAgICAgICBlbHNlIAorICAgICAgICAgICAgICBpZiAobmYuZXF1YWxzKE5GS0NfKSkKKyAgICAgICAgICAgICAgICBtYXNrID0gKGJ5dGUpMHg4ODsKKyAgICAgICAgICAgICAgZWxzZSAKKyAgICAgICAgICAgICAgICBpZiAobmYuZXF1YWxzKE5GS0RfKSkKKyAgICAgICAgICAgICAgICAgIG1hc2sgPSAoYnl0ZSkweDIyOworICAgICAgICAgIGZvciAoOyBzdGFydGNwIDw9IGVuZGNwOyBzdGFydGNwICsrKQorICAgICAgICAgIHsKKyAgICAgICAgICAgIHRlbXAgPSAoYnl0ZSkodHJpZS5nZXRWYWx1ZShzdGFydGNwKSAmIG1hc2spOworICAgICAgICAgICAgaWYgKGNoZWNrLmVxdWFscyhOT18pICYmICh0ZW1wICE9IDApKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkVycm9yIGF0IE5PICIgKyBzdGFydGNwKTsKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoY2hlY2suZXF1YWxzKFlFU18pICYmICh0ZW1wIDwgMCB8fCB0ZW1wID4gMHg4KSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFcnJvciBhdCBZRVMgIiArIHN0YXJ0Y3ApOworICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChjaGVjay5lcXVhbHMoTUFZQkVfKSAmJiAodGVtcCA8IDB4MTApICYmICh0ZW1wICE9IC0xMjgpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkVycm9yIGF0IE1BWUJFICIgKyBzdGFydGNwKTsKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgfQorICAgICAgci5jbG9zZSgpOworICAgIH0KKyAgICBjYXRjaChFT0ZFeGNlcHRpb24gZSkKKyAgICB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorICAKKyAgLyoqCisgICogUmV0dXJucyBhbiBhcnJheSBvZiB0aGUgZmlyc3QgY29kZXBvaW50cyB0aGF0IGRvIG5vdCBoYXZlIGEgWUVTIGZvciB0aGVpcgorICAqIHJlc3BlY3RpdmUgbm9ybWFsaXphdGlvbiBmb3JtYXQuIEhlbmNlIAorICAqIDxwPiBnZXROb3RZZXNGaXJzdENQWzBdIGlzIHRoZSBmaXJzdCBjb2RlcG9pbnQgdGhhdCBpcyBub3QgYSBORkRfWUVTPGJyPgorICAqIGdldE5vdFllc0ZpcnN0Q1BbMV0gaXMgdGhlIGZpcnN0IGNvZGVwb2ludCB0aGF0IGlzIG5vdCBhIE5GS0RfWUVTPGJyPgorICAqIGdldE5vdFllc0ZpcnN0Q1BbMl0gaXMgdGhlIGZpcnN0IGNvZGVwb2ludCB0aGF0IGlzIG5vdCBhIE5GQ19ZRVM8YnI+CisgICogZ2V0Tm90WWVzRmlyc3RDUFszXSBpcyB0aGUgZmlyc3QgY29kZXBvaW50IHRoYXQgaXMgbm90IGEgTkZLQ19ZRVM8YnI+CisgICogQHBhcmFtIHF1aWNrY2hlY2sgYXJyYXkgb2YgcXVpY2tjaGVjayB2YWx1ZXMKKyAgKiBAcmV0dXJuIGFycmF5IG9mIGZpcnN0IGNvZGVwb2ludHMgbm90IGEgWUVTCisgICovCisgIHByaXZhdGUgaW50W10gZ2V0Tm90WWVzRmlyc3RDUChieXRlW10gcXVpY2tjaGVjaykKKyAgeworICAgIGludCByZXN1bHRbXSA9IHtVQ2hhcmFjdGVyLk1BWF9WQUxVRSwgVUNoYXJhY3Rlci5NQVhfVkFMVUUsIAorICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLk1BWF9WQUxVRSwgVUNoYXJhY3Rlci5NQVhfVkFMVUV9OworICAgIGJ5dGUgdmFsdWU7CisgICAgZm9yIChpbnQgY29kZXBvaW50ID0gMDsgY29kZXBvaW50IDwgVUNoYXJhY3Rlci5NQVhfVkFMVUU7IGNvZGVwb2ludCArKykKKyAgICB7CisgICAgICB2YWx1ZSA9IHF1aWNrY2hlY2tbY29kZXBvaW50XTsKKyAgICAgIGlmICgodmFsdWUgJiBORkRfWUVTX01BU0tfKSA9PSAwICYmIChjb2RlcG9pbnQgPCByZXN1bHRbMF0pKQorICAgICAgICByZXN1bHRbMF0gPSBjb2RlcG9pbnQ7CisgICAgICBpZiAoKHZhbHVlICYgTkZLRF9ZRVNfTUFTS18pID09IDAgJiYgKGNvZGVwb2ludCA8IHJlc3VsdFsxXSkpCisgICAgICAgIHJlc3VsdFsxXSA9IGNvZGVwb2ludDsKKyAgICAgIGlmICgodmFsdWUgJiBORkNfWUVTX01BU0tfKSA9PSAwICYmIChjb2RlcG9pbnQgPCByZXN1bHRbMl0pKQorICAgICAgICByZXN1bHRbMl0gPSBjb2RlcG9pbnQ7CisgICAgICBpZiAoKHZhbHVlICYgTkZLQ19ZRVNfTUFTS18pID09IDAgJiYgKGNvZGVwb2ludCA8IHJlc3VsdFszXSkpCisgICAgICAgIHJlc3VsdFszXSA9IGNvZGVwb2ludDsKKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKKyAgfQorICAKKyAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIAorICAvKioKKyAgKiBJbnB1dCBmaWxlIHBhdGgKKyAgKi8KKyAgcHJpdmF0ZSBmaW5hbCBTdHJpbmcgREVGQVVMVF9JTlBVVF9QQVRIXyA9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRhdGEvL3VuaWNvZGUvL05vcm1hbGl6YXRpb25RdWlja0NoZWNrLnR4dCI7CisgIAorICAvKioKKyAgKiBPdXRwdXQgZmlsZSBwYXRoCisgICovCisgIHByaXZhdGUgZmluYWwgU3RyaW5nIERFRkFVTFRfT1VUUFVUX1BBVEhfID0gIlF1aWNrQ2hlY2sudHh0IjsKKyAgCisgIC8qKgorICAqIDE2IGJpdHMgbWFzaworICAqLworICBwcml2YXRlIGZpbmFsIGludCBNQVNLX0xBU1RfMTZfQklUU18gPSAweEZGRkY7CisgIAorICAvKioKKyAgKiBNaW5pbXVtIHZhbHVlIG9mIGEgbm90LWEtY2hhcmFjdGVyIGFmdGVyIHRoZSAxNiBiaXQgbWFza2luZworICAqLworICBwcml2YXRlIGZpbmFsIGludCBNSU5fTk9UX0FfQ0hBUl9BRlRFUl9NQVNLX0xBU1RfMTZfQklUU18gPSAweEZGRkU7CisgIAorICAvKioKKyAgKiBTdXJyb2dhdGUgY29kZSBwb2ludHMKKyAgKi8KKyAgcHJpdmF0ZSBmaW5hbCBpbnQgU1VSUk9HQVRFX1NUQVJUXyA9IDB4RDgwMDsKKyAgcHJpdmF0ZSBmaW5hbCBpbnQgU1VSUk9HQVRFX0VORF8gICA9IDB4REJGRjsKKworICAvKioKKyAgKiBORkQgMiBiaXQgbWFzaworICAqLworICBwcml2YXRlIGZpbmFsIGJ5dGUgTkZEX05PX01BU0tfID0gKGJ5dGUpMHhFRTsKKyAgcHJpdmF0ZSBmaW5hbCBieXRlIE5GRF9ZRVNfTUFTS18gPSAoYnl0ZSkweDAxOworICBwcml2YXRlIGZpbmFsIGJ5dGUgTkZEX01BWUJFX01BU0tfID0gKGJ5dGUpMHgxMDsKKworICAvKioKKyAgKiBORktEIDIgYml0IG1hc2sKKyAgKi8KKyAgcHJpdmF0ZSBmaW5hbCBieXRlIE5GS0RfTk9fTUFTS18gPSAoYnl0ZSkweEREOworICBwcml2YXRlIGZpbmFsIGJ5dGUgTkZLRF9ZRVNfTUFTS18gPSAoYnl0ZSkweDAyOworICBwcml2YXRlIGZpbmFsIGJ5dGUgTkZLRF9NQVlCRV9NQVNLXyA9IChieXRlKTB4ZDA7CisKKyAgLyoqCisgICogTkZDIDIgYml0IG1hc2sKKyAgKi8KKyAgcHJpdmF0ZSBmaW5hbCBieXRlIE5GQ19OT19NQVNLXyA9IChieXRlKTB4QkI7CisgIHByaXZhdGUgZmluYWwgYnl0ZSBORkNfWUVTX01BU0tfID0gKGJ5dGUpMHgwNDsKKyAgcHJpdmF0ZSBmaW5hbCBieXRlIE5GQ19NQVlCRV9NQVNLXyA9IChieXRlKTB4NDA7CisKKyAgLyoqCisgICogTkZLQyAyIGJpdCBtYXNrCisgICovCisgIHByaXZhdGUgZmluYWwgYnl0ZSBORktDX05PX01BU0tfID0gKGJ5dGUpMHg3NzsKKyAgcHJpdmF0ZSBmaW5hbCBieXRlIE5GS0NfWUVTX01BU0tfID0gKGJ5dGUpMHgwODsKKyAgcHJpdmF0ZSBmaW5hbCBieXRlIE5GS0NfTUFZQkVfTUFTS18gPSAoYnl0ZSkweDgwOworCisgIC8qKgorICAqIERlZmF1bHQgdmFsdWUgZm9yIHVuZGVmaW5lZCBjaGFyYWN0ZXJzCisgICovCisgIHByaXZhdGUgZmluYWwgYnl0ZSBVTkRFRklORURfQ0hBUl9OT1JNX1ZBTFVFXyA9IChieXRlKTB4RjA7CisKKyAgLyoqCisgICogRGVmYXVsdCB2YWx1ZSBmb3IgZGVmaW5lZCBjaGFyYWN0ZXJzCisgICovCisgIHByaXZhdGUgZmluYWwgYnl0ZSBERUZJTkVEX0NIQVJfTk9STV9WQUxVRV8gPSAoYnl0ZSkweDBGOworCisgIC8qKgorICAqIERlZmF1bHQgdmFsdWUgZm9yIG5vdC1hLWNoYXJhY3RlcgorICAqLworICBwcml2YXRlIGZpbmFsIGJ5dGUgTk9UX0FfQ0hBUkFDVEVSX1ZBTFVFXyA9IChieXRlKTB4MDA7CisgIAorICAvKioKKyAgKiBORkMgbmFtZQorICAqLworICBwcml2YXRlIGZpbmFsIFN0cmluZyBORkNfID0gIk5GQyI7CisgIAorICAvKioKKyAgKiBORktDIG5hbWUKKyAgKi8KKyAgcHJpdmF0ZSBmaW5hbCBTdHJpbmcgTkZLQ18gPSAiTkZLQyI7CisgIAorICAvKioKKyAgKiBORkQgbmFtZQorICAqLworICBwcml2YXRlIGZpbmFsIFN0cmluZyBORkRfID0gIk5GRCI7CisgIAorICAvKioKKyAgKiBORktEIG5hbWUKKyAgKi8KKyAgcHJpdmF0ZSBmaW5hbCBTdHJpbmcgTkZLRF8gPSAiTkZLRCI7CisgIAorICAvKioKKyAgKiBZRVMKKyAgKi8KKyAgcHJpdmF0ZSBmaW5hbCBTdHJpbmcgWUVTXyA9ICJZIjsKKyAgCisgIC8qKgorICAqIE5PCisgICovCisgIHByaXZhdGUgZmluYWwgU3RyaW5nIE5PXyA9ICJOIjsKKyAgCisgIC8qKgorICAqIE1BWUJFCisgICovCisgIHByaXZhdGUgZmluYWwgU3RyaW5nIE1BWUJFXyA9ICJNIjsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbm9ybWFsaXplci9Tb3VyY2VXcml0ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9ub3JtYWxpemVyL1NvdXJjZVdyaXRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRhM2NhNWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbm9ybWFsaXplci9Tb3VyY2VXcml0ZXIuamF2YQpAQCAtMCwwICsxLDUzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbm9ybWFsaXplci9BdHRpYy9Tb3VyY2VXcml0ZXIuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNTozNCAkIAorICogJFJldmlzaW9uOiAxLjQgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLm5vcm1hbGl6ZXI7CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ29tcGFjdENoYXJBcnJheTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNvbXBhY3RCeXRlQXJyYXk7CitpbXBvcnQgamF2YS5pby5QcmludFdyaXRlcjsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKKworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBVdGlsaXRpZXMgZm9yIHdyaXRpbmcgZGF0YSBvdXQgYXMgY29tcGlsYWJsZSBzb3VyY2UgY29kZQorLy8KK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBTb3VyY2VXcml0ZXIgeworICAgIGFic3RyYWN0IHB1YmxpYyB2b2lkIGNsb3NlKCk7CisgICAgYWJzdHJhY3QgcHVibGljIHZvaWQgd3JpdGUoU3RyaW5nIG5hbWUsIHNob3J0IHZhbHVlKTsKKyAgICBhYnN0cmFjdCBwdWJsaWMgdm9pZCB3cml0ZShTdHJpbmcgbmFtZSwgaW50IHZhbHVlKTsKKworICAgIGFic3RyYWN0IHB1YmxpYyB2b2lkIHdyaXRlKFN0cmluZyBuYW1lLCBDb21wYWN0Q2hhckFycmF5IGFycmF5KTsKKyAgICBhYnN0cmFjdCBwdWJsaWMgdm9pZCB3cml0ZShTdHJpbmcgbmFtZSwgQ29tcGFjdEJ5dGVBcnJheSBhcnJheSk7CisgICAgYWJzdHJhY3QgcHVibGljIHZvaWQgd3JpdGUoU3RyaW5nIG5hbWUsIFN0cmluZ0J1ZmZlciBzdHIpOworCisgICAgYWJzdHJhY3QgcHVibGljIHZvaWQgd3JpdGUoU3RyaW5nIG5hbWUsIGNoYXJbXSBhcnJheSk7CisgICAgYWJzdHJhY3QgcHVibGljIHZvaWQgd3JpdGUoU3RyaW5nIG5hbWUsIGludFtdIGFycmF5KTsKKworICAgIGFic3RyYWN0IHB1YmxpYyB2b2lkIHdyaXRlSGV4KFN0cmluZyBuYW1lLCBjaGFyIHZhbHVlKTsKKyAgICBhYnN0cmFjdCBwdWJsaWMgdm9pZCB3cml0ZUhleChTdHJpbmcgbmFtZSwgaW50IHZhbHVlKTsKKworICAgIHZvaWQgd3JpdGVIZWFkZXIoUHJpbnRXcml0ZXIgb3V0KSB7CisgICAgICAgIG91dC5wcmludGxuKCIvKiIpOworICAgICAgICBvdXQucHJpbnRsbigiKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIik7CisgICAgICAgIG91dC5wcmludGxuKCIqICAgQ29weXJpZ2h0IChjKSAxOTk3LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMiKTsKKyAgICAgICAgb3V0LnByaW50bG4oIiogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4iKTsKKyAgICAgICAgb3V0LnByaW50bG4oIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiIpOworICAgICAgICBvdXQucHJpbnRsbigiKiA+IFRISVMgRklMRSBXQVMgTUFDSElORSBHRU5FUkFURUQgPCIpOworICAgICAgICBvdXQucHJpbnRsbigiKiA+ICAgICAgIERPIE5PVCBFRElUIEJZIEhBTkQgICAgICAgPCIpOworICAgICAgICBvdXQucHJpbnRsbigiKiA+ICAgICAgUlVOIFRPT0wgVE8gUkVHRU5FUkFURSAgICAgPCIpOworICAgICAgICBvdXQucHJpbnRsbigiKiBUb29sOiAiICsgTm9ybWFsaXplci5jbGFzcy5nZXROYW1lKCkpOworICAgICAgICBvdXQucHJpbnRsbigiKiBDcmVhdGlvbiBkYXRlOiAiICsgbmV3IERhdGUoKSk7CisgICAgICAgIG91dC5wcmludGxuKCIqLyIpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9ub3JtYWxpemVyL1VJbmZvLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbm9ybWFsaXplci9VSW5mby5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdhNzIyNmYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbm9ybWFsaXplci9VSW5mby5qYXZhCkBAIC0wLDAgKzEsNjA0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbm9ybWFsaXplci9BdHRpYy9VSW5mby5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAzLzMwIDAzOjEwOjA1ICQgCisgKiAkUmV2aXNpb246IDEuOSAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5ub3JtYWxpemVyOworCitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKworcHVibGljIGZpbmFsIGNsYXNzIFVJbmZvIHsKKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IGZhbHNlOworICAgIHN0YXRpYyBmaW5hbCBpbnQgVUlORk9fVkVSU0lPTiA9IDU7CisKKyAgICAvLyB0aGVzZSB2YWx1ZXMgYXJlIGFsaWduZWQgd2l0aCB0aGUgamF2YS5sYW5nLkNoYXJhY3RlciBjb25zdGFudHMKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZQorICAgIFVOQVNTSUdORUQgICAgICA9IDAsCisgICAgVVBQRVJDQVNFX0xFVFRFUiAgICA9IDEsCisgICAgTE9XRVJDQVNFX0xFVFRFUiAgICA9IDIsCisgICAgVElUTEVDQVNFX0xFVFRFUiAgICA9IDMsCisgICAgTU9ESUZJRVJfTEVUVEVSICAgICA9IDQsCisgICAgT1RIRVJfTEVUVEVSICAgICAgICA9IDUsCisgICAgTk9OX1NQQUNJTkdfTUFSSyAgICA9IDYsCisgICAgRU5DTE9TSU5HX01BUksgICAgICA9IDcsCisgICAgQ09NQklOSU5HX1NQQUNJTkdfTUFSSyAgPSA4LAorICAgIERFQ0lNQUxfRElHSVRfTlVNQkVSICAgID0gOSwKKyAgICBMRVRURVJfTlVNQkVSICAgICAgID0gMTAsCisgICAgT1RIRVJfTlVNQkVSICAgICAgICA9IDExLAorICAgIFNQQUNFX1NFUEFSQVRPUiAgICAgPSAxMiwKKyAgICBMSU5FX1NFUEFSQVRPUiAgICAgID0gMTMsCisgICAgUEFSQUdSQVBIX1NFUEFSQVRPUiA9IDE0LAorICAgIENPTlRST0wgICAgICAgICA9IDE1LAorICAgIEZPUk1BVCAgICAgICAgICA9IDE2LAorICAgIFBSSVZBVEVfVVNFICAgICA9IDE4LAorICAgIFNVUlJPR0FURSAgICAgICA9IDE5LAorICAgIERBU0hfUFVOQ1RVQVRJT04gICAgPSAyMCwKKyAgICBTVEFSVF9QVU5DVFVBVElPTiAgID0gMjEsCisgICAgRU5EX1BVTkNUVUFUSU9OICAgICA9IDIyLAorICAgIENPTk5FQ1RPUl9QVU5DVFVBVElPTiAgID0gMjMsCisgICAgT1RIRVJfUFVOQ1RVQVRJT04gICA9IDI0LAorICAgIE1BVEhfU1lNQk9MICAgICA9IDI1LAorICAgIENVUlJFTkNZX1NZTUJPTCAgICAgPSAyNiwKKyAgICBNT0RJRklFUl9TWU1CT0wgICAgID0gMjcsCisgICAgT1RIRVJfU1lNQk9MICAgICAgICA9IDI4OworCisgICAgcHVibGljIFN0cmluZyBnZXROYW1lKGNoYXIgY2gpIHtyZXR1cm4gZ2V0SW5mbyhjaCkubmFtZTt9CisgICAgcHVibGljIFN0cmluZyBnZXREZWNvbXBvc2l0aW9uKGNoYXIgY2gpIHtyZXR1cm4gZ2V0SW5mbyhjaCkuZGVjb21wb3NpdGlvbjt9CisgICAgcHVibGljIFN0cmluZyBnZXROYW1lMTAoY2hhciBjaCkge3JldHVybiBnZXRJbmZvKGNoKS5uYW1lMTA7fQorICAgIHB1YmxpYyBTdHJpbmcgZ2V0Q29tbWVudChjaGFyIGNoKSB7cmV0dXJuIGdldEluZm8oY2gpLmNvbW1lbnQ7fQorCisgICAgcHVibGljIGZsb2F0IGdldE51bWVyaWMoY2hhciBjaCkge3JldHVybiBnZXRJbmZvKGNoKS5udW1lcmljO30KKworICAgIHB1YmxpYyBzaG9ydCBnZXRDYW5vbmljYWxDbGFzcyhjaGFyIGNoKSB7cmV0dXJuIGdldEluZm8oY2gpLmNhbm9uaWNhbDt9CisgICAgcHVibGljIHNob3J0IGdldERlY2ltYWwoY2hhciBjaCkge3JldHVybiBnZXRJbmZvKGNoKS5kZWNpbWFsO30KKyAgICBwdWJsaWMgc2hvcnQgZ2V0RGlnaXQoY2hhciBjaCkge3JldHVybiBnZXRJbmZvKGNoKS5kaWdpdDt9CisKKyAgICBwdWJsaWMgY2hhciBnZXRVcHBlcmNhc2UoY2hhciBjaCkge3JldHVybiBnZXRJbmZvKGNoKS51cHBlcmNhc2U7fQorICAgIHB1YmxpYyBjaGFyIGdldExvd2VyY2FzZShjaGFyIGNoKSB7cmV0dXJuIGdldEluZm8oY2gpLmxvd2VyY2FzZTt9CisgICAgcHVibGljIGNoYXIgZ2V0VGl0bGVjYXNlKGNoYXIgY2gpIHtyZXR1cm4gZ2V0SW5mbyhjaCkudGl0bGVjYXNlO30KKworICAgIHB1YmxpYyBieXRlIGdldENhdGVnb3J5KGNoYXIgY2gpIHtyZXR1cm4gZ2V0SW5mbyhjaCkuY2F0ZWdvcnk7fQorICAgIHB1YmxpYyBieXRlIGdldEJpZGlDbGFzcyhjaGFyIGNoKSB7cmV0dXJuIGdldEluZm8oY2gpLmJpZGk7fQorICAgIHB1YmxpYyBib29sZWFuIGdldE1pcnJvcmVkKGNoYXIgY2gpIHtyZXR1cm4gZ2V0SW5mbyhjaCkubWlycm9yZWQ7fQorCisgICAgcHVibGljIGJvb2xlYW4gaXNEaXNwYXJhZ2VkKGNoYXIgY2gpIHsgcmV0dXJuIGdldERlY29tcG9zaXRpb24oY2gpLmxlbmd0aCgpID09IDQ7IH0KKworICAgIHB1YmxpYyBib29sZWFuIGlzTGV0dGVyKGNoYXIgY2gpIHsKKyAgICAgICAgcmV0dXJuICgwICE9ICgoMTw8Z2V0Q2F0ZWdvcnkoY2gpKSAmCisgICAgICAgICAgKCgxPDxVUFBFUkNBU0VfTEVUVEVSKQorICAgICAgICAgIHwgKDE8PExPV0VSQ0FTRV9MRVRURVIpCisgICAgICAgICAgfCAoMTw8VElUTEVDQVNFX0xFVFRFUikKKyAgICAgICAgICB8ICgxPDxNT0RJRklFUl9MRVRURVIpCisgICAgICAgICAgfCAoMTw8TU9ESUZJRVJfTEVUVEVSKSkpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBpc01hcmsoY2hhciBjaCkgeworICAgICAgICByZXR1cm4gKDAgIT0gKCgxPDxnZXRDYXRlZ29yeShjaCkpICYKKyAgICAgICAgICAoKDE8PE5PTl9TUEFDSU5HX01BUkspCisgICAgICAgICAgfCAoMTw8RU5DTE9TSU5HX01BUkspCisgICAgICAgICAgfCAoMTw8Q09NQklOSU5HX1NQQUNJTkdfTUFSSykpKSk7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaXNOdW1iZXIoY2hhciBjaCkgeworICAgICAgICByZXR1cm4gKDAgIT0gKCgxPDxnZXRDYXRlZ29yeShjaCkpICYKKyAgICAgICAgICAoKDE8PERFQ0lNQUxfRElHSVRfTlVNQkVSKQorICAgICAgICAgIHwgKDE8PExFVFRFUl9OVU1CRVIpCisgICAgICAgICAgfCAoMTw8T1RIRVJfTlVNQkVSKSkpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBpc1NlcGFyYXRvcihjaGFyIGNoKSB7CisgICAgICAgIHJldHVybiAoMCAhPSAoKDE8PGdldENhdGVnb3J5KGNoKSkgJgorICAgICAgICAgICgoMTw8U1BBQ0VfU0VQQVJBVE9SKQorICAgICAgICAgIHwgKDE8PExJTkVfU0VQQVJBVE9SKQorICAgICAgICAgIHwgKDE8PFBBUkFHUkFQSF9TRVBBUkFUT1IpKSkpOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGlzRm9ybWF0KGNoYXIgY2gpIHsKKyAgICAgICAgcmV0dXJuICgwICE9ICgoMTw8Z2V0Q2F0ZWdvcnkoY2gpKSAmCisgICAgICAgICAgKCgxPDxDT05UUk9MKQorICAgICAgICAgIHwgKDE8PEZPUk1BVCkpKSk7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaXNQdW5jdHVhdGlvbihjaGFyIGNoKSB7CisgICAgICAgIHJldHVybiAoMCAhPSAoKDE8PGdldENhdGVnb3J5KGNoKSkgJgorICAgICAgICAgICgoMTw8REFTSF9QVU5DVFVBVElPTikKKyAgICAgICAgICB8ICgxPDxTVEFSVF9QVU5DVFVBVElPTikKKyAgICAgICAgICB8ICgxPDxFTkRfUFVOQ1RVQVRJT04pCisgICAgICAgICAgfCAoMTw8Q09OTkVDVE9SX1BVTkNUVUFUSU9OKQorICAgICAgICAgIHwgKDE8PFNUQVJUX1BVTkNUVUFUSU9OKQorICAgICAgICAgIHwgKDE8PEVORF9QVU5DVFVBVElPTikKKyAgICAgICAgICB8ICgxPDxPVEhFUl9QVU5DVFVBVElPTikpKSk7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaXNTeW1ib2woY2hhciBjaCkgeworICAgICAgICByZXR1cm4gKDAgIT0gKCgxPDxnZXRDYXRlZ29yeShjaCkpICYKKyAgICAgICAgICAoKDE8PE1BVEhfU1lNQk9MKQorICAgICAgICAgIHwgKDE8PENVUlJFTkNZX1NZTUJPTCkKKyAgICAgICAgICB8ICgxPDxNT0RJRklFUl9TWU1CT0wpCisgICAgICAgICAgfCAoMTw8T1RIRVJfU1lNQk9MKSkpKTsKKyAgICB9CisKKyAgICAvLworICAgIC8vIENoYXJhY3RlcnMgZXhjbHVkZWQgZnJvbSBjb21wb3NpdGlvbi4gIFRoaXMgaXMgcmVhZCBmcm9tIHRoZSBVbmljb2RlCisgICAgLy8gZmlsZSBDb21wb3NpdGlvbkV4Y2x1c2lvbnMudHh0LgorICAgIC8vCisgICAgU3RyaW5nIGNvbXBvc2VFeGNsdWRlID0gIiI7CisKKyAgICAvKioKKyAgICAgKiBJcyB0aGlzIGNoYXJhY3RlciBleGNsdWRlZCBmcm9tIHRoZSBjb21wb3NpdGlvbiBhbGdvcml0aG0gYnkgdmlydHVlCisgICAgICogb2YgYmVpbmcgbGlzdGVkIGluIHRoZSBjb21wb3NpdGlvbiBleGNsdXNpb24gdGFibGUgaW4gVGVjaCBSZXBvcnQgIzE1PworICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzRXhjbHVkZWRDb21wb3NpdGlvbihjaGFyIGNoKSB7CisgICAgICAgIHJldHVybiBpc0Rpc3BhcmFnZWQoY2gpCisgICAgICAgICAgICB8fCBjb21wb3NlRXhjbHVkZS5pbmRleE9mKGNoKSA+PSAwCisgICAgICAgICAgICB8fCBnZXRDYW5vbmljYWxDbGFzcyhnZXREZWNvbXBvc2l0aW9uQ2hhcnMoY2gpLmNoYXJBdCgwKSkgIT0gMDsKKyAgICB9CisKKworCisgICAgcHVibGljIFN0cmluZyBnZXROYW1lKFN0cmluZyBzKSB7CisgICAgICAgIHJldHVybiBnZXROYW1lKHMsdHJ1ZSk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXROYW1lKFN0cmluZyBzLCBib29sZWFuIHNob3J0VmVyc2lvbikgeworICAgICAgICBTdHJpbmdCdWZmZXIgdGVtcCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChpICE9IDApIHRlbXAuYXBwZW5kKCIsICIpOworICAgICAgICAgICAgdGVtcC5hcHBlbmQoZ2V0TmFtZShzLmNoYXJBdChpKSwgc2hvcnRWZXJzaW9uKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRlbXAudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoY2hhciBjaCwgYm9vbGVhbiBzaG9ydFZlcnNpb24pIHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IGdldE5hbWUoY2gpOworICAgICAgICBpZiAoIXNob3J0VmVyc2lvbikgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgcmVzdWx0ID0gcmVwbGFjZShyZXN1bHQsIkxFVFRFUiAiLCIiKTsKKyAgICAgICAgcmVzdWx0ID0gcmVwbGFjZShyZXN1bHQsIkNIQVJBQ1RFUiAiLCIiKTsKKyAgICAgICAgcmVzdWx0ID0gcmVwbGFjZShyZXN1bHQsIlNJR04gIiwiIik7CisgICAgICAgIHJlc3VsdCA9IHJlcGxhY2UocmVzdWx0LCJDQVBJVEFMICIsIlVDICIpOworICAgICAgICBpZiAoZ2V0Q2F0ZWdvcnkoY2gpID09IExPV0VSQ0FTRV9MRVRURVIpCisgICAgICAgICAgcmVzdWx0ID0gcmVwbGFjZShyZXN1bHQsIlNNQUxMICIsIkxDICIpOworICAgICAgICByZXN1bHQgPSByZXBsYWNlKHJlc3VsdCwiQ09NQklOSU5HICIsIi0iKTsKKyAgICAgICAgcmVzdWx0ID0gcmVwbGFjZShyZXN1bHQsIldJVEggIiwiIik7CisgICAgICAgIHJlc3VsdCA9IHJlcGxhY2UocmVzdWx0LCJBTkQgIiwiIik7CisgICAgICAgIHJlc3VsdCA9IHJlcGxhY2UocmVzdWx0LCJWQVJJQSIsIkdSQVZFIik7CisgICAgICAgIHJlc3VsdCA9IHJlcGxhY2UocmVzdWx0LCJPWElBIiwiQUNVVEUiKTsKKyAgICAgICAgcmVzdWx0ID0gcmVwbGFjZShyZXN1bHQsIlZSQUNIWSIsIkJSRVZFIik7CisgICAgICAgIHJlc3VsdCA9IHJlcGxhY2UocmVzdWx0LCJWRVJUSUNBTCBMSU5FIEFCT1ZFIiwiVE9OT1MiKTsKKyAgICAgICAgcmVzdWx0ID0gcmVwbGFjZShyZXN1bHQsIlBTSUxJIiwiU01PT1RIIik7CisgICAgICAgIHJlc3VsdCA9IHJlcGxhY2UocmVzdWx0LCJEQVNJQSIsIlJPVUdIIik7CisgICAgICAgIHJlc3VsdCA9IHJlcGxhY2UocmVzdWx0LCJDT01NQSBBQk9WRSIsIlNNT09USCIpOworICAgICAgICByZXN1bHQgPSByZXBsYWNlKHJlc3VsdCwiUkVWRVJTRUQgQ09NTUEgQUJPVkUiLCJST1VHSCIpOworICAgICAgICByZXN1bHQgPSByZXBsYWNlKHJlc3VsdCwiWVBPR0VHUkFNTUVOSSIsIklPVEEtU1VCIik7CisgICAgICAgIHJlc3VsdCA9IHJlcGxhY2UocmVzdWx0LCJQUk9TR0VHUkFNTUVOSSIsIklPVEEtQUQiKTsKKyAgICAgICAgcmVzdWx0ID0gcmVwbGFjZShyZXN1bHQsIkRJQUxZVElLQSIsIkRJQUVSRVNJUyIpOworICAgICAgICByZXN1bHQgPSByZXBsYWNlKHJlc3VsdCwiUEVSSVNQT01FTkkiLCJDSVJDVU1GTEVYIik7CisgICAgICAgIHJlc3VsdCA9IHJlcGxhY2UocmVzdWx0LCJWT0lDRUQgU09VTkQgTUFSSyIsIlZPSUNFRCBTSUdOIik7CisgICAgICAgIHJlc3VsdCA9IHJlcGxhY2UocmVzdWx0LCJQUk9MT05HRUQgU09VTkQgTUFSSyIsIlZPSUNFRCBTSUdOIik7CisgICAgICAgIHJlc3VsdCA9IHJlcGxhY2UocmVzdWx0LCJLQVRBS0FOQS1ISVJBR0FOQSIsIktBTkEiKTsKKyAgICAgICAgcmVzdWx0ID0gcmVwbGFjZShyZXN1bHQsIkNPTVBBVElCSUxJVFkgSURFT0dSQVBILSIsIiIpOworICAgICAgICByZXN1bHQgPSByZXBsYWNlKHJlc3VsdCwiQ0hPU0VPTkciLCJJTklUSUFMIik7CisgICAgICAgIHJlc3VsdCA9IHJlcGxhY2UocmVzdWx0LCJKVU5HU0VPTkciLCJNRURJQUwiKTsKKyAgICAgICAgcmVzdWx0ID0gcmVwbGFjZShyZXN1bHQsIkpPTkdTRU9ORyIsIkZJTkFMIik7CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdC5zdWJzdHJpbmcoMCwxKQorICAgICAgICAgICsgcmVzdWx0LnN1YnN0cmluZygxLHJlc3VsdC5sZW5ndGgoKSkudG9Mb3dlckNhc2UoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIHJlcGxhY2UoU3RyaW5nIHNvdXJjZSwKKyAgICAgIFN0cmluZyByZXBsYWNlZSwgU3RyaW5nIHJlcGxhY2VyKSB7CisgICAgICAgIGludCBwID0gc291cmNlLmluZGV4T2YocmVwbGFjZWUpOworICAgICAgICBpZiAocCA9PSAtMSkgcmV0dXJuIHNvdXJjZTsKKyAgICAgICAgcmV0dXJuIHNvdXJjZS5zdWJzdHJpbmcoMCxwKQorICAgICAgICAgICsgcmVwbGFjZXIKKyAgICAgICAgICArIHNvdXJjZS5zdWJzdHJpbmcocCtyZXBsYWNlZS5sZW5ndGgoKSxzb3VyY2UubGVuZ3RoKCkpOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGlzQ0NTKFN0cmluZyBzKSB7CisgICAgICAgIGlmIChzLmxlbmd0aCgpIDwgMikgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoaXNNYXJrKHMuY2hhckF0KDApKSkgcmV0dXJuIGZhbHNlOworICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IHMubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgaWYgKCFpc01hcmsocy5jaGFyQXQoaSkpKSByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLy8gY29tYmluaW5nIGJhc2Ugc2VxdWVuY2UgOj0gPGNhdF96ZXJvPisgPGNhdF9wb3M+KgorICAgIHB1YmxpYyBib29sZWFuIGlzQ0JTKFN0cmluZyBzKSB7CisgICAgICAgIGlmIChzLmxlbmd0aCgpID09IDApIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKGdldENhbm9uaWNhbENsYXNzKHMuY2hhckF0KDApKSAhPSAwKSByZXR1cm4gZmFsc2U7CisgICAgICAgIGJvb2xlYW4gZ290R3JlYXRlciA9IGZhbHNlOworICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IHMubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgaWYgKGdldENhbm9uaWNhbENsYXNzKHMuY2hhckF0KGkpKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKGdvdEdyZWF0ZXIpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZ290R3JlYXRlciA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaGFzQ2Fub25pY2FsRGVjb21wb3NpdGlvbihjaGFyIGNoKSB7CisgICAgICAgIFN0cmluZyBkZWNvbXAgPSBnZXREZWNvbXBvc2l0aW9uKGNoKTsKKyAgICAgICAgcmV0dXJuIChkZWNvbXAubGVuZ3RoKCkgIT0gMCAmJiBkZWNvbXAuaW5kZXhPZignPCcpID09IC0xKTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBoYXNDb21wYXRpYmlsaXR5RGVjb21wb3NpdGlvbihjaGFyIGNoKSB7CisgICAgICAgIFN0cmluZyBkZWNvbXAgPSBnZXREZWNvbXBvc2l0aW9uKGNoKTsKKyAgICAgICAgcmV0dXJuIChkZWNvbXAubGVuZ3RoKCkgIT0gMCAmJiBkZWNvbXAuaW5kZXhPZignPCcpICE9IC0xKTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBpc0VxdWl2YWxlbnQoCisgICAgICBTdHJpbmcgYSwgU3RyaW5nIGIsIGJvb2xlYW4gY2Fub25pY2FsKSB7CisgICAgICAgIHJldHVybiBnZXRGdWxsRGVjb21wb3NpdGlvbihhLCBjYW5vbmljYWwpLmVxdWFscygKKyAgICAgICAgICBnZXRGdWxsRGVjb21wb3NpdGlvbihiLCBjYW5vbmljYWwpKTsKKyAgICB9CisKKyAgICAvLyB1c2UgdmVyeSBkdW1iIGFsZ29yaXRobS4gRG9uJ3QgbmVlZCBsb3dlciBvcmRlciBvbmUuCisKKyAgICBwdWJsaWMgU3RyaW5nIGdldEZ1bGxEZWNvbXBvc2l0aW9uKAorICAgICAgU3RyaW5nIHMsIGJvb2xlYW4gY2Fub25pY2FsKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBvdXRwdXQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBnZXRGdWxsRGVjb21wMihzLmNoYXJBdChpKSxjYW5vbmljYWwsb3V0cHV0KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZml4Q2Fub25pY2FsKG91dHB1dCkudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIGdldEZ1bGxEZWNvbXBvc2l0aW9uKAorICAgICAgY2hhciBjaCwgYm9vbGVhbiBjYW5vbmljYWwsIFN0cmluZ0J1ZmZlciBvdXRwdXQpIHsKKworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gZ2V0RnVsbERlY29tcDIoY2gsY2Fub25pY2FsLG91dHB1dCk7CisgICAgICAgIHJldHVybiBmaXhDYW5vbmljYWwocmVzdWx0KTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldEZ1bGxEZWNvbXBvc2l0aW9uKAorICAgICAgY2hhciBjaCwgYm9vbGVhbiBjYW5vbmljYWwpIHsKKyAgICAgICAgcmV0dXJuIGdldEZ1bGxEZWNvbXBvc2l0aW9uKGNoLCBjYW5vbmljYWwsIG5ldyBTdHJpbmdCdWZmZXIoKSkudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHaXZlbiBhIGRlY29tcG9zZWQgc3RyaW5nIG9mIGNoYXJhY3RlcnMsIHB1dCBpdCBpbiBjYW5vbmljYWwKKyAgICAgKiBvcmRlciBieSBmaW5kaW5nIGFuZCBwcm9jZXNzaW5nIGFsbCBleGNoYW5nZWFibGUgcGFpcnMuCisgICAgICovCisgICAgcHVibGljIFN0cmluZ0J1ZmZlciBmaXhDYW5vbmljYWwoU3RyaW5nQnVmZmVyIHRhcmdldCkgeworICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IHRhcmdldC5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGNoID0gdGFyZ2V0LmNoYXJBdChpKTsKKyAgICAgICAgICAgIHNob3J0IGNhbkNsYXNzID0gZ2V0Q2Fub25pY2FsQ2xhc3MoY2gpOworICAgICAgICAgICAgY2hhciBjaFByZXYgPSB0YXJnZXQuY2hhckF0KGktMSk7CisgICAgICAgICAgICBzaG9ydCBjYW5DbGFzc1ByZXYgPSBnZXRDYW5vbmljYWxDbGFzcyhjaFByZXYpOworICAgICAgICAgICAgaWYgKGNhbkNsYXNzICE9IDAgJiYgY2FuQ2xhc3MgPCBjYW5DbGFzc1ByZXYpIHsKKyAgICAgICAgICAgICAgICB0YXJnZXQuc2V0Q2hhckF0KGktMSwgY2gpOworICAgICAgICAgICAgICAgIHRhcmdldC5zZXRDaGFyQXQoaSwgY2hQcmV2KTsKKyAgICAgICAgICAgICAgICBpZiAoaSA+IDEpIGkgLT0gMjsgLy8gYmFja3VwICgtMSB0byBjb21wZW5zYXRlIGZvciBsb29wKQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBmaXhDYW5vbmljYWwoU3RyaW5nIHNvdXJjZSkgeworICAgICAgICByZXR1cm4gZml4Q2Fub25pY2FsKG5ldyBTdHJpbmdCdWZmZXIoc291cmNlKSkudG9TdHJpbmcoKTsKKyAgICB9CisKKworICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gICAgICAgICAgICAgICAgICBQUklWQVRFUworICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICBzdGF0aWMgY2xhc3MgQ2hhckRhdGEgeworICAgICAgICBwdWJsaWMgQ2hhckRhdGEoKSB7CisgICAgICAgIH07CisKKyAgICAgICAgU3RyaW5nIG5hbWUgPSAiIjsKKyAgICAgICAgU3RyaW5nIGRlY29tcG9zaXRpb24gPSAiIjsKKyAgICAgICAgU3RyaW5nIG5hbWUxMCA9ICIiOworICAgICAgICBTdHJpbmcgY29tbWVudCA9ICIiOworCisgICAgICAgIGZsb2F0IG51bWVyaWMgPSBGbG9hdC5NSU5fVkFMVUU7CisKKyAgICAgICAgc2hvcnQgY2Fub25pY2FsID0gMDsKKyAgICAgICAgc2hvcnQgZGVjaW1hbCA9IFNob3J0Lk1JTl9WQUxVRTsKKyAgICAgICAgc2hvcnQgZGlnaXQgPSBTaG9ydC5NSU5fVkFMVUU7CisKKyAgICAgICAgY2hhciB1cHBlcmNhc2U7CisgICAgICAgIGNoYXIgbG93ZXJjYXNlOworICAgICAgICBjaGFyIHRpdGxlY2FzZTsKKworICAgICAgICBieXRlIGNhdGVnb3J5OworICAgICAgICBieXRlIGJpZGkgPSAwOworCisgICAgICAgIGJvb2xlYW4gbWlycm9yZWQ7CisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIENoYXJEYXRhIFVOQVNTSUdORURfSU5GTyA9IG5ldyBDaGFyRGF0YSgpOworICAgIHByaXZhdGUgc3RhdGljIGNoYXIgY2FjaGVkQ2hhciA9IDB4RkZGRjsKKworICAgIHByaXZhdGUgQ2hhckRhdGEgZ2V0SW5mbyhjaGFyIGNoKSB7CisgICAgICAgIGlmIChjaCA9PSBjYWNoZWRDaGFyKSByZXR1cm4gVU5BU1NJR05FRF9JTkZPOworICAgICAgICAvLyByZW1hcCBzcGVjaWFsIHJhbmdlcworICAgICAgICBpZiAoY2ggPj0gMHg0RTAwICYmIGNoIDwgMHhGOTAwKSB7CisgICAgICAgICAgICBpZiAoY2ggPD0gMHg5RkE1KSBjaCA9IDB4NEUwMDsKKyAgICAgICAgICAgIGVsc2UgaWYgKGNoID49IDB4QUMwMCAmJiBjaCA8PSAweEQ3QTMpIGNoID0gMHhBQzAwOworICAgICAgICAgICAgZWxzZSBpZiAoY2ggPj0gMHhEODAwICYmIGNoIDw9IDB4REZGRikgY2ggPSAweEQ4MDA7CisgICAgICAgICAgICBlbHNlIGlmIChjaCA+PSAweEUwMDApIGNoID0gMHhFMDAwOworICAgICAgICB9CisgICAgICAgIE9iamVjdCB2YWx1ZSA9IGNhY2hlW2NoXTsKKyAgICAgICAgQ2hhckRhdGEgcmVzdWx0OworICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkgeworICAgICAgICAgICAgcmVzdWx0ID0gVU5BU1NJR05FRF9JTkZPOworICAgICAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgU3RyaW5nKSB7CisgICAgICAgICAgICByZXN1bHQgPSB1cGRhdGVDYWNoZSgoU3RyaW5nKXZhbHVlKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IChDaGFyRGF0YSl2YWx1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHByaXZhdGUgU3RyaW5nQnVmZmVyIGdldEZ1bGxEZWNvbXAyKAorICAgICAgY2hhciBjaCwgYm9vbGVhbiBjYW5vbmljYWwsIFN0cmluZ0J1ZmZlciBvdXRwdXQpIHsKKworICAgICAgICBTdHJpbmcgZGVjb21wID0gZ2V0RGVjb21wb3NpdGlvbihjaCk7CisgICAgICAgIGlmIChkZWNvbXAubGVuZ3RoKCkgPT0gMAorICAgICAgICAgIHx8IChjYW5vbmljYWwgJiYgZGVjb21wLmluZGV4T2YoJzwnKSAhPSAtMSkpIHsKKyAgICAgICAgICAgIG91dHB1dC5hcHBlbmQoY2gpOworICAgICAgICAgICAgcmV0dXJuIG91dHB1dDsKKyAgICAgICAgfQorICAgICAgICBib29sZWFuIGluQnJhY2tldHMgPSBmYWxzZTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkZWNvbXAubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgY2hhciBjID0gZGVjb21wLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmIChjID09ICc8JykgaW5CcmFja2V0cyA9IHRydWU7CisgICAgICAgICAgICBlbHNlIGlmIChjID09ICc+JykgaW5CcmFja2V0cyA9IGZhbHNlOworICAgICAgICAgICAgZWxzZSBpZiAoaW5CcmFja2V0cykgOyAvLyBza2lwCisgICAgICAgICAgICBlbHNlIGlmIChjID09ICcgJykgOyAvLyBza2lwCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdGVtcFN0cmluZyA9IGRlY29tcC5zdWJzdHJpbmcoaSxpKzQpOworICAgICAgICAgICAgICAgIGNoYXIgdGVtcCA9IChjaGFyKUludGVnZXIucGFyc2VJbnQodGVtcFN0cmluZywxNik7CisgICAgICAgICAgICAgICAgZ2V0RnVsbERlY29tcG9zaXRpb24odGVtcCxjYW5vbmljYWwsb3V0cHV0KTsKKyAgICAgICAgICAgICAgICBpKz0gMzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gb3V0cHV0OworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGVjb21wb3NpdGlvbkNoYXJzKGNoYXIgY2gpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIG91dHB1dCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgU3RyaW5nIGRlY29tcCA9IGdldERlY29tcG9zaXRpb24oY2gpOworICAgICAgICBpZiAoZGVjb21wLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIG91dHB1dC5hcHBlbmQoY2gpOworICAgICAgICAgICAgcmV0dXJuIG91dHB1dC50b1N0cmluZygpOworICAgICAgICB9CisgICAgICAgIGJvb2xlYW4gaW5CcmFja2V0cyA9IGZhbHNlOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRlY29tcC5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGMgPSBkZWNvbXAuY2hhckF0KGkpOworICAgICAgICAgICAgaWYgKGMgPT0gJzwnKSBpbkJyYWNrZXRzID0gdHJ1ZTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGMgPT0gJz4nKSBpbkJyYWNrZXRzID0gZmFsc2U7CisgICAgICAgICAgICBlbHNlIGlmIChpbkJyYWNrZXRzKSA7IC8vIHNraXAKKyAgICAgICAgICAgIGVsc2UgaWYgKGMgPT0gJyAnKSA7IC8vIHNraXAKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIFN0cmluZyB0ZW1wU3RyaW5nID0gZGVjb21wLnN1YnN0cmluZyhpLGkrNCk7CisgICAgICAgICAgICAgICAgY2hhciB0ZW1wID0gKGNoYXIpSW50ZWdlci5wYXJzZUludCh0ZW1wU3RyaW5nLDE2KTsKKyAgICAgICAgICAgICAgICBvdXRwdXQuYXBwZW5kKHRlbXApOworICAgICAgICAgICAgICAgIGkrPSAzOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBvdXRwdXQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgVUluZm8oU3RyaW5nIGZpbGVOYW1lLCBTdHJpbmcgY29tcG9zZUV4Y2x1ZGVGaWxlTmFtZSkgeworICAgICAgICAvLyBub3QgdXNlZCBsb25nIHN0YXJ0VGltZSxlbmRUaW1lOworCisgICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGlucHV0ID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIGxpbmUgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgaW5wdXQgPSBuZXcgQnVmZmVyZWRSZWFkZXIobmV3IEZpbGVSZWFkZXIoZmlsZU5hbWUpLDY0KjEwMjQpOworICAgICAgICAgICAgZm9yIChpbnQgY291bnQgPSAwOzsrK2NvdW50KSB7CisgICAgICAgICAgICAgICAgbGluZSA9IGlucHV0LnJlYWRMaW5lKCk7CisgICAgICAgICAgICAgICAgaWYgKGxpbmUgPT0gbnVsbCkgYnJlYWs7CisgICAgICAgICAgICAgICAgaWYgKGxpbmUubGVuZ3RoKCkgPT0gMCkgY29udGludWU7CisgICAgICAgICAgICAgICAgY2hhciBjaCA9IGNoYXJGcm9tKGxpbmUuc3Vic3RyaW5nKDAsNCkpOworICAgICAgICAgICAgICAgIGlmIChERUJVRykgaWYgKChjb3VudCAlIDEwMCkgPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJbIiArIGNvdW50ICsgIiwiICsgVXRpbGl0eS5oZXgoY2gpICsgJ10nKTsKKyAgICAgICAgICAgICAgICBjYWNoZVtjaF0gPSBsaW5lOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBSZWFkIGNvbXBvc2l0aW9uIGV4bHVzaW9ucworICAgICAgICAgICAgaW5wdXQgPSBuZXcgQnVmZmVyZWRSZWFkZXIobmV3IEZpbGVSZWFkZXIoY29tcG9zZUV4Y2x1ZGVGaWxlTmFtZSksNjQqMTAyNCk7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgY2UgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgbGluZSA9IGlucHV0LnJlYWRMaW5lKCk7CisgICAgICAgICAgICAgICAgaWYgKGxpbmUgPT0gbnVsbCkgYnJlYWs7CisgICAgICAgICAgICAgICAgaWYgKGxpbmUubGVuZ3RoKCkgPT0gMCB8fAorICAgICAgICAgICAgICAgICAgICBDaGFyYWN0ZXIuZGlnaXQobGluZS5jaGFyQXQoMCksIDE2KSA8IDApIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGNlLmFwcGVuZChjaGFyRnJvbShsaW5lLnN1YnN0cmluZygwLDQpKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb21wb3NlRXhjbHVkZSA9IGNlLnRvU3RyaW5nKCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpbnB1dC5jbG9zZSgpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGV4MikgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZXgucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJDb3VsZG4ndCByZWFkIGZpbGUgIgorICAgICAgICAgICAgICArIGV4LmdldENsYXNzKCkuZ2V0TmFtZSgpICsgIiAiICsgZXguZ2V0TWVzc2FnZSgpCisgICAgICAgICAgICAgICsgIiBsaW5lID0gIiArIGxpbmUKKyAgICAgICAgICAgICAgKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBVSW5mbygpIHsKKyAgICAgICAgIHRoaXMoCisgICAgICAgIAlTeXN0ZW0uZ2V0UHJvcGVydHkoIklDVURhdGFQYXRoIik9PW51bGwgPyAgInNyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL1VuaWNvZGVEYXRhLTMuMC4wLnR4dCIgOiBTeXN0ZW0uZ2V0UHJvcGVydHkoIklDVURhdGFQYXRoIikgKyAgIi91bmljb2RlL1VuaWNvZGVEYXRhLTMuMC4wLnR4dCIsCisgICAgICAgICAgICBTeXN0ZW0uZ2V0UHJvcGVydHkoIklDVURhdGFQYXRoIik9PW51bGwgPyAic3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvQ29tcG9zaXRpb25FeGNsdXNpb25zLTEudHh0IiA6IFN5c3RlbS5nZXRQcm9wZXJ0eSgiSUNVRGF0YVBhdGgiKSArICAiL3VuaWNvZGUvQ29tcG9zaXRpb25FeGNsdXNpb25zLTEudHh0IiAKKyAgICAgICAgICAgICk7CisgICAgfQorCisgICAgLyoKKyAgMCBDb2RlIHZhbHVlIGluIDQtZGlnaXQgaGV4YWRlY2ltYWwgZm9ybWF0LgorICAxIFVuaWNvZGUgMi4xIENoYXJhY3RlciBOYW1lLiBUaGVzZSBuYW1lcyBtYXRjaCBleGFjdGx5IHRoZQorICAyIEdlbmVyYWwgQ2F0ZWdvcnkuIFRoaXMgaXMgYSB1c2VmdWwgYnJlYWtkb3duIGludG8gdmFyaW91cyAiY2hhcmFjdGVyCisgIDMgQ2Fub25pY2FsIENvbWJpbmluZyBDbGFzc2VzLiBUaGUgY2xhc3NlcyB1c2VkIGZvciB0aGUKKyAgNCBCaWRpcmVjdGlvbmFsIENhdGVnb3J5LiBTZWUgdGhlIGxpc3QgYmVsb3cgZm9yIGFuIGV4cGxhbmF0aW9uIG9mIHRoZQorICA1IENoYXJhY3RlciBEZWNvbXBvc2l0aW9uLiBJbiB0aGUgVW5pY29kZSBTdGFuZGFyZCwgbm90IGFsbCBvZgorICA2IERlY2ltYWwgZGlnaXQgdmFsdWUuIFRoaXMgaXMgYSBudW1lcmljIGZpZWxkLiBJZiB0aGUgY2hhcmFjdGVyCisgIDcgRGlnaXQgdmFsdWUuIFRoaXMgaXMgYSBudW1lcmljIGZpZWxkLiBJZiB0aGUgY2hhcmFjdGVyIHJlcHJlc2VudHMgYQorICA4IE51bWVyaWMgdmFsdWUuIFRoaXMgaXMgYSBudW1lcmljIGZpZWxkLiBJZiB0aGUgY2hhcmFjdGVyIGhhcyB0aGUKKyAgOSBJZiB0aGUgY2hhcmFjdGVycyBoYXMgYmVlbiBpZGVudGlmaWVkIGFzIGEgIm1pcnJvcmVkIiBjaGFyYWN0ZXIgaW4KKyAxMCBVbmljb2RlIDEuMCBOYW1lLiBUaGlzIGlzIHRoZSBvbGQgbmFtZSBhcyBwdWJsaXNoZWQgaW4gVW5pY29kZSAxLjAuCisgMTEgMTA2NDYgQ29tbWVudCBmaWVsZC4gVGhpcyBmaWVsZCBpcyBpbmZvcm1hdGl2ZS4KKyAxMiBVcHBlciBjYXNlIGVxdWl2YWxlbnQgbWFwcGluZy4gSWYgYSBjaGFyYWN0ZXIgaXMgcGFydCBvZiBhbgorIDEzIExvd2VyIGNhc2UgZXF1aXZhbGVudCBtYXBwaW5nLiBTaW1pbGFyIHRvIDEyLiBUaGlzIGZpZWxkIGlzIGluZm9ybWF0aXZlLgorIDE0IFRpdGxlIGNhc2UgZXF1aXZhbGVudCBtYXBwaW5nLiBTaW1pbGFyIHRvIDEyLiBUaGlzIGZpZWxkIGlzIGluZm9ybWF0aXZlLgorICAgICovCisKKyAgICBwcml2YXRlIENoYXJEYXRhIHVwZGF0ZUNhY2hlKFN0cmluZyBsaW5lKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBTdHJpbmdbXSBwYXJ0cyA9IG5ldyBTdHJpbmdbMzBdOworICAgICAgICAgICAgVXRpbGl0eS5zcGxpdChsaW5lLCc7JyxwYXJ0cyk7CisgICAgICAgICAgICBDaGFyRGF0YSBpbmZvID0gbmV3IENoYXJEYXRhKCk7CisgICAgICAgICAgICBjaGFyIGNoID0gY2hhckZyb20ocGFydHNbMF0pOworICAgICAgICAgICAgaW5mby5uYW1lID0gcGFydHNbMV07CisgICAgICAgICAgICBpbmZvLmNhdGVnb3J5ID0gKGJ5dGUpVXRpbGl0eS5sb29rdXAocGFydHNbMl0sIENBVEVHT1JZX1RBQkxFKTsKKyAgICAgICAgICAgIGluZm8uY2Fub25pY2FsID0gc2hvcnRGcm9tKHBhcnRzWzNdKTsKKyAgICAgICAgICAgIGluZm8uYmlkaSA9IChieXRlKVV0aWxpdHkubG9va3VwKHBhcnRzWzRdLCBCSURJX1RBQkxFKTsKKyAgICAgICAgICAgIGluZm8uZGVjb21wb3NpdGlvbiA9IHBhcnRzWzVdOworICAgICAgICAgICAgaW5mby5kZWNpbWFsID0gc2hvcnRGcm9tKHBhcnRzWzZdKTsKKyAgICAgICAgICAgIGluZm8uZGlnaXQgPSBzaG9ydEZyb20ocGFydHNbN10pOworICAgICAgICAgICAgaW5mby5udW1lcmljID0gZmxvYXRGcm9tKHBhcnRzWzhdKTsKKyAgICAgICAgICAgIGluZm8ubWlycm9yZWQgPSBjaGFyRnJvbShwYXJ0c1s5XSkgPT0gJ1knOworICAgICAgICAgICAgaW5mby5uYW1lMTAgPSBwYXJ0c1sxMF07CisgICAgICAgICAgICBpbmZvLmNvbW1lbnQgPSBwYXJ0c1sxMV07CisgICAgICAgICAgICBpbmZvLnVwcGVyY2FzZSA9IGNoYXJGcm9tKHBhcnRzWzEyXSk7CisgICAgICAgICAgICBpZiAoaW5mby51cHBlcmNhc2UgPT0gMCkgaW5mby51cHBlcmNhc2UgPSBjaDsKKyAgICAgICAgICAgIGluZm8ubG93ZXJjYXNlID0gY2hhckZyb20ocGFydHNbMTNdKTsKKyAgICAgICAgICAgIGlmIChpbmZvLmxvd2VyY2FzZSA9PSAwKSBpbmZvLmxvd2VyY2FzZSA9IGNoOworICAgICAgICAgICAgaW5mby50aXRsZWNhc2UgPSBjaGFyRnJvbShwYXJ0c1sxNF0pOworICAgICAgICAgICAgaWYgKGluZm8udGl0bGVjYXNlID09IDApIGluZm8udGl0bGVjYXNlID0gaW5mby51cHBlcmNhc2U7CisgICAgICAgICAgICBTdHJpbmcgdHJpYWwgPSBVdGlsaXR5LmhleChjaCkgKyAiOyIgKyBpbmZvOworICAgICAgICAgICAgaWYgKERFQlVHKSBpZiAoIXRyaWFsLmVxdWFscyhsaW5lKSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRGlmZmVyZW5jZSBiZXR3ZWVuOiIpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihsaW5lKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4odHJpYWwpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FjaGVbY2hdID0gaW5mbzsKKyAgICAgICAgICAgIHJldHVybiBpbmZvOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChOdW1iZXJGb3JtYXRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJ1cGRhdGVDYWNoZTogZXJyb3IgcGFyc2luZyAnIiArIGxpbmUgKyAiJyIpOworICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIENoYXJEYXRhIHR5cGVJbmZvID0gbmV3IENoYXJEYXRhKCk7CisKKyAgICBwcml2YXRlIGJvb2xlYW4gbGF0aW4xKGNoYXIgYykgeworICAgICAgICByZXR1cm4gKChjID49IDIwICYmIGMgPD0gMHg3RikgfHwgYyA+IDB4QTApOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIFlOX1RBQkxFID0geyJOIiwgIlkifTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIENBVEVHT1JZX1RBQkxFID0geworICAgICAgICAiQ24iLCAvLyA9IE90aGVyLCBOb3QgQXNzaWduZWQKKworICAgICAgICAiTHUiLCAvLyA9IExldHRlciwgVXBwZXJjYXNlCisgICAgICAgICJMbCIsIC8vID0gTGV0dGVyLCBMb3dlcmNhc2UKKyAgICAgICAgIkx0IiwgLy8gPSBMZXR0ZXIsIFRpdGxlY2FzZQorICAgICAgICAiTG0iLCAvLyA9IExldHRlciwgTW9kaWZpZXIKKyAgICAgICAgIkxvIiwgLy8gPSBMZXR0ZXIsIE90aGVyCisKKyAgICAgICAgIk1uIiwgLy8gPSBNYXJrLCBOb24tU3BhY2luZworICAgICAgICAiTWUiLCAvLyA9IE1hcmssIEVuY2xvc2luZworICAgICAgICAiTWMiLCAvLyA9IE1hcmssIFNwYWNpbmcgQ29tYmluaW5nCisKKyAgICAgICAgIk5kIiwgLy8gPSBOdW1iZXIsIERlY2ltYWwgRGlnaXQKKyAgICAgICAgIk5sIiwgLy8gPSBOdW1iZXIsIExldHRlcgorICAgICAgICAiTm8iLCAvLyA9IE51bWJlciwgT3RoZXIKKworICAgICAgICAiWnMiLCAvLyA9IFNlcGFyYXRvciwgU3BhY2UKKyAgICAgICAgIlpsIiwgLy8gPSBTZXBhcmF0b3IsIExpbmUKKyAgICAgICAgIlpwIiwgLy8gPSBTZXBhcmF0b3IsIFBhcmFncmFwaAorCisgICAgICAgICJDYyIsIC8vID0gT3RoZXIsIENvbnRyb2wKKyAgICAgICAgIkNmIiwgLy8gPSBPdGhlciwgRm9ybWF0CisgICAgICAgICIiLCAgIC8vIHVudXNlZAorICAgICAgICAiQ28iLCAvLyA9IE90aGVyLCBQcml2YXRlIFVzZQorICAgICAgICAiQ3MiLCAvLyA9IE90aGVyLCBTdXJyb2dhdGUKKworCisgICAgICAgICJQZCIsIC8vID0gUHVuY3R1YXRpb24sIERhc2gKKyAgICAgICAgIlBzIiwgLy8gPSBQdW5jdHVhdGlvbiwgT3BlbgorICAgICAgICAiUGUiLCAvLyA9IFB1bmN0dWF0aW9uLCBDbG9zZQorICAgICAgICAiUGMiLCAvLyA9IFB1bmN0dWF0aW9uLCBDb25uZWN0b3IKKyAgICAgICAgIlBvIiwgLy8gPSBQdW5jdHVhdGlvbiwgT3RoZXIKKworICAgICAgICAiU20iLCAvLyA9IFN5bWJvbCwgTWF0aAorICAgICAgICAiU2MiLCAvLyA9IFN5bWJvbCwgQ3VycmVuY3kKKyAgICAgICAgIlNrIiwgLy8gPSBTeW1ib2wsIE1vZGlmaWVyCisgICAgICAgICJTbyIsIC8vID0gU3ltYm9sLCBPdGhlcgorCisgICAgICAgICJQaSIsIC8vID0gUHVuY3R1YXRpb24sIEluaXRpYWwgcXVvdGUgKG1heSBiZWhhdmUgbGlrZSBQcyBvciBQZSBkZXBlbmRpbmcgb24gdXNhZ2UpCisgICAgICAgICJQZiIsIC8vID0gUHVuY3R1YXRpb24sIEZpbmFsIHF1b3RlIChtYXkgYmVoYXZlIGxpa2UgUHMgb3IgUGUgZGVwZW5kaW5nb24gdXNhZ2UpCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdIEJJRElfVEFCTEUgPSB7CisgICAgICAgICJMIiwgLy8gTGVmdC1SaWdodDsgTW9zdCBhbHBoYWJldGljLCBzeWxsYWJpYywgYW5kIGxvZ29ncmFwaGljIGNoYXJhY3RlcnMgKGUuZy4sIENKSyBpZGVvZ3JhcGhzKQorICAgICAgICAiUiIsIC8vIFJpZ2h0LUxlZnQ7IEFyYWJpYywgSGVicmV3LCBhbmQgcHVuY3R1YXRpb24gc3BlY2lmaWMgdG8gdGhvc2Ugc2NyaXB0cworICAgICAgICAiRU4iLCAvLyAgICBFdXJvcGVhbiBOdW1iZXIKKyAgICAgICAgIkVTIiwgLy8gICAgRXVyb3BlYW4gTnVtYmVyIFNlcGFyYXRvcgorICAgICAgICAiRVQiLCAvLyAgICBFdXJvcGVhbiBOdW1iZXIgVGVybWluYXRvcgorICAgICAgICAiQU4iLCAvLyAgICBBcmFiaWMgTnVtYmVyCisgICAgICAgICJDUyIsIC8vICAgIENvbW1vbiBOdW1iZXIgU2VwYXJhdG9yCisgICAgICAgICJCIiwgLy8gQmxvY2sgU2VwYXJhdG9yCisgICAgICAgICJTIiwgLy8gU2VnbWVudCBTZXBhcmF0b3IKKyAgICAgICAgIldTIiwgLy8gICAgV2hpdGVzcGFjZQorICAgICAgICAiT04iIC8vIE90aGVyIE5ldXRyYWxzIDsgQWxsIG90aGVyIGNoYXJhY3RlcnM6IHB1bmN0dWF0aW9uLCBzeW1ib2xzCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIHNob3J0IHNob3J0RnJvbShTdHJpbmcgcCkgeworICAgICAgICBpZiAocC5sZW5ndGgoKSA9PSAwKSByZXR1cm4gU2hvcnQuTUlOX1ZBTFVFOworICAgICAgICByZXR1cm4gU2hvcnQucGFyc2VTaG9ydChwKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmbG9hdCBmbG9hdEZyb20oU3RyaW5nIHApIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGlmIChwLmxlbmd0aCgpID09IDApIHJldHVybiBGbG9hdC5NSU5fVkFMVUU7CisgICAgICAgICAgICBpbnQgZnJhY3QgPSBwLmluZGV4T2YoJy8nKTsKKyAgICAgICAgICAgIGlmIChmcmFjdCA9PSAtMSkgcmV0dXJuIEZsb2F0LnZhbHVlT2YocCkuZmxvYXRWYWx1ZSgpOworICAgICAgICAgICAgU3RyaW5nIHEgPSBwLnN1YnN0cmluZygwLGZyYWN0KTsKKyAgICAgICAgICAgIGZsb2F0IG51bSA9IDA7CisgICAgICAgICAgICBpZiAocS5sZW5ndGgoKSAhPSAwKSBudW0gPSBJbnRlZ2VyLnBhcnNlSW50KHEpOworICAgICAgICAgICAgcCA9IHAuc3Vic3RyaW5nKGZyYWN0KzEscC5sZW5ndGgoKSk7CisgICAgICAgICAgICBmbG9hdCBkZW4gPSAwOworICAgICAgICAgICAgaWYgKHAubGVuZ3RoKCkgIT0gMCkgZGVuID0gSW50ZWdlci5wYXJzZUludChwKTsKKyAgICAgICAgICAgIHJldHVybiBudW0vZGVuOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChOdW1iZXJGb3JtYXRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJmbG9hdEZyb206IGVycm9yIHBhcnNpbmcgJyIgKyBwICsgIiciKTsKKyAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyIGNoYXJGcm9tKFN0cmluZyBwKSB7CisgICAgICAgIGlmIChwLmxlbmd0aCgpID09IDApIHJldHVybiAnXHUwMDAwJzsKKyAgICAgICAgZWxzZSBpZiAocC5sZW5ndGgoKSA9PSAxKSByZXR1cm4gcC5jaGFyQXQoMCk7CisgICAgICAgIGludCB0ZW1wID0gSW50ZWdlci5wYXJzZUludChwLCAxNik7CisgICAgICAgIGlmICh0ZW1wIDwgMCB8fCB0ZW1wID4gMHhGRkZGKQorICAgICAgICAgICAgdGhyb3cgbmV3IE51bWJlckZvcm1hdEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAiSGV4IGNoYXIgb3V0IG9mIHJhbmdlOiAiICsgcCk7CisgICAgICAgIHJldHVybiAoY2hhcil0ZW1wOworICAgIH0KKworCisgICAgcHJpdmF0ZSBPYmplY3RbXSBjYWNoZSA9IG5ldyBPYmplY3RbNjU1MzZdOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL25vcm1hbGl6ZXIvcGFja2FnZS5odG1sIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL25vcm1hbGl6ZXIvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE4M2MxNTcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbm9ybWFsaXplci9wYWNrYWdlLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMiBGaW5hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisgICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9ub3JtYWxpemVyL0F0dGljL3BhY2thZ2UuaHRtbCx2ICQKKyAgJFJldmlzaW9uOiAxLjEgJAorICAkRGF0ZTogMjAwMC8wMy8xNSAyMTozNTo1MiAkCistLT4KKzwvaGVhZD4KKzxib2R5IGJnY29sb3I9IndoaXRlIj4KK1Rvb2wgdXNlZCB0byByZWJ1aWxkIGRhdGEgdGFibGVzIHVzZWQgYnkgTm9ybWFsaXplci4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvcmJiaS9CdWlsZERpY3Rpb25hcnlGaWxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvcmJiaS9CdWlsZERpY3Rpb25hcnlGaWxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDNjNTQxZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9yYmJpL0J1aWxkRGljdGlvbmFyeUZpbGUuamF2YQpAQCAtMCwwICsxLDg3NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3JiYmkvQnVpbGREaWN0aW9uYXJ5RmlsZS5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzI1IDIyOjQzOjU5ICQgCisgKiAkUmV2aXNpb246IDEuNCAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wucmJiaTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ29tcGFjdEJ5dGVBcnJheTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKKworcHVibGljIGNsYXNzIEJ1aWxkRGljdGlvbmFyeUZpbGUgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pCisgICAgICAgICAgICB0aHJvd3MgRmlsZU5vdEZvdW5kRXhjZXB0aW9uLCBVbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uLCBJT0V4Y2VwdGlvbiB7CisgICAgICAgIFN0cmluZyBmaWxlbmFtZSA9IGFyZ3NbMF07CisgICAgICAgIFN0cmluZyBlbmNvZGluZyA9ICIiOworICAgICAgICBTdHJpbmcgb3V0cHV0RmlsZSA9ICIiOworICAgICAgICBTdHJpbmcgbGlzdGluZ0ZpbGUgPSAiIjsKKworICAgICAgICBpZiAoYXJncy5sZW5ndGggPj0gMikKKyAgICAgICAgICAgIGVuY29kaW5nID0gYXJnc1sxXTsKKworICAgICAgICBpZihhcmdzLmxlbmd0aCA+PSAzKQorICAgICAgICAgICAgb3V0cHV0RmlsZSA9IGFyZ3NbMl07CisKKyAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID49IDQpCisgICAgICAgICAgICBsaXN0aW5nRmlsZSA9IGFyZ3NbM107CisKKyAgICAgICAgQnVpbGREaWN0aW9uYXJ5RmlsZSBkaWN0aW9uYXJ5ID0gbmV3IEJ1aWxkRGljdGlvbmFyeUZpbGUoKTsKKyAgICAgICAgZGljdGlvbmFyeS5idWlsZChmaWxlbmFtZSwgZW5jb2RpbmcpOworCisgICAgICAgIERhdGFPdXRwdXRTdHJlYW0gb3V0ID0gbnVsbDsKKyAgICAgICAgaWYgKG91dHB1dEZpbGUubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgb3V0ID0gbmV3IERhdGFPdXRwdXRTdHJlYW0obmV3IEZpbGVPdXRwdXRTdHJlYW0ob3V0cHV0RmlsZSkpOworICAgICAgICAgICAgZGljdGlvbmFyeS53cml0ZURpY3Rpb25hcnlGaWxlKG91dCk7CisgICAgICAgIH0KKworICAgICAgICBQcmludFdyaXRlciBsaXN0aW5nID0gbnVsbDsKKyAgICAgICAgaWYgKGxpc3RpbmdGaWxlLmxlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgIGxpc3RpbmcgPSBuZXcgUHJpbnRXcml0ZXIobmV3IE91dHB1dFN0cmVhbVdyaXRlcihuZXcgRmlsZU91dHB1dFN0cmVhbShsaXN0aW5nRmlsZSksICJVbmljb2RlTGl0dGxlIikpOworICAgICAgICAgICAgZGljdGlvbmFyeS5wcmludFdvcmRMaXN0KCIiLCAwLCBsaXN0aW5nKTsKKyAgICAgICAgICAgIGxpc3RpbmcuY2xvc2UoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBCdWlsZERpY3Rpb25hcnlGaWxlKCkgeworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGJ1aWxkKFN0cmluZyBmaWxlbmFtZSwgU3RyaW5nIGVuY29kaW5nKQorICAgICAgICAgICAgdGhyb3dzIEZpbGVOb3RGb3VuZEV4Y2VwdGlvbiwgVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbiwgSU9FeGNlcHRpb24geworICAgICAgICBGaWxlSW5wdXRTdHJlYW0gZmlsZSA9IG5ldyBGaWxlSW5wdXRTdHJlYW0oZmlsZW5hbWUpOworICAgICAgICBJbnB1dFN0cmVhbVJlYWRlciBpbjsKKyAgICAgICAgaWYgKGVuY29kaW5nLmxlbmd0aCgpID09IDApCisgICAgICAgICAgICBpbiA9IG5ldyBJbnB1dFN0cmVhbVJlYWRlcihmaWxlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW4gPSBuZXcgSW5wdXRTdHJlYW1SZWFkZXIoZmlsZSwgZW5jb2RpbmcpOworCisgICAgICAgIGJ1aWxkQ29sdW1uTWFwKGluKTsKKworICAgICAgICBmaWxlID0gbmV3IEZpbGVJbnB1dFN0cmVhbShmaWxlbmFtZSk7CisgICAgICAgIGlmIChlbmNvZGluZy5sZW5ndGgoKSA9PSAwKQorICAgICAgICAgICAgaW4gPSBuZXcgSW5wdXRTdHJlYW1SZWFkZXIoZmlsZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGluID0gbmV3IElucHV0U3RyZWFtUmVhZGVyKGZpbGUsIGVuY29kaW5nKTsKKworICAgICAgICBidWlsZFN0YXRlVGFibGUoaW4pOworLy9wcmludFRhYmxlKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYnVpbGRDb2x1bW5NYXAoSW5wdXRTdHJlYW1SZWFkZXIgaW4pIHRocm93cyBJT0V4Y2VwdGlvbiB7CitTeXN0ZW0ub3V0LnByaW50bG4oIkJ1aWxkaW5nIGNvbHVtbiBtYXAuLi4iKTsKKyAgICAgICAgVW5pY29kZVNldCBjaGFyc0luRmlsZSA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIGludCBjID0gaW4ucmVhZCgpOworaW50IHRvdGFsQ2hhcnMgPSAwOworICAgICAgICB3aGlsZSAoYyA+PSAwKSB7CisrK3RvdGFsQ2hhcnM7IGlmICh0b3RhbENoYXJzID4gMCAmJiB0b3RhbENoYXJzICUgNTAwMCA9PSAwKSBTeXN0ZW0ub3V0LnByaW50bG4oIlJlYWQgIiArIHRvdGFsQ2hhcnMgKyAiIGNoYXJhY3RlcnMuLi4iKTsKKyAgICAgICAgICAgIGlmIChjID4gJyAnKQorICAgICAgICAgICAgICAgIGNoYXJzSW5GaWxlLmFkZCgoY2hhciljKTsKKyAgICAgICAgICAgIGMgPSBpbi5yZWFkKCk7CisgICAgICAgIH0KKy8vICAgICAgICBUZXN0LmRlYnVnUHJpbnRsbihjaGFyc0luRmlsZS50b1N0cmluZygpKTsKKworICAgICAgICBTdHJpbmdCdWZmZXIgdGVtcFJldmVyc2VNYXAgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIHRlbXBSZXZlcnNlTWFwLmFwcGVuZCgnICcpOworCisgICAgICAgIGNvbHVtbk1hcCA9IG5ldyBDb21wYWN0Qnl0ZUFycmF5KCk7CisgICAgICAgIGludCBuID0gY2hhcnNJbkZpbGUuZ2V0UmFuZ2VDb3VudCgpOworICAgICAgICBieXRlIHAgPSAxOworICAgICAgICBmb3IgKGludCBpPTA7IGk8bjsgKytpKSB7CisgICAgICAgICAgICBjaGFyIHN0YXJ0ID0gKGNoYXIpIGNoYXJzSW5GaWxlLmdldFJhbmdlU3RhcnQoaSk7CisgICAgICAgICAgICBjaGFyIGVuZCA9IChjaGFyKSBjaGFyc0luRmlsZS5nZXRSYW5nZUVuZChpKTsKKyAgICAgICAgICAgIGZvciAoY2hhciBjaCA9IHN0YXJ0OyBjaCA8PSBlbmQ7IGNoKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoY29sdW1uTWFwLmVsZW1lbnRBdChDaGFyYWN0ZXIudG9Mb3dlckNhc2UoY2gpKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbHVtbk1hcC5zZXRFbGVtZW50QXQoQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGNoKSwgQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGNoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwKTsKKyAgICAgICAgICAgICAgICAgICAgY29sdW1uTWFwLnNldEVsZW1lbnRBdChDaGFyYWN0ZXIudG9Mb3dlckNhc2UoY2gpLCBDaGFyYWN0ZXIudG9Mb3dlckNhc2UoY2gpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHApOworICAgICAgICAgICAgICAgICAgICArK3A7CisgICAgICAgICAgICAgICAgICAgIHRlbXBSZXZlcnNlTWFwLmFwcGVuZChjaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisvL1N5c3RlbS5vdXQucHJpbnRsbigiQ29tcGFjdGluZy4uLiIpOworICAgICAgICBjb2x1bW5NYXAuY29tcGFjdCgpOworCisvL1N5c3RlbS5vdXQucHJpbnRsbih0ZW1wUmV2ZXJzZU1hcC50b1N0cmluZygpKTsKKyAgICAgICAgcmV2ZXJzZUNvbHVtbk1hcCA9IG5ldyBjaGFyW3BdOworICAgICAgICBVdGlsaXR5LmdldENoYXJzKHRlbXBSZXZlcnNlTWFwLCAwLCBwLCByZXZlcnNlQ29sdW1uTWFwLCAwKTsKKworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oInRvdGFsIGNvbHVtbnMgPSAiICsgcCk7CisgICAgICAgIG51bUNvbHMgPSBwOworICAgICAgICBudW1Db2xHcm91cHMgPSAobnVtQ29scyA+PiA1KSArIDE7CisKKy8qCitzaG9ydFtdIGluZGV4ID0gY29sdW1uTWFwLmdldEluZGV4QXJyYXkoKTsKK1N5c3RlbS5vdXQucHJpbnRsbigiSW5kZXg6Iik7Citmb3IgKGludCBpID0gMDsgaSA8IGluZGV4Lmxlbmd0aDsgaSsrKSB7CitpZiAoaSAlIDE2ID09IDApIHsKK1N5c3RlbS5vdXQucHJpbnRsbigpOworU3lzdGVtLm91dC5wcmludCgiICAgICIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGkgKiAxMjgpICsgIjoiKTsKK30KK1N5c3RlbS5vdXQucHJpbnQoIlx0IiArIEludGVnZXIudG9IZXhTdHJpbmcoaW5kZXhbaV0pKTsKK30KK1N5c3RlbS5vdXQucHJpbnRsbigpOworYnl0ZVtdIGRhdGEgPSBjb2x1bW5NYXAuZ2V0U3RyaW5nQXJyYXkoKTsKK1N5c3RlbS5vdXQucHJpbnQoIlZhbHVlczoiKTsKK2ZvciAoaW50IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykgeworaWYgKGkgJSAxNiA9PSAwKSB7CitTeXN0ZW0ub3V0LnByaW50bG4oKTsKK1N5c3RlbS5vdXQucHJpbnQoIiAgICAiICsgSW50ZWdlci50b0hleFN0cmluZyhpKSArICI6Iik7Cit9CitpZiAoZGF0YVtpXSA9PSAwKQorU3lzdGVtLm91dC5wcmludCgiXHQuIik7CitlbHNlCitTeXN0ZW0ub3V0LnByaW50KCJcdCIgKyBJbnRlZ2VyLnRvU3RyaW5nKGRhdGFbaV0pKTsKK30KK1N5c3RlbS5vdXQucHJpbnRsbigpOworKi8KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBidWlsZFN0YXRlVGFibGUoSW5wdXRTdHJlYW1SZWFkZXIgaW4pIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIFZlY3RvciB0ZW1wVGFibGUgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIHRlbXBUYWJsZS5hZGRFbGVtZW50KG5ldyBpbnRbbnVtQ29scyArIDFdKTsKKyAgICAgICAgaW50IHN0YXRlID0gMDsKKworICAgICAgICBpbnQgYyA9IGluLnJlYWQoKTsKKyAgICAgICAgaW50W10gcm93ID0gbnVsbDsKKyAgICAgICAgaW50IGNoYXJzSW5Xb3JkID0gMDsKKyAgICAgICAgd2hpbGUgKGMgPj0gMCkgeworICAgICAgICAgICAgY2hhcnNJbldvcmQrKzsKKyAgICAgICAgICAgIHNob3J0IGNvbHVtbiA9IGNvbHVtbk1hcC5lbGVtZW50QXQoKGNoYXIpYyk7CisKKyAgICAgICAgICAgIHJvdyA9IChpbnRbXSkodGVtcFRhYmxlLmVsZW1lbnRBdChzdGF0ZSkpOworICAgICAgICAgICAgaWYgKGNvbHVtbiAhPSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKHJvd1tjb2x1bW5dID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcm93W2NvbHVtbl0gPSB0ZW1wVGFibGUuc2l6ZSgpOworICAgICAgICAgICAgICAgICAgICArK3Jvd1tudW1Db2xzXTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSAodGVtcFRhYmxlLnNpemUoKSk7CisgICAgICAgICAgICAgICAgICAgIHRlbXBUYWJsZS5hZGRFbGVtZW50KG5ldyBpbnRbbnVtQ29scyArIDFdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHJvd1tjb2x1bW5dOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoc3RhdGUgIT0gMCkgeworICAgICAgICAgICAgICAgIGlmIChyb3dbMF0gIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgcm93WzBdID0gLTE7CisgICAgICAgICAgICAgICAgICAgICsrcm93W251bUNvbHNdOworICAgICAgICAgICAgICAgICAgICB1bmlxdWVXb3JkcysrOworICAgICAgICAgICAgICAgICAgICB0b3RhbFVuaXF1ZVdvcmRDaGFycyArPSBjaGFyc0luV29yZDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdG90YWxXb3JkcysrOworaWYgKHRvdGFsV29yZHMgJSA1MDAwID09IDApIFN5c3RlbS5vdXQucHJpbnRsbigiUmVhZCAiICsgdG90YWxXb3JkcyArICIgd29yZHMsICIgKyB0ZW1wVGFibGUuc2l6ZSgpICsgIiByb3dzLi4uIik7CisgICAgICAgICAgICAgICAgY2hhcnNJbldvcmQgPSAwOworICAgICAgICAgICAgICAgIHN0YXRlID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGMgPSBpbi5yZWFkKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHN0YXRlICE9IDApIHsKKyAgICAgICAgICAgIHJvdyA9IChpbnRbXSkodGVtcFRhYmxlLmVsZW1lbnRBdChzdGF0ZSkpOworICAgICAgICAgICAgaWYgKHJvd1swXSAhPSAtMSkgeworICAgICAgICAgICAgICAgIHJvd1swXSA9IC0xOworICAgICAgICAgICAgICAgIHVuaXF1ZVdvcmRzKys7CisgICAgICAgICAgICAgICAgdG90YWxVbmlxdWVXb3JkQ2hhcnMgKz0gY2hhcnNJbldvcmQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0b3RhbFdvcmRzKys7CisgICAgICAgIH0KKworICAgICAgICBjb21wcmVzcyh0ZW1wVGFibGUpOworCisgICAgICAgIHRhYmxlID0gbmV3IHNob3J0W251bUNvbHMgKiB0ZW1wVGFibGUuc2l6ZSgpXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZW1wVGFibGUuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgIHJvdyA9IChpbnRbXSl0ZW1wVGFibGUuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBudW1Db2xzOyBqKyspCisgICAgICAgICAgICAgICAgdGFibGVbaSAqIG51bUNvbHMgKyBqXSA9IChzaG9ydClyb3dbal07CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgY29tcHJlc3MoVmVjdG9yIHRlbXBUYWJsZSkgeworU3lzdGVtLm91dC5wcmludGxuKCJCZWZvcmUgY29tcHJlc3Npb246Iik7CitTeXN0ZW0ub3V0LnByaW50bG4oIiAgTnVtYmVyIG9mIHJvd3MgPSAiICsgdGVtcFRhYmxlLnNpemUoKSk7CitTeXN0ZW0ub3V0LnByaW50bG4oIiAgTnVtYmVyIG9mIGNvbHVtbnMgPSAiICsgbnVtQ29scyk7CitTeXN0ZW0ub3V0LnByaW50bG4oIiAgTnVtYmVyIG9mIGNlbGxzID0gIiArIHRlbXBUYWJsZS5zaXplKCkgKiBudW1Db2xzKTsKKyAgICAgICAgZGVsZXRlRHVwbGljYXRlUm93cyh0ZW1wVGFibGUpOworU3lzdGVtLm91dC5wcmludGxuKCJBZnRlciByZW1vdmluZyBkdXBsaWNhdGUgcm93czoiKTsKK1N5c3RlbS5vdXQucHJpbnRsbigiICBOdW1iZXIgb2Ygcm93cyA9ICIgKyB0ZW1wVGFibGUuc2l6ZSgpKTsKK1N5c3RlbS5vdXQucHJpbnRsbigiICBOdW1iZXIgb2YgY29sdW1ucyA9ICIgKyBudW1Db2xzKTsKK1N5c3RlbS5vdXQucHJpbnRsbigiICBOdW1iZXIgb2YgY2VsbHMgPSAiICsgdGVtcFRhYmxlLnNpemUoKSAqIG51bUNvbHMpOworICAgICAgICBzdGFja1Jvd3ModGVtcFRhYmxlKTsKK2lmICh0ZW1wVGFibGUuc2l6ZSgpID4gMzI3NjcpIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlRvbyBtYW55IHJvd3MgaW4gdGFibGUhIik7CitTeXN0ZW0ub3V0LnByaW50bG4oIkFmdGVyIGRvdWJsaW5nIHVwIG9uIHJvd3M6Iik7CitTeXN0ZW0ub3V0LnByaW50bG4oIiAgTnVtYmVyIG9mIHJvd3MgPSAiICsgdGVtcFRhYmxlLnNpemUoKSk7CitTeXN0ZW0ub3V0LnByaW50bG4oIiAgTnVtYmVyIG9mIGNvbHVtbnMgPSAiICsgbnVtQ29scyk7CitTeXN0ZW0ub3V0LnByaW50bG4oIiAgTnVtYmVyIG9mIGNlbGxzID0gIiArIHRlbXBUYWJsZS5zaXplKCkgKiBudW1Db2xzKTsKKyAgICB9CisKKy8qCitleHBlcmltZW50YWwuLi4KKyAgICBwcml2YXRlIHZvaWQgZGVsZXRlRHVwbGljYXRlUm93cyhWZWN0b3IgdGVtcFRhYmxlKSB7CisgICAgICAgIGludFtdIHJvd051bU1hcCA9IG5ldyBpbnRbdGVtcFRhYmxlLnNpemUoKV07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcm93TnVtTWFwLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgcm93TnVtTWFwW2ldID0gaTsKKworICAgICAgICBpbnQgbmV4dENsYXNzID0gbnVtQ29sczsKKyAgICAgICAgaW50IGN1cnJlbnRDbGFzczsKKyAgICAgICAgaW50IGxhc3RDbGFzczsKKyAgICAgICAgYm9vbGVhbiBzcGxpdDsKKyAgICAgICAgaW50W10gcm93MSwgcm93MiwgdGVtcFJvdzsKKyAgICAgICAgaW50IHRlbXBDYXQ7CisKKyAgICAgICAgZG8geworU3lzdGVtLm91dC5wcmludGxuKCJNYWtpbmcgYSBwYXNzICgiICsgbmV4dENsYXNzICsgIiBjbGFzc2VzKS4uLiIpOworICAgICAgICAgICAgY3VycmVudENsYXNzID0gMDsKKyAgICAgICAgICAgIGxhc3RDbGFzcyA9IG5leHRDbGFzczsKKyAgICAgICAgICAgIHdoaWxlIChjdXJyZW50Q2xhc3MgPCBuZXh0Q2xhc3MpIHsKK1N5c3RlbS5vdXQucHJpbnRsbigiICAgY3VycmVudENsYXNzID0gIiArIGN1cnJlbnRDbGFzcyk7CisgICAgICAgICAgICAgICAgc3BsaXQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICByb3cxID0gcm93MiA9IG51bGw7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZW1wVGFibGUuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdGVtcFJvdyA9IChpbnRbXSl0ZW1wVGFibGUuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgICAgICAgICBpZiAodGVtcFJvd1tudW1Db2xzXSA9PSBjdXJyZW50Q2xhc3MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyb3cxID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3cxID0gKGludFtdKXRlbXBUYWJsZS5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3cyID0gKGludFtdKXRlbXBUYWJsZS5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBudW1Db2xzOyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChyb3cxW2pdID09IDApICE9IChyb3cyW2pdID09IDApIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyb3cxW2pdID09IC0xKSAhPSAocm93MltqXSA9PSAtMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdzJbbnVtQ29sc10gPSBuZXh0Q2xhc3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGxpdCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChyb3cxW2pdICE9IDAgJiYgcm93MltqXSAhPSAwICYmIHJvdzFbal0gIT0gLTEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIHJvdzJbal0gIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBSb3cgPSAoaW50W10pdGVtcFRhYmxlLmVsZW1lbnRBdChyb3cxW2pdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBDYXQgPSB0ZW1wUm93W251bUNvbHNdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcFJvdyA9IChpbnRbXSl0ZW1wVGFibGUuZWxlbWVudEF0KHJvdzJbal0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRlbXBDYXQgIT0gdGVtcFJvd1tudW1Db2xzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdzJbbnVtQ29sc10gPSBuZXh0Q2xhc3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BsaXQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChzcGxpdCkKKyAgICAgICAgICAgICAgICAgICAgKytuZXh0Q2xhc3M7CisgICAgICAgICAgICAgICAgKytjdXJyZW50Q2xhc3M7CisvL1N5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICAgICAgfQorICAgICAgICB9IHdoaWxlIChsYXN0Q2xhc3MgIT0gbmV4dENsYXNzKTsKKworICAgICAgICBpbnRbXSByZXByZXNlbnRhdGl2ZXMgPSBuZXcgaW50W25leHRDbGFzc107CisgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgdGVtcFRhYmxlLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICB0ZW1wUm93ID0gKGludFtdKXRlbXBUYWJsZS5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICBpZiAocmVwcmVzZW50YXRpdmVzW3RlbXBSb3dbbnVtQ29sc11dID09IDApCisgICAgICAgICAgICAgICAgcmVwcmVzZW50YXRpdmVzW3RlbXBSb3dbbnVtQ29sc11dID0gaTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByb3dOdW1NYXBbaV0gPSByZXByZXNlbnRhdGl2ZXNbdGVtcFJvd1tudW1Db2xzXV07CisgICAgICAgIH0KK1N5c3RlbS5vdXQucHJpbnRsbigiUmVudW1iZXJpbmcuLi4iKTsKKworICAgICAgICAvLyByZW51bWJlciBhbGwgcmVtYWluaW5nIHJvd3MKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByb3dOdW1NYXAubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBpZiAocm93TnVtTWFwW2ldICE9IGkpCisgICAgICAgICAgICAgICAgdGVtcFRhYmxlLnNldEVsZW1lbnRBdChudWxsLCBpKTsKKyAgICAgICAgaW50IG5ld1Jvd051bSA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcm93TnVtTWFwLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgaWYgKHRlbXBUYWJsZS5lbGVtZW50QXQoaSkgIT0gbnVsbCkKKyAgICAgICAgICAgICAgICByb3dOdW1NYXBbaV0gPSBuZXdSb3dOdW0rKzsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByb3dOdW1NYXAubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBpZiAodGVtcFRhYmxlLmVsZW1lbnRBdChpKSA9PSBudWxsKQorICAgICAgICAgICAgICAgIHJvd051bU1hcFtpXSA9IHJvd051bU1hcFtyb3dOdW1NYXBbaV1dOworCisgICAgICAgIGZvciAoaW50IGkgPSB0ZW1wVGFibGUuc2l6ZSgpIC0gMTsgaSA+PSAwOyBpLS0pIHsKKyAgICAgICAgICAgIHRlbXBSb3cgPSAoaW50W10pdGVtcFRhYmxlLmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgIGlmICh0ZW1wUm93ID09IG51bGwpCisgICAgICAgICAgICAgICAgdGVtcFRhYmxlLnJlbW92ZUVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbnVtQ29sczsgaisrKQorICAgICAgICAgICAgICAgICAgICBpZiAodGVtcFJvd1tqXSAhPSAtMSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBSb3dbal0gPSByb3dOdW1NYXBbal07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKy8vZm9yIChpbnQgaSA9IDE7IGkgPCByb3dOdW1NYXAubGVuZ3RoOyBpKyspIHJvd051bU1hcFtpXSA9IGk7IGludCBuZXdSb3dOdW0gPSByb3dOdW1NYXAubGVuZ3RoOworICAgIH0KKyovCisKKyAgICBwcml2YXRlIHZvaWQgZGVsZXRlRHVwbGljYXRlUm93cyhWZWN0b3IgdGVtcFRhYmxlKSB7CisgICAgICAgIFZlY3RvciB3b3JrID0gKFZlY3RvcikodGVtcFRhYmxlLmNsb25lKCkpOworICAgICAgICBib29sZWFuIGRpZERlbGV0ZVJvdyA9IHRydWU7CisKKyAgICAgICAgVmVjdG9yIHRlbXBNYXBwaW5nID0gbmV3IFZlY3Rvcih3b3JrLnNpemUoKSk7CisgICAgICAgIGludFtdIG1hcHBpbmcgPSBuZXcgaW50W3dvcmsuc2l6ZSgpXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtYXBwaW5nLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBtYXBwaW5nW2ldID0gaTsKKyAgICAgICAgICAgIHRlbXBNYXBwaW5nLmFkZEVsZW1lbnQobmV3IEludGVnZXIoaSkpOworICAgICAgICB9CisgICAgICAgIGJvb2xlYW5bXSB0YmQgPSBuZXcgYm9vbGVhblt3b3JrLnNpemUoKV07CisKKyAgICAgICAgd2hpbGUgKGRpZERlbGV0ZVJvdykgeworU3lzdGVtLm91dC5wcmludGxuKCIgIiArIHdvcmsuc2l6ZSgpICsgIiByb3dzLi4uIik7CitpbnQgZGVsZXRlZFJvd3MgPSAwOworICAgICAgICAgICAgZGlkRGVsZXRlUm93ID0gZmFsc2U7CisKKyAgICAgICAgICAgIHNvcnRUYWJsZSh3b3JrLCB0ZW1wTWFwcGluZywgbWFwcGluZywgMSwgd29yay5zaXplKCkpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB3b3JrLnNpemUoKSAtIDE7ICkgeworU3lzdGVtLm91dC5wcmludCgiRGVsZXRpbmcsIGluc3BlY3Rpbmcgcm93ICIgKyBpICsgIiwgZGVsZXRlZCAiICsgZGVsZXRlZFJvd3MgKyAiIHJvd3MuLi5cciIpOworICAgICAgICAgICAgICAgIGludCByb3dUb0RlbGV0ZSA9ICgoSW50ZWdlcikodGVtcE1hcHBpbmcuZWxlbWVudEF0KGkgKyAxKSkpLmludFZhbHVlKCk7CisgICAgICAgICAgICAgICAgaW50IHJvd1RvTWFwVG8gPSAoKEludGVnZXIpKHRlbXBNYXBwaW5nLmVsZW1lbnRBdChpKSkpLmludFZhbHVlKCk7CisgICAgICAgICAgICAgICAgaWYgKGNvbXBhcmVSb3dzKChpbnRbXSl3b3JrLmVsZW1lbnRBdChpKSwgKGludFtdKXdvcmsuZWxlbWVudEF0KGkgKyAxKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwcGluZykgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICB0YmRbcm93VG9EZWxldGVdID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgdGVtcFRhYmxlLnNldEVsZW1lbnRBdChudWxsLCByb3dUb0RlbGV0ZSk7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlICh0YmRbbWFwcGluZ1tyb3dUb01hcFRvXV0pCisgICAgICAgICAgICAgICAgICAgICAgICBtYXBwaW5nW3Jvd1RvTWFwVG9dID0gbWFwcGluZ1ttYXBwaW5nW3Jvd1RvTWFwVG9dXTsKKyAgICAgICAgICAgICAgICAgICAgbWFwcGluZ1tyb3dUb0RlbGV0ZV0gPSBtYXBwaW5nW3Jvd1RvTWFwVG9dOworICAgICAgICAgICAgICAgICAgICBkaWREZWxldGVSb3cgPSB0cnVlOworZGVsZXRlZFJvd3MrKzsKKyAgICAgICAgICAgICAgICAgICAgd29yay5yZW1vdmVFbGVtZW50QXQoaSArIDEpOworICAgICAgICAgICAgICAgICAgICB0ZW1wTWFwcGluZy5yZW1vdmVFbGVtZW50QXQoaSArIDEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGkrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbWFwcGluZy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGlmICh0YmRbaV0gJiYgdGJkW21hcHBpbmdbaV1dKQorICAgICAgICAgICAgICAgICAgICBtYXBwaW5nW2ldID0gbWFwcGluZ1ttYXBwaW5nW2ldXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGludCBkZWNyZW1lbnRCeSA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbWFwcGluZy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKHRiZFtpXSkKKyAgICAgICAgICAgICAgICBkZWNyZW1lbnRCeSsrOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG1hcHBpbmdbaV0gLT0gZGVjcmVtZW50Qnk7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtYXBwaW5nLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAodGJkW2ldKQorICAgICAgICAgICAgICAgIG1hcHBpbmdbaV0gPSBtYXBwaW5nW21hcHBpbmdbaV1dOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSB0ZW1wVGFibGUuc2l6ZSgpIC0gMTsgaSA+PSAwOyBpLS0pIHsKKyAgICAgICAgICAgIGlmICh0YmRbaV0pCisgICAgICAgICAgICAgICAgdGVtcFRhYmxlLnJlbW92ZUVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGludFtdIHJvdyA9IChpbnRbXSl0ZW1wVGFibGUuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbnVtQ29sczsgaisrKQorICAgICAgICAgICAgICAgICAgICByb3dbal0gPSAocm93W2pdID09IC0xKSA/IC0xIDogbWFwcGluZ1tyb3dbal1dOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHNvcnRUYWJsZShWZWN0b3IgdGFibGUsIFZlY3RvciB0ZW1wTWFwcGluZywgaW50W10gbWFwcGluZywgaW50IHN0YXJ0LCBpbnQgZW5kKSB7CitTeXN0ZW0ub3V0LnByaW50KCJTb3J0aW5nICgiICsgc3RhcnQgKyAiLCAiICsgZW5kICsgIikuLi5cciIpOworICAgICAgICBpZiAoc3RhcnQgKyAxID49IGVuZCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgZWxzZSBpZiAoc3RhcnQgKyAxMCA+PSBlbmQpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSBzdGFydCArIDE7IGkgPCBlbmQ7IGkrKykgeworICAgICAgICAgICAgICAgIGludFtdIHJvdyA9IChpbnRbXSl0YWJsZS5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICAgICAgSW50ZWdlciB0ZW1wTWFwID0gKEludGVnZXIpdGVtcE1hcHBpbmcuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgICAgIGludCBqOworICAgICAgICAgICAgICAgIGZvciAoaiA9IGkgLSAxOyBqID49IHN0YXJ0OyBqLS0pIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNvbXBhcmVSb3dzKChpbnRbXSl0YWJsZS5lbGVtZW50QXQoaiksIHJvdywgbWFwcGluZykgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZS5zZXRFbGVtZW50QXQoKGludFtdKXRhYmxlLmVsZW1lbnRBdChqKSwgaiArIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgdGVtcE1hcHBpbmcuc2V0RWxlbWVudEF0KChJbnRlZ2VyKXRlbXBNYXBwaW5nLmVsZW1lbnRBdChqKSwgaiArIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgdGFibGUuc2V0RWxlbWVudEF0KHJvdywgaiArIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgdGVtcE1hcHBpbmcuc2V0RWxlbWVudEF0KHRlbXBNYXAsIGogKyAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChqIDwgc3RhcnQpIHsKKyAgICAgICAgICAgICAgICAgICAgdGFibGUuc2V0RWxlbWVudEF0KHJvdywgc3RhcnQpOworICAgICAgICAgICAgICAgICAgICB0ZW1wTWFwcGluZy5zZXRFbGVtZW50QXQodGVtcE1hcCwgc3RhcnQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGludCBib3VuZGFyeVBvcyA9IChzdGFydCArIGVuZCkgLyAyOworICAgICAgICAgICAgaW50IGk7CisgICAgICAgICAgICBib29sZWFuIGFsbFRoZVNhbWUgPSB0cnVlOworICAgICAgICAgICAgaW50IGZpcnN0RGlmZmVyZW50ID0gMDsKKworICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgIGludFtdIGJvdW5kYXJ5ID0gKGludFtdKXRhYmxlLmVsZW1lbnRBdChib3VuZGFyeVBvcyk7CisgICAgICAgICAgICAgICAgaSA9IHN0YXJ0OworICAgICAgICAgICAgICAgIGludCBqID0gZW5kIC0gMTsKKyAgICAgICAgICAgICAgICBpbnRbXSByb3cgPSBudWxsOworICAgICAgICAgICAgICAgIGJ5dGUgY29tcFJlc3VsdDsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaSA8IGopIHsKKyAgICAgICAgICAgICAgICAgICAgcm93ID0gKGludFtdKXRhYmxlLmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGkgPD0gaiAmJiBjb21wYXJlUm93cyhyb3csIGJvdW5kYXJ5LCBtYXBwaW5nKSA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGkrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJvdyA9IChpbnRbXSl0YWJsZS5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICByb3cgPSAoaW50W10pdGFibGUuZWxlbWVudEF0KGopOworICAgICAgICAgICAgICAgICAgICBjb21wUmVzdWx0ID0gY29tcGFyZVJvd3Mocm93LCBib3VuZGFyeSwgbWFwcGluZyk7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChpIDw9IGogJiYgKGNvbXBSZXN1bHQgPj0gMCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb21wUmVzdWx0ICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxUaGVTYW1lID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3REaWZmZXJlbnQgPSBqOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgai0tOworICAgICAgICAgICAgICAgICAgICAgICAgcm93ID0gKGludFtdKXRhYmxlLmVsZW1lbnRBdChqKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBSZXN1bHQgPSBjb21wYXJlUm93cyhyb3csIGJvdW5kYXJ5LCBtYXBwaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoaSA8PSBqKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByb3cgPSAoaW50W10pdGFibGUuZWxlbWVudEF0KGopOworICAgICAgICAgICAgICAgICAgICAgICAgdGFibGUuc2V0RWxlbWVudEF0KHRhYmxlLmVsZW1lbnRBdChpKSwgaik7CisgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZS5zZXRFbGVtZW50QXQocm93LCBpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdCB0ZW1wID0gdGVtcE1hcHBpbmcuZWxlbWVudEF0KGopOworICAgICAgICAgICAgICAgICAgICAgICAgdGVtcE1hcHBpbmcuc2V0RWxlbWVudEF0KHRlbXBNYXBwaW5nLmVsZW1lbnRBdChpKSwgaik7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wTWFwcGluZy5zZXRFbGVtZW50QXQodGVtcCwgaSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGkgPD0gc3RhcnQpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGFsbFRoZVNhbWUpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIGJvdW5kYXJ5UG9zID0gZmlyc3REaWZmZXJlbnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSB3aGlsZSAoaSA8PSBzdGFydCk7CisgICAgICAgICAgICBzb3J0VGFibGUodGFibGUsIHRlbXBNYXBwaW5nLCBtYXBwaW5nLCBzdGFydCwgaSk7CisgICAgICAgICAgICBzb3J0VGFibGUodGFibGUsIHRlbXBNYXBwaW5nLCBtYXBwaW5nLCBpLCBlbmQpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBieXRlIGNvbXBhcmVSb3dzKGludFtdIHJvdzEsIGludFtdIHJvdzIsIGludFtdIG1hcHBpbmcpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1Db2xzOyBpKyspIHsKKyAgICAgICAgICAgIGludCBjMSA9IChyb3cxW2ldID09IC0xKSA/IC0xIDogbWFwcGluZ1tyb3cxW2ldXTsKKyAgICAgICAgICAgIGludCBjMiA9IChyb3cyW2ldID09IC0xKSA/IC0xIDogbWFwcGluZ1tyb3cyW2ldXTsKKyAgICAgICAgICAgIGlmIChjMSA8IGMyKQorICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGMxID4gYzIpCisgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgcHJpdmF0ZSBpbnRbXSBidWlsZFJvd0luZGV4KFZlY3RvciB0ZW1wVGFibGUpIHsKKyAgICAgICAgaW50W10gdGVtcFJvd0luZGV4ID0gbmV3IGludFt0ZW1wVGFibGUuc2l6ZSgpXTsKKyAgICAgICAgcm93SW5kZXhGbGFnc0luZGV4ID0gbmV3IHNob3J0W3RlbXBUYWJsZS5zaXplKCldOworICAgICAgICBWZWN0b3IgdGVtcFJvd0luZGV4RmxhZ3MgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIHJvd0luZGV4U2hpZnRzID0gbmV3IGJ5dGVbdGVtcFRhYmxlLnNpemUoKV07CisKKyAgICAgICAgLy8gYnVpbGQgdGhlIHJvdyBpbmRleC4gIEVhY2ggZW50cnkgaW4gdGhlIHJvdyBpbmRleCBzdGFydHMgb3V0IHJlZmVycmluZworICAgICAgICAvLyB0byB0aGUgb3JpZ2luYWwgcm93IChzbyBpdCBkb2Vzbid0IGFjdHVhbGx5IGRvIGFueSBtYXBwaW5nKSwgYW5kIHdlIHNldAorICAgICAgICAvLyB1cCB0aGUgaW5kZXggZmxhZ3MgdG8gc2hvdyB3aGljaCBjZWxscyBpbiB0aGUgcm93IGFyZSBwb3B1bGF0ZWQKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZW1wVGFibGUuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgIHRlbXBSb3dJbmRleFtpXSA9IGk7CisKKyAgICAgICAgICAgIGludFtdIHJvdyA9IChpbnRbXSl0ZW1wVGFibGUuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgaWYgKHJvd1tudW1Db2xzXSA9PSAxICYmIHJvd1swXSA9PSAwKSB7CisgICAgICAgICAgICAgICAgaW50IGogPSAwOworICAgICAgICAgICAgICAgIHdoaWxlIChyb3dbal0gPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgKytqOworICAgICAgICAgICAgICAgIHJvd0luZGV4RmxhZ3NJbmRleFtpXSA9IChzaG9ydCkoLWopOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaW50W10gZmxhZ3MgPSBuZXcgaW50W251bUNvbEdyb3Vwc107CisgICAgICAgICAgICAgICAgaW50IG5leHRGbGFnID0gMTsKKyAgICAgICAgICAgICAgICBpbnQgY29sR3JvdXAgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbnVtQ29sczsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChyb3dbal0gIT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzW2NvbEdyb3VwXSB8PSBuZXh0RmxhZzsKKyAgICAgICAgICAgICAgICAgICAgbmV4dEZsYWcgPDw9IDE7CisgICAgICAgICAgICAgICAgICAgIGlmIChuZXh0RmxhZyA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICArK2NvbEdyb3VwOworICAgICAgICAgICAgICAgICAgICAgICAgbmV4dEZsYWcgPSAxOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNvbEdyb3VwID0gMDsKKyAgICAgICAgICAgICAgICBpbnQgaiA9IDA7CisgICAgICAgICAgICAgICAgd2hpbGUgKGogPCB0ZW1wUm93SW5kZXhGbGFncy5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCgoSW50ZWdlcil0ZW1wUm93SW5kZXhGbGFncy5lbGVtZW50QXQoaikpLmludFZhbHVlKCkgPT0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzW2NvbEdyb3VwXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgKytjb2xHcm91cDsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrajsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb2xHcm91cCA+PSBudW1Db2xHcm91cHMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoY29sR3JvdXAgIT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbEdyb3VwID0gMDsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgKytqOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByb3dJbmRleEZsYWdzSW5kZXhbaV0gPSAoc2hvcnQpKGogLSBjb2xHcm91cCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKGNvbEdyb3VwIDwgbnVtQ29sR3JvdXBzKSB7CisgICAgICAgICAgICAgICAgICAgIHRlbXBSb3dJbmRleEZsYWdzLmFkZEVsZW1lbnQobmV3IEludGVnZXIoZmxhZ3NbY29sR3JvdXBdKSk7CisgICAgICAgICAgICAgICAgICAgICsrY29sR3JvdXA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJvd0luZGV4RmxhZ3MgPSBuZXcgaW50W3RlbXBSb3dJbmRleEZsYWdzLnNpemUoKV07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcm93SW5kZXhGbGFncy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIHJvd0luZGV4RmxhZ3NbaV0gPSAoKEludGVnZXIpdGVtcFJvd0luZGV4RmxhZ3MuZWxlbWVudEF0KGkpKS5pbnRWYWx1ZSgpOworU3lzdGVtLm91dC5wcmludGxuKCJOdW1iZXIgb2YgY29sdW1uIGdyb3VwcyA9ICIgKyBudW1Db2xHcm91cHMpOworU3lzdGVtLm91dC5wcmludGxuKCJTaXplIG9mIHJvd0luZGV4RmxhZ3MgPSAiICsgcm93SW5kZXhGbGFncy5sZW5ndGgpOworCisgICAgICAgIHJldHVybiB0ZW1wUm93SW5kZXg7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHN0YWNrUm93cyhWZWN0b3IgdGVtcFRhYmxlKSB7CisvKgorU3lzdGVtLm91dC5wcmludCgiUm93Olx0Iik7Citmb3IgKGludCBpID0gMDsgaSA8IG51bUNvbHM7IGkrKykKK1N5c3RlbS5vdXQucHJpbnQocmV2ZXJzZUNvbHVtbk1hcFtpXSArICJcdCIpOworU3lzdGVtLm91dC5wcmludGxuKCk7Citmb3IgKGludCBpID0gMDsgaSA8IHRlbXBUYWJsZS5zaXplKCk7IGkrKykgeworU3lzdGVtLm91dC5wcmludChJbnRlZ2VyLnRvU3RyaW5nKGkpICsgIjpcdCIpOworaW50W10gcm93ID0gKGludFtdKXRlbXBUYWJsZS5lbGVtZW50QXQoaSk7Citmb3IgKGludCBqID0gMDsgaiA8IHJvdy5sZW5ndGg7IGorKykKK2lmIChyb3dbal0gIT0gMCkgU3lzdGVtLm91dC5wcmludChJbnRlZ2VyLnRvU3RyaW5nKHJvd1tqXSkgKyAiXHQiKTsKK2Vsc2UgU3lzdGVtLm91dC5wcmludCgiLlx0Iik7CitTeXN0ZW0ub3V0LnByaW50bG4oKTsKK30KKyovCisKKyAgICAgICAgaW50W10gdGVtcFJvd0luZGV4ID0gYnVpbGRSb3dJbmRleCh0ZW1wVGFibGUpOworICAgICAgICBib29sZWFuW10gdGJkID0gbmV3IGJvb2xlYW5bdGVtcFRhYmxlLnNpemUoKV07CisKKyAgICAgICAgLy8gbm93IHdlIGFjdHVhbGx5IGdvIHRocm91Z2ggYW5kIHN0YWNrIHJvd3MgdG9nZXRoZXIKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZW1wVGFibGUuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgIGlmICh0YmRbaV0pCisgICAgICAgICAgICAgICAgY29udGludWU7CitTeXN0ZW0ub3V0LnByaW50KCJTdGFja2luZywgaW5zcGVjdGluZyByb3cgIiArIGkgKyAiLi4uXHIiKTsKKy8vU3lzdGVtLm91dC5wcmludGxuKCJTdGFja2luZywgaW5zcGVjdGluZyByb3cgIiArIGkgKyAiLi4uIik7CisKKyAgICAgICAgICAgIGludFtdIGRlc3RSb3cgPSAoaW50W10pdGVtcFRhYmxlLmVsZW1lbnRBdChpKTsKKworICAgICAgICAgICAgYm9vbGVhbltdIHRlbXBGbGFncyA9IG5ldyBib29sZWFuW251bUNvbHNdOworICAgICAgICAgICAgYm9vbGVhbltdIGZpbGxlZENlbGxzID0gbmV3IGJvb2xlYW5bbnVtQ29sc107CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG51bUNvbHM7IGorKykKKyAgICAgICAgICAgICAgICBmaWxsZWRDZWxsc1tqXSA9IGRlc3RSb3dbal0gIT0gMDsKKworICAgICAgICAgICAgZm9yIChpbnQgaiA9IGkgKyAxOyBkZXN0Um93W251bUNvbHNdIDwgbnVtQ29scyAmJiBqIDwgdGVtcFRhYmxlLnNpemUoKTsgaisrKSB7CisgICAgICAgICAgICAgICAgaWYgKHRiZFtqXSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgICAgICBpbnRbXSBzcmNSb3cgPSAoaW50W10pdGVtcFRhYmxlLmVsZW1lbnRBdChqKTsKKyAgICAgICAgICAgICAgICBpZiAoc3JjUm93W251bUNvbHNdICsgZGVzdFJvd1tudW1Db2xzXSA+IG51bUNvbHMpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICAgICAgaW50IG1heExlZnRTaGlmdCA9IC05OTk7CisgICAgICAgICAgICAgICAgaW50IG1heFJpZ2h0U2hpZnQgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGsgPSAwOyBrIDwgbnVtQ29sczsgaysrKSB7CisgICAgICAgICAgICAgICAgICAgIHRlbXBGbGFnc1trXSA9IHNyY1Jvd1trXSAhPSAwOworICAgICAgICAgICAgICAgICAgICBpZiAodGVtcEZsYWdzW2tdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWF4TGVmdFNoaWZ0ID09IC05OTkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4TGVmdFNoaWZ0ID0gLWs7CisgICAgICAgICAgICAgICAgICAgICAgICBtYXhSaWdodFNoaWZ0ID0gKG51bUNvbHMgLSAxKSAtIGs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpbnQgc2hpZnQ7CisgICAgICAgICAgICAgICAgZm9yIChzaGlmdCA9IG1heExlZnRTaGlmdDsgc2hpZnQgPD0gbWF4UmlnaHRTaGlmdDsgc2hpZnQrKykgeworICAgICAgICAgICAgICAgICAgICBpbnQgazsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChrID0gMDsgayA8IG51bUNvbHM7IGsrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRlbXBGbGFnc1trXSAmJiBmaWxsZWRDZWxsc1trICsgc2hpZnRdKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChrID49IG51bUNvbHMpCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHNoaWZ0IDw9IG1heFJpZ2h0U2hpZnQpIHsKKy8vU3lzdGVtLm91dC5wcmludGxuKCJQYWNraW5nIHJvdyAiICsgaiArICIgaW50byByb3cgIiArIGkgKyAiIHdpdGggc2hpZnQgPSAiICsgc2hpZnQpOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IG51bUNvbHM7IGsrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRlbXBGbGFnc1trXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGxlZENlbGxzW2sgKyBzaGlmdF0gPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RSb3dbayArIHNoaWZ0XSA9IHNyY1Jvd1trXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK2Rlc3RSb3dbbnVtQ29sc107CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgdGJkW2pdID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgdGVtcFJvd0luZGV4W2pdID0gaTsKKyAgICAgICAgICAgICAgICAgICAgcm93SW5kZXhTaGlmdHNbal0gPSAoYnl0ZSlzaGlmdDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBmaW5hbGx5LCB3ZSBzcXVlZXplIG91dCBhbGwgdGhlIGRlbGV0ZWQgcm93cworICAgICAgICBpbnQgZGVjcmVtZW50QnkgPSAwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlbXBSb3dJbmRleC5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKCF0YmRbaV0pCisgICAgICAgICAgICAgICAgdGVtcFJvd0luZGV4W2ldIC09IGRlY3JlbWVudEJ5OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICsrZGVjcmVtZW50Qnk7CisgICAgICAgIH0KKyAgICAgICAgcm93SW5kZXggPSBuZXcgc2hvcnRbdGVtcFJvd0luZGV4Lmxlbmd0aF07CisgICAgICAgIGZvciAoaW50IGkgPSB0ZW1wUm93SW5kZXgubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsKKyAgICAgICAgICAgIGlmICh0YmRbaV0pIHsKKyAgICAgICAgICAgICAgICByb3dJbmRleFtpXSA9IChzaG9ydCkodGVtcFJvd0luZGV4W3RlbXBSb3dJbmRleFtpXV0pOworICAgICAgICAgICAgICAgIHRlbXBUYWJsZS5yZW1vdmVFbGVtZW50QXQoaSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcm93SW5kZXhbaV0gPSAoc2hvcnQpdGVtcFJvd0luZGV4W2ldOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHByaW50VGFibGUoKSB7CisgICAgICAgIHNob3J0IGNlbGw7CisgICAgICAgIGludCBwb3B1bGF0ZWRDZWxscyA9IDA7CisvKgorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvbmNlcHR1YWwgdGFibGU6Iik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiIFJvdzogICBhICAgYiAgIGMgICBkICAgZSAgIGYgICBnICAgaCAgIGkgICBqICAgayAgIGwgICBtICAgbiIKKyAgICAgICAgICAgICAgICArICIgICBvICAgcCAgIHEgICByICAgcyAgIHQgICB1ICAgdiAgIHcgICB4ICAgeSAgIHogICAnICAgIyIpOworCisgICAgICAgIGJvb2xlYW5bXSByb3dQcmludEZsYWdzID0gbmV3IGJvb2xlYW5bcm93SW5kZXgubGVuZ3RoXTsKKyAgICAgICAgcHJpbnRDb25jZXB0dWFsVGFibGUoIiIsIDAsIHJvd1ByaW50RmxhZ3MpOworKi8KKworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb25jZXB0dWFsIHRhYmxlOiIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgUm93OiIpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJldmVyc2VDb2x1bW5NYXAubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgICAiICsgcmV2ZXJzZUNvbHVtbk1hcFtpXSk7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByb3dJbmRleC5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgICAgICBwcmludE51bWJlcihpLCA0KTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIjoiKTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbnVtQ29sczsgaisrKQorICAgICAgICAgICAgICAgIHByaW50TnVtYmVyKGF0KGksIGopLCA0KTsKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oJ1xuJyk7CisKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiSW50ZXJuYWxseSBzdG9yZWQgdGFibGU6Iik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiBSb3c6Iik7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmV2ZXJzZUNvbHVtbk1hcC5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAgICIgKyByZXZlcnNlQ29sdW1uTWFwW2ldKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRhYmxlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoaSAlIG51bUNvbHMgPT0gMCkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICAgICAgICAgIHByaW50TnVtYmVyKGkgLyBudW1Db2xzLCA0KTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCI6Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjZWxsID0gdGFibGVbaV07CisgICAgICAgICAgICBpZiAoY2VsbCAhPSAwKQorICAgICAgICAgICAgICAgIHBvcHVsYXRlZENlbGxzKys7CisgICAgICAgICAgICBwcmludE51bWJlcihjZWxsLCA0KTsKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oJ1xuJyk7CisKK1N5c3RlbS5vdXQucHJpbnRsbigiUm93IGluZGV4OiIpOworZm9yIChpbnQgaSA9IDA7IGkgPCByb3dJbmRleC5sZW5ndGg7IGkrKykgeworICAgIFN5c3RlbS5vdXQucHJpbnQoIiAgICIgKyBpICsgIiAtPiAiICsgcm93SW5kZXhbaV0pOworICAgIGlmIChyb3dJbmRleEZsYWdzSW5kZXhbaV0gPCAwKQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIsIGZsYWdzID0gIiArIEludGVnZXIudG9CaW5hcnlTdHJpbmcoKDEgPDwgKC1yb3dJbmRleEZsYWdzSW5kZXhbaV0pKSkgKyAiICgiICsgcm93SW5kZXhGbGFnc0luZGV4W2ldKTsKKyAgICBlbHNlCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiwgZmxhZ3MgPSAiICsgSW50ZWdlci50b0JpbmFyeVN0cmluZyhyb3dJbmRleEZsYWdzW3Jvd0luZGV4RmxhZ3NJbmRleFtpXV0pICsgIiAoIiArIHJvd0luZGV4RmxhZ3NJbmRleFtpXSk7CisgICAgU3lzdGVtLm91dC5wcmludGxuKCIpLCBzaGlmdCA9ICIgKyByb3dJbmRleFNoaWZ0c1tpXSk7Cit9CisvKgorICAgICAgICBpbnQgdGhlb3JldGljYWxNaW5Sb3dzID0gcG9wdWxhdGVkQ2VsbHMgLyBudW1Db2xzOworICAgICAgICBpZiAocG9wdWxhdGVkQ2VsbHMgJSBudW1Db2xzICE9IDApCisgICAgICAgICAgICB0aGVvcmV0aWNhbE1pblJvd3MrKzsKKyAgICAgICAgaW50IG9uZUNlbGxSb3dzID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByb3dJbmRleEZsYWdzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBkb3VibGUgdGVtcCA9IE1hdGgubG9nKHJvd0luZGV4RmxhZ3NbaV0pIC8gTWF0aC5sb2coMik7CisgICAgICAgICAgICBpZiAodGVtcCA9PSAoaW50KXRlbXApCisgICAgICAgICAgICAgICAgb25lQ2VsbFJvd3MrKzsKKyAgICAgICAgfQorCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbignXG4nKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUb3RhbCB3b3JkcyBpbiBpbnB1dCA9ICIgKyB0b3RhbFdvcmRzKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUb3RhbCB1bmlxdWUgd29yZHMgPSAiICsgdW5pcXVlV29yZHMgKyAiLCBjb21wcmlzaW5nICIgKworICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxVbmlxdWVXb3JkQ2hhcnMgKyAiIGNoYXJhY3RlcnNcbiIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk51bWJlciBvZiBwb3B1bGF0ZWQgY2VsbHMgPSAiICsgcG9wdWxhdGVkQ2VsbHMpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRvdGFsIG51bWJlciBvZiBjZWxscyA9ICIgKyAodGFibGUubGVuZ3RoKSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUmVzaWRlbmN5ID0gIiArICgoZmxvYXQpcG9wdWxhdGVkQ2VsbHMgLyB0YWJsZS5sZW5ndGggKiAxMDApICsgJyUnKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJSYXRpbyBvZiBwb3B1bGF0ZWQgY2VsbHMgdG8gdW5pcXVlLXdvcmQgY2hhcmFjdGVycyA9ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgKChmbG9hdClwb3B1bGF0ZWRDZWxscyAvIHRvdGFsVW5pcXVlV29yZENoYXJzICogMTAwKSArICclJyk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUmF0aW8gb2YgdG90YWwgY2VsbHMgdG8gdW5pcXVlLXdvcmQgY2hhcmFjdGVycyA9ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgKChmbG9hdCl0YWJsZS5sZW5ndGggLyB0b3RhbFVuaXF1ZVdvcmRDaGFycyAqIDEwMCkgKyAnJScpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk51bWJlciBvZiByb3dzID0gIiArICh0YWJsZS5sZW5ndGggLyBudW1Db2xzKSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVGhlb3JldGljYWwgbWluaW11bSBudW1iZXIgb2Ygcm93cyA9ICIgKyB0aGVvcmV0aWNhbE1pblJvd3MpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlJhdGlvIG9mIG51bWJlciBvZiByb3dzIHRvIHRoZW9yZXRpY2FsIG1pbmltdW0gPSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICgoZmxvYXQpKHRhYmxlLmxlbmd0aCAvIG51bUNvbHMpIC8gdGhlb3JldGljYWxNaW5Sb3dzICogMTAwKSArICclJyk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTnVtYmVyIG9mIGNvbmNlcHR1YWwgcm93cyA9ICIgKyByb3dJbmRleC5sZW5ndGgpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvbmNlcHR1YWwgcm93cyB3aXRoIG9ubHkgb25lIHBvcHVsYXRlZCBjZWxsID0gIiArIG9uZUNlbGxSb3dzKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJSYXRpbyBvZiBvbmUtY2VsbCByb3dzIHRvIHRvdGFsIGNvbmNlcHR1YWwgcm93cyA9ICIgKyAoKChmbG9hdClvbmVDZWxsUm93cykKKyAgICAgICAgICAgICAgICAgICAgICAgIC8gcm93SW5kZXgubGVuZ3RoICogMTAwKSArICclJyk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQXZlcmFnZSBudW1iZXIgb2YgcG9wdWxhdGVkIGNlbGxzIGluIG11bHRpLWNlbGwgcm93cyA9ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgKChmbG9hdCkocG9wdWxhdGVkQ2VsbHMgLSBvbmVDZWxsUm93cykgLyAocm93SW5kZXgubGVuZ3RoIC0gb25lQ2VsbFJvd3MpKSk7CisKKyAgICAgICAgaW50IHN0b3JhZ2VVc2VkID0gdGFibGUubGVuZ3RoICogMiArIHJvd0luZGV4Lmxlbmd0aCAqIDIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgcm93SW5kZXhGbGFncy5sZW5ndGggKiA0ICsgcm93SW5kZXhTaGlmdHMubGVuZ3RoOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRvdGFsIG51bWJlciBvZiBieXRlcyBpbiB0YWJsZSAoaW5jbHVkaW5nIGluZGV4ZXMpID0gIiArCisgICAgICAgICAgICAgICAgICAgICAgICBzdG9yYWdlVXNlZCk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQnl0ZXMgb2Ygb3ZlcmhlYWQgcGVyIHVuaXF1ZS13b3JkIGNoYXJhY3RlciA9ICIgKyAoKGRvdWJsZSkoc3RvcmFnZVVzZWQKKyAgICAgICAgICAgICAgICAgICAgICAgIC0gKHRvdGFsVW5pcXVlV29yZENoYXJzICogMikpIC8gdG90YWxVbmlxdWVXb3JkQ2hhcnMpKTsKKyovCisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHByaW50Q29uY2VwdHVhbFRhYmxlKFN0cmluZyBpbml0aWFsU3RyaW5nLCBpbnQgc3RhdGUsIGJvb2xlYW5bXSBmbGFncykgeworICAgICAgICBpZiAoaW5pdGlhbFN0cmluZy5sZW5ndGgoKSA9PSAwKQorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJyb290OiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oaW5pdGlhbFN0cmluZyArICc6Jyk7CisKKyAgICAgICAgaWYgKCFmbGFnc1tzdGF0ZV0pIHsKKyAgICAgICAgICAgIGZsYWdzW3N0YXRlXSA9IHRydWU7CisgICAgICAgICAgICBwcmludE51bWJlcihzdGF0ZSwgNCk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCI6Iik7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUNvbHM7IGkrKykKKyAgICAgICAgICAgICAgICBwcmludE51bWJlcihhdChzdGF0ZSwgaSksIDQpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgIH0KKworICAgICAgICBpbnQgbmV4dFN0YXRlOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUNvbHM7IGkrKykgeworICAgICAgICAgICAgbmV4dFN0YXRlID0gYXQoc3RhdGUsIGkpOworICAgICAgICAgICAgaWYgKG5leHRTdGF0ZSA+IDAgJiYgIWZsYWdzW25leHRTdGF0ZV0pIHsKKyAgICAgICAgICAgICAgICBwcmludE51bWJlcihuZXh0U3RhdGUsIDQpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIjoiKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG51bUNvbHM7IGorKykKKyAgICAgICAgICAgICAgICAgICAgcHJpbnROdW1iZXIoYXQobmV4dFN0YXRlLCBqKSwgNCk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1Db2xzOyBpKyspIHsKKyAgICAgICAgICAgIG5leHRTdGF0ZSA9IGF0KHN0YXRlLCBpKTsKKyAgICAgICAgICAgIGlmIChuZXh0U3RhdGUgPiAwICYmICFmbGFnc1tuZXh0U3RhdGVdKSB7CisgICAgICAgICAgICAgICAgY2hhciBuZXh0Q2hhcjsKKyAgICAgICAgICAgICAgICBpZiAobmV4dFN0YXRlID09IDI3KQorICAgICAgICAgICAgICAgICAgICBuZXh0Q2hhciA9ICcgJzsKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChuZXh0U3RhdGUgPT0gMjYpCisgICAgICAgICAgICAgICAgICAgIG5leHRDaGFyID0gJ1wnJzsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIG5leHRDaGFyID0gKGNoYXIpKGkgKyAnYScpOworICAgICAgICAgICAgICAgIGZsYWdzW25leHRTdGF0ZV0gPSB0cnVlOworICAgICAgICAgICAgICAgIHByaW50Q29uY2VwdHVhbFRhYmxlKGluaXRpYWxTdHJpbmcgKyBuZXh0Q2hhciwgbmV4dFN0YXRlLCBmbGFncyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcHJpbnRXb3JkTGlzdChTdHJpbmcgcGFydGlhbFdvcmQsIGludCBzdGF0ZSwgUHJpbnRXcml0ZXIgb3V0KQorICAgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgaWYgKHN0YXRlID09IC0xKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocGFydGlhbFdvcmQpOworICAgICAgICAgICAgaWYgKG91dCAhPSBudWxsKQorICAgICAgICAgICAgICAgIG91dC5wcmludGxuKHBhcnRpYWxXb3JkKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtQ29sczsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGF0KHN0YXRlLCBpKSAhPSAwKQorICAgICAgICAgICAgICAgICAgICBwcmludFdvcmRMaXN0KHBhcnRpYWxXb3JkICsgcmV2ZXJzZUNvbHVtbk1hcFtpXSwgYXQoc3RhdGUsIGkpLCBvdXQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHdyaXRlRGljdGlvbmFyeUZpbGUoRGF0YU91dHB1dFN0cmVhbSBvdXQpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIG91dC53cml0ZUludCgwKTsgICAgLy8gdmVyc2lvbiBudW1iZXIKKworICAgICAgICBjaGFyW10gY29sdW1uTWFwSW5kZXhlcyA9IGNvbHVtbk1hcC5nZXRJbmRleEFycmF5KCk7CisgICAgICAgIG91dC53cml0ZUludChjb2x1bW5NYXBJbmRleGVzLmxlbmd0aCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY29sdW1uTWFwSW5kZXhlcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG91dC53cml0ZVNob3J0KChzaG9ydCljb2x1bW5NYXBJbmRleGVzW2ldKTsKKyAgICAgICAgYnl0ZVtdIGNvbHVtbk1hcFZhbHVlcyA9IGNvbHVtbk1hcC5nZXRWYWx1ZUFycmF5KCk7CisgICAgICAgIG91dC53cml0ZUludChjb2x1bW5NYXBWYWx1ZXMubGVuZ3RoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb2x1bW5NYXBWYWx1ZXMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvdXQud3JpdGVCeXRlKChieXRlKWNvbHVtbk1hcFZhbHVlc1tpXSk7CisKKyAgICAgICAgb3V0LndyaXRlSW50KG51bUNvbHMpOworICAgICAgICBvdXQud3JpdGVJbnQobnVtQ29sR3JvdXBzKTsKKworICAgICAgICBvdXQud3JpdGVJbnQocm93SW5kZXgubGVuZ3RoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByb3dJbmRleC5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG91dC53cml0ZVNob3J0KHJvd0luZGV4W2ldKTsKKworICAgICAgICBvdXQud3JpdGVJbnQocm93SW5kZXhGbGFnc0luZGV4Lmxlbmd0aCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcm93SW5kZXhGbGFnc0luZGV4Lmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb3V0LndyaXRlU2hvcnQocm93SW5kZXhGbGFnc0luZGV4W2ldKTsKKyAgICAgICAgb3V0LndyaXRlSW50KHJvd0luZGV4RmxhZ3MubGVuZ3RoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByb3dJbmRleEZsYWdzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb3V0LndyaXRlSW50KHJvd0luZGV4RmxhZ3NbaV0pOworCisgICAgICAgIG91dC53cml0ZUludChyb3dJbmRleFNoaWZ0cy5sZW5ndGgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJvd0luZGV4U2hpZnRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb3V0LndyaXRlQnl0ZShyb3dJbmRleFNoaWZ0c1tpXSk7CisKKyAgICAgICAgb3V0LndyaXRlSW50KHRhYmxlLmxlbmd0aCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGFibGUubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvdXQud3JpdGVTaG9ydCh0YWJsZVtpXSk7CisKKyAgICAgICAgb3V0LmNsb3NlKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHByaW50TnVtYmVyKGludCB4LCBpbnQgd2lkdGgpIHsKKyAgICAgICAgU3RyaW5nIHMgPSBTdHJpbmcudmFsdWVPZih4KTsKKyAgICAgICAgaWYgKHdpZHRoID4gcy5sZW5ndGgoKSkKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoc3BhY2VzLnN1YnN0cmluZygwLCB3aWR0aCAtIHMubGVuZ3RoKCkpKTsKKyAgICAgICAgaWYgKHggIT0gMCkKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQocyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoJy4nKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgc2hvcnQgYXQoaW50IHJvdywgY2hhciBjaCkgeworICAgICAgICBpbnQgY29sID0gY29sdW1uTWFwLmVsZW1lbnRBdChjaCk7CisgICAgICAgIHJldHVybiBhdChyb3csIGNvbCk7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIHNob3J0IGF0KGludCByb3csIGludCBjb2wpIHsKKyAgICAgICAgaWYgKGNlbGxJc1BvcHVsYXRlZChyb3csIGNvbCkpCisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxBdChyb3dJbmRleFtyb3ddLCBjb2wgKyByb3dJbmRleFNoaWZ0c1tyb3ddKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIGNlbGxJc1BvcHVsYXRlZChpbnQgcm93LCBpbnQgY29sKSB7CisgICAgICAgIGlmIChyb3dJbmRleEZsYWdzSW5kZXhbcm93XSA8IDApCisgICAgICAgICAgICByZXR1cm4gY29sID09IC1yb3dJbmRleEZsYWdzSW5kZXhbcm93XTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpbnQgZmxhZ3MgPSByb3dJbmRleEZsYWdzW3Jvd0luZGV4RmxhZ3NJbmRleFtyb3ddICsgKGNvbCA+PiA1KV07CisgICAgICAgICAgICByZXR1cm4gKGZsYWdzICYgKDEgPDwgKGNvbCAmIDB4MWYpKSkgIT0gMDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgZmluYWwgc2hvcnQgaW50ZXJuYWxBdChpbnQgcm93LCBpbnQgY29sKSB7CisgICAgICAgIHJldHVybiB0YWJsZVtyb3cgKiBudW1Db2xzICsgY29sXTsKKyAgICB9CisKKyAgICBwcml2YXRlIENvbXBhY3RCeXRlQXJyYXkgY29sdW1uTWFwID0gbnVsbDsKKyAgICBwcml2YXRlIGNoYXJbXSByZXZlcnNlQ29sdW1uTWFwID0gbnVsbDsKKyAgICBwcml2YXRlIGludCBudW1Db2xzOworICAgIHByaXZhdGUgaW50IG51bUNvbEdyb3VwczsKKyAgICBwcml2YXRlIHNob3J0W10gdGFibGUgPSBudWxsOworICAgIHByaXZhdGUgc2hvcnRbXSByb3dJbmRleCA9IG51bGw7CisgICAgcHJpdmF0ZSBpbnRbXSByb3dJbmRleEZsYWdzID0gbnVsbDsKKyAgICBwcml2YXRlIHNob3J0W10gcm93SW5kZXhGbGFnc0luZGV4ID0gbnVsbDsKKyAgICBwcml2YXRlIGJ5dGVbXSByb3dJbmRleFNoaWZ0cyA9IG51bGw7CisKKyAgICBwcml2YXRlIGludCB0b3RhbFdvcmRzID0gMDsKKyAgICBwcml2YXRlIGludCB1bmlxdWVXb3JkcyA9IDA7CisgICAgcHJpdmF0ZSBpbnQgdG90YWxVbmlxdWVXb3JkQ2hhcnMgPSAwOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIHNwYWNlcyA9ICIgICAgICAiOworfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvcmJiaS9Xcml0ZVRhYmxlc1RvRmlsZXMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9yYmJpL1dyaXRlVGFibGVzVG9GaWxlcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdhODQ2M2MKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvcmJiaS9Xcml0ZVRhYmxlc1RvRmlsZXMuamF2YQpAQCAtMCwwICsxLDU4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvcmJiaS9BdHRpYy9Xcml0ZVRhYmxlc1RvRmlsZXMuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMy8wMSAwMjozNzo0NyAkIAorICogJFJldmlzaW9uOiAxLjMgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLnJiYmk7CisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKKworcHVibGljIGNsYXNzIFdyaXRlVGFibGVzVG9GaWxlcyB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgd3JpdGVCYXRjaCh0cnVlKTsKKyAgICAgICAgd3JpdGVCYXRjaChmYWxzZSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCB3cml0ZUJhdGNoKGJvb2xlYW4gbGl0dGxlRW5kaWFuKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBCcmVha0l0ZXJhdG9yIGJpOworICAgICAgICBTdHJpbmcgc3VmZml4ID0gKGxpdHRsZUVuZGlhbiA/ICJMRSIgOiAiQkUiKTsKKyAgICAgICAgCisgICAgICAgIGJpID0gQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZSgpOworICAgICAgICAoKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpYmkpLndyaXRlVGFibGVzVG9GaWxlKG5ldyBGaWxlT3V0cHV0U3RyZWFtKAorICAgICAgICAgICAgICAgICAgICAiY2hhciIgKyBzdWZmaXggKyAiLmJyayIpLCBsaXR0bGVFbmRpYW4pOworICAgICAgICAKKyAgICAgICAgYmkgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSgpOworICAgICAgICAoKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpYmkpLndyaXRlVGFibGVzVG9GaWxlKG5ldyBGaWxlT3V0cHV0U3RyZWFtKAorICAgICAgICAgICAgICAgICAgICAid29yZCIgKyBzdWZmaXggKyAiLmJyayIpLCBsaXR0bGVFbmRpYW4pOworICAgICAgICAKKyAgICAgICAgYmkgPSBCcmVha0l0ZXJhdG9yLmdldExpbmVJbnN0YW5jZSgpOworICAgICAgICAoKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpYmkpLndyaXRlVGFibGVzVG9GaWxlKG5ldyBGaWxlT3V0cHV0U3RyZWFtKAorICAgICAgICAgICAgICAgICAgICAibGluZSIgKyBzdWZmaXggKyAiLmJyayIpLCBsaXR0bGVFbmRpYW4pOworICAgICAgICAKKyAgICAgICAgYmkgPSBCcmVha0l0ZXJhdG9yLmdldFNlbnRlbmNlSW5zdGFuY2UoKTsKKyAgICAgICAgKChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKWJpKS53cml0ZVRhYmxlc1RvRmlsZShuZXcgRmlsZU91dHB1dFN0cmVhbSgKKyAgICAgICAgICAgICAgICAgICAgInNlbnQiICsgc3VmZml4ICsgIi5icmsiKSwgbGl0dGxlRW5kaWFuKTsKKworICAgICAgICBiaSA9IEJyZWFrSXRlcmF0b3IuZ2V0VGl0bGVJbnN0YW5jZSgpOworICAgICAgICAoKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpYmkpLndyaXRlVGFibGVzVG9GaWxlKG5ldyBGaWxlT3V0cHV0U3RyZWFtKAorICAgICAgICAgICAgICAgICAgICAidGl0bGUiICsgc3VmZml4ICsgIi5icmsiKSwgbGl0dGxlRW5kaWFuKTsKKworICAgICAgICBqYXZhLnV0aWwuTG9jYWxlIHRoYWkgPSBuZXcgamF2YS51dGlsLkxvY2FsZSgidGgiLCAiIiwgIiIpOworICAgICAgICBiaSA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKHRoYWkpOworICAgICAgICAoKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpYmkpLndyaXRlVGFibGVzVG9GaWxlKG5ldyBGaWxlT3V0cHV0U3RyZWFtKAorICAgICAgICAgICAgICAgICAgICAid29yZF90aCIgKyBzdWZmaXggKyAiLmJyayIpLCBsaXR0bGVFbmRpYW4pOworCisgICAgICAgIGJpID0gQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UodGhhaSk7CisgICAgICAgICgoUnVsZUJhc2VkQnJlYWtJdGVyYXRvciliaSkud3JpdGVUYWJsZXNUb0ZpbGUobmV3IEZpbGVPdXRwdXRTdHJlYW0oCisgICAgICAgICAgICAgICAgICAgICJsaW5lX3RoIiArIHN1ZmZpeCArICIuYnJrIiksIGxpdHRsZUVuZGlhbik7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L1NvdXJjZVNldC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L1NvdXJjZVNldC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3M2U5ODkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvU291cmNlU2V0LmphdmEKQEAgLTAsMCArMSwxMDkgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChjKSAyMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICAxMS8yOS8yMDAxICBhbGl1ICAgICAgICBDcmVhdGlvbi4KKyogICAwNi8yNi8yMDAyICBhbGl1ICAgICAgICBNb3ZlZCB0byBjb20uaWJtLmljdS5kZXYudG9vbC50cmFuc2xpdAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wudHJhbnNsaXQ7CitpbXBvcnQgamF2YS51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRvb2wudHJhbnNsaXQuVW5pY29kZVNldENsb3N1cmU7CitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKKworLyoqCisgKiBDbGFzcyB0aGF0IGdlbmVyYXRlcyBzb3VyY2Ugc2V0IGluZm9ybWF0aW9uIGZvciBhIHRyYW5zbGl0ZXJhdG9yLgorICogCisgKiBUbyBydW4sIHVzZToKKyAqIAorICogICBqYXZhIGNvbS5pYm0uaWN1LmRldi50b29sLnRyYW5zbGl0LlNvdXJjZVNldCBMYXRpbi1LYXRha2FuYSBORkQgbG93ZXIKKyAqIAorICogT3V0cHV0IGlzIHByb2R1Y2VkIGluIHRoZSBjb21tYW5kIGNvbnNvbGUsIGFuZCBhIGZpbGUgd2l0aCBtb3JlIGRldGFpbCBpcyBhbHNvIHdyaXR0ZW4uCisgKiAKKyAqIFRvIHNlZSBpZiBpdCB3b3JrcywgdXNlOgorICogCisgKiAgIGphdmEgY29tLmlibS5pY3UuZGV2LnRlc3QudHJhbnNsaXQuVHJhbnNsaXRlcmF0b3JUZXN0IC12IC1ub3Rocm93IFRlc3RJbmNyZW1lbnRhbFByb2dyZXNzCisgKiAKKyAqIGFuZAorICogIAorICogICBqYXZhIGNvbS5pYm0uaWN1LmRldi5kZW1vLnRyYW5zbGl0LkRlbW8KKyAqLworcHVibGljIGNsYXNzIFNvdXJjZVNldCB7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBpZiAoYXJncy5sZW5ndGggPT0gMCkgeworICAgICAgICAgICAgLy8gQ29tcHV0ZSBhbmQgZGlzcGxheSB0aGUgc291cmNlIHNldHMgZm9yIGFsbCBzeXN0ZW0KKyAgICAgICAgICAgIC8vIHRyYW5zbGl0ZXJhdG9ycy4KKyAgICAgICAgICAgIGZvciAoRW51bWVyYXRpb24gZSA9IFRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZUlEcygpOyBlLmhhc01vcmVFbGVtZW50cygpOyApIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgSUQgPSAoU3RyaW5nKSBlLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgc2hvd1NvdXJjZVNldChJRCwgTm9ybWFsaXplci5OT05FLCBmYWxzZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBVc2FnZTogSUQgW05GS0QgfCBORkRdIFtsb3dlcl0KKyAgICAgICAgICAgIE5vcm1hbGl6ZXIuTW9kZSBtID0gTm9ybWFsaXplci5OT05FOworICAgICAgICAgICAgYm9vbGVhbiBsb3dlckZpcnN0ID0gZmFsc2U7CisgICAgICAgICAgICBpZiAoYXJncy5sZW5ndGggPj0gMikgeworICAgICAgICAgICAgICAgIGlmIChhcmdzWzFdLmVxdWFsc0lnbm9yZUNhc2UoIk5GRCIpKSB7CisgICAgICAgICAgICAgICAgICAgIG0gPSBOb3JtYWxpemVyLk5GRDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZ3NbMV0uZXF1YWxzSWdub3JlQ2FzZSgiTkZLRCIpKSB7CisgICAgICAgICAgICAgICAgICAgIG0gPSBOb3JtYWxpemVyLk5GS0Q7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdXNhZ2UoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYXJncy5sZW5ndGggPj0gMykgeworICAgICAgICAgICAgICAgIGlmIChhcmdzWzJdLmVxdWFsc0lnbm9yZUNhc2UoImxvd2VyIikpIHsKKyAgICAgICAgICAgICAgICAgICAgbG93ZXJGaXJzdCA9IHRydWU7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdXNhZ2UoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYXJncy5sZW5ndGggPiAzKSB7CisgICAgICAgICAgICAgICAgdXNhZ2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNob3dTb3VyY2VTZXQoYXJnc1swXSwgbSwgbG93ZXJGaXJzdCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCBzaG93U291cmNlU2V0KFN0cmluZyBJRCwgTm9ybWFsaXplci5Nb2RlIG0sIGJvb2xlYW4gbG93ZXJGaXJzdCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgRmlsZSBmID0gbmV3IEZpbGUoIlVuaWNvZGVTZXRDbG9zdXJlLnR4dCIpOworICAgICAgICBTdHJpbmcgZmlsZW5hbWUgPSBmLmdldENhbm9uaWNhbEZpbGUoKS50b1N0cmluZygpOworICAgICAgICBvdXQgPSBuZXcgUHJpbnRXcml0ZXIoCisgICAgICAgICAgICBuZXcgT3V0cHV0U3RyZWFtV3JpdGVyKAorICAgICAgICAgICAgICAgIG5ldyBGaWxlT3V0cHV0U3RyZWFtKGZpbGVuYW1lKSwgIlVURi04IikpOworICAgICAgICBvdXQucHJpbnQoJ1x1RkVGRicpOyAvLyBCT00KKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiV3JpdGluZyAiICsgZmlsZW5hbWUpOworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoSUQpOworICAgICAgICBzaG93U291cmNlU2V0QXV4KHQsIG0sIGxvd2VyRmlyc3QsIHRydWUpOworICAgICAgICBzaG93U291cmNlU2V0QXV4KHQuZ2V0SW52ZXJzZSgpLCBtLCBsb3dlckZpcnN0LCBmYWxzZSk7CisgICAgICAgIG91dC5jbG9zZSgpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgUHJpbnRXcml0ZXIgb3V0OworICAgIAorICAgIHN0YXRpYyB2b2lkIHNob3dTb3VyY2VTZXRBdXgoVHJhbnNsaXRlcmF0b3IgdCwgTm9ybWFsaXplci5Nb2RlIG0sIGJvb2xlYW4gbG93ZXJGaXJzdCwgYm9vbGVhbiBmb3J3YXJkKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBVbmljb2RlU2V0IHNvdXJjZVNldCA9IHQuZ2V0U291cmNlU2V0KCk7CisgICAgICAgIGlmIChtICE9IE5vcm1hbGl6ZXIuTk9ORSB8fCBsb3dlckZpcnN0KSB7CisgICAgICAgICAgICBVbmljb2RlU2V0Q2xvc3VyZS5jbG9zZShzb3VyY2VTZXQsIG0sIGxvd2VyRmlyc3QpOworICAgICAgICB9CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbih0LmdldElEKCkgKyAiOiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVNldC50b1BhdHRlcm4odHJ1ZSkpOworICAgICAgICBvdXQucHJpbnRsbigiIyBNSU5JTUFMIEZJTFRFUiBHRU5FUkFURUQgRk9SOiAiICsgdC5nZXRJRCgpICsgKGZvcndhcmQgPyAiIiA6ICIgUkVWRVJTRSIpKTsKKyAgICAgICAgb3V0LnByaW50bG4oIjo6ICIgCisgICAgICAgICAgICArIChmb3J3YXJkID8gIiIgOiAiKCAiKSAKKyAgICAgICAgICAgICsgc291cmNlU2V0LnRvUGF0dGVybih0cnVlKSAKKyAgICAgICAgICAgICsgKGZvcndhcmQgPyAiIiA6ICIgKSIpCisgICAgICAgICAgICArICIgOyIpOworICAgICAgICBvdXQucHJpbnRsbigiIyBVbmljb2RlOiAiICsgc291cmNlU2V0LnRvUGF0dGVybihmYWxzZSkpOworICAgICAgICBvdXQucHJpbnRsbigpOworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIHVzYWdlKCkgeworICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlVzYWdlOiBJRCBbIE5GRHxORktEIFtsb3dlcl0gXSIpOworICAgICAgICBTeXN0ZW0uZXhpdCgxKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvVHJhbnMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9UcmFucy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNlM2MyZGUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvVHJhbnMuamF2YQpAQCAtMCwwICsxLDE0NyBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9UcmFucy5qYXZhLHYgJAorICogJERhdGU6IDIwMDIvMDgvMTMgMjI6MTE6MjYgJAorICogJFJldmlzaW9uOiAxLjQgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wudHJhbnNsaXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGphdmEuaW8uKjsKKworLyoqCisgKiBBIGNvbW1hbmQtbGluZSBpbnRlcmZhY2UgdG8gdGhlIElDVTRKIHRyYW5zbGl0ZXJhdG9ycy4KKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqLworcHVibGljIGNsYXNzIFRyYW5zIHsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBib29sZWFuIGlzSFRNTCA9IGZhbHNlOworICAgICAgICBpbnQgcG9zID0gMDsKKworICAgICAgICBTdHJpbmcgdHJhbnNOYW1lID0gbnVsbDsgLy8gZmlyc3QgdW50YWdnZWQgc3RyaW5nIGlzIHRoaXMKKyAgICAgICAgU3RyaW5nIGluVGV4dCA9IG51bGw7IC8vIGFsbCBvdGhlciB1bnRhZ2dlZCBzdHJpbmdzIGFyZSB0aGlzCisgICAgICAgIFN0cmluZyBpbk5hbWUgPSBudWxsOworICAgICAgICBTdHJpbmcgb3V0TmFtZSA9IG51bGw7CisKKyAgICAgICAgd2hpbGUgKHBvcyA8IGFyZ3MubGVuZ3RoKSB7CisgICAgICAgICAgICBpZiAoYXJnc1twb3NdLmVxdWFscygiLWh0bWwiKSkgeworICAgICAgICAgICAgICAgIGlzSFRNTCA9IHRydWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZ3NbcG9zXS5lcXVhbHMoIi1pIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoKytwb3MgPT0gYXJncy5sZW5ndGgpIHVzYWdlKCk7CisgICAgICAgICAgICAgICAgaW5OYW1lID0gYXJnc1twb3NdOworICAgICAgICAgICAgfSBlbHNlIGlmIChhcmdzW3Bvc10uZXF1YWxzKCItbyIpKSB7CisgICAgICAgICAgICAgICAgaWYgKCsrcG9zID09IGFyZ3MubGVuZ3RoKSB1c2FnZSgpOworICAgICAgICAgICAgICAgIG91dE5hbWUgPSBhcmdzW3Bvc107CisgICAgICAgICAgICB9IGVsc2UgaWYgKHRyYW5zTmFtZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdHJhbnNOYW1lID0gYXJnc1twb3NdOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoaW5UZXh0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgaW5UZXh0ID0gYXJnc1twb3NdOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGluVGV4dCA9IGluVGV4dCArICIgIiArIGFyZ3NbcG9zXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICArK3BvczsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChpblRleHQgIT0gbnVsbCAmJiBpbk5hbWUgIT0gbnVsbCkgeworICAgICAgICAgICAgdXNhZ2UoKTsKKyAgICAgICAgfQorCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHRyYW5zID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UodHJhbnNOYW1lKTsKKyAgICAgICAgQnVmZmVyZWRSZWFkZXIgaW4gPSBudWxsOworICAgICAgICBpZiAoaW5OYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgIGluID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKG5ldyBJbnB1dFN0cmVhbVJlYWRlcihuZXcgRmlsZUlucHV0U3RyZWFtKGluTmFtZSksICJVVEY4IikpOworICAgICAgICB9CisgICAgICAgIFByaW50V3JpdGVyIG91dCA9IG51bGw7CisgICAgICAgIGlmIChvdXROYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgIG91dCA9IG5ldyBQcmludFdyaXRlcihuZXcgT3V0cHV0U3RyZWFtV3JpdGVyKG5ldyBGaWxlT3V0cHV0U3RyZWFtKG91dE5hbWUpLCAiVVRGOCIpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG91dCA9IG5ldyBQcmludFdyaXRlcihTeXN0ZW0ub3V0KTsKKyAgICAgICAgfQorICAgICAgICB0cmFucyh0cmFucywgaW5UZXh0LCBpbiwgb3V0LCBpc0hUTUwpOworICAgICAgICBvdXQuY2xvc2UoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCB0cmFucyhUcmFuc2xpdGVyYXRvciB0cmFucywgU3RyaW5nIGluVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICBCdWZmZXJlZFJlYWRlciBpbiwgUHJpbnRXcml0ZXIgb3V0LCBib29sZWFuIGlzSFRNTCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgYm9vbGVhbiBpblRhZyA9IGZhbHNlOyAvLyBJZiB0cnVlLCB3ZSBhcmUgd2l0aGluIGEgPHRhZz4KKyAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgU3RyaW5nIGxpbmUgPSBudWxsOworICAgICAgICAgICAgaWYgKGluVGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgbGluZSA9IGluVGV4dDsKKyAgICAgICAgICAgICAgICBpblRleHQgPSBudWxsOworICAgICAgICAgICAgfSBlbHNlIGlmIChpbiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgbGluZSA9IGluLnJlYWRMaW5lKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobGluZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaXNIVE1MKSB7CisgICAgICAgICAgICAgICAgLy8gUGFzcyB0YWdzIGJldHdlZW4gPCBhbmQgPiB1bmNoYW5nZWQKKyAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgICAgIGludCByaWdodCA9IC0xOworICAgICAgICAgICAgICAgIGlmIChpblRhZykgeworICAgICAgICAgICAgICAgICAgICByaWdodCA9IGxpbmUuaW5kZXhPZignPicpOworICAgICAgICAgICAgICAgICAgICBpZiAocmlnaHQgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByaWdodCA9IGxpbmUubGVuZ3RoKCktMTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGxpbmUuc3Vic3RyaW5nKDAsIHJpZ2h0KzEpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIipTOiIgKyBsaW5lLnN1YnN0cmluZygwLCByaWdodCsxKSk7CisgICAgICAgICAgICAgICAgICAgIGluVGFnID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGxlZnQgPSBsaW5lLmluZGV4T2YoJzwnLCByaWdodCsxKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxlZnQgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmlnaHQgPCBsaW5lLmxlbmd0aCgpLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKHRyYW5zLnRyYW5zbGl0ZXJhdGUobGluZS5zdWJzdHJpbmcocmlnaHQrMSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiVDoiICsgbGluZS5zdWJzdHJpbmcocmlnaHQrMSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLy8gQXBwZW5kIHRyYW5zbGl0ZXJhdGVkIHNlZ21lbnQgcmlnaHQrMS4ubGVmdC0xCisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQodHJhbnMudHJhbnNsaXRlcmF0ZShsaW5lLnN1YnN0cmluZyhyaWdodCsxLCBsZWZ0KSkpOworICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiVDoiICsgbGluZS5zdWJzdHJpbmcocmlnaHQrMSwgbGVmdCkpOworICAgICAgICAgICAgICAgICAgICByaWdodCA9IGxpbmUuaW5kZXhPZignPicsIGxlZnQrMSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChyaWdodCA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGluVGFnID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQobGluZS5zdWJzdHJpbmcobGVmdCkpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlM6IiArIGxpbmUuc3Vic3RyaW5nKGxlZnQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQobGluZS5zdWJzdHJpbmcobGVmdCwgcmlnaHQrMSkpOworICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiUzoiICsgbGluZS5zdWJzdHJpbmcobGVmdCwgcmlnaHQrMSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsaW5lID0gYnVmLnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxpbmUgPSB0cmFucy50cmFuc2xpdGVyYXRlKGxpbmUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb3V0LnByaW50bG4obGluZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IGZhbHNlOworCisgICAgLyoqCisgICAgICogRW1pdCB1c2FnZSBhbmQgZGllLgorICAgICAqLworICAgIHN0YXRpYyB2b2lkIHVzYWdlKCkgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlVzYWdlOiBqYXZhIGNvbS5pYm0uaWN1LmRldi50b29sLnRyYW5zbGl0LlRyYW5zIFstaHRtbF0gPHRyYW5zPiAoIDxpbnB1dD4gfCAtaSA8aW5maWxlPikgWyAtbyA8b3V0ZmlsZT4gXSIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIjx0cmFucz4gICBOYW1lIG9mIHRyYW5zbGl0ZXJhdG9yIik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiPGlucHV0PiAgIFRleHQgdG8gdHJhbnNsaXRlcmF0ZSIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIjxpbmZpbGU+ICBOYW1lIG9mIGlucHV0IGZpbGUiKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI8b3V0ZmlsZT4gTmFtZSBvZiBvdXRwdXQgZmlsZSIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIi1odG1sICAgICBPbmx5IHRyYW5zbGl0ZXJhdGUgdGV4dCBvdXRzaWRlIG9mIDx0YWdzPiIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIklucHV0IG1heSBjb21lIGZyb20gdGhlIGNvbW1hbmQgbGluZSBvciBhIGZpbGUuXG4iKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJPdXB1dCBtYXkgZ28gdG8gc3Rkb3V0IG9yIGEgZmlsZS5cbiIpOworICAgICAgICBTeXN0ZW0uZXhpdCgwKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvVW5pY29kZVNldENsb3N1cmUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9Vbmljb2RlU2V0Q2xvc3VyZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQ0YzY1OWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvVW5pY29kZVNldENsb3N1cmUuamF2YQpAQCAtMCwwICsxLDMwNSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L1VuaWNvZGVTZXRDbG9zdXJlLmphdmEsdiAkCisgKiAkRGF0ZTogMjAwMi8wNi8yMCAwMToxNzozOSAkCisgKiAkUmV2aXNpb246IDEuNyAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wudHJhbnNsaXQ7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisvL2ltcG9ydCBqYXZhLnRleHQuKjsKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworLy8gY29tLmlibS5pY3UuZGV2LnRvb2wudHJhbnNsaXQuVW5pY29kZVNldENsb3N1cmUKKy8vIGNvbS5pYm0uaWN1LmRldi50ZXN0LnRyYW5zbGl0LlRyYW5zbGl0ZXJhdG9yVGVzdAorCitwdWJsaWMgY2xhc3MgVW5pY29kZVNldENsb3N1cmUgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICAKKyAgICAgICAgVW5pY29kZVNldCBmb28gPSAJICAgIG5ldyBVbmljb2RlU2V0KCJbXHUxRkY2LVx1MUZGRFx1MjAwMC1cdTIwMDFcdTIxMjZdIik7CisgICAgICAgIAorICAgICAgICB0ZXN0KCk7CisgICAgICAgIC8qIFRoZSBmb2xsb3dpbmcgaXMgc3VwZXJjZWRlZCBieSBBbGFuJ3MgdG9vbAorICAgICAgICAKKyAgICAgICAgRmlsZSBmID0gbmV3IEZpbGUoIlVuaWNvZGVTZXRDbG9zdXJlLnR4dCIpOworICAgICAgICBTdHJpbmcgZmlsZW5hbWUgPSBmLmdldENhbm9uaWNhbEZpbGUoKS50b1N0cmluZygpOworICAgICAgICBvdXQgPSBuZXcgUHJpbnRXcml0ZXIoCisgICAgICAgICAgICBuZXcgT3V0cHV0U3RyZWFtV3JpdGVyKAorICAgICAgICAgICAgICAgIG5ldyBGaWxlT3V0cHV0U3RyZWFtKGZpbGVuYW1lKSwgIlVURi04IikpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIldyaXRpbmcgIiArIGZpbGVuYW1lKTsKKyAgICAgICAgb3V0LnByaW50KCdcdUZFRkYnKTsgLy8gQk9NCisgICAgICAgIAorICAgICAgICBnZW5lcmF0ZVNldHMoIkxhdGluLUthdGFrYW5hIiwgdHJ1ZSwgTm9ybWFsaXplci5ERUNPTVBfQ09NUEFULCB0cnVlLAorIlsnLC5hLXp+XHUwMERGXHUwMEU2XHUwMEYwXHUwMEY4XHUwMEZFXHUwMkJFXHUwMzAwLVx1MDM0RVx1MDM2MC1cdTAzNjJcdTA0ODMtXHUwNDg2XHUwNTkxLVx1MDVBMVx1MDVBMy1cdTA1QjlcdTA1QkItXHUwNUJEXHUwNUJGXHUwNUMxLVx1MDVDMlx1MDVDNFx1MDY0Qi1cdTA2NTVcdTA2NzBcdTA2RDYtXHUwNkRDXHUwNkRGLVx1MDZFNFx1MDZFNy1cdTA2RThcdTA2RUEtXHUwNkVEXHUwNzExXHUwNzMwLVx1MDc0QVx1MDdBNi1cdTA3QjBcdTA5MDEtXHUwOTAyXHUwOTNDXHUwOTQxLVx1MDk0OFx1MDk0RFx1MDk1MS1cdTA5NTRcdTA5NjItXHUwOTYzXHUwOTgxXHUwOUJDXHUwOUMxLVx1MDlDNFx1MDlDRFx1MDlFMi1cdTA5RTNcdTBBMDJcdTBBM0NcdTBBNDEtXHUwQTQyXHUwQTQ3LVx1MEE0OFx1MEE0Qi1cdTBBNERcdTBBNzAtXHUwQTcxXHUwQTgxLVx1MEE4Mlx1MEFCQ1x1MEFDMS1cdTBBQzVcdTBBQzctXHUwQUM4XHUwQUNEXHUwQjAxXHUwQjNDXHUwQjNGXHUwQjQxLVx1MEI0M1x1MEI0RFx1MEI1Nlx1MEI4Mlx1MEJDMFx1MEJDRFx1MEMzRS1cdTBDNDBcdTBDNDYtXHUwQzQ4XHUwQzRBLVx1MEM0RFx1MEM1NS1cdTBDNTZcdTBDQkZcdTBDQzZcdTBDQ0MtXHUwQ0NEXHUwRDQxLVx1MEQ0M1x1MEQ0RFx1MERDQVx1MEREMi1cdTBERDRcdTBERDZcdTBFMzFcdTBFMzQtXHUwRTNBXHUwRTQ3LVx1MEU0RVx1MEVCMVx1MEVCNC1cdTBFQjlcdTBFQkItXHUwRUJDXHUwRUM4LVx1MEVDRFx1MEYxOC1cdTBGMTlcdTBGMzVcdTBGMzdcdTBGMzlcdTBGNzEtXHUwRjdFXHUwRjgwLVx1MEY4NFx1MEY4Ni1cdTBGODdcdTBGOTAtXHUwRjk3XHUwRjk5LVx1MEZCQ1x1MEZDNlx1MTAyRC1cdTEwMzBcdTEwMzJcdTEwMzYtXHUxMDM3XHUxMDM5XHUxMDU4LVx1MTA1OVx1MTdCNy1cdTE3QkRcdTE3QzZcdTE3QzktXHUxN0QzXHUxOEE5XHUyMEQwLVx1MjBEQ1x1MjBFMVx1MzAyQS1cdTMwMkZcdUZCMUVcdUZFMjAtXHVGRTIzXFxVMDAwMUQxNjctXFxVMDAwMUQxNjlcXFUwMDAxRDE3Qi1cXFUwMDAxRDE4MlxcVTAwMDFEMTg1LVxcVTAwMDFEMThCXFxVMDAwMUQxQUEtXFxVMDAwMUQxQURdIgorICAgICAgICApOworICAgICAgICBnZW5lcmF0ZVNldHMoIkxhdGluLUthdGFrYW5hIiwgZmFsc2UsIE5vcm1hbGl6ZXIuREVDT01QX0NPTVBBVCwgZmFsc2UsCisiW35cdTMwMDEtXHUzMDAyXHUzMEExLVx1MzBBQlx1MzBBRFx1MzBBRlx1MzBCMVx1MzBCM1x1MzBCNVx1MzBCN1x1MzBCOVx1MzBCQlx1MzBCRFx1MzBCRlx1MzBDMVx1MzBDMy1cdTMwQzRcdTMwQzZcdTMwQzhcdTMwQ0EtXHUzMENGXHUzMEQyXHUzMEQ1XHUzMEQ4XHUzMERCXHUzMERFLVx1MzBGM1x1MzBGNS1cdTMwRjZcdTMwRkMtXHUzMEZEXSIKKyAgICAgICAgKTsKKyAgICAgICAgCisgICAgICAgIG91dC5jbG9zZSgpOworICAgICAgICAKKyAgICAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgICAgICBpZiAodHJ1ZSkgcmV0dXJuOyAvLyBza2lwIHRoZSBzdHVmZiB3ZSd2ZSBkb25lIGFscmVhZHkKKyAgICAgICAgCisgICAgICAgIGdlbmVyYXRlU2V0cygiQ3lyaWxsaWMtTGF0aW4iLCB0cnVlLCBOb3JtYWxpemVyLkRFQ09NUCwgZmFsc2UsCisgICAgICAgICAgICAiW1x1MDQwMlx1MDQwNC1cdTA0MDZcdTA0MDgtXHUwNDBCXHUwNDBGLVx1MDQxOFx1MDQxQS1cdTA0MzhcdTA0M0EtXHUwNDRGXHUwNDUyXHUwNDU0LVx1MDQ1Nlx1MDQ1OC1cdTA0NUJcdTA0NUZcdTA0OTAtXHUwNDk1XHUwNDk4LVx1MDQ5OVx1MDRENC1cdTA0RDVcdTA0RDgtXHUwNEQ5XSIKKyAgICAgICAgKTsKKyAgICAgICAgZ2VuZXJhdGVTZXRzKCJMYXRpbi1DeXJpbGxpYyIsIGZhbHNlLCBOb3JtYWxpemVyLkRFQ09NUCwgZmFsc2UsCisgICAgICAgICAgICAiW0EtWmEtelx1MDBDNlx1MDBFNlx1MDExMC1cdTAxMTFcdTAxOEZcdTAyNTlcdTAyQjktXHUwMkJBXSIKKyAgICAgICAgKTsKKyAgICAgICAgKi8KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIGdlbmVyYXRlU2V0cyhTdHJpbmcgbGFiZWwsIGJvb2xlYW4gZm9yd2FyZCwgCisgICAgICAgICAgICBOb3JtYWxpemVyLk1vZGUgbSwgYm9vbGVhbiBsb3dlckZpcnN0LCBTdHJpbmcgcnVsZXMpIHsKKyAgICAgICAgVW5pY29kZVNldCBzID0gbmV3IFVuaWNvZGVTZXQocnVsZXMpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkdlbmVyYXRpbmcgIiArIGxhYmVsICsgKGZvcndhcmQgPyAiIiA6ICIgQkFDS1dBUkQiKSk7CisgICAgICAgIGNsb3NlKHMsIG0sIGxvd2VyRmlyc3QpOworICAgICAgICBvdXQucHJpbnRsbigiIyBNSU5JTUFMIEZJTFRFUiBHRU5FUkFURUQgRk9SOiAiICsgbGFiZWwgKyAoZm9yd2FyZCA/ICIiIDogIiBCQUNLV0FSRCIpKTsKKyAgICAgICAgb3V0LnByaW50bG4oIjo6ICIgCisgICAgICAgICAgICArIChmb3J3YXJkID8gIiIgOiAiKCAiKSAKKyAgICAgICAgICAgICsgcy50b1BhdHRlcm4odHJ1ZSkgCisgICAgICAgICAgICArIChmb3J3YXJkID8gIiIgOiAiICkiKQorICAgICAgICAgICAgKyAiIDsiKTsKKyAgICAgICAgb3V0LnByaW50bG4oKTsKKyAgICAgICAgb3V0LnByaW50bG4oIlVuaWNvZGU6ICIgKyBzLnRvUGF0dGVybihmYWxzZSkpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgYm9vbGVhbiBHRU5FUkFURSA9IGZhbHNlOworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCB0ZXN0KCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIEZpbGUgZiA9IG5ldyBGaWxlKCJUZXN0VW5pY29kZVNldENsb3N1cmUudHh0Iik7CisgICAgICAgIFN0cmluZyBmaWxlbmFtZSA9IGYuZ2V0Q2Fub25pY2FsRmlsZSgpLnRvU3RyaW5nKCk7CisgICAgICAgIG91dCA9IG5ldyBQcmludFdyaXRlcigKKyAgICAgICAgICAgIG5ldyBPdXRwdXRTdHJlYW1Xcml0ZXIoCisgICAgICAgICAgICAgICAgbmV3IEZpbGVPdXRwdXRTdHJlYW0oZmlsZW5hbWUpLCAiVVRGLTgiKSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiV3JpdGluZyAiICsgZmlsZW5hbWUpOworICAgICAgICBvdXQucHJpbnQoJ1x1RkVGRicpOyAvLyBCT00KKyAgICAgICAgCisgICAgICAgIEdFTkVSQVRFID0gdHJ1ZTsKKyAgICAgICAgdGVzdCgiWzpEZXZhbmFnYXJpOl0iKTsKKyAgICAgICAgLyoKKyAgICAgICAgdGVzdCgiW1x1MDBFMEJjXSIpOworICAgICAgICB0ZXN0KCJbbV0iKTsKKyAgICAgICAgKi8KKyAgICAgICAgCisgICAgICAgIG91dC5jbG9zZSgpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZmluYWwgTm9ybWFsaXplci5Nb2RlW10gdGVzdE1vZGVzID0geworICAgICAgICBOb3JtYWxpemVyLk5PTkUsIE5vcm1hbGl6ZXIuTkZELCBOb3JtYWxpemVyLk5GQywgTm9ybWFsaXplci5ORktELCBOb3JtYWxpemVyLk5GS0N9OworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBtb2RlTmFtZXMgPSB7CisgICAgICAgICJOb05GIiwgIk5GRCIsICJORkMiLCAiTkZLRCIsICJORktDIn07CisgICAgICAgIAorICAgIHN0YXRpYyBmaW5hbCBib29sZWFuW10gdGVzdENhc2VzID0geworICAgICAgICBmYWxzZSwgdHJ1ZX07CisgICAgc3RhdGljIGZpbmFsIFN0cmluZ1tdIGNhc2VOYW1lcyA9IHsKKyAgICAgICAgIm5vTG93ZXIiLCAibG93ZXIifTsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgdGVzdChTdHJpbmcgdGVzdFN0cikgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIFVuaWNvZGVTZXQgb3JpZ2luYWwgPSBuZXcgVW5pY29kZVNldCh0ZXN0U3RyKTsKKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVGVzdGluZyBDbG9zdXJlIG9mOiAiICsgb3JpZ2luYWwudG9QYXR0ZXJuKHRydWUpKTsKKyAgICAgICAgb3V0LnByaW50bG4oIlRlc3RpbmcgQ2xvc3VyZSBvZjogIiArIG9yaWdpbmFsLnRvUGF0dGVybihmYWxzZSkpOworICAgICAgICBVbmljb2RlU2V0IHJhdyA9IG5ldyBVbmljb2RlU2V0KG9yaWdpbmFsKTsKKyAgICAgICAgb3JpZ2luYWwuY29tcGxlbWVudCgpOworICAgICAgICBvcmlnaW5hbC5jb21wbGVtZW50KCk7CisgICAgICAgIGlmICghcmF3LmVxdWFscyhvcmlnaW5hbCkpIHsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCJFcXVhbHM6IiArIG9yaWdpbmFsLnRvUGF0dGVybihmYWxzZSkpOworICAgICAgICB9CisgICAgICAgIFN0cmluZ1dyaXRlciBzd0xvZyA9IG51bGw7CisgICAgICAgIFByaW50V3JpdGVyIGxvZyA9IG51bGw7CisgICAgICAgIAorICAgICAgICBpZiAoR0VORVJBVEUpIHsKKyAgICAgICAgICAgIHN3TG9nID0gbmV3IFN0cmluZ1dyaXRlcigpOworICAgICAgICAgICAgbG9nID0gbmV3IFByaW50V3JpdGVyKHN3TG9nKTsKKyAgICAgICAgICAgIGxvZy5wcmludGxuKCJzdGF0aWMgVW5pY29kZVNldFtdW10gVU5DSEFOR0VEID0geyIpOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdENhc2VzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoR0VORVJBVEUpIGxvZy5wcmludGxuKCIgICAgeyIpOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCB0ZXN0TW9kZXMubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICBVbmljb2RlU2V0IHRlc3QgPSBuZXcgVW5pY29kZVNldChvcmlnaW5hbCk7CisgICAgICAgICAgICAgICAgY2xvc2UodGVzdCwgdGVzdE1vZGVzW2pdLCB0ZXN0Q2FzZXNbaV0pOworICAgICAgICAgICAgICAgIGlmIChHRU5FUkFURSkgeworICAgICAgICAgICAgICAgICAgICBsb2cucHJpbnRsbigiXHRuZXcgVW5pY29kZVNldChcIiIgKyBnZW5lcmF0ZWRTZXQudG9QYXR0ZXJuKHRydWUpICsgIlwiKSwiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU3RyaW5nIGxhYmVsID0gY2FzZU5hbWVzW2ldICArICIsICIgKyBtb2RlTmFtZXNbal0gOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihsYWJlbCk7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4obGFiZWwgKyAiOiAiICsgdGVzdC50b1BhdHRlcm4oZmFsc2UpKTsKKyAgICAgICAgICAgICAgICB0ZXN0LnJlbW92ZUFsbChvcmlnaW5hbCk7CisgICAgICAgICAgICAgICAgaWYgKHRlc3QuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJcdE5vIERpZmZlcmVuY2UgZnJvbSBvcmlnaW5hbCIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJcdERpZmZlcmVuY2UgPSAiICsgdGVzdC50b1BhdHRlcm4oZmFsc2UpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgb3V0LmZsdXNoKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoR0VORVJBVEUpIGxvZy5wcmludGxuKCIgICAgfSwiKTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChHRU5FUkFURSkgeworICAgICAgICAgICAgbG9nLnByaW50bG4oIn07Iik7CisgICAgICAgICAgICBvdXQucHJpbnQoc3dMb2cuZ2V0QnVmZmVyKCkudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qCisgICAgICAgICAgICBjbG9zZSh0ZXN0LCBOb3JtYWxpemVyLkRFQ09NUCwgZmFsc2UpOworICAgICAgICAgICAgcHJpbnQoIk5GRCIsIHRlc3QpOworICAgICAgICAgICAgCisgICAgICAgICAgICB0ZXN0ID0gbmV3IFVuaWNvZGVTZXQodGVzdFN0cik7CisgICAgICAgICAgICBjbG9zZSh0ZXN0LCBOb3JtYWxpemVyLk5PX09QLCB0cnVlKTsKKyAgICAgICAgICAgIHByaW50KCJMb3dlciIsIHRlc3QpOworCisgICAgICAgICAgICB0ZXN0ID0gbmV3IFVuaWNvZGVTZXQodGVzdFN0cik7CisgICAgICAgICAgICBjbG9zZSh0ZXN0LCBOb3JtYWxpemVyLkNPTVBPU0UsIGZhbHNlKTsKKyAgICAgICAgICAgIHByaW50KCJORkMiLCB0ZXN0KTsKKworICAgICAgICAgICAgdGVzdCA9IG5ldyBVbmljb2RlU2V0KHRlc3RTdHIpOworICAgICAgICAgICAgY2xvc2UodGVzdCwgTm9ybWFsaXplci5ERUNPTVBfQ09NUEFULCBmYWxzZSk7CisgICAgICAgICAgICBwcmludCgiTkZLRCIsIHRlc3QpOworCisgICAgICAgICAgICB0ZXN0ID0gbmV3IFVuaWNvZGVTZXQodGVzdFN0cik7CisgICAgICAgICAgICBjbG9zZSh0ZXN0LCBOb3JtYWxpemVyLkNPTVBPU0VfQ09NUEFULCBmYWxzZSk7CisgICAgICAgICAgICBwcmludCgiTkZLQyIsIHRlc3QpOworICAgICAgICAqLworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgUHJpbnRXcml0ZXIgb3V0OworICAgIAorICAgIC8qCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHByaW50KFN0cmluZyBsYWJlbCwgVW5pY29kZVNldCB0ZXN0KSB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihsYWJlbCk7CisgICAgICAgIG91dC5wcmludGxuKGxhYmVsICsgIjogIiArIHRlc3QudG9QYXR0ZXJuKGZhbHNlKSk7CisgICAgICAgIG91dC5wcmludGxuKCk7CisgICAgfQorICAgICovCisgICAgCisgICAgLy8gZHVtYiwgc2xvdyBpbXBsZW1lbnRhdGlvbnMKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIE5GVG9TdHJpbmcgaW1wbGVtZW50cyBDaGFyMzJUb1N0cmluZyB7CisgICAgICAgIE5vcm1hbGl6ZXIuTW9kZSBtb2RlOworICAgICAgICBib29sZWFuIGxvd2VyRmlyc3Q7CisgICAgICAgIAorICAgICAgICBORlRvU3RyaW5nKE5vcm1hbGl6ZXIuTW9kZSBtLCBib29sZWFuIGxvd2VyRmlyc3QpIHsKKyAgICAgICAgICAgIG1vZGUgPSBtOworICAgICAgICAgICAgdGhpcy5sb3dlckZpcnN0ID0gbG93ZXJGaXJzdDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXQoaW50IGNwKSB7CisgICAgICAgICAgICBTdHJpbmcgc291cmNlID0gVVRGMTYudmFsdWVPZihjcCk7CisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gc291cmNlOworICAgICAgICAgICAgaWYgKGxvd2VyRmlyc3QpIHJlc3VsdCA9IFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoTG9jYWxlLlVTLCByZXN1bHQpOworICAgICAgICAgICAgcmVzdWx0ID0gTm9ybWFsaXplci5ub3JtYWxpemUocmVzdWx0LCBtb2RlKTsKKyAgICAgICAgICAgIGlmIChsb3dlckZpcnN0KSByZXN1bHQgPSBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKExvY2FsZS5VUywgcmVzdWx0KTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQuZXF1YWxzKHNvdXJjZSkpIHJldHVybiBudWxsOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgCisgICAgLyoqIFJldHVybnMgYSBtYXBwaW5nIGZyb20gY2hhcjMyIHRvIGEgc3RyaW5nLiBJZiB0aGVyZSBpcyBubyBjaGFuZ2UsCisgICAgICogbnVsbCBpcyByZXR1cm5lZC4KKyAgICAgKi8KKyAgICAgCisgICAgaW50ZXJmYWNlIENoYXIzMlRvU3RyaW5nIHsKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXQoaW50IGNwKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGJvb2xlYW4gRkFTVCA9IHRydWU7CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIGNsb3NlKFVuaWNvZGVTZXQgcywgTm9ybWFsaXplci5Nb2RlIG0sIGJvb2xlYW4gbG93ZXJGaXJzdCkgeworICAgICAgICBDaGFyMzJUb1N0cmluZyBmID0gbmV3IE5GVG9TdHJpbmcobSwgbG93ZXJGaXJzdCk7CisgICAgICAgIGlmIChGQVNUKSB7CisgICAgICAgICAgICBpbnQgbW07CisgICAgICAgICAgICBmb3IgKG1tID0gMDsgOyArK21tKSBpZiAobSA9PSB0ZXN0TW9kZXNbbW1dKSBicmVhazsgLy8gZmluZCBtb2RlCisgICAgICAgICAgICBjbG9zZTIocywgZiwgbG93ZXJGaXJzdCA/IDEgOiAwLCBtbSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgY2xvc2UocywgZik7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBjbG9zZShVbmljb2RlU2V0IHMsIENoYXIzMlRvU3RyaW5nIGYpIHsKKyAgICAgICAgaWYgKEdFTkVSQVRFKSBnZW5lcmF0ZWRTZXQgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgY3AgPSAwOyBjcCA8PSAweDEwRkZGRjsgKytjcCkgeworICAgICAgICAgICAgaW50IHR5cGUgPSBVQ2hhcmFjdGVyLmdldFR5cGUoY3ApOworICAgICAgICAgICAgaWYgKHR5cGUgPT0gQ2hhcmFjdGVyLlVOQVNTSUdORUQpIGNvbnRpbnVlOworICAgICAgICAgICAgCisgICAgICAgICAgICAvL2lmIChjcCA9PSAnXHUwMGU3JykgeworICAgICAgICAgICAgICAvLyAgU3lzdGVtLm91dC5wcmludGxuKCJkZWJ1ZyIpOworICAgICAgICAgICAgLy99CisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gZi5nZXQoY3ApOworICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSBjb250aW51ZTsKKyAgICAgICAgICAgIGlmIChHRU5FUkFURSkgeworICAgICAgICAgICAgICAgIGdlbmVyYXRlZFNldC5hZGQoY3ApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFjb250YWluc1NvbWUocywgcmVzdWx0KSkgY29udGludWU7CisgICAgICAgICAgICBzLmFkZChjcCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIGNsb3NlMihVbmljb2RlU2V0IHMsIENoYXIzMlRvU3RyaW5nIGYsIGludCBsYywgaW50IG1vZGUpIHsKKyAgICAgICAgVW5pY29kZVNldCB1bmNoYW5nZWQgPSBuZXcgVW5pY29kZVNldCgpOyAvLyBVTkNIQU5HRURbbGNdW21vZGVdOworICAgICAgICBpbnQgY291bnQgPSB1bmNoYW5nZWQuZ2V0UmFuZ2VDb3VudCgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgIGludCBzdGFydCA9IHVuY2hhbmdlZC5nZXRSYW5nZVN0YXJ0KGkpOworICAgICAgICAgICAgaW50IGVuZCA9IHVuY2hhbmdlZC5nZXRSYW5nZUVuZChpKTsKKyAgICAgICAgICAgIGZvciAoaW50IGNwID0gc3RhcnQ7IGNwIDw9IGVuZDsgKytjcCkgeworICAgICAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSBmLmdldChjcCk7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJTb21ldGhpbmcgd3JvbmcgLS0gc2hvdWxkIG5ldmVyIGhhcHBlbiIpOworICAgICAgICAgICAgICAgIGlmICghY29udGFpbnNTb21lKHMsIHJlc3VsdCkpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIHMuYWRkKGNwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKgorICAgIHN0YXRpYyBmaW5hbCBVbmljb2RlU2V0W11bXSBVTkNIQU5HRUQgPSB7CisgICAgICAgIHsgLy8gXHUxRjgwLVx1MUZCNFx1MUZCNi1cdTFGQkNcdTFGQkVcdTFGQzEtXHUxRkM0XHUxRkM2LVx1MUZEM1x1MUZENi1cdTFGREJcdTFGREQtXHUxRkVGXHUxRkYyLVx1MUZGNAorCSAgICBuZXcgVW5pY29kZVNldCgiW1x1MUZGNi1cdTFGRkRcdTIwMDAtXHUyMDAxXHUyMTI2XSIpLAorCSAgICAvLyBcdTIxMkEtXHUyMTJCXHUyMTlBLVx1MjE5Qlx1MjFBRVx1MjFDRC1cdTIxQ0ZcdTIyMDRcdTIyMDlcdTIyMENcdTIyMjRcdTIyMjZcdTIyNDFcdTIyNDRcdTIyNDdcdTIyNDlcdTIyNjBcdTIyNjJcdTIyNkQtXHUyMjcxXHUyMjc0LVx1MjI3NVx1MjI3OAorCSAgICBuZXcgVW5pY29kZVNldCgiW1x1MDBDMC1cdTAwQzVcdTAwQzctXHUwMENGXHUwMEQxLVx1MDBENlx1MDBEOS1cdTAwRERcdTAwRTAtXHUwMEU1XHUwMEU3LVx1MDBFRlx1MDBGMS1cdTAwRjZcdTAwRjktXHUwMEZEXHUwMEZGLVx1MDEwRlx1MDExMi1cdTAxMjVcdTAxMjgtXHUwMTMwXHUwMTM0LVx1MDEzN1x1MDEzOS1cdTAxM0VcdTAxNDMtXHUwMTQ4XHUwMTRDLVx1MDE1MVx1MDE1NC1cdTAxNjVcdTAxNjgtXHUwMTdFXHUwMUEwLVx1MDFBMVx1MDFBRi1cdTAxQjBcdTAxQ0QtXHUwMURDXHUwMURFLVx1MDFFM1x1MDFFNi1cdTAxRjBcdTAxRjQtXHUwMUY1XHUwMUY4LVx1MDIxQlx1MDIxRS1cdTAyMUZcdTAyMjYtXHUwMjMzXHUwMzQwLVx1MDM0MVx1MDM0My1cdTAzNDRcdTAzNzRcdTAzN0VcdTAzODUtXHUwMzhBXHUwMzhDXHUwMzhFLVx1MDM5MFx1MDNBQS1cdTAzQjBcdTAzQ0EtXHUwM0NFXHUwM0QzLVx1MDNENFx1MDQwMC1cdTA0MDFcdTA0MDNcdTA0MDdcdTA0MEMtXHUwNDBFXHUwNDE5XHUwNDM5XHUwNDUwLVx1MDQ1MVx1MDQ1M1x1MDQ1N1x1MDQ1Qy1cdTA0NUVcdTA0NzYtXHUwNDc3XHUwNEMxLVx1MDRDMlx1MDREMC1cdTA0RDNcdTA0RDYtXHUwNEQ3XHUwNERBLVx1MDRERlx1MDRFMi1cdTA0RTdcdTA0RUEtXHUwNEY1XHUwNEY4LVx1MDRGOVx1MDYyMi1cdTA2MjZcdTA2QzBcdTA2QzJcdTA2RDNcdTA5MjlcdTA5MzFcdTA5MzRcdTA5NTgtXHUwOTVGXHUwOUNCLVx1MDlDQ1x1MDlEQy1cdTA5RERcdTA5REZcdTBBMzNcdTBBMzZcdTBBNTktXHUwQTVCXHUwQTVFXHUwQjQ4XHUwQjRCLVx1MEI0Q1x1MEI1Qy1cdTBCNURcdTBCOTRcdTBCQ0EtXHUwQkNDXHUwQzQ4XHUwQ0MwXHUwQ0M3LVx1MENDOFx1MENDQS1cdTBDQ0JcdTBENEEtXHUwRDRDXHUwRERBXHUwRERDLVx1MERERVx1MEY0M1x1MEY0RFx1MEY1Mlx1MEY1N1x1MEY1Q1x1MEY2OVx1MEY3M1x1MEY3NS1cdTBGNzZcdTBGNzhcdTBGODFcdTBGOTNcdTBGOURcdTBGQTJcdTBGQTdcdTBGQUNcdTBGQjlcdTEwMjZcdTFFMDAtXHUxRTk5XHUxRTlCXHUxRUEwLVx1MUVGOVx1MUYwMC1cdTFGMTVcdTFGMTgtXHUxRjFEXHUxRjIwLVx1MUY0NVx1MUY0OC1cdTFGNERcdTFGNTAtXHUxRjU3XHUxRjU5XHUxRjVCXHUxRjVEXHUxRjVGLVx1MUY3RFx1MUY4MC1cdTFGQjRcdTFGQjYtXHUxRkJDXHUxRkJFXHUxRkMxLVx1MUZDNFx1MUZDNi1cdTFGRDNcdTFGRDYtXHUxRkRCXHUxRkRELVx1MUZFRlx1MUZGMi1cdTFGRjRcdTFGRjYtXHUxRkZEXHUyMDAwLVx1MjAwMVx1MjEyNlx1MjEyQS1cdTIxMkJcdTIxOUEtXHUyMTlCXHUyMUFFXHUyMUNELVx1MjFDRlx1MjIwNFx1MjIwOVx1MjIwQ1x1MjIyNFx1MjIyNlx1MjI0MVx1MjI0NFx1MjI0N1x1MjI0OVx1MjI2MFx1MjI2Mlx1MjI2RC1cdTIyNzFcdTIyNzQtXHUyMjc1XHUyMjc4LVx1MjI3OVx1MjI4MC1cdTIyODFcdTIyODQtXHUyMjg1XHUyMjg4LVx1MjI4OVx1MjJBQy1cdTIyQUZcdTIyRTAtXHUyMkUzXHUyMkVBLVx1MjJFRFx1MjMyOS1cdTIzMkFcdTMwNENcdTMwNEVcdTMwNTBcdTMwNTJcdTMwNTRcdTMwNTZcdTMwNThcdTMwNUFcdTMwNUNcdTMwNUVcdTMwNjBcdTMwNjJcdTMwNjVcdTMwNjdcdTMwNjlcdTMwNzAtXHUzMDcxXHUzMDczLVx1MzA3NFx1MzA3Ni1cdTMwNzdcdTMwNzktXHUzMDdBXHUzMDdDLVx1MzA3RFx1MzA5NFx1MzA5RVx1MzBBQ1x1MzBBRVx1MzBCMFx1MzBCMlx1MzBCNFx1MzBCNlx1MzBCOFx1MzBCQVx1MzBCQ1x1MzBCRVx1MzBDMFx1MzBDMlx1MzBDNVx1MzBDN1x1MzBDOVx1MzBEMC1cdTMwRDFcdTMwRDMtXHUzMEQ0XHUzMEQ2LVx1MzBEN1x1MzBEOS1cdTMwREFcdTMwREMtXHUzMEREXHUzMEY0XHUzMEY3LVx1MzBGQVx1MzBGRVx1QUMwMC1cdUQ3QTNcdUY5MDAtXHVGQTBEXHVGQTEwXHVGQTEyXHVGQTE1LVx1RkExRVx1RkEyMFx1RkEyMlx1RkEyNS1cdUZBMjZcdUZBMkEtXHVGQTJEXHVGQjFEXHVGQjFGXHVGQjJBLVx1RkIzNlx1RkIzOC1cdUZCM0NcdUZCM0VcdUZCNDAtXHVGQjQxXHVGQjQzLVx1RkI0NFx1RkI0Ni1cdUZCNEVdIiksCisJICAgIG5ldyBVbmljb2RlU2V0KCJbXHUwMzQwLVx1MDM0MVx1MDM0My1cdTAzNDRcdTAzNzRcdTAzN0VcdTAzODdcdTA5NTgtXHUwOTVGXHUwOURDLVx1MDlERFx1MDlERlx1MEEzM1x1MEEzNlx1MEE1OS1cdTBBNUJcdTBBNUVcdTBCNUMtXHUwQjVEXHUwRjQzXHUwRjREXHUwRjUyXHUwRjU3XHUwRjVDXHUwRjY5XHUwRjczXHUwRjc1LVx1MEY3Nlx1MEY3OFx1MEY4MVx1MEY5M1x1MEY5RFx1MEZBMlx1MEZBN1x1MEZBQ1x1MEZCOVx1MUY3MVx1MUY3M1x1MUY3NVx1MUY3N1x1MUY3OVx1MUY3Qlx1MUY3RFx1MUZCQlx1MUZCRVx1MUZDOVx1MUZDQlx1MUZEM1x1MUZEQlx1MUZFM1x1MUZFQlx1MUZFRS1cdTFGRUZcdTFGRjlcdTFGRkJcdTFGRkRcdTIwMDAtXHUyMDAxXHUyMTI2XHUyMTJBLVx1MjEyQlx1MjMyOS1cdTIzMkFcdUY5MDAtXHVGQTBEXHVGQTEwXHVGQTEyXHVGQTE1LVx1RkExRVx1RkEyMFx1RkEyMlx1RkEyNS1cdUZBMjZcdUZBMkEtXHVGQTJEXHVGQjFGXHVGQjJBLVx1RkIzNlx1RkIzOC1cdUZCM0NcdUZCM0VcdUZCNDAtXHVGQjQxXHVGQjQzLVx1RkI0NFx1RkI0Ni1cdUZCNEVdIiksCisJICAgIG5ldyBVbmljb2RlU2V0KCJbXHUwMEEwXHUwMEE4XHUwMEFBXHUwMEFGXHUwMEIyLVx1MDBCNVx1MDBCOC1cdTAwQkFcdTAwQkMtXHUwMEJFXHUwMEMwLVx1MDBDNVx1MDBDNy1cdTAwQ0ZcdTAwRDEtXHUwMEQ2XHUwMEQ5LVx1MDBERFx1MDBFMC1cdTAwRTVcdTAwRTctXHUwMEVGXHUwMEYxLVx1MDBGNlx1MDBGOS1cdTAwRkRcdTAwRkYtXHUwMTBGXHUwMTEyLVx1MDEyNVx1MDEyOC1cdTAxMzBcdTAxMzItXHUwMTM3XHUwMTM5LVx1MDE0MFx1MDE0My1cdTAxNDlcdTAxNEMtXHUwMTUxXHUwMTU0LVx1MDE2NVx1MDE2OC1cdTAxN0ZcdTAxQTAtXHUwMUExXHUwMUFGLVx1MDFCMFx1MDFDNC1cdTAxRENcdTAxREUtXHUwMUUzXHUwMUU2LVx1MDFGNVx1MDFGOC1cdTAyMUJcdTAyMUUtXHUwMjFGXHUwMjI2LVx1MDIzM1x1MDJCMC1cdTAyQjhcdTAyRDgtXHUwMkREXHUwMkUwLVx1MDJFNFx1MDM0MC1cdTAzNDFcdTAzNDMtXHUwMzQ0XHUwMzc0XHUwMzdBXHUwMzdFXHUwMzg0LVx1MDM4QVx1MDM4Q1x1MDM4RS1cdTAzOTBcdTAzQUEtXHUwM0IwXHUwM0NBLVx1MDNDRVx1MDNEMC1cdTAzRDZcdTAzRjAtXHUwM0YyXHUwNDAwLVx1MDQwMVx1MDQwM1x1MDQwN1x1MDQwQy1cdTA0MEVcdTA0MTlcdTA0MzlcdTA0NTAtXHUwNDUxXHUwNDUzXHUwNDU3XHUwNDVDLVx1MDQ1RVx1MDQ3Ni1cdTA0NzdcdTA0QzEtXHUwNEMyXHUwNEQwLVx1MDREM1x1MDRENi1cdTA0RDdcdTA0REEtXHUwNERGXHUwNEUyLVx1MDRFN1x1MDRFQS1cdTA0RjVcdTA0RjgtXHUwNEY5XHUwNTg3XHUwNjIyLVx1MDYyNlx1MDY3NS1cdTA2NzhcdTA2QzBcdTA2QzJcdTA2RDNcdTA5MjlcdTA5MzFcdTA5MzRcdTA5NTgtXHUwOTVGXHUwOUNCLVx1MDlDQ1x1MDlEQy1cdTA5RERcdTA5REZcdTBBMzNcdTBBMzZcdTBBNTktXHUwQTVCXHUwQTVFXHUwQjQ4XHUwQjRCLVx1MEI0Q1x1MEI1Qy1cdTBCNURcdTBCOTRcdTBCQ0EtXHUwQkNDXHUwQzQ4XHUwQ0MwXHUwQ0M3LVx1MENDOFx1MENDQS1cdTBDQ0JcdTBENEEtXHUwRDRDXHUwRERBXHUwRERDLVx1MERERVx1MEUzM1x1MEVCM1x1MEVEQy1cdTBFRERcdTBGMENcdTBGNDNcdTBGNERcdTBGNTJcdTBGNTdcdTBGNUNcdTBGNjlcdTBGNzNcdTBGNzUtXHUwRjc5XHUwRjgxXHUwRjkzXHUwRjlEXHUwRkEyXHUwRkE3XHUwRkFDXHUwRkI5XHUxMDI2XHUxRTAwLVx1MUU5Qlx1MUVBMC1cdTFFRjlcdTFGMDAtXHUxRjE1XHUxRjE4LVx1MUYxRFx1MUYyMC1cdTFGNDVcdTFGNDgtXHUxRjREXHUxRjUwLVx1MUY1N1x1MUY1OVx1MUY1Qlx1MUY1RFx1MUY1Ri1cdTFGN0RcdTFGODAtXHUxRkI0XHUxRkI2LVx1MUZDNFx1MUZDNi1cdTFGRDNcdTFGRDYtXHUxRkRCXHUxRkRELVx1MUZFRlx1MUZGMi1cdTFGRjRcdTFGRjYtXHUxRkZFXHUyMDAwLVx1MjAwQVx1MjAxMVx1MjAxN1x1MjAyNC1cdTIwMjZcdTIwMkZcdTIwMzMtXHUyMDM0XHUyMDM2LVx1MjAzN1x1MjAzQ1x1MjAzRVx1MjA0OC1cdTIwNDlcdTIwNzBcdTIwNzQtXHUyMDhFXHUyMEE4XHUyMTAwLVx1MjEwM1x1MjEwNS1cdTIxMDdcdTIxMDktXHUyMTEzXHUyMTE1LVx1MjExNlx1MjExOS1cdTIxMURcdTIxMjAtXHUyMTIyXHUyMTI0XHUyMTI2XHUyMTI4XHUyMTJBLVx1MjEyRFx1MjEyRi1cdTIxMzFcdTIxMzMtXHUyMTM5XHUyMTUzLVx1MjE3Rlx1MjE5QS1cdTIxOUJcdTIxQUVcdTIxQ0QtXHUyMUNGXHUyMjA0XHUyMjA5XHUyMjBDXHUyMjI0XHUyMjI2XHUyMjJDLVx1MjIyRFx1MjIyRi1cdTIyMzBcdTIyNDFcdTIyNDRcdTIyNDdcdTIyNDlcdTIyNjBcdTIyNjJcdTIyNkQtXHUyMjcxXHUyMjc0LVx1MjI3NVx1MjI3OC1cdTIyNzlcdTIyODAtXHUyMjgxXHUyMjg0LVx1MjI4NVx1MjI4OC1cdTIyODlcdTIyQUMtXHUyMkFGXHUyMkUwLVx1MjJFM1x1MjJFQS1cdTIyRURcdTIzMjktXHUyMzJBXHUyNDYwLVx1MjRFQVx1MkU5Rlx1MkVGM1x1MkYwMC1cdTJGRDVcdTMwMDBcdTMwMzZcdTMwMzgtXHUzMDNBXHUzMDRDXHUzMDRFXHUzMDUwXHUzMDUyXHUzMDU0XHUzMDU2XHUzMDU4XHUzMDVBXHUzMDVDXHUzMDVFXHUzMDYwXHUzMDYyXHUzMDY1XHUzMDY3XHUzMDY5XHUzMDcwLVx1MzA3MVx1MzA3My1cdTMwNzRcdTMwNzYtXHUzMDc3XHUzMDc5LVx1MzA3QVx1MzA3Qy1cdTMwN0RcdTMwOTRcdTMwOUItXHUzMDlDXHUzMDlFXHUzMEFDXHUzMEFFXHUzMEIwXHUzMEIyXHUzMEI0XHUzMEI2XHUzMEI4XHUzMEJBXHUzMEJDXHUzMEJFXHUzMEMwXHUzMEMyXHUzMEM1XHUzMEM3XHUzMEM5XHUzMEQwLVx1MzBEMVx1MzBEMy1cdTMwRDRcdTMwRDYtXHUzMEQ3XHUzMEQ5LVx1MzBEQVx1MzBEQy1cdTMwRERcdTMwRjRcdTMwRjctXHUzMEZBXHUzMEZFXHUzMTMxLVx1MzE4RVx1MzE5Mi1cdTMxOUZcdTMyMDAtXHUzMjFDXHUzMjIwLVx1MzI0M1x1MzI2MC1cdTMyN0JcdTMyODAtXHUzMkIwXHUzMkMwLVx1MzJDQlx1MzJEMC1cdTMyRkVcdTMzMDAtXHUzMzc2XHUzMzdCLVx1MzNERFx1MzNFMC1cdTMzRkVcdUFDMDAtXHVEN0EzXHVGOTAwLVx1RkEwRFx1RkExMFx1RkExMlx1RkExNS1cdUZBMUVcdUZBMjBcdUZBMjJcdUZBMjUtXHVGQTI2XHVGQTJBLVx1RkEyRFx1RkIwMC1cdUZCMDZcdUZCMTMtXHVGQjE3XHVGQjFEXHVGQjFGLVx1RkIzNlx1RkIzOC1cdUZCM0NcdUZCM0VcdUZCNDAtXHVGQjQxXHVGQjQzLVx1RkI0NFx1RkI0Ni1cdUZCQjFcdUZCRDMtXHVGRDNEXHVGRDUwLVx1RkQ4Rlx1RkQ5Mi1cdUZEQzdcdUZERjAtXHVGREZCXHVGRTMwLVx1RkU0NFx1RkU0OS1cdUZFNTJcdUZFNTQtXHVGRTY2XHVGRTY4LVx1RkU2Qlx1RkU3MC1cdUZFNzJcdUZFNzRcdUZFNzYtXHVGRUZDXHVGRjAxLVx1RkY1RVx1RkY2MS1cdUZGQkVcdUZGQzItXHVGRkM3XHVGRkNBLVx1RkZDRlx1RkZEMi1cdUZGRDdcdUZGREEtXHVGRkRDXHVGRkUwLVx1RkZFNlx1RkZFOC1cdUZGRUVdIiksCisJICAgIG5ldyBVbmljb2RlU2V0KCJbXHUwMEEwXHUwMEE4XHUwMEFBXHUwMEFGXHUwMEIyLVx1MDBCNVx1MDBCOC1cdTAwQkFcdTAwQkMtXHUwMEJFXHUwMTMyLVx1MDEzM1x1MDEzRi1cdTAxNDBcdTAxNDlcdTAxN0ZcdTAxQzQtXHUwMUNDXHUwMUYxLVx1MDFGM1x1MDJCMC1cdTAyQjhcdTAyRDgtXHUwMkREXHUwMkUwLVx1MDJFNFx1MDM0MC1cdTAzNDFcdTAzNDMtXHUwMzQ0XHUwMzc0XHUwMzdBXHUwMzdFXHUwMzg0LVx1MDM4NVx1MDM4N1x1MDNEMC1cdTAzRDZcdTAzRjAtXHUwM0YyXHUwNTg3XHUwNjc1LVx1MDY3OFx1MDk1OC1cdTA5NUZcdTA5REMtXHUwOUREXHUwOURGXHUwQTMzXHUwQTM2XHUwQTU5LVx1MEE1Qlx1MEE1RVx1MEI1Qy1cdTBCNURcdTBFMzNcdTBFQjNcdTBFREMtXHUwRUREXHUwRjBDXHUwRjQzXHUwRjREXHUwRjUyXHUwRjU3XHUwRjVDXHUwRjY5XHUwRjczXHUwRjc1LVx1MEY3OVx1MEY4MVx1MEY5M1x1MEY5RFx1MEZBMlx1MEZBN1x1MEZBQ1x1MEZCOVx1MUU5QS1cdTFFOUJcdTFGNzFcdTFGNzNcdTFGNzVcdTFGNzdcdTFGNzlcdTFGN0JcdTFGN0RcdTFGQkJcdTFGQkQtXHUxRkMxXHUxRkM5XHUxRkNCXHUxRkNELVx1MUZDRlx1MUZEM1x1MUZEQlx1MUZERC1cdTFGREZcdTFGRTNcdTFGRUJcdTFGRUQtXHUxRkVGXHUxRkY5XHUxRkZCXHUxRkZELVx1MUZGRVx1MjAwMC1cdTIwMEFcdTIwMTFcdTIwMTdcdTIwMjQtXHUyMDI2XHUyMDJGXHUyMDMzLVx1MjAzNFx1MjAzNi1cdTIwMzdcdTIwM0NcdTIwM0VcdTIwNDgtXHUyMDQ5XHUyMDcwXHUyMDc0LVx1MjA4RVx1MjBBOFx1MjEwMC1cdTIxMDNcdTIxMDUtXHUyMTA3XHUyMTA5LVx1MjExM1x1MjExNS1cdTIxMTZcdTIxMTktXHUyMTFEXHUyMTIwLVx1MjEyMlx1MjEyNFx1MjEyNlx1MjEyOFx1MjEyQS1cdTIxMkRcdTIxMkYtXHUyMTMxXHUyMTMzLVx1MjEzOVx1MjE1My1cdTIxN0ZcdTIyMkMtXHUyMjJEXHUyMjJGLVx1MjIzMFx1MjMyOS1cdTIzMkFcdTI0NjAtXHUyNEVBXHUyRTlGXHUyRUYzXHUyRjAwLVx1MkZENVx1MzAwMFx1MzAzNlx1MzAzOC1cdTMwM0FcdTMwOUItXHUzMDlDXHUzMTMxLVx1MzE4RVx1MzE5Mi1cdTMxOUZcdTMyMDAtXHUzMjFDXHUzMjIwLVx1MzI0M1x1MzI2MC1cdTMyN0JcdTMyODAtXHUzMkIwXHUzMkMwLVx1MzJDQlx1MzJEMC1cdTMyRkVcdTMzMDAtXHUzMzc2XHUzMzdCLVx1MzNERFx1MzNFMC1cdTMzRkVcdUY5MDAtXHVGQTBEXHVGQTEwXHVGQTEyXHVGQTE1LVx1RkExRVx1RkEyMFx1RkEyMlx1RkEyNS1cdUZBMjZcdUZBMkEtXHVGQTJEXHVGQjAwLVx1RkIwNlx1RkIxMy1cdUZCMTdcdUZCMUYtXHVGQjM2XHVGQjM4LVx1RkIzQ1x1RkIzRVx1RkI0MC1cdUZCNDFcdUZCNDMtXHVGQjQ0XHVGQjQ2LVx1RkJCMVx1RkJEMy1cdUZEM0RcdUZENTAtXHVGRDhGXHVGRDkyLVx1RkRDN1x1RkRGMC1cdUZERkJcdUZFMzAtXHVGRTQ0XHVGRTQ5LVx1RkU1Mlx1RkU1NC1cdUZFNjZcdUZFNjgtXHVGRTZCXHVGRTcwLVx1RkU3Mlx1RkU3NFx1RkU3Ni1cdUZFRkNcdUZGMDEtXHVGRjVFXHVGRjYxLVx1RkZCRVx1RkZDMi1cdUZGQzdcdUZGQ0EtXHVGRkNGXHVGRkQyLVx1RkZEN1x1RkZEQS1cdUZGRENcdUZGRTAtXHVGRkU2XHVGRkU4LVx1RkZFRV0iKSwKKyAgICAgICAgfSwKKyAgICAgICAgeworCSAgICBuZXcgVW5pY29kZVNldCgiW0EtWlx1MDBCMi1cdTAwQjNcdTAwQjVcdTAwQjlcdTAwQkMtXHUwMEJFXHUwMEMwLVx1MDBENlx1MDBEOC1cdTAwREVcdTAxMDBcdTAxMDJcdTAxMDRcdTAxMDZcdTAxMDhcdTAxMEFcdTAxMENcdTAxMEVcdTAxMTBcdTAxMTJcdTAxMTRcdTAxMTZcdTAxMThcdTAxMUFcdTAxMUNcdTAxMUVcdTAxMjBcdTAxMjJcdTAxMjRcdTAxMjZcdTAxMjhcdTAxMkFcdTAxMkNcdTAxMkVcdTAxMzAtXHUwMTMyXHUwMTM0XHUwMTM2XHUwMTM5XHUwMTNCXHUwMTNEXHUwMTNGXHUwMTQxXHUwMTQzXHUwMTQ1XHUwMTQ3XHUwMTRBXHUwMTRDXHUwMTRFXHUwMTUwXHUwMTUyXHUwMTU0XHUwMTU2XHUwMTU4XHUwMTVBXHUwMTVDXHUwMTVFXHUwMTYwXHUwMTYyXHUwMTY0XHUwMTY2XHUwMTY4XHUwMTZBXHUwMTZDXHUwMTZFXHUwMTcwXHUwMTcyXHUwMTc0XHUwMTc2XHUwMTc4LVx1MDE3OVx1MDE3Qlx1MDE3RFx1MDE3Rlx1MDE4MS1cdTAxODJcdTAxODRcdTAxODYtXHUwMTg3XHUwMTg5LVx1MDE4Qlx1MDE4RS1cdTAxOTFcdTAxOTMtXHUwMTk0XHUwMTk2LVx1MDE5OFx1MDE5Qy1cdTAxOURcdTAxOUYtXHUwMUEwXHUwMUEyXHUwMUE0XHUwMUE2LVx1MDFBN1x1MDFBOVx1MDFBQ1x1MDFBRS1cdTAxQUZcdTAxQjEtXHUwMUIzXHUwMUI1XHUwMUI3LVx1MDFCOFx1MDFCQ1x1MDFDNC1cdTAxQ0RcdTAxQ0ZcdTAxRDFcdTAxRDNcdTAxRDVcdTAxRDdcdTAxRDlcdTAxREJcdTAxREVcdTAxRTBcdTAxRTJcdTAxRTRcdTAxRTZcdTAxRThcdTAxRUFcdTAxRUNcdTAxRUVcdTAxRjEtXHUwMUY0XHUwMUY2LVx1MDFGOFx1MDFGQVx1MDFGQ1x1MDFGRVx1MDIwMFx1MDIwMlx1MDIwNFx1MDIwNlx1MDIwOFx1MDIwQVx1MDIwQ1x1MDIwRVx1MDIxMFx1MDIxMlx1MDIxNFx1MDIxNlx1MDIxOFx1MDIxQVx1MDIxQ1x1MDIxRVx1MDIyMlx1MDIyNFx1MDIyNlx1MDIyOFx1MDIyQVx1MDIyQ1x1MDIyRVx1MDIzMFx1MDIzMlx1MDM0NVx1MDM4Nlx1MDM4OC1cdTAzOEFcdTAzOENcdTAzOEUtXHUwMzhGXHUwMzkxLVx1MDNBMVx1MDNBMy1cdTAzQUJcdTAzQzJcdTAzRDAtXHUwM0QxXHUwM0Q1LVx1MDNENlx1MDNEQVx1MDNEQ1x1MDNERVx1MDNFMFx1MDNFMlx1MDNFNFx1MDNFNlx1MDNFOFx1MDNFQVx1MDNFQ1x1MDNFRVx1MDNGMC1cdTAzRjJcdTAzRjQtXHUwM0Y1XHUwNDAwLVx1MDQyRlx1MDQ2MFx1MDQ2Mlx1MDQ2NFx1MDQ2Nlx1MDQ2OFx1MDQ2QVx1MDQ2Q1x1MDQ2RVx1MDQ3MFx1MDQ3Mlx1MDQ3NFx1MDQ3Nlx1MDQ3OFx1MDQ3QVx1MDQ3Q1x1MDQ3RVx1MDQ4MFx1MDQ4Q1x1MDQ4RVx1MDQ5MFx1MDQ5Mlx1MDQ5NFx1MDQ5Nlx1MDQ5OFx1MDQ5QVx1MDQ5Q1x1MDQ5RVx1MDRBMFx1MDRBMlx1MDRBNFx1MDRBNlx1MDRBOFx1MDRBQVx1MDRBQ1x1MDRBRVx1MDRCMFx1MDRCMlx1MDRCNFx1MDRCNlx1MDRCOFx1MDRCQVx1MDRCQ1x1MDRCRVx1MDRDMVx1MDRDM1x1MDRDN1x1MDRDQlx1MDREMFx1MDREMlx1MDRENFx1MDRENlx1MDREOFx1MDREQVx1MDREQ1x1MDRERVx1MDRFMFx1MDRFMlx1MDRFNFx1MDRFNlx1MDRFOFx1MDRFQVx1MDRFQ1x1MDRFRVx1MDRGMFx1MDRGMlx1MDRGNFx1MDRGOFx1MDUzMS1cdTA1NTZcdTA5RjhcdTBGMkEtXHUwRjMzXHUxMzdDXHUxRTAwXHUxRTAyXHUxRTA0XHUxRTA2XHUxRTA4XHUxRTBBXHUxRTBDXHUxRTBFXHUxRTEwXHUxRTEyXHUxRTE0XHUxRTE2XHUxRTE4XHUxRTFBXHUxRTFDXHUxRTFFXHUxRTIwXHUxRTIyXHUxRTI0XHUxRTI2XHUxRTI4XHUxRTJBXHUxRTJDXHUxRTJFXHUxRTMwXHUxRTMyXHUxRTM0XHUxRTM2XHUxRTM4XHUxRTNBXHUxRTNDXHUxRTNFXHUxRTQwXHUxRTQyXHUxRTQ0XHUxRTQ2XHUxRTQ4XHUxRTRBXHUxRTRDXHUxRTRFXHUxRTUwXHUxRTUyXHUxRTU0XHUxRTU2XHUxRTU4XHUxRTVBXHUxRTVDXHUxRTVFXHUxRTYwXHUxRTYyXHUxRTY0XHUxRTY2XHUxRTY4XHUxRTZBXHUxRTZDXHUxRTZFXHUxRTcwXHUxRTcyXHUxRTc0XHUxRTc2XHUxRTc4XHUxRTdBXHUxRTdDXHUxRTdFXHUxRTgwXHUxRTgyXHUxRTg0XHUxRTg2XHUxRTg4XHUxRThBXHUxRThDXHUxRThFXHUxRTkwXHUxRTkyXHUxRTk0XHUxRTlCXHUxRUEwXHUxRUEyXHUxRUE0XHUxRUE2XHUxRUE4XHUxRUFBXHUxRUFDXHUxRUFFXHUxRUIwXHUxRUIyXHUxRUI0XHUxRUI2XHUxRUI4XHUxRUJBXHUxRUJDXHUxRUJFXHUxRUMwXHUxRUMyXHUxRUM0XHUxRUM2XHUxRUM4XHUxRUNBXHUxRUNDXHUxRUNFXHUxRUQwXHUxRUQyXHUxRUQ0XHUxRUQ2XHUxRUQ4XHUxRURBXHUxRURDXHUxRURFXHUxRUUwXHUxRUUyXHUxRUU0XHUxRUU2XHUxRUU4XHUxRUVBXHUxRUVDXHUxRUVFXHUxRUYwXHUxRUYyXHUxRUY0XHUxRUY2XHUxRUY4XHUxRjA4LVx1MUYwRlx1MUYxOC1cdTFGMURcdTFGMjgtXHUxRjJGXHUxRjM4LVx1MUYzRlx1MUY0OC1cdTFGNERcdTFGNTlcdTFGNUJcdTFGNURcdTFGNUZcdTFGNjgtXHUxRjZGXHUxRjg4LVx1MUY4Rlx1MUY5OC1cdTFGOUZcdTFGQTgtXHUxRkFGXHUxRkI4LVx1MUZCQ1x1MUZCRVx1MUZDOC1cdTFGQ0NcdTFGRDgtXHUxRkRCXHUxRkU4LVx1MUZFQ1x1MUZGOC1cdTFGRkNcdTIwNzBcdTIwNzQtXHUyMDc5XHUyMDgwLVx1MjA4OVx1MjEyNlx1MjEyQS1cdTIxMkJcdTIxNTMtXHUyMTVFXHUyMTYwLVx1MjE3Rlx1MjE4MS1cdTIxODNcdTI0NjAtXHUyNDY4XHUyNDc0LVx1MjQ3Q1x1MjQ4OC1cdTI0OTBcdTI0QjYtXHUyNEVBXHUyNzc2LVx1Mjc3RVx1Mjc4MC1cdTI3ODhcdTI3OEEtXHUyNzkyXHVGRjIxLVx1RkYzQVxcVTAwMDEwMzRBXFxVMDAwMTA0MDAtXFxVMDAwMTA0MjVcXFUwMDAxRDE2NS1cXFUwMDAxRDE2NlxcVTAwMDFEMTZELVxcVTAwMDFEMTcyXSIpLAorCSAgICBuZXcgVW5pY29kZVNldCgiW0EtWlx1MDBCMi1cdTAwQjNcdTAwQjVcdTAwQjlcdTAwQkMtXHUwMEJFXHUwMEMwLVx1MDBENlx1MDBEOC1cdTAwREVcdTAwRTAtXHUwMEU1XHUwMEU3LVx1MDBFRlx1MDBGMS1cdTAwRjZcdTAwRjktXHUwMEZEXHUwMEZGLVx1MDExMFx1MDExMi1cdTAxMjZcdTAxMjgtXHUwMTMyXHUwMTM0LVx1MDEzN1x1MDEzOS1cdTAxM0ZcdTAxNDFcdTAxNDMtXHUwMTQ4XHUwMTRBXHUwMTRDLVx1MDE1Mlx1MDE1NC1cdTAxNjZcdTAxNjgtXHUwMTdGXHUwMTgxLVx1MDE4Mlx1MDE4NFx1MDE4Ni1cdTAxODdcdTAxODktXHUwMThCXHUwMThFLVx1MDE5MVx1MDE5My1cdTAxOTRcdTAxOTYtXHUwMTk4XHUwMTlDLVx1MDE5RFx1MDE5Ri1cdTAxQTJcdTAxQTRcdTAxQTYtXHUwMUE3XHUwMUE5XHUwMUFDXHUwMUFFLVx1MDFCM1x1MDFCNVx1MDFCNy1cdTAxQjhcdTAxQkNcdTAxQzQtXHUwMURDXHUwMURFLVx1MDFFNFx1MDFFNi1cdTAyMUNcdTAyMUUtXHUwMjFGXHUwMjIyXHUwMjI0XHUwMjI2LVx1MDIzM1x1MDM0MC1cdTAzNDFcdTAzNDMtXHUwMzQ1XHUwMzc0XHUwMzdFXHUwMzg1LVx1MDM4QVx1MDM4Q1x1MDM4RS1cdTAzQTFcdTAzQTMtXHUwM0IwXHUwM0MyXHUwM0NBLVx1MDNDRVx1MDNEMC1cdTAzRDFcdTAzRDMtXHUwM0Q2XHUwM0RBXHUwM0RDXHUwM0RFXHUwM0UwXHUwM0UyXHUwM0U0XHUwM0U2XHUwM0U4XHUwM0VBXHUwM0VDXHUwM0VFXHUwM0YwLVx1MDNGMlx1MDNGNC1cdTAzRjVcdTA0MDAtXHUwNDJGXHUwNDM5XHUwNDUwLVx1MDQ1MVx1MDQ1M1x1MDQ1N1x1MDQ1Qy1cdTA0NUVcdTA0NjBcdTA0NjJcdTA0NjRcdTA0NjZcdTA0NjhcdTA0NkFcdTA0NkNcdTA0NkVcdTA0NzBcdTA0NzJcdTA0NzRcdTA0NzYtXHUwNDc4XHUwNDdBXHUwNDdDXHUwNDdFXHUwNDgwXHUwNDhDXHUwNDhFXHUwNDkwXHUwNDkyXHUwNDk0XHUwNDk2XHUwNDk4XHUwNDlBXHUwNDlDXHUwNDlFXHUwNEEwXHUwNEEyXHUwNEE0XHUwNEE2XHUwNEE4XHUwNEFBXHUwNEFDXHUwNEFFXHUwNEIwXHUwNEIyXHUwNEI0XHUwNEI2XHUwNEI4XHUwNEJBXHUwNEJDXHUwNEJFXHUwNEMxLVx1MDRDM1x1MDRDN1x1MDRDQlx1MDREMC1cdTA0RDRcdTA0RDYtXHUwNEQ4XHUwNERBLVx1MDRFMFx1MDRFMi1cdTA0RThcdTA0RUEtXHUwNEY1XHUwNEY4LVx1MDRGOVx1MDUzMS1cdTA1NTZcdTA2MjItXHUwNjI2XHUwNkMwXHUwNkMyXHUwNkQzXHUwOTI5XHUwOTMxXHUwOTM0XHUwOTU4LVx1MDk1Rlx1MDlDQi1cdTA5Q0NcdTA5REMtXHUwOUREXHUwOURGXHUwOUY4XHUwQTMzXHUwQTM2XHUwQTU5LVx1MEE1Qlx1MEE1RVx1MEI0OFx1MEI0Qi1cdTBCNENcdTBCNUMtXHUwQjVEXHUwQjk0XHUwQkNBLVx1MEJDQ1x1MEM0OFx1MENDMFx1MENDNy1cdTBDQzhcdTBDQ0EtXHUwQ0NCXHUwRDRBLVx1MEQ0Q1x1MEREQVx1MEREQy1cdTBEREVcdTBGMkEtXHUwRjMzXHUwRjQzXHUwRjREXHUwRjUyXHUwRjU3XHUwRjVDXHUwRjY5XHUwRjczXHUwRjc1LVx1MEY3Nlx1MEY3OFx1MEY4MVx1MEY5M1x1MEY5RFx1MEZBMlx1MEZBN1x1MEZBQ1x1MEZCOVx1MTAyNlx1MTM3Q1x1MUUwMC1cdTFFOTlcdTFFOUJcdTFFQTAtXHUxRUY5XHUxRjAwLVx1MUYxNVx1MUYxOC1cdTFGMURcdTFGMjAtXHUxRjQ1XHUxRjQ4LVx1MUY0RFx1MUY1MC1cdTFGNTdcdTFGNTlcdTFGNUJcdTFGNURcdTFGNUYtXHUxRjdEXHUxRjgwLVx1MUZCNFx1MUZCNi1cdTFGQkNcdTFGQkVcdTFGQzEtXHUxRkM0XHUxRkM2LVx1MUZEM1x1MUZENi1cdTFGREJcdTFGREQtXHUxRkVGXHUxRkYyLVx1MUZGNFx1MUZGNi1cdTFGRkRcdTIwMDAtXHUyMDAxXHUyMDcwXHUyMDc0LVx1MjA3OVx1MjA4MC1cdTIwODlcdTIxMjZcdTIxMkEtXHUyMTJCXHUyMTUzLVx1MjE1RVx1MjE2MC1cdTIxN0ZcdTIxODEtXHUyMTgzXHUyMTlBLVx1MjE5Qlx1MjFBRVx1MjFDRC1cdTIxQ0ZcdTIyMDRcdTIyMDlcdTIyMENcdTIyMjRcdTIyMjZcdTIyNDFcdTIyNDRcdTIyNDdcdTIyNDlcdTIyNjBcdTIyNjJcdTIyNkQtXHUyMjcxXHUyMjc0LVx1MjI3NVx1MjI3OC1cdTIyNzlcdTIyODAtXHUyMjgxXHUyMjg0LVx1MjI4NVx1MjI4OC1cdTIyODlcdTIyQUMtXHUyMkFGXHUyMkUwLVx1MjJFM1x1MjJFQS1cdTIyRURcdTIzMjktXHUyMzJBXHUyNDYwLVx1MjQ2OFx1MjQ3NC1cdTI0N0NcdTI0ODgtXHUyNDkwXHUyNEI2LVx1MjRFQVx1Mjc3Ni1cdTI3N0VcdTI3ODAtXHUyNzg4XHUyNzhBLVx1Mjc5Mlx1MzA0Q1x1MzA0RVx1MzA1MFx1MzA1Mlx1MzA1NFx1MzA1Nlx1MzA1OFx1MzA1QVx1MzA1Q1x1MzA1RVx1MzA2MFx1MzA2Mlx1MzA2NVx1MzA2N1x1MzA2OVx1MzA3MC1cdTMwNzFcdTMwNzMtXHUzMDc0XHUzMDc2LVx1MzA3N1x1MzA3OS1cdTMwN0FcdTMwN0MtXHUzMDdEXHUzMDk0XHUzMDlFXHUzMEFDXHUzMEFFXHUzMEIwXHUzMEIyXHUzMEI0XHUzMEI2XHUzMEI4XHUzMEJBXHUzMEJDXHUzMEJFXHUzMEMwXHUzMEMyXHUzMEM1XHUzMEM3XHUzMEM5XHUzMEQwLVx1MzBEMVx1MzBEMy1cdTMwRDRcdTMwRDYtXHUzMEQ3XHUzMEQ5LVx1MzBEQVx1MzBEQy1cdTMwRERcdTMwRjRcdTMwRjctXHUzMEZBXHUzMEZFXHVBQzAwLVx1RDdBM1x1RjkwMC1cdUZBMERcdUZBMTBcdUZBMTJcdUZBMTUtXHVGQTFFXHVGQTIwXHVGQTIyXHVGQTI1LVx1RkEyNlx1RkEyQS1cdUZBMkRcdUZCMURcdUZCMUZcdUZCMkEtXHVGQjM2XHVGQjM4LVx1RkIzQ1x1RkIzRVx1RkI0MC1cdUZCNDFcdUZCNDMtXHVGQjQ0XHVGQjQ2LVx1RkI0RVx1RkYyMS1cdUZGM0FcXFUwMDAxMDM0QVxcVTAwMDEwNDAwLVxcVTAwMDEwNDI1XFxVMDAwMUQxNjUtXFxVMDAwMUQxNjZcXFUwMDAxRDE2RC1cXFUwMDAxRDE3Ml0iKSwKKwkgICAgbmV3IFVuaWNvZGVTZXQoIltBLVpcdTAwQjItXHUwMEIzXHUwMEI1XHUwMEI5XHUwMEJDLVx1MDBCRVx1MDBDMC1cdTAwRDZcdTAwRDgtXHUwMERFXHUwMTAwXHUwMTAyXHUwMTA0XHUwMTA2XHUwMTA4XHUwMTBBXHUwMTBDXHUwMTBFXHUwMTEwXHUwMTEyXHUwMTE0XHUwMTE2XHUwMTE4XHUwMTFBXHUwMTFDXHUwMTFFXHUwMTIwXHUwMTIyXHUwMTI0XHUwMTI2XHUwMTI4XHUwMTJBXHUwMTJDXHUwMTJFXHUwMTMwLVx1MDEzMlx1MDEzNFx1MDEzNlx1MDEzOVx1MDEzQlx1MDEzRFx1MDEzRlx1MDE0MVx1MDE0M1x1MDE0NVx1MDE0N1x1MDE0QVx1MDE0Q1x1MDE0RVx1MDE1MFx1MDE1Mlx1MDE1NFx1MDE1Nlx1MDE1OFx1MDE1QVx1MDE1Q1x1MDE1RVx1MDE2MFx1MDE2Mlx1MDE2NFx1MDE2Nlx1MDE2OFx1MDE2QVx1MDE2Q1x1MDE2RVx1MDE3MFx1MDE3Mlx1MDE3NFx1MDE3Nlx1MDE3OC1cdTAxNzlcdTAxN0JcdTAxN0RcdTAxN0ZcdTAxODEtXHUwMTgyXHUwMTg0XHUwMTg2LVx1MDE4N1x1MDE4OS1cdTAxOEJcdTAxOEUtXHUwMTkxXHUwMTkzLVx1MDE5NFx1MDE5Ni1cdTAxOThcdTAxOUMtXHUwMTlEXHUwMTlGLVx1MDFBMFx1MDFBMlx1MDFBNFx1MDFBNi1cdTAxQTdcdTAxQTlcdTAxQUNcdTAxQUUtXHUwMUFGXHUwMUIxLVx1MDFCM1x1MDFCNVx1MDFCNy1cdTAxQjhcdTAxQkNcdTAxQzQtXHUwMUNEXHUwMUNGXHUwMUQxXHUwMUQzXHUwMUQ1XHUwMUQ3XHUwMUQ5XHUwMURCXHUwMURFXHUwMUUwXHUwMUUyXHUwMUU0XHUwMUU2XHUwMUU4XHUwMUVBXHUwMUVDXHUwMUVFXHUwMUYxLVx1MDFGNFx1MDFGNi1cdTAxRjhcdTAxRkFcdTAxRkNcdTAxRkVcdTAyMDBcdTAyMDJcdTAyMDRcdTAyMDZcdTAyMDhcdTAyMEFcdTAyMENcdTAyMEVcdTAyMTBcdTAyMTJcdTAyMTRcdTAyMTZcdTAyMThcdTAyMUFcdTAyMUNcdTAyMUVcdTAyMjJcdTAyMjRcdTAyMjZcdTAyMjhcdTAyMkFcdTAyMkNcdTAyMkVcdTAyMzBcdTAyMzJcdTAzNDAtXHUwMzQxXHUwMzQzLVx1MDM0NVx1MDM3NFx1MDM3RVx1MDM4Ni1cdTAzOEFcdTAzOENcdTAzOEUtXHUwMzhGXHUwMzkxLVx1MDNBMVx1MDNBMy1cdTAzQUJcdTAzQzJcdTAzRDAtXHUwM0QxXHUwM0Q1LVx1MDNENlx1MDNEQVx1MDNEQ1x1MDNERVx1MDNFMFx1MDNFMlx1MDNFNFx1MDNFNlx1MDNFOFx1MDNFQVx1MDNFQ1x1MDNFRVx1MDNGMC1cdTAzRjJcdTAzRjQtXHUwM0Y1XHUwNDAwLVx1MDQyRlx1MDQ2MFx1MDQ2Mlx1MDQ2NFx1MDQ2Nlx1MDQ2OFx1MDQ2QVx1MDQ2Q1x1MDQ2RVx1MDQ3MFx1MDQ3Mlx1MDQ3NFx1MDQ3Nlx1MDQ3OFx1MDQ3QVx1MDQ3Q1x1MDQ3RVx1MDQ4MFx1MDQ4Q1x1MDQ4RVx1MDQ5MFx1MDQ5Mlx1MDQ5NFx1MDQ5Nlx1MDQ5OFx1MDQ5QVx1MDQ5Q1x1MDQ5RVx1MDRBMFx1MDRBMlx1MDRBNFx1MDRBNlx1MDRBOFx1MDRBQVx1MDRBQ1x1MDRBRVx1MDRCMFx1MDRCMlx1MDRCNFx1MDRCNlx1MDRCOFx1MDRCQVx1MDRCQ1x1MDRCRVx1MDRDMVx1MDRDM1x1MDRDN1x1MDRDQlx1MDREMFx1MDREMlx1MDRENFx1MDRENlx1MDREOFx1MDREQVx1MDREQ1x1MDRERVx1MDRFMFx1MDRFMlx1MDRFNFx1MDRFNlx1MDRFOFx1MDRFQVx1MDRFQ1x1MDRFRVx1MDRGMFx1MDRGMlx1MDRGNFx1MDRGOFx1MDUzMS1cdTA1NTZcdTA5NTgtXHUwOTVGXHUwOURDLVx1MDlERFx1MDlERlx1MDlGOFx1MEEzM1x1MEEzNlx1MEE1OS1cdTBBNUJcdTBBNUVcdTBCNUMtXHUwQjVEXHUwRjJBLVx1MEYzM1x1MEY0M1x1MEY0RFx1MEY1Mlx1MEY1N1x1MEY1Q1x1MEY2OVx1MEY3M1x1MEY3NS1cdTBGNzZcdTBGNzhcdTBGODFcdTBGOTNcdTBGOURcdTBGQTJcdTBGQTdcdTBGQUNcdTBGQjlcdTEzN0NcdTFFMDBcdTFFMDJcdTFFMDRcdTFFMDZcdTFFMDhcdTFFMEFcdTFFMENcdTFFMEVcdTFFMTBcdTFFMTJcdTFFMTRcdTFFMTZcdTFFMThcdTFFMUFcdTFFMUNcdTFFMUVcdTFFMjBcdTFFMjJcdTFFMjRcdTFFMjZcdTFFMjhcdTFFMkFcdTFFMkNcdTFFMkVcdTFFMzBcdTFFMzJcdTFFMzRcdTFFMzZcdTFFMzhcdTFFM0FcdTFFM0NcdTFFM0VcdTFFNDBcdTFFNDJcdTFFNDRcdTFFNDZcdTFFNDhcdTFFNEFcdTFFNENcdTFFNEVcdTFFNTBcdTFFNTJcdTFFNTRcdTFFNTZcdTFFNThcdTFFNUFcdTFFNUNcdTFFNUVcdTFFNjBcdTFFNjJcdTFFNjRcdTFFNjZcdTFFNjhcdTFFNkFcdTFFNkNcdTFFNkVcdTFFNzBcdTFFNzJcdTFFNzRcdTFFNzZcdTFFNzhcdTFFN0FcdTFFN0NcdTFFN0VcdTFFODBcdTFFODJcdTFFODRcdTFFODZcdTFFODhcdTFFOEFcdTFFOENcdTFFOEVcdTFFOTBcdTFFOTJcdTFFOTRcdTFFOUJcdTFFQTBcdTFFQTJcdTFFQTRcdTFFQTZcdTFFQThcdTFFQUFcdTFFQUNcdTFFQUVcdTFFQjBcdTFFQjJcdTFFQjRcdTFFQjZcdTFFQjhcdTFFQkFcdTFFQkNcdTFFQkVcdTFFQzBcdTFFQzJcdTFFQzRcdTFFQzZcdTFFQzhcdTFFQ0FcdTFFQ0NcdTFFQ0VcdTFFRDBcdTFFRDJcdTFFRDRcdTFFRDZcdTFFRDhcdTFFREFcdTFFRENcdTFFREVcdTFFRTBcdTFFRTJcdTFFRTRcdTFFRTZcdTFFRThcdTFFRUFcdTFFRUNcdTFFRUVcdTFFRjBcdTFFRjJcdTFFRjRcdTFFRjZcdTFFRjhcdTFGMDgtXHUxRjBGXHUxRjE4LVx1MUYxRFx1MUYyOC1cdTFGMkZcdTFGMzgtXHUxRjNGXHUxRjQ4LVx1MUY0RFx1MUY1OVx1MUY1Qlx1MUY1RFx1MUY1Rlx1MUY2OC1cdTFGNkZcdTFGNzFcdTFGNzNcdTFGNzVcdTFGNzdcdTFGNzlcdTFGN0JcdTFGN0RcdTFGODgtXHUxRjhGXHUxRjk4LVx1MUY5Rlx1MUZBOC1cdTFGQUZcdTFGQjgtXHUxRkJDXHUxRkJFXHUxRkM4LVx1MUZDQ1x1MUZEM1x1MUZEOC1cdTFGREJcdTFGRTNcdTFGRTgtXHUxRkVDXHUxRkVFLVx1MUZFRlx1MUZGOC1cdTFGRkRcdTIwMDAtXHUyMDAxXHUyMDcwXHUyMDc0LVx1MjA3OVx1MjA4MC1cdTIwODlcdTIxMjZcdTIxMkEtXHUyMTJCXHUyMTUzLVx1MjE1RVx1MjE2MC1cdTIxN0ZcdTIxODEtXHUyMTgzXHUyMzI5LVx1MjMyQVx1MjQ2MC1cdTI0NjhcdTI0NzQtXHUyNDdDXHUyNDg4LVx1MjQ5MFx1MjRCNi1cdTI0RUFcdTI3NzYtXHUyNzdFXHUyNzgwLVx1Mjc4OFx1Mjc4QS1cdTI3OTJcdUY5MDAtXHVGQTBEXHVGQTEwXHVGQTEyXHVGQTE1LVx1RkExRVx1RkEyMFx1RkEyMlx1RkEyNS1cdUZBMjZcdUZBMkEtXHVGQTJEXHVGQjFGXHVGQjJBLVx1RkIzNlx1RkIzOC1cdUZCM0NcdUZCM0VcdUZCNDAtXHVGQjQxXHVGQjQzLVx1RkI0NFx1RkI0Ni1cdUZCNEVcdUZGMjEtXHVGRjNBXFxVMDAwMTAzNEFcXFUwMDAxMDQwMC1cXFUwMDAxMDQyNVxcVTAwMDFEMTY1LVxcVTAwMDFEMTY2XFxVMDAwMUQxNkQtXFxVMDAwMUQxNzJdIiksCisJICAgIG5ldyBVbmljb2RlU2V0KCJbQS1aXHUwMEEwXHUwMEE4XHUwMEFBXHUwMEFGXHUwMEIyLVx1MDBCNVx1MDBCOC1cdTAwQkFcdTAwQkMtXHUwMEJFXHUwMEMwLVx1MDBENlx1MDBEOC1cdTAwREVcdTAwRTAtXHUwMEU1XHUwMEU3LVx1MDBFRlx1MDBGMS1cdTAwRjZcdTAwRjktXHUwMEZEXHUwMEZGLVx1MDExMFx1MDExMi1cdTAxMjZcdTAxMjgtXHUwMTM3XHUwMTM5LVx1MDE0MVx1MDE0My1cdTAxNEFcdTAxNEMtXHUwMTUyXHUwMTU0LVx1MDE2Nlx1MDE2OC1cdTAxN0ZcdTAxODEtXHUwMTgyXHUwMTg0XHUwMTg2LVx1MDE4N1x1MDE4OS1cdTAxOEJcdTAxOEUtXHUwMTkxXHUwMTkzLVx1MDE5NFx1MDE5Ni1cdTAxOThcdTAxOUMtXHUwMTlEXHUwMTlGLVx1MDFBMlx1MDFBNFx1MDFBNi1cdTAxQTdcdTAxQTlcdTAxQUNcdTAxQUUtXHUwMUIzXHUwMUI1XHUwMUI3LVx1MDFCOFx1MDFCQ1x1MDFDNC1cdTAxRENcdTAxREUtXHUwMUU0XHUwMUU2LVx1MDIxQ1x1MDIxRS1cdTAyMUZcdTAyMjJcdTAyMjRcdTAyMjYtXHUwMjMzXHUwMkIwLVx1MDJCOFx1MDJEOC1cdTAyRERcdTAyRTAtXHUwMkU0XHUwMzQwLVx1MDM0MVx1MDM0My1cdTAzNDVcdTAzNzRcdTAzN0FcdTAzN0VcdTAzODQtXHUwMzhBXHUwMzhDXHUwMzhFLVx1MDNBMVx1MDNBMy1cdTAzQjBcdTAzQzJcdTAzQ0EtXHUwM0NFXHUwM0QwLVx1MDNENlx1MDNEQVx1MDNEQ1x1MDNERVx1MDNFMFx1MDNFMlx1MDNFNFx1MDNFNlx1MDNFOFx1MDNFQVx1MDNFQ1x1MDNFRVx1MDNGMC1cdTAzRjJcdTAzRjQtXHUwM0Y1XHUwNDAwLVx1MDQyRlx1MDQzOVx1MDQ1MC1cdTA0NTFcdTA0NTNcdTA0NTdcdTA0NUMtXHUwNDVFXHUwNDYwXHUwNDYyXHUwNDY0XHUwNDY2XHUwNDY4XHUwNDZBXHUwNDZDXHUwNDZFXHUwNDcwXHUwNDcyXHUwNDc0XHUwNDc2LVx1MDQ3OFx1MDQ3QVx1MDQ3Q1x1MDQ3RVx1MDQ4MFx1MDQ4Q1x1MDQ4RVx1MDQ5MFx1MDQ5Mlx1MDQ5NFx1MDQ5Nlx1MDQ5OFx1MDQ5QVx1MDQ5Q1x1MDQ5RVx1MDRBMFx1MDRBMlx1MDRBNFx1MDRBNlx1MDRBOFx1MDRBQVx1MDRBQ1x1MDRBRVx1MDRCMFx1MDRCMlx1MDRCNFx1MDRCNlx1MDRCOFx1MDRCQVx1MDRCQ1x1MDRCRVx1MDRDMS1cdTA0QzNcdTA0QzdcdTA0Q0JcdTA0RDAtXHUwNEQ0XHUwNEQ2LVx1MDREOFx1MDREQS1cdTA0RTBcdTA0RTItXHUwNEU4XHUwNEVBLVx1MDRGNVx1MDRGOC1cdTA0RjlcdTA1MzEtXHUwNTU2XHUwNTg3XHUwNjIyLVx1MDYyNlx1MDY3NS1cdTA2NzhcdTA2QzBcdTA2QzJcdTA2RDNcdTA5MjlcdTA5MzFcdTA5MzRcdTA5NTgtXHUwOTVGXHUwOUNCLVx1MDlDQ1x1MDlEQy1cdTA5RERcdTA5REZcdTA5RjhcdTBBMzNcdTBBMzZcdTBBNTktXHUwQTVCXHUwQTVFXHUwQjQ4XHUwQjRCLVx1MEI0Q1x1MEI1Qy1cdTBCNURcdTBCOTRcdTBCQ0EtXHUwQkNDXHUwQzQ4XHUwQ0MwXHUwQ0M3LVx1MENDOFx1MENDQS1cdTBDQ0JcdTBENEEtXHUwRDRDXHUwRERBXHUwRERDLVx1MERERVx1MEUzM1x1MEVCM1x1MEVEQy1cdTBFRERcdTBGMENcdTBGMkEtXHUwRjMzXHUwRjQzXHUwRjREXHUwRjUyXHUwRjU3XHUwRjVDXHUwRjY5XHUwRjczXHUwRjc1LVx1MEY3OVx1MEY4MVx1MEY5M1x1MEY5RFx1MEZBMlx1MEZBN1x1MEZBQ1x1MEZCOVx1MTAyNlx1MTM3Q1x1MUUwMC1cdTFFOUJcdTFFQTAtXHUxRUY5XHUxRjAwLVx1MUYxNVx1MUYxOC1cdTFGMURcdTFGMjAtXHUxRjQ1XHUxRjQ4LVx1MUY0RFx1MUY1MC1cdTFGNTdcdTFGNTlcdTFGNUJcdTFGNURcdTFGNUYtXHUxRjdEXHUxRjgwLVx1MUZCNFx1MUZCNi1cdTFGQzRcdTFGQzYtXHUxRkQzXHUxRkQ2LVx1MUZEQlx1MUZERC1cdTFGRUZcdTFGRjItXHUxRkY0XHUxRkY2LVx1MUZGRVx1MjAwMC1cdTIwMEFcdTIwMTFcdTIwMTdcdTIwMjQtXHUyMDI2XHUyMDJGXHUyMDMzLVx1MjAzNFx1MjAzNi1cdTIwMzdcdTIwM0NcdTIwM0VcdTIwNDgtXHUyMDQ5XHUyMDcwXHUyMDc0LVx1MjA4RVx1MjBBOFx1MjEwMC1cdTIxMDNcdTIxMDUtXHUyMTA3XHUyMTA5LVx1MjExM1x1MjExNS1cdTIxMTZcdTIxMTktXHUyMTFEXHUyMTIwLVx1MjEyMlx1MjEyNFx1MjEyNlx1MjEyOFx1MjEyQS1cdTIxMkRcdTIxMkYtXHUyMTMxXHUyMTMzLVx1MjEzOVx1MjE1My1cdTIxN0ZcdTIxODEtXHUyMTgzXHUyMTlBLVx1MjE5Qlx1MjFBRVx1MjFDRC1cdTIxQ0ZcdTIyMDRcdTIyMDlcdTIyMENcdTIyMjRcdTIyMjZcdTIyMkMtXHUyMjJEXHUyMjJGLVx1MjIzMFx1MjI0MVx1MjI0NFx1MjI0N1x1MjI0OVx1MjI2MFx1MjI2Mlx1MjI2RC1cdTIyNzFcdTIyNzQtXHUyMjc1XHUyMjc4LVx1MjI3OVx1MjI4MC1cdTIyODFcdTIyODQtXHUyMjg1XHUyMjg4LVx1MjI4OVx1MjJBQy1cdTIyQUZcdTIyRTAtXHUyMkUzXHUyMkVBLVx1MjJFRFx1MjMyOS1cdTIzMkFcdTI0NjAtXHUyNEVBXHUyNzc2LVx1Mjc3RVx1Mjc4MC1cdTI3ODhcdTI3OEEtXHUyNzkyXHUyRTlGXHUyRUYzXHUyRjAwLVx1MkZENVx1MzAwMFx1MzAzNlx1MzAzOC1cdTMwM0FcdTMwNENcdTMwNEVcdTMwNTBcdTMwNTJcdTMwNTRcdTMwNTZcdTMwNThcdTMwNUFcdTMwNUNcdTMwNUVcdTMwNjBcdTMwNjJcdTMwNjVcdTMwNjdcdTMwNjlcdTMwNzAtXHUzMDcxXHUzMDczLVx1MzA3NFx1MzA3Ni1cdTMwNzdcdTMwNzktXHUzMDdBXHUzMDdDLVx1MzA3RFx1MzA5NFx1MzA5Qi1cdTMwOUNcdTMwOUVcdTMwQUNcdTMwQUVcdTMwQjBcdTMwQjJcdTMwQjRcdTMwQjZcdTMwQjhcdTMwQkFcdTMwQkNcdTMwQkVcdTMwQzBcdTMwQzJcdTMwQzVcdTMwQzdcdTMwQzlcdTMwRDAtXHUzMEQxXHUzMEQzLVx1MzBENFx1MzBENi1cdTMwRDdcdTMwRDktXHUzMERBXHUzMERDLVx1MzBERFx1MzBGNFx1MzBGNy1cdTMwRkFcdTMwRkVcdTMxMzEtXHUzMThFXHUzMTkyLVx1MzE5Rlx1MzIwMC1cdTMyMUNcdTMyMjAtXHUzMjQzXHUzMjYwLVx1MzI3Qlx1MzI4MC1cdTMyQjBcdTMyQzAtXHUzMkNCXHUzMkQwLVx1MzJGRVx1MzMwMC1cdTMzNzZcdTMzN0ItXHUzM0REXHUzM0UwLVx1MzNGRVx1QUMwMC1cdUQ3QTNcdUY5MDAtXHVGQTBEXHVGQTEwXHVGQTEyXHVGQTE1LVx1RkExRVx1RkEyMFx1RkEyMlx1RkEyNS1cdUZBMjZcdUZBMkEtXHVGQTJEXHVGQjAwLVx1RkIwNlx1RkIxMy1cdUZCMTdcdUZCMURcdUZCMUYtXHVGQjM2XHVGQjM4LVx1RkIzQ1x1RkIzRVx1RkI0MC1cdUZCNDFcdUZCNDMtXHVGQjQ0XHVGQjQ2LVx1RkJCMVx1RkJEMy1cdUZEM0RcdUZENTAtXHVGRDhGXHVGRDkyLVx1RkRDN1x1RkRGMC1cdUZERkJcdUZFMzAtXHVGRTQ0XHVGRTQ5LVx1RkU1Mlx1RkU1NC1cdUZFNjZcdUZFNjgtXHVGRTZCXHVGRTcwLVx1RkU3Mlx1RkU3NFx1RkU3Ni1cdUZFRkNcdUZGMDEtXHVGRjVFXHVGRjYxLVx1RkZCRVx1RkZDMi1cdUZGQzdcdUZGQ0EtXHVGRkNGXHVGRkQyLVx1RkZEN1x1RkZEQS1cdUZGRENcdUZGRTAtXHVGRkU2XHVGRkU4LVx1RkZFRVxcVTAwMDEwMzRBXFxVMDAwMTA0MDAtXFxVMDAwMTA0MjVcXFUwMDAxRDE2NS1cXFUwMDAxRDE2NlxcVTAwMDFEMTZELVxcVTAwMDFEMTcyXSIpLAorCSAgICBuZXcgVW5pY29kZVNldCgiW0EtWlx1MDBBMFx1MDBBOFx1MDBBQVx1MDBBRlx1MDBCMi1cdTAwQjVcdTAwQjgtXHUwMEJBXHUwMEJDLVx1MDBCRVx1MDBDMC1cdTAwRDZcdTAwRDgtXHUwMERFXHUwMTAwXHUwMTAyXHUwMTA0XHUwMTA2XHUwMTA4XHUwMTBBXHUwMTBDXHUwMTBFXHUwMTEwXHUwMTEyXHUwMTE0XHUwMTE2XHUwMTE4XHUwMTFBXHUwMTFDXHUwMTFFXHUwMTIwXHUwMTIyXHUwMTI0XHUwMTI2XHUwMTI4XHUwMTJBXHUwMTJDXHUwMTJFXHUwMTMwLVx1MDEzNFx1MDEzNlx1MDEzOVx1MDEzQlx1MDEzRFx1MDEzRi1cdTAxNDFcdTAxNDNcdTAxNDVcdTAxNDdcdTAxNDktXHUwMTRBXHUwMTRDXHUwMTRFXHUwMTUwXHUwMTUyXHUwMTU0XHUwMTU2XHUwMTU4XHUwMTVBXHUwMTVDXHUwMTVFXHUwMTYwXHUwMTYyXHUwMTY0XHUwMTY2XHUwMTY4XHUwMTZBXHUwMTZDXHUwMTZFXHUwMTcwXHUwMTcyXHUwMTc0XHUwMTc2XHUwMTc4LVx1MDE3OVx1MDE3Qlx1MDE3RFx1MDE3Rlx1MDE4MS1cdTAxODJcdTAxODRcdTAxODYtXHUwMTg3XHUwMTg5LVx1MDE4Qlx1MDE4RS1cdTAxOTFcdTAxOTMtXHUwMTk0XHUwMTk2LVx1MDE5OFx1MDE5Qy1cdTAxOURcdTAxOUYtXHUwMUEwXHUwMUEyXHUwMUE0XHUwMUE2LVx1MDFBN1x1MDFBOVx1MDFBQ1x1MDFBRS1cdTAxQUZcdTAxQjEtXHUwMUIzXHUwMUI1XHUwMUI3LVx1MDFCOFx1MDFCQ1x1MDFDNC1cdTAxQ0RcdTAxQ0ZcdTAxRDFcdTAxRDNcdTAxRDVcdTAxRDdcdTAxRDlcdTAxREJcdTAxREVcdTAxRTBcdTAxRTJcdTAxRTRcdTAxRTZcdTAxRThcdTAxRUFcdTAxRUNcdTAxRUVcdTAxRjEtXHUwMUY0XHUwMUY2LVx1MDFGOFx1MDFGQVx1MDFGQ1x1MDFGRVx1MDIwMFx1MDIwMlx1MDIwNFx1MDIwNlx1MDIwOFx1MDIwQVx1MDIwQ1x1MDIwRVx1MDIxMFx1MDIxMlx1MDIxNFx1MDIxNlx1MDIxOFx1MDIxQVx1MDIxQ1x1MDIxRVx1MDIyMlx1MDIyNFx1MDIyNlx1MDIyOFx1MDIyQVx1MDIyQ1x1MDIyRVx1MDIzMFx1MDIzMlx1MDJCMC1cdTAyQjhcdTAyRDgtXHUwMkREXHUwMkUwLVx1MDJFNFx1MDM0MC1cdTAzNDFcdTAzNDMtXHUwMzQ1XHUwMzc0XHUwMzdBXHUwMzdFXHUwMzg0LVx1MDM4QVx1MDM4Q1x1MDM4RS1cdTAzOEZcdTAzOTEtXHUwM0ExXHUwM0EzLVx1MDNBQlx1MDNDMlx1MDNEMC1cdTAzRDZcdTAzREFcdTAzRENcdTAzREVcdTAzRTBcdTAzRTJcdTAzRTRcdTAzRTZcdTAzRThcdTAzRUFcdTAzRUNcdTAzRUVcdTAzRjAtXHUwM0YyXHUwM0Y0LVx1MDNGNVx1MDQwMC1cdTA0MkZcdTA0NjBcdTA0NjJcdTA0NjRcdTA0NjZcdTA0NjhcdTA0NkFcdTA0NkNcdTA0NkVcdTA0NzBcdTA0NzJcdTA0NzRcdTA0NzZcdTA0NzhcdTA0N0FcdTA0N0NcdTA0N0VcdTA0ODBcdTA0OENcdTA0OEVcdTA0OTBcdTA0OTJcdTA0OTRcdTA0OTZcdTA0OThcdTA0OUFcdTA0OUNcdTA0OUVcdTA0QTBcdTA0QTJcdTA0QTRcdTA0QTZcdTA0QThcdTA0QUFcdTA0QUNcdTA0QUVcdTA0QjBcdTA0QjJcdTA0QjRcdTA0QjZcdTA0QjhcdTA0QkFcdTA0QkNcdTA0QkVcdTA0QzFcdTA0QzNcdTA0QzdcdTA0Q0JcdTA0RDBcdTA0RDJcdTA0RDRcdTA0RDZcdTA0RDhcdTA0REFcdTA0RENcdTA0REVcdTA0RTBcdTA0RTJcdTA0RTRcdTA0RTZcdTA0RThcdTA0RUFcdTA0RUNcdTA0RUVcdTA0RjBcdTA0RjJcdTA0RjRcdTA0RjhcdTA1MzEtXHUwNTU2XHUwNTg3XHUwNjc1LVx1MDY3OFx1MDk1OC1cdTA5NUZcdTA5REMtXHUwOUREXHUwOURGXHUwOUY4XHUwQTMzXHUwQTM2XHUwQTU5LVx1MEE1Qlx1MEE1RVx1MEI1Qy1cdTBCNURcdTBFMzNcdTBFQjNcdTBFREMtXHUwRUREXHUwRjBDXHUwRjJBLVx1MEYzM1x1MEY0M1x1MEY0RFx1MEY1Mlx1MEY1N1x1MEY1Q1x1MEY2OVx1MEY3M1x1MEY3NS1cdTBGNzlcdTBGODFcdTBGOTNcdTBGOURcdTBGQTJcdTBGQTdcdTBGQUNcdTBGQjlcdTEzN0NcdTFFMDBcdTFFMDJcdTFFMDRcdTFFMDZcdTFFMDhcdTFFMEFcdTFFMENcdTFFMEVcdTFFMTBcdTFFMTJcdTFFMTRcdTFFMTZcdTFFMThcdTFFMUFcdTFFMUNcdTFFMUVcdTFFMjBcdTFFMjJcdTFFMjRcdTFFMjZcdTFFMjhcdTFFMkFcdTFFMkNcdTFFMkVcdTFFMzBcdTFFMzJcdTFFMzRcdTFFMzZcdTFFMzhcdTFFM0FcdTFFM0NcdTFFM0VcdTFFNDBcdTFFNDJcdTFFNDRcdTFFNDZcdTFFNDhcdTFFNEFcdTFFNENcdTFFNEVcdTFFNTBcdTFFNTJcdTFFNTRcdTFFNTZcdTFFNThcdTFFNUFcdTFFNUNcdTFFNUVcdTFFNjBcdTFFNjJcdTFFNjRcdTFFNjZcdTFFNjhcdTFFNkFcdTFFNkNcdTFFNkVcdTFFNzBcdTFFNzJcdTFFNzRcdTFFNzZcdTFFNzhcdTFFN0FcdTFFN0NcdTFFN0VcdTFFODBcdTFFODJcdTFFODRcdTFFODZcdTFFODhcdTFFOEFcdTFFOENcdTFFOEVcdTFFOTBcdTFFOTJcdTFFOTRcdTFFOUEtXHUxRTlCXHUxRUEwXHUxRUEyXHUxRUE0XHUxRUE2XHUxRUE4XHUxRUFBXHUxRUFDXHUxRUFFXHUxRUIwXHUxRUIyXHUxRUI0XHUxRUI2XHUxRUI4XHUxRUJBXHUxRUJDXHUxRUJFXHUxRUMwXHUxRUMyXHUxRUM0XHUxRUM2XHUxRUM4XHUxRUNBXHUxRUNDXHUxRUNFXHUxRUQwXHUxRUQyXHUxRUQ0XHUxRUQ2XHUxRUQ4XHUxRURBXHUxRURDXHUxRURFXHUxRUUwXHUxRUUyXHUxRUU0XHUxRUU2XHUxRUU4XHUxRUVBXHUxRUVDXHUxRUVFXHUxRUYwXHUxRUYyXHUxRUY0XHUxRUY2XHUxRUY4XHUxRjA4LVx1MUYwRlx1MUYxOC1cdTFGMURcdTFGMjgtXHUxRjJGXHUxRjM4LVx1MUYzRlx1MUY0OC1cdTFGNERcdTFGNTlcdTFGNUJcdTFGNURcdTFGNUZcdTFGNjgtXHUxRjZGXHUxRjcxXHUxRjczXHUxRjc1XHUxRjc3XHUxRjc5XHUxRjdCXHUxRjdEXHUxRjg4LVx1MUY4Rlx1MUY5OC1cdTFGOUZcdTFGQTgtXHUxRkFGXHUxRkI4LVx1MUZDMVx1MUZDOC1cdTFGQ0ZcdTFGRDNcdTFGRDgtXHUxRkRCXHUxRkRELVx1MUZERlx1MUZFM1x1MUZFOC1cdTFGRUZcdTFGRjgtXHUxRkZFXHUyMDAwLVx1MjAwQVx1MjAxMVx1MjAxN1x1MjAyNC1cdTIwMjZcdTIwMkZcdTIwMzMtXHUyMDM0XHUyMDM2LVx1MjAzN1x1MjAzQ1x1MjAzRVx1MjA0OC1cdTIwNDlcdTIwNzBcdTIwNzQtXHUyMDhFXHUyMEE4XHUyMTAwLVx1MjEwM1x1MjEwNS1cdTIxMDdcdTIxMDktXHUyMTEzXHUyMTE1LVx1MjExNlx1MjExOS1cdTIxMURcdTIxMjAtXHUyMTIyXHUyMTI0XHUyMTI2XHUyMTI4XHUyMTJBLVx1MjEyRFx1MjEyRi1cdTIxMzFcdTIxMzMtXHUyMTM5XHUyMTUzLVx1MjE3Rlx1MjE4MS1cdTIxODNcdTIyMkMtXHUyMjJEXHUyMjJGLVx1MjIzMFx1MjMyOS1cdTIzMkFcdTI0NjAtXHUyNEVBXHUyNzc2LVx1Mjc3RVx1Mjc4MC1cdTI3ODhcdTI3OEEtXHUyNzkyXHUyRTlGXHUyRUYzXHUyRjAwLVx1MkZENVx1MzAwMFx1MzAzNlx1MzAzOC1cdTMwM0FcdTMwOUItXHUzMDlDXHUzMTMxLVx1MzE4RVx1MzE5Mi1cdTMxOUZcdTMyMDAtXHUzMjFDXHUzMjIwLVx1MzI0M1x1MzI2MC1cdTMyN0JcdTMyODAtXHUzMkIwXHUzMkMwLVx1MzJDQlx1MzJEMC1cdTMyRkVcdTMzMDAtXHUzMzc2XHUzMzdCLVx1MzNERFx1MzNFMC1cdTMzRkVcdUY5MDAtXHVGQTBEXHVGQTEwXHVGQTEyXHVGQTE1LVx1RkExRVx1RkEyMFx1RkEyMlx1RkEyNS1cdUZBMjZcdUZBMkEtXHVGQTJEXHVGQjAwLVx1RkIwNlx1RkIxMy1cdUZCMTdcdUZCMUYtXHVGQjM2XHVGQjM4LVx1RkIzQ1x1RkIzRVx1RkI0MC1cdUZCNDFcdUZCNDMtXHVGQjQ0XHVGQjQ2LVx1RkJCMVx1RkJEMy1cdUZEM0RcdUZENTAtXHVGRDhGXHVGRDkyLVx1RkRDN1x1RkRGMC1cdUZERkJcdUZFMzAtXHVGRTQ0XHVGRTQ5LVx1RkU1Mlx1RkU1NC1cdUZFNjZcdUZFNjgtXHVGRTZCXHVGRTcwLVx1RkU3Mlx1RkU3NFx1RkU3Ni1cdUZFRkNcdUZGMDEtXHVGRjVFXHVGRjYxLVx1RkZCRVx1RkZDMi1cdUZGQzdcdUZGQ0EtXHVGRkNGXHVGRkQyLVx1RkZEN1x1RkZEQS1cdUZGRENcdUZGRTAtXHVGRkU2XHVGRkU4LVx1RkZFRVxcVTAwMDEwMzRBXFxVMDAwMTA0MDAtXFxVMDAwMTA0MjVcXFUwMDAxRDE2NS1cXFUwMDAxRDE2NlxcVTAwMDFEMTZELVxcVTAwMDFEMTcyXSIpLAorICAgICAgICB9LAorICAgIH07CisgICAgKi8KKworICAgIAorICAgIHN0YXRpYyBVbmljb2RlU2V0IGdlbmVyYXRlZFNldDsKKyAgICAKKyAgICAvLyBUaGVzZSBzaG91bGQgYm90aCBiZSBwdWJsaWMsIGFuZCBvbiB0aGUgcmVzcGVjdGl2ZSBjbGFzc2VzCisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIGFkZEFsbChVbmljb2RlU2V0IHMsIFN0cmluZyBzdHIpIHsKKyAgICAgICAgaW50IGNwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHN0ci5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdChzdHIsaSk7CisgICAgICAgICAgICBzLmFkZChjcCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGNvbnRhaW5zU29tZShVbmljb2RlU2V0IHMsIFN0cmluZyBzdHIpIHsKKyAgICAgICAgaW50IGNwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHN0ci5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdChzdHIsaSk7CisgICAgICAgICAgICBpZiAocy5jb250YWlucyhjcCkpIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L2R1bXBJQ1VydWxlcy5iYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvZHVtcElDVXJ1bGVzLmJhdApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iN2Q5YmNlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L2R1bXBJQ1VydWxlcy5iYXQKQEAgLTAsMCArMSw0NzkgQEAKK0ByZW0gPSAnLS0qLVBlcmwtKi0tCitAZWNobyBvZmYKK2lmICIlT1MlIiA9PSAiV2luZG93c19OVCIgZ290byBXaW5OVAorcGVybCAteCAtUyAiJTAiICUxICUyICUzICU0ICU1ICU2ICU3ICU4ICU5Citnb3RvIGVuZG9mcGVybAorOldpbk5UCitwZXJsIC14IC1TICIlMCIgJSoKK2lmIE5PVCAiJUNPTVNQRUMlIiA9PSAiJVN5c3RlbVJvb3QlXHN5c3RlbTMyXGNtZC5leGUiIGdvdG8gZW5kb2ZwZXJsCitpZiAlZXJyb3JsZXZlbCUgPT0gOTAwOSBlY2hvIFlvdSBkbyBub3QgaGF2ZSBQZXJsIGluIHlvdXIgUEFUSC4KK2dvdG8gZW5kb2ZwZXJsCitAcmVtICc7CisjIXBlcmwKKyNsaW5lIDE0CisKKyMgVGhpcyBwZXJsIHNjcmlwdCBjcmVhdGVzIElDVSB0cmFuc2xpdGVyYXRvciBkYXRhIGZpbGVzLCB0aGF0IGxpdmUKKyMgaW4gaWN1L2RhdGEsIGZyb20gSUNVNEogVVRGOCB0cmFuc2xpdGVyYXRvciBkYXRhIGZpbGVzLCBpbgorIyBpY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhLy4KKyMKKyMgVGhlIHRyYW5zZm9ybWF0aW9uIHRoYXQgaXMgZG9uZSBpcyB2ZXJ5IG1pbmltYWwuICBUaGUgc2NyaXB0IGFzc3VtZXMKKyMgdGhhdCB0aGUgaW5wdXQgZmlsZXMgdXNlIG9ubHkgIyBjb21tZW50cworIyBhbmQgdGhhdCB0aGV5IGZvbGxvdyBhIHJpZ2lkIGZvcm1hdC4KKyMKKyMgVGhlIG91dHB1dCBmaWxlcyBhcmUgbmFtZWQgYWNjb3JkaW5nIHRvIElDVSBjb252ZW50aW9ucyAoc2VlIE5BTUVfTUFQCisjIGJlbG93KSBhbmQgY3JlYXRlZCBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkuICBUaGV5IHNob3VsZCBiZSBtYW51YWxseQorIyBjaGVja2VkIGFuZCB0aGVuIGNvcGllZCBpbnRvIHRoZSBpY3UvZGF0YS90cmFubGl0IGRpcmVjdG9yeS4KKyMgQW4gSUNVIGJ1aWxkIG11c3QKKyMgdGhlbiBiZSBpbml0aWF0ZWQsIGFuZCB0aGUgc3RhbmRhcmQgc3VpdGUgb2YgSUNVIHRyYW5zbGl0ZXJhdG9yIHRlc3RzCisjIHNob3VsZCBiZSBydW4gYWZ0ZXIgdGhhdC4KKyMKKyMgQWxhbiBMaXUgNS8xOS8wMCAyLzI3LzAxCisKK3VzZSBHZXRvcHQ6Okxvbmc7Cit1c2Ugc3RyaWN0OworCit1c2UgdmFycyBxdyglVVNFRF9GSUxFUyk7CisKK215ICRESVIgPSAiLi4vLi4vLi4vaW1wbC9kYXRhIjsKK215ICRJRCA9ICcnOworCitHZXRPcHRpb25zKCdkaXI9cycgPT4gXCRESVIsCisgICAgICAgICAgICdpZD1zJyA9PiBcJElELAorICAgICAgICAgICAnPD4nID0+IFwmdXNhZ2UpIHx8IGRpZTsKKwordXNhZ2UoKSBpZiAoQEFSR1YpOworCitteSAkSUQgPX4gcy8tL18vOworaWYgKCEgLWQgJERJUikgeworICAgIHByaW50IFNUREVSUiAiJERJUiBpcyBub3QgYSBkaXJlY3RvcnlcbiI7CisgICAgdXNhZ2UoKTsKK30KKworc3ViIHVzYWdlIHsKKyAgICBteSAkbWUgPSAkMDsKKyAgICAkbWUgPX4gc3wuK1svXFxdfHw7CisgICAgcHJpbnQgIlVzYWdlOiAkbWUgWy1kaXIgPGRpcj5dIFstaWQgPGlkPl1cbiI7CisgICAgcHJpbnQgIiAtLWRpciA8ZGlyPiBTcGVjaWZ5IHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGVcbiI7CisgICAgcHJpbnQgIiAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvcl8qLnR4dCBmaWxlc1xuIjsKKyAgICBwcmludCAiIC0taWQgPGlkPiAgIFNwZWNpZnkgYSBzaW5nbGUgSUQgdG8gdHJhbnNmb3JtLCBlLmcuXG4iOworICAgIHByaW50ICIgICAgICAgICAgICAgRnVsbHdpZHRoLUhhbGZ3aWR0aFxuIjsKKyAgICBleGl0KDEpOworfQorCitteSAkSkFWQV9PTkxZID0gJy0nOworCitteSAkT1VURElSID0gImljdTRjIjsKK21rZGlyKCRPVVRESVIsMDc3Nyk7CisKKyMgTWFwcGluZyBmcm9tIEphdmEgZmlsZSBuYW1lcyB0byBJQ1UgZmlsZSBuYW1lcworIyBDb25zdHJhaW50cyBvbiBJQ1U0QyBmaWxlIG5hbWU6IGljdWR0MjBiXworIyB8LS05IChwcmVmaXgpLS0tfC0tLTE4KG5hbWUgd2l0aCBkaXN0aW5ndWlzaGVyLGUuZy4gInRfIiApLS0tLXwKKyMgIC0tNCAoIi4iK2V4dG4pLS18ID0gMzEgY2hhcmFjdGVycyB0b3RhbC4KKyMgVGhhdCBpcywgbXVzdCBoYXZlIGxlbmd0aCglTkFNRV9NQVB7eH0pIDw9IDE2CisKK215ICRNQVhfSUNVNENfRklMRU5BTUVfTEVOID0gMTg7CisKKyMgLS0gSElTVE9SWSAtLSBJZiBub3QgbWFya2VkLCB0aGVuIHByZSAyLjIuCisjICAgICAgICAgICAgICAgQWxsIEludGVySW5kaWMgYXJlIHByZSAyLjIuCisjIEFueV9BY2NlbnRzCisjIEFueV9QdWJsaXNoaW5nCisjIEFyYWJpY19MYXRpbiAgICAgICAgICAgKiAyLjIKKyMgQ3lyaWxsaWNfTGF0aW4KKyMgRnVsbHdpZHRoX0hhbGZ3aWR0aAorIyBHcmVla19MYXRpbgorIyBHcmVla19MYXRpbl9VTkdFR04gICAgICogMi4yIChtb3ZlZCBmcm9tIGVsLnR4dCkKKyMgSGFuX0xhdGluICAgICAgICAgICAgICAqIDIuMgorIyBIYW5fTGF0aW5fRGVmaW5pdGlvbiAgICogMi4yCisjIEhhbl9MYXRpbl9FRElDVCAgICAgICAgKiAyLjIgSiBvbmx5CisjIEhlYnJld19MYXRpbiAgICAgICAgICAgKiAyLjIKKyMgSGlyYWdhbmFfS2F0YWthbmEKKyMgSGlyYWdhbmFfTGF0aW4KKyMgTGF0aW5fSmFtbworIyBMYXRpbl9LYXRha2FuYQorIyBUaGFpTG9naWNhbF9MYXRpbiAgICAgICogMi4yIEogb25seQorIyBUaGFpX1RoYWlMb2dpY2FsICAgICAgICogMi4yIEogb25seQorIyBUaGFpX1RoYWlTZW1pICAgICAgICAgICogMi4yIEogb25seQorCitteSAlTkFNRV9NQVAgPSAoCisgICAgICMgQW4gSUNVIG5hbWUgb2YgIiIgbWVhbnMgdGhlIElDVSBuYW1lID09IHRoZSBJRAorCisgICAgICMgV2UgZmlsdGVyIG5hbWVzIGJhc2VkIG9uIHdoYXQgaXMgaW4gdXNlIGluIHRoZSBpbmRleCBmaWxlLgorCisgICAgICMgRmxhZyBhIHJ1bGUgYXMgSkFWQV9PTkxZIGlmIGl0IGV4aXN0cyBhbmQgd2UgdXNlIGl0IGluIEphdmEsCisgICAgICMgYnV0IHdlIGRvbid0IHVzZSBpdCBpbiBDLgorCisgICAgICMgVXNlIG9mZmljaWFsIHNjcmlwdCBhYmJyZXZpYXRpb25zIHdoZXJlIHBvc3NpYmxlLgorCisgICAjIHwuLi4uLi4uLi4uLi4uLnwgICAgICAgICAgIHwuLi4uLi4uLi4uLi4uLnwgICAgICAgICAgICAgCisgICAjIDEyMzQ1Njc4OTAxMjM0NTYgICAgICAgICAgIDEyMzQ1Njc4OTAxMjM0NTYKKyAgICAgQW55X0FjY2VudHMgICAgICAgICAgICA9PiAiIiwKKyAgICAgQW55X1B1Ymxpc2hpbmcgICAgICAgICA9PiAiIiwKKyAgICAgQ3lyaWxsaWNfTGF0aW4gICAgICAgICA9PiAiQ3lybF9MYXRuIiwKKyAgICAgRnVsbHdpZHRoX0hhbGZ3aWR0aCAgICA9PiAiRldpZHRoX0hXaWR0aCIsCisgICAgIEdyZWVrX0xhdGluICAgICAgICAgICAgPT4gIkdyZWtfTGF0biIsCisgICAgIEhpcmFnYW5hX0thdGFrYW5hICAgICAgPT4gIkhpcmFfS2FuYSIsCisgICAgIEhpcmFnYW5hX0xhdGluICAgICAgICAgPT4gIkhpcmFfTGF0biIsCisgICAgIExhdGluX0phbW8gICAgICAgICAgICAgPT4gIkxhdG5fSmFtbyIsCisgICAgIExhdGluX0thdGFrYW5hICAgICAgICAgPT4gIkxhdG5fS2FuYSIsCisKKyAgICAgQXJhYmljX0xhdGluICAgICAgICAgICA9PiAiQXJhYl9MYXRuIiwKKyAgICAgR3JlZWtfTGF0aW5fVU5HRUdOICAgICA9PiAiR3Jla19MYXRuX1VOR0VHTiIsCisgICAgIEhhbl9MYXRpbiAgICAgICAgICAgICAgPT4gIkhhbmlfTGF0biIsCisgICAgIEhhbl9MYXRpbl9EZWZpbml0aW9uICAgPT4gIkhhbmlfTGF0bl9EZWYiLAorICAgICBIYW5fTGF0aW5fRURJQ1QgICAgICAgID0+ICJIYW5pX0xhdG5fRURJQ1QiLAorICAgICBIZWJyZXdfTGF0aW4gICAgICAgICAgID0+ICJIZWJyX0xhdG4iLAorICAgICBUaGFpTG9naWNhbF9MYXRpbiAgICAgID0+ICRKQVZBX09OTFksICMgIlRoYWlMb2dfTGF0biIsCisgICAgIFRoYWlfVGhhaUxvZ2ljYWwgICAgICAgPT4gJEpBVkFfT05MWSwgIyAiVGhhaV9UaGFpTG9nIiwKKyAgICAgVGhhaV9UaGFpU2VtaSAgICAgICAgICA9PiAkSkFWQV9PTkxZLCAjICJUaGFpX1RoYWlTZW1pIiwKKworICAgICBJbnRlckluZGljX0JlbmdhbGkgICAgID0+ICJJbnRlckluZGljX0JlbmciLAorICAgICBJbnRlckluZGljX0RldmFuYWdhcmkgID0+ICJJbnRlckluZGljX0RldmEiLAorICAgICBJbnRlckluZGljX0d1amFyYXRpICAgID0+ICJJbnRlckluZGljX0d1anIiLAorICAgICBJbnRlckluZGljX0d1cm11a2hpICAgID0+ICJJbnRlckluZGljX0d1cnUiLAorICAgICBJbnRlckluZGljX0thbm5hZGEgICAgID0+ICJJbnRlckluZGljX0tuZGEiLAorICAgICBJbnRlckluZGljX0xhdGluICAgICAgID0+ICJJbnRlckluZGljX0xhdG4iLAorICAgICBJbnRlckluZGljX01hbGF5YWxhbSAgID0+ICJJbnRlckluZGljX01seW0iLAorICAgICBJbnRlckluZGljX09yaXlhICAgICAgID0+ICJJbnRlckluZGljX09yeWEiLAorICAgICBJbnRlckluZGljX1RhbWlsICAgICAgID0+ICJJbnRlckluZGljX1RhbWwiLAorICAgICBJbnRlckluZGljX1RlbHVndSAgICAgID0+ICJJbnRlckluZGljX1RlbHUiLAorCisgICAgIEJlbmdhbGlfSW50ZXJJbmRpYyAgICAgPT4gIkJlbmdfSW50ZXJJbmRpYyIsCisgICAgIERldmFuYWdhcmlfSW50ZXJJbmRpYyAgPT4gIkRldmFfSW50ZXJJbmRpYyIsCisgICAgIEd1amFyYXRpX0ludGVySW5kaWMgICAgPT4gIkd1anJfSW50ZXJJbmRpYyIsCisgICAgIEd1cm11a2hpX0ludGVySW5kaWMgICAgPT4gIkd1cnVfSW50ZXJJbmRpYyIsCisgICAgIEthbm5hZGFfSW50ZXJJbmRpYyAgICAgPT4gIktuZGFfSW50ZXJJbmRpYyIsCisgICAgIExhdGluX0ludGVySW5kaWMgICAgICAgPT4gIkxhdG5fSW50ZXJJbmRpYyIsCisgICAgIE1hbGF5YWxhbV9JbnRlckluZGljICAgPT4gIk1seW1fSW50ZXJJbmRpYyIsCisgICAgIE9yaXlhX0ludGVySW5kaWMgICAgICAgPT4gIk9yeWFfSW50ZXJJbmRpYyIsCisgICAgIFRhbWlsX0ludGVySW5kaWMgICAgICAgPT4gIlRhbWxfSW50ZXJJbmRpYyIsCisgICAgIFRlbHVndV9JbnRlckluZGljICAgICAgPT4gIlRlbHVfSW50ZXJJbmRpYyIsCisgICAgIAorICAgICBIYW5fUGlueWluICAgICAgICAgICAgID0+ICRKQVZBX09OTFksCisgICAgIEthbmppX0VuZ2xpc2ggICAgICAgICAgPT4gJEpBVkFfT05MWSwKKyAgICAgS2FuamlfT25Sb21hamkgICAgICAgICA9PiAkSkFWQV9PTkxZLAorICAgICApOworCitteSAoJHgsJHgsJHgsJHgsJHgsJFRISVNfWUVBUikgPSBsb2NhbHRpbWUoKTsKKyRUSElTX1lFQVIgKz0gMTkwMDsKKworIyBIZWFkZXIgYmxvY2tzIG9mIHRleHQgd3JpdHRlbiBhdCBzdGFydCBvZiBJQ1Ugb3V0cHV0IGZpbGVzCitteSAkSEVBREVSMSA9IDw8RU5EOworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gQ29weXJpZ2h0IChjKSAxOTk5LSRUSElTX1lFQVIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKy8vIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gVEhJUyBJUyBBIE1BQ0hJTkUtR0VORVJBVEVEIEZJTEUKK0VORAorbXkgJEhFQURFUjIgPSA8PEVORDsKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0VORAorCitteSAkVE9PTCA9ICQwOworCisjIENvbnZlcnQgdGhlIGluZGV4IGZpcnN0OyB0aGlzIHRlbGxzIHVzIHdoaWNoIHJ1bGUgZmlsZXMgYXJlIGluIHVzZS4KK2NvbnZlcnRJbmRleCgpOworCisjIHByaW50ICJJbiB1c2U6XG4iLCBqb2luKCJcbiIsIHNvcnQga2V5cyglVVNFRF9GSUxFUykpLCAiXG4iOworCisjIEl0ZXJhdGUgb3ZlciBhbGwgSmF2YSBSQlQgcnVsZSBmaWxlcworZm9yZWFjaCAoPCRESVIvVHJhbnNsaXRlcmF0b3JfKi50eHQ+KSB7CisgICAgbmV4dCBpZiAoL34kLyk7ICMgSWdub3JlIGVtYWNzIGJhY2t1cHMKKyAgICBuZXh0IGlmICgvX2luZGV4XC50eHQkLyk7ICMgVGhlIGluZGV4IGZpbGUgd2FzIHByb2Nlc3NlZCBhYm92ZQorICAgICMgU2VsZWN0IGVpdGhlciB0aGUgY29tbWFuZC1saW5lIGFyZywgaWYgdGhlcmUgd2FzIG9uZSwgb3IKKyAgICAjIGFueSBmaWxlcyBtZW50aW9uZWQgaW4gdGhlIGluZGV4LgorICAgIG15ICRsZWFmID0gJF87CisgICAgJGxlYWYgPX4gc3wuK1svXFxdfHw7CisgICAgaWYgKCgkSUQgJiYgJGxlYWYgPX4gLyRJRC8pIHx8IGV4aXN0cyAkVVNFRF9GSUxFU3skbGVhZn0pIHsKKyAgICAgICAgbXkgKCRvdXQsICRpZCkgPSBjb252ZXJ0RmlsZU5hbWUoJF8pOworICAgICAgICBpZiAoJG91dCkgeworICAgICAgICAgICAgaWYgKCRvdXQgZXEgJEpBVkFfT05MWSkgeworICAgICAgICAgICAgICAgIHByaW50IFNUREVSUiAiKioqICRpZCBza2lwcGVkOiBKYXZhIG9ubHkgKioqXG4iOworICAgICAgICAgICAgICAgIG5leHQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmaWxlKCRpZCwgJF8sICRvdXQpOworICAgICAgICB9CisgICAgfSBlbHNpZiAoISRJRCkgeworICAgICAgICBwcmludCAiKioqICRsZWFmIHNraXBwZWQ6IG5vdCBpbiB1c2UgKioqXG4iOworICAgIH0KK30KKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBDb252ZXJ0IGEgSmF2YSBmaWxlIG5hbWUgdG8gQworIyBQYXJhbTogSmF2YSBmaWxlIG5hbWUgb2YgdGhlIGZvcm0gbXxUcmFuc2xpdGVyYXRvcl8oLispXC51dGY4XC50eHQkfAorIyBSZXR1cm46IEEgQyBmaWxlIG5hbWUgKGUuZy4sIGxkZXZhbi50eHQpIG9yIHRoZSBlbXB0eSBzdHJpbmcsCisjICBpZiB0aGVyZSBpcyBubyBtYXBwaW5nLCBvciAkSkFWQV9PTkxZIGlmIHRoZSBnaXZlbiBmaWxlIGlzbid0CisjICBpbnRlbmRlZCB0byBiZSBpbmNvcnBvcmF0ZWQgaW50byBDLgorc3ViIGNvbnZlcnRGaWxlTmFtZSB7CisgICAgbG9jYWwgJF8gPSBzaGlmdDsKKyAgICBteSAkaWQ7CisgICAgaWYgKG18VHJhbnNsaXRlcmF0b3JfKC4rKVwudXRmOFwudHh0JHwgfHwKKyAgICAgICAgbXxUcmFuc2xpdGVyYXRvcl8oLispXC50eHQkfCkgeworICAgICAgICAkaWQgPSAkMTsKKyAgICB9IGVsc2UgeyBkaWUgIkNhbid0IHBhcnNlIEphdmEgZmlsZSBuYW1lICRfIjsgfQorICAgIGlmICghZXhpc3RzICROQU1FX01BUHskaWR9KSB7CisgICAgICAgIHByaW50IFNUREVSUiAiRVJST1I6ICRpZCBub3QgaW4gbWFwOyBwbGVhc2UgdXBkYXRlICQwXG4iOworICAgICAgICByZXR1cm4gJyc7CisgICAgfQorICAgIG15ICRvdXQgPSAkTkFNRV9NQVB7JGlkfTsKKyAgICBpZiAoJG91dCBlcSAnJykgeworICAgICAgICAkb3V0ID0gJGlkOworICAgIH0KKyAgICBpZiAoJG91dCBuZSAkSkFWQV9PTkxZKSB7CisgICAgICAgICRvdXQgPSAndF8nIC4gJG91dDsKKyAgICB9CisgICAgaWYgKGxlbmd0aCgkb3V0KSA+ICRNQVhfSUNVNENfRklMRU5BTUVfTEVOKSB7CisgICAgICAgIHByaW50IFNUREVSUiAiRVJST1I6IElDVTRDIGZpbGUgbmFtZSBcIiRvdXRcIiB0b28gbG9uZzsgcGxlYXNlIHVwZGF0ZSAkMFxuIjsKKyAgICAgICAgcmV0dXJuICcnOworICAgIH0KKyAgICByZXR1cm4gKCRvdXQsICRpZCk7Cit9CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgQ29udmVydCB0aGUgaW5kZXggZmlsZSBmcm9tIEphdmEgdG8gQyBmb3JtYXQKK3N1YiBjb252ZXJ0SW5kZXggeworICAgIG15ICRKQVZBX0lOREVYID0gIlRyYW5zbGl0ZXJhdG9yX2luZGV4LnR4dCI7CisgICAgbXkgJENfSU5ERVggPSAidHJhbnNsaXRfaW5kZXgudHh0IjsKKyAgICBvcGVuKEpBVkFfSU5ERVgsICIkRElSLyRKQVZBX0lOREVYIikgb3IgZGllOworICAgIG9wZW4oQ19JTkRFWCwgIj4kT1VURElSLyRDX0lOREVYIikgb3IgZGllOworICAgIAorICAgIGhlYWRlcihcKkNfSU5ERVgsICRKQVZBX0lOREVYKTsKKyAgICAKKyAgICBwcmludCBDX0lOREVYIDw8RU5EOworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gTi5CLjogVGhpcyBmaWxlIGhhcyBiZWVuIGdlbmVyYXRlZCBtZWNoYW5pY2FsbHkgZnJvbSB0aGUKKy8vIGNvcnJlc3BvbmRpbmcgSUNVNEogZmlsZSwgd2hpY2ggaXMgdGhlIG1hc3RlciBmaWxlIHRoYXQgcmVjZWl2ZXMKKy8vIHByaW1hcnkgdXBkYXRlcy4gIFRoZSBjb2xvbi1kZWxpbWl0ZWQgZmllbGRzIGhhdmUgYmVlbiBzcGxpdCBpbnRvCisvLyBzZXBhcmF0ZSBzdHJpbmdzLiAgRm9yICdmaWxlJyBhbmQgJ2ludGVybmFsJyBsaW5lcywgdGhlIGVuY29kaW5nCisvLyBmaWVsZCBoYXMgYmVlbiBkZWxldGVkLCBzaW5jZSB0aGUgZW5jb2RpbmcgaXMgcHJvY2Vzc2VkIGF0IGJ1aWxkCisvLyB0aW1lIGluIElDVTRDLiAgQ2VydGFpbiBsYXJnZSBydWxlIHNldHMgbm90IGludGVuZGVkIGZvciBnZW5lcmFsCisvLyB1c2UgaGF2ZSBiZWVuIGNvbW1lbnRlZCBvdXQgd2l0aCB0aGUgbm90YXRpb24gIkphdmEgb25seSIuCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK3RyYW5zbGl0X2luZGV4IHsKKyAgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3JJRHMgeworRU5ECisgICAgICAgIAorICAgIHdoaWxlICg8SkFWQV9JTkRFWD4pIHsKKyAgICAgICAgIyBpZ25vcmUgJFNvdXJjZSAkUmV2aXNpb24gJERhdGUgQ1ZTIGtleXdvcmQgc3Vic3RpdHV0aW9ucworICAgICAgICBuZXh0IGlmIC9cJFNvdXJjZS8gOworICAgICAgICBuZXh0IGlmIC9cJFJldmlzaW9uLyA7CisgICAgICAgIG5leHQgaWYgL1wkRGF0ZS8gOworCisgICAgICAgICMgd2UgaGF2ZSBwcmludGVkIG91dCB0aGUgY29weXJpZ2h0IGluZm8gLi4uIGlnbm9yZSBvbmUgaW4gSmF2YSB2ZXJzaW9uCisgICAgICAgIG5leHQgaWYgL0NvcHlyaWdodC8gOworICAgICAgICBuZXh0IGlmIC9Db3Jwb3JhdGlvbi87CisKKyAgICAgICAgIyBDb21tZW50czsgY2hhbmdlICMgdG8gLy8KKyAgICAgICAgaWYgKHN8XihccyopXCN8JDEvL3wpIHsKKyAgICAgICAgICAgIHByaW50IENfSU5ERVg7CisgICAgICAgICAgICBuZXh0OworICAgICAgICB9CisgICAgICAgICMgQmxhbmsgbGluZXMKKyAgICAgICAgaWYgKCEvXFMvKSB7CisgICAgICAgICAgICBwcmludCBDX0lOREVYOworICAgICAgICAgICAgbmV4dDsKKyAgICAgICAgfQorICAgICAgICAjIENvbnRlbnQgbGluZXMKKyAgICAgICAgY2hvbXA7CisgICAgICAgIG15ICRwcmVmaXggPSAnJzsKKyAgICAgICAgI3JlcGxhY2UgXHAgd2l0aCBcXHAKKyAgICAgICAgJF89fiBzL1xccC9cXFxccC9nOworICAgICAgICBteSBAYSA9IHNwbGl0KCc6JywgJF8pOworICAgICAgICBpZiAoJGFbMV0gZXEgJ2ZpbGUnIHx8ICRhWzFdIGVxICdpbnRlcm5hbCcpIHsKKyAgICAgICAgICAgICMgQ29udmVydCB0aGUgZmlsZSBuYW1lCisgICAgICAgICAgICBteSAkaWQ7CisgICAgICAgICAgICAjIFJlY29yZCBmaWxlIG5hbWVzIGluIHVzZQorICAgICAgICAgICAgJFVTRURfRklMRVN7JGFbMl19ID0gMTsKKyAgICAgICAgICAgICgkYVsyXSwgJGlkKSA9IGNvbnZlcnRGaWxlTmFtZSgkYVsyXSk7CisgICAgICAgICAgICBpZiAoJGFbMl0gZXEgJEpBVkFfT05MWSkgeworICAgICAgICAgICAgICAgICRwcmVmaXggPSAnLy8gSmF2YSBvbmx5OiAnOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAjIERlbGV0ZSB0aGUgZW5jb2RpbmcgZmllbGQKKyAgICAgICAgICAgIHNwbGljZShAYSwgMywgMSk7CisgICAgICAgIH0gZWxzaWYgKCRhWzFdIGVxICdhbGlhcycpIHsKKyAgICAgICAgICAgICMgUGFkIG91dCB3aXRoIGV4dHJhIGJsYW5rIGZpZWxkcyB0byBtYWtlIHRoZQorICAgICAgICAgICAgIyAyLWQgYXJyYXkgc3F1YXJlCisgICAgICAgICAgICBwdXNoIEBhLCAiIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRpZSAiQ2FuJ3QgcGFyc2UgJF8iOworICAgICAgICB9CisgICAgICAgIHByaW50IENfSU5ERVgKKyAgICAgICAgICAgICRwcmVmaXgsICJ7ICIsCisgICAgICAgICAgICBqb2luKCIsICIsIG1hcCgiXCIkX1wiIiwgQGEpKSwKKyAgICAgICAgICAgICIgfSxcbiI7CisgICAgfQorCisgICAgcHJpbnQgQ19JTkRFWCA8PEVORDsKKyAgfQorfQorRU5ECisKKyAgICBjbG9zZShDX0lOREVYKTsKKyAgICBjbG9zZShKQVZBX0lOREVYKTsKKyAgICBwcmludCBTVERFUlIgIiRKQVZBX0lOREVYIC0+ICRDX0lOREVYXG4iOworfQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIE91dHB1dCBhIGhlYWRlcgorIyBQYXJhbTogRmlsZWhhbmRsZQorc3ViIGhlYWRlciB7CisgICAgbXkgJG91dCA9IHNoaWZ0OworICAgIG15ICRpbiA9IHNoaWZ0OworICAgIHByaW50ICRvdXQgJEhFQURFUjE7CisgICAgcHJpbnQgJG91dCAiLy8gVG9vbDogJFRPT0xcbi8vIFNvdXJjZTogJGluXG4iOworICAgIHByaW50ICRvdXQgIi8vIERhdGU6ICIsIHNjYWxhciBsb2NhbHRpbWUsICJcbiI7CisgICAgcHJpbnQgJG91dCAkSEVBREVSMjsKKyAgICBwcmludCAkb3V0ICJcbiI7Cit9CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgUHJvY2VzcyBvbmUgZmlsZQorIyBQYXJhbTogSUQsIGUuZy4gRnVsbHdpZHRoLUhhbGZ3aWR0aAorIyBQYXJhbTogSmF2YSBpbnB1dCBmaWxlIG5hbWUsIGUuZy4KKyMgIGY6L2ljdTRqL3NyYy9jb20vaWJtL3RleHQvcmVzb3VyY2VzL1RyYW5zbGl0ZXJhdG9yX0Z1bGx3aWR0aF9IYWxmd2lkdGgudXRmOC50eHQKKyMgUGFyYW06IElDVSBvdXRwdXQgZmlsZSBuYW1lLCBlLmcuIGZ1bGxoYWxmCitzdWIgZmlsZSB7CisgICAgbXkgJGlkID0gc2hpZnQ7CisgICAgbXkgJElOID0gc2hpZnQ7CisgICAgbXkgJG91dCA9IHNoaWZ0OworCisgICAgbXkgJE9VVCA9ICIkb3V0LnR4dCI7CisKKyAgICAjIFNob3cgaW5wdXQgc2l6ZS4gU2hvdyBvdXRwdXQgc2l6ZSBsYXRlciAtLSB1c2VmdWwgZm9yIHF1aWNrIHNhbml0eSBjaGVjay4KKyAgICBwcmludCAiJGlkICgiLCAtcyAkSU4sICIpIC0+ICRPVVQgKCI7CisKKyAgICAjIE9wZW4gZmlsZSwgd3JpdGUgVVRGOCBtYXJrZXIsIGNsb3NlIGl0LCBhbmQgcmVvcGVuIGluIHRleHQgbW9kZQorICAgIG9wZW4oT1VULCAiPiRPVVRESVIvJE9VVCIpIG9yIGRpZTsKKyAgICBiaW5tb2RlIE9VVDsgICAgICAgICMgTXVzdCBkbyB0aGlzIHNvIHdlIGNhbiB3cml0ZSBvdXIgVVRGOCBtYXJrZXIKKyAgICBwcmludCBPVVQgcGFjaygiQzMiLCAweEVGLCAweEJCLCAweEJGKTsgIyBXcml0ZSBVVEY4IG1hcmtlcgorICAgIGNsb3NlKE9VVCk7CisKKyAgICBvcGVuKE9VVCwgIj4+JE9VVERJUi8kT1VUIikgb3IgZGllOworICAgIHByaW50IE9VVCAiIC8vIC0qLSBDb2Rpbmc6IHV0Zi04OyAtKi1cbiI7CisKKyAgICBoZWFkZXIoXCpPVVQsICRJTik7CisgICAgcHJpbnQgT1VUICIvLyAkaWRcbiI7CisgICAgcHJpbnQgT1VUICJcbiI7CisgICAgcHJpbnQgT1VUICIkb3V0IHtcbiI7CisgICAgcHJpbnQgT1VUICIgIFJ1bGUge1xuIjsKKworICAgIG9wZW4oSU4sICRJTikgb3IgZGllOworICAgIGJpbm1vZGUgSU47ICAgICAgICAgICAgICAgICAjIElOIGlzIGEgVVRGOCBmaWxlCisKKyAgICBteSAkZmlyc3QgPSAxOworICAgIG15ICRCT00gPSBwYWNrKCJDMyIsIDIzOSwgMTg3LCAxOTEpOyAjIGEgVVRGOCBieXRlIG9yZGVyIG1hcmsKKworICAgICMgUHJvY2VzcyBlYWNoIGxpbmUgYnkgY2hhbmdpbmcgIyBjb21tZW50cyB0byAvLyBjb21tZW50cworICAgICMgYW5kIHRha2luZyBvdGhlciB0ZXh0IGFuZCBlbmNsb3NpbmcgaXQgaW4gZG91YmxlIHF1b3RlcworICAgIHdoaWxlICg8SU4+KSB7CisgICAgICAgIG15ICRyYXcgPSAkXzsKKyAgICAgICAgIyBpZ25vcmUgJFNvdXJjZSAkUmV2aXNpb24gJERhdGUgQ1ZTIGtleXdvcmQgc3Vic3RpdHV0aW9ucworICAgICAgICBuZXh0IGlmIC9cJFNvdXJjZS8gOworICAgICAgICBuZXh0IGlmIC9cJFJldmlzaW9uLyA7CisgICAgICAgIG5leHQgaWYgL1wkRGF0ZS8gOworCisgICAgICAgICMgd2UgaGF2ZSBwcmludGVkIG91dCB0aGUgY29weXJpZ2h0IGluZm8gLi4uIGlnbm9yZSBvbmUgaW4gSmF2YSB2ZXJzaW9uCisgICAgICAgIG5leHQgaWYgL0NvcHlyaWdodC8gOworICAgICAgICBuZXh0IGlmIC9Db3Jwb3JhdGlvbi87CisKKyAgICAgICAgIyBMb29rIGZvciBhbmQgZGVsZXRlIEJPTQorICAgICAgICBpZiAoJGZpcnN0KSB7CisgICAgICAgICAgICBzL14kQk9NLy87CisgICAgICAgICAgICAkZmlyc3QgPSAwOworICAgICAgICB9CisKKyAgICAgICAgIyBDbGVhbiB0aGUgZW9sIGp1bmsgdXAKKyAgICAgICAgcy9bXHgwRFx4MEFdKyQvLzsKKworICAgICAgICAjIElmIHRoZXJlIGlzIGEgdHJhaWxpbmcgYmFja3NsYXNoLCB0aGVuIGRlbGV0ZSBpdCAtLSB3ZSBkb24ndAorICAgICAgICAjIG5lZWQgbGluZSBjb250aW51YXRpb24gaW4gQywgc2luY2UgYWRqYWNlbnQgc3RyaW5ncyBhcmUKKyAgICAgICAgIyBjb25jYXRlbmF0ZWQuICBDb3VudCB0cmFpbGluZyBiYWNrc2xhc2hlczsgaWYgdGhleSBhcmUgb2RkLAorICAgICAgICAjIG9uZSBpcyB0cmFpbGluZy4KKyAgICAgICAgaWYgKG18KFxcKykkfCkgeworICAgICAgICAgICAgaWYgKChsZW5ndGgoJDEpICUgMikgPT0gMSkgeworICAgICAgICAgICAgICAgIHN8XFwkfHw7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAjIFRyYW5zZm9ybSBlc2NhcGVkIGNoYXJhY3RlcnMKKyAgICAgICAgaGlkZUVzY2FwZXMoKTsKKworICAgICAgICBpZiAoL14oXHMqKShcIy4qKSQvKSB7CisgICAgICAgICAgICAjIENvbW1lbnQtb25seSBsaW5lCisgICAgICAgICAgICBteSAoJHdoaXRlLCAkY210KSA9ICgkMSwgJDIpOworICAgICAgICAgICAgJGNtdCA9fiBzfFwjfC8vfDsKKyAgICAgICAgICAgICRfID0gJHdoaXRlIC4gJGNtdDsKKworICAgICAgICB9IGVsc2lmICghL1xTLykgeworICAgICAgICAgICAgIyBCbGFuayBsaW5lIC0tIGxlYXZlIGFzLWlzCisKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICMgUmVtb3ZlIHNpbmdsZS1xdW90ZWQgbWF0dGVyIAorICAgICAgICAgICAgbXkgQHF1b3RlczsKKyAgICAgICAgICAgIG15ICRucXVvdGVzID0gMDsKKyAgICAgICAgICAgIG15ICR4ID0gJF87CisgICAgICAgICAgICB3aGlsZSAocy9eKFteXCddKikoXCdbXlwnXSpcJykvJDE8PHgkbnF1b3Rlcz4+LykgeworICAgICAgICAgICAgICAgIHB1c2ggQHF1b3RlcywgJDI7CisgICAgICAgICAgICAgICAgKyskbnF1b3RlczsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgIyBFeHRyYWN0IGNvbW1lbnQKKyAgICAgICAgICAgIG15ICRjbXQgPSAnJzsKKyAgICAgICAgICAgIGlmIChzfFwjKC4qKXx8KSB7CisgICAgICAgICAgICAgICAgJGNtdCA9ICcvLycgLiAkMTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgIyBBZGQgcXVvdGVzCisgICAgICAgICAgICBzfF4oXHMqKShcUy4qPykoXHMqKSR8JDFcIiQyXCIkM3w7CisKKyAgICAgICAgICAgICMgUmVzdG9yZSBzaW5nbGUtcXVvdGVkIG1hdHRlcgorICAgICAgICAgICAgZm9yIChteSAkaT0wOyAkaTwkbnF1b3RlczsgKyskaSkgeworICAgICAgICAgICAgICAgIHN8PDx4JGk+PnwkcXVvdGVzWyRpXXw7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICMgUmVzdG9yZSBjb21tZW50CisgICAgICAgICAgICAkXyAuPSAkY210OworICAgICAgICB9CisKKyAgICAgICAgIyBSZXN0b3JlIGVzY2FwZWQgY2hhcmFjdGVycworICAgICAgICByZXN0b3JlRXNjYXBlcygpOworCisgICAgICAgIHByaW50IE9VVCAkXywgIlxuIjsKKyAgICB9CisKKyAgICAjIEZpbmlzaCB1cAorICAgIGNsb3NlKElOKTsKKyAgICBwcmludCBPVVQgIiAgfVxuIjsKKyAgICBwcmludCBPVVQgIn1cbiI7CisgICAgY2xvc2UoT1VUKTsKKworICAgICMgV3JpdGUgb3V0cHV0IGZpbGUgc2l6ZSBmb3Igc2FuaXR5IGNoZWNrCisgICAgcHJpbnQgLXMgIiRPVVRESVIvJE9VVCIsICIpXG4iOworfQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitzdWIgaGlkZUVzY2FwZXMgeworICAgICMgVHJhbnNmb3JtIGVzY2FwZWQgY2hhcmFjdGVycworICAgIHN8XFxcXHw8PGJzPj58ZzsgIyBETyBUSElTIEZJUlNUIFRyYW5zZm9ybSBiYWNrc2xhc2hlcworICAgIHN8XFx1KFthLXpBLVowLTldezR9KXw8PHUkMT4+fGc7ICMgVHJhbnNmb3JtIFVuaWNvZGUgZXNjYXBlcworICAgIHN8XFxcInw8PGRxPj58ZzsgIyBUcmFuc2Zvcm0gYmFja3NsYXNoIGRvdWJsZSBxdW90ZQorICAgIHN8XFxcJ3w8PHNxPj58ZzsgIyBUcmFuc2Zvcm0gYmFja3NsYXNoIHNpbmdsZSBxdW90ZQorICAgIHN8XFxcI3w8PGxiPj58ZzsgIyBUcmFuc2Zvcm0gYmFja3NsYXNoIHBvdW5kCisgICAgc3xcXCguKXw8PHEkMT4+fGc7ICMgVHJhbnNmb3JtIGJhY2tzbGFzaCBlc2NhcGVzCit9CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK3N1YiByZXN0b3JlRXNjYXBlcyB7CisgICAgIyBSZXN0b3JlIGVzY2FwZWQgY2hhcmFjdGVycworICAgIHN8PDxicz4+fFxcXFx8ZzsKKyAgICBzfDw8ZHE+PnxcXFxcXFxcInxnOworICAgIHN8PDxzcT4+fFxcXFxcXFwnfGc7CisgICAgc3w8PGxiPj58XFxcXFxcXCN8ZzsKKyAgICBzfDw8cSguKT4+fFxcXFxcXCQxfGc7CisgICAgc3w8PHUwMDAwPj58XFxcXHUwMDAwfGc7ICMgRG91YmxlIGVzY2FwZSBVKzAwMDAKKyAgICBzfDw8dSguLi4uKT4+fFxcdSQxfGc7Cit9CisKK19fRU5EX18KKzplbmRvZnBlcmwKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9nZW5JbmRleEZpbHRlcnMuYmF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L2dlbkluZGV4RmlsdGVycy5iYXQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTg1MTcwNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9nZW5JbmRleEZpbHRlcnMuYmF0CkBAIC0wLDAgKzEsMTE1IEBACitAcmVtID0gJy0tKi1QZXJsLSotLQorQGVjaG8gb2ZmCitpZiAiJU9TJSIgPT0gIldpbmRvd3NfTlQiIGdvdG8gV2luTlQKK3BlcmwgLVcgLXggLVMgIiUwIiAlMSAlMiAlMyAlNCAlNSAlNiAlNyAlOCAlOQorZ290byBlbmRvZnBlcmwKKzpXaW5OVAorcGVybCAtVyAteCAtUyAiJTAiICUqCitpZiBOT1QgIiVDT01TUEVDJSIgPT0gIiVTeXN0ZW1Sb290JVxzeXN0ZW0zMlxjbWQuZXhlIiBnb3RvIGVuZG9mcGVybAoraWYgJWVycm9ybGV2ZWwlID09IDkwMDkgZWNobyBZb3UgZG8gbm90IGhhdmUgUGVybCBpbiB5b3VyIFBBVEguCitnb3RvIGVuZG9mcGVybAorQHJlbSAnOworIyFwZXJsCisjbGluZSAxNAorCisjIFRoaXMgcGVybCBzY3JpcHQgdXBkYXRlcyB0aGUgZmlsdGVycyBpbiB0aGUgdHJhbnNsaXRlcmF0b3IgaW5kZXggZmlsZS4KKyMgSXQgZG9lcyBzbyBpbiBhIGR1bWIgd2F5OgorIworIyAgTGF0aW4tWCAgIE5GRCBsb3dlcgorIyAgWC1MYXRpbiAgIE5GRAorIworIyBGb3IgdHJhbnNsaXRlcmF0b3JzIHVzaW5nIE5GS0QsIG9yIG5vdCB1c2luZyBMb3dlciBpbiB0aGlzIHdheSwgeW91CisjIHdpbGwgaGF2ZSB0byBoYW5kLWVkaXQgdGhlIGluZGV4IGZpbGUuCisjCisjIFRoaXMgc2NyaXB0IHdyaXRlcyBhIG5ldyBpbmRleCBmaWxlLiAgVGhlIG5ldyBmaWxlIGhhcyB0byB0aGVuIGJlCisjIGhhbmQtZWRpdGVkIGFuZCBjaGVja2VkIGJlZm9yZSB1c2U7IGl0IGNvbnRhaW5zIGNvbW1lbnRzIGluZGljYXRpbmcKKyMgb2xkIGxpbmVzIHRoYXQgd2VyZSByZXBsYWNlZC4KKyMKKyMgQWxhbiBMaXUgMTEvMjkvMDEKKwordXNlIEdldG9wdDo6TG9uZzsKKworbXkgJERJUiA9ICIuLi8uLi90ZXh0L3Jlc291cmNlcyI7CitteSAkQ0xBU1NFUyA9ICIuLi8uLi8uLi8uLi8uLi9jbGFzc2VzIjsKKworI0dldE9wdGlvbnMoJ2Rpcj1zJyA9PiBcJERJUiwKKyMgICAgICAgICAgICdpZD1zJyA9PiBcJElELAorIyAgICAgICAgICAgJzw+JyA9PiBcJnVzYWdlKSB8fCBkaWU7CisKKyN1c2FnZSgpIGlmIChAQVJHVik7CisKKyMkSUQgPX4gcy8tL18vOworaWYgKCEgLWQgJERJUikgeworICAgIHByaW50IFNUREVSUiAiJERJUiBpcyBub3QgYSBkaXJlY3RvcnlcbiI7CisgICAgdXNhZ2UoKTsKK30KKworI3N1YiB1c2FnZSB7CisjICAgIG15ICRtZSA9ICQwOworIyAgICAkbWUgPX4gc3wuK1svXFxdfHw7CisjICAgIHByaW50ICJVc2FnZTogJG1lIFstZGlyIDxkaXI+XSBbLWlkIDxpZD5dXG4iOworIyAgICBwcmludCAiIC0tZGlyIDxkaXI+IFNwZWNpZnkgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZVxuIjsKKyMgICAgcHJpbnQgIiAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvcl8qLnR4dCBmaWxlc1xuIjsKKyMgICAgcHJpbnQgIiAtLWlkIDxpZD4gICBTcGVjaWZ5IGEgc2luZ2xlIElEIHRvIHRyYW5zZm9ybSwgZS5nLlxuIjsKKyMgICAgcHJpbnQgIiAgICAgICAgICAgICBGdWxsd2lkdGgtSGFsZndpZHRoXG4iOworIyAgICBkaWU7CisjfQorCitjb252ZXJ0SW5kZXgoKTsKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBDb252ZXJ0IHRoZSBpbmRleCBmaWxlIGZyb20gSmF2YSB0byBDIGZvcm1hdAorIyBBc3N1bWUgbGluZXMgYXJlIG9mIHRoZSBmb3JtOgorIyAgIDxJRD46YWxpYXM6PEZJTFRFUj47PFJFTUFJTkRFUj4KKyMgPFJFTUFJTkRFUj4gY2FuIGJlCisjICAgTG93ZXI7TkZYOy4uLgorIyAgIE5GWDtMb3dlcjsuLi4KKyMgICBORlg7Li4uCitzdWIgY29udmVydEluZGV4IHsKKyAgICAkSU4gPSAiVHJhbnNsaXRlcmF0b3JfaW5kZXgudHh0IjsKKyAgICAkT1VUID0gIiRJTi5uZXciOworICAgIG9wZW4oSU4sICIkRElSLyRJTiIpIG9yIGRpZTsKKyAgICBvcGVuKE9VVCwgIj4kRElSLyRPVVQiKSBvciBkaWU7CisgICAgCisgICAgd2hpbGUgKDxJTj4pIHsKKyAgICAgICAgIyBMb29rIGZvciBsaW5lcyB0aGF0IGFyZSBhbGlhc2VzIHdpdGggTkYqCisgICAgICAgIGlmICgvXihbXjpdKyk6YWxpYXM6KFxbLis/KTtccyooKE5GW15cc10qPylccyo7LispJC9pKSB7CisgICAgICAgICAgICBteSAkaWQgPSAkMTsKKyAgICAgICAgICAgIG15ICRvbGRzZXQgPSAkMjsKKyAgICAgICAgICAgIG15ICRyZW1haW5kZXIgPSAkMzsKKyAgICAgICAgICAgIG15ICRORlhEID0gJDQ7CisgICAgICAgICAgICBteSAkbG93ZXIgPSAnJzsKKyAgICAgICAgICAgICMgQ2hlY2sgZm9yIExvd2VyCisgICAgICAgICAgICAjIElmIGl0IGNvbWVzIGJlZm9yZSBORiogdGhlbiBhZGp1c3QgYWNjb3JkaW5nbHkKKyAgICAgICAgICAgIGlmICgvXihbXjpdKyk6YWxpYXM6KFxbLis/KTtccyooTG93ZXJccyo7LispJC9pKSB7CisgICAgICAgICAgICAgICAgJGxvd2VyID0gJ2xvd2VyJzsKKyAgICAgICAgICAgICAgICBpZiAobGVuZ3RoKCQyKSA8IGxlbmd0aCgkb2xkc2V0KSkgeworICAgICAgICAgICAgICAgICAgICAkb2xkc2V0ID0gJDI7CisgICAgICAgICAgICAgICAgICAgICRyZW1haW5kZXIgPSAkMzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwcmludCBTVERFUlIgIiRpZCAkTkZYRCAkbG93ZXJcbiI7CisgICAgICAgICAgICBteSAkc2V0ID0gZ2V0U291cmNlU2V0KCRpZCwgJE5GWEQsICRsb3dlcik7CisgICAgICAgICAgICAkXyA9ICIkaWQ6YWxpYXM6JHNldDskcmVtYWluZGVyXG4iOworICAgICAgICB9CisgICAgICAgIHByaW50IE9VVDsKKyAgICB9CisKKyAgICBjbG9zZShJTik7CisgICAgY2xvc2UoT1VUKTsKKyAgICBwcmludCBTVERFUlIgIldyb3RlICRESVIvJE9VVFxuIjsKK30KKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBHZXQgdGhlIHNvdXJjZSBzZXQgKGNhbGwgb3V0IHRvIEphdmEpLCBvcHRpb25hbGx5IHdpdGggYSBjbG9zdXJlLgorc3ViIGdldFNvdXJjZVNldCB7CisgICAgbXkgJElEID0gc2hpZnQ7CisgICAgbXkgJE5GWEQgPSBzaGlmdDsKKyAgICBteSAkbG93ZXIgPSBzaGlmdDsKKyAgICBteSAkc2V0ID0gYGphdmEgLWNsYXNzcGF0aCAkQ0xBU1NFUyBjb20uaWJtLnRvb2xzLnRyYW5zbGl0LmdlbkluZGV4RmlsdGVycyAkSUQgJE5GWEQgJGxvd2VyYDsKKyAgICBjaG9tcCgkc2V0KTsKKyAgICAkc2V0OworfQorCitfX0VORF9fCis6ZW5kb2ZwZXJsCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvZ2VuSW5kZXhGaWx0ZXJzLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvZ2VuSW5kZXhGaWx0ZXJzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGI5Y2JlNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9nZW5JbmRleEZpbHRlcnMuamF2YQpAQCAtMCwwICsxLDcxIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoYykgMjAwMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9uCisqICAgMTEvMjkvMjAwMSAgYWxpdSAgICAgICAgQ3JlYXRpb24uCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC50cmFuc2xpdDsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGphdmEudXRpbC4qOworaW1wb3J0IGphdmEuaW8uKjsKKworLyoqCisgKiBBZGp1bmN0IGNsYXNzIHRvIGdldEluZGV4RmlsdGVycy5iYXQuICBKdXN0IGdlbmVyYXRlcyBzb3VyY2Ugc2V0cworICogYW5kIHRoZWlyIGNsb3N1cmVzLgorICoKKyAqIFVzYWdlOiBJRCBbIE5GRHxORktEIFtsb3dlcl0gXQorICoKKyAqICAgamF2YSAtY2xhc3NwYXRoIGNsYXNzZXMgY29tLmlibS5pY3UuZGV2LnRvb2wudHJhbnNsaXQuZ2VuSW5kZXhGaWx0ZXJzCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhdGluLUdyZWVrIE5GRCBsb3dlcgorICoKKyAqIFRoZSAnTkZEJ3wnTkZLRCcgYW5kICdsb3dlcicgYXJncyBhcmUgb3B0aW9uYWwsIGJ1dCAnbG93ZXInIGNhbgorICogb25seSBiZSBzcGVjaWZpZWQgaWYgJ05GRCcgb3IgJ05GS0QnIGlzLgorICoKKyAqIERPIE5PVCBDSEFOR0UgT1VUUFVUIEZPUk1BVC4gIFRoaXMgdG9vbCdzIG91dHB1dCBpcyByZWFkIGJ5IGEgUGVybAorICogc2NyaXB0LgorICovCitwdWJsaWMgY2xhc3MgZ2VuSW5kZXhGaWx0ZXJzIHsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIE5vcm1hbGl6ZXIuTW9kZSBtID0gTm9ybWFsaXplci5OT05FOworICAgICAgICBib29sZWFuIGxvd2VyRmlyc3QgPSBmYWxzZTsKKyAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID49IDIpIHsKKyAgICAgICAgICAgIGlmIChhcmdzWzFdLmVxdWFsc0lnbm9yZUNhc2UoIk5GRCIpKSB7CisgICAgICAgICAgICAgICAgbSA9IE5vcm1hbGl6ZXIuTkZEOworICAgICAgICAgICAgfSBlbHNlIGlmIChhcmdzWzFdLmVxdWFsc0lnbm9yZUNhc2UoIk5GS0QiKSkgeworICAgICAgICAgICAgICAgIG0gPSBOb3JtYWxpemVyLk5GS0Q7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHVzYWdlKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID49IDMpIHsKKyAgICAgICAgICAgIGlmIChhcmdzWzJdLmVxdWFsc0lnbm9yZUNhc2UoImxvd2VyIikpIHsKKyAgICAgICAgICAgICAgICBsb3dlckZpcnN0ID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdXNhZ2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoYXJncy5sZW5ndGggPiAzKSB7CisgICAgICAgICAgICB1c2FnZSgpOworICAgICAgICB9CisgICAgICAgIHNob3dTb3VyY2VTZXQoYXJnc1swXSwgbSwgbG93ZXJGaXJzdCk7CisgICAgfQorCisgICAgc3RhdGljIHZvaWQgc2hvd1NvdXJjZVNldChTdHJpbmcgSUQsIE5vcm1hbGl6ZXIuTW9kZSBtLCBib29sZWFuIGxvd2VyRmlyc3QpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShJRCk7CisgICAgICAgIFVuaWNvZGVTZXQgc291cmNlU2V0ID0gdC5nZXRTb3VyY2VTZXQoKTsKKyAgICAgICAgaWYgKG0gIT0gTm9ybWFsaXplci5OT05FIHx8IGxvd2VyRmlyc3QpIHsKKyAgICAgICAgICAgIFVuaWNvZGVTZXRDbG9zdXJlLmNsb3NlKHNvdXJjZVNldCwgbSwgbG93ZXJGaXJzdCk7CisgICAgICAgIH0KKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHNvdXJjZVNldC50b1BhdHRlcm4odHJ1ZSkpOworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIHVzYWdlKCkgeworICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlVzYWdlOiBJRCBbIE5GRHxORktEIFtsb3dlcl0gXSIpOworICAgICAgICBTeXN0ZW0uZXhpdCgxKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvaW5kaWMuYmF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L2luZGljLmJhdApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xMDIyM2MzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L2luZGljLmJhdApAQCAtMCwwICsxLDE3IEBACitAZWNobyBvZmYKK1JFTSBDb3B5cmlnaHQgKEMpIDIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKK1JFTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworUkVNIFRoaXMgc2NyaXB0IGlzIGEgV2luZG93cyBsYXVuY2hlciBmb3IgdGhlIGluZGljLnBsIHNjcmlwdC4gIEZvciB0aGlzCitSRU0gdG8gd29yaywgdGhlIHBlcmwgZXhlY3V0YWJsZSBtdXN0IGJlIG9uIHRoZSBwYXRoLiAgV2UgcmVjb21tZW5kCitSRU0gdGhlIEFjdGl2ZVN0YXRlIGJ1aWxkOyBzZWUgaHR0cDovL3d3dy5hY3RpdmVzdGF0ZS5jb20uICBTZWUgdGhlCitSRU0gdHoucGwgc2NyaXB0IGl0c2VsZiBmb3IgbW9yZSBkb2N1bWVudGF0aW9uLgorCitpZiAiJU9TJSIgPT0gIldpbmRvd3NfTlQiIGdvdG8gV2luTlQKK3BlcmwgLXcgLXggaW5kaWMucGwgJTEgJTIgJTMgJTQgJTUgJTYgJTcgJTggJTkKK2dvdG8gZW5kCis6V2luTlQKK3BlcmwgLXcgLXggaW5kaWMucGwgJSoKK2lmIE5PVCAiJUNPTVNQRUMlIiA9PSAiJVN5c3RlbVJvb3QlXHN5c3RlbTMyXGNtZC5leGUiIGdvdG8gZW5kCitpZiAlZXJyb3JsZXZlbCUgPT0gOTAwOSBlY2hvIFlvdSBkbyBub3QgaGF2ZSBQZXJsIGluIHlvdXIgUEFUSC4KKzplbmQKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9pbmRpYy5wbCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9pbmRpYy5wbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lNTljNDdmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L2luZGljLnBsCkBAIC0wLDAgKzEsNjU1IEBACisjIXBlcmwKKworIyBVc2FnZSAtICQwIDxyZW1hcCBmaWxlPgorIyAgZS5nLiAtIGluZGljIGluZGljLnR4dAorIyBUaGUgaW5wdXQgZmlsZSBzaG91bGQgYmUgYSBzdWJzZXQgb2YgdGhlIFVuaWNvZGUgZGF0YSBmaWxlIGNvbnRhaW5pbmcKKyMgdGhlIGJsb2NrcyBvZiBpbnRlcmVzdC4KKyMKKyMgVGhlIHJlbWFwIGZpbGUgc2hvdWxkIGhhdmUgbGluZXMgb2YgdGhlIGZvcm0KKyMgIlx1MEQwMT5cdTBEMDI7IgorIyBpbmNsdWRpbmcgdGhlIHF1b3Rlcy4gIFRoZXNlIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgc2F5aW5nIHRoYXQgdGhlCisjIHVuZGVmaW5lZCBjb2RlIHBvaW50IFUrRDAxIChkZXJpdmVkIHZpYSBtYXBwaW5nIGZyb20gSW50ZXJJbmRpYykKKyMgY2FuIGJlIHJlbWFwcGVkIHRvIFUrRDAyLgorIyAKKyMgVGhlIHB1cnBvc2Ugb2YgdGhpcyBzY3JpcHQgaXMgdG8gcHJvY2VzcyB0aGUgSW5kaWMgc2NyaXB0IGRhdGEgaW50bworIyBhIGZvcm0gdXNhYmxlIGJ5IHRoZSBJbmRpY1RyYW5zbGl0ZXJhdG9yLCB0aGF0IGlzLCB0aGUgSW5kaWMtSW5kaWMKKyMgdHJhbnNsaXRlcmF0b3IuICBUaGUgdHJhbnNsaXRlcmF0b3IgbmVlZHMgdHdvIHRoaW5nczogQSBtYXBwaW5nIG9mCisjIHRoZSBjb2RlIHBvaW50cyBpbiBjb21tb24sIGFuZCBhIGxpc3Qgb2YgdGhlIGV4Y2VwdGlvbnMuCisKKyMgQXNzdW1lIHdlIGFyZSBsb2NhdGVkIGluIGljdTRqL3NyYy9jb20vaWJtL3Rvb2xzL3RyYW5zbGl0Ly4KKyMgV2Ugd2FudCB0aGUgVW5pY29kZSBEQiBpbiBpY3U0ai9zcmMvZGF0YS91bmljb2RlLy4KKyRVTklDT0RFX0RCID0gIi4uLy4uLy4uLy4uL2RhdGEvdW5pY29kZS9Vbmljb2RlRGF0YS50eHQiOworJEVYQ0VQVElPTlNfRklMRSA9IHNoaWZ0OworCisjIEFzc3VtZSB3ZSBhcmUgbG9jYXRlZCBpbiBpY3U0ai9zcmMvY29tL2libS90b29scy90cmFuc2xpdC8uCisjIFdlIHdhbnQgdG8gb3V0cHV0IGZpbGVzIHRvIGljdTRqL3NyYy9jb20vaWJtL3RleHQvcmVzb3VyY2VzLy4KKyMgT3V0cHV0IGRpcmVjdG9yeQorJE9VVERJUiA9ICIuLi8uLi90ZXh0L3Jlc291cmNlcyI7CisKKyMgVGhlIHRlbXBsYXRlIGZpbGUgc2hvdWxkIGNvbnRhaW4gamF2YSBjb2RlIHRoYXQgY2FuIGJlIHVzZWQKKyMgdG8gZ2VuZXJhdGUgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IgcmVzb3VyY2UgZmlsZXMuICBUaGUgdGVtcGxhdGUKKyMgc2hvdWxkIGNvbnRhaW4gdGhlIGZvbGxvd2luZyBlbWJlZGRlZCBzeW1ib2xzLCB3aGljaCB0aGlzIHNjcmlwdAorIyB3aWxsIHJlcGxhY2U6CisjICRUT09MIC0gbmFtZSBvZiBnZW5lcmF0aW5nIHRvb2wKKyMgJERBVEUgLSBkYXRlIG9mIGdlbmVyYXRpb24KKyMgJFNDUklQVEZST00gLSBuYW1lIG9mIHNvdXJjZSBzY3JpcHQKKyMgJFNDUklQVFRPIC0gbmFtZSBvZiB0YXJnZXQgc2NyaXB0CisjICRSVUxFUyAtIHJ1bGVzCiskUkJUX1RFTVBMQVRFID0gJ3JidFRlbXBsYXRlLnR4dCc7CisKKyMgTmFtZSBvZiB0aGlzIHRvb2wgaW4gZ2VuZXJhdGVkIFJCVCBmaWxlcworJFJCVF9HRU5fVE9PTCA9ICdpY3U0ai9zcmMvY29tL2libS90b29scy90cmFuc2xpdC9pbmRpYy5wbCc7CisKKyREVU1QID0gMDsgIyBJZiAxLCBkdW1wIG91dCBpbnRlcm5hbCBkYXRhCisKKyRET19IRVVSSVNUSUNfUkVNQVAgPSAwOyAjIElmIDEsIGRvIGF1dG9tYXRpYyBoZXVyaXN0aWMgcmVtYXBwaW5nCiskRE9fREVDT01QX1JFTUFQID0gMDsgIyBJZiAxLCBkbyBkZWNvbXAgcmVtYXBwaW5nCisKK29wZW4oVU5JQ09ERV9EQik7Cit3aGlsZSAoPFVOSUNPREVfREI+KSB7CisgICAgbmV4dCBpZiAobXxeMFswLThdfCk7ICMgU2tpcCB1cCB0byBEZXZhbmFnYXJpIGJsb2NrICgwOTAwKQorICAgIGxhc3QgaWYgKG18XjBEWzgtRl18aSk7ICMgQmFpbCBvdXQgYWZ0ZXIgTWFsYXlhbSBibG9jayAoMEQwMCkKKyAgICAjIDBEMzk7TUFMQVlBTEFNIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworICAgIG15IEBkYXRhID0gc3BsaXQoLzsvKTsKKyAgICBteSAkZnVsbENvZGUgPSBoZXgoJGRhdGFbMF0pOyAjIGUuZy4sIDB4MDkzRgorICAgIG15ICRjb2RlID0gJGZ1bGxDb2RlICYgMHg3RjsgIyBlLmcuLCAweDNGCisgICAgbXkgKCRzY3JpcHQsICRuYW1lKSA9ICgkZGF0YVsxXSA9fiAvKFx3KylccysoLispLyk7CisgICAgZGllICJDYW4ndCBwYXJzZSAkXyIgdW5sZXNzICgkbmFtZSk7CisgICAgIyBlLmcuLCAkY29kZS8kc2NyaXB0LyRuYW1lID0gM0YvTUFMQVlBTEFNL1ZPV0VMIFNJR04gSQorCisgICAgIyBUaXRsZWNhc2UgdGhlIHNjcmlwdAorICAgICRzY3JpcHQgPSB1Y2ZpcnN0KGxjKCRzY3JpcHQpKTsKKworICAgICMgRml4IGEgY291cGxlIGluY29uc2lzdGVuY2llcyBpbiB0aGUgMy4wIGRhdGEKKyAgICAjIFJFVklTSVQ6IElzIHRoaXMgb2theSB0byBkbz8KKyAgICBpZiAoJERPX0hFVVJJU1RJQ19SRU1BUCkgeworICAgICAgICBpZiAoJHNjcmlwdCBlcSAnR3VqYXJhdGknICYmICRjb2RlID49IDUgJiYgJGNvZGUgPD0gMHgxNCkgeworICAgICAgICAgICAgJG5hbWUgPX4gcy9eVk9XRUwvTEVUVEVSLzsKKyAgICAgICAgfQorICAgIH0KKworICAgICMgS2VlcCB0cmFjayBvZiBhbGwgc2NyaXB0IG5hbWVzIHdlIGVuY291bnRlci4gIFdlIGFsc28gbm90ZSB0aGUKKyAgICAjIGJhc2Ugb2YgdGhlIGJsb2NrLgorICAgIG15ICRiYXNlID0gJGZ1bGxDb2RlICYgfjB4N0Y7ICMgZS5nLiwgMHg5MDA7CisgICAgaWYgKGV4aXN0cyAkU0NSSVBUX1RPX0JBU0V7JHNjcmlwdH0pIHsKKyAgICAgICAgZGllICJTY3JpcHQgYmFzZSBtaXNtYXRjaCBmb3IgJHNjcmlwdDogJGJhc2UgdnMuICRTQ1JJUFRfVE9fQkFTRXskc2NyaXB0fSIKKyAgICAgICAgICAgIGlmICgkU0NSSVBUX1RPX0JBU0V7JHNjcmlwdH0gbmUgJGJhc2UpOworICAgIH0gZWxzZSB7CisgICAgICAgICRTQ1JJUFRfVE9fQkFTRXskc2NyaXB0fSA9ICRiYXNlOworICAgIH0KKworICAgICMgQnVpbGQgdXAgYSBtYXBwaW5nIGJ5IG5hbWUuICBGb3IgZWFjaCBuYW1lLCBrZWVwIGEgaGFzaCBrZXllZCBieQorICAgICMgY29kZSBwb2ludC4gIEZvciBlYWNoIGNvZGUgcG9pbnQsIGtlZXAgYW4gYXJyYXkgb2Ygc2NyaXB0IG5hbWVzLgorICAgICMgQWxzbyBrZWVwIGEgdG90YWwgdXNlIGNvdW50IGZvciBlYWNoIG5hbWUuCisgICAgcHVzaCBAeyROQU1FX0NPREVfVE9fU0NSSVBUU3skbmFtZX17JGNvZGV9fSwgJHNjcmlwdDsKKyAgICArKyROQU1FX0NPREVfVE9fU0NSSVBUU3skbmFtZX17Y291bnR9OworCisgICAgIyBCdWlsZCBhIG1hcCB0aGF0IGxvb2tzIGxpa2UgdGhpczoKKyAgICAjICRTQ1JJUFRfTkFNRV9UT19DT0RFezxzY3JpcHQ+fXs8bmFtZT59ID0gPGNvZGU+CisgICAgIyBvciB1bmRlZiBpZiB0aGVyZSBpcyBubyBtYXBwaW5nLgorICAgICRTQ1JJUFRfTkFNRV9UT19DT0RFeyRzY3JpcHR9eyRuYW1lfSA9ICRjb2RlOworCisgICAgIyBCdWlsZCBhIG1hcCB0aGF0IGxvb2tzIGxpa2UgdGhpczoKKyAgICAkU0NSSVBUX0NPREVfVE9fTkFNRXskc2NyaXB0fXskY29kZX0gPSAkbmFtZTsKKworICAgICMgQW5kIGEgbWFwIGZyb20gdGhlIGZ1bGxDb2RlIHBvaW50IHRvIHRoZSBuYW1lCisgICAgJEZVTExDT0RFX1RPX05BTUV7JGZ1bGxDb2RlfSA9ICRuYW1lOworCisgICAgIyBNYXAgY29kZSAoMC4uN0YpIHRvIG5hbWUuICBUaGlzIGlzIHVzdWFsbHkgYSAxLTEgbWFwcGluZywgYnV0CisgICAgIyBpcyAxLW4gaW4gYSBmZXcgY2FzZXMuCisgICAgaWYgKGV4aXN0cyAkQ09ERV9UT19OQU1FeyRjb2RlfSkgeworICAgICAgICBpZiAoJG5hbWUgbmUgJENPREVfVE9fTkFNRXskY29kZX0pIHsKKyAgICAgICAgICAgICMgRm9yIG11bHRpcGxlIG5hbWVzIG9uIGEgY29kZSBvZmZzZXQsIHVzZSB0aGUgZm9ybWF0CisgICAgICAgICAgICAjIChhL2IpLCAoYS9iL2MpLCBldGMuCisgICAgICAgICAgICBsb2NhbCAkXyA9ICRDT0RFX1RPX05BTUV7JGNvZGV9OworICAgICAgICAgICAgaWYgKG18XlwofCkgeworICAgICAgICAgICAgICAgIGlmICghbXxbXChcKS9dJG5hbWVbXChcKS9dfCkgeworICAgICAgICAgICAgICAgICAgICBzfFwpJHwvJG5hbWVcKXw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAkXyA9ICIoJF8vJG5hbWUpIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICRDT0RFX1RPX05BTUV7JGNvZGV9ID0gJF87CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICAkQ09ERV9UT19OQU1FeyRjb2RlfSA9ICRuYW1lOworICAgIH0KK30KK2Nsb3NlKFVOSUNPREVfREIpOworCisjIFJlYWQgYW5kIHBhcnNlIHRoZSBtYW51YWwgcmVtYXBwaW5nIGZpbGUuICBUaGlzIGNvbnRhaW5zIGxpbmVzCisjIG9mIHRoZSBmb3JtOgorCisjIHwiXHUwOTU2Plx1MDk0ODsiICAvLyBBSSBMZW5ndGggTWFyayAtPiBEZXZhbmFnYXJpIFZvd2VsIFNpZ24gQUkgCisKKyMgVGhlIGxlZnQgaGFuZCBzaWRlIGNvbnRhaW5zIGEgbm9uLWV4aXN0ZW50IGZ1bGwgY29kZSB2YWx1ZS4gIEl0CisjIHNob3VsZCBiZSBhIHNpbmdsZSB2YWx1ZS4gIFRoZSByaWdodCBoYW5kIHNpZGUgY29udGFpbnMgb25lIG9yIG1vcmUKKyMgcmVhbCBmdWxsIGNvZGUgdmFsdWVzLiAgVGhlIGlkZWEgaXMgdGhhdCB3aGVuIGEgbWFwcGluZyBmcm9tIGFub3RoZXIKKyMgc2NyaXB0IGVuZHMgdXAgYXQgdGhlIG5vbi1leGlzdGVudCBjb2RlIHBvaW50IG9uIHRoZSBsZWZ0LCB0aGUKKyMgc2VxdWVuY2Ugb24gdGhlIHJpZ2h0IHNob3VsZCBiZSBzdWJzdGl0dXRlZC4gIEluIHRoaXMgZXhhbXBsZSwKKyMgRGV2YW5hZ2FyaSBoYXMgbm8gQUkgTGVuZ3RoIE1hcmsuICBTbywgaWYgdHJhbnNsaXRlcmF0aW5nIGZyb20KKyMgT3JpeWEsIHRoZW4gdGhlIGNoYXJhY3RlciAwQjU2IChPcml5YSBBSSBMZW5ndGggTWFyaykgd2lsbCByZW1hcCB0bworIyB0aGUgbm9uLWV4aXN0ZW50IDA5NTYsIGFuZCB0aGF0IHJlbWFwcyB0byAwOTQ4LCBvdXIgY2hvc2VuCisjIERldmFuYWdhcmkgZXF1aXZhbGVudC4gIEZvciBvdXIgcHVycG9zZXMsIHRoZSBsZWZ0IGhhbmQgc2lkZSBzaG91bGQKKyMgYmUgdGFrZW4gdG8gbWVhbiBpdHMgZXF1aXZhbGVudCBwb2ludCBpbiB0aGUgSW50ZXJJbmRpYyByYW5nZS4gIEluCisjIHRoaXMgZXhhbXBsZSwgd2hhdCBpdCByZWFsbHkgc2F5cyBpcyBFMDU2PjA5NDggaW4gdGhlCisjIEludGVySW5kaWMtRGV2YW5hZ2FyaSB0cmFuc2xpdGVyYXRvci4KKworaWYgKCRFWENFUFRJT05TX0ZJTEUpIHsKKyAgICBvcGVuKEVYQ0VQVElPTlNfRklMRSkgb3IgZGllOworICAgIHdoaWxlICg8RVhDRVBUSU9OU19GSUxFPikgeworICAgICAgICBpZiAobXxeXHMqXCIoW15cIl0qPylcInwpIHsKKyAgICAgICAgICAgIG15ICRsaW5lID0gJF87CisgICAgICAgICAgICAkXyA9ICQxOworICAgICAgICAgICAgaWYgKC9eKC4qKT4oLiopOyQvKSB7CisgICAgICAgICAgICAgICAgbXkgKCRyYXdGcm9tLCAkcmF3VG8pID0gKCQxLCAkMik7CisgICAgICAgICAgICAgICAgbXkgQGZyb20gPSBwYXJzZVVuaWNvZGVFc2NhcGUoJHJhd0Zyb20pOworICAgICAgICAgICAgICAgIG15IEB0byA9IHBhcnNlVW5pY29kZUVzY2FwZSgkcmF3VG8pOworICAgICAgICAgICAgICAgIG15ICRmcm9tID0gaGV4QXJyYXkoQGZyb20pOworICAgICAgICAgICAgICAgICMgU29tZSBlbnRyaWVzIGxvb2sgbGlrZSB0aGlzOgorICAgICAgICAgICAgICAgICMgfCJcdTA5NTU+XHUwOTU1OyIKKyAgICAgICAgICAgICAgICAjIHRoZXNlIGRvIG5vdGhpbmc7IGlnbm9yZSB0aGVtLgorICAgICAgICAgICAgICAgIGlmIChpbnRBcnJheXNFcXVhbChcQGZyb20sIFxAdG8pKSB7CisgICAgICAgICAgICAgICAgICAgICNwcmludCBTVERFUlIgIklnbm9yaW5nIE5PT1AgcmVtYXAgb2YgJGZyb21cbiI7CisgICAgICAgICAgICAgICAgfSBlbHNpZiAoZXhpc3RzICRFWENFUFRJT05TeyRmcm9tfSkgeworICAgICAgICAgICAgICAgICAgICBwcmludCBTVERFUlIgIkVSUk9SIGluICRFWENFUFRJT05TX0ZJTEUgLSBEdXBsaWNhdGUgcmVtYXAgZW50cmllcyBmb3IgJGZyb21cbiI7CisgICAgICAgICAgICAgICAgfSBlbHNpZiAoc2NhbGFyIEBmcm9tID4gMSkgeworICAgICAgICAgICAgICAgICAgICBwcmludCBTVERFUlIgIkVSUk9SIGluICRFWENFUFRJT05TX0ZJTEUgLSBJZ25vcmluZyBtdWx0aWNoYXIgcmVtYXA6ICIsIGhleEFycmF5KEBmcm9tKSwgIi0+IiwgaGV4QXJyYXkoQHRvKSwgIlxuIjsgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICMgQ2hlY2sgdGhpcyBmb3IgdmFsaWRpdHkuICBGdWxsIGNvZGUgb24gdGhlIGxlZnQKKyAgICAgICAgICAgICAgICAgICAgIyBzaG91bGQgTk9UIGV4aXN0LiAgRnVsbCBjb2RlIHNlcSBvbiB0aGUgcmlnaHQgc2hvdWxkLgorICAgICAgICAgICAgICAgICAgICBpZiAoZXhpc3RzICRGVUxMQ09ERV9UT19OQU1FeyRmcm9tWzBdfSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgU1RERVJSICJFUlJPUiBpbiAkRVhDRVBUSU9OU19GSUxFIC0gSW52YWxpZCByZW1hcDsgbGVmdCBzaWRlIGRlZmluZWQ6ICIsIGhleEFycmF5KEBmcm9tKSwgIi0+IiwgaGV4QXJyYXkoQHRvKSwgIlxuIjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNpZiAoZ3JlcCghIGV4aXN0cyAkRlVMTENPREVfVE9fTkFNRXskX30sIEB0bykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50IFNUREVSUiAiRVJST1IgaW4gJEVYQ0VQVElPTlNfRklMRSAtIEludmFsaWQgcmVtYXA7IHJpZ2h0IHNpZGUgdW5kZWZpbmVkOiAiLCBoZXhBcnJheShAZnJvbSksICItPiIsIGhleEFycmF5KEB0byksICJcbiI7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkRVhDRVBUSU9OU3skZnJvbVswXX0gPSBcQHRvOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsgZGllICJFUlJPUiBpbiAkRVhDRVBUSU9OU19GSUxFIC0gQ2FuJ3QgcGFyc2UgXCIkX1wiIGluIGxpbmUgJGxpbmUiOyB9CisgICAgICAgIH0KKyAgICB9CisgICAgY2xvc2UoRVhDRVBUSU9OU19GSUxFKTsKKyAgICBwcmludCBTVERFUlIgIiRFWENFUFRJT05TX0ZJTEU6IExvYWRlZCAiLCBzY2FsYXIga2V5cyAlRVhDRVBUSU9OUywgIiByZW1hcHBpbmdzXG4iOworfQorCitpZiAoJERPX0RFQ09NUF9SRU1BUCkgeworICAgICMgUmVhZCB0aGUgTmFtZXNMaXN0LnR4dCBmaWxlLiAgVGhpcyBjb250YWlucyBkZWNvbXBvc2l0aW9uIGRhdGEuCisgICAgIyBHYXRoZXIgdGhlc2UgaW50byAlREVDT01QLCB3aGljaCBtYXBzIGEgbmFtZSB0byBuMS5uMi4uLiwgd2hlcmUgbjEKKyAgICAjIGV0Yy4gYXJlIGRlY29tcG9zZWQgbmFtZXMuICBFLmcuICRERUNPTVB7J0xFVFRFUiBSUkEnfSAtPiAnTEVUVEVSCisgICAgIyBSQS5TSUdOIE5VS1RBJy4gIFRoZXJlIG1heSBiZSBkaWZmZXJlbnQgbWFwcGluZ3MgaW4gZGlmZmVyZW50IHNjcmlwdAorICAgICMgYmxvY2tzIChMRVRURVIgUlJBIGlzIG1hcHBlZCBkaWZmZXJlbnRseSBpbiBEZXZhbmFnYXJpIGFuZCBCZW5nYWxpKSwKKyAgICAjIGluIHdoaWNoIGNhc2UgdGhlIG5hbWUgZ29lcyBpbnRvICVERUNPTVBfTUlTTUFUQ0gsIGFuZCBpcyByZW1vdmVkCisgICAgIyBmcm9tICVERUNPTVAuCisgICAgJE5BTUVTID0gIk5hbWVzTGlzdC50eHQiOworICAgIG9wZW4oTkFNRVMpOworICAgIHdoaWxlICg8TkFNRVM+KSB7CisgICAgICAgICMgU2tpcCB0byBzdGFydCBvZiBERVZBTkFHQVJJIGJsb2NrCisgICAgICAgIGxhc3QgaWYgKC9eXEBcQFxzKzA5MDAvKTsKKyAgICB9CisgICAgd2hpbGUgKDxOQU1FUz4pIHsKKyAgICAgICAgIyBDb250aW51ZSB1bnRpbCBzdGFydCBvZiBTSU5IQUxBIGJsb2NrCisgICAgICAgIGxhc3QgaWYgKC9eXEBcQFxzKzBEODAvKTsKKyAgICAgICAgaWYgKC9eKFswLTlBLVpdezR9KS9pKSB7CisgICAgICAgICAgICAkY29kZSA9ICQxOworICAgICAgICB9IGVsc2lmICgvXlxzKzpccyooLispLykgeworICAgICAgICAgICAgIyBXZSd2ZSBmb3VuZCBhIG1hcHBpbmcgb2YgdGhlIGZvcm06CisgICAgICAgICAgICAjIDA5MjkgICAgREVWQU5BR0FSSSBMRVRURVIgTk5OQQorICAgICAgICAgICAgIyAgICAgKiBmb3IgdHJhbnNjcmliaW5nIERyYXZpZGlhbiBhbHZlb2xhciBuCisgICAgICAgICAgICAjICAgICA6IDA5MjggMDkzQworICAgICAgICAgICAgbXkgJGZyb20gPSAkRlVMTENPREVfVE9fTkFNRXtoZXgoJGNvZGUpfTsKKyAgICAgICAgICAgIG15IEB0byA9IG1hcCgkRlVMTENPREVfVE9fTkFNRXtoZXgoJF8pfSwgc3BsaXQoL1xzKy8sICQxKSk7CisgICAgICAgICAgICBpZiAoZXhpc3RzICRERUNPTVB7JGZyb219KSB7CisgICAgICAgICAgICAgICAgbXkgJGFyZWYgPSAkREVDT01QeyRmcm9tfTsKKyAgICAgICAgICAgICAgICBpZiAoam9pbigiLiIsIEAkYXJlZikgbmUgam9pbigiLiIsIEB0bykpIHsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgU1RERVJSICJFUlJPUjogRGVjb21wIG1pc21hdGNoIGZvciAkZnJvbVxuIjsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgU1RERVJSICIgICAgIDogJGZyb20gPSAiLCBqb2luKCIuIiwgQCRhcmVmKSwgIlxuIjsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgU1RERVJSICIgICAgIDogJGZyb20gPSAiLCBqb2luKCIuIiwgQHRvKSwgIlxuIjsKKyAgICAgICAgICAgICAgICAgICAgJERFQ09NUF9NSVNNQVRDSHskZnJvbX0gPSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgJERFQ09NUHskZnJvbX0gPSBcQHRvOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIGNsb3NlKE5BTUVTKTsKKyAgICAjIFJlbW92ZSBtaXNtYXRjaGVzCisgICAgZm9yZWFjaCAoa2V5cyAlREVDT01QX01JU01BVENIKSB7CisgICAgICAgIGRlbGV0ZSAkREVDT01QeyRffTsKKyAgICB9CisgICAgaWYgKCREVU1QKSB7CisgICAgICAgIGZvcmVhY2ggKGtleXMgJURFQ09NUCkgeworICAgICAgICAgICAgcHJpbnQgIiRfID0gIiwgam9pbigiICsgIiwgQHskREVDT01QeyRffX0pLCAiXG4iOworICAgICAgICB9CisgICAgfQorfQorCisjIENvdW50IHRoZSB0b3RhbCBudW1iZXIgb2Ygc2NyaXB0cworCiskU0NSSVBUX0NPVU5UID0gc2NhbGFyIGtleXMgJVNDUklQVF9UT19CQVNFOworI3ByaW50IGpvaW4oIlxuIiwgc29ydCBrZXlzICVTQ1JJUFRfVE9fQkFTRSksICJcbiI7CisKKyMgRHVtcCBvdXQgdGhlICVOQU1FX0NPREVfVE9fU0NSSVBUUyBtYXAuCisKK2lmICgkRFVNUCkgeworICAgIHByaW50ICJcbkJZIE5BTUU6XG4iOworICAgIGZvcmVhY2ggbXkgJHBhc3MgKCgxLCAyKSkgeworICAgICAgICBwcmludCAiXG5CWSBOQU1FIC0gU0lOR0xFVE9OUzpcbiIgaWYgKCRwYXNzIGVxIDIpOworICAgICAgICBmb3JlYWNoIG15ICRuYW1lIChzb3J0IGtleXMgJU5BTUVfQ09ERV9UT19TQ1JJUFRTKSB7CisgICAgICAgICAgICBpZiAoJHBhc3MgZXEgMSkgeworICAgICAgICAgICAgICAgIG5leHQgaWYgKDEgPj0gJE5BTUVfQ09ERV9UT19TQ1JJUFRTeyRuYW1lfXtjb3VudH0pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBuZXh0IGlmICgxIDwgJE5BTUVfQ09ERV9UT19TQ1JJUFRTeyRuYW1lfXtjb3VudH0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJpbnQgIiRuYW1lOiI7CisgICAgICAgICAgICBteSAkaHJlZiA9ICROQU1FX0NPREVfVE9fU0NSSVBUU3skbmFtZX07CisgICAgICAgICAgICBmb3JlYWNoIG15ICRjb2RlIChzb3J0IHskYSA8PT4gJGJ9IGtleXMgJSRocmVmKSB7CisgICAgICAgICAgICAgICAgbmV4dCBpZiAoJGNvZGUgZXEgJ2NvdW50Jyk7CisgICAgICAgICAgICAgICAgbXkgJGFyZWYgPSAkaHJlZi0+eyRjb2RlfTsKKyAgICAgICAgICAgICAgICBwcmludCAiICIsIGhleDIoJGNvZGUpLCAiICgiLCBmb3JtYXRTY3JpcHRMaXN0KCRhcmVmKSwgIikiOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJpbnQgIlxuIjsKKyAgICAgICAgfQorICAgIH0KK30KKworIyBDcmVhdGUgc29tZSB0cmFuc2xpdGVyYXRvcnMsIGJhc2VkIG9uIHRoZSBzY3JpcHRzIGFuZCB0aGUgJU5BTUVfQ09ERV9UT19TQ1JJUFRTCisjIG1hcC4gIE9ubHkgdXNlICVOQU1FX0NPREVfVE9fU0NSSVBUUyBlbnRyaWVzIHdpdGggYSBjb3VudCBvZiAyIG9yIG1vcmUsIHRoYXQgaXMsCisjIG5hbWVzIHRoYXQgb2NjdXIgaW4gdHdvIG9yIG1vcmUgc2NyaXB0cy4gIEZvciB0aG9zZSBzY3JpcHRzIHdoZXJlCisjIHRoZSBuYW1lcyBvY2N1ciwgbWFwIGJvdGggdXAgdG8gdGhlIEludGVySW5kaWMgcmFuZ2UsIGFuZCBkb3duIHRvCisjIHRoZSB0YXJnZXQgc2NyaXB0LgorCiskSU5URVJJTkRJQyA9IDB4RTAwMDsKKyRJTlRFUklORElDX0VYVFJBID0gMHhFMDgwOworJElOVEVSSU5ESUNfRVhUUkFfTkVYVCA9ICRJTlRFUklORElDX0VYVFJBOworCisjIEZvciBlYWNoIHNjcmlwdCwgY3JlYXRlIGEgaGFzaC4gIFRoZSBoYXNoIGhhcyBhIGtleSBmb3IgZWFjaAorIyBjb2RlIHBvaW50LCBlaXRoZXIgd2l0aGluIGl0cyBibG9jaywgb3IgaW4gdGhlIEludGVySW5kaWMgYmxvY2suCisjIHRoZSB2YWx1ZSBvZiB0aGUga2V5IGlzIHRoZSBtYXBwaW5nLgorCisjIFRoZSBzY3JpcHQgaGFzaGVzIGFyZSBuYW1lZCAlREVWQU5BR0FSSSwgZXRjLiwgYW5kIHJlZmVyZW5jZWQKKyMgd2l0aCBzeW1ib2xpYyByZWZzLgorCitAUkVNQVAgPSAoJ3MvXGJTSE9SVFxzKy8vaScsCisgICAgICAgICAgJ3MvXGJDQU5EUkFccysvL2knLAorICAgICAgICAgICdzL1xiUUEkL0tBL2knLAorICAgICAgICAgICdzL1xiS0hIQSQvS0hBL2knLAorICAgICAgICAgICdzL1xiR0hIQSQvR0EvaScsCisgICAgICAgICAgJ3MvXGJaQSQvSkEvaScsCisgICAgICAgICAgJ3MvXGJGQSQvUEhBL2knLAorICAgICAgICAgICdzL1xiVkEkL0JBL2knLAorICAgICAgICAgICdzL1xiTk5OQSQvTkEvaScsCisgICAgICAgICAgJ3MvXGJSUkEkL1JBL2knLAorICAgICAgICAgICdzL1xiTExMQSQvTExBL2knLAorICAgICAgICAgICdzL1xiTExMQSQvTEEvaScsCisgICAgICAgICAgJ3MvXGJMTEEkL0xBL2knLAorICAgICAgICAgICdzL15BKC4pIExFTkdUSCBNQVJLJC9WT1dFTCBTSUdOIEEkMS9pJywKKyAgICAgICAgICAncy9DQU5EUkFCSU5EVS9CSU5ESS9pJywKKyAgICAgICAgICAncy9CSU5ESS9DQU5EUkFCSU5EVS9pJywKKyAgICAgICAgICApOworCisjIERvIHRoaXMgc28gd2Ugc2VlIHplcm8gY291bnRzOgorZm9yZWFjaCBteSAkcmVtYXAgKEBSRU1BUCkgeyAkUkVNQVB7JHJlbWFwfSA9IDA7IH0KKworIyBUaGlzIGxvb3AgaXRlcmF0ZXMgb3ZlciB0aGUgbmFtZXMgaW4gdGhlIE5BTUVfQ09ERV9UT19TQ1JJUFRTIGhhc2guCisjIFRoZXNlIG5hbWVzIGFyZSB0aGluZ3MgbGlrZSAiTEVUVEVSIE5OTkEiLiAgRm9yIGVhY2ggbmFtZSwgaXQgdGhlbgorIyBjcmVhdGVzIHNjcmlwdCBtYXBwaW5ncyB1cCB0byB0aGUgSW50ZXJJbmRpYyBhcmVhLCBhbmQgYmFjayBkb3duCisjIHRvIHRoZSBzY3JpcHQgYXJlYXMuICBJZiBhIG5hbWUgbWFwcyB0byBtb3JlIHRoYW4gb25lIG9mZnNldCwKKyMgdGhlbiBpdCB1c2VzIHRoZSBJbnRlckluZGljIGV4dHJhIHJhbmdlLiAgRWl0aGVyIHdheSwgaXQgcGlja3MKKyMgYSBzaW5nbGUgSW50ZXJJbmRpYyBwb2ludCwgZWl0aGVyIGFuIG9mZnNldCBwb2ludCBvciBzb21ldGhpbmcgaW4KKyMgdGhlIGV4dHJhIHJhbmdlLCBhbmQgbWFwcyB1cCBhbmQgZG93biBmcm9tIHRoYXQgcG9pbnQuCitmb3JlYWNoIG15ICRuYW1lIChzb3J0IGtleXMgJU5BTUVfQ09ERV9UT19TQ1JJUFRTKSB7CisgICAgbmV4dCBpZiAoMSA+PSAkTkFNRV9DT0RFX1RPX1NDUklQVFN7JG5hbWV9e2NvdW50fSk7CisgICAgbXkgJGhyZWYgPSAkTkFNRV9DT0RFX1RPX1NDUklQVFN7JG5hbWV9OworICAgICMgQ291bnQgdGhlIG51bWJlciBvZiBkaWZmZXJlbnQgY29kZXMgYXNzaWduZWQgdG8gdGhpcyBuYW1lLgorICAgICMgVXN1YWxseSAxLCBidXQgMiBmb3IgYSBoYW5kZnVsIG9mIG5hbWVzLgorICAgIG15ICRjb2RlQ291bnQgPSAoa2V5cyAleyROQU1FX0NPREVfVE9fU0NSSVBUU3skbmFtZX19KSAtIDE7ICMgbGVzcyAxOiB7Y291bnR9CisgICAgIyBJZiAkY29kZUNvdW50IGlzIDEsIHRoZW4gbWFwIGRpcmVjdGx5IHVwIHRvIHRoZSAkSU5URVJJTkRJQworICAgICMgYmFzZS4gIElmICRjb2RlQ291bnQgaXMgMiwgdGhlbiBtYXAgaW50byB1bnVzZWQgc3BvdHMgc3RhcnRpbmcKKyAgICAjIGF0ICRJTlRFUklORElDX0VYVFJBLgorICAgIG15ICRpbnRlckluZGljQ29kZTsKKyAgICBpZiAoJGNvZGVDb3VudCA+IDEpIHsKKyAgICAgICAgIyBNYXAgaW50byB0aGUgSW50ZXJJbmRpYyBleHRyYSByYW5nZQorICAgICAgICAkaW50ZXJJbmRpY0NvZGUgPSAkSU5URVJJTkRJQ19FWFRSQV9ORVhUKys7CisgICAgfQorICAgIG15ICVzZWVuOworICAgIGZvcmVhY2ggbXkgJGNvZGUgKHNvcnQgeyRhIG5lICdjb3VudCcgJiYgJGIgbmUgJ2NvdW50JyAmJiAkYSA8PT4gJGJ9IGtleXMgJSRocmVmKSB7CisgICAgICAgIG5leHQgaWYgKCRjb2RlIGVxICdjb3VudCcpOworICAgICAgICBteSAkYXJlZiA9ICRocmVmLT57JGNvZGV9OyAjIFJlZiB0byBhcnJheSBvZiBzY3JpcHRzCisgICAgICAgIGlmICgkY29kZUNvdW50ID09IDEpIHsKKyAgICAgICAgICAgICMgTWFwIGRpcmVjdGx5CisgICAgICAgICAgICAkaW50ZXJJbmRpY0NvZGUgPSAkSU5URVJJTkRJQyArICRjb2RlOworICAgICAgICB9CisgICAgICAgICMgS2VlcCB0cmFjayBvZiB0aGUgbmFtZXMgb2YgdGhlIGV4dHJhIEludGVySW5kaWMgcG9pbnRzCisgICAgICAgICRJTlRFUklORElDX05BTUVfVE9fRlVMTENPREV7JG5hbWV9ID0gJGludGVySW5kaWNDb2RlOworCisgICAgICAgIGZvcmVhY2ggbXkgJHNjciAoQCRhcmVmKSB7CisgICAgICAgICAgICAkc2Vlbnskc2NyfSA9IDE7CisgICAgICAgICAgICBteSAkZnVsbENvZGUgPSAkU0NSSVBUX1RPX0JBU0V7JHNjcn0gKyAkY29kZTsKKyAgICAgICAgICAgICQgeyRzY3J9eyRmdWxsQ29kZX0gPSBoZXg0KCRpbnRlckluZGljQ29kZSkgLiAiOyAvLyAkbmFtZSI7CisgICAgICAgICAgICAkIHskc2NyfXskaW50ZXJJbmRpY0NvZGV9ID0gaGV4NCgkZnVsbENvZGUpIC4gIjsgLy8gJG5hbWUiOworICAgICAgICB9CisgICAgfQorICAgICMgTm93IGhhbmRsZSBJbnRlckluZGljLT5TY3JpcHQgdW5tYXBwZWQgcG9pbnRzLiAgRm9yIGVhY2ggbmFtZSwKKyAgICAjIHNvbWUgb2YgdGhlIHNjcmlwdHMgd2lsbCBiZSBsZWZ0IG91dCAtLSB3aWxsIGhhdmUgbm8gbWFwcGluZ3MKKyAgICAjIHRvIHRoYXQgbmFtZS4gIEZvciB0aGVzZSBzY3JpcHRzLCB3ZSBjYW4gZWl0aGVyIGxlYXZlIHRoZW0KKyAgICAjIHVubWFwcGVkIChzbyB0aGUgSW50ZXJJbmRpYy0+TG9jYWwgbWFwcGluZyBpcyBlbXB0eSksIG9yCisgICAgIyB0cnkgdG8gcmVtYXAuCisgdW5tYXBwZWRTY3JpcHQ6CisgICAgZm9yZWFjaCBteSAkc2NyIChrZXlzICVTQ1JJUFRfVE9fQkFTRSkgeworICAgICAgICBuZXh0IGlmICgkc2Vlbnskc2NyfSk7CisKKyAgICAgICAgaWYgKCRET19IRVVSSVNUSUNfUkVNQVApIHsKKyAgICAgICAgICAgICMgVHJ5IHRvIHJlbWFwIHRocm91Z2ggdGhlIGtub3duIGVxdWl2YWxlbmNlcyBpbiBvdXIKKyAgICAgICAgICAgICMgcmVtYXBwaW5nIHRhYmxlCisgICAgICAgICAgICBmb3JlYWNoIG15ICRyZW1hcFJFIChAUkVNQVApIHsKKyAgICAgICAgICAgICAgICBsb2NhbCAkXyA9ICRuYW1lOworICAgICAgICAgICAgICAgIGlmIChldmFsKCRyZW1hcFJFKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZXhpc3RzICRTQ1JJUFRfTkFNRV9UT19DT0RFeyRzY3J9eyRffSkgeworICAgICAgICAgICAgICAgICAgICAgICAgJCB7JHNjcn17JGludGVySW5kaWNDb2RlfSA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGV4NCgkU0NSSVBUX1RPX0JBU0V7JHNjcn0gKyAkU0NSSVBUX05BTUVfVE9fQ09ERXskc2NyfXskX30pIC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjsgLy8gUkVNQVA6ICRuYW1lIC0+ICRfIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrJFJFTUFQeyRyZW1hcFJFfTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgdW5tYXBwZWRTY3JpcHQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAjIFRyeSB0byByZW1hcCB0aHJvdWdoIHRoZSBmaWxlLiAgVGhpcyBjb250YWlucyByZW1hcHBpbmdzIG9mCisgICAgICAgICMgdGhlIGZvcm0gMDk5MS0+MDk5My4gIFRoYXQgaXMsIGl0IGNvbnRhaW5zIGxvY2FsIHJlbWFwcGluZ3MKKyAgICAgICAgIyB0aGF0IHdlIGNhbiBzdWJzdGl0dXRlIGFuZCB0cnkgYWdhaW4gd2l0aC4KKyAgICAgICAgI3xHVVJNVUtISS1JbnRlckluZGljIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAjfC8vIDBBMDI+OyAvLyBVTk1BUFBFRCBJTlRFUk5BTDogU0lHTiBCSU5ESQorICAgICAgICAjfEludGVySW5kaWMtR1VSTVVLSEkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICN8Ly8gRTAwMT47IC8vIFVOTUFQUEVEIEVYVEVSTkFMOiBTSUdOIENBTkRSQUJJTkRVCisgICAgICAgICN8Ilx1MEEwMT5cdTBBMDI7IgorICAgICAgICAjIEluIHRoaXMgZXhhbXBsZSwgdGhlIHJlbWFwcGluZyB0ZWxscyB1cyB0aGF0IHRoZSBub24tZXhpc3RlbnQKKyAgICAgICAgIyBjaGFyYWN0ZXIgQTAxIHNob3VsZCBiZSBjb25zaWRlcmVkIGVxdWl2YWxlbnQgdG8gdGhlIHJlYWwKKyAgICAgICAgIyBjaGFyYWN0ZXIgQTAyLgorICAgICAgICAjIFdlIGltcGxlbWVudCB0aGlzIGJ5IGFkZGluZyB0d28gbWFwcGluZ3M7IG9uZSBmcm9tCisgICAgICAgICMgdGhlIEludGVySW5kaWMgZXF1aXZhbGVudCBvZiBBMDEsIHRoYXQgaXMsIEUwMDEsIHRvIEEwMiwKKyAgICAgICAgIyBhbmQgb25lIGZyb20gQTAyLCB3aGljaCBvdGhlcndpc2UgaGFzIG5vIG1hcHBpbmcsIHRvIEUwMDEuCisgICAgICAgIGlmICgkRVhDRVBUSU9OU19GSUxFICYmICRpbnRlckluZGljQ29kZSA8ICRJTlRFUklORElDX0VYVFJBKSB7CisgICAgICAgICAgICAjIFRyeSB0byBtYXAgdGhpcyBJbnRlckluZGljIGNoYXJhY3RlciBiYWNrIHRvIGEgdGhlIHNwb3QKKyAgICAgICAgICAgICMgaXQgd291bGQgb2NjdXB5IGluIHRoaXMgc2NyaXB0IGlmIGl0IGhhZCBhIG1hcHBpbmcuCisgICAgICAgICAgICBteSAkY29kZSA9ICRpbnRlckluZGljQ29kZSAmIDB4N0Y7CisgICAgICAgICAgICBteSAkcHNldWRvRnVsbENvZGUgPSAkU0NSSVBUX1RPX0JBU0V7JHNjcn0gKyAkY29kZTsKKyAgICAgICAgICAgIGlmIChleGlzdHMgJEVYQ0VQVElPTlN7JHBzZXVkb0Z1bGxDb2RlfSkgeworICAgICAgICAgICAgICAgIG15ICRmdWxsQ29kZUFycmF5ID0gJEVYQ0VQVElPTlN7JHBzZXVkb0Z1bGxDb2RlfTsKKyAgICAgICAgICAgICAgICBteSAkY29tbWVudDsKKyAgICAgICAgICAgICAgICBmb3JlYWNoIG15ICRjIChAJGZ1bGxDb2RlQXJyYXkpIHsKKyAgICAgICAgICAgICAgICAgICAgJGNvbW1lbnQgLj0gIi4iIGlmICgkY29tbWVudCk7CisgICAgICAgICAgICAgICAgICAgICRjb21tZW50IC49ICRGVUxMQ09ERV9UT19OQU1FeyRjfTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgJGNvbW1lbnQgPSAiOyAvLyBSRU1BUCAoJEVYQ0VQVElPTlNfRklMRSk6ICIgLgorICAgICAgICAgICAgICAgICAgICBoZXg0KCRwc2V1ZG9GdWxsQ29kZSkgLiAiPiIgLiBoZXhBcnJheShAJGZ1bGxDb2RlQXJyYXkpIC4gIiA9ICIgLgorICAgICAgICAgICAgICAgICAgICAkQ09ERV9UT19OQU1FeyRjb2RlfSAuICI+IiAuICRjb21tZW50OworICAgICAgICAgICAgICAgICQgeyRzY3J9eyRpbnRlckluZGljQ29kZX0gPSBoZXhBcnJheShAJGZ1bGxDb2RlQXJyYXkpIC4gJGNvbW1lbnQ7CisgICAgICAgICAgICAgICAgaWYgKHNjYWxhciBAJGZ1bGxDb2RlQXJyYXkgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZXhpc3RzICQgeyRzY3J9eyRmdWxsQ29kZUFycmF5LT5bMF19KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAjIFRoZXJlJ3MgYWxyZWFkeSBhIHByb3BlciBtYXBwaW5nOyBubyBuZWVkIHRvIGZpbGwKKyAgICAgICAgICAgICAgICAgICAgICAgICMgaW4gcmV2ZXJzZQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgJCB7JHNjcn17JGZ1bGxDb2RlQXJyYXktPlswXX0gPSBoZXg0KCRpbnRlckluZGljQ29kZSkgLiAkY29tbWVudDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBuZXh0IHVubWFwcGVkU2NyaXB0OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgJFNDUklQVF9GVUxMQ09ERV9UT19JU19VTk1BUFBFRHskc2NyfXskaW50ZXJJbmRpY0NvZGV9ID0gMTsKKyAgICAgICAgbG9jYWwgJF8gPSAiOyAvLyBVTk1BUFBFRCBJbnRlckluZGljLSRzY3I6ICRuYW1lIjsKKyAgICAgICAgaWYgKGV4aXN0cyAkU0NSSVBUX0NPREVfVE9fTkFNRXskc2NyfXskaW50ZXJJbmRpY0NvZGUgJiAweDdGfSkgeworICAgICAgICAgICAgbXkgJGZ1bGxDb2RlID0gJFNDUklQVF9UT19CQVNFeyRzY3J9ICsgKCRpbnRlckluZGljQ29kZSAmIDB4N0YpOworICAgICAgICAgICAgJF8gLj0gIiAoIiAuIGhleDQoJGZ1bGxDb2RlKSAuICIgPSAiIC4gJEZVTExDT0RFX1RPX05BTUV7JGZ1bGxDb2RlfSAuICIpIjsKKyAgICAgICAgfQorICAgICAgICAkIHskc2NyfXskaW50ZXJJbmRpY0NvZGV9ID0gJF87CisgICAgfQorfQorCisjIEFkZCBpbiB1bm1hcHBlZCBlbnRyaWVzIGZvciBlYWNoIHNjcmlwdAorZm9yZWFjaCBteSAkc2NyIChrZXlzICVTQ1JJUFRfVE9fQkFTRSkgeworICAgIG15ICRiYXNlID0gJFNDUklQVF9UT19CQVNFeyRzY3J9OworIHVubWFwcGVkSW50OgorICAgIGZvcmVhY2ggbXkgJGNvZGUgKGtleXMgJXskU0NSSVBUX0NPREVfVE9fTkFNRXskc2NyfX0pIHsKKyAgICAgICAgbXkgJGZ1bGxDb2RlID0gJGNvZGUgKyAkYmFzZTsKKyAgICAgICAgbmV4dCBpZiAoZXhpc3RzICQgeyRzY3J9eyRmdWxsQ29kZX0pOworICAgICAgICBteSAkbmFtZSA9ICRTQ1JJUFRfQ09ERV9UT19OQU1FeyRzY3J9eyRjb2RlfTsKKworICAgICAgICBpZiAoJERPX0hFVVJJU1RJQ19SRU1BUCkgeworICAgICAgICAgICAgZm9yZWFjaCBteSAkcmVtYXBSRSAoQFJFTUFQKSB7CisgICAgICAgICAgICAgICAgbG9jYWwgJF8gPSAkbmFtZTsKKyAgICAgICAgICAgICAgICBpZiAoZXZhbCgkcmVtYXBSRSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGV4aXN0cyAkSU5URVJJTkRJQ19OQU1FX1RPX0ZVTExDT0RFeyRffSkgeworICAgICAgICAgICAgICAgICAgICAgICAgJCB7JHNjcn17JGZ1bGxDb2RlfSA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGV4NCgkSU5URVJJTkRJQ19OQU1FX1RPX0ZVTExDT0RFeyRffSkgLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOyAvLyBSRU1BUDogJG5hbWUgLT4gJF8iOworICAgICAgICAgICAgICAgICAgICAgICAgKyskUkVNQVB7JHJlbWFwUkV9OworICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCB1bm1hcHBlZEludDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgICMgTm93IHRyeSB0aGUgZGVjb21wIHRhYmxlCisgICAgICAgIGlmICgkRE9fREVDT01QX1JFTUFQICYmIGV4aXN0cyAkREVDT01QeyRuYW1lfSkgeworICAgICAgICAgICAgbXkgJHg7CisgICAgICAgICAgICBteSAkY210ID0gIjsgLy8gREVDT01QOiAkbmFtZSAtPiAiOworICAgICAgICAgICAgZm9yZWFjaCBteSAkbiAoQHskREVDT01QeyRuYW1lfX0pIHsKKyAgICAgICAgICAgICAgICBpZiAoZXhpc3RzICRTQ1JJUFRfTkFNRV9UT19DT0RFeyRzY3J9eyRufSkgeworICAgICAgICAgICAgICAgICAgICAkeCAuPSBoZXg0KCRTQ1JJUFRfVE9fQkFTRXskc2NyfSArICRTQ1JJUFRfTkFNRV9UT19DT0RFeyRzY3J9eyRufSk7CisgICAgICAgICAgICAgICAgICAgICRjbXQgLj0gJG4gLiAiICsgIjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAkY210ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgbGFzdDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoJGNtdCkgeworICAgICAgICAgICAgICAgICQgeyRzY3J9eyRmdWxsQ29kZX0gPSAkeCAuICRjbXQ7CisgICAgICAgICAgICAgICAgbmV4dCB1bm1hcHBlZEludDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgICRTQ1JJUFRfRlVMTENPREVfVE9fSVNfVU5NQVBQRUR7JHNjcn17JGZ1bGxDb2RlfSA9IDE7CisgICAgICAgICQgeyRzY3J9eyRmdWxsQ29kZX0gPSAiOyAvLyBVTk1BUFBFRCAkc2NyLUludGVySW5kaWM6ICRuYW1lIjsKKyAgICB9Cit9CisKKyMgR1VSCisjIEUwMEI+OyAvLyBVTk1BUFBFRCBFWFRFUk5BTDogTEVUVEVSIFZPQ0FMSUMgUiAiXHUwQTBCPlx1MEEzMFx1MEEzRjsiCisjIEUwMEM+OyAvLyBVTk1BUFBFRCBFWFRFUk5BTDogTEVUVEVSIFZPQ0FMSUMgTCAiXHUwQTBDPlx1MEEwNzsiCisjIEUwMEQ+OyAvLyBVTk1BUFBFRCBFWFRFUk5BTDogTEVUVEVSIENBTkRSQSBFICJcdTBBMEQ+XHUwQTEwOyIKKyMgRTAxMT47IC8vIFVOTUFQUEVEIEVYVEVSTkFMOiBMRVRURVIgQ0FORFJBIE8gIlx1MEExMT5cdTBBMTQ7IgorIyBFMDM3PjsgLy8gVU5NQVBQRUQgRVhURVJOQUw6IExFVFRFUiBTU0EgIlx1MEEzNz5cdTBBMzY7IgorIyBFMDQ1PjsgLy8gVU5NQVBQRUQgRVhURVJOQUw6IFZPV0VMIFNJR04gQ0FORFJBIEUgIlx1MEE0NT5cdTBBNDg7IgorIyBFMDQ5PjsgLy8gVU5NQVBQRUQgRVhURVJOQUw6IFZPV0VMIFNJR04gQ0FORFJBIE8gIlx1MEE0OT5cdTBBNEM7IgorIyBGaXggUUEgdG9vCisKKyMgRHVtcCBvdXQgc2NyaXB0IG1hcHMKK2ZvcmVhY2ggbXkgJHNjciAoc29ydCBrZXlzICVTQ1JJUFRfVE9fQkFTRSkgeworICAgICMjIG5leHQgdW5sZXNzICgkc2NyIGVxICdURUxVR1UnKTsgIyBEZWJ1Z2dpbmcKKyAgICBteSBAcnVsZXM7CisgICAgbXkgJGZsYWcgPSAxOworICAgIGZvcmVhY2ggbXkgJGZ1bGxDb2RlIChzb3J0IHskYSA8PT4gJGJ9IGtleXMgJXskc2NyfSkgeworICAgICAgICBpZiAoJGZsYWcgJiYgJGZ1bGxDb2RlID49ICRJTlRFUklORElDKSB7CisgICAgICAgICAgICAjIFdlIGhhdmUgdGhlIGNvbXBsZXRlIDxzY3I+LUludGVySW5kaWMgcnVsZXM7IGR1bXAKKyAgICAgICAgICAgICMgdGhlbSBvdXQuCisgICAgICAgICAgICBnZW5lcmF0ZVJCVCgkc2NyLCAiSW50ZXJJbmRpYyIsIFxAcnVsZXMsICRPVVRESVIpOworICAgICAgICAgICAgQHJ1bGVzID0gKCk7CisgICAgICAgICAgICAkZmxhZyA9IDA7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGV4aXN0cyAkU0NSSVBUX0ZVTExDT0RFX1RPX0lTX1VOTUFQUEVEeyRzY3J9eyRmdWxsQ29kZX0pIHsKKyAgICAgICAgICAgIHB1c2ggQHJ1bGVzLCAiLy8gIiAuIGhleDQoJGZ1bGxDb2RlKSAuICI+IiAuICQgeyRzY3J9eyRmdWxsQ29kZX07CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwdXNoIEBydWxlcywgaGV4NCgkZnVsbENvZGUpIC4gIj4iIC4gJCB7JHNjcn17JGZ1bGxDb2RlfTsKKyAgICAgICAgfQorICAgIH0KKyAgICAjIE5vdyBnZW5lcmF0ZSB0aGUgSW50ZXJJbmRpYy08c2NyPiBydWxlcy4KKyAgICBnZW5lcmF0ZVJCVCgiSW50ZXJJbmRpYyIsICRzY3IsIFxAcnVsZXMsICRPVVRESVIpOworCisjICAgIHByaW50ICIkc2NyLUludGVySW5kaWMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iOworIyAgICBteSAkZmxhZyA9IDE7CisjICAgIGZvcmVhY2ggbXkgJGZ1bGxDb2RlIChzb3J0IHskYSA8PT4gJGJ9IGtleXMgJXskc2NyfSkgeworIyAgICAgICAgaWYgKCRmbGFnICYmICRmdWxsQ29kZSA+PSAkSU5URVJJTkRJQykgeworIyAgICAgICAgICAgIHByaW50ICJJbnRlckluZGljLSRzY3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iOworIyAgICAgICAgICAgICRmbGFnID0gMDsKKyMgICAgICAgIH0KKyMgICAgICAgIGlmIChleGlzdHMgJFNDUklQVF9GVUxMQ09ERV9UT19JU19VTk1BUFBFRHskc2NyfXskZnVsbENvZGV9KSB7CisjICAgICAgICAgICAgcHJpbnQgIi8vICIsIGhleDQoJGZ1bGxDb2RlKSwgIj4iLCAkIHskc2NyfXskZnVsbENvZGV9LCAiXG4iOworIyAgICAgICAgfSBlbHNlIHsKKyMgICAgICAgICAgICBwcmludCBoZXg0KCRmdWxsQ29kZSksICI+IiwgJCB7JHNjcn17JGZ1bGxDb2RlfSwgIlxuIjsKKyMgICAgICAgIH0KKyMgICAgfQorfQorCisjIExpc3Qgc3VjY2Vzc2Z1bCByZW1hcHBpbmdzCitpZiAoJERPX0hFVVJJU1RJQ19SRU1BUCkgeworICAgIGZvcmVhY2ggbXkgJHJlbWFwIChzb3J0IGtleXMgJVJFTUFQKSB7CisgICAgICAgIHByaW50IFNUREVSUiAiUkVNQVAgIiwgJFJFTUFQeyRyZW1hcH0sICIgeCAkcmVtYXBcbiI7CisgICAgfQorfQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBTVUJST1VUSU5FUworCisjIFJldHVybiBhIGxpc3Rpbmcgb2YgYW4gYXJyYXkgb2Ygc2NyaXB0cworIyBQYXJhbTogYXJyYXkgcmVmCitzdWIgZm9ybWF0U2NyaXB0TGlzdCB7CisgICAgbXkgJGFyZWYgPSBzaGlmdDsKKyAgICBpZiAoJFNDUklQVF9DT1VOVCA9PSBAJGFyZWYpIHsKKyAgICAgICAgcmV0dXJuICJhbGwiOworICAgIH0gZWxzaWYgKCgkU0NSSVBUX0NPVU5UIC0gMykgPD0gQCRhcmVmKSB7CisgICAgICAgIG15ICRzID0gImFsbCBidXQiOworICAgICAgICBteSAldGVtcDsKKyAgICAgICAgZm9yZWFjaCAoQCRhcmVmKSB7ICR0ZW1weyRffSA9IDE7IH0KKyAgICAgICAgZm9yZWFjaCAoc29ydCBrZXlzICVTQ1JJUFRfVE9fQkFTRSkgeworICAgICAgICAgICAgJHMgLj0gIiAkXyIgdW5sZXNzIGV4aXN0cyAkdGVtcHskX307CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICRzOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBqb2luKCIgIiwgQCRhcmVmKTsKKyAgICB9Cit9CisKKyMgRm9ybWF0IGFzICUwMlggaGV4CitzdWIgaGV4MiB7CisgICAgc3ByaW50ZigiJTAyWCIsICRfWzBdKTsKK30KKworIyBGb3JtYXQgYXMgJTA0WCBoZXgKK3N1YiBoZXg0IHsKKyAgICBzcHJpbnRmKCJcXHUlMDRYIiwgJF9bMF0pOworfQorCisjIEZvcm1hdCBhbiBhcnJheSBhcyAlMDRYIGhleCwgZGVsaW1pdGVkIGJ5ICIuInMKK3N1YiBoZXhBcnJheSB7CisgICAgam9pbigiIiwgbWFwIHsgaGV4NCgkXyk7IH0gQF8pOworfQorCisjIFBhcnNlIGEgc3RyaW5nIG9mIHRoZSBmb3JtICJcdTBEMDEiIHRvIGFuIGFycmF5IG9mIGludGVnZXJzLgorIyBNdXN0IE9OTFkgY29udGFpbiBlc2NhcGVzLgorIyBSZXR1cm4gdGhlIGFycmF5Lgorc3ViIHBhcnNlVW5pY29kZUVzY2FwZSB7CisgICAgbG9jYWwgJF8gPSBzaGlmdDsKKyAgICBteSAkb3JpZyA9ICRfOworICAgIG15IEByZXN1bHQ7CisgICAgd2hpbGUgKGxlbmd0aCgkXykpIHsKKyAgICAgICAgaWYgKC9eXFx1KFswLTlhLWZdezR9KSguKikvaSkgeworICAgICAgICAgICAgcHVzaCBAcmVzdWx0LCBoZXgoJDEpOworICAgICAgICAgICAgJF8gPSAkMjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRpZSAiQ2FuJ3QgcGFyc2UgVW5pY29kZSBlc2NhcGUgJG9yaWdcbiI7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKDAgPT0gQHJlc3VsdCkgeworICAgICAgICBkaWUgIkNhbid0IHBhcnNlIFVuaWNvZGUgZXNjYXBlICRvcmlnXG4iOyAgICAgICAgCisgICAgfQorICAgIEByZXN1bHQ7Cit9CisKKyMgUmV0dXJuIDEgaWYgdGhlIHR3byBhcnJheXMgb2YgaW50cyBhcmUgZXF1YWwuCisjIFBhcmFtOiByZWYgdG8gYXJyYXkgb2YgaW50cworIyBQYXJhbTogcmVmIHRvIGFycmF5IG9mIGludHMKK3N1YiBpbnRBcnJheXNFcXVhbCB7CisgICAgbXkgJGEgPSBzaGlmdDsKKyAgICBteSAkYiA9IHNoaWZ0OworICAgIGlmIChzY2FsYXIgQCRhID09IHNjYWxhciBAJGIpIHsKKyAgICAgICAgZm9yIChteSAkaT0wOyAkaTxAJGE7ICsrJGkpIHsKKyAgICAgICAgICAgIGlmICgkYS0+WyRpXSAhPSAkYi0+WyRpXSkgeworICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAxOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworIyBHaXZlbiBhIHJ1bGUsIHBvc3NpYmx5IHdpdGggdHJhaWxpbmcgLy8gY29tbWVudCwKKyMgcXVvdGUgdGhlIHJ1bGUgcGFydCBhbmQgYWRkIGEgdHJhaWxpbmcgIisiIGFmdGVyCisjIGl0Lgorc3ViIHF1b3RlUnVsZSB7CisgICAgbXkgJGNtdDsKKyAgICAkY210ID0gJDEgaWYgKHN8KFxzKi8vLiopfHwpOyAjIGlzb2xhdGUgdHJhaWxpbmcgLy8gY29tbWVudAorICAgIHMvXiguKjspL1wiJDFcIisvOworICAgIHMvJC8kY210LzsKKyAgICAkXzsKK30KKworIyBHaXZlbiB0aGUgbmFtZSBvZiB0aGUgc291cmNlIHNjcmlwdCwgbmFtZSBvZiB0aGUgdGFyZ2V0IHNjcmlwdCwKKyMgYW5kIGFycmF5IG9mIHJ1bGUgc3RyaW5ncywgcmV0dXJuIGEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIHNvdXJjZQorIyBmb3IgYSBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvciBmaWxlLgorIyBQYXJhbTogc291cmNlIHNjcmlwdCBuYW1lCisjIFBhcmFtOiB0YXJnZXQgc2NyaXB0IG5hbWUKKyMgUGFyYW06IHJlZiB0byBhcnJheSBvZiBydWxlcy4gIFRoZXNlIHJ1bGVzIGFyZSB1bnF1b3RlZCwgd2l0aG91dAorIyAgY29uY2F0ZW5hdG9ycyBiZXR3ZWVuIHRoZW0sIGJ1dCBkbyBoYXZlIHRyYWlsaW5nICc7JyBzZXBhcmF0b3JzLgorIyBQYXJhbTogbmFtZSBvZiBvdXRwdXQgZGlyZWN0b3J5CitzdWIgZ2VuZXJhdGVSQlQgeworICAgICMgJFRPT0wgLSBuYW1lIG9mIGdlbmVyYXRpbmcgdG9vbAorICAgICMgJERBVEUgLSBkYXRlIG9mIGdlbmVyYXRpb24KKyAgICAjICRTQ1JJUFRGUk9NIC0gbmFtZSBvZiBzb3VyY2Ugc2NyaXB0CisgICAgIyAkU0NSSVBUVE8gLSBuYW1lIG9mIHRhcmdldCBzY3JpcHQKKyAgICAjICRSVUxFUyAtIHJ1bGVzCisgICAgbXkgKCRzb3VyY2UsICR0YXJnZXQsICRydWxlcywgJG91dGRpcikgPSBAXzsKKyAgICBteSAkdGV4dDsKKyAgICAkb3V0ZGlyID1+IHN8Wy9cXF0kfHw7ICMgRGVsZXRlIHRyYWlsaW5nIC8gb3IgXAorICAgIG15ICRPVVQgPSAiJG91dGRpci9UcmFuc2xpdGVyYXRpb25SdWxlXyR7c291cmNlfV8kdGFyZ2V0LmphdmEiOworICAgIG9wZW4oUkJUX1RFTVBMQVRFKSBvciBkaWU7CisgICAgb3BlbihPVVQsICI+JE9VVCIpIG9yIGRpZTsKKyAgICB3aGlsZSAoPFJCVF9URU1QTEFURT4pIHsKKyAgICAgICAgd2hpbGUgKC9cJChbQS1aYS16MC05XSspLykgeworICAgICAgICAgICAgbXkgJHRhZyA9ICQxOworICAgICAgICAgICAgbXkgJHN1YjsKKyAgICAgICAgICAgIGlmICgkdGFnIGVxICdUT09MJykgeworICAgICAgICAgICAgICAgICRzdWIgPSAkUkJUX0dFTl9UT09MOworICAgICAgICAgICAgfSBlbHNpZiAoJHRhZyBlcSAnREFURScpIHsKKyAgICAgICAgICAgICAgICAkc3ViID0gbG9jYWx0aW1lOworICAgICAgICAgICAgfSBlbHNpZiAoJHRhZyBlcSAnU0NSSVBURlJPTScpIHsKKyAgICAgICAgICAgICAgICAkc3ViID0gJHNvdXJjZTsKKyAgICAgICAgICAgIH0gZWxzaWYgKCR0YWcgZXEgJ1NDUklQVFRPJykgeworICAgICAgICAgICAgICAgICRzdWIgPSAkdGFyZ2V0OworICAgICAgICAgICAgfSBlbHNpZiAoJHRhZyBlcSAnUlVMRVMnKSB7CisgICAgICAgICAgICAgICAgIyBHZXQgYW55IHdoaXRlc3BhY2Utb25seSBpbmRlbnQgb2ZmIHRoZSBmcm9udCBvZiB0aGlzIHRhZworICAgICAgICAgICAgICAgIG15ICRpbmRlbnQ7CisgICAgICAgICAgICAgICAgJGluZGVudCA9ICQxIGlmICgvXihccyspXCQkdGFnLyk7CisKKyAgICAgICAgICAgICAgICAjIFRoZSBydWxlcyBpbiB0aGUgYXJyYXkgYXJlIG5vdCBxdW90ZWQuICBXZSBuZWVkIHRvIHF1b3RlCisgICAgICAgICAgICAgICAgIyB0aGVtIGFuZCBhZGQgJysnIG9wZXJhdG9ycyBiZXR3ZWVuIHRoZW0uICBXZSBkbyBOT1QgbmVlZAorICAgICAgICAgICAgICAgICMgdG8gYWRkICc7JyBzZXBhcmF0b3JzLiAgV2UgRE8gbmVlZCB0byBzZXBhcmF0ZSB0cmFpbGluZworICAgICAgICAgICAgICAgICMgLy8gY29tbWVudHMgYW5kIGhhbmRsZSB0aGVtLgorICAgICAgICAgICAgICAgICRzdWIgPSBqb2luKCJcbiRpbmRlbnQiLCBtYXAoJnF1b3RlUnVsZSwgQCRydWxlcykpIC4KKyAgICAgICAgICAgICAgICAgICAgIlxuJGluZGVudFwiXCIiOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwcmludCBTVERFUlIgIkVSUk9SIGluICRSQlRfVEVNUExBVEU6IFVua25vd24gdGFnICR0YWdcbiI7CisgICAgICAgICAgICAgICAgJHN1YiA9ICJbRVJST1I6VW5rbm93biB0YWcgXCQkdGFnXSI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzL1wkJHRhZy8kc3ViLzsKKyAgICAgICAgfQorICAgICAgICBwcmludCBPVVQ7CisgICAgfQorICAgIGNsb3NlKE9VVCk7CisgICAgY2xvc2UoUkJUX1RFTVBMQVRFKTsKKyAgICBwcmludCBTVERFUlIgIldyaXR0ZW46ICRPVVRcbiI7Cit9CisKK19fRU5EX18KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9pbmRpY0V4Y2VwdGlvbnMudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L2luZGljRXhjZXB0aW9ucy50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2I5NjUyOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9pbmRpY0V4Y2VwdGlvbnMudHh0CkBAIC0wLDAgKzEsMzcwIEBACisvKiBSZXNlcnZlZCBpbiBhbGwgOSBzY3JpcHRzICovCisKKy8qCisgICBUaGVzZSBjb2RlcG9pbnRzIGFyZSBtYXJrZWQgUkVTRVJWRUQgaW4gYWxsIDkgaW5kaWMgc2NyaXB0cy4KKyAgIFRoZXJlIHNob3VsZCBub3QgYmUgYW55IHRyYW5zbGl0ZXJhdGlvbiB3b3JrIG9uIHRoZXNlIGNvZGVwb2ludHMsIAorICAgaWYgdGhleSBhcmUgZXZlciBlbmNvdW50ZXJlZC4gIElnbm9yZSB0aGVzZSBjb2RlcG9pbnRzLgorCisgICBDb21tb24gcmVzZXJ2ZWQgY29kZXBvaW50cyBpbiBBTEwgOSBzY3JpcHRzIDogKG9mZnNldCkKKyAgIDAwLCAwNCwgCisgICAzQSwgM0IsIAorICAgNEUsIDRGLCAKKyAgIDdCLCA3QywgN0QsIDdFLCA3RgorKi8KKworLyogU2NyaXB0LXNwZWNpZmljICovCisvKgorICAgVGhlc2UgY29kZXBvaW50cyBhcmUgc3BlY2lmaWMgdG8gdGhlaXIgcmVzcGVjdGl2ZSBzY3JpcHQuCisgICBUcmFuc2xpdGVyYXRpb24gb2YgdGhlc2UgY29kZXBvaW50cyBmcm9tIG9uZSBzY3JpcHQgdG8gYW5vdGhlciBpcyBtZWFuaW5nbGVzcy4KKworICAgRm9yIGV4YW1wbGUsCisgICAgICBcdTBCNzAgKE9yaXlhKSBhbmQgXHUwQkYwIChUYW1pbCkgYXJlIG5vbi1yZXNlcnZlZCBjb2RlcG9pbnRzIHdpdGhpbiBlYWNoIHNjcmlwdC4KKyAgICAgIE9uIHRyYW5zbGl0ZXJhdGluZyBcdTBCNzAgZnJvbSBPcml5YSB0byBUYW1pbCwgd2Ugd2lsbCBnZXQgXHUwQkYwLgorICAgICAgQnV0IFx1MEI3MCBpbiBPcml5YSByZXByZXNlbnRzIElTU0hBUiwgd2hlcmVhcyBcdTBCRjAgaW4gVGFtaWwgcmVwcmVzZW50cyBOVU1CRVIgVEVOLgorCisgICBcdTA5NzAgRGV2YW5hZ2FyaSBhYmJyZXZpYXRpb24gc2lnbgorCisgICBcdTA5RjAgQmVuZ2FsaSBsZXR0ZXIgUkEgd2l0aCBtaWRkbGUgZGlhZ29uYWwgKEFzc2FtZXNlKQorICAgXHUwOUYxIEJlbmdhbGkgbGV0dGVyIFJBIHdpdGggbG93ZXIgZGlhZ29uYWwgCisgICAgICAgICAgKD1CZW5nYWxpIGxldHRlciBWQSB3aXRoIGxvd2VyIGRpYWdvbmFsLCBBc3NhbWVzZSkKKyAgIFx1MDlGMiBCZW5nYWxpIHJ1cGVlIG1hcmsKKyAgIFx1MDlGMyBCZW5nYWxpIHJ1cGVlIHNpZ24KKyAgIFx1MDlGNCBCZW5nYWxpIGN1cnJlbmN5IG51bWVyYXRvciBvbmUKKyAgIFx1MDlGNSBCZW5nYWxpIGN1cnJlbmN5IG51bWVyYXRvciB0d28KKyAgIFx1MDlGNiBCZW5nYWxpIGN1cnJlbmN5IG51bWVyYXRvciB0aHJlZQorICAgXHUwOUY3IEJlbmdhbGkgY3VycmVuY3kgbnVtZXJhdG9yIGZvdXIKKyAgIFx1MDlGOCBCZW5nYWxpIGN1cnJlbmN5IG51bWVyYXRvciBvbmUgbGVzcyB0aGFuIHRoZSBkZW5vbWluYXRvcgorICAgXHUwOUY5IEJlbmdhbGkgY3VycmVuY3kgZGVub21pbmF0b3Igc2l4dGVlbgorICAgXHUwOUZBIEJlbmdhbGkgaXNzaGFyCisKKyAgIFx1MEE3MCBHdXJtdWtoaSB0aXBwaSAobmFzYWxpemF0aW9uKQorICAgXHUwQTcxIEd1cm11a2hpIGFkZGFrIChkb3VibGVzIGZvbGxvd2luZyBjb25zb25hbnQpCisgICBcdTBBNzIgR3VybXVraGkgaXJpIChiYXNlIGZvciB2b3dlbHMpCisgICBcdTBBNzMgR3VybXVraGkgdXJhIChiYXNlIGZvciB2b3dlbHMpCisgICBcdTBBNzQgR3VybXVraGkgZWsgb25rYXIgKEdvZCBpcyBPbmUpCisKKyAgIFx1MEI3MCBPcml5YSBpc3NoYXIKKworICAgXHUwQkYwIFRhbWlsIG51bWJlciB0ZW4KKyAgIFx1MEJGMSBUYW1pbCBudW1iZXIgb25lIGh1bmRyZWQKKyAgIFx1MEJGMiBUYW1pbCBudW1iZXIgb25lIHRob3VzYW5kCisqLworCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogIE5PVEUgOiA8dW5rbm93bj4gY29kZSB3aWxsIG1hcCBiYWNrIHRvIGl0c2VsZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAgICB0aWxsIHdlIGZpbmQgYSBnb29kIG1hdGNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogRGV2YW5hZ2FyaSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisiXHUwOTU1Plx1MDk1NTsiICAvLyA8dW5rbm93bj4gTGVuZ3RoIE1hcmsgLSBLYW5uYWRhIChcdTBDRDUpLCBUZWx1Z3UgKFx1MEM1NSkKKyJcdTA5NTY+XHUwOTQ4OyIgIC8vIEFJIExlbmd0aCBNYXJrIC0+IERldmFuYWdhcmkgVm93ZWwgU2lnbiBBSQorIlx1MDk1Nz5cdTA5NEM7IiAgLy8gQVUgTGVuZ3RoIE1hcmsgLT4gRGV2YW5hZ2FyaSBWb3dlbCBTaWduIEFVCisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBCZW5nYWxpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyJcdTA5OEQ+XHUwOThEOyIgIC8vIDx1bmtub3duPiBpbmRlcGVuZGVudCB2b3dlbCBDYW5kcmEgRQorIlx1MDk4RT5cdTA5OEY7IiAgLy8gTGV0dGVyIFNob3J0IEUgLT4gTGV0dGVyIEUKKyJcdTA5OTE+XHUwOTkzOyIgIC8vIExldHRlciBDYW5kcmEgTyAtPiBMZXR0ZXIgTworIlx1MDk5Mj5cdTA5OTM7IiAgLy8gTGV0dGVyIFNob3J0IE8gLT4gTGV0dGVyIE8KKyJcdTA5QTk+XHUwOUE4OyIgIC8vIExldHRlciBOTk5BIC0+IExldHRlciBOQQorIlx1MDlCMT5cdTA5QjA7IiAgLy8gTGV0dGVyIFJSQSAtPiBMZXR0ZXIgUkEKKyJcdTA5QjM+XHUwOUIyOyIgIC8vIExldHRlciBMTEEgLT4gTGV0dGVyIExBCisiXHUwOUI0Plx1MDlCMjsiICAvLyBMZXR0ZXIgTExMQSAtPiBMZXR0ZXIgTEEKKyJcdTA5QjU+XHUwOUFDOyIgIC8vIExldHRlciBWQSAtPiBMZXR0ZXIgQkEKKyJcdTA5QkQ+XHUwOUJEOyIgIC8vIDx1bmtub3duPiBTaWduIEF2YWdyYWhhIC0gRGV2YW5hZ2FyaSAoXHUwOTNEKQorIlx1MDlDNT5cdTA5Qzc7IiAgLy8gVm93ZWwgQ2FuZHJhIEUgLT4gVm93ZWwgRQorIlx1MDlDNj5cdTA5Qzc7IiAgLy8gVm93ZWwgU2hvcnQgRSAtPiBWb3dlbCBFCisiXHUwOUM5Plx1MDlDQjsiICAvLyBWb3dlbCBDYW5kcmEgTyAtPiBWb3dlbCBPCisiXHUwOUNBPlx1MDlDQjsiICAvLyBWb3dlbCBTaG9ydCBPIC0+IFZvd2VsIE8KKyJcdTA5RDA+XHUwOUQwOyIgIC8vIDx1bmtub3duPiBPTSAtIERldmFuYWdhcmkgKFx1MDk1MCksIEd1amFyYXRpIChcdTBBRDApCisiXHUwOUQxPlx1MDlEMTsiICAvLyA8dW5rbm93bj4gU3RyZXNzIC0gRGV2YW5hZ2FyaSAoXHUwOTUxKQorIlx1MDlEMj5cdTA5RDI7IiAgLy8gPHVua25vd24+IFN0cmVzcyAtIERldmFuYWdhcmkgKFx1MDk1MikKKyJcdTA5RDM+XHUwOUQzOyIgIC8vIDx1bmtub3duPiBBY2NlbnQgLSBEZXZhbmFnYXJpIChcdTA5NTMpCisiXHUwOUQ0Plx1MDlENDsiICAvLyA8dW5rbm93bj4gQWNjZW50IC0gRGV2YW5hZ2FyaSAoXHUwOTU0KQorIlx1MDlENT5cdTA5RDU7IiAgLy8gPHVua25vd24+IExlbmd0aCBNYXJrIC0gS2FubmFkYSAoXHUwQ0Q1KSwgVGVsdWd1IChcdTBDNTUpCisiXHUwOUQ2Plx1MDlDODsiICAvLyBBSSBMZW5ndGggTWFyayAtPiBCZW5nYWxpIFZvd2VsIFNpZ24gQUkKKyJcdTA5RDg+XHUwOTk1OyIgIC8vIExldHRlciBRQSAtPiBMZXR0ZXIgS0EKKyJcdTA5RDk+XHUwOTk2OyIgIC8vIExldHRlciBLSEhBIC0+IExldHRlciBLSEEKKyJcdTA5REE+XHUwOTk3OyIgIC8vIExldHRlciBHSEhBIC0+IExldHRlciBHQQorIlx1MDlEQj5cdTA5OUM7IiAgLy8gTGV0dGVyIFpBIC0+IExldHRlciBKQQorIlx1MDlERT5cdTA5QUI7IiAgLy8gTGV0dGVyIEZBIC0+IExldHRlciBQSEEKKyJcdTA5RTQ+XHUwOUU0OyIgIC8vIDx1bmtub3duPiBEYW5kYSAtIERldmFuYWdhcmkgKFx1MDk2NCkKKyJcdTA5RTU+XHUwOUU1OyIgIC8vIDx1bmtub3duPiBEb3VibGUgRGFuZGEgLSBEZXZhbmFnYXJpIChcdTA5NjUpCisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBHdXJtdWtoaSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyJcdTBBMDE+XHUwQTAyOyIKKyJcdTBBMDM+XHUwQTAzOyIgIC8vIDx1bmtub3duPiBTaWduIFZpc2FyZ2EgLSBEZXZhbmFnYXJpIChcdTA5MDMpICYgdGhlIHJlc3QKKyJcdTBBMEI+XHUwQTMwXHUwQTNGOyIKKyJcdTBBMEM+XHUwQTA3OyIKKyJcdTBBMEQ+XHUwQTEwOyIKKyJcdTBBMEU+XHUwQTBGOyIKKyJcdTBBMTE+XHUwQTE0OyIKKyJcdTBBMTI+XHUwQTEzOyIKKyJcdTBBMjk+XHUwQTI4OyIKKyJcdTBBMzE+XHUwQTMwOyIKKyJcdTBBMzQ+XHUwQTMzOyIKKyJcdTBBMzc+XHUwQTM2OyIKKyJcdTBBM0Q+XHUwQTNEOyIgIC8vIDx1bmtub3duPiBTaWduIEF2YWdyYWhhIC0gRGV2YW5hZ2FyaSAoXHUwOTNEKQorIlx1MEE0Mz5cdTBBNDM7IiAgLy8gPHVua25vd24+IFZvY2FsaWMgUiAtIERldmFuYWdhcmkgKFx1MDk0MykKKyJcdTBBNDQ+XHUwQTQ0OyIgIC8vIDx1bmtub3duPiBWb2NhbGljIFJSIC0gRGV2YW5hZ2FyaSAoXHUwOTQ0KQorIlx1MEE0NT5cdTBBNDg7IgorIlx1MEE0Nj5cdTBBNDc7IgorIlx1MEE0OT5cdTBBNEM7IgorIlx1MEE0QT5cdTBBNEI7IgorIlx1MEE1MD5cdTBBNTA7IiAgLy8gPHVua25vd24+IE9NIC0gRGV2YW5hZ2FyaSAoXHUwOTUwKSwgR3VqYXJhdGkgKFx1MEFEMCkKKyJcdTBBNTE+XHUwQTUxOyIgIC8vIDx1bmtub3duPiBTdHJlc3MgLSBEZXZhbmFnYXJpIChcdTA5NTEpCisiXHUwQTUyPlx1MEE1MjsiICAvLyA8dW5rbm93bj4gU3RyZXNzIC0gRGV2YW5hZ2FyaSAoXHUwOTUyKQorIlx1MEE1Mz5cdTBBNTM7IiAgLy8gPHVua25vd24+IEFjY2VudCAtIERldmFuYWdhcmkgKFx1MDk1MykKKyJcdTBBNTQ+XHUwQTU0OyIgIC8vIDx1bmtub3duPiBBY2NlbnQgLSBEZXZhbmFnYXJpIChcdTA5NTQpCisiXHUwQTU1Plx1MEE1NTsiICAvLyA8dW5rbm93bj4gTGVuZ3RoIE1hcmsgLSBLYW5uYWRhIChcdTBDRDUpLCBUZWx1Z3UgKFx1MEM1NSkKKyJcdTBBNTY+XHUwQTQ4OyIgIC8vIEFJIExlbmd0aCBNYXJrIC0+IEd1cm11a2hpIFZvd2VsIFNpZ24gQUkKKyJcdTBBNTc+XHUwQTRDOyIgIC8vIEFVIExlbmd0aCBNYXJrIC0+IEd1cm11a2hpIFZvd2VsIFNpZ24gQVUKKyJcdTBBNTg+XHUwQTE1XHUwQTNDOyIKKyJcdTBBNUQ+XHUwQTIyXHUwQTNDOyIgIC8vIExldHRlciBSSEEgLT4gR3VybXVraGkgbGV0dGVyIGRkaGEgKFx1MEEyMikgKyBudWt0YSAoXHUwQTNDKQorIlx1MEE1Rj5cdTBBMkY7IgorIlx1MEE2MD5cdTBBMzBcdTBBM0Y7IgorIlx1MEE2MT5cdTBBMDhcdTBBM0M7IgorIlx1MEE2Mj5cdTBBM0ZcdTBBM0M7IgorIlx1MEE2Mz5cdTBBNDBcdTBBM0M7IgorIlx1MEE2ND5cdTBBNjQ7IiAgLy8gPHVua25vd24+IERhbmRhIC0gRGV2YW5hZ2FyaSAoXHUwOTY0KQorIlx1MEE2NT5cdTBBNjU7IiAgLy8gPHVua25vd24+IERvdWJsZSBEYW5kYSAtIERldmFuYWdhcmkgKFx1MDk2NSkKKworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIEd1amFyYXRpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyJcdTBBOEM+XHUwQUIyXHUwQUMzOyIKKyJcdTBBOEU+XHUwQThEOyIKKyJcdTBBOTI+XHUwQTkxOyIKKyJcdTBBQTk+XHUwQUE4OyIKKyJcdTBBQjE+XHUwQUIwOyIKKyJcdTBBQjQ+XHUwQUIzOyIKKyJcdTBBQzY+XHUwQUM1OyIKKyJcdTBBQ0E+XHUwQUM5OyIKKyJcdTBBRDE+XHUwQUQxOyIgIC8vIDx1bmtub3duPiBTdHJlc3MgLSBEZXZhbmFnYXJpIChcdTA5NTEpCisiXHUwQUQyPlx1MEFEMjsiICAvLyA8dW5rbm93bj4gU3RyZXNzIC0gRGV2YW5hZ2FyaSAoXHUwOTUyKQorIlx1MEFEMz5cdTBBRDM7IiAgLy8gPHVua25vd24+IEFjY2VudCAtIERldmFuYWdhcmkgKFx1MDk1MykKKyJcdTBBRDQ+XHUwQUQ0OyIgIC8vIDx1bmtub3duPiBBY2NlbnQgLSBEZXZhbmFnYXJpIChcdTA5NTQpCisiXHUwQUQ1Plx1MEFENTsiICAvLyA8dW5rbm93bj4gTGVuZ3RoIE1hcmsgLSBLYW5uYWRhIChcdTBDRDUpLCBUZWx1Z3UgKFx1MEM1NSkKKyJcdTBBRDY+XHUwQUM4OyIgIC8vIEFJIExlbmd0aCBNYXJrIC0+IEd1amFyYXRpIFZvd2VsIFNpZ24gQUkKKyJcdTBBRDc+XHUwQUNDOyIgIC8vIEFVIExlbmd0aCBNYXJrIC0+IEd1amFyYXRpIFZvd2VsIFNpZ24gQVUKKyJcdTBBRDg+XHUwQTk1XHUwQUJDOyIKKyJcdTBBRDk+XHUwQTk2XHUwQUJDOyIKKyJcdTBBREE+XHUwQTk3XHUwQUJDOyIKKyJcdTBBREI+XHUwQTlDXHUwQUJDOyIKKyJcdTBBREM+XHUwQUExXHUwQUJDOyIKKyJcdTBBREQ+XHUwQUEyXHUwQUJDOyIKKyJcdTBBREU+XHUwQUFCXHUwQUJDOyIKKyJcdTBBREY+XHUwQUFGXHUwQUJDOyIKKyJcdTBBRTE+XHUwQUIyXHUwQUMzOyIKKyJcdTBBRTI+XHUwQUJGXHUwQUJDOyIKKyJcdTBBRTM+XHUwQUMwXHUwQUJDOyIKKyJcdTBBRTQ+XHUwQUU0OyIgIC8vIDx1bmtub3duPiBEYW5kYSAtIERldmFuYWdhcmkgKFx1MDk2NCkKKyJcdTBBRTU+XHUwQUU1OyIgIC8vIDx1bmtub3duPiBEb3VibGUgRGFuZGEgLSBEZXZhbmFnYXJpIChcdTA5NjUpCisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBPcml5YSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisiXHUwQjBEPlx1MEIwRjsiCisiXHUwQjBFPlx1MEIwRjsiCisiXHUwQjExPlx1MEIxMzsiCisiXHUwQjEyPlx1MEIxMzsiCisiXHUwQjI5Plx1MEIyODsiCisiXHUwQjMxPlx1MEIzMDsiCisiXHUwQjM0Plx1MEIzMzsiCisiXHUwQjM1Plx1MEIyQzsiICAvLyBMZXR0ZXIgVkEgLT4gT3JpeWEgTGV0dGVyIEJBCisiXHUwQjQ0Plx1MEI0M1x1MEIzQzsiCisiXHUwQjQ1Plx1MEI0NzsiCisiXHUwQjQ2Plx1MEI0NzsiCisiXHUwQjQ5Plx1MEI0QjsiCisiXHUwQjRBPlx1MEI0QjsiCisiXHUwQjUwPlx1MEIxM1x1MEIwMTsiCisiXHUwQjUxPlx1MEI1MTsiICAvLyA8dW5rbm93bj4gU3RyZXNzIC0gRGV2YW5hZ2FyaSAoXHUwOTUxKQorIlx1MEI1Mj5cdTBCNTI7IiAgLy8gPHVua25vd24+IFN0cmVzcyAtIERldmFuYWdhcmkgKFx1MDk1MikKKyJcdTBCNTM+XHUwQjUzOyIgIC8vIDx1bmtub3duPiBBY2NlbnQgLSBEZXZhbmFnYXJpIChcdTA5NTMpCisiXHUwQjU0Plx1MEI1NDsiICAvLyA8dW5rbm93bj4gQWNjZW50IC0gRGV2YW5hZ2FyaSAoXHUwOTU0KQorIlx1MEI1NT5cdTBCNTU7IiAgLy8gPHVua25vd24+IExlbmd0aCBNYXJrIC0gS2FubmFkYSAoXHUwQ0Q1KSwgVGVsdWd1IChcdTBDNTUpCisiXHUwQjU4Plx1MEIxNVx1MEIzQzsiCisiXHUwQjU5Plx1MEIxNlx1MEIzQzsiCisiXHUwQjVBPlx1MEIxN1x1MEIzQzsiCisiXHUwQjVCPlx1MEIxQ1x1MEIzQzsiCisiXHUwQjVFPlx1MEIyQlx1MEIzQzsiCisiXHUwQjYyPlx1MEI1Nlx1MEIzQzsiCisiXHUwQjYzPlx1MEI1N1x1MEIzQzsiCisiXHUwQjY0Plx1MEI2NDsiICAvLyA8dW5rbm93bj4gRGFuZGEgLSBEZXZhbmFnYXJpIChcdTA5NjQpCisiXHUwQjY1Plx1MEI2NTsiICAvLyA8dW5rbm93bj4gRG91YmxlIERhbmRhIC0gRGV2YW5hZ2FyaSAoXHUwOTY1KQorCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogVGFtaWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisiXHUwQjgxPlx1MEI4MTsiICAvLyA8dW5rbm93bj4gQ2FuZHJhYmluZHUgLSBEZXZhbmFnYXJpIChcdTA5MDEpICxldGMKKyJcdTBCOEI+XHUwQkIwXHUwQkJGOyIKKyJcdTBCOEM+XHUwQjg3OyIKKyJcdTBCOEQ+XHUwQjg2OyIKKyJcdTBCOTE+XHUwQjg2OyIKKyJcdTBCOTY+XHUwQjk1OyIKKyJcdTBCOTc+XHUwQjk1OyIKKyJcdTBCOTg+XHUwQjk1OyIKKyJcdTBCOUI+XHUwQjlBOyIKKyJcdTBCOUQ+XHUwQjlBOyIKKyJcdTBCQTA+XHUwQjlGOyIKKyJcdTBCQTE+XHUwQjlGOyIKKyJcdTBCQTI+XHUwQjlGOyIKKyJcdTBCQTU+XHUwQkE0OyIKKyJcdTBCQTY+XHUwQkE0OyIKKyJcdTBCQTc+XHUwQkE0OyIKKyJcdTBCQUI+XHUwQkFBOyIKKyJcdTBCQUM+XHUwQkFBOyIKKyJcdTBCQUQ+XHUwQkFBOyIKKyJcdTBCQjY+XHUwQkI3OyIKKyJcdTBCQkM+XHUwQkJDOyIgIC8vIDx1bmtub3duPiBOdWt0YQorIlx1MEJCRD5cdTBCQkQ7IiAgLy8gPHVua25vd24+IFNpZ24gQXZhZ3JhaGEgLSBEZXZhbmFnYXJpIChcdTA5M0QpCisiXHUwQkMzPlx1MEJDRFx1MEJCMFx1MEJCRjsiCisiXHUwQkM0Plx1MEJDRFx1MEJCMFx1MEJCRjsiCisiXHUwQkM1Plx1MEJCRTsiCisiXHUwQkM5Plx1MEJCRTsiCisiXHUwQkQwPlx1MEI5M1x1MEJBRVx1MEJDRDsiCisiXHUwQkQxPlx1MEJEMTsiICAvLyA8dW5rbm93bj4gU3RyZXNzIC0gRGV2YW5hZ2FyaSAoXHUwOTUxKQorIlx1MEJEMj5cdTBCRDI7IiAgLy8gPHVua25vd24+IFN0cmVzcyAtIERldmFuYWdhcmkgKFx1MDk1MikKKyJcdTBCRDM+XHUwQkQzOyIgIC8vIDx1bmtub3duPiBBY2NlbnQgLSBEZXZhbmFnYXJpIChcdTA5NTMpCisiXHUwQkQ0Plx1MEJENDsiICAvLyA8dW5rbm93bj4gQWNjZW50IC0gRGV2YW5hZ2FyaSAoXHUwOTU0KQorIlx1MEJENT5cdTBCRDU7IiAgLy8gPHVua25vd24+IExlbmd0aCBNYXJrIC0gS2FubmFkYSAoXHUwQ0Q1KSwgVGVsdWd1IChcdTBDNTUpCisiXHUwQkQ2Plx1MEJDODsiICAvLyBBSSBMZW5ndGggTWFyayAtPiBUYW1pbCBWb3dlbCBTaWduIEFJCisiXHUwQkQ4Plx1MEI5NTsiCisiXHUwQkQ5Plx1MEI5NTsiCisiXHUwQkRBPlx1MEI5NTsiCisiXHUwQkRCPlx1MEI5QzsiCisiXHUwQkRDPlx1MEI5RjsiCisiXHUwQkREPlx1MEI5RjsiCisiXHUwQkRFPlx1MEJBQTsiCisiXHUwQkRGPlx1MEJBRjsiCisiXHUwQkUwPlx1MEJCMFx1MEJCRjsiCisiXHUwQkUxPlx1MEI4ODsiCisiXHUwQkUyPlx1MEJFMjsiICAvLyA8dW5rbm93bj4gVm9jYWxpYyBMIC0gRGV2YW5hZ2FyaSAoXHUwOTYyKQorIlx1MEJFMz5cdTBCRTM7IiAgLy8gPHVua25vd24+IFZvY2FsaWMgTEwgLSBEZXZhbmFnYXJpIChcdTA5NjMpCisiXHUwQkU0Plx1MEJFNDsiICAvLyA8dW5rbm93bj4gRGFuZGEgLSBEZXZhbmFnYXJpIChcdTA5NjQpCisiXHUwQkU1Plx1MEJFNTsiICAvLyA8dW5rbm93bj4gRG91YmxlIERhbmRhIC0gRGV2YW5hZ2FyaSAoXHUwOTY1KQorIlx1MEJFNj5cdTAwMzA7IiAgLy8gWkVSTyAtIERpZ2l0IFpFUk8KKworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIFRlbHVndSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworIlx1MEMwRD5cdTBDMEU7IgorIlx1MEMxMT5cdTBDMTI7IgorIlx1MEMyOT5cdTBDMjg7IgorIlx1MEMzND5cdTBDMzM7IgorIlx1MEMzQz5cdTBDM0M7IiAgLy8gPHVua25vd24+IE51a3RhCisiXHUwQzNEPlx1MEMzRDsiICAvLyA8dW5rbm93bj4gU2lnbiBBdmFncmFoYSAtIERldmFuYWdhcmkgKFx1MDkzRCkKKyJcdTBDNDU+XHUwQzQ2OyIKKyJcdTBDNDk+XHUwQzRBOyIKKyJcdTBDNTA+XHUwQzEzXHUwQzAyOyIKKyJcdTBDNTE+XHUwQzUxOyIgIC8vIDx1bmtub3duPiBTdHJlc3MgLSBEZXZhbmFnYXJpIChcdTA5NTEpCisiXHUwQzUyPlx1MEM1MjsiICAvLyA8dW5rbm93bj4gU3RyZXNzIC0gRGV2YW5hZ2FyaSAoXHUwOTUyKQorIlx1MEM1Mz5cdTBDNTM7IiAgLy8gPHVua25vd24+IEFjY2VudCAtIERldmFuYWdhcmkgKFx1MDk1MykKKyJcdTBDNTQ+XHUwQzU0OyIgIC8vIDx1bmtub3duPiBBY2NlbnQgLSBEZXZhbmFnYXJpIChcdTA5NTQpCisiXHUwQzU3Plx1MEM0QzsiCisiXHUwQzU4Plx1MEMxNTsiCisiXHUwQzU5Plx1MEMxNjsiCisiXHUwQzVBPlx1MEMxNzsiCisiXHUwQzVCPlx1MEMxQzsiCisiXHUwQzVDPlx1MEMyMTsiCisiXHUwQzVEPlx1MEMyMjsiCisiXHUwQzVFPlx1MEMyQjsiCisiXHUwQzVGPlx1MEMyRjsiCisiXHUwQzYyPlx1MEMzRjsiCisiXHUwQzYzPlx1MEM0MDsiCisiXHUwQzY0Plx1MEM2NDsiICAvLyA8dW5rbm93bj4gRGFuZGEgLSBEZXZhbmFnYXJpIChcdTA5NjQpCisiXHUwQzY1Plx1MEM2NTsiICAvLyA8dW5rbm93bj4gRG91YmxlIERhbmRhIC0gRGV2YW5hZ2FyaSAoXHUwOTY1KQorCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogS2FubmFkYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisiXHUwQzgxPlx1MEM4MjsiCisiXHUwQzhEPlx1MEM4RTsiCisiXHUwQzkxPlx1MEM5MjsiCisiXHUwQ0E5Plx1MENBODsiCisiXHUwQ0I0Plx1MENCMzsiCisiXHUwQ0JDPlx1MENCQzsiICAvLyA8dW5rbm93bj4gTnVrdGEKKyJcdTBDQkQ+XHUwQ0JEOyIgIC8vIDx1bmtub3duPiBTaWduIEF2YWdyYWhhIC0gRGV2YW5hZ2FyaSAoXHUwOTNEKQorIlx1MENDNT5cdTBDQzY7IgorIlx1MENDOT5cdTBDQ0E7IgorIlx1MENEMD5cdTBDOTNcdTBDODI7IgorIlx1MENEMT5cdTBDRDE7IiAgLy8gPHVua25vd24+IFN0cmVzcyAtIERldmFuYWdhcmkgKFx1MDk1MSkKKyJcdTBDRDI+XHUwQ0QyOyIgIC8vIDx1bmtub3duPiBTdHJlc3MgLSBEZXZhbmFnYXJpIChcdTA5NTIpCisiXHUwQ0QzPlx1MENEMzsiICAvLyA8dW5rbm93bj4gQWNjZW50IC0gRGV2YW5hZ2FyaSAoXHUwOTUzKQorIlx1MENEND5cdTBDRDQ7IiAgLy8gPHVua25vd24+IEFjY2VudCAtIERldmFuYWdhcmkgKFx1MDk1NCkKKyJcdTBDRDc+XHUwQ0NDOyIKKyJcdTBDRDg+XHUwQzk1OyIKKyJcdTBDRDk+XHUwQzk2OyIKKyJcdTBDREE+XHUwQzk3OyIKKyJcdTBDREI+XHUwQzlDOyIKKyJcdTBDREM+XHUwQ0ExOyIKKyJcdTBDREQ+XHUwQ0EyOyIKKyJcdTBDREY+XHUwQ0FGOyIKKyJcdTBDRTI+XHUwQ0JGOyIKKyJcdTBDRTM+XHUwQ0MwOyIKKyJcdTBDRTQ+XHUwQ0U0OyIgIC8vIDx1bmtub3duPiBEYW5kYSAtIERldmFuYWdhcmkgKFx1MDk2NCkKKyJcdTBDRTU+XHUwQ0U1OyIgIC8vIDx1bmtub3duPiBEb3VibGUgRGFuZGEgLSBEZXZhbmFnYXJpIChcdTA5NjUpCisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBNYWxheWFsYW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyJcdTBEMDE+XHUwRDAyOyIKKyJcdTBEMEQ+XHUwRDA2OyIKKyJcdTBEMTE+XHUwRDEzOyIKKyJcdTBEMjk+XHUwRDI4OyIKKyJcdTBEM0M+XHUwRDNDOyIgIC8vIDx1bmtub3duPiBOdWt0YQorIlx1MEQzRD5cdTBEM0Q7IiAgLy8gPHVua25vd24+IFNpZ24gQXZhZ3JhaGEgLSBEZXZhbmFnYXJpIChcdTA5M0QpCisiXHUwRDQ0Plx1MEQ0NDsiICAvLyA8dW5rbm93bj4gVm9jYWxpYyBSUiAtIERldmFuYWdhcmkgKFx1MDk0NCkKKyJcdTBENDU+XHUwRDNFOyIKKyJcdTBENDk+XHUwRDRCOyIKKyJcdTBENTA+XHUwRDUwOyIgIC8vIDx1bmtub3duPiBPTSAtIERldmFuYWdhcmkgKFx1MDk1MCksIEd1amFyYXRpIChcdTBBRDApCisiXHUwRDUxPlx1MEQ1MTsiICAvLyA8dW5rbm93bj4gU3RyZXNzIC0gRGV2YW5hZ2FyaSAoXHUwOTUxKQorIlx1MEQ1Mj5cdTBENTI7IiAgLy8gPHVua25vd24+IFN0cmVzcyAtIERldmFuYWdhcmkgKFx1MDk1MikKKyJcdTBENTM+XHUwRDUzOyIgIC8vIDx1bmtub3duPiBBY2NlbnQgLSBEZXZhbmFnYXJpIChcdTA5NTMpCisiXHUwRDU0Plx1MEQ1NDsiICAvLyA8dW5rbm93bj4gQWNjZW50IC0gRGV2YW5hZ2FyaSAoXHUwOTU0KQorIlx1MEQ1NT5cdTBENTU7IiAgLy8gPHVua25vd24+IExlbmd0aCBNYXJrIC0gS2FubmFkYSAoXHUwQ0Q1KSwgVGVsdWd1IChcdTBDNTUpCisiXHUwRDU2Plx1MEQ0ODsiICAvLyBBSSBMZW5ndGggTWFyayAtPiBNYWxheWFsYW0gVm93ZWwgU2lnbiBBSQorIlx1MEQ1OD5cdTBEMTU7IgorIlx1MEQ1OT5cdTBEMTY7IgorIlx1MEQ1QT5cdTBEMTc7IgorIlx1MEQ1Qj5cdTBEMUM7IgorIlx1MEQ1Qz5cdTBEMjE7IgorIlx1MEQ1RD5cdTBEMjI7IgorIlx1MEQ1RT5cdTBEMkI7IgorIlx1MEQ1Rj5cdTBEMkY7IgorIlx1MEQ2Mj5cdTBENjI7IiAgLy8gPHVua25vd24+IFZvY2FsaWMgTCAtIERldmFuYWdhcmkgKFx1MDk2MikKKyJcdTBENjM+XHUwRDYzOyIgIC8vIDx1bmtub3duPiBWb2NhbGljIExMIC0gRGV2YW5hZ2FyaSAoXHUwOTYzKQorIlx1MEQ2ND5cdTBENjQ7IiAgLy8gPHVua25vd24+IERhbmRhIC0gRGV2YW5hZ2FyaSAoXHUwOTY0KQorIlx1MEQ2NT5cdTBENjU7IiAgLy8gPHVua25vd24+IERvdWJsZSBEYW5kYSAtIERldmFuYWdhcmkgKFx1MDk2NSkKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9yYnRUZW1wbGF0ZS50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvcmJ0VGVtcGxhdGUudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA1NDliYmQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvcmJ0VGVtcGxhdGUudHh0CkBAIC0wLDAgKzEsMjYgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKGMpIDIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24KKyogYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogPiBUSElTIEZJTEUgV0FTIE1BQ0hJTkUgR0VORVJBVEVEIDwKKyogPiAgICAgICBETyBOT1QgRURJVCBCWSBIQU5EICAgICAgIDwKKyogPiAgICAgIFJVTiBUT09MIFRPIFJFR0VORVJBVEUgICAgIDwKKyogVG9vbDogJFRPT0wKKyogQ3JlYXRpb24gZGF0ZTogJERBVEUKKyovCitwYWNrYWdlIGNvbS5pYm0udGV4dC5yZXNvdXJjZXM7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgVHJhbnNsaXRlcmF0aW9uUnVsZV8kU0NSSVBURlJPTV8kU0NSSVBUVE8gZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIC8qKgorICAgICAqIE92ZXJyaWRlcyBMaXN0UmVzb3VyY2VCdW5kbGUKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgICAgICAgIHsgIlJ1bGUiLAorICAgICAgICAgICAgICAkUlVMRVMKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvdmFyc3ViLmJhdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC92YXJzdWIuYmF0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQ4OTI3MjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvdmFyc3ViLmJhdApAQCAtMCwwICsxLDc0IEBACitAcmVtID0gJy0tKi1QZXJsLSotLQorQGVjaG8gb2ZmCitpZiAiJU9TJSIgPT0gIldpbmRvd3NfTlQiIGdvdG8gV2luTlQKK3BlcmwgLXggLVMgIiUwIiAlMSAlMiAlMyAlNCAlNSAlNiAlNyAlOCAlOQorZ290byBlbmRvZnBlcmwKKzpXaW5OVAorcGVybCAteCAtUyAiJTAiICUqCitpZiBOT1QgIiVDT01TUEVDJSIgPT0gIiVTeXN0ZW1Sb290JVxzeXN0ZW0zMlxjbWQuZXhlIiBnb3RvIGVuZG9mcGVybAoraWYgJWVycm9ybGV2ZWwlID09IDkwMDkgZWNobyBZb3UgZG8gbm90IGhhdmUgUGVybCBpbiB5b3VyIFBBVEguCitnb3RvIGVuZG9mcGVybAorQHJlbSAnOworIyFwZXJsCisjbGluZSAxNAorCisjIFVzYWdlOiBwZXJsIHZhcnN1Yi5iYXQgWy1ufC1ucl0gPGluZmlsZT4gPG91dGZpbGU+CisjCisjIFN1YnN0aXR1dGVzIHZhcmlhYmxlcyBpbnRvIHJ1bGVzIGFuZCBkZWxldGVzIHZhcmlhYmxlIGRlZmluaXRpb24KKyMgc3RhdGVtZW50cy4gIFZhcmlhYmxlcyB0aGF0IGV4cGFuZCB0byBVbmljb2RlU2V0cyBhcmUgTk9UCisjIHN1YnN0aXR1dGVkLgorIworIyAgLW4gICBBZnRlcndhcmRzLCBydW4gbmF0aXZlMmFzY2lpIC1lbmNvZGluZyBVVEY4CisjICAtbnIgIEFmdGVyd2FyZHMsIHJ1biBuYXRpdmUyYXNjaWkgLWVuY29kaW5nIFVURjggLXJldmVyc2UKKworJE4yQSA9IDA7CisKKyRJTiA9IHNoaWZ0OworaWYgKCRJTiA9fiAvXi1uLykgeworICAgICROMkEgPSAxOworICAgICROMkFvcHRpb24gPSAoJElOIGVxICctbnInKSA/ICIgLXJldmVyc2UgIiA6ICIiOworICAgICRJTiA9IHNoaWZ0OworfQorJE9VVCA9IHNoaWZ0OworCitpZiAoISgkSU4gJiYgJE9VVCkpIHsKKyAgICBkaWUgIlVzYWdlOiAkMCBbLW58LW5yXSA8aW5maWxlPiA8b3V0ZmlsZT4iOworfQorCitvcGVuKElOKSBvciBkaWUgIkNhbid0IG9wZW4gJElOOiAkISI7CitvcGVuKE9VVCwgIj4kT1VUIikgb3IgZGllICJDYW4ndCBvcGVuICRPVVQ6ICQhIjsKKword2hpbGUgKDxJTj4pIHsKKyAgICBpZiAoL15ccypcJChbYS16QS1aMC05X10rKVxzKj1ccyooW147XCNdKylccyo7XHMqKFwjLiopPyQvKSB7CisgICAgICAgICMgVGhpcyBsb29rcyBsaWtlIGEgdmFyaWFibGUgZGVmaW5pdGlvbgorICAgICAgICBteSAoJHZhciwgJGRlZikgPSAoJDEsICQyKTsKKyAgICAgICAgIyBEb24ndCBzdWJzdGl0dXRlIFVuaWNvZGVTZXQgdmFycworICAgICAgICBpZiAoJGRlZiAhfiAvXlxbLykgeworICAgICAgICAgICAgaWYgKGV4aXN0cyAkVkFSeyR2YXJ9KSB7CisgICAgICAgICAgICAgICAgcHJpbnQgU1RERVJSICJFcnJvcjogRHVwbGljYXRlIGRlZmluaXRpb24gb2YgJHZhclxuIjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgJFZBUnskdmFyfSA9ICRkZWY7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBuZXh0OworICAgICAgICB9CisgICAgfQorICAgIAorICAgICMgRG8gdmFyaWFibGUgc3Vic3RpdHV0aW9ucywgYW5kIG91dHB1dCBsaW5lCisgICAgZm9yZWFjaCBteSAkdmFyIChrZXlzICVWQVIpIHsKKyAgICAgICAgbXkgJGRlZiA9ICRWQVJ7JHZhcn07CisgICAgICAgIHMvXCQkdmFyXGIvJGRlZi9nOworICAgIH0KKyAgICBwcmludCBPVVQ7Cit9CisKK2Nsb3NlKE9VVCk7CitjbG9zZShJTik7CisKK2lmICgkTjJBKSB7CisgICAgYG5hdGl2ZTJhc2NpaSAtZW5jb2RpbmcgVVRGOCAkTjJBb3B0aW9uICRPVVQgJE9VVC5uYXRpdmUyYXNjaWlgOworICAgIHVubGluayAkT1VUOworICAgIHJlbmFtZSAiJE9VVC5uYXRpdmUyYXNjaWkiLCAkT1VUOworfQorCitfX0VORF9fCis6ZW5kb2ZwZXJsCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wveG1sY29tcGFyYXRvci9YTUxDb21wYXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wveG1sY29tcGFyYXRvci9YTUxDb21wYXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGI5MjBlNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC94bWxjb21wYXJhdG9yL1hNTENvbXBhcmF0b3IuamF2YQpAQCAtMCwwICsxLDExOTUgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogJFNvdXJjZTogL3Vzci9jdnMvaWN1NGovaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvQnl0ZVRyaWUuamF2YSx2ICQgCisqICREYXRlOiAyMDAyLzAzLzAyIDAyOjIwOjAxICQgCisqICRSZXZpc2lvbjogMS41ICQKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC54bWxjb21wYXJhdG9yOworCisvKioKKyAqIEBhdXRob3IgcmFtCisgKgorICogVGhpcyB0b29sIGNvbXBhcmVzIGxvY2FsZSBkYXRhIGluIFhNTCBmb3JtYXQgYW5kIGdlbmVyYXRlcyBIVE1MIGFuZCBYTUwgcmVwb3J0cworICovCitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC4qOworaW1wb3J0IGphdmEuaW8uUHJpbnRXcml0ZXI7CitpbXBvcnQgamF2YS5pby5GaWxlOworaW1wb3J0IGphdmEuaW8uRmlsZVJlYWRlcjsKK2ltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkUmVhZGVyOworaW1wb3J0IGphdmEudGV4dC5EZWNpbWFsRm9ybWF0OworaW1wb3J0IGphdmEudXRpbC5DYWxlbmRhcjsKKworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworLy8gRE9NIGltcG9ydHMKK2ltcG9ydCBvcmcudzNjLmRvbS5BdHRyOworaW1wb3J0IG9yZy53M2MuZG9tLkRvY3VtZW50OworaW1wb3J0IG9yZy53M2MuZG9tLkVsZW1lbnQ7CitpbXBvcnQgb3JnLnczYy5kb20uTm9kZTsKK2ltcG9ydCBvcmcudzNjLmRvbS5OYW1lZE5vZGVNYXA7CitpbXBvcnQgb3JnLnczYy5kb20uTm9kZUxpc3Q7CitpbXBvcnQgb3JnLnczYy5kb20uVGV4dDsKKworLy8gTmVlZGVkIEpBWFAgY2xhc3NlcworaW1wb3J0IGphdmF4LnhtbC5wYXJzZXJzLkRvY3VtZW50QnVpbGRlcjsKK2ltcG9ydCBqYXZheC54bWwucGFyc2Vycy5Eb2N1bWVudEJ1aWxkZXJGYWN0b3J5OworCisvLyBTQVgyIGltcG9ydHMKK2ltcG9ydCBvcmcueG1sLnNheC5FcnJvckhhbmRsZXI7CitpbXBvcnQgb3JnLnhtbC5zYXguSW5wdXRTb3VyY2U7CitpbXBvcnQgb3JnLnhtbC5zYXguU0FYRXhjZXB0aW9uOworaW1wb3J0IG9yZy54bWwuc2F4LlNBWFBhcnNlRXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Ob3JtYWxpemVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKKworcHVibGljIGNsYXNzIFhNTENvbXBhcmF0b3IgeworICAgIFN0cmluZ1tdIGZpbGVOYW1lczsgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc2hvcnQgT1BUX1NVTl9KREsgPSAweDAwMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBzaG9ydCBPUFRfSUJNX0pESyA9IDB4MDAyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHNob3J0IE9QVF9XSU5ET1dTID0gMHgwMDQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc2hvcnQgT1BUX0hQX1VYICAgPSAweDAwODsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBzaG9ydCBPUFRfU09MQVJJUyA9IDB4MDEwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHNob3J0IE9QVF9JQk1fVE9SID0gMHgwMjA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc2hvcnQgT1BUX0FQUExFICAgPSAweDA0MDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBzaG9ydCBPUFRfSUNVICAgICA9IDB4MDgwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHNob3J0IE9QVF9PVEhFUiAgID0gMHgxMDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc2hvcnQgT1BUX1NPVVJDRSAgPSAweDEyMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBzaG9ydCBPUFRfREVTVCAgICA9IDB4MTQwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHNob3J0IE9QVF9PVVQxICAgID0gMHgxNjA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc2hvcnQgT1BUX09VVDIgICAgPSAweDE4MDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBzaG9ydCBPUFRfVU5LTk9XTiA9IDB4MTAwMDsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgUE9TSVg9ICIwIjsvKiBOTyBpbmhlcml0ZW5jZSBvZiBsb2NhbGUgZGF0YSAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBJQ1UgID0gIjEiOy8qIFN1cHBvcnRzIGluaGVyaXRlbmNlIG9mIGxvY2FsZSBkYXRhKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVVNFUl9PUFRJT05TW11bXSA9IHsKKyAgICAgICAgeyItc3VuX2pkayIsICJzdW5famRrIixJQ1V9LCAKKyAgICAgICAgeyItaWJtX2pkayIsICJpYm1famRrIixJQ1V9LAorICAgICAgICB7Ii13aW5kb3dzIiwgIndpbmRvd3MiLCBQT1NJWH0sCisgICAgICAgIHsiLWhwX3V4IiwgICAiaHBfdXgiLFBPU0lYIH0sIAorICAgICAgICB7Ii1zb2xhcmlzIiwgInNvbGFyaXMiLFBPU0lYIH0sCisgICAgICAgIHsiLWlibV90b3IiLCAiaWJtX3Rvcm9udG8iLFBPU0lYfSwKKyAgICAgICAgeyItYXBwbGUiLCAgICJhcHBsZSIsIFBPU0lYfSwKKyAgICAgICAgeyItaWN1IiwgICAgICJpY3UiLElDVX0sCisgICAgICAgIHsiLW90aGVyIiwgICAib3RoZXIiLCBQT1NJWH0sCisgICAgICAgIHsiLXMiLG51bGwsbnVsbH0sCisgICAgICAgIHsiLWQiLG51bGwsIG51bGx9LAorICAgICAgICB7Ii1vdXQxIixudWxsLG51bGx9LAorICAgIH07CisgICAgCisgICAgSGFzaHRhYmxlIG9wdGlvblRhYmxlID0gbmV3IEhhc2h0YWJsZSgpOworICAgIHByaXZhdGUgU3RyaW5nIHNvdXJjZUZvbGRlciA9ICIuIjsKKyAgICBwcml2YXRlIFN0cmluZyBkZXN0Rm9sZGVyID0gIi4iOworICAgIHByaXZhdGUgYm9vbGVhbiBvdXQxID0gZmFsc2U7CisgICAgcHJpdmF0ZSBib29sZWFuIG91dDIgPSBmYWxzZTsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKXsKKyAgICAgICAgWE1MQ29tcGFyYXRvciBjb21wYXJhdG9yID0gbmV3IFhNTENvbXBhcmF0b3IoKTsKKyAgICAgICAgY29tcGFyYXRvci5wcm9jZXNzQXJncyhhcmdzKTsgICAgCisgICAgICAgIAorICAgIH0KKyAgICAKKyAgICBBcnJheUxpc3QgZG9lc05vdEV4aXN0ID0gbmV3IEFycmF5TGlzdCgpOworICAgIEFycmF5TGlzdCBub3RBdmFpbGFibGUgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAKKyAgICAvKgorICAgICAqIFRoaXMgYXBwbGljYXRpb24gd2lsbCBjb21wYXJlIGRpZmZlcmVudCBsb2NhbGUgZGF0YSB4bWwgZmlsZXMKKyAgICAgKiBjb25mb3JtaW5nIHRvIGxvY2FsZUVsZW1lbnRzLmR0ZCBhbmQgcHJvZHVjZXMgYW4geG1sIGZpbGUgZmlsZQorICAgICAqIGluIHRoZSBmb3JtYXQKKyAgICAgKi8gCisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICBEb2N1bWVudCByZXN1bHREb2N1bWVudDsKKyAgICBTdHJpbmcgbG9jYWxlU3RyOyAgICAKKyAgICBMb2NhbGUgbG9jYWxlOworICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgICAgICAgICAgIAorICAgIHByaXZhdGUgdm9pZCBwcm9jZXNzQXJncyhTdHJpbmdbXSBhcmdzKXsKKyAgICAgICAgc2hvcnQgb3B0aW9ucyA9IGlkZW50aWZ5T3B0aW9ucyhhcmdzKTsKKyAgICAgICAgaWYgKChhcmdzLmxlbmd0aCA8IDIpIHx8ICgob3B0aW9ucyAmIE9QVF9VTktOT1dOKSAhPSAwKSkgeworICAgICAgICAgICAgcHJpbnRVc2FnZSgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGJvb2xlYW4gd2FybmluZ1tdID0gbmV3IGJvb2xlYW5bMV07CisgICAgICAgIHdhcm5pbmdbMF0gPSBmYWxzZTsKKyAgICAgICAgRW51bWVyYXRpb24gZW51bSA9IG9wdGlvblRhYmxlLmtleXMoKTsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgCisgICAgICAgICAgICByZXN1bHREb2N1bWVudCA9IHBhcnNlKHNvdXJjZUZvbGRlcitGaWxlLnNlcGFyYXRvcisiUmVzdWx0WE1MLnhtbCIpOworICAgICAgICAgICAgCisJICAgICAgICBsb2NhbGVTdHIgID0gZ29sZEZpbGVOYW1lLnN1YnN0cmluZyhnb2xkRmlsZU5hbWUubGFzdEluZGV4T2YoRmlsZS5zZXBhcmF0b3JDaGFyKSsxLGdvbGRGaWxlTmFtZS5pbmRleE9mKCcuJykpOworCSAgICAgICAgbG9jYWxlID0gbmV3IExvY2FsZShsb2NhbGVTdHIuc3Vic3RyaW5nKDAsbG9jYWxlU3RyLmluZGV4T2YoJ18nKSksbG9jYWxlU3RyLnN1YnN0cmluZyhsb2NhbGVTdHIuaW5kZXhPZignXycpKzEsbG9jYWxlU3RyLmxlbmd0aCgpKSk7CisgICAgICAgICAgICBPdXRwdXRTdHJlYW1Xcml0ZXIgb3MxID0gbmV3IE91dHB1dFN0cmVhbVdyaXRlcihuZXcgRmlsZU91dHB1dFN0cmVhbShkZXN0Rm9sZGVyK0ZpbGUuc2VwYXJhdG9yK2xvY2FsZSsiLnhtbCIpLGVuY29kaW5nKTsKKwkgICAgICAgIE91dHB1dFN0cmVhbVdyaXRlciBvczIgPSBuZXcgT3V0cHV0U3RyZWFtV3JpdGVyKG5ldyBGaWxlT3V0cHV0U3RyZWFtKGRlc3RGb2xkZXIrRmlsZS5zZXBhcmF0b3IrbG9jYWxlKyIuaHRtbCIpLGVuY29kaW5nKTsKKwkgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvcig7ZW51bS5oYXNNb3JlRWxlbWVudHMoKTspeworICAgICAgICAgICAgICAgIFN0cmluZyBrZXkgPSAoU3RyaW5nKWVudW0ubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZmlsZU5hbWUgPSAoU3RyaW5nKSBvcHRpb25UYWJsZS5nZXQoa2V5KTsKKyAgICAgICAgICAgICAgICBjb21wYXJlKGdvbGRGaWxlTmFtZSxnb2xkS2V5LCBmaWxlTmFtZSxrZXksb3V0MSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9CisgICAgICAgICAgIAorCQorICAgICAgICAgICAgSXRlcmF0b3IgaXRlciA9ZG9lc05vdEV4aXN0Lml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZShpdGVyLmhhc05leHQoKSl7CisgICAgICAgICAgICAgICAgICBTdHJpbmcga2V5ID0gKFN0cmluZylpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgIE5vZGVMaXN0IGxpc3QgPSByZXN1bHREb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShrZXkpOworICAgICAgICAgICAgICAgICAgYWRkTm9kZVZhbHVlKGxpc3Qsa2V5LCJTLk4uQSIsbnVsbCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBub3RBdmFpbGFibGUuYWRkKCJzb2xhcmlzIik7CisgICAgICAgICAgICBub3RBdmFpbGFibGUuYWRkKCJhcHBsZSIpOworICAgICAgICAgICAgbm90QXZhaWxhYmxlLmFkZCgib3RoZXIiKTsKKyAgICAgICAgICAgIG5vdEF2YWlsYWJsZS5hZGQoIm9wZW5fb2ZmaWNlIik7CisgICAgICAgICAgICBpdGVyID1ub3RBdmFpbGFibGUuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHdoaWxlKGl0ZXIuaGFzTmV4dCgpKXsKKyAgICAgICAgICAgICAgICAgIFN0cmluZyBrZXkgPSAoU3RyaW5nKWl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgICAgTm9kZUxpc3QgbGlzdCA9IHJlc3VsdERvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKGtleSk7CisgICAgICAgICAgICAgICAgICBhZGROb2RlVmFsdWUobGlzdCxrZXksIlMuTi5BIixudWxsKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgUHJpbnRXcml0ZXIgd3JpdGVyMSA9IG5ldyBQcmludFdyaXRlcihvczEpOworICAgICAgICAgICAgUHJpbnRXcml0ZXIgd3JpdGVyMiA9IG5ldyBQcmludFdyaXRlcihvczIpOworICAgICAgICAgICAgcHJpbnQod3JpdGVyMSxyZXN1bHREb2N1bWVudCk7CisgICAgICAgICAgICBpZihvdXQxKXsKKyAgICAgICAgICAgICAgICBwcmludEhUTUxfMSh3cml0ZXIyKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIHByaW50SFRNTCh3cml0ZXIyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcHJpbnRVc2FnZSgpIHsKKyAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJVc2FnZTogWE1MQ29tcGFyYXRvciBbPG9wdGlvbj46PGdvbGQ+XSBmaWxlbmFtZTEgW29wdGlvbl0gZmlsZW5hbWUyIC4uLiBcbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiIFhNTENvbXBhcmF0b3IgWy1zdW5famRrOmdvbGRdICBmaWxlbmFtZSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBbLWlibV9qZGtdIGZpbGVuYW1lIFstd2luZG93c10gZmlsZW5hbWUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICIgWy1ocF91eF0gIGZpbGVuYW1lIFstc29sYXJpc10gZmlsZW5hbWUiICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiIFstaWJtX3Rvcl0gZmlsZW5hbWUgWy1hcHBsZV0gZmlsZW5hbWUiICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBbLWljdV0gZmlsZW5hbWUgWy1vdGhlcl0gZmlsZW5hbWUiICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgfQorICAgIHByaXZhdGUgU3RyaW5nIGdvbGRGaWxlTmFtZTsgCisgICAgcHJpdmF0ZSBTdHJpbmcgZ29sZEtleTsKKworICAgIHByaXZhdGUgc2hvcnQgaWRlbnRpZnlPcHRpb25zKFN0cmluZ1tdIG9wdGlvbnMpIHsKKyAgICAgICAgc2hvcnQgcmVzdWx0ID0gMDsKKyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBvcHRpb25zLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICBTdHJpbmcgb3B0aW9uID0gb3B0aW9uc1tqXTsKKyAgICAgICAgICAgIGJvb2xlYW4gaXNHb2xkID0gZmFsc2U7CisgICAgICAgICAgICBpZiAob3B0aW9uLnN0YXJ0c1dpdGgoIi0iKSkgeworICAgICAgICAgICAgICAgIGlmKG9wdGlvbi5pbmRleE9mKCI6Z29sZCIpPjApeworICAgICAgICAgICAgICAgICAgICBvcHRpb24gPSBvcHRpb24uc3Vic3RyaW5nKDAsb3B0aW9uLmluZGV4T2YoIjoiKSk7CisgICAgICAgICAgICAgICAgICAgIGlzR29sZCA9IHRydWU7ICAgIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBib29sZWFuIG9wdGlvblJlY29nbml6ZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBmb3IgKHNob3J0IGkgPSAwOyBpIDwgVVNFUl9PUFRJT05TLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmIChVU0VSX09QVElPTlNbaV1bMF0uZXF1YWxzKG9wdGlvbikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCB8PSAoc2hvcnQpKDEgPDwgaSk7CisgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25SZWNvZ25pemVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGk9PTkpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUZvbGRlciA9IG9wdGlvbnNbKytqXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlIGlmKGk9PTEwKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0Rm9sZGVyID0gb3B0aW9uc1srK2pdOworICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2UgaWYoaT09MTEpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dDE9dHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFpc0dvbGQpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25UYWJsZS5wdXQoVVNFUl9PUFRJT05TW2ldWzFdLG9wdGlvbnNbKytqXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvbGRGaWxlTmFtZSA9IG9wdGlvbnNbKytqXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ29sZEtleSAgICAgID0gVVNFUl9PUFRJT05TW2ldWzFdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghb3B0aW9uUmVjb2duaXplZCkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgfD0gT1BUX1VOS05PV047CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCAgIHByaW50SFRNTChQcmludFdyaXRlciB3cml0ZXIpeworICAgICAgICBOb2RlTGlzdCBsaXN0PSByZXN1bHREb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiZGlmZmVyZW5jZV9lbGVtZW50Iik7CisgICAgICAgIHdyaXRlci5wcmludGxuKCI8aHRtbD5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgIDxoZWFkPlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgIDxtZXRhIGh0dHAtZXF1aXY9XCJDb250ZW50LVR5cGVcIiBjb250ZW50PVwidGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04XCI+XG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgPHRpdGxlPiIrbG9jYWxlKyI8L3RpdGxlPlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgPC9oZWFkPlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgPGJvZHk+XG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgPHA+PGI+Iitsb2NhbGUrIjwvYj48L3A+XG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgPHRhYmxlIGJvcmRlcj1cIjFcIiBjZWxsc3BhY2luZz1cIjBcIj5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgPHRyPlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAgICAgPHRoPlBhcmVudE5vZGU8L3RoPlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAgICAgPHRoPk5hbWU8L3RoPlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAgICAgPHRoPklEPC90aD5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgICAgIDx0aD5JQ1UgMi4xPC90aD5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgICAgIDx0aD5JQk0gVG9yb250bzwvdGg+XG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICAgICA8dGg+V2luZG93cyAyMDAwPC90aD5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgICAgIDx0aD5TdW4gSkRLIDEuMzwvdGg+XG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICAgICA8dGg+SUJNIEpESyAxLjM8L3RoPlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAgICAgPHRoPlNvbGFyaXM8L3RoPlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAgICAgPHRoPkFwcGxlPC90aD5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgICAgIDx0aD5IUFVYIDExPC90aD5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgICAgIDx0aD5PcGVuIE9mZmljZTwvdGg+XG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICAgICA8dGg+T3RoZXI8L3RoPlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICA8L3RyPlxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgZm9yKGludCBpID0wOyBpPGxpc3QuZ2V0TGVuZ3RoKCk7aSsrKXsKKyAgICAgICAgICAgICBOb2RlIGRpZmZFbGVtID0gbGlzdC5pdGVtKGkpOworICAgICAgICAgICAgIHdyaXRlci5wcmludGxuKCIgICAgICAgICAgICA8dHI+XG4iKTsKKyAgICAgICAgICAgICBOYW1lZE5vZGVNYXAgYXR0cmIgPSBkaWZmRWxlbS5nZXRBdHRyaWJ1dGVzKCk7CisgICAgICAgICAgICAgaWYoYXR0cmIuaXRlbSgwKS5nZXROb2RlVmFsdWUoKS5lcXVhbHMoInRlc3QiKSkgY29udGludWU7CisgICAgICAgICAgICAgd3JpdGVyLnByaW50bG4oIiAgICAgICAgICAgICAgICA8dGQ+IiArIGF0dHJiLml0ZW0oMCkuZ2V0Tm9kZVZhbHVlKCkrIjwvdGQ+Iik7CisgICAgICAgICAgICAgd3JpdGVyLnByaW50bG4oIiAgICAgICAgICAgICAgICA8dGQ+IiArIGF0dHJiLml0ZW0oMSkuZ2V0Tm9kZVZhbHVlKCkrIjwvdGQ+Iik7CisgICAgICAgICAgICAgLy9hdHRyaWJ1dGUgMiBpcyBpZ25vcmVkCisgICAgICAgICAgICAgd3JpdGVyLnByaW50bG4oIiAgICAgICAgICAgICAgICA8dGQ+IiArIGF0dHJiLml0ZW0oMykuZ2V0Tm9kZVZhbHVlKCkrIjwvdGQ+Iik7CisgICAgICAgICAgICAgCisgICAgICAgICAgICAgTm9kZUxpc3QgY2hpbGRMaXN0ID0gZGlmZkVsZW0uZ2V0Q2hpbGROb2RlcygpOworICAgICAgICAgICAgIGZvcihpbnQgaj0wOyBqPGNoaWxkTGlzdC5nZXRMZW5ndGgoKTtqKyspeworICAgICAgICAgICAgICAgICBOb2RlIGN1cnJlbnQgPSBjaGlsZExpc3QuaXRlbShqKTsKKyAgICAgICAgICAgICAgICAgaWYoY3VycmVudCE9bnVsbCAmJiBjdXJyZW50LmdldE5vZGVUeXBlKCk9PU5vZGUuRUxFTUVOVF9OT0RFKXsKKyAgICAgICAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbihjdXJyZW50LmdldE5vZGVOYW1lKCkpOworICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YWwgPSBjdXJyZW50LmdldEZpcnN0Q2hpbGQoKS5nZXROb2RlVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICBpZih2YWw9PW51bGwgfHwgKHZhbD10cmltKHZhbCkpLmVxdWFscygiIikpIHZhbD0iJm5ic3A7IjsKKyAgICAgICAgICAgICAgICAgICAgICB3cml0ZXIucHJpbnRsbigiICAgICAgICAgICAgICAgIDx0ZD4iK3ZhbCsiPC90ZD4iKTsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0gICAgICAgCisKKyAgICAgICAgICAgICAgd3JpdGVyLnByaW50bG4oIiAgICAgICAgICAgIDwvdHI+XG4iKTsKKyAgICAgICAgfSAgIAorICAgICAgICB3cml0ZXIucHJpbnRsbiggIiAgICAgICAgPC90YWJsZT5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICA8L2JvZHk+XG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8L2h0bWw+Iik7CisgICAgICAgIHdyaXRlci5mbHVzaCgpOworICAgIH0KKyAgICBwcml2YXRlIHZvaWQgICBwcmludEhUTUxfMShQcmludFdyaXRlciB3cml0ZXIpeworICAgICAgICBOb2RlTGlzdCBsaXN0PSByZXN1bHREb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiZGlmZmVyZW5jZV9lbGVtZW50Iik7CisgICAgICAgIHdyaXRlci5wcmludGxuKCI8aHRtbD5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgIDxoZWFkPlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgIDxtZXRhIGh0dHAtZXF1aXY9XCJDb250ZW50LVR5cGVcIiBjb250ZW50PVwidGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04XCI+XG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgPHRpdGxlPiIrbG9jYWxlU3RyKyI8L3RpdGxlPlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgPC9oZWFkPlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgPGJvZHk+XG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgPHA+PGI+Iitsb2NhbGVTdHIrIigiK2xvY2FsZS5nZXREaXNwbGF5TGFuZ3VhZ2UoKSsiXyIrbG9jYWxlLmdldERpc3BsYXlDb3VudHJ5KCkrIik8L2I+PC9wPlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgIDx0YWJsZSBib3JkZXI9XCIxXCIgY2VsbHNwYWNpbmc9XCIwXCI+XG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgIDx0cj5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgICAgIDx0aD5QYXJlbnROb2RlPC90aD5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgICAgIDx0aD5OYW1lPC90aD5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgICAgIDx0aD5JRDwvdGg+XG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICAgICA8dGg+SUNVIDIuMTwvdGg+XG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICAgICA8dGg+SUJNIFRvcm9udG88L3RoPlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAgICAgPHRoPldpbmRvd3MgMjAwMDwvdGg+XG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICAgICA8dGg+U3VuIEpESyAxLjM8L3RoPlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAgICAgPHRoPklCTSBKREsgMS4zPC90aD5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgICAgIDx0aD5Tb2xhcmlzPC90aD5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgICAgIDx0aD5BcHBsZTwvdGg+XG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICAgICA8dGg+SFBVWCAxMTwvdGg+XG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICAgICA8dGg+T3BlbiBPZmZpY2U8L3RoPlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAgICAgPHRoPk90aGVyPC90aD5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgPC90cj5cbiIpOworICAgICAgICAKKyAgICAgICAgSGFzaHRhYmxlIGNvbG9ySGFzaCA9IG5ldyBIYXNodGFibGUoKTsKKyAgICAgICAgY29sb3JIYXNoLnB1dCgiaWN1IiwiI0QzRDNEMyIpOyAgICAgICAgCisgICAgICAgIGNvbG9ySGFzaC5wdXQoImlibV90b3JvbnRvIiwiI0FERDhFNiIpOworICAgICAgICBjb2xvckhhc2gucHV0KCJ3aW5kb3dzIiwiIzk4RkI5OCIpOworICAgICAgICBjb2xvckhhc2gucHV0KCJzdW5famRrIiwiI0IwQzRERSIpOworICAgICAgICBjb2xvckhhc2gucHV0KCJpYm1famRrIiwiI0ZBRkFEMiIpOworICAgICAgICBjb2xvckhhc2gucHV0KCJocF91eCIsIiNGRkU0QjUiKTsKKyAgICAgICAgY29sb3JIYXNoLnB1dCgiYXBwbGUiLCIjRjVGNURDIik7CisgICAgICAgIGNvbG9ySGFzaC5wdXQoInNvbGFyaXMiLCIjRTBGRkZGIik7CisgICAgICAgIGNvbG9ySGFzaC5wdXQoIm90aGVyIiwiI0UwRkZGRiIpOworICAgICAgICBib29sZWFuIGhhc0RhdGEgPWZhbHNlOyAgICAgICAgICAKKyAgICAgICAgZm9yKGludCBpID0wOyBpPGxpc3QuZ2V0TGVuZ3RoKCk7aSsrKXsKKyAgICAgICAgICAgICBOb2RlIGRpZmZFbGVtID0gbGlzdC5pdGVtKGkpOworICAgICAgICAgICAgIE5hbWVkTm9kZU1hcCBhdHRyYiA9IGRpZmZFbGVtLmdldEF0dHJpYnV0ZXMoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgIGlmKGF0dHJiLml0ZW0oMCkuZ2V0Tm9kZVZhbHVlKCkuZXF1YWxzKCJ0ZXN0IikgfHwgYXR0cmIuaXRlbSgwKS5nZXROb2RlVmFsdWUoKS5lcXVhbHMoImlkZW50aXR5IikpIGNvbnRpbnVlOworICAgICAgICAgICAgIAorICAgICAgICAgICAgIHdyaXRlci5wcmludGxuKCIgICAgICAgICAgICA8dHI+XG4iKTsKKyAgICAgICAgICAgICB3cml0ZXIucHJpbnRsbigiICAgICAgICAgICAgICAgIDx0ZD4iICsgYXR0cmIuaXRlbSgwKS5nZXROb2RlVmFsdWUoKSsiPC90ZD4iKTsKKyAgICAgICAgICAgICB3cml0ZXIucHJpbnRsbigiICAgICAgICAgICAgICAgIDx0ZD4iICsgYXR0cmIuaXRlbSgxKS5nZXROb2RlVmFsdWUoKSsiPC90ZD4iKTsKKyAgICAgICAgICAgICAvL2F0dHJpYnV0ZSAyIGlzIGlnbm9yZWQKKyAgICAgICAgICAgICB3cml0ZXIucHJpbnRsbigiICAgICAgICAgICAgICAgIDx0ZD4iICsgYXR0cmIuaXRlbSgzKS5nZXROb2RlVmFsdWUoKSsiPC90ZD4iKTsKKyAgICAgICAgICAgICAKKyAgICAgICAgICAgICBOb2RlTGlzdCBjaGlsZExpc3QgPSBkaWZmRWxlbS5nZXRDaGlsZE5vZGVzKCk7CisgICAgICAgICAgICAgZm9yKGludCBqPTA7IGo8Y2hpbGRMaXN0LmdldExlbmd0aCgpO2orKyl7CisgICAgICAgICAgICAgICAgIE5vZGUgY3VycmVudCA9IGNoaWxkTGlzdC5pdGVtKGopOworICAgICAgICAgICAgICAgICBpZihjdXJyZW50IT1udWxsICYmIGN1cnJlbnQuZ2V0Tm9kZVR5cGUoKT09Tm9kZS5FTEVNRU5UX05PREUpeworICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKGN1cnJlbnQuZ2V0Tm9kZU5hbWUoKSk7CisgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhbCA9IGN1cnJlbnQuZ2V0Rmlyc3RDaGlsZCgpLmdldE5vZGVWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgIGlmKHZhbD09bnVsbCB8fCAodmFsPXRyaW0odmFsKSkuZXF1YWxzKCIiKSkgdmFsPSJELk4uQSI7CisgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGNvbG9yPSIjRkZGRkZGIjsKKyAgICAgICAgICAgICAgICAgICAgICBpZighdmFsLmVxdWFscygiUy5OLkEiKSAmJiAhdmFsLmVxdWFscygiRC5OLkEiKSl7CisJICAgICAgICAgICAgICAgICAgICAgIGZvcihpbnQgaz0wOyBrPGNoaWxkTGlzdC5nZXRMZW5ndGgoKTtrKyspeworCSAgICAgICAgICAgICAgICAgICAgICAgICBOb2RlIG4gPSBjaGlsZExpc3QuaXRlbShrKTsKKwkgICAgICAgICAgICAgICAgICAgICAgICAgaWYobiE9bnVsbCAmJiBuLmdldE5vZGVUeXBlKCk9PU5vZGUuRUxFTUVOVF9OT0RFKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG5WYWwgPW4uZ2V0Rmlyc3RDaGlsZCgpLmdldE5vZGVWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLy1pYm1famRrIGM6XE5MVENcSUJNSkRLXFhNTFxjc19DWi54bWwgLXN1bl9qZGsgYzpcTkxUQ1xKYXZhXHhtbFxjc19DWi54bWwgLXdpbmRvd3MgYzpcTkxUQ1x3aW5kb3dzXHhtbFxjc19DWi54bWwgLWhwX3V4IGM6XE5MVENcaHBceG1sXGNzX0NaLnhtbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoICghblZhbC5lcXVhbHMoIlMuTi5BIikgJiYgIW5WYWwuZXF1YWxzKCJELk4uQSIpKSYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsLmVxdWFscyhuVmFsKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoYXR0cmIuaXRlbSgxKS5nZXROb2RlVmFsdWUoKS5lcXVhbHMoInBhdHRlcm4iKSkmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhcmVQYXR0ZXJucyh2YWwsblZhbCkpfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGF0dHJiLml0ZW0oMCkuZ2V0Tm9kZVZhbHVlKCkuZXF1YWxzKCJwYXR0ZXJucyIpKSYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGFyZVBhdHRlcm5zKHZhbCxuVmFsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApeyAKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzdHIgPSAoU3RyaW5nKWNvbG9ySGFzaC5nZXQobi5nZXROb2RlTmFtZSgpKTsKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHN0ciE9bnVsbCl7CisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9c3RyOworCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorCSAgICAgICAgICAgICAgICAgICAgICAgICB9CisJICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgTmFtZWROb2RlTWFwIGF0dExpc3QgPSBjdXJyZW50LmdldEF0dHJpYnV0ZXMoKTsKKyAgICAgICAgICAgICAgICAgICAgICBpZihhdHRMaXN0LmdldE5hbWVkSXRlbSgiY2FzZV9kaWZmIikuZ2V0Tm9kZVZhbHVlKCkuZXF1YWxzKCJmYWxzZSIpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlci5wcmludGxuKCIgICAgICAgICAgICAgICAgPHRkIGJnY29sb3I9Iitjb2xvcisiPiIrdmFsKyI8L3RkPiIpOworICAgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVyLnByaW50bG4oIiAgICAgICAgICAgICAgICA8dGQgYmdjb2xvcj0iK2NvbG9yKyI+IisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbCsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8Zm9udCBjb2xvcj0jQTUyQTJBPiAoY2FzZSBkaWZmZXJlbmNlIG9ubHkpPC9mb250PiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPC90ZD4iKTsKKyAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgaGFzRGF0YT10cnVlOworICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgfSAgICAgICAKKworICAgICAgICAgICAgICB3cml0ZXIucHJpbnRsbigiICAgICAgICAgICAgPC90cj5cbiIpOworICAgICAgICB9CisgIAorICAgICAgICB3cml0ZXIucHJpbnRsbiggIiAgICAgICAgPC90YWJsZT5cbiIpOworICAgICAgICAKKyAgICAgICAgaWYoIWhhc0RhdGEpeworICAgICAgICAgICAgd3JpdGVyLnByaW50bG4oICIgICAgICAgPHA+PGZvbnQgc2l6ZT0xNiBjb2xvcj0jRkYwMDAwPiBEYXRhIGV4aXN0cyBvbmx5IGluIElDVSA8L2ZvbnQ+PC9wPlxuIik7CisgICAgICAgIH0gCisgICAgICAgIHdyaXRlci5wcmludGxuKCIgICAgICAgIDxwPkNyZWF0ZWQgb246ICIgKyBjYWwuZ2V0VGltZSgpICsiPC9wPlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgIDwvYm9keT5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjwvaHRtbD4iKTsKKyAgICAgICAgd3JpdGVyLmZsdXNoKCk7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlIHR3byBmaWxlcyBieSBwYXJzaW5nIGludG8gRE9NcyBhbmQgY29tcGFyaW5nIHRyZWVzLgorICAgICAqIEBwYXJhbSBnb2xkRmlsZU5hbWUgZXhwZWN0ZWQgZmlsZQorICAgICAqIEBwYXJhbSB0ZXN0RmlsZU5hbWUgYWN0dWFsIGZpbGUKKyAgICAgKiBAcGFyYW0gcmVwb3J0ZXIgUHJpbnRXcml0ZXIgdG8gZHVtcCBzdGF0dXMgaW5mbyB0bworICAgICAqIEBwYXJhbSBhcnJheSBvZiB3YXJuaW5nIGZsYWdzIChmb3Igd2hpdGVzcGFjZSBkaWZmcywgSSB0aGluaz8pCisgICAgICogTkVFRFNET0MgQHBhcmFtIHdhcm5pbmcKKyAgICAgKiBAcGFyYW0gYXR0cmlidXRlcyB0byBhdHRlbXB0IHRvIHNldCBvbnRvIHBhcnNlcnMKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhleSBtYXRjaCwgZmFsc2Ugb3RoZXJ3aXNlCisgICAgICovCisgICAgcHJpdmF0ZSBEb2N1bWVudCBnb2xkRG9jPW51bGw7CisgICAgCisgICAgcHVibGljIGJvb2xlYW4gY29tcGFyZShTdHJpbmcgZ29sZEZpbGVOYW1lLCBTdHJpbmcgZ29sZEtleSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGVzdEZpbGVOYW1lLCBTdHJpbmcgdGVzdEtleSwgYm9vbGVhbiBtZXJnZURhdGEpCisgICAgeworICAgICAgICAKKyAgICAgICAgU3RyaW5nIHRlbXA9IGdvbGRGaWxlTmFtZTsKKyAgICAgICAgLy8gcGFyc2UgdGhlIGdvbGQgZG9jIG9ubHkgaWYgaXQgaXMgbnVsbAorICAgICAgICBpZihnb2xkRG9jPT1udWxsKXsKKyAgICAgICAgICAgIGdvbGREb2MgPSBwYXJzZShnb2xkRmlsZU5hbWUpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZigoZ29sZEtleS5pbmRleE9mKCJpY3UiKT49MCApIHx8IChnb2xkS2V5LmluZGV4T2YoImpkayIpPj0wKSl7CisgICAgICAgICAgICAgICAgLy8gT0sgd2UgaGF2ZSBhIHBvc2l4IHN0eWxlIGxvY2FsZSBkYXRhCisgICAgICAgICAgICAgICAgLy8gbWVyZ2UgYWxsIGRhdGEgaW4gaW5oZXJpdGVuY2UgdHJlZSBpbnRvIGdvbGREb2MKKyAgICAgICAgICAgICAgICBpbnQgaW5kZXggPSAtMTsKKyAgICAgICAgICAgICAgICB3aGlsZSgoaW5kZXggPSB0ZW1wLmluZGV4T2YoIl8iKSkgPjAgJiYgaW5kZXggPiBnb2xkRmlsZU5hbWUubGFzdEluZGV4T2YoIlxcIikpeworICAgICAgICAgICAgICAgICAgICBEb2N1bWVudCBwYXJlbnREb2MgPSBwYXJzZSgodGVtcCA9IHRlbXAuc3Vic3RyaW5nKDAsaW5kZXgpKyIueG1sIikpOworICAgICAgICAgICAgICAgICAgICBpZihwYXJlbnREb2MhPW51bGwpeworICAgICAgICAgICAgICAgICAgICAgICBtZXJnZUVsZW1lbnRzKGdvbGREb2MuZ2V0RG9jdW1lbnRFbGVtZW50KCkscGFyZW50RG9jLmdldERvY3VtZW50RWxlbWVudCgpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIHBhcnNlIHRoZSB0ZXN0IGRvYyBvbmx5IGlmIGdvbGQgZG9jIHdhcyBwYXJzZWQgT0sKKyAgICAgICAgRG9jdW1lbnQgdGVzdERvYyA9IChudWxsICE9IGdvbGREb2MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHBhcnNlKHRlc3RGaWxlTmFtZSkgOiBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGlmKCgodGVzdEtleS5pbmRleE9mKCJpY3UiKT49MCkgfHwgKHRlc3RLZXkuaW5kZXhPZigiamRrIik+PTApKSAmJiB0ZXN0RG9jIT1udWxsKXsKKyAgICAgICAgICAgIC8vIE9LIHdlIGhhdmUgYSBwb3NpeCBzdHlsZSBsb2NhbGUgZGF0YSBpbiBnb2xkRG9jCisgICAgICAgICAgICAvLyBtZXJnZSBhbGwgZGF0YSBpbiBpbmhlcml0ZW5jZSB0cmVlIGludG8gdGVzdERvYworICAgICAgICAgICAgdGVtcD10ZXN0RmlsZU5hbWU7CisgICAgICAgICAgICBpbnQgaW5kZXggPSAtMTsKKyAgICAgICAgICAgIHdoaWxlKChpbmRleCA9IHRlbXAuaW5kZXhPZigiXyIpKSA+MCAmJiBpbmRleCA+IHRlc3RGaWxlTmFtZS5sYXN0SW5kZXhPZigiXFwiKSl7CisgICAgICAgICAgICAgICAgICAgIERvY3VtZW50IHBhcmVudERvYyA9IHBhcnNlKCh0ZW1wID0gdGVtcC5zdWJzdHJpbmcoMCxpbmRleCkrIi54bWwiKSk7CisgICAgICAgICAgICAgICAgICAgIGlmKHBhcmVudERvYyE9bnVsbCl7CisgICAgICAgICAgICAgICAgICAgICAgIG1lcmdlRWxlbWVudHModGVzdERvYy5nZXREb2N1bWVudEVsZW1lbnQoKSxwYXJlbnREb2MuZ2V0RG9jdW1lbnRFbGVtZW50KCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKG51bGwgPT0gZ29sZERvYykKKyAgICAgICAgeworICAgICAgICAgICAgZG9lc05vdEV4aXN0LmFkZChnb2xkS2V5KTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChudWxsID09IHRlc3REb2MpCisgICAgICAgIHsKKyAgICAgICAgICAgIGRvZXNOb3RFeGlzdC5hZGQodGVzdEtleSk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYobWVyZ2VEYXRhKXsKKyAgICAgICAgICAgIHJldHVybiBleHRyYWN0TWVyZ2VEYXRhKGdvbGREb2MsZ29sZEtleSx0ZXN0RG9jLHRlc3RLZXkpOworICAgICAgICB9ZWxzZXsgICAKKyAgICAgICAgICAgIHJldHVybiBjb21wYXJlRWxlbWVudHNBbmREYXRhKGdvbGREb2MsZ29sZEtleSx0ZXN0RG9jLHRlc3RLZXkpOworICAgICAgICB9CisgICAgfQorICAgIGJvb2xlYW4gY2Fub25pY2FsICA9IGZhbHNlOworICAgIAorICAgIFN0cmluZyAgZW5jb2RpbmcgICA9ICJVVEYtOCI7IC8vIGRlZmF1bHQgZW5jb2RpbmcKKyAgICAKKyAgICAvKiogUmV0dXJucyBhIHNvcnRlZCBsaXN0IG9mIGF0dHJpYnV0ZXMuICovCisgICAgcHJvdGVjdGVkIEF0dHJbXSBzb3J0QXR0cmlidXRlcyhOYW1lZE5vZGVNYXAgYXR0cnMpIHsKKworICAgICAgICBpbnQgbGVuID0gKGF0dHJzICE9IG51bGwpID8gYXR0cnMuZ2V0TGVuZ3RoKCkgOiAwOworICAgICAgICBBdHRyIGFycmF5W10gPSBuZXcgQXR0cltsZW5dOworICAgICAgICBmb3IgKCBpbnQgaSA9IDA7IGkgPCBsZW47IGkrKyApIHsKKyAgICAgICAgICAgIGFycmF5W2ldID0gKEF0dHIpYXR0cnMuaXRlbShpKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKCBpbnQgaSA9IDA7IGkgPCBsZW4gLSAxOyBpKysgKSB7CisgICAgICAgICAgICBTdHJpbmcgbmFtZSAgPSBhcnJheVtpXS5nZXROb2RlTmFtZSgpOworICAgICAgICAgICAgaW50ICAgIGluZGV4ID0gaTsKKyAgICAgICAgICAgIGZvciAoIGludCBqID0gaSArIDE7IGogPCBsZW47IGorKyApIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgY3VyTmFtZSA9IGFycmF5W2pdLmdldE5vZGVOYW1lKCk7CisgICAgICAgICAgICAgICAgaWYgKCBjdXJOYW1lLmNvbXBhcmVUbyhuYW1lKSA8IDAgKSB7CisgICAgICAgICAgICAgICAgICAgIG5hbWUgID0gY3VyTmFtZTsKKyAgICAgICAgICAgICAgICAgICAgaW5kZXggPSBqOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICggaW5kZXggIT0gaSApIHsKKyAgICAgICAgICAgICAgICBBdHRyIHRlbXAgICAgPSBhcnJheVtpXTsKKyAgICAgICAgICAgICAgICBhcnJheVtpXSAgICAgPSBhcnJheVtpbmRleF07CisgICAgICAgICAgICAgICAgYXJyYXlbaW5kZXhdID0gdGVtcDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybihhcnJheSk7CisKKyAgICB9IC8vIHNvcnRBdHRyaWJ1dGVzKE5hbWVkTm9kZU1hcCk6QXR0cltdCisgICAgCisgICAgICAgIC8qKiBOb3JtYWxpemVzIHRoZSBnaXZlbiBzdHJpbmcuICovCisgICAgcHJvdGVjdGVkIFN0cmluZyBub3JtYWxpemUoU3RyaW5nIHMpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHN0ciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICBpbnQgbGVuID0gKHMgIT0gbnVsbCkgPyBzLmxlbmd0aCgpIDogMDsKKyAgICAgICAgZm9yICggaW50IGkgPSAwOyBpIDwgbGVuOyBpKysgKSB7CisgICAgICAgICAgICBjaGFyIGNoID0gcy5jaGFyQXQoaSk7CisgICAgICAgICAgICBzd2l0Y2ggKCBjaCApIHsKKyAgICAgICAgICAgIGNhc2UgJzwnOiB7CisgICAgICAgICAgICAgICAgICAgIHN0ci5hcHBlbmQoIiZsdDsiKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSAnPic6IHsKKyAgICAgICAgICAgICAgICAgICAgc3RyLmFwcGVuZCgiJmd0OyIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlICcmJzogeworICAgICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kKCImYW1wOyIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlICciJzogeworICAgICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kKCImcXVvdDsiKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSAnXCcnOiB7CisgICAgICAgICAgICAgICAgICAgIHN0ci5hcHBlbmQoIiZhcG9zOyIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlICdccic6CisgICAgICAgICAgICBjYXNlICdcbic6IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCBjYW5vbmljYWwgKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kKCImIyIpOworICAgICAgICAgICAgICAgICAgICAgICAgc3RyLmFwcGVuZChJbnRlZ2VyLnRvU3RyaW5nKGNoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kKCc7Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvLyBlbHNlLCBkZWZhdWx0IGFwcGVuZCBjaGFyCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgZGVmYXVsdDogeworICAgICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kKGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4oc3RyLnRvU3RyaW5nKCkpOworCisgICAgfSAvLyBub3JtYWxpemUoU3RyaW5nKTpTdHJpbmcKKworCisgICAgLyoqIFByaW50cyB0aGUgc3BlY2lmaWVkIG5vZGUsIHJlY3Vyc2l2ZWx5LiAqLworICAgIHB1YmxpYyB2b2lkIHByaW50KFByaW50V3JpdGVyIG91dCwgTm9kZSBub2RlKSB7CisKKyAgICAgICAgLy8gaXMgdGhlcmUgYW55dGhpbmcgdG8gZG8/CisgICAgICAgIGlmICggbm9kZSA9PSBudWxsICkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaW50IHR5cGUgPSBub2RlLmdldE5vZGVUeXBlKCk7CisgICAgICAgIAorICAgICAgICBzd2l0Y2ggKCB0eXBlICkgeworICAgICAgICAvLyBwcmludCBkb2N1bWVudAorICAgICAgICBjYXNlIE5vZGUuRE9DVU1FTlRfTk9ERTogeworICAgICAgICAgICAgICAgaWYgKCAhY2Fub25pY2FsICkgeworICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiPD94bWwgdmVyc2lvbj1cIjEuMFwiIGVuY29kaW5nPVwiIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jb2RpbmcgKyAiXCI/PiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvL3ByaW50KCgoRG9jdW1lbnQpbm9kZSkuZ2V0RG9jdW1lbnRFbGVtZW50KCkpOworCisgICAgICAgICAgICAgICAgTm9kZUxpc3QgY2hpbGRyZW4gPSBub2RlLmdldENoaWxkTm9kZXMoKTsKKyAgICAgICAgICAgICAgICBmb3IgKCBpbnQgaUNoaWxkID0gMDsgaUNoaWxkIDwgY2hpbGRyZW4uZ2V0TGVuZ3RoKCk7IGlDaGlsZCsrICkgeworICAgICAgICAgICAgICAgICAgICBwcmludChvdXQsY2hpbGRyZW4uaXRlbShpQ2hpbGQpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgb3V0LmZsdXNoKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIHByaW50IGVsZW1lbnQgd2l0aCBhdHRyaWJ1dGVzCisgICAgICAgIGNhc2UgTm9kZS5FTEVNRU5UX05PREU6IHsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnQoJzwnKTsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnQobm9kZS5nZXROb2RlTmFtZSgpKTsKKyAgICAgICAgICAgICAgICBBdHRyIGF0dHJzW10gPSBzb3J0QXR0cmlidXRlcyhub2RlLmdldEF0dHJpYnV0ZXMoKSk7CisgICAgICAgICAgICAgICAgZm9yICggaW50IGkgPSAwOyBpIDwgYXR0cnMubGVuZ3RoOyBpKysgKSB7CisgICAgICAgICAgICAgICAgICAgIEF0dHIgYXR0ciA9IGF0dHJzW2ldOworICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnQoJyAnKTsKKyAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50KGF0dHIuZ2V0Tm9kZU5hbWUoKSk7CisgICAgICAgICAgICAgICAgICAgIG91dC5wcmludCgiPVwiIik7CisgICAgICAgICAgICAgICAgICAgIG91dC5wcmludChub3JtYWxpemUoYXR0ci5nZXROb2RlVmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnQoJyInKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgb3V0LnByaW50KCc+Jyk7CisgICAgICAgICAgICAgICAgTm9kZUxpc3QgY2hpbGRyZW4gPSBub2RlLmdldENoaWxkTm9kZXMoKTsKKyAgICAgICAgICAgICAgICBpZiAoIGNoaWxkcmVuICE9IG51bGwgKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBsZW4gPSBjaGlsZHJlbi5nZXRMZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgZm9yICggaW50IGkgPSAwOyBpIDwgbGVuOyBpKysgKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludChvdXQsY2hpbGRyZW4uaXRlbShpKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGhhbmRsZSBlbnRpdHkgcmVmZXJlbmNlIG5vZGVzCisgICAgICAgIGNhc2UgTm9kZS5FTlRJVFlfUkVGRVJFTkNFX05PREU6IHsKKyAgICAgICAgICAgICAgICBpZiAoIGNhbm9uaWNhbCApIHsKKyAgICAgICAgICAgICAgICAgICAgTm9kZUxpc3QgY2hpbGRyZW4gPSBub2RlLmdldENoaWxkTm9kZXMoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCBjaGlsZHJlbiAhPSBudWxsICkgeworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbiA9IGNoaWxkcmVuLmdldExlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICAgICAgZm9yICggaW50IGkgPSAwOyBpIDwgbGVuOyBpKysgKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQob3V0LGNoaWxkcmVuLml0ZW0oaSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50KCcmJyk7CisgICAgICAgICAgICAgICAgICAgIG91dC5wcmludChub2RlLmdldE5vZGVOYW1lKCkpOworICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnQoJzsnKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIHByaW50IGNkYXRhIHNlY3Rpb25zCisgICAgICAgIGNhc2UgTm9kZS5DREFUQV9TRUNUSU9OX05PREU6IHsKKyAgICAgICAgICAgICAgICBpZiAoIGNhbm9uaWNhbCApIHsKKyAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50KG5vcm1hbGl6ZShub2RlLmdldE5vZGVWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50KCI8IVtDREFUQVsiKTsKKyAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50KG5vZGUuZ2V0Tm9kZVZhbHVlKCkpOworICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnQoIl1dPiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gcHJpbnQgdGV4dAorICAgICAgICBjYXNlIE5vZGUuVEVYVF9OT0RFOiB7CisgICAgICAgICAgICAgICAgb3V0LnByaW50KG5vcm1hbGl6ZShub2RlLmdldE5vZGVWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIHByaW50IHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24KKyAgICAgICAgY2FzZSBOb2RlLlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERTogeworICAgICAgICAgICAgICAgIG91dC5wcmludCgiPD8iKTsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnQobm9kZS5nZXROb2RlTmFtZSgpKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZGF0YSA9IG5vZGUuZ2V0Tm9kZVZhbHVlKCk7CisgICAgICAgICAgICAgICAgaWYgKCBkYXRhICE9IG51bGwgJiYgZGF0YS5sZW5ndGgoKSA+IDAgKSB7CisgICAgICAgICAgICAgICAgICAgIG91dC5wcmludCgnICcpOworICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnQoZGF0YSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI/PiIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKCB0eXBlID09IE5vZGUuRUxFTUVOVF9OT0RFICkgeworICAgICAgICAgICAgb3V0LnByaW50KCI8LyIpOworICAgICAgICAgICAgb3V0LnByaW50KG5vZGUuZ2V0Tm9kZU5hbWUoKSk7CisgICAgICAgICAgICBvdXQucHJpbnQoJz4nKTsKKyAgICAgICAgfQorCisgICAgICAgIG91dC5mbHVzaCgpOworICAgIH0gLy8gcHJpbnQoTm9kZSkKKyAgICAKKyAgICAvLyBSZXBvcnRlciBmb3JtYXQ6CisgICAgLy8gUkVBU09OX0NPTlNUQU5UO2dvbGQgdmFsO3Rlc3QgdmFsO3JlYXNvbiBkZXNjcmlwdGlvbgorICAgIHByaXZhdGUgdm9pZCBhZGROb2RlVmFsdWUoTm9kZUxpc3QgbGlzdCxTdHJpbmcgbm9kZU5hbWUsU3RyaW5nIG5vZGVWYWx1ZSxTdHJpbmcgY2FzZURpZmYpeworICAgICAgICBmb3IoaW50IGk9MDtpPGxpc3QuZ2V0TGVuZ3RoKCk7aSsrKXsKKyAgICAgICAgICAgIE5vZGUgbm9kZSA9IGxpc3QuaXRlbShpKTsKKyAgICAgICAgICAgIGlmKG5vZGVOYW1lLmVxdWFscyhub2RlLmdldE5vZGVOYW1lKCkpKXsgICAKKyAgICAgICAgICAgICAgICBub2RlLmdldEZpcnN0Q2hpbGQoKS5zZXROb2RlVmFsdWUobm9kZVZhbHVlKTsKKyAgICAgICAgICAgICAgICBpZihjYXNlRGlmZiE9bnVsbCl7CisJICAgICAgICAgICAgICAgIE5hbWVkTm9kZU1hcCBhdHRyID0gbm9kZS5nZXRBdHRyaWJ1dGVzKCk7CisJICAgICAgICAgICAgICAgIE5vZGUgY2FzZV9kaWZmID0gYXR0ci5nZXROYW1lZEl0ZW0oImNhc2VfZGlmZiIpOworCSAgICAgICAgICAgICAgICBjYXNlX2RpZmYuc2V0Tm9kZVZhbHVlKGNhc2VEaWZmKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGFkZEVsZW1lbnQoU3RyaW5nIHBhcmVudE5vZGUsIFN0cmluZyBjaGlsZE5vZGUsIFN0cmluZyBhdHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBub2RlTmFtZTEsICBTdHJpbmcgdmFsdWUxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBub2RlTmFtZTIsIFN0cmluZyB2YWx1ZTIpeworICAgICAgICAgICAgU3RyaW5nIGlkIDsKKyAgICAgICAgICAgIFN0cmluZyBjYXNlRGlmZj1udWxsOworICAgICAgICAgICAgaWYoTm9ybWFsaXplci5jb21wYXJlKHZhbHVlMSx2YWx1ZTIsMCkhPTApeworICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJWYWx1ZTE6ICIrdmFsdWUxKyAiICBWYWx1ZTI6ICIrIHZhbHVlMik7CisJICAgICAgICAgICAgaWYoTm9ybWFsaXplci5jb21wYXJlKHZhbHVlMSx2YWx1ZTIsTm9ybWFsaXplci5DT01QQVJFX0lHTk9SRV9DQVNFKT09MCl7CisJICAgICAgICAgICAgICAgIGNhc2VEaWZmPSJ0cnVlIjsKKwkgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihhdHRyIT1udWxsKXsKKyAgICAgICAgICAgICAgICBpZCA9IHBhcmVudE5vZGUrIl8iK2NoaWxkTm9kZSsiXyIrYXR0cjsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGlkID0gcGFyZW50Tm9kZSsiXyIrY2hpbGROb2RlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgRWxlbWVudCBlbGVtZW50ID0gcmVzdWx0RG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOworICAgICAgICAgICAgTm9kZUxpc3Qgbm9kZXM9bnVsbDsKKyAgICAgICAgICAgIE5hbWVkTm9kZU1hcCBhdHRyaWJNYXA9bnVsbDsKKyAgICAgICAgICAgIE5vZGUgcm9vdE5vZGUgPXJlc3VsdERvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJkaWZmZXJlbmNlX3htbCIpLml0ZW0oMCk7CisgICAgICAgICAgICBpZihlbGVtZW50IT1udWxsKXsKKyAgICAgICAgICAgICAgICBub2RlcyA9IGVsZW1lbnQuZ2V0Q2hpbGROb2RlcygpOworICAgICAgICAgICAgICAgIGF0dHJpYk1hcD1lbGVtZW50LmdldEF0dHJpYnV0ZXMoKTsgICAgICAgICAgICAgIAorICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICBOb2RlTGlzdCBub2RlTGlzdD1yZXN1bHREb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiZGlmZmVyZW5jZV9lbGVtZW50Iik7CisgICAgICAgICAgICAgICAvLyB0aGUgZmlyc3Qgbm9kZSBpcyBhbHdheXMgdGhlIGVtcHR5IG9uZSBpbiB0aGUgcmVzdWx0IGRvY3VtZW50CisgICAgICAgICAgICAgICAvLyBzbyBnZXQgdGhhdCBub2RlIGFuZCBjbG9uZSBpdAorICAgICAgICAgICAgICAgTm9kZSBub2RlID0gbm9kZUxpc3QuaXRlbSgwKS5jbG9uZU5vZGUodHJ1ZSk7CisgICAgICAgICAgICAgICBhdHRyaWJNYXA9bm9kZS5nZXRBdHRyaWJ1dGVzKCk7CisgICAgICAgICAgICAgICBub2Rlcz0gbm9kZS5nZXRDaGlsZE5vZGVzKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhZGROb2RlVmFsdWUobm9kZXMsbm9kZU5hbWUxLHZhbHVlMSwobm9kZU5hbWUxLmVxdWFscyhnb2xkS2V5KSk/bnVsbDpjYXNlRGlmZik7CisgICAgICAgICAgICBhZGROb2RlVmFsdWUobm9kZXMsbm9kZU5hbWUyLHZhbHVlMiwobm9kZU5hbWUyLmVxdWFscyhnb2xkS2V5KSk/bnVsbDpjYXNlRGlmZik7CisgICAgICAgICAgICBOb2RlIHBhcmVudF9ub2RlID0gYXR0cmliTWFwLmdldE5hbWVkSXRlbSgicGFyZW50X25vZGUiKTsKKyAgICAgICAgICAgIE5vZGUgbm9kZV9uYW1lICAgPSBhdHRyaWJNYXAuZ2V0TmFtZWRJdGVtKCJub2RlX25hbWUiKTsKKyAgICAgICAgICAgIE5vZGUgaWRfYXR0cmliICAgPSBhdHRyaWJNYXAuZ2V0TmFtZWRJdGVtKCJpZCIpOworICAgICAgICAgICAgTm9kZSBpbmRleCAgICAgICA9IGF0dHJpYk1hcC5nZXROYW1lZEl0ZW0oImluZGV4Iik7CisgICAgICAgICAgICBwYXJlbnRfbm9kZS5zZXROb2RlVmFsdWUocGFyZW50Tm9kZSk7CisgICAgICAgICAgICBub2RlX25hbWUuc2V0Tm9kZVZhbHVlKGNoaWxkTm9kZSk7CisgICAgICAgICAgICBpZF9hdHRyaWIuc2V0Tm9kZVZhbHVlKGlkKTsKKyAgICAgICAgICAgIGluZGV4LnNldE5vZGVWYWx1ZSgoYXR0cj09bnVsbCkgPyAiJm5ic3A7IiA6IGF0dHIpOworICAgICAgICAgICAgcm9vdE5vZGUuYXBwZW5kQ2hpbGQobm9kZXMuaXRlbSgwKS5nZXRQYXJlbnROb2RlKCkpOyAgICAgICAKKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGFkZERpZmZlcmVuY2UoU3RyaW5nIHBhcmVudE5vZGUsIFN0cmluZyBjaGlsZE5vZGUsIFN0cmluZyBhdHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBub2RlTmFtZTEsICBTdHJpbmcgdmFsdWUxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBub2RlTmFtZTIsIFN0cmluZyB2YWx1ZTIpeworICAgICAgICAgICAgU3RyaW5nIGlkIDsKKyAgICAgICAgICAgIC8vIERlY29tcG9zZSB0aGUgdmFsdWVzIGFuZCBmaW5kIG91dCBpZiB0aGV5IGFyZSBlcXVhbAorICAgICAgICAgICAgaWYoTm9ybWFsaXplci5jb21wYXJlKHZhbHVlMSx2YWx1ZTIsMCk9PTApeworICAgICAgICAgICAgICAgIC8vIHRoZSB2YWx1ZXMgYXJlIGVxdWFsIGp1c3QgcmV0dXJuCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3RyaW5nIGNhc2VEaWZmPSBudWxsOworICAgICAgICAgICAgaWYoTm9ybWFsaXplci5jb21wYXJlKHZhbHVlMSx2YWx1ZTIsTm9ybWFsaXplci5DT01QQVJFX0lHTk9SRV9DQVNFKT09MCl7CisgICAgICAgICAgICAgICAgY2FzZURpZmY9InRydWUiOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoYXR0ciE9bnVsbCl7CisgICAgICAgICAgICAgICAgaWQgPSBwYXJlbnROb2RlKyJfIitjaGlsZE5vZGUrIl8iK2F0dHI7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBpZCA9IHBhcmVudE5vZGUrIl8iK2NoaWxkTm9kZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIEVsZW1lbnQgZWxlbWVudCA9IHJlc3VsdERvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKKyAgICAgICAgICAgIE5vZGVMaXN0IG5vZGVzPW51bGw7CisgICAgICAgICAgICBOYW1lZE5vZGVNYXAgYXR0cmliTWFwPW51bGw7CisgICAgICAgICAgICBOb2RlIHJvb3ROb2RlID1yZXN1bHREb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiZGlmZmVyZW5jZV94bWwiKS5pdGVtKDApOworICAgICAgICAgICAgaWYoZWxlbWVudCE9bnVsbCl7CisgICAgICAgICAgICAgICAgbm9kZXMgPSBlbGVtZW50LmdldENoaWxkTm9kZXMoKTsKKyAgICAgICAgICAgICAgICBhdHRyaWJNYXA9ZWxlbWVudC5nZXRBdHRyaWJ1dGVzKCk7ICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgTm9kZUxpc3Qgbm9kZUxpc3Q9cmVzdWx0RG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImRpZmZlcmVuY2VfZWxlbWVudCIpOworICAgICAgICAgICAgICAgLy8gdGhlIGZpcnN0IG5vZGUgaXMgYWx3YXlzIHRoZSBlbXB0eSBvbmUgaW4gdGhlIHJlc3VsdCBkb2N1bWVudAorICAgICAgICAgICAgICAgLy8gc28gZ2V0IHRoYXQgbm9kZSBhbmQgY2xvbmUgaXQKKyAgICAgICAgICAgICAgIE5vZGUgbm9kZSA9IG5vZGVMaXN0Lml0ZW0oMCkuY2xvbmVOb2RlKHRydWUpOworICAgICAgICAgICAgICAgYXR0cmliTWFwPW5vZGUuZ2V0QXR0cmlidXRlcygpOworICAgICAgICAgICAgICAgbm9kZXM9IG5vZGUuZ2V0Q2hpbGROb2RlcygpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYWRkTm9kZVZhbHVlKG5vZGVzLG5vZGVOYW1lMSx2YWx1ZTEsY2FzZURpZmYpOworICAgICAgICAgICAgYWRkTm9kZVZhbHVlKG5vZGVzLG5vZGVOYW1lMix2YWx1ZTIsY2FzZURpZmYpOworICAgICAgICAgICAgTm9kZSBwYXJlbnRfbm9kZSA9IGF0dHJpYk1hcC5nZXROYW1lZEl0ZW0oInBhcmVudF9ub2RlIik7CisgICAgICAgICAgICBOb2RlIG5vZGVfbmFtZSAgID0gYXR0cmliTWFwLmdldE5hbWVkSXRlbSgibm9kZV9uYW1lIik7CisgICAgICAgICAgICBOb2RlIGlkX2F0dHJpYiAgID0gYXR0cmliTWFwLmdldE5hbWVkSXRlbSgiaWQiKTsKKyAgICAgICAgICAgIE5vZGUgaW5kZXggICAgICAgPSBhdHRyaWJNYXAuZ2V0TmFtZWRJdGVtKCJpbmRleCIpOworICAgICAgICAgICAgcGFyZW50X25vZGUuc2V0Tm9kZVZhbHVlKHBhcmVudE5vZGUpOworICAgICAgICAgICAgbm9kZV9uYW1lLnNldE5vZGVWYWx1ZShjaGlsZE5vZGUpOworICAgICAgICAgICAgaWRfYXR0cmliLnNldE5vZGVWYWx1ZShpZCk7CisgICAgICAgICAgICBpbmRleC5zZXROb2RlVmFsdWUoKGF0dHI9PW51bGwpID8gIiZuYnNwOyIgOiBhdHRyKTsKKyAgICAgICAgICAgIHJvb3ROb2RlLmFwcGVuZENoaWxkKG5vZGVzLml0ZW0oMCkuZ2V0UGFyZW50Tm9kZSgpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgCisgICAgICAgICAgICAKKyAgICB9CisgICAgCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8KKyAgICAvLyAgIE1lcmdlIGVsZW1lbnQgbm9kZXMuICBkZXN0IGFuZCBzb3VyY2UgYXJlIEVsZW1lbnQgbm9kZXMgb2YgdGhlIHNhbWUgdHlwZS4KKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICBNb3ZlIGFueSBjaGlsZHJlbiBFbGVtZW50cyB0aGF0IGV4aXN0IGluIHRoZSBzb3VyY2UgYnV0IG5vdCBpbiB0aGUKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbiBpbnRvIHRoZSBkZXN0aW5hdGlvbgorICAgIC8vCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgcHJpdmF0ZSB2b2lkICBtZXJnZUVsZW1lbnRzKE5vZGUgZGVzdCwgTm9kZSBzb3VyY2UpIHsKKyAgICAgICAgTm9kZSAgIGNoaWxkT2ZTb3VyY2U7CisgICAgICAgIE5vZGUgICBjaGlsZE9mRGVzdDsKKyAgICAgICAgCisgICAgICAgIERvY3VtZW50IGRlc3REb2MgPSBkZXN0LmdldE93bmVyRG9jdW1lbnQoKTsKKyAgICAgICAgTm9kZSBzcGFjZXMgPSBkZXN0RG9jLmNyZWF0ZVRleHROb2RlKCJcbiAgICAgICAiKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoY2hpbGRPZlNvdXJjZSA9IHNvdXJjZS5nZXRGaXJzdENoaWxkKCk7IGNoaWxkT2ZTb3VyY2UgIT0gbnVsbDsgY2hpbGRPZlNvdXJjZSA9IGNoaWxkT2ZTb3VyY2UuZ2V0TmV4dFNpYmxpbmcoKSkgeworICAgICAgICAgICAgaWYgKGNoaWxkT2ZTb3VyY2UuZ2V0Tm9kZVR5cGUoKSAhPSBOb2RlLkVMRU1FTlRfTk9ERSkgeworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoY2hpbGRPZlNvdXJjZS5nZXROb2RlTmFtZSgpLmVxdWFscygiY29sbGF0aW9uIikgCisgICAgICAgICAgICAgICAgfHwgY2hpbGRPZlNvdXJjZS5nZXROb2RlTmFtZSgpLmVxdWFscygidGltZVpvbmVOYW1lcyIpCisgICAgICAgICAgICAgICAgKXsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJvb2xlYW4gZGlkTWVyZ2UgPSBmYWxzZTsKKyAgICAgICAgICAgIGZvciAoY2hpbGRPZkRlc3QgPSBkZXN0LmdldEZpcnN0Q2hpbGQoKTsgY2hpbGRPZkRlc3QgIT0gbnVsbDsgY2hpbGRPZkRlc3QgPSBjaGlsZE9mRGVzdC5nZXROZXh0U2libGluZygpKSB7CisgICAgICAgICAgICAgICAgaWYgKGNoaWxkT2ZEZXN0LmdldE5vZGVUeXBlKCkgPT0gTm9kZS5FTEVNRU5UX05PREUgICYmCisgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkT2ZEZXN0LmdldE5vZGVOYW1lKCkuZXF1YWxzKGNoaWxkT2ZTb3VyY2UuZ2V0Tm9kZU5hbWUoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGRlc3RpbmF0aW9uIGRvY3VtZW50IGFscmVhZHkgaGFzIGFuIGVsZW1lbnQgb2YgdGhpcyB0eXBlIGF0IHRoaXMgbGV2ZWwuCisgICAgICAgICAgICAgICAgICAgIC8vICAgUmVjdXJzZSB0byBwaWNrIHVwIGFueSBleHRyYSBjaGlsZHJlbiB0aGF0IHRoZSBzb3VyY2Ugbm9kZSBtYXkgaGF2ZS4KKyAgICAgICAgICAgICAgICAgICAgbWVyZ2VFbGVtZW50cyhjaGlsZE9mRGVzdCwgY2hpbGRPZlNvdXJjZSk7CisgICAgICAgICAgICAgICAgICAgIGRpZE1lcmdlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgaWYgKGRpZE1lcmdlID09IGZhbHNlKSB7CisgICAgICAgICAgICAgICAgLy8gZGVzdGluYXRpb24gZG9jdW1lbnQgaGFkIG5vIGNvcnJlc3BvbmRpbmcgbm9kZSB0byB0aGUgY3VycmVudCBjaGlsZE9mU291cmNlLiAgQWRkIGl0LgorICAgICAgICAgICAgICAgIE5vZGUgaW1wb3J0ZWROb2RlID0gZGVzdERvYy5pbXBvcnROb2RlKGNoaWxkT2ZTb3VyY2UsIHRydWUpOworICAgICAgICAgICAgICAgIGRlc3QuYXBwZW5kQ2hpbGQoc3BhY2VzKTsKKyAgICAgICAgICAgICAgICBkZXN0LmFwcGVuZENoaWxkKGltcG9ydGVkTm9kZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy9kZXN0LmFwcGVuZENoaWxkKHNwYWNlcyk7CisgICAgICAgIAorICAgIH0KKyAgICAKKyAgICBkb3VibGUgYXJnczEgID0gMTAwMDAwMDAwMDAuMDA7CisgICAgZG91YmxlIGFyZ3MyICA9IC0xMDAwMDAwMDAwMC4wMDsKKyAgICAKKyAgICBEZWNpbWFsRm9ybWF0IGZtdCA9IG5ldyBEZWNpbWFsRm9ybWF0KCk7IAorICAgIAorICAgIHByaXZhdGUgYm9vbGVhbiBjb21wYXJlUGF0dGVybnMoU3RyaW5nIHBhdDEsU3RyaW5nIHBhdDIpeworICAgICAgICBmbXQuYXBwbHlQYXR0ZXJuKHBhdDEpOworICAgICAgICBTdHJpbmcgczEgPSBmbXQuZm9ybWF0KGFyZ3MxKTsKKyAgICAgICAgU3RyaW5nIHMzID0gZm10LmZvcm1hdChhcmdzMik7CisgICAgICAgIGZtdC5hcHBseVBhdHRlcm4ocGF0Mik7CisgICAgICAgIFN0cmluZyBzMiA9IGZtdC5mb3JtYXQoYXJnczEpOworICAgICAgICBTdHJpbmcgczQgPSBmbXQuZm9ybWF0KGFyZ3MyKTsKKyAgICAgICAgaWYoczEuZXF1YWxzKHMyKSAmJiBzMy5lcXVhbHMoczQpKXsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcHJpdmF0ZSBib29sZWFuIGNvbXBhcmVFbGVtZW50c0FuZERhdGEoTm9kZSBnb2xkTm9kZSxTdHJpbmcgZ29sZEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEb2N1bWVudCB0ZXN0RG9jLFN0cmluZyB0ZXN0S2V5KXsKKyAgICAKKyAgICAgICAgTm9kZSBjaGlsZE9mU291cmNlOworCisgICAgICAgIGZvcihjaGlsZE9mU291cmNlID0gZ29sZE5vZGUuZ2V0Rmlyc3RDaGlsZCgpOyBjaGlsZE9mU291cmNlICE9IG51bGw7IGNoaWxkT2ZTb3VyY2UgPSBjaGlsZE9mU291cmNlLmdldE5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgICAgIGlmIChjaGlsZE9mU291cmNlLmdldE5vZGVUeXBlKCkgIT0gTm9kZS5FTEVNRU5UX05PREUpIHsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGNoaWxkT2ZTb3VyY2UuZ2V0Tm9kZU5hbWUoKS5lcXVhbHMoImNvbGxhdGlvbiIpIAorICAgICAgICAgICAgICAgIHx8IGNoaWxkT2ZTb3VyY2UuZ2V0Tm9kZU5hbWUoKS5lcXVhbHMoInRpbWVab25lTmFtZXMiKQorICAgICAgICAgICAgICAgIHx8IGNoaWxkT2ZTb3VyY2UuZ2V0Tm9kZU5hbWUoKS5lcXVhbHMoInZlcnNpb25pbmciKSl7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBOYW1lZE5vZGVNYXAgYXR0ciA9IGNoaWxkT2ZTb3VyY2UuZ2V0QXR0cmlidXRlcygpOyAgICAgICAKKyAgICAgICAgICAgIE5vZGVMaXN0IGRlc3RMaXN0ID0gdGVzdERvYy5nZXRFbGVtZW50c0J5VGFnTmFtZShjaGlsZE9mU291cmNlLmdldE5vZGVOYW1lKCkpOworICAgICAgICAgICAgTm9kZSBzb3VyY2VJRCA9IGF0dHIuZ2V0TmFtZWRJdGVtKCJpZCIpOworICAgICAgICAgICAKKyAgICAKKyAgICAgICAgICAgIGZvcihpbnQgaSA9MCA7IGk8ZGVzdExpc3QuZ2V0TGVuZ3RoKCk7IGkrKyl7CisgICAgICAgICAgICAgICAgTm9kZSBkZXN0Tm9kZSA9ZGVzdExpc3QuaXRlbShpKTsKKyAgICAgICAgICAgICAgICBOYW1lZE5vZGVNYXAgZGVzdEF0dHIgPSBkZXN0Tm9kZS5nZXRBdHRyaWJ1dGVzKCk7CisgICAgICAgICAgICAgICAgLyogZ2V0IHRoZSBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIG5vZGVzIHdpdGggYXR0cmlidXRlIGlkICovCisgICAgICAgICAgICAgICAgTm9kZSBkZXN0SUQgPSBkZXN0QXR0ci5nZXROYW1lZEl0ZW0oImlkIik7CisgICAgICAgICAgICAgICAgaWYoZGVzdElEIT1udWxsICYmIHNvdXJjZUlEIT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHNvdXJjZVZhbCA9c291cmNlSUQuZ2V0Tm9kZVZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZXN0VmFsID0gZGVzdElELmdldE5vZGVWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYoc291cmNlVmFsLmVxdWFscyhkZXN0VmFsKSl7CisgICAgICAgICAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbihzb3VyY2VWYWwpOworICAgICAgICAgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oZGVzdFZhbCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihkZXN0Tm9kZS5oYXNDaGlsZE5vZGVzKCkgJiYgY2hpbGRPZlNvdXJjZS5oYXNDaGlsZE5vZGVzKCkpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGRlc3ROb2RlLmdldFBhcmVudE5vZGUoKS5nZXROb2RlTmFtZSgpLmVxdWFscyhjaGlsZE9mU291cmNlLmdldFBhcmVudE5vZGUoKS5nZXROb2RlTmFtZSgpKSl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZXN0Tm9kZVZhbCA9IHRyaW0oZGVzdE5vZGUuZ2V0Rmlyc3RDaGlsZCgpLmdldE5vZGVWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHNvdXJjZU5vZGVWYWwgPSB0cmltKGNoaWxkT2ZTb3VyY2UuZ2V0Rmlyc3RDaGlsZCgpLmdldE5vZGVWYWx1ZSgpKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbihjaGlsZE9mU291cmNlLmdldEZpcnN0Q2hpbGQoKS5nZXROb2RlTmFtZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oZGVzdE5vZGUuZ2V0Rmlyc3RDaGlsZCgpLmdldE5vZGVOYW1lKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZighZGVzdE5vZGVWYWwuZXF1YWxzKHNvdXJjZU5vZGVWYWwpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gd3JpdGUgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHBhcmVudE5vZGVOYW1lID0gdHJpbShjaGlsZE9mU291cmNlLmdldFBhcmVudE5vZGUoKS5nZXROb2RlTmFtZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBjaGlsZE5vZGVOYW1lICA9IHRyaW0oY2hpbGRPZlNvdXJjZS5nZXROb2RlTmFtZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNoaWxkTm9kZU5hbWUuZXF1YWxzKCJwYXR0ZXJuIikpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNvbXBhcmVQYXR0ZXJucyhzb3VyY2VOb2RlVmFsLGRlc3ROb2RlVmFsKSl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYod3JpdGUpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZERpZmZlcmVuY2UocGFyZW50Tm9kZU5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZE5vZGVOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFZhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0Tm9kZVZhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvbGRLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VOb2RlVmFsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBpZihkZXN0Tm9kZS5nZXROb2RlTmFtZSgpLmVxdWFscyhjaGlsZE9mU291cmNlLmdldE5vZGVOYW1lKCkpJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3ROb2RlLmdldFBhcmVudE5vZGUoKS5nZXROb2RlTmFtZSgpLmVxdWFscyhjaGlsZE9mU291cmNlLmdldFBhcmVudE5vZGUoKS5nZXROb2RlTmFtZSgpKQorICAgICAgICAgICAgICAgICAgICAgICApeworICAgICAgICAgICAgICAgICAgICAgICAgaWYoZGVzdE5vZGUuaGFzQ2hpbGROb2RlcygpICYmIGNoaWxkT2ZTb3VyY2UuaGFzQ2hpbGROb2RlcygpKXsKKyAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZGVzdE5vZGVWYWwgPSB0cmltKGRlc3ROb2RlLmdldEZpcnN0Q2hpbGQoKS5nZXROb2RlVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHNvdXJjZU5vZGVWYWwgPSB0cmltKGNoaWxkT2ZTb3VyY2UuZ2V0Rmlyc3RDaGlsZCgpLmdldE5vZGVWYWx1ZSgpKTsKKyAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgYXR0SUQgPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFkZXN0Tm9kZVZhbC5lcXVhbHMoc291cmNlTm9kZVZhbCkpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHdyaXRlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHBhcmVudE5vZGVOYW1lID0gY2hpbGRPZlNvdXJjZS5nZXRQYXJlbnROb2RlKCkuZ2V0Tm9kZU5hbWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGNoaWxkTm9kZU5hbWUgID0gY2hpbGRPZlNvdXJjZS5nZXROb2RlTmFtZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihjaGlsZE5vZGVOYW1lLmVxdWFscygicGF0dGVybiIpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihjb21wYXJlUGF0dGVybnMoc291cmNlTm9kZVZhbCxkZXN0Tm9kZVZhbCkpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih3cml0ZSl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGREaWZmZXJlbmNlKHBhcmVudE5vZGVOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZE5vZGVOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRJRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdE5vZGVWYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvbGRLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZU5vZGVWYWwpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgCisgICAgICAgICAgICBjb21wYXJlRWxlbWVudHNBbmREYXRhKGNoaWxkT2ZTb3VyY2UsZ29sZEtleSx0ZXN0RG9jLHRlc3RLZXkpOworICAgICAgICB9CisgICAgICAgcmV0dXJuIHRydWU7CisgICAgfSAgICAKKyAgICBwcml2YXRlIFN0cmluZyB0cmltKFN0cmluZyBzb3VyY2UpeworICAgICAgICBjaGFyW10gc3JjID0gc291cmNlLnRvQ2hhckFycmF5KCk7CisgICAgICAgIGNoYXJbXSBkZXN0ID0gbmV3IGNoYXJbc3JjLmxlbmd0aF07CisKKyAgICAgICAgaW50IHN0YXJ0PTA7CisgICAgICAgIHdoaWxlKHN0YXJ0PChzcmMubGVuZ3RoKSAmJiAoVUNoYXJhY3Rlci5pc1doaXRlc3BhY2Uoc3JjW3N0YXJ0XSl8fCBzcmNbc3RhcnRdPT0weEEwKSl7c3RhcnQrKzt9CisgICAgICAgIGludCBzdG9wPXNyYy5sZW5ndGgtMTsKKyAgICAgICAgd2hpbGUoc3RvcD4wICYmIChVQ2hhcmFjdGVyLmlzV2hpdGVzcGFjZShzcmNbc3RvcF0pfHwoc3JjW3N0b3BdPT0weEEwKSkpe3N0b3AtLTt9CisgICAgICAgIGlmKHN0b3AhPS0xICYmIHN0YXJ0IT1zcmMubGVuZ3RoKXsKKwkgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoc3JjLHN0YXJ0LGRlc3QsMCwoc3RvcC1zdGFydCkrMSk7CisJICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhkZXN0LDAsKHN0b3Atc3RhcnQpKzEpOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAgIAorICAgIH0KKyAgICBwcml2YXRlIGJvb2xlYW4gZXh0cmFjdE1lcmdlRGF0YShOb2RlIGdvbGROb2RlLFN0cmluZyBnb2xkS2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERvY3VtZW50IHRlc3REb2MsU3RyaW5nIHRlc3RLZXkpeworICAgIAorICAgICAgICBOb2RlIGNoaWxkT2ZTb3VyY2U7CisKKyAgICAgICAgZm9yKGNoaWxkT2ZTb3VyY2UgPSBnb2xkTm9kZS5nZXRGaXJzdENoaWxkKCk7IGNoaWxkT2ZTb3VyY2UgIT0gbnVsbDsgY2hpbGRPZlNvdXJjZSA9IGNoaWxkT2ZTb3VyY2UuZ2V0TmV4dFNpYmxpbmcoKSkgeworICAgICAgICAgICAgaWYgKGNoaWxkT2ZTb3VyY2UuZ2V0Tm9kZVR5cGUoKSAhPSBOb2RlLkVMRU1FTlRfTk9ERSkgeworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoY2hpbGRPZlNvdXJjZS5nZXROb2RlTmFtZSgpLmVxdWFscygiY29sbGF0aW9uIikgCisgICAgICAgICAgICAgICAgfHwgY2hpbGRPZlNvdXJjZS5nZXROb2RlTmFtZSgpLmVxdWFscygidGltZVpvbmVOYW1lcyIpCisgICAgICAgICAgICAgICAgfHwgY2hpbGRPZlNvdXJjZS5nZXROb2RlTmFtZSgpLmVxdWFscygidmVyc2lvbmluZyIpKXsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIE5hbWVkTm9kZU1hcCBhdHRyID0gY2hpbGRPZlNvdXJjZS5nZXRBdHRyaWJ1dGVzKCk7ICAgICAgIAorICAgICAgICAgICAgTm9kZUxpc3QgZGVzdExpc3QgPSB0ZXN0RG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKGNoaWxkT2ZTb3VyY2UuZ2V0Tm9kZU5hbWUoKSk7CisgICAgICAgICAgICBOb2RlIHNvdXJjZUlEID0gYXR0ci5nZXROYW1lZEl0ZW0oImlkIik7CisgICAgCisgICAgICAgICAgICBmb3IoaW50IGkgPTAgOyBpPGRlc3RMaXN0LmdldExlbmd0aCgpOyBpKyspeworICAgICAgICAgICAgICAgIE5vZGUgZGVzdE5vZGUgPWRlc3RMaXN0Lml0ZW0oaSk7CisgICAgICAgICAgICAgICAgTmFtZWROb2RlTWFwIGRlc3RBdHRyID0gZGVzdE5vZGUuZ2V0QXR0cmlidXRlcygpOworICAgICAgICAgICAgICAgIC8qIGdldCB0aGUgc291cmNlIGFuZCBkZXN0aW5hdGlvbiBub2RlcyB3aXRoIGF0dHJpYnV0ZSBpZCAqLworICAgICAgICAgICAgICAgIE5vZGUgZGVzdElEID0gZGVzdEF0dHIuZ2V0TmFtZWRJdGVtKCJpZCIpOworICAgICAgICAgICAgICAgIGlmKGRlc3RJRCE9bnVsbCAmJiBzb3VyY2VJRCE9bnVsbCl7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzb3VyY2VJRFZhbCA9c291cmNlSUQuZ2V0Tm9kZVZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZXN0SURWYWwgPSBkZXN0SUQuZ2V0Tm9kZVZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZihzb3VyY2VJRFZhbC5lcXVhbHMoZGVzdElEVmFsKSl7CisgICAgICAgICAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbihzb3VyY2VWYWwpOworICAgICAgICAgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oZGVzdFZhbCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihkZXN0Tm9kZS5oYXNDaGlsZE5vZGVzKCkgJiYgY2hpbGRPZlNvdXJjZS5oYXNDaGlsZE5vZGVzKCkpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGRlc3ROb2RlLmdldFBhcmVudE5vZGUoKS5nZXROb2RlTmFtZSgpLmVxdWFscyhjaGlsZE9mU291cmNlLmdldFBhcmVudE5vZGUoKS5nZXROb2RlTmFtZSgpKSl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZXN0Tm9kZVZhbCA9IHRyaW0oZGVzdE5vZGUuZ2V0Rmlyc3RDaGlsZCgpLmdldE5vZGVWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHNvdXJjZU5vZGVWYWwgPSB0cmltKGNoaWxkT2ZTb3VyY2UuZ2V0Rmlyc3RDaGlsZCgpLmdldE5vZGVWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHBhcmVudE5vZGVOYW1lID0gdHJpbShjaGlsZE9mU291cmNlLmdldFBhcmVudE5vZGUoKS5nZXROb2RlTmFtZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGNoaWxkTm9kZU5hbWUgID0gdHJpbShjaGlsZE9mU291cmNlLmdldE5vZGVOYW1lKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihzb3VyY2VOb2RlVmFsLmxlbmd0aCgpIT0wKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZEVsZW1lbnQocGFyZW50Tm9kZU5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZE5vZGVOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdElEVmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3ROb2RlVmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ29sZEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZU5vZGVWYWwpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKGNoaWxkT2ZTb3VyY2UuZ2V0Rmlyc3RDaGlsZCgpLmdldE5vZGVOYW1lKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbihkZXN0Tm9kZS5nZXRGaXJzdENoaWxkKCkuZ2V0Tm9kZU5hbWUoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIGlmKGRlc3ROb2RlLmdldE5vZGVOYW1lKCkuZXF1YWxzKGNoaWxkT2ZTb3VyY2UuZ2V0Tm9kZU5hbWUoKSkmJgorICAgICAgICAgICAgICAgICAgICAgICAgZGVzdE5vZGUuZ2V0UGFyZW50Tm9kZSgpLmdldE5vZGVOYW1lKCkuZXF1YWxzKGNoaWxkT2ZTb3VyY2UuZ2V0UGFyZW50Tm9kZSgpLmdldE5vZGVOYW1lKCkpCisgICAgICAgICAgICAgICAgICAgICAgICl7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihkZXN0Tm9kZS5oYXNDaGlsZE5vZGVzKCkgJiYgY2hpbGRPZlNvdXJjZS5oYXNDaGlsZE5vZGVzKCkpeworICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZXN0Tm9kZVZhbCA9IHRyaW0oZGVzdE5vZGUuZ2V0Rmlyc3RDaGlsZCgpLmdldE5vZGVWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgc291cmNlTm9kZVZhbCA9IHRyaW0oY2hpbGRPZlNvdXJjZS5nZXRGaXJzdENoaWxkKCkuZ2V0Tm9kZVZhbHVlKCkpOworICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBwYXJlbnROb2RlTmFtZSA9IHRyaW0oY2hpbGRPZlNvdXJjZS5nZXRQYXJlbnROb2RlKCkuZ2V0Tm9kZU5hbWUoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGNoaWxkTm9kZU5hbWUgID0gdHJpbShjaGlsZE9mU291cmNlLmdldE5vZGVOYW1lKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHNvdXJjZU5vZGVWYWwubGVuZ3RoKCkhPTApeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRFbGVtZW50KHBhcmVudE5vZGVOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZE5vZGVOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0S2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0Tm9kZVZhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ29sZEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlTm9kZVZhbCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgCisgICAgICAgICAgICBleHRyYWN0TWVyZ2VEYXRhKGNoaWxkT2ZTb3VyY2UsZ29sZEtleSx0ZXN0RG9jLHRlc3RLZXkpOworICAgICAgICB9CisgICAgICAgcmV0dXJuIHRydWU7CisgICAgfSAKKworICAgIC8qKgorICAgICAqIFV0aWxpdHkgbWV0aG9kIHRvIHRyYW5zbGF0ZSBhIFN0cmluZyBmaWxlbmFtZSB0byBVUkwuICAKKyAgICAgKgorICAgICAqIE5vdGU6IFRoaXMgbWV0aG9kIGlzIG5vdCBuZWNlc3NhcmlseSBwcm92ZW4gdG8gZ2V0IHRoZSAKKyAgICAgKiBjb3JyZWN0IFVSTCBmb3IgZXZlcnkgcG9zc2libGUga2luZCBvZiBmaWxlbmFtZTsgaXQgc2hvdWxkIAorICAgICAqIGJlIGltcHJvdmVkLiAgSXQgaGFuZGxlcyB0aGUgbW9zdCBjb21tb24gY2FzZXMgdGhhdCB3ZSd2ZSAKKyAgICAgKiBlbmNvdW50ZXJlZCB3aGVuIHJ1bm5pbmcgQ29uZm9ybWFuY2UgdGVzdHMgb24gWGFsYW4uCisgICAgICogQWxzbyBub3RlLCB0aGlzIG1ldGhvZCBkb2VzIG5vdCBoYW5kbGUgb3RoZXIgbm9uLWZpbGU6CisgICAgICogZmxhdm9ycyBvZiBVUkxzIGF0IGFsbC4KKyAgICAgKgorICAgICAqIElmIHRoZSBuYW1lIGlzIG51bGwsIHJldHVybiBudWxsLgorICAgICAqIElmIHRoZSBuYW1lIHN0YXJ0cyB3aXRoIGEgY29tbW9uIFVSSSBzY2hlbWUgKG5hbWVseSB0aGUgb25lcyAKKyAgICAgKiBmb3VuZCBpbiB0aGUgZXhhbXBsZXMgb2YgUkZDMjM5NiksIHRoZW4gc2ltcGx5IHJldHVybiB0aGUgCisgICAgICogbmFtZSBhcy1pcyAodGhlIGFzc3VtcHRpb24gaXMgdGhhdCBpdCdzIGFscmVhZHkgYSBVUkwpCisgICAgICogT3RoZXJ3aXNlIHdlIGF0dGVtcHQgKGNoZWFwbHkpIHRvIGNvbnZlcnQgdG8gYSBmaWxlOi8vLyBVUkwuCisgICAgICogCisgICAgICogQHBhcmFtIFN0cmluZyBsb2NhbCBwYXRoXGZpbGVuYW1lIG9mIGEgZmlsZQorICAgICAqIEByZXR1cm4gYSBmaWxlOi8vLyBVUkwsIHRoZSBzYW1lIHN0cmluZyBpZiBpdCBhcHBlYXJzIHRvIAorICAgICAqIGFscmVhZHkgYmUgYSBVUkwsIG9yIG51bGwgaWYgZXJyb3IKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBmaWxlbmFtZVRvVVJMKFN0cmluZyBmaWxlbmFtZSkKKyAgICB7CisgICAgICAgIC8vIG51bGwgYmVnZXRzIG51bGwgLSBzb21ldGhpbmcgbGlrZSB0aGUgY29tbXV0YXRpdmUgcHJvcGVydHkKKyAgICAgICAgaWYgKG51bGwgPT0gZmlsZW5hbWUpCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKworICAgICAgICAvLyBEb24ndCB0cmFuc2xhdGUgYSBzdHJpbmcgdGhhdCBhbHJlYWR5IGxvb2tzIGxpa2UgYSBVUkwKKyAgICAgICAgaWYgKGZpbGVuYW1lLnN0YXJ0c1dpdGgoImZpbGU6IikKKyAgICAgICAgICAgIHx8IGZpbGVuYW1lLnN0YXJ0c1dpdGgoImh0dHA6IikKKyAgICAgICAgICAgIHx8IGZpbGVuYW1lLnN0YXJ0c1dpdGgoImZ0cDoiKQorICAgICAgICAgICAgfHwgZmlsZW5hbWUuc3RhcnRzV2l0aCgiZ29waGVyOiIpCisgICAgICAgICAgICB8fCBmaWxlbmFtZS5zdGFydHNXaXRoKCJtYWlsdG86IikKKyAgICAgICAgICAgIHx8IGZpbGVuYW1lLnN0YXJ0c1dpdGgoIm5ld3M6IikKKyAgICAgICAgICAgIHx8IGZpbGVuYW1lLnN0YXJ0c1dpdGgoInRlbG5ldDoiKQorICAgICAgICAgICApCisgICAgICAgICAgICByZXR1cm4gZmlsZW5hbWU7CisKKyAgICAgICAgRmlsZSBmID0gbmV3IEZpbGUoZmlsZW5hbWUpOworICAgICAgICBTdHJpbmcgdG1wID0gbnVsbDsKKyAgICAgICAgdHJ5CisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIFRoaXMgbm9ybWFsbHkgZ2l2ZXMgYSBiZXR0ZXIgcGF0aAorICAgICAgICAgICAgdG1wID0gZi5nZXRDYW5vbmljYWxQYXRoKCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKElPRXhjZXB0aW9uIGlvZSkKKyAgICAgICAgeworICAgICAgICAgICAgLy8gQnV0IHRoaXMgY2FuIGJlIHVzZWQgYXMgYSBiYWNrdXAsIGZvciBjYXNlcyAKKyAgICAgICAgICAgIC8vICB3aGVyZSB0aGUgZmlsZSBkb2VzIG5vdCBleGlzdCwgZXRjLgorICAgICAgICAgICAgdG1wID0gZi5nZXRBYnNvbHV0ZVBhdGgoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFVSTHMgbXVzdCBleHBsaWNpdGx5IHVzZSBvbmx5IGZvcndhcmQgc2xhc2hlcworICAgICAgICBpZiAoRmlsZS5zZXBhcmF0b3JDaGFyID09ICdcXCcpIHsKKyAgICAgICAgICAgIHRtcCA9IHRtcC5yZXBsYWNlKCdcXCcsICcvJyk7CisgICAgICAgIH0KKyAgICAgICAgLy8gTm90ZSB0aGUgcHJlc3VtcHRpb24gdGhhdCBpdCdzIGEgZmlsZSByZWZlcmVuY2UKKyAgICAgICAgLy8gRW5zdXJlIHdlIGhhdmUgdGhlIGNvcnJlY3QgbnVtYmVyIG9mIHNsYXNoZXMgYXQgdGhlIAorICAgICAgICAvLyAgc3RhcnQ6IHdlIGFsd2F5cyB3YW50IDMgLy8vIGlmIGl0J3MgYWJzb2x1dGUKKyAgICAgICAgLy8gICh3aGljaCB3ZSBzaG91bGQgaGF2ZSBmb3JjZWQgYWJvdmUpCisgICAgICAgIGlmICh0bXAuc3RhcnRzV2l0aCgiLyIpKQorICAgICAgICAgICAgcmV0dXJuICJmaWxlOi8vIiArIHRtcDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuICJmaWxlOi8vLyIgKyB0bXA7CisKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFNpbXBsZSB3b3JrZXIgbWV0aG9kIHRvIHBhcnNlIGZpbGVuYW1lIHRvIGEgRG9jdW1lbnQuICAKKyAgICAgKgorICAgICAqIEF0dGVtcHRzIFhNTCBwYXJzZSwgdGhlbiBIVE1MIHBhcnNlICh3aGVuIHBhcnNlciBhdmFpbGFibGUpLCAKKyAgICAgKiB0aGVuIGp1c3QgcGFyc2VzIGFzIHRleHQgYW5kIHN0aWNrcyBpbnRvIGEgdGV4dCBub2RlLgorICAgICAqCisgICAgICogQHBhcmFtIGZpbGVuYW1lIHRvIHBhcnNlIGFzIGEgbG9jYWwgcGF0aAorICAgICAqIEBwYXJhbSBhdHRyaWJ1dGVzIG5hbWU9dmFsdWUgcGFpcnMgdG8gc2V0IG9uIHRoZSAKKyAgICAgKiBEb2N1bWVudEJ1aWxkZXJGYWN0b3J5IHRoYXQgd2UgdXNlIHRvIHBhcnNlCisgICAgICoKKyAgICAgKiBAcmV0dXJuIERvY3VtZW50IG9iamVjdCB3aXRoIGNvbnRlbnRzIG9mIHRoZSBmaWxlOyAKKyAgICAgKiBvdGhlcndpc2UgdGhyb3dzIGFuIHVuY2hlY2tlZCBSdW50aW1lRXhjZXB0aW9uIGlmIHRoZXJlIAorICAgICAqIGlzIGFueSBmYXRhbCBwcm9ibGVtCisgICAgICovCisgICAgRG9jdW1lbnQgcGFyc2UoU3RyaW5nIGZpbGVuYW1lKQorICAgIHsKKyAgICAgICAgLy8gRm9yY2UgZmlsZXJlZnMgdG8gYmUgVVJJJ3MgaWYgbmVlZGVkOiBub3RlIHRoaXMgaXMgaW5kZXBlbmRlbnQgb2YgYW55IG90aGVyIGZpbGVzCisgICAgICAgIFN0cmluZyBkb2NVUkkgPSBmaWxlbmFtZVRvVVJMKGZpbGVuYW1lKTsKKyAgICAgICAgcmV0dXJuIHBhcnNlKG5ldyBJbnB1dFNvdXJjZShkb2NVUkkpLGZpbGVuYW1lKTsKKyAgICB9CisgICAgCisgICAgRG9jdW1lbnQgcGFyc2UoSW5wdXRTb3VyY2UgZG9jU3JjLCBTdHJpbmcgZmlsZW5hbWUpeworICAgICAgICAKKyAgICAgICAgRG9jdW1lbnRCdWlsZGVyRmFjdG9yeSBkZmFjdG9yeSA9IERvY3VtZW50QnVpbGRlckZhY3RvcnkubmV3SW5zdGFuY2UoKTsKKyAgICAgICAgLy8gQWx3YXlzIHNldCBuYW1lc3BhY2VzIG9uCisgICAgICAgIGRmYWN0b3J5LnNldE5hbWVzcGFjZUF3YXJlKHRydWUpOworICAgICAgICAvLyBTZXQgb3RoZXIgYXR0cmlidXRlcyBoZXJlIGFzIG5lZWRlZAorICAgICAgICAvL2FwcGx5QXR0cmlidXRlcyhkZmFjdG9yeSwgYXR0cmlidXRlcyk7CisgICAgICAgIAorICAgICAgICAvLyBMb2NhbCBjbGFzczogY2hlYXAgbm9uLXByaW50aW5nIEVycm9ySGFuZGxlcgorICAgICAgICAvLyBUaGlzIGlzIHVzZWQgdG8gc3VwcHJlc3MgdmFsaWRhdGlvbiB3YXJuaW5ncworICAgICAgICBFcnJvckhhbmRsZXIgbnVsbEhhbmRsZXIgPSBuZXcgRXJyb3JIYW5kbGVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgd2FybmluZyhTQVhQYXJzZUV4Y2VwdGlvbiBlKSB0aHJvd3MgU0FYRXhjZXB0aW9uIHt9CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBlcnJvcihTQVhQYXJzZUV4Y2VwdGlvbiBlKSB0aHJvd3MgU0FYRXhjZXB0aW9uIHt9CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBmYXRhbEVycm9yKFNBWFBhcnNlRXhjZXB0aW9uIGUpIHRocm93cyBTQVhFeGNlcHRpb24gCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAgICBEb2N1bWVudCBkb2MgPSBudWxsOworICAgICAgICB0cnkKKyAgICAgICAgeworICAgICAgICAgICAgLy8gRmlyc3QsIGF0dGVtcHQgdG8gcGFyc2UgYXMgWE1MIChwcmVmZXJyZWQpLi4uCisgICAgICAgICAgICBEb2N1bWVudEJ1aWxkZXIgZG9jQnVpbGRlciA9IGRmYWN0b3J5Lm5ld0RvY3VtZW50QnVpbGRlcigpOworICAgICAgICAgICAgZG9jQnVpbGRlci5zZXRFcnJvckhhbmRsZXIobnVsbEhhbmRsZXIpOworICAgICAgICAgICAgZG9jID0gZG9jQnVpbGRlci5wYXJzZShkb2NTcmMpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChUaHJvd2FibGUgc2UpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIC4uLiBpZiB3ZSBjb3VsZG4ndCBwYXJzZSBhcyBYTUwsIGF0dGVtcHQgcGFyc2UgYXMgSFRNTC4uLgorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFUlJPUiA6IiArIHNlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgdHJ5CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gQHRvZG8gbmVlZCB0byBmaW5kIGFuIEhUTUwgdG8gRE9NIHBhcnNlciB3ZSBjYW4gdXNlISEhCisgICAgICAgICAgICAgICAgLy8gZG9jID0gc29tZUhUTUxQYXJzZXIucGFyc2UobmV3IElucHV0U291cmNlKGZpbGVuYW1lKSk7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIlhNTENvbXBhcmF0b3Igbm8gSFRNTCBwYXJzZXIhIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYoZmlsZW5hbWUhPW51bGwpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAvLyAuLi4gaWYgd2UgY2FuJ3QgcGFyc2UgYXMgSFRNTCwgdGhlbiBqdXN0IHBhcnNlIHRoZSB0ZXh0CisgICAgICAgICAgICAgICAgICAgIHRyeQorICAgICAgICAgICAgICAgICAgICB7CisgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBQYXJzZSBhcyB0ZXh0LCBsaW5lIGJ5IGxpbmUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgU2luY2Ugd2UgYWxyZWFkeSBrbm93IGl0IHNob3VsZCBiZSB0ZXh0LCB0aGlzIHNob3VsZCAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgd29yayBiZXR0ZXIgdGhhbiBwYXJzaW5nIGJ5IGJ5dGVzLgorICAgICAgICAgICAgICAgICAgICAgICAgRmlsZVJlYWRlciBmciA9IG5ldyBGaWxlUmVhZGVyKGZpbGVuYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGJyID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKGZyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKDs7KQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0bXAgPSBici5yZWFkTGluZSgpOworICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gbnVsbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHRtcCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgiXG4iKTsgIC8vIFB1dCBpbiB0aGUgbmV3bGluZXMgYXMgd2VsbAorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgRG9jdW1lbnRCdWlsZGVyIGRvY0J1aWxkZXIgPSBkZmFjdG9yeS5uZXdEb2N1bWVudEJ1aWxkZXIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvYyA9IGRvY0J1aWxkZXIubmV3RG9jdW1lbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEVsZW1lbnQgb3V0RWxlbSA9IGRvYy5jcmVhdGVFbGVtZW50KCJvdXQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFRleHQgdGV4dE5vZGUgPSBkb2MuY3JlYXRlVGV4dE5vZGUoYnVmZmVyLnRvU3RyaW5nKCkpOworICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm90ZTogd2lsbCB0aGlzIGFsd2F5cyBiZSBhIHZhbGlkIG5vZGU/ICBJZiB3ZSdyZSBwYXJzaW5nIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgaW4gYXMgdGV4dCwgd2lsbCB0aGVyZSBldmVyIGJlIGNhc2VzIHdoZXJlIHRoZSBkaWZmIHRoYXQncyAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgIGRvbmUgbGF0ZXIgb24gd2lsbCBmYWlsIGJlY3Vhc2Ugc29tZSByZWFsbHkgZ2FyYmFnZS1saWtlIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgdGV4dCBoYXMgYmVlbiBwdXQgaW50byBhIG5vZGU/CisgICAgICAgICAgICAgICAgICAgICAgICBvdXRFbGVtLmFwcGVuZENoaWxkKHRleHROb2RlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChvdXRFbGVtKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjYXRjaCAoVGhyb3dhYmxlIHRocm93YWJsZSkKKyAgICAgICAgICAgICAgICAgICAgeworCisgICAgICAgICAgICAgICAgICAgICAgICAvL3Rocm93YWJsZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZG9jOworICAgIH0gIC8vIGVuZCBvZiBwYXJzZSgpCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9CT0NVLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9CT0NVLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjcyOWNiNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0JPQ1UuamF2YQpAQCAtMCwwICsxLDM4MiBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL0JPQ1UuamF2YSx2ICQgCisqICREYXRlOiAyMDAyLzA3LzEyIDIxOjU5OjIxICQgCisqICRSZXZpc2lvbjogMS4xICQKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvcjsKKworLyoqCisgKiA8cD5CaW5hcnkgT3JkZXJlZCBDb21wcmVzc2lvbiBmb3IgVW5pY29kZTwvcD4KKyAqIAorICogPHA+VXNlcnMgYXJlIHN0cm9uZ2x5IGVuY291cmFnZWQgdG8gcmVhZCB0aGUgSUNVIHBhcGVyIG9uIAorICogPGEgaHJlZj1odHRwOi8vb3NzLnNvZnR3YXJlLmlibS5jb20vZG9jcy9wYXBlcnMvYmluYXJ5X29yZGVyZWRfY29tcHJlc3Npb25fZm9yX3VuaWNvZGUuaHRtbD4KKyAqIEJPQ1U8L2E+IGJlZm9yZSBhdHRlbXB0aW5nIHRvIHVzZSB0aGlzIGNsYXNzLjwvcD4KKyAqIAorICogPHA+Qk9DVSBpcyB1c2VkIHRvIGNvbXByZXNzIHVuaWNvZGUgdGV4dCBpbnRvIGEgc3RyZWFtIG9mIHVuc2lnbmVkCisgKiBieXRlcy4gIEZvciBtYW55IGtpbmRzIG9mIHRleHQgdGhlIGNvbXByZXNzaW9uIGNvbXBhcmVzIGZhdm9yYWJseQorICogdG8gVVRGLTgsIGFuZCBmb3Igc29tZSBraW5kcyBvZiB0ZXh0IChzdWNoIGFzIENKSykgaXQgZG9lcyBiZXR0ZXIuCisgKiBUaGUgcmVzdWx0aW5nIGJ5dGVzIHdpbGwgY29tcGFyZSBpbiB0aGUgc2FtZSBvcmRlciBhcyB0aGUgb3JpZ2luYWwKKyAqIGNvZGUgcG9pbnRzLiAgVGhlIGJ5dGUgc3RyZWFtIGRvZXMgbm90IGNvbnRhaW4gdGhlIHZhbHVlcyAwLCAxLCBvcgorICogMi48L3A+CisgKiAKKyAqIDxwPk9uZSBleGFtcGxlIG9mIGEgdXNlIG9mIEJPQ1UgaXMgaW4ge0BsaW5rIAorICogQ29sbGF0b3IjZ2V0Q29sbGF0aW9uS2V5KFN0cmluZyl9IGZvciBhIFJ1bGVCYXNlZENvbGxhdG9yIG9iamVjdCB3aXRoIAorICogY29sbGF0aW9uIHN0cmVuZ3RoIElERU5USUNBTC4gVGhlIHJlc3VsdCBDb2xsYXRpb25LZXkgd2lsbCBjb25zaXN0IG9mIHRoZSAKKyAqIGNvbGxhdGlvbiBvcmRlciBvZiB0aGUgc291cmNlIHN0cmluZyBmb2xsb3dlZCBieSB0aGUgQk9DVSByZXN1bHQgb2YgdGhlIAorICogc291cmNlIHN0cmluZy4gCisgKiA8L3A+IAorICoKKyAqIDxwPlVubGlrZSBhIFVURiBlbmNvZGluZywgQk9DVS1jb21wcmVzc2VkIHRleHQgaXMgbm90IHN1aXRhYmxlIGZvcgorICogcmFuZG9tIGFjY2Vzcy48L3A+CisgKiAKKyAqIDxwPk1ldGhvZDogU2xvcGUgRGV0ZWN0aW9uPGJyPiBSZW1lbWJlciB0aGUgcHJldmlvdXMgY29kZSBwb2ludAorICogKGluaXRpYWwgMCkuICBGb3IgZWFjaCBjb2RlIHBvaW50IGluIHRoZSBzdHJpbmcsIGVuY29kZSB0aGUKKyAqIGRpZmZlcmVuY2Ugd2l0aCB0aGUgcHJldmlvdXMgb25lLiAgU2ltaWxhciB0byBhIFVURiwgdGhlIGxlbmd0aCBvZgorICogdGhlIGJ5dGUgc2VxdWVuY2UgaXMgZW5jb2RlZCBpbiB0aGUgbGVhZCBieXRlcy4gIFVubGlrZSBhIFVURiwgdGhlCisgKiB0cmFpbCBieXRlIHZhbHVlcyBtYXkgb3ZlcmxhcCB3aXRoIGxlYWQvc2luZ2xlIGJ5dGUgdmFsdWVzLiAgVGhlCisgKiBzaWduZWRuZXNzIG9mIHRoZSBkaWZmZXJlbmNlIG11c3QgYmUgZW5jb2RlZCBhcyB0aGUgbW9zdAorICogc2lnbmlmaWNhbnQgcGFydC48L3A+CisgKgorICogPHA+V2UgZW5jb2RlIGRpZmZlcmVuY2VzIHdpdGggZmV3IGJ5dGVzIGlmIHRoZWlyIGFic29sdXRlIHZhbHVlcworICogYXJlIHNtYWxsLiAgRm9yIGNvcnJlY3Qgb3JkZXJpbmcsIHdlIG11c3QgdHJlYXQgdGhlIGVudGlyZSB2YWx1ZQorICogcmFuZ2UgLTEwZmZmZi4uKzEwZmZmZiBpbiBhc2NlbmRpbmcgb3JkZXIsIHdoaWNoIGZvcmJpZHMgZW5jb2RpbmcKKyAqIHRoZSBzaWduIGFuZCB0aGUgYWJzb2x1dGUgdmFsdWUgc2VwYXJhdGVseS4gSW5zdGVhZCwgd2Ugc3BsaXQgdGhlCisgKiBsZWFkIGJ5dGUgcmFuZ2UgaW4gdGhlIG1pZGRsZSBhbmQgZW5jb2RlIG5vbi1uZWdhdGl2ZSB2YWx1ZXMgZ29pbmcKKyAqIHVwIGFuZCBuZWdhdGl2ZSB2YWx1ZXMgZ29pbmcgZG93bi48L3A+CisgKgorICogPHA+Rm9yIHZlcnkgc21hbGwgYWJzb2x1dGUgdmFsdWVzLCB0aGUgZGlmZmVyZW5jZSBpcyBhZGRlZCB0byBhCisgKiBtaWRkbGUgYnl0ZSB2YWx1ZSBmb3Igc2luZ2xlLWJ5dGUgZW5jb2RlZCBkaWZmZXJlbmNlcy4gIEZvcgorICogc29tZXdoYXQgbGFyZ2VyIGFic29sdXRlIHZhbHVlcywgdGhlIGRpZmZlcmVuY2UgaXMgZGl2aWRlZCBieSB0aGUKKyAqIG51bWJlciBvZiBieXRlIHZhbHVlcyBhdmFpbGFibGUsIHRoZSBtb2R1bG8gaXMgdXNlZCBmb3Igb25lIHRyYWlsCisgKiBieXRlLCBhbmQgdGhlIHJlbWFpbmRlciBpcyBhZGRlZCB0byBhIGxlYWQgYnl0ZSBhdm9pZGluZyB0aGUKKyAqIHNpbmdsZS1ieXRlIHJhbmdlLiAgRm9yIGxhcmdlIGFic29sdXRlIHZhbHVlcywgdGhlIGRpZmZlcmVuY2UgaXMKKyAqIHNpbWlsYXJseSBlbmNvZGVkIGluIHRocmVlIGJ5dGVzLiAoU3luIFdlZSwgSSBuZWVkIGV4YW1wbGVzCisgKiBoZXJlLik8L3A+CisgKgorICogPHA+Qk9DVSBkb2VzIG5vdCB1c2UgYnl0ZSB2YWx1ZXMgMCwgMSwgb3IgMiwgYnV0IHVzZXMgYWxsIG90aGVyCisgKiBieXRlIHZhbHVlcyBmb3IgbGVhZCBhbmQgc2luZ2xlIGJ5dGVzLCBzbyB0aGF0IHRoZSBtaWRkbGUgcmFuZ2Ugb2YKKyAqIHNpbmdsZSBieXRlcyBpcyBhcyBsYXJnZSBhcyBwb3NzaWJsZS48L3A+CisgKgorICogPHA+Tm90ZSB0aGF0IHRoZSBsZWFkIGJ5dGUgcmFuZ2VzIG92ZXJsYXAgc29tZSwgYnV0IHRoYXQgdGhlCisgKiBzZXF1ZW5jZXMgYXMgYSB3aG9sZSBhcmUgd2VsbCBvcmRlcmVkLiBJLmUuLCBldmVuIGlmIHRoZSBsZWFkIGJ5dGUKKyAqIGlzIHRoZSBzYW1lIGZvciBzZXF1ZW5jZXMgb2YgZGlmZmVyZW50IGxlbmd0aHMsIHRoZSB0cmFpbCBieXRlcworICogZXN0YWJsaXNoIGNvcnJlY3Qgb3JkZXIuICBJdCB3b3VsZCBiZSBwb3NzaWJsZSB0byBlbmNvZGUgc2xpZ2h0bHkKKyAqIGxhcmdlciByYW5nZXMgZm9yIGVhY2ggbGVuZ3RoICg+MSkgYnkgc3VidHJhY3RpbmcgdGhlIGxvd2VyIGJvdW5kCisgKiBvZiB0aGUgcmFuZ2UuIEhvd2V2ZXIsIHRoYXQgd291bGQgYWxzbyBzbG93IGRvd24gdGhlIGNhbGN1bGF0aW9uLgorICogKFN5biBXZWUsIG5lZWQgYW4gZXhhbXBsZSkuPC9wPgorICoKKyAqIDxwPkZvciB0aGUgYWN0dWFsIHN0cmluZyBlbmNvZGluZywgYW4gb3B0aW1pemF0aW9uIG1vdmVzIHRoZQorICogcHJldmlvdXMgY29kZSBwb2ludCB2YWx1ZSB0byB0aGUgbWlkZGxlIG9mIGl0cyBVbmljb2RlIHNjcmlwdCBibG9jaworICogdG8gbWluaW1pemUgdGhlIGRpZmZlcmVuY2VzIGluIHNhbWUtc2NyaXB0IHRleHQgcnVucy4gIChTeW4gV2VlLAorICogbmVlZCBhbiBleGFtcGxlLik8L3A+CisgKgorICogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyAqIEBzaW5jZSByZWxlYXNlIDIuMiwgTWF5IDNyZCAyMDAyCisgKiBAZHJhZnQgMi4yICovCitwdWJsaWMgY2xhc3MgQk9DVSAKK3sgICAgICAKKyAgICAvLyBwdWJsaWMgY29uc3RydWN0b3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiA8cD5FbmNvZGUgdGhlIGNvZGUgcG9pbnRzIG9mIGEgc3RyaW5nIGFzIGEgc2VxdWVuY2Ugb2YgYnl0ZXMsCisgICAgICogcHJlc2VydmluZyBsZXhpY2FsIG9yZGVyLjwvcD4KKyAgICAgKiA8cD5UaGUgbWluaW11bSBzaXplIG9mIGJ1ZmZlciByZXF1aXJlZCBmb3IgdGhlIGNvbXByZXNzaW9uIGNhbiBiZSAKKyAgICAgKiBwcmVmbGlnaHRlZCBieSBnZXRDb21wcmVzc2lvbkxlbmd0aChTdHJpbmcpLjwvcD4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRleHQgc291cmNlCisgICAgICogQHBhcmFtIGJ1ZmZlciBvdXRwdXQgYnVmZmVyCisgICAgICogQHBhcmFtIG9mZnNldCB0byBzdGFydCB3cml0aW5nIHRvCisgICAgICogQHJldHVybiBlbmQgb2Zmc2V0IHdoZXJlIHRoZSB3cml0aW5nIHN0b3BwZWQKKyAgICAgKiBAc2VlICNnZXRDb21wcmVzc2lvbkxlbmd0aChTdHJpbmcpCisgICAgICogQGV4Y2VwdGlvbiBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gdGhyb3duIGlmIHNpemUgb2YgYnVmZmVyIGlzIAorICAgICAqICAgICAgICAgICAgdG9vIHNtYWxsIGZvciB0aGUgb3V0cHV0LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvbXByZXNzKFN0cmluZyBzb3VyY2UsIGJ5dGUgYnVmZmVyW10sIGludCBvZmZzZXQpIAorICAgIHsKKyAgICAgICAgaW50IHByZXYgPSAwOworICAgICAgICBVbmljb2RlQ2hhcmFjdGVySXRlcmF0b3IgaXRlcmF0b3IgPSBuZXcgVW5pY29kZUNoYXJhY3Rlckl0ZXJhdG9yKHNvdXJjZSk7CisgICAgICAgIGludCBjb2RlcG9pbnQgPSBpdGVyYXRvci5uZXh0Q29kZVBvaW50KCk7CisgICAgICAgIHdoaWxlIChjb2RlcG9pbnQgIT0gVW5pY29kZUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkVfQ09ERVBPSU5UKSB7CisgICAgICAgICAgICBpZiAocHJldiA8IDB4NGUwMCB8fCBwcmV2ID49IDB4YTAwMCkgeworICAgICAgICAgICAgICAgIHByZXYgPSAocHJldiAmIH4weDdmKSAtIFNMT1BFX1JFQUNIX05FR18xXzsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBVbmloYW4gVSs0ZTAwLi5VKzlmYTU6CisgICAgICAgICAgICAgICAgLy8gZG91YmxlLWJ5dGVzIGRvd24gZnJvbSB0aGUgdXBwZXIgZW5kCisgICAgICAgICAgICAgICAgcHJldiA9IDB4OWZmZiAtIFNMT1BFX1JFQUNIX1BPU18yXzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBvZmZzZXQgPSB3cml0ZURpZmYoY29kZXBvaW50IC0gcHJldiwgYnVmZmVyLCBvZmZzZXQpOworICAgICAgICAgICAgcHJldiA9IGNvZGVwb2ludDsKKyAgICAgICAgICAgIGNvZGVwb2ludCA9IGl0ZXJhdG9yLm5leHRDb2RlUG9pbnQoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gb2Zmc2V0OworICAgIH0KKyAgICAgICAgCisgICAgLyoqIAorICAgICAqIFJldHVybiB0aGUgbnVtYmVyIG9mICBieXRlcyB0aGF0IGNvbXByZXNzKCkgd291bGQgd3JpdGUuCisgICAgICogQHBhcmFtIHNvdXJjZSB0ZXh0IHNvdXJjZSBzdHJpbmcKKyAgICAgKiBAcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIEJPQ1UgcmVzdWx0IAorICAgICAqIEBzZWUgI2NvbXByZXNzKFN0cmluZywgYnl0ZVtdLCBpbnQpCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0Q29tcHJlc3Npb25MZW5ndGgoU3RyaW5nIHNvdXJjZSkgCisgICAgeworICAgICAgICBpbnQgcHJldiA9IDA7CisgICAgICAgIGludCByZXN1bHQgPSAwOworICAgICAgICBVbmljb2RlQ2hhcmFjdGVySXRlcmF0b3IgaXRlcmF0b3IgPSBuZXcgVW5pY29kZUNoYXJhY3Rlckl0ZXJhdG9yKHNvdXJjZSk7CisgICAgICAgIGludCBjb2RlcG9pbnQgPSBpdGVyYXRvci5uZXh0Q29kZVBvaW50KCk7CisgICAgICAgIHdoaWxlIChjb2RlcG9pbnQgIT0gVW5pY29kZUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkVfQ09ERVBPSU5UKSB7CisgICAgICAgICAgICBpZiAocHJldiA8IDB4NGUwMCB8fCBwcmV2ID49IDB4YTAwMCkgeworICAgICAgICAgICAgICAgIHByZXYgPSAocHJldiAmIH4weDdmKSAtIFNMT1BFX1JFQUNIX05FR18xXzsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBVbmloYW4gVSs0ZTAwLi5VKzlmYTU6CisgICAgICAgICAgICAgICAgLy8gZG91YmxlLWJ5dGVzIGRvd24gZnJvbSB0aGUgdXBwZXIgZW5kCisgICAgICAgICAgICAgICAgcHJldiA9IDB4OWZmZiAtIFNMT1BFX1JFQUNIX1BPU18yXzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBjb2RlcG9pbnQgPSBpdGVyYXRvci5uZXh0Q29kZVBvaW50KCk7CisgICAgICAgICAgICByZXN1bHQgKz0gbGVuZ3RoT2ZEaWZmKGNvZGVwb2ludCAtIHByZXYpOworICAgICAgICAgICAgcHJldiA9IGNvZGVwb2ludDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8vIHB1YmxpYyBzZXR0ZXIgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgIC8vIHB1YmxpYyBnZXR0ZXIgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgIAorICAgIC8vIHB1YmxpYyBvdGhlciBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvLyBwcm90ZWN0ZWQgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAKKyAgICAvLyBwcm90ZWN0ZWQgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8vIHByb3RlY3RlZCBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKiogCisgICAgICogRG8gbm90IHVzZSBieXRlIHZhbHVlcyAwLCAxLCAyIGJlY2F1c2UgdGhleSBhcmUgc2VwYXJhdG9ycyBpbiBzb3J0IGtleXMuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNMT1BFX01JTl8gPSAzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTTE9QRV9NQVhfID0gMHhmZjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0xPUEVfTUlERExFXyA9IDB4ODE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNMT1BFX1RBSUxfQ09VTlRfID0gU0xPUEVfTUFYXyAtIFNMT1BFX01JTl8gKyAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTTE9QRV9NQVhfQllURVNfID0gNDsKKworICAgIC8qKgorICAgICAqIE51bWJlciBvZiBsZWFkIGJ5dGVzOgorICAgICAqIDEgICAgICAgIG1pZGRsZSBieXRlIGZvciAwCisgICAgICogMio4MD0xNjAgc2luZ2xlIGJ5dGVzIGZvciAhPTAKKyAgICAgKiAyKjQyPTg0ICBmb3IgZG91YmxlLWJ5dGUgdmFsdWVzCisgICAgICogMiozPTYgICAgZm9yIDMtYnl0ZSB2YWx1ZXMKKyAgICAgKiAyKjE9MiAgICBmb3IgNC1ieXRlIHZhbHVlcworICAgICAqCisgICAgICogVGhlIHN1bSBtdXN0IGJlIDw9U0xPUEVfVEFJTF9DT1VOVC4KKyAgICAgKgorICAgICAqIFdoeSB0aGVzZSBudW1iZXJzPworICAgICAqIC0gVGhlcmUgc2hvdWxkIGJlID49MTI4IHNpbmdsZS1ieXRlIHZhbHVlcyB0byBjb3ZlciAxMjgtYmxvY2tzCisgICAgICogICB3aXRoIHNtYWxsIHNjcmlwdHMuCisgICAgICogLSBUaGVyZSBzaG91bGQgYmUgPj0yMDkwMiBzaW5nbGUvZG91YmxlLWJ5dGUgdmFsdWVzIHRvIGNvdmVyIFVuaWhhbi4KKyAgICAgKiAtIEl0IGhlbHBzIENKSyBFeHRlbnNpb24gQiBzb21lIGlmIHRoZXJlIGFyZSAzLWJ5dGUgdmFsdWVzIHRoYXQgY292ZXIKKyAgICAgKiAgIHRoZSBkaXN0YW5jZSBiZXR3ZWVuIHRoZW0gYW5kIFVuaWhhbi4KKyAgICAgKiAgIFRoaXMgYWxzbyBoZWxwcyB0byBqdW1wIGFtb25nIGRpc3RhbnQgcGxhY2VzIGluIHRoZSBCTVAuCisgICAgICogLSBGb3VyLWJ5dGUgdmFsdWVzIGFyZSBuZWNlc3NhcnkgdG8gY292ZXIgdGhlIHJlc3Qgb2YgVW5pY29kZS4KKyAgICAgKgorICAgICAqIFN5bW1ldHJpY2FsIGxlYWQgYnl0ZSBjb3VudHMgYXJlIGZvciBjb252ZW5pZW5jZS4KKyAgICAgKiBXaXRoIGFuIGVxdWFsIGRpc3RyaWJ1dGlvbiBvZiBldmVuIGFuZCBvZGQgZGlmZmVyZW5jZXMgdGhlcmUgaXMgYWxzbworICAgICAqIG5vIGFkdmFudGFnZSB0byBhc3ltbWV0cmljYWwgbGVhZCBieXRlIGNvdW50cy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0xPUEVfU0lOR0xFXyA9IDgwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTTE9QRV9MRUFEXzJfID0gNDI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNMT1BFX0xFQURfM18gPSAzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTTE9QRV9MRUFEXzRfID0gMTsKKworICAgIC8qKiAKKyAgICAgKiBUaGUgZGlmZmVyZW5jZSB2YWx1ZSByYW5nZSBmb3Igc2luZ2xlLWJ5dGVycy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0xPUEVfUkVBQ0hfUE9TXzFfID0gU0xPUEVfU0lOR0xFXzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0xPUEVfUkVBQ0hfTkVHXzFfID0gKC1TTE9QRV9TSU5HTEVfKTsKKworICAgIC8qKiAKKyAgICAgKiBUaGUgZGlmZmVyZW5jZSB2YWx1ZSByYW5nZSBmb3IgZG91YmxlLWJ5dGVycy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0xPUEVfUkVBQ0hfUE9TXzJfID0gCisgICAgICAgIFNMT1BFX0xFQURfMl8gKiBTTE9QRV9UQUlMX0NPVU5UXyArIFNMT1BFX0xFQURfMl8gLSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTTE9QRV9SRUFDSF9ORUdfMl8gPSAoLVNMT1BFX1JFQUNIX1BPU18yXyAtIDEpOworCisgICAgLyoqIAorICAgICAqIFRoZSBkaWZmZXJlbmNlIHZhbHVlIHJhbmdlIGZvciAzLWJ5dGVycy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0xPUEVfUkVBQ0hfUE9TXzNfID0gU0xPUEVfTEVBRF8zXyAKKyAgICAgICAgKiBTTE9QRV9UQUlMX0NPVU5UXyAKKyAgICAgICAgKiBTTE9QRV9UQUlMX0NPVU5UXyAKKyAgICAgICAgKyAoU0xPUEVfTEVBRF8zXyAtIDEpCisgICAgICAgICogU0xPUEVfVEFJTF9DT1VOVF8gKworICAgICAgICAoU0xPUEVfVEFJTF9DT1VOVF8gLSAxKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0xPUEVfUkVBQ0hfTkVHXzNfID0gKC1TTE9QRV9SRUFDSF9QT1NfM18gLSAxKTsKKworICAgIC8qKiAKKyAgICAgKiBUaGUgbGVhZCBieXRlIHN0YXJ0IHZhbHVlcy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0xPUEVfU1RBUlRfUE9TXzJfID0gU0xPUEVfTUlERExFXyAKKyAgICAgICAgKyBTTE9QRV9TSU5HTEVfICsgMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0xPUEVfU1RBUlRfUE9TXzNfID0gU0xPUEVfU1RBUlRfUE9TXzJfIAorICAgICAgICArIFNMT1BFX0xFQURfMl87CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNMT1BFX1NUQVJUX05FR18yXyA9IFNMT1BFX01JRERMRV8gKyAKKyAgICAgICAgU0xPUEVfUkVBQ0hfTkVHXzFfOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTTE9QRV9TVEFSVF9ORUdfM18gPSBTTE9QRV9TVEFSVF9ORUdfMl8KKyAgICAgICAgLSBTTE9QRV9MRUFEXzJfOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAvLyBwcml2YXRlIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvciBwcml2YXRlIHRvIHByZXZlbnQgaW5pdGlhbGl6YXRpb24KKyAgICAgKi8KKyAgICBwcml2YXRlIEJPQ1UoKQorICAgIHsKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgCisgICAgLy8gcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBJbnRlZ2VyIGRpdmlzaW9uIGFuZCBtb2R1bG8gd2l0aCBuZWdhdGl2ZSBudW1lcmF0b3JzCisgICAgICogeWllbGRzIG5lZ2F0aXZlIG1vZHVsbyByZXN1bHRzIGFuZCBxdW90aWVudHMgdGhhdCBhcmUgb25lIG1vcmUgdGhhbgorICAgICAqIHdoYXQgd2UgbmVlZCBoZXJlLgorICAgICAqIEBwYXJhbSBudW1iZXIgd2hpY2ggb3BlcmF0aW9ucyBhcmUgdG8gYmUgcGVyZm9ybWVkIG9uCisgICAgICogQHBhcmFtIGZhY3RvciB0aGUgZmFjdG9yIHRvIHVzZSBmb3IgZGl2aXNpb24KKyAgICAgKiBAcmV0dXJuIChyZXN1bHQgb2YgZGl2aXNpb24pIDw8IDMyIHwgbW9kdWxvIAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgZ2V0TmVnRGl2TW9kKGludCBudW1iZXIsIGludCBmYWN0b3IpIAorICAgIHsKKyAgICAgICAgaW50IG1vZHVsbyA9IG51bWJlciAlIGZhY3RvcjsgCisgICAgICAgIGxvbmcgcmVzdWx0ID0gbnVtYmVyIC8gZmFjdG9yOworICAgICAgICBpZiAobW9kdWxvIDwgMCkgeyAKKyAgICAgICAgICAgIC0tIHJlc3VsdDsgCisgICAgICAgICAgICBtb2R1bG8gKz0gZmFjdG9yOyAKKyAgICAgICAgfSAKKyAgICAgICAgcmV0dXJuIChyZXN1bHQgPDwgMzIpIHwgbW9kdWxvOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogRW5jb2RlIG9uZSBkaWZmZXJlbmNlIHZhbHVlIC0weDEwZmZmZi4uKzB4MTBmZmZmIGluIDEuLjMgYnl0ZXMsCisgICAgICogcHJlc2VydmluZyBsZXhpY2FsIG9yZGVyCisgICAgICogQHBhcmFtIGRpZmYKKyAgICAgKiBAcGFyYW0gYnVmZmVyIGJ5dGUgYnVmZmVyIHRvIGFwcGVuZCB0bworICAgICAqIEBwYXJhbSBvZmZzZXQgdG8gdGhlIGJ5dGUgYnVmZmVyIHRvIHN0YXJ0IGFwcGVuZGluZworICAgICAqIEByZXR1cm4gZW5kIG9mZnNldCB3aGVyZSB0aGUgYXBwZW5kaW5nIHN0b3BzCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IHdyaXRlRGlmZihpbnQgZGlmZiwgYnl0ZSBidWZmZXJbXSwgaW50IG9mZnNldCkgCisgICAgeworICAgICAgICBpZiAoZGlmZiA+PSBTTE9QRV9SRUFDSF9ORUdfMV8pIHsKKyAgICAgICAgICAgIGlmIChkaWZmIDw9IFNMT1BFX1JFQUNIX1BPU18xXykgeworICAgICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXQgKytdID0gKGJ5dGUpKFNMT1BFX01JRERMRV8gKyBkaWZmKTsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIGlmIChkaWZmIDw9IFNMT1BFX1JFQUNIX1BPU18yXykgeworICAgICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXQgKytdID0gKGJ5dGUpKFNMT1BFX1NUQVJUX1BPU18yXyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChkaWZmIC8gU0xPUEVfVEFJTF9DT1VOVF8pKTsKKyAgICAgICAgICAgICAgICBidWZmZXJbb2Zmc2V0ICsrXSA9IChieXRlKShTTE9QRV9NSU5fICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRpZmYgJSBTTE9QRV9UQUlMX0NPVU5UXykpOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgaWYgKGRpZmYgPD0gU0xPUEVfUkVBQ0hfUE9TXzNfKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyW29mZnNldCArIDJdID0gKGJ5dGUpKFNMT1BFX01JTl8gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgKGRpZmYgJSBTTE9QRV9UQUlMX0NPVU5UXykpOworICAgICAgICAgICAgICAgIGRpZmYgLz0gU0xPUEVfVEFJTF9DT1VOVF87CisgICAgICAgICAgICAgICAgYnVmZmVyW29mZnNldCArIDFdID0gKGJ5dGUpKFNMT1BFX01JTl8gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgKGRpZmYgJSBTTE9QRV9UQUlMX0NPVU5UXykpOworICAgICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXRdID0gKGJ5dGUpKFNMT1BFX1NUQVJUX1BPU18zXyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChkaWZmIC8gU0xPUEVfVEFJTF9DT1VOVF8pKTsKKyAgICAgICAgICAgICAgICBvZmZzZXQgKz0gMzsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBidWZmZXJbb2Zmc2V0ICsgM10gPSAoYnl0ZSkoU0xPUEVfTUlOXyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBkaWZmICUgU0xPUEVfVEFJTF9DT1VOVF8pOworICAgICAgICAgICAgICAgIGRpZmYgLz0gU0xPUEVfVEFJTF9DT1VOVF87CisgICAgICAgICAgICAgICAgYnVmZmVyW29mZnNldF0gPSAoYnl0ZSkoU0xPUEVfTUlOXyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGRpZmYgJSBTTE9QRV9UQUlMX0NPVU5UXyk7CisgICAgICAgICAgICAgICAgZGlmZiAvPSBTTE9QRV9UQUlMX0NPVU5UXzsKKyAgICAgICAgICAgICAgICBidWZmZXJbb2Zmc2V0ICsgMV0gPSAoYnl0ZSkoU0xPUEVfTUlOXyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBkaWZmICUgU0xPUEVfVEFJTF9DT1VOVF8pOworICAgICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXRdID0gKGJ5dGUpU0xPUEVfTUFYXzsKKyAgICAgICAgICAgICAgICBvZmZzZXQgKz0gNDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBsb25nIGRpdmlzaW9uID0gZ2V0TmVnRGl2TW9kKGRpZmYsIFNMT1BFX1RBSUxfQ09VTlRfKTsKKyAgICAgICAgICAgIGludCBtb2R1bG8gPSAoaW50KWRpdmlzaW9uOworICAgICAgICAgICAgaWYgKGRpZmYgPj0gU0xPUEVfUkVBQ0hfTkVHXzJfKSB7CisgICAgICAgICAgICAgICAgZGlmZiA9IChpbnQpKGRpdmlzaW9uID4+IDMyKTsKKyAgICAgICAgICAgICAgICBidWZmZXJbb2Zmc2V0ICsrXSA9IChieXRlKShTTE9QRV9TVEFSVF9ORUdfMl8gKyBkaWZmKTsKKyAgICAgICAgICAgICAgICBidWZmZXJbb2Zmc2V0ICsrXSA9IChieXRlKShTTE9QRV9NSU5fICsgbW9kdWxvKTsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIGlmIChkaWZmID49IFNMT1BFX1JFQUNIX05FR18zXykgeworICAgICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXQgKyAyXSA9IChieXRlKShTTE9QRV9NSU5fICsgbW9kdWxvKTsKKyAgICAgICAgICAgICAgICBkaWZmID0gKGludCkoZGl2aXNpb24gPj4gMzIpOworICAgICAgICAgICAgICAgIGRpdmlzaW9uID0gZ2V0TmVnRGl2TW9kKGRpZmYsIFNMT1BFX1RBSUxfQ09VTlRfKTsKKyAgICAgICAgICAgICAgICBtb2R1bG8gPSAoaW50KWRpdmlzaW9uOworICAgICAgICAgICAgICAgIGRpZmYgPSAoaW50KShkaXZpc2lvbiA+PiAzMik7CisgICAgICAgICAgICAgICAgYnVmZmVyW29mZnNldCArIDFdID0gKGJ5dGUpKFNMT1BFX01JTl8gKyBtb2R1bG8pOworICAgICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXRdID0gKGJ5dGUpKFNMT1BFX1NUQVJUX05FR18zXyArIGRpZmYpOworICAgICAgICAgICAgICAgIG9mZnNldCArPSAzOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXQgKyAzXSA9IChieXRlKShTTE9QRV9NSU5fICsgbW9kdWxvKTsKKyAgICAgICAgICAgICAgICBkaWZmID0gKGludCkoZGl2aXNpb24gPj4gMzIpOworICAgICAgICAgICAgICAgIGRpdmlzaW9uID0gZ2V0TmVnRGl2TW9kKGRpZmYsIFNMT1BFX1RBSUxfQ09VTlRfKTsKKyAgICAgICAgICAgICAgICBtb2R1bG8gPSAoaW50KWRpdmlzaW9uOworICAgICAgICAgICAgICAgIGRpZmYgPSAoaW50KShkaXZpc2lvbiA+PiAzMik7CisgICAgICAgICAgICAgICAgYnVmZmVyW29mZnNldCArIDJdID0gKGJ5dGUpKFNMT1BFX01JTl8gKyBtb2R1bG8pOworICAgICAgICAgICAgICAgIGRpdmlzaW9uID0gZ2V0TmVnRGl2TW9kKGRpZmYsIFNMT1BFX1RBSUxfQ09VTlRfKTsKKyAgICAgICAgICAgICAgICBtb2R1bG8gPSAoaW50KWRpdmlzaW9uOworICAgICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXQgKyAxXSA9IChieXRlKShTTE9QRV9NSU5fICsgbW9kdWxvKTsKKyAgICAgICAgICAgICAgICBidWZmZXJbb2Zmc2V0XSA9IFNMT1BFX01JTl87CisgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG9mZnNldDsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEhvdyBtYW55IGJ5dGVzIHdvdWxkIHdyaXRlRGlmZigpIHdyaXRlPyAKKyAgICAgKiBAcGFyYW0gZGlmZgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBsZW5ndGhPZkRpZmYoaW50IGRpZmYpIAorICAgIHsKKyAgICAgICAgaWYgKGRpZmYgPj0gU0xPUEVfUkVBQ0hfTkVHXzFfKSB7CisgICAgICAgICAgICBpZiAoZGlmZiA8PSBTTE9QRV9SRUFDSF9QT1NfMV8pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIGlmIChkaWZmIDw9IFNMT1BFX1JFQUNIX1BPU18yXykgeworICAgICAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgaWYoZGlmZiA8PSBTTE9QRV9SRUFDSF9QT1NfM18pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMzsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gNDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpZiAoZGlmZiA+PSBTTE9QRV9SRUFDSF9ORUdfMl8pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIGlmIChkaWZmID49IFNMT1BFX1JFQUNIX05FR18zXykgeworICAgICAgICAgICAgICAgIHJldHVybiAzOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiA0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQnl0ZVRyaWUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0J5dGVUcmllLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjNjYzIxZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0J5dGVUcmllLmphdmEKQEAgLTAsMCArMSwyMzYgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvQXR0aWMvQnl0ZVRyaWUuamF2YSx2ICQgCisqICREYXRlOiAyMDAyLzA4LzEwIDAyOjU5OjE3ICQgCisqICRSZXZpc2lvbjogMS42ICQKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworCisvKioKKyogQ2xhc3MgdG8gbWFuaXB1bGF0ZSBhbmQgZ2VuZXJhdGUgYSB0cmllLgorKiBUaGlzIGlzIHVzZWZ1bCBmb3IgSUNVIGRhdGEgaW4gcHJpbWl0aXZlIHR5cGVzLgorKiBQcm92aWRlcyBhIGNvbXBhY3Qgd2F5IHRvIHN0b3JlIGluZm9ybWF0aW9uIHRoYXQgaXMgaW5kZXhlZCBieSBVbmljb2RlIAorKiB2YWx1ZXMsIHN1Y2ggYXMgY2hhcmFjdGVyIHByb3BlcnRpZXMsIHR5cGVzLCBrZXlib2FyZCB2YWx1ZXMsIGV0Yy4gVGhpcyBpcyAKKyogdmVyeSB1c2VmdWwgd2hlbiB5b3UgaGF2ZSBhIGJsb2NrIG9mIFVuaWNvZGUgZGF0YSB0aGF0IGNvbnRhaW5zIHNpZ25pZmljYW50IAorKiB2YWx1ZXMgd2hpbGUgdGhlIHJlc3Qgb2YgdGhlIFVuaWNvZGUgZGF0YSBpcyB1bnVzZWQgaW4gdGhlIGFwcGxpY2F0aW9uIG9yIAorKiB3aGVuIHlvdSBoYXZlIGEgbG90IG9mIHJlZHVuZGFuY2UsIHN1Y2ggYXMgd2hlcmUgYWxsIDIxLDAwMCBIYW4gaWRlb2dyYXBocyAKKyogaGF2ZSB0aGUgc2FtZSB2YWx1ZS4gIEhvd2V2ZXIsIGxvb2t1cCBpcyBtdWNoIGZhc3RlciB0aGFuIGEgaGFzaCB0YWJsZS4KKyogQSB0cmllIG9mIGFueSBwcmltaXRpdmUgZGF0YSB0eXBlIHNlcnZlcyB0d28gcHVycG9zZXM6CisqIDxVTCB0eXBlID0gcm91bmQ+CisqICAgICA8TEk+RmFzdCBhY2Nlc3Mgb2YgdGhlIGluZGV4ZWQgdmFsdWVzLgorKiAgICAgPExJPlNtYWxsZXIgbWVtb3J5IGZvb3RwcmludC4KKyogPC9VTD4KKyogQSB0cmllIGlzIGNvbXBvc2VkIG9mIDIgaW5kZXggYXJyYXkgYW5kIHZhbHVlIGFycmF5LiBDb21iaW5pbmcgdGhlIDIgaW5kZXgKKyogYXJyYXksIHdlIGNvdWxkIGdldCB0aGUgaW5kaWNpZXMgb2YgVW5pY29kZSBjaGFyYWN0ZXJzIHRvIHRoZSB2YWx1ZSBhcnJheS4KKyogVGhlIGZpcnN0IGluZGV4IGFycmF5IHdpbGwgY29udGFpbiBpbmRleGVzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGZpcnN0IDExIAorKiBiaXRzIG9mIGEgMjEgYml0IGNvZGVwb2ludCwgdGhlIHNlY29uZCBpbmRleCBhcnJheSB3aWxsIGNvbnRhaW4gaW5kZXhlcyAKKyogY29ycmVzcG9uZGluZyB0byB0aGUgbmV4dCA2IGJpdHMgb2YgdGhlIGNvZGUgcG9pbnQuIFRoZSBsYXN0IGFycmF5IHdpbGwgCisqIGNvbnRhaW4gdGhlIHZhbHVlcy4gSGVuY2UgdG8gYWNjZXNzIHRoZSB2YWx1ZSBvZiBhIGNvZGVwb2ludCwgd2UgY2FuIHVzZSB0aGUKKyogZm9sbG93aW5nIHByb2dyYW0KKyogPHA+CisqICAgaW50IGZpcnN0aW5kZXggPSBjaCA+PiBGSVJTVF8xMV9CSVRTX1NISUZUOzxicj4KKyogICBpbnQgc2Vjb25kaW5kZXggPSBpbmRleDFbZmlyc3RpbmRleF0gKyAKKyogICAgICAgICAgICAgICAgICAgICAgIChjaCA+PiBORVhUXzZfQklUU19TSElGVCkgJiBORVhUXzZfQklUU19NQVNLOzxicj4KKyogICBpbnQgdGhpcmRpbmRleCA9IGluZGV4MltzZWNvbmRpbmRleF0gKyBjaCAmIExBU1RfRk9VUl9CSVRTX01BU0s7PGJyPiAgICAKKyogICBmKGNoKSA9IHZhbHVlW3RoaXJkaW5kZXhdOzxicj4KKyogPC9wPgorKiBAdmVyc2lvbiAgICAgICAgICAgICRSZXZpc2lvbjogMS42ICQKKyogQGF1dGhvciAgICAgICAgICAgICBTeW4gV2VlIFF1ZWsKKyogQGRlcHJlY2F0ZWQgcmVsZWFzZSAyLjEsIHNpbmNlIGljdTRjIGhhcyB3cml0dGVuIHRoZWlyIG93biB0b29sCisqLworLy8vQ0xPVkVSOk9GRgorcHVibGljIGZpbmFsIGNsYXNzIEJ5dGVUcmllCit7CisgIC8vIGNvbnN0cnVjdG9ycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAKKyAgLyoqCisgICogY29uc3RydWN0b3IgCisgICogQHBhcmFtIGFycmF5IG9mIGRhdGEgdG8gYmUgcG9wdWxhdGVkIGludG8gdHJpZQorICAqIEBkZXByZWNhdGVkIHJlbGVhc2UgMi4xLCBzaW5jZSBpY3U0YyBoYXMgd3JpdHRlbiB0aGVpciBvd24gdG9vbAorICAqLworICBwdWJsaWMgQnl0ZVRyaWUoYnl0ZSBhcnJheVtdKQorICB7CisgICAgYnVpbGQoYXJyYXkpOworICB9CisgIAorICAvKioKKyAgKiBjb25zdHJ1Y3RvciB0aGF0IGFzc2lnbnMgdHJpZSB0aGUgYXJndW1lbnQgdmFsdWVzLiBBcnJheXMgYXJlIG5vdCAKKyAgKiBkdXBsaWNhdGVkLgorICAqIEBwYXJhbSBzdGFnZTEgYXJyYXkgb2YgdGhlIGZpcnN0IHNldCBvZiBpbmRleGVzCisgICogQHBhcmFtIHN0YWdlMiBhcnJheSBvZiB0aGUgc2Vjb25kIHNldCBvZiBpbmRleGVzCisgICogQHBhcmFtIHN0YWdlMyBhcnJheSBvZiBkYXRhCisgICogQGRlcHJlY2F0ZWQgcmVsZWFzZSAyLjEsIHNpbmNlIGljdTRjIGhhcyB3cml0dGVuIHRoZWlyIG93biB0b29sCisgICovCisgIHB1YmxpYyBCeXRlVHJpZShpbnQgc3RhZ2UxW10sIGludCBzdGFnZTJbXSwgYnl0ZSBzdGFnZTNbXSkKKyAgeworICAgIG1fc3RhZ2UxXyA9IHN0YWdlMTsKKyAgICBtX3N0YWdlMl8gPSBzdGFnZTI7CisgICAgbV9zdGFnZTNfID0gc3RhZ2UzOworICB9CisgIAorICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIAorICAvKioKKyAgKiBHZXR0aW5nIHRoZSB0cmllIGRhdGEgY29ycmVzcG9uZGluZyB0byB0aGUgYXJndW1lbnQgaW5kZXguCisgICogQHBhcmFtIGluZGV4IHRvIGJlIG1hbmlwdWxhdGVkIGludG8gY29ycmVzcG9uZGluZyB0cmllIGluZGV4CisgICogQHJldHVybiB0cmllIHZhbHVlIGF0IGluZGV4CisgICogQGRlcHJlY2F0ZWQgcmVsZWFzZSAyLjEsIHNpbmNlIGljdTRjIGhhcyB3cml0dGVuIHRoZWlyIG93biB0b29sCisgICovCisgIHB1YmxpYyBieXRlIGdldFZhbHVlKGludCBpbmRleCkKKyAgeworICAgIC8vIGluZGV4IG9mIHRoZSBmaXJzdCBhY2Nlc3MgdG8gdGhlIGRhdGFiYXNlIAorICAgIGludCBpbmRleDEgPSBpbmRleCA+PiBTVEFHRV8xX1NISUZUXzsKKyAgICAvLyBpbmRleCBvZiB0aGUgc2Vjb25kIGFjY2VzcyB0byB0aGUgZGF0YWJhc2UKKyAgICBpbnQgaW5kZXgyID0gbV9zdGFnZTFfW2luZGV4MV0gKyAKKyAgICAgICAgICAgICAgICAgKChpbmRleCA+PiBTVEFHRV8yX1NISUZUXykgJiBTVEFHRV8yX01BU0tfQUZURVJfU0hJRlRfKTsKKyAgICAvLyBpbmRleCBvZiB0aGUgdGhpcmQgYWNjZXNzIHRvIHRoZSBkYXRhYmFzZQorICAgIGludCBpbmRleDMgPSBtX3N0YWdlMl9baW5kZXgyXSArIChpbmRleCAmIFNUQUdFXzNfTUFTS18pOyAgCisgICAgLy8gcmV0cmlldmVzIHZhbHVlCisgICAgcmV0dXJuIG1fc3RhZ2UzX1tpbmRleDNdOworICB9CisgIAorICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgCisgIC8qKgorICAqIFN0YWdlIDEgaW5kZXggYXJyYXkKKyAgKi8KKyAgcHJpdmF0ZSBpbnQgbV9zdGFnZTFfW107CisgIAorICAvKioKKyAgKiBTdGFnZSAyIGluZGV4IGFycmF5CisgICovCisgIHByaXZhdGUgaW50IG1fc3RhZ2UyX1tdOworICAKKyAgLyoqCisgICogU3RhZ2UgMyB2YWx1ZSBhcnJheQorICAqLworICBwcml2YXRlIGJ5dGUgbV9zdGFnZTNfW107CisgIAorICAvKioKKyAgKiBTdGFnZSAxIHNoaWZ0CisgICovCisgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTVEFHRV8xX1NISUZUXyA9IDEwOworICAKKyAgLyoqCisgICogU3RhZ2UgMiBzaGlmdAorICAqLworICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1RBR0VfMl9TSElGVF8gPSA0OworICAKKyAgLyoqCisgICogU3RhZ2UgMiBtYXNrCisgICovCisgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTVEFHRV8yX01BU0tfQUZURVJfU0hJRlRfID0gMHgzRjsKKyAgCisgIC8qKgorICAqIFN0YWdlIDMgbWFzaworICAqLworICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1RBR0VfM19NQVNLXyA9IDB4RjsKKyAgCisgIC8qKgorICAqIE51bWJlciBvZiBudW1iZXJzIHBvc3NpYmxlIGZyb20gYSA0IGJpdCB0eXBlCisgICovCisgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDT1VOVF80X0JJVF8gPSAweDEwOworICAKKyAgLyoqCisgICogTnVtYmVyIG9mIG51bWJlcnMgcG9zc2libGUgZnJvbSBhIDYgYml0IHR5cGUKKyAgKi8KKyAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENPVU5UXzZfQklUXyA9IDB4NDA7CisgIAorICAvKioKKyAgKiBOdW1iZXIgb2YgbnVtYmVycyBwb3NzaWJsZSBmcm9tIHRoZSBmaXJzdCAxNyBiaXRzIG9mIGEgY29kZXBvaW50CisgICovCisgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDT1VOVF9DT0RFUE9JTlRfRklSU1RfMTdfQklUXyA9IDB4MTEwMDAwID4+IDQ7CisgIAorICAvKioKKyAgKiBOdW1iZXIgb2YgbnVtYmVycyBwb3NzaWJsZSBmcm9tIHRoZSBmaXJzdCAxMSBiaXRzIG9mIGEgY29kZXBvaW50CisgICovCisgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDT1VOVF9DT0RFUE9JTlRfRklSU1RfMTFfQklUXyA9IDB4MTEwMDAwID4+IDEwOworICAKKyAgLy8gcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIAorICAvKioKKyAgKiBCdWlsZGluZyB0aGUgdHJpZSBmcm9tIGEgYXJndW1lbnQgYXJyYXkuCisgICogRWFjaCB1bmljb2RlIGNoYXJhY3RlciB3aWxsIGJlIHVzZWQgdG8gZ2VuZXJhdGUgZGF0YS4KKyAgKiBAcGFyYW0gb3V0cHV0IGZpbGUgcGF0aAorICAqLworICBwcml2YXRlIHZvaWQgYnVpbGQoYnl0ZSBhcnJheVtdKQorICB7CisgICAgaW50IHN0YWdlMltdID0gbmV3IGludFtDT1VOVF9DT0RFUE9JTlRfRklSU1RfMTdfQklUX107CisgICAgYnl0ZSBzdGFnZTNbXSA9IG5ldyBieXRlW1VDaGFyYWN0ZXIuTUFYX1ZBTFVFID4+IDFdOworICAgIGludCBzaXplID0gVHJpZUJ1aWxkZXIuYnVpbGQoYXJyYXksIDAsIGFycmF5Lmxlbmd0aCwgQ09VTlRfNF9CSVRfLCBzdGFnZTIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhZ2UzKTsKKyAgICAKKyAgICBtX3N0YWdlM18gPSBuZXcgYnl0ZVtzaXplXTsKKyAgICBTeXN0ZW0uYXJyYXljb3B5KHN0YWdlMywgMCwgbV9zdGFnZTNfLCAwLCBzaXplKTsKKyAgICAKKyAgICBtX3N0YWdlMV8gPSBuZXcgaW50W0NPVU5UX0NPREVQT0lOVF9GSVJTVF8xMV9CSVRfXTsKKyAgICBzaXplID0gVHJpZUJ1aWxkZXIuYnVpbGQoc3RhZ2UyLCAwLCBzdGFnZTIubGVuZ3RoLCBDT1VOVF82X0JJVF8sIG1fc3RhZ2UxXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWdlMik7CisgICAgbV9zdGFnZTJfID0gbmV3IGludFtzaXplXTsKKyAgICBTeXN0ZW0uYXJyYXljb3B5KHN0YWdlMiwgMCwgbV9zdGFnZTJfLCAwLCBzaXplKTsKKyAgfQorICAKKyAgLyoqCisgICogQ29udmVydHMgdHJpZSB0byBhIHJlYWRhYmxlIGZvcm1hdAorICAqIEByZXR1cm4gc3RyaW5nIHZlcnNpb24gb2YgdGhlIHRyaWUKKyAgKiBAZGVwcmVjYXRlZCByZWxlYXNlIDIuMSwgc2luY2UgaWN1NGMgaGFzIHdyaXR0ZW4gdGhlaXIgb3duIHRvb2wKKyAgKi8KKyAgcHVibGljIFN0cmluZyB0b1N0cmluZygpCisgIHsKKyAgICBpbnQgc2l6ZSA9IG1fc3RhZ2UxXy5sZW5ndGg7CisgICAgaW50IGNvdW50ID0gMDsKKyAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigiaW50IG1fc3RhZ2UxX1tdID0ge1xuIik7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpICsrKSB7CisgICAgICByZXN1bHQuYXBwZW5kKCIweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKG1fc3RhZ2UxX1tpXSkpOworICAgICAgaWYgKGkgIT0gc2l6ZSAtIDEpIHsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgiLCAiKTsKKyAgICAgIH0KKyAgICAgIGNvdW50ICsrOworICAgICAgaWYgKGNvdW50ID09IDEwKSB7CisgICAgICAgIGNvdW50ID0gMDsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgiXG4iKTsKKyAgICAgIH0KKyAgICB9CisgICAgcmVzdWx0LmFwcGVuZCgiXG59XG5cbiIpOworICAgIHNpemUgPSBtX3N0YWdlMl8ubGVuZ3RoOworICAgIHJlc3VsdC5hcHBlbmQoImludCBtX3N0YWdlMl9bXSA9IHtcbiIpOworICAgIGNvdW50ID0gMDsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkgKyspIHsKKyAgICAgIHJlc3VsdC5hcHBlbmQoIjB4IiArIEludGVnZXIudG9IZXhTdHJpbmcobV9zdGFnZTJfW2ldKSk7CisgICAgICBpZiAoaSAhPSBzaXplIC0gMSkgeworICAgICAgICByZXN1bHQuYXBwZW5kKCIsICIpOworICAgICAgfQorICAgICAgY291bnQgKys7CisgICAgICBpZiAoY291bnQgPT0gMTApIHsKKyAgICAgICAgY291bnQgPSAwOworICAgICAgICByZXN1bHQuYXBwZW5kKCJcbiIpOworICAgICAgfQorICAgIH0KKyAgICByZXN1bHQuYXBwZW5kKCJcbn1cblxuIik7CisgICAgc2l6ZSA9IG1fc3RhZ2UzXy5sZW5ndGg7CisgICAgcmVzdWx0LmFwcGVuZCgiYnl0ZSBtX3N0YWdlM19bXSA9IHtcbiIpOworICAgIGNvdW50ID0gMDsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkgKyspIHsKKyAgICAgIHJlc3VsdC5hcHBlbmQoIjB4IiArIEludGVnZXIudG9IZXhTdHJpbmcoKGNoYXIpbV9zdGFnZTNfW2ldKSk7CisgICAgICBpZiAoaSAhPSBzaXplIC0gMSkgeworICAgICAgICByZXN1bHQuYXBwZW5kKCIsICIpOworICAgICAgfQorICAgICAgY291bnQgKys7CisgICAgICBpZiAoY291bnQgPT0gMTApIHsKKyAgICAgICAgY291bnQgPSAwOworICAgICAgICByZXN1bHQuYXBwZW5kKCJcbiIpOworICAgICAgfQorICAgIH0KKyAgICByZXN1bHQuYXBwZW5kKCJcbn0iKTsKKyAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0NoYXJUcmllLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9DaGFyVHJpZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQ3M2ZiMDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9DaGFyVHJpZS5qYXZhCkBAIC0wLDAgKzEsMjM1IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL0NoYXJUcmllLmphdmEsdiAkCisqICREYXRlOiAyMDAyLzA4LzA4IDIyOjQzOjA1ICQKKyogJFJldmlzaW9uOiAxLjYgJAorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uRGF0YUlucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CisKKy8qKgorICogVHJpZSBpbXBsZW1lbnRhdGlvbiB3aGljaCBzdG9yZXMgZGF0YSBpbiBjaGFyLCAxNiBiaXRzLgorICogQGF1dGhvciBzeW53ZWUKKyAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5UcmllCisgKiBAc2luY2UgcmVsZWFzZSAyLjEsIEphbiAwMSAyMDAyCisgKi8KKworIC8vIG5vdGUgdGhhdCBpIG5lZWQgdG8gaGFuZGxlIHRoZSBibG9jayBjYWxjdWxhdGlvbnMgbGF0ZXIsIHNpbmNlIGNoYXJ0cmllCisgLy8gaW4gaWN1NGMgdXNlcyB0aGUgc2FtZSBpbmRleCBhcnJheS4KK3B1YmxpYyBjbGFzcyBDaGFyVHJpZSBleHRlbmRzIFRyaWUKK3sKKyAgICAvLyBwdWJsaWMgY29uc3RydWN0b3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgKiA8cD5DcmVhdGVzIGEgbmV3IFRyaWUgd2l0aCB0aGUgc2V0dGluZ3MgZm9yIHRoZSB0cmllIGRhdGEuPC9wPgorICAgICogPHA+VW5zZXJpYWxpemUgdGhlIDMyLWJpdC1hbGlnbmVkIGlucHV0IHN0cmVhbSBhbmQgdXNlIHRoZSBkYXRhIGZvciB0aGUgCisgICAgKiB0cmllLjwvcD4KKyAgICAqIEBwYXJhbSBpbnB1dFN0cmVhbSBmaWxlIGlucHV0IHN0cmVhbSB0byBhIElDVSBkYXRhIGZpbGUsIGNvbnRhaW5pbmcgCisgICAgKiAgICAgICAgICAgICAgICAgICAgdGhlIHRyaWUKKyAgICAqIEBwYXJhbSBkYXRhTWFuaXB1bGF0ZSwgb2JqZWN0IHdoaWNoIHByb3ZpZGVzIG1ldGhvZHMgdG8gcGFyc2UgdGhlIGNoYXIgCisgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEKKyAgICAqIEBleGNlcHRpb24gSU9FeGNlcHRpb24gdGhyb3duIHdoZW4gZGF0YSByZWFkaW5nIGZhaWxzCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwdWJsaWMgQ2hhclRyaWUoSW5wdXRTdHJlYW0gaW5wdXRTdHJlYW0sIAorICAgICAgICAgICAgICAgICAgICBEYXRhTWFuaXB1bGF0ZSBkYXRhTWFuaXB1bGF0ZSkgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICBzdXBlcihpbnB1dFN0cmVhbSwgZGF0YU1hbmlwdWxhdGUpOworICAgICAgICAKKyAgICAgICAgaWYgKCFpc0NoYXJUcmllKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRhdGEgZ2l2ZW4gZG9lcyBub3QgYmVsb25nIHRvIGEgY2hhciB0cmllLiIpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICogR2V0cyB0aGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb2RlcG9pbnQuCisgICAgKiBJZiBubyB2YWx1ZSBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIGNvZGVwb2ludCwgYSBkZWZhdWx0IHZhbHVlIHdpbGwgYmUKKyAgICAqIHJldHVybmVkLgorICAgICogQHBhcmFtIGNoIGNvZGVwb2ludAorICAgICogQHJldHVybiBvZmZzZXQgdG8gZGF0YQorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHVibGljIGZpbmFsIGNoYXIgZ2V0Q29kZVBvaW50VmFsdWUoaW50IGNoKQorICAgIHsKKyAgICAgICAgaW50IG9mZnNldCA9IGdldENvZGVQb2ludE9mZnNldChjaCk7CisgICAgICAgIGlmIChvZmZzZXQgPiAwKSB7CisgICAgICAgICAgICByZXR1cm4gbV9kYXRhX1tvZmZzZXRdOworICAgICAgICB9CisgICAgICAgIHJldHVybiBtX2luaXRpYWxWYWx1ZV87CisgICAgfQorCisgICAgLyoqCisgICAgKiBHZXRzIHRoZSB2YWx1ZSB0byB0aGUgZGF0YSB3aGljaCB0aGlzIGxlYWQgc3Vycm9nYXRlIGNoYXJhY3RlciBwb2ludHMKKyAgICAqIHRvLgorICAgICogUmV0dXJuZWQgZGF0YSBtYXkgY29udGFpbiBmb2xkaW5nIG9mZnNldCBpbmZvcm1hdGlvbiBmb3IgdGhlIG5leHQKKyAgICAqIHRyYWlsaW5nIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIuCisgICAgKiBUaGlzIG1ldGhvZCBkb2VzIG5vdCBndWFyYW50ZWUgY29ycmVjdCByZXN1bHRzIGZvciB0cmFpbCBzdXJyb2dhdGVzLgorICAgICogQHBhcmFtIGNoIGxlYWQgc3Vycm9nYXRlIGNoYXJhY3RlcgorICAgICogQHJldHVybiBkYXRhIHZhbHVlCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgY2hhciBnZXRMZWFkVmFsdWUoY2hhciBjaCkKKyAgICB7CisgICAgICAgcmV0dXJuIG1fZGF0YV9bZ2V0TGVhZE9mZnNldChjaCldOworICAgIH0KKworICAgIC8qKgorICAgICogR2V0IHRoZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIEJNUCBjb2RlIHBvaW50LgorICAgICogTGVhZCBzdXJyb2dhdGUgY29kZSBwb2ludHMgYXJlIHRyZWF0ZWQgYXMgbm9ybWFsIGNvZGUgcG9pbnRzLCB3aXRoCisgICAgKiB1bmZvbGRlZCB2YWx1ZXMgdGhhdCBtYXkgZGlmZmVyIGZyb20gZ2V0TGVhZFZhbHVlKCkgcmVzdWx0cy4KKyAgICAqIEBwYXJhbSBjaCB0aGUgaW5wdXQgQk1QIGNvZGUgcG9pbnQKKyAgICAqIEByZXR1cm4gdHJpZSBkYXRhIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUgQk1QIGNvZGVwb2ludAorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHVibGljIGZpbmFsIGNoYXIgZ2V0Qk1QVmFsdWUoY2hhciBjaCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2RhdGFfW2dldEJNUE9mZnNldChjaCldOworICAgIH0KKworICAgIC8qKgorICAgICogR2V0IHRoZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggYSBwYWlyIG9mIHN1cnJvZ2F0ZXMuCisgICAgKiBAcGFyYW0gbGVhZCBhIGxlYWQgc3Vycm9nYXRlCisgICAgKiBAcGFyYW0gdHJhaWwgYSB0cmFpbCBzdXJyb2dhdGUKKyAgICAqIEBwYXJhbSB0cmllIGRhdGEgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBzdXJyb2dhdGUgY2hhcmFjdGVycworICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHVibGljIGZpbmFsIGNoYXIgZ2V0U3Vycm9nYXRlVmFsdWUoY2hhciBsZWFkLCBjaGFyIHRyYWlsKQorICAgIHsKKyAgICAJaW50IG9mZnNldCA9IGdldFN1cnJvZ2F0ZU9mZnNldChsZWFkLCB0cmFpbCk7CisgICAgCWlmIChvZmZzZXQgPiAwKSB7CisgICAgICAgICAgICByZXR1cm4gbV9kYXRhX1tvZmZzZXRdOworICAgICAgICB9CisgICAgICAgIHJldHVybiBtX2luaXRpYWxWYWx1ZV87CisgICAgfQorCisgICAgLyoqCisgICAgKiA8cD5HZXQgYSB2YWx1ZSBmcm9tIGEgZm9sZGluZyBvZmZzZXQgKGZyb20gdGhlIHZhbHVlIG9mIGEgbGVhZCBzdXJyb2dhdGUpCisgICAgKiBhbmQgYSB0cmFpbCBzdXJyb2dhdGUuPC9wPgorICAgICogPHA+SWYgdGhlIAorICAgICogQHBhcmFtIGxlYWR2YWx1ZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIGxlYWQgc3Vycm9nYXRlIHdoaWNoIGNvbnRhaW5zCisgICAgKiAgICAgICAgdGhlIGZvbGRpbmcgb2Zmc2V0CisgICAgKiBAcGFyYW0gdHJhaWwgc3Vycm9nYXRlCisgICAgKiBAcmV0dXJuIHRyaWUgZGF0YSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIHRyYWlsIGNoYXJhY3RlcgorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHVibGljIGZpbmFsIGNoYXIgZ2V0VHJhaWxWYWx1ZShpbnQgbGVhZHZhbHVlLCBjaGFyIHRyYWlsKQorICAgIHsKKyAgICAgICAgaWYgKG1fZGF0YU1hbmlwdWxhdGVfID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBmaWVsZCBEYXRhTWFuaXB1bGF0ZSBpbiB0aGlzIFRyaWUgaXMgbnVsbCIpOworICAgICAgICB9CisgICAgICAgIGludCBvZmZzZXQgPSBtX2RhdGFNYW5pcHVsYXRlXy5nZXRGb2xkaW5nT2Zmc2V0KGxlYWR2YWx1ZSk7CisgICAgICAgIGlmIChvZmZzZXQgPiAwKSB7CisJICAgICAgICByZXR1cm4gbV9kYXRhX1tnZXRSYXdPZmZzZXQob2Zmc2V0LAorIAkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcikodHJhaWwgJiBTVVJST0dBVEVfTUFTS18pKV07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1faW5pdGlhbFZhbHVlXzsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHA+R2V0cyB0aGUgbGF0aW4gMSBmYXN0IHBhdGggdmFsdWUuPC9wPgorICAgICAqIDxwPk5vdGUgdGhpcyBvbmx5IHdvcmtzIGlmIGxhdGluIDEgY2hhcmFjdGVycyBoYXZlIHRoZWlyIG93biBsaW5lYXIgCisgICAgICogYXJyYXkuPC9wPgorICAgICAqIEBwYXJhbSBjaCBsYXRpbiAxIGNoYXJhY3RlcnMKKyAgICAgKiBAcmV0dXJuIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCBsYXRpbiBjaGFyYWN0ZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgY2hhciBnZXRMYXRpbjFMaW5lYXJWYWx1ZShjaGFyIGNoKSAKKyAgICB7CisgICAgCXJldHVybiBtX2RhdGFfW0lOREVYX1NUQUdFXzNfTUFTS18gKyAxICsgbV9kYXRhT2Zmc2V0XyArIGNoXTsKKyAgICB9CisKKyAgICAvLyBwcm90ZWN0ZWQgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgKiA8cD5QYXJzZXMgdGhlIGlucHV0IHN0cmVhbSBhbmQgc3RvcmVzIGl0cyB0cmllIGNvbnRlbnQgaW50byBhIGluZGV4IGFuZAorICAgICogZGF0YSBhcnJheTwvcD4KKyAgICAqIEBwYXJhbSBpbnB1dFN0cmVhbSBkYXRhIGlucHV0IHN0cmVhbSBjb250YWluaW5nIHRyaWUgZGF0YQorICAgICogQGV4Y2VwdGlvbiBJT0V4Y2VwdGlvbiB0aHJvd24gd2hlbiBkYXRhIHJlYWRpbmcgZmFpbHMKKyAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCB2b2lkIHVuc2VyaWFsaXplKElucHV0U3RyZWFtIGlucHV0U3RyZWFtKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgRGF0YUlucHV0U3RyZWFtIGlucHV0ID0gbmV3IERhdGFJbnB1dFN0cmVhbShpbnB1dFN0cmVhbSk7CisgICAgICAgIGludCBpbmRleERhdGFMZW5ndGggPSBtX2RhdGFPZmZzZXRfICsgbV9kYXRhTGVuZ3RoXzsKKyAgICAgICAgbV9pbmRleF8gPSBuZXcgY2hhcltpbmRleERhdGFMZW5ndGhdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGluZGV4RGF0YUxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgbV9pbmRleF9baV0gPSBpbnB1dC5yZWFkQ2hhcigpOworICAgICAgICB9CisgICAgICAgIG1fZGF0YV8gICAgICAgICAgID0gbV9pbmRleF87CisgICAgICAgIG1faW5pdGlhbFZhbHVlXyAgID0gbV9kYXRhX1ttX2RhdGFPZmZzZXRfXTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBHZXRzIHRoZSBvZmZzZXQgdG8gdGhlIGRhdGEgd2hpY2ggdGhlIHN1cnJvZ2F0ZSBwYWlyIHBvaW50cyB0by4KKyAgICAqIEBwYXJhbSBsZWFkIGxlYWQgc3Vycm9nYXRlCisgICAgKiBAcGFyYW0gdHJhaWwgdHJhaWxpbmcgc3Vycm9nYXRlCisgICAgKiBAcmV0dXJuIG9mZnNldCB0byBkYXRhCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgaW50IGdldFN1cnJvZ2F0ZU9mZnNldChjaGFyIGxlYWQsIGNoYXIgdHJhaWwpCisgICAgeworICAgICAgICBpZiAobV9kYXRhTWFuaXB1bGF0ZV8gPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE51bGxQb2ludGVyRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIGZpZWxkIERhdGFNYW5pcHVsYXRlIGluIHRoaXMgVHJpZSBpcyBudWxsIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIGdldCBmb2xkIHBvc2l0aW9uIGZvciB0aGUgbmV4dCB0cmFpbCBzdXJyb2dhdGUKKyAgICAgICAgaW50IG9mZnNldCA9IG1fZGF0YU1hbmlwdWxhdGVfLmdldEZvbGRpbmdPZmZzZXQoZ2V0TGVhZFZhbHVlKGxlYWQpKTsKKworICAgICAgICAvLyBnZXQgdGhlIHJlYWwgZGF0YSBmcm9tIHRoZSBmb2xkZWQgbGVhZC90cmFpbCB1bml0cworICAgICAgICBpZiAob2Zmc2V0ID4gMCkgeworICAgICAgICAgICAgcmV0dXJuIGdldFJhd09mZnNldChvZmZzZXQsIChjaGFyKSh0cmFpbCAmIFNVUlJPR0FURV9NQVNLXykpOworICAgICAgICB9CisKKyAgICAgICAgLy8gcmV0dXJuIC0xIGlmIHRoZXJlIGlzIGFuIGVycm9yLCBpbiB0aGlzIGNhc2Ugd2UgcmV0dXJuIHRoZSBkZWZhdWx0CisgICAgICAgIC8vIHZhbHVlOiBtX2luaXRpYWxWYWx1ZV8KKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIHZhbHVlIGF0IHRoZSBhcmd1bWVudCBpbmRleC4KKyAgICAqIEZvciB1c2UgaW50ZXJuYWxseSBpbiBjb20uaWJtLmljdS51dGlsLlRyaWVFbnVtZXJhdGlvbi4KKyAgICAqIEBwYXJhbSBpbmRleCB2YWx1ZSBhdCBpbmRleCB3aWxsIGJlIHJldHJpZXZlZAorICAgICogQHJldHVybiAzMiBiaXQgdmFsdWUKKyAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5UcmllRW51bWVyYXRpb24KKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCBpbnQgZ2V0VmFsdWUoaW50IGluZGV4KQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZGF0YV9baW5kZXhdOworICAgIH0KKworICAgIC8qKgorICAgICogR2V0cyB0aGUgZGVmYXVsdCBpbml0aWFsIHZhbHVlCisgICAgKiBAcmV0dXJuIDMyIGJpdCB2YWx1ZSAKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCBpbnQgZ2V0SW5pdGlhbFZhbHVlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2luaXRpYWxWYWx1ZV87CisgICAgfQorICAKKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgKiBEZWZhdWx0IHZhbHVlCisgICAgKi8KKyAgICBwcml2YXRlIGNoYXIgbV9pbml0aWFsVmFsdWVfOworICAgIC8qKgorICAgICogQXJyYXkgb2YgY2hhciBkYXRhCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgY2hhciBtX2RhdGFfW107Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9DaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYzEwMWIyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyLmphdmEKQEAgLTAsMCArMSwxNzcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC91c3IvY3ZzL2ljdTRqL2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVUNoYXJhY3Rlckl0ZXJhdG9yLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDYvMjAgMDE6MTg6MDcgJCAKKyAqICRSZXZpc2lvbjogMS4xICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CisKKy8qKgorICogVGhpcyBjbGFzcyBpcyBhIHdyYXBwZXIgYXJvdW5kIENoYXJhY3Rlckl0ZXJhdG9yIGFuZCBpbXBsZW1lbnRzIHRoZSAKKyAqIFVDaGFyYWN0ZXJJdGVyYXRvciBwcm90b2NvbAorICogQGF1dGhvciByYW0KKyAqLworCitwdWJsaWMgY2xhc3MgQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyIGV4dGVuZHMgVUNoYXJhY3Rlckl0ZXJhdG9yIHsKKyAgICAKKyAgICBwcml2YXRlIENoYXJhY3Rlckl0ZXJhdG9yIGl0ZXJhdG9yOworICAgIAorICAgIC8qKgorICAgICAqIGxlbmd0aAorICAgICAqLworICAgIHByaXZhdGUgaW50IGxlbmd0aDsKKyAgICAKKyAgICBwdWJsaWMgQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyKENoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIpeworICAgICAgICBpZihpdGVyPT1udWxsKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICBpdGVyYXRvciAgICAgPSBpdGVyOworICAgICAgICBsZW5ndGggICAgICAgPSBpdGVyLmdldEVuZEluZGV4KCkgLSBpdGVyLmdldEJlZ2luSW5kZXgoKTsgICAgCisgICAgfQorCisgICAgLyoqCisgICAgICogQHNlZSBVQ2hhcmFjdGVySXRlcmF0b3IjY3VycmVudCgpCisgICAgICovCisgICAgcHVibGljIGludCBjdXJyZW50KCkgeworCS8qCWlmIChjdXJyZW50SW5kZXggPCBsZW5ndGgpIHsKKwkJICAgIHJldHVybiBpdGVyYXRvci5zZXRJbmRleChiZWdpbkluZGV4ICsgY3VycmVudEluZGV4KTsKKwkJfQorICAgICovCisgICAgICAgIGludCBjID0gaXRlcmF0b3IuY3VycmVudCgpOworICAgICAgICBpZihjPT1pdGVyYXRvci5ET05FKXsKKwkJICByZXR1cm4gRE9ORTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAc2VlIFVDaGFyYWN0ZXJJdGVyYXRvciNnZXRMZW5ndGgoKQorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TGVuZ3RoKCkgeworCSAgICByZXR1cm4gbGVuZ3RoOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBzZWUgVUNoYXJhY3Rlckl0ZXJhdG9yI2dldEluZGV4KCkKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEluZGV4KCkgeworCSAgICAvL3JldHVybiBjdXJyZW50SW5kZXg7CisgICAgICAgIHJldHVybiBpdGVyYXRvci5nZXRJbmRleCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBzZWUgVUNoYXJhY3Rlckl0ZXJhdG9yI25leHQoKQorICAgICAqLworICAgIHB1YmxpYyBpbnQgbmV4dCgpIHsKKwkJLyppZihjdXJyZW50SW5kZXggPCBsZW5ndGgpeworCQkgICAgcmV0dXJuIGl0ZXJhdG9yLnNldEluZGV4KGJlZ2luSW5kZXggKyBjdXJyZW50SW5kZXgrKyk7CisJCX0KKyAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgICovCisgICAgICAgIGludCBpID0gaXRlcmF0b3IuY3VycmVudCgpOworICAgICAgICBpdGVyYXRvci5uZXh0KCk7CisgICAgICAgIGlmKGk9PWl0ZXJhdG9yLkRPTkUpeyAgCisJCSAgcmV0dXJuIERPTkU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHNlZSBVQ2hhcmFjdGVySXRlcmF0b3IjcHJldmlvdXMoKQorICAgICAqLworICAgIHB1YmxpYyBpbnQgcHJldmlvdXMoKSB7CisJICAgIC8qaWYoY3VycmVudEluZGV4PjApeworCSAgICAgICAgcmV0dXJuIGl0ZXJhdG9yLnNldEluZGV4KGJlZ2luSW5kZXggKyAtLWN1cnJlbnRJbmRleCk7CisJICAgIH0KKyAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgICovCisgICAgICAgIGludCBpID0gaXRlcmF0b3IucHJldmlvdXMoKTsKKyAgICAgICAgaWYoaT09aXRlcmF0b3IuRE9ORSl7CisgICAgICAgICAgICByZXR1cm4gRE9ORTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAc2VlIFVDaGFyYWN0ZXJJdGVyYXRvciNzZXRJbmRleChpbnQpCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0SW5kZXgoaW50IGluZGV4KSB7CisJCS8qaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+IGxlbmd0aCkgeworCQkgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oKTsKKwkJfQorCQljdXJyZW50SW5kZXggPSBpbmRleDsKKyAgICAgICAgKi8KKyAgICAgICAgdHJ5eworICAgICAgICAgICAgaXRlcmF0b3Iuc2V0SW5kZXgoaW5kZXgpOworICAgICAgICB9Y2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpeworICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEBzZWUgVUNoYXJhY3Rlckl0ZXJhdG9yI3NldFRvTGltaXQoKQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRvTGltaXQoKSB7CisJCWl0ZXJhdG9yLnNldEluZGV4KGxlbmd0aCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHNlZSBVQ2hhcmFjdGVySXRlcmF0b3IjZ2V0VGV4dChjaGFyW10pCisgICAgICovCisgICAgcHVibGljIGludCBnZXRUZXh0KGNoYXJbXSBmaWxsSW4sIGludCBvZmZzZXQpeworICAgICAgICBpbnQgY3VycmVudEluZGV4ID0gaXRlcmF0b3IuZ2V0SW5kZXgoKTsKKyAgICAgICAgaWYob2Zmc2V0IDwgMCB8fCBvZmZzZXQgKyBsZW5ndGggPiBmaWxsSW4ubGVuZ3RoKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKEludGVnZXIudG9TdHJpbmcobGVuZ3RoKSk7CisgICAgICAgIH0KKwkKKyAgICAgICAgZm9yIChjaGFyIGNoID0gaXRlcmF0b3IuZmlyc3QoKTsgY2ggIT0gaXRlcmF0b3IuRE9ORTsgY2ggPSBpdGVyYXRvci5uZXh0KCkpIHsKKwkgICAgICAgIGZpbGxJbltvZmZzZXQrK10gPSBjaDsKKwkgICAgfQorCSAgICBpdGVyYXRvci5zZXRJbmRleChjdXJyZW50SW5kZXgpOworCisgICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIGNsb25lIG9mIHRoaXMgaXRlcmF0b3IuICBDbG9uZXMgdGhlIHVuZGVybHlpbmcgY2hhcmFjdGVyIGl0ZXJhdG9yLgorICAgICAqIEBzZWUgVUNoYXJhY3Rlckl0ZXJhdG9yI2Nsb25lKCkKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCl7CisJCXRyeSB7CisJCSAgICBDaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXIgcmVzdWx0ID0gKENoYXJhY3Rlckl0ZXJhdG9yV3JhcHBlcikgc3VwZXIuY2xvbmUoKTsKKwkJICAgIHJlc3VsdC5pdGVyYXRvciA9IChDaGFyYWN0ZXJJdGVyYXRvcil0aGlzLml0ZXJhdG9yLmNsb25lKCk7CisJCSAgICByZXR1cm4gcmVzdWx0OworCQl9IGNhdGNoIChDbG9uZU5vdFN1cHBvcnRlZEV4Y2VwdGlvbiBlKSB7ICAgICAgCisgICAgICAgICAgICByZXR1cm4gbnVsbDsgLy8gb25seSBpbnZva2VkIGlmIGJhZCB1bmRlcmx5aW5nIGNoYXJhY3RlciBpdGVyYXRvcgorCQl9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEBzZWUgVUNoYXJhY3Rlckl0ZXJhdG9yI21vdmVJbmRleCgpCisgICAgICovCisgICAgcHVibGljIGludCBtb3ZlSW5kZXgoaW50IGluZGV4KXsKKyAgICAgICAgaW50IGlkeCA9IGl0ZXJhdG9yLmdldEluZGV4KCkraW5kZXg7CisgICAgICAgIAorICAgICAgICBpZihpZHggPCAwKSB7CisJICAgICAgICBpZHggPSAwOworCQl9IGVsc2UgaWYoaWR4ID4gbGVuZ3RoKSB7CisJCSAgICBpZHggPSBsZW5ndGg7CisJCX0KKyAgICAgICAgcmV0dXJuIGl0ZXJhdG9yLnNldEluZGV4KGlkeCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEBzZWUgVUNoYXJhY3Rlckl0ZXJhdG9yI2dldENoYXJhY3Rlckl0ZXJhdG9yKCkKKyAgICAgKi8KKyAgICBwdWJsaWMgQ2hhcmFjdGVySXRlcmF0b3IgZ2V0Q2hhcmFjdGVySXRlcmF0b3IoKXsKKyAgICAgICAgcmV0dXJuIChDaGFyYWN0ZXJJdGVyYXRvcilpdGVyYXRvci5jbG9uZSgpOworICAgIH0gCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VCaW5hcnkuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVUJpbmFyeS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM1ZjI0NzIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VCaW5hcnkuamF2YQpAQCAtMCwwICsxLDE0OCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVQmluYXJ5LmphdmEsdiAkCisgKiAkRGF0ZTogMjAwMi8wOC8wMSAxOTo1MDoyNiAkCisgKiAkUmV2aXNpb246IDEuNiAkCisgKiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkRhdGFJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBJQ1VCaW5hcnkgCit7ICAgIAorICAgIC8qKgorICAgICogPHA+SUNVIGRhdGEgaGVhZGVyIHJlYWRlciBtZXRob2QuIAorICAgICogVGFrZXMgYSBJQ1UgZ2VuZXJhdGVkIGJpZy1lbmRpYW4gaW5wdXQgc3RyZWFtLCBwYXJzZSB0aGUgSUNVIHN0YW5kYXJkIAorICAgICogZmlsZSBoZWFkZXIgYW5kIGF1dGhlbnRpY2F0ZXMgdGhlbS48L3A+CisgICAgKiA8cD5IZWFkZXIgZm9ybWF0OiAKKyAgICAqIDx1bD4KKyAgICAqICAgICA8bGk+IEhlYWRlciBzaXplIChjaGFyKQorICAgICogICAgIDxsaT4gTWFnaWMgbnVtYmVyIDEgKGJ5dGUpCisgICAgKiAgICAgPGxpPiBNYWdpYyBudW1iZXIgMiAoYnl0ZSkKKyAgICAqICAgICA8bGk+IFJlc3Qgb2YgdGhlIGhlYWRlciBzaXplIChjaGFyKQorICAgICogICAgIDxsaT4gUmVzZXJ2ZWQgd29yZCAoY2hhcikKKyAgICAqICAgICA8bGk+IEJpZyBlbmRpYW4gaW5kaWNhdG9yIChieXRlKQorICAgICogICAgIDxsaT4gQ2hhcmFjdGVyIHNldCBmYW1pbHkgaW5kaWNhdG9yIChieXRlKQorICAgICogICAgIDxsaT4gU2l6ZSBvZiBhIGNoYXIgKGJ5dGUpIGZvciBjKysgYW5kIGMgdXNlCisgICAgKiAgICAgPGxpPiBSZXNlcnZlZCBieXRlIChieXRlKQorICAgICogICAgIDxsaT4gRGF0YSBmb3JtYXQgaWRlbnRpZmllciAoNCBieXRlcyksIGVhY2ggSUNVIGRhdGEgaGFzIGl0cyBvd24KKyAgICAqICAgICAgICAgIGlkZW50aWZpZXIgdG8gZGlzdGluZ3Vpc2ggdGhlbS4gWzBdIG1ham9yIFsxXSBtaW5vciAKKyAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzJdIG1pbGxpIFszXSBtaWNybyAKKyAgICAqICAgICA8bGk+IERhdGEgdmVyc2lvbiAoNCBieXRlcyksIHRoZSBjaGFuZ2UgdmVyc2lvbiBvZiB0aGUgSUNVIGRhdGEKKyAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMF0gbWFqb3IgWzFdIG1pbm9yIFsyXSBtaWxsaSBbM10gbWljcm8gCisgICAgKiAgICAgPGxpPiBVbmljb2RlIHZlcnNpb24gKDQgYnl0ZXMpIHRoaXMgSUNVIGlzIGJhc2VkIG9uLgorICAgICogPC91bD4KKyAgICAqIDwvcD4KKyAgICAqIDxwPgorICAgICogRXhhbXBsZSBvZiB1c2U6PGJyPgorICAgICogPHByZT4KKyAgICAqIHRyeSB7CisgICAgKiAgICBGaWxlSW5wdXRTdHJlYW0gaW5wdXQgPSBuZXcgRmlsZUlucHV0U3RyZWFtKGZpbGVuYW1lKTsKKyAgICAqICAgIElmIChVdGlsaXR5LnJlYWRJQ1VEYXRhSGVhZGVyKGlucHV0LCBkYXRhZm9ybWF0LCBkYXRhdmVyc2lvbiwgCisgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmljb2RlKSB7CisgICAgKiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJWZXJpZmllZCBmaWxlIGhlYWRlciwgdGhpcyBpcyBhIElDVSBkYXRhIGZpbGUiKTsKKyAgICAqICAgIH0KKyAgICAqIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAqICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVGhpcyBpcyBub3QgYSBJQ1UgZGF0YSBmaWxlIik7CisgICAgKiB9CisgICAgKiA8L3ByZT4KKyAgICAqIDwvcD4KKyAgICAqIEBwYXJhbSBpbnB1dFN0cmVhbSBpbnB1dCBzdHJlYW0gdGhhdCBjb250YWlucyB0aGUgSUNVIGRhdGEgaGVhZGVyCisgICAgKiBAcGFyYW0gZGF0YUZvcm1hdElERXhwZWN0ZWQgRGF0YSBmb3JtYXQgZXhwZWN0ZWQuIEFuIGFycmF5IG9mIDQgYnl0ZXMgCisgICAgKiAgICAgICAgICAgICAgICAgICAgIGluZm9ybWF0aW9uIGFib3V0IHRoZSBkYXRhIGZvcm1hdC4KKyAgICAqICAgICAgICAgICAgICAgICAgICAgRS5nLiBkYXRhIGZvcm1hdCBJRCAxLjIuMy40LiB3aWxsIGJlY2FtZSBhbiBhcnJheSBvZiAKKyAgICAqICAgICAgICAgICAgICAgICAgICAgezEsIDIsIDMsIDR9CisgICAgKiBAcGFyYW0gZGF0YVZlcnNpb25FeHBlY3RlZCBEYXRhIHZlcnNpb24gZXhwZWN0ZWQuIEFuIGFycmF5IG9mIDQgYnl0ZXMgCisgICAgKiAgICAgICAgICAgICAgICAgICAgIGluZm9ybWF0aW9uIGFib3V0IHRoZSBkYXRhIHZlcnNpb24uCisgICAgKiAgICAgICAgICAgICAgICAgICAgIEUuZy4gZGF0YSB2ZXJzaW9uIDEuMi4zLjQuIHdpbGwgYmVjYW1lIGFuIGFycmF5IG9mIAorICAgICogICAgICAgICAgICAgICAgICAgICB7MSwgMiwgMywgNH0KKyAgICAqIEBwYXJhbSB1bmljb2RlVmVyc2lvbkV4cGVjdGVkIFVuaWNvZGUgdmVyc2lvbiBleHBlY3RlZC4gQW4gYXJyYXkgb2YgNCAKKyAgICAqICAgICAgICAgICAgICAgICAgICAgYnl0ZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHVuaWNvZGUKKyAgICAqICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbiB0aGlzIHNldCBvZiBkYXRhIGJlbG9uZ3MgdG8uCisgICAgKiAgICAgICAgICAgICAgICAgICAgIEUuZy4gdW5pY29kZSB2ZXJzaW9uIDMuMS4xLjAuIHdpbGwgYmVjYW1lIGFuIGFycmF5IAorICAgICogICAgICAgICAgICAgICAgICAgICBvZiB7MywgMSwgMSwgMH0KKyAgICAqIEBleGNlcHRpb24gSU9FeGNlcHRpb24gdGhyb3duIGlmIHRoZXJlIGlzIGEgcmVhZCBlcnJvciBvciAKKyAgICAqICAgICAgICAgICAgd2hlbiBoZWFkZXIgYXV0aGVudGljYXRpb24gZmFpbHMuCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGVbXSByZWFkSGVhZGVyKElucHV0U3RyZWFtIGlucHV0U3RyZWFtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGUgZGF0YUZvcm1hdElERXhwZWN0ZWRbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlIGRhdGFWZXJzaW9uRXhwZWN0ZWRbXSkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICBEYXRhSW5wdXRTdHJlYW0gaW5wdXQgPSBuZXcgRGF0YUlucHV0U3RyZWFtKGlucHV0U3RyZWFtKTsKKyAgICAgICAgY2hhciBoZWFkZXJzaXplID0gaW5wdXQucmVhZENoYXIoKTsKKyAgICAgICAgaGVhZGVyc2l6ZSAtPSAyOworICAgICAgICAvL3JlYWRpbmcgdGhlIGhlYWRlciBmb3JtYXQKKyAgICAgICAgYnl0ZSBtYWdpYzEgPSBpbnB1dC5yZWFkQnl0ZSgpOworICAgICAgICBoZWFkZXJzaXplIC0tOworICAgICAgICBieXRlIG1hZ2ljMiA9IGlucHV0LnJlYWRCeXRlKCk7CisgICAgICAgIGhlYWRlcnNpemUgLS07CisgICAgICAgIGlmIChtYWdpYzEgIT0gTUFHSUMxIHx8IG1hZ2ljMiAhPSBNQUdJQzIpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbihNQUdJQ19OVU1CRVJfQVVUSEVOVElDQVRJT05fRkFJTEVEXyk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlucHV0LnJlYWRDaGFyKCk7IC8vIHJlYWRpbmcgc2l6ZQorICAgICAgICBoZWFkZXJzaXplIC09IDI7CisgICAgICAgIGlucHV0LnJlYWRDaGFyKCk7IC8vIHJlYWRpbmcgcmVzZXJ2ZWQgd29yZAorICAgICAgICBoZWFkZXJzaXplIC09IDI7CisgICAgICAgIGJ5dGUgYmlnZW5kaWFuICAgID0gaW5wdXQucmVhZEJ5dGUoKTsKKyAgICAgICAgaGVhZGVyc2l6ZSAtLTsKKyAgICAgICAgYnl0ZSBjaGFyc2V0ICAgICAgPSBpbnB1dC5yZWFkQnl0ZSgpOworICAgICAgICBoZWFkZXJzaXplIC0tOworICAgICAgICBieXRlIGNoYXJzaXplICAgICA9IGlucHV0LnJlYWRCeXRlKCk7CisgICAgICAgIGhlYWRlcnNpemUgLS07CisgICAgICAgIGlucHV0LnJlYWRCeXRlKCk7IC8vIHJlYWRpbmcgcmVzZXJ2ZWQgYnl0ZQorICAgICAgICBoZWFkZXJzaXplIC0tOworICAgICAgICAgICAgICAgIAorICAgICAgICBieXRlIGRhdGFGb3JtYXRJRFtdID0gbmV3IGJ5dGVbNF07CisgICAgICAgIGlucHV0LnJlYWRGdWxseShkYXRhRm9ybWF0SUQpOworICAgICAgICBoZWFkZXJzaXplIC09IDQ7CisgICAgICAgIGJ5dGUgZGF0YVZlcnNpb25bXSA9IG5ldyBieXRlWzRdOworICAgICAgICBpbnB1dC5yZWFkRnVsbHkoZGF0YVZlcnNpb24pOworICAgICAgICBoZWFkZXJzaXplIC09IDQ7CisgICAgICAgIGJ5dGUgdW5pY29kZVZlcnNpb25bXSA9IG5ldyBieXRlWzRdOworICAgICAgICBpbnB1dC5yZWFkRnVsbHkodW5pY29kZVZlcnNpb24pOworICAgICAgICBoZWFkZXJzaXplIC09IDQ7CisgICAgICAgIGlucHV0LnNraXBCeXRlcyhoZWFkZXJzaXplKTsKKworICAgICAgICBpZiAoYmlnZW5kaWFuICE9IEJJR19FTkRJQU5fIHx8IGNoYXJzZXQgIT0gQ0hBUl9TRVRfIHx8IAorICAgICAgICAgICAgY2hhcnNpemUgIT0gQ0hBUl9TSVpFXyB8fAorICAgICAgICAgICAgIUFycmF5cy5lcXVhbHMoZGF0YUZvcm1hdElERXhwZWN0ZWQsIGRhdGFGb3JtYXRJRCkgfHwKKyAgICAgICAgICAgICFBcnJheXMuZXF1YWxzKGRhdGFWZXJzaW9uRXhwZWN0ZWQsIGRhdGFWZXJzaW9uKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKEhFQURFUl9BVVRIRU5USUNBVElPTl9GQUlMRURfKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdW5pY29kZVZlcnNpb247CisgICAgfQorICAgICAKKyAgICAvLyBwcml2YXRlIHZhcmlhYmxlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIAorICAgIC8qKgorICAgICogTWFnaWMgbnVtYmVycyB0byBhdXRoZW50aWNhdGUgdGhlIGRhdGEgZmlsZQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBNQUdJQzEgPSAoYnl0ZSkweGRhOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgTUFHSUMyID0gKGJ5dGUpMHgyNzsKKyAgICAgIAorICAgIC8qKgorICAgICogRmlsZSBmb3JtYXQgYXV0aGVudGljYXRpb24gdmFsdWVzCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIEJJR19FTkRJQU5fID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIENIQVJfU0VUXyA9IDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBDSEFSX1NJWkVfID0gMjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAvKioKKyAgICAqIEVycm9yIG1lc3NhZ2VzCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgTUFHSUNfTlVNQkVSX0FVVEhFTlRJQ0FUSU9OX0ZBSUxFRF8gPSAKKyAgICAgICAgICAgICAgICAgICAgICAgIklDVSBkYXRhIGZpbGUgZXJyb3I6IE5vdCBhbiBJQ1UgZGF0YSBmaWxlIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSEVBREVSX0FVVEhFTlRJQ0FUSU9OX0ZBSUxFRF8gPQorICAgICAgICAiSUNVIGRhdGEgZmlsZSBlcnJvcjogSGVhZGVyIGF1dGhlbnRpY2F0aW9uIGZhaWxlZCwgcGxlYXNlIGNoZWNrIGlmIHlvdSBoYXZlIHRoZSBtb3N0IHVwZGF0ZWQgSUNVIGRhdGEgZmlsZSI7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VEZWJ1Zy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVRGVidWcuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNzBlYjllCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVRGVidWcuamF2YQpAQCAtMCwwICsxLDEyOCBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVURlYnVnLmphdmEsdiAkCisgKiAkRGF0ZTogMjAwMi8wOC8xMyAyMzo0MDo1MSAkCisgKiAkUmV2aXNpb246IDEuNSAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5WZXJzaW9uSW5mbzsKKworcHVibGljIGZpbmFsIGNsYXNzIElDVURlYnVnIHsKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgcGFyYW1zOworICAgIHN0YXRpYyB7CisJdHJ5IHsKKwkgICAgcGFyYW1zID0gU3lzdGVtLmdldFByb3BlcnR5KCJJQ1VEZWJ1ZyIpOworCX0KKwljYXRjaCAoU2VjdXJpdHlFeGNlcHRpb24gZSkgeworCX0KKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBkZWJ1ZyA9IHBhcmFtcyAhPSBudWxsOworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaGVscCA9IGRlYnVnICYmIChwYXJhbXMuZXF1YWxzKCIiKSB8fCBwYXJhbXMuaW5kZXhPZigiaGVscCIpICE9IC0xKTsKKworICAgIHN0YXRpYyB7CisJaWYgKGRlYnVnKSB7CisJICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXG5JQ1VEZWJ1Zz0iICsgcGFyYW1zKTsKKwl9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgamF2YVZlcnNpb25TdHJpbmcgPSBTeXN0ZW0uZ2V0UHJvcGVydHkoImphdmEudmVyc2lvbiIpOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYm9vbGVhbiBpc0pESzE0T3JIaWdoZXI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBWZXJzaW9uSW5mbyBqYXZhVmVyc2lvbjsKKworICAgIHB1YmxpYyBzdGF0aWMgVmVyc2lvbkluZm8gZ2V0SW5zdGFuY2VMZW5pZW50KFN0cmluZyBzKSB7CisJLy8gY2xlYW4gc3RyaW5nCisJLy8gcHJlc2VydmUgb25seSBkaWdpdHMsIHNlcGFyYXRlZCBieSBzaW5nbGUgJy4nIAorCS8vIGlnbm9yZSBvdmVyIDQgZGlnaXQgc2VxdWVuY2VzCisJLy8gZG9lcyBub3QgdGVzdCA8IDI1NSwgdmVyeSBvZGQuLi4KKworCWNoYXJbXSBjaGFycyA9IHMudG9DaGFyQXJyYXkoKTsKKwlpbnQgciA9IDAsIHcgPSAwLCBjb3VudCA9IDA7CisJYm9vbGVhbiBudW1lcmljID0gZmFsc2U7IC8vIGlnbm9yZSBsZWFkaW5nIG5vbi1udW1lcmljcworCXdoaWxlIChyIDwgY2hhcnMubGVuZ3RoKSB7CisJICAgIGNoYXIgYyA9IGNoYXJzW3IrK107CisJICAgIGlmIChjIDwgJzAnIHx8IGMgPiAnOScpIHsKKwkJaWYgKG51bWVyaWMpIHsKKwkJICAgIGlmIChjb3VudCA9PSAzKSB7CisJCQkvLyBvbmx5IGZvdXIgZGlnaXQgc3RyaW5ncyBhbGxvd2VkCisJCQlicmVhazsKKwkJICAgIH0KKwkJICAgIG51bWVyaWMgPSBmYWxzZTsKKwkJICAgIGNoYXJzW3crK10gPSAnLic7CisJCSAgICArK2NvdW50OworCQl9CisJICAgIH0gZWxzZSB7CisJCW51bWVyaWMgPSB0cnVlOworCQljaGFyc1t3KytdID0gYzsKKwkgICAgfQorCX0KKwl3aGlsZSAodyA+IDAgJiYgY2hhcnNbdy0xXSA9PSAnLicpIHsKKwkgICAgLS13OworCX0KKwkKKwlTdHJpbmcgdnMgPSBuZXcgU3RyaW5nKGNoYXJzLCAwLCB3KTsKKworCXJldHVybiBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZSh2cyk7CisgICAgfQorCisgICAgc3RhdGljIHsKKwlqYXZhVmVyc2lvbiA9IGdldEluc3RhbmNlTGVuaWVudChqYXZhVmVyc2lvblN0cmluZyk7CisKKyAgICAgICAgVmVyc2lvbkluZm8gamF2YTE0VmVyc2lvbiA9IFZlcnNpb25JbmZvLmdldEluc3RhbmNlKCIxLjQuMCIpOworCisgICAgICAgIGlzSkRLMTRPckhpZ2hlciA9IGphdmFWZXJzaW9uLmNvbXBhcmVUbyhqYXZhMTRWZXJzaW9uKSA+PSAwOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBlbmFibGVkKCkgeworCXJldHVybiBkZWJ1ZzsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gZW5hYmxlZChTdHJpbmcgYXJnKSB7CisJaWYgKGRlYnVnKSB7CisJICAgIGJvb2xlYW4gcmVzdWx0ID0gcGFyYW1zLmluZGV4T2YoYXJnKSAhPSAtMTsKKwkgICAgaWYgKGhlbHApIFN5c3RlbS5vdXQucHJpbnRsbigiXG5JQ1VEZWJ1Zy5lbmFibGVkKCIgKyBhcmcgKyAiKSA9ICIgKyByZXN1bHQpOworCSAgICByZXR1cm4gcmVzdWx0OworCX0KKwlyZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgdmFsdWUoU3RyaW5nIGFyZykgeworCVN0cmluZyByZXN1bHQgPSAiZmFsc2UiOworCWlmIChkZWJ1ZykgeworCSAgICBpbnQgaW5kZXggPSBwYXJhbXMuaW5kZXhPZihhcmcpOworCSAgICBpZiAoaW5kZXggIT0gLTEpIHsKKwkJaW5kZXggKz0gYXJnLmxlbmd0aCgpOworCQlpZiAocGFyYW1zLmxlbmd0aCgpID4gaW5kZXggJiYgcGFyYW1zLmNoYXJBdChpbmRleCkgPT0gJz0nKSB7CisJCSAgICBpbmRleCArPSAxOworCQkgICAgaW50IGxpbWl0ID0gcGFyYW1zLmluZGV4T2YoIiwiLCBpbmRleCk7CisJCSAgICByZXN1bHQgPSBwYXJhbXMuc3Vic3RyaW5nKGluZGV4LCBsaW1pdCA9PSAtMSA/IHBhcmFtcy5sZW5ndGgoKSA6IGxpbWl0KTsKKwkJfQorCQlyZXN1bHQgPSAidHJ1ZSI7CisJICAgIH0KKworCSAgICBpZiAoaGVscCkgU3lzdGVtLm91dC5wcmludGxuKCJcbklDVURlYnVnLnZhbHVlKCIgKyBhcmcgKyAiKSA9ICIgKyByZXN1bHQpOworCX0KKwlyZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHN0YXRpYyBwdWJsaWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKwkvLyB0ZXN0CisJU3RyaW5nW10gdGVzdHMgPSB7CisJICAgICIxLjMuMCIsCisJICAgICIxLjMuMF8wMiIsCisJICAgICIxLjMuMWVhIiwKKwkgICAgIjEuNC4xYjQzIiwKKwkgICAgIl9fXzQxX19fNSIsCisJICAgICJ4MS40LjUxeHg4OWVhLjdmIgorCX07CisJZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7ICsraSkgeworCSAgICBTeXN0ZW0ub3V0LnByaW50bG4odGVzdHNbaV0gKyAiID0+ICIgKyBnZXRJbnN0YW5jZUxlbmllbnQodGVzdHNbaV0pKTsKKwl9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVTGlzdFJlc291cmNlQnVuZGxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VMaXN0UmVzb3VyY2VCdW5kbGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNWIzNjA0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVTGlzdFJlc291cmNlQnVuZGxlLmphdmEKQEAgLTAsMCArMSw0MzQgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VMaXN0UmVzb3VyY2VCdW5kbGUuamF2YSx2ICQKKyAqICREYXRlOiAyMDAyLzA4LzEzIDIzOjQwOjUyICQKKyAqICRSZXZpc2lvbjogMS45ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKgorICogQSBsaXN0IHJlc291cmNlIGJ1bmRsZSB0aGF0IGRvZXMgcmVkaXJlY3Rpb24gCisgKiBiZWNhdXNlIG90aGVyd2lzZSBzb21lIG9mIG91ciByZXNvdXJjZSBjbGFzcyBmaWxlcworICogYXJlIHRvbyBiaWcgZm9yIHRoZSBqYXZhIHJ1bnRpbWUgdG8gaGFuZGxlLgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbVJlYWRlcjsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgamF2YS51dGlsLlJlc291cmNlQnVuZGxlOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKKworcHVibGljIGNsYXNzIElDVUxpc3RSZXNvdXJjZUJ1bmRsZSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIElDVURBVEEgPSAiSUNVREFUQSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIElDVV9CVU5ETEVfTkFNRSA9ICJMb2NhbGVFbGVtZW50cyI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIElDVV9QQUNLQUdFX05BTUUgPSJjb20uaWJtLmljdS5pbXBsLmRhdGEiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBFTkNPRElORz0iVVRGLTgiOworICAgIAorICAgIHByb3RlY3RlZCBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUoKSB7CisgICAgfQorCisgICAgcHJpdmF0ZSBIYXNodGFibGUgdmlzaXRlZCA9IG5ldyBIYXNodGFibGUoKTsKKyAgICAvKioKKyAgICAgKiBTdWJjbGFzc2VycyBtdXN0IHN0YXRpY2FsbHkgaW5pdGlhbGl6ZSB0aGlzCisgICAgICovCisgICAgcHJvdGVjdGVkIE9iamVjdFtdW10gY29udGVudHM7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIG91ciBjYWNoZQorICAgICAqLworICAgIHByaXZhdGUgT2JqZWN0W11bXSByZWFsQ29udGVudHM7CisKKyAgICAvKioKKyAgICAgKiBTZWUgYmFzZSBjbGFzcyBkZXNjcmlwdGlvbgorICAgICAqLworICAgIHByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCl7CisJCS8vIHdlIHJlcGxhY2UgYW55IHJlZGlyZWN0ZWQgdmFsdWVzIHdpdGggcmVhbCB2YWx1ZXMgaW4gYSBjbG9uZWQgYXJyYXkKKwkKKwkJaWYgKHJlYWxDb250ZW50cyA9PSBudWxsKSB7CisJCSAgICByZWFsQ29udGVudHMgPSBjb250ZW50czsKKwkJICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY29udGVudHMubGVuZ3RoOyArK2kpIHsKKwkJCQlPYmplY3QgbmV3VmFsdWUgPSBnZXRSZWRpcmVjdGVkUmVzb3VyY2UoKFN0cmluZyljb250ZW50c1tpXVswXSxjb250ZW50c1tpXVsxXSk7CisJCQkJaWYgKG5ld1ZhbHVlICE9IG51bGwpIHsKKwkJCQkgICAgaWYgKHJlYWxDb250ZW50cyA9PSBjb250ZW50cykgeworCQkJCQkgICAgIHJlYWxDb250ZW50cyA9IChPYmplY3RbXVtdKWNvbnRlbnRzLmNsb25lKCk7CisJCQkJICAgIH0KKwkJCQkgICAgcmVhbENvbnRlbnRzW2ldID0gbmV3IE9iamVjdFtdIHsgY29udGVudHNbaV1bMF0sIG5ld1ZhbHVlIH07CisJCQkJfQorCQkgICAgfQorCQl9CisJCisJCXJldHVybiByZWFsQ29udGVudHM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIG51bGwgaWYgdmFsdWUgaXMgYWxyZWFkeSBpbiBleGlzdGluZyBjb250ZW50cyBhcnJheSwgb3RoZXJ3aXNlIGZldGNoIHRoZQorICAgICAqIHJlYWwgdmFsdWUgYW5kIHJldHVybiBpdC4KKyAgICAgKi8KKyAgICBwcml2YXRlIE9iamVjdCBnZXRSZWRpcmVjdGVkUmVzb3VyY2UoU3RyaW5nIGtleSwgT2JqZWN0IHZhbHVlKSB7CisJCisJCWlmICh2YWx1ZSBpbnN0YW5jZW9mIE9iamVjdFtdW10pIHsKKwkJICAgIE9iamVjdFtdW10gYVZhbHVlID0gKE9iamVjdFtdW10pdmFsdWU7CisgICAgICAgICAgICBpbnQgaT0wOworICAgICAgICAgICAgd2hpbGUoaSA8IGFWYWx1ZS5sZW5ndGgpeworICAgICAgICAgICAgICAgIGludCBqPTA7CisgICAgICAgICAgICAgICAgd2hpbGUoaiA8IGFWYWx1ZVtpXS5sZW5ndGgpeworICAgICAgICAgICAgICAgICAgICBhVmFsdWVbaV1bal0gPSBnZXRSZWRpcmVjdGVkUmVzb3VyY2UoKFN0cmluZylhVmFsdWVbaV1bMF0sYVZhbHVlW2ldW2pdKTsKKyAgICAgICAgICAgICAgICAgICAgaisrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgCisJCX1lbHNlIGlmKHZhbHVlIGluc3RhbmNlb2YgQWxpYXMpeyAgCisgICAgICAgICAgICBTdHJpbmcgY05hbWUgPSB0aGlzLmdldENsYXNzKCkuZ2V0TmFtZSgpOworICAgICAgICAgICAgdmlzaXRlZC5jbGVhcigpOworICAgICAgICAgICAgdmlzaXRlZC5wdXQoY05hbWUra2V5LCIiKTsgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuICgoQWxpYXMpdmFsdWUpLmdldFJlc291cmNlKGNOYW1lLGtleSx2aXNpdGVkKTsKKyAgICAgICAgfWVsc2UgaWYodmFsdWUgaW5zdGFuY2VvZiBSZWRpcmVjdGVkUmVzb3VyY2UpeworICAgICAgICAgICAgcmV0dXJuICgoUmVkaXJlY3RlZFJlc291cmNlKXZhbHVlKS5nZXRSZXNvdXJjZSh0aGlzKTsKKyAgICAgICAgfSAgICAgICAKKwkJCQorCQlyZXR1cm4gdmFsdWU7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgYnl0ZVtdIHJlYWRUb0VPUyhJbnB1dFN0cmVhbSBzdHJlYW0pIHsKKworCQlBcnJheUxpc3QgdmVjID0gbmV3IEFycmF5TGlzdCgpOworCQlpbnQgY291bnQgPSAwOworCQlpbnQgcG9zID0gMDsKKwkJZmluYWwgaW50IE1BWExFTkdUSCA9IDB4ODAwMDsgLy8gbWF4IGJ1ZmZlciBzaXplIC0gMzJLCisJCWludCBsZW5ndGggPSAweDgwOyAvLyBzdGFydCB3aXRoIHNtYWxsIGJ1ZmZlcnMgYW5kIHdvcmsgdXAKKwkJZG8geworCQkgICAgcG9zID0gMDsKKwkJICAgIGxlbmd0aCA9IGxlbmd0aCA+PSBNQVhMRU5HVEggPyBNQVhMRU5HVEggOiBsZW5ndGggKiAyOworCQkgICAgYnl0ZVtdIGJ1ZmZlciA9IG5ldyBieXRlW2xlbmd0aF07CisJCSAgICB0cnkgeworCQkJCWRvIHsKKwkJCQkgICAgaW50IG4gPSBzdHJlYW0ucmVhZChidWZmZXIsIHBvcywgbGVuZ3RoIC0gcG9zKTsKKwkJCQkgICAgaWYgKG4gPT0gLTEpIHsKKwkJCQkJYnJlYWs7CisJCQkJICAgIH0KKwkJCQkgICAgcG9zICs9IG47CisJCQkJfSB3aGlsZSAocG9zIDwgbGVuZ3RoKTsKKwkJICAgIH0KKwkJICAgIGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisJCSAgICB9CisJCSAgICB2ZWMuYWRkKGJ1ZmZlcik7CisJCSAgICBjb3VudCArPSBwb3M7CisJCX0gd2hpbGUgKHBvcyA9PSBsZW5ndGgpOworCQkJCQkJCQorCQkJCQkJCQorCQlieXRlW10gZGF0YSA9IG5ldyBieXRlW2NvdW50XTsKKwkJcG9zID0gMDsKKwkJZm9yIChpbnQgaSA9IDA7IGkgPCB2ZWMuc2l6ZSgpOyArK2kpIHsKKwkJICAgIGJ5dGVbXSBidWYgPSAoYnl0ZVtdKXZlYy5nZXQoaSk7CisJCSAgICBpbnQgbGVuID0gTWF0aC5taW4oYnVmLmxlbmd0aCwgY291bnQgLSBwb3MpOworCQkgICAgU3lzdGVtLmFycmF5Y29weShidWYsIDAsIGRhdGEsIHBvcywgbGVuKTsKKwkJICAgIHBvcyArPSBsZW47CisJCX0KKwkJcmV0dXJuIGRhdGE7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdIHJlYWRUb0VPUyhJbnB1dFN0cmVhbVJlYWRlciBzdHJlYW0pIHsKKwkJQXJyYXlMaXN0IHZlYyA9IG5ldyBBcnJheUxpc3QoKTsKKwkJaW50IGNvdW50ID0gMDsKKwkJaW50IHBvcyA9IDA7CisJCWZpbmFsIGludCBNQVhMRU5HVEggPSAweDgwMDA7IC8vIG1heCBidWZmZXIgc2l6ZSAtIDMySworCQlpbnQgbGVuZ3RoID0gMHg4MDsgLy8gc3RhcnQgd2l0aCBzbWFsbCBidWZmZXJzIGFuZCB3b3JrIHVwCisJCWRvIHsKKwkJICAgIHBvcyA9IDA7CisJCSAgICBsZW5ndGggPSBsZW5ndGggPj0gTUFYTEVOR1RIID8gTUFYTEVOR1RIIDogbGVuZ3RoICogMjsKKwkJICAgIGNoYXJbXSBidWZmZXIgPSBuZXcgY2hhcltsZW5ndGhdOworCQkgICAgdHJ5IHsKKwkJCQlkbyB7CisJCQkJICAgIGludCBuID0gc3RyZWFtLnJlYWQoYnVmZmVyLCBwb3MsIGxlbmd0aCAtIHBvcyk7CisJCQkJICAgIGlmIChuID09IC0xKSB7CisJCQkJCWJyZWFrOworCQkJCSAgICB9CisJCQkJICAgIHBvcyArPSBuOworCQkJCX0gd2hpbGUgKHBvcyA8IGxlbmd0aCk7CisJCSAgICB9CisJCSAgICBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworCQkgICAgfQorCQkgICAgdmVjLmFkZChidWZmZXIpOworCQkgICAgY291bnQgKz0gcG9zOworCQl9IHdoaWxlIChwb3MgPT0gbGVuZ3RoKTsKKwkJCQkJCQkKKwkJY2hhcltdIGRhdGEgPSBuZXcgY2hhcltjb3VudF07CisJCXBvcyA9IDA7CisJCWZvciAoaW50IGkgPSAwOyBpIDwgdmVjLnNpemUoKTsgKytpKSB7CisJCSAgICBjaGFyW10gYnVmID0gKGNoYXJbXSl2ZWMuZ2V0KGkpOworCQkgICAgaW50IGxlbiA9IE1hdGgubWluKGJ1Zi5sZW5ndGgsIGNvdW50IC0gcG9zKTsKKwkJICAgIFN5c3RlbS5hcnJheWNvcHkoYnVmLCAwLCBkYXRhLCBwb3MsIGxlbik7CisJCSAgICBwb3MgKz0gbGVuOworCQl9CisJCXJldHVybiBkYXRhOworICAgIH0KKyAgICAvKgorICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgQ29tcHJlc3NlZFN0cmluZyBpbXBsZW1lbnRzIFJlZGlyZWN0ZWRSZXNvdXJjZXsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgZXhwYW5kZWQ9bnVsbDsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgY29tcHJlc3NlZD1udWxsOworICAgICAgICBwdWJsaWMgQ29tcHJlc3NlZFN0cmluZyhTdHJpbmcgc3RyKXsKKyAgICAgICAgICAgY29tcHJlc3NlZD1zdHI7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIE9iamVjdCBnZXRSZXNvdXJjZShPYmplY3Qgb2JqKXsKKyAgICAgICAgICAgIGlmKGNvbXByZXNzZWQ9PW51bGwpeworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoZXhwYW5kZWQ9PW51bGwpeworICAgICAgICAgICAgICAgIGV4cGFuZGVkPSBuZXcgU3RyaW5nKFV0aWxpdHkuUkxFU3RyaW5nVG9DaGFyQXJyYXkoY29tcHJlc3NlZCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGV4cGFuZGVkOworICAgICAgICB9CisgICAgfQorICAgICovCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBDb21wcmVzc2VkQmluYXJ5IGltcGxlbWVudHMgUmVkaXJlY3RlZFJlc291cmNleworICAgICAgICBwcml2YXRlIGJ5dGVbXSBleHBhbmRlZD1udWxsOworICAgICAgICBwcml2YXRlIFN0cmluZyBjb21wcmVzc2VkPW51bGw7CisgICAgICAgIHB1YmxpYyBDb21wcmVzc2VkQmluYXJ5KFN0cmluZyBzdHIpeworICAgICAgICAgICBjb21wcmVzc2VkID0gc3RyOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBPYmplY3QgZ2V0UmVzb3VyY2UoT2JqZWN0IG9iail7CisgICAgICAgICAgICBpZihjb21wcmVzc2VkPT1udWxsKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYoZXhwYW5kZWQ9PW51bGwpeworICAgICAgICAgICAgICAgIGV4cGFuZGVkPSBVdGlsaXR5LlJMRVN0cmluZ1RvQnl0ZUFycmF5KGNvbXByZXNzZWQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGV4cGFuZGVkOworICAgICAgICB9CisgICAgCisgICAgfQorICAgIHByaXZhdGUgaW50ZXJmYWNlIFJlZGlyZWN0ZWRSZXNvdXJjZXsKKyAgICAgICAgcHVibGljIE9iamVjdCBnZXRSZXNvdXJjZShPYmplY3Qgb2JqKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBSZXNvdXJjZUJpbmFyeSBpbXBsZW1lbnRzIFJlZGlyZWN0ZWRSZXNvdXJjZXsKKyAgICAgICAgcHJpdmF0ZSBieXRlW10gZXhwYW5kZWQ9bnVsbDsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgcmVzTmFtZT1udWxsOworICAgICAgICBwdWJsaWMgUmVzb3VyY2VCaW5hcnkoU3RyaW5nIG5hbWUpeworICAgICAgICAgICAgcmVzTmFtZT1uYW1lOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBPYmplY3QgZ2V0UmVzb3VyY2UoT2JqZWN0IG9iail7CisgICAgICAgICAgICBpZihleHBhbmRlZD09bnVsbCl7CisJICAgICAgICAgICAgSW5wdXRTdHJlYW0gc3RyZWFtID0gb2JqLmdldENsYXNzKCkuZ2V0UmVzb3VyY2VBc1N0cmVhbShyZXNOYW1lKTsKKyAgICAgICAgICAgICAgICBpZihzdHJlYW09PW51bGwpeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKCIiLG9iai5nZXRDbGFzcygpLmdldE5hbWUoKSxyZXNOYW1lKTsKKyAgICAgICAgICAgICAgICB9CisJICAgICAgICAgICAgZXhwYW5kZWQgPSByZWFkVG9FT1Moc3RyZWFtKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBleHBhbmRlZDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFJlc291cmNlU3RyaW5nIGltcGxlbWVudHMgUmVkaXJlY3RlZFJlc291cmNleworICAgICAgICBwcml2YXRlIGNoYXJbXSBleHBhbmRlZD1udWxsOworICAgICAgICBwcml2YXRlIFN0cmluZyByZXNOYW1lPW51bGw7CisgICAgICAgIHB1YmxpYyBSZXNvdXJjZVN0cmluZyhTdHJpbmcgbmFtZSl7CisgICAgICAgICAgICByZXNOYW1lPW5hbWU7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIE9iamVjdCBnZXRSZXNvdXJjZShPYmplY3Qgb2JqKXsKKyAgICAgICAgICAgIGlmKGV4cGFuZGVkPT1udWxsKXsKKyAgICAgICAgICAgICAgICAvLyBSZXNvdXJjZSBzdHJpbmdzIGFyZSBhbHdheXMgVVRGLTgKKyAgICAgICAgICAgICAgICBJbnB1dFN0cmVhbSBzdHJlYW0gPSBvYmouZ2V0Q2xhc3MoKS5nZXRSZXNvdXJjZUFzU3RyZWFtKHJlc05hbWUpOworICAgICAgICAgICAgICAgIGlmKHN0cmVhbT09bnVsbCl7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oIiIsb2JqLmdldENsYXNzKCkuZ2V0TmFtZSgpLHJlc05hbWUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgICAgIElucHV0U3RyZWFtUmVhZGVyIHJlYWRlciA9ICBuZXcgSW5wdXRTdHJlYW1SZWFkZXIoc3RyZWFtLEVOQ09ESU5HKTsKKyAgICAgICAgICAgICAgICAgICAgZXhwYW5kZWQgPSByZWFkVG9FT1MocmVhZGVyKTsKKyAgICAgICAgICAgICAgICB9Y2F0Y2goVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJDb3VsZCBvcGVuIGNvbnZlcnRlciBmb3IgZW5jb2Rpbmc6ICIgK0VOQ09ESU5HKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhleHBhbmRlZCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBBbGlhc3sKKyAgICAgICAgcHVibGljIEFsaWFzKFN0cmluZyBwYXRoKXsKKyAgICAgICAgICAgIHBhdGhUb1Jlc291cmNlID0gcGF0aDsKKyAgICAgICAgfTsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBjaGFyIFJFU19QQVRIX1NFUF9DSEFSID0gJy8nOworICAgICAgICBwcml2YXRlIFN0cmluZyBwYXRoVG9SZXNvdXJjZTsKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBwcml2YXRlIE9iamVjdCBnZXRSZXNvdXJjZShTdHJpbmcgY2xhc3NOYW1lLFN0cmluZyBwYXJlbnRLZXksIEhhc2h0YWJsZSB2aXNpdGVkKXsKKyAgICAgICAgICAgIFN0cmluZyBwYWNrYWdlTmFtZT1udWxsLGJ1bmRsZU5hbWU9bnVsbCwgbG9jYWxlPW51bGwsIGtleVBhdGg9bnVsbDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYocGF0aFRvUmVzb3VyY2UuaW5kZXhPZihSRVNfUEFUSF9TRVBfQ0hBUik9PTApeworICAgICAgICAgICAgICAgIGludCBpID1wYXRoVG9SZXNvdXJjZS5pbmRleE9mKFJFU19QQVRIX1NFUF9DSEFSLDEpOworICAgICAgICAgICAgICAgIGludCBqID1wYXRoVG9SZXNvdXJjZS5pbmRleE9mKFJFU19QQVRIX1NFUF9DSEFSLGkrMSk7CisgICAgICAgICAgICAgICAgYnVuZGxlTmFtZT1wYXRoVG9SZXNvdXJjZS5zdWJzdHJpbmcoMSxpKTsKKyAgICAgICAgICAgICAgICBsb2NhbGU9cGF0aFRvUmVzb3VyY2Uuc3Vic3RyaW5nKGkrMSk7CisgICAgICAgICAgICAgICAgaWYoaiE9LTEpeworICAgICAgICAgICAgICAgICAgICBsb2NhbGU9cGF0aFRvUmVzb3VyY2Uuc3Vic3RyaW5nKGkrMSxqKTsKKyAgICAgICAgICAgICAgICAgICAga2V5UGF0aD1wYXRoVG9SZXNvdXJjZS5zdWJzdHJpbmcoaisxLHBhdGhUb1Jlc291cmNlLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy90aGVyZSBpcyBhIHBhdGggaW5jbHVkZWQgCisgICAgICAgICAgICAgICAgaWYoYnVuZGxlTmFtZS5lcXVhbHMoSUNVREFUQSkpeworICAgICAgICAgICAgICAgICAgICBidW5kbGVOYW1lID0gSUNVX0JVTkRMRV9OQU1FOworICAgICAgICAgICAgICAgICAgICBwYWNrYWdlTmFtZSA9IElDVV9QQUNLQUdFX05BTUU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgLy9ubyBwYXRoIHN0YXJ0IHdpdGggbG9jYWxlCisgICAgICAgICAgICAgICAgaW50IGkgPXBhdGhUb1Jlc291cmNlLmluZGV4T2YoUkVTX1BBVEhfU0VQX0NIQVIpOworICAgICAgICAgICAgICAgIC8vSWYgdGhpcyBpcyBhIGJ1bmRsZSB3aXRoIGxvY2FsZSBuYW1lIGZvbGxvd2luZyBpdAorICAgICAgICAgICAgICAgIC8vdGhlbiBpdCBzaG91bGQgYmUgb2YgdHlwZSA8YnVuZGxlIG5hbWU+Xzxsb2NhbGU+CisgICAgICAgICAgICAgICAgLy9pZiBub3Qgd2UgZG9ub3QgZ3VhcmFudGVlIHRoYXQgdGhpcyB3aWxsIHdvcmsKKyAgICAgICAgICAgICAgICBpbnQgaiA9IGNsYXNzTmFtZS5sYXN0SW5kZXhPZigiLiIpOworICAgICAgICAgICAgICAgIHBhY2thZ2VOYW1lPWNsYXNzTmFtZS5zdWJzdHJpbmcoMCxqKTsKKyAgICAgICAgICAgICAgICBidW5kbGVOYW1lPWNsYXNzTmFtZS5zdWJzdHJpbmcoaisxLGNsYXNzTmFtZS5pbmRleE9mKCJfIikpOworICAgICAgICAgICAgICAgIGtleVBhdGg9cGF0aFRvUmVzb3VyY2Uuc3Vic3RyaW5nKGkrMSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYoaSE9LTEpeworICAgICAgICAgICAgICAgICAgICBsb2NhbGUgPSBwYXRoVG9SZXNvdXJjZS5zdWJzdHJpbmcoMCxpKTsKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgbG9jYWxlPWtleVBhdGg7CisgICAgICAgICAgICAgICAgICAgIGtleVBhdGg9cGFyZW50S2V5OworICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9cGFja2FnZU5hbWUrIi4iK2J1bmRsZU5hbWUrIl8iK2xvY2FsZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgCisgICAgICAgICAgICB9CisgICAgICAgICAgCisgICAgICAgICAgICBSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSBudWxsOworICAgICAgICAgICAgLy8gZ2V0UmVzb3VyY2VCdW5kbGUgZ3VhcmFudGVlcyB0aGF0IHRoZSBDTEFTU1BBVEggd2lsbCBiZSBzZWFyY2hlZAorICAgICAgICAgICAgLy8gZm9yIGxvYWRpbmcgdGhlIHJlc291cmNlIHdpdGggbmFtZSA8YnVuZGxlTmFtZT5fPGxvY2FsZU5hbWU+LmNsYXNzCisgICAgICAgICAgICBidW5kbGUgPSBJQ1VMb2NhbGVEYXRhLmdldFJlc291cmNlQnVuZGxlKHBhY2thZ2VOYW1lLGJ1bmRsZU5hbWUsbG9jYWxlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGZpbmRSZXNvdXJjZShidW5kbGUsY2xhc3NOYW1lLGtleVBhdGgsIHZpc2l0ZWQpOworICAgICAgICB9CisgICAgICAgIAorCisgICAgICAgIAorICAgICAgICBwcml2YXRlIGJvb2xlYW4gaXNJbmRleChTdHJpbmcgcyl7CisgICAgICAgICAgICAgaWYocy5sZW5ndGgoKT09MSl7CisgICAgICAgICAgICAgICAgY2hhciBjID0gcy5jaGFyQXQoMCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIENoYXJhY3Rlci5pc0RpZ2l0KGMpOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBpbnQgZ2V0SW5kZXgoU3RyaW5nIHMpeworICAgICAgICAgICAgIGlmKHMubGVuZ3RoKCk9PTEpeworICAgICAgICAgICAgICAgIGNoYXIgYyA9IHMuY2hhckF0KDApOworICAgICAgICAgICAgICAgIGlmKENoYXJhY3Rlci5pc0RpZ2l0KGMpKXsKKyAgICAgICAgICAgICAgICAgIHJldHVybiBJbnRlZ2VyLnZhbHVlT2YocykuaW50VmFsdWUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICBwcml2YXRlIE9iamVjdCBmaW5kUmVzb3VyY2UoT2JqZWN0W11bXSBjb250ZW50cywgU3RyaW5nIGtleSl7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvbnRlbnRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgLy8ga2V5IG11c3QgYmUgbm9uLW51bGwgU3RyaW5nLCB2YWx1ZSBtdXN0IGJlIG5vbi1udWxsCisgICAgICAgICAgICAgICAgU3RyaW5nIHRlbXBLZXkgPSAoU3RyaW5nKSBjb250ZW50c1tpXVswXTsKKyAgICAgICAgICAgICAgICBPYmplY3QgdmFsdWUgPSBjb250ZW50c1tpXVsxXTsKKyAgICAgICAgICAgICAgICBpZiAodGVtcEtleSA9PSBudWxsIHx8IHZhbHVlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IE51bGxQb2ludGVyRXhjZXB0aW9uKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKHRlbXBLZXkuZXF1YWxzKGtleSkpeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBPYmplY3QgZmluZFJlc291cmNlKE9iamVjdCBvICwgU3RyaW5nW10ga2V5cywgaW50IHN0YXJ0KXsKKyAgICAgICAgICAgIE9iamVjdCBvYmogPSBvOworICAgICAgICAgICAgaWYoIHN0YXJ0IDwga2V5cy5sZW5ndGggJiYga2V5c1tzdGFydF0gIT1udWxsKXsKKwkgICAgICAgICAgICBpZihvYmogaW5zdGFuY2VvZiBPYmplY3RbXVtdKXsKKwkgICAgICAgICAgICAgICAgb2JqID0gZmluZFJlc291cmNlKChPYmplY3RbXVtdKW9iaixrZXlzW3N0YXJ0XSk7ICAgCisJICAgICAgICAgICAgfWVsc2UgaWYob2JqIGluc3RhbmNlb2YgT2JqZWN0W10gJiYgaXNJbmRleChrZXlzW3N0YXJ0XSkpeworICAgICAgICAgICAgICAgICAgICBvYmogPSAoKE9iamVjdFtdKW9iailbZ2V0SW5kZXgoa2V5c1tzdGFydF0pXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYoc3RhcnQrMSA8IGtleXMubGVuZ3RoICYmIGtleXNbc3RhcnQrMV0gIT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgb2JqID0gZmluZFJlc291cmNlKG9iaixrZXlzLHN0YXJ0KzEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBvYmo7CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBPYmplY3QgZmluZFJlc291cmNlKFJlc291cmNlQnVuZGxlIGJ1bmRsZSxTdHJpbmcgY2xhc3NOYW1lLFN0cmluZyBrZXksIEhhc2h0YWJsZSB2aXNpdGVkKXsKKyAgICAgICAgICAgIGlmKGtleT09bnVsbCl7CisgICAgICAgICAgICAgICAgcmV0dXJuICgoSUNVTGlzdFJlc291cmNlQnVuZGxlKWJ1bmRsZSkuZ2V0Q29udGVudHMoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKHZpc2l0ZWQuZ2V0KGNsYXNzTmFtZStrZXkpIT1udWxsKXsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKCJDaXJjdWxhciBBbGlhc2VzIGluIGJ1bmRsZS4iLGJ1bmRsZS5nZXRDbGFzcygpLmdldE5hbWUoKSxrZXkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICB2aXNpdGVkLnB1dChjbGFzc05hbWUra2V5LCIiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nW10ga2V5cyA9IHNwbGl0KGtleSxSRVNfUEFUSF9TRVBfQ0hBUik7CisgICAgICAgICAgICBPYmplY3QgbyA9bnVsbDsKKyAgICAgICAgICAgIGlmKGtleXMubGVuZ3RoPjApeworICAgICAgICAgICAgICAgIG8gPSBidW5kbGUuZ2V0T2JqZWN0KGtleXNbMF0pOworICAgICAgICAgICAgICAgIG8gPSBmaW5kUmVzb3VyY2UobyxrZXlzLDEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbz1yZXNvbHZlQWxpYXNlcyhvLGNsYXNzTmFtZSxrZXksdmlzaXRlZCk7CisgICAgICAgICAgICByZXR1cm4gbzsKKyAgICAgICAgfQorICAgICAgICBwcml2YXRlICBPYmplY3QgcmVzb2x2ZUFsaWFzZXMoT2JqZWN0IG8sU3RyaW5nIGNsYXNzTmFtZSxTdHJpbmcga2V5LCBIYXNodGFibGUgdmlzaXRlZCl7CisgICAgICAgICAgICBpZihvIGluc3RhbmNlb2YgT2JqZWN0W11bXSl7CisgICAgICAgICAgICAgICAgbyA9IHJlc29sdmVBbGlhc2VzKChPYmplY3RbXVtdKW8sY2xhc3NOYW1lLGtleSx2aXNpdGVkKTsKKyAgICAgICAgICAgIH1lbHNlIGlmKG8gaW5zdGFuY2VvZiBPYmplY3RbXSl7CisgICAgICAgICAgICAgICAgIG8gPSByZXNvbHZlQWxpYXNlcygoT2JqZWN0W10pbyxjbGFzc05hbWUsa2V5LHZpc2l0ZWQpOyAgICAgICAgICAgCisgICAgICAgICAgICB9ZWxzZSBpZihvIGluc3RhbmNlb2YgQWxpYXMpeworICAgICAgICAgICAgICAgIHJldHVybiAoKEFsaWFzKW8pLmdldFJlc291cmNlKGNsYXNzTmFtZSxrZXksdmlzaXRlZCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbzsKKyAgICAgICAgfQorICAgICAgICBwcml2YXRlIE9iamVjdCByZXNvbHZlQWxpYXNlcyhPYmplY3RbXVtdIG8sU3RyaW5nIGNsYXNzTmFtZSwgU3RyaW5nIGtleSxIYXNodGFibGUgdmlzaXRlZCl7CisgICAgICAgICAgICBpbnQgaSA9MDsKKyAgICAgICAgICAgIHdoaWxlKGk8by5sZW5ndGgpeworICAgICAgICAgICAgICAgIG9baV1bMV09cmVzb2x2ZUFsaWFzZXMoKE9iamVjdClvW2ldWzFdLGNsYXNzTmFtZSxrZXksdmlzaXRlZCk7CisgICAgICAgICAgICAgICAgaSsrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG87CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBPYmplY3QgcmVzb2x2ZUFsaWFzZXMoT2JqZWN0W10gbyxTdHJpbmcgY2xhc3NOYW1lLCBTdHJpbmcga2V5LEhhc2h0YWJsZSB2aXNpdGVkKXsKKyAgICAgICAgICAgIGludCBpID0wOworICAgICAgICAgICAgd2hpbGUoaTxvLmxlbmd0aCl7CisgICAgICAgICAgICAgICAgb1tpXT1yZXNvbHZlQWxpYXNlcygoT2JqZWN0KW9baV0sY2xhc3NOYW1lLGtleSx2aXNpdGVkKTsKKyAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbzsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmdbXSBzcGxpdChTdHJpbmcgc291cmNlLCBjaGFyIGRlbGltaXRlcil7CisgICAgICAgICAgIAorICAgICAgICAgICAgY2hhcltdIHNyYyA9IHNvdXJjZS50b0NoYXJBcnJheSgpOworICAgICAgICAgICAgaW50IGluZGV4ID0gMDsKKyAgICAgICAgICAgIGludCBudW1kZWxpbWl0PTA7CisgICAgICAgICAgICAvLyBmaXJzdCBjb3VudCB0aGUgbnVtYmVyIG9mIGRlbGltaXRlcnMKKyAgICAgICAgICAgIGZvcihpbnQgaT0wO2k8c291cmNlLmxlbmd0aCgpO2krKyl7CisgICAgICAgICAgICAgICAgaWYoc3JjW2ldPT1kZWxpbWl0ZXIpeworICAgICAgICAgICAgICAgICAgICBudW1kZWxpbWl0Kys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgU3RyaW5nW10gdmFsdWVzID1udWxsOworICAgICAgICAgICAgdmFsdWVzID0gbmV3IFN0cmluZ1tudW1kZWxpbWl0KzJdOworICAgICAgICAgICAgLy8gbm93IHNwbGl0CisgICAgICAgICAgICBpbnQgb2xkPTA7CisgICAgICAgICAgICBmb3IoaW50IGo9MDtqPHNyYy5sZW5ndGg7aisrKXsKKyAgICAgICAgICAgICAgICBpZihzcmNbal09PWRlbGltaXRlcil7CisJICAgICAgICAgICAgICAgIHZhbHVlc1tpbmRleCsrXSA9IG5ldyBTdHJpbmcoc3JjLG9sZCxqLW9sZCk7CisJICAgICAgICAgICAgICAgIG9sZD1qKzEvKiBza2lwIGFmdGVyIHRoZSBkZWxpbWl0ZXIqLzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihvbGQgPHNyYy5sZW5ndGgpCisgICAgICAgICAgICAgICAgdmFsdWVzW2luZGV4KytdPW5ldyBTdHJpbmcoc3JjLG9sZCxzcmMubGVuZ3RoLW9sZCk7CisgICAgICAgICAgICByZXR1cm4gdmFsdWVzOworICAgICAgICB9CisgICAgfQorICAgIAorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VMb2NhbGVEYXRhLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VMb2NhbGVEYXRhLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTYzZGMwNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVUxvY2FsZURhdGEuamF2YQpAQCAtMCwwICsxLDIzNyBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMDIgLSBBbGwgUmlnaHRzIFJlc2VydmVkCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTsKKworCisvKioKKyAqIFByb3ZpZGVzIGluZm9ybWF0aW9uIGFib3V0IGFuZCBhY2Nlc3MgdG8gcmVzb3VyY2UgYnVuZGxlcyBpbiB0aGUKKyAqIGNvbS5pYm0udGV4dC5yZXNvdXJjZXMgcGFja2FnZS4gIFVubGlrZSB0aGUgamF2YSB2ZXJzaW9uLCB0aGlzIGRvZXMKKyAqIG5vdCBpbmNsdWRlIHJlc291cmNlcyBmcm9tIGFueSBvdGhlciBsb2NhdGlvbi4gIEluIHBhcnRpY3VsYXIsIGl0CisgKiBkb2VzIG5vdCBsb29rIGluIHRoZSBib290IG9yIHN5c3RlbSBjbGFzcyBwYXRoLgorICovCitwdWJsaWMgY2xhc3MgSUNVTG9jYWxlRGF0YSB7CisgICAgcHJpdmF0ZSBzdGF0aWMgTG9jYWxlW10gbG9jYWxlTGlzdDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgUEFDS0FHRTEgPSAiY29tLmlibS5pY3UuaW1wbC5kYXRhIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBwYWNrYWdlTmFtZXMgPSB7IFBBQ0tBR0UxIH07CisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBkZWJ1ZyA9IElDVURlYnVnLmVuYWJsZWQoImxvY2FsZWRhdGEiKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBsaXN0IG9mIHRoZSBpbnN0YWxsZWQgbG9jYWxlcy4KKyAgICAgKiBAcGFyYW0ga2V5IEEgcmVzb3VyY2UgdGFnLiAgQ3VycmVudGx5LCB0aGlzIHBhcmFtZXRlciBpcyBpZ25vcmVkLiAgVGhlIG9idmlvdXMKKyAgICAgKiBpbnRlbnQsIGhvd2V2ZXIsICBpcyBmb3IgZ2V0QXZhaWxhYmxlTG9jYWxlcygpIHRvIHJldHVybiBhIGxpc3Qgb2Ygb25seSB0aG9zZQorICAgICAqIGxvY2FsZXMgdGhhdCBjb250YWluIGEgcmVzb3VyY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIHJlc291cmNlIHRhZy4KKyAgICAgKgorICAgICAqIDxwPkJlZm9yZSB3ZSBpbXBsZW1lbnQgdGhpcyBmdW5jdGlvbiB0aGlzIHdheSwgaG93ZXZlciwgc29tZSB0aG91Z2h0IHNob3VsZCBiZQorICAgICAqIGdpdmVuIHRvIHdoZXRoZXIgdGhpcyBpcyByZWFsbHkgdGhlIHJpZ2h0IHRoaW5nIHRvIGRvLiAgQmVjYXVzZSBvZiB0aGUgbG9va3VwCisgICAgICogYWxnb3JpdGhtLCBhIE51bWJlckZvcm1hdCwgZm9yIGV4YW1wbGUsIGlzICJpbnN0YWxsZWQiIGZvciBhbGwgbG9jYWxlcy4gIEJ1dCBpZgorICAgICAqIHdlJ3JlIHRyeWluZyB0byBwdXQgdXAgYSBsaXN0IG9mIE51bWJlckZvcm1hdHMgdG8gY2hvb3NlIGZyb20sIHdlIG1heSB3YW50IHRvIHNlZQorICAgICAqIG9ubHkgYSBsaXN0IG9mIHRob3NlIGxvY2FsZXMgdGhhdCB1bmlxdWVseSBkZWZpbmUgYSBOdW1iZXJGb3JtYXQgcmF0aGVyIHRoYW4KKyAgICAgKiBpbmhlcml0aW5nIG9uZSBmcm9tIGFub3RoZXIgbG9jYWxlLiAgVGh1cywgaWYgZnIgYW5kIGZyX0NBIHVuaXF1ZWx5IGRlZmluZQorICAgICAqIE51bWJlckZvcm1hdCBkYXRhLCBidXQgZnJfQkUgZG9lc24ndCwgdGhlIHVzZXIgd291bGRuJ3Qgc2VlICJGcmVuY2ggKEJlbGdpdW0pIiBpbgorICAgICAqIHRoZSBsaXN0IGFuZCB3b3VsZCBnbyBmb3IgIkZyZW5jaCAoZGVmYXVsdCkiIGluc3RlYWQuICBPZiBjb3Vyc2UsIHRoaXMgbWVhbnMKKyAgICAgKiAiRW5nbGlzaCAoVW5pdGVkIFN0YXRlcykiIHdvdWxkIG5vdCBiZSBpbiB0aGUgbGlzdCwgc2luY2UgaXQgaXMgdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIFRoaXMgbWlnaHQgYmUgb2theSwgYnV0IG1pZ2h0IGJlIGNvbmZ1c2luZyB0byBzb21lIHVzZXJzLgorICAgICAqCisgICAgICogPHA+SW4gYWRkaXRpb24sIHRoZSBvdGhlciBmdW5jdGlvbnMgdGhhdCBjYWxsIGdldEF2YWlsYWJsZUxvY2FsZXMoKSBkb24ndCBjdXJyZW50bHkKKyAgICAgKiBhbGwgcGFzcyB0aGUgcmlnaHQgdGhpbmcgZm9yICJrZXksIiBtZWFuaW5nIHRoYXQgYWxsIG9mIHRoZXNlIGZ1bmN0aW9ucyBzaG91bGQgYmUKKyAgICAgKiBsb29rZWQgYXQgYmVmb3JlIGFueXRoaW5nIGlzIGRvbmUgdG8gdGhpcyBmdW5jdGlvbi4KKyAgICAgKgorICAgICAqIDxwPldlIHJlY29tbWVuZCB0aGF0IHNvbWVvbmUgdGFrZSBzb21lIGNhcmVmdWwgY29uc2lkZXJhdGlvbiBvZiB0aGVzZSBpc3N1ZXMgYmVmb3JlCisgICAgICogbW9kaWZ5aW5nIHRoaXMgZnVuY3Rpb24gdG8gcGF5IGF0dGVudGlvbiB0byB0aGUgImtleSIgcGFyYW1ldGVyLiAgLS1ydGcgMS8yNi85OAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTG9jYWxlW10gZ2V0QXZhaWxhYmxlTG9jYWxlcyhTdHJpbmcga2V5KSB7CisJLy8gaWdub3JlIGtleSwganVzdCByZXR1cm4gYWxsIGxvY2FsZXMKKwlyZXR1cm4gZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gYXJyYXkgb2YgYWxsIHRoZSBsb2NhbGVzIGZvciB3aGljaCB3ZSBoYXZlIHJlc291cmNlIGluZm9ybWF0aW9uLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTG9jYWxlW10gZ2V0QXZhaWxhYmxlTG9jYWxlcygpIHsKKyAgICAgICAgLy8gY3JlYXRpbmcgdGhlIGxvY2FsZSBsaXN0IGlzIGV4cGVuc2l2ZSwgc28gYmUgY2FyZWZ1bCB0byBkbyBpdAorICAgICAgICAvLyBvbmx5IG9uY2UKKyAgICAgICAgaWYgKGxvY2FsZUxpc3QgPT0gbnVsbCkgeworICAgICAgICAgICAgc3luY2hyb25pemVkKElDVUxvY2FsZURhdGEuY2xhc3MpIHsKKyAgICAgICAgICAgICAgICBpZiAobG9jYWxlTGlzdCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGxvY2FsZUxpc3QgPSBjcmVhdGVMb2NhbGVMaXN0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKwlyZXR1cm4gKExvY2FsZVtdKWxvY2FsZUxpc3QuY2xvbmUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGUgZGVmYXVsdCBuYW1lIGZvciByZXNvdXJjZXMgY29udGFpbmluZyBJQ1UgbG9jYWxlIGRhdGEuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgTE9DQUxFX0VMRU1FTlRTID0gIkxvY2FsZUVsZW1lbnRzIjsKKworICAgIC8qKgorICAgICAqIEdldHMgYSBMb2NhbGVFbGVtZW50cyByZXNvdXJjZSBidW5kbGUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBSZXNvdXJjZUJ1bmRsZSBnZXRMb2NhbGVFbGVtZW50cyhMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXRSZXNvdXJjZUJ1bmRsZShMT0NBTEVfRUxFTUVOVFMsIGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyBhIExvY2FsZUVsZW1lbnRzIHJlc291cmNlIGJ1bmRsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFJlc291cmNlQnVuZGxlIGdldExvY2FsZUVsZW1lbnRzKFN0cmluZyBsb2NhbGVOYW1lKSB7CisJcmV0dXJuIGdldFJlc291cmNlQnVuZGxlKExPQ0FMRV9FTEVNRU5UUywgbG9jYWxlTmFtZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU3RpbGwgbmVlZCBwZXJtaXNzaW9ucyB0byB1c2Ugb3VyIG93biBjbGFzcyBsb2FkZXIsIGlzIHRoZXJlIG5vIHdheQorICAgICAqIHRvIGxvYWQgY2xhc3MgcmVzb3VyY2VzIGZyb20gbmV3IGxvY2F0aW9ucyB0aGF0IGFyZW4ndCBhbHJlYWR5IG9uIHRoZQorICAgICAqIGNsYXNzIHBhdGg/CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgUmVzb3VyY2VCdW5kbGUgaW5zdGFudGlhdGVCdW5kbGUoU3RyaW5nIG5hbWUsIExvY2FsZSBsKSB7CisJUmVzb3VyY2VCdW5kbGUgcmIgPSBSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGUobmFtZSwgbCk7CisJcmV0dXJuIHJiOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBhIHJlc291cmNlIGJ1bmRsZSBmcm9tIHRoZSBsb29rdXAgY2hhaW4uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBSZXNvdXJjZUJ1bmRsZSBnZXRSZXNvdXJjZUJ1bmRsZShTdHJpbmcgYnVuZGxlTmFtZSwgU3RyaW5nIGxvY2FsZU5hbWUpIHsKKwlMb2NhbGUgbG9jYWxlID0gTG9jYWxlVXRpbGl0eS5nZXRMb2NhbGVGcm9tTmFtZShsb2NhbGVOYW1lKTsKKwlyZXR1cm4gZ2V0UmVzb3VyY2VCdW5kbGUoYnVuZGxlTmFtZSwgbG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgYSByZXNvdXJjZSBidW5kbGUgZnJvbSB0aGUgbG9va3VwIGNoYWluLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgUmVzb3VyY2VCdW5kbGUgZ2V0UmVzb3VyY2VCdW5kbGUoU3RyaW5nIGJ1bmRsZU5hbWUsIExvY2FsZSBsb2NhbGUpIHsKKwlpZiAobG9jYWxlID09IG51bGwpIHsKKwkgICAgbG9jYWxlID0gTG9jYWxlLmdldERlZmF1bHQoKTsKKwl9CisJZm9yIChpbnQgaSA9IDA7IGkgPCBwYWNrYWdlTmFtZXMubGVuZ3RoOyArK2kpIHsKKwkgICAgdHJ5IHsKKwkJU3RyaW5nIHBhdGggPSBwYWNrYWdlTmFtZXNbaV0gKyAiLiIgKyBidW5kbGVOYW1lOworCQlpZiAoZGVidWcpIFN5c3RlbS5vdXQucHJpbnRsbigiY2FsbGluZyBpbnN0YW50aWF0ZUJ1bmRsZTogIiArIHBhdGggKyAiXyIgKyBsb2NhbGUpOworCQlSZXNvdXJjZUJ1bmRsZSByYiA9IGluc3RhbnRpYXRlQnVuZGxlKHBhdGgsIGxvY2FsZSk7CisJCXJldHVybiByYjsKKwkgICAgfSAKKwkgICAgY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisJCWlmIChkZWJ1ZykgU3lzdGVtLm91dC5wcmludGxuKGJ1bmRsZU5hbWUgKyAiXyIgKyBsb2NhbGUgKyAiIG5vdCBmb3VuZCBpbiAiICsgcGFja2FnZU5hbWVzW2ldKTsKKwkgICAgfQorCX0KKworCXJldHVybiBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBhIHJlc291cmNlIGJ1bmRsZSBmcm9tIHRoZSBsb29rdXAgY2hhaW4uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBSZXNvdXJjZUJ1bmRsZSBnZXRSZXNvdXJjZUJ1bmRsZShTdHJpbmdbXSBwYWNrYWdlcywgU3RyaW5nIGJ1bmRsZU5hbWUsIFN0cmluZyBsb2NhbGVOYW1lKSB7CisJICAgIExvY2FsZSBsb2NhbGUgPSBMb2NhbGVVdGlsaXR5LmdldExvY2FsZUZyb21OYW1lKGxvY2FsZU5hbWUpOworICAgICAgICBpZiAobG9jYWxlID09IG51bGwpIHsKKwkgICAgICAgIGxvY2FsZSA9IExvY2FsZS5nZXREZWZhdWx0KCk7CisJICAgIH0KKwkgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwYWNrYWdlcy5sZW5ndGg7ICsraSkgeworCSAgICAgICAgdHJ5IHsKKwkJICAgICAgICBTdHJpbmcgcGF0aCA9IHBhY2thZ2VzW2ldICsgIi4iICsgYnVuZGxlTmFtZTsKKwkJICAgICAgICBpZiAoZGVidWcpIFN5c3RlbS5vdXQucHJpbnRsbigiY2FsbGluZyBpbnN0YW50aWF0ZUJ1bmRsZTogIiArIHBhdGggKyAiXyIgKyBsb2NhbGUpOworCQkgICAgICAgIFJlc291cmNlQnVuZGxlIHJiID0gaW5zdGFudGlhdGVCdW5kbGUocGF0aCwgbG9jYWxlKTsKKwkJICAgICAgICByZXR1cm4gcmI7CisJICAgICAgICB9IAorCSAgICAgICAgY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisJICAgICAgICAgICBpZiAoZGVidWcpIFN5c3RlbS5vdXQucHJpbnRsbihidW5kbGVOYW1lICsgIl8iICsgbG9jYWxlICsgIiBub3QgZm91bmQgaW4gIiArIHBhY2thZ2VzW2ldKTsKKwkgICAgICAgIH0KKwkgICAgfQorCSAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgYSByZXNvdXJjZSBidW5kbGUgZnJvbSB0aGUgbG9va3VwIGNoYWluLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgUmVzb3VyY2VCdW5kbGUgZ2V0UmVzb3VyY2VCdW5kbGUoU3RyaW5nIHBhY2thZ2VOYW1lLCBTdHJpbmcgYnVuZGxlTmFtZSwgU3RyaW5nIGxvY2FsZU5hbWUpIHsKKyAgICAgICAgTG9jYWxlIGxvY2FsZSA9IExvY2FsZVV0aWxpdHkuZ2V0TG9jYWxlRnJvbU5hbWUobG9jYWxlTmFtZSk7CisgICAgICAgIGlmIChsb2NhbGUgPT0gbnVsbCkgeworICAgICAgICAgICAgbG9jYWxlID0gTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFN0cmluZyBwYXRoID0gcGFja2FnZU5hbWUgKyAiLiIgKyBidW5kbGVOYW1lOworICAgICAgICAgICAgaWYgKGRlYnVnKSBTeXN0ZW0ub3V0LnByaW50bG4oImNhbGxpbmcgaW5zdGFudGlhdGVCdW5kbGU6ICIgKyBwYXRoICsgIl8iICsgbG9jYWxlKTsKKyAgICAgICAgICAgIFJlc291cmNlQnVuZGxlIHJiID0gaW5zdGFudGlhdGVCdW5kbGUocGF0aCwgbG9jYWxlKTsKKyAgICAgICAgICAgIHJldHVybiByYjsKKyAgICAgICAgfSAKKyAgICAgICAgY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgIGlmIChkZWJ1ZykgU3lzdGVtLm91dC5wcmludGxuKGJ1bmRsZU5hbWUgKyAiXyIgKyBsb2NhbGUgKyAiIG5vdCBmb3VuZCBpbiAiICsgcGFja2FnZU5hbWUpOworICAgICAgICB9CisgICAgICAgCisgICAgICAgIHJldHVybiBudWxsOworICAgIH0gICAgCisgICAgLyoqCisgICAgICogR2V0IGEgcmVzb3VyY2UgYnVuZGxlIGZyb20gdGhlIHJlc291cmNlIGJ1bmRsZSBwYXRoLiAgVW5saWtlIGdldFJlc291cmNlQnVuZGxlLCB0aGlzCisgICAgICogcmV0dXJucyBhbiAndW5wYXJlbnRlZCcgYnVuZGxlIHRoYXQgZXhhY3RseSBtYXRjaGVzIHRoZSBidW5kbGUgbmFtZSBhbmQgbG9jYWxlIG5hbWUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBSZXNvdXJjZUJ1bmRsZSBsb2FkUmVzb3VyY2VCdW5kbGUoU3RyaW5nIGJ1bmRsZU5hbWUsIExvY2FsZSBsb2NhbGUpIHsKKwlpZiAobG9jYWxlID09IG51bGwpIHsKKwkgICAgbG9jYWxlID0gTG9jYWxlLmdldERlZmF1bHQoKTsKKwl9CisJcmV0dXJuIGxvYWRSZXNvdXJjZUJ1bmRsZShidW5kbGVOYW1lLCBsb2NhbGUudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGEgcmVzb3VyY2UgYnVuZGxlIGZyb20gdGhlIHJlc291cmNlIGJ1bmRsZSBwYXRoLiAgVW5saWtlIGdldFJlc291cmNlQnVuZGxlLCB0aGlzCisgICAgICogcmV0dXJucyBhbiAndW5wYXJlbnRlZCcgYnVuZGxlIHRoYXQgZXhhY3RseSBtYXRjaGVzIHRoZSBidW5kbGUgbmFtZSBhbmQgbG9jYWxlIG5hbWUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBSZXNvdXJjZUJ1bmRsZSBsb2FkUmVzb3VyY2VCdW5kbGUoU3RyaW5nIGJ1bmRsZU5hbWUsIFN0cmluZyBsb2NhbGVOYW1lKSB7CisJaWYgKGxvY2FsZU5hbWUgIT0gbnVsbCkgeworCSAgICBidW5kbGVOYW1lID0gYnVuZGxlTmFtZSArICJfIiArIGxvY2FsZU5hbWU7CisJfQorCWZvciAoaW50IGkgPSAwOyBpIDwgcGFja2FnZU5hbWVzLmxlbmd0aDsgKytpKSB7CisJICAgIFN0cmluZyBuYW1lID0gcGFja2FnZU5hbWVzW2ldICsgIi4iICsgYnVuZGxlTmFtZTsKKwkgICAgdHJ5IHsKKwkJaWYgKG5hbWUuaW5kZXhPZigiX3poXyIpID09IC0xKSB7IC8vIERMRiB0ZW1wb3JhcnkgaGFjaworCQkgICAgQ2xhc3MgcmJjbGFzcyA9IElDVUxvY2FsZURhdGEuY2xhc3MuZm9yTmFtZShuYW1lKTsKKwkJICAgIFJlc291cmNlQnVuZGxlIHJiID0gKFJlc291cmNlQnVuZGxlKXJiY2xhc3MubmV3SW5zdGFuY2UoKTsKKwkJICAgIHJldHVybiByYjsKKwkJfQorCSAgICB9IAorCSAgICBjYXRjaCAoQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiBlKSB7CisJCWlmIChkZWJ1ZykgeworCQkgICAgU3lzdGVtLm91dC5wcmludGxuKGJ1bmRsZU5hbWUgKyAiIG5vdCBmb3VuZCBpbiAiICsgcGFja2FnZU5hbWVzW2ldKTsKKwkJfQorCQkvLyBpZ25vcmUsIGtlZXAgbG9va2luZworCSAgICB9CisJICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworCQlpZiAoZGVidWcpIHsKKwkJICAgIFN5c3RlbS5vdXQucHJpbnRsbihlLmdldE1lc3NhZ2UoKSk7CisJCX0KKwkgICAgfQorCX0KKwlpZiAoZGVidWcpIHsKKwkgICAgU3lzdGVtLm91dC5wcmludGxuKGJ1bmRsZU5hbWUgKyAiIG5vdCBmb3VuZC4iKTsKKwl9CisJCisJcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLy8gPT09PT09PT09PSBwcml2YXRlcyA9PT09PT09PT09CisKKworICAgIHByaXZhdGUgc3RhdGljIExvY2FsZVtdIGNyZWF0ZUxvY2FsZUxpc3QoKSB7CisJdHJ5IHsKKwkgICAgUmVzb3VyY2VCdW5kbGUgaW5kZXggPSBnZXRMb2NhbGVFbGVtZW50cyhMb2NhbGVVdGlsaXR5LmdldExvY2FsZUZyb21OYW1lKCJpbmRleCIpKTsKKwkgICAgU3RyaW5nW10gbG9jYWxlTmFtZXMgPSBpbmRleC5nZXRTdHJpbmdBcnJheSgiSW5zdGFsbGVkTG9jYWxlcyIpOworCSAgICBMb2NhbGVbXSBsb2NhbGVzID0gbmV3IExvY2FsZVtsb2NhbGVOYW1lcy5sZW5ndGhdOworCSAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZU5hbWVzLmxlbmd0aDsgKytpKSB7CisJCWxvY2FsZXNbaV0gPSBMb2NhbGVVdGlsaXR5LmdldExvY2FsZUZyb21OYW1lKGxvY2FsZU5hbWVzW2ldKTsKKwkgICAgfQorCSAgICByZXR1cm4gbG9jYWxlczsKKwl9CisJY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisJfQorCQkKKwlyZXR1cm4gbmV3IExvY2FsZVswXTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VMb2NhbGVTZXJ2aWNlLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VMb2NhbGVTZXJ2aWNlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmFkYTEyZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVUxvY2FsZVNlcnZpY2UuamF2YQpAQCAtMCwwICsxLDM5OSBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVUxvY2FsZVNlcnZpY2UuamF2YSx2ICQKKyAqICREYXRlOiAyMDAyLzA4LzEzIDIzOjQwOjUyICQKKyAqICRSZXZpc2lvbjogMS41ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBqYXZhLmxhbmcucmVmLlNvZnRSZWZlcmVuY2U7CitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworCisKK3B1YmxpYyBjbGFzcyBJQ1VMb2NhbGVTZXJ2aWNlIGV4dGVuZHMgSUNVU2VydmljZSB7CisgICAgTG9jYWxlIGZhbGxiYWNrTG9jYWxlOworICAgIFN0cmluZyBmYWxsYmFja0xvY2FsZU5hbWU7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYW4gSUNVTG9jYWxlU2VydmljZSB3aXRoIGEgZmFsbGJhY2sgbG9jYWxlIHN0cmluZyBiYXNlZCBvbiB0aGUgY3VycmVudAorICAgICAqIGRlZmF1bHQgbG9jYWxlIGF0IHRoZSB0aW1lIG9mIGNvbnN0cnVjdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgSUNVTG9jYWxlU2VydmljZSgpIHsKKwlmYWxsYmFja0xvY2FsZSA9IExvY2FsZS5nZXREZWZhdWx0KCk7CisJZmFsbGJhY2tMb2NhbGVOYW1lID0gTG9jYWxlVXRpbGl0eS5jYW5vbmljYWxMb2NhbGVTdHJpbmcoZmFsbGJhY2tMb2NhbGUudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQSBzdWJjbGFzcyBvZiBLZXkgdGhhdCBpbXBsZW1lbnRzIGEgbG9jYWxlIGZhbGxiYWNrIG1lY2hhbmlzbS4KKyAgICAgKiBUaGUgZmlyc3QgbG9jYWxlIHRvIHNlYXJjaCBmb3IgaXMgdGhlIGxvY2FsZSBwcm92aWRlZCBieSB0aGUKKyAgICAgKiBjbGllbnQsIGFuZCB0aGUgZmFsbGJhY2sgbG9jYWxlIHRvIHNlYXJjaCBmb3IgaXMgdGhlIGN1cnJlbnQgZGVmYXVsdAorICAgICAqIGxvY2FsZS4gIFRoaXMgaXMgaW5zdGFudGlhdGVkIGJ5IElDVUxvY2FsZVNlcnZpY2UuPC9wPgorICAgICAqCisgICAgICogPHA+Q2Fub25pY2FsaXphdGlvbiBhZGp1c3RzIHRoZSBsb2NhbGUgc3RyaW5nIHNvIHRoYXQgdGhlCisgICAgICogc2VjdGlvbiBiZWZvcmUgdGhlIGZpcnN0IHVuZGVyc3RvcmUgaXMgaW4gbG93ZXIgY2FzZSwgYW5kIHRoZSByZXN0CisgICAgICogaXMgaW4gdXBwZXIgY2FzZSwgd2l0aCBubyB0cmFpbGluZyB1bmRlcnNjb3Jlcy48L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBMb2NhbGVLZXkgZXh0ZW5kcyBJQ1VTZXJ2aWNlLktleSB7CisJcHJpdmF0ZSBTdHJpbmcgcHJpbWFyeUlEOworCXByaXZhdGUgU3RyaW5nIGZhbGxiYWNrSUQ7CisJcHJpdmF0ZSBTdHJpbmcgY3VycmVudElEOworCisJLyoqCisJICogQ29udmVuaWVuY2UgbWV0aG9kIGZvciBjcmVhdGVXaXRoQ2Fub25pY2FsIHRoYXQgY2Fub25pY2FsaXplcyBib3RoIHRoZQorCSAqIHByaW1hcnkgYW5kIGZhbGxiYWNrIElEcyBmaXJzdC4KKwkgKi8KKwlwdWJsaWMgc3RhdGljIExvY2FsZUtleSBjcmVhdGUoU3RyaW5nIHByaW1hcnlJRCwgU3RyaW5nIGZhbGxiYWNrSUQpIHsKKwkgICAgU3RyaW5nIGNhbm9uaWNhbFByaW1hcnlJRCA9IExvY2FsZVV0aWxpdHkuY2Fub25pY2FsTG9jYWxlU3RyaW5nKHByaW1hcnlJRCk7CisJICAgIFN0cmluZyBjYW5vbmljYWxGYWxsYmFja0lEID0gTG9jYWxlVXRpbGl0eS5jYW5vbmljYWxMb2NhbGVTdHJpbmcoZmFsbGJhY2tJRCk7CisJICAgIHJldHVybiBuZXcgTG9jYWxlS2V5KHByaW1hcnlJRCwgY2Fub25pY2FsUHJpbWFyeUlELCBjYW5vbmljYWxGYWxsYmFja0lEKTsKKwl9CisKKwkvKioKKwkgKiBDb252ZW5pZW5jZSBtZXRob2QgZm9yIGNyZWF0ZVdpdGhDYW5vbmljYWwgdGhhdCBjYW5vbmljYWxpemVzIHRoZQorCSAqIHByaW1hcnkgSUQgZmlyc3QsIHRoZSBmYWxsYmFjayBpcyBhc3N1bWVkIHRvIGFscmVhZHkgYmUgY2Fub25pY2FsLgorCSAqLworCXB1YmxpYyBzdGF0aWMgTG9jYWxlS2V5IGNyZWF0ZVdpdGhDYW5vbmljYWxGYWxsYmFjayhTdHJpbmcgcHJpbWFyeUlELCBTdHJpbmcgY2Fub25pY2FsRmFsbGJhY2tJRCkgeworCSAgICBTdHJpbmcgY2Fub25pY2FsUHJpbWFyeUlEID0gTG9jYWxlVXRpbGl0eS5jYW5vbmljYWxMb2NhbGVTdHJpbmcocHJpbWFyeUlEKTsKKwkgICAgcmV0dXJuIG5ldyBMb2NhbGVLZXkocHJpbWFyeUlELCBjYW5vbmljYWxQcmltYXJ5SUQsIGNhbm9uaWNhbEZhbGxiYWNrSUQpOworCX0KKworCS8qKgorCSAqIENyZWF0ZSBhIExvY2FsZUtleSB3aXRoIGNhbm9uaWNhbCBwcmltYXJ5IGFuZCBmYWxsYmFjayBJRHMuCisJICovCisJcHVibGljIHN0YXRpYyBMb2NhbGVLZXkgY3JlYXRlV2l0aENhbm9uaWNhbChTdHJpbmcgY2Fub25pY2FsUHJpbWFyeUlELCBTdHJpbmcgY2Fub25pY2FsRmFsbGJhY2tJRCkgeworCSAgICByZXR1cm4gbmV3IExvY2FsZUtleShjYW5vbmljYWxQcmltYXJ5SUQsIGNhbm9uaWNhbFByaW1hcnlJRCwgY2Fub25pY2FsRmFsbGJhY2tJRCk7CisJfQorCSAgICAKKwkvKioKKwkgKiBQcmltYXJ5SUQgaXMgdGhlIHVzZXIncyByZXF1ZXN0ZWQgbG9jYWxlIHN0cmluZywKKwkgKiBjYW5vbmljYWxQcmltYXJ5SUQgaXMgdGhpcyBzdHJpbmcgaW4gY2Fub25pY2FsIGZvcm0sCisJICogZmFsbGJhY2tJRCBpcyB0aGUgY3VycmVudCBkZWZhdWx0IGxvY2FsZSdzIHN0cmluZyBpbgorCSAqIGNhbm9uaWNhbCBmb3JtLgorCSAqLworICAgICAgICBwcm90ZWN0ZWQgTG9jYWxlS2V5KFN0cmluZyBwcmltYXJ5SUQsIFN0cmluZyBjYW5vbmljYWxQcmltYXJ5SUQsIFN0cmluZyBjYW5vbmljYWxGYWxsYmFja0lEKSB7CisJICAgIHN1cGVyKHByaW1hcnlJRCk7CisJICAgIAorCSAgICBpZiAoY2Fub25pY2FsUHJpbWFyeUlEID09IG51bGwpIHsKKwkJdGhpcy5wcmltYXJ5SUQgPSAiIjsKKwkgICAgfSBlbHNlIHsKKwkJdGhpcy5wcmltYXJ5SUQgPSBjYW5vbmljYWxQcmltYXJ5SUQ7CisJICAgIH0KKwkgICAgaWYgKHRoaXMucHJpbWFyeUlEID09ICIiKSB7CisJCXRoaXMuZmFsbGJhY2tJRCA9IG51bGw7CisJICAgIH0gZWxzZSB7CisJCWlmIChjYW5vbmljYWxGYWxsYmFja0lEID09IG51bGwgfHwgdGhpcy5wcmltYXJ5SUQuZXF1YWxzKGNhbm9uaWNhbEZhbGxiYWNrSUQpKSB7CisJCSAgICB0aGlzLmZhbGxiYWNrSUQgPSAiIjsKKwkJfSBlbHNlIHsKKwkJICAgIHRoaXMuZmFsbGJhY2tJRCA9IGNhbm9uaWNhbEZhbGxiYWNrSUQ7CisJCX0KKwkgICAgfQorCisJICAgIHRoaXMuY3VycmVudElEID0gdGhpcy5wcmltYXJ5SUQ7CisgICAgICAgIH0KKworCS8qKgorCSAqIFJldHVybiB0aGUgKGNhbm9uaWNhbCkgb3JpZ2luYWwgSUQuCisJICovCisJcHVibGljIFN0cmluZyBjYW5vbmljYWxJRCgpIHsKKwkgICAgcmV0dXJuIHByaW1hcnlJRDsKKwl9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybiB0aGUgKGNhbm9uaWNhbCkgY3VycmVudCBJRC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgY3VycmVudElEKCkgeworCSAgICByZXR1cm4gY3VycmVudElEOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIElmIHRoZSBrZXkgaGFzIGEgZmFsbGJhY2ssIG1vZGlmeSB0aGUga2V5IGFuZCByZXR1cm4gdHJ1ZSwKKyAgICAgICAgICogb3RoZXJ3aXNlIHJldHVybiBmYWxzZS48L3A+CisJICoKKwkgKiA8cD5GaXJzdCBmYWxscyBiYWNrIHRocm91Z2ggdGhlIHByaW1hcnkgSUQsIHRoZW4gdGhyb3VnaAorCSAqIHRoZSBmYWxsYmFja0lELiAgVGhlIGZpbmFsIGZhbGxiYWNrIGlzIHRoZSBlbXB0eSBzdHJpbmcsCisJICogdW5sZXNzIHRoZSBwcmltYXJ5IGlkIHdhcyB0aGUgZW1wdHkgc3RyaW5nLCBpbiB3aGljaCBjYXNlCisJICogdGhlcmUgaXMgbm8gZmFsbGJhY2suICAKKwkgKi8KKyAgICAgICAgcHVibGljIGJvb2xlYW4gZmFsbGJhY2soKSB7CisJICAgIFN0cmluZyBjdXJyZW50ID0gY3VycmVudElEKCk7CisJICAgIGludCB4ID0gY3VycmVudC5sYXN0SW5kZXhPZignXycpOworCSAgICBpZiAoeCAhPSAtMSkgeworCQljdXJyZW50SUQgPSBjdXJyZW50LnN1YnN0cmluZygwLCB4KTsKKwkJcmV0dXJuIHRydWU7CisJICAgIH0KKwkgICAgaWYgKGZhbGxiYWNrSUQgIT0gbnVsbCkgeworCQljdXJyZW50SUQgPSBmYWxsYmFja0lEOworCQlmYWxsYmFja0lEID0gZmFsbGJhY2tJRC5sZW5ndGgoKSA9PSAwID8gbnVsbCA6ICIiOworCQlyZXR1cm4gdHJ1ZTsKKwkgICAgfQorCSAgICBjdXJyZW50SUQgPSBudWxsOworCSAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIGEgZmFjdG9yeSB0aGF0IGhhbmRsZXMgbXVsdGlwbGUga2V5cywgYW5kIHJlY29yZHMKKyAgICAgKiBpbmZvcm1hdGlvbiBhYm91dCB0aGUga2V5cyBpdCBoYW5kbGVzIG9yIGRvZXNuJ3QgaGFuZGxlLiAgVGhpcworICAgICAqIGFsbG93cyBpdCB0byBxdWlja2x5IGZpbHRlciBzdWJzZXF1ZW50IHF1ZXJpZXMgb24ga2V5cyBpdCBoYXMKKyAgICAgKiBzZWVuIGJlZm9yZS4gIFN1YmNsYXNzZXMgaW1wbGVtZW50IGhhbmRsZUNyZWF0ZSBpbnN0ZWFkIG9mCisgICAgICogY3JlYXRlLiAgQmVmb3JlIHVwZGF0ZVZpc2libGVJRHMgaXMgY2FsbGVkLCBpdCBrZWVwcyB0cmFjayBvZgorICAgICAqIGtleXMgdGhhdCBpdCBkb2Vzbid0IGhhbmRsZS4gIElmIGl0cyBpZHMgYXJlIHZpc2libGUsIG9uY2UKKyAgICAgKiB1cGRhdGVWaXNpYmxlSURzIGlzIGNhbGxlZCwgaXQgYnVpbGRzIGEgc2V0IG9mIGFsbCB0aGUga2V5cyBpdAorICAgICAqIGRvZXMgaGFuZGxlIGFuZCBrZWVwcyB0cmFjayBvZiB0aGUga2V5cyBpdCBkb2VzIGhhbmRsZS4gIAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYWJzdHJhY3QgY2xhc3MgTXVsdGlwbGVLZXlGYWN0b3J5IGltcGxlbWVudHMgSUNVU2VydmljZS5GYWN0b3J5IHsKKwlwcm90ZWN0ZWQgZmluYWwgYm9vbGVhbiB2aXNpYmxlOworCXByaXZhdGUgU29mdFJlZmVyZW5jZSBjYWNoZXJlZjsKKwlwcml2YXRlIGJvb2xlYW4gaW5jbHVkZWQ7CisKKwkvKioKKwkgKiBDb252ZW5pZW5jZSBvdmVybG9hZCBvZiBNdWx0aXBsZUtleUZhY3RvcnkoYm9vbGVhbikgdGhhdCBkZWZhdWx0cworCSAqIHZpc2libGUgdG8gdHJ1ZS4KKwkgKi8KKwlwdWJsaWMgTXVsdGlwbGVLZXlGYWN0b3J5KCkgeworCSAgICB0aGlzKHRydWUpOworCX0KKworCS8qKgorCSAqIENvbnN0cnVjdHMgYSBNdWx0aXBsZUtleUZhY3Rvcnkgd2hvc2UgaWRzIGFyZSB2aXNpYmxlIGlmZiB2aXNpYmxlIGlzIHRydWUuCisJICovCisJcHVibGljIE11bHRpcGxlS2V5RmFjdG9yeShib29sZWFuIHZpc2libGUpIHsKKwkgICAgdGhpcy52aXNpYmxlID0gdmlzaWJsZTsKKwl9CisKKwkvKioKKwkgKiBHZXQgdGhlIGNhY2hlIG9mIElEcy4gIFRoZXNlIGFyZSBlaXRoZXIgdGhlIGlkcyB0aGF0IHdlIGtub3cgd2UKKwkgKiBkb24ndCB1bmRlcnN0YW5kLCBpZiBpbmNsdWRlZCBpcyBmYWxzZSwgb3IgdGhlIGVudGlyZSBzZXQgb2YgaWRzCisJICogd2UgZG8ga25vdyB3ZSB1bmRlcnN0YW5kLCBpZiBpbmNsdWRlZCBpcyB0cnVlLiAgTm90ZSB0aGF0IGlmCisJICogdGhlIGNhY2hlIGhhcyBiZWVuIGZyZWVkIGJ5IGdjLCB3ZSByZXNldCB0aGUgaW5jbHVkZWQgZmxhZywgc28KKwkgKiBpdCBtdXN0IG5vdCBiZSB0ZXN0ZWQgYmVmb3JlIHRoaXMgbWV0aG9kIGlzIGNhbGxlZC4KKwkgKi8KKwlwcml2YXRlIEhhc2hTZXQgZ2V0Q2FjaGUoKSB7CisJICAgIEhhc2hTZXQgY2FjaGUgPSBudWxsOworCSAgICBpZiAoY2FjaGVyZWYgIT0gbnVsbCkgeworCQljYWNoZSA9IChIYXNoU2V0KWNhY2hlcmVmLmdldCgpOworCSAgICB9CisJICAgIGlmIChjYWNoZSA9PSBudWxsKSB7CisJCWNhY2hlID0gbmV3IEhhc2hTZXQoKTsKKwkJY2FjaGVyZWYgPSBuZXcgU29mdFJlZmVyZW5jZShjYWNoZSk7CisJCWluY2x1ZGVkID0gZmFsc2U7CisJICAgIH0KKwkgICAgcmV0dXJuIGNhY2hlOworCX0KKworCS8qKgorCSAqIEdldCB0aGUgY2FjaGUgb2YgSURzIHdlIHVuZGVyc3RhbmQuCisJICovCisJcHJpdmF0ZSBIYXNoU2V0IGdldEluY2x1ZGVkQ2FjaGUoKSB7CisJICAgIEhhc2hTZXQgY2FjaGUgPSBnZXRDYWNoZSgpOworCSAgICBpZiAoIWluY2x1ZGVkKSB7CisJCWNhY2hlLmNsZWFyKCk7CisJCWhhbmRsZVVwZGF0ZVZpc2libGVJRHMoY2FjaGUpOworCQlpbmNsdWRlZCA9IHRydWU7CisJICAgIH0KKwkgICAgcmV0dXJuIGNhY2hlOworCX0KKworCXB1YmxpYyBmaW5hbCBPYmplY3QgY3JlYXRlKEtleSBrZXkpIHsKKwkgICAgT2JqZWN0IHJlc3VsdCA9IG51bGw7CisJICAgIFN0cmluZyBpZCA9IGtleS5jdXJyZW50SUQoKTsKKwkgICAgSGFzaFNldCBjYWNoZSA9IGdldENhY2hlKCk7CisJICAgIGlmIChjYWNoZS5jb250YWlucyhpZCkgPT0gaW5jbHVkZWQpIHsKKwkJcmVzdWx0ID0gaGFuZGxlQ3JlYXRlKGtleSk7CisJCWlmICghaW5jbHVkZWQgJiYgcmVzdWx0ID09IG51bGwpIHsKKwkJICAgIGNhY2hlLmFkZChpZCk7CisJCX0KKwkgICAgfQorCSAgICByZXR1cm4gcmVzdWx0OworCX0KKworCXB1YmxpYyBmaW5hbCB2b2lkIHVwZGF0ZVZpc2libGVJRHMoTWFwIHJlc3VsdCkgeworCSAgICBpZiAodmlzaWJsZSkgeworCQlTZXQgY2FjaGUgPSBnZXRJbmNsdWRlZENhY2hlKCk7CisJCUl0ZXJhdG9yIGl0ZXIgPSBjYWNoZS5pdGVyYXRvcigpOworCQl3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKwkJICAgIHJlc3VsdC5wdXQoKFN0cmluZylpdGVyLm5leHQoKSwgdGhpcyk7CisJCX0KKwkgICAgfQorCX0KKworCXB1YmxpYyBmaW5hbCBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoU3RyaW5nIGlkLCBMb2NhbGUgbG9jYWxlKSB7CisJICAgIGlmICh2aXNpYmxlKSB7CisJCVNldCBjYWNoZSA9IGdldEluY2x1ZGVkQ2FjaGUoKTsKKwkJaWYgKGNhY2hlLmNvbnRhaW5zKGlkKSkgeworCQkgICAgcmV0dXJuIGhhbmRsZUdldERpc3BsYXlOYW1lKGlkLCBsb2NhbGUpOworCQl9CisJICAgIH0KKwkgICAgcmV0dXJuIG51bGw7CisJfQorCisJLyoqCisJICogU3ViY2xhc3NlcyBpbXBsZW1lbnQgdGhpcyBpbnN0ZWFkIG9mIGNyZWF0ZS4KKwkgKi8KKwlwcm90ZWN0ZWQgYWJzdHJhY3QgT2JqZWN0IGhhbmRsZUNyZWF0ZShLZXkga2V5KTsKKworCS8qKgorCSAqIFN1YmNsYXNzZXMgaW1wbGVtZW50IHRoaXMgaW5zdGVhZCBvZiB1cGRhdGVWaXNpYmxlSURzLiAgQW55CisJICogaWQga25vd24gdG8gYW5kIGhhbmRsZWQgYnkgdGhpcyBjbGFzcyBzaG91bGQgYmUgYWRkZWQgdG8KKwkgKiByZXN1bHQuICAKKwkgKi8KKwlwcm90ZWN0ZWQgYWJzdHJhY3Qgdm9pZCBoYW5kbGVVcGRhdGVWaXNpYmxlSURzKFNldCByZXN1bHQpOworCisJLyoqCisJICogU3ViY2xhc3NlcyBpbXBsZW1lbnQgdGhpcyBpbnN0ZWFkIG9mIGdldERpc3BsYXlOYW1lLgorCSAqIFJldHVybiB0aGUgZGlzcGxheSBuYW1lIGZvciB0aGUgKHZpc2libGUpIGlkIGluIHRoZQorCSAqIHByb3ZpZGVkIGxvY2FsZS4gIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGp1c3QgcmV0dXJucworCSAqIHRoZSBpZC4gIAorCSAqLworCXByb3RlY3RlZCBTdHJpbmcgaGFuZGxlR2V0RGlzcGxheU5hbWUoU3RyaW5nIGlkLCBMb2NhbGUgbG9jYWxlKSB7CisJICAgIHJldHVybiBpZDsKKwl9CisgICAgfQorCisgICAgLyoqCisgICAgICogQSBmYWN0b3J5IHRoYXQgY3JlYXRlcyBhIHNlcnZpY2UgYmFzZWQgb24gdGhlIElDVSBsb2NhbGUgZGF0YS4KKyAgICAgKiBTdWJjbGFzc2VzIHNwZWNpZnkgYSBwcmVmaXggKGRlZmF1bHQgaXMgTG9jYWxlRWxlbWVudHMpLCBhCisgICAgICogc2VtaWNvbG9uLXNlcGFyYXRlZCBsaXN0IG9mIHJlcXVpcmVkIHJlc291cmNlcywgYW5kIGEgdmlzaWJsZSBmbGFnLgorICAgICAqIFRoaXMgZmFjdG9yeSB3aWxsIHNlYXJjaCB0aGUgSUNVIGxvY2FsZSBkYXRhIGZvciBhIGJ1bmRsZSB3aXRoCisgICAgICogdGhlIGV4YWN0IHByZWZpeC4gIFRoZW4gaXQgd2lsbCB0ZXN0IHdoZXRoZXIgdGhlIHJlcXVpcmVkIHJlc291cmNlcworICAgICAqIGFyZSBhbGwgaW4gdGhpcyBleGFjdCBidW5kbGUuICBJZiBzbywgaXQgaW5zdGFudGlhdGVzIHRoZSBmdWxsCisgICAgICogcmVzb3VyY2UgYnVuZGxlLCBhbmQgaGFuZHMgaXQgdG8gY3JlYXRlU2VydmljZUZyb21SZXNvdXJjZSwgd2hpY2gKKyAgICAgKiBzdWJjbGFzc2VzIG11c3QgaW1wbGVtZW50LiAgT3RoZXJ3aXNlIGl0IHJldHVybnMgbnVsbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIElDVVJlc291cmNlQnVuZGxlRmFjdG9yeSBleHRlbmRzIE11bHRpcGxlS2V5RmFjdG9yeSB7CisJcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBuYW1lOworCXByb3RlY3RlZCBmaW5hbCBTdHJpbmdbXSByZXF1aXJlZENvbnRlbnRzOworCisJLyoqCisJICogQSBzZXJ2aWNlIGZhY3RvcnkgYmFzZWQgb24gSUNVIHJlc291cmNlIGRhdGEgaW4gdGhlIExvY2FsZUVsZW1lbnRzIHJlc291cmNlcy4KKwkgKi8KKwlwdWJsaWMgSUNVUmVzb3VyY2VCdW5kbGVGYWN0b3J5KFN0cmluZyByZXF1aXJlZENvbnRlbnRzLCBib29sZWFuIHZpc2libGUpIHsKKwkgICAgdGhpcyhJQ1VMb2NhbGVEYXRhLkxPQ0FMRV9FTEVNRU5UUywgcmVxdWlyZWRDb250ZW50cywgdmlzaWJsZSk7CisJfQorCisJLyoqCisJICogQSBzZXJ2aWNlIGZhY3RvcnkgYmFzZWQgb24gSUNVIHJlc291cmNlIGRhdGEgaW4gcmVzb3VyY2VzCisJICogd2l0aCB0aGUgZ2l2ZW4gbmFtZS4gIElmIHJlcXVpcmVkQ29udGVudHMgaXMgbm90IG51bGwsIGFsbAorCSAqIGxpc3RlZCByZXNvdXJjZXMgbXVzdCBjb21lIGRpcmVjdGx5IGZyb20gdGhlIHNhbWUgYnVuZGxlLiAgCisJICovCisJcHVibGljIElDVVJlc291cmNlQnVuZGxlRmFjdG9yeShTdHJpbmcgbmFtZSwgU3RyaW5nIHJlcXVpcmVkQ29udGVudHMsIGJvb2xlYW4gdmlzaWJsZSkgeworCSAgICBzdXBlcih2aXNpYmxlKTsKKworCSAgICB0aGlzLm5hbWUgPSBuYW1lOworCSAgICBpZiAocmVxdWlyZWRDb250ZW50cyAhPSBudWxsKSB7CisJCUFycmF5TGlzdCBsaXN0ID0gbmV3IEFycmF5TGlzdCgpOworCQlmb3IgKGludCBpID0gMCwgbGVuID0gcmVxdWlyZWRDb250ZW50cy5sZW5ndGgoKTs7KSB7CisJCSAgICB3aGlsZSAoaSA8IGxlbiAmJiByZXF1aXJlZENvbnRlbnRzLmNoYXJBdChpKSA9PSAnOycpIHsKKwkJCSsraTsKKwkJICAgIH0KKwkJICAgIGlmIChpID09IGxlbikgeworCQkgICAgICBicmVhazsKKwkJICAgIH0KKwkJICAgIGludCBqID0gcmVxdWlyZWRDb250ZW50cy5pbmRleE9mKCc7JywgaSk7CisJCSAgICBpZiAoaiA9PSAtMSkgeworCQkgICAgICBqID0gbGVuOworCQkgICAgfQorCQkgICAgbGlzdC5hZGQocmVxdWlyZWRDb250ZW50cy5zdWJzdHJpbmcoaSwgaikpOworCQkgICAgaSA9IGo7CisJCX0KKwkJdGhpcy5yZXF1aXJlZENvbnRlbnRzID0gKFN0cmluZ1tdKWxpc3QudG9BcnJheShuZXcgU3RyaW5nW2xpc3Quc2l6ZSgpXSk7CisJICAgIH0gZWxzZSB7CisJCXRoaXMucmVxdWlyZWRDb250ZW50cyA9IG51bGw7CisJICAgIH0KKwl9CisKKwkvKioKKwkgKiBPdmVycmlkZXMgcGFyZW50IGhhbmRsZUNyZWF0ZSBjYWxsLiAgUGFyZW50IHdpbGwgZmlsdGVyIG91dCBrZXlzIHRoYXQgaXQKKwkgKiBrbm93cyBhcmUgbm90IGFjY2VwdGVkIGJ5IHRoaXMgZmFjdG9yeSBiZWZvcmUgY2FsbGluZyB0aGlzIG1ldGhvZC4KKwkgKi8KKwlwcm90ZWN0ZWQgT2JqZWN0IGhhbmRsZUNyZWF0ZShLZXkga2V5KSB7CisJICAgIExvY2FsZSBsb2MgPSBMb2NhbGVVdGlsaXR5LmdldExvY2FsZUZyb21OYW1lKGtleS5jdXJyZW50SUQoKSk7CisJICAgIGlmIChhY2NlcHRzTG9jYWxlKGxvYykpIHsKKwkJUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gSUNVTG9jYWxlRGF0YS5nZXRSZXNvdXJjZUJ1bmRsZShuYW1lLCBsb2MpOyAvLyBmdWxsIHJlc291cmNlIGJ1bmRsZSB0cmVlIGxvb2t1cAorCQlyZXR1cm4gY3JlYXRlRnJvbUJ1bmRsZShidW5kbGUsIGtleSk7CisJICAgIH0KKwkgICAgcmV0dXJuIG51bGw7CisJfQorCisJLyoqCisJICogUXVlcmllcyBhbGwgdGhlIGF2YWlsYWJsZSBsb2NhbGVzIGluIElDVSBhbmQgYWRkcyB0aGUgbmFtZXMKKwkgKiBvZiB0aG9zZSB3aGljaCBpdCBhY2NlcHRzIHRvIHJlc3VsdC4gIFRoaXMgaXMgcXVpdGUKKwkgKiB0aW1lLWNvbnN1bWluZyBzbyB3ZSBkb24ndCB3YW50IHRvIGRvIGl0IG1vcmUgdGhhbiBvbmNlIGlmCisJICogd2UgaGF2ZSB0by4gIFRoaXMgaXMgb25seSBjYWxsZWQgaWYgd2UgYXJlIHZpc2libGUuICAKKwkgKi8KKwlwcm90ZWN0ZWQgdm9pZCBoYW5kbGVVcGRhdGVWaXNpYmxlSURzKFNldCByZXN1bHQpIHsKKwkgICAgTG9jYWxlW10gbG9jYWxlcyA9IElDVUxvY2FsZURhdGEuZ2V0QXZhaWxhYmxlTG9jYWxlcyhuYW1lKTsKKwkgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgKytpKSB7CisJCUxvY2FsZSBsb2NhbGUgPSBsb2NhbGVzW2ldOworCQlpZiAoYWNjZXB0c0xvY2FsZShsb2NhbGUpKSB7CisJCSAgICByZXN1bHQuYWRkKExvY2FsZVV0aWxpdHkuY2Fub25pY2FsTG9jYWxlU3RyaW5nKGxvY2FsZS50b1N0cmluZygpKSk7CisJCX0KKwkgICAgfQorCX0KKworCS8qKgorCSAqIFJldHVybiBhIGxvY2FsaXplZCBuYW1lIGZvciB0aGUgbG9jYWxlIHJlcHJlc2VudGVkIGJ5IGlkLgorCSAqLworCXByb3RlY3RlZCBTdHJpbmcgaGFuZGxlR2V0RGlzcGxheU5hbWUoU3RyaW5nIGlkLCBMb2NhbGUgbG9jYWxlKSB7CisJICAgIC8vIHVzZSBqYXZhJ3MgZGlzcGxheSBuYW1lIGZvcm1hdHRpbmcgZm9yIG5vdworCSAgICByZXR1cm4gTG9jYWxlVXRpbGl0eS5nZXRMb2NhbGVGcm9tTmFtZShpZCkuZ2V0RGlzcGxheU5hbWUobG9jYWxlKTsKKwl9CisKKwkvKioKKwkgKiBXZSBvbmx5IGFjY2VwdCB0aGUgbG9jYWxlIGlmIHRoZXJlIGlzIGEgYnVuZGxlIGZvciB0aGlzIGV4YWN0IGxvY2FsZSBhbmQgaWYKKwkgKiBhbGwgdGhlIHJlcXVpcmVkIHJlc291cmNlcyBhcmUgZGlyZWN0bHkgaW4gdGhpcyBidW5kbGUgKG5vbmUgaXMgZnJvbSBhbgorCSAqIGluaGVyaXRlZCBidW5kbGUpOworCSAqLworCXByb3RlY3RlZCBib29sZWFuIGFjY2VwdHNMb2NhbGUoTG9jYWxlIGxvYykgeworCSAgICB0cnkgeworCQlSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSBJQ1VMb2NhbGVEYXRhLmxvYWRSZXNvdXJjZUJ1bmRsZShuYW1lLCBsb2MpOyAvLyBzaW5nbGUgcmVzb3VyY2UgYnVuZGxlIGxvb2t1cAorCQlpZiAocmVxdWlyZWRDb250ZW50cyAhPSBudWxsKSB7CisJCSAgICBmb3IgKGludCBpID0gMDsgaSA8IHJlcXVpcmVkQ29udGVudHMubGVuZ3RoOyArK2kpIHsKKwkJCWlmIChidW5kbGUuZ2V0T2JqZWN0KHJlcXVpcmVkQ29udGVudHNbaV0pID09IG51bGwpIHsKKwkJCSAgICByZXR1cm4gZmFsc2U7CisJCQl9CisJCSAgICB9CisJCX0KKwkJcmV0dXJuIHRydWU7CisJICAgIH0KKwkgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisJICAgIH0KKwkgICAgcmV0dXJuIGZhbHNlOworCX0KKworCS8qKgorCSAqIFN1YmNsYXNzZXJzIGltcGxlbWVudCB0aGlzIHRvIGNyZWF0ZSB0aGVpciBzZXJ2aWNlIG9iamVjdCBiYXNlZCBvbiB0aGUgYnVuZGxlIGFuZCBrZXkuCisJICogVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24ganVzdCByZXR1cm5zIHRoZSBidW5kbGUuCisJICovCisgICAgICAgICBwcm90ZWN0ZWQgT2JqZWN0IGNyZWF0ZUZyb21CdW5kbGUoUmVzb3VyY2VCdW5kbGUgYnVuZGxlLCBLZXkga2V5KSB7CisJICAgICByZXR1cm4gYnVuZGxlOworICAgICAgICAgfQorICAgIH0KKworICAgIHByb3RlY3RlZCBLZXkgY3JlYXRlS2V5KFN0cmluZyBpZCkgeworCUxvY2FsZSBsb2MgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworCWlmIChsb2MgIT0gZmFsbGJhY2tMb2NhbGUpIHsKKwkgICAgc3luY2hyb25pemVkICh0aGlzKSB7CisJCWlmIChsb2MgIT0gZmFsbGJhY2tMb2NhbGUpIHsKKwkJICAgIGZhbGxiYWNrTG9jYWxlID0gbG9jOworCQkgICAgZmFsbGJhY2tMb2NhbGVOYW1lID0gTG9jYWxlVXRpbGl0eS5jYW5vbmljYWxMb2NhbGVTdHJpbmcobG9jLnRvU3RyaW5nKCkpOworCQkgICAgY2xlYXJTZXJ2aWNlQ2FjaGUoKTsKKwkJfQorCSAgICB9CisJfQorCSAgICAKKwlyZXR1cm4gTG9jYWxlS2V5LmNyZWF0ZVdpdGhDYW5vbmljYWxGYWxsYmFjayhpZCwgZmFsbGJhY2tMb2NhbGVOYW1lKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VOb3RpZmllci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVTm90aWZpZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OGVjOGQ4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVTm90aWZpZXIuamF2YQpAQCAtMCwwICsxLDE3NyBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVU5vdGlmaWVyLmphdmEsdiAkCisgKiAkRGF0ZTogMjAwMi8wOC8xMyAyMzo0MDo1MiAkCisgKiAkUmV2aXNpb246IDEuNCAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuRXZlbnRMaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxpbmtlZExpc3Q7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CisKKy8qKgorICogPHA+QWJzdHJhY3QgaW1wbGVtZW50YXRpb24gb2YgYSBub3RpZmljYXRpb24gZmFjaWxpdHkuICBDbGllbnRzIGFkZAorICogRXZlbnRMaXN0ZW5lcnMgd2l0aCBhZGRMaXN0ZW5lciBhbmQgcmVtb3ZlIHRoZW0gd2l0aCByZW1vdmVMaXN0ZW5lci4KKyAqIE5vdGlmaWVycyBjYWxsIG5vdGlmeUNoYW5nZWQgd2hlbiB0aGV5IHdpc2ggdG8gbm90aWZ5IGxpc3RlbmVycy4KKyAqIFRoaXMgcXVldWVzIHRoZSBsaXN0ZW5lciBsaXN0IG9uIHRoZSBub3RpZmljYXRpb24gdGhyZWFkLCB3aGljaAorICogZXZlbnR1YWxseSBkZXF1ZXVlcyB0aGUgbGlzdCBhbmQgY2FsbHMgbm90aWZ5TGlzdGVuZXIgb24gZWFjaAorICogbGlzdGVuZXIgaW4gdGhlIGxpc3QuPC9wPgorICoKKyAqIDxwPlN1YmNsYXNzZXMgb3ZlcnJpZGUgYWNjZXB0c0xpc3RlbmVyIGFuZCBub3RpZnlMaXN0ZW5lciAKKyAqIHRvIGFkZCB0eXBlLXNhZmUgbm90aWZpY2F0aW9uLiAgQWNjZXB0c0xpc3RlbmVyIHNob3VsZCByZXR1cm4KKyAqIHRydWUgaWYgdGhlIGxpc3RlbmVyIGlzIG9mIHRoZSBhcHByb3ByaWF0ZSB0eXBlOyBJQ1VOb3RpZmllcgorICogaXRzZWxmIHdpbGwgZW5zdXJlIHRoZSBsaXN0ZW5lciBpcyBub24tbnVsbCBhbmQgdGhhdCB0aGUKKyAqIGlkZW50aWNhbCBsaXN0ZW5lciBpcyBub3QgYWxyZWFkeSByZWdpc3RlcmVkIHdpdGggdGhlIE5vdGlmaWVyLgorICogTm90aWZ5TGlzdGVuZXIgc2hvdWxkIGNhc3QgdGhlIGxpc3RlbmVyIHRvIHRoZSBhcHByb3ByaWF0ZSAKKyAqIHR5cGUgYW5kIGNhbGwgdGhlIGFwcHJvcHJpYXRlIG1ldGhvZCBvbiB0aGUgbGlzdGVuZXIuCisgKi8KK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBJQ1VOb3RpZmllciB7CisgICAgcHJpdmF0ZSBmaW5hbCBPYmplY3Qgbm90aWZ5TG9jayA9IG5ldyBPYmplY3QoKTsKKyAgICBwcml2YXRlIE5vdGlmeVRocmVhZCBub3RpZnlUaHJlYWQ7CisgICAgcHJpdmF0ZSBMaXN0IGxpc3RlbmVyczsKKworICAgIC8qKgorICAgICAqIEFkZCBhIGxpc3RlbmVyIHRvIGJlIG5vdGlmaWVkIHdoZW4gbm90aWZ5Q2hhbmdlZCBpcyBjYWxsZWQuCisgICAgICogVGhlIGxpc3RlbmVyIG11c3Qgbm90IGJlIG51bGwuIEFjY2VwdHNMaXN0ZW5lciBtdXN0IHJldHVybgorICAgICAqIHRydWUgZm9yIHRoZSBsaXN0ZW5lci4gIEF0dGVtcHRzIHRvIGNvbmN1cnJlbnRseQorICAgICAqIHJlZ2lzdGVyIHRoZSBpZGVudGljYWwgbGlzdGVuZXIgbW9yZSB0aGFuIG9uY2Ugd2lsbCBiZQorICAgICAqIHNpbGVudGx5IGlnbm9yZWQuICAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhZGRMaXN0ZW5lcihFdmVudExpc3RlbmVyIGwpIHsKKwlpZiAobCA9PSBudWxsKSB7CisJICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigpOworCX0KKworCWlmIChhY2NlcHRzTGlzdGVuZXIobCkpIHsKKwkgICAgc3luY2hyb25pemVkIChub3RpZnlMb2NrKSB7CisJCWlmIChsaXN0ZW5lcnMgPT0gbnVsbCkgeworCQkgICAgbGlzdGVuZXJzID0gbmV3IEFycmF5TGlzdCg1KTsKKwkJfSBlbHNlIHsKKwkJICAgIC8vIGlkZW50aXR5IGVxdWFsaXR5IGNoZWNrCisJCSAgICBJdGVyYXRvciBpdGVyID0gbGlzdGVuZXJzLml0ZXJhdG9yKCk7CisJCSAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKwkJCWlmIChpdGVyLm5leHQoKSA9PSBsKSB7CisJCQkgICAgcmV0dXJuOworCQkJfQorCQkgICAgfQorCQl9CisKKwkJbGlzdGVuZXJzLmFkZChsKTsKKwkgICAgfQorCX0gZWxzZSB7CisJICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKCJMaXN0ZW5lciBpbnZhbGlkIGZvciB0aGlzIG5vdGlmaWVyLiIpOworCX0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTdG9wIG5vdGlmeWluZyB0aGlzIGxpc3RlbmVyLiAgVGhlIGxpc3RlbmVyIG11c3QKKyAgICAgKiBub3QgYmUgbnVsbC4gIEF0dGVtcHMgdG8gcmVtb3ZlIGEgbGlzdGVuZXIgdGhhdCBpcworICAgICAqIG5vdCByZWdpc3RlcmVkIHdpbGwgYmUgc2lsZW50bHkgaWdub3JlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZW1vdmVMaXN0ZW5lcihFdmVudExpc3RlbmVyIGwpIHsKKwlpZiAobCA9PSBudWxsKSB7CisJICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigpOworCX0KKwlzeW5jaHJvbml6ZWQgKG5vdGlmeUxvY2spIHsKKwkgICAgaWYgKGxpc3RlbmVycyAhPSBudWxsKSB7CisJCS8vIGlkZW50aXR5IGVxdWFsaXR5IGNoZWNrCisJCUl0ZXJhdG9yIGl0ZXIgPSBsaXN0ZW5lcnMuaXRlcmF0b3IoKTsKKwkJd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisJCSAgICBpZiAoaXRlci5uZXh0KCkgPT0gbCkgeworCQkJaXRlci5yZW1vdmUoKTsKKwkJCWlmIChsaXN0ZW5lcnMuc2l6ZSgpID09IDApIHsKKwkJCSAgICBsaXN0ZW5lcnMgPSBudWxsOworCQkJfQorCQkJcmV0dXJuOworCQkgICAgfQorCQl9CisJICAgIH0KKwl9CisgICAgfQorCisgICAgLyoqCisgICAgICogUXVldWUgYSBub3RpZmljYXRpb24gb24gdGhlIG5vdGlmaWNhdGlvbiB0aHJlYWQgZm9yIHRoZSBjdXJyZW50CisgICAgICogbGlzdGVuZXJzLiAgV2hlbiB0aGUgdGhyZWFkIHVucXVldWVzIHRoZSBub3RpZmljYXRpb24sIG5vdGlmeUxpc3RlbmVyCisgICAgICogaXMgY2FsbGVkIG9uIGVhY2ggbGlzdGVuZXIgZnJvbSB0aGUgbm90aWZpY2F0aW9uIHRocmVhZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBub3RpZnlDaGFuZ2VkKCkgeworCWlmIChsaXN0ZW5lcnMgIT0gbnVsbCkgeworCSAgICBzeW5jaHJvbml6ZWQgKG5vdGlmeUxvY2spIHsKKwkJaWYgKGxpc3RlbmVycyAhPSBudWxsKSB7CisJCSAgICBpZiAobm90aWZ5VGhyZWFkID09IG51bGwpIHsKKwkJCW5vdGlmeVRocmVhZCA9IG5ldyBOb3RpZnlUaHJlYWQodGhpcyk7CisJCQlub3RpZnlUaHJlYWQuc2V0RGFlbW9uKHRydWUpOworCQkJbm90aWZ5VGhyZWFkLnN0YXJ0KCk7CisJCSAgICB9CisJCSAgICBub3RpZnlUaHJlYWQucXVldWUobGlzdGVuZXJzLnRvQXJyYXkoKSk7CisJCX0KKwkgICAgfQorCX0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGUgbm90aWZpY2F0aW9uIHRocmVhZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBOb3RpZnlUaHJlYWQgZXh0ZW5kcyBUaHJlYWQgeworCXByaXZhdGUgZmluYWwgSUNVTm90aWZpZXIgbm90aWZpZXI7CisJcHJpdmF0ZSBmaW5hbCBMaXN0IHF1ZXVlID0gbmV3IExpbmtlZExpc3QoKTsKKworCU5vdGlmeVRocmVhZChJQ1VOb3RpZmllciBub3RpZmllcikgeworCSAgICB0aGlzLm5vdGlmaWVyID0gbm90aWZpZXI7CisJfQorCisJLyoqCisJICogUXVldWUgdGhlIG5vdGlmaWNhdGlvbiBvbiB0aGUgdGhyZWFkLgorCSAqLworCXB1YmxpYyB2b2lkIHF1ZXVlKE9iamVjdFtdIGxpc3QpIHsKKwkgICAgc3luY2hyb25pemVkICh0aGlzKSB7CisJCXF1ZXVlLmFkZChsaXN0KTsKKwkJbm90aWZ5KCk7CisJICAgIH0KKwl9CisKKwkvKioKKwkgKiBXYWl0IGZvciBhIG5vdGlmaWNhdGlvbiB0byBiZSBxdWV1ZWQsIHRoZW4gbm90aWZ5IGFsbAorCSAqIGxpc3RlbmVycyBsaXN0ZWQgaW4gdGhlIG5vdGlmaWNhdGlvbi4KKwkgKi8KKwlwdWJsaWMgdm9pZCBydW4oKSB7CisJICAgIE9iamVjdFtdIGxpc3Q7CisJICAgIHdoaWxlICh0cnVlKSB7CisJCXRyeSB7CisJCSAgICBzeW5jaHJvbml6ZWQgKHRoaXMpIHsKKwkJCXdoaWxlIChxdWV1ZS5pc0VtcHR5KCkpIHsKKwkJCSAgICB3YWl0KCk7CisJCQl9CisJCQlsaXN0ID0gKE9iamVjdFtdKXF1ZXVlLnJlbW92ZSgwKTsKKwkJICAgIH0KKworCQkgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgKytpKSB7CisJCQlub3RpZmllci5ub3RpZnlMaXN0ZW5lcigoRXZlbnRMaXN0ZW5lcilsaXN0W2ldKTsKKwkJICAgIH0KKwkJfQorCQljYXRjaCAoSW50ZXJydXB0ZWRFeGNlcHRpb24gZSkgeworCQl9CisJICAgIH0KKwl9CisgICAgfQorCisgICAgLyoqCisgICAgICogU3ViY2xhc3NlcyBpbXBsZW1lbnQgdGhpcyB0byByZXR1cm4gdHJ1ZSBpZiB0aGUgbGlzdGVuZXIgaXMKKyAgICAgKiBvZiB0aGUgYXBwcm9wcmlhdGUgdHlwZS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgYm9vbGVhbiBhY2NlcHRzTGlzdGVuZXIoRXZlbnRMaXN0ZW5lciBsKTsKKworICAgIC8qKgorICAgICAqIFN1YmNsYXNzZXMgaW1wbGVtZW50IHRoaXMgdG8gbm90aWZ5IHRoZSBsaXN0ZW5lci4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3Qgdm9pZCBub3RpZnlMaXN0ZW5lcihFdmVudExpc3RlbmVyIGwpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVUldMb2NrLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VSV0xvY2suamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTRlMjVlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVUldMb2NrLmphdmEKQEAgLTAsMCArMSwzMDQgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VSV0xvY2suamF2YSx2ICQKKyAqICREYXRlOiAyMDAyLzA4LzEzIDIzOjQwOjUyICQKKyAqICRSZXZpc2lvbjogMS40ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKKy8vIFNlZSBBbGxhbiBIb2x1YidzIDE5OTkgY29sdW1uIGluIEphdmFXb3JsZCwgYW5kIERvdWcgTGVhJ3MgY29kZSBmb3IgUldMb2NrcyB3aXRoIHdyaXRlciBwcmVmZXJlbmNlLgorCitpbXBvcnQgamF2YS51dGlsLkxpbmtlZExpc3Q7CisKKy8qKgorICogPHA+QSBzaW1wbGUgUmVhZGVyL1dyaXRlciBsb2NrLiAgVGhpcyBhc3N1bWVzIHRoYXQgdGhlcmUgd2lsbAorICogYmUgbGl0dGxlIHdyaXRpbmcgY29udGVudGlvbi4gIEl0IGFsc28gZG9lc24ndCBhbGxvdyAKKyAqIGFjdGl2ZSByZWFkZXJzIHRvIGFjcXVpcmUgYW5kIHJlbGVhc2UgYSB3cml0ZSBsb2NrLCBvcgorICogZGVhbCB3aXRoIHByaW9yaXR5IGludmVyc2lvbiBpc3N1ZXMuPC9wPgorICoKKyAqIDxwPkFjY2VzcyB0byB0aGUgbG9jayBzaG91bGQgYmUgZW5jbG9zZWQgaW4gYSB0cnkvZmluYWxseSBibG9jaworICogaW4gb3JkZXIgdG8gZW5zdXJlIHRoYXQgdGhlIGxvY2sgaXMgYWx3YXlzIHJlbGVhc2VkIGluIGNhc2Ugb2YKKyAqIGV4Y2VwdGlvbnM6PGJyPjxwcmU+CisgKiB0cnkgeworICogICAgIGxvY2suYWNxdWlyZVJlYWQoKTsKKyAqICAgICAvLyB1c2Ugc2VydmljZSBwcm90ZWN0ZWQgYnkgdGhlIGxvY2sKKyAqIH0KKyAqIGZpbmFsbHkgeworICogICAgIGxvY2sucmVsZWFzZVJlYWQoKTsKKyAqIH0KKyAqIDwvcHJlPjwvcD4KKyAqCisgKiA8cD5UaGUgbG9jayBwcm92aWRlcyB1dGlsaXR5IG1ldGhvZHMgZ2V0U3RhdHMgYW5kIGNsZWFyU3RhdHMKKyAqIHRvIHJldHVybiBzdGF0aXN0aWNzIG9uIHRoZSB1c2Ugb2YgdGhlIGxvY2suPC9wPgorICovCitwdWJsaWMgY2xhc3MgSUNVUldMb2NrIHsKKyAgICBwcml2YXRlIE9iamVjdCB3cml0ZUxvY2sgPSBuZXcgT2JqZWN0KCk7CisgICAgcHJpdmF0ZSBPYmplY3QgcmVhZExvY2sgPSBuZXcgT2JqZWN0KCk7CisgICAgcHJpdmF0ZSBpbnQgd3djOyAvLyB3YWl0aW5nIHdyaXRlcnMKKyAgICBwcml2YXRlIGludCByYzsgLy8gYWN0aXZlIHJlYWRlcnMsIC0xIGlmIHRoZXJlJ3MgYW4gYWN0aXZlIHdyaXRlcgorICAgIHByaXZhdGUgaW50IHdyYzsgLy8gd2FpdGluZyByZWFkZXJzCisKKyAgICBwcml2YXRlIFN0YXRzIHN0YXRzID0gbmV3IFN0YXRzKCk7IC8vIG1heWJlIGRvbid0IGluaXQgdG8gc3RhcnQuLi4KKworICAgIC8qKgorICAgICAqIEludGVybmFsIGNsYXNzIHVzZWQgdG8gZ2F0aGVyIHN0YXRpc3RpY3Mgb24gdGhlIFJXTG9jay4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGNsYXNzIFN0YXRzIHsKKwkvKioKKwkgKiBOdW1iZXIgb2YgdGltZXMgcmVhZCBhY2Nlc3MgZ3JhbnRlZCAocmVhZCBjb3VudCkuCisJICovCisJcHVibGljIGludCBfcmM7CisKKwkvKioKKwkgKiBOdW1iZXIgb2YgdGltZXMgY29uY3VycmVudCByZWFkIGFjY2VzcyBncmFudGVkIChtdWx0aXBsZSByZWFkIGNvdW50KS4KKwkgKi8KKwlwdWJsaWMgaW50IF9tcmM7CisKKwkvKioKKwkgKiBOdW1iZXIgb2YgdGltZXMgYmxvY2tlZCBmb3IgcmVhZCAod2FpdGluZyByZWFkZXIgY291bnQpLgorCSAqLworCXB1YmxpYyBpbnQgX3dyYzsgLy8gd2FpdCBmb3IgcmVhZAorCisJLyoqCisJICogTnVtYmVyIG9mIHRpbWVzIHdyaXRlIGFjY2VzcyBncmFudGVkICh3cml0ZXIgY291bnQpLgorCSAqLworCXB1YmxpYyBpbnQgX3djOworCisJLyoqCisJICogTnVtYmVyIG9mIHRpbWVzIGJsb2NrZWQgZm9yIHdyaXRlICh3YWl0aW5nIHdyaXRlciBjb3VudCkuCisJICovCisJcHVibGljIGludCBfd3djOworCisJcHJpdmF0ZSBTdGF0cygpIHsKKwl9CisKKwlwcml2YXRlIFN0YXRzKGludCByYywgaW50IG1yYywgaW50IHdyYywgaW50IHdjLCBpbnQgd3djKSB7CisJICAgIHRoaXMuX3JjID0gcmM7CisJICAgIHRoaXMuX21yYyA9IG1yYzsKKwkgICAgdGhpcy5fd3JjID0gd3JjOworCSAgICB0aGlzLl93YyA9IHdjOworCSAgICB0aGlzLl93d2MgPSB3d2M7CisJfQorCisJcHJpdmF0ZSBTdGF0cyhTdGF0cyByaHMpIHsKKwkgICAgdGhpcyhyaHMuX3JjLCByaHMuX21yYywgcmhzLl93cmMsIHJocy5fd2MsIHJocy5fd3djKTsKKwl9CisKKwkvKioKKwkgKiBSZXR1cm4gYSBzdHJpbmcgbGlzdGluZyBhbGwgdGhlIHN0YXRzLgorCSAqLworCXB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisJICAgIHJldHVybiAiIHJjOiAiICsgX3JjICsKKwkJIiBtcmM6ICIgKyBfbXJjICsgCisJCSIgd3JjOiAiICsgX3dyYyArCisJCSIgd2M6ICIgKyBfd2MgKworCQkiIHd3YzogIiArIF93d2M7CisJfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJlc2V0IHRoZSBzdGF0cy4gIFJldHVybnMgZXhpc3Rpbmcgc3RhdHMsIGlmIGFueS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIFN0YXRzIHJlc2V0U3RhdHMoKSB7CisJU3RhdHMgcmVzdWx0ID0gc3RhdHM7CisJc3RhdHMgPSBuZXcgU3RhdHMoKTsKKwlyZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIENsZWFyIHRoZSBzdGF0cyAoc3RvcCBjb2xsZWN0aW5nIHN0YXRzKS4gIFJldHVybnMgZXhpc3Rpbmcgc3RhdHMsIGlmIGFueS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIFN0YXRzIGNsZWFyU3RhdHMoKSB7CisJU3RhdHMgcmVzdWx0ID0gc3RhdHM7CisJc3RhdHMgPSBudWxsOworCXJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiBhIHNuYXBzaG90IG9mIHRoZSBjdXJyZW50IHN0YXRzLiAgVGhpcyBkb2VzIG5vdCByZXNldCB0aGUgc3RhdHMuCisgICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCBTdGF0cyBnZXRTdGF0cygpIHsKKwlyZXR1cm4gc3RhdHMgPT0gbnVsbCA/IG51bGwgOiBuZXcgU3RhdHMoc3RhdHMpOworICAgIH0KKworICAgIC8vIHV0aWxpdGllcworCisgICAgcHJpdmF0ZSBzeW5jaHJvbml6ZWQgYm9vbGVhbiBnb3RSZWFkKCkgeworCSsrcmM7CisJaWYgKHN0YXRzICE9IG51bGwpIHsKKwkgICAgKytzdGF0cy5fcmM7CisJICAgIGlmIChyYyA+IDEpICsrc3RhdHMuX21yYzsKKwl9CisJcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHJpdmF0ZSBzeW5jaHJvbml6ZWQgYm9vbGVhbiBnZXRSZWFkKCkgeworCWlmIChyYyA+PSAwICYmIHd3YyA9PSAwKSB7CisJICAgIHJldHVybiBnb3RSZWFkKCk7CisJfQorCSsrd3JjOworCXJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN5bmNocm9uaXplZCBib29sZWFuIHJldHJ5UmVhZCgpIHsKKwlpZiAoc3RhdHMgIT0gbnVsbCkgKytzdGF0cy5fd3JjOworCWlmIChyYyA+PSAwICYmIHd3YyA9PSAwKSB7CisJICAgIC0td3JjOworCSAgICByZXR1cm4gZ290UmVhZCgpOworCX0KKwlyZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHJpdmF0ZSBzeW5jaHJvbml6ZWQgYm9vbGVhbiBmaW5pc2hSZWFkKCkgeworCWlmIChyYyA+IDApIHsKKwkgICAgcmV0dXJuICgwID09IC0tcmMgJiYgd3djID4gMCk7CisJfQorCXRocm93IG5ldyBJbnRlcm5hbEVycm9yKCJubyBjdXJyZW50IHJlYWRlciB0byByZWxlYXNlIik7CisgICAgfQorCQorICAgIHByaXZhdGUgc3luY2hyb25pemVkIGJvb2xlYW4gZ290V3JpdGUoKSB7CisJcmMgPSAtMTsKKwlpZiAoc3RhdHMgIT0gbnVsbCkgeworCSAgICArK3N0YXRzLl93YzsKKwl9CisJcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHJpdmF0ZSBzeW5jaHJvbml6ZWQgYm9vbGVhbiBnZXRXcml0ZSgpIHsKKwlpZiAocmMgPT0gMCkgeworCSAgICByZXR1cm4gZ290V3JpdGUoKTsKKwl9CisJKyt3d2M7CisJcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHByaXZhdGUgc3luY2hyb25pemVkIGJvb2xlYW4gcmV0cnlXcml0ZSgpIHsKKwlpZiAoc3RhdHMgIT0gbnVsbCkgKytzdGF0cy5fd3djOworCWlmIChyYyA9PSAwKSB7CisJICAgIC0td3djOworCSAgICByZXR1cm4gZ290V3JpdGUoKTsKKwl9CisJcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOT1RJRllfTk9ORSA9IDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5PVElGWV9XUklURVJTID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTk9USUZZX1JFQURFUlMgPSAyOworCisgICAgcHJpdmF0ZSBzeW5jaHJvbml6ZWQgaW50IGZpbmlzaFdyaXRlKCkgeworCWlmIChyYyA8IDApIHsKKwkgICAgcmMgPSAwOworCSAgICBpZiAod3djID4gMCkgeworCQlyZXR1cm4gTk9USUZZX1dSSVRFUlM7CisJICAgIH0gZWxzZSBpZiAod3JjID4gMCkgeworCQlyZXR1cm4gTk9USUZZX1JFQURFUlM7CisJICAgIH0gZWxzZSB7CisJCXJldHVybiBOT1RJRllfTk9ORTsKKwkgICAgfQorCX0KKwl0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcigibm8gY3VycmVudCB3cml0ZXIgdG8gcmVsZWFzZSIpOworICAgIH0KKwkKKyAgICAvKioKKyAgICAgKiA8cD5BY3F1aXJlIGEgcmVhZCBsb2NrLCBibG9ja2luZyB1bnRpbCBhIHJlYWQgbG9jayBpcworICAgICAqIGF2YWlsYWJsZS4gIE11bHRpcGxlIHJlYWRlcnMgY2FuIGNvbmN1cnJlbnRseSBob2xkIHRoZSByZWFkCisgICAgICogbG9jay48L3A+CisgICAgICoKKyAgICAgKiA8cD5JZiB0aGVyZSdzIGEgd3JpdGVyLCBvciBhIHdhaXRpbmcgd3JpdGVyLCBpbmNyZW1lbnQgdGhlCisgICAgICogd2FpdGluZyByZWFkZXIgY291bnQgYW5kIGJsb2NrIG9uIHRoaXMuICBPdGhlcndpc2UKKyAgICAgKiBpbmNyZW1lbnQgdGhlIGFjdGl2ZSByZWFkZXIgY291bnQgYW5kIHJldHVybi4gIENhbGxlciBtdXN0IGNhbGwKKyAgICAgKiByZWxlYXNlUmVhZCB3aGVuIGRvbmUgKGZvciBleGFtcGxlLCBpbiBhIGZpbmFsbHkgYmxvY2spLjwvcD4gCisgICAgICovCisgICAgcHVibGljIHZvaWQgYWNxdWlyZVJlYWQoKSB7CisJaWYgKCFnZXRSZWFkKCkpIHsKKwkgICAgZm9yICg7OykgeworCQl0cnkgeworCQkgICAgc3luY2hyb25pemVkIChyZWFkTG9jaykgeworCQkJcmVhZExvY2sud2FpdCgpOworCQkgICAgfQorCQkgICAgaWYgKHJldHJ5UmVhZCgpKSB7CisJCQlyZXR1cm47CisJCSAgICB9CisJCX0KKwkJY2F0Y2ggKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHsKKwkJfQorCSAgICB9CisJfQorICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlJlbGVhc2UgYSByZWFkIGxvY2sgYW5kIHJldHVybi4gIEFuIGVycm9yIHdpbGwgYmUgdGhyb3duCisgICAgICogaWYgYSByZWFkIGxvY2sgaXMgbm90IGN1cnJlbnRseSBoZWxkLjwvcD4KKyAgICAgKgorICAgICAqIDxwPklmIHRoaXMgaXMgdGhlIGxhc3QgYWN0aXZlIHJlYWRlciwgbm90aWZ5IHRoZSBvbGRlc3QKKyAgICAgKiB3YWl0aW5nIHdyaXRlci4gIENhbGwgd2hlbiBmaW5pc2hlZCB3aXRoIHdvcmsKKyAgICAgKiBjb250cm9sbGVkIGJ5IGFjcXVpcmVSZWFkLjwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZWxlYXNlUmVhZCgpIHsKKwlpZiAoZmluaXNoUmVhZCgpKSB7CisJICAgIHN5bmNocm9uaXplZCAod3JpdGVMb2NrKSB7CisJCXdyaXRlTG9jay5ub3RpZnkoKTsKKwkgICAgfQorCX0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5BY3F1aXJlIHRoZSB3cml0ZSBsb2NrLCBibG9ja2luZyB1bnRpbCB0aGUgd3JpdGUgbG9jayBpcworICAgICAqIGF2YWlsYWJsZS4gIE9ubHkgb25lIHdyaXRlciBjYW4gYWNxdWlyZSB0aGUgd3JpdGUgbG9jaywgYW5kCisgICAgICogd2hlbiBoZWxkLCBubyByZWFkZXJzIGNhbiBhY3F1aXJlIHRoZSByZWFkIGxvY2suPC9wPgorICAgICAqCisgICAgICogPHA+SWYgdGhlcmUgYXJlIG5vIHJlYWRlcnMgYW5kIG5vIHdhaXRpbmcgd3JpdGVycywgbWFyayBhcworICAgICAqIGhhdmluZyBhbiBhY3RpdmUgd3JpdGVyIGFuZCByZXR1cm4uICBPdGhlcndpc2UsIGFkZCBhIGxvY2sgdG8gdGhlCisgICAgICogZW5kIG9mIHRoZSB3YWl0aW5nIHdyaXRlciBsaXN0LCBhbmQgYmxvY2sgb24gaXQuICBDYWxsZXIKKyAgICAgKiBtdXN0IGNhbGwgcmVsZWFzZVdyaXRlIHdoZW4gZG9uZSAoZm9yIGV4YW1wbGUsIGluIGEgZmluYWxseQorICAgICAqIGJsb2NrKS48cD4gCisgICAgICovCisgICAgcHVibGljIHZvaWQgYWNxdWlyZVdyaXRlKCkgeworCWlmICghZ2V0V3JpdGUoKSkgeworCSAgICBmb3IgKDs7KSB7CisJCXRyeSB7CisJCSAgICBzeW5jaHJvbml6ZWQgKHdyaXRlTG9jaykgeworCQkJd3JpdGVMb2NrLndhaXQoKTsKKwkJICAgIH0KKwkJICAgIGlmIChyZXRyeVdyaXRlKCkpIHsKKwkJCXJldHVybjsKKwkJICAgIH0KKwkJfQorCQljYXRjaCAoSW50ZXJydXB0ZWRFeGNlcHRpb24gZSkgeworCQl9CisJICAgIH0KKwl9CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+UmVsZWFzZSB0aGUgd3JpdGUgbG9jayBhbmQgcmV0dXJuLiAgQW4gZXJyb3Igd2lsbCBiZSB0aHJvd24KKyAgICAgKiBpZiB0aGUgd3JpdGUgbG9jayBpcyBub3QgY3VycmVudGx5IGhlbGQuPC9wPgorICAgICAqCisgICAgICogPHA+SWYgdGhlcmUgYXJlIHdhaXRpbmcgcmVhZGVycywgbWFrZSB0aGVtIGFsbCBhY3RpdmUgYW5kCisgICAgICogbm90aWZ5IGFsbCBvZiB0aGVtLiAgT3RoZXJ3aXNlLCBub3RpZnkgdGhlIG9sZGVzdCB3YWl0aW5nCisgICAgICogd3JpdGVyLCBpZiBhbnkuICBDYWxsIHdoZW4gZmluaXNoZWQgd2l0aCB3b3JrIGNvbnRyb2xsZWQgYnkKKyAgICAgKiBhY3F1aXJlV3JpdGUuPC9wPiAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZWxlYXNlV3JpdGUoKSB7CisJc3dpdGNoIChmaW5pc2hXcml0ZSgpKSB7CisJY2FzZSBOT1RJRllfV1JJVEVSUzoKKwkgICAgc3luY2hyb25pemVkICh3cml0ZUxvY2spIHsKKwkJd3JpdGVMb2NrLm5vdGlmeSgpOworCSAgICB9CisJICAgIGJyZWFrOworCWNhc2UgTk9USUZZX1JFQURFUlM6CisJICAgIHN5bmNocm9uaXplZCAocmVhZExvY2spIHsKKwkJcmVhZExvY2subm90aWZ5QWxsKCk7CisJICAgIH0KKwkgICAgYnJlYWs7CisJY2FzZSBOT1RJRllfTk9ORToKKwkgICAgYnJlYWs7CisJfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVVNlcnZpY2UuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVVNlcnZpY2UuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNDlkMWZiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVU2VydmljZS5qYXZhCkBAIC0wLDAgKzEsNjk0IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVU2VydmljZS5qYXZhLHYgJAorICogJERhdGU6IDIwMDIvMDgvMTMgMjM6NDA6NTIgJAorICogJFJldmlzaW9uOiAxLjcgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEubGFuZy5yZWYuU29mdFJlZmVyZW5jZTsKK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uOworaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZDsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uczsKK2ltcG9ydCBqYXZhLnV0aWwuRXZlbnRMaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkxpc3RJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLk1hcC5FbnRyeTsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworaW1wb3J0IGphdmEudXRpbC5UcmVlTWFwOworCisvKioKKyAqIDxwPkEgU2VydmljZSBwcm92aWRlcyBhY2Nlc3MgdG8gc2VydmljZSBvYmplY3RzIHRoYXQgaW1wbGVtZW50IGEKKyAqIHBhcnRpY3VsYXIgc2VydmljZSwgZS5nLiB0cmFuc2xpdGVyYXRvcnMuICBVc2VycyBwcm92aWRlIGEgU3RyaW5nCisgKiBpZCAoZm9yIGV4YW1wbGUsIGEgbG9jYWxlIHN0cmluZykgdG8gdGhlIHNlcnZpY2UsIGFuZCBnZXQgYmFjayBhbgorICogb2JqZWN0IGZvciB0aGF0IGlkLiAgU2VydmljZSBvYmplY3RzIGNhbiBiZSBhbnkga2luZCBvZiBvYmplY3QuCisgKiBUaGUgc2VydmljZSBvYmplY3QgaXMgY2FjaGVkIGFuZCByZXR1cm5lZCBmb3IgbGF0ZXIgcXVlcmllcywgc28KKyAqIGdlbmVyYWxseSBpdCBzaG91bGQgbm90IGJlIG11dGFibGUsIG9yIHRoZSBjYWxsZXIgc2hvdWxkIGNsb25lIHRoZQorICogb2JqZWN0IGJlZm9yZSBtb2RpZnlpbmcgaXQuPC9wPgorICoKKyAqIDxwPlNlcnZpY2VzICdjYW5vbmljYWxpemUnIHRoZSBxdWVyeSBpZCBhbmQgdXNlIHRoZSBjYW5vbmljYWwgaWQKKyAqIHRvIHF1ZXJ5IGZvciB0aGUgc2VydmljZS4gIFRoZSBzZXJ2aWNlIGFsc28gZGVmaW5lcyBhIG1lY2hhbmlzbQorICogdG8gJ2ZhbGxiYWNrJyB0aGUgaWQgbXVsdGlwbGUgdGltZXMuICBDbGllbnRzIGNhbiBvcHRpb25hbGx5CisgKiByZXF1ZXN0IHRoZSBhY3R1YWwgaWQgdGhhdCB3YXMgbWF0Y2hlZCBieSBhIHF1ZXJ5IHdoZW4gdGhleQorICogdXNlIGFuIGlkIHRvIHJldHJpZXZlIGEgc2VydmljZSBvYmplY3QuPC9wPgorICoKKyAqIDxwPlNlcnZpY2Ugb2JqZWN0cyBhcmUgaW5zdGFudGlhdGVkIGJ5IEZhY3Rvcnkgb2JqZWN0cyByZWdpc3RlcmVkIHdpdGggCisgKiB0aGUgc2VydmljZS4gIFRoZSBzZXJ2aWNlIHF1ZXJpZXMgZWFjaCBGYWN0b3J5IGluIHR1cm4sIGZyb20gbW9zdCByZWNlbnRseQorICogcmVnaXN0ZXJlZCB0byBlYXJsaWVzdCByZWdpc3RlcmVkLCB1bnRpbCBvbmUgcmV0dXJucyBhIHNlcnZpY2Ugb2JqZWN0LgorICogSWYgbm9uZSByZXNwb25kcyB3aXRoIGEgc2VydmljZSBvYmplY3QsIGEgZmFsbGJhY2sgaWQgaXMgZ2VuZXJhdGVkLAorICogYW5kIHRoZSBwcm9jZXNzIHJlcGVhdHMgdW50aWwgYSBzZXJ2aWNlIG9iamVjdCBpcyByZXR1cm5lZCBvciB1bnRpbAorICogdGhlIGlkIGhhcyBubyBmdXJ0aGVyIGZhbGxiYWNrcy48L3A+CisgKgorICogPHA+RmFjdG9yaWVzIGNhbiBiZSBkeW5hbWljYWxseSByZWdpc3RlcmVkIGFuZCB1bnJlZ2lzdGVyZWQgd2l0aCB0aGUKKyAqIHNlcnZpY2UuICBXaGVuIHJlZ2lzdGVyZWQsIGEgRmFjdG9yeSBpcyBpbnN0YWxsZWQgYXQgdGhlIGhlYWQgb2YKKyAqIHRoZSBmYWN0b3J5IGxpc3QsIGFuZCBzbyBnZXRzICdmaXJzdCBjcmFjaycgYXQgYW55IGtleXMgb3IgZmFsbGJhY2sKKyAqIGtleXMuICBXaGVuIHVucmVnaXN0ZXJlZCwgaXQgaXMgcmVtb3ZlZCBmcm9tIHRoZSBzZXJ2aWNlIGFuZCBjYW4gbm8KKyAqIGxvbmdlciBiZSBsb2NhdGVkIHRocm91Z2ggaXQuICBTZXJ2aWNlIG9iamVjdHMgZ2VuZXJhdGVkIGJ5IHRoaXMKKyAqIGZhY3RvcnkgYW5kIGhlbGQgYnkgdGhlIGNsaWVudCBhcmUgdW5hZmZlY3RlZC48L3A+CisgKgorICogPHA+SW50ZXJuYWxseSwgSUNVU2VydmljZSB1c2VzIEtleXMgdG8gcXVlcnkgZmFjdG9yaWVzIGFuZCBwZXJmb3JtCisgKiBmYWxsYmFjay4gIFRoZSBLZXkgZGVmaW5lcyB0aGUgY2Fub25pY2FsIGZvcm0gb2YgdGhlIGlkLCBhbmQKKyAqIGltcGxlbWVudHMgdGhlIGZhbGxiYWNrIHN0cmF0ZWd5LiAgQ3VzdG9tIEtleXMgY2FuIGJlIGRlZmluZWQgdGhhdAorICogcGFyc2UgY29tcGxleCBJRHMgaW50byBjb21wb25lbnRzIHRoYXQgRmFjdG9yaWVzIGNhbiBtb3JlIGVhc2lseQorICogdXNlLiAgVGhlIEtleSBjYW4gY2FjaGUgdGhlIHJlc3VsdHMgb2YgdGhpcyBwYXJzaW5nIHRvIHNhdmUKKyAqIHJlcGVhdGVkIGVmZm9ydC48L3A+CisgKgorICogPHA+SUNVU2VydmljZSBpbXBsZW1lbnRzIElDVU5vdGlmaWVyLCBzbyB0aGF0IGNsaWVudHMgY2FuIHJlZ2lzdGVyCisgKiB0byByZWNlaXZlIG5vdGlmaWNhdGlvbiB3aGVuIGZhY3RvcmllcyBhcmUgYWRkZWQgb3IgcmVtb3ZlZCBmcm9tIAorICogdGhlIHNlcnZpY2UuICBJQ1VTZXJ2aWNlIHByb3ZpZGVzIGEgZGVmYXVsdCBFdmVudExpc3RlbmVyIHN1YmludGVyZmFjZSwKKyAqIFNlcnZpY2VMaXN0ZW5lciwgd2hpY2ggY2FuIGJlIHJlZ2lzdGVyZWQgd2l0aCB0aGUgc2VydmljZS4gIFdoZW4KKyAqIHRoZSBzZXJ2aWNlIGNoYW5nZXMsIHRoZSBTZXJ2aWNlTGlzdGVuZXIncyBzZXJ2aWNlQ2hhbmdlZCBtZXRob2QKKyAqIGlzIGNhbGxlZCwgd2l0aCB0aGUgc2VydmljZSBhcyB0aGUgb25seSBhcmd1bWVudC48L3A+CisgKgorICogPHA+VGhlIElDVVNlcnZpY2UgQVBJIGlzIGJvdGggcmljaCBhbmQgZ2VuZXJpYywgYW5kIGl0IGlzIGV4cGVjdGVkCisgKiB0aGF0IG1vc3QgaW1wbGVtZW50YXRpb25zIHdpbGwgc3RhdGljYWxseSAnd3JhcCcgSUNVU2VydmljZSB0bworICogcHJlc2VudCBhIG1vcmUgYXBwcm9wcmlhdGUgQVBJLS0gZm9yIGV4YW1wbGUsIHRvIGRlY2xhcmUgdGhlIHR5cGUKKyAqIG9mIHRoZSBvYmplY3RzIHJldHVybmVkIGZyb20gZ2V0LCB0byBsaW1pdCB0aGUgZmFjdG9yaWVzIHRoYXQgY2FuCisgKiBiZSByZWdpc3RlcmVkIHdpdGggdGhlIHNlcnZpY2UsIG9yIHRvIGRlZmluZSB0aGVpciBvd24gbGlzdGVuZXIKKyAqIGludGVyZmFjZSB3aXRoIGEgY3VzdG9tIGNhbGxiYWNrIG1ldGhvZC4gIFRoZXkgbWlnaHQgYWxzbyBjdXN0b21pemUKKyAqIElDVVNlcnZpY2UgYnkgb3ZlcnJpZGluZyBpdCwgZm9yIGV4YW1wbGUsIHRvIGN1c3RvbWl6ZSB0aGUgS2V5IGFuZAorICogZmFsbGJhY2sgc3RyYXRlZ3kuICBJQ1VMb2NhbGVTZXJ2aWNlIGlzIGEgY3VzdG9taXplZCBzZXJ2aWNlIHRoYXQKKyAqIHVzZXMgTG9jYWxlIG5hbWVzIGFzIGlkcyBhbmQgdXNlcyBLZXlzIHRoYXQgaW1wbGVtZW50IHRoZSBzdGFuZGFyZAorICogcmVzb3VyY2UgYnVuZGxlIGZhbGxiYWNrIHN0cmF0ZWd5LjxwPgorICovCitwdWJsaWMgY2xhc3MgSUNVU2VydmljZSBleHRlbmRzIElDVU5vdGlmaWVyIHsKKyAgICAvKioKKyAgICAgKiBBY2Nlc3MgdG8gZmFjdG9yaWVzIGlzIHByb3RlY3RlZCBieSBhIHJlYWQtd3JpdGUgbG9jay4gIFRoaXMgaXMKKyAgICAgKiB0byBhbGxvdyBtdWx0aXBsZSB0aHJlYWRzIHRvIHJlYWQgY29uY3VycmVudGx5LCBidXQga2VlcAorICAgICAqIGNoYW5nZXMgdG8gdGhlIGZhY3RvcnkgbGlzdCBhdG9taWMgd2l0aCByZXNwZWN0IHRvIGFsbCByZWFkZXJzLiAgCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBJQ1VSV0xvY2sgZmFjdG9yeUxvY2sgPSBuZXcgSUNVUldMb2NrKCk7CisKKyAgICAvKioKKyAgICAgKiBBbGwgdGhlIGZhY3RvcmllcyByZWdpc3RlcmVkIHdpdGggdGhpcyBzZXJ2aWNlLgorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgTGlzdCBmYWN0b3JpZXMgPSBuZXcgQXJyYXlMaXN0KCk7CisKKyAgICAvKioKKyAgICAgKiBLZXlzIGRlZmluZSBob3cgaWRzIGFyZSBjYW5vbmljYWxpemVkLCBhbmQgZGV0ZXJtaW5lIHRoZQorICAgICAqIGZhbGxiYWNrIHN0cmF0ZWd5IHVzZWQgd2hlbiBxdWVyeWluZyB0aGUgZmFjdG9yaWVzLiAgVGhlIGRlZmF1bHQKKyAgICAgKiBrZXkganVzdCB0YWtlcyBhcyBpdHMgY2Fub25pY2FsSUQgdGhlIGlkIGFzc2lnbmVkIHRvIGl0IHdoZW4gaXQKKyAgICAgKiBpcyBjb25zdHJ1Y3RlZCwgYW5kIGhhcyBubyBmYWxsYmFja3MuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBLZXkgeworICAgICAgICBwcml2YXRlIGZpbmFsIFN0cmluZyBpZDsKKworCS8qKgorCSAqIENvbnN0cnVjdCBhIGtleSBmcm9tIGFuIGlkLgorCSAqLworICAgICAgICBwdWJsaWMgS2V5KFN0cmluZyBpZCkgeworICAgICAgICAgICAgdGhpcy5pZCA9IGlkOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybiB0aGUgb3JpZ2luYWwgSUQuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgZmluYWwgU3RyaW5nIGlkKCkgeworICAgICAgICAgICAgcmV0dXJuIGlkOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybiB0aGUgY2Fub25pY2FsIHZlcnNpb24gb2YgdGhlIG9yaWdpbmFsIElELiAgVGhpcyBpbXBsZW1lbnRhdGlvbgorCSAqIHJldHVybnMgdGhlIG9yaWdpbmFsIElEIHVuY2hhbmdlZC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgY2Fub25pY2FsSUQoKSB7CisgICAgICAgICAgICByZXR1cm4gaWQ7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIHRoZSAoY2Fub25pY2FsKSBjdXJyZW50IElELiAgVGhpcyBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIHRoZQorCSAqIGNhbm9uaWNhbCBJRC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgY3VycmVudElEKCkgeworICAgICAgICAgICAgcmV0dXJuIGNhbm9uaWNhbElEKCk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogSWYgdGhlIGtleSBoYXMgYSBmYWxsYmFjaywgbW9kaWZ5IHRoZSBrZXkgYW5kIHJldHVybiB0cnVlLAorICAgICAgICAgKiBvdGhlcndpc2UgcmV0dXJuIGZhbHNlLiAgVGhlIGN1cnJlbnQgSUQgd2lsbCBjaGFuZ2UgaWYgdGhlcmUKKwkgKiBpcyBhIGZhbGxiYWNrLiAgTm8gY3VycmVudElEcyBzaG91bGQgYmUgcmVwZWF0ZWQsIGFuZCBmYWxsYmFjaworCSAqIG11c3QgZXZlbnR1YWxseSByZXR1cm4gZmFsc2UuICBUaGlzIGltcGxtZW50YXRpb24gaGFzIG5vIGZhbGxiYWNrcworCSAqIGFuZCBhbHdheXMgcmV0dXJucyBmYWxzZS4KKwkgKi8KKyAgICAgICAgcHVibGljIGJvb2xlYW4gZmFsbGJhY2soKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGYWN0b3JpZXMgZ2VuZXJhdGUgdGhlIHNlcnZpY2Ugb2JqZWN0cyBtYWludGFpbmVkIGJ5IHRoZQorICAgICAqIHNlcnZpY2UuICBBIGZhY3RvcnkgZ2VuZXJhdGVzIGEgc2VydmljZSBvYmplY3QgZnJvbSBhIGtleSwKKyAgICAgKiB1cGRhdGVzIGlkLT5mYWN0b3J5IG1hcHBpbmdzLCBhbmQgcmV0dXJucyB0aGUgZGlzcGxheSBuYW1lIGZvcgorICAgICAqIGEgc3VwcG9ydGVkIGlkLiAgCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnRlcmZhY2UgRmFjdG9yeSB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBDcmVhdGUgYSBzZXJ2aWNlIG9iamVjdCBmcm9tIHRoZSBrZXksIGlmIHRoaXMgZmFjdG9yeQorICAgICAgICAgKiBzdXBwb3J0cyB0aGUga2V5LiAgT3RoZXJ3aXNlLCByZXR1cm4gbnVsbC4gIAorCSAqLworICAgICAgICBwdWJsaWMgT2JqZWN0IGNyZWF0ZShLZXkga2V5KTsKKworCS8qKgorCSAqIEFkZCBJRHMgdW5kZXJzdG9vZCBieSB0aGlzIGZhY3RvcnkgdG8gdGhlIHJlc3VsdCBtYXAsIHdpdGgKKwkgKiB0aGlzIGZhY3RvcnkgYXMgdGhlIHZhbHVlLiBJZiB0aGlzIGZhY3RvcnkgaGlkZXMgSURzCisJICogY3VycmVudGx5IGluIHJlc3VsdCwgaXQgc2hvdWxkIHJlbW92ZSBvciByZXNldCB0aGUgbWFwcGluZ3MKKwkgKiBmb3IgdGhvc2UgSURzLiAgCisJICovCisJcHVibGljIHZvaWQgdXBkYXRlVmlzaWJsZUlEcyhNYXAgcmVzdWx0KTsKKworCS8qKgorCSAqIFJldHVybiB0aGUgZGlzcGxheSBuYW1lIGZvciB0aGlzIGlkIGluIHRoZSBwcm92aWRlZCBsb2NhbGUuCisJICogSWYgdGhlIGlkIGlzIG5vdCB2aXNpYmxlIG9yIG5vdCBkZWZpbmVkIGJ5IHRoZSBmYWN0b3J5LAorCSAqIHJldHVybiBudWxsLiAgCisJICovCisJcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShTdHJpbmcgaWQsIExvY2FsZSBsb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEEgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBmYWN0b3J5LiAgVGhpcyBwcm92aWRlcyBkZWZhdWx0CisgICAgICogaW1wbGVtZW50YXRpb25zIGZvciBzdWJjbGFzc2VzLCBhbmQgaW1wbGVtZW50cyBhIHNpbmdsZXRvbgorICAgICAqIGZhY3RvcnkgdGhhdCBtYXRjaGVzIGEgc2luZ2xlIGlkIGFuZCByZXR1cm5zIGEgc2luZ2xlCisgICAgICogKHBvc3NpYmx5IGRlZmVycmVkLWluaXRpYWxpemVkKSBpbnN0YW5jZS4gIElmIHZpc2libGUgaXMKKyAgICAgKiB0cnVlLCB1cGRhdGVzIHRoZSBtYXAgcGFzc2VkIHRvIHVwZGF0ZVZpc2libGVJRHMgd2l0aCBhCisgICAgICogbWFwcGluZyBmcm9tIGlkIHRvIGl0c2VsZi4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFNpbXBsZUZhY3RvcnkgaW1wbGVtZW50cyBGYWN0b3J5IHsKKwlwcm90ZWN0ZWQgT2JqZWN0IGluc3RhbmNlOworCXByb3RlY3RlZCBTdHJpbmcgaWQ7CisJcHJvdGVjdGVkIGJvb2xlYW4gdmlzaWJsZTsKKworCS8qKgorCSAqIENvbnZlbmllbmNlIGNvbnN0cnVjdG9yIHRoYXQgY2FsbHMgU2ltcGxlRmFjdG9yeShPYmplY3QsIFN0cmluZywgYm9vbGVhbikKKwkgKiB3aXRoIHZpc2libGUgdHJ1ZS4KKwkgKi8KKwlwdWJsaWMgU2ltcGxlRmFjdG9yeShPYmplY3QgaW5zdGFuY2UsIFN0cmluZyBpZCkgeworCSAgICB0aGlzKGluc3RhbmNlLCBpZCwgdHJ1ZSk7CisJfQorCisJLyoqCisJICogQ29uc3RydWN0IGEgc2ltcGxlIGZhY3RvcnkgdGhhdCBtYXBzIGEgc2luZ2xlIGlkIHRvIGEgc2luZ2xlIAorCSAqIHNlcnZpY2UgaW5zdGFuY2UuICBJZiB2aXNpYmxlIGlzIHRydWUsIHRoZSBpZCB3aWxsIGJlIHZpc2libGUuCisJICogTmVpdGhlciB0aGUgaW5zdGFuY2Ugbm9yIHRoZSBpZCBjYW4gYmUgbnVsbC4KKwkgKi8KKwlwdWJsaWMgU2ltcGxlRmFjdG9yeShPYmplY3QgaW5zdGFuY2UsIFN0cmluZyBpZCwgYm9vbGVhbiB2aXNpYmxlKSB7CisJICAgIGlmIChpbnN0YW5jZSA9PSBudWxsIHx8IGlkID09IG51bGwpIHsKKwkJdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW5zdGFuY2Ugb3IgaWQgaXMgbnVsbCIpOworCSAgICB9CisJICAgIHRoaXMuaW5zdGFuY2UgPSBpbnN0YW5jZTsKKwkgICAgdGhpcy5pZCA9IGlkOworCSAgICB0aGlzLnZpc2libGUgPSB2aXNpYmxlOworCX0KKworCS8qKgorCSAqIFJldHVybiB0aGUgc2VydmljZSBpbnN0YW5jZSBpZiBpZCBlcXVhbHMgdGhlIGtleSdzIGN1cnJlbnRJRC4KKwkgKi8KKwlwdWJsaWMgT2JqZWN0IGNyZWF0ZShLZXkga2V5KSB7CisJICAgIGlmIChpZC5lcXVhbHMoa2V5LmN1cnJlbnRJRCgpKSkgeworCQlyZXR1cm4gaW5zdGFuY2U7CisJICAgIH0KKwkgICAgcmV0dXJuIG51bGw7CisJfQorCisJLyoqCisJICogSWYgdmlzaWJsZSwgYWRkcyBhIG1hcHBpbmcgZnJvbSBpZCAtPiB0aGlzIHRvIHRoZSByZXN1bHQuCisJICovCisJcHVibGljIHZvaWQgdXBkYXRlVmlzaWJsZUlEcyhNYXAgcmVzdWx0KSB7CisJICAgIGlmICh2aXNpYmxlKSByZXN1bHQucHV0KGlkLCB0aGlzKTsKKwl9CisKKwkvKioKKwkgKiBJZiBpZCBlcXVhbHMgdGhpcy5pZCwgcmV0dXJucyBpZCByZWdhcmRsZXNzIG9mIGxvY2FsZSwgb3RoZXJ3aXNlCisJICogcmV0dXJucyBudWxsLgorCSAqLworCXB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoU3RyaW5nIGlkLCBMb2NhbGUgbG9jYWxlKSB7CisJICAgIHJldHVybiAodmlzaWJsZSAmJiBpZC5lcXVhbHModGhpcy5pZCkpID8gaWQgOiBudWxsOworCX0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVycmlkZSBmb3IgZ2V0KFN0cmluZywgU3RyaW5nW10pLgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgZ2V0KFN0cmluZyBpZCkgeworCXJldHVybiBnZXQoaWQsIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPkdpdmVuIGFuIGlkLCByZXR1cm4gYSBzZXJ2aWNlIG9iamVjdCwgYW5kLCBpZiBhY3R1YWxJRFJldHVybgorICAgICAqIGlzIG5vdCBudWxsLCB0aGUgYWN0dWFsIGlkIHVuZGVyIHdoaWNoIGl0IHdhcyBmb3VuZCBpbiB0aGUKKyAgICAgKiBmaXJzdCBlbGVtZW50IG9mIGFjdHVhbElEUmV0dXJuLiAgSWYgbm8gc2VydmljZSBvYmplY3QgbWF0Y2hlcworICAgICAqIHRoaXMgaWQsIHJldHVybiBudWxsLCBhbmQgbGVhdmUgYWN0dWFsSURSZXR1cm4gdW5jaGFuZ2VkLjwvcD4KKyAgICAgKgorICAgICAqIDxwPlRoaXMgdHJpZXMgZWFjaCByZWdpc3RlcmVkIGZhY3RvcnkgaW4gb3JkZXIsIGFuZCBpZiBub25lIGNhbgorICAgICAqIGdlbmVyYXRlIGEgc2VydmljZSBvYmplY3QgZm9yIHRoZSBrZXksIHJlcGVhdHMgdGhlIHByb2Nlc3Mgd2l0aAorICAgICAqIGVhY2ggZmFsbGJhY2sgb2YgdGhlIGtleSB1bnRpbCBvbmUgcmV0dXJucyBhIHNlcnZpY2Ugb2JqZWN0LCBvcgorICAgICAqIHRoZSBrZXkgaGFzIG5vIGZhbGxiYWNrLjwvcD4gCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXQoU3RyaW5nIGlkLCBTdHJpbmdbXSBhY3R1YWxJRFJldHVybikgeworCWlmIChpZCA9PSBudWxsKSB7CisJICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigpOworCX0KKwlpZiAoZmFjdG9yaWVzLnNpemUoKSA9PSAwKSB7CisJICAgIHJldHVybiBudWxsOworCX0KKwkKKwlDYWNoZUVudHJ5IHJlc3VsdCA9IG51bGw7CisJS2V5IGtleSA9IGNyZWF0ZUtleShpZCk7CisJaWYgKGtleSAhPSBudWxsKSB7CisJICAgIHRyeSB7CisJCS8vIFRoZSBmYWN0b3J5IGxpc3QgY2FuJ3QgYmUgbW9kaWZpZWQgdW50aWwgd2UncmUgZG9uZSwgCisJCS8vIG90aGVyd2lzZSB3ZSBtaWdodCB1cGRhdGUgdGhlIGNhY2hlIHdpdGggYW4gaW52YWxpZCByZXN1bHQuCisJCS8vIFRoZSBjYWNoZSBoYXMgdG8gc3RheSBpbiBzeW5jaCB3aXRoIHRoZSBmYWN0b3J5IGxpc3QuCisJCWZhY3RvcnlMb2NrLmFjcXVpcmVSZWFkKCk7IAorCisJCU1hcCBjYWNoZSA9IG51bGw7CisJCVNvZnRSZWZlcmVuY2UgY3JlZiA9IGNhY2hlcmVmOyAvLyBjb3B5IHNvIHdlIGRvbid0IG5lZWQgdG8gc3luYyBvbiB0aGlzIAorCQlpZiAoY3JlZiAhPSBudWxsKSB7CisJCSAgICBjYWNoZSA9IChNYXApY3JlZi5nZXQoKTsKKwkJfQorCQlpZiAoY2FjaGUgPT0gbnVsbCkgeworCQkgICAgLy8gc3luY2hyb25pemVkIHNpbmNlIGFkZGl0aW9ucyBhbmQgcXVlcmllcyBvbiB0aGUgY2FjaGUgbXVzdCBiZSBhdG9taWMKKwkJICAgIC8vIHRoZXkgY2FuIGJlIGludGVybGVhdmVkLCB0aG91Z2gKKwkJICAgIGNhY2hlID0gQ29sbGVjdGlvbnMuc3luY2hyb25pemVkTWFwKG5ldyBIYXNoTWFwKCkpOworCQkgICAgY3JlZiA9IG5ldyBTb2Z0UmVmZXJlbmNlKGNhY2hlKTsKKwkJfQorCisJCVN0cmluZyBjdXJyZW50SUQgPSBudWxsOworCQlBcnJheUxpc3QgY2FjaGVJRExpc3QgPSBudWxsOworCQlib29sZWFuIHB1dEluQ2FjaGUgPSBmYWxzZTsKKwkgICAgb3V0ZXI6CisJCWRvIHsKKwkJICAgIGN1cnJlbnRJRCA9IGtleS5jdXJyZW50SUQoKTsKKworCQkgICAgcmVzdWx0ID0gKENhY2hlRW50cnkpY2FjaGUuZ2V0KGN1cnJlbnRJRCk7CisJCSAgICBpZiAocmVzdWx0ICE9IG51bGwpIHsKKwkJCWJyZWFrIG91dGVyOworCQkgICAgfQorCisJCSAgICAvLyBmaXJzdCB0ZXN0IG9mIGNhY2hlIGZhaWxlZCwgc28gd2UnbGwgaGF2ZSB0byB1cGRhdGUKKwkJICAgIC8vIHRoZSBjYWNoZSBpZiB3ZSBldmVudHVhbGx5IHN1Y2NlZWQuCisJCSAgICBwdXRJbkNhY2hlID0gdHJ1ZTsKKworCQkgICAgSXRlcmF0b3IgZmkgPSBmYWN0b3JpZXMuaXRlcmF0b3IoKTsKKwkJICAgIHdoaWxlIChmaS5oYXNOZXh0KCkpIHsKKwkJCU9iamVjdCBzZXJ2aWNlID0gKChGYWN0b3J5KWZpLm5leHQoKSkuY3JlYXRlKGtleSk7CisJCQlpZiAoc2VydmljZSAhPSBudWxsKSB7CisJCQkgICAgcmVzdWx0ID0gbmV3IENhY2hlRW50cnkoY3VycmVudElELCBzZXJ2aWNlKTsKKwkJCSAgICBicmVhayBvdXRlcjsKKwkJCX0KKwkJICAgIH0KKworCQkgICAgLy8gcHJlcGFyZSB0byBsb2FkIHRoZSBjYWNoZSB3aXRoIGFsbCBhZGRpdGlvbmFsIGlkcyB0aGF0IAorCQkgICAgLy8gd2lsbCByZXNvbHZlIHRvIHJlc3VsdCwgYXNzdW1pbmcgd2UnbGwgc3VjY2VlZC4gIFdlCisJCSAgICAvLyBkb24ndCB3YW50IHRvIGtlZXAgcXVlcnlpbmcgb24gYW4gaWQgdGhhdCdzIGdvaW5nIHRvCisJCSAgICAvLyBmYWxsYmFjayB0byB0aGUgb25lIHRoYXQgc3VjY2VlZGVkLCB3ZSB3YW50IHRvIGhpdCB0aGUKKwkJICAgIC8vIGNhY2hlIHRoZSBmaXJzdCB0aW1lIG5leHQgZ29hcm91bmQuCisJCSAgICBpZiAoY2FjaGVJRExpc3QgPT0gbnVsbCkgeworCQkJY2FjaGVJRExpc3QgPSBuZXcgQXJyYXlMaXN0KDUpOworCQkgICAgfQorCQkgICAgY2FjaGVJRExpc3QuYWRkKGN1cnJlbnRJRCk7CisKKwkJfSB3aGlsZSAoa2V5LmZhbGxiYWNrKCkpOworCisJCWlmIChyZXN1bHQgIT0gbnVsbCkgeworCQkgICAgaWYgKHB1dEluQ2FjaGUpIHsKKwkJCWNhY2hlLnB1dChyZXN1bHQuYWN0dWFsSUQsIHJlc3VsdCk7CisJCQlpZiAoY2FjaGVJRExpc3QgIT0gbnVsbCkgeworCQkJICAgIEl0ZXJhdG9yIGl0ZXIgPSBjYWNoZUlETGlzdC5pdGVyYXRvcigpOworCQkJICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworCQkJCWNhY2hlLnB1dCgoU3RyaW5nKWl0ZXIubmV4dCgpLCByZXN1bHQpOworCQkJICAgIH0KKwkJCX0KKwkJCS8vIEF0b21pYyB1cGRhdGUuICBXZSBoZWxkIHRoZSByZWFkIGxvY2sgYWxsIHRoaXMgdGltZQorCQkJLy8gc28gd2Uga25vdyBvdXIgY2FjaGUgaXMgY29uc2lzdGVudCB3aXRoIHRoZSBmYWN0b3J5IGxpc3QuCisJCQkvLyBXZSBtaWdodCBzdG9tcCBvdmVyIGEgY2FjaGUgdGhhdCBzb21lIG90aGVyIHRocmVhZCAKKwkJCS8vIHJlYnVpbHQsIGJ1dCB0aGF0J3MgdGhlIGJyZWFrcy4gIFRoZXkncmUgYm90aCBnb29kLgorCQkJY2FjaGVyZWYgPSBjcmVmOworCQkgICAgfQorCisJCSAgICBpZiAoYWN0dWFsSURSZXR1cm4gIT0gbnVsbCkgeworCQkJYWN0dWFsSURSZXR1cm5bMF0gPSByZXN1bHQuYWN0dWFsSUQ7CisJCSAgICB9CisKKwkJICAgIHJldHVybiByZXN1bHQuc2VydmljZTsKKwkJfQorCSAgICB9CisJICAgIGZpbmFsbHkgeworCQlmYWN0b3J5TG9jay5yZWxlYXNlUmVhZCgpOworCSAgICB9CisJfQorCisJcmV0dXJuIG51bGw7CisgICAgfQorICAgIHByaXZhdGUgU29mdFJlZmVyZW5jZSBjYWNoZXJlZjsKKyAgICAKKyAgICAvLyBSZWNvcmQgdGhlIGFjdHVhbCBpZCBmb3IgdGhpcyBzZXJ2aWNlIGluIHRoZSBjYWNoZSwgc28gd2UgY2FuIHJldHVybiBpdAorICAgIC8vIGV2ZW4gaWYgd2Ugc3VjY2VlZCBsYXRlciB3aXRoIGEgZGlmZmVyZW50IGlkLgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIENhY2hlRW50cnkgeworCVN0cmluZyBhY3R1YWxJRDsKKwlPYmplY3Qgc2VydmljZTsKKwlDYWNoZUVudHJ5KFN0cmluZyBhY3R1YWxJRCwgT2JqZWN0IHNlcnZpY2UpIHsKKwkgICAgdGhpcy5hY3R1YWxJRCA9IGFjdHVhbElEOworCSAgICB0aGlzLnNlcnZpY2UgPSBzZXJ2aWNlOworCX0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBzbmFwc2hvdCBvZiB0aGUgdmlzaWJsZSBJRHMgZm9yIHRoaXMgc2VydmljZS4gIFRoaXMKKyAgICAgKiBzZXQgd2lsbCBub3QgY2hhbmdlIGFzIEZhY3RvcmllcyBhcmUgYWRkZWQgb3IgcmVtb3ZlZCwgYnV0IHRoZQorICAgICAqIHN1cHBvcnRlZCBpZHMgd2lsbCwgc28gdGhlcmUgaXMgbm8gZ3VhcmFudGVlIHRoYXQgYWxsIGFuZCBvbmx5CisgICAgICogdGhlIGlkcyBpbiB0aGUgcmV0dXJuZWQgc2V0IGFyZSB2aXNpYmxlIGFuZCBzdXBwb3J0ZWQgYnkgdGhlCisgICAgICogc2VydmljZSBpbiBzdWJzZXF1ZW50IGNhbGxzLgorICAgICAqLworICAgIHB1YmxpYyBTZXQgZ2V0VmlzaWJsZUlEcygpIHsKKwlyZXR1cm4gZ2V0VmlzaWJsZUlETWFwKCkua2V5U2V0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgbWFwIGZyb20gdmlzaWJsZSBpZHMgdG8gZmFjdG9yaWVzLiAgCisgICAgICovCisgICAgcHJpdmF0ZSBNYXAgZ2V0VmlzaWJsZUlETWFwKCkgeworICAgICAgICBNYXAgaWRjYWNoZSA9IG51bGw7CisJU29mdFJlZmVyZW5jZSByZWYgPSBpZHJlZjsKKyAgICAgICAgaWYgKHJlZiAhPSBudWxsKSB7CisgICAgICAgICAgICBpZGNhY2hlID0gKE1hcClyZWYuZ2V0KCk7CisgICAgICAgIH0KKyAgICAgICAgd2hpbGUgKGlkY2FjaGUgPT0gbnVsbCkgeworCSAgICBzeW5jaHJvbml6ZWQgKHRoaXMpIHsgLy8gb3IgaWRyZWYtb25seSBsb2NrPworCQlpZiAocmVmID09IGlkcmVmIHx8IGlkcmVmID09IG51bGwpIHsKKwkJICAgIC8vIG5vIG90aGVyIHRocmVhZCB1cGRhdGVkIGlkcmVmIGJlZm9yZSB3ZSBnb3QgdGhlIGxvY2ssIHNvCisJCSAgICAvLyBncmFiIHRoZSBmYWN0b3J5IGxpc3QgYW5kIHVwZGF0ZSBpdCBvdXJzZWx2ZXMKKwkJICAgIHRyeSB7CisJCQlmYWN0b3J5TG9jay5hY3F1aXJlUmVhZCgpOworCisJCQlpZGNhY2hlID0gbmV3IFRyZWVNYXAoU3RyaW5nLkNBU0VfSU5TRU5TSVRJVkVfT1JERVIpOworCisJCQlMaXN0SXRlcmF0b3IgbEl0ZXIgPSBmYWN0b3JpZXMubGlzdEl0ZXJhdG9yKGZhY3Rvcmllcy5zaXplKCkpOworCQkJd2hpbGUgKGxJdGVyLmhhc1ByZXZpb3VzKCkpIHsKKwkJCSAgICBGYWN0b3J5IGYgPSAoRmFjdG9yeSlsSXRlci5wcmV2aW91cygpOworCQkJICAgIGYudXBkYXRlVmlzaWJsZUlEcyhpZGNhY2hlKTsKKwkJCX0KKwkJCWlkY2FjaGUgPSBDb2xsZWN0aW9ucy51bm1vZGlmaWFibGVNYXAoaWRjYWNoZSk7CisJCQlpZHJlZiA9IG5ldyBTb2Z0UmVmZXJlbmNlKGlkY2FjaGUpOworCQkgICAgfQorCQkgICAgZmluYWxseSB7CisJCQlmYWN0b3J5TG9jay5yZWxlYXNlUmVhZCgpOworCQkgICAgfQorCQl9IGVsc2UgeworCQkgICAgLy8gYW5vdGhlciB0aHJlYWQgdXBkYXRlZCBpZHJlZiwgYnV0IGdjIG1heSBoYXZlIHN0ZXBwZWQKKwkJICAgIC8vIGluIGFuZCB1bmRvbmUgaXRzIHdvcmssIGxlYXZpbmcgaWRjYWNoZSBudWxsLiAgSWYgc28sCisJCSAgICAvLyByZXRyeS4KKwkJICAgIHJlZiA9IGlkcmVmOworCQkgICAgaWRjYWNoZSA9IChNYXApcmVmLmdldCgpOworCQl9CisJICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBpZGNhY2hlOworICAgIH0KKyAgICBwcml2YXRlIFNvZnRSZWZlcmVuY2UgaWRyZWY7CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVycmlkZSBmb3IgZ2V0RGlzcGxheU5hbWUoU3RyaW5nLCBMb2NhbGUpIHRoYXQKKyAgICAgKiB1c2VzIHRoZSBjdXJyZW50IGRlZmF1bHQgbG9jYWxlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoU3RyaW5nIGlkKSB7CisJcmV0dXJuIGdldERpc3BsYXlOYW1lKGlkLCBMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHaXZlbiBhIHZpc2libGUgaWQsIHJldHVybiB0aGUgZGlzcGxheSBuYW1lIGluIHRoZSByZXF1ZXN0ZWQgbG9jYWxlLgorICAgICAqIElmIHRoZXJlIGlzIG5vIGRpcmVjdGx5IHN1cHBvcnRlZCBpZCBjb3JyZXNwb25kaW5nIHRvIHRoaXMgaWQsIHJldHVybgorICAgICAqIG51bGwuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShTdHJpbmcgaWQsIExvY2FsZSBsb2NhbGUpIHsKKwlNYXAgbSA9IGdldFZpc2libGVJRE1hcCgpOworCUZhY3RvcnkgZiA9IChGYWN0b3J5KW0uZ2V0KGlkKTsKKwlyZXR1cm4gZiAhPSBudWxsID8gZi5nZXREaXNwbGF5TmFtZShpZCwgbG9jYWxlKSA6IG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcnJpZGUgb2YgZ2V0RGlzcGxheU5hbWVzKExvY2FsZSkgdGhhdCB1c2VzIHRoZQorICAgICAqIGN1cnJlbnQgZGVmYXVsdCBMb2NhbGUuCisgICAgICovCisgICAgcHVibGljIE1hcCBnZXREaXNwbGF5TmFtZXMoKSB7CisJcmV0dXJuIGdldERpc3BsYXlOYW1lcyhMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBzbmFwc2hvdCBvZiB0aGUgbWFwcGluZyBmcm9tIGRpc3BsYXkgbmFtZXMgdG8gdmlzaWJsZQorICAgICAqIElEcyBmb3IgdGhpcyBzZXJ2aWNlLiAgVGhpcyBzZXQgd2lsbCBub3QgY2hhbmdlIGFzIGZhY3RvcmllcworICAgICAqIGFyZSBhZGRlZCBvciByZW1vdmVkLCBidXQgdGhlIHN1cHBvcnRlZCBpZHMgd2lsbCwgc28gdGhlcmUgaXMKKyAgICAgKiBubyBndWFyYW50ZWUgdGhhdCBhbGwgYW5kIG9ubHkgdGhlIGlkcyBpbiB0aGUgcmV0dXJuZWQgbWFwIHdpbGwKKyAgICAgKiBiZSB2aXNpYmxlIGFuZCBzdXBwb3J0ZWQgYnkgdGhlIHNlcnZpY2UgaW4gc3Vic2VxdWVudCBjYWxscywKKyAgICAgKiBub3IgaXMgdGhlcmUgYW55IGd1YXJhbnRlZSB0aGF0IHRoZSBjdXJyZW50IGRpc3BsYXkgbmFtZXMgbWF0Y2gKKyAgICAgKiB0aG9zZSBpbiB0aGUgc2V0LgorICAgICAqLworICAgIHB1YmxpYyBNYXAgZ2V0RGlzcGxheU5hbWVzKExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgTWFwIGRuY2FjaGUgPSBudWxsOworCUxvY2FsZVJlZiByZWYgPSBkbnJlZjsKKyAgICAgICAgaWYgKHJlZiAhPSBudWxsKSB7CisgICAgICAgICAgICBkbmNhY2hlID0gcmVmLmdldChsb2NhbGUpOworICAgICAgICB9CisgICAgICAgIHdoaWxlIChkbmNhY2hlID09IG51bGwpIHsKKwkgICAgc3luY2hyb25pemVkICh0aGlzKSB7CisJCWlmIChyZWYgPT0gZG5yZWYgfHwgZG5yZWYgPT0gbnVsbCkgeworCQkgICAgZG5jYWNoZSA9IG5ldyBUcmVlTWFwKFN0cmluZy5DQVNFX0lOU0VOU0lUSVZFX09SREVSKTsKKwkJICAgIC8vZG5jYWNoZSA9IG5ldyBUcmVlTWFwKC8qIGxvY2FsZS1zcGVjaWZpYyBjb2xsYXRvciAqLyk7CisJCSAgICAKKwkJICAgIE1hcCBtID0gZ2V0VmlzaWJsZUlETWFwKCk7CisJCSAgICBJdGVyYXRvciBlaSA9IG0uZW50cnlTZXQoKS5pdGVyYXRvcigpOworCQkgICAgd2hpbGUgKGVpLmhhc05leHQoKSkgeworCQkJRW50cnkgZSA9IChFbnRyeSllaS5uZXh0KCk7CisJCQlTdHJpbmcgaWQgPSAoU3RyaW5nKWUuZ2V0S2V5KCk7CisJCQlGYWN0b3J5IGYgPSAoRmFjdG9yeSllLmdldFZhbHVlKCk7CisJCQlkbmNhY2hlLnB1dChmLmdldERpc3BsYXlOYW1lKGlkLCBsb2NhbGUpLCBpZCk7CisJCSAgICB9CisKKwkJICAgIGRuY2FjaGUgPSBDb2xsZWN0aW9ucy51bm1vZGlmaWFibGVNYXAoZG5jYWNoZSk7CisJCSAgICBkbnJlZiA9IG5ldyBMb2NhbGVSZWYoZG5jYWNoZSwgbG9jYWxlKTsKKwkJfSBlbHNlIHsKKwkJICAgIHJlZiA9IGRucmVmOworCQkgICAgZG5jYWNoZSA9IHJlZi5nZXQobG9jYWxlKTsKKwkJfQorCSAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZG5jYWNoZTsKKyAgICB9CisgICAgLy8gd2UgZGVmaW5lIGEgY2xhc3Mgc28gd2UgZ2V0IGF0b21pYyBzaW11bHRhbmVvdXMgYWNjZXNzIHRvIGJvdGggdGhlIAorICAgIC8vIGxvY2FsZSBhbmQgY29ycmVzcG9uZGluZyBtYXAKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBMb2NhbGVSZWYgeworCUxvY2FsZSBsb2NhbGU7CisJU29mdFJlZmVyZW5jZSByZWY7CisKKwlMb2NhbGVSZWYoTWFwIGRuQ2FjaGUsIExvY2FsZSBsb2NhbGUpIHsKKwkgICAgdGhpcy5sb2NhbGUgPSBsb2NhbGU7CisJICAgIHRoaXMucmVmID0gbmV3IFNvZnRSZWZlcmVuY2UoZG5DYWNoZSk7CisJfQorCisJTWFwIGdldChMb2NhbGUgbG9jYWxlKSB7CisJICAgIGlmICh0aGlzLmxvY2FsZS5lcXVhbHMobG9jYWxlKSkgeworCQlyZXR1cm4gKE1hcClyZWYuZ2V0KCk7CisJICAgIH0KKwkgICAgcmV0dXJuIG51bGw7CisJfQorICAgIH0KKyAgICBwcml2YXRlIExvY2FsZVJlZiBkbnJlZjsKKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHNuYXBzaG90IG9mIHRoZSBjdXJyZW50bHkgcmVnaXN0ZXJlZCBmYWN0b3JpZXMuICBUaGVyZQorICAgICAqIGlzIG5vIGd1YXJhbnRlZSB0aGF0IHRoZSBsaXN0IHdpbGwgc3RpbGwgbWF0Y2ggdGhlIGN1cnJlbnQKKyAgICAgKiBmYWN0b3J5IGxpc3Qgb2YgdGhlIHNlcnZpY2Ugc3Vic2VxdWVudCB0byB0aGlzIGNhbGwuICAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgTGlzdCBmYWN0b3JpZXMoKSB7CisJdHJ5IHsKKwkgICAgZmFjdG9yeUxvY2suYWNxdWlyZVJlYWQoKTsKKwkgICAgcmV0dXJuIG5ldyBBcnJheUxpc3QoZmFjdG9yaWVzKTsKKwl9CisJZmluYWxseXsKKwkgICAgZmFjdG9yeUxvY2sucmVsZWFzZVJlYWQoKTsKKwl9CisgICAgfQorCisgICAgLyoqCisgICAgICogQSBjb252ZW5pZW5jZSBvdmVycmlkZSBvZiByZWdpc3Rlck9iamVjdChPYmplY3QsIFN0cmluZywgYm9vbGVhbikKKyAgICAgKiB0aGF0IGRlZmF1bHRzIHZpc2libGUgdG8gdHJ1ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRmFjdG9yeSByZWdpc3Rlck9iamVjdChPYmplY3Qgb2JqLCBTdHJpbmcgaWQpIHsKKyAgICAgICAgcmV0dXJuIHJlZ2lzdGVyT2JqZWN0KG9iaiwgaWQsIHRydWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlZ2lzdGVyIGFuIG9iamVjdCB3aXRoIHRoZSBwcm92aWRlZCBpZC4gIFRoZSBpZCB3aWxsIGJlIAorICAgICAqIGNhbm9uaWNhbGl6ZWQuICBUaGUgY2Fub25pY2FsaXplZCBJRCB3aWxsIGJlIHJldHVybmVkIGJ5CisgICAgICogZ2V0VmlzaWJsZUlEcyBpZiB2aXNpYmxlIGlzIHRydWUuCisgICAgICovCisgICAgcHVibGljIEZhY3RvcnkgcmVnaXN0ZXJPYmplY3QoT2JqZWN0IG9iaiwgU3RyaW5nIGlkLCBib29sZWFuIHZpc2libGUpIHsKKwlpZCA9IGNyZWF0ZUtleShpZCkuY2Fub25pY2FsSUQoKTsKKwlyZXR1cm4gcmVnaXN0ZXJGYWN0b3J5KG5ldyBTaW1wbGVGYWN0b3J5KG9iaiwgaWQsIHZpc2libGUpKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmVnaXN0ZXIgYSBGYWN0b3J5LiAgUmV0dXJucyB0aGUgZmFjdG9yeSBpZiB0aGUgc2VydmljZSBhY2NlcHRzCisgICAgICogdGhlIGZhY3RvcnksIG90aGVyd2lzZSByZXR1cm5zIG51bGwuICBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbgorICAgICAqIGFjY2VwdHMgYWxsIGZhY3Rvcmllcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgRmFjdG9yeSByZWdpc3RlckZhY3RvcnkoRmFjdG9yeSBmYWN0b3J5KSB7CisgICAgICAgIGlmIChmYWN0b3J5ID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigpOworICAgICAgICB9CisJdHJ5IHsKKwkgICAgZmFjdG9yeUxvY2suYWNxdWlyZVdyaXRlKCk7CisJICAgIGZhY3Rvcmllcy5hZGQoMCwgZmFjdG9yeSk7CisJICAgIGNsZWFyQ2FjaGVzKCk7CisJfQorCWZpbmFsbHkgeworCSAgICBmYWN0b3J5TG9jay5yZWxlYXNlV3JpdGUoKTsKKwl9CisJbm90aWZ5Q2hhbmdlZCgpOworCXJldHVybiBmYWN0b3J5OworICAgIH0KKworICAgIC8qKgorICAgICAqIFVucmVnaXN0ZXIgYSBmYWN0b3J5LiAgVGhlIGZpcnN0IG1hdGNoaW5nIHJlZ2lzdGVyZWQgZmFjdG9yeSB3aWxsCisgICAgICogYmUgcmVtb3ZlZCBmcm9tIHRoZSBsaXN0LiAgUmV0dXJucyB0cnVlIGlmIGEgbWF0Y2hpbmcgZmFjdG9yeSB3YXMKKyAgICAgKiByZW1vdmVkLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBib29sZWFuIHVucmVnaXN0ZXJGYWN0b3J5KEZhY3RvcnkgZmFjdG9yeSkgeworCWlmIChmYWN0b3J5ID09IG51bGwpIHsKKwkgICAgdGhyb3cgbmV3IE51bGxQb2ludGVyRXhjZXB0aW9uKCk7CisJfQorCisJYm9vbGVhbiByZXN1bHQgPSBmYWxzZTsKKwl0cnkgeworCSAgICBmYWN0b3J5TG9jay5hY3F1aXJlV3JpdGUoKTsKKwkgICAgaWYgKGZhY3Rvcmllcy5yZW1vdmUoZmFjdG9yeSkpIHsKKwkJcmVzdWx0ID0gdHJ1ZTsKKwkJY2xlYXJDYWNoZXMoKTsKKwkgICAgfQorCX0KKwlmaW5hbGx5IHsKKwkgICAgZmFjdG9yeUxvY2sucmVsZWFzZVdyaXRlKCk7CisJfQorCisJaWYgKHJlc3VsdCkgeworCSAgICBub3RpZnlDaGFuZ2VkKCk7CisJfQorCXJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVzZXQgdGhlIHNlcnZpY2UgdG8gdGhlIGRlZmF1bHQgZmFjdG9yaWVzLiAgVGhlIGZhY3RvcnkKKyAgICAgKiBsb2NrIGlzIGFjcXVpcmVkIGFuZCB0aGVuIHJlSW5pdGlhbGl6ZUZhY3RvcmllcyBpcyBjYWxsZWQuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgcmVzZXQoKSB7CisJdHJ5IHsKKwkgICAgZmFjdG9yeUxvY2suYWNxdWlyZVdyaXRlKCk7CisJICAgIHJlSW5pdGlhbGl6ZUZhY3RvcmllcygpOworCSAgICBjbGVhckNhY2hlcygpOworCX0KKwlmaW5hbGx5IHsKKwkgICAgZmFjdG9yeUxvY2sucmVsZWFzZVdyaXRlKCk7CisJfQorCW5vdGlmeUNoYW5nZWQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWluaXRpYWxpemUgdGhlIGZhY3RvcnkgbGlzdCB0byBpdHMgZGVmYXVsdCBzdGF0ZS4gIEJ5IGRlZmF1bHQKKyAgICAgKiB0aGlzIGNsZWFycyB0aGUgbGlzdC4gIFN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlIHRvIHByb3ZpZGUgb3RoZXIKKyAgICAgKiBkZWZhdWx0IGluaXRpYWxpemF0aW9uIG9mIHRoZSBmYWN0b3J5IGxpc3QuICBTdWJjbGFzc2VzIG11c3QKKyAgICAgKiBub3QgY2FsbCB0aGlzIG1ldGhvZCBkaXJlY3RseSwgYXMgaXQgbXVzdCBvbmx5IGJlIGNhbGxlZCB3aGlsZQorICAgICAqIGhvbGRpbmcgd3JpdGUgYWNjZXNzIHRvIHRoZSBmYWN0b3J5IGxpc3QuICAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCByZUluaXRpYWxpemVGYWN0b3JpZXMoKSB7CisJZmFjdG9yaWVzLmNsZWFyKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEga2V5IGZyb20gYW4gaWQuICBUaGlzIGNyZWF0ZXMgYSBLZXkgaW5zdGFuY2UuCisgICAgICogU3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUgdG8gZGVmaW5lIG1vcmUgdXNlZnVsIGtleXMgYXBwcm9wcmlhdGUKKyAgICAgKiB0byB0aGUgZmFjdG9yaWVzIHRoZXkgYWNjZXB0LgorICAgICAqLworICAgIHByb3RlY3RlZCBLZXkgY3JlYXRlS2V5KFN0cmluZyBpZCkgeworICAgICAgICByZXR1cm4gbmV3IEtleShpZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2xlYXIgY2FjaGVzIG1haW50YWluZWQgYnkgdGhpcyBzZXJ2aWNlLiAgU3ViY2xhc3NlcyBjYW4KKyAgICAgKiBvdmVycmlkZSBpZiB0aGV5IGltcGxlbWVudCBhZGRpdGlvbmFsIHRoYXQgbmVlZCB0byBiZSBjbGVhcmVkCisgICAgICogd2hlbiB0aGUgc2VydmljZSBjaGFuZ2VzLiBTdWJjbGFzc2VzIHNob3VsZCBnZW5lcmFsbHkgbm90IGNhbGwKKyAgICAgKiB0aGlzIG1ldGhvZCBkaXJlY3RseSwgYXMgaXQgbXVzdCBvbmx5IGJlIGNhbGxlZCB3aGlsZQorICAgICAqIHN5bmNocm9uaXplZCBvbiB0aGlzLgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGNsZWFyQ2FjaGVzKCkgeworCS8vIHdlIGRvbid0IHN5bmNocm9uaXplIG9uIHRoZXNlIGJlY2F1c2UgbWV0aG9kcyB0aGF0IHVzZSB0aGVtCisJLy8gY29weSBiZWZvcmUgdXNlLCBhbmQgY2hlY2sgZm9yIGNoYW5nZXMgaWYgdGhleSBtb2RpZnkgdGhlCisJLy8gY2FjaGVzLgorCWNhY2hlcmVmID0gbnVsbDsKKwlpZHJlZiA9IG51bGw7CisJZG5yZWYgPSBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIENsZWFycyBvbmx5IHRoZSBzZXJ2aWNlIGNhY2hlLgorICAgICAqIFRoaXMgY2FuIGJlIGNhbGxlZCBieSBzdWJjbGFzc2VzIHdoZW4gYSBjaGFuZ2UgYWZmZWN0cyB0aGUgc2VydmljZQorICAgICAqIGNhY2hlIGJ1dCBub3QgdGhlIGlkIGNhY2hlcywgZS5nLiwgd2hlbiB0aGUgZGVmYXVsdCBsb2NhbGUgY2hhbmdlcworICAgICAqIHRoZSByZXNvbHV0aW9uIG9mIGlkcyBjaGFuZ2VzLCBidXQgbm90IHRoZSB2aXNpYmxlIGlkcyB0aGVtc2VsdmVzLgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGNsZWFyU2VydmljZUNhY2hlKCkgeworCWNhY2hlcmVmID0gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXJ2aWNlTGlzdGVuZXIgaXMgdGhlIGxpc3RlbmVyIHRoYXQgSUNVU2VydmljZSBwcm92aWRlcyBieSBkZWZhdWx0LgorICAgICAqIElDVVNlcnZpY2Ugd2lsbCBub3RpZml5IHRoaXMgbGlzdGVuZXIgd2hlbiBmYWN0b3JpZXMgYXJlIGFkZGVkIHRvCisgICAgICogb3IgcmVtb3ZlZCBmcm9tIHRoZSBzZXJ2aWNlLiAgU3ViY2xhc3NlcyBjYW4gcHJvdmlkZQorICAgICAqIGRpZmZlcmVudCBsaXN0ZW5lciBpbnRlcmZhY2VzIHRoYXQgZXh0ZW5kIEV2ZW50TGlzdGVuZXIsIGFuZCBtb2RpZnkKKyAgICAgKiBhY2NlcHRzTGlzdGVuZXIgYW5kIG5vdGlmeUxpc3RlbmVyIGFzIGFwcHJvcHJpYXRlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50ZXJmYWNlIFNlcnZpY2VMaXN0ZW5lciBleHRlbmRzIEV2ZW50TGlzdGVuZXIgeworCXB1YmxpYyB2b2lkIHNlcnZpY2VDaGFuZ2VkKElDVVNlcnZpY2Ugc2VydmljZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGxpc3RlbmVyIGlzIGFjY2VwdGVkOyBieSBkZWZhdWx0IHRoaXMKKyAgICAgKiByZXF1aXJlcyBhIFNlcnZpY2VMaXN0ZW5lci4gIFN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlIHRvIGFjY2VwdAorICAgICAqIGRpZmZlcmVudCBsaXN0ZW5lcnMuICAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBhY2NlcHRzTGlzdGVuZXIoRXZlbnRMaXN0ZW5lciBsKSB7CisJcmV0dXJuIGwgaW5zdGFuY2VvZiBTZXJ2aWNlTGlzdGVuZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogTm90aWZ5IHRoZSBsaXN0ZW5lciwgd2hpY2ggYnkgZGVmYXVsdCBpcyBhIFNlcnZpY2VMaXN0ZW5lci4KKyAgICAgKiBTdWJjbGFzc2VzIGNhbiBvdmVycmlkZSB0byB1c2UgYSBkaWZmZXJlbnQgbGlzdGVuZXIuICAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBub3RpZnlMaXN0ZW5lcihFdmVudExpc3RlbmVyIGwpIHsKKwkoKFNlcnZpY2VMaXN0ZW5lcilsKS5zZXJ2aWNlQ2hhbmdlZCh0aGlzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBzdHJpbmcgZGVzY3JpYmluZyB0aGUgc3RhdGlzdGljcyBmb3IgdGhpcyBzZXJ2aWNlLgorICAgICAqIFRoaXMgYWxzbyByZXNldHMgdGhlIHN0YXRpc3RpY3MuIFVzZWQgZm9yIGRlYnVnZ2luZyBwdXJwb3Nlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHN0YXRzKCkgeworCUlDVVJXTG9jay5TdGF0cyBzdGF0cyA9IGZhY3RvcnlMb2NrLnJlc2V0U3RhdHMoKTsKKwlpZiAoc3RhdHMgIT0gbnVsbCkgeworCSAgICByZXR1cm4gc3RhdHMudG9TdHJpbmcoKTsKKwl9CisJcmV0dXJuICJubyBzdGF0cyI7CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9JbnRUcmllLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JbnRUcmllLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTdkODVmOTkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JbnRUcmllLmphdmEKQEAgLTAsMCArMSwyNTggQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvSW50VHJpZS5qYXZhLHYgJAorKiAkRGF0ZTogMjAwMi8wNi8yMiAwMDowMjo0MSAkCisqICRSZXZpc2lvbjogMS42ICQKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkRhdGFJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CisKKy8qKgorICogVHJpZSBpbXBsZW1lbnRhdGlvbiB3aGljaCBzdG9yZXMgZGF0YSBpbiBpbnQsIDMyIGJpdHMuCisgKiBAYXV0aG9yIHN5bndlZQorICogQHNlZSBjb20uaWJtLmljdS51dGlsLlRyaWUKKyAqIEBzaW5jZSByZWxlYXNlIDIuMSwgSmFuIDAxIDIwMDIKKyAqLworcHVibGljIGNsYXNzIEludFRyaWUgZXh0ZW5kcyBUcmllCit7CisgICAgLy8gcHVibGljIGNvbnN0cnVjdG9ycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICogPHA+Q3JlYXRlcyBhIG5ldyBUcmllIHdpdGggdGhlIHNldHRpbmdzIGZvciB0aGUgdHJpZSBkYXRhLjwvcD4KKyAgICAqIDxwPlVuc2VyaWFsaXplIHRoZSAzMi1iaXQtYWxpZ25lZCBpbnB1dCBzdHJlYW0gYW5kIHVzZSB0aGUgZGF0YSBmb3IgdGhlIAorICAgICogdHJpZS48L3A+CisgICAgKiBAcGFyYW0gaW5wdXRTdHJlYW0gZmlsZSBpbnB1dCBzdHJlYW0gdG8gYSBJQ1UgZGF0YSBmaWxlLCBjb250YWluaW5nIAorICAgICogICAgICAgICAgICAgICAgICAgIHRoZSB0cmllCisgICAgKiBAcGFyYW0gZGF0YU1hbmlwdWxhdGUsIG9iamVjdCB3aGljaCBwcm92aWRlcyBtZXRob2RzIHRvIHBhcnNlIHRoZSBjaGFyIAorICAgICogICAgICAgICAgICAgICAgICAgICAgICBkYXRhCisgICAgKiBAZXhjZXB0aW9uIElPRXhjZXB0aW9uIHRocm93biB3aGVuIGRhdGEgcmVhZGluZyBmYWlscworICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHVibGljIEludFRyaWUoSW5wdXRTdHJlYW0gaW5wdXRTdHJlYW0sIERhdGFNYW5pcHVsYXRlIGRhdGFtYW5pcHVsYXRlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgc3VwZXIoaW5wdXRTdHJlYW0sIGRhdGFtYW5pcHVsYXRlKTsKKyAgICAgICAgaWYgKCFpc0ludFRyaWUoKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGF0YSBnaXZlbiBkb2VzIG5vdCBiZWxvbmcgdG8gYSBpbnQgdHJpZS4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29kZXBvaW50LgorICAgICogSWYgbm8gdmFsdWUgaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb2RlcG9pbnQsIGEgZGVmYXVsdCB2YWx1ZSB3aWxsIGJlCisgICAgKiByZXR1cm5lZC4KKyAgICAqIEBwYXJhbSBjaCBjb2RlcG9pbnQKKyAgICAqIEByZXR1cm4gb2Zmc2V0IHRvIGRhdGEKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0Q29kZVBvaW50VmFsdWUoaW50IGNoKQorICAgIHsKKyAgICAgICAgaW50IG9mZnNldCA9IGdldENvZGVQb2ludE9mZnNldChjaCk7CisgICAgICAgIGlmIChvZmZzZXQgPiAwKSB7CisgICAgICAgICAgICByZXR1cm4gbV9kYXRhX1tvZmZzZXRdOworICAgICAgICB9CisgICAgICAgIHJldHVybiBtX2luaXRpYWxWYWx1ZV87CisgICAgfQorCisgICAgLyoqCisgICAgKiBHZXRzIHRoZSB2YWx1ZSB0byB0aGUgZGF0YSB3aGljaCB0aGlzIGxlYWQgc3Vycm9nYXRlIGNoYXJhY3RlciBwb2ludHMKKyAgICAqIHRvLgorICAgICogUmV0dXJuZWQgZGF0YSBtYXkgY29udGFpbiBmb2xkaW5nIG9mZnNldCBpbmZvcm1hdGlvbiBmb3IgdGhlIG5leHQKKyAgICAqIHRyYWlsaW5nIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIuCisgICAgKiBUaGlzIG1ldGhvZCBkb2VzIG5vdCBndWFyYW50ZWUgY29ycmVjdCByZXN1bHRzIGZvciB0cmFpbCBzdXJyb2dhdGVzLgorICAgICogQHBhcmFtIGNoIGxlYWQgc3Vycm9nYXRlIGNoYXJhY3RlcgorICAgICogQHJldHVybiBkYXRhIHZhbHVlCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldExlYWRWYWx1ZShjaGFyIGNoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZGF0YV9bZ2V0TGVhZE9mZnNldChjaCldOworICAgIH0KKworICAgIC8qKgorICAgICogR2V0IHRoZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIEJNUCBjb2RlIHBvaW50LgorICAgICogTGVhZCBzdXJyb2dhdGUgY29kZSBwb2ludHMgYXJlIHRyZWF0ZWQgYXMgbm9ybWFsIGNvZGUgcG9pbnRzLCB3aXRoCisgICAgKiB1bmZvbGRlZCB2YWx1ZXMgdGhhdCBtYXkgZGlmZmVyIGZyb20gZ2V0TGVhZFZhbHVlKCkgcmVzdWx0cy4KKyAgICAqIEBwYXJhbSBjaCB0aGUgaW5wdXQgQk1QIGNvZGUgcG9pbnQKKyAgICAqIEByZXR1cm4gdHJpZSBkYXRhIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUgQk1QIGNvZGVwb2ludAorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBnZXRCTVBWYWx1ZShjaGFyIGNoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZGF0YV9bZ2V0Qk1QT2Zmc2V0KGNoKV07CisgICAgfQorCisgICAgLyoqCisgICAgKiBHZXQgdGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCBhIHBhaXIgb2Ygc3Vycm9nYXRlcy4KKyAgICAqIEBwYXJhbSBsZWFkIGEgbGVhZCBzdXJyb2dhdGUKKyAgICAqIEBwYXJhbSB0cmFpbCBhIHRyYWlsIHN1cnJvZ2F0ZQorICAgICogQHBhcmFtIHRyaWUgZGF0YSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIHN1cnJvZ2F0ZSBjaGFyYWN0ZXJzCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldFN1cnJvZ2F0ZVZhbHVlKGNoYXIgbGVhZCwgY2hhciB0cmFpbCkKKyAgICB7CisgICAgICAgIGlmICghVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGxlYWQpIHx8ICFVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHRyYWlsKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAiQXJndW1lbnQgY2hhcmFjdGVycyBkbyBub3QgZm9ybSBhIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyIik7CisgICAgICAgIH0KKyAgICAgICAgLy8gZ2V0IGZvbGQgcG9zaXRpb24gZm9yIHRoZSBuZXh0IHRyYWlsIHN1cnJvZ2F0ZQorICAgICAgICBpbnQgb2Zmc2V0ID0gZ2V0U3Vycm9nYXRlT2Zmc2V0KGxlYWQsIHRyYWlsKTsKKworICAgICAgICAvLyBnZXQgdGhlIHJlYWwgZGF0YSBmcm9tIHRoZSBmb2xkZWQgbGVhZC90cmFpbCB1bml0cworICAgICAgICBpZiAob2Zmc2V0ID4gMCkgeworICAgICAgICAgICAgcmV0dXJuIG1fZGF0YV9bb2Zmc2V0XTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHJldHVybiBtX2luaXRpYWxWYWx1ZV8gaWYgdGhlcmUgaXMgYW4gZXJyb3IKKyAgICAgICAgcmV0dXJuIG1faW5pdGlhbFZhbHVlXzsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEdldCBhIHZhbHVlIGZyb20gYSBmb2xkaW5nIG9mZnNldCAoZnJvbSB0aGUgdmFsdWUgb2YgYSBsZWFkIHN1cnJvZ2F0ZSkKKyAgICAqIGFuZCBhIHRyYWlsIHN1cnJvZ2F0ZS4KKyAgICAqIEBwYXJhbSBsZWFkdmFsdWUgdGhlIHZhbHVlIG9mIGEgbGVhZCBzdXJyb2dhdGUgdGhhdCBjb250YWlucyB0aGUKKyAgICAqICAgICAgICBmb2xkaW5nIG9mZnNldAorICAgICogQHBhcmFtIHRyYWlsIHN1cnJvZ2F0ZQorICAgICogQHJldHVybiB0cmllIGRhdGEgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSB0cmFpbCBjaGFyYWN0ZXIKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0VHJhaWxWYWx1ZShpbnQgbGVhZHZhbHVlLCBjaGFyIHRyYWlsKQorICAgIHsKKyAgICAgICAgaWYgKG1fZGF0YU1hbmlwdWxhdGVfID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBmaWVsZCBEYXRhTWFuaXB1bGF0ZSBpbiB0aGlzIFRyaWUgaXMgbnVsbCIpOworICAgICAgICB9CisgICAgICAgIGludCBvZmZzZXQgPSBtX2RhdGFNYW5pcHVsYXRlXy5nZXRGb2xkaW5nT2Zmc2V0KGxlYWR2YWx1ZSk7CisgICAgICAgIGlmIChvZmZzZXQgPiAwKSB7CisJICAgICAgICByZXR1cm4gbV9kYXRhX1tnZXRSYXdPZmZzZXQob2Zmc2V0LAorIAkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcikodHJhaWwgJiBTVVJST0dBVEVfTUFTS18pKV07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1faW5pdGlhbFZhbHVlXzsKKyAgICB9CisgICAgCisJLyoqCisgICAgICogPHA+R2V0cyB0aGUgbGF0aW4gMSBmYXN0IHBhdGggdmFsdWUuPC9wPgorICAgICAqIDxwPk5vdGUgdGhpcyBvbmx5IHdvcmtzIGlmIGxhdGluIDEgY2hhcmFjdGVycyBoYXZlIHRoZWlyIG93biBsaW5lYXIgCisgICAgICogYXJyYXkuPC9wPgorICAgICAqIEBwYXJhbSBjaCBsYXRpbiAxIGNoYXJhY3RlcnMKKyAgICAgKiBAcmV0dXJuIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCBsYXRpbiBjaGFyYWN0ZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldExhdGluMUxpbmVhclZhbHVlKGNoYXIgY2gpIAorICAgIHsKKyAgICAJcmV0dXJuIG1fZGF0YV9bSU5ERVhfU1RBR0VfM19NQVNLXyArIDEgKyBjaF07CisgICAgfQorCisgICAgLy8gcHJvdGVjdGVkIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICogPHA+UGFyc2VzIHRoZSBpbnB1dCBzdHJlYW0gYW5kIHN0b3JlcyBpdHMgdHJpZSBjb250ZW50IGludG8gYSBpbmRleCBhbmQKKyAgICAqIGRhdGEgYXJyYXk8L3A+CisgICAgKiBAcGFyYW0gaW5wdXRTdHJlYW0gZGF0YSBpbnB1dCBzdHJlYW0gY29udGFpbmluZyB0cmllIGRhdGEKKyAgICAqIEBleGNlcHRpb24gSU9FeGNlcHRpb24gdGhyb3duIHdoZW4gZGF0YSByZWFkaW5nIGZhaWxzCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgdm9pZCB1bnNlcmlhbGl6ZShJbnB1dFN0cmVhbSBpbnB1dFN0cmVhbSkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICBzdXBlci51bnNlcmlhbGl6ZShpbnB1dFN0cmVhbSk7CisgICAgICAgIC8vIG9uZSB1c2VkIGZvciBpbml0aWFsIHZhbHVlCisgICAgICAgIG1fZGF0YV8gICAgICAgICAgICAgICA9IG5ldyBpbnRbbV9kYXRhTGVuZ3RoX107CisgICAgICAgIERhdGFJbnB1dFN0cmVhbSBpbnB1dCA9IG5ldyBEYXRhSW5wdXRTdHJlYW0oaW5wdXRTdHJlYW0pOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1fZGF0YUxlbmd0aF87IGkgKyspIHsKKyAgICAgICAgICAgIG1fZGF0YV9baV0gPSBpbnB1dC5yZWFkSW50KCk7CisgICAgICAgIH0KKyAgICAgICAgbV9pbml0aWFsVmFsdWVfID0gbV9kYXRhX1swXTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBHZXRzIHRoZSBvZmZzZXQgdG8gdGhlIGRhdGEgd2hpY2ggdGhlIHN1cnJvZ2F0ZSBwYWlyIHBvaW50cyB0by4KKyAgICAqIEBwYXJhbSBsZWFkIGxlYWQgc3Vycm9nYXRlCisgICAgKiBAcGFyYW0gdHJhaWwgdHJhaWxpbmcgc3Vycm9nYXRlCisgICAgKiBAcmV0dXJuIG9mZnNldCB0byBkYXRhCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgaW50IGdldFN1cnJvZ2F0ZU9mZnNldChjaGFyIGxlYWQsIGNoYXIgdHJhaWwpCisgICAgeworICAgICAgICBpZiAobV9kYXRhTWFuaXB1bGF0ZV8gPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE51bGxQb2ludGVyRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIGZpZWxkIERhdGFNYW5pcHVsYXRlIGluIHRoaXMgVHJpZSBpcyBudWxsIik7CisgICAgICAgIH0KKyAgICAgICAgLy8gZ2V0IGZvbGQgcG9zaXRpb24gZm9yIHRoZSBuZXh0IHRyYWlsIHN1cnJvZ2F0ZQorICAgICAgICBpbnQgb2Zmc2V0ID0gbV9kYXRhTWFuaXB1bGF0ZV8uZ2V0Rm9sZGluZ09mZnNldChnZXRMZWFkVmFsdWUobGVhZCkpOworCisgICAgICAgIC8vIGdldCB0aGUgcmVhbCBkYXRhIGZyb20gdGhlIGZvbGRlZCBsZWFkL3RyYWlsIHVuaXRzCisgICAgICAgIGlmIChvZmZzZXQgPiAwKSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0UmF3T2Zmc2V0KG9mZnNldCwgKGNoYXIpKHRyYWlsICYgU1VSUk9HQVRFX01BU0tfKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyByZXR1cm4gLTEgaWYgdGhlcmUgaXMgYW4gZXJyb3IsIGluIHRoaXMgY2FzZSB3ZSByZXR1cm4gdGhlIGRlZmF1bHQKKyAgICAgICAgLy8gdmFsdWU6IG1faW5pdGlhbFZhbHVlXworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogR2V0cyB0aGUgdmFsdWUgYXQgdGhlIGFyZ3VtZW50IGluZGV4LgorICAgICogRm9yIHVzZSBpbnRlcm5hbGx5IGluIGNvbS5pYm0uaWN1LnV0aWwuVHJpZUVudW1lcmF0aW9uLgorICAgICogQHBhcmFtIGluZGV4IHZhbHVlIGF0IGluZGV4IHdpbGwgYmUgcmV0cmlldmVkCisgICAgKiBAcmV0dXJuIDMyIGJpdCB2YWx1ZQorICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlRyaWVFbnVtZXJhdGlvbgorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIGludCBnZXRWYWx1ZShpbnQgaW5kZXgpCisgICAgeworICAgICAgcmV0dXJuIG1fZGF0YV9baW5kZXhdOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIGRlZmF1bHQgaW5pdGlhbCB2YWx1ZQorICAgICogQHJldHVybiAzMiBiaXQgdmFsdWUgCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgaW50IGdldEluaXRpYWxWYWx1ZSgpCisgICAgeworICAgICAgICByZXR1cm4gbV9pbml0aWFsVmFsdWVfOworICAgIH0KKworICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogSW50ZXJuYWwgY29uc3RydWN0b3IgZm9yIGJ1aWxkZXIgdXNlCisgICAgICogQHBhcmFtIGluZGV4IHRoZSBpbmRleCBhcnJheSB0byBiZSBzbG90dGVkIGludG8gdGhpcyB0cmllCisgICAgICogQHBhcmFtIGRhdGEgdGhlIGRhdGEgYXJyYXkgdG8gYmUgc2xvdHRlZCBpbnRvIHRoaXMgdHJpZQorICAgICAqIEBwYXJhbSBpbml0aWFsdmFsdWUgdGhlIGluaXRpYWwgdmFsdWUgZm9yIHRoaXMgdHJpZQorICAgICAqIEBwYXJhbSBvcHRpb25zIHRyaWUgb3B0aW9ucyB0byB1c2UKKyAgICAgKiBAcGFyYW0gZGF0YW1hbmlwdWxhdGUgZm9sZGluZyBpbXBsZW1lbnRhdGlvbgorICAgICAqLworICAgIEludFRyaWUoY2hhciBpbmRleFtdLCBpbnQgZGF0YVtdLCBpbnQgaW5pdGlhbHZhbHVlLCBpbnQgb3B0aW9ucywKKyAgICAgICAgICAgIERhdGFNYW5pcHVsYXRlIGRhdGFtYW5pcHVsYXRlKQorICAgIHsKKyAgICAgICAgc3VwZXIoaW5kZXgsIG9wdGlvbnMsIGRhdGFtYW5pcHVsYXRlKTsKKyAgICAgICAgbV9pbmRleF8gPSBpbmRleDsKKyAgICAgICAgbV9kYXRhXyA9IGRhdGE7CisgICAgICAgIG1faW5pdGlhbFZhbHVlXyA9IGluaXRpYWx2YWx1ZTsKKyAgICB9CisgICAgCisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICogRGVmYXVsdCB2YWx1ZQorICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9pbml0aWFsVmFsdWVfOworICAgIC8qKgorICAgICogQXJyYXkgb2YgY2hhciBkYXRhCisgICAgKi8KKyAgICBwcml2YXRlIGludCBtX2RhdGFfW107Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSW50VHJpZUJ1aWxkZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0ludFRyaWVCdWlsZGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWFhOGM1MgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0ludFRyaWVCdWlsZGVyLmphdmEKQEAgLTAsMCArMSw0NTMgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvSW50VHJpZUJ1aWxkZXIuamF2YSx2ICQgCisqICREYXRlOiAyMDAyLzA3LzEyIDIyOjAyOjA2ICQgCisqICRSZXZpc2lvbjogMS4xICQKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CisKKy8qKgorICogQnVpbGRlciBsYXNzIHRvIG1hbmlwdWxhdGUgYW5kIGdlbmVyYXRlIGEgdHJpZS4KKyAqIFRoaXMgaXMgdXNlZnVsIGZvciBJQ1UgZGF0YSBpbiBwcmltaXRpdmUgdHlwZXMuCisgKiBQcm92aWRlcyBhIGNvbXBhY3Qgd2F5IHRvIHN0b3JlIGluZm9ybWF0aW9uIHRoYXQgaXMgaW5kZXhlZCBieSBVbmljb2RlIAorICogdmFsdWVzLCBzdWNoIGFzIGNoYXJhY3RlciBwcm9wZXJ0aWVzLCB0eXBlcywga2V5Ym9hcmQgdmFsdWVzLCBldGMuIFRoaXMgaXMgCisgKiB2ZXJ5IHVzZWZ1bCB3aGVuIHlvdSBoYXZlIGEgYmxvY2sgb2YgVW5pY29kZSBkYXRhIHRoYXQgY29udGFpbnMgc2lnbmlmaWNhbnQgCisgKiB2YWx1ZXMgd2hpbGUgdGhlIHJlc3Qgb2YgdGhlIFVuaWNvZGUgZGF0YSBpcyB1bnVzZWQgaW4gdGhlIGFwcGxpY2F0aW9uIG9yIAorICogd2hlbiB5b3UgaGF2ZSBhIGxvdCBvZiByZWR1bmRhbmNlLCBzdWNoIGFzIHdoZXJlIGFsbCAyMSwwMDAgSGFuIGlkZW9ncmFwaHMgCisgKiBoYXZlIHRoZSBzYW1lIHZhbHVlLiAgSG93ZXZlciwgbG9va3VwIGlzIG11Y2ggZmFzdGVyIHRoYW4gYSBoYXNoIHRhYmxlLgorICogQSB0cmllIG9mIGFueSBwcmltaXRpdmUgZGF0YSB0eXBlIHNlcnZlcyB0d28gcHVycG9zZXM6CisgKiA8VUwgdHlwZSA9IHJvdW5kPgorICogICAgIDxMST5GYXN0IGFjY2VzcyBvZiB0aGUgaW5kZXhlZCB2YWx1ZXMuCisgKiAgICAgPExJPlNtYWxsZXIgbWVtb3J5IGZvb3RwcmludC4KKyAqIDwvVUw+CisgKiBUaGlzIGlzIGEgZGlyZWN0IHBvcnQgZnJvbSB0aGUgSUNVNEMgdmVyc2lvbgorICogQHZlcnNpb24gICAgICAgICAgICAkUmV2aXNpb246IDEuMSAkCisgKiBAYXV0aG9yICAgICAgICAgICAgIFN5biBXZWUgUXVlaworICovCitwdWJsaWMgY2xhc3MgSW50VHJpZUJ1aWxkZXIgZXh0ZW5kcyBUcmllQnVpbGRlcgoreworCS8vIHB1YmxpYyBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisJCQorCS8qKgorCSAqIENvcHkgY29uc3RydWN0b3IKKwkgKi8KKwlwdWJsaWMgSW50VHJpZUJ1aWxkZXIoSW50VHJpZUJ1aWxkZXIgdGFibGUpCisgICAgeworICAgIAlzdXBlcih0YWJsZSk7CisJCW1fZGF0YV8gPSBuZXcgaW50W21fZGF0YUNhcGFjaXR5X107CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkodGFibGUubV9kYXRhXywgMCwgbV9kYXRhXywgMCwgbV9kYXRhTGVuZ3RoXyk7CisgICAgICAgIG1faW5pdGlhbFZhbHVlXyA9IHRhYmxlLm1faW5pdGlhbFZhbHVlXzsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIGJ1aWxkIHRhYmxlCisgICAgICogQHBhcmFtIGFsaWFzZGF0YSBkYXRhIHRvIGJlIGZpbGxlZCBpbnRvIHRhYmxlCisgICAgICogQHBhcmFtIG1heGRhdGFsZW5ndGggbWF4aW11bSBkYXRhIGxlbmd0aCBhbGxvd2VkIGluIHRhYmxlCisgICAgICogQHBhcmFtIGluaXRpYWx2YWx1ZSBpbml0YWwgZGF0YSB2YWx1ZQorICAgICAqIEBwYXJhbSBsYXRpbjFsaW5lYXIgaXMgbGF0aW4gMSB0byBiZSBsaW5lYXIKKyAgICAgKiBAcmV0dXJuIHVwZGF0ZWQgdGFibGUKKyAgICAgKi8KKyAgICBwdWJsaWMgSW50VHJpZUJ1aWxkZXIoaW50IGFsaWFzZGF0YVtdLCBpbnQgbWF4ZGF0YWxlbmd0aCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpbml0aWFsdmFsdWUsIGJvb2xlYW4gbGF0aW4xbGluZWFyKSAKKyAgICB7CisgICAgCXN1cGVyKCk7CisgICAgCWlmIChtYXhkYXRhbGVuZ3RoIDwgREFUQV9CTE9DS19MRU5HVEhfIHx8IChsYXRpbjFsaW5lYXIgCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBtYXhkYXRhbGVuZ3RoIDwgMTAyNCkpIHsKKwkgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQXJndW1lbnQgbWF4ZGF0YWxlbmd0aCBpcyB0b28gc21hbGwiKTsKKwkgICAgfQorCSAgICAKKwkgICAgaWYgKGFsaWFzZGF0YSAhPSBudWxsKSB7CisJICAgICAgICBtX2RhdGFfID0gYWxpYXNkYXRhOworCSAgICB9IAorCSAgICBlbHNlIHsKKwkgICAgICAgIG1fZGF0YV8gPSBuZXcgaW50W21heGRhdGFsZW5ndGhdOworCSAgICB9CisJCisJICAgIC8vIHByZWFsbG9jYXRlIGFuZCByZXNldCB0aGUgZmlyc3QgZGF0YSBibG9jayAoYmxvY2sgaW5kZXggMCkKKwkgICAgaW50IGogPSBEQVRBX0JMT0NLX0xFTkdUSF87CisJCisJICAgIGlmIChsYXRpbjFsaW5lYXIpIHsKKwkgICAgICAgIC8vIHByZWFsbG9jYXRlIGFuZCByZXNldCB0aGUgZmlyc3QgYmxvY2sgKG51bWJlciAwKSBhbmQgTGF0aW4tMSAKKwkgICAgICAgIC8vIChVKzAwMDAuLlUrMDBmZikgYWZ0ZXIgdGhhdCBtYWRlIHN1cmUgYWJvdmUgdGhhdCAKKwkgICAgICAgIC8vIG1heERhdGFMZW5ndGggPj0gMTAyNAorCSAgICAgICAgLy8gc2V0IGluZGV4ZXMgdG8gcG9pbnQgdG8gY29uc2VjdXRpdmUgZGF0YSBibG9ja3MKKwkgICAgICAgIGludCBpID0gMDsKKwkgICAgICAgIGRvIHsKKwkgICAgICAgICAgICAvLyBkbyB0aGlzIGF0IGxlYXN0IGZvciB0cmllLT5pbmRleFswXSBldmVuIGlmIHRoYXQgYmxvY2sgaXMgCisJICAgICAgICAgICAgLy8gb25seSBwYXJ0bHkgdXNlZCBmb3IgTGF0aW4tMQorCSAgICAgICAgICAgIG1faW5kZXhfW2kgKytdID0gajsKKwkgICAgICAgICAgICBqICs9IERBVEFfQkxPQ0tfTEVOR1RIXzsKKwkgICAgICAgIH0gd2hpbGUgKGkgPCAoMjU2ID4+IFNISUZUXykpOworCSAgICB9CisJCisgICAgICAgIG1fZGF0YUxlbmd0aF8gPSBqOworCSAgICAvLyByZXNldCB0aGUgaW5pdGlhbGx5IGFsbG9jYXRlZCBibG9ja3MgdG8gdGhlIGluaXRpYWwgdmFsdWUKKyAgICAgICAgQXJyYXlzLmZpbGwobV9kYXRhXywgMCwgbV9kYXRhTGVuZ3RoXywgaW5pdGlhbHZhbHVlKTsKKwkgICAgbV9pbml0aWFsVmFsdWVfID0gaW5pdGlhbHZhbHVlOworCSAgICBtX2RhdGFDYXBhY2l0eV8gPSBtYXhkYXRhbGVuZ3RoOworCSAgICBtX2lzTGF0aW4xTGluZWFyXyA9IGxhdGluMWxpbmVhcjsKKwkgICAgbV9pc0NvbXBhY3RlZF8gPSBmYWxzZTsKKwl9CisKKwkvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisJCisgICAgLyoqCisgICAgICogR2V0cyBhIDMyIGJpdCBkYXRhIGZyb20gdGhlIHRhYmxlIGRhdGEKKyAgICAgKiBAcGFyYW0gY2ggY29kZXBvaW50IHdoaWNoIGRhdGEgaXMgdG8gYmUgcmV0cmlldmVkCisgICAgICogQHJldHVybiB0aGUgMzIgYml0IGRhdGEKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFZhbHVlKGludCBjaCkgCisgICAgeworICAgICAgICAvLyB2YWxpZCwgdW5jb21wYWN0ZWQgdHJpZSBhbmQgdmFsaWQgYz8KKyAgICAgICAgaWYgKG1faXNDb21wYWN0ZWRfIHx8IGNoID4gVUNoYXJhY3Rlci5NQVhfVkFMVUUgfHwgY2ggPCAwKSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpbnQgYmxvY2sgPSBtX2luZGV4X1tjaCA+PiBTSElGVF9dOworICAgICAgICByZXR1cm4gbV9kYXRhX1tNYXRoLmFicyhibG9jaykgKyAoY2ggJiBNQVNLXyldOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIGEgMzIgYml0IGRhdGEgaW4gdGhlIHRhYmxlIGRhdGEKKyAgICAgKiBAcGFyYW0gY2ggY29kZXBvaW50IHdoaWNoIGRhdGEgaXMgdG8gYmUgc2V0CisgICAgICogQHBhcmFtIHZhbHVlIHRvIHNldAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgc2V0IGlzIHN1Y2Nlc3NmdWwsIG90aGVyd2lzZSAKKyAgICAgKiAgICAgICAgICAgICAgaWYgdGhlIHRhYmxlIGhhcyBiZWVuIGNvbXBhY3RlZCByZXR1cm4gZmFsc2UKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBzZXRWYWx1ZShpbnQgY2gsIGludCB2YWx1ZSkgCisgICAgeworICAgICAgICAvLyB2YWxpZCwgdW5jb21wYWN0ZWQgdHJpZSBhbmQgdmFsaWQgYz8gCisgICAgICAgIGlmIChtX2lzQ29tcGFjdGVkXyB8fCBjaCA+IFVDaGFyYWN0ZXIuTUFYX1ZBTFVFIHx8IGNoIDwgMCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgCisgICAgICAgIGludCBibG9jayA9IGdldERhdGFCbG9jayhjaCk7CisgICAgICAgIGlmIChibG9jayA8IDApIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBtX2RhdGFfW2Jsb2NrICsgKGNoICYgTUFTS18pXSA9IHZhbHVlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2VyaWFsaXplcyB0aGUgYnVpbGQgdGFibGUgd2l0aCAzMiBiaXQgZGF0YQorICAgICAqIEBwYXJhbSBkYXRhbWFuaXB1bGF0ZSBidWlsZGVyIHJhdyBmb2xkIG1ldGhvZCBpbXBsZW1lbnRhdGlvbgorICAgICAqIEBwYXJhbSB0cmllZGF0YW1hbmlwdWxhdGUgcmVzdWx0IHRyaWUgZm9sZCBtZXRob2QKKyAgICAgKiBAcmV0dXJuIGEgbmV3IHRyaWUKKyAgICAgKi8KKyAgICBwdWJsaWMgSW50VHJpZSBzZXJpYWxpemUoVHJpZUJ1aWxkZXIuRGF0YU1hbmlwdWxhdGUgZGF0YW1hbmlwdWxhdGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmllLkRhdGFNYW5pcHVsYXRlIHRyaWVkYXRhbWFuaXB1bGF0ZSkKKyAgICB7CisgICAgICAgIGlmIChkYXRhbWFuaXB1bGF0ZSA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJQYXJhbWV0ZXJzIGNhbiBub3QgYmUgbnVsbCIpOworICAgICAgICB9CisgICAgICAgIC8vIGZvbGQgYW5kIGNvbXBhY3QgaWYgbmVjZXNzYXJ5LCBhbHNvIGNoZWNrcyB0aGF0IGluZGV4TGVuZ3RoIGlzIAorICAgICAgICAvLyB3aXRoaW4gbGltaXRzIAorICAgICAgICBpZiAoIW1faXNDb21wYWN0ZWRfKSB7CisgICAgICAgICAgICAvLyBjb21wYWN0IG9uY2Ugd2l0aG91dCBvdmVybGFwIHRvIGltcHJvdmUgZm9sZGluZworICAgICAgICAgICAgY29tcGFjdChmYWxzZSk7CisgICAgICAgICAgICAvLyBmb2xkIHRoZSBzdXBwbGVtZW50YXJ5IHBhcnQgb2YgdGhlIGluZGV4IGFycmF5CisgICAgICAgICAgICBmb2xkKGRhdGFtYW5pcHVsYXRlKTsKKyAgICAgICAgICAgIC8vIGNvbXBhY3QgYWdhaW4gd2l0aCBvdmVybGFwIGZvciBtaW5pbXVtIGRhdGEgYXJyYXkgbGVuZ3RoCisgICAgICAgICAgICBjb21wYWN0KHRydWUpOworICAgICAgICAgICAgbV9pc0NvbXBhY3RlZF8gPSB0cnVlOworICAgICAgICB9CisgICAgICAgIC8vIGlzIGRhdGFMZW5ndGggd2l0aGluIGxpbWl0cz8gCisgICAgICAgIGlmIChtX2RhdGFMZW5ndGhfID49IE1BWF9EQVRBX0xFTkdUSF8pIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oIkRhdGEgbGVuZ3RoIHRvbyBzbWFsbCIpOworICAgICAgICB9CisgICAgCisgICAgICAgIGNoYXIgaW5kZXhbXSA9IG5ldyBjaGFyW21faW5kZXhMZW5ndGhfXTsKKyAgICAgICAgaW50IGRhdGFbXSA9IG5ldyBpbnRbbV9kYXRhTGVuZ3RoX107CisgICAgICAgIC8vIHdyaXRlIHRoZSBpbmRleCAoc3RhZ2UgMSkgYXJyYXkgYW5kIHRoZSAzMi1iaXQgZGF0YSAoc3RhZ2UgMikgYXJyYXkKKyAgICAgICAgLy8gd3JpdGUgMTYtYml0IGluZGV4IHZhbHVlcyBzaGlmdGVkIHJpZ2h0IGJ5IElOREVYX1NISUZUXyAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtX2luZGV4TGVuZ3RoXzsgaSArKykgeworICAgICAgICAgICAgaW5kZXhbaV0gPSAoY2hhcikobV9pbmRleF9baV0gPj4+IElOREVYX1NISUZUXyk7CisgICAgICAgIH0KKyAgICAgICAgLy8gd3JpdGUgMzItYml0IGRhdGEgdmFsdWVzCisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobV9kYXRhXywgMCwgZGF0YSwgMCwgbV9kYXRhTGVuZ3RoXyk7CisgICAgICAgIAorICAgICAgICBpbnQgb3B0aW9ucyA9IFNISUZUXyB8IChJTkRFWF9TSElGVF8gPDwgT1BUSU9OU19JTkRFWF9TSElGVF8pOworICAgICAgICBvcHRpb25zIHw9IE9QVElPTlNfREFUQV9JU18zMl9CSVRfOworICAgICAgICBpZiAobV9pc0xhdGluMUxpbmVhcl8pIHsKKyAgICAgICAgICAgIG9wdGlvbnMgfD0gT1BUSU9OU19MQVRJTjFfSVNfTElORUFSXzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IEludFRyaWUoaW5kZXgsIGRhdGEsIG1faW5pdGlhbFZhbHVlXywgb3B0aW9ucywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmllZGF0YW1hbmlwdWxhdGUpOworICAgIH0KKyAgICAKKwkvLyBwdWJsaWMgZGF0YSBtZW1iZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisJCQorCXByb3RlY3RlZCBpbnQgbV9kYXRhX1tdOworCXByb3RlY3RlZCBib29sZWFuIG1faXNEYXRhQWxsb2NhdGVkXzsKKwlwcm90ZWN0ZWQgaW50IG1faW5pdGlhbFZhbHVlXzsgIAorCQorCS8vIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIAorICAgIC8qKgorICAgICAqIE5vIGVycm9yIGNoZWNraW5nIGZvciBpbGxlZ2FsIGFyZ3VtZW50cy4KKyAgICAgKiBAcGFyYW0gY2ggY29kZXBvaW50IHRvIGxvb2sgZm9yCisgICAgICogQHJldHVybiAtMSBpZiBubyBuZXcgZGF0YSBibG9jayBhdmFpbGFibGUgKG91dCBvZiBtZW1vcnkgaW4gZGF0YSBhcnJheSkKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBnZXREYXRhQmxvY2soaW50IGNoKSAKKyAgICB7CisgICAgICAgIGNoID4+PSBTSElGVF87CisgICAgICAgIGludCBpbmRleFZhbHVlID0gbV9pbmRleF9bY2hdOworICAgICAgICBpZiAoaW5kZXhWYWx1ZSA+IDApIHsKKyAgICAgICAgICAgIHJldHVybiBpbmRleFZhbHVlOworICAgICAgICB9CisgICAgCisgICAgICAgIC8vIGFsbG9jYXRlIGEgbmV3IGRhdGEgYmxvY2sKKyAgICAgICAgaW50IG5ld0Jsb2NrID0gbV9kYXRhTGVuZ3RoXzsKKyAgICAgICAgaW50IG5ld1RvcCA9IG5ld0Jsb2NrICsgREFUQV9CTE9DS19MRU5HVEhfOworICAgICAgICBpZiAobmV3VG9wID4gbV9kYXRhQ2FwYWNpdHlfKSB7CisgICAgICAgICAgICAvLyBvdXQgb2YgbWVtb3J5IGluIHRoZSBkYXRhIGFycmF5IAorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIG1fZGF0YUxlbmd0aF8gPSBuZXdUb3A7CisgICAgICAgIG1faW5kZXhfW2NoXSA9IG5ld0Jsb2NrOworICAgIAorICAgICAgICAvLyBjb3B5LW9uLXdyaXRlIGZvciBhIGJsb2NrIGZyb20gYSBzZXRSYW5nZSgpCisgICAgICAgIEFycmF5cy5maWxsKG1fZGF0YV8sIG5ld0Jsb2NrLCBuZXdCbG9jayArIERBVEFfQkxPQ0tfTEVOR1RIXywgCisgICAgICAgICAgICAgICAgICAgIG1faW5pdGlhbFZhbHVlXyk7CisgICAgICAgIHJldHVybiBuZXdCbG9jazsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29tcGFjdCBhIGZvbGRlZCBidWlsZC10aW1lIHRyaWUuCisgICAgICogVGhlIGNvbXBhY3Rpb24KKyAgICAgKiAtIHJlbW92ZXMgYmxvY2tzIHRoYXQgYXJlIGlkZW50aWNhbCB3aXRoIGVhcmxpZXIgb25lcworICAgICAqIC0gb3ZlcmxhcHMgYWRqYWNlbnQgYmxvY2tzIGFzIG11Y2ggYXMgcG9zc2libGUgKGlmIG92ZXJsYXAgPT0gdHJ1ZSkKKyAgICAgKiAtIG1vdmVzIGJsb2NrcyBpbiBzdGVwcyBvZiB0aGUgZGF0YSBncmFudWxhcml0eQorICAgICAqCisgICAgICogSXQgZG9lcyBub3QKKyAgICAgKiAtIHRyeSB0byBtb3ZlIGFuZCBvdmVybGFwIGJsb2NrcyB0aGF0IGFyZSBub3QgYWxyZWFkeSBhZGphY2VudAorICAgICAqIC0gdHJ5IHRvIG1vdmUgYW5kIG92ZXJsYXAgYmxvY2tzIHRoYXQgb3ZlcmxhcCB3aXRoIG11bHRpcGxlIHZhbHVlcyBpbiAKKyAgICAgKiB0aGUgb3ZlcmxhcCByZWdpb24KKyAgICAgKiBAcGFyYW0gb3ZlcmxhcCBmbGFnCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGNvbXBhY3QoYm9vbGVhbiBvdmVybGFwKSAKKyAgICB7CisgICAgICAgIGlmIChtX2lzQ29tcGFjdGVkXykgeworICAgICAgICAgICAgcmV0dXJuOyAvLyBub3RoaW5nIGxlZnQgdG8gZG8KKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyBjb21wYWN0aW9uCisgICAgICAgIC8vIGluaXRpYWxpemUgdGhlIGluZGV4IG1hcCB3aXRoICJibG9jayBpcyB1c2VkL3VudXNlZCIgZmxhZ3MKKyAgICAgICAgZmluZFVudXNlZEJsb2NrcygpOworICAgIAorICAgICAgICAvLyBpZiBMYXRpbi0xIGlzIHByZWFsbG9jYXRlZCBhbmQgbGluZWFyLCB0aGVuIGRvIG5vdCBjb21wYWN0IExhdGluLTEgCisgICAgICAgIC8vIGRhdGEKKyAgICAgICAgaW50IG92ZXJsYXBTdGFydCA9IERBVEFfQkxPQ0tfTEVOR1RIXzsKKyAgICAgICAgaWYgKG1faXNMYXRpbjFMaW5lYXJfICYmIFNISUZUXyA8PSA4KSB7CisgICAgICAgICAgICBvdmVybGFwU3RhcnQgKz0gMjU2OworICAgICAgICB9CisgICAgICAgCisgICAgICAgIGludCBuZXdTdGFydCA9IERBVEFfQkxPQ0tfTEVOR1RIXzsKKyAgICAgICAgaW50IHByZXZFbmQgPSBuZXdTdGFydCAtIDE7CisgICAgICAgIGZvciAoaW50IHN0YXJ0ID0gbmV3U3RhcnQ7IHN0YXJ0IDwgbV9kYXRhTGVuZ3RoXzspIHsKKyAgICAgICAgICAgIC8vIHN0YXJ0OiBpbmRleCBvZiBmaXJzdCBlbnRyeSBvZiBjdXJyZW50IGJsb2NrCisgICAgICAgICAgICAvLyBwcmV2RW5kOiBpbmRleCB0byBsYXN0IGVudHJ5IG9mIHByZXZpb3VzIGJsb2NrCisgICAgICAgICAgICAvLyBuZXdTdGFydDogaW5kZXggd2hlcmUgdGhlIGN1cnJlbnQgYmxvY2sgaXMgdG8gYmUgbW92ZWQKKyAgICAgICAgICAgIC8vIHNraXAgYmxvY2tzIHRoYXQgYXJlIG5vdCB1c2VkIAorICAgICAgICAgICAgaWYgKG1fbWFwX1tzdGFydCA+PiBTSElGVF9dIDwgMCkgeworICAgICAgICAgICAgICAgIC8vIGFkdmFuY2Ugc3RhcnQgdG8gdGhlIG5leHQgYmxvY2sgCisgICAgICAgICAgICAgICAgc3RhcnQgKz0gREFUQV9CTE9DS19MRU5HVEhfOworICAgICAgICAgICAgICAgIC8vIGxlYXZlIHByZXZFbmQgYW5kIG5ld1N0YXJ0IHdpdGggdGhlIHByZXZpb3VzIGJsb2NrIQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gc2VhcmNoIGZvciBhbiBpZGVudGljYWwgYmxvY2sKKyAgICAgICAgICAgIGlmIChzdGFydCA+PSBvdmVybGFwU3RhcnQpIHsKKyAgICAgICAgICAgICAgICBpbnQgaSA9IGZpbmRTYW1lRGF0YUJsb2NrKG1fZGF0YV8sIG5ld1N0YXJ0LCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmxhcCA/IERBVEFfR1JBTlVMQVJJVFlfIDogREFUQV9CTE9DS19MRU5HVEhfKTsKKyAgICAgICAgICAgICAgICBpZiAoaSA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGZvdW5kIGFuIGlkZW50aWNhbCBibG9jaywgc2V0IHRoZSBvdGhlciBibG9jaydzIGluZGV4IAorICAgICAgICAgICAgICAgICAgICAvLyB2YWx1ZSBmb3IgdGhlIGN1cnJlbnQgYmxvY2sKKyAgICAgICAgICAgICAgICAgICAgbV9tYXBfW3N0YXJ0ID4+IFNISUZUX10gPSBpOworICAgICAgICAgICAgICAgICAgICAvLyBhZHZhbmNlIHN0YXJ0IHRvIHRoZSBuZXh0IGJsb2NrCisgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9IERBVEFfQkxPQ0tfTEVOR1RIXzsKKyAgICAgICAgICAgICAgICAgICAgLy8gbGVhdmUgcHJldkVuZCBhbmQgbmV3U3RhcnQgd2l0aCB0aGUgcHJldmlvdXMgYmxvY2shCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIHNlZSBpZiB0aGUgYmVnaW5uaW5nIG9mIHRoaXMgYmxvY2sgY2FuIGJlIG92ZXJsYXBwZWQgd2l0aCB0aGUgCisgICAgICAgICAgICAvLyBlbmQgb2YgdGhlIHByZXZpb3VzIGJsb2NrCisgICAgICAgICAgICAvLyB4OiBmaXJzdCB2YWx1ZSBpbiB0aGUgY3VycmVudCBibG9jayAKKyAgICAgICAgICAgIGludCB4ID0gbV9kYXRhX1tzdGFydF07CisgICAgICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgICAgICBpZiAoeCA9PSBtX2RhdGFfW3ByZXZFbmRdICYmIG92ZXJsYXAgJiYgc3RhcnQgPj0gb3ZlcmxhcFN0YXJ0KSAKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBvdmVybGFwIGJ5IGF0IGxlYXN0IG9uZQorICAgICAgICAgICAgICAgIGZvciAoaSA9IDE7IGkgPCBEQVRBX0JMT0NLX0xFTkdUSF8gCisgICAgICAgICAgICAgICAgICAgICAmJiB4ID09IG1fZGF0YV9bc3RhcnQgKyBpXSAKKyAgICAgICAgICAgICAgICAgICAgICYmIHggPT0gbV9kYXRhX1twcmV2RW5kIC0gaV07ICsrIGkpIAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgLy8gb3ZlcmxhcCBieSBpLCByb3VuZGVkIGRvd24gZm9yIHRoZSBkYXRhIGJsb2NrIGdyYW51bGFyaXR5CisgICAgICAgICAgICAgICAgaSAmPSB+KERBVEFfR1JBTlVMQVJJVFlfIC0gMSk7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgaWYgKGkgPiAwKSB7CisgICAgICAgICAgICAgICAgLy8gc29tZSBvdmVybGFwCisgICAgICAgICAgICAgICAgbV9tYXBfW3N0YXJ0ID4+IFNISUZUX10gPSBuZXdTdGFydCAtIGk7CisgICAgICAgICAgICAgICAgLy8gbW92ZSB0aGUgbm9uLW92ZXJsYXBwaW5nIGluZGV4ZXMgdG8gdGhlaXIgbmV3IHBvc2l0aW9ucworICAgICAgICAgICAgICAgIHN0YXJ0ICs9IGk7CisgICAgICAgICAgICAgICAgZm9yIChpID0gREFUQV9CTE9DS19MRU5HVEhfIC0gaTsgaSA+IDA7IC0tIGkpIHsKKyAgICAgICAgICAgICAgICAgICAgbV9kYXRhX1tuZXdTdGFydCArK10gPSBtX2RhdGFfW3N0YXJ0ICsrXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSBpZiAobmV3U3RhcnQgPCBzdGFydCkgeworICAgICAgICAgICAgICAgIC8vIG5vIG92ZXJsYXAsIGp1c3QgbW92ZSB0aGUgaW5kZXhlcyB0byB0aGVpciBuZXcgcG9zaXRpb25zCisgICAgICAgICAgICAgICAgbV9tYXBfW3N0YXJ0ID4+IFNISUZUX10gPSBuZXdTdGFydDsKKyAgICAgICAgICAgICAgICBmb3IgKGkgPSBEQVRBX0JMT0NLX0xFTkdUSF87IGkgPiAwOyAtLSBpKSB7CisgICAgICAgICAgICAgICAgICAgIG1fZGF0YV9bbmV3U3RhcnQgKytdID0gbV9kYXRhX1tzdGFydCArK107CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgeyAvLyBubyBvdmVybGFwICYmIG5ld1N0YXJ0PT1zdGFydAorICAgICAgICAgICAgICAgIG1fbWFwX1tzdGFydCA+PiBTSElGVF9dID0gc3RhcnQ7CisgICAgICAgICAgICAgICAgbmV3U3RhcnQgKz0gREFUQV9CTE9DS19MRU5HVEhfOworICAgICAgICAgICAgICAgIHN0YXJ0ID0gbmV3U3RhcnQ7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBwcmV2RW5kID0gbmV3U3RhcnQgLSAxOworICAgICAgICB9CisgICAgCisgICAgICAgIC8vIG5vdyBhZGp1c3QgdGhlIGluZGV4IChzdGFnZSAxKSB0YWJsZQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1faW5kZXhMZW5ndGhfOyArKyBpKSB7CisgICAgICAgICAgICBtX2luZGV4X1tpXSA9IG1fbWFwX1tNYXRoLmFicyhtX2luZGV4X1tpXSkgPj4gU0hJRlRfXTsKKyAgICAgICAgfQorICAgICAgICBtX2RhdGFMZW5ndGhfID0gbmV3U3RhcnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogRmluZCB0aGUgc2FtZSBkYXRhIGJsb2NrCisgICAgICogQHBhcmFtIGRhdGEgYXJyYXkKKyAgICAgKiBAcGFyYW0gZGF0YUxlbmd0aAorICAgICAqIEBwYXJhbSBvdGhlckJsb2NrCisgICAgICogQHBhcmFtIHN0ZXAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgZmluZFNhbWVEYXRhQmxvY2soaW50IGRhdGFbXSwgaW50IGRhdGFMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb3RoZXJCbG9jaywgaW50IHN0ZXApIAorICAgIHsKKyAgICAgICAgLy8gZW5zdXJlIHRoYXQgd2UgZG8gbm90IGV2ZW4gcGFydGlhbGx5IGdldCBwYXN0IGRhdGFMZW5ndGgKKyAgICAgICAgZGF0YUxlbmd0aCAtPSBEQVRBX0JMT0NLX0xFTkdUSF87CisKKyAgICAgICAgZm9yIChpbnQgYmxvY2sgPSAwOyBibG9jayA8PSBkYXRhTGVuZ3RoOyBibG9jayArPSBzdGVwKSB7CisgICAgICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgREFUQV9CTE9DS19MRU5HVEhfOyArKyBpKSB7CisgICAgICAgICAgICAgICAgaWYgKGRhdGFbYmxvY2sgKyBpXSAhPSBkYXRhW290aGVyQmxvY2sgKyBpXSkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaSA9PSBEQVRBX0JMT0NLX0xFTkdUSF8pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gYmxvY2s7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBGb2xkIHRoZSBub3JtYWxpemF0aW9uIGRhdGEgZm9yIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMgaW50bworICAgICAqIGEgY29tcGFjdCBhcmVhIG9uIHRvcCBvZiB0aGUgQk1QLXBhcnQgb2YgdGhlIHRyaWUgaW5kZXgsCisgICAgICogd2l0aCB0aGUgbGVhZCBzdXJyb2dhdGVzIGluZGV4aW5nIHRoaXMgY29tcGFjdCBhcmVhLgorICAgICAqCisgICAgICogRHVwbGljYXRlIHRoZSBpbmRleCB2YWx1ZXMgZm9yIGxlYWQgc3Vycm9nYXRlczoKKyAgICAgKiBGcm9tIGluc2lkZSB0aGUgQk1QIGFyZWEsIHdoZXJlIHNvbWUgbWF5IGJlIG92ZXJyaWRkZW4gd2l0aCBmb2xkZWQgdmFsdWVzLAorICAgICAqIHRvIGp1c3QgYWZ0ZXIgdGhlIEJNUCBhcmVhLCB3aGVyZSB0aGV5IGNhbiBiZSByZXRyaWV2ZWQgZm9yCisgICAgICogY29kZSBwb2ludCBsb29rdXBzLgorICAgICAqIEBwYXJhbSBtYW5pcHVsYXRlIGZvbGQgaW1wbGVtZW50YXRpb24KKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIHZvaWQgZm9sZChEYXRhTWFuaXB1bGF0ZSBtYW5pcHVsYXRlKSAKKyAgICB7CisgICAgICAgIGludCBsZWFkSW5kZXhlc1tdID0gbmV3IGludFtTVVJST0dBVEVfQkxPQ0tfQ09VTlRfXTsKKyAgICAgICAgaW50IGluZGV4W10gPSBtX2luZGV4XzsKKyAgICAgICAgLy8gY29weSB0aGUgbGVhZCBzdXJyb2dhdGUgaW5kZXhlcyBpbnRvIGEgdGVtcG9yYXJ5IGFycmF5CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoaW5kZXgsIDB4ZDgwMCA+PiBTSElGVF8sIGxlYWRJbmRleGVzLCAwLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICBTVVJST0dBVEVfQkxPQ0tfQ09VTlRfKTsKKyAgICAKKyAgICAgICAgLy8gdG8gcHJvdGVjdCB0aGUgY29waWVkIGxlYWQgc3Vycm9nYXRlIHZhbHVlcywKKyAgICAgICAgLy8gbWFyayBhbGwgdGhlaXIgaW5kZXhlcyBhcyByZXBlYXQgYmxvY2tzCisgICAgICAgIC8vIChjYXVzZXMgY29weS1vbi13cml0ZSkKKyAgICAgICAgZm9yIChjaGFyIGMgPSAweGQ4MDA7IGMgPD0gMHhkYmZmOyArKyBjKSB7CisgICAgICAgICAgICBpbnQgYmxvY2sgPSBpbmRleFtjID4+IFNISUZUX107CisgICAgICAgICAgICBpZiAoYmxvY2sgPiAwKSB7CisgICAgICAgICAgICAgICAgaW5kZXhbYyA+PiBTSElGVF9dID0tIGJsb2NrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIC8vIEZvbGQgc2lnbmlmaWNhbnQgaW5kZXggdmFsdWVzIGludG8gdGhlIGFyZWEganVzdCBhZnRlciB0aGUgQk1QIAorICAgICAgICAvLyBpbmRleGVzLgorICAgICAgICAvLyBJbiBjYXNlIHRoZSBmaXJzdCBsZWFkIHN1cnJvZ2F0ZSBoYXMgc2lnbmlmaWNhbnQgZGF0YSwKKyAgICAgICAgLy8gaXRzIGluZGV4IGJsb2NrIG11c3QgYmUgdXNlZCBmaXJzdCAoaW4gd2hpY2ggY2FzZSB0aGUgZm9sZGluZyBpcyBhIAorICAgICAgICAvLyBuby1vcCkuCisgICAgICAgIC8vIExhdGVyIGFsbCBmb2xkZWQgaW5kZXggYmxvY2tzIGFyZSBtb3ZlZCB1cCBvbmUgdG8gaW5zZXJ0IHRoZSBjb3BpZWQKKyAgICAgICAgLy8gbGVhZCBzdXJyb2dhdGUgaW5kZXhlcy4KKyAgICAgICAgaW50IGluZGV4TGVuZ3RoID0gQk1QX0lOREVYX0xFTkdUSF87CisgICAgICAgIC8vIHNlYXJjaCBmb3IgYW55IGluZGV4IChzdGFnZSAxKSBlbnRyaWVzIGZvciBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnRzIAorICAgICAgICBmb3IgKGludCBjID0gMHgxMDAwMDsgYyA8IDB4MTEwMDAwOykgeworICAgICAgICAgICAgaWYgKGluZGV4W2MgPj4gU0hJRlRfXSAhPSAwKSB7CisgICAgICAgICAgICAgICAgLy8gdGhlcmUgaXMgZGF0YSwgdHJlYXQgdGhlIGZ1bGwgYmxvY2sgZm9yIGEgbGVhZCBzdXJyb2dhdGUKKyAgICAgICAgICAgICAgICBjICY9IH4weDNmZjsKKyAgICAgICAgICAgICAgICAvLyBpcyB0aGVyZSBhbiBpZGVudGljYWwgaW5kZXggYmxvY2s/CisgICAgICAgICAgICAgICAgaW50IGJsb2NrID0gZmluZFNhbWVJbmRleEJsb2NrKGluZGV4LCBpbmRleExlbmd0aCwgYyA+PiBTSElGVF8pOworICAgICAgICAgICAgICAgIC8vIGdldCBhIGZvbGRlZCB2YWx1ZSBmb3IgW2MuLmMrMHg0MDBbIGFuZCwgaWYgMCwgc2V0IGl0IGZvciAKKyAgICAgICAgICAgICAgICAvLyB0aGUgbGVhZCBzdXJyb2dhdGUgCisgICAgICAgICAgICAgICAgaW50IHZhbHVlID0gbWFuaXB1bGF0ZS5nZXRGb2xkZWRWYWx1ZShjLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrICsgU1VSUk9HQVRFX0JMT0NLX0NPVU5UXyk7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFzZXRWYWx1ZSgweGQ3YzAgKyAoYyA+PiAxMCksIHZhbHVlKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGF0YSB0YWJsZSBvdmVyZmxvdyAKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEYXRhIHRhYmxlIG92ZXJmbG93Iik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgd2UgZGlkIG5vdCBmaW5kIGFuIGlkZW50aWNhbCBpbmRleCBibG9jay4uLgorICAgICAgICAgICAgICAgICAgICBpZiAoYmxvY2sgPT0gaW5kZXhMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1vdmUgdGhlIGFjdHVhbCBpbmRleCAoc3RhZ2UgMSkgZW50cmllcyBmcm9tIHRoZSAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN1cHBsZW1lbnRhcnkgcG9zaXRpb24gdG8gdGhlIG5ldyBvbmUKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoaW5kZXgsIGMgPj4gU0hJRlRfLCBpbmRleCwgaW5kZXhMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNVUlJPR0FURV9CTE9DS19DT1VOVF8gPDwgMik7CisgICAgICAgICAgICAgICAgICAgICAgICBpbmRleExlbmd0aCArPSBTVVJST0dBVEVfQkxPQ0tfQ09VTlRfOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGMgKz0gMHg0MDA7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgYyArPSBEQVRBX0JMT0NLX0xFTkdUSF87CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gaW5kZXggYXJyYXkgb3ZlcmZsb3c/CisgICAgICAgIC8vIFRoaXMgaXMgdG8gZ3VhcmFudGVlIHRoYXQgYSBmb2xkaW5nIG9mZnNldCBpcyBvZiB0aGUgZm9ybQorICAgICAgICAvLyBVVFJJRV9CTVBfSU5ERVhfTEVOR1RIK24qVVRSSUVfU1VSUk9HQVRFX0JMT0NLX0NPVU5UIHdpdGggbj0wLi4xMDIzLgorICAgICAgICAvLyBJZiB0aGUgaW5kZXggaXMgdG9vIGxhcmdlLCB0aGVuIG4+PTEwMjQgYW5kIG1vcmUgdGhhbiAxMCBiaXRzIGFyZSAKKyAgICAgICAgLy8gbmVjZXNzYXJ5LgorICAgICAgICAvLyBJbiBmYWN0LCBpdCBjYW4gb25seSBldmVyIGJlY29tZSBuPT0xMDI0IHdpdGggY29tcGxldGVseSB1bmZvbGRhYmxlIAorICAgICAgICAvLyBkYXRhIGFuZCB0aGUgYWRkaXRpb25hbCBibG9jayBvZiBkdXBsaWNhdGVkIHZhbHVlcyBmb3IgbGVhZCAKKyAgICAgICAgLy8gc3Vycm9nYXRlcy4KKyAgICAgICAgaWYgKGluZGV4TGVuZ3RoID49IE1BWF9JTkRFWF9MRU5HVEhfKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKCJJbmRleCB0YWJsZSBvdmVyZmxvdyIpOworICAgICAgICB9CisgICAgICAgIC8vIG1ha2Ugc3BhY2UgZm9yIHRoZSBsZWFkIHN1cnJvZ2F0ZSBpbmRleCBibG9jayBhbmQgaW5zZXJ0IGl0IGJldHdlZW4gCisgICAgICAgIC8vIHRoZSBCTVAgaW5kZXhlcyBhbmQgdGhlIGZvbGRlZCBvbmVzCisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoaW5kZXgsIEJNUF9JTkRFWF9MRU5HVEhfLCBpbmRleCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgQk1QX0lOREVYX0xFTkdUSF8gKyBTVVJST0dBVEVfQkxPQ0tfQ09VTlRfLAorICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4TGVuZ3RoIC0gQk1QX0lOREVYX0xFTkdUSF8pOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGxlYWRJbmRleGVzLCAwLCBpbmRleCwgQk1QX0lOREVYX0xFTkdUSF8sCisgICAgICAgICAgICAgICAgICAgICAgICAgU1VSUk9HQVRFX0JMT0NLX0NPVU5UXyk7CisgICAgICAgIGluZGV4TGVuZ3RoICs9IFNVUlJPR0FURV9CTE9DS19DT1VOVF87CisgICAgICAgIG1faW5kZXhMZW5ndGhfID0gaW5kZXhMZW5ndGg7CisgICAgfQorfQorICAgIApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0xvY2FsZVV0aWxpdHkuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0xvY2FsZVV0aWxpdHkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMDMzZTQyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvTG9jYWxlVXRpbGl0eS5qYXZhCkBAIC0wLDAgKzEsMTIzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9Mb2NhbGVVdGlsaXR5LmphdmEsdiAkCisgKiAkRGF0ZTogMjAwMi8wNi8xOSAyMTowMzoxMiAkCisgKiAkUmV2aXNpb246IDEuNCAkCisgKiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworIAorcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworLyoqCisgKiBBIGNsYXNzIHRvIGhvbGQgdXRpbGl0eSBmdW5jdGlvbnMgbWlzc2luZyBmcm9tIGphdmEudXRpbC5Mb2NhbGUuCisgKi8KK3B1YmxpYyBjbGFzcyBMb2NhbGVVdGlsaXR5IHsKKworICAgIC8qKgorICAgICAqIEEgaGVscGVyIGZ1bmN0aW9uIHRvIGNvbnZlcnQgYSBzdHJpbmcgb2YgdGhlIGZvcm0KKyAgICAgKiBhYV9CQl9DQyB0byBhIGxvY2FsZSBvYmplY3QuICBXaHkgaXNuJ3QgdGhpcyBpbiBMb2NhbGU/CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBMb2NhbGUgZ2V0TG9jYWxlRnJvbU5hbWUoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgU3RyaW5nIGxhbmd1YWdlID0gIiI7CisgICAgICAgIFN0cmluZyBjb3VudHJ5ID0gIiI7CisgICAgICAgIFN0cmluZyB2YXJpYW50ID0gIiI7CisKKyAgICAgICAgaW50IGkxID0gbmFtZS5pbmRleE9mKCdfJyk7CisgICAgICAgIGlmIChpMSA8IDApIHsKKyAgICAgICAgICAgIGxhbmd1YWdlID0gbmFtZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxhbmd1YWdlID0gbmFtZS5zdWJzdHJpbmcoMCwgaTEpOworICAgICAgICAgICAgKytpMTsKKyAgICAgICAgICAgIGludCBpMiA9IG5hbWUuaW5kZXhPZignXycsIGkxKTsKKyAgICAgICAgICAgIGlmIChpMiA8IDApIHsKKyAgICAgICAgICAgICAgICBjb3VudHJ5ID0gbmFtZS5zdWJzdHJpbmcoaTEpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBjb3VudHJ5ID0gbmFtZS5zdWJzdHJpbmcoaTEsIGkyKTsKKyAgICAgICAgICAgICAgICB2YXJpYW50ID0gbmFtZS5zdWJzdHJpbmcoaTIrMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbmV3IExvY2FsZShsYW5ndWFnZSwgY291bnRyeSwgdmFyaWFudCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGFyZSB0d28gbG9jYWxlIHN0cmluZ3Mgb2YgdGhlIGZvcm0gYWFfQkJfQ0MsIGFuZAorICAgICAqIHJldHVybiB0cnVlIGlmIHBhcmVudCBpcyBhICdzdHJpY3QnIGZhbGxiYWNrIG9mIGNoaWxkLCB0aGF0IGlzLAorICAgICAqIGlmIGNoaWxkID1+ICJecGFyZW50KF8uKykqIiAocm91Z2hseSkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzRmFsbGJhY2tPZihTdHJpbmcgcGFyZW50LCBTdHJpbmcgY2hpbGQpIHsKKyAgICAgICAgaWYgKCFjaGlsZC5zdGFydHNXaXRoKHBhcmVudCkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpbnQgaSA9IHBhcmVudC5sZW5ndGgoKTsKKyAgICAgICAgcmV0dXJuIChpID09IGNoaWxkLmxlbmd0aCgpIHx8CisgICAgICAgICAgICAgICAgY2hpbGQuY2hhckF0KGkpID09ICdfJyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGFyZSB0d28gbG9jYWxlcywgYW5kIHJldHVybiB0cnVlIGlmIHRoZSBwYXJlbnQgaXMgYQorICAgICAqICdzdHJpY3QnIGZhbGxiYWNrIG9mIHRoZSBjaGlsZCAocGFyZW50IHN0cmluZyBpcyBhIGZhbGxiYWNrCisgICAgICogb2YgY2hpbGQgc3RyaW5nKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNGYWxsYmFja09mKExvY2FsZSBwYXJlbnQsIExvY2FsZSBjaGlsZCkgeworICAgICAgICByZXR1cm4gaXNGYWxsYmFja09mKHBhcmVudC50b1N0cmluZygpLCBjaGlsZC50b1N0cmluZygpKTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFlvdSdkIHRoaW5rIHRoYXQgTG9jYWxlIGNhbm9uaWNhbGl6ZXMsIHNpbmNlIGl0IG11bmdlcyB0aGUKKyAgICAgKiByZW5hbWVkIGxhbmd1YWdlcywgYnV0IGl0IGRvZXNuJ3QgcXVpdGUuICBJdCBmb3JjZXMgdGhlIHJlZ2lvbgorICAgICAqIHRvIGJlIHVwcGVyIGNhc2UgYnV0IGRvZXNuJ3QgZG8gYW55dGhpbmcgYWJvdXQgdGhlIGxhbmd1YWdlIG9yCisgICAgICogdmFyaWFudC4gIE91ciBjYW5vbmljYWwgZm9ybSBpcyAnbG93ZXJfVVBQRVJfVVBQRVInLiAgCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgY2Fub25pY2FsTG9jYWxlU3RyaW5nKFN0cmluZyBpZCkgeworCWlmIChpZCAhPSBudWxsKSB7CisJICAgIGludCB4ID0gaWQuaW5kZXhPZigiXyIpOworCSAgICBpZiAoeCA9PSAtMSkgeworCQlpZCA9IGlkLnRvTG93ZXJDYXNlKExvY2FsZS5FTkdMSVNIKTsKKwkgICAgfSBlbHNlIHsKKwkJU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKwkJYnVmLmFwcGVuZChpZC5zdWJzdHJpbmcoMCwgeCkudG9Mb3dlckNhc2UoTG9jYWxlLkVOR0xJU0gpKTsKKwkJYnVmLmFwcGVuZChpZC5zdWJzdHJpbmcoeCkudG9VcHBlckNhc2UoTG9jYWxlLkVOR0xJU0gpKTsKKwkJICAgIAorCQlpbnQgbGVuID0gYnVmLmxlbmd0aCgpOworCQlpbnQgbiA9IGxlbjsKKwkJd2hpbGUgKC0tbiA+PSAwICYmIGJ1Zi5jaGFyQXQobikgPT0gJ18nKSB7fTsKKwkJaWYgKCsrbiAhPSBsZW4pIHsKKwkJICAgIGJ1Zi5kZWxldGUobiwgbGVuKTsKKwkJfQorCQlpZCA9IGJ1Zi50b1N0cmluZygpOworCSAgICB9CisJfQorCXJldHVybiBpZDsKKyAgICB9CisKKyAgICAvKgorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlMYW5ndWFnZShTdHJpbmcgbGFuZ3VhZ2VJRCwgTG9jYWxlIGwpIHsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5UmVnaW9uKFN0cmluZyByZWdpb25JRCwgTG9jYWxlIGwpIHsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5VmFyaWFudChTdHJpbmcgdmFyaWFudElELCBMb2NhbGUgbCkgeworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKFN0cmluZyBsb2NhbGVOYW1lKSB7CisJcmV0dXJuIGdldERpc3BsYXlOYW1lKGdldExvY2FsZUZyb21TdHJpbmcobG9jYWxlTmFtZSkpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKExvY2FsZSBsb2NhbGUpIHsKKwlTdHJpbmcgbGFuZyA9IGxvY2FsZS5nZXRMYW5ndWFnZSgpOworCVN0cmluZyByZWdpb24gPSBsb2NhbGUuZ2V0Q291bnRyeSgpOworCVN0cmluZyB2YXIgPSBsb2NhbGUuZ2V0VmFyaWFudCgpOworCisJU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIobGFuZyk7CisgICAgfQorICAgICovCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9Ob3JtYWxpemVyRGF0YVJlYWRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvTm9ybWFsaXplckRhdGFSZWFkZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNzkxMzhmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvTm9ybWFsaXplckRhdGFSZWFkZXIuamF2YQpAQCAtMCwwICsxLDM5OCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvTm9ybWFsaXplckRhdGFSZWFkZXIuamF2YSx2ICQKKyAqICREYXRlOiAyMDAyLzA4LzAxIDE5OjUwOjI2ICQKKyAqICRSZXZpc2lvbjogMS43ICQKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VEZWJ1ZzsKKworLyoqCisgKiBAdmVyc2lvbiAJMS4wCisgKiBAYXV0aG9yCQlSYW0gVmlzd2FuYWRoYQorICovCisKKwkvKgorCSAqIERlc2NyaXB0aW9uIG9mIHRoZSBmb3JtYXQgb2YgdW5vcm0uaWN1IHZlcnNpb24gMi4xLgorCSAqCisJICogTWFpbiBjaGFuZ2UgZnJvbSB2ZXJzaW9uIDEgdG8gdmVyc2lvbiAyOgorCSAqIFVzZSBvZiBuZXcsIGNvbW1vbiBUcmllIGluc3RlYWQgb2Ygbm9ybWFsaXphdGlvbi1zcGVjaWZpYyB0cmllcy4KKwkgKiBDaGFuZ2UgdG8gdmVyc2lvbiAyLjE6IGFkZCB0aGlyZC9hdXhpbGlhcnkgdHJpZSB3aXRoIGFzc29jaWF0ZWQgZGF0YS4KKwkgKgorCSAqIEZvciBtb3JlIGRldGFpbHMgb2YgaG93IHRvIHVzZSB0aGUgZGF0YSBzdHJ1Y3R1cmVzIHNlZSB0aGUgY29kZQorCSAqIGluIHVub3JtLmNwcCAocnVudGltZSBub3JtYWxpemF0aW9uIGNvZGUpIGFuZAorCSAqIGluIGdlbm5vcm0uYyBhbmQgZ2Vubm9ybS9zdG9yZS5jIChidWlsZC10aW1lIGRhdGEgZ2VuZXJhdGlvbikuCisJICoKKwkgKiBGb3IgdGhlIHNlcmlhbGl6ZWQgZm9ybWF0IG9mIFRyaWUgc2VlIFRyaWUuYy9UcmllSGVhZGVyLgorCSAqCisJICogLSBPdmVyYWxsIHBhcnRpdGlvbgorCSAqCisJICogdW5vcm0uaWN1IGN1c3RvbWFyaWx5IGJlZ2lucyB3aXRoIGEgVURhdGFJbmZvIHN0cnVjdHVyZSwgc2VlIHVkYXRhLmggYW5kIC5jLgorCSAqIEFmdGVyIHRoYXQgdGhlcmUgYXJlIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlczoKKwkgKgorCSAqIGNoYXIgaW5kZXhlc1tJTkRFWF9UT1BdOyAgICAgICAgICAgCQktLSBJTkRFWF9UT1A9MzIsIHNlZSBlbnVtIGluIHRoaXMgZmlsZQorCSAqCisJICogVHJpZSBub3JtVHJpZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBzaXplIGluIGJ5dGVzPWluZGV4ZXNbSU5ERVhfVFJJRV9TSVpFXQorCSAqIAorCSAqIGNoYXIgZXh0cmFEYXRhW2V4dHJhRGF0YVRvcF07ICAgICAgICAgICAgLS0gZXh0cmFEYXRhVG9wPWluZGV4ZXNbSU5ERVhfVUNIQVJfQ09VTlRdCisJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFEYXRhWzBdIGNvbnRhaW5zIHRoZSBudW1iZXIgb2YgdW5pdHMgZm9yCisJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkNfTkZLQ19DbG9zdXJlIChmb3JtYXRWZXJzaW9uPj0yLjEpCisJICoKKwkgKiBjaGFyIGNvbWJpbmluZ1RhYmxlW2NvbWJpbmluZ1RhYmxlVG9wXTsgIC0tIGNvbWJpbmluZ1RhYmxlVG9wPWluZGV4ZXNbSU5ERVhfQ09NQklORV9EQVRBX0NPVU5UXQorCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbWJpbmluZ1RhYmxlVG9wIG1heSBpbmNsdWRlIG9uZSAxNi1iaXQgcGFkZGluZyB1bml0CisJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gbWFrZSBzdXJlIHRoYXQgZmNkVHJpZSBpcyAzMi1iaXQtYWxpZ25lZAorCSAqCisJICogVHJpZSBmY2RUcmllOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBzaXplIGluIGJ5dGVzPWluZGV4ZXNbSU5ERVhfRkNEX1RSSUVfU0laRV0KKwkgKgorCSAqIFRyaWUgYXV4VHJpZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gc2l6ZSBpbiBieXRlcz1pbmRleGVzW0lOREVYX0FVWF9UUklFX1NJWkVdCisJICoKKwkgKiBjaGFyIGNhbm9uU3RhcnRTZXRzW2Nhbm9uU3RhcnRTZXRzVG9wXSAgIC0tIGNhbm9uU3RhcnRTZXRzVG9wPWluZGV4ZXNbSU5ERVhfQ0FOT05fU0VUX0NPVU5UXQorCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcmlhbGl6ZWQgVVNldHMsIHNlZSB1c2V0LmMKKwkgKgorCSAqCisJICogVGhlIGluZGV4ZXMgYXJyYXkgY29udGFpbnMgbGVuZ3RocyBhbmQgc2l6ZXMgb2YgdGhlIGZvbGxvd2luZyBhcnJheXMgYW5kIHN0cnVjdHVyZXMKKwkgKiBhcyB3ZWxsIGFzIHRoZSBmb2xsb3dpbmcgdmFsdWVzOgorCSAqICBpbmRleGVzW0lOREVYX0NPTUJJTkVfRldEX0NPVU5UXT1jb21iaW5lRndkVG9wCisJICogICAgICAtLSBvbmUgbW9yZSB0aGFuIHRoZSBoaWdoZXN0IGNvbWJpbmluZyBpbmRleCBjb21wdXRlZCBmb3IgZm9yd2FyZC1vbmx5LWNvbWJpbmluZyBjaGFyYWN0ZXJzCisJICogIGluZGV4ZXNbSU5ERVhfQ09NQklORV9CT1RIX0NPVU5UXT1jb21iaW5lQm90aFRvcC1jb21iaW5lRndkVG9wCisJICogICAgICAtLSBudW1iZXIgb2YgY29tYmluaW5nIGluZGV4ZXMgY29tcHV0ZWQgZm9yIGJvdGgtd2F5cy1jb21iaW5pbmcgY2hhcmFjdGVycworCSAqICBpbmRleGVzW0lOREVYX0NPTUJJTkVfQkFDS19DT1VOVF09Y29tYmluZUJhY2tUb3AtY29tYmluZUJvdGhUb3AKKwkgKiAgICAgIC0tIG51bWJlciBvZiBjb21iaW5pbmcgaW5kZXhlcyBjb21wdXRlZCBmb3IgYmFja3dhcmQtb25seS1jb21iaW5pbmcgY2hhcmFjdGVycworCSAqCisJICogIGluZGV4ZXNbSU5ERVhfTUlOX05GKl9OT19NQVlCRV0gKHdoZXJlICo9eyBDLCBELCBLQywgS0QgfSkKKwkgKiAgICAgIC0tIGZpcnN0IGNvZGUgcG9pbnQgd2l0aCBhIHF1aWNrIGNoZWNrIE5GKiB2YWx1ZSBvZiBOTy9NQVlCRQorCSAqCisJICoKKwkgKiAtIFRyaWVzCisJICoKKwkgKiBUaGUgbWFpbiBzdHJ1Y3R1cmVzIGFyZSB0d28gVHJpZSB0YWJsZXMgKCJjb21wYWN0IGFycmF5cyIpLAorCSAqIGVhY2ggd2l0aCBvbmUgaW5kZXggYXJyYXkgYW5kIG9uZSBkYXRhIGFycmF5LgorCSAqIFNlZSBUcmllLmggYW5kIFRyaWUuYy4KKwkgKgorCSAqCisJICogLSBUcmllcyBpbiB1bm9ybS5pY3UKKwkgKgorCSAqIFRoZSBmaXJzdCB0cmllIChub3JtVHJpZSBhYm92ZSkKKwkgKiBwcm92aWRlcyBkYXRhIGZvciB0aGUgTkYqIHF1aWNrIGNoZWNrcyBhbmQgbm9ybWFsaXphdGlvbi4KKwkgKiBUaGUgc2Vjb25kIHRyaWUgKGZjZFRyaWUgYWJvdmUpIHByb3ZpZGVzIGRhdGEganVzdCBmb3IgRkNEIGNoZWNrcy4KKwkgKgorCSAqCisJICogLSBub3JtMzIgZGF0YSB3b3JkcyBmcm9tIHRoZSBmaXJzdCB0cmllCisJICoKKwkgKiBUaGUgbm9ybTMyVGFibGUgY29udGFpbnMgb25lIDMyLWJpdCB3b3JkICJub3JtMzIiIHBlciBjb2RlIHBvaW50LgorCSAqIEl0IGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcgYml0IGZpZWxkczoKKwkgKiAzMS4uMTYgICBleHRyYSBkYXRhIGluZGV4LCBFWFRSQV9TSElGVCBpcyB1c2VkIHRvIHNoaWZ0IHRoaXMgZmllbGQgZG93bgorCSAqICAgICAgICAgIGlmIHRoaXMgaW5kZXggaXMgPEVYVFJBX0lOREVYX1RPUCB0aGVuIGl0IGlzIGFuIGluZGV4IGludG8KKwkgKiAgICAgICAgICAgICAgZXh0cmFEYXRhW10gd2hlcmUgdmFyaWFibGUtbGVuZ3RoIG5vcm1hbGl6YXRpb24gZGF0YSBmb3IgdGhpcworCSAqICAgICAgICAgICAgICBjb2RlIHBvaW50IGlzIGZvdW5kCisJICogICAgICAgICAgaWYgdGhpcyBpbmRleCBpcyA8RVhUUkFfSU5ERVhfVE9QK0VYVFJBX1NVUlJPR0FURV9UT1AKKwkgKiAgICAgICAgICAgICAgdGhlbiB0aGlzIGlzIGEgbm9ybTMyIGZvciBhIGxlYWRpbmcgc3Vycm9nYXRlLCBhbmQgdGhlIGluZGV4CisJICogICAgICAgICAgICAgIHZhbHVlIGlzIHVzZWQgdG9nZXRoZXIgd2l0aCB0aGUgZm9sbG93aW5nIHRyYWlsaW5nIHN1cnJvZ2F0ZQorCSAqICAgICAgICAgICAgICBjb2RlIHVuaXQgaW4gdGhlIHNlY29uZCB0cmllIGFjY2VzcworCSAqICAgICAgICAgIGlmIHRoaXMgaW5kZXggaXMgPj1FWFRSQV9JTkRFWF9UT1ArRVhUUkFfU1VSUk9HQVRFX1RPUAorCSAqICAgICAgICAgICAgICB0aGVuIHRoaXMgaXMgYSBub3JtMzIgZm9yIGEgInNwZWNpYWwiIGNoYXJhY3RlciwKKwkgKiAgICAgICAgICAgICAgaS5lLiwgdGhlIGNoYXJhY3RlciBpcyBhIEhhbmd1bCBzeWxsYWJsZSBvciBhIEphbW8KKwkgKiAgICAgICAgICAgICAgc2VlIEVYVFJBX0hBTkdVTCBldGMuCisJICogICAgICAgICAgZ2VuZXJhbGx5LCBpbnN0ZWFkIG9mIGV4dHJhY3RpbmcgdGhpcyBpbmRleCBmcm9tIHRoZSBub3JtMzIgYW5kCisJICogICAgICAgICAgICAgIGNvbXBhcmluZyBpdCB3aXRoIHRoZSBhYm92ZSBjb25zdGFudHMsCisJICogICAgICAgICAgICAgIHRoZSBub3JtYWxpemF0aW9uIGNvZGUgY29tcGFyZXMgdGhlIGVudGlyZSBub3JtMzIgdmFsdWUKKwkgKiAgICAgICAgICAgICAgd2l0aCBNSU5fU1BFQ0lBTCwgU1VSUk9HQVRFU19UT1AsIE1JTl9IQU5HVUwgZXRjLgorCSAqCisJICogMTUuLjggICAgY29tYmluaW5nIGNsYXNzIChjYykgYWNjb3JkaW5nIHRvIFVuaWNvZGVEYXRhLnR4dAorCSAqCisJICogIDcuLjYgICAgQ09NQklORVNfQU5ZIGZsYWdzLCB1c2VkIGluIGNvbXBvc2l0aW9uIHRvIHNlZSBpZiBhIGNoYXJhY3RlcgorCSAqICAgICAgICAgICAgICBjb21iaW5lcyB3aXRoIGFueSBmb2xsb3dpbmcgb3IgcHJlY2VkaW5nIGNoYXJhY3RlcihzKQorCSAqICAgICAgICAgICAgICBhdCBhbGwKKwkgKiAgICAgNyAgICBDT01CSU5FU19CQUNLCisJICogICAgIDYgICAgQ09NQklORVNfRldECisJICoKKwkgKiAgNS4uMCAgICBxdWljayBjaGVjayBmbGFncywgc2V0IGZvciAibm8iIG9yICJtYXliZSIsIHdpdGggc2VwYXJhdGUgZmxhZ3MgZm9yCisJICogICAgICAgICAgICAgIGVhY2ggbm9ybWFsaXphdGlvbiBmb3JtCisJICogICAgICAgICAgICAgIHRoZSBoaWdoZXIgYml0cyBhcmUgIm1heWJlIiBmbGFnczsgZm9yIE5GKkQgdGhlcmUgYXJlIG5vIHN1Y2ggZmxhZ3MKKwkgKiAgICAgICAgICAgICAgdGhlIGxvd2VyIGJpdHMgYXJlICJubyIgZmxhZ3MgZm9yIGFsbCBmb3JtcywgaW4gdGhlIHNhbWUgb3JkZXIKKwkgKiAgICAgICAgICAgICAgYXMgdGhlICJtYXliZSIgZmxhZ3MsCisJICogICAgICAgICAgICAgIHdoaWNoIGlzIChNU0IgdG8gTFNCKTogTkZLRCBORkQgTkZLQyBORkMKKwkgKiAgNS4uNCAgICBRQ19BTllfTUFZQkUKKwkgKiAgMy4uMCAgICBRQ19BTllfTk8KKwkgKiAgICAgICAgICAgICAgc2VlIGZ1cnRoZXIgcmVsYXRlZCBjb25zdGFudHMKKwkgKgorCSAqCisJICogLSBFeHRyYSBkYXRhIHBlciBjb2RlIHBvaW50CisJICoKKwkgKiAiRXh0cmEgZGF0YSIgaXMgcmVmZXJlbmNlZCBieSB0aGUgaW5kZXggaW4gbm9ybTMyLgorCSAqIEl0IGlzIHZhcmlhYmxlLWxlbmd0aCBkYXRhLiBJdCBpcyBvbmx5IHByZXNlbnQsIGFuZCBvbmx5IHRob3NlIHBhcnRzCisJICogb2YgaXQgYXJlLCBhcyBuZWVkZWQgZm9yIGEgZ2l2ZW4gY2hhcmFjdGVyLgorCSAqIFRoZSBub3JtMzIgZXh0cmEgZGF0YSBpbmRleCBpcyBhZGRlZCB0byB0aGUgYmVnaW5uaW5nIG9mIGV4dHJhRGF0YVtdCisJICogdG8gZ2V0IHRvIGEgdmVjdG9yIG9mIDE2LWJpdCB3b3JkcyB3aXRoIGRhdGEgYXQgdGhlIGZvbGxvd2luZyBvZmZzZXRzOgorCSAqCisJICogWy0xXSAgICAgQ29tYmluaW5nIGluZGV4IGZvciBjb21wb3NpdGlvbi4KKwkgKiAgICAgICAgICAgICAgU3RvcmVkIG9ubHkgaWYgbm9ybTMyJkNPTUJJTkVTX0FOWSAuCisJICogWzBdICAgICAgTGVuZ3RocyBvZiB0aGUgY2Fub25pY2FsIGFuZCBjb21wYXRpYmlsaXR5IGRlY29tcG9zaXRpb24gc3RyaW5ncy4KKwkgKiAgICAgICAgICAgICAgU3RvcmVkIG9ubHkgaWYgdGhlcmUgYXJlIGRlY29tcG9zaXRpb25zLCBpLmUuLAorCSAqICAgICAgICAgICAgICBpZiBub3JtMzImKFFDX05GRHxRQ19ORktEKQorCSAqICAgICAgICAgIEhpZ2ggYnl0ZTogbGVuZ3RoIG9mIE5GS0QsIG9yIDAgaWYgbm9uZQorCSAqICAgICAgICAgIExvdyBieXRlOiBsZW5ndGggb2YgTkZELCBvciAwIGlmIG5vbmUKKwkgKiAgICAgICAgICBFYWNoIGxlbmd0aCBieXRlIGFsc28gaGFzIGFub3RoZXIgZmxhZzoKKwkgKiAgICAgICAgICAgICAgQml0IDcgb2YgYSBsZW5ndGggYnl0ZSBpcyBzZXQgaWYgdGhlcmUgYXJlIG5vbi16ZXJvCisJICogICAgICAgICAgICAgIGNvbWJpbmluZyBjbGFzc2VzIChjYydzKSBhc3NvY2lhdGVkIHdpdGggdGhlIHJlc3BlY3RpdmUKKwkgKiAgICAgICAgICAgICAgZGVjb21wb3NpdGlvbi4gSWYgdGhpcyBmbGFnIGlzIHNldCwgdGhlbiB0aGUgZGVjb21wb3NpdGlvbgorCSAqICAgICAgICAgICAgICBpcyBwcmVjZWRlZCBieSBhIDE2LWJpdCB3b3JkIHRoYXQgY29udGFpbnMgdGhlCisJICogICAgICAgICAgICAgIGxlYWRpbmcgYW5kIHRyYWlsaW5nIGNjJ3MuCisJICogICAgICAgICAgICAgIEJpdHMgNi4uMCBvZiBhIGxlbmd0aCBieXRlIGFyZSB0aGUgbGVuZ3RoIG9mIHRoZQorCSAqICAgICAgICAgICAgICBkZWNvbXBvc2l0aW9uIHN0cmluZywgbm90IGNvdW50aW5nIHRoZSBjYyB3b3JkLgorCSAqIFsxLi5uXSAgIE5GRAorCSAqIFtuKzEuLl0gIE5GS0QKKwkgKgorCSAqIEVhY2ggb2YgdGhlIHR3byBkZWNvbXBvc2l0aW9ucyBjb25zaXN0cyBvZiB1cCB0byB0d28gcGFydHM6CisJICogLSBUaGUgMTYtYml0IHdvcmRzIHdpdGggdGhlIGxlYWRpbmcgYW5kIHRyYWlsaW5nIGNjJ3MuCisJICogICBUaGlzIGlzIG9ubHkgc3RvcmVkIGlmIGJpdCA3IG9mIHRoZSBjb3JyZXNwb25kaW5nIGxlbmd0aCBieXRlCisJICogICBpcyBzZXQuIEluIHRoaXMgY2FzZSwgYXQgbGVhc3Qgb25lIG9mIHRoZSBjYydzIGlzIG5vdCB6ZXJvLgorCSAqICAgSGlnaCBieXRlOiBsZWFkaW5nIGNjPT1jYyBvZiB0aGUgZmlyc3QgY29kZSBwb2ludCBpbiB0aGUgZGVjb21wb3NpdGlvbiBzdHJpbmcKKwkgKiAgIExvdyBieXRlOiB0cmFpbGluZyBjYz09Y2Mgb2YgdGhlIGxhc3QgY29kZSBwb2ludCBpbiB0aGUgZGVjb21wb3NpdGlvbiBzdHJpbmcKKwkgKiAtIFRoZSBkZWNvbXBvc2l0aW9uIHN0cmluZyBpbiBVVEYtMTYsIHdpdGggbGVuZ3RoIGNvZGUgdW5pdHMuCisJICoKKwkgKgorCSAqIC0gQ29tYmluaW5nIGluZGV4ZXMgYW5kIGNvbWJpbmluZ1RhYmxlW10KKwkgKgorCSAqIENvbWJpbmluZyBpbmRleGVzIGFyZSBzdG9yZWQgYXQgdGhlIFstMV0gb2Zmc2V0IG9mIHRoZSBleHRyYSBkYXRhCisJICogaWYgdGhlIGNoYXJhY3RlciBjb21iaW5lcyBmb3J3YXJkIG9yIGJhY2t3YXJkIHdpdGggYW55IG90aGVyIGNoYXJhY3RlcnMuCisJICogVGhleSBhcmUgdXNlZCBmb3IgKHJlKWNvbXBvc2l0aW9uIGluIE5GKkMuCisJICogVmFsdWVzIG9mIGNvbWJpbmluZyBpbmRleGVzIGFyZSBhcnJhbmdlZCBhY2NvcmRpbmcgdG8gd2hldGhlciBhIGNoYXJhY3RlcgorCSAqIGNvbWJpbmVzIGZvcndhcmQsIGJhY2t3YXJkLCBvciBib3RoIHdheXM6CisJICogICAgZm9yd2FyZC1vbmx5IDwgYm90aCB3YXlzIDwgYmFja3dhcmQtb25seQorCSAqCisJICogVGhlIGluZGV4IHZhbHVlcyBmb3IgZm9yd2FyZC1vbmx5IGFuZCBib3RoLXdheXMgY29tYmluaW5nIGNoYXJhY3RlcnMKKwkgKiBhcmUgaW5kZXhlcyBpbnRvIHRoZSBjb21iaW5pbmdUYWJsZVtdLgorCSAqIFRoZSBpbmRleCB2YWx1ZXMgZm9yIGJhY2t3YXJkLW9ubHkgY29tYmluaW5nIGNoYXJhY3RlcnMgYXJlIHNpbXBseQorCSAqIGluY3JlbWVudGVkIGZyb20gdGhlIHByZWNlZGluZyBpbmRleCB2YWx1ZXMgdG8gYmUgdW5pcXVlLgorCSAqCisJICogSW4gdGhlIGNvbWJpbmluZ1RhYmxlW10sIGEgdmFyaWFibGUtbGVuZ3RoIGxpc3QKKwkgKiBvZiB2YXJpYWJsZS1sZW5ndGggKGJhY2staW5kZXgsIGNvZGUgcG9pbnQpIHBhaXIgZW50cmllcyBpcyBzdG9yZWQKKwkgKiBmb3IgZWFjaCBmb3J3YXJkLWNvbWJpbmluZyBjaGFyYWN0ZXIuCisJICoKKwkgKiBUaGVzZSBiYWNrLWluZGV4ZXMgYXJlIHRoZSBjb21iaW5pbmcgaW5kZXhlcyBvZiBib3RoLXdheXMgb3IgYmFja3dhcmQtb25seQorCSAqIGNvbWJpbmluZyBjaGFyYWN0ZXJzIHRoYXQgdGhlIGZvcndhcmQtY29tYmluaW5nIGNoYXJhY3RlciBjb21iaW5lcyB3aXRoLgorCSAqCisJICogRWFjaCBsaXN0IGlzIHNvcnRlZCBpbiBhc2NlbmRpbmcgb3JkZXIgb2YgYmFjay1pbmRleGVzLgorCSAqIEVhY2ggbGlzdCBpcyB0ZXJtaW5hdGVkIHdpdGggdGhlIGxhc3QgYmFjay1pbmRleCBoYXZpbmcgYml0IDE1IHNldC4KKwkgKgorCSAqIEVhY2ggcGFpciAoYmFjay1pbmRleCwgY29kZSBwb2ludCkgdGFrZXMgdXAgZWl0aGVyIDIgb3IgMworCSAqIDE2LWJpdCB3b3Jkcy4KKwkgKiBUaGUgZmlyc3Qgd29yZCBvZiBhIGxpc3QgZW50cnkgaXMgdGhlIGJhY2staW5kZXgsIHdpdGggaXRzIGJpdCAxNSBzZXQgaWYKKwkgKiB0aGlzIGlzIHRoZSBsYXN0IHBhaXIgaW4gdGhlIGxpc3QuCisJICoKKwkgKiBUaGUgc2Vjb25kIHdvcmQgY29udGFpbnMgZmxhZ3MgaW4gYml0cyAxNS4uMTMgdGhhdCBkZXRlcm1pbmUKKwkgKiBpZiB0aGVyZSBpcyBhIHRoaXJkIHdvcmQgYW5kIGhvdyB0aGUgY29tYmluZWQgY2hhcmFjdGVyIGlzIGVuY29kZWQ6CisJICogMTUgICBzZXQgaWYgdGhlcmUgaXMgYSB0aGlyZCB3b3JkIGluIHRoaXMgbGlzdCBlbnRyeQorCSAqIDE0ICAgc2V0IGlmIHRoZSByZXN1bHQgaXMgYSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcgorCSAqIDEzICAgc2V0IGlmIHRoZSByZXN1bHQgaXRzZWxmIGNvbWJpbmVzIGZvcndhcmQKKwkgKgorCSAqIEFjY29yZGluZyB0byB0aGVzZSBiaXRzIDE1Li4xNCBvZiB0aGUgc2Vjb25kIHdvcmQsCisJICogdGhlIHJlc3VsdCBjaGFyYWN0ZXIgaXMgZW5jb2RlZCBhcyBmb2xsb3dzOgorCSAqIDAwIG9yIDAxIFRoZSByZXN1bHQgaXMgPD0weDFmZmYgYW5kIHN0b3JlZCBpbiBiaXRzIDEyLi4wIG9mCisJICogICAgICAgICAgdGhlIHNlY29uZCB3b3JkLgorCSAqIDEwICAgICAgIFRoZSByZXN1bHQgaXMgMHgyMDAwLi4weGZmZmYgYW5kIHN0b3JlZCBpbiB0aGUgdGhpcmQgd29yZC4KKwkgKiAgICAgICAgICBCaXRzIDEyLi4wIG9mIHRoZSBzZWNvbmQgd29yZCBhcmUgbm90IHVzZWQuCisJICogMTEgICAgICAgVGhlIHJlc3VsdCBpcyBhIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyLgorCSAqICAgICAgICAgIEJpdHMgOS4uMCBvZiB0aGUgbGVhZGluZyBzdXJyb2dhdGUgYXJlIGluIGJpdHMgOS4uMCBvZgorCSAqICAgICAgICAgIHRoZSBzZWNvbmQgd29yZC4KKwkgKiAgICAgICAgICBBZGQgMHhkODAwIHRvIHRoZXNlIGJpdHMgdG8gZ2V0IHRoZSBjb21wbGV0ZSBzdXJyb2dhdGUuCisJICogICAgICAgICAgQml0cyAxMi4uMTAgb2YgdGhlIHNlY29uZCB3b3JkIGFyZSBub3QgdXNlZC4KKwkgKiAgICAgICAgICBUaGUgdHJhaWxpbmcgc3Vycm9nYXRlIGlzIHN0b3JlZCBpbiB0aGUgdGhpcmQgd29yZC4KKwkgKgorCSAqCisJICogLSBGQ0QgdHJpZQorCSAqCisJICogVGhlIEZDRCB0cmllIGlzIHZlcnkgc2ltcGxlLgorCSAqIEl0IGlzIGEgZm9sZGVkIHRyaWUgd2l0aCAxNi1iaXQgZGF0YSB3b3Jkcy4KKwkgKiBJbiBlYWNoIHdvcmQsIHRoZSBoaWdoIGJ5dGUgY29udGFpbnMgdGhlIGxlYWRpbmcgY2Mgb2YgdGhlIGNoYXJhY3RlciwKKwkgKiBhbmQgdGhlIGxvdyBieXRlIGNvbnRhaW5zIHRoZSB0cmFpbGluZyBjYyBvZiB0aGUgY2hhcmFjdGVyLgorCSAqIFRoZXNlIGNjJ3MgYXJlIHRoZSBjYydzIG9mIHRoZSBmaXJzdCBhbmQgbGFzdCBjb2RlIHBvaW50cyBpbiB0aGUKKwkgKiBjYW5vbmljYWwgZGVjb21wb3NpdGlvbiBvZiB0aGUgY2hhcmFjdGVyLgorCSAqCisJICogU2luY2UgYWxsIDE2IGJpdHMgYXJlIHVzZWQgZm9yIGNjJ3MsIGxlYWQgc3Vycm9nYXRlcyBtdXN0IGJlIHRlc3RlZAorCSAqIGJ5IGNoZWNraW5nIHRoZSBjb2RlIHVuaXQgaW5zdGVhZCBvZiB0aGUgdHJpZSBkYXRhLgorCSAqIFRoaXMgaXMgZG9uZSBvbmx5IGlmIHRoZSAxNi1iaXQgZGF0YSB3b3JkIGlzIG5vdCB6ZXJvLgorCSAqIElmIHRoZSBjb2RlIHVuaXQgaXMgYSBsZWFkaW5nIHN1cnJvZ2F0ZSBhbmQgdGhlIGRhdGEgd29yZCBpcyBub3QgemVybywKKwkgKiB0aGVuIGluc3RlYWQgb2YgY2MncyBpdCBjb250YWlucyB0aGUgb2Zmc2V0IGZvciB0aGUgc2Vjb25kIHRyaWUgbG9va3VwLgorCSAqCisJICoKKwkgKiAtIEF1eGlsaWFyeSB0cmllIGFuZCBkYXRhCisJICoKKwkgKgorCSAqIFRoZSBhdXhpbGlhcnkgMTYtYml0IHRyaWUgY29udGFpbnMgZGF0YSBmb3IgYWRkaXRpb25hbCBwcm9wZXJ0aWVzLgorCSAqIEJpdHMKKwkgKiAxNS4uMTIgICByZXNlcnZlZCAoZm9yIHNraXBwYWJsZSBmbGFncywgc2VlIE5vcm1hbGl6ZXJUcmFuc2xpdGVyYXRvcikKKwkgKiAgICAgMTEgICBmbGFnOiBub3QgYSBzYWZlIHN0YXJ0ZXIgZm9yIGNhbm9uaWNhbCBjbG9zdXJlCisJICogICAgIDEwICAgY29tcG9zaXRpb24gZXhjbHVzaW9uCisJICogIDkuLiAwICAgaW5kZXggaW50byBleHRyYURhdGFbXSB0byBGQ19ORktDX0Nsb3N1cmUgc3RyaW5nCisJICogICAgICAgICAgKG5vdCBmb3IgbGVhZCBzdXJyb2dhdGUpLAorCSAqICAgICAgICAgIG9yIGxlYWQgc3Vycm9nYXRlIG9mZnNldCAoZm9yIGxlYWQgc3Vycm9nYXRlLCBpZiA5Li4wIG5vdCB6ZXJvKQorCSAqCisJICogLSBGQ19ORktDX0Nsb3N1cmUgc3RyaW5ncyBpbiBleHRyYURhdGFbXQorCSAqCisJICogU3RyaW5ncyBhcmUgZWl0aGVyIHN0b3JlZCBhcyBhIHNpbmdsZSBjb2RlIHVuaXQgb3IgYXMgdGhlIGxlbmd0aAorCSAqIGZvbGxvd2VkIGJ5IHRoYXQgbWFueSB1bml0cy4KKwkgKiAKKyAgICAgKiAtIHN0cnVjdHVyZSBpbnNpZGUgY2Fub25TdGFydFNldHNbXQorCSAqCisJICogVGhpcyBhcnJheSBtYXBzIGZyb20gY29kZSBwb2ludHMgYyB0byBzZXRzIG9mIGNvZGUgcG9pbnRzIChVU2VyaWFsaXplZFNldCkuCisJICogVGhlIHJlc3VsdCBzZXRzIGFyZSB0aGUgY29kZSBwb2ludHMgd2hvc2UgY2Fub25pY2FsIGRlY29tcG9zaXRpb25zIHN0YXJ0CisJICogd2l0aCBjLgorCSAqCisJICogY2Fub25TdGFydFNldHNbXSBjb250YWlucyB0aGUgZm9sbG93aW5nIHN1Yi1hcnJheXM6CisJICoKKwkgKiBpbmRleGVzW19OT1JNX1NFVF9JTkRFWF9UT1BdCisJICogICAtIGNvbnRhaW5zIGxlbmd0aHMgb2Ygc3ViLWFycmF5cyBldGMuCisJICoKKwkgKiBzdGFydFNldHNbaW5kZXhlc1tfTk9STV9TRVRfSU5ERVhfQ0FOT05fU0VUU19MRU5HVEhdLV9OT1JNX1NFVF9JTkRFWF9UT1BdCisJICogICAtIGNvbnRhaW5zIHNlcmlhbGl6ZWQgc2V0cyAoVVNlcmlhbGl6ZWRTZXQpIG9mIGNhbm9uaWNhbCBzdGFydGVycyBmb3IKKwkgKiAgICAgZW51bWVyYXRpbmcgY2Fub25pY2FsbHkgZXF1aXZhbGVudCBzdHJpbmdzCisJICogICAgIGluZGV4ZXNbX05PUk1fU0VUX0lOREVYX0NBTk9OX1NFVFNfTEVOR1RIXSBpbmNsdWRlcyBfTk9STV9TRVRfSU5ERVhfVE9QCisJICogICAgIGZvciBkZXRhaWxzIGFib3V0IHRoZSBzdHJ1Y3R1cmUgc2VlIHVzZXQuYworCSAqCisJICogYm1wVGFibGVbaW5kZXhlc1tfTk9STV9TRVRfSU5ERVhfQ0FOT05fQk1QX1RBQkxFX0xFTkdUSF1dCisJICogICAtIGEgc29ydGVkIHNlYXJjaCB0YWJsZSBmb3IgQk1QIGNvZGUgcG9pbnRzIHdob3NlIHJlc3VsdHMgYXJlCisJICogICAgIGVpdGhlciBpbmRleGVzIHRvIFVTZXJpYWxpemVkU2V0cyBvciBzaW5nbGUgY29kZSBwb2ludHMgZm9yCisJICogICAgIHNpbmdsZS1jb2RlIHBvaW50IHNldHM7CisJICogICAgIGVhY2ggZW50cnkgaXMgYSBwYWlyIG9mIHsgY29kZSBwb2ludCwgcmVzdWx0IH0gd2l0aCByZXN1bHQ9KGJpbmFyeSkgeXkgeHh4eHh4IHh4eHh4eHh4CisJICogICAgIGlmIHl5PT0wMSB0aGVuIHRoZXJlIGlzIGEgVVNlcmlhbGl6ZWRTZXQgYXQgY2Fub25TdGFydFNldHMreAorCSAqICAgICBlbHNlIGJ1aWxkIGEgVVNlcmlhbGl6ZWRTZXQgd2l0aCByZXN1bHQgYXMgdGhlIHNpbmdsZSBjb2RlIHBvaW50CisJICoKKwkgKiBzdXBwVGFibGVbaW5kZXhlc1tfTk9STV9TRVRfSU5ERVhfQ0FOT05fU1VQUF9UQUJMRV9MRU5HVEhdXQorCSAqICAgLSBhIHNvcnRlZCBzZWFyY2ggdGFibGUgZm9yIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMgd2hvc2UgcmVzdWx0cyBhcmUKKwkgKiAgICAgZWl0aGVyIGluZGV4ZXMgdG8gVVNlcmlhbGl6ZWRTZXRzIG9yIHNpbmdsZSBjb2RlIHBvaW50cyBmb3IKKwkgKiAgICAgc2luZ2xlLWNvZGUgcG9pbnQgc2V0czsKKwkgKiAgICAgZWFjaCBlbnRyeSBpcyBhIHRyaXBsZXQgb2YgeyBoaWdoMTYoY3ApLCBsb3cxNihjcCksIHJlc3VsdCB9CisJICogICAgIGVhY2ggY29kZSBwb2ludCdzIGhpZ2gtd29yZCBtYXkgY29udGFpbiBleHRyYSBkYXRhIGluIGJpdHMgMTUuLjU6CisJICogICAgIGlmIHRoZSBoaWdoIHdvcmQgaGFzIGJpdCAxNSBzZXQsIHRoZW4gYnVpbGQgYSBzZXQgd2l0aCBhIHNpbmdsZSBjb2RlIHBvaW50CisJICogICAgIHdoaWNoIGlzICgoKGhpZ2gxNihjcCkmMHgxZjAwKTw8OCl8cmVzdWx0OworCSAqICAgICBlbHNlIHRoZXJlIGlzIGEgVVNlcmlhbGl6ZWRTZXQgYXQgY2Fub25TdGFydFNldHMrcmVzdWx0CisJICovCitmaW5hbCBjbGFzcyBOb3JtYWxpemVyRGF0YVJlYWRlciB7CisJcHJpdmF0ZSBmaW5hbCBzdGF0aWMgYm9vbGVhbiBkZWJ1ZyA9IElDVURlYnVnLmVuYWJsZWQoIk5vcm1hbGl6ZXJEYXRhUmVhZGVyIik7CisJCisgICAvKioKKyAgICAqIDxwPlByb3RlY3RlZCBjb25zdHJ1Y3Rvci48L3A+CisgICAgKiBAcGFyYW0gaW5wdXRTdHJlYW0gSUNVIHVwcm9wLmRhdCBmaWxlIGlucHV0IHN0cmVhbQorICAgICogQGV4Y2VwdGlvbiBJT0V4Y2VwdGlvbiB0aHJvdyBpZiBkYXRhIGZpbGUgZmFpbHMgYXV0aGVudGljYXRpb24gCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgTm9ybWFsaXplckRhdGFSZWFkZXIoSW5wdXRTdHJlYW0gaW5wdXRTdHJlYW0pIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbnsKKyAgICAgICAgaWYoZGVidWcpIFN5c3RlbS5vdXQucHJpbnRsbigiQnl0ZXMgaW4gaW5wdXRTdHJlYW0gIiArIGlucHV0U3RyZWFtLmF2YWlsYWJsZSgpKTsKKyAgICAgICAgCisgICAgICAgIElDVUJpbmFyeS5yZWFkSGVhZGVyKGlucHV0U3RyZWFtLCBEQVRBX0ZPUk1BVF9JRCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERBVEFfRk9STUFUX1ZFUlNJT04pOworICAgICAgICAKKyAgICAgICAgaWYoZGVidWcpIFN5c3RlbS5vdXQucHJpbnRsbigiQnl0ZXMgbGVmdCBpbiBpbnB1dFN0cmVhbSAiICtpbnB1dFN0cmVhbS5hdmFpbGFibGUoKSk7CisgICAgICAgIAorICAgICAgICBkYXRhSW5wdXRTdHJlYW0gPSBuZXcgRGF0YUlucHV0U3RyZWFtKGlucHV0U3RyZWFtKTsKKyAgICAgICAgCisgICAgICAgIGlmKGRlYnVnKSBTeXN0ZW0ub3V0LnByaW50bG4oIkJ5dGVzIGxlZnQgaW4gZGF0YUlucHV0U3RyZWFtICIgK2RhdGFJbnB1dFN0cmVhbS5hdmFpbGFibGUoKSk7CisgICAgfQorICAgIAorICAgIC8vIHByb3RlY3RlZCBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBwcm90ZWN0ZWQgaW50W10gcmVhZEluZGV4ZXMoaW50IGxlbmd0aCl0aHJvd3MgSU9FeGNlcHRpb257CisgICAgICAgIGludFtdIGluZGV4ZXMgPSBuZXcgaW50W2xlbmd0aF07CisgICAgICAgIC8vUmVhZCB0aGUgaW5kZXhlcworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8bGVuZ3RoIDsgaSsrKSB7CisgICAgICAgICAgICAgaW5kZXhlc1tpXSA9IGRhdGFJbnB1dFN0cmVhbS5yZWFkSW50KCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGluZGV4ZXM7CisgICAgfSAKKyAgICAvKioKKyAgICAqIDxwPlJlYWRzIHVub3JtLmljdSwgcGFyc2UgaXQgaW50byBibG9ja3Mgb2YgZGF0YSB0byBiZSBzdG9yZWQgaW4KKyAgICAqIE5vcm1hbGl6ZXJJbXBsLjwvUAorICAgICogQHBhcmFtIG5vcm1CeXRlcworICAgICogQHBhcmFtIGZjZEJ5dGVzCisgICAgKiBAcGFyYW0gYXV4Qnl0ZXMKKyAgICAqIEBwYXJhbSBleHRyYURhdGEKKyAgICAqIEBwYXJhbSBjb21iaW5pbmdUYWJsZQorICAgICogQHBhcmFtIGNhbm9uU3RhcnRTZXRzCisgICAgKiBAZXhjZXB0aW9uIHRocm93biB3aGVuIGRhdGEgcmVhZGluZyBmYWlscworICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgcmVhZChieXRlW10gbm9ybUJ5dGVzLCBieXRlW10gZmNkQnl0ZXMsIGJ5dGVbXSBhdXhCeXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBleHRyYURhdGEsIGNoYXJbXSBjb21iaW5pbmdUYWJsZSwgCisgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3RbXSBjYW5vblN0YXJ0U2V0cykgCisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb257CisKKwkgCS8vUmVhZCB0aGUgYnl0ZXMgdGhhdCBtYWtlIHVwIHRoZSBub3JtVHJpZSAJCisJIAlkYXRhSW5wdXRTdHJlYW0ucmVhZChub3JtQnl0ZXMpOworICAgICAgICAKKwkgCS8vbm9ybVRyaWVTdHJlYW09IG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbShub3JtQnl0ZXMpOworCisJIAkvL1JlYWQgdGhlIGV4dHJhIGRhdGEKKwkgCWZvcihpbnQgaT0wO2k8ZXh0cmFEYXRhLmxlbmd0aDtpKyspeworCSAJCWV4dHJhRGF0YVtpXT1kYXRhSW5wdXRTdHJlYW0ucmVhZENoYXIoKTsKKwkgCX0KKwkgCQorCSAJLy9SZWFkIHRoZSBjb21iaW5pbmcgY2xhc3MgdGFibGUKKwkgCWZvcihpbnQgaT0wOyBpPGNvbWJpbmluZ1RhYmxlLmxlbmd0aDsgaSsrKXsKKwkgCQljb21iaW5pbmdUYWJsZVtpXT1kYXRhSW5wdXRTdHJlYW0ucmVhZENoYXIoKTsKKwkgCX0KKwkgCQorCSAJLy9SZWFkIHRoZSBmY2RUcmllCisJIAlkYXRhSW5wdXRTdHJlYW0ucmVhZChmY2RCeXRlcyk7CisJIAkKKwkgCQorCSAJLy9SZWFkIHRoZSBBdXhUcmllCSAJCisgICAgICAgIGRhdGFJbnB1dFN0cmVhbS5yZWFkKGF1eEJ5dGVzKTsKKwkJCisJCS8vUmVhZCB0aGUgY2Fub25pY2FsIHN0YXJ0IHNldHMKKwkJaW50W10gY2Fub25TdGFydFNldHNJbmRleGVzID0gbmV3IGludFtOb3JtYWxpemVySW1wbC5TRVRfSU5ERVhfVE9QXTsKKwkJCisgICAgICAgIGZvcihpbnQgaT0wOyBpPGNhbm9uU3RhcnRTZXRzSW5kZXhlcy5sZW5ndGg7IGkrKyl7CisJIAkJY2Fub25TdGFydFNldHNJbmRleGVzW2ldPWRhdGFJbnB1dFN0cmVhbS5yZWFkQ2hhcigpOworCSAJfQorCQkKKyAgICAgICAgY2hhcltdIHN0YXJ0U2V0cyA9IG5ldyBjaGFyW2Nhbm9uU3RhcnRTZXRzSW5kZXhlc1tOb3JtYWxpemVySW1wbC5TRVRfSU5ERVhfQ0FOT05fU0VUU19MRU5HVEhdLU5vcm1hbGl6ZXJJbXBsLlNFVF9JTkRFWF9UT1BdOworICAgICAgICAKKyAgICAgICAgZm9yKGludCBpPTA7IGk8c3RhcnRTZXRzLmxlbmd0aDsgaSsrKXsKKwkgCQlzdGFydFNldHNbaV09ZGF0YUlucHV0U3RyZWFtLnJlYWRDaGFyKCk7CisJIAl9CisJIAljaGFyW10gYm1wVGFibGUgID0gbmV3IGNoYXJbY2Fub25TdGFydFNldHNJbmRleGVzW05vcm1hbGl6ZXJJbXBsLlNFVF9JTkRFWF9DQU5PTl9CTVBfVEFCTEVfTEVOR1RIXV07CisgICAgICAgIGZvcihpbnQgaT0wOyBpPGJtcFRhYmxlLmxlbmd0aDsgaSsrKXsKKwkgCQlibXBUYWJsZVtpXT1kYXRhSW5wdXRTdHJlYW0ucmVhZENoYXIoKTsKKwkgCX0JCQorCQljaGFyW10gc3VwcFRhYmxlID0gbmV3IGNoYXJbY2Fub25TdGFydFNldHNJbmRleGVzW05vcm1hbGl6ZXJJbXBsLlNFVF9JTkRFWF9DQU5PTl9TVVBQX1RBQkxFX0xFTkdUSF1dOworICAgICAgICBmb3IoaW50IGk9MDsgaTxzdXBwVGFibGUubGVuZ3RoOyBpKyspeworCSAJCXN1cHBUYWJsZVtpXT1kYXRhSW5wdXRTdHJlYW0ucmVhZENoYXIoKTsKKwkgCX0KKwkgCWNhbm9uU3RhcnRTZXRzW05vcm1hbGl6ZXJJbXBsLkNBTk9OX1NFVF9JTkRJQ0lFU19JTkRFWCAgXSA9IGNhbm9uU3RhcnRTZXRzSW5kZXhlczsKKwkgCWNhbm9uU3RhcnRTZXRzW05vcm1hbGl6ZXJJbXBsLkNBTk9OX1NFVF9TVEFSVF9TRVRTX0lOREVYXSA9IHN0YXJ0U2V0czsKKwkgCWNhbm9uU3RhcnRTZXRzW05vcm1hbGl6ZXJJbXBsLkNBTk9OX1NFVF9CTVBfVEFCTEVfSU5ERVgJXSA9IGJtcFRhYmxlOworCSAJY2Fub25TdGFydFNldHNbTm9ybWFsaXplckltcGwuQ0FOT05fU0VUX1NVUFBfVEFCTEVfSU5ERVhdID0gc3VwcFRhYmxlOwkgCQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgYnl0ZVtdIGdldERhdGFGb3JtYXRWZXJzaW9uKCl7CisgICAgICAgIHJldHVybiBEQVRBX0ZPUk1BVF9WRVJTSU9OOworICAgIH0KKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAKKworICAgIC8qKgorICAgICogSUNVIGRhdGEgZmlsZSBpbnB1dCBzdHJlYW0KKyAgICAqLworICAgIHByaXZhdGUgRGF0YUlucHV0U3RyZWFtIGRhdGFJbnB1dFN0cmVhbTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8qKgorICAgICogRmlsZSBmb3JtYXQgdmVyc2lvbiB0aGF0IHRoaXMgY2xhc3MgdW5kZXJzdGFuZHMuCisgICAgKiBObyBndWFyYW50ZWVzIGFyZSBtYWRlIGlmIGEgb2xkZXIgdmVyc2lvbiBpcyB1c2VkCisgICAgKiBzZWUgc3RvcmUuYyBvZiBnZW5ub3JtIGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCB2YWx1ZXMKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgREFUQV9GT1JNQVRfSURbXSA9IHsoYnl0ZSkweDRFLCAoYnl0ZSkweDZGLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkweDcyLCAoYnl0ZSkweDZEfTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIERBVEFfRk9STUFUX1ZFUlNJT05bXSA9IHsoYnl0ZSkweDIsIChieXRlKTB4MSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKTB4NSwgKGJ5dGUpMHgyfTsKKwkKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL05vcm1hbGl6ZXJJbXBsLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9Ob3JtYWxpemVySW1wbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0YWE5ZTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9Ob3JtYWxpemVySW1wbC5qYXZhCkBAIC0wLDAgKzEsMzM5OCBAQAorIC8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL05vcm1hbGl6ZXJJbXBsLmphdmEsdiAkCisgKiAkRGF0ZTogMjAwMi8wOC8wNyAxODowNzo1NiAkCisgKiAkUmV2aXNpb246IDEuMTAgJAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworIAorcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworaW1wb3J0IGphdmEuaW8uKjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTm9ybWFsaXplcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OwkKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CisvKioKKyAqIEB2ZXJzaW9uIAkxLjAKKyAqIEBhdXRob3IgIFJhbSBWaXN3YW5hZGhhCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBOb3JtYWxpemVySW1wbCB7CisJLy8gU3RhdGljIGJsb2NrIGZvciB0aGUgY2xhc3MgdG8gaW5pdGlhbGl6ZSBpdHMgb3duIHNlbGYgCisJc3RhdGljIGZpbmFsIE5vcm1hbGl6ZXJJbXBsIElNUEw7CisJCisJc3RhdGljCisgICAgeworICAgICAgICB0cnkKKyAgICAgICAgeworICAgICAgICAgICAgSU1QTCA9IG5ldyBOb3JtYWxpemVySW1wbCgpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkKKyAgICAgICAgeworICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorCQorCXN0YXRpYyBmaW5hbCBpbnQgVU5TSUdORURfQllURV9NQVNLID0weEZGOworCXN0YXRpYyBmaW5hbCBsb25nIFVOU0lHTkVEX0lOVF9NQVNLID0gMHhmZmZmZmZmZkw7CisJLyoKKwkgKiBUaGlzIG5ldyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbm9ybWFsaXphdGlvbiBjb2RlIGxvYWRzIGl0cyBkYXRhIGZyb20KKwkgKiB1bm9ybS5pY3UsIHdoaWNoIGlzIGdlbmVyYXRlZCB3aXRoIHRoZSBnZW5ub3JtIHRvb2wuCisJICogVGhlIGZvcm1hdCBvZiB0aGF0IGZpbGUgaXMgZGVzY3JpYmVkIGF0IHRoZSBlbmQgb2YgdGhpcyBmaWxlLgorCSAqLworCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBEQVRBX0ZJTEVfTkFNRSA9ICJkYXRhL3Vub3JtLmljdSI7CisJCisJLy8gbm9ybTMyIHZhbHVlIGNvbnN0YW50cyAKKwkKKyAgICAvLyBxdWljayBjaGVjayBmbGFncyAwLi4zIHNldCBtZWFuICJubyIgZm9yIHRoZWlyIGZvcm1zIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFFDX05GQz0weDExOyAgICAgICAgICAvKiBub3xtYXliZSAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFFDX05GS0M9MHgyMjsgICAgICAgICAvKiBub3xtYXliZSAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFFDX05GRD00OyAgICAgICAgICAgICAvKiBubyAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFFDX05GS0Q9ODsgICAgICAgICAgICAvKiBubyAqLworCQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBRQ19BTllfTk89MHhmOworCisgICAgLyogcXVpY2sgY2hlY2sgZmxhZ3MgNC4uNSBtZWFuICJtYXliZSIgZm9yIHRoZWlyIGZvcm1zOyAKKyAgICAgKiB0ZXN0IGZsYWdzPj1RQ19NQVlCRSAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBRQ19NQVlCRT0weDEwOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFFDX0FOWV9NQVlCRT0weDMwOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUUNfTUFTSz0weDNmOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENPTUJJTkVTX0ZXRD0weDQwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDT01CSU5FU19CQUNLPTB4ODA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENPTUJJTkVTX0FOWT0weGMwOworICAgIC8vIFVuaWNvZGVEYXRhLnR4dCBjb21iaW5pbmcgY2xhc3MgaW4gYml0cyAxNS4KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0NfU0hJRlQ9ODsgICAgICAgICAgIAkJICAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDQ19NQVNLPTB4ZmYwMDsKKyAgICAvLyAxNiBiaXRzIGZvciB0aGUgaW5kZXggdG8gVUNoYXJzIGFuZCBvdGhlciBleHRyYSBkYXRhCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYVFJBX1NISUZUPTE2OworICAgIC8vIHN0YXJ0IG9mIHN1cnJvZ2F0ZSBzcGVjaWFscyBhZnRlciBzaGlmdCAgICAgICAgICAgICAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhUUkFfSU5ERVhfVE9QPTB4ZmMwMDsgICAgICAgCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhUUkFfU1VSUk9HQVRFX01BU0s9MHgzZmY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYVFJBX1NVUlJPR0FURV9UT1A9MHgzZjA7ICAgIC8qIGhhbmd1bCBldGMuICovCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhUUkFfSEFOR1VMPUVYVFJBX1NVUlJPR0FURV9UT1A7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYVFJBX0pBTU9fTD1FWFRSQV9TVVJST0dBVEVfVE9QKzE7LyogIyMjIG5vdCB1c2VkICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYVFJBX0pBTU9fVj1FWFRSQV9TVVJST0dBVEVfVE9QKzI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYVFJBX0pBTU9fVD1FWFRSQV9TVVJST0dBVEVfVE9QKzM7CisJCisJLyogbm9ybTMyIHZhbHVlIGNvbnN0YW50cyB1c2luZyA+MTYgYml0cyAqLworCXByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgIE1JTl9TUEVDSUFMICAgID0gIChsb25nKSgweGZjMDAwMDAwICYgVU5TSUdORURfSU5UX01BU0spOworCXByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgIFNVUlJPR0FURVNfVE9QID0gIChsb25nKSgweGZmZjAwMDAwICYgVU5TSUdORURfSU5UX01BU0spOworCXByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgIE1JTl9IQU5HVUwgICAgID0gIChsb25nKSgweGZmZjAwMDAwICYgVU5TSUdORURfSU5UX01BU0spOworCXByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgIE1JTl9KQU1PX1YgICAgID0gIChsb25nKSgweGZmZjIwMDAwICYgVU5TSUdORURfSU5UX01BU0spOworCXByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgIEpBTU9fVl9UT1AgICAgID0gIChsb25nKSgweGZmZjMwMDAwICYgVU5TSUdORURfSU5UX01BU0spOworCQorCQorCS8qIGluZGV4ZXNbXSB2YWx1ZSBuYW1lcyAqLworCS8qIG51bWJlciBvZiBieXRlcyBpbiBub3JtYWxpemF0aW9uIHRyaWUgKi8KKwlzdGF0aWMgZmluYWwgaW50IElOREVYX1RSSUVfU0laRSAJCSAgPSAwOworICAgICAvKiBudW1iZXIgb2YgY2hhcnMgaW4gZXh0cmEgZGF0YSAqLyAgICAgCisJc3RhdGljIGZpbmFsIGludCBJTkRFWF9DSEFSX0NPVU5UIAkJICA9IDE7ICAgIAorCS8qIG51bWJlciBvZiB1aW50MTZfdCB3b3JkcyBmb3IgY29tYmluaW5nIGRhdGEgKi8KKwlzdGF0aWMgZmluYWwgaW50IElOREVYX0NPTUJJTkVfREFUQV9DT1VOVCA9IDI7CisgICAgLyogbnVtYmVyIG9mIGNvZGUgcG9pbnRzIHRoYXQgY29tYmluZSBmb3J3YXJkICovICAgICAKKwlzdGF0aWMgZmluYWwgaW50IElOREVYX0NPTUJJTkVfRldEX0NPVU5UICA9IDM7CisgICAgLyogbnVtYmVyIG9mIGNvZGUgcG9pbnRzIHRoYXQgY29tYmluZSBmb3J3YXJkIGFuZCBiYWNrd2FyZCAqLyAgICAgCisJc3RhdGljIGZpbmFsIGludCBJTkRFWF9DT01CSU5FX0JPVEhfQ09VTlQgPSA0OworICAgIC8qIG51bWJlciBvZiBjb2RlIHBvaW50cyB0aGF0IGNvbWJpbmUgYmFja3dhcmQgKi8gICAgIAorCXN0YXRpYyBmaW5hbCBpbnQgSU5ERVhfQ09NQklORV9CQUNLX0NPVU5UID0gNTsgICAgIAorCSAvKiBmaXJzdCBjb2RlIHBvaW50IHdpdGggcXVpY2sgY2hlY2sgTkZDIE5PL01BWUJFICovCisJcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSU5ERVhfTUlOX05GQ19OT19NQVlCRSAgID0gNjsKKyAgICAvKiBmaXJzdCBjb2RlIHBvaW50IHdpdGggcXVpY2sgY2hlY2sgTkZLQyBOTy9NQVlCRSAqLyAgICAKKwlwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJTkRFWF9NSU5fTkZLQ19OT19NQVlCRSAgPSA3OworICAgICAvKiBmaXJzdCBjb2RlIHBvaW50IHdpdGggcXVpY2sgY2hlY2sgTkZEIE5PL01BWUJFICovICAgICAKKwlwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJTkRFWF9NSU5fTkZEX05PX01BWUJFICAgPSA4OworICAgIC8qIGZpcnN0IGNvZGUgcG9pbnQgd2l0aCBxdWljayBjaGVjayBORktEIE5PL01BWUJFICovICAgIAorCXB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElOREVYX01JTl9ORktEX05PX01BWUJFICA9IDk7ICAgICAKKwkvKiBudW1iZXIgb2YgYnl0ZXMgaW4gRkNEIHRyaWUgKi8KKwlzdGF0aWMgZmluYWwgaW50IElOREVYX0ZDRF9UUklFX1NJWkUgICAgICA9IDEwOworICAgIC8qIG51bWJlciBvZiBieXRlcyBpbiB0aGUgYXV4aWxpYXJ5IHRyaWUgKi8gICAgCisgICAgc3RhdGljIGZpbmFsIGludCBJTkRFWF9BVVhfVFJJRV9TSVpFICAgICAgPSAxMTsKKyAgICAvKiBudW1iZXIgb2YgdWludDE2X3QgaW4gdGhlIGFycmF5IG9mIHNlcmlhbGl6ZWQgVVNldCAqLyAgICAKKyAgICBzdGF0aWMgZmluYWwgaW50IElOREVYX0NBTk9OX1NFVF9DT1VOVCAgICA9IDEyOyAgICAKKyAgICAvKiBjaGFuZ2luZyB0aGlzIHJlcXVpcmVzIGEgbmV3IGZvcm1hdFZlcnNpb24gKi8KKwlzdGF0aWMgZmluYWwgaW50IElOREVYX1RPUCAgICAgICAgICAgICAgICA9IDMyOyAgICAKKwkKKwkKKwkvKiBBVVggY29uc3RhbnRzICovCisJLyogdmFsdWUgY29uc3RhbnRzIGZvciBhdXhUcmllICovCQorCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBBVVhfVU5TQUZFX1NISUZUCT0gMTE7CisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEFVWF9DT01QX0VYX1NISUZUCT0gMTA7CisJCisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEFVWF9NQVhfRk5DICAgICAgICA9ICAgKChpbnQpMTw8QVVYX0NPTVBfRVhfU0hJRlQpOworCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBBVVhfVU5TQUZFX01BU0sgICAgPSAgIChpbnQpKCgxPDxBVVhfVU5TQUZFX1NISUZUKSAmIFVOU0lHTkVEX0lOVF9NQVNLKTsKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQVVYX0ZOQ19NQVNLICAgICAgID0gICAoaW50KSgoQVVYX01BWF9GTkMtMSkgJiBVTlNJR05FRF9JTlRfTUFTSyk7CisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEFVWF9DT01QX0VYX01BU0sgICA9ICAgKGludCkoKDE8PEFVWF9DT01QX0VYX1NISUZUKSAmIFVOU0lHTkVEX0lOVF9NQVNLKTsKKwkKKwkvKiBjYW5vblN0YXJ0U2V0c1swLi4zMV0gY29udGFpbnMgaW5kZXhlcyBmb3Igd2hhdCBpcyBpbiB0aGUgYXJyYXkgKi8KKyAgICAvKiBudW1iZXIgb2YgdWludDE2X3QgaW4gY2Fub25pY2FsIHN0YXJ0ZXIgc2V0cyAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgU0VUX0lOREVYX0NBTk9OX1NFVFNfTEVOR1RICQk9IDA7CisgICAgLyogbnVtYmVyIG9mIHVpbnQxNl90IGluIHRoZSBCTVAgc2VhcmNoIHRhYmxlIChjb250YWlucyBwYWlycykgKi8gCisgICAgc3RhdGljIGZpbmFsIGludCBTRVRfSU5ERVhfQ0FOT05fQk1QX1RBQkxFX0xFTkdUSAk9IDE7CisgICAgLyogbnVtYmVyIG9mIHVpbnQxNl90IGluIHRoZSBzdXBwbGVtZW50YXJ5IHNlYXJjaCB0YWJsZShjb250YWlucyB0cmlwbGV0cykqLyAKKyAgICBzdGF0aWMgZmluYWwgaW50IFNFVF9JTkRFWF9DQU5PTl9TVVBQX1RBQkxFX0xFTkdUSCAgPSAyOworICAgIC8qIGNoYW5naW5nIHRoaXMgcmVxdWlyZXMgYSBuZXcgZm9ybWF0VmVyc2lvbiAqLyAKKyAgICBzdGF0aWMgZmluYWwgaW50IFNFVF9JTkRFWF9UT1AJCQkJCQk9IDMyOworCQorCXN0YXRpYyBmaW5hbCBpbnQgQ0FOT05fU0VUX0lORElDSUVTX0lOREVYICAJCQk9IDA7CisJc3RhdGljIGZpbmFsIGludCBDQU5PTl9TRVRfU1RBUlRfU0VUU19JTkRFWAkJCT0gMTsKKwlzdGF0aWMgZmluYWwgaW50IENBTk9OX1NFVF9CTVBfVEFCTEVfSU5ERVgJCQk9IDI7CisJc3RhdGljIGZpbmFsIGludCBDQU5PTl9TRVRfU1VQUF9UQUJMRV9JTkRFWAkJCT0gMzsKKwkvKiAxNCBiaXQgaW5kZXhlcyB0byBjYW5vbmljYWwgVVNlcmlhbGl6ZWRTZXRzICovCisJc3RhdGljIGZpbmFsIGludCBDQU5PTl9TRVRfTUFYX0NBTk9OX1NFVFMgICAgIAkJPSAweDQwMDA7IAorCS8qIHNpbmdsZS1jb2RlIHBvaW50IEJNUCBzZXRzIGFyZSBlbmNvZGVkIGRpcmVjdGx5IGluIHRoZSBzZWFyY2ggdGFibGUgCisgICAgICogZXhjZXB0IGlmIHJlc3VsdD0weDQwMDAuLjB4N2ZmZiAKKyAgICAgKi8KKwlzdGF0aWMgZmluYWwgaW50IENBTk9OX1NFVF9CTVBfTUFTSyAgICAgICAgCQkJPSAweGMwMDA7CisJc3RhdGljIGZpbmFsIGludCBDQU5PTl9TRVRfQk1QX0lTX0lOREVYICAgIAkJCT0gMHg0MDAwOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNQVhfQlVGRkVSX1NJWkUgICAgICAgICAgICAgICAgICAgID0gMjA7CisJCisgICAgLyoqCisJICogSW50ZXJuYWwgb3B0aW9uIGZvciBjbXBFcXVpdkZvbGQoKSBmb3IgZGVjb21wb3NpbmcuCisJICogSWYgbm90IHNldCwganVzdCBkbyBzdHJjYXNlY21wKCkuCisJICogQGludGVybmFsCisJICovCisJIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDT01QQVJFX0VRVUlWID0gMHg4MDAwMDsKKwkKKwkvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwkKKwkvKiBXcmFwcGVycyBmb3IgVHJpZSBpbXBsZW1lbnRhdGlvbnMgKi8gCisJc3RhdGljIGZpbmFsIGNsYXNzIE5vcm1UcmllSW1wbCBpbXBsZW1lbnRzIFRyaWUuRGF0YU1hbmlwdWxhdGV7CisJCXN0YXRpYyBJbnRUcmllIG5vcm1UcmllPSBudWxsOworCSAgIC8qKgorCSAgICAqIENhbGxlZCBieSBjb20uaWJtLmljdS51dGlsLlRyaWUgdG8gZXh0cmFjdCBmcm9tIGEgbGVhZCBzdXJyb2dhdGUncyAKKwkgICAgKiBkYXRhIHRoZSBpbmRleCBhcnJheSBvZmZzZXQgb2YgdGhlIGluZGV4ZXMgZm9yIHRoYXQgbGVhZCBzdXJyb2dhdGUuCisJICAgICogQHBhcmFtIHByb3BlcnR5IGRhdGEgdmFsdWUgZm9yIGEgc3Vycm9nYXRlIGZyb20gdGhlIHRyaWUsIGluY2x1ZGluZyAKKyAgICAgICAgKiAgICAgICAgIHRoZSBmb2xkaW5nIG9mZnNldAorCSAgICAqIEByZXR1cm4gZGF0YSBvZmZzZXQgb3IgMCBpZiB0aGVyZSBpcyBubyBkYXRhIGZvciB0aGUgbGVhZCBzdXJyb2dhdGUKKwkgICAgKi8KKwkgICAgcHVibGljIGludCBnZXRGb2xkaW5nT2Zmc2V0KGludCB2YWx1ZSl7CisgICAgICAgICAgICByZXR1cm4gIEJNUF9JTkRFWF9MRU5HVEgrCisgICAgICAgICAgICAgICAgICAgICgodmFsdWU+PihFWFRSQV9TSElGVC1TVVJST0dBVEVfQkxPQ0tfQklUUykpJgorICAgICAgICAgICAgICAgICAgICAoMHgzZmY8PFNVUlJPR0FURV9CTE9DS19CSVRTKSk7IAorCSAgICB9CisJCQorCX0KKwlzdGF0aWMgZmluYWwgY2xhc3MgRkNEVHJpZUltcGwgaW1wbGVtZW50cyBUcmllLkRhdGFNYW5pcHVsYXRleworCQlzdGF0aWMgQ2hhclRyaWUgZmNkVHJpZT1udWxsOworCSAgIC8qKgorCSAgICAqIENhbGxlZCBieSBjb20uaWJtLmljdS51dGlsLlRyaWUgdG8gZXh0cmFjdCBmcm9tIGEgbGVhZCBzdXJyb2dhdGUncyAKKwkgICAgKiBkYXRhIHRoZSBpbmRleCBhcnJheSBvZmZzZXQgb2YgdGhlIGluZGV4ZXMgZm9yIHRoYXQgbGVhZCBzdXJyb2dhdGUuCisJICAgICogQHBhcmFtIHByb3BlcnR5IGRhdGEgdmFsdWUgZm9yIGEgc3Vycm9nYXRlIGZyb20gdGhlIHRyaWUsIGluY2x1ZGluZworICAgICAgICAqICAgICAgICAgdGhlIGZvbGRpbmcgb2Zmc2V0CisJICAgICogQHJldHVybiBkYXRhIG9mZnNldCBvciAwIGlmIHRoZXJlIGlzIG5vIGRhdGEgZm9yIHRoZSBsZWFkIHN1cnJvZ2F0ZQorCSAgICAqLworCisJICAgIHB1YmxpYyBpbnQgZ2V0Rm9sZGluZ09mZnNldChpbnQgdmFsdWUpeworCQkJcmV0dXJuIHZhbHVlOworCSAgICB9CisJfQorCQorCXN0YXRpYyBmaW5hbCBjbGFzcyBBdXhUcmllSW1wbCBpbXBsZW1lbnRzIFRyaWUuRGF0YU1hbmlwdWxhdGV7CisJCXN0YXRpYyBDaGFyVHJpZSBhdXhUcmllID0gbnVsbDsKKwkgICAvKioKKwkgICAgKiBDYWxsZWQgYnkgY29tLmlibS5pY3UudXRpbC5UcmllIHRvIGV4dHJhY3QgZnJvbSBhIGxlYWQgc3Vycm9nYXRlJ3MgCisJICAgICogZGF0YSB0aGUgaW5kZXggYXJyYXkgb2Zmc2V0IG9mIHRoZSBpbmRleGVzIGZvciB0aGF0IGxlYWQgc3Vycm9nYXRlLgorCSAgICAqIEBwYXJhbSBwcm9wZXJ0eSBkYXRhIHZhbHVlIGZvciBhIHN1cnJvZ2F0ZSBmcm9tIHRoZSB0cmllLCBpbmNsdWRpbmcgCisgICAgICAgICogICAgICAgIHRoZSBmb2xkaW5nIG9mZnNldAorCSAgICAqIEByZXR1cm4gZGF0YSBvZmZzZXQgb3IgMCBpZiB0aGVyZSBpcyBubyBkYXRhIGZvciB0aGUgbGVhZCBzdXJyb2dhdGUKKwkgICAgKi8KKwkgICAgcHVibGljIGludCBnZXRGb2xkaW5nT2Zmc2V0KGludCB2YWx1ZSl7CisJICAgICAgICByZXR1cm4gKHZhbHVlJkFVWF9GTkNfTUFTSyk8PDU7CisJICAgIH0KKwl9CisJCSAKKwkvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwkKKwkKKwlzdGF0aWMgRkNEVHJpZUltcGwgZmNkVHJpZUltcGw7CisJc3RhdGljIE5vcm1UcmllSW1wbCBub3JtVHJpZUltcGw7CisJc3RhdGljIEF1eFRyaWVJbXBsIGF1eFRyaWVJbXBsOworCXByaXZhdGUgc3RhdGljIGludFtdIGluZGV4ZXM7CisJc3RhdGljIGNoYXJbXSBjb21iaW5pbmdUYWJsZTsKKwlzdGF0aWMgY2hhcltdIGV4dHJhRGF0YTsKKwlzdGF0aWMgT2JqZWN0W10gY2Fub25TdGFydFNldHM7CisJCisJc3RhdGljIGJvb2xlYW4gaXNEYXRhTG9hZGVkOworCXN0YXRpYyBib29sZWFuIGlzRm9ybWF0VmVyc2lvbl8yXzE7CisJLyoqCisgICAgICogRGVmYXVsdCBidWZmZXIgc2l6ZSBvZiBkYXRhZmlsZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBEQVRBX0JVRkZFUl9TSVpFID0gMjUwMDA7CisJCisJLyoqCisgICAgICogRkNEIGNoZWNrOiBldmVyeXRoaW5nIGJlbG93IHRoaXMgY29kZSBwb2ludCBpcyBrbm93biB0byBoYXZlIGEgMCAKKyAgICAgKiBsZWFkIGNvbWJpbmluZyBjbGFzcyAKKyAgICAgKi8KKwlwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNSU5fV0lUSF9MRUFEX0NDPTB4MzAwOworCisKKyAgICAvKioKKyAgICAgKiBCaXQgNyBvZiB0aGUgbGVuZ3RoIGJ5dGUgZm9yIGEgZGVjb21wb3NpdGlvbiBzdHJpbmcgaW4gZXh0cmEgZGF0YSBpcworICAgICAqIGEgZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGRlY29tcG9zaXRpb24gc3RyaW5nIGlzCisgICAgICogcHJlY2VkZWQgYnkgYSAxNi1iaXQgd29yZCB3aXRoIHRoZSBsZWFkaW5nIGFuZCB0cmFpbGluZyBjYworICAgICAqIG9mIHRoZSBkZWNvbXBvc2l0aW9uIChsaWtlIGZvciBBLXVtbGF1dCk7CisgICAgICogaWYgbm90LCB0aGVuIGJvdGggY2MncyBhcmUgemVybyAobGlrZSBmb3IgY29tcGF0aWJpbGl0eSBpZGVvZ3JhcGhzKS4KKyAgICAgKi8KKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVDT01QX0ZMQUdfTEVOR1RIX0hBU19DQz0weDgwOworICAgIC8qKgorCSAqIEJpdHMgNi4uMCBvZiB0aGUgbGVuZ3RoIGJ5dGUgY29udGFpbiB0aGUgYWN0dWFsIGxlbmd0aC4KKwkgKi8KKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVDT01QX0xFTkdUSF9NQVNLPTB4N2Y7ICAgCisJCisJLyoqIExlbmd0aCBvZiB0aGUgQk1QIHBvcnRpb24gb2YgdGhlIGluZGV4IChzdGFnZSAxKSBhcnJheS4gKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQk1QX0lOREVYX0xFTkdUSD0weDEwMDAwPj5UcmllLklOREVYX1NUQUdFXzFfU0hJRlRfOworICAgIC8qKiBOdW1iZXIgb2YgYml0cyBvZiBhIHRyYWlsIHN1cnJvZ2F0ZSB0aGF0IGFyZSB1c2VkIGluIGluZGV4IHRhYmxlIAorICAgICAqIGxvb2t1cHMuIAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTVVJST0dBVEVfQkxPQ0tfQklUUz0xMC1UcmllLklOREVYX1NUQUdFXzFfU0hJRlRfOworCisKKyAgIC8vIHB1YmxpYyB1dGlsaXR5CisgICBwdWJsaWMgc3RhdGljIGludCBnZXRGcm9tSW5kZXhlc0FycihpbnQgaW5kZXgpeworICAgICAgICByZXR1cm4gaW5kZXhlc1tpbmRleF07CisgICB9CisgICAKKyAgIC8vIHByb3RlY3RlZCBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAqIENvbnN0cnVjdG9yCisgICAgKiBAZXhjZXB0aW9uIHRocm93biB3aGVuIGRhdGEgcmVhZGluZyBmYWlscyBvciBkYXRhIGNvcnJ1cHRlZAorICAgICovCisgICAgcHJpdmF0ZSBOb3JtYWxpemVySW1wbCgpIHRocm93cyBJT0V4Y2VwdGlvbnsKKyAgICAgICAgLy9kYXRhIHNob3VsZCBiZSBsb2FkZWQgb25seSBvbmNlCisgICAgICAgIGlmKCFpc0RhdGFMb2FkZWQpeworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBqYXIgYWNjZXNzCisgICAgICAgICAgICBJbnB1dFN0cmVhbSBpID0gZ2V0Q2xhc3MoKS5nZXRSZXNvdXJjZUFzU3RyZWFtKERBVEFfRklMRV9OQU1FKTsKKyAgICAgICAgICAgIEJ1ZmZlcmVkSW5wdXRTdHJlYW0gYiA9IG5ldyBCdWZmZXJlZElucHV0U3RyZWFtKGksREFUQV9CVUZGRVJfU0laRSk7CisgICAgICAgICAgICBOb3JtYWxpemVyRGF0YVJlYWRlciByZWFkZXIgPSBuZXcgTm9ybWFsaXplckRhdGFSZWFkZXIoYik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIHJlYWQgdGhlIGluZGV4ZXMgICAgICAgICAgICAKKyAgICAgICAgICAgIGluZGV4ZXMgPSByZWFkZXIucmVhZEluZGV4ZXMoTm9ybWFsaXplckltcGwuSU5ERVhfVE9QKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYnl0ZVtdIG5vcm1CeXRlcyA9IG5ldyBieXRlW2luZGV4ZXNbTm9ybWFsaXplckltcGwuSU5ERVhfVFJJRV9TSVpFXV07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBjb21iaW5pbmdUYWJsZVRvcCA9IGluZGV4ZXNbTm9ybWFsaXplckltcGwuSU5ERVhfQ09NQklORV9EQVRBX0NPVU5UXTsKKyAgICAgICAgICAgIGNvbWJpbmluZ1RhYmxlID0gbmV3IGNoYXJbY29tYmluaW5nVGFibGVUb3BdOworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgZXh0cmFEYXRhVG9wID0gaW5kZXhlc1tOb3JtYWxpemVySW1wbC5JTkRFWF9DSEFSX0NPVU5UXTsKKyAgICAgICAgICAgIGV4dHJhRGF0YSA9IG5ldyBjaGFyW2V4dHJhRGF0YVRvcF07CisKKyAgICAgICAgICAgIGJ5dGVbXSBmY2RCeXRlcyA9IG5ldyBieXRlW2luZGV4ZXNbTm9ybWFsaXplckltcGwuSU5ERVhfRkNEX1RSSUVfU0laRV1dOworICAgICAgICAgICAgYnl0ZVtdIGF1eEJ5dGVzID0gbmV3IGJ5dGVbaW5kZXhlc1tOb3JtYWxpemVySW1wbC5JTkRFWF9BVVhfVFJJRV9TSVpFXV07CisgICAgICAgICAgICBjYW5vblN0YXJ0U2V0cz1uZXcgT2JqZWN0W05vcm1hbGl6ZXJJbXBsLkNBTk9OX1NFVF9NQVhfQ0FOT05fU0VUU107CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZjZFRyaWVJbXBsID0gbmV3IEZDRFRyaWVJbXBsKCk7CisgICAgICAgICAgICBub3JtVHJpZUltcGwgPSBuZXcgTm9ybVRyaWVJbXBsKCk7CisgICAgICAgICAgICBhdXhUcmllSW1wbCA9IG5ldyBBdXhUcmllSW1wbCgpOworICAgICAgICAgICAgICAgICAgICAgICAgCisKKyAgICAgICAgICAgIC8vIGxvYWQgdGhlIHJlc3Qgb2YgdGhlIGRhdGEgZGF0YSBhbmQgaW5pdGlhbGl6ZSB0aGUgZGF0YSBtZW1iZXJzCisgICAgICAgICAgICByZWFkZXIucmVhZChub3JtQnl0ZXMsIGZjZEJ5dGVzLGF1eEJ5dGVzLCBleHRyYURhdGEsIGNvbWJpbmluZ1RhYmxlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhbm9uU3RhcnRTZXRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgbm9ybVRyaWVJbXBsLm5vcm1UcmllID0gbmV3IEludFRyaWUoIG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbShub3JtQnl0ZXMpLG5vcm1UcmllSW1wbCApOworICAgICAgICAgICAgZmNkVHJpZUltcGwuZmNkVHJpZSAgID0gbmV3IENoYXJUcmllKCBuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0oZmNkQnl0ZXMpLGZjZFRyaWVJbXBsICApOworICAgICAgICAgICAgYXV4VHJpZUltcGwuYXV4VHJpZSAgID0gbmV3IENoYXJUcmllKCBuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0oYXV4Qnl0ZXMpLGF1eFRyaWVJbXBsICApOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyB3ZSByZWFjaGVkIGhlcmUgd2l0aG91dCBhbnkgZXhjZXB0aW9ucyBzbyB0aGUgZGF0YSBpcyBmdWxseSAKKyAgICAgICAgICAgIC8vIGxvYWRlZCBzZXQgdGhlIHZhcmlhYmxlIHRvIHRydWUKKyAgICAgICAgICAgIGlzRGF0YUxvYWRlZCA9IHRydWU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGdldCB0aGUgZGF0YSBmb3JtYXQgdmVyc2lvbiAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgYnl0ZVtdIGZvcm1hdFZlcnNpb24gPSByZWFkZXIuZ2V0RGF0YUZvcm1hdFZlcnNpb24oKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXNGb3JtYXRWZXJzaW9uXzJfMSA9KCBmb3JtYXRWZXJzaW9uWzBdPjIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9ybWF0VmVyc2lvblswXT09MiAmJiBmb3JtYXRWZXJzaW9uWzFdPj0xKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYi5jbG9zZSgpOworICAgICAgICAgICAgaS5jbG9zZSgpOworICAgICAgICB9CisgICAgfQorICAgIAorCS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKwkKKwkvKiBLb3JlYW4gSGFuZ3VsIGFuZCBKYW1vIGNvbnN0YW50cyAqLworCQorCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBKQU1PX0xfQkFTRT0weDExMDA7ICAgICAvKiAibGVhZCIgamFtbyAqLworCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBKQU1PX1ZfQkFTRT0weDExNjE7ICAgICAvKiAidm93ZWwiIGphbW8gKi8KKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSkFNT19UX0JBU0U9MHgxMWE3OyAgICAgLyogInRyYWlsIiBqYW1vICovCisJCisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEhBTkdVTF9CQVNFPTB4YWMwMDsKKwkKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSkFNT19MX0NPVU5UPTE5OworCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBKQU1PX1ZfQ09VTlQ9MjE7CisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEpBTU9fVF9DT1VOVD0yODsKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSEFOR1VMX0NPVU5UPUpBTU9fTF9DT1VOVCpKQU1PX1ZfQ09VTlQqSkFNT19UX0NPVU5UOworCQorCXByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNIYW5ndWxXaXRob3V0SmFtb1QoY2hhciBjKSB7CisJICAgIGMtPUhBTkdVTF9CQVNFOworCSAgICByZXR1cm4gYzxIQU5HVUxfQ09VTlQgJiYgYyVKQU1PX1RfQ09VTlQ9PTA7CisJfQorCQorCS8qIG5vcm0zMiBoZWxwZXJzICovCisJCisJLyogaXMgdGhpcyBhIG5vcm0zMiB3aXRoIGEgcmVndWxhciBpbmRleD8gKi8KKwlwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzTm9ybTMyUmVndWxhcihsb25nIG5vcm0zMikgeworCSAgICByZXR1cm4gbm9ybTMyPE1JTl9TUEVDSUFMOworCX0KKwkKKwkvKiBpcyB0aGlzIGEgbm9ybTMyIHdpdGggYSBzcGVjaWFsIGluZGV4IGZvciBhIGxlYWQgc3Vycm9nYXRlPyAqLworCXByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNOb3JtMzJMZWFkU3Vycm9nYXRlKGxvbmcgbm9ybTMyKSB7CisJICAgIHJldHVybiBNSU5fU1BFQ0lBTDw9bm9ybTMyICYmIG5vcm0zMjxTVVJST0dBVEVTX1RPUDsKKwl9CisJCisJLyogaXMgdGhpcyBhIG5vcm0zMiB3aXRoIGEgc3BlY2lhbCBpbmRleCBmb3IgYSBIYW5ndWwgc3lsbGFibGUgb3IgYSBKYW1vPyAqLworCXByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNOb3JtMzJIYW5ndWxPckphbW8obG9uZyBub3JtMzIpIHsKKwkgICAgcmV0dXJuIG5vcm0zMj49TUlOX0hBTkdVTDsKKwl9CisJCisJLyoKKwkgKiBHaXZlbiBpc05vcm0zMkhhbmd1bE9ySmFtbygpLAorCSAqIGlzIHRoaXMgYSBIYW5ndWwgc3lsbGFibGUgb3IgYSBKYW1vPworCSAqLworCXByaXZhdGUgc3RhdGljICBib29sZWFuIGlzSGFuZ3VsSmFtb05vcm0zMkhhbmd1bE9ySmFtb0wobG9uZyBub3JtMzIpIHsKKwkgICAgcmV0dXJuIG5vcm0zMjxNSU5fSkFNT19WOworCX0KKwkKKwkvKgorCSAqIEdpdmVuIG5vcm0zMiBmb3IgSmFtbyBWIG9yIFQsCisJICogaXMgdGhpcyBhIEphbW8gVj8KKwkgKi8KKwlwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzSmFtb1ZUTm9ybTMySmFtb1YobG9uZyBub3JtMzIpIHsKKwkgICAgcmV0dXJuIG5vcm0zMjxKQU1PX1ZfVE9QOworCX0KKwkKKwkvKiBkYXRhIGFjY2VzcyBwcmltaXRpdmVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisJCisJcHVibGljIHN0YXRpYyBsb25nLyp1bnNpZ25lZCovIGdldE5vcm0zMihjaGFyIGMpIHsKKyAgICAgICAgcmV0dXJuICgoVU5TSUdORURfSU5UX01BU0spICYgKG5vcm1UcmllSW1wbC5ub3JtVHJpZS5nZXRMZWFkVmFsdWUoYykpKTsKKwl9CisJCisJcHVibGljIHN0YXRpYyBsb25nLyp1bnNpZ25lZCovIGdldE5vcm0zMkZyb21TdXJyb2dhdGVQYWlyKGxvbmcgbm9ybTMyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgYzIpIHsKKwkgICAgLyoKKwkgICAgICogdGhlIHN1cnJvZ2F0ZSBpbmRleCBpbiBub3JtMzIgc3RvcmVzIG9ubHkgdGhlIG51bWJlciBvZiB0aGUgc3Vycm9nYXRlCisgICAgICAgICAqIGluZGV4IGJsb2NrIHNlZSBnZW5ub3JtL3N0b3JlLmMvZ2V0Rm9sZGVkTm9ybVZhbHVlKCkKKwkgICAgICovCisJICAgIHJldHVybiAoKFVOU0lHTkVEX0lOVF9NQVNLKSAmIAorICAgICAgICAgICAgICAgICAgICBub3JtVHJpZUltcGwubm9ybVRyaWUuZ2V0VHJhaWxWYWx1ZSgoaW50KW5vcm0zMiwgYzIpKTsKKwl9CisJcHJpdmF0ZSBzdGF0aWMgbG9uZyBnZXROb3JtMzIoaW50IGMpeworICAgICAgICByZXR1cm4gKFVOU0lHTkVEX0lOVF9NQVNLJihub3JtVHJpZUltcGwubm9ybVRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYykpKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgbG9uZyBnZXROb3JtMzIoaW50IGMsaW50IG1hc2speworICAgICAgICBsb25nLyp1bnNpZ25lZCovIG5vcm0zMj0gZ2V0Tm9ybTMyKFVURjE2LmdldExlYWRTdXJyb2dhdGUoYykpOworICAgICAgICBpZigoKG5vcm0zMiZtYXNrKT4wKSAmJiBpc05vcm0zMkxlYWRTdXJyb2dhdGUobm9ybTMyKSkgeworICAgICAgICAgICAgLyogYyBpcyBhIGxlYWQgc3Vycm9nYXRlLCBnZXQgdGhlIHJlYWwgbm9ybTMyICovCisgICAgICAgICAgICBub3JtMzI9Z2V0Tm9ybTMyRnJvbVN1cnJvZ2F0ZVBhaXIobm9ybTMyLFVURjE2LmdldFRyYWlsU3Vycm9nYXRlKGMpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbm9ybTMyOyAKKyAgICB9CisJCisgICAgLyoKKwkgKiBnZXQgYSBub3JtMzIgZnJvbSB0ZXh0IHdpdGggY29tcGxldGUgY29kZSBwb2ludHMKKwkgKiAobGlrZSBmcm9tIGRlY29tcG9zaXRpb25zKQorCSAqLworCXByaXZhdGUgc3RhdGljIGxvbmcvKnVuc2lnbmVkKi8gZ2V0Tm9ybTMyKGNoYXJbXSBwLGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gbWFzaykgeworCSAgICBsb25nLyp1bnNpZ25lZCovIG5vcm0zMj0gZ2V0Tm9ybTMyKHBbc3RhcnRdKTsKKwkgICAgaWYoKChub3JtMzImbWFzayk+MCkgJiYgaXNOb3JtMzJMZWFkU3Vycm9nYXRlKG5vcm0zMikpIHsKKwkgICAgICAgIC8qICpwIGlzIGEgbGVhZCBzdXJyb2dhdGUsIGdldCB0aGUgcmVhbCBub3JtMzIgKi8KKwkgICAgICAgIG5vcm0zMj1nZXROb3JtMzJGcm9tU3Vycm9nYXRlUGFpcihub3JtMzIsIHBbc3RhcnQrMV0pOworCSAgICB9CisJICAgIHJldHVybiBub3JtMzI7CisJfQorCisJcHVibGljIHN0YXRpYyBjaGFyCWdldEZDRDE2KGNoYXIgYykgeworCSAgICByZXR1cm4gIGZjZFRyaWVJbXBsLmZjZFRyaWUuZ2V0TGVhZFZhbHVlKGMpOworCX0KKwkKKwlwdWJsaWMgc3RhdGljIGNoYXIgZ2V0RkNEMTZGcm9tU3Vycm9nYXRlUGFpcihjaGFyIGZjZDE2LCBjaGFyIGMyKSB7CisJICAgIC8qIHRoZSBzdXJyb2dhdGUgaW5kZXggaW4gZmNkMTYgaXMgYW4gYWJzb2x1dGUgb2Zmc2V0IG92ZXIgdGhlIAorICAgICAgICAgKiBzdGFydCBvZiBzdGFnZSAxIAorICAgICAgICAgKiAqLworCSAgICByZXR1cm4gZmNkVHJpZUltcGwuZmNkVHJpZS5nZXRUcmFpbFZhbHVlKGZjZDE2LCBjMik7CisJfQorCQorCXByaXZhdGUgc3RhdGljIGludCBnZXRFeHRyYURhdGFJbmRleChsb25nIG5vcm0zMikgeworCSAgICByZXR1cm4gKGludCkobm9ybTMyPj5FWFRSQV9TSElGVCk7CisJfQorCQorCXByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIERlY29tcG9zZUFyZ3N7CisJCWludCAvKnVuc2lnbmVkIGJ5dGUqLyBjYzsKKwkJaW50IC8qdW5zaWduZWQgYnl0ZSovIHRyYWlsQ0M7CisJCWludCBsZW5ndGg7CisJfQorICAgIC8qKgorICAgICAqIAorICAgICAqIGdldCB0aGUgY2Fub25pY2FsIG9yIGNvbXBhdGliaWxpdHkgZGVjb21wb3NpdGlvbiBmb3Igb25lIGNoYXJhY3RlciAKKyAgICAgKiAKKyAgICAgKiBAcmV0dXJuIGluZGV4IGludG8gdGhlIGV4dHJhRGF0YSBhcnJheQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludC8qaW5kZXgqLyBkZWNvbXBvc2UobG9uZy8qdW5zaWduZWQqLyBub3JtMzIsIAorICAgIAkJCQkJCQkgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIHFjTWFzaywgCisgICAgCQkJCQkJCSAgICAgICAgICBEZWNvbXBvc2VBcmdzIGFyZ3MpIHsKKyAgICAgICAgaW50IHA9IGdldEV4dHJhRGF0YUluZGV4KG5vcm0zMik7CisgICAgICAgIGFyZ3MubGVuZ3RoPWV4dHJhRGF0YVtwKytdOworICAgIAorICAgICAgICBpZigobm9ybTMyJnFjTWFzayZRQ19ORktEKSE9MCAmJiBhcmdzLmxlbmd0aD49MHgxMDApIHsKKyAgICAgICAgICAgIC8qIHVzZSBjb21wYXRpYmlsaXR5IGRlY29tcG9zaXRpb24sIHNraXAgY2Fub25pY2FsIGRhdGEgKi8KKyAgICAgICAgICAgIHArPSgoYXJncy5sZW5ndGg+PjcpJjEpKyhhcmdzLmxlbmd0aCZERUNPTVBfTEVOR1RIX01BU0spOworICAgICAgICAgICAgYXJncy5sZW5ndGg+Pj04OworICAgICAgICB9CisgICAgCisgICAgICAgIGlmKChhcmdzLmxlbmd0aCZERUNPTVBfRkxBR19MRU5HVEhfSEFTX0NDKT4wKSB7CisgICAgICAgICAgICAvKiBnZXQgdGhlIGxlYWQgYW5kIHRyYWlsIGNjJ3MgKi8KKyAgICAgICAgICAgIGNoYXIgYm90aENDcz1leHRyYURhdGFbcCsrXTsKKyAgICAgICAgICAgIGFyZ3MuY2M9KFVOU0lHTkVEX0JZVEVfTUFTSykgJiAoYm90aENDcz4+OCk7CisgICAgICAgICAgICBhcmdzLnRyYWlsQ0M9KFVOU0lHTkVEX0JZVEVfTUFTSykgJiBib3RoQ0NzOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLyogbGVhZCBhbmQgdHJhaWwgY2MncyBhcmUgYm90aCAwICovCisgICAgICAgICAgICBhcmdzLmNjPWFyZ3MudHJhaWxDQz0wOworICAgICAgICB9CisgICAgCisgICAgICAgIGFyZ3MubGVuZ3RoJj1ERUNPTVBfTEVOR1RIX01BU0s7CisgICAgICAgIHJldHVybiBwOworICAgIH0KKyAgICAKKyAgICAgICAKKyAgICAvKioKKyAgICAgKiBnZXQgdGhlIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9uIGZvciBvbmUgY2hhcmFjdGVyIAorICAgICAqIEByZXR1cm4gaW5kZXggaW50byB0aGUgZXh0cmFEYXRhIGFycmF5CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGRlY29tcG9zZShsb25nLyp1bnNpZ25lZCovIG5vcm0zMiwgCisgICAgICAgICAgICAJCQkgICAgICAgICBEZWNvbXBvc2VBcmdzIGFyZ3MpIHsKKyAgICAgICAgICAgIAkJCSAJCisgICAgICAgIGludCBwPSBnZXRFeHRyYURhdGFJbmRleChub3JtMzIpOworICAgICAgICBhcmdzLmxlbmd0aD1leHRyYURhdGFbcCsrXTsKKyAgICAKKyAgICAgICAgaWYoKGFyZ3MubGVuZ3RoJkRFQ09NUF9GTEFHX0xFTkdUSF9IQVNfQ0MpPjApIHsKKyAgICAgICAgICAgIC8qIGdldCB0aGUgbGVhZCBhbmQgdHJhaWwgY2MncyAqLworICAgICAgICAgICAgY2hhciBib3RoQ0NzPWV4dHJhRGF0YVtwKytdOworICAgICAgICAgICAgYXJncy5jYz0oVU5TSUdORURfQllURV9NQVNLKSAmIChib3RoQ0NzPj44KTsKKyAgICAgICAgICAgIGFyZ3MudHJhaWxDQz0oVU5TSUdORURfQllURV9NQVNLKSAmIGJvdGhDQ3M7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvKiBsZWFkIGFuZCB0cmFpbCBjYydzIGFyZSBib3RoIDAgKi8KKyAgICAgICAgICAgIGFyZ3MuY2M9YXJncy50cmFpbENDPTA7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgYXJncy5sZW5ndGgmPURFQ09NUF9MRU5HVEhfTUFTSzsKKyAgICAgICAgcmV0dXJuIHA7CisgICAgfQorICAgIAorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIE5leHRDQ0FyZ3N7CisgICAgCWNoYXJbXSBzb3VyY2U7CisgICAgCWludCBuZXh0OworICAgIAlpbnQgbGltaXQ7CisgICAgCWNoYXIgYzsKKyAgICAJY2hhciBjMjsKKyAgICB9CisgICAgCisgICAgLyoKKyAgICAgKiBnZXQgdGhlIGNvbWJpbmluZyBjbGFzcyBvZiAoYywgYzIpPSBhcmdzLnNvdXJjZVthcmdzLm5leHQrK10KKyAgICAgKiBiZWZvcmU6IGFyZ3MubmV4dDxhcmdzLmxpbWl0ICBhZnRlcjogYXJncy5uZXh0PD1hcmdzLmxpbWl0CisgICAgICogaWYgb25seSBvbmUgY29kZSB1bml0IGlzIHVzZWQsIHRoZW4gYzI9PTAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgLyp1bnNpZ25lZCBieXRlKi8gZ2V0TmV4dENDKE5leHRDQ0FyZ3MgYXJncykgeworICAgICAgICBsb25nIC8qdW5zaWduZWQqLyBub3JtMzI7CisgICAgCisgICAgICAgIGFyZ3MuYz1hcmdzLnNvdXJjZVthcmdzLm5leHQrK107CisgICAgICAgIAorICAgICAgICBub3JtMzI9IGdldE5vcm0zMihhcmdzLmMpOworICAgICAgICBpZigobm9ybTMyICYgQ0NfTUFTSyk9PTApIHsKKyAgICAgICAgICAgIGFyZ3MuYzI9MDsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYoIWlzTm9ybTMyTGVhZFN1cnJvZ2F0ZShub3JtMzIpKSB7CisgICAgICAgICAgICAgICAgYXJncy5jMj0wOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiBjIGlzIGEgbGVhZCBzdXJyb2dhdGUsIGdldCB0aGUgcmVhbCBub3JtMzIgKi8KKyAgICAgICAgICAgICAgICBpZihhcmdzLm5leHQhPWFyZ3MubGltaXQgJiYgCisgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGFyZ3MuYzI9YXJncy5zb3VyY2VbYXJncy5uZXh0XSkpeworICAgICAgICAgICAgICAgICAgICArK2FyZ3MubmV4dDsKKyAgICAgICAgICAgICAgICAgICAgbm9ybTMyPWdldE5vcm0zMkZyb21TdXJyb2dhdGVQYWlyKG5vcm0zMiwgYXJncy5jMik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYXJncy5jMj0wOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICByZXR1cm4gKGludCkoKFVOU0lHTkVEX0JZVEVfTUFTSykgJiAobm9ybTMyPj5DQ19TSElGVCkpOworICAgICAgICB9CisgICAgfQorCisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgUHJldkFyZ3N7CisJCWNoYXJbXSBzcmM7CisJCWludCBzdGFydDsKKwkJaW50IGN1cnJlbnQ7CisJCWNoYXIgYzsKKwkJY2hhciBjMjsKKwl9CisJCisgICAgLyoKKyAgICAgKiByZWFkIGJhY2t3YXJkcyBhbmQgZ2V0IG5vcm0zMgorICAgICAqIHJldHVybiAwIGlmIHRoZSBjaGFyYWN0ZXIgaXMgPG1pbkMKKyAgICAgKiBpZiBjMiE9MCB0aGVuIChjMiwgYykgaXMgYSBzdXJyb2dhdGUgcGFpciAocmV2ZXJzZWQgLSBjMiBpcyBmaXJzdCAKKyAgICAgKiBzdXJyb2dhdGUgYnV0IHJlYWQgc2Vjb25kISkKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBsb25nIC8qdW5zaWduZWQqLyBnZXRQcmV2Tm9ybTMyKFByZXZBcmdzIGFyZ3MsCisgICAgICAgICAgICAgICAgICAgCQkJCQkJICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gbWluQywgCisgICAgICAgICAgICAgICAgICAgCQkJCQkJICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gbWFzaykgeworICAgICAgICBsb25nLyp1bnNpZ25lZCovIG5vcm0zMjsKKyAgICAKKyAgICAgICAgYXJncy5jPWFyZ3Muc3JjWy0tYXJncy5jdXJyZW50XTsKKyAgICAgICAgYXJncy5jMj0wOworICAgIAorICAgICAgICAvKiBjaGVjayBmb3IgYSBzdXJyb2dhdGUgYmVmb3JlIGdldHRpbmcgbm9ybTMyIHRvIHNlZSBpZiB3ZSBuZWVkIHRvIAorICAgICAgICAgKiBwcmVkZWNyZW1lbnQgZnVydGhlciAKKyAgICAgICAgICovCisgICAgICAgIGlmKGFyZ3MuYzxtaW5DKSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfSBlbHNlIGlmKCFVVEYxNi5pc1N1cnJvZ2F0ZShhcmdzLmMpKSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0Tm9ybTMyKGFyZ3MuYyk7CisgICAgICAgIH0gZWxzZSBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoYXJncy5jKSkgeworICAgICAgICAgICAgLyogdW5wYWlyZWQgZmlyc3Qgc3Vycm9nYXRlICovCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfSBlbHNlIGlmKGFyZ3MuY3VycmVudCE9YXJncy5zdGFydCAmJiAKKyAgICAgICAgICAgICAgICAgICAgVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGFyZ3MuYzI9YXJncy5zcmNbYXJncy5jdXJyZW50LTFdKSkgeworICAgICAgICAgICAgLS1hcmdzLmN1cnJlbnQ7CisgICAgICAgICAgICBub3JtMzI9Z2V0Tm9ybTMyKGFyZ3MuYzIpOworICAgIAorICAgICAgICAgICAgaWYoKG5vcm0zMiZtYXNrKT09MCkgeworICAgICAgICAgICAgICAgIC8qIGFsbCBzdXJyb2dhdGUgcGFpcnMgd2l0aCB0aGlzIGxlYWQgc3Vycm9nYXRlIGhhdmUgCisgICAgICAgICAgICAgICAgICogb25seSBpcnJlbGV2YW50IGRhdGEgCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIG5vcm0zMiBtdXN0IGJlIGEgc3Vycm9nYXRlIHNwZWNpYWwgKi8KKyAgICAgICAgICAgICAgICByZXR1cm4gZ2V0Tm9ybTMyRnJvbVN1cnJvZ2F0ZVBhaXIobm9ybTMyLCBhcmdzLmMpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLyogdW5wYWlyZWQgc2Vjb25kIHN1cnJvZ2F0ZSAqLworICAgICAgICAgICAgYXJncy5jMj0wOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoKKyAgICAgKiBnZXQgdGhlIGNvbWJpbmluZyBjbGFzcyBvZiAoYywgYzIpPSotLXAKKyAgICAgKiBiZWZvcmU6IHN0YXJ0PHAgIGFmdGVyOiBzdGFydDw9cAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCAvKnVuc2lnbmVkIGJ5dGUqLyBnZXRQcmV2Q0MoUHJldkFyZ3MgYXJncykgeworCisgICAgICAgIHJldHVybiAoaW50KSgoVU5TSUdORURfQllURV9NQVNLKSYoZ2V0UHJldk5vcm0zMihhcmdzLCBNSU5fV0lUSF9MRUFEX0NDLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0NfTUFTSyk+PkNDX1NISUZUKSk7CisgICAgfQorCisJLyoKKwkgKiBpcyB0aGlzIGEgc2FmZSBib3VuZGFyeSBjaGFyYWN0ZXIgZm9yIE5GKkQ/CisJICogKGxlYWQgY2M9PTApCisJICovCisJcHVibGljIHN0YXRpYyBib29sZWFuIGlzTkZEU2FmZShsb25nLyp1bnNpZ25lZCovIG5vcm0zMiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovY2NPclFDTWFzaywgCisJCQkJCSAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIGRlY29tcFFDTWFzaykgeworCSAgICBpZigobm9ybTMyJmNjT3JRQ01hc2spPT0wKSB7CisJICAgICAgICByZXR1cm4gdHJ1ZTsgLyogY2M9PTAgYW5kIG5vIGRlY29tcG9zaXRpb246IHRoaXMgaXMgTkYqRCBzYWZlICovCisJICAgIH0KKwkKKwkgICAgLyogaW5zcGVjdCBpdHMgZGVjb21wb3NpdGlvbiAtIG1heWJlIGEgSGFuZ3VsIGJ1dCBub3QgYSBzdXJyb2dhdGUgaGVyZSovCisJICAgIGlmKGlzTm9ybTMyUmVndWxhcihub3JtMzIpICYmIChub3JtMzImZGVjb21wUUNNYXNrKSE9MCkgeworCSAgICAgICAgRGVjb21wb3NlQXJncyBhcmdzPW5ldyBEZWNvbXBvc2VBcmdzKCk7CisJICAgICAgICAvKiBkZWNvbXBvc2VzLCBnZXQgZXZlcnl0aGluZyBmcm9tIHRoZSB2YXJpYWJsZS1sZW5ndGggZXh0cmEgZGF0YSAqLworCSAgICAgICAgZGVjb21wb3NlKG5vcm0zMiwgZGVjb21wUUNNYXNrLCBhcmdzKTsKKwkgICAgICAgIHJldHVybiBhcmdzLmNjPT0wOworCSAgICB9IGVsc2UgeworCSAgICAgICAgLyogbm8gZGVjb21wb3NpdGlvbiAob3IgSGFuZ3VsKSwgdGVzdCB0aGUgY2MgZGlyZWN0bHkgKi8KKwkgICAgICAgIHJldHVybiAobm9ybTMyJkNDX01BU0spPT0wOworCSAgICB9CisJfQorCQorCS8qCisJICogaXMgdGhpcyAob3IgZG9lcyBpdHMgZGVjb21wb3NpdGlvbiBiZWdpbiB3aXRoKSBhICJ0cnVlIHN0YXJ0ZXIiPworCSAqIChjYz09MCBhbmQgTkYqQ19ZRVMpCisJICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzVHJ1ZVN0YXJ0ZXIobG9uZy8qdW5zaWduZWQqLyBub3JtMzIsIAorCQkJCQkJCQkgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIGNjT3JRQ01hc2ssIAorCQkJCQkJCQkgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIGRlY29tcFFDTWFzaykgeworCSAgICBpZigobm9ybTMyJmNjT3JRQ01hc2spPT0wKSB7CisJICAgICAgICByZXR1cm4gdHJ1ZTsgLyogdGhpcyBpcyBhIHRydWUgc3RhcnRlciAoY291bGQgYmUgSGFuZ3VsIG9yIEphbW8gTCkqLworCSAgICB9CisJCisJICAgIC8qIGluc3BlY3QgaXRzIGRlY29tcG9zaXRpb24gLSBub3QgYSBIYW5ndWwgb3IgYSBzdXJyb2dhdGUgaGVyZSAqLworCSAgICBpZigobm9ybTMyJmRlY29tcFFDTWFzaykhPTApIHsKKwkgICAgICAgIGludCBwOyAvKiBpbmRleCBpbnRvIGV4dHJhIGRhdGEgYXJyYXkgKi8KKwkgICAgICAgIERlY29tcG9zZUFyZ3MgYXJncz1uZXcgRGVjb21wb3NlQXJncygpOworCSAgICAgICAgLyogZGVjb21wb3NlcywgZ2V0IGV2ZXJ5dGhpbmcgZnJvbSB0aGUgdmFyaWFibGUtbGVuZ3RoIGV4dHJhIGRhdGEgKi8KKwkgICAgICAgIHA9ZGVjb21wb3NlKG5vcm0zMiwgZGVjb21wUUNNYXNrLCBhcmdzKTsKKwkgICAgICAKKwkgICAgICAgIGlmKGFyZ3MuY2M9PTApIHsKKwkgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gcWNNYXNrPWNjT3JRQ01hc2smUUNfTUFTSzsKKwkKKwkgICAgICAgICAgICAvKiBkb2VzIGl0IGJlZ2luIHdpdGggTkZDX1lFUz8gKi8KKwkgICAgICAgICAgICBpZigoZ2V0Tm9ybTMyKGV4dHJhRGF0YSxwLCBxY01hc2spJnFjTWFzayk9PTApIHsKKwkgICAgICAgICAgICAgICAgLyogeWVzLCB0aGUgZGVjb21wb3NpdGlvbiBiZWdpbnMgd2l0aCBhIHRydWUgc3RhcnRlciAqLworCSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKwkgICAgICAgICAgICB9CisJICAgICAgICB9CisJICAgIH0KKwkgICAgcmV0dXJuIGZhbHNlOworCX0KKworCS8qIHJlb3JkZXIgVVRGLTE2IGluLXBsYWNlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKwkKKwkvKioKKwkgKiBzaW1wbGVyLCBzaW5nbGUtY2hhcmFjdGVyIHZlcnNpb24gb2YgbWVyZ2VPcmRlcmVkKCkgLQorCSAqIGJ1YmJsZS1pbnNlcnQgb25lIHNpbmdsZSBjb2RlIHBvaW50IGludG8gdGhlIHByZWNlZGluZyBzdHJpbmcKKwkgKiB3aGljaCBpcyBhbHJlYWR5IGNhbm9uaWNhbGx5IG9yZGVyZWQKKwkgKiAoYywgYzIpIG1heSBvciBtYXkgbm90IHlldCBoYXZlIGJlZW4gaW5zZXJ0ZWQgYXQgc3JjW2N1cnJlbnRdLi5zcmNbcF0KKwkgKgorCSAqIGl0IG11c3QgYmUgcD1jdXJyZW50K2xlbmd0aG9mKGMsIGMyKSBpLmUuIHA9Y3VycmVudCsoYzI9PTAgPyAxIDogMikKKwkgKgorCSAqIGJlZm9yZTogc3JjW3N0YXJ0XS4uc3JjW2N1cnJlbnRdIGlzIGFscmVhZHkgb3JkZXJlZCwgYW5kCisJICogICAgICAgICBzcmNbY3VycmVudF0uLnNyY1twXSAgICAgbWF5IG9yIG1heSBub3QgaG9sZCAoYywgYzIpIGJ1dAorCSAqICAgICAgICAgICAgICAgICAgICAgICAgICBtdXN0IGJlIGV4YWN0bHkgdGhlIHNhbWUgbGVuZ3RoIGFzIChjLCBjMikKKwkgKiBhZnRlcjogc3JjW3N0YXJ0XS4uc3JjW3BdIGlzIG9yZGVyZWQKKwkgKgorCSAqIEByZXR1cm4gdGhlIHRyYWlsaW5nIGNvbWJpbmluZyBjbGFzcworCSAqLworCXByaXZhdGUgc3RhdGljIGludC8qdW5zaWduZWQgYnl0ZSovIGluc2VydE9yZGVyZWQoY2hhcltdIHNvdXJjZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQsIAorCQkJCQkJCQkJCQkgICAgICAgICAgaW50IGN1cnJlbnQsIGludCBwLAorCSAgICAgICAgICAgICAgIAkJCQkJCQkgICAgICAgICAgY2hhciBjLCBjaGFyIGMyLCAKKwkgICAgICAgICAgICAgICAJCQkJCQkJICAgICAgICAgIGludC8qdW5zaWduZWQgYnl0ZSovIGNjKSB7CisJICAgIGludCBiYWNrLCBwcmVCYWNrOworCSAgICBpbnQgcjsKKwkgICAgaW50IHByZXZDQywgdHJhaWxDQz1jYzsKKwkKKwkgICAgaWYoc3RhcnQ8Y3VycmVudCAmJiBjYyE9MCkgeworCSAgICAgICAgLy8gc2VhcmNoIGZvciB0aGUgaW5zZXJ0aW9uIHBvaW50IHdoZXJlIGNjPj1wcmV2Q0MgCisJICAgICAgICBwcmVCYWNrPWJhY2s9Y3VycmVudDsKKwkgICAgICAgIFByZXZBcmdzIHByZXZBcmdzID0gbmV3IFByZXZBcmdzKCk7CisJICAgICAgICBwcmV2QXJncy5jdXJyZW50ICA9IGN1cnJlbnQ7CisJICAgICAgICBwcmV2QXJncy5zdGFydCAgICA9IHN0YXJ0OworCSAgICAgICAgcHJldkFyZ3Muc3JjCSAgPSBzb3VyY2U7CisJICAgICAgICAvLyBnZXQgdGhlIHByZXZDQyAKKwkgICAgICAgIHByZXZDQz1nZXRQcmV2Q0MocHJldkFyZ3MpOworCSAgICAgICAgcHJlQmFjayA9IHByZXZBcmdzLmN1cnJlbnQ7CisJICAgICAgICAKKwkgICAgICAgIGlmKGNjPHByZXZDQykgeworCSAgICAgICAgICAgIC8vIHRoaXMgd2lsbCBiZSB0aGUgbGFzdCBjb2RlIHBvaW50LCBzbyBrZWVwIGl0cyBjYyAKKwkgICAgICAgICAgICB0cmFpbENDPXByZXZDQzsKKwkgICAgICAgICAgICBiYWNrPXByZUJhY2s7CisJICAgICAgICAgICAgd2hpbGUoc3RhcnQ8cHJlQmFjaykgeworCSAgICAgICAgICAgICAgICBwcmV2Q0M9Z2V0UHJldkNDKHByZXZBcmdzKTsKKwkgICAgICAgICAgICAgICAgcHJlQmFjaz1wcmV2QXJncy5jdXJyZW50OworCSAgICAgICAgICAgICAgICBpZihjYz49cHJldkNDKSB7CisJICAgICAgICAgICAgICAgICAgICBicmVhazsKKwkgICAgICAgICAgICAgICAgfQorCSAgICAgICAgICAgICAgICBiYWNrPXByZUJhY2s7CisJICAgICAgICAgICAgfQorCQorCSAgICAgICAgICAgIAorCSAgICAgICAgICAgIC8vIHRoaXMgaXMgd2hlcmUgd2UgYXJlIHJpZ2h0IG5vdyB3aXRoIGFsbCB0aGVzZSBpbmRpY2llczoKKwkgICAgICAgICAgICAvLyBbc3RhcnRdLi5bcFByZUJhY2tdIDAuLj8gY29kZSBwb2ludHMgdGhhdCB3ZSBjYW4gaWdub3JlCisJICAgICAgICAgICAgLy8gW3BQcmVCYWNrXS4uW3BCYWNrXSAwLi4xIGNvZGUgcG9pbnRzIHdpdGggcHJldkNDPD1jYworCSAgICAgICAgICAgIC8vIFtwQmFja10uLltjdXJyZW50XSAwLi5uIGNvZGUgcG9pbnRzIHdpdGggPmNjLCBtb3ZlIHVwIHRvIGluc2VydCAoYywgYzIpCisJICAgICAgICAgICAgLy8gW2N1cnJlbnRdLi5bcF0gICAgICAgICAxIGNvZGUgcG9pbnQgKGMsIGMyKSB3aXRoIGNjCisJICAgICAgICAgICAgIAorCSAgICAgICAgICAgIC8vIG1vdmUgdGhlIGNvZGUgdW5pdHMgaW4gYmV0d2VlbiB1cCAKKwkgICAgICAgICAgICByPXA7CisJICAgICAgICAgICAgZG8geworCSAgICAgICAgICAgICAgICBzb3VyY2VbLS1yXT1zb3VyY2VbLS1jdXJyZW50XTsKKwkgICAgICAgICAgICB9IHdoaWxlKGJhY2shPWN1cnJlbnQpOworCSAgICAgICAgfQorCSAgICB9CisJCisJICAgIC8vIGluc2VydCAoYywgYzIpIAorCSAgICBzb3VyY2VbY3VycmVudF09YzsKKwkgICAgaWYoYzIhPTApIHsKKwkgICAgICAgIHNvdXJjZVsoY3VycmVudCsxKV09YzI7CisJICAgIH0KKwkKKwkgICAgLy8gd2Uga25vdyB0aGUgY2Mgb2YgdGhlIGxhc3QgY29kZSBwb2ludCAKKwkgICAgcmV0dXJuIHRyYWlsQ0M7CisJfQorCQorCS8qKgorCSAqIG1lcmdlIHR3byBVVEYtMTYgc3RyaW5nIHBhcnRzIHRvZ2V0aGVyCisJICogdG8gY2Fub25pY2FsbHkgb3JkZXIgKG9yZGVyIGJ5IGNvbWJpbmluZyBjbGFzc2VzKSB0aGVpciBjb25jYXRlbmF0aW9uCisJICoKKwkgKiB0aGUgdHdvIHN0cmluZ3MgbWF5IGFscmVhZHkgYmUgYWRqYWNlbnQsIHNvIHRoYXQgdGhlIG1lcmdpbmcgaXMgZG9uZSAKKyAgICAgKiBpbi1wbGFjZSBpZiB0aGUgdHdvIHN0cmluZ3MgYXJlIG5vdCBhZGphY2VudCwgdGhlbiB0aGUgYnVmZmVyIGhvbGRpbmcgdGhlCisgICAgICogZmlyc3Qgb25lIG11c3QgYmUgbGFyZ2UgZW5vdWdoCisJICogdGhlIHNlY29uZCBzdHJpbmcgbWF5IG9yIG1heSBub3QgYmUgb3JkZXJlZCBpbiBpdHNlbGYKKwkgKgorCSAqIGJlZm9yZTogW3N0YXJ0XS4uW2N1cnJlbnRdIGlzIGFscmVhZHkgb3JkZXJlZCwgYW5kCisJICogICAgICAgICBbbmV4dF0uLltsaW1pdF0gICAgbWF5IGJlIG9yZGVyZWQgaW4gaXRzZWxmLCBidXQKKwkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgbm90IGluIHJlbGF0aW9uIHRvIFtzdGFydC4uY3VycmVudFsKKwkgKiBhZnRlcjogW3N0YXJ0Li5jdXJyZW50KyhsaW1pdC1uZXh0KVsgaXMgb3JkZXJlZAorCSAqCisJICogdGhlIGFsZ29yaXRobSBpcyBhIHNpbXBsZSBidWJibGUtc29ydCB0aGF0IHRha2VzIHRoZSBjaGFyYWN0ZXJzIGZyb20gCisgICAgICogc3JjW25leHQrK10gYW5kIGluc2VydHMgdGhlbSBpbiBjb3JyZWN0IGNvbWJpbmluZyBjbGFzcyBvcmRlciBpbnRvIHRoZSAKKyAgICAgKiBwcmVjZWRpbmcgcGFydCBvZiB0aGUgc3RyaW5nCisJICoKKwkgKiBzaW5jZSB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBtdWNoIGxlc3Mgb2Z0ZW4gdGhhbiB0aGUgc2luZ2xlLWNvZGUgcG9pbnQKKwkgKiBpbnNlcnRPcmRlcmVkKCksIGl0IGp1c3QgdXNlcyB0aGF0IGZvciBlYXNpZXIgbWFpbnRlbmFuY2UKKwkgKgorCSAqIEByZXR1cm4gdGhlIHRyYWlsaW5nIGNvbWJpbmluZyBjbGFzcworCSAqLworCXByaXZhdGUgc3RhdGljIGludCAvKnVuc2lnbmVkIGJ5dGUqLyBtZXJnZU9yZGVyZWQoY2hhcltdIHNvdXJjZSwKKwkJCQkJCQkJCQkJCQkgIGludCBzdGFydCwgCisJCQkJCQkJCQkJCQkJICBpbnQgY3VycmVudCwKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBkYXRhLAorCQkJICAgICAgICAgICAgICAJCQkJCQkJICBpbnQgbmV4dCwgCisJCQkgICAgICAgICAgICAgIAkJCQkJCQkgIGludCBsaW1pdCwgCisJCQkgICAgICAgICAgICAgIAkJCQkJCQkgIGJvb2xlYW4gaXNPcmRlcmVkKSB7CisgICAgICAgICAgICBpbnQgcjsKKyAgICAgICAgICAgIGludCAvKnVuc2lnbmVkIGJ5dGUqLyBjYywgdHJhaWxDQz0wOworICAgICAgICAgICAgYm9vbGVhbiBhZGphY2VudDsKKyAgICAgICAgCisgICAgICAgICAgICBhZGphY2VudD0gY3VycmVudD09bmV4dDsKKyAgICAgICAgICAgIE5leHRDQ0FyZ3MgbmNBcmdzID0gbmV3IE5leHRDQ0FyZ3MoKTsKKyAgICAgICAgICAgIG5jQXJncy5zb3VyY2UgPSBkYXRhOworICAgICAgICAgICAgbmNBcmdzLm5leHQgICA9IG5leHQ7CisgICAgICAgICAgICBuY0FyZ3MubGltaXQgID0gbGltaXQ7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKHN0YXJ0IT1jdXJyZW50IHx8ICFpc09yZGVyZWQpIHsKKyAgICAgICAgICAgICAgICAJCisgICAgICAgICAgICAgICAgd2hpbGUobmNBcmdzLm5leHQ8bmNBcmdzLmxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIGNjPWdldE5leHRDQyhuY0FyZ3MpOworICAgICAgICAgICAgICAgICAgICBpZihjYz09MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gZG9lcyBub3QgYnViYmxlIGJhY2sgCisgICAgICAgICAgICAgICAgICAgICAgICB0cmFpbENDPTA7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihhZGphY2VudCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQ9bmNBcmdzLm5leHQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbY3VycmVudCsrXT1uY0FyZ3MuYzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihuY0FyZ3MuYzIhPTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtjdXJyZW50KytdPW5jQXJncy5jMjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZihpc09yZGVyZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQ9Y3VycmVudDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHI9Y3VycmVudCsobmNBcmdzLmMyPT0wID8gMSA6IDIpOworICAgICAgICAgICAgICAgICAgICAgICAgdHJhaWxDQz1pbnNlcnRPcmRlcmVkKHNvdXJjZSxzdGFydCwgY3VycmVudCwgciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmNBcmdzLmMsIG5jQXJncy5jMiwgY2MpOworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudD1yOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIGlmKG5jQXJncy5uZXh0PT1uY0FyZ3MubGltaXQpIHsKKyAgICAgICAgICAgICAgICAvLyB3ZSBrbm93IHRoZSBjYyBvZiB0aGUgbGFzdCBjb2RlIHBvaW50IAorICAgICAgICAgICAgICAgIHJldHVybiB0cmFpbENDOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZighYWRqYWNlbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gY29weSB0aGUgc2Vjb25kIHN0cmluZyBwYXJ0IAorICAgICAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VbY3VycmVudCsrXT1kYXRhW25jQXJncy5uZXh0KytdOworICAgICAgICAgICAgICAgICAgICB9IHdoaWxlKG5jQXJncy5uZXh0IT1uY0FyZ3MubGltaXQpOworICAgICAgICAgICAgICAgICAgICBuY0FyZ3MubGltaXQ9Y3VycmVudDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgUHJldkFyZ3MgcHJldkFyZ3MgPSBuZXcgUHJldkFyZ3MoKTsKKyAgICAgICAgICAgICAgICBwcmV2QXJncy5zcmMgICA9IGRhdGE7CisgICAgICAgICAgICAgICAgcHJldkFyZ3Muc3RhcnQgPSBzdGFydDsKKyAgICAgICAgICAgICAgICBwcmV2QXJncy5jdXJyZW50ID0gIG5jQXJncy5saW1pdDsKKyAgICAgICAgICAgICAgICByZXR1cm4gZ2V0UHJldkNDKHByZXZBcmdzKTsKKyAgICAgICAgICAgIH0KKworCX0KKwlwcml2YXRlIHN0YXRpYyBpbnQgLyp1bnNpZ25lZCBieXRlKi8gbWVyZ2VPcmRlcmVkKGNoYXJbXSBzb3VyY2UsCisJCQkJCQkJCQkJCQkJICBpbnQgc3RhcnQsIAorCQkJCQkJCQkJCQkJCSAgaW50IGN1cnJlbnQsCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGF0YSwKKwkJCSAgICAgICAgICAgICAgCQkJCQkJCSAgZmluYWwgaW50IG5leHQsIAorCQkJICAgICAgICAgICAgICAJCQkJCQkJICBmaW5hbCBpbnQgbGltaXQpIHsKKwkgICAgcmV0dXJuIG1lcmdlT3JkZXJlZChzb3VyY2Usc3RhcnQsY3VycmVudCxkYXRhLG5leHQsbGltaXQsdHJ1ZSk7CisJfSAKKworICAgIAorICAgICAgCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGNoZWNrRkNEKGNoYXJbXSBzcmMsaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQpIHsKKworCSAgICBjaGFyIGZjZDE2LGMsYzI7CisJICAgIGludCBwcmV2Q0M9MCwgY2M7CisJCWludCBpID1zcmNTdGFydCwgbGVuZ3RoID0gc3JjTGltaXQ7CisJCisJICAgIGZvcig7OykgeworICAgICAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICAgICAgaWYoaT09bGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZigoYz1zcmNbaSsrXSk8TUlOX1dJVEhfTEVBRF9DQykgeworICAgICAgICAgICAgICAgICAgICBwcmV2Q0M9KGludCktYzsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYoKGZjZDE2PWdldEZDRDE2KGMpKT09MCkgeworICAgICAgICAgICAgICAgICAgICBwcmV2Q0M9MDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKwkgICAgICAgIC8vIGNoZWNrIG9uZSBhYm92ZS1taW5pbXVtLCByZWxldmFudCBjb2RlIHVuaXQgCisJICAgICAgICBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoYykpIHsKKwkgICAgICAgICAgICAvLyBjIGlzIGEgbGVhZCBzdXJyb2dhdGUsIGdldCB0aGUgcmVhbCBmY2QxNiAKKwkgICAgICAgICAgICBpZihpIT1sZW5ndGggJiYgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjMj1zcmNbaV0pKSB7CisJICAgICAgICAgICAgICAgICsraTsKKwkgICAgICAgICAgICAgICAgZmNkMTY9Z2V0RkNEMTZGcm9tU3Vycm9nYXRlUGFpcihmY2QxNiwgYzIpOworCSAgICAgICAgICAgIH0gZWxzZSB7CisJICAgICAgICAgICAgICAgIGZjZDE2PTA7CisJICAgICAgICAgICAgfQorCSAgICAgICAgfQorCisJICAgICAgICAvLyBwcmV2Q0MgaGFzIHZhbHVlcyBmcm9tIHRoZSBmb2xsb3dpbmcgcmFuZ2VzOgorCSAgICAgICAgLy8gMC4uMHhmZiAtdGhlIHByZXZpb3VzIHRyYWlsIGNvbWJpbmluZyBjbGFzcworCSAgICAgICAgLy8gPDAgICAgICAtdGhlIG5lZ2F0aXZlIHZhbHVlIG9mIHRoZSBwcmV2aW91cyBjb2RlIHVuaXQ7CisJICAgICAgICAvLyAgICAgICAgICB0aGF0IGNvZGUgdW5pdCB3YXMgPE1JTl9XSVRIX0xFQURfQ0MgYW5kIGl0cyBnZXRGQ0QxNigpCisJICAgICAgICAvLyAgICAgICAgICB3YXMgZGVmZXJyZWQgc28gdGhhdCBhdmVyYWdlIHRleHQgaXMgY2hlY2tlZCBmYXN0ZXIKKwkgICAgICAgIC8vCisJCisJICAgICAgICAvLyBjaGVjayB0aGUgY29tYmluaW5nIG9yZGVyIAorCSAgICAgICAgY2M9KGludCkoZmNkMTY+PjgpOworCSAgICAgICAgaWYoY2MhPTApIHsKKwkgICAgICAgICAgICBpZihwcmV2Q0M8MCkgeworCSAgICAgICAgICAgICAgICAvLyB0aGUgcHJldmlvdXMgY2hhcmFjdGVyIHdhcyA8X05PUk1fTUlOX1dJVEhfTEVBRF9DQywgCisgICAgICAgICAgICAgICAgICAgIC8vIHdlIG5lZWQgdG8gZ2V0IGl0cyB0cmFpbCBjYyAKKyAgICAgICAgICAgICAgICAgICAgLy8KKwkgICAgICAgICAgICAgICAgcHJldkNDPShpbnQpKGZjZFRyaWVJbXBsLmZjZFRyaWUuZ2V0Qk1QVmFsdWUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpLXByZXZDQykmMHhmZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisJICAgICAgICAgICAgfQorCQorCSAgICAgICAgICAgIGlmKGNjPHByZXZDQykgeworCSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisJICAgICAgICAgICAgfQorCSAgICAgICAgfQorCSAgICAgICAgcHJldkNDPShpbnQpKGZjZDE2JjB4ZmYpOworCSAgICB9CisJfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgTm9ybWFsaXplci5RdWlja0NoZWNrUmVzdWx0IHF1aWNrQ2hlY2soY2hhcltdIHNyYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzcmNTdGFydCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWluTm9NYXliZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBxY01hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGFsbG93TWF5YmUpeworICAgICAgICAKKyAgICAgICAgaW50IGNjT3JRQ01hc2s7CisgICAgICAgIGxvbmcgbm9ybTMyOworICAgICAgICBjaGFyIGMsIGMyOworICAgICAgICBjaGFyIGNjLCBwcmV2Q0M7CisgICAgICAgIGxvbmcgcWNOb3JtMzI7CisgICAgICAgIE5vcm1hbGl6ZXIuUXVpY2tDaGVja1Jlc3VsdCByZXN1bHQ7CisgICAgICAgIENvbXBvc2VQYXJ0QXJncyBhcmdzID0gbmV3IENvbXBvc2VQYXJ0QXJncygpOworICAgICAgICBjaGFyW10gYnVmZmVyIDsKKyAgICAgICAgaW50IHN0YXJ0ID0gc3JjU3RhcnQ7CisgICAgICAgIAorICAgICAgICBpZighaXNEYXRhTG9hZGVkKSB7CisgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplci5NQVlCRTsKKyAgICAgICAgfQorICAgICAgICAvLyBpbml0aWFsaXplIAorICAgICAgICBjY09yUUNNYXNrPUNDX01BU0t8cWNNYXNrOworICAgICAgICByZXN1bHQ9Tm9ybWFsaXplci5ZRVM7CisgICAgICAgIHByZXZDQz0wOworICAgICAgICAgICAgICAgIAorICAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICAgIGZvcig7OykgeworICAgICAgICAgICAgICAgIGlmKHNyY1N0YXJ0PT1zcmNMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgIH0gZWxzZSBpZigoYz1zcmNbc3JjU3RhcnQrK10pPj1taW5Ob01heWJlICYmIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoIG5vcm0zMj1nZXROb3JtMzIoYykpICYgY2NPclFDTWFzaykhPTApIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHByZXZDQz0wOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgCisgICAgICAgICAgICAvLyBjaGVjayBvbmUgYWJvdmUtbWluaW11bSwgcmVsZXZhbnQgY29kZSB1bml0IAorICAgICAgICAgICAgaWYoaXNOb3JtMzJMZWFkU3Vycm9nYXRlKG5vcm0zMikpIHsKKyAgICAgICAgICAgICAgICAvLyBjIGlzIGEgbGVhZCBzdXJyb2dhdGUsIGdldCB0aGUgcmVhbCBub3JtMzIgCisgICAgICAgICAgICAgICAgaWYoc3JjU3RhcnQhPXNyY0xpbWl0JiYgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjMj1zcmNbc3JjU3RhcnRdKSkgeworICAgICAgICAgICAgICAgICAgICArK3NyY1N0YXJ0OworICAgICAgICAgICAgICAgICAgICBub3JtMzI9Z2V0Tm9ybTMyRnJvbVN1cnJvZ2F0ZVBhaXIobm9ybTMyLGMyKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBub3JtMzI9MDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvLyBjaGVjayB0aGUgY29tYmluaW5nIG9yZGVyIAorICAgICAgICAgICAgY2M9KGNoYXIpKChub3JtMzI+PkNDX1NISUZUKSYweEZGKTsKKyAgICAgICAgICAgIGlmKGNjIT0wICYmIGNjPHByZXZDQykgeworICAgICAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVyLk5POworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJldkNDPWNjOworICAgIAorICAgICAgICAgICAgLy8gY2hlY2sgZm9yICJubyIgb3IgIm1heWJlIiBxdWljayBjaGVjayBmbGFncyAKKyAgICAgICAgICAgIHFjTm9ybTMyID0gbm9ybTMyICYgcWNNYXNrOworICAgICAgICAgICAgaWYoKHFjTm9ybTMyJiBRQ19BTllfTk8pPj0xKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0PSBOb3JtYWxpemVyLk5POworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfSBlbHNlIGlmKHFjTm9ybTMyIT0wKSB7CisgICAgICAgICAgICAgICAgLy8gIm1heWJlIiBjYW4gb25seSBvY2N1ciBmb3IgTkZDIGFuZCBORktDIAorICAgICAgICAgICAgICAgIGlmKGFsbG93TWF5YmUpeworICAgICAgICAgICAgICAgICAgICByZXN1bHQ9Tm9ybWFsaXplci5NQVlCRTsKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgLy8gbm9ybWFsaXplIGEgc2VjdGlvbiBhcm91bmQgaGVyZSB0byBzZWUgaWYgaXQgaXMgcmVhbGx5IAorICAgICAgICAgICAgICAgICAgICAvLyBub3JtYWxpemVkIG9yIG5vdCAKKyAgICAgICAgICAgICAgICAgICAgaW50IHByZXZTdGFydGVyOworICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gZGVjb21wUUNNYXNrOworICAgIAorICAgICAgICAgICAgICAgICAgICBkZWNvbXBRQ01hc2s9KHFjTWFzazw8MikmMHhmOyAvLyBkZWNvbXBvc2l0aW9uIHF1aWNrIGNoZWNrIG1hc2sgCisgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIGZpbmQgdGhlIHByZXZpb3VzIHN0YXJ0ZXIgCisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvLyBzZXQgcHJldlN0YXJ0ZXIgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgY3VycmVudCBjaGFyYWN0ZXIgCisgICAgICAgICAgICAgICAgICAgIHByZXZTdGFydGVyPXNyY1N0YXJ0LTE7IAorICAgICAgICAgICAgICAgICAgICBpZihVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHNyY1twcmV2U3RhcnRlcl0pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBzYWZlIGJlY2F1c2UgdW5wYWlyZWQgc3Vycm9nYXRlcyBkbyBub3QgcmVzdWx0IAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW4gIm1heWJlIgorICAgICAgICAgICAgICAgICAgICAgICAgLS1wcmV2U3RhcnRlcjsgCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcHJldlN0YXJ0ZXI9ZmluZFByZXZpb3VzU3RhcnRlcihzcmMsIHN0YXJ0LCBwcmV2U3RhcnRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjY09yUUNNYXNrLCBkZWNvbXBRQ01hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpbWluTm9NYXliZSk7CisgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIGZpbmQgdGhlIG5leHQgdHJ1ZSBzdGFydGVyIGluIFtzcmMuLmxpbWl0WyAtIG1vZGlmaWVzIAorICAgICAgICAgICAgICAgICAgICAvLyBzcmMgdG8gcG9pbnQgdG8gdGhlIG5leHQgc3RhcnRlciAKKyAgICAgICAgICAgICAgICAgICAgc3JjU3RhcnQ9ZmluZE5leHRTdGFydGVyKHNyYyxzcmNTdGFydCwgc3JjTGltaXQsIHFjTWFzaywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNvbXBRQ01hc2ssKGNoYXIpIG1pbk5vTWF5YmUpOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgLy9zZXQgdGhlIGFyZ3MgZm9yIGNvbXBvc2UgcGFydAorICAgICAgICAgICAgICAgICAgICBhcmdzLnByZXZDQyA9IHByZXZDQzsKKyAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIGRlY29tcG9zZSBhbmQgcmVjb21wb3NlIFtwcmV2U3RhcnRlci4uc3JjWyAKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyID0gY29tcG9zZVBhcnQoYXJncyxwcmV2U3RhcnRlcixzcmMsc3JjU3RhcnQsc3JjTGltaXQscWNNYXNrKTsKKyAgICAKKyAgICAgICAgICAgICAgICAgICAgLy8gY29tcGFyZSB0aGUgbm9ybWFsaXplZCB2ZXJzaW9uIHdpdGggdGhlIG9yaWdpbmFsIAorICAgICAgICAgICAgICAgICAgICBpZigwIT1zdHJDb21wYXJlKGJ1ZmZlciwwLGFyZ3MubGVuZ3RoLHNyYyxwcmV2U3RhcnRlciwoc3JjU3RhcnQtcHJldlN0YXJ0ZXIpLCBmYWxzZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdD1Ob3JtYWxpemVyLk5POyAvLyBub3JtYWxpemF0aW9uIGRpZmZlcnMgCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgICAgICAvLyBjb250aW51ZSBhZnRlciB0aGUgbmV4dCBzdGFydGVyIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0gCisgICAgCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gCisgICAgLy8gbWFrZSBORkQgJiBORktEIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisJcHVibGljIHN0YXRpYyBpbnQgZ2V0RGVjb21wb3NpdGlvbihpbnQgYyAvKlVURi0zMiovICwgCisJCQkJCQkJCQkJYm9vbGVhbiBjb21wYXQsCisJCQkgICAgICAgICAgICAgICAgICAgICAgIAkJY2hhcltdIGRlc3QsCisJCQkgICAgICAgICAgICAgICAgICAgICAgIAkJaW50IGRlc3RTdGFydCwgCisJCQkgICAgICAgICAgICAgICAgICAgICAgIAkJaW50IGRlc3RDYXBhY2l0eSkgeworCSAgICAgICAgCisJICAgIGlmKCAoVU5TSUdORURfSU5UX01BU0sgJiBjKTw9MHgxMGZmZmYpIHsKKwkgICAgICAgIGxvbmcgLyp1bnNpZ25lZCovIG5vcm0zMjsKKyAgICAgICAgICAgIGludCBxY01hc2s7CisJICAgICAgICBpbnQgbWluTm9NYXliZTsKKwkgICAgICAgIGludCBsZW5ndGg7CisJCisJICAgICAgICAvLyBpbml0aWFsaXplIAorCSAgICAgICAgaWYoIWNvbXBhdCkgeworCSAgICAgICAgICAgIG1pbk5vTWF5YmU9KGludClpbmRleGVzW0lOREVYX01JTl9ORkRfTk9fTUFZQkVdOworCSAgICAgICAgICAgIHFjTWFzaz1RQ19ORkQ7CisJICAgICAgICB9IGVsc2UgeworCSAgICAgICAgICAgIG1pbk5vTWF5YmU9KGludClpbmRleGVzW0lOREVYX01JTl9ORktEX05PX01BWUJFXTsKKwkgICAgICAgICAgICBxY01hc2s9UUNfTkZLRDsKKwkgICAgICAgIH0KKwkKKwkgICAgICAgIGlmKGM8bWluTm9NYXliZSkgeworCSAgICAgICAgICAgIC8vIHRyaXZpYWwgY2FzZSAKKwkgICAgICAgICAgICBpZihkZXN0Q2FwYWNpdHk+MCkgeworCSAgICAgICAgICAgICAgICBkZXN0WzBdPShjaGFyKWM7CisJICAgICAgICAgICAgfQorCSAgICAgICAgICAgIHJldHVybiAtMTsKKwkgICAgICAgIH0KKwkKKwkgICAgICAgIC8qIGRhdGEgbG9va3VwICovCisJICAgICAgICBub3JtMzI9Z2V0Tm9ybTMyKGMpOworCSAgICAgICAgaWYoKG5vcm0zMiZxY01hc2spPT0wKSB7CisJICAgICAgICAgICAgLyogc2ltcGxlIGNhc2U6IG5vIGRlY29tcG9zaXRpb24gKi8KKwkgICAgICAgICAgICBpZihjPD0weGZmZmYpIHsKKwkgICAgICAgICAgICAgICAgaWYoZGVzdENhcGFjaXR5PjApIHsKKwkgICAgICAgICAgICAgICAgICAgIGRlc3RbMF09KGNoYXIpYzsKKwkgICAgICAgICAgICAgICAgfQorCSAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisJICAgICAgICAgICAgfSBlbHNlIHsKKwkgICAgICAgICAgICAgICAgaWYoZGVzdENhcGFjaXR5Pj0yKSB7CisJICAgICAgICAgICAgICAgICAgICBkZXN0WzBdPVVURjE2LmdldExlYWRTdXJyb2dhdGUoYyk7CisJICAgICAgICAgICAgICAgICAgICBkZXN0WzFdPVVURjE2LmdldFRyYWlsU3Vycm9nYXRlKGMpOworCSAgICAgICAgICAgICAgICB9CisJICAgICAgICAgICAgICAgIHJldHVybiAtMjsKKwkgICAgICAgICAgICB9CisJICAgICAgICB9IGVsc2UgaWYoaXNOb3JtMzJIYW5ndWxPckphbW8obm9ybTMyKSkgeworCSAgICAgICAgICAgIC8qIEhhbmd1bCBzeWxsYWJsZTogZGVjb21wb3NlIGFsZ29yaXRobWljYWxseSAqLworCSAgICAgICAgICAgIGNoYXIgYzI7CisJCisJICAgICAgICAgICAgYy09SEFOR1VMX0JBU0U7CisJCisJICAgICAgICAgICAgYzI9KGNoYXIpKGMlSkFNT19UX0NPVU5UKTsKKwkgICAgICAgICAgICBjLz1KQU1PX1RfQ09VTlQ7CisJICAgICAgICAgICAgaWYoYzI+MCkgeworCSAgICAgICAgICAgICAgICBpZihkZXN0Q2FwYWNpdHk+PTMpIHsKKwkgICAgICAgICAgICAgICAgICAgIGRlc3RbMl09KGNoYXIpKEpBTU9fVF9CQVNFK2MyKTsKKwkgICAgICAgICAgICAgICAgfQorCSAgICAgICAgICAgICAgICBsZW5ndGg9MzsKKwkgICAgICAgICAgICB9IGVsc2UgeworCSAgICAgICAgICAgICAgICBsZW5ndGg9MjsKKwkgICAgICAgICAgICB9CisJCisJICAgICAgICAgICAgaWYoZGVzdENhcGFjaXR5Pj0yKSB7CisJICAgICAgICAgICAgICAgIGRlc3RbMV09KGNoYXIpKEpBTU9fVl9CQVNFK2MlSkFNT19WX0NPVU5UKTsKKwkgICAgICAgICAgICAgICAgZGVzdFswXT0oY2hhcikoSkFNT19MX0JBU0UrYy9KQU1PX1ZfQ09VTlQpOworCSAgICAgICAgICAgIH0KKwkgICAgICAgICAgICByZXR1cm4gbGVuZ3RoOworCSAgICAgICAgfSBlbHNlIHsKKwkgICAgICAgICAgICAvKiBjIGRlY29tcG9zZXMsIGdldCBldmVyeXRoaW5nIGZyb20gdGhlIHZhcmlhYmxlLWxlbmd0aCBleHRyYSAKKyAgICAgICAgICAgICAgICAgKiBkYXRhIAorICAgICAgICAgICAgICAgICAqLworCSAgICAgICAgICAgIGludCBwLCBsaW1pdDsKKwkgICAgICAgICAgICBEZWNvbXBvc2VBcmdzIGFyZ3MgPSBuZXcgRGVjb21wb3NlQXJncygpOworCSAgICAgICAgICAgIC8qIHRoZSBpbmRleCBpbnRvIGV4dHJhIGRhdGEgYXJyYXkqLyAJCQkJCisJICAgICAgICAgICAgcD1kZWNvbXBvc2Uobm9ybTMyLCBxY01hc2ssIGFyZ3MpOworCSAgICAgICAgICAgIGlmKGFyZ3MubGVuZ3RoPD1kZXN0Q2FwYWNpdHkpIHsKKwkgICAgICAgICAgICAgICAgbGltaXQ9cCthcmdzLmxlbmd0aDsKKwkgICAgICAgICAgICAgICAgZG8geworCSAgICAgICAgICAgICAgICAgICAgZGVzdFtkZXN0U3RhcnQrK109ZXh0cmFEYXRhW3ArK107CisJICAgICAgICAgICAgICAgIH0gd2hpbGUocDxsaW1pdCk7CisJICAgICAgICAgICAgfQorCSAgICAgICAgICAgIHJldHVybiBhcmdzLmxlbmd0aDsKKwkgICAgICAgIH0KKwkgICAgfSBlbHNlIHsKKwkgICAgICAgIHJldHVybiAwOworCSAgICB9CisJfQorCisJCisJcHVibGljIHN0YXRpYyBpbnQgZGVjb21wb3NlKGNoYXJbXSBzcmMsaW50IHNyY0luZGV4LGludCBzcmNMaW1pdCwKKwkJCQkJCQkJY2hhcltdIGRlc3QsaW50IGRlc3RJbmRleCxpbnQgZGVzdExpbWl0LAorCQkJCQkJIAkJYm9vbGVhbiBjb21wYXQsaW50W10gb3V0VHJhaWxDQykgeworCSAgICAgICAgICAgCQkJIAkKKwkgICAgY2hhcltdIGJ1ZmZlciA9IG5ldyBjaGFyWzNdOworCSAgICBpbnQgcHJldlNyYzsKKwkgICAgbG9uZyBub3JtMzI7CisgICAgICAgIGludCBjY09yUUNNYXNrLCBxY01hc2s7CisJICAgIGludCByZW9yZGVyU3RhcnRJbmRleCwgbGVuZ3RoOworCSAgICBjaGFyIGMsIGMyLCBtaW5Ob01heWJlOworCSAgICBpbnQvKnVuc2lnbmVkIGJ5dGUqLyBjYywgcHJldkNDLCB0cmFpbENDOworCQljaGFyW10gcDsKKwkJaW50IHBTdGFydDsKKwkgICAgaWYoIWNvbXBhdCkgeworCSAgICAgICAgbWluTm9NYXliZT0oY2hhcilpbmRleGVzW0lOREVYX01JTl9ORkRfTk9fTUFZQkVdOworCSAgICAgICAgcWNNYXNrPVFDX05GRDsKKwkgICAgfSBlbHNlIHsKKwkgICAgICAgIG1pbk5vTWF5YmU9KGNoYXIpaW5kZXhlc1tJTkRFWF9NSU5fTkZLRF9OT19NQVlCRV07CisJICAgICAgICBxY01hc2s9UUNfTkZLRDsKKwkgICAgfQorCQorCSAgICAvKiBpbml0aWFsaXplICovCisJICAgIGNjT3JRQ01hc2s9Q0NfTUFTS3xxY01hc2s7CisJICAgIHJlb3JkZXJTdGFydEluZGV4PTA7CisJICAgIHByZXZDQz0wOworCSAgICBub3JtMzI9MDsKKwkgICAgYz0wOworCQlwU3RhcnQ9MDsKKwkgICAgCisJICAgIGZvcig7OykgeworCSAgICAgICAgLyogY291bnQgY29kZSB1bml0cyBiZWxvdyB0aGUgbWluaW11bSBvciB3aXRoIGlycmVsZXZhbnQgZGF0YSBmb3IgCisgICAgICAgICAgICAgKiB0aGUgcXVpY2sgY2hlY2sgCisgICAgICAgICAgICAgKi8KKwkgICAgICAgIHByZXZTcmM9c3JjSW5kZXg7CisKKyAgICAgICAgICAgIHdoaWxlKHNyY0luZGV4IT1zcmNMaW1pdCAmJigoYz1zcmNbc3JjSW5kZXhdKTxtaW5Ob01heWJlIHx8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobm9ybTMyPWdldE5vcm0zMihjKSkmY2NPclFDTWFzayk9PTApKXsKKyAgICAgICAgICAgICAgICBwcmV2Q0M9MDsKKyAgICAgICAgICAgICAgICArK3NyY0luZGV4OworICAgICAgICAgICAgfQorCisJICAgICAgICAvKiBjb3B5IHRoZXNlIGNvZGUgdW5pdHMgYWxsIGF0IG9uY2UgKi8KKwkgICAgICAgIGlmKHNyY0luZGV4IT1wcmV2U3JjKSB7CisJICAgICAgICAgICAgbGVuZ3RoPShpbnQpKHNyY0luZGV4LXByZXZTcmMpOworCSAgICAgICAgICAgIGlmKChkZXN0SW5kZXgrbGVuZ3RoKTw9ZGVzdExpbWl0KSB7CisJICAgICAgICAgICAgCVN5c3RlbS5hcnJheWNvcHkoc3JjLHByZXZTcmMsZGVzdCxkZXN0SW5kZXgsbGVuZ3RoKTsKKwkgICAgICAgICAgICB9CisJICAgICAgICAgIAorCSAgICAgICAgICAgIGRlc3RJbmRleCs9bGVuZ3RoOworCSAgICAgICAgICAgIHJlb3JkZXJTdGFydEluZGV4PWRlc3RJbmRleDsKKwkgICAgICAgIH0KKwkKKwkgICAgICAgIC8qIGVuZCBvZiBzb3VyY2UgcmVhY2hlZD8gKi8KKwkgICAgICAgIGlmKHNyY0luZGV4PT1zcmNMaW1pdCkgeworCSAgICAgICAgICAgIGJyZWFrOworCSAgICAgICAgfQorCQorCSAgICAgICAgLyogYyBhbHJlYWR5IGNvbnRhaW5zICpzcmMgYW5kIG5vcm0zMiBpcyBzZXQgZm9yIGl0LCBpbmNyZW1lbnQgc3JjKi8KKwkgICAgICAgICsrc3JjSW5kZXg7CisJCisJICAgICAgICAvKiBjaGVjayBvbmUgYWJvdmUtbWluaW11bSwgcmVsZXZhbnQgY29kZSB1bml0ICovCisJICAgICAgICAvKgorCSAgICAgICAgICogZ2VuZXJhbGx5LCBzZXQgcCBhbmQgbGVuZ3RoIHRvIHRoZSBkZWNvbXBvc2l0aW9uIHN0cmluZworCSAgICAgICAgICogaW4gc2ltcGxlIGNhc2VzLCBwPT1OVUxMIGFuZCAoYywgYzIpIHdpbGwgaG9sZCB0aGUgbGVuZ3RoIGNvZGUgCisgICAgICAgICAgICAgKiB1bml0cyB0byBhcHBlbmQgaW4gYWxsIGNhc2VzLCBzZXQgY2MgdG8gdGhlIGxlYWQgYW5kIHRyYWlsQ0MgdG8gCisgICAgICAgICAgICAgKiB0aGUgdHJhaWwgY29tYmluaW5nIGNsYXNzCisJICAgICAgICAgKgorCSAgICAgICAgICogdGhlIGZvbGxvd2luZyBtZXJnZS1zb3J0IG9mIHRoZSBjdXJyZW50IGNoYXJhY3RlciBpbnRvIHRoZSAKKyAgICAgICAgICAgICAqIHByZWNlZGluZywgY2Fub25pY2FsbHkgb3JkZXJlZCByZXN1bHQgdGV4dCB3aWxsIHVzZSB0aGUgCisgICAgICAgICAgICAgKiBvcHRpbWl6ZWQgaW5zZXJ0T3JkZXJlZCgpCisJICAgICAgICAgKiBpZiB0aGVyZSBpcyBvbmx5IG9uZSBzaW5nbGUgY29kZSBwb2ludCB0byBwcm9jZXNzOworCSAgICAgICAgICogdGhpcyBpcyBpbmRpY2F0ZWQgd2l0aCBwPT1OVUxMLCBhbmQgKGMsIGMyKSBpcyB0aGUgY2hhcmFjdGVyIHRvIAorICAgICAgICAgICAgICogaW5zZXJ0CisJICAgICAgICAgKiAoKGMsIDApIGZvciBhIEJNUCBjaGFyYWN0ZXIgYW5kIChsZWFkIHN1cnJvZ2F0ZSwgdHJhaWwgc3Vycm9nYXRlKQorCSAgICAgICAgICogZm9yIGEgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIpCisJICAgICAgICAgKiBvdGhlcndpc2UsIHBbbGVuZ3RoXSBpcyBtZXJnZWQgaW4gd2l0aCBfbWVyZ2VPcmRlcmVkKCkKKwkgICAgICAgICAqLworCSAgICAgICAgaWYoaXNOb3JtMzJIYW5ndWxPckphbW8obm9ybTMyKSkgeworLy8JICAgICAgICAgICAgaWYoaWdub3JlSGFuZ3VsKSB7CisvLwkgICAgICAgICAgICAgICAgYzI9MDsKKy8vCSAgICAgICAgICAgICAgICBwPU5VTEw7CisvLwkgICAgICAgICAgICAgICAgbGVuZ3RoPTE7CisvLwkgICAgICAgICAgICB9IGVsc2UgeworCSAgICAgICAgICAgICAgICAvLyBIYW5ndWwgc3lsbGFibGU6IGRlY29tcG9zZSBhbGdvcml0aG1pY2FsbHkgCisJICAgICAgICAgICAgICAgIHA9YnVmZmVyOworCSAgICAgICAgICAgICAgICBwU3RhcnQ9MDsKKwkgICAgICAgICAgICAgICAgY2M9dHJhaWxDQz0wOworCQorCSAgICAgICAgICAgICAgICBjLT1IQU5HVUxfQkFTRTsKKwkKKwkgICAgICAgICAgICAgICAgYzI9KGNoYXIpKGMlSkFNT19UX0NPVU5UKTsKKwkgICAgICAgICAgICAgICAgYy89SkFNT19UX0NPVU5UOworCSAgICAgICAgICAgICAgICBpZihjMj4wKSB7CisJICAgICAgICAgICAgICAgICAgICBidWZmZXJbMl09KGNoYXIpKEpBTU9fVF9CQVNFK2MyKTsKKwkgICAgICAgICAgICAgICAgICAgIGxlbmd0aD0zOworCSAgICAgICAgICAgICAgICB9IGVsc2UgeworCSAgICAgICAgICAgICAgICAgICAgbGVuZ3RoPTI7CisJICAgICAgICAgICAgICAgIH0KKwkKKwkgICAgICAgICAgICAgICAgYnVmZmVyWzFdPShjaGFyKShKQU1PX1ZfQkFTRStjJUpBTU9fVl9DT1VOVCk7CisJICAgICAgICAgICAgICAgIGJ1ZmZlclswXT0oY2hhcikoSkFNT19MX0JBU0UrYy9KQU1PX1ZfQ09VTlQpOworLy8JICAgICAgICAgICAgfQorCSAgICAgICAgfSBlbHNlIHsKKwkgICAgICAgICAgICBpZihpc05vcm0zMlJlZ3VsYXIobm9ybTMyKSkgeworCSAgICAgICAgICAgICAgICBjMj0wOworCSAgICAgICAgICAgICAgICBsZW5ndGg9MTsKKwkgICAgICAgICAgICB9IGVsc2UgeworCSAgICAgICAgICAgICAgICAvLyBjIGlzIGEgbGVhZCBzdXJyb2dhdGUsIGdldCB0aGUgcmVhbCBub3JtMzIgCisJICAgICAgICAgICAgICAgIGlmKHNyY0luZGV4IT1zcmNMaW1pdCAmJiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoYzI9c3JjW3NyY0luZGV4XSkpIHsKKwkgICAgICAgICAgICAgICAgICAgICsrc3JjSW5kZXg7CisJICAgICAgICAgICAgICAgICAgICBsZW5ndGg9MjsKKwkgICAgICAgICAgICAgICAgICAgIG5vcm0zMj1nZXROb3JtMzJGcm9tU3Vycm9nYXRlUGFpcihub3JtMzIsIGMyKTsKKwkgICAgICAgICAgICAgICAgfSBlbHNlIHsKKwkgICAgICAgICAgICAgICAgICAgIGMyPTA7CisJICAgICAgICAgICAgICAgICAgICBsZW5ndGg9MTsKKwkgICAgICAgICAgICAgICAgICAgIG5vcm0zMj0wOworCSAgICAgICAgICAgICAgICB9CisJICAgICAgICAgICAgfQorCQorCSAgICAgICAgICAgIC8qIGdldCB0aGUgZGVjb21wb3NpdGlvbiBhbmQgdGhlIGxlYWQgYW5kIHRyYWlsIGNjJ3MgKi8KKwkgICAgICAgICAgICBpZigobm9ybTMyJnFjTWFzayk9PTApIHsKKwkgICAgICAgICAgICAgICAgLyogYyBkb2VzIG5vdCBkZWNvbXBvc2UgKi8KKwkgICAgICAgICAgICAgICAgY2M9dHJhaWxDQz0oaW50KSgoVU5TSUdORURfQllURV9NQVNLKSAmIChub3JtMzI+PkNDX1NISUZUKSk7CisJICAgICAgICAgICAgICAgIHA9bnVsbDsKKyAgICAgICAgICAgICAgICAgICAgcFN0YXJ0PS0xOworCSAgICAgICAgICAgIH0gZWxzZSB7CisJICAgICAgICAgICAgCURlY29tcG9zZUFyZ3MgYXJnID0gbmV3IERlY29tcG9zZUFyZ3MoKTsKKwkgICAgICAgICAgICAJLyogYyBkZWNvbXBvc2VzLCBnZXQgZXZlcnl0aGluZyBmcm9tIHRoZSB2YXJpYWJsZS1sZW5ndGggCisgICAgICAgICAgICAgICAgICAgICAqIGV4dHJhIGRhdGEgCisgICAgICAgICAgICAgICAgICAgICAqLworCSAgICAgICAgICAgICAgICBwU3RhcnQ9ZGVjb21wb3NlKG5vcm0zMiwgcWNNYXNrLCBhcmcpOworCSAgICAgICAgICAgICAgICBwPWV4dHJhRGF0YTsKKwkgICAgICAgICAgICAgICAgbGVuZ3RoPWFyZy5sZW5ndGg7CisJICAgICAgICAgICAgICAgIGNjPWFyZy5jYzsKKwkgICAgICAgICAgICAgICAgdHJhaWxDQz1hcmcudHJhaWxDQzsKKwkgICAgICAgICAgICAgICAgaWYobGVuZ3RoPT0xKSB7CisJICAgICAgICAgICAgICAgICAgICAvKiBmYXN0cGF0aCBhIHNpbmdsZSBjb2RlIHVuaXQgZnJvbSBkZWNvbXBvc2l0aW9uICovCisJICAgICAgICAgICAgICAgICAgICBjPXBbcFN0YXJ0XTsKKwkgICAgICAgICAgICAgICAgICAgIGMyPTA7CisJICAgICAgICAgICAgICAgICAgICBwPW51bGw7CisgICAgICAgICAgICAgICAgICAgICAgICBwU3RhcnQ9LTE7CisJICAgICAgICAgICAgICAgIH0KKwkgICAgICAgICAgICB9CisJICAgICAgICB9CisJCisJICAgICAgICAvKiBhcHBlbmQgdGhlIGRlY29tcG9zaXRpb24gdG8gdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciwgYXNzdW1lIAorICAgICAgICAgICAgICogbGVuZ3RoPjAgCisgICAgICAgICAgICAgKi8KKwkgICAgICAgIGlmKChkZXN0SW5kZXgrbGVuZ3RoKTw9ZGVzdExpbWl0KSB7CisJICAgICAgICAgICAgaW50IHJlb3JkZXJTcGxpdD1kZXN0SW5kZXg7CisJICAgICAgICAgICAgaWYocD09bnVsbCkgeworCSAgICAgICAgICAgICAgICAvKiBmYXN0cGF0aDogc2luZ2xlIGNvZGUgcG9pbnQgKi8KKwkgICAgICAgICAgICAgICAgaWYoY2MhPTAgJiYgY2M8cHJldkNDKSB7CisJICAgICAgICAgICAgICAgICAgICAvKiAoYywgYzIpIGlzIG91dCBvZiBvcmRlciB3aXRoIHJlc3BlY3QgdG8gdGhlIHByZWNlZGluZworICAgICAgICAgICAgICAgICAgICAgICAgICogIHRleHQgCisgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKwkgICAgICAgICAgICAgICAgICAgIGRlc3RJbmRleCs9bGVuZ3RoOworCSAgICAgICAgICAgICAgICAgICAgdHJhaWxDQz1pbnNlcnRPcmRlcmVkKGRlc3QscmVvcmRlclN0YXJ0SW5kZXgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW9yZGVyU3BsaXQsIGRlc3RJbmRleCwgYywgYzIsIGNjKTsKKwkgICAgICAgICAgICAgICAgfSBlbHNlIHsKKwkgICAgICAgICAgICAgICAgICAgIC8qIGp1c3QgYXBwZW5kIChjLCBjMikgKi8KKwkgICAgICAgICAgICAgICAgICAgIGRlc3RbZGVzdEluZGV4KytdPWM7CisJICAgICAgICAgICAgICAgICAgICBpZihjMiE9MCkgeworCSAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbZGVzdEluZGV4KytdPWMyOworCSAgICAgICAgICAgICAgICAgICAgfQorCSAgICAgICAgICAgICAgICB9CisJICAgICAgICAgICAgfSBlbHNlIHsKKwkgICAgICAgICAgICAgICAgLyogZ2VuZXJhbDogbXVsdGlwbGUgY29kZSBwb2ludHMgKG9yZGVyZWQgYnkgdGhlbXNlbHZlcykgCisgICAgICAgICAgICAgICAgICAgICAqIGZyb20gZGVjb21wb3NpdGlvbiAKKyAgICAgICAgICAgICAgICAgICAgICovCisJICAgICAgICAgICAgICAgIGlmKGNjIT0wICYmIGNjPHByZXZDQykgeworCSAgICAgICAgICAgICAgICAgICAgLyogdGhlIGRlY29tcG9zaXRpb24gaXMgb3V0IG9mIG9yZGVyIHdpdGggcmVzcGVjdCB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAqICBwcmVjZWRpbmcgdGV4dCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAqLworCSAgICAgICAgICAgICAgICAgICAgZGVzdEluZGV4Kz1sZW5ndGg7CisJICAgICAgICAgICAgICAgICAgICB0cmFpbENDPW1lcmdlT3JkZXJlZChkZXN0LHJlb3JkZXJTdGFydEluZGV4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlb3JkZXJTcGxpdCxwLCBwU3RhcnQscFN0YXJ0K2xlbmd0aCk7CisJICAgICAgICAgICAgICAgIH0gZWxzZSB7CisJICAgICAgICAgICAgICAgICAgICAvKiBqdXN0IGFwcGVuZCB0aGUgZGVjb21wb3NpdGlvbiAqLworCSAgICAgICAgICAgICAgICAgICAgZG8geworCSAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbZGVzdEluZGV4KytdPXBbcFN0YXJ0KytdOworCSAgICAgICAgICAgICAgICAgICAgfSB3aGlsZSgtLWxlbmd0aD4wKTsKKwkgICAgICAgICAgICAgICAgfQorCSAgICAgICAgICAgIH0KKwkgICAgICAgIH0gZWxzZSB7CisJICAgICAgICAgICAgLyogYnVmZmVyIG92ZXJmbG93ICovCisJICAgICAgICAgICAgLyoga2VlcCBpbmNyZW1lbnRpbmcgdGhlIGRlc3RJbmRleCBmb3IgcHJlZmxpZ2h0aW5nICovCisJICAgICAgICAgICAgZGVzdEluZGV4Kz1sZW5ndGg7CisJICAgICAgICB9CisJCisJICAgICAgICBwcmV2Q0M9dHJhaWxDQzsKKwkgICAgICAgIGlmKHByZXZDQz09MCkgeworCSAgICAgICAgICAgIHJlb3JkZXJTdGFydEluZGV4PWRlc3RJbmRleDsKKwkgICAgICAgIH0KKwkgICAgfQorCQorCSAgICBvdXRUcmFpbENDWzBdPXByZXZDQzsKKworCSAgICByZXR1cm4gZGVzdEluZGV4OworCX0KKwkKKwkvKiBtYWtlIE5GQyAmIE5GS0MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgTmV4dENvbWJpbmluZ0FyZ3N7CisJCWNoYXJbXSBzb3VyY2U7CisJCWludCBzdGFydDsKKwkJLy9pbnQgbGltaXQ7CisJCWNoYXIgYzsKKwkJY2hhciBjMjsKKwkJaW50Lyp1bnNpZ25lZCovIGNvbWJpbmluZ0luZGV4OworCQljaGFyIC8qdW5zaWduZWQgYnl0ZSovIGNjOworCX0KKwkKKwkvKiBnZXQgdGhlIGNvbXBvc2l0aW9uIHByb3BlcnRpZXMgb2YgdGhlIG5leHQgY2hhcmFjdGVyICovCisJcHJpdmF0ZSBzdGF0aWMgaW50IC8qdW5zaWduZWQqLwlnZXROZXh0Q29tYmluaW5nKE5leHRDb21iaW5pbmdBcmdzIGFyZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0KSB7CisJICAgIGxvbmcvKnVuc2lnbmVkKi8gbm9ybTMyOyAKKyAgICAgICAgaW50IGNvbWJpbmVGbGFnczsKKwkKKwkgICAgYXJncy5jPWFyZ3Muc291cmNlW2FyZ3Muc3RhcnQrK107CisJICAgIG5vcm0zMj1nZXROb3JtMzIoYXJncy5jKTsKKwkgICAgaWYoKG5vcm0zMiYoQ0NfTUFTS3xDT01CSU5FU19BTlkpKT09MCkgeworCSAgICAgICAgYXJncy5jMj0wOworCSAgICAgICAgYXJncy5jb21iaW5pbmdJbmRleD0wOworCSAgICAgICAgYXJncy5jYz0wOworCSAgICAgICAgcmV0dXJuIDA7CisJICAgIH0gZWxzZSB7CisJICAgICAgICBpZihpc05vcm0zMlJlZ3VsYXIobm9ybTMyKSkgeworCSAgICAgICAgICAgIGFyZ3MuYzI9MDsKKwkgICAgICAgIH0gZWxzZSBpZihpc05vcm0zMkhhbmd1bE9ySmFtbyhub3JtMzIpKSB7CisJICAgICAgICAgICAgLyogYSBjb21wYXRpYmlsaXR5IGRlY29tcG9zaXRpb24gY29udGFpbmVkIEphbW9zICovCisJICAgICAgICAgICAgYXJncy5jMj0wOworCSAgICAgICAgICAgIGFyZ3MuY29tYmluaW5nSW5kZXg9KGludCkoKFVOU0lHTkVEX0lOVF9NQVNLKSYoMHhmZmYwfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobm9ybTMyPj5FWFRSQV9TSElGVCkpKTsKKwkgICAgICAgICAgICBhcmdzLmNjPTA7CisJICAgICAgICAgICAgcmV0dXJuIChpbnQpKG5vcm0zMiZDT01CSU5FU19BTlkpOworCSAgICAgICAgfSBlbHNlIHsKKwkgICAgICAgICAgICAvKiBjIGlzIGEgbGVhZCBzdXJyb2dhdGUsIGdldCB0aGUgcmVhbCBub3JtMzIgKi8KKwkgICAgICAgICAgICBpZihhcmdzLnN0YXJ0IT1saW1pdCAmJiBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGFyZ3MuYzI9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3Muc291cmNlW2FyZ3Muc3RhcnRdKSkgeworCSAgICAgICAgICAgICAgICArK2FyZ3Muc3RhcnQ7CisJICAgICAgICAgICAgICAgIG5vcm0zMj1nZXROb3JtMzJGcm9tU3Vycm9nYXRlUGFpcihub3JtMzIsIGFyZ3MuYzIpOworCSAgICAgICAgICAgIH0gZWxzZSB7CisJICAgICAgICAgICAgICAgIGFyZ3MuYzI9MDsKKwkgICAgICAgICAgICAgICAgYXJncy5jb21iaW5pbmdJbmRleD0wOworCSAgICAgICAgICAgICAgICBhcmdzLmNjPTA7CisJICAgICAgICAgICAgICAgIHJldHVybiAwOworCSAgICAgICAgICAgIH0KKwkgICAgICAgIH0KKwkKKwkgICAgICAgIGNvbWJpbmVGbGFncz0oaW50KShub3JtMzImQ09NQklORVNfQU5ZKTsKKwkgICAgICAgIGlmKGNvbWJpbmVGbGFncyE9MCkgeworICAgICAgICAgICAgICAgIGludCBpbmRleCA9IGdldEV4dHJhRGF0YUluZGV4KG5vcm0zMik7CisJICAgICAgICAgICAgYXJncy5jb21iaW5pbmdJbmRleD1pbmRleD4wID8gZXh0cmFEYXRhWyhpbmRleC0xKV0gOjA7CisJICAgICAgICB9CisJCisJICAgICAgICBhcmdzLmNjPShjaGFyKSgoVU5TSUdORURfQllURV9NQVNLKSYobm9ybTMyPj5DQ19TSElGVCkpOworCSAgICAgICAgcmV0dXJuIGNvbWJpbmVGbGFnczsKKwkgICAgfQorCX0KKwkKKwkvKgorCSAqIGdpdmVuIGEgY29tcG9zaXRpb24tcmVzdWx0IHN0YXJ0ZXIgKGMsIGMyKSAtIHdoaWNoIG1lYW5zIGl0cyBjYz09MCwKKwkgKiBpdCBjb21iaW5lcyBmb3J3YXJkLCBpdCBoYXMgZXh0cmEgZGF0YSwgaXRzIG5vcm0zMiE9MCwKKwkgKiBpdCBpcyBub3QgYSBIYW5ndWwgb3IgSmFtbywKKwkgKiBnZXQganVzdCBpdHMgY29tYmluZUZ3ZEluZGV4CisJICoKKwkgKiBub3JtMzIoYykgaXMgc3BlY2lhbCBpZiBhbmQgb25seSBpZiBjMiE9MAorCSAqLworCXByaXZhdGUgc3RhdGljIGludC8qdW5zaWduZWQqLyBnZXRDb21iaW5pbmdJbmRleEZyb21TdGFydGVyKGNoYXIgYyxjaGFyIGMyKXsKKwkgICAgbG9uZy8qdW5zaWduZWQqLyBub3JtMzI7CisJCisJICAgIG5vcm0zMj1nZXROb3JtMzIoYyk7CisJICAgIGlmKGMyIT0wKSB7CisJICAgICAgICBub3JtMzI9Z2V0Tm9ybTMyRnJvbVN1cnJvZ2F0ZVBhaXIobm9ybTMyLCBjMik7CisJICAgIH0KKwkgICAgcmV0dXJuIGV4dHJhRGF0YVsoZ2V0RXh0cmFEYXRhSW5kZXgobm9ybTMyKS0xKV07CisJfQorCQorCS8qCisJICogRmluZCB0aGUgcmVjb21wb3NpdGlvbiByZXN1bHQgZm9yCisJICogYSBmb3J3YXJkLWNvbWJpbmluZyBjaGFyYWN0ZXIKKwkgKiAoc3BlY2lmaWVkIHdpdGggYSBwb2ludGVyIHRvIGl0cyBwYXJ0IG9mIHRoZSBjb21iaW5pbmdUYWJsZVtdKQorCSAqIGFuZCBhIGJhY2t3YXJkLWNvbWJpbmluZyBjaGFyYWN0ZXIKKwkgKiAoc3BlY2lmaWVkIHdpdGggaXRzIGNvbWJpbmVCYWNrSW5kZXgpLgorCSAqCisJICogSWYgdGhlc2UgdHdvIGNoYXJhY3RlcnMgY29tYmluZSwgdGhlbiBzZXQgKHZhbHVlLCB2YWx1ZTIpCisJICogd2l0aCB0aGUgY29kZSB1bml0KHMpIG9mIHRoZSBjb21wb3NpdGlvbiBjaGFyYWN0ZXIuCisJICoKKwkgKiBSZXR1cm4gdmFsdWU6CisJICogMCAgICBkbyBub3QgY29tYmluZQorCSAqIDEgICAgY29tYmluZQorCSAqID4xICAgY29tYmluZSwgYW5kIHRoZSBjb21wb3NpdGlvbiBpcyBhIGZvcndhcmQtY29tYmluaW5nIHN0YXJ0ZXIKKwkgKgorCSAqIFNlZSB1bm9ybWltcC5oIGZvciBhIGRlc2NyaXB0aW9uIG9mIHRoZSBjb21wb3NpdGlvbiB0YWJsZSBmb3JtYXQuCisJICovCisJcHJpdmF0ZSBzdGF0aWMgaW50Lyp1bnNpZ25lZCovIGNvbWJpbmUoY2hhcltddGFibGUsaW50IHRhYmxlU3RhcnQsIAorCQkJCQkJCQkgICBpbnQvKnVuc2luZ2VkKi8gY29tYmluZUJhY2tJbmRleCwKKwkgICAgICAgICAJCQkJCSAgIGludFtdIG91dFZhbHVlcykgeworCSAgICBpbnQvKnVuc2lnbmVkKi8ga2V5OworCSAgICBpbnQgdmFsdWUsdmFsdWUyOworCSAgICAKKwkJaWYob3V0VmFsdWVzLmxlbmd0aDwyKXsKKwkJCXRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKwkJfQorCQkKKwkgICAgLyogc2VhcmNoIGluIHRoZSBzdGFydGVyJ3MgY29tcG9zaXRpb24gdGFibGUgKi8KKwkgICAgZm9yKDs7KSB7CisJICAgICAgICBrZXk9dGFibGVbdGFibGVTdGFydCsrXTsKKwkgICAgICAgIGlmKGtleT49Y29tYmluZUJhY2tJbmRleCkgeworCSAgICAgICAgICAgIGJyZWFrOworCSAgICAgICAgfQorCSAgICAgICAgdGFibGVTdGFydCs9ICgodGFibGVbdGFibGVTdGFydF0mMHg4MDAwKSAhPSAwKT8gMiA6IDE7CisJICAgIH0KKwkKKwkgICAgLyogbWFzayBvZmYgYml0IDE1LCB0aGUgbGFzdC1lbnRyeS1pbi10aGUtbGlzdCBmbGFnICovCisJICAgIGlmKChrZXkmMHg3ZmZmKT09Y29tYmluZUJhY2tJbmRleCkgeworCSAgICAgICAgLyogZm91bmQhIGNvbWJpbmUhICovCisJICAgICAgICB2YWx1ZT10YWJsZVt0YWJsZVN0YXJ0XTsKKwkKKwkgICAgICAgIC8qIGlzIHRoZSBjb21wb3NpdGlvbiBhIHN0YXJ0ZXIgdGhhdCBjb21iaW5lcyBmb3J3YXJkPyAqLworCSAgICAgICAga2V5PShpbnQpKChVTlNJR05FRF9JTlRfTUFTSykmKCh2YWx1ZSYweDIwMDApKzEpKTsKKwkKKwkgICAgICAgIC8qIGdldCB0aGUgY29tcG9zaXRpb24gcmVzdWx0IGNvZGUgcG9pbnQgZnJvbSB0aGUgdmFyaWFibGUtbGVuZ3RoIAorICAgICAgICAgICAgICogcmVzdWx0IHZhbHVlIAorICAgICAgICAgICAgICovCisJICAgICAgICBpZigodmFsdWUmMHg4MDAwKSAhPSAwKSB7CisJICAgICAgICAgICAgaWYoKHZhbHVlJjB4NDAwMCkgIT0gMCkgeworCSAgICAgICAgICAgICAgICAvKiBzdXJyb2dhdGUgcGFpciBjb21wb3NpdGlvbiByZXN1bHQgKi8KKwkgICAgICAgICAgICAgICAgdmFsdWU9KGludCkoKFVOU0lHTkVEX0lOVF9NQVNLKSYoKHZhbHVlJjB4M2ZmKXwweGQ4MDApKTsKKwkgICAgICAgICAgICAgICAgdmFsdWUyPXRhYmxlW3RhYmxlU3RhcnQrMV07CisJICAgICAgICAgICAgfSBlbHNlIHsKKwkgICAgICAgICAgICAgICAgLyogQk1QIGNvbXBvc2l0aW9uIHJlc3VsdCBVKzIwMDAuLlUrZmZmZiAqLworCSAgICAgICAgICAgICAgICB2YWx1ZT10YWJsZVt0YWJsZVN0YXJ0KzFdOworCSAgICAgICAgICAgICAgICB2YWx1ZTI9MDsKKwkgICAgICAgICAgICB9CisJICAgICAgICB9IGVsc2UgeworCSAgICAgICAgICAgIC8qIEJNUCBjb21wb3NpdGlvbiByZXN1bHQgVSswMDAwLi5VKzFmZmYgKi8KKwkgICAgICAgICAgICB2YWx1ZSY9MHgxZmZmOworCSAgICAgICAgICAgIHZhbHVlMj0wOworCSAgICAgICAgfQorICAgICAgICAgICAgb3V0VmFsdWVzWzBdPXZhbHVlOworICAgICAgICAgICAgb3V0VmFsdWVzWzFdPXZhbHVlMjsJCisJICAgICAgICByZXR1cm4ga2V5OworCSAgICB9IGVsc2UgeworCSAgICAgICAgLyogbm90IGZvdW5kICovCisJICAgICAgICByZXR1cm4gMDsKKwkgICAgfQorCX0KKwkKKwkKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBSZWNvbXBvc2VBcmdzeworCQljaGFyW10gc291cmNlOworCQlpbnQgc3RhcnQ7CisJCWludCBsaW1pdDsKKwl9CisgICAgLyoKKyAgICAgKiByZWNvbXBvc2UgdGhlIGNoYXJhY3RlcnMgaW4gW3AuLmxpbWl0WworICAgICAqICh3aGljaCBpcyBpbiBORkQgLSBkZWNvbXBvc2VkIGFuZCBjYW5vbmljYWxseSBvcmRlcmVkKSwKKyAgICAgKiBhZGp1c3QgbGltaXQsIGFuZCByZXR1cm4gdGhlIHRyYWlsaW5nIGNjCisgICAgICoKKyAgICAgKiBzaW5jZSBmb3IgTkZLQyB3ZSBtYXkgZ2V0IEphbW9zIGluIGRlY29tcG9zaXRpb25zLCB3ZSBuZWVkIHRvCisgICAgICogcmVjb21wb3NlIHRob3NlIHRvbworICAgICAqCisgICAgICogbm90ZSB0aGF0IHJlY29tcG9zaXRpb24gbmV2ZXIgbGVuZ3RoZW5zIHRoZSB0ZXh0OgorICAgICAqIGFueSBjaGFyYWN0ZXIgY29uc2lzdHMgb2YgZWl0aGVyIG9uZSBvciB0d28gY29kZSB1bml0czsKKyAgICAgKiBhIGNvbXBvc2l0aW9uIG1heSBjb250YWluIGF0IG1vc3Qgb25lIG1vcmUgY29kZSB1bml0IHRoYW4gdGhlIG9yaWdpbmFsIAorICAgICAqIHN0YXJ0ZXIsIHdoaWxlIHRoZSBjb21iaW5pbmcgbWFyayB0aGF0IGlzIHJlbW92ZWQgaGFzIGF0IGxlYXN0IG9uZSBjb2RlIAorICAgICAqIHVuaXQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyLyp1bnNpZ25lZCBieXRlKi8gcmVjb21wb3NlKFJlY29tcG9zZUFyZ3MgYXJncykgeworICAgICAgICBpbnQgIHJlbW92ZSwgcSwgcjsKKyAgICAgICAgaW50IC8qdW5zaWduZWQqLyBjb21iaW5lRmxhZ3M7CisgICAgICAgIGludCAvKnVuc2lnbmVkKi8gY29tYmluZUZ3ZEluZGV4LCBjb21iaW5lQmFja0luZGV4OworICAgICAgICBpbnQgLyp1bnNpZ25lZCovIHJlc3VsdCwgdmFsdWUsIHZhbHVlMjsKKyAgICAgICAgaW50IC8qdW5zaWduZWQgYnl0ZSovICBwcmV2Q0M7CisgICAgICAgIGJvb2xlYW4gc3RhcnRlcklzU3VwcGxlbWVudGFyeTsKKyAgICAJaW50IHN0YXJ0ZXI7CisgICAgCWludFtdIG91dFZhbHVlcyA9IG5ldyBpbnRbMl07CisgICAgICAgIHN0YXJ0ZXI9LTE7ICAgICAgICAgICAgICAgICAgIC8qIG5vIHN0YXJ0ZXIgKi8KKyAgICAgICAgY29tYmluZUZ3ZEluZGV4PTA7ICAgICAgICAgICAgLyogd2lsbCBub3QgYmUgdXNlZCB1bnRpbCBzdGFydGVyIT1OVUxMICovCisgICAgICAgIHN0YXJ0ZXJJc1N1cHBsZW1lbnRhcnk9ZmFsc2U7IC8qIHdpbGwgbm90IGJlIHVzZWQgdW50aWwgc3RhcnRlciE9TlVMTCAqLworICAgICAgICBwcmV2Q0M9MDsKKyAgICAgICAgCisgICAgICAgIE5leHRDb21iaW5pbmdBcmdzIG5jQXJnID0gbmV3IE5leHRDb21iaW5pbmdBcmdzKCk7CisgICAgICAgIG5jQXJnLnNvdXJjZSAgPSBhcmdzLnNvdXJjZTsKKyAgICAgICAgCisgICAgICAgIG5jQXJnLmNjICAgICAgPTA7CisgICAgICAgIG5jQXJnLmMyICAgICAgPTA7ICAgIAorCisgICAgICAgIGZvcig7OykgeworICAgICAgICAgICAgbmNBcmcuc3RhcnQgPSBhcmdzLnN0YXJ0OworICAgICAgICAgICAgY29tYmluZUZsYWdzPWdldE5leHRDb21iaW5pbmcobmNBcmcsYXJncy5saW1pdCk7CisgICAgICAgICAgICBjb21iaW5lQmFja0luZGV4PW5jQXJnLmNvbWJpbmluZ0luZGV4OworICAgICAgICAgICAgYXJncy5zdGFydCA9IG5jQXJnLnN0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBpZigoKGNvbWJpbmVGbGFncyZDT01CSU5FU19CQUNLKSE9MCkgJiYgc3RhcnRlciE9LTEpIHsKKyAgICAgICAgICAgICAgICBpZigoY29tYmluZUJhY2tJbmRleCYweDgwMDApIT0wKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGMgaXMgYSBKYW1vIFYvVCwgc2VlIGlmIHdlIGNhbiBjb21wb3NlIGl0IHdpdGggdGhlIAorICAgICAgICAgICAgICAgICAgICAgKiBwcmV2aW91cyBjaGFyYWN0ZXIgCisgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICByZW1vdmU9LTE7IC8qIE5VTEwgd2hpbGUgbm8gSGFuZ3VsIGNvbXBvc2l0aW9uICovCisgICAgICAgICAgICAgICAgICAgIG5jQXJnLmMyPWFyZ3Muc291cmNlW3N0YXJ0ZXJdOworICAgICAgICAgICAgICAgICAgICBpZihjb21iaW5lQmFja0luZGV4PT0weGZmZjIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEphbW8gViwgY29tcG9zZSB3aXRoIHByZXZpb3VzIEphbW8gTCBhbmQgZm9sbG93aW5nIAorICAgICAgICAgICAgICAgICAgICAgICAgICogSmFtbyBUIAorICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICBuY0FyZy5jMj0oY2hhcikobmNBcmcuYzItSkFNT19MX0JBU0UpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYobmNBcmcuYzI8SkFNT19MX0NPVU5UKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlPWFyZ3Muc3RhcnQtMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuY0FyZy5jPShjaGFyKShIQU5HVUxfQkFTRSsobmNBcmcuYzIqSkFNT19WX0NPVU5UKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuY0FyZy5jLUpBTU9fVl9CQVNFKSkqSkFNT19UX0NPVU5UKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihhcmdzLnN0YXJ0IT1hcmdzLmxpbWl0ICYmIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuY0FyZy5jMj0oY2hhcikoYXJncy5zb3VyY2VbYXJncy5zdGFydF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLUpBTU9fVF9CQVNFKSk8SkFNT19UX0NPVU5UKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrYXJncy5zdGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmNBcmcuYys9bmNBcmcuYzI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3Muc291cmNlW3N0YXJ0ZXJdPW5jQXJnLmM7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgICAgICBpZihyZW1vdmUhPS0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiByZW1vdmUgdGhlIEphbW8ocykgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIHE9cmVtb3ZlOworICAgICAgICAgICAgICAgICAgICAgICAgcj1hcmdzLnN0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUocjxhcmdzLmxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncy5zb3VyY2VbcSsrXT1hcmdzLnNvdXJjZVtyKytdOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYXJncy5zdGFydD1yZW1vdmU7CisgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLmxpbWl0PXE7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAgICAgbmNBcmcuYzI9MDsgLyogYzIgaGVsZCAqc3RhcnRlciB0ZW1wb3JhcmlseSAqLworICAgIAorICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgKiBub3c6IGNjPT0wIGFuZCB0aGUgY29tYmluaW5nIGluZGV4IGRvZXMgbm90IGluY2x1ZGUgCisgICAgICAgICAgICAgICAgICAgICAqICJmb3J3YXJkIiAtPiB0aGUgcmVzdCBvZiB0aGUgbG9vcCBib2R5IHdpbGwgcmVzZXQgc3RhcnRlcgorICAgICAgICAgICAgICAgICAgICAgKiB0byBOVUxMOyB0ZWNobmljYWxseSwgYSBjb21wb3NlZCBIYW5ndWwgc3lsbGFibGUgaXMgYSAKKyAgICAgICAgICAgICAgICAgICAgICogc3RhcnRlciwgYnV0IGl0IGRvZXMgbm90IGNvbWJpbmUgZm9yd2FyZCBub3cgdGhhdCB3ZSBoYXZlCisgICAgICAgICAgICAgICAgICAgICAqIGNvbnN1bWVkIGFsbCBlbGlnaWJsZSBKYW1vczsgZm9yIEphbW8gVi9ULCBjb21iaW5lRmxhZ3MgCisgICAgICAgICAgICAgICAgICAgICAqIGRvZXMgbm90IGNvbnRhaW4gX05PUk1fQ09NQklORVNfRldECisgICAgICAgICAgICAgICAgICAgICAqLworICAgIAorICAgICAgICAgICAgICAgIH0gZWxzZSBpZigKKyAgICAgICAgICAgICAgICAgICAgLyogdGhlIHN0YXJ0ZXIgaXMgbm90IGEgSmFtbyBWL1QgYW5kICovCisgICAgICAgICAgICAgICAgICAgICEoKGNvbWJpbmVGd2RJbmRleCYweDgwMDApIT0wKSAmJgorICAgICAgICAgICAgICAgICAgICAvKiB0aGUgY29tYmluaW5nIG1hcmsgaXMgbm90IGJsb2NrZWQgYW5kICovCisgICAgICAgICAgICAgICAgICAgIChwcmV2Q0M8bmNBcmcuY2MgfHwgcHJldkNDPT0wKSAmJgorICAgICAgICAgICAgICAgICAgICAvKiB0aGUgc3RhcnRlciBhbmQgdGhlIGNvbWJpbmluZyBtYXJrIChjLCBjMikgZG8gY29tYmluZSAqLworICAgICAgICAgICAgICAgICAgICAwIT0ocmVzdWx0PWNvbWJpbmUoY29tYmluaW5nVGFibGUsY29tYmluZUZ3ZEluZGV4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbWJpbmVCYWNrSW5kZXgsIG91dFZhbHVlcykpCisgICAgICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgCXZhbHVlPW91dFZhbHVlc1swXTsKKyAgICAgICAgICAgICAgICAJdmFsdWUyPW91dFZhbHVlc1sxXTsKKyAgICAgICAgICAgICAgICAgICAgLyogcmVwbGFjZSB0aGUgc3RhcnRlciB3aXRoIHRoZSBjb21wb3NpdGlvbiwgcmVtb3ZlIHRoZSAKKyAgICAgICAgICAgICAgICAgICAgICogY29tYmluaW5nIG1hcmsgCisgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICByZW1vdmU9IG5jQXJnLmMyPT0wID8gYXJncy5zdGFydC0xIDogYXJncy5zdGFydC0yOyAvKiBpbmRleCB0byB0aGUgY29tYmluaW5nIG1hcmsgKi8KKyAgICAKKyAgICAgICAgICAgICAgICAgICAgLyogcmVwbGFjZSB0aGUgc3RhcnRlciB3aXRoIHRoZSBjb21wb3NpdGlvbiAqLworICAgICAgICAgICAgICAgICAgICBhcmdzLnNvdXJjZVtzdGFydGVyXT0oY2hhcil2YWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgaWYoc3RhcnRlcklzU3VwcGxlbWVudGFyeSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYodmFsdWUyIT0wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogYm90aCBhcmUgc3VwcGxlbWVudGFyeSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3Muc291cmNlW3N0YXJ0ZXIrMV09KGNoYXIpdmFsdWUyOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0aGUgY29tcG9zaXRpb24gaXMgc2hvcnRlciB0aGFuIHRoZSBzdGFydGVyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBtb3ZlIHRoZSBpbnRlcm1lZGlhdGUgY2hhcmFjdGVycyBmb3J3YXJkIG9uZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ZXJJc1N1cHBsZW1lbnRhcnk9ZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcT1zdGFydGVyKzE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcj1xKzE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUocjxyZW1vdmUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncy5zb3VyY2VbcSsrXT1hcmdzLnNvdXJjZVtyKytdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLXJlbW92ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmKHZhbHVlMiE9MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogdGhlIGNvbXBvc2l0aW9uIGlzIGxvbmdlciB0aGFuIHRoZSBzdGFydGVyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIG1vdmUgdGhlIGludGVybWVkaWF0ZSBjaGFyYWN0ZXJzIGJhY2sgb25lICovCisgICAgICAgICAgICAgICAgICAgICAgICBzdGFydGVySXNTdXBwbGVtZW50YXJ5PXRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiB0ZW1wb3JhcmlseSBpbmNyZW1lbnQgZm9yIHRoZSBsb29wIGJvdW5kYXJ5ICovCisgICAgICAgICAgICAgICAgICAgICAgICArK3N0YXJ0ZXI7IAorICAgICAgICAgICAgICAgICAgICAgICAgcT1yZW1vdmU7CisgICAgICAgICAgICAgICAgICAgICAgICByPSsrcmVtb3ZlOworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUoc3RhcnRlcjxxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncy5zb3VyY2VbLS1yXT1hcmdzLnNvdXJjZVstLXFdOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYXJncy5zb3VyY2Vbc3RhcnRlcl09KGNoYXIpdmFsdWUyOworICAgICAgICAgICAgICAgICAgICAgICAgLS1zdGFydGVyOyAvKiB1bmRvIHRoZSB0ZW1wb3JhcnkgaW5jcmVtZW50ICovCisgICAgICAgICAgICAgICAgICAgIC8qIH0gZWxzZSB7IGJvdGggYXJlIG9uIHRoZSBCTVAsIG5vdGhpbmcgbW9yZSB0byBkbyAqLworICAgICAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgICAgIC8qIHJlbW92ZSB0aGUgY29tYmluaW5nIG1hcmsgYnkgbW92aW5nIHRoZSBmb2xsb3dpbmcgdGV4dCAKKyAgICAgICAgICAgICAgICAgICAgICogb3ZlciBpdCAqLworICAgICAgICAgICAgICAgICAgICBpZihyZW1vdmU8YXJncy5zdGFydCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcT1yZW1vdmU7CisgICAgICAgICAgICAgICAgICAgICAgICByPWFyZ3Muc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZShyPGFyZ3MubGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLnNvdXJjZVtxKytdPWFyZ3Muc291cmNlW3IrK107CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLnN0YXJ0PXJlbW92ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MubGltaXQ9cTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgICAgICAvKiBrZWVwIHByZXZDQyBiZWNhdXNlIHdlIHJlbW92ZWQgdGhlIGNvbWJpbmluZyBtYXJrICovCisgICAgCisgICAgICAgICAgICAgICAgICAgIC8qIGRvbmU/ICovCisgICAgICAgICAgICAgICAgICAgIGlmKGFyZ3Muc3RhcnQ9PWFyZ3MubGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoY2hhcilwcmV2Q0M7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAgICAgLyogaXMgdGhlIGNvbXBvc2l0aW9uIGEgc3RhcnRlciB0aGF0IGNvbWJpbmVzIGZvcndhcmQ/ICovCisgICAgICAgICAgICAgICAgICAgIGlmKHJlc3VsdD4xKSB7CisgICAgICAgICAgICAgICAgICAgICAgIGNvbWJpbmVGd2RJbmRleD1nZXRDb21iaW5pbmdJbmRleEZyb21TdGFydGVyKChjaGFyKXZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpdmFsdWUyKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRlcj0tMTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgICAgICAvKiB3ZSBjb21iaW5lZCBhbmQgc2V0IHByZXZDQywgY29udGludWUgd2l0aCBsb29raW5nIGZvciAKKyAgICAgICAgICAgICAgICAgICAgICogY29tcG9zaXRpb25zICovCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8qIG5vIGNvbWJpbmF0aW9uIHRoaXMgdGltZSAqLworICAgICAgICAgICAgcHJldkNDPW5jQXJnLmNjOworICAgICAgICAgICAgaWYoYXJncy5zdGFydD09YXJncy5saW1pdCkgeworICAgICAgICAgICAgICAgIHJldHVybiAoY2hhcilwcmV2Q0M7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvKiBpZiAoYywgYzIpIGRpZCBub3QgY29tYmluZSwgdGhlbiBjaGVjayBpZiBpdCBpcyBhIHN0YXJ0ZXIgKi8KKyAgICAgICAgICAgIGlmKG5jQXJnLmNjPT0wKSB7CisgICAgICAgICAgICAgICAgLyogZm91bmQgYSBuZXcgc3RhcnRlciAqLworICAgICAgICAgICAgICAgIGlmKChjb21iaW5lRmxhZ3MmQ09NQklORVNfRldEKSE9MCkgeworICAgICAgICAgICAgICAgICAgICAvKiBpdCBtYXkgY29tYmluZSB3aXRoIHNvbWV0aGluZywgcHJlcGFyZSBmb3IgaXQgKi8KKyAgICAgICAgICAgICAgICAgICAgaWYobmNBcmcuYzI9PTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ZXJJc1N1cHBsZW1lbnRhcnk9ZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGFydGVyPWFyZ3Muc3RhcnQtMTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ZXJJc1N1cHBsZW1lbnRhcnk9ZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGFydGVyPWFyZ3Muc3RhcnQtMjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjb21iaW5lRndkSW5kZXg9Y29tYmluZUJhY2tJbmRleDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBpdCB3aWxsIG5vdCBjb21iaW5lIHdpdGggYW55dGhpbmcgKi8KKyAgICAgICAgICAgICAgICAgICAgc3RhcnRlcj0tMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAKKyAgICAvLyBmaW5kIHRoZSBsYXN0IHRydWUgc3RhcnRlciBiZXR3ZWVuIHNyY1tzdGFydF0uLi4uc3JjW2N1cnJlbnRdIGdvaW5nIAorICAgIC8vIGJhY2t3YXJkcyBhbmQgcmV0dXJuIGl0cyBpbmRleAorICAgIHByaXZhdGUgc3RhdGljIGludCBmaW5kUHJldmlvdXNTdGFydGVyKGNoYXJbXXNyYywgaW50IHNyY1N0YXJ0LCBpbnQgY3VycmVudCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gY2NPclFDTWFzaywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gZGVjb21wUUNNYXNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBtaW5Ob01heWJlKSB7IAorICAgICAgIGxvbmcgbm9ybTMyOyAKKyAgICAgICBQcmV2QXJncyBhcmdzID0gbmV3IFByZXZBcmdzKCk7CisgICAgICAgYXJncy5zcmMgPSBzcmM7CisgICAgICAgYXJncy5zdGFydCA9IHNyY1N0YXJ0OworICAgICAgIGFyZ3MuY3VycmVudCA9IGN1cnJlbnQ7CisgICAgICAgCisgICAgICAgd2hpbGUoYXJncy5zdGFydDxhcmdzLmN1cnJlbnQpIHsgCisgICAgICAgICAgIG5vcm0zMj0gZ2V0UHJldk5vcm0zMihhcmdzLCBtaW5Ob01heWJlLCBjY09yUUNNYXNrfGRlY29tcFFDTWFzayk7IAorICAgICAgICAgICBpZihpc1RydWVTdGFydGVyKG5vcm0zMiwgY2NPclFDTWFzaywgZGVjb21wUUNNYXNrKSkgeyAKKyAgICAgICAgICAgICAgIGJyZWFrOyAKKyAgICAgICAgICAgfSAKKyAgICAgICB9IAorICAgICAgIHJldHVybiBhcmdzLmN1cnJlbnQ7IAorICAgIH0KKwkKKyAgICAvKiBmaW5kIHRoZSBmaXJzdCB0cnVlIHN0YXJ0ZXIgaW4gW3NyYy4ubGltaXRbIGFuZCByZXR1cm4gdGhlIAorICAgICAqIHBvaW50ZXIgdG8gaXQgCisgICAgICovCisJcHJpdmF0ZSBzdGF0aWMgaW50LyppbmRleCovCWZpbmROZXh0U3RhcnRlcihjaGFyW10gc3JjLGludCBzdGFydCxpbnQgbGltaXQsCisJICAgICAgICAgICAgICAgICAJCQkJICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIHFjTWFzaywgCisJICAgICAgICAgICAgICAgICAJCQkJICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIGRlY29tcFFDTWFzaywgCisJICAgICAgICAgICAgICAgICAJCQkJICAgICAgICAgICAgY2hhciBtaW5Ob01heWJlKSB7CisJICAgIGludCBwOworCSAgICBsb25nLyp1bnNpZ25lZCovIG5vcm0zMjsgCisgICAgICAgIGludCBjY09yUUNNYXNrOworCSAgICBjaGFyIGMsIGMyOworCQorCSAgICBjY09yUUNNYXNrPUNDX01BU0t8cWNNYXNrOworCSAgICAKKwkJRGVjb21wb3NlQXJncyBkZWNvbXBBcmdzID0gbmV3IERlY29tcG9zZUFyZ3MoKTsKKworCSAgICBmb3IoOzspIHsKKwkgICAgICAgIGlmKHN0YXJ0PT1saW1pdCkgeworCSAgICAgICAgICAgIGJyZWFrOyAvKiBlbmQgb2Ygc3RyaW5nICovCisJICAgICAgICB9CisJICAgICAgICBjPXNyY1tzdGFydF07CisJICAgICAgICBpZihjPG1pbk5vTWF5YmUpIHsKKwkgICAgICAgICAgICBicmVhazsgLyogY2F0Y2hlcyBOVUwgdGVybWluYXRlciwgdG9vICovCisJICAgICAgICB9CisJCisJICAgICAgICBub3JtMzI9Z2V0Tm9ybTMyKGMpOworCSAgICAgICAgaWYoKG5vcm0zMiZjY09yUUNNYXNrKT09MCkgeworCSAgICAgICAgICAgIGJyZWFrOyAvKiB0cnVlIHN0YXJ0ZXIgKi8KKwkgICAgICAgIH0KKwkKKwkgICAgICAgIGlmKGlzTm9ybTMyTGVhZFN1cnJvZ2F0ZShub3JtMzIpKSB7CisJICAgICAgICAgICAgLyogYyBpcyBhIGxlYWQgc3Vycm9nYXRlLCBnZXQgdGhlIHJlYWwgbm9ybTMyICovCisJICAgICAgICAgICAgaWYoKHN0YXJ0KzEpPT1saW1pdCB8fCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIVVURjE2LmlzVHJhaWxTdXJyb2dhdGUoYzI9KHNyY1tzdGFydCsxXSkpKXsKKyAgICAgICAgICAgICAgICAgICAgLyogdW5tYXRjaGVkIGZpcnN0IHN1cnJvZ2F0ZTogY291bnRzIGFzIGEgdHJ1ZSBzdGFydGVyICovICAgICAgICAgICAgICAgICAgCisJICAgICAgICAgICAgICAgIGJyZWFrOyAKKwkgICAgICAgICAgICB9CisJICAgICAgICAgICAgbm9ybTMyPWdldE5vcm0zMkZyb21TdXJyb2dhdGVQYWlyKG5vcm0zMiwgYzIpOworCQorCSAgICAgICAgICAgIGlmKChub3JtMzImY2NPclFDTWFzayk9PTApIHsKKwkgICAgICAgICAgICAgICAgYnJlYWs7IC8qIHRydWUgc3RhcnRlciAqLworCSAgICAgICAgICAgIH0KKwkgICAgICAgIH0gZWxzZSB7CisJICAgICAgICAgICAgYzI9MDsKKwkgICAgICAgIH0KKwkKKwkgICAgICAgIC8qIChjLCBjMikgaXMgbm90IGEgdHJ1ZSBzdGFydGVyIGJ1dCBpdHMgZGVjb21wb3NpdGlvbiBtYXkgYmUgKi8KKwkgICAgICAgIGlmKChub3JtMzImZGVjb21wUUNNYXNrKSE9MCkgeworCSAgICAgICAgICAgIC8qIChjLCBjMikgZGVjb21wb3NlcywgZ2V0IGV2ZXJ5dGhpbmcgZnJvbSB0aGUgdmFyaWFibGUtbGVuZ3RoCisgICAgICAgICAgICAgICAgICogIGV4dHJhIGRhdGEgKi8KKwkgICAgICAgICAgICBwPWRlY29tcG9zZShub3JtMzIsIGRlY29tcFFDTWFzaywgZGVjb21wQXJncyk7CisJCisJICAgICAgICAgICAgLyogZ2V0IHRoZSBmaXJzdCBjaGFyYWN0ZXIncyBub3JtMzIgdG8gY2hlY2sgaWYgaXQgaXMgYSB0cnVlIAorICAgICAgICAgICAgICAgICAqIHN0YXJ0ZXIgKi8KKwkgICAgICAgICAgICBpZihkZWNvbXBBcmdzLmNjPT0wICYmIChnZXROb3JtMzIoZXh0cmFEYXRhLHAsIHFjTWFzaykmcWNNYXNrKT09MCkgeworCSAgICAgICAgICAgICAgICBicmVhazsgLyogdHJ1ZSBzdGFydGVyICovCisJICAgICAgICAgICAgfQorCSAgICAgICAgfQorCQorCSAgICAgICAgc3RhcnQrPSBjMj09MCA/IDEgOiAyOyAvKiBub3QgYSB0cnVlIHN0YXJ0ZXIsIGNvbnRpbnVlICovCisJICAgIH0KKwkKKwkgICAgcmV0dXJuIHN0YXJ0OworCX0KKwkKKyAgICAKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBDb21wb3NlUGFydEFyZ3N7CisJCWludCBwcmV2Q0M7CisgICAgICAgIGludCBsZW5ndGg7ICAgLyogbGVuZ3RoIG9mIGRlY29tcG9zZWQgcGFydCAqLworCX0KKwkgICAgCisgCisJcHJpdmF0ZSBzdGF0aWMgY2hhcltdIGNvbXBvc2VQYXJ0KENvbXBvc2VQYXJ0QXJncyBhcmdzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHByZXZTdGFydGVyLCAKKwkJCQkgICAgICAgCSAgICAgICAgICAgICAgY2hhcltdIHNyYywgaW50IHN0YXJ0LCBpbnQgbGltaXQsCisJICAgICAgICAgICAgIAkJCSAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gcWNNYXNrKSB7CisJICAgIGludCByZWNvbXBvc2VMaW1pdDsKKyAgICAgICAgYm9vbGVhbiBjb21wYXQgPSgocWNNYXNrJlFDX05GS0MpIT0wKTsKKyAgICAgICAgCisJICAgIC8qIGRlY29tcG9zZSBbcHJldlN0YXJ0ZXIuLnNyY1sgKi8KKyAgICAgICAgaW50W10gb3V0VHJhaWxDQyA9IG5ldyBpbnRbMV07CisgICAgICAgIGNoYXJbXSBidWZmZXIgPSBuZXcgY2hhclsobGltaXQtcHJldlN0YXJ0ZXIpKk1BWF9CVUZGRVJfU0laRV07CisKKyAgICAgICAgZm9yKDs7KXsKKyAgICAgICAgICAgIGFyZ3MubGVuZ3RoPWRlY29tcG9zZShzcmMscHJldlN0YXJ0ZXIsKHN0YXJ0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLDAsYnVmZmVyLmxlbmd0aCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhdCxvdXRUcmFpbENDKTsKKyAgICAgICAgICAgIGlmKGFyZ3MubGVuZ3RoPD1idWZmZXIubGVuZ3RoKXsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGJ1ZmZlciA9IG5ldyBjaGFyW2FyZ3MubGVuZ3RoXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAKKwkKKwkgICAgLyogcmVjb21wb3NlIHRoZSBkZWNvbXBvc2l0aW9uICovCisJICAgIHJlY29tcG9zZUxpbWl0PWFyZ3MubGVuZ3RoOworCSAgCQorCSAgICBpZihhcmdzLmxlbmd0aD49MikgeworCSAgICAgICAgUmVjb21wb3NlQXJncyByY0FyZ3MgPSBuZXcgUmVjb21wb3NlQXJncygpOworCSAgICAgICAgcmNBcmdzLnNvdXJjZQk9IGJ1ZmZlcjsKKwkgICAgICAgIHJjQXJncy5zdGFydCAgICA9IDA7CisJICAgICAgICByY0FyZ3MubGltaXQJPSByZWNvbXBvc2VMaW1pdDsgCisJICAgICAgICBhcmdzLnByZXZDQz1yZWNvbXBvc2UocmNBcmdzKTsKKwkgICAgICAgIHJlY29tcG9zZUxpbWl0ID0gcmNBcmdzLmxpbWl0OworCSAgICB9CisgICAgICAgIAorCSAgICAvKiByZXR1cm4gd2l0aCBhIHBvaW50ZXIgdG8gdGhlIHJlY29tcG9zaXRpb24gYW5kIGl0cyBsZW5ndGggKi8KKwkgICAgYXJncy5sZW5ndGg9cmVjb21wb3NlTGltaXQ7CisJICAgIHJldHVybiBidWZmZXI7CisJfQorICAgIAorCXByaXZhdGUgc3RhdGljIGJvb2xlYW4gY29tcG9zZUhhbmd1bChjaGFyIHByZXYsIGNoYXIgYywKKwkJCQkJCQkJICAgICAgICAgbG9uZy8qdW5zaWduZWQqLyBub3JtMzIsIAorCQkJCQkJCQkgICAgICAgICBjaGFyW10gc3JjLGludFtdIHNyY0luZGV4LCBpbnQgbGltaXQsCisJICAgICAgICAgICAgICAgCQkJCSAgICAgICAgIGJvb2xlYW4gY29tcGF0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGRlc3QsaW50IGRlc3RJbmRleCkgeworCSAgICBpbnQgc3RhcnQ9c3JjSW5kZXhbMF07CisJICAgIGlmKGlzSmFtb1ZUTm9ybTMySmFtb1Yobm9ybTMyKSkgeworCSAgICAgICAgLyogYyBpcyBhIEphbW8gViwgY29tcG9zZSB3aXRoIHByZXZpb3VzIEphbW8gTCBhbmQgCisgICAgICAgICAgICAgKiBmb2xsb3dpbmcgSmFtbyBUICovCisJICAgICAgICBwcmV2PShjaGFyKShwcmV2LUpBTU9fTF9CQVNFKTsKKwkgICAgICAgIGlmKHByZXY8SkFNT19MX0NPVU5UKSB7CisJICAgICAgICAgICAgYz0oY2hhcikoSEFOR1VMX0JBU0UrKHByZXYqSkFNT19WX0NPVU5UKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjLUpBTU9fVl9CQVNFKSkqSkFNT19UX0NPVU5UKTsKKwkKKwkgICAgICAgICAgICAvKiBjaGVjayBpZiB0aGUgbmV4dCBjaGFyYWN0ZXIgaXMgYSBKYW1vIFQgKG5vcm1hbCBvciAKKyAgICAgICAgICAgICAgICAgKiBjb21wYXRpYmlsaXR5KSAqLworCSAgICAgICAgICAgIGlmKHN0YXJ0IT1saW1pdCkgeworCSAgICAgICAgICAgICAgICBjaGFyIG5leHQsIHQ7CisJCisJICAgICAgICAgICAgICAgIG5leHQ9c3JjW3N0YXJ0XTsKKwkgICAgICAgICAgICAgICAgaWYoKHQ9KGNoYXIpKG5leHQtSkFNT19UX0JBU0UpKTxKQU1PX1RfQ09VTlQpIHsKKwkgICAgICAgICAgICAgICAgICAgIC8qIG5vcm1hbCBKYW1vIFQgKi8KKwkgICAgICAgICAgICAgICAgICAgICsrc3RhcnQ7CisJICAgICAgICAgICAgICAgICAgICBjKz10OworCSAgICAgICAgICAgICAgICB9IGVsc2UgaWYoY29tcGF0KSB7CisJICAgICAgICAgICAgICAgICAgICAvKiBpZiBORktDLCB0aGVuIGNoZWNrIGZvciBjb21wYXRpYmlsaXR5IEphbW8gVCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIChCTVAgb25seSkgKi8KKwkgICAgICAgICAgICAgICAgICAgIG5vcm0zMj1nZXROb3JtMzIobmV4dCk7CisJICAgICAgICAgICAgICAgICAgICBpZihpc05vcm0zMlJlZ3VsYXIobm9ybTMyKSAmJiAoKG5vcm0zMiZRQ19ORktEKSE9MCkpIHsKKwkgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcCAvKmluZGV4IGludG8gZXh0cmEgZGF0YSBhcnJheSovOworCSAgICAgICAgICAgICAgICAgICAgICAgIERlY29tcG9zZUFyZ3MgZGNBcmdzID0gbmV3IERlY29tcG9zZUFyZ3MoKTsKKwkgICAgICAgICAgICAgICAgICAgICAgICBwPWRlY29tcG9zZShub3JtMzIsIFFDX05GS0QsIGRjQXJncyk7CisJICAgICAgICAgICAgICAgICAgICAgICAgaWYoZGNBcmdzLmxlbmd0aD09MSAmJiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHQ9KGNoYXIpKGV4dHJhRGF0YVtwXS1KQU1PX1RfQkFTRSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SkFNT19UX0NPVU5UKSB7CisJICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNvbXBhdGliaWxpdHkgSmFtbyBUICovCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrc3RhcnQ7CisJICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMrPXQ7CisJICAgICAgICAgICAgICAgICAgICAgICAgfQorCSAgICAgICAgICAgICAgICAgICAgfQorCSAgICAgICAgICAgICAgICB9CisJICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZGVzdFtkZXN0SW5kZXhdPWM7CisgICAgICAgICAgICAgICAgc3JjSW5kZXhbMF09c3RhcnQ7CisJICAgICAgICAgICAgcmV0dXJuIHRydWU7CisJICAgICAgICB9CisJICAgIH0gZWxzZSBpZihpc0hhbmd1bFdpdGhvdXRKYW1vVChwcmV2KSkgeworCSAgICAgICAgLyogYyBpcyBhIEphbW8gVCwgY29tcG9zZSB3aXRoIHByZXZpb3VzIEhhbmd1bCBMViB0aGF0IGRvZXMgbm90IAorICAgICAgICAgICAgICogY29udGFpbiBhIEphbW8gVCAqLworICAgICAgICAgICAgZGVzdFtkZXN0SW5kZXhdPShjaGFyKShwcmV2KyhjLUpBTU9fVF9CQVNFKSk7CisJICAgICAgICBzcmNJbmRleFswXT1zdGFydDsKKwkgICAgICAgIHJldHVybiB0cnVlOworCSAgICB9CisJICAgIHJldHVybiBmYWxzZTsKKwl9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBpbnQgY29tcG9zZShjaGFyW10gc3JjLCBjaGFyW10gZGVzdCxib29sZWFuIGNvbXBhdCl7CisgICAgICAgIHJldHVybiBjb21wb3NlKHNyYywwLHNyYy5sZW5ndGgsZGVzdCwwLGRlc3QubGVuZ3RoLGNvbXBhdCk7CisgICAgfQorICAgIAorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvbXBvc2UoY2hhcltdIHNyYywgaW50IHNyY0luZGV4LCBpbnQgc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGVzdCxpbnQgZGVzdEluZGV4LGludCBkZXN0TGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGNvbXBhdCkgeworICAgICAgICAKKyAgICAgICAgaW50IHByZXZTcmMsIHByZXZTdGFydGVyOworICAgICAgICBsb25nLyp1bnNpZ25lZCovIG5vcm0zMjsgCisgICAgICAgIGludCBjY09yUUNNYXNrLCBxY01hc2s7CisgICAgICAgIGludCAgcmVvcmRlclN0YXJ0SW5kZXgsIGxlbmd0aDsKKyAgICAgICAgY2hhciBjLCBjMiwgbWluTm9NYXliZTsKKyAgICAgICAgaW50Lyp1bnNpZ25lZCBieXRlKi8gY2MsIHByZXZDQzsKKyAgICAgICAgaW50W10gaW9JbmRleCA9IG5ldyBpbnRbMV07CisgICAgICAgIAorICAgICAgICBpZighY29tcGF0KSB7CisgICAgICAgICAgICBtaW5Ob01heWJlPShjaGFyKWluZGV4ZXNbSU5ERVhfTUlOX05GQ19OT19NQVlCRV07CisgICAgICAgICAgICBxY01hc2s9UUNfTkZDOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbWluTm9NYXliZT0oY2hhcilpbmRleGVzW0lOREVYX01JTl9ORktDX05PX01BWUJFXTsKKyAgICAgICAgICAgIHFjTWFzaz1RQ19ORktDOworICAgICAgICB9CisgICAgCisgICAgICAgIC8qCisgICAgICAgICAqIHByZXZTdGFydGVyIHBvaW50cyB0byB0aGUgbGFzdCBjaGFyYWN0ZXIgYmVmb3JlIHRoZSBjdXJyZW50IG9uZQorICAgICAgICAgKiB0aGF0IGlzIGEgInRydWUiIHN0YXJ0ZXIgd2l0aCBjYz09MCBhbmQgcXVpY2sgY2hlY2sgInllcyIuCisgICAgICAgICAqCisgICAgICAgICAqIHByZXZTdGFydGVyIHdpbGwgYmUgdXNlZCBpbnN0ZWFkIG9mIGxvb2tpbmcgZm9yIGEgdHJ1ZSBzdGFydGVyCisgICAgICAgICAqIHdoaWxlIGluY3JlbWVudGFsbHkgZGVjb21wb3NpbmcgW3ByZXZTdGFydGVyLi5wcmV2U3JjWworICAgICAgICAgKiBpbiBfY29tcG9zZVBhcnQoKS4gSGF2aW5nIGEgZ29vZCBwcmV2U3RhcnRlciBhbGxvd3MgdG8ganVzdCBkZWNvbXBvc2UKKyAgICAgICAgICogdGhlIGVudGlyZSBbcHJldlN0YXJ0ZXIuLnByZXZTcmNbLgorICAgICAgICAgKgorICAgICAgICAgKiBXaGVuIF9jb21wb3NlUGFydCgpIGJhY2tzIG91dCBmcm9tIHByZXZTcmMgYmFjayB0byBwcmV2U3RhcnRlciwKKyAgICAgICAgICogdGhlbiBpdCBhbHNvIGJhY2tzIG91dCBkZXN0SW5kZXggYnkgdGhlIHNhbWUgYW1vdW50LgorICAgICAgICAgKiBUaGVyZWZvcmUsIGF0IGFsbCB0aW1lcywgdGhlIChwcmV2U3JjLXByZXZTdGFydGVyKSBzb3VyY2UgdW5pdHMKKyAgICAgICAgICogbXVzdCBjb3JyZXNwb25kIDE6MSB0byBkZXN0aW5hdGlvbiB1bml0cyBjb3VudGVkIHdpdGggZGVzdEluZGV4LAorICAgICAgICAgKiBleGNlcHQgZm9yIHJlb3JkZXJpbmcuCisgICAgICAgICAqIFRoaXMgaXMgdHJ1ZSBmb3IgdGhlIHFjICJ5ZXMiIGNoYXJhY3RlcnMgY29waWVkIGluIHRoZSBmYXN0IGxvb3AsCisgICAgICAgICAqIGFuZCBmb3IgcHVyZSByZW9yZGVyaW5nLgorICAgICAgICAgKiBwcmV2U3RhcnRlciBtdXN0IGJlIHNldCBmb3J3YXJkIHRvIHNyYyB3aGVuIHRoaXMgaXMgbm90IHRydWU6CisgICAgICAgICAqIEluIF9jb21wb3NlUGFydCgpIGFuZCBhZnRlciBjb21wb3NpbmcgYSBIYW5ndWwgc3lsbGFibGUuCisgICAgICAgICAqCisgICAgICAgICAqIFRoaXMgbWVjaGFuaXNtIHJlbGllcyBvbiB0aGUgYXNzdW1wdGlvbiB0aGF0IHRoZSBkZWNvbXBvc2l0aW9uIG9mIGEgCisgICAgICAgICAqIHRydWUgc3RhcnRlciBhbHNvIGJlZ2lucyB3aXRoIGEgdHJ1ZSBzdGFydGVyLiBnZW5ub3JtL3N0b3JlLmMgY2hlY2tzIAorICAgICAgICAgKiBmb3IgdGhpcy4KKyAgICAgICAgICovCisgICAgICAgIHByZXZTdGFydGVyPXNyY0luZGV4OworICAgIAorICAgICAgICBjY09yUUNNYXNrPUNDX01BU0t8cWNNYXNrOworICAgICAgICAvKmRlc3RJbmRleD0qL3Jlb3JkZXJTdGFydEluZGV4PTA7LyogIyMjI1RPRE8jIyMjIGNoZWNrIHRoaXMgKiovCisgICAgICAgIHByZXZDQz0wOworICAgIAorICAgICAgICAvKiBhdm9pZCBjb21waWxlciB3YXJuaW5ncyAqLworICAgICAgICBub3JtMzI9MDsKKyAgICAgICAgYz0wOworICAgIAorICAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICAgIC8qIGNvdW50IGNvZGUgdW5pdHMgYmVsb3cgdGhlIG1pbmltdW0gb3Igd2l0aCBpcnJlbGV2YW50IGRhdGEgZm9yIAorICAgICAgICAgICAgICogdGhlIHF1aWNrIGNoZWNrICovCisgICAgICAgICAgICBwcmV2U3JjPXNyY0luZGV4OworCisgICAgICAgICAgICB3aGlsZShzcmNJbmRleCE9c3JjTGltaXQgJiYgKChjPXNyY1tzcmNJbmRleF0pPG1pbk5vTWF5YmUgfHwgCisgICAgICAgICAgICAgICAgICAgICAoKG5vcm0zMj1nZXROb3JtMzIoYykpJmNjT3JRQ01hc2spPT0wKSkgeworICAgICAgICAgICAgICAgIHByZXZDQz0wOworICAgICAgICAgICAgICAgICsrc3JjSW5kZXg7CisgICAgICAgICAgICB9CisKKyAgICAKKyAgICAgICAgICAgIC8qIGNvcHkgdGhlc2UgY29kZSB1bml0cyBhbGwgYXQgb25jZSAqLworICAgICAgICAgICAgaWYoc3JjSW5kZXghPXByZXZTcmMpIHsKKyAgICAgICAgICAgICAgICBsZW5ndGg9KGludCkoc3JjSW5kZXgtcHJldlNyYyk7CisgICAgICAgICAgICAgICAgaWYoKGRlc3RJbmRleCtsZW5ndGgpPD1kZXN0TGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShzcmMscHJldlNyYyxkZXN0LGRlc3RJbmRleCxsZW5ndGgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBkZXN0SW5kZXgrPWxlbmd0aDsKKyAgICAgICAgICAgICAgICByZW9yZGVyU3RhcnRJbmRleD1kZXN0SW5kZXg7CisgICAgCisgICAgICAgICAgICAgICAgLyogc2V0IHByZXZTdGFydGVyIHRvIHRoZSBsYXN0IGNoYXJhY3RlciBpbiB0aGUgcXVpY2sgY2hlY2sgCisgICAgICAgICAgICAgICAgICogbG9vcCAqLworICAgICAgICAgICAgICAgIHByZXZTdGFydGVyPXNyY0luZGV4LTE7CisgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShzcmNbcHJldlN0YXJ0ZXJdKSAmJiAKKyAgICAgICAgICAgICAgICAgICAgcHJldlNyYzxwcmV2U3RhcnRlciAmJiAKKyAgICAgICAgICAgICAgICAgICAgVVRGMTYuaXNMZWFkU3Vycm9nYXRlKHNyY1socHJldlN0YXJ0ZXItMSldKSkgeworICAgICAgICAgICAgICAgICAgICAtLXByZXZTdGFydGVyOworICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICBwcmV2U3JjPXNyY0luZGV4OworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLyogZW5kIG9mIHNvdXJjZSByZWFjaGVkPyAqLworICAgICAgICAgICAgaWYoc3JjSW5kZXg9PXNyY0xpbWl0KSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvKiBjIGFscmVhZHkgY29udGFpbnMgKnNyYyBhbmQgbm9ybTMyIGlzIHNldCBmb3IgaXQsIGluY3JlbWVudCBzcmMqLworICAgICAgICAgICAgKytzcmNJbmRleDsKKyAgICAKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBzb3VyY2UgYnVmZmVyIHBvaW50ZXJzOgorICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAqICBhbGwgZG9uZSAgICAgIHF1aWNrIGNoZWNrICAgY3VycmVudCBjaGFyICBub3QgeWV0CisgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAieWVzIiBidXQgICAgIChjLCBjMikgICAgICAgcHJvY2Vzc2VkCisgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICBtYXkgY29tYmluZQorICAgICAgICAgICAgICogICAgICAgICAgICAgICAgZm9yd2FyZAorICAgICAgICAgICAgICogWy0tLS0tLS0tLS0tLS1bLS0tLS0tLS0tLS0tLVstLS0tLS0tLS0tLS0tWy0tLS0tLS0tLS0tLS1bCisgICAgICAgICAgICAgKiB8ICAgICAgICAgICAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAqIHN0YXJ0ICAgICAgICAgcHJldlN0YXJ0ZXIgICBwcmV2U3JjICAgICAgIHNyYyAgICAgICAgICAgbGltaXQKKyAgICAgICAgICAgICAqCisgICAgICAgICAgICAgKgorICAgICAgICAgICAgICogZGVzdGluYXRpb24gYnVmZmVyIHBvaW50ZXJzIGFuZCBpbmRleGVzOgorICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAqICBhbGwgZG9uZSAgICAgIG1pZ2h0IHRha2UgICAgbm90IGZpbGxlZCB5ZXQKKyAgICAgICAgICAgICAqICAgICAgICAgICAgICAgIGNoYXJhY3RlcnMgZm9yCisgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICByZW9yZGVyaW5nCisgICAgICAgICAgICAgKiBbLS0tLS0tLS0tLS0tLVstLS0tLS0tLS0tLS0tWy0tLS0tLS0tLS0tLS1bCisgICAgICAgICAgICAgKiB8ICAgICAgICAgICAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAgICB8CisgICAgICAgICAgICAgKiBkZXN0ICAgICAgcmVvcmRlclN0YXJ0SW5kZXggZGVzdEluZGV4ICAgICBkZXN0Q2FwYWNpdHkKKyAgICAgICAgICAgICAqLworICAgIAorICAgICAgICAgICAgLyogY2hlY2sgb25lIGFib3ZlLW1pbmltdW0sIHJlbGV2YW50IGNvZGUgdW5pdCAqLworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIG5vcm0zMiBpcyBmb3IgYz0qKHNyYy0xKSwgYW5kIHRoZSBxdWljayBjaGVjayBmbGFnIGlzICJubyIgb3IgCisgICAgICAgICAgICAgKiAibWF5YmUiLCBhbmQvb3IgY2MhPTAKKyAgICAgICAgICAgICAqIGNoZWNrIGZvciBKYW1vIFYvVCwgdGhlbiBmb3Igc3Vycm9nYXRlcyBhbmQgcmVndWxhciBjaGFyYWN0ZXJzCisgICAgICAgICAgICAgKiBjIGlzIG5vdCBhIEhhbmd1bCBzeWxsYWJsZSBvciBKYW1vIEwgYmVjYXVzZQorICAgICAgICAgICAgICogdGhleSBhcmUgbm90IG1hcmtlZCB3aXRoIG5vL21heWJlIGZvciBORkMgJiBORktDKGFuZCB0aGVpciBjYz09MCkKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgaWYoaXNOb3JtMzJIYW5ndWxPckphbW8obm9ybTMyKSkgeworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogYyBpcyBhIEphbW8gVi9UOgorICAgICAgICAgICAgICAgICAqIHRyeSB0byBjb21wb3NlIHdpdGggdGhlIHByZXZpb3VzIGNoYXJhY3RlciwgSmFtbyBWIGFsc28gd2l0aCAKKyAgICAgICAgICAgICAgICAgKiBhIGZvbGxvd2luZyBKYW1vIFQsIGFuZCBzZXQgdmFsdWVzIGhlcmUgcmlnaHQgbm93IGluIGNhc2Ugd2UgCisgICAgICAgICAgICAgICAgICoganVzdCBjb250aW51ZSB3aXRoIHRoZSBtYWluIGxvb3AKKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBwcmV2Q0M9Y2M9MDsKKyAgICAgICAgICAgICAgICByZW9yZGVyU3RhcnRJbmRleD1kZXN0SW5kZXg7CisgICAgICAgICAgICAgICAgaW9JbmRleFswXT1zcmNJbmRleDsKKyAgICAgICAgICAgICAgICBpZiggLyogIyMjIFRPRE86IGRvIHdlIG5lZWQgdG8gZG8gdGhpcz8gIWlnbm9yZUhhbmd1bCAmJiAjIyMgKi8KKyAgICAgICAgICAgICAgICAgICAgZGVzdEluZGV4PjAgJiYKKyAgICAgICAgICAgICAgICAgICAgY29tcG9zZUhhbmd1bChzcmNbKHByZXZTcmMtMSldLCBjLCBub3JtMzIsc3JjLCBpb0luZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY0xpbWl0LCBjb21wYXQsIGRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdEluZGV4PD1kZXN0TGltaXQgPyBkZXN0SW5kZXgtMTogMCkKKyAgICAgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICAgICAgc3JjSW5kZXg9aW9JbmRleFswXTsKKyAgICAgICAgICAgICAgICAgICAgcHJldlN0YXJ0ZXI9c3JjSW5kZXg7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBzcmNJbmRleCA9IGlvSW5kZXhbMF07CisgICAgCisgICAgICAgICAgICAgICAgLyogdGhlIEphbW8gVi9UIGRpZCBub3QgY29tcG9zZSBpbnRvIGEgSGFuZ3VsIHN5bGxhYmxlLCBqdXN0IAorICAgICAgICAgICAgICAgICAqIGFwcGVuZCB0byBkZXN0ICovCisgICAgICAgICAgICAgICAgYzI9MDsKKyAgICAgICAgICAgICAgICBsZW5ndGg9MTsKKyAgICAgICAgICAgICAgICBwcmV2U3RhcnRlcj1wcmV2U3JjOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZihpc05vcm0zMlJlZ3VsYXIobm9ybTMyKSkgeworICAgICAgICAgICAgICAgICAgICBjMj0wOworICAgICAgICAgICAgICAgICAgICBsZW5ndGg9MTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBjIGlzIGEgbGVhZCBzdXJyb2dhdGUsIGdldCB0aGUgcmVhbCBub3JtMzIgKi8KKyAgICAgICAgICAgICAgICAgICAgaWYoc3JjSW5kZXghPXNyY0xpbWl0ICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjMj1zcmNbc3JjSW5kZXhdKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgKytzcmNJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aD0yOworICAgICAgICAgICAgICAgICAgICAgICAgbm9ybTMyPWdldE5vcm0zMkZyb21TdXJyb2dhdGVQYWlyKG5vcm0zMiwgYzIpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogYyBpcyBhbiB1bnBhaXJlZCBsZWFkIHN1cnJvZ2F0ZSwgbm90aGluZyB0byBkbyAqLworICAgICAgICAgICAgICAgICAgICAgICAgYzI9MDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aD0xOworICAgICAgICAgICAgICAgICAgICAgICAgbm9ybTMyPTA7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgQ29tcG9zZVBhcnRBcmdzIGFyZ3MgPW5ldyBDb21wb3NlUGFydEFyZ3MoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvKiB3ZSBhcmUgbG9va2luZyBhdCB0aGUgY2hhcmFjdGVyIChjLCBjMikgYXQgW3ByZXZTcmMuLnNyY1sgKi8KKyAgICAgICAgICAgICAgICBpZigobm9ybTMyJnFjTWFzayk9PTApIHsKKyAgICAgICAgICAgICAgICAgICAgY2M9KGludCkoKFVOU0lHTkVEX0JZVEVfTUFTSykmKG5vcm0zMj4+Q0NfU0hJRlQpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBjaGFyW10gcDsKKyAgICAKKyAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICogZmluZCBhcHByb3ByaWF0ZSBib3VuZGFyaWVzIGFyb3VuZCB0aGlzIGNoYXJhY3RlciwKKyAgICAgICAgICAgICAgICAgICAgICogZGVjb21wb3NlIHRoZSBzb3VyY2UgdGV4dCBmcm9tIGJldHdlZW4gdGhlIGJvdW5kYXJpZXMsCisgICAgICAgICAgICAgICAgICAgICAqIGFuZCByZWNvbXBvc2UgaXQKKyAgICAgICAgICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgICAgICAgICogdGhpcyBwdXRzIHRoZSBpbnRlcm1lZGlhdGUgdGV4dCBpbnRvIHRoZSBzaWRlIGJ1ZmZlciBiZWNhdXNlCisgICAgICAgICAgICAgICAgICAgICAqIGl0IG1pZ2h0IGJlIGxvbmdlciB0aGFuIHRoZSByZWNvbXBvc2l0aW9uIGVuZCByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAqIG9yIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgbWF5IGJlIHRvbyBzaG9ydCBvciBtaXNzaW5nCisgICAgICAgICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICAgICAgICAqIG5vdGUgdGhhdCBkZXN0SW5kZXggbWF5IGJlIGFkanVzdGVkIGJhY2t3YXJkcyB0byBhY2NvdW50CisgICAgICAgICAgICAgICAgICAgICAqIGZvciBzb3VyY2UgdGV4dCB0aGF0IHBhc3NlZCB0aGUgcXVpY2sgY2hlY2sgYnV0IG5lZWRlZCB0bworICAgICAgICAgICAgICAgICAgICAgKiB0YWtlIHBhcnQgaW4gdGhlIHJlY29tcG9zaXRpb24KKyAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgIGludCBkZWNvbXBRQ01hc2s9KHFjTWFzazw8MikmMHhmOyAvKiBkZWNvbXBvc2l0aW9uIHF1aWNrIGNoZWNrIG1hc2sgKi8KKyAgICAgICAgICAgICAgICAgICAgLyoKKwkJICAgICAgICAgICAgICogZmluZCB0aGUgbGFzdCB0cnVlIHN0YXJ0ZXIgaW4gW3ByZXZTdGFydGVyLi5zcmNbCisJCSAgICAgICAgICAgICAqIGl0IGlzIGVpdGhlciB0aGUgZGVjb21wb3NpdGlvbiBvZiB0aGUgY3VycmVudCBjaGFyYWN0ZXIgKGF0IHByZXZTcmMpLAorCQkgICAgICAgICAgICAgKiBvciBwcmV2U3RhcnRlcgorCQkgICAgICAgICAgICAgKi8KKwkJICAgICAgICAgICAgaWYoaXNUcnVlU3RhcnRlcihub3JtMzIsIENDX01BU0t8cWNNYXNrLCBkZWNvbXBRQ01hc2spKSB7CisJCSAgICAgICAgICAgICAgICBwcmV2U3RhcnRlcj1wcmV2U3JjOworCQkgICAgICAgICAgICB9IGVsc2UgeworCQkgICAgICAgICAgICAgICAgLyogYWRqdXN0IGRlc3RJbmRleDogYmFjayBvdXQgd2hhdCBoYWQgYmVlbiBjb3BpZWQgd2l0aCBxYyAieWVzIiAqLworCQkgICAgICAgICAgICAgICAgZGVzdEluZGV4LT1wcmV2U3JjLXByZXZTdGFydGVyOworCQkgICAgICAgICAgICB9CisJCSAgICAgICAgCisJCSAgICAgICAgICAgIC8qIGZpbmQgdGhlIG5leHQgdHJ1ZSBzdGFydGVyIGluIFtzcmMuLmxpbWl0WyAqLworCQkgICAgICAgICAgICBzcmNJbmRleD1maW5kTmV4dFN0YXJ0ZXIoc3JjLCBzcmNJbmRleCxzcmNMaW1pdCwgcWNNYXNrLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjb21wUUNNYXNrLCBtaW5Ob01heWJlKTsKKyAgICAgICAgICAgICAgICAgICAgLy9hcmdzLnByZXZTdGFydGVyID0gcHJldlN0YXJ0ZXI7CisgICAgICAgICAgICAgICAgICAgIGFyZ3MucHJldkNDCT0gcHJldkNDOyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8vYXJncy5kZXN0SW5kZXggPSBkZXN0SW5kZXg7CisgICAgICAgICAgICAgICAgICAgIGFyZ3MubGVuZ3RoID0gbGVuZ3RoOworICAgICAgICAgICAgICAgICAgICBwPWNvbXBvc2VQYXJ0KGFyZ3MscHJldlN0YXJ0ZXIsc3JjLHNyY0luZGV4LHNyY0xpbWl0LHFjTWFzayk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYocD09bnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogYW4gZXJyb3Igb2NjdXJyZWQgKG91dCBvZiBtZW1vcnkpICovCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgcHJldkNDICAgICAgPSBhcmdzLnByZXZDQzsKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoICAgICAgPSBhcmdzLmxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8qIGFwcGVuZCB0aGUgcmVjb21wb3NlZCBidWZmZXIgY29udGVudHMgdG8gdGhlIGRlc3RpbmF0aW9uIAorICAgICAgICAgICAgICAgICAgICAgKiBidWZmZXIgKi8KKyAgICAgICAgICAgICAgICAgICAgaWYoKGRlc3RJbmRleCthcmdzLmxlbmd0aCk8PWRlc3RMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGk9MDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlKGk8YXJncy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0W2Rlc3RJbmRleCsrXT1wW2krK107CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1sZW5ndGg7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBidWZmZXIgb3ZlcmZsb3cgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGtlZXAgaW5jcmVtZW50aW5nIHRoZSBkZXN0SW5kZXggZm9yIHByZWZsaWdodGluZyAqLworICAgICAgICAgICAgICAgICAgICAgICAgZGVzdEluZGV4Kz1sZW5ndGg7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAgICAgcHJldlN0YXJ0ZXI9c3JjSW5kZXg7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8qIGFwcGVuZCB0aGUgc2luZ2xlIGNvZGUgcG9pbnQgKGMsIGMyKSB0byB0aGUgZGVzdGluYXRpb24gYnVmZmVyICovCisgICAgICAgICAgICBpZigoZGVzdEluZGV4K2xlbmd0aCk8PWRlc3RMaW1pdCkgeworICAgICAgICAgICAgICAgIGlmKGNjIT0wICYmIGNjPHByZXZDQykgeworICAgICAgICAgICAgICAgICAgICAvKiAoYywgYzIpIGlzIG91dCBvZiBvcmRlciB3aXRoIHJlc3BlY3QgdG8gdGhlIHByZWNlZGluZyAKKyAgICAgICAgICAgICAgICAgICAgICogdGV4dCAqLworICAgICAgICAgICAgICAgICAgICBpbnQgcmVvcmRlclNwbGl0PSBkZXN0SW5kZXg7CisgICAgICAgICAgICAgICAgICAgIGRlc3RJbmRleCs9bGVuZ3RoOworICAgICAgICAgICAgICAgICAgICBwcmV2Q0M9aW5zZXJ0T3JkZXJlZChkZXN0LHJlb3JkZXJTdGFydEluZGV4LCByZW9yZGVyU3BsaXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0SW5kZXgsIGMsIGMyLCBjYyk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLyoganVzdCBhcHBlbmQgKGMsIGMyKSAqLworICAgICAgICAgICAgICAgICAgICBkZXN0W2Rlc3RJbmRleCsrXT1jOworICAgICAgICAgICAgICAgICAgICBpZihjMiE9MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFtkZXN0SW5kZXgrK109YzI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcHJldkNDPWNjOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLyogYnVmZmVyIG92ZXJmbG93ICovCisgICAgICAgICAgICAgICAgLyoga2VlcCBpbmNyZW1lbnRpbmcgdGhlIGRlc3RJbmRleCBmb3IgcHJlZmxpZ2h0aW5nICovCisgICAgICAgICAgICAgICAgZGVzdEluZGV4Kz1sZW5ndGg7CisgICAgICAgICAgICAgICAgcHJldkNDPWNjOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGRlc3RJbmRleDsKKyAgICB9CisJLyogbWFrZSBGQ0QgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCQorCXByaXZhdGUgc3RhdGljIGludC8qaW5kZXgqLyBmaW5kU2FmZUZDRChjaGFyW10gc3JjLCBpbnQgc3RhcnQsIGludCBsaW1pdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgZmNkMTYpIHsKKwkgICAgY2hhciBjLCBjMjsKKwkKKwkgICAgLyoKKwkgICAgICogZmluZCB0aGUgZmlyc3QgcG9zaXRpb24gaW4gW3NyYy4ubGltaXRbIGFmdGVyIHNvbWUgY2M9PTAgYWNjb3JkaW5nIAorICAgICAgICAgKiB0byBGQ0QgZGF0YQorCSAgICAgKgorCSAgICAgKiBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsb29wLCB3ZSBoYXZlIGZjZDE2IGZyb20gYmVmb3JlIHNyYworCSAgICAgKgorCSAgICAgKiBzdG9wIGF0IHBvc2l0aW9uczoKKwkgICAgICogLSBhZnRlciB0cmFpbCBjYz09MAorCSAgICAgKiAtIGF0IHRoZSBlbmQgb2YgdGhlIHNvdXJjZQorCSAgICAgKiAtIGJlZm9yZSBsZWFkIGNjPT0wCisJICAgICAqLworCSAgICBmb3IoOzspIHsKKwkgICAgICAgIC8qIHN0b3AgaWYgdHJhaWwgY2M9PTAgZm9yIHRoZSBwcmV2aW91cyBjaGFyYWN0ZXIgKi8KKwkgICAgICAgIGlmKChmY2QxNiYweGZmKT09MCkgeworCSAgICAgICAgICAgIGJyZWFrOworCSAgICAgICAgfQorCQorCSAgICAgICAgLyogZ2V0IGM9KnNyYyAtIHN0b3AgYXQgZW5kIG9mIHN0cmluZyAqLworCSAgICAgICAgaWYoc3RhcnQ9PWxpbWl0KSB7CisJICAgICAgICAgICAgYnJlYWs7CisJICAgICAgICB9CisJICAgICAgICBjPXNyY1tzdGFydF07CisJCisJICAgICAgICAvKiBzdG9wIGlmIGxlYWQgY2M9PTAgZm9yIHRoaXMgY2hhcmFjdGVyICovCisJICAgICAgICBpZihjPE1JTl9XSVRIX0xFQURfQ0MgfHwgKGZjZDE2PWdldEZDRDE2KGMpKT09MCkgeworCSAgICAgICAgICAgIGJyZWFrOyAvKiBjYXRjaGVzIHRlcm1pbmF0aW5nIE5VTCwgdG9vICovCisJICAgICAgICB9CisJCisJICAgICAgICBpZighVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGMpKSB7CisJICAgICAgICAgICAgaWYoZmNkMTY8PTB4ZmYpIHsKKwkgICAgICAgICAgICAgICAgYnJlYWs7CisJICAgICAgICAgICAgfQorCSAgICAgICAgICAgICsrc3RhcnQ7CisJICAgICAgICB9IGVsc2UgaWYoc3RhcnQrMSE9bGltaXQgJiYgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjMj1zcmNbc3RhcnQrMV0pKSkgeworCSAgICAgICAgICAgIC8qIGMgaXMgYSBsZWFkIHN1cnJvZ2F0ZSwgZ2V0IHRoZSByZWFsIGZjZDE2ICovCisJICAgICAgICAgICAgZmNkMTY9Z2V0RkNEMTZGcm9tU3Vycm9nYXRlUGFpcihmY2QxNiwgYzIpOworCSAgICAgICAgICAgIGlmKGZjZDE2PD0weGZmKSB7CisJICAgICAgICAgICAgICAgIGJyZWFrOworCSAgICAgICAgICAgIH0KKwkgICAgICAgICAgICBzdGFydCs9MjsKKwkgICAgICAgIH0gZWxzZSB7CisJICAgICAgICAgICAgLyogYyBpcyBhbiB1bnBhaXJlZCBmaXJzdCBzdXJyb2dhdGUsIGxlYWQgY2M9PTAgKi8KKwkgICAgICAgICAgICBicmVhazsKKwkgICAgICAgIH0KKwkgICAgfQorCQorCSAgICByZXR1cm4gc3RhcnQ7CisJfQorCQorCXByaXZhdGUgc3RhdGljIGludC8qdW5zaWduZWQgYnl0ZSovIGRlY29tcG9zZUZDRChjaGFyW10gc3JjLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0LGludCBkZWNvbXBMaW1pdCwKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGRlc3QsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBkZXN0SW5kZXhBcnIpIHsKKwkgICAgY2hhcltdIHA9bnVsbDsKKyAgICAgICAgaW50IHBTdGFydD0tMTsKKyAgICAgICAgCisJICAgIGxvbmcgLyp1bnNpZ25lZCBpbnQqLyBub3JtMzI7CisJICAgIGludCByZW9yZGVyU3RhcnRJbmRleDsKKwkgICAgY2hhciBjLCBjMjsKKyAgICAgICAgaW50Lyp1bnNpZ25lZCBieXRlKi8gcHJldkNDOworICAgICAgICBEZWNvbXBvc2VBcmdzIGFyZ3MgPSBuZXcgRGVjb21wb3NlQXJncygpOworICAgICAgICBpbnQgZGVzdEluZGV4ID0gZGVzdEluZGV4QXJyWzBdOworCSAgICAvKgorCSAgICAgKiBjYW5vbmljYWxseSBkZWNvbXBvc2UgW3NyYy4uZGVjb21wTGltaXRbCisJICAgICAqCisJICAgICAqIGFsbCBjaGFyYWN0ZXJzIGluIHRoaXMgcmFuZ2UgaGF2ZSBzb21lIG5vbi16ZXJvIGNjLAorCSAgICAgKiBkaXJlY3RseSBvciBpbiBkZWNvbXBvc2l0aW9uLAorCSAgICAgKiBzbyB0aGF0IHdlIGRvIG5vdCBuZWVkIHRvIGNoZWNrIGluIHRoZSBmb2xsb3dpbmcgZm9yIHF1aWNrLWNoZWNrIAorICAgICAgICAgKiBsaW1pdHMgZXRjLgorCSAgICAgKgorCSAgICAgKiB0aGVyZSBfYXJlXyBfbm9fIEhhbmd1bCBzeWxsYWJsZXMgb3IgSmFtb3MgaW4gaGVyZSBiZWNhdXNlIHRoZXkgYXJlIAorICAgICAgICAgKiBGQ0Qtc2FmZSAoY2M9PTApIQorCSAgICAgKgorCSAgICAgKiB3ZSBhbHNvIGRvIG5vdCBuZWVkIHRvIGNoZWNrIGZvciBjPT0wIGJlY2F1c2Ugd2UgaGF2ZSBhbiBlc3RhYmxpc2hlZCAKKyAgICAgICAgICogZGVjb21wTGltaXQKKwkgICAgICovCisJICAgIHJlb3JkZXJTdGFydEluZGV4PWRlc3RJbmRleDsKKwkgICAgcHJldkNDPTA7CisKKwkgICAgd2hpbGUoc3RhcnQ8ZGVjb21wTGltaXQpIHsKKwkgICAgICAgIGM9c3JjW3N0YXJ0KytdOworCSAgICAgICAgbm9ybTMyPWdldE5vcm0zMihjKTsKKwkgICAgICAgIGlmKGlzTm9ybTMyUmVndWxhcihub3JtMzIpKSB7CisJICAgICAgICAgICAgYzI9MDsKKwkgICAgICAgICAgICBhcmdzLmxlbmd0aD0xOworCSAgICAgICAgfSBlbHNlIHsKKwkgICAgICAgICAgICAvKgorCSAgICAgICAgICAgICAqIHJlbWluZGVyOiB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aXRoIFtzcmMuLmRlY29tcExpbWl0WworCSAgICAgICAgICAgICAqIG5vdCBjb250YWluaW5nIGFueSBIYW5ndWwvSmFtbyBjaGFyYWN0ZXJzLAorCSAgICAgICAgICAgICAqIHRoZXJlZm9yZSB0aGUgb25seSBzcGVjaWFscyBhcmUgbGVhZCBzdXJyb2dhdGVzCisJICAgICAgICAgICAgICovCisJICAgICAgICAgICAgLyogYyBpcyBhIGxlYWQgc3Vycm9nYXRlLCBnZXQgdGhlIHJlYWwgbm9ybTMyICovCisJICAgICAgICAgICAgaWYoc3RhcnQhPWRlY29tcExpbWl0ICYmIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoYzI9c3JjW3N0YXJ0XSkpeworCSAgICAgICAgICAgICAgICArK3N0YXJ0OworCSAgICAgICAgICAgICAgICBhcmdzLmxlbmd0aD0yOworCSAgICAgICAgICAgICAgICBub3JtMzI9Z2V0Tm9ybTMyRnJvbVN1cnJvZ2F0ZVBhaXIobm9ybTMyLCBjMik7CisJICAgICAgICAgICAgfSBlbHNlIHsKKwkgICAgICAgICAgICAgICAgYzI9MDsKKwkgICAgICAgICAgICAgICAgYXJncy5sZW5ndGg9MTsKKwkgICAgICAgICAgICAgICAgbm9ybTMyPTA7CisJICAgICAgICAgICAgfQorCSAgICAgICAgfQorCQorCSAgICAgICAgLyogZ2V0IHRoZSBkZWNvbXBvc2l0aW9uIGFuZCB0aGUgbGVhZCBhbmQgdHJhaWwgY2MncyAqLworCSAgICAgICAgaWYoKG5vcm0zMiZRQ19ORkQpPT0wKSB7CisJICAgICAgICAgICAgLyogYyBkb2VzIG5vdCBkZWNvbXBvc2UgKi8KKwkgICAgICAgICAgICBhcmdzLmNjPWFyZ3MudHJhaWxDQz0oaW50KSgoVU5TSUdORURfQllURV9NQVNLKSYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChub3JtMzI+PkNDX1NISUZUKSk7CisJICAgICAgICAgICAgcD1udWxsOworCSAgICAgICAgfSBlbHNlIHsKKwkgICAgICAgICAgICAvKiBjIGRlY29tcG9zZXMsIGdldCBldmVyeXRoaW5nIGZyb20gdGhlIHZhcmlhYmxlLWxlbmd0aCBleHRyYSAKKyAgICAgICAgICAgICAgICAgKiBkYXRhICovCisJICAgICAgICAgICAgcFN0YXJ0PWRlY29tcG9zZShub3JtMzIsIGFyZ3MpOworCSAgICAgICAgICAgIHA9ZXh0cmFEYXRhOworICAgICAgICAgICAgICAgIGlmKGFyZ3MubGVuZ3RoPT0xKSB7CisJICAgICAgICAgICAgICAgIC8qIGZhc3RwYXRoIGEgc2luZ2xlIGNvZGUgdW5pdCBmcm9tIGRlY29tcG9zaXRpb24gKi8KKwkgICAgICAgICAgICAgICAgYz1wW3BTdGFydF07CisJICAgICAgICAgICAgICAgIGMyPTA7CisJICAgICAgICAgICAgICAgIHA9bnVsbDsKKwkgICAgICAgICAgICB9CisJICAgICAgICB9CisJCisJICAgICAgICAvKiBhcHBlbmQgdGhlIGRlY29tcG9zaXRpb24gdG8gdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciwgYXNzdW1lIAorICAgICAgICAgICAgICogbGVuZ3RoPjAgKi8KKwkgICAgICAgIGlmKChkZXN0SW5kZXgrYXJncy5sZW5ndGgpPD1kZXN0Lmxlbmd0aCkgeworCSAgICAgICAgICAgIGludCByZW9yZGVyU3BsaXQ9ZGVzdEluZGV4OworCSAgICAgICAgICAgIGlmKHA9PW51bGwpIHsKKwkgICAgICAgICAgICAgICAgLyogZmFzdHBhdGg6IHNpbmdsZSBjb2RlIHBvaW50ICovCisJICAgICAgICAgICAgICAgIGlmKGFyZ3MuY2MhPTAgJiYgYXJncy5jYzxwcmV2Q0MpIHsKKwkgICAgICAgICAgICAgICAgICAgIC8qIChjLCBjMikgaXMgb3V0IG9mIG9yZGVyIHdpdGggcmVzcGVjdCB0byB0aGUgcHJlY2VkaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgKiAgdGV4dCAqLworCSAgICAgICAgICAgICAgICAgICAgZGVzdEluZGV4Kz1hcmdzLmxlbmd0aDsKKwkgICAgICAgICAgICAgICAgICAgIGFyZ3MudHJhaWxDQz1pbnNlcnRPcmRlcmVkKGRlc3QscmVvcmRlclN0YXJ0SW5kZXgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVvcmRlclNwbGl0LCBkZXN0SW5kZXgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYywgYzIsIGFyZ3MuY2MpOworCSAgICAgICAgICAgICAgICB9IGVsc2UgeworCSAgICAgICAgICAgICAgICAgICAgLyoganVzdCBhcHBlbmQgKGMsIGMyKSAqLworCSAgICAgICAgICAgICAgICAgICAgZGVzdFtkZXN0SW5kZXgrK109YzsKKwkgICAgICAgICAgICAgICAgICAgIGlmKGMyIT0wKSB7CisJICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFtkZXN0SW5kZXgrK109YzI7CisJICAgICAgICAgICAgICAgICAgICB9CisJICAgICAgICAgICAgICAgIH0KKwkgICAgICAgICAgICB9IGVsc2UgeworCSAgICAgICAgICAgICAgICAvKiBnZW5lcmFsOiBtdWx0aXBsZSBjb2RlIHBvaW50cyAob3JkZXJlZCBieSB0aGVtc2VsdmVzKSAKKyAgICAgICAgICAgICAgICAgICAgICogZnJvbSBkZWNvbXBvc2l0aW9uICovCisJICAgICAgICAgICAgICAgIGlmKGFyZ3MuY2MhPTAgJiYgYXJncy5jYzxwcmV2Q0MpIHsKKwkgICAgICAgICAgICAgICAgICAgIC8qIHRoZSBkZWNvbXBvc2l0aW9uIGlzIG91dCBvZiBvcmRlciB3aXRoIHJlc3BlY3QgdG8gCisgICAgICAgICAgICAgICAgICAgICAgICAgKiB0aGUgcHJlY2VkaW5nIHRleHQgKi8KKwkgICAgICAgICAgICAgICAgICAgIGRlc3RJbmRleCs9YXJncy5sZW5ndGg7CisJICAgICAgICAgICAgICAgICAgICBhcmdzLnRyYWlsQ0M9bWVyZ2VPcmRlcmVkKGRlc3QscmVvcmRlclN0YXJ0SW5kZXgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW9yZGVyU3BsaXQsIHAsIHBTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcFN0YXJ0K2FyZ3MubGVuZ3RoKTsKKwkgICAgICAgICAgICAgICAgfSBlbHNlIHsKKwkgICAgICAgICAgICAgICAgICAgIC8qIGp1c3QgYXBwZW5kIHRoZSBkZWNvbXBvc2l0aW9uICovCisJICAgICAgICAgICAgICAgICAgICBkbyB7CisJICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFtkZXN0SW5kZXgrK109cFtwU3RhcnQrK107CisJICAgICAgICAgICAgICAgICAgICB9IHdoaWxlKC0tYXJncy5sZW5ndGg+MCk7CisJICAgICAgICAgICAgICAgIH0KKwkgICAgICAgICAgICB9CisJICAgICAgICB9IGVsc2UgeworCSAgICAgICAgICAgIC8qIGJ1ZmZlciBvdmVyZmxvdyAqLworCSAgICAgICAgICAgIC8qIGtlZXAgaW5jcmVtZW50aW5nIHRoZSBkZXN0SW5kZXggZm9yIHByZWZsaWdodGluZyAqLworCSAgICAgICAgICAgIGRlc3RJbmRleCs9YXJncy5sZW5ndGg7CisJICAgICAgICB9CisJCisJICAgICAgICBwcmV2Q0M9YXJncy50cmFpbENDOworCSAgICAgICAgaWYocHJldkNDPT0wKSB7CisJICAgICAgICAgICAgcmVvcmRlclN0YXJ0SW5kZXg9ZGVzdEluZGV4OworCSAgICAgICAgfQorCSAgICB9CisJICAgIGRlc3RJbmRleEFyclswXT1kZXN0SW5kZXg7CisJICAgIHJldHVybiBwcmV2Q0M7CisJfQorCQorCXB1YmxpYyBzdGF0aWMgaW50IG1ha2VGQ0QoY2hhcltdIHNyYywgIGludCBzcmNTdGFydCwgIGludCBzcmNMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBkZXN0LCBpbnQgZGVzdFN0YXJ0LCBpbnQgZGVzdExpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAKKwkgICAgaW50IHByZXZTcmMsIGRlY29tcFN0YXJ0OworCSAgICBpbnQgZGVzdEluZGV4LCBsZW5ndGg7CisJICAgIGNoYXIgYywgYzI7CisJICAgIGludCAvKiB1bnNpZ25lZCBpbnQqLyBmY2QxNjsKKwkgICAgaW50IHByZXZDQywgY2M7CisJCisJICAgIC8qIGluaXRpYWxpemUgKi8KKwkgICAgZGVjb21wU3RhcnQ9c3JjU3RhcnQ7CisJICAgIGRlc3RJbmRleD1kZXN0U3RhcnQ7CisJICAgIHByZXZDQz0wOworCSAgICBjPTA7CisJICAgIGZjZDE2PTA7CisJCWludFtdIGRlc3RJbmRleEFyciA9IG5ldyBpbnRbMV07CisgICAgICAgIGRlc3RJbmRleEFyclswXT1kZXN0SW5kZXg7CisgICAgICAgIAorCSAgICBmb3IoOzspIHsKKwkgICAgICAgIC8qIHNraXAgYSBydW4gb2YgY29kZSB1bml0cyBiZWxvdyB0aGUgbWluaW11bSBvciB3aXRoIGlycmVsZXZhbnQgCisgICAgICAgICAgICAgKiBkYXRhIGZvciB0aGUgRkNEIGNoZWNrICovCisJICAgICAgICBwcmV2U3JjPXNyY1N0YXJ0OworCisgICAgICAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICAgICAgICBpZihzcmNTdGFydD09c3JjTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmKChjPXNyY1tzcmNTdGFydF0pPE1JTl9XSVRIX0xFQURfQ0MpIHsKKyAgICAgICAgICAgICAgICAgICAgcHJldkNDPShpbnQpLWM7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmKChmY2QxNj1nZXRGQ0QxNihjKSk9PTApIHsKKyAgICAgICAgICAgICAgICAgICAgcHJldkNDPTA7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICsrc3JjU3RhcnQ7CisgICAgICAgICAgICB9CisKKwkKKwkgICAgICAgIC8qCisJICAgICAgICAgKiBwcmV2Q0MgaGFzIHZhbHVlcyBmcm9tIHRoZSBmb2xsb3dpbmcgcmFuZ2VzOgorCSAgICAgICAgICogMC4uMHhmZiAtIHRoZSBwcmV2aW91cyB0cmFpbCBjb21iaW5pbmcgY2xhc3MKKwkgICAgICAgICAqIDwwICAgICAgLSB0aGUgbmVnYXRpdmUgdmFsdWUgb2YgdGhlIHByZXZpb3VzIGNvZGUgdW5pdDsKKwkgICAgICAgICAqICAgICAgICAgICB0aGF0IGNvZGUgdW5pdCB3YXMgPF9OT1JNX01JTl9XSVRIX0xFQURfQ0MgYW5kIGl0cyAKKyAgICAgICAgICAgICAqICAgICAgICAgICBnZXRGQ0QxNigpCisJICAgICAgICAgKiAgICAgICAgICAgd2FzIGRlZmVycmVkIHNvIHRoYXQgYXZlcmFnZSB0ZXh0IGlzIGNoZWNrZWQgZmFzdGVyCisJICAgICAgICAgKi8KKwkKKwkgICAgICAgIC8qIGNvcHkgdGhlc2UgY29kZSB1bml0cyBhbGwgYXQgb25jZSAqLworCSAgICAgICAgaWYoc3JjU3RhcnQhPXByZXZTcmMpIHsKKwkgICAgICAgICAgICBsZW5ndGg9KGludCkoc3JjU3RhcnQtcHJldlNyYyk7CisJICAgICAgICAgICAgaWYoKGRlc3RJbmRleCtsZW5ndGgpPD1kZXN0TGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShzcmMscHJldlNyYyxkZXN0LGRlc3RJbmRleCxsZW5ndGgpOworCSAgICAgICAgICAgIH0KKwkgICAgICAgICAgICBkZXN0SW5kZXgrPWxlbmd0aDsKKwkgICAgICAgICAgICBwcmV2U3JjPXNyY1N0YXJ0OworCQorCSAgICAgICAgICAgIC8qIHByZXZDQzwwIGlzIG9ubHkgcG9zc2libGUgZnJvbSB0aGUgYWJvdmUgbG9vcCwgaS5lLiwgb25seSBpZgorICAgICAgICAgICAgICAgICAqICBwcmV2U3JjPHNyYyAqLworCSAgICAgICAgICAgIGlmKHByZXZDQzwwKSB7CisJICAgICAgICAgICAgICAgIC8qIHRoZSBwcmV2aW91cyBjaGFyYWN0ZXIgd2FzIDxfTk9STV9NSU5fV0lUSF9MRUFEX0NDLCB3ZSAKKyAgICAgICAgICAgICAgICAgICAgICogbmVlZCB0byBnZXQgaXRzIHRyYWlsIGNjICovCisJICAgICAgICAgICAgICAgIHByZXZDQz0oaW50KShnZXRGQ0QxNigoY2hhciktcHJldkNDKSYweGZmKTsKKwkKKwkgICAgICAgICAgICAgICAgLyoKKwkgICAgICAgICAgICAgICAgICogc2V0IGEgcG9pbnRlciB0byB0aGlzIGJlbG93LVUrMDMwMCBjaGFyYWN0ZXI7CisJICAgICAgICAgICAgICAgICAqIGlmIHByZXZDQz09MCB0aGVuIGl0IHdpbGwgbW92ZWQgdG8gYWZ0ZXIgdGhpcyBjaGFyYWN0ZXIgCisgICAgICAgICAgICAgICAgICAgICAqIGJlbG93CisJICAgICAgICAgICAgICAgICAqLworCSAgICAgICAgICAgICAgICBkZWNvbXBTdGFydD1wcmV2U3JjLTE7CisJICAgICAgICAgICAgfQorCSAgICAgICAgfQorCSAgICAgICAgLyoKKwkgICAgICAgICAqIG5vdzoKKwkgICAgICAgICAqIHByZXZTcmM9PXNyYyAtIHVzZWQgbGF0ZXIgdG8gYWRqdXN0IGRlc3RJbmRleCBiZWZvcmUgCisgICAgICAgICAgICAgKiAgICAgICAgICBkZWNvbXBvc2l0aW9uCisJICAgICAgICAgKiBwcmV2Q0M+PTAKKwkgICAgICAgICAqLworCQorCSAgICAgICAgLyogZW5kIG9mIHNvdXJjZSByZWFjaGVkPyAqLworCSAgICAgICAgaWYoc3JjU3RhcnQ9PXNyY0xpbWl0KSB7CisJICAgICAgICAgICAgYnJlYWs7CisJICAgICAgICB9CisJCisJICAgICAgICAvKiBzZXQgYSBwb2ludGVyIHRvIGFmdGVyIHRoZSBsYXN0IHNvdXJjZSBwb3NpdGlvbiB3aGVyZSBwcmV2Q0M9PTAqLworCSAgICAgICAgaWYocHJldkNDPT0wKSB7CisJICAgICAgICAgICAgZGVjb21wU3RhcnQ9cHJldlNyYzsKKwkgICAgICAgIH0KKwkKKwkgICAgICAgIC8qIGMgYWxyZWFkeSBjb250YWlucyAqc3JjIGFuZCBmY2QxNiBpcyBzZXQgZm9yIGl0LCBpbmNyZW1lbnQgc3JjICovCisJICAgICAgICArK3NyY1N0YXJ0OworCQorCSAgICAgICAgLyogY2hlY2sgb25lIGFib3ZlLW1pbmltdW0sIHJlbGV2YW50IGNvZGUgdW5pdCAqLworCSAgICAgICAgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGMpKSB7CisJICAgICAgICAgICAgLyogYyBpcyBhIGxlYWQgc3Vycm9nYXRlLCBnZXQgdGhlIHJlYWwgZmNkMTYgKi8KKwkgICAgICAgICAgICBpZihzcmNTdGFydCE9c3JjTGltaXQgJiYgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjMj1zcmNbc3JjU3RhcnRdKSkgeworCSAgICAgICAgICAgICAgICArK3NyY1N0YXJ0OworCSAgICAgICAgICAgICAgICBmY2QxNj1nZXRGQ0QxNkZyb21TdXJyb2dhdGVQYWlyKChjaGFyKWZjZDE2LCBjMik7CisJICAgICAgICAgICAgfSBlbHNlIHsKKwkgICAgICAgICAgICAgICAgYzI9MDsKKwkgICAgICAgICAgICAgICAgZmNkMTY9MDsKKwkgICAgICAgICAgICB9CisJICAgICAgICB9IGVsc2UgeworCSAgICAgICAgICAgIGMyPTA7CisJICAgICAgICB9CisJCisJICAgICAgICAvKiB3ZSBhcmUgbG9va2luZyBhdCB0aGUgY2hhcmFjdGVyIChjLCBjMikgYXQgW3ByZXZTcmMuLnNyY1sgKi8KKwkKKwkgICAgICAgIC8qIGNoZWNrIHRoZSBjb21iaW5pbmcgb3JkZXIsIGdldCB0aGUgbGVhZCBjYyAqLworCSAgICAgICAgY2M9KGludCkoZmNkMTY+PjgpOworCSAgICAgICAgaWYoY2M9PTAgfHwgY2M+PXByZXZDQykgeworCSAgICAgICAgICAgIC8qIHRoZSBvcmRlciBpcyBvayAqLworCSAgICAgICAgICAgIGlmKGNjPT0wKSB7CisJICAgICAgICAgICAgICAgIGRlY29tcFN0YXJ0PXByZXZTcmM7CisJICAgICAgICAgICAgfQorCSAgICAgICAgICAgIHByZXZDQz0oaW50KShmY2QxNiYweGZmKTsKKwkKKwkgICAgICAgICAgICAvKiBqdXN0IGFwcGVuZCAoYywgYzIpICovCisJICAgICAgICAgICAgbGVuZ3RoPSBjMj09MCA/IDEgOiAyOworCSAgICAgICAgICAgIGlmKChkZXN0SW5kZXgrbGVuZ3RoKTw9ZGVzdExpbWl0KSB7CisJICAgICAgICAgICAgICAgIGRlc3RbZGVzdEluZGV4KytdPWM7CisJICAgICAgICAgICAgICAgIGlmKGMyIT0wKSB7CisJICAgICAgICAgICAgICAgICAgICBkZXN0W2Rlc3RJbmRleCsrXT1jMjsKKwkgICAgICAgICAgICAgICAgfQorCSAgICAgICAgICAgIH0gZWxzZSB7CisJICAgICAgICAgICAgICAgIGRlc3RJbmRleCs9bGVuZ3RoOworCSAgICAgICAgICAgIH0KKwkgICAgICAgIH0gZWxzZSB7CisJICAgICAgICAgICAgLyoKKwkgICAgICAgICAgICAgKiBiYWNrIG91dCB0aGUgcGFydCBvZiB0aGUgc291cmNlIHRoYXQgd2UgY29waWVkIGFscmVhZHkgYnV0CisJICAgICAgICAgICAgICogaXMgbm93IGdvaW5nIHRvIGJlIGRlY29tcG9zZWQ7CisJICAgICAgICAgICAgICogcHJldlNyYyBpcyBzZXQgdG8gYWZ0ZXIgd2hhdCB3YXMgY29waWVkCisJICAgICAgICAgICAgICovCisJICAgICAgICAgICAgZGVzdEluZGV4LT0oaW50KShwcmV2U3JjLWRlY29tcFN0YXJ0KTsKKwkKKwkgICAgICAgICAgICAvKgorCSAgICAgICAgICAgICAqIGZpbmQgdGhlIHBhcnQgb2YgdGhlIHNvdXJjZSB0aGF0IG5lZWRzIHRvIGJlIGRlY29tcG9zZWQ7CisJICAgICAgICAgICAgICogdG8gYmUgc2FmZSBhbmQgc2ltcGxlLCBkZWNvbXBvc2UgdG8gYmVmb3JlIHRoZSBuZXh0IGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICAqIHdpdGggbGVhZCBjYz09MAorCSAgICAgICAgICAgICAqLworCSAgICAgICAgICAgIHNyY1N0YXJ0PWZpbmRTYWZlRkNEKHNyYyxzcmNTdGFydCwgc3JjTGltaXQsIChjaGFyKWZjZDE2KTsKKwkKKwkgICAgICAgICAgICAvKgorCSAgICAgICAgICAgICAqIHRoZSBzb3VyY2UgdGV4dCBkb2VzIG5vdCBmdWxmaWxsIHRoZSBjb25kaXRpb25zIGZvciBGQ0Q7CisJICAgICAgICAgICAgICogZGVjb21wb3NlIGFuZCByZW9yZGVyIGEgbGltaXRlZCBwaWVjZSBvZiB0aGUgdGV4dAorCSAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIGRlc3RJbmRleEFyclswXSA9IGRlc3RJbmRleDsKKwkgICAgICAgICAgICBwcmV2Q0M9ZGVjb21wb3NlRkNEKHNyYyxkZWNvbXBTdGFydCwgc3JjU3RhcnQsZGVzdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0SW5kZXhBcnIpOworCSAgICAgICAgICAgIGRlY29tcFN0YXJ0PXNyY1N0YXJ0OworICAgICAgICAgICAgICAgIGRlc3RJbmRleD1kZXN0SW5kZXhBcnJbMF07CisJICAgICAgICB9CisJICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBkZXN0SW5kZXg7CisJCisJfQorCisJcHVibGljIHN0YXRpYyBpbnQgZ2V0Q29tYmluaW5nQ2xhc3MoaW50IGMpIHsKKwkgICAgbG9uZyBub3JtMzI7CisgICAgICAgIGlmKGM8PTB4ZmZmZikgeworICAgICAgICAgICAgbm9ybTMyPWdldE5vcm0zMigoY2hhciljKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG5vcm0zMj1nZXROb3JtMzIoVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZShjKSk7CisgICAgICAgICAgICBpZigobm9ybTMyJkNDX01BU0spIT0wKSB7CisgICAgICAgICAgICAgICAgbm9ybTMyPWdldE5vcm0zMkZyb21TdXJyb2dhdGVQYWlyKG5vcm0zMixVVEYxNi5nZXRUcmFpbFN1cnJvZ2F0ZShjKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChjaGFyKSgobm9ybTMyPj5DQ19TSElGVCkmMHhGRik7CisJfQorCQorCXB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0Z1bGxDb21wb3NpdGlvbkV4Y2x1c2lvbihpbnQgYykgeworCSAgICBpZihpc0Zvcm1hdFZlcnNpb25fMl8xKSB7CisJICAgICAgICBpbnQgYXV4ID1hdXhUcmllSW1wbC5hdXhUcmllLmdldENvZGVQb2ludFZhbHVlKGMpOworCSAgICAgICAgcmV0dXJuIChib29sZWFuKSgoYXV4ICYgQVVYX0NPTVBfRVhfTUFTSykhPTApOworCSAgICB9IGVsc2UgeworCSAgICAgICAgcmV0dXJuIGZhbHNlOworCSAgICB9CisJfQorCQorCXB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0Nhbm9uU2FmZVN0YXJ0KGludCBjKSB7CisJICAgIGlmKGlzRm9ybWF0VmVyc2lvbl8yXzEpIHsKKwkgICAgICAgIGludCBhdXggPSBhdXhUcmllSW1wbC5hdXhUcmllLmdldENvZGVQb2ludFZhbHVlKGMpOworCSAgICAgICAgcmV0dXJuIChib29sZWFuKSgoYXV4ICYgQVVYX1VOU0FGRV9NQVNLKT09MCk7CisJICAgIH0gZWxzZSB7CisJICAgICAgICByZXR1cm4gZmFsc2U7CisJICAgIH0KKwl9CisJCisJcHVibGljIHN0YXRpYyBib29sZWFuIGdldENhbm9uU3RhcnRTZXQoaW50IGMsIFVTZXJpYWxpemVkU2V0IGZpbGxTZXQpIHsKKworCSAgICBpZihmaWxsU2V0IT1udWxsICYmIGNhbm9uU3RhcnRTZXRzIT1udWxsKSB7CisJIAkJLyoKKwkgICAgICAgICAqIGJpbmFyeSBzZWFyY2ggZm9yIGMKKwkgICAgICAgICAqCisJICAgICAgICAgKiBUaGVyZSBhcmUgdHdvIHNlYXJjaCB0YWJsZXMsCisJICAgICAgICAgKiBvbmUgZm9yIEJNUCBjb2RlIHBvaW50cyBhbmQgb25lIGZvciBzdXBwbGVtZW50YXJ5IG9uZXMuCisJICAgICAgICAgKiBTZWUgdW5vcm1pbXAuaCBmb3IgZGV0YWlscy4KKwkgICAgICAgICAqLworCSAgICAgICAgY2hhcltdIHRhYmxlOworCSAgICAgICAgaW50IGk9MCwgc3RhcnQsIGxpbWl0OworCSAgICAgICAgCisgICAgICAgICAgICBpbnRbXSBpbmRleGVzID0gKGludFtdKSBjYW5vblN0YXJ0U2V0c1tDQU5PTl9TRVRfSU5ESUNJRVNfSU5ERVhdOworICAgICAgICAgICAgY2hhcltdIHN0YXJ0U2V0cyA9IChjaGFyW10pIGNhbm9uU3RhcnRTZXRzW0NBTk9OX1NFVF9TVEFSVF9TRVRTX0lOREVYXTsKKyAgICAgICAgICAgIAorCSAgICAgICAgaWYoYzw9MHhmZmZmKSB7CisJICAgICAgICAgICAgdGFibGU9KGNoYXJbXSkgY2Fub25TdGFydFNldHNbQ0FOT05fU0VUX0JNUF9UQUJMRV9JTkRFWF07CisJICAgICAgICAgICAgc3RhcnQ9MDsKKwkgICAgICAgICAgICBsaW1pdD10YWJsZS5sZW5ndGg7CisJCisJICAgICAgICAgICAgLyogZWFjaCBlbnRyeSBpcyBhIHBhaXIgeyBjLCByZXN1bHQgfSAqLworCSAgICAgICAgICAgIHdoaWxlKHN0YXJ0PGxpbWl0LTIpIHsKKwkgICAgICAgICAgICAgICAgaT0oY2hhcikoKChzdGFydCtsaW1pdCkvNCkqMik7IAorCSAgICAgICAgICAgICAgICBpZihjPHRhYmxlW2ldKSB7CisJICAgICAgICAgICAgICAgICAgICBsaW1pdD1pOworCSAgICAgICAgICAgICAgICB9IGVsc2UgeworCSAgICAgICAgICAgICAgICAgICAgc3RhcnQ9aTsKKwkgICAgICAgICAgICAgICAgfQorCSAgICAgICAgICAgIH0KKwkgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbihpKTsKKwkgICAgICAgICAgICAvKiBmb3VuZD8gKi8KKwkgICAgICAgICAgICBpZihjPT10YWJsZVtzdGFydF0pIHsKKwkgICAgICAgICAgICAgICAgaT10YWJsZVtzdGFydCsxXTsKKwkgICAgICAgICAgICAgICAgaWYoKGkmQ0FOT05fU0VUX0JNUF9NQVNLKT09Q0FOT05fU0VUX0JNUF9JU19JTkRFWCkgeworCSAgICAgICAgICAgICAgICAgICAgLyogcmVzdWx0IDAxeHh4eHh4IHh4eHh4eCBjb250YWlucyBpbmRleCB4IHRvIGEgCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBVU2VyaWFsaXplZFNldCAqLworCSAgICAgICAgICAgICAgICAgICAgaSY9KENBTk9OX1NFVF9NQVhfQ0FOT05fU0VUUy0xKTsKKwkgICAgICAgICAgICAgICAgICAgIHJldHVybiBmaWxsU2V0LmdldFNldChzdGFydFNldHMsKGktaW5kZXhlcy5sZW5ndGgpKTsKKwkgICAgICAgICAgICAgICAgfSBlbHNlIHsKKwkgICAgICAgICAgICAgICAgICAgIC8qIG90aGVyIHJlc3VsdCB2YWx1ZXMgYXJlIEJNUCBjb2RlIHBvaW50cyBmb3IgCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBzaW5nbGUtY29kZSBwb2ludCBzZXRzICovCisJICAgICAgICAgICAgICAgICAgICBmaWxsU2V0LnNldFNlcmlhbGl6ZWRUb09uZShpKTsKKwkgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworCSAgICAgICAgICAgICAgICB9CisJICAgICAgICAgICAgfQorCSAgICAgICAgfSBlbHNlIHsKKwkgICAgICAgICAgICBjaGFyIGhpZ2gsIGxvdywgaDsKKwkKKwkgICAgICAgICAgICB0YWJsZT0oY2hhcltdKSBjYW5vblN0YXJ0U2V0c1tDQU5PTl9TRVRfU1VQUF9UQUJMRV9JTkRFWF07CisJICAgICAgICAgICAgc3RhcnQ9MDsKKwkgICAgICAgICAgICBsaW1pdD10YWJsZS5sZW5ndGg7CisJCisJICAgICAgICAgICAgaGlnaD0oY2hhcikoYz4+MTYpOworCSAgICAgICAgICAgIGxvdz0oY2hhciljOworCQorCSAgICAgICAgICAgIC8qIGVhY2ggZW50cnkgaXMgYSB0cmlwbGV0IHsgaGlnaChjKSwgbG93KGMpLCByZXN1bHQgfSAqLworCSAgICAgICAgICAgIHdoaWxlKHN0YXJ0PGxpbWl0LTMpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogKHN0YXJ0K2xpbWl0KS8yIGFuZCBhZGRyZXNzIHRyaXBsZXRzICovCisJICAgICAgICAgICAgICAgIGk9KGNoYXIpKCgoc3RhcnQrbGltaXQpLzYpKjMpOyAKKwkgICAgICAgICAgICAgICAgaD0oY2hhcikodGFibGVbaV0mMHgxZik7IC8qIGhpZ2ggd29yZCAqLworCSAgICAgICAgICAgICAgICBpZihoaWdoPGggfHwgKGhpZ2g9PWggJiYgbG93PHRhYmxlW2krMV0pKSB7CisJICAgICAgICAgICAgICAgICAgICBsaW1pdD1pOworCSAgICAgICAgICAgICAgICB9IGVsc2UgeworCSAgICAgICAgICAgICAgICAgICAgc3RhcnQ9aTsKKwkgICAgICAgICAgICAgICAgfQorCSAgICAgICAgICAgIH0KKwkKKwkgICAgICAgICAgICAvKiBmb3VuZD8gKi8KKwkgICAgICAgICAgICBoPXRhYmxlW3N0YXJ0XTsKKwkgICAgICAgICAgICBpZihoaWdoPT0oaCYweDFmKSAmJiBsb3c9PXRhYmxlW3N0YXJ0KzFdKSB7CisJICAgICAgICAgICAgICAgIGk9dGFibGVbc3RhcnQrMl07CisJICAgICAgICAgICAgICAgIGlmKChoJjB4ODAwMCk9PTApIHsKKwkgICAgICAgICAgICAgICAgICAgIC8qIHRoZSByZXN1bHQgaXMgYW4gaW5kZXggdG8gYSBVU2VyaWFsaXplZFNldCAqLworCSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbGxTZXQuZ2V0U2V0KHN0YXJ0U2V0cywoaS1pbmRleGVzLmxlbmd0aCkpOworCSAgICAgICAgICAgICAgICB9IGVsc2UgeworCSAgICAgICAgICAgICAgICAgICAgLyoKKwkgICAgICAgICAgICAgICAgICAgICAqIHNpbmdsZS1jb2RlIHBvaW50IHNldCB7eH0gaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAqIHRyaXBsZXQgeyAxMDB4eHh4eCAwMDBoaGhoaCAgbGxsbGxsbGwgbGxsbGxsbGwgIHh4eHh4eHh4IHh4eHh4eHh4IH0KKwkgICAgICAgICAgICAgICAgICAgICAqLworCSAgICAgICAgICAgICAgICAgICAgaXw9KChpbnQpaCYweDFmMDApPDw4OyAvKiBhZGQgaGlnaCBiaXRzIGZyb20gaGlnaChjKSAqLworCSAgICAgICAgICAgICAgICAgICAgZmlsbFNldC5zZXRTZXJpYWxpemVkVG9PbmUoKGludClpKTsKKwkgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworCSAgICAgICAgICAgICAgICB9CisJICAgICAgICAgICAgfQorCSAgICAgICAgfQorCSAgICB9CisJCisJICAgIHJldHVybiBmYWxzZTsgLyogbm90IGZvdW5kICovCisJfQorCQorCS8qKgorCSAqIEludGVybmFsIEFQSSwgdXNlZCBieSBjb2xsYXRpb24gY29kZS4KKwkgKiBHZXQgYWNjZXNzIHRvIHRoZSBpbnRlcm5hbCBGQ0QgdHJpZSB0YWJsZSB0byBiZSBhYmxlIHRvIHBlcmZvcm0KKwkgKiBpbmNyZW1lbnRhbCwgcGVyLWNvZGUgdW5pdCwgRkNEIGNoZWNrcyBpbiBjb2xsYXRpb24uCisJICogT25lIHBvaW50ZXIgaXMgc3VmZmljaWVudCBiZWNhdXNlIHRoZSB0cmllIGluZGV4IHZhbHVlcyBhcmUgb2Zmc2V0CisJICogYnkgdGhlIGluZGV4IHNpemUsIHNvIHRoYXQgdGhlIHNhbWUgcG9pbnRlciBpcyB1c2VkIHRvIGFjY2VzcyB0aGUgdHJpZSAKKyAgICAgKiBkYXRhLgorCSAqIEBpbnRlcm5hbAorCSAqLworCXB1YmxpYyBDaGFyVHJpZSBnZXRGQ0RUcmllKCl7CisJCXJldHVybiBmY2RUcmllSW1wbC5mY2RUcmllOworCX0KKworCisgICAgCisgICAvKiBjb21wYXJlIGNhbm9uaWNhbGx5IGVxdWl2YWxlbnQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisJLyoKKwkgKiBDb21wYXJlIHR3byBzdHJpbmdzIGZvciBjYW5vbmljYWwgZXF1aXZhbGVuY2UuCisJICogRnVydGhlciBvcHRpb25zIGluY2x1ZGUgY2FzZS1pbnNlbnNpdGl2ZSBjb21wYXJpc29uIGFuZAorCSAqIGNvZGUgcG9pbnQgb3JkZXIgKGFzIG9wcG9zZWQgdG8gY29kZSB1bml0IG9yZGVyKS4KKwkgKgorCSAqIEluIHRoaXMgZnVuY3Rpb24sIGNhbm9uaWNhbCBlcXVpdmFsZW5jZSBpcyBvcHRpb25hbCBhcyB3ZWxsLgorCSAqIElmIGNhbm9uaWNhbCBlcXVpdmFsZW5jZSBpcyB0ZXN0ZWQsIHRoZW4gYm90aCBzdHJpbmdzIG11c3QgZnVsZmlsbAorCSAqIHRoZSBGQ0QgY2hlY2suCisJICoKKwkgKiBTZW1hbnRpY2FsbHksIHRoaXMgaXMgZXF1aXZhbGVudCB0bworCSAqICAgc3RyY21wW0NvZGVQb2ludE9yZGVyXShmb2xkQ2FzZShORkQoczEpKSwgZm9sZENhc2UoTkZEKHMyKSkpCisJICogd2hlcmUgY29kZSBwb2ludCBvcmRlciwgTkZEIGFuZCBmb2xkQ2FzZSBhcmUgYWxsIG9wdGlvbmFsLgorCSAqCisJICogU3RyaW5nIGNvbXBhcmlzb25zIGFsbW9zdCBhbHdheXMgeWllbGQgcmVzdWx0cyBiZWZvcmUgcHJvY2Vzc2luZyBib3RoIAorICAgICAqIHN0cmluZ3MgY29tcGxldGVseS4KKwkgKiBUaGV5IGFyZSBnZW5lcmFsbHkgbW9yZSBlZmZpY2llbnQgd29ya2luZyBpbmNyZW1lbnRhbGx5IGluc3RlYWQgb2YKKwkgKiBwZXJmb3JtaW5nIHRoZSBzdWItcHJvY2Vzc2luZyAoc3RybGVuLCBub3JtYWxpemF0aW9uLCBjYXNlLWZvbGRpbmcpCisJICogb24gdGhlIGVudGlyZSBzdHJpbmdzIGZpcnN0LgorCSAqCisJICogSXQgaXMgYWxzbyB1bm5lY2Vzc2FyeSB0byBub3Qgbm9ybWFsaXplIGlkZW50aWNhbCBjaGFyYWN0ZXJzLgorCSAqCisJICogVGhpcyBmdW5jdGlvbiB3b3JrcyBpbiBwcmluY2lwbGUgYXMgZm9sbG93czoKKwkgKgorCSAqIGxvb3AgeworCSAqICAgZ2V0IG9uZSBjb2RlIHVuaXQgYzEgZnJvbSBzMSAoLTEgaWYgZW5kIG9mIHNvdXJjZSkKKwkgKiAgIGdldCBvbmUgY29kZSB1bml0IGMyIGZyb20gczIgKC0xIGlmIGVuZCBvZiBzb3VyY2UpCisJICoKKwkgKiAgIGlmKGVpdGhlciBzdHJpbmcgZmluaXNoZWQpIHsKKwkgKiAgICAgcmV0dXJuIHJlc3VsdDsKKwkgKiAgIH0KKwkgKiAgIGlmKGMxPT1jMikgeworCSAqICAgICBjb250aW51ZTsKKwkgKiAgIH0KKwkgKgorCSAqICAgLy8gYzEhPWMyCisJICogICB0cnkgdG8gZGVjb21wb3NlL2Nhc2UtZm9sZCBjMS9jMiwgYW5kIGNvbnRpbnVlIGlmIG9uZSBkb2VzOworCSAqCisJICogICAvLyBzdGlsbCBjMSE9YzIgYW5kIG5laXRoZXIgZGVjb21wb3Nlcy9jYXNlLWZvbGRzLCByZXR1cm4gcmVzdWx0CisJICogICByZXR1cm4gYzEtYzI7CisJICogfQorCSAqCisJICogV2hlbiBhIGNoYXJhY3RlciBkZWNvbXBvc2VzLCB0aGVuIHRoZSBwb2ludGVyIGZvciB0aGF0IHNvdXJjZSBjaGFuZ2VzIHRvCisJICogdGhlIGRlY29tcG9zaXRpb24sIHB1c2hpbmcgdGhlIHByZXZpb3VzIHBvaW50ZXIgb250byBhIHN0YWNrLgorCSAqIFdoZW4gdGhlIGVuZCBvZiB0aGUgZGVjb21wb3NpdGlvbiBpcyByZWFjaGVkLCB0aGVuIHRoZSBjb2RlIHVuaXQgcmVhZGVyCisJICogcG9wcyB0aGUgcHJldmlvdXMgc291cmNlIGZyb20gdGhlIHN0YWNrLgorCSAqIChTYW1lIGZvciBjYXNlLWZvbGRpbmcuKQorCSAqCisJICogVGhpcyBpcyBjb21wbGljYXRlZCBmdXJ0aGVyIGJ5IG9wZXJhdGluZyBvbiB2YXJpYWJsZS13aWR0aCBVVEYtMTYuCisJICogVGhlIHRvcCBwYXJ0IG9mIHRoZSBsb29wIHdvcmtzIG9uIGNvZGUgdW5pdHMsIHdoaWxlIGxvb2t1cHMgZm9yIGRlY29tcG9zaXRpb24KKwkgKiBhbmQgY2FzZS1mb2xkaW5nIG5lZWQgY29kZSBwb2ludHMuCisJICogQ29kZSBwb2ludHMgYXJlIGFzc2VtYmxlZCBhZnRlciB0aGUgZXF1YWxpdHkvZW5kLW9mLXNvdXJjZSBwYXJ0LgorCSAqIFRoZSBzb3VyY2UgcG9pbnRlciBpcyBvbmx5IGFkdmFuY2VkIGJleW9uZCBhbGwgY29kZSB1bml0cyB3aGVuIHRoZSBjb2RlIHBvaW50CisJICogYWN0dWFsbHkgZGVjb21wb3Nlcy9jYXNlLWZvbGRzLgorCSAqCisJICogSWYgd2Ugd2VyZSBvbiBhIHRyYWlsIHN1cnJvZ2F0ZSB1bml0IHdoZW4gYXNzZW1ibGluZyBhIGNvZGUgcG9pbnQsCisJICogYW5kIHRoZSBjb2RlIHBvaW50IGRlY29tcG9zZXMvY2FzZS1mb2xkcywgdGhlbiB0aGUgZGVjb21wb3NpdGlvbi9mb2xkaW5nCisJICogcmVzdWx0IG11c3QgYmUgY29tcGFyZWQgd2l0aCB0aGUgcGFydCBvZiB0aGUgb3RoZXIgc3RyaW5nIHRoYXQgY29ycmVzcG9uZHMgdG8KKwkgKiB0aGlzIHN0cmluZydzIGxlYWQgc3Vycm9nYXRlLgorCSAqIFNpbmNlIHdlIG9ubHkgYXNzZW1ibGUgYSBjb2RlIHBvaW50IHdoZW4gaGl0dGluZyBhIHRyYWlsIHVuaXQgd2hlbiB0aGUKKwkgKiBwcmVjZWRpbmcgbGVhZCB1bml0cyB3ZXJlIGlkZW50aWNhbCwgd2UgYmFjayB1cCB0aGUgb3RoZXIgc3RyaW5nIGJ5IG9uZSB1bml0CisJICogaW4gc3VjaCBhIGNhc2UuCisJICoKKwkgKiBUaGUgb3B0aW9uYWwgY29kZSBwb2ludCBvcmRlciBjb21wYXJpc29uIGF0IHRoZSBlbmQgd29ya3Mgd2l0aAorCSAqIHRoZSBzYW1lIGZpeC11cCBhcyB0aGUgb3RoZXIgY29kZSBwb2ludCBvcmRlciBjb21wYXJpc29uIGZ1bmN0aW9ucy4KKwkgKiBTZWUgdXN0cmluZy5jIGFuZCB0aGUgY29tbWVudCBuZWFyIHRoZSBlbmQgb2YgdGhpcyBmdW5jdGlvbi4KKwkgKgorCSAqIEFzc3VtcHRpb246IEEgZGVjb21wb3NpdGlvbiBvciBjYXNlLWZvbGRpbmcgcmVzdWx0IHN0cmluZyBuZXZlciBjb250YWlucworCSAqIGEgc2luZ2xlIHN1cnJvZ2F0ZS4gVGhpcyBpcyBhIHNhZmUgYXNzdW1wdGlvbiBpbiB0aGUgVW5pY29kZSBTdGFuZGFyZC4KKwkgKiBUaGVyZWZvcmUsIHdlIGRvIG5vdCBuZWVkIHRvIGNoZWNrIGZvciBzdXJyb2dhdGUgcGFpcnMgYWNyb3NzCisJICogZGVjb21wb3NpdGlvbi9jYXNlLWZvbGRpbmcgYm91bmRhcmllcy4KKwkgKiBGdXJ0aGVyIGFzc3VtcHRpb25zIChzZWUgdmVyaWZpY2F0aW9ucyB0c3Rub3JtLmNwcCk6CisJICogVGhlIEFQSSBmdW5jdGlvbiBjaGVja3MgZm9yIEZDRCBmaXJzdCwgd2hpbGUgdGhlIGNvcmUgZnVuY3Rpb24KKwkgKiBmaXJzdCBjYXNlLWZvbGRzIGFuZCB0aGVuIGRlY29tcG9zZXMuIFRoaXMgcmVxdWlyZXMgdGhhdCBjYXNlLWZvbGRpbmcgZG9lcyBub3QKKwkgKiB1bi1GQ0QgYW55IHN0cmluZ3MuCisJICoKKwkgKiBUaGUgQVBJIGZ1bmN0aW9uIG1heSBhbHNvIE5GRCB0aGUgaW5wdXQgYW5kIHR1cm4gb2ZmIGRlY29tcG9zaXRpb24uCisJICogVGhpcyByZXF1aXJlcyB0aGF0IGNhc2UtZm9sZGluZyBkb2VzIG5vdCB1bi1ORkQgc3RyaW5ncyBlaXRoZXIuCisJICoKKwkgKiBUT0RPIElmIGFueSBvZiB0aGUgYWJvdmUgdHdvIGFzc3VtcHRpb25zIGlzIHZpb2xhdGVkLAorCSAqIHRoZW4gdGhpcyBlbnRpcmUgY29kZSBtdXN0IGJlIHJlLXRob3VnaHQuCisJICogSWYgdGhpcyBoYXBwZW5zLCB0aGVuIGEgc2ltcGxlIHNvbHV0aW9uIGlzIHRvIGNhc2UtZm9sZCBib3RoIHN0cmluZ3MgdXAgZnJvbnQKKwkgKiBhbmQgdG8gdHVybiBvZmYgVU5PUk1fSU5QVVRfSVNfRkNELgorCSAqIFdlIGFscmVhZHkgZG8gdGhpcyB3aGVuIG5vdCBib3RoIHN0cmluZ3MgYXJlIGluIEZDRCBiZWNhdXNlIG1ha2VGQ0QKKwkgKiB3b3VsZCBiZSBhIHBhcnRpYWwgTkZEIGJlZm9yZSB0aGUgY2FzZSBmb2xkaW5nLCB3aGljaCBkb2VzIG5vdCB3b3JrLgorCSAqIE5vdGUgdGhhdCBhbGwgb2YgdGhpcyBpcyBvbmx5IGEgcHJvYmxlbSB3aGVuIGNhc2UtZm9sZGluZyBfYW5kXworCSAqIGNhbm9uaWNhbCBlcXVpdmFsZW5jZSBjb21lIHRvZ2V0aGVyLgorICAgICAqIAorCSAqIFRoaXMgZnVuY3Rpb24gY291bGQgYmUgbW92ZWQgdG8gYSBkaWZmZXJlbnQgc291cmNlIGZpbGUsIGF0IGluY3JlYXNlZCBjb3N0CisJICogZm9yIGNhbGxpbmcgdGhlIGRlY29tcG9zaXRpb24gYWNjZXNzIGZ1bmN0aW9uLgorCSAqLworCQorCS8vIHN0YWNrIGVsZW1lbnQgZm9yIHByZXZpb3VzLWxldmVsIHNvdXJjZS9kZWNvbXBvc2l0aW9uIHBvaW50ZXJzCisJcHJpdmF0ZSBzdGF0aWMgY2xhc3MgQ21wRXF1aXZMZXZlbCB7CisgICAgICAgIGNoYXJbXSBzb3VyY2U7CisJICAgIGludCBzdGFydDsKKyAgICAgICAgaW50IHM7CisgICAgICAgIGludCBsaW1pdDsKKwl9CisgICAgCisJLyoqCisJICogR2V0IHRoZSBjYW5vbmljYWwgZGVjb21wb3NpdGlvbiBmb3Igb25lIGNvZGUgcG9pbnQuCisJICogQHBhcmFtIGMgY29kZSBwb2ludAorCSAqIEBwYXJhbSBidWZmZXIgb3V0LW9ubHkgYnVmZmVyIGZvciBhbGdvcml0aG1pYyBkZWNvbXBvc2l0aW9ucyBvZiBIYW5ndWwKKwkgKiBAcGFyYW0gbGVuZ3RoIG91dC1vbmx5LCB0YWtlcyB0aGUgbGVuZ3RoIG9mIHRoZSBkZWNvbXBvc2l0aW9uLCBpZiBhbnkKKwkgKiBAcmV0dXJuIGluZGV4IGludG8gdGhlIGV4dHJhRGF0YSBhcnJheSwgb3IgMCBpZiBub25lCisJICogQGludGVybmFsCisJICovCisJIHByaXZhdGUgc3RhdGljIGludCBkZWNvbXBvc2UoaW50IGMsIGNoYXJbXSBidWZmZXIpIHsKKwkgICAgCisgICAgICAgIGxvbmcgbm9ybTMyOworCSAgICBpbnQgbGVuZ3RoPTA7CisJICAgIG5vcm0zMiA9IChsb25nKSAoKFVOU0lHTkVEX0lOVF9NQVNLKSAmIG5vcm1UcmllSW1wbC5ub3JtVHJpZS5nZXRDb2RlUG9pbnRWYWx1ZShjKSk7CisJICAgIGlmKChub3JtMzIgJiBRQ19ORkQpIT0wKSB7CisJICAgICAgICBpZihpc05vcm0zMkhhbmd1bE9ySmFtbyhub3JtMzIpKSB7CisJICAgICAgICAgICAgLyogSGFuZ3VsIHN5bGxhYmxlOiBkZWNvbXBvc2UgYWxnb3JpdGhtaWNhbGx5ICovCisJICAgICAgICAgICAgY2hhciBjMjsKKwkKKwkgICAgICAgICAgICBjLT1IQU5HVUxfQkFTRTsKKwkKKwkgICAgICAgICAgICBjMj0oY2hhcikoYyVKQU1PX1RfQ09VTlQpOworCSAgICAgICAgICAgIGMvPUpBTU9fVF9DT1VOVDsKKwkgICAgICAgICAgICBpZihjMj4wKSB7CisJICAgICAgICAgICAgICAgIGJ1ZmZlclsyXT0oY2hhcikoSkFNT19UX0JBU0UrYzIpOworCSAgICAgICAgICAgICAgICBsZW5ndGg9MzsKKwkgICAgICAgICAgICB9IGVsc2UgeworCSAgICAgICAgICAgICAgICBsZW5ndGg9MjsKKwkgICAgICAgICAgICB9CisJICAgICAgICAgICAgYnVmZmVyWzFdPShjaGFyKShKQU1PX1ZfQkFTRStjJUpBTU9fVl9DT1VOVCk7CisJICAgICAgICAgICAgYnVmZmVyWzBdPShjaGFyKShKQU1PX0xfQkFTRStjL0pBTU9fVl9DT1VOVCk7CisJICAgICAgICAgICAgcmV0dXJuIGxlbmd0aDsKKwkgICAgICAgIH0gZWxzZSB7CisJICAgICAgICAgICAgLyogbm9ybWFsIGRlY29tcG9zaXRpb24gKi8KKwkgICAgICAgICAgICBEZWNvbXBvc2VBcmdzICBhcmdzID0gbmV3IERlY29tcG9zZUFyZ3MoKTsKKwkgICAgICAgICAgICBpbnQgaW5kZXggPSBkZWNvbXBvc2Uobm9ybTMyLCBhcmdzKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGV4dHJhRGF0YSxpbmRleCxidWZmZXIsMCxhcmdzLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGFyZ3MubGVuZ3RoIDsKKwkgICAgICAgIH0KKwkgICAgfSBlbHNlIHsKKwkgICAgICAgIHJldHVybiAwOworCSAgICB9CisJfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGZvbGRDYXNlKGludCBjLCBjaGFyW10gZGVzdCwgaW50IGRlc3RTdGFydCwgaW50IGRlc3RMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGRlZmF1bHRNYXBwaW5nKXsKKyAgICAgICAgU3RyaW5nIHNyYyA9IFVURjE2LnZhbHVlT2YoYyk7CisgICAgICAgIFN0cmluZyBmb2xkZWRTdHIgPSBVQ2hhcmFjdGVyLmZvbGRDYXNlKHNyYyxkZWZhdWx0TWFwcGluZyk7CisgICAgICAgIGNoYXJbXSBmb2xkZWRDID0gZm9sZGVkU3RyLnRvQ2hhckFycmF5KCk7CisgICAgICAgIGZvcihpbnQgaT0wO2k8Zm9sZGVkQy5sZW5ndGg7aSsrKXsKKyAgICAgICAgICAgIGlmKGRlc3RTdGFydDxkZXN0TGltaXQpeworICAgICAgICAgICAgICAgIGRlc3RbZGVzdFN0YXJ0XT1mb2xkZWRDW2ldOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gYWx3YXlzIGluY3JlbWVudCBkZXN0U3RhcnQgc28gdGhhdCB3ZSBjYW4gcmV0dXJuIAorICAgICAgICAgICAgLy8gdGhlIHJlcXVpcmVkIGxlbmd0aAorICAgICAgICAgICAgZGVzdFN0YXJ0Kys7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChjPT1VVEYxNi5jaGFyQXQoZm9sZGVkU3RyLDApKSA/IC1kZXN0U3RhcnQgOiBkZXN0U3RhcnQ7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGludCBmb2xkQ2FzZShjaGFyW10gc3JjLGludCBzcmNTdGFydCxpbnQgc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBkZXN0LCBpbnQgZGVzdFN0YXJ0LCBpbnQgZGVzdExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGRlZmF1bHRNYXBwaW5nKXsKKyAgICAgICAgU3RyaW5nIHNvdXJjZSA9bmV3IFN0cmluZyhzcmMsc3JjU3RhcnQsKHNyY0xpbWl0LXNyY1N0YXJ0KSk7CisgICAgICAgIFN0cmluZyBmb2xkZWRTdHIgPSBVQ2hhcmFjdGVyLmZvbGRDYXNlKHNvdXJjZSxkZWZhdWx0TWFwcGluZyk7CisgICAgICAgIGNoYXJbXSBmb2xkZWRDID0gZm9sZGVkU3RyLnRvQ2hhckFycmF5KCk7CisgICAgICAgIGZvcihpbnQgaT0wO2k8Zm9sZGVkQy5sZW5ndGg7aSsrKXsKKyAgICAgICAgICAgIGlmKGRlc3RTdGFydDxkZXN0TGltaXQpeworICAgICAgICAgICAgICAgIGRlc3RbZGVzdFN0YXJ0XT1mb2xkZWRDW2ldOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gYWx3YXlzIGluY3JlbWVudCBkZXN0U3RhcnQgc28gdGhhdCB3ZSBjYW4gcmV0dXJuIAorICAgICAgICAgICAgLy8gdGhlIHJlcXVpcmVkIGxlbmd0aAorICAgICAgICAgICAgZGVzdFN0YXJ0Kys7CisgICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZGVzdFN0YXJ0OworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGludCBjbXBFcXVpdkZvbGQoU3RyaW5nIHMxLCBTdHJpbmcgczIsaW50IG9wdGlvbnMpeworICAgICAgICByZXR1cm4gY21wRXF1aXZGb2xkKHMxLnRvQ2hhckFycmF5KCksMCxzMS5sZW5ndGgoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzMi50b0NoYXJBcnJheSgpLDAsczIubGVuZ3RoKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyk7CisgICAgfQorICAgIAorICAgIAorCS8vIGludGVybmFsIGZ1bmN0aW9uCisgICAgcHVibGljIHN0YXRpYyBpbnQgY21wRXF1aXZGb2xkKGNoYXJbXSBzMSwgaW50IHMxU3RhcnQsaW50IHMxTGltaXQsCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBzMiwgaW50IHMyU3RhcnQsaW50IHMyTGltaXQsCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvcHRpb25zKSB7CisJICAgIC8vIGN1cnJlbnQtbGV2ZWwgc3RhcnQvbGltaXQgLSBzMS9zMiBhcyBjdXJyZW50CisJICAgIGludCBzdGFydDEsIHN0YXJ0MiwgbGltaXQxLCBsaW1pdDI7CisJICAgIGNoYXJbXSBjU291cmNlMSwgY1NvdXJjZTI7CisgICAgICAgIAorICAgICAgICBjU291cmNlMSA9IHMxOworICAgICAgICBjU291cmNlMiA9IHMyOworCSAgICAvLyBkZWNvbXBvc2l0aW9uIHZhcmlhYmxlcworCSAgICBpbnQgbGVuZ3RoOworCQorCSAgICAvLyBzdGFja3Mgb2YgcHJldmlvdXMtbGV2ZWwgc3RhcnQvY3VycmVudC9saW1pdAorCSAgICBDbXBFcXVpdkxldmVsW10gc3RhY2sxID0gbmV3IENtcEVxdWl2TGV2ZWxbXXsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IENtcEVxdWl2TGV2ZWwoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQ21wRXF1aXZMZXZlbCgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgIENtcEVxdWl2TGV2ZWxbXSBzdGFjazIgPSBuZXcgQ21wRXF1aXZMZXZlbFtdeyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQ21wRXF1aXZMZXZlbCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBDbXBFcXVpdkxldmVsKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKKwkKKwkgICAgLy8gZGVjb21wb3NpdGlvbiBidWZmZXJzIGZvciBIYW5ndWwKKwkgICAgY2hhcltdIGRlY29tcDEgPSBuZXcgY2hhcls4XTsKKyAgICAgICAgY2hhcltdIGRlY29tcDIgPSBuZXcgY2hhcls4XTsKKwkKKwkgICAgLy8gY2FzZSBmb2xkaW5nIGJ1ZmZlcnMsIG9ubHkgdXNlIGN1cnJlbnQtbGV2ZWwgc3RhcnQvbGltaXQKKwkgICAgY2hhcltdIGZvbGQxID0gbmV3IGNoYXJbMzJdOworICAgICAgICBjaGFyW10gZm9sZDIgPSBuZXcgY2hhclszMl07CisJCisJICAgIC8vIHRyYWNrIHdoaWNoIGlzIHRoZSBjdXJyZW50IGxldmVsIHBlciBzdHJpbmcKKwkgICAgaW50IGxldmVsMSwgbGV2ZWwyOworCQorCSAgICAvLyBjdXJyZW50IGNvZGUgdW5pdHMsIGFuZCBjb2RlIHBvaW50cyBmb3IgbG9va3VwcworCSAgICBpbnQgYzEsIGMyOworICAgICAgICBpbnQgY3AxLCBjcDI7CisJCisJICAgIC8vIG5vIGFyZ3VtZW50IGVycm9yIGNoZWNraW5nIGJlY2F1c2UgdGhpcyBpdHNlbGYgaXMgbm90IGFuIEFQSQorCQorCSAgICAvLyBhc3N1bWUgdGhhdCBhdCBsZWFzdCBvbmUgb2YgdGhlIG9wdGlvbnMgQ09NUEFSRV9FUVVJViBhbmQgCisgICAgICAgIC8vIENPTVBBUkVfSUdOT1JFX0NBU0UgaXMgc2V0CisJICAgIC8vIG90aGVyd2lzZSB0aGlzIGZ1bmN0aW9uIG11c3QgYmVoYXZlIGV4YWN0bHkgYXMgdXBydl9zdHJDb21wYXJlKCkKKwkgICAgLy8gbm90IGNoZWNraW5nIGZvciB0aGF0IGhlcmUgbWFrZXMgdGVzdGluZyB0aGlzIGZ1bmN0aW9uIGVhc2llcgorCisJCisJICAgIC8vIGluaXRpYWxpemUKKwkgICAgc3RhcnQxPXMxU3RhcnQ7CisJICAgIGxpbWl0MT1zMUxpbWl0OworCSAgICAKKwkgICAgc3RhcnQyPXMyU3RhcnQ7CisJICAgIGxpbWl0Mj1zMkxpbWl0OworCSAgICAKKwkgICAgbGV2ZWwxPWxldmVsMj0wOworCSAgICBjMT1jMj0tMTsKKwkgICAgY3AxPWNwMj0tMTsKKwkgICAgLy8gY29tcGFyaXNvbiBsb29wCisJICAgIGZvcig7OykgeworCSAgICAgICAgLy8gaGVyZSBhIGNvZGUgdW5pdCB2YWx1ZSBvZiAtMSBtZWFucyAiZ2V0IGFub3RoZXIgY29kZSB1bml0IgorCSAgICAgICAgLy8gYmVsb3cgaXQgd2lsbCBtZWFuICJ0aGlzIHNvdXJjZSBpcyBmaW5pc2hlZCIKKwkKKwkgICAgICAgIGlmKGMxPDApIHsKKwkgICAgICAgICAgICAvLyBnZXQgbmV4dCBjb2RlIHVuaXQgZnJvbSBzdHJpbmcgMSwgcG9zdC1pbmNyZW1lbnQKKwkgICAgICAgICAgICBmb3IoOzspIHsKKwkgICAgICAgICAgICAgICAgaWYoczFTdGFydD49bGltaXQxKSB7CisJICAgICAgICAgICAgICAgICAgICBpZihsZXZlbDE9PTApIHsKKwkgICAgICAgICAgICAgICAgICAgICAgICBjMT0tMTsKKwkgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKwkgICAgICAgICAgICAgICAgICAgIH0KKwkgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGMxPWNTb3VyY2UxW3MxU3RhcnRdOworCSAgICAgICAgICAgICAgICAgICAgKytzMVN0YXJ0OworCSAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisJICAgICAgICAgICAgICAgIH0KKwkKKwkgICAgICAgICAgICAgICAgLy8gcmVhY2hlZCBlbmQgb2YgbGV2ZWwgYnVmZmVyLCBwb3Agb25lIGxldmVsCisJICAgICAgICAgICAgICAgIGRvIHsKKwkgICAgICAgICAgICAgICAgICAgIC0tbGV2ZWwxOworCSAgICAgICAgICAgICAgICAgICAgc3RhcnQxPXN0YWNrMVtsZXZlbDFdLnN0YXJ0OworCSAgICAgICAgICAgICAgICB9IHdoaWxlKHN0YXJ0MT09LTEpOyAvLyMjIyMjIyBjaGVjayB0aGlzCisJICAgICAgICAgICAgICAgIHMxU3RhcnQ9c3RhY2sxW2xldmVsMV0uczsKKwkgICAgICAgICAgICAgICAgbGltaXQxPXN0YWNrMVtsZXZlbDFdLmxpbWl0OworICAgICAgICAgICAgICAgICAgICBjU291cmNlMT1zdGFjazFbbGV2ZWwxXS5zb3VyY2U7CisJICAgICAgICAgICAgfQorCSAgICAgICAgfQorCQorCSAgICAgICAgaWYoYzI8MCkgeworCSAgICAgICAgICAgIC8vIGdldCBuZXh0IGNvZGUgdW5pdCBmcm9tIHN0cmluZyAyLCBwb3N0LWluY3JlbWVudAorCSAgICAgICAgICAgIGZvcig7OykgeyAgICAgICAgICAgICAgICAgICAgCisJICAgICAgICAgICAgICAgIGlmKHMyU3RhcnQ+PWxpbWl0MikgeworCSAgICAgICAgICAgICAgICAgICAgaWYobGV2ZWwyPT0wKSB7CisJICAgICAgICAgICAgICAgICAgICAgICAgYzI9LTE7CisJICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisJICAgICAgICAgICAgICAgICAgICB9CisJICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjMj1jU291cmNlMltzMlN0YXJ0XTsKKwkgICAgICAgICAgICAgICAgICAgICsrczJTdGFydDsKKwkgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCSAgICAgICAgICAgICAgICB9CisJCisJICAgICAgICAgICAgICAgIC8vIHJlYWNoZWQgZW5kIG9mIGxldmVsIGJ1ZmZlciwgcG9wIG9uZSBsZXZlbAorCSAgICAgICAgICAgICAgICBkbyB7CisJICAgICAgICAgICAgICAgICAgICAtLWxldmVsMjsKKwkgICAgICAgICAgICAgICAgICAgIHN0YXJ0Mj1zdGFjazJbbGV2ZWwyXS5zdGFydDsKKwkgICAgICAgICAgICAgICAgfSB3aGlsZShzdGFydDI9PS0xKTsKKwkgICAgICAgICAgICAgICAgczJTdGFydD1zdGFjazJbbGV2ZWwyXS5zOworCSAgICAgICAgICAgICAgICBsaW1pdDI9c3RhY2syW2xldmVsMl0ubGltaXQ7CisgICAgICAgICAgICAgICAgICAgIGNTb3VyY2UyPXN0YWNrMltsZXZlbDJdLnNvdXJjZTsKKwkgICAgICAgICAgICB9CisJICAgICAgICB9CisJCisJICAgICAgICAvLyBjb21wYXJlIGMxIGFuZCBjMgorCSAgICAgICAgLy8gZWl0aGVyIHZhcmlhYmxlIGMxLCBjMiBpcyAtMSBvbmx5IGlmIHRoZSBjb3JyZXNwb25kaW5nIHN0cmluZyAKKyAgICAgICAgICAgIC8vIGlzIGZpbmlzaGVkCisJICAgICAgICBpZihjMT09YzIpIHsKKwkgICAgICAgICAgICBpZihjMTwwKSB7CisJICAgICAgICAgICAgICAgIHJldHVybiAwOyAgIC8vIGMxPT1jMj09LTEgaW5kaWNhdGluZyBlbmQgb2Ygc3RyaW5ncworCSAgICAgICAgICAgIH0KKwkgICAgICAgICAgICBjMT1jMj0tMTsgICAgICAgLy8gbWFrZSB1cyBmZXRjaCBuZXcgY29kZSB1bml0cworCSAgICAgICAgICAgIGNvbnRpbnVlOworCSAgICAgICAgfSBlbHNlIGlmKGMxPDApIHsKKwkgICAgICAgICAgICByZXR1cm4gLTE7ICAgICAgLy8gc3RyaW5nIDEgZW5kcyBiZWZvcmUgc3RyaW5nIDIKKwkgICAgICAgIH0gZWxzZSBpZihjMjwwKSB7CisJICAgICAgICAgICAgcmV0dXJuIDE7ICAgICAgIC8vIHN0cmluZyAyIGVuZHMgYmVmb3JlIHN0cmluZyAxCisJICAgICAgICB9CisJICAgICAgICAvLyBjMSE9YzIgJiYgYzE+PTAgJiYgYzI+PTAKKwkKKwkgICAgICAgIC8vIGdldCBjb21wbGV0ZSBjb2RlIHBvaW50cyBmb3IgYzEsIGMyIGZvciBsb29rdXBzIGlmIGVpdGhlciBpcyBhIAorICAgICAgICAgICAgLy8gc3Vycm9nYXRlCisgICAgICAgICAgICBjcDE9YzE7CisJICAgICAgICBpZihVVEYxNi5pc1N1cnJvZ2F0ZSgoY2hhciljMSkpIHsgCisJICAgICAgICAgICAgY2hhciBjOworCQorCSAgICAgICAgICAgIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZSgoY2hhciljMSkpIHsKKwkgICAgICAgICAgICAgICAgaWYoICAgIHMxU3RhcnQhPWxpbWl0MSAmJiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoYz1jU291cmNlMVtzMVN0YXJ0XSkKKyAgICAgICAgICAgICAgICAgICAgICApIHsKKwkgICAgICAgICAgICAgICAgICAgIC8vIGFkdmFuY2UgKytzMTsgb25seSBiZWxvdyBpZiBjcDEgZGVjb21wb3Nlcy9jYXNlLWZvbGRzCisJICAgICAgICAgICAgICAgICAgICBjcDE9VUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkoKGNoYXIpYzEsIGMpOworCSAgICAgICAgICAgICAgICB9CisJICAgICAgICAgICAgfSBlbHNlIC8qIGlzVHJhaWwoYzEpICovIHsKKwkgICAgICAgICAgICAgICAgaWYoICAgIHN0YXJ0MTw9KHMxU3RhcnQtMikgJiYgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGM9Y1NvdXJjZTFbKHMxU3RhcnQtMildKQorICAgICAgICAgICAgICAgICAgICAgICkgeworCSAgICAgICAgICAgICAgICAgICAgY3AxPVVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRSYXdTdXBwbGVtZW50YXJ5KGMsIChjaGFyKWMxKTsKKwkgICAgICAgICAgICAgICAgfQorCSAgICAgICAgICAgIH0KKwkgICAgICAgIH0KKwkgICAgICAgIGNwMj1jMjsKKwkgICAgICAgIGlmKFVURjE2LmlzU3Vycm9nYXRlKChjaGFyKWMyKSkgeworCSAgICAgICAgICAgIGNoYXIgYzsKKwkKKwkgICAgICAgICAgICBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoKGNoYXIpYzIpKSB7CisJICAgICAgICAgICAgICAgIGlmKCAgICBzMlN0YXJ0IT1saW1pdDIgJiYgCisgICAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGM9Y1NvdXJjZTJbczJTdGFydF0pCisgICAgICAgICAgICAgICAgICAgICAgKSB7CisJICAgICAgICAgICAgICAgICAgICAvLyBhZHZhbmNlICsrczI7IG9ubHkgYmVsb3cgaWYgY3AyIGRlY29tcG9zZXMvY2FzZS1mb2xkcworCSAgICAgICAgICAgICAgICAgICAgY3AyPVVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRSYXdTdXBwbGVtZW50YXJ5KChjaGFyKWMyLCBjKTsKKwkgICAgICAgICAgICAgICAgfQorCSAgICAgICAgICAgIH0gZWxzZSAvKiBpc1RyYWlsKGMyKSAqLyB7CisJICAgICAgICAgICAgICAgIGlmKCAgICBzdGFydDI8PShzMlN0YXJ0LTIpICYmICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjPWNTb3VyY2UyW3MyU3RhcnQtMl0pCisgICAgICAgICAgICAgICAgICAgICAgKSB7CisJICAgICAgICAgICAgICAgICAgICBjcDI9VUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkoYywgKGNoYXIpYzIpOworCSAgICAgICAgICAgICAgICB9CisJICAgICAgICAgICAgfQorCSAgICAgICAgfQorCQorCSAgICAgICAgLy8gZ28gZG93biBvbmUgbGV2ZWwgZm9yIGVhY2ggc3RyaW5nCisJICAgICAgICAvLyBjb250aW51ZSB3aXRoIHRoZSBtYWluIGxvb3AgYXMgc29vbiBhcyB0aGVyZSBpcyBhIHJlYWwgY2hhbmdlCisJICAgICAgICBpZiggbGV2ZWwxPDIgJiYgKChvcHRpb25zICYgTm9ybWFsaXplci5DT01QQVJFX0lHTk9SRV9DQVNFKSE9MCkmJgorICAgICAgICAgICAgICAgIChsZW5ndGg9Zm9sZENhc2UoY3AxLCBmb2xkMSwgMCwzMiwgKChvcHRpb25zJk5vcm1hbGl6ZXIuRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JKT09MCkpKT49MAorICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgLy8gY3AxIGNhc2UtZm9sZHMgdG8gZm9sZDFbbGVuZ3RoXQorICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzU3Vycm9nYXRlKChjaGFyKWMxKSkgeworICAgICAgICAgICAgICAgICAgICBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoKGNoYXIpYzEpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBhZHZhbmNlIGJleW9uZCBzb3VyY2Ugc3Vycm9nYXRlIHBhaXIgaWYgaXQgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjYXNlLWZvbGRzCisgICAgICAgICAgICAgICAgICAgICAgICArK3MxU3RhcnQ7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSAvKiBpc1RyYWlsKGMxKSAqLyB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBnb3QgYSBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQgd2hlbiBoaXR0aW5nIGl0cyAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyYWlsIHN1cnJvZ2F0ZSwgdGhlcmVmb3JlIHRoZSBsZWFkIHN1cnJvZ2F0ZSBtdXN0IAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGF2ZSBiZWVuIHRoZSBzYW1lIGFzIGluIHRoZSBvdGhlciBzdHJpbmc7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb21wYXJlIHRoaXMgZGVjb21wb3NpdGlvbiB3aXRoIHRoZSBsZWFkIHN1cnJvZ2F0ZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW4gdGhlIG90aGVyIHN0cmluZworICAgICAgICAgICAgICAgICAgICAgICAgLS1zMlN0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgYzI9Y1NvdXJjZTJbKHMyU3RhcnQtMSldOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgIC8vIHB1c2ggY3VycmVudCBsZXZlbCBwb2ludGVycworICAgICAgICAgICAgICAgIHN0YWNrMVswXS5zdGFydD1zdGFydDE7CisgICAgICAgICAgICAgICAgc3RhY2sxWzBdLnM9czFTdGFydDsKKyAgICAgICAgICAgICAgICBzdGFjazFbMF0ubGltaXQ9bGltaXQxOworICAgICAgICAgICAgICAgIHN0YWNrMVswXS5zb3VyY2U9Y1NvdXJjZTE7CisgICAgICAgICAgICAgICAgKytsZXZlbDE7CisgICAgCisgICAgICAgICAgICAgICAgY1NvdXJjZTEgPSBmb2xkMTsKKyAgICAgICAgICAgICAgICBzdGFydDE9czFTdGFydD0wOworICAgICAgICAgICAgICAgIGxpbWl0MT1sZW5ndGg7CisgICAgCisgICAgICAgICAgICAgICAgLy8gZ2V0IHJlYWR5IHRvIHJlYWQgZnJvbSBkZWNvbXBvc2l0aW9uLCBjb250aW51ZSB3aXRoIGxvb3AKKyAgICAgICAgICAgICAgICBjMT0tMTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIGlmKCBsZXZlbDI8MiAmJiAoKG9wdGlvbnMmIE5vcm1hbGl6ZXIuQ09NUEFSRV9JR05PUkVfQ0FTRSkhPTApICYmCisgICAgICAgICAgICAgICAgKGxlbmd0aD1mb2xkQ2FzZShjcDIsIGZvbGQyLDAsMzIsICgob3B0aW9ucyZOb3JtYWxpemVyLkZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSk9PTApKSk+PTAKKyAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgIC8vIGNwMiBjYXNlLWZvbGRzIHRvIGZvbGQyW2xlbmd0aF0KKyAgICAgICAgICAgICAgICBpZihVVEYxNi5pc1N1cnJvZ2F0ZSgoY2hhciljMikpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKChjaGFyKWMyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWR2YW5jZSBiZXlvbmQgc291cmNlIHN1cnJvZ2F0ZSBwYWlyIGlmIGl0IAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2FzZS1mb2xkcworICAgICAgICAgICAgICAgICAgICAgICAgKytzMlN0YXJ0OworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgLyogaXNUcmFpbChjMikgKi8geworICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgZ290IGEgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50IHdoZW4gaGl0dGluZyBpdHMgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0cmFpbCBzdXJyb2dhdGUsIHRoZXJlZm9yZSB0aGUgbGVhZCBzdXJyb2dhdGUgbXVzdCAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGhhdmUgYmVlbiB0aGUgc2FtZSBhcyBpbiB0aGUgb3RoZXIgc3RyaW5nOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29tcGFyZSB0aGlzIGRlY29tcG9zaXRpb24gd2l0aCB0aGUgbGVhZCBzdXJyb2dhdGUgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbiB0aGUgb3RoZXIgc3RyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAtLXMxU3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICBjMT1jU291cmNlMVsoczFTdGFydC0xKV07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgLy8gcHVzaCBjdXJyZW50IGxldmVsIHBvaW50ZXJzCisgICAgICAgICAgICAgICAgc3RhY2syWzBdLnN0YXJ0PXN0YXJ0MjsKKyAgICAgICAgICAgICAgICBzdGFjazJbMF0ucz1zMlN0YXJ0OworICAgICAgICAgICAgICAgIHN0YWNrMlswXS5saW1pdD1saW1pdDI7CisgICAgICAgICAgICAgICAgc3RhY2syWzBdLnNvdXJjZT1jU291cmNlMjsKKyAgICAgICAgICAgICAgICArK2xldmVsMjsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBjU291cmNlMiA9IGZvbGQyOworICAgICAgICAgICAgICAgIHN0YXJ0Mj1zMlN0YXJ0PTA7CisgICAgICAgICAgICAgICAgbGltaXQyPWxlbmd0aDsKKyAgICAKKyAgICAgICAgICAgICAgICAvLyBnZXQgcmVhZHkgdG8gcmVhZCBmcm9tIGRlY29tcG9zaXRpb24sIGNvbnRpbnVlIHdpdGggbG9vcAorICAgICAgICAgICAgICAgIGMyPS0xOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisJICAgICAgICBpZiggbGV2ZWwxPDIgJiYgKChvcHRpb25zJkNPTVBBUkVfRVFVSVYpIT0wKSAmJgorCSAgICAgICAgICAgIDAhPShsZW5ndGg9ZGVjb21wb3NlKGNwMSxkZWNvbXAxKSkKKwkgICAgICAgICkgeworCSAgICAgICAgICAgIC8vIGNwMSBkZWNvbXBvc2VzIGludG8gcFtsZW5ndGhdCisJICAgICAgICAgICAgaWYoVVRGMTYuaXNTdXJyb2dhdGUoKGNoYXIpYzEpKSB7CisJICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZSgoY2hhciljMSkpIHsKKwkgICAgICAgICAgICAgICAgICAgIC8vIGFkdmFuY2UgYmV5b25kIHNvdXJjZSBzdXJyb2dhdGUgcGFpciBpZiBpdCAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vZGVjb21wb3NlcworCSAgICAgICAgICAgICAgICAgICAgKytzMVN0YXJ0OworCSAgICAgICAgICAgICAgICB9IGVsc2UgLyogaXNUcmFpbChjMSkgKi8geworCSAgICAgICAgICAgICAgICAgICAgLy8gd2UgZ290IGEgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50IHdoZW4gaGl0dGluZyAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGl0cyB0cmFpbCBzdXJyb2dhdGUsIHRoZXJlZm9yZSB0aGUgbGVhZCBzdXJyb2dhdGUgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBtdXN0IGhhdmUgYmVlbiB0aGUgc2FtZSBhcyBpbiB0aGUgb3RoZXIgc3RyaW5nOworCSAgICAgICAgICAgICAgICAgICAgLy8gY29tcGFyZSB0aGlzIGRlY29tcG9zaXRpb24gd2l0aCB0aGUgbGVhZCBzdXJyb2dhdGUgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbiB0aGUgb3RoZXIgc3RyaW5nCisJICAgICAgICAgICAgICAgICAgICAtLXMyU3RhcnQ7CisJICAgICAgICAgICAgICAgICAgICBjMj1jU291cmNlMlsoczJTdGFydC0xKV07CisJICAgICAgICAgICAgICAgIH0KKwkgICAgICAgICAgICB9CisJCisJICAgICAgICAgICAgLy8gcHVzaCBjdXJyZW50IGxldmVsIHBvaW50ZXJzCisgICAgICAgICAgICAgICAgc3RhY2sxW2xldmVsMV0uc3RhcnQ9c3RhcnQxOworCSAgICAgICAgICAgIHN0YWNrMVtsZXZlbDFdLnM9czFTdGFydDsKKwkgICAgICAgICAgICBzdGFjazFbbGV2ZWwxXS5saW1pdD1saW1pdDE7CisgICAgICAgICAgICAgICAgc3RhY2sxW2xldmVsMV0uc291cmNlPWNTb3VyY2UxOworCSAgICAgICAgICAgICsrbGV2ZWwxOworCQorCSAgICAgICAgICAgIC8vIHNldCBuZXh0IGxldmVsIHBvaW50ZXJzIHRvIGRlY29tcG9zaXRpb24KKwkgICAgICAgICAgICBjU291cmNlMSA9IGRlY29tcDE7CisgICAgICAgICAgICAgICAgc3RhcnQxPXMxU3RhcnQ9MDsKKwkgICAgICAgICAgICBsaW1pdDE9bGVuZ3RoOworCSAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIHNldCBlbXB0eSBpbnRlcm1lZGlhdGUgbGV2ZWwgaWYgc2tpcHBlZAorICAgICAgICAgICAgICAgIGlmKGxldmVsMTwyKSB7CisgICAgICAgICAgICAgICAgICAgIHN0YWNrMVtsZXZlbDErK10uc3RhcnQ9LTE7CisgICAgICAgICAgICAgICAgfQorCSAgICAgICAgICAgIC8vIGdldCByZWFkeSB0byByZWFkIGZyb20gZGVjb21wb3NpdGlvbiwgY29udGludWUgd2l0aCBsb29wCisJICAgICAgICAgICAgYzE9LTE7CisJICAgICAgICAgICAgY29udGludWU7CisJICAgICAgICB9CisJCisJICAgICAgICBpZiggbGV2ZWwyPDIgJiYgKChvcHRpb25zJkNPTVBBUkVfRVFVSVYpIT0wKSAmJgorCSAgICAgICAgICAgIDAhPShsZW5ndGg9ZGVjb21wb3NlKGNwMiwgZGVjb21wMikpCisJICAgICAgICApIHsKKwkgICAgICAgICAgICAvLyBjcDIgZGVjb21wb3NlcyBpbnRvIHBbbGVuZ3RoXQorCSAgICAgICAgICAgIGlmKFVURjE2LmlzU3Vycm9nYXRlKChjaGFyKWMyKSkgeworCSAgICAgICAgICAgICAgICBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoKGNoYXIpYzIpKSB7CisJICAgICAgICAgICAgICAgICAgICAvLyBhZHZhbmNlIGJleW9uZCBzb3VyY2Ugc3Vycm9nYXRlIHBhaXIgaWYgaXQgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBkZWNvbXBvc2VzCisJICAgICAgICAgICAgICAgICAgICArK3MyU3RhcnQ7CisJICAgICAgICAgICAgICAgIH0gZWxzZSAvKiBpc1RyYWlsKGMyKSAqLyB7CisJICAgICAgICAgICAgICAgICAgICAvLyB3ZSBnb3QgYSBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQgd2hlbiBoaXR0aW5nIGl0cyAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyYWlsIHN1cnJvZ2F0ZSwgdGhlcmVmb3JlIHRoZSBsZWFkIHN1cnJvZ2F0ZSBtdXN0IAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGF2ZSBiZWVuIHRoZSBzYW1lIGFzIGluIHRoZSBvdGhlciBzdHJpbmc7CisJICAgICAgICAgICAgICAgICAgICAvLyBjb21wYXJlIHRoaXMgZGVjb21wb3NpdGlvbiB3aXRoIHRoZSBsZWFkIHN1cnJvZ2F0ZSAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluIHRoZSBvdGhlciBzdHJpbmcKKwkgICAgICAgICAgICAgICAgICAgIC0tczFTdGFydDsKKwkgICAgICAgICAgICAgICAgICAgIGMxPWNTb3VyY2UxWyhzMVN0YXJ0LTEpXTsKKwkgICAgICAgICAgICAgICAgfQorCSAgICAgICAgICAgIH0KKwkKKwkgICAgICAgICAgICAvLyBwdXNoIGN1cnJlbnQgbGV2ZWwgcG9pbnRlcnMKKwkgICAgICAgICAgICBzdGFjazJbbGV2ZWwyXS5zdGFydD1zdGFydDI7CisJICAgICAgICAgICAgc3RhY2syW2xldmVsMl0ucz1zMlN0YXJ0OworCSAgICAgICAgICAgIHN0YWNrMltsZXZlbDJdLmxpbWl0PWxpbWl0MjsKKyAgICAgICAgICAgICAgICBzdGFjazJbbGV2ZWwyXS5zb3VyY2U9Y1NvdXJjZTI7CisJICAgICAgICAgICAgKytsZXZlbDI7CisJCisJICAgICAgICAgICAgLy8gc2V0IG5leHQgbGV2ZWwgcG9pbnRlcnMgdG8gZGVjb21wb3NpdGlvbgorCSAgICAgICAgICAgIGNTb3VyY2UyPWRlY29tcDI7CisgICAgICAgICAgICAgICAgc3RhcnQyPXMyU3RhcnQ9MDsKKwkgICAgICAgICAgICBsaW1pdDI9bGVuZ3RoOworCSAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIHNldCBlbXB0eSBpbnRlcm1lZGlhdGUgbGV2ZWwgaWYgc2tpcHBlZAorICAgICAgICAgICAgICAgIGlmKGxldmVsMjwyKSB7CisgICAgICAgICAgICAgICAgICAgIHN0YWNrMltsZXZlbDIrK10uc3RhcnQ9LTE7CisgICAgICAgICAgICAgICAgfQorCSAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIGdldCByZWFkeSB0byByZWFkIGZyb20gZGVjb21wb3NpdGlvbiwgY29udGludWUgd2l0aCBsb29wCisJICAgICAgICAgICAgYzI9LTE7CisJICAgICAgICAgICAgY29udGludWU7CisJICAgICAgICB9CisJCisJCisJICAgICAgICAvLyBubyBkZWNvbXBvc2l0aW9uL2Nhc2UgZm9sZGluZywgbWF4IGxldmVsIGZvciBib3RoIHNpZGVzOgorCSAgICAgICAgLy8gcmV0dXJuIGRpZmZlcmVuY2UgcmVzdWx0CisJCisJICAgICAgICAvLyBjb2RlIHBvaW50IG9yZGVyIGNvbXBhcmlzb24gbXVzdCBub3QganVzdCByZXR1cm4gY3AxLWNwMgorCSAgICAgICAgLy8gYmVjYXVzZSB3aGVuIHNpbmdsZSBzdXJyb2dhdGVzIGFyZSBwcmVzZW50IHRoZW4gdGhlIHN1cnJvZ2F0ZSAKKwkgICAgICAgIC8vIHBhaXJzIHRoYXQgZm9ybWVkIGNwMSBhbmQgY3AyIG1heSBiZSBmcm9tIGRpZmZlcmVudCBzdHJpbmcgCisgICAgICAgICAgICAvLyBpbmRleGVzCisJCisJICAgICAgICAvLyBleGFtcGxlOiB7IGQ4MDAgZDgwMCBkYzAxIH0gdnMuIHsgZDgwMCBkYzAwIH0sIGNvbXBhcmUgYXQgCisgICAgICAgICAgICAvLyBzZWNvbmQgY29kZSB1bml0cworCSAgICAgICAgLy8gYzE9ZDgwMCBjcDE9MTAwMDEgYzI9ZGMwMCBjcDI9MTAwMDAKKwkgICAgICAgIC8vIGNwMS1jcDI+MCBidXQgYzEtYzI8MCBhbmQgaW4gZmFjdCBpbiBVVEYtMzIgCisgICAgICAgICAgICAvLyBpdCBpcyB7IGQ4MDAgMTAwMDEgfSA8IHsgMTAwMDAgfQorCSAgICAgICAgLy8gdGhlcmVmb3JlIGZpeC11cCAKKwkKKwkgICAgICAgIGlmKCAgICAgYzE+PTB4ZDgwMCAmJiBjMj49MHhkODAwICYmIAorICAgICAgICAgICAgICAgICAgICAoKG9wdGlvbnMmTm9ybWFsaXplci5DT01QQVJFX0NPREVfUE9JTlRfT1JERVIpIT0wKQorICAgICAgICAgICAgICApIHsKKwkgICAgICAgICAgICAvKiBzdWJ0cmFjdCAweDI4MDAgZnJvbSBCTVAgY29kZSBwb2ludHMgdG8gbWFrZSB0aGVtIHNtYWxsZXIgCisgICAgICAgICAgICAgICAgICogdGhhbiBzdXBwbGVtZW50YXJ5IG9uZXMgKi8KKwkgICAgICAgICAgICBpZigKKwkgICAgICAgICAgICAgICAgKCAgICBjMTw9MHhkYmZmICYmIHMxU3RhcnQhPWxpbWl0MSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAmJiAKKyAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGNTb3VyY2UxW3MxU3RhcnRdKQorICAgICAgICAgICAgICAgICAgICApIAorICAgICAgICAgICAgICAgICAgICAgfHwKKwkgICAgICAgICAgICAgICAgKCAgICBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKChjaGFyKWMxKSAmJiBzdGFydDEhPShzMVN0YXJ0LTEpIAorICAgICAgICAgICAgICAgICAgICAgICAgICYmIAorICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjU291cmNlMVsoczFTdGFydC0yKV0pCisgICAgICAgICAgICAgICAgICAgICkKKwkgICAgICAgICAgICApIHsKKwkgICAgICAgICAgICAgICAgLyogcGFydCBvZiBhIHN1cnJvZ2F0ZSBwYWlyLCBsZWF2ZSA+PWQ4MDAgKi8KKwkgICAgICAgICAgICB9IGVsc2UgeworCSAgICAgICAgICAgICAgICAvKiBCTVAgY29kZSBwb2ludCAtIG1heSBiZSBzdXJyb2dhdGUgY29kZSBwb2ludCAtIAorICAgICAgICAgICAgICAgICAgICAgKiBtYWtlIDxkODAwICovCisJICAgICAgICAgICAgICAgIGMxLT0weDI4MDA7CisJICAgICAgICAgICAgfQorCQorCSAgICAgICAgICAgIGlmKAorCSAgICAgICAgICAgICAgICAoICAgIGMyPD0weGRiZmYgJiYgczJTdGFydCE9bGltaXQyIAorICAgICAgICAgICAgICAgICAgICAgICAgICYmIAorICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoY1NvdXJjZTJbczJTdGFydF0pCisgICAgICAgICAgICAgICAgICAgICkgCisgICAgICAgICAgICAgICAgICAgICB8fAorCSAgICAgICAgICAgICAgICAoICAgIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoKGNoYXIpYzIpICYmIHN0YXJ0MiE9KHMyU3RhcnQtMSkgCisgICAgICAgICAgICAgICAgICAgICAgICAgJiYgCisgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGNTb3VyY2UyWyhzMlN0YXJ0LTIpXSkKKyAgICAgICAgICAgICAgICAgICAgKQorCSAgICAgICAgICAgICkgeworCSAgICAgICAgICAgICAgICAvKiBwYXJ0IG9mIGEgc3Vycm9nYXRlIHBhaXIsIGxlYXZlID49ZDgwMCAqLworCSAgICAgICAgICAgIH0gZWxzZSB7CisJICAgICAgICAgICAgICAgIC8qIEJNUCBjb2RlIHBvaW50IC0gbWF5IGJlIHN1cnJvZ2F0ZSBjb2RlIHBvaW50IC0gCisgICAgICAgICAgICAgICAgICAgICAqIG1ha2UgPGQ4MDAgKi8KKwkgICAgICAgICAgICAgICAgYzItPTB4MjgwMDsKKwkgICAgICAgICAgICB9CisJICAgICAgICB9CisJCisJICAgICAgICByZXR1cm4gYzEtYzI7CisJICAgIH0KKwl9CisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IHN0ckNvbXBhcmUoY2hhcltdIHMxLCBpbnQgczFTdGFydCwgaW50IHMxTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIHMyLCBpbnQgczJTdGFydCwgaW50IHMyTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBjb2RlUG9pbnRPcmRlcikgeworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGludCBzdGFydDEsIHN0YXJ0MiwgbGltaXQxLCBsaW1pdDI7CisgCisgICAgICAgIGNoYXIgYzEsIGMyOworICAgIAorICAgICAgICAvKiBzZXR1cCBmb3IgZml4LXVwICovCisgICAgICAgIHN0YXJ0MT1zMVN0YXJ0OworICAgICAgICBzdGFydDI9czJTdGFydDsKKyAgICAgICAgCisgICAgICAgIGludCBsZW5ndGgxLCBsZW5ndGgyOworICAgICAgICAKKyAgICAgICAgbGVuZ3RoMSA9IHMxTGltaXQgLSBzMVN0YXJ0OworICAgICAgICBsZW5ndGgyID0gczJMaW1pdCAtIHMyU3RhcnQ7CisgICAgICAgICAgICAKKyAgICAgICAgaW50IGxlbmd0aFJlc3VsdDsKKworICAgICAgICBpZihsZW5ndGgxPGxlbmd0aDIpIHsKKyAgICAgICAgICAgIGxlbmd0aFJlc3VsdD0tMTsKKyAgICAgICAgICAgIGxpbWl0MT1zdGFydDErbGVuZ3RoMTsKKyAgICAgICAgfSBlbHNlIGlmKGxlbmd0aDE9PWxlbmd0aDIpIHsKKyAgICAgICAgICAgIGxlbmd0aFJlc3VsdD0wOworICAgICAgICAgICAgbGltaXQxPXN0YXJ0MStsZW5ndGgxOworICAgICAgICB9IGVsc2UgLyogbGVuZ3RoMT5sZW5ndGgyICovIHsKKyAgICAgICAgICAgIGxlbmd0aFJlc3VsdD0xOworICAgICAgICAgICAgbGltaXQxPXN0YXJ0MStsZW5ndGgyOworICAgICAgICB9CisKKyAgICAgICAgaWYoczE9PXMyKSB7CisgICAgICAgICAgICByZXR1cm4gbGVuZ3RoUmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICAvKiBjaGVjayBwc2V1ZG8tbGltaXQgKi8KKyAgICAgICAgICAgIGlmKHMxU3RhcnQ9PWxpbWl0MSkgeworICAgICAgICAgICAgICAgIHJldHVybiBsZW5ndGhSZXN1bHQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGMxPXMxW3MxU3RhcnRdOworICAgICAgICAgICAgYzI9czJbczJTdGFydF07CisgICAgICAgICAgICBpZihjMSE9YzIpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICsrczFTdGFydDsKKyAgICAgICAgICAgICsrczJTdGFydDsKKyAgICAgICAgfQorCisgICAgICAgIC8qIHNldHVwIGZvciBmaXgtdXAgKi8KKyAgICAgICAgbGltaXQxPXN0YXJ0MStsZW5ndGgxOworICAgICAgICBsaW1pdDI9c3RhcnQyK2xlbmd0aDI7CisKKyAgICAKKyAgICAgICAgLyogaWYgYm90aCB2YWx1ZXMgYXJlIGluIG9yIGFib3ZlIHRoZSBzdXJyb2dhdGUgcmFuZ2UsIGZpeCB0aGVtIHVwICovCisgICAgICAgIGlmKGMxPj0weGQ4MDAgJiYgYzI+PTB4ZDgwMCAmJiBjb2RlUG9pbnRPcmRlcikgeworICAgICAgICAgICAgLyogc3VidHJhY3QgMHgyODAwIGZyb20gQk1QIGNvZGUgcG9pbnRzIHRvIG1ha2UgdGhlbSBzbWFsbGVyIHRoYW4KKyAgICAgICAgICAgICAqICBzdXBwbGVtZW50YXJ5IG9uZXMgKi8KKyAgICAgICAgICAgIGlmKAorICAgICAgICAgICAgICAgICggYzE8PTB4ZGJmZiAmJiAoczFTdGFydCsxKSE9bGltaXQxICYmIAorICAgICAgICAgICAgICAgICAgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShzMVsoczFTdGFydCsxKV0pCisgICAgICAgICAgICAgICAgKSB8fAorICAgICAgICAgICAgICAgICggVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjMSkgJiYgc3RhcnQxIT1zMVN0YXJ0ICYmIAorICAgICAgICAgICAgICAgICAgVVRGMTYuaXNMZWFkU3Vycm9nYXRlKHMxWyhzMVN0YXJ0LTEpXSkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICAvKiBwYXJ0IG9mIGEgc3Vycm9nYXRlIHBhaXIsIGxlYXZlID49ZDgwMCAqLworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiBCTVAgY29kZSBwb2ludCAtIG1heSBiZSBzdXJyb2dhdGUgY29kZSBwb2ludCAtIG1ha2UgPGQ4MDAgKi8KKyAgICAgICAgICAgICAgICBjMS09MHgyODAwOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgaWYoCisgICAgICAgICAgICAgICAgKCBjMjw9MHhkYmZmICYmIChzMlN0YXJ0KzEpIT1saW1pdDIgJiYgCisgICAgICAgICAgICAgICAgICBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHMyWyhzMlN0YXJ0KzEpXSkKKyAgICAgICAgICAgICAgICApIHx8CisgICAgICAgICAgICAgICAgKCBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGMyKSAmJiBzdGFydDIhPXMyU3RhcnQgJiYgCisgICAgICAgICAgICAgICAgICBVVEYxNi5pc0xlYWRTdXJyb2dhdGUoczJbKHMyU3RhcnQtMSldKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgIC8qIHBhcnQgb2YgYSBzdXJyb2dhdGUgcGFpciwgbGVhdmUgPj1kODAwICovCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIEJNUCBjb2RlIHBvaW50IC0gbWF5IGJlIHN1cnJvZ2F0ZSBjb2RlIHBvaW50IC0gbWFrZSA8ZDgwMCAqLworICAgICAgICAgICAgICAgIGMyLT0weDI4MDA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLyogbm93IGMxIGFuZCBjMiBhcmUgaW4gVVRGLTMyLWNvbXBhdGlibGUgb3JkZXIgKi8KKyAgICAgICAgcmV0dXJuIChpbnQpYzEtKGludCljMjsKKyAgICB9CisKKwlwdWJsaWMgc3RhdGljIGludCBjb21wYXJlKGNoYXJbXSBzMSwgaW50IHMxU3RhcnQsaW50IHMxTGltaXQsCisJICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gczIsIGludCBzMlN0YXJ0LGludCBzMkxpbWl0LAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKwkgICAgY2hhcltdIGZjZDEgID0gbmV3IGNoYXJbMzAwXTsKKyAgICAgICAgY2hhcltdIGZjZDIgID0gbmV3IGNoYXJbMzAwXTsKKwkgICAgY2hhcltdIGZvbGQxID0gbmV3IGNoYXJbMzAwXTsKKyAgICAgICAgY2hhcltdIGZvbGQyID0gbmV3IGNoYXJbMzAwXTsKKyAgICAgICAgCisgICAgICAgIGludCByZXN1bHQ7CisJCisJICAgIGlmKCAgICBzMT09bnVsbCB8fCBzMVN0YXJ0PDAgfHwgczFMaW1pdDwwIHx8IAorICAgICAgICAgICAgICAgczI9PW51bGwgfHwgczJTdGFydDwwIHx8IHMyTGltaXQ8MAorICAgICAgICAgICkgeworCSAgICAgICAgCisJICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisJICAgIH0KKworCSAgICBvcHRpb25zfD1DT01QQVJFX0VRVUlWOworCQorCSAgICBpZigob3B0aW9ucyYgTm9ybWFsaXplci5JTlBVVF9JU19GQ0QpPT0wKSB7CisJICAgICAgICBjaGFyW10gZGVzdDsKKwkgICAgICAgIGludCBmY2RMZW4xLCBmY2RMZW4yOworICAgICAgICAgICAgaW50IGZvbGRMZW4xLCBmb2xkTGVuMjsKKwkgICAgICAgIGJvb2xlYW4gaXNGQ0QxLCBpc0ZDRDI7CisJCisJICAgICAgICAvLyBjaGVjayBpZiBzMSBhbmQvb3IgczIgZnVsZmlsbCB0aGUgRkNEIGNvbmRpdGlvbnMKKwkgICAgICAgIGlzRkNEMT1jaGVja0ZDRChzMSwgczFTdGFydCwgczFMaW1pdCk7CisJICAgICAgICBpc0ZDRDI9Y2hlY2tGQ0QoczIsIHMyU3RhcnQsIHMyTGltaXQpOworCSAgICAgICAgCisJICAgICAgICBpZigob3B0aW9ucyZOb3JtYWxpemVyLkNPTVBBUkVfSUdOT1JFX0NBU0UpIT0wICYmIAorICAgICAgICAgICAgICAgICEoaXNGQ0QxICYmIGlzRkNEMikpIHsKKwkgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBjYXNlLWZvbGQgZmlyc3QgdG8ga2VlcCB0aGUgb3JkZXIgb2Ygb3BlcmF0aW9ucyBhcyBpbiBVQVggMjEgMi41CisJICAgICAgICAgICAgZm9sZExlbjE9Zm9sZENhc2UoczEsczFTdGFydCxzMUxpbWl0LGZvbGQxLDAsZm9sZDEubGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgob3B0aW9ucyZOb3JtYWxpemVyLkZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSk9PTApKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKwkgICAgICAgICAgICBpZihmb2xkTGVuMSA+IGZvbGQxLmxlbmd0aCl7CisJICAgICAgICAgICAgICAgIGRlc3QgPSBuZXcgY2hhcltmb2xkTGVuMV07CisJICAgICAgICAgICAgICAgIGZvbGRMZW4xPWZvbGRDYXNlKHMxLHMxU3RhcnQsczFMaW1pdCxkZXN0LDAsZm9sZExlbjEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgob3B0aW9ucyZOb3JtYWxpemVyLkZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSk9PTApKTsKKyAgICAgICAgICAgICAgICAgICAgCQorCSAgICAgICAgICAgICAgICBzMT1kZXN0OworCSAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBzMT1mb2xkMTsKKyAgICAgICAgICAgICAgICB9CisJICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgczFTdGFydCA9IDA7CisgICAgICAgICAgICAgICAgczFMaW1pdCA9IGZvbGRMZW4xOworCQorCSAgICAgICAgICAgIGZvbGRMZW4yPWZvbGRDYXNlKHMyLHMyU3RhcnQsczJMaW1pdCxmb2xkMiwwLGZvbGQyLmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKG9wdGlvbnMmTm9ybWFsaXplci5GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kpPT0wKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYoZm9sZExlbjIgPiBmb2xkMi5sZW5ndGgpeworICAgICAgICAgICAgICAgICAgICBkZXN0ID0gbmV3IGNoYXJbZm9sZExlbjJdOworICAgICAgICAgICAgICAgICAgICBmb2xkTGVuMj1mb2xkQ2FzZShzMixzMlN0YXJ0LHMyTGltaXQsZGVzdCwwLGZvbGRMZW4yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKG9wdGlvbnMmTm9ybWFsaXplci5GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kpPT0wKSk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBzMj1kZXN0OworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBzMj1mb2xkMjsKKyAgICAgICAgICAgICAgICB9CisJICAgICAgICAgICAgCisJICAgICAgICAgICAgczJTdGFydCA9IDA7CisgICAgICAgICAgICAgICAgczJMaW1pdCA9IGZvbGRMZW4yOworCQorCSAgICAgICAgICAgIC8vIHR1cm4gb2ZmIFVfQ09NUEFSRV9JR05PUkVfQ0FTRSBhbmQgcmUtY2hlY2sgRkNECisJICAgICAgICAgICAgb3B0aW9ucyY9fiBOb3JtYWxpemVyLkNPTVBBUkVfSUdOT1JFX0NBU0U7CisJICAgICAgICAgICAgaXNGQ0QxPWNoZWNrRkNEKHMxLCBzMVN0YXJ0LCBzMUxpbWl0KTsKKwkgICAgICAgICAgICBpc0ZDRDI9Y2hlY2tGQ0QoczIsIHMyU3RhcnQsIHMyTGltaXQpOworCSAgICAgICAgfQorCisKKwkgICAgICAgIGlmKCFpc0ZDRDEgJiYgIWlzRkNEMikgeworCSAgICAgICAgICAgIC8vIGlmIGJvdGggc3RyaW5ncyBuZWVkIG5vcm1hbGl6YXRpb24gdGhlbiBtYWtlIHRoZW0gTkZEIHJpZ2h0IAorICAgICAgICAgICAgICAgIC8vIGF3YXkgYW5kIHR1cm4gb2ZmIG5vcm1hbGl6YXRpb24gaW4gdGhlIGNvbXBhcmlzb24gZnVuY3Rpb24KKwkgICAgICAgICAgICBpbnRbXSB0cmFpbENDID0gbmV3IGludFsxXTs7CisJCisJICAgICAgICAgICAgLy8gZnVsbHkgZGVjb21wb3NlIChORkQpIHMxIGFuZCBzMgorCQorCSAgICAgICAgICAgIGZjZExlbjE9ZGVjb21wb3NlKCBzMSxzMVN0YXJ0LHMxTGltaXQsZmNkMSwwLGZjZDEubGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSwgdHJhaWxDQyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorCSAgICAgICAgICAgIGlmKGZjZExlbjE8PWZjZDEubGVuZ3RoKSB7CisJICAgICAgICAgICAgICAgIHMxPWZjZDE7CisJICAgICAgICAgICAgfSBlbHNlIHsKKwkgICAgICAgICAgICAgICAgZGVzdD1uZXcgY2hhcltmY2RMZW4xXTsKKwkgICAgICAgICAgICAgICAgZmNkTGVuMT0gZGVjb21wb3NlKCBzMSxzMVN0YXJ0LHMxTGltaXQsZGVzdCwwLGRlc3QubGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLCB0cmFpbENDKTsKKwkKKwkgICAgICAgICAgICAgICAgczE9ZGVzdDsKKwkgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisJICAgICAgICAgICAgczFMaW1pdD1mY2RMZW4xOworCSAgICAgICAgICAgIHMyU3RhcnQ9MDsKKwkgICAgICAgICAgICBmY2RMZW4yPWRlY29tcG9zZSggczIsczJTdGFydCxzMkxpbWl0LCBmY2QyLDAsZmNkMi5sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLCB0cmFpbENDKTsKKwkgICAgICAgICAgICBpZihmY2RMZW4yPD1mY2QyLmxlbmd0aCkgeworCSAgICAgICAgICAgICAgICBzMj1mY2QyOworCSAgICAgICAgICAgIH0gZWxzZSB7CisJICAgICAgICAgICAgICAgIGRlc3Q9bmV3IGNoYXJbZmNkTGVuMl07CisJICAgICAgICAgICAgICAgIAorCSAgICAgICAgICAgICAgICBmY2RMZW4yPWRlY29tcG9zZSggczIsczJTdGFydCxzMkxpbWl0LGRlc3QsMCxkZXN0Lmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsIHRyYWlsQ0MpOworCQorCSAgICAgICAgICAgICAgICBzMj1kZXN0OworCSAgICAgICAgICAgIH0KKwkgICAgICAgICAgICBzMkxpbWl0PWZjZExlbjI7CisJICAgICAgICAgICAgczJTdGFydD0wOworCSAgICAgICAgICAgIC8vIGNvbXBhcmUgTkZEIHN0cmluZ3MKKwkgICAgICAgICAgICBvcHRpb25zJj1+Q09NUEFSRV9FUVVJVjsKKwkgICAgICAgIH0gZWxzZSB7CisJICAgICAgICAgICAgLy8gaWYgYXQgbGVhc3Qgb25lIHN0cmluZyBpcyBhbHJlYWR5IGluIEZDRCB0aGVuIG9ubHkgbWFrZUZDRCAKKyAgICAgICAgICAgICAgICAvLyB0aGUgb3RoZXIgYW5kIGNvbXBhcmUgZm9yIGVxdWl2YWxlbmNlCisJICAgICAgICAgICAgaWYoIWlzRkNEMSkgeworCSAgICAgICAgICAgICAgICBmY2RMZW4xPW1ha2VGQ0QoczEsczFTdGFydCxzMUxpbWl0LGZjZDEsMCxmY2QxLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgIAorCSAgICAgICAgICAgICAgICBpZihmY2RMZW4xPmZjZDEubGVuZ3RoKXsKKwkgICAgICAgICAgICAgICAgICAgIGRlc3Q9bmV3IGNoYXJbZmNkTGVuMV07CisJICAgICAgICAgICAgICAgICAgICBmY2RMZW4xPW1ha2VGQ0QoczEsczFTdGFydCxzMUxpbWl0LGRlc3QsMCxkZXN0Lmxlbmd0aCk7CisJICAgICAgICAgICAgICAgICAgICBzMT1kZXN0OworCSAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgIHMxPWZjZDE7CisgICAgICAgICAgICAgICAgICAgIH0KKwkgICAgICAgICAgICAgICAgczFMaW1pdD1mY2RMZW4xOworICAgICAgICAgICAgICAgICAgICBzMVN0YXJ0PTA7CisJICAgICAgICAgICAgfQorCQorCSAgICAgICAgICAgIGlmKCFpc0ZDRDIpIHsKKwkgICAgICAgICAgICAgICAgZmNkTGVuMj1tYWtlRkNEKHMyLHMyU3RhcnQsczJMaW1pdCxmY2QyLDAsZmNkMi5sZW5ndGgpOworICAgICAgICAgICAgICAgICAgICAKKwkgICAgICAgICAgICAgICAgaWYoZmNkTGVuMj5mY2QyLmxlbmd0aCl7CisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0PW5ldyBjaGFyW2ZjZExlbjJdOworICAgICAgICAgICAgICAgICAgICAgICAgZmNkTGVuMj1tYWtlRkNEKHMyLHMyU3RhcnQsczJMaW1pdCxkZXN0LDAsZGVzdC5sZW5ndGgpOworICAgICAgICAgICAgICAgICAgICAgICAgczI9ZGVzdDsKKyAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICBzMj1mY2QyOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHMyTGltaXQ9ZmNkTGVuMjsKKyAgICAgICAgICAgICAgICAgICAgczJTdGFydD0wOworCSAgICAgICAgICAgIH0KKwkgICAgICAgIH0KKwkgICAgfQorCQorICAgICAgICBpZigob3B0aW9ucyYoQ09NUEFSRV9FUVVJVnxOb3JtYWxpemVyLkNPTVBBUkVfSUdOT1JFX0NBU0UpKT09MCkgeworCSAgICAgICAgLy8gY29tcGFyZSBORkQgc3RyaW5ncyBjYXNlLXNlbnNpdGl2ZToganVzdCB1c2Ugbm9ybWFsIGNvbXBhcmlzb24KKwkgICAgICAgIHJlc3VsdD1zdHJDb21wYXJlKHMxLCBzMVN0YXJ0LCBzMUxpbWl0LCBzMixzMlN0YXJ0LHMyTGltaXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAhPShvcHRpb25zICYgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5DT01QQVJFX0NPREVfUE9JTlRfT1JERVIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisJICAgIH0gZWxzZSB7CisJICAgICAgICByZXN1bHQ9Y21wRXF1aXZGb2xkKHMxLCBzMVN0YXJ0LCBzMUxpbWl0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgczIsIHMyU3RhcnQsIHMyTGltaXQsIG9wdGlvbnMpOworCSAgICB9CisJICAgIHJldHVybiByZXN1bHQ7CisJfQorCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9SZXBsYWNlYWJsZVVDaGFyYWN0ZXJJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvUmVwbGFjZWFibGVVQ2hhcmFjdGVySXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZDBjNGMxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvUmVwbGFjZWFibGVVQ2hhcmFjdGVySXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDIxMyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvUmVwbGFjZWFibGVVQ2hhcmFjdGVySXRlcmF0b3IuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wNy8zMSAwMzowNDoyOCAkIAorICogJFJldmlzaW9uOiAxLjMgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuUmVwbGFjZWFibGU7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SZXBsYWNlYWJsZVN0cmluZzsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OyAgICAKKworLyoqCisgKiBETEYgZG9jcyBtdXN0IGRlZmluZSBiZWhhdmlvciB3aGVuIFJlcGxhY2VhYmxlIGlzIG11dGF0ZWQgdW5kZXJuZWF0aAorICogdGhlIGl0ZXJhdG9yLgorICoKKyAqIFRoaXMgYW5kIElDVUNoYXJhY3Rlckl0ZXJhdG9yIHNoYXJlIHNvbWUgY29kZSwgbWF5YmUgdGhleSBzaG91bGQgc2hhcmUKKyAqIGFuIGltcGxlbWVudGF0aW9uLCBvciB0aGUgY29tbW9uIHN0YXRlIGFuZCBpbXBsZW1lbnRhdGlvbiBzaG91bGQgYmUKKyAqIG1vdmVkIHVwIGludG8gVUNoYXJhY3Rlckl0ZXJhdG9yLgorICoKKyAqIFdoYXQgYXJlIGZpcnN0LCBsYXN0LCBhbmQgZ2V0QmVnaW5JbmRleCBkb2luZyBoZXJlPyE/IT8hCisgKi8KK3B1YmxpYyBjbGFzcyBSZXBsYWNlYWJsZVVDaGFyYWN0ZXJJdGVyYXRvciBleHRlbmRzIFVDaGFyYWN0ZXJJdGVyYXRvciB7CisKKyAgICAvLyBwdWJsaWMgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogUHVibGljIGNvbnN0cnVjdG9yCisgICAgICogQHBhcmFtIHJlcGxhY2FibGUgdGV4dCB3aGljaCB0aGUgaXRlcmF0b3Igd2lsbCBiZSBiYXNlZCBvbgorICAgICAqLworICAgIHB1YmxpYyBSZXBsYWNlYWJsZVVDaGFyYWN0ZXJJdGVyYXRvcihSZXBsYWNlYWJsZSByZXBsYWNlYWJsZSl7CisgICAgICAgIGlmKHJlcGxhY2VhYmxlPT1udWxsKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLnJlcGxhY2VhYmxlICA9IHJlcGxhY2VhYmxlOworICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IDA7CisgICAgICAgIHRoaXMubGVuZ3RoICAgICAgID0gcmVwbGFjZWFibGUubGVuZ3RoKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFB1YmxpYyBjb25zdHJ1Y3RvcgorICAgICAqIEBwYXJhbSBzdHIgdGV4dCB3aGljaCB0aGUgaXRlcmF0b3Igd2lsbCBiZSBiYXNlZCBvbgorICAgICAqLworICAgIHB1YmxpYyBSZXBsYWNlYWJsZVVDaGFyYWN0ZXJJdGVyYXRvcihTdHJpbmcgc3RyKXsKKyAgICAgICAgaWYoc3RyPT1udWxsKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLnJlcGxhY2VhYmxlICA9IG5ldyBSZXBsYWNlYWJsZVN0cmluZyhzdHIpOworICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IDA7CisgICAgICAgIHRoaXMubGVuZ3RoICAgICAgID0gcmVwbGFjZWFibGUubGVuZ3RoKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFB1YmxpYyBjb25zdHJ1Y3RvcgorICAgICAqIEBwYXJhbSBidWYgYnVmZmVyIG9mIHRleHQgb24gd2hpY2ggdGhlIGl0ZXJhdG9yIHdpbGwgYmUgYmFzZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgUmVwbGFjZWFibGVVQ2hhcmFjdGVySXRlcmF0b3IoU3RyaW5nQnVmZmVyIGJ1Zil7CisgICAgICAgIGlmKGJ1Zj09bnVsbCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5yZXBsYWNlYWJsZSAgPSBuZXcgUmVwbGFjZWFibGVTdHJpbmcoYnVmKTsKKyAgICAgICAgdGhpcy5jdXJyZW50SW5kZXggPSAwOworICAgICAgICB0aGlzLmxlbmd0aCAgICAgICA9IHJlcGxhY2VhYmxlLmxlbmd0aCgpOworICAgIH0KKyAgICAKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIGNvcHkgb2YgdGhpcyBpdGVyYXRvciwgZG9lcyBub3QgY2xvbmUgdGhlIHVuZGVybHlpbmcgCisgICAgICogPGNvZGU+UmVwbGFjZWFibGU8L2NvZGU+b2JqZWN0CisgICAgICogQHJldHVybiBjb3B5IG9mIHRoaXMgaXRlcmF0b3IKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCl7CisJCXRyeSB7CisJCSAgcmV0dXJuIHN1cGVyLmNsb25lKCk7CisJCX0gY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKwkJICAgIHJldHVybiBudWxsOyAvLyBuZXZlciBpbnZva2VkCisJCX0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY3VycmVudCBVVEYxNiBjaGFyYWN0ZXIuCisgICAgICogQHJldHVybiBjdXJyZW50IFVURjE2IGNoYXJhY3RlcgorICAgICAqLworICAgIHB1YmxpYyBpbnQgY3VycmVudCgpeworICAgICAgICBpZiAoY3VycmVudEluZGV4IDwgbGVuZ3RoKSB7CisgICAgICAgICAgICByZXR1cm4gcmVwbGFjZWFibGUuY2hhckF0KGN1cnJlbnRJbmRleCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIERPTkU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgY29kZXBvaW50CisgICAgICogQHJldHVybiBjdXJyZW50IGNvZGVwb2ludAorICAgICAqLworICAgIHB1YmxpYyBpbnQgY3VycmVudENvZGVQb2ludCgpeworICAgICAgICAvLyBjYW5ub3QgdXNlIGNoYXJBdCBkdWUgdG8gaXQgZGlmZmVyZW50IAorICAgICAgICAvLyBiZWhhdmlvdXIgd2hlbiBpbmRleCBpcyBwb2ludGluZyBhdCBhCisgICAgICAgIC8vIHRyYWlsIHN1cnJvZ2F0ZSwgY2hlY2sgZm9yIHN1cnJvZ2F0ZXMKKyAgICAgICAgIAorICAgICAgICBpbnQgY2ggPSBjdXJyZW50KCk7CisgICAgICAgIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZSgoY2hhciljaCkpeworICAgICAgICAgICAgLy8gYWR2YW5jZSB0aGUgaW5kZXggdG8gZ2V0IHRoZSBuZXh0IGNvZGUgcG9pbnQKKyAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgICAgIC8vIGR1ZSB0byBwb3N0IGluY3JlbWVudCBzZW1hbnRpY3MgY3VycmVudCgpIGFmdGVyIG5leHQoKSAKKyAgICAgICAgICAgIC8vIGFjdHVhbGx5IHJldHVybnMgdGhlIG5leHQgY2hhciB3aGljaCBpcyB3aGF0IHdlIHdhbnQKKyAgICAgICAgICAgIGludCBjaDIgPSBjdXJyZW50KCk7CisgICAgICAgICAgICAvLyBjdXJyZW50IHNob3VsZCBuZXZlciBjaGFuZ2UgdGhlIGN1cnJlbnQgaW5kZXggc28gYmFjayBvZmYKKyAgICAgICAgICAgIHByZXZpb3VzKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoKGNoYXIpY2gyKSl7CisgICAgICAgICAgICAgICAgLy8gd2UgZm91bmQgYSBzdXJyb2dhdGUgcGFpcgorICAgICAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKWNoLChjaGFyKWNoMgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNoOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIHRleHQKKyAgICAgKiBAcmV0dXJuIGxlbmd0aCBvZiB0aGUgdGV4dAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TGVuZ3RoKCl7CisgICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGN1cnJlbnQgY3VycmVudEluZGV4IGluIHRleHQuCisgICAgICogQHJldHVybiBjdXJyZW50IGN1cnJlbnRJbmRleCBpbiB0ZXh0LgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0SW5kZXgoKXsKKyAgICAgICAgcmV0dXJuIGN1cnJlbnRJbmRleDsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgbmV4dCBVVEYxNiBjaGFyYWN0ZXIgYW5kIGluY3JlbWVudHMgdGhlIGl0ZXJhdG9yJ3MgY3VycmVudEluZGV4IGJ5IDEuIAorICAgICAqIElmIHRoZSByZXN1bHRpbmcgY3VycmVudEluZGV4IGlzIGdyZWF0ZXIgb3IgZXF1YWwgdG8gdGhlIHRleHQgbGVuZ3RoLCB0aGUgCisgICAgICogY3VycmVudEluZGV4IGlzIHJlc2V0IHRvIHRoZSB0ZXh0IGxlbmd0aCBhbmQgYSB2YWx1ZSBvZiBET05FQ09ERVBPSU5UIGlzIAorICAgICAqIHJldHVybmVkLiAKKyAgICAgKiBAcmV0dXJuIG5leHQgVVRGMTYgY2hhcmFjdGVyIGluIHRleHQgb3IgRE9ORSBpZiB0aGUgbmV3IGN1cnJlbnRJbmRleCBpcyBvZmYgdGhlIAorICAgICAqICAgICAgICAgZW5kIG9mIHRoZSB0ZXh0IHJhbmdlLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgbmV4dCgpeworICAgICAgICBpZiAoY3VycmVudEluZGV4IDwgbGVuZ3RoKSB7CisgICAgICAgICAgICByZXR1cm4gcmVwbGFjZWFibGUuY2hhckF0KGN1cnJlbnRJbmRleCsrKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gRE9ORTsKKyAgICB9CisgICAgCisgICAgICAgICAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBwcmV2aW91cyBVVEYxNiBjaGFyYWN0ZXIgYW5kIGRlY3JlbWVudHMgdGhlIGl0ZXJhdG9yJ3MgY3VycmVudEluZGV4IGJ5IAorICAgICAqIDEuIAorICAgICAqIElmIHRoZSByZXN1bHRpbmcgY3VycmVudEluZGV4IGlzIGxlc3MgdGhhbiAwLCB0aGUgY3VycmVudEluZGV4IGlzIHJlc2V0IHRvIDAgYW5kIGEgCisgICAgICogdmFsdWUgb2YgRE9ORUNPREVQT0lOVCBpcyByZXR1cm5lZC4gCisgICAgICogQHJldHVybiBuZXh0IFVURjE2IGNoYXJhY3RlciBpbiB0ZXh0IG9yIERPTkUgaWYgdGhlIG5ldyBjdXJyZW50SW5kZXggaXMgb2ZmIHRoZSAKKyAgICAgKiAgICAgICAgIHN0YXJ0IG9mIHRoZSB0ZXh0IHJhbmdlLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgcHJldmlvdXMoKXsKKyAgICAgICAgaWYgKGN1cnJlbnRJbmRleCA+IDApIHsKKyAgICAgICAgICAgIHJldHVybiByZXBsYWNlYWJsZS5jaGFyQXQoLS1jdXJyZW50SW5kZXgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBET05FOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlNldHMgdGhlIGN1cnJlbnRJbmRleCB0byB0aGUgc3BlY2lmaWVkIGN1cnJlbnRJbmRleCBpbiB0aGUgdGV4dCBhbmQgcmV0dXJucyB0aGF0IAorICAgICAqIHNpbmdsZSBVVEYxNiBjaGFyYWN0ZXIgYXQgY3VycmVudEluZGV4LiAKKyAgICAgKiBUaGlzIGFzc3VtZXMgdGhlIHRleHQgaXMgc3RvcmVkIGFzIDE2LWJpdCBjb2RlIHVuaXRzLjwvcD4KKyAgICAgKiBAcGFyYW0gY3VycmVudEluZGV4IHRoZSBjdXJyZW50SW5kZXggd2l0aGluIHRoZSB0ZXh0LiAKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpcyB0aHJvd24gaWYgYW4gaW52YWxpZCBjdXJyZW50SW5kZXggaXMgCisgICAgICogICAgICAgICAgICBzdXBwbGllZC4gaS5lLiBjdXJyZW50SW5kZXggaXMgb3V0IG9mIGJvdW5kcy4KKyAgICAgKiBAcmV0dXJuIHRoZSBjaGFyYWN0ZXIgYXQgdGhlIHNwZWNpZmllZCBjdXJyZW50SW5kZXggb3IgRE9ORSBpZiB0aGUgc3BlY2lmaWVkIAorICAgICAqICAgICAgICAgY3VycmVudEluZGV4IGlzIGVxdWFsIHRvIHRoZSBlbmQgb2YgdGhlIHRleHQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0SW5kZXgoaW50IGN1cnJlbnRJbmRleCkgdGhyb3dzIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb257CisgICAgICAgIGlmIChjdXJyZW50SW5kZXggPCAwIHx8IGN1cnJlbnRJbmRleCA+IGxlbmd0aCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IGN1cnJlbnRJbmRleDsKKyAgICB9CisgICAgCisgICAgcHVibGljIGludCBnZXRUZXh0KGNoYXJbXSBmaWxsSW4sIGludCBvZmZzZXQpeworICAgICAgICBpZihvZmZzZXQgPCAwIHx8IG9mZnNldCArIGxlbmd0aCA+IGZpbGxJbi5sZW5ndGgpeworICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oSW50ZWdlci50b1N0cmluZyhsZW5ndGgpKTsKKyAgICAgICAgfQorICAgICAgICByZXBsYWNlYWJsZS5nZXRDaGFycygwLGxlbmd0aCxmaWxsSW4sb2Zmc2V0KTsKKyAgICAgICAgcmV0dXJuIGxlbmd0aDsKKyAgICB9ICAgICAgIAorICAgICAgICAKKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogUmVwbGFjYWJsZSBvYmplY3QKKyAgICAgKi8KKyAgICBwcml2YXRlIFJlcGxhY2VhYmxlIHJlcGxhY2VhYmxlOworICAgIC8qKgorICAgICAqIEN1cnJlbnQgY3VycmVudEluZGV4CisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgY3VycmVudEluZGV4OworICAgIC8qKgorICAgICAqIFJlcGxhY2VhYmxlIHRleHQgbGVuZ3RoCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbGVuZ3RoOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVHJpZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVHJpZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjYyMWU1NzUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9UcmllLmphdmEKQEAgLTAsMCArMSw0MTggQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvVHJpZS5qYXZhLHYgJAorKiAkRGF0ZTogMjAwMi8wNi8yMiAwMDowMjo0MSAkCisqICRSZXZpc2lvbjogMS42ICQKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkRhdGFJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworCisvKioKKyAqIDxwPkEgdHJpZSBpcyBhIGtpbmQgb2YgY29tcHJlc3NlZCwgc2VyaWFsaXphYmxlIHRhYmxlIG9mIHZhbHVlcyAKKyAqIGFzc29jaWF0ZWQgd2l0aCBVbmljb2RlIGNvZGUgcG9pbnRzICgwLi4weDEwZmZmZikuPC9wPgorICogPHA+VGhpcyBjbGFzcyBkZWZpbmVzIHRoZSBiYXNpYyBzdHJ1Y3R1cmUgb2YgYSB0cmllIGFuZCBwcm92aWRlcyBtZXRob2RzIAorICogdG8gPGI+cmV0cmlldmUgdGhlIG9mZnNldHMgdG8gdGhlIGFjdHVhbCBkYXRhPC9iPi48L3A+CisgKiA8cD5EYXRhIHdpbGwgYmUgdGhlIGZvcm0gb2YgYW4gYXJyYXkgb2YgYmFzaWMgdHlwZXMsIGNoYXIgb3IgaW50LjwvcD4KKyAqIDxwPlRoZSBhY3R1YWwgZGF0YSBmb3JtYXQgd2lsbCBoYXZlIHRvIGJlIHNwZWNpZmllZCBieSB0aGUgdXNlciBpbiB0aGUKKyAqIGlubmVyIHN0YXRpYyBpbnRlcmZhY2UgY29tLmlibS5pY3UuaW1wbC5UcmllLkRhdGFNYW5pcHVsYXRlLjwvcD4KKyAqIDxwPlRoaXMgdHJpZSBpbXBsZW1lbnRhdGlvbiBpcyBvcHRpbWl6ZWQgZm9yIGdldHRpbmcgb2Zmc2V0IHdoaWxlIHdhbGtpbmcKKyAqIGZvcndhcmQgdGhyb3VnaCBhIFVURi0xNiBzdHJpbmcuCisgKiBUaGVyZWZvcmUsIHRoZSBzaW1wbGVzdCBhbmQgZmFzdGVzdCBhY2Nlc3MgbWFjcm9zIGFyZSB0aGUKKyAqIGZyb21MZWFkKCkgYW5kIGZyb21PZmZzZXRUcmFpbCgpIG1ldGhvZHMuCisgKiBUaGUgZnJvbUJNUCgpIG1ldGhvZCBhcmUgYSBsaXR0bGUgbW9yZSBjb21wbGljYXRlZDsgdGhleSBnZXQgb2Zmc2V0cyBldmVuCisgKiBmb3IgbGVhZCBzdXJyb2dhdGUgY29kZXBvaW50cywgd2hpbGUgdGhlIGZyb21MZWFkKCkgbWV0aG9kIGdldCBzcGVjaWFsCisgKiAiZm9sZGVkIiBvZmZzZXRzIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlIHVuaXRzIGlmIHRoZXJlIGlzIHJlbGV2YW50IGRhdGEKKyAqIGFzc29jaWF0ZWQgd2l0aCB0aGVtLgorICogRnJvbSBzdWNoIGEgZm9sZGVkIG9mZnNldHMsIGFuIG9mZnNldCBuZWVkcyB0byBiZSBleHRyYWN0ZWQgdG8gc3VwcGx5CisgKiB0byB0aGUgZnJvbU9mZnNldFRyYWlsKCkgbWV0aG9kcy4KKyAqIFRvIGhhbmRsZSBzdWNoIHN1cHBsZW1lbnRhcnkgY29kZXBvaW50cywgc29tZSBvZmZzZXQgaW5mb3JtYXRpb24gYXJlIGtlcHQKKyAqIGluIHRoZSBkYXRhLjwvcD4KKyAqIDxwPk1ldGhvZHMgaW4gY29tLmlibS5pY3UuaW1wbC5UcmllLkRhdGFNYW5pcHVsYXRlIGFyZSBjYWxsZWQgdG8gcmV0cmlldmUgCisgKiB0aGF0IG9mZnNldCBmcm9tIHRoZSBmb2xkZWQgdmFsdWUgZm9yIHRoZSBsZWFkIHN1cnJvZ2F0ZSB1bml0LjwvcD4KKyAqIDxwPkZvciBleGFtcGxlcyBvZiB1c2UsIHNlZSBjb20uaWJtLmljdS5pbXBsLkNoYXJUcmllIG9yIAorICogY29tLmlibS5pY3UuaW1wbC5JbnRUcmllLjwvcD4KKyAqIEBhdXRob3Igc3lud2VlCisgKiBAc2VlIGNvbS5pYm0uaWN1LmltcGwuQ2hhclRyaWUKKyAqIEBzZWUgY29tLmlibS5pY3UuaW1wbC5JbnRUcmllCisgKiBAc2luY2UgcmVsZWFzZSAyLjEsIEphbiAwMSAyMDAyCisgKi8KK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBUcmllCit7CisgICAgLy8gcHVibGljIGNsYXNzIGRlY2xhcmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAqIENoYXJhY3RlciBkYXRhIGluIGNvbS5pYm0uaW1wbC5UcmllIGhhdmUgZGlmZmVyZW50IHVzZXItc3BlY2lmaWVkIGZvcm1hdAorICAgICogZm9yIGRpZmZlcmVudCBwdXJwb3Nlcy4KKyAgICAqIFRoaXMgaW50ZXJmYWNlIHNwZWNpZmllcyBtZXRob2RzIHRvIGJlIGltcGxlbWVudGVkIGluIG9yZGVyIGZvcgorICAgICogY29tLmlibS5pbXBsLlRyaWUsIHRvIHN1cnJvZ2F0ZSBvZmZzZXQgaW5mb3JtYXRpb24gZW5jYXBzdWxhdGVkIHdpdGhpbiAKKyAgICAqIHRoZSBkYXRhLgorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnRlcmZhY2UgRGF0YU1hbmlwdWxhdGUKKyAgICB7CisgICAgICAgIC8qKgorICAgICAgICAqIENhbGxlZCBieSBjb20uaWJtLmljdS5pbXBsLlRyaWUgdG8gZXh0cmFjdCBmcm9tIGEgbGVhZCBzdXJyb2dhdGUncyAKKyAgICAgICAgKiBkYXRhCisgICAgICAgICogdGhlIGluZGV4IGFycmF5IG9mZnNldCBvZiB0aGUgaW5kZXhlcyBmb3IgdGhhdCBsZWFkIHN1cnJvZ2F0ZS4KKyAgICAgICAgKiBAcGFyYW0gdmFsdWUgZGF0YSB2YWx1ZSBmb3IgYSBzdXJyb2dhdGUgZnJvbSB0aGUgdHJpZSwgaW5jbHVkaW5nIHRoZQorICAgICAgICAqICAgICAgICBmb2xkaW5nIG9mZnNldAorICAgICAgICAqIEByZXR1cm4gZGF0YSBvZmZzZXQgb3IgMCBpZiB0aGVyZSBpcyBubyBkYXRhIGZvciB0aGUgbGVhZCBzdXJyb2dhdGUKKyAgICAgICAgKiBAZHJhZnQgMi4xCisgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0Rm9sZGluZ09mZnNldChpbnQgdmFsdWUpOyAKKyAgICB9CisgICAgCisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIGlmIHRoaXMgdHJpZSBoYXMgYSBsaW5lYXIgbGF0aW4gMSBhcnJheQorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIHRyaWUgaGFzIGEgbGluZWFyIGxhdGluIDEgYXJyYXksIGZhbHNlIG90aGVyd2lzZQorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBib29sZWFuIGlzTGF0aW4xTGluZWFyKCkKKyAgICB7CisgICAgCXJldHVybiBtX2lzTGF0aW4xTGluZWFyXzsKKyAgICB9CisKKyAgICAvLyBwcm90ZWN0ZWQgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgKiBUcmllIGNvbnN0cnVjdG9yIGZvciBDaGFyVHJpZSB1c2UuCisgICAgKiBAcGFyYW0gaW5wdXRTdHJlYW0gSUNVIGRhdGEgZmlsZSBpbnB1dCBzdHJlYW0gd2hpY2ggY29udGFpbnMgdGhlCisgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIHRyaWUKKyAgICAqIEBwYXJhbSBkYXRhbWFuaXB1bGF0ZSBvYmplY3QgY29udGFpbmluZyB0aGUgaW5mb3JtYXRpb24gdG8gcGFyc2UgdGhlIAorICAgICogICAgICAgICAgICAgICAgICAgICAgIHRyaWUgZGF0YQorICAgICogQGV4Y2VwdGlvbiBJT0V4Y2VwdGlvbiB0aHJvd24gd2hlbiBpbnB1dCBzdHJlYW0gZG9lcyBub3QgaGF2ZSB0aGUKKyAgICAqICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQgaGVhZGVyLgorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIFRyaWUoSW5wdXRTdHJlYW0gaW5wdXRTdHJlYW0sIAorICAgICAgICAgICAgICAgICAgIERhdGFNYW5pcHVsYXRlICBkYXRhTWFuaXB1bGF0ZSkgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICBEYXRhSW5wdXRTdHJlYW0gaW5wdXQgPSBuZXcgRGF0YUlucHV0U3RyZWFtKGlucHV0U3RyZWFtKTsKKyAgICAgICAgLy8gTWFnaWMgbnVtYmVyIHRvIGF1dGhlbnRpY2F0ZSB0aGUgZGF0YS4KKyAgICAgICAgaW50IHNpZ25hdHVyZSA9IGlucHV0LnJlYWRJbnQoKTsKKyAgICAgICAgbV9vcHRpb25zXyAgICA9IGlucHV0LnJlYWRJbnQoKTsKKyAgICAgICAgCisgICAgICAgIGlmICghY2hlY2tIZWFkZXIoc2lnbmF0dXJlKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSUNVIGRhdGEgZmlsZSBlcnJvcjogVHJpZSBoZWFkZXIgYXV0aGVudGljYXRpb24gZmFpbGVkLCBwbGVhc2UgY2hlY2sgaWYgeW91IGhhdmUgdGhlIG1vc3QgdXBkYXRlZCBJQ1UgZGF0YSBmaWxlIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG1fZGF0YU1hbmlwdWxhdGVfID0gZGF0YU1hbmlwdWxhdGU7CisgICAgICAgIG1faXNMYXRpbjFMaW5lYXJfID0gKG1fb3B0aW9uc18gJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIRUFERVJfT1BUSU9OU19MQVRJTjFfSVNfTElORUFSX01BU0tfKSAhPSAwOworICAgICAgICBtX2RhdGFPZmZzZXRfICAgICA9IGlucHV0LnJlYWRJbnQoKTsKKyAgICAgICAgbV9kYXRhTGVuZ3RoXyAgICAgPSBpbnB1dC5yZWFkSW50KCk7CisgICAgICAgIHVuc2VyaWFsaXplKGlucHV0U3RyZWFtKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBUcmllIGNvbnN0cnVjdG9yCisgICAgKiBAcGFyYW0gaW5kZXggYXJyYXkgdG8gYmUgdXNlZCBmb3IgaW5kZXgKKyAgICAqIEBwYXJhbSBvcHRpb25zIHVzZWQgYnkgdGhlIHRyaWUKKyAgICAqIEBwYXJhbSBkYXRhbWFuaXB1bGF0ZSBvYmplY3QgY29udGFpbmluZyB0aGUgaW5mb3JtYXRpb24gdG8gcGFyc2UgdGhlIAorICAgICogICAgICAgICAgICAgICAgICAgICAgIHRyaWUgZGF0YQorICAgICogQGRyYWZ0IDIuMgorICAgICovCisgICAgcHJvdGVjdGVkIFRyaWUoY2hhciBpbmRleFtdLCBpbnQgb3B0aW9ucywgRGF0YU1hbmlwdWxhdGUgZGF0YU1hbmlwdWxhdGUpCisgICAgeworICAgICAgICBtX29wdGlvbnNfID0gb3B0aW9uczsKKyAgICAgICAgbV9kYXRhTWFuaXB1bGF0ZV8gPSBkYXRhTWFuaXB1bGF0ZTsKKyAgICAgICAgbV9pc0xhdGluMUxpbmVhcl8gPSAobV9vcHRpb25zXyAmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhFQURFUl9PUFRJT05TX0xBVElOMV9JU19MSU5FQVJfTUFTS18pICE9IDA7CisgICAgICAgIG1faW5kZXhfID0gaW5kZXg7CisgICAgfQorCisKKyAgICAvLyBwcm90ZWN0ZWQgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgKiBTaGlmdCBzaXplIGZvciBzaGlmdGluZyByaWdodCB0aGUgaW5wdXQgaW5kZXguIDEuLjkKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IElOREVYX1NUQUdFXzFfU0hJRlRfID0gNTsKKyAgICAvKioKKyAgICAqIFNoaWZ0IHNpemUgZm9yIHNoaWZ0aW5nIGxlZnQgdGhlIGluZGV4IGFycmF5IHZhbHVlcy4KKyAgICAqIEluY3JlYXNlcyBwb3NzaWJsZSBkYXRhIHNpemUgd2l0aCAxNi1iaXQgaW5kZXggdmFsdWVzIGF0IHRoZSBjb3N0CisgICAgKiBvZiBjb21wYWN0YWJpbGl0eS4KKyAgICAqIFRoaXMgcmVxdWlyZXMgYmxvY2tzIG9mIHN0YWdlIDIgZGF0YSB0byBiZSBhbGlnbmVkIGJ5CisgICAgKiBEQVRBX0dSQU5VTEFSSVRZLgorICAgICogMC4uSU5ERVhfU1RBR0VfMV9TSElGVAorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgSU5ERVhfU1RBR0VfMl9TSElGVF8gPSAyOworICAgIC8qKgorICAgICogTWFzayBmb3IgZ2V0dGluZyB0aGUgbG93ZXIgYml0cyBmcm9tIHRoZSBpbnB1dCBpbmRleC4KKyAgICAqIERBVEFfQkxPQ0tfTEVOR1RIXyAtIDEuCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBJTkRFWF9TVEFHRV8zX01BU0tfID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCBJTkRFWF9TVEFHRV8xX1NISUZUXykgLSAxOworICAgIC8qKgorICAgICogU3Vycm9nYXRlIG1hc2sgdG8gdXNlIHdoZW4gc2hpZnRpbmcgb2Zmc2V0IHRvIHJldHJpZXZlIHN1cHBsZW1lbnRhcnkKKyAgICAqIHZhbHVlcworICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgU1VSUk9HQVRFX01BU0tfID0gMHgzRkY7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8qKgorICAgICogSW5kZXggb3IgVVRGMTYgY2hhcmFjdGVycworICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIGNoYXIgbV9pbmRleF9bXTsKKyAgICAvKioKKyAgICAqIEludGVybmFsIFRyaWVWYWx1ZSB3aGljaCBoYW5kbGVzIHRoZSBwYXJzaW5nIG9mIHRoZSBkYXRhIHZhbHVlLgorICAgICogVGhpcyBjbGFzcyBpcyB0byBiZSBpbXBsZW1lbnRlZCBieSB0aGUgdXNlcgorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIERhdGFNYW5pcHVsYXRlIG1fZGF0YU1hbmlwdWxhdGVfOworICAgIC8qKgorICAgICogU3RhcnQgaW5kZXggb2YgdGhlIGRhdGEgcG9ydGlvbiBvZiB0aGUgdHJpZS4gQ2hhclRyaWUgY29tYmluZXMgCisgICAgKiBpbmRleCBhbmQgZGF0YSBpbnRvIGEgY2hhciBhcnJheSwgc28gdGhpcyBpcyB1c2VkIHRvIGluZGljYXRlIHRoZSAKKyAgICAqIGluaXRpYWwgb2Zmc2V0IHRvIHRoZSBkYXRhIHBvcnRpb24uCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IG1fZGF0YU9mZnNldF87CisgICAgLyoqCisgICAgKiBMZW5ndGggb2YgdGhlIGRhdGEgYXJyYXkgCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IG1fZGF0YUxlbmd0aF87CisgICAgCisgICAgLy8gcHJvdGVjdGVkIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICogR2V0cyB0aGUgb2Zmc2V0IHRvIHRoZSBkYXRhIHdoaWNoIHRoZSBzdXJyb2dhdGUgcGFpciBwb2ludHMgdG8uCisgICAgKiBAcGFyYW0gbGVhZCBsZWFkIHN1cnJvZ2F0ZQorICAgICogQHBhcmFtIHRyYWlsIHRyYWlsaW5nIHN1cnJvZ2F0ZQorICAgICogQHJldHVybiBvZmZzZXQgdG8gZGF0YQorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIGFic3RyYWN0IGludCBnZXRTdXJyb2dhdGVPZmZzZXQoY2hhciBsZWFkLCBjaGFyIHRyYWlsKTsKKyAgICAKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIHZhbHVlIGF0IHRoZSBhcmd1bWVudCBpbmRleAorICAgICogQHBhcmFtIGluZGV4IHZhbHVlIGF0IGluZGV4IHdpbGwgYmUgcmV0cmlldmVkCisgICAgKiBAcmV0dXJuIDMyIGJpdCB2YWx1ZSAKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBhYnN0cmFjdCBpbnQgZ2V0VmFsdWUoaW50IGluZGV4KTsKKworICAgIC8qKgorICAgICogR2V0cyB0aGUgZGVmYXVsdCBpbml0aWFsIHZhbHVlCisgICAgKiBAcmV0dXJuIDMyIGJpdCB2YWx1ZSAKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBhYnN0cmFjdCBpbnQgZ2V0SW5pdGlhbFZhbHVlKCk7CisgICAgCisgICAgLyoqCisgICAgKiBHZXRzIHRoZSBvZmZzZXQgdG8gdGhlIGRhdGEgd2hpY2ggdGhlIGluZGV4IGNoIGFmdGVyIHZhcmlhYmxlIG9mZnNldAorICAgICogcG9pbnRzIHRvLgorICAgICogTm90ZSBmb3IgbG9jYXRpbmcgYSBub24tc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIgZGF0YSBvZmZzZXQsIGNhbGxpbmcKKyAgICAqIDxwPgorICAgICogZ2V0UmF3T2Zmc2V0KDAsIGNoKTsKKyAgICAqIDwvcD4KKyAgICAqIHdpbGwgZG8uIE90aGVyd2lzZSBpZiBpdCBpcyBhIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyIGZvcm1lZCBieQorICAgICogc3Vycm9nYXRlcyBsZWFkIGFuZCB0cmFpbC4gVGhlbiB3ZSB3b3VsZCBoYXZlIHRvIGNhbGwgZ2V0UmF3T2Zmc2V0KCkKKyAgICAqIHdpdGggZ2V0Rm9sZGluZ0luZGV4T2Zmc2V0KCkuIFNlZSBnZXRTdXJyb2dhdGVPZmZzZXQoKS4KKyAgICAqIEBwYXJhbSBvZmZzZXQgaW5kZXggb2Zmc2V0IHdoaWNoIGNoIGlzIHRvIHN0YXJ0IGZyb20KKyAgICAqIEBwYXJhbSBjaCBpbmRleCB0byBiZSB1c2VkIGFmdGVyIG9mZnNldAorICAgICogQHJldHVybiBvZmZzZXQgdG8gdGhlIGRhdGEKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCBpbnQgZ2V0UmF3T2Zmc2V0KGludCBvZmZzZXQsIGNoYXIgY2gpCisgICAgeworICAgICAgICByZXR1cm4gKG1faW5kZXhfW29mZnNldCArIChjaCA+PiBJTkRFWF9TVEFHRV8xX1NISUZUXyldIDw8CisgICAgICAgICAgICAgICAgSU5ERVhfU1RBR0VfMl9TSElGVF8pICsgKGNoICYgSU5ERVhfU1RBR0VfM19NQVNLXyk7CisgICAgfQorCisgICAgLyoqCisgICAgKiBHZXRzIHRoZSBvZmZzZXQgdG8gZGF0YSB3aGljaCB0aGUgQk1QIGNoYXJhY3RlciBwb2ludHMgdG8KKyAgICAqIFRyZWF0cyBhIGxlYWQgc3Vycm9nYXRlIGFzIGEgbm9ybWFsIGNvZGUgcG9pbnQuCisgICAgKiBAcGFyYW0gY2ggQk1QIGNoYXJhY3RlcgorICAgICogQHJldHVybiBvZmZzZXQgdG8gZGF0YQorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIGludCBnZXRCTVBPZmZzZXQoY2hhciBjaCkKKyAgICB7CisgICAgICAgIGludCBvZmZzZXQgPSAwOworICAgICAgICBpZiAoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGNoKSkgeworICAgICAgICAgICAgb2Zmc2V0ID0gTEVBRF9JTkRFWF9PRkZTRVRfOworICAgICAgICB9CisgICAgICAgIHJldHVybiBnZXRSYXdPZmZzZXQob2Zmc2V0LCBjaCk7CisgICAgfQorCisgICAgLyoqCisgICAgKiBHZXRzIHRoZSBvZmZzZXQgdG8gdGhlIGRhdGEgd2hpY2ggdGhpcyBsZWFkIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIgcG9pbnRzCisgICAgKiB0by4KKyAgICAqIERhdGEgYXQgdGhlIHJldHVybmVkIG9mZnNldCBtYXkgY29udGFpbiBmb2xkaW5nIG9mZnNldCBpbmZvcm1hdGlvbiBmb3IKKyAgICAqIHRoZSBuZXh0IHRyYWlsaW5nIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIuCisgICAgKiBAcGFyYW0gY2ggbGVhZCBzdXJyb2dhdGUgY2hhcmFjdGVyCisgICAgKiBAcmV0dXJuIG9mZnNldCB0byBkYXRhCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgaW50IGdldExlYWRPZmZzZXQoY2hhciBjaCkKKyAgICB7CisgICAgICAgcmV0dXJuIGdldFJhd09mZnNldCgwLCBjaCk7CisgICAgfQorCisgICAgLyoqCisgICAgKiBJbnRlcm5hbCB0cmllIGdldHRlciBmcm9tIGEgY29kZSBwb2ludC4KKyAgICAqIENvdWxkIGJlIGZhc3Rlcig/KSBidXQgbG9uZ2VyIHdpdGgKKyAgICAqICAgaWYoKGMzMik8PTB4ZDdmZikgeyAocmVzdWx0KT1fVFJJRV9HRVRfUkFXKHRyaWUsIGRhdGEsIDAsIGMzMik7IH0KKyAgICAqIEdldHMgdGhlIG9mZnNldCB0byBkYXRhIHdoaWNoIHRoZSBjb2RlcG9pbnQgcG9pbnRzIHRvCisgICAgKiBAcGFyYW0gY2ggY29kZXBvaW50CisgICAgKiBAcmV0dXJuIG9mZnNldCB0byBkYXRhCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgaW50IGdldENvZGVQb2ludE9mZnNldChpbnQgY2gpCisgICAgeworICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0JNUChjaCkpIHsKKyAgICAgICAgICAgIC8vIEJNUCBjb2RlcG9pbnQKKyAgICAgICAgICAgIHJldHVybiBnZXRCTVBPZmZzZXQoKGNoYXIpY2gpOworICAgICAgICB9CisgICAgICAgIGlmIChjaCA8PSBVQ2hhcmFjdGVyLk1BWF9WQUxVRSkKKyAgICAgICAgeworICAgICAgICAgICAgY2hhciBsZWFkID0gVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZShjaCk7CisgICAgICAgICAgICAvLyBsb29rIGF0IHRoZSBjb25zdHJ1Y3Rpb24gb2Ygc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzCisgICAgICAgICAgICAvLyB0cmFpbCBmb3JtcyB0aGUgZW5kcyBvZiBpdC4KKyAgICAgICAgICAgIHJldHVybiBnZXRTdXJyb2dhdGVPZmZzZXQobGVhZCwgKGNoYXIpKGNoICYgU1VSUk9HQVRFX01BU0tfKSk7CisgICAgICAgIH0KKyAgICAgICAgLy8gcmV0dXJuIC0xIGlmIHRoZXJlIGlzIGFuIGVycm9yLCBpbiB0aGlzIGNhc2Ugd2UgcmV0dXJuIHRoZSBkZWZhdWx0CisgICAgICAgIC8vIHZhbHVlOiBtX2luaXRpYWxWYWx1ZV8KKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIC8qKgorICAgICogPHA+UGFyc2VzIHRoZSBpbnB1dHN0cmVhbSBhbmQgY3JlYXRlcyB0aGUgdHJpZSBpbmRleCB3aXRoIGl0LjwvcD4KKyAgICAqIDxwPlRoaXMgaXMgb3ZlcndyaXR0ZW4gYnkgdGhlIGNoaWxkIGNsYXNzZXMuCisgICAgKiBAcGFyYW0gaW5wdXRTdHJlYW0gaW5wdXQgc3RyZWFtIGNvbnRhaW5pbmcgdGhlIHRyaWUgaW5mb3JtYXRpb24KKyAgICAqIEBleGNlcHRpb24gSU9FeGNlcHRpb24gdGhyb3duIHdoZW4gZGF0YSByZWFkaW5nIGZhaWxzLgorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgdW5zZXJpYWxpemUoSW5wdXRTdHJlYW0gaW5wdXRTdHJlYW0pIHRocm93cyBJT0V4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgLy9pbmRleExlbmd0aCBpcyBhIG11bHRpcGxlIG9mIDEwMjQgPj4gSU5ERVhfU1RBR0VfMl9TSElGVF8KKyAgICAgICAgbV9pbmRleF8gICAgICAgICAgICAgID0gbmV3IGNoYXJbbV9kYXRhT2Zmc2V0X107CisgICAgICAgIERhdGFJbnB1dFN0cmVhbSBpbnB1dCA9IG5ldyBEYXRhSW5wdXRTdHJlYW0oaW5wdXRTdHJlYW0pOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1fZGF0YU9mZnNldF87IGkgKyspIHsKKyAgICAgICAgICAgICBtX2luZGV4X1tpXSA9IGlucHV0LnJlYWRDaGFyKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAqIERldGVybWluZXMgaWYgdGhpcyBpcyBhIDMyIGJpdCB0cmllCisgICAgKiBAcmV0dXJuIHRydWUgaWYgb3B0aW9ucyBzcGVjaWZpZXMgdGhpcyBpcyBhIDMyIGJpdCB0cmllCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgYm9vbGVhbiBpc0ludFRyaWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChtX29wdGlvbnNfICYgSEVBREVSX09QVElPTlNfREFUQV9JU18zMl9CSVRfKSAhPSAwOworICAgIH0KKworICAgIC8qKgorICAgICogRGV0ZXJtaW5lcyBpZiB0aGlzIGlzIGEgMTYgYml0IHRyaWUKKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIGlzIGEgMTYgYml0IHRyaWUKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCBib29sZWFuIGlzQ2hhclRyaWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChtX29wdGlvbnNfICYgSEVBREVSX09QVElPTlNfREFUQV9JU18zMl9CSVRfKSA9PSAwOworICAgIH0KKworICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAqIExlYWQgc3Vycm9nYXRlIGNvZGUgcG9pbnRzJyBpbmRleCBkaXNwbGFjZW1lbnQgaW4gdGhlIGluZGV4IGFycmF5LgorICAgICogMHgxMDAwMC0weGQ4MDA9MHgyODAwCisgICAgKiAweDI4MDAgPj4gSU5ERVhfU1RBR0VfMV9TSElGVF8KKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMRUFEX0lOREVYX09GRlNFVF8gPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyODAwID4+IDU7CisgICAgLyoqCisgICAgKiBTaWduYXR1cmUgaW5kZXgKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIRUFERVJfU0lHTkFUVVJFX0lOREVYXyA9IDA7CisgICAgLyoqCisgICAgKiBPcHRpb25zIGluZGV4CisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSEVBREVSX09QVElPTlNfSU5ERVhfID0gMSA8PCAxOworICAgIC8qKgorICAgICogSW5kZXggbGVuZ3RoIGluZGV4CisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSEVBREVSX0lOREVYX0xFTkdUSF9JTkRFWF8gPSAyIDw8IDE7CisgICAgLyoqCisgICAgKiBEYXRhIGxlbmd0aCBpbmRleAorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEhFQURFUl9EQVRBX0xFTkdUSF9JTkRFWF8gPSAzIDw8IDE7CisgICAgLyoqCisgICAgKiBTaXplIG9mIGhlYWRlcgorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEhFQURFUl9MRU5HVEhfID0gNCA8PCAxOworICAgIC8qKgorICAgICogTGF0aW4gMSBvcHRpb24gbWFzaworICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEhFQURFUl9PUFRJT05TX0xBVElOMV9JU19MSU5FQVJfTUFTS18gPSAweDIwMDsKKyAgICAvKioKKyAgICAqIENvbnN0YW50IG51bWJlciB0byBhdXRoZW50aWNhdGUgdGhlIGJ5dGUgYmxvY2sKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIRUFERVJfU0lHTkFUVVJFXyA9IDB4NTQ3MjY5NjU7CisgICAgLyoqCisgICAgKiBIZWFkZXIgb3B0aW9uIGZvcm1hdHRpbmcKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIRUFERVJfT1BUSU9OU19TSElGVF9NQVNLXyA9IDB4RjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSEVBREVSX09QVElPTlNfSU5ERVhfU0hJRlRfID0gNDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSEVBREVSX09QVElPTlNfREFUQV9JU18zMl9CSVRfID0gMHgxMDA7CisgICAgCisgICAgLyoqCisgICAgKiBGbGFnIGluZGljYXRvciBmb3IgTGF0aW4gcXVpY2sgYWNjZXNzIGRhdGEgYmxvY2sKKyAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBtX2lzTGF0aW4xTGluZWFyXzsKKyAgICAKKyAgICAvKioKKyAgICAqIDxwPlRyaWUgb3B0aW9ucyBmaWVsZC48L3A+CisgICAgKiA8cD5vcHRpb25zIGJpdCBmaWVsZDo8YnI+CisgICAgKiA5ICAxID0gTGF0aW4tMSBkYXRhIGlzIHN0b3JlZCBsaW5lYXJseSBhdCBkYXRhICsgREFUQV9CTE9DS19MRU5HVEg8YnI+CisgICAgKiA4ICAwID0gMTYtYml0IGRhdGEsIDE9MzItYml0IGRhdGE8YnI+CisgICAgKiA3Li40ICBJTkRFWF9TVEFHRV8xX1NISUZUICAgLy8gMC4uSU5ERVhfU1RBR0VfMl9TSElGVDxicj4KKyAgICAqIDMuLjAgIElOREVYX1NUQUdFXzJfU0hJRlQgICAvLyAxLi45PGJyPgorICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9vcHRpb25zXzsKKyAgCisgICAgLy8gcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICogQXV0aGVudGljYXRlcyByYXcgZGF0YSBoZWFkZXIuCisgICAgKiBDaGVja2luZyB0aGUgaGVhZGVyIGluZm9ybWF0aW9uLCBzaWduYXR1cmUgYW5kIG9wdGlvbnMuCisgICAgKiBAcGFyYW0gcmF3ZGF0YSBhcnJheSBvZiBjaGFyIGRhdGEgdG8gYmUgY2hlY2tlZAorICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBoZWFkZXIgaXMgYXV0aGVudGljYXRlZCB2YWxpZAorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIGNoZWNrSGVhZGVyKGludCBzaWduYXR1cmUpCisgICAgeworICAgICAgICAvLyBjaGVjayB0aGUgc2lnbmF0dXJlCisgICAgICAgIC8vIFRyaWUgaW4gYmlnLWVuZGlhbiBVUy1BU0NJSSAoMHg1NDcyNjk2NSkuCisgICAgICAgIC8vIE1hZ2ljIG51bWJlciB0byBhdXRoZW50aWNhdGUgdGhlIGRhdGEuCisgICAgICAgIGlmIChzaWduYXR1cmUgIT0gSEVBREVSX1NJR05BVFVSRV8pIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgobV9vcHRpb25zXyAmIEhFQURFUl9PUFRJT05TX1NISUZUX01BU0tfKSAhPSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTkRFWF9TVEFHRV8xX1NISUZUXyB8fAorICAgICAgICAgICAgKChtX29wdGlvbnNfID4+IEhFQURFUl9PUFRJT05TX0lOREVYX1NISUZUXykgJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSEVBREVSX09QVElPTlNfU0hJRlRfTUFTS18pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIT0gSU5ERVhfU1RBR0VfMl9TSElGVF8pIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVHJpZUJ1aWxkZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1RyaWVCdWlsZGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWUyNWVjYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1RyaWVCdWlsZGVyLmphdmEKQEAgLTAsMCArMSw0NDAgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvVHJpZUJ1aWxkZXIuamF2YSx2ICQgCisqICREYXRlOiAyMDAyLzA3LzEyIDIxOjU5OjIyICQgCisqICRSZXZpc2lvbjogMS42ICQKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CisKKy8qKgorICogQnVpbGRlciBsYXNzIHRvIG1hbmlwdWxhdGUgYW5kIGdlbmVyYXRlIGEgdHJpZS4KKyAqIFRoaXMgaXMgdXNlZnVsIGZvciBJQ1UgZGF0YSBpbiBwcmltaXRpdmUgdHlwZXMuCisgKiBQcm92aWRlcyBhIGNvbXBhY3Qgd2F5IHRvIHN0b3JlIGluZm9ybWF0aW9uIHRoYXQgaXMgaW5kZXhlZCBieSBVbmljb2RlIAorICogdmFsdWVzLCBzdWNoIGFzIGNoYXJhY3RlciBwcm9wZXJ0aWVzLCB0eXBlcywga2V5Ym9hcmQgdmFsdWVzLCBldGMuIFRoaXMgaXMgCisgKiB2ZXJ5IHVzZWZ1bCB3aGVuIHlvdSBoYXZlIGEgYmxvY2sgb2YgVW5pY29kZSBkYXRhIHRoYXQgY29udGFpbnMgc2lnbmlmaWNhbnQgCisgKiB2YWx1ZXMgd2hpbGUgdGhlIHJlc3Qgb2YgdGhlIFVuaWNvZGUgZGF0YSBpcyB1bnVzZWQgaW4gdGhlIGFwcGxpY2F0aW9uIG9yIAorICogd2hlbiB5b3UgaGF2ZSBhIGxvdCBvZiByZWR1bmRhbmNlLCBzdWNoIGFzIHdoZXJlIGFsbCAyMSwwMDAgSGFuIGlkZW9ncmFwaHMgCisgKiBoYXZlIHRoZSBzYW1lIHZhbHVlLiAgSG93ZXZlciwgbG9va3VwIGlzIG11Y2ggZmFzdGVyIHRoYW4gYSBoYXNoIHRhYmxlLgorICogQSB0cmllIG9mIGFueSBwcmltaXRpdmUgZGF0YSB0eXBlIHNlcnZlcyB0d28gcHVycG9zZXM6CisgKiA8VUwgdHlwZSA9IHJvdW5kPgorICogICAgIDxMST5GYXN0IGFjY2VzcyBvZiB0aGUgaW5kZXhlZCB2YWx1ZXMuCisgKiAgICAgPExJPlNtYWxsZXIgbWVtb3J5IGZvb3RwcmludC4KKyAqIDwvVUw+CisgKiBUaGlzIGlzIGEgZGlyZWN0IHBvcnQgZnJvbSB0aGUgSUNVNEMgdmVyc2lvbgorICogQHZlcnNpb24gICAgICAgICAgICAkUmV2aXNpb246IDEuNiAkCisgKiBAYXV0aG9yICAgICAgICAgICAgIFN5biBXZWUgUXVlaworICovCitwdWJsaWMgY2xhc3MgVHJpZUJ1aWxkZXIKK3sKKwkvLyBwdWJsaWMgZGF0YSBtZW1iZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCQorCS8qKiAKKwkgKiBOdW1iZXIgb2YgZGF0YSB2YWx1ZXMgaW4gYSBzdGFnZSAyIChkYXRhIGFycmF5KSBibG9jay4gMiwgNCwgOCwgLi4sIAorCSAqIDB4MjAwIAorCSAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERBVEFfQkxPQ0tfTEVOR1RIXyA9IDEgPDwgVHJpZS5JTkRFWF9TVEFHRV8xX1NISUZUXzsKKyAgICAKKwkvLyBwdWJsaWMgY2xhc3MgZGVjbGFyYXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICogQ2hhcmFjdGVyIGRhdGEgaW4gY29tLmlibS5pbXBsLlRyaWUgaGF2ZSBkaWZmZXJlbnQgdXNlci1zcGVjaWZpZWQgZm9ybWF0CisgICAgKiBmb3IgZGlmZmVyZW50IHB1cnBvc2VzLgorICAgICogVGhpcyBpbnRlcmZhY2Ugc3BlY2lmaWVzIG1ldGhvZHMgdG8gYmUgaW1wbGVtZW50ZWQgaW4gb3JkZXIgZm9yCisgICAgKiBjb20uaWJtLmltcGwuVHJpZSwgdG8gc3Vycm9nYXRlIG9mZnNldCBpbmZvcm1hdGlvbiBlbmNhcHN1bGF0ZWQgd2l0aGluIAorICAgICogdGhlIGRhdGEuCisgICAgKiBAZHJhZnQgMi4yCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludGVyZmFjZSBEYXRhTWFuaXB1bGF0ZQorICAgIHsKKyAgICAgICAgLyoqCisgCQkgKiBCdWlsZC10aW1lIHRyaWUgY2FsbGJhY2sgZnVuY3Rpb24sIHVzZWQgd2l0aCBzZXJpYWxpemUoKS4KKyAJICAgICAqIFRoaXMgZnVuY3Rpb24gY2FsY3VsYXRlcyBhIGxlYWQgc3Vycm9nYXRlJ3MgdmFsdWUgaW5jbHVkaW5nIGEgCisgCSAgICAgKiBmb2xkaW5nIG9mZnNldCBmcm9tIHRoZSAxMDI0IHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMgCisgCSAgICAgKiBbc3RhcnQuLnN0YXJ0KzEwMjRbIC4gCisgCSAgICAgKiBJdCBpcyBVKzEwMDAwIDw9IHN0YXJ0IDw9IFUrMTBmYzAwIGFuZCAoc3RhcnQmMHgzZmYpPT0wLgorIAkgICAgICogVGhlIGZvbGRpbmcgb2Zmc2V0IGlzIHByb3ZpZGVkIGJ5IHRoZSBjYWxsZXIuIAorIAkgICAgICogSXQgaXMgb2Zmc2V0PVVUUklFX0JNUF9JTkRFWF9MRU5HVEgrbipVVFJJRV9TVVJST0dBVEVfQkxPQ0tfQ09VTlQgCisgCSAgICAgKiB3aXRoIG49MC4uMTAyMy4gCisgCSAgICAgKiBJbnN0ZWFkIG9mIHRoZSBvZmZzZXQgaXRzZWxmLCBuIGNhbiBiZSBzdG9yZWQgaW4gMTAgYml0cyAtIG9yIGZld2VyIAorIAkgICAgICogaWYgaXQgY2FuIGJlIGFzc3VtZWQgdGhhdCBmZXcgbGVhZCBzdXJyb2dhdGVzIGhhdmUgYXNzb2NpYXRlZCBkYXRhLgorIAkgICAgICogVGhlIHJldHVybmVkIHZhbHVlIG11c3QgYmUKKyAJICAgICAqICAtIG5vdCB6ZXJvIGlmIGFuZCBvbmx5IGlmIHRoZXJlIGlzIHJlbGV2YW50IGRhdGEgZm9yIHRoZSAKKyAJICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgY29ycmVzcG9uZGluZyAxMDI0IHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMKKyAJICAgICAqICAtIHN1Y2ggdGhhdCBVVHJpZS5nZXRGb2xkaW5nT2Zmc2V0KFVOZXdUcmllR2V0Rm9sZGVkVmFsdWUoLi4uLCAKKyAJICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCkpPT1vZmZzZXQKKyAgICAgICAgICogQHJldHVybiBhIGZvbGRlZCB2YWx1ZSwgb3IgMCBpZiB0aGVyZSBpcyBubyByZWxldmFudCBkYXRhIGZvciB0aGUgCisgICAgICAgICAqICAgICAgICAgbGVhZCBzdXJyb2dhdGUuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IGdldEZvbGRlZFZhbHVlKGludCBzdGFydCwgaW50IG9mZnNldCk7IAorICAgIH0KKyAgICAKKwkvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIAorICAgIC8qKgorICAgICAqIENoZWNrcyBpZiB0aGUgY2hhcmFjdGVyIGJlbG9uZ3MgdG8gYSB6ZXJvIGJsb2NrIGluIHRoZSB0cmllCisgICAgICogQHBhcmFtIGNoIGNvZGVwb2ludCB3aGljaCBkYXRhIGlzIHRvIGJlIHJldHJpZXZlZAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBjaCBpcyBpbiB0aGUgemVybyBibG9jaworICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzSW5aZXJvQmxvY2soaW50IGNoKSAKKyAgICB7CisgICAgICAgIC8vIHZhbGlkLCB1bmNvbXBhY3RlZCB0cmllIGFuZCB2YWxpZCBjPworICAgICAgICBpZiAobV9pc0NvbXBhY3RlZF8gfHwgIVVDaGFyYWN0ZXIuaXNMZWdhbChjaCkpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgCisgICAgICAgIHJldHVybiBtX2luZGV4X1tjaCA+PiBTSElGVF9dID09IDA7CisgICAgfQorICAgIAorICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBtZXRob2QgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKwkgIC8qKgorCSAgKiBUYWtlcyBhcmd1bWVudCBhcnJheSBhbmQgZm9ybXMgYSBjb21wYWN0IGFycmF5IGludG8gdGhlIHJlc3VsdCBhcnJheXMuCisJICAqIFRoZSByZXN1bHQgd2lsbCBiZSAKKwkgICogPGNvZGU+CisJICAqICAgYXJyYXlbaW5kZXhdID09IHZhbHVlYXJyYXlbaW5kZXhhcnJheVtpbmRleF1dCisJICAqIDwvY29kZT4uCisJICAqIE5vdGUgOiBUaGlzIG1ldGhvZCBpcyBnZW5lcmljLCBpdCBvbmx5IHRha2VzIHZhbHVlcyBmcm9tIHRoZSBhcnJheS4gCisJICAqIEBwYXJhbSBhcnJheSB2YWx1ZSBhcnJheSB0byBiZSBtYW5pcHVsYXRlZAorCSAgKiBAcGFyYW0gc3RhcnQgaW5kZXggb2YgdGhlIGFycmF5IHRvIHByb2Nlc3MKKwkgICogQHBhcmFtIGxlbmd0aCBvZiBhcnJheSB0byBwcm9jZXNzLgorCSAgKiBAcGFyYW0gYmxvY2tzaXplIHNpemUgb2YgZWFjaCBibG9ja3MgZXhpc3RpbmcgaW4gdmFsdWVhcnJheQorCSAgKiBAcGFyYW0gaW5kZXhhcnJheSByZXN1bHQgaW5kZXggYXJyYXkgd2l0aCBsZW5ndGggPSBhcnJheS5sZW5ndGgsIHdpdGggCisJICAqICAgICAgICB2YWx1ZXMgd2hpY2ggaW5kZXhlcyB0byB2YWx1ZWFycmF5LgorCSAgKiBAcGFyYW0gdmFsdWVhcnJheSByZXN1bHQgdmFsdWUgYXJyYXkgY29tcGFjdCB2YWx1ZSBhcnJheQorCSAgKiBAcmV0dXJuIHNpemUgb2YgdmFsdWVhcnJheQorCSAgKiBAZGVwcmVjYXRlZCByZWxlYXNlIDIuMSwgc2luY2UgaWN1NGMgaGFzIHdyaXR0ZW4gdGhlaXIgb3duIHRvb2wKKwkgICovCisJICBzdGF0aWMgaW50IGJ1aWxkKGJ5dGUgYXJyYXlbXSwgaW50IHN0YXJ0LCBpbnQgbGVuZ3RoLCBpbnQgYmxvY2tzaXplLCAKKwkgICAgICAgICAgICAgICAgICAgaW50IGluZGV4YXJyYXlbXSwgYnl0ZSB2YWx1ZWFycmF5W10pCisJICB7CisJICAgIGludCB2YWx1ZXNpemUgPSAwOworCSAgICBpbnQgdmFsdWVpbmRleDsKKwkgICAgaW50IGJsb2NrY291bnQgPSAwOyAgCisJICAgIGludCBpbmRleCA9IDA7CisJICAgIGludCBtaW47CisJICAgIAorCSAgICB3aGlsZSAoc3RhcnQgPCBsZW5ndGgpIHsKKwkgICAgICAvLyBmb3IgYSBibG9jayBvZiBibG9ja3NpemUgaW4gdGhlIGFycmF5CisJICAgICAgLy8gd2UgdHJ5IHRvIGZpbmQgYSBzaW1pbGFyIGJsb2NrIGluIHZhbHVlYXJyYXkKKwkgICAgICBmb3IgKHZhbHVlaW5kZXggPSAwOyB2YWx1ZWluZGV4IDwgdmFsdWVzaXplOyB2YWx1ZWluZGV4ICsrKSB7CisJICAgICAgICAvLyB0ZXN0aW5nIGVhY2ggYmxvY2sgb2YgYmxvY2tzaXplIGF0IGluZGV4IHZhbHVlaW5kZXggaW4gdmFsdWVhcnJheQorCSAgICAgICAgLy8gaWYgaXQgaXMgPT0gdG8gYXJyYXkgYmxvY2tzCisJICAgICAgICBtaW4gPSBNYXRoLm1pbihibG9ja3NpemUsIHZhbHVlc2l6ZSAtIHZhbHVlaW5kZXgpOworCSAgICAgICAgZm9yIChibG9ja2NvdW50ID0gMDsgYmxvY2tjb3VudCA8IG1pbjtibG9ja2NvdW50ICsrKSB7CisJICAgICAgICAgIGlmIChhcnJheVtzdGFydCArIGJsb2NrY291bnRdICE9IAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZWFycmF5W3ZhbHVlaW5kZXggKyBibG9ja2NvdW50XSkgeworCSAgICAgICAgICAgIGJyZWFrOworCSAgICAgICAgICB9CisJICAgICAgICB9CisJICAgICAgICAKKwkgICAgICAgIGlmIChibG9ja2NvdW50ID09IGJsb2Nrc2l6ZSB8fCB2YWx1ZWluZGV4ICsgYmxvY2tjb3VudCA9PSB2YWx1ZXNpemUpIHsKKwkgICAgICAgICAgYnJlYWs7CisJICAgICAgICB9CisJICAgICAgfQorCQorCSAgICAgIC8vIGlmIG5vIHNpbWlsYXIgYmxvY2sgaXMgZm91bmQgaW4gdmFsdWUgYXJyYXkKKwkgICAgICAvLyB3ZSBwb3B1bGF0ZSB0aGUgcmVzdWx0IGFycmF5cyB3aXRoIGRhdGEKKwkgICAgICBmb3IgKG1pbiA9IE1hdGgubWluKGJsb2Nrc2l6ZSwgbGVuZ3RoIC0gc3RhcnQpOyBibG9ja2NvdW50IDwgbWluOyAKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrY291bnQgKyspIHsKKwkgICAgICAgIHZhbHVlYXJyYXlbdmFsdWVzaXplICsrXSA9IGFycmF5W3N0YXJ0ICsgYmxvY2tjb3VudF07CisJICAgICAgfQorCSAgICAgICAgCisJICAgICAgaW5kZXhhcnJheVtpbmRleCArK10gPSB2YWx1ZWluZGV4OworCSAgICAgIHN0YXJ0ICs9IGJsb2Nrc2l6ZTsKKwkgICAgfQorCSAgICAKKwkgICAgcmV0dXJuIHZhbHVlc2l6ZTsKKwkgIH0KKwkgIAorCSAgLyoqCisJICAqIFRha2VzIGFyZ3VtZW50IGFycmF5IGFuZCBmb3JtcyBhIGNvbXBhY3QgYXJyYXkgaW50byB0aGUgcmVzdWx0IGFycmF5cy4KKwkgICogVGhlIHJlc3VsdCB3aWxsIGJlIAorCSAgKiA8Y29kZT4KKwkgICogICBhcnJheVtpbmRleF0gPT0gdmFsdWVhcnJheVtpbmRleGFycmF5W2luZGV4XV0KKwkgICogPC9jb2RlPi4KKwkgICogTm90ZSA6IFRoaXMgbWV0aG9kIGlzIGdlbmVyaWMsIGl0IG9ubHkgdGFrZXMgdmFsdWVzIGZyb20gdGhlIGFycmF5LiAKKwkgICogQHBhcmFtIGFycmF5IHZhbHVlIGFycmF5IHRvIGJlIG1hbmlwdWxhdGVkCisJICAqIEBwYXJhbSBzdGFydCBpbmRleCBvZiB0aGUgYXJyYXkgdG8gcHJvY2VzcworCSAgKiBAcGFyYW0gbGVuZ3RoIG9mIGFycmF5IHRvIHByb2Nlc3MuCisJICAqIEBwYXJhbSBibG9ja3NpemUgc2l6ZSBvZiBlYWNoIGJsb2NrcyBleGlzdGluZyBpbiB2YWx1ZWFycmF5CisJICAqIEBwYXJhbSBpbmRleGFycmF5IHJlc3VsdCBpbmRleCBhcnJheSB3aXRoIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCwgd2l0aCAKKwkgICogICAgICAgIHZhbHVlcyB3aGljaCBpbmRleGVzIHRvIHZhbHVlYXJyYXkuCisJICAqIEBwYXJhbSB2YWx1ZWFycmF5IHJlc3VsdCB2YWx1ZSBhcnJheSBjb21wYWN0IHZhbHVlIGFycmF5CisJICAqIEByZXR1cm4gc2l6ZSBvZiB2YWx1ZWFycmF5CisJICAqIEBkZXByZWNhdGVkIHJlbGVhc2UgMi4xLCBzaW5jZSBpY3U0YyBoYXMgd3JpdHRlbiB0aGVpciBvd24gdG9vbAorCSAgKi8KKwkgIHN0YXRpYyBpbnQgYnVpbGQoY2hhciBhcnJheVtdLCBpbnQgc3RhcnQsIGludCBsZW5ndGgsIGludCBibG9ja3NpemUsIAorCSAgICAgICAgICAgICAgICAgICBpbnQgaW5kZXhhcnJheVtdLCBjaGFyIHZhbHVlYXJyYXlbXSkKKwkgIHsKKwkgICAgaW50IHZhbHVlc2l6ZSA9IDA7CisJICAgIGludCB2YWx1ZWluZGV4OworCSAgICBpbnQgYmxvY2tjb3VudCA9IDA7ICAKKwkgICAgaW50IGluZGV4ID0gMDsKKwkgICAgaW50IG1pbjsKKwkgICAgCisJICAgIHdoaWxlIChzdGFydCA8IGxlbmd0aCkgeworCSAgICAgIC8vIGZvciBhIGJsb2NrIG9mIGJsb2Nrc2l6ZSBpbiB0aGUgYXJyYXkKKwkgICAgICAvLyB3ZSB0cnkgdG8gZmluZCBhIHNpbWlsYXIgYmxvY2sgaW4gdmFsdWVhcnJheQorCSAgICAgIGZvciAodmFsdWVpbmRleCA9IDA7IHZhbHVlaW5kZXggPCB2YWx1ZXNpemU7IHZhbHVlaW5kZXggKyspIHsKKwkgICAgICAgIC8vIHRlc3RpbmcgZWFjaCBibG9jayBvZiBibG9ja3NpemUgYXQgaW5kZXggdmFsdWVpbmRleCBpbiB2YWx1ZWFycmF5CisJICAgICAgICAvLyBpZiBpdCBpcyA9PSB0byBhcnJheSBibG9ja3MKKwkgICAgICAgIG1pbiA9IE1hdGgubWluKGJsb2Nrc2l6ZSwgdmFsdWVzaXplIC0gdmFsdWVpbmRleCk7CisJICAgICAgICBmb3IgKGJsb2NrY291bnQgPSAwOyBibG9ja2NvdW50IDwgbWluO2Jsb2NrY291bnQgKyspIHsKKwkgICAgICAgICAgaWYgKGFycmF5W3N0YXJ0ICsgYmxvY2tjb3VudF0gIT0gCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlYXJyYXlbdmFsdWVpbmRleCArIGJsb2NrY291bnRdKSB7CisJICAgICAgICAgICAgYnJlYWs7CisJICAgICAgICAgIH0KKwkgICAgICAgIH0KKwkgICAgICAgIAorCSAgICAgICAgaWYgKGJsb2NrY291bnQgPT0gYmxvY2tzaXplIHx8IHZhbHVlaW5kZXggKyBibG9ja2NvdW50ID09IHZhbHVlc2l6ZSkgeworCSAgICAgICAgICBicmVhazsKKwkgICAgICAgIH0KKwkgICAgICB9CisJCisJICAgICAgLy8gaWYgbm8gc2ltaWxhciBibG9jayBpcyBmb3VuZCBpbiB2YWx1ZSBhcnJheQorCSAgICAgIC8vIHdlIHBvcHVsYXRlIHRoZSByZXN1bHQgYXJyYXlzIHdpdGggZGF0YQorCSAgICAgIGZvciAobWluID0gTWF0aC5taW4oYmxvY2tzaXplLCBsZW5ndGggLSBzdGFydCk7IGJsb2NrY291bnQgPCBtaW47IAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tjb3VudCArKykgeworCSAgICAgICAgdmFsdWVhcnJheVt2YWx1ZXNpemUgKytdID0gYXJyYXlbc3RhcnQgKyBibG9ja2NvdW50XTsKKwkgICAgICB9CisJICAgICAgICAKKwkgICAgICBpbmRleGFycmF5W2luZGV4ICsrXSA9IHZhbHVlaW5kZXg7CisJICAgICAgc3RhcnQgKz0gYmxvY2tzaXplOworCSAgICB9CisJICAgIAorCSAgICByZXR1cm4gdmFsdWVzaXplOworCSAgfQorCSAgCisJICAvKioKKwkgICogVGFrZXMgYXJndW1lbnQgYXJyYXkgYW5kIGZvcm1zIGEgY29tcGFjdCBhcnJheSBpbnRvIHRoZSByZXN1bHQgYXJyYXlzLgorCSAgKiBUaGUgcmVzdWx0IHdpbGwgYmUgCisJICAqIDxjb2RlPgorCSAgKiAgIGFycmF5W2luZGV4XSA9PSB2YWx1ZWFycmF5W2luZGV4YXJyYXlbaW5kZXhdXQorCSAgKiA8L2NvZGU+LgorCSAgKiBOb3RlIDogVGhpcyBtZXRob2QgaXMgZ2VuZXJpYywgaXQgb25seSB0YWtlcyB2YWx1ZXMgZnJvbSB0aGUgYXJyYXkuIAorCSAgKiBAcGFyYW0gYXJyYXkgdmFsdWUgYXJyYXkgdG8gYmUgbWFuaXB1bGF0ZWQKKwkgICogQHBhcmFtIHN0YXJ0IGluZGV4IG9mIHRoZSBhcnJheSB0byBwcm9jZXNzCisJICAqIEBwYXJhbSBsZW5ndGggb2YgYXJyYXkgdG8gcHJvY2Vzcy4KKwkgICogQHBhcmFtIGJsb2Nrc2l6ZSBzaXplIG9mIGVhY2ggYmxvY2tzIGV4aXN0aW5nIGluIHZhbHVlYXJyYXkKKwkgICogQHBhcmFtIGluZGV4YXJyYXkgcmVzdWx0IGluZGV4IGFycmF5IHdpdGggbGVuZ3RoID0gYXJyYXkubGVuZ3RoLCB3aXRoIAorCSAgKiAgICAgICAgdmFsdWVzIHdoaWNoIGluZGV4ZXMgdG8gdmFsdWVhcnJheS4KKwkgICogQHBhcmFtIHZhbHVlYXJyYXkgcmVzdWx0IHZhbHVlIGFycmF5IGNvbXBhY3QgdmFsdWUgYXJyYXkKKwkgICogQHJldHVybiBzaXplIG9mIHZhbHVlYXJyYXkgCisJICAqIEBkZXByZWNhdGVkIHJlbGVhc2UgMi4xLCBzaW5jZSBpY3U0YyBoYXMgd3JpdHRlbiB0aGVpciBvd24gdG9vbAorCSAgKi8KKwkgIHN0YXRpYyBpbnQgYnVpbGQoaW50IGFycmF5W10sIGludCBzdGFydCwgaW50IGxlbmd0aCwgaW50IGJsb2Nrc2l6ZSwgCisJICAgICAgICAgICAgICAgICAgIGludCBpbmRleGFycmF5W10sIGludCB2YWx1ZWFycmF5W10pCisJICB7CisJICAgIGludCB2YWx1ZXNpemUgPSAwOworCSAgICBpbnQgdmFsdWVpbmRleDsKKwkgICAgaW50IGJsb2NrY291bnQgPSAwOyAgCisJICAgIGludCBpbmRleCA9IDA7CisJICAgIGludCBtaW47CisJICAgIAorCSAgICB3aGlsZSAoc3RhcnQgPCBsZW5ndGgpIHsKKwkgICAgICAvLyBmb3IgYSBibG9jayBvZiBibG9ja3NpemUgaW4gdGhlIGFycmF5CisJICAgICAgLy8gd2UgdHJ5IHRvIGZpbmQgYSBzaW1pbGFyIGJsb2NrIGluIHZhbHVlYXJyYXkKKwkgICAgICBmb3IgKHZhbHVlaW5kZXggPSAwOyB2YWx1ZWluZGV4IDwgdmFsdWVzaXplOyB2YWx1ZWluZGV4ICsrKSB7CisJICAgICAgICAvLyB0ZXN0aW5nIGVhY2ggYmxvY2sgb2YgYmxvY2tzaXplIGF0IGluZGV4IHZhbHVlaW5kZXggaW4gdmFsdWVhcnJheQorCSAgICAgICAgLy8gaWYgaXQgaXMgPT0gdG8gYXJyYXkgYmxvY2tzCisJICAgICAgICBtaW4gPSBNYXRoLm1pbihibG9ja3NpemUsIHZhbHVlc2l6ZSAtIHZhbHVlaW5kZXgpOworCSAgICAgICAgZm9yIChibG9ja2NvdW50ID0gMDsgYmxvY2tjb3VudCA8IG1pbjsgYmxvY2tjb3VudCArKykgeworCSAgICAgICAgICBpZiAoYXJyYXlbc3RhcnQgKyBibG9ja2NvdW50XSAhPSAKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVhcnJheVt2YWx1ZWluZGV4ICsgYmxvY2tjb3VudF0pIHsKKwkgICAgICAgICAgICBicmVhazsKKwkgICAgICAgICAgfQorCSAgICAgICAgfQorCSAgICAgICAgCisJICAgICAgICBpZiAoYmxvY2tjb3VudCA9PSBibG9ja3NpemUgfHwgdmFsdWVpbmRleCArIGJsb2NrY291bnQgPT0gdmFsdWVzaXplKSB7CisJICAgICAgICAgIGJyZWFrOworCSAgICAgICAgfQorCSAgICAgIH0KKwkKKwkgICAgICAvLyBpZiBubyBzaW1pbGFyIGJsb2NrIGlzIGZvdW5kIGluIHZhbHVlIGFycmF5CisJICAgICAgLy8gd2UgcG9wdWxhdGUgdGhlIHJlc3VsdCBhcnJheXMgd2l0aCBkYXRhCisJICAgICAgbWluID0gTWF0aC5taW4oYmxvY2tzaXplLCBsZW5ndGggLSBzdGFydCk7CisJICAgICAgZm9yICg7IGJsb2NrY291bnQgPCBtaW47IGJsb2NrY291bnQgKyspIHsKKwkgICAgICAgIHZhbHVlYXJyYXlbdmFsdWVzaXplICsrXSA9IGFycmF5W3N0YXJ0ICsgYmxvY2tjb3VudF07CisJICAgICAgfQorCSAgICAgICAgCisJICAgICAgaW5kZXhhcnJheVtpbmRleCArK10gPSB2YWx1ZWluZGV4OworCSAgICAgIHN0YXJ0ICs9IGJsb2Nrc2l6ZTsKKwkgICAgfQorCSAgICAKKwkgICAgcmV0dXJuIHZhbHVlc2l6ZTsKKwkgIH0KKwkKKwkvLyBwcm90ZWN0ZWQgZGF0YSBtZW1iZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwkgIAorCS8qKgorCSAqIEluZGV4IHZhbHVlcyBhdCBidWlsZC10aW1lIGFyZSAzMiBiaXRzIHdpZGUgZm9yIGVhc2llciBwcm9jZXNzaW5nLgorCSAqIEJpdCAzMSBpcyBzZXQgaWYgdGhlIGRhdGEgYmxvY2sgaXMgdXNlZCBieSBtdWx0aXBsZSBpbmRleCB2YWx1ZXMgCisJICogKGZyb20gc2V0UmFuZ2UoKSkuCisJICovCisJcHJvdGVjdGVkIGludCBtX2luZGV4X1tdOworCXByb3RlY3RlZCBpbnQgbV9pbmRleExlbmd0aF87CisJcHJvdGVjdGVkIGludCBtX2RhdGFDYXBhY2l0eV87IAorCXByb3RlY3RlZCBpbnQgbV9kYXRhTGVuZ3RoXzsKKwlwcm90ZWN0ZWQgYm9vbGVhbiBtX2lzRGF0YUFsbG9jYXRlZF87CisJcHJvdGVjdGVkIGJvb2xlYW4gbV9pc0xhdGluMUxpbmVhcl87CisJcHJvdGVjdGVkIGJvb2xlYW4gbV9pc0NvbXBhY3RlZF87CisgICAgLyoqCisJICogTWFwIG9mIGFkanVzdGVkIGluZGV4ZXMsIHVzZWQgaW4gdXRyaWVfY29tcGFjdCgpLgorCSAqIE1hcHMgZnJvbSBvcmlnaW5hbCBpbmRleGVzIHRvIG5ldyBvbmVzLgorCSAqLworCXByb3RlY3RlZCBpbnQgbV9tYXBfW107CisJCisJLyoqCisJICogU2hpZnQgc2l6ZSBmb3Igc2hpZnRpbmcgcmlnaHQgdGhlIGlucHV0IGluZGV4LiAxLi45IAorCSAqLworCXByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IFNISUZUXyA9IFRyaWUuSU5ERVhfU1RBR0VfMV9TSElGVF87CisJLyoqCisgICAgICogTGVuZ3RoIG9mIHRoZSBpbmRleCAoc3RhZ2UgMSkgYXJyYXkgYmVmb3JlIGZvbGRpbmcuCisgICAgICogTWF4aW11bSBudW1iZXIgb2YgVW5pY29kZSBjb2RlIHBvaW50cyAoMHgxMTAwMDApIHNoaWZ0ZWQgcmlnaHQgYnkgCisgICAgICogU0hJRlQuCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0lOREVYX0xFTkdUSF8gPSAoMHgxMTAwMDAgPj4gU0hJRlRfKTsKKyAgICAvKiogCisgICAgICogTGVuZ3RoIG9mIHRoZSBCTVAgcG9ydGlvbiBvZiB0aGUgaW5kZXggKHN0YWdlIDEpIGFycmF5LiAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBCTVBfSU5ERVhfTEVOR1RIXyA9IDB4MTAwMDAgPj4gU0hJRlRfOwkKKyAgICAvKioKKyAgICAgKiBOdW1iZXIgb2YgaW5kZXggKHN0YWdlIDEpIGVudHJpZXMgcGVyIGxlYWQgc3Vycm9nYXRlLgorICAgICAqIFNhbWUgYXMgbnVtYmVyIG9mIGluZGV4ZSBlbnRyaWVzIGZvciAxMDI0IHRyYWlsIHN1cnJvZ2F0ZXMsCisgICAgICogPT0weDQwMD4+VVRSSUVfU0hJRlQKKyAgICAgKiAxMCAtIFNISUZUID09IE51bWJlciBvZiBiaXRzIG9mIGEgdHJhaWwgc3Vycm9nYXRlIHRoYXQgYXJlIHVzZWQgaW4gCisgICAgICogICAgICAgICAgICAgICBpbmRleCB0YWJsZSBsb29rdXBzLiAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBTVVJST0dBVEVfQkxPQ0tfQ09VTlRfID0gMSA8PCAoMTAgLSBTSElGVF8pOworCS8qKgorICAgICogTWFzayBmb3IgZ2V0dGluZyB0aGUgbG93ZXIgYml0cyBmcm9tIHRoZSBpbnB1dCBpbmRleC4KKyAgICAqIERBVEFfQkxPQ0tfTEVOR1RIXyAtIDEuCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNQVNLXyA9IFRyaWUuSU5ERVhfU1RBR0VfM19NQVNLXzsKKyAgICAvKioKKyAgICAgKiBTaGlmdCBzaXplIGZvciBzaGlmdGluZyBsZWZ0IHRoZSBpbmRleCBhcnJheSB2YWx1ZXMuCisgICAgICogSW5jcmVhc2VzIHBvc3NpYmxlIGRhdGEgc2l6ZSB3aXRoIDE2LWJpdCBpbmRleCB2YWx1ZXMgYXQgdGhlIGNvc3QKKyAgICAgKiBvZiBjb21wYWN0YWJpbGl0eS4KKyAgICAgKiBUaGlzIHJlcXVpcmVzIGJsb2NrcyBvZiBzdGFnZSAyIGRhdGEgdG8gYmUgYWxpZ25lZCBieSBVVFJJRV9EQVRBX0dSQU5VTEFSSVRZLgorICAgICAqIDAuLlVUUklFX1NISUZUCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgSU5ERVhfU0hJRlRfID0gVHJpZS5JTkRFWF9TVEFHRV8yX1NISUZUXzsKKyAgICAvKioKKwkgKiBNYXhpbXVtIGxlbmd0aCBvZiB0aGUgcnVudGltZSBkYXRhIChzdGFnZSAyKSBhcnJheS4KKwkgKiBMaW1pdGVkIGJ5IDE2LWJpdCBpbmRleCB2YWx1ZXMgdGhhdCBhcmUgbGVmdC1zaGlmdGVkIGJ5IElOREVYX1NISUZUXy4KKwkgKi8KKwlwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNQVhfREFUQV9MRU5HVEhfID0gKDB4MTAwMDAgPDwgSU5ERVhfU0hJRlRfKTsKKwkvKioKKyAgICAgKiBTaGlmdGluZyB0byBwb3NpdGlvbiB0aGUgaW5kZXggdmFsdWUgaW4gb3B0aW9ucworICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE9QVElPTlNfSU5ERVhfU0hJRlRfID0gNDsKKyAgICAvKiogCisgICAgICogSWYgc2V0LCB0aGVuIHRoZSBkYXRhIChzdGFnZSAyKSBhcnJheSBpcyAzMiBiaXRzIHdpZGUuIAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE9QVElPTlNfREFUQV9JU18zMl9CSVRfID0gMHgxMDA7CisgICAgLyoqCisgICAgICogSWYgc2V0LCB0aGVuIExhdGluLTEgZGF0YSAoZm9yIFUrMDAwMC4uVSswMGZmKSBpcyBzdG9yZWQgaW4gdGhlIGRhdGEgCisgICAgICogKHN0YWdlIDIpIGFycmF5IGFzIGEgc2ltcGxlLCBsaW5lYXIgYXJyYXkgYXQgZGF0YSArIERBVEFfQkxPQ0tfTEVOR1RILgorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE9QVElPTlNfTEFUSU4xX0lTX0xJTkVBUl8gPSAweDIwMDsKKyAgICAvKiogCisgICAgICogVGhlIGFsaWdubWVudCBzaXplIG9mIGEgc3RhZ2UgMiBkYXRhIGJsb2NrLiBBbHNvIHRoZSBncmFudWxhcml0eSBmb3IgCisgICAgICogY29tcGFjdGlvbi4gCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgREFUQV9HUkFOVUxBUklUWV8gPSAxIDw8IElOREVYX1NISUZUXzsKKyAgICAKKyAgICAvLyBwcm90ZWN0ZWQgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIHByb3RlY3RlZCBUcmllQnVpbGRlcigpCisJeworCQltX2luZGV4XyA9IG5ldyBpbnRbTUFYX0lOREVYX0xFTkdUSF9dOworCQltX21hcF8gPSBuZXcgaW50W01BWF9CVUlMRF9USU1FX0RBVEFfTEVOR1RIXyA+PiBTSElGVF9dOworCSAgICBtX2lzTGF0aW4xTGluZWFyXyA9IGZhbHNlOworCSAgICBtX2lzQ29tcGFjdGVkXyA9IGZhbHNlOworCSAgICBtX2luZGV4TGVuZ3RoXyA9IE1BWF9JTkRFWF9MRU5HVEhfOworCX0KKyAgICAgICAgCisgICAgcHJvdGVjdGVkIFRyaWVCdWlsZGVyKFRyaWVCdWlsZGVyIHRhYmxlKQorICAgIHsKKyAgICAgICAgbV9pbmRleF8gPSBuZXcgaW50W01BWF9JTkRFWF9MRU5HVEhfXTsKKyAgICAgICAgbV9pbmRleExlbmd0aF8gPSB0YWJsZS5tX2luZGV4TGVuZ3RoXzsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0YWJsZS5tX2luZGV4XywgMCwgbV9pbmRleF8sIDAsIG1faW5kZXhMZW5ndGhfKTsKKyAgICAgICAgbV9kYXRhQ2FwYWNpdHlfID0gdGFibGUubV9kYXRhQ2FwYWNpdHlfOworICAgICAgICBtX2RhdGFMZW5ndGhfID0gdGFibGUubV9kYXRhTGVuZ3RoXzsKKyAgICAgICAgbV9tYXBfID0gbmV3IGludFt0YWJsZS5tX21hcF8ubGVuZ3RoXTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0YWJsZS5tX21hcF8sIDAsIG1fbWFwXywgMCwgbV9tYXBfLmxlbmd0aCk7CisgICAgICAgIG1faXNEYXRhQWxsb2NhdGVkXyA9IHRhYmxlLm1faXNEYXRhQWxsb2NhdGVkXzsKKyAgICAgICAgbV9pc0xhdGluMUxpbmVhcl8gPSB0YWJsZS5tX2lzTGF0aW4xTGluZWFyXzsKKyAgICAgICAgbV9pc0NvbXBhY3RlZF8gPSB0YWJsZS5tX2lzQ29tcGFjdGVkXzsKKyAgICB9CisgICAgICAgIAorICAgIC8vIHByb3RlY3RlZCBkYXRhIG1lbWJlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogU2V0IGEgdmFsdWUgaW4gdGhlIHRyaWUgaW5kZXggbWFwIHRvIGluZGljYXRlIHdoaWNoIGRhdGEgYmxvY2sKKyAgICAgKiBpcyByZWZlcmVuY2VkIGFuZCB3aGljaCBvbmUgaXMgbm90LgorICAgICAqIHV0cmllX2NvbXBhY3QoKSB3aWxsIHJlbW92ZSBkYXRhIGJsb2NrcyB0aGF0IGFyZSBub3QgdXNlZCBhdCBhbGwuCisgICAgICogU2V0CisgICAgICogLSAwIGlmIGl0IGlzIHVzZWQKKyAgICAgKiAtIC0xIGlmIGl0IGlzIG5vdCB1c2VkCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgZmluZFVudXNlZEJsb2NrcygpIAorICAgIHsKKyAgICAgICAgLy8gZmlsbCB0aGUgZW50aXJlIG1hcCB3aXRoICJub3QgdXNlZCIgCisgICAgICAgIEFycmF5cy5maWxsKG1fbWFwXywgMHhmZik7CisgICAgCisgICAgICAgIC8vIG1hcmsgZWFjaCBibG9jayB0aGF0IF9pc18gdXNlZCB3aXRoIDAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtX2luZGV4TGVuZ3RoXzsgKysgaSkgeworICAgICAgICAgICAgbV9tYXBfW01hdGguYWJzKG1faW5kZXhfW2ldKSA+PiBTSElGVF9dID0gMDsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyBuZXZlciBtb3ZlIHRoZSBhbGwtaW5pdGlhbC12YWx1ZSBibG9jayAwCisgICAgICAgIG1fbWFwX1swXSA9IDA7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEZpbmRzIHRoZSBzYW1lIGluZGV4IGJsb2NrIGFzIHRoZSBvdGhlckJsb2NrCisgICAgICogQHBhcmFtIGluZGV4IGFycmF5CisgICAgICogQHBhcmFtIGluZGV4TGVuZ3RoIHNpemUgb2YgaW5kZXgKKyAgICAgKiBAcGFyYW0gb3RoZXJCbG9jaworICAgICAqIEByZXR1cm4gc2FtZSBpbmRleCBibG9jaworICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IGZpbmRTYW1lSW5kZXhCbG9jayhpbnQgaW5kZXhbXSwgaW50IGluZGV4TGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb3RoZXJCbG9jaykgCisgICAgeworICAgICAgICBmb3IgKGludCBibG9jayA9IEJNUF9JTkRFWF9MRU5HVEhfOyBibG9jayA8IGluZGV4TGVuZ3RoOyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrICs9IFNVUlJPR0FURV9CTE9DS19DT1VOVF8pIHsKKyAgICAgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgICAgIGZvciAoOyBpIDwgU1VSUk9HQVRFX0JMT0NLX0NPVU5UXzsgKysgaSkgeworICAgICAgICAgICAgICAgIGlmIChpbmRleFtibG9jayArIGldICE9IGluZGV4W290aGVyQmxvY2sgKyBpXSkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaSA9PSBTVVJST0dBVEVfQkxPQ0tfQ09VTlRfKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGJsb2NrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBpbmRleExlbmd0aDsKKyAgICB9CisgICAgCisJLy8gcHJpdmF0ZSBkYXRhIG1lbWJlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwkKKwkvKioKKwkgKiBNYXhpbXVtIGxlbmd0aCBvZiB0aGUgYnVpbGQtdGltZSBkYXRhIChzdGFnZSAyKSBhcnJheS4KKwkgKiBUaGUgbWF4aW11bSBsZW5ndGggaXMgMHgxMTAwMDAgKyBEQVRBX0JMT0NLX0xFTkdUSF8gKyAweDQwMC4KKwkgKiAoTnVtYmVyIG9mIFVuaWNvZGUgY29kZSBwb2ludHMgKyBvbmUgYWxsLWluaXRpYWwtdmFsdWUgYmxvY2sgKworCSAqICBwb3NzaWJsZSBkdXBsaWNhdGUgZW50cmllcyBmb3IgMTAyNCBsZWFkIHN1cnJvZ2F0ZXMuKQorCSAqLworCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNQVhfQlVJTERfVElNRV9EQVRBX0xFTkdUSF8gPSAKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExMDAwMCArIERBVEFfQkxPQ0tfTEVOR1RIXyArIDB4NDAwOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL1RyaWVJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVHJpZUl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGU4NjhkNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1RyaWVJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsNDc5IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL1RyaWVJdGVyYXRvci5qYXZhLHYgJAorKiAkRGF0ZTogMjAwMi8wNy8xMiAyMTo1OToyMiAkCisqICRSZXZpc2lvbjogMS42ICQKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5SYW5nZVZhbHVlSXRlcmF0b3I7CisKKy8qKgorICogPHA+Q2xhc3MgZW5hYmxpbmcgaXRlcmF0aW9uIG9mIHRoZSB2YWx1ZXMgaW4gYSBUcmllLjwvcD4KKyAqIDxwPlJlc3VsdCBvZiBlYWNoIGl0ZXJhdGlvbiBjb250YWlucyB0aGUgaW50ZXJ2YWwgb2YgY29kZXBvaW50cyB0aGF0IGhhdmUKKyAqIHRoZSBzYW1lIHZhbHVlIHR5cGUgYW5kIHRoZSB2YWx1ZSB0eXBlIGl0c2VsZi48L3A+CisgKiA8cD5UaGUgY29tcGFyaXNvbiBvZiBlYWNoIGNvZGVwb2ludCB2YWx1ZSBpcyBkb25lIHZpYSBleHRyYWN0KCksIHdoaWNoIHRoZQorICogZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBpcyB0byByZXR1cm4gdGhlIHZhbHVlIGFzIGl0IGlzLjwvcD4gCisgKiA8cD5NZXRob2QgZXh0cmFjdCgpIGNhbiBiZSBvdmVyd3JpdHRlbiB0byBwZXJmb3JtIG1hbmlwdWxhdGlvbnMgb24gCisgKiBjb2RlcG9pbnQgdmFsdWVzIGluIG9yZGVyIHRvIHBlcmZvcm0gc3BlY2lhbGl6ZWQgY29tcGFyaXNvbi48L3A+CisgKiA8cD5UcmllSXRlcmF0b3IgaXMgZGVzaWduZWQgdG8gYmUgYSBnZW5lcmljIGl0ZXJhdG9yIGZvciB0aGUgQ2hhclRyaWUKKyAqIGFuZCB0aGUgSW50VHJpZSwgaGVuY2UgdG8gYWNjb21tb2RhdGUgYm90aCB0eXBlcyBvZiBkYXRhLCB0aGUgcmV0dXJuIAorICogcmVzdWx0IHdpbGwgYmUgaW4gdGVybXMgb2YgaW50ICgzMiBiaXQpIHZhbHVlcy48L3A+CisgKiA8cD5TZWUgY29tLmlibS5pY3UudGV4dC5VQ2hhcmFjdGVyVHlwZUl0ZXJhdG9yIGZvciBleGFtcGxlcyBvZiB1c2UuPC9wPgorICogQGF1dGhvciBzeW53ZWUKKyAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5UcmllCisgKiBAc2VlIGNvbS5pYm0uaWN1LnRleHQuVUNoYXJhY3RlclR5cGVJdGVyYXRvcgorICogQHNpbmNlIHJlbGVhc2UgMi4xLCBKYW4gMTcgMjAwMgorICovCitwdWJsaWMgY2xhc3MgVHJpZUl0ZXJhdG9yIGltcGxlbWVudHMgUmFuZ2VWYWx1ZUl0ZXJhdG9yCisKK3sKKyAgICAvLyBwdWJsaWMgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgKiBUcmllRW51bWVyYXRpb24gY29uc3RydWN0b3IKKyAgICAqIEBwYXJhbSB0cmllIHRvIGJlIHVzZWQKKyAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRocm93IHdoZW4gYXJndW1lbnQgaXMgbnVsbC4KKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHB1YmxpYyBUcmllSXRlcmF0b3IoVHJpZSB0cmllKQorICAgIHsKKyAgICAgICAgaWYgKHRyaWUgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBcmd1bWVudCB0cmllIGNhbm5vdCBiZSBudWxsIik7CisgICAgICAgIH0KKyAgICAgICAgbV90cmllXyAgICAgICAgICAgICA9IHRyaWU7CisgICAgICAgIC8vIHN5bndlZTogY2hlY2sgdGhhdCBleHRyYWN0IGJlbG9uZ3MgdG8gdGhlIGNoaWxkIGNsYXNzCisgICAgICAgIG1faW5pdGlhbFZhbHVlXyAgICAgPSBleHRyYWN0KG1fdHJpZV8uZ2V0SW5pdGlhbFZhbHVlKCkpOworICAgICAgICByZXNldCgpOworICAgIH0KKyAgICAKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgKiA8cD5SZXR1cm5zIHRydWUgaWYgd2UgYXJlIG5vdCBhdCB0aGUgZW5kIG9mIHRoZSBpdGVyYXRpb24sIGZhbHNlIAorICAgICogb3RoZXJ3aXNlLjwvcD4KKyAgICAqIDxwPlRoZSBuZXh0IHNldCBvZiBjb2RlcG9pbnRzIHdpdGggdGhlIHNhbWUgdmFsdWUgdHlwZSB3aWxsIGJlIAorICAgICogY2FsY3VsYXRlZCBkdXJpbmcgdGhpcyBjYWxsIGFuZCByZXR1cm5lZCBpbiB0aGUgYXJndWVtZW50IGVsZW1lbnQuPC9wPgorICAgICogQHBhcmFtIGVsZW1lbnQgcmV0dXJuIHJlc3VsdCAKKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiB3ZSBhcmUgbm90IGF0IHRoZSBlbmQgb2YgdGhlIGl0ZXJhdGlvbiwgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICogQGV4Y2VwdGlvbiBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uIC0gaWYgbm8gbW9yZSBlbGVtZW50cyBleGlzdC4KKyAgICAqIEBzZWUgI2dldFN0YXJ0KCkKKyAgICAqIEBzZWUgI2dldExpbWl0KCkKKyAgICAqIEBzZWUgI2dldFZhbHVlKCkKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHB1YmxpYyBmaW5hbCBib29sZWFuIG5leHQoRWxlbWVudCBlbGVtZW50KQorICAgIHsKKyAgICAgICAgaWYgKG1fbmV4dENvZGVwb2ludF8gPiBVQ2hhcmFjdGVyLk1BWF9WQUxVRSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmIChtX25leHRDb2RlcG9pbnRfIDwgVUNoYXJhY3Rlci5TVVBQTEVNRU5UQVJZX01JTl9WQUxVRSAmJgorICAgICAgICAgICAgY2FsY3VsYXRlTmV4dEJNUEVsZW1lbnQoZWxlbWVudCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfSAgICAKKyAgICAgICAgY2FsY3VsYXRlTmV4dFN1cHBsZW1lbnRhcnlFbGVtZW50KGVsZW1lbnQpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgIAorICAgIC8qKgorICAgICogUmVzZXRzIHRoZSBpdGVyYXRvciB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBpdGVyYXRpb24KKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHJlc2V0KCkKKyAgICB7CisgICAgICAgIG1fY3VycmVudENvZGVwb2ludF8gPSAwOworICAgICAgICBtX25leHRDb2RlcG9pbnRfICAgID0gMDsKKyAgICAgICAgbV9uZXh0SW5kZXhfICAgICAgICA9IDA7CisgICAgICAgIG1fbmV4dEJsb2NrXyA9IG1fdHJpZV8ubV9pbmRleF9bMF0gPDwgVHJpZS5JTkRFWF9TVEFHRV8yX1NISUZUXzsKKyAgICAgICAgaWYgKG1fbmV4dEJsb2NrXyA9PSAwKSB7CisgICAgICAgICAgICBtX25leHRWYWx1ZV8gPSBtX2luaXRpYWxWYWx1ZV87CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtX25leHRWYWx1ZV8gPSBleHRyYWN0KG1fdHJpZV8uZ2V0VmFsdWUobV9uZXh0QmxvY2tfKSk7CisgICAgICAgIH0KKyAgICAgICAgbV9uZXh0QmxvY2tJbmRleF8gPSAwOworICAgICAgICBtX25leHRUcmFpbEluZGV4T2Zmc2V0XyA9IFRSQUlMX1NVUlJPR0FURV9JTkRFWF9CTE9DS19MRU5HVEhfOworICAgIH0KKyAgICAKKyAgICAvLyBwcm90ZWN0ZWQgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgKiBDYWxsZWQgYnkgbmV4dCgpIHRvIGV4dHJhY3RzIGEgMzIgYml0IHZhbHVlIGZyb20gYSB0cmllIHZhbHVlCisgICAgKiB1c2VkIGZvciBjb21wYXJpc29uLgorICAgICogVGhpcyBtZXRob2QgaXMgdG8gYmUgb3ZlcndyaXR0ZW4gaWYgc3BlY2lhbCBtYW5pcHVsYXRpb24gaXMgdG8gYmUgZG9uZQorICAgICogdG8gcmV0cmlldmUgYSByZWxldmFudCBjb21wYXJpc29uLgorICAgICogVGhlIGRlZmF1bHQgZnVuY3Rpb24gaXMgdG8gcmV0dXJuIHRoZSB2YWx1ZSBhcyBpdCBpcy4KKyAgICAqIEBwYXJhbSB2YWx1ZSBhIHZhbHVlIGZyb20gdGhlIHRyaWUKKyAgICAqIEByZXR1cm4gZXh0cmFjdGVkIHZhbHVlCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGV4dHJhY3QoaW50IHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHZhbHVlOworICAgIH0KKyAgICAKKyAgICAvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgKiBTZXQgdGhlIHJlc3VsdCB2YWx1ZXMKKyAgICAqIEBwYXJhbSBlbGVtZW50IHJldHVybiByZXN1bHQgb2JqZWN0CisgICAgKiBAcGFyYW0gc3RhcnQgY29kZXBvaW50IG9mIHJhbmdlIAorICAgICogQHBhcmFtIGxpbWl0IChlbmQgKyAxKSBjb2RlcG9pbnQgb2YgcmFuZ2UKKyAgICAqIEBwYXJhbSB2YWx1ZSBjb21tb24gdmFsdWUgb2YgcmFuZ2UKKyAgICAqLworICAgIHByaXZhdGUgZmluYWwgdm9pZCBzZXRSZXN1bHQoRWxlbWVudCBlbGVtZW50LCBpbnQgc3RhcnQsIGludCBsaW1pdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdmFsdWUpCisgICAgeworICAgICAgICBlbGVtZW50LnN0YXJ0ID0gc3RhcnQ7CisgICAgICAgIGVsZW1lbnQubGltaXQgPSBsaW1pdDsKKyAgICAgICAgZWxlbWVudC52YWx1ZSA9IHZhbHVlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIEZpbmRpbmcgdGhlIG5leHQgZWxlbWVudC4KKyAgICAqIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBqdXN0IGJlZm9yZSByZXR1cm5pbmcgdGhlIHJlc3VsdCBvZiAKKyAgICAqIG5leHQoKS4KKyAgICAqIFdlIGFsd2F5cyBzdG9yZSB0aGUgbmV4dCBlbGVtZW50IGJlZm9yZSBpdCBpcyByZXF1ZXN0ZWQuCisgICAgKiBJbiB0aGUgY2FzZSB0aGF0IHdlIGhhdmUgdG8gY29udGludWUgY2FsY3VsYXRpb25zIGludG8gdGhlIAorICAgICogc3VwcGxlbWVudGFyeSBwbGFuZXMsIGEgZmFsc2Ugd2lsbCBiZSByZXR1cm5lZC4KKyAgICAqIEBwYXJhbSBlbGVtZW50IHJldHVybiByZXN1bHQgb2JqZWN0CisgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIG5leHQgcmFuZ2UgaXMgZm91bmQsIGZhbHNlIGlmIHdlIGhhdmUgdG8gcHJvY2VlZCB0bworICAgICogICAgICAgICB0aGUgc3VwcGxlbWVudGFyeSByYW5nZS4KKyAgICAqLworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBjYWxjdWxhdGVOZXh0Qk1QRWxlbWVudChFbGVtZW50IGVsZW1lbnQpCisgICAgeworICAgICAgICBpbnQgY3VycmVudEJsb2NrICAgID0gbV9uZXh0QmxvY2tfOworICAgICAgICBpbnQgY3VycmVudFZhbHVlICAgID0gbV9uZXh0VmFsdWVfOworICAgICAgICBtX2N1cnJlbnRDb2RlcG9pbnRfID0gbV9uZXh0Q29kZXBvaW50XzsKKyAgICAgICAgbV9uZXh0Q29kZXBvaW50XyArKzsKKyAgICAgICAgbV9uZXh0QmxvY2tJbmRleF8gKys7CisgICAgICAgIGlmICghY2hlY2tCbG9ja0RldGFpbChjdXJyZW50VmFsdWUpKSB7CisgICAgICAgICAgICBzZXRSZXN1bHQoZWxlbWVudCwgbV9jdXJyZW50Q29kZXBvaW50XywgbV9uZXh0Q29kZXBvaW50XywgCisgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIC8vIHN5bndlZSBjaGVjayB0aGF0IG5leHQgYmxvY2sgaW5kZXggPT0gMCBoZXJlIAorICAgICAgICAvLyBlbnVtZXJhdGUgQk1QIC0gdGhlIG1haW4gbG9vcCBlbnVtZXJhdGVzIGRhdGEgYmxvY2tzCisgICAgICAgIHdoaWxlIChtX25leHRDb2RlcG9pbnRfIDwgVUNoYXJhY3Rlci5TVVBQTEVNRU5UQVJZX01JTl9WQUxVRSkgeworICAgICAgICAgICAgbV9uZXh0SW5kZXhfICsrOworICAgICAgICAgICAgLy8gYmVjYXVzZSBvZiB0aGUgd2F5IHRoZSBjaGFyYWN0ZXIgaXMgc3BsaXQgdG8gZm9ybSB0aGUgaW5kZXgKKyAgICAgICAgICAgIC8vIHRoZSBsZWFkIHN1cnJvZ2F0ZSBhbmQgdHJhaWwgc3Vycm9nYXRlIGNhbiBub3QgYmUgaW4gdGhlCisgICAgICAgICAgICAvLyBtaWQgb2YgYSBibG9jaworICAgICAgICAgICAgaWYgKG1fbmV4dENvZGVwb2ludF8gPT0gTEVBRF9TVVJST0dBVEVfTUlOX1ZBTFVFXykgeworICAgICAgICAgICAgICAgIC8vIHNraXAgbGVhZCBzdXJyb2dhdGUgY29kZSB1bml0cywKKyAgICAgICAgICAgICAgICAvLyBnbyB0byBsZWFkIHN1cnJvZ2F0ZSBjb2RlcG9pbnRzCisgICAgICAgICAgICAgICAgbV9uZXh0SW5kZXhfID0gQk1QX0lOREVYX0xFTkdUSF87CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChtX25leHRDb2RlcG9pbnRfID09IFRSQUlMX1NVUlJPR0FURV9NSU5fVkFMVUVfKSB7CisgICAgICAgICAgICAgICAgLy8gZ28gYmFjayB0byByZWd1bGFyIEJNUCBjb2RlIHBvaW50cworICAgICAgICAgICAgICAgIG1fbmV4dEluZGV4XyA9IG1fbmV4dENvZGVwb2ludF8gPj4gVHJpZS5JTkRFWF9TVEFHRV8xX1NISUZUXzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9uZXh0QmxvY2tJbmRleF8gPSAwOworICAgICAgICAgICAgaWYgKCFjaGVja0Jsb2NrKGN1cnJlbnRCbG9jaywgY3VycmVudFZhbHVlKSkgeworICAgICAgICAgICAgICAgIHNldFJlc3VsdChlbGVtZW50LCBtX2N1cnJlbnRDb2RlcG9pbnRfLCBtX25leHRDb2RlcG9pbnRfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFZhbHVlKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBtX25leHRDb2RlcG9pbnRfIC0tOyAgIC8vIHN0ZXAgb25lIGJhY2sgc2luY2UgdGhpcyB2YWx1ZSBoYXMgbm90IGJlZW4KKyAgICAgICAgbV9uZXh0QmxvY2tJbmRleF8gLS07ICAvLyByZXRyaWV2ZWQgeWV0LgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgKiBGaW5kcyB0aGUgbmV4dCBzdXBwbGVtZW50YXJ5IGVsZW1lbnQuCisgICAgKiBGb3IgZWFjaCBlbnRyeSBpbiB0aGUgdHJpZSwgdGhlIHZhbHVlIHRvIGJlIGRlbGl2ZXJlZCBpcyBwYXNzZWQgdGhyb3VnaAorICAgICogZXh0cmFjdCgpLgorICAgICogV2UgYWx3YXlzIHN0b3JlIHRoZSBuZXh0IGVsZW1lbnQgYmVmb3JlIGl0IGlzIHJlcXVlc3RlZC4KKyAgICAqIENhbGxlZCBhZnRlciBjYWxjdWxhdGVOZXh0Qk1QKCkgY29tcGxldGVzIGl0cyByb3VuZCBvZiBCTVAgY2hhcmFjdGVycy4KKyAgICAqIFRoZXJlIGlzIGEgc2xpZ2h0IGRpZmZlcmVuY2UgaW4gdGhlIHVzYWdlIG9mIG1fY3VycmVudENvZGVwb2ludF8KKyAgICAqIGhlcmUgYXMgY29tcGFyZWQgdG8gY2FsY3VsYXRlTmV4dEJNUCgpLiBUaG91Z2ggYm90aCByZXByZXNlbnRzIHRoZQorICAgICogbG93ZXIgYm91bmQgb2YgdGhlIG5leHQgZWxlbWVudCwgaW4gY2FsY3VsYXRlTmV4dEJNUCgpIGl0IGdldHMgc2V0CisgICAgKiBhdCB0aGUgc3RhcnQgb2YgYW55IGxvb3AsIHdoZXJlLWVsc2UsIGluIGNhbGN1bGF0ZU5leHRTdXBwbGVtZW50YXJ5KCkKKyAgICAqIHNpbmNlIG1fY3VycmVudENvZGVwb2ludF8gYWxyZWFkeSBjb250YWlucyB0aGUgbG93ZXIgYm91bmQgb2YgdGhlCisgICAgKiBuZXh0IGVsZW1lbnQgKHBhc3NlZCBkb3duIGZyb20gY2FsY3VsYXRlTmV4dEJNUCgpKSwgd2Uga2VlcCBpdCB0aWxsIAorICAgICogdGhlIGVuZCBiZWZvcmUgcmVzZXR0aW5nIGl0IHRvIHRoZSBuZXcgdmFsdWUuCisgICAgKiBOb3RlLCBpZiB0aGVyZSBhcmUgbm8gbW9yZSBpdGVyYXRpb25zLCBpdCB3aWxsIG5ldmVyIGdldCB0byBoZXJlLiAKKyAgICAqIEJsb2NrZWQgb3V0IGJ5IG5leHQoKS4KKyAgICAqIEBwYXJhbSBlbGVtZW50IHJldHVybiByZXN1bHQgb2JqZWN0CisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIHZvaWQgY2FsY3VsYXRlTmV4dFN1cHBsZW1lbnRhcnlFbGVtZW50KEVsZW1lbnQgZWxlbWVudCkKKyAgICB7CisgICAgICAgIGludCBjdXJyZW50VmFsdWUgPSBtX25leHRWYWx1ZV87CisgICAgICAgIGludCBjdXJyZW50QmxvY2sgPSBtX25leHRCbG9ja187CisgICAgICAgIG1fbmV4dENvZGVwb2ludF8gKys7CisgICAgICAgIG1fbmV4dEJsb2NrSW5kZXhfICsrOworICAgICAgICAKKyAgICAgICAgaWYgKCFjaGVja051bGxOZXh0VHJhaWxJbmRleCgpICYmICFjaGVja0Jsb2NrRGV0YWlsKGN1cnJlbnRWYWx1ZSkpIHsKKyAgICAgICAgICAgIHNldFJlc3VsdChlbGVtZW50LCBtX2N1cnJlbnRDb2RlcG9pbnRfLCBtX25leHRDb2RlcG9pbnRfLCAKKyAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VmFsdWUpOworICAgICAgICAgICAgbV9jdXJyZW50Q29kZXBvaW50XyA9IG1fbmV4dENvZGVwb2ludF87CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwkJLy8gd2UgaGF2ZSBjbGVhcmVkIG9uZSBibG9jaworCQltX25leHRJbmRleF8gKys7CisJCW1fbmV4dFRyYWlsSW5kZXhPZmZzZXRfICsrOworCQlpZiAoIWNoZWNrVHJhaWxCbG9jayhjdXJyZW50QmxvY2ssIGN1cnJlbnRWYWx1ZSkpIHsKKwkJCXNldFJlc3VsdChlbGVtZW50LCBtX2N1cnJlbnRDb2RlcG9pbnRfLCBtX25leHRDb2RlcG9pbnRfLCAKKwkJCSAgICAgICAgICBjdXJyZW50VmFsdWUpOworICAgICAgICAgICAgbV9jdXJyZW50Q29kZXBvaW50XyA9IG1fbmV4dENvZGVwb2ludF87CisgICAgICAgICAgICByZXR1cm47CisJCX0KKwkJCisgICAgICAgIGludCBuZXh0TGVhZCAgPSBVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKG1fbmV4dENvZGVwb2ludF8pOworCQkvLyBlbnVtZXJhdGUgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cworICAgICAgICB3aGlsZSAobmV4dExlYWQgPCBUUkFJTF9TVVJST0dBVEVfTUlOX1ZBTFVFXykgeworCQkgICAgLy8gbGVhZCBzdXJyb2dhdGUgYWNjZXNzCisgICAgICAgICAgICBpbnQgbGVhZEJsb2NrID0gCisgICAgICAgICAgICAgICAgICAgbV90cmllXy5tX2luZGV4X1tuZXh0TGVhZCA+PiBUcmllLklOREVYX1NUQUdFXzFfU0hJRlRfXSA8PCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyaWUuSU5ERVhfU1RBR0VfMl9TSElGVF87CisgICAgICAgICAgICBpZiAobGVhZEJsb2NrID09IG1fdHJpZV8ubV9kYXRhT2Zmc2V0XykgeworICAgICAgICAgICAgICAgIC8vIG5vIGVudHJpZXMgZm9yIGEgd2hvbGUgYmxvY2sgb2YgbGVhZCBzdXJyb2dhdGVzCisgICAgICAgICAgICAgICAgbmV4dExlYWQgKz0gREFUQV9CTE9DS19MRU5HVEhfOworICAgICAgICAgICAgICAgIC8vIG51bWJlciBvZiB0b3RhbCBhZmZlY3RlZCBzdXBwbGVtZW50YXJ5IGNvZGVwb2ludHMgaW4gb25lCisgICAgICAgICAgICAgICAgLy8gYmxvY2sKKyAgICAgICAgICAgICAgICBtX25leHRDb2RlcG9pbnRfICs9IERBVEFfQkxPQ0tfU1VQUExFTUVOVEFSWV9MRU5HVEhfOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG1fdHJpZV8ubV9kYXRhTWFuaXB1bGF0ZV8gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIGZpZWxkIERhdGFNYW5pcHVsYXRlIGluIHRoaXMgVHJpZSBpcyBudWxsIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBlbnVtZXJhdGUgdHJhaWwgc3Vycm9nYXRlcyBmb3IgdGhpcyBsZWFkIHN1cnJvZ2F0ZQorICAgICAgICAgICAgbV9uZXh0SW5kZXhfID0gbV90cmllXy5tX2RhdGFNYW5pcHVsYXRlXy5nZXRGb2xkaW5nT2Zmc2V0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdHJpZV8uZ2V0VmFsdWUobGVhZEJsb2NrICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZXh0TGVhZCAmIFRyaWUuSU5ERVhfU1RBR0VfM19NQVNLXykpKTsKKyAgICAgICAgICAgIGlmIChtX25leHRJbmRleF8gPD0gMCkgeworICAgICAgICAgICAgICAgIC8vIG5vIGRhdGEgZm9yIHRoaXMgbGVhZCBzdXJyb2dhdGUKKyAgICAgICAgICAgICAgICBpZiAoY3VycmVudFZhbHVlICE9IG1faW5pdGlhbFZhbHVlXykgeworICAgICAgICAgICAgICAgICAgICBtX25leHRWYWx1ZV8gICAgICA9IG1faW5pdGlhbFZhbHVlXzsKKyAgICAgICAgICAgICAgICAgICAgbV9uZXh0QmxvY2tfICAgICAgPSAwOworICAgICAgICAgICAgICAgICAgICBtX25leHRCbG9ja0luZGV4XyA9IDA7CisgICAgICAgICAgICAgICAgICAgIHNldFJlc3VsdChlbGVtZW50LCBtX2N1cnJlbnRDb2RlcG9pbnRfLCBtX25leHRDb2RlcG9pbnRfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRWYWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudENvZGVwb2ludF8gPSBtX25leHRDb2RlcG9pbnRfOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1fbmV4dENvZGVwb2ludF8gKz0gVFJBSUxfU1VSUk9HQVRFX0NPVU5UXzsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbV9uZXh0VHJhaWxJbmRleE9mZnNldF8gPSAwOworICAgICAgICAgICAgICAgIGlmICghY2hlY2tUcmFpbEJsb2NrKGN1cnJlbnRCbG9jaywgY3VycmVudFZhbHVlKSkgeworICAgICAgICAgICAgICAgICAgICBzZXRSZXN1bHQoZWxlbWVudCwgbV9jdXJyZW50Q29kZXBvaW50XywgbV9uZXh0Q29kZXBvaW50XywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VmFsdWUpOworICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRDb2RlcG9pbnRfID0gbV9uZXh0Q29kZXBvaW50XzsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gICAgCisgICAgICAgICAgICBuZXh0TGVhZCArKzsKKyAgICAgICAgIH0KKworICAgICAgICAgLy8gZGVsaXZlciBsYXN0IHJhbmdlCisgICAgICAgICBzZXRSZXN1bHQoZWxlbWVudCwgbV9jdXJyZW50Q29kZXBvaW50XywgVUNoYXJhY3Rlci5NQVhfVkFMVUUgKyAxLCAKKyAgICAgICAgICAgICAgICAgICBjdXJyZW50VmFsdWUpOworICAgIH0gICAgCisgICAgCisgICAgLyoqCisgICAgKiBJbnRlcm5hbCBibG9jayB2YWx1ZSBjYWxjdWxhdGlvbnMKKyAgICAqIFBlcmZvcm1zIGNhbGN1bGF0aW9ucyBvbiBhIGRhdGEgYmxvY2sgdG8gZmluZCBjb2RlcG9pbnRzIGluIG1fbmV4dEJsb2NrXworICAgICogYWZ0ZXIgdGhlIGluZGV4IG1fbmV4dEJsb2NrSW5kZXhfIHRoYXQgaGFzIHRoZSBzYW1lIHZhbHVlLgorICAgICogTm90ZSBtXypfIHZhcmlhYmxlcyBhdCB0aGlzIHBvaW50IGlzIHRoZSBuZXh0IGNvZGVwb2ludCB3aG9zZSB2YWx1ZQorICAgICogaGFzIG5vdCBiZWVuIGNhbGN1bGF0ZWQuCisgICAgKiBCdXQgd2hlbiByZXR1cm5lZCB3aXRoIGZhbHNlLCBpdCB3aWxsIGJlIHRoZSBsYXN0IGNvZGVwb2ludCB3aG9zZQorICAgICogdmFsdWUgaGFzIGJlZW4gY2FsY3VsYXRlZC4KKyAgICAqIEBwYXJhbSBjdXJyZW50VmFsdWUgdGhlIHZhbHVlIHdoaWNoIG90aGVyIGNvZGVwb2ludHMgYXJlIHRlc3RlZCBhZ2FpbnN0CisgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHdob2xlIGJsb2NrIGhhcyB0aGUgc2FtZSB2YWx1ZSBhcyBjdXJyZW50VmFsdWUgb3IgaWYKKyAgICAqICAgICAgICAgICAgICB0aGUgd2hvbGUgYmxvY2sgaGFzIGJlZW4gY2FsY3VsYXRlZCwgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIGNoZWNrQmxvY2tEZXRhaWwoaW50IGN1cnJlbnRWYWx1ZSkKKyAgICB7CisJICAgIHdoaWxlIChtX25leHRCbG9ja0luZGV4XyA8IERBVEFfQkxPQ0tfTEVOR1RIXykgeworICAgICAgICAgICAgbV9uZXh0VmFsdWVfID0gZXh0cmFjdChtX3RyaWVfLmdldFZhbHVlKG1fbmV4dEJsb2NrXyArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fbmV4dEJsb2NrSW5kZXhfKSk7CisgICAgICAgICAgICBpZiAobV9uZXh0VmFsdWVfICE9IGN1cnJlbnRWYWx1ZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICsrIG1fbmV4dEJsb2NrSW5kZXhfOworICAgICAgICAgICAgKysgbV9uZXh0Q29kZXBvaW50XzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBJbnRlcm5hbCBibG9jayB2YWx1ZSBjYWxjdWxhdGlvbnMKKyAgICAqIFBlcmZvcm1zIGNhbGN1bGF0aW9ucyBvbiBhIGRhdGEgYmxvY2sgdG8gZmluZCBjb2RlcG9pbnRzIGluIG1fbmV4dEJsb2NrXworICAgICogdGhhdCBoYXMgdGhlIHNhbWUgdmFsdWUuIAorICAgICogV2lsbCBjYWxsIGNoZWNrQmxvY2tEZXRhaWwoKSBpZiBoaWdobGV2ZWwgY2hlY2sgZmFpbHMuCisgICAgKiBOb3RlIG1fKl8gdmFyaWFibGVzIGF0IHRoaXMgcG9pbnQgaXMgdGhlIG5leHQgY29kZXBvaW50IHdob3NlIHZhbHVlCisgICAgKiBoYXMgbm90IGJlZW4gY2FsY3VsYXRlZC4KKyAgICAqIEBwYXJhbSBjdXJyZW50QmxvY2sgdGhlIGluaXRpYWwgYmxvY2sgY29udGFpbmluZyBhbGwgY3VycmVudFZhbHVlCisgICAgKiBAcGFyYW0gY3VycmVudFZhbHVlIHRoZSB2YWx1ZSB3aGljaCBvdGhlciBjb2RlcG9pbnRzIGFyZSB0ZXN0ZWQgYWdhaW5zdAorICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB3aG9sZSBibG9jayBoYXMgdGhlIHNhbWUgdmFsdWUgYXMgY3VycmVudFZhbHVlIG9yIGlmCisgICAgKiAgICAgICAgICAgICAgdGhlIHdob2xlIGJsb2NrIGhhcyBiZWVuIGNhbGN1bGF0ZWQsIGZhbHNlIG90aGVyd2lzZS4KKyAgICAqLworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBjaGVja0Jsb2NrKGludCBjdXJyZW50QmxvY2ssIGludCBjdXJyZW50VmFsdWUpIAorICAgIHsKKyAgICAgICAgbV9uZXh0QmxvY2tfID0gbV90cmllXy5tX2luZGV4X1ttX25leHRJbmRleF9dIDw8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmllLklOREVYX1NUQUdFXzJfU0hJRlRfOworICAgICAgICBpZiAobV9uZXh0QmxvY2tfID09IGN1cnJlbnRCbG9jayAmJgorICAgICAgICAgICAgKG1fbmV4dENvZGVwb2ludF8gLSBtX2N1cnJlbnRDb2RlcG9pbnRfKSA+PSBEQVRBX0JMT0NLX0xFTkdUSF8pIHsKKyAgICAgICAgICAgIC8vIHRoZSBibG9jayBpcyB0aGUgc2FtZSBhcyB0aGUgcHJldmlvdXMgb25lLCBmaWxsZWQgd2l0aCAKKyAgICAgICAgICAgIC8vIGN1cnJlbnRWYWx1ZQorCQkJbV9uZXh0Q29kZXBvaW50XyArPSBEQVRBX0JMT0NLX0xFTkdUSF87CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAobV9uZXh0QmxvY2tfID09IDApIHsKKyAgICAgICAgICAgIC8vIHRoaXMgaXMgdGhlIGFsbC1pbml0aWFsLXZhbHVlIGJsb2NrCisgICAgICAgICAgICBpZiAoY3VycmVudFZhbHVlICE9IG1faW5pdGlhbFZhbHVlXykgeworICAgICAgICAgICAgICAgIG1fbmV4dFZhbHVlXyAgICAgID0gbV9pbml0aWFsVmFsdWVfOworICAgICAgICAgICAgICAgIG1fbmV4dEJsb2NrSW5kZXhfID0gMDsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX25leHRDb2RlcG9pbnRfICs9IERBVEFfQkxPQ0tfTEVOR1RIXzsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmICghY2hlY2tCbG9ja0RldGFpbChjdXJyZW50VmFsdWUpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIEludGVybmFsIGJsb2NrIHZhbHVlIGNhbGN1bGF0aW9ucworICAgICogUGVyZm9ybXMgY2FsY3VsYXRpb25zIG9uIG11bHRpcGxlIGRhdGEgYmxvY2tzIGZvciBhIHNldCBvZiB0cmFpbCAKKyAgICAqIHN1cnJvZ2F0ZXMgdG8gZmluZCBjb2RlcG9pbnRzIGluIG1fbmV4dEJsb2NrXyB0aGF0IGhhcyB0aGUgc2FtZSB2YWx1ZS4gCisgICAgKiBXaWxsIGNhbGwgY2hlY2tCbG9jaygpIGZvciBpbnRlcm5hbCBibG9jayBjaGVja3MuCisgICAgKiBOb3RlIG1fKl8gdmFyaWFibGVzIGF0IHRoaXMgcG9pbnQgaXMgdGhlIG5leHQgY29kZXBvaW50IHdob3NlIHZhbHVlCisgICAgKiBoYXMgbm90IGJlZW4gY2FsY3VsYXRlZC4KKyAgICAqIEBwYXJhbSBjdXJyZW50QmxvY2sgdGhlIGluaXRpYWwgYmxvY2sgY29udGFpbmluZyBhbGwgY3VycmVudFZhbHVlCisgICAgKiBAcGFyYW0gY3VycmVudFZhbHVlIHRoZSB2YWx1ZSB3aGljaCBvdGhlciBjb2RlcG9pbnRzIGFyZSB0ZXN0ZWQgYWdhaW5zdAorICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB3aG9sZSBibG9jayBoYXMgdGhlIHNhbWUgdmFsdWUgYXMgY3VycmVudFZhbHVlIG9yIGlmCisgICAgKiAgICAgICAgICAgICAgdGhlIHdob2xlIGJsb2NrIGhhcyBiZWVuIGNhbGN1bGF0ZWQsIGZhbHNlIG90aGVyd2lzZS4KKyAgICAqLworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBjaGVja1RyYWlsQmxvY2soaW50IGN1cnJlbnRCbG9jaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjdXJyZW50VmFsdWUpCisgICAgeworCSAgICAvLyBlbnVtZXJhdGUgY29kZSBwb2ludHMgZm9yIHRoaXMgbGVhZCBzdXJyb2dhdGUKKyAgICAgICAgd2hpbGUgKG1fbmV4dFRyYWlsSW5kZXhPZmZzZXRfIDwgVFJBSUxfU1VSUk9HQVRFX0lOREVYX0JMT0NLX0xFTkdUSF8pIAorICAgICAgICB7CisJCSAgICAvLyBpZiB3ZSBldmVyIHJlYWNoIGhlcmUsIHdlIGFyZSBhdCB0aGUgc3RhcnQgb2YgYSBuZXcgYmxvY2sKKyAgICAgICAgICAgIG1fbmV4dEJsb2NrSW5kZXhfID0gMDsKKyAgICAgICAgICAgIC8vIGNvcHkgb2YgbW9zdCBvZiB0aGUgYm9keSBvZiB0aGUgQk1QIGxvb3AKKyAgICAgICAgICAgIGlmICghY2hlY2tCbG9jayhjdXJyZW50QmxvY2ssIGN1cnJlbnRWYWx1ZSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX25leHRUcmFpbEluZGV4T2Zmc2V0XyArKzsKKyAgICAgICAgICAgIG1fbmV4dEluZGV4XyArKzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisJLyoqCisJKiBDaGVja3MgaWYgd2UgYXJlIGJlZ2lubmluZyBhdCB0aGUgc3RhcnQgb2YgYSBpbml0aWFsIGJsb2NrLgorCSogSWYgd2UgYXJlIHRoZW4gdGhlIHJlc3Qgb2YgdGhlIGNvZGVwb2ludHMgaW4gdGhpcyBpbml0aWFsIGJsb2NrCisJKiBoYXMgdGhlIHNhbWUgdmFsdWVzLgorCSogV2UgaW5jcmVtZW50IG1fbmV4dENvZGVwb2ludF8gYW5kIHJlbGV2YW50IGRhdGEgbWVtYmVycyBpZiBzby4KKwkqIFRoaXMgaXMgdXNlZCBvbmx5IGluIGZvciB0aGUgc3VwcGxlbWVudGFyeSBjb2RlcG9pbnRzIGJlY2F1c2UKKwkqIHRoZSBvZmZzZXQgdG8gdGhlIHRyYWlsIGluZGV4ZXMgY291bGQgYmUgMC4KKwkqIEByZXR1cm4gdHJ1ZSBpZiB3ZSBhcmUgYXQgdGhlIHN0YXJ0IG9mIGEgaW5pdGlhbCBibG9jay4KKwkqLworCXByaXZhdGUgZmluYWwgYm9vbGVhbiBjaGVja051bGxOZXh0VHJhaWxJbmRleCgpCisJeworCQlpZiAobV9uZXh0SW5kZXhfIDw9IDApIHsKKwkJICAgIG1fbmV4dENvZGVwb2ludF8gKz0gVFJBSUxfU1VSUk9HQVRFX0NPVU5UXyAtIDE7CisJCQlpbnQgbmV4dExlYWQgID0gVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZShtX25leHRDb2RlcG9pbnRfKTsKKwkJCWludCBsZWFkQmxvY2sgPSAKKyAgICAgICAgICAgICAgICAgICBtX3RyaWVfLm1faW5kZXhfW25leHRMZWFkID4+IFRyaWUuSU5ERVhfU1RBR0VfMV9TSElGVF9dIDw8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJpZS5JTkRFWF9TVEFHRV8yX1NISUZUXzsKKyAgICAgICAgICAgIGlmIChtX3RyaWVfLm1fZGF0YU1hbmlwdWxhdGVfID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTnVsbFBvaW50ZXJFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBmaWVsZCBEYXRhTWFuaXB1bGF0ZSBpbiB0aGlzIFRyaWUgaXMgbnVsbCIpOworICAgICAgICAgICAgfQorCQkJbV9uZXh0SW5kZXhfID0gbV90cmllXy5tX2RhdGFNYW5pcHVsYXRlXy5nZXRGb2xkaW5nT2Zmc2V0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdHJpZV8uZ2V0VmFsdWUobGVhZEJsb2NrICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZXh0TGVhZCAmIFRyaWUuSU5ERVhfU1RBR0VfM19NQVNLXykpKTsKKwkJCW1fbmV4dEluZGV4XyAtLTsKKwkJCW1fbmV4dEJsb2NrSW5kZXhfID0gIERBVEFfQkxPQ0tfTEVOR1RIXzsKKwkJCXJldHVybiB0cnVlOworCSAgICB9CisJCXJldHVybiBmYWxzZTsKKwl9CisKKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgKiBTaXplIG9mIHRoZSBzdGFnZSAxIEJNUCBpbmRleGVzCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQk1QX0lOREVYX0xFTkdUSF8gPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAgPj4gVHJpZS5JTkRFWF9TVEFHRV8xX1NISUZUXzsKKyAgICAvKioKKyAgICAqIExlYWQgc3Vycm9nYXRlIG1pbmltdW0gdmFsdWUKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMRUFEX1NVUlJPR0FURV9NSU5fVkFMVUVfID0gMHhEODAwOworICAgIC8qKgorICAgICogVHJhaWwgc3Vycm9nYXRlIG1pbmltdW0gdmFsdWUKKyAgICAqLworCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBUUkFJTF9TVVJST0dBVEVfTUlOX1ZBTFVFXyA9IDB4REMwMDsKKwkvKioKKyAgICAqIFRyYWlsIHN1cnJvZ2F0ZSBtYXhpbXVtIHZhbHVlCisgICAgKi8KKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVFJBSUxfU1VSUk9HQVRFX01BWF9WQUxVRV8gPSAweERGRkY7CisJLyoqCisJKiBOdW1iZXIgb2YgdHJhaWwgc3Vycm9nYXRlCisJKi8KKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVFJBSUxfU1VSUk9HQVRFX0NPVU5UXyA9IDB4NDAwOworICAgIC8qKgorCSogTnVtYmVyIG9mIHN0YWdlIDEgaW5kZXhlcyBmb3Igc3VwcGxlbWVudGFyeSBjYWxjdWxhdGlvbnMgdGhhdCBtYXBzIHRvCisJKiBlYWNoIGxlYWQgc3Vycm9nYXRlIGNoYXJhY3Rlci4KKwkqIFNlZSBzZWNvbmQgcGFzcyBpbnRvIGdldFJhd09mZnNldCBmb3IgdGhlIHRyYWlsIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIuCisJKiAxMCBmb3Igc2lnbmlmaWNhbnQgbnVtYmVyIG9mIGJpdHMgZm9yIHRyYWlsIHN1cnJvZ2F0ZXMsIDUgZm9yIHdoYXQgd2UKKwkqIGRpc2NhcmQgZHVyaW5nIHNoaWZ0aW5nLgorCSovCisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFRSQUlMX1NVUlJPR0FURV9JTkRFWF9CTE9DS19MRU5HVEhfID0KKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgPDwgKDEwIC0gVHJpZS5JTkRFWF9TVEFHRV8xX1NISUZUXyk7CisJLyoqCisJKiBOdW1iZXIgb2YgZGF0YSB2YWx1ZXMgaW4gYSBzdGFnZSAyIChkYXRhIGFycmF5KSBibG9jay4KKwkqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBEQVRBX0JMT0NLX0xFTkdUSF8gPSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxIDw8IFRyaWUuSU5ERVhfU1RBR0VfMV9TSElGVF87CisgICAgLyoqCisgICAgKiBOdW1iZXIgb2YgY29kZXBvaW50cyBpbiBhIHN0YWdlIDIgYmxvY2sKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBEQVRBX0JMT0NLX1NVUFBMRU1FTlRBUllfTEVOR1RIXyA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERBVEFfQkxPQ0tfTEVOR1RIXyA8PCAxMDsKKyAgICAvKioKKyAgICAqIFRyaWUgaW5zdGFuY2UKKyAgICAqLworICAgIHByaXZhdGUgVHJpZSBtX3RyaWVfOworICAgIC8qKgorICAgICogSW5pdGlhbCB2YWx1ZSBmb3IgdHJpZSB2YWx1ZXMKKyAgICAqLworICAgIHByaXZhdGUgaW50IG1faW5pdGlhbFZhbHVlXzsKKyAgICAvKioKKyAgICAqIE5leHQgZWxlbWVudCByZXN1bHRzIGFuZCBkYXRhLgorICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9jdXJyZW50Q29kZXBvaW50XzsKKyAgICBwcml2YXRlIGludCBtX25leHRDb2RlcG9pbnRfOworICAgIHByaXZhdGUgaW50IG1fbmV4dFZhbHVlXzsKKyAgICBwcml2YXRlIGludCBtX25leHRJbmRleF87CisgICAgcHJpdmF0ZSBpbnQgbV9uZXh0QmxvY2tfOworICAgIHByaXZhdGUgaW50IG1fbmV4dEJsb2NrSW5kZXhfOworICAgIHByaXZhdGUgaW50IG1fbmV4dFRyYWlsSW5kZXhPZmZzZXRfOworICAgIC8qKgorICAgICogVGhpcyBpcyB0aGUgcmV0dXJuIHJlc3VsdCBlbGVtZW50CisgICAgKi8KKyAgICBwcml2YXRlIGludCBtX3N0YXJ0XzsKKyAgICBwcml2YXRlIGludCBtX2xpbWl0XzsKKyAgICBwcml2YXRlIGludCBtX3ZhbHVlXzsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2hhckFycmF5SXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VDaGFyQXJyYXlJdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjNTQ5ODMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2hhckFycmF5SXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDg4IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvVUNoYXJBcnJheUl0ZXJhdG9yLmphdmEsdiAkIAorKiAkRGF0ZTogMjAwMi8wNy8zMSAwMzowNDoyOCAkIAorKiAkUmV2aXNpb246IDEuMiAkCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKKworLyoqCisgKiBAYXV0aG9yIERvdWcgRmVsdAorICoKKyAqLworCitwdWJsaWMgZmluYWwgY2xhc3MgVUNoYXJBcnJheUl0ZXJhdG9yIGV4dGVuZHMgVUNoYXJhY3Rlckl0ZXJhdG9yIHsKKyAgICBwcml2YXRlIGZpbmFsIGNoYXJbXSB0ZXh0OworICAgIHByaXZhdGUgZmluYWwgaW50IHN0YXJ0OworICAgIHByaXZhdGUgZmluYWwgaW50IGxpbWl0OworICAgIHByaXZhdGUgaW50IHBvczsKKworICAgIHB1YmxpYyBVQ2hhckFycmF5SXRlcmF0b3IoY2hhcltdIHRleHQsIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisgICAgICAgIGlmIChzdGFydCA8IDAgfHwgbGltaXQgPiB0ZXh0Lmxlbmd0aCB8fCBzdGFydCA+IGxpbWl0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJzdGFydDogIiArIHN0YXJ0ICsgIiBvciBsaW1pdDogIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGxpbWl0ICsgIiBvdXQgb2YgcmFuZ2UgWzAsICIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgdGV4dC5sZW5ndGggKyAiKSIpOworICAgICAgICB9CisgICAgICAgIHRoaXMudGV4dCA9IHRleHQ7CisgICAgICAgIHRoaXMuc3RhcnQgPSBzdGFydDsKKyAgICAgICAgdGhpcy5saW1pdCA9IGxpbWl0OworCisgICAgICAgIHRoaXMucG9zID0gc3RhcnQ7CisgICAgfQorCisgICAgcHVibGljIGludCBjdXJyZW50KCkgeworICAgICAgICByZXR1cm4gcG9zIDwgbGltaXQgPyB0ZXh0W3Bvc10gOiBET05FOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0TGVuZ3RoKCkgeworICAgICAgICByZXR1cm4gbGltaXQgLSBzdGFydDsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldEluZGV4KCkgeworICAgICAgICByZXR1cm4gcG9zIC0gc3RhcnQ7CisgICAgfQorCisgICAgcHVibGljIGludCBuZXh0KCkgeworICAgICAgICByZXR1cm4gcG9zIDwgbGltaXQgPyB0ZXh0W3BvcysrXSA6IERPTkU7CisgICAgfQorCisgICAgcHVibGljIGludCBwcmV2aW91cygpIHsKKyAgICAgICAgcmV0dXJuIHBvcyA+IHN0YXJ0ID8gdGV4dFstLXBvc10gOiBET05FOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldEluZGV4KGludCBpbmRleCkgeworICAgICAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID4gbGltaXQgLSBzdGFydCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oImluZGV4OiAiICsgaW5kZXggKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgb3V0IG9mIHJhbmdlIFswLCAiIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAobGltaXQgLSBzdGFydCkgKyAiKSIpOworICAgICAgICB9CisgICAgICAgIHBvcyA9IHN0YXJ0ICsgaW5kZXg7CisgICAgfQorCisgICAgcHVibGljIGludCBnZXRUZXh0KGNoYXJbXSBmaWxsSW4sIGludCBvZmZzZXQpIHsKKyAgICAgICAgaW50IGxlbiA9IGxpbWl0IC0gc3RhcnQ7CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkodGV4dCwgc3RhcnQsIGZpbGxJbiwgb2Zmc2V0LCBsZW4pOworICAgICAgICByZXR1cm4gbGVuOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBjb3B5IG9mIHRoaXMgaXRlcmF0b3IsIGRvZXMgbm90IGNsb25lIHRoZSB1bmRlcmx5aW5nIAorICAgICAqIDxjb2RlPlJlcGxhY2VhYmxlPC9jb2RlPm9iamVjdAorICAgICAqIEByZXR1cm4gY29weSBvZiB0aGlzIGl0ZXJhdG9yCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpeworICAgICAgICB0cnkgeworICAgICAgICAgIHJldHVybiBzdXBlci5jbG9uZSgpOworICAgICAgICB9IGNhdGNoIChDbG9uZU5vdFN1cHBvcnRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsgLy8gbmV2ZXIgaW52b2tlZAorICAgICAgICB9CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VDaGFyYWN0ZXJJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVUNoYXJhY3Rlckl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGVkZTE5ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VDaGFyYWN0ZXJJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMzg5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9BdHRpYy9VQ2hhcmFjdGVySXRlcmF0b3IuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wNy8zMSAwMzowNDoyOCAkIAorICogJFJldmlzaW9uOiAxLjExICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlJlcGxhY2VhYmxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CisKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhckFycmF5SXRlcmF0b3I7CisKKy8qKgorICogRExGLSBEb2NzIG1vc3RseSBuZWVkIDEpIG11Y2ggbW9yZSBkZXNjcmlwdGlvbiBvZiBpdGVyYXRpb24gYmVoYXZpb3IsCisgKiBlc3BlY2lhbGx5IGF0IGVuZHBvaW50cyBhbmQgd2l0aCBlbXB0eSBvciBzaW5nbGUgY2hhcmFjdGVyIHN0cmluZ3MsCisgKiBhbmQgMikgbmVlZCB0byBkZXNjcmliZSB0aGUgb3RoZXIgbWFqb3IgZGlmZmVyZW5jZSB3aXRoIEphdmEKKyAqIENoYXJhY3Rlckl0ZXJhdG9yLCB3aGljaCBpcyB0aGF0IHRoaXMgYWxzbyByZXR1cm5zIGNvZGUgcG9pbnRzIGFzCisgKiB3ZWxsIGFzIGNvZGUgdW5pdHMuICAKKyAqCisgKiBEb24ndCB1bmRlcnN0YW5kIHdoeSBzZXRJbmRleCBhbmQgbW92ZUluZGV4IGhhdmUgZGlmZmVyZW50IGV4Y2VwdGlvbiBiZWhhdmlvci4KKyAqIEkgZXhwZWN0IHRoZXkgc2hvdWxkbid0LgorICovCisKKy8qKgorICogQWJzdHJhY3QgY2xhc3MgdGhhdCBkZWZpbmVzIGFuIEFQSSBmb3IgaXRlcmF0aW9uIG9uIHRleHQgb2JqZWN0cy5UaGlzIGlzIGFuIAorICogaW50ZXJmYWNlIGZvciBmb3J3YXJkIGFuZCBiYWNrd2FyZCBpdGVyYXRpb24gYW5kIHJhbmRvbSBhY2Nlc3MgaW50byBhIHRleHQgCisgKiBvYmplY3QuIEZvcndhcmQgaXRlcmF0aW9uIGlzIGRvbmUgd2l0aCBwb3N0LWluY3JlbWVudCBhbmQgYmFja3dhcmQgaXRlcmF0aW9uIAorICogaXMgZG9uZSB3aXRoIHByZS1kZWNyZW1lbnQgc2VtYW50aWNzLCB3aGlsZSB0aGUgCisgKiA8Y29kZT5qYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+IGludGVyZmFjZSBtZXRob2RzIHByb3ZpZGVkIGZvcndhcmQgCisgKiBpdGVyYXRpb24gd2l0aCAicHJlLWluY3JlbWVudCIgYW5kIGJhY2t3YXJkIGl0ZXJhdGlvbiB3aXRoIHByZS1kZWNyZW1lbnQgCisgKiBzZW1hbnRpY3MuIFRoaXMgQVBJIGlzIG1vcmUgZWZmaWNpZW50IGZvciBmb3J3YXJkIGl0ZXJhdGlvbiBvdmVyIGNvZGUgcG9pbnRzLgorICogQGF1dGhvciBSYW0KKyAqIEB2ZXJzaW9uIHJlbGVhc2UgMi4yLCBNYXkgMjAwMgorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgVUNoYXJhY3Rlckl0ZXJhdG9yIAorICAgICAgICAgICAgICAgICAgICAgIGltcGxlbWVudHMgQ2xvbmVhYmxlLFVGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgeworCisgICAgCisgICAgLy8gc3RhdGljIGZpbmFsIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSA8Y29kZT5VQ2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+IG9iamVjdCBnaXZlbiBhIAorICAgICAqIDxjb2RlPlJlcGxhY2VhYmxlPC9jb2RlPiBvYmplY3QuCisgICAgICogQHBhcmFtIHNvdXJjZSBhIHZhbGlkIHNvdXJjZSBhcyBhIDxjb2RlPlJlcGxhY2VhYmxlPC9jb2RlPiBvYmplY3QKKyAgICAgKiBAcmV0dXJuIFVDaGFyYWN0ZXJJdGVyYXRvciBvYmplY3QKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgYXJndW1lbnQgaXMgbnVsbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUNoYXJhY3Rlckl0ZXJhdG9yIGdldEluc3RhbmNlKFJlcGxhY2VhYmxlIHNvdXJjZSl7CisgICAgICAgIHJldHVybiBuZXcgUmVwbGFjZWFibGVVQ2hhcmFjdGVySXRlcmF0b3Ioc291cmNlKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIDxjb2RlPlVDaGFyYWN0ZXJJdGVyYXRvcjwvY29kZT4gb2JqZWN0IGdpdmVuIGEgCisgICAgICogc291cmNlIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gc291cmNlIGEgc3RyaW5nCisgICAgICogQHJldHVybiBVQ2hhcmFjdGVySXRlcmF0b3Igb2JqZWN0CisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIGFyZ3VtZW50IGlzIG51bGwKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVDaGFyYWN0ZXJJdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgc291cmNlKXsKKyAgICAgICAgcmV0dXJuIG5ldyBSZXBsYWNlYWJsZVVDaGFyYWN0ZXJJdGVyYXRvcihzb3VyY2UpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgPGNvZGU+VUNoYXJhY3Rlckl0ZXJhdG9yPC9jb2RlPiBvYmplY3QgZ2l2ZW4gYSAKKyAgICAgKiBzb3VyY2UgY2hhcmFjdGVyIGFycmF5LgorICAgICAqIEBwYXJhbSBzb3VyY2UgYW4gYXJyYXkgb2YgVVRGLTE2IGNvZGUgdW5pdHMKKyAgICAgKiBAcmV0dXJuIFVDaGFyYWN0ZXJJdGVyYXRvciBvYmplY3QKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgYXJndW1lbnQgaXMgbnVsbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUNoYXJhY3Rlckl0ZXJhdG9yIGdldEluc3RhbmNlKGNoYXJbXSBzb3VyY2UpeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2Uoc291cmNlLDAsc291cmNlLmxlbmd0aCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSA8Y29kZT5VQ2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+IG9iamVjdCBnaXZlbiBhIAorICAgICAqIHNvdXJjZSBjaGFyYWN0ZXIgYXJyYXkuCisgICAgICogQHBhcmFtIHNvdXJjZSBhbiBhcnJheSBvZiBVVEYtMTYgY29kZSB1bml0cworICAgICAqIEByZXR1cm4gVUNoYXJhY3Rlckl0ZXJhdG9yIG9iamVjdAorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBhcmd1bWVudCBpcyBudWxsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVQ2hhcmFjdGVySXRlcmF0b3IgZ2V0SW5zdGFuY2UoY2hhcltdIHNvdXJjZSwgaW50IHN0YXJ0LCBpbnQgbGltaXQpeworICAgICAgICByZXR1cm4gbmV3IFVDaGFyQXJyYXlJdGVyYXRvcihzb3VyY2Usc3RhcnQsbGltaXQpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgPGNvZGU+VUNoYXJhY3Rlckl0ZXJhdG9yPC9jb2RlPiBvYmplY3QgZ2l2ZW4gYSAKKyAgICAgKiBzb3VyY2UgU3RyaW5nQnVmZmVyLgorICAgICAqIEBwYXJhbSBzb3VyY2UgYW4gc3RyaW5nIGJ1ZmZlciBvZiBVVEYtMTYgY29kZSB1bml0cworICAgICAqIEByZXR1cm4gVUNoYXJhY3Rlckl0ZXJhdG9yIG9iamVjdAorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBhcmd1bWVudCBpcyBudWxsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVQ2hhcmFjdGVySXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nQnVmZmVyIHNvdXJjZSl7CisgICAgICAgIHJldHVybiBuZXcgUmVwbGFjZWFibGVVQ2hhcmFjdGVySXRlcmF0b3Ioc291cmNlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgPGNvZGU+VUNoYXJhY3Rlckl0ZXJhdG9yPC9jb2RlPiBvYmplY3QgZ2l2ZW4gYSAKKyAgICAgKiBDaGFyYWN0ZXJJdGVyYXRvci4KKyAgICAgKiBAcGFyYW0gc291cmNlIGEgdmFsaWQgQ2hhcmFjdGVySXRlcmF0b3Igb2JqZWN0LgorICAgICAqIEByZXR1cm4gVUNoYXJhY3Rlckl0ZXJhdG9yIG9iamVjdAorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBhcmd1bWVudCBpcyBudWxsCisgICAgICovICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUNoYXJhY3Rlckl0ZXJhdG9yIGdldEluc3RhbmNlKENoYXJhY3Rlckl0ZXJhdG9yIHNvdXJjZSl7CisgICAgICAgIHJldHVybiBuZXcgQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyKHNvdXJjZSk7CisgICAgfQorICAgICAgIAorICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgPGNvZGU+amF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yPC9jb2RlPiBvYmplY3QgZm9yCisgICAgICogdGhlIHVuZGVybHlpbmcgdGV4dCBvZiB0aGlzIGl0ZXJhdG9yLiAgVGhlIHJldHVybmVkIGl0ZXJhdG9yIGlzCisgICAgICogaW5kZXBlbmRlbnQgb2YgdGhpcyBpdGVyYXRvci4KKyAgICAgKiBAcmV0dXJuIGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvciBvYmplY3QgCisgICAgICovCisgICAgcHVibGljIENoYXJhY3Rlckl0ZXJhdG9yIGdldENoYXJhY3Rlckl0ZXJhdG9yKCl7CisgICAgICAgIHJldHVybiBuZXcgVUNoYXJhY3Rlckl0ZXJhdG9yV3JhcHBlcih0aGlzKTsKKyAgICB9ICAgIAorICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY29kZSB1bml0IGF0IHRoZSBjdXJyZW50IGluZGV4LiAgSWYgaW5kZXggaXMgb3V0CisgICAgICogb2YgcmFuZ2UsIHJldHVybnMgRE9ORS4gIEluZGV4IGlzIG5vdCBjaGFuZ2VkLgorICAgICAqIEByZXR1cm4gY3VycmVudCBjb2RlIHVuaXQKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGN1cnJlbnQoKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjb2RlcG9pbnQgYXQgdGhlIGN1cnJlbnQgaW5kZXguCisgICAgICogSWYgdGhlIGN1cnJlbnQgaW5kZXggaXMgaW52YWxpZCwgRE9ORSBpcyByZXR1cm5lZC4KKyAgICAgKiBJZiB0aGUgY3VycmVudCBpbmRleCBwb2ludHMgdG8gYSBsZWFkIHN1cnJvZ2F0ZSwgYW5kIHRoZXJlIGlzIGEgZm9sbG93aW5nCisgICAgICogdHJhaWwgc3Vycm9nYXRlLCB0aGVuIHRoZSBjb2RlIHBvaW50IGlzIHJldHVybmVkLiAgT3RoZXJ3aXNlLCB0aGUgY29kZQorICAgICAqIHVuaXQgYXQgaW5kZXggaXMgcmV0dXJuZWQuICBJbmRleCBpcyBub3QgY2hhbmdlZC4gCisgICAgICogQHJldHVybiBjdXJyZW50IGNvZGVwb2ludAorICAgICAqLworICAgIHB1YmxpYyBpbnQgY3VycmVudENvZGVQb2ludCgpeworICAgICAgICBpbnQgY2ggPSBjdXJyZW50KCk7CisgICAgICAgIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZSgoY2hhciljaCkpeworICAgICAgICAgICAgLy8gYWR2YW5jZSB0aGUgaW5kZXggdG8gZ2V0IHRoZQorICAgICAgICAgICAgLy8gbmV4dCBjb2RlIHBvaW50CisgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgICAgICAvLyBkdWUgdG8gcG9zdCBpbmNyZW1lbnQgc2VtYW50aWNzCisgICAgICAgICAgICAvLyBjdXJyZW50KCkgYWZ0ZXIgbmV4dCgpIGFjdHVhbGx5CisgICAgICAgICAgICAvLyByZXR1cm5zIHRoZSBjaGFyIHdlIHdhbnQKKyAgICAgICAgICAgIGludCBjaDIgPSBjdXJyZW50KCk7CisgICAgICAgICAgICAvLyBjdXJyZW50IHNob3VsZCBuZXZlciBjaGFuZ2UKKyAgICAgICAgICAgIC8vIHRoZSBjdXJyZW50IGluZGV4IHNvIGJhY2sgb2ZmCisgICAgICAgICAgICBwcmV2aW91cygpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZihVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKChjaGFyKWNoMikpeworICAgICAgICAgICAgICAgIC8vIHdlIGZvdW5kIGEgc3Vycm9nYXRlIHBhaXIgCisgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHRoZSBjb2RlcG9pbnQKKyAgICAgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpY2gsKGNoYXIpY2gyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY2g7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgdGV4dAorICAgICAqIEByZXR1cm4gbGVuZ3RoIG9mIHRoZSB0ZXh0CisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBnZXRMZW5ndGgoKTsKKworICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGN1cnJlbnQgaW5kZXggaW4gdGV4dC4KKyAgICAgKiBAcmV0dXJuIGN1cnJlbnQgaW5kZXggaW4gdGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGdldEluZGV4KCk7CisKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIFVURjE2IGNvZGUgdW5pdCBhdCBpbmRleCwgYW5kIGluY3JlbWVudHMgdG8gdGhlIG5leHQKKyAgICAgKiBjb2RlIHVuaXQgKHBvc3QtaW5jcmVtZW50IHNlbWFudGljcykuICBJZiBpbmRleCBpcyBvdXQgb2YKKyAgICAgKiByYW5nZSwgRE9ORSBpcyByZXR1cm5lZCwgYW5kIHRoZSBpdGVyYXRvciBpcyByZXNldCB0byB0aGUgbGltaXQKKyAgICAgKiBvZiB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXh0IFVURjE2IGNvZGUgdW5pdCwgb3IgRE9ORSBpZiB0aGUgaW5kZXggaXMgYXQgdGhlIGxpbWl0CisgICAgICogICAgICAgICBvZiB0aGUgdGV4dC4gIAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgbmV4dCgpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY29kZSBwb2ludCBhdCBpbmRleCwgYW5kIGluY3JlbWVudHMgdG8gdGhlIG5leHQgY29kZQorICAgICAqIHBvaW50IChwb3N0LWluY3JlbWVudCBzZW1hbnRpY3MpLiAgSWYgaW5kZXggZG9lcyBub3QgcG9pbnQgdG8gYQorICAgICAqIHZhbGlkIHN1cnJvZ2F0ZSBwYWlyLCB0aGUgYmVoYXZpb3IgaXMgdGhlIHNhbWUgYXMKKyAgICAgKiA8Y29kZT5uZXh0KCk8Y29kZT4uICBPdGhlcndpc2UgdGhlIGl0ZXJhdG9yIGlzIGluY3JlbWVudGVkIHBhc3QKKyAgICAgKiB0aGUgc3Vycm9nYXRlIHBhaXIsIGFuZCB0aGUgY29kZSBwb2ludCByZXByZXNlbnRlZCBieSB0aGUgcGFpcgorICAgICAqIGlzIHJldHVybmVkLgorICAgICAqIEByZXR1cm4gdGhlIG5leHQgY29kZXBvaW50IGluIHRleHQsIG9yIERPTkUgaWYgdGhlIGluZGV4IGlzIGF0CisgICAgICogICAgICAgICB0aGUgbGltaXQgb2YgdGhlIHRleHQuICAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IG5leHRDb2RlUG9pbnQoKXsKKyAgICAgICAgaW50IGNoMSA9IG5leHQoKTsKKyAgICAgICAgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKChjaGFyKWNoMSkpeworICAgICAgICAgICAgaW50IGNoMiA9IG5leHQoKTsKKyAgICAgICAgICAgIGlmKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoKGNoYXIpY2gyKSl7CisgICAgICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRSYXdTdXBwbGVtZW50YXJ5KChjaGFyKWNoMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpY2gyKTsKKyAgICAgICAgICAgIH1lbHNlIGlmIChjaDIgIT0gRE9ORSkgeworICAgICAgICAgICAgICAgIC8vIHVubWF0Y2hlZCBzdXJyb2dhdGUgc28gYmFjayBvdXQKKyAgICAgICAgICAgICAgICBwcmV2aW91cygpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjaDE7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGVjcmVtZW50IHRvIHRoZSBwb3NpdGlvbiBvZiB0aGUgcHJldmlvdXMgY29kZSB1bml0IGluIHRoZQorICAgICAqIHRleHQsIGFuZCByZXR1cm4gaXQgKHByZS1kZWNyZW1lbnQgc2VtYW50aWNzKS4gIElmIHRoZQorICAgICAqIHJlc3VsdGluZyBpbmRleCBpcyBsZXNzIHRoYW4gMCwgdGhlIGluZGV4IGlzIHJlc2V0IHRvIDAgYW5kCisgICAgICogRE9ORSBpcyByZXR1cm5lZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBwcmV2aW91cyBjb2RlIHVuaXQgaW4gdGhlIHRleHQsIG9yIERPTkUgaWYgdGhlIG5ldworICAgICAqICAgICAgICAgaW5kZXggaXMgYmVmb3JlIHRoZSBzdGFydCBvZiB0aGUgdGV4dC4gIAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgcHJldmlvdXMoKTsKKworICAgIAorICAgIC8qKgorICAgICAqIFJldHJlYXQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBwcmV2aW91cyBjb2RlIHBvaW50IGluIHRoZSB0ZXh0LAorICAgICAqIGFuZCByZXR1cm4gaXQgKHByZS1kZWNyZW1lbnQgc2VtYW50aWNzKS4gIElmIHRoZSBpbmRleCBpcyBub3QKKyAgICAgKiBwcmVjZWVkZWQgYnkgYSB2YWxpZCBzdXJyb2dhdGUgcGFpciwgdGhlIGJlaGF2aW9yIGlzIHRoZSBzYW1lCisgICAgICogYXMgPGNvZGU+cHJldmlvdXMoKTwvY29kZT4uICBPdGhlcndpc2UgdGhlIGl0ZXJhdG9yIGlzCisgICAgICogZGVjcmVtZW50ZWQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBzdXJyb2dhdGUgcGFpciwgYW5kIHRoZSBjb2RlCisgICAgICogcG9pbnQgcmVwcmVzZW50ZWQgYnkgdGhlIHBhaXIgaXMgcmV0dXJuZWQuCisgICAgICogQHJldHVybiB0aGUgcHJldmlvdXMgY29kZSBwb2ludCBpbiB0aGUgdGV4dCwgb3IgRE9ORSBpZiB0aGUgbmV3CisgICAgICogICAgICAgICBpbmRleCBpcyBiZWZvcmUgdGhlIHN0YXJ0IG9mIHRoZSB0ZXh0LiAgCisgICAgICovCisgICAgcHVibGljIGludCBwcmV2aW91c0NvZGVQb2ludCgpeworICAgICAgICBpbnQgY2gxID0gcHJldmlvdXMoKTsKKyAgICAgICAgaWYoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSgoY2hhciljaDEpKXsKKyAgICAgICAgICAgIGludCBjaDIgPSBwcmV2aW91cygpOworICAgICAgICAgICAgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKChjaGFyKWNoMikpeworICAgICAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeSgoY2hhciljaDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKWNoMSk7CisgICAgICAgICAgICB9ZWxzZSBpZiAoY2gyICE9IERPTkUpIHsKKyAgICAgICAgICAgICAgICAvL3VubWF0Y2hlZCB0cmFpbCBzdXJyb2dhdGUgc28gYmFjayBvdXQKKyAgICAgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgICAgICB9ICAgCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNoMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpbmRleCB0byB0aGUgc3BlY2lmaWVkIGluZGV4IGluIHRoZSB0ZXh0LgorICAgICAqIEBwYXJhbSBpbmRleCB0aGUgaW5kZXggd2l0aGluIHRoZSB0ZXh0LiAKKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaXMgdGhyb3duIGlmIGFuIGludmFsaWQgaW5kZXggaXMgCisgICAgICogICAgICAgICAgICBzdXBwbGllZAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHNldEluZGV4KGludCBpbmRleCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjdXJyZW50IGluZGV4IHRvIHRoZSBsaW1pdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUb0xpbWl0KCkgeworCSAgICBzZXRJbmRleChnZXRMZW5ndGgoKSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNldHMgdGhlIGN1cnJlbnQgaW5kZXggdG8gdGhlIHN0YXJ0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRvU3RhcnQoKSB7CisJICAgIHNldEluZGV4KDApOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZpbGxzIHRoZSBidWZmZXIgd2l0aCB0aGUgdW5kZXJseWluZyB0ZXh0IHN0b3JhZ2Ugb2YgdGhlIGl0ZXJhdG9yCisgICAgICogSWYgdGhlIGJ1ZmZlciBjYXBhY2l0eSBpcyBub3QgZW5vdWdoIGEgZXhjZXB0aW9uIGlzIHRocm93bi4gVGhlIGNhcGFjaXR5CisgICAgICogb2YgdGhlIGZpbGwgaW4gYnVmZmVyIHNob3VsZCBhdCBsZWFzdCBiZSBlcXVhbCB0byBsZW5ndGggb2YgdGV4dCBpbiB0aGUgCisgICAgICogaXRlcmF0b3Igb2J0YWluZWQgYnkgY2FsbGluZyA8Y29kZT5nZXRMZW5ndGgoKTwvY29kZSkuCisgICAgICogPGI+VXNhZ2U6PC9iPgorICAgICAqIAorICAgICAqIDxjb2RlPgorICAgICAqIDxwcmU+CisgICAgICogICAgICAgICBVQ2hhY3Rlckl0ZXJhdG9yIGl0ZXIgPSBuZXcgVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHRleHQpOworICAgICAqICAgICAgICAgY2hhcltdIGJ1ZiA9IG5ldyBjaGFyW2l0ZXIuZ2V0TGVuZ3RoKCldOworICAgICAqICAgICAgICAgaXRlci5nZXRUZXh0KGJ1Zik7CisgICAgICogICAgICAgICAKKyAgICAgKiAgICAgICAgIE9SCisgICAgICogICAgICAgICBjaGFyW10gYnVmPSBuZXcgY2hhclsxXTsKKyAgICAgKiAgICAgICAgIGludCBsZW4gPSAwOworICAgICAqICAgICAgICAgZm9yKDs7KXsKKyAgICAgKiAgICAgICAgICAgICB0cnl7CisgICAgICogICAgICAgICAgICAgICAgIGxlbiA9IGl0ZXIuZ2V0VGV4dChidWYpOworICAgICAqICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgKiAgICAgICAgICAgICB9Y2F0Y2goSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKXsKKyAgICAgKiAgICAgICAgICAgICAgICAgYnVmID0gbmV3IGNoYXJbaXRlci5nZXRMZW5ndGgoKV07CisgICAgICogICAgICAgICAgICAgfQorICAgICAqICAgICAgICAgfQorICAgICAqIDwvcHJlPgorICAgICAqIDwvY29kZT4KKyAgICAgKiAgICAgICAgICAgICAKKyAgICAgKiBAcGFyYW0gZmlsbEluIGFuIGFycmF5IG9mIGNoYXJzIHRvIGZpbGwgd2l0aCB0aGUgdW5kZXJseWluZyBVVEYtMTYgY29kZSAKKyAgICAgKiAgICAgICAgIHVuaXRzLgorICAgICAqIEBwYXJhbSBvZmZzZXQgdGhlIHBvc2l0aW9uIHdpdGhpbiB0aGUgYXJyYXkgdG8gc3RhcnQgcHV0dGluZyB0aGUgZGF0YS4KKyAgICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgY29kZSB1bml0cyBhZGRlZCB0byBmaWxsSW4sIGFzIGEgY29udmVuaWVuY2UKKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHMgZXhjZXB0aW9uIGlmIHRoZXJlIGlzIG5vdCBlbm91Z2gKKyAgICAgKiAgICAgICAgICAgIHJvb20gYWZ0ZXIgb2Zmc2V0IGluIHRoZSBhcnJheSwgb3IgaWYgb2Zmc2V0IDwgMC4gIAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZ2V0VGV4dChjaGFyW10gZmlsbEluLCBpbnQgb2Zmc2V0KTsgCisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVycmlkZSBmb3IgPGNvZGU+Z2V0VGV4dChjaGFyW10sIGludCk+L2NvZGU+IHRoYXQgcHJvdmlkZXMKKyAgICAgKiBhbiBvZmZzZXQgb2YgMC4KKyAgICAgKiBAcGFyYW0gZmlsbEluIGFuIGFycmF5IG9mIGNoYXJzIHRvIGZpbGwgd2l0aCB0aGUgdW5kZXJseWluZyBVVEYtMTYgY29kZSAKKyAgICAgKiAgICAgICAgIHVuaXRzLgorICAgICAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBjb2RlIHVuaXRzIGFkZGVkIHRvIGZpbGxJbiwgYXMgYSBjb252ZW5pZW5jZQorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kcyBleGNlcHRpb24gaWYgdGhlcmUgaXMgbm90IGVub3VnaAorICAgICAqICAgICAgICAgICAgcm9vbSBpbiB0aGUgYXJyYXkuICAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldFRleHQoY2hhcltdIGZpbGxJbikgeworCQlyZXR1cm4gZ2V0VGV4dChmaWxsSW4sIDApOworICAgIH0KKyAgICAgICAgIAorICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG1ldGhvZCBmb3IgcmV0dXJuaW5nIHRoZSB1bmRlcmx5aW5nIHRleHQgc3RvcmFnZSBhcyBhcyBzdHJpbmcKKyAgICAgKiBAcmV0dXJuIHRoZSB1bmRlcmx5aW5nIHRleHQgc3RvcmFnZSBpbiB0aGUgaXRlcmF0b3IgYXMgYSBzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFRleHQoKSB7CisJCWNoYXJbXSB0ZXh0ID0gbmV3IGNoYXJbZ2V0TGVuZ3RoKCldOworCQlnZXRUZXh0KHRleHQpOworCQlyZXR1cm4gbmV3IFN0cmluZyh0ZXh0KTsKKyAgICB9CisgICAgICAgCisgICAgLyoqCisgICAgICogTW92ZXMgdGhlIGN1cnJlbnQgcG9zaXRpb24gYnkgdGhlIG51bWJlciBvZiBjb2RlIHVuaXRzCisgICAgICogc3BlY2lmaWVkLCBlaXRoZXIgZm9yd2FyZCBvciBiYWNrd2FyZCBkZXBlbmRpbmcgb24gdGhlIHNpZ24KKyAgICAgKiBvZiBkZWx0YSAocG9zaXRpdmUgb3IgbmVnYXRpdmUgcmVzcGVjdGl2ZWx5KS4gIElmIHRoZSByZXN1bHRpbmcKKyAgICAgKiBpbmRleCB3b3VsZCBiZSBsZXNzIHRoYW4gemVybywgdGhlIGluZGV4IGlzIHNldCB0byB6ZXJvLCBhbmQgaWYKKyAgICAgKiB0aGUgcmVzdWx0aW5nIGluZGV4IHdvdWxkIGJlIGdyZWF0ZXIgdGhhbiBsaW1pdCwgdGhlIGluZGV4IGlzCisgICAgICogc2V0IHRvIGxpbWl0LgorICAgICAqCisgICAgICogQHBhcmFtIGRlbHRhIHRoZSBudW1iZXIgb2YgY29kZSB1bml0cyB0byBtb3ZlIHRoZSBjdXJyZW50CisgICAgICogICAgICAgICAgICAgIGluZGV4LgorICAgICAqIEByZXR1cm4gdGhlIG5ldyBpbmRleC4KKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaXMgdGhyb3duIGlmIGFuIGludmFsaWQgaW5kZXggaXMgCisgICAgICogICAgICAgICAgICBzdXBwbGllZCAgCisgICAgICogCisgICAgICovCisgICAgcHVibGljIGludCBtb3ZlSW5kZXgoaW50IGRlbHRhKSB7CisJCWludCB4ID0gTWF0aC5tYXgoMCwgTWF0aC5taW4oZ2V0SW5kZXgoKSArIGRlbHRhLCBnZXRMZW5ndGgoKSkpOworCQlzZXRJbmRleCh4KTsKKwkJcmV0dXJuIHg7CisgICAgfQorCisgICAgLyoqCisgICAgICogTW92ZXMgdGhlIGN1cnJlbnQgcG9zaXRpb24gYnkgdGhlIG51bWJlciBvZiBjb2RlIHBvaW50cworICAgICAqIHNwZWNpZmllZCwgZWl0aGVyIGZvcndhcmQgb3IgYmFja3dhcmQgZGVwZW5kaW5nIG9uIHRoZSBzaWduIG9mCisgICAgICogZGVsdGEgKHBvc2l0aXZlIG9yIG5lZ2F0aXZlIHJlc3BlY3RpdmVseSkuIElmIHRoZSBjdXJyZW50IGluZGV4CisgICAgICogaXMgYXQgYSB0cmFpbCBzdXJyb2dhdGUgdGhlbiB0aGUgZmlyc3QgYWRqdXN0bWVudCBpcyBieSBjb2RlCisgICAgICogdW5pdCwgYW5kIHRoZSByZW1haW5pbmcgYWRqdXN0bWVudHMgYXJlIGJ5IGNvZGUgcG9pbnRzLiAgSWYgdGhlCisgICAgICogcmVzdWx0aW5nIGluZGV4IHdvdWxkIGJlIGxlc3MgdGhhbiB6ZXJvLCB0aGUgaW5kZXggaXMgc2V0IHRvCisgICAgICogemVybywgYW5kIGlmIHRoZSByZXN1bHRpbmcgaW5kZXggd291bGQgYmUgZ3JlYXRlciB0aGFuIGxpbWl0LAorICAgICAqIHRoZSBpbmRleCBpcyBzZXQgdG8gbGltaXQuCisgICAgICogQHBhcmFtIGRlbHRhIHRoZSBudW1iZXIgb2YgY29kZSB1bml0cyB0byBtb3ZlIHRoZSBjdXJyZW50IGluZGV4LgorICAgICAqIEByZXR1cm4gdGhlIG5ldyBpbmRleCAgCisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGlzIHRocm93biBpZiBhbiBpbnZhbGlkIGRlbHRhIGlzIAorICAgICAqICAgICAgICAgICAgc3VwcGxpZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IG1vdmVDb2RlUG9pbnRJbmRleChpbnQgZGVsdGEpeworICAgICAgICBpZihkZWx0YT4wKXsKKyAgICAgICAgICAgIHdoaWxlKGRlbHRhPjAgJiYgbmV4dENvZGVQb2ludCgpICE9IERPTkUpe2RlbHRhLS07fQorICAgICAgICB9ZWxzZXsKKwkgICAgICAgIHdoaWxlKGRlbHRhPDAgJiYgcHJldmlvdXNDb2RlUG9pbnQoKSAhPSBET05FKXtkZWx0YSsrO30KKyAgICAgICAgfQorICAgICAgICBpZihkZWx0YSE9MCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgICAgCisgICAgICAgIHJldHVybiBnZXRJbmRleCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBjb3B5IG9mIHRoaXMgaXRlcmF0b3IsIGluZGVwZW5kZW50IGZyb20gb3RoZXIgaXRlcmF0b3JzLgorICAgICAqIElmIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBjbG9uZSB0aGUgaXRlcmF0b3IsIHJldHVybnMgbnVsbC4KKyAgICAgKiBAcmV0dXJuIGNvcHkgb2YgdGhpcyBpdGVyYXRvcgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKSB0aHJvd3MgQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb257CisJICAgIHJldHVybiBzdXBlci5jbG9uZSgpOworICAgIH0gICAKKyAgICAKK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVUNoYXJhY3Rlckl0ZXJhdG9yV3JhcHBlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVUNoYXJhY3Rlckl0ZXJhdG9yV3JhcHBlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0NDU5N2MKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyLmphdmEKQEAgLTAsMCArMSwxNTEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC91c3IvY3ZzL2ljdTRqL2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVUNoYXJhY3Rlckl0ZXJhdG9yLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDYvMjAgMDE6MTg6MDcgJCAKKyAqICRSZXZpc2lvbjogMS4xICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CisKKy8qKgorICogVGhpcyBjbGFzcyBpcyBhIHdyYXBwZXIgYXJvdW5kIFVDaGFyYWN0ZXJJdGVyYXRvciBhbmQgaW1wbGVtZW50cyB0aGUgCisgKiBDaGFyYWN0ZXJJdGVyYXRvciBwcm90b2NvbAorICogQGF1dGhvciByYW0KKyAqLworcHVibGljIGNsYXNzIFVDaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXIgaW1wbGVtZW50cyBDaGFyYWN0ZXJJdGVyYXRvcnsKKyAgICAKKyAgICBwdWJsaWMgVUNoYXJhY3Rlckl0ZXJhdG9yV3JhcHBlcihVQ2hhcmFjdGVySXRlcmF0b3IgaXRlcil7CisgICAgICAgIHRoaXMuaXRlcmF0b3IgPSBpdGVyOworICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IDA7CisgICAgICAgIHRoaXMubGVuZ3RoID0gaXRlci5nZXRMZW5ndGgoKTsKKyAgICAgICAgLy9VQ2hhcmFjdGVySXRlcmF0b3IgYWx3YXlzIGl0ZXJhdGVzIGZyb20gMCAtIGxlbmd0aAorICAgICAgICB0aGlzLmJlZ2luSW5kZXggPSAwOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyYXRvcjsKKyAgICBwcml2YXRlIGludCBjdXJyZW50SW5kZXg7CisgICAgcHJpdmF0ZSBpbnQgbGVuZ3RoOworICAgIHByaXZhdGUgaW50IGJlZ2luSW5kZXg7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBwb3NpdGlvbiB0byBnZXRCZWdpbkluZGV4KCkgYW5kIHJldHVybnMgdGhlIGNoYXJhY3RlciBhdCB0aGF0CisgICAgICogcG9zaXRpb24uCisgICAgICogQHJldHVybiB0aGUgZmlyc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0LCBvciBET05FIGlmIHRoZSB0ZXh0IGlzIGVtcHR5CisgICAgICogQHNlZSAjZ2V0QmVnaW5JbmRleCgpCisgICAgICovCisgICAgcHVibGljIGNoYXIgZmlyc3QoKXsKKyAgICAgICAgaXRlcmF0b3Iuc2V0SW5kZXgoYmVnaW5JbmRleCk7CisgICAgICAgIHJldHVybiAoY2hhcilpdGVyYXRvci5jdXJyZW50KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgcG9zaXRpb24gdG8gZ2V0RW5kSW5kZXgoKS0xIChnZXRFbmRJbmRleCgpIGlmIHRoZSB0ZXh0IGlzIGVtcHR5KQorICAgICAqIGFuZCByZXR1cm5zIHRoZSBjaGFyYWN0ZXIgYXQgdGhhdCBwb3NpdGlvbi4KKyAgICAgKiBAcmV0dXJuIHRoZSBsYXN0IGNoYXJhY3RlciBpbiB0aGUgdGV4dCwgb3IgRE9ORSBpZiB0aGUgdGV4dCBpcyBlbXB0eQorICAgICAqIEBzZWUgI2dldEVuZEluZGV4KCkKKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBsYXN0KCl7CisgICAgICAgIGl0ZXJhdG9yLnNldEluZGV4KGxlbmd0aC0xKTsKKyAgICAgICAgcmV0dXJuIChjaGFyKWl0ZXJhdG9yLmN1cnJlbnQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBjaGFyYWN0ZXIgYXQgdGhlIGN1cnJlbnQgcG9zaXRpb24gKGFzIHJldHVybmVkIGJ5IGdldEluZGV4KCkpLgorICAgICAqIEByZXR1cm4gdGhlIGNoYXJhY3RlciBhdCB0aGUgY3VycmVudCBwb3NpdGlvbiBvciBET05FIGlmIHRoZSBjdXJyZW50CisgICAgICogcG9zaXRpb24gaXMgb2ZmIHRoZSBlbmQgb2YgdGhlIHRleHQuCisgICAgICogQHNlZSAjZ2V0SW5kZXgoKQorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGN1cnJlbnQoKXsKKyAgICAgICAgaXRlcmF0b3Iuc2V0SW5kZXgoY3VycmVudEluZGV4KTsKKyAgICAgICAgcmV0dXJuIChjaGFyKSBpdGVyYXRvci5jdXJyZW50KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW5jcmVtZW50cyB0aGUgaXRlcmF0b3IncyBpbmRleCBieSBvbmUgYW5kIHJldHVybnMgdGhlIGNoYXJhY3RlcgorICAgICAqIGF0IHRoZSBuZXcgaW5kZXguICBJZiB0aGUgcmVzdWx0aW5nIGluZGV4IGlzIGdyZWF0ZXIgb3IgZXF1YWwKKyAgICAgKiB0byBnZXRFbmRJbmRleCgpLCB0aGUgY3VycmVudCBpbmRleCBpcyByZXNldCB0byBnZXRFbmRJbmRleCgpIGFuZAorICAgICAqIGEgdmFsdWUgb2YgRE9ORSBpcyByZXR1cm5lZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBjaGFyYWN0ZXIgYXQgdGhlIG5ldyBwb3NpdGlvbiBvciBET05FIGlmIHRoZSBuZXcKKyAgICAgKiBwb3NpdGlvbiBpcyBvZmYgdGhlIGVuZCBvZiB0aGUgdGV4dCByYW5nZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBuZXh0KCl7CisgICAgICAgIC8vcHJlLWluY3JlbWVudAorICAgICAgICBpdGVyYXRvci5zZXRJbmRleCgrK2N1cnJlbnRJbmRleCk7CisgICAgICAgIHJldHVybiAoY2hhcikgaXRlcmF0b3IuY3VycmVudCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERlY3JlbWVudHMgdGhlIGl0ZXJhdG9yJ3MgaW5kZXggYnkgb25lIGFuZCByZXR1cm5zIHRoZSBjaGFyYWN0ZXIKKyAgICAgKiBhdCB0aGUgbmV3IGluZGV4LiBJZiB0aGUgY3VycmVudCBpbmRleCBpcyBnZXRCZWdpbkluZGV4KCksIHRoZSBpbmRleAorICAgICAqIHJlbWFpbnMgYXQgZ2V0QmVnaW5JbmRleCgpIGFuZCBhIHZhbHVlIG9mIERPTkUgaXMgcmV0dXJuZWQuCisgICAgICogQHJldHVybiB0aGUgY2hhcmFjdGVyIGF0IHRoZSBuZXcgcG9zaXRpb24gb3IgRE9ORSBpZiB0aGUgY3VycmVudAorICAgICAqIHBvc2l0aW9uIGlzIGVxdWFsIHRvIGdldEJlZ2luSW5kZXgoKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBwcmV2aW91cygpeworICAgICAgICAvL3ByZS1kZWNyZW1lbnQKKyAgICAgICAgaXRlcmF0b3Iuc2V0SW5kZXgoLS1jdXJyZW50SW5kZXgpOworICAgICAgICByZXR1cm4gKGNoYXIpIGl0ZXJhdG9yLmN1cnJlbnQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBwb3NpdGlvbiB0byB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uIGluIHRoZSB0ZXh0IGFuZCByZXR1cm5zIHRoYXQKKyAgICAgKiBjaGFyYWN0ZXIuCisgICAgICogQHBhcmFtIHBvc2l0aW9uIHRoZSBwb3NpdGlvbiB3aXRoaW4gdGhlIHRleHQuICBWYWxpZCB2YWx1ZXMgcmFuZ2UgZnJvbQorICAgICAqIGdldEJlZ2luSW5kZXgoKSB0byBnZXRFbmRJbmRleCgpLiAgQW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlzIHRocm93bgorICAgICAqIGlmIGFuIGludmFsaWQgdmFsdWUgaXMgc3VwcGxpZWQuCisgICAgICogQHJldHVybiB0aGUgY2hhcmFjdGVyIGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gb3IgRE9ORSBpZiB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uIGlzIGVxdWFsIHRvIGdldEVuZEluZGV4KCkKKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBzZXRJbmRleChpbnQgcG9zaXRpb24peworICAgICAgICBjdXJyZW50SW5kZXg9cG9zaXRpb247CisgICAgICAgIHJldHVybiAoY2hhcikgaXRlcmF0b3IuY3VycmVudCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHN0YXJ0IGluZGV4IG9mIHRoZSB0ZXh0LgorICAgICAqIEByZXR1cm4gdGhlIGluZGV4IGF0IHdoaWNoIHRoZSB0ZXh0IGJlZ2lucy4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEJlZ2luSW5kZXgoKXsKKyAgICAgICAgcmV0dXJuIGJlZ2luSW5kZXg7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgZW5kIGluZGV4IG9mIHRoZSB0ZXh0LiAgVGhpcyBpbmRleCBpcyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0CisgICAgICogY2hhcmFjdGVyIGZvbGxvd2luZyB0aGUgZW5kIG9mIHRoZSB0ZXh0LgorICAgICAqIEByZXR1cm4gdGhlIGluZGV4IGFmdGVyIHRoZSBsYXN0IGNoYXJhY3RlciBpbiB0aGUgdGV4dAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0RW5kSW5kZXgoKXsKKyAgICAgICAgcmV0dXJuIGxlbmd0aDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGluZGV4LgorICAgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgaW5kZXguCisgICAgICovCisgICAgcHVibGljIGludCBnZXRJbmRleCgpeworICAgICAgICByZXR1cm4gY3VycmVudEluZGV4OworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIGNvcHkgb2YgdGhpcyBpdGVyYXRvcgorICAgICAqIEByZXR1cm4gQSBjb3B5IG9mIHRoaXMKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCl7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyIHJlc3VsdCA9IChVQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyKSBzdXBlci5jbG9uZSgpOworICAgICAgICAgICAgcmVzdWx0Lml0ZXJhdG9yID0gKFVDaGFyYWN0ZXJJdGVyYXRvcil0aGlzLml0ZXJhdG9yLmNsb25lKCk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9IGNhdGNoIChDbG9uZU5vdFN1cHBvcnRlZEV4Y2VwdGlvbiBlKSB7ICAgICAgCisgICAgICAgICAgICByZXR1cm4gbnVsbDsgLy8gb25seSBpbnZva2VkIGlmIGJhZCB1bmRlcmx5aW5nIGNoYXJhY3RlciBpdGVyYXRvcgorICAgICAgICB9CisgICAgfSAgIAorCit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VDaGFyYWN0ZXJQcm9wZXJ0eS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVUNoYXJhY3RlclByb3BlcnR5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWU5MWJhNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VDaGFyYWN0ZXJQcm9wZXJ0eS5qYXZhCkBAIC0wLDAgKzEsMjAwMCBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICRTb3VyY2U6IAorKiAgICAgICAgIC91c3IvY3ZzL2ljdTRqL2ljdTRqL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VDaGFyYWN0ZXJQcm9wZXJ0eURCLmphdmEgJCAKKyogJERhdGU6IDIwMDIvMDcvMzAgMDI6MzI6NTUgJCAKKyogJFJldmlzaW9uOiAxLjE1ICQKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5CdWZmZXJlZElucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlZlcnNpb25JbmZvOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlckNhdGVnb3J5OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVByb3BlcnR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yOworCisvKioKKyogPHA+SW50ZXJuYWwgY2xhc3MgdXNlZCBmb3IgVW5pY29kZSBjaGFyYWN0ZXIgcHJvcGVydHkgZGF0YWJhc2UuPC9wPgorKiA8cD5UaGlzIGNsYXNzZXMgc3RvcmUgYmluYXJ5IGRhdGEgcmVhZCBmcm9tIHVwcm9wcy5pY3UuIAorKiBJdCBkb2VzIG5vdCBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIHBhcnNlIHRoZSBkYXRhIGludG8gbW9yZSBoaWdoLWxldmVsIAorKiBpbmZvcm1hdGlvbi4gSXQgb25seSByZXR1cm5zIGJ5dGVzIG9mIGluZm9ybWF0aW9uIHdoZW4gcmVxdWlyZWQuPC9wPgorKiA8cD5EdWUgdG8gdGhlIGZvcm0gbW9zdCBjb21tb25seSB1c2VkIGZvciByZXRyaWV2YWwsIGFycmF5IG9mIGNoYXIgaXMgdXNlZAorKiB0byBzdG9yZSB0aGUgYmluYXJ5IGRhdGEuPC9wPgorKiA8cD5VQ2hhcmFjdGVyUHJvcGVydHlEQiBhbHNvIGNvbnRhaW5zIGluZm9ybWF0aW9uIG9uIGFjY2Vzc2luZyBpbmRleGVzIHRvIAorKiBzaWduaWZpY2FudCBwb2ludHMgaW4gdGhlIGJpbmFyeSBkYXRhLjwvcD4KKyogPHA+UmVzcG9uc2liaWxpdHkgZm9yIG1vbGRpbmcgdGhlIGJpbmFyeSBkYXRhIGludG8gbW9yZSBtZWFuaW5nIGZvcm0gbGllcyBvbiAKKyogPGEgaHJlZj1VQ2hhcmFjdGVyLmh0bWw+VUNoYXJhY3RlcjwvYT4uPC9wPgorKiBAYXV0aG9yIFN5biBXZWUgUXVlaworKiBAc2luY2UgcmVsZWFzZSAyLjEsIGZlYnJ1YXJ5IDFzdCAyMDAyCisqIEBkcmFmdCAyLjEKKyovCisKK3B1YmxpYyBmaW5hbCBjbGFzcyBVQ2hhcmFjdGVyUHJvcGVydHkgaW1wbGVtZW50cyBUcmllLkRhdGFNYW5pcHVsYXRlCit7CisJLy8gcHVibGljIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCQorCS8qKgorICAgICogVHJpZSBkYXRhCisgICAgKi8KKyAgICBwdWJsaWMgQ2hhclRyaWUgbV90cmllXzsgICAgCisgICAgLyoqCisgICAgKiBDaGFyYWN0ZXIgcHJvcGVydHkgdGFibGUKKyAgICAqLworICAgIHB1YmxpYyBpbnQgbV9wcm9wZXJ0eV9bXTsKKyAgICAvKioKKyAgICAqIFVuaWNvZGUgdmVyc2lvbgorICAgICovCisgICAgcHVibGljIFZlcnNpb25JbmZvIG1fdW5pY29kZVZlcnNpb25fOworICAgIC8qKgorICAgICAqIEV4Y2VwdGlvbiBpbmRpY2F0b3IgZm9yIHVwcGVyY2FzZSB0eXBlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVhDX1VQUEVSQ0FTRV8gPSAwOworICAgIC8qKgorICAgICAqIEV4Y2VwdGlvbiBpbmRpY2F0b3IgZm9yIGxvd2VyY2FzZSB0eXBlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVhDX0xPV0VSQ0FTRV8gPSAxOworICAgIC8qKgorICAgICAqIEV4Y2VwdGlvbiBpbmRpY2F0b3IgZm9yIHRpdGxlY2FzZSB0eXBlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVhDX1RJVExFQ0FTRV8gPSAyOworICAgIC8qKgorICAgICAqIEV4Y2VwdGlvbiBpbmRpY2F0b3IgZm9yIGRpZ2l0IHR5cGUKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFWENfVU5VU0VEXyA9IDM7CisgICAgLyoqCisgICAgICogRXhjZXB0aW9uIGluZGljYXRvciBmb3IgbnVtZXJpYyB0eXBlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVhDX05VTUVSSUNfVkFMVUVfID0gNDsKKyAgICAvKioKKyAgICAgKiBFeGNlcHRpb24gaW5kaWNhdG9yIGZvciBkZW5vbWluYXRvciB0eXBlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVhDX0RFTk9NSU5BVE9SX1ZBTFVFXyA9IDU7CisgICAgLyoqCisgICAgICogRXhjZXB0aW9uIGluZGljYXRvciBmb3IgbWlycm9yIHR5cGUKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFWENfTUlSUk9SX01BUFBJTkdfID0gNjsKKyAgICAvKioKKyAgICAgKiBFeGNlcHRpb24gaW5kaWNhdG9yIGZvciBzcGVjaWFsIGNhc2luZyB0eXBlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVhDX1NQRUNJQUxfQ0FTSU5HXyA9IDc7CisgICAgLyoqCisgICAgICogRXhjZXB0aW9uIGluZGljYXRvciBmb3IgY2FzZSBmb2xkaW5nIHR5cGUKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFWENfQ0FTRV9GT0xESU5HXyA9IDg7CisgICAgLyoqCisgICAgICogRVhDX0NPTUJJTklOR19DTEFTU18gaXMgbm90IGZvdW5kIGluIElDVS4KKyAgICAgKiBVc2VkIHRvIHJldHJpZXZlIHRoZSBjb21iaW5pbmcgY2xhc3Mgb2YgdGhlIGNoYXJhY3RlciBpbiB0aGUgZXhjZXB0aW9uCisgICAgICogdmFsdWUKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFWENfQ09NQklOSU5HX0NMQVNTXyA9IDk7CisgICAgLyoqCisgICAgICogTm9uIG51bWVyaWMgdHlwZQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5PTl9OVU1FUklDX1RZUEVfID0gMDsKKyAgICAvKioKKyAgICAgKiBOdW1lcmljIHR5cGUgZm9yIGRlY2ltYWwgZGlnaXRzCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgREVDSU1BTF9ESUdJVF9OVU1FUklDX1RZUEVfID0gMTsKKyAgICAvKioKKyAgICAgKiBOdW1lcmljIHR5cGUgZm9yIGRpZ2l0cworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERJR0lUX05VTUVSSUNfVFlQRV8gPSAyOworICAgIC8qKgorICAgICAqIE51bWVyaWMgdHlwZSBmb3Igbm9uIGRpZ2l0cyBudW1iZXJzCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTk9OX0RJR0lUX05VTUVSSUNfVFlQRV8gPSAzOworICAgIC8qKgorICAgICAqIE1heGltdW0gbnVtYmVyIG9mIGV4cGFuc2lvbiBmb3IgYSBjYXNlIG1hcHBpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNQVhfQ0FTRV9NQVBfU0laRSA9IDEwOyAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAvKioKKyAgICAqIFR1cmtpc2ggSVNPIDYzOSAyIGNoYXJhY3RlciBjb2RlCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBUVVJLSVNIXyA9ICJ0ciI7ICAKKyAgICAvKioKKyAgICAqIEF6ZXJiYWlqYW5pIElTTyA2MzkgMiBjaGFyYWN0ZXIgY29kZQorICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQVpFUkJBSUpBTklfID0gImF6IjsgICAgCisgICAgLyoqCisgICAgKiBMaXRodWFuaWFuIElTTyA2MzkgMiBjaGFyYWN0ZXIgY29kZQorICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgTElUSFVBTklBTl8gPSAibHQiOyAgICAgICAgICAgICAgICAgIAorICAgIC8qKgorICAgICogTGF0aW4gY2FwaXRhbCBsZXR0ZXIgaSB3aXRoIGRvdCBhYm92ZQorICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2hhciBMQVRJTl9DQVBJVEFMX0xFVFRFUl9JX1dJVEhfRE9UX0FCT1ZFXyA9IDB4MTMwOworICAgIC8qKgorICAgICogTGF0aW4gc21hbGwgbGV0dGVyIGkgd2l0aCBkb3QgYWJvdmUKKyAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNoYXIgTEFUSU5fU01BTExfTEVUVEVSX0RPVExFU1NfSV8gPSAweDEzMTsKKyAgICAvKioKKyAgICAqIExhdGluIGxvd2VyY2FzZSBpCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNoYXIgTEFUSU5fU01BTExfTEVUVEVSX0lfID0gMHg2OTsKKyAgICAKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgIC8qKgorICAgICogRXh0cmFjdHMgb3V0IHRoZSB0eXBlIHZhbHVlIGZyb20gcHJvcGVydHkuCisgICAgKiBGb3IgdXNlIGluIGVudW1lcmF0aW9uLgorICAgICogQHBhcmFtIHZhbHVlIG9mIHRyaWUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIGEgY29kZXBvaW50CisgICAgKi8KKyAgICBwdWJsaWMgaW50IGV4dHJhY3QoaW50IHZhbHVlKQorICAgIHsgICAgCisgICAgICAgIC8vIGFjY2VzcyB0aGUgZ2VuZXJhbCBjYXRlZ29yeSBmcm9tIHRoZSAzMi1iaXQgcHJvcGVydGllcywgYW5kIHRob3NlIAorICAgICAgICAvLyBmcm9tIHRoZSAxNi1iaXQgdHJpZSB2YWx1ZSAgICAKKyAgICAgICAgcmV0dXJuIGdldFByb3BUeXBlKG1fcHJvcGVydHlfW3ZhbHVlXSk7CisgICAgfQorICAgICAgCisgICAgLyoqCisgICAgKiBDYWxsZWQgYnkgY29tLmlibS5pY3UudXRpbC5UcmllIHRvIGV4dHJhY3QgZnJvbSBhIGxlYWQgc3Vycm9nYXRlJ3MgCisgICAgKiBkYXRhIHRoZSBpbmRleCBhcnJheSBvZmZzZXQgb2YgdGhlIGluZGV4ZXMgZm9yIHRoYXQgbGVhZCBzdXJyb2dhdGUuCisgICAgKiBAcGFyYW0gcHJvcGVydHkgZGF0YSB2YWx1ZSBmb3IgYSBzdXJyb2dhdGUgZnJvbSB0aGUgdHJpZSwgaW5jbHVkaW5nIHRoZQorICAgICogICAgICAgIGZvbGRpbmcgb2Zmc2V0CisgICAgKiBAcmV0dXJuIGRhdGEgb2Zmc2V0IG9yIDAgaWYgdGhlcmUgaXMgbm8gZGF0YSBmb3IgdGhlIGxlYWQgc3Vycm9nYXRlCisgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEZvbGRpbmdPZmZzZXQoaW50IHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKCh2YWx1ZSAmIFNVUFBMRU1FTlRBUllfRk9MRF9JTkRJQ0FUT1JfTUFTS18pICE9IDApIHsKKyAgICAgICAgICAgIHJldHVybiAodmFsdWUgJiBTVVBQTEVNRU5UQVJZX0ZPTERfT0ZGU0VUX01BU0tfKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogR2V0cyB0aGUgcHJvcGVydHkgdmFsdWUgYXQgdGhlIGluZGV4CisgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB3aG9zZSBwcm9wZXJ0eSB2YWx1ZSBpcyB0byBiZSByZXRyaWV2ZWQKKyAgICAqIEByZXR1cm4gcHJvcGVydHkgdmFsdWUgb2YgY29kZSBwb2ludAorICAgICovCisgICAgcHVibGljIGludCBnZXRQcm9wZXJ0eShpbnQgY2gpCisgICAgeworICAgICAgICByZXR1cm4gbV9wcm9wZXJ0eV9bbV90cmllXy5nZXRDb2RlUG9pbnRWYWx1ZShjaCldOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIFJldHVybnMgYSB2YWx1ZSBpbmRpY2F0aW5nIGEgY2hhcmFjdGVyIGNhdGVnb3J5IGZyb20gdGhlIGFyZ3VtZW50IHByb3BlcnR5CisgICAgKiB2YWx1ZQorICAgICogQHBhcmFtIHVuaWNvZGUgY2hhcmFjdGVyIHByb3BlcnR5CisgICAgKiBAcmV0dXJuIGNhdGVnb3J5CisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRQcm9wVHlwZShpbnQgcHJvcCkKKyAgICB7CisgICAgICAgIC8vIFNpbmNlIGNoYXJhY3RlciBpbmZvcm1hdGlvbiBkYXRhIGFyZSBwYWNrZWQgdG9nZXRoZXIuCisJICAgIC8vIFRoaXMgaXMgdGhlIGNhdGVnb3J5IG1hc2sgZm9yIGdldHRpbmcgdGhlIGNhdGVnb3J5IGluZm9ybWF0aW9uCisgICAgICAgIHJldHVybiBwcm9wICYgTEFTVF81X0JJVF9NQVNLXzsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBhcmd1bWVudCBwcm9wcyBpbmRpY2F0ZXMgdGhhdCB0aGUgZXhjZXB0aW9uIGJsb2NrIGhhcyAKKyAgICAqIHRvIGJlIGFjY2Vzc2VkIGZvciBkYXRhCisgICAgKiBAcGFyYW0gcHJvcCBwcm9wZXJ0eSB2YWx1ZQorICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgaXMgYW4gZXhjZXB0aW9uIGluZGljYXRvciBmYWxzZSBvdGhlcndpc2UKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0V4Y2VwdGlvbkluZGljYXRvcihpbnQgcHJvcCkKKyAgICB7CisgICAgICAgIHJldHVybiAocHJvcCAmIEVYQ0VQVElPTl9NQVNLXykgIT0gMDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0dGluZyB0aGUgbnVtYmVyaWMgdHlwZQorICAgICAqIEBwYXJhbSBwcm9wIHByb3BlcnR5IHZhbHVlCisgICAgICogQHJldHVybiBudW1iZXIgdHlwZSBpbiBwcm9wCisgICAgICovCisgICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldE51bWVyaWNUeXBlKGludCBwcm9wKQorICAgICB7CisgICAgIAlyZXR1cm4gKHByb3AgPj4gTlVNRVJJQ19UWVBFX1NISUZUXykgJiBOVU1FUklDX1RZUEVfTUFTS187CisgICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIEdldHRpbmcgdGhlIHNpZ25lZCBudW1lcmljIHZhbHVlIG9mIGEgY2hhcmFjdGVyIGVtYmVkZGVkIGluIHRoZSBwcm9wZXJ0eQorICAgICogYXJndW1lbnQKKyAgICAqIEBwYXJhbSBwcm9wIHRoZSBjaGFyYWN0ZXIKKyAgICAqIEByZXR1cm4gc2lnbmVkIG51bWJlcmljIHZhbHVlCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRTaWduZWRWYWx1ZShpbnQgcHJvcCkKKyAgICB7CisgICAgICAgIHJldHVybiAocHJvcCA+PiBWQUxVRV9TSElGVF8pOworICAgIH0KKyAgICAgIAorICAgIC8qKgorICAgICogR2V0dGluZyB0aGUgZXhjZXB0aW9uIGluZGV4IGZvciBhcmd1bWVudCBwcm9wZXJ0eQorICAgICogQHBhcmFtIHByb3AgY2hhcmFjdGVyIHByb3BlcnR5IAorICAgICogQHJldHVybiBleGNlcHRpb24gaW5kZXggCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRFeGNlcHRpb25JbmRleChpbnQgcHJvcCkKKyAgICB7CisgICAgICAgIHJldHVybiAocHJvcCA+PiBWQUxVRV9TSElGVF8pICYgVU5TSUdORURfVkFMVUVfTUFTS19BRlRFUl9TSElGVF87CisgICAgfQorICAgICAgCisgICAgLyoqCisgICAgKiBDaGVja2luZyBpZiBwcm9wZXJ0eSBpbmRpY2F0ZXMgbWlycm9yIGVsZW1lbnQKKyAgICAqIEBwYXJhbSBwcm9wIHByb3BlcnR5IHZhbHVlCisgICAgKiBAcmV0dXJuIHRydWUgaWYgbWlycm9yIGluZGljYXRvciBpcyBzZXQsIGZhbHNlIG90aGVyd2lzZQorICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzTWlycm9yZWQoaW50IHByb3ApCisgICAgeworICAgICAgICByZXR1cm4gKHByb3AgJiBNSVJST1JfTUFTS18pICE9IDA7CisgICAgfQorICAgICAgCisgICAgLyoqCisgICAgKiBHZXR0aW5nIHRoZSBkaXJlY3Rpb24gZGF0YSBpbiB0aGUgcHJvcGVydHkgdmFsdWUKKyAgICAqIEBwYXJhbSBwcm9wIHByb3BlcnR5IHZhbHVlCisgICAgKiBAcmV0dXJuIGRpcmVjdGlvbiB2YWx1ZSBpbiBwcm9wZXJ0eQorICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0RGlyZWN0aW9uKGludCBwcm9wKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChwcm9wID4+IEJJRElfU0hJRlRfKSAmIEJJRElfTUFTS19BRlRFUl9TSElGVF87CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogR2V0dGluZyB0aGUgdW5zaWduZWQgbnVtZXJpYyB2YWx1ZSBvZiBhIGNoYXJhY3RlciBlbWJlZGRlZCBpbiB0aGUgcHJvcGVydHkKKyAgICAqIGFyZ3VtZW50CisgICAgKiBAcGFyYW0gcHJvcCB0aGUgY2hhcmFjdGVyCisgICAgKiBAcmV0dXJuIHVuc2lnbmVkIG51bWJlcmljIHZhbHVlCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRVbnNpZ25lZFZhbHVlKGludCBwcm9wKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChwcm9wID4+IFZBTFVFX1NISUZUXykgJiBVTlNJR05FRF9WQUxVRV9NQVNLX0FGVEVSX1NISUZUXzsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBleGNlcHRpb24gdmFsdWUgcGFzc2VkIGluIGhhcyB0aGUga2luZCBvZiBpbmZvcm1hdGlvbgorICAgICogd2hpY2ggdGhlIGluZGljYXRvciB3YW50cywgZS5nIGlmIHRoZSBleGNlcHRpb24gdmFsdWUgY29udGFpbnMgdGhlIGRpZ2l0CisgICAgKiB2YWx1ZSBvZiB0aGUgY2hhcmFjdGVyCisgICAgKiBAcGFyYW0gaW5kZXggZXhjZXB0aW9uIGluZGV4CisgICAgKiBAcGFyYW0gaW5kaWNhdG9yIHR5cGUgaW5kaWNhdG9yCisgICAgKiBAcmV0dXJuIHRydWUgaWYgdHlwZSB2YWx1ZSBleGlzdAorICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaGFzRXhjZXB0aW9uVmFsdWUoaW50IGluZGV4LCBpbnQgaW5kaWNhdG9yKSAKKyAgICB7CisgICAgICAgIHJldHVybiAobV9leGNlcHRpb25fW2luZGV4XSAmICgxIDw8IGluZGljYXRvcikpICE9IDA7CisgICAgfQorICAgICAgCisgICAgLyoqCisgICAgKiBHZXRzIHRoZSBleGNlcHRpb24gdmFsdWUgYXQgdGhlIGluZGV4LCBhc3N1bWluZyB0aGF0IGRhdGEgdHlwZSBpcyAKKyAgICAqIGF2YWlsYWJsZS4gUmVzdWx0IGlzIHVuZGVmaW5lZCBpZiBkYXRhIGlzIG5vdCBhdmFpbGFibGUuIFVzZSAKKyAgICAqIGhhc0V4Y2VwdGlvblZhbHVlKCkgdG8gZGV0ZXJtaW5lIGRhdGEncyBhdmFpbGFiaWxpdHkuCisgICAgKiBAcGFyYW0gaW5kZXggCisgICAgKiBAcGFyYW0gZXhjZXB0aW9uIGRhdGEgdHlwZQorICAgICogQHJldHVybiBleGNlcHRpb24gZGF0YSB0eXBlIHZhbHVlIGF0IGluZGV4CisgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEV4Y2VwdGlvbihpbnQgaW5kZXgsIGludCBldHlwZSkKKyAgICB7CisgICAgICAgIC8vIGNvbnRhaW5lZCBpbiBleGNlcHRpb24gZGF0YQorICAgICAgICBpbnQgZXZhbHVlID0gbV9leGNlcHRpb25fW2luZGV4XTsKKyAgICAgICAgCisgICAgICAgIHN3aXRjaCAoZXR5cGUpCisgICAgICAgIHsKKyAgICAgICAgY2FzZSBFWENfQ09NQklOSU5HX0NMQVNTXyA6CisgICAgICAgICAgICByZXR1cm4gZXZhbHVlOworICAgICAgICBkZWZhdWx0IDoKKyAgICAgICAgICAgIGluZGV4ICsrOworICAgICAgICAgICAgLy8gY29udGFpbmVkIGluIHRoZSBleGNlcHRpb24gZGlnaXQgYWRkcmVzcworICAgICAgICAgICAgaW5kZXggPSBhZGRFeGNlcHRpb25PZmZzZXQoZXZhbHVlLCBldHlwZSwgaW5kZXgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBtX2V4Y2VwdGlvbl9baW5kZXhdOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIGZvbGRlZCBjYXNlIHZhbHVlIGF0IHRoZSBpbmRleAorICAgICogQHBhcmFtIGluZGV4IG9mIHRoZSBjYXNlIHZhbHVlIHRvIGJlIHJldHJpZXZlZAorICAgICogQHJldHVybiBmb2xkZWQgY2FzZSB2YWx1ZSBhdCBpbmRleAorICAgICovCisgICAgcHVibGljIGludCBnZXRGb2xkQ2FzZShpbnQgaW5kZXgpCisgICAgeworICAgICAgICBjaGFyIHNpbmdsZSA9IG1fY2FzZV9baW5kZXhdOworICAgICAgICBpZiAoVVRGMTYuTEVBRF9TVVJST0dBVEVfTUlOX1ZBTFVFIDw9IHNpbmdsZSAmJiAKKyAgICAgICAgICAgIHNpbmdsZSA8PSBVVEYxNi5UUkFJTF9TVVJST0dBVEVfTUFYX1ZBTFVFKSB7CisgICAgICAgIC8vIENvbnZlcnQgdGhlIFVURi0xNiBzdXJyb2dhdGUgcGFpciBpZiBuZWNlc3NhcnkuCisgICAgICAgIC8vIEZvciBzaW1wbGljaXR5IGluIHVzYWdlLCBhbmQgYmVjYXVzZSB0aGUgZnJlcXVlbmN5IG9mIHBhaXJzIGlzIGxvdywKKyAgICAgICAgLy8gbG9vayBib3RoIGRpcmVjdGlvbnMuCisgICAgICAgICAgICAgICAgICAKKwkgICAgICAgIGlmIChzaW5nbGUgPD0gVVRGMTYuTEVBRF9TVVJST0dBVEVfTUFYX1ZBTFVFKSB7CisJICAgICAgICAgICAgY2hhciB0cmFpbCA9IG1fY2FzZV9baW5kZXggKyAxXTsKKwkgICAgICAgICAgICBpZiAoVVRGMTYuTEVBRF9TVVJST0dBVEVfTUlOX1ZBTFVFIDw9IHRyYWlsICYmIAorCQkgICAgICAgICAgICB0cmFpbCA8PSBVVEYxNi5UUkFJTF9TVVJST0dBVEVfTUFYX1ZBTFVFKSB7CisJICAgICAgICAgICAgICAgIHJldHVybiBnZXRSYXdTdXBwbGVtZW50YXJ5KHNpbmdsZSwgdHJhaWwpOworCSAgICAgICAgICAgIH0KKwkgICAgICAgIH0gCisJICAgICAgICBlbHNlIAorCSAgICAgICAgeyAKKwkgICAgICAgICAgICBjaGFyIGxlYWQgPSBtX2Nhc2VfW2luZGV4IC0gMV07CisJICAgICAgICAgICAgaWYgKFVURjE2LkxFQURfU1VSUk9HQVRFX01JTl9WQUxVRSA8PSBsZWFkICYmIAorCQkgICAgICAgICAgICBsZWFkIDw9IFVURjE2LkxFQURfU1VSUk9HQVRFX01BWF9WQUxVRSkgeworCSAgICAgICAgICAgICAgICByZXR1cm4gZ2V0UmF3U3VwcGxlbWVudGFyeShsZWFkLCBzaW5nbGUpOworCSAgICAgICAgICAgIH0KKwkgICAgICAgIH0KKwkgICAgfQorCSAgICByZXR1cm4gc2luZ2xlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIGZvbGRlZCBjYXNlIHZhbHVlIGF0IHRoZSBpbmRleAorICAgICogQHBhcmFtIGluZGV4IG9mIHRoZSBjYXNlIHZhbHVlIHRvIGJlIHJldHJpZXZlZAorICAgICogQHBhcmFtIGNvdW50IG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIHJldHJpZXZlCisgICAgKiBAcGFyYW0gYnVmZmVyIHN0cmluZyBidWZmZXIgdG8gYWRkIHJlc3VsdCB0bworICAgICovCisgICAgcHVibGljIHZvaWQgZ2V0Rm9sZENhc2UoaW50IGluZGV4LCBpbnQgY291bnQsIFN0cmluZ0J1ZmZlciBzdHIpIAorICAgIHsKKyAgICAgICAgLy8gZmlyc3QgMiBjaGFycyBhcmUgZm9yIHRoZSBzaW1wbGUgbWFwcGluZ3MKKyAgICAgICAgaW5kZXggKz0gMjsKKyAgICAgICAgd2hpbGUgKGNvdW50ID4gMCkgeworICAgICAgICAJc3RyLmFwcGVuZChtX2Nhc2VfW2luZGV4XSk7CisgICAgICAgIAlpbmRleCArKzsKKyAgICAgICAgCWNvdW50IC0tOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogR2V0cyB0aGUgdXBwZXIgY2FzZSB2YWx1ZSBhdCB0aGUgaW5kZXgKKyAgICAqIEBwYXJhbSBpbmRleCBvZiB0aGUgY2FzZSB2YWx1ZSB0byBiZSByZXRyaWV2ZWQKKyAgICAqIEBwYXJhbSBidWZmZXIgc3RyaW5nIGJ1ZmZlciB0byBhZGQgcmVzdWx0IHRvCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBnZXRVcHBlckNhc2UoaW50IGluZGV4LCBTdHJpbmdCdWZmZXIgYnVmZmVyKQorICAgIHsKKyAgICAJaW50IGNvdW50ID0gbV9jYXNlX1tpbmRleF07CisgICAgICAgIC8vIGxhc3QgNSBiaXRzIG9mIHRoZSBmaXJzdCBjaGFyIGluIG1fY2FzZV8gZ2l2ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSAKKyAgICAgICAgLy8gYWx0ZXJuYXRlIHVwcGVyY2FzZSBjaGFyYWN0ZXJzCisgICAgICAgIGluZGV4ICs9IChjb3VudCAmIExBU1RfNV9CSVRfTUFTS18pICsgMTsKKyAgICAgICAgY291bnQgPSAoY291bnQgPj4gU0hJRlRfNV8pICYgTEFTVF81X0JJVF9NQVNLXzsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBjb3VudDsgaiArKykgeworICAgICAgICAJYnVmZmVyLmFwcGVuZChtX2Nhc2VfW2luZGV4ICsgal0pOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogR2V0cyB0aGUgdXBwZXIgY2FzZSB2YWx1ZSBhdCB0aGUgaW5kZXgKKyAgICAqIEBwYXJhbSBpbmRleCBvZiB0aGUgY2FzZSB2YWx1ZSB0byBiZSByZXRyaWV2ZWQKKyAgICAqIEBwYXJhbSBidWZmZXIgc3RyaW5nIGJ1ZmZlciB0byBhZGQgcmVzdWx0IHRvCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBnZXRUaXRsZUNhc2UoaW50IGluZGV4LCBTdHJpbmdCdWZmZXIgYnVmZmVyKQorICAgIHsKKyAgICAgICAgaW50IGNvdW50ID0gbV9jYXNlX1tpbmRleF07CisgICAgICAgIC8vIGxhc3QgNSBiaXRzIG9mIHRoZSBmaXJzdCBjaGFyIGluIG1fY2FzZV8gZ2l2ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSAKKyAgICAgICAgLy8gYWx0ZXJuYXRlIHVwcGVyY2FzZSBjaGFyYWN0ZXJzCisgICAgICAgIGluZGV4ICs9IChjb3VudCAmIExBU1RfNV9CSVRfTUFTS18pICsgMSArIAorICAgICAgICAgICAgICAgICAoKGNvdW50ID4+IFNISUZUXzVfKSAmIExBU1RfNV9CSVRfTUFTS18pOworICAgICAgICBjb3VudCA9IChjb3VudCA+PiBTSElGVF8xMF8pICYgTEFTVF81X0JJVF9NQVNLXzsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBjb3VudDsgaiArKykgeworICAgICAgICAJYnVmZmVyLmFwcGVuZChtX2Nhc2VfW2luZGV4ICsgal0pOworICAgICAgICB9CisgICAgfQorICAgICAgCisgICAgLyoqCisgICAgKiBHZXRzIHRoZSBsb3dlciBjYXNlIHZhbHVlIGF0IHRoZSBpbmRleAorICAgICogQHBhcmFtIGluZGV4IG9mIHRoZSBjYXNlIHZhbHVlIHRvIGJlIHJldHJpZXZlZAorICAgICogQHBhcmFtIGJ1ZmZlciBzdHJpbmcgYnVmZmVyIHRvIGFkZCByZXN1bHQgdG8KKyAgICAqLworICAgIHB1YmxpYyB2b2lkIGdldExvd2VyQ2FzZShpbnQgaW5kZXgsIFN0cmluZ0J1ZmZlciBidWZmZXIpCisgICAgeworICAgICAgICBpbnQgY291bnQgPSBtX2Nhc2VfW2luZGV4XSAmIExBU1RfNV9CSVRfTUFTS187CisgICAgICAgIC8vIGxhc3QgNSBiaXRzIG9mIHRoZSBmaXJzdCBjaGFyIGluIG1fY2FzZV8gZ2l2ZXMgdGhlIHNpemUgb2YgdGhlIAorICAgICAgICAvLyBsb3dlcmNhc2UgY2hhcmFjdGVycworICAgICAgICBpbmRleCArKzsKKyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBjb3VudDsgaiArKykgeworICAgICAgICAJYnVmZmVyLmFwcGVuZChtX2Nhc2VfW2luZGV4ICsgal0pOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIHVuaWNvZGUgYWRkaXRpb25hbCBwcm9wZXJ0aWVzLgorICAgICAqIEMgdmVyc2lvbiBnZXRVbmljb2RlUHJvcGVydGllcy4KKyAgICAgKiBAcGFyYW0gY29kZXBvaW50IGNvZGVwb2ludCB3aG9zZSBhZGRpdGlvbmFsIHByb3BlcnRpZXMgaXMgdG8gYmUgCisgICAgICogICAgICAgICAgICAgICAgICByZXRyaWV2ZWQKKyAgICAgKiBAcGFyYW0gY29sdW1uCisgICAgICogQHJldHVybiB1bmljb2RlIHByb3BlcnRpZXMKKyAgICAgKi8gCisgICAJcHVibGljIGludCBnZXRBZGRpdGlvbmFsKGludCBjb2RlcG9pbnQsIGludCBjb2x1bW4pIHsgCisgICAgICAgIGlmIChjb2x1bW4gPT0gLTEpIHsKKyAgICAgICAgICAgIHJldHVybiBnZXRQcm9wZXJ0eShjb2RlcG9pbnQpOworICAgICAgICB9CisgICAJCWlmIChjb2x1bW4gPCAwIHx8IGNvbHVtbiA+PSBtX2FkZGl0aW9uYWxDb2x1bW5zQ291bnRfKSB7IAorICAgICAgICAgICByZXR1cm4gMDsgCisgICAgICAgfSAKKyAgICAgICByZXR1cm4gbV9hZGRpdGlvbmFsVmVjdG9yc19bCisgICAgICAgICAgICAgICAgICAgICBtX2FkZGl0aW9uYWxUcmllXy5nZXRDb2RlUG9pbnRWYWx1ZShjb2RlcG9pbnQpICsgY29sdW1uXTsgCisgICAJfSAKKyAgIAkKKyAgIAkvKioKKyAgICAgKiA8cD5HZXQgdGhlICJhZ2UiIG9mIHRoZSBjb2RlIHBvaW50LjwvcD4KKyAgICAgKiA8cD5UaGUgImFnZSIgaXMgdGhlIFVuaWNvZGUgdmVyc2lvbiB3aGVuIHRoZSBjb2RlIHBvaW50IHdhcyBmaXJzdAorICAgICAqIGRlc2lnbmF0ZWQgKGFzIGEgbm9uLWNoYXJhY3RlciBvciBmb3IgUHJpdmF0ZSBVc2UpIG9yIGFzc2lnbmVkIGEgCisgICAgICogY2hhcmFjdGVyLjwvcD4KKyAgICAgKiA8cD5UaGlzIGNhbiBiZSB1c2VmdWwgdG8gYXZvaWQgZW1pdHRpbmcgY29kZSBwb2ludHMgdG8gcmVjZWl2aW5nIAorICAgICAqIHByb2Nlc3NlcyB0aGF0IGRvIG5vdCBhY2NlcHQgbmV3ZXIgY2hhcmFjdGVycy48L3A+CisgICAgICogPHA+VGhlIGRhdGEgaXMgZnJvbSB0aGUgVUNEIGZpbGUgRGVyaXZlZEFnZS50eHQuPC9wPgorICAgICAqIDxwPlRoaXMgQVBJIGRvZXMgbm90IGNoZWNrIHRoZSB2YWxpZGl0eSBvZiB0aGUgY29kZXBvaW50LjwvcD4KKyAgICAgKiBAcGFyYW0gY2ggVGhlIGNvZGUgcG9pbnQuCisgICAgICogQHJldHVybiB0aGUgVW5pY29kZSB2ZXJzaW9uIG51bWJlcgorICAgICAqIEBkcmFmdCBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIFZlcnNpb25JbmZvIGdldEFnZShpbnQgY29kZXBvaW50KSAKKyAgICB7CisgICAgCWludCB2ZXJzaW9uID0gZ2V0QWRkaXRpb25hbChjb2RlcG9pbnQsIDApID4+IEFHRV9TSElGVF87CisgICAgCXJldHVybiBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZXJzaW9uID4+IEZJUlNUX05JQkJMRV9TSElGVF8pICYgTEFTVF9OSUJCTEVfTUFTS18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uICYgTEFTVF9OSUJCTEVfTUFTS18sIDAsIDApOworICAgIH0KKworCS8qKgorCSAqIDxwPkNoZWNrIGEgYmluYXJ5IFVuaWNvZGUgcHJvcGVydHkgZm9yIGEgY29kZSBwb2ludC48L3A+IAorCSAqIDxwPlVuaWNvZGUsIGVzcGVjaWFsbHkgaW4gdmVyc2lvbiAzLjIsIGRlZmluZXMgbWFueSBtb3JlIHByb3BlcnRpZXMgCisJICogdGhhbiB0aGUgb3JpZ2luYWwgc2V0IGluIFVuaWNvZGVEYXRhLnR4dC48L3A+CisJICogPHA+VGhpcyBBUEkgaXMgaW50ZW5kZWQgdG8gcmVmbGVjdCBVbmljb2RlIHByb3BlcnRpZXMgYXMgZGVmaW5lZCBpbiAKKwkgKiB0aGUgVW5pY29kZSBDaGFyYWN0ZXIgRGF0YWJhc2UgKFVDRCkgYW5kIFVuaWNvZGUgVGVjaG5pY2FsIFJlcG9ydHMgCisJICogKFVUUikuPC9wPgorCSAqIDxwPkZvciBkZXRhaWxzIGFib3V0IHRoZSBwcm9wZXJ0aWVzIHNlZSAKKwkgKiA8YSBocmVmPWh0dHA6Ly93d3cudW5pY29kZS5vcmcvPmh0dHA6Ly93d3cudW5pY29kZS5vcmcvPC9hPi48L3A+CisJICogPHA+Rm9yIG5hbWVzIG9mIFVuaWNvZGUgcHJvcGVydGllcyBzZWUgdGhlIFVDRCBmaWxlIAorCSAqIFByb3BlcnR5QWxpYXNlcy50eHQuPC9wPgorCSAqIDxwPlRoaXMgQVBJIGRvZXMgbm90IGNoZWNrIHRoZSB2YWxpZGl0eSBvZiB0aGUgY29kZXBvaW50LjwvcD4KKwkgKiA8cD5JbXBvcnRhbnQ6IElmIElDVSBpcyBidWlsdCB3aXRoIFVDRCBmaWxlcyBmcm9tIFVuaWNvZGUgdmVyc2lvbnMgCisJICogYmVsb3cgMy4yLCB0aGVuIHByb3BlcnRpZXMgbWFya2VkIHdpdGggIm5ldyIgYXJlIG5vdCBvciAKKwkgKiBub3QgZnVsbHkgYXZhaWxhYmxlLjwvcD4KKwkgKiBAcGFyYW0gY29kZXBvaW50IENvZGUgcG9pbnQgdG8gdGVzdC4KKwkgKiBAcGFyYW0gcHJvcGVydHkgc2VsZWN0b3IgY29uc3RhbnQgZnJvbSBjb20uaWJtLmljdS5sYW5nLlVQcm9wZXJ0eSwgCisJICogICAgICAgIGlkZW50aWZpZXMgd2hpY2ggYmluYXJ5IHByb3BlcnR5IHRvIGNoZWNrLgorCSAqIEByZXR1cm4gdHJ1ZSBvciBmYWxzZSBhY2NvcmRpbmcgdG8gdGhlIGJpbmFyeSBVbmljb2RlIHByb3BlcnR5IHZhbHVlIAorCSAqICAgICAgICAgZm9yIGNoLiBBbHNvIGZhbHNlIGlmIHByb3BlcnR5IGlzIG91dCBvZiBib3VuZHMgb3IgaWYgdGhlIAorCSAqICAgICAgICAgVW5pY29kZSB2ZXJzaW9uIGRvZXMgbm90IGhhdmUgZGF0YSBmb3IgdGhlIHByb3BlcnR5IGF0IGFsbCwgb3IgCisJICogICAgICAgICBub3QgZm9yIHRoaXMgY29kZSBwb2ludC4KKwkgKiBAc2VlIGNvbS5pYm0uaWN1LmxhbmcuVVByb3BlcnR5CisJICogQGRyYWZ0IElDVSAyLjEKKwkgKi8KKwlwdWJsaWMgYm9vbGVhbiBoYXNCaW5hcnlQcm9wZXJ0eShpbnQgY29kZXBvaW50LCBpbnQgcHJvcGVydHkpIAorCXsKKwkJc3dpdGNoKHByb3BlcnR5KSB7CisgICAgCQljYXNlIFVQcm9wZXJ0eS5BTFBIQUJFVElDOiB7CisgICAgICAgIAkJLy8gTHUrTGwrTHQrTG0rTG8rTmwrT3RoZXJfQWxwaGFiZXRpYworICAgICAgICAJCWludCBnZW5lcmFsdHlwZSA9IGdldFByb3BUeXBlKGdldFByb3BlcnR5KGNvZGVwb2ludCkpOworICAgICAgICAJCWJvb2xlYW4gZ2VuZXJhbG1hdGNoID0gCisgICAgICAgIAkJICAgICAgICBnZW5lcmFsdHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVVBQRVJDQVNFX0xFVFRFUiAKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IGdlbmVyYWx0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5MT1dFUkNBU0VfTEVUVEVSIAorICAgICAgICAgICAgICAgICAgICAgICAgfHwgZ2VuZXJhbHR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5LlRJVExFQ0FTRV9MRVRURVIgCisgICAgICAgICAgICAgICAgICAgICAgICB8fCBnZW5lcmFsdHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTU9ESUZJRVJfTEVUVEVSIAorICAgICAgICAgICAgICAgICAgICAgICAgfHwgZ2VuZXJhbHR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5LkxFVFRFUl9OVU1CRVIKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IGdlbmVyYWx0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5PVEhFUl9MRVRURVI7CisgICAgICAgIAkJcmV0dXJuIGdlbmVyYWxtYXRjaCB8fAorICAgICAgICAgICAgICAgICAgICAgICBjb21wYXJlQWRkaXRpb25hbFR5cGUoZ2V0QWRkaXRpb25hbChjb2RlcG9pbnQsIDEpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9USEVSX0FMUEhBQkVUSUNfUFJPUEVSVFlfKTsKKyAgICAJCX0KKyAgICAJCWNhc2UgVVByb3BlcnR5LkFTQ0lJX0hFWF9ESUdJVDogeworICAgICAgICAJCXJldHVybiBjb21wYXJlQWRkaXRpb25hbFR5cGUoZ2V0QWRkaXRpb25hbChjb2RlcG9pbnQsIDEpLAorCQkJCQkJCQkJCQkgQVNDSUlfSEVYX0RJR0lUX1BST1BFUlRZXyk7CisgICAgCQl9CisgICAgCQljYXNlIFVQcm9wZXJ0eS5CSURJX0NPTlRST0w6IHsKKyAgICAgICAgCQlyZXR1cm4gY29tcGFyZUFkZGl0aW9uYWxUeXBlKGdldEFkZGl0aW9uYWwoY29kZXBvaW50LCAxKSwKKyAgICAgICAgCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJJRElfQ09OVFJPTF9QUk9QRVJUWV8pOworICAgIAkJfQorICAgIAkJY2FzZSBVUHJvcGVydHkuQklESV9NSVJST1JFRDogeworICAgICAgICAJCXJldHVybiBpc01pcnJvcmVkKGdldFByb3BlcnR5KGNvZGVwb2ludCkpOworICAgIAkJfQorICAgIAkJY2FzZSBVUHJvcGVydHkuREFTSDogeworICAgICAgICAJCXJldHVybiBjb21wYXJlQWRkaXRpb25hbFR5cGUoZ2V0QWRkaXRpb25hbChjb2RlcG9pbnQsIDEpLAorICAgICAgICAJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREFTSF9QUk9QRVJUWV8pOworICAgIAkJfQorICAgIAkJY2FzZSBVUHJvcGVydHkuREVGQVVMVF9JR05PUkFCTEVfQ09ERV9QT0lOVDogeworICAgICAgICAJCS8vIDwyMDYwLi4yMDZGLCBGRkYwLi5GRkZCLCBFMDAwMC4uRTBGRkY+CisgICAgICAgICAgICAgICAgLy8gK090aGVyX0RlZmF1bHRfSWdub3JhYmxlX0NvZGVfUG9pbnQrKENmK0NjK0NzLVdoaXRlX1NwYWNlKSAKKyAgICAgICAgICAgICAgICBpZiAoKDB4MjA2MCA8PSBjb2RlcG9pbnQgJiYgY29kZXBvaW50IDw9IDB4MjA2ZikgCisgICAgICAgICAgICAgICAgICAgIHx8ICgweGZmZjAgPD0gY29kZXBvaW50ICYmIGNvZGVwb2ludCA8PSAweGZmZmIpIAorICAgICAgICAgICAgICAgICAgICB8fCAoMHhlMDAwMCA8PSBjb2RlcG9pbnQgJiYgY29kZXBvaW50IDw9IDB4ZTBmZmYpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgCQkKKyAgICAgICAgCQlpbnQgYWRkaXRpb25hbHByb3BlcnR5ID0gZ2V0QWRkaXRpb25hbChjb2RlcG9pbnQsIDEpOworICAgICAgICAgICAgICAgIGlmIChjb21wYXJlQWRkaXRpb25hbFR5cGUoYWRkaXRpb25hbHByb3BlcnR5LCAKKyAgICAgICAJCSAgICAgICAgICAgICAgICAgICBPVEhFUl9ERUZBVUxUX0lHTk9SQUJMRV9DT0RFX1BPSU5UX1BST1BFUlRZXykpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghY29tcGFyZUFkZGl0aW9uYWxUeXBlKGFkZGl0aW9uYWxwcm9wZXJ0eSwgCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXSElURV9TUEFDRV9QUk9QRVJUWV8pKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBnZW5lcmFsdHlwZSA9IGdldFByb3BUeXBlKGdldFByb3BlcnR5KGNvZGVwb2ludCkpOworICAgICAgICAgICAgICAgICAgICBpZiAoZ2VuZXJhbHR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5LkZPUk1BVCAKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IGdlbmVyYWx0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5DT05UUk9MIAorICAgICAgICAgICAgICAgICAgICAgICAgfHwgZ2VuZXJhbHR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5LlNVUlJPR0FURSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAkJfQorICAgIAkJY2FzZSBVUHJvcGVydHkuREVQUkVDQVRFRDogeworICAgICAgICAJCXJldHVybiBjb21wYXJlQWRkaXRpb25hbFR5cGUoZ2V0QWRkaXRpb25hbChjb2RlcG9pbnQsIDEpLAorICAgICAgICAJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREVQUkVDQVRFRF9QUk9QRVJUWV8pOworICAgIAkJfQorICAgIAkJY2FzZSBVUHJvcGVydHkuRElBQ1JJVElDOiB7CisgICAgICAgIAkJcmV0dXJuIGNvbXBhcmVBZGRpdGlvbmFsVHlwZShnZXRBZGRpdGlvbmFsKGNvZGVwb2ludCwgMSksCisgICAgICAgIAkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICBESUFDUklUSUNfUFJPUEVSVFlfKTsKKyAgICAJCX0KKyAgICAJCWNhc2UgVVByb3BlcnR5LkVYVEVOREVSOiB7CisgICAgICAgIAkJcmV0dXJuIGNvbXBhcmVBZGRpdGlvbmFsVHlwZShnZXRBZGRpdGlvbmFsKGNvZGVwb2ludCwgMSksCisgICAgICAgIAkJICAgICAgICAgICAgICAgICAgICAgICAgIEVYVEVOREVSX1BST1BFUlRZXyk7CisgICAgCQl9CisgICAgCQljYXNlIFVQcm9wZXJ0eS5GVUxMX0NPTVBPU0lUSU9OX0VYQ0xVU0lPTjogeworICAgICAgICAJCXJldHVybiBOb3JtYWxpemVySW1wbC5pc0Z1bGxDb21wb3NpdGlvbkV4Y2x1c2lvbihjb2RlcG9pbnQpOworICAgIAkJfQorICAgIAkJY2FzZSBVUHJvcGVydHkuR1JBUEhFTUVfQkFTRTogeworICAgIAkJCS8vIFswLi4xMEZGRkZdLUNjLUNmLUNzLUNvLUNuLVpsLVpwLUdyYXBoZW1lX0xpbmstR3JhcGhlbWVfRXh0ZW5kLUNHSiA9PQorICAgICAgICAgICAgICAgIC8vIFswLi4xMEZGRkZdLUNjLUNmLUNzLUNvLUNuLVpsLVpwLUdyYXBoZW1lX0xpbmstKE1lK01uK01jK090aGVyX0dyYXBoZW1lX0V4dGVuZCktQ0dKID09CisgICAgICAgICAgICAgICAgLy8gWzAuLjEwRkZGRl0tQ2MtQ2YtQ3MtQ28tQ24tWmwtWnAtTWUtTW4tTWMtR3JhcGhlbWVfTGluay1PdGhlcl9HcmFwaGVtZV9FeHRlbmQtQ0dKCisgICAgICAgICAgICAgICAgaWYgKGNvZGVwb2ludCAhPSAweDM0ZikgeyAvLyBDR0oKKyAgICAgICAgICAgICAgICAgICAgaW50IGdlbmVyYWx0eXBlID0gZ2V0UHJvcFR5cGUoZ2V0UHJvcGVydHkoY29kZXBvaW50KSk7CisgICAgICAgICAgICAgCQlpZiAoZ2VuZXJhbHR5cGUgIT0gVUNoYXJhY3RlckNhdGVnb3J5LkNPTlRST0wgCisgICAgICAgICAgICAgICAgICAgICAgICAmJiBnZW5lcmFsdHlwZSAhPSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuRk9STUFUIAorICAgICAgICAgICAgICAgICAgICAgICAgJiYgZ2VuZXJhbHR5cGUgIT0gVUNoYXJhY3RlckNhdGVnb3J5LlNVUlJPR0FURQorICAgICAgICAgICAgICAgICAgICAgICAgJiYgZ2VuZXJhbHR5cGUgIT0gVUNoYXJhY3RlckNhdGVnb3J5LlBSSVZBVEVfVVNFCisgICAgICAgICAgICAgICAgICAgICAgICAmJiBnZW5lcmFsdHlwZSAhPSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuR0VORVJBTF9PVEhFUl9UWVBFUworICAgICAgICAgICAgICAgICAgICAgICAgJiYgZ2VuZXJhbHR5cGUgIT0gVUNoYXJhY3RlckNhdGVnb3J5LkxJTkVfU0VQQVJBVE9SCisgICAgICAgICAgICAgICAgICAgICAgICAmJiBnZW5lcmFsdHlwZSAhPSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuUEFSQUdSQVBIX1NFUEFSQVRPUgorICAgICAgICAgICAgIAkJICAgICYmIGdlbmVyYWx0eXBlICE9IFVDaGFyYWN0ZXJDYXRlZ29yeS5FTkNMT1NJTkdfTUFSSworICAgICAgICAgICAgIAkJICAgICYmIGdlbmVyYWx0eXBlICE9IFVDaGFyYWN0ZXJDYXRlZ29yeS5OT05fU1BBQ0lOR19NQVJLIAorICAgICAgICAgICAgIAkJICAgICYmIGdlbmVyYWx0eXBlIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuQ09NQklOSU5HX1NQQUNJTkdfTUFSSykgeworICAgICAgICAgICAgIAkJICAgIGludCBhZGRpdGlvbmFscHJvcGVydHkgPSBnZXRBZGRpdGlvbmFsKGNvZGVwb2ludCwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIWNvbXBhcmVBZGRpdGlvbmFsVHlwZShhZGRpdGlvbmFscHJvcGVydHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHUkFQSEVNRV9MSU5LX1BST1BFUlRZXykgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgIWNvbXBhcmVBZGRpdGlvbmFsVHlwZShhZGRpdGlvbmFscHJvcGVydHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT1RIRVJfR1JBUEhFTUVfRVhURU5EX1BST1BFUlRZXyk7CisgICAgICAgICAgICAgCQl9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAJCX0KKyAgICAJCWNhc2UgVVByb3BlcnR5LkdSQVBIRU1FX0VYVEVORDogeworICAgICAgICAgICAgICAgIC8vIE1lK01uK01jK090aGVyX0dyYXBoZW1lX0V4dGVuZC1HcmFwaGVtZV9MaW5rLUNHSgorICAgICAgICAgICAgICAgIGlmIChjb2RlcG9pbnQgPT0gMHgzNGYpIHsgLy8gQ0dKCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gZmFzdGVzdCBjaGVjayBmaXJzdAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAgICAgaW50IGFkZGl0aW9uYWxwcm9wZXJ0eSA9IGdldEFkZGl0aW9uYWwoY29kZXBvaW50LCAxKTsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbXBhcmVBZGRpdGlvbmFsVHlwZShhZGRpdGlvbmFscHJvcGVydHksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdSQVBIRU1FX0xJTktfUFJPUEVSVFlfKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoY29tcGFyZUFkZGl0aW9uYWxUeXBlKGFkZGl0aW9uYWxwcm9wZXJ0eSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPVEhFUl9HUkFQSEVNRV9FWFRFTkRfUFJPUEVSVFlfKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaW50IGdlbmVyYWx0eXBlID0gZ2V0UHJvcFR5cGUoZ2V0UHJvcGVydHkoY29kZXBvaW50KSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChnZW5lcmFsdHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuRU5DTE9TSU5HX01BUksgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYWx0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5OT05fU1BBQ0lOR19NQVJLIHx8CisgICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmFsdHlwZSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuQ09NQklOSU5HX1NQQUNJTkdfTUFSSykgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCQl9CisgICAgCQljYXNlIFVQcm9wZXJ0eS5HUkFQSEVNRV9MSU5LOiB7CisgICAgICAgIAkJcmV0dXJuIGNvbXBhcmVBZGRpdGlvbmFsVHlwZShnZXRBZGRpdGlvbmFsKGNvZGVwb2ludCwgMSksCisgICAgICAgIAkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHUkFQSEVNRV9MSU5LX1BST1BFUlRZXyk7CisgICAgCQl9CisgICAgCQljYXNlIFVQcm9wZXJ0eS5IRVhfRElHSVQ6IHsKKyAgICAgICAgCQlyZXR1cm4gY29tcGFyZUFkZGl0aW9uYWxUeXBlKGdldEFkZGl0aW9uYWwoY29kZXBvaW50LCAxKSwKKyAgICAgICAgCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhFWF9ESUdJVF9QUk9QRVJUWV8pOworICAgIAkJfQorICAgIAkJY2FzZSBVUHJvcGVydHkuSFlQSEVOOiB7CisgICAgICAgIAkJcmV0dXJuIGNvbXBhcmVBZGRpdGlvbmFsVHlwZShnZXRBZGRpdGlvbmFsKGNvZGVwb2ludCwgMSksCisgICAgICAgIAkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIWVBIRU5fUFJPUEVSVFlfKTsKKyAgICAJCX0KKyAgICAJCWNhc2UgVVByb3BlcnR5LklEX0NPTlRJTlVFOiB7CisgICAgICAgIAkJLy8gSURfU3RhcnQrTW4rTWMrTmQrUGMgPT0gTHUrTGwrTHQrTG0rTG8rTmwrTW4rTWMrTmQrUGMKKyAgICAgICAgCQlpbnQgZ2VuZXJhbHR5cGUgPSBnZXRQcm9wVHlwZShnZXRQcm9wZXJ0eShjb2RlcG9pbnQpKTsKKyAgICAgICAgCQlyZXR1cm4gZ2VuZXJhbHR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5LlVQUEVSQ0FTRV9MRVRURVIgfHwKKyAgICAgICAgCQkgICAgICAgZ2VuZXJhbHR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5LkxPV0VSQ0FTRV9MRVRURVIgfHwgCisgICAgICAgIAkJICAgICAgIGdlbmVyYWx0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5USVRMRUNBU0VfTEVUVEVSIHx8CisgICAgICAgIAkJICAgICAgIGdlbmVyYWx0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5NT0RJRklFUl9MRVRURVIgfHwKKyAgICAgICAgCQkgICAgICAgZ2VuZXJhbHR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5Lk9USEVSX0xFVFRFUiB8fAorICAgICAgICAJCSAgICAgICBnZW5lcmFsdHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTEVUVEVSX05VTUJFUiB8fAorICAgICAgICAJCSAgICAgICBnZW5lcmFsdHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTk9OX1NQQUNJTkdfTUFSSyB8fAorICAgICAgICAJCSAgICAgICBnZW5lcmFsdHlwZSA9PSAKKyAgICAgICAgCQkgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyQ2F0ZWdvcnkuQ09NQklOSU5HX1NQQUNJTkdfTUFSSyB8fAorICAgICAgICAJCSAgICAgICBnZW5lcmFsdHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuREVDSU1BTF9ESUdJVF9OVU1CRVIKKyAgICAgICAgCQkgICAgICAgfHwgZ2VuZXJhbHR5cGUgPT0gCisgICAgICAgIAkJICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3RlckNhdGVnb3J5LkNPTk5FQ1RPUl9QVU5DVFVBVElPTjsKKyAgICAJCX0KKyAgICAJCWNhc2UgVVByb3BlcnR5LklEX1NUQVJUOiB7CisgICAgICAgIAkJLy8gTHUrTGwrTHQrTG0rTG8rTmwKKyAgICAgICAgCQlpbnQgZ2VuZXJhbHR5cGUgPSBnZXRQcm9wVHlwZShnZXRQcm9wZXJ0eShjb2RlcG9pbnQpKTsKKyAgICAgICAgCQlyZXR1cm4gZ2VuZXJhbHR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5LlVQUEVSQ0FTRV9MRVRURVIgfHwKKyAgICAgICAgCQkgICAgICAgZ2VuZXJhbHR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5LkxPV0VSQ0FTRV9MRVRURVIgfHwgCisgICAgICAgIAkJICAgICAgIGdlbmVyYWx0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5USVRMRUNBU0VfTEVUVEVSIHx8CisgICAgICAgIAkJICAgICAgIGdlbmVyYWx0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5NT0RJRklFUl9MRVRURVIgfHwKKyAgICAgICAgCQkgICAgICAgZ2VuZXJhbHR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5Lk9USEVSX0xFVFRFUiB8fAorICAgICAgICAJCSAgICAgICBnZW5lcmFsdHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTEVUVEVSX05VTUJFUjsKKyAgICAJCX0KKyAgICAJCWNhc2UgVVByb3BlcnR5LklERU9HUkFQSElDOiB7CisgICAgICAgIAkJcmV0dXJuIGNvbXBhcmVBZGRpdGlvbmFsVHlwZShnZXRBZGRpdGlvbmFsKGNvZGVwb2ludCwgMSksCisgICAgICAgIAkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJREVPR1JBUEhJQ19QUk9QRVJUWV8pOworICAgIAkJfQorICAgIAkJY2FzZSBVUHJvcGVydHkuSURTX0JJTkFSWV9PUEVSQVRPUjogeworICAgICAgICAJCXJldHVybiBjb21wYXJlQWRkaXRpb25hbFR5cGUoZ2V0QWRkaXRpb25hbChjb2RlcG9pbnQsIDEpLAorICAgICAgICAJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSURTX0JJTkFSWV9PUEVSQVRPUl9QUk9QRVJUWV8pOworICAgIAkJfQorICAgIAkJY2FzZSBVUHJvcGVydHkuSURTX1RSSU5BUllfT1BFUkFUT1I6IHsKKyAgICAgICAgCQlyZXR1cm4gY29tcGFyZUFkZGl0aW9uYWxUeXBlKGdldEFkZGl0aW9uYWwoY29kZXBvaW50LCAxKSwKKyAgICAgICAgCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElEU19UUklOQVJZX09QRVJBVE9SX1BST1BFUlRZXyk7CisJCQl9CisgICAgCQljYXNlIFVQcm9wZXJ0eS5KT0lOX0NPTlRST0w6IHsKKyAgICAgICAgCQlyZXR1cm4gY29tcGFyZUFkZGl0aW9uYWxUeXBlKGdldEFkZGl0aW9uYWwoY29kZXBvaW50LCAxKSwKKyAgICAgICAgCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpPSU5fQ09OVFJPTF9QUk9QRVJUWV8pOworICAgIAkJfQorICAgIAkJY2FzZSBVUHJvcGVydHkuTE9HSUNBTF9PUkRFUl9FWENFUFRJT046IHsKKyAgICAgICAgCQlyZXR1cm4gY29tcGFyZUFkZGl0aW9uYWxUeXBlKGdldEFkZGl0aW9uYWwoY29kZXBvaW50LCAxKSwKKyAgICAgIAkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMT0dJQ0FMX09SREVSX0VYQ0VQVElPTl9QUk9QRVJUWV8pOworICAgIAkJfQorICAgIAkJY2FzZSBVUHJvcGVydHkuTE9XRVJDQVNFOiB7CisgICAgICAgIAkJLy8gTGwrT3RoZXJfTG93ZXJjYXNlCisgICAgICAgIAkJaW50IGdlbmVyYWx0eXBlID0gZ2V0UHJvcFR5cGUoZ2V0UHJvcGVydHkoY29kZXBvaW50KSk7CisgICAgICAgIAkJaWYgKGdlbmVyYWx0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5MT1dFUkNBU0VfTEVUVEVSKSB7CisgICAgICAgIAkJCXJldHVybiB0cnVlOworICAgICAgICAJCX0KKyAgICAgICAgCQlyZXR1cm4gY29tcGFyZUFkZGl0aW9uYWxUeXBlKGdldEFkZGl0aW9uYWwoY29kZXBvaW50LCAxKSwKKyAgICAgICAgCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9USEVSX0xPV0VSQ0FTRV9QUk9QRVJUWV8pOworICAgIAkJfQorICAgIAkJY2FzZSBVUHJvcGVydHkuTUFUSDogeworICAgICAgICAJCS8vIFNtK090aGVyX01hdGggCisgICAgICAgIAkJaW50IGdlbmVyYWx0eXBlID0gZ2V0UHJvcFR5cGUoZ2V0UHJvcGVydHkoY29kZXBvaW50KSk7CisgICAgICAgIAkJaWYgKGdlbmVyYWx0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5NQVRIX1NZTUJPTCkgeworICAgICAgICAJCQlyZXR1cm4gdHJ1ZTsKKyAgICAgICAgCQl9CisgICAgICAgIAkJcmV0dXJuIGNvbXBhcmVBZGRpdGlvbmFsVHlwZShnZXRBZGRpdGlvbmFsKGNvZGVwb2ludCwgMSksCisgICAgICAgIAkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPVEhFUl9NQVRIX1BST1BFUlRZXyk7CisgICAgCQl9CisgICAgCQljYXNlIFVQcm9wZXJ0eS5OT05DSEFSQUNURVJfQ09ERV9QT0lOVDogeworICAgICAgICAJCXJldHVybiBjb21wYXJlQWRkaXRpb25hbFR5cGUoZ2V0QWRkaXRpb25hbChjb2RlcG9pbnQsIDEpLAorICAgICAgICAJCSAgICAgICAgICAgICAgICAgICAgICAgICAgTk9OQ0hBUkFDVEVSX0NPREVfUE9JTlRfUFJPUEVSVFlfKTsKKyAgICAJCX0KKyAgICAJCWNhc2UgVVByb3BlcnR5LlFVT1RBVElPTl9NQVJLOiB7CisgICAgICAgIAkJcmV0dXJuIGNvbXBhcmVBZGRpdGlvbmFsVHlwZShnZXRBZGRpdGlvbmFsKGNvZGVwb2ludCwgMSksCisgICAgICAgIAkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVU9UQVRJT05fTUFSS19QUk9QRVJUWV8pOworICAgIAkJfQorICAgIAkJY2FzZSBVUHJvcGVydHkuUkFESUNBTDogeworICAgICAgICAJCXJldHVybiBjb21wYXJlQWRkaXRpb25hbFR5cGUoZ2V0QWRkaXRpb25hbChjb2RlcG9pbnQsIDEpLAorICAgICAgICAJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkFESUNBTF9QUk9QRVJUWV8pOworICAgIAkJfQorICAgIAkJY2FzZSBVUHJvcGVydHkuU09GVF9ET1RURUQ6IHsKKyAgICAgICAgCQlyZXR1cm4gY29tcGFyZUFkZGl0aW9uYWxUeXBlKGdldEFkZGl0aW9uYWwoY29kZXBvaW50LCAxKSwKKyAgICAgICAgCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNPRlRfRE9UVEVEX1BST1BFUlRZXyk7CisgICAgCQl9CisgICAgCQljYXNlIFVQcm9wZXJ0eS5URVJNSU5BTF9QVU5DVFVBVElPTjogeworICAgICAgICAJCXJldHVybiBjb21wYXJlQWRkaXRpb25hbFR5cGUoZ2V0QWRkaXRpb25hbChjb2RlcG9pbnQsIDEpLAorICAgICAgICAJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEVSTUlOQUxfUFVOQ1RVQVRJT05fUFJPUEVSVFlfKTsKKyAgICAJCX0KKwkJICAgIGNhc2UgVVByb3BlcnR5LlVOSUZJRURfSURFT0dSQVBIOiB7CisgICAgICAgIAkJcmV0dXJuIGNvbXBhcmVBZGRpdGlvbmFsVHlwZShnZXRBZGRpdGlvbmFsKGNvZGVwb2ludCwgMSksCisgICAgICAgIAkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTklGSUVEX0lERU9HUkFQSF9QUk9QRVJUWV8pOworCQkgICAgfQorICAgIAkJY2FzZSBVUHJvcGVydHkuVVBQRVJDQVNFOiB7CisgICAgICAgIAkJLy8gTHUrT3RoZXJfVXBwZXJjYXNlIAorICAgICAgICAJCWludCBnZW5lcmFsdHlwZSA9IGdldFByb3BUeXBlKGdldFByb3BlcnR5KGNvZGVwb2ludCkpOworICAgICAgICAJCWlmIChnZW5lcmFsdHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVVBQRVJDQVNFX0xFVFRFUikgeworICAgICAgICAJCQlyZXR1cm4gdHJ1ZTsKKyAgICAgICAgCQl9CisgICAgICAgIAkJcmV0dXJuIGNvbXBhcmVBZGRpdGlvbmFsVHlwZShnZXRBZGRpdGlvbmFsKGNvZGVwb2ludCwgMSksCisgICAgICAgICAgICAgICAgICAgICAJICAgICAgICAgICAgICAgICAgICAgT1RIRVJfVVBQRVJDQVNFX1BST1BFUlRZXyk7CisgICAgCQl9CisgICAgCQljYXNlIFVQcm9wZXJ0eS5XSElURV9TUEFDRTogeworICAgICAgICAJCXJldHVybiBjb21wYXJlQWRkaXRpb25hbFR5cGUoZ2V0QWRkaXRpb25hbChjb2RlcG9pbnQsIDEpLAorICAgICAgICAJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0hJVEVfU1BBQ0VfUFJPUEVSVFlfKTsKKyAgICAJCX0KKyAgICAJCWNhc2UgVVByb3BlcnR5LlhJRF9DT05USU5VRTogeworICAgICAgICAJCXJldHVybiBjb21wYXJlQWRkaXRpb25hbFR5cGUoZ2V0QWRkaXRpb25hbChjb2RlcG9pbnQsIDEpLAorICAgICAgICAJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWElEX0NPTlRJTlVFX1BST1BFUlRZXyk7CisgICAgCQl9CisgICAgCQljYXNlIFVQcm9wZXJ0eS5YSURfU1RBUlQ6IHsKKyAgICAgICAgCQlyZXR1cm4gY29tcGFyZUFkZGl0aW9uYWxUeXBlKGdldEFkZGl0aW9uYWwoY29kZXBvaW50LCAxKSwKKyAgICAgICAgCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhJRF9TVEFSVF9QUk9QRVJUWV8pOworICAgIAkJfQorICAgIAkJZGVmYXVsdDoKKyAgICAgICAgCQkvLyBub3QgYSBrbm93biBiaW5hcnkgcHJvcGVydHkKKyAgICAgICAgCQlyZXR1cm4gZmFsc2U7CisgICAgCX0KKwl9CisJCisJLyoqCisgICAgKiBGb3JtcyBhIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludCBmcm9tIHRoZSBhcmd1bWVudCBjaGFyYWN0ZXI8YnI+CisgICAgKiBOb3RlIHRoaXMgaXMgZm9yIGludGVybmFsIHVzZSBoZW5jZSBubyBjaGVja3MgZm9yIHRoZSB2YWxpZGl0eSBvZiB0aGUKKyAgICAqIHN1cnJvZ2F0ZSBjaGFyYWN0ZXJzIGFyZSBkb25lCisgICAgKiBAcGFyYW0gbGVhZCBsZWFkIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIKKyAgICAqIEBwYXJhbSB0cmFpbCB0cmFpbGluZyBzdXJyb2dhdGUgY2hhcmFjdGVyCisgICAgKiBAcmV0dXJuIGNvZGUgcG9pbnQgb2YgdGhlIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRSYXdTdXBwbGVtZW50YXJ5KGNoYXIgbGVhZCwgY2hhciB0cmFpbCkKKyAgICB7CisgICAgICAgIHJldHVybiAobGVhZCA8PCBMRUFEX1NVUlJPR0FURV9TSElGVF8pICsgdHJhaWwgKyBTVVJST0dBVEVfT0ZGU0VUXzsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBMb2FkcyB0aGUgcHJvcGVydHkgZGF0YSBhbmQgaW5pdGlhbGl6ZSB0aGUgVUNoYXJhY3RlclByb3BlcnR5IGluc3RhbmNlLiAKKyAgICAqIEBFeGNlcHRpb24gdGhyb3duIHdoZW4gZGF0YSBpcyBtaXNzaW5nIG9yIGRhdGEgaGFzIGJlZW4gY29ycnVwdGVkLgorICAgICovICAgIAorICAgIHB1YmxpYyBzdGF0aWMgVUNoYXJhY3RlclByb3BlcnR5IGdldEluc3RhbmNlKCkgdGhyb3dzIFJ1bnRpbWVFeGNlcHRpb24KKyAgICB7CisgICAgCWlmIChJTlNUQU5DRV8gPT0gbnVsbCkgeworICAgIAkJdHJ5IHsKKyAgICAJCQlJTlNUQU5DRV8gPSBuZXcgVUNoYXJhY3RlclByb3BlcnR5KCk7CisgICAgCQl9CisgICAgICAgIAljYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIAl0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIAl9CisgICAgCX0KKyAgICAJcmV0dXJuIElOU1RBTkNFXzsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICogU3BlY2lhbCBjYXNpbmcgbG93ZXJjYXNlIG1hbmFnZW1lbnQKKyAgICAqIEBwYXJhbSBsb2NhbGUgY3VycmVudCBsb2NhbGUKKyAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHRvIGNvbnZlcnQKKyAgICAqIEBwYXJhbSBpbmRleCBvZiBleGNlcHRpb24gY29udGFpbmluZyBzcGVjaWFsIGNhc2UgaW5mb3JtYXRpb24KKyAgICAqIEBwYXJhbSB1Y2hhcml0ZXIgdGV4dCBpdGVyYXRvciB3aXRoIGluZGV4IGF0IHBvc2l0aW9uIG9mIGNoCisgICAgKiBAcGFyYW0gYnVmZmVyIHRvIGFkZCBsb3dlcmNhc2UKKyAgICAqIEByZXR1cm4gc2l6ZSBvZiB0aGUgbG93ZXIgY2FzZSBjaGFyYWN0ZXIgaW4gVVRGMTYgZm9ybWF0CisgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFNwZWNpYWxMb3dlckNhc2UoTG9jYWxlIGxvY2FsZSwgaW50IGluZGV4LCBpbnQgY2gsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlQ2hhcmFjdGVySXRlcmF0b3IgdWNoYXJpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyKQorICAgIHsKKyAgICAJaW50IGV4Y2VwdGlvbiA9IGdldEV4Y2VwdGlvbihpbmRleCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3RlclByb3BlcnR5LkVYQ19TUEVDSUFMX0NBU0lOR18pOworICAgICAgICBpZiAoZXhjZXB0aW9uIDwgMCkgeworICAgICAgICAJaW50IG9mZnNldCA9IHVjaGFyaXRlci5nZXRJbmRleCgpOworICAgICAgICAgICAgLy8gZmlsbCB1IGFuZCBpIHdpdGggdGhlIGNhc2UgbWFwcGluZyByZXN1bHQgc3RyaW5nCisgICAgICAgICAgICAvLyB1c2UgaGFyZGNvZGVkIGNvbmRpdGlvbnMgYW5kIG1hcHBpbmdzCisgICAgICAgICAgICAvLyBUZXN0IGZvciBjb25kaXRpb25hbCBtYXBwaW5ncyBmaXJzdAorICAgICAgICAgICAgLy8gKG90aGVyd2lzZSB0aGUgdW5jb25kaXRpb25hbCBkZWZhdWx0IG1hcHBpbmdzIGFyZSBhbHdheXMgdGFrZW4pLAorICAgICAgICAgICAgLy8gdGhlbiB0ZXN0IGZvciBjaGFyYWN0ZXJzIHRoYXQgaGF2ZSB1bmNvbmRpdGlvbmFsIG1hcHBpbmdzIGluIAorICAgICAgICAgICAgLy8gU3BlY2lhbENhc2luZy50eHQsIHRoZW4gZ2V0IHRoZSBVbmljb2RlRGF0YS50eHQgbWFwcGluZ3MuCisgICAgICAgICAgICBpZiAobG9jYWxlLmdldExhbmd1YWdlKCkuZXF1YWxzKExJVEhVQU5JQU5fKSAmJgorICAgICAgICAgICAgICAgIC8vIGJhc2UgY2hhcmFjdGVycywgZmluZCBhY2NlbnRzIGFib3ZlCisgICAgICAgICAgICAgICAgKCgoY2ggPT0gTEFUSU5fQ0FQSVRBTF9MRVRURVJfSV8gfHwgCisgICAgICAgICAgICAgICAgICAgY2ggPT0gTEFUSU5fQ0FQSVRBTF9MRVRURVJfSl8gfHwKKyAgICAgICAgICAgICAgICAgICBjaCA9PSBMQVRJTl9DQVBJVEFMX0lfV0lUSF9PR09ORUtfKSAmJgorICAgICAgICAgICAgICAgICAgaXNGb2xsb3dlZEJ5TU9SRUFCT1ZFKHVjaGFyaXRlciwgb2Zmc2V0KSkgfHwKKyAgICAgICAgICAgICAgICAgIC8vIHByZWNvbXBvc2VkIHdpdGggYWNjZW50IGFib3ZlLCBubyBuZWVkIHRvIGZpbmQgb25lCisgICAgICAgICAgICAgICAgICAoY2ggPT0gTEFUSU5fQ0FQSVRBTF9JX1dJVEhfR1JBVkVfIHx8IAorICAgICAgICAgICAgICAgICAgIGNoID09IExBVElOX0NBUElUQUxfSV9XSVRIX0FDVVRFXyB8fCAKKyAgICAgICAgICAgICAgICAgICBjaCA9PSBMQVRJTl9DQVBJVEFMX0lfV0lUSF9USUxERV8pKSkgeworICAgICAgICAgICAgICAgICAgIC8vIGxpdGh1YW5pYW46IGFkZCBhIGRvdCBhYm92ZSBpZiB0aGVyZSBhcmUgbW9yZSBhY2NlbnRzIAorICAgICAgICAgICAgICAgICAgIC8vIGFib3ZlICh0byBhbHdheXMgaGF2ZSB0aGUgZG90KQorICAgICAgICAgICAgICAgICAgIC8vICMgTGl0aHVhbmlhbgorICAgICAgICAgICAgICAgICAgIC8vICMgTGl0aHVhbmlhbiByZXRhaW5zIHRoZSBkb3QgaW4gYSBsb3dlcmNhc2UgaSB3aGVuIAorICAgICAgICAgICAgICAgICAgIC8vICAgZm9sbG93ZWQgYnkgYWNjZW50cy4KKyAgICAgICAgICAgICAgICAgICAvLyAjIEludHJvZHVjZSBhbiBleHBsaWNpdCBkb3QgYWJvdmUgd2hlbiBsb3dlcmNhc2luZyAKKyAgICAgICAgICAgICAgICAgICAvLyBjYXBpdGFsIEkncyBhbmQgSidzCisgICAgICAgICAgICAgICAgICAgLy8gd2hlbmV2ZXIgdGhlcmUgYXJlIG1vcmUgYWNjZW50cyBhYm92ZS4KKyAgICAgICAgICAgICAgICAgICAvLyAob2YgdGhlIGFjY2VudHMgdXNlZCBpbiBMaXRodWFuaWFuOiBncmF2ZSwgYWN1dGUsIHRpbGRlIAorICAgICAgICAgICAgICAgICAgIC8vIGFib3ZlLCBhbmQgb2dvbmVrKQorICAgICAgICAgICAgICAgICAgIC8vIDAwNDk7IDAwNjkgMDMwNzsgMDA0OTsgMDA0OTsgbHQgTW9yZV9BYm92ZTsgCisgICAgICAgICAgICAgICAgICAgLy8gIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJCisgICAgICAgICAgICAgICAgICAgLy8gMDA0QTsgMDA2QSAwMzA3OyAwMDRBOyAwMDRBOyBsdCBNb3JlX0Fib3ZlOyAKKyAgICAgICAgICAgICAgICAgICAvLyAjIExBVElOIENBUElUQUwgTEVUVEVSIEoKKyAgICAgICAgICAgICAgICAgICAvLyAwMTJFOyAwMTJGIDAzMDc7IDAxMkU7IDAxMkU7IGx0IE1vcmVfQWJvdmU7IAorICAgICAgICAgICAgICAgICAgIC8vICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIE9HT05FSworICAgICAgICAgICAgICAgICAgIC8vIDAwQ0M7IDAwNjkgMDMwNyAwMzAwOyAwMENDOyAwMENDOyBsdDsgCisgICAgICAgICAgICAgICAgICAgLy8gIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggR1JBVkUKKyAgICAgICAgICAgICAgICAgICAvLyAwMENEOyAwMDY5IDAzMDcgMDMwMTsgMDBDRDsgMDBDRDsgbHQ7IAorICAgICAgICAgICAgICAgICAgIC8vICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIEFDVVRFCisgICAgICAgICAgICAgICAgICAgLy8gMDEyODsgMDA2OSAwMzA3IDAzMDM7IDAxMjg7IDAxMjg7IGx0OyAKKyAgICAgICAgICAgICAgICAgICAvLyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBUSUxERQorICAgICAgICAgICAgICAgICAgIHN3aXRjaChjaCkgeworICAgICAgICAgICAgICAgICAgIGNhc2UgTEFUSU5fQ0FQSVRBTF9MRVRURVJfSV86IAorICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgoY2hhcilMQVRJTl9TTUFMTF9MRVRURVJfSV8pOworICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgoY2hhcilDT01CSU5JTkdfRE9UX0FCT1ZFXyk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgICAgICAgICAgICBjYXNlIExBVElOX0NBUElUQUxfTEVUVEVSX0pfOiAKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoKGNoYXIpTEFUSU5fU01BTExfTEVUVEVSX0pfKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoKGNoYXIpQ09NQklOSU5HX0RPVF9BQk9WRV8pOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgICAgICAgICAgICAgY2FzZSBMQVRJTl9DQVBJVEFMX0lfV0lUSF9PR09ORUtfOgorICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgoY2hhcilMQVRJTl9TTUFMTF9MRVRURVJfSV9XSVRIX09HT05FS18pOworICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgoY2hhcilDT01CSU5JTkdfRE9UX0FCT1ZFXyk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgICAgICAgICAgICBjYXNlIExBVElOX0NBUElUQUxfSV9XSVRIX0dSQVZFXzogCisgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKChjaGFyKUxBVElOX1NNQUxMX0xFVFRFUl9JXyk7CisgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKChjaGFyKUNPTUJJTklOR19ET1RfQUJPVkVfKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoKGNoYXIpQ09NQklOSU5HX0dSQVZFX0FDQ0VOVF8pOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDM7CisgICAgICAgICAgICAgICAgICAgY2FzZSBMQVRJTl9DQVBJVEFMX0lfV0lUSF9BQ1VURV86IAorICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgoY2hhcilMQVRJTl9TTUFMTF9MRVRURVJfSV8pOworICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgoY2hhcilDT01CSU5JTkdfRE9UX0FCT1ZFXyk7CisgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKChjaGFyKUNPTUJJTklOR19BQ1VURV9BQ0NFTlRfKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAzOworICAgICAgICAgICAgICAgICAgIGNhc2UgTEFUSU5fQ0FQSVRBTF9JX1dJVEhfVElMREVfOgorICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgoY2hhcilMQVRJTl9TTUFMTF9MRVRURVJfSV8pOworICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgoY2hhcilDT01CSU5JTkdfRE9UX0FCT1ZFXyk7CisgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKChjaGFyKUNPTUJJTklOR19USUxERV8pOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDM7CisgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIGxhbmd1YWdlID0gbG9jYWxlLmdldExhbmd1YWdlKCk7CisgICAgICAgICAgICBpZiAobGFuZ3VhZ2UuZXF1YWxzKFRVUktJU0hfKSB8fCBsYW5ndWFnZS5lcXVhbHMoQVpFUkJBSUpBTklfKSkgeyAKKyAgICAgICAgICAgICAgICBpZiAoY2ggPT0gMHgxMzApIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gIyBJIGFuZCBpLWRvdGxlc3M7IEktZG90IGFuZCBpIGFyZSBjYXNlIHBhaXJzIGluIFR1cmtpc2ggCisgICAgICAgICAgICAgICAgICAgIC8vIGFuZCBBemVyaQorICAgICAgICAgICAgICAgICAgICAvLyAjIFRoZSBmb2xsb3dpbmcgcnVsZXMgaGFuZGxlIHRob3NlIGNhc2VzLgorICAgICAgICAgICAgICAgICAgICAvLyAwMTMwOyAwMDY5OyAwMTMwOyAwMTMwOyB0ciAKKyAgICAgICAgICAgICAgICAgICAgLy8gIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRE9UIEFCT1ZFCisgICAgICAgICAgICAgICAgICAgIC8vIDAxMzA7IDAwNjk7IDAxMzA7IDAxMzA7IGF6IAorICAgICAgICAgICAgICAgICAgICAvLyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBET1QgQUJPVkUKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChMQVRJTl9TTUFMTF9MRVRURVJfSV8pOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIGlmIChjaCA9PSAweDMwNyAmJiBpc1ByZWNlZGVkQnlTb2Z0RG90dGVkKHVjaGFyaXRlciwgb2Zmc2V0KSkgeworICAgICAgICAgICAgICAgICAgICAvLyAjIyMgVE9ETyBzZWUgY29tbWVudCBhYm92ZSBhYm91dCBpc0FmdGVyX0koKQorICAgICAgICAgICAgICAgICAgICAvLyAjIFdoZW4gbG93ZXJjYXNpbmcsIHJlbW92ZSBkb3RfYWJvdmUgaW4gdGhlIHNlcXVlbmNlIAorICAgICAgICAgICAgICAgICAgICAvLyBJICsgZG90X2Fib3ZlLCB3aGljaCB3aWxsIHR1cm4gaW50byBpLgorICAgICAgICAgICAgICAgICAgICAvLyAjIFRoaXMgbWF0Y2hlcyB0aGUgYmVoYXZpb3Igb2YgdGhlIGNhbm9uaWNhbGx5CisgICAgICAgICAgICAgICAgICAgIC8vIGVxdWl2YWxlbnQgSS1kb3RfYWJvdmUKKyAgICAgICAgICAgICAgICAgICAgLy8gMDMwNzsgOyAwMzA3OyAwMzA3OyB0ciBBZnRlcl9Tb2Z0X0RvdHRlZDsgCisgICAgICAgICAgICAgICAgICAgIC8vICMgQ09NQklOSU5HIERPVCBBQk9WRQorICAgICAgICAgICAgICAgICAgICAvLyAwMzA3OyA7IDAzMDc7IDAzMDc7IGF6IEFmdGVyX1NvZnRfRG90dGVkOyAKKyAgICAgICAgICAgICAgICAgICAgLy8gIyBDT01CSU5JTkcgRE9UIEFCT1ZFCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOyAvLyByZW1vdmUgdGhlIGRvdCAoY29udGludWUgd2l0aG91dCBvdXRwdXQpCisKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGNoID09IExBVElOX0NBUElUQUxfTEVUVEVSX0lfICYmIAorICAgICAgICAgICAgICAgICAgICAhaXNGb2xsb3dlZEJ5RG90QWJvdmUodWNoYXJpdGVyLCBvZmZzZXQpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHR1cmtpc2g6IEkgbWFwcyB0byBkb3RsZXNzIGkKKyAgICAgICAgICAgICAgICAgICAgLy8gb3RoZXIgbGFuZ3VhZ2VzIG9yIHR1cmtpc2ggd2l0aCBkZWNvbXBvc2VkIEkrZG90IGFib3ZlOiAKKyAgICAgICAgICAgICAgICAgICAgLy8gSSBtYXBzIHRvIGkKKyAgICAgICAgICAgICAgICAgICAgLy8gIyBXaGVuIGxvd2VyY2FzaW5nLCB1bmxlc3MgYW4gSSBpcyBiZWZvcmUgYSBkb3RfYWJvdmUsIAorICAgICAgICAgICAgICAgICAgICAvLyBpdCB0dXJucyBpbnRvIGEgZG90bGVzcyBpLgorICAgICAgICAgICAgICAgICAgICAvLyAgMDA0OTsgMDEzMTsgMDA0OTsgMDA0OTsgdHIgTm90X0JlZm9yZV9Eb3Q7IAorICAgICAgICAgICAgICAgICAgICAvLyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkKKyAgICAgICAgICAgICAgICAgICAgLy8gMDA0OTsgMDEzMTsgMDA0OTsgMDA0OTsgYXogTm90X0JlZm9yZV9Eb3Q7IAorICAgICAgICAgICAgICAgICAgICAvLyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChMQVRJTl9TTUFMTF9MRVRURVJfRE9UTEVTU19JXyk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICAKKwkJCWlmIChjaCA9PSAweDEzMCkgeworICAgICAgICAgICAgICAgIC8vIGRlY29tcG9zZWQgSStkb3QgYWJvdmUgYmVjb21lcyBpIChzZWUgaGFuZGxpbmcgb2YgCisgICAgICAgICAgICAgICAgLy8gVSswMDQ5IGZvciB0dXJraXNoKSBhbmQgcmVtb3ZlcyB0aGUgZG90IGFib3ZlCisgICAgICAgICAgICAgICAgLy8gIyBQcmVzZXJ2ZSBjYW5vbmljYWwgZXF1aXZhbGVuY2UgZm9yIEkgd2l0aCBkb3QuIFR1cmtpYyBpcyAKKyAgICAgICAgICAgICAgICAvLyBoYW5kbGVkIGJlbG93LgorICAgICAgICAgICAgICAgIC8vIDAxMzA7IDAwNjkgMDMwNzsgMDEzMDsgMDEzMDsgCisgICAgICAgICAgICAgICAgLy8gIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRE9UIEFCT1ZFCisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChMQVRJTl9TTUFMTF9MRVRURVJfSV8pOworICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoQ09NQklOSU5HX0RPVF9BQk9WRV8pOworICAgICAgICAgICAgICAgIHJldHVybiAyOyAvLyByZW1vdmUgdGhlIGRvdCAoY29udGludWUgd2l0aG91dCBvdXRwdXQpCisgICAgICAgICAgICB9IAorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoY2ggPT0gR1JFRUtfQ0FQSVRBTF9MRVRURVJfU0lHTUFfICYmIAorICAgICAgICAgICAgICAgIGlzQ0ZJTkFMKHVjaGFyaXRlciwgb2Zmc2V0KSAmJiAKKyAgICAgICAgICAgICAgICBpc05vdENJTklUSUFMKHVjaGFyaXRlciwgb2Zmc2V0KSkgeworICAgICAgICAgICAgICAgIC8vIGdyZWVrIGNhcGl0YWwgc2lnbWEgbWFwcyBkZXBlbmRpbmcgb24gc3Vycm91bmRpbmcgY2FzZWQgCisgICAgICAgICAgICAgICAgLy8gbGV0dGVycworICAgICAgICAgICAgICAgIC8vIGdyZWVrIGNhcGl0YWwgc2lnbWEgbWFwcyBkZXBlbmRpbmcgb24gc3Vycm91bmRpbmcgY2FzZWQgCisgICAgICAgICAgICAgICAgLy8gbGV0dGVycyAoc2VlIFNwZWNpYWxDYXNpbmcudHh0KSAqLworICAgICAgICAgICAgICAgIC8vICMgU3BlY2lhbCBjYXNlIGZvciBmaW5hbCBmb3JtIG9mIHNpZ21hCisgICAgICAgICAgICAgICAgLy8gMDNBMzsgMDNDMjsgMDNBMzsgMDNBMzsgRmluYWxfU2lnbWE7IAorICAgICAgICAgICAgICAgIC8vICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgU0lHTUEKKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKEdSRUVLX1NNQUxMX0xFVFRFUl9SSE9fKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICAKKwkJCS8vIG5vIGtub3duIGNvbmRpdGlvbmFsIHNwZWNpYWwgY2FzZSBtYXBwaW5nLCB1c2UgYSBub3JtYWwgbWFwcGluZworICAgICAgICAgICAgaWYgKGhhc0V4Y2VwdGlvblZhbHVlKGluZGV4LCBVQ2hhcmFjdGVyUHJvcGVydHkuRVhDX0xPV0VSQ0FTRV8pKSB7CisgICAgICAgICAgICAgICAgaW50IG9sZGxlbmd0aCA9IGJ1ZmZlci5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQoYnVmZmVyLCBnZXRFeGNlcHRpb24oaW5kZXgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyUHJvcGVydHkuRVhDX0xPV0VSQ0FTRV8pKTsgCisgICAgICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlci5sZW5ndGgoKSAtIG9sZGxlbmd0aDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKwkJCVVURjE2LmFwcGVuZChidWZmZXIsIGNoKTsKKwkJCXJldHVybiBVVEYxNi5nZXRDaGFyQ291bnQoY2gpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gZ2V0IHRoZSBzcGVjaWFsIGNhc2UgbWFwcGluZyBzdHJpbmcgZnJvbSB0aGUgZGF0YSBmaWxlCisgICAgICAgICAgICBpbmRleCA9IGV4Y2VwdGlvbiAmIExBU1RfQ0hBUl9NQVNLXzsKKyAgICAgICAgICAgIGludCBvbGRsZW5ndGggPSBidWZmZXIubGVuZ3RoKCk7CisgICAgICAgICAgICBnZXRMb3dlckNhc2UoaW5kZXgsIGJ1ZmZlcik7CisgICAgICAgICAgICByZXR1cm4gYnVmZmVyLmxlbmd0aCgpIC0gb2xkbGVuZ3RoOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGxvd2VyIGNhc2UgbWFwIG9mIHRoZSBhcmd1bWVudCBjb2RlcG9pbnQKKyAgICAgKiBAcGFyYW0gbG9jYWxlIGxvY2FsZSB3aGljaCB0aGUgbG93ZXJjYXNlIGlzIGxvb2tlZCBmb3IKKyAgICAgKiBAcGFyYW0gY2ggY29kZXBvaW50IHdob3NlIGxvd2VyIGNhc2UgaXMgdG8gYmUgbWF0Y2hlZAorICAgICAqIEBwYXJhbSB1Y2hhcml0ZXIgdGV4dCBpdGVyYXRvciBwb3NpdGlvbmVkIGF0IHRoZSBjb2RlcG9pbnQgY2gKKyAgICAgKiBAcGFyYW0gYnVmZmVyIGJ1ZmZlciB0byBzdG9yZSByZXN1bHQgc3RyaW5nCisgICAgICogQHJldHVybiBzaXplIG9mIHRoZSBsb3dlcmNhc2VkIGNvZGVwb2ludCBpbiBVVEYxNiBmb3JtYXQKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IHRvTG93ZXJDYXNlKExvY2FsZSBsb2NhbGUsIGludCBjaCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvciB1Y2hhcml0ZXIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyKQorICAgIHsKKyAgICAJaW50IHByb3BzID0gZ2V0UHJvcGVydHkoY2gpOworICAgICAgICBpZiAoIVVDaGFyYWN0ZXJQcm9wZXJ0eS5pc0V4Y2VwdGlvbkluZGljYXRvcihwcm9wcykpIHsKKyAgICAgICAgICAgIGludCB0eXBlID0gVUNoYXJhY3RlclByb3BlcnR5LmdldFByb3BUeXBlKHByb3BzKTsKKyAgICAgICAgICAgIGlmICh0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5VUFBFUkNBU0VfTEVUVEVSIHx8CisgICAgICAgICAgICAgICAgdHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVElUTEVDQVNFX0xFVFRFUikgeworICAgICAgICAgICAgICAgIGNoICs9IFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRTaWduZWRWYWx1ZShwcm9wcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgaW5kZXggPSBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0RXhjZXB0aW9uSW5kZXgocHJvcHMpOworICAgICAgICAgICAgaWYgKGhhc0V4Y2VwdGlvblZhbHVlKGluZGV4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3RlclByb3BlcnR5LkVYQ19TUEVDSUFMX0NBU0lOR18pKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGdldFNwZWNpYWxMb3dlckNhc2UobG9jYWxlLCBpbmRleCwgY2gsIHVjaGFyaXRlciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyKTsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBpZiAoaGFzRXhjZXB0aW9uVmFsdWUoaW5kZXgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3RlclByb3BlcnR5LkVYQ19MT1dFUkNBU0VfKSkgeworICAgICAgICAgICAgICAgIGNoID0gZ2V0RXhjZXB0aW9uKGluZGV4LCBVQ2hhcmFjdGVyUHJvcGVydHkuRVhDX0xPV0VSQ0FTRV8pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIFVURjE2LmFwcGVuZChidWZmZXIsIGNoKTsKKyAgICAgICAgcmV0dXJuIFVURjE2LmdldENoYXJDb3VudChjaCk7CisJfQorCisJLyoqCisgICAgICogR2V0cyB0aGUgbG93ZXIgY2FzZSBtYXAgb2YgdGhlIGFyZ3VtZW50IGNvZGVwb2ludAorICAgICAqIEBwYXJhbSBsb2NhbGUgbG9jYWxlIHdoaWNoIHRoZSBsb3dlcmNhc2UgaXMgbG9va2VkIGZvcgorICAgICAqIEBwYXJhbSBjaCBjb2RlcG9pbnQgd2hvc2UgbG93ZXIgY2FzZSBpcyB0byBiZSBtYXRjaGVkCisgICAgICogQHBhcmFtIHVjaGFyaXRlciB0ZXh0IGl0ZXJhdG9yIHBvc2l0aW9uZWQgYXQgdGhlIGNvZGVwb2ludCBjaAorICAgICAqIEBwYXJhbSByZXN1bHQgYXJyYXkgb2YgY2hhciB0byBzdG9yZSB0aGUgcmVzdWx0CisgICAgICogQHJldHVybiBzaXplIG9mbG93ZXJjYXNlZCBjb2RlcG9pbnQgaW4gVVRGMTYgZm9ybWF0CisgICAgICovCisgICAgcHVibGljIGludCB0b0xvd2VyQ2FzZShMb2NhbGUgbG9jYWxlLCBpbnQgY2gsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZUNoYXJhY3Rlckl0ZXJhdG9yIHVjaGFyaXRlciwgY2hhciBidWZmZXJbXSkKKyAgICB7CisgICAgICAgIGludCBwcm9wcyA9IGdldFByb3BlcnR5KGNoKTsKKyAgICAgICAgaWYgKCFVQ2hhcmFjdGVyUHJvcGVydHkuaXNFeGNlcHRpb25JbmRpY2F0b3IocHJvcHMpKSB7CisgICAgICAgICAgICBpbnQgdHlwZSA9IFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRQcm9wVHlwZShwcm9wcyk7CisgICAgICAgICAgICBpZiAodHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVVBQRVJDQVNFX0xFVFRFUiB8fAorICAgICAgICAgICAgICAgIHR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5LlRJVExFQ0FTRV9MRVRURVIpIHsKKyAgICAgICAgICAgICAgICBjaCArPSBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0U2lnbmVkVmFsdWUocHJvcHMpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaW50IGluZGV4ID0gVUNoYXJhY3RlclByb3BlcnR5LmdldEV4Y2VwdGlvbkluZGV4KHByb3BzKTsKKyAgICAgICAgICAgIGlmIChoYXNFeGNlcHRpb25WYWx1ZShpbmRleCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3RlclByb3BlcnR5LkVYQ19TUEVDSUFMX0NBU0lOR18pKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHN0cmJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoMSk7CisgICAgICAgICAgICAgICAgaW50IHJlc3VsdCA9IGdldFNwZWNpYWxMb3dlckNhc2UobG9jYWxlLCBpbmRleCwgY2gsIHVjaGFyaXRlciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyYnVmZmVyKTsKKyAgICAgICAgICAgICAgICBzdHJidWZmZXIuZ2V0Q2hhcnMoMCwgcmVzdWx0LCBidWZmZXIsIDApOworICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgaWYgKGhhc0V4Y2VwdGlvblZhbHVlKGluZGV4LCBVQ2hhcmFjdGVyUHJvcGVydHkuRVhDX0xPV0VSQ0FTRV8pKSB7CisgICAgICAgICAgICAgICAgY2ggPSBnZXRFeGNlcHRpb24oaW5kZXgsIFVDaGFyYWN0ZXJQcm9wZXJ0eS5FWENfTE9XRVJDQVNFXyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNoIDwgVVRGMTYuU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUpIHsKKyAgICAgICAgCWJ1ZmZlclswXSA9IChjaGFyKWNoOworICAgICAgICAJcmV0dXJuIDE7CisgICAgICAgIH0KKyAgICAgICAgYnVmZmVyWzBdID0gVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZShjaCk7CisgICAgICAgIGJ1ZmZlclsxXSA9IFVURjE2LmdldFRyYWlsU3Vycm9nYXRlKGNoKTsKKyAgICAgICAgcmV0dXJuIDI7CisJfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGxvd2VyIGNhc2UgbWFwcGluZ3Mgb2YgdGhlIHN1YnN0cmluZyBmcm9tIGluZGV4IHN0YXJ0IHRvIHRoZQorICAgICAqIGNoYXJhY3RlciBiZWZvcmUgZW5kLgorICAgICAqIEBwYXJhbSBsb2NhbGUgbG9jYWxlIHdoaWNoIHRoZSBtYXBwaW5ncyB3aWxsIGJlIHNlYXJjaGVkCisgICAgICogQHBhcmFtIHN0ciBzdHJpbmcgdG8gbWFwIAorICAgICAqIEBwYXJhbSBzdGFydCBzdGFydCBpbmRleCBvZiB0aGUgc3Vic3RyaW5nIHRvIG1hcAorICAgICAqIEBwYXJhbSBsaW1pdCBvbmUgaW5kZXggcGFzcyB0aGUgbGFzdCBjaGFyYWN0ZXIgdG8gbWFwCisgICAgICogQHBhcmFtIHJlc3VsdCBzdHJpbmcgYnVmZmVyIHRvIHN0b3JlIGxvd2VyIGNhc2Ugc3RyaW5nCisgICAgICovCisgICAgcHVibGljIHZvaWQgdG9Mb3dlckNhc2UoTG9jYWxlIGxvY2FsZSwgU3RyaW5nIHN0ciwgaW50IHN0YXJ0LCBpbnQgbGltaXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQpIAorICAgIHsKKyAgICAgICAgVW5pY29kZUNoYXJhY3Rlckl0ZXJhdG9yIHVjaGFySXRlciA9IG5ldyBVbmljb2RlQ2hhcmFjdGVySXRlcmF0b3Ioc3RyKTsKKyAgICAgICAgaW50ICAgICAgICAgICAgICAgIHN0ckluZGV4ICA9IHN0YXJ0OworICAgICAgICAKKyAgICAgICAgd2hpbGUgKHN0ckluZGV4IDwgbGltaXQpIHsgCisgICAgICAgIAl1Y2hhckl0ZXIuc2V0SW5kZXgoc3RySW5kZXgpOworCSAgICAgICAgaW50IGNoID0gdWNoYXJJdGVyLmN1cnJlbnRDb2RlUG9pbnQoKTsKKwkgICAgICAgIAorCSAgICAgICAgdG9Mb3dlckNhc2UobG9jYWxlLCBjaCwgdWNoYXJJdGVyLCByZXN1bHQpOworCSAgICAgICAgc3RySW5kZXggKys7CisJICAgICAgICBpZiAoY2ggPj0gVVRGMTYuU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUpIHsKKwkgICAgICAgIAlzdHJJbmRleCArKzsKKwkgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIFNwZWNpYWwgY2FzaW5nIHVwcGVyY2FzZSBtYW5hZ2VtZW50CisgICAgKiBAcGFyYW0gbG9jYWxlIGxvY2FsZSB3aGljaCB0aGUgbWFwcGluZ3Mgd2lsbCBiZSBiYXNlZCBvbgorICAgICogQHBhcmFtIGluZGV4IG9mIGV4Y2VwdGlvbiBjb250YWluaW5nIHNwZWNpYWwgY2FzZSBpbmZvcm1hdGlvbgorICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgdG8gY29udmVydAorICAgICogQHBhcmFtIHVjaGFyaXRlciB0ZXh0IGl0ZXJhdG9yIHdoaWNoIGNoIGJlbG9uZ3MgdG8KKyAgICAqIEBwYXJhbSB1cHBlcmZsYWcgdHJ1ZSBpZiB1cHBlcmNhc2UgbWFwcGluZyBpcyBkZXNpcmVkLCBmYWxzZSBmb3IgdGl0bGUgCisgICAgKiAgICAgICAgY2FzaW5nCisgICAgKiBAcGFyYW0gYnVmZmVyIHRvIGFkZCB1cHBlcmNhc2UKKyAgICAqIEByZXR1cm4gc2l6ZSBvZiB1cHBlcmNhc2VkIGNvZGVwb2ludCBpbiBVVEYxNiBmb3JtYXQKKyAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0U3BlY2lhbFVwcGVyT3JUaXRsZUNhc2UoTG9jYWxlIGxvY2FsZSwgaW50IGluZGV4LCBpbnQgY2gsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZUNoYXJhY3Rlckl0ZXJhdG9yIHVjaGFyaXRlciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHVwcGVyZmxhZywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyKQorICAgIHsKKyAgICAgICAgaW50IGV4Y2VwdGlvbiA9IGdldEV4Y2VwdGlvbihpbmRleCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3RlclByb3BlcnR5LkVYQ19TUEVDSUFMX0NBU0lOR18pOworICAgICAgICBpZiAoZXhjZXB0aW9uIDwgMCkgeworICAgICAgICAgICAgU3RyaW5nIGxhbmd1YWdlID0gbG9jYWxlLmdldExhbmd1YWdlKCk7CisgICAgICAgICAgICAvLyB1c2UgaGFyZGNvZGVkIGNvbmRpdGlvbnMgYW5kIG1hcHBpbmdzCisgICAgICAgICAgICBpZiAoKGxhbmd1YWdlLmVxdWFscyhUVVJLSVNIXykgfHwgbGFuZ3VhZ2UuZXF1YWxzKEFaRVJCQUlKQU5JXykpCisgICAgICAgICAgICAgICAgJiYgY2ggPT0gTEFUSU5fU01BTExfTEVUVEVSX0lfKSB7CisgICAgICAgICAgICAgICAgLy8gdHVya2lzaDogaSBtYXBzIHRvIGRvdHRlZCBJCisgICAgICAgICAgICAgICAgLy8gIyBUdXJraXNoIGFuZCBBemVyaQorICAgICAgICAgICAgICAgIC8vICMgSSBhbmQgaS1kb3RsZXNzOyBJLWRvdCBhbmQgaSBhcmUgY2FzZSBwYWlycyBpbiBUdXJraXNoIGFuZCBBemVyaQorICAgICAgICAgICAgICAgIC8vICMgVGhlIGZvbGxvd2luZyBydWxlcyBoYW5kbGUgdGhvc2UgY2FzZXMuCisgICAgICAgICAgICAgICAgLy8gIyBXaGVuIHVwcGVyY2FzaW5nLCBpIHR1cm5zIGludG8gYSBkb3R0ZWQgY2FwaXRhbCBJCisgICAgICAgICAgICAgICAgLy8gMDA2OTsgMDA2OTsgMDEzMDsgMDEzMDsgdHI7ICMgTEFUSU4gU01BTEwgTEVUVEVSIEkKKyAgICAgICAgICAgICAgICAvLyAwMDY5OyAwMDY5OyAwMTMwOyAwMTMwOyBhejsgIyBMQVRJTiBTTUFMTCBMRVRURVIgSQorICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoTEFUSU5fQ0FQSVRBTF9MRVRURVJfSV9XSVRIX0RPVF9BQk9WRV8pOworICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGxhbmd1YWdlLmVxdWFscyhMSVRIVUFOSUFOXykgJiYgY2ggPT0gQ09NQklOSU5HX0RPVF9BQk9WRV8gCisgICAgICAgICAgICAgICAgJiYgaXNQcmVjZWRlZEJ5U29mdERvdHRlZCh1Y2hhcml0ZXIsIHVjaGFyaXRlci5nZXRJbmRleCgpKSkgeworICAgICAgICAgICAgICAgIC8vICMgTGl0aHVhbmlhbgorICAgICAgICAgICAgICAgIC8vICMgTGl0aHVhbmlhbiByZXRhaW5zIHRoZSBkb3QgaW4gYSBsb3dlcmNhc2UgaSB3aGVuIGZvbGxvd2VkIAorICAgICAgICAgICAgICAgIC8vIGJ5IGFjY2VudHMuCisgICAgICAgICAgICAgICAgLy8gIyBSZW1vdmUgRE9UIEFCT1ZFIGFmdGVyICJpIiB3aXRoIHVwcGVyIG9yIHRpdGxlY2FzZQorICAgICAgICAgICAgICAgIC8vIDAzMDc7IDAzMDc7IDsgOyBsdCBBZnRlcl9Tb2Z0X0RvdHRlZDsgIyBDT01CSU5JTkcgRE9UIEFCT1ZFCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxpdGh1YW5pYW46IHJlbW92ZSBET1QgQUJPVkUgYWZ0ZXIgVSswMDY5ICJpIiB3aXRoIAorICAgICAgICAgICAgICAgIC8vIHVwcGVyIG9yIHRpdGxlY2FzZQorICAgICAgICAgICAgICAgIHJldHVybiAwOyAvLyByZW1vdmUgdGhlIGRvdCAoY29udGludWUgd2l0aG91dCBvdXRwdXQpCisgICAgICAgICAgICB9IAorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBubyBrbm93biBjb25kaXRpb25hbCBzcGVjaWFsIGNhc2UgbWFwcGluZywgdXNlIGEgbm9ybWFsIG1hcHBpbmcKKyAgICAgICAgICAgaWYgKCF1cHBlcmZsYWcgJiYgaGFzRXhjZXB0aW9uVmFsdWUoaW5kZXgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3RlclByb3BlcnR5LkVYQ19USVRMRUNBU0VfKSkgeworICAgICAgICAgICAgICAgY2ggPSBnZXRFeGNlcHRpb24oaW5kZXgsIFVDaGFyYWN0ZXJQcm9wZXJ0eS5FWENfVElUTEVDQVNFXyk7ICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgfQorICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgIGlmIChoYXNFeGNlcHRpb25WYWx1ZShpbmRleCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3RlclByb3BlcnR5LkVYQ19VUFBFUkNBU0VfKSkgeworCSAgICAgICAgICAgICAgIGNoID0gZ2V0RXhjZXB0aW9uKGluZGV4LCBVQ2hhcmFjdGVyUHJvcGVydHkuRVhDX1VQUEVSQ0FTRV8pOyAKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgfQorICAgICAgICAgICAKKyAgICAgICAgICAgVVRGMTYuYXBwZW5kKGJ1ZmZlciwgY2gpOworICAgICAgICAgICByZXR1cm4gVVRGMTYuZ2V0Q2hhckNvdW50KGNoKTsKKyAgICAgICAgfQorICAgICAgICAKKwkJLy8gZ2V0IHRoZSBzcGVjaWFsIGNhc2UgbWFwcGluZyBzdHJpbmcgZnJvbSB0aGUgZGF0YSBmaWxlCisgICAgICAgIGluZGV4ID0gZXhjZXB0aW9uICYgTEFTVF9DSEFSX01BU0tfOworICAgICAgICBpbnQgb2xkbGVuZ3RoID0gYnVmZmVyLmxlbmd0aCgpOworICAgICAgICBpZiAodXBwZXJmbGFnKSB7CisJICAgICAgICBnZXRVcHBlckNhc2UoaW5kZXgsIGJ1ZmZlcik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgCWdldFRpdGxlQ2FzZShpbmRleCwgYnVmZmVyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYnVmZmVyLmxlbmd0aCgpIC0gb2xkbGVuZ3RoOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB1cHBlciBvciB0aXRsZSBjYXNlIG1hcCBvZiB0aGUgY29kZXBvaW50CisgICAgICogQHBhcmFtIGxvY2FsZSBsb2NhbGUgd2hpY2ggdGhlIG1hcHBpbmdzIHdpbGwgYmUgc2VhcmNoZWQgCisgICAgICogQHBhcmFtIGNoIGNvZGVwb2ludCB3aG9zZSB1cHBlciBvciB0aXRsZSBjYXNlIHdpbGwgYmUgbWFwcGVkCisgICAgICogQHBhcmFtIHVjaGFyaXRlciB0ZXh0IGl0ZXJhdG9yIHBvc2l0aW9uZWQgYXQgdGhlIGNvZGVwb2ludAorICAgICAqIEBwYXJhbSB1cHBlcmZsYWcgZmxhZyB0cnVlIGlmIHVwcGVyY2FzZSBpcyBkZXNpcmVkLCBmYWxzZSBmb3IgdGl0bGUgY2FzZQorICAgICAqIEBwYXJhbSBidWZmZXIgYnVmZmVyIHRvIHN0b3JlIHJlc3VsdCBtYXAKKyAgICAgKiBAcmV0dXJuIHNpemUgb2YgdXBwZXJjYXNlZCBjb2RlcG9pbnQgaW4gVVRGMTYgZm9ybWF0CisgICAgICovCisJcHVibGljIGludCB0b1VwcGVyT3JUaXRsZUNhc2UoTG9jYWxlIGxvY2FsZSwgaW50IGNoLCAKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlQ2hhcmFjdGVySXRlcmF0b3IgdWNoYXJpdGVyLCAKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHVwcGVyZmxhZywgU3RyaW5nQnVmZmVyIGJ1ZmZlcikgCisgICAgeworICAgICAgICBpbnQgcHJvcHMgPSBnZXRQcm9wZXJ0eShjaCk7CisgICAgICAgIGlmICghVUNoYXJhY3RlclByb3BlcnR5LmlzRXhjZXB0aW9uSW5kaWNhdG9yKHByb3BzKSkgeworICAgICAgICAgICAgaW50IHR5cGUgPSBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UHJvcFR5cGUocHJvcHMpOworICAgICAgICAgICAgaWYgKHR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5LkxPV0VSQ0FTRV9MRVRURVIpIHsKKyAgICAgICAgICAgIAljaCAtPSBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0U2lnbmVkVmFsdWUocHJvcHMpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaW50IGluZGV4ID0gVUNoYXJhY3RlclByb3BlcnR5LmdldEV4Y2VwdGlvbkluZGV4KHByb3BzKTsKKyAgICAgICAgICAgIGlmIChoYXNFeGNlcHRpb25WYWx1ZShpbmRleCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3RlclByb3BlcnR5LkVYQ19TUEVDSUFMX0NBU0lOR18pKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGdldFNwZWNpYWxVcHBlck9yVGl0bGVDYXNlKGxvY2FsZSwgaW5kZXgsIGNoLCB1Y2hhcml0ZXIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cHBlcmZsYWcsIGJ1ZmZlcik7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgaWYgKCF1cHBlcmZsYWcgJiYgaGFzRXhjZXB0aW9uVmFsdWUoaW5kZXgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyUHJvcGVydHkuRVhDX1RJVExFQ0FTRV8pKSB7CisgICAgICAgICAgICAgICAgY2ggPSBnZXRFeGNlcHRpb24oaW5kZXgsIFVDaGFyYWN0ZXJQcm9wZXJ0eS5FWENfVElUTEVDQVNFXyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAJaWYgKGhhc0V4Y2VwdGlvblZhbHVlKGluZGV4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3RlclByb3BlcnR5LkVYQ19VUFBFUkNBU0VfKSkgeworICAgICAgICAgICAgICAgICAgICBjaCA9IGdldEV4Y2VwdGlvbihpbmRleCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJQcm9wZXJ0eS5FWENfVVBQRVJDQVNFXyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIFVURjE2LmFwcGVuZChidWZmZXIsIGNoKTsKKyAgICAgICAgcmV0dXJuIFVURjE2LmdldENoYXJDb3VudChjaCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIHVwcGVyIG9yIHRpdGxlIGNhc2UgbWFwIG9mIHRoZSBjb2RlcG9pbnQKKyAgICAgKiBAcGFyYW0gbG9jYWxlIGxvY2FsZSB3aGljaCB0aGUgbWFwcGluZ3Mgd2lsbCBiZSBzZWFyY2hlZCAKKyAgICAgKiBAcGFyYW0gY2ggY29kZXBvaW50IHdob3NlIHVwcGVyIG9yIHRpdGxlIGNhc2Ugd2lsbCBiZSBtYXBwZWQKKyAgICAgKiBAcGFyYW0gdWNoYXJpdGVyIHRleHQgaXRlcmF0b3IgcG9zaXRpb25lZCBhdCB0aGUgY29kZXBvaW50CisgICAgICogQHBhcmFtIHVwcGVyZmxhZyBmbGFnIHRydWUgaWYgdXBwZXJjYXNlIGlzIGRlc2lyZWQsIGZhbHNlIGZvciB0aXRsZSBjYXNlCisgICAgICogQHBhcmFtIGJ1ZmZlciBidWZmZXIgdG8gc3RvcmUgcmVzdWx0IG1hcAorICAgICAqIEByZXR1cm4gc2l6ZSBvZiB1cHBlcmNhc2VkIGNvZGVwb2ludCBpbiBVVEYxNiBmb3JtYXQKKyAgICAgKi8KKwlwdWJsaWMgaW50IHRvVXBwZXJPclRpdGxlQ2FzZShMb2NhbGUgbG9jYWxlLCBpbnQgY2gsIAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvciB1Y2hhcml0ZXIsIAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gdXBwZXJmbGFnLCBjaGFyIGJ1ZmZlcltdKSAKKyAgICB7CisgICAgICAgIGludCBwcm9wcyA9IGdldFByb3BlcnR5KGNoKTsKKyAgICAgICAgaWYgKCFVQ2hhcmFjdGVyUHJvcGVydHkuaXNFeGNlcHRpb25JbmRpY2F0b3IocHJvcHMpKSB7CisgICAgICAgICAgICBpbnQgdHlwZSA9IFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRQcm9wVHlwZShwcm9wcyk7CisgICAgICAgICAgICBpZiAodHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTE9XRVJDQVNFX0xFVFRFUikgeworICAgICAgICAgICAgCWNoIC09IFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRTaWduZWRWYWx1ZShwcm9wcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgaW5kZXggPSBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0RXhjZXB0aW9uSW5kZXgocHJvcHMpOworICAgICAgICAgICAgaWYgKGhhc0V4Y2VwdGlvblZhbHVlKGluZGV4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyUHJvcGVydHkuRVhDX1NQRUNJQUxfQ0FTSU5HXykpIHsKKyAgICAgICAgICAgICAgIAlTdHJpbmdCdWZmZXIgc3RyYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigxKTsKKyAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gZ2V0U3BlY2lhbFVwcGVyT3JUaXRsZUNhc2UobG9jYWxlLCBpbmRleCwgY2gsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1Y2hhcml0ZXIsIHVwcGVyZmxhZywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmJ1ZmZlcik7CisgICAgICAgICAgICAgICAgc3RyYnVmZmVyLmdldENoYXJzKDAsIHJlc3VsdCwgYnVmZmVyLCAwKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGlmICghdXBwZXJmbGFnICYmIGhhc0V4Y2VwdGlvblZhbHVlKGluZGV4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3RlclByb3BlcnR5LkVYQ19USVRMRUNBU0VfKSkgeworICAgICAgICAgICAgICAgIGNoID0gZ2V0RXhjZXB0aW9uKGluZGV4LCBVQ2hhcmFjdGVyUHJvcGVydHkuRVhDX1RJVExFQ0FTRV8pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgCWlmIChoYXNFeGNlcHRpb25WYWx1ZShpbmRleCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJQcm9wZXJ0eS5FWENfVVBQRVJDQVNFXykpIHsKKyAgICAgICAgICAgICAgICAgICAgY2ggPSBnZXRFeGNlcHRpb24oaW5kZXgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyUHJvcGVydHkuRVhDX1VQUEVSQ0FTRV8pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoY2ggPCBVVEYxNi5TVVBQTEVNRU5UQVJZX01JTl9WQUxVRSkgeworICAgICAgICAJYnVmZmVyWzBdID0gKGNoYXIpY2g7CisgICAgICAgIAlyZXR1cm4gMTsKKyAgICAgICAgfQorICAgICAgICBidWZmZXJbMF0gPSBVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKGNoKTsKKyAgICAgICAgYnVmZmVyWzFdID0gVVRGMTYuZ2V0VHJhaWxTdXJyb2dhdGUoY2gpOworICAgICAgICByZXR1cm4gMjsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdXBwZXJjYXNpbmcgb2YgdGhlIGFyZ3VtZW50IHN0cmluZy4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIGxvY2FsZSB3aGljaCB0aGUgbWFwcGluZ3Mgd2lsbCBiZSBzZWFyY2hlZAorICAgICAqIEBwYXJhbSBzdHIgc3RyaW5nIHRvIG1hcCAKKyAgICAgKiBAcGFyYW0gc3RhcnQgc3RhcnQgaW5kZXggb2YgdGhlIHN1YnN0cmluZyB0byBtYXAKKyAgICAgKiBAcGFyYW0gbGltaXQgb25lIGluZGV4IHBhc3MgdGhlIGxhc3QgY2hhcmFjdGVyIHRvIG1hcAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9VcHBlckNhc2UoTG9jYWxlIGxvY2FsZSwgU3RyaW5nIHN0ciwgaW50IHN0YXJ0LCBpbnQgbGltaXQpIAorICAgIHsKKyAgICAgICAgVW5pY29kZUNoYXJhY3Rlckl0ZXJhdG9yIHVjaGFySXRlciA9IG5ldyBVbmljb2RlQ2hhcmFjdGVySXRlcmF0b3Ioc3RyKTsKKyAgICAgICAgaW50ICAgICAgICAgICAgICAgIHN0ckluZGV4ICA9IHN0YXJ0OworICAgICAgICBTdHJpbmdCdWZmZXIgICAgICAgcmVzdWx0ICAgID0gbmV3IFN0cmluZ0J1ZmZlcihsaW1pdCAtIHN0YXJ0KTsKKyAgICAgICAgCisgICAgICAgIHdoaWxlIChzdHJJbmRleCA8IGxpbWl0KSB7IAorICAgICAgICAJdWNoYXJJdGVyLnNldEluZGV4KHN0ckluZGV4KTsKKwkgICAgICAgIGludCBjaCA9IHVjaGFySXRlci5jdXJyZW50Q29kZVBvaW50KCk7CisJICAgICAgICAKKwkgICAgICAgIHRvVXBwZXJPclRpdGxlQ2FzZShsb2NhbGUsIGNoLCB1Y2hhckl0ZXIsIHRydWUsIHJlc3VsdCk7CisJICAgICAgICBzdHJJbmRleCArKzsKKwkgICAgICAgIGlmIChjaCA+PSBVVEYxNi5TVVBQTEVNRU5UQVJZX01JTl9WQUxVRSkgeworCSAgICAgICAgCXN0ckluZGV4ICsrOworCSAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiA8cD5HZXRzIHRoZSB0aXRsZWNhc2UgdmVyc2lvbiBvZiB0aGUgYXJndW1lbnQgc3RyaW5nLjwvcD4KKyAgICAqIDxwPlBvc2l0aW9uIGZvciB0aXRsZWNhc2luZyBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBhcmd1bWVudCBicmVhayAKKyAgICAqIGl0ZXJhdG9yLCBoZW5jZSB0aGUgdXNlciBjYW4gY3VzdG9taXplZCBoaXMgYnJlYWsgaXRlcmF0b3IgZm9yIAorICAgICogYSBzcGVjaWFsaXplZCB0aXRsZWNhc2luZy4gSW4gdGhpcyBjYXNlIG9ubHkgdGhlIGZvcndhcmQgaXRlcmF0aW9uIAorICAgICogbmVlZHMgdG8gYmUgaW1wbGVtZW50ZWQuCisgICAgKiBJZiB0aGUgYnJlYWsgaXRlcmF0b3IgcGFzc2VkIGluIGlzIG51bGwsIHRoZSBkZWZhdWx0IFVuaWNvZGUgYWxnb3JpdGhtCisgICAgKiB3aWxsIGJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSB0aXRsZWNhc2UgcG9zaXRpb25zLgorICAgICogPC9wPgorICAgICogPHA+T25seSBwb3NpdGlvbnMgcmV0dXJuZWQgYnkgdGhlIGJyZWFrIGl0ZXJhdG9yIHdpbGwgYmUgdGl0bGUgY2FzZWQsCisgICAgKiBjaGFyYWN0ZXIgaW4gYmV0d2VlbiB0aGUgcG9zaXRpb25zIHdpbGwgYWxsIGJlIGluIGxvd2VyIGNhc2UuPC9wPgorICAgICogPHA+Q2FzaW5nIGlzIGRlcGVuZGVudCBvbiB0aGUgZGVmYXVsdCBsb2NhbGUgYW5kIGNvbnRleHQtc2Vuc2l0aXZlPC9wPgorICAgICogQHBhcmFtIHN0ciBzb3VyY2Ugc3RyaW5nIHRvIGJlIHBlcmZvcm1lZCBvbgorICAgICogQHBhcmFtIGJyZWFraXRlciBicmVhayBpdGVyYXRvciB0byBkZXRlcm1pbmUgdGhlIHBvc2l0aW9ucyBpbiB3aGljaAorICAgICogICAgICAgIHRoZSBjaGFyYWN0ZXIgc2hvdWxkIGJlIHRpdGxlIGNhc2VkLgorICAgICogQHJldHVybiBsb3dlcmNhc2UgdmVyc2lvbiBvZiB0aGUgYXJndW1lbnQgc3RyaW5nCisgICAgKi8KKyAJcHVibGljIFN0cmluZyB0b1RpdGxlQ2FzZShMb2NhbGUgbG9jYWxlLCBTdHJpbmcgc3RyLCAKKyAJICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVha0l0ZXJhdG9yIGJyZWFraXRlcikKKyAJeworIAkJVW5pY29kZUNoYXJhY3Rlckl0ZXJhdG9yIHVjaGFySXRlciA9IG5ldyBVbmljb2RlQ2hhcmFjdGVySXRlcmF0b3Ioc3RyKTsKKwkJaW50ICAgICAgICAgICAgICAgIGxlbmd0aCAgICA9IHN0ci5sZW5ndGgoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyICAgICAgIHJlc3VsdCAgICA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgCisgICAgICAgIGJyZWFraXRlci5zZXRUZXh0KHN0cik7CisgICAgICAgIAorICAgICAgICBpbnQgICAgICAgICAgICAgICAgaW5kZXggICAgID0gYnJlYWtpdGVyLmZpcnN0KCk7CisgICAgICAgCS8vIHRpdGxlY2FzaW5nIGxvb3AKKwkgICAgd2hpbGUgKGluZGV4ICE9IEJyZWFrSXRlcmF0b3IuRE9ORSAmJiBpbmRleCA8IGxlbmd0aCkgeworCSAgICAJLy8gdGl0bGVjYXNlIHRoZSBjaGFyYWN0ZXIgYXQgdGhlIGZvdW5kIGluZGV4CisJICAgICAgICBpbnQgY2ggPSBVVEYxNi5jaGFyQXQoc3RyLCBpbmRleCk7CisJICAgICAgICB1Y2hhckl0ZXIuc2V0SW5kZXgoaW5kZXgpOworCSAgICAgICAgaW5kZXggKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNoKTsKKyAgICAgICAgCXRvVXBwZXJPclRpdGxlQ2FzZShsb2NhbGUsIGNoLCB1Y2hhckl0ZXIsIGZhbHNlLCByZXN1bHQpOworICAgICAgICAJaW50IG5leHQgPSBicmVha2l0ZXIubmV4dCgpOworICAgICAgICAJaWYgKGluZGV4ICE9IEJyZWFrSXRlcmF0b3IuRE9ORSAmJiBpbmRleCA8IG5leHQpIHsKKwkgICAgICAgIAkvLyBsb3dlcmNhc2UgW3ByZXYuLmluZGV4XQorICAgICAgICAJCXRvTG93ZXJDYXNlKGxvY2FsZSwgc3RyLCBpbmRleCwgbmV4dCwgcmVzdWx0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGluZGV4ID0gbmV4dDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgCX0KKworICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIFVuaWNvZGUgcHJvcGVydHkgbmFtZXMgYW5kIHByb3BlcnR5IHZhbHVlIG5hbWVzIGFyZSBjb21wYXJlZAorICAgICAqICJsb29zZWx5Ii4gUHJvcGVydHlbVmFsdWVdQWxpYXNlcy50eHQgc2F5OgorICAgICAqIDxxdW90ZT4KKyAgICAgKiAgICJXaXRoIGxvb3NlIG1hdGNoaW5nIG9mIHByb3BlcnR5IG5hbWVzLCB0aGUgY2FzZSBkaXN0aW5jdGlvbnMsIAorICAgICAqICAgIHdoaXRlc3BhY2UsIGFuZCAnXycgYXJlIGlnbm9yZWQuIgorICAgICAqIDwvcXVvdGU+CisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFRoaXMgZnVuY3Rpb24gZG9lcyBqdXN0IHRoYXQsIGZvciBBU0NJSSAoY2hhciAqKSBuYW1lIHN0cmluZ3MuCisgICAgICogSXQgaXMgYWxtb3N0IGlkZW50aWNhbCB0byB1Y252X2NvbXBhcmVOYW1lcygpIGJ1dCBhbHNvIGlnbm9yZXMKKyAgICAgKiBBU0NJSSBXaGl0ZV9TcGFjZSBjaGFyYWN0ZXJzIChVKzAwMDkuLlUrMDAwZCkuCisgICAgICogPC9wPgorICAgICAqIEBwYXJhbSBuYW1lMSBuYW1lIHRvIGNvbXBhcmUKKyAgICAgKiBAcGFyYW0gbmFtZTIgbmFtZSB0byBjb21wYXJlCisgICAgICogQHJldHVybiAwIGlmIG5hbWVzIGFyZSBlcXVhbCwgPCAwIGlmIG5hbWUxIGlzIGxlc3MgdGhhbiBuYW1lMiBhbmQgPiAwCisgICAgICogICAgICAgICBpZiBuYW1lMSBpcyBncmVhdGVyIHRoYW4gbmFtZTIuCisgICAgICovCisgICAgLyogdG8gYmUgaW1wbGVtZW50ZWQgaW4gMi40CisgICAgICogcHVibGljIHN0YXRpYyBpbnQgY29tcGFyZVByb3BlcnR5TmFtZXMoU3RyaW5nIG5hbWUxLCBTdHJpbmcgbmFtZTIpIAorICAgIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IDA7CisgICAgICAgIGludCBpMSA9IDA7CisgICAgICAgIGludCBpMiA9IDA7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBjaGFyIGNoMSA9IDA7CisgICAgICAgICAgICBjaGFyIGNoMiA9IDA7CisgICAgICAgICAgICAvLyBJZ25vcmUgZGVsaW1pdGVycyAnLScsICdfJywgYW5kIEFTQ0lJIFdoaXRlX1NwYWNlIAorICAgICAgICAgICAgaWYgKGkxIDwgbmFtZTEubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBjaDEgPSBuYW1lMS5jaGFyQXQoaTEgKyspOworICAgICAgICAgICAgfQorICAgICAgICAgICAgd2hpbGUgKGNoMSA9PSAnLScgfHwgY2gxID09ICdfJyB8fCBjaDEgPT0gJyAnIHx8IGNoMSA9PSAnXHQnIAorICAgICAgICAgICAgICAgICAgIHx8IGNoMSA9PSAnXG4nIC8vIHN5bndlZSB3aGF0IGlzIHx8IGNoMSA9PSAnXHYnCisgICAgICAgICAgICAgICAgICAgfHwgY2gxID09ICdcZicgfHwgY2gxPT0nXHInKSB7CisgICAgICAgICAgICAgICAgaWYgKGkxIDwgbmFtZTEubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgY2gxID0gbmFtZTEuY2hhckF0KGkxICsrKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGNoMSA9IDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGkyIDwgbmFtZTIubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBjaDIgPSBuYW1lMi5jaGFyQXQoaTIgKyspOworICAgICAgICAgICAgfQorICAgICAgICAgICAgd2hpbGUgKGNoMiA9PSAnLScgfHwgY2gyID09ICdfJyB8fCBjaDIgPT0gJyAnIHx8IGNoMiA9PSAnXHQnIAorICAgICAgICAgICAgICAgICAgIHx8IGNoMiA9PSAnXG4nIC8vIHN5bndlZSB3aGF0IGlzIHx8IGNoMSA9PSAnXHYnIAorICAgICAgICAgICAgICAgICAgIHx8IGNoMiA9PSAnXGYnIHx8IGNoMj09J1xyJykgeworICAgICAgICAgICAgICAgIGlmIChpMiA8IG5hbWUyLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGNoMiA9IG5hbWUyLmNoYXJBdChpMiArKyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBjaDIgPSAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8vIElmIHdlIHJlYWNoIHRoZSBlbmRzIG9mIGJvdGggc3RyaW5ncyB0aGVuIHRoZXkgbWF0Y2gKKyAgICAgICAgICAgIGlmIChjaDEgPT0gMCAmJiBjaDIgPT0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBDYXNlLWluc2Vuc2l0aXZlIGNvbXBhcmlzb24KKyAgICAgICAgICAgIGlmIChjaDEgIT0gY2gyKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKGNoMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKGNoMik7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgICovCisgICAgCisgICAgLyoqCisgICAgICogQ2hlY2tzIGlmIHRoZSBhcmd1bWVudCBjIGlzIHRvIGJlIHRyZWF0ZWQgYXMgYSB3aGl0ZSBzcGFjZSBpbiBJQ1UKKyAgICAgKiBydWxlcy4gVXN1YWxseSBJQ1UgcnVsZSB3aGl0ZSBzcGFjZXMgYXJlIGlnbm9yZWQgdW5sZXNzIHF1b3RlZC4KKyAgICAgKiBAcGFyYW0gYyBjb2RlcG9pbnQgdG8gY2hlY2sKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgYyBpcyBhIElDVSB3aGl0ZSBzcGFjZQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1J1bGVXaGl0ZVNwYWNlKGludCBjKSAKKyAgICB7CisgICAgICAgIC8vICJ3aGl0ZSBzcGFjZSIgaW4gdGhlIHNlbnNlIG9mIElDVSBydWxlIHBhcnNlcnM6IENmK1doaXRlX1NwYWNlCisgICAgICAgIFVDaGFyYWN0ZXJQcm9wZXJ0eSBwcm9wZXJ0eSA9IFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRJbnN0YW5jZSgpOworICAgICAgICByZXR1cm4gcHJvcGVydHkuZ2V0VHlwZShjKSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuRk9STUFUIHx8CisgICAgICAgICAgICAgICBwcm9wZXJ0eS5oYXNCaW5hcnlQcm9wZXJ0eShjLCBVUHJvcGVydHkuV0hJVEVfU1BBQ0UpOworICAgIH0KKworICAgIC8vIHByb3RlY3RlZCB2YXJpYWJsZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgCisgICAgLyoqCisgICAgKiBDYXNlIHRhYmxlCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgY2hhciBtX2Nhc2VfW107CisgICAgICAKKyAgICAvKioKKyAgICAqIEV4Y2VwdGlvbiBwcm9wZXJ0eSB0YWJsZQorICAgICovCisgICAgcHJvdGVjdGVkIGludCBtX2V4Y2VwdGlvbl9bXTsKKyAgICAvKioKKyAgICAgKiBFeHRyYSBwcm9wZXJ0eSB0cmllCisgICAgICovCisgICAgcHJvdGVjdGVkIENoYXJUcmllIG1fYWRkaXRpb25hbFRyaWVfOworICAgIC8qKgorICAgICAqIEV4dHJhIHByb3BlcnR5IHZlY3RvcnMsIDFzdCBjb2x1bW4gZm9yIGFnZSBhbmQgc2Vjb25kIGZvciBiaW5hcnkgCisgICAgICogcHJvcGVydGllcy4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IG1fYWRkaXRpb25hbFZlY3RvcnNfW107CisgICAgLyoqCisgICAgICogTnVtYmVyIG9mIGFkZGl0aW9uYWwgY29sdW1ucworICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgbV9hZGRpdGlvbmFsQ29sdW1uc0NvdW50XzsKKyAgICAKKyAgICAvLyBwcml2YXRlIHZhcmlhYmxlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIAorICAJLyoqCisgICAgICogVW5pY29kZURhdGEudHh0IHByb3BlcnR5IG9iamVjdAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVUNoYXJhY3RlclByb3BlcnR5IElOU1RBTkNFXyA9IG51bGw7ICAgCisgICAgICAgIAorICAgIC8qKgorICAgICogRGVmYXVsdCBuYW1lIG9mIHRoZSBkYXRhZmlsZQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEFfRklMRV9OQU1FXyA9ICJkYXRhL3Vwcm9wcy5pY3UiOworICAgICAgCisgICAgLyoqCisgICAgKiBEZWZhdWx0IGJ1ZmZlciBzaXplIG9mIGRhdGFmaWxlCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREFUQV9CVUZGRVJfU0laRV8gPSAyNTAwMDsKKyAgICAgIAorICAgIC8qKgorICAgICogVGhpcywgZnJvbSB3aGF0IGkgaW5mZXIgaXMgdGhlIG1heCBzaXplIG9mIHRoZSBpbmRpY2F0b3JzIHVzZWQgZm9yIHRoZQorICAgICogZXhjZXB0aW9uIHZhbHVlcy4KKyAgICAqIE51bWJlciBvZiBiaXRzIGluIGFuIDgtYml0IGludGVnZXIgdmFsdWUgCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhDX0dST1VQXyA9IDg7CisgICAgICAKKyAgICAvKioKKyAgICAqIE1hc2sgdG8gZ2V0IHRoZSBncm91cCAgCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhDX0dST1VQX01BU0tfID0gMjU1OworICAgICAgCisgICAgLyoqCisgICAgKiBNYXNrIHRvIGdldCB0aGUgZGlnaXQgdmFsdWUgaW4gdGhlIGV4Y2VwdGlvbiByZXN1bHQKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWENfRElHSVRfTUFTS18gPSAweEZGRkY7CisgICAgICAKKyAgICAvKioKKyAgICAqIE9mZnNldCB0YWJsZSBmb3IgZGF0YSBpbiBleGNlcHRpb24gYmxvY2suPGJyPgorICAgICogVGFibGUgZm9ybWVkIGJ5IHRoZSBudW1iZXIgb2YgYml0cyB1c2VkIGZvciB0aGUgaW5kZXgsIGUuZy4gMCA9IDAgYml0cywgCisgICAgKiAxID0gMSBiaXRzLgorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBGTEFHU19PRkZTRVRfW10gPSAKKyAgICB7CisgICAgICAgIDAsIDEsIDEsIDIsIDEsIDIsIDIsIDMsIDEsIDIsIDIsIDMsIDIsIDMsIDMsIDQsCisgICAgICAgIDEsIDIsIDIsIDMsIDIsIDMsIDMsIDQsIDIsIDMsIDMsIDQsIDMsIDQsIDQsIDUsCisgICAgICAgIDEsIDIsIDIsIDMsIDIsIDMsIDMsIDQsIDIsIDMsIDMsIDQsIDMsIDQsIDQsIDUsCisgICAgICAgIDIsIDMsIDMsIDQsIDMsIDQsIDQsIDUsIDMsIDQsIDQsIDUsIDQsIDUsIDUsIDYsCisgICAgICAgIDEsIDIsIDIsIDMsIDIsIDMsIDMsIDQsIDIsIDMsIDMsIDQsIDMsIDQsIDQsIDUsCisgICAgICAgIDIsIDMsIDMsIDQsIDMsIDQsIDQsIDUsIDMsIDQsIDQsIDUsIDQsIDUsIDUsIDYsCisgICAgICAgIDIsIDMsIDMsIDQsIDMsIDQsIDQsIDUsIDMsIDQsIDQsIDUsIDQsIDUsIDUsIDYsCisgICAgICAgIDMsIDQsIDQsIDUsIDQsIDUsIDUsIDYsIDQsIDUsIDUsIDYsIDUsIDYsIDYsIDcsCisgICAgICAgIDEsIDIsIDIsIDMsIDIsIDMsIDMsIDQsIDIsIDMsIDMsIDQsIDMsIDQsIDQsIDUsCisgICAgICAgIDIsIDMsIDMsIDQsIDMsIDQsIDQsIDUsIDMsIDQsIDQsIDUsIDQsIDUsIDUsIDYsCisgICAgICAgIDIsIDMsIDMsIDQsIDMsIDQsIDQsIDUsIDMsIDQsIDQsIDUsIDQsIDUsIDUsIDYsCisgICAgICAgIDMsIDQsIDQsIDUsIDQsIDUsIDUsIDYsIDQsIDUsIDUsIDYsIDUsIDYsIDYsIDcsCisgICAgICAgIDIsIDMsIDMsIDQsIDMsIDQsIDQsIDUsIDMsIDQsIDQsIDUsIDQsIDUsIDUsIDYsCisgICAgICAgIDMsIDQsIDQsIDUsIDQsIDUsIDUsIDYsIDQsIDUsIDUsIDYsIDUsIDYsIDYsIDcsCisgICAgICAgIDMsIDQsIDQsIDUsIDQsIDUsIDUsIDYsIDQsIDUsIDUsIDYsIDUsIDYsIDYsIDcsCisgICAgICAgIDQsIDUsIDUsIDYsIDUsIDYsIDYsIDcsIDUsIDYsIDYsIDcsIDYsIDcsIDcsIDgKKyAgICB9OworICAgICAgCisgICAgLyoqCisgICAgKiBOdW1lcmljIHZhbHVlIHNoaWZ0CisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVkFMVUVfU0hJRlRfID0gMjA7CisgICAgICAKKyAgICAvKioKKyAgICAqIEV4Y2VwdGlvbiB0ZXN0IG1hc2sKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWENFUFRJT05fTUFTS18gPSAweDIwOworICAgICAgCisgICAgLyoqCisgICAgKiBNYXNrIHRvIGJlIGFwcGxpZWQgYWZ0ZXIgc2hpZnRpbmcgdG8gb2J0YWluIGFuIHVuc2lnbmVkIG51bWVyaWMgdmFsdWUKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBVTlNJR05FRF9WQUxVRV9NQVNLX0FGVEVSX1NISUZUXyA9IDB4N0ZGOworICAgIAorICAgIC8qKgorICAgICogU2hpZnQgdG8gZ2V0IGJpZGkgYml0cworICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEJJRElfU0hJRlRfID0gNjsKKyAgICAgIAorICAgIC8qKgorICAgICogTWFzayB0byBiZSBhcHBsaWVkIGFmdGVyIHNoaWZ0aW5nIHRvIGdldCBiaWRpIGJpdHMKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBCSURJX01BU0tfQUZURVJfU0hJRlRfID0gMHgxRjsKKyAgICAgIAorICAgIC8qKgorICAgICogTWlycm9yIHRlc3QgbWFzaworICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1JUlJPUl9NQVNLXyA9IDEgPDwgMTE7CisgICAgCisgICAgLyoqCisgICAgICogU2hpZnQgdG8gZ2V0IG51bWVyaWMgdHlwZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOVU1FUklDX1RZUEVfU0hJRlRfID0gMTI7CisgICAgCisgICAgLyoqCisgICAgICogTWFzayB0byBnZXQgbnVtZXJpYyB0eXBlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5VTUVSSUNfVFlQRV9NQVNLXyA9IDB4NzsKKworCS8qKgorCSAqIFNoaWZ0IHRvIGdldCByZXNlcnZlZCB2YWx1ZQorCSAqLworCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBSRVNFUlZFRF9TSElGVF8gPSAxNTsKKwkKKwkvKioKKwkgKiBCaXQgaW5kaWNhdGluZyBleGNlcHRpb24KKwkgKi8KKyAgCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWENFUFRJT05fQklUID0gMSA8PCA1OworICAJCisgIAkvKiogCisgIAkgKiBCaXQgdG8gZ2V0IHRoZSBhY3R1YWwgcHJvcGVydHkgdmFsdWUKKyAgCSAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBWQUxVRV9CSVRTXyA9IDB4MTAwMDAgLSBWQUxVRV9TSElGVF87CisKKwkvKioKKwkgKiBNaW5pbXVtIHZhbHVlIG9mIGEgcHJvcGVydHkKKwkgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUlOX1ZBTFVFXyA9IC0oMSA8PCAoVkFMVUVfQklUU18gLSAxKSk7CisgICAgCisgICAgLyoqCisgICAgICogTWF4aW11bSB2YWx1ZSBvZiBhIHByb3BlcnR5CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1BWF9WQUxVRV8gPSAoMSA8PCAoVkFMVUVfQklUU18gLSAxKSkgLSAxOworICAgIC8qKgorICAgICAqIE1heGltdW0gbnVtYmVyIG9mIGV4Y2VwdGlvbnMKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgTUFYX0VYQ0VQVElPTlNfQ09VTlRfID0gMSA8PCBWQUxVRV9CSVRTXzsKKworICAgICAgCisgICAgLyoqCisgICAgKiBUbyBnZXQgdGhlIGxhc3QgNSBiaXRzIG91dCBmcm9tIGEgZGF0YSB0eXBlCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEFTVF81X0JJVF9NQVNLXyA9IDB4MUY7CisgICAgICAKKyAgICAvKioKKyAgICAqIFNoaWZ0IDUgYml0cworICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNISUZUXzVfID0gNTsKKyAgICAvKioKKyAgICAqIFNoaWZ0IDEwIGJpdHMKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTSElGVF8xMF8gPSAxMDsKKyAgICAgIAorICAgIC8qKgorICAgICogRm9sZGluZyBpbmRpY2F0b3IgbWFzaworICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNVUFBMRU1FTlRBUllfRk9MRF9JTkRJQ0FUT1JfTUFTS18gPSAweDgwMDA7CisgICAgLyoqCisgICAgKiBGb2xkaW5nIG9mZnNldCBtYXNrCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1VQUExFTUVOVEFSWV9GT0xEX09GRlNFVF9NQVNLXyA9IDB4N0ZGRjsKKyAgICAvKioKKyAgICAqIFNoaWZ0IHZhbHVlIGZvciBsZWFkIHN1cnJvZ2F0ZSB0byBmb3JtIGEgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIuCisgICAgKi8KKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEVBRF9TVVJST0dBVEVfU0hJRlRfID0gMTA7CisJLyoqIAorICAgICogT2Zmc2V0IHRvIGFkZCB0byBjb21iaW5lZCBzdXJyb2dhdGUgcGFpciB0byBhdm9pZCBtc2tpbmcuCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1VSUk9HQVRFX09GRlNFVF8gPSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LlNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFIC0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoVVRGMTYuU1VSUk9HQVRFX01JTl9WQUxVRSA8PCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIExFQURfU1VSUk9HQVRFX1NISUZUXykgLSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LlRSQUlMX1NVUlJPR0FURV9NSU5fVkFMVUU7ICAgCisgICAgLyoqCisgICAgKiBMYXRpbiB1cHBlcmNhc2UgSQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBMQVRJTl9DQVBJVEFMX0xFVFRFUl9JXyA9IDB4NDk7CisgICAgLyoqCisgICAgKiBDb21iaW5pbmcgZG90IGFib3ZlCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIENPTUJJTklOR19ET1RfQUJPVkVfID0gMHgzMDc7CisgICAgLyoqCisgICAgKiBMQVRJTiBTTUFMTCBMRVRURVIgSgorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExBVElOX1NNQUxMX0xFVFRFUl9KXyA9IDB4NmE7CisgICAgLyoqCisgICAgKiBMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIE9HT05FSworICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExBVElOX1NNQUxMX0xFVFRFUl9JX1dJVEhfT0dPTkVLXyA9IDB4MTJmOworICAgIC8qKgorICAgICogTEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBUSUxERSBCRUxPVworICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExBVElOX1NNQUxMX0xFVFRFUl9JX1dJVEhfVElMREVfQkVMT1dfID0gMHgxZTJkOworICAgIC8qKgorICAgICogTEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBET1QgQkVMT1cKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMQVRJTl9TTUFMTF9MRVRURVJfSV9XSVRIX0RPVF9CRUxPV18gPSAweDFlY2I7CisgICAgLyoqCisgICAgKiBDb21iaW5pbmcgY2xhc3MgZm9yIGNvbWJpbmluZyBtYXJrIGFib3ZlCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09NQklOSU5HX01BUktfQUJPVkVfQ0xBU1NfID0gMjMwOworICAgIAorICAgIC8qKgorICAgICogTEFUSU4gQ0FQSVRBTCBMRVRURVIgSgorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExBVElOX0NBUElUQUxfTEVUVEVSX0pfID0gMHg0YTsKKyAgICAKKyAgICAvKioKKyAgICAqIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBPR09ORUsKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMQVRJTl9DQVBJVEFMX0lfV0lUSF9PR09ORUtfID0gMHgxMmU7CisgICAgLyoqCisgICAgKiBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggVElMREUKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMQVRJTl9DQVBJVEFMX0lfV0lUSF9USUxERV8gPSAweDEyODsKKyAgICAvKioKKyAgICAqIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBHUkFWRQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExBVElOX0NBUElUQUxfSV9XSVRIX0dSQVZFXyA9IDB4Y2M7CisgICAgLyoqCisgICAgKiBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggQUNVVEUKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMQVRJTl9DQVBJVEFMX0lfV0lUSF9BQ1VURV8gPSAweGNkOworICAgIC8qKgorICAgICogQ09NQklOSU5HIEdSQVZFIEFDQ0VOVAorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENPTUJJTklOR19HUkFWRV9BQ0NFTlRfID0gMHgzMDA7CisgICAgLyoqCisgICAgKiBDT01CSU5JTkcgQUNVVEUgQUNDRU5UCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09NQklOSU5HX0FDVVRFX0FDQ0VOVF8gPSAweDMwMTsKKyAgICAvKioKKyAgICAqIENPTUJJTklORyBUSUxERQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENPTUJJTklOR19USUxERV8gPSAweDMwMzsKKyAgICAvKioKKyAgICAqIEdyZWVrIGNhcGl0YWwgbGV0dGVyIHNpZ21hCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEdSRUVLX0NBUElUQUxfTEVUVEVSX1NJR01BXyA9IDB4M2EzOworICAgIC8qKgorICAgICogR3JlZWsgc21hbGwgbGV0dGVyIHNpZ21hCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEdSRUVLX1NNQUxMX0xFVFRFUl9TSUdNQV8gPSAweDNjMzsKKyAgICAvKioKKyAgICAqIEdyZWVrIHNtYWxsIGxldHRlciByaG8KKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgR1JFRUtfU01BTExfTEVUVEVSX1JIT18gPSAweDNjMjsKKyAgICAvKioKKyAgICAqIEh5cGhlbnMKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIWVBIRU5fICAgICAgPSAweDIwMTA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNPRlRfSFlQSEVOXyA9IDB4QUQ7CisgICAgLyoqCisgICAgKiBUbyBnZXQgdGhlIGxhc3QgY2hhcmFjdGVyIG91dCBmcm9tIGEgZGF0YSB0eXBlCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEFTVF9DSEFSX01BU0tfID0gMHhGRkZGOworICAgIC8qKgorICAgICogVG8gZ2V0IHRoZSBsYXN0IGJ5dGUgb3V0IGZyb20gYSBkYXRhIHR5cGUKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMQVNUX0JZVEVfTUFTS18gPSAweEZGOworICAgIC8qKgorICAgICogU2hpZnQgMTYgYml0cworICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNISUZUXzE2XyA9IDE2OworICAgCisgICAJLy8gYWRkaXRpb25hbCBwcm9wZXJ0aWVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIAkgCisgICAJLyoqCisgICAJICogQWRkaXRpb25hbCBwcm9wZXJ0aWVzIHVzZWQgaW4gaW50ZXJuYWwgdHJpZSBkYXRhCisgICAJICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFdISVRFX1NQQUNFX1BST1BFUlRZXyA9IDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEJJRElfQ09OVFJPTF9QUk9QRVJUWV8gPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBKT0lOX0NPTlRST0xfUFJPUEVSVFlfID0gMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREFTSF9QUk9QRVJUWV8gPSAzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIWVBIRU5fUFJPUEVSVFlfID0gNDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgUVVPVEFUSU9OX01BUktfUFJPUEVSVFlfID0gNTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVEVSTUlOQUxfUFVOQ1RVQVRJT05fUFJPUEVSVFlfID0gNjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgT1RIRVJfTUFUSF9QUk9QRVJUWV8gPSA3OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIRVhfRElHSVRfUFJPUEVSVFlfID0gODsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQVNDSUlfSEVYX0RJR0lUX1BST1BFUlRZXyA9IDk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE9USEVSX0FMUEhBQkVUSUNfUFJPUEVSVFlfID0gMTA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElERU9HUkFQSElDX1BST1BFUlRZXyA9IDExOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBESUFDUklUSUNfUFJPUEVSVFlfID0gMTI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYVEVOREVSX1BST1BFUlRZXyA9IDEzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBPVEhFUl9MT1dFUkNBU0VfUFJPUEVSVFlfID0gMTQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE9USEVSX1VQUEVSQ0FTRV9QUk9QRVJUWV8gPSAxNTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTk9OQ0hBUkFDVEVSX0NPREVfUE9JTlRfUFJPUEVSVFlfID0gMTY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE9USEVSX0dSQVBIRU1FX0VYVEVORF9QUk9QRVJUWV8gPSAxNzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgR1JBUEhFTUVfTElOS19QUk9QRVJUWV8gPSAxODsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSURTX0JJTkFSWV9PUEVSQVRPUl9QUk9QRVJUWV8gPSAxOTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSURTX1RSSU5BUllfT1BFUkFUT1JfUFJPUEVSVFlfID0gMjA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFJBRElDQUxfUFJPUEVSVFlfID0gMjE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVOSUZJRURfSURFT0dSQVBIX1BST1BFUlRZXyA9IDIyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBPVEhFUl9ERUZBVUxUX0lHTk9SQUJMRV9DT0RFX1BPSU5UX1BST1BFUlRZXyA9IDIzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBERVBSRUNBVEVEX1BST1BFUlRZXyA9IDI0OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTT0ZUX0RPVFRFRF9QUk9QRVJUWV8gPSAyNTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTE9HSUNBTF9PUkRFUl9FWENFUFRJT05fUFJPUEVSVFlfID0gMjY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFhJRF9TVEFSVF9QUk9QRVJUWV8gPSAyNzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgWElEX0NPTlRJTlVFX1BST1BFUlRZXyA9IDI4OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBCSU5BUllfMV9UT1BfUFJPUEVSVFlfID0gMjk7CisgICAgCisgICAgLyoqCisgICAgICogRmlyc3QgbmliYmxlIHNoaWZ0CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZJUlNUX05JQkJMRV9TSElGVF8gPSAweDQ7CisgICAgLyoqCisgICAgICogU2Vjb25kIG5pYmJsZSBtYXNrCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExBU1RfTklCQkxFX01BU0tfID0gMHhGOworICAgIC8qKgorICAgICAqIEFnZSB2YWx1ZSBzaGlmdAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBBR0VfU0hJRlRfID0gMjQ7CisgICAgCisgICAgLy8gcHJpdmF0ZSBjb25zdHJ1Y3RvcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAqIENvbnN0cnVjdG9yCisgICAgKiBAZXhjZXB0aW9uIHRocm93biB3aGVuIGRhdGEgcmVhZGluZyBmYWlscyBvciBkYXRhIGNvcnJ1cHRlZAorICAgICovCisgICAgcHJpdmF0ZSBVQ2hhcmFjdGVyUHJvcGVydHkoKSB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICB7CisgICAgICAgIC8vIGphciBhY2Nlc3MKKyAgICAgICAgSW5wdXRTdHJlYW0gaSA9IGdldENsYXNzKCkuZ2V0UmVzb3VyY2VBc1N0cmVhbShEQVRBX0ZJTEVfTkFNRV8pOworICAgICAgICBCdWZmZXJlZElucHV0U3RyZWFtIGIgPSBuZXcgQnVmZmVyZWRJbnB1dFN0cmVhbShpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREFUQV9CVUZGRVJfU0laRV8pOworICAgICAgICBVQ2hhcmFjdGVyUHJvcGVydHlSZWFkZXIgcmVhZGVyID0gbmV3IFVDaGFyYWN0ZXJQcm9wZXJ0eVJlYWRlcihiKTsKKyAgICAgICAgcmVhZGVyLnJlYWQodGhpcyk7CisgICAgICAgIGIuY2xvc2UoKTsKKyAgICAgICAgaS5jbG9zZSgpOworICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKwkvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCQorICAgIC8qKgorICAgICogPHA+UmV0dXJucyBhIHZhbHVlIGluZGljYXRpbmcgYSBjb2RlIHBvaW50J3MgVW5pY29kZSBjYXRlZ29yeS48L3A+CisgICAgKiA8cD5UaGlzIG1ldGhvZCBkb2VzIG5vdCBjaGVjayBmb3IgdGhlIGNvZGVwb2ludCB2YWxpZGl0eTwvcD4KKyAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHdob3NlIHR5cGUgaXMgdG8gYmUgZGV0ZXJtaW5lZAorICAgICogQHJldHVybiBjYXRlZ29yeSB3aGljaCBpcyBhIHZhbHVlIG9mIFVDaGFyYWN0ZXJDYXRlZ29yeQorICAgICovCisgICAgcHJpdmF0ZSBpbnQgZ2V0VHlwZShpbnQgY2gpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0UHJvcFR5cGUoZ2V0UHJvcGVydHkoY2gpKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVW5pY29kZSAzLjIgVUFYIDIxICJDYXNlIE1hcHBpbmdzIiBkZWZpbmVzIHRoZSBjb25kaXRpb25zIGFzIGZvbGxvd3M6CisgICAgICoKKyAgICAgKiBGaW5hbF9TaWdtYQorICAgICAqICAgQyBpcyBwcmVjZWRlZCBieSBhIHNlcXVlbmNlIGNvbnNpc3Rpbmcgb2YKKyAgICAgKiAgICAgYSBjYXNlZCBsZXR0ZXIgYW5kIGEgY2FzZS1pZ25vcmFibGUgc2VxdWVuY2UsCisgICAgICogICBhbmQgQyBpcyBub3QgZm9sbG93ZWQgYnkgYSBzZXF1ZW5jZSBjb25zaXN0aW5nIG9mCisgICAgICogICAgIGFuIGlnbm9yYWJsZSBzZXF1ZW5jZSBhbmQgdGhlbiBhIGNhc2VkIGxldHRlci4KKyAgICAgKgorICAgICAqIE1vcmVfQWJvdmUKKyAgICAgKiAgIEMgaXMgZm9sbG93ZWQgYnkgb25lIG9yIG1vcmUgY2hhcmFjdGVycyBvZiBjb21iaW5pbmcgY2xhc3MgMjMwIChBQk9WRSkKKyAgICAgKiAgIGluIHRoZSBjb21iaW5pbmcgY2hhcmFjdGVyIHNlcXVlbmNlLgorICAgICAqCisgICAgICogQWZ0ZXJfU29mdF9Eb3R0ZWQKKyAgICAgKiAgIFRoZSBsYXN0IHByZWNlZGluZyBjaGFyYWN0ZXIgd2l0aCBjb21iaW5pbmcgY2xhc3Mgb2YgemVybyBiZWZvcmUgQworICAgICAqICAgd2FzIFNvZnRfRG90dGVkLAorICAgICAqICAgYW5kIHRoZXJlIGlzIG5vIGludGVydmVuaW5nIGNvbWJpbmluZyBjaGFyYWN0ZXIgY2xhc3MgMjMwIChBQk9WRSkuCisgICAgICoKKyAgICAgKiBCZWZvcmVfRG90CisgICAgICogICBDIGlzIGZvbGxvd2VkIGJ5IGNvbWJpbmluZyBkb3QgYWJvdmUgKFUrMDMwNykuCisgICAgICogICBBbnkgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyB3aXRoIGEgY29tYmluaW5nIGNsYXNzIHRoYXQgaXMgbmVpdGhlciAwIAorICAgICAqICAgbm9yIDIzMCBtYXkgaW50ZXJ2ZW5lIGJldHdlZW4gdGhlIGN1cnJlbnQgY2hhcmFjdGVyIGFuZCB0aGUgY29tYmluaW5nIAorICAgICAqICAgZG90IGFib3ZlLgorICAgICAqCisgICAgICogSGVscGVyIGRlZmluaXRpb25zIGluIFVuaWNvZGUgMy4yIFVBWCAyMToKKyAgICAgKgorICAgICAqIEQxLiBBIGNoYXJhY3RlciBDIGlzIGRlZmluZWQgdG8gYmUgY2FzZWQKKyAgICAgKiAgICAgaWYgaXQgbWVldHMgYW55IG9mIHRoZSBmb2xsb3dpbmcgY3JpdGVyaWE6CisgICAgICoKKyAgICAgKiAgIC0gVGhlIGdlbmVyYWwgY2F0ZWdvcnkgb2YgQyBpcyBUaXRsZWNhc2UgTGV0dGVyIChMdCkKKyAgICAgKiAgIC0gSW4gW0NvcmVQcm9wc10sIEMgaGFzIG9uZSBvZiB0aGUgcHJvcGVydGllcyBVcHBlcmNhc2UsIG9yIExvd2VyY2FzZQorICAgICAqICAgLSBHaXZlbiBEID0gTkZEKEMpLCB0aGVuIGl0IGlzIG5vdCB0aGUgY2FzZSB0aGF0OgorICAgICAqICAgICBEID0gVUNEX2xvd2VyKEQpID0gVUNEX3VwcGVyKEQpID0gVUNEX3RpdGxlKEQpCisgICAgICogICAgIChUaGlzIHRoaXJkIGNyaXRlcml1bSBkb2VzIG5vdCBhZGQgYW55IGNoYXJhY3RlcnMgdG8gdGhlIGxpc3QKKyAgICAgKiAgICAgIGZvciBVbmljb2RlIDMuMi4gSWdub3JlZC4pCisgICAgICoKKyAgICAgKiBEMi4gQSBjaGFyYWN0ZXIgQyBpcyBkZWZpbmVkIHRvIGJlIGNhc2UtaWdub3JhYmxlCisgICAgICogICAgIGlmIGl0IG1lZXRzIGVpdGhlciBvZiB0aGUgZm9sbG93aW5nIGNyaXRlcmlhOgorICAgICAqCisgICAgICogICAtIFRoZSBnZW5lcmFsIGNhdGVnb3J5IG9mIEMgaXMKKyAgICAgKiAgICAgTm9uc3BhY2luZyBNYXJrIChNbiksIG9yIEVuY2xvc2luZyBNYXJrIChNZSksIG9yIEZvcm1hdCBDb250cm9sIChDZiksIG9yCisgICAgICogICAgIExldHRlciBNb2RpZmllciAoTG0pLCBvciBTeW1ib2wgTW9kaWZpZXIgKFNrKQorICAgICAqICAgLSBDIGlzIG9uZSBvZiB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcnMgCisgICAgICogICAgIFUrMDAyNyBBUE9TVFJPUEhFCisgICAgICogICAgIFUrMDBBRCBTT0ZUIEhZUEhFTiAoU0hZKQorICAgICAqICAgICBVKzIwMTkgUklHSFQgU0lOR0xFIFFVT1RBVElPTiBNQVJLCisgICAgICogICAgICAgICAgICAodGhlIHByZWZlcnJlZCBjaGFyYWN0ZXIgZm9yIGFwb3N0cm9waGUpCisgICAgICoKKyAgICAgKiBEMy4gQSBjYXNlLWlnbm9yYWJsZSBzZXF1ZW5jZSBpcyBhIHNlcXVlbmNlIG9mCisgICAgICogICAgIHplcm8gb3IgbW9yZSBjYXNlLWlnbm9yYWJsZSBjaGFyYWN0ZXJzLgorICAgICAqLworCisgICAgLyoqCisgICAgKiBEZXRlcm1pbmVzIGlmIGEgc3RyaW5nIGF0IG9mZnNldCBpcyBwcmVjZWRlZCBieSBhbnkgc29mdCBkb3R0ZWQgY2hhcmFjdGVyCisgICAgKiB3aXRoIG5vIGludGVydmVuaW5nIGNoYXJhY3RlciB3aXRoIGNvbWJpbmluZyBjbGFzcyA9IDIzMAorICAgICogQHBhcmFtIHVjaGFyaXRlciB0ZXh0IGl0ZXJhdG9yIHRvIGJlIGRldGVybWluZWQKKyAgICAqIEBwYXJhbSBvZmZzZXQgb2Zmc2V0IGluIHN0cmluZyB0byBjaGVjaworICAgICogQHJldHVybiB0cnVlIGlmIHNvbWUgY2hhcmFjdGVycyBwcmVjZWRpbmcgdGhlIG9mZnNldCBpbmRleCBiZWxvbmdzIHRvCisgICAgKiAgICAgICAgIHRoZSBzZXQgb2Ygc29mdCBkb3R0ZWQgY2hhcmFjdGVycyB3aXRoIG5vIGludGVydmVuaW5nIGNoYXJhY3RlcgorICAgICogQHNlZSBTcGVjaWFsQ2FzaW5nLnR4dAorICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGlzUHJlY2VkZWRCeVNvZnREb3R0ZWQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvciB1Y2hhcml0ZXIsIGludCBvZmZzZXQpIAorICAgIHsKKyAgICAJdWNoYXJpdGVyLnNldEluZGV4KG9mZnNldCk7CisgICAgCQorICAgIAlpbnQgY2ggPSB1Y2hhcml0ZXIucHJldmlvdXNDb2RlUG9pbnQoKTsKKyAgICAJCisgICAgICAgIHdoaWxlIChjaCAhPSBVbmljb2RlQ2hhcmFjdGVySXRlcmF0b3IuRE9ORV9DT0RFUE9JTlQpIHsKKyAgICAgICAgICAgIGlmIChpc1NvZnREb3R0ZWQoY2gpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7IC8vIHByZWNlZGVkIGJ5IFRZUEVfaQorICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgaW50IGNjID0gTm9ybWFsaXplckltcGwuZ2V0Q29tYmluaW5nQ2xhc3MoY2gpOworICAgICAgICAgICAgaWYgKGNjID09IDAgfHwgY2MgPT0gQ09NQklOSU5HX01BUktfQUJPVkVfQ0xBU1NfKSB7CisgICAgICAgICAgICAgICAgLy8gcHJlY2VkZWQgYnkgZGlmZmVyZW50IGJhc2UgY2hhcmFjdGVyIG5vdCBUWVBFX2kpLCBvciAKKyAgICAgICAgICAgICAgICAvLyBpbnRlcnZlbmluZyBjYyA9PSAyMzAKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7IAorICAgICAgICAgICAgfQorICAgICAgICAgICAgY2ggPSB1Y2hhcml0ZXIucHJldmlvdXNDb2RlUG9pbnQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmYWxzZTsgLy8gbm90IHByZWNlZGVkIGJ5IFRZUEVfaQorICAgIH0KKyAgICAKKyAgICAvKiogCisgICAgKiBEZXRlcm1pbmVzIGlmIGNvZGVwb2ludCBhdCBvZmZzZXQgaXMgbm90IGZvbGxvd2VkIGJ5IGEgc2VxdWVuY2UgCisgICAgKiBjb25zaXN0aW5nIG9mIGFuIGlnbm9yYWJsZSBzZXF1ZW5jZSBhbmQgdGhlbiBhIGNhc2VkIGxldHRlciAKKyAgICAqIHtMbCwgTHUsIEx0fS4KKyAgICAqIEBwYXJhbSB1Y2hhcml0ZXIgU3RyaW5nIGl0ZXJhdG9yIHRvIGRldGVybWluZQorICAgICogQHBhcmFtIG9mZnNldCBjb2RlcG9pbnQgb2Zmc2V0IGluIHN0cmluZyB0byBjaGVjaworICAgICogQHJldHVybiBmYWxzZSBpZiBhbnkgY2hhcmFjdGVyIGFmdGVyIG9mZnNldCBpbiBzcmMgaXMgYSBjYXNlZCBsZXR0ZXIKKyAgICAqIEBzZWUgU3BlY2lhbENhc2luZy50eHQKKyAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBpc0NGSU5BTChVbmljb2RlQ2hhcmFjdGVySXRlcmF0b3IgdWNoYXJpdGVyLCBpbnQgb2Zmc2V0KSAKKyAgICB7CisgICAgCS8vIGl0ZXJhdG9yIHNob3VsZCBoYXZlIGJlZW4gZGV0ZXJtaW5lZCB0byBiZSBub3QgbnVsbCBieSBjYWxsZXIKKyAgICAgICAgdWNoYXJpdGVyLnNldEluZGV4KG9mZnNldCk7CisgICAgCXVjaGFyaXRlci5uZXh0Q29kZVBvaW50KCk7IC8vIHJpZCBvZiBjdXJyZW50IGNvZGVwb2ludAorICAgICAgICBpbnQgY2ggPSB1Y2hhcml0ZXIubmV4dENvZGVQb2ludCgpOyAvLyBzdGFydCBjaGVja2luZworICAgIAkKKyAgICAJd2hpbGUgKGNoICE9IFVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvci5ET05FX0NPREVQT0lOVCkgeworICAgICAgICAgICAgaW50IGNhdCA9IGdldFR5cGUoY2gpOworICAgICAgICAgICAgaWYgKGlzQ2FzZWQoY2gsIGNhdCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8vIGZvbGxvd2VkIGJ5IGNhc2VkIGxldHRlcgorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFpc0Nhc2VJZ25vcmFibGUoY2gsIGNhdCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gbm90IGlnbm9yYWJsZQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY2ggPSB1Y2hhcml0ZXIubmV4dENvZGVQb2ludCgpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgKiBEZXRlcm1pbmVzIGlmIGNvZGVwb2ludCBhdCBvZmZzZXQgaXMgbm90IHByZWNlZGVkIGJ5IGEgc2VxdWVuY2UgCisgICAgKiBjb25zaXN0aW5nIG9mIGEgY2FzZWQgbGV0dGVyIHtMbCwgTHUsIEx0fSBhbmQgYW4gaWdub3JhYmxlIHNlcXVlbmNlLiAKKyAgICAqIEBwYXJhbSB1Y2hhcml0ZXIgc3RyaW5nIGl0ZXJhdG9yIHRvIGRldGVybWluZQorICAgICogQHBhcmFtIG9mZnNldCBjb2RlcG9pbnQgb2Zmc2V0IGluIHN0cmluZyB0byBjaGVjaworICAgICogQHJldHVybiB0cnVlIGlmIGFueSBjaGFyYWN0ZXIgYmVmb3JlIGluZGV4IGluIHNyYyBpcyBhIGNhc2VkIGxldHRlcgorICAgICogQHNlZSBTcGVjaWFsQ2FzaW5nLnR4dAorICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGlzTm90Q0lOSVRJQUwoVW5pY29kZUNoYXJhY3Rlckl0ZXJhdG9yIHVjaGFyaXRlciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvZmZzZXQpIAorICAgIHsKKyAgICAJdWNoYXJpdGVyLnNldEluZGV4KG9mZnNldCk7CisgICAgCWludCBjaCA9IHVjaGFyaXRlci5wcmV2aW91c0NvZGVQb2ludCgpOworICAgIAkKKyAgICAgICAgd2hpbGUgKGNoICE9IFVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvci5ET05FX0NPREVQT0lOVCkgeworICAgICAgICAgICAgaW50IGNhdCA9IGdldFR5cGUoY2gpOworICAgICAgICAgICAgaWYgKGlzQ2FzZWQoY2gsIGNhdCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gcHJlY2VkZWQgYnkgY2FzZWQgbGV0dGVyCisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWlzQ2FzZUlnbm9yYWJsZShjaCwgY2F0KSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gbm90IGlnbm9yYWJsZQorICAgICAgICAgICAgfQorCQkJY2ggPSB1Y2hhcml0ZXIucHJldmlvdXNDb2RlUG9pbnQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmYWxzZTsgCisgICAgfQorCisgICAgLyoqIAorICAgICogRGV0ZXJtaW5lcyBpZiBhIGNvZGVwb2ludCBhdCBvZmZzZXQgaW4gc3RyaW5nIGlzIGZvbGxvd2VkIGJ5IG9uZSBvciAKKyAgICAqIG1vcmUgY2hhcmFjdGVycyBvZiBjb21iaW5pbmcgY2xhc3MgPSAyMzAuCisgICAgKiBAcGFyYW0gdWNoYXJpdGVyIHRleHQgaXRlcmF0b3IgdG8gYmUgZGV0ZXJtaW5lZAorICAgICogQHBhcmFtIG9mZnNldCBjb2RlcG9pbnQgb2Zmc2V0IGluIHN0cmluZyB0byBjaGVjaworICAgICogQHJldHVybiB0cnVlIGlmIGEgc3RyaW5nIGF0IG9mZnNldCBpcyBmb2xsb3dlZCBieSBvbmUgb3IgbW9yZSBjaGFyYWN0ZXJzIAorICAgICogICAgICAgICBvZiBjb21iaW5pbmcgY2xhc3MgPSAyMzAuCisgICAgKiBAc2VlIFNwZWNpYWxDYXNpbmcudHh0CisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzRm9sbG93ZWRCeU1PUkVBQk9WRShVbmljb2RlQ2hhcmFjdGVySXRlcmF0b3IgdWNoYXJpdGVyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0KSAKKyAgICB7CisgICAgICAgIHVjaGFyaXRlci5zZXRJbmRleChvZmZzZXQpOworICAgICAgICB1Y2hhcml0ZXIubmV4dENvZGVQb2ludCgpOyAvLyByaWQgb2YgY3VycmVudCBjb2RlcG9pbnQKKyAgICAgICAgaW50IGNoID0gdWNoYXJpdGVyLm5leHRDb2RlUG9pbnQoKTsgLy8gc3RhcnQgY2hlY2tpbmcKKyAgICAgICAgCisgICAgICAgIHdoaWxlIChjaCAhPSBVbmljb2RlQ2hhcmFjdGVySXRlcmF0b3IuRE9ORV9DT0RFUE9JTlQpIHsKKyAgICAgICAgICAgIGludCBjYyA9IE5vcm1hbGl6ZXJJbXBsLmdldENvbWJpbmluZ0NsYXNzKGNoKTsKKyAgICAgICAgICAgIGlmIChjYyA9PSBDT01CSU5JTkdfTUFSS19BQk9WRV9DTEFTU18pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gYXQgbGVhc3Qgb25lIGNjPT0yMzAgZm9sbG93aW5nIAorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGNjID09IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8vIG5leHQgYmFzZSBjaGFyYWN0ZXIsIG5vIG1vcmUgY2M9PTIzMCBmb2xsb3dpbmcKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNoID0gdWNoYXJpdGVyLm5leHRDb2RlUG9pbnQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmYWxzZTsgLy8gbm8gbW9yZSBjYyA9PSAyMzAgZm9sbG93aW5nCisgICAgfQorCisgICAgLyoqIAorICAgICogRGV0ZXJtaW5lcyBpZiBhIGNvZGVwb2ludCBhdCBvZmZzZXQgaW4gc3RyaW5nIGlzIGZvbGxvd2VkIGJ5IGEgZG90IAorICAgICogYWJvdmUgd2l0aCBubyBjaGFyYWN0ZXJzIG9mIGNvbWJpbmluZyBjbGFzcyA9PSAyMzAgaW4gYmV0d2VlbiAKKyAgICAqIEBwYXJhbSB1Y2hhcml0ZXIgdGV4dCBpdGVyYXRvciB0byBiZSBkZXRlcm1pbmVkCisgICAgKiBAcGFyYW0gb2Zmc2V0IGNvZGVwb2ludCBvZmZzZXQgb2YgdGhlIGNoYXJhY3RlciBpbiBzdHJpbmcgdG8gY2hlY2sKKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiBhIHN0cmluZyBhdCBvZmZzZXQgaXMgZm9sbG93ZWQgYnkgb2EgZG90IGFib3ZlIAorICAgICogICAgICAgICB3aXRoIG5vIGNoYXJhY3RlcnMgb2YgY29tYmluaW5nIGNsYXNzID09IDIzMCBpbiBiZXR3ZWVuCisgICAgKiBAc2VlIFNwZWNpYWxDYXNpbmcudHh0CisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzRm9sbG93ZWRCeURvdEFib3ZlKFVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvciB1Y2hhcml0ZXIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldCkgCisgICAgeworICAgICAgICB1Y2hhcml0ZXIuc2V0SW5kZXgob2Zmc2V0KTsKKyAgICAgICAgdWNoYXJpdGVyLm5leHRDb2RlUG9pbnQoKTsgLy8gcmlkIG9mZiBjdXJyZW50IGNoYXJhY3RlcgorICAgICAgICBpbnQgY2ggPSB1Y2hhcml0ZXIubmV4dENvZGVQb2ludCgpOyAvLyBzdGFydCBjaGVja2luZworICAgICAgICAKKyAgICAgICAgd2hpbGUgKGNoICE9IFVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvci5ET05FX0NPREVQT0lOVCkgeworICAgICAgICAgICAgaWYgKGNoID09IENPTUJJTklOR19ET1RfQUJPVkVfKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgY2MgPSBOb3JtYWxpemVySW1wbC5nZXRDb21iaW5pbmdDbGFzcyhjaCk7CisgICAgICAgICAgICBpZiAoY2MgPT0gMCB8fCBjYyA9PSBDT01CSU5JTkdfTUFSS19BQk9WRV9DTEFTU18pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8vIG5leHQgYmFzZSBjaGFyYWN0ZXIgb3IgY2M9PTIzMCBpbiBiZXR3ZWVuCisgICAgICAgICAgICB9CisgICAgICAgICAgICBjaCA9IHVjaGFyaXRlci5uZXh0Q29kZVBvaW50KCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7IC8vIG5vIGRvdCBhYm92ZSBmb2xsb3dpbmcKKyAgICB9CisgICAgCisgICAgLyoqICAKKyAgICAqIENoZWNrcyBpZiB0aGUgY2FzZSBpZ25vcmFibGUKKyAgICAqIEBwYXJhbSBjaCBjb2RlcG9pbnQKKyAgICAqIEBwYXJhbSBjYXQgY2F0ZWdvcnkgb2YgdGhlIGFyZ3VtZW50IGNvZGVwb2ludAorICAgICogQHJldHVybiB0cnVlIGlmIGNoIGlzIGNhc2UgaWdub3JhYmxlLgorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBpc0Nhc2VJZ25vcmFibGUoaW50IGNoLCBpbnQgY2F0KSAKKyAgICB7CisgICAgICAgIHJldHVybiBjYXQgPT0gVUNoYXJhY3RlckNhdGVnb3J5Lk5PTl9TUEFDSU5HX01BUksgCisgICAgICAgICAgICAgICB8fCBjYXQgPT0gVUNoYXJhY3RlckNhdGVnb3J5LkVOQ0xPU0lOR19NQVJLIAorICAgICAgICAgICAgICAgfHwgY2F0ID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5GT1JNQVQKKyAgICAgICAgICAgICAgIHx8IGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTU9ESUZJRVJfTEVUVEVSCisgICAgICAgICAgICAgICB8fCBjYXQgPT0gVUNoYXJhY3RlckNhdGVnb3J5Lk1PRElGSUVSX1NZTUJPTAorICAgICAgICAgICAgICAgfHwgY2ggPT0gMHgyNyB8fCBjaCA9PSAweGFkIHx8IGNoID09IDB4MjAxOTsKKyAgICB9CisKKyAgICAvKiogCisgICAgICogSXMgdGhpcyBhICJjYXNlZCIgY2hhcmFjdGVyPyAKKyAgICAgKiBAcGFyYW0gY2ggY29kZXBvaW50CisgICAgICogQHBhcmFtIGNhdCBjYXRlZ29yeSBvZiB0aGUgYXJndW1lbnQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgY2ggaXMgYSBjYXNlZCBjaGFyYWN0ZXIKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gaXNDYXNlZChpbnQgY2gsIGludCBjYXQpIAorICAgIHsKKyAgICAgICAgLy8gTHQgKyBVcHBlcmNhc2UgKyBMb3dlcmNhc2UgPSBMdCArIEx1ICsgTGwgCisgICAgICAgIC8vICsgT3RoZXJfVXBwZXJjYXNlK090aGVyX0xvd2VyY2FzZQorICAgICAgICBib29sZWFuIHJlc3VsdCA9IChjYXQgPT0gVUNoYXJhY3RlckNhdGVnb3J5LlRJVExFQ0FTRV9MRVRURVIgCisgICAgICAgICAgICAgICB8fCBjYXQgPT0gVUNoYXJhY3RlckNhdGVnb3J5LlVQUEVSQ0FTRV9MRVRURVIKKyAgICAgICAgICAgICAgIHx8IGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTE9XRVJDQVNFX0xFVFRFUik7CisgICAgICAgIGlmIChyZXN1bHQpIHsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0gCisgICAgICAgIGludCBwcm9wID0gZ2V0QWRkaXRpb25hbChjaCwgMSk7CisgICAgICAgIHJldHVybiBjb21wYXJlQWRkaXRpb25hbFR5cGUocHJvcCwgT1RIRVJfVVBQRVJDQVNFX1BST1BFUlRZXykgCisgICAgICAgICAgICAgICB8fCBjb21wYXJlQWRkaXRpb25hbFR5cGUocHJvcCwgT1RIRVJfTE9XRVJDQVNFX1BST1BFUlRZXyk7CisgICAgfQorICAgIAorICAgIC8qKiAKKyAgICAgKiBJcyBTb2Z0X0RvdHRlZD8gCisgICAgICogQHBhcmFtIGNoIGNvZGVwb2ludAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBjaCBpcyBzb2Z0IGRvdHRlZAorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBpc1NvZnREb3R0ZWQoaW50IGNoKSB7CisgICAgICAgIHJldHVybiBjb21wYXJlQWRkaXRpb25hbFR5cGUoZ2V0QWRkaXRpb25hbChjaCwgMSksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNPRlRfRE9UVEVEX1BST1BFUlRZXyk7CisgICAgfQorICAgIAorICAgIC8qIElzIGZvbGxvd2VkIGJ5IHtjYXNlLWlnbm9yYWJsZX0qIGNhc2VkICA/ICovCisgICAgLyoqCisgICAgKiBHZXR0aW5nIHRoZSBjb3JyZWN0IGFkZHJlc3MgZm9yIGRhdGEgaW4gdGhlIGV4Y2VwdGlvbiB2YWx1ZQorICAgICogQHBhcmFtIGV2YWx1ZSBleGNlcHRpb24gdmFsdWUKKyAgICAqIEBwYXJhbSBpbmRpY2F0b3IgdHlwZSBvZiBkYXRhIHRvIHJldHJpZXZlCisgICAgKiBAcGFyYW0gYWRkcmVzcyBjdXJyZW50IGFkZHJlc3MgdG8gbW92ZSBmcm9tCisgICAgKiBAcmV0dXJuIHRoZSBjb3JyZWN0IGFkZHJlc3MKKyAgICAqLworICAgIHByaXZhdGUgaW50IGFkZEV4Y2VwdGlvbk9mZnNldChpbnQgZXZhbHVlLCBpbnQgaW5kaWNhdG9yLCBpbnQgYWRkcmVzcykgCisgICAgeyAKKyAgICAgICAgaW50IHJlc3VsdCA9IGFkZHJlc3M7CisgICAgICAgIGlmIChpbmRpY2F0b3IgPj0gRVhDX0dST1VQXykgeworICAgICAgICByZXN1bHQgKz0gRkxBR1NfT0ZGU0VUX1tldmFsdWUgJiBFWENfR1JPVVBfTUFTS19dOyAKKyAgICAgICAgZXZhbHVlID4+PSBFWENfR1JPVVBfOyAKKyAgICAgICAgaW5kaWNhdG9yIC09IEVYQ19HUk9VUF87IAorICAgICAgICB9CisgICAgICAgIGludCBtYXNrID0gKDEgPDwgaW5kaWNhdG9yKSAtIDE7CisgICAgICAgIHJlc3VsdCArPSBGTEFHU19PRkZTRVRfW2V2YWx1ZSAmIG1hc2tdOyAKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29tcGFyZSBhZGRpdGlvbmFsIHByb3BlcnRpZXMgdG8gc2VlIGlmIGl0IGhhcyBhcmd1bWVudCB0eXBlIAorICAgICAqIEBwYXJhbSBwcm9wZXJ0eSAzMiBiaXQgcHJvcGVydGllcworICAgICAqIEBwYXJhbSB0eXBlIGNoYXJhY3RlciB0eXBlCisgICAgICogQHJldHVybiB0cnVlIGlmIHByb3BlcnR5IGhhcyB0eXBlCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGNvbXBhcmVBZGRpdGlvbmFsVHlwZShpbnQgcHJvcGVydHksIGludCB0eXBlKSAKKyAgICB7CisgICAgCXJldHVybiAocHJvcGVydHkgJiAoMSA8PCB0eXBlKSkgIT0gMDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyUHJvcGVydHlSZWFkZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VDaGFyYWN0ZXJQcm9wZXJ0eVJlYWRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzNTE4NmUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyUHJvcGVydHlSZWFkZXIuamF2YQpAQCAtMCwwICsxLDE2MCBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VDaGFyYWN0ZXJQcm9wZXJ0eVJlYWRlci5qYXZhLHYgJCAKKyogJERhdGU6IDIwMDIvMDgvMDEgMTk6NTA6MjYgJCAKKyogJFJldmlzaW9uOiAxLjYgJAorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5EYXRhSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlZlcnNpb25JbmZvOworCisvKioKKyogPHA+SW50ZXJuYWwgcmVhZGVyIGNsYXNzIGZvciBJQ1UgZGF0YSBmaWxlIHVwcm9wcy5pY3UgY29udGFpbmluZyAKKyogVW5pY29kZSBjb2RlcG9pbnQgZGF0YS48L3A+IAorKiA8cD5UaGlzIGNsYXNzIHNpbXBseSByZWFkcyB1cHJvcHMuaWN1LCBhdXRoZW50aWNhdGVzIHRoYXQgaXQgaXMgYSB2YWxpZAorKiBJQ1UgZGF0YSBmaWxlIGFuZCBzcGxpdCBpdHMgY29udGVudHMgdXAgaW50byBibG9ja3Mgb2YgZGF0YSBmb3IgdXNlIGluCisqIDxhIGhyZWY9VUNoYXJhY3RlclByb3BlcnR5Lmh0bWw+Y29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyUHJvcGVydHk8L2E+LgorKiA8L3A+IAorKiA8cD5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZm9ybWF0IG9mIHVwcm9wcy5pY3UgcmVmZXIgdG8KKyogPGEgaHJlZj1vc3Muc29mdHdhcmUuaWJtLmNvbS9pY3U0ai9pY3U0amh0bWwvY29tL2libS9pY3UvbGFuZy9yZWFkbWUuaHRtbD4KKyogUmVhZE1lPC9hPi48XHA+CisqIDxwPnVwcm9wcy5pY3Ugd2hpY2ggaXMgaW4gYmlnLWVuZGlhbiBmb3JtYXQgaXMgamFyZWQgdG9nZXRoZXIgd2l0aCB0aGlzIAorKiBwYWNrYWdlLjwvcD4KKyogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyogQHNpbmNlIHJlbGVhc2UgMi4xLCBGZWJydWFyeSAxc3QgMjAwMgorKiBAZHJhZnQgMi4xCisqLworCitmaW5hbCBjbGFzcyBVQ2hhcmFjdGVyUHJvcGVydHlSZWFkZXIKK3sKKyAgICAvLyBwcm90ZWN0ZWQgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgKiA8cD5Qcm90ZWN0ZWQgY29uc3RydWN0b3IuPC9wPgorICAgICogQHBhcmFtIGlucHV0U3RyZWFtIElDVSB1cHJvcC5kYXQgZmlsZSBpbnB1dCBzdHJlYW0KKyAgICAqIEBleGNlcHRpb24gSU9FeGNlcHRpb24gdGhyb3cgaWYgZGF0YSBmaWxlIGZhaWxzIGF1dGhlbnRpY2F0aW9uIAorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIFVDaGFyYWN0ZXJQcm9wZXJ0eVJlYWRlcihJbnB1dFN0cmVhbSBpbnB1dFN0cmVhbSkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgbV91bmljb2RlVmVyc2lvbl8gPSBJQ1VCaW5hcnkucmVhZEhlYWRlcihpbnB1dFN0cmVhbSwgREFUQV9GT1JNQVRfSURfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEQVRBX0ZPUk1BVF9WRVJTSU9OXyk7CisgICAgICAgIG1fZGF0YUlucHV0U3RyZWFtXyA9IG5ldyBEYXRhSW5wdXRTdHJlYW0oaW5wdXRTdHJlYW0pOworICAgIH0KKyAgICAKKyAgICAvLyBwcm90ZWN0ZWQgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAKKyAgICAvKioKKyAgICAqIDxwPlJlYWRzIHVwcm9wcy5pY3UsIHBhcnNlIGl0IGludG8gYmxvY2tzIG9mIGRhdGEgdG8gYmUgc3RvcmVkIGluCisgICAgKiBVQ2hhcmFjdGVyUHJvcGVydHkuPC9QCisgICAgKiBAcGFyYW0gdWNoYXJwcHR5IFVDaGFyYWN0ZXJQcm9wZXJ0eSBpbnN0YW5jZQorICAgICogQGV4Y2VwdGlvbiB0aHJvd24gd2hlbiBkYXRhIHJlYWRpbmcgZmFpbHMKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIHJlYWQoVUNoYXJhY3RlclByb3BlcnR5IHVjaGFycHB0eSkgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICAvLyByZWFkIHRoZSBpbmRleGVzCisgICAgICAgIGludCBjb3VudCA9IElOREVYX1NJWkVfOworICAgICAgICBtX3Byb3BlcnR5T2Zmc2V0XyAgICAgICAgICA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIGNvdW50IC0tOworICAgICAgICBtX2V4Y2VwdGlvbk9mZnNldF8gICAgICAgICA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIGNvdW50IC0tOworICAgICAgICBtX2Nhc2VPZmZzZXRfICAgICAgICAgICAgICA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIGNvdW50IC0tOworICAgICAgICBtX2FkZGl0aW9uYWxPZmZzZXRfICAgICAgICA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIGNvdW50IC0tOworICAgIAltX2FkZGl0aW9uYWxWZWN0b3JzT2Zmc2V0XyA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgCWNvdW50IC0tOworICAgIAltX2FkZGl0aW9uYWxDb2x1bW5zQ291bnRfICA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgCWNvdW50IC0tOworICAgICAgICBtX3Jlc2VydmVkT2Zmc2V0XyAgICAgICAgICA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIGNvdW50IC0tOworICAgICAgICBtX2RhdGFJbnB1dFN0cmVhbV8uc2tpcEJ5dGVzKGNvdW50IDw8IDIpOworICAgICAgICAKKyAgICAgICAgLy8gcmVhZCB0aGUgdHJpZSBpbmRleCBibG9jaworICAgICAgICAvLyBtX3Byb3BzX2luZGV4XyBpbiB0ZXJtcyBvZiBpbnRzCisgICAgICAgIHVjaGFycHB0eS5tX3RyaWVfID0gbmV3IENoYXJUcmllKG1fZGF0YUlucHV0U3RyZWFtXywgdWNoYXJwcHR5KTsKKyAgICAgICAgCisgICAgICAgIC8vIHJlYWRzIHRoZSAzMiBiaXQgcHJvcGVydGllcyBibG9jaworICAgICAgICBpbnQgc2l6ZSA9IG1fZXhjZXB0aW9uT2Zmc2V0XyAtIG1fcHJvcGVydHlPZmZzZXRfOworICAgICAgICB1Y2hhcnBwdHkubV9wcm9wZXJ0eV8gPSBuZXcgaW50W3NpemVdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkgKyspIHsKKyAgICAgICAgICAgIHVjaGFycHB0eS5tX3Byb3BlcnR5X1tpXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIHJlYWRzIHRoZSAzMiBiaXQgZXhjZXB0aW9ucyBibG9jaworICAgICAgICBzaXplID0gbV9jYXNlT2Zmc2V0XyAtIG1fZXhjZXB0aW9uT2Zmc2V0XzsKKyAgICAgICAgdWNoYXJwcHR5Lm1fZXhjZXB0aW9uXyA9IG5ldyBpbnRbc2l6ZV07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSArKykgeworICAgICAgICAgICAgdWNoYXJwcHR5Lm1fZXhjZXB0aW9uX1tpXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIHJlYWRzIHRoZSAzMiBiaXQgY2FzZSBibG9jaworICAgICAgICBzaXplID0gKG1fYWRkaXRpb25hbE9mZnNldF8gLSBtX2Nhc2VPZmZzZXRfKSA8PCAxOworICAgICAgICB1Y2hhcnBwdHkubV9jYXNlXyA9IG5ldyBjaGFyW3NpemVdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkgKyspIHsKKyAgICAgICAgICAgIHVjaGFycHB0eS5tX2Nhc2VfW2ldID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRDaGFyKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIHJlYWRzIHRoZSBhZGRpdGlvbmFsIHByb3BlcnR5IGJsb2NrCisgICAgICAgIHVjaGFycHB0eS5tX2FkZGl0aW9uYWxUcmllXyA9IG5ldyBDaGFyVHJpZShtX2RhdGFJbnB1dFN0cmVhbV8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWNoYXJwcHR5KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIC8vIGFkZGl0aW9uYWwgcHJvcGVydGllcworICAgICAgICBzaXplID0gbV9yZXNlcnZlZE9mZnNldF8gLSBtX2FkZGl0aW9uYWxWZWN0b3JzT2Zmc2V0XzsKKyAgICAgICAgdWNoYXJwcHR5Lm1fYWRkaXRpb25hbFZlY3RvcnNfID0gbmV3IGludFtzaXplXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpICsrKSB7CisgICAgICAgICAgICB1Y2hhcnBwdHkubV9hZGRpdGlvbmFsVmVjdG9yc19baV0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBtX2RhdGFJbnB1dFN0cmVhbV8uY2xvc2UoKTsKKyAgICAgICAgdWNoYXJwcHR5Lm1fYWRkaXRpb25hbENvbHVtbnNDb3VudF8gPSBtX2FkZGl0aW9uYWxDb2x1bW5zQ291bnRfOworICAgICAgICB1Y2hhcnBwdHkubV91bmljb2RlVmVyc2lvbl8gPSBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KW1fdW5pY29kZVZlcnNpb25fWzBdLCAoaW50KW1fdW5pY29kZVZlcnNpb25fWzFdLAorICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpbV91bmljb2RlVmVyc2lvbl9bMl0sIChpbnQpbV91bmljb2RlVmVyc2lvbl9bM10pOworICAgIH0KKyAgICAKKyAgICAvLyBwcml2YXRlIHZhcmlhYmxlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAKKyAgICAvKioKKyAgICAqIEluZGV4IHNpemUKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJTkRFWF9TSVpFXyA9IDE2OworICAgIAorICAgIC8qKgorICAgICogSUNVIGRhdGEgZmlsZSBpbnB1dCBzdHJlYW0KKyAgICAqLworICAgIHByaXZhdGUgRGF0YUlucHV0U3RyZWFtIG1fZGF0YUlucHV0U3RyZWFtXzsKKyAgICAgIAorICAgIC8qKgorICAgICogT2Zmc2V0IGluZm9ybWF0aW9uIGluIHRoZSBpbmRleGVzLgorICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9wcm9wZXJ0eU9mZnNldF87CisgICAgcHJpdmF0ZSBpbnQgbV9leGNlcHRpb25PZmZzZXRfOworICAgIHByaXZhdGUgaW50IG1fY2FzZU9mZnNldF87CisgICAgcHJpdmF0ZSBpbnQgbV9hZGRpdGlvbmFsT2Zmc2V0XzsKKyAgICBwcml2YXRlIGludCBtX2FkZGl0aW9uYWxWZWN0b3JzT2Zmc2V0XzsKKyAgICBwcml2YXRlIGludCBtX2FkZGl0aW9uYWxDb2x1bW5zQ291bnRfOworICAgIHByaXZhdGUgaW50IG1fcmVzZXJ2ZWRPZmZzZXRfOworICAgIHByaXZhdGUgYnl0ZSBtX3VuaWNvZGVWZXJzaW9uX1tdOyAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8qKgorICAgICogRmlsZSBmb3JtYXQgdmVyc2lvbiB0aGF0IHRoaXMgY2xhc3MgdW5kZXJzdGFuZHMuCisgICAgKiBObyBndWFyYW50ZWVzIGFyZSBtYWRlIGlmIGEgb2xkZXIgdmVyc2lvbiBpcyB1c2VkCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIERBVEFfRk9STUFUX0lEX1tdID0geyhieXRlKTB4NTUsIChieXRlKTB4NTAsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKTB4NzIsIChieXRlKTB4NkZ9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgREFUQV9GT1JNQVRfVkVSU0lPTl9bXSA9IHsoYnl0ZSkweDMsIChieXRlKTB4MSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSlUcmllLklOREVYX1NUQUdFXzFfU0hJRlRfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKVRyaWUuSU5ERVhfU1RBR0VfMl9TSElGVF99OworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVUZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVUZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkMjg3NzEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSw5MyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvQXR0aWMvVUZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvci5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzA2LzIwIDAxOjE4OjA5ICQgCisgKiAkUmV2aXNpb246IDEuMSAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworLyoqCisgKiBJbnRlcmZhY2UgdGhhdCBkZWZpbmVzIGFuIEFQSSBmb3IgZm9yd2FyZC1vbmx5IGl0ZXJhdGlvbgorICogb24gdGV4dCBvYmplY3RzLgorICogVGhpcyBpcyBhIG1pbmltYWwgaW50ZXJmYWNlIGZvciBpdGVyYXRpb24gd2l0aG91dCByYW5kb20gYWNjZXNzCisgKiBvciBiYWNrd2FyZHMgaXRlcmF0aW9uLiBJdCBpcyBlc3BlY2lhbGx5IHVzZWZ1bCBmb3Igd3JhcHBpbmcKKyAqIHN0cmVhbXMgd2l0aCBjb252ZXJ0ZXJzIGludG8gYW4gb2JqZWN0IGZvciBjb2xsYXRpb24gb3IKKyAqIG5vcm1hbGl6YXRpb24uCisgKgorICogPHA+Q2hhcmFjdGVycyBjYW4gYmUgYWNjZXNzZWQgaW4gdHdvIHdheXM6IGFzIGNvZGUgdW5pdHMgb3IgYXMKKyAqIGNvZGUgcG9pbnRzLgorICogVW5pY29kZSBjb2RlIHBvaW50cyBhcmUgMjEtYml0IGludGVnZXJzIGFuZCBhcmUgdGhlIHNjYWxhciB2YWx1ZXMKKyAqIG9mIFVuaWNvZGUgY2hhcmFjdGVycy4gSUNVIHVzZXMgdGhlIHR5cGUgPGNvZGU+aW50PC9jb2RlPiBmb3IgdGhlbS4KKyAqIFVuaWNvZGUgY29kZSB1bml0cyBhcmUgdGhlIHN0b3JhZ2UgdW5pdHMgb2YgYSBnaXZlbgorICogVW5pY29kZS9VQ1MgVHJhbnNmb3JtYXRpb24gRm9ybWF0IChhIGNoYXJhY3RlciBlbmNvZGluZyBzY2hlbWUpLgorICogV2l0aCBVVEYtMTYsIGFsbCBjb2RlIHBvaW50cyBjYW4gYmUgcmVwcmVzZW50ZWQgd2l0aCBlaXRoZXIgb25lCisgKiBvciB0d28gY29kZSB1bml0cyAoInN1cnJvZ2F0ZXMiKS4KKyAqIFN0cmluZyBzdG9yYWdlIGlzIHR5cGljYWxseSBiYXNlZCBvbiBjb2RlIHVuaXRzLCB3aGlsZSBwcm9wZXJ0aWVzCisgKiBvZiBjaGFyYWN0ZXJzIGFyZSB0eXBpY2FsbHkgZGV0ZXJtaW5lZCB1c2luZyBjb2RlIHBvaW50IHZhbHVlcy4KKyAqIFNvbWUgcHJvY2Vzc2VzIG1heSBiZSBkZXNpZ25lZCB0byB3b3JrIHdpdGggc2VxdWVuY2VzIG9mIGNvZGUgdW5pdHMsCisgKiBvciBpdCBtYXkgYmUga25vd24gdGhhdCBhbGwgY2hhcmFjdGVycyB0aGF0IGFyZSBpbXBvcnRhbnQgdG8gYW4KKyAqIGFsZ29yaXRobSBjYW4gYmUgcmVwcmVzZW50ZWQgd2l0aCBzaW5nbGUgY29kZSB1bml0cy4KKyAqIE90aGVyIHByb2Nlc3NlcyB3aWxsIG5lZWQgdG8gdXNlIHRoZSBjb2RlIHBvaW50IGFjY2VzcyBmdW5jdGlvbnMuPC9wPgorICoKKyAqIDxwPkZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciBwcm92aWRlcyBuZXh0KCkgdG8gYWNjZXNzCisgKiBhIGNvZGUgdW5pdCBhbmQgYWR2YW5jZSBhbiBpbnRlcm5hbCBwb3NpdGlvbiBpbnRvIHRoZSB0ZXh0IG9iamVjdCwKKyAqIHNpbWlsYXIgdG8gYSA8Y29kZT5yZXR1cm4gdGV4dFtwb3NpdGlvbisrXTwvY29kZT4uPGJyPgorICogSXQgcHJvdmlkZXMgbmV4dENvZGVQb2ludCgpIHRvIGFjY2VzcyBhIGNvZGUgcG9pbnQgYW5kIGFkdmFuY2UgYW4gaW50ZXJuYWwKKyAqIHBvc2l0aW9uLjwvcD4KKyAqCisgKiA8cD5uZXh0Q29kZVBvaW50KCkgYXNzdW1lcyB0aGF0IHRoZSBjdXJyZW50IHBvc2l0aW9uIGlzIHRoYXQgb2YKKyAqIHRoZSBiZWdpbm5pbmcgb2YgYSBjb2RlIHBvaW50LCBpLmUuLCBvZiBpdHMgZmlyc3QgY29kZSB1bml0LgorICogQWZ0ZXIgbmV4dENvZGVQb2ludCgpLCB0aGlzIHdpbGwgYmUgdHJ1ZSBhZ2Fpbi4KKyAqIEluIGdlbmVyYWwsIGFjY2VzcyB0byBjb2RlIHVuaXRzIGFuZCBjb2RlIHBvaW50cyBpbiB0aGUgc2FtZQorICogaXRlcmF0aW9uIGxvb3Agc2hvdWxkIG5vdCBiZSBtaXhlZC4gSW4gVVRGLTE2LCBpZiB0aGUgY3VycmVudCBwb3NpdGlvbgorICogaXMgb24gYSBzZWNvbmQgY29kZSB1bml0IChMb3cgU3Vycm9nYXRlKSwgdGhlbiBvbmx5IHRoYXQgY29kZSB1bml0CisgKiBpcyByZXR1cm5lZCBldmVuIGJ5IG5leHRDb2RlUG9pbnQoKS48L3A+CisgKgorICogVXNhZ2U6CisgKiA8Y29kZT4gCisgKiAgcHVibGljIHZvaWQgZnVuY3Rpb24xKFVGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgaXQpIHsKKyAqICAgICBpbnQgYzsKKyAqICAgICB3aGlsZSgoYz1pdC5uZXh0KCkpIT1VRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKyAqICAgICAgICAgLy8gdXNlIGMKKyAqICAgICAgfQorICogIH0KKyAqIDwvY29kZT4KKyAqIDwvcD4KKyAqCisgKi8KKworcHVibGljIGludGVyZmFjZSBVRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIHsKKyAgICAgIAorICAgIC8qKgorICAgICAqIEluZGljYXRvciB0aGF0IHdlIGhhdmUgcmVhY2hlZCB0aGUgZW5kcyBvZiB0aGUgVVRGMTYgdGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBET05FID0gLTE7CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgVVRGMTYgY29kZSB1bml0IGF0IGluZGV4LCBhbmQgaW5jcmVtZW50cyB0byB0aGUgbmV4dAorICAgICAqIGNvZGUgdW5pdCAocG9zdC1pbmNyZW1lbnQgc2VtYW50aWNzKS4gIElmIGluZGV4IGlzIG91dCBvZgorICAgICAqIHJhbmdlLCBET05FIGlzIHJldHVybmVkLCBhbmQgdGhlIGl0ZXJhdG9yIGlzIHJlc2V0IHRvIHRoZSBsaW1pdAorICAgICAqIG9mIHRoZSB0ZXh0LgorICAgICAqIEByZXR1cm4gdGhlIG5leHQgVVRGMTYgY29kZSB1bml0LCBvciBET05FIGlmIHRoZSBpbmRleCBpcyBhdCB0aGUgbGltaXQKKyAgICAgKiAgICAgICAgIG9mIHRoZSB0ZXh0LiAgCisgICAgICovCisgICAgcHVibGljIGludCBuZXh0KCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjb2RlIHBvaW50IGF0IGluZGV4LCBhbmQgaW5jcmVtZW50cyB0byB0aGUgbmV4dCBjb2RlCisgICAgICogcG9pbnQgKHBvc3QtaW5jcmVtZW50IHNlbWFudGljcykuICBJZiBpbmRleCBkb2VzIG5vdCBwb2ludCB0byBhCisgICAgICogdmFsaWQgc3Vycm9nYXRlIHBhaXIsIHRoZSBiZWhhdmlvciBpcyB0aGUgc2FtZSBhcworICAgICAqIDxjb2RlPm5leHQoKTxjb2RlPi4gIE90aGVyd2lzZSB0aGUgaXRlcmF0b3IgaXMgaW5jcmVtZW50ZWQgcGFzdAorICAgICAqIHRoZSBzdXJyb2dhdGUgcGFpciwgYW5kIHRoZSBjb2RlIHBvaW50IHJlcHJlc2VudGVkIGJ5IHRoZSBwYWlyCisgICAgICogaXMgcmV0dXJuZWQuCisgICAgICogQHJldHVybiB0aGUgbmV4dCBjb2RlcG9pbnQgaW4gdGV4dCwgb3IgRE9ORSBpZiB0aGUgaW5kZXggaXMgYXQKKyAgICAgKiAgICAgICAgIHRoZSBsaW1pdCBvZiB0aGUgdGV4dC4gIAorICAgICAqLworICAgIHB1YmxpYyBpbnQgbmV4dENvZGVQb2ludCgpOworCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9VU2VyaWFsaXplZFNldC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVVNlcmlhbGl6ZWRTZXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44M2ZmYTE3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVVNlcmlhbGl6ZWRTZXQuamF2YQpAQCAtMCwwICsxLDIyNiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgIENvcHlyaWdodCAoQykgMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvVVNlcmlhbGl6ZWRTZXQuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wNi8yMCAwMToxODowOSAkIAorICogJFJldmlzaW9uOiAxLjMgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworLyoqCisgKiBAdmVyc2lvbiAJMS4wCisgKiBAYXV0aG9yICAgICBNYXJrdXMgVy4gU2NoZXJlcgorICovCisKKy8qKgorICogU2ltcGxlIGNsYXNzIGZvciBoYW5kbGluZyBzZXJpYWxpemVkIFVTZXQvVW5pY29kZVNldCBzdHJ1Y3R1cmVzCisgKiB3aXRob3V0IG9iamVjdCBjcmVhdGlvbi4gU2VlIElDVTRDIGljdS9zb3VyY2UvY29tbW9uL3VzZXQuYy4KKyAqCisgKiBAaW50ZXJuYWwKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFVTZXJpYWxpemVkU2V0IHsKKwkKKyAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiBnZXRTZXQoY2hhciBzcmNbXSwgaW50IHNyY1N0YXJ0KSB7CisgICAgICAgIC8vIGxlYXZlIG1vc3QgYXJndW1lbnQgY2hlY2tpbmcgdXAgdG8gSmF2YSBleGNlcHRpb25zCisgICAgICAgIGFycmF5PW51bGw7CisgICAgICAgIGFycmF5T2Zmc2V0PWJtcExlbmd0aD1sZW5ndGg9MDsKKworICAgICAgICBsZW5ndGg9c3JjW3NyY1N0YXJ0KytdOworICAgICAgICAKKyAgICAgICAgCisgICAgICAgIGlmKChsZW5ndGgmMHg4MDAwKSA+MCkgeworICAgICAgICAgICAgLyogdGhlcmUgYXJlIHN1cHBsZW1lbnRhcnkgdmFsdWVzICovCisgICAgICAgICAgICBsZW5ndGgmPTB4N2ZmZjsKKyAgICAgICAgICAgIGlmKHNyYy5sZW5ndGg8KHNyY1N0YXJ0KzErbGVuZ3RoKSkgeworICAgICAgICAgICAgICAgIGxlbmd0aD0wOworICAgICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJtcExlbmd0aD1zcmNbc3JjU3RhcnQrK107CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvKiBvbmx5IEJNUCB2YWx1ZXMgKi8KKyAgICAgICAgICAgIGlmKHNyYy5sZW5ndGg8KHNyY1N0YXJ0K2xlbmd0aCkpIHsKKyAgICAgICAgICAgICAgICBsZW5ndGg9MDsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYm1wTGVuZ3RoPWxlbmd0aDsKKyAgICAgICAgfQorICAgICAgICBhcnJheSA9IG5ldyBjaGFyW2xlbmd0aF07CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoc3JjLHNyY1N0YXJ0LGFycmF5LDAsbGVuZ3RoKTsKKyAgICAgICAgLy9hcnJheU9mZnNldD1zcmNTdGFydDsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsICBib29sZWFuICBjb250YWlucyhpbnQgYykgeworICAgICAgICBpZihjPDAgfHwgMHgxMGZmZmY8YykgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgaWYoYzw9MHhmZmZmKSB7CisgICAgICAgICAgICAvKiBmaW5kIGMgaW4gdGhlIEJNUCBwYXJ0ICovCisgICAgICAgICAgICBpbnQgaSwgYm1wTGltaXQ9YXJyYXlPZmZzZXQrYm1wTGVuZ3RoOworICAgICAgICAgICAgZm9yKGk9YXJyYXlPZmZzZXQ7IGk8Ym1wTGltaXQgJiYgYz49YXJyYXlbaV07ICsraSkge30KKyAgICAgICAgICAgIHJldHVybiAoKChpLWFycmF5T2Zmc2V0KSYxKT4wKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qIGZpbmQgYyBpbiB0aGUgc3VwcGxlbWVudGFyeSBwYXJ0ICovCisgICAgICAgICAgICBpbnQgaSwgbGltaXQ9YXJyYXlPZmZzZXQrbGVuZ3RoOworICAgICAgICAgICAgY2hhciBoaWdoPShjaGFyKShjPj4xNiksIGxvdz0oY2hhciljOworICAgICAgICAgICAgZm9yKGk9YXJyYXlPZmZzZXQrYm1wTGVuZ3RoOworICAgICAgICAgICAgICAgIGk8bGltaXQgJiYgKGhpZ2g+YXJyYXlbaV0gfHwgKGhpZ2g9PWFycmF5W2ldICYmIGxvdz49YXJyYXlbaSsxXSkpOworICAgICAgICAgICAgICAgIGkrPTIpIHt9CisKKyAgICAgICAgICAgIC8qIGNvdW50IHBhaXJzIG9mIDE2LWJpdCB1bml0cyBldmVuIHBlciBCTVAgYW5kIGNoZWNrIGlmIHRoZSBudW1iZXIgb2YgcGFpcnMgaXMgb2RkICovCisgICAgICAgICAgICByZXR1cm4gKChpK2JtcExlbmd0aC1hcnJheU9mZnNldCkmMikhPTA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgIGJvb2xlYW4gY291bnRSYW5nZXMoKSB7CisgICAgICAgIHJldHVybiAoKGJtcExlbmd0aCsobGVuZ3RoLWJtcExlbmd0aCkvMisxKS8yKT4wOworICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCAgYm9vbGVhbiBnZXRSYW5nZShpbnQgcmFuZ2VJbmRleCwgaW50IHJhbmdlW10pIHsKKyAgICAgICAgaWYocmFuZ2VJbmRleDwwKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworCQlyYW5nZT1uZXcgaW50WzJdOworCQkKKyAgICAgICAgcmFuZ2VJbmRleCo9MjsgLyogYWRkcmVzcyBzdGFydC9saW1pdCBwYWlycyAqLworICAgICAgICBpZihyYW5nZUluZGV4PGJtcExlbmd0aCkgeworICAgICAgICAgICAgcmFuZ2VbMF09YXJyYXlbYXJyYXlPZmZzZXQrcmFuZ2VJbmRleCsrXTsKKyAgICAgICAgICAgIGlmKHJhbmdlSW5kZXg8Ym1wTGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmFuZ2VbMV09YXJyYXlbYXJyYXlPZmZzZXQrcmFuZ2VJbmRleF07CisgICAgICAgICAgICB9IGVsc2UgaWYocmFuZ2VJbmRleDxsZW5ndGgpIHsKKyAgICAgICAgICAgICAgICByYW5nZVsxXT0oKChpbnQpYXJyYXlbYXJyYXlPZmZzZXQrcmFuZ2VJbmRleF0pPDwxNil8YXJyYXlbYXJyYXlPZmZzZXQrcmFuZ2VJbmRleCsxXTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmFuZ2VbMV09MHgxMTAwMDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJhbmdlSW5kZXgtPWJtcExlbmd0aDsKKyAgICAgICAgICAgIHJhbmdlSW5kZXgqPTI7IC8qIGFkZHJlc3MgcGFpcnMgb2YgcGFpcnMgb2YgdW5pdHMgKi8KKyAgICAgICAgICAgIGludCBzdXBwTGVuZ3RoPWxlbmd0aC1ibXBMZW5ndGg7CisgICAgICAgICAgICBpZihyYW5nZUluZGV4PHN1cHBMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0PWFycmF5T2Zmc2V0K2JtcExlbmd0aDsKKyAgICAgICAgICAgICAgICByYW5nZVswXT0oKChpbnQpYXJyYXlbb2Zmc2V0K3JhbmdlSW5kZXhdKTw8MTYpfGFycmF5W29mZnNldCtyYW5nZUluZGV4KzFdOworICAgICAgICAgICAgICAgIHJhbmdlSW5kZXgrPTI7CisgICAgICAgICAgICAgICAgaWYocmFuZ2VJbmRleDxzdXBwTGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmFuZ2VbMV09KCgoaW50KWFycmF5W29mZnNldCtyYW5nZUluZGV4XSk8PDE2KXxhcnJheVtvZmZzZXQrcmFuZ2VJbmRleCsxXTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByYW5nZVsxXT0weDExMDAwMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKwlwdWJsaWMgZmluYWwgdm9pZCBzZXRTZXJpYWxpemVkVG9PbmUoaW50IGMpIHsKKwkgICAgaWYoIDB4MTBmZmZmPGMpIHsKKwkgICAgICAgIHJldHVybjsKKwkgICAgfQorCisJICAgIGlmKGM8MHhmZmZmKSB7CisJICAgICAgICBibXBMZW5ndGg9bGVuZ3RoPTI7CisJICAgICAgICBhcnJheVswXT0oY2hhciljOworCSAgICAgICAgYXJyYXlbMV09KGNoYXIpKGMrMSk7CisJICAgIH0gZWxzZSBpZihjPT0weGZmZmYpIHsKKwkgICAgICAgIGJtcExlbmd0aD0xOworCSAgICAgICAgbGVuZ3RoPTM7CisJICAgICAgICBhcnJheVswXT0weGZmZmY7CisJICAgICAgICBhcnJheVsxXT0xOworCSAgICAgICAgYXJyYXlbMl09MDsKKwkgICAgfSBlbHNlIGlmKGM8MHgxMGZmZmYpIHsKKwkgICAgICAgIGJtcExlbmd0aD0wOworCSAgICAgICAgbGVuZ3RoPTQ7CisJICAgICAgICBhcnJheVswXT0oY2hhcikoYz4+MTYpOworCSAgICAgICAgYXJyYXlbMV09KGNoYXIpYzsKKwkgICAgICAgICsrYzsKKwkgICAgICAgIGFycmF5WzJdPShjaGFyKShjPj4xNik7CisJICAgICAgICBhcnJheVszXT0oY2hhciljOworCSAgICB9IGVsc2UgLyogYz09MHgxMGZmZmYgKi8geworCSAgICAgICAgYm1wTGVuZ3RoPTA7CisJICAgICAgICBsZW5ndGg9MjsKKwkgICAgICAgIGFycmF5WzBdPTB4MTA7CisJICAgICAgICBhcnJheVsxXT0weGZmZmY7CisJICAgIH0KKwl9CisJCisJCisJcHVibGljIGZpbmFsIGJvb2xlYW4gZ2V0U2VyaWFsaXplZFJhbmdlKCBpbnQgcmFuZ2VJbmRleCxpbnRbXSByYW5nZSkgeworCSAgICBpZiggcmFuZ2VJbmRleDwwKSB7CisJICAgICAgICByZXR1cm4gZmFsc2U7CisJICAgIH0KKwkgICAgaWYoYXJyYXk9PW51bGwpeworCQkJYXJyYXkgPSBuZXcgY2hhcls4XTsKKwkJfQorICAgICAgICBpZihyYW5nZT09bnVsbCB8fCByYW5nZS5sZW5ndGggPDIpeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIHJhbmdlSW5kZXgqPTI7IC8qIGFkZHJlc3Mgc3RhcnQvbGltaXQgcGFpcnMgKi8KKwkgICAgaWYocmFuZ2VJbmRleDxibXBMZW5ndGgpIHsKKwkgICAgICAgIHJhbmdlWzBdPWFycmF5W3JhbmdlSW5kZXgrK107CisJICAgICAgICBpZihyYW5nZUluZGV4PGJtcExlbmd0aCkgeworCSAgICAgICAgICAgIHJhbmdlWzFdPWFycmF5W3JhbmdlSW5kZXhdOworCSAgICAgICAgfSBlbHNlIGlmKHJhbmdlSW5kZXg8bGVuZ3RoKSB7CisJICAgICAgICAgICAgcmFuZ2VbMV09KCgoaW50KWFycmF5W3JhbmdlSW5kZXhdKTw8MTYpfGFycmF5W3JhbmdlSW5kZXgrMV07CisJICAgICAgICB9IGVsc2UgeworCSAgICAgICAgICAgIHJhbmdlWzFdPTB4MTEwMDAwOworCSAgICAgICAgfQorICAgICAgICAgICAgcmFuZ2VbMV0tPTE7CisJICAgICAgICByZXR1cm4gdHJ1ZTsKKwkgICAgfSBlbHNlIHsKKwkgICAgICAgIHJhbmdlSW5kZXgtPWJtcExlbmd0aDsKKwkgICAgICAgIHJhbmdlSW5kZXgqPTI7IC8qIGFkZHJlc3MgcGFpcnMgb2YgcGFpcnMgb2YgdW5pdHMgKi8KKwkgICAgICAgIGxlbmd0aC09Ym1wTGVuZ3RoOworCSAgICAgICAgaWYocmFuZ2VJbmRleDxsZW5ndGgpIHsKKwkgICAgICAgICAgICBpbnQgb2Zmc2V0PWFycmF5T2Zmc2V0K2JtcExlbmd0aDsKKwkgICAgICAgICAgICByYW5nZVswXT0oKChpbnQpYXJyYXlbb2Zmc2V0K3JhbmdlSW5kZXhdKTw8MTYpfGFycmF5W29mZnNldCtyYW5nZUluZGV4KzFdOworCSAgICAgICAgICAgIHJhbmdlSW5kZXgrPTI7CisJICAgICAgICAgICAgaWYocmFuZ2VJbmRleDxsZW5ndGgpIHsKKwkgICAgICAgICAgICAgICAgcmFuZ2VbMV09KCgoaW50KWFycmF5W29mZnNldCtyYW5nZUluZGV4XSk8PDE2KXxhcnJheVtvZmZzZXQrcmFuZ2VJbmRleCsxXTsKKwkgICAgICAgICAgICB9IGVsc2UgeworCSAgICAgICAgICAgICAgICByYW5nZVsxXT0weDExMDAwMDsKKwkgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmFuZ2VbMV0tPTE7CisJICAgICAgICAgICAgcmV0dXJuIHRydWU7CisJICAgICAgICB9IGVsc2UgeworCSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKwkgICAgICAgIH0KKwkgICAgfQorCX0KKwlwdWJsaWMgZmluYWwgYm9vbGVhbiBzZXJpYWxpemVkQ29udGFpbnMoaW50IGMpIHsKKwkKKwkgICAgaWYoYz4weDEwZmZmZikgeworCSAgICAgICAgcmV0dXJuIGZhbHNlOworCSAgICB9CisJICAgIAorCSAgICBpZihjPD0weGZmZmYpIHsKKwkgICAgCWludCBpOworCSAgICAgICAgLyogZmluZCBjIGluIHRoZSBCTVAgcGFydCAqLworCSAgICAgICAgZm9yKGk9MDsgaTxibXBMZW5ndGggJiYgKGNoYXIpYz49YXJyYXlbaV07ICsraSkge30KKwkgICAgICAgIHJldHVybiAoYm9vbGVhbikoKGkmMSkgIT0gMCk7CisJICAgIH0gZWxzZSB7CisJICAgIAlpbnQgaTsKKwkgICAgICAgIC8qIGZpbmQgYyBpbiB0aGUgc3VwcGxlbWVudGFyeSBwYXJ0ICovCisJICAgICAgICBjaGFyIGhpZ2g9KGNoYXIpKGM+PjE2KSwgbG93PShjaGFyKWM7CisJICAgICAgICBmb3IoaT1ibXBMZW5ndGg7CisJICAgICAgICAgICAgaTxsZW5ndGggJiYgKGhpZ2g+YXJyYXlbaV0gfHwgKGhpZ2g9PWFycmF5W2ldICYmIGxvdz49YXJyYXlbaSsxXSkpOworCSAgICAgICAgICAgIGkrPTIpIHt9CisJCisJICAgICAgICAvKiBjb3VudCBwYWlycyBvZiAxNi1iaXQgdW5pdHMgZXZlbiBwZXIgQk1QIGFuZCBjaGVjayBpZiB0aGUgbnVtYmVyIG9mIHBhaXJzIGlzIG9kZCAqLworCSAgICAgICAgcmV0dXJuIChib29sZWFuKSgoKGkrYm1wTGVuZ3RoKSYyKSE9MCk7CisJICAgIH0KKwl9CisJCisJcHVibGljIGZpbmFsIGludCBjb3VudFNlcmlhbGl6ZWRSYW5nZXMoKSB7CisJICAgIHJldHVybiAoYm1wTGVuZ3RoKyhsZW5ndGgtYm1wTGVuZ3RoKS8yKzEpLzI7CisJfQorCisgICAgcHJpdmF0ZSBjaGFyIGFycmF5W10gPSBuZXcgY2hhcls4XTsKKyAgICBwcml2YXRlIGludCBhcnJheU9mZnNldCwgYm1wTGVuZ3RoLCBsZW5ndGg7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVW5pY29kZUNoYXJhY3Rlckl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9Vbmljb2RlQ2hhcmFjdGVySXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40N2JmYTQwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVW5pY29kZUNoYXJhY3Rlckl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwzMzggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL0F0dGljL1VuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvci5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzA4LzA3IDE3OjU1OjAzICQgCisgKiAkUmV2aXNpb246IDEuMiAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SZXBsYWNlYWJsZTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlJlcGxhY2VhYmxlU3RyaW5nOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yOworCisvKioKKyAqIEludGVybmFsIGNsYXNzIHRoYXQgaXRlcmF0ZXMgdGhyb3VnaCBhIGNvbS5pYm0udGV4dC5SZXBsYWNhYmxlIHRleHQgb2JqZWN0IAorICogdG8gcmV0dXJuIGVpdGhlciBVbmljb2RlIGNoYXJhY3RlcnMuCisgKiBAYXV0aG9yIHN5bndlZQorICogQHZlcnNpb24gcmVsZWFzZSAyLjEsIEZlYnJ1YXJ5IDIwMDIKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvciBpbXBsZW1lbnRzIENoYXJhY3Rlckl0ZXJhdG9yCit7CisJLy8gcHVibGljIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCQorCS8qKgorCSAqIEluZGljYXRvciB0aGF0IHdlIGhhdmUgcmVhY2hlZCB0aGUgZW5kcyBvZiB0aGUgVVRGMTYgdGV4dCB3aGVuIHJldHVybmluZworCSAqIDE2IGJpdCBjaGFyYWN0ZXIuCisJICovCisJcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRE9ORSA9IDB4RkZGRjsKKwkvKioKKwkgKiBJbmRpY2F0b3IgdGhhdCB3ZSBoYXZlIHJlYWNoZWQgdGhlIGVuZHMgb2YgdGhlIFVURjE2IHRleHQgd2hlbiByZXR1cm5pbmcKKwkgKiBjb2RlcG9pbnRzLgorCSAqLworCXB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERPTkVfQ09ERVBPSU5UID0gLTE7CisJCisJLy8gcHVibGljIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCQorCS8qKgorCSAqIFB1YmxpYyBjb25zdHJ1Y3Rvci4KKwkgKiBCeSBkZWZhdWx0IHRoZSBpdGVyYXRpb24gcmFuZ2Ugd2lsbCBiZSBmcm9tIDAgdG8gdGhlIGVuZCBvZiB0aGUgdGV4dC4KKwkgKiBAcGFyYW0gcmVwbGFjYWJsZSB0ZXh0IHdoaWNoIHRoZSBpdGVyYXRvciB3aWxsIGJlIGJhc2VkIG9uCisJICovCisJcHVibGljIFVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvcihSZXBsYWNlYWJsZSByZXBsYWNlYWJsZSkKKwl7CisJCW1fcmVwbGFjZWFibGVfICA9IHJlcGxhY2VhYmxlOworCQltX2luZGV4XyAgICAgICAgPSAwOworCQltX3N0YXJ0XyAgICAgICAgPSAwOworCQltX2xpbWl0XyAgICAgICAgPSByZXBsYWNlYWJsZS5sZW5ndGgoKTsKKwl9CisJCisJLyoqCisJICogUHVibGljIGNvbnN0cnVjdG9yCisJICogQnkgZGVmYXVsdCB0aGUgaXRlcmF0aW9uIHJhbmdlIHdpbGwgYmUgZnJvbSAwIHRvIHRoZSBlbmQgb2YgdGhlIHRleHQuCisJICogQHBhcmFtIHN0ciB0ZXh0IHdoaWNoIHRoZSBpdGVyYXRvciB3aWxsIGJlIGJhc2VkIG9uCisJICovCisJcHVibGljIFVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvcihTdHJpbmcgc3RyKQorCXsKKwkJbV9yZXBsYWNlYWJsZV8gID0gbmV3IFJlcGxhY2VhYmxlU3RyaW5nKHN0cik7CisJCW1faW5kZXhfICAgICAgICA9IDA7CisJCW1fc3RhcnRfICAgICAgICA9IDA7CisJCW1fbGltaXRfICAgICAgICA9IG1fcmVwbGFjZWFibGVfLmxlbmd0aCgpOworCX0KKwkKKwkvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIGdpdmVuIHJhbmdlIG9mIHRoZSBnaXZlbiBzdHJpbmcuCisgICAgICogQHBhcmFtICB0ZXh0ICB0ZXh0IHRvIGJlIGl0ZXJhdGVkIG92ZXIKKyAgICAgKiBAcGFyYW0gIHN0YXJ0IG9mZnNldCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIHRvIGl0ZXJhdGUKKyAgICAgKiBAcGFyYW0gIGxpbWl0IG9mZnNldCBvZiB0aGUgY2hhcmFjdGVyIGZvbGxvd2luZyB0aGUgbGFzdCBjaGFyYWN0ZXIgdG8KKyAgICAgKiAJCQkJCWl0ZXJhdGUKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZUNoYXJhY3Rlckl0ZXJhdG9yKFN0cmluZyBzdHIsIGludCBzdGFydCwgaW50IGxpbWl0KSAKKyAgICB7CisgICAgCW1fcmVwbGFjZWFibGVfICA9IG5ldyBSZXBsYWNlYWJsZVN0cmluZyhzdHIpOworCQltX3N0YXJ0XyAgICAgICAgPSBzdGFydDsKKwkJbV9saW1pdF8gICAgICAgID0gbGltaXQ7CisJCW1faW5kZXhfICAgICAgICA9IG1fc3RhcnRfOworICAgIH0gICAKKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIGdpdmVuIHJhbmdlIG9mIHRoZSBnaXZlbiByZXBsYWNlYWJsZSAKKyAgICAgKiBzdHJpbmcuCisgICAgICogQHBhcmFtICB0ZXh0ICB0ZXh0IHRvIGJlIGl0ZXJhdGVkIG92ZXIKKyAgICAgKiBAcGFyYW0gIHN0YXJ0IG9mZnNldCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIHRvIGl0ZXJhdGUKKyAgICAgKiBAcGFyYW0gIGxpbWl0IG9mZnNldCBvZiB0aGUgY2hhcmFjdGVyIGZvbGxvd2luZyB0aGUgbGFzdCBjaGFyYWN0ZXIgdG8KKyAgICAgKiAJCQkJCWl0ZXJhdGUKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZUNoYXJhY3Rlckl0ZXJhdG9yKFJlcGxhY2VhYmxlIHJlcGxhY2VhYmxlLCBpbnQgc3RhcnQsIGludCBsaW1pdCkgCisgICAgeworICAgIAltX3JlcGxhY2VhYmxlXyAgPSByZXBsYWNlYWJsZTsKKwkJbV9zdGFydF8gICAgICAgID0gc3RhcnQ7CisJCW1fbGltaXRfICAgICAgICA9IGxpbWl0OworCQltX2luZGV4XyAgICAgICAgPSBtX3N0YXJ0XzsKKyAgICB9ICAgCisJCisJLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCQorCS8qKgorICAgICAqIENyZWF0ZXMgYSBjb3B5IG9mIHRoaXMgaXRlcmF0b3IuCisgICAgICogQ2xvbmluZyB3aWxsIG5vdCBkdXBsaWNhdGUgYSBuZXcgUmVwbGFjZWFibGUgb2JqZWN0LgorICAgICAqIEByZXR1cm4gY29weSBvZiB0aGlzIGl0ZXJhdG9yCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmNsb25lKCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKAorICAgICAgICAgICAgIkNsb25pbmcgYnkgdGhlIHN1cGVyIGNsYXNzIGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvciBpcyBub3QgIiArCisgICAgICAgICAgICAic3VwcG9ydGVkIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisJLyoqCisgICAgICogUmV0dXJucyB0aGUgY3VycmVudCBVVEYxNiBjaGFyYWN0ZXIuCisgICAgICogQHJldHVybiBjdXJyZW50IFVURjE2IGNoYXJhY3RlcgorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGN1cnJlbnQoKQorICAgIHsKKyAgICAgICAgaWYgKG1faW5kZXhfID49IG1fc3RhcnRfICYmIG1faW5kZXhfIDwgbV9saW1pdF8pIHsKKyAgICAgICAgICAgIHJldHVybiBtX3JlcGxhY2VhYmxlXy5jaGFyQXQobV9pbmRleF8pOworICAgICAgICB9CisgICAgICAgIHJldHVybiBET05FOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGNvZGVwb2ludAorICAgICAqIEByZXR1cm4gY3VycmVudCBjb2RlcG9pbnQKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGN1cnJlbnRDb2RlUG9pbnQoKQorICAgIHsKKyAgICAgICAgaWYgKG1faW5kZXhfID49IG1fc3RhcnRfICYmIG1faW5kZXhfIDwgbV9saW1pdF8pIHsKKyAgICAgICAgICAgIHJldHVybiBtX3JlcGxhY2VhYmxlXy5jaGFyMzJBdChtX2luZGV4Xyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIERPTkVfQ09ERVBPSU5UOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBmaXJzdCBVVEYxNiBjaGFyYWN0ZXIgaW4gdGV4dC4KKyAgICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBVVEYxNiBpbiB0ZXh0LgorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGZpcnN0KCkKKyAgICB7CisgICAgICAgIG1faW5kZXhfID0gbV9zdGFydF87CisgICAgICAgIHJldHVybiBjdXJyZW50KCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHN0YXJ0IG9mIHRoZSB0ZXh0IHRvIGl0ZXJhdGUuCisgICAgICogQHJldHVybiBieSBkZWZhdWx0IHRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuIDAsIHVubGVzcyBhIHJhbmdlIGZvciAKKyAgICAgKiBpdGVyYXRpb24gaGFkIGJlZW4gc3BlY2lmaWVkIGR1cmluZyBjb25zdHJ1Y3Rpb24uCisgICAgICovCisgICAgcHVibGljIGludCBnZXRCZWdpbkluZGV4KCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX3N0YXJ0XzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsaW1pdCBvZmZzZXQgb2YgdGhlIHRleHQgdG8gaXRlcmF0ZQorICAgICAqIEByZXR1cm4gYnkgZGVmYXVsdCB0aGlzIG1ldGhvZCByZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIHRleHQsIHVubGVzcyBhIAorICAgICAqIHJhbmdlIGZvciBpdGVyYXRpb24gaGFkIGJlZW4gc3BlY2lmaWVkIGR1cmluZyBjb25zdHJ1Y3Rpb24uCisgICAgICovCisgICAgcHVibGljIGludCBnZXRFbmRJbmRleCgpCisgICAgeworICAgICAgICByZXR1cm4gbV9saW1pdF87CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGN1cnJlbnQgaW5kZXggaW4gdGV4dC4KKyAgICAgKiBAcmV0dXJuIGN1cnJlbnQgaW5kZXggaW4gdGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEluZGV4KCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2luZGV4XzsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbGFzdCBVVEYxNiBpdGVyYXRlYWJsZSBjaGFyYWN0ZXIgZnJvbSB0aGUgdGV4dCBhbmQgc2hpZnRzIHRoZSAKKyAgICAgKiBpbmRleCB0byB0aGUgZW5kIG9mIHRoZSB0ZXh0IGFjY29yZGluZ2x5LgorICAgICAqIEByZXR1cm4gdGhlIGxhc3QgVVRGMTYgaXRlcmF0ZWFibGUgY2hhcmFjdGVyCisgICAgICovCisgICAgcHVibGljIGNoYXIgbGFzdCgpCisgICAgeworICAgICAgICBpZiAobV9saW1pdF8gIT0gbV9zdGFydF8pIHsKKyAgICAgICAgICAgIG1faW5kZXhfID0gbV9saW1pdF8gLSAxOworICAgICAgICAgICAgcmV0dXJuIG1fcmVwbGFjZWFibGVfLmNoYXJBdChtX2luZGV4Xyk7CisgICAgICAgIH0gCisJCW1faW5kZXhfID0gbV9saW1pdF87CisgICAgICAgIHJldHVybiBET05FOworICAgIH0KKyAgICAKKwkvKioKKyAgICAgKiBSZXR1cm5zIG5leHQgVVRGMTYgY2hhcmFjdGVyIGFuZCBpbmNyZW1lbnRzIHRoZSBpdGVyYXRvcidzIGluZGV4IGJ5IDEuIAorCSAqIElmIHRoZSByZXN1bHRpbmcgaW5kZXggaXMgZ3JlYXRlciBvciBlcXVhbCB0byB0aGUgaXRlcmF0aW9uIGxpbWl0LCB0aGUgCisJICogaW5kZXggaXMgcmVzZXQgdG8gdGhlIHRleHQgaXRlcmF0aW9uIGxpbWl0IGFuZCBhIHZhbHVlIG9mIERPTkVfQ09ERVBPSU5UIGlzIAorCSAqIHJldHVybmVkLiAKKwkgKiBAcmV0dXJuIG5leHQgVVRGMTYgY2hhcmFjdGVyIGluIHRleHQgb3IgRE9ORSBpZiB0aGUgbmV3IGluZGV4IGlzIG9mZiB0aGUgCisJICogICAgICAgICBlbmQgb2YgdGhlIHRleHQgaXRlcmF0aW9uIGxpbWl0LgorICAgICAqLworICAgIHB1YmxpYyBjaGFyIG5leHQoKQorICAgIHsKKyAgICAgICAgaWYgKG1faW5kZXhfIDwgbV9saW1pdF8pIHsKKyAgICAgICAgCWNoYXIgcmVzdWx0ID0gbV9yZXBsYWNlYWJsZV8uY2hhckF0KG1faW5kZXhfKTsKKyAgICAgICAgICAgIG1faW5kZXhfICsrOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gRE9ORTsKKyAgICB9CisKKwkvKioKKwkgKiBSZXR1cm5zIG5leHQgY29kZXBvaW50IGFmdGVyIGN1cnJlbnQgaW5kZXggYW5kIGluY3JlbWVudHMgdGhlIGl0ZXJhdG9yJ3MgCisJICogaW5kZXggYnkgYSBudW1iZXIgZGVwZW5kaW5nIG9uIHRoZSByZXR1cm5lZCBjb2RlcG9pbnQuIAorCSAqIFRoaXMgYXNzdW1lcyB0aGUgdGV4dCBpcyBzdG9yZWQgYXMgMTYtYml0IGNvZGUgdW5pdHMKKyAgICAgKiB3aXRoIHN1cnJvZ2F0ZSBwYWlycyBpbnRlcm1peGVkLiBJZiB0aGUgaW5kZXggb2YgYSBsZWFkaW5nIG9yIHRyYWlsaW5nIAorICAgICAqIGNvZGUgdW5pdCBvZiBhIHN1cnJvZ2F0ZSBwYWlyIGlzIGdpdmVuLCByZXR1cm4gdGhlIGNvZGUgcG9pbnQgYWZ0ZXIgdGhlIAorICAgICAqIHN1cnJvZ2F0ZSBwYWlyLgorCSAqIElmIHRoZSByZXN1bHRpbmcgaW5kZXggaXMgZ3JlYXRlciBvciBlcXVhbCB0byB0aGUgdGV4dCBpdGVyYXRlYWJsZSBsaW1pdCwKKwkgKiB0aGUgY3VycmVudCBpbmRleCBpcyByZXNldCB0byB0aGUgdGV4dCBpdGVyYXRlYWJsZSBsaW1pdCBhbmQgYSB2YWx1ZSBvZiAKKwkgKiBET05FX0NPREVQT0lOVCBpcyByZXR1cm5lZC4gCisJICogQHJldHVybiBuZXh0IGNvZGVwb2ludCBpbiB0ZXh0IG9yIERPTkVfQ09ERVBPSU5UIGlmIHRoZSBuZXcgaW5kZXggaXMgb2ZmIHRoZSAKKwkgKiAgICAgICAgIGVuZCBvZiB0aGUgdGV4dCBpdGVyYXRlYWJsZSBsaW1pdC4KKwkgKi8JCisJcHVibGljIGludCBuZXh0Q29kZVBvaW50KCkKKwl7CisgICAgICAgIGlmIChtX2luZGV4XyA8IG1fbGltaXRfKSB7CisgICAgICAgICAgICBjaGFyIGNoID0gbV9yZXBsYWNlYWJsZV8uY2hhckF0KG1faW5kZXhfKTsKKyAgICAgICAgICAgIG1faW5kZXhfICsrOworICAgICAgICAgICAgaWYgKGNoID49IFVURjE2LkxFQURfU1VSUk9HQVRFX01JTl9WQUxVRSAmJgorICAgICAgICAgICAgICAgIGNoIDw9IFVURjE2LkxFQURfU1VSUk9HQVRFX01BWF9WQUxVRSAmJgorICAgICAgICAgICAgICAgIG1faW5kZXhfIDwgbV9saW1pdF8pIHsKKyAgICAgICAgICAgICAgICBjaGFyIHRyYWlsID0gbV9yZXBsYWNlYWJsZV8uY2hhckF0KG1faW5kZXhfKTsKKyAgICAgICAgICAgICAgICBpZiAodHJhaWwgPj0gVVRGMTYuVFJBSUxfU1VSUk9HQVRFX01JTl9WQUxVRSAmJgorICAgICAgICAgICAgICAgICAgICB0cmFpbCA8PSBVVEYxNi5UUkFJTF9TVVJST0dBVEVfTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICAgICAgICAgIG1faW5kZXhfICsrOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkoY2gsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhaWwpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBjaDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gRE9ORV9DT0RFUE9JTlQ7CisJfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBwcmV2aW91cyBVVEYxNiBjaGFyYWN0ZXIgYW5kIGRlY3JlbWVudHMgdGhlIGl0ZXJhdG9yJ3MgaW5kZXggYnkgCisgICAgICogMS4gCisJICogSWYgdGhlIHJlc3VsdGluZyBpbmRleCBpcyBsZXNzIHRoYW4gdGhlIHRleHQgaXRlcmF0ZWFibGUgbGltaXQsIHRoZSAKKwkgKiBpbmRleCBpcyByZXNldCB0byB0aGUgc3RhcnQgb2YgdGhlIHRleHQgaXRlcmF0aW9uIGFuZCBhIHZhbHVlIG9mIAorCSAqIERPTkVfQ09ERVBPSU5UIGlzIHJldHVybmVkLiAKKwkgKiBAcmV0dXJuIG5leHQgVVRGMTYgY2hhcmFjdGVyIGluIHRleHQgb3IgRE9ORSBpZiB0aGUgbmV3IGluZGV4IGlzIG9mZiB0aGUgCisJICogICAgICAgICBzdGFydCBvZiB0aGUgdGV4dCBpdGVyYXRpb24gcmFuZ2UuCisgICAgICovCisgICAgcHVibGljIGNoYXIgcHJldmlvdXMoKQorICAgIHsKKyAgICAgICAgaWYgKG1faW5kZXhfID4gbV9zdGFydF8pIHsKKyAgICAgICAgICAgIG1faW5kZXhfIC0tOworICAgICAgICAgICAgcmV0dXJuIG1fcmVwbGFjZWFibGVfLmNoYXJBdChtX2luZGV4Xyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIERPTkU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgcHJldmlvdXMgY29kZXBvaW50IGJlZm9yZSBjdXJyZW50IGluZGV4IGFuZCBkZWNyZW1lbnRzIHRoZSAKKyAgICAgKiBpdGVyYXRvcidzIGluZGV4IGJ5IGEgbnVtYmVyIGRlcGVuZGluZyBvbiB0aGUgcmV0dXJuZWQgY29kZXBvaW50LiAKKwkgKiBUaGlzIGFzc3VtZXMgdGhlIHRleHQgaXMgc3RvcmVkIGFzIDE2LWJpdCBjb2RlIHVuaXRzCisgICAgICogd2l0aCBzdXJyb2dhdGUgcGFpcnMgaW50ZXJtaXhlZC4gSWYgdGhlIGluZGV4IG9mIGEgbGVhZGluZyBvciB0cmFpbGluZyAKKyAgICAgKiBjb2RlIHVuaXQgb2YgYSBzdXJyb2dhdGUgcGFpciBpcyBnaXZlbiwgcmV0dXJuIHRoZSBjb2RlIHBvaW50IGJlZm9yZSB0aGUgCisgICAgICogc3Vycm9nYXRlIHBhaXIuCisJICogSWYgdGhlIHJlc3VsdGluZyBpbmRleCBpcyBsZXNzIHRoYW4gdGhlIHRleHQgaXRlcmF0ZWFibGUgcmFuZ2UsIHRoZSAKKwkgKiBjdXJyZW50IGluZGV4IGlzIHJlc2V0IHRvIHRoZSBzdGFydCBvZiB0aGUgcmFuZ2UgYW5kIGEgdmFsdWUgb2YgCisJICogRE9ORV9DT0RFUE9JTlQgaXMgcmV0dXJuZWQuIAorCSAqIEByZXR1cm4gcHJldmlvdXMgY29kZXBvaW50IGluIHRleHQgb3IgRE9ORV9DT0RFUE9JTlQgaWYgdGhlIG5ldyBpbmRleCBpcyAKKwkgKiAgICAgICAgIG9mZiB0aGUgc3RhcnQgb2YgdGhlIHRleHQgaXRlcmF0aW9uIHJhbmdlLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgcHJldmlvdXNDb2RlUG9pbnQoKQorICAgIHsKKyAgICAgICAgaWYgKG1faW5kZXhfID4gbV9zdGFydF8pIHsKKyAgICAgICAgICAgIG1faW5kZXhfIC0tOworICAgICAgICAgICAgY2hhciBjaCA9IG1fcmVwbGFjZWFibGVfLmNoYXJBdChtX2luZGV4Xyk7CisgICAgICAgICAgICBpZiAoY2ggPj0gVVRGMTYuVFJBSUxfU1VSUk9HQVRFX01JTl9WQUxVRSAmJgorICAgICAgICAgICAgICAgIGNoIDw9IFVURjE2LlRSQUlMX1NVUlJPR0FURV9NQVhfVkFMVUUgJiYKKyAgICAgICAgICAgICAgICBtX2luZGV4XyA+IG1fc3RhcnRfKSB7CisgICAgICAgICAgICAgICAgbV9pbmRleF8gLS07CisgICAgICAgICAgICAgICAgY2hhciBsZWFkID0gbV9yZXBsYWNlYWJsZV8uY2hhckF0KG1faW5kZXhfKTsKKyAgICAgICAgICAgICAgICBpZiAobGVhZCA+PSBVVEYxNi5MRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUgJiYKKyAgICAgICAgICAgICAgICAgICAgbGVhZCA8PSBVVEYxNi5MRUFEX1NVUlJPR0FURV9NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRSYXdTdXBwbGVtZW50YXJ5KGxlYWQsY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBjaDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gRE9ORV9DT0RFUE9JTlQ7CisgICAgfQorCisJLyoqCisJICogPHA+U2V0cyB0aGUgaW5kZXggdG8gdGhlIHNwZWNpZmllZCBpbmRleCBpbiB0aGUgdGV4dCBhbmQgcmV0dXJucyB0aGF0IAorCSAqIHNpbmdsZSBVVEYxNiBjaGFyYWN0ZXIgYXQgaW5kZXguIAorCSAqIFRoaXMgYXNzdW1lcyB0aGUgdGV4dCBpcyBzdG9yZWQgYXMgMTYtYml0IGNvZGUgdW5pdHMuPC9wPgorCSAqIEBwYXJhbSBpbmRleCB0aGUgaW5kZXggd2l0aGluIHRoZSB0ZXh0LiAKKwkgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpcyB0aHJvd24gaWYgYW4gaW52YWxpZCBpbmRleCBpcyAKKwkgKiAgICAgICAgICAgIHN1cHBsaWVkLiBpLmUuIGluZGV4IGlzIG91dCBvZiBib3VuZHMuCisJICogQHJldHVybiB0aGUgY2hhcmFjdGVyIGF0IHRoZSBzcGVjaWZpZWQgaW5kZXggb3IgRE9ORSBpZiB0aGUgc3BlY2lmaWVkIAorCSAqICAgICAgICAgaW5kZXggaXMgZXF1YWwgdG8gdGhlIGxpbWl0IG9mIHRoZSB0ZXh0IGl0ZXJhdGlvbiByYW5nZS4KKwkgKi8KKwlwdWJsaWMgY2hhciBzZXRJbmRleChpbnQgaW5kZXgpCisJeworCQlpZiAoaW5kZXggPCBtX3N0YXJ0XyB8fCBpbmRleCA+IG1fbGltaXRfKSB7CisJCQl0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbmRleCBpbmRleCBvdXQgb2YgYm91bmRzIik7CisJCX0KKwkJbV9pbmRleF8gPSBpbmRleDsKKwkJcmV0dXJuIGN1cnJlbnQoKTsKKwl9CisJCisJLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCQorCS8qKgorCSAqIFJlcGxhY2FibGUgb2JqZWN0CisJICovCisJcHJpdmF0ZSBSZXBsYWNlYWJsZSBtX3JlcGxhY2VhYmxlXzsKKwkvKioKKwkgKiBDdXJyZW50IGluZGV4CisJICovCisJcHJpdmF0ZSBpbnQgbV9pbmRleF87CisJLyoqCisJICogU3RhcnQgb2Zmc2V0IG9mIGl0ZXJhdGVhYmxlIHJhbmdlLCBieSBkZWZhdWx0IHRoaXMgaXMgMAorCSAqLworCXByaXZhdGUgaW50IG1fc3RhcnRfOworCS8qKgorCSAqIExpbWl0IG9mZnNldCBvZiBpdGVyYXRlYWJsZSByYW5nZSwgYnkgZGVmYXVsdCB0aGlzIGlzIHRoZSBsZW5ndGggb2YgdGhlCisJICogc3RyaW5nCisJICovCisJcHJpdmF0ZSBpbnQgbV9saW1pdF87Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9VdGlsaXR5LmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VdGlsaXR5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmMyM2QxMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1V0aWxpdHkuamF2YQpAQCAtMCwwICsxLDE1NTkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL1V0aWxpdHkuamF2YSx2ICQKKyAqICREYXRlOiAyMDAyLzA3LzI2IDIxOjE3OjQyICQKKyAqICRSZXZpc2lvbjogMS4zMCAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3RlclByb3BlcnR5OworCitwdWJsaWMgZmluYWwgY2xhc3MgVXRpbGl0eSB7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEFQT1NUUk9QSEUgPSAnXCcnOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgQkFDS1NMQVNIICA9ICdcXCc7CisgICAgCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgdXRpbGl0eSB0byBjb21wYXJlIHR3byBPYmplY3RbXXMuCisgICAgICogT3VnaHQgdG8gYmUgaW4gU3lzdGVtCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBib29sZWFuIGFycmF5RXF1YWxzKE9iamVjdFtdIHNvdXJjZSwgT2JqZWN0IHRhcmdldCkgeworICAgICAgICBpZiAoc291cmNlID09IG51bGwpIHJldHVybiAodGFyZ2V0ID09IG51bGwpOworICAgICAgICBpZiAoISh0YXJnZXQgaW5zdGFuY2VvZiBPYmplY3RbXSkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgT2JqZWN0W10gdGFyZyA9IChPYmplY3RbXSkgdGFyZ2V0OworICAgICAgICByZXR1cm4gKHNvdXJjZS5sZW5ndGggPT0gdGFyZy5sZW5ndGgKKyAgICAgICAgICAgICAgICAmJiBhcnJheVJlZ2lvbk1hdGNoZXMoc291cmNlLCAwLCB0YXJnLCAwLCBzb3VyY2UubGVuZ3RoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgdXRpbGl0eSB0byBjb21wYXJlIHR3byBpbnRbXXMKKyAgICAgKiBPdWdodCB0byBiZSBpbiBTeXN0ZW0KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGJvb2xlYW4gYXJyYXlFcXVhbHMoaW50W10gc291cmNlLCBPYmplY3QgdGFyZ2V0KSB7CisgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuICh0YXJnZXQgPT0gbnVsbCk7CisgICAgICAgIGlmICghKHRhcmdldCBpbnN0YW5jZW9mIGludFtdKSkgcmV0dXJuIGZhbHNlOworICAgICAgICBpbnRbXSB0YXJnID0gKGludFtdKSB0YXJnZXQ7CisgICAgICAgIHJldHVybiAoc291cmNlLmxlbmd0aCA9PSB0YXJnLmxlbmd0aAorICAgICAgICAgICAgICAgICYmIGFycmF5UmVnaW9uTWF0Y2hlcyhzb3VyY2UsIDAsIHRhcmcsIDAsIHNvdXJjZS5sZW5ndGgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSB1dGlsaXR5IHRvIGNvbXBhcmUgdHdvIGRvdWJsZVtdcworICAgICAqIE91Z2h0IHRvIGJlIGluIFN5c3RlbQorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgYm9vbGVhbiBhcnJheUVxdWFscyhkb3VibGVbXSBzb3VyY2UsIE9iamVjdCB0YXJnZXQpIHsKKyAgICAgICAgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm4gKHRhcmdldCA9PSBudWxsKTsKKyAgICAgICAgaWYgKCEodGFyZ2V0IGluc3RhbmNlb2YgZG91YmxlW10pKSByZXR1cm4gZmFsc2U7CisgICAgICAgIGRvdWJsZVtdIHRhcmcgPSAoZG91YmxlW10pIHRhcmdldDsKKyAgICAgICAgcmV0dXJuIChzb3VyY2UubGVuZ3RoID09IHRhcmcubGVuZ3RoCisgICAgICAgICAgICAgICAgJiYgYXJyYXlSZWdpb25NYXRjaGVzKHNvdXJjZSwgMCwgdGFyZywgMCwgc291cmNlLmxlbmd0aCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIHV0aWxpdHkgdG8gY29tcGFyZSB0d28gT2JqZWN0W11zCisgICAgICogT3VnaHQgdG8gYmUgaW4gU3lzdGVtCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBib29sZWFuIGFycmF5RXF1YWxzKE9iamVjdCBzb3VyY2UsIE9iamVjdCB0YXJnZXQpIHsKKyAgICAgICAgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm4gKHRhcmdldCA9PSBudWxsKTsKKyAgICAgICAgLy8gZm9yIHNvbWUgcmVhc29uLCB0aGUgY29ycmVjdCBhcnJheUVxdWFscyBpcyBub3QgYmVpbmcgY2FsbGVkCisgICAgICAgIC8vIHNvIGRvIGl0IGJ5IGhhbmQgZm9yIG5vdy4KKyAgICAgICAgaWYgKHNvdXJjZSBpbnN0YW5jZW9mIE9iamVjdFtdKQorICAgICAgICAgICAgcmV0dXJuKGFycmF5RXF1YWxzKChPYmplY3RbXSkgc291cmNlLHRhcmdldCkpOworICAgICAgICBpZiAoc291cmNlIGluc3RhbmNlb2YgaW50W10pCisgICAgICAgICAgICByZXR1cm4oYXJyYXlFcXVhbHMoKGludFtdKSBzb3VyY2UsdGFyZ2V0KSk7CisgICAgICAgIGlmIChzb3VyY2UgaW5zdGFuY2VvZiBkb3VibGVbXSkKKyAgICAgICAgICAgIHJldHVybihhcnJheUVxdWFscygoaW50W10pIHNvdXJjZSx0YXJnZXQpKTsKKyAgICAgICAgcmV0dXJuIHNvdXJjZS5lcXVhbHModGFyZ2V0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSB1dGlsaXR5IHRvIGNvbXBhcmUgdHdvIE9iamVjdFtdcworICAgICAqIE91Z2h0IHRvIGJlIGluIFN5c3RlbS4KKyAgICAgKiBAcGFyYW0gbGVuIHRoZSBsZW5ndGggdG8gY29tcGFyZS4KKyAgICAgKiBUaGUgc3RhcnQgaW5kaWNlcyBhbmQgc3RhcnQrbGVuIG11c3QgYmUgdmFsaWQuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBib29sZWFuIGFycmF5UmVnaW9uTWF0Y2hlcyhPYmplY3RbXSBzb3VyY2UsIGludCBzb3VyY2VTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0W10gdGFyZ2V0LCBpbnQgdGFyZ2V0U3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW4pCisgICAgeworICAgICAgICBpbnQgc291cmNlRW5kID0gc291cmNlU3RhcnQgKyBsZW47CisgICAgICAgIGludCBkZWx0YSA9IHRhcmdldFN0YXJ0IC0gc291cmNlU3RhcnQ7CisgICAgICAgIGZvciAoaW50IGkgPSBzb3VyY2VTdGFydDsgaSA8IHNvdXJjZUVuZDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoIWFycmF5RXF1YWxzKHNvdXJjZVtpXSx0YXJnZXRbaSArIGRlbHRhXSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgdXRpbGl0eSB0byBjb21wYXJlIHR3byBPYmplY3RbXXMKKyAgICAgKiBPdWdodCB0byBiZSBpbiBTeXN0ZW0uCisgICAgICogQHBhcmFtIGxlbiB0aGUgbGVuZ3RoIHRvIGNvbXBhcmUuCisgICAgICogVGhlIHN0YXJ0IGluZGljZXMgYW5kIHN0YXJ0K2xlbiBtdXN0IGJlIHZhbGlkLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgYm9vbGVhbiBhcnJheVJlZ2lvbk1hdGNoZXMoY2hhcltdIHNvdXJjZSwgaW50IHNvdXJjZVN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gdGFyZ2V0LCBpbnQgdGFyZ2V0U3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW4pCisgICAgeworICAgICAgICBpbnQgc291cmNlRW5kID0gc291cmNlU3RhcnQgKyBsZW47CisgICAgICAgIGludCBkZWx0YSA9IHRhcmdldFN0YXJ0IC0gc291cmNlU3RhcnQ7CisgICAgICAgIGZvciAoaW50IGkgPSBzb3VyY2VTdGFydDsgaSA8IHNvdXJjZUVuZDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoc291cmNlW2ldIT10YXJnZXRbaSArIGRlbHRhXSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgdXRpbGl0eSB0byBjb21wYXJlIHR3byBpbnRbXXMuCisgICAgICogQHBhcmFtIGxlbiB0aGUgbGVuZ3RoIHRvIGNvbXBhcmUuCisgICAgICogVGhlIHN0YXJ0IGluZGljZXMgYW5kIHN0YXJ0K2xlbiBtdXN0IGJlIHZhbGlkLgorICAgICAqIE91Z2h0IHRvIGJlIGluIFN5c3RlbQorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgYm9vbGVhbiBhcnJheVJlZ2lvbk1hdGNoZXMoaW50W10gc291cmNlLCBpbnQgc291cmNlU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludFtdIHRhcmdldCwgaW50IHRhcmdldFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuKQorICAgIHsKKyAgICAgICAgaW50IHNvdXJjZUVuZCA9IHNvdXJjZVN0YXJ0ICsgbGVuOworICAgICAgICBpbnQgZGVsdGEgPSB0YXJnZXRTdGFydCAtIHNvdXJjZVN0YXJ0OworICAgICAgICBmb3IgKGludCBpID0gc291cmNlU3RhcnQ7IGkgPCBzb3VyY2VFbmQ7IGkrKykgeworICAgICAgICAgICAgaWYgKHNvdXJjZVtpXSAhPSB0YXJnZXRbaSArIGRlbHRhXSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSB1dGlsaXR5IHRvIGNvbXBhcmUgdHdvIGFycmF5cyBvZiBkb3VibGVzLgorICAgICAqIEBwYXJhbSBsZW4gdGhlIGxlbmd0aCB0byBjb21wYXJlLgorICAgICAqIFRoZSBzdGFydCBpbmRpY2VzIGFuZCBzdGFydCtsZW4gbXVzdCBiZSB2YWxpZC4KKyAgICAgKiBPdWdodCB0byBiZSBpbiBTeXN0ZW0KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGJvb2xlYW4gYXJyYXlSZWdpb25NYXRjaGVzKGRvdWJsZVtdIHNvdXJjZSwgaW50IHNvdXJjZVN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGVbXSB0YXJnZXQsIGludCB0YXJnZXRTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbikKKyAgICB7CisgICAgICAgIGludCBzb3VyY2VFbmQgPSBzb3VyY2VTdGFydCArIGxlbjsKKyAgICAgICAgaW50IGRlbHRhID0gdGFyZ2V0U3RhcnQgLSBzb3VyY2VTdGFydDsKKyAgICAgICAgZm9yIChpbnQgaSA9IHNvdXJjZVN0YXJ0OyBpIDwgc291cmNlRW5kOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChzb3VyY2VbaV0gIT0gdGFyZ2V0W2kgKyBkZWx0YV0pCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgdXRpbGl0eS4gRG9lcyBudWxsIGNoZWNrcyBvbiBvYmplY3RzLCB0aGVuIGNhbGxzIGVxdWFscy4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGJvb2xlYW4gb2JqZWN0RXF1YWxzKE9iamVjdCBzb3VyY2UsIE9iamVjdCB0YXJnZXQpIHsKKyAgICBpZiAoc291cmNlID09IG51bGwpCisgICAgICAgICAgICByZXR1cm4gKHRhcmdldCA9PSBudWxsKTsKKyAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gc291cmNlLmVxdWFscyh0YXJnZXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoZSBFU0NBUEUgY2hhcmFjdGVyIGlzIHVzZWQgZHVyaW5nIHJ1bi1sZW5ndGggZW5jb2RpbmcuICBJdCBzaWduYWxzCisgICAgICogYSBydW4gb2YgaWRlbnRpY2FsIGNoYXJzLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgRVNDQVBFID0gJ1x1QTVBNSc7CisKKyAgICAvKioKKyAgICAgKiBUaGUgRVNDQVBFX0JZVEUgY2hhcmFjdGVyIGlzIHVzZWQgZHVyaW5nIHJ1bi1sZW5ndGggZW5jb2RpbmcuICBJdCBzaWduYWxzCisgICAgICogYSBydW4gb2YgaWRlbnRpY2FsIGJ5dGVzLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBieXRlIEVTQ0FQRV9CWVRFID0gKGJ5dGUpMHhBNTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIHN0cmluZyByZXByZXNlbnRpbmcgYW4gaW50IGFycmF5LiAgVXNlIHJ1bi1sZW5ndGggZW5jb2RpbmcuCisgICAgICogQSBjaGFyYWN0ZXIgcmVwcmVzZW50cyBpdHNlbGYsIHVubGVzcyBpdCBpcyB0aGUgRVNDQVBFIGNoYXJhY3Rlci4gIFRoZW4KKyAgICAgKiB0aGUgZm9sbG93aW5nIG5vdGF0aW9ucyBhcmUgcG9zc2libGU6CisgICAgICogICBFU0NBUEUgRVNDQVBFICAgRVNDQVBFIGxpdGVyYWwKKyAgICAgKiAgIEVTQ0FQRSBuIGMgICAgICBuIGluc3RhbmNlcyBvZiBjaGFyYWN0ZXIgYworICAgICAqIFNpbmNlIGFuIGVuY29kZWQgcnVuIG9jY3VwaWVzIDMgY2hhcmFjdGVycywgd2Ugb25seSBlbmNvZGUgcnVucyBvZiA0IG9yCisgICAgICogbW9yZSBjaGFyYWN0ZXJzLiAgVGh1cyB3ZSBoYXZlIG4gPiAwIGFuZCBuICE9IEVTQ0FQRSBhbmQgbiA8PSAweEZGRkYuCisgICAgICogSWYgd2UgZW5jb3VudGVyIGEgcnVuIHdoZXJlIG4gPT0gRVNDQVBFLCB3ZSByZXByZXNlbnQgdGhpcyBhczoKKyAgICAgKiAgIGMgRVNDQVBFIG4tMSBjCisgICAgICogVGhlIEVTQ0FQRSB2YWx1ZSBpcyBjaG9zZW4gc28gYXMgbm90IHRvIGNvbGxpZGUgd2l0aCBjb21tb25seQorICAgICAqIHNlZW4gdmFsdWVzLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgU3RyaW5nIGFycmF5VG9STEVTdHJpbmcoaW50W10gYSkgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCisgICAgICAgIGFwcGVuZEludChidWZmZXIsIGEubGVuZ3RoKTsKKyAgICAgICAgaW50IHJ1blZhbHVlID0gYVswXTsKKyAgICAgICAgaW50IHJ1bkxlbmd0aCA9IDE7CisgICAgICAgIGZvciAoaW50IGk9MTsgaTxhLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpbnQgcyA9IGFbaV07CisgICAgICAgICAgICBpZiAocyA9PSBydW5WYWx1ZSAmJiBydW5MZW5ndGggPCAweEZGRkYpIHsKKyAgICAgICAgICAgICAgICArK3J1bkxlbmd0aDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZW5jb2RlUnVuKGJ1ZmZlciwgcnVuVmFsdWUsIHJ1bkxlbmd0aCk7CisgICAgICAgICAgICAgICAgcnVuVmFsdWUgPSBzOworICAgICAgICAgICAgICAgIHJ1bkxlbmd0aCA9IDE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZW5jb2RlUnVuKGJ1ZmZlciwgcnVuVmFsdWUsIHJ1bkxlbmd0aCk7CisgICAgICAgIHJldHVybiBidWZmZXIudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBzdHJpbmcgcmVwcmVzZW50aW5nIGEgc2hvcnQgYXJyYXkuICBVc2UgcnVuLWxlbmd0aCBlbmNvZGluZy4KKyAgICAgKiBBIGNoYXJhY3RlciByZXByZXNlbnRzIGl0c2VsZiwgdW5sZXNzIGl0IGlzIHRoZSBFU0NBUEUgY2hhcmFjdGVyLiAgVGhlbgorICAgICAqIHRoZSBmb2xsb3dpbmcgbm90YXRpb25zIGFyZSBwb3NzaWJsZToKKyAgICAgKiAgIEVTQ0FQRSBFU0NBUEUgICBFU0NBUEUgbGl0ZXJhbAorICAgICAqICAgRVNDQVBFIG4gYyAgICAgIG4gaW5zdGFuY2VzIG9mIGNoYXJhY3RlciBjCisgICAgICogU2luY2UgYW4gZW5jb2RlZCBydW4gb2NjdXBpZXMgMyBjaGFyYWN0ZXJzLCB3ZSBvbmx5IGVuY29kZSBydW5zIG9mIDQgb3IKKyAgICAgKiBtb3JlIGNoYXJhY3RlcnMuICBUaHVzIHdlIGhhdmUgbiA+IDAgYW5kIG4gIT0gRVNDQVBFIGFuZCBuIDw9IDB4RkZGRi4KKyAgICAgKiBJZiB3ZSBlbmNvdW50ZXIgYSBydW4gd2hlcmUgbiA9PSBFU0NBUEUsIHdlIHJlcHJlc2VudCB0aGlzIGFzOgorICAgICAqICAgYyBFU0NBUEUgbi0xIGMKKyAgICAgKiBUaGUgRVNDQVBFIHZhbHVlIGlzIGNob3NlbiBzbyBhcyBub3QgdG8gY29sbGlkZSB3aXRoIGNvbW1vbmx5CisgICAgICogc2VlbiB2YWx1ZXMuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBTdHJpbmcgYXJyYXlUb1JMRVN0cmluZyhzaG9ydFtdIGEpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgLy8gZm9yIChpbnQgaT0wOyBpPGEubGVuZ3RoOyArK2kpIGJ1ZmZlci5hcHBlbmQoKGNoYXIpIGFbaV0pOworICAgICAgICBidWZmZXIuYXBwZW5kKChjaGFyKSAoYS5sZW5ndGggPj4gMTYpKTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZCgoY2hhcikgYS5sZW5ndGgpOworICAgICAgICBzaG9ydCBydW5WYWx1ZSA9IGFbMF07CisgICAgICAgIGludCBydW5MZW5ndGggPSAxOworICAgICAgICBmb3IgKGludCBpPTE7IGk8YS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgc2hvcnQgcyA9IGFbaV07CisgICAgICAgICAgICBpZiAocyA9PSBydW5WYWx1ZSAmJiBydW5MZW5ndGggPCAweEZGRkYpICsrcnVuTGVuZ3RoOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBlbmNvZGVSdW4oYnVmZmVyLCBydW5WYWx1ZSwgcnVuTGVuZ3RoKTsKKyAgICAgICAgICAgIHJ1blZhbHVlID0gczsKKyAgICAgICAgICAgIHJ1bkxlbmd0aCA9IDE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZW5jb2RlUnVuKGJ1ZmZlciwgcnVuVmFsdWUsIHJ1bkxlbmd0aCk7CisgICAgICAgIHJldHVybiBidWZmZXIudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBzdHJpbmcgcmVwcmVzZW50aW5nIGEgY2hhciBhcnJheS4gIFVzZSBydW4tbGVuZ3RoIGVuY29kaW5nLgorICAgICAqIEEgY2hhcmFjdGVyIHJlcHJlc2VudHMgaXRzZWxmLCB1bmxlc3MgaXQgaXMgdGhlIEVTQ0FQRSBjaGFyYWN0ZXIuICBUaGVuCisgICAgICogdGhlIGZvbGxvd2luZyBub3RhdGlvbnMgYXJlIHBvc3NpYmxlOgorICAgICAqICAgRVNDQVBFIEVTQ0FQRSAgIEVTQ0FQRSBsaXRlcmFsCisgICAgICogICBFU0NBUEUgbiBjICAgICAgbiBpbnN0YW5jZXMgb2YgY2hhcmFjdGVyIGMKKyAgICAgKiBTaW5jZSBhbiBlbmNvZGVkIHJ1biBvY2N1cGllcyAzIGNoYXJhY3RlcnMsIHdlIG9ubHkgZW5jb2RlIHJ1bnMgb2YgNCBvcgorICAgICAqIG1vcmUgY2hhcmFjdGVycy4gIFRodXMgd2UgaGF2ZSBuID4gMCBhbmQgbiAhPSBFU0NBUEUgYW5kIG4gPD0gMHhGRkZGLgorICAgICAqIElmIHdlIGVuY291bnRlciBhIHJ1biB3aGVyZSBuID09IEVTQ0FQRSwgd2UgcmVwcmVzZW50IHRoaXMgYXM6CisgICAgICogICBjIEVTQ0FQRSBuLTEgYworICAgICAqIFRoZSBFU0NBUEUgdmFsdWUgaXMgY2hvc2VuIHNvIGFzIG5vdCB0byBjb2xsaWRlIHdpdGggY29tbW9ubHkKKyAgICAgKiBzZWVuIHZhbHVlcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIFN0cmluZyBhcnJheVRvUkxFU3RyaW5nKGNoYXJbXSBhKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoKGNoYXIpIChhLmxlbmd0aCA+PiAxNikpOworICAgICAgICBidWZmZXIuYXBwZW5kKChjaGFyKSBhLmxlbmd0aCk7CisgICAgICAgIGNoYXIgcnVuVmFsdWUgPSBhWzBdOworICAgICAgICBpbnQgcnVuTGVuZ3RoID0gMTsKKyAgICAgICAgZm9yIChpbnQgaT0xOyBpPGEubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgcyA9IGFbaV07CisgICAgICAgICAgICBpZiAocyA9PSBydW5WYWx1ZSAmJiBydW5MZW5ndGggPCAweEZGRkYpICsrcnVuTGVuZ3RoOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBlbmNvZGVSdW4oYnVmZmVyLCAoc2hvcnQpcnVuVmFsdWUsIHJ1bkxlbmd0aCk7CisgICAgICAgICAgICBydW5WYWx1ZSA9IHM7CisgICAgICAgICAgICBydW5MZW5ndGggPSAxOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVuY29kZVJ1bihidWZmZXIsIChzaG9ydClydW5WYWx1ZSwgcnVuTGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIGJ1ZmZlci50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIHN0cmluZyByZXByZXNlbnRpbmcgYSBieXRlIGFycmF5LiAgVXNlIHJ1bi1sZW5ndGggZW5jb2RpbmcuCisgICAgICogVHdvIGJ5dGVzIGFyZSBwYWNrZWQgaW50byBhIHNpbmdsZSBjaGFyLCB3aXRoIGEgc2luZ2xlIGV4dHJhIHplcm8gYnl0ZSBhdAorICAgICAqIHRoZSBlbmQgaWYgbmVlZGVkLiAgQSBieXRlIHJlcHJlc2VudHMgaXRzZWxmLCB1bmxlc3MgaXQgaXMgdGhlCisgICAgICogRVNDQVBFX0JZVEUuICBUaGVuIHRoZSBmb2xsb3dpbmcgbm90YXRpb25zIGFyZSBwb3NzaWJsZToKKyAgICAgKiAgIEVTQ0FQRV9CWVRFIEVTQ0FQRV9CWVRFICAgRVNDQVBFX0JZVEUgbGl0ZXJhbAorICAgICAqICAgRVNDQVBFX0JZVEUgbiBiICAgICAgICAgICBuIGluc3RhbmNlcyBvZiBieXRlIGIKKyAgICAgKiBTaW5jZSBhbiBlbmNvZGVkIHJ1biBvY2N1cGllcyAzIGJ5dGVzLCB3ZSBvbmx5IGVuY29kZSBydW5zIG9mIDQgb3IKKyAgICAgKiBtb3JlIGJ5dGVzLiAgVGh1cyB3ZSBoYXZlIG4gPiAwIGFuZCBuICE9IEVTQ0FQRV9CWVRFIGFuZCBuIDw9IDB4RkYuCisgICAgICogSWYgd2UgZW5jb3VudGVyIGEgcnVuIHdoZXJlIG4gPT0gRVNDQVBFX0JZVEUsIHdlIHJlcHJlc2VudCB0aGlzIGFzOgorICAgICAqICAgYiBFU0NBUEVfQllURSBuLTEgYgorICAgICAqIFRoZSBFU0NBUEVfQllURSB2YWx1ZSBpcyBjaG9zZW4gc28gYXMgbm90IHRvIGNvbGxpZGUgd2l0aCBjb21tb25seQorICAgICAqIHNlZW4gdmFsdWVzLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgU3RyaW5nIGFycmF5VG9STEVTdHJpbmcoYnl0ZVtdIGEpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZCgoY2hhcikgKGEubGVuZ3RoID4+IDE2KSk7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoKGNoYXIpIGEubGVuZ3RoKTsKKyAgICAgICAgYnl0ZSBydW5WYWx1ZSA9IGFbMF07CisgICAgICAgIGludCBydW5MZW5ndGggPSAxOworICAgICAgICBieXRlW10gc3RhdGUgPSBuZXcgYnl0ZVsyXTsKKyAgICAgICAgZm9yIChpbnQgaT0xOyBpPGEubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGJ5dGUgYiA9IGFbaV07CisgICAgICAgICAgICBpZiAoYiA9PSBydW5WYWx1ZSAmJiBydW5MZW5ndGggPCAweEZGKSArK3J1bkxlbmd0aDsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGVuY29kZVJ1bihidWZmZXIsIHJ1blZhbHVlLCBydW5MZW5ndGgsIHN0YXRlKTsKKyAgICAgICAgICAgICAgICBydW5WYWx1ZSA9IGI7CisgICAgICAgICAgICAgICAgcnVuTGVuZ3RoID0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbmNvZGVSdW4oYnVmZmVyLCBydW5WYWx1ZSwgcnVuTGVuZ3RoLCBzdGF0ZSk7CisKKyAgICAgICAgLy8gV2UgbXVzdCBzYXZlIHRoZSBmaW5hbCBieXRlLCBpZiB0aGVyZSBpcyBvbmUsIGJ5IHBhZGRpbmcKKyAgICAgICAgLy8gYW4gZXh0cmEgemVyby4KKyAgICAgICAgaWYgKHN0YXRlWzBdICE9IDApIGFwcGVuZEVuY29kZWRCeXRlKGJ1ZmZlciwgKGJ5dGUpMCwgc3RhdGUpOworCisgICAgICAgIHJldHVybiBidWZmZXIudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBFbmNvZGUgYSBydW4sIHBvc3NpYmx5IGEgZGVnZW5lcmF0ZSBydW4gKG9mIDwgNCB2YWx1ZXMpLgorICAgICAqIEBwYXJhbSBsZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgcnVuOyBtdXN0IGJlID4gMCAmJiA8PSAweEZGRkYuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgdm9pZCBlbmNvZGVSdW4oU3RyaW5nQnVmZmVyIGJ1ZmZlciwgaW50IHZhbHVlLCBpbnQgbGVuZ3RoKSB7CisgICAgICAgIGlmIChsZW5ndGggPCA0KSB7CisgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8bGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gRVNDQVBFKSB7CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZEludChidWZmZXIsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYXBwZW5kSW50KGJ1ZmZlciwgdmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAoaW50KSBFU0NBUEUpIHsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gKGludCkgRVNDQVBFKSB7CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZEludChidWZmZXIsIEVTQ0FQRSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGFwcGVuZEludChidWZmZXIsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAtLWxlbmd0aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGFwcGVuZEludChidWZmZXIsIEVTQ0FQRSk7CisgICAgICAgICAgICBhcHBlbmRJbnQoYnVmZmVyLCBsZW5ndGgpOworICAgICAgICAgICAgYXBwZW5kSW50KGJ1ZmZlciwgdmFsdWUpOyAvLyBEb24ndCBuZWVkIHRvIGVzY2FwZSB0aGlzIHZhbHVlCisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgdm9pZCBhcHBlbmRJbnQoU3RyaW5nQnVmZmVyIGJ1ZmZlciwgaW50IHZhbHVlKSB7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoKGNoYXIpKHZhbHVlID4+PiAxNikpOworICAgICAgICBidWZmZXIuYXBwZW5kKChjaGFyKSh2YWx1ZSAmIDB4RkZGRikpOworICAgIH0KKworCisgICAgLyoqCisgICAgICogRW5jb2RlIGEgcnVuLCBwb3NzaWJseSBhIGRlZ2VuZXJhdGUgcnVuIChvZiA8IDQgdmFsdWVzKS4KKyAgICAgKiBAcGFyYW0gbGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIHJ1bjsgbXVzdCBiZSA+IDAgJiYgPD0gMHhGRkZGLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHZvaWQgZW5jb2RlUnVuKFN0cmluZ0J1ZmZlciBidWZmZXIsIHNob3J0IHZhbHVlLCBpbnQgbGVuZ3RoKSB7CisgICAgICAgIGlmIChsZW5ndGggPCA0KSB7CisgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8bGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gKGludCkgRVNDQVBFKSBidWZmZXIuYXBwZW5kKEVTQ0FQRSk7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgoY2hhcikgdmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKGxlbmd0aCA9PSAoaW50KSBFU0NBUEUpIHsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gKGludCkgRVNDQVBFKSBidWZmZXIuYXBwZW5kKEVTQ0FQRSk7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgoY2hhcikgdmFsdWUpOworICAgICAgICAgICAgICAgIC0tbGVuZ3RoOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChFU0NBUEUpOworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgoY2hhcikgbGVuZ3RoKTsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoKGNoYXIpIHZhbHVlKTsgLy8gRG9uJ3QgbmVlZCB0byBlc2NhcGUgdGhpcyB2YWx1ZQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRW5jb2RlIGEgcnVuLCBwb3NzaWJseSBhIGRlZ2VuZXJhdGUgcnVuIChvZiA8IDQgdmFsdWVzKS4KKyAgICAgKiBAcGFyYW0gbGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIHJ1bjsgbXVzdCBiZSA+IDAgJiYgPD0gMHhGRi4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCB2b2lkIGVuY29kZVJ1bihTdHJpbmdCdWZmZXIgYnVmZmVyLCBieXRlIHZhbHVlLCBpbnQgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICBieXRlW10gc3RhdGUpIHsKKyAgICAgICAgaWYgKGxlbmd0aCA8IDQpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajxsZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBFU0NBUEVfQllURSkgYXBwZW5kRW5jb2RlZEJ5dGUoYnVmZmVyLCBFU0NBUEVfQllURSwgc3RhdGUpOworICAgICAgICAgICAgICAgIGFwcGVuZEVuY29kZWRCeXRlKGJ1ZmZlciwgdmFsdWUsIHN0YXRlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmIChsZW5ndGggPT0gRVNDQVBFX0JZVEUpIHsKKyAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBFU0NBUEVfQllURSkgYXBwZW5kRW5jb2RlZEJ5dGUoYnVmZmVyLCBFU0NBUEVfQllURSwgc3RhdGUpOworICAgICAgICAgICAgYXBwZW5kRW5jb2RlZEJ5dGUoYnVmZmVyLCB2YWx1ZSwgc3RhdGUpOworICAgICAgICAgICAgLS1sZW5ndGg7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhcHBlbmRFbmNvZGVkQnl0ZShidWZmZXIsIEVTQ0FQRV9CWVRFLCBzdGF0ZSk7CisgICAgICAgICAgICBhcHBlbmRFbmNvZGVkQnl0ZShidWZmZXIsIChieXRlKWxlbmd0aCwgc3RhdGUpOworICAgICAgICAgICAgYXBwZW5kRW5jb2RlZEJ5dGUoYnVmZmVyLCB2YWx1ZSwgc3RhdGUpOyAvLyBEb24ndCBuZWVkIHRvIGVzY2FwZSB0aGlzIHZhbHVlCisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBcHBlbmQgYSBieXRlIHRvIHRoZSBnaXZlbiBTdHJpbmdCdWZmZXIsIHBhY2tpbmcgdHdvIGJ5dGVzIGludG8gZWFjaAorICAgICAqIGNoYXJhY3Rlci4gIFRoZSBzdGF0ZSBwYXJhbWV0ZXIgbWFpbnRhaW5zIGludGVybWVkaWFyeSBkYXRhIGJldHdlZW4KKyAgICAgKiBjYWxscy4KKyAgICAgKiBAcGFyYW0gc3RhdGUgQSB0d28tZWxlbWVudCBhcnJheSwgd2l0aCBzdGF0ZVswXSA9PSAwIGlmIHRoaXMgaXMgdGhlCisgICAgICogZmlyc3QgYnl0ZSBvZiBhIHBhaXIsIG9yIHN0YXRlWzBdICE9IDAgaWYgdGhpcyBpcyB0aGUgc2Vjb25kIGJ5dGUKKyAgICAgKiBvZiBhIHBhaXIsIGluIHdoaWNoIGNhc2Ugc3RhdGVbMV0gaXMgdGhlIGZpcnN0IGJ5dGUuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgdm9pZCBhcHBlbmRFbmNvZGVkQnl0ZShTdHJpbmdCdWZmZXIgYnVmZmVyLCBieXRlIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZVtdIHN0YXRlKSB7CisgICAgICAgIGlmIChzdGF0ZVswXSAhPSAwKSB7CisgICAgICAgICAgICBjaGFyIGMgPSAoY2hhcikgKChzdGF0ZVsxXSA8PCA4KSB8ICgoKGludCkgdmFsdWUpICYgMHhGRikpOworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChjKTsKKyAgICAgICAgICAgIHN0YXRlWzBdID0gMDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHN0YXRlWzBdID0gMTsKKyAgICAgICAgICAgIHN0YXRlWzFdID0gdmFsdWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYW4gYXJyYXkgb2YgaW50cyBmcm9tIGEgcnVuLWxlbmd0aCBlbmNvZGVkIHN0cmluZy4KKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIGludFtdIFJMRVN0cmluZ1RvSW50QXJyYXkoU3RyaW5nIHMpIHsKKyAgICAgICAgaW50IGxlbmd0aCA9IGdldEludChzLCAwKTsKKyAgICAgICAgaW50W10gYXJyYXkgPSBuZXcgaW50W2xlbmd0aF07CisgICAgICAgIGludCBhaSA9IDAsIGkgPSAxOworCisgICAgICAgIGludCBtYXhJID0gcy5sZW5ndGgoKSAvIDI7CisgICAgICAgIHdoaWxlIChhaSA8IGxlbmd0aCAmJiBpIDwgbWF4SSkgeworICAgICAgICAgICAgaW50IGMgPSBnZXRJbnQocywgaSsrKTsKKworICAgICAgICAgICAgaWYgKGMgPT0gRVNDQVBFKSB7CisgICAgICAgICAgICAgICAgYyA9IGdldEludChzLCBpKyspOworICAgICAgICAgICAgICAgIGlmIChjID09IEVTQ0FQRSkgeworICAgICAgICAgICAgICAgICAgICBhcnJheVthaSsrXSA9IGM7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHJ1bkxlbmd0aCA9IGM7CisgICAgICAgICAgICAgICAgICAgIGludCBydW5WYWx1ZSA9IGdldEludChzLCBpKyspOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8cnVuTGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5W2FpKytdID0gcnVuVmFsdWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBhcnJheVthaSsrXSA9IGM7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoYWkgIT0gbGVuZ3RoIHx8IGkgIT0gbWF4SSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoIkJhZCBydW4tbGVuZ3RoIGVuY29kZWQgaW50IGFycmF5Iik7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gYXJyYXk7CisgICAgfQorICAgIHN0YXRpYyBmaW5hbCBpbnQgZ2V0SW50KFN0cmluZyBzLCBpbnQgaSkgeworICAgICAgICByZXR1cm4gKCgoaW50KSBzLmNoYXJBdCgyKmkpKSA8PCAxNikgfCAoaW50KSBzLmNoYXJBdCgyKmkrMSk7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYW4gYXJyYXkgb2Ygc2hvcnRzIGZyb20gYSBydW4tbGVuZ3RoIGVuY29kZWQgc3RyaW5nLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgc2hvcnRbXSBSTEVTdHJpbmdUb1Nob3J0QXJyYXkoU3RyaW5nIHMpIHsKKyAgICAgICAgaW50IGxlbmd0aCA9ICgoKGludCkgcy5jaGFyQXQoMCkpIDw8IDE2KSB8ICgoaW50KSBzLmNoYXJBdCgxKSk7CisgICAgICAgIHNob3J0W10gYXJyYXkgPSBuZXcgc2hvcnRbbGVuZ3RoXTsKKyAgICAgICAgaW50IGFpID0gMDsKKyAgICAgICAgZm9yIChpbnQgaT0yOyBpPHMubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgY2hhciBjID0gcy5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoYyA9PSBFU0NBUEUpIHsKKyAgICAgICAgICAgICAgICBjID0gcy5jaGFyQXQoKytpKTsKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSBFU0NBUEUpIHsKKyAgICAgICAgICAgICAgICAgICAgYXJyYXlbYWkrK10gPSAoc2hvcnQpIGM7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHJ1bkxlbmd0aCA9IChpbnQpIGM7CisgICAgICAgICAgICAgICAgICAgIHNob3J0IHJ1blZhbHVlID0gKHNob3J0KSBzLmNoYXJBdCgrK2kpOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8cnVuTGVuZ3RoOyArK2opIGFycmF5W2FpKytdID0gcnVuVmFsdWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgYXJyYXlbYWkrK10gPSAoc2hvcnQpIGM7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoYWkgIT0gbGVuZ3RoKQorICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoIkJhZCBydW4tbGVuZ3RoIGVuY29kZWQgc2hvcnQgYXJyYXkiKTsKKworICAgICAgICByZXR1cm4gYXJyYXk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGFuIGFycmF5IG9mIHNob3J0cyBmcm9tIGEgcnVuLWxlbmd0aCBlbmNvZGVkIHN0cmluZy4KKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIGNoYXJbXSBSTEVTdHJpbmdUb0NoYXJBcnJheShTdHJpbmcgcykgeworICAgICAgICBpbnQgbGVuZ3RoID0gKCgoaW50KSBzLmNoYXJBdCgwKSkgPDwgMTYpIHwgKChpbnQpIHMuY2hhckF0KDEpKTsKKyAgICAgICAgY2hhcltdIGFycmF5ID0gbmV3IGNoYXJbbGVuZ3RoXTsKKyAgICAgICAgaW50IGFpID0gMDsKKyAgICAgICAgZm9yIChpbnQgaT0yOyBpPHMubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgY2hhciBjID0gcy5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoYyA9PSBFU0NBUEUpIHsKKyAgICAgICAgICAgICAgICBjID0gcy5jaGFyQXQoKytpKTsKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSBFU0NBUEUpIHsKKyAgICAgICAgICAgICAgICAgICAgYXJyYXlbYWkrK10gPSBjOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGludCBydW5MZW5ndGggPSAoaW50KSBjOworICAgICAgICAgICAgICAgICAgICBjaGFyIHJ1blZhbHVlID0gcy5jaGFyQXQoKytpKTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaj0wOyBqPHJ1bkxlbmd0aDsgKytqKSBhcnJheVthaSsrXSA9IHJ1blZhbHVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGFycmF5W2FpKytdID0gYzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChhaSAhPSBsZW5ndGgpCisgICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcigiQmFkIHJ1bi1sZW5ndGggZW5jb2RlZCBzaG9ydCBhcnJheSIpOworCisgICAgICAgIHJldHVybiBhcnJheTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYW4gYXJyYXkgb2YgYnl0ZXMgZnJvbSBhIHJ1bi1sZW5ndGggZW5jb2RlZCBzdHJpbmcuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBieXRlW10gUkxFU3RyaW5nVG9CeXRlQXJyYXkoU3RyaW5nIHMpIHsKKyAgICAgICAgaW50IGxlbmd0aCA9ICgoKGludCkgcy5jaGFyQXQoMCkpIDw8IDE2KSB8ICgoaW50KSBzLmNoYXJBdCgxKSk7CisgICAgICAgIGJ5dGVbXSBhcnJheSA9IG5ldyBieXRlW2xlbmd0aF07CisgICAgICAgIGJvb2xlYW4gbmV4dENoYXIgPSB0cnVlOworICAgICAgICBjaGFyIGMgPSAwOworICAgICAgICBpbnQgbm9kZSA9IDA7CisgICAgICAgIGludCBydW5MZW5ndGggPSAwOworICAgICAgICBpbnQgaSA9IDI7CisgICAgICAgIGZvciAoaW50IGFpPTA7IGFpPGxlbmd0aDsgKSB7CisgICAgICAgICAgICAvLyBUaGlzIHBhcnQgb2YgdGhlIGxvb3AgcGxhY2VzIHRoZSBuZXh0IGJ5dGUgaW50byB0aGUgbG9jYWwKKyAgICAgICAgICAgIC8vIHZhcmlhYmxlICdiJyBlYWNoIHRpbWUgdGhyb3VnaCB0aGUgbG9vcC4gIEl0IGtlZXBzIHRoZQorICAgICAgICAgICAgLy8gY3VycmVudCBjaGFyYWN0ZXIgaW4gJ2MnIGFuZCB1c2VzIHRoZSBib29sZWFuICduZXh0Q2hhcicKKyAgICAgICAgICAgIC8vIHRvIHNlZSBpZiB3ZSd2ZSB0YWtlbiBib3RoIGJ5dGVzIG91dCBvZiAnYycgeWV0LgorICAgICAgICAgICAgYnl0ZSBiOworICAgICAgICAgICAgaWYgKG5leHRDaGFyKSB7CisgICAgICAgICAgICAgICAgYyA9IHMuY2hhckF0KGkrKyk7CisgICAgICAgICAgICAgICAgYiA9IChieXRlKSAoYyA+PiA4KTsKKyAgICAgICAgICAgICAgICBuZXh0Q2hhciA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgYiA9IChieXRlKSAoYyAmIDB4RkYpOworICAgICAgICAgICAgICAgIG5leHRDaGFyID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gVGhpcyBwYXJ0IG9mIHRoZSBsb29wIGlzIGEgdGlueSBzdGF0ZSBtYWNoaW5lIHdoaWNoIGhhbmRsZXMKKyAgICAgICAgICAgIC8vIHRoZSBwYXJzaW5nIG9mIHRoZSBydW4tbGVuZ3RoIGVuY29kaW5nLiAgVGhpcyB3b3VsZCBiZSBzaW1wbGVyCisgICAgICAgICAgICAvLyBpZiB3ZSBjb3VsZCBsb29rIGFoZWFkLCBidXQgd2UgY2FuJ3QsIHNvIHdlIHVzZSAnbm9kZScgdG8KKyAgICAgICAgICAgIC8vIG1vdmUgYmV0d2VlbiB0aHJlZSBub2RlcyBpbiB0aGUgc3RhdGUgbWFjaGluZS4KKyAgICAgICAgICAgIHN3aXRjaCAobm9kZSkgeworICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAgIC8vIE5vcm1hbCBpZGxlIG5vZGUKKyAgICAgICAgICAgICAgICBpZiAoYiA9PSBFU0NBUEVfQllURSkgeworICAgICAgICAgICAgICAgICAgICBub2RlID0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGFycmF5W2FpKytdID0gYjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgLy8gV2UgaGF2ZSBzZWVuIG9uZSBFU0NBUEVfQllURTsgd2UgZXhwZWN0IGVpdGhlciBhIHNlY29uZAorICAgICAgICAgICAgICAgIC8vIG9uZSwgb3IgYSBydW4gbGVuZ3RoIGFuZCB2YWx1ZS4KKyAgICAgICAgICAgICAgICBpZiAoYiA9PSBFU0NBUEVfQllURSkgeworICAgICAgICAgICAgICAgICAgICBhcnJheVthaSsrXSA9IEVTQ0FQRV9CWVRFOworICAgICAgICAgICAgICAgICAgICBub2RlID0gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJ1bkxlbmd0aCA9IGI7CisgICAgICAgICAgICAgICAgICAgIC8vIEludGVycHJldCBzaWduZWQgYnl0ZSBhcyB1bnNpZ25lZAorICAgICAgICAgICAgICAgICAgICBpZiAocnVuTGVuZ3RoIDwgMCkgcnVuTGVuZ3RoICs9IDB4MTAwOworICAgICAgICAgICAgICAgICAgICBub2RlID0gMjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgLy8gV2UgaGF2ZSBzZWVuIGFuIEVTQ0FQRV9CWVRFIGFuZCBsZW5ndGggYnl0ZS4gIFdlIGludGVycHJldAorICAgICAgICAgICAgICAgIC8vIHRoZSBuZXh0IGJ5dGUgYXMgdGhlIHZhbHVlIHRvIGJlIHJlcGVhdGVkLgorICAgICAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajxydW5MZW5ndGg7ICsraikgYXJyYXlbYWkrK10gPSBiOworICAgICAgICAgICAgICAgIG5vZGUgPSAwOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKG5vZGUgIT0gMCkKKyAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKCJCYWQgcnVuLWxlbmd0aCBlbmNvZGVkIGJ5dGUgYXJyYXkiKTsKKworICAgICAgICBpZiAoaSAhPSBzLmxlbmd0aCgpKQorICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoIkV4Y2VzcyBkYXRhIGluIFJMRSBieXRlIGFycmF5IHN0cmluZyIpOworCisgICAgICAgIHJldHVybiBhcnJheTsKKyAgICB9CisKKyAgICBzdGF0aWMgcHVibGljIFN0cmluZyBMSU5FX1NFUEFSQVRPUiA9IFN5c3RlbS5nZXRQcm9wZXJ0eSgibGluZS5zZXBhcmF0b3IiKTsKKworICAgIC8qKgorICAgICAqIEZvcm1hdCBhIFN0cmluZyBmb3IgcmVwcmVzZW50YXRpb24gaW4gYSBzb3VyY2UgZmlsZS4gIFRoaXMgaW5jbHVkZXMKKyAgICAgKiBicmVha2luZyBpdCBpbnRvIGxpbmVzIGFuZCBlc2NhcGluZyBjaGFyYWN0ZXJzIHVzaW5nIG9jdGFsIG5vdGF0aW9uCisgICAgICogd2hlbiBuZWNlc3NhcnkgKGNvbnRyb2wgY2hhcmFjdGVycyBhbmQgZG91YmxlIHF1b3RlcykuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBTdHJpbmcgZm9ybWF0Rm9yU291cmNlKFN0cmluZyBzKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxzLmxlbmd0aCgpOykgeworICAgICAgICAgICAgaWYgKGkgPiAwKSBidWZmZXIuYXBwZW5kKCcrJykuYXBwZW5kKExJTkVfU0VQQVJBVE9SKTsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoIiAgICAgICAgXCIiKTsKKyAgICAgICAgICAgIGludCBjb3VudCA9IDExOworICAgICAgICAgICAgd2hpbGUgKGk8cy5sZW5ndGgoKSAmJiBjb3VudDw4MCkgeworICAgICAgICAgICAgY2hhciBjID0gcy5jaGFyQXQoaSsrKTsKKyAgICAgICAgICAgIGlmIChjIDwgJ1x1MDAyMCcgfHwgYyA9PSAnIicgfHwgYyA9PSAnXFwnKSB7CisgICAgICAgICAgICAgICAgLy8gUmVwcmVzZW50IGNvbnRyb2wgY2hhcmFjdGVycywgYmFja3NsYXNoIGFuZCBkb3VibGUgcXVvdGUKKyAgICAgICAgICAgICAgICAvLyB1c2luZyBvY3RhbCBub3RhdGlvbjsgb3RoZXJ3aXNlIHRoZSBzdHJpbmcgd2UgZm9ybQorICAgICAgICAgICAgICAgIC8vIHdvbid0IGNvbXBpbGUsIHNpbmNlIFVuaWNvZGUgZXNjYXBlIHNlcXVlbmNlcyBhcmUKKyAgICAgICAgICAgICAgICAvLyBwcm9jZXNzZWQgYmVmb3JlIHRva2VuaXphdGlvbi4KKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKCdcXCcpOworICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoSEVYX0RJR0lUWyhjICYgMDcwMCkgPj4gNl0pOyAvLyBIRVhfRElHSVQgd29ya3MgZm9yIG9jdGFsCisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChIRVhfRElHSVRbKGMgJiAwMDcwKSA+PiAzXSk7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChIRVhfRElHSVRbKGMgJiAwMDA3KV0pOworICAgICAgICAgICAgICAgIGNvdW50ICs9IDQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChjIDw9ICdcdTAwN0UnKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICBjb3VudCArPSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgiXFx1Iik7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChIRVhfRElHSVRbKGMgJiAweEYwMDApID4+IDEyXSk7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChIRVhfRElHSVRbKGMgJiAweDBGMDApID4+IDhdKTsKKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKEhFWF9ESUdJVFsoYyAmIDB4MDBGMCkgPj4gNF0pOworICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoSEVYX0RJR0lUWyhjICYgMHgwMDBGKV0pOworICAgICAgICAgICAgICAgIGNvdW50ICs9IDY7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKCciJyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGJ1ZmZlci50b1N0cmluZygpOworICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBjaGFyW10gSEVYX0RJR0lUID0geycwJywnMScsJzInLCczJywnNCcsJzUnLCc2JywnNycsCisgICAgICAgICAgICAgICAgICAgICAnOCcsJzknLCdBJywnQicsJ0MnLCdEJywnRScsJ0YnfTsKKworCisgICAgLyoqCisgICAgICogQ29udmVydCBjaGFyYWN0ZXJzIG91dHNpZGUgdGhlIHJhbmdlIFUrMDAyMCB0byBVKzAwN0YgdG8KKyAgICAgKiBVbmljb2RlIGVzY2FwZXMsIGFuZCBjb252ZXJ0IGJhY2tzbGFzaCB0byBhIGRvdWJsZSBiYWNrc2xhc2guCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgZXNjYXBlKFN0cmluZyBzKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxzLmxlbmd0aCgpOyApIHsKKyAgICAgICAgICAgIGludCBjID0gVVRGMTYuY2hhckF0KHMsIGkpOworICAgICAgICAgICAgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgICAgICBpZiAoYyA+PSAnICcgJiYgYyA8PSAweDAwN0YpIHsKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnXFwnKSB7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIlxcXFwiKTsgLy8gVGhhdCBpcywgIlxcIgorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoKGNoYXIpYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBib29sZWFuIGZvdXIgPSBjIDw9IDB4RkZGRjsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGZvdXIgPyAiXFx1IiA6ICJcXFUiKTsKKyAgICAgICAgICAgICAgICBoZXgoYywgZm91ciA/IDQgOiA4LCBidWYpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKiBUaGlzIG1hcCBtdXN0IGJlIGluIEFTQ0VORElORyBPUkRFUiBPRiBUSEUgRVNDQVBFIENPREUgKi8KKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBjaGFyW10gVU5FU0NBUEVfTUFQID0geworICAgICAgICAvKiIgICAweDIyLCAweDIyICovCisgICAgICAgIC8qJyAgIDB4MjcsIDB4MjcgKi8KKyAgICAgICAgLyo/ICAgMHgzRiwgMHgzRiAqLworICAgICAgICAvKlwgICAweDVDLCAweDVDICovCisgICAgICAgIC8qYSovIDB4NjEsIDB4MDcsCisgICAgICAgIC8qYiovIDB4NjIsIDB4MDgsCisgICAgICAgIC8qZiovIDB4NjYsIDB4MGMsCisgICAgICAgIC8qbiovIDB4NkUsIDB4MGEsCisgICAgICAgIC8qciovIDB4NzIsIDB4MGQsCisgICAgICAgIC8qdCovIDB4NzQsIDB4MDksCisgICAgICAgIC8qdiovIDB4NzYsIDB4MGIKKyAgICB9OworCisgICAgLyoqCisgICAgICogQ29udmVydCBhbiBlc2NhcGUgdG8gYSAzMi1iaXQgY29kZSBwb2ludCB2YWx1ZS4gIFdlIGF0dGVtcHQKKyAgICAgKiB0byBwYXJhbGxlbCB0aGUgaWN1NGMgdW5lc2FjcGVBdCgpIGZ1bmN0aW9uLgorICAgICAqIEBwYXJhbSBvZmZzZXQxNiBhbiBhcnJheSBjb250YWluaW5nIG9mZnNldCB0byB0aGUgY2hhcmFjdGVyCisgICAgICogPGVtPmFmdGVyPC9lbT4gdGhlIGJhY2tzbGFzaC4gIFVwb24gcmV0dXJuIG9mZnNldDE2WzBdIHdpbGwKKyAgICAgKiBiZSB1cGRhdGVkIHRvIHBvaW50IGFmdGVyIHRoZSBlc2NhcGUgc2VxdWVuY2UuCisgICAgICogQHJldHVybiBjaGFyYWN0ZXIgdmFsdWUgZnJvbSAwIHRvIDEwRkZGRiwgb3IgLTEgb24gZXJyb3IuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgdW5lc2NhcGVBdChTdHJpbmcgcywgaW50W10gb2Zmc2V0MTYpIHsKKyAgICAgICAgaW50IGM7CisgICAgICAgIGludCByZXN1bHQgPSAwOworICAgICAgICBpbnQgbiA9IDA7CisgICAgICAgIGludCBtaW5EaWcgPSAwOworICAgICAgICBpbnQgbWF4RGlnID0gMDsKKyAgICAgICAgaW50IGJpdHNQZXJEaWdpdCA9IDQ7CisgICAgICAgIGludCBkaWc7CisgICAgICAgIGludCBpOworCisgICAgICAgIC8qIENoZWNrIHRoYXQgb2Zmc2V0IGlzIGluIHJhbmdlICovCisgICAgICAgIGludCBvZmZzZXQgPSBvZmZzZXQxNlswXTsKKyAgICAgICAgaW50IGxlbmd0aCA9IHMubGVuZ3RoKCk7CisgICAgICAgIGlmIChvZmZzZXQgPCAwIHx8IG9mZnNldCA+PSBsZW5ndGgpIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorCisgICAgICAgIC8qIEZldGNoIGZpcnN0IFVDaGFyIGFmdGVyICdcXCcgKi8KKyAgICAgICAgYyA9IFVURjE2LmNoYXJBdChzLCBvZmZzZXQpOworICAgICAgICBvZmZzZXQgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworCisgICAgICAgIC8qIENvbnZlcnQgaGV4YWRlY2ltYWwgYW5kIG9jdGFsIGVzY2FwZXMgKi8KKyAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgIGNhc2UgJ3UnOgorICAgICAgICAgICAgbWluRGlnID0gbWF4RGlnID0gNDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICdVJzoKKyAgICAgICAgICAgIG1pbkRpZyA9IG1heERpZyA9IDg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAneCc6CisgICAgICAgICAgICBtaW5EaWcgPSAxOworICAgICAgICAgICAgbWF4RGlnID0gMjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgZGlnID0gVUNoYXJhY3Rlci5kaWdpdChjLCA4KTsKKyAgICAgICAgICAgIGlmIChkaWcgPj0gMCkgeworICAgICAgICAgICAgICAgIG1pbkRpZyA9IDE7CisgICAgICAgICAgICAgICAgbWF4RGlnID0gMzsKKyAgICAgICAgICAgICAgICBuID0gMTsgLyogQWxyZWFkeSBoYXZlIGZpcnN0IG9jdGFsIGRpZ2l0ICovCisgICAgICAgICAgICAgICAgYml0c1BlckRpZ2l0ID0gMzsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBkaWc7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAobWluRGlnICE9IDApIHsKKyAgICAgICAgICAgIHdoaWxlIChvZmZzZXQgPCBsZW5ndGggJiYgbiA8IG1heERpZykgeworICAgICAgICAgICAgICAgIC8vIFRFTVBPUkFSWQorICAgICAgICAgICAgICAgIC8vIFRPRE86IFJlc3RvcmUgdGhlIGNoYXIzMi1iYXNlZCBjb2RlIHdoZW4gVUNoYXJhY3Rlci5kaWdpdAorICAgICAgICAgICAgICAgIC8vIGlzIHdvcmtpbmcgKEJ1ZyA2NikuCisKKyAgICAgICAgICAgICAgICAvL2MgPSBVVEYxNi5jaGFyQXQocywgb2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAvL2RpZyA9IFVDaGFyYWN0ZXIuZGlnaXQoYywgKGJpdHNQZXJEaWdpdCA9PSAzKSA/IDggOiAxNik7CisgICAgICAgICAgICAgICAgYyA9IHMuY2hhckF0KG9mZnNldCk7CisgICAgICAgICAgICAgICAgZGlnID0gQ2hhcmFjdGVyLmRpZ2l0KChjaGFyKWMsIChiaXRzUGVyRGlnaXQgPT0gMykgPyA4IDogMTYpOworICAgICAgICAgICAgICAgIGlmIChkaWcgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0IDw8IGJpdHNQZXJEaWdpdCkgfCBkaWc7CisgICAgICAgICAgICAgICAgLy9vZmZzZXQgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgICAgICsrb2Zmc2V0OworICAgICAgICAgICAgICAgICsrbjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChuIDwgbWluRGlnKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb2Zmc2V0MTZbMF0gPSBvZmZzZXQ7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgLyogQ29udmVydCBDLXN0eWxlIGVzY2FwZXMgaW4gdGFibGUgKi8KKyAgICAgICAgZm9yIChpPTA7IGk8VU5FU0NBUEVfTUFQLmxlbmd0aDsgaSs9MikgeworICAgICAgICAgICAgaWYgKGMgPT0gVU5FU0NBUEVfTUFQW2ldKSB7CisgICAgICAgICAgICAgICAgb2Zmc2V0MTZbMF0gPSBvZmZzZXQ7CisgICAgICAgICAgICAgICAgcmV0dXJuIFVORVNDQVBFX01BUFtpKzFdOworICAgICAgICAgICAgfSBlbHNlIGlmIChjIDwgVU5FU0NBUEVfTUFQW2ldKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKiBJZiBubyBzcGVjaWFsIGZvcm1zIGFyZSByZWNvZ25pemVkLCB0aGVuIGNvbnNpZGVyCisgICAgICAgICAqIHRoZSBiYWNrc2xhc2ggdG8gZ2VuZXJpY2FsbHkgZXNjYXBlIHRoZSBuZXh0IGNoYXJhY3Rlci4gKi8KKyAgICAgICAgb2Zmc2V0MTZbMF0gPSBvZmZzZXQ7CisgICAgICAgIHJldHVybiBjOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgYWxsIGVzY2FwZXMgaW4gYSBnaXZlbiBzdHJpbmcgdXNpbmcgdW5lc2NhcGVBdCgpLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIGFuIGludmFsaWQgZXNjYXBlIGlzCisgICAgICogc2Vlbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB1bmVzY2FwZShTdHJpbmcgcykgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBpbnRbXSBwb3MgPSBuZXcgaW50WzFdOworICAgICAgICBmb3IgKGludCBpPTA7IGk8cy5sZW5ndGgoKTsgKSB7CisgICAgICAgICAgICBjaGFyIGMgPSBzLmNoYXJBdChpKyspOworICAgICAgICAgICAgaWYgKGMgPT0gJ1xcJykgeworICAgICAgICAgICAgICAgIHBvc1swXSA9IGk7CisgICAgICAgICAgICAgICAgaW50IGUgPSB1bmVzY2FwZUF0KHMsIHBvcyk7CisgICAgICAgICAgICAgICAgaWYgKGUgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgZXNjYXBlIHNlcXVlbmNlICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMuc3Vic3RyaW5nKGktMSwgTWF0aC5taW4oaSs4LCBzLmxlbmd0aCgpKSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQoYnVmLCBlKTsKKyAgICAgICAgICAgICAgICBpID0gcG9zWzBdOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGFsbCBlc2NhcGVzIGluIGEgZ2l2ZW4gc3RyaW5nIHVzaW5nIHVuZXNjYXBlQXQoKS4KKyAgICAgKiBMZWF2ZSBpbnZhbGlkIGVzY2FwZSBzZXF1ZW5jZXMgdW5jaGFuZ2VkLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHVuZXNjYXBlTGVuaWVudGx5KFN0cmluZyBzKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludFtdIHBvcyA9IG5ldyBpbnRbMV07CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxzLmxlbmd0aCgpOyApIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IHMuY2hhckF0KGkrKyk7CisgICAgICAgICAgICBpZiAoYyA9PSAnXFwnKSB7CisgICAgICAgICAgICAgICAgcG9zWzBdID0gaTsKKyAgICAgICAgICAgICAgICBpbnQgZSA9IHVuZXNjYXBlQXQocywgcG9zKTsKKyAgICAgICAgICAgICAgICBpZiAoZSA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQoYnVmLCBlKTsKKyAgICAgICAgICAgICAgICAgICAgaSA9IHBvc1swXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoYyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgYSBjaGFyIHRvIDQgaGV4IHVwcGVyY2FzZSBkaWdpdHMuICBFLmcuLCBoZXgoJ2EnKSA9PgorICAgICAqICIwMDQxIi4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBoZXgoY2hhciBjaCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgdGVtcCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgcmV0dXJuIGhleChjaCwgdGVtcCkudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGEgc3RyaW5nIHRvIGNvbW1hLXNlcGFyYXRlZCBncm91cHMgb2YgNCBoZXggdXBwZXJjYXNlCisgICAgICogZGlnaXRzLiAgRS5nLiwgaGV4KCdhYicpID0+ICIwMDQxLDAwNDIiLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGhleChTdHJpbmcgcykgeworICAgICAgICBTdHJpbmdCdWZmZXIgdGVtcCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgcmV0dXJuIGhleChzLCB0ZW1wKS50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgYSBzdHJpbmcgdG8gY29tbWEtc2VwYXJhdGVkIGdyb3VwcyBvZiA0IGhleCB1cHBlcmNhc2UKKyAgICAgKiBkaWdpdHMuICBFLmcuLCBoZXgoJ2FiJykgPT4gIjAwNDEsMDA0MiIuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgaGV4KFN0cmluZ0J1ZmZlciBzKSB7CisgICAgICAgIHJldHVybiBoZXgocy50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGEgY2hhciB0byA0IGhleCB1cHBlcmNhc2UgZGlnaXRzLiAgRS5nLiwgaGV4KCdhJykgPT4KKyAgICAgKiAiMDA0MSIuICBBcHBlbmQgdGhlIG91dHB1dCB0byB0aGUgZ2l2ZW4gU3RyaW5nQnVmZmVyLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGhleChjaGFyIGNoLCBTdHJpbmdCdWZmZXIgb3V0cHV0KSB7CisgICAgICAgIHJldHVybiBhcHBlbmROdW1iZXIob3V0cHV0LCBjaCwgMTYsIDQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgYSBpbnRlZ2VyIHRvIHNpemUgd2lkdGggaGV4IHVwcGVyY2FzZSBkaWdpdHMuCisgICAgICogRS5nLiwgaGV4KCdhJywgNCwgc3RyKSA9PiAiMDA0MSIuCisgICAgICogQXBwZW5kIHRoZSBvdXRwdXQgdG8gdGhlIGdpdmVuIFN0cmluZ0J1ZmZlci4KKyAgICAgKiBJZiB3aWR0aCBpcyB0b28gc21hbGwgdG8gZml0LCBub3RoaW5nIHdpbGwgYmUgYXBwZW5kZWQgdG8gb3V0cHV0LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGhleChpbnQgY2gsIGludCB3aWR0aCwgU3RyaW5nQnVmZmVyIG91dHB1dCkgeworICAgICAgICByZXR1cm4gYXBwZW5kTnVtYmVyKG91dHB1dCwgY2gsIDE2LCB3aWR0aCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydCBhIGludGVnZXIgdG8gc2l6ZSB3aWR0aCAobWluaW11bSkgaGV4IHVwcGVyY2FzZSBkaWdpdHMuCisgICAgICogRS5nLiwgaGV4KCdhJywgNCwgc3RyKSA9PiAiMDA0MSIuICBJZiB0aGUgaW50ZWdlciByZXF1aXJlcyBtb3JlCisgICAgICogdGhhbiB3aWR0aCBkaWdpdHMsIG1vcmUgd2lsbCBiZSB1c2VkLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGhleChpbnQgY2gsIGludCB3aWR0aCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICByZXR1cm4gYXBwZW5kTnVtYmVyKGJ1ZiwgY2gsIDE2LCB3aWR0aCkudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGEgc3RyaW5nIHRvIGNvbW1hLXNlcGFyYXRlZCBncm91cHMgb2YgNCBoZXggdXBwZXJjYXNlCisgICAgICogZGlnaXRzLiAgRS5nLiwgaGV4KCdhYicpID0+ICIwMDQxLDAwNDIiLiAgQXBwZW5kIHRoZSBvdXRwdXQKKyAgICAgKiB0byB0aGUgZ2l2ZW4gU3RyaW5nQnVmZmVyLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGhleChTdHJpbmcgcywgU3RyaW5nQnVmZmVyIHJlc3VsdCkgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgaWYgKGkgIT0gMCkgcmVzdWx0LmFwcGVuZCgnLCcpOworICAgICAgICAgICAgaGV4KHMuY2hhckF0KGkpLCByZXN1bHQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogU3BsaXQgYSBzdHJpbmcgaW50byBwaWVjZXMgYmFzZWQgb24gdGhlIGdpdmVuIGRpdmlkZXIgY2hhcmFjdGVyCisgICAgICogQHBhcmFtIHMgdGhlIHN0cmluZyB0byBzcGxpdAorICAgICAqIEBwYXJhbSBkaXZpZGVyIHRoZSBjaGFyYWN0ZXIgb24gd2hpY2ggdG8gc3BsaXQuICBPY2N1cnJlbmNlcyBvZgorICAgICAqIHRoaXMgY2hhcmFjdGVyIGFyZSBub3QgaW5jbHVkZWQgaW4gdGhlIG91dHB1dAorICAgICAqIEBwYXJhbSBvdXRwdXQgYW4gYXJyYXkgdG8gcmVjZWl2ZSB0aGUgc3Vic3RyaW5ncyBiZXR3ZWVuCisgICAgICogaW5zdGFuY2VzIG9mIGRpdmlkZXIuICBJdCBtdXN0IGJlIGxhcmdlIGVub3VnaCBvbiBlbnRyeSB0bworICAgICAqIGFjY29tb2RhdGUgYWxsIG91dHB1dC4gIEFkamFjZW50IGluc3RhbmNlcyBvZiB0aGUgZGl2aWRlcgorICAgICAqIGNoYXJhY3RlciB3aWxsIHBsYWNlIGVtcHR5IHN0cmluZ3MgaW50byBvdXRwdXQuICBCZWZvcmUKKyAgICAgKiByZXR1cm5pbmcsIG91dHB1dCBpcyBwYWRkZWQgb3V0IHdpdGggZW1wdHkgc3RyaW5ncy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgc3BsaXQoU3RyaW5nIHMsIGNoYXIgZGl2aWRlciwgU3RyaW5nW10gb3V0cHV0KSB7CisgICAgICAgIGludCBsYXN0ID0gMDsKKyAgICAgICAgaW50IGN1cnJlbnQgPSAwOworICAgICAgICBpbnQgaTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IHMubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgaWYgKHMuY2hhckF0KGkpID09IGRpdmlkZXIpIHsKKyAgICAgICAgICAgICAgICBvdXRwdXRbY3VycmVudCsrXSA9IHMuc3Vic3RyaW5nKGxhc3QsaSk7CisgICAgICAgICAgICAgICAgbGFzdCA9IGkrMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBvdXRwdXRbY3VycmVudCsrXSA9IHMuc3Vic3RyaW5nKGxhc3QsaSk7CisgICAgICAgIHdoaWxlIChjdXJyZW50IDwgb3V0cHV0Lmxlbmd0aCkgeworICAgICAgICAgICAgb3V0cHV0W2N1cnJlbnQrK10gPSAiIjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIExvb2sgdXAgYSBnaXZlbiBzdHJpbmcgaW4gYSBzdHJpbmcgYXJyYXkuICBSZXR1cm5zIHRoZSBpbmRleCBhdAorICAgICAqIHdoaWNoIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIHRoZSBzdHJpbmcgd2FzIGZvdW5kIGluIHRoZQorICAgICAqIGFycmF5LCBvciAtMSBpZiBpdCB3YXMgbm90IGZvdW5kLgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIHN0cmluZyB0byBzZWFyY2ggZm9yCisgICAgICogQHBhcmFtIHRhcmdldCB0aGUgYXJyYXkgb2YgemVybyBvciBtb3JlIHN0cmluZ3MgaW4gd2hpY2ggdG8KKyAgICAgKiBsb29rIGZvciBzb3VyY2UKKyAgICAgKiBAcmV0dXJuIHRoZSBpbmRleCBvZiB0YXJnZXQgYXQgd2hpY2ggc291cmNlIGZpcnN0IG9jY3Vycywgb3IgLTEKKyAgICAgKiBpZiBub3QgZm91bmQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBsb29rdXAoU3RyaW5nIHNvdXJjZSwgU3RyaW5nW10gdGFyZ2V0KSB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGFyZ2V0Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoc291cmNlLmVxdWFscyh0YXJnZXRbaV0pKSByZXR1cm4gaTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2tpcCBvdmVyIGEgc2VxdWVuY2Ugb2YgemVybyBvciBtb3JlIHdoaXRlIHNwYWNlIGNoYXJhY3RlcnMKKyAgICAgKiBhdCBwb3MuICBSZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBub24td2hpdGUtc3BhY2UgY2hhcmFjdGVyCisgICAgICogYXQgb3IgYWZ0ZXIgcG9zLCBvciBzdHIubGVuZ3RoKCksIGlmIHRoZXJlIGlzIG5vbmUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgc2tpcFdoaXRlc3BhY2UoU3RyaW5nIHN0ciwgaW50IHBvcykgeworICAgICAgICB3aGlsZSAocG9zIDwgc3RyLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBpbnQgYyA9IFVURjE2LmNoYXJBdChzdHIsIHBvcyk7CisgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGMpKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwb3MgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBwb3M7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2tpcCBvdmVyIGEgc2VxdWVuY2Ugb2YgemVybyBvciBtb3JlIHdoaXRlIHNwYWNlIGNoYXJhY3RlcnMKKyAgICAgKiBhdCBwb3NbMF0sIGFkdmFuY2luZyBpdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgc2tpcFdoaXRlc3BhY2UoU3RyaW5nIHN0ciwgaW50W10gcG9zKSB7CisgICAgICAgIHBvc1swXSA9IHNraXBXaGl0ZXNwYWNlKHN0ciwgcG9zWzBdKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhIHNpbmdsZSBub24td2hpdGVzcGFjZSBjaGFyYWN0ZXIgJ2NoJywgb3B0aW9uYWxseQorICAgICAqIHByZWNlZGVkIGJ5IHdoaXRlc3BhY2UuCisgICAgICogQHBhcmFtIGlkIHRoZSBzdHJpbmcgdG8gYmUgcGFyc2VkCisgICAgICogQHBhcmFtIHBvcyBJTlBVVC1PVVRQVVQgcGFyYW1ldGVyLiAgT24gaW5wdXQsIHBvc1swXSBpcyB0aGUKKyAgICAgKiBvZmZzZXQgb2YgdGhlIGZpcnN0IGNoYXJhY3RlciB0byBiZSBwYXJzZWQuICBPbiBvdXRwdXQsIHBvc1swXQorICAgICAqIGlzIHRoZSBpbmRleCBhZnRlciB0aGUgbGFzdCBwYXJzZWQgY2hhcmFjdGVyLiAgSWYgdGhlIHBhcnNlCisgICAgICogZmFpbHMsIHBvc1swXSB3aWxsIGJlIHVuY2hhbmdlZC4KKyAgICAgKiBAcGFyYW0gY2ggdGhlIG5vbi13aGl0ZXNwYWNlIGNoYXJhY3RlciB0byBiZSBwYXJzZWQuCisgICAgICogQHJldHVybiB0cnVlIGlmICdjaCcgaXMgc2VlbiBwcmVjZWRlZCBieSB6ZXJvIG9yIG1vcmUKKyAgICAgKiB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIHBhcnNlQ2hhcihTdHJpbmcgaWQsIGludFtdIHBvcywgY2hhciBjaCkgeworICAgICAgICBpbnQgc3RhcnQgPSBwb3NbMF07CisgICAgICAgIHNraXBXaGl0ZXNwYWNlKGlkLCBwb3MpOworICAgICAgICBpZiAocG9zWzBdID09IGlkLmxlbmd0aCgpIHx8CisgICAgICAgICAgICBpZC5jaGFyQXQocG9zWzBdKSAhPSBjaCkgeworICAgICAgICAgICAgcG9zWzBdID0gc3RhcnQ7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgKytwb3NbMF07CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlIGEgcGF0dGVybiBzdHJpbmcgc3RhcnRpbmcgYXQgb2Zmc2V0IHBvcy4gIEtleXdvcmRzIGFyZQorICAgICAqIG1hdGNoZWQgY2FzZS1pbnNlbnNpdGl2ZWx5LiAgU3BhY2VzIG1heSBiZSBza2lwcGVkIGFuZCBtYXkgYmUKKyAgICAgKiBvcHRpb25hbCBvciByZXF1aXJlZC4gIEludGVnZXIgdmFsdWVzIG1heSBiZSBwYXJzZWQsIGFuZCBpZgorICAgICAqIHRoZXkgYXJlLCB0aGV5IHdpbGwgYmUgcmV0dXJuZWQgaW4gdGhlIGdpdmVuIGFycmF5LiAgSWYKKyAgICAgKiBzdWNjZXNzZnVsLCB0aGUgb2Zmc2V0IG9mIHRoZSBuZXh0IG5vbi1zcGFjZSBjaGFyYWN0ZXIgaXMKKyAgICAgKiByZXR1cm5lZC4gIE9uIGZhaWx1cmUsIC0xIGlzIHJldHVybmVkLgorICAgICAqIEBwYXJhbSBwYXR0ZXJuIG11c3Qgb25seSBjb250YWluIGxvd2VyY2FzZSBjaGFyYWN0ZXJzLCB3aGljaAorICAgICAqIHdpbGwgbWF0Y2ggdGhlaXIgdXBwZXJjYXNlIGVxdWl2YWxlbnRzIGFzIHdlbGwuICBBIHNwYWNlCisgICAgICogY2hhcmFjdGVyIG1hdGNoZXMgb25lIG9yIG1vcmUgcmVxdWlyZWQgc3BhY2VzLiAgQSAnficgY2hhcmFjdGVyCisgICAgICogbWF0Y2hlcyB6ZXJvIG9yIG1vcmUgb3B0aW9uYWwgc3BhY2VzLiAgQSAnIycgY2hhcmFjdGVyIG1hdGNoZXMKKyAgICAgKiBhbiBpbnRlZ2VyIGFuZCBzdG9yZXMgaXQgaW4gcGFyc2VkSW50cywgd2hpY2ggdGhlIGNhbGxlciBtdXN0CisgICAgICogZW5zdXJlIGhhcyBlbm91Z2ggY2FwYWNpdHkuCisgICAgICogQHBhcmFtIHBhcnNlZEludHMgYXJyYXkgdG8gcmVjZWl2ZSBwYXJzZWQgaW50ZWdlcnMuICBDYWxsZXIKKyAgICAgKiBtdXN0IGVuc3VyZSB0aGF0IHBhcnNlZEludHMubGVuZ3RoIGlzID49IHRoZSBudW1iZXIgb2YgJyMnCisgICAgICogc2lnbnMgaW4gJ3BhdHRlcm4nLgorICAgICAqIEByZXR1cm4gdGhlIHBvc2l0aW9uIGFmdGVyIHRoZSBsYXN0IGNoYXJhY3RlciBwYXJzZWQsIG9yIC0xIGlmCisgICAgICogdGhlIHBhcnNlIGZhaWxlZAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IHBhcnNlUGF0dGVybihTdHJpbmcgcnVsZSwgaW50IHBvcywgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcGF0dGVybiwgaW50W10gcGFyc2VkSW50cykgeworICAgICAgICAvLyBUT0RPIFVwZGF0ZSB0aGlzIHRvIGhhbmRsZSBzdXJyb2dhdGVzCisgICAgICAgIGludFtdIHAgPSBuZXcgaW50WzFdOworICAgICAgICBpbnQgaW50Q291bnQgPSAwOyAvLyBudW1iZXIgb2YgaW50ZWdlcnMgcGFyc2VkCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxwYXR0ZXJuLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgY3BhdCA9IHBhdHRlcm4uY2hhckF0KGkpOworICAgICAgICAgICAgY2hhciBjOworICAgICAgICAgICAgc3dpdGNoIChjcGF0KSB7CisgICAgICAgICAgICBjYXNlICcgJzoKKyAgICAgICAgICAgICAgICBpZiAocG9zID49IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYyA9IHJ1bGUuY2hhckF0KHBvcysrKTsKKyAgICAgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGMpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gRkFMTCBUSFJPVUdIIHRvIHNraXBXaGl0ZXNwYWNlCisgICAgICAgICAgICBjYXNlICd+JzoKKyAgICAgICAgICAgICAgICBwb3MgPSBza2lwV2hpdGVzcGFjZShydWxlLCBwb3MpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAnIyc6CisgICAgICAgICAgICAgICAgcFswXSA9IHBvczsKKyAgICAgICAgICAgICAgICBwYXJzZWRJbnRzW2ludENvdW50KytdID0gcGFyc2VJbnRlZ2VyKHJ1bGUsIHAsIGxpbWl0KTsKKyAgICAgICAgICAgICAgICBpZiAocFswXSA9PSBwb3MpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gU3ludGF4IGVycm9yOyBmYWlsZWQgdG8gcGFyc2UgaW50ZWdlcgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHBvcyA9IHBbMF07CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGlmIChwb3MgPj0gbGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjID0gKGNoYXIpIFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UocnVsZS5jaGFyQXQocG9zKyspKTsKKyAgICAgICAgICAgICAgICBpZiAoYyAhPSBjcGF0KSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHBvczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhbiBpbnRlZ2VyIGF0IHBvcywgZWl0aGVyIG9mIHRoZSBmb3JtIFxkKyBvciBvZiB0aGUgZm9ybQorICAgICAqIDB4WzAtOUEtRmEtZl0rIG9yIDBbMC03XSssIHRoYXQgaXMsIGluIHN0YW5kYXJkIGRlY2ltYWwsIGhleCwKKyAgICAgKiBvciBvY3RhbCBmb3JtYXQuCisgICAgICogQHBhcmFtIHBvcyBJTlBVVC1PVVRQVVQgcGFyYW1ldGVyLiAgT24gaW5wdXQsIHRoZSBmaXJzdAorICAgICAqIGNoYXJhY3RlciB0byBwYXJzZS4gIE9uIG91dHB1dCwgdGhlIGNoYXJhY3RlciBhZnRlciB0aGUgbGFzdAorICAgICAqIHBhcnNlZCBjaGFyYWN0ZXIuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgcGFyc2VJbnRlZ2VyKFN0cmluZyBydWxlLCBpbnRbXSBwb3MsIGludCBsaW1pdCkgeworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICBpbnQgdmFsdWUgPSAwOworICAgICAgICBpbnQgcCA9IHBvc1swXTsKKyAgICAgICAgaW50IHJhZGl4ID0gMTA7CisKKyAgICAgICAgaWYgKHJ1bGUucmVnaW9uTWF0Y2hlcyh0cnVlLCBwLCAiMHgiLCAwLCAyKSkgeworICAgICAgICAgICAgcCArPSAyOworICAgICAgICAgICAgcmFkaXggPSAxNjsKKyAgICAgICAgfSBlbHNlIGlmIChwIDwgbGltaXQgJiYgcnVsZS5jaGFyQXQocCkgPT0gJzAnKSB7CisgICAgICAgICAgICBwKys7CisgICAgICAgICAgICBjb3VudCA9IDE7CisgICAgICAgICAgICByYWRpeCA9IDg7CisgICAgICAgIH0KKworICAgICAgICB3aGlsZSAocCA8IGxpbWl0KSB7CisgICAgICAgICAgICBpbnQgZCA9IFVDaGFyYWN0ZXIuZGlnaXQocnVsZS5jaGFyQXQocCsrKSwgcmFkaXgpOworICAgICAgICAgICAgaWYgKGQgPCAwKSB7CisgICAgICAgICAgICAgICAgLS1wOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgKytjb3VudDsKKyAgICAgICAgICAgIGludCB2ID0gKHZhbHVlICogcmFkaXgpICsgZDsKKyAgICAgICAgICAgIGlmICh2IDw9IHZhbHVlKSB7CisgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgYXJlIHRvbyBtYW55IGlucHV0IGRpZ2l0cywgYXQgc29tZSBwb2ludAorICAgICAgICAgICAgICAgIC8vIHRoZSB2YWx1ZSB3aWxsIGdvIG5lZ2F0aXZlLCBlLmcuLCBpZiB3ZSBoYXZlIHNlZW4KKyAgICAgICAgICAgICAgICAvLyAiMHg4MDAwMDAwIiBhbHJlYWR5IGFuZCB0aGVyZSBpcyBhbm90aGVyICcwJywgd2hlbgorICAgICAgICAgICAgICAgIC8vIHdlIHBhcnNlIHRoZSBuZXh0IDAgdGhlIHZhbHVlIHdpbGwgZ28gbmVnYXRpdmUuCisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2YWx1ZSA9IHY7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvdW50ID4gMCkgeworICAgICAgICAgICAgcG9zWzBdID0gcDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgYSBVbmljb2RlIGlkZW50aWZpZXIgZnJvbSB0aGUgZ2l2ZW4gc3RyaW5nIGF0IHRoZSBnaXZlbgorICAgICAqIHBvc2l0aW9uLiAgUmV0dXJuIHRoZSBpZGVudGlmaWVyLCBvciBudWxsIGlmIHRoZXJlIGlzIG5vCisgICAgICogaWRlbnRpZmllci4KKyAgICAgKiBAcGFyYW0gc3RyIHRoZSBzdHJpbmcgdG8gcGFyc2UKKyAgICAgKiBAcGFyYW0gcG9zIElOUFVULU9VUFVUIHBhcmFtZXRlci4gIE9uIElOUFVULCBwb3NbMF0gaXMgdGhlCisgICAgICogZmlyc3QgY2hhcmFjdGVyIHRvIGV4YW1pbmUuICBJdCBtdXN0IGJlIGxlc3MgdGhhbiBzdHIubGVuZ3RoKCksCisgICAgICogYW5kIGl0IG11c3Qgbm90IHBvaW50IHRvIGEgd2hpdGVzcGFjZSBjaGFyYWN0ZXIuICBUaGF0IGlzLCBtdXN0CisgICAgICogaGF2ZSBwb3NbMF0gPCBzdHIubGVuZ3RoKCkgYW5kCisgICAgICogIVVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKFVURjE2LmNoYXJBdChzdHIsIHBvc1swXSkpLiAgT24KKyAgICAgKiBPVVRQVVQsIHRoZSBwb3NpdGlvbiBhZnRlciB0aGUgbGFzdCBwYXJzZWQgY2hhcmFjdGVyLgorICAgICAqIEByZXR1cm4gdGhlIFVuaWNvZGUgaWRlbnRpZmllciwgb3IgbnVsbCBpZiB0aGVyZSBpcyBubyB2YWxpZAorICAgICAqIGlkZW50aWZpZXIgYXQgcG9zWzBdLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHBhcnNlVW5pY29kZUlkZW50aWZpZXIoU3RyaW5nIHN0ciwgaW50W10gcG9zKSB7CisgICAgICAgIC8vIGFzc2VydChwb3NbMF0gPCBzdHIubGVuZ3RoKCkpOworICAgICAgICAvLyBhc3NlcnQoIVVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKFVURjE2LmNoYXJBdChzdHIsIHBvc1swXSkpKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50IHAgPSBwb3NbMF07CisgICAgICAgIHdoaWxlIChwIDwgc3RyLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBpbnQgY2ggPSBVVEYxNi5jaGFyQXQoc3RyLCBwKTsKKyAgICAgICAgICAgIGlmIChidWYubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzVW5pY29kZUlkZW50aWZpZXJTdGFydChjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKGJ1ZiwgY2gpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclBhcnQoY2gpKSB7CisgICAgICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZChidWYsIGNoKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwICs9IFVURjE2LmdldENoYXJDb3VudChjaCk7CisgICAgICAgIH0KKyAgICAgICAgcG9zWzBdID0gcDsKKyAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRyaW0gd2hpdGVzcGFjZSBmcm9tIGVuZHMgb2YgYSBTdHJpbmdCdWZmZXIuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgdHJpbShTdHJpbmdCdWZmZXIgYikgeworICAgICAgICAvLyBUT0RPIHVwZGF0ZSB0byBoYW5kbGUgc3Vycm9nYXRlcworICAgICAgICBpbnQgaTsKKyAgICAgICAgZm9yIChpPTA7IGk8Yi5sZW5ndGgoKSAmJiBDaGFyYWN0ZXIuaXNXaGl0ZXNwYWNlKGIuY2hhckF0KGkpKTsgKytpKSB7fQorICAgICAgICBiLmRlbGV0ZSgwLCBpKTsKKyAgICAgICAgZm9yIChpPWIubGVuZ3RoKCktMTsgaT49MCAmJiBDaGFyYWN0ZXIuaXNXaGl0ZXNwYWNlKGIuY2hhckF0KGkpKTsgLS1pKSB7fQorICAgICAgICByZXR1cm4gYi5kZWxldGUoaSsxLCBiLmxlbmd0aCgpKTsKKyAgICB9CisKKyAgICAvLyAiMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIgorICAgIHN0YXRpYyBmaW5hbCBjaGFyIERJR0lUU1tdID0geworICAgICAgICA0OCw0OSw1MCw1MSw1Miw1Myw1NCw1NSw1Niw1NywKKyAgICAgICAgNjUsNjYsNjcsNjgsNjksNzAsNzEsNzIsNzMsNzQsCisgICAgICAgIDc1LDc2LDc3LDc4LDc5LDgwLDgxLDgyLDgzLDg0LAorICAgICAgICA4NSw4Niw4Nyw4OCw4OSw5MAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBBcHBlbmQgYSBudW1iZXIgdG8gdGhlIGdpdmVuIFN0cmluZ0J1ZmZlciBpbiB0aGUgcmFkaXggMTAKKyAgICAgKiBnZW5lcmF0aW5nIGF0IGxlYXN0IG9uZSBkaWdpdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBhcHBlbmROdW1iZXIoU3RyaW5nQnVmZmVyIHJlc3VsdCwgaW50IG4pIHsKKyAgICAgICAgcmV0dXJuIGFwcGVuZE51bWJlcihyZXN1bHQsIG4sIDEwLCAxKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBcHBlbmQgYSBudW1iZXIgdG8gdGhlIGdpdmVuIFN0cmluZ0J1ZmZlciBpbiB0aGUgZ2l2ZW4gcmFkaXguCisgICAgICogU3RhbmRhcmQgZGlnaXRzICcwJy0nOScgYXJlIHVzZWQgYW5kIGxldHRlcnMgJ0EnLSdaJyBmb3IKKyAgICAgKiByYWRpY2VzIDExIHRocm91Z2ggMzYuCisgICAgICogQHBhcmFtIHJlc3VsdCB0aGUgZGlnaXRzIG9mIHRoZSBudW1iZXIgYXJlIGFwcGVuZGVkIGhlcmUKKyAgICAgKiBAcGFyYW0gbiB0aGUgbnVtYmVyIHRvIGJlIGNvbnZlcnRlZCB0byBkaWdpdHM7IG1heSBiZSBuZWdhdGl2ZS4KKyAgICAgKiBJZiBuZWdhdGl2ZSwgYSAnLScgaXMgcHJlcGVuZGVkIHRvIHRoZSBkaWdpdHMuCisgICAgICogQHBhcmFtIHJhZGl4IGEgcmFkaXggZnJvbSAyIHRvIDM2IGluY2x1c2l2ZS4KKyAgICAgKiBAcGFyYW0gbWluRGlnaXRzIHRoZSBtaW5pbXVtIG51bWJlciBvZiBkaWdpdHMsIG5vdCBpbmNsdWRpbmcKKyAgICAgKiBhbnkgJy0nLCB0byBwcm9kdWNlLiAgVmFsdWVzIGxlc3MgdGhhbiAyIGhhdmUgbm8gZWZmZWN0LiAgT25lCisgICAgICogZGlnaXQgaXMgYWx3YXlzIGVtaXR0ZWQgcmVnYXJkbGVzcyBvZiB0aGlzIHBhcmFtZXRlci4KKyAgICAgKiBAcmV0dXJuIGEgcmVmZXJlbmNlIHRvIHJlc3VsdAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGFwcGVuZE51bWJlcihTdHJpbmdCdWZmZXIgcmVzdWx0LCBpbnQgbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJhZGl4LCBpbnQgbWluRGlnaXRzKSB7CisgICAgICAgIGlmIChyYWRpeCA8IDIgfHwgcmFkaXggPiAzNikgeworICAgICAgICAgICAgLy8gQm9ndXMgcmFkaXgKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgcmFkaXggIiArIHJhZGl4KTsKKyAgICAgICAgfQorICAgICAgICAvLyBIYW5kbGUgbmVnYXRpdmVzCisgICAgICAgIGlmIChuIDwgMCkgeworICAgICAgICAgICAgbiA9IC1uOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnLScpOworICAgICAgICB9CisgICAgICAgIC8vIEZpcnN0IGRldGVybWluZSB0aGUgbnVtYmVyIG9mIGRpZ2l0cworICAgICAgICBpbnQgbm4gPSBuOworICAgICAgICBpbnQgciA9IDE7CisgICAgICAgIHdoaWxlIChubiA+PSByYWRpeCkgeworICAgICAgICAgICAgbm4gLz0gcmFkaXg7CisgICAgICAgICAgICByICo9IHJhZGl4OworICAgICAgICAgICAgLS1taW5EaWdpdHM7CisgICAgICAgIH0KKyAgICAgICAgLy8gTm93IGdlbmVyYXRlIHRoZSBkaWdpdHMKKyAgICAgICAgd2hpbGUgKC0tbWluRGlnaXRzID4gMCkgeworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChESUdJVFNbMF0pOworICAgICAgICB9CisgICAgICAgIHdoaWxlIChyID4gMCkgeworICAgICAgICAgICAgaW50IGRpZ2l0ID0gbiAvIHI7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKERJR0lUU1tkaWdpdF0pOworICAgICAgICAgICAgbiAtPSBkaWdpdCAqIHI7CisgICAgICAgICAgICByIC89IHJhZGl4OworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgYW4gdW5zaWduZWQgMzEtYml0IGludGVnZXIgYXQgdGhlIGdpdmVuIG9mZnNldC4gIFVzZQorICAgICAqIFVDaGFyYWN0ZXIuZGlnaXQoKSB0byBwYXJzZSBpbmRpdmlkdWFsIGNoYXJhY3RlcnMgaW50byBkaWdpdHMuCisgICAgICogQHBhcmFtIHRleHQgdGhlIHRleHQgdG8gYmUgcGFyc2VkCisgICAgICogQHBhcmFtIHBvcyBJTlBVVC1PVVRQVVQgcGFyYW1ldGVyLiAgT24gZW50cnksIHBvc1swXSBpcyB0aGUKKyAgICAgKiBvZmZzZXQgd2l0aGluIHRleHQgYXQgd2hpY2ggdG8gc3RhcnQgcGFyc2luZzsgaXQgc2hvdWxkIHBvaW50CisgICAgICogdG8gYSB2YWxpZCBkaWdpdC4gIE9uIGV4aXQsIHBvc1swXSBpcyB0aGUgb2Zmc2V0IGFmdGVyIHRoZSBsYXN0CisgICAgICogcGFyc2VkIGNoYXJhY3Rlci4gIElmIHRoZSBwYXJzZSBmYWlsZWQsIGl0IHdpbGwgYmUgdW5jaGFuZ2VkIG9uCisgICAgICogZXhpdC4gIE11c3QgYmUgPj0gMCBvbiBlbnRyeS4KKyAgICAgKiBAcGFyYW0gcmFkaXggdGhlIHJhZGl4IGluIHdoaWNoIHRvIHBhcnNlOyBtdXN0IGJlID49IDIgYW5kIDw9CisgICAgICogMzYuCisgICAgICogQHJldHVybiBhIG5vbi1uZWdhdGl2ZSBwYXJzZWQgbnVtYmVyLCBvciAtMSB1cG9uIHBhcnNlIGZhaWx1cmUuCisgICAgICogUGFyc2UgZmFpbHMgaWYgdGhlcmUgYXJlIG5vIGRpZ2l0cywgdGhhdCBpcywgaWYgcG9zWzBdIGRvZXMgbm90CisgICAgICogcG9pbnQgdG8gYSB2YWxpZCBkaWdpdCBvbiBlbnRyeSwgb3IgaWYgdGhlIG51bWJlciB0byBiZSBwYXJzZWQKKyAgICAgKiBkb2VzIG5vdCBmaXQgaW50byBhIDMxLWJpdCB1bnNpZ25lZCBpbnRlZ2VyLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IHBhcnNlTnVtYmVyKFN0cmluZyB0ZXh0LCBpbnRbXSBwb3MsIGludCByYWRpeCkgeworICAgICAgICAvLyBhc3NlcnQocG9zWzBdID49IDApOworICAgICAgICAvLyBhc3NlcnQocmFkaXggPj0gMik7CisgICAgICAgIC8vIGFzc2VydChyYWRpeCA8PSAzNik7CisgICAgICAgIGludCBuID0gMDsKKyAgICAgICAgaW50IHAgPSBwb3NbMF07CisgICAgICAgIHdoaWxlIChwIDwgdGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgaW50IGNoID0gVVRGMTYuY2hhckF0KHRleHQsIHApOworICAgICAgICAgICAgaW50IGQgPSBVQ2hhcmFjdGVyLmRpZ2l0KGNoLCByYWRpeCk7CisgICAgICAgICAgICBpZiAoZCA8IDApIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG4gPSByYWRpeCpuICsgZDsKKyAgICAgICAgICAgIC8vIEFTU1VNRSB0aGF0IHdoZW4gYSAzMi1iaXQgaW50ZWdlciBvdmVyZmxvd3MgaXQgYmVjb21lcworICAgICAgICAgICAgLy8gbmVnYXRpdmUuICBFLmcuLCAyMTQ3NDgzNjQgKiAxMCArIDggPT4gbmVnYXRpdmUgdmFsdWUuCisgICAgICAgICAgICBpZiAobiA8IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICArK3A7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHAgPT0gcG9zWzBdKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgcG9zWzBdID0gcDsKKyAgICAgICAgcmV0dXJuIG47CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhcltdIEhFWCA9IHsnMCcsJzEnLCcyJywnMycsJzQnLCc1JywnNicsJzcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzgnLCc5JywnQScsJ0InLCdDJywnRCcsJ0UnLCdGJ307CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgY2hhcmFjdGVyIGlzIE5PVCBwcmludGFibGUgQVNDSUkuICBUaGUgdGFiLAorICAgICAqIG5ld2xpbmUgYW5kIGxpbmVmZWVkIGNoYXJhY3RlcnMgYXJlIGNvbnNpZGVyZWQgdW5wcmludGFibGUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzVW5wcmludGFibGUoaW50IGMpIHsKKyAgICAgICAgcmV0dXJuICEoYyA+PSAweDIwICYmIGMgPD0gMHg3RSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRXNjYXBlIHVucHJpbnRhYmxlIGNoYXJhY3RlcnMgdXNpbmcgPGJhY2tzbGFzaD51eHh4eCBub3RhdGlvbgorICAgICAqIGZvciBVKzAwMDAgdG8gVStGRkZGIGFuZCA8YmFja3NsYXNoPlV4eHh4eHh4eCBmb3IgVSsxMDAwMCBhbmQKKyAgICAgKiBhYm92ZS4gIElmIHRoZSBjaGFyYWN0ZXIgaXMgcHJpbnRhYmxlIEFTQ0lJLCB0aGVuIGRvIG5vdGhpbmcKKyAgICAgKiBhbmQgcmV0dXJuIEZBTFNFLiAgT3RoZXJ3aXNlLCBhcHBlbmQgdGhlIGVzY2FwZWQgbm90YXRpb24gYW5kCisgICAgICogcmV0dXJuIFRSVUUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGVzY2FwZVVucHJpbnRhYmxlKFN0cmluZ0J1ZmZlciByZXN1bHQsIGludCBjKSB7CisgICAgICAgIGlmIChpc1VucHJpbnRhYmxlKGMpKSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCdcXCcpOworICAgICAgICAgICAgaWYgKChjICYgfjB4RkZGRikgIT0gMCkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1UnKTsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKEhFWFsweEYmKGM+PjI4KV0pOworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoSEVYWzB4RiYoYz4+MjQpXSk7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChIRVhbMHhGJihjPj4yMCldKTsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKEhFWFsweEYmKGM+PjE2KV0pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCd1Jyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKEhFWFsweEYmKGM+PjEyKV0pOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChIRVhbMHhGJihjPj44KV0pOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChIRVhbMHhGJihjPj40KV0pOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChIRVhbMHhGJmNdKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGluIGEgc2V0LCBpZ25vcmluZyBxdW90ZWQgdGV4dC4KKyAgICAgKiBGb3IgZXhhbXBsZSwgaW4gdGhlIHN0cmluZyAiYWJjJ2hpZGUnaCIsIHRoZSAnaCcgaW4gImhpZGUiIHdpbGwgbm90IGJlCisgICAgICogZm91bmQgYnkgYSBzZWFyY2ggZm9yICJoIi4gIFVubGlrZSBTdHJpbmcuaW5kZXhPZigpLCB0aGlzIG1ldGhvZCBzZWFyY2hlcworICAgICAqIG5vdCBmb3IgYSBzaW5nbGUgY2hhcmFjdGVyLCBidXQgZm9yIGFueSBjaGFyYWN0ZXIgb2YgdGhlIHN0cmluZworICAgICAqIDxjb2RlPnNldE9mQ2hhcnM8L2NvZGU+LgorICAgICAqIEBwYXJhbSB0ZXh0IHRleHQgdG8gYmUgc2VhcmNoZWQKKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIGJlZ2lubmluZyBpbmRleCwgaW5jbHVzaXZlOyA8Y29kZT4wIDw9IHN0YXJ0CisgICAgICogPD0gbGltaXQ8L2NvZGU+LgorICAgICAqIEBwYXJhbSBsaW1pdCB0aGUgZW5kaW5nIGluZGV4LCBleGNsdXNpdmU7IDxjb2RlPnN0YXJ0IDw9IGxpbWl0CisgICAgICogPD0gdGV4dC5sZW5ndGgoKTwvY29kZT4uCisgICAgICogQHBhcmFtIHNldE9mQ2hhcnMgc3RyaW5nIHdpdGggb25lIG9yIG1vcmUgZGlzdGluY3QgY2hhcmFjdGVycworICAgICAqIEByZXR1cm4gT2Zmc2V0IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaW4gPGNvZGU+c2V0T2ZDaGFyczwvY29kZT4KKyAgICAgKiBmb3VuZCwgb3IgLTEgaWYgbm90IGZvdW5kLgorICAgICAqIEBzZWUgU3RyaW5nI2luZGV4T2YKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBxdW90ZWRJbmRleE9mKFN0cmluZyB0ZXh0LCBpbnQgc3RhcnQsIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzZXRPZkNoYXJzKSB7CisgICAgICAgIGZvciAoaW50IGk9c3RhcnQ7IGk8bGltaXQ7ICsraSkgeworICAgICAgICAgICAgY2hhciBjID0gdGV4dC5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoYyA9PSBCQUNLU0xBU0gpIHsKKyAgICAgICAgICAgICAgICArK2k7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGMgPT0gQVBPU1RST1BIRSkgeworICAgICAgICAgICAgICAgIHdoaWxlICgrK2kgPCBsaW1pdAorICAgICAgICAgICAgICAgICAgICAgICAmJiB0ZXh0LmNoYXJBdChpKSAhPSBBUE9TVFJPUEhFKSB7fQorICAgICAgICAgICAgfSBlbHNlIGlmIChzZXRPZkNoYXJzLmluZGV4T2YoYykgPj0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiBpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGb3IgZGVidWdnaW5nIHB1cnBvc2VzOyBmb3JtYXQgdGhlIGdpdmVuIHRleHQgaW4gdGhlIGZvcm0KKyAgICAgKiBhYWF7YmJifGNjY3xkZGR9ZWVlLCB3aGVyZSB0aGUge30gaW5kaWNhdGUgdGhlIGNvbnRleHQgc3RhcnQKKyAgICAgKiBhbmQgbGltaXQsIGFuZCB0aGUgfHwgaW5kaWNhdGUgdGhlIHN0YXJ0IGFuZCBsaW1pdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBmb3JtYXRJbnB1dChSZXBsYWNlYWJsZVN0cmluZyBpbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGFwcGVuZFRvID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3JtYXRJbnB1dChhcHBlbmRUbywgaW5wdXQsIHBvcyk7CisgICAgICAgIHJldHVybiBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHkuZXNjYXBlKGFwcGVuZFRvLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZvciBkZWJ1Z2dpbmcgcHVycG9zZXM7IGZvcm1hdCB0aGUgZ2l2ZW4gdGV4dCBpbiB0aGUgZm9ybQorICAgICAqIGFhYXtiYmJ8Y2NjfGRkZH1lZWUsIHdoZXJlIHRoZSB7fSBpbmRpY2F0ZSB0aGUgY29udGV4dCBzdGFydAorICAgICAqIGFuZCBsaW1pdCwgYW5kIHRoZSB8fCBpbmRpY2F0ZSB0aGUgc3RhcnQgYW5kIGxpbWl0LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGZvcm1hdElucHV0KFN0cmluZ0J1ZmZlciBhcHBlbmRUbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXBsYWNlYWJsZVN0cmluZyBpbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgaWYgKDAgPD0gcG9zLmNvbnRleHRTdGFydCAmJgorICAgICAgICAgICAgcG9zLmNvbnRleHRTdGFydCA8PSBwb3Muc3RhcnQgJiYKKyAgICAgICAgICAgIHBvcy5zdGFydCA8PSBwb3MubGltaXQgJiYKKyAgICAgICAgICAgIHBvcy5saW1pdCA8PSBwb3MuY29udGV4dExpbWl0ICYmCisgICAgICAgICAgICBwb3MuY29udGV4dExpbWl0IDw9IGlucHV0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBhLCBiLCBjLCBkLCBlOworICAgICAgICAgICAgLy9hID0gaW5wdXQuc3Vic3RyaW5nKDAsIHBvcy5jb250ZXh0U3RhcnQpOworICAgICAgICAgICAgYiA9IGlucHV0LnN1YnN0cmluZyhwb3MuY29udGV4dFN0YXJ0LCBwb3Muc3RhcnQpOworICAgICAgICAgICAgYyA9IGlucHV0LnN1YnN0cmluZyhwb3Muc3RhcnQsIHBvcy5saW1pdCk7CisgICAgICAgICAgICBkID0gaW5wdXQuc3Vic3RyaW5nKHBvcy5saW1pdCwgcG9zLmNvbnRleHRMaW1pdCk7CisgICAgICAgICAgICAvL2UgPSBpbnB1dC5zdWJzdHJpbmcocG9zLmNvbnRleHRMaW1pdCwgaW5wdXQubGVuZ3RoKCkpOworICAgICAgICAgICAgYXBwZW5kVG8uLy9hcHBlbmQoYSkuCisgICAgICAgICAgICAgICAgYXBwZW5kKCd7JykuYXBwZW5kKGIpLgorICAgICAgICAgICAgICAgIGFwcGVuZCgnfCcpLmFwcGVuZChjKS5hcHBlbmQoJ3wnKS5hcHBlbmQoZCkuCisgICAgICAgICAgICAgICAgYXBwZW5kKCd9JykKKyAgICAgICAgICAgICAgICAvLy5hcHBlbmQoZSkKKyAgICAgICAgICAgICAgICA7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhcHBlbmRUby5hcHBlbmQoIklOVkFMSUQgUG9zaXRpb24ge2NzPSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcy5jb250ZXh0U3RhcnQgKyAiLCBzPSIgKyBwb3Muc3RhcnQgKyAiLCBsPSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcy5saW1pdCArICIsIGNsPSIgKyBwb3MuY29udGV4dExpbWl0ICsgIn0gb24gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBhcHBlbmRUbzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZm9ybWF0SW5wdXQoUmVwbGFjZWFibGUgaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24gcG9zKSB7CisgICAgICAgIHJldHVybiBmb3JtYXRJbnB1dCgoUmVwbGFjZWFibGVTdHJpbmcpIGlucHV0LCBwb3MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG1ldGhvZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBmb3JtYXRJbnB1dChTdHJpbmdCdWZmZXIgYXBwZW5kVG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVwbGFjZWFibGUgaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24gcG9zKSB7IAorICAgICAgICByZXR1cm4gZm9ybWF0SW5wdXQoYXBwZW5kVG8sIChSZXBsYWNlYWJsZVN0cmluZykgaW5wdXQsIHBvcyk7CisgICAgfQorCisgICAgLyoqCisgICAgKiBTaW1pbGFyIHRvIFN0cmluZ0J1ZmZlci5nZXRDaGFycywgdmVyc2lvbiAxLjMuCisgICAgKiBTaW5jZSBKREsgMS4yIGltcGxlbWVudHMgU3RyaW5nQnVmZmVyLmdldENoYXJzIGRpZmZlcmVudGx5LCB0aGlzIG1ldGhvZCAKKyAgICAqIGlzIGhlcmUgdG8gcHJvdmlkZSBjb25zaXN0ZW50IHJlc3VsdHMuCisgICAgKiBUbyBiZSByZW1vdmVkIGFmdGVyIEpESyAxLjIgY2Vhc2VkIHRvIGJlIHRoZSByZWZlcmVuY2UgcGxhdGZvcm0uCisgICAgKiBAcGFyYW0gc3JjIHNvdXJjZSBzdHJpbmcgYnVmZmVyCisgICAgKiBAcGFyYW0gc3JjQmVnaW4gb2Zmc2V0IHRvIHRoZSBzdGFydCBvZiB0aGUgc3JjIHRvIHJldHJpZXZlIGZyb20KKyAgICAqIEBwYXJhbSBzcmNFbmQgb2Zmc2V0IHRvIHRoZSBlbmQgb2YgdGhlIHNyYyB0byByZXRyaWV2ZSBmcm9tCisgICAgKiBAcGFyYW0gZHN0IGNoYXIgYXJyYXkgdG8gc3RvcmUgdGhlIHJldHJpZXZlZCBjaGFycworICAgICogQHBhcmFtIGRzdEJlZ2luIG9mZnNldCB0byB0aGUgc3RhcnQgb2YgdGhlIGRlc3RpbmF0aW9uIGNoYXIgYXJyYXkgdG8gCisgICAgKiAgICAgICAgICAgICAgICAgc3RvcmUgdGhlIHJldHJpZXZlZCBjaGFycworICAgICogQGRyYWZ0IHNpbmNlIElDVTRKIDIuMAorICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIGdldENoYXJzKFN0cmluZ0J1ZmZlciBzcmMsIGludCBzcmNCZWdpbiwgaW50IHNyY0VuZCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgZHN0W10sIGludCBkc3RCZWdpbikgCisgICAgewkKKyAgICAgICAgaWYgKHNyY0JlZ2luID09IHNyY0VuZCkgewkgICAgCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0JCisgICAgICAgIHNyYy5nZXRDaGFycyhzcmNCZWdpbiwgc3JjRW5kLCBkc3QsIGRzdEJlZ2luKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQXBwZW5kIGEgY2hhcmFjdGVyIHRvIGEgcnVsZSB0aGF0IGlzIGJlaW5nIGJ1aWx0IHVwLiAgVG8gZmx1c2gKKyAgICAgKiB0aGUgcXVvdGVCdWYgdG8gcnVsZSwgbWFrZSBvbmUgZmluYWwgY2FsbCB3aXRoIGlzTGl0ZXJhbCA9PSB0cnVlLgorICAgICAqIElmIHRoZXJlIGlzIG5vIGZpbmFsIGNoYXJhY3RlciwgcGFzcyBpbiAoaW50KS0xIGFzIGMuCisgICAgICogQHBhcmFtIHJ1bGUgdGhlIHN0cmluZyB0byBhcHBlbmQgdGhlIGNoYXJhY3RlciB0bworICAgICAqIEBwYXJhbSBjIHRoZSBjaGFyYWN0ZXIgdG8gYXBwZW5kLCBvciAoaW50KS0xIGlmIG5vbmUuCisgICAgICogQHBhcmFtIGlzTGl0ZXJhbCBpZiB0cnVlLCB0aGVuIHRoZSBnaXZlbiBjaGFyYWN0ZXIgc2hvdWxkIG5vdCBiZQorICAgICAqIHF1b3RlZCBvciBlc2NhcGVkLiAgVXN1YWxseSB0aGlzIG1lYW5zIGl0IGlzIGEgc3ludGFjdGljIGVsZW1lbnQKKyAgICAgKiBzdWNoIGFzID4gb3IgJAorICAgICAqIEBwYXJhbSBlc2NhcGVVbnByaW50YWJsZSBpZiB0cnVlLCB0aGVuIHVucHJpbnRhYmxlIGNoYXJhY3RlcnMKKyAgICAgKiBzaG91bGQgYmUgZXNjYXBlZCB1c2luZyBlc2NhcGVVbnByaW50YWJsZSgpLiAgVGhlc2UgZXNjYXBlcyB3aWxsCisgICAgICogYXBwZWFyIG91dHNpZGUgb2YgcXVvdGVzLgorICAgICAqIEBwYXJhbSBxdW90ZUJ1ZiBhIGJ1ZmZlciB3aGljaCBpcyB1c2VkIHRvIGJ1aWxkIHVwIHF1b3RlZAorICAgICAqIHN1YnN0cmluZ3MuICBUaGUgY2FsbGVyIHNob3VsZCBpbml0aWFsbHkgc3VwcGx5IGFuIGVtcHR5IGJ1ZmZlciwKKyAgICAgKiBhbmQgdGhlcmVhZnRlciBzaG91bGQgbm90IG1vZGlmeSB0aGUgYnVmZmVyLiAgVGhlIGJ1ZmZlciBzaG91bGQgYmUKKyAgICAgKiBjbGVhcmVkIG91dCBieSwgYXQgdGhlIGVuZCwgY2FsbGluZyB0aGlzIG1ldGhvZCB3aXRoIGEgbGl0ZXJhbAorICAgICAqIGNoYXJhY3RlciAod2hpY2ggbWF5IGJlIC0xKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgYXBwZW5kVG9SdWxlKFN0cmluZ0J1ZmZlciBydWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGlzTGl0ZXJhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcXVvdGVCdWYpIHsKKyAgICAgICAgLy8gSWYgd2UgYXJlIGVzY2FwaW5nIHVucHJpbnRhYmxlcywgdGhlbiBlc2NhcGUgdGhlbSBvdXRzaWRlCisgICAgICAgIC8vIHF1b3Rlcy4gIFxcdSBhbmQgXFxVIGFyZSBub3QgcmVjb2duaXplZCB3aXRoaW4gcXVvdGVzLiAgVGhlIHNhbWUKKyAgICAgICAgLy8gbG9naWMgYXBwbGllcyB0byBsaXRlcmFscywgYnV0IGxpdGVyYWxzIGFyZSBuZXZlciBlc2NhcGVkLgorICAgICAgICBpZiAoaXNMaXRlcmFsIHx8CisgICAgICAgICAgICAoZXNjYXBlVW5wcmludGFibGUgJiYgVXRpbGl0eS5pc1VucHJpbnRhYmxlKGMpKSkgeworICAgICAgICAgICAgaWYgKHF1b3RlQnVmLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgIC8vIFdlIHByZWZlciBiYWNrc2xhc2ggQVBPU1RST1BIRSB0byBkb3VibGUgQVBPU1RST1BIRQorICAgICAgICAgICAgICAgIC8vIChtb3JlIHJlYWRhYmxlLCBsZXNzIHNpbWlsYXIgdG8gIikgc28gaWYgdGhlcmUgYXJlCisgICAgICAgICAgICAgICAgLy8gZG91YmxlIEFQT1NUUk9QSEVzIGF0IHRoZSBlbmRzLCB3ZSBwdWxsIHRoZW0gb3V0c2lkZQorICAgICAgICAgICAgICAgIC8vIG9mIHRoZSBxdW90ZS4KKworICAgICAgICAgICAgICAgIC8vIElmIHRoZSBmaXJzdCB0aGluZyBpbiB0aGUgcXVvdGVCdWYgaXMgQVBPU1RST1BIRQorICAgICAgICAgICAgICAgIC8vIChkb3VibGVkKSB0aGVuIHB1bGwgaXQgb3V0LgorICAgICAgICAgICAgICAgIHdoaWxlIChxdW90ZUJ1Zi5sZW5ndGgoKSA+PSAyICYmCisgICAgICAgICAgICAgICAgICAgICAgIHF1b3RlQnVmLmNoYXJBdCgwKSA9PSBBUE9TVFJPUEhFICYmCisgICAgICAgICAgICAgICAgICAgICAgIHF1b3RlQnVmLmNoYXJBdCgxKSA9PSBBUE9TVFJPUEhFKSB7CisgICAgICAgICAgICAgICAgICAgIHJ1bGUuYXBwZW5kKEJBQ0tTTEFTSCkuYXBwZW5kKEFQT1NUUk9QSEUpOworICAgICAgICAgICAgICAgICAgICBxdW90ZUJ1Zi5kZWxldGUoMCwgMik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIElmIHRoZSBsYXN0IHRoaW5nIGluIHRoZSBxdW90ZUJ1ZiBpcyBBUE9TVFJPUEhFCisgICAgICAgICAgICAgICAgLy8gKGRvdWJsZWQpIHRoZW4gcmVtb3ZlIGFuZCBjb3VudCBpdCBhbmQgYWRkIGl0IGFmdGVyLgorICAgICAgICAgICAgICAgIGludCB0cmFpbGluZ0NvdW50ID0gMDsKKyAgICAgICAgICAgICAgICB3aGlsZSAocXVvdGVCdWYubGVuZ3RoKCkgPj0gMiAmJgorICAgICAgICAgICAgICAgICAgICAgICBxdW90ZUJ1Zi5jaGFyQXQocXVvdGVCdWYubGVuZ3RoKCktMikgPT0gQVBPU1RST1BIRSAmJgorICAgICAgICAgICAgICAgICAgICAgICBxdW90ZUJ1Zi5jaGFyQXQocXVvdGVCdWYubGVuZ3RoKCktMSkgPT0gQVBPU1RST1BIRSkgeworICAgICAgICAgICAgICAgICAgICBxdW90ZUJ1Zi5zZXRMZW5ndGgocXVvdGVCdWYubGVuZ3RoKCktMik7CisgICAgICAgICAgICAgICAgICAgICsrdHJhaWxpbmdDb3VudDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHF1b3RlQnVmLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgICAgICBydWxlLmFwcGVuZChBUE9TVFJPUEhFKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gamRrIDEuMy4xIGRvZXMgbm90IGhhdmUgYXBwZW5kKFN0cmluZ0J1ZmZlcikgeWV0CisgICAgICAgICAgICAgICAgICAgIGlmKElDVURlYnVnLmlzSkRLMTRPckhpZ2hlcil7CisgICAgICAgICAgICAgICAgICAgICAgICBydWxlLmFwcGVuZChxdW90ZUJ1Zik7CisgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgcnVsZS5hcHBlbmQocXVvdGVCdWYudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcnVsZS5hcHBlbmQoQVBPU1RST1BIRSk7CisgICAgICAgICAgICAgICAgICAgIHF1b3RlQnVmLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgd2hpbGUgKHRyYWlsaW5nQ291bnQtLSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcnVsZS5hcHBlbmQoQkFDS1NMQVNIKS5hcHBlbmQoQVBPU1RST1BIRSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGMgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAvKiBTaW5jZSBzcGFjZXMgYXJlIGlnbm9yZWQgZHVyaW5nIHBhcnNpbmcsIHRoZXkgYXJlCisgICAgICAgICAgICAgICAgICogZW1pdHRlZCBvbmx5IGZvciByZWFkYWJpbGl0eS4gIFdlIGVtaXQgb25lIGhlcmUKKyAgICAgICAgICAgICAgICAgKiBvbmx5IGlmIHRoZXJlIGlzbid0IGFscmVhZHkgb25lIGF0IHRoZSBlbmQgb2YgdGhlCisgICAgICAgICAgICAgICAgICogcnVsZS4KKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnICcpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGxlbiA9IHJ1bGUubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChsZW4gPiAwICYmIHJ1bGUuY2hhckF0KGxlbi0xKSAhPSAnICcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGUuYXBwZW5kKCcgJyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFlc2NhcGVVbnByaW50YWJsZSB8fCAhVXRpbGl0eS5lc2NhcGVVbnByaW50YWJsZShydWxlLCBjKSkgeworICAgICAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQocnVsZSwgYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gRXNjYXBlICcgYW5kICdcJyBhbmQgZG9uJ3QgYmVnaW4gYSBxdW90ZSBqdXN0IGZvciB0aGVtCisgICAgICAgIGVsc2UgaWYgKHF1b3RlQnVmLmxlbmd0aCgpID09IDAgJiYKKyAgICAgICAgICAgICAgICAgKGMgPT0gQVBPU1RST1BIRSB8fCBjID09IEJBQ0tTTEFTSCkpIHsKKyAgICAgICAgICAgIHJ1bGUuYXBwZW5kKEJBQ0tTTEFTSCkuYXBwZW5kKChjaGFyKWMpOworICAgICAgICB9CisKKyAgICAgICAgLy8gU3BlY2lhbHMgKHByaW50YWJsZSBhc2NpaSB0aGF0IGlzbid0IFswLTlhLXpBLVpdKSBhbmQKKyAgICAgICAgLy8gd2hpdGVzcGFjZSBuZWVkIHF1b3RpbmcuICBBbHNvIGFwcGVuZCBzdHVmZiB0byBxdW90ZXMgaWYgd2UgYXJlCisgICAgICAgIC8vIGJ1aWxkaW5nIHVwIGEgcXVvdGVkIHN1YnN0cmluZyBhbHJlYWR5LgorICAgICAgICBlbHNlIGlmIChxdW90ZUJ1Zi5sZW5ndGgoKSA+IDAgfHwKKyAgICAgICAgICAgICAgICAgKGMgPj0gMHgwMDIxICYmIGMgPD0gMHgwMDdFICYmCisgICAgICAgICAgICAgICAgICAhKChjID49IDB4MDAzMC8qJzAnKi8gJiYgYyA8PSAweDAwMzkvKic5JyovKSB8fAorICAgICAgICAgICAgICAgICAgICAoYyA+PSAweDAwNDEvKidBJyovICYmIGMgPD0gMHgwMDVBLyonWicqLykgfHwKKyAgICAgICAgICAgICAgICAgICAgKGMgPj0gMHgwMDYxLyonYScqLyAmJiBjIDw9IDB4MDA3QS8qJ3onKi8pKSkgfHwKKyAgICAgICAgICAgICAgICAgVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoYykpIHsKKyAgICAgICAgICAgIFVURjE2LmFwcGVuZChxdW90ZUJ1ZiwgYyk7CisgICAgICAgICAgICAvLyBEb3VibGUgJyB3aXRoaW4gYSBxdW90ZQorICAgICAgICAgICAgaWYgKGMgPT0gQVBPU1RST1BIRSkgeworICAgICAgICAgICAgICAgIHF1b3RlQnVmLmFwcGVuZCgoY2hhciljKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIE90aGVyd2lzZSBqdXN0IGFwcGVuZAorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIFVURjE2LmFwcGVuZChydWxlLCBjKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEFwcGVuZCB0aGUgZ2l2ZW4gc3RyaW5nIHRvIHRoZSBydWxlLiAgQ2FsbHMgdGhlIHNpbmdsZS1jaGFyYWN0ZXIKKyAgICAgKiB2ZXJzaW9uIG9mIGFwcGVuZFRvUnVsZSBmb3IgZWFjaCBjaGFyYWN0ZXIuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIGFwcGVuZFRvUnVsZShTdHJpbmdCdWZmZXIgcnVsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpc0xpdGVyYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGVzY2FwZVVucHJpbnRhYmxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHF1b3RlQnVmKSB7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTx0ZXh0Lmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIC8vIE9rYXkgdG8gcHJvY2VzcyBpbiAxNi1iaXQgY29kZSB1bml0cyBoZXJlCisgICAgICAgICAgICBhcHBlbmRUb1J1bGUocnVsZSwgdGV4dC5jaGFyQXQoaSksIGlzTGl0ZXJhbCwgZXNjYXBlVW5wcmludGFibGUsIHF1b3RlQnVmKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEdpdmVuIGEgbWF0Y2hlciByZWZlcmVuY2UsIHdoaWNoIG1heSBiZSBudWxsLCBhcHBlbmQgaXRzCisgICAgICogcGF0dGVybiBhcyBhIGxpdGVyYWwgdG8gdGhlIGdpdmVuIHJ1bGUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIGFwcGVuZFRvUnVsZShTdHJpbmdCdWZmZXIgcnVsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVNYXRjaGVyIG1hdGNoZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGVzY2FwZVVucHJpbnRhYmxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHF1b3RlQnVmKSB7CisgICAgICAgIGlmIChtYXRjaGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGFwcGVuZFRvUnVsZShydWxlLCBtYXRjaGVyLnRvUGF0dGVybihlc2NhcGVVbnByaW50YWJsZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwgZXNjYXBlVW5wcmludGFibGUsIHF1b3RlQnVmKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb21wYXJlcyAyIHVuc2lnbmVkIGludGVnZXJzCisgICAgICogQHBhcmFtIHNvdXJjZSAzMiBiaXQgdW5zaWduZWQgaW50ZWdlcgorICAgICAqIEBwYXJhbSB0YXJnZXQgMzIgYml0IHVuc2lnbmVkIGludGVnZXIKKyAgICAgKiBAcmV0dXJuIDAgaWYgZXF1YWxzLCAxIGlmIHNvdXJjZSBpcyBncmVhdGVyIHRoYW4gdGFyZ2V0IGFuZCAtMSAKKyAgICAgKiAgICAgICAgIG90aGVyd2lzZQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IGNvbXBhcmVVbnNpZ25lZChpbnQgc291cmNlLCBpbnQgdGFyZ2V0KSAKKyAgICB7CisgICAgICAgIGlmIChzb3VyY2UgPT0gdGFyZ2V0KSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICBpZiAoc291cmNlID49IDApIHsKKyAgICAgICAgICAgIGlmIChzb3VyY2UgPCB0YXJnZXQgfHwgdGFyZ2V0IDwgMCkgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0gCisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoc291cmNlIDwgdGFyZ2V0ICYmIHRhcmdldCA8IDApIHsKKyAgICAgICAgICAgIC8vIHNvdXJjZSA8IDAsIHNvCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9CcmVha0l0ZXJhdG9yUnVsZXMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQnJlYWtJdGVyYXRvclJ1bGVzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzc1ODlmYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQnJlYWtJdGVyYXRvclJ1bGVzLmphdmEKQEAgLTAsMCArMSwzOTEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQnJlYWtJdGVyYXRvclJ1bGVzLmphdmEsdiAkCisgKiAkRGF0ZTogMjAwMi8wMy8wMSAwMjozNzo0NyAkCisgKiAkUmV2aXNpb246IDEuMTAgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKKy8qKgorICogRGVmYXVsdCBicmVhay1pdGVyYXRvciBydWxlcy4gIFRoZXNlIHJ1bGVzIGFyZSBtb3JlIG9yIGxlc3MgZ2VuZXJhbCBmb3IKKyAqIGFsbCBsb2NhbGVzLCBhbHRob3VnaCB0aGVyZSBhcmUgcHJvYmFibHkgYSBmZXcgd2UncmUgbWlzc2luZy4gIFRoZQorICogYmVoYXZpb3IgY3VycmVudGx5IG1pbWljcyB0aGUgYmVoYXZpb3Igb2YgQnJlYWtJdGVyYXRvciBpbiBKREsgMS4yLgorICogVGhlcmUgYXJlIGtub3duIGRlZmljaWVuY2llcyBpbiB0aGlzIGJlaGF2aW9yLCBpbmNsdWRpbmcgdGhlIGZhY3QgdGhhdAorICogdGhlIGxvZ2ljIGZvciBoYW5kbGluZyBDSksgY2hhcmFjdGVycyB3b3JrcyBmb3IgSmFwYW5lc2UgYnV0IG5vdCBmb3IKKyAqIENoaW5lc2UsIGFuZCB0aGF0IHdlIGRvbid0IGN1cnJlbnRseSBoYXZlIGFuIGFwcHJvcHJpYXRlIGxvY2FsZSBmb3IKKyAqIFRoYWkuICBUaGUgcmVzb3VyY2VzIHdpbGwgZXZlbnR1YWxseSBiZSB1cGRhdGVkIHRvIGZpeCB0aGVzZSBwcm9ibGVtcy4KKyAqLworCisgLyogTW9kaWZpZWQgZm9yIEhpbmRpIDMvMS85OS4gKi8KKworcHVibGljIGNsYXNzIEJyZWFrSXRlcmF0b3JSdWxlcyBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgcHVibGljIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICAgICAgIHJldHVybiBjb250ZW50czsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0W11bXSBjb250ZW50cyA9IHsKKyAgICAgICAgLy8gQnJlYWtJdGVyYXRvckNsYXNzZXMgbGlzdHMgdGhlIGNsYXNzIG5hbWVzIHRvIGluc3RhbnRpYXRlIGZvciBlYWNoCisgICAgICAgIC8vIGJ1aWx0LWluIHR5cGUgb2YgQnJlYWtJdGVyYXRvcgorICAgICAgICB7ICJCcmVha0l0ZXJhdG9yQ2xhc3NlcyIsCisgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAiUnVsZUJhc2VkQnJlYWtJdGVyYXRvciIsICAgICAvLyBjaGFyYWN0ZXItYnJlYWsgaXRlcmF0b3IgY2xhc3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIiwgICAgIC8vIHdvcmQtYnJlYWsgaXRlcmF0b3IgY2xhc3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIiwgICAgIC8vIGxpbmUtYnJlYWsgaXRlcmF0b3IgY2xhc3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIiwgICAgIC8vIHNlbnRlbmNlLWJyZWFrIGl0ZXJhdG9yIGNsYXNzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiUnVsZUJhc2VkQnJlYWtJdGVyYXRvciJ9ICAgICAvLyBUaXRsZS1DYXNlIGJyZWFrIGl0ZXJhdG9yIGNsYXNzCisgICAgICAgIH0sCisKKyAgICAgICAgLy8gcnVsZXMgZGVzY3JpYmluZyBob3cgdG8gYnJlYWsgYmV0d2VlbiBsb2dpY2FsIGNoYXJhY3RlcnMKKyAgICAgICAgeyAiQ2hhcmFjdGVyQnJlYWtSdWxlcyIsCisgICAgICAgICAgICAvLyBpZ25vcmUgbm9uLXNwYWNpbmcgbWFya3MgYW5kIGVuY2xvc2luZyBtYXJrcyAoc2luY2Ugd2UgbmV2ZXIKKyAgICAgICAgICAgIC8vIHB1dCBhIGJyZWFrIGJlZm9yZSBpZ25vcmUgY2hhcmFjdGVycywgdGhpcyBrZWVwcyBjb21iaW5pbmcKKyAgICAgICAgICAgIC8vIGFjY2VudHMgd2l0aCB0aGUgYmFzZSBjaGFyYWN0ZXJzIHRoZXkgbW9kaWZ5KQorICAgICAgICAgICAgLy8gRklYTUU6IHRoZSB2aXJhbWEgdGhpbmcgaXMgcHJvYmFibHkgYSBoYWNrLi4uCisgICAgICAgICAgICAgICIkZGV2YVZpcmFtYT1bXHUwOTRkXTsiCisgICAgICAgICAgICArICIkX2lnbm9yZV89W1tbOk1uOl0tJGRldmFWaXJhbWFdWzpNZTpdXTsiCisKKyAgICAgICAgICAgIC8vIG90aGVyIGNhdGVnb3J5IGRlZmluaXRpb25zCisgICAgICAgICAgICArICIkY2hvc2Vvbmc9W1x1MTEwMC1cdTExNWZdOyIKKyAgICAgICAgICAgICsgIiRqdW5nc2Vvbmc9W1x1MTE2MC1cdTExYTddOyIKKyAgICAgICAgICAgICsgIiRqb25nc2Vvbmc9W1x1MTFhOC1cdTExZmZdOyIKKyAgICAgICAgICAgICsgIiRzdXJyX2hpPVtcdWQ4MDAtXHVkYmZmXTsiCisgICAgICAgICAgICArICIkc3Vycl9sbz1bXHVkYzAwLVx1ZGZmZl07IgorCisgICAgICAgICAgICAvLyBicmVhayBhZnRlciBldmVyeSBjaGFyYWN0ZXIsIGV4Y2VwdCBhcyBmb2xsb3dzOgorICAgICAgICAgICAgKyAiLjsiCisKKyAgICAgICAgICAgIC8vIGtlZXAgQ1JMRiBzZXF1ZW5jZXMgdG9nZXRoZXIKKyAgICAgICAgICAgICsgIlxyXG47IgorCisgICAgICAgICAgICAvLyBrZWVwIHN1cnJvZ2F0ZSBwYWlycyB0b2dldGhlcgorICAgICAgICAgICAgKyAiJHN1cnJfaGkkc3Vycl9sbzsiCisKKyAgICAgICAgICAgIC8vIGtlZXAgSGFuZ3VsIHN5bGxhYmxlcyBzcGVsbGVkIG91dCB1c2luZyBjb25qb2luaW5nIGphbW8gdG9nZXRoZXIKKyAgICAgICAgICAgICsgIiRjaG9zZW9uZyokanVuZ3Nlb25nKiRqb25nc2VvbmcqOyIKKworICAgICAgICAgICAgLy8gcmV2aXNlZCBEZXZhbmFnYXJpIHN1cHBvcnQgLSBmdWxsIHN5bGxhYmxlcworICAgICAgICAgICAgLy8gc2ltcGxpZmllZCBieSBhbGxvd2luZyBzb21lIG5vbnNlbnNlIHN5bGxhYmxlcworICAgICAgICAgICAgLy8gRklYTUU6IG51a3RhLCBub24tc3BhY2luZyBtYXRyYXMsIGFuZCB0aGUgbW9kaWZpZXJzCisgICAgICAgICAgICAvLyBhcmUgYWxsIGlnbm9yYWJsZSwgc28gdGhleSBkb24ndCBuZWVkIHRvIGJlIG1lbnRpb25lZAorICAgICAgICAgICAgLy8gaGVyZS4uLiAoYnV0IHRoZSBydWxlcyByZWFkIGJldHRlciBpZiB0aGV5IGFyZS4uLikKKyAgICAgICAgICAgICsgIiRkZXZhTnVrdGE9W1x1MDkzY107IgorICAgICAgICAgICAgKyAiJGRldmFWb3dlbD1bXHUwOTA1LVx1MDkxNF07IgorICAgICAgICAgICAgKyAiJGRldmFNYXRyYT1bXHUwOTNlLVx1MDk0Y1x1MDk2Mlx1MDk2M107IgorICAgICAgICAgICAgKyAiJGRldmFDb25zb25hbnQ9W1x1MDkxNS1cdTA5MzlcdTA5NTgtXHUwOTVmXTsiCisgICAgICAgICAgICArICIkZGV2YU1vZGlmaWVyPVtcdTA5MDEtXHUwOTAzXHUwOTUxLVx1MDk1NF07IgorICAgICAgICAgICAgKyAiJHp3bmo9W1x1MjAwY107IgorICAgICAgICAgICAgKyAiJHp3aj1bXHUyMDBkXTsiCisKKyAgICAgICAgICAgIC8vIGNvbnNvbmFudCBmb2xsb3dlZCBvcHRpb25hbGx5IGJ5IGEgbnVrdGEKKyAgICAgICAgICAgICsgIiRkZXZhQ049KCRkZXZhQ29uc29uYW50JGRldmFOdWt0YT8pOyIKKworICAgICAgICAgICAgLy8gYSB2aXJhbWEgZm9sbG93ZWQgYnkgYW4gb3B0aW9uYWwgendqIG9yIHp3bmoKKyAgICAgICAgICAgICsgIiRkZXZhSm9pbj0oJGRldmFWaXJhbWFbJHp3aiR6d25qXT8pOyIKKworICAgICAgICAgICAgLy8gYSBzeWxsYWJsZSB3aXRoIGF0IGxlYXN0IG9uZSBjb25zb25hbnQKKyAgICAgICAgICAgICsgIigkZGV2YUNOJGRldmFKb2luKSokZGV2YUNOKCRkZXZhSm9pbnwkZGV2YU1hdHJhPyRkZXZhTW9kaWZpZXIqKTsiCisKKyAgICAgICAgICAgIC8vIGEgc3lsbGFibGUgd2l0aG91dCBjb25zb25hbnRzCisgICAgICAgICAgICArICIkZGV2YVZvd2VsJGRldmFNb2RpZmllcio7IgorICAgICAgICB9LAorCisgICAgICAgIC8vIGRlZmF1bHQgcnVsZXMgZm9yIGZpbmRpbmcgd29yZCBib3VuZGFyaWVzCisgICAgICAgIHsgIldvcmRCcmVha1J1bGVzIiwKKworICAgICAgICAgICAgLy8gU3Vycm9nYXRlcy4gIFVudGlsIGJldHRlciBzdXBwb3J0IGlzIGF2YWlsYWJsZSwgaWdub3JlIGxvdyBzdXJyb2dhdGVzCisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgYW5kIGNsYXNzaWZ5IGhpZ2ggc3Vycm9nYXRlcyBhY2NvcmRpbmcgdG8gdGhlIGNoYXJhY3RlcnMgd2l0aGluIHRoZSBibG9jay4KKyAgICAgICAgICAgICAgIiRzdXJyX2xvPVtcdWRjMDAtXHVkZmZmXTsiCisgICAgICAgICAgICArICIkc3Vycl9oaV9sZXQ9W1x1ZDgwMFx1ZDgwMVx1ZDgzNFx1ZDgzNV07IiAgIC8vIEhpIFN1cnJvZ2F0ZXMgZm9yIE9sZCBJdGFsaWMsIEdvdGhpYywgRGVzZXJldCwgTXVzaWMsIE1hdGgKKyAgICAgICAgICAgICsgIiRzdXJyX2hpX2lkZW89W1x1ZDg0MC1cdWQ4ODBdOyIgICAgICAgICAgICAgLy8gSGkgU3Vycm9nYXRlcyBmb3IgQ0pLCisJCQkrICIkc3Vycl9oaV90YWc9W1x1ZGI0MF07IiAgICAgICAgICAgICAgICAgICAgIC8vIEhpIFN1cnJvZ2F0ZXMgZm9yIFRhZ3MKKyAgICAgICAgICAgICsgIiRzdXJyX2hpX3B1YT1bXHVkYjgwLVx1ZGJmZl07IiAgICAgICAgICAgICAgLy8gSGkgU3Vycm9nYXRlcyBmb3IgUHJpdmF0ZSBVc2UuCisKKyAgICAgICAgICAgIC8vIFByaXZhdGUgVXNlIEFyZWEuICBUcmVhdCBsaWtlIGlkZW9ncmFwaHMuCisJCQkrICIkcHVhPVtcdWUwMDAtXHVmOGZmJHN1cnJfaGlfcHVhXTsiCisKKyAgICAgICAgICAgIC8vIGlnbm9yZSBub24tc3BhY2luZyBtYXJrcywgZW5jbG9zaW5nIG1hcmtzLCBhbmQgZm9ybWF0IGNoYXJhY3RlcnMsCisgICAgICAgICAgICAvLyBhbGwgb2Ygd2hpY2ggc2hvdWxkIG5vdCBpbmZsdWVuY2UgdGhlIGFsZ29yaXRobQorICAgICAgICAgICAgKyAiJF9pZ25vcmVfPVtbOk1uOl1bOk1lOl1bOkNmOl0kc3Vycl9sbyRzdXJyX2hpX3RhZ107IgorCisgICAgICAgICAgICAvLyBIaW5kaSBwaHJhc2Ugc2VwYXJhdG9yLCBrYW5qaSwga2F0YWthbmEsIGhpcmFnYW5hLCBDSksgZGlhY3JpdGljYWxzLAorICAgICAgICAgICAgLy8gb3RoZXIgbGV0dGVycywgYW5kIGRpZ2l0cworICAgICAgICAgICAgKyAiJGRhbmRhPVtcdTA5NjRcdTA5NjVdOyIKKyAgICAgICAgICAgICsgIiRrYW5qaT1bXHUzMDA1XHUzNDAwLVx1NGRiNVx1NGUwMC1cdTlmYTVcdWY5MDAtXHVmYTZhJHN1cnJfaGlfaWRlbyRwdWFdOyIKKyAgICAgICAgICAgICsgIiRrYXRhPVtcdTMwOTktXHUzMDljXHUzMGExLVx1MzBmZV07IgorICAgICAgICAgICAgKyAiJGhpcmE9W1x1MzA0MS1cdTMwOWVcdTMwZmNdOyIKKyAgICAgICAgICAgICsgIiRsZXQ9W1tbOkw6XVs6TWM6XSRzdXJyX2hpX2xldF0tWyRrYW5qaSRrYXRhJGhpcmFdXTsiCisgICAgICAgICAgICArICIkZGd0PVs6TjpdOyIKKworICAgICAgICAgICAgLy8gcHVuY3R1YXRpb24gdGhhdCBjYW4gb2NjdXIgaW4gdGhlIG1pZGRsZSBvZiBhIHdvcmQ6IGN1cnJlbnRseQorICAgICAgICAgICAgLy8gZGFzaGVzLCBhcG9zdHJvcGhlcywgcXVvdGF0aW9uIG1hcmtzLCBhbmQgcGVyaW9kcworICAgICAgICAgICAgKyAiJG1pZF93b3JkPVtbOlBkOl1cdTAwYWRcdTIwMjdcXFwiXFxcJ1xcLl07IgorCisgICAgICAgICAgICAvLyBwdW5jdHVhdGlvbiB0aGF0IGNhbiBvY2N1ciBpbiB0aGUgbWlkZGxlIG9mIGEgbnVtYmVyOiBjdXJyZW50bHkKKyAgICAgICAgICAgIC8vIGFwb3N0cm9waGVzLCBxb3V0YXRpb24gbWFya3MsIHBlcmlvZHMsIGNvbW1hcywgYW5kIHRoZSBBcmFiaWMKKyAgICAgICAgICAgIC8vIGRlY2ltYWwgcG9pbnQKKyAgICAgICAgICAgICsgIiRtaWRfbnVtPVtcXFwiXFxcJ1xcLFx1MDY2YlxcLl07IgorCisgICAgICAgICAgICAvLyBwdW5jdHVhdGlvbiB0aGF0IGNhbiBvY2N1ciBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgbnVtYmVyOiBjdXJyZW50bHkKKyAgICAgICAgICAgIC8vIHRoZSBwZXJpb2QsIHRoZSBudW1iZXIgc2lnbiwgYW5kIGFsbCBjdXJyZW5jeSBzeW1ib2xzIGV4Y2VwdCB0aGUgY2VudHMgc2lnbgorICAgICAgICAgICAgKyAiJHByZV9udW09W1tbOlNjOl0tW1x1MDBhMl1dXFwjXFwuXTsiCisKKyAgICAgICAgICAgIC8vIHB1bmN0dWF0aW9uIHRoYXQgY2FuIG9jY3VyIGF0IHRoZSBlbmQgb2YgYSBudW1iZXI6IGN1cnJlbnRseQorICAgICAgICAgICAgLy8gdGhlIHBlcmNlbnQsIHBlci10aG91c2FuZCwgcGVyLXRlbi10aG91c2FuZCwgYW5kIEFyYWJpYyBwZXJjZW50CisgICAgICAgICAgICAvLyBzaWducywgdGhlIGNlbnRzIHNpZ24sIGFuZCB0aGUgYW1wZXJzYW5kCisgICAgICAgICAgICArICIkcG9zdF9udW09W1xcJVxcJlx1MDBhMlx1MDY2YVx1MjAzMFx1MjAzMV07IgorCisgICAgICAgICAgICAvLyBsaW5lIHNlcGFyYXRvcnM6IGN1cnJlbnRseSBMRiwgRkYsIFBTLCBhbmQgTFMKKyAgICAgICAgICAgICsgIiRscz1bXG5cdTAwMGNcdTIwMjhcdTIwMjldOyIKKworICAgICAgICAgICAgLy8gd2hpdGVzcGFjZTogYWxsIHNwYWNlIHNlcGFyYXRvcnMgYW5kIHRoZSB0YWIgY2hhcmFjdGVyCisgICAgICAgICAgICArICIkd3M9W1s6WnM6XVx0XTsiCisKKyAgICAgICAgICAgIC8vIGEgd29yZCBpcyBhIHNlcXVlbmNlIG9mIGxldHRlcnMgdGhhdCBtYXkgY29udGFpbiBpbnRlcm5hbAorICAgICAgICAgICAgLy8gcHVuY3R1YXRpb24sIGFzIGxvbmcgYXMgaXQgYmVnaW5zIGFuZCBlbmRzIHdpdGggYSBsZXR0ZXIgYW5kCisgICAgICAgICAgICAvLyBuZXZlciBjb250YWlucyB0d28gcHVuY3R1YXRpb24gbWFya3MgaW4gYSByb3cKKyAgICAgICAgICAgICsgIiR3b3JkPSgkbGV0KygkbWlkX3dvcmQkbGV0KykqJGRhbmRhPyk7IgorCisgICAgICAgICAgICAvLyBhIG51bWJlciBpcyBhIHNlcXVlbmNlIG9mIGRpZ2l0cyB0aGF0IG1heSBjb250YWluIGludGVybmFsCisgICAgICAgICAgICAvLyBwdW5jdHVhdGlvbiwgYXMgbG9uZyBhcyBpdCBiZWdpbnMgYW5kIGVuZHMgd2l0aCBhIGRpZ2l0IGFuZAorICAgICAgICAgICAgLy8gbmV2ZXIgY29udGFpbnMgdHdvIHB1bmN0dWF0aW9uIG1hcmtzIGluIGEgcm93LgorICAgICAgICAgICAgKyAiJG51bWJlcj0oJGRndCsoJG1pZF9udW0kZGd0KykqKTsiCisKKyAgICAgICAgICAgIC8vIGJyZWFrIGFmdGVyIGV2ZXJ5IGNoYXJhY3Rlciwgd2l0aCB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbnMKKyAgICAgICAgICAgIC8vICh0aGlzIHdpbGwgY2F1c2UgcHVuY3R1YXRpb24gbWFya3MgdGhhdCBhcmVuJ3QgY29uc2lkZXJlZAorICAgICAgICAgICAgLy8gcGFydCBvZiB3b3JkcyBvciBudW1iZXJzIHRvIGJlIHRyZWF0ZWQgYXMgd29yZHMgdW50byB0aGVtc2VsdmVzKQorICAgICAgICAgICAgKyAiLjsiCisKKyAgICAgICAgICAgIC8vIGtlZXAgdG9nZXRoZXIgYW55IHNlcXVlbmNlIG9mIGNvbnRpZ3VvdXMgd29yZHMgYW5kIG51bWJlcnMKKyAgICAgICAgICAgIC8vIChpbmNsdWRpbmcganVzdCBvbmUgb2YgZWl0aGVyKSwgcGx1cyBhbiBvcHRpb25hbCB0cmFpbGluZworICAgICAgICAgICAgLy8gbnVtYmVyLXN1ZmZpeCBjaGFyYWN0ZXIKKyAgICAgICAgICAgICsgIiR3b3JkPygkbnVtYmVyJHdvcmQpKigkbnVtYmVyJHBvc3RfbnVtPyk/OyIKKworICAgICAgICAgICAgLy8ga2VlcCB0b2dldGhlciBhbmQgc2VxdWVuY2Ugb2YgY29udGlndW91cyB3b3JkcyBhbmQgbnVtYmVycworICAgICAgICAgICAgLy8gdGhhdCBzdGFydHMgd2l0aCBhIG51bWJlci1wcmVmaXggY2hhcmFjdGVyIGFuZCBhIG51bWJlciwKKyAgICAgICAgICAgIC8vIGFuZCBtYXkgZW5kIHdpdGggYSBudW1iZXItc3VmZml4IGNoYXJhY3RlcgorICAgICAgICAgICAgKyAiJHByZV9udW0oJG51bWJlciR3b3JkKSooJG51bWJlciRwb3N0X251bT8pPzsiCisKKyAgICAgICAgICAgIC8vIGtlZXAgdG9nZXRoZXIgcnVucyBvZiB3aGl0ZXNwYWNlIChvcHRpb25hbGx5IHdpdGggYSBzaW5nbGUgdHJhaWxpbmcKKyAgICAgICAgICAgIC8vIGxpbmUgc2VwYXJhdG9yIG9yIENSTEYgc2VxdWVuY2UpCisgICAgICAgICAgICArICIkd3MqXHI/JGxzPzsiCisKKyAgICAgICAgICAgIC8vIGtlZXAgdG9nZXRoZXIgcnVucyBvZiBLYXRha2FuYQorICAgICAgICAgICAgKyAiJGthdGEqOyIKKworICAgICAgICAgICAgLy8ga2VlcCB0b2dldGhlciBydW5zIG9mIEhpcmFnYW5hCisgICAgICAgICAgICArICIkaGlyYSo7IgorCisgICAgICAgICAgICAvLyBrZWVwIHRvZ2V0aGVyIHJ1bnMgb2YgS2FuamkKKyAgICAgICAgICAgICsgIiRrYW5qaSo7IgorICAgICAgICB9LAorCisgICAgICAgIC8vIGRlZmF1bHQgcnVsZXMgZm9yIGRldGVybWluaW5nIGxlZ2FsIGxpbmUtYnJlYWtpbmcgcG9zaXRpb25zCisgICAgICAgIHsgIkxpbmVCcmVha1J1bGVzIiwKKyAgICAgICAgICAgIC8vIFN1cnJvZ2F0ZXMuICBVbnRpbCBiZXR0ZXIgc3VwcG9ydCBpcyBhdmFpbGFibGUsIGlnbm9yZSBsb3cgc3Vycm9nYXRlcworICAgICAgICAgICAgLy8gICAgICAgICAgICAgIGFuZCBjbGFzc2lmeSBoaWdoIHN1cnJvZ2F0ZXMgYWNjb3JkaW5nIHRvIHRoZSBjaGFyYWN0ZXJzIHdpdGhpbiB0aGUgYmxvY2suCisgICAgICAgICAgICAgICIkc3Vycl9sbz1bXHVkYzAwLVx1ZGZmZl07IgorICAgICAgICAgICAgKyAiJHN1cnJfaGlfbGV0PVtcdWQ4MDBcdWQ4MDFcdWQ4MzRcdWQ4MzVdOyIgICAvLyBIaSBTdXJyb2dhdGVzIGZvciBPbGQgSXRhbGljLCBHb3RoaWMsIERlc2VyZXQsIE11c2ljLCBNYXRoCisgICAgICAgICAgICArICIkc3Vycl9oaV9pZGVvPVtcdWQ4NDAtXHVkODgwXTsiICAgICAgICAgICAgIC8vIEhpIFN1cnJvZ2F0ZXMgZm9yIENKSworCQkJKyAiJHN1cnJfaGlfdGFnPVtcdWRiNDBdOyIgICAgICAgICAgICAgICAgICAgICAvLyBIaSBTdXJyb2dhdGVzIGZvciBUYWdzCisgICAgICAgICAgICArICIkc3Vycl9oaV9wdWE9W1x1ZGI4MC1cdWRiZmZdOyIgICAgICAgICAgICAgIC8vIEhpIFN1cnJvZ2F0ZXMgZm9yIFByaXZhdGUgVXNlLgorCisgICAgICAgICAgICAvLyBQcml2YXRlIFVzZSBBcmVhLiAgVHJlYXQgbGlrZSBpZGVvZ3JhcGhzLgorIAkJCSsgIiRwdWE9W1x1ZTAwMC1cdWY4ZmYkc3Vycl9oaV9wdWFdOyIKKworICAgICAgICAgICAgLy8gaWdub3JlIG5vbi1zcGFjaW5nIG1hcmtzLCBlbmNsb3NpbmcgbWFya3MsIGFuZCBmb3JtYXQgY2hhcmFjdGVycworICAgICAgICAgICAgKyAiJF9pZ25vcmVfPVtbOk1uOl1bOk1lOl1bOkNmOl0kc3Vycl9sbyRzdXJyX2hpX3RhZ107IgorCisgICAgICAgICAgICAvLyBIaW5kaSBwaHJhc2Ugc2VwYXJhdG9ycworICAgICAgICAgICAgKyAiJGRhbmRhPVtcdTA5NjRcdTA5NjVdOyIKKworICAgICAgICAgICAgLy8gY2hhcmFjdGVycyB0aGF0IGFsd2F5cyBjYXVzZSBhIGJyZWFrOiBFVFgsIHRhYiwgTEYsIEZGLCBMUywgYW5kIFBTCisgICAgICAgICAgICArICIkYnJlYWs9W1x1MDAwM1x0XG5cZlx1MjAyOFx1MjAyOV07IgorCisgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzIHRoYXQgYWx3YXlzIHByZXZlbnQgYSBicmVhazogdGhlIG5vbi1icmVha2luZyBzcGFjZQorICAgICAgICAgICAgLy8gYW5kIHNpbWlsYXIgY2hhcmFjdGVycworICAgICAgICAgICAgKyAiJG5ic3A9W1x1MDBhMFx1MjAwN1x1MjAxMVx1ZmVmZl07IgorCisgICAgICAgICAgICAvLyB3aGl0ZXNwYWNlOiBzcGFjZSBzZXBhcmF0b3JzIGFuZCBjb250cm9sIGNoYXJhY3RlcnMsIGV4Y2VwdCBmb3IKKyAgICAgICAgICAgIC8vIENSIGFuZCB0aGUgb3RoZXIgY2hhcmFjdGVycyBtZW50aW9uZWQgYWJvdmUKKyAgICAgICAgICAgICsgIiRzcGFjZT1bW1s6WnM6XVs6Q2M6XV0tWyRuYnNwJGJyZWFrXHJdXTsiCisKKyAgICAgICAgICAgIC8vIGRhc2hlczogZGFzaCBwdW5jdHVhdGlvbiBhbmQgdGhlIGRpc2NyZXRpb25hcnkgaHlwaGVuLCBleGNlcHQgZm9yCisgICAgICAgICAgICAvLyBub24tYnJlYWtpbmcgaHlwaGVucworICAgICAgICAgICAgKyAiJGRhc2g9W1tbOlBkOl1cdTAwYWRdLVskbmJzcF1dOyIKKworICAgICAgICAgICAgLy8gY2hhcmFjdGVycyB0aGF0IHN0aWNrIHRvIGEgd29yZCBpZiB0aGV5IHByZWNlZGUgaXQ6IGN1cnJlbmN5IHN5bWJvbHMKKyAgICAgICAgICAgIC8vIChleGNlcHQgdGhlIGNlbnRzIHNpZ24pIGFuZCBzdGFydGluZyBwdW5jdHVhdGlvbgorICAgICAgICAgICAgKyAiJHByZV93b3JkPVtbWzpTYzpdLVtcdTAwYTJdXVs6UHM6XVs6UGk6XVxcXCJcXFwnXTsiCisKKyAgICAgICAgICAgIC8vIGNoYXJhY3RlcnMgdGhhdCBzdGljayB0byBhIHdvcmQgaWYgdGhleSBmb2xsb3cgaXQ6IGVuZGluZyBwdW5jdHVhdGlvbiwKKyAgICAgICAgICAgIC8vIG90aGVyIHB1bmN0dWF0aW9uIHRoYXQgdXN1YWxseSBvY2N1cnMgYXQgdGhlIGVuZCBvZiBhIHNlbnRlbmNlLAorICAgICAgICAgICAgLy8gc21hbGwgS2FuYSBjaGFyYWN0ZXJzLCBzb21lIENKSyBkaWFjcml0aWNzLCBldGMuCisgICAgICAgICAgICArICIkcG9zdF93b3JkPVtbOlBlOl1bOlBmOl1cXCFcXFwiXFxcJ1xcJVxcLlxcLFxcOlxcO1xcP1x1MDBhMlx1MDBiMFx1MDY2YVx1MjAzMC1cdTIwMzQiCisgICAgICAgICAgICAgICAgICAgICsgIlx1MjEwM1x1MjEwNVx1MjEwOVx1MzAwMVx1MzAwMlx1MzAwNVx1MzA0MVx1MzA0M1x1MzA0NVx1MzA0N1x1MzA0OVx1MzA2MyIKKyAgICAgICAgICAgICAgICAgICAgKyAiXHUzMDgzXHUzMDg1XHUzMDg3XHUzMDhlXHUzMDk5LVx1MzA5ZVx1MzBhMVx1MzBhM1x1MzBhNVx1MzBhN1x1MzBhOSIKKyAgICAgICAgICAgICAgICAgICAgKyAiXHUzMGMzXHUzMGUzXHUzMGU1XHUzMGU3XHUzMGVlXHUzMGY1XHUzMGY2XHUzMGZjLVx1MzBmZVx1ZmYwMVx1ZmYwYyIKKyAgICAgICAgICAgICAgICAgICAgKyAiXHVmZjBlXHVmZjFmXTsiCisKKyAgICAgICAgICAgIC8vIEthbmppOiBhY3R1YWxseSBpbmNsdWRlcyBib3RoIEthbmppIGFuZCBLYW5hLCBleGNlcHQgZm9yIHNtYWxsIEthbmEgYW5kCisgICAgICAgICAgICAvLyBDSksgZGlhY3JpdGljcworICAgICAgICAgICAgKyAiJGthbmppPVtbJHN1cnJfaGlfaWRlbyRwdWFcdTM0MDAtXHU0ZGI1XHU0ZTAwLVx1OWZhNVx1ZjkwMC1cdWZhNmFcdTMwNDEtXHUzMDk0XHUzMGExLVx1MzBmYV0tWyRwb3N0X3dvcmQkX2lnbm9yZV9dXTsiCisKKyAgICAgICAgICAgIC8vIGRpZ2l0cworICAgICAgICAgICAgKyAiJGRpZ2l0PVtbOk5kOl1bOk5vOl1dOyIKKworICAgICAgICAgICAgLy8gcHVuY3R1YXRpb24gdGhhdCBjYW4gb2NjdXIgaW4gdGhlIG1pZGRsZSBvZiBhIG51bWJlcjogcGVyaW9kcyBhbmQgY29tbWFzCisgICAgICAgICAgICArICIkbWlkX251bT1bXFwuXFwsXTsiCisKKyAgICAgICAgICAgIC8vIGV2ZXJ5dGhpbmcgbm90IG1lbnRpb25lZCBhYm92ZSwgcGx1cyB0aGUgcXVvdGUgbWFya3MgKHdoaWNoIGFyZSBib3RoCisgICAgICAgICAgICAvLyA8cHJlLXdvcmQ+LCA8cG9zdC13b3JkPiwgYW5kIDxjaGFyPikKKyAgICAgICAgICAgICsgIiRjaGFyPVteJGJyZWFrJHNwYWNlJGRhc2gka2FuamkkbmJzcCRfaWdub3JlXyRwcmVfd29yZCRwb3N0X3dvcmQkbWlkX251bSRkYW5kYVxyXFxcIlxcXCddOyIKKworICAgICAgICAgICAgLy8gYSAibnVtYmVyIiBpcyBhIHJ1biBvZiBwcmVmaXggY2hhcmFjdGVycyBhbmQgZGFzaGVzLCBmb2xsb3dlZCBieSBvbmUgb3IKKyAgICAgICAgICAgIC8vIG1vcmUgZGlnaXRzIHdpdGggaXNvbGF0ZWQgbnVtYmVyLXB1bmN0dWF0aW9uIGNoYXJhY3RlcnMgaW50ZXJzcGVyc2VkCisgICAgICAgICAgICArICIkbnVtYmVyPShbJHByZV93b3JkJGRhc2hdKiRkaWdpdCsoJG1pZF9udW0kZGlnaXQrKSopOyIKKworICAgICAgICAgICAgLy8gdGhlIGJhc2ljIGNvcmUgb2YgYSB3b3JkIGNhbiBiZSBlaXRoZXIgYSAibnVtYmVyIiBhcyBkZWZpbmVkIGFib3ZlLCBhIHNpbmdsZQorICAgICAgICAgICAgLy8gIkthbmppIiBjaGFyYWN0ZXIsIG9yIGEgcnVuIG9mIGFueSBudW1iZXIgb2Ygbm90LWV4cGxpY2l0bHktbWVudGlvbmVkCisgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzICh0aGlzIGluY2x1ZGVzIExhdGluIGxldHRlcnMpCisgICAgICAgICAgICArICIkd29yZF9jb3JlPShbJHByZV93b3JkJGNoYXJdKnwka2Fuaml8JG51bWJlcik7IgorCisgICAgICAgICAgICAvLyBhIHdvcmQgbWF5IGVuZCB3aXRoIGFuIG9wdGlvbmFsIHN1ZmZpeCB0aGF0IGJlIGVpdGhlciBhIHJ1biBvZiBvbmUgb3IKKyAgICAgICAgICAgIC8vIG1vcmUgZGFzaGVzIG9yIGEgcnVuIG9mIHdvcmQtc3VmZml4IGNoYXJhY3RlcnMsIGZvbGxvd2VkIGJ5IGFuIG9wdGlvbmFsCisgICAgICAgICAgICAvLyBydW4gb2Ygd2hpdGVzcGFjZQorICAgICAgICAgICAgKyAiJHdvcmRfc3VmZml4PSgoJGRhc2grfCRwb3N0X3dvcmQqKSRzcGFjZSopOyIKKworICAgICAgICAgICAgLy8gYSB3b3JkLCB0aHVzLCBpcyBhbiBvcHRpb25hbCBydW4gb2Ygd29yZC1wcmVmaXggY2hhcmFjdGVycywgZm9sbG93ZWQgYnkKKyAgICAgICAgICAgIC8vIGEgd29yZCBjb3JlIGFuZCBhIHdvcmQgc3VmZml4ICh0aGUgc3ludGF4IG9mIDx3b3JkLWNvcmU+IGFuZCA8d29yZC1zdWZmaXg+CisgICAgICAgICAgICAvLyBhY3R1YWxseSBhbGxvd3MgZWl0aGVyIG9mIHRoZW0gdG8gbWF0Y2ggdGhlIGVtcHR5IHN0cmluZywgcHV0dGluZyBhIGJyZWFrCisgICAgICAgICAgICAvLyBiZXR3ZWVuIHRoaW5ncyBsaWtlICIpKCIgb3IgImFhYShhYWEiCisgICAgICAgICAgICArICIkd29yZD0oJHByZV93b3JkKiR3b3JkX2NvcmUkd29yZF9zdWZmaXgpOyIKKworICAgICAgICAgICAgLy8gZmluYWxseSwgdGhlIHJ1bGUgdGhhdCBkb2VzIHRoZSB3b3JrOiBLZWVwIHRvZ2V0aGVyIGFueSBydW4gb2Ygd29yZHMgdGhhdAorICAgICAgICAgICAgLy8gYXJlIGpvaW5lZCBieSBydW5zIG9mIG9uZSBvZiBtb3JlIG5vbi1zcGFjaW5nIG1hcmsuICBBbHNvIGtlZXAgYSB0cmFpbGluZworICAgICAgICAgICAgLy8gbGluZS1icmVhayBjaGFyYWN0ZXIgb3IgQ1JMRiBjb21iaW5hdGlvbiB3aXRoIHRoZSB3b3JkLiAgKGxpbmUgc2VwYXJhdG9ycworICAgICAgICAgICAgLy8gIndpbiIgb3ZlciBuYnNwJ3MpCisgICAgICAgICAgICArICIkd29yZCgkbmJzcCskd29yZCkqXHI/JGJyZWFrPzsiCisgICAgICAgIH0sCisKKyAgICAgICAgLy8gZGVmYXVsdCBydWxlcyBmb3IgZmluZGluZyBzZW50ZW5jZSBib3VuZGFyaWVzCisgICAgICAgIHsgIlNlbnRlbmNlQnJlYWtSdWxlcyIsCisgICAgICAgICAgICAvLyBTdXJyb2dhdGVzLiAgVW50aWwgYmV0dGVyIHN1cHBvcnQgaXMgYXZhaWxhYmxlLCBpZ25vcmUgbG93IHN1cnJvZ2F0ZXMKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICBhbmQgY2xhc3NpZnkgaGlnaCBzdXJyb2dhdGVzIGFjY29yZGluZyB0byB0aGUgY2hhcmFjdGVycyB3aXRoaW4gdGhlIGJsb2NrLgorICAgICAgICAgICAgICAiJHN1cnJfbG89W1x1ZGMwMC1cdWRmZmZdOyIKKworICAgICAgICAgICAgLy8gaWdub3JlIG5vbi1zcGFjaW5nIG1hcmtzLCBlbmNsb3NpbmcgbWFya3MsIGFuZCBmb3JtYXQgY2hhcmFjdGVycworICAgICAgICAgICAgKyAiJF9pZ25vcmVfPVtbOk1uOl1bOk1lOl1bOkNmOl0kc3Vycl9sb107IgorCisgICAgICAgICAgICAvLyBsb3dlcmNhc2UgbGV0dGVycworICAgICAgICAgICAgKyAiJGxjPVs6TGw6XTsiCisKKyAgICAgICAgICAgIC8vIHVwcGVyY2FzZSBMYXRpbiBsZXR0ZXJzCisgICAgICAgICAgICArICIkdWNMYXRpbj1bQS1aXTsiCisKKyAgICAgICAgICAgIC8vIHdoaXRlc3BhY2UgKGxpbmUgc2VwYXJhdG9ycyBhcmUgdHJlYXRlZCBhcyB3aGl0ZXNwYWNlKQorICAgICAgICAgICAgKyAiJHNwYWNlPVtcdFxyXGZcblx1MjAyOFs6WnM6XV07IgorCisgICAgICAgICAgICAvLyBwdW5jdHVhdGlvbiB3aGljaCBtYXkgb2NjdXIgYXQgdGhlIGJlZ2lubmluZyBvZiBhIHNlbnRlbmNlOiAic3RhcnRpbmcKKyAgICAgICAgICAgIC8vIHB1bmN0dWF0aW9uIiBhbmQgcXVvdGF0aW9uIG1hcmtzCisgICAgICAgICAgICArICIkc3RhcnQ9W1s6UHM6XVs6UGk6XVxcXCJcXFwnXTsiCisKKyAgICAgICAgICAgIC8vIHB1bmN0dWF0aW9uIHdpdGggbWF5IG9jY3VyIGF0IHRoZSBlbmQgb2YgYSBzZW50ZW5jZTogImVuZGluZyBwdW5jdHVhdGlvbiIKKyAgICAgICAgICAgIC8vIGFuZCBxdW90YXRpb24gbWFya3MKKyAgICAgICAgICAgICsgIiRlbmQ9W1s6UGU6XVs6UGY6XVxcXCJcXFwnXTsiCisKKyAgICAgICAgICAgIC8vIGRpZ2l0cworICAgICAgICAgICAgKyAiJGRpZ2l0PVs6TjpdOyIKKworICAgICAgICAgICAgLy8gY2hhcmFjdGVycyB0aGF0IHVuYW1iaWd1b3VzbHkgc2lnbmFsIHRoZSBlbmQgb2YgYSBzZW50ZW5jZQorICAgICAgICAgICAgKyAiJHRlcm09W1xcIVxcP1x1MzAwMlx1ZmYwMVx1ZmYxZl07IgorCisgICAgICAgICAgICAvLyBwZXJpb2RzLCB3aGljaCBNQVkgc2lnbmFsIHRoZSBlbmQgb2YgYSBzZW50ZW5jZQorICAgICAgICAgICAgKyAiJHBlcmlvZD1bXFwuXHVmZjBlXTsiCisKKyAgICAgICAgICAgIC8vIGNoYXJhY3RlcnMgdGhhdCBtYXkgb2NjdXIgYXQgdGhlIGJlZ2lubmluZyBvZiBhIHNlbnRlbmNlOiBiYXNpY2FsbHkgYW55dGhpbmcKKyAgICAgICAgICAgIC8vIG5vdCBtZW50aW9uZWQgYWJvdmUgKGxvd2VyY2FzZSBsZXR0ZXJzIGFuZCBkaWdpdHMgYXJlIHNwZWNpZmljYWxseSBleGNsdWRlZCkKKyAgICAgICAgICAgICsgIiRzZW50X3N0YXJ0PVteJGxjJHVjTGF0aW4kc3BhY2Ukc3RhcnQkZW5kJGRpZ2l0JHRlcm0kcGVyaW9kXHUyMDI5JF9pZ25vcmVfXTsiCisKKyAgICAgICAgICAgIC8vIEhpbmRpIHBocmFzZSBzZXBhcmF0b3IKKyAgICAgICAgICAgICsgIiRkYW5kYT1bXHUwOTY0XHUwOTY1XTsiCisKKyAgICAgICAgICAgIC8vIGFsd2F5cyBicmVhayBzZW50ZW5jZXMgYWZ0ZXIgcGFyYWdyYXBoIHNlcGFyYXRvcnMKKyAgICAgICAgICAgICsgIi4qP1x1MjAyOT87IgorCisgICAgICAgICAgICAvLyBhbHdheXMgYnJlYWsgYWZ0ZXIgYSBkYW5kYSwgaWYgaXQncyBmb2xsb3dlZCBieSB3aGl0ZXNwYWNlCisgICAgICAgICAgICArICIuKj8kZGFuZGEkc3BhY2UqOyIKKworICAgICAgICAgICAgLy8gaWYgeW91IHNlZSBhIHBlcmlvZCwgc2tpcCBvdmVyIGFkZGl0aW9uYWwgcGVyaW9kcyBhbmQgZW5kaW5nIHB1bmN0dWF0aW9uCisgICAgICAgICAgICAvLyBhbmQgaWYgdGhlIG5leHQgY2hhcmFjdGVyIGlzIGEgcGFyYWdyYXBoIHNlcGFyYXRvciwgYnJlYWsgYWZ0ZXIgdGhlCisgICAgICAgICAgICAvLyBwYXJhZ3JhcGggc2VwYXJhdG9yCisgICAgICAgICAgICArICIuKj8kcGVyaW9kWyRwZXJpb2QkZW5kXSokc3BhY2UqXHUyMDI5OyIKKworICAgICAgICAgICAgLy8gaWYgeW91IHNlZSBhIHBlcmlvZCwgc2tpcCBvdmVyIGFkZGl0aW9uYWwgcGVyaW9kcyBhbmQgZW5kaW5nIHB1bmN0dWF0aW9uLAorICAgICAgICAgICAgLy8gZm9sbG93ZWQgYnkgb3B0aW9uYWwgd2hpdGVzcGFjZSwgZm9sbG93ZWQgYnkgb3B0aW9uYWwgc3RhcnRpbmcgcHVuY3R1YXRpb24sCisgICAgICAgICAgICAvLyBhbmQgaWYgdGhlIG5leHQgY2hhcmFjdGVyIGlzIHNvbWV0aGluZyB0aGF0IGNhbiBzdGFydCBhIHNlbnRlbmNlCisgICAgICAgICAgICAvLyAoYmFzaWNhbGx5LCBhIGNhcGl0YWwgbGV0dGVyKSwgdGhlbiBwdXQgdGhlIHNlbnRlbmNlIGJyZWFrIGJldHdlZW4gdGhlCisgICAgICAgICAgICAvLyB3aGl0ZXNwYWNlIGFuZCB0aGUgb3BlbmluZyBwdW5jdHVhdGlvbgorICAgICAgICAgICAgKyAiLio/JHBlcmlvZFskcGVyaW9kJGVuZF0qJHNwYWNlKi8oJHN0YXJ0KiRzZW50X3N0YXJ0fCRzdGFydCskdWNMYXRpbik7IgorCisgICAgICAgICAgICAvLyBzYW1lIGFzIGFib3ZlLCBleGNlcHQgdGhhdCB0aGVyZSdzIGEgc2VudGVuY2UgYnJlYWsgYmVmb3JlIGEgTGF0aW4gY2FwaXRhbAorICAgICAgICAgICAgLy8gbGV0dGVyIG9ubHkgaWYgdGhlcmUncyBhdCBsZWFzdCBvbmUgc3BhY2UgYWZ0ZXIgdGhlIHBlcmlvZAorICAgICAgICAgICAgKyAiLio/JHBlcmlvZFskcGVyaW9kJGVuZF0qJHNwYWNlKy8kdWNMYXRpbjsiCisKKyAgICAgICAgICAgIC8vIGlmIHlvdSBzZWUgYSBzZW50ZW5jZS10ZXJtaW5hdGluZyBjaGFyYWN0ZXIsIHNraXAgb3ZlciBhbnkgYWRkaXRpb25hbAorICAgICAgICAgICAgLy8gdGVybWluYXRvcnMsIHBlcmlvZHMsIG9yIGVuZGluZyBwdW5jdHVhdGlvbiwgZm9sbG93ZWQgYnkgYW55IHdoaXRlc3BhY2UsCisgICAgICAgICAgICAvLyBmb2xsb3dlZCBieSBhIFNJTkdMRSBvcHRpb25hbCBwYXJhZ3JhcGggc2VwYXJhdG9yLCBhbmQgcHV0IHRoZSBicmVhayB0aGVyZQorICAgICAgICAgICAgKyAiLio/JHRlcm1bJHRlcm0kcGVyaW9kJGVuZF0qJHNwYWNlKlx1MjAyOT87IgorCisgICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5nIHJ1bGVzIGFyZSBoZXJlIHRvIGFpZCBpbiBiYWNrd2FyZHMgaXRlcmF0aW9uLiAgVGhlIGF1dG9tYXRpY2FsbHkKKyAgICAgICAgICAgIC8vIGdlbmVyYXRlZCBiYWNrd2FyZHMgc3RhdGUgdGFibGUgd2lsbCByZXdpbmQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUKKyAgICAgICAgICAgIC8vIHBhcmFncmFwaCBhbGwgdGhlIHRpbWUgKG9yIGFsbCB0aGUgd2F5IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGRvY3VtZW50CisgICAgICAgICAgICAvLyBpZiB0aGUgZG9jdW1lbnQgZG9lc24ndCB1c2UgdGhlIFVuaWNvZGUgUFMgY2hhcmFjdGVyKSBiZWNhdXNlIHRoZSBvbmx5CisgICAgICAgICAgICAvLyB1bmFtYmlndW91cyBjaGFyYWN0ZXIgcGFpcnMgYXJlIHRob3NlIGludm9sdmluZyBwYXJhZ3JhcGggc2VwYXJhdG9ycy4KKyAgICAgICAgICAgIC8vIFRoZXNlIHNwZWNpZnkgYSBmZXcgbW9yZSB1bmFtYmlndW91cyBicmVha2luZyBzaXR1YXRpb25zLgorCisgICAgICAgICAgICAvLyBpZiB5b3Ugc2VlIGEgc2VudGVuY2Utc3RhcnRpbmcgY2hhcmFjdGVyLCBmb2xsb3dlZCBieSBzdGFydGluZyBwdW5jdHVhdGlvbgorICAgICAgICAgICAgLy8gKHJlbWVtYmVyLCB3ZSdyZSBpdGVyYXRpbmcgYmFja3dhcmRzKSwgZm9sbG93ZWQgYnkgYW4gb3B0aW9uYWwgcnVuIG9mCisgICAgICAgICAgICAvLyB3aGl0ZXNwYWNlLCBmb2xsb3dlZCBieSBhbiBvcHRpb25hbCBydW4gb2YgZW5kaW5nIHB1bmN0dWF0aW9uLCBmb2xsb3dlZAorICAgICAgICAgICAgLy8gYnkgYSBwZXJpb2QsIHRoaXMgaXMgYSBzYWZlIHBsYWNlIHRvIHR1cm4gYXJvdW5kCisgICAgICAgICAgICArICIhWyRzZW50X3N0YXJ0JHVjTGF0aW5dJHN0YXJ0KiRzcGFjZSskZW5kKiRwZXJpb2Q7IgorCisgICAgICAgICAgICAvLyBpZiB5b3Ugc2VlIGEgbGV0dGVyIG9yIGEgZGlnaXQsIGZvbGxvd2VkIGJ5IGFuIG9wdGlvbmFsIHJ1biBvZgorICAgICAgICAgICAgLy8gc3RhcnRpbmcgcHVuY3R1YXRpb24sIGZvbGxvd2VkIGJ5IGFuIG9wdGlvbmFsIHJ1biBvZiB3aGl0ZXNwYWNlLAorICAgICAgICAgICAgLy8gZm9sbG93ZWQgYnkgYW4gb3B0aW9uYWwgcnVuIG9mIGVuZGluZyBwdW5jdHVhdGlvbiwgZm9sbG93ZWQgYnkKKyAgICAgICAgICAgIC8vIGEgc2VudGVuY2UgdGVybWluYXRvciwgdGhpcyBpcyBhIHNhZmUgcGxhY2UgdG8gdHVybiBhcm91bmQKKyAgICAgICAgICAgICsgIiFbJHNlbnRfc3RhcnQkbGMkZGlnaXRdJHN0YXJ0KiRzcGFjZSokZW5kKiR0ZXJtOyIKKyAgICAgICAgfSwKKworCQkvLyBkZWZhdWx0IHJ1bGVzIGZvciBmaW5kaW5nIFRpdGxlIENhc2UgYm91bmRhcmllcy4KKwkJLy8gICBTZWUgIFVuaWNvZGUgVGVjaG5pY2FsIFJlcG9ydCAjMjEgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGVzZSBydWxlcy4KKwkJeyAiVGl0bGVCcmVha1J1bGVzIiwKKyAgICAgICAgICAgICAgICIkY2FzZV9pZ25vcmFibGU9W1s6TW46XVs6TWU6XVs6Q2Y6XVs6TG06XVs6U2s6XVxcdTAwMjdcdTAwQURcdTIwMTldOyIKKyAgICAgICAgICAgICArICIkY2FzZWQ9W1tbOkx1Ol1bOkx0Ol1bOkxsOl0iCisgICAgICAgICAgICAgKyAgICAgIlx1MjE2MC1cdTIxNmYiICAgICAgICAgICAgICAgICAgICAgICAvLyBPdGhlciBVcHBlcmNhc2UKKyAgICAgICAgICAgICArICAgICAiXHUyNGI2LVx1MjRjZiIKKyAgICAgICAgICAgICArICAgICAiXHUwMmIwLVx1MDJiOCIgICAgICAgICAgICAgICAgICAgICAgIC8vIE90aGVyIExvd2VyIGNhc2UKKyAgICAgICAgICAgICArICAgICAiXHUwMmMwLVx1MDJjMSIKKyAgICAgICAgICAgICArICAgICAiXHUwMmUwLVx1MDJlNCIKKyAgICAgICAgICAgICArICAgICAiXHUwMzQ1XHUwMzdhIgorICAgICAgICAgICAgICsgICAgICJcdTIxNzAtXHUyMTdmIgorICAgICAgICAgICAgICsgICAgICJcdTI0ZDAtXHUyNGU5XSIKKyAgICAgICAgICAgICArICAgICAiLSRjYXNlX2lnbm9yYWJsZV07IiAgICAgICAgICAgICAgICAgIC8vIFJlbW92ZSBhbnl0aGluZyB0aGF0IGlzIGNhc2VfaWdub3JhYmxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGZyb20gJGNhc2VkLgorCQkgICAgICsgIiRub3RfY2FzZWQ9W14kY2FzZWQkY2FzZV9pZ25vcmFibGVdOyIKKyAgICAgICAgICAgICAvLyBGaXJzdCB0aW1lIG9ubHksIGVhdCB0aHJvdWdoIGFueSBsZWFkaW5nIG5vbi13b3JkLWxpa2Ugc3R1ZmYuCisJCSAgICAgKyAiWyRub3RfY2FzZWQkY2FzZV9pZ25vcmFibGVdKjsiCisgICAgICAgICAgICAgLy8gIE1hdGNoIGEgd29yZCAoYSBjYXNlZCBpdGVtKSwgcGx1cyBhbnkgZm9sbG93aW5nIHNwYWNlcyBvciBvdGhlciBub24tY2FzZWQganVuaywKKyAgICAgICAgICAgICAvLyAgICB1cCB0byB0aGUgc3RhcnQgb2YgdGhlIG5leHQgY2FzZWQgaXRlbS4KKyAgICAgICAgICAgICArICIkY2FzZWRbJGNhc2VkJGNhc2VfaWdub3JhYmxlXSpbJG5vdF9jYXNlZF0qOyIKKyAgICAgICAgICAgICArICIhJG5vdF9jYXNlZCpbJGNhc2VkJGNhc2VfaWdub3JhYmxlXSokbm90X2Nhc2VkKjsiICAgLy8gQmFja3dhcmRzIHJ1bGUuCisJICAgIH0KKworICAgIH07Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0JyZWFrSXRlcmF0b3JSdWxlc190aC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9CcmVha0l0ZXJhdG9yUnVsZXNfdGguamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40Y2Q2YmYwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9CcmVha0l0ZXJhdG9yUnVsZXNfdGguamF2YQpAQCAtMCwwICsxLDI0MyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9CcmVha0l0ZXJhdG9yUnVsZXNfdGguamF2YSx2ICQKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA1OjM5ICQKKyAqICRSZXZpc2lvbjogMS43ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgamF2YS5uZXQuVVJMOworCitwdWJsaWMgY2xhc3MgQnJlYWtJdGVyYXRvclJ1bGVzX3RoIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICBwdWJsaWMgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKworICAgICAgICBVUkwgdXJsID0gZ2V0Q2xhc3MoKS5nZXRSZXNvdXJjZSgidGhhaV9kaWN0Iik7CisKKyAgICAgICAgLy8gaWYgZGljdGlvbmFyeSB3YXNuJ3QgZm91bmQsIHRoZW4gdGhpcyByZXNvdXJjZSBidW5kbGUgZG9lc24ndCBoYXZlCisgICAgICAgIC8vIG11Y2ggdG8gY29udHJpYnV0ZS4uLgorICAgICAgICBpZiAodXJsID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgT2JqZWN0WzBdWzBdOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgICAgICAgIC8vIG5hbWVzIG9mIGNsYXNzZXMgdG8gaW5zdGFudGlhdGUgZm9yIHRoZSBkaWZmZXJlbnQga2luZHMgb2YgYnJlYWsKKyAgICAgICAgICAgIC8vIGl0ZXJhdG9yLiAgTm90aWNlIHdlJ3JlIG5vdyB1c2luZyBEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yCisgICAgICAgICAgICAvLyBmb3Igd29yZCBhbmQgbGluZSBicmVha2luZy4KKyAgICAgICAgICAgIHsgIkJyZWFrSXRlcmF0b3JDbGFzc2VzIiwKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAiUnVsZUJhc2VkQnJlYWtJdGVyYXRvciIsICAgICAgICAgICAvLyBjaGFyYWN0ZXItYnJlYWsgaXRlcmF0b3IgY2xhc3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvciIsICAgICAvLyB3b3JkLWJyZWFrIGl0ZXJhdG9yIGNsYXNzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IiLCAgICAgLy8gbGluZS1icmVhayBpdGVyYXRvciBjbGFzcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIiB9ICAgICAgICAgIC8vIHNlbnRlbmNlLWJyZWFrIGl0ZXJhdG9yIGNsYXNzCisgICAgICAgICAgICB9LAorCisgICAgICAgICAgICB7ICJXb3JkQnJlYWtSdWxlcyIsCisgICAgICAgICAgICAgICAgIiRfZGljdGlvbmFyeV89W1x1MGUwMS1cdTBlMmVcdTBlMzAtXHUwZTNhXHUwZTQwLVx1MGU0NFx1MGU0Ny1cdTBlNGVdOyIgLy8gdGhpcyBydWxlIGJyZWFrcyB0aGUgaXRlcmF0b3Igd2l0aCBtaXhlZCBUaGFpIGFuZCBFbmdsaXNoCisKKyAgICAgICAgICAgICAgICAvLyBTdXJyb2dhdGVzLiAgVW50aWwgYmV0dGVyIHN1cHBvcnQgaXMgYXZhaWxhYmxlLCBpZ25vcmUgbG93IHN1cnJvZ2F0ZXMKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgYW5kIGNsYXNzaWZ5IGhpZ2ggc3Vycm9nYXRlcyBhY2NvcmRpbmcgdG8gdGhlIGNoYXJhY3RlcnMgd2l0aGluIHRoZSBibG9jay4KKyAgICAgICAgICAgICAgICArICIkc3Vycl9sbz1bXHVkYzAwLVx1ZGZmZl07IgorICAgICAgICAgICAgICAgICsgIiRzdXJyX2hpX2xldD1bXHVkODAwXHVkODAxXHVkODM0XHVkODM1XTsiICAgLy8gSGkgU3Vycm9nYXRlcyBmb3IgT2xkIEl0YWxpYywgR290aGljLCBEZXNlcmV0LCBNdXNpYywgTWF0aAorICAgICAgICAgICAgICAgICsgIiRzdXJyX2hpX2lkZW89W1x1ZDg0MC1cdWQ4ODBdOyIgICAgICAgICAgICAgLy8gSGkgU3Vycm9nYXRlcyBmb3IgQ0pLCisgICAgICAgICAgICAgICAgKyAiJHN1cnJfaGlfdGFnPVtcdWRiNDBdOyIgICAgICAgICAgICAgICAgICAgICAvLyBIaSBTdXJyb2dhdGVzIGZvciBUYWdzCisgICAgICAgICAgICAgICAgKyAiJHN1cnJfaGlfcHVhPVtcdWRiODAtXHVkYmZmXTsiICAgICAgICAgICAgICAvLyBIaSBTdXJyb2dhdGVzIGZvciBQcml2YXRlIFVzZS4KKworICAgICAgICAgICAgICAgIC8vIFByaXZhdGUgVXNlIEFyZWEuICBUcmVhdCBsaWtlIGlkZW9ncmFwaHMuCisgICAgICAgICAgICAgICAgKyAiJHB1YT1bXHVlMDAwLVx1ZjhmZiRzdXJyX2hpX3B1YV07IgorCisgICAgICAgICAgICAgICAgLy8gaWdub3JlIG5vbi1zcGFjaW5nIG1hcmtzLCBlbmNsb3NpbmcgbWFya3MsIGFuZCBmb3JtYXQgY2hhcmFjdGVycywKKyAgICAgICAgICAgICAgICAvLyBhbGwgb2Ygd2hpY2ggc2hvdWxkIG5vdCBpbmZsdWVuY2UgdGhlIGFsZ29yaXRobQorICAgICAgICAgICAgICAgICsgIiRfaWdub3JlXz1bW1s6TW46XVs6TWU6XVs6Q2Y6XSRzdXJyX2xvJHN1cnJfaGlfdGFnXS0kX2RpY3Rpb25hcnlfXTsiCisKKyAgICAgICAgICAgICAgICArICIkcGFpeWFubm9pPVtcdTBlMmZdOyIKKyAgICAgICAgICAgICAgICArICIkbWFpeWFtb2s9W1x1MGU0Nl07IgorCisKKyAgICAgICAgICAgICAgICAvLyBIaW5kaSBwaHJhc2Ugc2VwYXJhdG9yLCBrYW5qaSwga2F0YWthbmEsIGhpcmFnYW5hLCBDSksgZGlhY3JpdGljYWxzLAorICAgICAgICAgICAgICAgIC8vIG90aGVyIGxldHRlcnMsIGFuZCBkaWdpdHMKKyAgICAgICAgICAgICAgICArICIkZGFuZGE9W1x1MDk2NFx1MDk2NV07IgorICAgICAgICAgICAgICAgICsgIiRrYW5qaT1bXHUzMDA1XHU0ZTAwLVx1OWZhNVx1ZjkwMC1cdWZhMmQkc3Vycl9oaV9pZGVvJHB1YV07IgorICAgICAgICAgICAgICAgICsgIiRrYXRhPVtcdTMwYTEtXHUzMGZhXTsiCisgICAgICAgICAgICAgICAgKyAiJGhpcmE9W1x1MzA0MS1cdTMwOTRdOyIKKyAgICAgICAgICAgICAgICArICIkY2prX2RpYWNyaXQ9W1x1MzA5OS1cdTMwOWNdOyIKKyAgICAgICAgICAgICAgICArICIkbGV0PVtbWzpMOl1bOk1jOl0kc3Vycl9oaV9sZXRdLVska2Fuamkka2F0YSRoaXJhJGNqa19kaWFjcml0JF9kaWN0aW9uYXJ5X11dOyIKKyAgICAgICAgICAgICAgICArICIkZGd0PVs6TjpdOyIKKworICAgICAgICAgICAgICAgIC8vIHB1bmN0dWF0aW9uIHRoYXQgY2FuIG9jY3VyIGluIHRoZSBtaWRkbGUgb2YgYSB3b3JkOiBjdXJyZW50bHkKKyAgICAgICAgICAgICAgICAvLyBkYXNoZXMsIGFwb3N0cm9waGVzLCBxdW90YXRpb24gbWFya3MsIGFuZCBwZXJpb2RzCisgICAgICAgICAgICAgICAgKyAiJG1pZF93b3JkPVtbOlBkOl1cdTAwYWRcdTIwMjdcXFwiXFxcJ1xcLl07IgorCisgICAgICAgICAgICAgICAgLy8gcHVuY3R1YXRpb24gdGhhdCBjYW4gb2NjdXIgaW4gdGhlIG1pZGRsZSBvZiBhIG51bWJlcjogY3VycmVudGx5CisgICAgICAgICAgICAgICAgLy8gYXBvc3Ryb3BoZXMsIHFvdXRhdGlvbiBtYXJrcywgcGVyaW9kcywgY29tbWFzLCBhbmQgdGhlIEFyYWJpYworICAgICAgICAgICAgICAgIC8vIGRlY2ltYWwgcG9pbnQKKyAgICAgICAgICAgICAgICArICIkbWlkX251bT1bXFxcIlxcXCdcXCxcdTA2NmJcXC5dOyIKKworICAgICAgICAgICAgICAgIC8vIHB1bmN0dWF0aW9uIHRoYXQgY2FuIG9jY3VyIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBudW1iZXI6IGN1cnJlbnRseQorICAgICAgICAgICAgICAgIC8vIHRoZSBwZXJpb2QsIHRoZSBudW1iZXIgc2lnbiwgYW5kIGFsbCBjdXJyZW5jeSBzeW1ib2xzIGV4Y2VwdCB0aGUgY2VudHMgc2lnbgorICAgICAgICAgICAgICAgICsgIiRwcmVfbnVtPVtbWzpTYzpdLVtcdTAwYTJdXVxcI1xcLl07IgorCisgICAgICAgICAgICAgICAgLy8gcHVuY3R1YXRpb24gdGhhdCBjYW4gb2NjdXIgYXQgdGhlIGVuZCBvZiBhIG51bWJlcjogY3VycmVudGx5CisgICAgICAgICAgICAgICAgLy8gdGhlIHBlcmNlbnQsIHBlci10aG91c2FuZCwgcGVyLXRlbi10aG91c2FuZCwgYW5kIEFyYWJpYyBwZXJjZW50CisgICAgICAgICAgICAgICAgLy8gc2lnbnMsIHRoZSBjZW50cyBzaWduLCBhbmQgdGhlIGFtcGVyc2FuZAorICAgICAgICAgICAgICAgICsgIiRwb3N0X251bT1bXFwlXFwmXHUwMGEyXHUwNjZhXHUyMDMwXHUyMDMxXTsiCisKKyAgICAgICAgICAgICAgICAvLyBsaW5lIHNlcGFyYXRvcnM6IGN1cnJlbnRseSBMRiwgRkYsIFBTLCBhbmQgTFMKKyAgICAgICAgICAgICAgICArICIkbHM9W1xuXHUwMDBjXHUyMDI4XHUyMDI5XTsiCisKKyAgICAgICAgICAgICAgICAvLyB3aGl0ZXNwYWNlOiBhbGwgc3BhY2Ugc2VwYXJhdG9ycyBhbmQgdGhlIHRhYiBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICArICIkd3M9W1s6WnM6XVx0XTsiCisKKyAgICAgICAgICAgICAgICAvLyBhIHdvcmQgaXMgYSBzZXF1ZW5jZSBvZiBsZXR0ZXJzIHRoYXQgbWF5IGNvbnRhaW4gaW50ZXJuYWwKKyAgICAgICAgICAgICAgICAvLyBwdW5jdHVhdGlvbiwgYXMgbG9uZyBhcyBpdCBiZWdpbnMgYW5kIGVuZHMgd2l0aCBhIGxldHRlciBhbmQKKyAgICAgICAgICAgICAgICAvLyBuZXZlciBjb250YWlucyB0d28gcHVuY3R1YXRpb24gbWFya3MgaW4gYSByb3cKKyAgICAgICAgICAgICAgICArICIkd29yZD0oKCRsZXQrKCRtaWRfd29yZCRsZXQrKSopJGRhbmRhPyk7IgorCisgICAgICAgICAgICAgICAgLy8gYSBudW1iZXIgaXMgYSBzZXF1ZW5jZSBvZiBkaWdpdHMgdGhhdCBtYXkgY29udGFpbiBpbnRlcm5hbAorICAgICAgICAgICAgICAgIC8vIHB1bmN0dWF0aW9uLCBhcyBsb25nIGFzIGl0IGJlZ2lucyBhbmQgZW5kcyB3aXRoIGEgZGlnaXQgYW5kCisgICAgICAgICAgICAgICAgLy8gbmV2ZXIgY29udGFpbnMgdHdvIHB1bmN0dWF0aW9uIG1hcmtzIGluIGEgcm93LgorICAgICAgICAgICAgICAgICsgIiRudW1iZXI9KCRkZ3QrKCRtaWRfbnVtJGRndCspKik7IgorCisgICAgICAgICAgICAgICAgKyAiJHRoYWlfZXRjPSgkcGFpeWFubm9pXHUwZTI1JHBhaXlhbm5vaSk7IgorCisKKyAgICAgICAgICAgICAgICAvLyBicmVhayBhZnRlciBldmVyeSBjaGFyYWN0ZXIsIHdpdGggdGhlIGZvbGxvd2luZyBleGNlcHRpb25zCisgICAgICAgICAgICAgICAgLy8gKHRoaXMgd2lsbCBjYXVzZSBwdW5jdHVhdGlvbiBtYXJrcyB0aGF0IGFyZW4ndCBjb25zaWRlcmVkCisgICAgICAgICAgICAgICAgLy8gcGFydCBvZiB3b3JkcyBvciBudW1iZXJzIHRvIGJlIHRyZWF0ZWQgYXMgd29yZHMgdW50byB0aGVtc2VsdmVzKQorICAgICAgICAgICAgICAgICsgIi47IgorCisgICAgICAgICAgICAgICAgLy8ga2VlcCB0b2dldGhlciBhbnkgc2VxdWVuY2Ugb2YgY29udGlndW91cyB3b3JkcyBhbmQgbnVtYmVycworICAgICAgICAgICAgICAgIC8vIChpbmNsdWRpbmcganVzdCBvbmUgb2YgZWl0aGVyKSwgcGx1cyBhbiBvcHRpb25hbCB0cmFpbGluZworICAgICAgICAgICAgICAgIC8vIG51bWJlci1zdWZmaXggY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgKyAiJHdvcmQ/KCRudW1iZXIkd29yZCkqKCRudW1iZXIkcG9zdF9udW0/KT87IgorICAgICAgICAgICAgICAgICsgIiRwcmVfbnVtKCRudW1iZXIkd29yZCkqKCRudW1iZXIkcG9zdF9udW0/KT87IgorCisgICAgICAgICAgICAgICAgLy8rICIkX2RpY3Rpb25hcnlfKygkcGFpeWFubm9pJG1haXlhbW9rPyk/OyIKKyAgICAgICAgICAgICAgICArICIkX2RpY3Rpb25hcnlfKygkcGFpeWFubm9pPyRtYWl5YW1vayk/OyIKKworICAgICAgICAgICAgICAgICsgIiRfZGljdGlvbmFyeV8rJHBhaXlhbm5vaS8oW15cdTBlMjUkbWFpeWFtb2skX2lnbm9yZV9dIgorICAgICAgICAgICAgICAgICAgICAgICAgKyAifFx1MGUyNVteJHBhaXlhbm5vaSRfaWdub3JlX10pOyIKKworICAgICAgICAgICAgICAgICsgIiR0aGFpX2V0YzsiCisKKyAgICAgICAgICAgICAgICAvLyBrZWVwIHRvZ2V0aGVyIHJ1bnMgb2Ygd2hpdGVzcGFjZSAob3B0aW9uYWxseSB3aXRoIGEgc2luZ2xlIHRyYWlsaW5nCisgICAgICAgICAgICAgICAgLy8gbGluZSBzZXBhcmF0b3Igb3IgQ1JMRiBzZXF1ZW5jZSkKKyAgICAgICAgICAgICAgICArICIkd3MqXHI/JGxzPzsiCisKKyAgICAgICAgICAgICAgICAvLyBrZWVwIHRvZ2V0aGVyIHJ1bnMgb2YgS2F0YWthbmEKKyAgICAgICAgICAgICAgICArICJbJGthdGEkY2prX2RpYWNyaXRdKjsiCisKKyAgICAgICAgICAgICAgICAvLyBrZWVwIHRvZ2V0aGVyIHJ1bnMgb2YgSGlyYWdhbmEKKyAgICAgICAgICAgICAgICArICJbJGhpcmEkY2prX2RpYWNyaXRdKjsiCisKKyAgICAgICAgICAgICAgICAvLyBrZWVwIHRvZ2V0aGVyIHJ1bnMgb2YgS2FuamkKKyAgICAgICAgICAgICAgICArICIka2FuamkqOyIKKyAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgIHsgIkxpbmVCcmVha1J1bGVzIiwKKyAgICAgICAgICAgICAgICAiJF9kaWN0aW9uYXJ5Xz1bXHUwZTAxLVx1MGUyZVx1MGUzMC1cdTBlM2FcdTBlNDAtXHUwZTQ0XHUwZTQ3LVx1MGU0ZV07IiAvLyB0aGlzIHJ1bGUgYnJlYWtzIHRoZSBpdGVyYXRvciB3aXRoIG1peGVkIFRoYWkgYW5kIEVuZ2xpc2gKKworICAgICAgICAgICAgICAgIC8vIFN1cnJvZ2F0ZXMuICBVbnRpbCBiZXR0ZXIgc3VwcG9ydCBpcyBhdmFpbGFibGUsIGlnbm9yZSBsb3cgc3Vycm9nYXRlcworICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICBhbmQgY2xhc3NpZnkgaGlnaCBzdXJyb2dhdGVzIGFjY29yZGluZyB0byB0aGUgY2hhcmFjdGVycyB3aXRoaW4gdGhlIGJsb2NrLgorICAgICAgICAgICAgICAgICsgIiRzdXJyX2xvPVtcdWRjMDAtXHVkZmZmXTsiCisgICAgICAgICAgICAgICAgKyAiJHN1cnJfaGlfbGV0PVtcdWQ4MDBcdWQ4MDFcdWQ4MzRcdWQ4MzVdOyIgICAvLyBIaSBTdXJyb2dhdGVzIGZvciBPbGQgSXRhbGljLCBHb3RoaWMsIERlc2VyZXQsIE11c2ljLCBNYXRoCisgICAgICAgICAgICAgICAgKyAiJHN1cnJfaGlfaWRlbz1bXHVkODQwLVx1ZDg4MF07IiAgICAgICAgICAgICAvLyBIaSBTdXJyb2dhdGVzIGZvciBDSksKKyAgICAgICAgICAgICAgICArICIkc3Vycl9oaV90YWc9W1x1ZGI0MF07IiAgICAgICAgICAgICAgICAgICAgIC8vIEhpIFN1cnJvZ2F0ZXMgZm9yIFRhZ3MKKyAgICAgICAgICAgICAgICArICIkc3Vycl9oaV9wdWE9W1x1ZGI4MC1cdWRiZmZdOyIgICAgICAgICAgICAgIC8vIEhpIFN1cnJvZ2F0ZXMgZm9yIFByaXZhdGUgVXNlLgorCisgICAgICAgICAgICAgICAgLy8gUHJpdmF0ZSBVc2UgQXJlYS4gIFRyZWF0IGxpa2UgaWRlb2dyYXBocy4KKyAgICAgICAgICAgICAgICArICIkcHVhPVtcdWUwMDAtXHVmOGZmJHN1cnJfaGlfcHVhXTsiCisKKyAgICAgICAgICAgICAgICAvLyBpZ25vcmUgbm9uLXNwYWNpbmcgbWFya3MsIGVuY2xvc2luZyBtYXJrcywgYW5kIGZvcm1hdCBjaGFyYWN0ZXJzCisgICAgICAgICAgICAgICAgKyAiJF9pZ25vcmVfPVtbWzpNbjpdWzpNZTpdWzpDZjpdJHN1cnJfbG8kc3Vycl9oaV90YWddLVskX2RpY3Rpb25hcnlfXV07IgorCisgICAgICAgICAgICAgICAgLy8gSGluZGkgcGhyYXNlIHNlcGFyYXRvcnMKKyAgICAgICAgICAgICAgICArICIkZGFuZGE9W1x1MDk2NFx1MDk2NV07IgorCisgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVycyB0aGF0IGFsd2F5cyBjYXVzZSBhIGJyZWFrOiBFVFgsIHRhYiwgTEYsIEZGLCBMUywgYW5kIFBTCisgICAgICAgICAgICAgICAgKyAiJGJyZWFrPVtcdTAwMDNcdFxuXGZcdTIwMjhcdTIwMjldOyIKKworICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlcnMgdGhhdCBhbHdheXMgcHJldmVudCBhIGJyZWFrOiB0aGUgbm9uLWJyZWFraW5nIHNwYWNlCisgICAgICAgICAgICAgICAgLy8gYW5kIHNpbWlsYXIgY2hhcmFjdGVycworICAgICAgICAgICAgICAgICsgIiRuYnNwPVtcdTAwYTBcdTIwMDdcdTIwMTFcdWZlZmZdOyIKKworICAgICAgICAgICAgICAgIC8vIHdoaXRlc3BhY2U6IHNwYWNlIHNlcGFyYXRvcnMgYW5kIGNvbnRyb2wgY2hhcmFjdGVycywgZXhjZXB0IGZvcgorICAgICAgICAgICAgICAgIC8vIENSIGFuZCB0aGUgb3RoZXIgY2hhcmFjdGVycyBtZW50aW9uZWQgYWJvdmUKKyAgICAgICAgICAgICAgICArICIkc3BhY2U9W1tbOlpzOl1bOkNjOl1dLVskbmJzcCRicmVha1xyXV07IgorCisgICAgICAgICAgICAgICAgLy8gZGFzaGVzOiBkYXNoIHB1bmN0dWF0aW9uIGFuZCB0aGUgZGlzY3JldGlvbmFyeSBoeXBoZW4sIGV4Y2VwdCBmb3IKKyAgICAgICAgICAgICAgICAvLyBub24tYnJlYWtpbmcgaHlwaGVucworICAgICAgICAgICAgICAgICsgIiRkYXNoPVtbWzpQZDpdXHUwMGFkXS0kbmJzcF07IgorCisgICAgICAgICAgICAgICAgKyAiJHBhaXlhbm5vaT1bXHUwZTJmXTsiCisgICAgICAgICAgICAgICAgKyAiJG1haXlhbW9rPVtcdTBlNDZdOyIKKyAgICAgICAgICAgICAgICArICIkdGhhaV9ldGM9KCRwYWl5YW5ub2lcdTBlMjUkcGFpeWFubm9pKTsiCisKKyAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzIHRoYXQgc3RpY2sgdG8gYSB3b3JkIGlmIHRoZXkgcHJlY2VkZSBpdDogY3VycmVuY3kgc3ltYm9scworICAgICAgICAgICAgICAgIC8vIChleGNlcHQgdGhlIGNlbnRzIHNpZ24pIGFuZCBzdGFydGluZyBwdW5jdHVhdGlvbgorICAgICAgICAgICAgICAgICsgIiRwcmVfd29yZD1bW1s6U2M6XS1bXHUwMGEyXV1bOlBzOl1bOlBpOl1cXFwiXTsiCisKKyAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzIHRoYXQgc3RpY2sgdG8gYSB3b3JkIGlmIHRoZXkgZm9sbG93IGl0OiBlbmRpbmcgcHVuY3R1YXRpb24sCisgICAgICAgICAgICAgICAgLy8gb3RoZXIgcHVuY3R1YXRpb24gdGhhdCB1c3VhbGx5IG9jY3VycyBhdCB0aGUgZW5kIG9mIGEgc2VudGVuY2UsCisgICAgICAgICAgICAgICAgLy8gc21hbGwgS2FuYSBjaGFyYWN0ZXJzLCBzb21lIENKSyBkaWFjcml0aWNzLCBldGMuCisgICAgICAgICAgICAgICAgKyAiJHBvc3Rfd29yZD1bWzpQZTpdWzpQZjpdXFwhXFwlXFwuXFwsXFw6XFw7XFw/XFxcIlx1MDBhMlx1MDBiMFx1MDY2YVx1MjAzMC1cdTIwMzRcdTIxMDMiCisgICAgICAgICAgICAgICAgICAgICAgICArICJcdTIxMDVcdTIxMDlcdTMwMDFcdTMwMDJcdTMwMDVcdTMwNDFcdTMwNDNcdTMwNDVcdTMwNDdcdTMwNDlcdTMwNjMiCisgICAgICAgICAgICAgICAgICAgICAgICArICJcdTMwODNcdTMwODVcdTMwODdcdTMwOGVcdTMwOTktXHUzMDllXHUzMGExXHUzMGEzXHUzMGE1XHUzMGE3XHUzMGE5IgorICAgICAgICAgICAgICAgICAgICAgICAgKyAiXHUzMGMzXHUzMGUzXHUzMGU1XHUzMGU3XHUzMGVlXHUzMGY1XHUzMGY2XHUzMGZjLVx1MzBmZVx1ZmYwMVx1ZmYwZSIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIlx1ZmYxZiRtYWl5YW1va107IgorCisgICAgICAgICAgICAgICAgLy8gS2Fuamk6IGFjdHVhbGx5IGluY2x1ZGVzIGJvdGggS2FuamkgYW5kIEthbmEsIGV4Y2VwdCBmb3Igc21hbGwgS2FuYSBhbmQKKyAgICAgICAgICAgICAgICAvLyBDSksgZGlhY3JpdGljcworICAgICAgICAgICAgICAgICsgIiRrYW5qaT1bWyRzdXJyX2hpX2lkZW8kcHVhXHU0ZTAwLVx1OWZhNVx1ZjkwMC1cdWZhMmRcdTMwNDEtXHUzMDk0XHUzMGExLVx1MzBmYV0tWyRwb3N0X3dvcmQkX2lnbm9yZV9dXTsiCisKKyAgICAgICAgICAgICAgICAvLyBkaWdpdHMKKyAgICAgICAgICAgICAgICArICIkZGlnaXQ9W1s6TmQ6XVs6Tm86XV07IgorCisgICAgICAgICAgICAgICAgLy8gcHVuY3R1YXRpb24gdGhhdCBjYW4gb2NjdXIgaW4gdGhlIG1pZGRsZSBvZiBhIG51bWJlcjogcGVyaW9kcyBhbmQgY29tbWFzCisgICAgICAgICAgICAgICAgKyAiJG1pZF9udW09W1xcLlxcLF07IgorCisgICAgICAgICAgICAgICAgLy8gZXZlcnl0aGluZyBub3QgbWVudGlvbmVkIGFib3ZlLCBwbHVzIHRoZSBxdW90ZSBtYXJrcyAod2hpY2ggYXJlIGJvdGgKKyAgICAgICAgICAgICAgICAvLyA8cHJlLXdvcmQ+LCA8cG9zdC13b3JkPiwgYW5kIDxjaGFyPikKKyAgICAgICAgICAgICAgICArICIkY2hhcj1bXiRicmVhayRzcGFjZSRkYXNoJGthbmppJG5ic3AkX2lnbm9yZV8kcHJlX3dvcmQkcG9zdF93b3JkIgorICAgICAgICAgICAgICAgICAgICAgICAgKyAiJG1pZF9udW1cciRkYW5kYSRfZGljdGlvbmFyeV8kcGFpeWFubm9pJG1haXlhbW9rXTsiCisKKyAgICAgICAgICAgICAgICAvLyBhICJudW1iZXIiIGlzIGEgcnVuIG9mIHByZWZpeCBjaGFyYWN0ZXJzIGFuZCBkYXNoZXMsIGZvbGxvd2VkIGJ5IG9uZSBvcgorICAgICAgICAgICAgICAgIC8vIG1vcmUgZGlnaXRzIHdpdGggaXNvbGF0ZWQgbnVtYmVyLXB1bmN0dWF0aW9uIGNoYXJhY3RlcnMgaW50ZXJzcGVyc2VkCisgICAgICAgICAgICAgICAgKyAiJG51bWJlcj0oWyRwcmVfd29yZCRkYXNoXSokZGlnaXQrKCRtaWRfbnVtJGRpZ2l0KykqKTsiCisKKyAgICAgICAgICAgICAgICAvLyB0aGUgYmFzaWMgY29yZSBvZiBhIHdvcmQgY2FuIGJlIGVpdGhlciBhICJudW1iZXIiIGFzIGRlZmluZWQgYWJvdmUsIGEgc2luZ2xlCisgICAgICAgICAgICAgICAgLy8gIkthbmppIiBjaGFyYWN0ZXIsIG9yIGEgcnVuIG9mIGFueSBudW1iZXIgb2Ygbm90LWV4cGxpY2l0bHktbWVudGlvbmVkCisgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVycyAodGhpcyBpbmNsdWRlcyBMYXRpbiBsZXR0ZXJzKQorICAgICAgICAgICAgICAgICsgIiR3b3JkX2NvcmU9KCRjaGFyKnwka2Fuaml8JG51bWJlcnwkX2RpY3Rpb25hcnlfK3wkdGhhaV9ldGMpOyIKKworICAgICAgICAgICAgICAgIC8vIGEgd29yZCBtYXkgZW5kIHdpdGggYW4gb3B0aW9uYWwgc3VmZml4IHRoYXQgYmUgZWl0aGVyIGEgcnVuIG9mIG9uZSBvcgorICAgICAgICAgICAgICAgIC8vIG1vcmUgZGFzaGVzIG9yIGEgcnVuIG9mIHdvcmQtc3VmZml4IGNoYXJhY3RlcnMsIGZvbGxvd2VkIGJ5IGFuIG9wdGlvbmFsCisgICAgICAgICAgICAgICAgLy8gcnVuIG9mIHdoaXRlc3BhY2UKKyAgICAgICAgICAgICAgICArICIkd29yZF9zdWZmaXg9KCgkZGFzaCt8JHBvc3Rfd29yZCopJHNwYWNlKik7IgorCisgICAgICAgICAgICAgICAgLy8gYSB3b3JkLCB0aHVzLCBpcyBhbiBvcHRpb25hbCBydW4gb2Ygd29yZC1wcmVmaXggY2hhcmFjdGVycywgZm9sbG93ZWQgYnkKKyAgICAgICAgICAgICAgICAvLyBhIHdvcmQgY29yZSBhbmQgYSB3b3JkIHN1ZmZpeCAodGhlIHN5bnRheCBvZiA8d29yZC1jb3JlPiBhbmQgPHdvcmQtc3VmZml4PgorICAgICAgICAgICAgICAgIC8vIGFjdHVhbGx5IGFsbG93cyBlaXRoZXIgb2YgdGhlbSB0byBtYXRjaCB0aGUgZW1wdHkgc3RyaW5nLCBwdXR0aW5nIGEgYnJlYWsKKyAgICAgICAgICAgICAgICAvLyBiZXR3ZWVuIHRoaW5ncyBsaWtlICIpKCIgb3IgImFhYShhYWEiCisgICAgICAgICAgICAgICAgKyAiJHdvcmQ9KCRwcmVfd29yZCokd29yZF9jb3JlJHdvcmRfc3VmZml4KTsiCisKKyAgICAgICAgICAgICAgICAvLyBmaW5hbGx5LCB0aGUgcnVsZSB0aGF0IGRvZXMgdGhlIHdvcms6IEtlZXAgdG9nZXRoZXIgYW55IHJ1biBvZiB3b3JkcyB0aGF0CisgICAgICAgICAgICAgICAgLy8gYXJlIGpvaW5lZCBieSBydW5zIG9mIG9uZSBvZiBtb3JlIG5vbi1zcGFjaW5nIG1hcmsuICBBbHNvIGtlZXAgYSB0cmFpbGluZworICAgICAgICAgICAgICAgIC8vIGxpbmUtYnJlYWsgY2hhcmFjdGVyIG9yIENSTEYgY29tYmluYXRpb24gd2l0aCB0aGUgd29yZC4gIChsaW5lIHNlcGFyYXRvcnMKKyAgICAgICAgICAgICAgICAvLyAid2luIiBvdmVyIG5ic3AncykKKyAgICAgICAgICAgICAgICArICIkd29yZCgkbmJzcCskd29yZCkqKFxyPyRicmVhaz98JHBhaXlhbm5vaVxyJGJyZWFrfCRwYWl5YW5ub2kkYnJlYWspPzsiCisgICAgICAgICAgICAgICAgKyAiJHdvcmQoJG5ic3ArJHdvcmQpKiRwYWl5YW5ub2kvKFteW1x1MGUyNSRfaWdub3JlX11dfCIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIlx1MGUyNVteJHBhaXlhbm5vaSRfaWdub3JlX10pOyIKKyAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgIHsgIldvcmRCcmVha0RpY3Rpb25hcnkiLCB1cmwgfSwKKyAgICAgICAgICAgIHsgIkxpbmVCcmVha0RpY3Rpb25hcnkiLCB1cmwgfQorICAgICAgICB9OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQnVkZGhpc3RDYWxlbmRhclN5bWJvbHMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQnVkZGhpc3RDYWxlbmRhclN5bWJvbHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yNTUxMmJkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9CdWRkaGlzdENhbGVuZGFyU3ltYm9scy5qYXZhCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQXR0aWMvQnVkZGhpc3RDYWxlbmRhclN5bWJvbHMuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNTozOSAkIAorICogJFJldmlzaW9uOiAxLjQgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKKy8qKgorICogRGVmYXVsdCBEYXRlIEZvcm1hdCBzeW1ib2xzIGZvciB0aGUgQnVkZGhpc3QgQ2FsZW5kYXIKKyAqLworcHVibGljIGNsYXNzIEJ1ZGRoaXN0Q2FsZW5kYXJTeW1ib2xzIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBjb3B5cmlnaHQgPSAiQ29weXJpZ2h0IFx1MDBhOSAxOTk4IElCTSBDb3JwLiBBbGwgUmlnaHRzIFJlc2VydmVkLiI7CisKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0W11bXSBmQ29udGVudHMgPSB7CisgICAgICAgIHsgIkVyYXMiLCBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgICAgICJCRSIKKyAgICAgICAgICAgIH0gfSwKKyAgICB9OworCisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgICAgICByZXR1cm4gZkNvbnRlbnRzOworICAgIH0KK307CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0J1ZGRoaXN0Q2FsZW5kYXJTeW1ib2xzX2FyLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0J1ZGRoaXN0Q2FsZW5kYXJTeW1ib2xzX2FyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTQ4Y2VhYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQnVkZGhpc3RDYWxlbmRhclN5bWJvbHNfYXIuamF2YQpAQCAtMCwwICsxLDMzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0F0dGljL0J1ZGRoaXN0Q2FsZW5kYXJTeW1ib2xzX2FyLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDU6MzkgJCAKKyAqICRSZXZpc2lvbjogMS40ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCisvKioKKyAqIERlZmF1bHQgRGF0ZSBGb3JtYXQgc3ltYm9scyBmb3IgdGhlIEJ1ZGRoaXN0IENhbGVuZGFyCisgKi8KK3B1YmxpYyBjbGFzcyBCdWRkaGlzdENhbGVuZGFyU3ltYm9sc19hciBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgY29weXJpZ2h0ID0gIkNvcHlyaWdodCBcdTAwYTkgMTk5OSBJQk0gQ29ycC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4iOworCisgICAgc3RhdGljIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0geworICAgICAgICB7ICJFcmFzIiwgbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICAgICAiXHUwNjI3XHUwNjQ0XHUwNjJBXHUwNjQyXHUwNjQ4XHUwNjRBXHUwNjQ1IFx1MDYyN1x1MDY0NFx1MDYyOFx1MDY0OFx1MDYzMFx1MDY0QSIKKyAgICAgICAgICAgIH0gfSwKKyAgICB9OworCisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgICAgICByZXR1cm4gZkNvbnRlbnRzOworICAgIH0KK307CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0J1ZGRoaXN0Q2FsZW5kYXJTeW1ib2xzX2h1LmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0J1ZGRoaXN0Q2FsZW5kYXJTeW1ib2xzX2h1LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGE3M2RmNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQnVkZGhpc3RDYWxlbmRhclN5bWJvbHNfaHUuamF2YQpAQCAtMCwwICsxLDMzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0F0dGljL0J1ZGRoaXN0Q2FsZW5kYXJTeW1ib2xzX2h1LmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDU6MzkgJCAKKyAqICRSZXZpc2lvbjogMS40ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCisvKioKKyAqIEh1bmdhcmlhbiBEYXRlIEZvcm1hdCBzeW1ib2xzIGZvciB0aGUgQnVkZGhpc3QgQ2FsZW5kYXIKKyAqLworcHVibGljIGNsYXNzIEJ1ZGRoaXN0Q2FsZW5kYXJTeW1ib2xzX2h1IGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBjb3B5cmlnaHQgPSAiQ29weXJpZ2h0IFx1MDBhOSAxOTk4IElCTSBDb3JwLiBBbGwgUmlnaHRzIFJlc2VydmVkLiI7CisKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0W11bXSBmQ29udGVudHMgPSB7CisgICAgICAgIHsgIkVyYXMiLCBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgICAgICJCSyIKKyAgICAgICAgICAgIH0gfSwKKyAgICB9OworCisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgICAgICByZXR1cm4gZkNvbnRlbnRzOworICAgIH0KK307CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0J1ZGRoaXN0Q2FsZW5kYXJTeW1ib2xzX3RoLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0J1ZGRoaXN0Q2FsZW5kYXJTeW1ib2xzX3RoLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjUyNjliZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQnVkZGhpc3RDYWxlbmRhclN5bWJvbHNfdGguamF2YQpAQCAtMCwwICsxLDMzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0F0dGljL0J1ZGRoaXN0Q2FsZW5kYXJTeW1ib2xzX3RoLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDU6MzkgJCAKKyAqICRSZXZpc2lvbjogMS40ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCisvKioKKyAqIFRoYWkgdmVyc2lvbiBvZiB0aGUgRGF0ZSBGb3JtYXQgc3ltYm9scyBmb3IgdGhlIEJ1ZGRoaXN0IGNhbGVuZGFyCisgKi8KK3B1YmxpYyBjbGFzcyBCdWRkaGlzdENhbGVuZGFyU3ltYm9sc190aCBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgY29weXJpZ2h0ID0gIkNvcHlyaWdodCBcdTAwYTkgMTk5OCBJQk0gQ29ycC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4iOworCisgICAgc3RhdGljIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0geworICAgICAgICB7ICJFcmFzIiwgbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICAgICAiXHUwZTFlLlx1MGUyOC4iCisgICAgICAgICAgICB9IH0sCisgICAgfTsKKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgICAgICAgcmV0dXJuIGZDb250ZW50czsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9DYWxlbmRhckRhdGEuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQ2FsZW5kYXJEYXRhLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGRjZWE0YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQ2FsZW5kYXJEYXRhLmphdmEKQEAgLTAsMCArMSwzMiBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQXR0aWMvQ2FsZW5kYXJEYXRhLmphdmEsdiAkCisgKiAkRGF0ZTogMjAwMi8wOC8xMyAyMzozNjoxOSAkCisgKiAkUmV2aXNpb246IDEuMyAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCisvLyBEZWZhdWx0CitwdWJsaWMgY2xhc3MgQ2FsZW5kYXJEYXRhIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgTGlzdFJlc291cmNlQnVuZGxlCisgICAgICovCisgICAgcHVibGljIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICAgICAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgICAgICAgICB7ICJXZWVrZW5kIiwKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAvLyBTYXR1cmRheTpTdW5kYXkKKyAgICAgICAgICAgICAgICAgICAgIjciLCAiMCIsIC8vIG9uc2V0IGRvdywgbWlsbGlzIGluIGRheQorICAgICAgICAgICAgICAgICAgICAiMiIsICIwIiAgLy8gY2Vhc2UgZG93LCBtaWxsaXMgaW4gZGF5CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgfTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0NhbGVuZGFyRGF0YV9hcl9BRS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9DYWxlbmRhckRhdGFfYXJfQUUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43ZDI2YzgyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9DYWxlbmRhckRhdGFfYXJfQUUuamF2YQpAQCAtMCwwICsxLDMyIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9BdHRpYy9DYWxlbmRhckRhdGFfYXJfQUUuamF2YSx2ICQKKyAqICREYXRlOiAyMDAyLzA4LzEzIDIzOjM2OjE5ICQKKyAqICRSZXZpc2lvbjogMS4zICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKKy8vIEFyYWJpYywgVW5pdGVkIEFyYWIgRW1pcmF0ZXMKK3B1YmxpYyBjbGFzcyBDYWxlbmRhckRhdGFfYXJfQUUgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIC8qKgorICAgICAqIE92ZXJyaWRlcyBMaXN0UmVzb3VyY2VCdW5kbGUKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgICAgICAgIHsgIldlZWtlbmQiLAorICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IC8vIFRodXJzZGF5OkZyaWRheQorICAgICAgICAgICAgICAgICAgICAiNSIsICIwIiwgLy8gb25zZXQgZG93LCBtaWxsaXMgaW4gZGF5CisgICAgICAgICAgICAgICAgICAgICI3IiwgIjAiICAvLyBjZWFzZSBkb3csIG1pbGxpcyBpbiBkYXkKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICB9OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQ2FsZW5kYXJEYXRhX2FyX0JILmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0NhbGVuZGFyRGF0YV9hcl9CSC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjc1MTIyMzMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0NhbGVuZGFyRGF0YV9hcl9CSC5qYXZhCkBAIC0wLDAgKzEsMzIgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0F0dGljL0NhbGVuZGFyRGF0YV9hcl9CSC5qYXZhLHYgJAorICogJERhdGU6IDIwMDIvMDgvMTMgMjM6MzY6MTkgJAorICogJFJldmlzaW9uOiAxLjMgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworLy8gQXJhYmljLCBCYWhyYWluCitwdWJsaWMgY2xhc3MgQ2FsZW5kYXJEYXRhX2FyX0JIIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgTGlzdFJlc291cmNlQnVuZGxlCisgICAgICovCisgICAgcHVibGljIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICAgICAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgICAgICAgICB7ICJXZWVrZW5kIiwKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAvLyBUaHVyc2RheTpGcmlkYXkKKyAgICAgICAgICAgICAgICAgICAgIjUiLCAiMCIsIC8vIG9uc2V0IGRvdywgbWlsbGlzIGluIGRheQorICAgICAgICAgICAgICAgICAgICAiNyIsICIwIiAgLy8gY2Vhc2UgZG93LCBtaWxsaXMgaW4gZGF5CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgfTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0NhbGVuZGFyRGF0YV9hcl9EWi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9DYWxlbmRhckRhdGFfYXJfRFouamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xNDE3OTVmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9DYWxlbmRhckRhdGFfYXJfRFouamF2YQpAQCAtMCwwICsxLDMyIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9BdHRpYy9DYWxlbmRhckRhdGFfYXJfRFouamF2YSx2ICQKKyAqICREYXRlOiAyMDAyLzA4LzEzIDIzOjM2OjE5ICQKKyAqICRSZXZpc2lvbjogMS4zICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKKy8vIEFyYWJpYywgQWxnZXJpYQorcHVibGljIGNsYXNzIENhbGVuZGFyRGF0YV9hcl9EWiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIExpc3RSZXNvdXJjZUJ1bmRsZQorICAgICAqLworICAgIHB1YmxpYyBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgICAgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICAgICAgICAgeyAiV2Vla2VuZCIsCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgLy8gVGh1cnNkYXk6RnJpZGF5CisgICAgICAgICAgICAgICAgICAgICI1IiwgIjAiLCAvLyBvbnNldCBkb3csIG1pbGxpcyBpbiBkYXkKKyAgICAgICAgICAgICAgICAgICAgIjciLCAiMCIgIC8vIGNlYXNlIGRvdywgbWlsbGlzIGluIGRheQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgIH07CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9DYWxlbmRhckRhdGFfYXJfRUcuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQ2FsZW5kYXJEYXRhX2FyX0VHLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjBjZTg5ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQ2FsZW5kYXJEYXRhX2FyX0VHLmphdmEKQEAgLTAsMCArMSwzMiBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQXR0aWMvQ2FsZW5kYXJEYXRhX2FyX0VHLmphdmEsdiAkCisgKiAkRGF0ZTogMjAwMi8wOC8xMyAyMzozNjoxOSAkCisgKiAkUmV2aXNpb246IDEuMyAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCisvLyBBcmFiaWMsIEVneXB0CitwdWJsaWMgY2xhc3MgQ2FsZW5kYXJEYXRhX2FyX0VHIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgTGlzdFJlc291cmNlQnVuZGxlCisgICAgICovCisgICAgcHVibGljIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICAgICAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgICAgICAgICB7ICJXZWVrZW5kIiwKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAvLyBGcmlkYXk6U2F0dXJkYXkKKyAgICAgICAgICAgICAgICAgICAgIjYiLCAiMCIsIC8vIG9uc2V0IGRvdywgbWlsbGlzIGluIGRheQorICAgICAgICAgICAgICAgICAgICAiMSIsICIwIiAgLy8gY2Vhc2UgZG93LCBtaWxsaXMgaW4gZGF5CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgfTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0NhbGVuZGFyRGF0YV9hcl9KTy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9DYWxlbmRhckRhdGFfYXJfSk8uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42MTU3MWE3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9DYWxlbmRhckRhdGFfYXJfSk8uamF2YQpAQCAtMCwwICsxLDMyIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9BdHRpYy9DYWxlbmRhckRhdGFfYXJfSk8uamF2YSx2ICQKKyAqICREYXRlOiAyMDAyLzA4LzEzIDIzOjM2OjE5ICQKKyAqICRSZXZpc2lvbjogMS4zICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKKy8vIEFyYWJpYywgSm9yZGFuCitwdWJsaWMgY2xhc3MgQ2FsZW5kYXJEYXRhX2FyX0pPIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgTGlzdFJlc291cmNlQnVuZGxlCisgICAgICovCisgICAgcHVibGljIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICAgICAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgICAgICAgICB7ICJXZWVrZW5kIiwKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAvLyBUaHVyc2RheTpGcmlkYXkKKyAgICAgICAgICAgICAgICAgICAgIjUiLCAiMCIsIC8vIG9uc2V0IGRvdywgbWlsbGlzIGluIGRheQorICAgICAgICAgICAgICAgICAgICAiNyIsICIwIiAgLy8gY2Vhc2UgZG93LCBtaWxsaXMgaW4gZGF5CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgfTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0NhbGVuZGFyRGF0YV9hcl9LVy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9DYWxlbmRhckRhdGFfYXJfS1cuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jMDUwYjQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9DYWxlbmRhckRhdGFfYXJfS1cuamF2YQpAQCAtMCwwICsxLDMyIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9BdHRpYy9DYWxlbmRhckRhdGFfYXJfS1cuamF2YSx2ICQKKyAqICREYXRlOiAyMDAyLzA4LzEzIDIzOjM2OjE5ICQKKyAqICRSZXZpc2lvbjogMS4zICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKKy8vIEFyYWJpYywgS3V3YWl0CitwdWJsaWMgY2xhc3MgQ2FsZW5kYXJEYXRhX2FyX0tXIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgTGlzdFJlc291cmNlQnVuZGxlCisgICAgICovCisgICAgcHVibGljIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICAgICAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgICAgICAgICB7ICJXZWVrZW5kIiwKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAvLyBUaHVyc2RheTpGcmlkYXkKKyAgICAgICAgICAgICAgICAgICAgIjUiLCAiMCIsIC8vIG9uc2V0IGRvdywgbWlsbGlzIGluIGRheQorICAgICAgICAgICAgICAgICAgICAiNyIsICIwIiAgLy8gY2Vhc2UgZG93LCBtaWxsaXMgaW4gZGF5CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgfTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0NhbGVuZGFyRGF0YV9hcl9PTS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9DYWxlbmRhckRhdGFfYXJfT00uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mZDY3N2FjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9DYWxlbmRhckRhdGFfYXJfT00uamF2YQpAQCAtMCwwICsxLDMyIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9BdHRpYy9DYWxlbmRhckRhdGFfYXJfT00uamF2YSx2ICQKKyAqICREYXRlOiAyMDAyLzA4LzEzIDIzOjM2OjE5ICQKKyAqICRSZXZpc2lvbjogMS4zICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKKy8vIEFyYWJpYywgT21hbgorcHVibGljIGNsYXNzIENhbGVuZGFyRGF0YV9hcl9PTSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIExpc3RSZXNvdXJjZUJ1bmRsZQorICAgICAqLworICAgIHB1YmxpYyBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgICAgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICAgICAgICAgeyAiV2Vla2VuZCIsCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgLy8gVGh1cnNkYXk6RnJpZGF5CisgICAgICAgICAgICAgICAgICAgICI1IiwgIjAiLCAvLyBvbnNldCBkb3csIG1pbGxpcyBpbiBkYXkKKyAgICAgICAgICAgICAgICAgICAgIjciLCAiMCIgIC8vIGNlYXNlIGRvdywgbWlsbGlzIGluIGRheQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgIH07CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9DYWxlbmRhckRhdGFfYXJfUUEuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQ2FsZW5kYXJEYXRhX2FyX1FBLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGRkNGRkZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQ2FsZW5kYXJEYXRhX2FyX1FBLmphdmEKQEAgLTAsMCArMSwzMiBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQXR0aWMvQ2FsZW5kYXJEYXRhX2FyX1FBLmphdmEsdiAkCisgKiAkRGF0ZTogMjAwMi8wOC8xMyAyMzozNjoxOSAkCisgKiAkUmV2aXNpb246IDEuMyAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCisvLyBBcmFiaWMsIFFhdGFyCitwdWJsaWMgY2xhc3MgQ2FsZW5kYXJEYXRhX2FyX1FBIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgTGlzdFJlc291cmNlQnVuZGxlCisgICAgICovCisgICAgcHVibGljIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICAgICAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgICAgICAgICB7ICJXZWVrZW5kIiwKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAvLyBUaHVyc2RheTpGcmlkYXkKKyAgICAgICAgICAgICAgICAgICAgIjUiLCAiMCIsIC8vIG9uc2V0IGRvdywgbWlsbGlzIGluIGRheQorICAgICAgICAgICAgICAgICAgICAiNyIsICIwIiAgLy8gY2Vhc2UgZG93LCBtaWxsaXMgaW4gZGF5CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgfTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0NhbGVuZGFyRGF0YV9hcl9TQS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9DYWxlbmRhckRhdGFfYXJfU0EuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yM2E5MTY0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9DYWxlbmRhckRhdGFfYXJfU0EuamF2YQpAQCAtMCwwICsxLDMyIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9BdHRpYy9DYWxlbmRhckRhdGFfYXJfU0EuamF2YSx2ICQKKyAqICREYXRlOiAyMDAyLzA4LzEzIDIzOjM2OjE5ICQKKyAqICRSZXZpc2lvbjogMS4zICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKKy8vIEFyYWJpYywgU2F1ZGkgQXJhYmlhCitwdWJsaWMgY2xhc3MgQ2FsZW5kYXJEYXRhX2FyX1NBIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgTGlzdFJlc291cmNlQnVuZGxlCisgICAgICovCisgICAgcHVibGljIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICAgICAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgICAgICAgICB7ICJXZWVrZW5kIiwKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAvLyBUaHVyc2RheTpGcmlkYXkKKyAgICAgICAgICAgICAgICAgICAgIjUiLCAiMCIsIC8vIG9uc2V0IGRvdywgbWlsbGlzIGluIGRheQorICAgICAgICAgICAgICAgICAgICAiNyIsICIwIiAgLy8gY2Vhc2UgZG93LCBtaWxsaXMgaW4gZGF5CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgfTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0NhbGVuZGFyRGF0YV9hcl9TWS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9DYWxlbmRhckRhdGFfYXJfU1kuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40YWYxOTQyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9DYWxlbmRhckRhdGFfYXJfU1kuamF2YQpAQCAtMCwwICsxLDMyIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9BdHRpYy9DYWxlbmRhckRhdGFfYXJfU1kuamF2YSx2ICQKKyAqICREYXRlOiAyMDAyLzA4LzEzIDIzOjM2OjE5ICQKKyAqICRSZXZpc2lvbjogMS4zICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKKy8vIEFyYWJpYywgU3lyaWEKK3B1YmxpYyBjbGFzcyBDYWxlbmRhckRhdGFfYXJfU1kgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIC8qKgorICAgICAqIE92ZXJyaWRlcyBMaXN0UmVzb3VyY2VCdW5kbGUKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgICAgICAgIHsgIldlZWtlbmQiLAorICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IC8vIEZyaWRheTpTYXR1cmRheQorICAgICAgICAgICAgICAgICAgICAiNiIsICIwIiwgLy8gb25zZXQgZG93LCBtaWxsaXMgaW4gZGF5CisgICAgICAgICAgICAgICAgICAgICIxIiwgIjAiICAvLyBjZWFzZSBkb3csIG1pbGxpcyBpbiBkYXkKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICB9OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQ2FsZW5kYXJEYXRhX2FyX1lFLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0NhbGVuZGFyRGF0YV9hcl9ZRS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmEzMWY1MWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0NhbGVuZGFyRGF0YV9hcl9ZRS5qYXZhCkBAIC0wLDAgKzEsMzIgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0F0dGljL0NhbGVuZGFyRGF0YV9hcl9ZRS5qYXZhLHYgJAorICogJERhdGU6IDIwMDIvMDgvMTMgMjM6MzY6MTkgJAorICogJFJldmlzaW9uOiAxLjMgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworLy8gQXJhYmljLCBZZW1lbgorcHVibGljIGNsYXNzIENhbGVuZGFyRGF0YV9hcl9ZRSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIExpc3RSZXNvdXJjZUJ1bmRsZQorICAgICAqLworICAgIHB1YmxpYyBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgICAgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICAgICAgICAgeyAiV2Vla2VuZCIsCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgLy8gVGh1cnNkYXk6RnJpZGF5CisgICAgICAgICAgICAgICAgICAgICI1IiwgIjAiLCAvLyBvbnNldCBkb3csIG1pbGxpcyBpbiBkYXkKKyAgICAgICAgICAgICAgICAgICAgIjciLCAiMCIgIC8vIGNlYXNlIGRvdywgbWlsbGlzIGluIGRheQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgIH07CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9DYWxlbmRhckRhdGFfaXdfSUwuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQ2FsZW5kYXJEYXRhX2l3X0lMLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWUyYmQyOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQ2FsZW5kYXJEYXRhX2l3X0lMLmphdmEKQEAgLTAsMCArMSwzMiBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQXR0aWMvQ2FsZW5kYXJEYXRhX2l3X0lMLmphdmEsdiAkCisgKiAkRGF0ZTogMjAwMi8wOC8xMyAyMzozNjoxOSAkCisgKiAkUmV2aXNpb246IDEuMyAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCisvLyBIZWJyZXcsIElzcmFlbAorcHVibGljIGNsYXNzIENhbGVuZGFyRGF0YV9pd19JTCBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIExpc3RSZXNvdXJjZUJ1bmRsZQorICAgICAqLworICAgIHB1YmxpYyBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgICAgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICAgICAgICAgeyAiV2Vla2VuZCIsCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgLy8gRnJpZGF5OlNhdHVyZGF5CisgICAgICAgICAgICAgICAgICAgICI2IiwgIjAiLCAvLyBvbnNldCBkb3csIG1pbGxpcyBpbiBkYXkKKyAgICAgICAgICAgICAgICAgICAgIjEiLCAiMCIgIC8vIGNlYXNlIGRvdywgbWlsbGlzIGluIGRheQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgIH07CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9DYWxlbmRhckRhdGFfbXNfTVkuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQ2FsZW5kYXJEYXRhX21zX01ZLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTUwYjdhYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQ2FsZW5kYXJEYXRhX21zX01ZLmphdmEKQEAgLTAsMCArMSwzMiBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQXR0aWMvQ2FsZW5kYXJEYXRhX21zX01ZLmphdmEsdiAkCisgKiAkRGF0ZTogMjAwMi8wOC8xMyAyMzozNjoxOSAkCisgKiAkUmV2aXNpb246IDEuNCAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCisvLyBCYWhhc2EgTWFsYXlzaWEsIE1hbGF5c2lhCitwdWJsaWMgY2xhc3MgQ2FsZW5kYXJEYXRhX21zX01ZIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgTGlzdFJlc291cmNlQnVuZGxlCisgICAgICovCisgICAgcHVibGljIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICAgICAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgICAgICAgICB7ICJXZWVrZW5kIiwKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAvLyBTYXR1cmRheSAtIGhhbGYgZGF5IGluIHNvbWUgb2ZmaWNlczpTdW5kYXkKKyAgICAgICAgICAgICAgICAgICAgIjAiLCAiMCIsIC8vIG9uc2V0IGRvdywgbWlsbGlzIGluIGRheQorICAgICAgICAgICAgICAgICAgICAiMCIsICIwIiAgLy8gY2Vhc2UgZG93LCBtaWxsaXMgaW4gZGF5CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgfTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0NhbGVuZGFyRGF0YV90ZV9JTi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9DYWxlbmRhckRhdGFfdGVfSU4uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41ZTViNWE5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9DYWxlbmRhckRhdGFfdGVfSU4uamF2YQpAQCAtMCwwICsxLDMyIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9BdHRpYy9DYWxlbmRhckRhdGFfdGVfSU4uamF2YSx2ICQKKyAqICREYXRlOiAyMDAyLzA4LzEzIDIzOjM2OjE5ICQKKyAqICRSZXZpc2lvbjogMS4zICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKKy8vIFRlbHVndSwgSW5kaWEKK3B1YmxpYyBjbGFzcyBDYWxlbmRhckRhdGFfdGVfSU4gZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIC8qKgorICAgICAqIE92ZXJyaWRlcyBMaXN0UmVzb3VyY2VCdW5kbGUKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgICAgICAgIHsgIldlZWtlbmQiLAorICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IC8vIFN1bmRheQorICAgICAgICAgICAgICAgICAgICAiMSIsICIwIiwgLy8gb25zZXQgZG93LCBtaWxsaXMgaW4gZGF5CisgICAgICAgICAgICAgICAgICAgICIyIiwgIjAiICAvLyBjZWFzZSBkb3csIG1pbGxpcyBpbiBkYXkKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICB9OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQ2hpbmVzZUNhbGVuZGFyU3ltYm9scy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9DaGluZXNlQ2FsZW5kYXJTeW1ib2xzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTc2NmIzNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQ2hpbmVzZUNhbGVuZGFyU3ltYm9scy5qYXZhCkBAIC0wLDAgKzEsNDggQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0F0dGljL0NoaW5lc2VDYWxlbmRhclN5bWJvbHMuamF2YSx2ICQKKyAqICREYXRlOiAyMDAyLzA4LzEzIDIzOjM3OjQ4ICQKKyAqICRSZXZpc2lvbjogMS42ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKKy8qKgorICogRGVmYXVsdCBEYXRlIEZvcm1hdCBzeW1ib2xzIGZvciB0aGUgQ2hpbmVzZSBjYWxlbmRhci4KKyAqLworcHVibGljIGNsYXNzIENoaW5lc2VDYWxlbmRhclN5bWJvbHMgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworCisgICAgc3RhdGljIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0geworICAgICAgICB7ICJJc0xlYXBNb250aCIsCisgICAgICAgICAgICBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgICAgICIiLAorICAgICAgICAgICAgICAgICIqIgorICAgICAgICAgICAgfSwKKyAgICAgICAgfSwKKyAgICAgICAgeyAiRGF0ZVRpbWVQYXR0ZXJucyIsCisgICAgICAgICAgICBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgICAgICJoOm1tOnNzIGEgeiIsIC8vIGZ1bGwgdGltZSBwYXR0ZXJuCisgICAgICAgICAgICAgICAgImg6bW06c3MgYSB6IiwgLy8gbG9uZyB0aW1lIHBhdHRlcm4KKyAgICAgICAgICAgICAgICAiaDptbTpzcyBhIiwgLy8gbWVkaXVtIHRpbWUgcGF0dGVybgorICAgICAgICAgICAgICAgICJoOm1tIGEiLCAvLyBzaG9ydCB0aW1lIHBhdHRlcm4KKyAgICAgICAgICAgICAgICAvLyBUT0RPIEZpeCB0aGUgZm9sbG93aW5nCisgICAgICAgICAgICAgICAgIkVFRUUgeSd4J0ctTWwtZCIsIC8vIGZ1bGwgZGF0ZSBwYXR0ZXJuCisgICAgICAgICAgICAgICAgInkneCdHLU1sLWQiLCAvLyBsb25nIGRhdGUgcGF0dGVybgorICAgICAgICAgICAgICAgICJ5J3gnRy1NbC1kIiwgLy8gbWVkaXVtIGRhdGUgcGF0dGVybgorICAgICAgICAgICAgICAgICJ5J3gnRy1NbC1kIiwgLy8gc2hvcnQgZGF0ZSBwYXR0ZXJuCisgICAgICAgICAgICAgICAgInsxfSB7MH0iIC8vIGRhdGUtdGltZSBwYXR0ZXJuCisgICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgfTsKKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgICAgICAgcmV0dXJuIGZDb250ZW50czsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hlYnJld0NhbGVuZGFyU3ltYm9scy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9IZWJyZXdDYWxlbmRhclN5bWJvbHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mNjBjMWEzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9IZWJyZXdDYWxlbmRhclN5bWJvbHMuamF2YQpAQCAtMCwwICsxLDQ4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0F0dGljL0hlYnJld0NhbGVuZGFyU3ltYm9scy5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA1OjQzICQgCisgKiAkUmV2aXNpb246IDEuNCAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworLyoqCisgKiBEZWZhdWx0IERhdGUgRm9ybWF0IHN5bWJvbHMgZm9yIHRoZSBIZWJyZXcgQ2FsZW5kYXIKKyAqLworcHVibGljIGNsYXNzIEhlYnJld0NhbGVuZGFyU3ltYm9scyBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgY29weXJpZ2h0ID0gIkNvcHlyaWdodCBcdTAwYTkgMTk5OCBJQk0gQ29ycC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4iOworCisgICAgc3RhdGljIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0geworICAgICAgICB7ICJNb250aE5hbWVzIiwgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgIlRpc2hyaSIsCisgICAgICAgICAgICAgICAgIkhlc2h2YW4iLAorICAgICAgICAgICAgICAgICJLaXNsZXYiLAorICAgICAgICAgICAgICAgICJUZXZldCIsCisgICAgICAgICAgICAgICAgIlNoZXZhdCIsCisgICAgICAgICAgICAgICAgIkFkYXIgSSIsICAgICAgIC8vIExlYXAgeWVhcnMgb25seQorICAgICAgICAgICAgICAgICJBZGFyIiwKKyAgICAgICAgICAgICAgICAiTmlzYW4iLAorICAgICAgICAgICAgICAgICJJeWFyIiwKKyAgICAgICAgICAgICAgICAiU2l2YW4iLAorICAgICAgICAgICAgICAgICJUYW11eiIsCisgICAgICAgICAgICAgICAgIkF2IiwKKyAgICAgICAgICAgICAgICAiRWx1bCIsCisgICAgICAgICAgICB9IH0sCisgICAgICAgIHsgIkVyYXMiLCBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAiQU0iCisgICAgICAgICAgICB9IH0sCisgICAgfTsKKyAgICAgICAgCisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgICAgICByZXR1cm4gZkNvbnRlbnRzOworICAgIH0KK307CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hlYnJld0NhbGVuZGFyU3ltYm9sc19maS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9IZWJyZXdDYWxlbmRhclN5bWJvbHNfZmkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40ZjVkY2ZmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9IZWJyZXdDYWxlbmRhclN5bWJvbHNfZmkuamF2YQpAQCAtMCwwICsxLDUxIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0F0dGljL0hlYnJld0NhbGVuZGFyU3ltYm9sc19maS5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA1OjQzICQgCisgKiAkUmV2aXNpb246IDEuNCAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworLyoqCisgKiBGaW5uaXNoIGRhdGUgZm9ybWF0IHN5bWJvbHMgZm9yIHRoZSBIZWJyZXcgQ2FsZW5kYXIKKyAqLworcHVibGljIGNsYXNzIEhlYnJld0NhbGVuZGFyU3ltYm9sc19maSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgY29weXJpZ2h0ID0gIkNvcHlyaWdodCBcdTAwYTkgMTk5OCBJQk0gQ29ycC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4iOworCisgICAgc3RhdGljIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0geworICAgICAgICB7ICJOYW1lIiwgICAgICAgIkp1dXRhbGFpbmVuIGthbGVudGVyaSIgfSwKKyAgICAgICAgCisgICAgICAgIHsgIk1vbnRoTmFtZXMiLCBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgICAgICJUaVx1MDE2MXJcdTAwRUNrdXUiLCAgICAgICAvLyBUaXNocmkKKyAgICAgICAgICAgICAgICAiSGVcdTAxNjF2XHUwMEUxbmt1dSIsICAgICAgLy8gSGVzaHZhbgorICAgICAgICAgICAgICAgICJLaXNsXHUwMEU5dmt1dSIsICAgICAgICAgICAvLyBLaXNsZXYKKyAgICAgICAgICAgICAgICAiVGV2XHUwMEU5dGt1dSIsICAgICAgICAgICAgLy8gVGV2ZXQKKyAgICAgICAgICAgICAgICAiXHUwMTYwZXZhdGt1dSIsICAgICAgICAgICAgLy8gU2hldmF0CisgICAgICAgICAgICAgICAgIkFkXHUwMEUxcmt1dSIsICAgICAgICAgICAgIC8vIEFkYXIgSQorICAgICAgICAgICAgICAgICJBZFx1MDBFMXJrdXUgSUkiLCAgICAgICAgICAvLyBBZGFyCisgICAgICAgICAgICAgICAgIk5pc1x1MDBFMW5rdXUiLCAgICAgICAgICAgIC8vIE5pc2FuCisgICAgICAgICAgICAgICAgIklqalx1MDBFMXJrdXUiLCAgICAgICAgICAgIC8vIEl5YXIKKyAgICAgICAgICAgICAgICAiU2l2XHUwMEUxbmt1dSIsICAgICAgICAgICAgLy8gU2l2YW4KKyAgICAgICAgICAgICAgICAiVGFtbVx1MDBGQXprdXUiLCAgICAgICAgICAgLy8gVGFtdXoKKyAgICAgICAgICAgICAgICAiQWJrdXUiLCAgICAgICAgICAgICAgICAgICAgLy8gQXYKKyAgICAgICAgICAgICAgICAiRWxcdTAwRkFsa3V1IiwgICAgICAgICAgICAgLy8gRWx1bAorICAgICAgICAgICAgfSB9LAorCisgICAgICAgIHsgIkVyYXMiLCBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAiQU0iICAgICAgICAgICAgICAgICAgICAgICAgLy8gQW5ubyBNdW5kaQorICAgICAgICAgICAgfSB9LAorICAgIH07CisKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICAgICAgIHJldHVybiBmQ29udGVudHM7CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSGVicmV3Q2FsZW5kYXJTeW1ib2xzX2ZyLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hlYnJld0NhbGVuZGFyU3ltYm9sc19mci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmExMDI0YmYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hlYnJld0NhbGVuZGFyU3ltYm9sc19mci5qYXZhCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQXR0aWMvSGVicmV3Q2FsZW5kYXJTeW1ib2xzX2ZyLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDU6NDMgJCAKKyAqICRSZXZpc2lvbjogMS40ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCisvKioKKyAqIEZyZW5jaCBkYXRlIGZvcm1hdCBzeW1ib2xzIGZvciB0aGUgSGVicmV3IENhbGVuZGFyLgorICogVGhpcyBkYXRhIGFjdHVhbGx5IGFwcGxpZXMgdG8gRnJlbmNoIENhbmFkaWFuLiAgSWYgd2UgcmVjZWl2ZQorICogb2ZmaWNpYWwgRnJlbmNoIGRhdGEgZnJvbSBvdXIgRnJhbmNlIG9mZmljZSwgd2Ugc2hvdWxkIG1vdmUgdGhlIAorICogRnJlbmNoIENhbmFkaWFuIGRhdGEgKGlmIGl0J3MgZGlmZmVyZW50KSBkb3duIGludG8gX2ZyX0NBCisgKi8KK3B1YmxpYyBjbGFzcyBIZWJyZXdDYWxlbmRhclN5bWJvbHNfZnIgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGNvcHlyaWdodCA9ICJDb3B5cmlnaHQgXHUwMGE5IDE5OTggSUJNIENvcnAuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIjsKKworICAgIHN0YXRpYyBmaW5hbCBPYmplY3RbXVtdIGZDb250ZW50cyA9IHsKKyAgICAgICAgeyAiTW9udGhOYW1lcyIsIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAgICAgIlRpc3NlcmkiLCAgICAgIC8vIFRpc2hyaQorICAgICAgICAgICAgICAgICJIZXN2YW4iLCAgICAgICAvLyBIZXNodmFuCisgICAgICAgICAgICAgICAgIktpc2xldiIsICAgICAgIC8vIEtpc2xldgorICAgICAgICAgICAgICAgICJUXHUwMGU5YmV0aCIsICAvLyBUZXZldAorICAgICAgICAgICAgICAgICJTY2hcdTAwZTliYXQiLCAvLyBTaGV2YXQKKyAgICAgICAgICAgICAgICAiQWRhciIsICAgICAgICAgLy8gQWRhciBJCisgICAgICAgICAgICAgICAgIkFkYXIgSUkiLCAgICAgIC8vIEFkYXIKKyAgICAgICAgICAgICAgICAiTmlzc2FuIiwgICAgICAgLy8gTmlzYW4KKyAgICAgICAgICAgICAgICAiSXlhciIsICAgICAgICAgLy8gSXlhcgorICAgICAgICAgICAgICAgICJTaXZhbiIsICAgICAgICAvLyBTaXZhbgorICAgICAgICAgICAgICAgICJUYW1vdXoiLCAgICAgICAvLyBUYW11egorICAgICAgICAgICAgICAgICJBYiIsICAgICAgICAgICAvLyBBdgorICAgICAgICAgICAgICAgICJFbGxvdWwiLCAgICAgICAvLyBFbHVsCisgICAgICAgICAgICB9IH0sCisgICAgfTsKKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgICAgICAgcmV0dXJuIGZDb250ZW50czsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9IZWJyZXdDYWxlbmRhclN5bWJvbHNfaHUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSGVicmV3Q2FsZW5kYXJTeW1ib2xzX2h1LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzY1NGYxZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSGVicmV3Q2FsZW5kYXJTeW1ib2xzX2h1LmphdmEKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9BdHRpYy9IZWJyZXdDYWxlbmRhclN5bWJvbHNfaHUuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNTo0MyAkIAorICogJFJldmlzaW9uOiAxLjQgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKKy8qKgorICogSHVuZ2FyaWFuIGRhdGUgZm9ybWF0IHN5bWJvbHMgZm9yIHRoZSBIZWJyZXcgQ2FsZW5kYXIKKyAqLworcHVibGljIGNsYXNzIEhlYnJld0NhbGVuZGFyU3ltYm9sc19odSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgY29weXJpZ2h0ID0gIkNvcHlyaWdodCBcdTAwYTkgMTk5OCBJQk0gQ29ycC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4iOworCisgICAgc3RhdGljIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0geworICAgICAgICB7ICJNb250aE5hbWVzIiwgbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICAgICAiVGlzcmkiLCAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRpc2hyaQorICAgICAgICAgICAgICAgICJIZXN2XHUwMEUxbiIsICAgICAgICAgICAgICAgICAgLy8gSGVzaHZhbgorICAgICAgICAgICAgICAgICJLaXN6bFx1MDBFOXYiLCAgICAgICAgICAgICAgICAgLy8gS2lzbGV2CisgICAgICAgICAgICAgICAgIlRcdTAwRTl2XHUwMEU5c3oiLCAgICAgICAgICAgICAvLyBUZXZldAorICAgICAgICAgICAgICAgICJTdlx1MDBFMXQiLCAgICAgICAgICAgICAgICAgICAgLy8gU2hldmF0CisgICAgICAgICAgICAgICAgIlx1MDBDMWRcdTAwRTFyIHJpc1x1MDBGM24iLCAgICAvLyBBZGFyIEkKKyAgICAgICAgICAgICAgICAiXHUwMEMxZFx1MDBFMXIgc1x1MDBFOW5pIiwgICAgIC8vIEFkYXIKKyAgICAgICAgICAgICAgICAiTmlzelx1MDBFMW4iLCAgICAgICAgICAgICAgICAgIC8vIE5pc2FuCisgICAgICAgICAgICAgICAgIklqXHUwMEUxciIsICAgICAgICAgICAgICAgICAgICAvLyBJeWFyCisgICAgICAgICAgICAgICAgIlN6aXZcdTAwRTFuIiwgICAgICAgICAgICAgICAgICAvLyBTaXZhbgorICAgICAgICAgICAgICAgICJUYW11eiIsICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGFtdXoKKyAgICAgICAgICAgICAgICAiXHUwMEMxdiIsICAgICAgICAgICAgICAgICAgICAgIC8vIEF2CisgICAgICAgICAgICAgICAgIkVsdWwiLCAgICAgICAgICAgICAgICAgICAgICAgICAvLyBFbHVsCisgICAgICAgICAgICB9IH0sCisgICAgICAgIHsgIkVyYXMiLCBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgICAgICJUXHUwMEM5IgorICAgICAgICAgICAgfSB9LAorICAgIH07CisKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICAgICAgIHJldHVybiBmQ29udGVudHM7CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSGVicmV3Q2FsZW5kYXJTeW1ib2xzX2l3LmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hlYnJld0NhbGVuZGFyU3ltYm9sc19pdy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhiNDUyODcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hlYnJld0NhbGVuZGFyU3ltYm9sc19pdy5qYXZhCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQXR0aWMvSGVicmV3Q2FsZW5kYXJTeW1ib2xzX2l3LmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDU6NDMgJCAKKyAqICRSZXZpc2lvbjogMS40ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCisvKioKKyAqIEhlYnJldy1sYW5ndWFnZSBkYXRlIGZvcm1hdCBzeW1ib2xzIGZvciB0aGUgSGVicmV3IENhbGVuZGFyCisgKi8KK3B1YmxpYyBjbGFzcyBIZWJyZXdDYWxlbmRhclN5bWJvbHNfaXcgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGNvcHlyaWdodCA9ICJDb3B5cmlnaHQgXHUwMGE5IDE5OTggSUJNIENvcnAuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIjsKKworICAgIHN0YXRpYyBmaW5hbCBPYmplY3RbXVtdIGZDb250ZW50cyA9IHsKKyAgICAgICAgeyAiTW9udGhOYW1lcyIsIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICJcdTA1RUFcdTA1RTlcdTA1RThcdTA1RDkiLCAgICAgICAgICAgICAgICAgLy8gVGlzaHJpCisgICAgICAgICAgICAgICAgIlx1MDVEN1x1MDVFOVx1MDVENVx1MDVERiIsICAgICAgICAgICAgICAgICAvLyBIZXNodmFuCisgICAgICAgICAgICAgICAgIlx1MDVEQlx1MDVFMVx1MDVEQ1x1MDVENSIsICAgICAgICAgICAgICAgICAvLyBLaXNsZXYKKyAgICAgICAgICAgICAgICAiXHUwNUQ4XHUwNUQxXHUwNUVBIiwgICAgICAgICAgICAgICAgICAgICAgIC8vIFRldmV0CisgICAgICAgICAgICAgICAgIlx1MDVFOVx1MDVEMVx1MDVEOCIsICAgICAgICAgICAgICAgICAgICAgICAvLyBTaGV2YXQKKyAgICAgICAgICAgICAgICAiXHUwNUU5XHUwNUQxXHUwNUQ4IiwgICAgICAgICAgICAgICAgICAgICAgIC8vIEFkYXIgSQorICAgICAgICAgICAgICAgICJcdTA1RDBcdTA1RDNcdTA1RTggXHUwNUU5XHUwNUUwXHUwNUQ5IiwgICAgLy8gQWRhcgorICAgICAgICAgICAgICAgICJcdTA1RTBcdTA1RDlcdTA1RTFcdTA1REYiLCAgICAgICAgICAgICAgICAgLy8gTmlzYW4KKyAgICAgICAgICAgICAgICAiXHUwNUQwXHUwNUQ5XHUwNUQ5XHUwNUU4IiwgICAgICAgICAgICAgICAgIC8vIEl5YXIKKyAgICAgICAgICAgICAgICAiXHUwNUUxXHUwNUQ5XHUwNUQ1XHUwNURGIiwgICAgICAgICAgICAgICAgIC8vIFNpdmFuCisgICAgICAgICAgICAgICAgIlx1MDVFQVx1MDVERVx1MDVENVx1MDVENiIsICAgICAgICAgICAgICAgICAvLyBUYW11egorICAgICAgICAgICAgICAgICJcdTA1RDBcdTA1RDEiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXYKKyAgICAgICAgICAgICAgICAiXHUwNUQwXHUwNURDXHUwNUQ1XHUwNURDIiwgICAgICAgICAgICAgICAgIC8vIEVsdWwKKyAgICAgICAgICAgIH0gfSwKKyAgICAgICAgeyAiRXJhcyIsIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICJcdTA1RENcdTA1RDFcdTA1RDRcMDQyXHUwNUUyIgorICAgICAgICAgICAgfSB9LAorICAgIH07CisgICAgICAgIAorICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgICAgICAgcmV0dXJuIGZDb250ZW50czsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9IZWJyZXdDYWxlbmRhclN5bWJvbHNfbmwuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSGVicmV3Q2FsZW5kYXJTeW1ib2xzX25sLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTJjNWNkNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSGVicmV3Q2FsZW5kYXJTeW1ib2xzX25sLmphdmEKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9BdHRpYy9IZWJyZXdDYWxlbmRhclN5bWJvbHNfbmwuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNTo0NCAkIAorICogJFJldmlzaW9uOiAxLjQgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKKy8qKgorICogRHV0Y2ggZGF0ZSBmb3JtYXQgc3ltYm9scyBmb3IgdGhlIEhlYnJldyBDYWxlbmRhcgorICovCitwdWJsaWMgY2xhc3MgSGVicmV3Q2FsZW5kYXJTeW1ib2xzX25sIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBjb3B5cmlnaHQgPSAiQ29weXJpZ2h0IFx1MDBhOSAxOTk4IElCTSBDb3JwLiBBbGwgUmlnaHRzIFJlc2VydmVkLiI7CisKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0W11bXSBmQ29udGVudHMgPSB7CisgICAgICAgIHsgIk1vbnRoTmFtZXMiLCBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgICAgICJUaXNqcmllIiwgICAgICAvLyBUaXNocmkKKyAgICAgICAgICAgICAgICAiQ2hlc2p3YW4iLCAgICAgLy8gSGVzaHZhbgorICAgICAgICAgICAgICAgICJLaXNsZXYiLCAgICAgICAvLyBLaXNsZXYKKyAgICAgICAgICAgICAgICAiVGV2ZXQiLCAgICAgICAgLy8gVGV2ZXQKKyAgICAgICAgICAgICAgICAiU2pldmF0IiwgICAgICAgLy8gU2hldmF0CisgICAgICAgICAgICAgICAgIkFkYXIiLCAgICAgICAgIC8vIEFkYXIgSQorICAgICAgICAgICAgICAgICJBZGFyIEIiLCAgICAgICAvLyBBZGFyCisgICAgICAgICAgICAgICAgIk5pc2FuIiwgICAgICAgIC8vIE5pc2FuCisgICAgICAgICAgICAgICAgIklqYXIiLCAgICAgICAgIC8vIEl5YXIKKyAgICAgICAgICAgICAgICAiU2l2YW4iLCAgICAgICAgLy8gU2l2YW4KKyAgICAgICAgICAgICAgICAiVGFtbW9leiIsICAgICAgLy8gVGFtdXoKKyAgICAgICAgICAgICAgICAiQXYiLCAgICAgICAgICAgLy8gQXYKKyAgICAgICAgICAgICAgICAiRWxsb2VsIiwgICAgICAgLy8gRWx1bAorICAgICAgICAgICAgfSB9LAorICAgIH07CisKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICAgICAgIHJldHVybiBmQ29udGVudHM7CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTg5MTM5NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZS5qYXZhCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZS5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA1OjQ0ICQgCisgKiAkUmV2aXNpb246IDEuMyAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIEhvbGlkYXlCdW5kbGUgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworCisgICAgLy8gTm9ybWFsbHksIGVhY2ggSG9saWRheUJ1bmRsZSB1c2VzIHRoZSBob2xpZGF5J3MgVVMgRW5nbGlzaCBuYW1lCisgICAgLy8gYXMgdGhlIHN0cmluZyBrZXkgZm9yIGxvb2tpbmcgdXAgdGhlIGxvY2FsaXplZCBuYW1lLiAgVGhpcyBtZWFucworICAgIC8vIHRoYXQgdGhlIGtleSBpdHNlbGYgY2FuIGJlIHVzZWQgaWYgbm8gbmFtZSBpcyBmb3VuZCBmb3IgdGhlIHJlcXVlc3RlZAorICAgIC8vIGxvY2FsZS4KKyAgICAvLworICAgIC8vIEZvciBob2xpZGF5cyB3aGVyZSB0aGUga2V5IGlzIF9ub3RfIHRoZSBFbmdsaXNoIG5hbWUsIGUuZy4gaW4gdGhlCisgICAgLy8gY2FzZSBvZiBjb25mbGljdHMsIHRoZSBFbmdsaXNoIG5hbWUgbXVzdCBiZSBnaXZlbiBoZXJlLgorICAgIC8vCisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgT2JqZWN0W11bXSBmQ29udGVudHMgPSB7CisgICAgICAgIHsgICAiIiwgIiIgIH0sICAgICAgLy8gQ2FuJ3QgYmUgZW1wdHkhCisgICAgfTsKKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsgcmV0dXJuIGZDb250ZW50czsgfTsKKworfTsKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9kYS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2RhLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmE2MWViZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9kYS5qYXZhCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9kYS5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA1OjQ0ICQgCisgKiAkUmV2aXNpb246IDEuNCAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgamF2YS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBIb2xpZGF5QnVuZGxlX2RhIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlCit7CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgT2JqZWN0W11bXSBmQ29udGVudHMgPQorICAgIHsKKyAgICAgICAgeyAgICJBcm1pc3RpY2UgRGF5IiwgICAgICAgICJ2XHUwMGU1YmVuaHZpbGUiIH0sCisgICAgICAgIHsgICAiQXNjZW5zaW9uIiwgICAgICAgICAgICAiaGltbWVsZmFydCIgfSwKKyAgICAgICAgeyAgICJCb3hpbmcgRGF5IiwgICAgICAgICAgICJhbmRlbiBqdWxlZGFnIiB9LAorICAgICAgICB7ICAgIkNocmlzdG1hcyBFdmUiLCAgICAgICAgImp1bGVhZnRlbiIgfSwKKyAgICAgICAgeyAgICJFYXN0ZXIiLCAgICAgICAgICAgICAgICJwXHUwMGU1c2tlIiB9LAorICAgICAgICB7ICAgIkVwaXBoYW55IiwgICAgICAgICAgICAgImhlbGxpZ3RyZWtvbmdlcnNkYWciIH0sCisgICAgICAgIHsgICAiR29vZCBGcmlkYXkiLCAgICAgICAgICAibGFuZ2ZyZWRhZyIgfSwKKyAgICAgICAgeyAgICJIYWxsb3dlZW4iLCAgICAgICAgICAgICJhbGxlaGVsZ2Vuc2FmdGVuIiB9LAorICAgICAgICB7ICAgIk1hdW5keSBUaHVyc2RheSIsICAgICAgInNrXHUwMGU2cnRvcnNkYWciIH0sCisgICAgICAgIHsgICAiUGFsbSBTdW5kYXkiLCAgICAgICAgICAicGFsbWVzXHUwMGY4bmRhZyIgfSwKKyAgICAgICAgeyAgICJQZW50ZWNvc3QiLCAgICAgICAgICAgICJwaW5zZSIgfSwKKyAgICAgICAgeyAgICJTaHJvdmUgVHVlc2RheSIsICAgICAgICJodmlkZXRpcnNkYWciIH0sCisgICAgfTsKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7IHJldHVybiBmQ29udGVudHM7IH0KK307CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZGFfREsuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9kYV9ESy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjllYmMwYmQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZGFfREsuamF2YQpAQCAtMCwwICsxLDQ0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZGFfREsuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNTo0NCAkIAorICogJFJldmlzaW9uOiAxLjMgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgSG9saWRheUJ1bmRsZV9kYV9ESyBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZQoreworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIEhvbGlkYXlbXSBmSG9saWRheXMgPSB7CisgICAgICAgIFNpbXBsZUhvbGlkYXkuTkVXX1lFQVJTX0RBWSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuQVBSSUwsICAgMzAsIC1DYWxlbmRhci5GUklEQVksICJHZW5lcmFsIFByYXllciBEYXkiKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuSlVORSwgICAgNSwgICAgICAgICAgICAgICAgICAgICJDb25zdGl0dXRpb24gRGF5IiksCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQ0hSSVNUTUFTX0VWRSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5DSFJJU1RNQVMsCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQk9YSU5HX0RBWSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5ORVdfWUVBUlNfRVZFLAorCisgICAgICAgIC8vIEVhc3RlciBhbmQgcmVsYXRlZCBob2xpZGF5cworICAgICAgICBFYXN0ZXJIb2xpZGF5Lk1BVU5EWV9USFVSU0RBWSwKKyAgICAgICAgRWFzdGVySG9saWRheS5HT09EX0ZSSURBWSwKKyAgICAgICAgRWFzdGVySG9saWRheS5FQVNURVJfU1VOREFZLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LkVBU1RFUl9NT05EQVksCisgICAgICAgIEVhc3RlckhvbGlkYXkuQVNDRU5TSU9OLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LldISVRfTU9OREFZLAorICAgIH07CisKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBPYmplY3RbXVtdIGZDb250ZW50cyA9IHsKKyAgICAgICAgeyAgICJob2xpZGF5cyIsICAgICAgICAgICAgIGZIb2xpZGF5cyB9LAorICAgIH07CisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeyByZXR1cm4gZkNvbnRlbnRzOyB9Cit9OwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2RlLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44MzU4YzMxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2RlLmphdmEKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2RlLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDU6NDQgJCAKKyAqICRSZXZpc2lvbjogMS40ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBIb2xpZGF5QnVuZGxlX2RlIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBPYmplY3RbXVtdIGZDb250ZW50cyA9IHsKKyAgICAgICAgeyAgICJBbGwgU2FpbnRzJyBEYXkiLCAgICAgICAgICAgICAgIkFsbGVyaGVpbGlnZW4iIH0sCisgICAgICAgIHsgICAiQWxsIFNvdWxzJyBEYXkiLCAgICAgICAgICAgICAgICJBbGxlcnNlZWxlbiIgfSwKKyAgICAgICAgeyAgICJBcm1pc3RpY2UgRGF5IiwgICAgICAgICAgICAgICAgIldhZmZlbnN0aWxsc3RhbmRzdGFnIiB9LAorICAgICAgICB7ICAgIkFzY2Vuc2lvbiIsICAgICAgICAgICAgICAgICAgICAiQ2hyaXN0aSBIaW1tZWxmYWhydCIgfSwKKyAgICAgICAgeyAgICJBc2ggV2VkbmVzZGF5IiwgICAgICAgICAgICAgICAgIkFzY2hlcm1pdHR3b2NoIiB9LAorICAgICAgICB7ICAgIkFzc3VtcHRpb24iLCAgICAgICAgICAgICAgICAgICAiTWFyaVx1MDBlNCBIaW1tZWxmYWhydCIgfSwKKyAgICAgICAgeyAgICJCb3hpbmcgRGF5IiwgICAgICAgICAgICAgICAgICAgIjIuIFdlaWhuYWNodHN0YWciIH0sCisgICAgICAgIHsgICAiQ2Fybml2YWwiLCAgICAgICAgICAgICAgICAgICAgICJLYXJuZXZhbCIgfSwKKyAgICAgICAgeyAgICJDaHJpc3RtYXMiLCAgICAgICAgICAgICAgICAgICAgIldlaWhuYWNodHN0YWciIH0sCisgICAgICAgIHsgICAiQ2l2aWMgSG9saWRheSIsICAgICAgICAgICAgICAgICJCXHUwMGZjcmdlcmZlaWVydGFnIiB9LAorICAgICAgICB7ICAgIkNvbnN0aXR1dGlvbiBEYXkiLCAgICAgICAgICAgICAiVmVyZmFzc3VuZ3N0YWciIH0sCisgICAgICAgIHsgICAiQ29ycHVzIENocmlzdGkiLCAgICAgICAgICAgICAgICJGcm9ubGVpY2huYW0iIH0sCisgICAgICAgIHsgICAiRGF5IG9mIFByYXllciBhbmQgUmVwZW50YW5jZSIsICJCdVx1MDBkZi0gdW5kIEJldHRhZyIgfSwKKyAgICAgICAgeyAgICJFYXN0ZXIgTW9uZGF5IiwgICAgICAgICAgICAgICAgIk9zdGVybW9ubnRhZyIgfSwKKyAgICAgICAgeyAgICJFYXN0ZXIgU3VuZGF5IiwgICAgICAgICAgICAgICAgIk9zdGVyc29ubnRhZyIgfSwKKyAgICAgICAgeyAgICJFcGlwaGFueSIsICAgICAgICAgICAgICAgICAgICAgIkhlaWxpZ2UgMyBLXHUwMGY2bmlnZSIgfSwKKyAgICAgICAgeyAgICJGYXRoZXIncyBEYXkiLCAgICAgICAgICAgICAgICAgIlZhdGVydGFnIiB9LAorICAgICAgICB7ICAgIkZsYWcgRGF5IiwgICAgICAgICAgICAgICAgICAgICAiSmFocmVzdGFnIGRlciBOYXRpb25hbGZsYWdnZSIgfSwKKyAgICAgICAgeyAgICJHZXJtYW4gVW5pdHkgRGF5IiwgICAgICAgICAgICAgIlRhZyBkZXIgZGV1dHNjaGVuIEVpbmhlaXQiIH0sCisgICAgICAgIHsgICAiR29vZCBGcmlkYXkiLCAgICAgICAgICAgICAgICAgICJLYXJmcmVpdGFnIiB9LAorICAgICAgICB7ICAgIkhhbGxvd2VlbiIsICAgICAgICAgICAgICAgICAgICAiQWJlbmQgdm9yIEFsbGVyaGVpbGlnZW4iIH0sCisgICAgICAgIHsgICAiSW1tYWN1bGF0ZSBDb25jZXB0aW9uIiwgICAgICAgICJNYXJpXHUwMGU0IEVtcGZcdTAwZTRuZ25pcyIgfSwKKyAgICAgICAgeyAgICJJbmRlcGVuZGVuY2UgRGF5IiwgICAgICAgICAgICAgIlVuYWJoXHUwMGU0bmdpZ2tlaXRzdGFnIiB9LAorICAgICAgICB7ICAgIkxhYm9yIERheSIsICAgICAgICAgICAgICAgICAgICAiVGFnIGRlciBBcmJlaXQiIH0sCisgICAgICAgIHsgICAiTGliZXJhdGlvbiBEYXkiLCAgICAgICAgICAgICAgICJCZWZyZWl1bmdzdGFnIiB9LAorICAgICAgICB7ICAgIk1hcmRpIEdyYXMiLCAgICAgICAgICAgICAgICAgICAiRmFzY2hpbmdzZGllbnN0YWciIH0sCisgICAgICAgIHsgICAiTWF1bmR5IFRodXJzZGF5IiwgICAgICAgICAgICAgICJHclx1MDBmY25kb25uZXJzdGFnIiB9LAorICAgICAgICB7ICAgIk1heSBEYXkiLCAgICAgICAgICAgICAgICAgICAgICAiTWFpZmVpZXJ0YWciIH0sCisgICAgICAgIHsgICAiTWVtb3JpYWwgRGF5IiwgICAgICAgICAgICAgICAgICJUYWcgZGVzIEdlZGVua2VucyIgfSwKKyAgICAgICAgeyAgICJNb3RoZXIncyBEYXkiLCAgICAgICAgICAgICAgICAgIk11dHRlcnRhZyIgfSwKKyAgICAgICAgeyAgICJOYXRpb25hbCBIb2xpZGF5IiwgICAgICAgICAgICAgIk5hdGlvbmFsZmVpZXJ0YWciIH0sCisgICAgICAgIHsgICAiTmV3IFllYXIncyBEYXkiLCAgICAgICAgICAgICAgICJOZXVqYWhyIiB9LAorICAgICAgICB7ICAgIk5ldyBZZWFyJ3MgRXZlIiwgICAgICAgICAgICAgICAiU2lsdmVzdGVyYWJlbmQiIH0sCisgICAgICAgIHsgICAiUGFsbSBTdW5kYXkiLCAgICAgICAgICAgICAgICAgICJQYWxtc29ubnRhZyIgfSwKKyAgICAgICAgeyAgICJQZW50ZWNvc3QiLCAgICAgICAgICAgICAgICAgICAgIlBmaW5nc3RlbiIgfSwKKyAgICAgICAgeyAgICJQcmVzaWRlbnRzJyBEYXkiLCAgICAgICAgICAgICAgIlByXHUwMGU0c2lkZW50c3RhZyIgfSwKKyAgICAgICAgeyAgICJSZW1lbWJyYW5jZSBEYXkiLCAgICAgICAgICAgICAgIlZvbGtzdHJhdWVydGFnIiB9LAorICAgICAgICB7ICAgIlJldm9sdXRpb24gRGF5IiwgICAgICAgICAgICAgICAiSmFocmVzdGFnIGRlciBSZXZvbHV0aW9uIiB9LAorICAgICAgICB7ICAgIlJvc2UgTW9uZGF5IiwgICAgICAgICAgICAgICAgICAiUm9zZW5tb250YWciIH0sCisgICAgICAgIHsgICAiU3QuIFN0ZXBoZW4ncyBEYXkiLCAgICAgICAgICAgICJTdGVwaGFuaXRhZyIgfSwKKyAgICAgICAgeyAgICJTaHJvdmUgVHVlc2RheSIsICAgICAgICAgICAgICAgIkZhc2NoaW5nc2RpZW5zdGFnIiB9LAorICAgICAgICB7ICAgIlNwcmluZyBIb2xpZGF5IiwgICAgICAgICAgICAgICAiVGFnIGRlcyBGclx1MDBmY2hsaW5ncyIgfSwKKyAgICAgICAgeyAgICJTdW1tZXIgQmFuayBIb2xpZGF5IiwgICAgICAgICAgIkJhbmtmZWllcnRhZyIgfSwKKyAgICAgICAgeyAgICJUaGFua3NnaXZpbmciLCAgICAgICAgICAgICAgICAgIkRhbmtmZXN0IiB9LAorICAgICAgICB7ICAgIlVuaXR5IERheSIsICAgICAgICAgICAgICAgICAgICAiRWluaGVpdHN0YWciIH0sCisgICAgICAgIHsgICAiVmV0ZXJhbnMnIERheSIsICAgICAgICAgICAgICAgICJWZXRlcmFuc3RhZyIgfSwKKyAgICAgICAgeyAgICJWaWN0b3J5IERheSIsICAgICAgICAgICAgICAgICAgIlRhZyBkZXIgQmVmcmVpdW5nIiB9LAorICAgICAgICB7ICAgIldhc2hpbmd0b24ncyBCaXJ0aGRheSIsICAgICAgICAiV2FzaGluZ3RvbnMgR2VidXJ0c3RhZyIgfSwKKyAgICAgICAgeyAgICJXaGl0IE1vbmRheSIsICAgICAgICAgICAgICAgICAgIlBmaW5nc3Rtb250YWciIH0sCisgICAgICAgIHsgICAiV2hpdCBTdW5kYXkiLCAgICAgICAgICAgICAgICAgICJQZmluZ3N0c29ubnRhZyIgfSwKKyAgICB9OworCisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeyByZXR1cm4gZkNvbnRlbnRzOyB9Cit9OwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2RlX0FULmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZGVfQVQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iY2Y2Mzc3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2RlX0FULmphdmEKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2RlX0FULmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDU6NDUgJCAKKyAqICRSZXZpc2lvbjogMS40ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBqYXZhLnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIEhvbGlkYXlCdW5kbGVfZGVfQVQgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIEhvbGlkYXlbXSBmSG9saWRheXMgPSB7CisgICAgICAgIFNpbXBsZUhvbGlkYXkuTkVXX1lFQVJTX0RBWSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5FUElQSEFOWSwKKyAgICAgICAgRWFzdGVySG9saWRheS5HT09EX0ZSSURBWSwKKyAgICAgICAgRWFzdGVySG9saWRheS5FQVNURVJfU1VOREFZLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LkVBU1RFUl9NT05EQVksCisgICAgICAgIEVhc3RlckhvbGlkYXkuQVNDRU5TSU9OLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LldISVRfU1VOREFZLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LldISVRfTU9OREFZLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LkNPUlBVU19DSFJJU1RJLAorICAgICAgICBTaW1wbGVIb2xpZGF5LkFTU1VNUFRJT04sCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQUxMX1NBSU5UU19EQVksCisgICAgICAgIFNpbXBsZUhvbGlkYXkuSU1NQUNVTEFURV9DT05DRVBUSU9OLAorICAgICAgICBTaW1wbGVIb2xpZGF5LkNIUklTVE1BUywKKyAgICAgICAgU2ltcGxlSG9saWRheS5TVF9TVEVQSEVOU19EQVksCisKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuTUFZLCAgICAgICAgMSwgIDAsICAgICAgICAgICAgICAgIk5hdGlvbmFsIEhvbGlkYXkiKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuT0NUT0JFUiwgICAzMSwgLUNhbGVuZGFyLk1PTkRBWSwgIk5hdGlvbmFsIEhvbGlkYXkiKSwKKyAgICB9OworCisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgT2JqZWN0W11bXSBmQ29udGVudHMgPSB7CisgICAgICAgIHsgImhvbGlkYXlzIiwgICBmSG9saWRheXMgfSwKKworICAgICAgICAvLyBPbmx5IGhvbGlkYXlzIG5hbWVzIGRpZmZlcmVudCBmcm9tIHRob3NlIHVzZWQgaW4gR2VybWFueSBhcmUgbGlzdGVkIGhlcmUKKyAgICAgICAgeyAgICJDaHJpc3RtYXMiLCAgICAgICAgIkNocmlzdHRhZyIgfSwKKyAgICAgICAgeyAgICJOZXcgWWVhcidzIERheSIsICAgIk5ldWphaHJzdGFnIiB9LAorICAgIH07CisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeyByZXR1cm4gZkNvbnRlbnRzOyB9Cit9OwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2RlX0RFLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZGVfREUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xNzg0OWViCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2RlX0RFLmphdmEKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2RlX0RFLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDU6NDUgJCAKKyAqICRSZXZpc2lvbjogMS4zICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBqYXZhLnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIEhvbGlkYXlCdW5kbGVfZGVfREUgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIEhvbGlkYXlbXSBmSG9saWRheXMgPSB7CisgICAgICAgIFNpbXBsZUhvbGlkYXkuTkVXX1lFQVJTX0RBWSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5NQVlfREFZLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5KVU5FLCAgICAgIDE1LCAgQ2FsZW5kYXIuV0VETkVTREFZLCAgIk1lbW9yaWFsIERheSIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5PQ1RPQkVSLCAgICAzLCAgMCwgICAgICAgICAgICAgICAgICAgIlVuaXR5IERheSIpLAorICAgICAgICBTaW1wbGVIb2xpZGF5LkFMTF9TQUlOVFNfREFZLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5OT1ZFTUJFUiwgIDE4LCAgMCwgICAgICAgICAgICAgICAgICAgIkRheSBvZiBQcmF5ZXIgYW5kIFJlcGVudGFuY2UiKSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5DSFJJU1RNQVMsCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQk9YSU5HX0RBWSwKKworICAgICAgICAvLyBFYXN0ZXIgYW5kIHJlbGF0ZWQgaG9saWRheXMKKyAgICAgICAgRWFzdGVySG9saWRheS5HT09EX0ZSSURBWSwKKyAgICAgICAgRWFzdGVySG9saWRheS5FQVNURVJfU1VOREFZLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LkVBU1RFUl9NT05EQVksCisgICAgICAgIEVhc3RlckhvbGlkYXkuQVNDRU5TSU9OLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LldISVRfU1VOREFZLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LldISVRfTU9OREFZLAorICAgIH07CisKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBPYmplY3RbXVtdIGZDb250ZW50cyA9IHsKKyAgICAgICAgeyAiaG9saWRheXMiLCAgIGZIb2xpZGF5cyB9LAorICAgIH07CisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeyByZXR1cm4gZkNvbnRlbnRzOyB9Cit9OwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2VsLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZWwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zYmM1NmY5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2VsLmphdmEKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2VsLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDU6NDUgJCAKKyAqICRSZXZpc2lvbjogMS4zICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBqYXZhLnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIEhvbGlkYXlCdW5kbGVfZWwgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0KKyAgICB7CisgICAgICAgIHsgICAiQXNzdW1wdGlvbiIsICAgICAgICAgICAiMTUgXHUwMzkxXHUwM2NkXHUwM2IzXHUwM2JmXHUwM2NkXHUwM2MzXHUwM2M0XHUwM2JmXHUwM2M1IiB9LAorICAgICAgICB7ICAgIkJveGluZyBEYXkiLCAgICAgICAgICAgIlx1MDM5NFx1MDNiNVx1MDNjZFx1MDNjNFx1MDNiNVx1MDNjMVx1MDNiNyBcdTAzYmNcdTAzYWRcdTAzYzFcdTAzYjEgXHUwM2M0XHUwM2NlXHUwM2JkIFx1MDNhN1x1MDNjMVx1MDNiOVx1MDNjM1x1MDNjNFx1MDNiZlx1MDNjNVx1MDNiM1x1MDNhZFx1MDNiZFx1MDNiZFx1MDNjOVx1MDNiZCIgfSwKKyAgICAgICAgeyAgICJDaHJpc3RtYXMiLCAgICAgICAgICAgICJcdTAzYTdcdTAzYzFcdTAzYjlcdTAzYzNcdTAzYzRcdTAzYmZcdTAzY2RcdTAzYjNcdTAzYjVcdTAzYmRcdTAzYmRcdTAzYjEiIH0sCisgICAgICAgIHsgICAiQ2xlYW4gTW9uZGF5IiwgICAgICAgICAiXHUwMzlhXHUwM2IxXHUwM2I4XHUwM2IxXHUwM2MxXHUwM2FlIFx1MDM5NFx1MDNiNVx1MDNjNVx1MDNjNFx1MDNhZFx1MDNjMVx1MDNiMSIgfSwKKyAgICAgICAgeyAgICJFYXN0ZXIgTW9uZGF5IiwgICAgICAgICJcdTAzOTRcdTAzYjVcdTAzY2RcdTAzYzRcdTAzYjVcdTAzYzFcdTAzYjcgXHUwM2JjXHUwM2FkXHUwM2MxXHUwM2IxIFx1MDNjNFx1MDNiZlx1MDNjZCBcdTAzYTBcdTAzYWNcdTAzYzNcdTAzYzdcdTAzYjEiIH0sCisgICAgICAgIHsgICAiRXBpcGhhbnkiLCAgICAgICAgICAgICAiXHUwMzg4XHUwM2MwXHUwM2I5XHUwM2M2XHUwM2FjXHUwM2JkXHUwM2I1XHUwM2I5XHUwM2IxIiB9LAorICAgICAgICB7ICAgIkdvb2QgRnJpZGF5IiwgICAgICAgICAgIlx1MDM5Y1x1MDNiNVx1MDNiM1x1MDNhY1x1MDNiYlx1MDNiNyBcdTAzYTBcdTAzYjFcdTAzYzFcdTAzYjFcdTAzYzNcdTAzYmFcdTAzYjVcdTAzYzVcdTAzYWUiIH0sCisgICAgICAgIHsgICAiTWF5IERheSIsICAgICAgICAgICAgICAiXHUwM2EwXHUwM2MxXHUwM2M5XHUwM2M0XHUwM2JmXHUwM2JjXHUwM2IxXHUwM2IzXHUwM2I5XHUwM2FjIiB9LAorICAgICAgICB7ICAgIk5ldyBZZWFyJ3MgRGF5IiwgICAgICAgIlx1MDNhMFx1MDNjMVx1MDNjOVx1MDNjNFx1MDNiZlx1MDNjN1x1MDNjMVx1MDNiZlx1MDNiZFx1MDNiOVx1MDNhYyIgfSwKKyAgICAgICAgeyAgICJPY2hpIERheSIsICAgICAgICAgICAgICIyOCBcdTAzOGNcdTAzYmFcdTAzYzRcdTAzYzlcdTAzYjJcdTAzYzFcdTAzYWZcdTAzYmZcdTAzYzUiIH0sCisgICAgICAgIHsgICAiV2hpdCBNb25kYXkiLCAgICAgICAgICAiXHUwMzk0XHUwM2I1XHUwM2NkXHUwM2M0XHUwM2I1XHUwM2MxXHUwM2I3IFx1MDNiY1x1MDNhZFx1MDNjMVx1MDNiMSBcdTAzYzRcdTAzYmZcdTAzY2QgXHUwM2EwXHUwM2I1XHUwM2JkXHUwM2M0XHUwM2I3XHUwM2JhXHUwM2JmXHUwM2MzXHUwM2M0XHUwM2FlIiB9LAorCisgICAgfTsKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7IHJldHVybiBmQ29udGVudHM7IH0KK307CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZWxfR1IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9lbF9HUi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjlhYWM4M2MKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZWxfR1IuamF2YQpAQCAtMCwwICsxLDQ1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZWxfR1IuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNTo0NSAkIAorICogJFJldmlzaW9uOiAxLjMgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgSG9saWRheUJ1bmRsZV9lbF9HUiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgSG9saWRheVtdIGZIb2xpZGF5cyA9IHsKKyAgICAgICAgU2ltcGxlSG9saWRheS5ORVdfWUVBUlNfREFZLAorICAgICAgICBTaW1wbGVIb2xpZGF5LkVQSVBIQU5ZLAorCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk1BUkNILCAgICAgMjUsICAwLCAgICAiSW5kZXBlbmRlbmNlIERheSIpLAorCisgICAgICAgIFNpbXBsZUhvbGlkYXkuTUFZX0RBWSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5BU1NVTVBUSU9OLAorCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk9DVE9CRVIsICAgMjgsICAwLCAgICAiT2NoaSBEYXkiKSwKKworICAgICAgICBTaW1wbGVIb2xpZGF5LkNIUklTVE1BUywKKyAgICAgICAgU2ltcGxlSG9saWRheS5CT1hJTkdfREFZLAorCisgICAgICAgIC8vIEVhc3RlciBhbmQgcmVsYXRlZCBob2xpZGF5cyBpbiB0aGUgT3J0aG9kb3ggY2FsZW5kYXIKKyAgICAgICAgbmV3IEVhc3RlckhvbGlkYXkoLTIsICAgdHJ1ZSwgIkdvb2QgRnJpZGF5IiksCisgICAgICAgIG5ldyBFYXN0ZXJIb2xpZGF5KCAwLCAgIHRydWUsICJFYXN0ZXIgU3VuZGF5IiksCisgICAgICAgIG5ldyBFYXN0ZXJIb2xpZGF5KCAxLCAgIHRydWUsICJFYXN0ZXIgTW9uZGF5IiksCisgICAgICAgIG5ldyBFYXN0ZXJIb2xpZGF5KDUwLCAgIHRydWUsICJXaGl0IE1vbmRheSIpLAorICAgIH07CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgT2JqZWN0W11bXSBmQ29udGVudHMgPSB7CisgICAgICAgIHsgICAiaG9saWRheXMiLCAgICAgICAgIGZIb2xpZGF5cyAgIH0sCisgICAgfTsKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7IHJldHVybiBmQ29udGVudHM7IH0KK307CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZW4uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9lbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjcyZjQ1YzMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZW4uamF2YQpAQCAtMCwwICsxLDM1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZW4uamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNTo0NSAkIAorICogJFJldmlzaW9uOiAxLjMgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBIb2xpZGF5QnVuZGxlX2VuIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKworICAgIC8vIE5vcm1hbGx5LCBlYWNoIEhvbGlkYXlCdW5kbGUgdXNlcyB0aGUgaG9saWRheSdzIFVTIEVuZ2xpc2ggbmFtZQorICAgIC8vIGFzIHRoZSBzdHJpbmcga2V5IGZvciBsb29raW5nIHVwIHRoZSBsb2NhbGl6ZWQgbmFtZS4gIFRoaXMgbWVhbnMKKyAgICAvLyB0aGF0IHRoZSBrZXkgaXRzZWxmIGNhbiBiZSB1c2VkIGlmIG5vIG5hbWUgaXMgZm91bmQgZm9yIHRoZSByZXF1ZXN0ZWQKKyAgICAvLyBsb2NhbGUuCisgICAgLy8KKyAgICAvLyBGb3IgaG9saWRheXMgd2hlcmUgdGhlIGtleSBpcyBfbm90XyB0aGUgRW5nbGlzaCBuYW1lLCBlLmcuIGluIHRoZQorICAgIC8vIGNhc2Ugb2YgY29uZmxpY3RzLCB0aGUgRW5nbGlzaCBuYW1lIG11c3QgYmUgZ2l2ZW4gaGVyZS4KKyAgICAvLworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0geworICAgICAgICB7ICAgIiIsICIiICB9LCAgICAgIC8vIENhbid0IGJlIGVtcHR5IQorICAgIH07CisKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7IHJldHVybiBmQ29udGVudHM7IH07CisKK307CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZW5fQ0EuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9lbl9DQS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU3NDhjODEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZW5fQ0EuamF2YQpAQCAtMCwwICsxLDQ2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZW5fQ0EuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNTo0NiAkIAorICogJFJldmlzaW9uOiAxLjMgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgSG9saWRheUJ1bmRsZV9lbl9DQSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgSG9saWRheVtdIGZIb2xpZGF5cyA9IHsKKyAgICAgICAgU2ltcGxlSG9saWRheS5ORVdfWUVBUlNfREFZLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5NQVksICAgICAgIDE5LCAwLCAgICAgICAgICAgICAgICAgICJWaWN0b3JpYSBEYXkiKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuSlVMWSwgICAgICAgMSwgMCwgICAgICAgICAgICAgICAgICAiQ2FuYWRhIERheSIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5BVUdVU1QsICAgICAxLCBDYWxlbmRhci5NT05EQVksICAgICJDaXZpYyBIb2xpZGF5IiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLlNFUFRFTUJFUiwgIDEsIENhbGVuZGFyLk1PTkRBWSwgICAgIkxhYm9yIERheSIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5PQ1RPQkVSLCAgICA4LCBDYWxlbmRhci5NT05EQVksICAgICJUaGFua3NnaXZpbmciKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuTk9WRU1CRVIsICAxMSwgMCwgICAgICAgICAgICAgICAgICAiUmVtZW1icmFuY2UgRGF5IiksCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQ0hSSVNUTUFTLAorICAgICAgICBTaW1wbGVIb2xpZGF5LkJPWElOR19EQVksCisgICAgICAgIFNpbXBsZUhvbGlkYXkuTkVXX1lFQVJTX0VWRSwKKworICAgICAgICAvLyBFYXN0ZXIgYW5kIHJlbGF0ZWQgaG9saWRheXMKKyAgICAgICAgLy9oZXkge2pmfSAtIHdoZXJlIGFyZSB0aGVzZSBmcm9tPworLy8gICAgICAgIEVhc3RlckhvbGlkYXkuR09PRF9GUklEQVksCisvLyAgICAgICAgRWFzdGVySG9saWRheS5FQVNURVJfU1VOREFZLAorLy8gICAgICAgIEVhc3RlckhvbGlkYXkuRUFTVEVSX01PTkRBWSwKKyAgICB9OworCisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgT2JqZWN0W11bXSBmQ29udGVudHMgPSB7CisgICAgICAgIHsgImhvbGlkYXlzIiwgICBmSG9saWRheXMgfSwKKworICAgICAgICB7ICJMYWJvciBEYXkiLCAgIkxhYm91ciBEYXkiIH0sCisgICAgfTsKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7IHJldHVybiBmQ29udGVudHM7IH0KK307CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZW5fR0IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9lbl9HQi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY5ZGJlN2IKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZW5fR0IuamF2YQpAQCAtMCwwICsxLDQyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZW5fR0IuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNTo0NiAkIAorICogJFJldmlzaW9uOiAxLjMgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgSG9saWRheUJ1bmRsZV9lbl9HQiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZQoreworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIEhvbGlkYXlbXSBmSG9saWRheXMgPSB7CisgICAgICAgIFNpbXBsZUhvbGlkYXkuTkVXX1lFQVJTX0RBWSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5NQVlfREFZLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5NQVksICAgICAgICAzMSwgLUNhbGVuZGFyLk1PTkRBWSwgICAgIlNwcmluZyBIb2xpZGF5IiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkFVR1VTVCwgICAgIDMxLCAtQ2FsZW5kYXIuTU9OREFZLCAgICAiU3VtbWVyIEJhbmsgSG9saWRheSIpLAorICAgICAgICBTaW1wbGVIb2xpZGF5LkNIUklTVE1BUywKKyAgICAgICAgU2ltcGxlSG9saWRheS5CT1hJTkdfREFZLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5ERUNFTUJFUiwgICAzMSwgLUNhbGVuZGFyLk1PTkRBWSwgICAgIkNocmlzdG1hcyBIb2xpZGF5IiksCisKKyAgICAgICAgLy8gRWFzdGVyIGFuZCByZWxhdGVkIGhvbGlkYXlzCisgICAgICAgIEVhc3RlckhvbGlkYXkuR09PRF9GUklEQVksCisgICAgICAgIEVhc3RlckhvbGlkYXkuRUFTVEVSX1NVTkRBWSwKKyAgICAgICAgRWFzdGVySG9saWRheS5FQVNURVJfTU9OREFZLAorICAgIH07CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgT2JqZWN0W11bXSBmQ29udGVudHMgPSB7CisgICAgICAgIHsgImhvbGlkYXlzIiwgICBmSG9saWRheXMgfSwKKworICAgICAgICB7ICJMYWJvciBEYXkiLCAgIkxhYm91ciBEYXkiIH0sCisgICAgfTsKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7IHJldHVybiBmQ29udGVudHM7IH0KK307CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZW5fVVMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9lbl9VUy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRlZGMxOGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZW5fVVMuamF2YQpAQCAtMCwwICsxLDUyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZW5fVVMuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNTo0NiAkIAorICogJFJldmlzaW9uOiAxLjMgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgSG9saWRheUJ1bmRsZV9lbl9VUyBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZQoreworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIEhvbGlkYXlbXSBmSG9saWRheXMgPSB7CisgICAgICAgIFNpbXBsZUhvbGlkYXkuTkVXX1lFQVJTX0RBWSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuSkFOVUFSWSwgICAxNSwgQ2FsZW5kYXIuTU9OREFZLCAgICAgICJNYXJ0aW4gTHV0aGVyIEtpbmcgRGF5IiwgICAxOTg2KSwKKworICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5GRUJSVUFSWSwgIDE1LCBDYWxlbmRhci5NT05EQVksICAgICAgIlByZXNpZGVudHMnIERheSIsICAgICAgICAgIDE5NzYpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5GRUJSVUFSWSwgIDIyLCAgICAgICAgICAgICAgICAgICAgICAgIldhc2hpbmd0b24ncyBCaXJ0aGRheSIsICAgIDE3NzYsIDE5NzUpLAorCisgICAgICAgIEVhc3RlckhvbGlkYXkuR09PRF9GUklEQVksCisgICAgICAgIEVhc3RlckhvbGlkYXkuRUFTVEVSX1NVTkRBWSwKKworICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5NQVksICAgICAgICA4LCBDYWxlbmRhci5TVU5EQVksICAgICAgIk1vdGhlcidzIERheSIsICAgICAgICAgICAgIDE5MTQpLAorCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk1BWSwgICAgICAgMzEsIC1DYWxlbmRhci5NT05EQVksICAgICAiTWVtb3JpYWwgRGF5IiwgICAgICAgICAgICAgMTk3MSksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk1BWSwgICAgICAgMzAsICAgICAgICAgICAgICAgICAgICAgICAiTWVtb3JpYWwgRGF5IiwgICAgICAgICAgICAgMTg2OCwgMTk3MCksCisKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuSlVORSwgICAgICAxNSwgQ2FsZW5kYXIuU1VOREFZLCAgICAgICJGYXRoZXIncyBEYXkiLCAgICAgICAgICAgICAxOTU2KSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuSlVMWSwgICAgICAgNCwgICAgICAgICAgICAgICAgICAgICAgICJJbmRlcGVuZGVuY2UgRGF5IiwgICAgICAgICAxNzc2KSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuU0VQVEVNQkVSLCAgMSwgQ2FsZW5kYXIuTU9OREFZLCAgICAgICJMYWJvciBEYXkiLCAgICAgICAgICAgICAgICAxODk0KSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuTk9WRU1CRVIsICAgMiwgQ2FsZW5kYXIuVFVFU0RBWSwgICAgICJFbGVjdGlvbiBEYXkiKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuT0NUT0JFUiwgICAgOCwgQ2FsZW5kYXIuTU9OREFZLCAgICAgICJDb2x1bWJ1cyBEYXkiLCAgICAgICAgICAgICAxOTcxKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuT0NUT0JFUiAsICAzMSwgICAgICAgICAgICAgICAgICAgICAgICJIYWxsb3dlZW4iKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuTk9WRU1CRVIsICAxMSwgICAgICAgICAgICAgICAgICAgICAgICJWZXRlcmFucycgRGF5IiwgICAgICAgICAgICAxOTE4KSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuTk9WRU1CRVIsICAyMiwgQ2FsZW5kYXIuVEhVUlNEQVksICAgICJUaGFua3NnaXZpbmciLCAgICAgICAgICAgICAxODYzKSwKKworICAgICAgICBTaW1wbGVIb2xpZGF5LkNIUklTVE1BUywKKyAgICB9OworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0geworICAgICAgICB7ICJob2xpZGF5cyIsICAgZkhvbGlkYXlzIH0sCisgICAgfTsKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7IHJldHVybiBmQ29udGVudHM7IH0KK307CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZXMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9lcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY3NzQxODAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZXMuamF2YQpAQCAtMCwwICsxLDU3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZXMuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNTo0NiAkIAorICogJFJldmlzaW9uOiAxLjQgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBIb2xpZGF5QnVuZGxlX2VzIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBPYmplY3RbXVtdIGZDb250ZW50cyA9IHsKKyAgICAgICAgeyAgICJBbGwgU2FpbnRzJyBEYXkiLCAgICAgICAgICAiVG9kb3MgbG9zIFNhbnRvcyIgfSwKKyAgICAgICAgeyAgICJBcm1pc3RpY2UgRGF5IiwgICAgICAgICAgICAiRFx1MDBlZGEgZGVsIEFybWlzdGljaW8iIH0sCisgICAgICAgIHsgICAiQXNjZW5zaW9uIiwgICAgICAgICAgICAgICAgIkFzY2Vuc2lcdTAwZjNuIiB9LAorICAgICAgICB7ICAgIkJlbml0byBKdVx1MDBlMXJleiBEYXkiLCAgICAgICAgIkRcdTAwZWRhIGRlIGxhIEJlbml0byBKdVx1MDBlMXJleiIgfSwKKyAgICAgICAgeyAgICJCb3hpbmcgRGF5IiwgICAgICAgICAgICAgICAiRFx1MDBlZGEgZW4gcXVlIHNlIGRhbiBBZ3VpbmFsZG9zIE5hdmlkZVx1MDBmMW9zIiB9LAorICAgICAgICB7ICAgIkNhbmFkYSBEYXkiLCAgICAgICAgICAgICAgICJEXHUwMGVkYSBkZWwgQ2FuYWRcdTAwZTEiIH0sCisgICAgICAgIHsgICAiQ2hyaXN0bWFzIEV2ZSIsICAgICAgICAgICAgIlZcdTAwRURzcGVyYSBkZSBOYXZpZGFkIiB9LAorICAgICAgICB7ICAgIkNocmlzdG1hcyIsICAgICAgICAgICAgICAgICJOYXZpZGFkIiB9LAorICAgICAgICB7ICAgIkNvbnN0aXR1dGlvbiBEYXkiLCAgICAgICAgICJEXHUwMGVkYSBkZSBsYSBDb25zdGl0dWNpXHUwMGYzbiIgfSwKKyAgICAgICAgeyAgICJEYXkgb2YgdGhlIERlYWQiLCAgICAgICAgICAiRFx1MDBlZGEgZGUgbG9zIE11ZXJ0b3MiIH0sCisgICAgICAgIHsgICAiRWFzdGVyIFN1bmRheSIsICAgICAgICAgICAgIlBhc2N1YSIgfSwKKyAgICAgICAgeyAgICJFYXN0ZXIgTW9uZGF5IiwgICAgICAgICAgICAiUGFzY3VhIEx1bmVzIiB9LAorICAgICAgICB7ICAgIkVwaXBoYW55IiwgICAgICAgICAgICAgICAgICJFcGlmYW5cdTAwZWRhIiB9LAorICAgICAgICB7ICAgIkZhdGhlcidzIERheSIsICAgICAgICAgICAgICJEXHUwMGVkYSBkZWwgUGFkcmUiIH0sCisgICAgICAgIHsgICAiRmxhZyBEYXkiLCAgICAgICAgICAgICAgICAgIkRcdTAwZWRhIGRlIGxhIEJhbmRlcmEiIH0sCisgICAgICAgIHsgICAiR29vZCBGcmlkYXkiLCAgICAgICAgICAgICAgIlZpZXJuZXMgU2FudG8iIH0sCisgICAgICAgIHsgICAiSGFsbG93ZWVuIiwgICAgICAgICAgICAgICAgInZcdTAwZWRzcGVyYSBkZSBUb2RvcyBsb3MgU2FudG9zIiB9LAorICAgICAgICB7ICAgIkluZGVwZW5kZW5jZSBEYXkiLCAgICAgICAgICJEXHUwMGVkYSBkZSBsYSBJbmRlcGVuZGVuY2lhIiB9LAorICAgICAgICB7ICAgIkxhYm9yIERheSIsICAgICAgICAgICAgICAgICJEXHUwMGVkYSBkZSBUcmFiYWphZG9yZXMiIH0sCisgICAgICAgIHsgICAiTWF1bmR5IFRodXJzZGF5IiwgICAgICAgICAgIkp1ZXZlcyBTYW50byIgfSwKKyAgICAgICAgeyAgICJNYXkgRGF5IiwgICAgICAgICAgICAgICAgICAiUHJpbWVybyBkZSBNYXlvIiB9LAorICAgICAgICB7ICAgIk1lbW9yaWFsIERheSIsICAgICAgICAgICAgICJEXHUwMGVkYSBkZSBsYSBSZW1lbW9yYWNpXHUwMGYzbiIgfSwKKyAgICAgICAgeyAgICJNb3RoZXIncyBEYXkiLCAgICAgICAgICAgICAiRFx1MDBlZGEgZGUgbGEgTWFkcmUiIH0sCisgICAgICAgIHsgICAiTmV3IFllYXIncyBEYXkiLCAgICAgICAgICAgIkFcdTAwZjFvIE51ZXZvIiB9LAorICAgICAgICB7ICAgIlBhbG0gU3VuZGF5IiwgICAgICAgICAgICAgICJEb21pbmdvIGRlIFJhbW9zIiB9LAorICAgICAgICB7ICAgIlBlbnRlY29zdCIsICAgICAgICAgICAgICAgICJQZW50ZWNvc3RcdTAwZTlzIiB9LAorICAgICAgICB7ICAgIlByZXNpZGVudHMnIERheSIsICAgICAgICAgICJEXHUwMGVkYSBkZSBQcmVzaWRlbnRlcyIgfSwKKyAgICAgICAgeyAgICJSZXZvbHV0aW9uIERheSIsICAgICAgICAgICAiRFx1MDBlZGEgZGUgbGEgUmV2b2x1Y2lcdTAwZjNuIiB9LAorICAgICAgICB7ICAgIlNocm92ZSBUdWVzZGF5IiwgICAgICAgICAgICJNYXJ0ZXMgZGUgQ2FybmF2YWwiIH0sCisgICAgICAgIHsgICAiVGhhbmtzZ2l2aW5nIiwgICAgICAgICAgICAgIkRcdTAwZWRhIGRlIEFjY2lcdTAwZjNuIGRlIEdyYWNpYXMiIH0sCisgICAgICAgIHsgICAiVmV0ZXJhbnMnIERheSIsICAgICAgICAgICAgIkRcdTAwZWRhIGRlIFZldGVyYW5vcyIgfSwKKyAgICAgICAgeyAgICJWaWN0b3JpYSBEYXkiLCAgICAgICAgICAgICAiRFx1MDBlZGEgZGUgVmljdG9yaWEiIH0sCisgICAgICAgIHsgICAiV2hpdCBTdW5kYXkiLCAgICAgICAgICAgICAgIlBlbnRlY29zdFx1MDBlOXMiIH0sCisgICAgfTsKKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsgcmV0dXJuIGZDb250ZW50czsgfQorfTsKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9lc19NWC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2VzX01YLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2Q4MmI4ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9lc19NWC5qYXZhCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9lc19NWC5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA1OjQ2ICQgCisgKiAkUmV2aXNpb246IDEuNCAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgamF2YS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBIb2xpZGF5QnVuZGxlX2VzX01YIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBIb2xpZGF5W10gZkhvbGlkYXlzID0geworICAgICAgICBTaW1wbGVIb2xpZGF5Lk5FV19ZRUFSU19EQVksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkZFQlJVQVJZLCAgIDUsICAwLCAgICAiQ29uc3RpdHV0aW9uIERheSIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5NQVJDSCwgICAgIDIxLCAgMCwgICAgIkJlbml0byBKdVx1MDBFMXJleiBEYXkiKSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5NQVlfREFZLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5NQVksICAgICAgICA1LCAgMCwgICAgIkNpbmNvIGRlIE1heW8iKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuSlVORSwgICAgICAgMSwgIDAsICAgICJOYXZ5IERheSIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5TRVBURU1CRVIsIDE2LCAgMCwgICAgIkluZGVwZW5kZW5jZSBEYXkiKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuT0NUT0JFUiwgICAxMiwgIDAsICAgICJEXHUwMEVEYSBkZSBsYSBSYXphIiksCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQUxMX1NBSU5UU19EQVksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk5PVkVNQkVSLCAgIDIsICAwLCAgICAiRGF5IG9mIHRoZSBEZWFkIiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk5PVkVNQkVSLCAgMjAsICAwLCAgICAiUmV2b2x1dGlvbiBEYXkiKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuREVDRU1CRVIsICAxMiwgIDAsICAgICJGbGFnIERheSIpLAorICAgICAgICBTaW1wbGVIb2xpZGF5LkNIUklTVE1BUywKKyAgICB9OworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0geworICAgICAgICB7ICJob2xpZGF5cyIsICAgZkhvbGlkYXlzIH0sCisgICAgfTsKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7IHJldHVybiBmQ29udGVudHM7IH0KK307CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZnIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9mci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE2ZTEyMTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZnIuamF2YQpAQCAtMCwwICsxLDUwIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZnIuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNTo0NyAkIAorICogJFJldmlzaW9uOiAxLjQgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBIb2xpZGF5QnVuZGxlX2ZyIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBPYmplY3RbXVtdIGZDb250ZW50cyA9IHsKKyAgICAgICAgeyAgICJBbGwgU2FpbnRzJyBEYXkiLCAgICAgICJUb3Vzc2FpbnQiIH0sCisgICAgICAgIHsgICAiQXJtaXN0aWNlIERheSIsICAgICAgICAiSm91ciBkZSBsJ0FybWlzdGljZSIgfSwKKyAgICAgICAgeyAgICJBc2NlbnNpb24iLCAgICAgICAgICAgICJBc2NlbnNpb24iIH0sCisgICAgICAgIHsgICAiQmFzdGlsbGUgRGF5IiwgICAgICAgICAiRlx1MDBFQXRlIGRlIGxhIEJhc3RpbGxlIiB9LAorICAgICAgICB7ICAgIkJlbml0byBKdVx1MDBFMXJleiBEYXkiLCAgICAiRlx1MDBFQXRlIGRlIEJlbml0byBKdVx1MDBFMXJleiIgfSwKKyAgICAgICAgeyAgICJCb3hpbmcgRGF5IiwgICAgICAgICAgICJMZW5kZW1haW4gZGUgTm9cdTAwRUJsIiB9LAorICAgICAgICB7ICAgIkNocmlzdG1hcyBFdmUiLCAgICAgICAgIlZlaWxsZSBkZSBOb1x1MDBFQmwiIH0sCisgICAgICAgIHsgICAiQ2hyaXN0bWFzIiwgICAgICAgICAgICAiTm9cdTAwRUJsIiB9LAorICAgICAgICB7ICAgIkVhc3RlciBNb25kYXkiLCAgICAgICAgIlBcdTAwRTJxdWVzIGx1bmRpIiB9LAorICAgICAgICB7ICAgIkVhc3RlciBTdW5kYXkiLCAgICAgICAgIlBcdTAwRTJxdWVzIiB9LAorICAgICAgICB7ICAgIkVwaXBoYW55IiwgICAgICAgICAgICAgImwnXHUwMEM5cGlwaGFuaWUiIH0sCisgICAgICAgIHsgICAiRmxhZyBEYXkiLCAgICAgICAgICAgICAiRlx1MDBFQXRlIGR1IERyYXBlYXUiIH0sCisgICAgICAgIHsgICAiR29vZCBGcmlkYXkiLCAgICAgICAgICAiVmVuZHJlZGkgU2FpbnQiIH0sCisgICAgICAgIHsgICAiSGFsbG93ZWVuIiwgICAgICAgICAgICAiVmVpbGxlIGRlIGxhIFRvdXNzYWludCIgfSwKKyAgICAgICAgeyAgICJBbGwgU2FpbnRzJyBEYXkiLCAgICAgICJUb3Vzc2FpbnQiIH0sCisgICAgICAgIHsgICAiSW5kZXBlbmRlbmNlIERheSIsICAgICAiRlx1MDBFQXRlIEluZFx1MDBFOXBlbmRhbmNlIiB9LAorICAgICAgICB7ICAgIk1hdW5keSBUaHVyc2RheSIsICAgICAgIkpldWRpIFNhaW50IiB9LAorICAgICAgICB7ICAgIk1vdGhlcidzIERheSIsICAgICAgICAgIkZcdTAwRUF0ZSBkZXMgbVx1MDBFOHJlcyIgfSwKKyAgICAgICAgeyAgICJOYXRpb25hbCBEYXkiLCAgICAgICAgICJGXHUwMEVBdGUgTmF0aW9uYWxlIiB9LAorICAgICAgICB7ICAgIk5ldyBZZWFyJ3MgRGF5IiwgICAgICAgIkpvdXIgZGUgbCdhbiIgfSwKKyAgICAgICAgeyAgICJQYWxtIFN1bmRheSIsICAgICAgICAgICJsZXMgUmFtZWF1eCIgfSwKKyAgICAgICAgeyAgICJQZW50ZWNvc3QiLCAgICAgICAgICAgICJQZW50ZWNcdTAwRjR0ZSIgfSwKKyAgICAgICAgeyAgICJTaHJvdmUgVHVlc2RheSIsICAgICAgICJNYXJkaSBHcmFzIiB9LAorICAgICAgICB7ICAgIlN0LiBTdGVwaGVuJ3MgRGF5IiwgICAgIlNhaW50LVx1MDBDOXRpZW5uZSIgfSwKKyAgICAgICAgeyAgICJWaWN0b3JpYSBEYXkiLCAgICAgICAgICJGXHUwMEVBdGUgZGUgbGEgVmljdG9yaWEiIH0sCisgICAgICAgIHsgICAiVmljdG9yeSBEYXkiLCAgICAgICAgICAiRlx1MDBFQXRlIGRlIGxhIFZpY3RvaXJlIiB9LAorICAgIH07CisKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7IHJldHVybiBmQ29udGVudHM7IH0KK307CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZnJfQ0EuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9mcl9DQS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNjMjBhMzMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZnJfQ0EuamF2YQpAQCAtMCwwICsxLDQzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZnJfQ0EuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNTo0NyAkIAorICogJFJldmlzaW9uOiAxLjMgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgSG9saWRheUJ1bmRsZV9mcl9DQSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgSG9saWRheVtdIGZIb2xpZGF5cyA9IHsKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuSkFOVUFSWSwgICAgMSwgIDAsICAgICAgICAgICAgICAgICAgIk5ldyBZZWFyJ3MgRGF5IiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk1BWSwgICAgICAgMTksICAwLCAgICAgICAgICAgICAgICAgICJWaWN0b3JpYSBEYXkiKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuSlVORSwgICAgICAyNCwgIDAsICAgICAgICAgICAgICAgICAgIk5hdGlvbmFsIERheSIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5KVUxZLCAgICAgICAxLCAgMCwgICAgICAgICAgICAgICAgICAiQ2FuYWRhIERheSIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5BVUdVU1QsICAgICAxLCAgQ2FsZW5kYXIuTU9OREFZLCAgICAiQ2l2aWMgSG9saWRheSIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5TRVBURU1CRVIsICAxLCAgQ2FsZW5kYXIuTU9OREFZLCAgICAiTGFib3VyIERheSIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5PQ1RPQkVSLCAgICA4LCAgQ2FsZW5kYXIuTU9OREFZLCAgICAiVGhhbmtzZ2l2aW5nIiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk5PVkVNQkVSLCAgMTEsICAwLCAgICAgICAgICAgICAgICAgICJSZW1lbWJyYW5jZSBEYXkiKSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5DSFJJU1RNQVMsCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQk9YSU5HX0RBWSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5ORVdfWUVBUlNfRVZFLAorCisgICAgICAgIC8vIEVhc3RlciBhbmQgcmVsYXRlZCBob2xpZGF5cworICAgICAgICBFYXN0ZXJIb2xpZGF5LkdPT0RfRlJJREFZLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LkVBU1RFUl9TVU5EQVksCisgICAgICAgIEVhc3RlckhvbGlkYXkuRUFTVEVSX01PTkRBWSwKKyAgICB9OworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0geworICAgICAgICB7ICJob2xpZGF5cyIsICAgZkhvbGlkYXlzIH0sCisgICAgfTsKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7IHJldHVybiBmQ29udGVudHM7IH0KK307CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZnJfRlIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9mcl9GUi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNiZTg3YjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZnJfRlIuamF2YQpAQCAtMCwwICsxLDQyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZnJfRlIuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNTo0NyAkIAorICogJFJldmlzaW9uOiAxLjMgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgSG9saWRheUJ1bmRsZV9mcl9GUiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgSG9saWRheVtdIGZIb2xpZGF5cyA9IHsKKyAgICAgICAgU2ltcGxlSG9saWRheS5ORVdfWUVBUlNfREFZLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5NQVksICAgICAgICAxLCAgMCwgIkxhYm9yIERheSIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5NQVksICAgICAgICA4LCAgMCwgIlZpY3RvcnkgRGF5IiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkpVTFksICAgICAgMTQsICAwLCAiQmFzdGlsbGUgRGF5IiksCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQVNTVU1QVElPTiwKKyAgICAgICAgU2ltcGxlSG9saWRheS5BTExfU0FJTlRTX0RBWSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuTk9WRU1CRVIsICAxMSwgIDAsICJBcm1pc3RpY2UgRGF5IiksCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQ0hSSVNUTUFTLAorCisgICAgICAgIC8vIEVhc3RlciBhbmQgcmVsYXRlZCBob2xpZGF5cworICAgICAgICBFYXN0ZXJIb2xpZGF5LkVBU1RFUl9TVU5EQVksCisgICAgICAgIEVhc3RlckhvbGlkYXkuRUFTVEVSX01PTkRBWSwKKyAgICAgICAgRWFzdGVySG9saWRheS5BU0NFTlNJT04sCisgICAgICAgIEVhc3RlckhvbGlkYXkuV0hJVF9TVU5EQVksCisgICAgICAgIEVhc3RlckhvbGlkYXkuV0hJVF9NT05EQVksCisgICAgfTsKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBPYmplY3RbXVtdIGZDb250ZW50cyA9IHsKKyAgICAgICAgeyAiaG9saWRheXMiLCAgIGZIb2xpZGF5cyB9LAorICAgIH07CisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeyByZXR1cm4gZkNvbnRlbnRzOyB9Cit9OwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2l0LmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfaXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jZmUxZTYxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2l0LmphdmEKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2l0LmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDU6NDcgJCAKKyAqICRSZXZpc2lvbjogMS40ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBqYXZhLnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIEhvbGlkYXlCdW5kbGVfaXQgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0KKyAgICB7CisgICAgICAgIHsgICAiQWxsIFNhaW50cycgRGF5IiwgICAgICAiT2duaXNzYW50aSIgfSwKKyAgICAgICAgeyAgICJBcm1pc3RpY2UgRGF5IiwgICAgICAgICJhcm1pc3RpemlvIiB9LAorICAgICAgICB7ICAgIkFzY2Vuc2lvbiIsICAgICAgICAgICAgImFzY2Vuc2lvbmUiIH0sCisgICAgICAgIHsgICAiQXNoIFdlZG5lc2RheSIsICAgICAgICAibWVyY29sZWRcdTAwZWMgZGVsbGUgY2VuZXJpIiB9LAorICAgICAgICB7ICAgIkJveGluZyBEYXkiLCAgICAgICAgICAgIlNhbnRvIFN0ZWZhbm8iIH0sCisgICAgICAgIHsgICAiQ2hyaXN0bWFzIiwgICAgICAgICAgICAibmF0YWxlIiB9LAorICAgICAgICB7ICAgIkVhc3RlciBTdW5kYXkiLCAgICAgICAgInBhc3F1YSIgfSwKKyAgICAgICAgeyAgICJFcGlwaGFueSIsICAgICAgICAgICAgICJFcGlmYW5pYSIgfSwKKyAgICAgICAgeyAgICJHb29kIEZyaWRheSIsICAgICAgICAgICJ2ZW5lcmRcdTAwZWMgc2FudG8iIH0sCisgICAgICAgIHsgICAiSGFsbG93ZWVuIiwgICAgICAgICAgICAidmlnaWxpYSBkaSBPZ25pc3NhbnRpIiB9LAorICAgICAgICB7ICAgIk1hdW5keSBUaHVyc2RheSIsICAgICAgImdpb3ZlZFx1MDBlYyBzYW50byIgfSwKKyAgICAgICAgeyAgICJOZXcgWWVhcidzIERheSIsICAgICAgICJhbm5vIG51b3ZvIiB9LAorICAgICAgICB7ICAgIlBhbG0gU3VuZGF5IiwgICAgICAgICAgImRvbWVuaWNhIGRlbGxlIHBhbG1lIiB9LAorICAgICAgICB7ICAgIlBlbnRlY29zdCIsICAgICAgICAgICAgImRpIFBlbnRlY29zdGUiIH0sCisgICAgICAgIHsgICAiU2hyb3ZlIFR1ZXNkYXkiLCAgICAgICAibWFydGVkaSBncmFzc28iIH0sCisgICAgICAgIHsgICAiU3QuIFN0ZXBoZW4ncyBEYXkiLCAgICAiU2FudG8gU3RlZmFubyIgfSwKKyAgICAgICAgeyAgICJUaGFua3NnaXZpbmciLCAgICAgICAgICJHaW9ybm8gZGVsIFJpbmdyYXppYW1lbnRvIiB9LAorCisgICAgfTsKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7IHJldHVybiBmQ29udGVudHM7IH0KK307CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfaXRfSVQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9pdF9JVC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjZjNDUzZmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfaXRfSVQuamF2YQpAQCAtMCwwICsxLDQxIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfaXRfSVQuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNTo0NyAkIAorICogJFJldmlzaW9uOiAxLjMgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgSG9saWRheUJ1bmRsZV9pdF9JVCBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgSG9saWRheVtdIGZIb2xpZGF5cyA9IHsKKyAgICAgICAgU2ltcGxlSG9saWRheS5ORVdfWUVBUlNfREFZLAorICAgICAgICBTaW1wbGVIb2xpZGF5LkVQSVBIQU5ZLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5BUFJJTCwgICAgICAxLCAgMCwgICAgIkxpYmVyYXRpb24gRGF5IiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk1BWSwgICAgICAgIDEsICAwLCAgICAiTGFib3IgRGF5IiksCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQVNTVU1QVElPTiwKKyAgICAgICAgU2ltcGxlSG9saWRheS5BTExfU0FJTlRTX0RBWSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5JTU1BQ1VMQVRFX0NPTkNFUFRJT04sCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQ0hSSVNUTUFTLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5ERUNFTUJFUiwgIDI2LCAgMCwgICAgIlN0LiBTdGVwaGVucyBEYXkiKSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5ORVdfWUVBUlNfRVZFLAorCisgICAgICAgIC8vIEVhc3RlciBhbmQgcmVsYXRlZCBob2xpZGF5cworICAgICAgICBFYXN0ZXJIb2xpZGF5LkVBU1RFUl9TVU5EQVksCisgICAgICAgIEVhc3RlckhvbGlkYXkuRUFTVEVSX01PTkRBWSwKKyAgICB9OworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0geworICAgICAgICB7ICJob2xpZGF5cyIsICAgICAgICAgICBmSG9saWRheXMgfSwKKyAgICB9OworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsgcmV0dXJuIGZDb250ZW50czsgfQorfTsKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9pdy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2l3LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDA3M2M0ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9pdy5qYXZhCkBAIC0wLDAgKzEsMjcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9pdy5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA1OjQ4ICQgCisgKiAkUmV2aXNpb246IDEuMyAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIEhvbGlkYXlCdW5kbGVfaXcgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworCisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgT2JqZWN0W11bXSBmQ29udGVudHMgPSB7CisgICAgICAgIHsgICAiIiwgIiIgIH0sICAgICAgLy8gQ2FuJ3QgYmUgZW1wdHkhCisgICAgfTsKKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsgcmV0dXJuIGZDb250ZW50czsgfTsKKworfTsKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9pd19JTC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2l3X0lMLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmZlY2JlMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9pd19JTC5qYXZhCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9pd19JTC5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA1OjQ4ICQgCisgKiAkUmV2aXNpb246IDEuMyAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgamF2YS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBIb2xpZGF5QnVuZGxlX2l3X0lMIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBIb2xpZGF5W10gZkhvbGlkYXlzID0geworICAgICAgICBIZWJyZXdIb2xpZGF5LlJPU0hfSEFTSEFOQUgsCisgICAgICAgIEhlYnJld0hvbGlkYXkuWU9NX0tJUFBVUiwKKyAgICAgICAgSGVicmV3SG9saWRheS5IQU5VS0tBSCwKKyAgICAgICAgSGVicmV3SG9saWRheS5QVVJJTSwKKyAgICAgICAgSGVicmV3SG9saWRheS5QQVNTT1ZFUiwKKyAgICAgICAgSGVicmV3SG9saWRheS5TSEFWVU9ULAorICAgICAgICBIZWJyZXdIb2xpZGF5LlNFTElIT1QsCisgICAgfTsKKworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0geworICAgICAgICB7ICJob2xpZGF5cyIsICAgZkhvbGlkYXlzIH0sCisgICAgfTsKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7IHJldHVybiBmQ29udGVudHM7IH0KK307CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfamFfSlAuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9qYV9KUC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY2YzNmYzYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfamFfSlAuamF2YQpAQCAtMCwwICsxLDI4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfamFfSlAuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNTo0OCAkIAorICogJFJldmlzaW9uOiAxLjMgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgSG9saWRheUJ1bmRsZV9qYV9KUCBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgSG9saWRheVtdIGZIb2xpZGF5cyA9IHsKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuRkVCUlVBUlksICAxMSwgIDAsICAgICJOYXRpb25hbCBGb3VuZGF0aW9uIERheSIpLAorICAgIH07CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgT2JqZWN0W11bXSBmQ29udGVudHMgPSB7CisgICAgICAgIHsgICAiaG9saWRheXMiLCAgICAgICAgIGZIb2xpZGF5cyAgIH0sCisgICAgfTsKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7IHJldHVybiBmQ29udGVudHM7IH0KK307CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0lDVUxvY2FsZURhdGEuamFyIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9JQ1VMb2NhbGVEYXRhLmphcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yODM1YmI4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9JQ1VMb2NhbGVEYXRhLmphcgpAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1NjpiMjJlYjE0Mzk3YzA1MmFjYzRiZDA0NzA0YTlkYWM3M2Q1NTUwZWZlYTE1N2RjOWExNjdmY2ExNjRjMzM5OTFmCitzaXplIDEwMTI0NzgKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSXNsYW1pY0NhbGVuZGFyU3ltYm9scy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Jc2xhbWljQ2FsZW5kYXJTeW1ib2xzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTdjY2Q3YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSXNsYW1pY0NhbGVuZGFyU3ltYm9scy5qYXZhCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQXR0aWMvSXNsYW1pY0NhbGVuZGFyU3ltYm9scy5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA1OjQ4ICQgCisgKiAkUmV2aXNpb246IDEuNCAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworLyoqCisgKiBEZWZhdWx0IERhdGUgRm9ybWF0IHN5bWJvbHMgZm9yIHRoZSBJc2xhbWljIENhbGVuZGFyCisgKi8KK3B1YmxpYyBjbGFzcyBJc2xhbWljQ2FsZW5kYXJTeW1ib2xzIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgY29weXJpZ2h0ID0gIkNvcHlyaWdodCBcdTAwYTkgMTk5OC0xOTk5IElCTSBDb3JwLiBBbGwgUmlnaHRzIFJlc2VydmVkLiI7CisKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0W11bXSBmQ29udGVudHMgPSB7CisgICAgICAgIHsgIk1vbnRoTmFtZXMiLCBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAiTXVoYXJyYW0iLAorICAgICAgICAgICAgICAgICJTYWZhciIsCisgICAgICAgICAgICAgICAgIlJhYmknIEkiLAorICAgICAgICAgICAgICAgICJSYWJpJyBJSSIsCisgICAgICAgICAgICAgICAgIkp1bWFkYSBJIiwKKyAgICAgICAgICAgICAgICAiSnVtYWRhIEkiLAorICAgICAgICAgICAgICAgICJSYWphYiIsCisgICAgICAgICAgICAgICAgIlNoYSdiYW4iLAorICAgICAgICAgICAgICAgICJSYW1hZGFuIiwKKyAgICAgICAgICAgICAgICAiU2hhd3dhbCIsCisgICAgICAgICAgICAgICAgIkRodSdsLVFpJ2RhaCIsCisgICAgICAgICAgICAgICAgIkRodSdsLUhpamphaCIsCisgICAgICAgICAgICB9IH0sCisgICAgICAgIHsgIkVyYXMiLCBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAiQUgiCisgICAgICAgICAgICB9IH0sCisgICAgfTsKKyAgICAgICAgCisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgICAgICByZXR1cm4gZkNvbnRlbnRzOworICAgIH0KK307CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0lzbGFtaWNDYWxlbmRhclN5bWJvbHNfYXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSXNsYW1pY0NhbGVuZGFyU3ltYm9sc19hci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjUwYmNhYzcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0lzbGFtaWNDYWxlbmRhclN5bWJvbHNfYXIuamF2YQpAQCAtMCwwICsxLDQ3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0F0dGljL0lzbGFtaWNDYWxlbmRhclN5bWJvbHNfYXIuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNTo0OCAkIAorICogJFJldmlzaW9uOiAxLjQgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKKy8qKgorICogRGVmYXVsdCBEYXRlIEZvcm1hdCBzeW1ib2xzIGZvciB0aGUgSXNsYW1pYyBDYWxlbmRhcgorICovCitwdWJsaWMgY2xhc3MgSXNsYW1pY0NhbGVuZGFyU3ltYm9sc19hciBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGNvcHlyaWdodCA9ICJDb3B5cmlnaHQgXHUwMGE5IDE5OTkgSUJNIENvcnAuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIjsKKworICAgIHN0YXRpYyBmaW5hbCBPYmplY3RbXVtdIGZDb250ZW50cyA9IHsKKyAgICAgICAgeyAiTW9udGhOYW1lcyIsIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgIlx1MDY0NVx1MDYyRFx1MDYzMVx1MDY0NSIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTXVoYXJyYW0KKyAgICAgICAgICAgICJcdTA2MzVcdTA2NDFcdTA2MzEiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmFyCisgICAgICAgICAgICAiXHUwNjMxXHUwNjI4XHUwNjRBXHUwNjM5IFx1MDYyN1x1MDY0NFx1MDYyM1x1MDY0OFx1MDY0NCIsICAgICAgICAgICAgICAvLyBSYWJpJyBJCisgICAgICAgICAgICAiXHUwNjMxXHUwNjI4XHUwNjRBXHUwNjM5IFx1MDYyN1x1MDY0NFx1MDYyMlx1MDYyRVx1MDYzMSIsICAgICAgICAgICAgICAvLyBSYWJpJyBJSQorICAgICAgICAgICAgIlx1MDYyQ1x1MDY0NVx1MDYyN1x1MDYyRlx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2MjNcdTA2NDhcdTA2NDRcdTA2NDkiLCAgLy8gSnVtYWRhIEkKKyAgICAgICAgICAgICJcdTA2MkNcdTA2NDVcdTA2MjdcdTA2MkZcdTA2NDkgXHUwNjI3XHUwNjQ0XHUwNjIyXHUwNjJFXHUwNjMxXHUwNjI5IiwgIC8vIEp1bWFkYSBJCisgICAgICAgICAgICAiXHUwNjMxXHUwNjJDXHUwNjI4IiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBSYWphYgorICAgICAgICAgICAgIlx1MDYzNFx1MDYzOVx1MDYyOFx1MDYyN1x1MDY0NiIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2hhJ2JhbgorICAgICAgICAgICAgIlx1MDYzMVx1MDY0NVx1MDYzNlx1MDYyN1x1MDY0NiIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmFtYWRhbgorICAgICAgICAgICAgIlx1MDYzNFx1MDY0OFx1MDYyN1x1MDY0NCIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2hhd3dhbAorICAgICAgICAgICAgIlx1MDYzMFx1MDY0OCBcdTA2MjdcdTA2NDRcdTA2NDJcdTA2MzlcdTA2MkZcdTA2MjkiLCAgICAgICAgICAgICAgICAgICAgLy8gRGh1J2wtUWknZGFoCisgICAgICAgICAgICAiXHUwNjMwXHUwNjQ4IFx1MDYyN1x1MDY0NFx1MDYyRFx1MDYyQ1x1MDYyOSIsICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBEaHUnbC1IaWpqYWgKKyAgICAgICAgfSB9LAorICAgICAgICB7ICJFcmFzIiwgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAiXHUwNjQ3XHUyMDBEIiwgIC8vIEFICisgICAgICAgIH0gfSwKKyAgICB9OworICAgICAgICAKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICAgICAgIHJldHVybiBmQ29udGVudHM7CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSXNsYW1pY0NhbGVuZGFyU3ltYm9sc19maS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Jc2xhbWljQ2FsZW5kYXJTeW1ib2xzX2ZpLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGFiNjA5NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSXNsYW1pY0NhbGVuZGFyU3ltYm9sc19maS5qYXZhCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQXR0aWMvSXNsYW1pY0NhbGVuZGFyU3ltYm9sc19maS5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA1OjQ5ICQgCisgKiAkUmV2aXNpb246IDEuNCAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworLyoqCisgKiBGaW5uaXNoIGRhdGUgZm9ybWF0IHN5bWJvbHMgZm9yIHRoZSBJc2xhbWljIENhbGVuZGFyCisgKi8KK3B1YmxpYyBjbGFzcyBJc2xhbWljQ2FsZW5kYXJTeW1ib2xzX2ZpIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBjb3B5cmlnaHQgPSAiQ29weXJpZ2h0IFx1MDBhOSAxOTk4IElCTSBDb3JwLiBBbGwgUmlnaHRzIFJlc2VydmVkLiI7CisKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0W11bXSBmQ29udGVudHMgPSB7CisgICAgICAgIHsgIk1vbnRoTmFtZXMiLCBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgIk11aFx1MDBFMXJyYW0iLCAgICAgICAgICAgICAgICAvLyBNdWhhcnJhbQorICAgICAgICAgICAgIlNcdTAwRTFmYXIiLCAgICAgICAgICAgICAgICAgICAvLyBTYWZhcgorICAgICAgICAgICAgIlJhYlx1MDBFRCcgYWwtXHUwMEUxd3dhbCIsICAgICAvLyBSYWJpJyBhbC1hd3dhbAorICAgICAgICAgICAgIlJhYlx1MDBFRCcgYWwtXHUwMEUxa2hpciIsICAgICAvLyBSYWJpJyBhbC10aGFuaQorICAgICAgICAgICAgIkRcdTAxN0V1bWFkYS1sLVx1MDBGQWxhIiwgICAgICAvLyBKdW1hZGEgYWwtYXd3YWwKKyAgICAgICAgICAgICJEXHUwMTdFdW1hZGEtbC1cdTAwRTFraGlyYSIsICAgLy8gSnVtYWRhIGFsLXRoYW5pCisgICAgICAgICAgICAiUmFkXHUwMTdFYWIiLCAgICAgICAgICAgICAgICAgIC8vIFJhamFiCisgICAgICAgICAgICAiXHUwMTYwYSdiXHUwMEUxbiIsICAgICAgICAgICAgIC8vIFNoYSdiYW4KKyAgICAgICAgICAgICJSYW1hZFx1MDBFMW4iLCAgICAgICAgICAgICAgICAgLy8gUmFtYWRhbgorICAgICAgICAgICAgIlx1MDE2MGF3d2FsIiwgICAgICAgICAgICAgICAgICAvLyBTaGF3d2FsCisgICAgICAgICAgICAiRGh1LWwtcWFkYSIsICAgICAgICAgICAgICAgICAgIC8vIERodSBhbC1RaSdkYWgKKyAgICAgICAgICAgICJEaHUtbC1oaWRkXHUwMTdFYSIsICAgICAgICAgICAgLy8gRGh1IGFsLUhpamphaAorICAgICAgICAgICAgfSB9LAorICAgICAgICB7ICJFcmFzIiwgbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICJBSCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQW5ubyBIaWRcdTAxN0VyYQorICAgICAgICAgICAgfSB9LAorICAgIH07CisKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICAgICAgIHJldHVybiBmQ29udGVudHM7CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSXNsYW1pY0NhbGVuZGFyU3ltYm9sc19mci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Jc2xhbWljQ2FsZW5kYXJTeW1ib2xzX2ZyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmE5NmVkMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSXNsYW1pY0NhbGVuZGFyU3ltYm9sc19mci5qYXZhCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQXR0aWMvSXNsYW1pY0NhbGVuZGFyU3ltYm9sc19mci5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA1OjQ5ICQgCisgKiAkUmV2aXNpb246IDEuNCAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworLyoqCisgKiBGcmVuY2ggZGF0ZSBmb3JtYXQgc3ltYm9scyBmb3IgdGhlIElzbGFtaWMgQ2FsZW5kYXIKKyAqIFRoaXMgZGF0YSBhY3R1YWxseSBhcHBsaWVzIHRvIEZyZW5jaCBDYW5hZGlhbi4gIElmIHdlIHJlY2VpdmUKKyAqIG9mZmljaWFsIEZyZW5jaCBkYXRhIGZyb20gb3VyIEZyYW5jZSBvZmZpY2UsIHdlIHNob3VsZCBtb3ZlIHRoZSAKKyAqIEZyZW5jaCBDYW5hZGlhbiBkYXRhIChpZiBpdCdzIGRpZmZlcmVudCkgZG93biBpbnRvIF9mcl9DQQorICovCitwdWJsaWMgY2xhc3MgSXNsYW1pY0NhbGVuZGFyU3ltYm9sc19mciBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgY29weXJpZ2h0ID0gIkNvcHlyaWdodCBcdTAwYTkgMTk5OCBJQk0gQ29ycC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4iOworCisgICAgc3RhdGljIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0geworICAgICAgICB7ICJNb250aE5hbWVzIiwgbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICJNb3VoYXJyYW0iLCAgICAgICAgICAgIC8vIE11aGFycmFtCisgICAgICAgICAgICAiU2FmYXIiLCAgICAgICAgICAgICAgICAvLyBTYWZhcgorICAgICAgICAgICAgIlJhYmknLW91bC1Bb3VvdWFsIiwgICAgLy8gUmFiaScgYWwtYXd3YWwKKyAgICAgICAgICAgICJSYWJpJy1vdXQtVGFuaSIsICAgICAgIC8vIFJhYmknIGFsLXRoYW5pCisgICAgICAgICAgICAiRGpvdW1hZGEtbC1PdWxhIiwgICAgICAvLyBKdW1hZGEgYWwtYXd3YWwKKyAgICAgICAgICAgICJEam91bWFkYS10LVRhbmlhIiwgICAgIC8vIEp1bWFkYSBhbC10aGFuaQorICAgICAgICAgICAgIlJhZGphYiIsICAgICAgICAgICAgICAgLy8gUmFqYWIKKyAgICAgICAgICAgICJDaGEnYmFuIiwgICAgICAgICAgICAgIC8vIFNoYSdiYW4KKyAgICAgICAgICAgICJSYW1hZGFuIiwgICAgICAgICAgICAgIC8vIFJhbWFkYW4KKyAgICAgICAgICAgICJDaGFvdW91YWwiLCAgICAgICAgICAgIC8vIFNoYXd3YWwKKyAgICAgICAgICAgICJEb3UtbC1RYSdkYSIsICAgICAgICAgIC8vIERodSBhbC1RaSdkYWgKKyAgICAgICAgICAgICJEb3UtbC1IaWRqamEiLCAgICAgICAgIC8vIERodSBhbC1IaWpqYWgKKyAgICAgICAgICAgIH0gfSwKKyAgICAgICAgeyAiRXJhcyIsIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAiQUgiICAgICAgICAvLyBBbm5vIEhpanJpCisgICAgICAgICAgICB9IH0sCisgICAgfTsKKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgICAgICAgcmV0dXJuIGZDb250ZW50czsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Jc2xhbWljQ2FsZW5kYXJTeW1ib2xzX2h1LmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0lzbGFtaWNDYWxlbmRhclN5bWJvbHNfaHUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hZjFiMDcxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Jc2xhbWljQ2FsZW5kYXJTeW1ib2xzX2h1LmphdmEKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9BdHRpYy9Jc2xhbWljQ2FsZW5kYXJTeW1ib2xzX2h1LmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDU6NDkgJCAKKyAqICRSZXZpc2lvbjogMS40ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCisvKioKKyAqIEh1bmdhcmlhbiBkYXRlIGZvcm1hdCBzeW1ib2xzIGZvciB0aGUgSXNsYW1pYyBDYWxlbmRhcgorICovCitwdWJsaWMgY2xhc3MgSXNsYW1pY0NhbGVuZGFyU3ltYm9sc19odSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgY29weXJpZ2h0ID0gIkNvcHlyaWdodCBcdTAwYTkgMTk5OCBJQk0gQ29ycC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4iOworCisgICAgc3RhdGljIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0geworICAgICAgICB7ICJNb250aE5hbWVzIiwgbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICJNb2hhcnJlbSIsICAgICAgICAgICAgICAgICAvLyBNdWhhcnJhbQorICAgICAgICAgICAgIlNhZmFyIiwgICAgICAgICAgICAgICAgICAgIC8vIFNhZmFyCisgICAgICAgICAgICAiUlx1MDBFOWJpIGVsIGF2dmVsIiwgICAgICAgLy8gUmFiaScgYWwtYXd3YWwKKyAgICAgICAgICAgICJSXHUwMEU5YmkgZWwgYWNjaGVyIiwgICAgICAvLyBSYWJpJyBhbC10aGFuaQorICAgICAgICAgICAgIkRzZW1cdTAwRTFkaSBlbCBhdnZlbCIsICAgIC8vIEp1bWFkYSBhbC1hd3dhbAorICAgICAgICAgICAgIkRzZW1cdTAwRTFkaSBlbCBhY2NoZXIiLCAgIC8vIEp1bWFkYSBhbC10aGFuaQorICAgICAgICAgICAgIlJlZHNlYiIsICAgICAgICAgICAgICAgICAgIC8vIFJhamFiCisgICAgICAgICAgICAiU2FiXHUwMEUxbiIsICAgICAgICAgICAgICAgLy8gU2hhJ2JhbgorICAgICAgICAgICAgIlJhbWFkXHUwMEUxbiIsICAgICAgICAgICAgIC8vIFJhbWFkYW4KKyAgICAgICAgICAgICJTZXZ2XHUwMEUxbCIsICAgICAgICAgICAgICAvLyBTaGF3d2FsCisgICAgICAgICAgICAiRHNcdTAwRkNsIGthZGUiLCAgICAgICAgICAgLy8gRGh1IGFsLVFpJ2RhaAorICAgICAgICAgICAgIkRzXHUwMEZDbCBoZWRzZSIsICAgICAgICAgIC8vIERodSBhbC1IaWpqYWgKKyAgICAgICAgICAgIH0gfSwKKyAgICAgICAgeyAiRXJhcyIsIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAiTUYiCisgICAgICAgICAgICB9IH0sCisgICAgfTsKKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgICAgICAgcmV0dXJuIGZDb250ZW50czsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Jc2xhbWljQ2FsZW5kYXJTeW1ib2xzX2l3LmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0lzbGFtaWNDYWxlbmRhclN5bWJvbHNfaXcuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iY2Y1MmNmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Jc2xhbWljQ2FsZW5kYXJTeW1ib2xzX2l3LmphdmEKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9BdHRpYy9Jc2xhbWljQ2FsZW5kYXJTeW1ib2xzX2l3LmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDU6NDkgJCAKKyAqICRSZXZpc2lvbjogMS40ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCisvKioKKyAqIERlZmF1bHQgRGF0ZSBGb3JtYXQgc3ltYm9scyBmb3IgdGhlIElzbGFtaWMgQ2FsZW5kYXIKKyAqLworcHVibGljIGNsYXNzIElzbGFtaWNDYWxlbmRhclN5bWJvbHNfaXcgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGNvcHlyaWdodCA9ICJDb3B5cmlnaHQgXHUwMGE5IDE5OTggSUJNIENvcnAuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIjsKKworICAgIHN0YXRpYyBmaW5hbCBPYmplY3RbXVtdIGZDb250ZW50cyA9IHsKKyAgICAgICAgeyAiTW9udGhOYW1lcyIsIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAiXHUwNURFXHUwNUQ1XHUwNUQ3XHUwNUU4XHUwNUREIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE11aGFycmFtCisgICAgICAgICAgICAiXHUwNUUxXHUwNUU0XHUwNUU4IiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmFyCisgICAgICAgICAgICAiXHUwNUU4XHUwNUQxXHUwNUQ5XHUwNUUyIFx1MDVEMFx1MDVEQy1cdTA1RDBcdTA1RDVcdTA1RDVcdTA1RDBcdTA1REMiLCAgICAgICAgIC8vIFJhYmknIGFsLWF3d2FsCisgICAgICAgICAgICAiXHUwNUU4XHUwNUQxXHUwNUQ5XHUwNUUyIFx1MDVEMFx1MDVEQy1cdTA1RUFcdTA1RTBcdTA1RDkiLCAgICAgICAgICAgICAgICAgICAgIC8vIFJhYmknIGFsLXRoYW5pCisgICAgICAgICAgICAiXHUwNUQyJ1x1MDVENVx1MDVERVx1MDVEM1x1MDVENCBcdTA1RDBcdTA1REMtXHUwNUQwXHUwNUQ1XHUwNUQ1XHUwNUQwXHUwNURDIiwgIC8vIEp1bWFkYSBhbC1hd3dhbAorICAgICAgICAgICAgIlx1MDVEMidcdTA1RDVcdTA1REVcdTA1RDNcdTA1RDQgXHUwNUQwXHUwNURDLVx1MDVFQVx1MDVFMFx1MDVEOSIsICAgICAgICAgICAgICAvLyBKdW1hZGEgYWwtdGhhbmkKKyAgICAgICAgICAgICJcdTA1RThcdTA1RDInXHUwNUQwXHUwNUQxIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmFqYWIKKyAgICAgICAgICAgICJcdTA1RTlcdTA1RTJcdTA1RDFcdTA1RDBcdTA1REYiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2hhJ2JhbgorICAgICAgICAgICAgIlx1MDVFOFx1MDVEMFx1MDVERVx1MDVEM1x1MDVERiIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBSYW1hZGFuCisgICAgICAgICAgICAiXHUwNUU5XHUwNUQ1XHUwNUQ1XHUwNUQwXHUwNURDIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNoYXd3YWwKKyAgICAgICAgICAgICJcdTA1RTlcdTA1RDVcdTA1RDVcdTA1RDBcdTA1REMiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRGh1IGFsLVFpJ2RhaAorICAgICAgICAgICAgIlx1MDVENlx1MDVENSBcdTA1RDBcdTA1REMtXHUwNUQ3XHUwNUQ5XHUwNUQyJ1x1MDVENCIsICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBEaHUgYWwtSGlqamFoCisgICAgICAgICAgICB9IH0sCisgICAgICAgIHsgIkVyYXMiLCBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgIlx1MDVFOVx1MDVFMFx1MDVFQSBcdTA1RDRcdTA1RDlcdTA1RDInXHUwNUU4XHUwNUQ0IgorICAgICAgICAgICAgfSB9LAorICAgIH07CisKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICAgICAgIHJldHVybiBmQ29udGVudHM7CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSXNsYW1pY0NhbGVuZGFyU3ltYm9sc19ubC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Jc2xhbWljQ2FsZW5kYXJTeW1ib2xzX25sLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWI1ODhmZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSXNsYW1pY0NhbGVuZGFyU3ltYm9sc19ubC5qYXZhCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQXR0aWMvSXNsYW1pY0NhbGVuZGFyU3ltYm9sc19ubC5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA1OjQ5ICQgCisgKiAkUmV2aXNpb246IDEuNCAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworLyoqCisgKiBEdXRjaCBkYXRlIGZvcm1hdCBzeW1ib2xzIGZvciB0aGUgSXNsYW1pYyBDYWxlbmRhcgorICovCitwdWJsaWMgY2xhc3MgSXNsYW1pY0NhbGVuZGFyU3ltYm9sc19ubCBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgY29weXJpZ2h0ID0gIkNvcHlyaWdodCBcdTAwYTkgMTk5OCBJQk0gQ29ycC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4iOworCisgICAgc3RhdGljIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0geworICAgICAgICB7ICJNb250aE5hbWVzIiwgbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICJNb2VoYXJyYW0iLCAgICAgICAgICAgIC8vIE11aGFycmFtCisgICAgICAgICAgICAiU2FmYXIiLCAgICAgICAgICAgICAgICAvLyBTYWZhcgorICAgICAgICAgICAgIlJhYmknYSBhbCBhd2FsICIsICAgICAgLy8gUmFiaScgYWwtYXd3YWwKKyAgICAgICAgICAgICJSYWJpJ2EgYWwgdGhhbmkiLCAgICAgIC8vIFJhYmknIGFsLXRoYW5pCisgICAgICAgICAgICAiSm9lbWFkJ2FsIGF3YWwiLCAgICAgICAvLyBKdW1hZGEgYWwtYXd3YWwKKyAgICAgICAgICAgICJKb2VtYWQnYWwgdGhhbmkiLCAgICAgIC8vIEp1bWFkYSBhbC10aGFuaQorICAgICAgICAgICAgIlJhamFiIiwgICAgICAgICAgICAgICAgLy8gUmFqYWIKKyAgICAgICAgICAgICJTamEnYWJhbiIsICAgICAgICAgICAgIC8vIFNoYSdiYW4KKyAgICAgICAgICAgICJSYW1hZGFuIiwgICAgICAgICAgICAgIC8vIFJhbWFkYW4KKyAgICAgICAgICAgICJTamF3YWwiLCAgICAgICAgICAgICAgIC8vIFNoYXd3YWwKKyAgICAgICAgICAgICJEb2UgYWwga2EnYWJhIiwgICAgICAgIC8vIERodSBhbC1RaSdkYWgKKyAgICAgICAgICAgICJEb2UgYWwgaGl6amEiLCAgICAgICAgIC8vIERodSBhbC1IaWpqYWgKKyAgICAgICAgICAgIH0gfSwKKyAgICAgICAgeyAiRXJhcyIsIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAiU2EnbmEgSGl6anJpYSIKKyAgICAgICAgICAgIH0gfSwKKyAgICB9OworCisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgICAgICByZXR1cm4gZkNvbnRlbnRzOworICAgIH0KK307CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0phcGFuZXNlQ2FsZW5kYXJTeW1ib2xzLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0phcGFuZXNlQ2FsZW5kYXJTeW1ib2xzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGI2NDhmMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSmFwYW5lc2VDYWxlbmRhclN5bWJvbHMuamF2YQpAQCAtMCwwICsxLDI4MiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9BdHRpYy9KYXBhbmVzZUNhbGVuZGFyU3ltYm9scy5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA1OjUwICQgCisgKiAkUmV2aXNpb246IDEuNCAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworLyoqCisgKiBEZWZhdWx0IERhdGUgRm9ybWF0IHN5bWJvbHMgZm9yIHRoZSBKYXBhbmVzZSBDYWxlbmRhcgorICovCitwdWJsaWMgY2xhc3MgSmFwYW5lc2VDYWxlbmRhclN5bWJvbHMgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGNvcHlyaWdodCA9ICJDb3B5cmlnaHQgXHUwMGE5IDE5OTggSUJNIENvcnAuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIjsKKworICAgIHN0YXRpYyBmaW5hbCBPYmplY3RbXVtdIGZDb250ZW50cyA9IHsKKyAgICAgICAgeyAiRGF0ZVRpbWVQYXR0ZXJucyIsCisgICAgICAgICAgICBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgICAgICJoOm1tOnNzIGEgeiIsIC8vIGZ1bGwgdGltZSBwYXR0ZXJuCisgICAgICAgICAgICAgICAgImg6bW06c3MgYSB6IiwgLy8gbG9uZyB0aW1lIHBhdHRlcm4KKyAgICAgICAgICAgICAgICAiaDptbTpzcyBhIiwgLy8gbWVkaXVtIHRpbWUgcGF0dGVybgorICAgICAgICAgICAgICAgICJoOm1tIGEiLCAvLyBzaG9ydCB0aW1lIHBhdHRlcm4KKyAgICAgICAgICAgICAgICAiRUVFRSwgTU1NTSBkLCB5eSBHIiwgLy8gZnVsbCBkYXRlIHBhdHRlcm4KKyAgICAgICAgICAgICAgICAiTU1NTSBkLCB5eSBHIiwgLy8gbG9uZyBkYXRlIHBhdHRlcm4KKyAgICAgICAgICAgICAgICAiTU1NIGQsIHl5IEciLCAvLyBtZWRpdW0gZGF0ZSBwYXR0ZXJuCisgICAgICAgICAgICAgICAgIk0vZC95eSIsIC8vIHNob3J0IGRhdGUgcGF0dGVybgorICAgICAgICAgICAgICAgICJ7MX0gezB9IiAvLyBkYXRlLXRpbWUgcGF0dGVybgorICAgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICB7ICJFcmFzIiwgbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgIC8vIE5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgR3JlZ29yaWFuIFllYXIKKyAgICAgICAgICAgICJUYWlrYSIsICAgICAgICAgICAgICAgICAgICAgICAgLy8gIDY0NQorICAgICAgICAgICAgIkhha3VjaGkiLCAgICAgICAgICAgICAgICAgICAgICAvLyAgNjUwCisgICAgICAgICAgICAiSGFrdWhcdTAxNEQiLCAgICAgICAgICAgICAgICAgIC8vICA2NzIKKyAgICAgICAgICAgICJTaHVjaFx1MDE0RCIsICAgICAgICAgICAgICAgICAgLy8gIDY4NgorICAgICAgICAgICAgIlRhaWhcdTAxNEQiLCAgICAgICAgICAgICAgICAgICAvLyAgNzAxCisgICAgICAgICAgICAiS2VpdW4iLCAgICAgICAgICAgICAgICAgICAgICAgIC8vICA3MDQKKyAgICAgICAgICAgICJXYWRcdTAxNEQiLCAgICAgICAgICAgICAgICAgICAgLy8gIDcwOAorICAgICAgICAgICAgIlJlaWtpIiwgICAgICAgICAgICAgICAgICAgICAgICAvLyAgNzE1CisgICAgICAgICAgICAiWVx1MDE0RHJcdTAxNEQiLCAgICAgICAgICAgICAgIC8vICA3MTcKKyAgICAgICAgICAgICJKaW5raSIsICAgICAgICAgICAgICAgICAgICAgICAgLy8gIDcyNAorICAgICAgICAgICAgIlRlbXB5XHUwMTREIiwgICAgICAgICAgICAgICAgICAvLyAgNzI5CisgICAgICAgICAgICAiVGVtcHlcdTAxNEQta2FtcFx1MDE0RCIsICAgICAgIC8vICA3NDkKKyAgICAgICAgICAgICJUZW1weVx1MDE0RC1zaFx1MDE0RGhcdTAxNEQiLCAgLy8gIDc0OQorICAgICAgICAgICAgIlRlbXB5XHUwMTRELWhcdTAxNERqaSIsICAgICAgICAvLyAgNzU3CisgICAgICAgICAgICAiVGVtcGhcdTAxNEQtamluZ28iLCAgICAgICAgICAgIC8vICA3NjUKKyAgICAgICAgICAgICJKaW5nby1rZWl1biIsICAgICAgICAgICAgICAgICAgLy8gIDc2NworICAgICAgICAgICAgIkhcdTAxNERraSIsICAgICAgICAgICAgICAgICAgICAvLyAgNzcwCisgICAgICAgICAgICAiVGVuLVx1MDE0RCIsICAgICAgICAgICAgICAgICAgIC8vICA3ODEKKyAgICAgICAgICAgICJFbnJ5YWt1IiwgICAgICAgICAgICAgICAgICAgICAgLy8gIDc4MgorICAgICAgICAgICAgIkRhaWRcdTAxNEQiLCAgICAgICAgICAgICAgICAgICAvLyAgODA2CisgICAgICAgICAgICAiS1x1MDE0RG5pbiIsICAgICAgICAgICAgICAgICAgIC8vICA4MTAKKyAgICAgICAgICAgICJUZW5jaFx1MDE0RCIsICAgICAgICAgICAgICAgICAgLy8gIDgyNAorICAgICAgICAgICAgIlNoXHUwMTREd2EiLCAgICAgICAgICAgICAgICAgICAvLyAgODM0CisgICAgICAgICAgICAiS2FqXHUwMTREIiwgICAgICAgICAgICAgICAgICAgIC8vICA4NDgKKyAgICAgICAgICAgICJOaW5qdSIsICAgICAgICAgICAgICAgICAgICAgICAgLy8gIDg1MQorICAgICAgICAgICAgIlNhaWtvIiwgICAgICAgICAgICAgICAgICAgICAgICAvLyAgODU0CisgICAgICAgICAgICAiVGVubmFuIiwgICAgICAgICAgICAgICAgICAgICAgIC8vICA4NTcKKyAgICAgICAgICAgICJKXHUwMTREZ2FuIiwgICAgICAgICAgICAgICAgICAgLy8gIDg1OQorICAgICAgICAgICAgIkdlbmtlaSIsICAgICAgICAgICAgICAgICAgICAgICAvLyAgODc3CisgICAgICAgICAgICAiTmlubmEiLCAgICAgICAgICAgICAgICAgICAgICAgIC8vICA4ODUKKyAgICAgICAgICAgICJLYW1weVx1MDE0RCIsICAgICAgICAgICAgICAgICAgLy8gIDg4OQorICAgICAgICAgICAgIlNoXHUwMTREdGFpIiwgICAgICAgICAgICAgICAgICAvLyAgODk4CisgICAgICAgICAgICAiRW5naSIsICAgICAgICAgICAgICAgICAgICAgICAgIC8vICA5MDEKKyAgICAgICAgICAgICJFbmNoXHUwMTREIiwgICAgICAgICAgICAgICAgICAgLy8gIDkyMworICAgICAgICAgICAgIlNoXHUwMTREaGVpIiwgICAgICAgICAgICAgICAgICAvLyAgOTMxCisgICAgICAgICAgICAiVGVuZ3lcdTAxNEQiLCAgICAgICAgICAgICAgICAgIC8vICA5MzgKKyAgICAgICAgICAgICJUZW5yeWFrdSIsICAgICAgICAgICAgICAgICAgICAgLy8gIDk0NworICAgICAgICAgICAgIlRlbnRva3UiLCAgICAgICAgICAgICAgICAgICAgICAvLyAgOTU3CisgICAgICAgICAgICAiXHUwMTRDd2EiLCAgICAgICAgICAgICAgICAgICAgIC8vICA5NjEKKyAgICAgICAgICAgICJLXHUwMTREaFx1MDE0RCIsICAgICAgICAgICAgICAgLy8gIDk2NAorICAgICAgICAgICAgIkFubmEiLCAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgOTY4CisgICAgICAgICAgICAiVGVucm9rdSIsICAgICAgICAgICAgICAgICAgICAgIC8vICA5NzAKKyAgICAgICAgICAgICJUZW4tZW4iLCAgICAgICAgICAgICAgICAgICAgICAgLy8gIDk3MworICAgICAgICAgICAgIkpcdTAxNERnZW4iLCAgICAgICAgICAgICAgICAgICAvLyAgOTc2CisgICAgICAgICAgICAiVGVuZ2VuIiwgICAgICAgICAgICAgICAgICAgICAgIC8vICA5NzgKKyAgICAgICAgICAgICJFaWthbiIsICAgICAgICAgICAgICAgICAgICAgICAgLy8gIDk4MworICAgICAgICAgICAgIkthbm5hIiwgICAgICAgICAgICAgICAgICAgICAgICAvLyAgOTg1CisgICAgICAgICAgICAiRWktZW4iLCAgICAgICAgICAgICAgICAgICAgICAgIC8vICA5ODcKKyAgICAgICAgICAgICJFaXNvIiwgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIDk4OQorICAgICAgICAgICAgIlNoXHUwMTREcnlha3UiLCAgICAgICAgICAgICAgICAvLyAgOTkwCisgICAgICAgICAgICAiQ2hcdTAxNER0b2t1IiwgICAgICAgICAgICAgICAgIC8vICA5OTUKKyAgICAgICAgICAgICJDaFx1MDE0RGhcdTAxNEQiLCAgICAgICAgICAgICAgLy8gIDk5OQorICAgICAgICAgICAgIkthbmtcdTAxNEQiLCAgICAgICAgICAgICAgICAgICAvLyAxMDA0CisgICAgICAgICAgICAiQ2hcdTAxNER3YSIsICAgICAgICAgICAgICAgICAgIC8vIDEwMTIKKyAgICAgICAgICAgICJLYW5uaW4iLCAgICAgICAgICAgICAgICAgICAgICAgLy8gMTAxNworICAgICAgICAgICAgIkppYW4iLCAgICAgICAgICAgICAgICAgICAgICAgICAvLyAxMDIxCisgICAgICAgICAgICAiTWFuanUiLCAgICAgICAgICAgICAgICAgICAgICAgIC8vIDEwMjQKKyAgICAgICAgICAgICJDaFx1MDE0RGdlbiIsICAgICAgICAgICAgICAgICAgLy8gMTAyOAorICAgICAgICAgICAgIkNoXHUwMTREcnlha3UiLCAgICAgICAgICAgICAgICAvLyAxMDM3CisgICAgICAgICAgICAiQ2hcdTAxNERreVx1MDE2QiIsICAgICAgICAgICAgIC8vIDEwNDAKKyAgICAgICAgICAgICJLYW50b2t1IiwgICAgICAgICAgICAgICAgICAgICAgLy8gMTA0NAorICAgICAgICAgICAgIkVpc2hcdTAxNEQiLCAgICAgICAgICAgICAgICAgICAvLyAxMDQ2CisgICAgICAgICAgICAiVGVuZ2kiLCAgICAgICAgICAgICAgICAgICAgICAgIC8vIDEwNTMKKyAgICAgICAgICAgICJLXHUwMTREaGVpIiwgICAgICAgICAgICAgICAgICAgLy8gMTA1OAorICAgICAgICAgICAgIkppcnlha3UiLCAgICAgICAgICAgICAgICAgICAgICAvLyAxMDY1CisgICAgICAgICAgICAiRW5reVx1MDE2QiIsICAgICAgICAgICAgICAgICAgIC8vIDEwNjkKKyAgICAgICAgICAgICJTaFx1MDE0RGhvIiwgICAgICAgICAgICAgICAgICAgLy8gMTA3NAorICAgICAgICAgICAgIlNoXHUwMTREcnlha3UiLCAgICAgICAgICAgICAgICAvLyAxMDc3CisgICAgICAgICAgICAiRWlobyIsICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDEwODEKKyAgICAgICAgICAgICJcdTAxNEN0b2t1IiwgICAgICAgICAgICAgICAgICAgLy8gMTA4NAorICAgICAgICAgICAgIkthbmppIiwgICAgICAgICAgICAgICAgICAgICAgICAvLyAxMDg3CisgICAgICAgICAgICAiS2FobyIsICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDEwOTQKKyAgICAgICAgICAgICJFaWNoXHUwMTREIiwgICAgICAgICAgICAgICAgICAgLy8gMTA5NgorICAgICAgICAgICAgIlNoXHUwMTREdG9rdSIsICAgICAgICAgICAgICAgICAvLyAxMDk3CisgICAgICAgICAgICAiS1x1MDE0RHdhIiwgICAgICAgICAgICAgICAgICAgIC8vIDEwOTkKKyAgICAgICAgICAgICJDaFx1MDE0RGppIiwgICAgICAgICAgICAgICAgICAgLy8gMTEwNAorICAgICAgICAgICAgIkthc2hcdTAxNEQiLCAgICAgICAgICAgICAgICAgICAvLyAxMTA2CisgICAgICAgICAgICAiVGVubmluIiwgICAgICAgICAgICAgICAgICAgICAgIC8vIDExMDgKKyAgICAgICAgICAgICJUZW4tZWkiLCAgICAgICAgICAgICAgICAgICAgICAgLy8gMTExMAorICAgICAgICAgICAgIkVpa3lcdTAxNkIiLCAgICAgICAgICAgICAgICAgICAvLyAxMTEzCisgICAgICAgICAgICAiR2VuLWVpIiwgICAgICAgICAgICAgICAgICAgICAgIC8vIDExMTgKKyAgICAgICAgICAgICJIb2FuIiwgICAgICAgICAgICAgICAgICAgICAgICAgLy8gMTEyMAorICAgICAgICAgICAgIlRlbmppIiwgICAgICAgICAgICAgICAgICAgICAgICAvLyAxMTI0CisgICAgICAgICAgICAiRGFpamkiLCAgICAgICAgICAgICAgICAgICAgICAgIC8vIDExMjYKKyAgICAgICAgICAgICJUZW5zaFx1MDE0RCIsICAgICAgICAgICAgICAgICAgLy8gMTEzMQorICAgICAgICAgICAgIkNoXHUwMTREc2hcdTAxNEQiLCAgICAgICAgICAgICAvLyAxMTMyCisgICAgICAgICAgICAiSG9lbiIsICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDExMzUKKyAgICAgICAgICAgICJFaWppIiwgICAgICAgICAgICAgICAgICAgICAgICAgLy8gMTE0MQorICAgICAgICAgICAgIktcdTAxNERqaSIsICAgICAgICAgICAgICAgICAgICAvLyAxMTQyCisgICAgICAgICAgICAiVGVueVx1MDE0RCIsICAgICAgICAgICAgICAgICAgIC8vIDExNDQKKyAgICAgICAgICAgICJLeVx1MDE2QmFuIiwgICAgICAgICAgICAgICAgICAgLy8gMTE0NQorICAgICAgICAgICAgIk5pbnBlaSIsICAgICAgICAgICAgICAgICAgICAgICAvLyAxMTUxCisgICAgICAgICAgICAiS3lcdTAxNkJqdSIsICAgICAgICAgICAgICAgICAgIC8vIDExNTQKKyAgICAgICAgICAgICJIb2dlbiIsICAgICAgICAgICAgICAgICAgICAgICAgLy8gMTE1NgorICAgICAgICAgICAgIkhlaWppIiwgICAgICAgICAgICAgICAgICAgICAgICAvLyAxMTU5CisgICAgICAgICAgICAiRWlyeWFrdSIsICAgICAgICAgICAgICAgICAgICAgIC8vIDExNjAKKyAgICAgICAgICAgICJcdTAxNENobyIsICAgICAgICAgICAgICAgICAgICAgLy8gMTE2MQorICAgICAgICAgICAgIkNoXHUwMTREa2FuIiwgICAgICAgICAgICAgICAgICAvLyAxMTYzCisgICAgICAgICAgICAiRWltYW4iLCAgICAgICAgICAgICAgICAgICAgICAgIC8vIDExNjUKKyAgICAgICAgICAgICJOaW4tYW4iLCAgICAgICAgICAgICAgICAgICAgICAgLy8gMTE2NgorICAgICAgICAgICAgIkthXHUwMTREIiwgICAgICAgICAgICAgICAgICAgICAvLyAxMTY5CisgICAgICAgICAgICAiU2hcdTAxNERhbiIsICAgICAgICAgICAgICAgICAgIC8vIDExNzEKKyAgICAgICAgICAgICJBbmdlbiIsICAgICAgICAgICAgICAgICAgICAgICAgLy8gMTE3NQorICAgICAgICAgICAgIkppc2hcdTAxNEQiLCAgICAgICAgICAgICAgICAgICAvLyAxMTc3CisgICAgICAgICAgICAiWVx1MDE0RHdhIiwgICAgICAgICAgICAgICAgICAgIC8vIDExODEKKyAgICAgICAgICAgICJKdWVpIiwgICAgICAgICAgICAgICAgICAgICAgICAgLy8gMTE4MgorICAgICAgICAgICAgIkdlbnJ5dWt1IiwgICAgICAgICAgICAgICAgICAgICAvLyAxMTg0CisgICAgICAgICAgICAiQnVuamkiLCAgICAgICAgICAgICAgICAgICAgICAgIC8vIDExODUKKyAgICAgICAgICAgICJLZW5reVx1MDE2QiIsICAgICAgICAgICAgICAgICAgLy8gMTE5MAorICAgICAgICAgICAgIlNoXHUwMTREamkiLCAgICAgICAgICAgICAgICAgICAvLyAxMTk5CisgICAgICAgICAgICAiS2VubmluIiwgICAgICAgICAgICAgICAgICAgICAgIC8vIDEyMDEKKyAgICAgICAgICAgICJHZW5reVx1MDE2QiIsICAgICAgICAgICAgICAgICAgLy8gMTIwNAorICAgICAgICAgICAgIktlbi1laSIsICAgICAgICAgICAgICAgICAgICAgICAvLyAxMjA2CisgICAgICAgICAgICAiU2hcdTAxNERnZW4iLCAgICAgICAgICAgICAgICAgIC8vIDEyMDcKKyAgICAgICAgICAgICJLZW5yeWFrdSIsICAgICAgICAgICAgICAgICAgICAgLy8gMTIxMQorICAgICAgICAgICAgIktlbnBcdTAxNEQiLCAgICAgICAgICAgICAgICAgICAvLyAxMjEzCisgICAgICAgICAgICAiU2hcdTAxNERreVx1MDE2QiIsICAgICAgICAgICAgIC8vIDEyMTkKKyAgICAgICAgICAgICJKXHUwMTREXHUwMTREIiwgICAgICAgICAgICAgICAgLy8gMTIyMgorICAgICAgICAgICAgIkdlbm5pbiIsICAgICAgICAgICAgICAgICAgICAgICAvLyAxMjI0CisgICAgICAgICAgICAiS2Fyb2t1IiwgICAgICAgICAgICAgICAgICAgICAgIC8vIDEyMjUKKyAgICAgICAgICAgICJBbnRlaSIsICAgICAgICAgICAgICAgICAgICAgICAgLy8gMTIyNworICAgICAgICAgICAgIkthbmtpIiwgICAgICAgICAgICAgICAgICAgICAgICAvLyAxMjI5CisgICAgICAgICAgICAiSlx1MDE0RGVpIiwgICAgICAgICAgICAgICAgICAgIC8vIDEyMzIKKyAgICAgICAgICAgICJUZW1wdWt1IiwgICAgICAgICAgICAgICAgICAgICAgLy8gMTIzMworICAgICAgICAgICAgIkJ1bnJ5YWt1IiwgICAgICAgICAgICAgICAgICAgICAvLyAxMjM0CisgICAgICAgICAgICAiS2F0ZWkiLCAgICAgICAgICAgICAgICAgICAgICAgIC8vIDEyMzUKKyAgICAgICAgICAgICJSeWFrdW5pbiIsICAgICAgICAgICAgICAgICAgICAgLy8gMTIzOAorICAgICAgICAgICAgIkVuLVx1MDE0RCIsICAgICAgICAgICAgICAgICAgICAvLyAxMjM5CisgICAgICAgICAgICAiTmluamkiLCAgICAgICAgICAgICAgICAgICAgICAgIC8vIDEyNDAKKyAgICAgICAgICAgICJLYW5nZW4iLCAgICAgICAgICAgICAgICAgICAgICAgLy8gMTI0MworICAgICAgICAgICAgIkhcdTAxNERqaSIsICAgICAgICAgICAgICAgICAgICAvLyAxMjQ3CisgICAgICAgICAgICAiS2VuY2hcdTAxNEQiLCAgICAgICAgICAgICAgICAgIC8vIDEyNDkKKyAgICAgICAgICAgICJLXHUwMTREZ2VuIiwgICAgICAgICAgICAgICAgICAgLy8gMTI1NgorICAgICAgICAgICAgIlNoXHUwMTREa2EiLCAgICAgICAgICAgICAgICAgICAvLyAxMjU3CisgICAgICAgICAgICAiU2hcdTAxNERnZW4iLCAgICAgICAgICAgICAgICAgIC8vIDEyNTkKKyAgICAgICAgICAgICJCdW4tXHUwMTREIiwgICAgICAgICAgICAgICAgICAgLy8gMTI2MAorICAgICAgICAgICAgIktcdTAxNERjaFx1MDE0RCIsICAgICAgICAgICAgICAvLyAxMjYxCisgICAgICAgICAgICAiQnVuLWVpIiwgICAgICAgICAgICAgICAgICAgICAgIC8vIDEyNjQKKyAgICAgICAgICAgICJLZW5qaSIsICAgICAgICAgICAgICAgICAgICAgICAgLy8gMTI3NQorICAgICAgICAgICAgIktcdTAxNERhbiIsICAgICAgICAgICAgICAgICAgICAvLyAxMjc4CisgICAgICAgICAgICAiU2hcdTAxNERcdTAxNEQiLCAgICAgICAgICAgICAgIC8vIDEyODgKKyAgICAgICAgICAgICJFaW5pbiIsICAgICAgICAgICAgICAgICAgICAgICAgLy8gMTI5MworICAgICAgICAgICAgIlNoXHUwMTREYW4iLCAgICAgICAgICAgICAgICAgICAvLyAxMjk5CisgICAgICAgICAgICAiS2VuZ2VuIiwgICAgICAgICAgICAgICAgICAgICAgIC8vIDEzMDIKKyAgICAgICAgICAgICJLYWdlbiIsICAgICAgICAgICAgICAgICAgICAgICAgLy8gMTMwMworICAgICAgICAgICAgIlRva3VqaSIsICAgICAgICAgICAgICAgICAgICAgICAvLyAxMzA2CisgICAgICAgICAgICAiRW5rZWkiLCAgICAgICAgICAgICAgICAgICAgICAgIC8vIDEzMDgKKyAgICAgICAgICAgICJcdTAxNENjaFx1MDE0RCIsICAgICAgICAgICAgICAgLy8gMTMxMQorICAgICAgICAgICAgIlNoXHUwMTREd2EiLCAgICAgICAgICAgICAgICAgICAvLyAxMzEyCisgICAgICAgICAgICAiQnVucFx1MDE0RCIsICAgICAgICAgICAgICAgICAgIC8vIDEzMTcKKyAgICAgICAgICAgICJHZW5cdTAxNEQiLCAgICAgICAgICAgICAgICAgICAgLy8gMTMxOQorICAgICAgICAgICAgIkdlbmt5XHUwMTREIiwgICAgICAgICAgICAgICAgICAvLyAxMzIxCisgICAgICAgICAgICAiU2hcdTAxNERjaFx1MDE2QiIsICAgICAgICAgICAgIC8vIDEzMjQKKyAgICAgICAgICAgICJLYXJla2kiLCAgICAgICAgICAgICAgICAgICAgICAgLy8gMTMyNgorICAgICAgICAgICAgIkdlbnRva3UiLCAgICAgICAgICAgICAgICAgICAgICAvLyAxMzI5CisgICAgICAgICAgICAiR2Vua1x1MDE0RCIsICAgICAgICAgICAgICAgICAgIC8vIDEzMzEKKyAgICAgICAgICAgICJLZW1tdSIsICAgICAgICAgICAgICAgICAgICAgICAgLy8gMTMzNAorICAgICAgICAgICAgIkVuZ2VuIiwgICAgICAgICAgICAgICAgICAgICAgICAvLyAxMzM2CisgICAgICAgICAgICAiS1x1MDE0RGtva3UiLCAgICAgICAgICAgICAgICAgIC8vIDEzNDAKKyAgICAgICAgICAgICJTaFx1MDE0RGhlaSIsICAgICAgICAgICAgICAgICAgLy8gMTM0NgorICAgICAgICAgICAgIktlbnRva3UiLCAgICAgICAgICAgICAgICAgICAgICAvLyAxMzcwCisgICAgICAgICAgICAiQnVuY2hcdTAxNjkiLCAgICAgICAgICAgICAgICAgIC8vIDEzNzIKKyAgICAgICAgICAgICJUZW5qdSIsICAgICAgICAgICAgICAgICAgICAgICAgLy8gMTM3NQorICAgICAgICAgICAgIktcdTAxNER3YSIsICAgICAgICAgICAgICAgICAgICAvLyAxMzgxCisgICAgICAgICAgICAiR2VuY2hcdTAxNjkiLCAgICAgICAgICAgICAgICAgIC8vIDEzODQKKyAgICAgICAgICAgICJNZWl0b2t1IiwgICAgICAgICAgICAgICAgICAgICAgLy8gMTM4NAorICAgICAgICAgICAgIktcdTAxNERyeWFrdSIsICAgICAgICAgICAgICAgICAvLyAxMzc5CisgICAgICAgICAgICAiS2FrZWkiLCAgICAgICAgICAgICAgICAgICAgICAgIC8vIDEzODcKKyAgICAgICAgICAgICJLXHUwMTREXHUwMTREIiwgICAgICAgICAgICAgICAgLy8gMTM4OQorICAgICAgICAgICAgIk1laXRva3UiLCAgICAgICAgICAgICAgICAgICAgICAvLyAxMzkwCisgICAgICAgICAgICAiXHUwMTRDZWkiLCAgICAgICAgICAgICAgICAgICAgIC8vIDEzOTQKKyAgICAgICAgICAgICJTaFx1MDE0RGNoXHUwMTREIiwgICAgICAgICAgICAgLy8gMTQyOAorICAgICAgICAgICAgIkVpa3lcdTAxNEQiLCAgICAgICAgICAgICAgICAgICAvLyAxNDI5CisgICAgICAgICAgICAiS2FraXRzdSIsICAgICAgICAgICAgICAgICAgICAgIC8vIDE0NDEKKyAgICAgICAgICAgICJCdW4tYW4iLCAgICAgICAgICAgICAgICAgICAgICAgLy8gMTQ0NAorICAgICAgICAgICAgIkhcdTAxNER0b2t1IiwgICAgICAgICAgICAgICAgICAvLyAxNDQ5CisgICAgICAgICAgICAiS3lcdTAxNER0b2t1IiwgICAgICAgICAgICAgICAgIC8vIDE0NTIKKyAgICAgICAgICAgICJLXHUwMTREc2hcdTAxNEQiLCAgICAgICAgICAgICAgLy8gMTQ1NQorICAgICAgICAgICAgIkNoXHUwMTREcm9rdSIsICAgICAgICAgICAgICAgICAvLyAxNDU3CisgICAgICAgICAgICAiS2Fuc2hcdTAxNEQiLCAgICAgICAgICAgICAgICAgIC8vIDE0NjAKKyAgICAgICAgICAgICJCdW5zaFx1MDE0RCIsICAgICAgICAgICAgICAgICAgLy8gMTQ2NgorICAgICAgICAgICAgIlx1MDE0Q25pbiIsICAgICAgICAgICAgICAgICAgICAvLyAxNDY3CisgICAgICAgICAgICAiQnVubWVpIiwgICAgICAgICAgICAgICAgICAgICAgIC8vIDE0NjkKKyAgICAgICAgICAgICJDaFx1MDE0RGt5XHUwMTREIiwgICAgICAgICAgICAgLy8gMTQ4NworICAgICAgICAgICAgIkVudG9rdSIsICAgICAgICAgICAgICAgICAgICAgICAvLyAxNDg5CisgICAgICAgICAgICAiTWVpXHUwMTREIiwgICAgICAgICAgICAgICAgICAgIC8vIDE0OTIKKyAgICAgICAgICAgICJCdW5raSIsICAgICAgICAgICAgICAgICAgICAgICAgLy8gMTUwMQorICAgICAgICAgICAgIkVpc2hcdTAxNEQiLCAgICAgICAgICAgICAgICAgICAvLyAxNTA0CisgICAgICAgICAgICAiVGFpZWkiLCAgICAgICAgICAgICAgICAgICAgICAgIC8vIDE1MjEKKyAgICAgICAgICAgICJLeVx1MDE0RHJva3UiLCAgICAgICAgICAgICAgICAgLy8gMTUyOAorICAgICAgICAgICAgIlRlbm1vbiIsICAgICAgICAgICAgICAgICAgICAgICAvLyAxNTMyCisgICAgICAgICAgICAiS1x1MDE0RGppIiwgICAgICAgICAgICAgICAgICAgIC8vIDE1NTUKKyAgICAgICAgICAgICJFaXJva3UiLCAgICAgICAgICAgICAgICAgICAgICAgLy8gMTU1OAorICAgICAgICAgICAgIkdlbmtpIiwgICAgICAgICAgICAgICAgICAgICAgICAvLyAxNTcwCisgICAgICAgICAgICAiVGVuc2hcdTAxNEQiLCAgICAgICAgICAgICAgICAgIC8vIDE1NzMKKyAgICAgICAgICAgICJCdW5yb2t1IiwgICAgICAgICAgICAgICAgICAgICAgLy8gMTU5MgorICAgICAgICAgICAgIktlaWNoXHUwMTREIiwgICAgICAgICAgICAgICAgICAvLyAxNTk2CisgICAgICAgICAgICAiR2Vud2EiLCAgICAgICAgICAgICAgICAgICAgICAgIC8vIDE2MTUKKyAgICAgICAgICAgICJLYW4tZWkiLCAgICAgICAgICAgICAgICAgICAgICAgLy8gMTYyNAorICAgICAgICAgICAgIlNoXHUwMTREaG8iLCAgICAgICAgICAgICAgICAgICAvLyAxNjQ0CisgICAgICAgICAgICAiS2VpYW4iLCAgICAgICAgICAgICAgICAgICAgICAgIC8vIDE2NDgKKyAgICAgICAgICAgICJTaFx1MDE0RFx1MDE0RCIsICAgICAgICAgICAgICAgLy8gMTY1MgorICAgICAgICAgICAgIk1laXJ5YWt1IiwgICAgICAgICAgICAgICAgICAgICAvLyAxNjU1CisgICAgICAgICAgICAiTWFuamkiLCAgICAgICAgICAgICAgICAgICAgICAgIC8vIDE2NTgKKyAgICAgICAgICAgICJLYW5idW4iLCAgICAgICAgICAgICAgICAgICAgICAgLy8gMTY2MQorICAgICAgICAgICAgIkVucFx1MDE0RCIsICAgICAgICAgICAgICAgICAgICAvLyAxNjczCisgICAgICAgICAgICAiVGVud2EiLCAgICAgICAgICAgICAgICAgICAgICAgIC8vIDE2ODEKKyAgICAgICAgICAgICJKXHUwMTREa3lcdTAxNEQiLCAgICAgICAgICAgICAgLy8gMTY4NAorICAgICAgICAgICAgIkdlbnJva3UiLCAgICAgICAgICAgICAgICAgICAgICAvLyAxNjg4CisgICAgICAgICAgICAiSFx1MDE0RGVpIiwgICAgICAgICAgICAgICAgICAgIC8vIDE3MDQKKyAgICAgICAgICAgICJTaFx1MDE0RHRva3UiLCAgICAgICAgICAgICAgICAgLy8gMTcxMQorICAgICAgICAgICAgIkt5XHUwMTREaFx1MDE0RCIsICAgICAgICAgICAgICAvLyAxNzE2CisgICAgICAgICAgICAiR2VuYnVuIiwgICAgICAgICAgICAgICAgICAgICAgIC8vIDE3MzYKKyAgICAgICAgICAgICJLYW5wXHUwMTREIiwgICAgICAgICAgICAgICAgICAgLy8gMTc0MQorICAgICAgICAgICAgIkVua3lcdTAxNEQiLCAgICAgICAgICAgICAgICAgICAvLyAxNzQ0CisgICAgICAgICAgICAiS2FuLWVuIiwgICAgICAgICAgICAgICAgICAgICAgIC8vIDE3NDgKKyAgICAgICAgICAgICJIXHUwMTREcnlha3UiLCAgICAgICAgICAgICAgICAgLy8gMTc1MQorICAgICAgICAgICAgIk1laXdhIiwgICAgICAgICAgICAgICAgICAgICAgICAvLyAxNzY0CisgICAgICAgICAgICAiQW4tZWkiLCAgICAgICAgICAgICAgICAgICAgICAgIC8vIDE3NzIKKyAgICAgICAgICAgICJUZW5tZWkiLCAgICAgICAgICAgICAgICAgICAgICAgLy8gMTc4MQorICAgICAgICAgICAgIkthbnNlaSIsICAgICAgICAgICAgICAgICAgICAgICAvLyAxNzg5CisgICAgICAgICAgICAiS3lcdTAxNER3YSIsICAgICAgICAgICAgICAgICAgIC8vIDE4MDEKKyAgICAgICAgICAgICJCdW5rYSIsICAgICAgICAgICAgICAgICAgICAgICAgLy8gMTgwNAorICAgICAgICAgICAgIkJ1bnNlaSIsICAgICAgICAgICAgICAgICAgICAgICAvLyAxODE4CisgICAgICAgICAgICAiVGVucFx1MDE0RCIsICAgICAgICAgICAgICAgICAgIC8vIDE4MzAKKyAgICAgICAgICAgICJLXHUwMTREa2EiLCAgICAgICAgICAgICAgICAgICAgLy8gMTg0NAorICAgICAgICAgICAgIkthZWkiLCAgICAgICAgICAgICAgICAgICAgICAgICAvLyAxODQ4CisgICAgICAgICAgICAiQW5zZWkiLCAgICAgICAgICAgICAgICAgICAgICAgIC8vIDE4NTQKKyAgICAgICAgICAgICJNYW4tZW4iLCAgICAgICAgICAgICAgICAgICAgICAgLy8gMTg2MAorICAgICAgICAgICAgIkJ1bmt5XHUwMTZCIiwgICAgICAgICAgICAgICAgICAvLyAxODYxCisgICAgICAgICAgICAiR2VuamkiLCAgICAgICAgICAgICAgICAgICAgICAgIC8vIDE4NjQKKyAgICAgICAgICAgICJLZWlcdTAxNEQiLCAgICAgICAgICAgICAgICAgICAgLy8gMTg2NQorICAgICAgICAgICAgIk1laWppIiwgICAgICAgICAgICAgICAgICAgICAgICAvLyAxODY4CisgICAgICAgICAgICAiVGFpc2hcdTAxNEQiLCAgICAgICAgICAgICAgICAgIC8vIDE5MTIKKyAgICAgICAgICAgICJTaFx1MDE0RHdhIiwgICAgICAgICAgICAgICAgICAgLy8gMTkyNgorICAgICAgICAgICAgIkhlaXNlaSIsICAgICAgICAgICAgICAgICAgICAgICAvLyAxOTg5CisgICAgICAgIH0gfSwKKyAgICB9OworCisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgICAgICByZXR1cm4gZkNvbnRlbnRzOworICAgIH0KK307CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0phcGFuZXNlQ2FsZW5kYXJTeW1ib2xzX2phLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0phcGFuZXNlQ2FsZW5kYXJTeW1ib2xzX2phLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTE5NjgyOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSmFwYW5lc2VDYWxlbmRhclN5bWJvbHNfamEuamF2YQpAQCAtMCwwICsxLDI4MSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9BdHRpYy9KYXBhbmVzZUNhbGVuZGFyU3ltYm9sc19qYS5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA1OjUwICQgCisgKiAkUmV2aXNpb246IDEuNCAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworLyoqCisgKiBKYXBhbmVzZSBLYW5qaSB2ZXJzaW9uIG9mIHRoZSBEYXRlIEZvcm1hdCBzeW1ib2xzIGZvciB0aGUgSmFwYW5lc2UgY2FsZW5kYXIKKyAqLworcHVibGljIGNsYXNzIEphcGFuZXNlQ2FsZW5kYXJTeW1ib2xzX2phIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBjb3B5cmlnaHQgPSAiQ29weXJpZ2h0IFx1MDBhOSAxOTk4IElCTSBDb3JwLiBBbGwgUmlnaHRzIFJlc2VydmVkLiI7CisKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0W11bXSBmQ29udGVudHMgPSB7CisgICAgICAgIHsgIkRhdGVUaW1lUGF0dGVybnMiLAorICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICAgICAiSCdcdTY2NDInbW0nXHU1MjA2J3NzJ1x1NzlkMid6IiwgLy8gZnVsbCB0aW1lIHBhdHRlcm4KKyAgICAgICAgICAgICAgICAiSDptbTpzczp6IiwgLy8gbG9uZyB0aW1lIHBhdHRlcm4KKyAgICAgICAgICAgICAgICAiSDptbTpzcyIsIC8vIG1lZGl1bSB0aW1lIHBhdHRlcm4KKyAgICAgICAgICAgICAgICAiSDptbSIsIC8vIHNob3J0IHRpbWUgcGF0dGVybgorICAgICAgICAgICAgICAgICJHIHl5J1x1NWU3NCdNJ1x1NjcwOCdkJ1x1NjVlNSciLCAvLyBmdWxsIGRhdGUgcGF0dGVybgorICAgICAgICAgICAgICAgICJHIHl5L01NL2RkIiwgLy8gbG9uZyBkYXRlIHBhdHRlcm4KKyAgICAgICAgICAgICAgICAiRyB5eS9NTS9kZCIsIC8vIG1lZGl1bSBkYXRlIHBhdHRlcm4KKyAgICAgICAgICAgICAgICAiRyB5eS9NTS9kZCIsIC8vIHNob3J0IGRhdGUgcGF0dGVybgorICAgICAgICAgICAgICAgICJ7MX0gezB9IiAvLyBkYXRlLXRpbWUgcGF0dGVybgorICAgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICB7ICJFcmFzIiwgbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICJcdTU5MjdcdTUzMTYiLCAgICAgICAgICAgICAvLyAgNjQ1IFRhaWthCisgICAgICAgICAgICAiXHU3NjdEXHU5NkM5IiwgICAgICAgICAgICAgLy8gIDY1MCBIYWt1Y2hpCisgICAgICAgICAgICAiXHU3NjdEXHU5Q0VGIiwgICAgICAgICAgICAgLy8gIDY3MiBIYWt1aG8KKyAgICAgICAgICAgICJcdTY3MzFcdTlDRTUiLCAgICAgICAgICAgICAvLyAgNjg2IFNodWNobworICAgICAgICAgICAgIlx1NTkyN1x1NUI5RCIsICAgICAgICAgICAgIC8vICA3MDEgVGFpaG8KKyAgICAgICAgICAgICJcdTYxNzZcdTk2RjIiLCAgICAgICAgICAgICAvLyAgNzA0IEtlaXVuCisgICAgICAgICAgICAiXHU1NDhDXHU5Mjg1IiwgICAgICAgICAgICAgLy8gIDcwOCBXYWRvCisgICAgICAgICAgICAiXHU5NzBBXHU0RTgwIiwgICAgICAgICAgICAgLy8gIDcxNSBSZWlraQorICAgICAgICAgICAgIlx1OTkwQVx1ODAwMSIsICAgICAgICAgICAgIC8vICA3MTcgWW9ybworICAgICAgICAgICAgIlx1Nzk1RVx1NEU4MCIsICAgICAgICAgICAgIC8vICA3MjQgSmlua2kKKyAgICAgICAgICAgICJcdTU5MjlcdTVFNzMiLCAgICAgICAgICAgICAvLyAgNzI5IFRlbXB5bworICAgICAgICAgICAgIlx1NTkyOVx1NUU3M1x1NjExRlx1NUI5RCIsIC8vICA3NDkgVGVtcHlvLWthbXBvCisgICAgICAgICAgICAiXHU1OTI5XHU1RTczXHU1MkREXHU1QjlEIiwgLy8gIDc0OSBUZW1weW8tc2hvaG8KKyAgICAgICAgICAgICJcdTU5MjlcdTVFNzNcdTVCOURcdTVCNTciLCAvLyAgNzU3IFRlbXB5by1ob2ppCisgICAgICAgICAgICAiXHU1OTI5XHU1RTczXHU3OTVFXHU4Qjc3IiwgLy8gIDc2NSBUZW1waG8tamluZ28KKyAgICAgICAgICAgICJcdTc5NUVcdThCNzdcdTY2NkZcdTk2RjIiLCAvLyAgNzY3IEppbmdvLWtlaXVuCisgICAgICAgICAgICAiXHU1QjlEXHU0RTgwIiwgICAgICAgICAgICAgLy8gIDc3MCBIb2tpCisgICAgICAgICAgICAiXHU1OTI5XHU1RkRDIiwgICAgICAgICAgICAgLy8gIDc4MSBUZW4tbworICAgICAgICAgICAgIlx1NUVGNlx1NjZBNiIsICAgICAgICAgICAgIC8vICA3ODIgRW5yeWFrdQorICAgICAgICAgICAgIlx1NTkyN1x1NTQwQyIsICAgICAgICAgICAgIC8vICA4MDYgRGFpZG8KKyAgICAgICAgICAgICJcdTVGMThcdTRFQzEiLCAgICAgICAgICAgICAvLyAgODEwIEtvbmluCisgICAgICAgICAgICAiXHU1OTI5XHU5NTc3IiwgICAgICAgICAgICAgLy8gIDgyNCBUZW5jaG8KKyAgICAgICAgICAgICJcdTYyN0ZcdTU0OEMiLCAgICAgICAgICAgICAvLyAgODM0IFNob3dhCisgICAgICAgICAgICAiXHU1NjA5XHU3OTY1IiwgICAgICAgICAgICAgLy8gIDg0OCBLYWpvCisgICAgICAgICAgICAiXHU0RUMxXHU1QkZGIiwgICAgICAgICAgICAgLy8gIDg1MSBOaW5qdQorICAgICAgICAgICAgIlx1NjU4OVx1ODg2MSIsICAgICAgICAgICAgIC8vICA4NTQgU2Fpa28KKyAgICAgICAgICAgICJcdTU5MjlcdTVCODkiLCAgICAgICAgICAgICAvLyAgODU3IFRlbm5hbgorICAgICAgICAgICAgIlx1OEM5RVx1ODlCMyIsICAgICAgICAgICAgIC8vICA4NTkgSm9nYW4KKyAgICAgICAgICAgICJcdTUxNDNcdTYxNzYiLCAgICAgICAgICAgICAvLyAgODc3IEdlbmtlaQorICAgICAgICAgICAgIlx1NEVDMVx1NTQ4QyIsICAgICAgICAgICAgIC8vICA4ODUgTmlubmEKKyAgICAgICAgICAgICJcdTVCREJcdTVFNzMiLCAgICAgICAgICAgICAvLyAgODg5IEthbXB5bworICAgICAgICAgICAgIlx1NjYwQ1x1NkNGMCIsICAgICAgICAgICAgIC8vICA4OTggU2hvdGFpCisgICAgICAgICAgICAiXHU1RUY2XHU1NTlDIiwgICAgICAgICAgICAgLy8gIDkwMSBFbmdpCisgICAgICAgICAgICAiXHU1RUY2XHU5NTc3IiwgICAgICAgICAgICAgLy8gIDkyMyBFbmNobworICAgICAgICAgICAgIlx1NjI3Rlx1NUU3MyIsICAgICAgICAgICAgIC8vICA5MzEgU2hvaGVpCisgICAgICAgICAgICAiXHU1OTI5XHU2MTc2IiwgICAgICAgICAgICAgLy8gIDkzOCBUZW5neW8KKyAgICAgICAgICAgICJcdTU5MjlcdTY2QTYiLCAgICAgICAgICAgICAvLyAgOTQ3IFRlbnJ5YWt1CisgICAgICAgICAgICAiXHU1OTI5XHU1RkIzIiwgICAgICAgICAgICAgLy8gIDk1NyBUZW50b2t1CisgICAgICAgICAgICAiXHU1RkRDXHU1NDhDIiwgICAgICAgICAgICAgLy8gIDk2MSBPd2EKKyAgICAgICAgICAgICJcdTVFQjdcdTRGREQiLCAgICAgICAgICAgICAvLyAgOTY0IEtvaG8KKyAgICAgICAgICAgICJcdTVCODlcdTU0OEMiLCAgICAgICAgICAgICAvLyAgOTY4IEFubmEKKyAgICAgICAgICAgICJcdTU5MjlcdTc5ODQiLCAgICAgICAgICAgICAvLyAgOTcwIFRlbnJva3UKKyAgICAgICAgICAgICJcdTU5MjlcdTVFRjYiLCAgICAgICAgICAgICAvLyAgOTczIFRlbi1lbgorICAgICAgICAgICAgIlx1OEM5RVx1NTE0MyIsICAgICAgICAgICAgIC8vICA5NzYgSm9nZW4KKyAgICAgICAgICAgICJcdTU5MjlcdTUxNDMiLCAgICAgICAgICAgICAvLyAgOTc4IFRlbmdlbgorICAgICAgICAgICAgIlx1NkMzOFx1ODlCMyIsICAgICAgICAgICAgIC8vICA5ODMgRWlrYW4KKyAgICAgICAgICAgICJcdTVCREJcdTU0OEMiLCAgICAgICAgICAgICAvLyAgOTg1IEthbm5hCisgICAgICAgICAgICAiXHU2QzM4XHU1RUY2IiwgICAgICAgICAgICAgLy8gIDk4NyBFaS1lbgorICAgICAgICAgICAgIlx1NkMzOFx1Nzk1QSIsICAgICAgICAgICAgIC8vICA5ODkgRWlzbworICAgICAgICAgICAgIlx1NkI2M1x1NjZBNiIsICAgICAgICAgICAgIC8vICA5OTAgU2hvcnlha3UKKyAgICAgICAgICAgICJcdTk1NzdcdTVGQjMiLCAgICAgICAgICAgICAvLyAgOTk1IENob3Rva3UKKyAgICAgICAgICAgICJcdTk1NzdcdTRGREQiLCAgICAgICAgICAgICAvLyAgOTk5IENob2hvCisgICAgICAgICAgICAiXHU1QkRCXHU1RjE4IiwgICAgICAgICAgICAgLy8gMTAwNCBLYW5rbworICAgICAgICAgICAgIlx1OTU3N1x1NTQ4QyIsICAgICAgICAgICAgIC8vIDEwMTIgQ2hvd2EKKyAgICAgICAgICAgICJcdTVCREJcdTRFQzEiLCAgICAgICAgICAgICAvLyAxMDE3IEthbm5pbgorICAgICAgICAgICAgIlx1NkNCQlx1NUI4OSIsICAgICAgICAgICAgIC8vIDEwMjEgSmlhbgorICAgICAgICAgICAgIlx1NEUwN1x1NUJGRiIsICAgICAgICAgICAgIC8vIDEwMjQgTWFuanUKKyAgICAgICAgICAgICJcdTk1NzdcdTUxNDMiLCAgICAgICAgICAgICAvLyAxMDI4IENob2dlbgorICAgICAgICAgICAgIlx1OTU3N1x1NjZBNiIsICAgICAgICAgICAgIC8vIDEwMzcgQ2hvcnlha3UKKyAgICAgICAgICAgICJcdTk1NzdcdTRFNDUiLCAgICAgICAgICAgICAvLyAxMDQwIENob2t5dQorICAgICAgICAgICAgIlx1NUJEQlx1NUZCMyIsICAgICAgICAgICAgIC8vIDEwNDQgS2FudG9rdQorICAgICAgICAgICAgIlx1NkMzOFx1NjI3RiIsICAgICAgICAgICAgIC8vIDEwNDYgRWlzaG8KKyAgICAgICAgICAgICJcdTU5MjlcdTU1OUMiLCAgICAgICAgICAgICAvLyAxMDUzIFRlbmdpCisgICAgICAgICAgICAiXHU1RUI3XHU1RTczIiwgICAgICAgICAgICAgLy8gMTA1OCBLb2hlaQorICAgICAgICAgICAgIlx1NkNCQlx1NjZBNiIsICAgICAgICAgICAgIC8vIDEwNjUgSmlyeWFrdQorICAgICAgICAgICAgIlx1NUVGNlx1NEU0NSIsICAgICAgICAgICAgIC8vIDEwNjkgRW5reXUKKyAgICAgICAgICAgICJcdTYyN0ZcdTRGREQiLCAgICAgICAgICAgICAvLyAxMDc0IFNob2hvCisgICAgICAgICAgICAiXHU2MjdGXHU2NkE2IiwgICAgICAgICAgICAgLy8gMTA3NyBTaG9yeWFrdQorICAgICAgICAgICAgIlx1NkMzOFx1NEZERCIsICAgICAgICAgICAgIC8vIDEwODEgRWlobworICAgICAgICAgICAgIlx1NUZEQ1x1NUZCMyIsICAgICAgICAgICAgIC8vIDEwODQgT3Rva3UKKyAgICAgICAgICAgICJcdTVCREJcdTZDQkIiLCAgICAgICAgICAgICAvLyAxMDg3IEthbmppCisgICAgICAgICAgICAiXHU1NjA5XHU0RkREIiwgICAgICAgICAgICAgLy8gMTA5NCBLYWhvCisgICAgICAgICAgICAiXHU2QzM4XHU5NTc3IiwgICAgICAgICAgICAgLy8gMTA5NiBFaWNobworICAgICAgICAgICAgIlx1NjI3Rlx1NUZCMyIsICAgICAgICAgICAgIC8vIDEwOTcgU2hvdG9rdQorICAgICAgICAgICAgIlx1NUVCN1x1NTQ4QyIsICAgICAgICAgICAgIC8vIDEwOTkgS293YQorICAgICAgICAgICAgIlx1OTU3N1x1NkNCQiIsICAgICAgICAgICAgIC8vIDExMDQgQ2hvamkKKyAgICAgICAgICAgICJcdTU2MDlcdTYyN0YiLCAgICAgICAgICAgICAvLyAxMTA2IEthc2hvCisgICAgICAgICAgICAiXHU1OTI5XHU0RUMxIiwgICAgICAgICAgICAgLy8gMTEwOCBUZW5uaW4KKyAgICAgICAgICAgICJcdTU5MjlcdTZDMzgiLCAgICAgICAgICAgICAvLyAxMTEwIFRlbi1laQorICAgICAgICAgICAgIlx1NkMzOFx1NEU0NSIsICAgICAgICAgICAgIC8vIDExMTMgRWlreXUKKyAgICAgICAgICAgICJcdTUxNDNcdTZDMzgiLCAgICAgICAgICAgICAvLyAxMTE4IEdlbi1laQorICAgICAgICAgICAgIlx1NEZERFx1NUI4OSIsICAgICAgICAgICAgIC8vIDExMjAgSG9hbgorICAgICAgICAgICAgIlx1NTkyOVx1NkNCQiIsICAgICAgICAgICAgIC8vIDExMjQgVGVuamkKKyAgICAgICAgICAgICJcdTU5MjdcdTZDQkIiLCAgICAgICAgICAgICAvLyAxMTI2IERhaWppCisgICAgICAgICAgICAiXHU1OTI5XHU2MjdGIiwgICAgICAgICAgICAgLy8gMTEzMSBUZW5zaG8KKyAgICAgICAgICAgICJcdTk1NzdcdTYyN0YiLCAgICAgICAgICAgICAvLyAxMTMyIENob3NobworICAgICAgICAgICAgIlx1NEZERFx1NUVGNiIsICAgICAgICAgICAgIC8vIDExMzUgSG9lbgorICAgICAgICAgICAgIlx1NkMzOFx1NkNCQiIsICAgICAgICAgICAgIC8vIDExNDEgRWlqaQorICAgICAgICAgICAgIlx1NUVCN1x1NkNCQiIsICAgICAgICAgICAgIC8vIDExNDIgS29qaQorICAgICAgICAgICAgIlx1NTkyOVx1OTkwQSIsICAgICAgICAgICAgIC8vIDExNDQgVGVueW8KKyAgICAgICAgICAgICJcdTRFNDVcdTVCODkiLCAgICAgICAgICAgICAvLyAxMTQ1IEt5dWFuCisgICAgICAgICAgICAiXHU0RUMxXHU1RTczIiwgICAgICAgICAgICAgLy8gMTE1MSBOaW5wZWkKKyAgICAgICAgICAgICJcdTRFNDVcdTVCRkYiLCAgICAgICAgICAgICAvLyAxMTU0IEt5dWp1CisgICAgICAgICAgICAiXHU0RkREXHU1MTQzIiwgICAgICAgICAgICAgLy8gMTE1NiBIb2dlbgorICAgICAgICAgICAgIlx1NUU3M1x1NkNCQiIsICAgICAgICAgICAgIC8vIDExNTkgSGVpamkKKyAgICAgICAgICAgICJcdTZDMzhcdTY2QTYiLCAgICAgICAgICAgICAvLyAxMTYwIEVpcnlha3UKKyAgICAgICAgICAgICJcdTVGRENcdTRGREQiLCAgICAgICAgICAgICAvLyAxMTYxIE9obworICAgICAgICAgICAgIlx1OTU3N1x1NUJEQiIsICAgICAgICAgICAgIC8vIDExNjMgQ2hva2FuCisgICAgICAgICAgICAiXHU2QzM4XHU0RTA3IiwgICAgICAgICAgICAgLy8gMTE2NSBFaW1hbgorICAgICAgICAgICAgIlx1NEVDMVx1NUI4OSIsICAgICAgICAgICAgIC8vIDExNjYgTmluLWFuCisgICAgICAgICAgICAiXHU1NjA5XHU1RkRDIiwgICAgICAgICAgICAgLy8gMTE2OSBLYW8KKyAgICAgICAgICAgICJcdTYyN0ZcdTVCODkiLCAgICAgICAgICAgICAvLyAxMTcxIFNob2FuCisgICAgICAgICAgICAiXHU1Qjg5XHU1MTQzIiwgICAgICAgICAgICAgLy8gMTE3NSBBbmdlbgorICAgICAgICAgICAgIlx1NkNCQlx1NjI3RiIsICAgICAgICAgICAgIC8vIDExNzcgSmlzaG8KKyAgICAgICAgICAgICJcdTk5MEFcdTU0OEMiLCAgICAgICAgICAgICAvLyAxMTgxIFlvd2EKKyAgICAgICAgICAgICJcdTVCRkZcdTZDMzgiLCAgICAgICAgICAgICAvLyAxMTgyIEp1ZWkKKyAgICAgICAgICAgICJcdTUxNDNcdTY2QTYiLCAgICAgICAgICAgICAvLyAxMTg0IEdlbnJ5dWt1CisgICAgICAgICAgICAiXHU2NTg3XHU2Q0JCIiwgICAgICAgICAgICAgLy8gMTE4NSBCdW5qaQorICAgICAgICAgICAgIlx1NUVGQVx1NEU0NSIsICAgICAgICAgICAgIC8vIDExOTAgS2Vua3l1CisgICAgICAgICAgICAiXHU2QjYzXHU2Q0JCIiwgICAgICAgICAgICAgLy8gMTE5OSBTaG9qaQorICAgICAgICAgICAgIlx1NUVGQVx1NEVDMSIsICAgICAgICAgICAgIC8vIDEyMDEgS2VubmluCisgICAgICAgICAgICAiXHU1MTQzXHU0RTQ1IiwgICAgICAgICAgICAgLy8gMTIwNCBHZW5reXUKKyAgICAgICAgICAgICJcdTVFRkFcdTZDMzgiLCAgICAgICAgICAgICAvLyAxMjA2IEtlbi1laQorICAgICAgICAgICAgIlx1NjI3Rlx1NTE0MyIsICAgICAgICAgICAgIC8vIDEyMDcgU2hvZ2VuCisgICAgICAgICAgICAiXHU1RUZBXHU2NkE2IiwgICAgICAgICAgICAgLy8gMTIxMSBLZW5yeWFrdQorICAgICAgICAgICAgIlx1NUVGQVx1NEZERCIsICAgICAgICAgICAgIC8vIDEyMTMgS2VucG8KKyAgICAgICAgICAgICJcdTYyN0ZcdTRFNDUiLCAgICAgICAgICAgICAvLyAxMjE5IFNob2t5dQorICAgICAgICAgICAgIlx1OEM5RVx1NUZEQyIsICAgICAgICAgICAgIC8vIDEyMjIgSm9vCisgICAgICAgICAgICAiXHU1MTQzXHU0RUMxIiwgICAgICAgICAgICAgLy8gMTIyNCBHZW5uaW4KKyAgICAgICAgICAgICJcdTU2MDlcdTc5ODQiLCAgICAgICAgICAgICAvLyAxMjI1IEthcm9rdQorICAgICAgICAgICAgIlx1NUI4OVx1OEM5RSIsICAgICAgICAgICAgIC8vIDEyMjcgQW50ZWkKKyAgICAgICAgICAgICJcdTVCREJcdTU1OUMiLCAgICAgICAgICAgICAvLyAxMjI5IEthbmtpCisgICAgICAgICAgICAiXHU4QzlFXHU2QzM4IiwgICAgICAgICAgICAgLy8gMTIzMiBKb2VpCisgICAgICAgICAgICAiXHU1OTI5XHU3OThGIiwgICAgICAgICAgICAgLy8gMTIzMyBUZW1wdWt1CisgICAgICAgICAgICAiXHU2NTg3XHU2NkE2IiwgICAgICAgICAgICAgLy8gMTIzNCBCdW5yeWFrdQorICAgICAgICAgICAgIlx1NTYwOVx1Nzk4RSIsICAgICAgICAgICAgIC8vIDEyMzUgS2F0ZWkKKyAgICAgICAgICAgICJcdTY2QTZcdTRFQzEiLCAgICAgICAgICAgICAvLyAxMjM4IFJ5YWt1bmluCisgICAgICAgICAgICAiXHU1RUY2XHU1RkRDIiwgICAgICAgICAgICAgLy8gMTIzOSBFbi1vCisgICAgICAgICAgICAiXHU0RUMxXHU2Q0JCIiwgICAgICAgICAgICAgLy8gMTI0MCBOaW5qaQorICAgICAgICAgICAgIlx1NUJEQlx1NTE0MyIsICAgICAgICAgICAgIC8vIDEyNDMgS2FuZ2VuCisgICAgICAgICAgICAiXHU1QjlEXHU2Q0JCIiwgICAgICAgICAgICAgLy8gMTI0NyBIb2ppCisgICAgICAgICAgICAiXHU1RUZBXHU5NTc3IiwgICAgICAgICAgICAgLy8gMTI0OSBLZW5jaG8KKyAgICAgICAgICAgICJcdTVFQjdcdTUxNDMiLCAgICAgICAgICAgICAvLyAxMjU2IEtvZ2VuCisgICAgICAgICAgICAiXHU2QjYzXHU1NjA5IiwgICAgICAgICAgICAgLy8gMTI1NyBTaG9rYQorICAgICAgICAgICAgIlx1NkI2M1x1NTE0MyIsICAgICAgICAgICAgIC8vIDEyNTkgU2hvZ2VuCisgICAgICAgICAgICAiXHU2NTg3XHU1RkRDIiwgICAgICAgICAgICAgLy8gMTI2MCBCdW4tbworICAgICAgICAgICAgIlx1NUYxOFx1OTU3NyIsICAgICAgICAgICAgIC8vIDEyNjEgS29jaG8KKyAgICAgICAgICAgICJcdTY1ODdcdTZDMzgiLCAgICAgICAgICAgICAvLyAxMjY0IEJ1bi1laQorICAgICAgICAgICAgIlx1NUVGQVx1NkNCQiIsICAgICAgICAgICAgIC8vIDEyNzUgS2VuamkKKyAgICAgICAgICAgICJcdTVGMThcdTVCODkiLCAgICAgICAgICAgICAvLyAxMjc4IEtvYW4KKyAgICAgICAgICAgICJcdTZCNjNcdTVGREMiLCAgICAgICAgICAgICAvLyAxMjg4IFNob28KKyAgICAgICAgICAgICJcdTZDMzhcdTRFQzEiLCAgICAgICAgICAgICAvLyAxMjkzIEVpbmluCisgICAgICAgICAgICAiXHU2QjYzXHU1Qjg5IiwgICAgICAgICAgICAgLy8gMTI5OSBTaG9hbgorICAgICAgICAgICAgIlx1NEU3RVx1NTE0MyIsICAgICAgICAgICAgIC8vIDEzMDIgS2VuZ2VuCisgICAgICAgICAgICAiXHU1NjA5XHU1MTQzIiwgICAgICAgICAgICAgLy8gMTMwMyBLYWdlbgorICAgICAgICAgICAgIlx1NUZCM1x1NkNCQiIsICAgICAgICAgICAgIC8vIDEzMDYgVG9rdWppCisgICAgICAgICAgICAiXHU1RUY2XHU2MTc2IiwgICAgICAgICAgICAgLy8gMTMwOCBFbmtlaQorICAgICAgICAgICAgIlx1NUZEQ1x1OTU3NyIsICAgICAgICAgICAgIC8vIDEzMTEgT2NobworICAgICAgICAgICAgIlx1NkI2M1x1NTQ4QyIsICAgICAgICAgICAgIC8vIDEzMTIgU2hvd2EKKyAgICAgICAgICAgICJcdTY1ODdcdTRGREQiLCAgICAgICAgICAgICAvLyAxMzE3IEJ1bnBvCisgICAgICAgICAgICAiXHU1MTQzXHU1RkRDIiwgICAgICAgICAgICAgLy8gMTMxOSBHZW5vCisgICAgICAgICAgICAiXHU1MTQzXHU0RUE4IiwgICAgICAgICAgICAgLy8gMTMyMSBHZW5reW8KKyAgICAgICAgICAgICJcdTZCNjNcdTRFMkQiLCAgICAgICAgICAgICAvLyAxMzI0IFNob2NodQorICAgICAgICAgICAgIlx1NTYwOVx1NjZBNiIsICAgICAgICAgICAgIC8vIDEzMjYgS2FyZWtpCisgICAgICAgICAgICAiXHU1MTQzXHU1RkIzIiwgICAgICAgICAgICAgLy8gMTMyOSBHZW50b2t1CisgICAgICAgICAgICAiXHU1MTQzXHU1RjE4IiwgICAgICAgICAgICAgLy8gMTMzMSBHZW5rbworICAgICAgICAgICAgIlx1NUVGQVx1NkI2NiIsICAgICAgICAgICAgIC8vIDEzMzQgS2VtbXUKKyAgICAgICAgICAgICJcdTVFRjZcdTUxNDMiLCAgICAgICAgICAgICAvLyAxMzM2IEVuZ2VuCisgICAgICAgICAgICAiXHU4MjA4XHU1NkZEIiwgICAgICAgICAgICAgLy8gMTM0MCBLb2tva3UKKyAgICAgICAgICAgICJcdTZCNjNcdTVFNzMiLCAgICAgICAgICAgICAvLyAxMzQ2IFNob2hlaQorICAgICAgICAgICAgIlx1NUVGQVx1NUZCMyIsICAgICAgICAgICAgIC8vIDEzNzAgS2VudG9rdQorICAgICAgICAgICAgIlx1NjU4N1x1NEUyRCIsICAgICAgICAgICAgIC8vIDEzNzIgQnVuY2h1CisgICAgICAgICAgICAiXHU1OTI5XHU2Mzg4IiwgICAgICAgICAgICAgLy8gMTM3NSBUZW5qdQorICAgICAgICAgICAgIlx1NUYxOFx1NTQ4QyIsICAgICAgICAgICAgIC8vIDEzODEgS293YQorICAgICAgICAgICAgIlx1NTE0M1x1NEUyRCIsICAgICAgICAgICAgIC8vIDEzODQgR2VuY2h1CisgICAgICAgICAgICAiXHU4MUYzXHU1RkIzIiwgICAgICAgICAgICAgLy8gMTM4NCBNZWl0b2t1CisgICAgICAgICAgICAiXHU1RUI3XHU2NkE2IiwgICAgICAgICAgICAgLy8gMTM3OSBLb3J5YWt1CisgICAgICAgICAgICAiXHU1NjA5XHU2MTc2IiwgICAgICAgICAgICAgLy8gMTM4NyBLYWtlaQorICAgICAgICAgICAgIlx1NUVCN1x1NUZEQyIsICAgICAgICAgICAgIC8vIDEzODkgS29vCisgICAgICAgICAgICAiXHU2NjBFXHU1RkIzIiwgICAgICAgICAgICAgLy8gMTM5MCBNZWl0b2t1CisgICAgICAgICAgICAiXHU1RkRDXHU2QzM4IiwgICAgICAgICAgICAgLy8gMTM5NCBPZWkKKyAgICAgICAgICAgICJcdTZCNjNcdTk1NzciLCAgICAgICAgICAgICAvLyAxNDI4IFNob2NobworICAgICAgICAgICAgIlx1NkMzOFx1NEVBQiIsICAgICAgICAgICAgIC8vIDE0MjkgRWlreW8KKyAgICAgICAgICAgICJcdTU2MDlcdTU0MDkiLCAgICAgICAgICAgICAvLyAxNDQxIEtha2l0c3UKKyAgICAgICAgICAgICJcdTY1ODdcdTVCODkiLCAgICAgICAgICAgICAvLyAxNDQ0IEJ1bi1hbgorICAgICAgICAgICAgIlx1NUI5RFx1NUZCMyIsICAgICAgICAgICAgIC8vIDE0NDkgSG90b2t1CisgICAgICAgICAgICAiXHU0RUFCXHU1RkIzIiwgICAgICAgICAgICAgLy8gMTQ1MiBLeW90b2t1CisgICAgICAgICAgICAiXHU1RUI3XHU2QjYzIiwgICAgICAgICAgICAgLy8gMTQ1NSBLb3NobworICAgICAgICAgICAgIlx1OTU3N1x1Nzk4NCIsICAgICAgICAgICAgIC8vIDE0NTcgQ2hvcm9rdQorICAgICAgICAgICAgIlx1NUJEQlx1NkI2MyIsICAgICAgICAgICAgIC8vIDE0NjAgS2Fuc2hvCisgICAgICAgICAgICAiXHU2NTg3XHU2QjYzIiwgICAgICAgICAgICAgLy8gMTQ2NiBCdW5zaG8KKyAgICAgICAgICAgICJcdTVGRENcdTRFQzEiLCAgICAgICAgICAgICAvLyAxNDY3IE9uaW4KKyAgICAgICAgICAgICJcdTY1ODdcdTY2MEUiLCAgICAgICAgICAgICAvLyAxNDY5IEJ1bm1laQorICAgICAgICAgICAgIlx1OTU3N1x1NEVBQiIsICAgICAgICAgICAgIC8vIDE0ODcgQ2hva3lvCisgICAgICAgICAgICAiXHU1RUY2XHU1RkIzIiwgICAgICAgICAgICAgLy8gMTQ4OSBFbnRva3UKKyAgICAgICAgICAgICJcdTY2MEVcdTVGREMiLCAgICAgICAgICAgICAvLyAxNDkyIE1laW8KKyAgICAgICAgICAgICJcdTY1ODdcdTRFODAiLCAgICAgICAgICAgICAvLyAxNTAxIEJ1bmtpCisgICAgICAgICAgICAiXHU2QzM4XHU2QjYzIiwgICAgICAgICAgICAgLy8gMTUwNCBFaXNobworICAgICAgICAgICAgIlx1NTkyN1x1NkMzOCIsICAgICAgICAgICAgIC8vIDE1MjEgVGFpZWkKKyAgICAgICAgICAgICJcdTRFQUJcdTc5ODQiLCAgICAgICAgICAgICAvLyAxNTI4IEt5b3Jva3UKKyAgICAgICAgICAgICJcdTU5MjlcdTY1ODciLCAgICAgICAgICAgICAvLyAxNTMyIFRlbm1vbgorICAgICAgICAgICAgIlx1NUYxOFx1NkNCQiIsICAgICAgICAgICAgIC8vIDE1NTUgS29qaQorICAgICAgICAgICAgIlx1NkMzOFx1Nzk4NCIsICAgICAgICAgICAgIC8vIDE1NTggRWlyb2t1CisgICAgICAgICAgICAiXHU1MTQzXHU0RTgwIiwgICAgICAgICAgICAgLy8gMTU3MCBHZW5raQorICAgICAgICAgICAgIlx1NTkyOVx1NkI2MyIsICAgICAgICAgICAgIC8vIDE1NzMgVGVuc2hvCisgICAgICAgICAgICAiXHU2NTg3XHU3OTg0IiwgICAgICAgICAgICAgLy8gMTU5MiBCdW5yb2t1CisgICAgICAgICAgICAiXHU2MTc2XHU5NTc3IiwgICAgICAgICAgICAgLy8gMTU5NiBLZWljaG8KKyAgICAgICAgICAgICJcdTUxNDNcdTU0OEMiLCAgICAgICAgICAgICAvLyAxNjE1IEdlbndhCisgICAgICAgICAgICAiXHU1QkRCXHU2QzM4IiwgICAgICAgICAgICAgLy8gMTYyNCBLYW4tZWkKKyAgICAgICAgICAgICJcdTZCNjNcdTRGREQiLCAgICAgICAgICAgICAvLyAxNjQ0IFNob2hvCisgICAgICAgICAgICAiXHU2MTc2XHU1Qjg5IiwgICAgICAgICAgICAgLy8gMTY0OCBLZWlhbgorICAgICAgICAgICAgIlx1NjI3Rlx1NUZEQyIsICAgICAgICAgICAgIC8vIDE2NTIgU2hvbworICAgICAgICAgICAgIlx1NjYwRVx1NjZBNiIsICAgICAgICAgICAgIC8vIDE2NTUgTWVpcnlha3UKKyAgICAgICAgICAgICJcdTRFMDdcdTZDQkIiLCAgICAgICAgICAgICAvLyAxNjU4IE1hbmppCisgICAgICAgICAgICAiXHU1QkRCXHU2NTg3IiwgICAgICAgICAgICAgLy8gMTY2MSBLYW5idW4KKyAgICAgICAgICAgICJcdTVFRjZcdTVCOUQiLCAgICAgICAgICAgICAvLyAxNjczIEVucG8KKyAgICAgICAgICAgICJcdTU5MjlcdTU0OEMiLCAgICAgICAgICAgICAvLyAxNjgxIFRlbndhCisgICAgICAgICAgICAiXHU4QzlFXHU0RUFCIiwgICAgICAgICAgICAgLy8gMTY4NCBKb2t5bworICAgICAgICAgICAgIlx1NTE0M1x1Nzk4NCIsICAgICAgICAgICAgIC8vIDE2ODggR2Vucm9rdQorICAgICAgICAgICAgIlx1NUI5RFx1NkMzOCIsICAgICAgICAgICAgIC8vIDE3MDQgSG9laQorICAgICAgICAgICAgIlx1NkI2M1x1NUZCMyIsICAgICAgICAgICAgIC8vIDE3MTEgU2hvdG9rdQorICAgICAgICAgICAgIlx1NEVBQlx1NEZERCIsICAgICAgICAgICAgIC8vIDE3MTYgS3lvaG8KKyAgICAgICAgICAgICJcdTUxNDNcdTY1ODciLCAgICAgICAgICAgICAvLyAxNzM2IEdlbmJ1bgorICAgICAgICAgICAgIlx1NUJEQlx1NEZERCIsICAgICAgICAgICAgIC8vIDE3NDEgS2FucG8KKyAgICAgICAgICAgICJcdTVFRjZcdTRFQUIiLCAgICAgICAgICAgICAvLyAxNzQ0IEVua3lvCisgICAgICAgICAgICAiXHU1QkRCXHU1RUY2IiwgICAgICAgICAgICAgLy8gMTc0OCBLYW4tZW4KKyAgICAgICAgICAgICJcdTVCOURcdTY2QTYiLCAgICAgICAgICAgICAvLyAxNzUxIEhvcnlha3UKKyAgICAgICAgICAgICJcdTY2MEVcdTU0OEMiLCAgICAgICAgICAgICAvLyAxNzY0IE1laXdhCisgICAgICAgICAgICAiXHU1Qjg5XHU2QzM4IiwgICAgICAgICAgICAgLy8gMTc3MiBBbi1laQorICAgICAgICAgICAgIlx1NTkyOVx1NjYwRSIsICAgICAgICAgICAgIC8vIDE3ODEgVGVubWVpCisgICAgICAgICAgICAiXHU1QkRCXHU2NTNGIiwgICAgICAgICAgICAgLy8gMTc4OSBLYW5zZWkKKyAgICAgICAgICAgICJcdTRFQUJcdTU0OEMiLCAgICAgICAgICAgICAvLyAxODAxIEt5b3dhCisgICAgICAgICAgICAiXHU2NTg3XHU1MzE2IiwgICAgICAgICAgICAgLy8gMTgwNCBCdW5rYQorICAgICAgICAgICAgIlx1NjU4N1x1NjUzRiIsICAgICAgICAgICAgIC8vIDE4MTggQnVuc2VpCisgICAgICAgICAgICAiXHU1OTI5XHU0RkREIiwgICAgICAgICAgICAgLy8gMTgzMCBUZW5wbworICAgICAgICAgICAgIlx1NUYxOFx1NTMxNiIsICAgICAgICAgICAgIC8vIDE4NDQgS29rYQorICAgICAgICAgICAgIlx1NTYwOVx1NkMzOCIsICAgICAgICAgICAgIC8vIDE4NDggS2FlaQorICAgICAgICAgICAgIlx1NUI4OVx1NjUzRiIsICAgICAgICAgICAgIC8vIDE4NTQgQW5zZWkKKyAgICAgICAgICAgICJcdTRFMDdcdTVFRjYiLCAgICAgICAgICAgICAvLyAxODYwIE1hbi1lbgorICAgICAgICAgICAgIlx1NjU4N1x1NEU0NSIsICAgICAgICAgICAgIC8vIDE4NjEgQnVua3l1CisgICAgICAgICAgICAiXHU1MTQzXHU2Q0JCIiwgICAgICAgICAgICAgLy8gMTg2NCBHZW5qaQorICAgICAgICAgICAgIlx1NjE3Nlx1NUZEQyIsICAgICAgICAgICAgIC8vIDE4NjUgS2VpbworICAgICAgICAgICAgIlx1NjYwRVx1NkNCQiIsICAgICAgICAgICAgIC8vIDE4NjggTWVpamkKKyAgICAgICAgICAgICJcdTU5MjdcdTZCNjMiLCAgICAgICAgICAgICAvLyAxOTEyIFRhaXNobworICAgICAgICAgICAgIlx1NjYyRFx1NTQ4QyIsICAgICAgICAgICAgIC8vIDE5MjYgU2hvd2EKKyAgICAgICAgICAgICJcdTVFNzNcdTYyMTAiLCAgICAgICAgICAgICAvLyAxOTg5IEhlaXNlaQorICAgICAgICB9IH0sCisgICAgfTsKKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgICAgICAgcmV0dXJuIGZDb250ZW50czsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Mb2NhbGVTY3JpcHQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvTG9jYWxlU2NyaXB0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTE4NGU5MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvTG9jYWxlU2NyaXB0LmphdmEKQEAgLTAsMCArMSw0MjQgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwMS0yMDAzLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOyAKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVTY3JpcHQ7CisKK3B1YmxpYyBjbGFzcyBMb2NhbGVTY3JpcHQgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeyAKKworICAgICAgcHVibGljIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7IAorICAgICAgICAgICAgIHJldHVybiBsb2NhbGVTY3JpcHQ7CisgICAgICB9CisKKyAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIE9iamVjdFtdW10gbG9jYWxlU2NyaXB0ID0gbmV3IE9iamVjdFtdW10geworICAgICAgICAgICB7CisgICAgICAgICAgICAgICAiYWYiLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuTEFUSU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAiYW0iLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuRVRISU9QSUMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAiYXIiLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuQVJBQklDLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgfSwKKyAgICAgICAgICAgeworICAgICAgICAgICAgICAgImF6IiwgbmV3IGludFtdIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVU2NyaXB0LkNZUklMTElDLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgfSwKKyAgICAgICAgICAgeworICAgICAgICAgICAgICAgImJlIiwgbmV3IGludFtdIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVU2NyaXB0LkNZUklMTElDLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgfSwKKyAgICAgICAgICAgeworICAgICAgICAgICAgICAgImJnIiwgbmV3IGludFtdIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVU2NyaXB0LkNZUklMTElDLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgfSwKKyAgICAgICAgICAgeworICAgICAgICAgICAgICAgImJuIiwgbmV3IGludFtdIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVU2NyaXB0LkJFTkdBTEksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAiY2EiLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuTEFUSU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAiY3MiLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuTEFUSU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAiZGEiLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuTEFUSU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAiZGUiLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuTEFUSU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAiZGl2IiwgbmV3IGludFtdIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVU2NyaXB0LlRIQUFOQSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0sCisgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICJlbCIsIG5ldyBpbnRbXSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVNjcmlwdC5HUkVFSywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0sCisgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICJlbiIsIG5ldyBpbnRbXSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVNjcmlwdC5MQVRJTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0sCisgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICJlbyIsIG5ldyBpbnRbXSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVNjcmlwdC5MQVRJTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0sCisgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICJlcyIsIG5ldyBpbnRbXSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVNjcmlwdC5MQVRJTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0sCisgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICJldCIsIG5ldyBpbnRbXSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVNjcmlwdC5MQVRJTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0sCisgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICJldSIsIG5ldyBpbnRbXSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVNjcmlwdC5MQVRJTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0sCisgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICJmYSIsIG5ldyBpbnRbXSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVNjcmlwdC5BUkFCSUMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAiZmkiLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuTEFUSU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAiZm8iLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuTEFUSU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAiZnIiLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuTEFUSU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAiZ2EiLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuTEFUSU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAiZ2wiLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuTEFUSU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAiZ3UiLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuR1VKQVJBVEksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAiZ3YiLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuTEFUSU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAiaGUiLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuSEVCUkVXLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgfSwKKyAgICAgICAgICAgeworICAgICAgICAgICAgICAgImhpIiwgbmV3IGludFtdIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVU2NyaXB0LkRFVkFOQUdBUkksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAiaHIiLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuTEFUSU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAiaHUiLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuTEFUSU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAiaHkiLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuQVJNRU5JQU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAiaWQiLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuTEFUSU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAiaXMiLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuTEFUSU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAiaXQiLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuTEFUSU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAiaXciLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuSEVCUkVXLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgfSwKKyAgICAgICAgICAgeworICAgICAgICAgICAgICAgImphIiwgbmV3IGludFtdIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVU2NyaXB0LktBVEFLQU5BLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuSElSQUdBTkEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVNjcmlwdC5IQU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAia2EiLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuR0VPUkdJQU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAia2siLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuQ1lSSUxMSUMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAia2wiLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuTEFUSU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAia24iLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuS0FOTkFEQSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0sCisgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICJrbyIsIG5ldyBpbnRbXSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVNjcmlwdC5IQU5HVUwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVNjcmlwdC5IQU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAia29rIiwgbmV3IGludFtdIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVU2NyaXB0LkRFVkFOQUdBUkksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAia3ciLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuTEFUSU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAia3kiLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuTEFUSU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAibHQiLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuTEFUSU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAibHYiLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuTEFUSU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAibWsiLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuQ1lSSUxMSUMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAibW4iLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuQ1lSSUxMSUMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAibXIiLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuREVWQU5BR0FSSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0sCisgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICJtcyIsIG5ldyBpbnRbXSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVNjcmlwdC5MQVRJTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0sCisgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICJtdCIsIG5ldyBpbnRbXSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVNjcmlwdC5MQVRJTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0sCisgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICJuYiIsIG5ldyBpbnRbXSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVNjcmlwdC5MQVRJTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0sCisgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICJubCIsIG5ldyBpbnRbXSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVNjcmlwdC5MQVRJTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0sCisgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICJubiIsIG5ldyBpbnRbXSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVNjcmlwdC5MQVRJTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0sCisgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICJwYSIsIG5ldyBpbnRbXSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVNjcmlwdC5HVVJNVUtISSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0sCisgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICJwbCIsIG5ldyBpbnRbXSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVNjcmlwdC5MQVRJTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0sCisgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICJwdCIsIG5ldyBpbnRbXSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVNjcmlwdC5MQVRJTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0sCisgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICJybyIsIG5ldyBpbnRbXSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVNjcmlwdC5MQVRJTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0sCisgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICJyb290IiwgbmV3IGludFtdIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVU2NyaXB0LkxBVElOLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgfSwKKyAgICAgICAgICAgeworICAgICAgICAgICAgICAgInJ1IiwgbmV3IGludFtdIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVU2NyaXB0LkNZUklMTElDLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgfSwKKyAgICAgICAgICAgeworICAgICAgICAgICAgICAgInNhIiwgbmV3IGludFtdIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVU2NyaXB0LkRFVkFOQUdBUkksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAic2giLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuTEFUSU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAic2siLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuTEFUSU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAic2wiLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuTEFUSU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAic3EiLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuTEFUSU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAic3IiLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuQ1lSSUxMSUMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAic3YiLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuTEFUSU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAic3ciLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuTEFUSU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAic3lyIiwgbmV3IGludFtdIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVU2NyaXB0LlNZUklBQywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0sCisgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICJ0YSIsIG5ldyBpbnRbXSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVNjcmlwdC5UQU1JTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0sCisgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICJ0ZSIsIG5ldyBpbnRbXSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVNjcmlwdC5URUxVR1UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAidGgiLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuVEhBSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0sCisgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICJ0ciIsIG5ldyBpbnRbXSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVNjcmlwdC5MQVRJTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0sCisgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICJ0dCIsIG5ldyBpbnRbXSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVNjcmlwdC5DWVJJTExJQywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0sCisgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICJ1ayIsIG5ldyBpbnRbXSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVNjcmlwdC5DWVJJTExJQywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0sCisgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICJ1ciIsIG5ldyBpbnRbXSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVNjcmlwdC5BUkFCSUMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAidXoiLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuQ1lSSUxMSUMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAidmkiLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuTEFUSU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9LAorICAgICAgICAgICB7CisgICAgICAgICAgICAgICAiemgiLCBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuSEFOLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgfSwKKyAgICAgICAgICAgeworICAgICAgICAgICAgICAgInpoX1RXIiwgbmV3IGludFtdIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVU2NyaXB0LkhBTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVU2NyaXB0LkJPUE9NT0ZPLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgfSwKKyAgICAgIH07Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9SZXNvdXJjZVJlYWRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9SZXNvdXJjZVJlYWRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY5MTNjM2QKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1Jlc291cmNlUmVhZGVyLmphdmEKQEAgLTAsMCArMSwxMjcgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1Jlc291cmNlUmVhZGVyLmphdmEsdiAkCisgKiAkRGF0ZTogMjAwMi8wOC8xMyAyMzozNzo0OCAkCisgKiAkUmV2aXNpb246IDEuNSAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBqYXZhLmlvLio7CisKKy8qKgorICogQSByZWFkZXIgZm9yIHRleHQgcmVzb3VyY2UgZGF0YSBpbiB0aGUgY3VycmVudCBwYWNrYWdlLiAgVGhlCisgKiByZXNvdXJjZSBkYXRhIGlzIGxvYWRlZCB0aHJvdWdoIHRoZSBjbGFzcyBsb2FkZXIsIHNvIGl0IHdpbGwKKyAqIHR5cGljYWxseSBiZSBhIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IGFzIHRoZSAqLmNsYXNzIGZpbGVzLCBvcgorICogYSBmaWxlIHdpdGhpbiBhIEpBUiBmaWxlIGluIHRoZSBjb3JyZXNwb25kaW5nIHN1YmRpcmVjdG9yeS4gIFRoZQorICogZmlsZSBtdXN0IGJlIGEgdGV4dCBmaWxlIGluIG9uZSBvZiB0aGUgc3VwcG9ydGVkIGVuY29kaW5nczsgd2hlbiB0aGUKKyAqIHJlc291cmNlIGlzIG9wZW5lZCBieSBjb25zdHJ1Y3RpbmcgYSA8Y29kZT5SZXNvdXJjZVJlYWRlcjwvY29kZT4KKyAqIG9iamVjdCB0aGUgZW5jb2RpbmcgaXMgc3BlY2lmaWVkLgorICoKKyAqIDxwPkFsdGhvdWdoIHRoaXMgY2xhc3MgaGFzIGEgcHVibGljIEFQSSwgaXQgaXMgZGVzaWduZWQgZm9yCisgKiBpbnRlcm5hbCB1c2UgYnkgY2xhc3NlcyBpbiB0aGUgPGNvZGU+Y29tLmlibS5pY3UudGV4dDwvY29kZT4gcGFja2FnZS4KKyAqCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKi8KK3B1YmxpYyBjbGFzcyBSZXNvdXJjZVJlYWRlciB7CisgICAgcHJpdmF0ZSBCdWZmZXJlZFJlYWRlciByZWFkZXI7CisgICAgcHJpdmF0ZSBTdHJpbmcgcmVzb3VyY2VOYW1lOworICAgIHByaXZhdGUgU3RyaW5nIGVuY29kaW5nOyAvLyBudWxsIGZvciBkZWZhdWx0IGVuY29kaW5nCisgICAgcHJpdmF0ZSBib29sZWFuIGlzUmVzZXQ7IC8vIFRSVUUgaWYgd2UgYXJlIGF0IHRoZSBzdGFydCBvZiB0aGUgZmlsZQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgcmVhZGVyIG9iamVjdCBmb3IgdGhlIHRleHQgZmlsZSBvZiB0aGUgZ2l2ZW4gbmFtZQorICAgICAqIGluIHRoaXMgcGFja2FnZSwgdXNpbmcgdGhlIGdpdmVuIGVuY29kaW5nLgorICAgICAqIEBwYXJhbSByZXNvdXJjZU5hbWUgdGhlIG5hbWUgb2YgdGhlIHRleHQgZmlsZSBsb2NhdGVkIGluIHRoaXMKKyAgICAgKiBwYWNrYWdlCisgICAgICogQHBhcmFtIGVuY29kaW5nIHRoZSBlbmNvZGluZyBvZiB0aGUgdGV4dCBmaWxlOyBpZiB1bnN1cHBvcnRlZAorICAgICAqIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24KKyAgICAgKiBAZXhjZXB0aW9uIFVuc3VwcG9ydGVkRW5jb2RpbmdFeGNlcHRpb24gaWYKKyAgICAgKiA8Y29kZT5lbmNvZGluZzwvY29kZT4gaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgSkRLLgorICAgICAqLworICAgIHB1YmxpYyBSZXNvdXJjZVJlYWRlcihTdHJpbmcgcmVzb3VyY2VOYW1lLCBTdHJpbmcgZW5jb2RpbmcpCisgICAgICAgIHRocm93cyBVbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uIHsKKworICAgICAgICB0aGlzLnJlc291cmNlTmFtZSA9IHJlc291cmNlTmFtZTsKKyAgICAgICAgdGhpcy5lbmNvZGluZyA9IGVuY29kaW5nOworICAgICAgICBpc1Jlc2V0ID0gZmFsc2U7CisgICAgICAgIF9yZXNldCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIHJlYWRlciBvYmplY3QgZm9yIHRoZSB0ZXh0IGZpbGUgb2YgdGhlIGdpdmVuIG5hbWUKKyAgICAgKiBpbiB0aGlzIHBhY2thZ2UsIHVzaW5nIHRoZSBkZWZhdWx0IGVuY29kaW5nLgorICAgICAqIEBwYXJhbSByZXNvdXJjZU5hbWUgdGhlIG5hbWUgb2YgdGhlIHRleHQgZmlsZSBsb2NhdGVkIGluIHRoaXMKKyAgICAgKiBwYWNrYWdlCisgICAgICovCisgICAgcHVibGljIFJlc291cmNlUmVhZGVyKFN0cmluZyByZXNvdXJjZU5hbWUpIHsKKyAgICAgICAgdGhpcy5yZXNvdXJjZU5hbWUgPSByZXNvdXJjZU5hbWU7CisgICAgICAgIHRoaXMuZW5jb2RpbmcgPSBudWxsOworICAgICAgICBpc1Jlc2V0ID0gZmFsc2U7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBfcmVzZXQoKTsKKyAgICAgICAgfSBjYXRjaCAoVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbiBlKSB7fQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJlYWQgYW5kIHJldHVybiB0aGUgbmV4dCBsaW5lIG9mIHRoZSBmaWxlIG9yIDxjb2RlPm51bGw8L2NvZGU+CisgICAgICogaWYgdGhlIGVuZCBvZiB0aGUgZmlsZSBoYXMgYmVlbiByZWFjaGVkLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgcmVhZExpbmUoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBpZiAoaXNSZXNldCkgeworICAgICAgICAgICAgLy8gUmVtb3ZlIEJPTXMKKyAgICAgICAgICAgIGlzUmVzZXQgPSBmYWxzZTsKKyAgICAgICAgICAgIFN0cmluZyBsaW5lID0gcmVhZGVyLnJlYWRMaW5lKCk7CisgICAgICAgICAgICBpZiAobGluZS5jaGFyQXQoMCkgPT0gJ1x1RkZFRicgfHwKKyAgICAgICAgICAgICAgICBsaW5lLmNoYXJBdCgwKSA9PSAnXHVGRUZGJykgeworICAgICAgICAgICAgICAgIHJldHVybiBsaW5lLnN1YnN0cmluZygxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBsaW5lOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZWFkZXIucmVhZExpbmUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXNldCB0aGlzIHJlYWRlciBzbyB0aGF0IHRoZSBuZXh0IGNhbGwgdG8KKyAgICAgKiA8Y29kZT5yZWFkTGluZSgpPC9jb2RlPiByZXR1cm5zIHRoZSBmaXJzdCBsaW5lIG9mIHRoZSBmaWxlCisgICAgICogYWdhaW4uICBUaGlzIGlzIGEgc29tZXdoYXQgZXhwZW5zaXZlIGNhbGwsIGhvd2V2ZXIsIGNhbGxpbmcKKyAgICAgKiA8Y29kZT5yZXNldCgpPC9jb2RlPiBhZnRlciBjYWxsaW5nIGl0IHRoZSBmaXJzdCB0aW1lIGRvZXMKKyAgICAgKiBub3RoaW5nIGlmIDxjb2RlPnJlYWRMaW5lKCk8L2NvZGU+IGhhcyBub3QgYmVlbiBjYWxsZWQgaW4KKyAgICAgKiBiZXR3ZWVuLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlc2V0KCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgX3Jlc2V0KCk7CisgICAgICAgIH0gY2F0Y2ggKFVuc3VwcG9ydGVkRW5jb2RpbmdFeGNlcHRpb24gZSkge30KKyAgICAgICAgLy8gV2Ugc3dhbGxvdyB0aGlzIGV4Y2VwdGlvbiwgaWYgdGhlcmUgaXMgb25lLiAgSWYgdGhlIGVuY29kaW5nIGlzCisgICAgICAgIC8vIGludmFsaWQsIHRoZSBjb25zdHJ1Y3RvciB3aWxsIGhhdmUgdGhyb3duIHRoaXMgZXhjZXB0aW9uIGFscmVhZHkgYW5kCisgICAgICAgIC8vIHRoZSBjYWxsZXIgc2hvdWxkbid0IHVzZSB0aGUgb2JqZWN0IGFmdGVyd2FyZHMuCisgICAgfQorCisgICAgLyoqCisgICAgICogUmVzZXQgdG8gdGhlIHN0YXJ0IGJ5IHJlY29uc3RydWN0aW5nIHRoZSBzdHJlYW0gYW5kIHJlYWRlcnMuCisgICAgICogV2UgY291bGQgYWxzbyB1c2UgbWFyaygpIGFuZCByZXNldCgpIG9uIHRoZSBzdHJlYW0gb3IgcmVhZGVyLAorICAgICAqIGJ1dCB0aGF0IHdvdWxkIGNhdXNlIHRoZW0gdG8ga2VlcCB0aGUgc3RyZWFtIGRhdGEgYXJvdW5kIGluCisgICAgICogbWVtb3J5LiAgV2UgZG9uJ3Qgd2FudCB0aGF0IGJlY2F1c2Ugc29tZSBvZiB0aGUgcmVzb3VyY2UgZmlsZXMKKyAgICAgKiBhcmUgbGFyZ2UsIGUuZy4sIDQwMGsuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIF9yZXNldCgpIHRocm93cyBVbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uIHsKKyAgICAgICAgaWYgKGlzUmVzZXQpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBJbnB1dFN0cmVhbSBpcyA9IGdldENsYXNzKCkuZ2V0UmVzb3VyY2VBc1N0cmVhbShyZXNvdXJjZU5hbWUpOworICAgICAgICBpZiAoaXMgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQ2FuJ3Qgb3BlbiAiICsgcmVzb3VyY2VOYW1lKTsKKyAgICAgICAgfQorICAgICAgICBJbnB1dFN0cmVhbVJlYWRlciBpc3IgPQorICAgICAgICAgICAgKGVuY29kaW5nID09IG51bGwpID8gbmV3IElucHV0U3RyZWFtUmVhZGVyKGlzKSA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSW5wdXRTdHJlYW1SZWFkZXIoaXMsIGVuY29kaW5nKTsKKyAgICAgICAgcmVhZGVyID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKGlzcik7CisgICAgICAgIGlzUmVzZXQgPSB0cnVlOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfQW55X0FjY2VudHMudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9BbnlfQWNjZW50cy50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzk4NzM4NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfQW55X0FjY2VudHMudHh0CkBAIC0wLDAgKzEsMjk0IEBACisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0F0dGljL1RyYW5zbGl0ZXJhdG9yX0FueV9BY2NlbnRzLnR4dCx2ICQKKyMgJERhdGU6IDIwMDEvMDkvMjUgMjI6NTg6NTUgJAorIyAkUmV2aXNpb246IDEuMyAkCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworOjogTkZEIChORkMpIDsKKworIyB0byBkbzogbWFrZSByZXZlcnNpYmxlCisKKyMgZGVmaW5lIHNwZWNpYWwgY29udmVyc2lvbiBjaGFyYWN0ZXJzLgorIyB2YXJpZW50cyBvZiB0aGlzIGNvdWxkIHVzZSBkaWZmZXJlbnQgY2hhcmFjdGVycywgb3Igc2V0IG9uZSBvciB0aGUgb3RoZXIgdG8gbnVsbC4KKworJHByZSA9IFw8IDsKKyRwb3N0ID0gXD4gOworCisjIFByb3ZpZGUga2V5Ym9hcmQgZXF1aXZhbGVudHMgZm9yIGNvbW1vbiBkaWFjcml0aWNzIHVzZWQgaW4gdHJhbnNsaXRlcmF0aW9uCisKKyRwcmUgXGAgJHBvc3QgPD4gXHUwMzAwIDsgIyBDT01CSU5JTkcgR1JBVkUgQUNDRU5UCiskcHJlIFwnICRwb3N0IDw+IFx1MDMwMSA7ICMgQ09NQklOSU5HIEFDVVRFIEFDQ0VOVAorJHByZSBcXiAkcG9zdCA8PiBcdTAzMDIgOyAjIENPTUJJTklORyBDSVJDVU1GTEVYIEFDQ0VOVAorJHByZSBcfiAkcG9zdCA8PiBcdTAzMDMgOyAjIENPTUJJTklORyBUSUxERQorJHByZSBcLSAkcG9zdCA8PiBcdTAzMDQgOyAjIENPTUJJTklORyBNQUNST04KKyRwcmUgXCIgJHBvc3QgPD4gXHUwMzA4IDsgIyBDT01CSU5JTkcgRElBRVJFU0lTCiskcHJlIFwqICRwb3N0IDw+IFx1MDMwQSA7ICMgQ09NQklOSU5HIFJJTkcgQUJPVkUKKyRwcmUgXCwgJHBvc3QgPD4gXHUwMzI3IDsgIyBDT01CSU5JTkcgQ0VESUxMQQorJHByZSAnLycgJHBvc3QgPD4gXHUwMzM4IDsgIyBDT01CSU5JTkcgTE9ORyBTT0xJRFVTIE9WRVJMQVkKKyRwcmUgXC4gJHBvc3QgPD4gXHUwMzIzIDsgIyBDT01CSU5JTkcgRE9UIEJFTE9XCisKKyMgQ29tYmluZSBjb21tb24gY2hhcmFjdGVycworCiskcHJlIEFFICRwb3N0IDw+IFx1MDBDNiA7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQUUKKyRwcmUgYWUgJHBvc3QgPD4gXHUwMEU2IDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgQUUKKyRwcmUgRCAkcG9zdCA8PiBcdTAwRDAgOyAjIExBVElOIENBUElUQUwgTEVUVEVSIEVUSAorJHByZSBkICRwb3N0IDw+IFx1MDBGMCA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIEVUSAorJHByZSBPJy8nICRwb3N0IDw+IFx1MDBEOCA7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIFNUUk9LRQorJHByZSBvJy8nICRwb3N0IDw+IFx1MDBGOCA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBTVFJPS0UKKyRwcmUgVEggJHBvc3QgPD4gXHUwMERFIDsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBUSE9STgorJHByZSB0aCAkcG9zdCA8PiBcdTAwRkUgOyAjIExBVElOIFNNQUxMIExFVFRFUiBUSE9STgorJHByZSBPRSAkcG9zdCA8PiBcdTAxNTIgOyAjIExBVElOIENBUElUQUwgTElHQVRVUkUgT0UKKyRwcmUgb2UgJHBvc3QgPD4gXHUwMTUzIDsgIyBMQVRJTiBTTUFMTCBMSUdBVFVSRSBPRQorCiskcHJlIHNzICRwb3N0IDw+IFx1MDBERiA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIFNIQVJQIFMKKworJHByZSBORyAkcG9zdCA8PiBcdTAxNEEgOyAjIExBVElOIENBUElUQUwgTEVUVEVSIEVORworJHByZSBuZyAkcG9zdCA8PiBcdTAxNEIgOyAjIExBVElOIFNNQUxMIExFVFRFUiBFTkcKKworJHByZSBUICRwb3N0IDw+IFx1MDM5OCA7ICMgVEhFVEEKKyRwcmUgdCAkcG9zdCA8PiBcdTAzQjggOyAjIFRIRVRBCiskcHJlIFNIICRwb3N0IDw+IFx1MDFBOSA7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRVNICiskcHJlIHNoICRwb3N0IDw+IFx1MDI4MyA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIEVTSAorJHByZSBaSCAkcG9zdCA8PiBcdTAxQjcgOyAjIExBVElOIENBUElUQUwgTEVUVEVSIEVaSAorJHByZSB6aCAkcG9zdCA8PiBcdTAyOTIgOyAjIExBVElOIFNNQUxMIExFVFRFUiBFWkgKKworJHByZSBVICRwb3N0IDw+IFx1MDFCMSA7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVVBTSUxPTgorJHByZSB1ICRwb3N0IDw+IFx1MDI4QSA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIFVQU0lMT04KKyRwcmUgQSAkcG9zdCA8PiBcdTAxOEYgOyAjIExBVElOIENBUElUQUwgTEVUVEVSIFNDSFdBCiskcHJlIGEgJHBvc3QgPD4gXHUwMjU5IDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgU0NIV0EKKyRwcmUgTyAkcG9zdCA8PiBcdTAxODYgOyAjIExBVElOIENBUElUQUwgTEVUVEVSIE9QRU4gTworJHByZSBvICRwb3N0IDw+IFx1MDI1NCA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIE9QRU4gTworJHByZSBFICRwb3N0IDw+IFx1MDE5MCA7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgT1BFTiBFCiskcHJlIGUgJHBvc3QgPD4gXHUwMjVCIDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgT1BFTiBFCisKKyMgdGhyZWUgdGhhdCBkb24ndCBoYXZlIHVwcGVyY2FzZXMKKworJHByZSAnPycgJHBvc3QgPD4gXHUwMjk0IDsgIyBMQVRJTiBMRVRURVIgR0xPVFRBTCBTVE9QCiskcHJlIGkgJHBvc3QgPD4gXHUwMjZBIDsgIyBMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBJCiskcHJlIHYgJHBvc3QgPD4gXHUwMjhDIDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIFYKKworIyBBZGRpdGlvbmFsIENoYXJhY3RlcnMgdGhhdCBtYXkgYmUgYWRkZWQgaW4gdGhlIGZ1dHVyZQorCisjICRwcmUgWFhYICRwb3N0IDw+IFx1MDMwNiA7ICMgQ09NQklOSU5HIEJSRVZFCisjICRwcmUgWFhYICRwb3N0IDw+IFx1MDMwNyA7ICMgQ09NQklOSU5HIERPVCBBQk9WRQorIyAkcHJlIFhYWCAkcG9zdCA8PiBcdTAzMDkgOyAjIENPTUJJTklORyBIT09LIEFCT1ZFCisjICRwcmUgWFhYICRwb3N0IDw+IFx1MDMwQiA7ICMgQ09NQklOSU5HIERPVUJMRSBBQ1VURSBBQ0NFTlQKKyMgJHByZSBYWFggJHBvc3QgPD4gXHUwMzBDIDsgIyBDT01CSU5JTkcgQ0FST04KKyMgJHByZSBYWFggJHBvc3QgPD4gXHUwMzBGIDsgIyBDT01CSU5JTkcgRE9VQkxFIEdSQVZFIEFDQ0VOVAorIyAkcHJlIFhYWCAkcG9zdCA8PiBcdTAzMTEgOyAjIENPTUJJTklORyBJTlZFUlRFRCBCUkVWRQorIyAkcHJlIFhYWCAkcG9zdCA8PiBcdTAzMTMgOyAjIENPTUJJTklORyBDT01NQSBBQk9WRQorIyAkcHJlIFhYWCAkcG9zdCA8PiBcdTAzMTQgOyAjIENPTUJJTklORyBSRVZFUlNFRCBDT01NQSBBQk9WRQorIyAkcHJlIFhYWCAkcG9zdCA8PiBcdTAzMUIgOyAjIENPTUJJTklORyBIT1JOCisjICRwcmUgWFhYICRwb3N0IDw+IFx1MDMyNCA7ICMgQ09NQklOSU5HIERJQUVSRVNJUyBCRUxPVworIyAkcHJlIFhYWCAkcG9zdCA8PiBcdTAzMjUgOyAjIENPTUJJTklORyBSSU5HIEJFTE9XCisjICRwcmUgWFhYICRwb3N0IDw+IFx1MDMyNiA7ICMgQ09NQklOSU5HIENPTU1BIEJFTE9XCisjICRwcmUgWFhYICRwb3N0IDw+IFx1MDMyOCA7ICMgQ09NQklOSU5HIE9HT05FSworIyAkcHJlIFhYWCAkcG9zdCA8PiBcdTAzMkQgOyAjIENPTUJJTklORyBDSVJDVU1GTEVYIEFDQ0VOVCBCRUxPVworIyAkcHJlIFhYWCAkcG9zdCA8PiBcdTAzMkUgOyAjIENPTUJJTklORyBCUkVWRSBCRUxPVworIyAkcHJlIFhYWCAkcG9zdCA8PiBcdTAzMzAgOyAjIENPTUJJTklORyBUSUxERSBCRUxPVworIyAkcHJlIFhYWCAkcG9zdCA8PiBcdTAzMzEgOyAjIENPTUJJTklORyBNQUNST04gQkVMT1cKKworIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAwQUEgOyAjIEZFTUlOSU5FIE9SRElOQUwgSU5ESUNBVE9SCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDBCQSA7ICMgTUFTQ1VMSU5FIE9SRElOQUwgSU5ESUNBVE9SCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDExMCA7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIFNUUk9LRQorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAxMTEgOyAjIExBVElOIFNNQUxMIExFVFRFUiBEIFdJVEggU1RST0tFCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDEyNiA7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSCBXSVRIIFNUUk9LRQorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAxMjcgOyAjIExBVElOIFNNQUxMIExFVFRFUiBIIFdJVEggU1RST0tFCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDEzMSA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIERPVExFU1MgSQorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAxMzggOyAjIExBVElOIFNNQUxMIExFVFRFUiBLUkEKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMTNGIDsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggTUlERExFIERPVAorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAxNDAgOyAjIExBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggTUlERExFIERPVAorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAxNDEgOyAjIExBVElOIENBUElUQUwgTEVUVEVSIEwgV0lUSCBTVFJPS0UKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMTQyIDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIFNUUk9LRQorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAxNDkgOyAjIExBVElOIFNNQUxMIExFVFRFUiBOIFBSRUNFREVEIEJZIEFQT1NUUk9QSEUKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMTY2IDsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFdJVEggU1RST0tFCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDE2NyA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBTVFJPS0UKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMTdGIDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgTE9ORyBTCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDE4MCA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIEIgV0lUSCBTVFJPS0UKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMTgxIDsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBCIFdJVEggSE9PSworIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAxODIgOyAjIExBVElOIENBUElUQUwgTEVUVEVSIEIgV0lUSCBUT1BCQVIKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMTgzIDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgQiBXSVRIIFRPUEJBUgorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAxODQgOyAjIExBVElOIENBUElUQUwgTEVUVEVSIFRPTkUgU0lYCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDE4NSA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIFRPTkUgU0lYCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDE4NyA7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBXSVRIIEhPT0sKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMTg4IDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgQyBXSVRIIEhPT0sKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMTg5IDsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBBRlJJQ0FOIEQKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMThBIDsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFdJVEggSE9PSworIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAxOEIgOyAjIExBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBUT1BCQVIKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMThDIDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgRCBXSVRIIFRPUEJBUgorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAxOEQgOyAjIExBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgREVMVEEKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMThFIDsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBSRVZFUlNFRCBFCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDE5MSA7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRiBXSVRIIEhPT0sKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMTkyIDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgRiBXSVRIIEhPT0sKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMTkzIDsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBHIFdJVEggSE9PSworIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAxOTQgOyAjIExBVElOIENBUElUQUwgTEVUVEVSIEdBTU1BCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDE5NSA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIEhWCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDE5NiA7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSU9UQQorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAxOTcgOyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBTVFJPS0UKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMTk4IDsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBLIFdJVEggSE9PSworIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAxOTkgOyAjIExBVElOIFNNQUxMIExFVFRFUiBLIFdJVEggSE9PSworIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAxOUEgOyAjIExBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggQkFSCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDE5QiA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIExBTUJEQSBXSVRIIFNUUk9LRQorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAxOUMgOyAjIExBVElOIENBUElUQUwgTEVUVEVSIFRVUk5FRCBNCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDE5RCA7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIExFRlQgSE9PSworIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAxOUUgOyAjIExBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggTE9ORyBSSUdIVCBMRUcKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMTlGIDsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggTUlERExFIFRJTERFCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDFBMiA7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgT0kKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMUEzIDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgT0kKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMUE0IDsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBQIFdJVEggSE9PSworIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAxQTUgOyAjIExBVElOIFNNQUxMIExFVFRFUiBQIFdJVEggSE9PSworIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAxQTYgOyAjIExBVElOIExFVFRFUiBZUgorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAxQTcgOyAjIExBVElOIENBUElUQUwgTEVUVEVSIFRPTkUgVFdPCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDFBOCA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIFRPTkUgVFdPCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDFBQSA7ICMgTEFUSU4gTEVUVEVSIFJFVkVSU0VEIEVTSCBMT09QCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDFBQiA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBQQUxBVEFMIEhPT0sKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMUFDIDsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFdJVEggSE9PSworIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAxQUQgOyAjIExBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggSE9PSworIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAxQUUgOyAjIExBVElOIENBUElUQUwgTEVUVEVSIFQgV0lUSCBSRVRST0ZMRVggSE9PSworIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAxQjIgOyAjIExBVElOIENBUElUQUwgTEVUVEVSIFYgV0lUSCBIT09LCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDFCMyA7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIEhPT0sKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMUI0IDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIEhPT0sKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMUI1IDsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBaIFdJVEggU1RST0tFCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDFCNiA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBTVFJPS0UKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMUI4IDsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBFWkggUkVWRVJTRUQKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMUI5IDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgRVpIIFJFVkVSU0VECisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDFCQSA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIEVaSCBXSVRIIFRBSUwKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMUJCIDsgIyBMQVRJTiBMRVRURVIgVFdPIFdJVEggU1RST0tFCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDFCQyA7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVE9ORSBGSVZFCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDFCRCA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIFRPTkUgRklWRQorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAxQkUgOyAjIExBVElOIExFVFRFUiBJTlZFUlRFRCBHTE9UVEFMIFNUT1AgV0lUSCBTVFJPS0UKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMUJGIDsgIyBMQVRJTiBMRVRURVIgV1lOTgorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAxQzAgOyAjIExBVElOIExFVFRFUiBERU5UQUwgQ0xJQ0sKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMUMxIDsgIyBMQVRJTiBMRVRURVIgTEFURVJBTCBDTElDSworIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAxQzIgOyAjIExBVElOIExFVFRFUiBBTFZFT0xBUiBDTElDSworIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAxQzMgOyAjIExBVElOIExFVFRFUiBSRVRST0ZMRVggQ0xJQ0sKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMUM0IDsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBEWiBXSVRIIENBUk9OCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDFDNSA7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIFNNQUxMIExFVFRFUiBaIFdJVEggQ0FST04KKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMUM2IDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgRFogV0lUSCBDQVJPTgorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAxQzcgOyAjIExBVElOIENBUElUQUwgTEVUVEVSIExKCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDFDOCA7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIFNNQUxMIExFVFRFUiBKCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDFDOSA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIExKCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDFDQSA7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgTkoKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMUNCIDsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggU01BTEwgTEVUVEVSIEoKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMUNDIDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgTkoKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMUREIDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIEUKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMUU0IDsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBHIFdJVEggU1RST0tFCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDFFNSA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIEcgV0lUSCBTVFJPS0UKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMUYxIDsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBEWgorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAxRjIgOyAjIExBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBTTUFMTCBMRVRURVIgWgorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAxRjMgOyAjIExBVElOIFNNQUxMIExFVFRFUiBEWgorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAxRjYgOyAjIExBVElOIENBUElUQUwgTEVUVEVSIEhXQUlSCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDFGNyA7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgV1lOTgorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAyMUMgOyAjIExBVElOIENBUElUQUwgTEVUVEVSIFlPR0gKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMjFEIDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgWU9HSAorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAyMjIgOyAjIExBVElOIENBUElUQUwgTEVUVEVSIE9VCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDIyMyA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIE9VCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDIyNCA7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBXSVRIIEhPT0sKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMjI1IDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIEhPT0sKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMjUwIDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIEEKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMjUxIDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgQUxQSEEKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMjUyIDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIEFMUEhBCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDI1MyA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIEIgV0lUSCBIT09LCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDI1NSA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIEMgV0lUSCBDVVJMCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDI1NiA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBUQUlMCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDI1NyA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBIT09LCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDI1OCA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIFJFVkVSU0VEIEUKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMjVBIDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgU0NIV0EgV0lUSCBIT09LCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDI1QyA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIFJFVkVSU0VEIE9QRU4gRQorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAyNUQgOyAjIExBVElOIFNNQUxMIExFVFRFUiBSRVZFUlNFRCBPUEVOIEUgV0lUSCBIT09LCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDI1RSA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIENMT1NFRCBSRVZFUlNFRCBPUEVOIEUKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMjVGIDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgRE9UTEVTUyBKIFdJVEggU1RST0tFCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDI2MCA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIEcgV0lUSCBIT09LCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDI2MSA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIFNDUklQVCBHCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDI2MiA7ICMgTEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgRworIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAyNjMgOyAjIExBVElOIFNNQUxMIExFVFRFUiBHQU1NQQorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAyNjQgOyAjIExBVElOIFNNQUxMIExFVFRFUiBSQU1TIEhPUk4KKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMjY1IDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIEgKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMjY2IDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgSCBXSVRIIEhPT0sKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMjY3IDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgSEVORyBXSVRIIEhPT0sKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMjY4IDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIFNUUk9LRQorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAyNjkgOyAjIExBVElOIFNNQUxMIExFVFRFUiBJT1RBCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDI2QiA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBNSURETEUgVElMREUKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMjZDIDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIEJFTFQKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMjZEIDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIFJFVFJPRkxFWCBIT09LCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDI2RSA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIExFWkgKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMjZGIDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIE0KKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMjcwIDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIE0gV0lUSCBMT05HIExFRworIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAyNzEgOyAjIExBVElOIFNNQUxMIExFVFRFUiBNIFdJVEggSE9PSworIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAyNzIgOyAjIExBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggTEVGVCBIT09LCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDI3MyA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBSRVRST0ZMRVggSE9PSworIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAyNzQgOyAjIExBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIE4KKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMjc1IDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgQkFSUkVEIE8KKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMjc2IDsgIyBMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBPRQorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAyNzcgOyAjIExBVElOIFNNQUxMIExFVFRFUiBDTE9TRUQgT01FR0EKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMjc4IDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgUEhJCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDI3OSA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBSCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDI3QSA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBSIFdJVEggTE9ORyBMRUcKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMjdCIDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIFIgV0lUSCBIT09LCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDI3QyA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBMT05HIExFRworIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAyN0QgOyAjIExBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggVEFJTAorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAyN0UgOyAjIExBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggRklTSEhPT0sKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMjdGIDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgUkVWRVJTRUQgUiBXSVRIIEZJU0hIT09LCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDI4MCA7ICMgTEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgUgorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAyODEgOyAjIExBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIElOVkVSVEVEIFIKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMjgyIDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIEhPT0sKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMjg0IDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgRE9UTEVTUyBKIFdJVEggU1RST0tFIEFORCBIT09LCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDI4NSA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIFNRVUFUIFJFVkVSU0VEIEVTSAorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAyODYgOyAjIExBVElOIFNNQUxMIExFVFRFUiBFU0ggV0lUSCBDVVJMCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDI4NyA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBUCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDI4OCA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBSRVRST0ZMRVggSE9PSworIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAyODkgOyAjIExBVElOIFNNQUxMIExFVFRFUiBVIEJBUgorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAyOEIgOyAjIExBVElOIFNNQUxMIExFVFRFUiBWIFdJVEggSE9PSworIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAyOEQgOyAjIExBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgVworIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAyOEUgOyAjIExBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgWQorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAyOEYgOyAjIExBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIFkKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMjkwIDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIFJFVFJPRkxFWCBIT09LCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDI5MSA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBDVVJMCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDI5MyA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIEVaSCBXSVRIIENVUkwKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMjk0IDsgIyBMQVRJTiBMRVRURVIgR0xPVFRBTCBTVE9QCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDI5NSA7ICMgTEFUSU4gTEVUVEVSIFBIQVJZTkdFQUwgVk9JQ0VEIEZSSUNBVElWRQorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAyOTYgOyAjIExBVElOIExFVFRFUiBJTlZFUlRFRCBHTE9UVEFMIFNUT1AKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMjk3IDsgIyBMQVRJTiBMRVRURVIgU1RSRVRDSEVEIEMKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMjk4IDsgIyBMQVRJTiBMRVRURVIgQklMQUJJQUwgQ0xJQ0sKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMjk5IDsgIyBMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBCCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDI5QSA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIENMT1NFRCBPUEVOIEUKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMjlCIDsgIyBMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBHIFdJVEggSE9PSworIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAyOUMgOyAjIExBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIEgKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMjlEIDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgSiBXSVRIIENST1NTRUQtVEFJTAorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAyOUUgOyAjIExBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgSworIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAyOUYgOyAjIExBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIEwKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMkEwIDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgUSBXSVRIIEhPT0sKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMkExIDsgIyBMQVRJTiBMRVRURVIgR0xPVFRBTCBTVE9QIFdJVEggU1RST0tFCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDJBMiA7ICMgTEFUSU4gTEVUVEVSIFJFVkVSU0VEIEdMT1RUQUwgU1RPUCBXSVRIIFNUUk9LRQorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAyQTMgOyAjIExBVElOIFNNQUxMIExFVFRFUiBEWiBESUdSQVBICisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDJBNCA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIERFWkggRElHUkFQSAorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAyQTUgOyAjIExBVElOIFNNQUxMIExFVFRFUiBEWiBESUdSQVBIIFdJVEggQ1VSTAorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAyQTYgOyAjIExBVElOIFNNQUxMIExFVFRFUiBUUyBESUdSQVBICisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDJBNyA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIFRFU0ggRElHUkFQSAorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAyQTggOyAjIExBVElOIFNNQUxMIExFVFRFUiBUQyBESUdSQVBIIFdJVEggQ1VSTAorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAyQTkgOyAjIExBVElOIFNNQUxMIExFVFRFUiBGRU5HIERJR1JBUEgKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMkFBIDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgTFMgRElHUkFQSAorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAyQUIgOyAjIExBVElOIFNNQUxMIExFVFRFUiBMWiBESUdSQVBICisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDJBQyA7ICMgTEFUSU4gTEVUVEVSIEJJTEFCSUFMIFBFUkNVU1NJVkUKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMkFEIDsgIyBMQVRJTiBMRVRURVIgQklERU5UQUwgUEVSQ1VTU0lWRQorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAyQjAgOyAjIE1PRElGSUVSIExFVFRFUiBTTUFMTCBICisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDJCMSA7ICMgTU9ESUZJRVIgTEVUVEVSIFNNQUxMIEggV0lUSCBIT09LCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDJCMiA7ICMgTU9ESUZJRVIgTEVUVEVSIFNNQUxMIEoKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMkIzIDsgIyBNT0RJRklFUiBMRVRURVIgU01BTEwgUgorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAyQjQgOyAjIE1PRElGSUVSIExFVFRFUiBTTUFMTCBUVVJORUQgUgorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAyQjUgOyAjIE1PRElGSUVSIExFVFRFUiBTTUFMTCBUVVJORUQgUiBXSVRIIEhPT0sKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMkI2IDsgIyBNT0RJRklFUiBMRVRURVIgU01BTEwgQ0FQSVRBTCBJTlZFUlRFRCBSCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDJCNyA7ICMgTU9ESUZJRVIgTEVUVEVSIFNNQUxMIFcKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMkI4IDsgIyBNT0RJRklFUiBMRVRURVIgU01BTEwgWQorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAyRTAgOyAjIE1PRElGSUVSIExFVFRFUiBTTUFMTCBHQU1NQQorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAyRTEgOyAjIE1PRElGSUVSIExFVFRFUiBTTUFMTCBMCisjICRwcmUgWVlZICRwb3N0IDw+IFx1MDJFMiA7ICMgTU9ESUZJRVIgTEVUVEVSIFNNQUxMIFMKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUwMkUzIDsgIyBNT0RJRklFUiBMRVRURVIgU01BTEwgWAorIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTAyRTQgOyAjIE1PRElGSUVSIExFVFRFUiBTTUFMTCBSRVZFUlNFRCBHTE9UVEFMIFNUT1AKKyMgJHByZSBZWVkgJHBvc3QgPD4gXHUxRTlBIDsgIyBMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIFJJR0hUIEhBTEYgUklORworIyAkcHJlIFlZWSAkcG9zdCA8PiBcdTIwN0YgOyAjIFNVUEVSU0NSSVBUIExBVElOIFNNQUxMIExFVFRFUiBOCisKKzo6IE5GQyAoTkZEKSA7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9BbnlfUHVibGlzaGluZy50eHQgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0FueV9QdWJsaXNoaW5nLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42YWY5MWVlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9BbnlfUHVibGlzaGluZy50eHQKQEAgLTAsMCArMSwzOCBAQAor77u/Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvcHlyaWdodCAoYykgMTk5OS0yMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisjIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9BdHRpYy9UcmFuc2xpdGVyYXRvcl9BbnlfUHVibGlzaGluZy50eHQsdiAkCisjICREYXRlOiAyMDAxLzEwLzIzIDAwOjIzOjQ2ICQKKyMgJFJldmlzaW9uOiAxLjQgJAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgVGVzdCBjYXNlCisjICJUaGUiICIocXVpY2spIiAoJ2Jyb3duJykgYGZveCcgYCBqdW1wZWQgLS0gICAgICJvdmVyPyIKKworIyBWYXJpYWJsZXMKKworJHNpbmdsZSA9IFwnIDsKKyRzcGFjZSA9ICcgJyA7CiskZG91YmxlID0gXCIgOworJGJhY2sgPSBcYCA7CiskdGFiID0gJ1x1MDAwOCcgOworJG1ha2VSaWdodCA9IFtbOlo6XVs6UHM6XVs6UGk6XSRdIDsKKworIyBmaXggVU5JWCBxdW90ZXMKKworJGJhY2sgJGJhY2sgPiDigJwgOworJGJhY2sgPiDigJggOworCisjIGZpeCB0eXBld3JpdGVyIHF1b3RlcywgYnkgY29udGV4dAorCiskbWFrZVJpZ2h0IHskZG91YmxlfSA8PiDigJwgOworJGRvdWJsZSA8PiDigJ0gOworCiskbWFrZVJpZ2h0IHskc2luZ2xlfSA8PiDigJggOworJHNpbmdsZSA8PiDigJk7CisKKyMgZml4IG11bHRpcGxlIHNwYWNlcyBhbmQgaHlwaGVucworCiskc3BhY2UgeyRzcGFjZX0gPiA7CisnLS0nIDw+IOKAlCA7CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0FyYWJpY19MYXRpbi50eHQgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0FyYWJpY19MYXRpbi50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTc0YzBjZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfQXJhYmljX0xhdGluLnR4dApAQCAtMCwwICsxLDE1MCBAQAor77u/Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvcHlyaWdodCAoYykgMTk5OS0yMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisjIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9BdHRpYy9UcmFuc2xpdGVyYXRvcl9BcmFiaWNfTGF0aW4udHh0LHYgJAorIyAkRGF0ZTogMjAwMi8wNy8xNSAyMzoyNjoyNiAkCisjICRSZXZpc2lvbjogMS4zICQKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIEdlbmVyYWxseSBmb2xsb3dzIFVOR0VHTiA8aHR0cDovL3d3dy5la2kuZWUvd2dycy9yb20xX2FyLnBkZj4KKyMgT2NjYXNpb25hbGx5IGRldmlhdGVzIGluIHRoZSBkaXJlY3Rpb24gb2YgSVNPIDIzMyA8aHR0cDovL2hvbWVwYWdlLm1hYy5jb20vc2lyYmlua3MvcGRmL0FyYWJpYy5wZGY+CisjIGEpIHdoZXJlIHJlcXVpcmVkIGZvciBkaXNhbWJpZ3VhdGlvbi4KKyMgYikgd2l0aCB1bmRlcmRvdCBpbnN0ZWFkIG9mIGNlZGlsbGEgZm9yIGxldHRlciBsaWtlIFNBRCwgc2luY2UKKyMgICAgIHRob3NlIGFyZSBleHBsaWNpdGx5IGluIFVuaWNvZGUgZm9yIHRyYW5zbGl0ZXJhdGlvbi4KKyMgYykgd2l0aCBleHRyYSBub24tQXJhYmljLWxhbmd1YWdlIGxldHRlcnMsIGxpa2UgUEVICisKKyMgRG9lcyAqbm90KiBkbyBhc3NpbWlsYXRpb24gb2YgImFsIiwgbm9yIGh5cGhlbmF0aW9uLgorIyBXaGlsZSBpdCBjb3VsZCBiZSBkb25lLCB3ZSBuZWVkIHRvIGRldGVybWluZSB3aGV0aGVyIGEgcHJlZml4ICJhbCIgY291bGQKKyMgb2NjdXIgb3RoZXIgdGhhbiBhcyB0aGUgZGVmaW5pdGUgYXJ0aWNsZSAoc2luY2Ugbm8gc3BhY2UgaXMgdXNlZCkuCisKKzo6IFtbOkFyYWJpYzpdIFvigI7igb9cdTA2MENcdTA2MUJcdTA2MUZcdTA2NDBcdTA2NEItXHUwNjU1XHUwNjYwLVx1MDY2Q1x1MDZGMC1cdTA2RjlcdUZERkNdXSA7Cis6OiBORktEIChORkMpOworJGRpc2FtYmlnID0gIMyxIDsgCiskZGlzYW1iaWcyID0gIMywIDsKKyR1bmRlciA9ICDMoyA7CisKKyRub3RBYm92ZSA9IFtbOl5jY2M9MDpdJls6XmNjYz0yMzA6XV07CisKKyMgbm9uLWxldHRlcnMKKworINmrIDw+ICcuJyAkZGlzYW1iaWcgOyAjIEFSQUJJQyBERUNJTUFMIFNFUEFSQVRPUgorINmsIDw+ICcsJyAkZGlzYW1iaWcgOyAjIEFSQUJJQyBUSE9VU0FORFMgU0VQQVJBVE9SCisjICDZrSA8PiA7ICMgQVJBQklDIEZJVkUgUE9JTlRFRCBTVEFSIC8vIG5vIG5lZWQgdG8gdHJhbnNsaXRlcmF0ZQorCivYjCA8PiAnLCcgOyAjIEFSQUJJQyBDT01NQQorINibIDw+ICc7JyA7ICMgQVJBQklDIFNFTUlDT0xPTgorINifIDw+ICc/JyA7ICMgQVJBQklDIFFVRVNUSU9OIE1BUksKKyDZqiA8PiAnJScgOyAjIEFSQUJJQyBQRVJDRU5UIFNJR04KKworINuwIDw+IDAgJGRpc2FtYmlnIDsgIyBFWFRFTkRFRCBBUkFCSUMtSU5ESUMgRElHSVQgWkVSTworINuxIDw+IDEgJGRpc2FtYmlnIDsgIyBFWFRFTkRFRCBBUkFCSUMtSU5ESUMgRElHSVQgT05FCisg27IgPD4gMiAkZGlzYW1iaWcgOyAjIEVYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBUV08KKyDbsyA8PiAzICRkaXNhbWJpZyA7ICMgRVhURU5ERUQgQVJBQklDLUlORElDIERJR0lUIFRIUkVFCisg27QgPD4gNCAkZGlzYW1iaWcgOyAjIEVYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBGT1VSCisg27UgPD4gNSAkZGlzYW1iaWcgOyAjIEVYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBGSVZFCisg27YgPD4gNiAkZGlzYW1iaWcgOyAjIEVYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBTSVgKKyDbtyA8PiA3ICRkaXNhbWJpZyA7ICMgRVhURU5ERUQgQVJBQklDLUlORElDIERJR0lUIFNFVkVOCisg27ggPD4gOCAkZGlzYW1iaWcgOyAjIEVYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBFSUdIVAorINu5IDw+IDkgJGRpc2FtYmlnIDsgIyBFWFRFTkRFRCBBUkFCSUMtSU5ESUMgRElHSVQgTklORQorCisg2aAgPD4gMCA7ICMgQVJBQklDLUlORElDIERJR0lUIFpFUk8KKyDZoSA8PiAxIDsgIyBBUkFCSUMtSU5ESUMgRElHSVQgT05FCisg2aIgPD4gMiA7ICMgQVJBQklDLUlORElDIERJR0lUIFRXTworINmjIDw+IDMgOyAjIEFSQUJJQy1JTkRJQyBESUdJVCBUSFJFRQorINmkIDw+IDQgOyAjIEFSQUJJQy1JTkRJQyBESUdJVCBGT1VSCisg2aUgPD4gNSA7ICMgQVJBQklDLUlORElDIERJR0lUIEZJVkUKKyDZpiA8PiA2IDsgIyBBUkFCSUMtSU5ESUMgRElHSVQgU0lYCisg2acgPD4gNyA7ICMgQVJBQklDLUlORElDIERJR0lUIFNFVkVOCisg2aggPD4gOCA7ICMgQVJBQklDLUlORElDIERJR0lUIEVJR0hUCisg2akgPD4gOSA7ICMgQVJBQklDLUlORElDIERJR0lUIE5JTkUKKworIyBsZXR0ZXJzCisKKyMgbG9uZyB2b3dlbHMKKyAg2Y7Ypzw+IGHMhCA7ICMgQVJBQklDIEZBVEhBLCBBUkFCSUMgTEVUVEVSIEFMRUYKKyAg2Y/ZiCA8PiB1zIQgOyAjIEFSQUJJQyBEQU1NQSwgQVJBQklDIExFVFRFUiBXQVcKKyDZkNmKIDw+IGnMhCA7ICMgQVJBQklDIEtBU1JBLCBBUkFCSUMgTEVUVEVSIFlFSAorCisjIGxvbmdlciBpdGVtcyBtb3ZlZCBoZXJlIHRvIHByZXZlbnQgbWFza2luZworINirIDw+IHQgaCAkZGlzYW1iaWcgOyAjIEFSQUJJQyBMRVRURVIgVEhFSAorINiwIDw+IGQgaCAkZGlzYW1iaWcgOyAjIEFSQUJJQyBMRVRURVIgVEhBTAorINi0IDw+IHMgaCAkZGlzYW1iaWcgOyAjIEFSQUJJQyBMRVRURVIgU0hFRU4KKyDYtSA8PiBzICR1bmRlciA7ICMgQVJBQklDIExFVFRFUiBTQUQKKyDYtiA8PiBkICR1bmRlciA7ICMgQVJBQklDIExFVFRFUiBEQUQKKyDYtyA8PiB0ICR1bmRlciA7ICMgQVJBQklDIExFVFRFUiBUQUgKKyDYuCA8PiB6ICR1bmRlciA7ICMgQVJBQklDIExFVFRFUiBaQUgKKyDYuiA8PiBnIGggJGRpc2FtYmlnIDsgIyBBUkFCSUMgTEVUVEVSIEdIQUlOCisKKyMgV0FSTklORzogc3BlY2lhbCBjYXNlCisjIDx0LCB1bWxhdXQsIGhhbGYtcmluZyBiZWxvdz4gd2lsbCBiZSBjYW5vbmljYWxseSBvcmRlcmVkIGFzIDx0LCBoYWxmLXJpbmcgYmVsb3csIHVtbGF1dD4KKyMgc28gb24gdGhlIHJldHVybiwgd2UgaGF2ZSB0byBza2lwIG92ZXIgKGJ1dCBwcmVzZXJ2ZSkgdGhlIGhhbGYtcmluZyBiZWxvdyAob3Igb3RoZXJzIGxpa2UgaXQpCisjINip2ZUgPCB0zLnMiCA7ICMgTEFUSU4gU01BTEwgTEVUVEVSIFQsIENPTUJJTklORyBSSUdIVCBIQUxGIFJJTkcgQkVMT1csIENPTUJJTklORyBESUFFUkVTSVMKKworINipIDw+IHQgXHUwMzA4IDsgIyBBUkFCSUMgTEVUVEVSIFRFSCBNQVJCVVRBCisg2KkgfCAkMSA8IHQgKCRub3RBYm92ZSspIFx1MDMwOCA7ICMgQVJBQklDIExFVFRFUiBURUggTUFSQlVUQQorCisjIG5vbi1BcmFiaWMgbGFuZ3VhZ2UKKyDamCA8PiB6IGggJGRpc2FtYmlnIDsgIyBBUkFCSUMgTEVUVEVSIEpFSAorINqtIDw+IG4gJGRpc2FtYmlnIGcgOyAjIEFSQUJJQyBMRVRURVIgTkcKKyDbiyA8PiB2ICRkaXNhbWJpZyA7ICMgQVJBQklDIExFVFRFUiBWRQorINuMIDw+IHkgJGRpc2FtYmlnMiA7ICMgQVJBQklDIExFVFRFUiBGQVJTSSBZRUgKKworIyBBcmFiaWMgbGFuZ3VhZ2UKKworINihIDw+IMq+IDsgIyBBUkFCSUMgTEVUVEVSIEhBTVpBCisg2KcgPD4gYSAkdW5kZXI7ICMgQVJBQklDIExFVFRFUiBBTEVGCisg2KggPD4gYiA7ICMgQVJBQklDIExFVFRFUiBCRUgKKyDYqiA8PiB0IDsgIyBBUkFCSUMgTEVUVEVSIFRFSAorINisIDw+IGogOyAjIEFSQUJJQyBMRVRURVIgSkVFTQorINitIDw+IGggJHVuZGVyIDsgIyBBUkFCSUMgTEVUVEVSIEhBSAorINiuIDw+IGsgaCAkZGlzYW1iaWcgOyAjIEFSQUJJQyBMRVRURVIgS0hBSAorINivIDw+IGQgOyAjIEFSQUJJQyBMRVRURVIgREFMCisg2LEgPD4gciA7ICMgQVJBQklDIExFVFRFUiBSRUgKKyDYsiA8PiB6IDsgIyBBUkFCSUMgTEVUVEVSIFpBSU4KKyDYsyA8PiBzIDsgIyBBUkFCSUMgTEVUVEVSIFNFRU4KKyDYuSA8PiDKvyA7ICMgQVJBQklDIExFVFRFUiBBSU4KKyAg2YAgPiA7ICMgQVJBQklDIFRBVFdFRUwKKyDZgSA8PiBmIDsgIyBBUkFCSUMgTEVUVEVSIEZFSAorINmCIDw+IHEgOyAjIEFSQUJJQyBMRVRURVIgUUFGCisg2YMgPD4gayA7ICMgQVJBQklDIExFVFRFUiBLQUYKKyDZhCA8PiBsIDsgIyBBUkFCSUMgTEVUVEVSIExBTQorINmFIDw+IG0gOyAjIEFSQUJJQyBMRVRURVIgTUVFTQorINmGIDw+IG4gOyAjIEFSQUJJQyBMRVRURVIgTk9PTgorINmHIDw+IGggOyAjIEFSQUJJQyBMRVRURVIgSEVICisg2YggPD4gdyA7ICMgQVJBQklDIExFVFRFUiBXQVcKKyDZiSA8PiB5ICRkaXNhbWJpZyA7ICMgQVJBQklDIExFVFRFUiBBTEVGIE1BS1NVUkEKKyDZiiA8PiB5IDsgIyBBUkFCSUMgTEVUVEVSIFlFSAorINmLIDw+IGHigb8gOyAjIEFSQUJJQyBGQVRIQVRBTgorINmMIDw+IHXigb8gOyAjIEFSQUJJQyBEQU1NQVRBTgorINmNIDw+IGnigb8gOyAjIEFSQUJJQyBLQVNSQVRBTgorINmOIDw+IGEgOyAjIEFSQUJJQyBGQVRIQQorINmPIDw+IHUgOyAjIEFSQUJJQyBEQU1NQQorINmQIDw+IGkgOyAjIEFSQUJJQyBLQVNSQQorINmRIDw+ICAgzIMgOyAjIEFSQUJJQyBTSEFEREEKKyDZkiA8PiAgIMyKIDsgIyBBUkFCSUMgU1VLVU4KKworIyBzcGVjaWFsIGNvbWJpbmluZyBtYXJrcworINmTIDw+ICDMgiA7ICMgQVJBQklDIE1BRERBSCBBQk9WRQorINmUIDw+ICDMiSA7ICMgQVJBQklDIEhBTVpBIEFCT1ZFCisg2ZUgPD4gIMy5IDsgIyBBUkFCSUMgSEFNWkEgQkVMT1cKKworIyBTb21lIG5vbi1BcmFiaWMgbGFuZ3VhZ2UgKG5vdCBpbiBVTkdFR04pCisg2b4gPD4gcCA7ICMgQVJBQklDIExFVFRFUiBQRUgKKyDahiA8PiBjIGggJGRpc2FtYmlnIDsgIyBBUkFCSUMgTEVUVEVSIFRDSEVICisg2qQgPD4gdiA7ICMgQVJBQklDIExFVFRFUiBWRUgKKyMg2qUgPD4gdiAkZGlzYW1iaWcgOyAjIEFSQUJJQyBMRVRURVIgRkVIIFdJVEggVEhSRUUgRE9UUyBCRUxPVworIyDaoiA8PiBmICRkaXNhbWJpZyA7ICMgQVJBQklDIExFVFRFUiBGRUggV0lUSCBET1QgTU9WRUQgQkVMT1cKKyDaryA8PiBnIDsgIyBBUkFCSUMgTEVUVEVSIEdBRgorCisjIGZhbGxiYWNrcworfCBzIDwgYyB9IFtlaXldOworfCBrIDwgYyA7Cit8IGkgPCBlIDsKK3wgdSA8IG8gOworfCBrcyA8IHggOworfCBuIDwg4oCO4oG/OworCis6OiAobG93ZXIpIDsKKzo6TkZDIChORkQpOworOjogKCBbWzpMYXRpbjpdIFslLC4wLTk7P1x1MDJCRS1cdTAyQkZcdTAzMDItXHUwMzA0XHUwMzA4LVx1MDMwQVx1MDMyM1x1MDMzMC1cdTAzMzFcdTAzMzlcdTAzN0VdXSApOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfQmVuZ2FsaV9JbnRlckluZGljLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfQmVuZ2FsaV9JbnRlckluZGljLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hYTM3NzQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9CZW5nYWxpX0ludGVySW5kaWMudHh0CkBAIC0wLDAgKzEsMTA1IEBACisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0F0dGljL1RyYW5zbGl0ZXJhdG9yX0JlbmdhbGlfSW50ZXJJbmRpYy50eHQsdiAkCisjICREYXRlOiAyMDAyLzA4LzE0IDAwOjQwOjU4ICQKKyMgJFJldmlzaW9uOiAxLjEwICQKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIEJlbmdhbGktSW50ZXJJbmRpYworCitcdTA5QzdcdTA5QkU+XHVFMDRCOyAjIFZPV0VMIFNJR04gTworXHUwOUM3XHUwOUQ3Plx1RTA0QzsgIyBWT1dFTCBTSUdOIEFVCitcdTA5ODE+XHVFMDAxOyAjIFNJR04gQ0FORFJBQklORFUKK1x1MDk4Mj5cdUUwMDI7ICMgU0lHTiBBTlVTVkFSQQorXHUwOTgzPlx1RTAwMzsgIyBTSUdOIFZJU0FSR0EKK1x1MDk4NT5cdUUwMDU7ICMgTEVUVEVSIEEKK1x1MDk4Nj5cdUUwMDY7ICMgTEVUVEVSIEFBCitcdTA5ODc+XHVFMDA3OyAjIExFVFRFUiBJCitcdTA5ODg+XHVFMDA4OyAjIExFVFRFUiBJSQorXHUwOTg5Plx1RTAwOTsgIyBMRVRURVIgVQorXHUwOThBPlx1RTAwQTsgIyBMRVRURVIgVVUKK1x1MDk4Qj5cdUUwMEI7ICMgTEVUVEVSIFZPQ0FMSUMgUgorXHUwOThDPlx1RTAwQzsgIyBMRVRURVIgVk9DQUxJQyBMCitcdTA5OEY+XHVFMDBGOyAjIExFVFRFUiBFCitcdTA5OTA+XHVFMDEwOyAjIExFVFRFUiBBSQorXHUwOTkzPlx1RTAxMzsgIyBMRVRURVIgTworXHUwOTk0Plx1RTAxNDsgIyBMRVRURVIgQVUKK1x1MDk5NT5cdUUwMTU7ICMgTEVUVEVSIEtBCitcdTA5OTY+XHVFMDE2OyAjIExFVFRFUiBLSEEKK1x1MDk5Nz5cdUUwMTc7ICMgTEVUVEVSIEdBCitcdTA5OTg+XHVFMDE4OyAjIExFVFRFUiBHSEEKK1x1MDk5OT5cdUUwMTk7ICMgTEVUVEVSIE5HQQorXHUwOTlBPlx1RTAxQTsgIyBMRVRURVIgQ0EKK1x1MDk5Qj5cdUUwMUI7ICMgTEVUVEVSIENIQQorXHUwOTlDPlx1RTAxQzsgIyBMRVRURVIgSkEKK1x1MDk5RD5cdUUwMUQ7ICMgTEVUVEVSIEpIQQorXHUwOTlFPlx1RTAxRTsgIyBMRVRURVIgTllBCitcdTA5OUY+XHVFMDFGOyAjIExFVFRFUiBUVEEKK1x1MDlBMD5cdUUwMjA7ICMgTEVUVEVSIFRUSEEKK1x1MDlBMT5cdUUwMjE7ICMgTEVUVEVSIEREQQorXHUwOUEyPlx1RTAyMjsgIyBMRVRURVIgRERIQQorXHUwOUEzPlx1RTAyMzsgIyBMRVRURVIgTk5BCitcdTA5QTQ+XHVFMDI0OyAjIExFVFRFUiBUQQorXHUwOUE1Plx1RTAyNTsgIyBMRVRURVIgVEhBCitcdTA5QTY+XHVFMDI2OyAjIExFVFRFUiBEQQorXHUwOUE3Plx1RTAyNzsgIyBMRVRURVIgREhBCitcdTA5QTg+XHVFMDI4OyAjIExFVFRFUiBOQQorXHUwOUFBPlx1RTAyQTsgIyBMRVRURVIgUEEKK1x1MDlBQj5cdUUwMkI7ICMgTEVUVEVSIFBIQQorXHUwOUFDPlx1RTAyQzsgIyBMRVRURVIgQkEKK1x1MDlBRD5cdUUwMkQ7ICMgTEVUVEVSIEJIQQorXHUwOUFFPlx1RTAyRTsgIyBMRVRURVIgTUEKK1x1MDlBRj5cdUUwMkY7ICMgTEVUVEVSIFlBCitcdTA5QjA+XHVFMDMwOyAjIExFVFRFUiBSQQorXHUwOUIyPlx1RTAzMjsgIyBMRVRURVIgTEEKK1x1MDlCNj5cdUUwMzY7ICMgTEVUVEVSIFNIQQorXHUwOUI3Plx1RTAzNzsgIyBMRVRURVIgU1NBCitcdTA5Qjg+XHVFMDM4OyAjIExFVFRFUiBTQQorXHUwOUI5Plx1RTAzOTsgIyBMRVRURVIgSEEKK1x1MDlCQz5cdUUwM0M7ICMgU0lHTiBOVUtUQQorXHUwOUJFPlx1RTAzRTsgIyBWT1dFTCBTSUdOIEFBCitcdTA5QkY+XHVFMDNGOyAjIFZPV0VMIFNJR04gSQorXHUwOUMwPlx1RTA0MDsgIyBWT1dFTCBTSUdOIElJCitcdTA5QzE+XHVFMDQxOyAjIFZPV0VMIFNJR04gVQorXHUwOUMyPlx1RTA0MjsgIyBWT1dFTCBTSUdOIFVVCitcdTA5QzM+XHVFMDQzOyAjIFZPV0VMIFNJR04gVk9DQUxJQyBSCitcdTA5QzQ+XHVFMDQ0OyAjIFZPV0VMIFNJR04gVk9DQUxJQyBSUgorXHUwOUM3Plx1RTA0NzsgIyBWT1dFTCBTSUdOIEUKK1x1MDlDOD5cdUUwNDg7ICMgVk9XRUwgU0lHTiBBSQorXHUwOUNCPlx1RTA0QjsKK1x1MDlDQz5cdUUwNEM7CisjCitcdTA5Q0Q+XHVFMDREOyAjIFNJR04gVklSQU1BCitcdTA5RDc+XHVFMDU3OyAjIEFVIExFTkdUSCBNQVJLCisjCitcdTA5RTA+XHVFMDYwOyAjIExFVFRFUiBWT0NBTElDIFJSCitcdTA5RTE+XHVFMDYxOyAjIExFVFRFUiBWT0NBTElDIExMCitcdTA5RTI+XHVFMDYyOyAjIFZPV0VMIFNJR04gVk9DQUxJQyBMCitcdTA5RTM+XHVFMDYzOyAjIFZPV0VMIFNJR04gVk9DQUxJQyBMTAorXHUwOUU2Plx1RTA2NjsgIyBESUdJVCBaRVJPCitcdTA5RTc+XHVFMDY3OyAjIERJR0lUIE9ORQorXHUwOUU4Plx1RTA2ODsgIyBESUdJVCBUV08KK1x1MDlFOT5cdUUwNjk7ICMgRElHSVQgVEhSRUUKK1x1MDlFQT5cdUUwNkE7ICMgRElHSVQgRk9VUgorXHUwOUVCPlx1RTA2QjsgIyBESUdJVCBGSVZFCitcdTA5RUM+XHVFMDZDOyAjIERJR0lUIFNJWAorXHUwOUVEPlx1RTA2RDsgIyBESUdJVCBTRVZFTgorXHUwOUVFPlx1RTA2RTsgIyBESUdJVCBFSUdIVAorXHUwOUVGPlx1RTA2RjsgIyBESUdJVCBOSU5FCitcdTA5RjA+XHVlMDcwOyAjICBCZW5nYWxpLUludGVySW5kaWM6IExFVFRFUiBSQSBXSVRIIE1JRERMRSBESUFHT05BTAorXHUwOUYxPlx1ZTA3MTsgIyBCZW5nYWxpLUludGVySW5kaWM6IExFVFRFUiBSQSBXSVRIIExPV0VSIERJQUdPTkFMCitcdTA5RjI+OyAgICAgICAjIFVOTUFQUEVEIEJlbmdhbGktSW50ZXJJbmRpYzogUlVQRUUgTUFSSworXHUwOUYzPjsgICAgICAgIyBVTk1BUFBFRCBCZW5nYWxpLUludGVySW5kaWM6IFJVUEVFIFNJR04KK1x1MDlGND47ICAgICAgICMgVU5NQVBQRUQgQmVuZ2FsaS1JbnRlckluZGljOiBDVVJSRU5DWSBOVU1FUkFUT1IgT05FCitcdTA5RjU+OyAgICAgICAjIFVOTUFQUEVEIEJlbmdhbGktSW50ZXJJbmRpYzogQ1VSUkVOQ1kgTlVNRVJBVE9SIFRXTworXHUwOUY2PjsgICAgICAgIyBVTk1BUFBFRCBCZW5nYWxpLUludGVySW5kaWM6IENVUlJFTkNZIE5VTUVSQVRPUiBUSFJFRQorXHUwOUY3PjsgICAgICAgIyBVTk1BUFBFRCBCZW5nYWxpLUludGVySW5kaWM6IENVUlJFTkNZIE5VTUVSQVRPUiBGT1VSCitcdTA5Rjg+OyAgICAgICAjIFVOTUFQUEVEIEJlbmdhbGktSW50ZXJJbmRpYzogQ1VSUkVOQ1kgTlVNRVJBVE9SIE9ORSBMRVNTIFRIQU4gVEhFIERFTk9NSU5BVE9SCitcdTA5Rjk+OyAgICAgICAjIFVOTUFQUEVEIEJlbmdhbGktSW50ZXJJbmRpYzogQ1VSUkVOQ1kgREVOT01JTkFUT1IgU0lYVEVFTgorXHUwOUZBPlx1ZTA3QTsgIyBJU1NIQVIKK1x1MDk2ND5cdWUwNjQ7ICAgICAgICAjIERBTkRBCitcdTA5NjU+XHVlMDY1OyAgICAgICAgIyBET1VCTEUgREFOREEKKyMgICAgOjogTkZDIChORkQpIDsKKyMgZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0N5cmlsbGljX0xhdGluLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfQ3lyaWxsaWNfTGF0aW4udHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjk1M2VjNGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0N5cmlsbGljX0xhdGluLnR4dApAQCAtMCwwICsxLDMxMCBAQAor77u/Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvcHlyaWdodCAoYykgMTk5OS0yMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisjIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9BdHRpYy9UcmFuc2xpdGVyYXRvcl9DeXJpbGxpY19MYXRpbi50eHQsdiAkCisjICREYXRlOiAyMDAxLzEyLzAxIDAwOjE0OjU1ICQKKyMgJFJldmlzaW9uOiAxLjkgJAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFRPRE86IGFkZCByZW1haW5pbmcgY2hhcmFjdGVycworIyBTaG91bGQgYWRkIHZhcmlhbnRzIGZvciBSdXNzaWFuLUVuZ2xpc2gsIFJ1c3NpYW4tR2VybWFuCisjIFRob3NlIGNhbiB1c2UgdGhpcyBhcyBhIGJhc2UsIGFuZCB0aGVuIHJlbWFwIGNhc2VzCisjIGxpa2UgYSAkaGF0IHRvIHlhIG9yIGphLgorCisjIDo6IFtcdTAwMDAtXHUwMDdFIFx1MDJCOSBcdTAyQkEgWzpDeXJpbGxpYzpdIFs6TGF0aW46XSBbOm5vbnNwYWNpbmcgbWFyazpdXSA7CisjIyMgV0FSTklORywgXHUwMzA4IG11c3QgYmUgYWRkZWQgdG8gdGhlIGdlbmVyYXRlZCBmaWx0ZXJzLCBpbiBib3RoIGRpcmVjdGlvbnMgIyMjCisjIE1JTklNQUwgRklMVEVSCis6OiBbXHUwMzA4XHUwMTAyLVx1MDEwM1x1MDExNC1cdTAxMTVcdTAxMUUtXHUwMTFGXHUwMTJDLVx1MDEyRFx1MDE0RS1cdTAxNEZcdTAxNkMtXHUwMTZEXHUwMzA2XHUwNDAwLVx1MDQ1Rlx1MDQ5MC1cdTA0OTVcdTA0OTgtXHUwNDk5XHUwNEMxLVx1MDRDMlx1MDREMC1cdTA0REZcdTA0RTItXHUwNEU3XHUwNEVDLVx1MDRGNVx1MDRGOC1cdTA0RjlcdTFFMUMtXHUxRTFEXHUxRUFFLVx1MUVCN1x1MUZCMFx1MUZCOFx1MUZEMFx1MUZEOFx1MUZFMFx1MUZFOF0gOworOjogTkZEIChORkMpIDsKKworJG1vZHByaW1lID0gXHUwMkI5OworJG1vZHByaW1lMiA9IFx1MDJCQTsKKworJGdyYXZlID0gXHUwMzAwOworJGFjdXRlID0gXHUwMzAxOworJGhhdCA9IFx1MDMwMjsKKyRicmV2ZSA9IFx1MDMwNiA7CiskZG90ID0gXHUwMzA3IDsKKyRjYXJvbiA9IFx1MDMwQyA7CiskY29tbWEgPSBcdTAzMjYgOworJHVuZGVyID0gXHUwMzMxIDsKKworIyBtb3ZlIHVwIHNvIG5vdCBtYXNrZWQKKwor0Y8gPD4gYSAgJGhhdCA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFlBCivQryA8PiAgQSAkaGF0IDsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBZQQorCivRhyA8PiBjICRjYXJvbiA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIENIRQor0KcgPD4gQyAkY2Fyb247ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQ0hFCisjINK3IDw+IFhYWCA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIENIRSBXSVRIIERFU0NFTkRFUgorIyDStiA8PiBYWFggOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIENIRSBXSVRIIERFU0NFTkRFUgorIyDTjCA8PiBYWFggOyAjIENZUklMTElDIFNNQUxMIExFVFRFUiBLSEFLQVNTSUFOIENIRQorIyDTiyA8PiBYWFggOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIEtIQUtBU1NJQU4gQ0hFCisjINK5IDw+IFhYWCA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIENIRSBXSVRIIFZFUlRJQ0FMIFNUUk9LRQorIyDSuCA8PiBYWFggOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIENIRSBXSVRIIFZFUlRJQ0FMIFNUUk9LRQorCivRjSA8PiBlICRhY3V0ZTsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgRQor0K0gPD4gRSAkYWN1dGU7ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRQor0ZQgPD4gZSAkaGF0OyAjIENZUklMTElDIFNNQUxMIExFVFRFUiBVS1JBSU5JQU4gSUUKK9CEIDw+IEUgJGhhdDsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBVS1JBSU5JQU4gSUUKKwor0YggPD4gcyAkY2Fyb24gOyAjIENZUklMTElDIFNNQUxMIExFVFRFUiBTSEEKK9CoIDw+IFMgJGNhcm9uIDsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTSEEKK9GJIDw+IHMgJGhhdCA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFNIQ0hBCivQqSA8PiBTICRoYXQ7ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0hDSEEKKwor0ZUgPD4geiAkaGF0IDsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgRFpFCivQhSA8PiBaICRoYXQ7ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRFpFCisjINOhIDw+IFhYWCA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEFCS0hBU0lBTiBEWkUKKyMg06AgPD4gWFhYIDsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBBQktIQVNJQU4gRFpFCisKK9GOIDw+IHUgJGhhdCA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFlVCivQriA8PiAgVSAkaGF0IDsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBZVQorCivRliA8PiBpICRhY3V0ZTsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgQllFTE9SVVNTSUFOLVVLUkFJTklBTiBJCivQhiA8PiBJICRhY3V0ZTsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBCWUVMT1JVU1NJQU4tVUtSQUlOSUFOIEkKK9GYIDw+IGogJGNhcm9uOyAjIENZUklMTElDIFNNQUxMIExFVFRFUiBKRQor0IggPD4gSiAkY2Fyb247ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSkUKKwor0ZkgPD4gbCAkaGF0IDsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgTEpFCivQiSA8PiBMICRoYXQgOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIExKRQor0ZogPD4gbiAkaGF0IDsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgTkpFCivQiiA8PiBOICRoYXQgOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIE5KRQorCivRmyA8PiBjICRhY3V0ZSA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFRTSEUKK9CLIDw+IEMgJGFjdXRlIDsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBUU0hFCisKK9GfIDw+IGQgJGhhdCA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIERaSEUKK9CPIDw+IEQgJGhhdCA7ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRFpIRQorCisjIE5vcm1hbCBvcmRlcgorCivQsCA8PiBhIDsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgQQor0JAgPD4gQSA7ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQQor05kgPD4gIFx1MDI1OSA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFNDSFdBCivTmCA8PiBcdTAxOEYgOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIFNDSFdBCivTlSA8PiBcdTAwRTYgOyAjIENZUklMTElDIFNNQUxMIExJR0FUVVJFIEEgSUUKK9OUIDw+IFx1MDBDNiA7ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMSUdBVFVSRSBBIElFCivQsSA8PiBiIDsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgQkUKK9CRIDw+IEIgOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIEJFCivQsiA8PiB2IDsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgVkUKK9CSIDw+IFYgOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIFZFCisKK9KRIDw+IGcgJGdyYXZlIDsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgR0hFIFdJVEggVVBUVVJOCivSkCA8PiBHICRncmF2ZSA7ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgR0hFIFdJVEggVVBUVVJOCivSkyA8PiBnICRkb3QgOyAjIENZUklMTElDIFNNQUxMIExFVFRFUiBHSEUgV0lUSCBTVFJPS0UKK9KSIDw+IEcgJGRvdDsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBHSEUgV0lUSCBTVFJPS0UKK9KVIDw+IGcgJGJyZXZlOyAjIENZUklMTElDIFNNQUxMIExFVFRFUiBHSEUgV0lUSCBNSURETEUgSE9PSwor0pQgPD4gRyAkYnJldmU7ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgR0hFIFdJVEggTUlERExFIEhPT0sKK9CzIDw+IGcgOyAjIENZUklMTElDIFNNQUxMIExFVFRFUiBHSEUKK9CTIDw+IEcgOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIEdIRQorCivQtCA8PiBkOyAjIENZUklMTElDIFNNQUxMIExFVFRFUiBERQor0JQgPD4gRDsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBERQor0ZIgPD4gxJEgOyAjIENZUklMTElDIFNNQUxMIExFVFRFUiBESkUKK9CCIDw+IMSQIDsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBESkUKK9KZIDw+IHogJGNvbW1hIDsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgWkUgV0lUSCBERVNDRU5ERVIKK9KYIDw+IFogJGNvbW1hIDsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBaRSBXSVRIIERFU0NFTkRFUgor0LUgPD4gZSA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIElFCivQlSA8PiBFOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIElFCisKK9C2IDw+IHogJGNhcm9uOyAjIENZUklMTElDIFNNQUxMIExFVFRFUiBaSEUKK9CWIDw+IFogJGNhcm9uOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIFpIRQorCisjINKXIDw+IFhYWCA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFpIRSBXSVRIIERFU0NFTkRFUgorIyDSliA8PiBYWFggOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIFpIRSBXSVRIIERFU0NFTkRFUgorCivQtyA8PiB6IDsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgWkUKK9CXIDw+IFo7ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWkUKKwor0LjMhiA8PiBqIDsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgSQor0JjMhiA8PiBKIDsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJCivQuCA8PiBpIDsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgSQor0JggPD4gSSA7ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSQorCivQuiA8PiBrIDsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgS0EKK9CaIDw+IEs7ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0EKKworIyDSmyA8PiBYWFggOyAjIENZUklMTElDIFNNQUxMIExFVFRFUiBLQSBXSVRIIERFU0NFTkRFUgorIyDSmiA8PiBYWFggOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIEtBIFdJVEggREVTQ0VOREVSCisjINOEIDw+IFhYWCA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEtBIFdJVEggSE9PSworIyDTgyA8PiBYWFggOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIEtBIFdJVEggSE9PSworIyDSoSA8PiBYWFggOyAjIENZUklMTElDIFNNQUxMIExFVFRFUiBCQVNIS0lSIEtBCisjINKgIDw+IFhYWCA7ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQkFTSEtJUiBLQQorIyDSnyA8PiBYWFggOyAjIENZUklMTElDIFNNQUxMIExFVFRFUiBLQSBXSVRIIFNUUk9LRQorIyDSniA8PiBYWFggOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIEtBIFdJVEggU1RST0tFCisjINKdIDw+IFhYWCA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEtBIFdJVEggVkVSVElDQUwgU1RST0tFCisjINKcIDw+IFhYWCA7ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0EgV0lUSCBWRVJUSUNBTCBTVFJPS0UKK9C7IDw+IGwgOyAjIENZUklMTElDIFNNQUxMIExFVFRFUiBFTAor0JsgPD4gTDsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFTAorCivQvCA8PiBtIDsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgRU0KK9CcIDw+IE0gOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIEVNCivQvSA8PiBuIDsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgRU4KK9CdIDw+IE47ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRU4KKyMg0qMgPD4gWFhYIDsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgRU4gV0lUSCBERVNDRU5ERVIKKyMg0qIgPD4gWFhYIDsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFTiBXSVRIIERFU0NFTkRFUgorIyDTiCA8PiBYWFggOyAjIENZUklMTElDIFNNQUxMIExFVFRFUiBFTiBXSVRIIEhPT0sKKyMg04cgPD4gWFhYIDsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFTiBXSVRIIEhPT0sKKyMg0qUgPD4gWFhYIDsgIyBDWVJJTExJQyBTTUFMTCBMSUdBVFVSRSBFTiBHSEUKKyMg0qQgPD4gWFhYIDsgIyBDWVJJTExJQyBDQVBJVEFMIExJR0FUVVJFIEVOIEdIRQorCivQviA8PiBvIDsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgTwor0J4gPD4gTyA7ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgTworIyDTqSA8PiBYWFggOyAjIENZUklMTElDIFNNQUxMIExFVFRFUiBCQVJSRUQgTworIyDTqCA8PiBYWFggOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIEJBUlJFRCBPCivQvyA8PiBwIDsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgUEUKK9CfIDw+IFAgOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIFBFCisjINKnIDw+IFhYWCA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFBFIFdJVEggTUlERExFIEhPT0sKKyMg0qYgPD4gWFhYIDsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBQRSBXSVRIIE1JRERMRSBIT09LCisjINKBIDw+IFhYWCA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEtPUFBBCisjINKAIDw+IFhYWCA7ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS09QUEEKK9GAIDw+IHIgOyAjIENZUklMTElDIFNNQUxMIExFVFRFUiBFUgor0KAgPD4gUiA7ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRVIKKyMg0o8gPD4gWFhYIDsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgRVIgV0lUSCBUSUNLCisjINKOIDw+IFhYWCA7ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRVIgV0lUSCBUSUNLCivRgSA8PiBzIDsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgRVMKK9ChIDw+IFMgOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIEVTCisjINKrIDw+IFhYWCA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEVTIFdJVEggREVTQ0VOREVSCisjINKqIDw+IFhYWCA7ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRVMgV0lUSCBERVNDRU5ERVIKK9GCIDw+IHQgOyAjIENZUklMTElDIFNNQUxMIExFVFRFUiBURQor0KIgPD4gVCA7ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVEUKKyMg0q0gPD4gWFhYIDsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgVEUgV0lUSCBERVNDRU5ERVIKKyMg0qwgPD4gWFhYIDsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBURSBXSVRIIERFU0NFTkRFUgorCivRgyA8PiB1IDsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgVQor0KMgPD4gVSA7ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVQorIyDSryA8PiBYWFggOyAjIENZUklMTElDIFNNQUxMIExFVFRFUiBTVFJBSUdIVCBVCisjINKuIDw+IFhYWCA7ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU1RSQUlHSFQgVQorIyDSsSA8PiBYWFggOyAjIENZUklMTElDIFNNQUxMIExFVFRFUiBTVFJBSUdIVCBVIFdJVEggU1RST0tFCisjINKwIDw+IFhYWCA7ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU1RSQUlHSFQgVSBXSVRIIFNUUk9LRQorIyDRuSA8PiBYWFggOyAjIENZUklMTElDIFNNQUxMIExFVFRFUiBVSworIyDRuCA8PiBYWFggOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIFVLCivRhCA8PiBmIDsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgRUYKK9CkIDw+IEYgOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIEVGCivRhSA8PiBoIDsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgSEEKK9ClIDw+IEg7ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSEEKKyMg0rMgPD4gWFhYIDsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgSEEgV0lUSCBERVNDRU5ERVIKKyMg0rIgPD4gWFhYIDsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBIQSBXSVRIIERFU0NFTkRFUgorIyDSuyA8PiBYWFggOyAjIENZUklMTElDIFNNQUxMIExFVFRFUiBTSEhBCisjINK6IDw+IFhYWCA7ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0hIQQorIyDRoSA8PiBYWFggOyAjIENZUklMTElDIFNNQUxMIExFVFRFUiBPTUVHQQorIyDRoCA8PiBYWFggOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIE9NRUdBCisjING/IDw+IFhYWCA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIE9UCisjING+IDw+IFhYWCA7ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgT1QKKyMg0b0gPD4gWFhYIDsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBUSVRMTworIyDRvCA8PiBYWFggOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggVElUTE8KKyMg0bsgPD4gWFhYIDsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgUk9VTkQgT01FR0EKKyMg0bogPD4gWFhYIDsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBST1VORCBPTUVHQQor0YYgPD4gYyA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFRTRQor0KYgPD4gQzsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBUU0UKKyMg0rUgPD4gWFhYIDsgIyBDWVJJTExJQyBTTUFMTCBMSUdBVFVSRSBURSBUU0UKKyMg0rQgPD4gWFhYIDsgIyBDWVJJTExJQyBDQVBJVEFMIExJR0FUVVJFIFRFIFRTRQorCisjINK9IDw+IFhYWCA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEFCS0hBU0lBTiBDSEUKKyMg0rwgPD4gWFhYIDsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBBQktIQVNJQU4gQ0hFCisjINK/IDw+IFhYWCA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEFCS0hBU0lBTiBDSEUgV0lUSCBERVNDRU5ERVIKKyMg0r4gPD4gWFhYIDsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBBQktIQVNJQU4gQ0hFIFdJVEggREVTQ0VOREVSCisKKwor0KogPD4gJG1vZHByaW1lMiAkdW5kZXIgOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIEhBUkQgU0lHTgor0YogPD4gICRtb2RwcmltZTIgOyAjIENZUklMTElDIFNNQUxMIExFVFRFUiBIQVJEIFNJR04KK9CsIDw+ICRtb2RwcmltZSAkdW5kZXIgOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIFNPRlQgU0lHTgor0YwgPD4gICRtb2RwcmltZSA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFNPRlQgU0lHTgorCivRiyA8PiB5IDsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgWUVSVQor0KsgPD4gWSA7ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWUVSVQorCisjINKNIDw+IFhYWCA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFNFTUlTT0ZUIFNJR04KKyMg0owgPD4gWFhYIDsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTRU1JU09GVCBTSUdOCisjINGjIDw+IFhYWCA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFlBVAorIyDRoiA8PiBYWFggOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIFlBVAorCisjINGlIDw+IFhYWCA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIElPVElGSUVEIEUKKyMg0aQgPD4gWFhYIDsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJT1RJRklFRCBFCisjINGnIDw+IFhYWCA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIExJVFRMRSBZVVMKKyMg0aYgPD4gWFhYIDsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBMSVRUTEUgWVVTCisjINGrIDw+IFhYWCA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEJJRyBZVVMKKyMg0aogPD4gWFhYIDsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBCSUcgWVVTCisjINGpIDw+IFhYWCA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIElPVElGSUVEIExJVFRMRSBZVVMKKyMg0aggPD4gWFhYIDsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJT1RJRklFRCBMSVRUTEUgWVVTCisjINGtIDw+IFhYWCA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIElPVElGSUVEIEJJRyBZVVMKKyMg0awgPD4gWFhYIDsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJT1RJRklFRCBCSUcgWVVTCisjINGvIDw+IFhYWCA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEtTSQorIyDRriA8PiBYWFggOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIEtTSQorIyDRsSA8PiBYWFggOyAjIENZUklMTElDIFNNQUxMIExFVFRFUiBQU0kKKyMg0bAgPD4gWFhYIDsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBQU0kKKyMg0bMgPD4gWFhYIDsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgRklUQQorIyDRsiA8PiBYWFggOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIEZJVEEKKyMg0bUgPD4gWFhYIDsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgSVpISVRTQQorIyDRtCA8PiBYWFggOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIElaSElUU0EKKyMg0qkgPD4gWFhYIDsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgQUJLSEFTSUFOIEhBCisjINKoIDw+IFhYWCA7ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQUJLSEFTSUFOIEhBCisjINOAIDw+IFhYWCA7ICMgQ1lSSUxMSUMgTEVUVEVSIFBBTE9DSEtBCisjIyMg0LDMhiA8PiBYWFggOyAjIENZUklMTElDIFNNQUxMIExFVFRFUiBBCisjIyMg0JDMhiA8PiBYWFggOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIEEKKyMjIyDQsMyIIDw+IFhYWCA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEEKKyMjIyDQkMyIIDw+IFhYWCA7ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQQorIyMjINOZzIggPD4gWFhYIDsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgU0NIV0EKKyMjIyDTmMyIIDw+IFhYWCA7ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0NIV0EKKyMjIyDQs8yBIDw+IFhYWCA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEdIRQorIyMjINCTzIEgPD4gWFhYIDsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBHSEUKKyMjIyDQtcyAIDw+IFhYWCA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIElFCisjIyMg0JXMgCA8PiBYWFggOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIElFCisjIyMg0LXMiCA8PiBYWFggOyAjIENZUklMTElDIFNNQUxMIExFVFRFUiBJRQorIyMjINCVzIggPD4gWFhYIDsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJRQorIyMjINC1zIYgPD4gWFhYIDsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgSUUKKyMjIyDQlcyGIDw+IFhYWCA7ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSUUKKyMjIyDQtsyGIDw+IFhYWCA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFpIRQorIyMjINCWzIYgPD4gWFhYIDsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBaSEUKKyMjIyDQtsyIIDw+IFhYWCA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFpIRQorIyMjINCWzIggPD4gWFhYIDsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBaSEUKKyMjIyDQt8yIIDw+IFhYWCA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFpFCisjIyMg0JfMiCA8PiBYWFggOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIFpFCisjIyMg0LjMgCA8PiBYWFggOyAjIENZUklMTElDIFNNQUxMIExFVFRFUiBJCisjIyMg0JjMgCA8PiBYWFggOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIEkKKyMjIyDQuMyEIDw+IFhYWCA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEkKKyMjIyDQmMyEIDw+IFhYWCA7ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSQorIyMjINC4zIggPD4gWFhYIDsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgSQorIyMjINCYzIggPD4gWFhYIDsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJCisjIyMg0ZbMiCA8PiBYWFggOyAjIENZUklMTElDIFNNQUxMIExFVFRFUiBCWUVMT1JVU1NJQU4tVUtSQUlOSUFOIEkKKyMjIyDQhsyIIDw+IFhYWCA7ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQllFTE9SVVNTSUFOLVVLUkFJTklBTiBJCisjIyMg0L7MiCA8PiBYWFggOyAjIENZUklMTElDIFNNQUxMIExFVFRFUiBPCisjIyMg0J7MiCA8PiBYWFggOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIE8KKyMjIyDTqcyIIDw+IFhYWCA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEJBUlJFRCBPCisjIyMg06jMiCA8PiBYWFggOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIEJBUlJFRCBPCisjIyMg0LrMgSA8PiBYWFggOyAjIENZUklMTElDIFNNQUxMIExFVFRFUiBLQQorIyMjINCazIEgPD4gWFhYIDsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLQQorIyMjINGDzIQgPD4gWFhYIDsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgVQorIyMjINCjzIQgPD4gWFhYIDsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBVCisjIyMg0YPMhiA8PiBYWFggOyAjIENZUklMTElDIFNNQUxMIExFVFRFUiBVCisjIyMg0KPMhiA8PiBYWFggOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIFUKKyMjIyDRg8yIIDw+IFhYWCA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFUKKyMjIyDQo8yIIDw+IFhYWCA7ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVQorIyMjINGDzIsgPD4gWFhYIDsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgVQorIyMjINCjzIsgPD4gWFhYIDsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBVCisjIyMg0YfMiCA8PiBYWFggOyAjIENZUklMTElDIFNNQUxMIExFVFRFUiBDSEUKKyMjIyDQp8yIIDw+IFhYWCA7ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQ0hFCisjIyMg0YvMiCA8PiBYWFggOyAjIENZUklMTElDIFNNQUxMIExFVFRFUiBZRVJVCisjIyMg0KvMiCA8PiBYWFggOyAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIFlFUlUKKyMjIyDRjcyIIDw+IFhYWCA7ICMgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEUKKyMjIyDQrcyIIDw+IFhYWCA7ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRQorIyMjING1zI8gPD4gWFhYIDsgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgSVpISVRTQQorIyMjING0zI8gPD4gWFhYIDsgIyBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJWkhJVFNBCisKKyMgQ29tcGxldGVuZXNzCiskaWdub3JlID0gW1s6TWFyazpdJyddICogOworfCBrIDwgcSA7Cit8IEsgPCBRIDsKK3wgdSA8IHcgOworfCBVIDwgVyA7Cit8IEtTIDwgWCB9ICRpZ25vcmUgWzpVcHBlcmNhc2VMZXR0ZXI6XSA7Cit8IEtTIDwgWzpVcHBlcmNhc2VMZXR0ZXI6XSAkaWdub3JlIHsgWCA7Cit8IEtzIDwgWCA7Cit8IGtzIDwgeCA7CisKKzo6IE5GQyAoTkZEKSA7CisjIG5vdGU6IGEgZ2xvYmFsIGZpbHRlciBpcyBtb3JlIGVmZmljaWVudCwgYnV0IE1VU1QgaW5jbHVkZSBhbGwgc291cmNlIGNoYXJzISEKKyMgOjogKFtcdTAwMDAtXHUwMDdFIFx1MDJCOSBcdTAyQkEgWzpDeXJpbGxpYzpdIFs6TGF0aW46XSBbOm5vbnNwYWNpbmcgbWFyazpdXSk7CisjIE1JTklNQUwgRklMVEVSOiBMYXRpbi1DeXJpbGxpYworOjogKCBbXHUwMzA4QS1aYS16XHUwMEMwLVx1MDBDRlx1MDBEMS1cdTAwRDZcdTAwRDktXHUwMEREXHUwMEUwLVx1MDBFRlx1MDBGMS1cdTAwRjZcdTAwRjktXHUwMEZEXHUwMEZGLVx1MDEyNVx1MDEyOC1cdTAxMzBcdTAxMzQtXHUwMTM3XHUwMTM5LVx1MDEzRVx1MDE0My1cdTAxNDhcdTAxNEMtXHUwMTUxXHUwMTU0LVx1MDE2NVx1MDE2OC1cdTAxN0VcdTAxOEZcdTAxQTAtXHUwMUExXHUwMUFGLVx1MDFCMFx1MDFDRC1cdTAxRENcdTAxREUtXHUwMUUzXHUwMUU2LVx1MDFGMFx1MDFGNC1cdTAxRjVcdTAxRjgtXHUwMjFCXHUwMjFFLVx1MDIxRlx1MDIyNi1cdTAyMzNcdTAyNTlcdTAyQjktXHUwMkJBXHUwMzAwLVx1MDMwMlx1MDMwNi1cdTAzMDdcdTAzMENcdTAzMjZcdTAzMzFcdTAzNDAtXHUwMzQxXHUwMzQ0XHUwMzc0XHUwMzg1LVx1MDM4Nlx1MDM4OC1cdTAzOEFcdTAzOENcdTAzOEUtXHUwMzkwXHUwM0FDLVx1MDNCMFx1MDNDQy1cdTAzQ0VcdTAzRDNcdTA0MDBcdTA0MDNcdTA0MEMtXHUwNDBFXHUwNDE5XHUwNDM5XHUwNDUwXHUwNDUzXHUwNDVDLVx1MDQ1RVx1MDRDMS1cdTA0QzJcdTA0RDAtXHUwNEQxXHUwNEQ2LVx1MDREN1x1MUUwMC1cdTFFOTlcdTFFOUJcdTFFQTAtXHUxRUY5XHUxRjAyLVx1MUYwNVx1MUYwQS1cdTFGMERcdTFGMTItXHUxRjE1XHUxRjFBLVx1MUYxRFx1MUYyMi1cdTFGMjVcdTFGMkEtXHUxRjJEXHUxRjMyLVx1MUYzNVx1MUYzQS1cdTFGM0RcdTFGNDItXHUxRjQ1XHUxRjRBLVx1MUY0RFx1MUY1Mi1cdTFGNTVcdTFGNUJcdTFGNURcdTFGNjItXHUxRjY1XHUxRjZBLVx1MUY2RFx1MUY3MC1cdTFGN0RcdTFGODItXHUxRjg1XHUxRjhBLVx1MUY4RFx1MUY5Mi1cdTFGOTVcdTFGOUEtXHUxRjlEXHUxRkEyLVx1MUZBNVx1MUZBQS1cdTFGQURcdTFGQjBcdTFGQjJcdTFGQjRcdTFGQjhcdTFGQkEtXHUxRkJCXHUxRkMyXHUxRkM0XHUxRkM4LVx1MUZDQlx1MUZDRC1cdTFGQ0VcdTFGRDBcdTFGRDItXHUxRkQzXHUxRkQ4XHUxRkRBLVx1MUZEQlx1MUZERC1cdTFGREVcdTFGRTBcdTFGRTItXHUxRkUzXHUxRkU4XHUxRkVBLVx1MUZFQlx1MUZFRC1cdTFGRUVcdTFGRjJcdTFGRjRcdTFGRjgtXHUxRkZCXHUyMTJBLVx1MjEyQl0gKSA7CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0RldmFuYWdhcmlfSW50ZXJJbmRpYy50eHQgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0RldmFuYWdhcmlfSW50ZXJJbmRpYy50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTdmOGM4NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfRGV2YW5hZ2FyaV9JbnRlckluZGljLnR4dApAQCAtMCwwICsxLDEyMCBAQAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvcHlyaWdodCAoYykgMTk5OS0yMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisjIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9BdHRpYy9UcmFuc2xpdGVyYXRvcl9EZXZhbmFnYXJpX0ludGVySW5kaWMudHh0LHYgJAorIyAkRGF0ZTogMjAwMi8wMy8wMiAwMDoyNzoyNyAkCisjICRSZXZpc2lvbjogMS45ICQKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIERldmFuYWdhcmktSW50ZXJJbmRpYworIyA6OiBORkQ7CisjUnVsZXMgZm9yIERlY29tcG9zZWQgY2hhcmFjdGVycworCisKKyBcdTA5MDE+XHVFMDAxOyAgIyBTSUdOIENBTkRSQUJJTkRVCisgXHUwOTAyPlx1RTAwMjsgICMgU0lHTiBBTlVTVkFSQQorIFx1MDkwMz5cdUUwMDM7ICAjIFNJR04gVklTQVJHQQorIFx1MDkwNT5cdUUwMDU7ICAjIExFVFRFUiBBCisgXHUwOTA2Plx1RTAwNjsgICMgTEVUVEVSIEFBCisgXHUwOTA3Plx1RTAwNzsgICMgTEVUVEVSIEkKKyBcdTA5MDg+XHVFMDA4OyAgIyBMRVRURVIgSUkKKyBcdTA5MDk+XHVFMDA5OyAgIyBMRVRURVIgVQorIFx1MDkwQT5cdUUwMEE7ICAjIExFVFRFUiBVVQorIFx1MDkwQj5cdUUwMEI7ICAjIExFVFRFUiBWT0NBTElDIFIKKyBcdTA5MEM+XHVFMDBDOyAgIyBMRVRURVIgVk9DQUxJQyBMCisgXHUwOTBEPlx1RTAwRDsgICMgTEVUVEVSIENBTkRSQSBFIChGb3IgcmVwcmVzZW50aW5nIEVuZ2xpc2ggc291bmRzKQorIFx1MDkwRT5cdUUwMEU7ICMgVU5NQVBQRUQgTEVUVEVSIFNIT1JUIEUoRm9yIFNvdXRoZXJuIFNjcmlwdHMpCisgXHUwOTBGPlx1RTAwRjsgICMgTEVUVEVSIEUKKyBcdTA5MTA+XHVFMDEwOyAgIyBMRVRURVIgQUkKKyBcdTA5MTE+XHVFMDExOyAgIyBMRVRURVIgQ0FORFJBIE8gKEZvciByZXByZXNlbnRpbmcgRW5nbGlzaCBzb3VuZHMpCisgXHUwOTEyPlx1RTAxMjsgIyBVTk1BUFBFRCBMRVRURVIgU0hPUlQgTyAoRm9yIFNvdXRoZXJuIFNjcmlwdHMpCisgXHUwOTEzPlx1RTAxMzsgICMgTEVUVEVSIE8KKyBcdTA5MTQ+XHVFMDE0OyAgIyBMRVRURVIgQVUKKyBcdTA5MTU+XHVFMDE1OyAgIyBMRVRURVIgS0EKKyBcdTA5MTY+XHVFMDE2OyAgIyBMRVRURVIgS0hBCisgXHUwOTE3Plx1RTAxNzsgICMgTEVUVEVSIEdBCisgXHUwOTE4Plx1RTAxODsgICMgTEVUVEVSIEdIQQorIFx1MDkxOT5cdUUwMTk7ICAjIExFVFRFUiBOR0EKKyBcdTA5MUE+XHVFMDFBOyAgIyBMRVRURVIgQ0EKKyBcdTA5MUI+XHVFMDFCOyAgIyBMRVRURVIgQ0hBCisgXHUwOTFDPlx1RTAxQzsgICMgTEVUVEVSIEpBCisgXHUwOTFEPlx1RTAxRDsgICMgTEVUVEVSIEpIQQorIFx1MDkxRT5cdUUwMUU7ICAjIExFVFRFUiBOWUEKKyBcdTA5MUY+XHVFMDFGOyAgIyBMRVRURVIgVFRBCisgXHUwOTIwPlx1RTAyMDsgICMgTEVUVEVSIFRUSEEKKyBcdTA5MjE+XHVFMDIxOyAgIyBMRVRURVIgRERBCisgXHUwOTIyPlx1RTAyMjsgICMgTEVUVEVSIERESEEKKyBcdTA5MjM+XHVFMDIzOyAgIyBMRVRURVIgTk5BCisgXHUwOTI0Plx1RTAyNDsgICMgTEVUVEVSIFRBCisgXHUwOTI1Plx1RTAyNTsgICMgTEVUVEVSIFRIQQorIFx1MDkyNj5cdUUwMjY7ICAjIExFVFRFUiBEQQorIFx1MDkyNz5cdUUwMjc7ICAjIExFVFRFUiBESEEKKyBcdTA5Mjg+XHVFMDI4OyAgIyBMRVRURVIgTkEKKyBcdTA5Mjk+XHVFMDI5OyAgCisgXHUwOTJBPlx1RTAyQTsgICMgTEVUVEVSIFBBCisgXHUwOTJCPlx1RTAyQjsgICMgTEVUVEVSIFBIQQorIFx1MDkyQz5cdUUwMkM7ICAjIExFVFRFUiBCQQorIFx1MDkyRD5cdUUwMkQ7ICAjIExFVFRFUiBCSEEKKyBcdTA5MkU+XHVFMDJFOyAgIyBMRVRURVIgTUEKKyBcdTA5MkY+XHVFMDJGOyAgIyBMRVRURVIgWUEKKyBcdTA5MzA+XHVFMDMwOyAgIyBMRVRURVIgUkEKKyBcdTA5MzE+XHVFMDMxOworIFx1MDkzMj5cdUUwMzI7ICAjIExFVFRFUiBMQQorIFx1MDkzMz5cdUUwMzM7ICAjIExFVFRFUiBMTEEKKyBcdTA5MzQ+XHVFMDM0OworCisgXHUwOTM1Plx1RTAzNTsgICMgTEVUVEVSIFZBCisgXHUwOTM2Plx1RTAzNjsgICMgTEVUVEVSIFNIQQorIFx1MDkzNz5cdUUwMzc7ICAjIExFVFRFUiBTU0EKKyBcdTA5Mzg+XHVFMDM4OyAgIyBMRVRURVIgU0EKKyBcdTA5Mzk+XHVFMDM5OyAgIyBMRVRURVIgSEEKKyBcdTA5M0M+XHVFMDNDOyAgIyBTSUdOIE5VS1RBCisgXHUwOTNEPlx1RTAzRDsgICMgU0lHTiBBVkFHUkFIQQorIFx1MDkzRT5cdUUwM0U7ICAjIFZPV0VMIFNJR04gQUEKKyBcdTA5M0Y+XHVFMDNGOyAgIyBWT1dFTCBTSUdOIEkKKyBcdTA5NDA+XHVFMDQwOyAgIyBWT1dFTCBTSUdOIElJCisgXHUwOTQxPlx1RTA0MTsgICMgVk9XRUwgU0lHTiBVCisgXHUwOTQyPlx1RTA0MjsgICMgVk9XRUwgU0lHTiBVVQorIFx1MDk0Mz5cdUUwNDM7ICAjIFZPV0VMIFNJR04gVk9DQUxJQyBSCisgXHUwOTQ0Plx1RTA0NDsgICMgVk9XRUwgU0lHTiBWT0NBTElDIFJSCisgXHUwOTQ1Plx1RTA0NTsgICMgVk9XRUwgU0lHTiBDQU5EUkEgRQorIFx1MDk0Nj5cdUUwNDY7ICMgVU5NQVBQRUQgVk9XRUwgU0lHTiBTSE9SVCBFCisgXHUwOTQ3Plx1RTA0NzsgICMgVk9XRUwgU0lHTiBFCisgXHUwOTQ4Plx1RTA0ODsgICMgVk9XRUwgU0lHTiBBSQorIFx1MDk0OT5cdUUwNDk7ICAjIFZPV0VMIFNJR04gQ0FORFJBIE8KKyBcdTA5NEE+XHVFMDRBOyAjIFVOTUFQUEVEIFZPV0VMIFNJR04gU0hPUlQgTworIFx1MDk0Qj5cdUUwNEI7ICAjIFZPV0VMIFNJR04gTworIFx1MDk0Qz5cdUUwNEM7ICAjIFZPV0VMIFNJR04gQVUKKyBcdTA5NEQ+XHVFMDREOyAgIyBTSUdOIFZJUkFNQQorIFx1MDk1MD5cdUUwNTA7ICAjIE9NCisgXHUwOTUxPlx1RTA1MTsgICAgICAgIyBVTk1BUFBFRCBTVFJFU1MgU0lHTiBVREFUVEEKKyBcdTA5NTI+XHVFMDUyOyAgICAgICAjIFVOTUFQUEVEIFNUUkVTUyBTSUdOIEFOVURBVFRBCisgXHUwOTUzPlx1RTA1MzsgICAgICAgIyBVTk1BUFBFRCBHUkFWRSBBQ0NFTlQKKyBcdTA5NTQ+XHVFMDU0OyAgICAgICAjIFVOTUFQUEVEIEFDVVRFIEFDQ0VOVAorIFx1MDk1OD5cdUUwNTg7CisgXHUwOTU5Plx1RTA1OTsKKyBcdTA5NUE+XHVFMDVhOworIFx1MDk1Qj5cdUUwNWI7CisgXHUwOTVDPlx1RTA1YzsKKyBcdTA5NUQ+XHVFMDVkOworIFx1MDk1RT5cdUUwNWU7CisgXHUwOTVGPlx1RTA1ZjsKKyBcdTA5NjA+XHVFMDYwOyAgIyBMRVRURVIgVk9DQUxJQyBSUgorIFx1MDk2MT5cdUUwNjE7ICAjIExFVFRFUiBWT0NBTElDIExMCisgXHUwOTYyPlx1RTA2MjsgICMgVk9XRUwgU0lHTiBWT0NBTElDIEwKKyBcdTA5NjM+XHVFMDYzOyAgIyBWT1dFTCBTSUdOIFZPQ0FMSUMgTEwKKyBcdTA5NjQ+XHVlMDY0OyAgIyBEQU5EQQorIFx1MDk2NT5cdWUwNjU7ICAjIERPVUJMRSBEQU5EQQorIFx1MDk2Nj5cdUUwNjY7ICAjIERJR0lUIFpFUk8KKyBcdTA5Njc+XHVFMDY3OyAgIyBESUdJVCBPTkUKKyBcdTA5Njg+XHVFMDY4OyAgIyBESUdJVCBUV08KKyBcdTA5Njk+XHVFMDY5OyAgIyBESUdJVCBUSFJFRQorIFx1MDk2QT5cdUUwNkE7ICAjIERJR0lUIEZPVVIKKyBcdTA5NkI+XHVFMDZCOyAgIyBESUdJVCBGSVZFCisgXHUwOTZDPlx1RTA2QzsgICMgRElHSVQgU0lYCisgXHUwOTZEPlx1RTA2RDsgICMgRElHSVQgU0VWRU4KKyBcdTA5NkU+XHVFMDZFOyAgIyBESUdJVCBFSUdIVAorIFx1MDk2Rj5cdUUwNkY7ICAjIERJR0lUIE5JTkUKKyMgXHUwOTcwPjsgIyBVTk1BUFBFRCBEZXZhbmFnYXJpLUludGVySW5kaWM6IEFCQlJFVklBVElPTiBTSUdOCisjICAgIDo6IE5GQyAoTkZEKSA7CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0Z1bGx3aWR0aF9IYWxmd2lkdGgudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9GdWxsd2lkdGhfSGFsZndpZHRoLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43MzNiYmNjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9GdWxsd2lkdGhfSGFsZndpZHRoLnR4dApAQCAtMCwwICsxLDI3NSBAQAor77u/Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvcHlyaWdodCAoYykgMTk5OS0yMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisjIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9BdHRpYy9UcmFuc2xpdGVyYXRvcl9GdWxsd2lkdGhfSGFsZndpZHRoLnR4dCx2ICQKKyMgJERhdGU6IDIwMDIvMDMvMDIgMDA6Mjc6MjcgJAorIyAkUmV2aXNpb246IDEuMyAkCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBGdWxsd2lkdGgtSGFsZndpZHRoCisKKyMgTWVjaGFuaWNhbGx5IGdlbmVyYXRlZCBmcm9tIFVuaWNvZGUgQ2hhcmFjdGVyIERhdGFiYXNlCisjIElERU9HUkFQSElDIFNQQUNFIHRoZW4gYWRkZWQsIGFuZAorIyBGVUxMV0lEVEggTUFDUk9OIGNoYW5nZWQgdG8gbWFwIHRvIE1BQ1JPTiwgbm90IFNQQUNFICsgQ09NQklOSU5HIE1BQ1JPTgorCisjIG11bHRpY2hhcmFjdGVyCisKK+OCrDw+7722776eOyAjIHRvIEtBVEFLQU5BIExFVFRFUiBHQQor44KuPD7vvbfvvp47ICMgdG8gS0FUQUtBTkEgTEVUVEVSIEdJCivjgrA8Pu+9uO++njsgIyB0byBLQVRBS0FOQSBMRVRURVIgR1UKK+OCsjw+7725776eOyAjIHRvIEtBVEFLQU5BIExFVFRFUiBHRQor44K0PD7vvbrvvp47ICMgdG8gS0FUQUtBTkEgTEVUVEVSIEdPCivjgrY8Pu+9u+++njsgIyB0byBLQVRBS0FOQSBMRVRURVIgWkEKK+OCuDw+7728776eOyAjIHRvIEtBVEFLQU5BIExFVFRFUiBaSQor44K6PD7vvb3vvp47ICMgdG8gS0FUQUtBTkEgTEVUVEVSIFpVCivjgrw8Pu+9vu++njsgIyB0byBLQVRBS0FOQSBMRVRURVIgWkUKK+OCvjw+772/776eOyAjIHRvIEtBVEFLQU5BIExFVFRFUiBaTwor44OAPD7vvoDvvp47ICMgdG8gS0FUQUtBTkEgTEVUVEVSIERBCivjg4I8Pu++ge++njsgIyB0byBLQVRBS0FOQSBMRVRURVIgREkKK+ODhTw+776C776eOyAjIHRvIEtBVEFLQU5BIExFVFRFUiBEVQor44OHPD7vvoPvvp47ICMgdG8gS0FUQUtBTkEgTEVUVEVSIERFCivjg4k8Pu++hO++njsgIyB0byBLQVRBS0FOQSBMRVRURVIgRE8KK+ODkDw+776K776eOyAjIHRvIEtBVEFLQU5BIExFVFRFUiBCQQor44ORPD7vvorvvp87ICMgdG8gS0FUQUtBTkEgTEVUVEVSIFBBCivjg5M8Pu++i+++njsgIyB0byBLQVRBS0FOQSBMRVRURVIgQkkKK+ODlDw+776L776fOyAjIHRvIEtBVEFLQU5BIExFVFRFUiBQSQor44OWPD7vvozvvp47ICMgdG8gS0FUQUtBTkEgTEVUVEVSIEJVCivjg5c8Pu++jO++nzsgIyB0byBLQVRBS0FOQSBMRVRURVIgUFUKK+ODmTw+776N776eOyAjIHRvIEtBVEFLQU5BIExFVFRFUiBCRQor44OaPD7vvo3vvp87ICMgdG8gS0FUQUtBTkEgTEVUVEVSIFBFCivjg5w8Pu++ju++njsgIyB0byBLQVRBS0FOQSBMRVRURVIgQk8KK+ODnTw+776O776fOyAjIHRvIEtBVEFLQU5BIExFVFRFUiBQTwor44O0PD7vvbPvvp47ICMgdG8gS0FUQUtBTkEgTEVUVEVSIFZVCivjg7c8Pu++nO++njsgIyB0byBLQVRBS0FOQSBMRVRURVIgVkEKK+ODujw+772m776eOyAjIHRvIEtBVEFLQU5BIExFVFRFUiBWTworCisjIHNpbmdsZSBjaGFyYWN0ZXIKKwor77yBPD4nISc7ICMgZnJvbSBGVUxMV0lEVEggRVhDTEFNQVRJT04gTUFSSwor77yCPD4nXCInOyAjIGZyb20gRlVMTFdJRFRIIFFVT1RBVElPTiBNQVJLCivvvIM8PicjJzsgIyBmcm9tIEZVTExXSURUSCBOVU1CRVIgU0lHTgor77yEPD4nJCc7ICMgZnJvbSBGVUxMV0lEVEggRE9MTEFSIFNJR04KK++8hTw+JyUnOyAjIGZyb20gRlVMTFdJRFRIIFBFUkNFTlQgU0lHTgor77yGPD4nJic7ICMgZnJvbSBGVUxMV0lEVEggQU1QRVJTQU5ECivvvIc8PicnOyAjIGZyb20gRlVMTFdJRFRIIEFQT1NUUk9QSEUKK++8iDw+JygnOyAjIGZyb20gRlVMTFdJRFRIIExFRlQgUEFSRU5USEVTSVMKK++8iTw+JyknOyAjIGZyb20gRlVMTFdJRFRIIFJJR0hUIFBBUkVOVEhFU0lTCivvvIo8PicqJzsgIyBmcm9tIEZVTExXSURUSCBBU1RFUklTSwor77yLPD4nKyc7ICMgZnJvbSBGVUxMV0lEVEggUExVUyBTSUdOCivvvIw8PicsJzsgIyBmcm9tIEZVTExXSURUSCBDT01NQQor77yNPD4nLSc7ICMgZnJvbSBGVUxMV0lEVEggSFlQSEVOLU1JTlVTCivvvI48PicuJzsgIyBmcm9tIEZVTExXSURUSCBGVUxMIFNUT1AKK++8jzw+Jy8nOyAjIGZyb20gRlVMTFdJRFRIIFNPTElEVVMKK++8kDw+JzAnOyAjIGZyb20gRlVMTFdJRFRIIERJR0lUIFpFUk8KK++8kTw+JzEnOyAjIGZyb20gRlVMTFdJRFRIIERJR0lUIE9ORQor77ySPD4nMic7ICMgZnJvbSBGVUxMV0lEVEggRElHSVQgVFdPCivvvJM8PiczJzsgIyBmcm9tIEZVTExXSURUSCBESUdJVCBUSFJFRQor77yUPD4nNCc7ICMgZnJvbSBGVUxMV0lEVEggRElHSVQgRk9VUgor77yVPD4nNSc7ICMgZnJvbSBGVUxMV0lEVEggRElHSVQgRklWRQor77yWPD4nNic7ICMgZnJvbSBGVUxMV0lEVEggRElHSVQgU0lYCivvvJc8Pic3JzsgIyBmcm9tIEZVTExXSURUSCBESUdJVCBTRVZFTgor77yYPD4nOCc7ICMgZnJvbSBGVUxMV0lEVEggRElHSVQgRUlHSFQKK++8mTw+JzknOyAjIGZyb20gRlVMTFdJRFRIIERJR0lUIE5JTkUKK++8mjw+JzonOyAjIGZyb20gRlVMTFdJRFRIIENPTE9OCivvvJs8Pic7JzsgIyBmcm9tIEZVTExXSURUSCBTRU1JQ09MT04KK++8nDw+JzwnOyAjIGZyb20gRlVMTFdJRFRIIExFU1MtVEhBTiBTSUdOCivvvJ08Pic9JzsgIyBmcm9tIEZVTExXSURUSCBFUVVBTFMgU0lHTgor77yePD4nPic7ICMgZnJvbSBGVUxMV0lEVEggR1JFQVRFUi1USEFOIFNJR04KK++8nzw+Jz8nOyAjIGZyb20gRlVMTFdJRFRIIFFVRVNUSU9OIE1BUksKK++8oDw+J0AnOyAjIGZyb20gRlVMTFdJRFRIIENPTU1FUkNJQUwgQVQKK++8oTw+QTsgIyBmcm9tIEZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBBCivvvKI8PkI7ICMgZnJvbSBGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgQgor77yjPD5DOyAjIGZyb20gRlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEMKK++8pDw+RDsgIyBmcm9tIEZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBECivvvKU8PkU7ICMgZnJvbSBGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgRQor77ymPD5GOyAjIGZyb20gRlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEYKK++8pzw+RzsgIyBmcm9tIEZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBHCivvvKg8Pkg7ICMgZnJvbSBGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgSAor77ypPD5JOyAjIGZyb20gRlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEkKK++8qjw+SjsgIyBmcm9tIEZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBKCivvvKs8Pks7ICMgZnJvbSBGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgSwor77ysPD5MOyAjIGZyb20gRlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEwKK++8rTw+TTsgIyBmcm9tIEZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBNCivvvK48Pk47ICMgZnJvbSBGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgTgor77yvPD5POyAjIGZyb20gRlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIE8KK++8sDw+UDsgIyBmcm9tIEZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBQCivvvLE8PlE7ICMgZnJvbSBGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgUQor77yyPD5SOyAjIGZyb20gRlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFIKK++8szw+UzsgIyBmcm9tIEZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBTCivvvLQ8PlQ7ICMgZnJvbSBGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgVAor77y1PD5VOyAjIGZyb20gRlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFUKK++8tjw+VjsgIyBmcm9tIEZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBWCivvvLc8Plc7ICMgZnJvbSBGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgVwor77y4PD5YOyAjIGZyb20gRlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFgKK++8uTw+WTsgIyBmcm9tIEZVTExXSURUSCBMQVRJTiBDQVBJVEFMIExFVFRFUiBZCivvvLo8Plo7ICMgZnJvbSBGVUxMV0lEVEggTEFUSU4gQ0FQSVRBTCBMRVRURVIgWgor77y7PD4nWyc7ICMgZnJvbSBGVUxMV0lEVEggTEVGVCBTUVVBUkUgQlJBQ0tFVAor77y8PD4nXFwnOyAjIGZyb20gRlVMTFdJRFRIIFJFVkVSU0UgU09MSURVUyB7ZG91YmxlIGVzY2FwZSAtIGFsaXV9CivvvL08PiddJzsgIyBmcm9tIEZVTExXSURUSCBSSUdIVCBTUVVBUkUgQlJBQ0tFVAor77y+PD4nXic7ICMgZnJvbSBGVUxMV0lEVEggQ0lSQ1VNRkxFWCBBQ0NFTlQKK++8vzw+J18nOyAjIGZyb20gRlVMTFdJRFRIIExPVyBMSU5FCivvvYA8PidgJzsgIyBmcm9tIEZVTExXSURUSCBHUkFWRSBBQ0NFTlQKK++9gTw+YTsgIyBmcm9tIEZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgQQor772CPD5iOyAjIGZyb20gRlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBCCivvvYM8PmM7ICMgZnJvbSBGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEMKK++9hDw+ZDsgIyBmcm9tIEZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgRAor772FPD5lOyAjIGZyb20gRlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBFCivvvYY8PmY7ICMgZnJvbSBGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEYKK++9hzw+ZzsgIyBmcm9tIEZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgRwor772IPD5oOyAjIGZyb20gRlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBICivvvYk8Pmk7ICMgZnJvbSBGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEkKK++9ijw+ajsgIyBmcm9tIEZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgSgor772LPD5rOyAjIGZyb20gRlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBLCivvvYw8Pmw7ICMgZnJvbSBGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEwKK++9jTw+bTsgIyBmcm9tIEZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgTQor772OPD5uOyAjIGZyb20gRlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBOCivvvY88Pm87ICMgZnJvbSBGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIE8KK++9kDw+cDsgIyBmcm9tIEZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgUAor772RPD5xOyAjIGZyb20gRlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBRCivvvZI8PnI7ICMgZnJvbSBGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIFIKK++9kzw+czsgIyBmcm9tIEZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgUwor772UPD50OyAjIGZyb20gRlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBUCivvvZU8PnU7ICMgZnJvbSBGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIFUKK++9ljw+djsgIyBmcm9tIEZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgVgor772XPD53OyAjIGZyb20gRlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBXCivvvZg8Png7ICMgZnJvbSBGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIFgKK++9mTw+eTsgIyBmcm9tIEZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgWQor772aPD56OyAjIGZyb20gRlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBaCivvvZs8Pid7JzsgIyBmcm9tIEZVTExXSURUSCBMRUZUIENVUkxZIEJSQUNLRVQKK++9nDw+J3wnOyAjIGZyb20gRlVMTFdJRFRIIFZFUlRJQ0FMIExJTkUKK++9nTw+J30nOyAjIGZyb20gRlVMTFdJRFRIIFJJR0hUIENVUkxZIEJSQUNLRVQKK++9njw+J34nOyAjIGZyb20gRlVMTFdJRFRIIFRJTERFCivjgII8Pu+9oTsgIyB0byBIQUxGV0lEVEggSURFT0dSQVBISUMgRlVMTCBTVE9QCivjgIw8Pu+9ojsgIyB0byBIQUxGV0lEVEggTEVGVCBDT1JORVIgQlJBQ0tFVAor44CNPD7vvaM7ICMgdG8gSEFMRldJRFRIIFJJR0hUIENPUk5FUiBCUkFDS0VUCivjgIE8Pu+9pDsgIyB0byBIQUxGV0lEVEggSURFT0dSQVBISUMgQ09NTUEKK+ODuzw+772lOyAjIHRvIEhBTEZXSURUSCBLQVRBS0FOQSBNSURETEUgRE9UCivjg7I8Pu+9pjsgIyB0byBIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFdPCivjgqE8Pu+9pzsgIyB0byBIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFNNQUxMIEEKK+OCozw+772oOyAjIHRvIEhBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU01BTEwgSQor44KlPD7vvak7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTUFMTCBVCivjgqc8Pu+9qjsgIyB0byBIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFNNQUxMIEUKK+OCqTw+772rOyAjIHRvIEhBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU01BTEwgTwor44OjPD7vvaw7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTUFMTCBZQQor44OlPD7vva07ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTUFMTCBZVQor44OnPD7vva47ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTUFMTCBZTwor44ODPD7vva87ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTUFMTCBUVQor44O8PD7vvbA7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BLUhJUkFHQU5BIFBST0xPTkdFRCBTT1VORCBNQVJLCivjgqI8Pu+9sTsgIyB0byBIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIEEKK+OCpDw+772yOyAjIHRvIEhBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgSQor44KmPD7vvbM7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBVCivjgqg8Pu+9tDsgIyB0byBIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIEUKK+OCqjw+7721OyAjIHRvIEhBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTwor44KrPD7vvbY7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBLQQor44KtPD7vvbc7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBLSQor44KvPD7vvbg7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBLVQor44KxPD7vvbk7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBLRQor44KzPD7vvbo7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBLTwor44K1PD7vvbs7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTQQor44K3PD7vvbw7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTSQor44K5PD7vvb07ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTVQor44K7PD7vvb47ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTRQor44K9PD7vvb87ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTwor44K/PD7vvoA7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBUQQor44OBPD7vvoE7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBUSQor44OEPD7vvoI7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBUVQor44OGPD7vvoM7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBURQor44OIPD7vvoQ7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBUTwor44OKPD7vvoU7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBOQQor44OLPD7vvoY7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBOSQor44OMPD7vvoc7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBOVQor44ONPD7vvog7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBORQor44OOPD7vvok7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBOTwor44OPPD7vvoo7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBIQQor44OSPD7vvos7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBISQor44OVPD7vvow7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBIVQor44OYPD7vvo07ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBIRQor44ObPD7vvo47ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBITwor44OePD7vvo87ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBNQQor44OfPD7vvpA7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBNSQor44OgPD7vvpE7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBNVQor44OhPD7vvpI7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBNRQor44OiPD7vvpM7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBNTwor44OkPD7vvpQ7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBZQQor44OmPD7vvpU7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBZVQor44OoPD7vvpY7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBZTwor44OpPD7vvpc7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBSQQor44OqPD7vvpg7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBSSQor44OrPD7vvpk7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBSVQor44OsPD7vvpo7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBSRQor44OtPD7vvps7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBSTwor44OvPD7vvpw7ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBXQQor44OzPD7vvp07ICMgdG8gSEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBOCivjgpk8Pu++njsgIyB0byBIQUxGV0lEVEggS0FUQUtBTkEgVk9JQ0VEIFNPVU5EIE1BUksKK+OCmjw+776fOyAjIHRvIEhBTEZXSURUSCBLQVRBS0FOQSBTRU1JLVZPSUNFRCBTT1VORCBNQVJLCivhhaA8Pu++oDsgIyB0byBIQUxGV0lEVEggSEFOR1VMIEZJTExFUgor4YSAPD7vvqE7ICMgdG8gSEFMRldJRFRIIEhBTkdVTCBMRVRURVIgS0lZRU9LCivhhIE8Pu++ojsgIyB0byBIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBTU0FOR0tJWUVPSwor4YaqPD7vvqM7ICMgdG8gSEFMRldJRFRIIEhBTkdVTCBMRVRURVIgS0lZRU9LLVNJT1MKK+GEgjw+776kOyAjIHRvIEhBTEZXSURUSCBIQU5HVUwgTEVUVEVSIE5JRVVOCivhhqw8Pu++pTsgIyB0byBIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBOSUVVTi1DSUVVQwor4YatPD7vvqY7ICMgdG8gSEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTklFVU4tSElFVUgKK+GEgzw+776nOyAjIHRvIEhBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFRJS0VVVAor4YSEPD7vvqg7ICMgdG8gSEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU1NBTkdUSUtFVVQKK+GEhTw+776pOyAjIHRvIEhBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFJJRVVMCivhhrA8Pu++qjsgIyB0byBIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBSSUVVTC1LSVlFT0sKK+GGsTw+776rOyAjIHRvIEhBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFJJRVVMLU1JRVVNCivhhrI8Pu++rDsgIyB0byBIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBSSUVVTC1QSUVVUAor4YazPD7vvq07ICMgdG8gSEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUklFVUwtU0lPUwor4Ya0PD7vvq47ICMgdG8gSEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUklFVUwtVEhJRVVUSAor4Ya1PD7vvq87ICMgdG8gSEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUklFVUwtUEhJRVVQSAor4YSaPD7vvrA7ICMgdG8gSEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUklFVUwtSElFVUgKK+GEhjw+776xOyAjIHRvIEhBTEZXSURUSCBIQU5HVUwgTEVUVEVSIE1JRVVNCivhhIc8Pu++sjsgIyB0byBIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBQSUVVUAor4YSIPD7vvrM7ICMgdG8gSEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU1NBTkdQSUVVUAor4YShPD7vvrQ7ICMgdG8gSEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUElFVVAtU0lPUwor4YSJPD7vvrU7ICMgdG8gSEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU0lPUwor4YSKPD7vvrY7ICMgdG8gSEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU1NBTkdTSU9TCivhhIs8Pu++tzsgIyB0byBIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBJRVVORwor4YSMPD7vvrg7ICMgdG8gSEFMRldJRFRIIEhBTkdVTCBMRVRURVIgQ0lFVUMKK+GEjTw+7765OyAjIHRvIEhBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFNTQU5HQ0lFVUMKK+GEjjw+7766OyAjIHRvIEhBTEZXSURUSCBIQU5HVUwgTEVUVEVSIENISUVVQ0gKK+GEjzw+7767OyAjIHRvIEhBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEtISUVVS0gKK+GEkDw+7768OyAjIHRvIEhBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFRISUVVVEgKK+GEkTw+7769OyAjIHRvIEhBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFBISUVVUEgKK+GEkjw+776+OyAjIHRvIEhBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEhJRVVICivhhaE8Pu+/gjsgIyB0byBIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBBCivhhaI8Pu+/gzsgIyB0byBIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBBRQor4YWjPD7vv4Q7ICMgdG8gSEFMRldJRFRIIEhBTkdVTCBMRVRURVIgWUEKK+GFpDw+77+FOyAjIHRvIEhBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFlBRQor4YWlPD7vv4Y7ICMgdG8gSEFMRldJRFRIIEhBTkdVTCBMRVRURVIgRU8KK+GFpjw+77+HOyAjIHRvIEhBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEUKK+GFpzw+77+KOyAjIHRvIEhBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFlFTwor4YWoPD7vv4s7ICMgdG8gSEFMRldJRFRIIEhBTkdVTCBMRVRURVIgWUUKK+GFqTw+77+MOyAjIHRvIEhBTEZXSURUSCBIQU5HVUwgTEVUVEVSIE8KK+GFqjw+77+NOyAjIHRvIEhBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFdBCivhhas8Pu+/jjsgIyB0byBIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBXQUUKK+GFrDw+77+POyAjIHRvIEhBTEZXSURUSCBIQU5HVUwgTEVUVEVSIE9FCivhha08Pu+/kjsgIyB0byBIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBZTwor4YWuPD7vv5M7ICMgdG8gSEFMRldJRFRIIEhBTkdVTCBMRVRURVIgVQor4YWvPD7vv5Q7ICMgdG8gSEFMRldJRFRIIEhBTkdVTCBMRVRURVIgV0VPCivhhbA8Pu+/lTsgIyB0byBIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBXRQor4YWxPD7vv5Y7ICMgdG8gSEFMRldJRFRIIEhBTkdVTCBMRVRURVIgV0kKK+GFsjw+77+XOyAjIHRvIEhBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFlVCivhhbM8Pu+/mjsgIyB0byBIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBFVQor4YW0PD7vv5s7ICMgdG8gSEFMRldJRFRIIEhBTkdVTCBMRVRURVIgWUkKK+GFtTw+77+cOyAjIHRvIEhBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEkKK++/oDw+J8KiJzsgIyBmcm9tIEZVTExXSURUSCBDRU5UIFNJR04KK++/oTw+J8KjJzsgIyBmcm9tIEZVTExXSURUSCBQT1VORCBTSUdOCivvv6I8PifCrCc7ICMgZnJvbSBGVUxMV0lEVEggTk9UIFNJR04KK++/ozw+J8KvJzsgIyBmcm9tIEZVTExXSURUSCBNQUNST04KKyfjgIAnPD4nICc7ICMgaWRlb2dyYXBoaWMgc3BhY2UgKHBsYWNlIHRoaXMgYWZ0ZXIgTUFDUk9OKQor77+kPD4nwqYnOyAjIGZyb20gRlVMTFdJRFRIIEJST0tFTiBCQVIKK++/pTw+J8KlJzsgIyBmcm9tIEZVTExXSURUSCBZRU4gU0lHTgor77+mPD7igqk7ICMgZnJvbSBGVUxMV0lEVEggV09OIFNJR04KK+KUgjw+77+oOyAjIHRvIEhBTEZXSURUSCBGT1JNUyBMSUdIVCBWRVJUSUNBTAor4oaQPD7vv6k7ICMgdG8gSEFMRldJRFRIIExFRlRXQVJEUyBBUlJPVwor4oaRPD7vv6o7ICMgdG8gSEFMRldJRFRIIFVQV0FSRFMgQVJST1cKK+KGkjw+77+rOyAjIHRvIEhBTEZXSURUSCBSSUdIVFdBUkRTIEFSUk9XCivihpM8Pu+/rDsgIyB0byBIQUxGV0lEVEggRE9XTldBUkRTIEFSUk9XCivilqA8Pu+/rTsgIyB0byBIQUxGV0lEVEggQkxBQ0sgU1FVQVJFCivil4s8Pu+/rjsgIyB0byBIQUxGV0lEVEggV0hJVEUgQ0lSQ0xFCisKKyMgZW9mCisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfR3JlZWtfTGF0aW4udHh0IGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9HcmVla19MYXRpbi50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzI0MDEyOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfR3JlZWtfTGF0aW4udHh0CkBAIC0wLDAgKzEsMzQyIEBACivvu78jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0F0dGljL1RyYW5zbGl0ZXJhdG9yX0dyZWVrX0xhdGluLnR4dCx2ICQKKyMgJERhdGU6IDIwMDIvMDcvMjEgMDg6Mzk6MjMgJAorIyAkUmV2aXNpb246IDEuMjEgJAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgUnVsZXMgYXJlIHByZWRpY2F0ZWQgb24gcnVubmluZyBORkQgZmlyc3QsIGFuZCBORkMgYWZ0ZXJ3YXJkcworIyA6OiBbXHUwMDAwLVx1MDA3RiBcdTAzNzAtXHUwM0ZGIFs6R3JlZWs6XSBbOm5vbnNwYWNpbmcgbWFyazpdXSA7CisjIE1JTklNQUwgRklMVEVSIEdFTkVSQVRFRCBGT1I6IEdyZWVrLUxhdGluCis6OiBbO1x1MDBCNVx1MDBCN1x1MDBDNFx1MDBDQlx1MDBDRlx1MDBENlx1MDBEQ1x1MDBFNFx1MDBFQlx1MDBFRlx1MDBGNlx1MDBGQ1x1MDBGRi1cdTAxMDFcdTAxMTItXHUwMTEzXHUwMTJBLVx1MDEyQlx1MDE0Qy1cdTAxNERcdTAxNkEtXHUwMTZCXHUwMTc4XHUwMUQ1LVx1MDFEQ1x1MDFERS1cdTAxRTNcdTAxRUMtXHUwMUVEXHUwMjJBLVx1MDIyRFx1MDIzMC1cdTAyMzNcdTAzMDRcdTAzMDhcdTAzMTMtXHUwMzE0XHUwMzQyLVx1MDM0NVx1MDM3QVx1MDM3RVx1MDM4Ni1cdTAzOEFcdTAzOENcdTAzOEUtXHUwM0ExXHUwM0EzLVx1MDNDRVx1MDNEMC1cdTAzRDdcdTAzREJcdTAzRERcdTAzREZcdTAzRTFcdTAzRTNcdTAzRTVcdTAzRTdcdTAzRTlcdTAzRUJcdTAzRURcdTAzRUYtXHUwM0Y1XHUwNDAxXHUwNDA3XHUwNDUxXHUwNDU3XHUwNEQyLVx1MDREM1x1MDREQS1cdTA0REZcdTA0RTItXHUwNEU3XHUwNEVBLVx1MDRGMVx1MDRGNC1cdTA0RjVcdTA0RjgtXHUwNEY5XHUxRTE0LVx1MUUxN1x1MUUyMC1cdTFFMjFcdTFFMjYtXHUxRTI3XHUxRTJFLVx1MUUyRlx1MUUzOC1cdTFFMzlcdTFFNEUtXHUxRTUzXHUxRTVDLVx1MUU1RFx1MUU3QS1cdTFFN0JcdTFFODQtXHUxRTg1XHUxRThDLVx1MUU4RFx1MUU5N1x1MUYwMC1cdTFGMTVcdTFGMTgtXHUxRjFEXHUxRjIwLVx1MUY0NVx1MUY0OC1cdTFGNERcdTFGNTAtXHUxRjU3XHUxRjU5XHUxRjVCXHUxRjVEXHUxRjVGLVx1MUY3RFx1MUY4MC1cdTFGQjRcdTFGQjYtXHUxRkJDXHUxRkJFXHUxRkMxLVx1MUZDNFx1MUZDNi1cdTFGQ0NcdTFGQ0YtXHUxRkQzXHUxRkQ2LVx1MUZEQlx1MUZERi1cdTFGRUNcdTFGRjItXHUxRkY0XHUxRkY2LVx1MUZGQ1x1MjEyNl0gOworCis6OiBORkQgKE5GQykgOyAKKworIyBURVNUIENBU0VTCisKKyMg4b2IzrvOr86zzr/OuSDhvJTOvM+Gzr/Ovc61z4Igz4DOv867zrvhv7bOvSDhvIDPhs+Bz4zOvc+Jzr0gz4bOv86yzrXPgc+Oz4TOtc+Bzr/OuSDigJQgzqDOu86sz4TPic69zr/PggorIyDhvoIg4b6SIOG+oiDhvoMg4b6TIOG+oworIyDhvrMg4b+DIOG/syDhvYMg4b2ECisjIOG9oM+CIOG9oc+CIOG9os+CIOG9o8+CCisjIOG9qM+CIOG9qc+CIOG9qs+CIOG9q8+CCisjIOG9qM6jIOG9qc6jIOG9qs6jIOG9q86jCisjIOG6oCwg4bqhLCDhurgsIOG6uSwg4buMLCDhu40KKworIyBVc2VmdWwgdmFyaWFibGVzCisKKyRsb3dlciA9IFtbOmxhdGluOl1bOmdyZWVrOl0gJiBbOkxsOl1dOyAKKyRnbG93ZXIgPSBbWzpncmVlazpdICYgWzpMbDpdXTsgCiskdXBwZXIgPSBbWzpsYXRpbjpdWzpncmVlazpdICYgWzpMdTpdXSA7IAorJGFjY2VudCA9IFs6TTpdIDsKKworIyBOT1RFOiByZXN0cmljdCB0byBqdXN0IHRoZSBHcmVlayAmIExhdGluIGFjY2VudHMgdGhhdCB3ZSBjYXJlIGFib3V0CisjIFRPRE86IGJyb2FkZW4gb3V0IG9uY2UgaW50ZXJhdGlvbiBpcyBmaXhlZAorJGFjY2VudE1pbnVzID0gWyBbXHUwMzAwLVx1MDM0NV0gJiBbOk06XSAtIFtcdTAzMzhdXSA7CisKKyRtYWNyb24gPSBcdTAzMDQgOworJGRkb3QgPSBcdTAzMDggOworJGRkb3RtYWMgPSBbJGRkb3QkbWFjcm9uXTsKKworJGxjZ3Zvd2VsID0gW86xzrXOt865zr/Phc+JXSA7IAorJHVjZ3Zvd2VsID0gW86RzpXOl86Zzp/Opc6pXSA7IAorJGd2b3dlbCA9IFskbGNndm93ZWwgJHVjZ3Zvd2VsXSA7IAorJGxjZ3Zvd2VsQyA9IFskbGNndm93ZWwgJGFjY2VudF0gOyAKKworJGV2b3dlbCA9IFthZWlvdXlBRUlPVVldOworJGV2b3dlbDIgPSBbaXV5SVVZXTsKKyR2b3dlbCA9IFsgJGV2b3dlbCAkZ3Zvd2VsXSA7IAorCiskZ2FtbWFMaWtlID0gW86TzprOns6nzrPOus6+z4fPsF0gOyAKKyRlZ2FtbWFMaWtlID0gW0dLWENna3hjXSA7IAorJHNtb290aCA9IMyTIDsgCiskcm91Z2ggPSDMlCA7IAorJGlvdGFzdWIgPSDNhSA7IAorCiskZXZvd2VsX2kgPSBbJGV2b3dlbC1baUldXSA7CiskZXZvd2VsMl9pID0gW3V5VVldOworCiskdW5kZXJiYXIgPSBcdTAzMzE7CisKKyRhZnRlckxldHRlciA9IFs6TDpdIFtbOk06XVwnXSogOworJGJlZm9yZUxldHRlciA9IFtbOk06XVwnXSogWzpMOl0gOworJGJlZm9yZUxvd2VyID0gJGFjY2VudCAqICRsb3dlciA7IAorCiskbm90TGV0dGVyID0gW15bOkw6XVs6TTpdXSA7CiskdW5kZXIgPSDMsTsKKworIyBGaXggcHVuY3R1YXRpb24KKyMgcHJlc2VydmUgb3JpZ2luYWwKK1w6IDw+IFw6ICR1bmRlciA7CitcPyA8PiBcPyAkdW5kZXIgOworCitcOyA8PiBcPyA7CivCtyA8PiBcOiA7CisKKyMgQ0lSQ1VNRkxFWDogY29udmVydCBncmVlayBjaXJjdW1mbGV4IHRvIG5vcm1hbCBvbmUuIENvdWxkIHVzZSB0aWxkZSBvciBpbnZlcnRlZCBicmV2ZQorCitcdTAzNDIgPD4gXHUwMzAyIDsgCisKKyMgSU9UQTogY29udmVydCBpb3RhIHN1YnNjcmlwdCB0byBpb3RhCisjIGZpcnN0IG1ha2UgcHJldmlvdXMgYWxwaGEgbG9uZyEKKworJGFjY2VudF9taW51cyA9IFtbJGFjY2VudF0tWyRpb3Rhc3ViJG1hY3Jvbl1dOworCivOkSB9ICRhY2NlbnRfbWludXMgKiAkaW90YXN1YiA+IHwgzpEgJG1hY3JvbiA7ICAKK86xIH0gJGFjY2VudF9taW51cyAqICRpb3Rhc3ViID4gfCDOsSAkbWFjcm9uIDsgCisKKyMgbm93IGNvbnZlcnQgdG8gdXBwZXJjYXNlIGlmIGFmdGVyIHVwcGVyY2FzZSwgb3cgdG8gbG93ZXJjYXNlCisKKyR1cHBlciAkYWNjZW50ICogeyAkaW90YXN1YiA+IEkgOyAKKyRpb3Rhc3ViID4gaSA7IAorCit8ICQxICRpb3Rhc3ViIDwgKCRldm93ZWwgJG1hY3JvbiAkYWNjZW50TWludXMgKikgaSA7Cit8ICQxICRpb3Rhc3ViIDwgKCRldm93ZWwgJG1hY3JvbiAkYWNjZW50TWludXMgKikgSSA7CisKKyMgQlJFQVRISU5HCisKKyMgQ29udmVydCByb3VnaCBicmVhdGhpbmcgdG8gaCwgYW5kIG1vdmUgYmVmb3JlIGxldHRlcnMuCisKKyMgTWFrZSBBIGAgeCA9ID4gSCBhIHgKKworIM6RICgkbWFjcm9uPykgJHJvdWdoIH0gJGJlZm9yZUxvd2VyID4gSCB8IM6xICQxOyAKKyDOlSAkcm91Z2ggfSAkYmVmb3JlTG93ZXIgPiBIIHwgzrU7IAorIM6XICRyb3VnaCB9ICRiZWZvcmVMb3dlciA+IEggfCDOtyA7IAorIM6ZICgkZGRvdD8pICRyb3VnaCB9ICRiZWZvcmVMb3dlciA+IEggfCDOuSAgJDE7IAorIM6fICRyb3VnaCB9ICRiZWZvcmVMb3dlciA+IEggfCDOvyA7IAorIM6lICRyb3VnaCB9ICRiZWZvcmVMb3dlciA+IEggfCDPhSA7IAorIM6pICgkZGRvdD8pICRyb3VnaCB9ICRiZWZvcmVMb3dlciA+IEggfCDPiSAkMTsgCisKKyMgTWFrZSBBIHggYCA9ID4gSCBhIHgKKworzpEgKCRnbG93ZXIgJG1hY3Jvbj8pICRyb3VnaCA+IEggfCDOsSAkMSA7IAorzpUgKCRnbG93ZXIpICRyb3VnaCA+IEggfCDOtSAkMSA7IAorzpcgKCRnbG93ZXIpICRyb3VnaCA+IEggfCDOtyAkMSA7IAorzpkgKCRnbG93ZXIgJGRkb3Q/KSAkcm91Z2ggPiBIIHwgzrkgJDEgOyAKK86fICgkZ2xvd2VyKSAkcm91Z2ggPiBIIHwgzr8gJDEgOyAKK86lICgkZ2xvd2VyKSAkcm91Z2ggPiBIIHwgz4UgJDEgOyAKK86pICgkZ2xvd2VyICAkZGRvdD8pICRyb3VnaCA+IEggfCDPiSAkMSA7IAorCisjT3RoZXJ3aXNlLCBtYWtlIHggYCBpbnRvIGggeCBhbmQgWCBgIGludG8gSCBYCisKKygkbGNndm93ZWwgKyAkZGRvdG1hYz8gKSAkcm91Z2ggPiBoIHwgJDEgOyAKKygkZ3Zvd2VsICsgJGRkb3RtYWM/ICkgJHJvdWdoID4gSCB8ICQxIDsgCisKKyMgR28gYmFja3dhcmRzIHdpdGggSAorCit8ICQxICRyb3VnaCA8IGggKCRldm93ZWwgJG1hY3JvbiAkZGRvdD8gJGV2b3dlbDJfaSAkbWFjcm9uPykgOworfCAkMSAkcm91Z2ggPCBoICgkZXZvd2VsICRkZG90PyAkZXZvd2VsMiAkbWFjcm9uPykgOworfCAkMSAkcm91Z2ggPCBoICgkZXZvd2VsICRtYWNyb24/ICRkZG90PykgOworCit8ICQxICRyb3VnaCA8IEggKFtBRUlPVVldICRtYWNyb24gJGRkb3Q/ICRldm93ZWwyX2kgJG1hY3Jvbj8pIDsKK3wgJDEgJHJvdWdoIDwgSCAoW0FFSU9VWV0gJGRkb3Q/ICRldm93ZWwyICRtYWNyb24/KSA7Cit8ICQxICRyb3VnaCA8IEggKFtBRUlPVVldICRtYWNyb24/ICRkZG90PykgOworCisjIHRpdGxlY2FzZSwgaGF2ZSB0byBmaXggaW5kaXZpZHVhbGx5CisjIGluIHRoZSBmdXR1cmUsIHdlIHNob3VsZCBhZGQgJnVwcGVyY2FzZSgpIHRvIG1ha2UgdGhpcyBlYXNpZXIKKworfCBBICQxICRyb3VnaCA8IEggYSAoJG1hY3JvbiAgJGRkb3Q/ICRldm93ZWwyX2kgJG1hY3Jvbj8pIDsKK3wgRSAkMSAkcm91Z2ggPCBIIGUgKCRtYWNyb24gICRkZG90PyAkZXZvd2VsMl9pICRtYWNyb24/KSA7Cit8IEkgJDEgJHJvdWdoIDwgSCBpICgkbWFjcm9uICAkZGRvdD8gJGV2b3dlbDJfaSAkbWFjcm9uPykgOworfCBPICQxICRyb3VnaCA8IEggbyAoJG1hY3JvbiAgJGRkb3Q/ICRldm93ZWwyX2kgJG1hY3Jvbj8pIDsKK3wgVSAkMSAkcm91Z2ggPCBIIHUgKCRtYWNyb24gJGRkb3Q/ICRldm93ZWwyX2kgJG1hY3Jvbj8pIDsKK3wgWSAkMSAkcm91Z2ggPCBIIHkgKCRtYWNyb24gJGRkb3Q/ICRldm93ZWwyX2kgJG1hY3Jvbj8pIDsKKworfCBBICQxICRyb3VnaCA8IEggYSAoJGRkb3Q/ICRldm93ZWwyICRtYWNyb24/KSA7Cit8IEUgJDEgJHJvdWdoIDwgSCBlICgkZGRvdD8gJGV2b3dlbDIgJG1hY3Jvbj8pIDsKK3wgSSAkMSAkcm91Z2ggPCBIIGkgKCRkZG90PyAkZXZvd2VsMiAkbWFjcm9uPykgOworfCBPICQxICRyb3VnaCA8IEggbyAoJGRkb3Q/ICRldm93ZWwyICRtYWNyb24/KSA7Cit8IFUgJDEgJHJvdWdoIDwgSCB1ICgkZGRvdD8gJGV2b3dlbDIgJG1hY3Jvbj8pIDsKK3wgWSAkMSAkcm91Z2ggPCBIIHkgKCRkZG90PyAkZXZvd2VsMiAkbWFjcm9uPykgOworCit8IEEgJDEgJHJvdWdoIDwgSCBhICgkbWFjcm9uPyAkZGRvdD8gKSA7Cit8IEUgJDEgJHJvdWdoIDwgSCBlICgkbWFjcm9uPyAkZGRvdD8gKSA7Cit8IEkgJDEgJHJvdWdoIDwgSCBpICgkbWFjcm9uPyAkZGRvdD8gKSA7Cit8IE8gJDEgJHJvdWdoIDwgSCBvICgkbWFjcm9uPyAkZGRvdD8gKSA7Cit8IFUgJDEgJHJvdWdoIDwgSCB1ICgkbWFjcm9uPyAkZGRvdD8gKSA7Cit8IFkgJDEgJHJvdWdoIDwgSCB5ICgkbWFjcm9uPyAkZGRvdD8gKSA7CisKKyMgTm93IGRvIHNtb290aAorCisjZGVsZXRlIHNtb290aCBicmVhdGhpbmcgZm9yIExhdGluCiskc21vb3RoID4gOyAKKworIyBpbnNlcnQgaW4gR3JlZWsKKyMgdGhlIGFzc3VtcHRpb24gaXMgdGhhdCBhbGwgTWFya3MgYXJlIG9uIGxldHRlcnMuCisKKyB8ICQxICRzbW9vdGggPCAkbm90TGV0dGVyIHsgKFtyUl0pIH0gW15oSCRzbW9vdGgkcm91Z2hdIDsKKyB8ICQxICRzbW9vdGggPCAkbm90TGV0dGVyIHsgKCRldm93ZWwgJG1hY3Jvbj8gJGV2b3dlbDIgJG1hY3Jvbj8pIH0gW14kc21vb3RoJHJvdWdoXSA7CisgfCAkMSAkc21vb3RoIDwgJG5vdExldHRlciB7ICgkZXZvd2VsICRtYWNyb24/KSB9IFteJGV2b3dlbDIkc21vb3RoJHJvdWdoXSA7CisKKyMgVE9ETzogcHJlc2VydmUgc21vb3RoL3JvdWdoIGJyZWF0aGluZyBpZiBub3QgCisjIG9uIGluaXRpYWwgdm93ZWwgc2VxdWVuY2UKKworIyBuZWVkIHRvIGhhdmUgdGhlc2UgdXAgaGVyZSBzbyB0aGUgcnVsZXMgZG9uJ3QgbWFzaworCisjIHJlbW92ZSBub3cgc3VwZXJmbHVvdXMgbWFjcm9uIHdoZW4gcmV0dXJuaW5nCisKK86RIDwgQSAkbWFjcm9uIDsgIAorzrEgPCBhICRtYWNyb24gOyAKKworzrcgPD4gZSAkbWFjcm9uIDsKK86XIDw+IEUgJG1hY3JvbiA7CisKK8+GIDw+IHBoIDsgCivOqCB9ICRiZWZvcmVMb3dlciA8PiBQcyA7IAorzqggPD4gUFMgOyAKKworzqYgfSAkYmVmb3JlTG93ZXIgPD4gUGggOyAKK86mIDw+IFBIIDsKK8+IIDw+IHBzIDsgCisKK8+JIDw+IG8gJG1hY3JvbiA7CivOqSA8PiAgTyAkbWFjcm9uOworCisjIE5PUk1BTAorCivOsSA8PiBhIDsgCivOkSA8PiBBIDsgCisKK86yIDw+IGIgOyAKK86SIDw+IEIgOyAKKworzrMgfSAkZ2FtbWFMaWtlIDw+IG4gfSAkZWdhbW1hTGlrZSA7IAorzrMgPD4gZyA7IAorzpMgfSAkZ2FtbWFMaWtlIDw+IE4gfSAkZWdhbW1hTGlrZSA7IAorzpMgPD4gRyA7IAorCivOtCA8PiBkIDsgCivOlCA8PiBEIDsgCisKK861IDw+IGUgOyAKK86VIDw+IEUgOyAKKworzrYgPD4geiA7IAorzpYgPD4gWiA7IAorCivOuCA8PiB0aCA7IAorzpggfSAkYmVmb3JlTG93ZXIgPD4gVGggOyAKK86YIDw+IFRIIDsgCisKK865IDw+IGkgOyAKK86ZIDw+IEkgOyAKKworzrogPD4gayA7CivOmiA8PiBLIDsgCisKK867IDw+IGwgOyAKK86bIDw+IEwgOyAKKworzrwgPD4gbSA7IAorzpwgPD4gTSA7IAorCivOvSB9ICRnYW1tYUxpa2UgPiBuXCcgOyAKK869IDw+IG4gOyAKK86dIH0gJGdhbW1hTGlrZSA8PiBOXCcgOyAKK86dIDw+IE4gOyAKKworzr4gPD4geCA7IAorzp4gPD4gWCA7IAorCivOvyA8PiBvIDsgCivOnyA8PiBPIDsgCisKK8+AIDw+IHAgOyAKK86gIDw+IFAgOyAKKworz4EgJHJvdWdoIDw+IHJoOyAKK86hICRyb3VnaCB9ICRiZWZvcmVMb3dlciA8PiBSaCA7IAorzqEgJHJvdWdoIDw+IFJIIDsgCivPgSA8PiByIDsgCivOoSA8PiBSIDsgCisKKyMgaW5zZXJ0IHNlcGFyYXRvcgorCitbUHBdIHsgfSDPgiA+IFwnIDsgCitbUHBdIHsgfSDPgyA+IFwnIDsKKworIyB1bmRlcmJhciBtZWFucyBleGNlcHRpb24KKworIyBiZWZvcmUgYSBsZXR0ZXIsIGluaXRpYWwKK8+CIH0gJGJlZm9yZUxldHRlciA8PiBzICR1bmRlcmJhciB9ICRiZWZvcmVMZXR0ZXI7CivPgyB9ICRiZWZvcmVMZXR0ZXIgPD4gcyB9ICRiZWZvcmVMZXR0ZXI7CisKKyMgb3RoZXJ3aXNlLCBhZnRlciBhIGxldHRlciA9IGZpbmFsIAorJGFmdGVyTGV0dGVyIHsgz4MgPD4gJGFmdGVyTGV0dGVyIHsgcyAkdW5kZXJiYXI7CiskYWZ0ZXJMZXR0ZXIgeyDPgiA8PiAkYWZ0ZXJMZXR0ZXIgeyBzIDsKKworIyBvdGhlcndpc2UgKGlzb2xhdGVkKSA9IGluaXRpYWwKK8+CIDw+IHMgJHVuZGVyYmFyOworz4MgPD4gcyA7CisKK1tQcF0geyDOoyA8PiBcJ1MgOyAKK86jIDw+IFMgOyAKKworz4QgPD4gdCA7IAorzqQgPD4gVCA7IAorCiskdm93ZWwge8+FIH0gPD4gdSA7IAorz4UgPD4geSA7IAorJHZvd2VsIHsgzqUgPD4gVSA7IAorzqUgPD4gWSA7IAorCivPhyA8PiBjaCA7IAorzqcgfSAkYmVmb3JlTG93ZXIgPD4gQ2ggOyAKK86nIDw+IENIIDsgCisKKyMgQ29tcGxldGVuZXNzIGZvciBBU0NJSQorCiskaWdub3JlID0gW1s6TWFyazpdJyddICogOworCit8IGsgIDwgYyA7Cit8IHBoIDwgZiA7Cit8IGkgIDwgaiA7Cit8IGsgPCBxIDsKK3wgYiA8IHYgfSAkdm93ZWwgOworfCBiIDwgdyB9ICR2b3dlbDsKK3wgdSA8IHYgOworfCB1IDwgdzsKK3wgSyA8IEMgOworfCBQaCA8IEYgOworfCBJIDwgSiA7Cit8IEsgPCBRIDsKK3wgQiA8IFYgIH0gJHZvd2VsIDsKK3wgQiA8IFcgIH0gJHZvd2VsIDsKK3wgVSA8IFYgOworfCBVIDwgVyA7CisKKyRyb3VnaCB9ICRpZ25vcmUgWzpVcHBlcmNhc2VMZXR0ZXI6XSA+IEggOworJGlnbm9yZSBbOlVwcGVyY2FzZUxldHRlcjpdIHsgJHJvdWdoID4gSCA7Ciskcm91Z2ggPCBIIDsKKyRyb3VnaCA8PiBoIDsKKworIyBDb21wbGV0ZW5lc3MgZm9yIEdyZWVrCisKK8+QID4gfCDOsiA7CivPkSA+IHwgzrggOworz5IgPiB8IM6lIDsKK8+VID4gfCDPhiA7CivPliA+IHwgz4AgOworCivPsCA+IHwgzrogOworz7EgPiB8IM+BIDsKK8+yID4gfCDPgyA7CivPsyA+IGogOworz7QgPiB8IM6YIDsKK8+1ID4gfCDOtSA7CisKK8K1ID4gfCDOvCA7CisKKyDNuiA+IGk7CisKKyMgZGVsZXRlIGFueSB0cmFpbGluZyAnIG1hcmtzIHVzZWQgZm9yIHJvdW5kdHJpcHBpbmcKKworIDwgW86gz4BdIHsgXCcgfSBbU3NdIDsKKyA8IFvOnc69XSB7IFwnIH0gJGVnYW1tYUxpa2UgOworCis6Ok5GQyAoTkZEKSA7CisjIChbXHUwMDAwLVx1MDA3RiBbOkxhdGluOl0gWzpHcmVlazpdIFs6bm9uc3BhY2luZyBtYXJrOl1dKSA7CisjIChbXHUwMDAwLVx1MDA3RiBcdTAwQjcgWzpMYXRpbjpdIFs6bm9uc3BhY2luZyBtYXJrOl1dKSA7CisjIE1JTklNQUwgRklMVEVSIEdFTkVSQVRFRCBGT1I6IExhdGluLUdyZWVrIEJBQ0tXQVJECis6OiAoIFsnOj9BLVphLXpcdTAwQzAtXHUwMEM1XHUwMEM3LVx1MDBDRlx1MDBEMS1cdTAwRDZcdTAwRDktXHUwMEREXHUwMEUwLVx1MDBFNVx1MDBFNy1cdTAwRUZcdTAwRjEtXHUwMEY2XHUwMEY5LVx1MDBGRFx1MDBGRi1cdTAxMEZcdTAxMTItXHUwMTI1XHUwMTI4LVx1MDEzMFx1MDEzNC1cdTAxMzdcdTAxMzktXHUwMTNFXHUwMTQzLVx1MDE0OFx1MDE0Qy1cdTAxNTFcdTAxNTQtXHUwMTY1XHUwMTY4LVx1MDE3RVx1MDFBMC1cdTAxQTFcdTAxQUYtXHUwMUIwXHUwMUNELVx1MDFEQ1x1MDFERS1cdTAxRTNcdTAxRTYtXHUwMUYwXHUwMUY0LVx1MDFGNVx1MDFGOC1cdTAyMUJcdTAyMUUtXHUwMjFGXHUwMjI2LVx1MDIzM1x1MDMwMC1cdTAzMzdcdTAzMzktXHUwMzQ1XHUwMzg1LVx1MDM4Nlx1MDM4OC1cdTAzOEFcdTAzOENcdTAzOEUtXHUwMzkwXHUwM0FBLVx1MDNCMFx1MDNDQS1cdTAzQ0VcdTAzRDMtXHUwM0Q0XHUwNDAwLVx1MDQwMVx1MDQwM1x1MDQwN1x1MDQwQy1cdTA0MEVcdTA0MTlcdTA0MzlcdTA0NTAtXHUwNDUxXHUwNDUzXHUwNDU3XHUwNDVDLVx1MDQ1RVx1MDQ3Ni1cdTA0NzdcdTA0QzEtXHUwNEMyXHUwNEQwLVx1MDREM1x1MDRENi1cdTA0RDdcdTA0REEtXHUwNERGXHUwNEUyLVx1MDRFN1x1MDRFQS1cdTA0RjVcdTA0RjgtXHUwNEY5XHUxRTAwLVx1MUU5OVx1MUU5Qlx1MUVBMC1cdTFFRjlcdTFGMDAtXHUxRjE1XHUxRjE4LVx1MUYxRFx1MUYyMC1cdTFGNDVcdTFGNDgtXHUxRjREXHUxRjUwLVx1MUY1N1x1MUY1OVx1MUY1Qlx1MUY1RFx1MUY1Ri1cdTFGN0RcdTFGODAtXHUxRkI0XHUxRkI2LVx1MUZCQ1x1MUZDMS1cdTFGQzRcdTFGQzYtXHUxRkQzXHUxRkQ2LVx1MUZEQlx1MUZERC1cdTFGRUVcdTFGRjItXHUxRkY0XHUxRkY2LVx1MUZGQ1x1MjEyQS1cdTIxMkJdICkgOwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9HcmVla19MYXRpbl9VTkdFR04udHh0IGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9HcmVla19MYXRpbl9VTkdFR04udHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5ODc2OGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0dyZWVrX0xhdGluX1VOR0VHTi50eHQKQEAgLTAsMCArMSwyNDggQEAKK++7vyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb3B5cmlnaHQgKGMpIDE5OTktMjAwMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworIyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQXR0aWMvVHJhbnNsaXRlcmF0b3JfR3JlZWtfTGF0aW5fVU5HRUdOLnR4dCx2ICQKKyMgJERhdGU6IDIwMDIvMDcvMjYgMTY6MDk6MDQgJAorIyAkUmV2aXNpb246IDEuMiAkCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRm9yIG1vZGVybiBHcmVlaywgYmFzZWQgb24gVU5HRUdOIHJ1bGVzLgorCisjIFJ1bGVzIGFyZSBwcmVkaWNhdGVkIG9uIHJ1bm5pbmcgTkZEIGZpcnN0LCBhbmQgTkZDIGFmdGVyd2FyZHMKKyMgTUlOSU1BTCBGSUxURVIgR0VORVJBVEVEIEZPUjogR3JlZWstTGF0aW4vVU5HRUdOCisjIFdBUk5JTkc6IG5lZWQgdG8gYWRkIGFjY2VudHMgdG8gYm90aCBmaWx0ZXJzICMjIworIyA6OiBbzIHMhMyGzIg7wrXCt8OAw4LDiMOKw4zDjsOSw5TDmcObw6DDosOow6rDrMOuw7LDtMO5w7vEiC3EicScLcSdxKQtxKXEtC3EtcWcLcWdxbQtxbfHmy3HnMe4Lce5zIDMgsyTLcyUzYDNgi3Ng82FzbrNvs6GLc6KzozOji3Ooc6jLc+Oz5Atz5bPsC3PtdCA0I3RkNGd4biULeG4leG5kC3huZHhuoAt4bqB4bqQLeG6keG6pC3huq3hurAt4bqx4bq+LeG7h+G7kC3hu5nhu5wt4bud4buqLeG7q+G7si3hu7PhvIAt4byV4byYLeG8neG8oC3hvYXhvYgt4b2N4b2QLeG9l+G9meG9m+G9neG9ny3hvb3hvoAt4b604b62LeG+vOG+vuG/gS3hv4Thv4Yt4b+N4b+PLeG/k+G/li3hv5vhv53hv58t4b+t4b+yLeG/tOG/ti3hv7zihKZdIDsKKworOjogW1tbOkdyZWVrOl1bOk1uOl1bOk1lOl1dIFtcOi07P1x1MDBCN1x1MDM3RVx1MDM4N11dIDsKKzo6TkZEIChORkMpIDsKKworIyBVc2VmdWwgdmFyaWFibGVzCisKKyRsb3dlciA9IFtbOmxhdGluOl1bOmdyZWVrOl0gJiBbOkxsOl1dIDsKKyR1cHBlciA9IFtbOmxhdGluOl1bOmdyZWVrOl0gJiBbOkx1Ol1dIDsKKyRhY2NlbnQgPSBbWzpNbjpdWzpNZTpdXSA7CisKKyRtYWNyb24gPSDMhCA7CiskZGRvdCA9IMyIIDsKKworJGxjZ3Zvd2VsID0gW86xzrXOt865zr/Phc+JXSA7CiskdWNndm93ZWwgPSBbzpHOlc6XzpnOn86lzqldIDsKKyRndm93ZWwgPSBbJGxjZ3Zvd2VsICR1Y2d2b3dlbF0gOworJGxjZ3Zvd2VsQyA9IFskbGNndm93ZWwgJGFjY2VudF0gOworCiskZXZvd2VsID0gW2FlaW91eUFFSU9VWV07Ciskdm93ZWwgPSBbICRldm93ZWwgJGd2b3dlbF0gOworCiskYmVmb3JlTG93ZXIgPSAkYWNjZW50ICogJGxvd2VyIDsKKworJGdhbW1hTGlrZSA9IFvOk86azp7Op86zzrrOvs+Hz7BdIDsKKyRlZ2FtbWFMaWtlID0gW0dLWENna3hjXSA7Ciskc21vb3RoID0gzJMgOworJHJvdWdoID0gzJQgOworJGlvdGFzdWIgPSDNhSA7CisKKyRzb2Z0ZW5lciA9IFvOss6SzrPOk860zpTOts6WzrvOm868zpzOvc6dz4HOoSRndm93ZWxdIDsKKworJHVuZGVyID0gzLE7CisKKyRjYXJvbiA9IMyMOworCiskYWZ0ZXJMZXR0ZXIgPSBbOkw6XSBbXCckYWNjZW50XSogOworJGJlZm9yZUxldHRlciA9IFtcJyRhY2NlbnRdKiBbOkw6XSA7CisKKyMgRml4IHB1bmN0dWF0aW9uCisKKyMgcHJlc2VydmUgb3JnaW5hbAorXDogPD4gXDogJHVuZGVyIDsKK1w/IDw+IFw/ICR1bmRlciA7CisKK1w7IDw+IFw/IDsKK8K3IDw+IFw6IDsKKworIyBGaXggYW55IGFuY2llbnQgY2hhcmFjdGVycyB0aGF0IGNyZWVwIGluCisKK82CID4gzIEgOworzIIgPiDMgSA7CivMgCA+IMyBIDsKKyRzbW9vdGggPiA7Ciskcm91Z2ggPiA7CiskaW90YXN1YiA+IDsKK826ID4gOworCisjIG5lZWQgdG8gaGF2ZSB0aGVzZSB1cCBoZXJlIHNvIHRoZSBydWxlcyBkb24ndCBtYXNrCisKK863IDw+IGkgJHVuZGVyIDsKK86XIDw+IEkgJHVuZGVyIDsKKworzqggfSAkYmVmb3JlTG93ZXIgPD4gUHMgOworzqggPD4gUFMgOworz4ggPD4gcHMgOworCivPiSA8PiBvICR1bmRlciA7CivOqSA8PiAgTyAkdW5kZXI7CisKKyMgYXQgYmVnaW5pbmcgb3IgZW5kIG9mIHdvcmQsIGNvbnZlcnQgbXAgdG8gYgorCitbXls6TDpdJGFjY2VudF0geyDOvM+AID4gYiA7CivOvM+AIH0gW15bOkw6XSRhY2NlbnRdID4gYiA7CitbXls6TDpdJGFjY2VudF0geyBbzpzOvF1bzqDPgF0gPiBCIDsKK1vOnM68XVvOoM+AXSB9IFteWzpMOl0kYWNjZW50XSA+IEIgOworCivOvM+AIDwgYiA7CivOnM+AIDwgQiB9ICRiZWZvcmVMb3dlciA7CivOnM6gIDwgQiA7CisKKyMgaGFuZGxlIGRpcGh0aG9uZ3MgZW5kaW5nIHdpdGggdXBzaWxvbgorCivOv8+FIDw+IG91IDsKK86fzqUgPD4gT1UgOworzp/PhSA8PiBPdSA7CivOv86lIDw+IG9VIDsKKworJGZtYWtlciA9IFthZWlBRUldICR1bmRlciA/IDsKKyRzaGlmdEZvcndhcmRWb3dlbHMgPSBbWzpNbjpdLVtcdTAzMDhdXTsgIyBub3RlOiBhIGRpYWVyZXNpcyBrZWVwcyB0aGUgaXRlbXMgc2VwYXJhdGUKKworJGZtYWtlciB7IM+FICggJHNoaWZ0Rm9yd2FyZFZvd2VscyApKiB9ICRzb2Z0ZW5lciA+ICQxIHYgJHVuZGVyIDsKK8+FICQxIDwgKCAkc2hpZnRGb3J3YXJkVm93ZWxzICkqIHYgJHVuZGVyIDsKKworJGZtYWtlciB7IM+FICggJHNoaWZ0Rm9yd2FyZFZvd2VscyApKiB9ID4gJDEgZiAkdW5kZXI7CivPhSAkMSA8ICggJHNoaWZ0Rm9yd2FyZFZvd2VscyApKiBmICR1bmRlciA7CisKKyRmbWFrZXIgeyDOpSB9ICRzb2Z0ZW5lciA8PiBWICR1bmRlciA7CiskZm1ha2VyIHsgzqUgPD4gVSAkdW5kZXIgOworCivPhSA8PiB5IDsKK86lIDw+IFkgOworCisjIE5PUk1BTAorCivOsSA8PiBhIDsKK86RIDw+IEEgOworCivOsiA8PiB2IDsKK86SIDw+IFYgOworCivOsyB9ICRnYW1tYUxpa2UgPD4gbiB9ICRlZ2FtbWFMaWtlIDsKK86zIDw+IGcgOworzpMgfSAkZ2FtbWFMaWtlIDw+IE4gfSAkZWdhbW1hTGlrZSA7CivOkyA8PiBHIDsKKworzrQgPD4gZCA7CivOlCA8PiBEIDsKKworzrUgPD4gZSA7CivOlSA8PiBFIDsKKworzrYgPD4geiA7CivOliA8PiBaIDsKKworzrggPD4gdGggOworzpggfSAkYmVmb3JlTG93ZXIgPD4gVGggOworzpggPD4gVEggOworCivOuSA8PiBpIDsKK86ZIDw+IEkgOworCivOuiA8PiBrIDsKK86aIDw+IEsgOworCivOuyA8PiBsIDsKK86bIDw+IEwgOworCivOvCA8PiBtIDsKK86cIDw+IE0gOworCivOvSB9ICRnYW1tYUxpa2UgPiBuXCcgOworzr0gPD4gbiA7CivOnSB9ICRnYW1tYUxpa2UgPD4gTlwnIDsKK86dIDw+IE4gOworCivOviA8PiB4IDsKK86eIDw+IFggOworCivOvyA8PiBvIDsKK86fIDw+IE8gOworCivPgCA8PiBwIDsKK86gIDw+IFAgOworCivPgSA8PiByIDsKK86hIDw+IFIgOworCitbUHBdIHsgfSDPgiA+IFwnIDsKK1tQcF0geyB9IM+DID4gXCcgOworCisjIENhcm9uIG1lYW5zIGV4Y2VwdGlvbgorCisjIGJlZm9yZSBhIGxldHRlciwgaW5pdGlhbAorz4IgfSAkYmVmb3JlTGV0dGVyIDw+IHMgJHVuZGVyIH0gJGJlZm9yZUxldHRlcjsKK8+DIH0gJGJlZm9yZUxldHRlciA8PiBzIH0gJGJlZm9yZUxldHRlcjsKKworIyBvdGhlcndpc2UsIGFmdGVyIGEgbGV0dGVyID0gZmluYWwKKyRhZnRlckxldHRlciB7IM+DIDw+ICRhZnRlckxldHRlciB7IHMgJHVuZGVyOworJGFmdGVyTGV0dGVyIHsgz4IgPD4gJGFmdGVyTGV0dGVyIHsgcyA7CisKKyMgb3RoZXJ3aXNlIChpc29sYXRlZCkgPSBpbml0aWFsCivPgiA8PiBzICR1bmRlcjsKK8+DIDw+IHMgOworCitbUHBdIHsgzqMgPD4gXCdTIDsKK86jIDw+IFMgOworCivPhCA8PiB0IDsKK86kIDw+IFQgOworCivPhiA8PiBmIDsKK86mIDw+IEYgOworCivPhyA8PiBjaCA7CivOpyB9ICRiZWZvcmVMb3dlciA8PiBDaCA7CivOpyA8PiBDSCA7CisKKyMgQ29tcGxldGVuZXNzIGZvciBBU0NJSQorCisjICRpZ25vcmUgPSBbWzpNYXJrOl0nJ10gKiA7CisKK3wgY2ggPCBoIDsKK3wgayAgPCBjIDsKK3wgaSAgPCBqIDsKK3wgayA8IHEgOworfCBiIDwgdSB9ICR2b3dlbCA7Cit8IGIgPCB3IH0gJHZvd2VsIDsKK3wgeSA8IHUgOworfCB5IDwgdyA7CisKK3wgQ2ggPCBIIDsKK3wgSyA8IEMgOworfCBJIDwgSiA7Cit8IEsgPCBRIDsKK3wgQiA8IFcgfSAkdm93ZWwgOworfCBCIDwgVSB9ICR2b3dlbCA7Cit8IFkgPCBXIDsKK3wgWSA8IFUgOworCisjIENvbXBsZXRlbmVzcyBmb3IgR3JlZWsKKworz5AgPiB8IM6yIDsKK8+RID4gfCDOuCA7CivPkiA+IHwgzqUgOworz5UgPiB8IM+GIDsKK8+WID4gfCDPgCA7CisKK8+wID4gfCDOuiA7CivPsSA+IHwgz4EgOworz7IgPiB8IM+DIDsKK8+zID4gaiA7CivPtCA+IHwgzpggOworz7UgPiB8IM61IDsKK8K1ID4gfCDOvCA7CisKKyMgZGVsZXRlIGFueSB0cmFpbGluZyAnIG1hcmtzIHVzZWQgZm9yIHJvdW5kdHJpcHBpbmcKKworIDwgW86gz4BdIHsgXCcgfSBbU3NdIDsKKyA8IFvOnc69XSB7IFwnIH0gJGVnYW1tYUxpa2UgOworCis6Ok5GQyAoTkZEKSA7CisKKyMgTUlOSU1BTCBGSUxURVIgR0VORVJBVEVEIEZPUjogTGF0aW4tR3JlZWsvVU5HRUdOIEJBQ0tXQVJECis6OiAoW1tbOkxhdGluOl1bOk1uOl1bOk1lOl1dIFsnXDo/XV0pIDsKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfR3VqYXJhdGlfSW50ZXJJbmRpYy50eHQgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0d1amFyYXRpX0ludGVySW5kaWMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjk1MGJiMWEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0d1amFyYXRpX0ludGVySW5kaWMudHh0CkBAIC0wLDAgKzEsOTMgQEAKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb3B5cmlnaHQgKGMpIDE5OTktMjAwMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworIyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQXR0aWMvVHJhbnNsaXRlcmF0b3JfR3VqYXJhdGlfSW50ZXJJbmRpYy50eHQsdiAkCisjICREYXRlOiAyMDAyLzAzLzAyIDAwOjI3OjI3ICQKKyMgJFJldmlzaW9uOiAxLjUgJAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgR3VqYXJhdGktSW50ZXJJbmRpYworIzo6IE5GRCAoTkZDKSA7CitcdTBhODE+XHVlMDAxOyAjIFNJR04gQ0FORFJBQklORFUKK1x1MGE4Mj5cdWUwMDI7ICMgU0lHTiBBTlVTVkFSQQorXHUwYTgzPlx1ZTAwMzsgIyBTSUdOIFZJU0FSR0EKK1x1MGE4NT5cdWUwMDU7ICMgTEVUVEVSIEEKK1x1MGE4Nj5cdWUwMDY7ICMgTEVUVEVSIEFBCitcdTBhODc+XHVlMDA3OyAjIExFVFRFUiBJCitcdTBhODg+XHVlMDA4OyAjIExFVFRFUiBJSQorXHUwYTg5Plx1ZTAwOTsgIyBMRVRURVIgVQorXHUwYThhPlx1ZTAwYTsgIyBMRVRURVIgVVUKK1x1MGE4Yj5cdWUwMGI7ICMgTEVUVEVSIFZPQ0FMSUMgUgorXHUwYThkPlx1ZTAwZDsgIyBVTk1BUFBFRCBHdWphcmF0aS1JbnRlckluZGljOiBWT1dFTCBDQU5EUkEgRQorXHUwYThmPlx1ZTAwZjsgIyBMRVRURVIgRQorXHUwYTkwPlx1ZTAxMDsgIyBMRVRURVIgQUkKK1x1MGE5MT5cdWUwMTE7ICMgVU5NQVBQRUQgR3VqYXJhdGktSW50ZXJJbmRpYzogVk9XRUwgQ0FORFJBIE8KK1x1MGE5Mz5cdWUwMTM7ICMgTEVUVEVSIE8KK1x1MGE5ND5cdWUwMTQ7ICMgTEVUVEVSIEFVCitcdTBhOTU+XHVlMDE1OyAjIExFVFRFUiBLQQorXHUwYTk2Plx1ZTAxNjsgIyBMRVRURVIgS0hBCitcdTBhOTc+XHVlMDE3OyAjIExFVFRFUiBHQQorXHUwYTk4Plx1ZTAxODsgIyBMRVRURVIgR0hBCitcdTBhOTk+XHVlMDE5OyAjIExFVFRFUiBOR0EKK1x1MGE5YT5cdWUwMWE7ICMgTEVUVEVSIENBCitcdTBhOWI+XHVlMDFiOyAjIExFVFRFUiBDSEEKK1x1MGE5Yz5cdWUwMWM7ICMgTEVUVEVSIEpBCitcdTBhOWQ+XHVlMDFkOyAjIExFVFRFUiBKSEEKK1x1MGE5ZT5cdWUwMWU7ICMgTEVUVEVSIE5ZQQorXHUwYTlmPlx1ZTAxZjsgIyBMRVRURVIgVFRBCitcdTBhYTA+XHVlMDIwOyAjIExFVFRFUiBUVEhBCitcdTBhYTE+XHVlMDIxOyAjIExFVFRFUiBEREEKK1x1MGFhMj5cdWUwMjI7ICMgTEVUVEVSIERESEEKK1x1MGFhMz5cdWUwMjM7ICMgTEVUVEVSIE5OQQorXHUwYWE0Plx1ZTAyNDsgIyBMRVRURVIgVEEKK1x1MGFhNT5cdWUwMjU7ICMgTEVUVEVSIFRIQQorXHUwYWE2Plx1ZTAyNjsgIyBMRVRURVIgREEKK1x1MGFhNz5cdWUwMjc7ICMgTEVUVEVSIERIQQorXHUwYWE4Plx1ZTAyODsgIyBMRVRURVIgTkEKK1x1MGFhYT5cdWUwMmE7ICMgTEVUVEVSIFBBCitcdTBhYWI+XHVlMDJiOyAjIExFVFRFUiBQSEEKK1x1MGFhYz5cdWUwMmM7ICMgTEVUVEVSIEJBCitcdTBhYWQ+XHVlMDJkOyAjIExFVFRFUiBCSEEKK1x1MGFhZT5cdWUwMmU7ICMgTEVUVEVSIE1BCitcdTBhYWY+XHVlMDJmOyAjIExFVFRFUiBZQQorXHUwYWIwPlx1ZTAzMDsgIyBMRVRURVIgUkEKK1x1MGFiMj5cdWUwMzI7ICMgTEVUVEVSIExBCitcdTBhYjM+XHVlMDMzOyAjIExFVFRFUiBMTEEKK1x1MGFiNT5cdWUwMzU7ICMgTEVUVEVSIFZBCitcdTBhYjY+XHVlMDM2OyAjIExFVFRFUiBTSEEKK1x1MGFiNz5cdWUwMzc7ICMgTEVUVEVSIFNTQQorXHUwYWI4Plx1ZTAzODsgIyBMRVRURVIgU0EKK1x1MGFiOT5cdWUwMzk7ICMgTEVUVEVSIEhBCitcdTBhYmM+XHVlMDNjOyAjIFNJR04gTlVLVEEKK1x1MGFiZD5cdWUwM2Q7ICMgU0lHTiBBVkFHUkFIQQorXHUwYWJlPlx1ZTAzZTsgIyBWT1dFTCBTSUdOIEFBCitcdTBhYmY+XHVlMDNmOyAjIFZPV0VMIFNJR04gSQorXHUwYWMwPlx1ZTA0MDsgIyBWT1dFTCBTSUdOIElJCitcdTBhYzE+XHVlMDQxOyAjIFZPV0VMIFNJR04gVQorXHUwYWMyPlx1ZTA0MjsgIyBWT1dFTCBTSUdOIFVVCitcdTBhYzM+XHVlMDQzOyAjIFZPV0VMIFNJR04gVk9DQUxJQyBSCitcdTBhYzQ+XHVlMDQ0OyAjIFZPV0VMIFNJR04gVk9DQUxJQyBSUgorXHUwYWM1Plx1ZTA0NTsgIyBWT1dFTCBTSUdOIENBTkRSQSBFCitcdTBhYzc+XHVlMDQ3OyAjIFZPV0VMIFNJR04gRQorXHUwYWM4Plx1ZTA0ODsgIyBWT1dFTCBTSUdOIEFJCitcdTBhYzk+XHVlMDQ5OyAjIFZPV0VMIFNJR04gQ0FORFJBIE8KK1x1MGFjYj5cdWUwNGI7ICMgVk9XRUwgU0lHTiBPCitcdTBhY2M+XHVlMDRjOyAjIFZPV0VMIFNJR04gQVUKK1x1MGFjZD5cdWUwNGQ7ICMgU0lHTiBWSVJBTUEKK1x1MGFkMD5cdWUwNTA7ICMgT00KK1x1MGFlMD5cdWUwNjA7ICMgTEVUVEVSIFZPQ0FMSUMgUlIKK1x1MGFlNj5cdWUwNjY7ICMgRElHSVQgWkVSTworXHUwYWU3Plx1ZTA2NzsgIyBESUdJVCBPTkUKK1x1MGFlOD5cdWUwNjg7ICMgRElHSVQgVFdPCitcdTBhZTk+XHVlMDY5OyAjIERJR0lUIFRIUkVFCitcdTBhZWE+XHVlMDZhOyAjIERJR0lUIEZPVVIKK1x1MGFlYj5cdWUwNmI7ICMgRElHSVQgRklWRQorXHUwYWVjPlx1ZTA2YzsgIyBESUdJVCBTSVgKK1x1MGFlZD5cdWUwNmQ7ICMgRElHSVQgU0VWRU4KK1x1MGFlZT5cdWUwNmU7ICMgRElHSVQgRUlHSFQKK1x1MGFlZj5cdWUwNmY7ICMgRElHSVQgTklORQorXHUwOTY0Plx1ZTA2NDsgICAgICAgICMgREFOREEKK1x1MDk2NT5cdWUwNjU7ICAgICAgICAjIERPVUJMRSBEQU5EQQorIyAgICA6OiBORkMgKE5GRCkgOworIyBlb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfR3VybXVraGlfSW50ZXJJbmRpYy50eHQgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0d1cm11a2hpX0ludGVySW5kaWMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjYxNDFlNzEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0d1cm11a2hpX0ludGVySW5kaWMudHh0CkBAIC0wLDAgKzEsOTkgQEAKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb3B5cmlnaHQgKGMpIDE5OTktMjAwMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworIyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQXR0aWMvVHJhbnNsaXRlcmF0b3JfR3VybXVraGlfSW50ZXJJbmRpYy50eHQsdiAkCisjICREYXRlOiAyMDAyLzA4LzE0IDAwOjQwOjU4ICQKKyMgJFJldmlzaW9uOiAxLjExICQKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIEd1cm11a2hpLUludGVySW5kaWMKKyM6OiBORkQgKE5GQykgOworCisjXHUwQTE2XHUwQTNDPlx1RTA1OTsgIyBMRVRURVIgS0hIQQorI1x1MEExN1x1MEEzQz5cdUUwNUE7ICMgTEVUVEVSIEdISEEKKyNcdTBBMUNcdTBBM0M+XHVFMDVCOyAjIExFVFRFUiBaQQorI1x1MEEzOFx1MEEzQz5cdUUwMzY7ICMgTEVUVEVSIFNIQQorI1x1MEEzMlx1MEEzQz5cdUUwMzM7ICMgTEVUVEVSIExMQQorI1x1MEEyQlx1MEEzQz5cdUUwNUU7ICMgTEVUVEVSIEZBCisKK1x1MEEwMj5cdUUwMDI7ICAjIFNJR04gQklOREkKK1x1MEEwNT5cdUUwMDU7ICAjIExFVFRFUiBBCitcdTBBMDY+XHVFMDA2OyAgIyBMRVRURVIgQUEKK1x1MEEwNz5cdUUwMDc7ICAjIExFVFRFUiBJCitcdTBBMDg+XHVFMDA4OyAgIyBMRVRURVIgSUkKK1x1MEEwOT5cdUUwMDk7ICAjIExFVFRFUiBVCitcdTBBMEE+XHVFMDBBOyAgIyBMRVRURVIgVVUKK1x1MEEwQz47ICAjIFVOTUFQUEVEIAorXHUwQTBGPlx1RTAwRjsgICMgTEVUVEVSIEVFCitcdTBBMTA+XHVFMDEwOyAgIyBMRVRURVIgQUkKK1x1MEExMz5cdUUwMTM7ICAjIExFVFRFUiBPTworXHUwQTE0Plx1RTAxNDsgICMgTEVUVEVSIEFVCitcdTBBMTU+XHVFMDE1OyAgIyBMRVRURVIgS0EKK1x1MEExNj5cdUUwMTY7ICAjIExFVFRFUiBLSEEKK1x1MEExNz5cdUUwMTc7ICAjIExFVFRFUiBHQQorXHUwQTE4Plx1RTAxODsgICMgTEVUVEVSIEdIQQorXHUwQTE5Plx1RTAxOTsgICMgTEVUVEVSIE5HQQorXHUwQTFBPlx1RTAxQTsgICMgTEVUVEVSIENBCitcdTBBMUI+XHVFMDFCOyAgIyBMRVRURVIgQ0hBCitcdTBBMUM+XHVFMDFDOyAgIyBMRVRURVIgSkEKK1x1MEExRD5cdUUwMUQ7ICAjIExFVFRFUiBKSEEKK1x1MEExRT5cdUUwMUU7ICAjIExFVFRFUiBOWUEKK1x1MEExRj5cdUUwMUY7ICAjIExFVFRFUiBUVEEKK1x1MEEyMD5cdUUwMjA7ICAjIExFVFRFUiBUVEhBCitcdTBBMjE+XHVFMDIxOyAgIyBMRVRURVIgRERBCitcdTBBMjI+XHVFMDIyOyAgIyBMRVRURVIgRERIQQorXHUwQTIzPlx1RTAyMzsgICMgTEVUVEVSIE5OQQorXHUwQTI0Plx1RTAyNDsgICMgTEVUVEVSIFRBCitcdTBBMjU+XHVFMDI1OyAgIyBMRVRURVIgVEhBCitcdTBBMjY+XHVFMDI2OyAgIyBMRVRURVIgREEKK1x1MEEyNz5cdUUwMjc7ICAjIExFVFRFUiBESEEKK1x1MEEyOD5cdUUwMjg7ICAjIExFVFRFUiBOQQorXHUwQTJBPlx1RTAyQTsgICMgTEVUVEVSIFBBCitcdTBBMkI+XHVFMDJCOyAgIyBMRVRURVIgUEhBCitcdTBBMkM+XHVFMDJDOyAgIyBMRVRURVIgQkEKK1x1MEEyRD5cdUUwMkQ7ICAjIExFVFRFUiBCSEEKK1x1MEEyRT5cdUUwMkU7ICAjIExFVFRFUiBNQQorXHUwQTJGPlx1RTAyRjsgICMgTEVUVEVSIFlBCitcdTBBMzA+XHVFMDMwOyAgIyBMRVRURVIgUkEKK1x1MEEzMj5cdUUwMzI7ICAjIExFVFRFUiBMQQorXHUwYTMzPlx1RTAzMzsgIyBGQUxMQkFDSworXHUwQTM1Plx1RTAzNTsgICMgTEVUVEVSIFZBCitcdTBhMzY+XHVlMDM2OworXHUwQTM4XDBhM2M+XHVlMDM2OworXHUwQTM4Plx1RTAzODsgICMgTEVUVEVSIFNBCitcdTBBMzk+XHVFMDM5OyAgIyBMRVRURVIgSEEKK1x1MEEzQz5cdUUwM0M7ICAjIFNJR04gTlVLVEEKK1x1MEEzRT5cdUUwM0U7ICAjIFZPV0VMIFNJR04gQUEKK1x1MEEzRj5cdUUwM0Y7ICAjIFZPV0VMIFNJR04gSQorXHUwQTQwPlx1RTA0MDsgICMgVk9XRUwgU0lHTiBJSQorXHUwQTQxPlx1RTA0MTsgICMgVk9XRUwgU0lHTiBVCitcdTBBNDI+XHVFMDQyOyAgIyBWT1dFTCBTSUdOIFVVCitcdTBBNDc+XHVFMDQ3OyAgIyBWT1dFTCBTSUdOIEVFCitcdTBBNDg+XHVFMDQ4OyAgIyBWT1dFTCBTSUdOIEFJCitcdTBBNEI+XHVFMDRCOyAgIyBWT1dFTCBTSUdOIE9PCitcdTBBNEM+XHVFMDRDOyAgIyBWT1dFTCBTSUdOIEFVCitcdTBBNEQ+XHVFMDREOyAgIyBTSUdOIFZJUkFNQQorCitcdTBBNUM+XHVFMDVDOyAgIyBMRVRURVIgUlJBCisKK1x1MEE2Nj5cdUUwNjY7ICAjIERJR0lUIFpFUk8KK1x1MEE2Nz5cdUUwNjc7ICAjIERJR0lUIE9ORQorXHUwQTY4Plx1RTA2ODsgICMgRElHSVQgVFdPCitcdTBBNjk+XHVFMDY5OyAgIyBESUdJVCBUSFJFRQorXHUwQTZBPlx1RTA2QTsgICMgRElHSVQgRk9VUgorXHUwQTZCPlx1RTA2QjsgICMgRElHSVQgRklWRQorXHUwQTZDPlx1RTA2QzsgICMgRElHSVQgU0lYCitcdTBBNkQ+XHVFMDZEOyAgIyBESUdJVCBTRVZFTgorXHUwQTZFPlx1RTA2RTsgICMgRElHSVQgRUlHSFQKK1x1MEE2Rj5cdUUwNkY7ICAjIERJR0lUIE5JTkUKK1x1MEE3MD5cdUUwNzA7ICAjIFRJUFBJCitcdTBBNzE+XHVFMDcxOyAgIyBBRERBSworXHUwQTcyPlx1RTA3MjsgICMgSVJJCitcdTBBNzM+XHVFMDczOyAgIyBVUkEKK1x1MEE3ND5cdUUwNzQ7ICAjIEVLIE9OS0FSCitcdTA5NjQ+XHVlMDY0OyAgICAgICAgIyBEQU5EQQorXHUwOTY1Plx1ZTA2NTsgICAgICAgICMgRE9VQkxFIERBTkRBCisjICAgIDo6IE5GQyAoTkZEKSA7CisjIGVvZgorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0hhbl9MYXRpbi50eHQgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0hhbl9MYXRpbi50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNThiODE2ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfSGFuX0xhdGluLnR4dApAQCAtMCwwICsxLDI1NDI5IEBACivvu78jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0F0dGljL1RyYW5zbGl0ZXJhdG9yX0hhbl9MYXRpbi50eHQsdiAkCisjICREYXRlOiAyMDAyLzA3LzI5IDIxOjAxOjA3ICQKKyMgJFJldmlzaW9uOiAxLjUgJAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgV2FybmluZzogZG9lcyBub3QgZG8gcm91bmQtdHJpcCBtYXBwaW5nISEKKworIyBDb252ZXJ0IENKSyBjaGFyYWN0ZXJzCisjIyA6OiAoaGFsZndpZHRoLWZ1bGx3aWR0aCk7CisKKyR0ZXJtaW5hbFB1bmN0ID0gW1wuXCxcOlw7XD9cIe+8ju+8jO+8mu+8n++8geOAguOAge+8m1s6UGU6XVs6UGY6XV07CiskaW5pdGlhbFB1bmN0ID0gWzpQczpdWzpQaTpdOworCisjIGFkZCBzcGFjZSBiZXR3ZWVuIGFueSB0ZXJtaW5hbCBwdW5jdHVhdGlvbiBhbmQgbGV0dGVycywgYW5kCisjIGJldHdlZW4gbGV0dGVycyBhbmQgSGFuIG9yIGluaXRpYWwgcHVuY3QKKworJHRlcm1pbmFsUHVuY3QgeyB9IFs6TDpdID4gJyAnOworWzpMOl0geyB9IFtbOkhhbjpdICRpbml0aWFsUHVuY3RdID4gJyAnOworCisjIGJlbG93LCB0aGUgcnVsZXMgYWRkIHNwYWNlIGFmdGVyIGlkZW9ncmFwaHMuIFJlbW92ZSB0aGF0IHNwYWNlIGJlZm9yZSB0ZXJtaW5hbHMKK3sgJyAnIH0gJHRlcm1pbmFsUHVuY3QgPiA7CisKKyMgcmVtb3ZlIGFsbCBzcGFjZXMgZ29pbmcgYmFja3dhcmRzCisjIyA8ICcgJzsKKworIyBTdGFydCBSQVcgZGF0YSBmb3IgY29udmVydGluZyBDSksgY2hhcmFjdGVycwor5Y+MPnNodWFuZ3xcIDsKK+WImz5jaHXDoG5nfFwgOwor56qXPmNodWFuZ3xcIDsKK+eKtj56aHXDoG5nfFwgOwor5bqKPmNodcOhbmd8XCA7CivluoQ+emh1YW5nfFwgOwor5pKePnpodcOgbmd8XCA7Civlo64+emh1w6BuZ3xcIDsKK+mXrz5jaHXEg25nfFwgOwor54i9PnNodcSDbmd8XCA7CivlpoY+emh1YW5nfFwgOwor5qGpPnpodWFuZ3xcIDsKK+mcnD5zaHVhbmd8XCA7CivluaI+Y2h1w6FuZ3xcIDsKK+iRsT5jaHVhbmd8XCA7Civnlq4+Y2h1YW5nfFwgOwor5oCGPmNodcOgbmd8XCA7CivliZA+Y2h1YW5nfFwgOwor5a2APnNodWFuZ3xcIDsKK+aztj5zaHVhbmd8XCA7CivnlpI+Y2h1w6FuZ3xcIDsKK+m5tD5zaHVhbmd8XCA7CivpuJg+c2h1YW5nfFwgOwor6beePnNodWFuZ3xcIDsKK+mqpj5zaHVhbmd8XCA7CivpqaY+c2h1YW5nfFwgOwor6ai7PnNodcSDbmd8XCA7CivpqLo+c2h1YW5nfFwgOwor6ZuZPnNodWFuZ3xcIDsKK+mXlj5jaHXEg25nfFwgOwor6KOdPnpodWFuZ3xcIDsKK+iOij56aHVhbmd8XCA7CivojZg+emh1YW5nfFwgOwor6ImtPnNodWFuZ3xcIDsKK+e4lD5zaHXEg25nfFwgOwor57OaPnpodWFuZ3xcIDsKK+equz5jaHVhbmd8XCA7CivnqpM+Y2h1YW5nfFwgOwor56S1PnNodWFuZ3xcIDsKK+eYoT5jaHVhbmd8XCA7CivnjYo+Y2h1w6BuZ3xcIDsKK+eLgD56aHXDoG5nfFwgOwor54mVPmNodWFuZ3xcIDsKK+eJjj5jaHVhbmd8XCA7CivniYA+Y2h1w6FuZ3xcIDsKK+eIvD5zaHVhbmd8XCA7CivnhIs+emh1w6BuZ3xcIDsKK+eBgD5zaHXDoG5nfFwgOwor5ry6PmNodcSDbmd8XCA7CivmrIY+c2h1YW5nfFwgOwor5qmmPmNodcOhbmd8XCA7CivmqIk+c2h1xINuZ3xcIDsKK+aogT56aHVhbmd8XCA7Civmook+emh1YW5nfFwgOwor5pKdPmNodcOhbmd8XCA7CivmkaQ+Y2h1xINuZ3xcIDsKK+aRkD5jaHVhbmd8XCA7CivmiKc+Y2h1YW5nfFwgOwor5oiHPnpodcOgbmd8XCA7CivmhaE+c2h1xINuZ3xcIDsKK+aEtD5jaHXDoG5nfFwgOwor5a2HPnNodWFuZ3xcIDsKK+WopD56aHVhbmd8XCA7Civlpp0+emh1YW5nfFwgOwor5aO1PnpodcOgbmd8XCA7Civlo68+emh1w6BuZ3xcIDsKK+WhvT5zaHXEg25nfFwgOwor5ZuvPmNodWFuZ3xcIDsKK+WZhz5jaHXDoW5nfFwgOwor5Ym1PmNodWFuZ3xcIDsKK+WJrT5jaHVhbmd8XCA7CivliZk+Y2h1w6BuZ3xcIDsKK+WJjz5jaHVhbmd8XCA7CivliLE+Y2h1w6BuZ3xcIDsKK+WIkz5jaHVhbmd8XCA7CivliIU+Y2h1YW5nfFwgOwor5K2aPmNodcOhbmd8XCA7Civkq6o+c2h1xINuZ3xcIDsKK+ShtD5jaHXDoW5nfFwgOwor5KGvPnNodcOgbmd8XCA7CivkmpI+Y2h1w6FuZ3xcIDsKK+SXrj5zaHXEg25nfFwgOwor5I6rPmNodcOgbmd8XCA7Civkh6w+Y2h1xINuZ3xcIDsKK+SDpT5jaHXDoW5nfFwgOwor47y9PnNodcSDbmd8XCA7CivjtYI+Y2h1xINuZ3xcIDsKK+OmvD5zaHXDoG5nfFwgOwor46GWPmNodcOhbmd8XCA7CivkuK0+emhvbmd8XCA7CivkuIo+c2jDoG5nfFwgOwor55SfPnNoZW5nfFwgOwor5oiQPmNow6luZ3xcIDsKK+aDsz54acSDbmd8XCA7CivkuKQ+bGnEg25nfFwgOwor6ZW/PmNow6FuZ3xcIDsKK+Wwhj5qaWFuZ3xcIDsKK+enjT56aMWPbmd8XCA7Civlo7A+c2hlbmd8XCA7CivlkJE+eGnDoG5nfFwgOwor5q2jPnpoZW5nfFwgOwor6YeNPmNow7NuZ3xcIDsKK+ebuD54aWFuZ3xcIDsKK+aUvz56aGVuZ3xcIDsKK+Wcuj5jaMOhbmd8XCA7CivlvKA+emhhbmd8XCA7CivluLg+Y2jDoW5nfFwgOwor5YWJPmd1YW5nfFwgOwor6LGhPnhpw6BuZ3xcIDsKK+S8oD5jaHXDoW58XCA7Civln44+Y2jDqW5nfFwgOwor5by6Pmppw6BuZ3xcIDsKK+i9rD56aHXEg258XCA7Civph48+bGnDoW5nfFwgOwor5LyXPnpow7JuZ3xcIDsKK+eoiz5jaMOpbmd8XCA7CivmsZ8+amlhbmd8XCA7Civpu4Q+aHXDoW5nfFwgOwor5ZWGPnNoYW5nfFwgOwor5YOPPnhpw6BuZ3xcIDsKK+mmmT54aWFuZ3xcIDsKK+S4kz56aHVhbnxcIDsKK+S6iT56aGVuZ3xcIDsKK+iusj5qacSDbmd8XCA7CivlhrI+Y2hvbmd8XCA7Civor4E+emjDqG5nfFwgOwor5ZONPnhpxINuZ3xcIDsKK+ensD5jaGVuZ3xcIDsKK+aVtD56aMSVbmd8XCA7CivkvKQ+c2hhbmd8XCA7Civmjow+emjEg25nfFwgOwor55yBPnNoxJVuZ3xcIDsKK+ijhT5jaMSVbmd8XCA7CivlhrU+a3XDoG5nfFwgOwor5aiYPm5pw6FuZ3xcIDsKK+mhuT54acOgbmd8XCA7Civnq6A+emhhbmd8XCA7CivlhYQ+eGlvbmd8XCA7Civmib8+Y2jDqW5nfFwgOwor5LmhPnhpYW5nfFwgOwor56m/PmNodWFufFwgOwor6IOcPnNoZW5nfFwgOwor55qHPmh1w6FuZ3xcIDsKK+S6rj5sacOgbmd8XCA7Civpm4Q+eGnDs25nfFwgOwor5aWWPmppxINuZ3xcIDsKK+iIuT5jaHXDoW58XCA7CivlsJo+c2jDoG5nfFwgOwor5Y6CPmNoxINuZ3xcIDsKK+WFhT5jaG9uZ3xcIDsKK+iJrz5sacOhbmd8XCA7CivkuIg+emjDoG5nfFwgOwor5p6qPnFpYW5nfFwgOwor6ZmNPmppw6BuZ3xcIDsKK+WNhz5zaGVuZ3xcIDsKK+WUsT5jaMOgbmd8XCA7CivlvoE+emhlbmd8XCA7Civlopk+cWnDoW5nfFwgOwor6LeDPnFpw6BuZ3xcIDsKK+aKoj5jaGVuZ3xcIDsKK+iDuD54aW9uZ3xcIDsKK+S5mD5jaMOpbmd8XCA7Civnm5s+Y2jDqW5nfFwgOwor6K+aPmNow6luZ3xcIDsKK+eLgj5rdcOhbmd8XCA7Civlt50+Y2h1YW58XCA7Civnsq4+bGnDoW5nfFwgOwor6L6GPmxpw6BuZ3xcIDsKK+S6qz54acSDbmd8XCA7Civnqbc+cWnDs25nfFwgOwor5qKBPmxpw6FuZ3xcIDsKK+i1jz5zaMSDbmd8XCA7Civlh4k+bGnDoW5nfFwgOwor6I2SPmh1YW5nfFwgOwor5b+gPnpob25nfFwgOwor566xPnhpYW5nfFwgOwor5biQPnpow6BuZ3xcIDsKK+mDkT56aMOobmd8XCA7Civliak+c2jDqG5nfFwgOwor5pmDPmh1xINuZ3xcIDsKK+WHtj54aW9uZ3xcIDsKK+W0hz5jaMOzbmd8XCA7Civor6Y+eGnDoW5nfFwgOwor5rGkPnNoYW5nfFwgOwor5oyjPnpoZW5nfFwgOwor6JKLPmppYW5nfFwgOwor56WlPnhpw6FuZ3xcIDsKK+aRlD5zaHVhaXxcIDsKK+S7lz56aMOgbmd8XCA7Civpmpw+emjDoG5nfFwgOwor54aKPnhpw7NuZ3xcIDsKK+WwnT5jaMOhbmd8XCA7Civnm5c+Y2jDqW5nfFwgOwor5oWMPmh1YW5nfFwgOwor54myPnNoZW5nfFwgOwor5LiyPmNodcOgbnxcIDsKK+WBvz5jaMOhbmd8XCA7CivmmIw+Y2hhbmd8XCA7CivmgJQ+emhlbmd8XCA7CivnloY+amlhbmd8XCA7Civomas+Y2jDs25nfFwgOwor57uzPnNow6luZ3xcIDsKK+a2qD56aMSDbmd8XCA7Civnn78+a3XDoG5nfFwgOwor55WFPmNow6BuZ3xcIDsKK+S7sj56aMOybmd8XCA7CivmkpE+Y2hlbmd8XCA7CivosIU+bGnDoG5nfFwgOwor6IKgPmNow6FuZ3xcIDsKK+i1mj56aHXDoG58XCA7Civov4g+Z3XEg25nfFwgOwor5ZGIPmNow6luZ3xcIDsKK+ihtz56aG9uZ3xcIDsKK+eXhz56aGVuZ3xcIDsKK+eglj56aHVhbnxcIDsKK+ilhD54aWFuZ3xcIDsKK+W4hT5zaHXDoGl8XCA7Civmg7Y+aHXDoW5nfFwgOwor5ZaYPmNodcSDbnxcIDsKK+iFlD5xaWFuZ3xcIDsKK+WMoD5qacOgbmd8XCA7CivmuZg+eGlhbmd8XCA7CivnhYw+aHXDoW5nfFwgOwor5be3Pnhpw6BuZ3xcIDsKK+iwjj5odcSDbmd8XCA7CivljqI+eGlhbmd8XCA7Civogr8+emjFj25nfFwgOwor6IOAPnpow6BuZ3xcIDsKK+eQvD5xacOzbmd8XCA7Civlp5w+amlhbmd8XCA7CivlgKE+Y2jDoG5nfFwgOwor5pmMPnNoxINuZ3xcIDsKK+WDtT5qaWFuZ3xcIDsKK+aBjT5odcSDbmd8XCA7Civmg6k+Y2jDqW5nfFwgOwor5a6gPmNoxY9uZ3xcIDsKK+eUqT5zaHXEg2l8XCA7CivmvoQ+Y2jDqW5nfFwgOwor6YWxPmppw6BuZ3xcIDsKK+i0pj56aMOgbmd8XCA7CivmkrA+emh1w6BufFwgOwor6JK4PnpoZW5nfFwgOwor5pe3Pmt1w6BuZ3xcIDsKK+ahhj5rdcOgbmd8XCA7CivpgJs+Z3XDoG5nfFwgOwor5YyIPnhpb25nfFwgOwor6ZOuPnpoZW5nfFwgOwor5rWGPmppYW5nfFwgOwor6YW/Pm5pw6FuZ3xcIDsKK+aVnj5jaMSDbmd8XCA7CivojYY+Y2h1xINufFwgOwor57+UPnhpw6FuZ3xcIDsKK+aPoz5jaHVhaXxcIDsKK+axuT54aW9uZ3xcIDsKK+ijsz5jaMOhbmd8XCA7CivnrJk+c2hlbmd8XCA7CivnnLY+a3XDoG5nfFwgOwor6ZS6Pnpob25nfFwgOwor562dPnpoZW5nfFwgOwor6ZW2PnhpYW5nfFwgOwor5oCFPmNow6BuZ3xcIDsKK+eqmD5qacWPbmd8XCA7CivlvbA+emhhbmd8XCA7CivmqaE+eGnDoG5nfFwgOwor5ZGbPnFpYW5nfFwgOwor54KvPmppxY9uZ3xcIDsKK+WHsD5odcOhbmd8XCA7CivpgJ4+Y2jElW5nfFwgOwor55KLPnpoYW5nfFwgOwor562QPmt1YW5nfFwgOwor6LiJPmxpw6FuZ3xcIDsKK+i3hD5xaWFuZ3xcIDsKK+ahqD5jaG9uZ3xcIDsKK+W5jD5odcSDbmd8XCA7CivnsrE+bGnDoW5nfFwgOwor5ou0PnNodWFufFwgOwor55KcPmh1w6FuZ3xcIDsKK+e8sD5qaWFuZ3xcIDsKK+W/oT5jaG9uZ3xcIDsKK+WovD5jaGFuZ3xcIDsKK+aLrz56aMSVbmd8XCA7CivnjJY+Y2hhbmd8XCA7Civor48+a3XDoW5nfFwgOwor6ZepPnNodWFufFwgOwor5oanPmNob25nfFwgOwor5b61PnpoZW5nfFwgOwor55SlPnNoZW5nfFwgOwor56ekPmNoxJVuZ3xcIDsKK+a2rj5zaHXDoG58XCA7Civmmb4+bGnDoG5nfFwgOwor6Li5PmNodcOgaXxcIDsKK+auhz5zaGFuZ3xcIDsKK+W4pz56aMOobmd8XCA7Civpqos+Y2jElW5nfFwgOwor5YyhPmt1YW5nfFwgOwor6Li1PnpoxY9uZ3xcIDsKK+epuT5xacOzbmd8XCA7Civnr4Y+emh1w6BufFwgOwor5qmZPmNow6luZ3xcIDsKK+ewpz5odcOhbmd8XCA7Civlvqg+aHXDoW5nfFwgOwor5LiePmNow6luZ3xcIDsKK+agkz5zaHVhbnxcIDsKK+i/pT5qacWPbmd8XCA7Civnm4U+emhvbmd8XCA7CivonZc+aHXDoW5nfFwgOwor6ZS1PnFpYW5nfFwgOwor57ubPmppw6BuZ3xcIDsKK+iMpz5jaMOzbmd8XCA7CivmvLM+emhhbmd8XCA7CivnnqA+Y2hlbmd8XCA7Civnvow+cWlhbmd8XCA7Civppbc+eGnEg25nfFwgOwor6J+APnNodcOgaXxcIDsKK+W5mz56aMOgbmd8XCA7Civpo6g+eGnEg25nfFwgOwor5r2iPmh1w6FuZ3xcIDsKK+WGoj56aMWPbmd8XCA7CivnmLQ+emjDoG5nfFwgOwor6ZOOPmNoZW5nfFwgOwor6JS3PnFpw6FuZ3xcIDsKK+aIlT5xaWFuZ3xcIDsKK+ejuj5odcOhbmd8XCA7Civnip8+amnDoG5nfFwgOwor54q3Pmd1xINuZ3xcIDsKK+WSoz5ndWFuZ3xcIDsKK+W/qj56aG9uZ3xcIDsKK+aonz56aGFuZ3xcIDsKK+mCnT5rdcOgbmd8XCA7Civlq6Y+Y2jDoW5nfFwgOwor6ZSDPnpow6huZ3xcIDsKK+mBkT5odcOhbmd8XCA7CivnjZA+emhhbmd8XCA7Civlvpw+Y2jDoW5nfFwgOwor5rmfPmh1w6FuZ3xcIDsKK+majT5odcOhbmd8XCA7CivltoI+emjDoG5nfFwgOwor5qS9PmNodcOhbnxcIDsKK+iDsT5ndWFuZ3xcIDsKK+eIvz5xacOhbmd8XCA7Civor7M+a3XDoW5nfFwgOwor6J+RPnpoYW5nfFwgOwor6KWBPnFpxINuZ3xcIDsKK+iCkz5odWFuZ3xcIDsKK+mTsz5jaMOybmd8XCA7CivkvKU+Y2hhbmd8XCA7Civop54+c2hhbmd8XCA7CivoiII+Y2hvbmd8XCA7Civor6Q+emhlbmd8XCA7CivnhrU+c2hhbmd8XCA7CivmsIU+Y2jEg25nfFwgOwor6aqnPnhpYW5nfFwgOwor6K+uPmt1w6BuZ3xcIDsKK+evgT5odcOhbmd8XCA7CivlmKw+Y2h1w6BpfFwgOwor6IibPmNodcSDbnxcIDsKK+WVrT56aHXDoG58XCA7CivpppQ+emh1w6BufFwgOwor6ZKPPmNodcOgbnxcIDsKK+aIlz5xaWFuZ3xcIDsKK+Wikj5zaGFuZ3xcIDsKK+ivkz5rdWFuZ3xcIDsKK+iMlT5xacOzbmd8XCA7Civon6U+aHXDoW5nfFwgOwor5pmfPnNow6huZ3xcIDsKK+WcuT5rdcOgbmd8XCA7Civngp0+cWnDoG5nfFwgOwor5bWKPnNow6huZ3xcIDsKK+e8gz54aWFuZ3xcIDsKK+mBhD5jaHXDoW58XCA7Civpsp4+eGnEg25nfFwgOwor6LGHPmppYW5nfFwgOwor6ZWqPnFpYW5nfFwgOwor6a2JPmxpxINuZ3xcIDsKK+ibqT5xacOzbmd8XCA7Civoj5Y+Y2hhbmd8XCA7Civlq7E+cWnDoW5nfFwgOwor6YKbPnFpw7NuZ3xcIDsKK+mimz56aHVhbnxcIDsKK+ijjj5jaMOpbmd8XCA7CivmmLY+Y2jEg25nfFwgOwor6JyjPnFpYW5nfFwgOwor6JuPPmNoZW5nfFwgOwor6ICpPmppxINuZ3xcIDsKK+mysz5jaGFuZ3xcIDsKK+i0tj5rdcOgbmd8XCA7CivluqA+eGnDoW5nfFwgOwor6IqXPnhpYW5nfFwgOwor5Z+VPmNow6luZ3xcIDsKK+ievT56aG9uZ3xcIDsKK+mUlj5xaWFuZ3xcIDsKK+akiz5sacOhbmd8XCA7CivprK8+Y2jDoG5nfFwgOwor6LerPnFpw7NuZ3xcIDsKK+WhjT5jaMOpbmd8XCA7CivmsJo+Y2h1YW58XCA7Civmg50+Y2jEg25nfFwgOwor5Z6nPmppb25nfFwgOwor6YSjPnpoYW5nfFwgOwor55yaPnNoxJVuZ3xcIDsKK+a1iD5jaMOpbmd8XCA7CivpmIo+Y2hhbmd8XCA7Civoio4+cWlvbmd8XCA7Civpio4+cWlvbmd8XCA7CivnpJM+amlhbmd8XCA7CivmiYM+amlvbmd8XCA7CivmoYQ+Z3Vhbmd8XCA7Civlq5w+emhhbmd8XCA7Civku4k+emjEg25nfFwgOwor6byqPnNoZW5nfFwgOwor6byaPmNoYW5nfFwgOwor6buLPmt1xINuZ3xcIDsKK+m7ij5rdcOgbmd8XCA7Civpu4Y+Z3Vhbmd8XCA7Civpu4M+aHXDoW5nfFwgOwor6bqePnpoYW5nfFwgOwor6besPmh1w6FuZ3xcIDsKK+m3kj56aHVhbnxcIDsKK+m1vz5zaGVuZ3xcIDsKK+m1nz5rdcOhbmd8XCA7CivptKQ+emhvbmd8XCA7Civps4k+amlhbmd8XCA7Civps4c+aHXDoW5nfFwgOwor6bK/PmNow6FuZ3xcIDsKK+mxtj54acSDbmd8XCA7Civpsag+Y2jDoW5nfFwgOwor6bGmPnNow6luZ3xcIDsKK+mxkT5odcOhbmd8XCA7CivpsYw+eGnDoG5nfFwgOwor6bGGPnpoYW5nfFwgOwor6bGEPnpodWFufFwgOwor6bGCPmppYW5nfFwgOwor6bCJPmh1w6FuZ3xcIDsKK+mvpz5jaGFuZ3xcIDsKK+mvlz54acSDbmd8XCA7Civprp0+eGnEg25nfFwgOwor6a2OPmxpxINuZ3xcIDsKK+msuj5zaGFuZ3xcIDsKK+mshz56aGVuZ3xcIDsKK+mppD54aWFuZ3xcIDsKK+movz56aGFuZ3xcIDsKK+morD5jaMOpbmd8XCA7CivpqJw+aHXDoW5nfFwgOwor6aiBPmNoxJVuZ3xcIDsKK+mnuj5sacOhbmd8XCA7Civpp6s+amlvbmd8XCA7Civpp4k+amnFj25nfFwgOwor6aWfPnhpxINuZ3xcIDsKK+mllz54acSDbmd8XCA7CivppZM+Y2hlbmd8XCA7CivppYw+emh1w6BufFwgOwor6aStPmh1w6FuZ3xcIDsKK+mkpj56aGFuZ3xcIDsKK+mkiT54acSDbmd8XCA7Civpoo4+amnFj25nfFwgOwor6aGcPmppxINuZ3xcIDsKK+mhkz56aHVhbnxcIDsKK+mhiD5qacWPbmd8XCA7CivpoLM+Y2hlbmd8XCA7CivpoIU+eGnDoG5nfFwgOwor6Z+/PnhpxINuZ3xcIDsKK+mfuT5odcOhbmd8XCA7Civpn5Q+Y2jDoG5nfFwgOwor6Z+BPmppYW5nfFwgOwor6Z6dPnpoxINuZ3xcIDsKK+mdlz5jaMOobmd8XCA7CivpmZ4+c2hlbmd8XCA7CivpmLc+Y2hlbmd8XCA7Civpl5s+Y2hhbmd8XCA7Civpl4I+eGnDoG5nfFwgOwor6ZeAPnhpw6BuZ3xcIDsKK+mWtj5jaGFuZ3xcIDsKK+mWgj5zaHVhbnxcIDsKK+mVtz5jaMOhbmd8XCA7CivplL0+aHXDoW5nfFwgOwor6ZSgPmNoYW5nfFwgOwor6ZOWPmNow6luZ3xcIDsKK+mRsj54aWFuZ3xcIDsKK+mRnD5zaMOgbmd8XCA7CivpkZs+a3XDoG5nfFwgOwor6ZC6PmNoZW5nfFwgOwor6ZCYPnpob25nfFwgOwor6Y+/PmNoZW5nfFwgOwor6Y+5PnFpYW5nfFwgOwor6Y+zPnpoZW5nfFwgOwor6Y+bPmNow6FuZ3xcIDsKK+mPmD5xaWFuZ3xcIDsKK+mOpD5odcSDbmd8XCA7CivpjqM+amnFj25nfFwgOwor6Y6XPnFpYW5nfFwgOwor6Y6RPmNoZW5nfFwgOwor6Y2+Pnpob25nfFwgOwor6Y2gPmh1w6FuZ3xcIDsKK+mMqT5jaGFuZ3xcIDsKK+mMmj56aGVuZ3xcIDsKK+mMhj5xaWFuZ3xcIDsKK+mLvz5jaMOhbmd8XCA7Civpi7k+Y2jEg25nfFwgOwor6YuuPmNow6luZ3xcIDsKK+mKvz56aG9uZ3xcIDsKK+mKpz5ndWFuZ3xcIDsKK+mKhD5zaMOgbmd8XCA7CivpioM+Y2jDsm5nfFwgOwor6YmxPmt1w6BuZ3xcIDsKK+mJpj56aGVuZ3xcIDsKK+mIoT56aG9uZ3xcIDsKK+mHpz5jaHXDoG58XCA7Civph4A+bmnDoG5nfFwgOwor6Ya4Pm5pw6BuZ3xcIDsKK+mGrD5qacOgbmd8XCA7CivphqQ+amnDoG5nfFwgOwor6YaOPmNow6luZ3xcIDsKK+mFsj5jaMOpbmd8XCA7Civphas+Y2jDs25nfFwgOwor6YS6Pmt1w6BuZ3xcIDsKK+mErT56aMOobmd8XCA7CivphJ8+emh1YW58XCA7CivphJU+eGlhbmd8XCA7CivphIk+eGlhbmd8XCA7Civpg7c+eGlhbmd8XCA7Civpg5U+Y2jDqW5nfFwgOwor6YK8Pmt1YW5nfFwgOwor6YGnPnpoYW5nfFwgOwor6YCIPmppxY9uZ3xcIDsKK+i+jD5sacOhbmd8XCA7CivovYk+emh1xINpfFwgOwor6LyyPmNodcOhbnxcIDsKK+i8rD5sacOhbmd8XCA7CivovJs+bGnDoG5nfFwgOwor6LyMPmxpw6BuZ3xcIDsKK+i8hD5ndWFuZ3xcIDsKK+i8gT5xacOzbmd8XCA7Civou60+a3Vhbmd8XCA7Civou6I+emh1xINufFwgOwor6LuWPnFpw6FuZ3xcIDsKK+i6gD5rdcOgbmd8XCA7CivoubE+emhvbmd8XCA7CivouaE+cWlhbmd8XCA7CivouZY+Y2hvbmd8XCA7CivouYw+cWlhbmd8XCA7CivouK0+emhlbmd8XCA7Civot6k+emh1xINpfFwgOwor6LaqPmh1w6FuZ3xcIDsKK+i2mj5jaGVuZ3xcIDsKK+i1uT5xacOzbmd8XCA7Civotaw+Y2hlbmd8XCA7Civotao+Y2hlbmd8XCA7Civotag+eGnDs25nfFwgOwor6LSDPnpodcOgbnxcIDsKK+izuj56aHXDoG58XCA7Civos7g+c2jDqG5nfFwgOwor6LOvPnhpb25nfFwgOwor6LOsPnpow6BuZ3xcIDsKK+iznj5zaMSDbmd8XCA7Civos5c+Y2h1w6BufFwgOwor6LK6Pmt1w6BuZ3xcIDsKK+ivhz54acOybmd8XCA7CivorZ0+c2jDqW5nfFwgOwor6K2UPnpodcOgbnxcIDsKK+itiT56aMOobmd8XCA7CivorL0+amnDoG5nfFwgOwor6KyqPnNoYW5nfFwgOwor6KybPmppxINuZ3xcIDsKK+iskj5xaWFuZ3xcIDsKK+isij5odcSDbmd8XCA7Civoq68+Y2h1w6FufFwgOwor6KulPnpow7JuZ3xcIDsKK+irkj5sacOgbmd8XCA7Civoq5A+bGnDoW5nfFwgOwor6KuNPnpoZW5nfFwgOwor6KqvPmNow6BuZ3xcIDsKK+iqoD5jaMOpbmd8XCA7CivoqpE+a3XDoW5nfFwgOwor6KqGPmt1YW5nfFwgOwor6Km+Pnhpb25nfFwgOwor6KmzPnhpw6FuZ3xcIDsKK+ippD5odcSDbmd8XCA7CivoqZc+eGnDsm5nfFwgOwor6Ki8Pnpow6huZ3xcIDsKK+ioqT54aW9uZ3xcIDsKK+intD5zaGFuZ3xcIDsKK+ilkD54acOgbmd8XCA7CivopYg+emh1w6BufFwgOwor6KS8PnFpxINuZ3xcIDsKK+ikpz5qacWPbmd8XCA7CivopIg+Y2jDs25nfFwgOwor6KO/PmNob25nfFwgOwor6KOyPmxpxINuZ3xcIDsKK+ijrj5jaGFuZ3xcIDsKK+iitj5qacOgbmd8XCA7CivoobY+Y2hvbmd8XCA7CivoobM+emhvbmd8XCA7CivooZ0+Y2hvbmd8XCA7CivooYY+emjDsm5nfFwgOwor6KGBPmh1YW5nfFwgOwor6KCwPnNow6BuZ3xcIDsKK+iggT54acOgbmd8XCA7Civon7Y+Y2hlbmd8XCA7Civon7I+Y2jDs25nfFwgOwor6J6/PmppYW5nfFwgOwor6J6qPnNoYW5nfFwgOwor6J6APmppYW5nfFwgOwor6J2pPmNow7NuZ3xcIDsKK+icvT5sacSDbmd8XCA7Civomps+emjDsm5nfFwgOwor6JqDPnhpxINuZ3xcIDsKK+iZsD5jaMOpbmd8XCA7CivomKA+cWnDoW5nfFwgOwor6JiUPmppb25nfFwgOwor6JiPPmppb25nfFwgOwor6JiMPmppxY9uZ3xcIDsKK+iXrT5xacOzbmd8XCA7CivolpQ+cWnDoW5nfFwgOwor6JaRPmppYW5nfFwgOwor6JaMPnhpYW5nfFwgOwor6JSjPmppxINuZ3xcIDsKK+iUoj5qaWFuZ3xcIDsKK+iUjz5zaGFuZ3xcIDsKK+iUgz5qacOgbmd8XCA7CivokoM+emh1w6BufFwgOwor6JGfPmh1w6FuZ3xcIDsKK+iRmT54aWFuZ3xcIDsKK+iRgT5qaWFuZ3xcIDsKK+iQqz54acOgbmd8XCA7CivokIc+Y2jDoW5nfFwgOwor6I2/PmNow6luZ3xcIDsKK+iNiD5jaHXEg258XCA7CivojL0+emjDsm5nfFwgOwor6Iy6PmNob25nfFwgOwor6IyzPmppYW5nfFwgOwor6IyqPmd1YW5nfFwgOwor6IuYPnFpxY9uZ3xcIDsKK+iKlj54acSDbmd8XCA7CivoiY4+aHXDoW5nfFwgOwor6IivPnpob25nfFwgOwor6IipPmNodcOhbnxcIDsKK+iHqT5ndcOgbmd8XCA7Civoh6Y+Z3XDoG5nfFwgOwor6Ia3PnhpYW5nfFwgOwor6IaePnpodWFufFwgOwor6IaZPmppxINuZ3xcIDsKK+iGlz5jaHXDoWl8XCA7CivohpM+Y2jDoW5nfFwgOwor6IW4PmNow6FuZ3xcIDsKK+iFqz56aMWPbmd8XCA7Civohag+Y2h1xINufFwgOwor6IWEPmNodcOhaXxcIDsKK+iEvD5sacSDbmd8XCA7CivohLk+emjDoG5nfFwgOwor6IS3PmNow6FuZ3xcIDsKK+iErT5jaMOpbmd8XCA7CivohIA+Y2jDqW5nfFwgOwor6IOYPnNoZW5nfFwgOwor6IGyPnNoZW5nfFwgOwor6IGWPnNow6huZ3xcIDsKK+iBhz56aGVuZ3xcIDsKK+iAkT56aHVhbnxcIDsKK+e/nj5qaWFuZ3xcIDsKK+e/gD5jaG9uZ3xcIDsKK+e+vj5jaG9uZ3xcIDsKK+e+uz5xacOgbmd8XCA7Civnvqs+cWlhbmd8XCA7CivnvqU+cWnEg25nfFwgOwor576XPnFpYW5nfFwgOwor57qpPmt1w6BuZ3xcIDsKK+e6lT54aWFuZ3xcIDsKK+e6ij5rdcOgbmd8XCA7Civnua4+amlhbmd8XCA7Civnuak+c2jDqW5nfFwgOwor57mmPnFpxINuZ3xcIDsKK+e5iD5xacSDbmd8XCA7CivnuLM+emh1w6BufFwgOwor57e9PmNoZW5nfFwgOwor57efPnpow7JuZ3xcIDsKK+e3lz54aWFuZ3xcIDsKK+e3lD56aMOgbmd8XCA7Civnt4k+bGnEg25nfFwgOwor57aXPmppxY9uZ3xcIDsKK+e1vj5jaMOpbmd8XCA7CivntbQ+eGnDoW5nfFwgOwor57WzPmppw6BuZ3xcIDsKK+e1lj5rdcOgbmd8XCA7CivntYU+amnFj25nfFwgOwor57WCPnpob25nfFwgOwor57O9PnpoxJVuZ3xcIDsKK+ezqD5qacOgbmd8XCA7Civns6c+bGnDoW5nfFwgOwor57OhPmppw6BuZ3xcIDsKK+eyuz56aGFuZ3xcIDsKK+expj56aG9uZ3xcIDsKK+exkT56aHXDoG58XCA7Civnr78+emh1YW58XCA7Civnr7k+emh1w6BufFwgOwor56+sPnFpYW5nfFwgOwor56+cPnpoZW5nfFwgOwor5661PnNoxJVuZ3xcIDsKK+eujz56aGVuZ3xcIDsKK+etrD5jaMOpbmd8XCA7CivnrZc+emjDsm5nfFwgOwor562HPnFpw7NuZ3xcIDsKK+esuz5xacOzbmd8XCA7Civnq7E+emh1xINufFwgOwor56uGPnFpw7NuZ3xcIDsKK+ergD5jaGVuZ3xcIDsKK+eqrj5xacOzbmd8XCA7Civnqpo+Y2jDqW5nfFwgOwor56mqPmNoZW5nfFwgOwor56mePmt1w6BuZ3xcIDsKK+eplD5odcOhbmd8XCA7CivnqK4+emjFj25nfFwgOwor56imPmNow7NuZ3xcIDsKK+eljD56aMOybmd8XCA7CivnpKY+a3XDoG5nfFwgOwor56SDPnpoxINuZ3xcIDsKK+ejoj5xacSDbmd8XCA7Civno5o+emh1YW58XCA7CivnoYQ+a3Vhbmd8XCA7Civnn7w+amlhbmd8XCA7Civnn4w+a3XDoG5nfFwgOwor556VPnpow6BuZ3xcIDsKK+eejz5xacOzbmd8XCA7CivnnZw+emhlbmd8XCA7CivnnZg+cWnDs25nfFwgOwor552IPmNoxJVuZ3xcIDsKK+ecvj56aMOybmd8XCA7CivnnJY+a3XDoG5nfFwgOwor55yQPnpoZW5nfFwgOwor55qpPmh1w6BuZ3xcIDsKK+eamz5qacWPbmd8XCA7CivnmaU+emhlbmd8XCA7CivnmYA+aHXDoW5nfFwgOwor55isPnpow6BuZ3xcIDsKK+eYhz56aMWtbmd8XCA7Civnl64+emjDoG5nfFwgOwor55eLPmNow7NuZ3xcIDsKK+eWhT5qaWFuZ3xcIDsKK+eVvD5jaMOgbmd8XCA7Civnlbs+c2jDqW5nfFwgOwor55W6PmppYW5nfFwgOwor55WVPmppYW5nfFwgOwor55SePmNow6FuZ3xcIDsKK+eUjj56aHVhbnxcIDsKK+eTuj5jaMOhbmd8XCA7Civnk5Y+eGlhbmd8XCA7Civnk4o+cWnDs25nfFwgOwor55G8PnpodWFufFwgOwor55G6PmNow6FuZ3xcIDsKK+eRsj5xaWFuZ3xcIDsKK+eRnT5odcOhbmd8XCA7CivnkZE+emh1w6BufFwgOwor55GPPmNodWFufFwgOwor55CpPmNoYW5nfFwgOwor55CkPmNoZW5nfFwgOwor55CePnNow6huZ3xcIDsKK+ePuT5jaMOpbmd8XCA7Civnj7U+Y2jDqW5nfFwgOwor54+rPmNob25nfFwgOwor54+mPnhpw6BuZ3xcIDsKK+ePlj5ndWFuZ3xcIDsKK+ePhD5zaGVuZ3xcIDsKK+eOsT5xaWFuZ3xcIDsKK+eOmT5jaMOgbmd8XCA7CivnjpQ+Y2h1w6BufFwgOwor546MPmNodcOgbnxcIDsKK+eNtz5ndcSDbmd8XCA7CivnjZo+aHXDoW5nfFwgOwor542OPmppxINuZ3xcIDsKK+eMmT56aGVuZ3xcIDsKK+eMkD5xaWFuZ3xcIDsKK+eLjD5zaGVuZ3xcIDsKK+eLhj56aMOybmd8XCA7CivniZo+Y2hlbmd8XCA7CivniYY+cWnDoW5nfFwgOwor54mEPnFpYW5nfFwgOwor54ivPmNoZW5nfFwgOwor54itPnpoZW5nfFwgOwor54iePmNow7NuZ3xcIDsKK+eIjD5odcOgbmd8XCA7Civnhr8+aHXDoW5nfFwgOwor54ayPmppxY9uZ3xcIDsKK+eGlz5xacOgbmd8XCA7CivnhpA+amnFj25nfFwgOwor54aNPnFpb25nfFwgOwor54aAPmh1xINuZ3xcIDsKK+eFoj5xacOzbmd8XCA7CivnhZs+amnFj25nfFwgOwor54WaPmppxY9uZ3xcIDsKK+eFhD56aG9uZ3xcIDsKK+eEuz5jaMOgbmd8XCA7CivnhLo+c2hlbmd8XCA7CivnhK0+cWnDs25nfFwgOwor54SqPnFpb25nfFwgOwor54OxPmppxY9uZ3xcIDsKK+eDoT5ndWFuZ3xcIDsKK+eDnT56aGVuZ3xcIDsKK+eCvj5odcSDbmd8XCA7CivngqE+emhlbmd8XCA7Civngps+Z3Vhbmd8XCA7Civngpo+Z3Vhbmd8XCA7Civngpc+Z3Vhbmd8XCA7CivngoI+emhvbmd8XCA7Civngbc+emh1w6BufFwgOwor54GuPmd1YW5nfFwgOwor54CTPmNow6luZ3xcIDsKK+eAgj5qaW9uZ3xcIDsKK+a+oD5zaMOpbmd8XCA7CivmvoM+amnDsm5nfFwgOwor5r6CPmNow6luZ3xcIDsKK+a9qD56aG9uZ3xcIDsKK+a8vz5qaWFuZ3xcIDsKK+a8tD5jaMOzbmd8XCA7CivmvLI+emjEg25nfFwgOwor5ryhPnNoYW5nfFwgOwor5rySPnFpw6FuZ3xcIDsKK+a7sz5zaGFuZ3xcIDsKK+a7sD5qacSDbmd8XCA7Civmu4k+aHXEg25nfFwgOwor5rqsPnFpYW5nfFwgOwor5rqXPnNow6luZ3xcIDsKK+a5uD5sacOgbmd8XCA7CivmuaY+c2hlbmd8XCA7CivmuZ4+Y2jDqW5nfFwgOwor5reQPmNoYW5nfFwgOwor5ra8Pmxpw6FuZ3xcIDsKK+a2uT5sacOgbmd8XCA7CivmtrE+emjDoG5nfFwgOwor5raLPmNob25nfFwgOwor5rW+PmNoZW5nfFwgOwor5rW6PmNob25nfFwgOwor5rWEPmppw6BuZ3xcIDsKK+a0uD5ndWFuZ3xcIDsKK+a0tj54aW9uZ3xcIDsKK+a0rT5rdWFuZ3xcIDsKK+a0mj5qacOgbmd8XCA7CivmtIY+Y2jDqW5nfFwgOwor5rOpPnNoZW5nfFwgOwor5rOfPmNoZW5nfFwgOwor5rOIPnpob25nfFwgOwor5rOCPmppxY9uZ3xcIDsKK+azgT5rdcOgbmd8XCA7CivmspY+Y2hvbmd8XCA7CivmsZE+c2h1w6BufFwgOwor5rGMPmNodcOgbnxcIDsKK+awtj56aMSVbmd8XCA7Civmrq0+amlhbmd8XCA7CivmrqQ+c2hhbmd8XCA7CivmroU+c2hlbmd8XCA7CivmrYI+Y2h1w6FufFwgOwor5qyAPnhpYW5nfFwgOwor5quOPmd1w6BuZ3xcIDsKK+aqvj5qacWPbmd8XCA7CivmqqM+cWnDoW5nfFwgOwor5qqJPmNoZW5nfFwgOwor5qm/PmppYW5nfFwgOwor5qmpPnFpw7NuZ3xcIDsKK+apoz5jaG9uZ3xcIDsKK+aplT5jaGVuZ3xcIDsKK+aopD5ndWFuZ3xcIDsKK+aolT5jaGVuZ3xcIDsKK+aokT5sacOhbmd8XCA7CivmqIA+Y2hvbmd8XCA7Civmp7M+amnEg25nfFwgOwor5qeNPnFpYW5nfFwgOwor5qa6PnNow6huZ3xcIDsKK+ampT5odcSDbmd8XCA7Civmpp0+aHXDoG5nfFwgOwor5qSMPnFpYW5nfFwgOwor5qSJPmNow6luZ3xcIDsKK+ajvj5xacOzbmd8XCA7Civmo6Y+Y2hlbmd8XCA7Civmo5Y+Y2jDqW5nfFwgOwor5qKsPmNoxJVuZ3xcIDsKK+afvD5jaGVuZ3xcIDsKK+afij56aG9uZ3xcIDsKK+aeqD5jaGVuZ3xcIDsKK+acmj5odWFuZ3xcIDsKK+aboD5rdcOgbmd8XCA7Civmm48+eGnDoG5nfFwgOwor5puCPmh1w6BuZ3xcIDsKK+aatz5jaHXDoW58XCA7CivmmrI+emhhbmd8XCA7CivmmqI+Y2jDoG5nfFwgOwor5pm/PmNoYW5nfFwgOwor5pmgPnNow6luZ3xcIDsKK+aZkT54acSDbmd8XCA7CivmmYQ+aHXEg25nfFwgOwor5pi/Pmt1w6BuZ3xcIDsKK+aYhz5zaGVuZ3xcIDsKK+aWqD5xaWFuZ3xcIDsKK+aVuz54acOybmd8XCA7Civmkpw+emjElW5nfFwgOwor5pKXPmNow6luZ3xcIDsKK+aSkD5jaGVuZ3xcIDsKK+aRvj5qacOgbmd8XCA7Civmkao+amlhbmd8XCA7CivmkY8+Y2hvbmd8XCA7CivmkLY+cWlhbmd8XCA7Civmj7A+Y2jDsm5nfFwgOwor5o+oPmNow6luZ3xcIDsKK+aPlz5jaHVhaXxcIDsKK+aOmj5sacSDbmd8XCA7Civmjpk+emhlbmd8XCA7CivmjoE+Y2jDqW5nfFwgOwor5oywPmNow6luZ3xcIDsKK+aKgj5rdcOhbmd8XCA7CivmiZk+emjDoG5nfFwgOwor5oeyPmNow6luZ3xcIDsKK+aHrT5rdcOgbmd8XCA7Civmh6w+a3XDoG5nfFwgOwor5oa0PnNow6luZ3xcIDsKK+aGlT5jaMOpbmd8XCA7CivmhoY+Y2hlbmd8XCA7CivmhoM+Y2hvbmd8XCA7Civmha8+c2hhbmd8XCA7CivmhLg+emjElW5nfFwgOwor5oSwPmh1xINuZ3xcIDsKK+aDuD5xacOzbmd8XCA7CivmgrU+Y2jDoG5nfFwgOwor5oKiPmxpw6BuZ3xcIDsKK+aCnD5jaMSVbmd8XCA7CivmgaY+eGnDoG5nfFwgOwor5oGfPnhpb25nfFwgOwor5oGHPmt1YW5nfFwgOwor5oCzPmh1xINuZ3xcIDsKK+W/tz54aW9uZ3xcIDsKK+W/gD54aWFuZ3xcIDsKK+W+uD5jaG9uZ3xcIDsKK+W+tD56aGVuZ3xcIDsKK+W+jj5jaMSVbmd8XCA7CivlvYo+amnDoG5nfFwgOwor5b2JPmppYW5nfFwgOwor5by3PnFpw6FuZ3xcIDsKK+W8tj5qacOgbmd8XCA7CivlvLU+emhhbmd8XCA7CivlvJw+amnDoG5nfFwgOwor5bunPnFpw6FuZ3xcIDsKK+W7oz5ndcSDbmd8XCA7Civlu6A+Y2jEg25nfFwgOwor5buCPnhpYW5nfFwgOwor5bqxPmNoxJVuZ3xcIDsKK+W6gz5ndcSDbmd8XCA7CivluZw+amnFj25nfFwgOwor5bmSPnpob25nfFwgOwor5bmAPnpow6huZ3xcIDsKK+W4sz56aMOgbmd8XCA7CivluKU+c2h1w6BpfFwgOwor5befPmh1YW5nfFwgOwor5bebPmNodWFufFwgOwor5baRPnhpxINuZ3xcIDsKK+W2iD5xaWFuZ3xcIDsKK+W1uT5qacOgbmd8XCA7CivltLI+aHXDoW5nfFwgOwor5bSiPnpoZW5nfFwgOwor5bSdPnpoZW5nfFwgOwor5bSIPmNow7NuZ3xcIDsKK+WzuD5jaMOpbmd8XCA7CivlsrI+a3XDoG5nfFwgOwor5bCZPnNow6BuZ3xcIDsKK+WwiD56aHVhbnxcIDsKK+Wwhz5qaWFuZ3xcIDsKK+WwhT5qacOgbmd8XCA7CivlsII+emh1YW58XCA7Civlr7U+Y2jFj25nfFwgOwor5a66Pmh1xINuZ3xcIDsKK+WurD5jaMOpbmd8XCA7CivlroY+cWnDs25nfFwgOwor5a2oPnpodcSDbnxcIDsKK+WtiD5zaHVhaXxcIDsKK+Wtgz5uacOhbmd8XCA7CivlrKI+bmnDoW5nfFwgOwor5ayZPnFpw6FuZ3xcIDsKK+WrpT56aHVhbnxcIDsKK+Wqkz5odcOhbmd8XCA7CivlqpE+emjDsm5nfFwgOwor5aiNPmNow6luZ3xcIDsKK+Wnrz5ndWFuZ3xcIDsKK+WnoD5zaMOgbmd8XCA7Civlp4M+emhlbmd8XCA7CivlppU+emjDsm5nfFwgOwor5aaQPnpob25nfFwgOwor5aWsPmppxINuZ3xcIDsKK+WlqD5qacSDbmd8XCA7CivlpLw+a3XEg25nfFwgOwor5aOZPmt1w6BuZ3xcIDsKK+Wjgz5qaWFuZ3xcIDsKK+WitD5odcOhbmd8XCA7Civlopo+bGnDoW5nfFwgOwor5aG8PnpodWFufFwgOwor5aGyPmNow6FuZ3xcIDsKK+Whoz5jaMSVbmd8XCA7CivloZo+emjFj25nfFwgOwor5aGWPmNow6luZ3xcIDsKK+Whgz5odWFuZ3xcIDsKK+Whgj54acOgbmd8XCA7CivloL4+Y2h1xINufFwgOwor5aC5Pnpow7JuZ3xcIDsKK+WgtD5jaMSDbmd8XCA7CivloK0+aHXDoW5nfFwgOwor5aCpPmNoxINuZ3xcIDsKK+Wgnz56aHXDoG58XCA7CivloJg+Y2jDqW5nfFwgOwor5Z+rPmNoxY9uZ3xcIDsKK+WfpT5jaGVuZ3xcIDsKK+Wfmz5qaW9uZ3xcIDsKK+WemT5ndWFuZ3xcIDsKK+WdsD5qaW9uZ3xcIDsKK+WcsT5jaMSDbmd8XCA7Civlm6c+amnFj25nfFwgOwor5ZuAPnpodcOgbnxcIDsKK+Warj54acOgbmd8XCA7Civlmp0+aHVhbmd8XCA7CivlmpA+Y2jDoW5nfFwgOwor5ZiqPmNodcOgaXxcIDsKK+WYlz5jaMOhbmd8XCA7CivlmIM+Y2hvbmd8XCA7Civll4Y+cWlhbmd8XCA7Civllqg+bGnDoG5nfFwgOwor5ZakPmh1w6FuZ3xcIDsKK+WWoD56aMWPbmd8XCA7CivllaI+bGnEg25nfFwgOwor5ZWMPnhpYW5nfFwgOwor5ZS0PnFpw6BuZ3xcIDsKK+WUoT5sacSDbmd8XCA7Civlk7Q+bGnDoG5nfFwgOwor5ZKwPnNodcOgaXxcIDsKK+WRjz5zaGVuZ3xcIDsKK+WOsD5jaMSDbmd8XCA7Civlja0+cWnDs25nfFwgOwor5Y2dPmt1w6BuZ3xcIDsKK+WNmz5zaHXDoGl8XCA7CivljJ4+amnDoG5nfFwgOwor5YyUPnFpb25nfFwgOwor5YulPnFpxINuZ3xcIDsKK+WLnT5zaGVuZ3xcIDsKK+WKuz5rdWFuZ3xcIDsKK+WJsD5zaMOobmd8XCA7CivliKM+emhvbmd8XCA7Civlh5Y+emh1xJVufFwgOwor5YaPPmppxY9uZ3xcIDsKK+WGiz5qaW9uZ3xcIDsKK+WGgj5qaW9uZ3xcIDsKK+WFqT5sacSDbmd8XCA7CivlhaQ+aHXDoW5nfFwgOwor5YWPPmNow6FuZ3xcIDsKK+WFhz54aW9uZ3xcIDsKK+WEoz5rdcOgbmd8XCA7CivlhJ8+Y2jDoW5nfFwgOwor5YSdPnFpw7NuZ3xcIDsKK+WDoj5jaHXEg258XCA7Civlg5k+Z3Vhbmd8XCA7Civlg5g+Y2jEg25nfFwgOwor5YOSPmppxY9uZ3xcIDsKK+WDjj56aHXDoG58XCA7Civlgr0+emhhbmd8XCA7Civlgrg+cWnEg25nfFwgOwor5YK3PnNoYW5nfFwgOwor5YKzPmNodcOhbnxcIDsKK+WCkz5jaMOpbmd8XCA7CivlgZ8+aHXDoW5nfFwgOwor5YGXPnNoxJVuZ3xcIDsKK+WBhT56aMOybmd8XCA7CivlgYE+Y2hlbmd8XCA7CivlgJU+Y2jDoW5nfFwgOwor5YCEPmxpxINuZ3xcIDsKK+WAgD5jaGFuZ3xcIDsKK+S/oj5sacSDbmd8XCA7Civkv4c+Z3XDoG5nfFwgOwor5L6xPmNoxJVuZ3xcIDsKK+S+ij5ndWFuZ3xcIDsKK+S9rT54acOhbmd8XCA7CivkvJ0+Y2h1w6FufFwgOwor5LyAPnpob25nfFwgOwor5LunPmNow6FuZ3xcIDsKK+S6rz54acSDbmd8XCA7CivkuZc+Y2jDqW5nfFwgOwor5LmRPnNow6huZ3xcIDsKK+S4rD5xacOhbmd8XCA7CivkuKE+bGnEg25nfFwgOwor5LiEPnNow6BuZ3xcIDsKK+S1gz5rdcOgbmd8XCA7CivktYE+cWnDoG5nfFwgOwor5LOvPmNow7NuZ3xcIDsKK+SzqD5odcOhbmd8XCA7CivksbA+emjDsm5nfFwgOwor5LGGPnNow6luZ3xcIDsKK+SvtD5jaMOhbmd8XCA7CivkrrI+aHXDoW5nfFwgOwor5K6qPmNow6luZ3xcIDsKK+Stqj5sacOhbmd8XCA7CivkrJU+c2jEg25nfFwgOwor5KuGPmNow6luZ3xcIDsKK+Sqvz5zaMSVbmd8XCA7CivkqoQ+aHXDoW5nfFwgOwor5KmrPmxpxINuZ3xcIDsKK+SpqD5jaMOgbmd8XCA7Civkp7o+eGnDs25nfFwgOwor5KegPnNodcOgbnxcIDsKK+SnlT5jaMOpbmd8XCA7Civkprc+Y2h1w6BpfFwgOwor5Ka2Pnpow6huZ3xcIDsKK+SmpD5jaHXDoGl8XCA7Civkpp8+Y2h1w6BpfFwgOwor5KabPnpow6huZ3xcIDsKK+SlrT56aMOobmd8XCA7CivkpYw+emjDqG5nfFwgOwor5KO8Pmxpw6FuZ3xcIDsKK+SivT54acOgbmd8XCA7CivkoqY+c2h1w6BpfFwgOwor5KKbPmppxY9uZ3xcIDsKK+ShsT56aHXEg258XCA7CivkoZU+emjElW5nfFwgOwor5KC7PnFpw7NuZ3xcIDsKK+Sghj5jaMOhbmd8XCA7CivkoIM+bGnEg25nfFwgOwor5KCAPmNoxINuZ3xcIDsKK+SeuT5odcOhbmd8XCA7Civknqo+amnDoG5nfFwgOwor5J6JPnNow6huZ3xcIDsKK+Sdtj5sacOhbmd8XCA7CivknLY+eGnDoW5nfFwgOwor5JurPnpow6huZ3xcIDsKK+Sbqj5xacOzbmd8XCA7Civkmoc+c2jElW5nfFwgOwor5Jm5PmppxINuZ3xcIDsKK+SXij5jaMOpbmd8XCA7Civkl4U+Y2jDoW5nfFwgOwor5JauPnhpxINuZ3xcIDsKK+SWnT5jaMOzbmd8XCA7CivkloY+bmnDoG5nfFwgOwor5JWLPmNoxINuZ3xcIDsKK+SUsj5jaMOpbmd8XCA7CivklJc+eGnDoW5nfFwgOwor5JOjPmxpxINuZ3xcIDsKK+STlj5xacOzbmd8XCA7CivkkoI+amnEg25nfFwgOwor5JGfPmh1w6FuZ3xcIDsKK+SQtT5odcOhbmd8XCA7CivkkKA+aHXEg25nfFwgOwor5JCfPnhpw6BuZ3xcIDsKK+SQgz5qacWPbmd8XCA7CivkjrQ+c2jDqG5nfFwgOwor5I2/Pmh1w6FuZ3xcIDsKK+SMuT5qacWPbmd8XCA7CivkjKw+Y2jDs25nfFwgOwor5IyZPmh1xINuZ3xcIDsKK+SLjD5qacSDbmd8XCA7Civkiq8+a3XDoG5nfFwgOwor5IqjPmh1w6FuZ3xcIDsKK+SKlz5odcOhbmd8XCA7CivkipE+eGnEg25nfFwgOwor5IqEPnFpw7NuZ3xcIDsKK+SJtT56aHXDoG58XCA7CivkiYM+amnEg25nfFwgOwor5IijPnpow6huZ3xcIDsKK+SHuD5jaMOpbmd8XCA7Civkhrg+Y2jDqW5nfFwgOwor5Ia1PmNow6luZ3xcIDsKK+SGsz5xacOzbmd8XCA7CivkhpE+Y2jDqW5nfFwgOwor5IWjPmh1w6FuZ3xcIDsKK+SFmj5xacSDbmd8XCA7CivkhYM+cWnDs25nfFwgOwor5ISHPmNow6luZ3xcIDsKK+SCuz56aMOobmd8XCA7CivkgbA+amnEg25nfFwgOwor5IGjPmNodcOhbnxcIDsKK+SBnj5zaMSVbmd8XCA7CivkgZw+aHXEg25nfFwgOwor5IGOPmNow6luZ3xcIDsKK+SAlT5jaMOobmd8XCA7Civjvq4+aHXDoW5nfFwgOwor476qPnNoxJVuZ3xcIDsKK+O+oD5odcOhbmd8XCA7CivjvbQ+emjDoG5nfFwgOwor472APnpow6huZ3xcIDsKK+O8tz5jaHXDoW58XCA7CivjvLM+c2jElW5nfFwgOwor47ypPmNow6luZ3xcIDsKK+O8hz5xacOzbmd8XCA7CivjuZA+Y2jDs25nfFwgOwor47mBPmxpw6FuZ3xcIDsKK+O3oT5qacWPbmd8XCA7Civjt5c+amnFj25nfFwgOwor47eAPnFpw7NuZ3xcIDsKK+O2iD5sacWPbmd8XCA7CivjsrQ+emjDsm5nfFwgOwor47KCPmNow6luZ3xcIDsKK+Oxmz5jaHXEg258XCA7CivjsY8+emjDqG5nfFwgOwor46+NPmppxINuZ3xcIDsKK+OvjD5jaHXDoW58XCA7Civjrqo+cWnDs25nfFwgOwor46y7Pmh1xINuZ3xcIDsKK+OrpD5jaMSDbmd8XCA7Civjq5s+Z3XDoG5nfFwgOwor46qcPmNodcSDaXxcIDsKK+Oqkz5jaHXDoWl8XCA7CivjqZY+cWnDoW5nfFwgOwor46iqPmh1w6BuZ3xcIDsKK+Oogz5jaMOpbmd8XCA7Civjp60+cWnDs25nfFwgOwor46ekPmNow7JuZ3xcIDsKK+Omgj5jaMOhbmd8XCA7CivjpLo+aHXEg25nfFwgOwor46SvPmppxY9uZ3xcIDsKK+Okrj5rdcOhbmd8XCA7Civjo6s+emjFj25nfFwgOwor46KhPmppxINuZ3xcIDsKK+OioD5qacWPbmd8XCA7Civjoac+emjDqG5nfFwgOwor46GgPnpow6huZ3xcIDsKK+Ofnz54acOgbmd8XCA7Civjn4Q+eGnDoW5nfFwgOwor4568PmNow6luZ3xcIDsKK+Oetz5odcOhbmd8XCA7Civjm6g+cWnEg25nfFwgOwor45mjPnpow6BuZ3xcIDsKK+OZij5jaMOhbmd8XCA7Civjl70+eGnEg25nfFwgOwor45eCPnNoxJVuZ3xcIDsKK+OWpT5qacWPbmd8XCA7Civjlak+emjDoG5nfFwgOwor45SdPmxpxINuZ3xcIDsKK+OTvT5jaMOzbmd8XCA7Civjk48+amnFj25nfFwgOwor45KzPmxpxINuZ3xcIDsKK+OSjD5xacOzbmd8XCA7CivjkYs+amnDsm5nfFwgOwor45C8PmNow6huZ3xcIDsKK+OQuj56aMOybmd8XCA7Civwopi4Pmppw6BuZ3xcIDsKK/CipZ4+Y2hvbmd8XCA7Civor7Q+c2h1w6x8XCA7CivlubQ+bmnDoW58XCA7CivnnYA+emjDoW98XCA7CivlsI8+eGnEg298XCA7CivlpKk+dGlhbnxcIDsKK+iDvT5uw6luZ3xcIDsKK+i/mD5odcOhbnxcIDsKK+W9kz5kYW5nfFwgOwor5omLPnNoxY91fFwgOwor55SoPnnDsm5nfFwgOwor6KGMPmjDoW5nfFwgOwor5pa5PmZhbmd8XCA7CivliY0+cWnDoW58XCA7Civop4E+amnDoG58XCA7Civnu48+amluZ3xcIDsKK+mdoj5tacOgbnxcIDsKK+WFrD5nb25nfFwgOwor5ZCMPnTDs25nfFwgOwor5LuOPmPDs25nfFwgOwor5YqoPmTDsm5nfFwgOwor5qC3PnnDoW5nfFwgOwor546wPnhpw6BufFwgOwor6LqrPnNoZW58XCA7Civngrk+ZGnEg258XCA7CivmmI4+bcOtbmd8XCA7Civlhag+cXXDoW58XCA7Civlt6U+Z29uZ3xcIDsKK+aDhT5xw61uZ3xcIDsKK+WQjT5tw61uZ3xcIDsKK+Wumj5kw6xuZ3xcIDsKK+Wlsz5udVw6zIZ8XCA7CivnrYk+ZMSVbmd8XCA7Civpl7Q+amlhbnxcIDsKK+S+vz5iacOgbnxcIDsKK+eUtT5kacOgbnxcIDsKK+S4nD5kb25nfFwgOwor5pWZPmppYW98XCA7CivlubM+cMOtbmd8XCA7CivnnJ8+emhlbnxcIDsKK+WQrD50aW5nfFwgOwor5bCRPnNoxINvfFwgOwor5YWzPmd1YW58XCA7CivlubY+YsOsbmd8XCA7Civkuqc+Y2jEg258XCA7CivlhYg+eGlhbnxcIDsKK+WxsT5zaGFufFwgOwor5rC0PnNodcStfFwgOwor5oC7PnrFj25nfFwgOwor5LmmPnFpw6FufFwgOwor5ZGYPnl1w6FufFwgOwor56yRPnhpw6BvfFwgOwor5oCnPnjDrG5nfFwgOwor6YCaPnRvbmd8XCA7Civlkb0+bcOsbmd8XCA7CivnpZ4+c2jDqW58XCA7Civku7Y+amnDoG58XCA7Civooag+YmnEg298XCA7Civljp8+eXXDoW58XCA7CivlupQ+ecOsbmd8XCA7Civlj6s+amnDoG98XCA7Civmm7Q+Z2VuZ3xcIDsKK+aUvj5mw6BuZ3xcIDsKK+WPlz5zaMOydXxcIDsKK+eOiz53w6FuZ3xcIDsKK+S6rD5qaW5nfFwgOwor5riFPnFpbmd8XCA7Civovrk+YmlhbnxcIDsKK+WFsT5nw7JuZ3xcIDsKK+mjjj5mZW5nfFwgOwor5pybPnfDoG5nfFwgOwor5bu6Pmppw6BufFwgOwor57ufPnTFj25nfFwgOwor6K+3PnFpbmd8XCA7CivkuqQ+amlhb3xcIDsKK+iuqT5yw6BuZ3xcIDsKK+eulz5zdcOgbnxcIDsKK+WFgz55dcOhbnxcIDsKK+WKnz5nb25nfFwgOwor6Z2SPnFpbmd8XCA7CivnrqE+Z3XEg258XCA7Civov54+bGnDoW58XCA7Civov5w+eXXEg258XCA7Civlv6s+a3XDoGl8XCA7CivpmaI+eXXDoG58XCA7Civlj5g+YmnDoG58XCA7CivogZQ+bGnDoW58XCA7CivmnYM+cXXDoW58XCA7CivlvoA+d8SDbmd8XCA7CivlsZU+emjEg258XCA7CivpooY+bMStbmd8XCA7CivnuqI+Z29uZ3xcIDsKK+WRqD56aG91fFwgOwor5rexPnNoZW58XCA7Civnqbo+a29uZ3xcIDsKK+eUmj5zaMOobnxcIDsKK+i9uz5xaW5nfFwgOwor6IuxPnlpbmd8XCA7Civlhpk+Z3XDoG58XCA7Civku6Q+bMOsbmd8XCA7CivmlLY+c2hvdXxcIDsKK+iEuD5sacSDbnxcIDsKK+mSsT5xacOhbnxcIDsKK+WFmj5kxINuZ3xcIDsKK+WNgz5xaWFufFwgOwor54mHPnBpYW58XCA7Civlrrk+csOzbmd8XCA7Civmib4+emjEg298XCA7Civnq5k+emjDoG58XCA7CivlvaI+eMOtbmd8XCA7CivmiL8+ZsOhbmd8XCA7CivpppY+c2jFj3V8XCA7CivlvbE+ecStbmd8XCA7CivnvZE+d8SDbmd8XCA7CivlhbU+YmluZ3xcIDsKK+iwgT5zaHXDrXxcIDsKK+agoT5qacOgb3xcIDsKK+ingj5ndWFufFwgOwor57yWPmJpYW58XCA7CivliZE+amnDoG58XCA7CivosIM+ZGnDoG98XCA7Civmm74+Y8Opbmd8XCA7Civlh4Y+emjFrW58XCA7Civlm6I+dHXDoW58XCA7CivmrrU+ZHXDoG58XCA7Civnsr4+amluZ3xcIDsKK+WumD5ndWFufFwgOwor56ufPmrDrG5nfFwgOwor54WnPnpow6BvfFwgOwor5oubPnpoYW98XCA7CivlhbQ+eGluZ3xcIDsKK+mYsz55w6FuZ3xcIDsKK+aDij5qaW5nfFwgOwor6YCJPnh1xINufFwgOwor5qyiPmh1YW58XCA7Civlj6Y+bMOsbmd8XCA7CivmuK8+Z8SDbmd8XCA7CivmmJ8+eGluZ3xcIDsKK+aWrT5kdcOgbnxcIDsKK+mZiD5jaMOpbnxcIDsKK+WGnD5uw7NuZ3xcIDsKK+W/tT5uacOgbnxcIDsKK+WImj5nYW5nfFwgOwor5pi+PnhpxINufFwgOwor5raIPnhpYW98XCA7CivpgIE+c8Oybmd8XCA7CivntKc+Y2hvdXxcIDsKK+W4rj5iYW5nfFwgOwor57q/Pnhpw6BufFwgOwor5oS/Pnl1w6BufFwgOwor5aKePnplbmd8XCA7Civmnag+ecOhbmd8XCA7Civmlpk+bGnDoG98XCA7Civlt54+emhvdXxcIDsKK+iRlz56aGFvfFwgOwor5LilPmLDoG5nfFwgOwor5LuNPnLDqW5nfFwgOwor6ISaPmppxINvfFwgOwor5qCHPmJpYW98XCA7Civnl4U+YsOsbmd8XCA7CivlooM+asOsbmd8XCA7Civova8+cnXEg258XCA7CivmnJ0+Y2jDoW98XCA7CivmiqQ+YmVuZ3xcIDsKK+aciz5ww6luZ3xcIDsKK+S+mz5nb25nfFwgOwor5LmxPmx1w6BufFwgOwor54i3Pnhpw6BvfFwgOwor6b6ZPmzDs25nfFwgOwor5pilPmNodW58XCA7Civlv5k+bcOhbmd8XCA7Civnl5s+dMOybmd8XCA7Civmsok+Y2jDqW58XCA7CivngbU+bMOtbmd8XCA7CivlgZw+dMOtbmd8XCA7CivlnZc+a3XDoGl8XCA7Civlhrc+bMSVbmd8XCA7CivmgKo+Z3XDoGl8XCA7CivpnZk+asOsbmd8XCA7Civml4E+cMOhbmd8XCA7Civlm60+eXXDoW58XCA7Civnmbs+ZGVuZ3xcIDsKK+i+gz5qacOgb3xcIDsKK+Wuoz54dWFufFwgOwor5aCCPnTDoW5nfFwgOwor5aSuPnlhbmd8XCA7CivmgIA+aHXDoWl8XCA7CivokKU+ecOtbmd8XCA7Civlp5M+eMOsbmd8XCA7Civlhbs+ecSDbmd8XCA7Civmma8+asStbmd8XCA7Civnu7Q+YsSVbmd8XCA7CivmuJA+Y2jDoW58XCA7Civol48+Y8Ohbmd8XCA7CivmkZg+emhhaXxcIDsKK+inkj5qacSDb3xcIDsKK+eepz5xacOhb3xcIDsKK+Wxgj5jw6luZ3xcIDsKK+mmhj5ndcSDbnxcIDsKK+W+iz5sdVw6zIB8XCA7CivnlLA+dGnDoW58XCA7CivnroA+amnEg258XCA7CivlhY0+bWnEg258XCA7Civlnos+eMOtbmd8XCA7CivmjaI+aHXDoG58XCA7CivmtIs+ecOhbmd8XCA7CivnnaE+c2h1w6x8XCA7Civlurc+a2FuZ3xcIDsKK+ivhD5ww61uZ3xcIDsKK+i/vT56aHVpfFwgOwor5bqXPmRpw6BufFwgOwor546vPmh1w6FufFwgOwor6LaFPmNoYW98XCA7CivljaA+emhhbnxcIDsKK+awuD55xY9uZ3xcIDsKK+a6kD55dcOhbnxcIDsKK+S6vz5zaMOpbnxcIDsKK+mZqT54acSDbnxcIDsKK+mSnz5nw6BuZ3xcIDsKK+iuvz5mxINuZ3xcIDsKK+S8uD5zaGVufFwgOwor6ZmQPnhpw6BufFwgOwor6LezPnRpw6BvfFwgOwor57uDPmxpw6BufFwgOwor5bm4PnjDrG5nfFwgOwor5pWIPnhpw6BvfFwgOwor5bCBPmZlbmd8XCA7CivmlLs+Z29uZ3xcIDsKK+mhtj5kxK1uZ3xcIDsKK+WugT5uw61uZ3xcIDsKK+mYsj5mw6FuZ3xcIDsKK+aKkz56aHVhfFwgOwor6aG6PnNow7lufFwgOwor6K2mPmrErW5nfFwgOwor5qKmPm3DqG5nfFwgOwor5ZaEPnNow6BufFwgOwor6JKZPm1lbmd8XCA7Civnpag+cGnDoG98XCA7CivlnZo+amlhbnxcIDsKK+errz5kdWFufFwgOwor546HPmx1XDrMgHxcIDsKK+aOiT5kacOgb3xcIDsKK+aOiD5zaMOydXxcIDsKK+WuiD5zaMWPdXxcIDsKK+enrz5jaMOobnxcIDsKK+WOvz54acOgbnxcIDsKK+W6rT50w61uZ3xcIDsKK+W/mD53w6BuZ3xcIDsKK+a0sj56aG91fFwgOwor5p2+PnNvbmd8XCA7CivlnY8+aHXDoGl8XCA7CivpgpM+ZMOobmd8XCA7Civpspw+eGlhbnxcIDsKK+efrT5kdcSDbnxcIDsKK+eVpT5sdVw6w6h8XCA7Civmipc+a8Ogbmd8XCA7CivnnZs+amluZ3xcIDsKK+e6tz5ixINuZ3xcIDsKK+mUgD54aWFvfFwgOwor5a6XPnpvbmd8XCA7CivotbU+emjDoG98XCA7Civnga8+ZGVuZ3xcIDsKK+WzsD5mZW5nfFwgOwor5qy+Pmt1xINufFwgOwor5rSqPmjDs25nfFwgOwor6K6iPmTDrG5nfFwgOwor6ZWHPnpow6hufFwgOwor5peFPmx1XDrMhnxcIDsKK+mdlj5qw6xuZ3xcIDsKK+eUsz5zaGVufFwgOwor6L+OPnnDrW5nfFwgOwor5LiBPmRpbmd8XCA7CivlrqE+c2jElW58XCA7CivpgY0+YmnDoG58XCA7CivmoYw+emh1b3xcIDsKK+aZkz54acSDb3xcIDsKK+W8hD5sw7JuZ3xcIDsKK+S6oT53w6FuZ3xcIDsKK+ahpT5xacOhb3xcIDsKK+mXqj5zaMSDbnxcIDsKK+WKsj5qw6xuZ3xcIDsKK+aBkD5rxY9uZ3xcIDsKK+aVrD5qw6xuZ3xcIDsKK+ebkT5qaWFufFwgOwor5Y6FPnRpbmd8XCA7CivpnIc+emjDqG58XCA7CivlhrA+YmluZ3xcIDsKK+mGkj54xK1uZ3xcIDsKK+W6hj5xw6xuZ3xcIDsKK+ehrD55w6xuZ3xcIDsKK+WUrj5zaMOydXxcIDsKK+erpT50w7NuZ3xcIDsKK+e8kz5odcSDbnxcIDsKK+eDpz5zaGFvfFwgOwor5o6nPmvDsm5nfFwgOwor56+HPnBpYW58XCA7CivmtJ4+ZMOybmd8XCA7CivojaM+csOzbmd8XCA7Civmh4I+ZMWPbmd8XCA7Civmi6U+ecWPbmd8XCA7CivnjK4+eGnDoG58XCA7CivmqKo+aMOpbmd8XCA7CivlgaU+amnDoG58XCA7Civnrb4+cWlhbnxcIDsKK+iTiT5yw7NuZ3xcIDsKK+a9rj5jaMOhb3xcIDsKK+Wchj55dcOhbnxcIDsKK+WNtz5qdcSDbnxcIDsKK+WmmT5tacOgb3xcIDsKK+a1qj5sw6BuZ3xcIDsKK+aKvT5jaG91fFwgOwor5YGPPnBpYW58XCA7CivnurU+c8WPbmd8XCA7CivoiKo+aMOhbmd8XCA7Civmi7M+cXXDoW58XCA7CivllJA+dMOhbmd8XCA7Civmo4A+amnEg258XCA7Civlrqs+Z29uZ3xcIDsKK+iigT55dcOhbnxcIDsKK+eBrT5sw6xuZ3xcIDsKK+WPrD5zaMOgb3xcIDsKK+eMmz5txJVuZ3xcIDsKK+WuvT5rdWFufFwgOwor57uNPmrDrG5nfFwgOwor5YW4PmRpxINufFwgOwor5ZyIPmp1YW58XCA7CivkuLA+ZmVuZ3xcIDsKK+aMkT50aWFvfFwgOwor6IKpPmppYW58XCA7Civlh48+amnEg258XCA7Civpkog+emhlbnxcIDsKK+ernj5qw6xuZ3xcIDsKK+aMuj50xK1uZ3xcIDsKK+Wuiz5zw7JuZ3xcIDsKK+mSoj5nYW5nfFwgOwor5oKEPnFpxINvfFwgOwor5LmUPnFpw6FvfFwgOwor5LuHPmNow7N1fFwgOwor5ZC5PmNodWl8XCA7Civono0+csOzbmd8XCA7Civlh4A+asOsbmd8XCA7Civku5k+eGlhbnxcIDsKK+W3pz5xacSDb3xcIDsKK+mbtj5sw61uZ3xcIDsKK+iNoT5kw6BuZ3xcIDsKK+ePjT56aGVufFwgOwor5YuHPnnFj25nfFwgOwor56iOPnNodcOsfFwgOwor5YOnPnNlbmd8XCA7CivplIs+ZmVuZ3xcIDsKK+aDrz5ndcOgbnxcIDsKK+WHrT5ww61uZ3xcIDsKK+WGoD5ndWFufFwgOwor56KwPnDDqG5nfFwgOwor5YC+PnFpbmd8XCA7CivlsJY+amlhbnxcIDsKK+S7vz5mxINuZ3xcIDsKK+mjmD5waWFvfFwgOwor5pmoPmNow6lufFwgOwor57qvPmNow7pufFwgOwor57yYPnl1w6FufFwgOwor5YasPmRvbmd8XCA7Civpg44+bMOhbmd8XCA7Civpl7I+eGnDoW58XCA7CivplZw+asOsbmd8XCA7Civnvoo+ecOhbmd8XCA7Civpqbs+eGlhb3xcIDsKK+iQjT5ww61uZ3xcIDsKK+WIkT54w61uZ3xcIDsKK+WHpD5mw6huZ3xcIDsKK+WtlD5rxY9uZ3xcIDsKK+inpj5ow7NuZ3xcIDsKK+aBiz5sacOgbnxcIDsKK+mahj5sb25nfFwgOwor6JCnPnhpYW98XCA7CivmgKg+eXXDoG58XCA7CivpvoQ+bMOtbmd8XCA7Civku7A+ecSDbmd8XCA7CivmmKA+ecOsbmd8XCA7Civohb4+dMOpbmd8XCA7CivnqI0+c2hhb3xcIDsKK+Wylz5nxINuZ3xcIDsKK+aMoT5kxINuZ3xcIDsKK+WliT5mw6huZ3xcIDsKK+aclz5sxINuZ3xcIDsKK+WFvD5qaWFufFwgOwor5YqdPnF1w6BufFwgOwor55uIPnnDrW5nfFwgOwor6Zm3Pnhpw6BufFwgOwor6bijPm3DrW5nfFwgOwor5YCYPnTEg25nfFwgOwor5oyvPnpow6hufFwgOwor5LinPnNhbmd8XCA7CivnhKY+amlhb3xcIDsKK+WHjD5sw61uZ3xcIDsKK+mqlz5wacOgbnxcIDsKK+eWlz5sacOhb3xcIDsKK+WwmD5jaMOpbnxcIDsKK+i6uj50xINuZ3xcIDsKK+W9qj5iaWFvfFwgOwor5LqVPmrErW5nfFwgOwor5rGqPndhbmd8XCA7CivmvII+cGlhb3xcIDsKK+iBij5sacOhb3xcIDsKK+WHnT5uw61uZ3xcIDsKK+W9rT5ww6luZ3xcIDsKK+WMhj5jb25nfFwgOwor5o+PPm1pw6FvfFwgOwor5oSBPmNow7N1fFwgOwor5raMPnnFj25nfFwgOwor546EPnh1w6FufFwgOwor6L2wPmhvbmd8XCA7Civlpbg+amlhbnxcIDsKK+aAnD5sacOhbnxcIDsKK+m4nz5uacSDb3xcIDsKK+mCpj5iYW5nfFwgOwor6IGqPmNvbmd8XCA7Civovqk+YmnDoG58XCA7Civnk7Y+cMOtbmd8XCA7Civmsog+Y2jDqW58XCA7Civmnqs+ZmVuZ3xcIDsKK+iHoz5jaMOpbnxcIDsKK+aPtD55dcOhbnxcIDsKK+mFuD5zdWFufFwgOwor55ufPm3DqW5nfFwgOwor6IOWPnDDoG5nfFwgOwor5ZO8Pmhlbmd8XCA7CivnmKY+c2jDsnV8XCA7Civnrq0+amnDoG58XCA7CivmvZw+cWnDoW58XCA7CivpuL8+aMOzbmd8XCA7Civnu6k+Y2hhb3xcIDsKK+S6rT50w61uZ3xcIDsKK+eLvD5sw6FuZ3xcIDsKK+iIsD5qacOgbnxcIDsKK+eJtT5xaWFufFwgOwor55avPmZlbmd8XCA7CivpoqQ+emjDoG58XCA7Civooas+c2hhbnxcIDsKK+iJsD5qaWFufFwgOwor6IuNPmNhbmd8XCA7Civml4s+eHXDoW58XCA7CivmoZE+c2FuZ3xcIDsKK+iOsj5sacOhbnxcIDsKK+mSuz56dWFufFwgOwor5a6PPmjDs25nfFwgOwor5bm7Pmh1w6BufFwgOwor6L69Pmxpw6FvfFwgOwor5oKjPmh1w6BufFwgOwor6KGhPmjDqW5nfFwgOwor5LiRPmNoxY91fFwgOwor5pqWPm51xINufFwgOwor5rWTPm7Ds25nfFwgOwor6ZSuPmppw6BufFwgOwor6IetPmNow7J1fFwgOwor6IqzPmZhbmd8XCA7CivlnoI+Y2h1w618XCA7CivmjYk+emh1b3xcIDsKK+aBrT5nb25nfFwgOwor5rOJPnF1w6FufFwgOwor6KeIPmppw6BvfFwgOwor6ISPPnphbmd8XCA7Civnlrw+dMOpbmd8XCA7Civpk5w+dMOzbmd8XCA7CivmoaM+ZMSDbmd8XCA7Civoi5c+bWnDoW98XCA7Civmn4Q+YsStbmd8XCA7CivoiJ8+emhvdXxcIDsKK+emhT5zaMOgbnxcIDsKK+aVsj5xaWFvfFwgOwor5625PmNow7N1fFwgOwor5rWFPnFpxINufFwgOwor5p+0PmNow6FpfFwgOwor6ZuVPmRpYW98XCA7Civlr78+c2jDsnV8XCA7CivokaM+ZMWPbmd8XCA7CivpibQ+amnDoG58XCA7CivliLc+c2h1YXxcIDsKK+aNkD5qdWFufFwgOwor6LSvPmd1w6BufFwgOwor5q6/PmRpw6BufFwgOwor6L+BPnFpYW58XCA7Civpnq0+YmlhbnxcIDsKK+iMqz5tw6FuZ3xcIDsKK+mAoj5mw6luZ3xcIDsKK+Wcsz56aMOobnxcIDsKK+i4qj5jaHXDsnxcIDsKK+S4mz5jw7NuZ3xcIDsKK+WQtT5jaMSDb3xcIDsKK+i0oT5nw7JuZ3xcIDsKK+i1oj5nw7JuZ3xcIDsKK+ajkj5iw6BuZ3xcIDsKK+aBkj5ow6luZ3xcIDsKK+i0pD54acOhbnxcIDsKK+aLhj5jaGFpfFwgOwor57ygPmNow6FufFwgOwor57ydPmbDqW5nfFwgOwor6IKWPnhpw6BvfFwgOwor54K8Pmxpw6BufFwgOwor5a6qPnhpw6BufFwgOwor5bqZPm1pw6BvfFwgOwor5YavPmbDqW5nfFwgOwor5ZSkPmh1w6BufFwgOwor55ScPnRpw6FufFwgOwor5bq4Pnlvbmd8XCA7CivpuY8+cMOpbmd8XCA7CivnjrI+bMOtbmd8XCA7Civnu7w+esOybmd8XCA7Civlq4w+eGnDoW58XCA7CivliYo+eGlhb3xcIDsKK+aJlD5yZW5nfFwgOwor5oKsPnh1w6FufFwgOwor5bu3PnTDrW5nfFwgOwor56y8PmzDs25nfFwgOwor6aKgPmRpYW58XCA7CivmiYc+c2hhbnxcIDsKK+WUhz5jaMO6bnxcIDsKK+aNpz5wxJVuZ3xcIDsKK+WGpD55dWFufFwgOwor55qxPnpow7J1fFwgOwor6YGjPnFpxINufFwgOwor57+BPndlbmd8XCA7CivplZY+Ymlhb3xcIDsKK+Wxjz5ixK1uZ3xcIDsKK+ajiT5tacOhbnxcIDsKK+Wtnz5tw6huZ3xcIDsKK+iRrD56w6BuZ3xcIDsKK+a3uz50aWFufFwgOwor5YWGPnpow6BvfFwgOwor5qygPnFpw6BufFwgOwor6ZKTPmRpw6BvfFwgOwor5ZCKPmRpw6BvfFwgOwor5aGrPnRpw6FufFwgOwor5oqEPmNoYW98XCA7Civnnqo+ZMOobmd8XCA7Civliao+amnEg258XCA7CivlgLo+emjDoGl8XCA7CivmmbY+amluZ3xcIDsKK+WNkz56aHXDs3xcIDsKK+ezlj50w6FuZ3xcIDsKK+e7tT5tacOhbnxcIDsKK+WmqD5mw6FuZ3xcIDsKK+ePij5zaGFufFwgOwor5Zq3PnLEg25nfFwgOwor55uyPm3DoW5nfFwgOwor6L6oPmJpw6BufFwgOwor5rOzPnnFj25nfFwgOwor5a6FPnpow6FpfFwgOwor6IaAPmLEg25nfFwgOwor6aKIPmfElW5nfFwgOwor6Le1Pmppw6BufFwgOwor6L2/Pmppw6BvfFwgOwor5aiHPmppYW98XCA7CivmvYc+eGlhb3xcIDsKK+migj5yw7NuZ3xcIDsKK+adrT5ow6FuZ3xcIDsKK+eerD5zaMO5bnxcIDsKK+S5lj5ndWFpfFwgOwor54KSPmNoxINvfFwgOwor6aW8PmLErW5nfFwgOwor6ZKJPmRpbmd8XCA7CivotaA+esOobmd8XCA7Civlk4Q+aG9uZ3xcIDsKK+mTgz5sw61uZ3xcIDsKK+m5sD55aW5nfFwgOwor5q2JPnFpw6BufFwgOwor55uvPmRpbmd8XCA7Civlhb0+c2jDsnV8XCA7Civnvak+emjDoG98XCA7Civltak+c29uZ3xcIDsKK+mZtT5sw61uZ3xcIDsKK+icgj5mZW5nfFwgOwor5buJPmxpw6FufFwgOwor6aqEPmppYW98XCA7CivovrA+Y2jDqW58XCA7CivlnZE+a2VuZ3xcIDsKK+ecoD5tacOhbnxcIDsKK+WtnT54acOgb3xcIDsKK+iZuT5ow7NuZ3xcIDsKK+WLiT5tacSDbnxcIDsKK+aFjj5zaMOobnxcIDsKK+aWqT56aMSDbnxcIDsKK+aOoD5sdVw6w6h8XCA7Civpg4o+amlhb3xcIDsKK+m8jj5kxK1uZ3xcIDsKK+WGuz5kw7JuZ3xcIDsKK+ahkD50w7NuZ3xcIDsKK+iJhz50xK1uZ3xcIDsKK+iwpj5xaWFufFwgOwor5bKtPmzDrW5nfFwgOwor5qG2PnTFj25nfFwgOwor5ZeTPnPEg25nfFwgOwor5biYPmxpw6FufFwgOwor5LuTPmNhbmd8XCA7Civmi5A+Z3XEg2l8XCA7Civnu5E+YsSDbmd8XCA7CivojZA+amnDoG58XCA7Civlu4o+bMOhbmd8XCA7Civor4o+emjElW58XCA7Civmo5o+cMOpbmd8XCA7CivmjoA+eGlhbnxcIDsKK+etkj50xY9uZ3xcIDsKK+enkj5tacSDb3xcIDsKK+ayvj56aGFufFwgOwor5bqePnDDoW5nfFwgOwor5Yi4PnF1w6BufFwgOwor6LafPnTDoG5nfFwgOwor54GMPmd1w6BufFwgOwor5aaEPnfDoG5nfFwgOwor5a6ZPnpow7J1fFwgOwor572QPmd1w6BufFwgOwor6LaBPmNow6hufFwgOwor5am0Pnlpbmd8XCA7Civouqw+Z29uZ3xcIDsKK+WPrj5kaW5nfFwgOwor5pm0PnHDrW5nfFwgOwor5reuPmh1w6FpfFwgOwor5pe6PnfDoG5nfFwgOwor56qcPmN1w6BufFwgOwor5a+oPnpow6BpfFwgOwor5pitPnpoYW98XCA7Civlm4o+bsOhbmd8XCA7Civok6w+cMOpbmd8XCA7CivotLE+amnDoG58XCA7CivlmLI+Y2jDoW98XCA7Civlgo0+YmFuZ3xcIDsKK+e6sj5nYW5nfFwgOwor6ICVPmdlbmd8XCA7CivoiLE+Y2FuZ3xcIDsKK+egsD5wZW5nfFwgOwor5aGYPnTDoW5nfFwgOwor57qkPnhpYW58XCA7Civpk74+bGnDoG58XCA7Civmi7E+Z8WPbmd8XCA7Civpk60+bcOtbmd8XCA7Civmt7M+Y2jDum58XCA7Civmppw+YsSDbmd8XCA7CivnvqE+eGnDoG58XCA7Civljb8+cWluZ3xcIDsKK+WWpz54dWFufFwgOwor5bGlPmx1XDrMhnxcIDsKK+aeiT53xINuZ3xcIDsKK+ihrD5jaMOobnxcIDsKK+WHsz5kw6huZ3xcIDsKK+e8hT5tacSDbnxcIDsKK+W8pj54acOhbnxcIDsKK+WApj5qdcOgbnxcIDsKK+mFrD5jaMOzdXxcIDsKK+WSkj56aMOydXxcIDsKK+W0qT5iZW5nfFwgOwor6aG3PnHErW5nfFwgOwor5L6mPnpoZW58XCA7CivpmZU+c2jEg258XCA7CivogLg+c8WPbmd8XCA7CivnqoQ+emjEg2l8XCA7Civnl5I+ecSDbmd8XCA7Civmsqc+Y2FuZ3xcIDsKK+i0nj56aGVufFwgOwor6KCiPmNoxa1ufFwgOwor6YCNPnhpYW98XCA7Civlg5o+bGnDoW98XCA7Civpm4A+cWlhb3xcIDsKK+iAjT5zaHXEg3xcIDsKK+aelT56aMSVbnxcIDsKK+aNoT5qacSDbnxcIDsKK+acpj5tw6luZ3xcIDsKK+ettz5rdcOgaXxcIDsKK+e8uD5nYW5nfFwgOwor5byTPmdvbmd8XCA7CivniKo+emh1xIN8XCA7CivoipI+bcOhbmd8XCA7CivnvLQ+amnEg298XCA7Civlk6g+c2jDoG98XCA7CivpopY+ecStbmd8XCA7Civmt4A+ZGnDoG58XCA7Civlmrw+amnDoW98XCA7CivpqqQ+emjDsnV8XCA7Civoi7k+cMOtbmd8XCA7CivmmZI+c2jDoGl8XCA7Civmi6I+bMWPbmd8XCA7Civog6c+bMOzbmd8XCA7Civog7Y+amlhb3xcIDsKK+S5kj5waW5nfFwgOwor6K69PmZlbmd8XCA7CivmiLM+Y2h1b3xcIDsKK+aLoz5qacSDbnxcIDsKK+iAvz5nxJVuZ3xcIDsKK+W7vz5uacOgbnxcIDsKK+ajuj5ndWFufFwgOwor5Z2gPnpodcOsfFwgOwor5YaIPmdhbmd8XCA7Civojrk+ecOtbmd8XCA7CivooZQ+eGnDoW58XCA7CivnlLg+ZGnDoG58XCA7CivotKw+YmnEg258XCA7CivmhKM+bMOobmd8XCA7CivmkIU+amnEg298XCA7CivngpU+a8Ogbmd8XCA7CivohaU+eGluZ3xcIDsKK+iXpD50w6luZ3xcIDsKK+atvD5qaWFufFwgOwor6I69Pm3Eg25nfFwgOwor54OrPnTDoG5nfFwgOwor6ZKePmNoYW98XCA7CivlnYo+ZmFuZ3xcIDsKK+euqz54aWFvfFwgOwor5ZehPndlbmd8XCA7CivmuoU+amnDoG58XCA7CivmoIs+ZMOybmd8XCA7CivnpoA+YsStbmd8XCA7Civng4E+c2h1w7J8XCA7Civljq4+cWlhbnxcIDsKK+eymD5uacOhbnxcIDsKK+aclD5zaHXDsnxcIDsKK+WSuD54acOhbnxcIDsKK+e6uj5mxINuZ3xcIDsKK+iZkD5udVw6w6h8XCA7CivplKQ+Y2h1w618XCA7CivlqLQ+eGnDoW58XCA7Civniqw+cXXEg258XCA7CivlhqU+bcOtbmd8XCA7Civnm48+emjEg258XCA7CivnhJU+aHXDoG58XCA7CivlvJg+aMOzbmd8XCA7Civmk4U+c2jDoG58XCA7Civop4U+Y2hhbnxcIDsKK+awkz5tw6FuZ3xcIDsKK+aApj5wZW5nfFwgOwor6Km5PnpoYW58XCA7CivmiYE+cGlhbnxcIDsKK+aFtz5rYW5nfFwgOwor56+3PnDDqW5nfFwgOwor57u4PmNow7N1fFwgOwor5a+lPmxpw6FvfFwgOwor5Z6rPmRpw6BufFwgOwor5LmTPnBhbmd8XCA7Civohps+dMOhbmd8XCA7Civpl7U+a2FuZ3xcIDsKK+eQoj56aHXDs3xcIDsKK+mYrj5ydcSDbnxcIDsKK+S/jz5xacOgb3xcIDsKK+alnj5sw6luZ3xcIDsKK+aLmT56aHVvfFwgOwor5aWgPmRpw6BufFwgOwor6IKYPnpoxY91fFwgOwor6IaoPnDDqW5nfFwgOwor5aOkPnLEg25nfFwgOwor5riXPnNow6hufFwgOwor6L2pPnh1YW58XCA7Civoi5E+eXXDoG58XCA7Civlt6k+Z8WPbmd8XCA7CivnsqU+emhvdXxcIDsKK+aWiz56aGFpfFwgOwor5pafPnpoZW58XCA7CivmoqI+c2hhb3xcIDsKK+mThT5xaWFufFwgOwor57uSPnLDs25nfFwgOwor6ZS7PmR1w6BufFwgOwor6LC0PnFpxINufFwgOwor5rKFPnl1w6FufFwgOwor5a61PnhpYW98XCA7Civnj5E+bMOzbmd8XCA7Civlkpo+ZG9uZ3xcIDsKK+S6qD5oZW5nfFwgOwor5reMPnTEg25nfFwgOwor5ombPmdhbmd8XCA7CivlvaQ+dMOzbmd8XCA7CivmsKc+ecSDbmd8XCA7CivnkJA+YsStbmd8XCA7Civni6E+amnEg298XCA7Civlqbc+dMOtbmd8XCA7CivmuLo+bWnEg298XCA7CivltYw+cWnDoG58XCA7Civpnpg+cWnDoG98XCA7CivlkK0+aMOhbmd8XCA7Civnu7A+Y2h1w7J8XCA7Civnu54+amnEg298XCA7CivovbQ+emjDs3V8XCA7CivpgrU+c2jDoG98XCA7Civmho4+emVuZ3xcIDsKK+eqjT5xacOgb3xcIDsKK+Wdqj5ww61uZ3xcIDsKK+eYqz5zaMOobnxcIDsKK+S9oz55b25nfFwgOwor5Y21Pmx1xINufFwgOwor55CFPmzDoW5nfFwgOwor5pi8Pnpow7J1fFwgOwor5YWiPmppbmd8XCA7CivnhY4+amlhbnxcIDsKK+eehT5jaMWPdXxcIDsKK+eGlD5yw7NuZ3xcIDsKK+e7hT5zaGVufFwgOwor6LmmPmLDqG5nfFwgOwor6IGLPmzDs25nfFwgOwor54W9PnNoYW58XCA7Civlkbs+c2hlbnxcIDsKK+e/mD5xacOhb3xcIDsKK+adjz54w6xuZ3xcIDsKK+iZlD5xacOhbnxcIDsKK+aLpz5uw61uZ3xcIDsKK+eDmD5ob25nfFwgOwor5YigPnNoYW58XCA7CivpnIQ+eGlhb3xcIDsKK+ectz5qdcOgbnxcIDsKK+mYkD5jaMSDbnxcIDsKK+iuvD5zw7JuZ3xcIDsKK+W0rT56aMSDbnxcIDsKK+S8tj5sw61uZ3xcIDsKK+W3oj5jaMOhb3xcIDsKK+WVtz5sYW5nfFwgOwor5L+tPmppxINufFwgOwor5rq2PnLDs25nfFwgOwor5rmbPnpow6BufFwgOwor57+pPnBpYW58XCA7CivlmqM+eGlhb3xcIDsKK+eQmz5jaGVufFwgOwor5rWKPnpodcOzfFwgOwor5p2gPmdhbmd8XCA7CivnnoQ+bWnDoW98XCA7Civmkqk+bGlhb3xcIDsKK+eMvz55dcOhbnxcIDsKK+aMoD5kw6BuZ3xcIDsKK+eBvD56aHXDs3xcIDsKK+mSsD5qacSDbnxcIDsKK+akkj5qaWFvfFwgOwor5buWPmxpw6BvfFwgOwor55StPmLDqW5nfFwgOwor6L+iPnRpw6FvfFwgOwor5pSYPnLEg25nfFwgOwor57yOPmR1w6BufFwgOwor55+rPmppxINvfFwgOwor55GbPnlpbmd8XCA7CivnjKk+eGluZ3xcIDsKK+WSmT5sw7NuZ3xcIDsKK+WXlD5jaGVufFwgOwor6LiMPmNow7N1fFwgOwor57u3PmJlbmd8XCA7CivnvIA+Y2h1w7J8XCA7CivlqbY+c2jElW58XCA7Civouaw+ZMOobmd8XCA7Civli7o+c2jDoW98XCA7Civnnrs+emhhbnxcIDsKK+i4ij55xY9uZ3xcIDsKK+ecqT54dcOgbnxcIDsKK+i/uD5iw6huZ3xcIDsKK+S4mT5ixK1uZ3xcIDsKK+mluj5qacSDb3xcIDsKK+mTsj5jaMSDbnxcIDsKK+aVmz5sacOgbnxcIDsKK+aNhT50xY9uZ3xcIDsKK+a7lT50w6luZ3xcIDsKK+ecuj50acOgb3xcIDsKK+ajlT56b25nfFwgOwor57uiPmp1w6BufFwgOwor5aifPmp1YW58XCA7CivokIw+bcOpbmd8XCA7Civlk70+Z8SVbmd8XCA7Civng7k+cGVuZ3xcIDsKK+eCij5jaHVpfFwgOwor5Ym/PmNoYW98XCA7Civngqs+eHXDoG58XCA7CivplKU+emh1aXxcIDsKK+mUiD5qacOgbnxcIDsKK+WIgT5kaWFvfFwgOwor5LqiPmvDoG5nfFwgOwor5YaVPm1pxINufFwgOwor54CbPnnDrW5nfFwgOwor5bqaPmdlbmd8XCA7Civls60+cWnDoG98XCA7Civno4U+YsOgbmd8XCA7Civpm40+eW9uZ3xcIDsKK+WAqT5xacOgbnxcIDsKK+iSnD5zdcOgbnxcIDsKK+eCsz5ixK1uZ3xcIDsKK+aDmD53xINuZ3xcIDsKK+i1gz56YW5nfFwgOwor5qeQPmh1w6FpfFwgOwor5amKPmJpxINvfFwgOwor6L6XPnpoxINufFwgOwor56eJPmLErW5nfFwgOwor5L6lPmppxINvfFwgOwor6aaFPnhpw6BufFwgOwor6KKFPm5pxINvfFwgOwor5b23PmbEg25nfFwgOwor6Ie7PnpoZW58XCA7CivmqLE+eWluZ3xcIDsKK+W/jz5jaMOgbnxcIDsKK+eqlj5qacOgb3xcIDsKK+eivj5uacSDbnxcIDsKK+mmiz5jaMOhbnxcIDsKK+a8vj55w6BuZ3xcIDsKK+enpz55YW5nfFwgOwor6K6qPnNow6BufFwgOwor6YaHPmNow7pufFwgOwor5oaUPnFpw6FvfFwgOwor56GdPnhpYW98XCA7Civoua0+Y8Opbmd8XCA7Civpvpo+Z29uZ3xcIDsKK+eLnj5oxINuZ3xcIDsKK+e8rT5sacOhb3xcIDsKK+aQgD5jaGFufFwgOwor56WvPnpoZW58XCA7CivoiJw+c2jDuW58XCA7CivpgqI+eMOtbmd8XCA7Civmp5s+amnDoG58XCA7CivnlbQ+Y2jDs3V8XCA7CivoiJQ+dGnEg258XCA7Civmg7o+eGluZ3xcIDsKK+eenz5wacSDb3xcIDsKK+idiT5jaMOhbnxcIDsKK+avoT56aGFufFwgOwor5oqoPnBlbmd8XCA7Civmg7Q+emh1w6x8XCA7Civmk44+ccOtbmd8XCA7CivolYk+amlhb3xcIDsKK+azkz5ow7NuZ3xcIDsKK+aNjj5zaGFvfFwgOwor5r6OPnDDqW5nfFwgOwor5o22PmNodcOtfFwgOwor5ruHPmRpYW58XCA7Civogr4+c2jDqG58XCA7CivpuLM+eXVhbnxcIDsKK+aIjj5yw7NuZ3xcIDsKK+mUrT5kw6xuZ3xcIDsKK+aUpT56dcOgbnxcIDsKK+aLiD5uacOhbnxcIDsKK+afrD5qacSDbnxcIDsKK+eXqj5odcOgbnxcIDsKK+aBmT55w6BuZ3xcIDsKK+iygj5kaWFvfFwgOwor6Iy4PnLDs25nfFwgOwor5Z6jPnl1w6FufFwgOwor5qOxPmzDqW5nfFwgOwor6IGGPmzDrW5nfFwgOwor55mrPmRpYW58XCA7Civmopc+Z8SVbmd8XCA7Civmg4Y+Y2jDs3V8XCA7Civogoc+emjDoG98XCA7Civoj7E+bMOtbmd8XCA7CivnpIE+amlhb3xcIDsKK+W4mj56aMWPdXxcIDsKK+aStT5uacSDbnxcIDsKK+augz55YW5nfFwgOwor5oGsPnRpw6FufFwgOwor5rafPmxpw6FufFwgOwor6ZWRPmLDoG5nfFwgOwor6bivPnlhbmd8XCA7Civlq5Y+cGnDoW98XCA7CivoiLc+eGnDoW58XCA7CivmoZM+aHXDoW58XCA7CivmpI4+Y2h1w618XCA7CivplaM+bGnDoW98XCA7CivphYw+emh1w7N8XCA7Civojac+ecOtbmd8XCA7Civnvrk+Z2VuZ3xcIDsKK+iYuD56aMOgbnxcIDsKK+aDpj5kacOgbnxcIDsKK+aypT5mZW5nfFwgOwor6LCkPmLDoG5nfFwgOwor562bPnNoYWl8XCA7CivmkoI+bGnDoG98XCA7Civohro+eWluZ3xcIDsKK+aGrD5qxK1uZ3xcIDsKK+mSsz5xacOhbnxcIDsKK+evoT5jdcOgbnxcIDsKK+eXij5xdcOhbnxcIDsKK+mYsT5qxK1uZ3xcIDsKK+aCmj5zxY9uZ3xcIDsKK+i3tz5xaWFvfFwgOwor5aeXPnNoYW58XCA7Civpkpc+Y2hhaXxcIDsKK+ajoD50w6FuZ3xcIDsKK+WQrj5zaMWtbnxcIDsKK+a4sj54dcOgbnxcIDsKK+WMvj5iacSDbnxcIDsKK+eOrj5kaWFufFwgOwor5ZuUPm5hbmd8XCA7Civol5A+bWnEg298XCA7Civlt4U+ZGlhbnxcIDsKK+WHiz5kaWFvfFwgOwor6LekPmppYW98XCA7CivovoQ+bmnEg258XCA7Civmh7U+bcSVbmd8XCA7Civpsrg+amluZ3xcIDsKK+esuj5qaWFufFwgOwor5rGAPnRpbmd8XCA7CivohrM+c2jDoG58XCA7Civnsr0+esOybmd8XCA7CivphbU+amnDoG98XCA7CivonLc+cXXDoW58XCA7CivnqKA+Y2jDs3V8XCA7Civot5o+c2hhbnxcIDsKK+ayvD56aMSDb3xcIDsKK+eisT5qacSDbnxcIDsKK+mVsD5sacOhbnxcIDsKK+aCuz54w6xuZ3xcIDsKK+iFhj50acSDbnxcIDsKK+a2jj54acOhbnxcIDsKK+eToj5wacOhb3xcIDsKK+eqvz5sw7NuZ3xcIDsKK+iOnj5ndWFufFwgOwor6I2DPnF1w6FufFwgOwor5o6CPmRpYW58XCA7CivokKY+ecOtbmd8XCA7Civlj7w+ZGlhb3xcIDsKK+eUrD55xY9uZ3xcIDsKK+iOuj55aW5nfFwgOwor5qi1PnFpw6FvfFwgOwor6LWTPmdlbmd8XCA7Civmnq0+eGlhb3xcIDsKK+WDrj50w7NuZ3xcIDsKK+i1mD56aHXDrHxcIDsKK+akvz5jaHVufFwgOwor6ZKKPmxpxINvfFwgOwor5ranPmppw6BufFwgOwor6IW6Pnhpw6BufFwgOwor54OoPnRpbmd8XCA7CivmsKI+cWluZ3xcIDsKK+axlT5zaMOgbnxcIDsKK+idmT5iaWFufFwgOwor5ZOuPnhpYW98XCA7Civls5I+dMOzbmd8XCA7CivohJM+bsOzbmd8XCA7CivltIY+a29uZ3xcIDsKK+iwjz5qacOgbnxcIDsKK+aNiz5sdVw6zIZ8XCA7Civkva8+ecOhbmd8XCA7CivlrqY+aHXDoG58XCA7Civnkoc+eHXDoW58XCA7Civmvbo+Y2jDoW58XCA7Civkv5E+ecWPbmd8XCA7Civlv7E+Y2jDqW58XCA7Civohbw+bWnEg258XCA7CivokKQ+ecOtbmd8XCA7Civnk64+d8Oobmd8XCA7CivmoIg+emjDoG58XCA7Civombs+bcOpbmd8XCA7Civomow+YsOgbmd8XCA7Civmjbs+bmnEg258XCA7Civkvbw+amnEg298XCA7CivosIY+emh1bnxcIDsKK+WTnT5uw7NuZ3xcIDsKK+mftj5zaMOhb3xcIDsKK+iaoz5nb25nfFwgOwor5pqEPnh1YW58XCA7CivonoM+cMOhbmd8XCA7Civlr7A+aHXDoW58XCA7CivmnJU+emjDqG58XCA7CivmkKo+dMOhbmd8XCA7Civls6Y+bHXDoW58XCA7CivpqoE+eGlhb3xcIDsKK+iMlz5tw61uZ3xcIDsKK+ifvj5jaMOhbnxcIDsKK+mVrz56aHXDs3xcIDsKK+msnz5odcOhbnxcIDsKK+e9gj55aW5nfFwgOwor5rOePm7DrG5nfFwgOwor6ZmHPmzFj25nfFwgOwor6ZyGPnTDrW5nfFwgOwor54SYPmNow7N1fFwgOwor57yIPm1pxINvfFwgOwor5pKsPnFpw6BvfFwgOwor5ZWEPnpodcOzfFwgOwor6Lm/PmN1YW58XCA7Civpk78+a2VuZ3xcIDsKK+e8pT5wacSDb3xcIDsKK+S+rD5uw7NuZ3xcIDsKK+WGlz5yxY9uZ3xcIDsKK+amlT5yw7NuZ3xcIDsKK+mXsD5qacOgbnxcIDsKK+iCqj5mw6FuZ3xcIDsKK+eUhD56aGVufFwgOwor57OgPmthbmd8XCA7CivllZw+Y2h1w7J8XCA7CivmooY+YmFuZ3xcIDsKK+e/jj5sw61uZ3xcIDsKK+i4nT5odcOhaXxcIDsKK+ijhj5kYW5nfFwgOwor5463PmRpw6BufFwgOwor5rCvPmx1XDrMgHxcIDsKK+eHjj5sacOhb3xcIDsKK+ifkj5txINuZ3xcIDsKK+i+lT55dcOhbnxcIDsKK+m5gz5qdWFufFwgOwor6ZObPmRhbmd8XCA7Civov7M+asOsbmd8XCA7CivojI4+amluZ3xcIDsKK+Wfgj5nxJVuZ3xcIDsKK+WYrT5wZW5nfFwgOwor5oG4Pmp1w6BufFwgOwor556zPnTDs25nfFwgOwor6bmqPmppYW98XCA7Civohrs+c2hhbnxcIDsKK+aAgj5zxY9uZ3xcIDsKK+eekT5tw61uZ3xcIDsKK+i1iD56aMOobnxcIDsKK+ivoD5xdcOhbnxcIDsKK+aBvz55xY9uZ3xcIDsKK+eDvT5mZW5nfFwgOwor6JKvPmt1xINpfFwgOwor57yoPnlpbmd8XCA7CivoiKs+ZsSDbmd8XCA7Civojpg+c2hlbnxcIDsKK+aOuD5jaMOhbnxcIDsKK+WYpD55aW5nfFwgOwor6JyVPnNodcOsfFwgOwor6JufPmppYW98XCA7CivmoaI+emhlbnxcIDsKK+a2kz5qdWFufFwgOwor5L2DPmRpw6BufFwgOwor5ZuxPmNvbmd8XCA7Civps50+c2jDoG58XCA7Civpu48+bmnDoW58XCA7CivkvZ8+dMOzbmd8XCA7CivnvIQ+amlhbnxcIDsKK+mavT5qdcOgbnxcIDsKK+a8qT54dcOhbnxcIDsKK+eLqT5zaMOydXxcIDsKK+iMnD5xacOgbnxcIDsKK+m7lD5xacOhbnxcIDsKK+anjD5jaHXDrXxcIDsKK+aWqz56aHXDs3xcIDsKK+e6qz5xdcOhbnxcIDsKK+eCgD55w6FuZ3xcIDsKK+i+jT5jaHXDsnxcIDsKK+WSmz5uw61uZ3xcIDsKK+akrT5zaGVufFwgOwor5oCPPnnDoG5nfFwgOwor6IOEPnpow7J1fFwgOwor5Ym9PnBpYW98XCA7CivonJM+dMOtbmd8XCA7Civnmo4+amnEg298XCA7CivnkI8+bGnDoW58XCA7CivlmLk+bGnDoW98XCA7Civnl4k+asOsbmd8XCA7CivmkKE+c8SDbmd8XCA7Civlrao+bHXDoW58XCA7CivmjJs+bHXDoW58XCA7Civml4w+amluZ3xcIDsKK+e+mj5sw61uZ3xcIDsKK+a1nD5iYW5nfFwgOwor5rOxPnlhbmd8XCA7Civms74+amluZ3xcIDsKK+icuz5xaW5nfFwgOwor5bWYPnLDs25nfFwgOwor5YCMPmd1YW58XCA7CivonoI+bMOhbmd8XCA7Civoi5M+bMOtbmd8XCA7CivolKs+bmlhbnxcIDsKK+iGgj5sdVw6zIZ8XCA7CivmsbQ+YmnDoG58XCA7CivmkZI+YsOsbmd8XCA7Civmgas+ZMOybmd8XCA7Civnu4w+emh1w7N8XCA7CivouK4+ZGnEg258XCA7Civlqps+eXXDoW58XCA7Civosbo+Y2jDoWl8XCA7CivnrrQ+emhlbnxcIDsKK+S/uD5mw6huZ3xcIDsKK+e9lD53xINuZ3xcIDsKK+a5jT50dWFufFwgOwor5LuDPmRpbmd8XCA7CivnurY+Z3VhbnxcIDsKK+m5pj55aW5nfFwgOwor6ISNPmt1w6BpfFwgOwor6IOrPmrDrG5nfFwgOwor56G3PmppxINufFwgOwor57uJPnpow7J1fFwgOwor5rajPmh1w6BufFwgOwor6ZezPmjDs25nfFwgOwor6IeDPnlvbmd8XCA7Civlr64+bGnDoW98XCA7CivnvK4+c2jDoG58XCA7Civpoqc+cXXDoW58XCA7Civnook+ZGlhb3xcIDsKK+aztT5iw6huZ3xcIDsKK+i1oT5zaMOgbnxcIDsKK+WulT5kw6BuZ3xcIDsKK+aylD5tacSDbnxcIDsKK+WgkT5xacOgbnxcIDsKK+e9oT5nYW5nfFwgOwor6IqNPnNow6FvfFwgOwor6a2HPmNodcOtfFwgOwor6Z2TPmppbmd8XCA7CivplYw+anVhbnxcIDsKK+a9vD50w7NuZ3xcIDsKK+WeuD5odcOgbnxcIDsKK+iwhD5jaMSDbnxcIDsKK+aOvD5ndcOgbnxcIDsKK+WEhj5qxK1uZ3xcIDsKK+e6gj56dcSDbnxcIDsKK+eOjj5kaW5nfFwgOwor5qqsPm3DqW5nfFwgOwor55ulPmd1w6BufFwgOwor5ZmUPmRlbmd8XCA7Civnlrk+emjElW58XCA7Civmt5k+Y8Ozbmd8XCA7CivmqYc+cWlhb3xcIDsKK+afoD5uw61uZ3xcIDsKK+iJhD5zaGFvfFwgOwor6ZiGPmzEg25nfFwgOwor55ahPnnDoW5nfFwgOwor6aWvPmppw6BufFwgOwor6ayDPnpvbmd8XCA7CivmrpM+bGnDoG58XCA7Civoj4E+amluZ3xcIDsKK+a/rz56aHXDs3xcIDsKK+mavD56aMWtbnxcIDsKK+e/pj5qacSDbnxcIDsKK+a3nj5zb25nfFwgOwor5qGnPmt1w6BpfFwgOwor5r24PnNoYW58XCA7Civpvoo+Y2h1w7J8XCA7CivmhIY+cWlhbnxcIDsKK+Wnoz5qaWFvfFwgOwor6IaYPmJpYW98XCA7CivljZ4+YmnDoG58XCA7CivpuL4+bHXDoW58XCA7CivplZc+dGFuZ3xcIDsKK+WoqT5tacSDbnxcIDsKK+etsT54acSDb3xcIDsKK+ijsT5iacSDb3xcIDsKK+a6nz5tw61uZ3xcIDsKK+mZsj5jaHXDrXxcIDsKK+eqlT50acSDb3xcIDsKK+mUjz5qacSDbnxcIDsKK+eUuj50xK1uZ3xcIDsKK+e6oz5qaWFufFwgOwor6LC2PmNow6hufFwgOwor5a2sPmh1w6BpfFwgOwor6ZWzPmJpYW98XCA7Civlvok+ecOhbmd8XCA7CivosKo+amnDoG58XCA7Civkvbs+dGlhb3xcIDsKK+mjmT5iaWFvfFwgOwor5o6uPnFpw6FufFwgOwor5LyJPmvDoG5nfFwgOwor6ZSoPnhpYW58XCA7Civno6w+ccOsbmd8XCA7Civnka0+dMOhbmd8XCA7Civpqp4+cWlhbnxcIDsKK+mVqz5kZW5nfFwgOwor6IenPnphbmd8XCA7CivlgqU+dMSDbmd8XCA7CivmhbU+eW9uZ3xcIDsKK+a/gj5sacOhbnxcIDsKK+WbuT5sw61uZ3xcIDsKK+WstD55w61uZ3xcIDsKK+S+qT5rdcOgaXxcIDsKK+aesD5ww61uZ3xcIDsKK+a7gj5wYW5nfFwgOwor6IqrPnl1w6FufFwgOwor5qOCPmzDrW5nfFwgOwor5LynPmNhbmd8XCA7CivosJc+Y2jDoW58XCA7CivonrM+dMOhbmd8XCA7CivplLc+Y2hhaXxcIDsKK+e7qz5sw61uZ3xcIDsKK+iMgT56aHXDs3xcIDsKK+icgz5zaMOobnxcIDsKK+mThD5zaHXDsnxcIDsKK+e8nD56aGVufFwgOwor6YCEPnDDoW5nfFwgOwor6L62PmNodcOyfFwgOwor6IiiPnNoYW58XCA7Civmt7w+bWnEg298XCA7CivnvYQ+ccOsbmd8XCA7Civnopw+Y2jElW58XCA7CivnlI8+cMOobmd8XCA7Civms6A+bMOtbmd8XCA7Civlg60+amnDoG58XCA7Civnopg+ZGnEg258XCA7Civmro0+cGnEg298XCA7Civmk6Q+eMStbmd8XCA7CivojZ4+amlhb3xcIDsKK+mYoT5xaWFufFwgOwor5rGePmfFj25nfFwgOwor5am1PmNow6FufFwgOwor5ZijPmJlbmd8XCA7CivlqIk+cGluZ3xcIDsKK+iupz5ow7NuZ3xcIDsKK+egpz56aGVufFwgOwor6aqIPnBpw6FufFwgOwor6YKIPm1pxINvfFwgOwor6IKbPmdhbmd8XCA7CivnjaA+bGnDoW98XCA7CivlloE+ecOzbmd8XCA7Civlk4I+c2jElW58XCA7CivmppQ+bMOhbmd8XCA7Civnu7Y+c2jDsnV8XCA7CivlmYw+Y2VuZ3xcIDsKK+iqij50w6luZ3xcIDsKK+WuuD5jaMOpbnxcIDsKK+S9nj5uw6xuZ3xcIDsKK+mClT55b25nfFwgOwor5L+mPmNow7N1fFwgOwor6biiPnl1YW58XCA7CivmuY4+bWnEg258XCA7CivllrU+bWlhb3xcIDsKK+aMnT56aHVhfFwgOwor6aOaPmJpYW98XCA7CivnkK4+Y8Ozbmd8XCA7Civmsq0+amlhbnxcIDsKK+mehT55xINuZ3xcIDsKK+mVmz55b25nfFwgOwor6ZK/PmRpw6BufFwgOwor5oq7PnNow6hufFwgOwor5rumPmx1w6FufFwgOwor5qW5PnnDrW5nfFwgOwor5ra/PnpodW98XCA7CivmsLA+cWluZ3xcIDsKK+msiD5xdcOhbnxcIDsKK+ePqT5ow6luZ3xcIDsKK+WRpD5sw61uZ3xcIDsKK+Wkrz5oYW5nfFwgOwor6Le5PnhpYW58XCA7CivnnZE+amnEg258XCA7CivmmYE+Y2jDoW98XCA7CivlrJc+c2jDoG58XCA7Civlv50+dGnEg258XCA7Civlook+eW9uZ3xcIDsKK+WHhz5zw7JuZ3xcIDsKK+myoD5nxJVuZ3xcIDsKK+mGrj5qacOgb3xcIDsKK+epsD5yw6FuZ3xcIDsKK+alnT5sacOgbnxcIDsKK+agvj5ow6BuZ3xcIDsKK+aauT54aWFufFwgOwor5rKjPmZlbmd8XCA7CivojI8+bMOzbmd8XCA7CivoiqE+cWnDoG58XCA7Civps48+Z3VhbnxcIDsKK+auhD50acSDbnxcIDsKK+ahgT5ow6luZ3xcIDsKK+e8kj56aHXDrHxcIDsKK+mqoD5wacOgb3xcIDsKK+iPhT5qaWFufFwgOwor6IyUPnnDrW5nfFwgOwor6J28PmLEg25nfFwgOwor54OKPnnDoW5nfFwgOwor57u7PnF1xINufFwgOwor5YqtPnNow6BvfFwgOwor6Ju5PnnFj25nfFwgOwor6LGiPmh1w6BufFwgOwor5L6XPmTDsm5nfFwgOwor6YWpPm3DrW5nfFwgOwor5pK6PmN1YW58XCA7CivnmaM+eGnEg258XCA7CivnnIc+bWnEg298XCA7Civlpq8+emjDs3V8XCA7CivlpZg+esOgbmd8XCA7CivokLE+eHVhbnxcIDsKK+mTiT54dcOgbnxcIDsKK+i5hz5qacSDbnxcIDsKK+aCrT5xaWFufFwgOwor5byBPmJpw6BufFwgOwor6YWuPnTDs25nfFwgOwor6ZKOPnFpYW58XCA7CivpuKk+emjDqG58XCA7CivohZo+ZMOsbmd8XCA7Civog7Q+ZMOybmd8XCA7CivpqqI+Y29uZ3xcIDsKK+WLkD5txJVuZ3xcIDsKK+iohz5ob25nfFwgOwor5L6qPmNow6FpfFwgOwor54ODPmrErW5nfFwgOwor6YWKPmTErW5nfFwgOwor6ZOoPnF1w6FufFwgOwor56CtPmJpYW58XCA7CivpqpM+emh1aXxcIDsKK+iXkz54acSDbnxcIDsKK+mKrj5sdcOhbnxcIDsKK+m8iz55dcOhbnxcIDsKK+e8sT5xacSDbnxcIDsKK+azqz54dcOgbnxcIDsKK+WXtT5wacOgb3xcIDsKK+Wlgj5odcOgbnxcIDsKK+S9pT5xaWFufFwgOwor6IWxPmppw6BufFwgOwor5bSnPnNvbmd8XCA7CivlnJw+eXXDoW58XCA7Civlo4U+eW9uZ3xcIDsKK+WGvD54acSDbnxcIDsKK+eysz5nZW5nfFwgOwor6YO0PmNoZW58XCA7Civpvok+bMWPbmd8XCA7CivnrIo+emjDoG98XCA7CivplJI+bMOhbmd8XCA7Civmmp0+bcOtbmd8XCA7CivmvrY+Y2jDoW58XCA7CivmkKA+c2h1w7J8XCA7CivojK0+amlhb3xcIDsKK+iLlT50acOhb3xcIDsKK+WooD5zaGVufFwgOwor56C3PnNoZW58XCA7Civop6U+Z29uZ3xcIDsKK+aIhj5nw6BuZ3xcIDsKK+eFij5qacSDbnxcIDsKK+adkz5iaWFvfFwgOwor6LCMPmNow6lufFwgOwor55OkPnLDoW5nfFwgOwor54ioPmN1w6BufFwgOwor57y1Pmd1w6BufFwgOwor5riWPnNoxJVufFwgOwor5ZudPmppxINufFwgOwor56ykPnRpw6FvfFwgOwor55erPnhpw6FufFwgOwor6bmRPmNow7pufFwgOwor5qO5PnpodW98XCA7Civoi4s+eGnDoG58XCA7CivlnoU+bMWPbmd8XCA7CivpubM+Z3XDoG58XCA7CivpkqQ+cWnDoW58XCA7CivmqK8+Y8Ozbmd8XCA7Civpqp8+c2jDoG58XCA7CivmjKI+amnEg298XCA7Civmip8+dHXDoW58XCA7Civnh7k+eGnEg258XCA7Civmuas+amnEg298XCA7CivllYE+emhvdXxcIDsKK+WhrD55dcOhbnxcIDsKK+myhz5uacOhbnxcIDsKK+eunT5xacOhbnxcIDsKK+eTtD5sw61uZ3xcIDsKK+ayhj5ow6FuZ3xcIDsKK+aEgD5xacSDb3xcIDsKK+aToj56aHXDs3xcIDsKK+iOtD5sacOhbnxcIDsKK+mToz54acSDbnxcIDsKK+S7nz5xaWFufFwgOwor54qNPmppYW58XCA7CivlqIg+bHXDoW58XCA7CivlpoE+c2h1w7J8XCA7Civnvrw+Y2jDoG58XCA7CivlgKU+a29uZ3xcIDsKK+exvD5saWFufFwgOwor6JyiPm3ElW5nfFwgOwor6KOiPmxpw6FufFwgOwor56umPnPFj25nfFwgOwor57uhPnhpYW98XCA7CivmtLk+aHXDoW58XCA7Civlu5s+Y2jDoW58XCA7CivmkoQ+eWluZ3xcIDsKK+WwpT5sacOgb3xcIDsKK+iwrz5xacOhb3xcIDsKK+mTsD5qacSDb3xcIDsKK+mriz5rdWFufFwgOwor6bKmPnRpw6FvfFwgOwor6IKxPmdvbmd8XCA7Civltp0+ZMOobmd8XCA7Civoioo+cWlhbnxcIDsKK+WBrD56xY9uZ3xcIDsKK+WArD56aHVvfFwgOwor56G8PnDDqW5nfFwgOwor6Z2bPmRpw6BufFwgOwor6ZywPnhpw6BufFwgOwor57CfPmRpw6BufFwgOwor55aUPmRpbmd8XCA7CivnqLk+emjElW58XCA7Civnooc+ZMOsbmd8XCA7CivnhYU+ZHXDoG58XCA7Civml4M+emhhbnxcIDsKK+iCqz56aHVufFwgOwor55SRPnrDqG5nfFwgOwor55GXPnl1w6BufFwgOwor54yDPnhpxINufFwgOwor5ZOZPmt1w6BpfFwgOwor6JOKPnfElW5nfFwgOwor6I2lPnFpw6FufFwgOwor6YWwPnhpYW58XCA7Civnvp8+cWlhbnxcIDsKK+igkz5txJVuZ3xcIDsKK+ijoz5sacOgbnxcIDsKK+avvT5qacOgbnxcIDsKK+aIiz5qaWFufFwgOwor5qm8Pnl1w6FufFwgOwor5qabPnpoZW58XCA7Civnj5k+Z8WPbmd8XCA7Civmuo8+dMOhbmd8XCA7Civpg6I+ecStbmd8XCA7CivosLU+emhhbnxcIDsKK+iLqz5zaGFufFwgOwor5ommPnFpYW58XCA7CivprY0+d8SDbmd8XCA7Civnhbg+YmlhbnxcIDsKK+eErz5jaGFvfFwgOwor6IO8PnBpw6FufFwgOwor54iwPnl1w6FufFwgOwor54qPPnBpYW58XCA7Civmo7A+Y2h1w618XCA7Civnu6A+Z8SVbmd8XCA7CivmtZ4+emh1w7N8XCA7Civmgps+cXVhbnxcIDsKK+eLtz5qdcOgbnxcIDsKK+WzpD5qacOgb3xcIDsKK+WYjD5waWFvfFwgOwor5ZOTPnhpYW98XCA7Civokrk+amlhbnxcIDsKK+WhhD5sw6luZ3xcIDsKK+mEhD5qdcOgbnxcIDsKK+merz5qaWFufFwgOwor6bKiPmxpw6FufFwgOwor6LqcPnp1YW58XCA7CivouYE+cGnDoW58XCA7CivnoLs+bMOzbmd8XCA7CivnoIA+ZMOgbmd8XCA7CivohYg+amluZ3xcIDsKK+iEmD5ndcSDbnxcIDsKK+i+hz5uacSDbnxcIDsKK+akuT5zaMOobnxcIDsKK+eSjj55aW5nfFwgOwor6LCgPmTEg25nfFwgOwor5YqBPnFpYW98XCA7Civonp8+bcOtbmd8XCA7Civot6M+eGnEg258XCA7CivnsYA+emjDsnV8XCA7CivnmZw+ZGnDoG58XCA7CivnoKY+emjDoGl8XCA7Civmnos+ZmFuZ3xcIDsKK+a9iz5sacOgbnxcIDsKK+mlpz54w61uZ3xcIDsKK+aOvj55dcOgbnxcIDsKK+iVuz5ow7JuZ3xcIDsKK+iOvD5jaMO6bnxcIDsKK+iOqD5sw6BuZ3xcIDsKK+iwnT5wacOhbnxcIDsKK+mymz5qacSDb3xcIDsKK+ispj5xw6xuZ3xcIDsKK+iJjz5zaMWPdXxcIDsKK+eslT5qacSDbnxcIDsKK+ibiT5sw61uZ3xcIDsKK+mTqz50acOhb3xcIDsKK+igsj5qdWFufFwgOwor55yEPm1pxINufFwgOwor56O0PmTDqG5nfFwgOwor5aq1PnnDrG5nfFwgOwor6IOXPnpoZW58XCA7Civovbg+emjElW58XCA7CivmooM+dMStbmd8XCA7CivpppU+bsOhbmd8XCA7Civnjb4+aHVhbnxcIDsKK+mtiD54aWFvfFwgOwor6bKuPmzDrW5nfFwgOwor6bu+Pm3DqW5nfFwgOwor55adPnNow6BufFwgOwor5oisPmppxINufFwgOwor6aqdPmJpYW98XCA7CivorIc+amnEg258XCA7CivmvLY+aHXDoG58XCA7CivluJE+dMSDbmd8XCA7Civmj44+eHVhbnxcIDsKK+iSlz5sw6BuZ3xcIDsKK+mFgz5sw61uZ3xcIDsKK+mZiT5qw6xuZ3xcIDsKK+WJoT5zaMOgbnxcIDsKK+mygj5mw6FuZ3xcIDsKK+eynD50acOgb3xcIDsKK+etsj5zaGFvfFwgOwor6J6IPnl1w6FufFwgOwor6aKDPmdhbmd8XCA7CivopIo+YmnEg258XCA7Civpko0+c2hhbnxcIDsKK+eVmz56aMSVbnxcIDsKK+abqT5uxINuZ3xcIDsKK+i+iz53xINuZ3xcIDsKK+a6sT56aGVufFwgOwor5b+tPmJpw6BufFwgOwor5pSuPm7Eg25nfFwgOwor6I2HPnjDrG5nfFwgOwor6IuOPm3DqW5nfFwgOwor6YKhPmZhbmd8XCA7CivosJY+eHVhbnxcIDsKK+mGmz5xdcOhbnxcIDsKK+iAqj5wxINuZ3xcIDsKK+m7pT5xw61uZ3xcIDsKK+mrqz50acOhb3xcIDsKK+mekj5xaWFvfFwgOwor6bOUPmJpw6BvfFwgOwor6LiUPnpodcOzfFwgOwor566cPmtvbmd8XCA7CivnrYw+cXXDoW58XCA7Civon64+c2jDoG58XCA7CivpoqE+Y2jDoG58XCA7CivogY0+bsOtbmd8XCA7CivogLU+dGluZ3xcIDsKK+ijpT5qacSDbnxcIDsKK+egvD50w7NuZ3xcIDsKK+emsz5yw6FuZ3xcIDsKK+inhz56aGFufFwgOwor5qeKPnNodcOyfFwgOwor57yzPmh1w6FufFwgOwor5amnPmrDrG5nfFwgOwor5r2yPnNow6BvfFwgOwor5ruiPnnDrW5nfFwgOwor5rWNPmt1w6BpfFwgOwor5ZW2PmTDrG5nfFwgOwor6JaoPmhvbmd8XCA7CivnnqI+bcOpbmd8XCA7Civok7w+bGnEg298XCA7Civok4E+emhlbnxcIDsKK+iPmD5zb25nfFwgOwor6IyRPm5pxINvfFwgOwor6YKZPm3DoW5nfFwgOwor6aWUPnlvbmd8XCA7Civpsrc+ZGlhb3xcIDsKK+mauT56aHVpfFwgOwor6ImoPm3DqW5nfFwgOwor6ImfPnTDs25nfFwgOwor6IihPmdhbmd8XCA7CivpuYc+eGnDoW58XCA7CivplLY+c29uZ3xcIDsKK+mShz5kw6xuZ3xcIDsKK+ehjj54w61uZ3xcIDsKK+elpz50aWFvfFwgOwor5pWrPmppw6BvfFwgOwor5qWmPnh1w6BufFwgOwor5qS0PmR1w6BufFwgOwor57yvPnplbmd8XCA7CivlrLI+bmnEg298XCA7CivlmY0+amlhb3xcIDsKK+WUqj5mxJVuZ3xcIDsKK+iQkT5odcOhbnxcIDsKK+iKnz5zaGFufFwgOwor6IuMPmPEg25nfFwgOwor5Z+dPm5pw6BufFwgOwor6YSvPnNow6BufFwgOwor6ISUPmx1w6FufFwgOwor5rGGPmN1YW58XCA7CivlhIc+eHVhbnxcIDsKK+WIrT5qxK1uZ3xcIDsKK+mytj5uacOhbnxcIDsKK+myoz5qaWFufFwgOwor6b6APmNow6hufFwgOwor576wPnRhbmd8XCA7CivoiYs+bcSVbmd8XCA7CivnsKY+ZGVuZ3xcIDsKK+igij5sacOhbnxcIDsKK+ietT5waWFvfFwgOwor6J6XPnTDoW5nfFwgOwor6J2+PnLDs25nfFwgOwor6JypPnRpw6FvfFwgOwor6Ju4PnNoYW98XCA7Civomqw+eGnDoG58XCA7CivnmL8+ecStbmd8XCA7CivnmKU+Y2jDoGl8XCA7CivpuKs+ZG9uZ3xcIDsKK+eogj5sw6FuZ3xcIDsKK+mUvj5odcOhbnxcIDsKK+mUqT5qdcOgbnxcIDsKK+ehkD50w7NuZ3xcIDsKK+iCnD5yw7NuZ3xcIDsKK+awoT5kb25nfFwgOwor5qaHPmNow6hufFwgOwor5p61PnhpYW98XCA7Civmnp4+Y29uZ3xcIDsKK+adqj5tacSDb3xcIDsKK+e8rD5jw6luZ3xcIDsKK+W9lj50dcOgbnxcIDsKK+a5lD5qaWFufFwgOwor5riRPm1pxINufFwgOwor5rO3PmzDs25nfFwgOwor5oWKPnFpw6BufFwgOwor5ZyJPmNodcOtfFwgOwor5bCiPndhbmd8XCA7CivomIU+aMOpbmd8XCA7CivokqE+YsOgbmd8XCA7Civoi4Q+YmnDoG58XCA7Civpg5A+a3XDoGl8XCA7Civor7w+c2jDqWl8XCA7Civpq58+Ymlhb3xcIDsKK+mzmT55w7NuZ3xcIDsKK+mzij5iaWFufFwgOwor6bKtPnFpbmd8XCA7CivpvoY+dGnDoW98XCA7Civotrw+amnEg258XCA7CivphqM+dMOhbmd8XCA7CivooYQ+bnVcOsyAfFwgOwor57CWPmR1w6BufFwgOwor566QPmppbmd8XCA7Civom5g+ecOhbmd8XCA7Civomb8+Y2jDoGl8XCA7CivpoqU+ZsSVbmd8XCA7CivnmLM+Y2hvdXxcIDsKK+m5qT5sacOhb3xcIDsKK+efpz5zaMSVbnxcIDsKK+mTnj5kacOgb3xcIDsKK+mSqj5rw6BuZ3xcIDsKK+mSqz5mYW5nfFwgOwor6ZKQPnNow6BufFwgOwor572+Pnplbmd8XCA7CivnlY4+cXXEg258XCA7Civno4k+c8SDbmd8XCA7CivnoZc+cWlhb3xcIDsKK+ehrT5tw6FuZ3xcIDsKK+aBpz5udVw6zIB8XCA7CivnpYY+eGlhbnxcIDsKK+iDgj5zaMOobnxcIDsKK+iDqD5kw7JuZ3xcIDsKK+awmT54aWFufFwgOwor6L6BPnF1w6FufFwgOwor5qqgPnHDrW5nfFwgOwor5qWXPmppw6BufFwgOwor5qSgPnFpw6BufFwgOwor55KBPmNvbmd8XCA7CivnvKM+amlhbnxcIDsKK+e8jz5iacOgbnxcIDsKK+e7lz5ow6huZ3xcIDsKK+mArT5odcOgbnxcIDsKK+aQtD5xaWFufFwgOwor5a6APm1pw6FufFwgOwor6Ze2PmvDoG5nfFwgOwor542NPmrDrG5nfFwgOwor5b68PmppxINvfFwgOwor5ZCyPnNoxJVufFwgOwor6JW5Pnlvbmd8XCA7CivnlI0+bcOpbmd8XCA7Civok6U+ecOsbmd8XCA7Civoib0+amlhb3xcIDsKK+Wfjz5zaGFufFwgOwor5Z6MPmTDsm5nfFwgOwor6YWGPmZlbmd8XCA7CivpmL0+ZGnDoG58XCA7Civor5w+c2hlbnxcIDsKK+S7nT50w7NuZ3xcIDsKK+WArj5sw6huZ3xcIDsKK+S/nD5waW5nfFwgOwor6b6hPmNodcOsfFwgOwor6b6XPmzDrW5nfFwgOwor6b6WPmzFj25nfFwgOwor6b6UPmdvbmd8XCA7CivpvpM+bMOzbmd8XCA7CivpvpI+bMOzbmd8XCA7CivpvpA+cMOhbmd8XCA7Civpvo8+Z29uZ3xcIDsKK+m+jT5sw7NuZ3xcIDsKK+m9uz5kaWFufFwgOwor6b25PmNodW98XCA7CivpvbQ+eGnEg258XCA7CivpvbE+Y2h1w7J8XCA7Civpvao+Y2h1w7J8XCA7CivpvaQ+cXXDoW58XCA7CivpvaI+bMOtbmd8XCA7CivpvaE+bMOtbmd8XCA7CivpvaA+dGnDoW98XCA7CivpvZ4+bmnDoG58XCA7CivpvZs+Y2jDoWl8XCA7CivpvZQ+Y2jDqG58XCA7CivpvZM+Y2jDqG58XCA7CivpvYs+emhhaXxcIDsKK+m9iT5uw6BuZ3xcIDsKK+m9iD5uw7NuZ3xcIDsKK+m9hj53w6huZ3xcIDsKK+m8sT5qaW5nfFwgOwor6bywPm5pw6BufFwgOwor6byuPnTDrW5nfFwgOwor6byoPnTDs25nfFwgOwor6bymPmRpYW98XCA7CivpvJ8+dGVuZ3xcIDsKK+m8nj50YW5nfFwgOwor6bydPnl1YW58XCA7CivpvJg+eXVhbnxcIDsKK+m8lT5kb25nfFwgOwor6byRPmTErW5nfFwgOwor6byMPmNow6FvfFwgOwor6byGPm3DoW5nfFwgOwor6byDPm3ElW5nfFwgOwor6byCPmNow6FvfFwgOwor6bu/Pnl1w6FufFwgOwor6buwPnpoxJVufFwgOwor6buoPmTEg25nfFwgOwor6buePmRpxINufFwgOwor6buaPnFpw6FufFwgOwor6buXPnR1xINufFwgOwor6buMPmjDqW5nfFwgOwor6buJPmjDqW5nfFwgOwor6buHPnRpYW58XCA7Civpuro+bWnDoG58XCA7Civpurc+ZmVuZ3xcIDsKK+m6tT5tacOgbnxcIDsKK+m6sj54acOgbnxcIDsKK+m6qz5tacSDbnxcIDsKK+m6qj5tacSDbnxcIDsKK+m6qD5jaMSDb3xcIDsKK+m6oj5sw61uZ3xcIDsKK+m6oD5qaW5nfFwgOwor6bqWPmppbmd8XCA7Civpuo4+Y2jDqW58XCA7Civpuok+amlhbnxcIDsKK+m6hT5iaWFvfFwgOwor6bqDPmJpYW98XCA7Civpubw+amnEg258XCA7Civpubs+amnEg258XCA7Civpubk+eGnDoW58XCA7Civpubg+amnEg258XCA7Civpubc+bMOtbmd8XCA7CivpubI+bcOpbmd8XCA7Civpua8+emhhbnxcIDsKK+m5rj54dcOhbnxcIDsKK+m5qD5sacOhb3xcIDsKK+m5nz53ZW5nfFwgOwor6bmTPnl1YW58XCA7CivpuZI+Z2VuZ3xcIDsKK+m5kD5xaWFufFwgOwor6bmLPm1pw6FvfFwgOwor6bi8PnpoYW98XCA7CivpuLs+aMOpbmd8XCA7CivpuLA+bMOtbmd8XCA7CivpuK4+eGlhb3xcIDsKK+m4pz5jYW5nfFwgOwor6biePmx1w6FufFwgOwor6bicPmRpxINvfFwgOwor6bibPmd1w6BufFwgOwor6biaPnlpbmd8XCA7CivpuJc+bMOzbmd8XCA7CivpuI8+bcOpbmd8XCA7CivpuI4+eWluZ3xcIDsKK+m4iT55w6FuZ3xcIDsKK+m4hz56aGFufFwgOwor6be8Pnhpw6FufFwgOwor6be7PnR1w6FufFwgOwor6be5Pnlpbmd8XCA7Civpt7Q+eGnDoW58XCA7Civpt7M+eGnDoW58XCA7Civpt68+bGnDoW98XCA7Civpt64+amlhb3xcIDsKK+m3pj5qaWFvfFwgOwor6bekPnF1w6FufFwgOwor6befPnpodcOzfFwgOwor6bebPnLDs25nfFwgOwor6beaPmxpw6FvfFwgOwor6beQPmNow6lufFwgOwor6bePPnRpw6FufFwgOwor6beNPmppYW98XCA7Civpt4Y+dGnDoW58XCA7Civptrw+amlhbnxcIDsKK+m2tj50w6FuZ3xcIDsKK+m2sj53ZW5nfFwgOwor6baxPnh1YW58XCA7CivptrA+eXXDoW58XCA7Civptq8+eWluZ3xcIDsKK+m2rT5mxINuZ3xcIDsKK+m2rD5jYW5nfFwgOwor6banPnlpbmd8XCA7CivptqM+cGlhbnxcIDsKK+m2nj5jaHVufFwgOwor6baTPm1pw6FvfFwgOwor6baKPmdlbmd8XCA7Civptok+Y2jDum58XCA7Civptoc+ZG9uZ3xcIDsKK+m2hD5qaW5nfFwgOwor6baBPmppbmd8XCA7Civptb0+emh1w6x8XCA7Civptbw+a29uZ3xcIDsKK+m1uz56aHVpfFwgOwor6bW3Pnl1YW58XCA7CivptbM+amlhbnxcIDsKK+m1sD5kaWFvfFwgOwor6bWuPnFpYW58XCA7Civptaw+cMOpbmd8XCA7Civptas+ZsOobmd8XCA7Civptac+cMOtbmd8XCA7CivptaY+YsOsbmd8XCA7CivptaI+c2hlbnxcIDsKK+m1mz5qaW5nfFwgOwor6bWRPmp1YW58XCA7CivptYk+bHXDoW58XCA7CivptYM+emhvdXxcIDsKK+m1gT5qaWFvfFwgOwor6bS7PmjDs25nfFwgOwor6bS1PmjDsm5nfFwgOwor6bS0PmjDqW5nfFwgOwor6bStPnpodWl8XCA7CivptKw+eWluZ3xcIDsKK+m0qj5ow6FuZ3xcIDsKK+m0pz5yw7JuZ3xcIDsKK+m0pj55YW5nfFwgOwor6bSePnhpYW98XCA7CivptJs+eXVhbnxcIDsKK+m0mD5iacOgbnxcIDsKK+m0kj5sw61uZ3xcIDsKK+m0jD5mw6huZ3xcIDsKK+m0iz5mYW5nfFwgOwor6bSGPnpow6hufFwgOwor6bSFPmh1YW58XCA7Civps70+amlhbnxcIDsKK+mztj55dWFufFwgOwor6bO0Pm3DrW5nfFwgOwor6bOzPmbDqG5nfFwgOwor6bOvPmbDqG5nfFwgOwor6bOtPmRpYW98XCA7Civps6U+bmnEg298XCA7Civps6M+emhhbnxcIDsKK+mzkj5qaWFufFwgOwor6bORPmbDoW5nfFwgOwor6bOQPnDDoW5nfFwgOwor6bOIPnF1w6FufFwgOwor6bKsPnnFj25nfFwgOwor6bKdPmh1w6BufFwgOwor6bKZPmt1w6BpfFwgOwor6bKXPmppYW98XCA7CivpspY+dMOzbmd8XCA7CivpsoY+cMOtbmd8XCA7Civpsbk+Z3XDoG58XCA7CivpsbU+emhlbnxcIDsKK+mxoz56aGFufFwgOwor6bGgPmt1w6BpfFwgOwor6bGePmd1YW58XCA7CivpsZk+bWnDoW98XCA7CivpsZQ+c2jDoG58XCA7CivpsZM+c2jDoG58XCA7CivpsY4+amnEg298XCA7CivpsYc+a2FuZ3xcIDsKK+mxhT55b25nfFwgOwor6bC+PmJpw6BvfFwgOwor6bC5PmppYW58XCA7CivpsLc+dGnDoW98XCA7CivpsLE+bGnDoW58XCA7CivpsKs+csOzbmd8XCA7CivpsKU+Z3VhbnxcIDsKK+mwoD5ndWFufFwgOwor6bCfPmbDoW5nfFwgOwor6bCcPmppYW58XCA7CivpsJQ+amnEg258XCA7CivpsJE+ecOhbmd8XCA7CivpsI4+amnDoG58XCA7CivpsIo+bGnDoG58XCA7CivpsIY+Y2h1bnxcIDsKK+mwgT5xdcOhbnxcIDsKK+mwgD5odcOgbnxcIDsKK+mvvz5iaWFufFwgOwor6a++PmJpYW58XCA7Civpr7w+em9uZ3xcIDsKK+mvuT54aW5nfFwgOwor6a+1PnNoZW58XCA7Civpr7A+bmnDoW58XCA7Civpr64+em9uZ3xcIDsKK+mvrT5txJVuZ3xcIDsKK+mvqj5sw61uZ3xcIDsKK+mvqT5odcOgbnxcIDsKK+mvqD5qaW5nfFwgOwor6a+fPmRvbmd8XCA7Civpr54+emjFj3V8XCA7Civpr5s+ZGlhb3xcIDsKK+mvmT5jaMO6bnxcIDsKK+mvlj5xaW5nfFwgOwor6a+SPnnFj25nfFwgOwor6a+NPm3DqW5nfFwgOwor6a+IPmNow7N1fFwgOwor6a+HPmh1w6BufFwgOwor6a+FPnTDrW5nfFwgOwor6a+BPmfElW5nfFwgOwor6a65PnNoYW58XCA7Civprrg+bWnEg258XCA7Civprq4+eGlhbnxcIDsKK+muqz5qaWFvfFwgOwor6a6pPmLDrG5nfFwgOwor6a6mPnTDs25nfFwgOwor6a6iPnpow7J1fFwgOwor6a6hPnRpYW98XCA7Civpro8+eGluZ3xcIDsKK+muiT5kaWFvfFwgOwor6a6DPnDDrW5nfFwgOwor6a20PmbDoW5nfFwgOwor6a2rPnNoxJVufFwgOwor6a2nPmjDoW5nfFwgOwor6a2hPmRpw6BvfFwgOwor6a2fPmdvbmd8XCA7CivprZk+emjEg258XCA7CivprZc+Y2jFj3V8XCA7CivprZI+cGlhb3xcIDsKK+mtkD5jaMOzdXxcIDsKK+mstz56b25nfFwgOwor6ay1PnFpw6FufFwgOwor6ayzPmp1w6BufFwgOwor6ayoPmjDsm5nfFwgOwor6aykPnLDoW5nfFwgOwor6ayhPmjFj25nfFwgOwor6aygPmt1w6BpfFwgOwor6ayePm7Ds25nfFwgOwor6aydPnFpYW58XCA7CivprJw+cWlhbnxcIDsKK+msmT5zZW5nfFwgOwor6ayUPnDDqW5nfFwgOwor6aySPnpoxJVufFwgOwor6ayRPmxpw6FufFwgOwor6ayLPmppYW58XCA7CivprIo+c2jDuW58XCA7CivprIk+em9uZ3xcIDsKK+mshj5zb25nfFwgOwor6ayFPnDDqW5nfFwgOwor6au+PnNoYW98XCA7Civpq70+emh1YXxcIDsKK+mrvD5ww6luZ3xcIDsKK+mruD5nb25nfFwgOwor6au2PnLDs25nfFwgOwor6ausPnBlbmd8XCA7Civpq6M+ZsSDbmd8XCA7Civpq5w+cWlhb3xcIDsKK+mrmj5xacOgb3xcIDsKK+mrlj5rdWFufFwgOwor6auSPnphbmd8XCA7Civpq44+bGnDoW98XCA7Civpq4g+cMOhbmd8XCA7Civpq4c+eGlhb3xcIDsKK+mrgz5ixINuZ3xcIDsKK+mqvz5wacOhbnxcIDsKK+mqvj5nxJVuZ3xcIDsKK+mquT5xaWFvfFwgOwor6aqpPmvEg25nfFwgOwor6aqjPmNoxINufFwgOwor6aqUPnpvbmd8XCA7Civpqok+Ymlhb3xcIDsKK+mptT56xINuZ3xcIDsKK+mpqz5iaWFvfFwgOwor6ampPmh1YW58XCA7CivpqaM+dMOpbmd8XCA7CivpqaI+bHVcOsyBfFwgOwor6amhPnDDqW5nfFwgOwor6amaPmppbmd8XCA7CivpqZk+emhhbnxcIDsKK+mplT5qaWFvfFwgOwor6amTPnplbmd8XCA7CivpqZA+ZGnDoG58XCA7CivpqY8+Y2jEg258XCA7CivpqY0+eGlhb3xcIDsKK+mphD5jb25nfFwgOwor6amDPnBpw6BvfFwgOwor6ai4PnNow6BufFwgOwor6ai1Pnl1w6FufFwgOwor6aiwPnTDqW5nfFwgOwor6aivPnDDoW5nfFwgOwor6airPnFpYW58XCA7CivpqKo+amnEg258XCA7CivpqKM+em9uZ3xcIDsKK+mooT5xdcOhbnxcIDsKK+monT5qaWFufFwgOwor6aiaPnFpw6FufFwgOwor6aiZPnBpw6BufFwgOwor6aiYPmNvbmd8XCA7CivpqJc+cGnDoG58XCA7CivpqIw+em9uZ3xcIDsKK+mohj56aG91fFwgOwor6aiFPnpodWl8XCA7CivpqII+eGluZ3xcIDsKK+mnvT54dcOgbnxcIDsKK+mnuT5tw6FuZ3xcIDsKK+mntz5zxY9uZ3xcIDsKK+mnqj5zaGVufFwgOwor6aepPnF1w6FufFwgOwor6aenPmTDsm5nfFwgOwor6aelPnLDs25nfFwgOwor6aeiPnBpw6FufFwgOwor6aeaPnnEg25nfFwgOwor6aeXPnpoZW58XCA7Civpp5Q+esSDbmd8XCA7Civpp44+emjDsnV8XCA7Civpp40+cGVuZ3xcIDsKK+mnjD55dWFufFwgOwor6aeLPnpoYW98XCA7Civpp4M+a3XDoGl8XCA7Civppq4+ZsOpbmd8XCA7Civppqs+eGluZ3xcIDsKK+mmpj54aWFufFwgOwor6aaiPmppYW58XCA7CivppaQ+ZMOsbmd8XCA7CivppaI+bsOhbmd8XCA7CivppaE+enXDoG58XCA7CivppZ4+Y2jDoW58XCA7CivppZs+bcOpbmd8XCA7CivppZg+emhhbnxcIDsKK+mljT5zaMOgbnxcIDsKK+mlhD50w6FuZ3xcIDsKK+mkuT50w6FuZ3xcIDsKK+mkuD5zw7JuZ3xcIDsKK+mksz50w6FuZ3xcIDsKK+mksD5qaWFufFwgOwor6aSqPm51xINufFwgOwor6aSoPmd1xINufFwgOwor6aShPnhpw6BufFwgOwor6aSgPmLErW5nfFwgOwor6aSfPnpodcOsfFwgOwor6aSePmppw6BufFwgOwor6aSKPnnEg25nfFwgOwor6aSHPnTDs25nfFwgOwor6aSFPmLErW5nfFwgOwor6aSDPmppxINvfFwgOwor6aSCPnRpxINufFwgOwor6aO1PnpoxINpfFwgOwor6aOsPmp1w6BufFwgOwor6aOmPnpoYW58XCA7Civpo6M+ZMOsbmd8XCA7Civpo5E+Ymlhb3xcIDsKK+mjkD56aMSDbnxcIDsKK+mjjT5iaWFvfFwgOwor6aOMPmZlbmd8XCA7Civpo4k+bGnDoW98XCA7Civpo4g+YmnEg298XCA7Civpo4c+Ymlhb3xcIDsKK+mjhj5iaWFvfFwgOwor6aOEPnBpYW98XCA7Civpo4M+Ymlhb3xcIDsKK+mjgj5sacOhb3xcIDsKK+miuj55w6FuZ3xcIDsKK+mitT5zaMOgb3xcIDsKK+mitD54dcOgbnxcIDsKK+mirj5iaWFvfFwgOwor6aKtPnpoxINufFwgOwor6aKpPmJpYW98XCA7Civpoqg+ZmVuZ3xcIDsKK+milT55xK1uZ3xcIDsKK+miiz50acSBbnxcIDsKK+mhtD5xdcOhbnxcIDsKK+mhrz54acSDbnxcIDsKK+mhrT5ob25nfFwgOwor6aGrPnpow6BufFwgOwor6aGpPnFpYW58XCA7CivpoaY+cWnDoW98XCA7CivpoaA+cGnDoG98XCA7CivpoZ8+bGnDoW98XCA7CivpoZs+ZGlhbnxcIDsKK+mhmj5kaWFufFwgOwor6aGZPnPEg25nfFwgOwor6aGYPnl1w6BufFwgOwor6aGVPnRpw6FufFwgOwor6aGSPnnDs25nfFwgOwor6aGFPmppYW58XCA7CivpoYE+ZMOsbmd8XCA7CivpoYA+Y2h1w618XCA7CivpoLg+Z8SVbmd8XCA7CivpoLY+Z8SVbmd8XCA7CivpoLQ+ecStbmd8XCA7CivpoLI+dMStbmd8XCA7CivpoKk+cGluZ3xcIDsKK+mgqD5waWFufFwgOwor6aClPnNoxJVufFwgOwor6aCjPnNoxJVufFwgOwor6aCaPmrErW5nfFwgOwor6aCYPmzErW5nfFwgOwor6aCPPmjDoW5nfFwgOwor6aCMPnPDsm5nfFwgOwor6aCGPnNow7lufFwgOwor6aCDPnHErW5nfFwgOwor6aCCPmTErW5nfFwgOwor6Z+8PnDDqW5nfFwgOwor6Z+6Pnlpbmd8XCA7Civpn7g+cMOpbmd8XCA7Civpn7E+eGlhbnxcIDsKK+mfrz54aWFufFwgOwor6Z+SPnFpw6BvfFwgOwor6Z+PPmp1w6BufFwgOwor6Z+JPmppYW58XCA7Civpn4Y+cWlhbnxcIDsKK+mfhT54acSDbnxcIDsKK+mfgj5jaMOgbnxcIDsKK+mfgD5qaWFufFwgOwor6Z69PnFpw6FvfFwgOwor6Z66PnRhbmd8XCA7Civpnqw+amlhbnxcIDsKK+mepD5iYW5nfFwgOwor6Z6ePmLErW5nfFwgOwor6Z6bPmLElW5nfFwgOwor6Z6aPmvDsm5nfFwgOwor6Z6ZPmp1YW58XCA7Civpnpc+dGnDoW98XCA7CivpnpU+c2hhb3xcIDsKK+mekz50aW5nfFwgOwor6Z6PPmfFj25nfFwgOwor6Z6DPmjDs25nfFwgOwor6Z2sPmppYW58XCA7Civpnao+Y2hhaXxcIDsKK+mdpj5tacSDbnxcIDsKK+mdoz5tacOgbnxcIDsKK+mdnT50aWFufFwgOwor6Z2cPmrDrG5nfFwgOwor6Z2aPmrDrG5nfFwgOwor6Z2YPnHDrG5nfFwgOwor6Z2VPnpoZW58XCA7CivpnZQ+dGlhbnxcIDsKK+mdkT5xaW5nfFwgOwor6Z2QPmLDrG5nfFwgOwor6Z2KPmZlbmd8XCA7CivpnYg+bMOtbmd8XCA7CivpnYc+bMOzbmd8XCA7CivpnL8+bcOpbmd8XCA7CivpnLY+cMOhbmd8XCA7CivpnLM+bMOzbmd8XCA7CivpnK8+ZMOobmd8XCA7CivpnKU+bcOobmd8XCA7CivpnJ8+aMOzbmd8XCA7CivpnJ0+bMOtbmd8XCA7CivpnJs+bMOtbmd8XCA7CivpnJk+eWluZ3xcIDsKK+mcmD5kw7JuZ3xcIDsKK+mclD5jaMOydXxcIDsKK+mckT56aGFufFwgOwor6ZyQPndlbmd8XCA7CivpnIw+Y2hvdXxcIDsKK+mcij5sw61uZ3xcIDsKK+mcgz5jaMOpbnxcIDsKK+mbvz56aMOgb3xcIDsKK+mbvT54w61uZ3xcIDsKK+mbvD5kw6BuZ3xcIDsKK+mbuz5kacOgbnxcIDsKK+mbuj5tw6luZ3xcIDsKK+mbsT5ww6FuZ3xcIDsKK+mbnT55b25nfFwgOwor6ZuaPmd1w6BufFwgOwor6ZuUPmNow7N1fFwgOwor6ZuIPmh1w6FufFwgOwor6Zq/PnFpYW98XCA7CivpmrQ+bMWPbmd8XCA7Civpmqo+eGnEg258XCA7CivpmqU+ZMOobmd8XCA7Civpmpo+dMOhbmd8XCA7Civpmb8+c2jEg258XCA7Civpmb4+csOpbmd8XCA7Civpmb0+ecOhbmd8XCA7Civpmbo+eGnEg258XCA7CivpmbM+Y2jDqW58XCA7CivpmaU+eGnDoG58XCA7CivpmaM+emjDqG58XCA7CivpmZ0+c2jEg258XCA7CivpmZw+c2jEg258XCA7CivpmZk+Y2jDum58XCA7CivpmZg+eMOtbmd8XCA7CivpmZc+asOsbmd8XCA7CivpmYM+YsStbmd8XCA7CivpmK0+anXDoG58XCA7CivpmKw+a2VuZ3xcIDsKK+mYmz5odcOhbnxcIDsKK+mXpD5odcOhbnxcIDsKK+mXoz5kw6BuZ3xcIDsKK+mXoT5jaMSDbnxcIDsKK+mXnT5wacOhb3xcIDsKK+mXnD5ndWFufFwgOwor6ZeXPmd1YW58XCA7Civpl5A+dGnDoW58XCA7CivplrM+Y2jEg258XCA7Civplq4+dMOtbmd8XCA7Civplq0+bHVcOsyBfFwgOwor6ZasPmzEg25nfFwgOwor6ZanPmjDsm5nfFwgOwor6ZaiPmd1YW58XCA7Civplp4+YmnDoG58XCA7Civplps+cGVuZ3xcIDsKK+mWmj5qaWFufFwgOwor6ZaTPmppYW58XCA7CivplpI+amnDoG58XCA7CivplpE+eGnDoW58XCA7Civplo4+aMOzbmd8XCA7Civplo0+YmVuZ3xcIDsKK+mWjD5rw6BuZ3xcIDsKK+mWgz5zaMSDbnxcIDsKK+mVvT5sacSDb3xcIDsKK+mVtT5jaMOhbnxcIDsKK+mVrj5odcOhbnxcIDsKK+mVqT5jdcOgbnxcIDsKK+mVqD5jdWFufFwgOwor6ZWfPnh1w6BufFwgOwor6ZWaPmLDqG5nfFwgOwor6ZWVPnLDs25nfFwgOwor6ZWLPnTEg25nfFwgOwor6ZSzPnlpbmd8XCA7CivplJM+cWlhbnxcIDsKK+mTtD50w6BuZ3xcIDsKK+mTpj54aWFufFwgOwor6ZOTPm3DoW5nfFwgOwor6ZOPPnjDrW5nfFwgOwor6ZKYPnjDrW5nfFwgOwor6ZKMPmRpxINvfFwgOwor6ZKCPnTEg25nfFwgOwor6ZG+Pmx1w6FufFwgOwor6ZG9Pnp1YW58XCA7Civpkbk+Y3XDoG58XCA7CivpkbY+Y8Ohbmd8XCA7CivpkbU+Z3XDoG58XCA7CivpkbE+Y2jDoW58XCA7Civpka8+amlhbnxcIDsKK+mRrD5qacOgbnxcIDsKK+mRqD5sw7NuZ3xcIDsKK+mRoz5iaWFvfFwgOwor6ZGiPmx1XDrMgHxcIDsKK+mRoT5jaHXDsnxcIDsKK+mRoD5zaHXDsnxcIDsKK+mRnT5ww6luZ3xcIDsKK+mRmj56dcOgbnxcIDsKK+mRkj5qacOgbnxcIDsKK+mRkT5qacOgbnxcIDsKK+mRjz5uw61uZ3xcIDsKK+mRjT55aW5nfFwgOwor6ZGLPnHDrG5nfFwgOwor6ZGGPnpodcOsfFwgOwor6ZGFPmjDqW5nfFwgOwor6ZGDPmRpw6BvfFwgOwor6ZGBPnpvbmd8XCA7CivpkLY+aHXDoW58XCA7CivpkLI+emh1w7N8XCA7CivpkLE+cWlhbnxcIDsKK+mQsD5xaWFvfFwgOwor6ZCvPnpodcOzfFwgOwor6ZCuPmxpw6FufFwgOwor6ZCrPmp1YW58XCA7CivpkKc+amnEg258XCA7CivpkKU+amlhbnxcIDsKK+mQpD5kxK1uZ3xcIDsKK+mQmz55w6xuZ3xcIDsKK+mQmT5kw6huZ3xcIDsKK+mQlz5qacSDbnxcIDsKK+mQlT5kw6huZ3xcIDsKK+mQkD5sacOhb3xcIDsKK+mQjj5qaWFvfFwgOwor6ZCMPmxpw6BvfFwgOwor6ZCLPnTDoG5nfFwgOwor6ZCKPnnDoW5nfFwgOwor6ZCJPnF1YW58XCA7CivpkIg+cWnDoW98XCA7CivpkIQ+aMOpbmd8XCA7Civpj7A+YsOobmd8XCA7Civpj64+a2FuZ3xcIDsKK+mPqT5qacOgbnxcIDsKK+mPpz5sw7NuZ3xcIDsKK+mPpj5jb25nfFwgOwor6Y+lPmppw6BufFwgOwor6Y+iPmJpYW98XCA7Civpj6E+asOsbmd8XCA7Civpj6A+ZmVuZ3xcIDsKK+mPnz5jaMSDbnxcIDsKK+mPnj55b25nfFwgOwor6Y+cPnRhbmd8XCA7Civpj5c+a2VuZ3xcIDsKK+mPlD5iaWFvfFwgOwor6Y+TPmNvbmd8XCA7Civpj5I+cWlhb3xcIDsKK+mPiD5sacOgbnxcIDsKK+mPhz54dcOgbnxcIDsKK+mPhj5ndcOgbnxcIDsKK+mPhD50dcOhbnxcIDsKK+mOuD5qdWFufFwgOwor6Y6yPnTEg25nfFwgOwor6Y6xPnl1w6FufFwgOwor6Y6vPmzDoW5nfFwgOwor6Y6uPnpow6hufFwgOwor6Y6tPnRpw6FufFwgOwor6Y6qPmppxINufFwgOwor6Y6lPnRpw6FvfFwgOwor6Y6gPmdhbmd8XCA7Civpjp8+c8SDbmd8XCA7Civpjpo+Y2h1w618XCA7CivpjpU+dMOhbmd8XCA7CivpjpQ+csOzbmd8XCA7CivpjpM+d2VuZ3xcIDsKK+mOjD5sacOhbnxcIDsKK+mOij5iw6BuZ3xcIDsKK+mOiD5jaHVvfFwgOwor6Y29PmJpYW58XCA7Civpjbw+emhlbnxcIDsKK+mNuT54dWFufFwgOwor6Y21Pmppw6BufFwgOwor6Y20PmR1YW58XCA7CivpjbM+amnDoG58XCA7CivpjbA+aHXDoW58XCA7Civpja8+Y29uZ3xcIDsKK+mNrD5xaWFvfFwgOwor6Y2rPnFpYW98XCA7Civpjak+dGnEg258XCA7Civpjac+aG9uZ3xcIDsKK+mNoz56aGFvfFwgOwor6Y2fPnhpbmd8XCA7CivpjZ4+a2VuZ3xcIDsKK+mNmz5kdcOgbnxcIDsKK+mNmj55w6FuZ3xcIDsKK+mNmT5ow7JuZ3xcIDsKK+mNlj5jaMSVbnxcIDsKK+mNkD5jb25nfFwgOwor6Y2MPnhpxINufFwgOwor6Y2KPmxpw6BufFwgOwor6Y2BPnhpYW58XCA7CivpjLY+YmnEg298XCA7CivpjLM+bcSVbmd8XCA7CivpjLE+emhlbnxcIDsKK+mMrD5kaWFvfFwgOwor6YyqPnRpxINufFwgOwor6YynPmd1xINufFwgOwor6YyjPnpodcOsfFwgOwor6YyiPnFpw6FufFwgOwor6YygPmTDrG5nfFwgOwor6YyePmNow7pufFwgOwor6YydPmNow7pufFwgOwor6YyYPmNodcOtfFwgOwor6YyQPnpodWl8XCA7CivpjIs+cMOpbmd8XCA7CivpjIg+YsOobmd8XCA7Civpi70+ZGnDoG98XCA7Civpi7w+Z2FuZ3xcIDsKK+mLuz5qacOgbnxcIDsKK+mLuj55dWFufFwgOwor6YupPm3DoW5nfFwgOwor6YulPnrDqG5nfFwgOwor6YugPnNow6hufFwgOwor6YufPnFpYW58XCA7Civpi54+eMOtbmd8XCA7Civpi50+bHVcOsOofFwgOwor6YucPnpodcOzfFwgOwor6YubPmfFj25nfFwgOwor6YuXPnh1YW58XCA7Civpi5M+Y2hhbnxcIDsKK+mLkj5mZW5nfFwgOwor6YuRPmN1YW58XCA7Civpi5A+aMOzbmd8XCA7Civpi4w+ZMOsbmd8XCA7Civpi4s+Y2jDoW58XCA7Civpi4M+bMOhbmd8XCA7Civpi4E+bHVcOsyGfFwgOwor6Yq+PmfFj25nfFwgOwor6Yq6PnrDoG5nfFwgOwor6Yq3PnhpYW98XCA7CivpirU+a2VuZ3xcIDsKK+mKsT5kacOgb3xcIDsKK+mKrT5xacOhbnxcIDsKK+mKnD54acOhbnxcIDsKK+mKmz54aWFufFwgOwor6YqaPmRpw6BvfFwgOwor6YqYPm3DrW5nfFwgOwor6YqTPnF1w6FufFwgOwor6YqSPmppYW58XCA7CivpipE+eGnEg258XCA7Civpio8+c2jDoG58XCA7CivpioU+dMOzbmd8XCA7CivpioI+emhvdXxcIDsKK+mJvD5ixK1uZ3xcIDsKK+mJuD5qacSDb3xcIDsKK+mJtz5ow7NuZ3xcIDsKK+mJtj54w61uZ3xcIDsKK+mJtT50w7NuZ3xcIDsKK+mJrj5zaGVufFwgOwor6YmgPnlhbmd8XCA7CivpiZs+cWlhbnxcIDsKK+mJmT56aMSDaXxcIDsKK+mJlz5xacOhbnxcIDsKK+mJij56aGFvfFwgOwor6YmGPnpoZW58XCA7CivpiL8+ZGnDoG58XCA7CivpiLU+YsOsbmd8XCA7CivpiLQ+bMOtbmd8XCA7CivpiKc+a8Ogbmd8XCA7CivpiJw+aMOzbmd8XCA7CivpiJQ+Y2hhb3xcIDsKK+mIkz5jaMSDb3xcIDsKK+mIkD5xacOhbnxcIDsKK+mIhD5xaWFufFwgOwor6YiDPnjDrW5nfFwgOwor6YiCPmNow6lufFwgOwor6YiBPmZhbmd8XCA7Civph7w+amnDoG58XCA7Civph7o+cWlhbnxcIDsKK+mHuT5udVw6zIZ8XCA7Civph7U+Y2hhaXxcIDsKK+mHrz5tw6FuZ3xcIDsKK+mHrT5nYW5nfFwgOwor6YekPnNoYW58XCA7Civph6M+ZGnDoG98XCA7Civph6A+bHXDoG58XCA7Civph50+emhlbnxcIDsKK+mHmD5kaW5nfFwgOwor6YeXPnpoYW98XCA7Civph5U+bGnEg298XCA7Civph4Y+YmnDoG58XCA7Civph4I+amnDoG98XCA7Civphr0+bMOtbmd8XCA7Civphrs+Y2jDs3V8XCA7CivphrY+amnDoG98XCA7CivphrI+bsOzbmd8XCA7CivphqY+c2jEg258XCA7CivphqU+cGnEg298XCA7Civphp8+ecOybmd8XCA7Civphpw+Y2jFj3V8XCA7CivphpU+Y2jDum58XCA7Civphoo+Y2h1w7J8XCA7CivphoY+emjEg258XCA7Civphac+Y2jDs3V8XCA7CivphZ8+dGlhbnxcIDsKK+mFmT56aGVufFwgOwor6YWOPnpow7J1fFwgOwor6YWEPmh1YW58XCA7CivphYE+Y2jDoW58XCA7CivphL0+Y2jDoW58XCA7CivphLs+bGnEg258XCA7CivphLg+bcOpbmd8XCA7CivphLc+ZmVuZ3xcIDsKK+mEtj5rdcOgaXxcIDsKK+mEqz5jw6luZ3xcIDsKK+mEpz5kw6huZ3xcIDsKK+mEpT5xaWFvfFwgOwor6YShPnFpYW98XCA7CivphJ0+bGnEg298XCA7CivphJs+Y2jDoW98XCA7CivphJg+eW9uZ3xcIDsKK+mEjT5tw61uZ3xcIDsKK+mEjD50w6FuZ3xcIDsKK+mDuz5xaWFvfFwgOwor6YO6Pnlvbmd8XCA7Civpg7E+cMOtbmd8XCA7Civpg6w+cWluZ3xcIDsKK+mDoD5nxJVuZ3xcIDsKK+mDnj5sw6FuZ3xcIDsKK+mDiT54w61uZ3xcIDsKK+mDhj5odcOhbnxcIDsKK+mCtD5ixK1uZ3xcIDsKK+mCqz5iYW5nfFwgOwor6YKnPnl1w6FufFwgOwor6YKlPnNoxJVufFwgOwor6YKfPmvDoG5nfFwgOwor6YKWPmvDoW5nfFwgOwor6YKNPnl1w6FufFwgOwor6YKKPmJpYW58XCA7Civpgok+YmlhbnxcIDsKK+mChj50w6luZ3xcIDsKK+mChT56aGFufFwgOwor6YG8Pmxpw6FvfFwgOwor6YG4Pnh1xINufFwgOwor6YG3PnFpYW58XCA7CivpgaY+Z3XDoG58XCA7CivpgaE+cWnDoG58XCA7CivpgaA+eXXEg258XCA7CivpgYk+emhlbnxcIDsKK+mAvz5kw6BuZ3xcIDsKK+mAuj55dcSDbnxcIDsKK+mAtD5jaHXDsnxcIDsKK+mAsT56aG91fFwgOwor6YCsPmLDqG5nfFwgOwor6YCjPmxpw6FufFwgOwor6YCVPmrDrG5nfFwgOwor6L+1PnTDs25nfFwgOwor6L+sPnfEg25nfFwgOwor6L+nPmNow6lufFwgOwor6L+SPmjDoW5nfFwgOwor6L+NPnpodW58XCA7Civov4s+d8Ogbmd8XCA7Civovr8+Y2hhbnxcIDsKK+i+uj5iaWFufFwgOwor6L64PnLDqW5nfFwgOwor6L61PmNodcOyfFwgOwor6L60PnpoxJVufFwgOwor6L6zPm7Ds25nfFwgOwor6L6yPm7Ds25nfFwgOwor6L6vPmJpw6BufFwgOwor6L6uPmJpw6BufFwgOwor6L6nPmJpw6BufFwgOwor6L6hPmJpw6BufFwgOwor6L6APnpob3V8XCA7CivovZ8+aG9uZ3xcIDsKK+i9nj54acOgbnxcIDsKK+i9mD5odcOgbnxcIDsKK+i9jz56aMOgbnxcIDsKK+i9jj5qacOgb3xcIDsKK+i9iD5jaMOhb3xcIDsKK+i9hT55dcOhbnxcIDsKK+i8vj56aMSDbnxcIDsKK+i8tz5ob25nfFwgOwor6Ly0PmNodW58XCA7CivovLE+eGnDoW58XCA7CivovLA+ecOhbmd8XCA7CivovK8+Y2h1bnxcIDsKK+i8rT5ydcSDbnxcIDsKK+i8qD5ndcSDbnxcIDsKK+i8pz5wacOhbnxcIDsKK+i8pj5uacSDbnxcIDsKK+i8pD5xacOgbnxcIDsKK+i8oz5ww6luZ3xcIDsKK+i8nz5jaHXDsnxcIDsKK+i8nj53xINuZ3xcIDsKK+i8mj56aMOgbnxcIDsKK+i8mD5sw61uZ3xcIDsKK+i8lj5sw6luZ3xcIDsKK+i8lT5xaW5nfFwgOwor6LyRPnHDrG5nfFwgOwor6LyQPmh1xINufFwgOwor6LyOPnNoYW98XCA7CivovIg+emhvdXxcIDsKK+i8hz5xdcOhbnxcIDsKK+i8hj5jaHVufFwgOwor6LyDPmppw6BvfFwgOwor6Lu/PnDDrW5nfFwgOwor6Lu9PnBlbmd8XCA7Civou7g+emjDs3V8XCA7Civou7U+csWPbmd8XCA7Civou6s+emjElW58XCA7Civou6g+bMOtbmd8XCA7Civou6M+aG9uZ3xcIDsKK+i7nz5ydcSDbnxcIDsKK+i7mT5jaMOpbnxcIDsKK+i7lT5zaGFufFwgOwor6LuSPnh1YW58XCA7Civour8+a2FuZ3xcIDsKK+i6tD5sw6FuZ3xcIDsKK+i6sz5nb25nfFwgOwor6LqmPnp1YW58XCA7CivouqU+Y3VhbnxcIDsKK+i6nz5yw6FuZ3xcIDsKK+i6mj54aWFufFwgOwor6LqYPmzDs25nfFwgOwor6LqWPmR1w6BufFwgOwor6LqUPmNow6FufFwgOwor6LqKPmNow7N1fFwgOwor6LqIPnFpw6BvfFwgOwor6LqGPmNodcOyfFwgOwor6Lm7PnFpYW98XCA7Civoubo+cWlhb3xcIDsKK+i5qD5uacSDbnxcIDsKK+i5pT5sacOhbnxcIDsKK+i5pD56b25nfFwgOwor6LmaPnRhbmd8XCA7CivouZg+bGnDoW98XCA7CivouY0+bmnEg258XCA7CivouLw+dMOhbmd8XCA7CivouLo+amnDoG58XCA7CivouLg+Y2jElW58XCA7CivouLc+ZHXDoG58XCA7CivouLQ+ecWPbmd8XCA7CivouLM+Y2jFrW58XCA7CivouKs+cMOobmd8XCA7CivouKE+cXXDoW58XCA7CivouJw+bMOobmd8XCA7CivouJI+Y2h1b3xcIDsKK+i4kD5qacOgbnxcIDsKK+i4jT5xaWFvfFwgOwor6LiLPmppxINvfFwgOwor6LiHPmzDoG5nfFwgOwor6LiDPnhpYW98XCA7CivouIE+asOsbmd8XCA7Civot7A+YsOobmd8XCA7Civot6c+cXXDoW58XCA7Civot4g+bmnEg258XCA7Civotr0+ZsOgbmd8XCA7Civotrs+Y2jElW58XCA7Civotq0+amnDoG98XCA7Civotqw+cWnDoW98XCA7Civotqs+cWnDoW98XCA7CivotqA+Y2jDoG98XCA7Civotp0+amnDoG58XCA7Civotpk+emjDoG98XCA7CivotpI+ZGnDoG98XCA7Civotog+emhhbnxcIDsKK+i2gj5jaMOobnxcIDsKK+i2gD5jaMOpbnxcIDsKK+i1uz54acSDbnxcIDsKK+i1uD5zaMOgbnxcIDsKK+i1rz50w6FuZ3xcIDsKK+i1lz5mw6huZ3xcIDsKK+i1kj56aG91fFwgOwor6LSgPnl1w6FufFwgOwor6LSaPmzDsm5nfFwgOwor6LSZPnh1w6BufFwgOwor6LSTPnphbmd8XCA7CivotI8+ecOtbmd8XCA7CivotI0+c2jDoG58XCA7CivotIg+esOobmd8XCA7CivotIY+Ymlhb3xcIDsKK+i0hT56aHXDrHxcIDsKK+i0gj5jaMSVbnxcIDsKK+izvz5sacOhb3xcIDsKK+iztj5jw6BuZ3xcIDsKK+iztT5mw6huZ3xcIDsKK+izqT5jw7NuZ3xcIDsKK+izqD5jw7NuZ3xcIDsKK+izpD5qacOgbnxcIDsKK+izoj54acOhbnxcIDsKK+izoT5nZW5nfFwgOwor6LOfPnRpxINufFwgOwor6LOdPmNoZW58XCA7Civos5k+emhvdXxcIDsKK+izmD56YW5nfFwgOwor6LORPnpow6hufFwgOwor6LOPPnnDrG5nfFwgOwor6LOOPmppw6BufFwgOwor6LOGPnBpw6FufFwgOwor6LK2PmJpxINufFwgOwor6LK1PnBpxINufFwgOwor6LKrPmd1w6BufFwgOwor6LKlPmjDoW5nfFwgOwor6LKiPmfDsm5nfFwgOwor6LKfPnl1w6FufFwgOwor6LKePnpoZW58XCA7Civosps+aHVhbnxcIDsKK+iykj50dWFufFwgOwor6LKGPmh1w6FufFwgOwor6LG8Pmh1YW58XCA7CivosbU+em9uZ3xcIDsKK+ixsj5odcOhbnxcIDsKK+ixoz5qaWFufFwgOwor6LGcPmppYW58XCA7CivosZA+ZmVuZ3xcIDsKK+ixjz54acOgbnxcIDsKK+ixiz5kZW5nfFwgOwor6LGKPmZlbmd8XCA7CivosYU+bMOzbmd8XCA7CivosL4+aG9uZ3xcIDsKK+iwvD5ow7NuZ3xcIDsKK+iwuT5ow7NuZ3xcIDsKK+iwqz5qacSDbnxcIDsKK+iwnj5xacOgbnxcIDsKK+iwiT5zaMSVbnxcIDsKK+iwgj5zaMSVbnxcIDsKK+ivqj56aG91fFwgOwor6K67PnLDs25nfFwgOwor6K6dPmjDsm5nfFwgOwor6K6cPmTEg25nfFwgOwor6K6ZPmh1YW58XCA7CivorpY+Y2jDqG58XCA7CivorpM+csOgbmd8XCA7CivorpI+Y2jDoW58XCA7CivorpA+Y2jDs3V8XCA7Civoro4+Y2jDs3V8XCA7Civoroo+YmnDoG58XCA7Civoroc+Y2jEg258XCA7CivoroU+c2jElW58XCA7CivoroI+eHXDoG58XCA7Civorb4+amnEg258XCA7Civorbw+amnDoG58XCA7Civorbs+eWluZ3xcIDsKK+ituj5qaWFufFwgOwor6K24Pnpob3V8XCA7CivorbU+emh1w6x8XCA7CivorbQ+cWnEg258XCA7CivorbI+csOgbmd8XCA7CivorbE+c2jDoG58XCA7Civoras+emhhbnxcIDsKK+itpz5sacOhbnxcIDsKK+itpT5qacOgb3xcIDsKK+itoz5xaWFufFwgOwor6K2hPmTEg25nfFwgOwor6K2ePnh1YW58XCA7CivorZk+cWnDoW98XCA7CivorZE+amnEg298XCA7CivorY0+ecOsbmd8XCA7CivorYQ+emVuZ3xcIDsKK+itgj5jaMSDbnxcIDsKK+isvz5jaMOhb3xcIDsKK+istj56aHXDs3xcIDsKK+issD5sacOhbnxcIDsKK+isrT5qacSDbnxcIDsKK+ispT5jw7JuZ3xcIDsKK+ispD5iaWFvfFwgOwor6KyfPnHErW5nfFwgOwor6KycPnl1w6BufFwgOwor6KyZPnFpYW58XCA7CivorJc+YsOgbmd8XCA7CivorJU+cWnDoG58XCA7CivorJM+Y2hlbnxcIDsKK+isjT55w61uZ3xcIDsKK+ishj5zaMOgbnxcIDsKK+ishD50w6luZ3xcIDsKK+irvD54dWFufFwgOwor6Ku7Pmhlbmd8XCA7Civoq7k+Y2jEg298XCA7Civoq7c+ZsOobmd8XCA7Civoq7Y+Y2jDqW58XCA7Civoq7Q+eGnDoW58XCA7Civoq6s+amnDoG58XCA7Civoq6o+dMOtbmd8XCA7Civoq6A+eHVhbnxcIDsKK+irnj5wacSDbnxcIDsKK+irmj5wacOhbnxcIDsKK+irmT5odcOgaXxcIDsKK+irmD5iacSDb3xcIDsKK+irlz5zaMSVbnxcIDsKK+irkz5qacOgbnxcIDsKK+irkT56aHXDs3xcIDsKK+irjD5kxY9uZ3xcIDsKK+iriz5xxK1uZ3xcIDsKK+iriD56aHXDrHxcIDsKK+irhD56aHVufFwgOwor6KuDPmNoZW58XCA7Civoq4I+Y2jEg258XCA7Civoq4E+Y2h1w7J8XCA7Civoqr8+ZGnDoG98XCA7Civoqrg+eHXDoW58XCA7Civoqrc+d8SDbmd8XCA7CivoqrU+eGnDoW98XCA7CivoqrQ+Y8Ozbmd8XCA7CivoqrA+c2jDqWl8XCA7Civoqqw+c2h1b3xcIDsKK+iqqz5zaHXDrHxcIDsKK+iqqj5zaHXDrHxcIDsKK+iqqT5qw6xuZ3xcIDsKK+iqpj5zw7JuZ3xcIDsKK+iqoj54acOgbnxcIDsKK+iqnD5zaHXDoHxcIDsKK+iqmj5xacOgb3xcIDsKK+iqmT5ow6luZ3xcIDsKK+iqlz5jaMOhbnxcIDsKK+iqlD50xK1uZ3xcIDsKK+iqjz5sxINuZ3xcIDsKK+iqgj50acSDb3xcIDsKK+iqgT5ixJVuZ3xcIDsKK+iptj5jaMOzdXxcIDsKK+iptT5zaGVufFwgOwor6KmuPnF1w6FufFwgOwor6KmoPmppYW98XCA7CivoqaA+ecWPbmd8XCA7CivoqZU+cMOtbmd8XCA7CivoqZQ+emjDoG98XCA7CivoqYs+emjDsnV8XCA7CivoqYU+bMOtbmd8XCA7CivoqYM+cXXEg258XCA7CivoqLo+emjElW58XCA7CivoqLc+c2hlbnxcIDsKK+iorj54aWFufFwgOwor6KisPmNoYW98XCA7CivoqKo+ZsSDbmd8XCA7CivoqKY+Y2jDqW58XCA7CivoqKQ+eGnDoW98XCA7CivoqJ8+c8Oybmd8XCA7CivoqJU+c2jDoG58XCA7CivoqIw+aMOzbmd8XCA7CivoqIs+ZGnDoG98XCA7CivoqIY+amnDoG98XCA7CivoqII+ZMOsbmd8XCA7CivoqIE+aGVuZ3xcIDsKK+intT5nb25nfFwgOwor6KeyPnhpbmd8XCA7Civop6o+eGluZ3xcIDsKK+inmD5jaMOgb3xcIDsKK+injT50acSDbnxcIDsKK+ingD5ndWFufFwgOwor6Ka6Pmppw6BvfFwgOwor6Ka5Pmppw6BvfFwgOwor6Ka4Pmppw6BufFwgOwor6Ka1Pmppw6BufFwgOwor6Ka0PmRlbmd8XCA7CivoprM+Z3VhbnxcIDsKK+imsT56aMOgbnxcIDsKK+imrj55w61uZ3xcIDsKK+imrT5tw61uZ3xcIDsKK+impT50acSDbnxcIDsKK+imoj5zaMSDbnxcIDsKK+imnT5sacOhbnxcIDsKK+imnD50acOgb3xcIDsKK+immD56aGFufFwgOwor6KaRPnBpxINufFwgOwor6KaQPmppw6BvfFwgOwor6KaNPmJpw6BufFwgOwor6KaMPmd1YW58XCA7Civopos+amnDoG58XCA7CivopoU+YmnDoG98XCA7CivopoI+ZsSVbmd8XCA7Civopbo+amnEg258XCA7CivopbM+eGlhbnxcIDsKK+ilsT5sw7NuZ3xcIDsKK+ilrz5jaMOobnxcIDsKK+iloD5kYW5nfFwgOwor6KWdPmxpw6BufFwgOwor6KWcPmNoYW58XCA7CivopZs+bsOzbmd8XCA7CivopZg+Y2hhbnxcIDsKK+iliT5qacOgbnxcIDsKK+ilhz5qacSDbnxcIDsKK+ikvj5iacSDb3xcIDsKK+ikuD5sdVw6zIZ8XCA7CivopLM+bGnDoW58XCA7CivopLE+aHXDoWl8XCA7CivopLA+cWlhbnxcIDsKK+ikrj55aW5nfFwgOwor6KStPm5pxINvfFwgOwor6KSsPnPEg25nfFwgOwor6KSkPnl1w6BufFwgOwor6KSjPnLDs25nfFwgOwor6KSiPmh1w6FpfFwgOwor6KSWPnR1w6BufFwgOwor6KSRPnl1w6BufFwgOwor6KSNPmR1YW58XCA7CivopIk+cGlhbnxcIDsKK+ijtz55dWFufFwgOwor6KOvPmNow7N1fFwgOwor6KOsPmzDrW5nfFwgOwor6KOrPnl1w6BufFwgOwor6KOnPmNoYW58XCA7Civoo54+c2h1w6x8XCA7Civoo5c+bGnEg258XCA7Civoo5Y+emjElW58XCA7Civoo5E+c2hlbnxcIDsKK+ijkD5qdWFufFwgOwor6KOKPm5pxINvfFwgOwor6KKoPnhpw6BufFwgOwor6KKXPnpoxJVufFwgOwor6KKRPnNow6BvfFwgOwor6KKKPmzErW5nfFwgOwor6KGgPnpodW58XCA7CivooZg+eGnDoW58XCA7CivooZY+bMOybmd8XCA7CivooZU+dMOybmd8XCA7CivooZI+eHXDoG58XCA7CivooZE+bMOtbmd8XCA7CivooY8+eXXDoG58XCA7CivooYk+aMOhbmd8XCA7CivooLg+cXXDoW58XCA7CivooLM+eWluZ3xcIDsKK+igrz5iw6huZ3xcIDsKK+igrT5mZW5nfFwgOwor6KCsPmzDs25nfFwgOwor6KCqPmzDs25nfFwgOwor6KCoPnhpYW98XCA7CivooJc+emh1w7N8XCA7CivooJI+amnEg258XCA7CivooJE+csOzbmd8XCA7CivooI4+bcSDbmd8XCA7CivooIk+eHVhbnxcIDsKK+ighj5jaMOgaXxcIDsKK+ighT55w61uZ3xcIDsKK+ighD5txJVuZ3xcIDsKK+ifuj5zaMOgbnxcIDsKK+iftz5kYW5nfFwgOwor6J+tPmppYW98XCA7Civon6w+Y2jDoW58XCA7Civon58+bGnDoW98XCA7Civon5w+amnEg298XCA7Civon5s+cMOpbmd8XCA7Civon5o+cMOpbmd8XCA7Civon48+eGlhb3xcIDsKK+ifjD5jb25nfFwgOwor6J+JPmxpw6BvfFwgOwor6J+CPmppYW98XCA7Civonrk+amnDoG58XCA7Civonrg+Y2jDoW58XCA7CivonrY+YsOobmd8XCA7CivonrQ+Y2jDqW58XCA7CivonqU+Y2FuZ3xcIDsKK+ieoz50w6luZ3xcIDsKK+ieoj55w61uZ3xcIDsKK+iejj5yw7NuZ3xcIDsKK+ieij5sacOhbnxcIDsKK+ieiT53ZW5nfFwgOwor6J2/PnnDrW5nfFwgOwor6J2vPnl1w6FufFwgOwor6J2sPnpvbmd8XCA7Civonao+dGFuZ3xcIDsKK+idoT5ydcSDbnxcIDsKK+idnT55dcOhbnxcIDsKK+idlj54dWFufFwgOwor6J2SPm1pw6FufFwgOwor6J2PPnTDrW5nfFwgOwor6J2GPnnEg25nfFwgOwor6J2EPnfEg25nfFwgOwor6J2APmRvbmd8XCA7CivonLg+amluZ3xcIDsKK+ictT5qdcSDbnxcIDsKK+icrz5iw6BuZ3xcIDsKK+icmT5zb25nfFwgOwor6JyUPmRpw6BufFwgOwor6JyOPnl1YW58XCA7CivonIs+bMOhbmd8XCA7CivonIY+eGnEg258XCA7CivonIQ+emjDqG58XCA7CivonIE+eHXDoW58XCA7Civom7U+eGluZ3xcIDsKK+ibrD5nxY9uZ3xcIDsKK+ibpz53xINuZ3xcIDsKK+ibpT5nxY9uZ3xcIDsKK+iboj5ww61uZ3xcIDsKK+ibnT54acOhbnxcIDsKK+iblj5tw6FuZ3xcIDsKK+ibjT55w61uZ3xcIDsKK+ibgz5ixK1uZ3xcIDsKK+ibgT5kaWFvfFwgOwor6Jq/Pnhpw6FufFwgOwor6JqyPnDDrW5nfFwgOwor6JqrPnBpw6FvfFwgOwor6JqiPmjDoW5nfFwgOwor6JqfPnfDoW5nfFwgOwor6JqIPnFpYW58XCA7CivomoQ+YsOobmd8XCA7Civombg+Z8Oybmd8XCA7Civoma0+ZGlhb3xcIDsKK+iZpj56aMOgbnxcIDsKK+iZpT56aMOgbnxcIDsKK+iZoD5qacSDb3xcIDsKK+iZkz54aWFvfFwgOwor6JmKPmx1w6FufFwgOwor6JmIPnhpYW98XCA7CivomYc+cXXEg258XCA7CivomYM+amlhbnxcIDsKK+iYvj5odcOgaXxcIDsKK+iYuT5odcOgaXxcIDsKK+iYtD5mZW5nfFwgOwor6JivPmTDoG5nfFwgOwor6JioPmh1w6FpfFwgOwor6JimPmzDrW5nfFwgOwor6JiiPmzDs25nfFwgOwor6JihPnlpbmd8XCA7CivomJ8+bMWPbmd8XCA7CivomJ4+bGnDoW58XCA7CivomJ0+bGnDoG58XCA7CivomJo+eGnEg258XCA7CivomJg+csOhbmd8XCA7CivomJA+eGlhbnxcIDsKK+iYiT5tw6FuZ3xcIDsKK+iXvT5jaMOobnxcIDsKK+iXvD54dWFufFwgOwor6JeuPnFpw6FvfFwgOwor6JeoPmJpYW98XCA7Civol6c+Ymlhb3xcIDsKK+iXoD54acOgb3xcIDsKK+iXmD5sdVw6zIF8XCA7Civol5Y+eGnDoW58XCA7Civol5E+amnDoG98XCA7Civol4s+ZGnDoG98XCA7Civol4o+YmnEg258XCA7Civol4Y+amnEg258XCA7Civol4I+Y8Oybmd8XCA7Civol4A+ecOtbmd8XCA7Civolr0+emhlbnxcIDsKK+iWvD5jaMOpbnxcIDsKK+iWuz5jw7NuZ3xcIDsKK+iWuD5waWFvfFwgOwor6Ja1PmNow7N1fFwgOwor6Ja0Pm7DqW5nfFwgOwor6JamPmppw6BufFwgOwor6JahPmTErW5nfFwgOwor6JafPmxpxINufFwgOwor6JaaPnTDoW5nfFwgOwor6JaXPnl1w6FufFwgOwor6JaVPmxpw6FufFwgOwor6JaTPnNoZW58XCA7CivolpA+bMOpbmd8XCA7Civolo0+bHXDoG58XCA7Civolb8+eHVhbnxcIDsKK+iVvT5uw7NuZ3xcIDsKK+iVtj5sw61uZ3xcIDsKK+iVsz5qaWFufFwgOwor6JWvPmzDs25nfFwgOwor6JWtPnhpYW98XCA7Civolas+ZMWPbmd8XCA7Civolak+ZMOgbmd8XCA7CivolaM+c2jDuW58XCA7CivolaA+a3XDoGl8XCA7CivolZs+dMOpbmd8XCA7CivolZE+amlhbnxcIDsKK+iVjj5xacOhb3xcIDsKK+iViz5qaWFvfFwgOwor6JWHPmRpxINufFwgOwor6JWGPmNoxINufFwgOwor6JWEPm3DqW5nfFwgOwor6JS5Pmxpw6BufFwgOwor6JS1Pnphbmd8XCA7CivolLM+cWnDoG58XCA7CivolK8+Y2jDqW58XCA7CivolK4+Y8Ohbmd8XCA7CivolKo+amnDoG58XCA7CivolKY+bmnEg298XCA7CivolKU+Y29uZ3xcIDsKK+iUmT54dcOgbnxcIDsKK+iUiD5iaWFvfFwgOwor6JSGPmzDrW5nfFwgOwor6JO0PmNow7pufFwgOwor6JOxPnDDrW5nfFwgOwor6JOvPmNvbmd8XCA7Civok64+bGnDoW58XCA7Civok6o+dG9uZ3xcIDsKK+iTqD50aWFvfFwgOwor6JOnPmRpw6BvfFwgOwor6JOiPmzDoW5nfFwgOwor6JOOPnTDoW5nfFwgOwor6JOIPmzDoW5nfFwgOwor6JK8PmNhbmd8XCA7CivokrY+Y8SDbmd8XCA7CivokrQ+c2h1w7J8XCA7Civokqw+eXVhbnxcIDsKK+iSqD5xacOgbnxcIDsKK+iSpz5kacSDbnxcIDsKK+iSnT55dcOhbnxcIDsKK+iSlj56aGVufFwgOwor6JKVPm3DoW5nfFwgOwor6JKTPmNow7pufFwgOwor6JKHPmNoxINufFwgOwor6JKEPmd1YW58XCA7Civokb4+eXVhbnxcIDsKK+iRvD56b25nfFwgOwor6JG2PnTDrW5nfFwgOwor6JG0PnpoZW58XCA7CivokbI+cXXDoW58XCA7Civoka4+ZHXDoG58XCA7CivokaU+cWnDoW58XCA7CivokaA+c2hlbnxcIDsKK+iRkz5ow7NuZ3xcIDsKK+iRkj5ow7NuZ3xcIDsKK+iRkT5mZW5nfFwgOwor6JGPPmppbmd8XCA7CivokY4+bHVcOsyAfFwgOwor6JGMPmppYW58XCA7CivokYI+bWnEg258XCA7CivokL4+ecOtbmd8XCA7CivokLk+cGlhbnxcIDsKK+iQtz54aWFvfFwgOwor6JC2PmNoxa1ufFwgOwor6JCyPnl1w6FufFwgOwor6JCwPmxpw6BufFwgOwor6JCuPnh1YW58XCA7CivokKA+bcOpbmd8XCA7CivokJQ+dGnDoW98XCA7CivokIg+aHXDoW58XCA7CivokIU+Y2h1bnxcIDsKK+iQgj5jaMWtbnxcIDsKK+iPvj50acOhbnxcIDsKK+iPuj5qaWFufFwgOwor6I+2PmLElW5nfFwgOwor6I+1PnDDqW5nfFwgOwor6I+uPmdlbmd8XCA7Civoj6o+ZMOgbmd8XCA7Civoj6Q+anXEg258XCA7Civoj5o+emjDoG58XCA7Civoj5k+Y2h1w618XCA7Civoj5c+Y2jDs3V8XCA7Civoj4Q+ZG9uZ3xcIDsKK+iPgz5ndWFufFwgOwor6I6+Pm3Eg25nfFwgOwor6I62PmxpxINufFwgOwor6I6sPm1pxINufFwgOwor6I6nPnhpw6BufFwgOwor6I6mPnNoYW98XCA7CivojqM+d8Ohbmd8XCA7Civojps+dMOtbmd8XCA7CivojpY+amluZ3xcIDsKK+iOlT54w6xuZ3xcIDsKK+iOlD5tw6luZ3xcIDsKK+iOkT5mZW5nfFwgOwor6I6QPmNow6lufFwgOwor6I6EPmfElW5nfFwgOwor6I6APmNow6lufFwgOwor6I2uPnpow7J1fFwgOwor6I2tPmjDs25nfFwgOwor6I2TPnBpbmd8XCA7CivojY0+c2hvdXxcIDsKK+iNij5qaW5nfFwgOwor6I2BPmh1w6FufFwgOwor6Iy8PnTDs25nfFwgOwor6Iy7Pm3Eg25nfFwgOwor6IyePmNow6lufFwgOwor6IydPmNoxINpfFwgOwor6IyZPnLDs25nfFwgOwor6IyYPmppw6BufFwgOwor6IuzPmRvbmd8XCA7Civoi7A+aMOzbmd8XCA7Civoi64+eGlhbnxcIDsKK+iLqj5ixK1uZ3xcIDsKK+iLqD5jaGFufFwgOwor6IuaPnnDsm5nfFwgOwor6IuBPmNvbmd8XCA7Civoi4A+aMOhbmd8XCA7Civoir8+aHXDoW58XCA7CivoioY+Y2hhaXxcIDsKK+iKgz5ww6luZ3xcIDsKK+iKgT5qaWFvfFwgOwor6Im8PmTErW5nfFwgOwor6Im1PnDDrW5nfFwgOwor6ImxPmppYW58XCA7Civoiaw+Y2jDoW58XCA7CivoiaY+amnDoG58XCA7CivoiaE+ZGFuZ3xcIDsKK+iJmT5jYW5nfFwgOwor6ImVPmLDoG5nfFwgOwor6ImRPmJpw6BufFwgOwor6ImQPnpvbmd8XCA7CivoiYw+bmnDoG58XCA7CivoiYY+bMOhbmd8XCA7CivoiYI+ZsOpbmd8XCA7CivoiL0+cMOhbmd8XCA7CivoiLw+aMOzbmd8XCA7CivoiLI+bMOtbmd8XCA7CivoiJg+Z3XEg258XCA7CivoiIg+eGluZ3xcIDsKK+iIgz5xacSDb3xcIDsKK+iHvT54acOgbnxcIDsKK+iHtj5qacOgbnxcIDsKK+iHsT5tacOhbnxcIDsKK+iHsD5jaMOydXxcIDsKK+iHqz5qacSDb3xcIDsKK+iHpD5xaWFufFwgOwor6IeiPnphbmd8XCA7Civoh6A+bHXDoW58XCA7Civoh58+esOgbmd8XCA7Civoh5w+emFuZ3xcIDsKK+iHlz5rdWFufFwgOwor6IeVPmJpYW98XCA7Civoh5Q+eGnDoG58XCA7Civoh5M+esOgbmd8XCA7Civoh4k+bGnEg258XCA7Civoh4c+anXEg258XCA7Civoh4E+bGnDoW58XCA7Civohr8+bsOzbmd8XCA7Civohr4+a3XDoGl8XCA7Civohq8+dGVuZ3xcIDsKK+iGrj54aWFvfFwgOwor6IarPmxpw6FvfFwgOwor6IanPnDDqG5nfFwgOwor6IalPmNodW58XCA7CivohqA+amlhb3xcIDsKK+iGnz5sdVw6zIB8XCA7CivohpY+cGFuZ3xcIDsKK+iGkD5iaWFvfFwgOwor6IaLPmxpw6FvfFwgOwor6IaHPnpodcOsfFwgOwor6IaFPnTDoW5nfFwgOwor6IaBPmxpw6FufFwgOwor6IW2PmR1w6BufFwgOwor6IWzPmppxINvfFwgOwor6IWdPnJ1xINufFwgOwor6IWZPnpvbmd8XCA7CivohZY+ZMOybmd8XCA7CivohY8+Y2h1w7J8XCA7CivohY4+c2jDqG58XCA7CivohYE+cGnDoW58XCA7CivohYA+anXDoG58XCA7CivohL8+Ymlhb3xcIDsKK+iEvT56aG91fFwgOwor6ISyPm5pw6BvfFwgOwor6ISnPmp1YW58XCA7CivohKU+cWnEg258XCA7CivohKQ+c2jDqG58XCA7CivohKM+Y2jDum58XCA7CivohKE+dMStbmd8XCA7CivohKA+Y2hhbnxcIDsKK+iEnT5oZW5nfFwgOwor6ISbPmrDrG5nfFwgOwor6ISBPnRpxINvfFwgOwor6IO7PmjDqW5nfFwgOwor6IOuPnDDoW5nfFwgOwor6IOmPmtlbmd8XCA7Civog5M+cMOtbmd8XCA7Civog4s+dGnDoW58XCA7Civogrw+asStbmd8XCA7Civogrs+Y2hlbnxcIDsKK+iCtz5xaWFufFwgOwor6IKoPnDDoG5nfFwgOwor6IKZPnl1YW58XCA7CivogpI+aHXDoW58XCA7Civogog+emjDoG98XCA7CivogoE+emjDoG98XCA7Civogb4+bMOzbmd8XCA7Civogb0+dGluZ3xcIDsKK+iBvD50aW5nfFwgOwor6IG5Pm7DrW5nfFwgOwor6IG0PnRpbmd8XCA7CivogbM+c8WPbmd8XCA7CivogbA+Y29uZ3xcIDsKK+iBrz5sacOhbnxcIDsKK+iBrj5sacOhbnxcIDsKK+iBrD53xJVuZ3xcIDsKK+iBqz5sacOhbnxcIDsKK+iBpj5jb25nfFwgOwor6IGkPnTDrW5nfFwgOwor6IGhPmNvbmd8XCA7CivogaA+cMOtbmd8XCA7CivogZk+amluZ3xcIDsKK+iBhD56aMSVbnxcIDsKK+iAvj5ow7NuZ3xcIDsKK+iAtD5kaW5nfFwgOwor6ICyPmh1w6FpfFwgOwor6ICWPmNow6BvfFwgOwor6ICTPnRpbmd8XCA7CivogI4+cnXEg258XCA7Civnv74+eHVhbnxcIDsKK+e/uT5xacOhb3xcIDsKK+e/tD5sacOhbnxcIDsKK+e/sj5waWFvfFwgOwor57+qPnpvbmd8XCA7Civnv6c+eHVhbnxcIDsKK+e/nT5ow7NuZ3xcIDsKK+e/kD5xacOgb3xcIDsKK+e/gz5ow7NuZ3xcIDsKK+e+tz5sacSDbnxcIDsKK+e+tj5zaGFufFwgOwor5760PnNoYW58XCA7CivnvrE+eXXDoW58XCA7Civnvq4+Z2VuZ3xcIDsKK+e+rD54acOhbnxcIDsKK+e+qD54acOgbnxcIDsKK+e+pj5odcOhbnxcIDsKK+e+oj5yw7NuZ3xcIDsKK+e+oD54acOgbnxcIDsKK+e+mD56YW5nfFwgOwor576VPnnDoG5nfFwgOwor576PPnnDoW5nfFwgOwor576JPmx1w6FufFwgOwor576EPnpow6BvfFwgOwor576CPmp1w6BufFwgOwor572/PnTDs25nfFwgOwor5726PmNoYW98XCA7CivnvaU+anXDoG58XCA7CivnvZM+Z2FuZ3xcIDsKK+e9kj53xINuZ3xcIDsKK+e9jD55aW5nfFwgOwor572LPnfDqG5nfFwgOwor572GPmd1w6BufFwgOwor572DPnlpbmd8XCA7CivnvYE+Z2FuZ3xcIDsKK+e8vj5ww61uZ3xcIDsKK+e8tz5ow7NuZ3xcIDsKK+e8kD5iacOgbnxcIDsKK+e6uz56aMOobnxcIDsKK+e6rj5ow7NuZ3xcIDsKK+e6nj5sacOgbnxcIDsKK+e6nD5qacSDb3xcIDsKK+e6mD56dcSDbnxcIDsKK+e6lj54aWFufFwgOwor57qTPnlpbmd8XCA7CivnupI+Y2jDoW58XCA7Civnuo8+Y2jDoW58XCA7Civnuo4+csOhbmd8XCA7Civnuok+enXEg258XCA7CivnuoQ+cMOpbmd8XCA7Civnub4+cWnEg258XCA7CivnubU+Y2jDoW58XCA7CivnubM+amnEg298XCA7CivnubE+Y29uZ3xcIDsKK+e5sD5xaWFvfFwgOwor57mvPmh1w6FufFwgOwor57mtPmppxINufFwgOwor57msPmh1w6BufFwgOwor57mkPnp1xINufFwgOwor57mfPmNoxINufFwgOwor57mdPmppw6BufFwgOwor57mbPmNoYW98XCA7CivnuZo+bGnDoW98XCA7CivnuZU+c2jDoG58XCA7CivnuZI+emVuZ3xcIDsKK+e5kT5jw6luZ3xcIDsKK+e5jz54dcOgbnxcIDsKK+e5hj5tacOgb3xcIDsKK+e5gz5iZW5nfFwgOwor57mCPmLElW5nfFwgOwor57i/PnNoYW58XCA7CivnuL0+esWPbmd8XCA7CivnuLw+eHXDoG58XCA7CivnuLo+bGnDoW58XCA7CivnuLk+cGnEg298XCA7CivnuLc+bHVcOsyGfFwgOwor57i0PnFpw6BufFwgOwor57ixPnpvbmd8XCA7CivnuLA+Y8Ozbmd8XCA7CivnuKs+ZsOpbmd8XCA7CivnuKc+ZsOobmd8XCA7CivnuKY+esOybmd8XCA7CivnuKU+emjElW58XCA7CivnuKQ+Y8Ozbmd8XCA7CivnuKM+eGnDoG58XCA7CivnuKI+dMOpbmd8XCA7CivnuJ0+emjElW58XCA7CivnuJk+csOzbmd8XCA7CivnuJg+Y2hlbnxcIDsKK+e4kz5xdcSDbnxcIDsKK+e4kT5qaWFufFwgOwor57iQPnpow7J1fFwgOwor57iNPmJhbmd8XCA7CivnuIs+emh1w6x8XCA7CivnuIg+ecOtbmd8XCA7CivnuIY+Z2VuZ3xcIDsKK+e4gj56xY9uZ3xcIDsKK+e4gT55dcOhbnxcIDsKK+e3vj5jaMOhbnxcIDsKK+e3tj5iacOgbnxcIDsKK+e3tT56b25nfFwgOwor57e0Pmxpw6BufFwgOwor57eyPm1pxINvfFwgOwor57esPm1pxINufFwgOwor57erPmNvbmd8XCA7Civnt6o+Z2VuZ3xcIDsKK+e3qT5odcSDbnxcIDsKK+e3qD5iaWFufFwgOwor57ekPmJpxINufFwgOwor57ejPnl1w6FufFwgOwor57eiPm1pw6FvfFwgOwor57eePmR1w6BufFwgOwor57ecPm1pw6FufFwgOwor57ebPnJ1xINufFwgOwor57eaPnhpw6BufFwgOwor57eYPmppYW58XCA7Civnt5M+eWluZ3xcIDsKK+e3jz56xY9uZ3xcIDsKK+e3iD54w6xuZ3xcIDsKK+e2vz5tacOhbnxcIDsKK+e2vj5sw61uZ3xcIDsKK+e2vT5jaHXDsnxcIDsKK+e2uz56aMOgbnxcIDsKK+e2tD5jaHXDsnxcIDsKK+e2sz5iZW5nfFwgOwor57ayPnfEg25nfFwgOwor57axPmdhbmd8XCA7Civntqw+c2jDsnV8XCA7Civntqs+eGnDoG58XCA7Civntqo+cWnDoG58XCA7Civntqc+emjFrW58XCA7CivntqQ+c2jDoG98XCA7CivntqM+cXXEg258XCA7CivntqI+Y2jDs3V8XCA7CivntqE+ZGnDoG98XCA7CivntqA+bHVcOsyAfFwgOwor57adPmNoZW58XCA7Civntpw+em9uZ3xcIDsKK+e2mD5mw6luZ3xcIDsKK+e2kz5qaW5nfFwgOwor57aOPnRpbmd8XCA7Civntos+aMOzbmd8XCA7Civntoo+dMOtbmd8XCA7CivntoY+Z8SVbmd8XCA7CivntoQ+aHXEg258XCA7CivntoM+eGlhb3xcIDsKK+e2gj50xY9uZ3xcIDsKK+e2gT5ixINuZ3xcIDsKK+e1vD56aMSVbnxcIDsKK+e1uz5tacSDbnxcIDsKK+e1uT5qdcOgbnxcIDsKK+e1uD5qacSDbnxcIDsKK+e1sT50xY9uZ3xcIDsKK+e1rT5xdcOgbnxcIDsKK+e1qT50acOgb3xcIDsKK+e1qD5yw7NuZ3xcIDsKK+e1pz5qdcOgbnxcIDsKK+e1oz5iZW5nfFwgOwor57WiPnh1w6BufFwgOwor57WePmppxINvfFwgOwor57WdPmppw6BvfFwgOwor57WaPmdlbmd8XCA7CivntZk+Z2VuZ3xcIDsKK+e1kj5jaMOzdXxcIDsKK+e1kT5nw6huZ3xcIDsKK+e1jj5ow6FuZ3xcIDsKK+e1jD5qaW5nfFwgOwor57WDPnhpw6FufFwgOwor57S+PnpoxJVufFwgOwor57S7Pnlhbmd8XCA7CivntLk+c2jDoG98XCA7CivntLc+bMOtbmd8XCA7CivntLM+c2hlbnxcIDsKK+e0rT5ow7NuZ3xcIDsKK+e0rD5jaMOzdXxcIDsKK+e0oT5mxINuZ3xcIDsKK+e0mD5ow7NuZ3xcIDsKK+e0lD5jaMO6bnxcIDsKK+e0hT5ow7NuZ3xcIDsKK+e0gj56aMOydXxcIDsKK+ezvD5nb25nfFwgOwor57O2PnRpw6BvfFwgOwor57OwPnR1w6FufFwgOwor57OuPnhpw6BufFwgOwor57OtPnrDsm5nfFwgOwor57OrPmh1w6FufFwgOwor57OpPmt1w6BpfFwgOwor57ObPnTDoW5nfFwgOwor57OLPmppw6BufFwgOwor57OJPnrDsm5nfFwgOwor57OEPmJpYW58XCA7Civns4M+dMOhbmd8XCA7Civnsq8+eGnDoG58XCA7CivnsqE+dMOzbmd8XCA7CivnsqA+aMOzbmd8XCA7Civnsoc+a2FuZ3xcIDsKK+eygT5xaWFufFwgOwor57G5Pm51XDrMhnxcIDsKK+exuD5zaGVufFwgOwor57G2PnNoZW58XCA7CivnsbE+emh1w7N8XCA7Civnsa8+ecOtbmd8XCA7Civnsas+enXEg258XCA7Civnsao+ZHXDoG58XCA7Civnsak+YmlhbnxcIDsKK+exqD5sacOhbnxcIDsKK+expD5xaWFufFwgOwor57GgPmzDs25nfFwgOwor57GdPnnDrW5nfFwgOwor57GbPmppYW58XCA7CivnsZg+dMOpbmd8XCA7CivnsZc+emh1w7N8XCA7CivnsZU+bMWPbmd8XCA7CivnsZA+dMOpbmd8XCA7CivnsYw+Y2jDs3V8XCA7CivnsYg+emhlbnxcIDsKK+ewvj5sacOhbnxcIDsKK+ewvT5xaWFufFwgOwor57C5PmRhbmd8XCA7CivnsKs+eGlhb3xcIDsKK+ewpT5qaWFvfFwgOwor57ChPmppxINufFwgOwor57CdPmxpw6FvfFwgOwor57CcPmTDoG5nfFwgOwor57CYPnhpYW98XCA7CivnsJI+Y3XDoG58XCA7CivnsJA+bmnEg258XCA7CivnsI4+eGnEg298XCA7CivnsIk+Y2jDsnV8XCA7CivnsIg+cMOtbmd8XCA7CivnsIU+Y2jEg258XCA7CivnsIE+Y2h1w7J8XCA7Civnr7s+cGnDoG98XCA7Civnr7U+Y29uZ3xcIDsKK+evrz5qaWFufFwgOwor56+tPmzDs25nfFwgOwor56+pPnNoYWl8XCA7Civnr6c+emh1w7N8XCA7Civnr6M+cMOhbmd8XCA7Civnr6I+Z29uZ3xcIDsKK+evoD54acSDb3xcIDsKK+evnz5xacOgbnxcIDsKK+evmD5jaG91fFwgOwor56+WPnTDoW5nfFwgOwor56+PPnFpw6BufFwgOwor56+OPm1pxINvfFwgOwor56+KPmjDs25nfFwgOwor56+IPmZlbmd8XCA7Civnr4U+Y2h1w618XCA7Civnr4I+eGluZ3xcIDsKK+euvj5zaHXDsnxcIDsKK+euvT5kxY9uZ3xcIDsKK+euuj5jaMWtbnxcIDsKK+euuT5zaHXDsnxcIDsKK+eusz5ww61uZ3xcIDsKK+eusj54acSDbnxcIDsKK+eurz5iaWFufFwgOwor566uPnh1YW58XCA7CivnrqI+eXVhbnxcIDsKK+euoD5jaHXDrXxcIDsKK+eunj5xdWFufFwgOwor566MPnpow6BvfFwgOwor566LPmppYW58XCA7Civnrok+Z3XEg2l8XCA7Civnrb8+eGnEg298XCA7Civnrbs+Z8Ogbmd8XCA7CivnrbM+dMOtbmd8XCA7Civnra0+c3XDoG58XCA7Civnrak+dMWPbmd8XCA7Civnrac+amnEg258XCA7CivnraY+Z3XEg258XCA7CivnraQ+bMOhbmd8XCA7CivnraE+amnDoG58XCA7CivnrZw+ZGFuZ3xcIDsKK+etlT5ow6FuZ3xcIDsKK+etij5qacSDb3xcIDsKK+ethT54acSDbnxcIDsKK+esvj5iaWFufFwgOwor56ytPmzDrW5nfFwgOwor56yYPnNoYW58XCA7CivnrJc+ZG9uZ3xcIDsKK+eskD5nYW5nfFwgOwor56yOPnl1w6FufFwgOwor56yNPnpodcOsfFwgOwor56yJPnpoxJVufFwgOwor56yHPnN1w6BufFwgOwor56yFPnhpw6FvfFwgOwor56yAPm3DoW5nfFwgOwor56u8PnDDqW5nfFwgOwor56u4PmrDrG5nfFwgOwor56u2PmrDrG5nfFwgOwor56u1Pmh1YWl8XCA7Civnq7M+ZGVuZ3xcIDsKK+ersj5jw6luZ3xcIDsKK+ersD5zaMOhb3xcIDsKK+errj5ww61uZ3xcIDsKK+erqz5qw6xuZ3xcIDsKK+erqD5kacOgb3xcIDsKK+erpz5qw6xuZ3xcIDsKK+erpD5ow7NuZ3xcIDsKK+ernT5iw6xuZ3xcIDsKK+ernD5sw7NuZ3xcIDsKK+ermz5sw61uZ3xcIDsKK+ermj5iw6BuZ3xcIDsKK+erlz5tacOgb3xcIDsKK+erlD5nb25nfFwgOwor56uTPnFpYW58XCA7Civnq5E+aMOzbmd8XCA7Civnq48+cWlhbnxcIDsKK+eriT5sxY9uZ3xcIDsKK+erhT5xacOgb3xcIDsKK+erhD5jdcOgbnxcIDsKK+ergj5wacOhb3xcIDsKK+eqvj5rdcSDbnxcIDsKK+eqvD56aGFvfFwgOwor56q1PmRpw6BvfFwgOwor56q0PnRpw6FufFwgOwor56qyPmNow6FvfFwgOwor56qxPnRpw6BvfFwgOwor56qkPmd1YW58XCA7CivnqqE+emh1w6x8XCA7Civnqpk+eGlhb3xcIDsKK+eqjj5kacOgb3xcIDsKK+eqjD5qacOgb3xcIDsKK+eqiT5ixK1uZ3xcIDsKK+eqhj5iacSDbnxcIDsKK+eqgD56aHVufFwgOwor56m9PmrErW5nfFwgOwor56muPmJpYW98XCA7Civnqaw+Z8WPbmd8XCA7CivnqaM+csOhbmd8XCA7CivnqaA+bsOzbmd8XCA7CivnqZw+dMOzbmd8XCA7CivnqZs+emh1b3xcIDsKK+epmj5qaWFvfFwgOwor56mYPnhpYW98XCA7CivnqY4+ecStbmd8XCA7CivnqYc+c2hhbnxcIDsKK+ephT5rYW5nfFwgOwor56i4PmJpYW58XCA7CivnqLQ+bGnDoW58XCA7CivnqLE+Y2jDqG58XCA7CivnqK8+Y2jDqG58XCA7CivnqKg+YmlhbnxcIDsKK+eonz5ixK1uZ3xcIDsKK+eonD5sw6luZ3xcIDsKK+eolj5iw6BuZ3xcIDsKK+eolT56aMO5bnxcIDsKK+eojz5sw6huZ3xcIDsKK+eoiT5nZW5nfFwgOwor56iGPmppbmd8XCA7CivnqIU+c2h1w6x8XCA7CivnqIQ+dHXDoG58XCA7Civnp74+bsOzbmd8XCA7Civnp6U+bmnDoW58XCA7Civnp6I+bMOtbmd8XCA7Civnp5Q+Z2VuZ3xcIDsKK+enij5uacOhbnxcIDsKK+eniD54aWFufFwgOwor56avPm7Ds25nfFwgOwor56aqPmNow6FufFwgOwor56apPnNow6BufFwgOwor56akPnh1YW58XCA7Civnpp8+dMOhbmd8XCA7Civnppw+ecWPbmd8XCA7Civnpps+emhlbnxcIDsKK+emmj56aHXDs3xcIDsKK+emkz55w6FuZ3xcIDsKK+emkj54acSDbnxcIDsKK+emkD55dcOgbnxcIDsKK+emjj56aGVufFwgOwor56aIPmNoxINvfFwgOwor56aCPmNow6FufFwgOwor56W+PmzDrW5nfFwgOwor56W8Pmd1w6BufFwgOwor56WzPmNoxJVufFwgOwor56WxPnNodcOsfFwgOwor56WpPnpow6BpfFwgOwor56WhPmNow6FpfFwgOwor56WYPnN1w6BufFwgOwor56WSPnRpw6FvfFwgOwor56WKPmJlbmd8XCA7CivnpL0+csOpbmd8XCA7CivnpLY+Z3XDoG58XCA7CivnpLI+bMOzbmd8XCA7CivnpLE+bMOzbmd8XCA7CivnpK8+eWluZ3xcIDsKK+ekpT54acOhbnxcIDsKK+eknj5tw6luZ3xcIDsKK+eknT5ydcSDbnxcIDsKK+ekmz5qaWFufFwgOwor56SRPmTDoG5nfFwgOwor56SLPnpow6FpfFwgOwor56SIPnpodcOsfFwgOwor56SGPnhpxINufFwgOwor56SEPnFpw6FvfFwgOwor56O9PnFpYW98XCA7Civno7k+ZGnDoG58XCA7Civno7g+ZMOsbmd8XCA7Civno7U+amnDoG58XCA7Civno7M+emVuZ3xcIDsKK+ejsD5zaMOgbnxcIDsKK+ejrT5jaHXDsnxcIDsKK+ejqz56b25nfFwgOwor56OmPmJpYW98XCA7Civno54+cGVuZ3xcIDsKK+ejmz5jaMOhbnxcIDsKK+ejmD5xw6xuZ3xcIDsKK+ejjD56aGVufFwgOwor56OEPnTDoW5nfFwgOwor56K/PnBhbmd8XCA7Civnor0+Z29uZ3xcIDsKK+eiuT54dcOgbnxcIDsKK+eiuD5mZW5nfFwgOwor56KtPmTDoG5nfFwgOwor56KrPmR1w6BufFwgOwor56KqPnpoZW58XCA7Civnoqk+c2h1w7J8XCA7CivnoqU+YmnEg258XCA7CivnoqA+ZMOsbmd8XCA7Civnop0+cnXEg258XCA7Civnopk+Z2FuZ3xcIDsKK+eikD5sw61uZ3xcIDsKK+eiij5qaWFufFwgOwor56KDPnHDrG5nfFwgOwor56KCPnrDsm5nfFwgOwor56KAPmPDqW5nfFwgOwor56G/Pmtvbmd8XCA7Civnob4+emh1w6x8XCA7Civnobs+a2VuZ3xcIDsKK+ehuj56aHXDs3xcIDsKK+ehuT5zb25nfFwgOwor56G2PmNoxJVufFwgOwor56GnPmnFj25nfFwgOwor56GmPmzDsm5nfFwgOwor56GlPm3Eg25nfFwgOwor56GjPnhpYW98XCA7CivnoaE+aG9uZ3xcIDsKK+ehoD5sxINuZ3xcIDsKK+ehnz5jaMOgbnxcIDsKK+ehnj5sw6FuZ3xcIDsKK+ehnD5rZW5nfFwgOwor56GaPnFpw6FvfFwgOwor56GUPmjDs25nfFwgOwor56GRPnBlbmd8XCA7CivnoY8+ZMWPbmd8XCA7CivnoYI+cXXDoW58XCA7CivnoYE+a2VuZ3xcIDsKK+egrz5waW5nfFwgOwor56CcPmZlbmd8XCA7CivnoIo+a2FuZ3xcIDsKK+eftD5kaWFvfFwgOwor55+wPnplbmd8XCA7Civnn68+amnEg298XCA7Civnn6o+emhvdXxcIDsKK+efqD55xK1uZ3xcIDsKK+efpD5zaMSVbnxcIDsKK+efnz5zaHXDsnxcIDsKK+efmD50xINuZ3xcIDsKK+eflD5ndcOgbnxcIDsKK+efkz5sw7NuZ3xcIDsKK+efkj5tw6luZ3xcIDsKK+efjz5tacOhbnxcIDsKK+efjj54dWFufFwgOwor55+KPm3DoW5nfFwgOwor55+IPm1pw6FufFwgOwor55+HPm1lbmd8XCA7Civnn4M+bsStbmd8XCA7Civnn4E+Y2jFj3V8XCA7Civnnr4+emjDoG98XCA7Civnnrw+amnEg258XCA7Civnnrc+amnDoG58XCA7Civnnq8+eGnDoW58XCA7Civnnq0+bGnEg298XCA7Civnnqs+c2jElW58XCA7CivnnqY+bGnDoG98XCA7Civnnps+Y29uZ3xcIDsKK+eemj5zaMO5bnxcIDsKK+eelz5kaWFvfFwgOwor556LPmNoZW58XCA7Civnnoo+ZMOgbmd8XCA7Civnnog+d8SVbmd8XCA7Civnnbs+eHVhbnxcIDsKK+edtz5qaWFufFwgOwor5522PmNoxa1ufFwgOwor552tPnpoxY91fFwgOwor552gPmp1w6BufFwgOwor552WPmzDqG5nfFwgOwor552TPnRpxINufFwgOwor552SPnNoxINufFwgOwor552NPnhpw6BufFwgOwor552KPmp1w6BufFwgOwor552GPmh1xINufFwgOwor552EPnFpw6FvfFwgOwor55y7PnnDoW5nfFwgOwor55y5Pnpow6hufFwgOwor55y0Pnh1w6BufFwgOwor55yzPm3DrW5nfFwgOwor55yuPmTDsm5nfFwgOwor55ysPmzDs25nfFwgOwor55yqPmLErW5nfFwgOwor55ynPmNoxINvfFwgOwor55yiPnl1YW58XCA7CivnnJ4+emhlbnxcIDsKK+ecnT5tacSDbnxcIDsKK+ecmD5zaMOobnxcIDsKK+eclT56aMSVbnxcIDsKK+eckj5zaMOobnxcIDsKK+ecjz55YW5nfFwgOwor55yMPmTDqG5nfFwgOwor55yGPmbEg25nfFwgOwor55yCPm1pw6BvfFwgOwor55yAPm3DrW5nfFwgOwor55u9PmZlbmd8XCA7Civnm7c+dGnDoW58XCA7Civnm7Y+cnXEg258XCA7Civnm7M+bcOhbmd8XCA7Civnm6o+ZMOgbmd8XCA7Civnm6k+emhvdXxcIDsKK+eboz5qaWFufFwgOwor55uiPmppw6BufFwgOwor55uePnpoxINufFwgOwor55uEPnpoYW98XCA7Civnm4E+ecOtbmd8XCA7Civnm4A+ZGnDoG98XCA7Civnmr0+emjEg258XCA7Civnmrs+bcStbmd8XCA7Civnmro+emjDsnV8XCA7Civnmq0+amnDoG98XCA7Civnmqs+cGnEg298XCA7Civnmqg+eGluZ3xcIDsKK+eapj5qacSDb3xcIDsKK+eaoj54acSDb3xcIDsKK+eamD5xacOgbnxcIDsKK+ealz5jaMOzdXxcIDsKK+eajz5wxJVuZ3xcIDsKK+eaij5sw61uZ3xcIDsKK+eZtT5sdcOhbnxcIDsKK+eZtD5sw7zDoW58XCA7CivnmbI+ZGlhbnxcIDsKK+eZsD55b25nfFwgOwor55mtPnnErW5nfFwgOwor55msPnh1xINufFwgOwor55miPnnEg25nfFwgOwor55mVPnlvbmd8XCA7CivnmZE+bsOzbmd8XCA7CivnmZA+Z3XDoGl8XCA7CivnmY8+Z3VhbnxcIDsKK+eZjj54acOhbnxcIDsKK+eZhz54acOhbnxcIDsKK+eZhD5xacOhb3xcIDsKK+eZgz5sw7NuZ3xcIDsKK+eZgj5sacOhb3xcIDsKK+eYuT5kacOgb3xcIDsKK+eYtT56aMOgaXxcIDsKK+eYsj56w7JuZ3xcIDsKK+eYrj5zaGVufFwgOwor55itPmJpYW98XCA7CivnmKg+ZGlhbnxcIDsKK+eYpz5udVw6w6h8XCA7CivnmJ0+Z3VhbnxcIDsKK+eYkz5odcOgbnxcIDsKK+eYjj5zaMOobnxcIDsKK+eYjT55w6FuZ3xcIDsKK+eYiz5mZW5nfFwgOwor55iGPnNow6hufFwgOwor55e2PmRpxINufFwgOwor55evPmd1xINufFwgOwor55etPnDDqW5nfFwgOwor55epPnNow7J1fFwgOwor55egPnN1YW58XCA7Civnl58+eGlhb3xcIDsKK+eXnT5tw6FuZ3xcIDsKK+eXmj54aWFvfFwgOwor55eZPmrDrG5nfFwgOwor55eMPnRvbmd8XCA7Civnl4M+eGnDoW58XCA7Civnl4E+ZGnDoG58XCA7Civnlq0+esOybmd8XCA7CivnlqI+Y2jDqG58XCA7Civnlps+emjFj3V8XCA7Civnlpg+Z2FuZ3xcIDsKK+eWhz5jaMOzdXxcIDsKK+eWgz50dcSDbnxcIDsKK+eVvT50dcSDbnxcIDsKK+eVtz5jaHXDsnxcIDsKK+eVtj5kYW5nfFwgOwor55WzPmTDoG5nfFwgOwor55WRPnRpw6FufFwgOwor55WLPnRpw6FufFwgOwor55WKPmdlbmd8XCA7CivnlL8+bcOpbmd8XCA7CivnlL0+cXXEg258XCA7CivnlLw+dMStbmd8XCA7CivnlLk+cGluZ3xcIDsKK+eUrz5uw61uZ3xcIDsKK+eUrj5mw6huZ3xcIDsKK+eUoz5jaMSDbnxcIDsKK+eUoj5jaMSDbnxcIDsKK+eUoT5zaGVufFwgOwor55SgPnHDrW5nfFwgOwor55SWPnlpbmd8XCA7CivnlJU+d8Oobmd8XCA7CivnlIk+eGnDoW58XCA7CivnlIc+eWluZ3xcIDsKK+eUgz56aMOydXxcIDsKK+eUgj5iaWFufFwgOwor55SBPnDDrW5nfFwgOwor55SAPnpodcOsfFwgOwor55O+Pm3ElW5nfFwgOwor55O9PmTDoG5nfFwgOwor55O5Pmp1w6BufFwgOwor55OsPmbEg25nfFwgOwor55OpPnFpYW58XCA7Civnk6g+aMOzbmd8XCA7Civnk5s+aHXDoW58XCA7Civnk5g+Z3XDoG58XCA7Civnk5Q+eWluZ3xcIDsKK+eTjz5sw7NuZ3xcIDsKK+eTgD5ydcSDbnxcIDsKK+eSvz54dcOhbnxcIDsKK+eSuT5zaMOydXxcIDsKK+eSsz50acOhbnxcIDsKK+eSsD5odcOhbnxcIDsKK+eSrD5qacSDb3xcIDsKK+eSqz5kYW5nfFwgOwor55KlPmrErW5nfFwgOwor55KiPmh1w6BufFwgOwor55KfPmrErW5nfFwgOwor55KZPmxpw6FvfFwgOwor55KXPmTDoG5nfFwgOwor55KUPnplbmd8XCA7CivnkpM+eGnDsnV8XCA7CivnkpI+ZGVuZ3xcIDsKK+eSiT5sacOhbnxcIDsKK+eShD5sacSDbnxcIDsKK+eRvT5jb25nfFwgOwor55G1PnpoxINvfFwgOwor55GxPnRpw6BufFwgOwor55GvPmzDoW5nfFwgOwor55GpPnnDrW5nfFwgOwor55GiPnLDs25nfFwgOwor55GWPmR1w6BufFwgOwor55GUPnF1w6FufFwgOwor55GTPmh1w6FufFwgOwor55GSPnnDoW5nfFwgOwor55GQPmppxINufFwgOwor55GNPmh1w6BufFwgOwor55GMPnJ1xINufFwgOwor55GKPnpoZW58XCA7CivnkYY+eGluZ3xcIDsKK+eRhD54dWFufFwgOwor55GDPmNodW58XCA7CivnkLg+emh1w7N8XCA7CivnkLE+ZGlhb3xcIDsKK+eQrz5ndcSDbnxcIDsKK+eQqz5ixJVuZ3xcIDsKK+eQoD5kacSDbnxcIDsKK+eQlj56aMSDbnxcIDsKK+eQlD5kacOgbnxcIDsKK+eQjD5sw61uZ3xcIDsKK+eQhD5xdcSDbnxcIDsKK+eQgj5qdWFufFwgOwor55CBPnh1YW58XCA7Civnj78+Y2h1w7J8XCA7Civnj74+eGnDoG58XCA7Civnj70+dMStbmd8XCA7Civnj7A+ZGFuZ3xcIDsKK+ePnD55w6FuZ3xcIDsKK+ePmD56aG91fFwgOwor54+XPnhpYW58XCA7Civnj5Q+amnDoG58XCA7Civnj5M+amnDoG98XCA7Civnj44+emhlbnxcIDsKK+ePhT5zaGVufFwgOwor546/PnNow6FvfFwgOwor5465Pnh1w6FufFwgOwor5462PnDDrW5nfFwgOwor546qPmppYW58XCA7CivnjqQ+YsOgbmd8XCA7CivnjqM+YsOgbmd8XCA7Civnjpw+Z29uZ3xcIDsKK+eOmj55w6FuZ3xcIDsKK+eOkj5ow7NuZ3xcIDsKK+eOhT5tacOgb3xcIDsKK+eOgT54acSDbnxcIDsKK+eNvT5yw6FuZ3xcIDsKK+eNuz54acOgbnxcIDsKK+eNuD5zaMOydXxcIDsKK+eNtD5tw6luZ3xcIDsKK+eNsD5uw61uZ3xcIDsKK+eNrj54acSDbnxcIDsKK+eNqz54acSDbnxcIDsKK+eNqj5rdcOgaXxcIDsKK+eNpz5qdcOgbnxcIDsKK+eNnj50w7NuZ3xcIDsKK+eNkT5jaMOhbnxcIDsKK+eNiT56aGVufFwgOwor542CPmh1w6FufFwgOwor54y1PmJpYW58XCA7CivnjK8+dHVhbnxcIDsKK+eMrT55dcOhbnxcIDsKK+eMqD55dcOhbnxcIDsKK+eMpj5mZW5nfFwgOwor54yjPnpvbmd8XCA7CivnjI8+amlhbnxcIDsKK+eMiz5iaWFvfFwgOwor54yEPmppbmd8XCA7Civni7s+c3VhbnxcIDsKK+eLtT5tw6FuZ3xcIDsKK+eLqj50b25nfFwgOwor54uoPnLDs25nfFwgOwor54umPmt1w6BpfFwgOwor54ujPnpow6BvfFwgOwor54ufPmh1w6FufFwgOwor54udPnhpxINufFwgOwor54uRPmzDrW5nfFwgOwor54uFPnFpbmd8XCA7Civnir8+aHVhbnxcIDsKK+eKuj5rw6BuZ3xcIDsKK+eKqz5jaG91fFwgOwor54qqPmNow6FpfFwgOwor54qoPmNob3V8XCA7Civnip0+dMOzbmd8XCA7Civnio4+ZmVuZ3xcIDsKK+eKiD5xdcOhbnxcIDsKK+eKhT5nYW5nfFwgOwor54m9PnFpYW58XCA7Civnibw+a2VuZ3xcIDsKK+eJuz5tw6FuZ3xcIDsKK+eJtz5xdcOhbnxcIDsKK+eJtj5xdcOgbnxcIDsKK+eJrj5qacOgbnxcIDsKK+eJqD5nYW5nfFwgOwor54mlPmZhbmd8XCA7CivniaQ+bcOhbmd8XCA7CivniZM+YsSDbmd8XCA7CivniZE+YmlhbnxcIDsKK+eJkD5jb25nfFwgOwor54mLPmppYW58XCA7CivniYo+c2jDoW98XCA7CivniYU+ecOzbmd8XCA7CivniYI+emFuZ3xcIDsKK+eIpz5sw61uZ3xcIDsKK+eIoz50xINuZ3xcIDsKK+eInz5ndcOgbnxcIDsKK+eInD5jw7NuZ3xcIDsKK+eImT5yxINuZ3xcIDsKK+eIlj5sw7NuZ3xcIDsKK+eIlD5zaHXDsnxcIDsKK+eIkj5sacOgb3xcIDsKK+eIjT5zaHXDsnxcIDsKK+eIgz5yw7NuZ3xcIDsKK+eIgj5iaWFvfFwgOwor54e9PmNow7N1fFwgOwor54ezPnpow6BvfFwgOwor54evPmzDrW5nfFwgOwor54erPmxpw6FufFwgOwor54eqPmNvbmd8XCA7Civnh58+ecOtbmd8XCA7Civnh5s+asStbmd8XCA7Civnh5k+dMOgbmd8XCA7Civnh5c+ZMOgbmd8XCA7Civnh5I+c2hhb3xcIDsKK+eHkT50w7NuZ3xcIDsKK+eHjT5sacOhb3xcIDsKK+eHiz5qaWFvfFwgOwor54eKPnNoZW58XCA7Civnh4g+ZGVuZ3xcIDsKK+eHhT54acOhbnxcIDsKK+eHgj5xacOhbnxcIDsKK+eHgD5jaMSDbnxcIDsKK+eGvT54acOgb3xcIDsKK+eGuD5qaWFufFwgOwor54a3Pnplbmd8XCA7CivnhrY+Y3XDoG58XCA7Civnhq4+bGnDoW98XCA7Civnhqc+em9uZ3xcIDsKK+eGpT50b25nfFwgOwor54aiPmZlbmd8XCA7Civnhp4+amlhbnxcIDsKK+eGnD56xY9uZ3xcIDsKK+eGmz5iaWFvfFwgOwor54aSPnnDrW5nfFwgOwor54aRPmxpw6FufFwgOwor54aMPnNow6BufFwgOwor54W8PmNoxINvfFwgOwor54W7PnTDoW5nfFwgOwor54W1PnNow6BufFwgOwor54WsPnnDoW5nfFwgOwor54WlPmh1w6BufFwgOwor54WYPmNow6FufFwgOwor54WWPm51xINufFwgOwor54WUPnRpw6BufFwgOwor54WTPnFpw6FufFwgOwor54WQPnlpbmd8XCA7CivnhY0+amnEg298XCA7CivnhYs+eGluZ3xcIDsKK+eFiT5sacOgbnxcIDsKK+eFiD5mw6huZ3xcIDsKK+eFgT5jaMOpbnxcIDsKK+eEvD5zaGFvfFwgOwor54S1PmfDoG5nfFwgOwor54S0PnNow6lufFwgOwor54SyPmppYW98XCA7CivnhKk+cGluZ3xcIDsKK+eEqD5mw6huZ3xcIDsKK+eEpz5jb25nfFwgOwor54SiPmhvbmd8XCA7CivnhIc+eGlhb3xcIDsKK+eDvz5yw7NuZ3xcIDsKK+eDuz5zaGFufFwgOwor54O6PmzEg25nfFwgOwor54O2PnTErW5nfFwgOwor54O1PnNow6FufFwgOwor54O0PnRpbmd8XCA7Civng5w+eHXEg258XCA7Civng5Q+dMOzbmd8XCA7Civng40+eGnEg258XCA7Civng4s+eGlhb3xcIDsKK+eDiT5odcOgbnxcIDsKK+eDhz5xdcOgbnxcIDsKK+eDhj54w61uZ3xcIDsKK+eDhD5qacSDb3xcIDsKK+eCtT50b25nfFwgOwor54K0PnnEg25nfFwgOwor54KqPnpodcOzfFwgOwor54KpPmzDrG5nfFwgOwor54KkPnpow6BvfFwgOwor54KTPmxpw6BvfFwgOwor54KQPnDDoG5nfFwgOwor54KPPmfElW5nfFwgOwor54KBPmfElW5nfFwgOwor54G0PmjDs25nfFwgOwor54GyPnhpYW98XCA7CivngbE+eGlhb3xcIDsKK+eBpj54acSDbnxcIDsKK+eBpD5sdcOhbnxcIDsKK+eBoj5uxINuZ3xcIDsKK+eBmz5jaMSDbnxcIDsKK+eBmj5qacSDb3xcIDsKK+eBmT5kxINuZ3xcIDsKK+eBlz5zaMOgbnxcIDsKK+eBkz5sdcOhbnxcIDsKK+eBij5xacOhbnxcIDsKK+eBiT55b25nfFwgOwor54GHPmPDs25nfFwgOwor54GFPmh1w6BufFwgOwor54GDPmZlbmd8XCA7CivngYI+emh1w7N8XCA7CivngYE+eXVhbnxcIDsKK+eAvT5qacSDbnxcIDsKK+eAvD5yw6FuZ3xcIDsKK+eAuj5jaMOhbnxcIDsKK+eAuD5qaWFufFwgOwor54C0PnnErW5nfFwgOwor54CzPmppw6BufFwgOwor54CyPmxpw6BufFwgOwor54CvPnnDrW5nfFwgOwor54CnPmzDs25nfFwgOwor54CkPmh1w6FpfFwgOwor54CgPnnDrW5nfFwgOwor54CfPnhpYW98XCA7CivngJ4+asOsbmd8XCA7CivngJw+eW9uZ3xcIDsKK+eAlz54acOgbnxcIDsKK+eAjT5jaMOhbnxcIDsKK+eAjD5iaWFvfFwgOwor54CLPnNoxJVufFwgOwor54CHPmNow6hufFwgOwor54CFPnnDrW5nfFwgOwor54CBPnnDoG5nfFwgOwor5r++Pmx1XDrMgHxcIDsKK+a/vT5jdcOhbnxcIDsKK+a/uj5qacOgbnxcIDsKK+a/tj5qaWFufFwgOwor5r+0PnjDrW5nfFwgOwor5r+zPnFpw6FufFwgOwor5r+qPmppw6BufFwgOwor5r+iPmNow6FvfFwgOwor5r+bPm3DqW5nfFwgOwor5r+ZPnnDrW5nfFwgOwor5r+YPm7DrG5nfFwgOwor5r+TPmxpw6FufFwgOwor5r+OPmTErW5nfFwgOwor5r+NPnNvbmd8XCA7Civmv4M+bsOzbmd8XCA7Civmv4E+emh1w7N8XCA7Civmvro+amlhb3xcIDsKK+a+tT56aGVufFwgOwor5r60Pmh1w6FufFwgOwor5r6xPmRpw6BufFwgOwor5r6wPmxpw6BufFwgOwor5r6uPmt1w6BpfFwgOwor5r6tPnlvbmd8XCA7CivmvqM+aHXEg258XCA7CivmvqI+ZGFuZ3xcIDsKK+a+mD5zaGFufFwgOwor5r6XPmppw6BufFwgOwor5r6WPnhpYW58XCA7CivmvpI+aMOybmd8XCA7Civmvos+aMOobmd8XCA7CivmvoY+amlhb3xcIDsKK+a9vT5kw6huZ3xcIDsKK+a9uT5jaMOhbnxcIDsKK+a9pz5zaMOgbnxcIDsKK+a9mz5xacOhbnxcIDsKK+a9mj54aWFvfFwgOwor5r2FPmd1w6BufFwgOwor5r2CPmjDs25nfFwgOwor5r2BPnnErW5nfFwgOwor5r2APmPDs25nfFwgOwor5ry7Pmxpw6FvfFwgOwor5ry4PmppYW58XCA7CivmvLA+cGVuZ3xcIDsKK+a8rj5rYW5nfFwgOwor5rytPm3Eg25nfFwgOwor5ryoPmbDqW5nfFwgOwor5rynPnFpw6FufFwgOwor5ryjPmxpw6FufFwgOwor5ryfPnTDoW5nfFwgOwor5ryZPnR1w6FufFwgOwor5ryYPmNow7pufFwgOwor5ryXPmNvbmd8XCA7CivmvJY+Y2jDum58XCA7CivmvI4+Y8Ozbmd8XCA7CivmvIs+bMOzbmd8XCA7CivmvIo+bHVcOsyGfFwgOwor5ryFPmppxINvfFwgOwor5ryAPmJpYW98XCA7Civmu70+ecOzbmd8XCA7Civmu7s+Y2jEg258XCA7Civmu7I+c2jDqG58XCA7Civmu64+Ymlhb3xcIDsKK+a7oz5jaMO6bnxcIDsKK+a7nT5sw7NuZ3xcIDsKK+a7mD5qacOgb3xcIDsKK+a7jj54w61uZ3xcIDsKK+a7hD5jYW5nfFwgOwor5ruDPnfElW5nfFwgOwor5rqWPnpoxa1ufFwgOwor5rqVPm3DqG5nfFwgOwor5rqTPmxpw6FufFwgOwor5rqSPnl1w6FufFwgOwor5rqMPmxpxINufFwgOwor5rqBPnnDrW5nfFwgOwor5rqAPmppYW58XCA7Civmubs+Y2jDum58XCA7Civmubk+Y2jDoW58XCA7Civmubc+Y2h1w618XCA7CivmubY+cXXDoW58XCA7CivmubI+eXXDoW58XCA7CivmubA+bMOzbmd8XCA7Civmua8+dGFuZ3xcIDsKK+a5rT5xacOzdXxcIDsKK+a5rD5qacSDb3xcIDsKK+a5qj5qacSDb3xcIDsKK+a5qT5kw7JuZ3xcIDsKK+a5pz55xY9uZ3xcIDsKK+a5lz5mw6huZ3xcIDsKK+a5lT5jaMOpbnxcIDsKK+a5iT50acOhbnxcIDsKK+a5hT5sacOgbnxcIDsKK+a4uz54xK1uZ3xcIDsKK+a4uT5ob25nfFwgOwor5ri2Pnlpbmd8XCA7CivmuKI+ZsOpbmd8XCA7CivmuJ8+dMOtbmd8XCA7CivmuJw+bnXEg258XCA7CivmuJs+amnEg258XCA7CivmuJk+aHXDoG58XCA7CivmuJU+eXVhbnxcIDsKK+a4gT55dWFufFwgOwor5re6PnFpYW58XCA7Civmt7g+cWluZ3xcIDsKK+a3tT55dWFufFwgOwor5reyPnBpw6FvfFwgOwor5rewPm5pxINufFwgOwor5retPmxpxINufFwgOwor5repPmzDrW5nfFwgOwor5reoPmrDrG5nfFwgOwor5rejPmd1YW58XCA7Civmt58+dGnEg258XCA7Civmt5w+cMOpbmd8XCA7Civmt5M+ZmFuZ3xcIDsKK+a3jj5wxJVuZ3xcIDsKK+a3gz5qdcOgbnxcIDsKK+a2tz5kb25nfFwgOwor5ra2PmTDsm5nfFwgOwor5razPmtvbmd8XCA7CivmtrA+Y2h1w7J8XCA7Civmtq0+c2jDsnV8XCA7Civmtqw+eMOsbmd8XCA7Civmtqs+Z3XDoG58XCA7Civmtpo+c2h1w6x8XCA7Civmtpc+c2h1w6x8XCA7Civmto0+ZGnDoG58XCA7Civmtoo+bmnEg258XCA7Civmtoc+amluZ3xcIDsKK+a2gT5zaMOobnxcIDsKK+a2gD54acOgbnxcIDsKK+a1uz53xJVuZ3xcIDsKK+a1tT50w7NuZ3xcIDsKK+a1sj5mw6luZ3xcIDsKK+a1sT5jaMO6bnxcIDsKK+a1rT5nZW5nfFwgOwor5rWnPnnErW5nfFwgOwor5rWkPmjDs25nfFwgOwor5rWQPmNoxINufFwgOwor5rS6Pm3DrW5nfFwgOwor5rS0PnDDrW5nfFwgOwor5rSoPnhpw6FvfFwgOwor5rSkPnF1w6FufFwgOwor5rSYPmjDs25nfFwgOwor5rSQPnjDrW5nfFwgOwor5rSKPmppw6BufFwgOwor5rSAPnpob3V8XCA7Civms7Q+Z3XDoG58XCA7Civms5k+cMOtbmd8XCA7Civms44+emh1w7N8XCA7Civmsqg+ZsOpbmd8XCA7Civmsp0+emh1xK18XCA7Civmspc+dGlhbnxcIDsKK+axvD5uaW91fFwgOwor5rG7PmjEg25nfFwgOwor5rG4PmZhbmd8XCA7CivmsbM+YmnDoG58XCA7CivmsbE+cXXEg258XCA7Civmsa8+aMOzbmd8XCA7Civmsaw+asStbmd8XCA7Civmsac+cWlhbnxcIDsKK+axmD5xaWFufFwgOwor5rGSPm3DoW5nfFwgOwor5rGLPnpodcOzfFwgOwor5rGIPmRpYW98XCA7CivmsYU+bWnEg258XCA7CivmsLk+ZMOgbmd8XCA7CivmsLc+YmluZ3xcIDsKK+awsT5uacOgb3xcIDsKK+awrT5kb25nfFwgOwor5rCrPnFpbmd8XCA7CivmsKA+c2hlbnxcIDsKK+awiz5tw6luZ3xcIDsKK+awij56aGFufFwgOwor5rCIPnpoYW58XCA7CivmsIQ+csWPbmd8XCA7CivmsIM+YsSDbmd8XCA7Civmr6g+eGnEg258XCA7Civmr6c+csOzbmd8XCA7Civmr5o+Y2jDoW58XCA7Civmr4w+Z3XDoG58XCA7Civmr4o+eGlhb3xcIDsKK+aviD5kdcOgbnxcIDsKK+auuD5xw6xuZ3xcIDsKK+ausj5qaWFufFwgOwor5q6uPmxpw6BufFwgOwor5q6pPmN1w6BufFwgOwor5q6mPmRpYW98XCA7CivmrqA+Y2jDsnV8XCA7CivmrpE+ccOtbmd8XCA7Civmro4+asOsbmd8XCA7Civmraw+cWnDoW58XCA7CivmraE+aHVhbnxcIDsKK+atoD5jaHXDsnxcIDsKK+atmz5sacSDbnxcIDsKK+atlz54acOgb3xcIDsKK+atlj5jaHVhfFwgOwor5q2TPmh1YW58XCA7CivmrYo+eGlhb3xcIDsKK+atgD5rdcSDbnxcIDsKK+asuz5jaHVhfFwgOwor5qy2PnNodcOyfFwgOwor5qy1Pmt1xINufFwgOwor5qy0PmzDoW5nfFwgOwor5qyzPmt1w6BpfFwgOwor5qypPmNoYW98XCA7CivmrKY+cWlhbnxcIDsKK+asnj5sw61uZ3xcIDsKK+asnD5uw6FuZ3xcIDsKK+askz5kxINuZ3xcIDsKK+askj5sdcOhbnxcIDsKK+asij5xdcOhbnxcIDsKK+asiT5jw7JuZ3xcIDsKK+asgz5jaMOhbnxcIDsKK+asgT5uw7NuZ3xcIDsKK+arvz5sacOgbnxcIDsKK+arvD5qaWFufFwgOwor5qu7Pnlpbmd8XCA7Civmq7o+bMOtbmd8XCA7Civmq7k+eGlhb3xcIDsKK+artj54acSDbnxcIDsKK+arsz5sw7NuZ3xcIDsKK+arsD5odcOhaXxcIDsKK+arrD5jaMOobnxcIDsKK+aroz5sacOhbnxcIDsKK+aroj5ndcOgbnxcIDsKK+aroT56aHXDs3xcIDsKK+arnj55dcOhbnxcIDsKK+armj5sdVw6zIF8XCA7Civmq5U+Y3XDoW58XCA7Civmq4s+bWnDoW58XCA7Civmq4g+ZMOobmd8XCA7Civmq4Q+Y2h1bnxcIDsKK+argj56aMOgb3xcIDsKK+aquz5qacOgbnxcIDsKK+aquD5uw61uZ3xcIDsKK+aqsj5iaW5nfFwgOwor5qqwPm1pw6FufFwgOwor5qqnPnNvbmd8XCA7CivmqqY+YmnEg298XCA7CivmqqI+amnEg258XCA7Civmqps+emh1YXxcIDsKK+aqmT5kxK1uZ3xcIDsKK+aqlD5kw6BuZ3xcIDsKK+aqkj5kw6BuZ3xcIDsKK+aqiD54dcOhbnxcIDsKK+aqhj5zaGFufFwgOwor5qqCPm7Ds25nfFwgOwor5qmrPmjDqW5nfFwgOwor5qmnPnplbmd8XCA7CivmqZc+bcOpbmd8XCA7CivmqZY+dMOhbmd8XCA7CivmqZM+c2jDuW58XCA7CivmqZI+Y2jDqW58XCA7CivmqY8+emjEg258XCA7CivmqYw+eGnDoG58XCA7CivmqYs+cWnDoW98XCA7CivmqYI+ZGnDoG58XCA7CivmqYA+Y2h1bnxcIDsKK+aovz56aMSDbnxcIDsKK+aovD56aGVufFwgOwor5qi3PmNvbmd8XCA7CivmqKw+Y29uZ3xcIDsKK+aoqz5qaWFufFwgOwor5qipPnF1w6FufFwgOwor5qilPnDDqW5nfFwgOwor5qijPnnDoG5nfFwgOwor5qiiPm5pxINvfFwgOwor5qiZPmJpYW98XCA7CivmqJg+dMOhbmd8XCA7CivmqJQ+Y2jDoW98XCA7CivmqIw+Z3XDoG58XCA7CivmqIg+ccOtbmd8XCA7CivmqIU+Y29uZ3xcIDsKK+aohD5jaMOpbnxcIDsKK+aogz5sw6FuZ3xcIDsKK+anuj5rYW5nfFwgOwor5qe1Pmh1w6BufFwgOwor5qewPmLDqG5nfFwgOwor5qerPnR1w6FufFwgOwor5qenPnFpw6BufFwgOwor5qemPnnDs25nfFwgOwor5qekPmxpw6FufFwgOwor5qecPmJpbmd8XCA7Civmp5k+ZGlhbnxcIDsKK+anlT56aHXDs3xcIDsKK+ankz5nw6BuZ3xcIDsKK+anhz5kaWFufFwgOwor5qa4PnpoYWl8XCA7CivmprY+dMOhbmd8XCA7CivmprU+csOzbmd8XCA7CivmprM+dMOtbmd8XCA7Civmpq4+csOzbmd8XCA7Civmpqw+eXXDoW58XCA7Civmpqk+cWnDoW58XCA7CivmpqA+bcOtbmd8XCA7Civmpp4+eXXDoW58XCA7Civmppc+amnDoG58XCA7CivmppI+bMSDbmd8XCA7CivmppA+emjEg258XCA7Civmpbs+aMOpbmd8XCA7Civmpa8+c2jFrW58XCA7Civmpak+cGnDoW58XCA7Civmpag+emhlbnxcIDsKK+alpz55aW5nfFwgOwor5qWlPnh1w6BufFwgOwor5qWkPnPFj25nfFwgOwor5qWfPnTDrW5nfFwgOwor5qWTPmZlbmd8XCA7CivmpYo+ecOhbmd8XCA7CivmpYQ+cGnDoW58XCA7CivmpL4+emjDoG58XCA7CivmpLo+amlhbnxcIDsKK+aktz5qaWFufFwgOwor5qSrPnpoxINufFwgOwor5qSqPnDDqG5nfFwgOwor5qScPmppxINufFwgOwor5qSXPmTDrG5nfFwgOwor5qSWPnDDqW5nfFwgOwor5qSTPnpodcOzfFwgOwor5qSKPmNodcOtfFwgOwor5qSGPmNow7N1fFwgOwor5qO9PmNoZW58XCA7Civmo60+bmnDoG58XCA7Civmo6w+cXVhbnxcIDsKK+ajqT55dWFufFwgOwor5qOnPnpow6BufFwgOwor5qOkPnF1w6BufFwgOwor5qOiPnfEg25nfFwgOwor5qOhPmdhbmd8XCA7Civmo58+ZMOybmd8XCA7Civmo4g+cWnDoG58XCA7Civmo4c+Y29uZ3xcIDsKK+ajhj56aHVufFwgOwor5qOFPmLDrG5nfFwgOwor5qOBPnpodcOzfFwgOwor5qK/Pmxpw6FufFwgOwor5qK5PmJpbmd8XCA7Civmorc+asOsbmd8XCA7CivmorQ+Y2hhbnxcIDsKK+aisj56aHXDs3xcIDsKK+aipT5zb25nfFwgOwor5qKhPmt1xINufFwgOwor5qKgPmx1XDrMhnxcIDsKK+ainz54aWFvfFwgOwor5qKdPnRpw6FvfFwgOwor5qKZPmh1w6BufFwgOwor5qKYPmppw6BufFwgOwor5qKLPnh1YW58XCA7Civmoog+cGVuZ3xcIDsKK+aihz5sw7JuZ3xcIDsKK+ahuz5mZW5nfFwgOwor5qG5PmzDoW5nfFwgOwor5qGxPmrDrG5nfFwgOwor5qGvPnRpbmd8XCA7Civmoa0+emhlbnxcIDsKK+ahnz56aMOgbnxcIDsKK+ahnD55aW5nfFwgOwor5qGYPmNodcOtfFwgOwor5qGSPnNhbmd8XCA7CivmoYo+anXDoG58XCA7CivmoLQ+emhhbnxcIDsKK+agsT5nxY9uZ3xcIDsKK+agqz5qacOgbnxcIDsKK+agpj5jaMOzdXxcIDsKK+agpD5iw6xuZ3xcIDsKK+agoD5qacSDb3xcIDsKK+agnz5iaW5nfFwgOwor5qCaPnpow6hufFwgOwor5qCVPnpoZW58XCA7CivmoIQ+csOzbmd8XCA7Civmn7o+Z3XEg2l8XCA7Civmn6E+ecWPbmd8XCA7Civmn5c+c29uZ3xcIDsKK+aflj56aGFvfFwgOwor5p+NPnlhbmd8XCA7Civmn4M+bMOtbmd8XCA7Civmnq4+eGlhbnxcIDsKK+aepz5qacOgbnxcIDsKK+aemz56aMOgb3xcIDsKK+aegD5zb25nfFwgOwor5p29PmNoxY91fFwgOwor5p27PmNoxY91fFwgOwor5p22PmNodW58XCA7CivmnbQ+eGlhbnxcIDsKK+adsT5kb25nfFwgOwor5p2sPnl1w6FufFwgOwor5p2bPmdvbmd8XCA7CivmnZc+bcOhbmd8XCA7CivmnYo+Ymlhb3xcIDsKK+adhD5xaWFufFwgOwor5py+PnTDrW5nfFwgOwor5pyyPnBpw6FvfFwgOwor5pypPmTElW5nfFwgOwor5pynPmzDs25nfFwgOwor5pykPmzEg25nfFwgOwor5pyjPnTDs25nfFwgOwor5pyiPnfDoG5nfFwgOwor5pyhPnpvbmd8XCA7CivmnKA+bMWPbmd8XCA7CivmnJk+bcOtbmd8XCA7CivmnJg+anVhbnxcIDsKK+aclj5sxINuZ3xcIDsKK+ackz50acOgb3xcIDsKK+acjj5sw61uZ3xcIDsKK+acij5ydcSDbnxcIDsKK+abvT5jZW5nfFwgOwor5putPnTEg25nfFwgOwor5pusPnNow6BpfFwgOwor5purPmx1w6FufFwgOwor5puoPmzDs25nfFwgOwor5punPnLDs25nfFwgOwor5pufPmNow6lufFwgOwor5puaPm3DqW5nfFwgOwor5puVPnlpw6BufFwgOwor5puUPmrDrG5nfFwgOwor5puSPmppxINvfFwgOwor5puMPnpow6BvfFwgOwor5puJPnhpxINvfFwgOwor5puIPnTDs25nfFwgOwor5pq7PmrErW5nfFwgOwor5pq4Pmxpw6FvfFwgOwor5pq2Pnh1w6FufFwgOwor5pqwPmNvbmd8XCA7Civmmpk+Y2h1bnxcIDsKK+aamD55w6FuZ3xcIDsKK+aalT5qacSDbnxcIDsKK+aakj5xw61uZ3xcIDsKK+aahT54dcSDbnxcIDsKK+aagT5nxJVuZ3xcIDsKK+aagD53xINuZ3xcIDsKK+aZuD56aMSVbnxcIDsKK+aZsT5zaMSDbnxcIDsKK+aZrT56aMWPdXxcIDsKK+aZqz56aHXDs3xcIDsKK+aZqj50acSDbnxcIDsKK+aZnT56aMOydXxcIDsKK+aZmz54acOgbnxcIDsKK+aZjj5oxY9uZ3xcIDsKK+aZjT50w7NuZ3xcIDsKK+aZiD5qacSDb3xcIDsKK+aZhT54dWFufFwgOwor5pmAPnRpxINvfFwgOwor5pi9PmzDs25nfFwgOwor5pi6PmLErW5nfFwgOwor5pi4PmRvbmd8XCA7CivmmK4+esOybmd8XCA7CivmmKo+YmnDoG58XCA7CivmmKQ+bGluZ3xcIDsKK+aYoz5jaMWtbnxcIDsKK+aYoT54dcOgbnxcIDsKK+aYnj5ixK1uZ3xcIDsKK+aYnD55w6FuZ3xcIDsKK+aYmj5zaMOobnxcIDsKK+aYmD5mxINuZ3xcIDsKK+aYjT54dWFufFwgOwor5piJPmbEg25nfFwgOwor5pe+PmNodW58XCA7Civml7g+ecOhbmd8XCA7Civml7U+Y2jEg258XCA7Civml6s+dGlhb3xcIDsKK+aXnT5ndcOgaXxcIDsKK+aXnD56aGFufFwgOwor5peaPnBpYW98XCA7Civml5Q+amnDoG58XCA7Civml5M+c2hhb3xcIDsKK+aXkD56aMOgb3xcIDsKK+aXjT5qaW5nfFwgOwor5peKPmbEg25nfFwgOwor5pa7PmjDoW5nfFwgOwor5pa3PmR1w6BufFwgOwor5pa1PnpodcOzfFwgOwor5payPnpodcOzfFwgOwor5paxPnpodcOzfFwgOwor5pauPnpodcOzfFwgOwor5pasPnpoxINufFwgOwor5pagPmppw6BvfFwgOwor5paYPmxpw6FvfFwgOwor5paOPnpoYWl8XCA7CivmloY+amnEg298XCA7CivmloU+amnEg298XCA7CivmloI+bGnEg258XCA7CivmloA+emh1w7N8XCA7Civmlb8+amnEg298XCA7Civmlb0+amnEg298XCA7Civmlbk+bGnDoW98XCA7CivmlbY+emjDqG58XCA7Civmla0+ecOhbmd8XCA7Civmlak+eGnDoG98XCA7Civmlac+amnEg298XCA7CivmlaQ+ZGlhb3xcIDsKK+aVnz5kacSDbnxcIDsKK+aVkj56aMOobnxcIDsKK+aVkD5jaMOpbnxcIDsKK+aVjj5qacOgb3xcIDsKK+aVgT5kaWFufFwgOwor5pSqPmppxINvfFwgOwor5pSpPmTEg25nfFwgOwor5pSoPnTEg25nfFwgOwor5pSnPmRpYW58XCA7CivmlKM+bHXDoW58XCA7CivmlKI+Y3XDoW58XCA7CivmlJs+Y3VhbnxcIDsKK+aUmT5jaGFufFwgOwor5pSWPnlpbmd8XCA7CivmlJM+cWlhbnxcIDsKK+aUkT5xaWFufFwgOwor5pSQPnFpYW58XCA7CivmlI8+bMWPbmd8XCA7CivmlI0+eGlhbnxcIDsKK+aUij5odcSDbnxcIDsKK+aUhz54acSDbnxcIDsKK+aUhj5uacSDbnxcIDsKK+aUgT55xINuZ3xcIDsKK+aTtj5qacOgbnxcIDsKK+aTsD5uw61uZ3xcIDsKK+aTkz5rdcSDaXxcIDsKK+aTkD5odcOgbnxcIDsKK+aTjz5qw6xuZ3xcIDsKK+aTiz5kxINuZ3xcIDsKK+aTiT5jaHVvfFwgOwor5pOGPnpodcOzfFwgOwor5pOBPnlvbmd8XCA7Civmkr8+amnEg258XCA7Civmkr4+emh1YXxcIDsKK+aSvT5xacOgb3xcIDsKK+aSuT5qacSDb3xcIDsKK+aSrz5zdcOgbnxcIDsKK+aSqD5saWFvfFwgOwor5pKfPmppxINvfFwgOwor5pKaPm5pxINufFwgOwor5pKUPmjDqG5nfFwgOwor5pKNPnhpw6FufFwgOwor5pKLPnJ1w6FufFwgOwor5pKKPnhpw6BufFwgOwor5pKBPnFpYW58XCA7Civmkb0+Ymlhb3xcIDsKK+aRvD5iaWFvfFwgOwor5pG7PmNoYW58XCA7Civmkbc+amnEg298XCA7CivmkbY+dHXDoW58XCA7CivmkbI+c2jDoG58XCA7Civmkaw+ecOsbmd8XCA7CivmkaU+dMOgbmd8XCA7CivmkaA+esWPbmd8XCA7CivmkZw+Z3XDoG58XCA7CivmkZo+dMOhbmd8XCA7CivmkZM+ZsOpbmd8XCA7CivmkY4+bGnDoW98XCA7CivmkYw+Y2jEg258XCA7CivmkYM+Z2FuZ3xcIDsKK+aQvD5xdcOhbnxcIDsKK+aQtz5zaGVufFwgOwor5pCnPnNoYW58XCA7CivmkKU+Y2h1w618XCA7CivmkJ8+eGnEg258XCA7CivmkJI+YsOobmd8XCA7CivmkJE+YsOgbmd8XCA7CivmkIw+emjEg258XCA7CivmkIo+Y2hvdXxcIDsKK+aQiD55xY9uZ3xcIDsKK+aQhD5nZW5nfFwgOwor5o+1PnFpw6FufFwgOwor5o+xPnNodcOyfFwgOwor5o+vPmdlbmd8XCA7Civmj50+enXDoG58XCA7Civmj5s+aHXDoG58XCA7Civmj5o+ecOhbmd8XCA7Civmj5k+YmnDoG58XCA7Civmj5g+aMOpbmd8XCA7Civmj5U+emjDqG58XCA7Civmj5Q+esWPbmd8XCA7Civmj4g+aG9uZ3xcIDsKK+aPgz5qaWFufFwgOwor5o+BPnpoZW58XCA7Civmj4A+amnEg258XCA7Civmjr0+cMOobmd8XCA7Civmjrs+amnEg258XCA7CivmjrE+c2jFj3V8XCA7CivmjqQ+YmluZ3xcIDsKK+aOnj5zaMOgbnxcIDsKK+aOlT5sw6xuZ3xcIDsKK+aOlD5xaWFufFwgOwor5o6GPmdhbmd8XCA7CivmjbU+Y2jElW58XCA7CivmjbQ+esWPbmd8XCA7CivmjbM+Y2hlbnxcIDsKK+aNsj5qdcSDbnxcIDsKK+aNsD5xdcOhbnxcIDsKK+aNoD5iYW5nfFwgOwor5o2aPnpoYWl8XCA7CivmjZY+aHXDoW58XCA7CivmjZI+c8WPbmd8XCA7CivmjYE+amnEg298XCA7CivmjYA+ZmVuZ3xcIDsKK+aMuz5zaGFufFwgOwor5oy4PmppxINufFwgOwor5oy3PnDDqW5nfFwgOwor5oy1PmzDsm5nfFwgOwor5oyzPmtlbmd8XCA7CivmjK0+Z8SVbmd8XCA7CivmjKk+c2h1w6x8XCA7CivmjI8+ZMOybmd8XCA7CivmjI0+amnDoG98XCA7CivmjIs+emjDqG58XCA7CivmjIo+bsOybmd8XCA7Civmi7I+Z8WPbmd8XCA7Civmi5E+cWnDoW58XCA7Civmiro+Y2hlbnxcIDsKK+aKsD55xINuZ3xcIDsKK+aKpj5ixK1uZ3xcIDsKK+aKjD56aMSVbnxcIDsKK+aKgz5iacOgbnxcIDsKK+aJnz5zaGVufFwgOwor5omaPmRpYW98XCA7CivmiYQ+c2hhbnxcIDsKK+aJgj5kacOgbnxcIDsKK+aIsD56aMOgbnxcIDsKK+aIqT5qacSDbnxcIDsKK+aIpj56aMOgbnxcIDsKK+aIpT5kxJVuZ3xcIDsKK+aImT5kw7JuZ3xcIDsKK+aIlD5qaWFufFwgOwor5oiFPmfDoG5nfFwgOwor5oiDPnTEg25nfFwgOwor5oiAPmxpw6BufFwgOwor5oe9Pmh1YW58XCA7Civmh7o+Y2jDoG58XCA7Civmh7k+csOgbmd8XCA7Civmh7g+eHXDoW58XCA7Civmh7c+aHXDoWl8XCA7Civmh7Q+Y2jDoG58XCA7Civmh6k+ecSDbmd8XCA7Civmh6Q+Y2jDs3V8XCA7Civmh54+bcOpbmd8XCA7Civmh5w+bcOobmd8XCA7Civmh5A+aHXDoWl8XCA7Civmh4k+eWluZ3xcIDsKK+aHgT5odcOhbnxcIDsKK+aGvz5qaWFvfFwgOwor5oa9PnNvbmd8XCA7Civmhrw+asStbmd8XCA7Civmhrg+eGlhbnxcIDsKK+aGsj54acOgbnxcIDsKK+aGrT5sacSDb3xcIDsKK+aGqj54acOhbnxcIDsKK+aGoj54aWFvfFwgOwor5oaRPnDDrW5nfFwgOwor5oaQPmxpw6FufFwgOwor5oaNPmppYW98XCA7Civmhow+Y2jDum58XCA7Civmhok+cMOpbmd8XCA7CivmhoU+dMOybmd8XCA7CivmhoE+Y29uZ3xcIDsKK+aGgD5sacOhb3xcIDsKK+aFvz5ww61uZ3xcIDsKK+aFuz5qdcOgbnxcIDsKK+aFtj5xw6xuZ3xcIDsKK+aFsz5xaWFufFwgOwor5oWxPnR1w6FufFwgOwor5oWuPmx1XDrMgHxcIDsKK+aFqz5zxY9uZ3xcIDsKK+aFqT5sacOhbnxcIDsKK+aFoz5ndcOgbnxcIDsKK+aFnz50w7JuZ3xcIDsKK+aFkz5wacOgb3xcIDsKK+aFkj5jw7NuZ3xcIDsKK+aFjz5txK1uZ3xcIDsKK+aFgz55xINuZ3xcIDsKK+aFgj55xY9uZ3xcIDsKK+aEuT55xY9uZ3xcIDsKK+aErz5zxY9uZ3xcIDsKK+aEqT5nb25nfFwgOwor5oShPmzDqG5nfFwgOwor5oSWPmNow6lufFwgOwor5oSTPmTDoG5nfFwgOwor5oSRPnnFj25nfFwgOwor5oSQPm1pxINufFwgOwor5oSMPmh1w6BufFwgOwor5oSLPnh1YW58XCA7CivmhIM+eHVhbnxcIDsKK+aDvj56b25nfFwgOwor5oO8PmJpxINufFwgOwor5oO3PmNoxa1ufFwgOwor5oOlPnnFj25nfFwgOwor5oOkPmppYW58XCA7Civmg5k+Y2h1w7J8XCA7Civmg5M+cXXDoW58XCA7Civmg4w+eXVhbnxcIDsKK+aDiT5jaGFufFwgOwor5oK/PnRpxINufFwgOwor5oK+Pmtvbmd8XCA7Civmgro+Z3XDoG58XCA7Civmgrk+Z3XDoG58XCA7CivmgrA+Y8Ozbmd8XCA7CivmgqQ+Y29uZ3xcIDsKK+aCmT5oZW5nfFwgOwor5oKTPnFpw6BufFwgOwor5oKBPmp1YW58XCA7CivmgoA+ecWPbmd8XCA7Civmgb4+bcOhbmd8XCA7CivmgbI+cGVuZ3xcIDsKK+aBrj5xdcOhbnxcIDsKK+aBoD5ndcOgaXxcIDsKK+aBlD54acOgb3xcIDsKK+aBjD50aWFvfFwgOwor5oGGPmjDqW5nfFwgOwor5oCyPmLErW5nfFwgOwor5oCxPmNvbmd8XCA7CivmgLA+eHXDoG58XCA7CivmgJ4+Y2hvdXxcIDsKK+aAij5jaGFvfFwgOwor5b+8Pmthbmd8XCA7Civlv7o+eGlhbnxcIDsKK+W/qT5jb25nfFwgOwor5b+cPnlpbmd8XCA7Civlv4o+ZMOsbmd8XCA7Civlvr8+bMOybmd8XCA7Civlvro+amnEg298XCA7CivlvrE+cGnDoG98XCA7CivlvrA+Ymlhb3xcIDsKK+W+rD5ww6FuZ3xcIDsKK+W+pz5iacOgbnxcIDsKK+W+pD5qacOgbnxcIDsKK+W+nj5jb25nfFwgOwor5b6WPmPDs25nfFwgOwor5b6TPmPDs25nfFwgOwor5b6RPmrDrG5nfFwgOwor5b6DPnfEg25nfFwgOwor5b2+PmzErW5nfFwgOwor5b26PnfDoW5nfFwgOwor5b24PnfDoG5nfFwgOwor5b20PnpodcOzfFwgOwor5b2vPnBpYW98XCA7Civlva4+ecWPbmd8XCA7Civlvas+ZGlhb3xcIDsKK+W9oT5zaGFufFwgOwor5b2LPmjDs25nfFwgOwor5b2HPnhpYW98XCA7CivlvL8+amnEg258XCA7CivlvLg+YmVuZ3xcIDsKK+W8sz5qw6xuZ3xcIDsKK+W8sj54dWFufFwgOwor5bywPnNoYW98XCA7CivlvK4+cXVhbnxcIDsKK+W8qz56aMSVbnxcIDsKK+W8qj5qw6xuZ3xcIDsKK+W8qD5jaGFvfFwgOwor5byePnNoxJVufFwgOwor5byUPmRpw6BvfFwgOwor5byJPnrDoG5nfFwgOwor5bu+PmfFj25nfFwgOwor5buzPnRpbmd8XCA7Civlu7E+eW9uZ3xcIDsKK+W7sD50aW5nfFwgOwor5buvPnhpYW58XCA7Civlu64+ecOtbmd8XCA7Civlu6s+bGnDoW98XCA7Civlu6U+a3XDoGl8XCA7Civlu58+bWnDoG98XCA7Civlu44+ccStbmd8XCA7Civlu4w+amnDoG58XCA7Civlur8+bWnDoG98XCA7Civluro+c29uZ3xcIDsKK+W6sD5kaW5nfFwgOwor5bqsPnDDoW5nfFwgOwor5bqoPnhpYW98XCA7CivluqM+dGlhb3xcIDsKK+W6nT50w7NuZ3xcIDsKK+W6gT50aW5nfFwgOwor5bm3PmJpbmd8XCA7CivlubU+cWlhbnxcIDsKK+W5sD54acSDbnxcIDsKK+W5rD5jaMOzdXxcIDsKK+W5qz5iYW5nfFwgOwor5bmqPm3DqW5nfFwgOwor5bmoPmNoYW58XCA7Civluac+cWlhb3xcIDsKK+W5nT5jaMSDbnxcIDsKK+W5mj5iYW5nfFwgOwor5bmWPmJpYW98XCA7CivluZM+c2hhbnxcIDsKK+W5kD5qxK1uZ3xcIDsKK+W5ij5nb25nfFwgOwor5bmIPnDDrW5nfFwgOwor5bmHPmJhbmd8XCA7CivluLI+amlhbnxcIDsKK+W4sT5jaMOzdXxcIDsKK+W4qj56aGVufFwgOwor5bipPnFpw6BvfFwgOwor5bioPnNodcOsfFwgOwor5bijPmp1w6BufFwgOwor5bihPnDDrW5nfFwgOwor5biEPmRpbmd8XCA7Civlt7s+anXDoG58XCA7Civlt7g+anXEg258XCA7Civlt7Y+emhhb3xcIDsKK+W3oz5jaMOhb3xcIDsKK+W3oD5qaW5nfFwgOwor5beUPmRpYW58XCA7Civlt5M+ZGlhbnxcIDsKK+W3kj5sdcOhbnxcIDsKK+W3kT5jdcOhbnxcIDsKK+W3kD5jaMSDb3xcIDsKK+W3jz5xdcOhbnxcIDsKK+W3ij55xK1uZ3xcIDsKK+W3iT5jaMOhbnxcIDsKK+W3hj55w61uZ3xcIDsKK+W3hD5sw7NuZ3xcIDsKK+W3gz5sw7NuZ3xcIDsKK+W2uj5sxK1uZ3xcIDsKK+W2uD5yw7NuZ3xcIDsKK+W2rj54acSDbnxcIDsKK+W2pj56aGFufFwgOwor5bajPnFpw6FvfFwgOwor5bagPmppw6BvfFwgOwor5babPmxpw6FvfFwgOwor5baaPmxpw6FvfFwgOwor5baYPnpow6BufFwgOwor5baVPmppYW98XCA7CivltpI+Y8Opbmd8XCA7CivltpA+bMOzbmd8XCA7CivltoQ+emjEg258XCA7CivltoM+emjEg258XCA7Civltb8+ZMStbmd8XCA7Civltbw+Y2jEg258XCA7Civltbs+a2FuZ3xcIDsKK+W1uD56b25nfFwgOwor5bW3PnPFj25nfFwgOwor5bWxPnnFj25nfFwgOwor5bWuPmRpYW58XCA7Civlta0+YmVuZ3xcIDsKK+W1qj5xaWFvfFwgOwor5bWkPmjDs25nfFwgOwor5bWjPmRhbmd8XCA7CivltaI+Y2FuZ3xcIDsKK+W1jz56b25nfFwgOwor5bWJPnTDrW5nfFwgOwor5bWIPmh1xINufFwgOwor5bWCPmx1XDrMgHxcIDsKK+W0tj5mZW5nfFwgOwor5bS1PnnDoW5nfFwgOwor5bSsPmRvbmd8XCA7CivltKA+ZG9uZ3xcIDsKK+W0mj5sw6luZ3xcIDsKK+W0mD5kw7JuZ3xcIDsKK+W0lz5nxINuZ3xcIDsKK+W0hD54acSDbnxcIDsKK+W0gD5sw6BuZ3xcIDsKK+Wzuj5nxJVuZ3xcIDsKK+Wztz5zaGVufFwgOwor5bO1PmjDs25nfFwgOwor5bO0Pnhpw6BufFwgOwor5bOvPmZlbmd8XCA7Civls6c+amlhb3xcIDsKK+Wznj5xacOhb3xcIDsKK+WznT50w7NuZ3xcIDsKK+Wzmj5kw7JuZ3xcIDsKK+WzkT5xdcOhbnxcIDsKK+Wzgj50w7NuZ3xcIDsKK+WyvT5kb25nfFwgOwor5bK6PmzDrW5nfFwgOwor5bK5PnRpw6FvfFwgOwor5bKnPnRpw6FvfFwgOwor5bKhPmdhbmd8XCA7Civlsp8+ecSDbmd8XCA7CivlspI+cWnDoW58XCA7Civlso8+eXXDoW58XCA7Civlso0+cWlhbnxcIDsKK+WyhD5nYW5nfFwgOwor5bG+PnNoZW58XCA7Civlsbg+bMOzbmd8XCA7CivlsbM+eGlhbnxcIDsKK+Wxqj5sacOhb3xcIDsKK+WxpD5jw6luZ3xcIDsKK+Wxoj5sdVw6zIZ8XCA7CivlsZs+cMOtbmd8XCA7CivlsZI+Y2jDqW58XCA7CivlsYw+ZGnEg298XCA7CivlsYc+dGnDoW58XCA7CivlsKs+d2FuZ3xcIDsKK+Wwqj53YW5nfFwgOwor5bCoPm3DoW5nfFwgOwor5bCmPmxpw6BvfFwgOwor5bCjPm3DqW5nfFwgOwor5bCgPnhpxINufFwgOwor5bCfPnhpxINufFwgOwor5bCePmxpw6BvfFwgOwor5bCbPmxpw6FvfFwgOwor5a+3PmZlbmd8XCA7Civlr6w+a3VhbnxcIDsKK+WvqT5zaMSVbnxcIDsKK+Wvpz5uw61uZ3xcIDsKK+WvnD5uw61uZ3xcIDsKK+Wvmz5rdWFufFwgOwor5a+YPm7DrG5nfFwgOwor5a+XPm7DrW5nfFwgOwor5a+VPm7DrW5nfFwgOwor5a+PPmh1w6FufFwgOwor5a+OPmLDrG5nfFwgOwor5a+NPm7DrW5nfFwgOwor5a+LPmppxINufFwgOwor5a+KPnpoZW58XCA7Civlr4g+cWluZ3xcIDsKK+Wvgz55dWFufFwgOwor5a6vPnhpYW98XCA7Civlrq4+Z29uZ3xcIDsKK+WuqD50acSDb3xcIDsKK+Wulj5ow7NuZ3xcIDsKK+WulD55dWFufFwgOwor5a6SPnpodW58XCA7CivlrpE+asStbmd8XCA7CivlroI+csWPbmd8XCA7Civlrb8+bHXDoW58XCA7Civlrb4+eWluZ3xcIDsKK+Wtrz5xaWFufFwgOwor5a2uPmPDs25nfFwgOwor5a2MPmx1w6FufFwgOwor5a2JPnF1w6FufFwgOwor5a2GPmxpw6BufFwgOwor5a2FPnhpYW58XCA7CivlrYI+amnEg298XCA7CivlrYE+bMOtbmd8XCA7CivlrL0+eXVhbnxcIDsKK+WsuT54w6xuZ3xcIDsKK+WsuD5zaMSVbnxcIDsKK+WstT5tacOhbnxcIDsKK+Wssz5xaWFufFwgOwor5aywPnlpbmd8XCA7CivlrK8+bmnEg298XCA7CivlrKs+eW9uZ3xcIDsKK+Wspj5jaMOzdXxcIDsKK+WspT50acSDb3xcIDsKK+Wsoz5uw6luZ3xcIDsKK+Wsnj5kxY9uZ3xcIDsKK+WsnT5uacSDb3xcIDsKK+WsnD50acOhb3xcIDsKK+Wsmz5odcOhbnxcIDsKK+Wsmj5sacSDbnxcIDsKK+Wskz5qacOgb3xcIDsKK+WskD54aWFufFwgOwor5ayMPmppYW98XCA7CivlrIs+Y2jDoW58XCA7CivlrIE+ZGVuZ3xcIDsKK+Wrvj5sacOhbnxcIDsKK+WrvT5sacOhb3xcIDsKK+Wruz54acOhbnxcIDsKK+Wruj54acOhbnxcIDsKK+WruD56aMSDbnxcIDsKK+Wrtj5qacOhb3xcIDsKK+Wrnj55w7NuZ3xcIDsKK+WrnT5rYW5nfFwgOwor5auZPnh1w6FufFwgOwor5auPPmzDoW5nfFwgOwor5auOPnDDoW5nfFwgOwor5auLPm5pxINvfFwgOwor5auIPnlpbmd8XCA7Civlq4c+bcOtbmd8XCA7Civlq4Y+ecOzbmd8XCA7Civlq4Q+eXXDoW58XCA7Civlq4M+emhlbnxcIDsKK+WrgD5waWFvfFwgOwor5aq2PnLDs25nfFwgOwor5aq0Pnl1w6FufFwgOwor5aqlPnBpYW58XCA7CivlqqE+bGnDoG58XCA7Civlqpc+eHVhbnxcIDsKK+Wqlj55aW5nfFwgOwor5aqUPm1pw6FufFwgOwor5aqPPmR1YW58XCA7Civlqos+Y2h1bnxcIDsKK+Wqij5xacOhbnxcIDsKK+Wqhj5ydcSDbnxcIDsKK+WpvD5jaHXDsnxcIDsKK+WpuD5kw6BuZ3xcIDsKK+WpsT54acOhbnxcIDsKK+WpsD5kacSDbnxcIDsKK+WppT5jaHXDsnxcIDsKK+WppD56aG91fFwgOwor5amhPmNodcOyfFwgOwor5amePnjDrG5nfFwgOwor5amdPmRpw6BufFwgOwor5amcPnFpYW58XCA7CivlqZs+amluZ3xcIDsKK+WpmT5qw6xuZ3xcIDsKK+WpmD5xdcOhbnxcIDsKK+Wplj50aWFufFwgOwor5amRPmp1w6BufFwgOwor5amLPnhpYW98XCA7CivlqYg+ZMOtbmd8XCA7CivlqYM+Y8Ozbmd8XCA7CivlqYI+bWnDoW58XCA7CivlqLs+ZG9uZ3xcIDsKK+Wouj56aHVpfFwgOwor5ai5Pnhpw6FufFwgOwor5ai3PnNodcOsfFwgOwor5aiZPnjDrW5nfFwgOwor5aiXPmTDrG5nfFwgOwor5aiWPmNodcOyfFwgOwor5aiPPm3DoW5nfFwgOwor5aiOPnhpw6BvfFwgOwor5aiLPnNow6BvfFwgOwor5aiKPnhpw6BufFwgOwor5aiCPmjDs25nfFwgOwor5aiAPnNvbmd8XCA7Civlp74+cXVhbnxcIDsKK+Wnuj54acSDbnxcIDsKK+Wnsz5txK1uZ3xcIDsKK+Wnrj5ow6luZ3xcIDsKK+WnrT54acOgbnxcIDsKK+WnqT5uacOgbnxcIDsKK+Wnpz5qaWFufFwgOwor5aemPmppYW58XCA7Civlp6I+anVhbnxcIDsKK+Wnmz50xY9uZ3xcIDsKK+WnlT5qacSDb3xcIDsKK+Wnjj55YW5nfFwgOwor5aeNPnNoYW58XCA7Civlp4g+bMOtbmd8XCA7Civlpr0+c2hlbnxcIDsKK+Wmtj54dcOhbnxcIDsKK+WmsT56aGFvfFwgOwor5aanPnl1w6FufFwgOwor5aamPmZlbmd8XCA7CivlppQ+a2VuZ3xcIDsKK+WmjD5qw6xuZ3xcIDsKK+WmhT5ow7NuZ3xcIDsKK+Wltz5xaWFufFwgOwor5aW1PmRpbmd8XCA7CivlpbE+bGnDoW58XCA7Civlpak+bGnDoW58XCA7CivlpaM+d8SVbmd8XCA7CivlpZ8+a2VuZ3xcIDsKK+WlnT5kaWFvfFwgOwor5aWQPmh1w6BufFwgOwor5aWMPmRpxINufFwgOwor5aWGPnF1xINufFwgOwor5aSsPmd1w6BpfFwgOwor5aSmPmNow6hufFwgOwor5aSiPm3DqG5nfFwgOwor5aSdPnHDrW5nfFwgOwor5aSXPnl1w6BufFwgOwor5aSMPmzDrW5nfFwgOwor5aSJPmJpw6BufFwgOwor5aSGPmbDqW5nfFwgOwor5aSAPnNow7J1fFwgOwor5aO+Pm3Eg25nfFwgOwor5aO9PnNow7J1fFwgOwor5aOnPnFpw6BvfFwgOwor5aOgPmzFj25nfFwgOwor5aOfPmzFj25nfFwgOwor5aOePmh1w6BpfFwgOwor5aOWPnJ1w6FufFwgOwor5aONPnFpw6BufFwgOwor5aOMPnLEg25nfFwgOwor5aOLPmTDoG5nfFwgOwor5aOKPmh1w6BpfFwgOwor5aOCPmRpw6BufFwgOwor5aK9PnFpYW98XCA7CivlorE+ZMOobmd8XCA7CivloqU+ZMWPbmd8XCA7CivloqQ+a3XDoGl8XCA7CivloqE+c2jDoG58XCA7CivloqA+c2jDoG58XCA7Civlop0+cWlhb3xcIDsKK+WinD56aHXDrHxcIDsKK+Wilz56ZW5nfFwgOwor5aKLPmNoxJVufFwgOwor5aKKPmRpw6BufFwgOwor5aKHPnnDs25nfFwgOwor5aKCPmJpYW98XCA7Civlobk+cWnDoG58XCA7CivlobU+Y2jDqW58XCA7CivlobQ+YsOobmd8XCA7CivlobE+bMSDbmd8XCA7Civloag+Z29uZ3xcIDsKK+Whpj56aMOobnxcIDsKK+WhoT50acOhbnxcIDsKK+WhnT5iw6BuZ3xcIDsKK+WhnD5ww6luZ3xcIDsKK+WhlT53xJVuZ3xcIDsKK+Whjj55xY9uZ3xcIDsKK+Whiz55w61uZ3xcIDsKK+Whij5rdWFpfFwgOwor5aGHPnh1YW58XCA7CivloYU+ZHXDoG58XCA7CivloL8+amnEg258XCA7CivloL0+Z2FuZ3xcIDsKK+WgvD5mZW5nfFwgOwor5aC7PnpoZW58XCA7CivloLg+Y2h1bnxcIDsKK+Wgqz56b25nfFwgOwor5aCnPnJ1w6FufFwgOwor5aCcPmxpw6BufFwgOwor5aCOPmzDrW5nfFwgOwor5aCLPnDDqW5nfFwgOwor5aCIPmdhbmd8XCA7CivloIU+amlhbnxcIDsKK+Wfuz56aMWtbnxcIDsKK+Wfsj5ixJVuZ3xcIDsKK+WfrD5kb25nfFwgOwor5Z+qPmtvbmd8XCA7Civln6k+YsOgbmd8XCA7Civln6I+anXEg258XCA7Civln40+eHXDoG58XCA7Civln4w+bMOgbmd8XCA7Civln4c+ecWPbmd8XCA7Civln4U+ZsOhbmd8XCA7Civln4Q+cMOpbmd8XCA7Civln4A+Y2h1w618XCA7Civlnrk+YmFuZ3xcIDsKK+Wetz54acOgbnxcIDsKK+Wetj54aW5nfFwgOwor5Z6xPmTDoG5nfFwgOwor5Z6sPmjDs25nfFwgOwor5Z6oPmRpw6BufFwgOwor5Z6fPnnDoW5nfFwgOwor5Z6XPnpow6BvfFwgOwor5Z29PmzDrW5nfFwgOwor5Z2xPnlhbmd8XCA7Civlnas+ZGnDoG58XCA7CivlnZk+amluZ3xcIDsKK+WdlT5qaW5nfFwgOwor5Z2TPnjDrW5nfFwgOwor5Z2IPmbDoW5nfFwgOwor5Zy1PmTDoG5nfFwgOwor5Zy0PnpodcOzfFwgOwor5ZyyPnFpYW58XCA7CivlnKI+dGluZ3xcIDsKK+Wcnj5sdcOhbnxcIDsKK+WcnT5sdcOhbnxcIDsKK+WcmD50dcOhbnxcIDsKK+Wckz55dcOhbnxcIDsKK+Wckj55dcOhbnxcIDsKK+Wcjz5xdWFufFwgOwor5ZyOPnl1w6FufFwgOwor5ZyMPmNodcOtfFwgOwor5ZyKPnFpbmd8XCA7Civlm7M+anXDoG58XCA7Civlm7I+dG9uZ3xcIDsKK+Wbqj5jb25nfFwgOwor5ZuoPnBpYW58XCA7Civlm6Y+eXVhbnxcIDsKK+WbpT5rw6BuZ3xcIDsKK+Wboz50dcOhbnxcIDsKK+Wbjz5qaWFufFwgOwor5ZuGPmNow6BpfFwgOwor5ZuFPmNoxINufFwgOwor5ZuCPnhpYW98XCA7Civlmr4+aHVhbnxcIDsKK+WavT5jaHXDsnxcIDsKK+Wauz54aWFvfFwgOwor5Zq4PmRpxINufFwgOwor5Zq2Pnlpbmd8XCA7CivlmrU+Y2jDoW58XCA7Civlmqs+Y2jDqG58XCA7Civlmqg+bMOzbmd8XCA7Civlmos+Y2jDs3V8XCA7CivlmoA+bsOtbmd8XCA7Civlmbk+ZGFuZ3xcIDsKK+WZsj5rdcOgaXxcIDsKK+WZrj55dWFufFwgOwor5ZmtPmppw6BvfFwgOwor5ZmlPm7Ds25nfFwgOwor5ZmjPnpow7J1fFwgOwor5ZmfPnnDrG5nfFwgOwor5ZmSPmxpw6FufFwgOwor5Zi6PmNoxINufFwgOwor5Zi1PnhpYW98XCA7CivlmK8+eGnDoG98XCA7CivlmKg+eGnDoG98XCA7CivlmKY+amnDoG98XCA7CivlmJA+eGlhb3xcIDsKK+WYiz54aWFvfFwgOwor5ZiEPmppYW98XCA7CivlmII+amnDoG98XCA7Civll7k+bGnDoW58XCA7Civll5s+eGnDoW58XCA7Civll5k+cMSDbmd8XCA7Civll5U+cWnEg258XCA7Civll4o+aMWPbmd8XCA7Civll4g+eW9uZ3xcIDsKK+WWtj55w61uZ3xcIDsKK+WWrj5jaMOhbnxcIDsKK+WWrD5xacOhb3xcIDsKK+WWqj5zYW5nfFwgOwor5ZabPmh1w6BufFwgOwor5ZaaPmh1w6BufFwgOwor5ZaNPmNow6FpfFwgOwor5ZW6PnTDoW5nfFwgOwor5ZW0PmNoxINufFwgOwor5ZWzPnF1w6FufFwgOwor5ZWoPnFpbmd8XCA7CivllaM+eGnDoW58XCA7CivllYs+eGlhb3xcIDsKK+WViD5ow6huZ3xcIDsKK+WUuD5uacOgbnxcIDsKK+WUqT5ixJVuZ3xcIDsKK+WUnT5oxY9uZ3xcIDsKK+WUlT5nw7JuZ3xcIDsKK+WUjT5odcSDbnxcIDsKK+WUjD54acOhbnxcIDsKK+WTvj5zaHVvfFwgOwor5ZOvPnhpw6BufFwgOwor5ZOrPmzDoW5nfFwgOwor5ZOkPm3DoW5nfFwgOwor5ZOiPmzDsm5nfFwgOwor5ZOhPnl1w6FufFwgOwor5ZODPnTDs25nfFwgOwor5ZK+PmjFj25nfFwgOwor5ZK6Pnh1xINufFwgOwor5ZK2Pmh1w6BpfFwgOwor5ZKuPnpow7J1fFwgOwor5ZKePnhpw6BufFwgOwor5ZKXPnhpw6FufFwgOwor5ZKJPnlhbmd8XCA7Civlkbo+eGlhb3xcIDsKK+WRrz5ww61uZ3xcIDsKK+WRqj56aMOydXxcIDsKK+WRjT5ob25nfFwgOwor5ZGMPmppw6BvfFwgOwor5ZGCPmx1XDrMhnxcIDsKK+WQvT5ob25nfFwgOwor5ZC3PmNodWl8XCA7CivlkLA+aMOzbmd8XCA7CivlkJw+Y2jFj3V8XCA7CivlkIU+eHVhbnxcIDsKK+WPvz5ob25nfFwgOwor5Y+iPmPDs25nfFwgOwor5Y+VPnpodcOzfFwgOwor5Y+PPmd1w6BpfFwgOwor5Y63Pmdvbmd8XCA7CivljrU+eXXDoW58XCA7Civljqc+ZGlhbnxcIDsKK+WOmz50aW5nfFwgOwor5Y6WPnDDoW5nfFwgOwor5Y6QPnDDoW5nfFwgOwor5Y2yPnNow6BvfFwgOwor5Y2EPm5pw6BufFwgOwor5Yy0PnN1xINufFwgOwor5YyzPmxpw6FufFwgOwor5YyyPmxpw6FufFwgOwor5YyoPnphbmd8XCA7CivljKU+YmnDoG58XCA7CivljJ8+a8Ogbmd8XCA7CivljJo+ZmFuZ3xcIDsKK+WMkT5nb25nfFwgOwor5YyJPnBlbmd8XCA7Civli7g+cXXDoG58XCA7Civli7c+csOhbmd8XCA7Civli60+dMOzbmd8XCA7Civli6w+anXDoG58XCA7Civli6g+ecSDbmd8XCA7Civli6c+cXXDoG58XCA7Civli6Y+Y2hhb3xcIDsKK+WLoT5wacOgb3xcIDsKK+WLnD53xJVuZ3xcIDsKK+WLlT5kw7JuZ3xcIDsKK+WLlD5tacSDbnxcIDsKK+WLjT5xw61uZ3xcIDsKK+WLjD5qdcOgbnxcIDsKK+WLiD55xY9uZ3xcIDsKK+WLhj5sw6FuZ3xcIDsKK+WKuT54acOgb3xcIDsKK+WKtz55w6FuZ3xcIDsKK+WKtT5qdcOgbnxcIDsKK+WKsD5tacSDb3xcIDsKK+WKpT5rZW5nfFwgOwor5YqXPmN1w6FufFwgOwor5YqWPmNow6FufFwgOwor5YqUPmppw6BufFwgOwor5YqSPmppw6BufFwgOwor5YqPPnRhbmd8XCA7Civlio4+amnDoG58XCA7Civlio0+amnDoG58XCA7Civlios+amnEg298XCA7CivlioY+bGnDoW58XCA7Civlibw+c2hhbnxcIDsKK+WJuT5jaGFvfFwgOwor5Ym4PnR1w6FufFwgOwor5Ym3PmNoxINufFwgOwor5Ym2Pmp1YW58XCA7CivlibE+amnDoG58XCA7Civliaw+ZHVhbnxcIDsKK+WJpj50dcOhbnxcIDsKK+WJoz5qacOgbnxcIDsKK+WJoD5xw61uZ3xcIDsKK+WJmz5nYW5nfFwgOwor5YmXPmNoxINufFwgOwor5YmIPnl1YW58XCA7CivliYQ+asStbmd8XCA7CivliKw+Y2jEg258XCA7CivliKo+c2hhbnxcIDsKK+WIoj5sw61uZ3xcIDsKK+WIiz5xacOgbnxcIDsKK+WHvD5kw6BuZ3xcIDsKK+WHtz5rdcOgaXxcIDsKK+WHtD5ww61uZ3xcIDsKK+WHrj5mZW5nfFwgOwor5YesPmZlbmd8XCA7Civlh6g+ZmVuZ3xcIDsKK+WHlT5txK1uZ3xcIDsKK+WHlD5jYW5nfFwgOwor5YeNPmTDsm5nfFwgOwor5YeKPmrDrG5nfFwgOwor5YeIPmrDrG5nfFwgOwor5Ya/PmppYW58XCA7Civlhq4+Z2FuZ3xcIDsKK+WGqz5iaW5nfFwgOwor5YahPm3DqW5nfFwgOwor5YaRPnpow7J1fFwgOwor5YaGPnl1YW58XCA7CivlhoE+Y2jEg258XCA7CivlhbI+dGlhbnxcIDsKK+WFpj53w6FuZ3xcIDsKK+WFnz5zaGVufFwgOwor5YWbPnFpYW58XCA7CivlhL4+bsOgbmd8XCA7CivlhLs+dMSDbmd8XCA7CivlhLQ+csOhbmd8XCA7CivlhLM+Y2jDoG58XCA7CivlhLE+bMWPbmd8XCA7CivlhK8+dMOpbmd8XCA7CivlhK0+Y2jDqG58XCA7CivlhKw+Y2jDqG58XCA7CivlhKY+Ymlhb3xcIDsKK+WEnD5uw61uZ3xcIDsKK+WEmj5tw6luZ3xcIDsKK+WEmT5xacOgbnxcIDsKK+WElT5jaMOhaXxcIDsKK+WElD5jaMOzdXxcIDsKK+WEjD5qacSDb3xcIDsKK+WEiT5qacSDbnxcIDsKK+WEiD5rdcOgaXxcIDsKK+WEhT5kYW5nfFwgOwor5YSDPmNow6FufFwgOwor5YSCPm7Ds25nfFwgOwor5YO9Pnpow7J1fFwgOwor5YO8PmZlbmd8XCA7Civlg7o+cWnDoG98XCA7Civlg7Q+eGnDoG58XCA7Civlg6w+amlhb3xcIDsKK+WDqT54acOgbnxcIDsKK+WDpT5qacSDb3xcIDsKK+WDoz5qacOgbnxcIDsKK+WDnT5jaMOhbnxcIDsKK+WDnD5kw6huZ3xcIDsKK+WDkT5xacOhb3xcIDsKK+WDkD5zaMOgbnxcIDsKK+WDjT5kw7JuZ3xcIDsKK+WDjD55w61uZ3xcIDsKK+WDij54aWFufFwgOwor5YOJPnFpYW58XCA7Civlg4Y+bGnDoW58XCA7Civlg4Q+cGnDoG98XCA7Civlgr4+cWluZ3xcIDsKK+WCuT5qw6xuZ3xcIDsKK+WCtT56aMOgaXxcIDsKK+WCsT5zxY9uZ3xcIDsKK+WCsD5ww6luZ3xcIDsKK+WCrz56xY9uZ3xcIDsKK+WCrT55b25nfFwgOwor5YKhPmLDrG5nfFwgOwor5YKfPnnEg25nfFwgOwor5YKbPnnFj25nfFwgOwor5YKaPnhpw6BvfFwgOwor5YKWPmNhbmd8XCA7CivlgpQ+cWnDoG58XCA7Civlgo8+dMOhbmd8XCA7Civlgo4+ZGlhbnxcIDsKK+WChz5yxY9uZ3xcIDsKK+WChj5ww6FuZ3xcIDsKK+WBtT56aGVufFwgOwor5YGzPmR1YW58XCA7Civlga0+bWnEg258XCA7CivlgaI+Y2jFj3V8XCA7CivlgaE+emjDoG58XCA7CivlgZI+dMSDbmd8XCA7CivlgZE+ZmVuZ3xcIDsKK+WBiz5ixK1uZ3xcIDsKK+WBhj5jaMWtbnxcIDsKK+WBhD5udcOgbnxcIDsKK+WBgj5qaWFufFwgOwor5YGAPnlpbmd8XCA7CivlgLk+amnEg258XCA7CivlgLI+ZG9uZ3xcIDsKK+WAsD5sw6luZ3xcIDsKK+WArz5zb25nfFwgOwor5YCnPnpvbmd8XCA7CivlgKQ+a8WPbmd8XCA7CivlgKM+ZsSDbmd8XCA7CivlgJ4+asOsbmd8XCA7CivlgJc+cMOpbmd8XCA7CivlgJY+eMOsbmd8XCA7CivlgI4+dGlhbnxcIDsKK+WAij56w7JuZ3xcIDsKK+WAiT5jYW5nfFwgOwor5YCCPmLDrG5nfFwgOwor5L+/Pmppw6BufFwgOwor5L+1PmJpxINvfFwgOwor5L+0Pmppw6BufFwgOwor5L+yPnhpw6BvfFwgOwor5L+bPm1pxINufFwgOwor5L+UPnhpw6BufFwgOwor5L+TPmrDrG5nfFwgOwor5L+NPmzDoW5nfFwgOwor5L66PnNow6hufFwgOwor5L65PnTErW5nfFwgOwor5L62Pmx1XDrMhnxcIDsKK+S+tD5jaMWPdXxcIDsKK+S+sj56aMOobnxcIDsKK+S+qz5uw6xuZ3xcIDsKK+S+nz5qacOgbnxcIDsKK+S+nD56aG91fFwgOwor5L6BPnNoZW58XCA7CivkvoA+eMOtbmd8XCA7Civkvbo+cXXDoW58XCA7CivkvbU+YsOsbmd8XCA7CivkvbI+bcOtbmd8XCA7CivkvaE+eHVhbnxcIDsKK+S9lD56aGFufFwgOwor5L2SPnlhbmd8XCA7CivkvYs+c2jDoG98XCA7CivkvYI+dGnDoW58XCA7CivkvLs+YmVuZ3xcIDsKK+S8tz56aMOydXxcIDsKK+S8rT54dcOhbnxcIDsKK+S8oz54acOgbnxcIDsKK+S8lj50xINuZ3xcIDsKK+S8hD5kacOgb3xcIDsKK+S7uj5jYW5nfFwgOwor5Lu5PmZlbmd8XCA7Civku6Y+Y2jDoG98XCA7Civku5w+aMOzbmd8XCA7Civku5o+eGlhbnxcIDsKK+S7jD5iaW5nfFwgOwor5Lq+PnfDoW5nfFwgOwor5Lq3Pmxpw6FufFwgOwor5LqwPmppbmd8XCA7CivkuqM+cGVuZ3xcIDsKK+S6kD5nw6huZ3xcIDsKK+S6gj5sdcOgbnxcIDsKK+S5qj5uYW5nfFwgOwor5Li8PmrErW5nfFwgOwor5LizPmNoxINufFwgOwor5LixPmd1w6BufFwgOwor5LiuPmd1w6BufFwgOwor5LimPmLDrG5nfFwgOwor5LiSPmNoxY91fFwgOwor5LiPPm1pxINufFwgOwor5LaxPnTDs25nfFwgOwor5LaiPnhpw6FufFwgOwor5LagPmppxINufFwgOwor5LafPnhpw6BufFwgOwor5LaQPmt1w6BpfFwgOwor5LaHPnpow7J1fFwgOwor5LaEPnDDrW5nfFwgOwor5LaCPnpodcOzfFwgOwor5LW6PnTErW5nfFwgOwor5LWyPmRpw6BvfFwgOwor5LWvPnR1xINufFwgOwor5LWuPnnDoG5nfFwgOwor5LWoPm3DoW5nfFwgOwor5LWkPmppxINufFwgOwor5LWhPmppxINufFwgOwor5LWePmrDrG5nfFwgOwor5LWcPm7Fj25nfFwgOwor5LWbPmppw6BufFwgOwor5LWWPmppw6BufFwgOwor5LWUPmTFj25nfFwgOwor5LWQPmNoxINufFwgOwor5LWHPnhpw6BufFwgOwor5LWGPm3DqW5nfFwgOwor5LS/Pm3DqW5nfFwgOwor5LS8PmNoxINufFwgOwor5LS2PnDDqW5nfFwgOwor5LS1PmLErW5nfFwgOwor5LSuPnNow6BufFwgOwor5LSrPmzDrW5nfFwgOwor5LSpPnBpw6FvfFwgOwor5LSfPmh1w6FufFwgOwor5LScPmh1w6FpfFwgOwor5LSbPmppxINvfFwgOwor5LSaPmfEg25nfFwgOwor5LSSPmzDrW5nfFwgOwor5LSMPm3DqW5nfFwgOwor5LSLPnh1w6FufFwgOwor5LSJPnh1w6FufFwgOwor5LSHPmzDrW5nfFwgOwor5LSCPmjDoG5nfFwgOwor5LSAPnTDs25nfFwgOwor5LO3PmPDs25nfFwgOwor5LOyPnpow6hufFwgOwor5LOqPmp1w6BufFwgOwor5LOjPnl1w6FufFwgOwor5LOgPmNodcOtfFwgOwor5LOePmLElW5nfFwgOwor5LOZPnjErW5nfFwgOwor5LOSPnl1w6FufFwgOwor5LOLPnTDs25nfFwgOwor5LOCPnRpw6FvfFwgOwor5LK+PnFpxINvfFwgOwor5LK7Pnh1w6FufFwgOwor5LK0Pnpow6hufFwgOwor5LKzPmjDoW5nfFwgOwor5LKxPmbEg25nfFwgOwor5LKuPnl1w6FufFwgOwor5LKoPmjDs25nfFwgOwor5LKiPnTDqW5nfFwgOwor5LKbPm3DqW5nfFwgOwor5LKYPmd1xINufFwgOwor5LKXPnhpw6FufFwgOwor5LKWPmNow7N1fFwgOwor5LKUPnHDrW5nfFwgOwor5LKNPnTDqW5nfFwgOwor5LKMPmt1xINufFwgOwor5LKCPnh1w6FufFwgOwor5LG/PmNow6BufFwgOwor5LG8PnpoxINufFwgOwor5LG2PmzDoW5nfFwgOwor5LG0PmfDqG5nfFwgOwor5LGtPmfDqG5nfFwgOwor5LGkPnhpw6BufFwgOwor5LGgPnpow6BufFwgOwor5LGUPnRpw6FvfFwgOwor5LGTPnTDrW5nfFwgOwor5LGOPmfDqG5nfFwgOwor5LGNPmfDqG5nfFwgOwor5LGJPnNow6BufFwgOwor5LGHPnNow6BufFwgOwor5LGBPnFpw6FvfFwgOwor5LC3PmLDoG5nfFwgOwor5LCxPmzDrW5nfFwgOwor5LCrPmNow6FvfFwgOwor5LCjPnfEg25nfFwgOwor5LCiPnjDrG5nfFwgOwor5LCgPnNow6lufFwgOwor5LCdPnrDqG5nfFwgOwor5LCWPmN1w6FufFwgOwor5LCTPm1pw6FufFwgOwor5LCSPm3DqW5nfFwgOwor5LCMPnrFj25nfFwgOwor5LCDPnDDqW5nfFwgOwor5K++PnRpw6FvfFwgOwor5K+nPnHErW5nfFwgOwor5K+kPmt1w6BpfFwgOwor5K+hPmppxINufFwgOwor5K+bPmppxINufFwgOwor5K+YPmh1w6BufFwgOwor5K+WPmzDoW5nfFwgOwor5K+SPmjDqW5nfFwgOwor5K+NPmzDrW5nfFwgOwor5K6/PmppxINufFwgOwor5K6+PnDDoW5nfFwgOwor5K61PnTDs25nfFwgOwor5K60PmTDqG5nfFwgOwor5K6dPmh1w6FufFwgOwor5K6aPmzDqG5nfFwgOwor5K6VPmNodcOyfFwgOwor5K6TPnpow6BvfFwgOwor5K6NPm5pxINvfFwgOwor5K6EPnh1w6FufFwgOwor5K6BPnBpw6FufFwgOwor5K20Pmh1w6FufFwgOwor5K2wPmLElW5nfFwgOwor5K2tPnNoxY91fFwgOwor5K2oPnNodcOsfFwgOwor5K2kPnFpxINufFwgOwor5K2iPm7DrW5nfFwgOwor5K2gPmppxINufFwgOwor5K2dPmt1w6BpfFwgOwor5K2XPnnErW5nfFwgOwor5K2VPmppw6BufFwgOwor5K2RPmxpw6FufFwgOwor5K2QPnnDoG5nfFwgOwor5K2KPnnErW5nfFwgOwor5K2IPmppw6BufFwgOwor5Ky8Pnl1w6BufFwgOwor5Ky7Pmppw6BufFwgOwor5Ky6PnnDoG5nfFwgOwor5KywPnNow6BvfFwgOwor5KyvPm5pw6FufFwgOwor5KysPnnEg25nfFwgOwor5KynPnl1w6FufFwgOwor5KykPmNow6FvfFwgOwor5KydPmjDqW5nfFwgOwor5KyXPnnDoW5nfFwgOwor5KyWPmjDqW5nfFwgOwor5KyLPmzDqW5nfFwgOwor5KyHPnl1w6BufFwgOwor5Ku6PmjDs25nfFwgOwor5Ku5PmjDs25nfFwgOwor5Ku1Pm1pw6FufFwgOwor5KusPnpoxJVufFwgOwor5KukPm3DrW5nfFwgOwor5KuhPnFpw6BufFwgOwor5KuZPnPEg25nfFwgOwor5KuWPmNoxJVufFwgOwor5KuEPmNodcOgfFwgOwor5KuDPmNow7pufFwgOwor5Kq7PmJpw6BufFwgOwor5Kq0PnpoxJVufFwgOwor5KqvPnnDrW5nfFwgOwor5KquPmNoxY91fFwgOwor5KqtPnJ1xINufFwgOwor5KqmPmjDs25nfFwgOwor5KqcPmNow6BufFwgOwor5KqSPmppw6BvfFwgOwor5KqMPnpow6BufFwgOwor5KqKPmzDs25nfFwgOwor5KqIPnFpxINufFwgOwor5KqAPmd1xINufFwgOwor5Km8PmbDqW5nfFwgOwor5Km4PnLDs25nfFwgOwor5Km2PmNoxINufFwgOwor5KmwPnh1w6BufFwgOwor5KmsPmLElW5nfFwgOwor5KmqPmd1xINufFwgOwor5KmpPnl1xINufFwgOwor5KmmPnRpw6FvfFwgOwor5KmePm5pw6FufFwgOwor5KmcPnpow7J1fFwgOwor5KmZPnh1w6BufFwgOwor5KmRPmjDs25nfFwgOwor5KmNPmxpxINvfFwgOwor5KmMPnFpw6FvfFwgOwor5KmGPmppxINufFwgOwor5KmFPnpoxINufFwgOwor5KmEPnRpxINufFwgOwor5Ki/PnFpw6FufFwgOwor5Ki7PmLDqG5nfFwgOwor5Ki3Pnhpw6BufFwgOwor5KivPnpow6hufFwgOwor5KisPmxpw6FufFwgOwor5KipPmzDrW5nfFwgOwor5KimPnDDoW5nfFwgOwor5KiYPnhpw6BufFwgOwor5KiOPmjDs25nfFwgOwor5KiNPnnErW5nfFwgOwor5KiLPm55dcOofFwgOwor5KiFPmxpw6FvfFwgOwor5KevPmNow6FufFwgOwor5KeuPnhpxINufFwgOwor5KefPnhpw6BufFwgOwor5KecPnTDoW5nfFwgOwor5KebPmLDoG5nfFwgOwor5KeZPmzDrW5nfFwgOwor5KeWPmppw6BufFwgOwor5KeOPnh1w6BufFwgOwor5KeLPnhpxINufFwgOwor5KeGPmjDs25nfFwgOwor5KeDPmRpw6BufFwgOwor5KazPmjDoG5nfFwgOwor5KayPnFpw6BufFwgOwor5KauPmNoxa1ufFwgOwor5KalPnhpw6FufFwgOwor5KahPmh1w6FufFwgOwor5KaSPmTDoG5nfFwgOwor5KaQPnTErW5nfFwgOwor5KaOPmd1xINufFwgOwor5KaKPm5pxINvfFwgOwor5KaIPmbEg25nfFwgOwor5KaFPnNow6BufFwgOwor5KaCPnNow6BufFwgOwor5KW1PnhpxINvfFwgOwor5KWwPm3DqG5nfFwgOwor5KWqPnhpxINufFwgOwor5KWnPmh1w6FufFwgOwor5KWlPmxpw6FufFwgOwor5KWiPmzDs25nfFwgOwor5KWePmppxINvfFwgOwor5KWcPmppw6BufFwgOwor5KWXPmt1xINufFwgOwor5KWWPnRpw6FufFwgOwor5KWSPmNow7N1fFwgOwor5KWOPmNow7pufFwgOwor5KWHPnNow6BufFwgOwor5KWFPnFpw6BufFwgOwor5KWCPm3DqG5nfFwgOwor5KWAPmNoxINufFwgOwor5KS8Pnhpw6BufFwgOwor5KS4Pnp1w6BufFwgOwor5KSwPnfElW5nfFwgOwor5KSvPnjDrW5nfFwgOwor5KStPmt1w6BufFwgOwor5KSrPmNow6FufFwgOwor5KSjPmx5dcOofFwgOwor5KSfPmNow6lufFwgOwor5KSdPnnDrG5nfFwgOwor5KSYPmNoxINufFwgOwor5KSUPmppw6BufFwgOwor5KSTPm3DqW5nfFwgOwor5KSRPnfDoG5nfFwgOwor5KSKPnLDs25nfFwgOwor5KSEPm1pxINufFwgOwor5KOpPmNow7pufFwgOwor5KOoPmNow7pufFwgOwor5KOkPmppw6BvfFwgOwor5KOjPmTEg25nfFwgOwor5KOYPnTDoW5nfFwgOwor5KORPmNow6FufFwgOwor5KOKPmTEg25nfFwgOwor5KOIPmjDoG5nfFwgOwor5KOGPnjDrW5nfFwgOwor5KOFPmNow6lufFwgOwor5KK+PnhpxINufFwgOwor5KK7PmNow6lufFwgOwor5KKnPmxpw6BvfFwgOwor5KKiPmPDoG5nfFwgOwor5KKgPnPDsm5nfFwgOwor5KKaPmfDsm5nfFwgOwor5KKNPmbEg25nfFwgOwor5KKJPm7Ds25nfFwgOwor5KKIPmNow6lufFwgOwor5KKHPnLFj25nfFwgOwor5KKFPmNow6lufFwgOwor5KG/PmzDrW5nfFwgOwor5KG8PmzDrW5nfFwgOwor5KGyPmNow6FufFwgOwor5KGwPmvElW5nfFwgOwor5KGrPnDDqW5nfFwgOwor5KGqPmNow6FufFwgOwor5KGmPnPEg25nfFwgOwor5KGlPnLDs25nfFwgOwor5KGiPmJpw6BufFwgOwor5KGZPmzDoW5nfFwgOwor5KGYPnRpw6FufFwgOwor5KGXPmfFj25nfFwgOwor5KGWPmrDrG5nfFwgOwor5KGTPmp1w6BufFwgOwor5KGSPnRpw6FufFwgOwor5KGPPmjDs25nfFwgOwor5KGMPmjDs25nfFwgOwor5KGJPmvEg25nfFwgOwor5KGGPnLDs25nfFwgOwor5KGBPmzFj25nfFwgOwor5KGAPnpoxINufFwgOwor5KC+PnNoxINufFwgOwor5KC8PmRpw6BvfFwgOwor5KC3PnRpxINvfFwgOwor5KCyPmzDrW5nfFwgOwor5KCwPnF1w6FufFwgOwor5KCuPnTDqW5nfFwgOwor5KCsPmTDqG5nfFwgOwor5KCqPmR1w6BufFwgOwor5KCoPmNow6BufFwgOwor5KCjPnh1xINufFwgOwor5KCiPm3DqG5nfFwgOwor5KCcPnLDs25nfFwgOwor5KCbPmppxINvfFwgOwor5KCEPnRpxINufFwgOwor5J+6PmLEg25nfFwgOwor5J+0Pnpow6hufFwgOwor5J+wPmppxINufFwgOwor5J+tPnRpw6FvfFwgOwor5J+qPmbElW5nfFwgOwor5J+nPnRpw6FufFwgOwor5J+lPm3DoW5nfFwgOwor5J+iPmNow6lufFwgOwor5J+YPmjDoG5nfFwgOwor5J+WPnTDoG5nfFwgOwor5J+SPnF1w6FufFwgOwor5J+NPmRpw6FufFwgOwor5J+LPnpoxINufFwgOwor5J+FPmppw6BufFwgOwor5J68PmNodcStfFwgOwor5J67PnnFj25nfFwgOwor5J6SPmTDsm5nfFwgOwor5J6RPmjDs25nfFwgOwor5J6QPmNoxa1ufFwgOwor5J6NPnHDrW5nfFwgOwor5J6LPmNow6hufFwgOwor5J6EPmJpw6BvfFwgOwor5J6CPnJ1xINufFwgOwor5J6BPnhpw6BufFwgOwor5J28PnHDrW5nfFwgOwor5J26Pmd1w6BufFwgOwor5J2uPnh1w6BufFwgOwor5J2pPnpow6hufFwgOwor5J2oPnhpw6FufFwgOwor5J2gPmh1w6FufFwgOwor5J2WPnpoxINvfFwgOwor5J2LPnrDsm5nfFwgOwor5J2APmxpw6FvfFwgOwor5JyuPmxpw6FvfFwgOwor5JysPnPFj25nfFwgOwor5JyrPmjDs25nfFwgOwor5JyiPnhpxINufFwgOwor5JyfPmNow6lufFwgOwor5JydPnR1xINufFwgOwor5JybPmNow6FufFwgOwor5JyYPmrErW5nfFwgOwor5JyNPmxpw6FvfFwgOwor5JyMPmx1w6FufFwgOwor5Ju1PnNow7J1fFwgOwor5JuzPmppxINufFwgOwor5JutPnjDrG5nfFwgOwor5JusPmNow7N1fFwgOwor5JumPnPDsm5nfFwgOwor5JuaPmx5dcOofFwgOwor5JuSPmJpw6BufFwgOwor5JuHPnl1xINufFwgOwor5JuGPnpow7J1fFwgOwor5JuEPnl1xINufFwgOwor5JuDPnfDoG5nfFwgOwor5JqyPnNow6BufFwgOwor5JquPnLDqW5nfFwgOwor5JqpPmppxINvfFwgOwor5JqaPnhpxINufFwgOwor5JqYPmNow6lufFwgOwor5JqWPmzDrW5nfFwgOwor5JqTPm5pxINufFwgOwor5JqPPmzDqG5nfFwgOwor5JqIPmp1w6BufFwgOwor5Jm8PnNow6BvfFwgOwor5Jm6Pmxpw6FufFwgOwor5JmuPmd1w6BufFwgOwor5JmsPnnDrG5nfFwgOwor5JmqPmzDs25nfFwgOwor5JmpPm3DqW5nfFwgOwor5JmmPm3DqW5nfFwgOwor5JmlPmzDrW5nfFwgOwor5JmiPnrDqG5nfFwgOwor5JmcPmbDqW5nfFwgOwor5JmbPmd1w6BufFwgOwor5JmaPm5pxINvfFwgOwor5JmHPm51xINufFwgOwor5JmAPmLElW5nfFwgOwor5Ji+Pmd1xINufFwgOwor5Ji6Pnpow6BufFwgOwor5JisPnLDs25nfFwgOwor5JipPnh1w6BufFwgOwor5JioPmppxINvfFwgOwor5JiVPmjDoW5nfFwgOwor5JiNPmNow6BpfFwgOwor5JiGPnhpxINufFwgOwor5Je/Pm7DrW5nfFwgOwor5Je+PnhpxINufFwgOwor5Je0PnTDrW5nfFwgOwor5JewPmd1w6BufFwgOwor5JekPnnDs25nfFwgOwor5JegPnh1w6FufFwgOwor5JeSPmLDrG5nfFwgOwor5JeIPm3DqW5nfFwgOwor5JeGPmd1xINufFwgOwor5JeDPnpow6BufFwgOwor5Ja6PnRpw6FvfFwgOwor5Ja5PnnDoW5nfFwgOwor5JatPmp1w6BufFwgOwor5JarPmLDoG5nfFwgOwor5JaiPm1pw6FvfFwgOwor5JagPnl1w6FufFwgOwor5JafPm3Eg25nfFwgOwor5JaePnpoxY91fFwgOwor5JaNPnFpw6FufFwgOwor5JaFPmzDrW5nfFwgOwor5JaCPmx1w6FufFwgOwor5JW6PmPDs25nfFwgOwor5JW0PnpodcOzfFwgOwor5JWvPnBpw6FvfFwgOwor5JWtPnFpw6FufFwgOwor5JWoPnTDqW5nfFwgOwor5JWnPnhpw6BvfFwgOwor5JWmPnnDrW5nfFwgOwor5JWePmzDoG5nfFwgOwor5JWYPmzDrW5nfFwgOwor5JWUPnhpw6FufFwgOwor5JWAPmt1xINufFwgOwor5JS4PmJpxINvfFwgOwor5JStPm7DrG5nfFwgOwor5JSgPnNoxINvfFwgOwor5JSbPnHErW5nfFwgOwor5JSaPmNow7pufFwgOwor5JSZPmRpw6BvfFwgOwor5JSWPmzDrW5nfFwgOwor5JSUPmrDrG5nfFwgOwor5JSPPmNow7J1fFwgOwor5JO3PnjDrG5nfFwgOwor5JO0PnJ1w6FufFwgOwor5JOxPmNow6FpfFwgOwor5JOmPmRpxINufFwgOwor5JOdPm3DqW5nfFwgOwor5JOTPmNow7N1fFwgOwor5JOSPmt1xINpfFwgOwor5JORPmLErW5nfFwgOwor5JOQPmNow7pufFwgOwor5JOOPmNodcOyfFwgOwor5JK4Pnhpw6FufFwgOwor5JKtPmTElW5nfFwgOwor5JKqPmJpw6BufFwgOwor5JKePmNow6lufFwgOwor5JKdPnhpw6FvfFwgOwor5JKbPmjDqW5nfFwgOwor5JKaPnNoxINvfFwgOwor5JKVPnhpxINvfFwgOwor5JKSPnRpw6FvfFwgOwor5JKQPm3DqW5nfFwgOwor5JKOPm3Eg25nfFwgOwor5JKNPnDEg25nfFwgOwor5JKMPm3DrG5nfFwgOwor5JKLPnnEg25nfFwgOwor5JKFPnTDqW5nfFwgOwor5JGgPmxpxINvfFwgOwor5JGePnNow7lufFwgOwor5JGaPnRpw6FufFwgOwor5JGXPmTDoG5nfFwgOwor5JGQPnpoxJVufFwgOwor5JGPPnF1w6FufFwgOwor5JGOPmNoxINufFwgOwor5JGJPnnDrW5nfFwgOwor5JGGPnnEg25nfFwgOwor5JGFPm3DqW5nfFwgOwor5JGDPm3DqW5nfFwgOwor5JCuPmNoxINufFwgOwor5JClPnfElW5nfFwgOwor5JCPPmNoxa1ufFwgOwor5JCNPnpow7J1fFwgOwor5JCMPnRpxINufFwgOwor5JCHPmNow7pufFwgOwor5JCBPm5pxINvfFwgOwor5I+7Pm7DqW5nfFwgOwor5I+5Pnhpw6BufFwgOwor5I+1Pm3ElW5nfFwgOwor5I+0PnNow6BvfFwgOwor5I+dPmNow7pufFwgOwor5I+bPmNoxa1ufFwgOwor5I+aPmNoxINvfFwgOwor5I+WPnpow6hufFwgOwor5I+TPmd1xINufFwgOwor5I+SPnBpw6BufFwgOwor5I+OPmbDqW5nfFwgOwor5I+NPnl1w6BufFwgOwor5I+KPmzDs25nfFwgOwor5I+IPmxpw6FufFwgOwor5I+HPnBpw6BvfFwgOwor5I+DPm1pw6FufFwgOwor5I67PnpoxY91fFwgOwor5I6nPmLDoG5nfFwgOwor5I6hPm51xINufFwgOwor5I6aPmd1w6BufFwgOwor5I6XPnFpw6FvfFwgOwor5I6SPnpoxINufFwgOwor5I6QPmNoxINvfFwgOwor5I6GPmxpw6BvfFwgOwor5I6EPnRpw6FvfFwgOwor5I27Pnh1xINufFwgOwor5I26Pmh1w6FufFwgOwor5I22PmTDsm5nfFwgOwor5I2zPmNodcOyfFwgOwor5I2uPnpow6BvfFwgOwor5I2hPmxpw6BvfFwgOwor5I2fPnrDsm5nfFwgOwor5I2cPnpow6BvfFwgOwor5I2aPmzDoG5nfFwgOwor5I2XPnh1w6BufFwgOwor5I2UPmjDs25nfFwgOwor5I2LPmNodcOtfFwgOwor5I2JPnFpw6FufFwgOwor5I2IPnDDrW5nfFwgOwor5I2FPmzDrW5nfFwgOwor5I2EPmRpxINufFwgOwor5Iy4Pmp1w6BufFwgOwor5IyvPmd1w6BufFwgOwor5IynPmNow7N1fFwgOwor5IyjPnp1xINufFwgOwor5IyiPmzDrW5nfFwgOwor5IygPnHDrG5nfFwgOwor5IyePmxpxINufFwgOwor5IyOPmx5dcOofFwgOwor5IyFPnTDoW5nfFwgOwor5IyEPmfElW5nfFwgOwor5IyDPnNodcOyfFwgOwor5Iu9PmLElW5nfFwgOwor5Iu8PnTErW5nfFwgOwor5IuePnfEg25nfFwgOwor5IucPnHDrG5nfFwgOwor5IuYPmNodcOyfFwgOwor5IuTPnpow7J1fFwgOwor5IuRPmLErW5nfFwgOwor5IuOPnpow6BufFwgOwor5IuEPnfEg25nfFwgOwor5IuBPmfElW5nfFwgOwor5Iq9Pmd1w6BpfFwgOwor5Iq2Pnpow6hufFwgOwor5Iq0PnFpw6BufFwgOwor5IqyPmNoxINufFwgOwor5IqtPmNow7N1fFwgOwor5IqlPnhpw6BvfFwgOwor5IqcPnR1w6FufFwgOwor5IqOPnF1xINufFwgOwor5IqFPm3DrW5nfFwgOwor5Im8Pmxpw6BvfFwgOwor5Im6PmjDs25nfFwgOwor5Im5PmzDrW5nfFwgOwor5Im4PmJpw6BufFwgOwor5Im0PnLDoW5nfFwgOwor5ImzPnhpxINufFwgOwor5ImvPnhpw6BufFwgOwor5ImlPnPFj25nfFwgOwor5ImaPm3DqW5nfFwgOwor5ImYPmPDs25nfFwgOwor5ImWPmzDrW5nfFwgOwor5ImVPmPDqW5nfFwgOwor5ImOPnTDoW5nfFwgOwor5ImNPmppxINufFwgOwor5ImGPmRpxINvfFwgOwor5ImEPmzDqW5nfFwgOwor5ImBPmzDrW5nfFwgOwor5Ii+PnNodcOyfFwgOwor5Ii2PnLDs25nfFwgOwor5Ii0PnFpw6BufFwgOwor5IitPmh1w6FpfFwgOwor5IikPnFpw6FufFwgOwor5IigPmh1xINufFwgOwor5IibPmt1w6BpfFwgOwor5IiZPnpow7J1fFwgOwor5IiNPm3DoW5nfFwgOwor5IiKPmzDrW5nfFwgOwor5IiHPnpow6BvfFwgOwor5IiDPnpoxINvfFwgOwor5IiCPmLDrG5nfFwgOwor5Ie6PmNow7N1fFwgOwor5IevPnLDs25nfFwgOwor5IeoPmfDsm5nfFwgOwor5IemPnnEg25nfFwgOwor5IegPnpow7J1fFwgOwor5IefPmppw6BufFwgOwor5IecPmxpxINufFwgOwor5IeNPmNodcOyfFwgOwor5IeMPnFpw6BvfFwgOwor5IeHPm3DqW5nfFwgOwor5IeAPnLDs25nfFwgOwor5Ia7PnFpw6BvfFwgOwor5Ia5PnTFj25nfFwgOwor5IavPmNodcOyfFwgOwor5IapPm3DrW5nfFwgOwor5IaoPm3DrW5nfFwgOwor5IamPnNow6hufFwgOwor5IajPmNow6lufFwgOwor5IahPmzDoW5nfFwgOwor5IagPmh1w6BufFwgOwor5IaaPnTDs25nfFwgOwor5IaYPmN1w6FufFwgOwor5IaXPmppw6BvfFwgOwor5IaWPmjDs25nfFwgOwor5IaNPmzDs25nfFwgOwor5IaEPnNow6BufFwgOwor5IaCPmxpw6FufFwgOwor5IW6Pm1pxINvfFwgOwor5IW1PnpodcOzfFwgOwor5IWvPnTDoW5nfFwgOwor5IWuPmPDoG5nfFwgOwor5IWtPnDDoW5nfFwgOwor5IWSPm3DoW5nfFwgOwor5IWQPmppxINufFwgOwor5IWNPmTDsm5nfFwgOwor5IWIPnl1w6BufFwgOwor5IS9PnRpxINufFwgOwor5IS8PnRpxINufFwgOwor5IS7PmNow6FvfFwgOwor5IS5Pm5pw6FufFwgOwor5ISyPmNodcOtfFwgOwor5ISvPmppxINufFwgOwor5IStPm5pw6FufFwgOwor5ISqPmNodcOyfFwgOwor5ISnPnLDqW5nfFwgOwor5ISmPmxpxINvfFwgOwor5ISlPmzDrW5nfFwgOwor5ISgPnNow6BufFwgOwor5ISdPmNoxa1ufFwgOwor5ISZPm3DrW5nfFwgOwor5ISYPnDDqW5nfFwgOwor5ISTPmjDqW5nfFwgOwor5ISQPnF1w6BufFwgOwor5ISMPnpodcOsfFwgOwor5ISFPmp1w6BufFwgOwor5IO4Pnhpw6BufFwgOwor5IO3PnnDrW5nfFwgOwor5IO2Pmh1w6FpfFwgOwor5IO1Pm5pxINvfFwgOwor5IOxPnhpw6BufFwgOwor5IOnPmzDs25nfFwgOwor5IOdPnFpw6BvfFwgOwor5IObPmxpw6FufFwgOwor5IOXPmNodcOyfFwgOwor5IOUPmjDs25nfFwgOwor5IONPnpow6BvfFwgOwor5IOHPm1pw6FufFwgOwor5IK9PmRpw6BvfFwgOwor5IKvPmd1w6BpfFwgOwor5IKuPmx5dcOofFwgOwor5IKsPmfFj25nfFwgOwor5IKrPmjDs25nfFwgOwor5IKqPmRpw6BvfFwgOwor5IKnPnpoxJVufFwgOwor5IKmPnpoxJVufFwgOwor5IKiPmTFj25nfFwgOwor5IKcPmLDoG5nfFwgOwor5IKUPnjDrG5nfFwgOwor5IKQPmNodcOyfFwgOwor5IKOPnp1xINufFwgOwor5IKIPnTDs25nfFwgOwor5IKHPm7DoW5nfFwgOwor5IKDPmppw6BvfFwgOwor5IKBPmNow6FufFwgOwor5IG4Pm7Ds25nfFwgOwor5IG2PmppxINvfFwgOwor5IG1PmJpxINufFwgOwor5IG0PnpoxINufFwgOwor5IGzPm3Eg25nfFwgOwor5IGuPnFpw6FufFwgOwor5IGsPmPDqW5nfFwgOwor5IGnPm1pw6FvfFwgOwor5IGiPnh1w6FufFwgOwor5IGgPmxpw6FufFwgOwor5IGdPnnDrW5nfFwgOwor5IGRPnnDoW5nfFwgOwor5IGQPnnDrG5nfFwgOwor5IGEPnjDrG5nfFwgOwor5IGCPnhpw6BufFwgOwor5IGBPmzEg25nfFwgOwor5IC2PmzEg25nfFwgOwor5IC1PnNow7lufFwgOwor5IC0PnnErW5nfFwgOwor5ICuPm3DoW5nfFwgOwor5ICsPnF1w6FufFwgOwor5ICqPmjDoW5nfFwgOwor5ICoPmh1w6BufFwgOwor5ICnPmjFj25nfFwgOwor5IClPnNodcOyfFwgOwor5ICiPnNow7lufFwgOwor5IChPmNow6BufFwgOwor5ICTPmh1w6BufFwgOwor5ICPPnhpw6BufFwgOwor5ICOPm1pxINufFwgOwor5ICKPmppxINvfFwgOwor5ICJPnFpw6FvfFwgOwor5ICEPm3DqW5nfFwgOwor47+uPnnDoG5nfFwgOwor47+qPmh1w6FufFwgOwor47+pPnTEg25nfFwgOwor47+nPmNow7N1fFwgOwor47+mPm7DrG5nfFwgOwor47+kPmNoxa1ufFwgOwor47+YPnnDrW5nfFwgOwor47+FPnhpxINufFwgOwor476/PmzDoW5nfFwgOwor476+Pmxpw6FufFwgOwor4765PmNow6FpfFwgOwor476tPnpow7J1fFwgOwor476mPmLDoG5nfFwgOwor476YPmfElW5nfFwgOwor476XPmzEg25nfFwgOwor476VPnNoxJVufFwgOwor476MPnh1xINufFwgOwor476JPmzDrW5nfFwgOwor4724PmNow6lufFwgOwor4723PnNodcOsfFwgOwor472yPmppxINvfFwgOwor472xPmppxINvfFwgOwor472tPnJ1xINufFwgOwor472rPnnFj25nfFwgOwor472qPnrElW5nfFwgOwor472YPmfEg25nfFwgOwor472HPmd1w6BpfFwgOwor47y/PnTDs25nfFwgOwor47y8PnBpw6FvfFwgOwor47y7PmPDs25nfFwgOwor47y6PnTDoW5nfFwgOwor47y4PnLDs25nfFwgOwor47yxPnJ1xINufFwgOwor47yvPmTDsm5nfFwgOwor47ytPmRpw6BufFwgOwor47ysPnjDrG5nfFwgOwor47yrPmh1w6BufFwgOwor47ynPnTDs25nfFwgOwor47ymPmfFj25nfFwgOwor47yePnDDqG5nfFwgOwor47ybPnjDrW5nfFwgOwor47yZPnpow7J1fFwgOwor47yXPmTErW5nfFwgOwor47yTPmxpw6FufFwgOwor47yRPmxpw6BufFwgOwor47yQPnBpw6FufFwgOwor47u1Pnpow6BufFwgOwor47uwPm1pxINufFwgOwor47uePmJpw6BufFwgOwor47uPPmzDrW5nfFwgOwor47uKPm3DoW5nfFwgOwor47uCPnDDrW5nfFwgOwor47q5PmJpw6BufFwgOwor47q4PnDDrW5nfFwgOwor47qxPnLDqW5nfFwgOwor47qsPmfFj25nfFwgOwor47qmPmxpw6FufFwgOwor47qlPmNow6FufFwgOwor47qfPnpodcOzfFwgOwor47qdPmppw6BufFwgOwor47qYPnpow6BufFwgOwor47qTPnBpw6BvfFwgOwor47qSPmxpw6BvfFwgOwor47qQPnpoxINvfFwgOwor47qOPnLDs25nfFwgOwor47qMPnhpw6BufFwgOwor47qKPnnDoG5nfFwgOwor47m/PmRpxINvfFwgOwor47m+PnBpxINvfFwgOwor47m9PmNoxINufFwgOwor47m2PnTDrW5nfFwgOwor47m1PmrDrG5nfFwgOwor47myPnhpw6BvfFwgOwor47mhPnh1w6FufFwgOwor47maPnnDrW5nfFwgOwor47mZPnnDrW5nfFwgOwor47mWPmh1w6BufFwgOwor47mMPmNoxINufFwgOwor47mJPnl1w6FufFwgOwor47mFPnrFj25nfFwgOwor47izPmzDrW5nfFwgOwor47irPnFpw6FufFwgOwor47iqPmNow7pufFwgOwor47ilPmNow6FufFwgOwor47ikPnBpw6BufFwgOwor47igPnRpxINvfFwgOwor47icPmvDsm5nfFwgOwor47ibPnNow6FvfFwgOwor47iXPnTDs25nfFwgOwor47iRPmN1w6BufFwgOwor47iDPmRpxINufFwgOwor47e5PnNow6BvfFwgOwor47e3Pmp1xINufFwgOwor47evPmLDqG5nfFwgOwor47erPnHErW5nfFwgOwor47eWPnpow6BvfFwgOwor47eTPnrFj25nfFwgOwor47ePPnnFj25nfFwgOwor47eHPmd1w6BpfFwgOwor47eFPmNoxINvfFwgOwor47a6PnRpw6BufFwgOwor47a5PmjDsm5nfFwgOwor47a2Pm7Ds25nfFwgOwor47ayPnnDsm5nfFwgOwor47arPmxpxINvfFwgOwor47akPmNoxINvfFwgOwor47ajPmNow6FufFwgOwor47aePm7Eg25nfFwgOwor47aYPmRpw6BufFwgOwor47aVPmppxINufFwgOwor47aTPmPDoW5nfFwgOwor47aSPnNoxINufFwgOwor47aRPmxpw6BufFwgOwor47aOPmh1w6FufFwgOwor47aNPnhpxINufFwgOwor47aMPmxpw6FufFwgOwor47aHPmjDqW5nfFwgOwor47W+PmrDrG5nfFwgOwor47W5Pmh1w6FufFwgOwor47W3PmJpw6BufFwgOwor47W0PmPDoW5nfFwgOwor47WzPmxpw6FvfFwgOwor47WxPnBpxINvfFwgOwor47WvPmbDqW5nfFwgOwor47WuPmNow7pufFwgOwor47WsPnnDrW5nfFwgOwor47WqPnhpw6FufFwgOwor47WkPmRpw6BufFwgOwor47WePmNow7N1fFwgOwor47WVPnNow6hufFwgOwor47WMPmNow6BufFwgOwor47WKPnNoxJVufFwgOwor47WAPmN1w6BufFwgOwor47S/PmTErW5nfFwgOwor47S0PmNow6lufFwgOwor47SzPmzFj25nfFwgOwor47SwPm7DqW5nfFwgOwor47SoPnpow6hufFwgOwor47SmPmd1w6BufFwgOwor47SlPnFpw6BvfFwgOwor47ScPmJpw6BufFwgOwor47SQPm1pw6BufFwgOwor47SPPnfEg25nfFwgOwor47SEPnnDrW5nfFwgOwor47O5PnfEg25nfFwgOwor47OuPm5pw6BvfFwgOwor47OtPnhpw6FufFwgOwor47OsPnh1w6FufFwgOwor47OoPmppxINufFwgOwor47OZPnh1w6BufFwgOwor47OXPmNow6BpfFwgOwor47OSPmJpw6BufFwgOwor47OOPmJpw6BufFwgOwor47OFPmppxINvfFwgOwor47OEPnhpw6FufFwgOwor47K/PnfEg25nfFwgOwor47K9Pm5pw6BufFwgOwor47KwPm7DrW5nfFwgOwor47KoPnLDs25nfFwgOwor47KlPnTDoW5nfFwgOwor47KiPmJpw6BufFwgOwor47KfPnnErW5nfFwgOwor47KdPnLFj25nfFwgOwor47KTPnLDs25nfFwgOwor47KMPm7DqG5nfFwgOwor47KLPmNodcOyfFwgOwor47KIPnNow6FvfFwgOwor47KGPmzDrW5nfFwgOwor47KAPmNow6lufFwgOwor47G2PmLDqG5nfFwgOwor47GuPmt1w6BpfFwgOwor47GtPmR1w6BufFwgOwor47GoPmxpw6BufFwgOwor47GlPmzDrW5nfFwgOwor47GiPmzDoW5nfFwgOwor47GNPmx1w6FufFwgOwor47C+Pmppw6BvfFwgOwor47C4PmxpxINufFwgOwor47CuPnNow6hufFwgOwor47CgPmvDoG5nfFwgOwor47CNPmzDs25nfFwgOwor47CIPmxpxINufFwgOwor47CEPmppw6BufFwgOwor47CDPm1pw6FufFwgOwor47CCPnNoxJVufFwgOwor46+6Pmppw6BufFwgOwor46+5PmJpxINvfFwgOwor46+zPnHDrW5nfFwgOwor46+xPmJpxINvfFwgOwor46+vPmfDsm5nfFwgOwor46+sPmxpxINufFwgOwor46+qPmzDrW5nfFwgOwor46+iPnpow6hufFwgOwor46+gPnFpw6BufFwgOwor46+ePmp1w6BufFwgOwor46+YPmt1xINufFwgOwor46+QPmbEg25nfFwgOwor46+LPnnErW5nfFwgOwor46+GPmNoxINufFwgOwor46+BPmLDoG5nfFwgOwor46+APnhpxINufFwgOwor466+PmzEg25nfFwgOwor4664PnPDsm5nfFwgOwor466zPnpow6hufFwgOwor466tPnhpw6FufFwgOwor466hPmd1w6BufFwgOwor466UPnTDs25nfFwgOwor466QPnjErW5nfFwgOwor466MPm1pw6FufFwgOwor466HPnRpw6BufFwgOwor466EPmLEg25nfFwgOwor4627PnTDoW5nfFwgOwor4625Pnhpw6FufFwgOwor462sPnpodcOzfFwgOwor462rPmN1w6FufFwgOwor462kPm5pxINvfFwgOwor462gPnhpxINufFwgOwor462fPmfFj25nfFwgOwor462cPnLDs25nfFwgOwor462TPmJpw6BufFwgOwor462LPmLDoG5nfFwgOwor462HPnl1w6BufFwgOwor462CPmppxINvfFwgOwor462BPnLDqW5nfFwgOwor46y1Pnhpw6FvfFwgOwor46y0PmjFj25nfFwgOwor46yuPmt1w6BpfFwgOwor46ytPmppw6BvfFwgOwor46yhPmzDrW5nfFwgOwor46ygPnNow6BpfFwgOwor46ydPmPDqW5nfFwgOwor46yXPnhpw6BufFwgOwor46yVPnnDoW5nfFwgOwor46yTPnBpw6BvfFwgOwor46ySPm3Eg25nfFwgOwor46yOPnhpxINufFwgOwor46yMPmrDrG5nfFwgOwor46yKPmh1xINufFwgOwor46yJPm51xINufFwgOwor46yHPmh1w6BufFwgOwor46yGPm1pw6FufFwgOwor46yEPmNow6BufFwgOwor46uzPmNow6lufFwgOwor46uwPmzEg25nfFwgOwor46urPnhpxINufFwgOwor46ulPm3ErW5nfFwgOwor46uSPmfFj25nfFwgOwor46uEPnDDoW5nfFwgOwor46uBPmR1w6BufFwgOwor46uAPmTErW5nfFwgOwor46q7Pmp1w6BufFwgOwor46qxPmh1w6BufFwgOwor46quPmzDrW5nfFwgOwor46qsPnpodcOzfFwgOwor46qoPnNow6BufFwgOwor46qjPnFpw6BvfFwgOwor46qiPnNoxINvfFwgOwor46qgPnFpw6BufFwgOwor46qdPmxpw6BufFwgOwor46qbPnpoxJVufFwgOwor46qYPmxpxINufFwgOwor46qVPmRpw6BvfFwgOwor46qOPnNoxINufFwgOwor46qMPnTFj25nfFwgOwor46qHPnhpw6BufFwgOwor46m+PmNodcOtfFwgOwor46mzPnPFj25nfFwgOwor46mwPmppxINvfFwgOwor46muPnFpw6FufFwgOwor46mgPnBpxINvfFwgOwor46mfPnpow6BpfFwgOwor46mbPnR1w6FufFwgOwor46maPm3DqW5nfFwgOwor46mIPnhpw6BufFwgOwor46i+PnnDoG5nfFwgOwor46i2PmNow7N1fFwgOwor46i1PmppxINufFwgOwor46i0Pmppw6BufFwgOwor46imPnPFj25nfFwgOwor46icPnFpw6FufFwgOwor46ibPnNoxINufFwgOwor46iYPnjErW5nfFwgOwor46iVPnnDrW5nfFwgOwor46iEPnpow6BvfFwgOwor46iCPmTFj25nfFwgOwor46iAPmLErW5nfFwgOwor46e8PmJpw6BvfFwgOwor46exPmNow6hufFwgOwor46esPmfFj25nfFwgOwor46emPnh1w6BufFwgOwor46elPnhpxINufFwgOwor46efPmt1xINpfFwgOwor46eUPmd1w6BpfFwgOwor46eQPnPFj25nfFwgOwor46eNPmbEg25nfFwgOwor46eLPnhpxINufFwgOwor46eEPnFpxINufFwgOwor46eCPnRpw6FufFwgOwor46a3PnnFj25nfFwgOwor46auPnFpw6FufFwgOwor46atPmzDrW5nfFwgOwor46alPmh1w6FufFwgOwor46aePmNow7N1fFwgOwor46adPm1pxINvfFwgOwor46aaPmJpxINufFwgOwor46aXPmppw6BufFwgOwor46aVPmzDs25nfFwgOwor46aTPnhpw6BufFwgOwor46aRPmxpxINufFwgOwor46aDPmNoxINufFwgOwor46aBPmxpw6FufFwgOwor46aAPmbDqW5nfFwgOwor46WzPnl1w6FufFwgOwor46WyPnNow6hufFwgOwor46WuPnpow7J1fFwgOwor46WsPnDDoW5nfFwgOwor46WoPmNodcOtfFwgOwor46WnPnNow7lufFwgOwor46WVPmxpw6FufFwgOwor46WQPnl1w6BufFwgOwor46WPPnRpxINufFwgOwor46WKPnDDqW5nfFwgOwor46WGPmRpw6BufFwgOwor46WFPnNow7J1fFwgOwor46WEPmzDrW5nfFwgOwor46S9PmNow7N1fFwgOwor46S2PnDDoW5nfFwgOwor46SqPnl1w6BufFwgOwor46SoPmfFj25nfFwgOwor46SfPmvFj25nfFwgOwor46SaPmjDoW5nfFwgOwor46SPPnTDs25nfFwgOwor46SNPnFpxINvfFwgOwor46SKPnhpw6BvfFwgOwor46SDPmbDoW5nfFwgOwor46SBPm1pxINufFwgOwor46O/PnpodcOzfFwgOwor46O3Pm7DrG5nfFwgOwor46OqPmh1xINufFwgOwor46OkPmppw6BufFwgOwor46OjPnNoxINufFwgOwor46OgPnTDs25nfFwgOwor46OcPnjDrW5nfFwgOwor46OaPnTDs25nfFwgOwor46OSPmPDqG5nfFwgOwor46ORPnLDs25nfFwgOwor46OQPmJpw6BufFwgOwor46OPPmrDrG5nfFwgOwor46OMPnNow6BufFwgOwor46OAPnpow6hufFwgOwor46K+Pmp1w6BufFwgOwor46K6Pnhpw6FufFwgOwor46KsPmjDs25nfFwgOwor46KnPmp1w6BufFwgOwor46KlPmTDsm5nfFwgOwor46KjPmrDrG5nfFwgOwor46KfPmNoxINufFwgOwor46KYPmxpw6FufFwgOwor46KXPnFpw6BvfFwgOwor46KUPnrFj25nfFwgOwor46KNPnnDrW5nfFwgOwor46KGPmNow6FufFwgOwor46KFPmzDsm5nfFwgOwor46KDPmzDoW5nfFwgOwor46G+Pnhpw6BufFwgOwor46G9Pnpow6BvfFwgOwor46G7Pmxpw6BvfFwgOwor46G1PmzDrW5nfFwgOwor46GyPmh1w6FufFwgOwor46GvPnpow6FpfFwgOwor46GpPmx1w6FufFwgOwor46GoPnFpYW58XCA7CivjoaM+bMOzbmd8XCA7CivjoZ0+ZsOobmd8XCA7CivjoZs+bcOhbmd8XCA7CivjoZg+bGnDoW58XCA7CivjoZE+cWnEg298XCA7CivjoYk+eGnDoW58XCA7CivjoL0+dMOzbmd8XCA7CivjoLo+bWnDoW98XCA7CivjoK0+emjEg258XCA7CivjoKE+bmnEg298XCA7CivjoJ0+Y3XDoW58XCA7CivjoJM+bcOpbmd8XCA7CivjoJI+YmnEg298XCA7CivjoJA+amnDoG98XCA7CivjoIk+dMOzbmd8XCA7Civjn78+bcOhbmd8XCA7Civjn70+YmnEg298XCA7Civjn7s+cWnDoG58XCA7Civjn7Y+eXXDoW58XCA7Civjn7U+Z8SDbmd8XCA7Civjn7Q+a3XDoGl8XCA7Civjn7A+bcStbmd8XCA7Civjn6s+cXXDoW58XCA7Civjn6g+cXXDoW58XCA7Civjn6A+Z8SDbmd8XCA7Civjn54+emjDoG58XCA7Civjn5g+dGnDoW98XCA7Civjn5Y+bMOybmd8XCA7Civjn5A+bcSDbmd8XCA7Civjn40+bMOhbmd8XCA7Civjn4w+bcOhbmd8XCA7Civjn4U+ecOhbmd8XCA7Civjn4A+bGnDoW58XCA7CivjnrI+ecOybmd8XCA7CivjnqE+emjEg258XCA7Civjnp8+ZGnDoG58XCA7Civjnpk+bmnDoG98XCA7Civjnos+bmnEg258XCA7Civjnb0+Y2h1w618XCA7Civjnbo+bGnDoW58XCA7Civjnbg+YmnDoG58XCA7CivjnbE+bcOobmd8XCA7CivjnbA+bWnDoW58XCA7Civjna8+cWnDoW98XCA7Civjna0+eMStbmd8XCA7Civjnas+bMOzbmd8XCA7Civjnao+ZGnDoG58XCA7CivjnaA+bcOtbmd8XCA7CivjnZg+ecOzbmd8XCA7CivjnZc+bMOhbmd8XCA7CivjnZU+bsOtbmd8XCA7CivjnZE+bcOhbmd8XCA7CivjnZA+csOzbmd8XCA7CivjnY4+ZMOsbmd8XCA7CivjnYs+bGnDoW98XCA7CivjnYo+c2jFj3V8XCA7CivjnYg+bHXDoW58XCA7CivjnYc+Y2jDum58XCA7CivjnYQ+Y2jDum58XCA7CivjnLs+bGnDoG58XCA7CivjnLU+bmnEg298XCA7CivjnLQ+bcOobmd8XCA7CivjnLM+aHXDoWl8XCA7CivjnLI+d8SVbmd8XCA7CivjnLE+ZMOybmd8XCA7CivjnKo+eGnEg258XCA7CivjnKQ+c2jElW58XCA7CivjnJ4+cWnDoG58XCA7CivjnJU+bGnDoW58XCA7CivjnI0+dMOhbmd8XCA7CivjnIo+cMOgbmd8XCA7CivjnIM+bGnDoG58XCA7Civjm74+eGnDoW58XCA7Civjm7k+cGnDoW58XCA7Civjm7Y+Y2jDs3V8XCA7Civjm68+bWnEg258XCA7Civjm6k+emjDs3V8XCA7Civjm54+bMOybmd8XCA7Civjm5o+dMWPbmd8XCA7Civjm5Q+cMOpbmd8XCA7Civjmr0+cWnEg298XCA7CivjmrI+ZGnEg258XCA7CivjmqM+eGnDoW98XCA7Civjmp8+Y2h1w7J8XCA7Civjmp4+bcSVbmd8XCA7CivjmpI+c2jEg258XCA7CivjmoU+bMOzbmd8XCA7CivjmoI+csOhbmd8XCA7CivjmoE+cWnDoW98XCA7Civjmbs+Y2jDoW58XCA7Civjmbk+bcOpbmd8XCA7CivjmbY+dMOhbmd8XCA7CivjmbQ+Y2jDoG58XCA7CivjmbI+ecWPbmd8XCA7Civjmak+bGnDoW98XCA7CivjmZ8+bMSDbmd8XCA7CivjmZk+bMWPbmd8XCA7CivjmZc+a3XDoGl8XCA7CivjmZU+a3XDoGl8XCA7CivjmYk+dGnEg258XCA7CivjmYE+bcSDbmd8XCA7CivjmLg+esOgbmd8XCA7CivjmKs+asStbmd8XCA7CivjmKM+eHXDoW58XCA7CivjmKI+d8SVbmd8XCA7CivjmJ0+bmnEg258XCA7CivjmIs+eGnDoW58XCA7CivjmIc+csOzbmd8XCA7CivjmIU+eGnDoW58XCA7Civjl6I+ZMOybmd8XCA7Civjl5s+eGnDoG98XCA7Civjlro+Y2jFrW58XCA7Civjlq0+dGnEg258XCA7Civjlqs+bMOtbmd8XCA7CivjlqY+ZMWPbmd8XCA7Civjlp8+c2jDsnV8XCA7CivjlpM+aMOzbmd8XCA7CivjlbQ+Y2jDqW58XCA7Civjlaw+c8Oybmd8XCA7Civjlas+ZsSDbmd8XCA7CivjlZo+emjEg298XCA7CivjlZU+aHXDoG58XCA7CivjlYs+asOsbmd8XCA7CivjlLY+Z8Oybmd8XCA7CivjlLU+eGnDoG58XCA7CivjlLA+aMOpbmd8XCA7CivjlK8+c3XEg258XCA7CivjlKY+ecSDbmd8XCA7CivjlKQ+c2jElW58XCA7CivjlJ4+a3XDoGl8XCA7CivjlJk+YsSDbmd8XCA7CivjlJM+amnEg258XCA7CivjlIw+emjDsnV8XCA7CivjlIs+amnDoG58XCA7CivjlIY+Y2jDoW58XCA7CivjlIU+eGnDoG98XCA7Civjk7o+amnDoG58XCA7Civjk7I+cGnDoG58XCA7Civjk6o+bMSDbmd8XCA7Civjk6A+ZGnDoG58XCA7Civjk50+eMOtbmd8XCA7Civjk5E+eMOsbmd8XCA7Civjk44+bGnDoW58XCA7Civjk4s+Z8Oybmd8XCA7Civjk4o+ZMOybmd8XCA7Civjk4k+aHXDoG58XCA7Civjk4Q+emjDqG58XCA7Civjk4M+Y2h1w618XCA7Civjk4E+d8SDbmd8XCA7CivjkrA+cXXDoW58XCA7Civjkp8+bmnEg298XCA7Civjkps+ZGnDoG98XCA7Civjkpk+bWnDoW58XCA7Civjkok+dMSDbmd8XCA7CivjkoQ+bsOgbmd8XCA7Civjkb8+dGnDoW98XCA7Civjkb4+eGnDoW98XCA7Civjkb0+dMOhbmd8XCA7Civjkbw+bHl1w6h8XCA7CivjkbM+emjDsnV8XCA7Civjkao+Y2jDoWl8XCA7CivjkaQ+bWnDoW98XCA7CivjkZ8+YsSVbmd8XCA7CivjkZ4+ecOsbmd8XCA7CivjkZ0+bMOybmd8XCA7CivjkYg+ZMOybmd8XCA7CivjkYc+emjDsnV8XCA7CivjkYI+ZsSDbmd8XCA7CivjkLg+cWnDoG58XCA7CivjkLE+emjElW58XCA7CivjkKk+eMOtbmd8XCA7CivjkJw+Y2jDs3V8XCA7CivjkIE+dGnEg258XCA7CivwqLq5PmppYW98XCA7CivmmK8+c2jDrHxcIDsKK+S6uj5yw6lufFwgOwor5ZyoPnrDoGl8XCA7CivmnIk+ecWPdXxcIDsKK+i/mT56aMOofFwgOwor5p2lPmzDoWl8XCA7Civlm70+Z3XDs3xcIDsKK+WIsD5kw6BvfFwgOwor5LusPm3Ek258XCA7CivkuLo+d8OoaXxcIDsKK+WHuj5jaHV8XCA7CivpgZM+ZMOgb3xcIDsKK+aXtj5zaMOtfFwgOwor5bCxPmppw7l8XCA7CivopoE+eWFvfFwgOwor5LiLPnhpw6B8XCA7CivkvJo+Z3XDrHxcIDsKK+S5iz56aGl8XCA7Civov4c+Z3VvfFwgOwor5a62PmppYXxcIDsKK+Wtpj54dcOpfFwgOwor5a+5PmR1w6x8XCA7CivlkI4+aMOydXxcIDsKK+W/gz54aW58XCA7CivlpJo+ZHVvfFwgOwor5aW9PmjEg298XCA7Civpg70+ZG91fFwgOwor54S2PnLDoW58XCA7CivmsqE+bcOpaXxcIDsKK+S6iz5zaMOsfFwgOwor5Y+qPnpoaXxcIDsKK+S9nD56dcOyfFwgOwor55yLPmthbnxcIDsKK+aWhz53w6lufFwgOwor5byAPmthaXxcIDsKK+WNgT5zaMOtfFwgOwor5Li7Pnpoxa18XCA7Civlj4g+ecOydXxcIDsKK+aJgD5zdcWPfFwgOwor5pysPmLElW58XCA7CivlpLQ+dMOzdXxcIDsKK+S4iT5zYW58XCA7CivogIE+bMSDb3xcIDsKK+efpT56aGl8XCA7CivmsJE+bcOtbnxcIDsKK+WIhj5mZW58XCA7CivlpJY+d8OgaXxcIDsKK+S9hj5kw6BufFwgOwor5LqbPnhpZXxcIDsKK+mrmD5nYW98XCA7Civov5s+asOsbnxcIDsKK+Wunj5zaMOtfFwgOwor5ZuePmh1w618XCA7Civnvo4+bcSVaXxcIDsKK+aciD55dcOofFwgOwor6K+dPmh1w6B8XCA7CivogIU+emjElXxcIDsKK+mXrj53w6hufFwgOwor57uZPmfElWl8XCA7Civlvog+aMSVbnxcIDsKK+acgD56dcOsfFwgOwor5pawPnhpbnxcIDsKK+S7gD5zaMOtfFwgOwor5L2NPnfDqGl8XCA7Civlm6A+eWlufFwgOwor6KKrPmLDqGl8XCA7CivotbA+esWPdXxcIDsKK+mXqD5tw6lufFwgOwor5rW3PmjEg2l8XCA7Civlj6M+a8WPdXxcIDsKK+S9vz5zaMStfFwgOwor5YaNPnrDoGl8XCA7CivkuJY+c2jDrHxcIDsKK+S/oT54w6xufFwgOwor5YyXPmLElWl8XCA7CivlhoU+bsOoaXxcIDsKK+WKoD5qaWF8XCA7CivljJY+aHXDoHxcIDsKK+eUsT55w7N1fFwgOwor5Y20PnF1w6h8XCA7Civku6M+ZMOgaXxcIDsKK+WGmz5qdW58XCA7CivlpKo+dMOgaXxcIDsKK+S4hz53w6BufFwgOwor5biCPnNow6x8XCA7CivnnLw+ecSDbnxcIDsKK+WIqz5iacOpfFwgOwor5aSEPmNow7l8XCA7CivmiY0+Y8OhaXxcIDsKK+W4iD5zaGl8XCA7CivkvY8+emjDuXxcIDsKK+S5nT5qacWtfFwgOwor5Y2OPmh1w6F8XCA7CivmiqU+YsOgb3xcIDsKK+a0uz5odcOzfFwgOwor6Zq+Pm7DoW58XCA7CivovaY+Y2hlfFwgOwor55m9PmLDoWl8XCA7CivmhJ8+Z8SDbnxcIDsKK+mHkT5qaW58XCA7Civlj40+ZsSDbnxcIDsKK+WBmj56dcOyfFwgOwor5oiWPmh1w7J8XCA7Civmnpw+Z3XFj3xcIDsKK+S6sj5xaW58XCA7CivnlYw+amnDqHxcIDsKK+S7ij5qaW58XCA7CivliLY+emjDrHxcIDsKK+inoz5qacSVfFwgOwor5Lu7PnLDqG58XCA7Civoh7M+emjDrHxcIDsKK+WPsD50w6FpfFwgOwor5bmyPmdhbnxcIDsKK+aOpT5qaWV8XCA7Civop4k+anXDqXxcIDsKK+ebtD56aMOtfFwgOwor5q+bPm3DoW98XCA7Civmnpc+bMOtbnxcIDsKK+WNlz5uw6FufFwgOwor6K6kPnLDqG58XCA7Civorro+bMO5bnxcIDsKK+eZvj5ixINpfFwgOwor5ZCDPmNoaXxcIDsKK+aAjj56xJVufFwgOwor56S+PnNow6h8XCA7CivmnK8+c2jDuXxcIDsKK+e7kz5qacOpfFwgOwor5YWtPmxpw7l8XCA7CivmjIc+emjErXxcIDsKK+mdnj5mZWl8XCA7CivmtYE+bGnDunxcIDsKK+avjz5txJVpfFwgOwor6ZifPmR1w6x8XCA7Civot58+Z2VufFwgOwor5bimPmTDoGl8XCA7CivoirE+aHVhfFwgOwor5p2hPmzDoGl8XCA7CivoqIA+ecOhbnxcIDsKK+ivpT5nYWl8XCA7Civov5E+asOsbnxcIDsKK+eVmT5sacO6fFwgOwor5rK7Pnpow6x8XCA7CivlhrM+anXDqXxcIDsKK+S/nT5ixINvfFwgOwor5YqePmLDoG58XCA7Civov5A+ecO5bnxcIDsKK+WNij5iw6BufFwgOwor5YCZPmjDsnV8XCA7Civlrow+d8OhbnxcIDsKK+axgj5xacO6fFwgOwor5ZOBPnDErW58XCA7Civlo6s+c2jDrHxcIDsKK+WRij5nw6BvfFwgOwor5rS+PnDDoGl8XCA7Civmu6E+bcSDbnxcIDsKK+W8jz5zaMOsfFwgOwor6K+GPnNow6x8XCA7CivlgJI+ZMSDb3xcIDsKK+acqj53w6hpfFwgOwor5oyBPmNow618XCA7Civorr4+c2jDqHxcIDsKK+Wniz5zaMStfFwgOwor54mIPmLEg258XCA7Civotoo+eXXDqHxcIDsKK+WPsj5zaMStfFwgOwor56CUPnnDoW58XCA7Civlj4s+ecWPdXxcIDsKK+WtqT5ow6FpfFwgOwor5pS5PmfEg2l8XCA7Civlp5Q+d2VpfFwgOwor5pepPnrEg298XCA7Civpn7M+eWlufFwgOwor54GrPmh1xY98XCA7CivljZU+ZGFufFwgOwor5a+8PmTEg298XCA7CivlpLE+c2hpfFwgOwor55+zPmTDoG58XCA7Civoi6U+cnXDsnxcIDsKK+W/lz56aMOsfFwgOwor6aOePmZlaXxcIDsKK+eptj5qaXV8XCA7CivljIU+YmFvfFwgOwor6YCgPnrDoG98XCA7Civop4Y+c2jDrHxcIDsKK+iZvT5zdWl8XCA7CivlnZA+enXDsnxcIDsKK+WunT5ixINvfFwgOwor6LCIPnTDoW58XCA7Civpu5E+aGVpfFwgOwor5LiUPnFpxJV8XCA7Civpmo8+c3XDrXxcIDsKK+WwvT5qxK1ufFwgOwor5p2APnNoYXxcIDsKK+W+rj53ZWl8XCA7CivmoLk+Z2VufFwgOwor57uIPmNow7l8XCA7CivliIc+cWllfFwgOwor56S6PnNow6x8XCA7CivnlLc+bsOhbnxcIDsKK+azqD56aMO5fFwgOwor6LS5PmbDqGl8XCA7CivnvqQ+ccO6bnxcIDsKK+aOqD50dWl8XCA7CivmmZo+d8SDbnxcIDsKK+W+hT5kYWl8XCA7CivmlK8+emhpfFwgOwor5Y+3PmjDoW98XCA7Civnu50+anXDqXxcIDsKK+WPgj5jYW58XCA7CivliIo+a2FufFwgOwor57G7PmzDqGl8XCA7CivlpIc+YsOoaXxcIDsKK+WKvz5zaMOsfFwgOwor6IisPmJhbnxcIDsKK+S7tz5qacOgfFwgOwor6ISRPm7Eg298XCA7Civop4Q+Z3VpfFwgOwor56GuPnF1w6h8XCA7Civms70+ZHXDs3xcIDsKK+WtmD5jw7pufFwgOwor5a6zPmjDoGl8XCA7CivoioI+amnDqXxcIDsKK+W3pj56dcWPfFwgOwor5LmFPmppxa18XCA7CivlsoE+c3XDrHxcIDsKK+mFkj5qacWtfFwgOwor5YidPmNodXxcIDsKK+a4uD55w7N1fFwgOwor6ZOBPnRpxJV8XCA7CivpmaQ+Y2jDunxcIDsKK+S7vT5mw6hufFwgOwor5pWiPmfEg258XCA7CivooYA+eGnElXxcIDsKK+aKlT50w7N1fFwgOwor6Ze7PnfDqW58XCA7Civmlpc+ZMWPdXxcIDsKK+WPsz55w7J1fFwgOwor6aWtPmbDoG58XCA7CivkupE+ecO6bnxcIDsKK+iAgz5rxINvfFwgOwor5p2RPmN1bnxcIDsKK+WIgD5kYW98XCA7Civku4U+asStbnxcIDsKK+afpT5jaMOhfFwgOwor5byVPnnErW58XCA7CivnvZc+bHVvfFwgOwor5LmwPm3Eg2l8XCA7Civog4w+YmVpfFwgOwor5Y2rPnfDqGl8XCA7CivliJc+bGnDqHxcIDsKK+WupD5zaMOsfFwgOwor5YiYPmxpw7p8XCA7CivmjpI+cMOhaXxcIDsKK+agkT5zaMO5fFwgOwor6IGMPnpow618XCA7CivmgIE+dMOgaXxcIDsKK+WNsD55w6xufFwgOwor5aSPPnhpw6B8XCA7Civliqk+emjDuXxcIDsKK+eQgz5xacO6fFwgOwor5YiSPmh1w6F8XCA7CivotKg+emjDrXxcIDsKK+iHtD56aMOsfFwgOwor5rm+PndhbnxcIDsKK+a8lD55xINufFwgOwor6Z+mPnfDqWl8XCA7Civlm7Q+d8OpaXxcIDsKK+WQpj5mxY91fFwgOwor6YeHPmPEg2l8XCA7Civpo58+c2jDrXxcIDsKK+Wknz5nw7J1fFwgOwor6LWbPnPDoGl8XCA7CivlgYc+amnEg3xcIDsKK+WnkD5qacSVfFwgOwor5qW8PmzDs3V8XCA7Civojrc+aHXDsnxcIDsKK+WtmT5zdW58XCA7Civor5c+c2hpfFwgOwor6K+VPnNow6x8XCA7CivosKI+eGnDqHxcIDsKK+mqjD55w6BufFwgOwor5q2iPnpoxK18XCA7CivlsZ4+c2jFrXxcIDsKK+mDrT5ndW98XCA7CivlqIE+d2VpfFwgOwor5oWiPm3DoG58XCA7Civluqc+enXDsnxcIDsKK+e9qj56dcOsfFwgOwor6KGXPmppZXxcIDsKK+aWvT5zaGl8XCA7CivojYk+Y8SDb3xcIDsKK+afkD5txY91fFwgOwor6ZO2PnnDrW58XCA7CivlgLw+emjDrXxcIDsKK+ePrT5iYW58XCA7Civkv64+eGl1fFwgOwor5beuPmNoYXxcIDsKK+WRsz53w6hpfFwgOwor57uHPnpoaXxcIDsKK+iNrz55w6BvfFwgOwor5b2SPmd1aXxcIDsKK+aVkT5qacO5fFwgOwor6YCAPnR1w6x8XCA7CivlirM+bMOhb3xcIDsKK+Wpmj5odW58XCA7Civnu5w+bHXDsnxcIDsKK+e/uz5mYW58XCA7Civot5E+cMSDb3xcIDsKK+WPtj54acOpfFwgOwor5Z2HPmp1bnxcIDsKK+eDiD5sacOofFwgOwor6LW2PmfEg258XCA7CivlhbA+bMOhbnxcIDsKK+eUuz5odcOgfFwgOwor6aG/PmTDuW58XCA7CivliKQ+cMOgbnxcIDsKK+WYtD56dcStfFwgOwor5a+fPmNow6F8XCA7CivkvJg+eW91fFwgOwor5oKoPm7DrW58XCA7Civng58+eWFufFwgOwor6Zi2PmppZXxcIDsKK+aLhT5kw6BufFwgOwor5pWjPnPEg258XCA7Civmnb8+YsSDbnxcIDsKK+WmuT5tw6hpfFwgOwor5Li0PmzDrW58XCA7CivmkYc+ecOhb3xcIDsKK+aehD5nb3V8XCA7Civnjqk+d8OhbnxcIDsKK+eKrz5mw6BufFwgOwor6IKvPmvElW58XCA7CivmjKU+aHVpfFwgOwor5ripPndlbnxcIDsKK+iCiT5yw7J1fFwgOwor57q4PnpoxK18XCA7Civlr7s+eMO6bnxcIDsKK+aymT5zaGF8XCA7CivljZY+bcOgaXxcIDsKK+iMgz5mw6BufFwgOwor6Z2gPmvDoG98XCA7CivmnYI+Z8SDbnxcIDsKK+i0tT5ndcOsfFwgOwor56i/PmfEg298XCA7Civmi40+cGFpfFwgOwor5penPmppw7l8XCA7Civmsrk+ecOzdXxcIDsKK+aJrD5yw7N1fFwgOwor6ZuqPnh1xJV8XCA7Civoj5w+Y8OgaXxcIDsKK+eJjD5ww6FpfFwgOwor54mbPm5pw7p8XCA7CivohLE+dHVvfFwgOwor5by5PmTDoG58XCA7Civnva4+emjDrHxcIDsKK+almj5jaMWtfFwgOwor5pm6Pnpow6x8XCA7Civlsps+ZMSDb3xcIDsKK+aKsT5iw6BvfFwgOwor6L29PnrDoGl8XCA7CivotKU+YsOgaXxcIDsKK+mAgj5zaMOsfFwgOwor54i5PmRpZXxcIDsKK+S7iz5qacOofFwgOwor5ousPmt1w7J8XCA7CivlpZQ+YmVufFwgOwor5b+NPnLElW58XCA7Civnm5g+cMOhbnxcIDsKK+iurz54w7lufFwgOwor6YWNPnDDqGl8XCA7CivnpoE+amlufFwgOwor57SiPnN1xY98XCA7CivmnrY+amnDoHxcIDsKK+aJmD50dW98XCA7CivkvJk+aHXFj3xcIDsKK+avqz5ow6FvfFwgOwor5aWXPnTDoG98XCA7CivpgIM+dMOhb3xcIDsKK+i+kz5zaHV8XCA7Civlm7A+a8O5bnxcIDsKK+azqj5sw6hpfFwgOwor54afPnNow7p8XCA7CivotKI+Y8OhaXxcIDsKK+msvD5ndcStfFwgOwor56eLPnFpdXxcIDsKK+engD54acO5fFwgOwor5pCePmfEg298XCA7CivmnLE+emh1fFwgOwor5omnPnpow618XCA7CivmgrI+YmVpfFwgOwor6L6IPmLDqGl8XCA7CivpmpA+ecStbnxcIDsKK+mXuT5uw6BvfFwgOwor5p2QPmPDoWl8XCA7Civohb8+dHXErXxcIDsKK+i/sD5zaMO5fFwgOwor5bCKPnp1bnxcIDsKK+WAnz5qacOofFwgOwor5oqYPnNow6l8XCA7CivpgZc+d8OoaXxcIDsKK+aatD5iw6BvfFwgOwor57y6PnF1ZXxcIDsKK+aOoj50w6BufFwgOwor6LSnPmh1w7J8XCA7CivkvJ8+d8SVaXxcIDsKK+WQmz5qdW58XCA7Civlh6E+ZsOhbnxcIDsKK+WNsT53ZWl8XCA7Civlvak+Y8SDaXxcIDsKK+adnz5zaMO5fFwgOwor6LCTPnfDqGl8XCA7CivmpoI+Z8OgaXxcIDsKK+WwhD5zaMOofFwgOwor5p2vPmJlaXxcIDsKK+mAjz50w7J1fFwgOwor6YKuPnnDs3V8XCA7CivkvJE+eGl1fFwgOwor5Y+5PnTDoG58XCA7Civni5c+Z8WPdXxcIDsKK+WBtz50b3V8XCA7CivpmLQ+eWlufFwgOwor5oucPmLDoGl8XCA7Civljpo+aMOydXxcIDsKK+S4uT5kYW58XCA7CivmtJs+bHXDsnxcIDsKK+WWij5oxINufFwgOwor6L2uPmzDum58XCA7CivlpbY+bsSDaXxcIDsKK+a3oT5kw6BufFwgOwor6K6tPnjDuW58XCA7Civph4o+c2jDrHxcIDsKK+ivuD5kw7J1fFwgOwor5ZSvPnfDqWl8XCA7CivlpLo+ZHXDs3xcIDsKK+mAkD56aMO6fFwgOwor54eVPnlhbnxcIDsKK+WRhj5kYWl8XCA7Civnm5Y+Z8OgaXxcIDsKK+mYhT55dcOofFwgOwor6LStPmfDsnV8XCA7CivmjII+Z3XDoHxcIDsKK+aBqD5ow6hufFwgOwor6IiNPnNoxJV8XCA7Civnq7k+emjDunxcIDsKK+W8sT5ydcOyfFwgOwor5ZCrPmjDoW58XCA7CivlnYA+emjErXxcIDsKK+aRhj5ixINpfFwgOwor55WqPmZhbnxcIDsKK+a3tz5ow7pufFwgOwor6KKLPmTDoGl8XCA7CivotZ4+esOgbnxcIDsKK+iMtj5jaMOhfFwgOwor56izPnfElW58XCA7CivmsYc+aHXDrHxcIDsKK+Wxij5qacOofFwgOwor6L+5PmR1aXxcIDsKK+mbtz5sw6lpfFwgOwor5a+SPmjDoW58XCA7Civpga0+emFvfFwgOwor5p+UPnLDs3V8XCA7CivmiLQ+ZMOgaXxcIDsKK+ixqj5ow6FvfFwgOwor55GePnJ1w6x8XCA7Civmk40+Y2FvfFwgOwor6IWwPnlhb3xcIDsKK+aihT5tw6lpfFwgOwor5LymPmzDum58XCA7Civor7o+bnXDsnxcIDsKK+auiz5jw6FufFwgOwor5bu2PnnDoW58XCA7Civov4U+eMO5bnxcIDsKK+eBvj56YWl8XCA7CivlsrM+eXXDqHxcIDsKK+ePoD56aHV8XCA7Civlj5Q+c2h1fFwgOwor6LCLPm3Ds3V8XCA7CivnoYA+Y2jFrXxcIDsKK+S7gT5yw6lufFwgOwor5o2fPnPFrW58XCA7CivmlY8+bcStbnxcIDsKK+e0rz5sw6lpfFwgOwor5Ly0PmLDoG58XCA7CivlpYs+ZsOobnxcIDsKK+iDhj5kxINufFwgOwor54OmPmbDoW58XCA7Civnirk+ZmFufFwgOwor5Z+5PnDDqWl8XCA7CivkuYM+bsSDaXxcIDsKK+Wdpj50xINufFwgOwor5b6MPmjDsnV8XCA7CivnnIk+bcOpaXxcIDsKK+mkkD5jYW58XCA7Civmiqw+dMOhaXxcIDsKK+WGkj5tw6BvfFwgOwor5rGXPmjDoG58XCA7CivngbA+aHVpfFwgOwor6Z+pPmjDoW58XCA7CivmvKs+bcOgbnxcIDsKK+ayvz55w6FufFwgOwor6KKWPnhpw7l8XCA7Civml6Y+ZMOgbnxcIDsKK+aJqz5zxINvfFwgOwor5bCkPnnDs3V8XCA7Civngq4+cMOgb3xcIDsKK+eilz53xINufFwgOwor6LS0PnRpZXxcIDsKK+aPkj5jaGF8XCA7Civmu5o+Z8WtbnxcIDsKK+i0nT5iw6hpfFwgOwor5ramPnLDuW58XCA7CivmsI8+c2jDrHxcIDsKK+aJqT5rdcOyfFwgOwor5qCPPmzDoW58XCA7Civlk7I+emjDqXxcIDsKK+Wghj5kdWl8XCA7Civkv6k+bGnEg3xcIDsKK+iTnT5sw6FufFwgOwor6L6bPnhpbnxcIDsKK+mZqj5ww6lpfFwgOwor6JuLPmTDoG58XCA7Civpopw+ecOhbnxcIDsKK+i0qz5ww61ufFwgOwor5p2wPmppw6l8XCA7Civlv6c+eW91fFwgOwor6LKMPm3DoG98XCA7CivloZ4+c2FpfFwgOwor5qOuPnNlbnxcIDsKK+e5gT5mw6FufFwgOwor56KOPnN1w6x8XCA7CivmtKU+amlufFwgOwor5L6gPnhpw6F8XCA7Civov58+Y2jDrXxcIDsKK+i+iT5odWl8XCA7Civni6A+aMSVbnxcIDsKK+e8qT5zdW98XCA7CivnqbQ+eHXDqXxcIDsKK+W+hD5kYWl8XCA7CivotZY+ZMOgbnxcIDsKK+aEpD5mw6hufFwgOwor6K+iPnjDum58XCA7Civmg6g+Y8SDbnxcIDsKK+m6pj5tw6BpfFwgOwor5YCNPmLDqGl8XCA7CivmiKo+amnDqXxcIDsKK+afkz5yxINufFwgOwor5p+zPmxpxa18XCA7Civmtok+c2jDqHxcIDsKK+i6sj5kdcWPfFwgOwor6KOBPmPDoWl8XCA7CivpnJ4+eGnDoXxcIDsKK+eMqj56aHV8XCA7CivnrZE+emjDunxcIDsKK+S/ij5qw7lufFwgOwor6Z6LPnhpw6l8XCA7CivkvrU+cWlufFwgOwor5qyjPnhpbnxcIDsKK+Wqkj5tw6lpfFwgOwor6a2CPmjDum58XCA7Civmnp0+emhpfFwgOwor55SyPmppxIN8XCA7Civmi5Y+dHVvfFwgOwor6IiSPnNodXxcIDsKK+aDoD5odcOsfFwgOwor5piPPmh1bnxcIDsKK+aIkj5qacOofFwgOwor5oWnPmh1w6x8XCA7CivmoYM+dMOhb3xcIDsKK+i1pD5jaMOsfFwgOwor54OCPmzDoG58XCA7Civmjqo+Y3XDsnxcIDsKK+azsD50w6BpfFwgOwor5bC4PnNoaXxcIDsKK+auij5zaHV8XCA7CivmhbA+d8OoaXxcIDsKK+Wdmz50w6FufFwgOwor55SYPmdhbnxcIDsKK+WSrD55xINvfFwgOwor54K4Pnpow6F8XCA7Civppa4+ecStbnxcIDsKK+elnT56aMO5fFwgOwor54miPmzDoW98XCA7CivmoYI+Z3XDrHxcIDsKK+Wwvj53xJVpfFwgOwor5oGwPnFpw6B8XCA7Civnn5s+bcOhb3xcIDsKK+Wuvj5iaW58XCA7Civnsok+ZsSVbnxcIDsKK+i0vD56w6lpfFwgOwor55u+PmTDuW58XCA7Civmlpw+eGnDqXxcIDsKK+ijgj5sacOofFwgOwor5paQPmbElWl8XCA7Civlup8+ZsOoaXxcIDsKK+W9uz5jaMOofFwgOwor5pakPmppbnxcIDsKK+actT5kdcWPfFwgOwor5L2zPmppYXxcIDsKK+eahj5qaWV8XCA7Civmr4E+aHXErXxcIDsKK+ibhz5zaMOpfFwgOwor5pCsPmJhbnxcIDsKK+iIhT5qacO5fFwgOwor5bm9PnlvdXxcIDsKK+eQtD5xw61ufFwgOwor6IGYPnDDrG58XCA7CivlvK8+d2FufFwgOwor6L+UPmbEg258XCA7Civov50+d8OpaXxcIDsKK+S6jz5rdWl8XCA7CivkuKI+ZGl1fFwgOwor6a2PPnfDqGl8XCA7CivogJA+bsOgaXxcIDsKK+S9qT5ww6hpfFwgOwor5YK7PnNoxIN8XCA7Civnu5U+csOgb3xcIDsKK+enpj5xw61ufFwgOwor5pioPnp1w7N8XCA7CivmmoI+esOgbnxcIDsKK+e9sj5zaMWtfFwgOwor54ycPmNhaXxcIDsKK+iAgD55w6BvfFwgOwor6LGGPmTDsnV8XCA7Civpl7c+bWVufFwgOwor5rObPmbDoG58XCA7CivmgpQ+aHXErXxcIDsKK+eIhj5iw6BvfFwgOwor5bm8PnnDsnV8XCA7CivlpLk+amlhfFwgOwor6YKAPnlhb3xcIDsKK+WFgT55xa1ufFwgOwor5oG8Pm7Eg298XCA7CivlsLo+Y2jElXxcIDsKK+S+jT5zaMOsfFwgOwor5omtPm5pxa18XCA7Civoj7I+ZmVpfFwgOwor5aWPPnrDsnV8XCA7Civmrrc+eWFufFwgOwor5Z+LPm3DoWl8XCA7Civnm7w+cMOgbnxcIDsKK+WQnz55w61ufFwgOwor6LeoPmt1w6B8XCA7Civphok+enXDrHxcIDsKK+aOqT55xINufFwgOwor5o+tPmppZXxcIDsKK+WIgz5yw6hufFwgOwor5bOhPnhpw6F8XCA7Civlh68+a8SDaXxcIDsKK+S4kD5nw6BpfFwgOwor54yrPm1hb3xcIDsKK+a2mz50YW98XCA7Civmupw+bGl1fFwgOwor6ZSFPmd1b3xcIDsKK+WliD5uw6BpfFwgOwor5ou+PnNow618XCA7CivohIk+bcOgaXxcIDsKK+mUgT5zdcWPfFwgOwor6YK7PmzDrW58XCA7CivmgaI+aHVpfFwgOwor56CNPmvEg258XCA7Civpqb4+amnDoHxcIDsKK+eluD5odcOyfFwgOwor5pu5PmPDoW98XCA7CivmipY+ZMWPdXxcIDsKK+e+nj54aXV8XCA7Civmips+bmnDuXxcIDsKK+aDkT5odcOyfFwgOwor6IKlPmbDqWl8XCA7Civog54+YmFvfFwgOwor6ZiUPmt1w7J8XCA7Civli6Q+ccOtbnxcIDsKK+W4vT5tw6BvfFwgOwor5pKkPmNow6h8XCA7CivpopE+cMOtbnxcIDsKK+iOsT5sw6FpfFwgOwor5aCqPmthbnxcIDsKK+WvuD5jw7lufFwgOwor5behPnjDum58XCA7CivmiaM+a8OydXxcIDsKK+axoD5jaMOtfFwgOwor5auBPmppw6B8XCA7Civmnpo+bcOpaXxcIDsKK+eTnD5ndWF8XCA7Civot4w+ZGllfFwgOwor5omvPmNoxJV8XCA7CivplKY+asStbnxcIDsKK+mAij5zaHV8XCA7CivotZQ+cMOpaXxcIDsKK+aYhj5rdW58XCA7Civmn48+YsSDaXxcIDsKK+mptj5zaMStfFwgOwor5qSNPnpow618XCA7Civnur0+bmnFrXxcIDsKK+aNtz5qacOpfFwgOwor6ZSQPmR1w6x8XCA7Civkub4+Z2FufFwgOwor6ZyNPmh1w7J8XCA7Civmub8+c2hpfFwgOwor552BPnN1b3xcIDsKK+aCoD55b3V8XCA7Civmsp8+Z291fFwgOwor6Zm2PnTDoW98XCA7CivmtZE+aMO6bnxcIDsKK+mpsD5jaMOtfFwgOwor5ou8PnBpbnxcIDsKK+mCqj54acOpfFwgOwor6ISGPmN1w6x8XCA7Civns58+emFvfFwgOwor5omuPmLDoG58XCA7CivppbA+c2jDrHxcIDsKK+aRhD5uacOofFwgOwor5Zi/PmhlaXxcIDsKK+aXqD56aMStfFwgOwor57+gPmN1w6x8XCA7CivppbE+YsSDb3xcIDsKK+WKqz5qacOpfFwgOwor5Y+bPnDDoG58XCA7Civlgqg+Y2jFrXxcIDsKK+i0qj50YW58XCA7CivmibA+csSDb3xcIDsKK+iDgT54acOpfFwgOwor6LeqPmd1w6x8XCA7CivnopE+YmVpfFwgOwor6I6OPnNoYXxcIDsKK+WonD5udcOzfFwgOwor5L6vPmjDs3V8XCA7CivkuJg+cWl1fFwgOwor5pmVPnl1bnxcIDsKK+aLpj5sw6FufFwgOwor54eDPnLDoW58XCA7CivlkJ4+dHVufFwgOwor6IiMPnNow6l8XCA7CivnkLM+bMOtbnxcIDsKK+abvD5tw6BufFwgOwor6IC7PmNoxK18XCA7Civmn5w+Z3XDrHxcIDsKK+aRij50YW58XCA7CivmnYY+Z2FufFwgOwor5bKpPnnDoW58XCA7CivlloI+d8OoaXxcIDsKK+mAnT5zaMOsfFwgOwor6K+ePmTDoG58XCA7CivltJQ+Y3VpfFwgOwor5YeRPmPDsnV8XCA7Civnl7Q+Y2hpfFwgOwor55uGPnDDqW58XCA7Civlp6U+bMSDb3xcIDsKK+Wnuz55aW58XCA7CivmhKc+a3XDrHxcIDsKK+iKrD5mZW58XCA7Civmjrc+emjDrXxcIDsKK+iKrz54aW58XCA7CivpvKA+c2jFrXxcIDsKK+e6oD5qaXV8XCA7Civmm7A+eXVlfFwgOwor6KKNPnDDoW98XCA7Civli74+Z291fFwgOwor5oWoPmvEg2l8XCA7CivnrYs+amlufFwgOwor5p+xPnpow7l8XCA7CivljZE+YmVpfFwgOwor5ZK9PnlhbnxcIDsKK+WQqD5kdW58XCA7Civljqg+Y2jDunxcIDsKK+mltj5yw6FvfFwgOwor54WkPm3DqWl8XCA7CivohZU+d8OgbnxcIDsKK+WWtz5wZW58XCA7Civmtak+aMOgb3xcIDsKK+WQqT5mZW58XCA7Civms4Q+eGnDqHxcIDsKK+aQnD5zb3V8XCA7CivpgbU+enVufFwgOwor5LyqPnfElWl8XCA7Civngo4+ecOhbnxcIDsKK+awmz5mZW58XCA7CivmnZY+Y2hpfFwgOwor556OPnhpYXxcIDsKK+iqkz5zaMOsfFwgOwor5rOhPnBhb3xcIDsKK+WYiT5qaWF8XCA7Civng5s+emjDunxcIDsKK+WOpj5zaMOgfFwgOwor6KGwPmN1aXxcIDsKK+iWmz54dWV8XCA7Civpvb8+Y2jErXxcIDsKK+iwqD5qxK1ufFwgOwor5piCPsOhbmd8XCA7Civnlo8+c2h1fFwgOwor6ICXPmjDoG98XCA7CivmlqU+Y2jDrHxcIDsKK+WkuD5rdWF8XCA7Civnl5U+aMOpbnxcIDsKK+Wnmj55w6FvfFwgOwor5aalPnR1xY98XCA7Civmjo8+dGFvfFwgOwor5Yi5PmNow6B8XCA7CivpkqY+cWlufFwgOwor6K+xPnnDsnV8XCA7CivmrYc+eGllfFwgOwor5qONPmfDuW58XCA7CivmmYs+asOsbnxcIDsKK+a3iz5sw6xufFwgOwor5oKmPm1lbnxcIDsKK+aVpj5kdW58XCA7CivnvZU+aMSDbnxcIDsKK+i0tz5kw6BpfFwgOwor5o2PPm5pZXxcIDsKK+i0vj5qacSDfFwgOwor5aChPmLEg298XCA7CivmtZk+emjDqHxcIDsKK+WKoz5sacOofFwgOwor6ZmAPnR1w7N8XCA7CivlnZ8+ZsOpbnxcIDsKK+a8jz5sw7J1fFwgOwor6IyFPm3DoW98XCA7Civmu6k+dGFufFwgOwor6aG9PnfDoW58XCA7CivmrpY+emjDrXxcIDsKK+iUoT5jw6BpfFwgOwor5YKsPmN1aXxcIDsKK+W9rD5iaW58XCA7Civmi5o+cMOgbnxcIDsKK+i9qD5kw6BpfFwgOwor56GVPnNow618XCA7Civmhr4+aMOgbnxcIDsKK+aHkj5sxINufFwgOwor55uQPnnDoW58XCA7Civllok+aMOzdXxcIDsKK+WutD55w6BufFwgOwor57+wPmjDoG58XCA7CivpgLs+bHXDs3xcIDsKK+ijuT5ndcWPfFwgOwor6LSpPmbDoG58XCA7Civnu5g+aHXDrHxcIDsKK+W0lj55w6FpfFwgOwor6YGuPnpoZXxcIDsKK+aTkj5xw61ufFwgOwor6JuuPm3DoW58XCA7Civoirc+emjErXxcIDsKK+aMvT53xINufFwgOwor5ZC7PnfElW58XCA7Civnsrk+Y3XDrHxcIDsKK+errT5qacOpfFwgOwor5q2qPndhaXxcIDsKK+aisD54acOofFwgOwor5paRPmJhbnxcIDsKK+WvoT5ndcSDfFwgOwor5b6qPnjDum58XCA7CivlkJU+bMO8zIZ8XCA7CivniLU+anXDqXxcIDsKK+W+vT5odWl8XCA7CivosK0+dMOhbnxcIDsKK+Wrgj5zxINvfFwgOwor5amJPnfEg258XCA7CivpqoY+bHXDsnxcIDsKK+eVjz53w6hpfFwgOwor6bKNPmLDoG98XCA7CivllaU+c2jDoHxcIDsKK+e6uT53w6lufFwgOwor6LmyPmR1bnxcIDsKK+mqmj5zYW98XCA7CivoiZg+c2FvfFwgOwor6IqdPnpoaXxcIDsKK+WTlz5odWF8XCA7Civlt74+amlufFwgOwor5rerPnnDrW58XCA7Civnr64+bMOhbnxcIDsKK+S+hD56aMOtfFwgOwor5Y+JPmNoYXxcIDsKK+WusD56xINpfFwgOwor556SPm3DoW58XCA7CivlkLw+aMWPdXxcIDsKK+S+qD5ow7J1fFwgOwor5Y+gPmRpw6l8XCA7Civoo5k+ccO6bnxcIDsKK+WSsz5oYWl8XCA7CivmgbM+a8SVbnxcIDsKK+iwnD5tw6hpfFwgOwor5ZGcPmNoaXxcIDsKK+migT5iYW58XCA7Civolqo+eGlufFwgOwor5bC/PnN1aXxcIDsKK+miij5qacOhfFwgOwor6YCuPmTEg2l8XCA7Civmtbg+asOsbnxcIDsKK+WIrj5ndWF8XCA7Civlrps+d8SDbnxcIDsKK+WYsT56aMWtfFwgOwor5oyqPm51w7N8XCA7CivlhZw+ZG91fFwgOwor5ZaDPm7DoW58XCA7CivoiLU+ZHXDsnxcIDsKK+ezlT5nYW98XCA7Civnp6k+emjDrHxcIDsKK+mSqT5nb3V8XCA7Civnha4+emjFrXxcIDsKK+erlj5zaMO5fFwgOwor5qCqPnpodXxcIDsKK+e7oz54acO5fFwgOwor5aaWPnlhb3xcIDsKK+iDjj50YWl8XCA7Civmu6g+YmlufFwgOwor5ZekPmNoaXxcIDsKK+WMqj5mxJVpfFwgOwor6IODPnfDqGl8XCA7CivouoE+esOgb3xcIDsKK+eLrj5zaGl8XCA7Civlh5s+bMStbnxcIDsKK+m+nz5ndWl8XCA7Civlq6M+eWFufFwgOwor56qRPmRpw6l8XCA7CivlsLk+ecStbnxcIDsKK+aOmD5qdcOpfFwgOwor54utPnhpw6F8XCA7Civppqg+eGlufFwgOwor5r2YPnBhbnxcIDsKK+a4ij5kw7J1fFwgOwor54y0PmjDs3V8XCA7CivnlZQ+cMOgbnxcIDsKK+eVnD5jaMO5fFwgOwor5pCCPmxvdXxcIDsKK+aXrD54w7pufFwgOwor6aqHPmjDoGl8XCA7Civngb8+Y8OgbnxcIDsKK+mbgT55w6BufFwgOwor6Z+1PnnDuW58XCA7Civlqpo+bcOoaXxcIDsKK+aUgD5wYW58XCA7CivnqoM+cWnDqHxcIDsKK+ijmD5xacO6fFwgOwor5aupPm7DqG58XCA7CivpgYI+c3XDrHxcIDsKK+mZiz5sw7J1fFwgOwor56yoPmLDqG58XCA7CivljJk+Y2jDrXxcIDsKK+i4qT5jxINpfFwgOwor5ZWhPmZlaXxcIDsKK+m7mz5kw6BpfFwgOwor6ZyJPm3DqWl8XCA7CivlnaQ+a3VufFwgOwor5biWPnRpZXxcIDsKK+eEsD55w6BufFwgOwor5ZuaPnFpw7p8XCA7CivkvoM+a8SDbnxcIDsKK+S9kD56dcWPfFwgOwor5biGPmZhbnxcIDsKK+aDrT5jw6FufFwgOwor5ra1PmjDoW58XCA7CivpgJc+ZMOydXxcIDsKK+a+oT56xINvfFwgOwor57KqPmbDqG58XCA7CivprYE+a3XDrXxcIDsKK+aNhj5rxa1ufFwgOwor6IKdPmdhbnxcIDsKK+a7pT5sw6BufFwgOwor6am8PnR1w7N8XCA7CivmuoM+a3XDrHxcIDsKK+eDpD5rxINvfFwgOwor5r2tPnTDoW58XCA7Civor4A+anXDqXxcIDsKK+Wzuz5qw7lufFwgOwor6YOhPmrDuW58XCA7CivmgK8+cWnDqHxcIDsKK+iMgj5tw6BvfFwgOwor6IKiPnpoaXxcIDsKK+WwtD5nYW58XCA7CivnqLs+ZMOgb3xcIDsKK+agvT56YWl8XCA7Civosbk+YsOgb3xcIDsKK+i5iD5kxINvfFwgOwor5L2RPnnDsnV8XCA7Civmt7k+eWFufFwgOwor5bGhPmzDvMyGfFwgOwor6IC9PmRhbnxcIDsKK+aakT5zaMWtfFwgOwor6KWfPmppbnxcIDsKK+ivpz5jaMOgfFwgOwor5o+qPmppdXxcIDsKK+e/hT5jaMOsfFwgOwor6L6WPnhpw6F8XCA7Civmgrw+ZMOgb3xcIDsKK+mYjj55w6FufFwgOwor5pinPm3DqGl8XCA7Civlh70+aMOhbnxcIDsKK+WTiT56YWl8XCA7Civnpbc+ZMSDb3xcIDsKK+aKkj5zaHV8XCA7Civmrbk+ZMSDaXxcIDsKK+aXsT5ow6BufFwgOwor5oOfPnfDqWl8XCA7CivosKM+ecOhb3xcIDsKK+a7nj5tw6hufFwgOwor5a2VPnnDuW58XCA7CivmorM+c2h1fFwgOwor6IK6PmbDqGl8XCA7CivkuLg+d8OhbnxcIDsKK+axgT56aGl8XCA7CivnurE+csOobnxcIDsKK+ivoT5ndcStfFwgOwor5Z2OPmvEg258XCA7CivnqLw+amnDoHxcIDsKK+iEgj56aGl8XCA7CivokIQ+dMOhb3xcIDsKK+aNnj5sYW98XCA7CivlsZE+eGnDqHxcIDsKK+S8nj5zxINufFwgOwor6J22PmRpw6l8XCA7CivnqJo+emjDrHxcIDsKK+iBgj5uacOofFwgOwor6ZmhPmTFj3V8XCA7Civku5E+bMO6bnxcIDsKK+eEiT55YW58XCA7Civmt5g+dMOhb3xcIDsKK+Werj5rdcSDfFwgOwor5bCJPnfDqGl8XCA7Civmu5Q+dGFvfFwgOwor5o2jPmTEg298XCA7Civmtqk+cMOzdXxcIDsKK+eRsD5ndWl8XCA7CivnvIY+bMOgbnxcIDsKK+a1jz5nxa1ufFwgOwor546rPm3DqWl8XCA7CivmpaM+bcOpaXxcIDsKK+iviD56aMOgfFwgOwor5oyfPnhpw6l8XCA7CivnhZ4+c2hhfFwgOwor54SaPmbDqW58XCA7CivpnI4+c2jDoHxcIDsKK+aRpz5jdWl8XCA7Civmr68+dMSDbnxcIDsKK+aMqz5jdcOyfFwgOwor6L+mPmppYXxcIDsKK+acvT54acWtfFwgOwor5YWRPmR1w6x8XCA7CivprYU+bcOoaXxcIDsKK+i+qz5iw6BufFwgOwor5Ze9PnPDsnV8XCA7Civps4Q+ZGnDqXxcIDsKK+WglT5kdcOyfFwgOwor6LCQPnhpw6l8XCA7CivolJE+bWnDqHxcIDsKK+ixgT5odcOhfFwgOwor5rK4PmbDqGl8XCA7CivlsY4+c2jErXxcIDsKK+WNuD54acOofFwgOwor6ZKlPnnDoG98XCA7Civngq0+dMOgbnxcIDsKK+ecqD56aMSDfFwgOwor556lPnBpZXxcIDsKK+WPqD5kYW98XCA7CivolKw+c2h1fFwgOwor55i+PnnErW58XCA7CivpgrE+cWl1fFwgOwor6IaPPmdhb3xcIDsKK+iQgz5jdcOsfFwgOwor5aaePm5pdXxcIDsKK+WtvT5uacOofFwgOwor5reRPnNow7p8XCA7CivngbY+esOgb3xcIDsKK+aWjD5iaW58XCA7Civlr4c+a8OydXxcIDsKK+aymz5ww6hpfFwgOwor5bGvPnTDum58XCA7CivmgZU+c2jDuXxcIDsKK+Wmgz5mZWl8XCA7CivpuKA+aml1fFwgOwor5rKmPmzDum58XCA7CivnvJU+bMO8zIZ8XCA7Civmmoc+eGnDoXxcIDsKK+aPiT5yw7N1fFwgOwor6JCdPmx1w7N8XCA7Civmvpw+bMOhbnxcIDsKK+ibmz56aHV8XCA7Civmj70+bMSDbnxcIDsKK+iNqz55w6xufFwgOwor5bKxPmTDoGl8XCA7Civnnaw+Y8SDaXxcIDsKK+aeoz56xINvfFwgOwor5pKHPnBpZXxcIDsKK+Wloj5zaGV8XCA7CivluJw+emjDrHxcIDsKK+iPjD5qdW58XCA7Civlr4U+ecOtbnxcIDsKK+iVvj5sxJVpfFwgOwor6LS/Pmh1w6x8XCA7CivkvqM+bMO8zIZ8XCA7Civpkqc+anVufFwgOwor6K6zPmh1w6x8XCA7CivnqqU+a3VpfFwgOwor6KGNPnnEg258XCA7CivplKM+bHXDs3xcIDsKK+aSvD5ow6BufFwgOwor5bKUPmNow6B8XCA7Civnho8+eHVufFwgOwor57ulPnN1aXxcIDsKK+WSpz5saWV8XCA7CivmnYk+c2hhfFwgOwor5YCPPnNodXxcIDsKK+eHpT56w6BvfFwgOwor6aumPm3DoW98XCA7CivljIA+ecO6bnxcIDsKK+einz5kacOpfFwgOwor5YmWPnBvdXxcIDsKK+aQkz5jdW98XCA7CivltYs+bcOpaXxcIDsKK+idhz54aWV8XCA7Civll6Y+c3VvfFwgOwor5Z6SPmzElWl8XCA7Civlmao+esOgb3xcIDsKK+iVtD55w7lufFwgOwor6L+tPmRpw6l8XCA7Civlh78+esOhb3xcIDsKK+S7nj5yw6hufFwgOwor5omzPmJhbnxcIDsKK+WSpj5sacSTfFwgOwor5aKFPnNow7l8XCA7Civmhos+YmllfFwgOwor5aWOPmt1w618XCA7Civnp70+aHXDrHxcIDsKK+WNpj5ndcOgfFwgOwor5L2sPmzEg298XCA7CivolJo+d8OoaXxcIDsKK+a0vT5xacOgfFwgOwor6JqAPnNow618XCA7CivlkIY+eWFvfFwgOwor6Jm+PnhpYXxcIDsKK+WUvj50dcOyfFwgOwor6LCsPm1pw7l8XCA7CivompU+Y8OhbnxcIDsKK+i1pj5zaMOofFwgOwor54uIPmLDqGl8XCA7Civpgrk+em91fFwgOwor5a+dPmzDs3V8XCA7Civoi58+Z8WPdXxcIDsKK+eRtj55w6FvfFwgOwor5qKtPnN1b3xcIDsKK+W9pj55w6BufFwgOwor5oKNPmjDoG58XCA7CivmjJo+emjDrHxcIDsKK+aCrz5txK1ufFwgOwor6JaHPnfDqWl8XCA7CivljqU+anXDqXxcIDsKK+eeqT56aMWtfFwgOwor6YOdPmjEg298XCA7CivpopA+YmlufFwgOwor5qqQPnnDoW58XCA7CivniZ8+bcOzdXxcIDsKK+WXhT54acO5fFwgOwor5bSbPmp1w6l8XCA7CivmnqI+c2h1fFwgOwor56OKPmzElWl8XCA7Civlv78+ZsOobnxcIDsKK+S5jT56aMOgfFwgOwor54CRPmLDoG98XCA7Civnlpo+amnDuXxcIDsKK+maiz5zdcOtfFwgOwor5YuYPmthbnxcIDsKK+aZpj5odcOsfFwgOwor6K+rPmppw6h8XCA7Civonro+bHXDs3xcIDsKK+WiqT5kdW58XCA7Civmp70+Y8Ohb3xcIDsKK+aDqz5iw6hpfFwgOwor56a9PnHDrW58XCA7Civomoo+d8OpbnxcIDsKK+W3jT53ZWl8XCA7CivmlJI+esSDbnxcIDsKK+elnz5zdcOsfFwgOwor5bCnPnnDoW98XCA7Civnu4o+YsOgbnxcIDsKK+aHiD54acOofFwgOwor5bS9PnrEg2l8XCA7CivolJM+bcOhbnxcIDsKK+iXqT5mYW58XCA7Civli4s+eHVufFwgOwor6JCOPndlaXxcIDsKK+WPqT5rw7J1fFwgOwor6Z20Pnh1ZXxcIDsKK+eagj56w6BvfFwgOwor6J+5Pnhpw6h8XCA7Civmg64+ZMOgbnxcIDsKK+aQlD5zYW98XCA7Civlvoo+aHXDrXxcIDsKK+WGiT5yxINufFwgOwor6aaSPm3DoW58XCA7Civpl7o+Z3VpfFwgOwor5ZqOPmjDoW98XCA7Civpqo8+asO5bnxcIDsKK+eftj5nw6BufFwgOwor55OjPmLDoG58XCA7Civoha4+c2FpfFwgOwor5raFPm5pw6h8XCA7Civpk5A+a8Ogb3xcIDsKK+apsT5jaMO6fFwgOwor5ZytPmd1aXxcIDsKK+m7nT55xY91fFwgOwor5pKuPmN1b3xcIDsKK+i6hz5jaMO6fFwgOwor6LixPmR1w7J8XCA7Civlk4Y+ZHVvfFwgOwor5aStPnlhb3xcIDsKK+aoij5mw6FufFwgOwor5b6YPnDDoWl8XCA7CivkuqU+aMOgaXxcIDsKK+ikmj5jaMWtfFwgOwor6IuUPnRhaXxcIDsKK+aBgz5zaMOsfFwgOwor6YWjPmhhbnxcIDsKK+aAoD5kw6BpfFwgOwor5q6JPnjDuW58XCA7Civmj40+esOydXxcIDsKK+aTgj5sw6lpfFwgOwor6ZyWPmzDrW58XCA7CivplIQ+Y2jDunxcIDsKK+m6nz5sw61ufFwgOwor6Iy1PnlpbnxcIDsKK+iCtD55w6FvfFwgOwor6aqwPnTDs3V8XCA7CivopII+Z3XDoHxcIDsKK+iKuD55w7pufFwgOwor56u/PmdhbnxcIDsKK+ezmT5jYW98XCA7CivnoJo+ecOgbnxcIDsKK+eggj5zaGF8XCA7Civpl7g+d8OobnxcIDsKK+aNjT5ow6BufFwgOwor6IKuPmFuZ3xcIDsKK+WShD5kdW98XCA7CivllKA+bMOhb3xcIDsKK+mikz50dcOtfFwgOwor5qa0Pmxpw7p8XCA7CivmsbA+dMOgaXxcIDsKK+i+mT5jaMOofFwgOwor6IuHPnfElWl8XCA7CivluLc+d8OpaXxcIDsKK+iwjT5kacOpfFwgOwor6IeAPnTDum58XCA7CivllYM+a8SVbnxcIDsKK+e+lD5nYW98XCA7Civoirk+ccOtbnxcIDsKK+aLjD5iw6BufFwgOwor6JyAPnNoxa18XCA7Civor5s+emh1fFwgOwor6ZKdPmTDuW58XCA7CivmoIU+emjDoHxcIDsKK+WzmT56aMOsfFwgOwor6Z+nPnLDqG58XCA7Civmm5k+c2jDuXxcIDsKK+W7kz5rdcOyfFwgOwor6IyEPnFpw6l8XCA7Civlkbg+cGVpfFwgOwor5LuVPnNow6x8XCA7CivmuK0+d8OoaXxcIDsKK+Wmvj5xacOofFwgOwor6IKLPmzDqGl8XCA7CivnjL4+aHXDoXxcIDsKK+eqkj56aMOsfFwgOwor5ZKPPmp1w6l8XCA7CivnmpM+aMOgb3xcIDsKK+aOkD5xaWF8XCA7Civmh6Y+bnXDsnxcIDsKK+WAlD5qdcOpfFwgOwor5aWEPnlhbnxcIDsKK+iFkz5mw6lpfFwgOwor5rijPnpoYXxcIDsKK+eYpD5sacO6fFwgOwor6JavPnNoxa18XCA7Civmpbc+a8SDaXxcIDsKK+aFkT5zaMOofFwgOwor6Ze9Pm3ErW58XCA7CivmsZs+eMO5bnxcIDsKK+WVpz5sdcOzfFwgOwor5ZiIPmPDoW98XCA7CivmorU+ZsOgbnxcIDsKK+mznj5sw61ufFwgOwor5ou3PmvEg298XCA7Civok5M+YsOoaXxcIDsKK+aLrT5zaMOsfFwgOwor5pmWPmh1aXxcIDsKK+eRvj5qxK1ufFwgOwor6aq4PmjDoWl8XCA7CivpqqE+bHXDs3xcIDsKK+ehhT5ndWl8XCA7Civkvog+Y2jErXxcIDsKK+WkpT5odcWPfFwgOwor56mXPnN1w6x8XCA7CivmsoE+ccOsbnxcIDsKK+aCtD5jdcOsfFwgOwor55CJPmxpw7p8XCA7Civpqa8+eMO6bnxcIDsKK+e6rD53xJVpfFwgOwor5ZecPnNow6x8XCA7Civpmqc+c3XDrHxcIDsKK+ahlD5qacOpfFwgOwor5r6IPmNow6h8XCA7Civpkq4+bmnFrXxcIDsKK+WTpz5jaGl8XCA7Civmjro+Y8OgbnxcIDsKK+W/lj5jxa1ufFwgOwor5ryxPnNow7l8XCA7Civng5k+bMOgb3xcIDsKK+eblD5rdWl8XCA7CivnmKo+YmllfFwgOwor55y4Pm3Ds3V8XCA7CivolYM+ZsOhbnxcIDsKK+WUhj5zdW98XCA7Civno4s+Y3VvfFwgOwor5Ly9PnFpw6l8XCA7CivlnqI+Z8OydXxcIDsKK+ikqj50w7lufFwgOwor55i4PnF1w6l8XCA7Civlspo+bMOhbnxcIDsKK+WWsz5jaGF8XCA7Civmn78+c2jDrHxcIDsKK+WPsT5jaMOsfFwgOwor5YyjPnhpw6F8XCA7Civmg4s+d8SDbnxcIDsKK+eXsD50w6FufFwgOwor5qGmPmh1w6B8XCA7Civlko4+amnDuXxcIDsKK+aGqD5oYW58XCA7Civpq5M+c3XErXxcIDsKK+i2vj56aMStfFwgOwor54K9PmNow6x8XCA7CivlrbA+c2jDunxcIDsKK+aPqT5rYWl8XCA7CivnqqY+ZMOydXxcIDsKK+efoj5zaMStfFwgOwor6YWdPnnDuW58XCA7CivmvaY+bMSDb3xcIDsKK+WIqD5iw6BvfFwgOwor6ayTPmLDrG58XCA7CivmnK0+emjDoXxcIDsKK+S6tT54acOofFwgOwor5L+oPnnEg258XCA7Civot7o+ZHXDsnxcIDsKK+i0rj56aMWtfFwgOwor5oKWPmLDqGl8XCA7CivojKw+Y2jDoXxcIDsKK+eCmT56aMOsfFwgOwor5r+SPmJpbnxcIDsKK+edkD5sw6BpfFwgOwor5YGOPndlaXxcIDsKK+idjj54aWV8XCA7CivmnbU+Y2jFrXxcIDsKK+ihhT54w6xufFwgOwor5qWgPm7DoW58XCA7Civpn6w+dGFvfFwgOwor5oq/Pm3ErW58XCA7CivlnqY+a8SVbnxcIDsKK+ettT55w6FufFwgOwor55ifPndlbnxcIDsKK+Wpqj5sw6FufFwgOwor5rWSPmPDum58XCA7CivokbU+a3XDrXxcIDsKK+mjlT5zb3V8XCA7CivouZE+bmnDqHxcIDsKK+eruj56aMO6fFwgOwor5ZCdPmzDrG58XCA7Civnnas+amnDqXxcIDsKK+m5ij5xdcOofFwgOwor5Y2JPmh1w6x8XCA7CivpgYE+ZMO5bnxcIDsKK+W6tj5zaMO5fFwgOwor6JWKPnJ1xK18XCA7Civor7I+aHXDrHxcIDsKK+e8qj5qaXV8XCA7Civpkas+eGlufFwgOwor5529Pmt1w618XCA7CivotaM+Z8OgbnxcIDsKK+WWvT5sxY11fFwgOwor56ujPmrDuW58XCA7Civppog+a3XDrHxcIDsKK+WWiz5kacOpfFwgOwor5YGMPnJ1w7J8XCA7CivnorM+dMOgbnxcIDsKK+aqgD50w6FufFwgOwor5q6GPmTDoGl8XCA7CivopJI+YmFvfFwgOwor5ZeoPmhhaXxcIDsKK+ivmD5qacOpfFwgOwor5oqhPmzDum58XCA7Civpuas+amnDuXxcIDsKK+aZlz5ow6FufFwgOwor5rKMPmTDuW58XCA7CivojaQ+aHVufFwgOwor56GrPmxpw7p8XCA7Civlr5A+bcOoaXxcIDsKK+aphD5nxINufFwgOwor5qaEPmzEg258XCA7CivnrIs+c8WtbnxcIDsKK+m8vj5oYW58XCA7Civlmaw+c2jDrHxcIDsKK+mbrz53w6lufFwgOwor6J+gPnDDoW58XCA7CivpmIk+eWFufFwgOwor5qGFPnfDqWl8XCA7Civlo5U+aMOhb3xcIDsKK+mUmj5tw6FvfFwgOwor6LWBPnLDqG58XCA7CivliYE+ZHXDsnxcIDsKK+iFjD55YW58XCA7CivnvKQ+YmlufFwgOwor5ZeWPnNvdXxcIDsKK+ickj55w6FufFwgOwor5reGPnnDoW98XCA7Civnnb8+cnXDrHxcIDsKK+ixmj50w7pufFwgOwor6ZuPPmNow7p8XCA7CivpgZA+eGnDoXxcIDsKK+iWsD54dW58XCA7Civnr5M+bMWPdXxcIDsKK+iRhj5ixINvfFwgOwor5bybPmNow618XCA7Civlnps+ZHXFj3xcIDsKK+aShT5qdWV8XCA7CivlkKA+ZsOoaXxcIDsKK+e7mj5sw6BvfFwgOwor6aaEPmjDum58XCA7Civppag+dMO6bnxcIDsKK+aetz5qaWF8XCA7Civog68+a3XDoHxcIDsKK+WRlz5iw6BpfFwgOwor6ZOdPmzDvMyGfFwgOwor55+cPmppbnxcIDsKK+eClj5kw7lufFwgOwor6ZerPnnDoG58XCA7CivouZI+bcOhbnxcIDsKK+azrz5txK1ufFwgOwor6KKSPnTEg258XCA7CivonJg+emhpfFwgOwor5oqgPmtvdXxcIDsKK+eflz5jaMO5fFwgOwor6bOWPmJpZXxcIDsKK+iAmD55w7pufFwgOwor6Ya6Pnh1bnxcIDsKK+eDrD5qw6xufFwgOwor5ZmkPmrDrG58XCA7Civpq68+csOhbnxcIDsKK+icvz53YW58XCA7Civmiok+anXDqXxcIDsKK+exgT5sw6BpfFwgOwor5Y2vPm3Eg298XCA7Civoo7Q+cMOpaXxcIDsKK+ebjj7DoG5nfFwgOwor5o6wPmJhaXxcIDsKK+mYqj5ixINufFwgOwor6ZiRPmzDoW58XCA7CivllZA+Y3XDrHxcIDsKK+a5gz5ww6BpfFwgOwor5ZWVPnTDoW98XCA7Civor70+ZsSVaXxcIDsKK+aWkz5sw6FufFwgOwor5aiTPnfElWl8XCA7CivmkZ4+bHXDsnxcIDsKK+WIjj53xJVufFwgOwor5Yi9Pmd1w6x8XCA7Civmpqg+emjDoHxcIDsKK+iDrT55YW58XCA7Civol7s+esSDb3xcIDsKK+mprj50dcOzfFwgOwor6IOaPnBlaXxcIDsKK+aDsD5kdcOyfFwgOwor6auFPmzDs3V8XCA7Civll6s+bmnDqHxcIDsKK+eHlD5mw6FufFwgOwor6IeKPnNhb3xcIDsKK+a2nT5sw6BvfFwgOwor6IiAPnnEg298XCA7CivlkoY+cMOhb3xcIDsKK+aLhD56aMWtfFwgOwor5piKPmjDoG98XCA7CivlgZU+amllfFwgOwor5L2XPnR1w7N8XCA7CivotbM+amnFrXxcIDsKK+S+jz56aHV8XCA7Civouo8+bMOsbnxcIDsKK+e0ij53w6hufFwgOwor566pPmx1w7N8XCA7Civlkqs+emjErXxcIDsKK+mdsz5qw6xufFwgOwor6bKoPnNoYXxcIDsKK+mCgz5zdcOsfFwgOwor6KS0PmLEg298XCA7CivlnY0+dGFufFwgOwor5omJPmZlaXxcIDsKK+mYmT5xdcOofFwgOwor5raUPmPDqW58XCA7Civnmr8+bcStbnxcIDsKK+WCoz5kxINpfFwgOwor6LmCPnLDs3V8XCA7CivngJo+aMOgbnxcIDsKK+ealj53xINufFwgOwor55yIPmRhbnxcIDsKK+mFiz5xacO6fFwgOwor6Zu5PmLDoW98XCA7Civlv5A+dMSDbnxcIDsKK+auoT5iw6xufFwgOwor54ylPnfElWl8XCA7Civkupg+Z8OobnxcIDsKK+eYgT5jdcOsfFwgOwor55GVPnhpw6F8XCA7Civno7c+bMOtbnxcIDsKK+eNlz5qdcOpfFwgOwor6YWJPnnFj3V8XCA7CivplZA+Z8SDb3xcIDsKK+WgsD55w6BufFwgOwor6IqlPmppw6h8XCA7Civnv6E+ZsSVaXxcIDsKK+ebuT5kxa1ufFwgOwor57CqPnphbnxcIDsKK+aDrD5xacOofFwgOwor57OvPm51w7J8XCA7CivllIE+ecOgbnxcIDsKK+iwmj55w6BufFwgOwor5bm6Pnlhb3xcIDsKK+iZsT5zaGl8XCA7Civngpw+d8SVaXxcIDsKK+eRmT5uxINvfFwgOwor57qtPnnDum58XCA7CivpgZs+bGnDuXxcIDsKK+mqhT5odcOhfFwgOwor6LCnPm3DoG58XCA7CivopJs+bMO8zIZ8XCA7Civmgbo+a8SDaXxcIDsKK+WMrj5ndcOsfFwgOwor5pOePnPFj3V8XCA7CivluaE+ZmFufFwgOwor5aG+PnNow7p8XCA7Civno5A+cMOhbnxcIDsKK+eEij5ow6BufFwgOwor5pWVPmNow6x8XCA7CivppoE+bsSVaXxcIDsKK+axvj5mw6lufFwgOwor5pmPPnnDoG58XCA7CivpgIU+aMOydXxcIDsKK+W0gj5sw6FvfFwgOwor5aiEPmzDs3V8XCA7CivmjqM+Y2jDqHxcIDsKK+mCgj54acOofFwgOwor5Y+fPnPFj3V8XCA7Civoh7w+amnDuXxcIDsKK+evvj5tacOofFwgOwor5pCQPmNow7l8XCA7Civomqo+ZMWPdXxcIDsKK+a3pj5nw6BufFwgOwor55eYPmTDsnV8XCA7Civoi54+YmFvfFwgOwor5oibPmppw6F8XCA7Civmp58+YmlufFwgOwor5pSrPmp1w6l8XCA7Civngbg+amnFrXxcIDsKK+a6iT5nw6BpfFwgOwor6LCRPm7DvMOofFwgOwor5Ya9Pmxpw6h8XCA7Civor4w+em91fFwgOwor6Z+tPmppxa18XCA7Civpur4+aHVpfFwgOwor6KOfPnNoYXxcIDsKK+aBgT5tw7N1fFwgOwor5rG2PnfDqG58XCA7CivmiI0+c2jDuXxcIDsKK+enuD5qaWV8XCA7CivnorQ+Y2jDoXxcIDsKK+amrT54acOofFwgOwor57qoPnfDoW58XCA7Civphao+bMOgb3xcIDsKK+eyvD5sw61ufFwgOwor55KAPmN1xK18XCA7CivlhKE+bMSVaXxcIDsKK+WCgD5ndWl8XCA7Civnmog+Z3VpfFwgOwor6ZOAPnnDoW58XCA7Civmkbo+emjDqXxcIDsKK+iiiD5qaWF8XCA7Civlj4E+Y2VufFwgOwor6ZWBPm3ElWl8XCA7Civlv7g+bmnFrXxcIDsKK+eesD5rw6BufFwgOwor54+ePmx1w7J8XCA7Civlgqk+bnXDs3xcIDsKK+WzpT55w61ufFwgOwor6ZKFPmppbnxcIDsKK+ahgD5qacOpfFwgOwor57uvPmZlaXxcIDsKK+a5rj55YW58XCA7Civpoo8+aMOhaXxcIDsKK+aUuD5iaW58XCA7CivpuKg+YsSDb3xcIDsKK+WeoD55w61ufFwgOwor6JyXPmd1YXxcIDsKK+eguj5ndWl8XCA7CivomqQ+esSDb3xcIDsKK+evmT5nYW98XCA7CivmsK4+ZMOgbnxcIDsKK+m7oD54acOhfFwgOwor55ejPnpow6x8XCA7Civmprc+cXXDqHxcIDsKK+iwqT5tw6FufFwgOwor6ImuPmfDqG58XCA7Civovbw+c2jDrHxcIDsKK+mmkT5qxK1ufFwgOwor6aaKPnNvdXxcIDsKK+mlqj5yw6hufFwgOwor6KGpPmNoxIN8XCA7CivliZw+d2FufFwgOwor5rWaPmrDuW58XCA7Civpkpk+Z8OgaXxcIDsKK+mVrD5odcOyfFwgOwor5oSgPnnDuW58XCA7CivlmZk+ccOtbnxcIDsKK+WykT5jw6lufFwgOwor5pC9PmNow6F8XCA7CivnoqM+amnDqXxcIDsKK+aJqj5tw6lufFwgOwor5ZW+PmppdXxcIDsKK+WRtz54aWF8XCA7Civooa4+Z8WtbnxcIDsKK+W/vj5rw6BpfFwgOwor6JK/Pmhhb3xcIDsKK+iarz5xaXV8XCA7CivmnbM+ecSDb3xcIDsKK+iKrj5ydcOsfFwgOwor6ZmoPnnFrW58XCA7Civnr50+Z291fFwgOwor55KoPmPDoG58XCA7Civltpk+bMOtbnxcIDsKK+icmj5mxJVpfFwgOwor6I6TPm3DqWl8XCA7CivosYw+d2FufFwgOwor6JORPnN1b3xcIDsKK+WokT5zdW98XCA7Civku6g+ZsSDbnxcIDsKK+i5tj5qdcOpfFwgOwor6JqTPnnErW58XCA7CivopLY+emjDqXxcIDsKK+ibsD56aMOtfFwgOwor6LmpPmJpw6l8XCA7CivmgLU+Y2jDuXxcIDsKK+S6uz5yw6lufFwgOwor55m4Pmd1xK18XCA7CivoiJA+c2jDrHxcIDsKK+iigj5tw6hpfFwgOwor5ouuPmppw6l8XCA7CivniZI+ZGnDqXxcIDsKK+WXnz5qaWV8XCA7Civnlp8+bsO8w6h8XCA7Civlp5g+cGlufFwgOwor5rWjPnfEg258XCA7CivmsrE+dHXDs3xcIDsKK+WXpT5ow6FvfFwgOwor5ZeyPmRpxIN8XCA7CivlkqQ+emjDoHxcIDsKK+WOqT5qacO5fFwgOwor5piZPnTDoW58XCA7CivmpYI+Y2jDoXxcIDsKK+aTgD5nxINufFwgOwor5Z6TPmdhaXxcIDsKK+iUlz56aMOofFwgOwor56qIPnnEg298XCA7CivlvpU+bMOhaXxcIDsKK+W5lD5tw6BufFwgOwor5ZW7PmNow6x8XCA7Civmp4E+Z8SDb3xcIDsKK+WmjT55w6FufFwgOwor6YKvPmjDoW58XCA7CivmjLI+c3VvfFwgOwor6YG0PmzDrW58XCA7Civls4s+eMO6bnxcIDsKK+ivmT5odWl8XCA7CivlgYM+ecSDbnxcIDsKK+WjrD5yw6lufFwgOwor5o6HPmR1w7N8XCA7Civlm6Q+ZMO5bnxcIDsKK+iAqD5uw7J1fFwgOwor57u6Pmxpxa18XCA7Civmj78+ccOsbnxcIDsKK+iipD5tw6BvfFwgOwor6YeJPnnDsnV8XCA7Civpup0+c2jDqHxcIDsKK+W9lz5odcOsfFwgOwor5ZuhPm5hbnxcIDsKK+i+lD5ww6hpfFwgOwor6I2fPmh1w6x8XCA7CivpnI8+ZmVpfFwgOwor6IOkPnnDrG58XCA7CivpuLU+dHXDs3xcIDsKK+eaiz5nYW98XCA7CivnpZc+emhpfFwgOwor5qCJPmppw6l8XCA7Civlp50+c2h1fFwgOwor5L2YPnNow6l8XCA7Civom4A+emjDuXxcIDsKK+i2lD5sacOofFwgOwor6aKUPmjDoG58XCA7Civmh5E+bcOobnxcIDsKK+Wtmz5iw6hpfFwgOwor5ZWuPm5pw6h8XCA7CivmvJU+Y8Ohb3xcIDsKK+iUuz5rw7J1fFwgOwor5YG7PmzDs3V8XCA7Civpg7g+ZGFufFwgOwor5L2wPmLEg2l8XCA7Civpvps+a2FufFwgOwor55CoPmt1bnxcIDsKK+eOsz5kw6BpfFwgOwor6YKwPnTDoWl8XCA7CivpsqU+c2jDrXxcIDsKK+WtkT5qacOpfFwgOwor6YC1Pmt1w618XCA7Civllp8+a3XDrHxcIDsKK+e6mz5kw6BvfFwgOwor54K3Pnpow7l8XCA7CivnipI+a8Ogb3xcIDsKK+ePiD5qaWF8XCA7CivlkaY+eW91fFwgOwor6ZWCPmzDsnV8XCA7CivnhbI+YmFvfFwgOwor5bK3Pm3DrW58XCA7CivllpE+eWlufFwgOwor6bG/PnnDs3V8XCA7CivlrbE+Y8OgbnxcIDsKK+S/qj5sw6BpfFwgOwor5oyePmppYXxcIDsKK+euuD56aMO5fFwgOwor6ZOgPmvEg2l8XCA7CivlqIY+csSDb3xcIDsKK+S9nT5nb3V8XCA7Civps4U+cWl1fFwgOwor6JqxPnpow6B8XCA7Civnl6g+bMOhb3xcIDsKK+mUsj5xacOofFwgOwor56WaPnp1w7J8XCA7Civmn5o+ecOydXxcIDsKK+eLrz5odcOhfFwgOwor6LWKPnNoZXxcIDsKK+enhj5nxINufFwgOwor6bucPmNow7l8XCA7CivopJM+YsSDb3xcIDsKK+afqT5qacO5fFwgOwor6YGSPnFpw7p8XCA7CivlvJE+c2jDrHxcIDsKK+iwsj5qdcOpfFwgOwor6buNPnNoxa18XCA7Civng6k+aHXDrHxcIDsKK+ivvz53xJVpfFwgOwor5pGIPmLDrG58XCA7Civonqs+c2jDrHxcIDsKK+mipj5ww61ufFwgOwor6KaDPnTDoW58XCA7CivmmJU+eGlufFwgOwor5reWPm7DoG98XCA7CivotLA+YmVufFwgOwor562gPnnDum58XCA7CivmgZo+aHXDrHxcIDsKK+iOoD55xY91fFwgOwor552+Pmdhb3xcIDsKK+iNmj5qacOhfFwgOwor6ZSJPmN1w7J8XCA7CivmqZs+anXDqXxcIDsKK+mYlT5xdcOofFwgOwor6ZiEPmppdXxcIDsKK+WzgT5txINvfFwgOwor5ZK7PnhpdXxcIDsKK+WRsj5ob3V8XCA7CivplIw+eGlufFwgOwor5r2NPnfDqWl8XCA7Civppo8+bGnDuXxcIDsKK+iLrz5ixJVufFwgOwor5qGOPnpow6x8XCA7Civoir4+ZsOoaXxcIDsKK+efjT5qdcOpfFwgOwor5b+7PnhpbnxcIDsKK+evkT5rdcOsfFwgOwor6ZWiPmp1w6l8XCA7Civpkps+dMOgaXxcIDsKK+eliT56aMStfFwgOwor5rCkPnlpbnxcIDsKK+eLsj5zdW58XCA7CivlpJQ+a3XDrXxcIDsKK+mVlD5iaW58XCA7CivmsLI+eXVufFwgOwor5p2IPmNoYXxcIDsKK+iNgD54w7pufFwgOwor6ZK6Pmh1w6x8XCA7CivmtYM+amnDoXxcIDsKK+eXlD56aMOsfFwgOwor6KG9PnLDqG58XCA7Civnh6c+c3XDrHxcIDsKK+Wbvz55w7J1fFwgOwor5ZaZPmh1w6x8XCA7Civmn5E+Z2FufFwgOwor6JyNPmNow7p8XCA7CivnvJk+asOsbnxcIDsKK+WSqT5taWV8XCA7CivpnL4+bcOhaXxcIDsKK+eolD5yxJVufFwgOwor6ZSbPmJlbnxcIDsKK+egoz50dcOzfFwgOwor54+JPm3DrW58XCA7Civlq5Q+cMOtbnxcIDsKK+WbtT5sw7pufFwgOwor6LmJPmN1b3xcIDsKK+esnj5jaGl8XCA7Civpook+amnDoXxcIDsKK+mToj56aHV8XCA7Civmh4s+bcOgb3xcIDsKK+eMsT5uw6FvfFwgOwor5ZmxPmp1w6l8XCA7CivplY0+bmnDqHxcIDsKK+ihvj5xaW58XCA7Civog5s+amnEg3xcIDsKK+iAhD5tw6BvfFwgOwor5qmQPnR1w7N8XCA7CivmtJk+emh1fFwgOwor5oG5PnnDoG58XCA7CivkuZw+bWllfFwgOwor6JutPnpow6x8XCA7Civpn6o+d8SVaXxcIDsKK+ivqD5ow7lufFwgOwor6LWdPnnDoG58XCA7Civlsr8+a3VpfFwgOwor55W5PnfEg258XCA7CivlvYA+Z8OydXxcIDsKK+aAqz5mw6hpfFwgOwor6I2PPnLElW58XCA7Civom5Q+aHXDrXxcIDsKK+i3jj50dcOzfFwgOwor6IGSPmd1YXxcIDsKK+m5nj55w6FvfFwgOwor6YChPnF1bnxcIDsKK+allD54aWV8XCA7CivnjpY+amnFrXxcIDsKK+i1rT56aMSVfFwgOwor576vPmppw6l8XCA7CivonYg+Z3VvfFwgOwor6IGpPmt1w6x8XCA7Civnl4I+amlhfFwgOwor5q6SPnNow6x8XCA7CivpgLY+d2VpfFwgOwor5a6lPnnDsnV8XCA7CivllZY+ZMOgbnxcIDsKK+eHrj54acOofFwgOwor57KyPmPDoG58XCA7Civop5A+asStbnxcIDsKK+W4vD5ndcOzfFwgOwor54WoPndlaXxcIDsKK+iGkT5iw6xufFwgOwor6L6aPmzDrW58XCA7CivmqL0+enVufFwgOwor5aq+PmfDsnV8XCA7Civlp7k+Y2jDoHxcIDsKK+W+hz54w7lufFwgOwor6JauPnPFj3V8XCA7CivlnYI+YsSDbnxcIDsKK+W6lj5ww6FvfFwgOwor6bKfPnjDum58XCA7Civpk6c+aHXDoXxcIDsKK+eElj5tw6hufFwgOwor6IK9PnTDoGl8XCA7CivniaY+bcOhb3xcIDsKK+eMtz55w7N1fFwgOwor5amVPmppw6l8XCA7Civlk54+bW91fFwgOwor5ZCSPnpow6B8XCA7CivosKU+c2jDrHxcIDsKK+mToT56aMOhfFwgOwor54SZPmLDqGl8XCA7Civmpqs+c8WtbnxcIDsKK+a0hz55aW58XCA7CivppZU+dGFvfFwgOwor5q6aPmRhbnxcIDsKK+e7vj53xINufFwgOwor6ZexPnfDqWl8XCA7CivlmZg+anVlfFwgOwor5ZSjPnrDoG98XCA7CivokbM+d2VpfFwgOwor6K+fPmfDsnV8XCA7Civpla0+bMOpaXxcIDsKK+ekhT5kdW58XCA7CivmuYQ+bcOpaXxcIDsKK+eLjj54acOhfFwgOwor5pK3Pnhpw6l8XCA7Civor7A+Z8Ogb3xcIDsKK+ixuD56aMOsfFwgOwor6LWnPm7Eg258XCA7CivoiKg+YsSDbnxcIDsKK+ichz56aGV8XCA7CivnoYw+bHXDsnxcIDsKK+ahpD5ndcOsfFwgOwor5rufPnnDoG58XCA7CivmtLU+eMO6bnxcIDsKK+WIjT5jaMO6fFwgOwor5YWWPnnEg258XCA7Civlt70+eMO5bnxcIDsKK+mThj5sacWtfFwgOwor6JmiPmd1w7N8XCA7Civmv6A+aMOhb3xcIDsKK+a4mj56aMWtfFwgOwor5rC1PnNhbnxcIDsKK+WRtj5uw6FvfFwgOwor6I2qPnN1bnxcIDsKK+WcqT53w6lpfFwgOwor5764PmzDqWl8XCA7Civnu6Y+dGFvfFwgOwor55alPmppw6h8XCA7Civpsqc+Z8WtbnxcIDsKK+eYoj5iYW58XCA7CivmrYM+c2jDoHxcIDsKK+injz5nw7J1fFwgOwor55GBPm3DoG98XCA7Civnj7I+aMO6bnxcIDsKK+a+uT5kw6BufFwgOwor6ZiXPmp1w6l8XCA7CivnjKE+bHXDs3xcIDsKK+mmlz5rdcOtfFwgOwor5rOFPnFpw7p8XCA7CivplLA+amllfFwgOwor55++PmbDoW58XCA7Civmt6w+Y3XDrHxcIDsKK+eolz5iw6BpfFwgOwor6LqFPnpow7p8XCA7CivouK8+emjDrXxcIDsKK+iaqT5jaGl8XCA7CivpooA+a8SVbnxcIDsKK+eWuD5kxINufFwgOwor6bi3Pnpow6x8XCA7Civmn5g+emjDqHxcIDsKK+advD56aMO5fFwgOwor57yfPmfEg298XCA7CivlraI+YmFvfFwgOwor5rSuPnTDoW98XCA7Civlsqw+amnEg3xcIDsKK+mysj5rdW58XCA7CivogIs+ZGnDqHxcIDsKK+mTij5zaMOpfFwgOwor6IuSPnLEg258XCA7Civmn54+enXDsnxcIDsKK+eDtz53w6FufFwgOwor56erPnNow7p8XCA7Civpm4k+emjDrHxcIDsKK+efuD5nYW58XCA7CivnhLE+ecOgbnxcIDsKK+i1hT5nYWl8XCA7Civmmbc+Z3XErXxcIDsKK+akgT5ndcWPfFwgOwor5r6NPnNow7l8XCA7Civoiqk+ccOtbnxcIDsKK+Wmij5yw6hufFwgOwor6YW9PnnDoG58XCA7CivpoqI+aMOgb3xcIDsKK+eXsT5mw6hpfFwgOwor54mdPnDDrG58XCA7Civmm5w+ecOgb3xcIDsKK+mAkT5xacO6fFwgOwor6aWsPmNow6x8XCA7Civlsqs+eGnDuXxcIDsKK+W4jz53w6lpfFwgOwor5ZOPPmjElW58XCA7Civlnag+dHXDs3xcIDsKK+iupj5qacOpfFwgOwor55eIPmxpZXxcIDsKK+i4hT5jaMOsfFwgOwor6LGVPnNoxK18XCA7CivnlrE+cMOgb3xcIDsKK+ejlD56aMOpfFwgOwor5oKxPmbElWl8XCA7Civmj4Y+a3XDrXxcIDsKK+iVqD5qdcOpfFwgOwor6YWaPmZlbnxcIDsKK+mzlz5tw6FufFwgOwor572FPnhpw6B8XCA7Civpuac+emjDqHxcIDsKK+eViD5mw6BufFwgOwor55OSPnrDoG58XCA7CivlpKQ+ecOtbnxcIDsKK+Wblz53w6lpfFwgOwor6IyxPnpodXxcIDsKK+mkrj50acOofFwgOwor6YWhPnR1w7N8XCA7Civmmow+a3XDrXxcIDsKK+aggD56aGl8XCA7Civmv5E+bMOgaXxcIDsKK+W6pT54aXV8XCA7CivmjrQ+Z3XDs3xcIDsKK+mDlz5jaGl8XCA7Civljp0+Y3XDsnxcIDsKK+essz5qaWF8XCA7Civnl6c+c2hhfFwgOwor6ZOpPnNoYXxcIDsKK+edgz5qw7lufFwgOwor54+PPmp1w6l8XCA7CivmsYo+Y2jDoHxcIDsKK+aBvT55w7lufFwgOwor5oGCPnjDum58XCA7Civlv4Q+c2jDuXxcIDsKK+awpj5ow6BpfFwgOwor6ayjPmxpw6h8XCA7CivpnqM+csOzdXxcIDsKK+minz5tw6FufFwgOwor5oC8PmR1w6x8XCA7CivnhJA+dGFvfFwgOwor6Z+rPnnDuW58XCA7CivltLQ+d2VpfFwgOwor6aSNPnnDoG58XCA7CivouJ8+Y2jDrXxcIDsKK+eatD5jdW58XCA7CivooaQ+Y2jEg3xcIDsKK+aXhD5tw6FvfFwgOwor57ymPm3DoG58XCA7CivnvJc+bcOtbnxcIDsKK+W7qj5sxK1ufFwgOwor6La4PmTFrW58XCA7CivosYk+Y2jErXxcIDsKK+eXvz53xJVpfFwgOwor552iPnN1aXxcIDsKK+eAoz54acOofFwgOwor5redPmbDqWl8XCA7CivmgI0+enXDsnxcIDsKK+mmkD54aXV8XCA7Civlvq0+ecOhb3xcIDsKK+Warz5odcOyfFwgOwor5ZGWPmLEk2l8XCA7CivmlIk+aHXDsnxcIDsKK+iVmT5odcOsfFwgOwor6YKzPnDDqWl8XCA7Civosok+aMOhb3xcIDsKK+a7gT5jaMO6fFwgOwor6b6IPmvElW58XCA7CivnuYc+ecOhb3xcIDsKK+eWlj5qacOpfFwgOwor5q2GPnhpbnxcIDsKK+i1iT5sw6BpfFwgOwor55CwPnnEg258XCA7Civnur4+c2h1fFwgOwor6L+oPmTDoGl8XCA7Civni7o+ecOtbnxcIDsKK+W4lD5ww6hpfFwgOwor5biZPnpow6x8XCA7CivlkrQ+aHXDoXxcIDsKK+iWhT5oYW98XCA7Civpuog+emjFrXxcIDsKK+mykT5ndWl8XCA7CivoubA+Y2jDunxcIDsKK+ezjD56w6FufFwgOwor6KSrPmNoxK18XCA7Civmpa4+Y2jFrXxcIDsKK+eBjz5ow6BvfFwgOwor5o2tPmLEg2l8XCA7CivolaQ+cnXDrXxcIDsKK+iRrT5qaWF8XCA7CivokZo+csOobnxcIDsKK+iNqD54w7pufFwgOwor6YOFPnpow6x8XCA7CivplJc+ZHXFj3xcIDsKK+mzgz5zYWl8XCA7CivplYo+bGnDuXxcIDsKK+mOjz5sacO6fFwgOwor6La1PmLDoG98XCA7Civphbk+bMOoaXxcIDsKK+euqj5kYW58XCA7CivomrY+aGFufFwgOwor6ZWFPm3DqWl8XCA7CivnlbI+c2hlfFwgOwor5qGhPm7DoW98XCA7Civmnrg+Z291fFwgOwor5rq0Pnhpw7l8XCA7CivmtZQ+eMO6bnxcIDsKK+eLkj5mw6hpfFwgOwor54uBPnnFrW58XCA7Civmj7g+emhhfFwgOwor6Iy0Pmh1w618XCA7Civlgqc+YsOsbnxcIDsKK+mDpz5wxY91fFwgOwor6L6KPmfFrW58XCA7CivpkpI+ZsOhbnxcIDsKK+m6hz5qdW58XCA7CivphaI+enXDsnxcIDsKK+iHrD5uacOofFwgOwor6KG/PmppbnxcIDsKK+eYmT5zYW98XCA7Civmr7U+c2FufFwgOwor6L2rPnLDqG58XCA7CivnkKw+d8SDbnxcIDsKK+Wtkz5qdcOpfFwgOwor5rSMPmxpw6h8XCA7CivpmJo+a8OgbnxcIDsKK+mXvD5rYWl8XCA7Civoi7c+Z2FufFwgOwor5aCePmRpw6l8XCA7CivlnYw+YsOobnxcIDsKK+WLsD54acOpfFwgOwor6ICSPmzElWl8XCA7CivnnZo+ecOhaXxcIDsKK+aYgD55w7pufFwgOwor5qSkPmx1w7N8XCA7Civnu4A+Z8OgbnxcIDsKK+Wmlz5qw6xufFwgOwor5oKdPmt1aXxcIDsKK+W1rz5jdcOzfFwgOwor5ZiePmzEk2l8XCA7CivmsL0+dMWtbnxcIDsKK+mMvj5odcOyfFwgOwor6YWvPnpoxK18XCA7Civnrqc+cWnDqHxcIDsKK+eWoz55w7N1fFwgOwor6ZWTPmppYXxcIDsKK+mUuD5jaMOhfFwgOwor6IOdPnpoaXxcIDsKK+aqqT5sxK1ufFwgOwor5qeOPmNow6F8XCA7CivmnrM+emjErXxcIDsKK+Wwuz5rYW98XCA7Civmsqk+aHXDrHxcIDsKK+aCgz5rxa1ufFwgOwor6JWePnp1w6x8XCA7Civojb0+c3VpfFwgOwor5aKBPm3DoG58XCA7CivnlZo+YsSVbnxcIDsKK+S/hT5xacO6fFwgOwor6ZWPPmxpw7p8XCA7CivnopM+ZHXDrHxcIDsKK+ekuz5zaMOsfFwgOwor5oyIPnFpw6h8XCA7CivmnbI+Z8SDb3xcIDsKK+aluD5xaXV8XCA7CivmoZU+Z2FvfFwgOwor5rq3PmjDuW58XCA7Civms5Q+Z2FufFwgOwor5oSmPmt1w6x8XCA7CivltKQ+ecOhb3xcIDsKK+iPvT5zaMO6fFwgOwor5L+zPnDDoWl8XCA7Civpm6A+Y2hpfFwgOwor6LaxPnrEg258XCA7Civnv6U+emjDuXxcIDsKK+etrj5zaMOsfFwgOwor6aKePm5pw6h8XCA7CivpuLE+emhpfFwgOwor6ZS0PmvEg2l8XCA7CivohKw+cGFvfFwgOwor5oihPmthbnxcIDsKK+e8qz5zYW98XCA7CivpqpY+Y2FufFwgOwor5aarPmd1aXxcIDsKK+a2nj5ndW98XCA7CivmtIQ+aHXDrXxcIDsKK+mYiD55w6BufFwgOwor542vPnh1bnxcIDsKK+eLjT5ww6FvfFwgOwor5bWsPnfDqWl8XCA7CivlkZQ+ZGFpfFwgOwor5aKAPmNow618XCA7CivphKI+eWFufFwgOwor6YOvPnTDoW58XCA7CivpvJA+bsOgaXxcIDsKK+iwsD5sw6FufFwgOwor6by5PnnEg258XCA7CivprZE+Y2hpfFwgOwor6bOVPnh1xJV8XCA7Civot4Y+dMOhaXxcIDsKK+iioj5ww6BufFwgOwor55+sPmN1w7N8XCA7CivplZ4+eMOtbnxcIDsKK+eimj5iw6hpfFwgOwor5oSNPm3ErW58XCA7CivmrZk+c2jDqHxcIDsKK+aavj50dW58XCA7Civmv4k+c3VpfFwgOwor5rqyPnNvdXxcIDsKK+mjpz5zdW58XCA7Civniq0+ZsSDbnxcIDsKK+WWiD5qaWV8XCA7Civmjak+bGnDqHxcIDsKK+iPgD53xINufFwgOwor6I2mPmx1w7J8XCA7Civln5k+eHVufFwgOwor6ZmfPnpow6x8XCA7Civkvok+a3VhfFwgOwor5rCWPm7Eg2l8XCA7CivpqrE+eGnDqHxcIDsKK+mznz56w7lufFwgOwor6ZyIPnDDqGl8XCA7CivooJY+aHXDsnxcIDsKK+easj5qdW58XCA7CivnmIo+aMOzdXxcIDsKK+m4uT5ndWF8XCA7Civpk5k+bsOhb3xcIDsKK+iFqT5uxINufFwgOwor5YiWPnl1w6h8XCA7CivmsJg+ZGFvfFwgOwor5pubPnh1bnxcIDsKK+anvz5qxK1ufFwgOwor5qanPmbElWl8XCA7Civpqpg+emjDrHxcIDsKK+a9tD56aHV8XCA7Civms64+cMOgbnxcIDsKK+aQpj5udcOyfFwgOwor5aCHPmrErW58XCA7CivojrM+c2jDrXxcIDsKK+WgmT55aW58XCA7CivlnrQ+bsSDb3xcIDsKK+Wduz5jaMOtfFwgOwor6ZqXPnfElWl8XCA7CivljqM+ecSDbnxcIDsKK+Wbnz54w6xufFwgOwor5Li/PnBpxJV8XCA7CivpvKw+ecOydXxcIDsKK+mquj5nw7J1fFwgOwor6Y2qPm3Ds3V8XCA7Civot48+amlhfFwgOwor6LeWPnpow618XCA7Civphqo+bMOhb3xcIDsKK+ezhT5yxY91fFwgOwor6JqLPnJ1w6x8XCA7Civoorc+amnDoXxcIDsKK+eZjT5iYW58XCA7Civplac+bMOgbnxcIDsKK+mTlz5qacOhfFwgOwor6L6PPmPDsnV8XCA7CivmqaU+emh1fFwgOwor5qGrPnN1b3xcIDsKK+mqgD50w6FpfFwgOwor5auYPmzDqWl8XCA7Civmh5Q+bMStbnxcIDsKK+aGtz5jaMWtfFwgOwor54yePnNow6h8XCA7CivltZ0+bMWPdXxcIDsKK+aRrT56aMOtfFwgOwor6Je/Pmh1w7J8XCA7Civokow+bGnFrXxcIDsKK+Wfkj5sw6hpfFwgOwor6YSePnnDrW58XCA7Civpg5w+Z8Ogb3xcIDsKK+WEiz5kYW58XCA7CivljaM+ecWPdXxcIDsKK+eIuz55w6FvfFwgOwor54KUPnF1ZXxcIDsKK+mbkj5sdcOyfFwgOwor6ZyqPnnDrW58XCA7Civns5c+cWnFrXxcIDsKK+eurD5ydcOyfFwgOwor55ekPmN1w7N8XCA7CivplbI+Y2jEg3xcIDsKK+mUnz5rdW58XCA7CivpkpU+bsO8zIZ8XCA7CivnnK0+c3VpfFwgOwor5peSPmxpw7p8XCA7Civml4Y+cMOoaXxcIDsKK+aXsD5nw6BufFwgOwor5qi+Pnl1w6h8XCA7Civmnpg+cnXDrHxcIDsKK+mYjT5odW58XCA7Civlv4k+ZGFvfFwgOwor5buoPnhpw6h8XCA7CivlvbM+Y2jDrHxcIDsKK+Wyoz5nxY91fFwgOwor5Ze+PnPFj3V8XCA7Civlk5o+ZHXFj3xcIDsKK+aOij5ww7N1fFwgOwor5ou2PnrEg258XCA7Civok40+c2hpfFwgOwor6IqqPmNow618XCA7Civoibk+Y8SDb3xcIDsKK+WdqT5nYW58XCA7Civpg4c+eMO6bnxcIDsKK+maiD53ZWl8XCA7CivosLM+ecOgbnxcIDsKK+iuoD55w6FufFwgOwor5L6RPnnDsnV8XCA7Civkuo0+Y2jDuXxcIDsKK+i6kD5sacOofFwgOwor6LmvPmbDoW58XCA7CivouKw+emjDrHxcIDsKK+ezgT5zYW58XCA7Civnr5o+ZsSVaXxcIDsKK+evjD5ow7N1fFwgOwor6JuxPmppw6F8XCA7Civoo7A+ZHVvfFwgOwor6ZWZPmx1w7N8XCA7CivplIc+dGnElXxcIDsKK+mSvT5kw6BufFwgOwor6ZKjPmLEg258XCA7CivnoJg+ZMO5bnxcIDsKK+eglz5jaGV8XCA7Civnhpg+bGl1fFwgOwor6IOZPnp1w7J8XCA7Civmr7M+Y3XDrHxcIDsKK+aolz5jaHV8XCA7Civmn7A+bsOgaXxcIDsKK+eOoj5iaW58XCA7CivnvKc+bMOpaXxcIDsKK+e7kD5kw6BpfFwgOwor57uBPnhpw6h8XCA7CivmvYY+cGllfFwgOwor5rqGPmzDs3V8XCA7CivpmIM+a8WtbnxcIDsKK+W0gz5sw6FpfFwgOwor5Zm7PnPEgWl8XCA7Civmkpk+esWtbnxcIDsKK+iUuD5kb3V8XCA7Civoj6E+aMOgbnxcIDsKK+mDkz55w7lufFwgOwor6ZmnPm5pw6h8XCA7Civor5Q+bMSVaXxcIDsKK+m+oD55dcOofFwgOwor5YG+PmbDqG58XCA7CivliYA+a8SDaXxcIDsKK+WNrj56aGl8XCA7CivpkqE+YsOoaXxcIDsKK+mroT5rdW58XCA7Civps5w+anXDqXxcIDsKK+m8jT50dcOzfFwgOwor6LmAPmRpw6l8XCA7Civonq0+Y2hpfFwgOwor6J2kPnFpw7p8XCA7CivonaM+ecOzdXxcIDsKK+iapz5qacOofFwgOwor6Jm6Pmh1aXxcIDsKK+iluz5ww6BufFwgOwor6KSZPmLDqGl8XCA7Civnqqg+eHVufFwgOwor6ZSOPmthaXxcIDsKK+mTiD5zaMOsfFwgOwor6ZKUPm3DqW58XCA7CivnoIk+aHXDsnxcIDsKK+eFuj50dcOsfFwgOwor5qCyPmvEg298XCA7Civmn50+dHXDsnxcIDsKK+eUvj56YWl8XCA7Civmtbw+bcSVaXxcIDsKK+WUkT56dcOyfFwgOwor6JWIPnjDuW58XCA7Civoj7g+eWFufFwgOwor5Z+tPmTDoGl8XCA7Civln70+c8Ogb3xcIDsKK+WftD56aMOtfFwgOwor5Z28PmNow6h8XCA7CivliqI+bcOgaXxcIDsKK+mDjz5kw7J1fFwgOwor6K+WPmd1w6B8XCA7CivooIM+bHXFj3xcIDsKK+WOjT5zaMOofFwgOwor6ayPPmppdXxcIDsKK+mruT54aXV8XCA7CivpsrE+ZmVpfFwgOwor6bKpPnfEg258XCA7CivpspI+amnDqXxcIDsKK+inlj5qdcOpfFwgOwor6LKFPnhpdXxcIDsKK+i6nj54acOofFwgOwor6YaiPmjEg2l8XCA7CivphoU+cGVpfFwgOwor6ImJPnfElWl8XCA7CivoiLM+emjDunxcIDsKK+etmD5rw7J1fFwgOwor56yxPmfFj3V8XCA7CivnvLY+ZsWPdXxcIDsKK+ifqj5odcOsfFwgOwor6J+KPm3DoW98XCA7CivonpM+ccOtbnxcIDsKK+icvj5ndcWPfFwgOwor6JqwPnnDs3V8XCA7CivogYM+ZGFufFwgOwor55OePmRpw6l8XCA7CivplJ4+a3XEg3xcIDsKK+mTnz55aW58XCA7Civpk5U+ecWPdXxcIDsKK+eegD5tw6BvfFwgOwor55y1PmNoaXxcIDsKK+aGnT5kdcOsfFwgOwor54idPmp1w6l8XCA7CivnhrM+bcOgbnxcIDsKK+eEkz5ow6FufFwgOwor5q6zPnNodXxcIDsKK+iFpz5zaMO5fFwgOwor6IONPmd1YXxcIDsKK+eJlj55xY91fFwgOwor6LWGPmrDrG58XCA7CivmmLQ+bcSDb3xcIDsKK+aYnT56xINufFwgOwor54KFPmd1w6x8XCA7Civnk78+cMWPdXxcIDsKK+ahtz5qdcOpfFwgOwor5p+9Pmp1w6l8XCA7Civmn5k+eGnDoXxcIDsKK+e8kT5nb3V8XCA7Civpqbo+em91fFwgOwor5b2YPnpow6x8XCA7CivpgZg+Z8OydXxcIDsKK+masz5odWl8XCA7Civlu5E+asStbnxcIDsKK+W6uT50dcWPfFwgOwor6aaTPnPEg258XCA7Civni4M+bmnFrXxcIDsKK+ixsz5iaW58XCA7CivltJ4+Z3VvfFwgOwor5ZS8PnNow6B8XCA7Civlk7M+emhhfFwgOwor5pGFPmppdXxcIDsKK+aPsj5zaMOpfFwgOwor5YyPPnDDoW98XCA7CivomKk+ZsOhbnxcIDsKK+iXgT5nxINvfFwgOwor6I2sPm3Eg2l8XCA7Civojak+asOsbnxcIDsKK+iMmz5nw6hufFwgOwor6IyMPmNow618XCA7Civoib8+bsSDaXxcIDsKK+Wesj5rxINpfFwgOwor5Z6kPmRpw6l8XCA7Civpgpc+aMOhbnxcIDsKK+mZlD5nYWl8XCA7Civljbo+asStbnxcIDsKK+S+lD5tw7N1fFwgOwor5Yi/Pmd1w6x8XCA7CivpvKI+ZsOpbnxcIDsKK+mrjD5iw6xufFwgOwor6bOYPm3ErW58XCA7Civpsr0+ZGnDqXxcIDsKK+mylD53xJVpfFwgOwor6bKQPnTDoWl8XCA7CivpvoU+cMOhb3xcIDsKK+inrz56aMOsfFwgOwor6YWQPmdhbnxcIDsKK+e1tz56aMOtfFwgOwor57OHPmjDs3V8XCA7CivoiZo+Y8Ohb3xcIDsKK+ewiz5ndcStfFwgOwor56+8PmRvdXxcIDsKK+ieqD5txINufFwgOwor6JuRPm3Ds3V8XCA7Civom54+a3XDsnxcIDsKK+ibsj5yw6FvfFwgOwor6Jq6PnLDoW58XCA7Civoo4k+a8OobnxcIDsKK+iivD5sdcOyfFwgOwor55iVPmppxIN8XCA7CivnlrM+Z2FufFwgOwor6ZWkPmzDoW58XCA7CivplZg+bcOgbnxcIDsKK+mVhD5mw6hpfFwgOwor6ZO5PmzDoW98XCA7CivpkoY+cWnDunxcIDsKK+e9qD55xINufFwgOwor56OZPmfFrW58XCA7CivnoYc+bsOhb3xcIDsKK+egqT5mw6hpfFwgOwor5oKrPnF1w6h8XCA7CivngrE+dMOhaXxcIDsKK+eCuz5sdcOyfFwgOwor6IamPmzDrG58XCA7Civohqo+emjDoHxcIDsKK+iEnj5jdcWPfFwgOwor5q+5PnNodXxcIDsKK+i1hz5xacO6fFwgOwor6L26PnnDoW98XCA7CivovbU+ZGnDqXxcIDsKK+aqqz5jaMOhfFwgOwor5qaNPnhpw6h8XCA7CivmpoA+cMStbnxcIDsKK+ajvD5mw6lufFwgOwor5qCdPmd1YXxcIDsKK+agsz5sxINvfFwgOwor5qCKPmzDoW98XCA7Civnu7I+Z8WtbnxcIDsKK+WquD5jaGl8XCA7CivlroQ+Z3XErXxcIDsKK+a8pD5nYW58XCA7Civmu6A+c2jDqHxcIDsKK+mYjD53w6lufFwgOwor5bqLPmd1xK18XCA7Civppoc+Y2hhfFwgOwor6aWjPnNow618XCA7CivlpII+Y2jFrXxcIDsKK+eNrD54acOofFwgOwor5bSmPnlhbnxcIDsKK+Wahj5oYW98XCA7CivnlJk+ZMOgaXxcIDsKK+aSlj5ow6BufFwgOwor6Ja5PnTDoWl8XCA7CivolqQ+eGnDqHxcIDsKK+iQjz5kw6BufFwgOwor6I6wPmvEg258XCA7CivojIY+bcSDb3xcIDsKK+WgoD5ow7J1fFwgOwor5Z+YPnNow618XCA7Civpg74+ecSDbnxcIDsKK+mDhD5xdcOofFwgOwor5Y2pPmppw6l8XCA7CivosK4+esOobnxcIDsKK+iwhz5zdcOsfFwgOwor5YOmPmppw7l8XCA7CivljKY+Z3XErXxcIDsKK+S5hz56aMOpfFwgOwor6YWePnTDoGl8XCA7CivpvqQ+eGnDqXxcIDsKK+m+oz5kb3V8XCA7Civpvp4+YmllfFwgOwor6b6dPmp1bnxcIDsKK+m+nD5ndWl8XCA7CivpvpU+a2FufFwgOwor6b6RPnnEg258XCA7CivpvoI+a8SVbnxcIDsKK+m9vT5qw6xufFwgOwor6b28PmNoxa18XCA7Civpvbo+em91fFwgOwor6b2zPm7ElW58XCA7CivpvbA+Y3XDsnxcIDsKK+m9rT5jaMWtfFwgOwor6b2rPmvFrW58XCA7Civpvak+ecSDb3xcIDsKK+m9qD5qacO5fFwgOwor6b2nPm5pw6h8XCA7CivpvaY+a8SVbnxcIDsKK+m9pT54acOofFwgOwor6b2jPmNodXxcIDsKK+m9nT5jaGl8XCA7CivpvZo+Y3XDsnxcIDsKK+m9mT5ww6FvfFwgOwor6b2YPnhpw6h8XCA7CivpvZc+a8SVbnxcIDsKK+m9kj5jaMStfFwgOwor6b2HPnpoYXxcIDsKK+m9hT54acO5fFwgOwor6b2BPmhvdXxcIDsKK+m8vT5xacO6fFwgOwor6by8PnnEg298XCA7CivpvLo+bMOpaXxcIDsKK+m8uD5ob3V8XCA7CivpvLQ+ecSDbnxcIDsKK+m8sj5ow7pufFwgOwor6bytPnNow618XCA7CivpvKs+c2jDrXxcIDsKK+m8pz50dcOzfFwgOwor6bykPnfDqW58XCA7CivpvKM+ZsOoaXxcIDsKK+m8oT5zaMWtfFwgOwor6bybPmdhb3xcIDsKK+m8lz50w6FvfFwgOwor6byWPmbDqW58XCA7CivpvIk+dHXDs3xcIDsKK+m8iD5iaWV8XCA7CivpvIU+emhpfFwgOwor6byEPnpodXxcIDsKK+m7vT5txK1ufFwgOwor6bu6PmbElW58XCA7Civpu7k+emjErXxcIDsKK+m7tj55xINufFwgOwor6bu1PmTEg258XCA7Civpu7Q+bcOpaXxcIDsKK+m7sj5jxINufFwgOwor6buxPmTDoGl8XCA7Civpu64+ZMSDbnxcIDsKK+m7rT55YW58XCA7Civpu6s+eWlufFwgOwor6buqPmPEg258XCA7Civpu6Q+ecSDbnxcIDsKK+m7oz5txJVpfFwgOwor6buhPnnEg258XCA7Civpu5U+ZGFufFwgOwor6buSPmTEg258XCA7Civpu5A+Y2hpfFwgOwor6buIPnTFj3V8XCA7Civpu4U+amlufFwgOwor6buCPmbDqW58XCA7Civpu4E+bmVufFwgOwor6buAPnpvdXxcIDsKK+m6sz5sw6FpfFwgOwor6bqwPm3Ds3V8XCA7Civpuq0+cMOgb3xcIDsKK+m6pT5tw6BpfFwgOwor6bqjPnnDoW58XCA7Civpupo+amlhfFwgOwor6bqZPnnDoW58XCA7CivpupU+anVufFwgOwor6bqUPmppw7l8XCA7CivpupA+bMOtbnxcIDsKK+m6jz5qdW58XCA7Civpuo0+bGnDunxcIDsKK+m6hj5jaMO6fFwgOwor6bqAPnlvdXxcIDsKK+m5vj5jdcOzfFwgOwor6bm9PnnDoW58XCA7Civpubo+Y3XDs3xcIDsKK+m5tj5qaW58XCA7CivpubE+aHXDsnxcIDsKK+m5oD5sacO6fFwgOwor6bmbPm3DqWl8XCA7CivpuY4+YmVpfFwgOwor6bmNPmt1bnxcIDsKK+m4uj54aXV8XCA7CivpuLQ+eHXDqXxcIDsKK+m4pD5zaGl8XCA7CivpuJk+eXXDqHxcIDsKK+m4lD5iw6BvfFwgOwor6biTPmzElWl8XCA7CivpuJE+eXXDqHxcIDsKK+m4jD5odcOyfFwgOwor6biFPnpow6l8XCA7CivpuIE+bHXDs3xcIDsKK+m4gD5zaMO6fFwgOwor6be9Pnh1w6l8XCA7Civpt7c+enVufFwgOwor6be2Pm3Eg2l8XCA7Civpt7I+amnDuXxcIDsKK+m3sT5rYW98XCA7Civpt7A+ecOgbnxcIDsKK+m3rT5mw6FufFwgOwor6beqPnlhbnxcIDsKK+m3qD5odWF8XCA7Civpt6M+ecOtbnxcIDsKK+m3oj5qdcOpfFwgOwor6becPmzDs3V8XCA7Civpt5k+emjDrHxcIDsKK+m3mD5jaMOsfFwgOwor6beVPnnEg298XCA7Civpt5M+emjDqHxcIDsKK+m3jj5nYW98XCA7Civpt4c+a8OydXxcIDsKK+m3gz55w6BufFwgOwor6beCPnnDoG98XCA7Civptr0+c8WtbnxcIDsKK+m2uT5sacO6fFwgOwor6ba4PnJ1w7J8XCA7Civptrc+eGnDoHxcIDsKK+m2tT5jaMO6fFwgOwor6bazPnNoaXxcIDsKK+m2qD5kw7lufFwgOwor6balPm3DqWl8XCA7CivptqQ+ecO5bnxcIDsKK+m2oj5rdW58XCA7CivptqA+ecSDbnxcIDsKK+m2nD5tw6FvfFwgOwor6babPmppZXxcIDsKK+m2lj5xaXV8XCA7CivptpQ+csOzdXxcIDsKK+m2kj5jaMOsfFwgOwor6baQPnNow7l8XCA7CivptoY+bMOhaXxcIDsKK+m1vj5rdW58XCA7CivptbI+cXXDqHxcIDsKK+m1rz5iZWl8XCA7Civpta0+ZHXDsnxcIDsKK+m1qD5zaHV8XCA7CivptaM+bMOgaXxcIDsKK+m1mD5qw7lufFwgOwor6bWUPnjDuW58XCA7CivptZA+asO5bnxcIDsKK+m1jj50dcWPfFwgOwor6bWKPmppw6F8XCA7CivptYU+bHXDsnxcIDsKK+m1hD5jaGl8XCA7CivptYI+eGl1fFwgOwor6bWAPnLDqG58XCA7CivptL4+bcOzdXxcIDsKK+m0vD5sdcOyfFwgOwor6bS5PnLDqW58XCA7CivptLg+emh1fFwgOwor6bS3Pmxpw6h8XCA7CivptLM+ecOgbnxcIDsKK+m0sj56aGl8XCA7CivptLA+Z3VhfFwgOwor6bSpPnRpxJV8XCA7CivptKI+ecOydXxcIDsKK+m0oD5kw6BufFwgOwor6bSfPmNoaXxcIDsKK+m0mT56aMOsfFwgOwor6bSWPnfDqW58XCA7CivptJU+dHXDs3xcIDsKK+m0kz5tacOofFwgOwor6bSQPmppYXxcIDsKK+m0jT53w6lufFwgOwor6bSKPmppYXxcIDsKK+m0iD55w6BufFwgOwor6bSHPmLEg298XCA7CivptIM+anXDqXxcIDsKK+m0gj5qdcOofFwgOwor6bSBPmp1w6l8XCA7CivptIA+ZsWPdXxcIDsKK+mzvj5zaGl8XCA7Civps7w+d8OpbnxcIDsKK+mzuz5mZW58XCA7Civps7k+ccOtbnxcIDsKK+mztz56aGl8XCA7Civps7U+YsSDb3xcIDsKK+mzsj5zaGl8XCA7Civps7E+Z2FufFwgOwor6bOuPmjDoG58XCA7Civps6s+ecOgbnxcIDsKK+mzqT5qaXV8XCA7Civps6Q+ZMSDb3xcIDsKK+mzoT5nxINufFwgOwor6bOaPmd1w6x8XCA7Civps4s+c2FvfFwgOwor6bOCPndlaXxcIDsKK+mzgT53ZW58XCA7Civps4A+c2jDrHxcIDsKK+myvD5mw6hufFwgOwor6bK6PnNoaXxcIDsKK+mysD56b3V8XCA7Civpsqo+anVufFwgOwor6bKYPmjDsnV8XCA7CivpspM+a8SDb3xcIDsKK+myjj5ow7J1fFwgOwor6bKKPnpoxIN8XCA7Civpsok+ecOzdXxcIDsKK+mygD50w7pufFwgOwor6bG9PmRhb3xcIDsKK+mxtD5tacOofFwgOwor6bGyPmxpw6h8XCA7Civpsa8+aHXDsnxcIDsKK+mxpT5ndcOsfFwgOwor6bGkPmfEg258XCA7CivpsaI+c2FvfFwgOwor6bGhPnrDqWl8XCA7CivpsZ8+aMOydXxcIDsKK+mxnT5mw6hufFwgOwor6bGYPnjDum58XCA7CivpsZc+bMOtbnxcIDsKK+mxlj5ndcOsfFwgOwor6bGVPmZhbnxcIDsKK+mxkj56w7lufFwgOwor6bGPPnjDum58XCA7CivpsYo+anXDqXxcIDsKK+mxiT5iaWV8XCA7CivpsYg+eHXElXxcIDsKK+mxgz5xaXV8XCA7CivpsYE+emjDunxcIDsKK+mwvT5xacO6fFwgOwor6bC7Pm3DoW58XCA7CivpsLo+c2FvfFwgOwor6bC1Pm3ErW58XCA7CivpsLQ+aHVpfFwgOwor6bCvPnJ1w7J8XCA7CivpsK4+d2VufFwgOwor6bCsPmNhbnxcIDsKK+mwqT55w6FvfFwgOwor6bCnPmRpw6l8XCA7CivpsKQ+c2hpfFwgOwor6bCjPnNow618XCA7CivpsKE+bGnDunxcIDsKK+mwnT5ow6BvfFwgOwor6bCbPndlbnxcIDsKK+mwmT5ydcOyfFwgOwor6bCWPnR1xY98XCA7CivpsJU+eGnDoXxcIDsKK+mwkz5zYWl8XCA7CivpsI0+cWl1fFwgOwor6bCMPnFpw7p8XCA7CivpsIs+ecSDbnxcIDsKK+mwiD5kacOpfFwgOwor6bCHPnFpw6h8XCA7CivpsIQ+d2VpfFwgOwor6bCDPndlaXxcIDsKK+mvuj56w6lpfFwgOwor6a+4PmjDs3V8XCA7Civpr7c+c2jDrHxcIDsKK+mvtj5oxa1ufFwgOwor6a+0PnNoaXxcIDsKK+mvrz56aMOsfFwgOwor6a+rPnpvdXxcIDsKK+mvpj5qacO5fFwgOwor6a+kPmt1bnxcIDsKK+mvoT5mZWl8XCA7Civpr6A+bMOhaXxcIDsKK+mvnD5xacOofFwgOwor6a+YPm7ElWl8XCA7Civpr4w+Z8Ogb3xcIDsKK+mviz5zaGF8XCA7Civpr4o+c2hhfFwgOwor6a+EPnFpw7p8XCA7Civpr4A+Z8WtbnxcIDsKK+muvz56aMOpfFwgOwor6a6+Pm7ElWl8XCA7Civprrw+cWlufFwgOwor6a67PnNoYXxcIDsKK+mutj5qdW58XCA7CivprrU+ZHXDs3xcIDsKK+musz5rxINvfFwgOwor6a6wPmh1w618XCA7Civprq0+Z3VpfFwgOwor6a6qPnfElWl8XCA7CivprqU+bHXDsnxcIDsKK+mupD5sacOofFwgOwor6a6jPnnDrG58XCA7CivprqA+d8OpaXxcIDsKK+munD5ow7J1fFwgOwor6a6bPnNodXxcIDsKK+mumj5qacOpfFwgOwor6a6TPnpoxIN8XCA7CivprpE+YsOgb3xcIDsKK+mukD50w6FpfFwgOwor6a6OPmJhb3xcIDsKK+mujD5nxa1ufFwgOwor6a6HPnfDqGl8XCA7CivproA+dHXDs3xcIDsKK+mtvT5oYW58XCA7Civprbs+eGnDoXxcIDsKK+mttz55w7N1fFwgOwor6a21PmbDqW58XCA7Civpra0+d8SDbnxcIDsKK+mtrD5mxINufFwgOwor6a2qPmppw6h8XCA7Civprag+dMO6bnxcIDsKK+mtpj5zaGF8XCA7CivpraQ+YsSDbnxcIDsKK+mtoD50dW98XCA7CivprZw+csOpbnxcIDsKK+mtmz5kYW98XCA7CivprZg+ecSDbnxcIDsKK+mtiz50dcOtfFwgOwor6a2APmppw6h8XCA7CivprL0+bcOoaXxcIDsKK+msuT5ndWl8XCA7CivprLg+bGnDuXxcIDsKK+mstj5ndWl8XCA7CivprK4+aml1fFwgOwor6aytPmTDsnV8XCA7CivprKw+ZMOydXxcIDsKK+msqz5oxINufFwgOwor6ayqPmTDsnV8XCA7CivprKc+bsOgb3xcIDsKK+mspj5kw7J1fFwgOwor6aylPmTDsnV8XCA7CivprKI+YsOsbnxcIDsKK+msmz5sacOofFwgOwor6ayYPm3DoW58XCA7CivprJc+bcOgbnxcIDsKK+mslj5zYW58XCA7CivprIw+ZHXFj3xcIDsKK+msgj5iw6xufFwgOwor6au/PnNoYXxcIDsKK+mruj5ndcOgfFwgOwor6auzPm3DoW98XCA7Civpq7E+cMOgb3xcIDsKK+mrqT5iw6xufFwgOwor6auoPmt1bnxcIDsKK+mrpz5kw6BufFwgOwor6aulPnLDoW58XCA7Civpq6Q+eGl1fFwgOwor6auePnrDoG98XCA7Civpq50+bMOgb3xcIDsKK+mrmz5rYW98XCA7Civpq5k+Z2FvfFwgOwor6auVPmLDrG58XCA7Civpq5A+bsOhb3xcIDsKK+mrjz5sw7N1fFwgOwor6auEPnN1xK18XCA7Civpqr0+dHXErXxcIDsKK+mquz5rdcOgfFwgOwor6aq0PmNoaXxcIDsKK+mqsj5iYW98XCA7Civpqq8+YW5nfFwgOwor6aqtPmfDoG58XCA7Civpqqs+d8SVaXxcIDsKK+mqqj53xJVpfFwgOwor6aqZPmt1w618XCA7Civpqo4+cWlufFwgOwor6aqNPnhpbnxcIDsKK+mqgz55aW58XCA7CivpqaA+Y2jDrXxcIDsKK+mpnz56w7J1fFwgOwor6amePmJpbnxcIDsKK+mpnT50dW98XCA7CivpqZg+bHXDs3xcIDsKK+mplz55w6BufFwgOwor6amWPnRpxJV8XCA7CivpqZQ+dMOhbnxcIDsKK+mpkj50dcOzfFwgOwor6amRPmxpw7p8XCA7CivpqY4+bMOtbnxcIDsKK+mpij5odcOhfFwgOwor6amHPnpow6x8XCA7CivpqYI+Y2FufFwgOwor6ai+Pmx1w7N8XCA7CivpqLc+c2FvfFwgOwor6ai2PnpvdXxcIDsKK+motD55w6BufFwgOwor6aiyPmPEg298XCA7CivpqK4+bGnDunxcIDsKK+morT56aMOsfFwgOwor6aipPmt1w6x8XCA7CivpqKg+dHXDs3xcIDsKK+mopz5ndWF8XCA7CivpqKU+csOzdXxcIDsKK+mopD5rdcOtfFwgOwor6aiiPnhpw6F8XCA7CivpqJ8+Z3VpfFwgOwor6aiePmh1w7J8XCA7CivpqJs+ZmVpfFwgOwor6aiVPnnEg298XCA7CivpqJQ+amnDqXxcIDsKK+mokz55xINufFwgOwor6aiSPnNhb3xcIDsKK+mokT5mZWl8XCA7CivpqJA+ecOgbnxcIDsKK+moiz5sw6FpfFwgOwor6aiKPnTDoW98XCA7CivpqIk+a3VufFwgOwor6aiHPnNoxJV8XCA7Civpp78+asO5bnxcIDsKK+mnvj50dcOsfFwgOwor6ae7PmjDoG58XCA7Civpp7g+cWlufFwgOwor6ae1Pmxpw7p8XCA7Civpp7Q+eGnDqHxcIDsKK+mnsz5kw6BufFwgOwor6aexPmx1w7J8XCA7Civpp7A+eWlufFwgOwor6aevPnpodXxcIDsKK+mnrT5ow6BpfFwgOwor6aeoPnjDum58XCA7Civpp6Y+amnDoHxcIDsKK+mnpD56aMOsfFwgOwor6aejPnTDoW98XCA7Civpp6A+bGnDunxcIDsKK+mnnj50dcOzfFwgOwor6aedPnR1w7N8XCA7Civpp5s+c2jErXxcIDsKK+mnmD50w6FpfFwgOwor6aeWPmTDoGl8XCA7Civpp5U+amnDoHxcIDsKK+mnkD56aMO5fFwgOwor6aeCPmLEg298XCA7Civpp4A+ecOzdXxcIDsKK+mmvj5kw6BufFwgOwor6aa9Pnpow618XCA7Civpprw+d8OpbnxcIDsKK+mmuz55xK1ufFwgOwor6aa4PnjDrG58XCA7Civpprc+cMOoaXxcIDsKK+mmtj56aGl8XCA7CivpprU+emjDuXxcIDsKK+mmtD54w7pufFwgOwor6aazPmNow618XCA7CivpprI+dHVvfFwgOwor6aaxPmR1w7J8XCA7CivpprA+ZMOgaXxcIDsKK+mmrz5ow6FufFwgOwor6aaqPmJpbnxcIDsKK+mmqT5mw6lufFwgOwor6aanPndlbnxcIDsKK+mmoz55xINufFwgOwor6aahPmZlaXxcIDsKK+mmoD5oYW58XCA7Civpppo+ZsOpbnxcIDsKK+mmmD5ndcOzfFwgOwor6aaDPmd1xY98XCA7CivppoI+asO5bnxcIDsKK+mlvj5kw7J1fFwgOwor6aW4Pmppw6F8XCA7CivppbM+ZHXDsnxcIDsKK+mlpj50dW98XCA7CivppaA+bHXDs3xcIDsKK+mlnD55w6BufFwgOwor6aWaPmjDoGl8XCA7CivppZk+ZmVufFwgOwor6aWWPmh1w6x8XCA7CivppZI+csOhb3xcIDsKK+mljz5kw6BufFwgOwor6aWOPmNow6x8XCA7CivppYs+a3XDrHxcIDsKK+mlij5zxINufFwgOwor6aWJPmrErW58XCA7CivppYg+eGl1fFwgOwor6aWFPm3DoW58XCA7CivppYI+ecO6bnxcIDsKK+mlgD50w6FvfFwgOwor6aS/PnNvdXxcIDsKK+mkvj5sacO5fFwgOwor6aS9Pmt1w6x8XCA7CivppLs+Z2FvfFwgOwor6aS3PmNoYXxcIDsKK+mktT53w6hpfFwgOwor6aS0PmZlbnxcIDsKK+mksT5ow7N1fFwgOwor6aSvPmh1w6x8XCA7CivppKs+aMO6bnxcIDsKK+mkpz53w6hpfFwgOwor6aSlPmbElWl8XCA7CivppKQ+dMOhbnxcIDsKK+mknT5zaMOsfFwgOwor6aScPmd1xY98XCA7CivppJs+aMO6bnxcIDsKK+mkmj55w6FvfFwgOwor6aSZPmt1bnxcIDsKK+mklj5kw7J1fFwgOwor6aSVPmrDuW58XCA7CivppJI+bsSVaXxcIDsKK+mkiz5zw7lufFwgOwor6aSGPnnDoW98XCA7CivppIE+csOobnxcIDsKK+mkgD5ow6BpfFwgOwor6aO/PmR1w7J8XCA7Civpo74+c2jDrHxcIDsKK+mjvT5ixINvfFwgOwor6aO7PnRpw6h8XCA7Civpo7k+bGnFrXxcIDsKK+mjuD50YW98XCA7Civpo7c+amnElXxcIDsKK+mjsj55xK1ufFwgOwor6aOxPnN1bnxcIDsKK+mjsD5mw6BufFwgOwor6aOvPmbDoG58XCA7Civpo64+ecStbnxcIDsKK+mjrT5jaMOsfFwgOwor6aOqPnLDqG58XCA7Civpo6k+dMO6bnxcIDsKK+mjpT50dW98XCA7Civpo6E+Y2FufFwgOwor6aOgPnNow618XCA7Civpo50+ZmVpfFwgOwor6aOcPmZhbnxcIDsKK+mjmz5mZWl8XCA7Civpo5c+bGnDunxcIDsKK+mjlj55w6FvfFwgOwor6aOFPmxpw7p8XCA7Civpo4A+bGnDunxcIDsKK+mivz5mw6FufFwgOwor6aK+PnNhb3xcIDsKK+mivT5rxINpfFwgOwor6aK8PnNvdXxcIDsKK+miuz55w6FvfFwgOwor6aK5PnfElWl8XCA7CivporM+Z3VhfFwgOwor6aKyPmxpw6h8XCA7CivporE+dMOhaXxcIDsKK+mirD54aWF8XCA7CivpoqM+bMOoaXxcIDsKK+mimT5tYW58XCA7CivpopI+aHXDrHxcIDsKK+mhsz5uacOofFwgOwor6aGyPmzEg258XCA7CivpobA+cMOtbnxcIDsKK+mhrj5iaW58XCA7Civpoaw+a3XErXxcIDsKK+mhqj5odWl8XCA7Civpoag+eMO5bnxcIDsKK+mhpT5ow6BvfFwgOwor6aGkPnFpbnxcIDsKK+mhoj5tYW58XCA7CivpoaE+bWFufFwgOwor6aGePmzDqGl8XCA7CivpoZY+eMOsbnxcIDsKK+mhlD55w6FufFwgOwor6aGRPmvEg258XCA7CivpoZA+aMO6bnxcIDsKK+mhjz55w6FufFwgOwor6aGLPnNhaXxcIDsKK+mhiT5xaW58XCA7CivpoYc+Y3XDrHxcIDsKK+mhhD5ow6BufFwgOwor6aGDPnnDoW58XCA7CivpoYI+bMOgaXxcIDsKK+mgvT50dcOtfFwgOwor6aC7PnDDrW58XCA7CivpoLo+dHXDrXxcIDsKK+mguT50dcOtfFwgOwor6aC3PmjDoG58XCA7CivpoLU+anVufFwgOwor6aCwPmppw6F8XCA7CivpoK8+a3XDrXxcIDsKK+mgrj5odcOsfFwgOwor6aCtPnTDs3V8XCA7CivpoKw+amnDoXxcIDsKK+mgqj5sw6hpfFwgOwor6aCnPmR1aXxcIDsKK+mgoj5ndWF8XCA7CivpoKE+eGnDqXxcIDsKK+mgoD53xJVpfFwgOwor6aCdPmppw6F8XCA7CivpoJs+bMSVaXxcIDsKK+mglj5ww6BufFwgOwor6aCVPmRhbnxcIDsKK+mgkz5kw7lufFwgOwor6aCSPmJhbnxcIDsKK+mgkT53w6FufFwgOwor6aCNPmt1xK18XCA7CivpoIc+aGFufFwgOwor6aCEPnFpw7p8XCA7Civpn74+aHXDsnxcIDsKK+mfvT55aW58XCA7Civpn7s+ecO5bnxcIDsKK+mfsD54acOofFwgOwor6Z+uPmppxa18XCA7Civpn6I+aHXDrHxcIDsKK+mfoT53xJVpfFwgOwor6Z+ePnnDuW58XCA7Civpn50+Z291fFwgOwor6Z+cPnRhb3xcIDsKK+mfmz5iw6hpfFwgOwor6Z+ZPnfElWl8XCA7Civpn5g+c2jDqHxcIDsKK+mflz54w7lufFwgOwor6Z+WPnLDs3V8XCA7Civpn5M+aMOhbnxcIDsKK+mfkT53xJVpfFwgOwor6Z+OPm3DqGl8XCA7Civpn4w+csOobnxcIDsKK+mfiz53w6lpfFwgOwor6Z+KPmzDoW58XCA7Civpnr4+eHVlfFwgOwor6Z68Pmd1w6x8XCA7Civpnrs+bMOzdXxcIDsKK+meuT5rdcOyfFwgOwor6Z62PnDDoW58XCA7CivpnrU+bMO8zIZ8XCA7CivpnrQ+YsOoaXxcIDsKK+mesj5nb3V8XCA7CivpnrE+dGFvfFwgOwor6Z6pPm3Ds3V8XCA7Civpnqc+cWl1fFwgOwor6Z6mPnFpdXxcIDsKK+meoj54acOofFwgOwor6Z6hPmVuZ3xcIDsKK+melj5zdWl8XCA7CivpnpQ+d8SDbnxcIDsKK+mejj5ow6lufFwgOwor6Z6JPnTDoW98XCA7Civpnog+amnDoXxcIDsKK+mehD5ww6FvfFwgOwor6Z6CPmLDoG98XCA7CivpnoE+dHXDs3xcIDsKK+megD50w6FvfFwgOwor6Z2/PmLDqGl8XCA7Civpnb0+YsOgbnxcIDsKK+mdtz55xK1ufFwgOwor6Z21Pm5pxa18XCA7CivpnbI+ccOtbnxcIDsKK+mdsT5yw6hufFwgOwor6Z2tPnLDqG58XCA7Civpnas+Y2hhfFwgOwor6Z2nPmh1w6x8XCA7CivpnaQ+cMOgb3xcIDsKK+mdnz5mZWl8XCA7CivpnYw+YsSDb3xcIDsKK+mdhj5kw6BpfFwgOwor6Z2FPmbDqGl8XCA7CivpnYM+aHXDsnxcIDsKK+mdgT5sw6lpfFwgOwor6Z2APmzDqGl8XCA7CivpnLo+d8OpaXxcIDsKK+mctD5kw6BpfFwgOwor6ZyuPmTDoG58XCA7CivpnKk+aHXDsnxcIDsKK+mcqD53w6hpfFwgOwor6ZymPmJpbnxcIDsKK+mcpD5sacO5fFwgOwor6ZyjPnnFrW58XCA7CivpnKA+eWlufFwgOwor6ZyVPnTDum58XCA7CivpnJI+eWlufFwgOwor6ZyFPnpow6F8XCA7Civpm7U+xINuZ3xcIDsKK+mbsj55w7pufFwgOwor6ZuwPmZlbnxcIDsKK+mbrD5mxY91fFwgOwor6ZukPnh1w6l8XCA7Civpm6M+bsOhbnxcIDsKK+mboT5sacO5fFwgOwor6ZubPmNow7p8XCA7Civpm5g+aHXDsnxcIDsKK+mblz5ow6BufFwgOwor6ZuWPnN1aXxcIDsKK+mbiz5qw7lufFwgOwor6ZuKPmfDsnV8XCA7Civpm4I+ccOtbnxcIDsKK+mauz56aGl8XCA7Civpmrc+Y3VpfFwgOwor6ZqyPmTDoGl8XCA7CivpmrE+ecStbnxcIDsKK+marz5kxINvfFwgOwor6ZqrPmZlbnxcIDsKK+maqD5zdcOtfFwgOwor6ZqkPnR1w618XCA7CivpmqM+bMOtbnxcIDsKK+maoj5yw6BvfFwgOwor6ZqgPnnErW58XCA7Civpmp0+ZMSDb3xcIDsKK+malj5ndWl8XCA7CivpmpU+ecWtbnxcIDsKK+makz5odWl8XCA7CivpmpE+Z2FpfFwgOwor6ZqOPmppZXxcIDsKK+maij5kdcOsfFwgOwor6ZqJPm5pw6h8XCA7Civpmoc+c3XDrHxcIDsKK+magj55aW58XCA7CivpmoE+ecOgbnxcIDsKK+mZvD56aMWtfFwgOwor6Zm7PnlpbnxcIDsKK+mZuD5sacO5fFwgOwor6ZmwPnlpbnxcIDsKK+mZrz5sw7pufFwgOwor6ZmsPnpvdXxcIDsKK+mZqz5ww6lpfFwgOwor6ZmWPnjDuW58XCA7CivpmZI+Z3XErXxcIDsKK+mZjz5kdcOyfFwgOwor6ZmOPnNodXxcIDsKK+mZij5kdcOyfFwgOwor6ZmBPnR1w7N8XCA7CivpmLw+enXDsnxcIDsKK+mYrz56aMStfFwgOwor6ZirPnDDqWl8XCA7CivpmKk+cGVpfFwgOwor6ZinPmTFj3V8XCA7CivpmKQ+dHXDs3xcIDsKK+mYoD53w6hpfFwgOwor6ZiTPmh1w6x8XCA7Civpl78+a8SDaXxcIDsKK+mXrD5ow6BufFwgOwor6ZemPnfDqW58XCA7Civpl6A+aHXDrHxcIDsKK+mXnj5rw6BufFwgOwor6ZeaPmt1aXxcIDsKK+mXmD5kw7J1fFwgOwor6ZeVPnF1ZXxcIDsKK+mXkz5rxINpfFwgOwor6ZeRPm5pw6h8XCA7Civpl4w+bMOhbnxcIDsKK+mXiz5xdcOofFwgOwor6ZeKPmt1w7J8XCA7Civpl4k+eWlufFwgOwor6ZeIPnfDqWl8XCA7Civpl4Y+YsSDbnxcIDsKK+mXhT53w6lufFwgOwor6ZeEPnnEg298XCA7Civpl4E+YmFvfFwgOwor6Za/PnfDqW58XCA7Civplr0+aHVufFwgOwor6Za7PnnDoW58XCA7Civplro+d8OpbnxcIDsKK+mWuT55YW58XCA7Civplrg+a8WtbnxcIDsKK+mWtz5zaGF8XCA7CivplrU+bMOsbnxcIDsKK+mWsj55dcOofFwgOwor6ZaxPnl1w6h8XCA7Civplq8+c2jDoHxcIDsKK+mWqz5rxa1ufFwgOwor6ZapPm3ErW58XCA7Civplqg+Z3VpfFwgOwor6ZamPmNow7l8XCA7CivplqA+csO5bnxcIDsKK+mWnD54acSDfFwgOwor6ZaYPnpow6F8XCA7Civplpc+ZMOydXxcIDsKK+mWlT54aWF8XCA7CivplpQ+bcStbnxcIDsKK+mWkD5zw6BufFwgOwor6ZaPPnLDuW58XCA7Civplos+a2FpfFwgOwor6ZaIPmjDoG58XCA7CivploY+ecOhbnxcIDsKK+mWhT5tw6lufFwgOwor6ZaEPmh1w7J8XCA7CivploA+bcOpbnxcIDsKK+mVuz5kacOpfFwgOwor6ZW5Pmppxa18XCA7CivplaY+ZHXDrHxcIDsKK+mVoT50w6FufFwgOwor6ZWgPmxpw7p8XCA7CivplLw+c291fFwgOwor6ZSsPnTDoW58XCA7CivplKs+cMOpaXxcIDsKK+mUqj5odW98XCA7CivplKc+emjDrHxcIDsKK+mUmD5udcOyfFwgOwor6ZSNPmxpxa18XCA7CivplIo+bMO8w6h8XCA7CivplIY+Z8Ogb3xcIDsKK+mTvD5sw6FpfFwgOwor6ZOqPmppw6F8XCA7Civpk6U+ZGl1fFwgOwor6ZOaPnpow6x8XCA7Civpk5E+bMSDb3xcIDsKK+mThz5iw6BvfFwgOwor6ZKsPmh1w7N8XCA7CivpkoM+c2jFrXxcIDsKK+mSgT5qdcOpfFwgOwor6ZKAPm5pw6h8XCA7Civpkb8+esOhb3xcIDsKK+mRvD5sdcOzfFwgOwor6ZG7PnDDoG58XCA7Civpkbg+bMSVaXxcIDsKK+mRtz5uacOofFwgOwor6ZGzPmh1aXxcIDsKK+mRsD55w6BvfFwgOwor6ZGtPmzDoW58XCA7CivpkaQ+YsOgb3xcIDsKK+mRmD5sw6lpfFwgOwor6ZGWPm1pw6h8XCA7CivpkZU+emjDrHxcIDsKK+mRlD5jaMSDfFwgOwor6ZGOPmt1w6x8XCA7CivpkYw+YmlufFwgOwor6ZGKPmh1w7J8XCA7CivpkYg+bmllfFwgOwor6ZGEPnpow7l8XCA7CivpkYI+eMO5bnxcIDsKK+mQvj5iw6hpfFwgOwor6ZC8PmJlbnxcIDsKK+mQuT5ndcWPfFwgOwor6ZC4PmR1w7N8XCA7CivpkLU+dGnElXxcIDsKK+mQsz5sw6lpfFwgOwor6ZCsPmh1w6x8XCA7CivpkKk+c3XDrHxcIDsKK+mQqD5mw6hpfFwgOwor6ZCmPmthaXxcIDsKK+mQoT50acSVfFwgOwor6ZCePm7DsnV8XCA7CivpkJ0+anXDqXxcIDsKK+mQnD5kdcOsfFwgOwor6ZCUPnTDoW58XCA7CivpkJM+ZHVufFwgOwor6ZCSPmzDoW98XCA7CivpkJE+ZHVpfFwgOwor6ZCPPnp1bnxcIDsKK+mQjT5qdcOpfFwgOwor6ZCHPmbDoW58XCA7CivpkIY+c3XDrHxcIDsKK+mQhT5wacSVfFwgOwor6ZCDPm7DoW98XCA7CivpkII+bGnDuXxcIDsKK+mQgT5sacO6fFwgOwor6ZCAPmt1w6x8XCA7Civpj74+c8SDbnxcIDsKK+mPvT54acO5fFwgOwor6Y+8PnN1xY98XCA7Civpj7s+bMOtbnxcIDsKK+mPuD5odcOsfFwgOwor6Y+1Pmh1w6F8XCA7Civpj6w+eGnDoHxcIDsKK+mPqj5jw6FvfFwgOwor6Y+oPnrDoG58XCA7Civpj6Q+bMOydXxcIDsKK+mPoz5zaMO5fFwgOwor6Y+dPm3DoG58XCA7Civpj5k+Y3VpfFwgOwor6Y+QPmxpw7p8XCA7Civpj48+d8OoaXxcIDsKK+mPjT5sdcOzfFwgOwor6Y+FPnhpdXxcIDsKK+mPgT5zdcWPfFwgOwor6Y67PnN1xY98XCA7CivpjrU+amlhfFwgOwor6Y6zPm5pw6h8XCA7Civpjqw+Z8SDb3xcIDsKK+mOqz53w6BufFwgOwor6Y6pPnNoYXxcIDsKK+mOqD5zxa1ufFwgOwor6Y6nPmvEg2l8XCA7CivpjqY+bGnDunxcIDsKK+mOnD5ww6FufFwgOwor6Y6WPnN1xY98XCA7CivpjpI+bsOydXxcIDsKK+mOjT5zdcWPfFwgOwor6Y6LPnhpw6F8XCA7Civpjoc+bcOpaXxcIDsKK+mOhT5qacOofFwgOwor6Y6DPnDDoGl8XCA7CivpjoI+bcSVaXxcIDsKK+mOgD54aXV8XCA7Civpjbs+amnDqXxcIDsKK+mNuj56aMSVfFwgOwor6Y2yPm3DrW58XCA7Civpja4+dG91fFwgOwor6Y2tPmjDs3V8XCA7Civpjag+a3XDrXxcIDsKK+mNpj5zaMOpfFwgOwor6Y2lPnFpw6h8XCA7CivpjaQ+Y2jDoXxcIDsKK+mNoT53xJVpfFwgOwor6Y2dPmNoYXxcIDsKK+mNnD54aWF8XCA7CivpjZg+emjDoXxcIDsKK+mNlT5yw7N1fFwgOwor6Y2SPnLDs3V8XCA7CivpjY8+d8OpaXxcIDsKK+mNiz5ndW98XCA7CivpjYg+Y2jDrXxcIDsKK+mNhz5rxINpfFwgOwor6Y2GPm3DqW58XCA7CivpjYQ+amllfFwgOwor6Y2DPmh1b3xcIDsKK+mMvT53xINufFwgOwor6Yy8Pm7DoGl8XCA7CivpjLk+a8SVbnxcIDsKK+mMuD5sw6FpfFwgOwor6Yy1Pmh1YXxcIDsKK+mMrz5jdcOyfFwgOwor6YytPnTDoW98XCA7CivpjKg+bcOhb3xcIDsKK+mMpj5qxK1ufFwgOwor6YyfPnTDoW58XCA7CivpjJw+bmllfFwgOwor6YybPmJlbnxcIDsKK+mMlz53w6hpfFwgOwor6YyVPmt1bnxcIDsKK+mMkz5nxa1ufFwgOwor6YyRPmzDqGl8XCA7CivpjIo+enXDrHxcIDsKK+mMiT5tw61ufFwgOwor6YyHPnDDs3V8XCA7CivpjIM+YmVpfFwgOwor6YyAPmzDum58XCA7Civpi74+dMOhb3xcIDsKK+mLtz56dcOsfFwgOwor6Yu2Pmxpxa18XCA7Civpi7M+emjDuXxcIDsKK+mLrz5nw6BvfFwgOwor6YutPnJ1w6x8XCA7Civpi6w+cMOgbnxcIDsKK+mLqz5kdcOsfFwgOwor6YukPmNow7p8XCA7Civpi6M+eGnDqXxcIDsKK+mLoj5sw7zDqHxcIDsKK+mLoT5ow6FufFwgOwor6YuaPmrDrG58XCA7Civpi5U+emjDrHxcIDsKK+mLlD53xINufFwgOwor6YuPPmppw6F8XCA7Civpi44+aMOgbnxcIDsKK+mLhz5iw6hpfFwgOwor6YuGPnnDum58XCA7Civpi4U+eGlufFwgOwor6YuEPnfEg258XCA7Civpi4I+bcOpaXxcIDsKK+mLgD5kw7J1fFwgOwor6Yq9Pmd1YXxcIDsKK+mKvD5jdcOyfFwgOwor6Yq5Pnhpw7l8XCA7Civpirg+emjDqXxcIDsKK+mKtj5xacO6fFwgOwor6Yq0PnNow6x8XCA7CivpirM+cnXDrHxcIDsKK+mKsj5ow6BufFwgOwor6YqsPmvDoG98XCA7Civpiqo+ecWPdXxcIDsKK+mKqT5kaXV8XCA7CivpiqY+eWlufFwgOwor6YqgPmzEg298XCA7Civpip8+Y2hhfFwgOwor6YqePmp1bnxcIDsKK+mKnT54aXV8XCA7Civpipk+a3XEg3xcIDsKK+mKlz5ow7N1fFwgOwor6YqWPnpodXxcIDsKK+mKlT50acSVfFwgOwor6YqQPmNow6x8XCA7Civpio0+emjDrHxcIDsKK+mKjD56w7lufFwgOwor6YqLPnLDqW58XCA7Civpioc+bMOoaXxcIDsKK+mKgT5qdW58XCA7CivpioA+ecOtbnxcIDsKK+mJvj5tw7N1fFwgOwor6Ym9PnNow6x8XCA7Civpibk+Y2jErXxcIDsKK+mJsz5ixJVpfFwgOwor6YmtPmTDoG58XCA7Civpias+amlhfFwgOwor6YmpPm5pZXxcIDsKK+mJpT5zaMO5fFwgOwor6YmkPmdvdXxcIDsKK+mJoz5qacOpfFwgOwor6YmhPmLDoG58XCA7CivpiZ8+Z8OydXxcIDsKK+mJnj55dcOofFwgOwor6YmaPm3Eg298XCA7CivpiZM+Y2jDrHxcIDsKK+mJkj56aMO5fFwgOwor6YmPPmNow7p8XCA7CivpiYs+YsOgb3xcIDsKK+mJiT5ww6FvfFwgOwor6YmHPnNoaXxcIDsKK+mJhD50acSVfFwgOwor6YmDPnNow6x8XCA7CivpiYI+c2jErXxcIDsKK+mJgT5zaMOpfFwgOwor6YmAPmppxIN8XCA7CivpiL4+ecOzdXxcIDsKK+mIvD56dcOzfFwgOwor6YixPm3DrW58XCA7CivpiLA+c2jDrHxcIDsKK+mIrD5kdcOzfFwgOwor6YimPnTDoGl8XCA7CivpiKU+aHXFj3xcIDsKK+mIoz5nw6BpfFwgOwor6YiiPm5pZXxcIDsKK+mInz5zaGl8XCA7CivpiJ4+anVufFwgOwor6YidPnnDrW58XCA7CivpiJs+Z3VvfFwgOwor6YiZPnHDrW58XCA7CivpiJc+ecWtbnxcIDsKK+mIlj5mZW58XCA7CivpiJU+bmnFrXxcIDsKK+mIkT5ixINufFwgOwor6YiPPnnErW58XCA7CivpiI4+Z291fFwgOwor6YiNPmTDuW58XCA7CivpiIw+anXDqXxcIDsKK+mIij54aW58XCA7CivpiIY+ecOhbnxcIDsKK+mIhT55dcOofFwgOwor6Ye/PnnDrW58XCA7Civph74+amlufFwgOwor6Ye2PnNow6l8XCA7Civph7I+Y2hhfFwgOwor6YeuPmTDoGl8XCA7Civph6w+aMOgbnxcIDsKK+mHqz5odcOhfFwgOwor6YeqPmdhbnxcIDsKK+mHqT5mw6FufFwgOwor6YemPmvDsnV8XCA7Civph6U+ZsSDbnxcIDsKK+mHoj5uw6FpfFwgOwor6YeePnpow618XCA7Civph5o+cWnDunxcIDsKK+mHlj5kYW98XCA7Civph4s+c2jDrHxcIDsKK+mHiD5zaMOsfFwgOwor6YeFPnnDoG58XCA7Civph4Q+Y8SDaXxcIDsKK+mHgT54w6xufFwgOwor6Ya8PnnDoG58XCA7CivphrA+dMOhbnxcIDsKK+mGqT56w6FvfFwgOwor6YahPnpow6B8XCA7CivphqA+w6BuZ3xcIDsKK+mGnj55w7lufFwgOwor6YadPmN1w7N8XCA7Civphpk+c291fFwgOwor6YaWPnnDuW58XCA7CivphpQ+aml1fFwgOwor6YaTPnTEg258XCA7Civphow+a3VufFwgOwor6YaIPnTDoW58XCA7CivphoQ+dMOhb3xcIDsKK+mGgz55YW58XCA7CivphoI+bMSDbnxcIDsKK+mGgD53w6lpfFwgOwor6YW8PmjEg2l8XCA7Civphbs+enXDrHxcIDsKK+mFsz55w6xufFwgOwor6YWtPnnDsnV8XCA7Civphag+esOgaXxcIDsKK+mFoD5xacSDfFwgOwor6YWYPnTDs3V8XCA7CivphZY+ZGFufFwgOwor6YWVPm3DoW98XCA7CivphZQ+enXDrHxcIDsKK+mFkz55xINufFwgOwor6YWHPnrDoG58XCA7CivphYI+esOgbnxcIDsKK+mFgD55YW58XCA7CivphL4+eW91fFwgOwor6YS8PnrDoG58XCA7CivphLk+em91fFwgOwor6YS1PmNhb3xcIDsKK+mEsz5jw6BvfFwgOwor6YSyPmRhbnxcIDsKK+mEsD5sw61ufFwgOwor6YSuPm3DoG98XCA7CivphKw+bMOsbnxcIDsKK+mEqT54w61ufFwgOwor6YSkPm3DoG58XCA7CivphJc+aMOgb3xcIDsKK+mElj55w7pufFwgOwor6YSSPnpvdXxcIDsKK+mEkD5jaMO5fFwgOwor6YSLPnNvdXxcIDsKK+mEiD5rdcOtfFwgOwor6YSHPmjDsnV8XCA7CivphIY+ecO5bnxcIDsKK+mEgT5iw6hpfFwgOwor6YSAPnJ1w7J8XCA7Civpg78+bcOpaXxcIDsKK+mDtT55w7N1fFwgOwor6YOyPmzDoWl8XCA7Civpg7A+em91fFwgOwor6YOuPmzDoW58XCA7Civpg6U+YsOoaXxcIDsKK+mDnz5qacOhfFwgOwor6YOYPmzDvMyGfFwgOwor6YOWPmRvdXxcIDsKK+mDlD55w6FufFwgOwor6YONPm51w7N8XCA7Civpg4w+Z3VpfFwgOwor6YOIPmjDsnV8XCA7Civpg4I+Z2FpfFwgOwor6YK/PnNoaXxcIDsKK+mCvj56aHV8XCA7Civpgr0+Z3VpfFwgOwor6YK2PmLDqGl8XCA7Civpgqk+aHXFj3xcIDsKK+mCqD5jdW58XCA7CivpgqQ+c2jDqXxcIDsKK+mCoD5iaW58XCA7Civpgo8+bHXDs3xcIDsKK+mCjj55w6FvfFwgOwor6YKEPmjDoWl8XCA7CivpgoE+bcOgaXxcIDsKK+mBvj5ow6FpfFwgOwor6YG2PnLDoG98XCA7CivpgbM+Y3VvfFwgOwor6YGyPmNow618XCA7CivpgbE+bMOzdXxcIDsKK+mBrz5kw7lufFwgOwor6YGpPnNow6x8XCA7CivpgZ8+Y2jDrXxcIDsKK+mBnD54w7lufFwgOwor6YGaPmNow7l8XCA7CivpgZk+ecOhb3xcIDsKK+mBlT53w6lpfFwgOwor6YGOPmd1w7J8XCA7CivpgYs+ecO5bnxcIDsKK+mBij55w7N1fFwgOwor6YGIPnNow618XCA7CivpgYU+Y2jDrXxcIDsKK+mBgz55xINufFwgOwor6YGAPnF1bnxcIDsKK+mAvT5udcOyfFwgOwor6YCyPmrDrG58XCA7CivpgLA+ecOzdXxcIDsKK+mAqz5qdcOpfFwgOwor6YCqPmN1w7J8XCA7CivpgKk+YsOobnxcIDsKK+mAqD5sw6FpfFwgOwor6YClPmh1w618XCA7CivpgKQ+YmVufFwgOwor6YCZPnpow6h8XCA7CivpgJg+ecOgbnxcIDsKK+mAjj5xacO6fFwgOwor6YCMPnnDs3V8XCA7CivpgIc+ZMO5bnxcIDsKK+i/vz54w7lufFwgOwor6L++Pmt1w7J8XCA7Civov7w+amnDqXxcIDsKK+i/uj5uxINpfFwgOwor6L+2PnnDsnV8XCA7Civov7Q+aHXDrXxcIDsKK+i/sT50dcOzfFwgOwor6L+vPm3DqGl8XCA7Civov6M+emjDrHxcIDsKK+i/oD5jaMOofFwgOwor6L+MPmppYXxcIDsKK+i/gD5nYW58XCA7Civovqw+YmFufFwgOwor6L6mPmLDoG58XCA7CivovqU+eHVlfFwgOwor6L6gPmJhbnxcIDsKK+i+kj53ZW58XCA7CivovaU+bMOsbnxcIDsKK+i9oT5ww6hpfFwgOwor6L2gPmzElWl8XCA7CivovZs+ZHXDrHxcIDsKK+i9mT5sw6lpfFwgOwor6L2XPmvEg258XCA7CivovZQ+bMOtbnxcIDsKK+i9kz5mYW58XCA7CivovZI+ZsOpbnxcIDsKK+i9kT5sxINvfFwgOwor6L2NPmNow6h8XCA7CivovYs+aMO6bnxcIDsKK+i9ij53w6hpfFwgOwor6L2HPmppdXxcIDsKK+i9hD54acOhfFwgOwor6L2BPnRhb3xcIDsKK+i9gD53ZW58XCA7CivovL0+YsOobnxcIDsKK+i8vD53ZW58XCA7CivovLg+c2h1fFwgOwor6Ly2PnnDs3V8XCA7CivovLM+Y8OydXxcIDsKK+i8rj5yw7N1fFwgOwor6LyrPnDDoWl8XCA7CivovKo+bMO6bnxcIDsKK+i8qT5iw6hpfFwgOwor6LylPmfFrW58XCA7CivovKE+a8SDbnxcIDsKK+i8oD5ndcWPfFwgOwor6LydPmh1aXxcIDsKK+i8mT56aMOpfFwgOwor6LyTPnfEg258XCA7CivovJI+emjDqXxcIDsKK+i8jz55w7N1fFwgOwor6LyLPnNoZXxcIDsKK+i8ij56aMOsfFwgOwor6LyJPnrEg2l8XCA7Civou74+c2jDrHxcIDsKK+i7uj55w6FvfFwgOwor6Lu5PnpoxK18XCA7Civou7Q+emjDuXxcIDsKK+i7sz5ww6FvfFwgOwor6LuwPmLDqGl8XCA7Civou64+xINuZ3xcIDsKK+i7rD5mw6BufFwgOwor6LupPmTDoGl8XCA7Civou6Y+YsOobnxcIDsKK+i7oT5mxINufFwgOwor6LugPnLDqG58XCA7Civou54+bcOhb3xcIDsKK+i7mj5kw6BpfFwgOwor6LuYPnTDum58XCA7Civou5c+c2h1fFwgOwor6LuUPnLDqG58XCA7Civou5M+ZsOgbnxcIDsKK+i7kT5kw6BpfFwgOwor6LuQPnjDrG58XCA7Civou48+eXXDqHxcIDsKK+i7jj53w6hpfFwgOwor6LuNPmp1bnxcIDsKK+i7jD5ndcStfFwgOwor6LuKPmNoZXxcIDsKK+i7hz5kw6BvfFwgOwor6LuDPnR1xY98XCA7Civou4I+bMOgb3xcIDsKK+i7gT5sw7N1fFwgOwor6Lq9PnnEg258XCA7CivourY+bHXFj3xcIDsKK+i6sT5kdcWPfFwgOwor6LqtPmRhbnxcIDsKK+i6qj5sw6xufFwgOwor6LqpPmp1w6l8XCA7Civouqg+a3XDrXxcIDsKK+i6pz5sw6xufFwgOwor6LqkPmppw6h8XCA7CivouqE+bmnDqHxcIDsKK+i6oD54acSVfFwgOwor6LqdPmzDoW58XCA7Civoups+d8OoaXxcIDsKK+i6mT5sw6xufFwgOwor6LqXPnfDqGl8XCA7CivoupU+Y2jDunxcIDsKK+i6kz56aMOsfFwgOwor6LqRPnpow618XCA7Civouo4+bHXDsnxcIDsKK+i6jT55dcOofFwgOwor6LqJPmTFrW58XCA7Civoub4+ZHVufFwgOwor6Lm4PmzDrG58XCA7Civoubc+anXDqXxcIDsKK+i5rj5mYW58XCA7Civouao+dHXDrXxcIDsKK+i5pz56YW98XCA7CivouaM+cMOhbnxcIDsKK+i5oD56aMOtfFwgOwor6LmePmt1xK18XCA7CivouZs+ZMOgaXxcIDsKK+i5lD56w6BufFwgOwor6LmTPmxpw7l8XCA7CivouYY+dHXErXxcIDsKK+i5hT5jaMSDfFwgOwor6Li7Pmd1YXxcIDsKK+i4sj5kw7lufFwgOwor6LioPmt1w618XCA7CivouKA+d8SDbnxcIDsKK+i4mj5sw7pufFwgOwor6LiZPmh1w6B8XCA7CivouJc+bmllfFwgOwor6LiVPmppw6l8XCA7CivouJM+d8SVaXxcIDsKK+i4iD5zaHV8XCA7CivouIY+Y3VufFwgOwor6LiCPm5pw6h8XCA7CivouIA+Y2jDuXxcIDsKK+i3vj5zaMO6fFwgOwor6Le0PmPEg2l8XCA7Civot7I+amnDoXxcIDsKK+i3sT56aMOsfFwgOwor6LeuPmNow6x8XCA7Civot60+ZGnDqXxcIDsKK+i3rD5rdcStfFwgOwor6LemPnpodXxcIDsKK+i3pT5kdcOyfFwgOwor6LeiPmTDoGl8XCA7Civot5w+bHXDsnxcIDsKK+i3mD5ww6FufFwgOwor6LeVPmRpw6l8XCA7Civot5M+emjDuXxcIDsKK+i3kj5xacSDfFwgOwor6LeNPmPEg2l8XCA7Civot4o+bcOoaXxcIDsKK+i3iT5iw6hpfFwgOwor6LeFPnR1w7J8XCA7Civotrk+anXDqXxcIDsKK+i2tj5ndcOsfFwgOwor6LayPnrEg258XCA7Civotq4+eXXDqHxcIDsKK+i2qT5jaMOsfFwgOwor6LalPnFpdXxcIDsKK+i2pD5jxY91fFwgOwor6LahPmN1xK18XCA7Civotp4+cXXDqHxcIDsKK+i2mz55xK1ufFwgOwor6LaWPnN1b3xcIDsKK+i2lT5nxINufFwgOwor6LaTPmR1xY98XCA7CivotpA+eHXDqHxcIDsKK+i2jz5ndWF8XCA7Civoto4+Y2jDunxcIDsKK+i2jT5jaMOtfFwgOwor6LaMPmppw6l8XCA7Civotok+emjDunxcIDsKK+i2gz5kacOpfFwgOwor6LW/PmNow618XCA7Civotb4+ccStbnxcIDsKK+i1vT5qdcOpfFwgOwor6LW6PnHDrW58XCA7CivotbE+esWPdXxcIDsKK+i1rj54acOhfFwgOwor6LWpPnNow6x8XCA7CivotZ8+eXVufFwgOwor6LWVPnTDoG58XCA7CivotLM+c2jDrHxcIDsKK+i0nD55w7pufFwgOwor6LSbPmfDoG58XCA7CivotJc+ecOgbnxcIDsKK+i0lj5zaMO6fFwgOwor6LSSPnNow7l8XCA7CivotJE+Z8SDbnxcIDsKK+i0kD5qw6xufFwgOwor6LSOPmfDoG58XCA7CivotIs+ecOgbnxcIDsKK+i0ij56w6BufFwgOwor6LSJPnTEg258XCA7CivotIc+eXVufFwgOwor6LSEPnpow6x8XCA7CivotIE+YsOgaXxcIDsKK+i0gD53w6hpfFwgOwor6LO9PnPDoGl8XCA7Civos7w+Z8OydXxcIDsKK+iztD5sw6BpfFwgOwor6LOzPnphaXxcIDsKK+izsj5ixINvfFwgOwor6LOxPnnFrW58XCA7Civos64+asOsbnxcIDsKK+izqj56aMOsfFwgOwor6LOnPnTDoG58XCA7Civos6U+c3XDrHxcIDsKK+izoz5tw6BpfFwgOwor6LOgPnDDqWl8XCA7Civos5s+esOgbnxcIDsKK+izmj5sw6BpfFwgOwor6LOWPnNoZXxcIDsKK+izlT5xacO6fFwgOwor6LOUPmJpbnxcIDsKK+izkz5iaW58XCA7Civos5I+c2hlfFwgOwor6LOQPnjDuW58XCA7Civos40+c2hhfFwgOwor6LOMPmfDoGl8XCA7Civos4s+Z2FpfFwgOwor6LOKPnrDqWl8XCA7Civos4U+Z2FpfFwgOwor6LOEPmh1w6x8XCA7Civos4M+bMOsbnxcIDsKK+izgT5iZW58XCA7Civosr8+bcOgb3xcIDsKK+iyvj5jaMOtfFwgOwor6LK8PnRpZXxcIDsKK+iyuz5mw6hpfFwgOwor6LK4PmTDoGl8XCA7Civosrc+bcSDaXxcIDsKK+iytD5ndcOsfFwgOwor6LKwPnNow6x8XCA7Civosq8+emjFrXxcIDsKK+iyrT56aMOtfFwgOwor6LKqPnRhbnxcIDsKK+iyqT5mw6BufFwgOwor6LKoPmh1w7J8XCA7Civosqc+cMOtbnxcIDsKK+iypj53w6BufFwgOwor6LKhPmPDoWl8XCA7Civosp0+YsOoaXxcIDsKK+iynD5qdcOpfFwgOwor6LKaPnTDoW58XCA7Civospk+Y2h1fFwgOwor6LKTPm1hb3xcIDsKK+iykT5qaWF8XCA7Civosos+aMOgbnxcIDsKK+iyhz5ow6FvfFwgOwor6LKBPnnDsnV8XCA7Civosb8+Z8WPdXxcIDsKK+ixtj5mw6lufFwgOwor6LGxPndlbnxcIDsKK+ixrT5qaWF8XCA7Civosaw+emh1fFwgOwor6LGpPmJpbnxcIDsKK+ixpT5nYWl8XCA7CivosaQ+a8SVbnxcIDsKK+ixnj5ow7J1fFwgOwor6LGbPnnDoG58XCA7CivosZg+dMO6bnxcIDsKK+ixlz5odWl8XCA7CivosZY+Y2jDuXxcIDsKK+ixlD55w6BufFwgOwor6LGTPnnDoG58XCA7CivosZI+emjDrHxcIDsKK+ixkT56aMOsfFwgOwor6LGOPnNow7l8XCA7CivosYM+aMSDbnxcIDsKK+ixgj5rxINpfFwgOwor6LC9PmhhbnxcIDsKK+iwuz5qdcOpfFwgOwor6LC6PnhpYXxcIDsKK+ivuT56b3V8XCA7CivorrE+csOobnxcIDsKK+iurD50dW98XCA7Civorp4+ecOgbnxcIDsKK+iumj56w6BufFwgOwor6K6YPnpow6l8XCA7Civorpc+aHXDsnxcIDsKK+iulT5sw6FufFwgOwor6K6UPnnErW58XCA7CivorpE+ecOgb3xcIDsKK+iujz53w6hpfFwgOwor6K6MPnnDoG58XCA7Civoros+emjDqXxcIDsKK+iuhj53w6hpfFwgOwor6K6EPmzElWl8XCA7CivoroM+esOgbnxcIDsKK+iugT5zaMOofFwgOwor6K6APmTDsnV8XCA7Civorb8+aHXDrHxcIDsKK+ituT5ow6FvfFwgOwor6K2zPm7DsnV8XCA7Civora4+aHXDoHxcIDsKK+itrT5odcStfFwgOwor6K2pPnhpw6B8XCA7Civorag+bsOzdXxcIDsKK+itoj5zdcOsfFwgOwor6K2gPnRhbnxcIDsKK+itnz56w6BvfFwgOwor6K2bPnrDqG58XCA7CivorZo+dMOhbnxcIDsKK+itmD5zaMOtfFwgOwor6K2XPnNow618XCA7CivorZY+esOobnxcIDsKK+itkz5odcOsfFwgOwor6K2QPnrFrW58XCA7CivorY4+anXDqXxcIDsKK+itiz5sw6FufFwgOwor6K2KPm7DoW98XCA7CivorYg+ZHXDrHxcIDsKK+ithz5zaGV8XCA7CivorYE+aHXDoXxcIDsKK+itgD5ow6BufFwgOwor6Ky+Pm3DoW58XCA7CivorLo+emjDqXxcIDsKK+isuT5qxK1ufFwgOwor6KyyPmNhbnxcIDsKK+issT5sw7N1fFwgOwor6KyvPmppZXxcIDsKK+isrD5tacO5fFwgOwor6KyrPnpow6l8XCA7CivorKE+ecOhb3xcIDsKK+isoD55w6FvfFwgOwor6KyePnh1w6h8XCA7CivorJ0+eGnDqHxcIDsKK+ismj5zaMOsfFwgOwor6KyYPmNow618XCA7CivorJQ+bsO8w6h8XCA7CivorI8+c8WPdXxcIDsKK+isiz5odcOyfFwgOwor6KyJPmt1w6x8XCA7CivorIU+em91fFwgOwor6KyCPnfDqGl8XCA7CivorIA+bcOzdXxcIDsKK+irvj5udcOyfFwgOwor6Ku6PnnDoG58XCA7Civoq7g+emh1fFwgOwor6Ku1Pm7DoW58XCA7Civoq7I+eWlufFwgOwor6KuxPmh1w6x8XCA7Civoq6c+eGnDqXxcIDsKK+iroz5odcOgfFwgOwor6KuiPmjDuW58XCA7Civoq6E+c2jDrHxcIDsKK+irnz5zaMOsfFwgOwor6KucPmRpw6l8XCA7Civoq5Y+bMO6bnxcIDsKK+irlT5ow6FvfFwgOwor6KuUPnpow7l8XCA7Civoq48+em91fFwgOwor6KuJPnfElWl8XCA7Civoq4c+dMOhbnxcIDsKK+iqvj55w61ufFwgOwor6Kq6PmNoaXxcIDsKK+iquT5mxJVpfFwgOwor6Kq2PnN1w6x8XCA7CivoqrE+amnDqXxcIDsKK+iqqD5odcOsfFwgOwor6KqlPmfDoG98XCA7CivoqqE+amnDqHxcIDsKK+iqmz5xaW58XCA7Civoqpg+ecOydXxcIDsKK+iqlT5kw6BufFwgOwor6KqNPnLDqG58XCA7Civoqow+emjDrHxcIDsKK+iqhz5rdWF8XCA7CivoqoU+emh1fFwgOwor6KqEPmzElWl8XCA7CivoqoM+Y2jErXxcIDsKK+ipvz5ndcOgfFwgOwor6Km9PnnDoW58XCA7Civoqbw+aHVpfFwgOwor6Km6Pmx1w7J8XCA7Civoqbc+ZMOgbnxcIDsKK+iptD53ZWl8XCA7CivoqbI+Z2FpfFwgOwor6KmxPmh1w6B8XCA7CivoqbA+amnDqXxcIDsKK+iprz5odcOsfFwgOwor6KmtPmd1xK18XCA7Civoqaw+Z8OydXxcIDsKK+ipqz5jaMOgfFwgOwor6KmqPmjElW58XCA7Civoqak+c2hpfFwgOwor6KmnPmNow6F8XCA7CivoqaY+c2jDrHxcIDsKK+ipoj54w7pufFwgOwor6KmfPnpow6l8XCA7CivoqZ0+emjFrXxcIDsKK+ipnD50YW98XCA7CivoqZE+dHXDs3xcIDsKK+ipkD56aMOgfFwgOwor6KmMPmfDoG58XCA7CivoqYo+cMOgbnxcIDsKK+ipiT5uw6FvfFwgOwor6KmHPmTDoGl8XCA7CivoqYQ+ZGnDqXxcIDsKK+ipgD5jaMOofFwgOwor6Ki9PmfDsnV8XCA7CivoqLs+emjDuXxcIDsKK+iotT5jaGl8XCA7CivoqLA+dMO6bnxcIDsKK+iorz5zaMSDfFwgOwor6KitPnNow6h8XCA7CivoqKs+eMOsbnxcIDsKK+ioqD56aMStfFwgOwor6KinPnnDs3V8XCA7CivoqKM+anXDqXxcIDsKK+iooj54aW58XCA7CivoqKE+ecOtbnxcIDsKK+iooD5qw6xufFwgOwor6KiePnlhb3xcIDsKK+ionD5mZW58XCA7CivoqJo+ecOtbnxcIDsKK+iomT54w7lufFwgOwor6KiXPnR1b3xcIDsKK+iolD55w61ufFwgOwor6KiTPnjDuW58XCA7CivoqJI+csOobnxcIDsKK+iokD5qacOpfFwgOwor6KiOPnTEg298XCA7CivoqI0+Y2jDoHxcIDsKK+ioij54w7lufFwgOwor6KiJPmbDoG58XCA7CivoqIU+cWnDunxcIDsKK+iohD5xacO6fFwgOwor6Ke+PnnDoG58XCA7Civop7w+anXDqXxcIDsKK+inuj55w6BufFwgOwor6Ke4PmNow7l8XCA7Civop7c+eHXDqXxcIDsKK+intj56aMOsfFwgOwor6KepPnFpw7p8XCA7Civop6g+aMO5bnxcIDsKK+inpz5qacSVfFwgOwor6KekPmNow7l8XCA7Civop6I+Y2jDrHxcIDsKK+inoD5qacOofFwgOwor6KefPmh1w6B8XCA7Civop5s+ZMOgbnxcIDsKK+inlz5mw6FufFwgOwor6KeUPmppbnxcIDsKK+inkz5qaXV8XCA7Civop4M+a3VpfFwgOwor6Ka9PmzEg258XCA7Civoprw+bHXDs3xcIDsKK+imuz5sw6BufFwgOwor6Ka2Pmx1w7N8XCA7CivoprI+asStbnxcIDsKK+imrz5nw7J1fFwgOwor6KarPmrDrG58XCA7Civopqo+cWlufFwgOwor6KanPmzEg258XCA7CivopqM+d2VpfFwgOwor6KagPmp1bnxcIDsKK+imnz56aMOsfFwgOwor6KaePnnDoG98XCA7Civoppo+anXDqXxcIDsKK+immT5sdcOzfFwgOwor6KaWPnNow6x8XCA7CivoppU+bWnDqHxcIDsKK+imkj5tw6FvfFwgOwor6KaPPmd1aXxcIDsKK+imjj5ndcOsfFwgOwor6KW5PnNoaXxcIDsKK+iluD56w6BufFwgOwor6KW2PmTDoGl8XCA7CivopbU+emjDqXxcIDsKK+iltD5sw6FufFwgOwor6KWwPmzDoGl8XCA7Civopa0+eGnDqXxcIDsKK+ilrD5ixINpfFwgOwor6KWrPnNow6x8XCA7Civopak+c2jFrXxcIDsKK+ilpz56aMStfFwgOwor6KWkPmzDoW58XCA7CivopaI+dMSDbnxcIDsKK+iloT5zaMO6fFwgOwor6KWaPnN1w6x8XCA7CivopZk+Y8Ogb3xcIDsKK+illz5kdcOzfFwgOwor6KWVPmzDoW58XCA7CivopZQ+bcSDbnxcIDsKK+ilkz5yw6FvfFwgOwor6KWSPmJpw6l8XCA7CivopZE+eMOtbnxcIDsKK+iljj5mw6FufFwgOwor6KWMPmRhbnxcIDsKK+ilij56dcOsfFwgOwor6KWDPmJhb3xcIDsKK+ilgj5zZW58XCA7CivopL8+Y8Ohb3xcIDsKK+ikvT53w6hpfFwgOwor6KS7Pnhpw6h8XCA7CivopLo+ZGnDqXxcIDsKK+iktz5kacOpfFwgOwor6KSvPmppw6h8XCA7CivopKk+YmFufFwgOwor6KSoPnN1xY98XCA7CivopKY+bsOgaXxcIDsKK+ikoD5nb3V8XCA7CivopJ4+ecWtbnxcIDsKK+ikmD5odWl8XCA7CivopJc+ecSDbnxcIDsKK+ikjz54acO5fFwgOwor6KSOPnhpw7l8XCA7CivopIw+aHVpfFwgOwor6KSLPmRpw6l8XCA7CivopIM+a8OobnxcIDsKK+ikgT56aMOtfFwgOwor6KO9Pnpow6x8XCA7Civoo7o+ecSDbnxcIDsKK+ijtj5mZWl8XCA7Civoo7U+Z8WtbnxcIDsKK+ijrT5jaMStfFwgOwor6KOqPnTDoW98XCA7Civoo6k+ZGFvfFwgOwor6KOmPmbDs3V8XCA7Civoo6A+ccO6bnxcIDsKK+ijkj5ww7N1fFwgOwor6KOPPmJhb3xcIDsKK+ijjT5rxa1ufFwgOwor6KOMPmppw6F8XCA7Civoo4s+c2jDuXxcIDsKK+ijiD5rdW58XCA7Civoo4A+eWlufFwgOwor6KK/Pmd1aXxcIDsKK+iivj56aHV8XCA7Civooro+amnDqXxcIDsKK+iiuD5jw7pufFwgOwor6KK1PnLDqG58XCA7CivoorQ+amnDqXxcIDsKK+iisz5jaMStfFwgOwor6KKsPmR1xY98XCA7Civooqc+a291fFwgOwor6KKlPnR1b3xcIDsKK+iioz5tw7N1fFwgOwor6KKhPnLDoW58XCA7CivooqA+emjDrHxcIDsKK+iinz56aMOsfFwgOwor6KKePmfFrW58XCA7Civoop0+ZsOhbnxcIDsKK+iilT5zaMO5fFwgOwor6KKPPnp1w7J8XCA7Civooo4+ecOgb3xcIDsKK+iijD5iw6BvfFwgOwor6KKJPnR1w7N8XCA7Civoooc+csOhbnxcIDsKK+iihj5odWl8XCA7CivoooM+YsOgb3xcIDsKK+iigD5qdW58XCA7Civoobw+emhpfFwgOwor6KG7PnLDoW58XCA7Civoobo+ccOsbnxcIDsKK+ihuD54acOofFwgOwor6KG0PmTEg258XCA7CivoobE+amnDqXxcIDsKK+ihrz5mZW58XCA7CivooaY+Z8SDbnxcIDsKK+ihnz5kw6BvfFwgOwor6KGePnfDqGl8XCA7CivooZw+ZMOgb3xcIDsKK+ihmz53w6hpfFwgOwor6KGTPnNow7l8XCA7CivooY4+a8OgbnxcIDsKK+ihij5tacOofFwgOwor6KGDPm3DoGl8XCA7CivooYI+bmnDuXxcIDsKK+igvz56aMOhfFwgOwor6KC+Pnpow7p8XCA7CivooL0+amnDqXxcIDsKK+igvD5qdcOpfFwgOwor6KC7Pm3DoW58XCA7CivooLo+Y8OhbnxcIDsKK+igtj5jw6FufFwgOwor6KCpPnpodXxcIDsKK+igpT5uacOofFwgOwor6KCkPnFpdXxcIDsKK+ignj5qacOpfFwgOwor6KCdPmzDqWl8XCA7CivooJw+ZsOhbnxcIDsKK+igmz5tacOofFwgOwor6KCZPmJpbnxcIDsKK+igmD5qacOpfFwgOwor6KCUPmjDoW98XCA7CivooI0+eGllfFwgOwor6KCLPnpow7p8XCA7CivooII+c2jDqHxcIDsKK+ifsz54w7pufFwgOwor6J+xPm3Ds3V8XCA7Civon68+csOhb3xcIDsKK+ifqz55w61ufFwgOwor6J+pPmp1w6l8XCA7Civon6g+anXDqXxcIDsKK+ifpz5sw6FvfFwgOwor6J+mPmbDqGl8XCA7Civon6Q+YmVufFwgOwor6J+hPmd1xK18XCA7Civon54+YmnDqXxcIDsKK+ifmT56aMOtfFwgOwor6J+XPnFpdXxcIDsKK+iflT56dWl8XCA7Civon5M+ZsOhbnxcIDsKK+ifjj5txINufFwgOwor6J+IPmd1b3xcIDsKK+ifhD56aMOpfFwgOwor6J+DPnfDoG58XCA7Civon4E+d8OpbnxcIDsKK+ievj55xK1ufFwgOwor6J68PnHErW58XCA7Civonrs+bMOzdXxcIDsKK+iesj56aMOsfFwgOwor6J6xPnfDqGl8XCA7Civonqw+Y8Ohb3xcIDsKK+iepD5zaMOsfFwgOwor6J6hPnfDqW58XCA7Civonp0+aHXDrHxcIDsKK+iemj5uw6BpfFwgOwor6J6WPmh1w6F8XCA7CivonpI+aMOgbnxcIDsKK+iekT5xacO5fFwgOwor6J6MPmJhbnxcIDsKK+ieiz5ww6FufFwgOwor6J29PnHFrW58XCA7Civonbs+bsSDbnxcIDsKK+iduD5ndWF8XCA7Civonbc+Z3XFj3xcIDsKK+idtT5xaXV8XCA7CivonbE+ZMOgaXxcIDsKK+idsD5odcStfFwgOwor6J2rPnpodXxcIDsKK+idqD5zaGl8XCA7Civonac+a3XDrXxcIDsKK+idpT5tw6FvfFwgOwor6J2iPmppdXxcIDsKK+idnz53w6hpfFwgOwor6J2ePm3DqGl8XCA7CivonZs+d2VpfFwgOwor6J2aPnLDs3V8XCA7CivonZg+ecSDbnxcIDsKK+idlT5zaMOtfFwgOwor6J2UPmppZXxcIDsKK+idkD5tw6BpfFwgOwor6J2FPmPDoW58XCA7CivonYI+YsSDbnxcIDsKK+icvD53xJVpfFwgOwor6Jy5PnJ1w6x8XCA7CivonLM+ZHVufFwgOwor6JyyPnfElWl8XCA7CivonLA+ZsOpaXxcIDsKK+icrT5ow6BufFwgOwor6JysPmdhbnxcIDsKK+icqz5rdW58XCA7CivonKo+Z3VvfFwgOwor6JyoPmRpw6l8XCA7CivonKY+bMO6bnxcIDsKK+icoD5qxa1ufFwgOwor6JyWPmh1w618XCA7CivonJE+ZMOgbnxcIDsKK+ickD5qacOpfFwgOwor6JyPPmTDoG58XCA7Civom78+aMOgbnxcIDsKK+ibvT5iw6BpfFwgOwor6Ju8PmNoZXxcIDsKK+ibuz50dcOsfFwgOwor6Ju6Pmppw6F8XCA7Civom7c+cWnDunxcIDsKK+ibtj5sacOofFwgOwor6JurPmd1xK18XCA7Civom6o+cWnDqHxcIDsKK+iboz5qacOpfFwgOwor6JuaPmxpw6h8XCA7Civom5U+aHXDrXxcIDsKK+ibiD50acOofFwgOwor6JuFPnLDoW58XCA7Civom4I+YmnElXxcIDsKK+iavD5nxY91fFwgOwor6Jq7Pnpow6F8XCA7CivomrQ+ecOydXxcIDsKK+iasz5jaMOtfFwgOwor6JqmPnLDoW58XCA7CivomqE+ZsOpbnxcIDsKK+iaoD5mw6lufFwgOwor6JqZPnHDrW58XCA7Civompg+aHXDrXxcIDsKK+ialz5qdcOpfFwgOwor6JqWPmjDoW98XCA7CivompI+csOhbnxcIDsKK+iakD5qdW58XCA7Civomo8+eXXDqHxcIDsKK+iajj5jw6FufFwgOwor6JqJPnfDqW58XCA7Civomoc+Y2jErXxcIDsKK+iZtz5nYW58XCA7CivombY+aMOhbnxcIDsKK+iZtT5zaMOpfFwgOwor6Jm0Pnpow6l8XCA7Civoma8+cWnDunxcIDsKK+iZqj5zaMO6fFwgOwor6JmoPmJhbnxcIDsKK+iZpz5rdWl8XCA7CivomaQ+ecOhbnxcIDsKK+iZoz5iw6BvfFwgOwor6JmfPmjDoW98XCA7CivomZg+Y3XDs3xcIDsKK+iZlT5jaMWtfFwgOwor6JmMPmJpZXxcIDsKK+iZiz5tw6lufFwgOwor6JmGPmzDqWl8XCA7CivomYE+a3XDrXxcIDsKK+iYvz5sdcOzfFwgOwor6Ji9PmzElWl8XCA7CivomLc+a3XDrXxcIDsKK+iYtj53w6hpfFwgOwor6Ji1Pnpow618XCA7CivomLM+aHXEg3xcIDsKK+iYsj5sw6lpfFwgOwor6JixPmzDqGl8XCA7CivomK0+bMOhbnxcIDsKK+iYrD5rdWl8XCA7CivomKs+bMOhbnxcIDsKK+iYpD53xJVpfFwgOwor6JijPmh1YXxcIDsKK+iYlz5uacOofFwgOwor6JiNPnh1bnxcIDsKK+iYiz5ww61ufFwgOwor6JiKPnnDuW58XCA7CivomIg+dHXDrXxcIDsKK+iYgz5ydcStfFwgOwor6JiAPnR1w7J8XCA7Civol74+bMOgaXxcIDsKK+iXuj5sw6xufFwgOwor6Je4PmNow7p8XCA7Civol7c+c2jFrXxcIDsKK+iXsz5nxINvfFwgOwor6JexPmh1w6x8XCA7Civol7A+bGnDunxcIDsKK+iXrz53w6hpfFwgOwor6JesPnR1aXxcIDsKK+iXqz5odcOtfFwgOwor6JeqPnPFj3V8XCA7Civol6U+ecOgb3xcIDsKK+iXoz5iZWl8XCA7Civol6I+emjErXxcIDsKK+iXnz5sxJVpfFwgOwor6JebPnhpxJV8XCA7Civol5I+cWnDqHxcIDsKK+iXjj5qw6xufFwgOwor6JeNPmzDoW58XCA7Civol4M+aMOgb3xcIDsKK+iWsz53xJVpfFwgOwor6JayPnDDrW58XCA7CivolrE+ZHXDrHxcIDsKK+iWrD55w6BvfFwgOwor6JarPnh1bnxcIDsKK+iWpz5rxINvfFwgOwor6JalPnNoxa18XCA7CivolqI+amllfFwgOwor6JagPmbDoW58XCA7Civolp4+c3VufFwgOwor6JadPmvDoG58XCA7CivolpI+Y8OgbnxcIDsKK+iWjj5tacOofFwgOwor6JaJPnfDqGl8XCA7Civolog+aHXDrHxcIDsKK+iWgz5ow6BvfFwgOwor6JaAPnnDuW58XCA7Civolbw+aMSDb3xcIDsKK+iVuD54acOhfFwgOwor6JW1PnN1bnxcIDsKK+iVsD55w7lufFwgOwor6JWiPmt1w6x8XCA7CivolaE+ZsOpbnxcIDsKK+iVnT5qdcOpfFwgOwor6JWcPmbElWl8XCA7CivolZg+csOhb3xcIDsKK+iVlT55w7N1fFwgOwor6JWUPmJhb3xcIDsKK+iVkz55w7pufFwgOwor6JWSPm3Eg2l8XCA7CivolZA+aHXDoXxcIDsKK+iVjz5jaMO6fFwgOwor6JWMPmzElWl8XCA7CivolYE+eMO6bnxcIDsKK+iUvz53w6lpfFwgOwor6JSyPmvDsnV8XCA7CivolLE+c2hhfFwgOwor6JStPnnDrG58XCA7CivolKk+ecOtbnxcIDsKK+iUqD5qw7lufFwgOwor6JSnPmh1w6x8XCA7CivolJ4+bMOzdXxcIDsKK+iUmD5zZW58XCA7CivolJY+Y3XDs3xcIDsKK+iUkj54dW58XCA7CivolI4+c2jDqHxcIDsKK+iUij5oxINufFwgOwor6JSJPmfFrW58XCA7CivolIU+ecOhbnxcIDsKK+iUhD5tw6BufFwgOwor6JSCPmx1w7N8XCA7Civok7g+Y8Ohb3xcIDsKK+iTtz50dWl8XCA7Civok7Y+d8SVaXxcIDsKK+iTtT5qacOpfFwgOwor6JOzPmrDrG58XCA7Civok7I+cWl1fFwgOwor6JOrPnpow7p8XCA7Civok6k+bcOgb3xcIDsKK+iToT5jYW58XCA7Civok5o+eGl1fFwgOwor6JOYPmfFrW58XCA7Civok5U+Z3XDrHxcIDsKK+iTlD55xINvfFwgOwor6JOPPmx1xY98XCA7Civok4w+Y3XDsnxcIDsKK+iTiz5nw6BpfFwgOwor6JOFPmxpw7p8XCA7Civok4M+c291fFwgOwor6JOCPmh1w7J8XCA7Civok4A+c3VufFwgOwor6JK7PnJ1w7J8XCA7Civokrc+ecO6bnxcIDsKK+iSrT5jaMO6fFwgOwor6JKrPmN1b3xcIDsKK+iSpT5sacO6fFwgOwor6JKiPmNow7p8XCA7Civokps+cXVlfFwgOwor6JKUPnNow618XCA7CivokpI+c2hpfFwgOwor6JKRPnlpbnxcIDsKK+iSkD5zb3V8XCA7Civoko4+cMOgaXxcIDsKK+iSjT53w6lpfFwgOwor6JKJPmt1w6x8XCA7Civokog+a8SDaXxcIDsKK+iShj54dWV8XCA7CivokoE+c2jDuXxcIDsKK+iSgD55dW58XCA7Civokb8+bcOpaXxcIDsKK+iRvT55YW98XCA7Civokbs+bMOhbnxcIDsKK+iRuT5zaGl8XCA7Civokbc+aHVufFwgOwor6JGwPmrDuW58XCA7Civoka8+ecOgb3xcIDsKK+iRqD53ZWl8XCA7CivokaY+d8SVaXxcIDsKK+iRpD5qacOofFwgOwor6JGiPmfDoGl8XCA7CivokZ0+YsOoaXxcIDsKK+iRnD5qacOpfFwgOwor6JGYPnLDqG58XCA7CivokZU+ecOhbnxcIDsKK+iRlD5ow7N1fFwgOwor6JGQPnDDqW58XCA7CivokYc+csOzdXxcIDsKK+iRhD56dcOyfFwgOwor6JGDPnp1w7N8XCA7CivokYA+Z3VhfFwgOwor6JC/Pmh1w7N8XCA7CivokKw+d8OgbnxcIDsKK+iQqT5xaXV8XCA7CivokJw+dGllfFwgOwor6JCbPmppdXxcIDsKK+iQmj50dcOyfFwgOwor6JCYPm7DoGl8XCA7CivokJY+d8SDbnxcIDsKK+iQkD5zaMOgfFwgOwor6JCKPmzDoWl8XCA7CivokIk+ZsOpaXxcIDsKK+iPvz5kw6BvfFwgOwor6I+8PnTEg258XCA7Civoj7s+bMStbnxcIDsKK+iPrz5odWF8XCA7Civoj60+dMOhaXxcIDsKK+iPrD5odWF8XCA7Civoj6s+asStbnxcIDsKK+iPqD5qaWV8XCA7Civoj6Y+YsOoaXxcIDsKK+iPoz5xw6xufFwgOwor6I+iPmLDoG98XCA7Civoj5s+bcOpbnxcIDsKK+iPlT5sw7pufFwgOwor6I+TPmd1xY98XCA7Civoj44+a3VufFwgOwor6I+NPmrDuW58XCA7Civoj4s+d8OoaXxcIDsKK+iPhj56b3V8XCA7Civojrg+ecOzdXxcIDsKK+iOrj5uw6FufFwgOwor6I6tPmppw6l8XCA7CivojqU+bmnFrXxcIDsKK+iOpD55w7N1fFwgOwor6I6iPmppw6F8XCA7CivojqE+Y3XDsnxcIDsKK+iOnz5ow6BufFwgOwor6I6dPmN1w7J8XCA7Civojpo+ecOhbnxcIDsKK+iOmT5qdW58XCA7Civojpc+Y2hlfFwgOwor6I6PPm3DqGl8XCA7Civojo0+cWnDunxcIDsKK+iOjD5kdcOzfFwgOwor6I6HPmNow618XCA7CivojoI+YmnDqXxcIDsKK+iNuj55w7pufFwgOwor6I22PnnDrW58XCA7CivojbU+csSVbnxcIDsKK+iNsz5kw7J1fFwgOwor6I2yPmNow7l8XCA7CivojbE+d8SVaXxcIDsKK+iNmz5yw6FvfFwgOwor6I2XPnNow7l8XCA7CivojZY+bMSDb3xcIDsKK+iNlT5qaW58XCA7CivojY4+Y2jDrXxcIDsKK+iNhD5nYWl8XCA7CivojYI+a3VhfFwgOwor6Iy/Pnpow7p8XCA7CivojKk+Z8WPdXxcIDsKK+iMpT5ndWl8XCA7CivojKI+bGnDqHxcIDsKK+iMoT5kdW98XCA7CivojKA+eGl1fFwgOwor6IyaPnnDrG58XCA7CivojJM+eHXDqXxcIDsKK+iMjT5nxY91fFwgOwor6Iu/PnfDqGl8XCA7Civoi7o+bcOpaXxcIDsKK+iLtj5uacOpfFwgOwor6Iu1PmRpw6l8XCA7Civoi7I+emjEg3xcIDsKK+iLrT55xINvfFwgOwor6IusPnFpw7p8XCA7Civoi6c+emjDuXxcIDsKK+iLpD5wacSVfFwgOwor6IugPm3DrW58XCA7Civoi50+cMOoaXxcIDsKK+iLgz55xY91fFwgOwor6IuCPnnDrW58XCA7Civoirw+bcOgb3xcIDsKK+iKuz5jaMO6fFwgOwor6Iq2PmdvdXxcIDsKK+iKtT5qdcOpfFwgOwor6IqyPmh1YXxcIDsKK+iKpD5rb3V8XCA7CivoiqM+ZsOzdXxcIDsKK+iKoj5yw6lufFwgOwor6IqgPmbDs3V8XCA7Civoips+d8SVaXxcIDsKK+iKmj50w7pufFwgOwor6IqVPnN1aXxcIDsKK+iKlD5odcStfFwgOwor6IqJPmdhbnxcIDsKK+iKiD5taWV8XCA7CivoioQ+d8OhbnxcIDsKK+iKgD5qaWV8XCA7Civoibg+Y8SDb3xcIDsKK+iJtz55w6BufFwgOwor6Im2PnnDoG58XCA7Civoiac+aHXDsnxcIDsKK+iJpT5qacOofFwgOwor6ImiPnTDoW58XCA7CivoiZ4+ecOgb3xcIDsKK+iJnD5kw6BpfFwgOwor6ImbPmzDs3V8XCA7CivoiZY+Y2hhfFwgOwor6ImTPmRpw6l8XCA7CivoiZI+bcOgb3xcIDsKK+iJgT56w6BvfFwgOwor6Ii6Pnhpw6F8XCA7CivoiKc+ZsOhbnxcIDsKK+iIpj50w6BpfFwgOwor6IigPmRhb3xcIDsKK+iInT54acOhfFwgOwor6IiaPnRhbnxcIDsKK+iImT5odcOgfFwgOwor6IiVPmTDoG58XCA7CivoiJM+c2jDrHxcIDsKK+iIkT50YW58XCA7CivoiI8+amnFrXxcIDsKK+iIiz54w6xufFwgOwor6IiKPmppw7l8XCA7Civoh78+Y2hhfFwgOwor6Ie6PnTDoWl8XCA7Civoh7k+eGl1fFwgOwor6Ie4Pnpow6x8XCA7Civoh7c+ZGnDqXxcIDsKK+iHsj5uacOofFwgOwor6IevPmdhb3xcIDsKK+iHrj5kacOpfFwgOwor6IeoPmzDrW58XCA7Civoh50+bHXFj3xcIDsKK+iHmz5odcOyfFwgOwor6IeZPnlhbnxcIDsKK+iHlj5sw7zMhnxcIDsKK+iHkj5odcOyfFwgOwor6IeQPnh1bnxcIDsKK+iHjz5iw6xufFwgOwor6IeOPmN1w6x8XCA7Civoh4U+Y2jDuXxcIDsKK+iHhD5qdcOpfFwgOwor6Ia9PmTEg258XCA7Civohrw+YsOoaXxcIDsKK+iGuT5mw6hufFwgOwor6Ia4PnN1xK18XCA7CivohrY+csO5bnxcIDsKK+iGtT5jdcOsfFwgOwor6IaxPnpow618XCA7CivohrA+ZsOhbnxcIDsKK+iGrT5ndWl8XCA7Civohqw+Y3XDrHxcIDsKK+iGoz5sw6xufFwgOwor6IahPmxpw7p8XCA7CivohpU+Z3XDs3xcIDsKK+iGjj54acOpfFwgOwor6IaEPnPDsnV8XCA7CivohbU+amlhfFwgOwor6IWyPmp1w6l8XCA7Civohaw+csOzdXxcIDsKK+iFqj55w7lufFwgOwor6IWmPm7Eg298XCA7CivohaI+bsOgb3xcIDsKK+iFoT5ndWF8XCA7CivohaA+Y8OydXxcIDsKK+iFnz5sdcOzfFwgOwor6IWePmTDuW58XCA7CivohZw+bcOpaXxcIDsKK+iFjT5yxJVufFwgOwor6IWJPmppZXxcIDsKK+iFhz5uxJVpfFwgOwor6IWFPmTDoG58XCA7CivohYM+a3XDrHxcIDsKK+iFgj5ndcOyfFwgOwor6IS7Pmppw6l8XCA7CivohLo+Y3XDrHxcIDsKK+iEtj5ndWF8XCA7CivohLA+ZMOydXxcIDsKK+iErj5uxJVpfFwgOwor6ISrPnR1b3xcIDsKK+iEqj50dcOsfFwgOwor6ISpPnhpdXxcIDsKK+iEoj5tw6lpfFwgOwor6IScPnFpZXxcIDsKK+iEmT5qdcOpfFwgOwor6ISXPnfElW58XCA7CivohJU+d8SDbnxcIDsKK+iEiD5tw6BpfFwgOwor6ISHPnhpw6l8XCA7CivohIU+eGnDqXxcIDsKK+iEhD5tw6lpfFwgOwor6ISDPmN1w6x8XCA7Civog78+Z3VpfFwgOwor6IO1Pnpow6x8XCA7Civog7I+aMSDaXxcIDsKK+iDnz5jaMStfFwgOwor6IORPnpoaXxcIDsKK+iDhz5iZWl8XCA7Civog4U+ZGnDqXxcIDsKK+iCtT5qw6xufFwgOwor6IKwPnLDoW58XCA7Civogqc+cGVpfFwgOwor6IKmPmJhbnxcIDsKK+iCnj5jaGF8XCA7CivogpU+csOobnxcIDsKK+iCjz5jw6BvfFwgOwor6IKOPmvElW58XCA7Civogo0+cWnDunxcIDsKK+iCij5qaW58XCA7Civogbg+ZGFufFwgOwor6IG3Pnpow618XCA7CivogbY+bmnDqHxcIDsKK+iBtT5rdcOsfFwgOwor6IGtPmt1w6x8XCA7Civogac+a3XDrXxcIDsKK+iBnj53w6lufFwgOwor6IGdPmd1w7N8XCA7CivogZc+bGnDqHxcIDsKK+iBlT5ow6BvfFwgOwor6IGRPmRpw6l8XCA7CivogY4+Z3VvfFwgOwor6IGIPnnFj3V8XCA7CivogYU+Y2jDqHxcIDsKK+iBgD56aMOtfFwgOwor6IC8PmRhbnxcIDsKK+iAuj55w7pufFwgOwor6IC5PnHDrW58XCA7CivogLA+eW91fFwgOwor6ICvPmh1w7J8XCA7CivogK4+bMOgb3xcIDsKK+iArD5sw7N1fFwgOwor6ICnPmzDs3V8XCA7CivogKU+bMWPdXxcIDsKK+iAoz5sxa1ufFwgOwor6ICiPmzDoG98XCA7CivogKE+Y2jDunxcIDsKK+iAnj5qaWF8XCA7CivogJ0+Y2jDunxcIDsKK+iAmz5jaMOtfFwgOwor6ICaPmh1b3xcIDsKK+iAij5kacOofFwgOwor6ICJPmfFj3V8XCA7CivogIg+Z8WPdXxcIDsKK+iAhz5nxY91fFwgOwor57+/PmTDoG98XCA7Civnv70+aHXDrHxcIDsKK+e/uD5wxJVufFwgOwor57+3PmzDrW58XCA7Civnv60+aMOzdXxcIDsKK+e/rD5odWl8XCA7Civnv6s+d8OgbnxcIDsKK+e/qD5zaMOsfFwgOwor57+kPmNow6x8XCA7Civnv6M+c2jDoHxcIDsKK+e/oj50YW98XCA7Civnv5s+c2jDuXxcIDsKK+e/mj5odWl8XCA7Civnv5k+aHXDrHxcIDsKK+e/kz54acOpfFwgOwor57+PPmxpw7l8XCA7Civnv4k+cMSVbnxcIDsKK+e/iD54acOhfFwgOwor57+GPmN1w6x8XCA7Civnv4Q+Y2jDrHxcIDsKK+e/gj5mZW58XCA7CivnvrU+ZsSVbnxcIDsKK+e+sz5mw6FufFwgOwor576nPnN1b3xcIDsKK+e+oz5xw7pufFwgOwor576cPnpow7l8XCA7Civnvpk+Z2FvfFwgOwor576SPmbDqW58XCA7CivnvpE+ecWPdXxcIDsKK+e+kD55xY91fFwgOwor576FPmx1w7N8XCA7CivnvoA+bGnFrXxcIDsKK+e9uz53w6hpfFwgOwor5722Pmxpxa18XCA7CivnvbE+bsSDbnxcIDsKK+e9rD5sxINufFwgOwor572rPmd1w6B8XCA7Civnvac+bMOtbnxcIDsKK+e9oz5ndcOgfFwgOwor572gPm3DrW58XCA7CivnvZw+amllfFwgOwor572OPnTDoW58XCA7CivnvY0+bMOpaXxcIDsKK+e9iD50w6FufFwgOwor572HPnp1bnxcIDsKK+e8vz5ow7J1fFwgOwor57y7PmbFj3V8XCA7CivnvLk+ZsWPdXxcIDsKK+e8sj56xINvfFwgOwor57yePmN1aXxcIDsKK+e8jT5kdcWPfFwgOwor57yLPmh1w6x8XCA7CivnvIo+d2VufFwgOwor57uxPm3ErW58XCA7Civnu5Y+ZGnDqXxcIDsKK+e6vD55xK1ufFwgOwor57q0PnLDqW58XCA7Civnup0+bMOpaXxcIDsKK+e6mT5sdcOyfFwgOwor57qUPmPDoWl8XCA7Civnuo0+bMOpaXxcIDsKK+e6iz55b3V8XCA7Civnuog+eGnDqXxcIDsKK+e6hz5sw6hpfFwgOwor57qDPmzElWl8XCA7CivnuoE+eHVufFwgOwor57m/PmzDoW58XCA7Civnub0+YmlufFwgOwor57m4PnN1w6x8XCA7Civnubc+bsOhb3xcIDsKK+e5sj5qacOofFwgOwor57mqPmh1w6x8XCA7CivnuaM+aHXDoHxcIDsKK+e5oj5odcOsfFwgOwor57mhPnhpw7l8XCA7CivnuaA+cnXErXxcIDsKK+e5nj5yw6BvfFwgOwor57mcPnp1bnxcIDsKK+e5mT5mYW58XCA7CivnuZc+bMOtbnxcIDsKK+e5lj5zxINufFwgOwor57mUPnpoaXxcIDsKK+e5kz56aMOsfFwgOwor57mQPnN1w6x8XCA7CivnuY4+csOhbnxcIDsKK+e5jT54acO5fFwgOwor57mJPmjDum58XCA7CivnuYU+c2FvfFwgOwor57mAPnN1w6x8XCA7CivnuLY+emjDrXxcIDsKK+e4tT5tw6BufFwgOwor57iyPmzDqWl8XCA7CivnuK8+ecSDbnxcIDsKK+e4rj5zdW98XCA7CivnuKk+Y8OgaXxcIDsKK+e4oT56xINpfFwgOwor57iePmfEg298XCA7CivnuJw+ecO6bnxcIDsKK+e4mj50YW98XCA7CivnuJc+Y3VpfFwgOwor57iWPmN1aXxcIDsKK+e4lT55dW58XCA7CivnuJI+Y3XFj3xcIDsKK+e4jz5ww6FufFwgOwor57iJPmrDrG58XCA7CivnuIA+eGnDoXxcIDsKK+e3vz5kw6BpfFwgOwor57e8Pnl1bnxcIDsKK+e3uz56aMOsfFwgOwor57e6Pmd1YXxcIDsKK+e3uD55aW58XCA7Civnt7c+Z3VvfFwgOwor57ezPnhpw6l8XCA7Civnt7E+Z291fFwgOwor57evPnfElWl8XCA7Civnt60+d8OoaXxcIDsKK+e3pz5xaXV8XCA7Civnt6U+YsSDb3xcIDsKK+e3oT5tw61ufFwgOwor57eQPmbDoW58XCA7Civnt40+bcOtbnxcIDsKK+e3jD5ydcOtfFwgOwor57eLPmZlaXxcIDsKK+e3ij5qxK1ufFwgOwor57eFPnpvdXxcIDsKK+e3hD5nxa1ufFwgOwor57eDPmjDum58XCA7Civnt4I+dGFufFwgOwor57eBPnFpw6h8XCA7Civntrw+YmVpfFwgOwor57a5Pmxpxa18XCA7Civntrg+bMO6bnxcIDsKK+e2tz5jdcOsfFwgOwor57a2Pmd1xY98XCA7CivntrU+Y8SDaXxcIDsKK+e2sD53xINufFwgOwor57avPnTDoW98XCA7Civntq0+d8OpaXxcIDsKK+e2qT53xINufFwgOwor57aePmR1xY98XCA7CivntpY+ecOhbnxcIDsKK+e2lT56aGl8XCA7CivntpE+a8WtbnxcIDsKK+e2kD5kdcOsfFwgOwor57aPPnN1w618XCA7Civntok+dMOydXxcIDsKK+e2hT5xaW58XCA7CivntoA+c2h1fFwgOwor57W/PnFpw7p8XCA7Civntb0+bMO8zIZ8XCA7Civntbo+Y2hpfFwgOwor57W2Pmp1w6l8XCA7CivntbU+aHXDrHxcIDsKK+e1sD5kacOpfFwgOwor57WvPmdhaXxcIDsKK+e1rD54acOofFwgOwor57WrPmzElWl8XCA7Civntao+eWlufFwgOwor57WmPmfElWl8XCA7CivntaQ+YsOoaXxcIDsKK+e1oT5sw6BvfFwgOwor57WgPmfEg2l8XCA7CivntZ8+bMOgb3xcIDsKK+e1nD5qacOpfFwgOwor57WbPnRhb3xcIDsKK+e1lT5qdcOpfFwgOwor57WUPmLEg2l8XCA7CivntZM+Z3XDoHxcIDsKK+e1kD5qaWV8XCA7CivntY8+eGnDqHxcIDsKK+e1jT5yw6lufFwgOwor57WKPnp1w6x8XCA7CivntYk+c2jDuXxcIDsKK+e1hj5iw6BufFwgOwor57WAPmNow7l8XCA7CivntL8+ZMOgaXxcIDsKK+e0vT50dcOzfFwgOwor57S6PmfDoG58XCA7CivntLg+emjDuXxcIDsKK+e0tT56aMO5fFwgOwor57S0PmLDqGl8XCA7CivntLI+eGnDqHxcIDsKK+e0qT56aMOsfFwgOwor57SlPnpow6F8XCA7CivntKQ+amnFrXxcIDsKK+e0oz5jdcOsfFwgOwor57SfPmppbnxcIDsKK+e0nj5kxINufFwgOwor57SdPnLDqG58XCA7CivntJw+ecO6bnxcIDsKK+e0mz5mZW58XCA7CivntJk+emjErXxcIDsKK+e0lz5zaGF8XCA7CivntJY+ecStbnxcIDsKK+e0kz5zaHV8XCA7CivntJI+amnDqHxcIDsKK+e0kT5mw7N1fFwgOwor57SQPm5pxa18XCA7CivntI8+dMWPdXxcIDsKK+e0iz53w6lufFwgOwor57SJPnLDqG58XCA7CivntIg+d8OhbnxcIDsKK+e0hD55YW98XCA7CivntIM+eMO6bnxcIDsKK+e0gT5jaMOgfFwgOwor57O+PmppdXxcIDsKK+ezuj5qaXV8XCA7Civns7c+bMOhbnxcIDsKK+eztT5uacOofFwgOwor57OzPnp1w7J8XCA7Civns7E+bmnDqHxcIDsKK+ezpT5udcOyfFwgOwor57OkPmNow6x8XCA7Civns6M+c8SDbnxcIDsKK+eznj5mw6hufFwgOwor57OdPnPEg258XCA7Civns5Q+eGnFrXxcIDsKK+ezkj5iw6hpfFwgOwor57OPPnhpw6h8XCA7Civns4I+csOzdXxcIDsKK+eyvz5ndcWPfFwgOwor57K6PmLDoGl8XCA7CivnsrU+eXXDqHxcIDsKK+eyqD5ixINpfFwgOwor57KmPmzDrW58XCA7CivnspM+Z2FufFwgOwor57KOPmNoxK18XCA7Civnsos+Y3XDrHxcIDsKK+eyiD5yxY91fFwgOwor57KGPnNoYXxcIDsKK+eyhD5ixINufFwgOwor57G/PmPDuW58XCA7Civnsbo+eGnDqXxcIDsKK+extz56aMOpfFwgOwor57G1PmbDoW58XCA7CivnsbA+eXXDqHxcIDsKK+exrj5sdcOzfFwgOwor57GlPnl1w6h8XCA7CivnsaM+bMOhbnxcIDsKK+exnz5sw6BpfFwgOwor57GcPnR1w7J8XCA7CivnsZQ+c8WPdXxcIDsKK+exkz5mYW58XCA7CivnsZI+ZsOhbnxcIDsKK+exiT50w6FpfFwgOwor57GHPmjDoW98XCA7CivnsYY+eXXDqHxcIDsKK+exhD5rdcOsfFwgOwor57GDPmzDoW58XCA7CivnsLo+c8OgaXxcIDsKK+ewtz55w6FufFwgOwor57CzPmfDoG58XCA7CivnsLI+Z8SDbnxcIDsKK+ewsD5ww6FpfFwgOwor57CuPnphbnxcIDsKK+ewrT5zaMOsfFwgOwor57CpPmzDoW98XCA7CivnsKg+c8WtbnxcIDsKK+ewpD5kw6BpfFwgOwor57CjPmt1w6x8XCA7CivnsKI+bcStbnxcIDsKK+ewnj5kYW58XCA7CivnsJQ+c3VvfFwgOwor57CRPnN1b3xcIDsKK+ewjT5sxY91fFwgOwor57CGPmvDsnV8XCA7CivnsII+Z3XDs3xcIDsKK+evuj5ww6FpfFwgOwor56+4PnNlbnxcIDsKK+evtj55YW58XCA7Civnr7I+aHXDrHxcIDsKK+evqz56aMO6fFwgOwor56+qPmNow618XCA7Civnr6g+Y2jDunxcIDsKK+evnj5uacOofFwgOwor56+bPnJ1w7J8XCA7Civnr5c+eXXDqHxcIDsKK+evlD55w7pufFwgOwor56+NPnFpdXxcIDsKK+eviz5xacOofFwgOwor56+JPnpow7p8XCA7Civnr4Q+ZsOgbnxcIDsKK+evgz5tw6lpfFwgOwor56+APmppw6l8XCA7Civnrrc+c2hpfFwgOwor566wPnPFrW58XCA7Civnrqg+dHXDsnxcIDsKK+eunz5qw7lufFwgOwor566aPnpow6F8XCA7Civnrpg+asO5bnxcIDsKK+eulj5sw61ufFwgOwor566RPnNow6B8XCA7Civnro4+Y2jDrXxcIDsKK+euiD5jaMOtfFwgOwor566DPnpvdXxcIDsKK+eugj5sw6FpfFwgOwor5628PnnDum58XCA7Civnrbg+Z2FufFwgOwor5622PmfEg298XCA7CivnrbA+enXDs3xcIDsKK+etrz56aMO5fFwgOwor562rPnpow6x8XCA7Civnrao+amlhfFwgOwor562oPmjDoW58XCA7CivnrZk+bMOhaXxcIDsKK+etjT5zxa1ufFwgOwor562IPmd1YXxcIDsKK+ethD55w6BvfFwgOwor562DPnlpbnxcIDsKK+etgj5jaMOtfFwgOwor562APmd1w6x8XCA7CivnrL8+bHXDsnxcIDsKK+estz5txINvfFwgOwor56y2PnNoxK18XCA7CivnrLU+ZsOgbnxcIDsKK+essj5mw6FufFwgOwor56yvPmbDoW58XCA7CivnrKk+cMOoaXxcIDsKK+esoz5iYW98XCA7CivnrKI+bcStbnxcIDsKK+esoT5xacOofFwgOwor56ycPnpow7p8XCA7CivnrJo+eGnDoXxcIDsKK+eskj5jw6lufFwgOwor56yBPnpow7p8XCA7Civnq74+Y2jDrXxcIDsKK+eruz5nxINufFwgOwor56u3PmvDoG58XCA7Civnq7Q+Y3VpfFwgOwor56uqPnNow7l8XCA7Civnq5U+c2jDrXxcIDsKK+erkD5jaMO5fFwgOwor56uOPmbDsnV8XCA7Civnq40+c2jDrXxcIDsKK+erjD5jaMO5fFwgOwor56uKPnFpw6h8XCA7Civnq4g+d8OoaXxcIDsKK+erhz5kw7J1fFwgOwor56uDPnrDoG98XCA7Civnq4E+Y3XDrHxcIDsKK+equj5rdWl8XCA7Civnqrc+a3XErXxcIDsKK+eqsD55w6FvfFwgOwor56qvPnnDoW98XCA7Civnqp4+ZMOgbnxcIDsKK+eqmz5rw7J1fFwgOwor56qUPnnEg298XCA7CivnqpA+Z3VpfFwgOwor56qLPnpow7p8XCA7Civnqoc+YsOhb3xcIDsKK+eqhT55xINvfFwgOwor56qCPmzDoW98XCA7Civnqb4+ecOgb3xcIDsKK+epvD5zZW58XCA7Civnqbs+dMO6bnxcIDsKK+epsz56w6BufFwgOwor56mxPmp1w6l8XCA7Civnqa0+bMO8zIZ8XCA7Civnqas+aHXDsnxcIDsKK+epqT53xJVufFwgOwor56moPnR1w618XCA7CivnqaY+YmlufFwgOwor56mkPm51w7J8XCA7CivnqaI+aHXDrHxcIDsKK+epnz5zdcOsfFwgOwor56mVPnFpw6h8XCA7CivnqZA+cWl1fFwgOwor56mPPnfElW58XCA7CivnqYk+emjDrHxcIDsKK+epiD5tw6lufFwgOwor56mCPnN1w6x8XCA7CivnqYE+Y8SDbnxcIDsKK+eovj5nxINvfFwgOwor56iyPmTDoG98XCA7CivnqK0+amllfFwgOwor56isPm51w7J8XCA7CivnqKQ+bMO8w6h8XCA7CivnqKE+bMO8xJV8XCA7CivnqJ0+aHXDoHxcIDsKK+eomz5rxa1ufFwgOwor56iZPnpow618XCA7CivnqJM+enXDs3xcIDsKK+eokD5sxa1ufFwgOwor56iIPmfEg258XCA7CivnqIc+a8WtbnxcIDsKK+eogT5rxINvfFwgOwor56e8PmfDoG98XCA7Civnp7k+Y2jErXxcIDsKK+entz56aMOtfFwgOwor56e1PnlpbnxcIDsKK+ensz5odcOzfFwgOwor56eyPnpow6x8XCA7Civnp64+aHXDs3xcIDsKK+enqj56aGl8XCA7Civnp6g+enXDs3xcIDsKK+ennj55w7N1fFwgOwor56eaPmLDoG58XCA7Civnp5Y+emhpfFwgOwor56eTPnpoaXxcIDsKK+enkD55w7pufFwgOwor56ePPmjDoG98XCA7Civnp44+ZsOpbnxcIDsKK+enjD5xaXV8XCA7Civnp4U+Y2jDoXxcIDsKK+engj5yw6lufFwgOwor56a8Pnhpw6h8XCA7Civnprg+csOzdXxcIDsKK+emtz5sw6hpfFwgOwor56a2PnrEg258XCA7CivnprQ+eXXDqHxcIDsKK+emsT5kxINvfFwgOwor56asPmd1w6x8XCA7Civnpqs+dMSDbnxcIDsKK+emnj5nw6BvfFwgOwor56aWPm3DqWl8XCA7Civnpo0+aHXDsnxcIDsKK+emiz55aW58XCA7Civnpok+ecWPdXxcIDsKK+emhz56aMSVfFwgOwor56aGPmJlaXxcIDsKK+emgz56aMOtfFwgOwor56W9Pnp1w6x8XCA7Civnpbk+dMOhb3xcIDsKK+eltj5ixK1ufFwgOwor56W1PmvFrW58XCA7CivnpbQ+Z2FpfFwgOwor56WyPmppbnxcIDsKK+elsD5nw6BvfFwgOwor56WuPmfDoG98XCA7Civnpaw+emhpfFwgOwor56WrPnhpw6F8XCA7Civnpao+Z3XErXxcIDsKK+eloz5sw7zMhnxcIDsKK+elmT5tw6hpfFwgOwor56WRPnpow6x8XCA7CivnpZA+ecOydXxcIDsKK+eljz5zaMOtfFwgOwor56WOPmbDqGl8XCA7CivnpYs+ZHXDrHxcIDsKK+elhT55YW98XCA7CivnpYQ+eGnDqHxcIDsKK+ekvz55dcOofFwgOwor56S5PnnDoW58XCA7CivnpLg+esSDbnxcIDsKK+ektz5sw6FufFwgOwor56SuPnDDoG98XCA7CivnpK0+cXXDqHxcIDsKK+ekrD5mw6FufFwgOwor56SpPnpow6x8XCA7CivnpKg+bMSVaXxcIDsKK+ekpz5sw6hpfFwgOwor56SjPm1pw6h8XCA7CivnpJ8+cMOgb3xcIDsKK+eknD5sw6lpfFwgOwor56SaPmvDoGl8XCA7CivnpJc+cGlufFwgOwor56SQPnF1w6h8XCA7CivnpI4+Y2jFrXxcIDsKK+ekjD5sw6lpfFwgOwor56SKPmh1w7J8XCA7Civno7s+cMOhbnxcIDsKK+ejsT5sw6FvfFwgOwor56OqPmN1aXxcIDsKK+ejpT5sxJVpfFwgOwor56OkPnlpbnxcIDsKK+ejoT5rw6BufFwgOwor56OTPmR1aXxcIDsKK+ejkT53w6hpfFwgOwor56OIPnfElWl8XCA7Civno4Y+aHXDoXxcIDsKK+ejgj5sacO5fFwgOwor56K7PnF1w6h8XCA7Civnoro+cXXDqHxcIDsKK+eirz5uxINvfFwgOwor56KsPnhpw6F8XCA7Civnoqg+d2VpfFwgOwor56KkPnfElWl8XCA7Civnop4+ecOhbnxcIDsKK+eilj5sw7lufFwgOwor56KSPnnDrW58XCA7Civnoo8+cXXDqHxcIDsKK+eiiD5tw61ufFwgOwor56KFPmp1bnxcIDsKK+eihD5sw61ufFwgOwor56G9Pmxpw7l8XCA7Civnobg+bnXDqHxcIDsKK+ehsT5rxa1ufFwgOwor56GwPnNoYXxcIDsKK+ehrz55w6BufFwgOwor56GpPmNow6h8XCA7Civnoag+Y2hlfFwgOwor56GkPnhpw6F8XCA7CivnoZk+d8OoaXxcIDsKK+ehjT5rw6hufFwgOwor56GKPnfElWl8XCA7CivnoYg+amnDoXxcIDsKK+ehgz56aHV8XCA7CivnoLk+bnXFj3xcIDsKK+egsj5ww6BvfFwgOwor56CrPnpoxa18XCA7CivnoKQ+dHXDs3xcIDsKK+egoj5sdcWPfFwgOwor56CfPnpoxIN8XCA7CivnoJk+cGFufFwgOwor56CVPnN1w6x8XCA7CivnoJM+emjDqXxcIDsKK+egjz5mZW58XCA7CivnoI4+amnDqHxcIDsKK+egiz5xacOofFwgOwor56CIPm51xY98XCA7CivnoIc+bcOtbnxcIDsKK+eghD5qdcOpfFwgOwor56CDPmRhbnxcIDsKK+efuj50dW98XCA7Civnn7I+YsSDaXxcIDsKK+efsT5odcOyfFwgOwor55+mPmjDs3V8XCA7Civnn6E+anXDqXxcIDsKK+efnT5qdcOpfFwgOwor55+aPnpoxa18XCA7Civnn5k+a8OgbnxcIDsKK+eflT5txINufFwgOwor55+QPmh1w7J8XCA7Civnn4k+YmlufFwgOwor55+GPmh1w7J8XCA7Civnn4U+ecOgb3xcIDsKK+efhD54dW58XCA7Civnn4I+c8Ogb3xcIDsKK+efgD53w6lpfFwgOwor5566Pmh1w6x8XCA7CivnnrY+Z3XDrHxcIDsKK+eetT5sw61ufFwgOwor5560Pm3Ds3V8XCA7Civnnq4+Y2jDqHxcIDsKK+eenj5tw6FufFwgOwor556dPmNoaXxcIDsKK+eenD5sb3V8XCA7CivnnpM+bcOpbnxcIDsKK+eekD5tw6BvfFwgOwor556NPnPFj3V8XCA7Civnnok+a8OydXxcIDsKK+eehj5rdcOsfFwgOwor556DPmd1w6x8XCA7Civnnbo+aMOzdXxcIDsKK+eduD5tw6hpfFwgOwor5521PmNhaXxcIDsKK+edtD5nw7lufFwgOwor552xPnhpw6B8XCA7Civnna8+aHVufFwgOwor552nPmh1bnxcIDsKK+ednz5zdcOsfFwgOwor552ePmzDoGl8XCA7CivnnZk+bGnDqHxcIDsKK+edlz5zaMOsfFwgOwor552VPndhbnxcIDsKK+edlD5oxa1ufFwgOwor552PPmvDuW58XCA7CivnnYw+d8SDbnxcIDsKK+ediT5jdW98XCA7CivnnYU+aMOgbnxcIDsKK+edgj5tw6lpfFwgOwor55y/Pm3DoGl8XCA7CivnnLA+ZGnDqXxcIDsKK+ecoz5kacOpfFwgOwor55ybPm3DqGl8XCA7CivnnJM+aHXDsnxcIDsKK+eckT55xINvfFwgOwor55yOPnNow6x8XCA7CivnnIo+bcOgb3xcIDsKK+echT5wYW58XCA7CivnnIM+ecO6bnxcIDsKK+ebvz5tw61ufFwgOwor55u6PmbDqW58XCA7Civnm7A+Z8SDbnxcIDsKK+ebqD5zaMWtfFwgOwor55ukPnDDoW58XCA7Civnm6E+asOsbnxcIDsKK+eboD5qxK1ufFwgOwor55ucPmTDoG98XCA7Civnm5o+cWnDunxcIDsKK+eblT5mw6BufFwgOwor55uMPnfEg258XCA7Civnm4M+YmVpfFwgOwor55q5Pmp1bnxcIDsKK+eauD5qdW58XCA7CivnmrY+emhhfFwgOwor55q1PnF1w6h8XCA7CivnmrM+cWnDunxcIDsKK+easD5ww6BvfFwgOwor55qvPmfEg258XCA7CivnmqU+aMOgb3xcIDsKK+eaoT5ow6BvfFwgOwor55qgPmN1xK18XCA7Civnmp4+aMOgb3xcIDsKK+eanT5jdcOsfFwgOwor55qcPmjDoG98XCA7CivnmpQ+aMOgbnxcIDsKK+eakD5nYW98XCA7Civnmow+aHVpfFwgOwor55qDPm3DoG98XCA7CivnmbM+bHXFj3xcIDsKK+eZsT50YW58XCA7Civnma4+ecStbnxcIDsKK+eZqT5sw6BpfFwgOwor55moPmh1w7J8XCA7CivnmaQ+amnDqXxcIDsKK+eZoT5jaGl8XCA7CivnmZ8+YmnElXxcIDsKK+eZnT5sxK1ufFwgOwor55mbPmzErW58XCA7CivnmZo+ZMOgbnxcIDsKK+eZmT5zaMWtfFwgOwor55mXPmzElWl8XCA7CivnmZM+d8OpaXxcIDsKK+eZiT5kYW58XCA7CivnmYg+ZsOoaXxcIDsKK+eZhj5sw6FvfFwgOwor55mFPmxpw7p8XCA7CivnmL0+asOsbnxcIDsKK+eYuj5sw7J1fFwgOwor55i3PnN1xY98XCA7CivnmLY+bMOydXxcIDsKK+eYsD5sdcWPfFwgOwor55ijPmzElWl8XCA7CivnmJs+Y2jDrHxcIDsKK+eYmj5qdcOpfFwgOwor55iWPnlpbnxcIDsKK+eYkj53w6lufFwgOwor55iRPmd1YXxcIDsKK+eYhT5kw6BufFwgOwor55iDPnpow7p8XCA7Civnl70+ZHVpfFwgOwor55e7Pm3DrW58XCA7Civnl7g+Y2jDrHxcIDsKK+eXsz5sw61ufFwgOwor55elPmR1w7N8XCA7Civnl5c+bcOoaXxcIDsKK+eXkz5jaMOsfFwgOwor55eRPmR1xY98XCA7Civnl5A+aHXDrXxcIDsKK+eXjz53xJVpfFwgOwor55eOPmthaXxcIDsKK+eXhD56aMOgfFwgOwor55eAPmdvdXxcIDsKK+eWvz5mw6hpfFwgOwor55a7PnpoxK18XCA7CivnlrY+eGnDqHxcIDsKK+eWsD56aMO5fFwgOwor55apPmN1w6x8XCA7Civnlqg+eGlhfFwgOwor55anPnpoaXxcIDsKK+eWpj5qdcOpfFwgOwor55acPnhpw6B8XCA7CivnlpM+bsSDaXxcIDsKK+eWkD56aMOsfFwgOwor55aOPnNodXxcIDsKK+eWjT5kw6BufFwgOwor55aMPm5pw6h8XCA7Civnloo+ZGnDqXxcIDsKK+eWiT5kacOpfFwgOwor55aEPmzDrW58XCA7CivnloE+bGnDunxcIDsKK+eWgD5jaGF8XCA7Civnlb4+bMOpaXxcIDsKK+eVtT5odcOgfFwgOwor55WxPmxpw7p8XCA7Civnla8+asO5bnxcIDsKK+eVrT5sacWtfFwgOwor55WrPmh1w6B8XCA7Civnlag+cGFufFwgOwor55WnPmZhbnxcIDsKK+eVpD56aMOsfFwgOwor55WhPmdhaXxcIDsKK+eVmD5sacWtfFwgOwor55WNPmppw6h8XCA7CivnlYc+ecO6bnxcIDsKK+eVhD5sacO6fFwgOwor55WDPndlaXxcIDsKK+eVgj5qacO5fFwgOwor55S0Pnpow6F8XCA7CivnlKc+c2VufFwgOwor55SkPnJ1w618XCA7CivnlJ0+aGFufFwgOwor55SbPmjDoW58XCA7CivnlJc+ecSDbnxcIDsKK+eUlD5kYW58XCA7CivnlJA+bMOtbnxcIDsKK+eUij5sxY91fFwgOwor55O7PmNoaXxcIDsKK+eTrT5kxINufFwgOwor55OrPnDDqW58XCA7Civnk58+YsOhb3xcIDsKK+eTmj56w6BufFwgOwor55OZPmTDoG98XCA7Civnk5M+bMOgbnxcIDsKK+eTjT5zdcOsfFwgOwor55OMPmd1aXxcIDsKK+eTiT56w6BufFwgOwor55OHPnLDs3V8XCA7Civnk4Y+emjDrXxcIDsKK+eTgz5sw6lpfFwgOwor55OCPmfDoGl8XCA7Civnk4E+aHXDsnxcIDsKK+eSvD5sw6FufFwgOwor55K7Pnp1xK18XCA7Civnkro+d8OobnxcIDsKK+eSuD5iaW58XCA7CivnkrY+asOsbnxcIDsKK+eSsj5zdcOsfFwgOwor55KvPmh1w6x8XCA7Civnkq4+dMSDbnxcIDsKK+eSrT5nw7lufFwgOwor55KqPnrEg298XCA7CivnkqE+asOsbnxcIDsKK+eSoD5mw6FufFwgOwor55KdPmd1aXxcIDsKK+eSmz5qaW58XCA7Civnkpo+anXDqXxcIDsKK+eSmD5sw61ufFwgOwor55KVPnjDum58XCA7Civnko8+emjDrHxcIDsKK+eSjD55w61ufFwgOwor55KKPm3DqW58XCA7CivnkoY+cWnDunxcIDsKK+eShT5zdcWPfFwgOwor55G7Pmt1bnxcIDsKK+eRuD5iaW58XCA7CivnkbQ+asOsbnxcIDsKK+eRsz5jdcWPfFwgOwor55GsPmxpw7p8XCA7Civnkas+dGFvfFwgOwor55GoPmrDrG58XCA7Civnkac+amlufFwgOwor55GlPndlbnxcIDsKK+eRpD55w6FvfFwgOwor55GjPnN1xY98XCA7CivnkaE+c2hpfFwgOwor55GgPmxpw7p8XCA7CivnkY4+amllfFwgOwor55GLPnfElWl8XCA7CivnkYk+bcOtbnxcIDsKK+eRiD5yw7N1fFwgOwor55GHPmTDoGl8XCA7CivnkYI+bcOpaXxcIDsKK+eQvz5ow7pufFwgOwor55C+Pmppw6h8XCA7CivnkLk+ccOtbnxcIDsKK+eQtz5xdcOofFwgOwor55CyPmLDqGl8XCA7CivnkKM+aHVpfFwgOwor55ChPmNow7l8XCA7CivnkJ8+d8OpaXxcIDsKK+eQnT53w6lufFwgOwor55CcPmzDoWl8XCA7CivnkJg+bcOtbnxcIDsKK+eQlz5jdcOsfFwgOwor55CVPnDDrW58XCA7CivnkJM+d8OhbnxcIDsKK+eQjj5qaW58XCA7CivnkIc+eGnDuXxcIDsKK+eQgD5ow6FufFwgOwor54+8PmLDqGl8XCA7Civnj7s+bcOpaXxcIDsKK+ePuj5qw7lufFwgOwor54+zPmjDoG58XCA7Civnj64+cMOoaXxcIDsKK+ePqj5ndWl8XCA7Civnj6g+eGnDoXxcIDsKK+ePpz55w6FvfFwgOwor54+kPmLEg298XCA7Civnj6M+eMO6bnxcIDsKK+ePoj5rw6hufFwgOwor54+hPnHDrW58XCA7Civnj5s+eGnDuXxcIDsKK+ePmj55YW58XCA7Civnj5I+amlufFwgOwor54+LPmxpxa18XCA7Civnj4M+csSDbnxcIDsKK+eOvj5qacSDfFwgOwor5469PmfFj3V8XCA7Civnjqw+ZMSDbnxcIDsKK+eOqD5qdcOpfFwgOwor546nPnnFrW58XCA7CivnjqY+anXDqXxcIDsKK+eOpT55dcOofFwgOwor546gPmppw6h8XCA7Civnjp8+bcOtbnxcIDsKK+eOlT5nYW58XCA7CivnjoM+anXDqXxcIDsKK+eOgD5sdcOzfFwgOwor5422Pm7DoW98XCA7CivnjbU+bGnDqHxcIDsKK+eNsz5uw7J1fFwgOwor542yPmh1w7J8XCA7CivnjbE+cMOtbnxcIDsKK+eNqT5odcOsfFwgOwor542iPmh1w6F8XCA7CivnjaE+cXXDqHxcIDsKK+eNnz55w6BvfFwgOwor542cPmzDrW58XCA7CivnjZY+ZsOpbnxcIDsKK+eNlT5jdWl8XCA7CivnjZQ+aMOhb3xcIDsKK+eNjD5tw6BufFwgOwor542LPmjDoW98XCA7CivnjYY+aMOhb3xcIDsKK+eNhT5zaGl8XCA7CivnjYM+ZGFpfFwgOwor542APnNvdXxcIDsKK+eMuz5zdW58XCA7CivnjLo+ecOhb3xcIDsKK+eMuT56aGF8XCA7CivnjLg+bcOpaXxcIDsKK+eMtj55w7N1fFwgOwor54yzPmppYXxcIDsKK+eMmD56aMOsfFwgOwor54yTPmd1xY98XCA7CivnjJI+eWFufFwgOwor54yRPmt1bnxcIDsKK+eMjT5sw6FpfFwgOwor54yMPnnDrG58XCA7CivnjIc+ecOhb3xcIDsKK+eMhj5mZWl8XCA7CivnjIU+cMOhaXxcIDsKK+eMgj5ow6BufFwgOwor54yAPnNoYXxcIDsKK+eLvz55w6FufFwgOwor54u+Pnpow6x8XCA7Civni70+YsOoaXxcIDsKK+eLuT54acOhfFwgOwor54urPmzEg298XCA7Civni6U+eMO5bnxcIDsKK+eLmj5kw6BufFwgOwor54uYPnl1w6h8XCA7Civni5Y+ecOydXxcIDsKK+eLjz50dcOzfFwgOwor54q+PnnDrW58XCA7Civnirw+aMWPdXxcIDsKK+eKsj5jw6FpfFwgOwor54qwPnFpw7p8XCA7Civniqk+d8OoaXxcIDsKK+eKpj5iw6BvfFwgOwor54qjPmxpw6h8XCA7Civnipw+YmVpfFwgOwor54qaPnfDqGl8XCA7Civnipk+c2FufFwgOwor54qXPmppw6h8XCA7CivnipY+bHXDsnxcIDsKK+eKlT5iw6hpfFwgOwor54qTPmNow7p8XCA7Civniow+amlhfFwgOwor54qJPnLDum58XCA7Civnioc+YmVufFwgOwor54qDPnDFj3V8XCA7CivnibA+ecOydXxcIDsKK+eJrD5iw6hpfFwgOwor54mqPnnDoG58XCA7CivniaM+csOobnxcIDsKK+eJnj5qaXV8XCA7CivniY8+dMOzdXxcIDsKK+eJiT5ww6BufFwgOwor54mDPmRpw6l8XCA7CivniLI+d8OoaXxcIDsKK+eIrj5ww6FvfFwgOwor54ilPnpow7p8XCA7CivniKQ+bMOgbnxcIDsKK+eIoT5jaMOofFwgOwor54ibPmzDoG58XCA7CivniJo+eXXDqHxcIDsKK+eIlT54acOofFwgOwor54iTPnnDoG58XCA7CivniJE+anXDqXxcIDsKK+eIiz54dW58XCA7CivniIg+bGnDqHxcIDsKK+eIgT5sw6BufFwgOwor54e/PnnDoG98XCA7Civnh74+ZMOgb3xcIDsKK+eHvD5qw6xufFwgOwor54e7Pnh1bnxcIDsKK+eHuj5kw6BvfFwgOwor54e3PmzDoW58XCA7Civnh7Q+aHXDrHxcIDsKK+eHsj54acOpfFwgOwor54ewPndlaXxcIDsKK+eHrT56aMO6fFwgOwor54esPmh1xK18XCA7Civnh6k+cXXDqHxcIDsKK+eHpj5jw6BufFwgOwor54ekPnTDoGl8XCA7Civnh6M+bMOhbnxcIDsKK+eHoj54dcOpfFwgOwor54ecPm3DqG58XCA7Civnh5o+Y3VvfFwgOwor54eYPm3ElWl8XCA7Civnh5Y+eMO6bnxcIDsKK+eHkz5mZW58XCA7Civnh5A+bMOtbnxcIDsKK+eHjD5iw6hufFwgOwor54eJPmTDuW58XCA7Civnh4c+esO5bnxcIDsKK+eHhj5kdW58XCA7Civnh4Q+ecOgbnxcIDsKK+eGvj5jaMOsfFwgOwor54avPmjDoG58XCA7Civnhq0+ZMSDbnxcIDsKK+eGqz56aMOsfFwgOwor54amPmp1w6l8XCA7CivnhqM+c3VpfFwgOwor54ahPmzDs3V8XCA7CivnhpM+bGnDuXxcIDsKK+eGjj55w6BvfFwgOwor54aLPm7DoWl8XCA7Civnhok+ecO6bnxcIDsKK+eGhz5rxINvfFwgOwor54aFPnnDuW58XCA7CivnhoE+eGnDqXxcIDsKK+eFuT5nw7J1fFwgOwor54W0Pnl1bnxcIDsKK+eFsT5ndWF8XCA7CivnhbA+Z8Ogb3xcIDsKK+eFrz5qaWV8XCA7Civnha0+YmFvfFwgOwor54WrPnN1w6x8XCA7Civnhao+cWnDunxcIDsKK+eFqT5mw6FufFwgOwor54WjPnLFj3V8XCA7CivnhaE+eMOsbnxcIDsKK+eFnz53w6hpfFwgOwor54WdPm3DqGl8XCA7CivnhZk+eWFufFwgOwor54WXPm3DqWl8XCA7CivnhZI+d8SVaXxcIDsKK+eFkT56aMWtfFwgOwor54WHPmh1aXxcIDsKK+eFhj54aWF8XCA7CivnhYM+a3XErXxcIDsKK+eEsz5qdcOpfFwgOwor54SuPnjDrG58XCA7CivnhKs+cnXDsnxcIDsKK+eEoD5jdcOsfFwgOwor54SePnR1bnxcIDsKK+eEnT5ow7lufFwgOwor54ScPmt1bnxcIDsKK+eEmz5oxa1ufFwgOwor54SUPnnDoG58XCA7CivnhI4+eGnDqHxcIDsKK+eEjD5qw7lufFwgOwor54SGPmp1w6l8XCA7CivnhIQ+eHVufFwgOwor54SCPnNow7p8XCA7Civng74+Y2jDrHxcIDsKK+eDuD5oxINpfFwgOwor54OyPmNow6h8XCA7Civng6M+aHVpfFwgOwor54OiPnpow6h8XCA7Civng6A+aHXErXxcIDsKK+eDmj5odcStfFwgOwor54OXPmvDoGl8XCA7Civng5U+eHXDqHxcIDsKK+eDkz53ZWl8XCA7Civng5I+c2jDrHxcIDsKK+eDkT55w6FvfFwgOwor54OQPm1pw6h8XCA7Civng44+ecOtbnxcIDsKK+eCuj53w6lpfFwgOwor54K2PmhhbnxcIDsKK+eCsj50w6FpfFwgOwor54KwPnDDoW98XCA7Civngqg+YmFvfFwgOwor54KnPmR1w7J8XCA7CivngqI+emjDunxcIDsKK+eCoD54acOhfFwgOwor54KYPnhpbnxcIDsKK+eCjT5ww6BufFwgOwor54KMPmvDoGl8XCA7CivngoQ+bmnFrXxcIDsKK+eCgz5mw6lufFwgOwor54G9PnphaXxcIDsKK+eBuz5jaMOsfFwgOwor54G6Pnhpw6h8XCA7Civngbk+emjDoHxcIDsKK+eBsz5odWl8XCA7Civngak+ecOgbnxcIDsKK+eBqD5nxINufFwgOwor54GnPnnDoG58XCA7CivngaU+eMO6bnxcIDsKK+eBoz53YW58XCA7CivngaE+bMOhbnxcIDsKK+eBoD5sxINufFwgOwor54GfPnpow7p8XCA7CivngZ0+aMOgb3xcIDsKK+eBmD50YW58XCA7CivngZQ+ecOgbnxcIDsKK+eBkj5ow6BufFwgOwor54GOPnnDoG58XCA7CivngYY+bMOhbnxcIDsKK+eBhD5zaMOofFwgOwor54C/PmbDoW58XCA7CivngL4+bMOhbnxcIDsKK+eAuz5kw6BpfFwgOwor54C5Pnl1w6h8XCA7CivngLY+bMOtbnxcIDsKK+eAtT5mw6hufFwgOwor54CsPmzDoGl8XCA7CivngKo+ZsOhbnxcIDsKK+eAqT5kdcOsfFwgOwor54CoPmzDoGl8XCA7CivngKY+emh1fFwgOwor54ClPmjDoG98XCA7CivngKI+d8OpaXxcIDsKK+eAoT5zdcStfFwgOwor54CZPnFpbnxcIDsKK+eAlj5odcOyfFwgOwor54CVPmJpbnxcIDsKK+eAkj5xw6xufFwgOwor54CQPmLDoG98XCA7CivngI8+bGnDunxcIDsKK+eAij5ww6FufFwgOwor54CJPnhpw6h8XCA7CivngIg+aHVpfFwgOwor54CEPmppw6l8XCA7CivngIA+eW91fFwgOwor5r+8Pmx1w7J8XCA7Civmv7s+ZHXDrHxcIDsKK+a/tz5mw6hpfFwgOwor5r+xPmJpbnxcIDsKK+a/sD53w6lpfFwgOwor5r+sPmrDuW58XCA7Civmv6s+bMOgbnxcIDsKK+a/qT5odcOyfFwgOwor5r+nPmR1w6x8XCA7Civmv6Y+ecStbnxcIDsKK+a/pD50YW98XCA7Civmv5w+asOsbnxcIDsKK+a/lT5zaGl8XCA7Civmv4s+Y2jFrXxcIDsKK+a/ij5odcOsfFwgOwor5r+GPmbDqW58XCA7Civmv4U+ZsOobnxcIDsKK+a/hD5ndW98XCA7Civmvr8+ccOtbnxcIDsKK+a+uz5zdcOsfFwgOwor5r64PmTEg258XCA7Civmvrc+ZGFufFwgOwor5r6vPmPDoG58XCA7Civmvqs+bcOgbnxcIDsKK+a+qj5odcOhfFwgOwor5r6pPnh1w6l8XCA7Civmvqg+c2jDrHxcIDsKK+a+pT54acOofFwgOwor5r6fPmzErW58XCA7CivmvpQ+aMOgb3xcIDsKK+a+kT5sacO5fFwgOwor5r6QPnnDum58XCA7Civmvo8+aMOgbnxcIDsKK+a+ij5jdW58XCA7Civmvok+Z8SDbnxcIDsKK+a+hz5sw6BvfFwgOwor5r2/PnfDqWl8XCA7Civmvb4+bMOtbnxcIDsKK+a9uz5zaMWtfFwgOwor5r21PnPDoG58XCA7CivmvbA+a3XDrHxcIDsKK+a9rz54w7pufFwgOwor5r2sPmTDoG58XCA7Civmvas+d2FufFwgOwor5r2kPnLDuW58XCA7CivmvaM+bMOhb3xcIDsKK+a9oT5kw7lufFwgOwor5r2gPnjDuW58XCA7CivmvZk+Z3VpfFwgOwor5r2UPmppw6l8XCA7CivmvZM+aHXDrHxcIDsKK+a9jz5qdcOpfFwgOwor5r2MPnpow6x8XCA7CivmvYQ+c2jDuXxcIDsKK+a9gz54w7pufFwgOwor5ry8PmN1xK18XCA7CivmvLk+bGnDunxcIDsKK+a8tz5rdcOyfFwgOwor5ryiPmjDoG58XCA7CivmvJs+dGFufFwgOwor5ryRPmfDoGl8XCA7CivmvJA+ecOgbnxcIDsKK+a8jT5ndcOzfFwgOwor5ryMPmrErW58XCA7Civmu78+bcSDbnxcIDsKK+a7vj5nxa1ufFwgOwor5ru8PmbDoG58XCA7Civmu7E+a8OydXxcIDsKK+a7rz56aMOsfFwgOwor5rurPnhpdXxcIDsKK+a7nD5nYW98XCA7Civmu5s+ecOtbnxcIDsKK+a7mT5odcOsfFwgOwor5ruWPnN1aXxcIDsKK+a7kD5qacOpfFwgOwor5ruNPnpoxK18XCA7Civmu4g+aMOgb3xcIDsKK+a7hT5tacOofFwgOwor5ruAPmNow7l8XCA7Civmur8+cMOgbnxcIDsKK+a6vj53ZWl8XCA7Civmurw+c2hpfFwgOwor5rq1PnlpbnxcIDsKK+a6sz5ow7pufFwgOwor5rqwPnHDrW58XCA7Civmuq4+c2hpfFwgOwor5rqrPndlbnxcIDsKK+a6qD5jw6FpfFwgOwor5rqjPmzDum58XCA7CivmuqA+emjDoHxcIDsKK+a6nT5nb3V8XCA7Civmupk+bGnDunxcIDsKK+a6lD5rw6BpfFwgOwor5rqRPnN1xY98XCA7Civmuo4+Z3XDrHxcIDsKK+a6jT5qw6xufFwgOwor5rqIPmd1aXxcIDsKK+a6hz5sw7zMhnxcIDsKK+a5vD5uacOofFwgOwor5rm6PnnDoW58XCA7CivmubU+ecWPdXxcIDsKK+a5tD5iw6BufFwgOwor5rmzPm7Eg258XCA7CivmubE+aHXDsnxcIDsKK+a5oz5txK1ufFwgOwor5rmgPmh1bnxcIDsKK+a5nT5qaWV8XCA7CivmuZw+c2jDrXxcIDsKK+a5mj55w6xufFwgOwor5rmTPnDDqW58XCA7CivmuY8+aHXDrHxcIDsKK+a5jD5jYW58XCA7CivmuYs+d8OpaXxcIDsKK+a5ij5jw7J1fFwgOwor5rmIPm3DqWl8XCA7CivmuYE+c2jDrXxcIDsKK+a5gD5rdcOtfFwgOwor5ri+PmjDum58XCA7CivmuL0+emFpfFwgOwor5ri8Pm3ElWl8XCA7CivmuLc+ecSDbnxcIDsKK+a4tT5sacO6fFwgOwor5riwPnlhbnxcIDsKK+a4qz54acOofFwgOwor5riqPmRpw6l8XCA7CivmuKg+d2VpfFwgOwor5rimPmd1b3xcIDsKK+a4nj5xacO6fFwgOwor5riYPmh1w6x8XCA7CivmuIk+c2jDqHxcIDsKK+a4hj5kacOpfFwgOwor5riEPmZlaXxcIDsKK+a4gj53w6hufFwgOwor5riAPmJlbnxcIDsKK+a3vj55xK1ufFwgOwor5re9PnpoxK18XCA7Civmt7Y+bMOhaXxcIDsKK+a3qj5sw7pufFwgOwor5rebPnpow6h8XCA7Civmt5o+bMOoaXxcIDsKK+a3lD5jaMOsfFwgOwor5rePPmjDoG98XCA7Civmt40+Y2jDuXxcIDsKK+a3ij55YW58XCA7Civmt4k+Z3XFj3xcIDsKK+a3gT5xacOofFwgOwor5ra9Pmh1bnxcIDsKK+a2uz5nw6BufFwgOwor5raiPnnDum58XCA7CivmtqA+d8OpaXxcIDsKK+a2mT5sw6hpfFwgOwor5raSPnR1bnxcIDsKK+a2jz5zaMO5fFwgOwor5raGPmjDoG58XCA7CivmtoQ+cGlufFwgOwor5raDPmvDuW58XCA7Civmtb8+cMOoaXxcIDsKK+a1vT5zdWl8XCA7Civmtbk+amlhfFwgOwor5rW2PmzDoW98XCA7Civmtas+aMSDaXxcIDsKK+a1qD5sxINufFwgOwor5rWiPmTDsnV8XCA7CivmtZ8+ecOzdXxcIDsKK+a1mz5ow6FufFwgOwor5rWYPnfElWl8XCA7CivmtZc+cWnDunxcIDsKK+a1lj5sacOofFwgOwor5rWVPmrDrG58XCA7CivmtLc+emjDrHxcIDsKK+a0rz5qacOpfFwgOwor5rSsPmTDoG98XCA7CivmtKk+eGnDqHxcIDsKK+a0pz53xJVpfFwgOwor5rShPmzElWl8XCA7CivmtKA+bcOzdXxcIDsKK+a0lT55aW58XCA7CivmtJQ+emjErXxcIDsKK+a0kz5zdcWPfFwgOwor5rSJPmjDsnV8XCA7CivmtIg+d8OpaXxcIDsKK+a0hT55YW58XCA7CivmtIM+aHVpfFwgOwor5rSCPmh1w6x8XCA7Civms78+ecOtbnxcIDsKK+azrD5qdcOpfFwgOwor5rOnPnl1w6h8XCA7Civms5w+Y2jDrXxcIDsKK+azlj5txINvfFwgOwor5rORPnnFj3V8XCA7Civms48+Y2jDuXxcIDsKK+azjT5iZW58XCA7Civms4c+amlhfFwgOwor5rK6PmNow618XCA7CivmsrI+ZHXDsnxcIDsKK+aysD50dW98XCA7Civmsq8+Y2jDrXxcIDsKK+ayrD5tw6hpfFwgOwor5rKgPmxpw7p8XCA7Civmspw+cMOgbnxcIDsKK+aymj56aMStfFwgOwor5rKSPm3DqWl8XCA7CivmspE+csOzdXxcIDsKK+ayjj5odcOyfFwgOwor5rKLPnnDs3V8XCA7Civmsoo+ZMOgbnxcIDsKK+ayhz55xINufFwgOwor5rKEPnnDum58XCA7Civmsbo+anXDqXxcIDsKK+axtz5nYWl8XCA7CivmsbU+Z8OgbnxcIDsKK+axrj5qdW58XCA7Civmsa0+cnXDrHxcIDsKK+axqz5tw6lufFwgOwor5rGmPmNow618XCA7CivmsZY+Z2FufFwgOwor5rGTPnFpw7p8XCA7CivmsY4+ZsOgbnxcIDsKK+axjT53w6FufFwgOwor5rGEPmjDoG58XCA7CivmsYM+YmlufFwgOwor5rC/Pmd1xK18XCA7CivmsL4+ZsOgbnxcIDsKK+awsz55dW58XCA7CivmsJ0+bsOoaXxcIDsKK+awlT5waWV8XCA7CivmsJI+anXDqXxcIDsKK+awjj5kacOpfFwgOwor5rCMPmx1w7N8XCA7CivmsIk+c8Ogb3xcIDsKK+awgj5tw6FvfFwgOwor5q+/PnNhbnxcIDsKK+avuz50dcOyfFwgOwor5q+6Pm3DoW98XCA7Civmr7g+c3VpfFwgOwor5q+3Pm3DoG98XCA7Civmr7I+ZHXDs3xcIDsKK+avsD5ww6lpfFwgOwor5q+tPmTDsnV8XCA7Civmr6w+cWnDunxcIDsKK+avpT54w7pufFwgOwor5q+iPnNhaXxcIDsKK+avoD5qaWF8XCA7Civmr54+bcOgb3xcIDsKK+avkT56dcWPfFwgOwor5q+OPm3ElWl8XCA7Civmr4c+aHXErXxcIDsKK+avgz5xdcOofFwgOwor5q+APmh1xK18XCA7Civmrr4+aHXDrHxcIDsKK+auvT55w6FvfFwgOwor5q66PnNoYXxcIDsKK+autj56aMO5fFwgOwor5q6vPmLDrG58XCA7Civmrqs+ZGFufFwgOwor5q6oPmh1w6x8XCA7CivmrqU+ecOtbnxcIDsKK+auoz5qw6xufFwgOwor5q6fPndlbnxcIDsKK+aunj55xa1ufFwgOwor5q6ZPmh1bnxcIDsKK+aumD5jw6FufFwgOwor5q6XPmRpw6l8XCA7CivmrpU+ZsWPdXxcIDsKK+aujz5xacO5fFwgOwor5q6MPmp1w6l8XCA7CivmroA+ecSDb3xcIDsKK+atvT56aMOpfFwgOwor5q26PmTEg2l8XCA7Civmrbg+Z3VpfFwgOwor5q21PmN1w7J8XCA7CivmrbM+c3XDrHxcIDsKK+atsj5zdcOsfFwgOwor5q2xPmt1w6x8XCA7Civmra8+Y2jErXxcIDsKK+atrT5jaMOtfFwgOwor5q2ePmvEg258XCA7CivmrZw+Y2jDuXxcIDsKK+atlT5wZW58XCA7CivmrY8+asOsbnxcIDsKK+atjj50w6BufFwgOwor5q2FPnlpbnxcIDsKK+athD5ndWF8XCA7CivmrYE+a8SDbnxcIDsKK+asvz5rxINufFwgOwor5qy9PnFpbnxcIDsKK+asvD5jaMStfFwgOwor5qyxPnhpw6B8XCA7CivmrK4+anXDqXxcIDsKK+asrD5rw6BpfFwgOwor5qyrPmNoaXxcIDsKK+asqj5jaMO5fFwgOwor5qyZPmzDqWl8XCA7CivmrJg+emjFrXxcIDsKK+aslz5sw6FufFwgOwor5qyWPmzEg258XCA7CivmrJQ+anXDqXxcIDsKK+askT56w6BufFwgOwor5qyPPmx1w7N8XCA7CivmrIg+d8OpaXxcIDsKK+ashz5zaMOofFwgOwor5qyEPmzDoW58XCA7Civmq74+ecOzdXxcIDsKK+arvT55xK1ufFwgOwor5qu0PmzDoGl8XCA7Civmq7E+bmnDqHxcIDsKK+arqz56aHV8XCA7Civmq6k+ecOhbnxcIDsKK+arpz56aHV8XCA7Civmq6U+Y2jDunxcIDsKK+aroD5mw6hpfFwgOwor5qucPmdhb3xcIDsKK+armz5qacOpfFwgOwor5quYPmh1w6x8XCA7Civmq5c+bWnDqHxcIDsKK+arkT5sxJVpfFwgOwor5quQPmzElWl8XCA7Civmq48+bMOpaXxcIDsKK+arjT56aMOsfFwgOwor5quMPnlvdXxcIDsKK+ariT5jaMO6fFwgOwor5quGPmt1w618XCA7Civmq4M+Z3XDrHxcIDsKK+aqvz55xINufFwgOwor5qq8PnnErW58XCA7Civmqro+Z8SDb3xcIDsKK+aqtj5rxINufFwgOwor5qq0Pmh1w7J8XCA7CivmqrM+YmlufFwgOwor5qqvPnTDoWl8XCA7Civmqq4+dMOhb3xcIDsKK+aqrT55w61ufFwgOwor5qqoPnNoZXxcIDsKK+aqpD5kw6BvfFwgOwor5qqhPnNow6x8XCA7Civmqp8+amnEg3xcIDsKK+aqnj5qacSVfFwgOwor5qqcPmd1w6x8XCA7Civmqpo+Y2jFrXxcIDsKK+aqlj5zdcOsfFwgOwor5qqTPmh1xK18XCA7CivmqpE+bMOpaXxcIDsKK+aqjj5xw61ufFwgOwor5qqKPmfDoG58XCA7Civmqoc+enXDrHxcIDsKK+aqhT5zdcOsfFwgOwor5qqDPnnErW58XCA7CivmqoE+bMStbnxcIDsKK+apvj5zaHV8XCA7Civmqbc+ZG91fFwgOwor5qmwPmdhb3xcIDsKK+aprz5sw6BvfFwgOwor5qmuPmxpxa18XCA7Civmqaw+Y8OpbnxcIDsKK+apqj5yxINufFwgOwor5qmoPmbDqW58XCA7CivmqaQ+cnXErXxcIDsKK+apoj50dcWPfFwgOwor5qmgPm51xY98XCA7CivmqZ4+ZHXFj3xcIDsKK+apnT50YW58XCA7CivmqZw+anXDqXxcIDsKK+aplD50dcOtfFwgOwor5qmRPmzEg298XCA7CivmqY4+ZsOhbnxcIDsKK+apjT5yw7lufFwgOwor5qmKPmxpw7p8XCA7CivmqYk+bMOsbnxcIDsKK+apiD5uw6FvfFwgOwor5qmGPmN1w6x8XCA7CivmqYE+eMO6bnxcIDsKK+aouz5rdcOsfFwgOwor5qi6Pmh1w6B8XCA7CivmqLk+c2jDuXxcIDsKK+aotj56dWl8XCA7CivmqLQ+emjDrXxcIDsKK+aosz54w61ufFwgOwor5qinPnNoYXxcIDsKK+aopj56aMO5fFwgOwor5qigPm3DqW58XCA7CivmqJ4+c2h1fFwgOwor5qidPnpoYXxcIDsKK+aonD5zaMO5fFwgOwor5qibPmppdXxcIDsKK+aokz5sw7N1fFwgOwor5qiPPmzElWl8XCA7CivmqI4+c3VvfFwgOwor5qiLPmzDqWl8XCA7CivmqIc+eGl1fFwgOwor5qiGPmbDoG58XCA7Civmp74+bcOhbnxcIDsKK+anvD5ndWl8XCA7Civmp7s+Z3VpfFwgOwor5qe5Pmdhb3xcIDsKK+anuD5uacOofFwgOwor5qe2Pmt1w6x8XCA7Civmp7E+ecWPdXxcIDsKK+anrz5jdWl8XCA7Civmp64+c2VufFwgOwor5qesPmh1w6B8XCA7Civmp6o+Z8OgaXxcIDsKK+anqT5nw6BpfFwgOwor5qeoPmd1xY98XCA7Civmp6U+aHXDrHxcIDsKK+anmj5qacSDfFwgOwor5qeYPmvEg258XCA7Civmp5Y+dHXDs3xcIDsKK+anlD5nYW98XCA7Civmp5E+bcOpaXxcIDsKK+anjz5jaMO5fFwgOwor5qeLPmfDsnV8XCA7Civmp4g+bsOydXxcIDsKK+anhj5kdWl8XCA7Civmp4Q+dGFvfFwgOwor5qeDPnDDoW58XCA7Civmp4A+a8SDb3xcIDsKK+amvz5nxINvfFwgOwor5qayPnnDum58XCA7CivmprE+Y3VpfFwgOwor5qawPnpoaXxcIDsKK+amrz5zaMOtfFwgOwor5qamPmfDoG58XCA7CivmpqQ+amnDqXxcIDsKK+amoz55w6FvfFwgOwor5qaiPmppw6B8XCA7Civmppo+ecSDb3xcIDsKK+amjj5qacSDfFwgOwor5qaFPnnDum58XCA7Civmpbo+csOzdXxcIDsKK+altj5qacOpfFwgOwor5qWzPm3DqWl8XCA7CivmpbI+amllfFwgOwor5qWxPmPDsnV8XCA7Civmpaw+amnDqXxcIDsKK+aloj55w7N1fFwgOwor5qWZPm3DoG98XCA7CivmpZY+emjDrHxcIDsKK+alkT5rdcOtfFwgOwor5qWQPmppw6h8XCA7CivmpY8+a3XDrXxcIDsKK+aljj5ow7pufFwgOwor5qWNPmLElW58XCA7CivmpYw+ecOhbnxcIDsKK+aliT5ydcOyfFwgOwor5qWHPmh1w7J8XCA7CivmpYY+eWFvfFwgOwor5qWDPmh1aXxcIDsKK+algT5jaGF8XCA7CivmpLw+ecSDbnxcIDsKK+akuz55w6BufFwgOwor5qS2PmjDoW58XCA7CivmpLU+amnEg3xcIDsKK+aksz53ZWl8XCA7CivmpLI+d8SVaXxcIDsKK+aksT5mw7J1fFwgOwor5qSvPmR1w7N8XCA7CivmpK4+c2VufFwgOwor5qSlPnpoaXxcIDsKK+aknT5ndWl8XCA7CivmpJg+Y2jFrXxcIDsKK+aklT5iaW58XCA7CivmpJE+YmVpfFwgOwor5qSEPmppZXxcIDsKK+akgz5ow6FvfFwgOwor5qSAPnfEg258XCA7Civmo78+bmnDqHxcIDsKK+ajuz5mZW58XCA7Civmo7g+em91fFwgOwor5qO3PnpvdXxcIDsKK+ajtj5sw6FpfFwgOwor5qOvPnLElW58XCA7Civmo6o+ecSDbnxcIDsKK+ajpT5mw6FufFwgOwor5qOePmjDum58XCA7Civmo5c+esSDb3xcIDsKK+ajlD5kw6BpfFwgOwor5qOTPnDFj3V8XCA7Civmo5E+cMOhaXxcIDsKK+ajkD5mxJVpfFwgOwor5qOOPmLDoGl8XCA7Civmor4+bMOhaXxcIDsKK+aivT50dW98XCA7Civmorw+ZMSDb3xcIDsKK+aitj53xJVpfFwgOwor5qKxPmvFrW58XCA7Civmoqs+Y2VufFwgOwor5qKqPmTDsnV8XCA7CivmoqQ+ZsOpbnxcIDsKK+aioz5jw6lufFwgOwor5qKcPmppw6F8XCA7Civmops+bnXDs3xcIDsKK+aimj53xINufFwgOwor5qKWPmLDqGl8XCA7CivmopU+csOobnxcIDsKK+ailD56aGl8XCA7CivmopI+aMOhbnxcIDsKK+aijT56w6BvfFwgOwor5qKEPnnFj3V8XCA7CivmooI+cWnDunxcIDsKK+ahvz5nxINufFwgOwor5qG+Pmp1bnxcIDsKK+ahvT53xJVufFwgOwor5qG6Pmxpxa18XCA7CivmobU+cnXErXxcIDsKK+ahsz5iw6hufFwgOwor5qGwPmd1YXxcIDsKK+ahrj5iZWl8XCA7Civmoaw+c2hhfFwgOwor5qGqPnjDrW58XCA7CivmoZo+csOhb3xcIDsKK+ahmT5tw7N1fFwgOwor5qGXPmR1w7J8XCA7CivmoZY+ZHXFj3xcIDsKK+aguz5zaMOsfFwgOwor5qC6PnpoxK18XCA7CivmoLY+eWlufFwgOwor5qCvPnnFj3V8XCA7CivmoKw+enXDrHxcIDsKK+agqD5qacOpfFwgOwor5qCjPnLElW58XCA7CivmoKI+YsSDaXxcIDsKK+agnj5iZW58XCA7CivmoJk+c2jDqHxcIDsKK+agkj54w7pufFwgOwor5qCQPnPFrW58XCA7CivmoII+bcOpaXxcIDsKK+aggT5sacWtfFwgOwor5p+7PmNow6F8XCA7Civmn7k+c2jDrHxcIDsKK+afuD5wZWl8XCA7Civmn7c+emjDuXxcIDsKK+aftT56aMOgfFwgOwor5p+uPmR1w7J8XCA7Civmn6Y+ZMOgbnxcIDsKK+afpD56aGF8XCA7Civmn6M+emjDrXxcIDsKK+afnz5uw6FufFwgOwor5p+bPmd1w6x8XCA7Civmn5U+bcOgb3xcIDsKK+afiz5kw6BpfFwgOwor5p+JPmbDoW58XCA7Civmn4g+cMOhbnxcIDsKK+afgT50dcOzfFwgOwor5p6/Pm5pw6h8XCA7Civmnr4+c2jDrHxcIDsKK+aeuj5kdcOyfFwgOwor5p60PmdvdXxcIDsKK+aerD5uw6FufFwgOwor5p6hPmTFj3V8XCA7Civmnp8+ecO6bnxcIDsKK+aelD54w7pufFwgOwor5p6TPmTFj3V8XCA7Civmno8+bsOhbnxcIDsKK+aejD5mw6lufFwgOwor5p6KPsOgbmd8XCA7CivmnoM+asOsbnxcIDsKK+aegj55dcOofFwgOwor5p26PnhpbnxcIDsKK+aduT5odcOgfFwgOwor5p24Pm5pxa18XCA7Civmna4+YsOoaXxcIDsKK+admD5jaMOsfFwgOwor5p2UPmR1w7J8XCA7CivmnZI+csOobnxcIDsKK+adiz5mYW58XCA7CivmnLs+aml1fFwgOwor5py5Pmd1xK18XCA7CivmnLc+ZGFvfFwgOwor5py2PmR1xY98XCA7CivmnK4+c2jDuXxcIDsKK+acnD50dW58XCA7CivmnI8+ZsSVaXxcIDsKK+acjD5iYW58XCA7CivmnIY+ZmVufFwgOwor5pyFPnFpw6h8XCA7CivmnIQ+ecStbnxcIDsKK+acgz5odcOsfFwgOwor5pyBPmPEg258XCA7Civmm7o+Y8Ohb3xcIDsKK+abuD5zaHV8XCA7Civmm7U+bcOhbnxcIDsKK+absT55dWV8XCA7Civmm68+Y2jDunxcIDsKK+abrj55xINufFwgOwor5puqPmx1xY98XCA7Civmm6Q+aHXDsnxcIDsKK+aboz55w6BufFwgOwor5puhPmRpw6l8XCA7Civmm5M+YsOgb3xcIDsKK+abkT5zZW58XCA7Civmm40+aMOgb3xcIDsKK+abiz5xxK1ufFwgOwor5puKPmbDqGl8XCA7Civmm4c+dMOhbnxcIDsKK+abgz50w6BpfFwgOwor5pq9PmzDrW58XCA7Civmmrw+cGllfFwgOwor5pq6PmTDoG58XCA7CivmmrU+aMOgbnxcIDsKK+aasz5odcOsfFwgOwor5pqtPmjDoG98XCA7Civmmqw+eGnDqHxcIDsKK+aaqz56w6BufFwgOwor5pqqPm3ElW58XCA7Civmmqk+Z3XDrHxcIDsKK+aapT55w6BufFwgOwor5pqkPmjDoG98XCA7CivmmqA+Z8SDb3xcIDsKK+aanz5rxINpfFwgOwor5pqePmjDoG98XCA7Civmmpw+asOsbnxcIDsKK+aamz5zdcWPfFwgOwor5pqaPnnDoW98XCA7CivmmpQ+bsOhbnxcIDsKK+aakz5tw6BvfFwgOwor5pqQPnfElWl8XCA7Civmmo4+bMOhbnxcIDsKK+aaiz5txK1ufFwgOwor5pqJPmh1aXxcIDsKK+aaiD55dW58XCA7CivmmoY+eGnDoHxcIDsKK+aZvT5sw61ufFwgOwor5pm8PnfEg258XCA7Civmmaw+enXDrHxcIDsKK+aZqT53xINufFwgOwor5pmnPmjDoG98XCA7CivmmaU+aMOgbnxcIDsKK+aZoz56aGV8XCA7CivmmaI+emjDqXxcIDsKK+aZnD5rdW58XCA7CivmmZk+asO5bnxcIDsKK+aZmD5ow6BufFwgOwor5pmQPmdhaXxcIDsKK+aZij56aMStfFwgOwor5pmJPmrDrG58XCA7CivmmYY+a3VhfFwgOwor5pmCPnNow618XCA7CivmmLs+w6FuZ3xcIDsKK+aYtz53ZW58XCA7CivmmLM+ZGnDqXxcIDsKK+aYsj5mw6hpfFwgOwor5piwPnNow6x8XCA7CivmmKw+aHVufFwgOwor5pimPmjDoG98XCA7CivmmKI+cMSVaXxcIDsKK+aYlj55w6FufFwgOwor5piRPnHErW58XCA7CivmmJA+Y3XDsnxcIDsKK+aYiz5ndcOsfFwgOwor5piFPmppw6l8XCA7CivmmIQ+YsSDbnxcIDsKK+aYgT5iw6hpfFwgOwor5pe/PmjDuW58XCA7Civml70+dHVufFwgOwor5pe8Pm3DrW58XCA7Civml7s+bcOtbnxcIDsKK+aXuT5zaMOtfFwgOwor5peyPnTDoWl8XCA7Civml6o+eGnDqXxcIDsKK+aXpD5odcOyfFwgOwor5pebPmZhbnxcIDsKK+aXmT5mYW58XCA7Civml5g+emjDrHxcIDsKK+aXiD5sacO6fFwgOwor5pa/PnnDs3V8XCA7Civmlr4+bGnDunxcIDsKK+aWuD56aMWtfFwgOwor5pa2PmNow7l8XCA7CivmlrQ+bMOtbnxcIDsKK+aWsz5xw61ufFwgOwor5pamPnnDrW58XCA7CivmlqM+Y2jDuXxcIDsKK+aWoj50xY91fFwgOwor5padPmppxIN8XCA7Civmlpo+amnEg3xcIDsKK+aWlj53xJVpfFwgOwor5paVPmzDoW58XCA7CivmlpI+YmFufFwgOwor5paNPmp1w6l8XCA7Civmlog+ZmVpfFwgOwor5pW4PnNoxa18XCA7Civmla8+aHVufFwgOwor5pWuPnhpw6F8XCA7Civmlao+ZHXDs3xcIDsKK+aVqD5kxY91fFwgOwor5pWlPnnDoG58XCA7CivmlaA+ZHXDs3xcIDsKK+aVnD5uacOofFwgOwor5pWaPmR1w7N8XCA7CivmlZc+YsOgaXxcIDsKK+aVkz5kdcOzfFwgOwor5pWKPmNow7l8XCA7CivmlYY+Z3XDs3xcIDsKK+aVgz5txK1ufFwgOwor5pWCPmvDsnV8XCA7CivmlL0+YmFufFwgOwor5pS8PmdhbnxcIDsKK+aUtz5rxINvfFwgOwor5pS1PmvEg298XCA7CivmlLE+Z3XErXxcIDsKK+aUsD5ndcOsfFwgOwor5pSsPmzEg258XCA7CivmlKQ+dGFufFwgOwor5pShPmNoaXxcIDsKK+aUnz5qw7lufFwgOwor5pSePmx1b3xcIDsKK+aUnT5zaMOofFwgOwor5pScPnhpw6l8XCA7CivmlJc+bcOpaXxcIDsKK+aUlT5zYW58XCA7CivmlJQ+bMOhbnxcIDsKK+aUjD5ow6BufFwgOwor5pSIPmrDuW58XCA7CivmlIU+esSDbnxcIDsKK+aUhD5zaHV8XCA7CivmlIM+aHVvfFwgOwor5pSCPmzDqGl8XCA7Civmk74+csSDb3xcIDsKK+aTvT5sw7zDqHxcIDsKK+aTuz5zxY91fFwgOwor5pO6PmLEg2l8XCA7Civmk7k+c8OydXxcIDsKK+aTuD5sacOofFwgOwor5pO3Pnhpw6l8XCA7Civmk7Q+a3XDsnxcIDsKK+aTsz5qacOpfFwgOwor5pOyPnpow6x8XCA7Civmk68+YsOsbnxcIDsKK+aTrT5odcOyfFwgOwor5pOqPmh1w7J8XCA7Civmk6U+bMSDbnxcIDsKK+aToz5kxINvfFwgOwor5pOhPnTDoWl8XCA7Civmk5Q+ZGFufFwgOwor5pORPmNoYXxcIDsKK+aTjD5jw6BvfFwgOwor5pODPmt1xY98XCA7CivmkrQ+ZHVufFwgOwor5pKzPnHDrG58XCA7CivmkrE+dHXFj3xcIDsKK+aSqj5iw6hufFwgOwor5pKnPmp1w6l8XCA7CivmkqY+Y2jElXxcIDsKK+aSoz5kxINufFwgOwor5pKiPmTEg258XCA7CivmkqE+Y2FvfFwgOwor5pKbPmzErW58XCA7CivmkpM+bsOhb3xcIDsKK+aSjz54w7pufFwgOwor5pKMPmd1w6x8XCA7Civmkok+ZHVufFwgOwor5pKIPmxhb3xcIDsKK+aShj5waWV8XCA7CivmkoM+Z3XDrHxcIDsKK+aSgD5nw7J1fFwgOwor5pG/PnlpbnxcIDsKK+aRtT5zdcWPfFwgOwor5pG0PnNodXxcIDsKK+aRsz5rb3V8XCA7CivmkbE+bcOhbnxcIDsKK+aRsD5uacOofFwgOwor5pGvPnpow6x8XCA7Civmkas+Z3VpfFwgOwor5pGmPmh1w6B8XCA7CivmkaM+emhhfFwgOwor5pGhPmfDoGl8XCA7CivmkZ8+bG91fFwgOwor5pGbPmNoaXxcIDsKK+aRlz5zb3V8XCA7CivmkZE+Z3XDs3xcIDsKK+aRjT5zdW98XCA7CivmkYk+c291fFwgOwor5pGCPnNow6h8XCA7CivmkL4+emjDoHxcIDsKK+aQuz5uacOofFwgOwor5pC1PnfDqG58XCA7CivmkLM+eGnDoXxcIDsKK+aQsT5odcOhfFwgOwor5pCvPnRhb3xcIDsKK+aQqz5ww6FufFwgOwor5pCpPmppw6l8XCA7CivmkKM+bWnDqHxcIDsKK+aQoj5qw6xufFwgOwor5pCdPnFpxa18XCA7CivmkJo+eGnDqXxcIDsKK+aQmD56aGl8XCA7CivmkJc+ZMSDb3xcIDsKK+aQlj55w6FvfFwgOwor5pCOPnN1bnxcIDsKK+aQjT5zxa1ufFwgOwor5pCLPmNoxK18XCA7CivmkIk+cXXDqHxcIDsKK+aQhz5xw6xufFwgOwor5pCGPmfDsnV8XCA7CivmkIM+Y2hhfFwgOwor5o++PnfDqG58XCA7Civmj7o+ecOhb3xcIDsKK+aPuT5iZWl8XCA7Civmj7c+Y2hhfFwgOwor5o+zPmppw6F8XCA7Civmj64+aHVpfFwgOwor5o+rPmppdXxcIDsKK+aPnD55xINufFwgOwor5o+TPnNow6x8XCA7Civmj5E+bmllfFwgOwor5o+MPnNhaXxcIDsKK+aPiz53ZWl8XCA7Civmj4c+bsSDbnxcIDsKK+aPhT55w6FufFwgOwor5o+CPmppdXxcIDsKK+aOvz5udcOyfFwgOwor5o6yPmppZXxcIDsKK+aOrz5rw6hufFwgOwor5o6rPnpvdXxcIDsKK+aOoT5jxINpfFwgOwor5o6fPmx1xJV8XCA7Civmjp0+aHXDsnxcIDsKK+aOmz5ndcOgfFwgOwor5o6TPnNow7p8XCA7Civmjo0+Z8WtbnxcIDsKK+aOhT5kdW98XCA7CivmjoQ+bHVufFwgOwor5o6DPnPEg298XCA7Civmjb4+c8Ogb3xcIDsKK+aNvD5udcOzfFwgOwor5o25PmLDqG58XCA7Civmjbg+bmllfFwgOwor5o2vPmTDoW98XCA7Civmjas+bcOpbnxcIDsKK+aNqD5zaMSVfFwgOwor5o2mPnHDrW58XCA7CivmjaU+d8OgbnxcIDsKK+aNnT50dW98XCA7CivmjZw+c291fFwgOwor5o2bPmzDvMyGfFwgOwor5o2YPnrDuW58XCA7CivmjZQ+anXDqXxcIDsKK+aNkT5ndWF8XCA7CivmjYo+cMOzdXxcIDsKK+aNhz5odcOyfFwgOwor5o2EPmppw7l8XCA7CivmjYM+asO5bnxcIDsKK+aMvz5jaGF8XCA7CivmjL4+amlhfFwgOwor5oy8Pm51w7J8XCA7CivmjLQ+bcSVaXxcIDsKK+aMsT5zdW98XCA7CivmjKY+eMO6bnxcIDsKK+aMlz5qdcOpfFwgOwor5oyVPmRpw6l8XCA7CivmjJQ+bMO8zIZ8XCA7CivmjJM+emhhfFwgOwor5oySPmxpw6h8XCA7CivmjIY+ZHXFj3xcIDsKK+aMhT5kdcWPfFwgOwor5oyEPmt1w7J8XCA7CivmjIM+emjDrHxcIDsKK+aLuz5odWl8XCA7Civmi7k+eGnDqXxcIDsKK+aLuD5jaMStfFwgOwor5ou1PmPDum58XCA7Civmi7A+bsStbnxcIDsKK+aLqz5ow6lufFwgOwor5ouqPmt1w7J8XCA7Civmi6E+a3XDsnxcIDsKK+aLnT5iw6BpfFwgOwor5ouLPnBhb3xcIDsKK+aLgz56aMOgfFwgOwor5ouBPmppYXxcIDsKK+aLgD5jaMO5fFwgOwor5oq2PmNow6x8XCA7Civmiq8+emhhfFwgOwor5oqtPnnEg298XCA7Civmiqk+dGFufFwgOwor5oqnPnpoxK18XCA7CivmipQ+cMOzdXxcIDsKK+aKjz53w6FufFwgOwor5oqOPnnFrW58XCA7Civmio0+d8OgbnxcIDsKK+aKiz5xw6xufFwgOwor5oqGPnfDqG58XCA7CivmioE+ecSDbnxcIDsKK+aJvT5kw7lufFwgOwor5om6PnpoxK18XCA7CivmibQ+amnDoXxcIDsKK+aJsj5wYW58XCA7Civmiag+csOobnxcIDsKK+aJpT50dW98XCA7CivmiaE+Y2jErXxcIDsKK+aJoD5jaGF8XCA7CivmiZ4+Z8SDbnxcIDsKK+aJlz56w6BpfFwgOwor5omKPnnEg258XCA7CivmiLw+bcSDb3xcIDsKK+aIuj5zaMOsfFwgOwor5oitPnnEg258XCA7CivmiKQ+Z8OgaXxcIDsKK+aIoz5rdcOtfFwgOwor5oigPnNow6x8XCA7CivmiJ4+amnDoXxcIDsKK+aInT56w6lpfFwgOwor5oicPmRpw6l8XCA7CivmiIk+eXXDqHxcIDsKK+aIhD5qdcOpfFwgOwor5oiBPm7Eg258XCA7Civmh74+c2jDqHxcIDsKK+aHtj5sxINufFwgOwor5oexPm1pw6h8XCA7Civmh7A+bGnDunxcIDsKK+aHrj55xY91fFwgOwor5oerPnpow618XCA7Civmh6g+eWFufFwgOwor5oenPm51w7J8XCA7Civmh6U+emjDrHxcIDsKK+aHoz5tw6hufFwgOwor5oeiPmzDoW58XCA7Civmh58+ZHXDrHxcIDsKK+aHmz5kYWl8XCA7Civmh5o+ecOsbnxcIDsKK+aHmD5jaMOsfFwgOwor5oeXPnhpw6B8XCA7Civmh5Y+Z3VhfFwgOwor5oeVPnlhbnxcIDsKK+aHjz5qw7lufFwgOwor5oeNPmzErW58XCA7Civmh4c+a8SVbnxcIDsKK+aHhj5jxINvfFwgOwor5oeEPnHDrW58XCA7Civmh4M+ccOtbnxcIDsKK+aHgD53w6BpfFwgOwor5oa7PnTEg258XCA7Civmhro+ZMOgbnxcIDsKK+aGuT5uw6FvfFwgOwor5oazPnTEg258XCA7CivmhrA+anXDqXxcIDsKK+aGrz5jxINufFwgOwor5oarPm3ErW58XCA7CivmhqY+bMOgb3xcIDsKK+aGpT5sw6FvfFwgOwor5oakPmbDqG58XCA7CivmhqM+ZsOhbnxcIDsKK+aGoD5qdcOpfFwgOwor5oaePmR1w6x8XCA7Civmhpw+ZHXFj3xcIDsKK+aGmz50w6FufFwgOwor5oaaPmTDoG58XCA7Civmhpc+ecOsbnxcIDsKK+aGlj55w6xufFwgOwor5oaTPmh1w6x8XCA7CivmhpI+a3XDrHxcIDsKK+aGjz5jaMOsfFwgOwor5oaKPmLDqGl8XCA7Civmhoc+ZmFufFwgOwor5oaEPnpow6x8XCA7CivmhoI+eW91fFwgOwor5oW6PmzDs3V8XCA7Civmhbk+emjDrXxcIDsKK+aFtD56aMOpfFwgOwor5oWyPm3DoW58XCA7Civmha0+ecOsbnxcIDsKK+aFrD5qxK1ufFwgOwor5oWmPmrDrG58XCA7CivmhaU+esOgb3xcIDsKK+aFpD5xdcOofFwgOwor5oWePmPDoG98XCA7CivmhZw+bcStbnxcIDsKK+aFmz5jdcOtfFwgOwor5oWaPmPDoW58XCA7CivmhZk+Y8OhbnxcIDsKK+aFmD5jxINufFwgOwor5oWXPmNow6x8XCA7CivmhZY+Z3XDs3xcIDsKK+aFjT55w7lufFwgOwor5oWLPnTDoGl8XCA7CivmhYc+eWlufFwgOwor5oWGPnRhb3xcIDsKK+aFhT5zYW98XCA7CivmhYE+aMO5bnxcIDsKK+aFgD54acOpfFwgOwor5oS+PmvDoGl8XCA7CivmhLw+Y8SDb3xcIDsKK+aEuz5zw7lufFwgOwor5oS6PmPEg298XCA7CivmhLc+a8SDaXxcIDsKK+aEtj54acOpfFwgOwor5oSuPnnDoW98XCA7CivmhKo+ecO6bnxcIDsKK+aEqD5xdcOofFwgOwor5oSiPnNhaXxcIDsKK+aEnj5udcOyfFwgOwor5oSdPnnEg258XCA7CivmhJw+cWnDqHxcIDsKK+aElz5tw7J1fFwgOwor5oSUPnlpbnxcIDsKK+aEkj5rw6BpfFwgOwor5oSHPnfElWl8XCA7CivmhIQ+dG91fFwgOwor5oSCPmLDqGl8XCA7Civmg70+aHVufFwgOwor5oO1PmRpw6h8XCA7Civmg7I+ecO5bnxcIDsKK+aDsT5uxINvfFwgOwor5oOjPmLElWl8XCA7Civmg6I+cnXErXxcIDsKK+aDmz5odW58XCA7Civmg5c+bmllfFwgOwor5oOUPnTDoW58XCA7Civmg5A+ZMOgbnxcIDsKK+aDjz5sw61ufFwgOwor5oONPmppbnxcIDsKK+aDiD5ndcWPfFwgOwor5oOHPmR1bnxcIDsKK+aDgz5rdW58XCA7Civmg4I+a8SDbnxcIDsKK+aDgD5sw7pufFwgOwor5oK2Pm1lbnxcIDsKK+aCsz5kdcOzfFwgOwor5oKpPm7Eg298XCA7Civmgpg+aHVpfFwgOwor5oKXPm3DoW58XCA7Civmgo8+cWnDqHxcIDsKK+aCjj5ow6BvfFwgOwor5oKLPmzDrG58XCA7Civmgoo+emjDqXxcIDsKK+aCiD5qacOofFwgOwor5oKFPnl1w6h8XCA7CivmgbU+aHXDrHxcIDsKK+aBsT55dcOofFwgOwor5oGlPmNoxK18XCA7CivmgaE+bMOsbnxcIDsKK+aBnT5qacOhfFwgOwor5oGcPmNow6x8XCA7CivmgZs+aHXDrXxcIDsKK+aBmD5xaXV8XCA7CivmgZc+a3XEg3xcIDsKK+aBkT5ndcStfFwgOwor5oGPPmjEg298XCA7CivmgY4+ZGnDqXxcIDsKK+aBij54acOpfFwgOwor5oGJPnpoxK18XCA7CivmgYU+bMSDb3xcIDsKK+aBgD5jaMStfFwgOwor5oC5PnRhbnxcIDsKK+aArj55b3V8XCA7CivmgKM+ecOzdXxcIDsKK+aAlz50aWV8XCA7CivmgJM+bsOhb3xcIDsKK+aAkT5iw6BufFwgOwor5oCQPmvDsnV8XCA7CivmgIw+cGVpfFwgOwor5oCLPm3DrW58XCA7CivmgIk+YsSDb3xcIDsKK+W/uT5zYWl8XCA7Civlv7Y+aMO6bnxcIDsKK+W/tD5uacWtfFwgOwor5b+zPnTDum58XCA7Civlv7I+dMOgaXxcIDsKK+W/sD5jdcOsfFwgOwor5b+uPnpow6x8XCA7Civlv6g+d8OgbnxcIDsKK+W/nz5tw61ufFwgOwor5b+ePm3DrW58XCA7Civlv5s+ZsOhbnxcIDsKK+W/lT5zaMOsfFwgOwor5b+TPmdhbnxcIDsKK+W/jj5yw6lufFwgOwor5b+LPmfEg2l8XCA7Civlv4g+csOpbnxcIDsKK+W/gT5iw6BvfFwgOwor5b6+Pm3DqWl8XCA7Civlvrs+d8OoaXxcIDsKK+W+uT5jaMOofFwgOwor5b62PmJpw6h8XCA7CivlvrI+Y2jDrXxcIDsKK+W+qz53xJVpfFwgOwor5b6mPmppxIN8XCA7CivlvqU+Y2jDrXxcIDsKK+W+oz5qacOofFwgOwor5b6iPmbDsnV8XCA7CivlvqA+bMOhaXxcIDsKK+W+nz5sw6FpfFwgOwor5b6dPnpow6x8XCA7Civlvo8+emjDrHxcIDsKK+W9vT5jaMOtfFwgOwor5b21PnR1xY98XCA7CivlvbI+Y2hpfFwgOwor5b2oPmNoaXxcIDsKK+W9pT55w6BufFwgOwor5b2jPnfDqW58XCA7CivlvaA+aHXDsnxcIDsKK+W9nz5odcOyfFwgOwor5b2aPmh1w6x8XCA7CivlvZk+aHXDrHxcIDsKK+W9jz5qdcOpfFwgOwor5b2OPndhbnxcIDsKK+W9jT5rdcOyfFwgOwor5b2IPmTDoG58XCA7CivlvYY+YmnDqHxcIDsKK+W9hD5rb3V8XCA7CivlvL4+ZMOgbnxcIDsKK+W8vT5zaMOofFwgOwor5by0PmR1bnxcIDsKK+W8oj50YW98XCA7CivlvKE+anXDqXxcIDsKK+W8mj50dcOtfFwgOwor5bySPnNow6x8XCA7CivlvI4+c2FufFwgOwor5byHPnnEg258XCA7CivlvIU+ZsOpbnxcIDsKK+W7vT5odcOtfFwgOwor5bu8Pm7Eg2l8XCA7Civlu7s+aHXDrXxcIDsKK+W7tT54w7pufFwgOwor5bu0PnnErW58XCA7Civlu6k+bMStbnxcIDsKK+W7oj5mw6hpfFwgOwor5buePnhpbnxcIDsKK+W7mj5jaMO6fFwgOwor5buXPmTDoGl8XCA7Civlu5U+ecOsbnxcIDsKK+W7lD5sw7N1fFwgOwor5buQPmppw7l8XCA7Civlu48+amnDuXxcIDsKK+W7jT5qxK1ufFwgOwor5buLPnNvdXxcIDsKK+W7iD5zaMOgfFwgOwor5buHPmxpw7l8XCA7Civlu4Y+aHXDrHxcIDsKK+W7hD5qacO5fFwgOwor5buDPmbDqGl8XCA7Civlu4A+c291fFwgOwor5bq7PnNow7l8XCA7CivlurI+bMOhaXxcIDsKK+W6rj55w7N1fFwgOwor5bqqPmd1xK18XCA7CivluqQ+emjDrHxcIDsKK+W6oj56aMOsfFwgOwor5bqOPmppw6h8XCA7Civluo0+YsOgaXxcIDsKK+W6iT5kw7lufFwgOwor5bqIPnHDrW58XCA7Civlubk+Z8OgbnxcIDsKK+W5sT5sw6FufFwgOwor5bmvPmppw6l8XCA7Civlua4+Y2jDunxcIDsKK+W5rT5tacOofFwgOwor5bmpPmbDqW58XCA7CivluZ8+emjDrHxcIDsKK+W5lz5ndcOzfFwgOwor5bmRPmh1aXxcIDsKK+W5jz5qaWF8XCA7CivluY0+ZGFvfFwgOwor5bmLPnDDoW58XCA7CivluYM+d8OpaXxcIDsKK+W4vz5ow7N1fFwgOwor5bi5PnNow6B8XCA7CivluLY+ZMOgaXxcIDsKK+W4tT5qacOgfFwgOwor5bi0PnNoYXxcIDsKK+W4sD5ndWl8XCA7CivluK8+ZMOgaXxcIDsKK+W4rD5xw7pufFwgOwor5birPnNoaXxcIDsKK+W4oj5xacOgfFwgOwor5biSPmTDoGl8XCA7CivluI4+ZMOgbnxcIDsKK+W4iz56aMStfFwgOwor5biJPmZlbnxcIDsKK+W4hz5uacOofFwgOwor5be6PnjDuW58XCA7Civlt7k+asStbnxcIDsKK+W3tT56aGl8XCA7Civlt7A+cWnDunxcIDsKK+W3rz5xacO6fFwgOwor5bekPmxpZXxcIDsKK+W3nD5ndcOsfFwgOwor5beaPnnEg258XCA7Civlt5k+bsOhb3xcIDsKK+W3mD55xINufFwgOwor5beXPnnDoW58XCA7Civlt5Y+ecOhbnxcIDsKK+W3jj5rdW58XCA7Civlt4w+ecOhbnxcIDsKK+W3iz5rdWl8XCA7Civlt4I+c3XErXxcIDsKK+W3gD5qaWV8XCA7Civltr4+ecStbnxcIDsKK+W2vT55dcOofFwgOwor5ba5PmTEg298XCA7CivltrU+enXErXxcIDsKK+W2sD54acOofFwgOwor5bapPm7DoW98XCA7Civltqg+eHXDqXxcIDsKK+W2pT5qdcOpfFwgOwor5bakPnnDoW98XCA7CivltqI+ecOhb3xcIDsKK+W2oT5ndcOsfFwgOwor5bafPnp1bnxcIDsKK+W2nj5kdcOyfFwgOwor5bacPmppbnxcIDsKK+W2lz5sw6FvfFwgOwor5baWPnnEg258XCA7CivltpQ+cWlufFwgOwor5baMPmTEg298XCA7Civltos+ZMSDb3xcIDsKK+W2ij56dcStfFwgOwor5baJPnp1aXxcIDsKK+W2hj5jw6FvfFwgOwor5baBPmzFj3V8XCA7Civltb4+Y2VufFwgOwor5bW9PmRpw6l8XCA7CivltbM+Y3XDs3xcIDsKK+W1sj5uacOofFwgOwor5bWnPmxpw7p8XCA7CivltaU+amnDqXxcIDsKK+W1nz5kdWl8XCA7CivltZo+cWlufFwgOwor5bWXPnN1w6x8XCA7CivltZY+Y2jDoXxcIDsKK+W1lT5sw7zMhnxcIDsKK+W1lD53xJVpfFwgOwor5bWTPnnDoW58XCA7CivltZI+ecOhbnxcIDsKK+W1kT5qdcOpfFwgOwor5bWQPmzDoW58XCA7CivltYU+Z2FufFwgOwor5bWEPm3ElWl8XCA7CivltYM+ecSDbnxcIDsKK+W1gT5rYW58XCA7CivltYA+emjDuXxcIDsKK+W0vj55xINvfFwgOwor5bS8PnNow6x8XCA7CivltLs+emjDrHxcIDsKK+W0uD5kw7lufFwgOwor5bS3PnFpw7p8XCA7CivltK8+ecOtbnxcIDsKK+W0qz5qdcOpfFwgOwor5bSoPmppw6l8XCA7CivltKM+d8SVaXxcIDsKK+W0oT5jdcOsfFwgOwor5bSfPnnDrW58XCA7CivltJw+ZHVvfFwgOwor5bSZPmzDum58XCA7CivltJE+a3VufFwgOwor5bSQPmt1bnxcIDsKK+W0jz5tw61ufFwgOwor5bSNPmzDoWl8XCA7CivltIs+aHXDoXxcIDsKK+W0ij5saW58XCA7CivltIU+cXXDqHxcIDsKK+W0gT5rxINufFwgOwor5bO+PnlpbnxcIDsKK+WzvT54acOhfFwgOwor5bO8PmjDoG98XCA7Civls7Y+ZMSDb3xcIDsKK+Wzsz55w7N1fFwgOwor5bOxPm7DoW98XCA7Civls64+cXVufFwgOwor5bOjPnnDoW98XCA7Civls58+ecOydXxcIDsKK+Wzlz53w6lpfFwgOwor5bOVPnNow618XCA7Civls5A+Z2FpfFwgOwor5bOMPmRpw6l8XCA7Civls4M+eHXDqXxcIDsKK+WzgD54acO5fFwgOwor5bK7PmNow618XCA7Civlsq8+cGVpfFwgOwor5bKuPnDDqWl8XCA7CivlsqU+YmVpfFwgOwor5bKkPnh1w6h8XCA7Civlsp4+enXDsnxcIDsKK+WynT56dcOyfFwgOwor5bKVPmppw6h8XCA7Civlso4+ZmVufFwgOwor5bKKPmppw6l8XCA7Civlsoc+w6FuZ3xcIDsKK+Wyhj55xINvfFwgOwor5bKFPmLEg258XCA7CivlsoA+Y2h1fFwgOwor5bG9PmjDoG58XCA7Civlsbs+csOobnxcIDsKK+Wxrj5jaMOofFwgOwor5bGsPnNoxa18XCA7Civlsas+anXDqXxcIDsKK+WxqT5qdcOpfFwgOwor5bGnPnhpw6h8XCA7CivlsZ8+eGnDqHxcIDsKK+WxnT5mw6hpfFwgOwor5bGaPmzDsnV8XCA7CivlsZg+bcSDbnxcIDsKK+WxjT5zaGl8XCA7CivlsYY+amnDqHxcIDsKK+Wwtz5nYW58XCA7CivlsLY+Z2FufFwgOwor5bC1PnR1w618XCA7CivlsLI+Z2FufFwgOwor5bCwPmNoxJV8XCA7CivlsK8+a3XDrHxcIDsKK+Wwrj5kdcOyfFwgOwor5bCtPnnDoW98XCA7CivlsKk+a3XErXxcIDsKK+Wwlz5zaMO6fFwgOwor5bCOPmTEg298XCA7CivlsI0+ZHXDrHxcIDsKK+WwjD5kw6BvfFwgOwor5bCLPnjDum58XCA7Civlr74+ZHXDrHxcIDsKK+Wvtj5ixINvfFwgOwor5a+0PnHDrG58XCA7Civlr7M+YsSDb3xcIDsKK+Wvrz5qw7lufFwgOwor5a+tPmh1w6x8XCA7Civlr6s+eGnElXxcIDsKK+Wvqj53xJVpfFwgOwor5a+mPnNow618XCA7Civlr6I+ccStbnxcIDsKK+Wvmj5ixINvfFwgOwor5a+WPmrDrG58XCA7Civlr5Q+c2jDrXxcIDsKK+WvkT5xxK1ufFwgOwor5a+JPnF1w6h8XCA7Civlr4E+esSDbnxcIDsKK+WvgD5jw6BpfFwgOwor5a68PmvDsnV8XCA7Civlrrc+YsOsbnxcIDsKK+Wusj5ixINvfFwgOwor5a6xPnpow6B8XCA7Civlrq0+ccO6bnxcIDsKK+WuqT5zaMStfFwgOwor5a6fPnNow618XCA7Civlro4+ecSDb3xcIDsKK+WujT5yw7J1fFwgOwor5a28Pm5pw6h8XCA7Civlrbs+bMOhaXxcIDsKK+WtuD54dcOpfFwgOwor5a2tPmPDoG58XCA7Civlras+c3VufFwgOwor5a2hPnRhaXxcIDsKK+Wtnj54w6xufFwgOwor5a2SPmp1w6l8XCA7CivlrY8+bMSDbnxcIDsKK+Wtjj56aMWtfFwgOwor5a2NPnnDoW58XCA7CivlrYQ+bMSDbnxcIDsKK+Wsvz55w6BufFwgOwor5ay+PmzEg258XCA7CivlrLw+bGnFrXxcIDsKK+WssT5jw6FufFwgOwor5ayuPnlhbnxcIDsKK+WsrT5uxINpfFwgOwor5ayqPnDDrW58XCA7CivlrKc+asOsbnxcIDsKK+WsoD5jw6FufFwgOwor5ayYPnN1w6x8XCA7CivlrJU+c2jDrHxcIDsKK+Wskj53w6hpfFwgOwor5ayPPmZhbnxcIDsKK+Wsjj5mw6BufFwgOwor5ayNPm3ElWl8XCA7CivlrIo+ecOgbnxcIDsKK+WsiD5yw6FvfFwgOwor5ayHPmh1w6x8XCA7CivlrIU+aHXDoXxcIDsKK+Wsgj56aGl8XCA7CivlrIA+Z3VpfFwgOwor5au/Pmh1w6B8XCA7Civlq7k+bcOhb3xcIDsKK+Wrtz50dcWPfFwgOwor5auzPnBpw6h8XCA7Civlq7A+bsOobnxcIDsKK+WrrD56aGV8XCA7Civlq6o+bMOgb3xcIDsKK+WrqD5oYW58XCA7Civlq6Q+asOsbnxcIDsKK+Wroj5ndWl8XCA7Civlq5o+bcOgbnxcIDsKK+WrkT5iw6FvfFwgOwor5auQPm7Eg298XCA7Civlq40+dGFvfFwgOwor5auFPmNoYXxcIDsKK+Wqvz5rdcOsfFwgOwor5aq7PnDDoW58XCA7Civlqro+bcSVaXxcIDsKK+WquT5sacO6fFwgOwor5aqxPnnDoW98XCA7CivlqrA+em91fFwgOwor5aqvPmd1aXxcIDsKK+Wqrj50b3V8XCA7Civlqqw+YsSDb3xcIDsKK+WqqD5qacO5fFwgOwor5aqmPnfDqGl8XCA7CivlqqM+csSDbnxcIDsKK+Wqoj5tw6BvfFwgOwor5aqgPnR1xY98XCA7Civlqp8+eGnDqHxcIDsKK+WqnT5xaXV8XCA7Civlqpk+d2VpfFwgOwor5aqYPmppZXxcIDsKK+Wqjj5qacSVfFwgOwor5aqMPm3DoW98XCA7Civlqog+aHVpfFwgOwor5aqHPnFpbnxcIDsKK+WqhT5kYW58XCA7CivlqoQ+bcSVaXxcIDsKK+Wqgz5yw7N1fFwgOwor5aqBPndlaXxcIDsKK+Wpvj50b3V8XCA7Civlqb0+amnEg3xcIDsKK+Wpuz5uw6BufFwgOwor5am5PnnEg298XCA7CivlqbM+aHXDoHxcIDsKK+WprD55w61ufFwgOwor5amrPmt1bnxcIDsKK+WpqT55w6BufFwgOwor5amoPmzDum58XCA7CivlqaM+eWlufFwgOwor5amUPndlaXxcIDsKK+Wpkz5mZWl8XCA7CivlqZI+dMOhbnxcIDsKK+Wpjj5odWl8XCA7CivlqYw+c2jFrXxcIDsKK+Wphz5jxINpfFwgOwor5amEPnDFj3V8XCA7CivlqYE+bMOzdXxcIDsKK+Woqz55w6FufFwgOwor5aioPmjDoG58XCA7CivlqKc+dHXDrHxcIDsKK+Wopj5ww61ufFwgOwor5aiiPmjDoW58XCA7CivlqKE+emjDrHxcIDsKK+Wonj5uxJVpfFwgOwor5aidPnBlaXxcIDsKK+Womj5uw6FufFwgOwor5aiVPmzDoGl8XCA7Civlp70+Z3XErXxcIDsKK+WnvD5jaMStfFwgOwor5ae4PnnDoW58XCA7Civlp7c+ecOydXxcIDsKK+Wntj55xINufFwgOwor5ae1PnDDqGl8XCA7Civlp7Q+bGnDqHxcIDsKK+Wnsj55w6BufFwgOwor5aexPmt1YXxcIDsKK+WnsD5qdW58XCA7Civlp6o+emjDrXxcIDsKK+WnpD5nw7J1fFwgOwor5aehPmt1w7J8XCA7Civlp58+Z2FpfFwgOwor5aeZPnLDqG58XCA7Civlp48+bcOhbnxcIDsKK+WnjD5yxINufFwgOwor5aeFPmLDoG58XCA7Civlp4Q+bcOtbnxcIDsKK+Wmtz56aMOtfFwgOwor5aa1PnTFj3V8XCA7CivlprM+bsSDaXxcIDsKK+Wmoj5mw6lufFwgOwor5aahPnhpbnxcIDsKK+Wmnz55w6BufFwgOwor5aacPnl1w6h8XCA7Civlppo+cGVpfFwgOwor5aaYPnnDum58XCA7Civlpo8+d8OobnxcIDsKK+Wmjj54acOofFwgOwor5aaJPmRhbnxcIDsKK+Wlvz5mw6BufFwgOwor5aW+PnDDqGl8XCA7Civlpbw+Y2jDoHxcIDsKK+Wluz5uw6FufFwgOwor5aW6Pmppxa18XCA7CivlpbI+ZHXFj3xcIDsKK+Wlrz5odcOyfFwgOwor5aWuPmbDqG58XCA7Civlpa0+c2jDrHxcIDsKK+Wlqz55dW58XCA7Civlpao+ZHXDs3xcIDsKK+WlpD5wxINufFwgOwor5aWePnjDuW58XCA7CivlpZw+ZsSVaXxcIDsKK+WlmT5ixJVufFwgOwor5aWTPnNoZXxcIDsKK+Wlkj5rYWl8XCA7CivlpYo+eGnDqXxcIDsKK+Wkvj5qaWF8XCA7CivlpL0+ecO5bnxcIDsKK+WktT5qacOhfFwgOwor5aSzPnTDoGl8XCA7CivlpLI+YsSVbnxcIDsKK+WksD5nxINvfFwgOwor5aSjPmTDoGl8XCA7CivlpKA+Z8OydXxcIDsKK+Wkmz5kdW98XCA7CivlpJg+bcSDb3xcIDsKK+Wkkz54acOgfFwgOwor5aSSPm7DoW98XCA7CivlpI4+amnEg3xcIDsKK+Wkiz5xdW58XCA7CivlpIo+c3VpfFwgOwor5aO/Pnp1bnxcIDsKK+WjvD5rxa1ufFwgOwor5aO4PmvFrW58XCA7Civlo7I+bcOgaXxcIDsKK+WjqD5sw6lpfFwgOwor5aOmPnh1bnxcIDsKK+Wjoz5sw61ufFwgOwor5aOhPnJ1w6x8XCA7Civlo50+d8OpaXxcIDsKK+WjnD50w6FufFwgOwor5aObPnnDoW58XCA7Civlo5g+bMSVaXxcIDsKK+WjlD5kxINvfFwgOwor5aOQPmh1w7J8XCA7Civlo48+aMSDbnxcIDsKK+Wjjj54dW58XCA7Civlo4g+bMSDbnxcIDsKK+Wjhz50w6FufFwgOwor5aK+PmvElW58XCA7Civlors+YmVpfFwgOwor5aK1PnTDoW58XCA7CivlorM+ZsOpbnxcIDsKK+Wirz5kdcOyfFwgOwor5aKuPmR1w7J8XCA7Civloq0+aHVpfFwgOwor5aKrPnp1bnxcIDsKK+Wiqj5kdW58XCA7Civloqc+cXXDqHxcIDsKK+Wipj5mw6FufFwgOwor5aKVPnnDoG58XCA7CivlopQ+Y3VpfFwgOwor5aKQPmrErW58XCA7Civloo4+Z3VvfFwgOwor5aKMPnpoaXxcIDsKK+WiiD5rw6BufFwgOwor5aG/PmzFj3V8XCA7Civlobs+ZGnDqXxcIDsKK+Whuj5tw6lpfFwgOwor5aGvPmxpw7l8XCA7Civloa4+eGnDqHxcIDsKK+WhrT53ZW58XCA7Civloao+a8SDbnxcIDsKK+WhqT55w6FufFwgOwor5aGkPnh1bnxcIDsKK+WhoD5kdWl8XCA7CivloZk+cXXDqHxcIDsKK+Whkj5zaMOtfFwgOwor5aGPPmvEg2l8XCA7CivloLo+amnDqHxcIDsKK+Wgtz55w6xufFwgOwor5aC2PnR1w7N8XCA7CivloLM+bcOpaXxcIDsKK+WgsT5iw6BvfFwgOwor5aCvPnnDoW98XCA7CivloKY+amllfFwgOwor5aCiPmLEg298XCA7CivloJ0+Z3VvfFwgOwor5aCaPmjDum58XCA7CivloIM+a3VufFwgOwor5Z++PmLDoG58XCA7Civln7c+emjDrXxcIDsKK+WftT5kdcWPfFwgOwor5Z+zPmvEg258XCA7Civln7E+c2jDunxcIDsKK+WfsD5jw6BpfFwgOwor5Z+uPnTDoG58XCA7Civln6g+bMWtbnxcIDsKK+Wfpj53xINufFwgOwor5Z+jPnN1w6x8XCA7Civln6E+YmVpfFwgOwor5Z+TPmxpw6h8XCA7Civln5E+emjDqXxcIDsKK+WfkD5qaW58XCA7Civln4k+amnDoXxcIDsKK+WfiD54w7lufFwgOwor5Z+GPm3DoWl8XCA7Civln4E+Y8OpbnxcIDsKK+Wevj5ow6BufFwgOwor5Z69PnnDrG58XCA7Civlnro+cGVpfFwgOwor5Z6lPnhpw6l8XCA7Civlnp4+Y2jDoXxcIDsKK+WenT5ndcStfFwgOwor5Z6cPmR1xY98XCA7Civlnpo+ecOhb3xcIDsKK+Welj5kdWl8XCA7CivlnpU+aMOydXxcIDsKK+WelD55aW58XCA7CivlnpE+Y2jErXxcIDsKK+WeiT5ww6FvfFwgOwor5Z6BPnpow6x8XCA7Civlnb4+emjDuXxcIDsKK+WduT54dcOofFwgOwor5Z21PnFpdXxcIDsKK+WdrD5ndcOgfFwgOwor5Z2nPnpoaXxcIDsKK+Wdoj5wxINufFwgOwor5Z2LPmbDqG58XCA7CivlnYk+dMO6bnxcIDsKK+Wdhj5mw6lufFwgOwor5Z2FPnHErW58XCA7CivlnYQ+dMOzdXxcIDsKK+Wdgz54dW58XCA7CivlnYE+emjErXxcIDsKK+Wcvz5qacOhfFwgOwor5Zy2PnFpw6B8XCA7CivlnJo+aHXDrHxcIDsKK+WcmT5sw7zDqHxcIDsKK+WcjT53w6lpfFwgOwor5ZyLPmd1w7N8XCA7CivlnIc+bMO6bnxcIDsKK+WchT5ow6FufFwgOwor5ZyCPmjDuW58XCA7CivlnIE+ecOtbnxcIDsKK+WcgD5ndcOzfFwgOwor5Zu8PnRhaXxcIDsKK+Wbuz5ndcOzfFwgOwor5Zu3Pmp1bnxcIDsKK+Wbtj5ndcOzfFwgOwor5ZusPmh1w618XCA7Civlm6k+ecO5bnxcIDsKK+WbnD5uw61ufFwgOwor5ZuZPnlpbnxcIDsKK+WbmD5odcOtfFwgOwor5ZuTPm5pw6h8XCA7Civlm5I+bMOhbnxcIDsKK+WbkT56aMWtfFwgOwor5ZuLPnrDoG58XCA7Civlm4k+bHVvfFwgOwor5ZuBPm5pw6h8XCA7Civlmr8+aHXDsnxcIDsKK+WatD55w6FufFwgOwor5ZqyPmR1xY98XCA7Civlmqw+cMOtbnxcIDsKK+Waqj5kw6BufFwgOwor5ZqlPnnDoG58XCA7CivlmqA+bGnDunxcIDsKK+Wanj56aMOpfFwgOwor5ZqaPnnDrW58XCA7Civlmpk+bmnDqHxcIDsKK+WamD55b3V8XCA7CivlmpY+aHXDrHxcIDsKK+WajT5qw6xufFwgOwor5ZqJPmR1b3xcIDsKK+Wahz54acOgfFwgOwor5ZqEPmh1w7J8XCA7CivlmoI+bMOgbnxcIDsKK+WZvz56dcStfFwgOwor5Zm+PnlpbnxcIDsKK+WZuD5kdW58XCA7Civlmbc+aGVufFwgOwor5Zm1PmTDoG98XCA7CivlmbQ+cGVufFwgOwor5ZmwPnh1w6l8XCA7CivlmaY+eXXElXxcIDsKK+WZoT5kYW58XCA7CivlmZ4+ecSDbnxcIDsKK+WZmz5uacOofFwgOwor5ZmaPnjDum58XCA7CivlmZY+ecOtbnxcIDsKK+WZlT5odWl8XCA7CivlmZE+aMOhb3xcIDsKK+WZiz50dW58XCA7CivlmYk+ZMOgbnxcIDsKK+WZhj56xINufFwgOwor5ZmFPmh1aXxcIDsKK+WZhD5jaGl8XCA7CivlmYM+ZmFufFwgOwor5ZmCPnrFrW58XCA7CivlmYA+eMO5bnxcIDsKK+WYvj5oZWl8XCA7CivlmL0+dGFufFwgOwor5Zi8Pnhpw7l8XCA7CivlmLc+aMOhb3xcIDsKK+WYsz5rdcOsfFwgOwor5ZiuPmzDoW98XCA7CivlmKs+csOhbnxcIDsKK+WYqT5odWF8XCA7CivlmKE+Y2jDrHxcIDsKK+WYlT5kYWl8XCA7CivlmJM+Z3VvfFwgOwor5ZiSPmh1w6x8XCA7CivlmI0+bMOzdXxcIDsKK+WYhz5zYW58XCA7CivlmIY+dMOgbnxcIDsKK+WYhT5rxINpfFwgOwor5Ze/PnTEg258XCA7Civll7s+emhlfFwgOwor5Ze6PmN1aXxcIDsKK+WXrj5zw6BpfFwgOwor5ZeqPnHDrW58XCA7Civll6k+c3XFj3xcIDsKK+WXpz5qaWF8XCA7Civll6A+bHXDsnxcIDsKK+WXkD5ow6BpfFwgOwor5ZePPmNoYXxcIDsKK+WXgj55w6FvfFwgOwor5ZeAPmh1w7J8XCA7Civllr8+c8Ogb3xcIDsKK+WWvD5qacOpfFwgOwor5Za5Pmt1w618XCA7CivllrQ+cMOobnxcIDsKK+WWsD5jYW58XCA7Civllq8+Y2hhfFwgOwor5ZatPnnDoG58XCA7Civllqs+Y2hpfFwgOwor5ZamPm5pw6h8XCA7CivllqI+c2jDoHxcIDsKK+WWoT53xJVpfFwgOwor5ZaXPnnFrW58XCA7CivllpM+eWFvfFwgOwor5ZaQPnnDrG58XCA7Civllo4+d2FpfFwgOwor5ZaMPm51w7J8XCA7CivlloY+emjDqXxcIDsKK+WVvz5kw6BufFwgOwor5ZWxPmp1w6l8XCA7CivllbA+bHVvfFwgOwor5ZWvPmd1xY18XCA7Civllas+emjElXxcIDsKK+WVqT5ndcOgfFwgOwor5ZWgPnpow6l8XCA7CivllZs+Y3XDrHxcIDsKK+WVlz5kw6BufFwgOwor5ZWRPnNow6B8XCA7CivllY8+d8OobnxcIDsKK+WVjT50dW58XCA7CivllYk+bMOhbnxcIDsKK+WVhT5sw61ufFwgOwor5ZWCPm7DsnV8XCA7CivllLs+bMSDaXxcIDsKK+WUuj5xacOofFwgOwor5ZS2Pmppw6h8XCA7CivllKs+d8SVaXxcIDsKK+WUpj5zaGF8XCA7CivllJ4+ZMWPdXxcIDsKK+WUmj5xw6xufFwgOwor5ZSXPmRvdXxcIDsKK+WUkz5jaGV8XCA7CivllJI+cWnDunxcIDsKK+WUiz5kw6BufFwgOwor5ZSKPmppw6F8XCA7CivllIU+aGFufFwgOwor5ZSEPmLDoGl8XCA7CivllIA+YsSTaXxcIDsKK+WTuz5ow6BufFwgOwor5ZO5PmbDs3V8XCA7Civlk7g+c3VpfFwgOwor5ZO2Pm1pZXxcIDsKK+WTsD5sw6FvfFwgOwor5ZOjPnDFj3V8XCA7Civlk6A+aMOgb3xcIDsKK+WTlT55dcSVfFwgOwor5ZOMPmfDqW58XCA7Civlk4U+ZHVvfFwgOwor5ZK8Pmd1b3xcIDsKK+WStz50w6FvfFwgOwor5ZK1Pmt1YXxcIDsKK+WSsj5oYWl8XCA7CivlkqU+ZGnDqXxcIDsKK+WSnz5jaMOgfFwgOwor5ZKRPnF1w6h8XCA7Civlko0+aGFpfFwgOwor5ZKFPnDDsnV8XCA7CivlkoM+dHVvfFwgOwor5ZKBPmfDqG18XCA7Civlkaw+Z3VhfFwgOwor5ZGrPnRpZXxcIDsKK+WRqT5zaMOsfFwgOwor5ZGlPnLEg258XCA7CivlkaE+d8SVbnxcIDsKK+WRoD5wZW58XCA7CivlkZ4+c2hpfFwgOwor5ZGZPmd1b3xcIDsKK+WRjj5jaMStfFwgOwor5ZGFPm3DqWl8XCA7CivlkYE+ZGFpfFwgOwor5ZC/PmfDoG98XCA7CivlkLo+ZG91fFwgOwor5ZCkPmppw6h8XCA7CivlkKM+ccOsbnxcIDsKK+WQoj5xw6xufFwgOwor5ZCZPnh1ZXxcIDsKK+WQiz5jw7lufFwgOwor5ZCCPmNoaXxcIDsKK+WQgD5taWV8XCA7Civlj7o+Y2jErXxcIDsKK+WPtD5xacO6fFwgOwor5Y+nPmd1xIN8XCA7Civlj6E+cnXDrHxcIDsKK+WPnj53w6hpfFwgOwor5Y+dPmfDoG98XCA7Civlj5w+c8WPdXxcIDsKK+WPmj5qacSDfFwgOwor5Y+TPnNow6x8XCA7Civlj4c+ZMOgaXxcIDsKK+WPhT5jYW58XCA7Civlj4Q+Y2FufFwgOwor5Y+DPmNhbnxcIDsKK+WPgD5odcOsfFwgOwor5Y69PmzElWl8XCA7Civljrk+cWnDunxcIDsKK+WOuD5sw61ufFwgOwor5Y60PnnEg258XCA7CivljrM+ecOhbnxcIDsKK+WOsT5sw6FufFwgOwor5Y6tPnnDoG58XCA7Civljqw+Z3XErXxcIDsKK+WOqj5xw61ufFwgOwor5Y6hPnhpw6B8XCA7Civljp4+ZsOoaXxcIDsKK+WOnD56dWl8XCA7Civljpk+c2jDqHxcIDsKK+WOlD56aMOsfFwgOwor5Y6PPnpoxIN8XCA7Civljo4+emjErXxcIDsKK+WOiD5oxINufFwgOwor5Y6HPnpow6l8XCA7Civljbs+cXXDqHxcIDsKK+WNtj5zaMOsfFwgOwor5Y2sPsOhbmd8XCA7Civljao+amnDqXxcIDsKK+WNqD54acOofFwgOwor5Y2YPmRhbnxcIDsKK+WNlD54acOpfFwgOwor5Y2QPnfDoG58XCA7CivljY0+d8OgbnxcIDsKK+WNiz5zaMOsfFwgOwor5Y2CPnjDrG58XCA7CivljLY+amnDuXxcIDsKK+WMsT5rdcOsfFwgOwor5YywPmRhbnxcIDsKK+WMrz5odcOsfFwgOwor5YytPmd1xK18XCA7CivljKw+dMOzdXxcIDsKK+WMqT5mZWl8XCA7CivljKc+cWnDqHxcIDsKK+WMmz5qacO5fFwgOwor5YyYPm7Eg298XCA7CivljJM+amnDuXxcIDsKK+WMiz50w6FvfFwgOwor5YyEPmfDoGl8XCA7CivljIM+Z8OgaXxcIDsKK+WLvT5iw6BvfFwgOwor5Yu8PmppdXxcIDsKK+WLuz55w7pufFwgOwor5Yu5PmJhb3xcIDsKK+WLtj5jaMOofFwgOwor5YuzPnh1bnxcIDsKK+WLsj54dW58XCA7Civli7E+bcOgaXxcIDsKK+WLrz5kYW58XCA7Civli6s+ZsOhbnxcIDsKK+WLqj5qdcOpfFwgOwor5YuiPnNow6x8XCA7Civli54+bMOhb3xcIDsKK+WLmz54dW58XCA7Civli5M+a8OgaXxcIDsKK+WLkT5sw6BpfFwgOwor5YuPPnDFj3V8XCA7Civli4U+Y2jDrHxcIDsKK+WLhD5txK1ufFwgOwor5YuCPmNow6x8XCA7Civli4E+asOsbnxcIDsKK+WKvT5sacOofFwgOwor5Yq8Pmppw6l8XCA7Civliro+bcOzdXxcIDsKK+WKtj5qw6xufFwgOwor5Yq0PmzDoW98XCA7Civliq8+emh1fFwgOwor5YqnPnpoxK18XCA7CivliqY+eGnDqXxcIDsKK+WKpD5qw6xufFwgOwor5YqaPnpow7p8XCA7CivlipU+emjDrXxcIDsKK+WKkD5odW98XCA7Civliow+Z3XDrHxcIDsKK+WKij5ndcOsfFwgOwor5YqJPmxpw7p8XCA7CivlioQ+emjDoXxcIDsKK+WKgz5odcOgfFwgOwor5YqCPmp1w6l8XCA7CivlioA+Z3VhfFwgOwor5Ym+PmtvdXxcIDsKK+WJuz5mw7N1fFwgOwor5Ym0PmvEg2l8XCA7CivlibM+emhhfFwgOwor5YmuPmd1xIN8XCA7Civlias+ZHXDs3xcIDsKK+WJqD5odcOyfFwgOwor5YmiPmJhb3xcIDsKK+WJnz5kdW98XCA7CivliZU+ZsOoaXxcIDsKK+WJkj5jdcOyfFwgOwor5YmOPmNow6B8XCA7CivliYk+Y3XDsnxcIDsKK+WJhj5nZW58XCA7CivliYU+bMOzdXxcIDsKK+WIvD5qacOpfFwgOwor5Yi0PmR1w7J8XCA7CivliLI+a3VpfFwgOwor5YivPmdlbnxcIDsKK+WIpz5qacOpfFwgOwor5YimPmppw6l8XCA7CivliKU+YmnDqXxcIDsKK+WIoT5txK1ufFwgOwor5YiUPmp1w6l8XCA7CivliJA+ZMSDbnxcIDsKK+WIjD5jxa1ufFwgOwor5YiEPnLDqG58XCA7CivliII+ZGFvfFwgOwor5Ye+PmjDoW58XCA7Civlh7I+Z2FufFwgOwor5YexPmvEg2l8XCA7Civlh6Y+Y2jFrXxcIDsKK+WHoz5mw6FufFwgOwor5YeiPmbDoW58XCA7Civlh5w+bMStbnxcIDsKK+WHmj5qw6xufFwgOwor5YeZPmR1w7N8XCA7Civlh5c+Y3XDrXxcIDsKK+WHkD55aW58XCA7Civlh44+Z8OgbnxcIDsKK+WHgj5txJVpfFwgOwor5YeBPnNow7l8XCA7Civlhr4+eGnDoXxcIDsKK+WGuj5txK1ufFwgOwor5Ya4PnDDoG58XCA7Civlhq0+dMOhaXxcIDsKK+WGqT54acSVfFwgOwor5YamPmvDsnV8XCA7Civlhp8+c2jDrHxcIDsKK+WGmj5rxINufFwgOwor5YaYPnnDrW58XCA7CivlhpM+Z8OydXxcIDsKK+WGkD5tw6BvfFwgOwor5YaOPmd1xIN8XCA7Civlhoc+bcSDb3xcIDsKK+WGhD5yxINufFwgOwor5YaDPm1hb3xcIDsKK+WFqj5zaMO5fFwgOwor5YWnPm7DqGl8XCA7CivlhaE+YsSDaXxcIDsKK+WFoD5kb3V8XCA7CivlhZ4+bcOhb3xcIDsKK+WFnT5mZW58XCA7CivlhZk+c2jDrXxcIDsKK+WFmD5zaMStfFwgOwor5YWXPnnEg258XCA7CivlhYw+ZHXDrHxcIDsKK+WFij5kdcOsfFwgOwor5YWCPnphbnxcIDsKK+WEvT5sxJVpfFwgOwor5YS8PnnEg258XCA7CivlhLo+bnXDs3xcIDsKK+WEuT56xINufFwgOwor5YS4Pmx1w7N8XCA7CivlhLY+aHXDrHxcIDsKK+WEtT5zaHV8XCA7CivlhLI+Y2jFrXxcIDsKK+WEsD53xJVpfFwgOwor5YSrPmjDoW98XCA7CivlhKo+eW91fFwgOwor5YSoPnpow618XCA7CivlhKc+esSDbnxcIDsKK+WEpD5iw6BvfFwgOwor5YSiPmzDvMyGfFwgOwor5YSgPmxpw6h8XCA7CivlhJg+asStbnxcIDsKK+WElj5sw6FufFwgOwor5YSTPnTDoWl8XCA7CivlhJA+YmlufFwgOwor5YSOPnrDoGl8XCA7CivlhIo+Y2jDuXxcIDsKK+WEgT5qw7lufFwgOwor5YO/PnPDoGl8XCA7Civlg7k+amnDoHxcIDsKK+WDuD5qw6xufFwgOwor5YO2Pm3ErW58XCA7Civlg68+amnEk3xcIDsKK+WDqj5qdcOpfFwgOwor5YOoPmbDqG58XCA7Civlg6Q+ZMOgbnxcIDsKK+WDoT5odcOsfFwgOwor5YOgPmZhbnxcIDsKK+WDnj53xJVpfFwgOwor5YOXPmzDoW98XCA7Civlg5Q+d8OoaXxcIDsKK+WDkz50dcStfFwgOwor5YOLPnTDoG58XCA7Civlg4g+bcOgbnxcIDsKK+WDhT5qxK1ufFwgOwor5YODPmLDqGl8XCA7Civlg4I+bMOzdXxcIDsKK+WCvz55w6BufFwgOwor5YK8PmjDoG58XCA7Civlgro+Y2jDrHxcIDsKK+WCtj5jw7J1fFwgOwor5YKuPmPDoW98XCA7Civlgqs+bMSVaXxcIDsKK+WCqj5jYW58XCA7CivlgqQ+esOgaXxcIDsKK+WCoj5qaWF8XCA7Civlgp4+c3VvfFwgOwor5YKdPnTDoG58XCA7Civlgpw+ecOhb3xcIDsKK+WCmT5iw6hpfFwgOwor5YKYPnPEg258XCA7Civlgpc+Y2jDuXxcIDsKK+WClT5qdcOpfFwgOwor5YKRPmppw6l8XCA7CivlgpA+aMOgb3xcIDsKK+WCiz5nw7J1fFwgOwor5YKKPnnFrW58XCA7CivlgoQ+eGlhfFwgOwor5YKCPnpow6x8XCA7Civlgb0+d8SVaXxcIDsKK+WBvD5qacOpfFwgOwor5YG5PmLDqGl8XCA7Civlgbg+dG91fFwgOwor5YGxPnjDum58XCA7CivlgbA+eGnDqHxcIDsKK+WBqz56aMOsfFwgOwor5YGnPnpoYXxcIDsKK+WBpD55xY91fFwgOwor5YGjPnlhbnxcIDsKK+WBoD55xINvfFwgOwor5YGdPmLDqGl8XCA7CivlgZs+Y2hhfFwgOwor5YGYPmvEg258XCA7CivlgZY+Y2jElXxcIDsKK+WBkz5qaWV8XCA7CivlgZA+ecOgbnxcIDsKK+WBiT53xJVpfFwgOwor5YC9Pmppw6B8XCA7CivlgLg+Y8SDaXxcIDsKK+WAtz5uw6BpfFwgOwor5YC0PmLDqG58XCA7CivlgLE+aMO5bnxcIDsKK+WAqz5sw7pufFwgOwor5YCiPmppw6l8XCA7CivlgKA+c3VpfFwgOwor5YCdPmfDoG58XCA7CivlgJM+anXDqHxcIDsKK+WAkT5txJNufFwgOwor5YCQPnNodXxcIDsKK+WAiD5sw6FpfFwgOwor5YCHPmzDoGl8XCA7CivlgIY+bGnEg3xcIDsKK+WAhT5jdcOsfFwgOwor5YCDPnrDoW58XCA7CivlgIE+Y2jDrXxcIDsKK+S/vT54aW58XCA7Civkv7s+YsOoaXxcIDsKK+S/tz5mw6hpfFwgOwor5L+2PmNow7l8XCA7Civkv6s+bMOhaXxcIDsKK+S/pT5jaGV8XCA7Civkv6A+eGnDoXxcIDsKK+S/lj5wxINpfFwgOwor5L+VPnPDoG58XCA7Civkv5I+aMO5bnxcIDsKK+S/gD5zaHV8XCA7Civkvr4+aGFvfFwgOwor5L69Pm7DoW58XCA7Civkvrs+dHVvfFwgOwor5L64PnNow7l8XCA7CivkvrM+enXDsnxcIDsKK+S+sD5jdcOyfFwgOwor5L6tPmrErW58XCA7CivkvqI+esOgaXxcIDsKK+S+oT5qacOgfFwgOwor5L6aPnjDuW58XCA7Civkvpk+Y2jDrHxcIDsKK+S+mD5jaMOgfFwgOwor5L6WPmzDum58XCA7Civkvow+eWlufFwgOwor5L6HPmt1xIN8XCA7CivkvoY+bMOhaXxcIDsKK+S+hT5nYWl8XCA7CivkvoI+dHVvfFwgOwor5L25Pmd1xK18XCA7Civkvbg+aHXDs3xcIDsKK+S9tz5oxJVufFwgOwor5L2qPmh1w618XCA7CivkvYc+emjDuXxcIDsKK+S9hT5tw6BpfFwgOwor5L2EPmLDqG58XCA7CivkvLM+cMOgbnxcIDsKK+S8qT54w6xufFwgOwor5LyoPnfDqGl8XCA7CivkvKE+Y2hlfFwgOwor5LycPmN1w6x8XCA7CivkvJQ+ZMSDbnxcIDsKK+S8kz5iZWl8XCA7CivkvJI+asOsbnxcIDsKK+S8iD54xK1ufFwgOwor5LyGPnfDqG58XCA7CivkvIU+ZMO5bnxcIDsKK+S8gj5ww6hpfFwgOwor5Lu8PmJpbnxcIDsKK+S7uD5yw6lufFwgOwor5Lu0Pmppw6B8XCA7Civku68+w6FuZ3xcIDsKK+S7rj5qacSDfFwgOwor5LutPnLDqG58XCA7Civku6A+Z8OhbnxcIDsKK+S7mz50dW98XCA7Civku5A+c8SDbnxcIDsKK+S6uT53xJVpfFwgOwor5Lq4PmR1xY98XCA7CivkurY+ZMSDbnxcIDsKK+S6tD55w7J1fFwgOwor5LqgPnTDs3V8XCA7Civkupk+Z8OobnxcIDsKK+S6lz5zdcOsfFwgOwor5LqKPnNow6x8XCA7CivkuoU+anXDqXxcIDsKK+S6gz5sw61ufFwgOwor5LqBPmdhbnxcIDsKK+S6gD5ndWl8XCA7Civkub8+Y2jDrHxcIDsKK+S5uT5nYW58XCA7Civkubc+c2hhfFwgOwor5Lm1PnnEg258XCA7CivkubQ+eHXDqXxcIDsKK+S5rT5zaMOtfFwgOwor5LmrPmppYXxcIDsKK+S5qD5zaMStfFwgOwor5LmjPmRpdXxcIDsKK+S5oj5nw6BpfFwgOwor5LmaPnnErW58XCA7CivkuYY+amnFrXxcIDsKK+S4tj56aMWtfFwgOwor5Li1PnfDqWl8XCA7CivkuK8+amnDqHxcIDsKK+S4qT5qaXV8XCA7CivkuKM+ecWPdXxcIDsKK+S4oD5xaXV8XCA7CivkuJ8+ZGl1fFwgOwor5LiXPnNow6x8XCA7CivkuIU+d8OgbnxcIDsKK+S4gj5rxINvfFwgOwor5La1PmNow618XCA7CivktrM+eXXDqHxcIDsKK+S2sj5uw6FufFwgOwor5LauPnnDoW58XCA7Civktqs+a8SDbnxcIDsKK+S2qj5jaMOhfFwgOwor5LanPnnEg298XCA7CivktqQ+aHXDoXxcIDsKK+S2oT5zaMOtfFwgOwor5LadPnFpw6B8XCA7CivktpY+asOsbnxcIDsKK+S2lD5jaMOtfFwgOwor5LaOPnNow6B8XCA7Civktow+cMOgb3xcIDsKK+S2ij5uecO5fFwgOwor5LaJPmxpw7p8XCA7CivktoM+aMOhbnxcIDsKK+S1vz50acOofFwgOwor5LW1Pnpow6F8XCA7CivktbQ+ecO5bnxcIDsKK+S1sz53w6hpfFwgOwor5LWtPnpow6h8XCA7Civktao+Z8O5bnxcIDsKK+S1pz56w6BpfFwgOwor5LWmPnhpw6h8XCA7CivktaU+c2jDqHxcIDsKK+S1oj5tw6hpfFwgOwor5LWfPmfEg258XCA7CivktZo+dMSDb3xcIDsKK+S1mT56aMSDfFwgOwor5LWYPnNow6B8XCA7CivktY8+bMSDb3xcIDsKK+S1iz53xJVpfFwgOwor5LWJPnTDs3V8XCA7CivktYI+emjDrXxcIDsKK+S1gD5zdcWPfFwgOwor5LS+PmN1w7N8XCA7CivktL0+YsOgaXxcIDsKK+S0uT5ndcWPfFwgOwor5LS3PmjDum58XCA7CivktLQ+dGnDqHxcIDsKK+S0sT50dcOzfFwgOwor5LSwPnNow7p8XCA7CivktK0+Y8OhaXxcIDsKK+S0pj5yw6lufFwgOwor5LSgPnnEg298XCA7CivktJU+bGnDqHxcIDsKK+S0kT5kacOpfFwgOwor5LSQPmLEg298XCA7CivktI8+ecOgbnxcIDsKK+S0jj5sxJVpfFwgOwor5LSFPmbDqW58XCA7CivktIM+bsOhb3xcIDsKK+Szvz5sw6FufFwgOwor5LO7PmPDoW58XCA7Civks7o+ecOgbnxcIDsKK+SzuT5rw7J1fFwgOwor5LO1PmNow6x8XCA7Civks7A+YsSDb3xcIDsKK+Szqz5rdcOtfFwgOwor5LOnPmjDs3V8XCA7Civks58+a8OydXxcIDsKK+Szmz55w6BufFwgOwor5LOWPm7DqGl8XCA7Civks5U+ZsOzdXxcIDsKK+SzlD5qacO5fFwgOwor5LOTPmzEg298XCA7Civks5E+ecWPdXxcIDsKK+Szjz5ndcOsfFwgOwor5LOOPmppw7l8XCA7Civks4k+ZMOgbnxcIDsKK+SziD5ixINvfFwgOwor5LOGPmLDoWl8XCA7Civks4U+emjErXxcIDsKK+Szgz53xINufFwgOwor5LOAPmRpw6l8XCA7Civksr0+ZMSDb3xcIDsKK+Syuj5nw6BufFwgOwor5LK5PnDDqWl8XCA7Civksrg+amnDqHxcIDsKK+SysD55w7lufFwgOwor5LKmPmNow6F8XCA7Civksp8+ecOsbnxcIDsKK+Symj5sw6BpfFwgOwor5LKZPmppw6l8XCA7CivkspM+ecSDbnxcIDsKK+Sykj54acOofFwgOwor5LKPPmzDoW98XCA7Civkso4+bsSVaXxcIDsKK+Syiz5jw6lufFwgOwor5LKKPnR1xY98XCA7CivksoQ+bcOtbnxcIDsKK+Sygz56xINvfFwgOwor5LKBPnfDqGl8XCA7CivksoA+ZGnDqXxcIDsKK+Sxvj5sw7N1fFwgOwor5LG7Pmh1w6F8XCA7Civksbo+aMOhaXxcIDsKK+Sxsj55w6FufFwgOwor5LGoPnpow6x8XCA7CivksaU+emjDrXxcIDsKK+Sxnj5sacO6fFwgOwor5LGcPmN1w7J8XCA7CivksZY+bGnDunxcIDsKK+SxlT5tw7N1fFwgOwor5LGRPnh1w6l8XCA7CivksY8+dMWPdXxcIDsKK+Sxiz5kxINufFwgOwor5LGEPmppw6h8XCA7CivksYI+ecWPdXxcIDsKK+Swvz50dcOzfFwgOwor5LC9PmLDqGl8XCA7CivksLw+eMOtbnxcIDsKK+Swuj5qacOofFwgOwor5LCtPm7DsnV8XCA7CivksKo+bcOoaXxcIDsKK+SwqT5jaMSVfFwgOwor5LCoPm3DqGl8XCA7CivksKU+aHXDsnxcIDsKK+SwoT5jaMOsfFwgOwor5LCfPmjDum58XCA7CivksJ4+emjFrXxcIDsKK+Swmj53w6lufFwgOwor5LCYPmxpw7p8XCA7CivksJQ+cMOhbnxcIDsKK+SwkD5sw6FufFwgOwor5LCOPmd1w6x8XCA7CivksIs+bcOhbnxcIDsKK+SwiT5ww6FufFwgOwor5LCIPmNoxIN8XCA7CivksIY+csOzdXxcIDsKK+SwhD5zaMOsfFwgOwor5LCCPmPDoGl8XCA7CivksIE+ZsOoaXxcIDsKK+Svuj5rdcOyfFwgOwor5K+2Pm3DoW58XCA7Civkr7U+bmnDqHxcIDsKK+SvsD5qacOofFwgOwor5K+uPm7DoWl8XCA7Civkr6w+ZHXFj3xcIDsKK+Svqz5ow6BvfFwgOwor5K+qPmvEg298XCA7Civkr6g+ZsOpbnxcIDsKK+Svoz5ndcOsfFwgOwor5K+fPmR1w6x8XCA7Civkr50+c3XErXxcIDsKK+SvlD5jw6lufFwgOwor5K+TPmt1w618XCA7Civkr5A+aMOhaXxcIDsKK+Svjz5odcOzfFwgOwor5K+OPmfDoG58XCA7Civkr4o+cWnDoHxcIDsKK+SviD53w6FufFwgOwor5K+FPm5pw6h8XCA7Civkr4E+bHXDs3xcIDsKK+SvgD5uacOofFwgOwor5K68PmzDrW58XCA7Civkrrs+Y2jDrHxcIDsKK+SuuT53w6hpfFwgOwor5K6zPmbDoW58XCA7CivkrrE+emjDunxcIDsKK+SusD5kxINufFwgOwor5K6uPm3DoGl8XCA7Civkrqs+bMOzdXxcIDsKK+SuqD56xINpfFwgOwor5K6nPmjDoW58XCA7CivkrqI+ZGnDqXxcIDsKK+Sunz5zxY91fFwgOwor5K6ePmNow7l8XCA7Civkrpw+c2jDoHxcIDsKK+SulD56dcStfFwgOwor5K6RPmzDqGl8XCA7Civkrog+Y2jDrXxcIDsKK+Stvj50dcOzfFwgOwor5K29PnHDum58XCA7Civkrbo+w6FuZ3xcIDsKK+StuT7DoW5nfFwgOwor5K23Pmxpw7p8XCA7CivkrbU+ZsOhbnxcIDsKK+Stsz53w6hpfFwgOwor5K2xPmJpw6l8XCA7CivkraU+eHXDqHxcIDsKK+Stmz5kw6BufFwgOwor5K2ZPmrErW58XCA7CivkrZg+ecOgbnxcIDsKK+Stlj56aMO5fFwgOwor5K2OPnhpw6l8XCA7CivkrYs+YsSDb3xcIDsKK+StiT5zdcStfFwgOwor5K2EPnNow6x8XCA7CivkrYM+csSVbnxcIDsKK+StgT56aMOsfFwgOwor5K2APnjDuW58XCA7CivkrL8+d8SVaXxcIDsKK+SsvT5kdcOsfFwgOwor5Ky5Pnpow6x8XCA7CivkrLc+c2jElXxcIDsKK+Sssz5ixINufFwgOwor5KyxPmLDqG58XCA7CivkrKs+Y8SDbnxcIDsKK+Sspj5kw7J1fFwgOwor5KyhPnpow7l8XCA7CivkrJ8+bGnDunxcIDsKK+Ssnj50w6FvfFwgOwor5KyZPnnDoW98XCA7CivkrJE+d8OoaXxcIDsKK+SskD53xJVpfFwgOwor5KyOPmd1w7N8XCA7CivkrIo+cWnDqHxcIDsKK+SsiT5ow6BvfFwgOwor5KyIPmR1w6x8XCA7CivkrII+eHXDqHxcIDsKK+SsgD55xY91fFwgOwor5Ku8Pnh1w6h8XCA7Civkq7s+eHXDqXxcIDsKK+SruD5uw6FvfFwgOwor5Ku2PmbDoW58XCA7Civkq7Q+asOsbnxcIDsKK+Srsj5ow6BufFwgOwor5KuwPmzDrG58XCA7Civkq64+Y8OhbnxcIDsKK+SrrT5odcOsfFwgOwor5KurPmzDs3V8XCA7Civkq6k+c8SDbnxcIDsKK+SrpT5rdcStfFwgOwor5KugPnDDqWl8XCA7Civkq58+aMO6bnxcIDsKK+Srnj5yw6FvfFwgOwor5KubPmjDs3V8XCA7Civkq5c+eGnDoXxcIDsKK+SrlT56aMOsfFwgOwor5KuSPm3DqW58XCA7Civkq5A+bMOtbnxcIDsKK+Sriz50dcOtfFwgOwor5KuJPm3DoG98XCA7Civkq4g+esOobnxcIDsKK+Srhz5yw6FufFwgOwor5KuFPnPDoG58XCA7Civkq4I+ZHXFj3xcIDsKK+SrgD5nxJVufFwgOwor5Kq9PmjDoG98XCA7Civkqrk+cMOpaXxcIDsKK+SquD5tw61ufFwgOwor5Kq3PmjDsnV8XCA7CivkqrM+ecWtbnxcIDsKK+SqsT5nxINpfFwgOwor5KqpPnnDrW58XCA7Civkqqg+YsOhb3xcIDsKK+Sqpz5jaMOtfFwgOwor5KqlPmRpw6l8XCA7CivkqqQ+ZsOhbnxcIDsKK+Sqmz5mw6FufFwgOwor5KqYPnfElWl8XCA7Civkqpc+eGnDoXxcIDsKK+SqkT50dcOzfFwgOwor5KqNPmzDoW58XCA7Civkqos+d8OoaXxcIDsKK+Spvz5mw6lufFwgOwor5Km+Pnpow6h8XCA7CivkqbU+ecO5bnxcIDsKK+Spsz5zaMWtfFwgOwor5KmxPnNow7l8XCA7Civkqac+eGnDqHxcIDsKK+SppT5kw6BufFwgOwor5KmjPmR1xY98XCA7CivkqaE+amnDoXxcIDsKK+SpnT5ww6FvfFwgOwor5KmVPsOhbmd8XCA7CivkqZQ+ZHXDsnxcIDsKK+Spjz5tacOofFwgOwor5KmKPnfEg258XCA7CivkqYg+aHXDrHxcIDsKK+Spgz5zaMOsfFwgOwor5KmAPmLDqGl8XCA7CivkqL4+ZsSVaXxcIDsKK+SovT5mxJVpfFwgOwor5Ki6PmR1w6x8XCA7CivkqLg+ecStbnxcIDsKK+Sotj55xa1ufFwgOwor5Ki1PmTDoG58XCA7CivkqLQ+ZHXDrHxcIDsKK+Sosj5uw7N1fFwgOwor5KiuPnh1xJV8XCA7CivkqKs+bcOgaXxcIDsKK+Soqj5tw6FpfFwgOwor5KiiPmTDoG58XCA7CivkqKE+aMOhbnxcIDsKK+SomT5jw6lufFwgOwor5KiUPmLDoW98XCA7CivkqJM+bMOpaXxcIDsKK+SokD5xacOgfFwgOwor5KiMPmLDoW98XCA7CivkqIQ+ecOgbnxcIDsKK+SogT5jaMOofFwgOwor5Ke/PnF1w6h8XCA7Civkp70+Y3XErXxcIDsKK+Sntz5yw7N1fFwgOwor5Ke2Pmt1w618XCA7Civkp7I+aMOgbnxcIDsKK+SnsD5ow7lufFwgOwor5KerPmjDoW98XCA7Civkp6o+Y2jDqHxcIDsKK+Snpj53w6lpfFwgOwor5KelPmh1w6x8XCA7Civkp5o+aMOgb3xcIDsKK+Snkj5sw6FpfFwgOwor5KeCPmTDoG98XCA7Civkp4E+Y2jDuXxcIDsKK+Smvj55xa1ufFwgOwor5Ka8Pmp1w6l8XCA7Civkprk+c2jDrXxcIDsKK+SmsT5rdcStfFwgOwor5KavPnpow6x8XCA7Civkpqw+cXXDqHxcIDsKK+SmqD5sw6FufFwgOwor5KanPnFpw6l8XCA7CivkpqY+ccOtbnxcIDsKK+Smoj5rdcOyfFwgOwor5KagPnNoxK18XCA7Civkpp4+csO5bnxcIDsKK+Smmj5odcOyfFwgOwor5KaWPnhpw6F8XCA7CivkppQ+dMSDbnxcIDsKK+SmkT54acOofFwgOwor5KaPPnhpw6h8XCA7Civkpow+Y2jDuXxcIDsKK+Smhj5qdcOpfFwgOwor5KW+PnhpxJV8XCA7Civkpbc+emjDoXxcIDsKK+SlsT54acSVfFwgOwor5KWuPnpow7p8XCA7Civkpas+dGnElXxcIDsKK+SlqT53w6lpfFwgOwor5KWoPmx5w7l8XCA7CivkpaQ+YsOhb3xcIDsKK+Sloz56w6FvfFwgOwor5KWbPmppw6l8XCA7CivkpZk+c3XDrHxcIDsKK+SllT5wacSVfFwgOwor5KWRPnfDoG58XCA7CivkpZA+bcOzdXxcIDsKK+SljT56aMOsfFwgOwor5KWGPmrErW58XCA7CivkpYM+eXXDqHxcIDsKK+SlgT5ow6FufFwgOwor5KS/PnFpw6h8XCA7CivkpLs+ZHXDsnxcIDsKK+Skuj55xK1ufFwgOwor5KS3PnnDoW58XCA7CivkpLU+ZsOoaXxcIDsKK+SktD5ow6FufFwgOwor5KSyPmNow6x8XCA7CivkpLE+c2jDrHxcIDsKK+Skrj5zaMOofFwgOwor5KSqPmR1xY98XCA7CivkpKk+Y2jDoXxcIDsKK+Skpz5odcOsfFwgOwor5KSmPnl1w6h8XCA7CivkpKU+Z3XErXxcIDsKK+SkoT5yxINufFwgOwor5KSePnnFrW58XCA7CivkpJw+ZMO5bnxcIDsKK+Skmz5xacO6fFwgOwor5KSXPmfEg258XCA7CivkpJY+YsOgb3xcIDsKK+SklT54dcOofFwgOwor5KSQPmrErW58XCA7CivkpIs+Z3XDs3xcIDsKK+Skhj5rdcOtfFwgOwor5KSDPnnDrG58XCA7CivkpII+bcOpaXxcIDsKK+SkgT5jw6lufFwgOwor5KO4PnLEg258XCA7Civko7Y+aHXDs3xcIDsKK+Sjsj5mw6BufFwgOwor5KOtPnTDoGl8XCA7Civko6w+esSDaXxcIDsKK+Sjpj5sw6hpfFwgOwor5KOgPmppw6l8XCA7Civko58+Y8OhbnxcIDsKK+SjnD5jdcOzfFwgOwor5KOaPmzDs3V8XCA7Civko5k+cMOpaXxcIDsKK+SjlD5zdcWPfFwgOwor5KONPnnEg258XCA7Civko4s+Y8SDaXxcIDsKK+Sjhz5xacO6fFwgOwor5KOCPmzElWl8XCA7Civko4A+Z3XErXxcIDsKK+SitT55w7pufFwgOwor5KKyPnl1w6h8XCA7CivkorA+dMOhaXxcIDsKK+Sirz5sw61ufFwgOwor5KKuPmzDqGl8XCA7Civkoq0+ecOgbnxcIDsKK+Siqz5zdcOtfFwgOwor5KKlPnnDoW58XCA7CivkoqQ+c2jDuXxcIDsKK+Sioz55w6FvfFwgOwor5KKhPnhpw6h8XCA7Civkop8+ecOzdXxcIDsKK+SimT5iw6BpfFwgOwor5KKWPmx5w7l8XCA7Civkooo+ecOzdXxcIDsKK+SigT55dcOofFwgOwor5KG+Pm7DqGl8XCA7Civkobs+bcOtbnxcIDsKK+Shuj53w6hpfFwgOwor5KG5Pnpow6x8XCA7Civkobc+a8OgaXxcIDsKK+Shtj5iw6hpfFwgOwor5KG1PnN1w6x8XCA7Civkoaw+bcOgbnxcIDsKK+ShqD5jaMOgfFwgOwor5KGhPnhpw6l8XCA7CivkoZ0+ecWtbnxcIDsKK+Shmz55w6xufFwgOwor5KGaPm3DoG98XCA7CivkoZE+bcOtbnxcIDsKK+ShkD50dcOzfFwgOwor5KGKPmbDoW58XCA7CivkoYg+anXDqXxcIDsKK+Shhz55dcOofFwgOwor5KGFPm3ErW58XCA7CivkoYI+amnDuXxcIDsKK+Sgvz53w6BpfFwgOwor5KC9PmjDoWl8XCA7CivkoLY+c2jDqHxcIDsKK+SgtD5xxK1ufFwgOwor5KCxPnNoxa18XCA7CivkoK8+eXXDqHxcIDsKK+SgrT5sw6FpfFwgOwor5KCrPnrDsnV8XCA7CivkoKk+Z3XDrHxcIDsKK+Sgpz5jaMO6fFwgOwor5KCmPnpow6h8XCA7CivkoKU+YmnDqXxcIDsKK+SgpD5kdcWPfFwgOwor5KChPmN1w7N8XCA7CivkoKA+Y2jDrHxcIDsKK+Sgnz5kacOpfFwgOwor5KCZPmLDqGl8XCA7CivkoJc+cWnDuXxcIDsKK+SglD5zdcOsfFwgOwor5KCRPmt1xK18XCA7CivkoI0+cWnDoXxcIDsKK+Sgij5mw6hpfFwgOwor5KCJPmh1w6B8XCA7CivkoIc+anXDqXxcIDsKK+SghT5rxa1ufFwgOwor5KCCPmNow7p8XCA7Civkn74+anXElXxcIDsKK+SfuT5sacOofFwgOwor5J+4Pmt1w618XCA7Civkn7c+Y2jDrHxcIDsKK+Sftj5jdcOyfFwgOwor5J+1PnFpw7p8XCA7Civkn68+a3XDsnxcIDsKK+SfrD5xacO5fFwgOwor5J+pPmxpxJV8XCA7Civkn6g+bcOtbnxcIDsKK+Sfoz5jaMO5fFwgOwor5J+gPnl1w6h8XCA7Civkn54+Y2jDunxcIDsKK+SfnT50w7J1fFwgOwor5J+ZPnFpw6h8XCA7Civkn5c+c2jDrHxcIDsKK+SflT5jaMOgfFwgOwor5J+JPnpow7p8XCA7Civkn4g+emjDrXxcIDsKK+Sfgj5tw6FufFwgOwor5J6+PmNow618XCA7Civknr0+c3XFj3xcIDsKK+Setz5qdcOpfFwgOwor5J61Pmp1xJV8XCA7CivknrA+enXDs3xcIDsKK+SerT5xacWtfFwgOwor5J6sPnTDsnV8XCA7Civknqs+ecWtbnxcIDsKK+SeqD5ndcStfFwgOwor5J6nPmjDsnV8XCA7CivknqU+ecOydXxcIDsKK+Seoz5jaMSVfFwgOwor5J6iPnpow6B8XCA7CivknqE+dMSDbnxcIDsKK+Selj5zaMWtfFwgOwor5J6VPmRpw6l8XCA7CivknpQ+d8SVaXxcIDsKK+SejD5zaMOpfFwgOwor5J6KPnjDuW58XCA7Civknog+Z3XErXxcIDsKK+Sehz5kacOpfFwgOwor5J6GPnN1xY98XCA7CivknoM+emjDrHxcIDsKK+SegD5nw7J1fFwgOwor5J2/Pmd1w6x8XCA7Civknbk+d8SDbnxcIDsKK+Sdtz56aMOsfFwgOwor5J2zPmPDoW58XCA7CivknbI+asOsbnxcIDsKK+SdrT5nw7J1fFwgOwor5J2sPnpow7l8XCA7Civknas+enXDs3xcIDsKK+Sdqj5zaMO6fFwgOwor5J2nPm3DqW58XCA7CivknaU+aMOhb3xcIDsKK+SdpD5sxINvfFwgOwor5J2iPm3DoG58XCA7CivknaE+bcOgbnxcIDsKK+Sdnj5ow6BvfFwgOwor5J2VPnpow6l8XCA7CivknZI+emjDuXxcIDsKK+SdkD53w6lpfFwgOwor5J2PPmzDs3V8XCA7CivknY0+asO5bnxcIDsKK+SdjD5qdcOpfFwgOwor5J2KPnNow6B8XCA7CivknYM+emjDqXxcIDsKK+Sdgj5zaMO5fFwgOwor5J2BPmzDoW98XCA7CivknLs+Y2jErXxcIDsKK+ScuT5zaMO5fFwgOwor5Jy4Pm3ElWl8XCA7CivknLU+Y2jErXxcIDsKK+SctD5jaMO5fFwgOwor5JyyPmxpw6h8XCA7CivknLE+bcSDbnxcIDsKK+ScrT5qw7lufFwgOwor5JyqPnFpw7p8XCA7CivknKk+ecOgbnxcIDsKK+Scpz5uxINvfFwgOwor5JygPmNow6h8XCA7CivknJw+d8OoaXxcIDsKK+Sclz54w6xufFwgOwor5JyWPnTDoG58XCA7CivknJU+bcOgaXxcIDsKK+SclD5zdcOtfFwgOwor5JyTPm5pw6h8XCA7CivknJE+cWnDoHxcIDsKK+Scjj5sw6FvfFwgOwor5JyLPmh1w6x8XCA7CivknIo+esOgb3xcIDsKK+Schz5nxa1ufFwgOwor5JyFPnfDqWl8XCA7CivknIQ+Y2jDrXxcIDsKK+ScgD5uxINvfFwgOwor5Ju9PnpoxIN8XCA7Civkm7w+aHXErXxcIDsKK+Sbuz55w7J1fFwgOwor5Ju6Pmppw6h8XCA7Civkm7k+Y8OgbnxcIDsKK+SbuD5jaMOofFwgOwor5Ju3PnfEg258XCA7Civkm7Y+bMSVaXxcIDsKK+Sbsj5tw6FufFwgOwor5JuwPmjDum58XCA7Civkm64+amnDuXxcIDsKK+SbqD54w6xufFwgOwor5JuhPmh1w6B8XCA7Civkm6A+ZMOydXxcIDsKK+Sbnz5qacOhfFwgOwor5JuePmjEg258XCA7Civkm50+bsOhb3xcIDsKK+SbnD54w7lufFwgOwor5JubPmh1w6x8XCA7Civkm5g+bsOtbnxcIDsKK+Sblz56aMStfFwgOwor5JuNPmbDqGl8XCA7Civkm4w+cMOhb3xcIDsKK+SbiD5zaMOsfFwgOwor5JuFPnhpw6F8XCA7Civkm4I+Y2jDrXxcIDsKK+SbgT5uw6FufFwgOwor5JuAPmbEg258XCA7Civkmr8+ecOsbnxcIDsKK+Savj5uw61ufFwgOwor5Jq9PmjDoG98XCA7Civkmrw+bnnDuXxcIDsKK+Sauz55w6FvfFwgOwor5Jq6PnnDoW98XCA7Civkmrg+eGnDqHxcIDsKK+SatT50xINvfFwgOwor5JqzPnhpw6h8XCA7CivkmrE+eMOsbnxcIDsKK+Sarz50xINvfFwgOwor5JqsPmzDrW58XCA7Civkmqg+ZsOoaXxcIDsKK+Sapz5sacO6fFwgOwor5JqmPnpow6x8XCA7CivkmqU+bnXDsnxcIDsKK+Saoj5jaMOofFwgOwor5JqgPmjDuW58XCA7Civkmp8+ZMSDaXxcIDsKK+Sanj5kxINpfFwgOwor5JqRPm3DoWl8XCA7Civkmos+ecO5bnxcIDsKK+SahT5sw6FpfFwgOwor5JqDPnnDs3V8XCA7Civkmb8+d8OoaXxcIDsKK+SZqD5ndcWPfFwgOwor5JmkPmR1xY98XCA7CivkmaE+aHXDrHxcIDsKK+SZoD5qdcOpfFwgOwor5JmfPmR1w7J8XCA7CivkmZ0+eGnDqHxcIDsKK+SZmT5jaMOtfFwgOwor5JmYPmNoxa18XCA7CivkmZU+Y2jDuXxcIDsKK+SZkz5ixINpfFwgOwor5JmOPnhpw6l8XCA7CivkmYw+aHXDrHxcIDsKK+SZij54acOofFwgOwor5JmJPnjDum58XCA7CivkmYg+aMOzdXxcIDsKK+SZhj5ndcOsfFwgOwor5JmFPnnDoG98XCA7CivkmYM+ZHXDsnxcIDsKK+SZgT5jw6FufFwgOwor5Ji/Pmp1w6l8XCA7CivkmLw+d8SDbnxcIDsKK+SYuT56dcOsfFwgOwor5Ji2PmjDoG58XCA7CivkmK0+ZGnDqXxcIDsKK+SYqz5uw7J1fFwgOwor5JilPnhpw6F8XCA7CivkmKQ+c2jDuXxcIDsKK+SYoj56aMWtfFwgOwor5JiaPnpow7p8XCA7CivkmJk+d8OoaXxcIDsKK+SYkz5rw6BufFwgOwor5JiRPm3DoGl8XCA7CivkmJA+bnnDuXxcIDsKK+SYij5tacOofFwgOwor5JiJPmPDoW58XCA7CivkmIc+d8OpbnxcIDsKK+SYhT5uw6FpfFwgOwor5Je9PnfDqGl8XCA7Civkl7s+amnDqXxcIDsKK+SXuj55xINufFwgOwor5JeyPmzDrG58XCA7Civkl68+asOsbnxcIDsKK+SXqj56aMOofFwgOwor5JejPmfEg298XCA7Civkl6I+c3XFj3xcIDsKK+SXoT55w6FufFwgOwor5JeePmPDoW58XCA7Civkl50+Y8OhbnxcIDsKK+SXnD5sacO6fFwgOwor5JeZPmjDoW58XCA7Civkl5Y+Y2jDrHxcIDsKK+SXlT53xINufFwgOwor5JeUPmjDs3V8XCA7Civkl4s+bcOzdXxcIDsKK+SWvD5qdcOpfFwgOwor5Ja7PnnDs3V8XCA7CivklrQ+ecOhb3xcIDsKK+SWsz56aMOgfFwgOwor5JayPnjDum58XCA7CivklrA+cMOgaXxcIDsKK+SWrz5ndcOsfFwgOwor5JaoPnNow618XCA7CivklqQ+d8SDbnxcIDsKK+SWoz5zw6BvfFwgOwor5JahPm55w7l8XCA7Civklpw+ecOtbnxcIDsKK+SWmz5zdcWPfFwgOwor5JaXPnnDoW58XCA7CivklpY+eGnDoXxcIDsKK+SWlD5ow6BufFwgOwor5JaQPmrDrG58XCA7Civklo8+Y2jFrXxcIDsKK+SWjj54acOhfFwgOwor5JaMPnHDrW58XCA7Civklos+bnXDqHxcIDsKK+SWiD5udcOofFwgOwor5JaEPnLDoW58XCA7CivkloM+eXXDqHxcIDsKK+SVvz5ow6BufFwgOwor5JW+PnnDoW58XCA7Civklb0+emjDunxcIDsKK+SVvD5uw6FufFwgOwor5JW1Pnhpw6l8XCA7CivklbI+bMStbnxcIDsKK+SVsT5kxY91fFwgOwor5JWwPmLDoG58XCA7Civklas+a3XDrXxcIDsKK+SVqT5sxINvfFwgOwor5JWiPnpoxIN8XCA7CivklaA+ZsOoaXxcIDsKK+SVmz5qacOhfFwgOwor5JWaPmt1w6x8XCA7CivklZk+amnDqXxcIDsKK+SVlT5tw6BufFwgOwor5JWTPmNow6F8XCA7CivklZE+asO5bnxcIDsKK+SVjD56aMOsfFwgOwor5JWKPnTDoW58XCA7CivklYg+eGnDqHxcIDsKK+SVhz5odcOsfFwgOwor5JWGPmTDsnV8XCA7CivklYU+c8SDb3xcIDsKK+SVgz55w6xufFwgOwor5JWBPmbElWl8XCA7CivklL8+amnDqHxcIDsKK+SUuj53w6lpfFwgOwor5JS5PnN1w6x8XCA7CivklLc+ccOtbnxcIDsKK+SUsz5uxINufFwgOwor5JSqPmR1w6x8XCA7CivklKI+aHXDoXxcIDsKK+SUnz5jaMOtfFwgOwor5JSePmx5w7l8XCA7CivklJw+bsOhbnxcIDsKK+SUmD56dcOyfFwgOwor5JSSPmLDqGl8XCA7CivklJE+eGnDqXxcIDsKK+SUiD5nxINufFwgOwor5JSEPnnDoW98XCA7Civkk78+aMSDbnxcIDsKK+STuj5txJVpfFwgOwor5JO2PmzDoGl8XCA7Civkk7M+aMSVbnxcIDsKK+STsj5ydcOsfFwgOwor5JOuPm3DoG98XCA7Civkk60+Y2jDoHxcIDsKK+STnz5sacOofFwgOwor5JOYPmppw7l8XCA7Civkk5U+dHXFj3xcIDsKK+STjT5oxINufFwgOwor5JOMPnpow6x8XCA7Civkk4Y+emjDqXxcIDsKK+SThD55w61ufFwgOwor5JOCPnnDoW58XCA7Civkkr0+bcOpaXxcIDsKK+SSuj5qxK1ufFwgOwor5JK5PmzDqGl8XCA7CivkkrU+aMOgb3xcIDsKK+SStD55xY91fFwgOwor5JKzPmR1xY98XCA7CivkkrI+Y2jDoHxcIDsKK+SSqz5kw6BpfFwgOwor5JKoPnNoxK18XCA7CivkkqY+ZsOgbnxcIDsKK+SSoz5yxINufFwgOwor5JKiPsOhbmd8XCA7CivkkqE+ecStbnxcIDsKK+SSoD5mxINufFwgOwor5JKcPm5pw7p8XCA7CivkkpY+eMOsbnxcIDsKK+SSlD5iw6BpfFwgOwor5JKTPmvEg2l8XCA7CivkkpE+Y8SDb3xcIDsKK+SShj5jaMOofFwgOwor5JKDPmPDoG98XCA7Civkkbs+ecOzdXxcIDsKK+SRtj5jw6FufFwgOwor5JGzPmzDum58XCA7CivkkbI+Y2jDqHxcIDsKK+SRsT5tw6FufFwgOwor5JGsPnnDoG98XCA7Civkkag+ZHXDsnxcIDsKK+SRpD5qw6xufFwgOwor5JGdPmppxIN8XCA7CivkkZs+Y2jErXxcIDsKK+SRmT5yw6FufFwgOwor5JGYPmNow6F8XCA7CivkkZU+c2jFrXxcIDsKK+SRlD5mw6hpfFwgOwor5JGTPnTDoWl8XCA7CivkkY0+ecOgbnxcIDsKK+SRjD5sw6FufFwgOwor5JGLPm7DoW98XCA7CivkkYo+d8OpaXxcIDsKK+SRhz56aMOsfFwgOwor5JC+PmR1w7N8XCA7CivkkL0+bcOhbnxcIDsKK+SQuj50w6BufFwgOwor5JC5PnPDoG98XCA7CivkkLg+Z3XDs3xcIDsKK+SQtj5qxK1ufFwgOwor5JC0Pmd1w6x8XCA7CivkkLI+emjDqXxcIDsKK+SQrz5sw6lpfFwgOwor5JCtPnpow6x8XCA7CivkkKw+Y8Ohb3xcIDsKK+SQqj5mw6BufFwgOwor5JCpPmvEg2l8XCA7CivkkKc+a8Ogb3xcIDsKK+SQpD5jaMOtfFwgOwor5JCjPmN1w7J8XCA7CivkkKI+emjDuXxcIDsKK+SQnj5ydcOyfFwgOwor5JCdPnN1xY98XCA7CivkkJg+anXDqXxcIDsKK+SQlD5iw6xufFwgOwor5JCTPnLDs3V8XCA7CivkkJE+emjDqXxcIDsKK+SQiD56aMOtfFwgOwor5JCGPmPEg2l8XCA7CivkkIQ+aMOgbnxcIDsKK+SPvD5jw6FufFwgOwor5I+3PmjDoG58XCA7Civkj7M+emjDqHxcIDsKK+SPsj5kacOpfFwgOwor5I+wPnLElW58XCA7Civkj68+emjDrHxcIDsKK+SPrD5tw7N1fFwgOwor5I+oPmh1xK18XCA7Civkj6Y+aHXDoXxcIDsKK+SPoz5qdcOpfFwgOwor5I+hPnNow6x8XCA7Civkj58+YmnDqHxcIDsKK+SPmT50xINufFwgOwor5I+XPmfDoGl8XCA7Civkj5U+csSVbnxcIDsKK+SPlD5uacWtfFwgOwor5I+QPmp1w6l8XCA7Civkj4Y+Y8Ohb3xcIDsKK+SPhD56aMOsfFwgOwor5I+CPnPFj3V8XCA7Civkj4E+esSDaXxcIDsKK+SOvz5xacO6fFwgOwor5I6+PmfFrW58XCA7Civkjr0+d8OpbnxcIDsKK+SOuj56aMStfFwgOwor5I65PnfDqW58XCA7Civkjrc+emjDuXxcIDsKK+SOsj56aMOpfFwgOwor5I6wPnp1w7N8XCA7Civkjq8+aMOgbnxcIDsKK+SOpj55xINufFwgOwor5I6kPmNow7p8XCA7Civkjp0+Y2jDunxcIDsKK+SOiT5zaMO5fFwgOwor5I6DPnLEg258XCA7CivkjoI+YsSDb3xcIDsKK+SOgD54dcOofFwgOwor5I2+PnR1w618XCA7Civkjbw+Y8OhbnxcIDsKK+SNtz5ndcOsfFwgOwor5I20PmR1w7J8XCA7CivkjbI+bsOhaXxcIDsKK+SNrz5ndcStfFwgOwor5I2rPnR1w7N8XCA7Civkjao+a3XDrHxcIDsKK+SNqT7Eg25nfFwgOwor5I2lPmzDqGl8XCA7CivkjaM+bMOpaXxcIDsKK+SNmT5tw6lpfFwgOwor5I2SPm3Fj3V8XCA7CivkjZE+aMSDbnxcIDsKK+SNkD5oxINufFwgOwor5I2OPmPDuW58XCA7CivkjYo+anXDqXxcIDsKK+SNhj56aMO5fFwgOwor5I2DPnnDoW98XCA7CivkjYE+c3XDrHxcIDsKK+SNgD5sw6FufFwgOwor5Iy+PnLDqW58XCA7CivkjL0+Y8SDaXxcIDsKK+SMvD5ydcOsfFwgOwor5Iy1Pnpow7p8XCA7CivkjLQ+bHXDsnxcIDsKK+SMsT5sdcOyfFwgOwor5IywPnNow6h8XCA7CivkjKs+bMSDbnxcIDsKK+SMqj55w6FufFwgOwor5IyoPmPDoGl8XCA7CivkjKY+ZMSDb3xcIDsKK+SMpT55xK1ufFwgOwor5IykPnpoxK18XCA7CivkjJ0+asOsbnxcIDsKK+SMnD5uacOofFwgOwor5IybPnnDoW98XCA7CivkjJY+amnDqXxcIDsKK+SMkz5mw6FufFwgOwor5IyNPmjDoG58XCA7CivkjIo+ecOhb3xcIDsKK+SMhz5odcOsfFwgOwor5IyGPmd1w6x8XCA7Civki74+emjEg3xcIDsKK+SLuz5uw61ufFwgOwor5Iu4PnjDum58XCA7Civki7c+bGnDunxcIDsKK+SLtD5uacO5fFwgOwor5IuzPmLDqGl8XCA7Civki7I+Y2jElXxcIDsKK+SLsT5sw6FpfFwgOwor5IuuPmrDrG58XCA7Civki60+aHXDsnxcIDsKK+SLpj5mw6FufFwgOwor5IukPnnDoG98XCA7Civki6M+ZsOhbnxcIDsKK+SLoj5iacOofFwgOwor5IuVPnLDqG58XCA7Civki5A+eXXDqHxcIDsKK+SLjz56dcOyfFwgOwor5IuLPm3DrW58XCA7Civki4k+anXDqXxcIDsKK+SLgz5tw6BvfFwgOwor5IuCPnnDoW98XCA7Civki4A+a3XDoHxcIDsKK+SKvD5jaMStfFwgOwor5Iq7PnnEg258XCA7CivkirU+cWnDunxcIDsKK+SKsD5jaMWtfFwgOwor5IqsPmNow6B8XCA7Civkiqs+Y3XErXxcIDsKK+SKqT5mw6FufFwgOwor5IqoPmx1w7N8XCA7CivkiqQ+dMOhbnxcIDsKK+SKoT5tw6FufFwgOwor5IqfPm3DqW58XCA7Civkip4+emjDqXxcIDsKK+SKnT54acOofFwgOwor5IqZPnnDoW58XCA7Civkipg+amnDuXxcIDsKK+SKlj5sxINufFwgOwor5IqTPnNow6x8XCA7Civkioo+bcOoaXxcIDsKK+SKiT5zxINufFwgOwor5IqIPm3DqWl8XCA7CivkioY+amnDuXxcIDsKK+SKgz5ww6hpfFwgOwor5Im9PmLEg258XCA7Civkibc+ZMOgbnxcIDsKK+SJsj5iacOofFwgOwor5ImwPnnDoW98XCA7Civkia4+bMOsbnxcIDsKK+SJrT5sacOofFwgOwor5ImsPmbDqGl8XCA7Civkiao+bMOoaXxcIDsKK+SJpz5sacO6fFwgOwor5ImkPnPFj3V8XCA7CivkiaM+eGnDqHxcIDsKK+SJoT50w6FufFwgOwor5ImgPnfDqWl8XCA7CivkiZ8+aHXDsnxcIDsKK+SJnj5kxINufFwgOwor5ImcPnpow6x8XCA7CivkiZk+ecO6bnxcIDsKK+SJkz5sw6lpfFwgOwor5ImSPmbDoW58XCA7CivkiY8+eGnDqHxcIDsKK+SJjD5zdcOsfFwgOwor5ImLPm3DqGl8XCA7CivkiYo+ZsOgbnxcIDsKK+SJiD5zxINufFwgOwor5ImFPnpow6x8XCA7CivkiYI+bMSVaXxcIDsKK+SJgD5zaMO5fFwgOwor5Ii/Pm3DoGl8XCA7CivkiLw+bWnDqHxcIDsKK+SIuT5zxY91fFwgOwor5Ii3Pmx1w7J8XCA7CivkiLI+cMOhbnxcIDsKK+SIpz53xJVpfFwgOwor5IiiPnPEg2l8XCA7CivkiJw+ccOsbnxcIDsKK+SImj50w6FpfFwgOwor5IiXPnN1xY98XCA7CivkiJU+Y2jDrXxcIDsKK+SIkj5uxINufFwgOwor5IiRPmd1xIN8XCA7CivkiJA+a3XDrHxcIDsKK+SIjz5iw6FvfFwgOwor5IiJPnNow6B8XCA7CivkiIg+ZsOpaXxcIDsKK+SIhj5kw6BpfFwgOwor5IiEPmjDoW58XCA7CivkiIE+bMO6bnxcIDsKK+SHvj55w6FufFwgOwor5Ie9Pnpow6x8XCA7Civkh7w+Y2jDrHxcIDsKK+SHuz5odcOsfFwgOwor5Ie5PmrDuW58XCA7Civkh7Y+anXDqXxcIDsKK+SHrj5yw6hufFwgOwor5IetPmzEg298XCA7Civkh6c+emjDuXxcIDsKK+SHpD5kdcOsfFwgOwor5IehPnpow7l8XCA7Civkh54+Z8SDbnxcIDsKK+SHmz56aMStfFwgOwor5IeZPnnErW58XCA7Civkh5Y+ecWtbnxcIDsKK+SHlD5sdcOyfFwgOwor5IeSPmppw6h8XCA7Civkh48+ZHXDrHxcIDsKK+SHjj5xdcOofFwgOwor5IeLPmjDoGl8XCA7Civkh4g+Z3XDrHxcIDsKK+SGvj5sw6FufFwgOwor5IaxPnTEg258XCA7Civkhq4+asOsbnxcIDsKK+SGrD55xa1ufFwgOwor5IaiPmp1w6l8XCA7Civkhp4+ecSDb3xcIDsKK+SGnT5zaMO5fFwgOwor5IacPnnDsnV8XCA7Civkhps+Y2jDoXxcIDsKK+SGmT55w6FvfFwgOwor5IaVPmp1w6l8XCA7CivkhpI+amnDuXxcIDsKK+SGkD5ndcOzfFwgOwor5IaPPmbDqGl8XCA7Civkhoo+Y3XDrHxcIDsKK+SGiD56aMOsfFwgOwor5IaDPmTEg298XCA7CivkhoA+bcSVaXxcIDsKK+SFvz5odcOhfFwgOwor5IW+PmPDqW58XCA7Civkhbw+bcOhbnxcIDsKK+SFuT5sw7N1fFwgOwor5IW2Pm7DsnV8XCA7CivkhbQ+c3XFj3xcIDsKK+SFsz5jaMO6fFwgOwor5IWxPmjDuW58XCA7Civkhao+dHXDrXxcIDsKK+SFqT56aMStfFwgOwor5IWnPnnDoG58XCA7CivkhaY+bcOhb3xcIDsKK+SFpT5qacOpfFwgOwor5IWiPmppw7l8XCA7CivkhZ8+Y8SDbnxcIDsKK+SFnD5kdcOyfFwgOwor5IWZPmjDuW58XCA7CivkhZg+bMOhaXxcIDsKK+SFlz5zdcOsfFwgOwor5IWRPnJ1w618XCA7CivkhY8+aHXDrHxcIDsKK+SFjj55xY91fFwgOwor5IWLPnfEg258XCA7CivkhYA+bGnDqHxcIDsKK+SEvj5yw7J1fFwgOwor5IS6Pnpow6x8XCA7CivkhLc+ZMOgbnxcIDsKK+SEqT5uw6FvfFwgOwor5ISkPmzDoGl8XCA7CivkhJ8+Y3XDrHxcIDsKK+SEmz5sw7N1fFwgOwor5ISaPmPDoW98XCA7CivkhJU+c2jDqHxcIDsKK+SEkj5uacOofFwgOwor5ISRPmh1w7N8XCA7CivkhIs+ecSDbnxcIDsKK+SEiD5kw7J1fFwgOwor5ISGPmh1w7N8XCA7CivkhII+bGnDuXxcIDsKK+SEgD5odcOyfFwgOwor5IO5PmzDoG58XCA7Civkg7I+cMOhbnxcIDsKK+SDrT5nxINufFwgOwor5IOsPnfElWl8XCA7Civkg6s+ZMSDbnxcIDsKK+SDqj50w6FufFwgOwor5IOpPm7DoW98XCA7Civkg6M+aHXErXxcIDsKK+SDoT5jw6lufFwgOwor5IOePnNow7p8XCA7Civkg5U+bMOhb3xcIDsKK+SDkz5nw7J1fFwgOwor5IORPnDDoW58XCA7Civkg4k+bcOtbnxcIDsKK+SDgj5nxa1ufFwgOwor5IOAPmN1w6x8XCA7Civkgr4+bMSDaXxcIDsKK+SCvD5uacOofFwgOwor5IK6PnfEg258XCA7Civkgrk+c3XFj3xcIDsKK+SCuD5ndcOzfFwgOwor5IK2Pmppw6l8XCA7CivkgrQ+ecOhbnxcIDsKK+SCsz5jdcWPfFwgOwor5IKxPmN1w6x8XCA7Civkgqk+ecOgbnxcIDsKK+SCpT5tw61ufFwgOwor5IKgPnNow6l8XCA7Civkgp4+emjDqHxcIDsKK+SCnT5qacOpfFwgOwor5IKaPnnDoW98XCA7CivkgpY+c2jDrXxcIDsKK+SClT5odcOsfFwgOwor5IKSPmppw6l8XCA7Civkgok+aMOzdXxcIDsKK+SChD5odcOyfFwgOwor5IG+Pm1pw6h8XCA7Civkgb0+bGnDqHxcIDsKK+SBuj5zaMOsfFwgOwor5IG3Pmp1w6l8XCA7CivkgbI+bcOhaXxcIDsKK+SBrz5zaMOofFwgOwor5IGqPm7Eg258XCA7Civkgag+aHXDsnxcIDsKK+SBpD5jaMOofFwgOwor5IGfPmNow6F8XCA7CivkgZs+Z3XErXxcIDsKK+SBmj5zxa1ufFwgOwor5IGZPnnEg258XCA7CivkgZg+ecSDb3xcIDsKK+SBlz5rxINpfFwgOwor5IGVPm3DrW58XCA7CivkgZQ+aMOgbnxcIDsKK+SBkz5qacOofFwgOwor5IGPPnnEg298XCA7CivkgY0+amnDoHxcIDsKK+SBiz5zaMOpfFwgOwor5IGFPmLDqGl8XCA7CivkgL0+ecOhbnxcIDsKK+SAvD5yw6hufFwgOwor5IC7PnDDrG58XCA7CivkgLk+amnDoXxcIDsKK+SAtz5qacOpfFwgOwor5ICrPmppw6F8XCA7CivkgKk+bHXDsnxcIDsKK+SApD5tw6BvfFwgOwor5ICfPmbDoW58XCA7CivkgJs+bcOoaXxcIDsKK+SAmj7DoW5nfFwgOwor5ICXPmp1w6l8XCA7CivkgJQ+bmnDunxcIDsKK+SAkD5zxINufFwgOwor5ICNPmvDoG58XCA7CivkgIs+ecOhbnxcIDsKK+SAhj5qw6xufFwgOwor5ICFPnNow6h8XCA7CivkgIM+dHXDrXxcIDsKK+SAgT55w7J1fFwgOwor5ICAPmbDoW58XCA7Civjv74+emjDuXxcIDsKK+O/vD55w6FufFwgOwor47+6PmLDoW98XCA7Civjv7g+d8SDbnxcIDsKK+O/tz56w6BvfFwgOwor47+1PnLEg258XCA7Civjv7E+eHXDqXxcIDsKK+O/rT5jaMOofFwgOwor47+iPnnDoG98XCA7Civjv58+YsOhaXxcIDsKK+O/nj5tw6BvfFwgOwor47+cPmJpxJV8XCA7Civjv5o+bHXDsnxcIDsKK+O/lz50dcOtfFwgOwor47+VPnnDoW58XCA7Civjv5Q+bMSVaXxcIDsKK+O/kz5qacOhfFwgOwor47+SPmTEg298XCA7Civjv5E+ecOgb3xcIDsKK+O/jz5xw7pufFwgOwor47+OPmbDqG58XCA7Civjv40+amnDqHxcIDsKK+O/iz5zw6BvfFwgOwor47+KPmPEg258XCA7Civjv4k+dHXDrXxcIDsKK+O/gz5kw6BpfFwgOwor4769PnR1w618XCA7Civjvrw+dHXErXxcIDsKK+O+uz56aMO5fFwgOwor4764PmfEg298XCA7CivjvrE+YsOoaXxcIDsKK+O+rz50dcOtfFwgOwor476iPmzDoGl8XCA7CivjvqE+cXXDqHxcIDsKK+O+nj55xY91fFwgOwor476dPmNow6h8XCA7Civjvpw+cWnDqHxcIDsKK+O+mz5xxK1ufFwgOwor476ZPnnErW58XCA7CivjvpQ+bHnFrXxcIDsKK+O+jz5qacOofFwgOwor476NPm7DoWl8XCA7Civjvos+eGnDuXxcIDsKK+O+hj5yw6FufFwgOwor476DPnR1w7N8XCA7CivjvoE+c2jDuXxcIDsKK+O+gD5xacOofFwgOwor4725PmbDoG58XCA7CivjvbM+aMOgbnxcIDsKK+O9sD5zaMO5fFwgOwor472pPmPDoG58XCA7Civjvag+Y3XDs3xcIDsKK+O9pj54w7pufFwgOwor472lPnLDs3V8XCA7CivjvaA+eGnDoXxcIDsKK+O9nz5sacOofFwgOwor472ePmxpw7p8XCA7CivjvZw+d8SDbnxcIDsKK+O9mz5rw7J1fFwgOwor472aPmNow6x8XCA7CivjvZk+asO5bnxcIDsKK+O9lj5uw6FufFwgOwor472VPnnDs3V8XCA7CivjvZE+dMOhbnxcIDsKK+O9jj5kxINufFwgOwor472MPmxpw7l8XCA7CivjvYs+bHXDs3xcIDsKK+O9ij54acOofFwgOwor472JPmjEg258XCA7CivjvLI+bGnDqHxcIDsKK+O8rj5tw6FpfFwgOwor47yqPmppw6F8XCA7CivjvKg+aMOhbnxcIDsKK+O8pT5jaMO6fFwgOwor47yjPmLEg2l8XCA7CivjvKA+dHXDs3xcIDsKK+O8nz5iw6FpfFwgOwor47ydPmbDoG58XCA7CivjvJw+w6BuZ3xcIDsKK+O8kj5xacWtfFwgOwor47yPPm7ElWl8XCA7CivjvI4+YsOoaXxcIDsKK+O8jT5sxJVpfFwgOwor47yKPnTDum58XCA7CivjvIk+ecOsbnxcIDsKK+O8iD5sdcOzfFwgOwor47u/PnNoxa18XCA7Civju70+c3XDrHxcIDsKK+O7uD5jw6lufFwgOwor47uyPmx5xa18XCA7Civju64+Y8OgbnxcIDsKK+O7qj5zdcOsfFwgOwor47unPmR1w7J8XCA7Civju6E+ZGnDqXxcIDsKK+O7nz5zdcOtfFwgOwor47uXPmLDqGl8XCA7Civju5Y+ZMOgaXxcIDsKK+O7lT5qdcOpfFwgOwor47uUPmR1xY98XCA7Civju5I+asO5bnxcIDsKK+O7hT5odcOsfFwgOwor47uEPmLEg298XCA7Civju4A+ecOzdXxcIDsKK+O6uj5tw6BvfFwgOwor47q1Pmppw7p8XCA7CivjurM+bcOpaXxcIDsKK+O6sj5uacWtfFwgOwor47qrPnFpw7p8XCA7Civjuqk+amnDuXxcIDsKK+O6oD55w7J1fFwgOwor47qcPmLEg258XCA7Civjups+emjDuXxcIDsKK+O6lz5kw6BufFwgOwor47qWPmjEg258XCA7CivjupU+ZsOhbnxcIDsKK+O6lD5ow6BpfFwgOwor47qRPmPDoW58XCA7Civjuo8+bMOzdXxcIDsKK+O6hT5ow7N1fFwgOwor47qDPmfFj3V8XCA7CivjuoI+Z8SDbnxcIDsKK+O6gT5uxINvfFwgOwor47qAPm7DoW98XCA7Civjubw+Y2jFrXxcIDsKK+O5tz5zaMStfFwgOwor47msPnNoxK18XCA7Civjuag+ecOydXxcIDsKK+O5pT56aMO5fFwgOwor47mkPnFpw6h8XCA7CivjuaA+dMO6bnxcIDsKK+O5nz5qdcOpfFwgOwor47mePnnDrW58XCA7CivjuZ0+c2jDrHxcIDsKK+O5nD55w61ufFwgOwor47mbPnLDoW98XCA7CivjuZc+dMOhb3xcIDsKK+O5jz5qxK1ufFwgOwor47mOPmzDqWl8XCA7CivjuYo+eXXDqHxcIDsKK+O4vj5yw6hufFwgOwor47i9PmLDqGl8XCA7CivjuLk+bGnDqHxcIDsKK+O4uD5oxY91fFwgOwor47i3PnNow6x8XCA7CivjuLU+Z3XErXxcIDsKK+O4sj56dcOzfFwgOwor47ixPnR1w7N8XCA7CivjuLA+dHXDs3xcIDsKK+O4rj5mw6lufFwgOwor47isPmLDqGl8XCA7CivjuKc+a8OobnxcIDsKK+O4oj5iw6hpfFwgOwor47iePmLEg258XCA7CivjuJ0+a8SDbnxcIDsKK+O4mD53w6BufFwgOwor47iVPmp1w6l8XCA7CivjuJI+ecOtbnxcIDsKK+O4kD5yw6FufFwgOwor47iOPm5pw6h8XCA7CivjuIw+aHXDsnxcIDsKK+O4iz5mw6FufFwgOwor47iJPnhpw6h8XCA7CivjuIU+amnDqXxcIDsKK+O4gT5oxINufFwgOwor47iAPnTDoWl8XCA7Civjt74+anXDqXxcIDsKK+O3vD55w6BufFwgOwor47e4PmRpw6l8XCA7Civjt7Y+YsOoaXxcIDsKK+O3sz55w6BufFwgOwor47eqPmN1w6x8XCA7Civjt6I+emjEg3xcIDsKK+O3oD5sw61ufFwgOwor47efPnR1w6x8XCA7Civjt5g+dMOhaXxcIDsKK+O3lT5xacO6fFwgOwor47eUPnnDoG58XCA7Civjt5A+aHXErXxcIDsKK+O3jT5sw7pufFwgOwor47eLPnTDoW58XCA7Civjt4o+ZsOpbnxcIDsKK+O3iT53w6hpfFwgOwor47eGPmTDsnV8XCA7Civjt4Q+aHXDrHxcIDsKK+O3gz5jdcStfFwgOwor47eCPnNow7l8XCA7CivjtrU+csOobnxcIDsKK+O2tD5jaMStfFwgOwor47azPmrDrG58XCA7CivjtrA+aMOhbnxcIDsKK+O2rz5sacO5fFwgOwor47atPmppw7l8XCA7Civjtqw+bcOpaXxcIDsKK+O2pz5uw6hufFwgOwor47amPmrDrG58XCA7CivjtqE+ZMOgaXxcIDsKK+O2nz5sxJVpfFwgOwor47aXPmbDoG58XCA7CivjtpY+c2jDuXxcIDsKK+O2lD5iw6hpfFwgOwor47aGPmNow7p8XCA7CivjtoU+eHXDqXxcIDsKK+O2hD55w6FufFwgOwor47aBPmd1w7N8XCA7Civjtb0+ZHXDrHxcIDsKK+O1uz5zw7J1fFwgOwor47W6PnDDoWl8XCA7Civjtbg+ecOgb3xcIDsKK+O1tT56w7J1fFwgOwor47WtPnpoxa18XCA7CivjtaY+c3XDrXxcIDsKK+O1oj5sw6lpfFwgOwor47WhPmLDoW98XCA7CivjtZg+bcOgbnxcIDsKK+O1lj5uecO5fFwgOwor47WUPmNoxJV8XCA7CivjtZM+c2jDrXxcIDsKK+O1kj5mw6hpfFwgOwor47WQPmp1w6l8XCA7CivjtY8+Y3XErXxcIDsKK+O1jj5oxINufFwgOwor47WNPm3DqG58XCA7CivjtYY+aMOgb3xcIDsKK+O1hT5kw6BufFwgOwor47WEPmjDoG58XCA7CivjtYM+Y2jDqHxcIDsKK+O0vT54acOofFwgOwor47S2PnF1w6h8XCA7CivjtK4+eGnDqHxcIDsKK+O0rT55xINvfFwgOwor47SsPnhpw6h8XCA7CivjtKs+asO5bnxcIDsKK+O0qj5uacOofFwgOwor47SbPnpow6x8XCA7CivjtJo+c3XDrHxcIDsKK+O0mT56aMOhfFwgOwor47SYPm3DoG98XCA7CivjtJY+bHXDsnxcIDsKK+O0kz56xINpfFwgOwor47SIPnnDrG58XCA7CivjtIc+c2jDqHxcIDsKK+O0hj5qw6xufFwgOwor47SDPmzDqGl8XCA7CivjtIA+ZsOgbnxcIDsKK+Ozvz54acOofFwgOwor47O6PnnDs3V8XCA7Civjs7c+d8SVbnxcIDsKK+Oztj5nw7J1fFwgOwor47OqPnDDoG58XCA7Civjs6Y+eGnDqHxcIDsKK+OzlT5sw6FufFwgOwor47OUPmR1w6x8XCA7Civjs48+Y2jErXxcIDsKK+OziD5ww6hpfFwgOwor47OGPnNoxa18XCA7Civjs4M+Y3XDrHxcIDsKK+Ozgj55w6FufFwgOwor47OAPmd1w7J8XCA7Civjsrk+Z3XErXxcIDsKK+Oytz5kw6BufFwgOwor47K2Pmx2zIB8XCA7CivjsrM+ZGnDqXxcIDsKK+Oysj5kacOpfFwgOwor47KxPmxpw6h8XCA7Civjsq8+csOhbnxcIDsKK+OyrT50xINufFwgOwor47KnPnrDoG98XCA7CivjsqY+aMOgbnxcIDsKK+OyoT5uw6BpfFwgOwor47KgPm3DoW98XCA7Civjspw+dMOhbnxcIDsKK+Oymz56aMStfFwgOwor47KVPmzDqGl8XCA7CivjspI+YsOgb3xcIDsKK+Oyjz5ixINvfFwgOwor47KOPmzDs3V8XCA7Civjsoo+cnXDrHxcIDsKK+OyiT5rw6BpfFwgOwor47KEPmvDsnV8XCA7CivjsoM+amnDuXxcIDsKK+Oxvz5xdcOofFwgOwor47G9PmTDoG58XCA7Civjsbs+bHXFj3xcIDsKK+OxtT5iw6hufFwgOwor47GxPmh1w6x8XCA7CivjsbA+esSDaXxcIDsKK+OxrD53xJVpfFwgOwor47GrPmzDoG58XCA7Civjsao+bcOobnxcIDsKK+Oxoz50dcStfFwgOwor47GcPnpow6F8XCA7CivjsZo+Y8OhbnxcIDsKK+OxmT54acWtfFwgOwor47GWPmN1w6x8XCA7CivjsYw+Y2jDqHxcIDsKK+Oxiz5xdcOofFwgOwor47GIPmrDrG58XCA7CivjsYM+ecStbnxcIDsKK+OxgT5zaMOsfFwgOwor47GAPmNoxK18XCA7CivjsLw+cWnDqHxcIDsKK+Owuj54acOhfFwgOwor47C5PmrDrG58XCA7CivjsLY+ecWPdXxcIDsKK+OwsT5zaMOgfFwgOwor47CwPnFpw6h8XCA7CivjsK8+a8OydXxcIDsKK+OwrD54w7pufFwgOwor47ClPmh1w6x8XCA7CivjsKE+eGnDqHxcIDsKK+Owmz55dcOofFwgOwor47CZPm51w7N8XCA7CivjsJY+bMSDbnxcIDsKK+OwlD54acOofFwgOwor47CSPnNow6l8XCA7CivjsJA+anXDqXxcIDsKK+Owjj56dcOsfFwgOwor47CMPnF1w6h8XCA7CivjsIs+cMOtbnxcIDsKK+Owij54w7pufFwgOwor47CGPmLDqGl8XCA7CivjsIE+bHXFj3xcIDsKK+Ovvz5sacOofFwgOwor46+7PmfFrW58XCA7Civjr7g+asStbnxcIDsKK+Ovsj5qw6xufFwgOwor46+wPnpow6l8XCA7Civjr64+c2jFrXxcIDsKK+OvpT5jw6FvfFwgOwor46+hPnDDoG98XCA7Civjr5w+Y3XDrHxcIDsKK+OvmT5jaMOofFwgOwor46+XPnLEg258XCA7Civjr5Q+Y3XDrHxcIDsKK+Ovjj5uw6hufFwgOwor46+KPmjDqW58XCA7Civjr4k+aHXDsnxcIDsKK+Ovgj5kw6BpfFwgOwor4666PmLElW58XCA7Civjrrk+emjErXxcIDsKK+Outj5zaMOsfFwgOwor466vPmh1w6F8XCA7Civjrq4+amnDqXxcIDsKK+OupT5mw6hufFwgOwor466jPmfDoGl8XCA7CivjrqI+aMOzdXxcIDsKK+Ounj5qacOpfFwgOwor466bPmNow618XCA7Civjrpg+bcOgb3xcIDsKK+Oulz5xw61ufFwgOwor466WPmppw6F8XCA7CivjrpM+Z8OobnxcIDsKK+Oujz5uw6BpfFwgOwor466LPnnFj3V8XCA7Civjrog+bsOgaXxcIDsKK+Ouhj5uacOofFwgOwor466DPnJ1w618XCA7CivjroE+ecOhb3xcIDsKK+OugD5ow6FufFwgOwor462/PsOhbmd8XCA7Civjrb4+anXDqXxcIDsKK+Otuj55xINufFwgOwor462vPmRpw6l8XCA7Civjra4+enXDsnxcIDsKK+OtrT5mw6hpfFwgOwor462pPmzDqGl8XCA7Civjrag+eGnDqXxcIDsKK+Otnj5sacOofFwgOwor462dPnFpw7p8XCA7CivjrZs+cMOgaXxcIDsKK+Otmj5secWtfFwgOwor462ZPnNow6l8XCA7CivjrZE+bcOoaXxcIDsKK+Otjz53xJVpfFwgOwor462MPm3Ds3V8XCA7CivjrYk+aHXDoXxcIDsKK+OtiD5qdcOpfFwgOwor462EPnjDrG58XCA7CivjrL8+ZMO5bnxcIDsKK+Ostj5ow6BvfFwgOwor46yvPmxpw6h8XCA7CivjrKs+ecOgbnxcIDsKK+Osqj5kacOpfFwgOwor46ypPmh1w6x8XCA7CivjrKY+eXXDqHxcIDsKK+Osoz5kdcOsfFwgOwor46ycPmrDrG58XCA7CivjrJo+Y2jDqHxcIDsKK+OsmT53xJVpfFwgOwor46yUPmjDoW98XCA7CivjrJA+asStbnxcIDsKK+Osiz5ow7N1fFwgOwor46yFPm3DoG58XCA7CivjrIM+dMOhaXxcIDsKK+OrvD5kacOpfFwgOwor46u7PmvDuW58XCA7Civjq7k+ZMOgaXxcIDsKK+OruD5xacOofFwgOwor46u2PmPFj3V8XCA7Civjq7I+cMOoaXxcIDsKK+OrsT5uxINufFwgOwor46uvPm3DoG98XCA7Civjq6c+YsOgb3xcIDsKK+Ornz55w6FufFwgOwor46ucPmTDoG58XCA7Civjq5c+aMOydXxcIDsKK+OrlD5nw6hufFwgOwor46uRPnNow618XCA7Civjq5A+ecSDb3xcIDsKK+Orjz55xINvfFwgOwor46uOPmfFrW58XCA7Civjq40+ecOzdXxcIDsKK+OrhT5jaMOhfFwgOwor46uDPnnEg258XCA7Civjq4I+emjDuXxcIDsKK+Oqvz56aMOpfFwgOwor46q9PnN1xY98XCA7Civjqrk+bMWPdXxcIDsKK+Oqtz5kxY91fFwgOwor46q1PmLDoG58XCA7CivjqrQ+amnDoXxcIDsKK+Oqrz5jaMOhfFwgOwor46qrPnJ1w6x8XCA7CivjqqY+ecOsbnxcIDsKK+Oqnj5tw6BvfFwgOwor46qaPnPDoG58XCA7Civjqpc+dMWPdXxcIDsKK+OqlD5zw6BufFwgOwor46qLPmjDoG58XCA7Civjqoo+ccO6bnxcIDsKK+OqiD5ndcOsfFwgOwor46qBPnHDrW58XCA7Civjqbs+Z3XErXxcIDsKK+OpuT5kacOpfFwgOwor46m4PmRpw6l8XCA7CivjqbY+bmnDqHxcIDsKK+Opsj5rxa1ufFwgOwor46mxPmp1w6l8XCA7Civjqa8+YsSDbnxcIDsKK+Opqj54acOpfFwgOwor46moPmh1w6x8XCA7CivjqaY+eGnDqXxcIDsKK+OpoT5sdcWPfFwgOwor46mdPmjDoW98XCA7CivjqZw+bMSDbnxcIDsKK+OplD50w7pufFwgOwor46mTPmh1xK18XCA7CivjqZI+ccOtbnxcIDsKK+OpjD5mw6hpfFwgOwor46mJPnhpw6l8XCA7CivjqYc+aHXDoHxcIDsKK+Ophj5qacO5fFwgOwor46mBPnF1w6h8XCA7CivjqLw+bHXDqHxcIDsKK+Oouz5jw6FufFwgOwor46i6Pm3DqW58XCA7CivjqLk+aHXDrHxcIDsKK+Ootz5qw6xufFwgOwor46izPmd1xK18XCA7CivjqLE+ecOhb3xcIDsKK+Oorz5odcOyfFwgOwor46irPmzEg258XCA7CivjqKk+amnDqXxcIDsKK+OoqD5sacO5fFwgOwor46inPmLDqG58XCA7CivjqKQ+aHXDrHxcIDsKK+OooT5ow7pufFwgOwor46ifPmjDoWl8XCA7CivjqJ0+eGnDqHxcIDsKK+Oomj54w7pufFwgOwor46iZPnhpw6l8XCA7CivjqJc+amnDqXxcIDsKK+Oolj56aMOsfFwgOwor46iUPmjDoG58XCA7CivjqJM+bMOhb3xcIDsKK+Ookj5rdcOtfFwgOwor46iMPmfDsnV8XCA7CivjqIs+Y2jElXxcIDsKK+Ooij53xJVpfFwgOwor46iJPm3ErW58XCA7CivjqIY+bMStbnxcIDsKK+OohT5uw6hpfFwgOwor46iBPnpow618XCA7Civjp7s+emjErXxcIDsKK+Ontz5kdcOyfFwgOwor46e1PnDDs3V8XCA7Civjp7I+c8SDbnxcIDsKK+Onrz5sxINvfFwgOwor46eqPmd1xK18XCA7Civjp6k+cMOoaXxcIDsKK+OnqD5xacO6fFwgOwor46ejPnpow7l8XCA7Civjp6E+aMOgaXxcIDsKK+OnnD5sacOofFwgOwor46eYPmN1w6x8XCA7Civjp5U+amnDuXxcIDsKK+Onkj54dcOpfFwgOwor46eRPnfDqWl8XCA7Civjp4w+bcOgb3xcIDsKK+OniT5nw6BpfFwgOwor46eIPnnErW58XCA7Civjp4c+bcSDb3xcIDsKK+OmuT7DoG5nfFwgOwor46a2PmRpw6l8XCA7Civjpq8+aHXDsnxcIDsKK+OmrD5sdcWPfFwgOwor46aqPnhpw6h8XCA7Civjpqk+ecStbnxcIDsKK+OmqD5sw6FufFwgOwor46anPmPEg258XCA7CivjpqM+d8OoaXxcIDsKK+Omoj5qacOpfFwgOwor46afPmjDoGl8XCA7Civjppw+aHXDsnxcIDsKK+Omlj5tw6hufFwgOwor46aUPnnDoG58XCA7Civjpo8+c8WtbnxcIDsKK+Omjj5odcOgfFwgOwor46aMPnR1w6x8XCA7Civjpoo+aHXDoXxcIDsKK+OlvD55xK1ufFwgOwor46W5PmbElW58XCA7Civjpbg+bcStbnxcIDsKK+OltT5ow7lufFwgOwor46WxPmbElWl8XCA7Civjpa8+ecStbnxcIDsKK+OlrT50w6BpfFwgOwor46WqPmzDs3V8XCA7Civjpak+ZHXFj3xcIDsKK+Olpj5xacOofFwgOwor46WjPmh1w6x8XCA7CivjpaI+cWnDunxcIDsKK+Olnz54acOpfFwgOwor46WePmN1w6x8XCA7CivjpZw+d8OoaXxcIDsKK+Olkj5jxINpfFwgOwor46WOPmzDoWl8XCA7CivjpYk+Y2jDqHxcIDsKK+OliD5kacOpfFwgOwor46WHPmPDoW58XCA7CivjpYM+bcOobnxcIDsKK+Okvj5zw6BufFwgOwor46S5PnFpw7p8XCA7CivjpLM+YsSVaXxcIDsKK+Oksj5xacOofFwgOwor46SwPnrEg258XCA7CivjpKw+aHXDrHxcIDsKK+Okpz5ow7N1fFwgOwor46SlPmjDoGl8XCA7CivjpKA+bGnDqHxcIDsKK+Oknj5jaMOgfFwgOwor46ScPmp1w6l8XCA7CivjpJs+bsOtbnxcIDsKK+OkmD5jaMO5fFwgOwor46SWPnpow7l8XCA7CivjpJU+Y2jDuXxcIDsKK+Okkz5iw6hufFwgOwor46SRPnnDsnV8XCA7CivjpIk+cWnDoHxcIDsKK+OkiD5xw6xufFwgOwor46SGPmbDoG58XCA7CivjpIQ+cMOoaXxcIDsKK+Ojvj5jaMOgfFwgOwor46O9PnNow7l8XCA7Civjo7w+csSVbnxcIDsKK+Ojsj53w6lpfFwgOwor46OwPnhpw6h8XCA7Civjo68+eGnDqHxcIDsKK+Ojpz55w6xufFwgOwor46OlPnpow6x8XCA7Civjo54+ZHXDs3xcIDsKK+Ojkz5jw6BufFwgOwor46ONPnTDoWl8XCA7Civjo4U+esOgbnxcIDsKK+OjgT5iw6hpfFwgOwor46K8PmJpw6h8XCA7Civjors+d8SVaXxcIDsKK+OitT5zaMOofFwgOwor46KyPnjDuW58XCA7Civjoq8+bcOtbnxcIDsKK+Oirj5jaMOtfFwgOwor46KoPmjDoG58XCA7Civjops+ecOgbnxcIDsKK+OimT5xw61ufFwgOwor46KTPnnEg298XCA7CivjopI+Y2jDoXxcIDsKK+OikT50dcOtfFwgOwor46KPPnTDs3V8XCA7Civjoo4+Y2jDoHxcIDsKK+Oiiz5jaMStfFwgOwor46KJPmNow6F8XCA7Civjoog+dHXDrXxcIDsKK+OihD5kw7J1fFwgOwor46KCPnnEg258XCA7CivjooE+Y2jErXxcIDsKK+Ohvz5jaMOsfFwgOwor46G6PmTDoG58XCA7Civjobg+emjEg3xcIDsKK+Ohtz5ixJVufFwgOwor46GxPmppxa18XCA7Civjoao+bmnDqXxcIDsKK+OhpT55xK1ufFwgOwor46GiPm3DoG58XCA7CivjoaE+Y2jDunxcIDsKK+Ohnj5sxJVpfFwgOwor46GcPnh1xJV8XCA7CivjoY8+dMOzdXxcIDsKK+OhjD5tw6BvfFwgOwor46GKPnFpw6B8XCA7CivjoYg+bcOpbnxcIDsKK+OhhT5udcWPfFwgOwor46GEPnPFrW58XCA7CivjoYE+a8SDaXxcIDsKK+OguT5qacOofFwgOwor46C2PmbDoW58XCA7CivjoLQ+csOobnxcIDsKK+OgpT5sdsyAfFwgOwor46CjPmzDoGl8XCA7CivjoKI+aHXDoHxcIDsKK+Ogmj5kdcOsfFwgOwor46CZPmjDoW98XCA7CivjoJU+d8SVaXxcIDsKK+OglD5iw6BpfFwgOwor46CRPnp1w6x8XCA7CivjoI8+aHXDoXxcIDsKK+Ogjj5qasOtfFwgOwor46CIPnLDuW58XCA7CivjoIc+amnDuXxcIDsKK+OggD5kxINvfFwgOwor45+6PmzDs3V8XCA7Civjn7k+bMOhb3xcIDsKK+Ofsj5qdcOpfFwgOwor45+xPnnEg298XCA7Civjn60+bcOtbnxcIDsKK+OfrD5zaMWtfFwgOwor45+qPnfElWl8XCA7Civjn6k+bcOtbnxcIDsKK+Ofpj55w7lufFwgOwor45+dPnDDqWl8XCA7Civjn5s+esOgbnxcIDsKK+OfmT5sxINvfFwgOwor45+UPmjDoW58XCA7Civjn48+aMOhbnxcIDsKK+Ofjj50dcWPfFwgOwor45+LPmR1w6x8XCA7Civjn4k+bMOhb3xcIDsKK+OfiD5xacO6fFwgOwor45+HPmN1w7N8XCA7Civjn4Y+aHXDoXxcIDsKK+Ofgj5jaMStfFwgOwor456/PmNow6x8XCA7Civjnr0+eHXDqHxcIDsKK+Oeuz5ow6BvfFwgOwor4564PnN1w6x8XCA7CivjnrY+bcStbnxcIDsKK+OetD5jaMOtfFwgOwor456zPmTFj3V8XCA7Civjnq8+amnDqXxcIDsKK+OerT5kw6BpfFwgOwor456sPnHDrG58XCA7Civjnqo+bsOhb3xcIDsKK+OeqT5sw6FufFwgOwor456oPnrEg2l8XCA7Civjnqc+aHXDrHxcIDsKK+OepT5jw6lufFwgOwor456kPnnDrW58XCA7CivjnqA+bMOhb3xcIDsKK+OemD50w7pufFwgOwor456XPnFpw7p8XCA7CivjnpU+eGnDqHxcIDsKK+OekT53xJVpfFwgOwor456PPnpow6l8XCA7Civjnow+ecO5bnxcIDsKK+Oehz53xJVpfFwgOwor456FPmd1xY98XCA7CivjnoI+dHXErXxcIDsKK+OegT55w6BvfFwgOwor452+Pnp1xY98XCA7Civjnbs+asStbnxcIDsKK+OduT5uw7N1fFwgOwor4520PnfDoW58XCA7CivjnbI+ccStbnxcIDsKK+Odrj5jdcOsfFwgOwor452nPnfElW58XCA7CivjnaY+asO5bnxcIDsKK+OdpD5nw7J1fFwgOwor452hPnp1w6x8XCA7CivjnZ8+bcOhb3xcIDsKK+OdnT5sw61ufFwgOwor452ZPnnDrW58XCA7CivjnZQ+ecOgb3xcIDsKK+Odjz5qacOofFwgOwor452NPnhpxJV8XCA7CivjnYw+amnDqXxcIDsKK+OdiT56aMO5fFwgOwor452FPmfDsnV8XCA7CivjnYM+ZsOgbnxcIDsKK+Odgj56aMOsfFwgOwor452BPnjDum58XCA7CivjnYA+aMOgb3xcIDsKK+Ocvj5ow6FpfFwgOwor45y8Pnpow618XCA7CivjnLo+esOgbnxcIDsKK+OcuD5uacOofFwgOwor45y2PnfEg258XCA7CivjnLA+eXXDqHxcIDsKK+Ocrj5sw6BufFwgOwor45ynPnl1w6h8XCA7CivjnKY+aMOgbnxcIDsKK+OcpT5tw6FpfFwgOwor45yjPnLDoW58XCA7CivjnJs+bsOobnxcIDsKK+Oclz5jxINufFwgOwor45yWPmPDoW98XCA7CivjnJA+c2jDuXxcIDsKK+Ocjz55w7pufFwgOwor45yMPmfDsnV8XCA7CivjnIc+aHXDrHxcIDsKK+OchD54w7pufFwgOwor45u/Pnpow6x8XCA7Civjm7w+c2jDoHxcIDsKK+Obuz5rdcStfFwgOwor45u4PnNow7l8XCA7Civjm7Q+bsSDb3xcIDsKK+Obsz5jaMOgfFwgOwor45uxPnJ1w6x8XCA7Civjm64+c8SDb3xcIDsKK+Obqj55w6BufFwgOwor45unPm3Eg258XCA7Civjm6Y+bMSDbnxcIDsKK+ObnT5iw6hpfFwgOwor45ucPnnDs3V8XCA7Civjm5s+eMOsbnxcIDsKK+ObmT5xacOofFwgOwor45uXPnp1w7J8XCA7Civjm5I+ZMOydXxcIDsKK+ObkT5jw6BufFwgOwor45uQPnPFj3V8XCA7Civjm40+cWnDqHxcIDsKK+Obij5kdcWPfFwgOwor45uGPmR1xY98XCA7Civjm4M+amnDqXxcIDsKK+Obgj5udcWPfFwgOwor45q/PnDDoW98XCA7Civjmro+ecO5bnxcIDsKK+OauT5txINvfFwgOwor45qvPnjDrW58XCA7Civjmq0+ecOzdXxcIDsKK+Oaqz5zaMOgfFwgOwor45qqPmjDoG98XCA7Civjmqk+csSDbnxcIDsKK+Oapz55xINufFwgOwor45qdPmt1w618XCA7Civjmpg+YsOgbnxcIDsKK+Oalz5xacOpfFwgOwor45qWPmfEg298XCA7CivjmpQ+bmnDqHxcIDsKK+Oakz5sw6FpfFwgOwor45qQPnTDoG98XCA7Civjmo8+Z8SDb3xcIDsKK+OajT5ndcOzfFwgOwor45qMPmh1w6B8XCA7CivjmoM+ecO6bnxcIDsKK+OZvD5sxJVpfFwgOwor45m6Pmd1w6x8XCA7Civjmbg+YsOgb3xcIDsKK+OZtz56aMOtfFwgOwor45m1PnTDoWl8XCA7CivjmbM+aMSDbnxcIDsKK+OZsT5ow6BvfFwgOwor45mwPnhpw6h8XCA7Civjmaw+ecOtbnxcIDsKK+OZpT5nxa1ufFwgOwor45mkPnhpw6B8XCA7CivjmaI+bcOhbnxcIDsKK+OZnj5uacOofFwgOwor45mdPnhpw6l8XCA7CivjmZw+Y2jDrXxcIDsKK+OZlD5ow6FufFwgOwor45mTPmt1w618XCA7CivjmZA+ZHXFj3xcIDsKK+OZiD5ow6FufFwgOwor45mHPmNow7l8XCA7CivjmYU+YsSDb3xcIDsKK+OZgj5kdcOsfFwgOwor45mAPmxpw7l8XCA7CivjmL8+bmnDqHxcIDsKK+OYtj5qacOpfFwgOwor45i0Pnp1w7J8XCA7CivjmKo+aMOgb3xcIDsKK+OYqD5uw6hpfFwgOwor45imPnHDrW58XCA7CivjmKU+ecOzdXxcIDsKK+OYoT54acOhfFwgOwor45iePmh1w7J8XCA7CivjmJw+Y2jErXxcIDsKK+OYmj5oxINufFwgOwor45iZPnnDoW58XCA7CivjmJY+ecOhbnxcIDsKK+OYlT5oxINufFwgOwor45iUPmPEg258XCA7CivjmJM+bMOhbnxcIDsKK+OYkD5ww6BvfFwgOwor45iOPmjEg258XCA7CivjmIk+emjDrHxcIDsKK+OYhj50w6FpfFwgOwor45iAPnp1w7J8XCA7Civjl78+eGnDoHxcIDsKK+OXtz5zxINpfFwgOwor45e0PnnDoW58XCA7Civjl7I+aHXDsnxcIDsKK+OXsD5jaMO5fFwgOwor45erPnFpw6h8XCA7Civjl6c+emjDrHxcIDsKK+OXpj5sw6FvfFwgOwor45elPmt1w7J8XCA7Civjl5w+eGnDuXxcIDsKK+OXlz5ixINpfFwgOwor45eWPmTDoG58XCA7Civjl5U+Z8OydXxcIDsKK+OXkT5iw6BpfFwgOwor45eMPnpow6x8XCA7Civjl4s+aMOzdXxcIDsKK+OXiD5tw6BufFwgOwor45eHPnhpw6F8XCA7Civjl4Q+bcOhbnxcIDsKK+OXgz53xJVufFwgOwor45a/Pnhpw6l8XCA7Civjlrw+ZHXFj3xcIDsKK+OWuz5yw7N1fFwgOwor45a5PmbDqG58XCA7Civjlrg+eHXDqXxcIDsKK+OWtz5zaMOtfFwgOwor45auPmzDum58XCA7Civjlqo+Z3XDs3xcIDsKK+OWqT5zxY91fFwgOwor45anPnfElW58XCA7CivjlqQ+aMOhbnxcIDsKK+OWoz50w7J1fFwgOwor45aXPnnDrW58XCA7CivjlpY+bmnDqHxcIDsKK+OWlD50xa1ufFwgOwor45aRPnhpw6h8XCA7CivjlpA+d8SVaXxcIDsKK+OWjz5uw6hpfFwgOwor45aDPmjFj3V8XCA7CivjloE+bMOsbnxcIDsKK+OVuz5wxY91fFwgOwor45W6PmjDoW98XCA7Civjlbc+aHXDoHxcIDsKK+OVtj5uZ8yAfFwgOwor45W1Pmd1w7N8XCA7CivjlbI+aHXDoXxcIDsKK+OVsT55w7N1fFwgOwor45WvPm7DqGl8XCA7Civjlao+ZMSDbnxcIDsKK+OVqD5mw6BufFwgOwor45WmPmh1w6B8XCA7CivjlaQ+cWnDunxcIDsKK+OVoz55xINufFwgOwor45WiPmfDoGl8XCA7CivjlZ8+a3XDrHxcIDsKK+OVnD5zaMStfFwgOwor45WZPmrDuW58XCA7CivjlZc+ecOydXxcIDsKK+OVkj53w6lpfFwgOwor45WRPmNow7p8XCA7CivjlZA+eGnElXxcIDsKK+OVjz5jaMO6fFwgOwor45WIPmjDsnV8XCA7CivjlYU+amnEg3xcIDsKK+OVhD56aMOsfFwgOwor45WCPnnDrW58XCA7CivjlYE+cXXDqHxcIDsKK+OUvz56w7J1fFwgOwor45S+Pmppw6l8XCA7CivjlL0+ecOgb3xcIDsKK+OUvD5zxa1ufFwgOwor45S6PnNow6x8XCA7CivjlLc+bMOydXxcIDsKK+OUsz5ndcStfFwgOwor45SuPm51w7N8XCA7CivjlK0+Y2jDqHxcIDsKK+OUqD5iw6hpfFwgOwor45SnPmx5w7l8XCA7CivjlKM+bMOpaXxcIDsKK+OUoj5qdcOpfFwgOwor45SaPmvFj3V8XCA7CivjlJg+Y2jDuXxcIDsKK+OUlz5mw6hpfFwgOwor45SRPmNow6x8XCA7CivjlI4+eGnDqHxcIDsKK+OUjT5kdcWPfFwgOwor45SKPmTEg258XCA7CivjlIk+emjDunxcIDsKK+OUgz5qdcOpfFwgOwor45SCPmzDrW58XCA7CivjlIA+bHbDqHxcIDsKK+OTvj5jaMOtfFwgOwor45O8PmNow6x8XCA7Civjk7k+cnXDrHxcIDsKK+OTuD5qdcOpfFwgOwor45O2PnFpw6h8XCA7Civjk7Q+asO5bnxcIDsKK+OTsT50w7N1fFwgOwor45OwPmh1w6B8XCA7Civjk6c+ecSDbnxcIDsKK+OTpD5qacOpfFwgOwor45OjPnFpw6B8XCA7Civjk6I+bHXDsnxcIDsKK+OTnD55w7J1fFwgOwor45OXPmppw6l8XCA7Civjk5Q+eGnDqHxcIDsKK+OTkz5uw6FufFwgOwor45OIPmLDqGl8XCA7Civjk4I+a8OydXxcIDsKK+OSvj5zaMOsfFwgOwor45K8Pm3DoW58XCA7Civjkrs+bcOgb3xcIDsKK+OSuD5zdcOsfFwgOwor45K3Pmd1xIN8XCA7CivjkrU+bcOgb3xcIDsKK+OSsj5jw6FpfFwgOwor45KpPmx1xY98XCA7CivjkqY+bMSVaXxcIDsKK+OSpD5zaMOofFwgOwor45KhPnnDs3V8XCA7CivjkqA+eGnDqHxcIDsKK+OSnj5qw7lufFwgOwor45KdPm1pw6h8XCA7Civjkpo+d8SVbnxcIDsKK+OSlz50w6FpfFwgOwor45KUPnNoxa18XCA7CivjkpE+aHXDrHxcIDsKK+OSjT5sw6lpfFwgOwor45KIPmjDoG58XCA7CivjkoY+Y2jDrHxcIDsKK+OSgD56aMSDfFwgOwor45G6PmrDuW58XCA7Civjkbk+aHXDrHxcIDsKK+ORtz50w6BpfFwgOwor45G1PmjDoG58XCA7CivjkbE+csSDb3xcIDsKK+ORsD5odcOsfFwgOwor45GuPmjDum58XCA7Civjkak+bHXDs3xcIDsKK+ORoz5sw6FufFwgOwor45GaPm51w7N8XCA7CivjkZk+ZGnDqXxcIDsKK+ORmD5qacOofFwgOwor45GPPnpow7l8XCA7CivjkY4+bsSDb3xcIDsKK+ORjT5sxJVpfFwgOwor45GFPnp1w7J8XCA7CivjkLI+ZMOgaXxcIDsKK+OQsD54w6xufFwgOwor45CtPmzErW58XCA7CivjkKw+bGnDunxcIDsKK+OQpD5xacO6fFwgOwor45ChPm51w7J8XCA7CivjkIY+ecStbnxcIDsKK/CmiYY+Y2jDoXxcIDsKK/CjjrQ+ZMWtbnxcIDsKK/ChvbE+amnDqHxcIDsKK/Cipo8+emFpfFwgOwor8KCAjT5zaMOsfFwgOwor8KCAiT5xaXV8XCA7CivwoICFPmjDoGl8XCA7CivnmoQ+ZMSTfFwgOwor5LiAPnlpfFwgOwor5LiNPmLDuXxcIDsKK+S6hj5sxJN8XCA7CivmiJE+d8WPfFwgOwor5LuWPnRhfFwgOwor5aSnPmTDoHxcIDsKK+S4qj5nw6h8XCA7CivlrZA+esStfFwgOwor5ZKMPmjDqXxcIDsKK+S9oD5uxK18XCA7CivlnLA+ZMSTfFwgOwor5LmfPnnElXxcIDsKK+W+lz5kw6l8XCA7CivpgqM+bsSDfFwgOwor5LulPnnErXxcIDsKK+iHqj56w6x8XCA7Civljrs+ccO5fFwgOwor5Y+vPmvElXxcIDsKK+WluT50YXxcIDsKK+mHjD5sxK18XCA7CivkuYg+bcSBfFwgOwor6ICMPsOpcnxcIDsKK+aXpT5yw6x8XCA7Civkuo4+ecO6fFwgOwor6LW3PnHErXxcIDsKK+WPkT5mYXxcIDsKK+aXoD53w7p8XCA7CivlpoI+csO6fFwgOwor5beyPnnErXxcIDsKK+S4jj55w7p8XCA7CivmhI8+ecOsfFwgOwor5oqKPmLEg3xcIDsKK+azlT5mxIN8XCA7CivmraQ+Y8StfFwgOwor5LqMPsOocnxcIDsKK+eQhj5sxK18XCA7CivlhbY+ccOtfFwgOwor5bexPmrErXxcIDsKK+WEvz7DqXJ8XCA7Civpg6g+YsO5fFwgOwor5YqbPmzDrHxcIDsKK+acuj5qaXxcIDsKK+WHoD5qaXxcIDsKK+S4mj55w6h8XCA7CivmiZM+ZMOhfFwgOwor5ZubPnPDrHxcIDsKK+esrD5kw6x8XCA7CivmrKE+Y8OsfFwgOwor6KW/PnhpfFwgOwor5rCUPnHDrHxcIDsKK+WFpT5yw7l8XCA7CivkupQ+d8WtfFwgOwor5L2TPnTErXxcIDsKK+avlD5ixK18XCA7Civnm64+bcO5fFwgOwor56uLPmzDrHxcIDsKK+mprD5txIN8XCA7CivmlbA+Y8O5fFwgOwor5a6JPmFufFwgOwor6LevPmzDuXxcIDsKK+acnz5xaXxcIDsKK+atuz5zxK18XCA7Civmj5A+ZGl8XCA7CivkvZU+aMOpfFwgOwor5ZCIPmfElXxcIDsKK+ezuz54w6x8XCA7CivorqE+asOsfFwgOwor5Y+4PnNpfFwgOwor5YipPmzDrHxcIDsKK+WPij5qw618XCA7CivliqE+d8O5fFwgOwor5ZCEPmfDqHxcIDsKK+eJqT53w7l8XCA7CivorrA+asOsfFwgOwor5oiYPnrDqXxcIDsKK+Wugz50YXxcIDsKK+iuuD5oxa18XCA7Civlhas+YmF8XCA7Civnibk+dMOofFwgOwor5pyNPmbDunxcIDsKK+mimD5kw6x8XCA7CivluqY+ZMO5fFwgOwor6ImyPnPDqHxcIDsKK+Wtlz56w6x8XCA7CivniLE+w6BpfFwgOwor5LmJPnfDuXxcIDsKK+enkT5rZXxcIDsKK+aAnT5zaXxcIDsKK+Wkqz5mdXxcIDsKK+i1hD56aXxcIDsKK+i+vj5kw6F8XCA7CivmraY+d8WtfFwgOwor5LiDPnFpfFwgOwor5b+FPmLDrHxcIDsKK+eItj5mw7l8XCA7CivmraU+YsO5fFwgOwor6Z2pPmfDqXxcIDsKK+WMuj5xdXxcIDsKK+WNsz5qw618XCA7CivmioA+asOsfFwgOwor6K+tPnnFrXxcIDsKK+Wfuj5qaXxcIDsKK+adjj5sxK18XCA7Civmga8+eGl8XCA7CivlkaI+bsSTfFwgOwor5p6BPmrDrXxcIDsKK+W+tz5kw6l8XCA7Civlj5Y+ccWtfFwgOwor5Y6GPmzDrHxcIDsKK+W5vz5hbnxcIDsKK+iurj55w6x8XCA7CivpmYU+asOsfFwgOwor5YiZPnrDqXxcIDsKK+aNrj5qdXxcIDsKK+aLvz5uw6F8XCA7CivkvLw+c8OsfFwgOwor5pavPnNpfFwgOwor5byfPmTDrHxcIDsKK+ivuz5kw7p8XCA7Civnu4Q+esWtfFwgOwor6JC9PmzDoHxcIDsKK+a1jj5qw6x8XCA7Civllpw+eMStfFwgOwor56a7PmzDrXxcIDsKK+mbhj5qw618XCA7Civlupw+ZsWtfFwgOwor5ouJPmxhfFwgOwor5qC8PmfDqXxcIDsKK+W4gz5iw7l8XCA7CivmgJU+cMOgfFwgOwor5q+NPm3FrXxcIDsKK+WxgD5qw7p8XCA7CivkuZA+bMOofFwgOwor57qnPmrDrXxcIDsKK+WFiz5rw6h8XCA7Civlk6o+bsSDfFwgOwor5LmOPmh1fFwgOwor5Li+PmrFrXxcIDsKK+Wuoj5rw6h8XCA7Civoi6Y+a8WtfFwgOwor6LazPnrDunxcIDsKK+WwlD7ElXJ8XCA7Civng60+csOofFwgOwor57qmPmrErXxcIDsKK+WTpT5nZXxcIDsKK+WQlz5txIF8XCA7Civlj6Q+Z8WtfFwgOwor5rGJPnnDrHxcIDsKK+eqgT50dXxcIDsKK+WQpz5iYXxcIDsKK+S6mj55YXxcIDsKK+WkjT5mw7l8XCA7CivliLs+a8OofFwgOwor5aScPnnDqHxcIDsKK+W6lT5kxJN8XCA7CivmlYU+Z8O5fFwgOwor5aaIPm1hfFwgOwor5Y+lPmrDuXxcIDsKK+ihoz55aXxcIDsKK+mZhj5sw7l8XCA7Civlmag+ccOsfFwgOwor56C0PnDDsnxcIDsKK+WFtz5qw7l8XCA7CivlsYU+anV8XCA7Civmibk+cGl8XCA7CivlpYc+aml8XCA7CivmmJM+ecOsfFwgOwor5oClPmrDrXxcIDsKK+S9jj5kaXxcIDsKK+mcgD54dXxcIDsKK+aysz5ow6l8XCA7Civml48+esO6fFwgOwor6IOhPmjDunxcIDsKK+S8gT5xxK18XCA7Civnuqo+asOsfFwgOwor6IuPPmTDrHxcIDsKK+WMuz55aXxcIDsKK+etlD5kYXxcIDsKK+Wcnz50xa18XCA7Civlh7s+asOtfFwgOwor6IKyPnnDuXxcIDsKK+e7rT54w7l8XCA7Civni6w+ZMO6fFwgOwor5oi3PmjDuXxcIDsKK+WWnT5oZXxcIDsKK+i0oz56w6l8XCA7CivkvZk+ecO6fFwgOwor5biMPnhpfFwgOwor5Zu+PnTDunxcIDsKK+WSsT56w6F8XCA7CivluK0+eMOtfFwgOwor6ZSZPmPDuXxcIDsKK+aalz7DoG58XCA7Civpobs+eHV8XCA7CivmoYg+w6BufFwgOwor5ZG8Pmh1fFwgOwor57uGPnjDrHxcIDsKK+iviT5zw7l8XCA7CivnrJQ+YsStfFwgOwor56aPPmbDunxcIDsKK+WnkT5ndXxcIDsKK+aXoj5qw6x8XCA7Civlt7Q+YmF8XCA7CivmnKg+bcO5fFwgOwor5YmvPmbDuXxcIDsKK+i+kT5qw618XCA7CivnsbM+bcStfFwgOwor5q2MPmdlfFwgOwor6YCfPnPDuXxcIDsKK+W/vT5odXxcIDsKK+aVjD5kw618XCA7Civpob4+Z8O5fFwgOwor5Li9PmzDrHxcIDsKK+S+nT55aXxcIDsKK+aMiT7DoG58XCA7Civmv4A+aml8XCA7CivlvII+ecOsfFwgOwor6LSfPmbDuXxcIDsKK+aooT5tw7N8XCA7CivpnLI+bMO5fFwgOwor6Zi1PsOgaXxcIDsKK+Wvhj5tw6x8XCA7CivkuaA+eMOtfFwgOwor5q+SPmTDunxcIDsKK+azoj5ib3xcIDsKK+Wxiz53dXxcIDsKK+WvhD5qw6x8XCA7CivluJ0+ZMOsfFwgOwor5LidPnNpfFwgOwor5rmWPmjDunxcIDsKK+Wmhz5mw7l8XCA7CivkvK8+YsOzfFwgOwor5bC8Pm7DrXxcIDsKK+earj5ww618XCA7CivnpZY+esWtfFwgOwor5ZOIPmhhfFwgOwor56S8PmzErXxcIDsKK+WOiz55YXxcIDsKK+Wphj5ww7N8XCA7Civlr4w+ZsO5fFwgOwor5b2VPmzDuXxcIDsKK+mBhz55w7l8XCA7Civoibo+ecOsfFwgOwor5pmuPnDFrXxcIDsKK+e0oD5zw7l8XCA7Civnu6c+asOsfFwgOwor6ZuoPnnFrXxcIDsKK+S9mz5mw7N8XCA7Civorqg+bsOgfFwgOwor5ZC0PnfDunxcIDsKK+absj5xdXxcIDsKK+eOiT55w7l8XCA7CivljY8+Y8O5fFwgOwor6b2QPnHDrXxcIDsKK+eWkT55w618XCA7CivnrZY+Y8OofFwgOwor5L6LPmzDrHxcIDsKK+iCoT5nxa18XCA7Civliac+asO5fFwgOwor5oCSPm7DuXxcIDsKK+WVpj5sYXxcIDsKK+iOqz5tw7J8XCA7Civmgak+ZW58XCA7Civnm4o+ecOsfFwgOwor5ZOtPmt1fFwgOwor572iPmLDoHxcIDsKK+WNiD53xa18XCA7CivljaE+a8SDfFwgOwor5Y2aPmLDs3xcIDsKK+avlT5iw6x8XCA7CivmrKc+b3V8XCA7Civlprs+cWl8XCA7CivomZo+eHV8XCA7CivpooQ+cG98XCA7CivliLo+Y8OsfFwgOwor6bG8PnnDunxcIDsKK+iAsz7ElXJ8XCA7Civph44+ecSVfFwgOwor6buYPm3DsnxcIDsKK+W+kj50w7p8XCA7Civnp7s+ecOtfFwgOwor54i4PmLDoHxcIDsKK+eLkD5ow7p8XCA7CivkupI+aMO5fFwgOwor6aqCPm3DoHxcIDsKK+enmD5tw6x8XCA7Civor40+Y8OtfFwgOwor6aqoPmfDunxcIDsKK+assj55w7l8XCA7Civnp4E+c2l8XCA7CivoiJ4+d8WtfFwgOwor5beoPmrDuXxcIDsKK+WQuD54aXxcIDsKK+Wcoz5rdXxcIDsKK+mBvz5iw6x8XCA7Civlv4w+asOsfFwgOwor5Z+fPnnDuXxcIDsKK+WRgD55xIF8XCA7Civku5g+ZsO5fFwgOwor5bqTPmvDuXxcIDsKK+e7vz5sx5x8XCA7CivlvpA+eMO6fFwgOwor6K+vPnfDuXxcIDsKK+e6sz5uw6B8XCA7Civov7c+bcOtfFwgOwor6bKBPmzFrXxcIDsKK+aIjz54w6x8XCA7CivotqM+ccO5fFwgOwor6K++PmvDqHxcIDsKK+m6uz5tw6F8XCA7CivmtJc+eMStfFwgOwor6L+rPnDDsnxcIDsKK+axvT5xw6x8XCA7CivpvJM+Z8WtfFwgOwor5bK4PsOgbnxcIDsKK+a1iz5jw6h8XCA7CivpgJQ+dMO6fFwgOwor6IC2PnllfFwgOwor5pG4Pm1vfFwgOwor5oupPnrDqXxcIDsKK+iqiT55w7l8XCA7Civku6o+ecOtfFwgOwor5peXPnHDrXxcIDsKK+WlpT7DoG98XCA7Civmj6E+d8OyfFwgOwor54mZPnnDoXxcIDsKK+iZkT5sx5x8XCA7CivmoLg+aMOpfFwgOwor6KGlPmLFrXxcIDsKK+mbhT55xIN8XCA7CivlkIk+asOtfFwgOwor5LqmPnnDrHxcIDsKK+iwtz5nxa18XCA7Civljok+bMOsfFwgOwor5bqPPnjDuXxcIDsKK+mZhD5mw7l8XCA7CivpuKE+aml8XCA7Civlv4Y+ecOsfFwgOwor5oOcPnhpfFwgOwor6ZqUPmfDqXxcIDsKK+aSrT5ib3xcIDsKK+m6vT5txIF8XCA7Civmo4s+ccOtfFwgOwor6IeCPmLDrHxcIDsKK+abvz50w6x8XCA7Civlm7o+Z8O5fFwgOwor6JmOPmjFrXxcIDsKK+Wtoz5qw6x8XCA7CivogZo+asO5fFwgOwor6K+RPnnDrHxcIDsKK+S8ij55aXxcIDsKK+acqz5tw7J8XCA7CivlvIM+ccOsfFwgOwor57OKPmjDunxcIDsKK+aKtT5kxK18XCA7CivpgaU+ZMOtfFwgOwor5pGpPm3Ds3xcIDsKK+W4gT5iw6x8XCA7CivlkK8+ccStfFwgOwor56CBPm3Eg3xcIDsKK+S/lz5zw7p8XCA7CivnnaM+ZHV8XCA7Civpooc+cMWPfFwgOwor6LS4PmLDrHxcIDsKK+WtpD5ndXxcIDsKK+S6iD55w7p8XCA7CivntKs+esStfFwgOwor5L6nPmPDqHxcIDsKK+aLlD5iw6F8XCA7CivluZU+bcO5fFwgOwor5aOBPmLDrHxcIDsKK+mXrT5iw6x8XCA7Civlr7o+c8OsfFwgOwor6YC8PmJpfFwgOwor5ZCTPmjDqHxcIDsKK+mqkT5xw618XCA7Civkv4M+Y8O5fFwgOwor5a6cPnnDrXxcIDsKK+WYmz5txIF8XCA7CivluYU+ZsO6fFwgOwor5rGhPnd1fFwgOwor5omRPnB1fFwgOwor6JCoPnPDoHxcIDsKK+eLsT55w7l8XCA7CivlsoI+ccStfFwgOwor5p6QPnhpfFwgOwor56OoPm3Ds3xcIDsKK+S8jz5mw7p8XCA7Civovp4+Y8OtfFwgOwor5rOlPm7DrXxcIDsKK+m8uz5iw618XCA7CivmhZU+bcO5fFwgOwor5a6/PnPDuXxcIDsKK+eylz5jdXxcIDsKK+S5jD53dXxcIDsKK+aEiD55w7l8XCA7Civpk7o+cHV8XCA7Civnlr4+asOtfFwgOwor6LiPPnTDoHxcIDsKK+S8jT53xa18XCA7CivnsY0+asOtfFwgOwor5YqqPm7FrXxcIDsKK+W9vD5ixK18XCA7Civmgok+eGl8XCA7CivmiY4+emF8XCA7CivoloQ+YsOzfFwgOwor6LedPmrDuXxcIDsKK+aMpD5qxK18XCA7CivlkJA+dMWtfFwgOwor5rSBPmrDrXxcIDsKK+mYuz56xa18XCA7Civpopc+a2V8XCA7CivniKw+cMOhfFwgOwor5YG2PsWPdXxcIDsKK+mhtT55w6h8XCA7CivlnaE+cG98XCA7Civli5I+bMOofFwgOwor5aGUPnTEg3xcIDsKK+aLkj5qw7l8XCA7CivmkpI+c2F8XCA7Civmlrw+ecO6fFwgOwor57uqPnjDuXxcIDsKK+iCmj5kxa18XCA7CivkuY8+ZsOhfFwgOwor5ruRPmfFrXxcIDsKK+Wvgj5qw6x8XCA7CivmibY+ZsO6fFwgOwor5o2VPmLFrXxcIDsKK+mtlD5tw7N8XCA7CivlopM+bcO5fFwgOwor5qy6PnFpfFwgOwor5oKfPnfDuXxcIDsKK+i1qz5ow6h8XCA7CivlsYg+cXV8XCA7CivovrE+csWtfFwgOwor6LW0PmbDuXxcIDsKK+mAkj5kw6x8XCA7CivmtoI+dMO6fFwgOwor5YmyPmdlfFwgOwor5YqxPmzDrHxcIDsKK+Wuhz55xa18XCA7CivmkK0+ZGF8XCA7Civmta4+ZsO6fFwgOwor56ymPmbDunxcIDsKK+iCgz5zw7l8XCA7CivlpbQ+bsO6fFwgOwor5aeKPnrErXxcIDsKK+ennz56dXxcIDsKK+akhT55xK18XCA7CivohZA+ZsWtfFwgOwor55OmPnfEg3xcIDsKK+aTpj5jYXxcIDsKK+i+oz5sw6B8XCA7CivmuKE+ZMO5fFwgOwor6I23PmjDqXxcIDsKK+Wogz53w6F8XCA7CivnvZo+ZsOhfFwgOwor5aeGPm3FrXxcIDsKK+aMqD5haXxcIDsKK+aFiD5jw618XCA7CivmvrM+w6BvfFwgOwor6amxPnF1fFwgOwor56qdPndvfFwgOwor6KOkPmvDuXxcIDsKK+S8sD5ndXxcIDsKK+adnD5kw7l8XCA7Civnjps+bcSDfFwgOwor5p+vPmtlfFwgOwor5ZOAPmFpfFwgOwor6IW5PmbDuXxcIDsKK+WLgz5iw7N8XCA7Civln4M+YWl8XCA7CivnqIA+eGl8XCA7Civljow+eWF8XCA7Civotos+Y8O5fFwgOwor5YKyPsOgb3xcIDsKK+aLqD5ib3xcIDsKK+i4oj50aXxcIDsKK+Wnvz56aXxcIDsKK+m7jj5sw618XCA7Civnpa0+asOsfFwgOwor5ru0PmRpfFwgOwor6KKtPnjDrXxcIDsKK+WxoD50w7p8XCA7CivlkpA+ZsO5fFwgOwor5oOnPmrDuXxcIDsKK+a8oD5tw7J8XCA7Civlloc+bGF8XCA7Civku5Q+eml8XCA7Civloqg+bcOyfFwgOwor5L+xPmp1fFwgOwor5bGBPnDDrHxcIDsKK+WMuT5waXxcIDsKK+aLnz5uxK18XCA7Civmu4s+eml8XCA7CivotLo+aMOofFwgOwor5oqaPmbFrXxcIDsKK+aMlj53YXxcIDsKK+WGjD5jw6h8XCA7Civnhpk+eGl8XCA7Civnoqc+YsOsfFwgOwor55uSPmjDqXxcIDsKK+iwij55w618XCA7Civljac+d8OyfFwgOwor57+8PnnDrHxcIDsKK+a0kj5zxIN8XCA7CivosLE+cMWtfFwgOwor6ZiBPmfDqXxcIDsKK+imhj5mw7l8XCA7Civmirk+bcWPfFwgOwor5Y2iPmLDuXxcIDsKK+eijT7DoGl8XCA7Civni4Q+ZMOtfFwgOwor5oq8PnlhfFwgOwor6Zu+PnfDuXxcIDsKK+aImj5xaXxcIDsKK+W+oT55w7l8XCA7Civphbc+a8O5fFwgOwor6Im+PsOgaXxcIDsKK+WUiT5haXxcIDsKK+aQuj54aXxcIDsKK+ephj5tw7l8XCA7Civpg4E+ecO5fFwgOwor5YKFPmbDuXxcIDsKK+eooz5zdXxcIDsKK+eJpz5tw7l8XCA7CivlhJI+csO6fFwgOwor55ayPnDDrXxcIDsKK+i1jD5kxa18XCA7Civlkqg+eml8XCA7CivlmLs+eGl8XCA7Civngok+bMO6fFwgOwor6L+qPmTDrXxcIDsKK+aKqz5waXxcIDsKK+WJpT5ib3xcIDsKK+W9uT55w6x8XCA7CivpgIY+bsOsfFwgOwor55+uPsSDaXxcIDsKK+WklT54aXxcIDsKK+a2sj55w6h8XCA7Civku4Y+cHV8XCA7CivlvKU+bcOtfFwgOwor5ri0PmvElXxcIDsKK+airz50aXxcIDsKK+iSgj5kw6x8XCA7CivlqLY+ccWtfFwgOwor5byXPmbDunxcIDsKK+eSgz5sw618XCA7CivogqQ+ZnV8XCA7Civpub8+bMO5fFwgOwor5ouTPnTDoHxcIDsKK+WTqT5saXxcIDsKK+aerz5rdXxcIDsKK+WhkT5zw7l8XCA7Civosas+ecO5fFwgOwor5oqRPnnDrHxcIDsKK+iJsz5iw7N8XCA7Civnjrs+Ym98XCA7CivnoLg+esOhfFwgOwor6JGbPmfDqXxcIDsKK+efqT5qxa18XCA7CivohJY+YsOzfFwgOwor6IS+PnDDrXxcIDsKK+i1kD5zw6x8XCA7Civok4Q+eMO5fFwgOwor6bmkPmjDqHxcIDsKK+i+nz5iw6x8XCA7CivmuJQ+ecO6fFwgOwor6Zy4PmLDoHxcIDsKK+WTkT55xIN8XCA7CivmtaY+cMWtfFwgOwor54m6PnhpfFwgOwor5ZCBPnh1fFwgOwor6ZShPnjDrXxcIDsKK+iKmT5mw7p8XCA7Civlk58+ecWNfFwgOwor5oO5PnLElXxcIDsKK+WlkT5xw6x8XCA7CivmhJo+ecO6fFwgOwor5aeoPnnDrXxcIDsKK+mZjD5tw7J8XCA7CivnjI4+eMOtfFwgOwor6aWlPmppfFwgOwor5YeEPnFpfFwgOwor6IadPnhpfFwgOwor5YqIPnBpfFwgOwor5ravPnnDoXxcIDsKK+aIiD5nZXxcIDsKK+WgtT5kxa18XCA7Civpm4c+Z8O5fFwgOwor5rOKPmLDs3xcIDsKK+aSlT5zaXxcIDsKK+WPmT54w7l8XCA7Civmo7U+a2V8XCA7CivmnLQ+cMOyfFwgOwor5rqqPnFpfFwgOwor6I6JPmzDrHxcIDsKK+ejlT5rZXxcIDsKK+aYlD54aXxcIDsKK+ejgT5jw618XCA7Civkv68+ZsWtfFwgOwor5ouCPmbDunxcIDsKK+S/uj7Eg258XCA7CivluJU+cMOgfFwgOwor5ZevPmVufFwgOwor5rO8PnBvfFwgOwor5aaTPmrDrHxcIDsKK+iPqT5ww7p8XCA7CivljpU+Y8OofFwgOwor5L+YPmbDunxcIDsKK+avhT55w6x8XCA7CivkuKs+eWF8XCA7CivnspI+bMOsfFwgOwor56eDPnR1fFwgOwor6IWKPmzDoHxcIDsKK+WAqj5uw618XCA7CivnkZ8+c8OofFwgOwor6bitPnlhfFwgOwor6JycPm3DrHxcIDsKK+Wqsz54w618XCA7Civmrac+ccOtfFwgOwor5LqpPm3FrXxcIDsKK+Wvnj5tw7J8XCA7CivmkIE+Z2V8XCA7Civkv54+ecO6fFwgOwor5LyQPmbDoXxcIDsKK+a8hj5xaXxcIDsKK+aAlj5iw7l8XCA7CivlkL4+d8O6fFwgOwor5ZW4PmthfFwgOwor6IKGPnPDrHxcIDsKK+azoz5xw6x8XCA7CivotYs+ZsO5fFwgOwor54asPmFvfFwgOwor5oSJPnnDunxcIDsKK+i+nD5ndXxcIDsKK+iCjD5qaXxcIDsKK+e+vT55xa18XCA7Civmr5k+YsOsfFwgOwor5ouYPmp1fFwgOwor5ZOHPndhfFwgOwor6YC4PnnDrHxcIDsKK+WNnD5ixY18XCA7Civlr5M+ecO5fFwgOwor6amzPmLDs3xcIDsKK+a1tD55w7l8XCA7CivlkpU+Z3V8XCA7CivmkI8+YsOzfFwgOwor5rigPnHDunxcIDsKK+Wktz55w618XCA7Civmsqo+aMO5fFwgOwor6a2EPnDDsnxcIDsKK+aZsD54aXxcIDsKK+ijlD55w6x8XCA7CivlgJo+ecStfFwgOwor5aGMPnRhfFwgOwor6KOVPnnDuXxcIDsKK+S5sz5yxa18XCA7Civli78+d8O5fFwgOwor5525PmTFrXxcIDsKK+iutj55w6B8XCA7CivlkpY+a2F8XCA7CivlqLE+ecO6fFwgOwor6bimPnlhfFwgOwor5aauPm5pfFwgOwor6KO4PmvDqHxcIDsKK+eUqz5mxa18XCA7CivlnZ0+YsOgfFwgOwor5rKQPm3DuXxcIDsKK+S+rj53xa18XCA7CivlhYA+d8O5fFwgOwor57KePnhpfFwgOwor5rqiPnnDrHxcIDsKK+S5nj5xxK18XCA7CivnvJo+ZsO6fFwgOwor6IiGPnnDunxcIDsKK+WgpD5kaXxcIDsKK+i5hD50w618XCA7Civmsqs+bcOyfFwgOwor5aO2PmjDunxcIDsKK+eijD5sw7l8XCA7CivpqbQ+bMeYfFwgOwor6YSZPmLErXxcIDsKK+Wjsz5rw6l8XCA7CivoiqY+bMO6fFwgOwor6IOzPmdlfFwgOwor55+jPnnErXxcIDsKK+iEij5qxK18XCA7CivovoU+ZsWtfFwgOwor6IaKPmLDs3xcIDsKK+Wegz5sYXxcIDsKK+matj5sw6x8XCA7Civlk44+YWl8XCA7CivlhZQ+dMO5fFwgOwor5Zy+PmrDrXxcIDsKK+WWuz55w7l8XCA7CivlsKw+Z8OgfFwgOwor5ZGQPm7DqHxcIDsKK+iPij5qw7p8XCA7CivlloA+a2F8XCA7Civnk7c+Y8OtfFwgOwor6JyhPmzDoHxcIDsKK+WJgj5qw6x8XCA7CivlupA+bMO6fFwgOwor5aWaPnhpfFwgOwor6JGhPnDDunxcIDsKK+iTpj5tw7J8XCA7CivkuZk+ecStfFwgOwor6K+1PmVpfFwgOwor56WBPnHDrXxcIDsKK+aarj5tw7l8XCA7Civohbs+bsOsfFwgOwor5ZWkPnDDrXxcIDsKK+emvj5ow6l8XCA7Civpk7g+cMO5fFwgOwor6LqvPnF1fFwgOwor6aaAPnnDunxcIDsKK+aiqD5sw618XCA7CivnkKo+ccOtfFwgOwor5YO7PnDDrHxcIDsKK+WMlT5iaXxcIDsKK+mamT54w6x8XCA7Civlhbk+eml8XCA7CivmgKE+ecOtfFwgOwor54+CPmtlfFwgOwor55mMPsOhaXxcIDsKK+iGnD5tw7N8XCA7CivojKg+Y8OtfFwgOwor55arPnnDrHxcIDsKK+axnT5yxa18XCA7CivpnpE+ZMOhfFwgOwor56qfPmt1fFwgOwor56ybPmTDrXxcIDsKK+iUvT5iw6x8XCA7CivljZI+Y8O5fFwgOwor6JeJPmrDrXxcIDsKK+eGhD54w618XCA7Civnu64+ccStfFwgOwor5ZCPPmzDrHxcIDsKK+itrD5ww6x8XCA7Civlqb8+eMO5fFwgOwor6YC+PnnDunxcIDsKK+Wmkj5kw7l8XCA7CivmtYc+w6BvfFwgOwor5ZKqPm1pfFwgOwor56WIPnHDrXxcIDsKK+m7rz7DoG58XCA7Civnprk+ecWtfFwgOwor6Z6NPmFufFwgOwor5ZWqPnBhfFwgOwor57u9PmzDuXxcIDsKK+WPrT5iYXxcIDsKK+WYtj5zaXxcIDsKK+W8ij5iw6x8XCA7Civllbw+dMOtfFwgOwor6YaLPmPDuXxcIDsKK+ecrz5txK18XCA7CivnqL0+aml8XCA7CivlmJ8+ZHV8XCA7Civoopw+d8OgfFwgOwor5Ya2PnnElXxcIDsKK+WQsT56aXxcIDsKK+aDlT50w6x8XCA7CivmoJc+bMOsfFwgOwor5panPmbFrXxcIDsKK+iupT5qaXxcIDsKK+i/hD5xw6x8XCA7CivmvJM+bMOtfFwgOwor5YWuPnhpfFwgOwor5pW3PmZ1fFwgOwor5q+TPnnDuXxcIDsKK+eRnD55w7p8XCA7CivmopM+esStfFwgOwor5pWdPmLDrHxcIDsKK+iisT5mw7p8XCA7CivotY4+Y8OsfFwgOwor6JmPPmzFrXxcIDsKK+WJgz50w6x8XCA7Civps4w+w6FvfFwgOwor5rKDPnfDsnxcIDsKK+aipz53w7p8XCA7Civlp6w+aml8XCA7CivpnJM+bsOtfFwgOwor6JGrPmjDunxcIDsKK+a2lT50w6x8XCA7CivnrIM+ZMWtfFwgOwor5ZKLPnrDqXxcIDsKK+WRlT5vdXxcIDsKK+aXrT54w7l8XCA7CivmjYI+d8WtfFwgOwor5berPnd1fFwgOwor5Z2ePnfDuXxcIDsKK+WriT5qw618XCA7CivnpoQ+bMO5fFwgOwor5ZiYPnh1fFwgOwor6K+sPnfDunxcIDsKK+WLnz5tw7l8XCA7CivlnoQ+YW98XCA7Civoiq0+YmF8XCA7Civlj70+aml8XCA7CivotrQ+cGF8XCA7CivmvKo+eWl8XCA7CivnlqQ+YmF8XCA7CivomoE+ecStfFwgOwor5aiFPnnDoHxcIDsKK+eynz5zw7l8XCA7CivkvLo+Y8OsfFwgOwor6KeRPnHDuXxcIDsKK+aLjj5qxa18XCA7CivlmZw+bHV8XCA7CivokrI+cMO6fFwgOwor5rO7PmJvfFwgOwor5Ye4PnR1fFwgOwor5ayJPnhpfFwgOwor5qCWPnFpfFwgOwor6LeLPmLDoXxcIDsKK+ayrj5qxa18XCA7CivlmI4+Z8OhfFwgOwor5ZKvPmdlfFwgOwor5omSPmJhfFwgOwor5ZyqPmdlfFwgOwor6am5Pmp1fFwgOwor5pqoPmrDrHxcIDsKK+e1rj54w7l8XCA7CivonbQ+aMO6fFwgOwor6bi9PmdlfFwgOwor5Ye5PmFvfFwgOwor5oOaPmh1fFwgOwor5ridPnnDunxcIDsKK+mdoT5tw618XCA7Civmj5Y+eWl8XCA7CivmrrQ+b3V8XCA7CivlmIA+ZMOtfFwgOwor5ZmXPnB1fFwgOwor57yJPnHDrHxcIDsKK+ewhz5jw7l8XCA7Civoir0+ecOhfFwgOwor5oeKPsOgb3xcIDsKK+mlsj5zw6x8XCA7CivpmIA+ZsOhfFwgOwor6LCVPnnDuXxcIDsKK+e8lD5kw6x8XCA7Civluoc+YsOsfFwgOwor5ouHPm3FrXxcIDsKK+WMvz5uw6x8XCA7Civljpg+bMOtfFwgOwor6KKEPsSDb3xcIDsKK+iagj5txIN8XCA7CivnjKw+aMOofFwgOwor5YmUPnRpfFwgOwor5bG/PnnFrXxcIDsKK+W6tT5hbnxcIDsKK+S/kD5sw6x8XCA7Civmi5c+xINvfFwgOwor5a2cPnppfFwgOwor5rqvPnPDuXxcIDsKK+empz54xK18XCA7CivooZk+ecOhfFwgOwor6Z6gPmp1fFwgOwor5YaAPmrDrHxcIDsKK+aZpD53w7l8XCA7CivlpZU+ecOsfFwgOwor5bGJPnTDrHxcIDsKK+aLvT55w6h8XCA7Civor6M+ecOsfFwgOwor56WgPmPDrXxcIDsKK+ewjD5zw7l8XCA7Civmo5g+asOtfFwgOwor5o6zPmzFrXxcIDsKK+eLuD5sw618XCA7Civoi5s+a2V8XCA7CivnsL8+YsO5fFwgOwor5bG5PnnDrHxcIDsKK+egjD5xw6x8XCA7CivoobI+bsOgfFwgOwor5rS8PndhfFwgOwor5qa7PnTDoHxcIDsKK+iZnj55w7p8XCA7Civom5k+d2F8XCA7CivplK8+asO5fFwgOwor556/PmrDuXxcIDsKK+WUrD5oxa18XCA7CivohK8+ZsWtfFwgOwor6K+FPnrFrXxcIDsKK+eJoT5txa18XCA7Civll5I+dMOgfFwgOwor6L6QPmbDunxcIDsKK+Winz54dXxcIDsKK+aBpD54w7l8XCA7CivopKU+csO5fFwgOwor55aZPmdlfFwgOwor5rahPndvfFwgOwor5amiPmLDrHxcIDsKK+a8iT5sw7l8XCA7Civppo0+bcOzfFwgOwor57KkPnnDuXxcIDsKK+eKgT5sw618XCA7CivmsoI+ecOtfFwgOwor5puzPnnDqHxcIDsKK+mFpT5zdXxcIDsKK+mihT5sw7p8XCA7CivpkrU+Ym98XCA7Civom6Q+Z8OpfFwgOwor6ZqYPsOgaXxcIDsKK+eYqT5kw6F8XCA7CivmiK4+bMO5fFwgOwor5rilPnfDsnxcIDsKK+i5iz50w6B8XCA7CivnnaY+bcO5fFwgOwor6ZuMPmPDrXxcIDsKK+i9pz5nw6F8XCA7Civln5Q+cMWtfFwgOwor5rq6Pm7DrHxcIDsKK+idoD5mw7p8XCA7CivlmY4+eWV8XCA7Civoipw+d8O6fFwgOwor576BPmppfFwgOwor5ZKAPmrFrXxcIDsKK+mYnD5mw7l8XCA7CivpnbY+YsSDfFwgOwor5ZGxPmd1fFwgOwor5bynPmjDunxcIDsKK+iFkT5mxa18XCA7CivosJs+ZMOsfFwgOwor54KsPmrDuXxcIDsKK+WZtj5nw6F8XCA7CivolLw+xINpfFwgOwor6Ii2PmLDs3xcIDsKK+a4jj5kw7p8XCA7Civnl54+cMStfFwgOwor5o26Pm7DoHxcIDsKK+aviz53w7p8XCA7CivnsLg+YsWPfFwgOwor5oiKPnfDuXxcIDsKK+iMuT5yw7p8XCA7Civom5A+cXV8XCA7CivpmZs+YsOsfFwgOwor55KnPmLDrHxcIDsKK+WUlD53w7p8XCA7Civnr7E+bMOtfFwgOwor6L+CPnl1fFwgOwor6IWLPnnDqHxcIDsKK+W0jj5xw618XCA7Civmgao+a8OofFwgOwor6L22PnnDrHxcIDsKK+eQtj5ww6F8XCA7CivliYw+bMOhfFwgOwor6LWCPmzDuXxcIDsKK+aVlj7DoW98XCA7CivnkLU+cMOtfFwgOwor5LuEPnrDqHxcIDsKK+a2pD5kw618XCA7Civpgqw+d3V8XCA7Civlnbc+a8SVfFwgOwor6bqTPmzDuXxcIDsKK+ikkD5ow6l8XCA7CivlmpM+Y2F8XCA7Civnu44+ecOsfFwgOwor5ZO6PmLFrXxcIDsKK+WNhT5zw6B8XCA7CivmuI0+esOsfFwgOwor5oifPmrErXxcIDsKK+i3mz5ixY98XCA7Civon4Y+bcOhfFwgOwor6YKRPnnDrHxcIDsKK+eSkD5sw7l8XCA7Civlv5I+dMOofFwgOwor6ZqFPnnDunxcIDsKK+WfoD5iw7l8XCA7CivnrIg+asOtfFwgOwor5qCpPnjFrXxcIDsKK+aCuD5qw6x8XCA7CivmsbI+asOtfFwgOwor552oPm7DrHxcIDsKK+a3pD55dXxcIDsKK+eujT5ndXxcIDsKK+WXoz5zw6x8XCA7CivmjI4+a3V8XCA7CivouJ4+asO5fFwgOwor5oG7PmPDqHxcIDsKK+WUtz55b3xcIDsKK+iglT5yw7p8XCA7CivpnLk+cGl8XCA7CivouYo+eGl8XCA7Civnkp4+cMO6fFwgOwor56ygPmzDrHxcIDsKK+WUpz5qaXxcIDsKK+eluj5xw618XCA7CivpkqA+bsOgfFwgOwor6I+HPmd1fFwgOwor6bilPm91fFwgOwor6ZuzPmzDrHxcIDsKK+amhj55w7p8XCA7Civmkbk+bcOzfFwgOwor5rKTPnTDoHxcIDsKK+eMnT5jw7l8XCA7CivlvKk+bsWtfFwgOwor5pudPnDDuXxcIDsKK+S8jj5qw6x8XCA7CivnioA+eGl8XCA7Civmm6Y+eGl8XCA7Civom4o+Z8WtfFwgOwor6am4PmbDuXxcIDsKK+eZlj5wxK18XCA7Civorrc+bsOofFwgOwor5rikPmLDs3xcIDsKK+i+mD5sw7l8XCA7CivnkKY+ccOtfFwgOwor6JeVPsWPdXxcIDsKK+WXtz7DoW98XCA7Civot7s+aml8XCA7Civlk5I+ZGF8XCA7CivmiIw+eHV8XCA7Civph5w+ZsWtfFwgOwor6I28PnTDunxcIDsKK+eLsD54aXxcIDsKK+eVuD5qaXxcIDsKK+e+sj54aXxcIDsKK+aapz7DoGl8XCA7Civnv4w+ecOsfFwgOwor6JyIPnfDunxcIDsKK+W8iD55w6x8XCA7CivotLs+ecOtfFwgOwor56WAPnPDrHxcIDsKK+eejD5rZXxcIDsKK+Wtmj5mw7p8XCA7Civkup8+asOtfFwgOwor5oSrPnPDuXxcIDsKK+iwmT5hbnxcIDsKK+iBvz55w7l8XCA7Civnhrk+eGl8XCA7CivlmoU+csO6fFwgOwor6ZWAPmTDuXxcIDsKK+WNpD5sxa18XCA7CivnmpE+w6FpfFwgOwor5aijPmTDrHxcIDsKK+WSlD5rxIN8XCA7CivnrY8+ZsOhfFwgOwor55mePmzDoHxcIDsKK+mjkj5zw6B8XCA7CivmqKg+eGl8XCA7Civmu6Q+bMecfFwgOwor6LmZPmPDuXxcIDsKK+iDpT54dXxcIDsKK+S8qz5iw6B8XCA7Civnsb0+esStfFwgOwor5b6ZPnjErXxcIDsKK+WUjz54aXxcIDsKK+iNlD5sw6x8XCA7Civnioo+ZMO6fFwgOwor54WmPnjFrXxcIDsKK+axqT5nxa18XCA7Civmr5c+cMOtfFwgOwor5Z2zPsOgb3xcIDsKK+iEkD5qaXxcIDsKK+Wcgz5wxa18XCA7CivnhqA+ecOsfFwgOwor6bKkPmzErXxcIDsKK+W4mz5iw7N8XCA7Civpqrc+a3V8XCA7Civpq7s+asOsfFwgOwor6KChPmzDrXxcIDsKK+S4lT5waXxcIDsKK+Wdrz5waXxcIDsKK+WmqT53xa18XCA7Civlq6E+ZMOtfFwgOwor5rK9Pmd1fFwgOwor6amtPnnDuXxcIDsKK+aWoT53w7J8XCA7Civllaw+c8OofFwgOwor6IqLPnnDuXxcIDsKK+iYkT5tw7N8XCA7Civlv5E+dMOofFwgOwor54+lPsSVcnxcIDsKK+WWjz5yxJV8XCA7CivlkoI+emF8XCA7Civpgrg+ZMStfFwgOwor5o6sPmrDunxcIDsKK+eshj5iYXxcIDsKK+WArT53b3xcIDsKK+iZrD5qxK18XCA7Civlo5E+aMOofFwgOwor6IeGPnnDrHxcIDsKK+Wtuj5yw7p8XCA7CivppqU+ZsO5fFwgOwor5ZK/PnlpfFwgOwor5L++PmLErXxcIDsKK+azjD5iw6x8XCA7CivpnK0+xINpfFwgOwor6aqlPmd1fFwgOwor5pi1Pm7DrHxcIDsKK+mpvz55w6x8XCA7CivltYc+aml8XCA7CivpmII+aMOpfFwgOwor6aq8PmfDqXxcIDsKK+eJrz5nxa18XCA7CivphLE+cMOzfFwgOwor5rKPPnFpfFwgOwor56i3PmrDrHxcIDsKK+WKvj5ow6l8XCA7CivnjpE+aml8XCA7Civkv58+c8OsfFwgOwor5bOqPnnDuXxcIDsKK+Wajz50w6x8XCA7CivnoL4+bMOsfFwgOwor566VPmppfFwgOwor5by8PmLDrHxcIDsKK+iAmT5iw6B8XCA7CivplKI+Z8O5fFwgOwor5bKcPmJhfFwgOwor5ZSwPmrDrXxcIDsKK+iAtz5kYXxcIDsKK+iPoD5ib3xcIDsKK+WZvD5waXxcIDsKK+ivgz5oZXxcIDsKK+WttT5mdXxcIDsKK+mltT7ElXJ8XCA7Civmv6E+csO6fFwgOwor56a6PnnDunxcIDsKK+idjD5rZXxcIDsKK+a2uD5ow6l8XCA7Civnl7k+YsOsfFwgOwor5rCoPmFufFwgOwor5omIPmjDuXxcIDsKK+a3hT54aXxcIDsKK+mYlj5nw6l8XCA7Civlt7M+c8OsfFwgOwor5aqyPnDDrHxcIDsKK+mXvj5sx5h8XCA7Civms5c+c8OsfFwgOwor6am3PnPDrHxcIDsKK+mUuT5sw6x8XCA7CivmgKk+bsOtfFwgOwor5b2dPnnDrXxcIDsKK+aOlj55ZXxcIDsKK+a3hz5xw618XCA7Civor4s+ZMStfFwgOwor5bKWPnF1fFwgOwor5oapPnHDrHxcIDsKK+aIvj5sw6x8XCA7Civll6w+aGV8XCA7Civon4s+eGl8XCA7CivnmKA+asOtfFwgOwor5qmYPmrDunxcIDsKK+a6pT5wxa18XCA7CivosJI+dMOtfFwgOwor5oGjPnrDrHxcIDsKK+injj55w7p8XCA7Civmqbk+bMWtfFwgOwor5ZGTPnnDrHxcIDsKK+aksD55w6l8XCA7Civop4o+Z8WtfFwgOwor5ZedPmfDqXxcIDsKK+WUoj5qaXxcIDsKK+WMnT56YXxcIDsKK+iwgD55w7p8XCA7Civnl6I+bMOsfFwgOwor552HPmTDrHxcIDsKK+eGqD55w7l8XCA7CivniY0+ZMO6fFwgOwor5Y+1PnDFj3xcIDsKK+eznD5tw618XCA7Civll5E+a8OofFwgOwor5ZezPsOgaXxcIDsKK+eRmj5ow7p8XCA7Civnmpk+eGl8XCA7CivmjbE+w6FpfFwgOwor55uCPnnDunxcIDsKK+WjuT55aXxcIDsKK+mFtj5sw618XCA7CivooaI+ccO6fFwgOwor5p2ePnHErXxcIDsKK+e/sT7DoW98XCA7Civnj4A+cMOyfFwgOwor5bKMPmrDrXxcIDsKK+WBiD5qw6x8XCA7Civor6k+eMWtfFwgOwor6ICGPnHDrXxcIDsKK+eOuj54xK18XCA7CivnlrU+Y2l8XCA7Civov6Q+ecOtfFwgOwor57+fPmTDrXxcIDsKK+amiD5sx5h8XCA7CivpgaI+dMOgfFwgOwor6IyJPm3DsnxcIDsKK+mFlz54w7l8XCA7Civmo6M+ZMOsfFwgOwor57qlPmdlfFwgOwor6JecPmzDrXxcIDsKK+ektD5iw7N8XCA7Civmu5M+esStfFwgOwor6ZyBPmrDrHxcIDsKK+m5gj5sw618XCA7Civnvbk+bMOtfFwgOwor5aaqPnnDuXxcIDsKK+WkmT5zw7l8XCA7CivlspA+ccOtfFwgOwor5ZS/Pmh1fFwgOwor5ZKdPnNpfFwgOwor6Z2lPnnDqHxcIDsKK+m5mD5nw7p8XCA7Civmj4Q+ecO6fFwgOwor6bmJPnfFrXxcIDsKK+eLmT5qdXxcIDsKK+eykT5iYXxcIDsKK+Wcuz5xw618XCA7CivlprI+ZMOhfFwgOwor6YOmPmzDrHxcIDsKK+iutD5vdXxcIDsKK+W/pD53xa18XCA7Civpvow+d8OyfFwgOwor6bmtPmzDuXxcIDsKK+WSrT5qaXxcIDsKK+S9mj55w6x8XCA7CivoubQ+Y8O5fFwgOwor6LaEPmp1fFwgOwor6YKLPmzDoXxcIDsKK+Wukz5tw6x8XCA7Civmj7Y+ecOpfFwgOwor57KVPnDDsnxcIDsKK+mBqD7DoW98XCA7CivljI0+cMO6fFwgOwor6L+pPsSVcnxcIDsKK+WZqz55aXxcIDsKK+W8iz55w6x8XCA7Civkv44+esWtfFwgOwor6ZOCPmLDs3xcIDsKK+mqmz7DoG98XCA7Civpkr4+aMOpfFwgOwor5ZiBPnFpfFwgOwor6L2yPmtlfFwgOwor5L+aPmzErXxcIDsKK+mSuT5iw6F8XCA7Civpnbw+ZMOhfFwgOwor6IW0PnnDunxcIDsKK+aqhD54w618XCA7CivojoY+cMO6fFwgOwor5rGoPm3DrHxcIDsKK+aHvz55w6x8XCA7CivlgJw+dMOsfFwgOwor6JuGPnF1fFwgOwor6ZOsPmfDqXxcIDsKK+mijD5nw6l8XCA7CivotLI+YsOsfFwgOwor6JOfPmrDrHxcIDsKK+m5nD5tw7l8XCA7Civovo4+eml8XCA7Civog7A+ecOtfFwgOwor6Ie+PnnDunxcIDsKK+azuD5sw7p8XCA7Civpj5Y+w6FvfFwgOwor5ZyEPnnFrXxcIDsKK+mTpD5oYXxcIDsKK+mjkz5qw7l8XCA7Civpgb0+asO5fFwgOwor5rGQPnhpfFwgOwor6aW9PmLDs3xcIDsKK+WAqD5qw7l8XCA7CivorqM+ZsO5fFwgOwor5qKPPmfDuXxcIDsKK+elmz5xdXxcIDsKK+aXjj5uxK18XCA7CivmoaA+ecOhfFwgOwor5reEPnppfFwgOwor55WmPnHDrXxcIDsKK+ijvj5qdXxcIDsKK+WxkD5qaXxcIDsKK+aRgT7DqG58XCA7Civojbs+ZMOtfFwgOwor5rSxPsSVcnxcIDsKK+ijqD5iw6x8XCA7CivnjKI+aMO6fFwgOwor6JK6PmrDrXxcIDsKK+eDrz54aXxcIDsKK+i2vz5zw6B8XCA7Civml5Y+ecStfFwgOwor6I2gPnHDrXxcIDsKK+WMkD5mw7p8XCA7Civpsqs+asOsfFwgOwor57+VPnjDrHxcIDsKK+e8oj55w6x8XCA7Civpqoo+bMOtfFwgOwor5ZurPmjDunxcIDsKK+afoj5kxK18XCA7Civnlb8+aml8XCA7Civpk7E+ecStfFwgOwor57i7Pm3DrXxcIDsKK+m+hz56aXxcIDsKK+i4vT5qxa18XCA7CivopKE+ZGF8XCA7CivnqqA+a2V8XCA7Civoj48+Z2V8XCA7CivoiLg+Z8SVfFwgOwor55yZPnnDrXxcIDsKK+ebsT54dXxcIDsKK+eFnD55w7l8XCA7Civmnbc+cMOhfFwgOwor6JGpPnBhfFwgOwor6IO6PsOgbnxcIDsKK+mrrT56aXxcIDsKK+m4qj5ndXxcIDsKK+aXrz5sw6F8XCA7Civml64+eMO5fFwgOwor55ClPmjFrXxcIDsKK+m6kj5xw618XCA7CivnoKU+ZMStfFwgOwor6J2uPmbDuXxcIDsKK+eYgD55dXxcIDsKK+iQuD55w7p8XCA7Civomp0+Y8OsfFwgOwor5p6HPnDDrXxcIDsKK+WTlD5iw6x8XCA7CivmjLk+ecOsfFwgOwor5pabPmjDunxcIDsKK+enoz5tw7J8XCA7CivnpZw+aMO5fFwgOwor5pOYPmLDsnxcIDsKK+eKhD5qaXxcIDsKK+i9sT5rdXxcIDsKK+aEjj5iw6x8XCA7CivllLM+bMOsfFwgOwor5rCQPmRpfFwgOwor56CSPnBpfFwgOwor5rKkPsOydXxcIDsKK+awnz5mw7p8XCA7Civpuos+bcOtfFwgOwor55eNPnnDrXxcIDsKK+mCuj55w6h8XCA7Civnja0+dMSDfFwgOwor6buiPnF1fFwgOwor5r2ePmzDuXxcIDsKK+aYsT55w7l8XCA7CivovbM+bMO6fFwgOwor5aiyPndhfFwgOwor6JCLPnFpfFwgOwor6LCYPnppfFwgOwor57G0PmTDrXxcIDsKK+eWvT5qdXxcIDsKK+mijT5rZXxcIDsKK+ehkj54aXxcIDsKK+mzjT5xw618XCA7Civmtqo+ZsO6fFwgOwor566UPmLDs3xcIDsKK+m5hD5ow7p8XCA7Civog6o+bMO6fFwgOwor5bytPm3ErXxcIDsKK+aAhD7DsnV8XCA7CivojK8+ZsO6fFwgOwor6YaNPnTDrXxcIDsKK+mUgj5sxK18XCA7CivnnaU+YsOsfFwgOwor55OvPm91fFwgOwor6I6FPmzDrHxcIDsKK+iwnz5tw7N8XCA7Civorqs+ccOsfFwgOwor57+zPnnDrHxcIDsKK+eZrz5xw7p8XCA7Civpkrg+YsOzfFwgOwor55ymPnrDrHxcIDsKK+alqz5qw618XCA7CivlqIw+bMStfFwgOwor6YCmPmzErXxcIDsKK+W5hD53w7J8XCA7CivkurM+YsOzfFwgOwor6IKEPnnDrHxcIDsKK+egnT5mw6F8XCA7Civpqpw+w6FvfFwgOwor5Y2fPmLFrXxcIDsKK+S9tj5qw618XCA7CivpvoM+asWtfFwgOwor6JyuPnnDuXxcIDsKK+asuT55aXxcIDsKK+aZlD55ZXxcIDsKK+e8mz5yw7l8XCA7CivolLo+ZsO5fFwgOwor6K+CPmfFrXxcIDsKK+e+vz55w6x8XCA7Civom44+bMOsfFwgOwor5qaYPmrFrXxcIDsKK+e6sD5ixK18XCA7CivpgIs+YnV8XCA7Civlh6s+ZsO6fFwgOwor6b6LPnHFrXxcIDsKK+icpT54aXxcIDsKK+eXvD5nw7l8XCA7CivprLs+ecO5fFwgOwor5r+uPnDDunxcIDsKK+a6pz5sw6x8XCA7CivpmJI+ccO5fFwgOwor6bupPmTDunxcIDsKK+mGkD5ow7p8XCA7CivooLk+ZMO5fFwgOwor5oKMPnTDrHxcIDsKK+mltD55w618XCA7Civmkrg+bMWtfFwgOwor6Jy0PnnDrHxcIDsKK+mSnD5qw7l8XCA7Civmvqc+bMStfFwgOwor5oKSPnnDrHxcIDsKK+eMlT5tw618XCA7Civokbo+ccOsfFwgOwor57ONPmPDrXxcIDsKK+eWtD5rZXxcIDsKK+e7lD5rw7l8XCA7CivmgIM+d8WtfFwgOwor5ZGSPmbFrXxcIDsKK+iovj56aXxcIDsKK+mhuD5kw7p8XCA7CivlrLc+bWF8XCA7CivmvK8+dMOgfFwgOwor5rqYPmvDqHxcIDsKK+iTvz5zw7l8XCA7Civoi7s+ZsO6fFwgOwor5ZyuPnDErXxcIDsKK+ivkj55w618XCA7CivkvKI+ecOhfFwgOwor6bKIPmzDunxcIDsKK+ervT55w7p8XCA7Civom7M+c2l8XCA7Civmm7c+aMOpfFwgOwor5bCVPmfEg3xcIDsKK+aAmz5kw6F8XCA7CivmgJk+aMO5fFwgOwor5ouKPmbFrXxcIDsKK+mZgj5ww618XCA7CivnmIw+bMOgfFwgOwor6bmMPmFufFwgOwor6ZKaPmLDuXxcIDsKK+eRtz7DoGl8XCA7Civlur4+ecWtfFwgOwor5ZaxPmzDrXxcIDsKK+iTlj5iw6x8XCA7CivogKY+xY91fFwgOwor6bi2PnNpfFwgOwor6ZK0Pmd1fFwgOwor5aajPmLErXxcIDsKK+W0rj5nw7l8XCA7Civlspk+w6BvfFwgOwor6YaaPm3DrXxcIDsKK+evpj5iw6x8XCA7Civonq8+w6FvfFwgOwor6JyJPmbDunxcIDsKK+icij5sw618XCA7Civnl5Y+cGl8XCA7Civohog+Z8OpfFwgOwor6L2+PnnDoHxcIDsKK+augT5tw7J8XCA7CivnjZI+w6FvfFwgOwor5p6lPmzDrHxcIDsKK+inmj5ndXxcIDsKK+e2pj5xw618XCA7Civpuaw+ecO5fFwgOwor56iePmtlfFwgOwor5569PmfFrXxcIDsKK+i1gD56aXxcIDsKK+i0vT5nxa18XCA7CivlpqQ+ecO6fFwgOwor5YKIPmzDrHxcIDsKK+avlj5iw6x8XCA7CivpuoI+asStfFwgOwor6Ya0PmzErXxcIDsKK+mUsT56aXxcIDsKK+i+gj5sw7l8XCA7Civpqb0+bsO6fFwgOwor5aqqPsSDb3xcIDsKK+i/kz55w6B8XCA7CivngZ4+YsOgfFwgOwor6Ji8Pm3DrXxcIDsKK+S7tT53xa18XCA7Civnk6A+aMO5fFwgOwor5qykPnnDunxcIDsKK+Wxoz54xK18XCA7CivmuIw+bMO5fFwgOwor5bKYPnDDrXxcIDsKK+iWjz55w6x8XCA7Civoi5w+bcO5fFwgOwor6IqoPmppfFwgOwor5Y62PnNpfFwgOwor54+QPmbDoHxcIDsKK+m7pz5sw618XCA7Civoubw+cMO6fFwgOwor6Le4PmLDrHxcIDsKK+esuD5wxY98XCA7CivnrI8+aMO5fFwgOwor6JuEPmd1fFwgOwor6JqNPmLErXxcIDsKK+ipiD5sw6x8XCA7CivnoqE+ZMO6fFwgOwor56WiPm3DrXxcIDsKK+eFsz5ow7p8XCA7CivpvZE+aml8XCA7Civmr4I+Z8WtfFwgOwor54m+PnfDunxcIDsKK+e8gT5qaXxcIDsKK+Wtsz56aXxcIDsKK+mYiz54w6x8XCA7Civolpw+YsOsfFwgOwor6IujPmrDuXxcIDsKK+iutT5qw7l8XCA7Civkuak+aml8XCA7Civpkqg+d8O5fFwgOwor6La6PmZ1fFwgOwor55iXPnnDrHxcIDsKK+epkT5zw6h8XCA7Civpk4s+YsOsfFwgOwor56KbPnHDrHxcIDsKK+aIvT5ow7l8XCA7CivmobQ+ZsO6fFwgOwor5qGJPmFufFwgOwor5a+kPnfDuXxcIDsKK+a1oD54aXxcIDsKK+WlgT5kaXxcIDsKK+iNuD5iw618XCA7CivlnK8+ecOtfFwgOwor55+9PnhpfFwgOwor57+KPnnDrHxcIDsKK+e9tD5ww618XCA7CivotY0+aml8XCA7Civmrps+asOtfFwgOwor5qSQPmp1fFwgOwor54yXPnlpfFwgOwor5ba3PnnDrXxcIDsKK+WVtT5ixY18XCA7CivojpI+asWtfFwgOwor6byZPnDDrXxcIDsKK+WfuD55w6x8XCA7Civlg5Y+eGl8XCA7CivkvaQ+d8SDfFwgOwor6ayyPmfDqXxcIDsKK+WDsz5zw7l8XCA7Civpq4A+YsOsfFwgOwor6Y+KPsOhb3xcIDsKK+m6uD5mdXxcIDsKK+icnj5xw618XCA7CivnmJA+ecWtfFwgOwor57qhPnl1fFwgOwor5auSPsOgaXxcIDsKK+iYlj5iw6x8XCA7Civok6A+bMOtfFwgOwor5YuWPnjDuXxcIDsKK+S8mz55xa18XCA7CivpurQ+ccO6fFwgOwor56qzPnnFrXxcIDsKK+eZlD55w6x8XCA7CivpuZo+eml8XCA7Civnp60+esStfFwgOwor6ZWSPnnDrHxcIDsKK+m7uz5mw7p8XCA7Civpobw+eMO5fFwgOwor5rSOPmrDrHxcIDsKK+WyiD55w6F8XCA7CivlkKE+YsStfFwgOwor6I+wPmd1fFwgOwor6JCBPnHDrXxcIDsKK+iOnD5kw618XCA7CivlnKw+d3V8XCA7CivliLM+a3V8XCA7CivmjYw+YmF8XCA7Civpm44+anV8XCA7Civnvp0+ZGl8XCA7CivnrKU+c8OsfFwgOwor6bmIPnTDrXxcIDsKK+eHoD55w7l8XCA7CivmiKI+asOtfFwgOwor5q6CPmPDunxcIDsKK+aknz5kw7p8XCA7CivpqpA+ccOtfFwgOwor5am6PnfDuXxcIDsKK+W6kT53xa18XCA7CivloI0+dMO5fFwgOwor5YqsPnHDunxcIDsKK+mDqz5ww618XCA7CivpmJ0+ZsO5fFwgOwor5YiIPnnDrHxcIDsKK+inqz5zw7l8XCA7CivnrZo+YsOsfFwgOwor56yEPmppfFwgOwor55emPnfDuXxcIDsKK+mViT5nw6l8XCA7Civpk7U+YW58XCA7CivmsKk+ecOgfFwgOwor6aqSPmvDqHxcIDsKK+Wslj5iw6x8XCA7Civlp5I+c8OsfFwgOwor5r+ePnDDrHxcIDsKK+axlD5xw6x8XCA7CivlvoI+Y8O6fFwgOwor5ZeJPnPDuXxcIDsKK+aPoD55w6B8XCA7Civok7A+eMStfFwgOwor6JG4PnjErXxcIDsKK+iPnz50w7l8XCA7Civlnq0+d8O5fFwgOwor5Z6hPmbDoXxcIDsKK+iwoT5zw7l8XCA7Civompw+ecOhfFwgOwor6LaRPmNpfFwgOwor57O4Pm3DrHxcIDsKK+eWiz5wxK18XCA7CivnlqA+bMOsfFwgOwor6bmVPmjDunxcIDsKK+m4rD5sw7p8XCA7CivplbE+ecOsfFwgOwor56GWPsOhaXxcIDsKK+awqj5rw6h8XCA7CivmoIw+bMO6fFwgOwor55CKPnnDqXxcIDsKK+e6nz5zaXxcIDsKK+WtpT5uw7p8XCA7Civov64+esOpfFwgOwor5ru5Pmh1fFwgOwor5rq9PnLDuXxcIDsKK+aAvz55w6x8XCA7Civojqk+ZsO6fFwgOwor6I2cPmLDrHxcIDsKK+iLtD5qdXxcIDsKK+Wehj5sw7p8XCA7CivlipM+ecOsfFwgOwor6ZSRPnRpfFwgOwor6auRPmTDunxcIDsKK+innD56aXxcIDsKK+i3vT5qw6x8XCA7Civphq8+eGl8XCA7CivphaQ+Z3V8XCA7Civnsp0+bMOsfFwgOwor5pWJPm3ErXxcIDsKK+ewjz5sw7l8XCA7CivnraI+cMOhfFwgOwor6JqoPmbDunxcIDsKK+iZrj5qaXxcIDsKK+enlT5ixK18XCA7CivplZ0+ZMOtfFwgOwor6ZKvPmLEg3xcIDsKK+ebjT5ow6l8XCA7CivnorI+ZMOsfFwgOwor54OAPmh1fFwgOwor5qy3PnhpfFwgOwor6IeMPmfFrXxcIDsKK+ackD5xw7p8XCA7Civmqpc+YsOyfFwgOwor5qaJPmrFrXxcIDsKK+agjj5sw6x8XCA7Civnkqk+ccO6fFwgOwor55CaPmp1fFwgOwor57uCPmbDunxcIDsKK+Wrqz5tw7N8XCA7Civmta8+d8O6fFwgOwor6aWrPnnDuXxcIDsKK+eMgT5sw6x8XCA7Civll40+bcOhfFwgOwor6JWyPnHDrXxcIDsKK+iUjD5zw7l8XCA7CivojZE+dMOtfFwgOwor5aCAPmt1fFwgOwor6K+2PmFpfFwgOwor6bK1Pm7DrXxcIDsKK+iylD5ww618XCA7Civot5c+ZnV8XCA7Civntq4+ccStfFwgOwor57+uPmjDqXxcIDsKK+esqz56xK18XCA7CivonoU+eGl8XCA7CivogbE+w6FvfFwgOwor56qsPnnDunxcIDsKK+eWrD5sw6x8XCA7Civpk5I+w6hyfFwgOwor572YPmbDunxcIDsKK+ejsj5xw7p8XCA7Civop7M+aMO6fFwgOwor5rCGPnDFrXxcIDsKK+awhz5sxa18XCA7Civnios+asO5fFwgOwor6KeMPmTDrXxcIDsKK+aYgz56w6h8XCA7Civmp6A+cWl8XCA7CivmnYw+d8O5fFwgOwor57yhPmzDrXxcIDsKK+e7qD50w618XCA7Civmurs+dGF8XCA7CivmtpE+c8O5fFwgOwor5rO6PmLDs3xcIDsKK+axnD5zw6x8XCA7Civnirg+bcOgfFwgOwor5bWrPnppfFwgOwor5ZeMPnnDrHxcIDsKK+aTlz5wxK18XCA7CivolJ8+Y8O5fFwgOwor6IuhPnnErXxcIDsKK+iKsD5qw6x8XCA7Civpg5s+ZsO6fFwgOwor5L+jPnnFrXxcIDsKK+S8sj5uxK18XCA7Civku7M+cMStfFwgOwor6byvPnfDunxcIDsKK+mtgz5iw6F8XCA7Civpq4I+Z8OpfFwgOwor6bK0PmfDuXxcIDsKK+myhT5ib3xcIDsKK+mbqT55w7p8XCA7Civosoo+bcOyfFwgOwor6LijPmLDs3xcIDsKK+mGtT5qw7l8XCA7CivnsqI+eml8XCA7CivopZ4+YsOsfFwgOwor6IiEPnjDrHxcIDsKK+iIgT55w7p8XCA7CivnrKo+ZMOhfFwgOwor6Ju0PnHDrXxcIDsKK+iAnD5zw6x8XCA7Civoo7w+dMOsfFwgOwor56m4PnjDrHxcIDsKK+eapD5ww7N8XCA7CivplYY+bcOyfFwgOwor6ZSUPmp1fFwgOwor6ZO3PnLFrXxcIDsKK+mTjT5waXxcIDsKK+mTjD5uxK18XCA7Civpkrw+bcO5fFwgOwor6ZKLPnDDsnxcIDsKK+eVgD5iw6x8XCA7CivnnI0+b3V8XCA7Civpu7w+ZsWtfFwgOwor56CRPnnDoHxcIDsKK+aFnT50w6h8XCA7CivohJI+bcStfFwgOwor54m/PmfDuXxcIDsKK+eUkz5ww6x8XCA7Civmp60+Y8O5fFwgOwor5bGmPmrDuXxcIDsKK+mAlj50w6x8XCA7Civov5U+d8O5fFwgOwor5ruXPmLErXxcIDsKK+a0sz5yw7l8XCA7CivmtKs+eMO5fFwgOwor5bqzPmLDrHxcIDsKK+Wxuj5xxK18XCA7CivluZ4+ZsO6fFwgOwor5bi7PnrDqXxcIDsKK+WTnD5qw6x8XCA7Civmj54+xINufFwgOwor6JWWPnHDunxcIDsKK+iTkD5yw7l8XCA7Civoj7k+anV8XCA7Civln68+xINufFwgOwor5Z+aPmLDuXxcIDsKK+masD54w618XCA7CivpmKI+d8O5fFwgOwor5L2+PnnDrHxcIDsKK+WYjz5nxa18XCA7Civmn5I+cWl8XCA7CivluYI+bcOsfFwgOwor6aq2PmTErXxcIDsKK+mzjj50w6B8XCA7Civps4Y+ZsO5fFwgOwor6bK7PnppfFwgOwor6bKhPmzDrXxcIDsKK+mLiD53w7l8XCA7CivoiL4+eGl8XCA7CivoiK0+YsStfFwgOwor6IijPnnErXxcIDsKK+eupj56w6l8XCA7Civombw+Z8OofFwgOwor6JmNPmh1fFwgOwor6ICxPm3DsnxcIDsKK+eYmD5sx5h8XCA7CivpuLg+w6lyfFwgOwor6ZWOPm7DoXxcIDsKK+mSsj5nw7p8XCA7Civpkq0+cMOhfFwgOwor56WTPmbDunxcIDsKK+iniz54w618XCA7CivmmaE+YnV8XCA7Civovbk+bMOsfFwgOwor5q6qPnnDrHxcIDsKK+e8gj5rw6h8XCA7Civlq6A+bMOtfFwgOwor6Im0PmbDunxcIDsKK+mArz5sw7l8XCA7Civmvow+c2l8XCA7Civmu48+ZsWtfFwgOwor5buSPsOhb3xcIDsKK+W6gD5wxK18XCA7CivnjIo+bsOtfFwgOwor54u0PmLDrHxcIDsKK+eKtD7DoG58XCA7Civls4Q+ecOsfFwgOwor5bK1PmjDuXxcIDsKK+WYpz5tw6x8XCA7CivlkYs+ZnV8XCA7CivomKc+ccO6fFwgOwor6I+UPmbDunxcIDsKK+iKtD53w7l8XCA7CivloaU+Z8OpfFwgOwor5Z+kPnDDrXxcIDsKK+WdrT5uw618XCA7Civlh7U+cXV8XCA7Civlk78+Z8SVfFwgOwor6K+OPnHDuXxcIDsKK+WFlT5zw6x8XCA7Civku6E+ecOsfFwgOwor6LWcPnrDqXxcIDsKK+m+pT55w7l8XCA7CivpvqI+aMOpfFwgOwor6b6YPnTDoHxcIDsKK+m+jj5rw6h8XCA7CivpvoE+aMOpfFwgOwor6b2+PnnDoHxcIDsKK+m9uD55w6x8XCA7Civpvbc+d8OyfFwgOwor6b21PsOzdXxcIDsKK+m9sj5xxa18XCA7Civpva8+bsOtfFwgOwor6b2uPnnErXxcIDsKK+m9rD55xa18XCA7CivpvZ8+asWtfFwgOwor6b2cPnppfFwgOwor6b2WPnnDoXxcIDsKK+m9lT5ow6l8XCA7CivpvY8+aml8XCA7CivpvY4+aml8XCA7CivpvY0+ccOtfFwgOwor6b2MPmrDrHxcIDsKK+m9ij5xw618XCA7CivpvYQ+aml8XCA7CivpvYM+Z8OpfFwgOwor6b2APnfDuXxcIDsKK+m8vz53dXxcIDsKK+m8tz54aXxcIDsKK+m8tj5zaXxcIDsKK+m8tT50w7p8XCA7CivpvLM+asO6fFwgOwor6bypPnHDunxcIDsKK+m8pT5iw6F8XCA7CivpvJw+ccOsfFwgOwor6byUPmfFrXxcIDsKK+m8kj56aXxcIDsKK+m8jz5tw6x8XCA7CivpvIo+YsOsfFwgOwor6byHPsOhb3xcIDsKK+m8gT5xw7l8XCA7CivpvIA+Y8O5fFwgOwor6bu4PmzDunxcIDsKK+m7tz5kw7p8XCA7Civpu7M+eWl8XCA7Civpu6w+w6BufFwgOwor6bumPnnDuXxcIDsKK+m7nz55aXxcIDsKK+m7mT5tw7J8XCA7Civpu5Y+eMOsfFwgOwor6buTPnnDrHxcIDsKK+m6vD5txJN8XCA7Civpurk+ccO6fFwgOwor6bqxPmZ1fFwgOwor6bqvPnHDunxcIDsKK+m6rj5xw7l8XCA7Civpuqw+ZnV8XCA7Civpuqk+ZnV8XCA7Civpuqc+Z2V8XCA7CivpuqQ+Y3V8XCA7CivpuqE+aml8XCA7Civpupw+bMOsfFwgOwor6bqbPm3DrXxcIDsKK+m6mD5ow6l8XCA7Civpupc+bMOtfFwgOwor6bqRPm7DrXxcIDsKK+m6jD53w7p8XCA7Civpuoo+bcOtfFwgOwor6bqEPmN1fFwgOwor6bqBPmN1fFwgOwor6bm1PmzFrXxcIDsKK+m5pT55aXxcIDsKK+m5oz5ow7l8XCA7CivpuaI+bsOsfFwgOwor6bmhPmrDrXxcIDsKK+m5nT5uw6x8XCA7CivpuZk+Y8OtfFwgOwor6bmWPmjDqXxcIDsKK+m5lD5zw7l8XCA7CivpuYY+ecO5fFwgOwor6bmBPmLDs3xcIDsKK+m5gD53w7p8XCA7CivpuLI+ccO6fFwgOwor6bidPmzDrXxcIDsKK+m4lj5ow6h8XCA7CivpuJU+bMO6fFwgOwor6biSPnnDunxcIDsKK+m4kD5kw618XCA7CivpuI0+bcOtfFwgOwor6biLPmjDuXxcIDsKK+m4ij5ww6x8XCA7CivpuIg+ecOofFwgOwor6biGPnnDunxcIDsKK+m4hD5qw618XCA7CivpuIM+YsOsfFwgOwor6biCPnFpfFwgOwor6be/PnDDrHxcIDsKK+m3vj55w6x8XCA7Civpt7o+bMO5fFwgOwor6be4PnnDuXxcIDsKK+m3tT50w7p8XCA7Civpt6s+c8O5fFwgOwor6bepPmLDrHxcIDsKK+m3pz55w6x8XCA7Civpt6U+c2l8XCA7Civpt6E+d8O6fFwgOwor6begPnnDunxcIDsKK+m3nT5iw6x8XCA7Civpt5c+b3V8XCA7Civpt5Y+eWl8XCA7Civpt5Q+w6FvfFwgOwor6beRPmzDrHxcIDsKK+m3jD5txIN8XCA7Civpt4s+dMO6fFwgOwor6beKPm7DrHxcIDsKK+m3iT50aXxcIDsKK+m3iD50aXxcIDsKK+m3hT5sw6x8XCA7Civpt4Q+aml8XCA7Civpt4E+bsOsfFwgOwor6beAPmPDrXxcIDsKK+m2vz56aXxcIDsKK+m2vj5jw618XCA7Civptrs+aMO6fFwgOwor6ba6PmrDrXxcIDsKK+m2tD5ow6h8XCA7Civptq4+Z8O5fFwgOwor6baqPmrDunxcIDsKK+m2qT53w7l8XCA7CivptqY+aMO6fFwgOwor6bahPmjDqXxcIDsKK+m2nz50w7p8XCA7Civptp0+ZsO6fFwgOwor6baZPnTDrXxcIDsKK+m2mD5ow7p8XCA7Civptpc+dMOtfFwgOwor6baVPmFufFwgOwor6baPPmppfFwgOwor6baMPnF1fFwgOwor6baLPmp1fFwgOwor6baIPnFpfFwgOwor6baFPnppfFwgOwor6baDPnnDrHxcIDsKK+m2gj55w6x8XCA7CivptoA+ccOtfFwgOwor6bW6PnnDqHxcIDsKK+m1uT5sw618XCA7Civptbg+ccOtfFwgOwor6bW2PnlhfFwgOwor6bW1PnTDuXxcIDsKK+m1tD5qw7p8XCA7CivptbE+bMO5fFwgOwor6bWqPmFufFwgOwor6bWpPmbDunxcIDsKK+m1oT53xa18XCA7CivptaA+Z8WtfFwgOwor6bWcPnTDrXxcIDsKK+m1mj50w7p8XCA7CivptZk+asO6fFwgOwor6bWXPnRpfFwgOwor6bWWPmLDrHxcIDsKK+m1lT5iaXxcIDsKK+m1kz5iw7N8XCA7CivptZI+ecO5fFwgOwor6bWPPmJ1fFwgOwor6bWNPmLFrXxcIDsKK+m1jD55w7p8XCA7CivptYs+asOsfFwgOwor6bS/PmdlfFwgOwor6bS9PnLDunxcIDsKK+m0uj55w618XCA7CivptLY+asOtfFwgOwor6bSxPsOgaXxcIDsKK+m0rz7DqXJ8XCA7CivptK4+d3V8XCA7CivptKg+eWF8XCA7CivptKU+ecO5fFwgOwor6bSjPmd1fFwgOwor6bShPmp1fFwgOwor6bSdPnHDunxcIDsKK+m0nD56aXxcIDsKK+m0mj5nZXxcIDsKK+m0lz5sw6x8XCA7CivptJQ+ZsO6fFwgOwor6bSRPm7DunxcIDsKK+m0jz50w6h8XCA7CivptI4+b3V8XCA7CivptIk+eWF8XCA7CivptIQ+cGl8XCA7Civps78+ecO5fFwgOwor6bO6PmZ1fFwgOwor6bO4PmjDuXxcIDsKK+mzrD5mw7p8XCA7Civps6o+YsWtfFwgOwor6bOoPmzDrHxcIDsKK+mzpz5mw7p8XCA7Civps6Y+ecStfFwgOwor6bOiPmzErXxcIDsKK+mzoD5ow7l8XCA7Civps5s+eMOtfFwgOwor6bOTPmzDqHxcIDsKK+myvj5iw6x8XCA7Civpsrk+Yml8XCA7Civpsq8+ccOtfFwgOwor6bKaPmrDrHxcIDsKK+mylT7DqXJ8XCA7Civpso8+cGl8XCA7Civpsow+YsOzfFwgOwor6bKLPmLDoHxcIDsKK+myhD5iw6B8XCA7CivpsoM+YmF8XCA7Civpsb4+asStfFwgOwor6bG7PmLDoHxcIDsKK+mxuj5sw618XCA7Civpsbg+bMO6fFwgOwor6bGzPmzDrHxcIDsKK+mxsT5sxK18XCA7Civpsa4+eMO5fFwgOwor6bGtPmrDrHxcIDsKK+mxrD5yw7p8XCA7Civpsac+bMStfFwgOwor6bGaPnjErXxcIDsKK+mxkD5zw7l8XCA7CivpsY0+Ym98XCA7CivpsYs+cXV8XCA7CivpsYA+asOsfFwgOwor6bC/PmppfFwgOwor6bC8PnjDrXxcIDsKK+mwuD5xdXxcIDsKK+mwtj5qw6x8XCA7CivpsLM+bMOofFwgOwor6bCyPsOhb3xcIDsKK+mwrT5xw618XCA7CivpsKo+Z8OpfFwgOwor6bCoPnTDoHxcIDsKK+mwoj5txIN8XCA7CivpsJ4+d3V8XCA7CivpsJc+aMO6fFwgOwor6bCSPmbDuXxcIDsKK+mwjz5iw6x8XCA7CivpsIU+ecO6fFwgOwor6bCCPnrDqXxcIDsKK+mvvT5qw6x8XCA7Civpr7s+bMOgfFwgOwor6a+sPmzDrXxcIDsKK+mvpT5sw7l8XCA7Civpr6M+ecOsfFwgOwor6a+iPm7DrXxcIDsKK+mvnT5nw7l8XCA7Civpr5o+asOsfFwgOwor6a+VPnHDrXxcIDsKK+mvlD56aXxcIDsKK+mvkz5uw618XCA7Civpr4k+bMStfFwgOwor6a+GPmbFrXxcIDsKK+mvgz53w7p8XCA7Civpr4I+c3V8XCA7Civprr0+ecO6fFwgOwor6a66PnrEg3xcIDsKK+mutz50w618XCA7Civprq8+Z8OpfFwgOwor6a6sPmLDuXxcIDsKK+muqD5xw618XCA7Civprqc+dMOtfFwgOwor6a6fPsOgbnxcIDsKK+munj7DqXJ8XCA7Civprpk+dMOgfFwgOwor6a6VPmd1fFwgOwor6a6UPmrDuXxcIDsKK+mukj5mw7l8XCA7Civpro0+cGl8XCA7Civpros+cMOtfFwgOwor6a6KPmLDs3xcIDsKK+muiD5qdXxcIDsKK+muhj5qw6x8XCA7CivproU+YsOsfFwgOwor6a6EPmbDunxcIDsKK+mugj5iw6B8XCA7CivproE+Ym98XCA7Civprb8+YsOgfFwgOwor6a2+PnDDrXxcIDsKK+mtvD5xdXxcIDsKK+mtuj5ow6l8XCA7CivprbY+bsOgfFwgOwor6a2zPnrDoXxcIDsKK+mtsj5sw7p8XCA7CivprbE+aMO6fFwgOwor6a2wPnBpfFwgOwor6a2vPmzFrXxcIDsKK+mtrj5iw618XCA7Civprak+bcOyfFwgOwor6a2jPnjDuXxcIDsKK+mtoj5qxK18XCA7CivprZ0+asOsfFwgOwor6a2aPnnDunxcIDsKK+mtlj54dXxcIDsKK+mtlT5qxK18XCA7CivprZM+YsOsfFwgOwor6a2MPnFpfFwgOwor6a2KPnnDuXxcIDsKK+mthj54w7l8XCA7CivprL8+ccOtfFwgOwor6ay+PmrDrHxcIDsKK+mstD5mxa18XCA7CivprLE+ecO5fFwgOwor6aywPnnDuXxcIDsKK+msqT5ow6h8XCA7CivprJo+eHV8XCA7CivprJU+bcOyfFwgOwor6ayQPnHDrXxcIDsKK+msjj5sw6B8XCA7CivprI0+aMO6fFwgOwor6ayEPnTDrHxcIDsKK+msgT5sw6x8XCA7CivprIA+ZMOtfFwgOwor6au3PnF1fFwgOwor6au1PsOpcnxcIDsKK+mrtD5mw7p8XCA7Civpq7I+cGl8XCA7Civpq7A+dMOsfFwgOwor6auuPmbDoHxcIDsKK+mrqj5mw6B8XCA7Civpq6I+dMOsfFwgOwor6augPmTDrXxcIDsKK+mrlz5sw7p8XCA7Civpq5Q+dMStfFwgOwor6auNPm3Ds3xcIDsKK+mrij5jaXxcIDsKK+mriT5ib3xcIDsKK+mrhj5iw7N8XCA7Civpq4E+a2V8XCA7CivpqrU+dGl8XCA7CivpqrM+YsOsfFwgOwor6aquPnnDrHxcIDsKK+mqrD55w7p8XCA7CivpqpU+c8O5fFwgOwor6amyPnLDrHxcIDsKK+mpqj5sw618XCA7Civpqag+eGl8XCA7Civpqac+asO6fFwgOwor6amlPmrDrHxcIDsKK+mpnD55w6h8XCA7CivpqZs+ecOsfFwgOwor6amMPnPDuXxcIDsKK+mpiz5ib3xcIDsKK+mpiT54dXxcIDsKK+mpiD55w7l8XCA7CivpqYY+YsOsfFwgOwor6amFPnF1fFwgOwor6amBPsOgb3xcIDsKK+mpgD5tw7J8XCA7CivpqL0+eMOtfFwgOwor6ai8PmzDuXxcIDsKK+mouT5sw618XCA7CivpqLM+ZMO6fFwgOwor6aixPnhpfFwgOwor6aimPnNpfFwgOwor6aigPnTDrXxcIDsKK+molj53w7l8XCA7CivpqI8+ccOtfFwgOwor6aiOPnHDrXxcIDsKK+mojT5rw6h8XCA7CivpqIg+asOsfFwgOwor6aiEPmzDuXxcIDsKK+mogz7DoWl8XCA7Civpp7w+dMO6fFwgOwor6ae2PmrDunxcIDsKK+mnrj5iw7N8XCA7Civpp6w+xJVyfFwgOwor6aehPm3DoHxcIDsKK+mnnz5zw6x8XCA7Civpp5w+YsOsfFwgOwor6aeZPmbDuXxcIDsKK+mnkz5waXxcIDsKK+mnkj5qdXxcIDsKK+mnkT5uw7p8XCA7Civpp48+asO5fFwgOwor6aeKPmLFj3xcIDsKK+mniD5xdXxcIDsKK+mnhj5xdXxcIDsKK+mnhT55w6x8XCA7Civpp4Q+cMWPfFwgOwor6aeBPmLDs3xcIDsKK+mmvz5sx5h8XCA7Civppro+c8OgfFwgOwor6aa5PnLDrHxcIDsKK+mmrT55w7l8XCA7Civppqw+bcSDfFwgOwor6aakPsSDaXxcIDsKK+mmnz50w7p8XCA7Civppp4+YsOzfFwgOwor6aadPmLDrHxcIDsKK+mmnD5uxK18XCA7Civppps+YsOhfFwgOwor6aaOPmLDs3xcIDsKK+mmjD55w6h8XCA7Civppok+Z8WtfFwgOwor6aW7PnlpfFwgOwor6aW5PmJvfFwgOwor6aWpPnjDrHxcIDsKK+mlnT5tw7N8XCA7CivppZE+aml8XCA7CivppZA+ecOsfFwgOwor6aWHPnnDuXxcIDsKK+mlhj5iw6x8XCA7CivppYM+bcOzfFwgOwor6aWBPnnDqHxcIDsKK+mkvD54w6x8XCA7CivppLo+YsOzfFwgOwor6aS2PmfFrXxcIDsKK+mksj5ow6l8XCA7CivppKw+aMO6fFwgOwor6aSjPnnDqHxcIDsKK+mkoj5iw7l8XCA7CivppJg+ecO6fFwgOwor6aSXPnPDuXxcIDsKK+mklD5idXxcIDsKK+mkkT5ib3xcIDsKK+mkjz55aXxcIDsKK+mkjj5sxJN8XCA7CivppIw+xJVyfFwgOwor6aSIPmPDrXxcIDsKK+mkhD5ow6l8XCA7Civpo7w+c8OsfFwgOwor6aO6PmPDrXxcIDsKK+mjtj5iw6x8XCA7Civpo7Q+ecOtfFwgOwor6aOzPnPDrHxcIDsKK+mjqz55w7l8XCA7Civpo6Q+c8OsfFwgOwor6aOiPmppfFwgOwor6aOUPnNpfFwgOwor6aOPPnPDrHxcIDsKK+mjiz5zw6h8XCA7Civpo4E+eMOtfFwgOwor6aK4PnNpfFwgOwor6aK3PmJpfFwgOwor6aK2PmrDuXxcIDsKK+misD5iw6F8XCA7Civpoq8+c8OgfFwgOwor6aKrPmbDunxcIDsKK+mhsT5sw7p8XCA7Civpoac+Z8O5fFwgOwor6aGjPmPDuXxcIDsKK+mhnT5rdXxcIDsKK+mhlz55xK18XCA7CivpoYw+dMOtfFwgOwor6aGKPmTDrHxcIDsKK+mhhj5rZXxcIDsKK+mgvz56aXxcIDsKK+mgvj56aXxcIDsKK+mgvD5rxJV8XCA7CivpoLE+bMOofFwgOwor6aCrPmbFrXxcIDsKK+mgpj5rZXxcIDsKK+mgpD55w618XCA7CivpoJw+aMOpfFwgOwor6aCZPmPDqHxcIDsKK+mglz5wb3xcIDsKK+mglD5kw618XCA7CivpoJA+ecO5fFwgOwor6aCOPnHDrXxcIDsKK+mgiz5nw7l8XCA7CivpoIo+eMO5fFwgOwor6aCJPnnDrXxcIDsKK+mgiD54dXxcIDsKK+mggT55w6h8XCA7CivpoIA+aMO5fFwgOwor6Z+3PmzDqHxcIDsKK+mftD5hbnxcIDsKK+mfsj5qaXxcIDsKK+mfqD5mw7p8XCA7Civpn6U+ZMO6fFwgOwor6Z+kPnfDoHxcIDsKK+mfoz5kw7p8XCA7Civpn6A+YsOsfFwgOwor6Z+aPmfDqXxcIDsKK+mfkD5nw6l8XCA7Civpn40+ZsO6fFwgOwor6Z+IPnfDoHxcIDsKK+mfhz5kw7p8XCA7Civpn4Q+aMO5fFwgOwor6Z+DPmTDoXxcIDsKK+mevz5qaXxcIDsKK+meuD5iw6x8XCA7Civpnrc+Z8OpfFwgOwor6Z6zPnTDoHxcIDsKK+merj5kaXxcIDsKK+meqz5qdXxcIDsKK+meqj5tw7l8XCA7Civpnqg+aMOpfFwgOwor6Z6lPnnDrHxcIDsKK+menz5qdXxcIDsKK+menD50w6B8XCA7Civpnow+YW58XCA7Civpnoo+asOtfFwgOwor6Z6HPmfDqXxcIDsKK+mdvj55w6x8XCA7Civpnbs+esWtfFwgOwor6Z26Pm3DsnxcIDsKK+mduT5uw6B8XCA7Civpnbg+c8SDfFwgOwor6Z2wPnfDuXxcIDsKK+mdrz5kw7l8XCA7Civpna4+ZMOtfFwgOwor6Z2oPnnDqHxcIDsKK+mdjz5ow6h8XCA7CivpnY4+aMOofFwgOwor6Z2LPmzDrHxcIDsKK+mdiT7DoGl8XCA7CivpnYQ+xINpfFwgOwor6Z2CPmzDrHxcIDsKK+mcvT5qw6x8XCA7CivpnLw+eMStfFwgOwor6Zy3PnDDsnxcIDsKK+mctT5qw618XCA7CivpnLE+ecO5fFwgOwor6ZysPnnDrHxcIDsKK+mcqz54w618XCA7CivpnKc+d8O5fFwgOwor6ZyiPm3DsnxcIDsKK+mcoT5tw7J8XCA7CivpnJo+d8O5fFwgOwor6ZyLPnFpfFwgOwor6ZyCPm3DuXxcIDsKK+mbuD7DoW58XCA7Civpm7Q+bMOsfFwgOwor6ZuuPm3DuXxcIDsKK+mbrT5zw6h8XCA7Civpm6s+bsSDfFwgOwor6ZunPmrDrXxcIDsKK+mbpj5qw618XCA7Civpm6U+esOhfFwgOwor6ZuiPmzDrXxcIDsKK+mbnz54aXxcIDsKK+mbnj5qaXxcIDsKK+mbnD56w6F8XCA7Civpm5M+ecO6fFwgOwor6ZuRPnrDoXxcIDsKK+mbkD5odXxcIDsKK+mbgz55xIN8XCA7Civpmro+aMOofFwgOwor6Zq4PmzDrHxcIDsKK+matT54aXxcIDsKK+marj5qaXxcIDsKK+marT7DqXJ8XCA7Civpmqw+bsStfFwgOwor6ZqpPnnDuXxcIDsKK+mapj5wxK18XCA7Civpmp8+eMOsfFwgOwor6ZqePsOhb3xcIDsKK+mamz5qw6x8XCA7CivpmpI+aml8XCA7Civpmow+xINufFwgOwor6ZqEPmRpfFwgOwor6ZqDPnnDunxcIDsKK+magD5hbnxcIDsKK+mZuT5kxa18XCA7CivpmbQ+cMOtfFwgOwor6ZmxPmp1fFwgOwor6ZmuPmFufFwgOwor6ZmtPnFpfFwgOwor6ZmgPnB1fFwgOwor6ZmaPmbDuXxcIDsKK+mZkz55dXxcIDsKK+mZkT7DqXJ8XCA7CivpmLo+ZMStfFwgOwor6Zi5PnF1fFwgOwor6ZiwPnDDrXxcIDsKK+mYpj7DoGl8XCA7CivpmKU+YW58XCA7CivpmKM+ecStfFwgOwor6ZiePmzDqHxcIDsKK+mYmD50w6B8XCA7CivpmIc+ZHV8XCA7Civpl6U+dMOgfFwgOwor6ZeiPmLDrHxcIDsKK+mXnz5zw6B8XCA7Civpl5k+ccStfFwgOwor6ZeUPmjDqXxcIDsKK+mXkj50w6B8XCA7Civpl40+ZHV8XCA7Civpl4c+w6BufFwgOwor6ZeDPnHDuXxcIDsKK+mWvj55w7l8XCA7CivplrQ+ccO5fFwgOwor6ZawPmrDunxcIDsKK+mWpT5mw6F8XCA7CivplqQ+Z8OpfFwgOwor6ZajPmfDqXxcIDsKK+mWoT5ow6l8XCA7Civplp8+YsOsfFwgOwor6ZadPsOgaXxcIDsKK+mWmT5rxJV8XCA7Civplok+YsOsfFwgOwor6ZaHPmLDrHxcIDsKK+mWgT5tw6B8XCA7Civplb4+bcOtfFwgOwor6ZW8PnF1fFwgOwor6ZW6PsSDb3xcIDsKK+mVuD7DoG98XCA7CivplbQ+bMOgfFwgOwor6ZWlPmzFrXxcIDsKK+mViD5iw7N8XCA7CivplYM+eml8XCA7CivplL8+YWl8XCA7CivplJ0+ZMOpfFwgOwor6ZScPnHDrXxcIDsKK+mTvT50w6h8XCA7Civpk7s+d8O6fFwgOwor6ZOvPnPDqHxcIDsKK+mTmD55w6l8XCA7Civpk5Q+ecOgfFwgOwor6ZK3PnBvfFwgOwor6ZKWPnjDrXxcIDsKK+mSkT5qw618XCA7CivpkoQ+Z8OhfFwgOwor6ZG6PnHDunxcIDsKK+mRtD54aXxcIDsKK+mRrj5iw7N8XCA7Civpkao+bMO6fFwgOwor6ZGlPmzFrXxcIDsKK+mRnz5kw7p8XCA7CivpkZ4+bMOgfFwgOwor6ZGZPmppfFwgOwor6ZGXPmzDrXxcIDsKK+mRkD54dXxcIDsKK+mRiT50w6B8XCA7CivpkYc+aml8XCA7CivpkYA+w6BpfFwgOwor6ZC/PnnDrHxcIDsKK+mQvT5iw6x8XCA7CivpkLs+asO5fFwgOwor6ZC3PnnDqHxcIDsKK+mQtD5iw6x8XCA7CivpkK0+ecO5fFwgOwor6ZCqPmzFrXxcIDsKK+mQoD5wxa18XCA7CivpkJ8+dMOsfFwgOwor6ZCaPnnDoHxcIDsKK+mQlj5qaXxcIDsKK+mPuj5wb3xcIDsKK+mPtz5ww7p8XCA7Civpj7Y+asOtfFwgOwor6Y+0PmzDuXxcIDsKK+mPrT54aXxcIDsKK+mPqz5sw618XCA7Civpj5o+ccOsfFwgOwor6Y+VPmzDuXxcIDsKK+mPkT5kaXxcIDsKK+mPjj5iw6x8XCA7Civpj4w+bcOyfFwgOwor6Y+LPmRpfFwgOwor6Y+JPsOgb3xcIDsKK+mPgz56w7p8XCA7Civpj4I+b3V8XCA7Civpj4A+bMWtfFwgOwor6Y6/Pm7DoXxcIDsKK+mOtz5txIN8XCA7CivpjrY+Z2V8XCA7CivpjrQ+eMOtfFwgOwor6Y6wPnnDrHxcIDsKK+mOoj53dXxcIDsKK+mOoT56aXxcIDsKK+mOnj5iaXxcIDsKK+mOnT5zw6B8XCA7Civpjps+YsOzfFwgOwor6Y6ZPmRhfFwgOwor6Y6YPmfDqXxcIDsKK+mOkD56w7p8XCA7Civpjo4+eMOsfFwgOwor6Y6JPnTDoHxcIDsKK+mOhD5haXxcIDsKK+mOgT55w6l8XCA7Civpjb8+eml8XCA7Civpjbg+aMO6fFwgOwor6Y23PmTFrXxcIDsKK+mNtj5zaXxcIDsKK+mNsT55w6h8XCA7CivpjaI+ZsO5fFwgOwor6Y2XPnTDrXxcIDsKK+mNkz5qw618XCA7CivpjZE+ZsO5fFwgOwor6Y2OPnTDunxcIDsKK+mNjT5kw7l8XCA7CivpjYk+ZGl8XCA7CivpjYA+ZMOpfFwgOwor6Yy3PmfDoXxcIDsKK+mMtD5sw7l8XCA7CivpjLI+bMO5fFwgOwor6YywPmzHnHxcIDsKK+mMrj5nw7l8XCA7CivpjKs+eMOtfFwgOwor6YylPnTDrHxcIDsKK+mMpD5qaXxcIDsKK+mMoT5xw618XCA7CivpjJk+eml8XCA7CivpjJY+ZMWtfFwgOwor6YyUPnTDoHxcIDsKK+mMjz55w6B8XCA7CivpjI4+a2V8XCA7CivpjI0+cMOtfFwgOwor6YyMPsOgbnxcIDsKK+mMhT5sw618XCA7CivpjIQ+bMO5fFwgOwor6YyCPmbDunxcIDsKK+mMgT5rw6h8XCA7Civpi7g+anV8XCA7Civpi7U+dHV8XCA7Civpi7E+dMOofFwgOwor6YuwPmzErXxcIDsKK+mLqj5wdXxcIDsKK+mLpj5qdXxcIDsKK+mLmT53w7p8XCA7Civpi5g+d8O6fFwgOwor6YuWPnNpfFwgOwor6YuNPmLDs3xcIDsKK+mLij55w7l8XCA7Civpi4k+c8O5fFwgOwor6Yq7PnRpfFwgOwor6YqwPmFpfFwgOwor6YqrPnPDqHxcIDsKK+mKqD7Eg258XCA7CivpiqU+eWl8XCA7CivpiqQ+bcStfFwgOwor6YqjPnLDunxcIDsKK+mKoj5wxK18XCA7CivpiqE+asOtfFwgOwor6YqUPnBpfFwgOwor6YqKPnjDuXxcIDsKK+mKiT55w7l8XCA7Civpiog+aml8XCA7CivpioY+bcOyfFwgOwor6Ym/PmhhfFwgOwor6Ym7PmfDqHxcIDsKK+mJuj7ElXJ8XCA7CivpibI+a8SDfFwgOwor6YmwPnNpfFwgOwor6YmvPsSVcnxcIDsKK+mJrD5tw7l8XCA7Civpiao+ZMOsfFwgOwor6YmoPm7ErXxcIDsKK+mJpz5txa18XCA7CivpiaI+Ym98XCA7CivpiZ0+bMOsfFwgOwor6YmcPmbDunxcIDsKK+mJmD5mw7p8XCA7CivpiZY+YW58XCA7CivpiZU+cG98XCA7CivpiZQ+emF8XCA7CivpiZE+YsOzfFwgOwor6YmQPnDFj3xcIDsKK+mJjj5qxa18XCA7CivpiY0+YsOsfFwgOwor6YmMPmjDqXxcIDsKK+mJiD50YXxcIDsKK+mJhT5qw7l8XCA7CivpiL0+YsO5fFwgOwor6Yi7PnPDrHxcIDsKK+mIuj55w7l8XCA7CivpiLk+cMOtfFwgOwor6Yi4PmLDs3xcIDsKK+mItz5nxa18XCA7CivpiLY+ecOtfFwgOwor6YizPmtlfFwgOwor6YiyPmd1fFwgOwor6YivPmtlfFwgOwor6YiuPm7DrXxcIDsKK+mIrT56aXxcIDsKK+mIpD5yw6x8XCA7CivpiKA+ecOsfFwgOwor6YiaPnDDrXxcIDsKK+mImD5qxK18XCA7CivpiJI+asOtfFwgOwor6YiJPm7DoHxcIDsKK+mIiD5iw7l8XCA7CivpiIc+ZnV8XCA7CivpiIA+YsSDfFwgOwor6Ye9PnBpfFwgOwor6Ye4PnjDrHxcIDsKK+mHtz50xa18XCA7Civph7Q+ecOsfFwgOwor6YezPnjDrHxcIDsKK+mHsT5kw6x8XCA7Civph7A+csOsfFwgOwor6YeoPnrErXxcIDsKK+mHoT5mxa18XCA7Civph58+YmF8XCA7Civph5s+aMOpfFwgOwor6YeZPnBvfFwgOwor6YeUPnnErXxcIDsKK+mHkz5nw6F8XCA7Civph5I+Z8OhfFwgOwor6YeQPmzDrXxcIDsKK+mHgz54xK18XCA7Civphr8+bcOtfFwgOwor6Ya+Pm3DrXxcIDsKK+mGuT5yw7p8XCA7Civphrc+ecOsfFwgOwor6YazPnnDrHxcIDsKK+mGsT5ww7J8XCA7Civphq0+YsO6fFwgOwor6YarPnlpfFwgOwor6YaoPmzDrXxcIDsKK+mGpz55w7l8XCA7Civphpg+a8OofFwgOwor6YaXPnDDsnxcIDsKK+mGkT54xa18XCA7Civpho8+ZHV8XCA7CivphoE+bMO5fFwgOwor6YW+PnjErXxcIDsKK+mFuj5ww7p8XCA7CivphbQ+dMO6fFwgOwor6YWmPnDDsnxcIDsKK+mFkT55xa18XCA7CivphY8+ecOtfFwgOwor6YWIPmzDrHxcIDsKK+mFhT54aXxcIDsKK+mEvz5xw618XCA7CivphLQ+ecOofFwgOwor6YSqPmLDrHxcIDsKK+mEqD5iw6x8XCA7CivphKY+eMWtfFwgOwor6YSgPmjDuXxcIDsKK+mEnD5mdXxcIDsKK+mEmj5tw7J8XCA7CivphJQ+d3V8XCA7CivphJM+asO6fFwgOwor6YSRPnppfFwgOwor6YSPPnLDuXxcIDsKK+mEjj54w6x8XCA7CivphIo+csWtfFwgOwor6YSFPnnFrXxcIDsKK+mEgz55w7p8XCA7Civpg7w+eWl8XCA7Civpg7k+asO6fFwgOwor6YO2PmLDuXxcIDsKK+mDsz5uw618XCA7Civpg6o+cWl8XCA7Civpg6k+Y2l8XCA7Civpg6Q+eMOsfFwgOwor6YOjPmLDs3xcIDsKK+mDmj53w7p8XCA7Civpg5k+ZsWtfFwgOwor6YOLPnjDrXxcIDsKK+mDgz5ow6l8XCA7Civpg4A+a3V8XCA7Civpgrc+d8SDfFwgOwor6YKyPmLDrHxcIDsKK+mCrT5qw7l8XCA7Civpgp4+ZnV8XCA7Civpgpo+csO6fFwgOwor6YKYPnnDunxcIDsKK+mClD5xxK18XCA7CivpgpI+asOsfFwgOwor6YKQPmzErXxcIDsKK+mCjD5sw618XCA7Civpgoc+xJVyfFwgOwor6YG7PnfDuXxcIDsKK+mBuj55w618XCA7Civpgbk+ecO5fFwgOwor6YGwPmTDrHxcIDsKK+mBrD5zw7l8XCA7Civpgas+c8O5fFwgOwor6YGqPmPDqHxcIDsKK+mBnj5kw6x8XCA7CivpgZ0+dMOgfFwgOwor6YGUPmTDoXxcIDsKK+mBhj50w618XCA7CivpgLk+ZMOhfFwgOwor6YC3PnTDrHxcIDsKK+mAsz55w7l8XCA7CivpgJw+d8O5fFwgOwor6YCTPmTDrHxcIDsKK+i/uz55w618XCA7Civov6E+bsOsfFwgOwor6L+WPmTDoXxcIDsKK+i/jz5qw6x8XCA7Civov4o+emF8XCA7Civov4k+ccOtfFwgOwor6L+GPnnErXxcIDsKK+i/gz55w618XCA7Civovq0+Y8OtfFwgOwor6L6kPmPDrXxcIDsKK+i+oj5sw6B8XCA7Civovp0+Y8OtfFwgOwor6L23Pmh1fFwgOwor6L2qPmTDrHxcIDsKK+i9pD5sw7p8XCA7CivovaM+bMOsfFwgOwor6L2iPmzDrHxcIDsKK+i9nT55w7p8XCA7CivovZw+w6lyfFwgOwor6L2aPmrDrXxcIDsKK+i9lj5zw6h8XCA7CivovZU+Z8OpfFwgOwor6L2QPnDDunxcIDsKK+i9hj5sw7l8XCA7CivovYM+aMOpfFwgOwor6L2CPmd1fFwgOwor6Ly/PnnDunxcIDsKK+i8uz5mw7p8XCA7CivovLo+eml8XCA7CivovLk+ZsO5fFwgOwor6Ly1PmfDqXxcIDsKK+i8oj55xK18XCA7CivovJw+eml8XCA7CivovJc+bsOtfFwgOwor6LyUPmbFrXxcIDsKK+i8jT55w7l8XCA7CivovIU+bMO5fFwgOwor6LyCPmrDunxcIDsKK+i8gD7DqXJ8XCA7Civou7w+ecOsfFwgOwor6Lu7PmtlfFwgOwor6Lu3PmLDoXxcIDsKK+i7sj5rdXxcIDsKK+i7sT5ndXxcIDsKK+i7rz5mxa18XCA7Civou6o+YW98XCA7Civou6c+ZMStfFwgOwor6LulPnHDunxcIDsKK+i7pD5odXxcIDsKK+i7nT5xw618XCA7Civou5w+bsOgfFwgOwor6LuLPnnDoHxcIDsKK+i7iT55w7l8XCA7Civou4Y+dMStfFwgOwor6LuEPmp1fFwgOwor6LuAPnF1fFwgOwor6Lq5PmrDunxcIDsKK+i6uD5qaXxcIDsKK+i6tz7Eg2l8XCA7CivourA+dMStfFwgOwor6LqjPnHDunxcIDsKK+i6oj50w6B8XCA7CivoupI+bMOsfFwgOwor6LqMPnfFrXxcIDsKK+i6iz5qaXxcIDsKK+i6hD5iw6x8XCA7CivouoM+YsOsfFwgOwor6LqCPnTDoHxcIDsKK+i5vT5kxIF8XCA7Civoubk+dMOgfFwgOwor6Lm1PmPDuXxcIDsKK+i5sz5ib3xcIDsKK+i5qz5qw7p8XCA7CivouaI+ZMOtfFwgOwor6LmfPmppfFwgOwor6LmdPnjErXxcIDsKK+i5nD5zw7l8XCA7CivouZc+bMO5fFwgOwor6LmVPmLDrHxcIDsKK+i5kD5qw618XCA7CivouY8+dMOtfFwgOwor6LmOPmTDrHxcIDsKK+i5gz5kw6x8XCA7CivouL8+esO6fFwgOwor6Li+PmbDunxcIDsKK+i4tj5kw6x8XCA7CivouLA+ecO6fFwgOwor6LinPmPDuXxcIDsKK+i4pj5qxK18XCA7CivouKU+aml8XCA7CivouKQ+Y8O5fFwgOwor6LibPmzDuXxcIDsKK+i4mD5qw7p8XCA7CivouJY+asOtfFwgOwor6LiRPnHDrXxcIDsKK+i4hD5iw7N8XCA7Civot78+dMO6fFwgOwor6Le8PmrDunxcIDsKK+i3tj50w6B8XCA7Civot6E+aml8XCA7Civot6A+ecOtfFwgOwor6LeePmzDrHxcIDsKK+i3mT5qxa18XCA7Civot5Q+anV8XCA7Civot5A+Y8StfFwgOwor6LeHPnnDrHxcIDsKK+i3gj5xw618XCA7Civot4E+cMOhfFwgOwor6LeAPnHErXxcIDsKK+i2tz5rZXxcIDsKK+i2rz50w6x8XCA7Civotqg+cXV8XCA7Civotqc+dMOtfFwgOwor6LamPnppfFwgOwor6LaiPmzDuXxcIDsKK+i2nD5qw7p8XCA7Civotpg+eMOtfFwgOwor6LaXPmPDuXxcIDsKK+i2hz5zw6h8XCA7CivotoY+ZGl8XCA7Civotbw+Y2l8XCA7CivotbI+bMOsfFwgOwor6LWlPnjDrHxcIDsKK+i1mT5mw7l8XCA7CivotZE+YsOsfFwgOwor6LSVPmTDunxcIDsKK+i0lD5iw6x8XCA7Civos74+esOpfFwgOwor6LO7PmbDuXxcIDsKK+izuT7DoGl8XCA7Civos7c+aml8XCA7Civos7A+ccOtfFwgOwor6LOtPmTFrXxcIDsKK+izqz5qaXxcIDsKK+izpj5mw7l8XCA7Civos5w+Y8OsfFwgOwor6LOJPnjDuXxcIDsKK+iziD5nxa18XCA7Civos4c+eml8XCA7Civos4I+bMO5fFwgOwor6LOAPmjDqHxcIDsKK+iyvT55w618XCA7Civosrk+YsOsfFwgOwor6LKzPsOocnxcIDsKK+iysj56aXxcIDsKK+iysT5iw6x8XCA7Civosq4+w6hyfFwgOwor6LKsPnrDqXxcIDsKK+iypD55w618XCA7CivosqM+dMOofFwgOwor6LKgPmbDuXxcIDsKK+iymD5tw7J8XCA7Civospc+asO5fFwgOwor6LKVPnhpfFwgOwor6LKQPnnFrXxcIDsKK+iyjz5ixK18XCA7Civoso4+bsOtfFwgOwor6LKNPmzDrXxcIDsKK+iyiD5ow6l8XCA7CivosoQ+c8OsfFwgOwor6LKDPm3DsnxcIDsKK+iygD5uw6B8XCA7Civosb4+cGl8XCA7Civosb0+bsOgfFwgOwor6LG7PsOgbnxcIDsKK+ixtz55w6x8XCA7CivosbQ+ZMOtfFwgOwor6LGwPmLDs3xcIDsKK+ixrz54aXxcIDsKK+ixqD54aXxcIDsKK+ixpz5mdXxcIDsKK+ixpj5xw7p8XCA7CivosaA+Y8O6fFwgOwor6LGdPmJhfFwgOwor6LGZPnnDrHxcIDsKK+ixjT5iaXxcIDsKK+ixiD5xxK18XCA7CivosYQ+ZMO6fFwgOwor6LGAPnhpfFwgOwor6LC/PnFpfFwgOwor6LC4PnFpfFwgOwor6K+QPmLDrHxcIDsKK+iunz5kw7p8XCA7Civorps+ecOsfFwgOwor6K6JPnnDrXxcIDsKK+iuiD5sw6x8XCA7Civorb0+ecO5fFwgOwor6K23PmjDuXxcIDsKK+ittj50w6B8XCA7CivorbA+ecOsfFwgOwor6K2vPnnDrHxcIDsKK+itqj7DoGl8XCA7CivoraQ+aml8XCA7CivorZw+cMWtfFwgOwor6K2VPm3DunxcIDsKK+itkj5iw7J8XCA7CivorY8+aml8XCA7CivorYY+eGl8XCA7CivorYU+c8OofFwgOwor6K2DPnh1fFwgOwor6Ky8Pmh1fFwgOwor6Ky7PnnDrXxcIDsKK+isuD7DoW98XCA7CivorLc+w6FvfFwgOwor6Ky1PnjDrXxcIDsKK+istD7DoG98XCA7CivorLM+b3V8XCA7CivorK4+esOpfFwgOwor6KypPm3DsnxcIDsKK+isqD5tw7N8XCA7CivorKc+bMOtfFwgOwor6KyjPnnDunxcIDsKK+islj5zw7l8XCA7CivorJE+eMOsfFwgOwor6KyQPm3DrHxcIDsKK+isjj5tw618XCA7CivorIw+Z2V8XCA7CivorIg+YsOzfFwgOwor6KyBPnnDqHxcIDsKK+irvz5xw6x8XCA7Civoq70+Z8OpfFwgOwor6KuzPmFufFwgOwor6KuwPnjErXxcIDsKK+irrj56aXxcIDsKK+irrT55w7l8XCA7Civoq6w+ccStfFwgOwor6KupPnDFrXxcIDsKK+irqD5mw7p8XCA7Civoq6Y+ZMOsfFwgOwor6KudPnjFrXxcIDsKK+irmz55w7p8XCA7Civoq44+esOpfFwgOwor6KuKPmrDunxcIDsKK+irhj5xaXxcIDsKK+irhT5qaXxcIDsKK+irgD5wxK18XCA7Civoqr0+bsOhfFwgOwor6Kq8PnnDrHxcIDsKK+iquz50w6B8XCA7CivoqrM+cXV8XCA7CivoqrI+a8OofFwgOwor6KqtPmTDunxcIDsKK+iqpz5wxa18XCA7CivoqqQ+d8O5fFwgOwor6KqjPnd1fFwgOwor6KqfPnd1fFwgOwor6KqePnnFrXxcIDsKK+iqnT5hbnxcIDsKK+iqlj5iw7N8XCA7CivoqpI+YWl8XCA7Civoqo4+c8O5fFwgOwor6KqLPmrDrHxcIDsKK+iqiD53w7p8XCA7CivoqoA+w6hyfFwgOwor6Km4Pm3DrXxcIDsKK+ippT5ow6l8XCA7CivoqaM+ecOsfFwgOwor6KmhPnjFrXxcIDsKK+ipnj5jw618XCA7CivoqZs+esWtfFwgOwor6KmaPmTDoXxcIDsKK+ipmT5iw6F8XCA7CivoqZg+cXV8XCA7CivoqZY+YsOsfFwgOwor6KmTPnHFrXxcIDsKK+ipkj55w618XCA7CivoqY8+w6BvfFwgOwor6KmOPmrDuXxcIDsKK+ipjT55w6x8XCA7CivoqYY+ZMStfFwgOwor6KmCPmbDuXxcIDsKK+ipgT5nxa18XCA7CivoqL8+eml8XCA7CivoqLk+eMO5fFwgOwor6Ki4PmjDqXxcIDsKK+iotj5oZXxcIDsKK+iotD5zw7l8XCA7CivoqLM+ecOsfFwgOwor6KiyPmNpfFwgOwor6KixPnjFrXxcIDsKK+iopT5uw6h8XCA7CivoqJ0+ecOgfFwgOwor6KiYPmrDrHxcIDsKK+iolj5xw6x8XCA7CivoqJE+ecOtfFwgOwor6KiPPnh1fFwgOwor6KiIPmrDrHxcIDsKK+iogz5mw7l8XCA7Civop78+eGl8XCA7Civop70+eGl8XCA7Civop7s+bMO5fFwgOwor6Ke5PnhpfFwgOwor6KexPmLDrHxcIDsKK+insD5kxIN8XCA7Civop64+bMO5fFwgOwor6KetPmppfFwgOwor6KesPm7DrXxcIDsKK+inoT5nw6l8XCA7Civop50+ZMStfFwgOwor6KeZPmrDrXxcIDsKK+inlT5jdXxcIDsKK+imvz5kw618XCA7Civopr4+asOtfFwgOwor6Ka3PnHDuXxcIDsKK+imsD5xw7l8XCA7Civopqw+asOsfFwgOwor6KapPmTFrXxcIDsKK+impj55w7p8XCA7CivopqQ+eMOsfFwgOwor6KahPnjDrXxcIDsKK+immz5tw6x8XCA7Civoppc+c2l8XCA7CivoppQ+bcOsfFwgOwor6KaTPm3DrHxcIDsKK+imij5qaXxcIDsKK+imiT5qaXxcIDsKK+imiD5ow6l8XCA7Civopoc+YsOgfFwgOwor6KaAPnhpfFwgOwor6KW+PnnDoHxcIDsKK+ilvD55w6x8XCA7CivopbI+eMOtfFwgOwor6KWuPmLDs3xcIDsKK+ilqj53w6B8XCA7CivopaY+csO6fFwgOwor6KWlPnDDunxcIDsKK+iloz5iw618XCA7CivopZY+xINvfFwgOwor6KWPPmLDs3xcIDsKK+iljT56w6F8XCA7CivopYs+asOtfFwgOwor6KWGPnDDunxcIDsKK+ilgD5qaXxcIDsKK+ikuT55w6x8XCA7CivopLU+bMOtfFwgOwor6KSyPmvDuXxcIDsKK+iknz5kw6F8XCA7CivopJU+ecO6fFwgOwor6KSUPmbDuXxcIDsKK+ikhz5mw7l8XCA7CivopIY+dMOtfFwgOwor6KSFPnTDrHxcIDsKK+ikgD5qw6x8XCA7Civoo7s+ZMWtfFwgOwor6KOhPmzErXxcIDsKK+ijnD5ixa18XCA7Civoo5s+ecOsfFwgOwor6KOaPmrDrHxcIDsKK+ijkz5nw6l8XCA7Civoor0+csO6fFwgOwor6KK7PsOpcnxcIDsKK+iiuT5tw7J8XCA7CivoorI+ecOtfFwgOwor6KKvPmLDs3xcIDsKK+iiqj5xdXxcIDsKK+iiqT5iw6x8XCA7CivooqY+bsOgfFwgOwor6KKbPmRpfFwgOwor6KKaPmbDunxcIDsKK+iimT5tw7J8XCA7Civoopg+ecOtfFwgOwor6KKUPmjDqHxcIDsKK+iikz5qxa18XCA7CivoopA+YsOsfFwgOwor6KG5PnHDrXxcIDsKK+ihtT5uw6x8XCA7Civooa0+ZnV8XCA7Civooao+ecStfFwgOwor6KGnPnnDunxcIDsKK+ihmj5ow7p8XCA7CivooYs+eMOsfFwgOwor6KGIPsSVcnxcIDsKK+ihhz5tw7J8XCA7CivooLc+ccO6fFwgOwor6KC1PnhpfFwgOwor6KCxPmfFrXxcIDsKK+igrj55ZXxcIDsKK+igqz5sw6x8XCA7CivooKc+ZMO5fFwgOwor6KCmPmzDunxcIDsKK+igoz5sw6x8XCA7CivooKA+bcOsfFwgOwor6KCfPmzDoHxcIDsKK+igmj5oZXxcIDsKK+igkD5xw618XCA7CivooI8+csO6fFwgOwor6KCMPnrDqXxcIDsKK+igiD56w6l8XCA7CivooIc+bMOsfFwgOwor6KCAPmNpfFwgOwor6J+/PnHDrHxcIDsKK+ifvT5kw6F8XCA7Civon7w+asOsfFwgOwor6J+7PnnErXxcIDsKK+ifuD5sxK18XCA7Civon7Q+c2l8XCA7Civon7A+bMOtfFwgOwor6J+jPmrErXxcIDsKK+ifoj54xK18XCA7Civon50+ccO6fFwgOwor6J+YPnTDqHxcIDsKK+iflj5zaXxcIDsKK+iflD5tw7J8XCA7Civon40+bMOtfFwgOwor6J+HPm3DoXxcIDsKK+ifhT5tw7J8XCA7Civonrc+cMOtfFwgOwor6J6wPmzDuXxcIDsKK+ierj5kw6x8XCA7CivonqA+ecOsfFwgOwor6J6ePm1hfFwgOwor6J6cPmjDunxcIDsKK+iemz5ow6l8XCA7Civonpk+ZMO5fFwgOwor6J6YPnnErXxcIDsKK+ielT5iaXxcIDsKK+ielD55w618XCA7CivonpA+d3V8XCA7Civono8+asOtfFwgOwor6J6HPnhpfFwgOwor6J6GPmPDrHxcIDsKK+iehD5zaXxcIDsKK+iduj5qxa18XCA7Civonbk+w6FufFwgOwor6J2zPmTDunxcIDsKK+idsj5sw6B8XCA7Civona0+dMOtfFwgOwor6J2mPmjDoXxcIDsKK+idnD5mw7l8XCA7CivonZM+ecO6fFwgOwor6J2RPmzDrHxcIDsKK+idjT5qw618XCA7CivonYs+bMOgfFwgOwor6J2DPmTDrHxcIDsKK+icuj5uw618XCA7CivonLY+c8O5fFwgOwor6JyxPnDDrXxcIDsKK+icpz5sw6x8XCA7CivonKQ+c2l8XCA7CivonJ8+ecO5fFwgOwor6JydPnHDrXxcIDsKK+icmz5qdXxcIDsKK+icjD5iw6x8XCA7CivonIU+ZsWtfFwgOwor6JuoPm3DsnxcIDsKK+ibpj55w618XCA7Civom6E+ecOsfFwgOwor6JugPmzDrHxcIDsKK+ibnD55aXxcIDsKK+iblz5mw7l8XCA7Civom5M+Y8OsfFwgOwor6JuSPmfDqXxcIDsKK+ibjD5nxa18XCA7Civomr4+YsWPfFwgOwor6Jq9PnDDrXxcIDsKK+iauT5mw7l8XCA7Civomrg+bMOsfFwgOwor6Jq3PmrDuXxcIDsKK+iarj50w6h8XCA7Civomq0+bsOtfFwgOwor6JqlPmbFrXxcIDsKK+ianj5tw7l8XCA7Civompo+ccOtfFwgOwor6JqUPnHDrXxcIDsKK+iakT5xw618XCA7CivomoY+cGF8XCA7CivombM+ZMOsfFwgOwor6JmpPnjDrHxcIDsKK+iZoT5qw7l8XCA7CivomZ0+aMWtfFwgOwor6JmcPmzFrXxcIDsKK+iZmz54dXxcIDsKK+iZmT5mw7p8XCA7CivomZc+cXV8XCA7CivomZY+aHV8XCA7CivomZI+c2l8XCA7CivomYk+ecOsfFwgOwor6JmCPmzDuXxcIDsKK+iZgD5qaXxcIDsKK+iYuz5qw6x8XCA7CivomLo+bMOtfFwgOwor6JiuPmrDrHxcIDsKK+iYqj5tw618XCA7CivomKU+ccO5fFwgOwor6JicPmrDunxcIDsKK+iYmz55w7p8XCA7CivomJk+ecOsfFwgOwor6JiTPnN1fFwgOwor6JiOPmrDrHxcIDsKK+iYhz5zdXxcIDsKK+iYhj5sw7p8XCA7CivomIQ+ccOtfFwgOwor6JiCPmppfFwgOwor6JiBPnfDuXxcIDsKK+iXuT7Eg2l8XCA7Civol7Y+bMOsfFwgOwor6Je0PmjDqXxcIDsKK+iXpj5tw7N8XCA7Civol6E+ZMOtfFwgOwor6JeePmzEg3xcIDsKK+iXnT55w6x8XCA7Civol5o+eMO5fFwgOwor6JeZPnnDrHxcIDsKK+iXlz5zw7l8XCA7Civol4w+bMSBfFwgOwor6JeIPmrDrXxcIDsKK+iXhz54w7l8XCA7Civol4U+ZsOhfFwgOwor6JeEPnHDrXxcIDsKK+iWvz5uxK18XCA7Civolr4+xJVyfFwgOwor6Ja6PmrDrHxcIDsKK+iWtz5yw7p8XCA7CivolrY+bMOtfFwgOwor6JapPnPDoHxcIDsKK+iWoz5nxa18XCA7Civolpk+dMOsfFwgOwor6JaYPmTDoXxcIDsKK+iWlj5rZXxcIDsKK+iWiz5jaXxcIDsKK+iWij5qw6x8XCA7CivoloY+w6BpfFwgOwor6JaCPnjDrXxcIDsKK+iWgT55w7l8XCA7Civolbo+asOtfFwgOwor6JW3PnnDuXxcIDsKK+iVrj54w6x8XCA7Civolaw+c2l8XCA7Civolao+d8O6fFwgOwor6JWnPmbDuXxcIDsKK+iVpj54dXxcIDsKK+iVpT55xIN8XCA7CivolZ8+ZsOgfFwgOwor6JWXPmzDuXxcIDsKK+iVjT55w7p8XCA7CivolYU+xY91fFwgOwor6JWCPmJvfFwgOwor6JWAPmrDrXxcIDsKK+iUvj5sw618XCA7CivolLQ+bcOhfFwgOwor6JSwPmjDuXxcIDsKK+iUpD5tw6x8XCA7CivolKA+Y2F8XCA7CivolJ0+bcStfFwgOwor6JScPsOhb3xcIDsKK+iUmz5ow7p8XCA7CivolJU+ZMOsfFwgOwor6JSUPmLFjXxcIDsKK+iUkD5kw618XCA7CivolI0+bMO5fFwgOwor6JSLPmTDrXxcIDsKK+iUhz5qw6x8XCA7CivolIE+eMOsfFwgOwor6JSAPmLDuXxcIDsKK+iTvj5sxa18XCA7Civok70+YsOsfFwgOwor6JO7PmrDrXxcIDsKK+iTuj55w6x8XCA7Civok7k+ecWtfFwgOwor6JOtPmFufFwgOwor6JOjPnnDuXxcIDsKK+iTmz5jw6h8XCA7Civok5c+bMSBfFwgOwor6JOSPmLDrHxcIDsKK+iThz5nxa18XCA7Civok4Y+eMOtfFwgOwor6JK+Pm3DrXxcIDsKK+iSvT5lbnxcIDsKK+iStT54aXxcIDsKK+iSsz5uw6B8XCA7CivokrE+cMO6fFwgOwor6JKwPmLDs3xcIDsKK+iSrj55w7l8XCA7Civokqo+cMOyfFwgOwor6JKpPnp1fFwgOwor6JKmPnfDsnxcIDsKK+iSpD50w7p8XCA7CivokqM+eMO6fFwgOwor6JKgPnjDrXxcIDsKK+iSnz5qxa18XCA7Civokp4+bMOsfFwgOwor6JKaPmjDqXxcIDsKK+iSmD5uw7p8XCA7Civokao+asOsfFwgOwor6JGnPmLDs3xcIDsKK+iRnj5txK18XCA7CivokZY+dMO6fFwgOwor6JGNPmbDunxcIDsKK+iRiz5xw7p8XCA7CivokYo+YW58XCA7CivokYk+ecOofFwgOwor6JGIPnjErXxcIDsKK+iRhT5qdXxcIDsKK+iQuz5hbnxcIDsKK+iQuj5sw6B8XCA7CivokLU+d298XCA7CivokLQ+esOpfFwgOwor6JCzPmPDqHxcIDsKK+iQrz5mw7l8XCA7CivokK0+ecWtfFwgOwor6JCqPmtlfFwgOwor6JCXPmPDqHxcIDsKK+iQlT5xw618XCA7CivokJM+ecOtfFwgOwor6JCSPmrFrXxcIDsKK+iQhj5iw6x8XCA7CivokIA+aMWtfFwgOwor6I+3Pnl1fFwgOwor6I+0PmFufFwgOwor6I+zPsSDbnxcIDsKK+iPpz5kxK18XCA7Civoj6U+eGl8XCA7Civoj54+bMOtfFwgOwor6I+dPmLDoXxcIDsKK+iPkj5iw7N8XCA7Civoj5E+eml8XCA7Civoj5A+cMO6fFwgOwor6I+JPmzDuXxcIDsKK+iPiD5sYXxcIDsKK+iPgj5kaXxcIDsKK+iOvz5jw6x8XCA7Civojq8+bcO5fFwgOwor6I6LPmrDrXxcIDsKK+iOiD5tw7J8XCA7CivojoM+eGl8XCA7CivojoE+d8O6fFwgOwor6I2+PnDDunxcIDsKK+iNuT5iw7l8XCA7CivojbQ+ZnV8XCA7CivojbA+ZMO5fFwgOwor6I2dPnrDqXxcIDsKK+iNmT5kw6F8XCA7CivojYw+w6BufFwgOwor6I2LPsOpcnxcIDsKK+iNhT5kYXxcIDsKK+iMtz5mw6F8XCA7CivojLI+eml8XCA7CivojLA+ecO6fFwgOwor6IyuPmNpfFwgOwor6IymPmPDqHxcIDsKK+iMpD5qw6x8XCA7CivojKM+d8O6fFwgOwor6IyfPnnDuXxcIDsKK+iMlj5nw6l8XCA7CivojIs+ZMStfFwgOwor6IyKPnppfFwgOwor6IyIPmPDrXxcIDsKK+iMhz5iw6F8XCA7CivojIA+ZsO6fFwgOwor6Iu+PmLDrHxcIDsKK+iLvT5ndXxcIDsKK+iLvD5iw7N8XCA7Civoi7g+aHV8XCA7Civoi6k+YsOzfFwgOwor6IuiPnHFrXxcIDsKK+iLmT5sw6x8XCA7Civoi5Y+ZMStfFwgOwor6IuQPnnDrXxcIDsKK+iLiT5wxK18XCA7Civoi4g+bMOsfFwgOwor6IuFPnnDrHxcIDsKK+iKuj7Eg298XCA7Civoiqc+eMO5fFwgOwor6IqePnHErXxcIDsKK+iKmD5ww618XCA7CivoipM+esStfFwgOwor6IqRPnHErXxcIDsKK+iKkD5ow7l8XCA7Civoio8+ZMO5fFwgOwor6IqMPnh1fFwgOwor6IqHPm3ErXxcIDsKK+iKhT55w6x8XCA7Civoibs+bMOofFwgOwor6ImrPmzDunxcIDsKK+iJqj5sxa18XCA7Civoiak+ccOtfFwgOwor6ImkPnnErXxcIDsKK+iJoz5sxa18XCA7CivoiZc+ecOsfFwgOwor6ImNPmp1fFwgOwor6ImKPmLDs3xcIDsKK+iJhT5tw7l8XCA7CivoiYM+bMOtfFwgOwor6ImAPmbDunxcIDsKK+iIuz5sw7p8XCA7CivoiLQ+esOpfFwgOwor6IilPnBhfFwgOwor6IiXPnB1fFwgOwor6IiWPnDDuXxcIDsKK+iIiT5qxa18XCA7CivoiIc+ecO6fFwgOwor6Ie1PmfDqXxcIDsKK+iHpT53w7J8XCA7Civoh6E+bsOtfFwgOwor6IeePnHDunxcIDsKK+iHmj5sw7p8XCA7Civoh5g+bMOgfFwgOwor6IeRPnLDunxcIDsKK+iHjT5xw618XCA7Civoh4s+w6lyfFwgOwor6IeIPmzDoHxcIDsKK+iGtD5odXxcIDsKK+iGsj5odXxcIDsKK+iGqT5uw6x8XCA7CivohqI+bMeYfFwgOwor6IaaPmZ1fFwgOwor6IaUPmzDuXxcIDsKK+iGkj5vdXxcIDsKK+iGjT5ww618XCA7Civohow+asOtfFwgOwor6IaJPnnDrHxcIDsKK+iGhj5zw7l8XCA7CivohoM+d8OgfFwgOwor6IW9PnfDoHxcIDsKK+iFtz5iw6x8XCA7Civoha8+dMO6fFwgOwor6IWkPmFufFwgOwor6IWjPmTDrHxcIDsKK+iFmz53dXxcIDsKK+iFmD7DqXJ8XCA7CivohZc+cMOtfFwgOwor6IWSPmp1fFwgOwor6IS1PmfFrXxcIDsKK+iEtD5wxK18XCA7CivohKg+Y8O5fFwgOwor6ISmPmRlfFwgOwor6ISfPmzDqHxcIDsKK+iEjj5zw6B8XCA7Civog74+esOsfFwgOwor6IO5PsOpcnxcIDsKK+iDtz7DoG58XCA7Civog6w+bsO6fFwgOwor6IOpPmvEg3xcIDsKK+iDoz55xK18XCA7Civog6I+a2V8XCA7Civog6A+cXV8XCA7Civog5U+ZsO5fFwgOwor6IOUPnrDrHxcIDsKK+iDkj5mdXxcIDsKK+iDkD5rdXxcIDsKK+iDjz56xK18XCA7Civog4o+ccO6fFwgOwor6IOJPmLDs3xcIDsKK+iDiD5iw6F8XCA7Civogrk+YsOsfFwgOwor6IK4PnjDrHxcIDsKK+iCtj5ww618XCA7CivogrM+ccOtfFwgOwor6IKtPm7DoHxcIDsKK+iCrD5ux5x8XCA7CivogqM+YsStfFwgOwor6IKfPnfDsnxcIDsKK+iClz5kxa18XCA7CivogpQ+ecStfFwgOwor6IKRPmTDrHxcIDsKK+iCkD5nZXxcIDsKK+iChT5zw7l8XCA7CivogoI+c8OsfFwgOwor6IKAPnnDuXxcIDsKK+iBuz5qaXxcIDsKK+iBuj5qw618XCA7CivogaU+ecWtfFwgOwor6IGfPnjDuXxcIDsKK+iBnD5kxK18XCA7CivogZs+YsOsfFwgOwor6IGQPnnDoHxcIDsKK+iBjz7DqXJ8XCA7CivogYk+d2F8XCA7CivogK0+aml8XCA7CivogKs+esOpfFwgOwor6ICkPmrDrXxcIDsKK+iAoD5ow6l8XCA7CivogJ8+asO5fFwgOwor6ICUPnrErXxcIDsKK+iAjz7DqXJ8XCA7Civnv7o+w6FvfFwgOwor57+1PnHDunxcIDsKK+e/rz5ow6h8XCA7Civnv5w+c8OofFwgOwor57+XPnHDrXxcIDsKK+e/lj54w6x8XCA7Civnv5I+eMOtfFwgOwor57+RPnHDunxcIDsKK+e/jT5waXxcIDsKK+e/iz5sYXxcIDsKK+e/hz5mw7p8XCA7Civnvro+aMO5fFwgOwor576tPnnDunxcIDsKK+e+qT55w6x8XCA7Civnvps+ecOsfFwgOwor576WPmfFrXxcIDsKK+e+kz5iYXxcIDsKK+e+jT50w6B8XCA7Civnvos+bcStfFwgOwor576IPmppfFwgOwor576HPmppfFwgOwor576GPnDDrXxcIDsKK+e+gz5tw6x8XCA7Civnvb0+asOsfFwgOwor5728PmLDrHxcIDsKK+e9uD5mw6F8XCA7Civnvbc+YsOgfFwgOwor5721Pm3DoHxcIDsKK+e9sz5zaXxcIDsKK+e9sD5mw6F8XCA7Civnva8+xINufFwgOwor572tPnnDuXxcIDsKK+e9pj5mw7p8XCA7CivnvaQ+dMOtfFwgOwor572fPmfFrXxcIDsKK+e9nj5ixIF8XCA7CivnvZ0+anV8XCA7CivnvZs+Z3V8XCA7CivnvZk+bcOtfFwgOwor572PPmzDunxcIDsKK+e9ij5xw6x8XCA7CivnvL0+Ym98XCA7CivnvIw+c2l8XCA7CivnvIc+dMOtfFwgOwor57u5PmvDuXxcIDsKK+e7pD54w6x8XCA7Civnu4s+ZsO6fFwgOwor57qaPnjErXxcIDsKK+e6lz5sw618XCA7CivnupE+bMO6fFwgOwor57qMPnjDuXxcIDsKK+e6hj5tw7J8XCA7CivnuoU+bMOsfFwgOwor57qAPnDDunxcIDsKK+e5vD5qw6x8XCA7Civnubs+eHV8XCA7Civnubo+csO6fFwgOwor57m5PnnDrHxcIDsKK+e5tj55w6x8XCA7CivnubQ+YsOsfFwgOwor57mrPnjDrHxcIDsKK+e5qD5kw6F8XCA7CivnuaU+eGl8XCA7CivnuZg+ecO5fFwgOwor57mLPnjDrHxcIDsKK+e5hD55aXxcIDsKK+e4vj5qaXxcIDsKK+e4uD5tw7J8XCA7CivnuK0+bMOtfFwgOwor57isPmPDuXxcIDsKK+e4qj5iw6x8XCA7CivnuKA+aMO6fFwgOwor57ifPnLDuXxcIDsKK+e4mz5mw7p8XCA7CivnuI4+Z8WtfFwgOwor57iMPm7DrHxcIDsKK+e4ij55w6x8XCA7CivnuIM+eHV8XCA7Civnt7k+dMOtfFwgOwor57ewPnnDunxcIDsKK+e3rj5mw7l8XCA7Civnt6Y+c2l8XCA7Civnt6A+ZMOsfFwgOwor57edPnFpfFwgOwor57eZPmvDqHxcIDsKK+e3lj54w7l8XCA7Civnt5I+eMO5fFwgOwor57eRPmppfFwgOwor57eOPnnDuXxcIDsKK+e3hz56aXxcIDsKK+e3hj55w6x8XCA7Civnt4A+cWl8XCA7Civntro+ccStfFwgOwor57aoPnHDrXxcIDsKK+e2pT5xw6x8XCA7Civntp8+bMOsfFwgOwor57aZPmrDrHxcIDsKK+e2lD5ow7l8XCA7CivntpI+ZnV8XCA7Civnto0+ZsO6fFwgOwor57aMPnjDrHxcIDsKK+e2iD50w618XCA7Civntoc+dMOsfFwgOwor57WyPnNpfFwgOwor57WlPmbDunxcIDsKK+e1mD5jw6x8XCA7CivntZc+aMO6fFwgOwor57WIPm3DsnxcIDsKK+e1hz5qw7l8XCA7CivntYQ+esWtfFwgOwor57WBPnF1fFwgOwor57S8PmbDunxcIDsKK+e0tj5xxa18XCA7CivntLE+ZsO6fFwgOwor57SwPnjDrHxcIDsKK+e0rj56YXxcIDsKK+e0qj5jxK18XCA7CivntKg+ZsO5fFwgOwor57SaPmrDrXxcIDsKK+e0lT5waXxcIDsKK+e0jj56aXxcIDsKK+e0jT5uw6B8XCA7CivntIw+asOsfFwgOwor57SHPmdlfFwgOwor57SGPnl1fFwgOwor57SAPmrDrHxcIDsKK+ezvz5qxK18XCA7Civns7k+c2l8XCA7Civns7Q+ZMOtfFwgOwor57OyPmzDrHxcIDsKK+ezqj5iw7N8XCA7Civns6Y+eGl8XCA7Civns6I+bcOzfFwgOwor57OTPmfFrXxcIDsKK+ezkT5uw6x8XCA7Civns5A+ZnV8XCA7Civns44+bMOtfFwgOwor57OIPnjFrXxcIDsKK+ezhj5odXxcIDsKK+eyuD5xw618XCA7Civnsrc+asO6fFwgOwor57K2PmzDuXxcIDsKK+eytD5sxK18XCA7CivnsrA+ZsO6fFwgOwor57KnPmZ1fFwgOwor57KjPmPDqHxcIDsKK+eymz5zw7l8XCA7Civnspo+bMOtfFwgOwor57KZPnhpfFwgOwor57KWPm3DsnxcIDsKK+eylD5qw7l8XCA7Civnso0+bMOtfFwgOwor57KKPmLDrHxcIDsKK+eyhT53w7l8XCA7CivnsoM+YsStfFwgOwor57G+Pm7DrXxcIDsKK+exsj55w7l8XCA7Civnsa0+c2l8XCA7Civnsaw+bMOtfFwgOwor57GnPnHDunxcIDsKK+exoj5qxa18XCA7CivnsZ4+ecO5fFwgOwor57GaPmzDunxcIDsKK+exmT5sw7l8XCA7CivnsYs+bcOtfFwgOwor57GKPnTDrHxcIDsKK+exhT55w7p8XCA7CivnsLw+YsO5fFwgOwor57C7PmtlfFwgOwor57C2PmLFj3xcIDsKK+ewtT5kw7l8XCA7CivnsLQ+asO5fFwgOwor57CsPmzDuXxcIDsKK+ewoD5mxa18XCA7CivnsJs+c2l8XCA7CivnsJo+bcOsfFwgOwor57CZPmLDs3xcIDsKK+ewlT5sw6h8XCA7CivnsIo+aml8XCA7CivnsIQ+aMO5fFwgOwor57CDPnnDrXxcIDsKK+ewgD56w6l8XCA7Civnr70+ecWtfFwgOwor56+0PmTDrXxcIDsKK+evsz5iw6x8XCA7Civnr7A+YsO5fFwgOwor56+lPmzDrHxcIDsKK+evpD5kxa18XCA7Civnr5U+aMOpfFwgOwor566/PmrDrXxcIDsKK+euvD53dXxcIDsKK+euuz5sx5x8XCA7CivnrrY+aMO6fFwgOwor566lPmLFj3xcIDsKK+eupD5qw7p8XCA7CivnrqM+Y8OofFwgOwor566bPmd1fFwgOwor566ZPmbDunxcIDsKK+eukz5sw7l8XCA7CivnrpI+ZMOhfFwgOwor566KPnl1fFwgOwor566HPmfDqHxcIDsKK+euhj5iw6x8XCA7CivnroU+YsOsfFwgOwor566EPmLDrHxcIDsKK+eugT5ww7p8XCA7CivnrbQ+Y8OofFwgOwor562lPmrFrXxcIDsKK+etoz5sw6x8XCA7CivnrZ8+ZnV8XCA7CivnrZ4+Y8OofFwgOwor562TPmRhfFwgOwor562OPnLDunxcIDsKK+ethj5ixK18XCA7CivnrYE+ccWtfFwgOwor56y0PmfElXxcIDsKK+essD5mw7p8XCA7CivnrK4+esOpfFwgOwor56ynPmPDqHxcIDsKK+esnz5ndXxcIDsKK+esnT5uw6B8XCA7CivnrJY+ecStfFwgOwor56yTPnDDrXxcIDsKK+esjD55w6F8XCA7Civnq6w+ccWtfFwgOwor56upPnnDrHxcIDsKK+eroj5zw6x8XCA7Civnq6E+eWl8XCA7Civnq5g+asWtfFwgOwor56uSPnHDrXxcIDsKK+equT53w7l8XCA7Civnqrg+eGl8XCA7CivnqrY+asO5fFwgOwor56qtPmrDuXxcIDsKK+eqqz55w6B8XCA7Civnqqo+d2F8XCA7Civnqqk+d298XCA7CivnqqM+c8O5fFwgOwor56qiPnjDuXxcIDsKK+eqjz53dXxcIDsKK+eqij53YXxcIDsKK+eptT53YXxcIDsKK+epsj5sw618XCA7Civnqac+asOsfFwgOwor56mlPnnDuXxcIDsKK+epoT5zw6h8XCA7CivnqZk+cMO6fFwgOwor56mWPmrErXxcIDsKK+epkz55w6x8XCA7CivnqY0+aml8XCA7CivnqYw+c3V8XCA7CivnqYs+bMO5fFwgOwor56mKPmrDrHxcIDsKK+ephD5qw6x8XCA7CivnqYA+Z8WtfFwgOwor56i6PnHErXxcIDsKK+eotj55w7l8XCA7CivnqLU+eml8XCA7CivnqLA+eHV8XCA7CivnqKs+Yml8XCA7CivnqKo+ZsO5fFwgOwor56ipPmrDrHxcIDsKK+eopz54w6x8XCA7CivnqKI+ecO5fFwgOwor56iYPmppfFwgOwor56iSPmfDuXxcIDsKK+eokT5sw7l8XCA7CivnqIw+dMO6fFwgOwor56iKPnTDrXxcIDsKK+eogz5mdXxcIDsKK+envz5mxa18XCA7Civnp7o+ZMO5fFwgOwor56e2PnppfFwgOwor56e0PmjDqXxcIDsKK+ensT5jw618XCA7Civnp6w+asO5fFwgOwor56ehPmLDoXxcIDsKK+enoD5waXxcIDsKK+ennT5qdXxcIDsKK+ennD5uw618XCA7Civnp5s+cGl8XCA7Civnp5k+a8O5fFwgOwor56eXPmLDrHxcIDsKK+enhz55w6x8XCA7Civnp4Q+esStfFwgOwor56a/PnR1fFwgOwor56a1PnTDrXxcIDsKK+emsj5sw6x8XCA7CivnprA+bcOtfFwgOwor56auPmzErXxcIDsKK+emrT5tw618XCA7Civnpqg+aml8XCA7CivnpqY+ecO5fFwgOwor56alPnHDrXxcIDsKK+emoj50YXxcIDsKK+emoT5tw6B8XCA7CivnpqA+c2l8XCA7Civnpp0+asOtfFwgOwor56aYPmTDrHxcIDsKK+emlz5zaXxcIDsKK+emlT55aXxcIDsKK+emlD50w618XCA7CivnppE+d8O6fFwgOwor56aMPnppfFwgOwor56aKPnjDrHxcIDsKK+elvz5sw7l8XCA7Civnpbs+Z8O5fFwgOwor56WmPnfDunxcIDsKK+elpD55xa18XCA7CivnpZU+bcOsfFwgOwor56WUPmbDuXxcIDsKK+elhz5xw618XCA7CivnpYM+bcOgfFwgOwor56WCPnRhfFwgOwor56SzPm3DsnxcIDsKK+eksD5sw6x8XCA7CivnpKs+bMOsfFwgOwor56SqPmzDrHxcIDsKK+ekpD5jxIN8XCA7CivnpKE+YsOzfFwgOwor56SgPmPDrXxcIDsKK+ekmT7DoGl8XCA7CivnpJg+ccOsfFwgOwor56SWPnnDuXxcIDsKK+eklT5waXxcIDsKK+eklD5ww6x8XCA7CivnpJI+ecStfFwgOwor56SPPmrDrXxcIDsKK+ekjT5rZXxcIDsKK+ekiT5ow6l8XCA7CivnpIc+ecO5fFwgOwor56O/PmzDrHxcIDsKK+ejvj5kaXxcIDsKK+ejvD7DoW98XCA7Civno7Y+eMOsfFwgOwor56OvPmppfFwgOwor56OpPnFpfFwgOwor56OnPnHDrHxcIDsKK+ejoz5jw6B8XCA7Civno6A+bMWtfFwgOwor56OfPmzDuXxcIDsKK+ejnT7DoW98XCA7Civno5w+ccOsfFwgOwor56OWPmxhfFwgOwor56OSPmvElXxcIDsKK+ejjz7DoWl8XCA7Civno44+cWl8XCA7Civno40+eGl8XCA7Civno4c+cGl8XCA7Civno4M+c2l8XCA7Civnorw+bcSDfFwgOwor56K2PnHDrHxcIDsKK+eirj50w618XCA7CivnoqY+a8OofFwgOwor56KiPmvDqHxcIDsKK+eilT5xw618XCA7CivnopQ+d8WtfFwgOwor56KLPmjDqHxcIDsKK+eihj5ib3xcIDsKK+eigT5xw618XCA7CivnobU+bMWtfFwgOwor56GyPnnDuXxcIDsKK+ehoj53w7J8XCA7CivnoYs+w6BpfFwgOwor56GJPmzDuXxcIDsKK+egtj5ww7J8XCA7CivnoLU+Ym98XCA7CivnoLM+bMOofFwgOwor56CxPsOgaXxcIDsKK+egrj5uxa18XCA7CivnoKw+bMOhfFwgOwor56CqPm3FrXxcIDsKK+egqD7DoGl8XCA7CivnoKE+a2V8XCA7CivnoKA+cXV8XCA7CivnoJ4+bcOyfFwgOwor56CGPmZ1fFwgOwor56CFPmzDrHxcIDsKK+efuz5rw7l8XCA7Civnn7k+a3V8XCA7Civnn7c+esStfFwgOwor55+1PnHDrHxcIDsKK+efoD5jw6h8XCA7Civnn54+ecO5fFwgOwor55+WPnjErXxcIDsKK+efkT5sw7p8XCA7Civnn4s+bMOsfFwgOwor5565PsOgaXxcIDsKK+eeuD5qw618XCA7CivnnrI+eMO5fFwgOwor556xPnnDqHxcIDsKK+eeqD5ww7p8XCA7CivnnqQ+YsOsfFwgOwor556hPmrDrHxcIDsKK+eemT5tw7J8XCA7Civnnpg+b3V8XCA7CivnnpY+ecOsfFwgOwor556UPnrDqXxcIDsKK+eehz5taXxcIDsKK+eegj5mYXxcIDsKK+eegT5mw6F8XCA7Civnnbw+dMOsfFwgOwor552zPnhpfFwgOwor552yPmrDrHxcIDsKK+edsD5tw6B8XCA7Civnna4+ecO6fFwgOwor552qPnnDrHxcIDsKK+edqT5sw7l8XCA7CivnnaQ+YsOsfFwgOwor552dPmzDrXxcIDsKK+edjj54aXxcIDsKK+ecvT5tw7J8XCA7CivnnLI+w6hyfFwgOwor55yxPnnDrXxcIDsKK+ecqz5txK18XCA7CivnnKU+esOsfFwgOwor55ykPnnDrXxcIDsKK+ecoT5kaXxcIDsKK+ecnD5tw7J8XCA7CivnnJc+anV8XCA7CivnnJQ+ZMOgfFwgOwor55u7PnjDrHxcIDsKK+ebtT5xw6x8XCA7Civnm60+bMOsfFwgOwor55usPmfFrXxcIDsKK+ebqz5hbnxcIDsKK+ebpz5sw7p8XCA7Civnm6Y+YW58XCA7Civnm50+bMO5fFwgOwor55uZPmbFrXxcIDsKK+ebkz5nxJV8XCA7Civnm4s+Ym98XCA7Civnm4k+aMOpfFwgOwor55uHPmjDqXxcIDsKK+eavj5kw7p8XCA7Civnmrw+Z8WtfFwgOwor55q3PmfFrXxcIDsKK+earD5ow6h8XCA7Civnmqo+bMOsfFwgOwor55qnPsOgaXxcIDsKK+eaoz55w6h8XCA7Civnmp8+esOpfFwgOwor55qaPsOhaXxcIDsKK+ealT5iaXxcIDsKK+eajT5qw618XCA7Civnmok+Y8StfFwgOwor55qFPnBhfFwgOwor55qBPmTDrXxcIDsKK+eagD5iaXxcIDsKK+eZvz5qw618XCA7Civnmbw+ZmF8XCA7Civnmbo+ZmF8XCA7Civnmbk+cG98XCA7CivnmbY+Ym98XCA7Civnmac+bMOsfFwgOwor55mgPmrDrHxcIDsKK+eZmD5sw6x8XCA7CivnmZI+ecO5fFwgOwor55mLPmjDqHxcIDsKK+eZij7DoWl8XCA7CivnmYE+ZsO6fFwgOwor55i8Pm3DsnxcIDsKK+eYuz5sx5h8XCA7CivnmLE+ecOsfFwgOwor55ivPmPDuXxcIDsKK+eYnj55w6x8XCA7CivnmJw+eMOtfFwgOwor55iUPmvDuXxcIDsKK+eYjz50w7p8XCA7CivnmIk+ecO5fFwgOwor55iIPmrDrHxcIDsKK+eYhD5jw7l8XCA7CivnmII+ecSDfFwgOwor55e6PmLDrHxcIDsKK+eXtz5hbnxcIDsKK+eXtT5qw6x8XCA7Civnl7I+bcOhfFwgOwor55esPnnDrHxcIDsKK+eXoT5wdXxcIDsKK+eXnD50dXxcIDsKK+eXhj5uw6x8XCA7Civnlro+ZsOhfFwgOwor55a3PnHDrXxcIDsKK+eWqj5iw6x8XCA7Civnlp4+eHV8XCA7CivnlpU+YsStfFwgOwor55aIPmLDsnxcIDsKK+eVsD55w6x8XCA7Civnla4+bcWtfFwgOwor55WsPnnDunxcIDsKK+eVoz5kw6F8XCA7CivnlaI+YsOsfFwgOwor55WfPmPDqHxcIDsKK+eVnj5txa18XCA7CivnlZ0+bcWtfFwgOwor55WXPmTDoXxcIDsKK+eVlj53YXxcIDsKK+eVkj5txa18XCA7CivnlZA+ZsO6fFwgOwor55WJPmbDunxcIDsKK+eVhj5txa18XCA7CivnlYE+ccOtfFwgOwor55S2PmbDunxcIDsKK+eUqj5sw7l8XCA7CivnlKY+c3V8XCA7CivnlJI+d8WtfFwgOwor55SMPm91fFwgOwor55SLPmTDrHxcIDsKK+eUiD5xw6x8XCA7CivnlIY+Y8OtfFwgOwor55O1PnnDrXxcIDsKK+eTsz5ow7p8XCA7Civnk6o+YsO5fFwgOwor55OlPmzDrHxcIDsKK+eToT53w6B8XCA7Civnk50+YsOzfFwgOwor55OXPnhpfFwgOwor55OVPm3DrXxcIDsKK+eTkT5sw6x8XCA7Civnk5A+bMO6fFwgOwor55OOPmzDoHxcIDsKK+eTiz5iw7N8XCA7Civnk4g+bMOtfFwgOwor55OFPmzDrHxcIDsKK+eThD5kw7p8XCA7Civnkr4+asOsfFwgOwor55K9PnjErXxcIDsKK+eStz5sw7p8XCA7CivnkrU+ecO6fFwgOwor55KxPnPDqHxcIDsKK+eSpj7DoGl8XCA7CivnkqM+aml8XCA7CivnkpY+ccO6fFwgOwor55KRPnfDunxcIDsKK+eSiD7DoW98XCA7CivnkoI+ccOtfFwgOwor55G/PmzEq3xcIDsKK+eRuT50w7p8XCA7Civnka4+bMOsfFwgOwor55GqPm3Eg3xcIDsKK+eRpj53dXxcIDsKK+eRmD55w6l8XCA7CivnkYU+dMOtfFwgOwor55GAPnnFrXxcIDsKK+eQvT5kxa18XCA7CivnkLo+ZsOgfFwgOwor55CtPmzDuXxcIDsKK+eQmT55w7l8XCA7CivnkI0+bMOsfFwgOwor55CLPmzDrXxcIDsKK+eQiD5mw7p8XCA7Civnj7g+d8O6fFwgOwor54+3PnfFrXxcIDsKK+ePtj5kw6x8XCA7Civnj6w+eMO5fFwgOwor54+fPnPDuXxcIDsKK+ePnT54xa18XCA7Civnj5U+bMOsfFwgOwor54+MPmLDrHxcIDsKK+ePhz56xa18XCA7Civnj4Y+ecOtfFwgOwor54+BPmPDrXxcIDsKK+eOvD5jxK18XCA7Civnjrg+Y2l8XCA7CivnjrU+w6FufFwgOwor5460PnnDrHxcIDsKK+eOrT5ww618XCA7CivnjqE+ecOgfFwgOwor546ePmZ1fFwgOwor546dPnfFrXxcIDsKK+eOmD5qxK18XCA7Civnjpc+ecO6fFwgOwor546TPmTDrHxcIDsKK+eOkD5iYXxcIDsKK+eOjz5sw6h8XCA7Civnjo0+Z8SDfFwgOwor546KPnPDuXxcIDsKK+eOiD5sw7p8XCA7CivnjoY+eml8XCA7CivnjoI+ccOtfFwgOwor5428Pm3DrXxcIDsKK+eNuj50xIN8XCA7Civnjbk+bMO6fFwgOwor542oPmTDunxcIDsKK+eNpj5nw6l8XCA7CivnjaU+eMOtfFwgOwor542dPnnDuXxcIDsKK+eNmz5ww7p8XCA7CivnjZk+YsOsfFwgOwor542YPmLDrHxcIDsKK+eNkz7DoW98XCA7CivnjY8+bcO6fFwgOwor542IPnnDrHxcIDsKK+eNhD55w7l8XCA7CivnjYE+bcOgfFwgOwor54y9Pm3Eg3xcIDsKK+eMvD5iw7N8XCA7CivnjLI+aMOofFwgOwor54ywPnnDoHxcIDsKK+eMpz53b3xcIDsKK+eMpD5qw6x8XCA7CivnjJo+ecOhfFwgOwor54yJPnHDrXxcIDsKK+eMiD5iw6B8XCA7Civni7Y+eMStfFwgOwor54uzPnnDunxcIDsKK+eLpz50w6B8XCA7Civni6Q+asOtfFwgOwor54uiPmjDqXxcIDsKK+eLnD5nxa18XCA7Civni5s+cMOyfFwgOwor54uVPsSDb3xcIDsKK+eLlD5uxK18XCA7Civni5M+cGl8XCA7Civni4s+bsOtfFwgOwor54uKPmrDunxcIDsKK+eLiT5waXxcIDsKK+eLhz5tw7l8XCA7Civnir0+ecOhfFwgOwor54q7PmLDs3xcIDsKK+eKtT5xw6x8XCA7CivnirM+w6FufFwgOwor54qxPmrErXxcIDsKK+eKrj5iw6F8XCA7Civniqc+eGl8XCA7CivniqU+YsOzfFwgOwor54qkPnDDrXxcIDsKK+eKoj5kw7p8XCA7CivniqE+bMOsfFwgOwor54qbPmzDrXxcIDsKK+eKmD5tw6F8XCA7CivnipQ+eMOsfFwgOwor54qRPmrDunxcIDsKK+eKkD5rZXxcIDsKK+eKhj50w6h8XCA7CivnioI+bMOtfFwgOwor54m4PnrDrHxcIDsKK+eJtD5kxK18XCA7CivnibM+bcWtfFwgOwor54mxPmdlfFwgOwor54mtPnPDrHxcIDsKK+eJqz5nZXxcIDsKK+eJoD50YXxcIDsKK+eJmD5kw7p8XCA7CivniZQ+YsOzfFwgOwor54mBPmdlfFwgOwor54i+PsSVcnxcIDsKK+eIuj55w6l8XCA7CivniLQ+ZsWtfFwgOwor54ipPnnDuXxcIDsKK+eIoj5tw618XCA7CivniJc+ecOofFwgOwor54iQPmzDunxcIDsKK+eIjz5sw6x8XCA7CivniIo+YW98XCA7CivniIk+bMOgfFwgOwor54iHPnLDqHxcIDsKK+eIhT5tw7J8XCA7CivniIQ+bMOsfFwgOwor54iAPmLDs3xcIDsKK+eHuD5yw7p8XCA7Civnh7E+ecOsfFwgOwor54eoPnhpfFwgOwor54ehPnnDrHxcIDsKK+eHjz55w7l8XCA7Civnh4E+ecOofFwgOwor54a8PnnDrHxcIDsKK+eGuz54aXxcIDsKK+eGuj54aXxcIDsKK+eGsT5yw6h8XCA7CivnhrA+b3V8XCA7Civnhqo+ecOtfFwgOwor54apPmFvfFwgOwor54akPnnDrHxcIDsKK+eGnT5sw7l8XCA7Civnhpo+YsOsfFwgOwor54aIPnhpfFwgOwor54aGPmjDqXxcIDsKK+eGgz53w7l8XCA7CivnhoI+eMOsfFwgOwor54W/PmLDs3xcIDsKK+eFoD55w6h8XCA7CivnhZU+eGl8XCA7CivnhY8+YsOsfFwgOwor54WCPmjDqHxcIDsKK+eEuD5nxa18XCA7CivnhLc+cMOtfFwgOwor54SsPnjDrXxcIDsKK+eEpT53w7J8XCA7CivnhKQ+ZsWtfFwgOwor54SjPmrDuXxcIDsKK+eEoT53w7p8XCA7CivnhJ8+eMOtfFwgOwor54SXPmrDunxcIDsKK+eEjz5qw618XCA7CivnhI0+ZMOsfFwgOwor54SIPnhpfFwgOwor54SFPmvDuXxcIDsKK+eEgz5ow6h8XCA7CivnhIE+eGl8XCA7CivnhIA+aMO6fFwgOwor54O8Pmh1fFwgOwor54OzPnDFrXxcIDsKK+eDsD5mw7p8XCA7Civng54+cMOyfFwgOwor54OWPmfDqXxcIDsKK+eDjz53dXxcIDsKK+eDjD53w7l8XCA7Civng4U+eMO5fFwgOwor54KmPmLDoXxcIDsKK+eCpT5mw7p8XCA7CivngqM+a8SVfFwgOwor54KfPmTDoXxcIDsKK+eCkT5tw7l8XCA7Civngos+cGl8XCA7Civngog+ecOsfFwgOwor54KHPnDDsnxcIDsKK+eChj5sw7p8XCA7Civngao+ecO5fFwgOwor54GWPm3ErXxcIDsKK+eBlT5sw618XCA7CivngZE+c8SDfFwgOwor54GNPmzDrXxcIDsKK+eBiz5mxIN8XCA7CivngYg+ccO6fFwgOwor54C3PnnDrHxcIDsKK+eAsT5qw6x8XCA7CivngLA+bcOtfFwgOwor54CrPmjDunxcIDsKK+eAnT5sw6x8XCA7CivngJg+bMO6fFwgOwor54CUPmfFrXxcIDsKK+eAjj5tw7J8XCA7CivngIY+ZMO6fFwgOwor54CDPnPDrHxcIDsKK+a/vz5sw6x8XCA7Civmv7I+Z8WtfFwgOwor5r+tPsOgaXxcIDsKK+a/qD5jw618XCA7Civmv6U+eGl8XCA7Civmv6M+d8OyfFwgOwor5r+fPmrDrHxcIDsKK+a/nT5xw618XCA7Civmv5o+YsOsfFwgOwor5r+XPm3DrHxcIDsKK+a/lj5uw6x8XCA7Civmv5Q+bcStfFwgOwor5r+QPm3DrXxcIDsKK+a/jD50w6B8XCA7Civmv4g+asOtfFwgOwor5r+HPnPDqHxcIDsKK+a+vj50w6B8XCA7Civmvr0+asO5fFwgOwor5r68PnDDrHxcIDsKK+a+sj55w6h8XCA7Civmvqw+eml8XCA7CivmvqY+ecO5fFwgOwor5r6kPnrDqXxcIDsKK+a+nj55w7p8XCA7Civmvpk+eMOsfFwgOwor5r6VPmjDqXxcIDsKK+a+kz5mw7p8XCA7CivmvoU+w6BvfFwgOwor5r6BPnPDqHxcIDsKK+a+gD5zw6h8XCA7Civmvbc+YsStfFwgOwor5r22PmLDrHxcIDsKK+a9sz50w7p8XCA7CivmvbE+c8SDfFwgOwor5r2qPmTDrXxcIDsKK+a9qT55w6x8XCA7CivmvaU+c8O5fFwgOwor5r2fPnjDrHxcIDsKK+a9nT54aXxcIDsKK+a9lz5qw618XCA7CivmvZY+cMOhfFwgOwor5r2VPnfFrXxcIDsKK+a9kj5ib3xcIDsKK+a9kT5wb3xcIDsKK+a9kD5ib3xcIDsKK+a9jj5ww6x8XCA7CivmvYo+eMO5fFwgOwor5ry9PnTDrXxcIDsKK+a8tT54w7l8XCA7CivmvKw+esOsfFwgOwor5rymPmzDrXxcIDsKK+a8pT53YXxcIDsKK+a8nj5tw6x8XCA7CivmvJ0+eMOtfFwgOwor5rycPnnElXxcIDsKK+a8mj5vdXxcIDsKK+a8iD5qw6x8XCA7CivmvIc+eMStfFwgOwor5ryEPnnDoXxcIDsKK+a8gz5qw618XCA7CivmvIE+ecO6fFwgOwor5ru6PmTDrXxcIDsKK+a7uD5oxa18XCA7Civmu7c+bMWtfFwgOwor5ru2PsOhb3xcIDsKK+a7tT5tw6x8XCA7Civmu60+YsOsfFwgOwor5rusPmjDuXxcIDsKK+a7qj55w7l8XCA7Civmu5I+YsOsfFwgOwor5ruMPmTDrXxcIDsKK+a7ij5jw618XCA7Civmu4Y+aMOpfFwgOwor5rq5PnPDuXxcIDsKK+a6uD5zw7l8XCA7Civmuq0+esOpfFwgOwor5rqpPnfDuXxcIDsKK+a6pj5xaXxcIDsKK+a6pD5txIN8XCA7CivmuqE+YsOzfFwgOwor5rqePm3DrHxcIDsKK+a6mz53YXxcIDsKK+a6mj5kw6F8XCA7Civmub0+eml8XCA7Civmuag+ccO5fFwgOwor5rmlPnTDunxcIDsKK+a5pD5qw7p8XCA7CivmuaI+YsOsfFwgOwor5rmhPnnDunxcIDsKK+a5mT55w6x8XCA7CivmuZI+asOtfFwgOwor5rmRPnjFrXxcIDsKK+a5kD5tw7J8XCA7CivmuYc+ccOsfFwgOwor5rmGPnHDrHxcIDsKK+a4vz5iw6F8XCA7CivmuLM+bcStfFwgOwor5rixPsSVcnxcIDsKK+a4rj5nZXxcIDsKK+a4rD5jw6h8XCA7CivmuKc+ZMOsfFwgOwor5riSPnDDrHxcIDsKK+a4iD5qw6x8XCA7CivmuIc+a8SVfFwgOwor5riDPnLDqHxcIDsKK+a3vz5tw6x8XCA7Civmt7Q+aHV8XCA7Civmt68+ecO5fFwgOwor5renPm3DrHxcIDsKK+a3pT5sw7l8XCA7Civmt6I+ecO5fFwgOwor5regPnDDrHxcIDsKK+a3lz5qw7p8XCA7Civmt5U+bMO5fFwgOwor5reSPnFpfFwgOwor5reIPmfFrXxcIDsKK+a3gj5kw6l8XCA7Civmtr4+dMOgfFwgOwor5ra6Pmp1fFwgOwor5ra0PnfDsnxcIDsKK+a2nD5kw7p8XCA7Civmtpg+c8OsfFwgOwor5raWPmzDrHxcIDsKK+a1sz55w6x8XCA7CivmtbA+bMOsfFwgOwor5rWsPmzErXxcIDsKK+a1pT55w6x8XCA7CivmtaE+YsOzfFwgOwor5rWdPmTDrXxcIDsKK+a1iT5qxK18XCA7CivmtYI+ecOsfFwgOwor5rWAPnHFrXxcIDsKK+a0vz53dXxcIDsKK+a0sD5qw7l8XCA7CivmtKY+bcOyfFwgOwor5rSjPm3ErXxcIDsKK+a0oj55aXxcIDsKK+a0nz55w618XCA7CivmtJ0+w6BufFwgOwor5rSWPnfDunxcIDsKK+a0kT5mw7p8XCA7CivmtI8+w6lyfFwgOwor5rSNPnPDrHxcIDsKK+azsj5qxK18XCA7Civms60+ZnV8XCA7Civms6Y+asO6fFwgOwor5rOkPm7ErXxcIDsKK+aznT5zw7l8XCA7Civms5o+Y8StfFwgOwor5rOYPmh1fFwgOwor5rOSPmd1fFwgOwor5rOQPmzDqHxcIDsKK+aziz5iw6x8XCA7Civms4Y+eWl8XCA7Civms4M+asO5fFwgOwor5rOAPmp1fFwgOwor5rK3PmZhfFwgOwor5rK2PmbDunxcIDsKK+aytT5txK18XCA7CivmsrQ+bMOsfFwgOwor5rKiPm91fFwgOwor5rKePnphfFwgOwor5rKYPmLErXxcIDsKK+aylT53w7l8XCA7Civmso0+aMO5fFwgOwor5rKAPnjDuXxcIDsKK+axvz54w7l8XCA7CivmsaU+Z8WtfFwgOwor5rGaPndhfFwgOwor5rGZPnd1fFwgOwor5rGPPmTDoHxcIDsKK+awvD5uw6x8XCA7CivmsLs+bMOofFwgOwor5rCsPnnDoHxcIDsKK+awpT54aXxcIDsKK+awoz5xw6x8XCA7CivmsJw+csOsfFwgOwor5rCXPnHDrHxcIDsKK+awjT5xw7p8XCA7CivmsIE+bcO6fFwgOwor5rCAPmzHmHxcIDsKK+avvj50w6B8XCA7Civmr7w+aMOpfFwgOwor5q+0PmJpfFwgOwor5q+xPmrDunxcIDsKK+avqj5tw7p8XCA7Civmr6k+asO6fFwgOwor5q+mPsOocnxcIDsKK+avpD7ElXJ8XCA7Civmr6M+bcO5fFwgOwor5q+YPnDDrXxcIDsKK+avkD7Eg2l8XCA7Civmr4k+eWl8XCA7Civmr4Y+b3V8XCA7Civmr4Q+aml8XCA7Civmrrw+a8OpfFwgOwor5q67PmvDqXxcIDsKK+auuT55w6x8XCA7CivmrrA+ZMO6fFwgOwor5q6sPmTDuXxcIDsKK+aupz5jw7l8XCA7CivmrqI+dMOsfFwgOwor5q6dPm7DrHxcIDsKK+aunD55w6h8XCA7CivmrpQ+ecOsfFwgOwor5q6QPnPDuXxcIDsKK+auiD54w7l8XCA7Civmrb8+bcOyfFwgOwor5q2+Pm3DsnxcIDsKK+attz5sw6x8XCA7CivmrbY+ecO6fFwgOwor5q20PmzDrHxcIDsKK+atsD5zw6h8XCA7Civmra4+c8OofFwgOwor5q2rPmrDuXxcIDsKK+atqT5iw7l8XCA7Civmrag+YsO5fFwgOwor5q2fPnnDunxcIDsKK+atnT55w6x8XCA7CivmrZg+eHV8XCA7CivmrZQ+eHV8XCA7CivmrZI+dMOsfFwgOwor5q2RPmh1fFwgOwor5q2QPm91fFwgOwor5q2NPnd1fFwgOwor5q2LPnnDrXxcIDsKK+atiD7Fj3V8XCA7CivmrLg+xINpfFwgOwor5qywPnh1fFwgOwor5qyvPnjDrXxcIDsKK+asrT5oZXxcIDsKK+asqD5rw6l8XCA7CivmrKU+ecO5fFwgOwor5qydPnnDuXxcIDsKK+asmz5iw6B8XCA7CivmrJo+bMStfFwgOwor5qyQPmzErXxcIDsKK+asjj55w7l8XCA7CivmrIs+ccO6fFwgOwor5qyFPmrFrXxcIDsKK+asgj5iw7N8XCA7Civmq7g+asWtfFwgOwor5quyPnnDuXxcIDsKK+arrz5zdXxcIDsKK+arrT5qw6x8XCA7Civmq6o+bMOsfFwgOwor5quoPmzDunxcIDsKK+arnz5sw6x8XCA7Civmq50+ZMO6fFwgOwor5quZPm91fFwgOwor5quWPmzHmHxcIDsKK+arlD5sw6x8XCA7Civmq5M+bMWtfFwgOwor5quSPnPDoHxcIDsKK+arhz5ww7N8XCA7Civmq4U+aml8XCA7Civmq4E+bcOsfFwgOwor5quAPnHDrXxcIDsKK+aqvT7DqXJ8XCA7Civmqrk+eWl8XCA7Civmqrc+bcOtfFwgOwor5qq1PmrDrHxcIDsKK+aqsT5xw618XCA7CivmqqU+ecStfFwgOwor5qqdPmrDrXxcIDsKK+aqmD5iw6x8XCA7CivmqpU+asOsfFwgOwor5qqPPnDFrXxcIDsKK+aqjT55w6x8XCA7Civmqow+cMO6fFwgOwor5qqLPmp1fFwgOwor5qm9PnTDoHxcIDsKK+aptj5qw618XCA7Civmqa0+Z3V8XCA7CivmqZ8+aml8XCA7CivmqZo+c8O5fFwgOwor5qmFPm3Ds3xcIDsKK+apgz5mYXxcIDsKK+aouD5ww7p8XCA7CivmqLI+w6hyfFwgOwor5qiaPmzDuXxcIDsKK+aolj5rZXxcIDsKK+aokj5tw6x8XCA7CivmqJA+bMWtfFwgOwor5qiNPmppfFwgOwor5qiCPmzDqHxcIDsKK+antz55w6x8XCA7Civmp7Q+aMO5fFwgOwor5qeyPmjDunxcIDsKK+anoz5xxK18XCA7Civmp6I+eMOtfFwgOwor5qeSPnjDuXxcIDsKK+aniT5qw618XCA7Civmp4U+Z8OpfFwgOwor5qeCPmjDqXxcIDsKK+amvj5nxa18XCA7Civmpr0+eGl8XCA7Civmprw+a8OofFwgOwor5qa5PnNpfFwgOwor5qaqPm3DoHxcIDsKK+amoT5zw7l8XCA7Civmpp8+esStfFwgOwor5qaZPnTEg3xcIDsKK+amlj5nxa18XCA7CivmppM+bcOsfFwgOwor5qaRPmbDuXxcIDsKK+amjz55w6x8XCA7CivmpoM+ZsO6fFwgOwor5qW9PmzDqHxcIDsKK+altT5qw618XCA7CivmpbQ+ZMOsfFwgOwor5qWwPnnDunxcIDsKK+alrT55w6h8XCA7Civmpao+ecOofFwgOwor5qWhPnnDunxcIDsKK+alnD5ow7p8XCA7CivmpZs+aMO5fFwgOwor5qWYPm3DuXxcIDsKK+allT5qw618XCA7CivmpZI+c2l8XCA7CivmpYs+bMOgfFwgOwor5qWIPnh1fFwgOwor5qWFPmLDrHxcIDsKK+algD55xa18XCA7CivmpLg+ecOtfFwgOwor5qSePnjDrHxcIDsKK+aklD56aXxcIDsKK+akjz55YXxcIDsKK+akiD5qw7p8XCA7CivmpIc+asWtfFwgOwor5qSCPmzDuXxcIDsKK+ajtD5mw7p8XCA7Civmo7M+a8SVfFwgOwor5qOyPnFpfFwgOwor5qOrPnnDuXxcIDsKK+ajqD5xxK18XCA7Civmo50+Z8O5fFwgOwor5qOcPnnDuXxcIDsKK+ajmz55w7l8XCA7Civmo5k+bMOsfFwgOwor5qOPPnTDqHxcIDsKK+ajjD5hb3xcIDsKK+ajij5xw618XCA7Civmo4Q+ccOsfFwgOwor5qODPmzDrXxcIDsKK+aiuD5sw618XCA7Civmoq4+asO6fFwgOwor5qKpPmzDrXxcIDsKK+ainj5qw6x8XCA7CivmopE+ZMOtfFwgOwor5qKQPmLDrHxcIDsKK+aijj5hb3xcIDsKK+aijD50w7p8XCA7Civmooo+ZMOsfFwgOwor5qKAPmPDuXxcIDsKK+ahvD5xaXxcIDsKK+ahuD54aXxcIDsKK+ahsj5iw7N8XCA7CivmoY8+asO6fFwgOwor5qGNPmt1fFwgOwor5qGLPnnDrXxcIDsKK+ahhz5hbnxcIDsKK+agvz5mw7p8XCA7CivmoLU+bMOsfFwgOwor5qCwPmbDoXxcIDsKK+agrj7ElXJ8XCA7CivmoK0+w6lyfFwgOwor5qCnPnnDrHxcIDsKK+agpT56aXxcIDsKK+agnD5zw7l8XCA7CivmoJs+bMOsfFwgOwor5qCYPnnErXxcIDsKK+aglD5xw6x8XCA7Civmn74+Y8OofFwgOwor5p+2PnPDrHxcIDsKK+afsj5iw6x8XCA7Civmn60+Ym98XCA7Civmn6s+ZsO6fFwgOwor5p+qPmFvfFwgOwor5p+oPnB1fFwgOwor5p+nPmd1fFwgOwor5p+OPmZ1fFwgOwor5p+MPmPDrXxcIDsKK+afhz5ow6l8XCA7Civmn4Y+bGF8XCA7Civmn4U+bsStfFwgOwor5p+CPnnDrXxcIDsKK+afgD5ixK18XCA7Civmnr0+ecOofFwgOwor5p68PnnDqHxcIDsKK+aeuz55w6x8XCA7Civmnrk+ZnV8XCA7CivmnrI+eMStfFwgOwor5p6xPnnDrXxcIDsKK+aelj5rw6h8XCA7CivmnpI+ecOhfFwgOwor5p6RPmjDuXxcIDsKK+aejj5mw7p8XCA7Civmno0+ecOsfFwgOwor5p6IPmLDrHxcIDsKK+aehj5ixK18XCA7CivmnoU+aml8XCA7Civmnas+c8OsfFwgOwor5p2pPm3DoHxcIDsKK+adpz5txIN8XCA7CivmnZ0+ecOtfFwgOwor5p2aPmfFrXxcIDsKK+admT55w6x8XCA7CivmnZU+ZMOsfFwgOwor5p2NPnrErXxcIDsKK+adhz53dXxcIDsKK+adhT55w7p8XCA7CivmnL8+Y8OsfFwgOwor5py8PmLErXxcIDsKK+acuD5sw6x8XCA7CivmnLM+YmF8XCA7CivmnJ4+aml8XCA7CivmnJI+bsecfFwgOwor5pyHPnDDrXxcIDsKK+acgj54w7l8XCA7Civmm7Y+aHV8XCA7Civmm6U+bMO6fFwgOwor5puePmzDrHxcIDsKK+abmD5yw7p8XCA7Civmm5c+ecOofFwgOwor5puWPsOgaXxcIDsKK+abkD5iw7N8XCA7Civmm44+ecOsfFwgOwor5puGPmzDrHxcIDsKK+abhT55w6h8XCA7Civmm4Q+ecOofFwgOwor5puBPmrDrHxcIDsKK+abgD55w6x8XCA7Civmmr8+eMStfFwgOwor5pqxPm7DrHxcIDsKK+aarz5tw7J8XCA7CivmmqY+bMOsfFwgOwor5pqjPnHDrHxcIDsKK+aaoT5iw7N8XCA7Civmmo8+ZMWtfFwgOwor5pqNPmjDqHxcIDsKK+aaij5mxa18XCA7Civmmbs+xINufFwgOwor5pm5PnnDrHxcIDsKK+aZtT5xxK18XCA7CivmmbM+eGl8XCA7CivmmbI+ecStfFwgOwor5pmePnhpfFwgOwor5pmHPnh1fFwgOwor5pi5PsSDaXxcIDsKK+aYqz54xa18XCA7CivmmKk+bcOyfFwgOwor5pibPmrDuXxcIDsKK+aYlz56w6h8XCA7CivmmJI+aHV8XCA7CivmmIg+aMO5fFwgOwor5pe0Pnh1fFwgOwor5pezPmTDrHxcIDsKK+aXoz5qw6x8XCA7Civml6E+asOsfFwgOwor5pefPnnDunxcIDsKK+aXnj5tw7N8XCA7Civml5E+ecStfFwgOwor5peJPmZ1fFwgOwor5peHPnBpfFwgOwor5peCPnHDrXxcIDsKK+aWuj53dXxcIDsKK+aWqj5xw7p8XCA7Civmlp4+ecWtfFwgOwor5paUPnnFrXxcIDsKK+aWij5xw618XCA7Civmlok+ccOtfFwgOwor5paEPmzDrHxcIDsKK+aWgz5iw6x8XCA7CivmloE+ecOsfFwgOwor5pW8PnjErXxcIDsKK+aVuj5xdXxcIDsKK+aVtT5kw618XCA7CivmlbM+w6FpfFwgOwor5pWxPsOhaXxcIDsKK+aVoT55w6x8XCA7CivmlZg+eMO5fFwgOwor5pWUPnnFrXxcIDsKK+aVjT54w7l8XCA7CivmlYs+Z8OpfFwgOwor5pWHPmPDqHxcIDsKK+aVhD53w7l8XCA7CivmlYA+YsOzfFwgOwor5pS6PnnErXxcIDsKK+aUtD5wdXxcIDsKK+aUsz5wb3xcIDsKK+aUsj5xaXxcIDsKK+aUrT5sw6x8XCA7CivmlKY+bMOsfFwgOwor5pSgPm3DrXxcIDsKK+aUjj5sw7p8XCA7CivmlIs+bMOgfFwgOwor5pO/PnTDrHxcIDsKK+aTvD5sw6x8XCA7Civmk7U+bcOzfFwgOwor5pOxPmdlfFwgOwor5pOuPmrDrXxcIDsKK+aTrD5uxK18XCA7Civmk6s+ecOofFwgOwor5pOpPnLFrXxcIDsKK+aTqD55w6l8XCA7Civmk6c+asWtfFwgOwor5pOgPmrErXxcIDsKK+aTnz5tw618XCA7Civmk5s+ecOofFwgOwor5pOaPmrDuXxcIDsKK+aTmT7DoG98XCA7Civmk5Y+Z8SVfFwgOwor5pOVPnhpfFwgOwor5pOKPmppfFwgOwor5pOIPmLFrXxcIDsKK+aThz56w6l8XCA7Civmk4Q+bMWtfFwgOwor5pK7PnTDoHxcIDsKK+aSsj5wdXxcIDsKK+aSqz5mxa18XCA7CivmkqU+Ym98XCA7CivmkqA+asStfFwgOwor5pKYPmRhfFwgOwor5pKOPnnDrHxcIDsKK+aRrj7DoW98XCA7Civmkag+bWF8XCA7CivmkaI+aMO5fFwgOwor5pGdPmzDuXxcIDsKK+aRmT5sw618XCA7CivmkZY+ccOsfFwgOwor5pGVPmTDrHxcIDsKK+aRiz5zw6B8XCA7CivmkYA+d8WtfFwgOwor5pC/PmfDqXxcIDsKK+aQuD54w618XCA7CivmkLI+d2F8XCA7CivmkLA+aMO6fFwgOwor5pCuPmfFrXxcIDsKK+aQqD50w6B8XCA7CivmkJs+ZGF8XCA7CivmkJk+bsO5fFwgOwor5pCVPmvDqHxcIDsKK+aPrD50w7p8XCA7Civmj6c+bMOgfFwgOwor5o+mPmzDoXxcIDsKK+aPpT50w6x8XCA7Civmj6Q+ZMOsfFwgOwor5o+iPmvDqHxcIDsKK+aPnz54dXxcIDsKK+aPij5ww6x8XCA7Civmjq0+cMOhfFwgOwor5o6mPnTDrHxcIDsKK+aOnD55xK18XCA7Civmjpc+ecOgfFwgOwor5o6RPnHDrXxcIDsKK+aOjj5qxK18XCA7Civmjos+ZMStfFwgOwor5o2/PnhpfFwgOwor5o29PnrDunxcIDsKK+aNrD5mxa18XCA7Civmjao+anV8XCA7CivmjZk+ecOsfFwgOwor5o2XPmLDuXxcIDsKK+aNkz55w6l8XCA7CivmjYg+dMO6fFwgOwor5oy2PmrDunxcIDsKK+aMrj50xK18XCA7CivmjKw+YsOzfFwgOwor5oycPnnDoHxcIDsKK+aMmT5qxa18XCA7CivmjJA+bsOhfFwgOwor5oyMPmfDqXxcIDsKK+aMgD5iw7J8XCA7Civmi7o+Y8OofFwgOwor5ougPmrDuXxcIDsKK+aLnj5kxK18XCA7Civmi5U+w6BvfFwgOwor5ouPPm7DoXxcIDsKK+aKvj5xdXxcIDsKK+aKuD56YXxcIDsKK+aKtz5waXxcIDsKK+aKtD55w6x8XCA7CivmirM+bsStfFwgOwor5oqyPmhlfFwgOwor5oquPnnDqHxcIDsKK+aKqj5wdXxcIDsKK+aKnj56w6l8XCA7Civmip0+xINvfFwgOwor5oqcPmLDoXxcIDsKK+aKmT5mdXxcIDsKK+aKkD5uw7l8XCA7Civmiog+YsOgfFwgOwor5oqHPmfFrXxcIDsKK+aKhT5qdXxcIDsKK+aJuz56w6x8XCA7Civmibg+eGl8XCA7Civmibc+w6BvfFwgOwor5om1PnnDunxcIDsKK+aJsT54aXxcIDsKK+aJpD53w7l8XCA7CivmiaI+Z8WtfFwgOwor5omdPmt1fFwgOwor5omcPnd1fFwgOwor5omVPmbDunxcIDsKK+aJkD5sw6h8XCA7CivmiY8+cHV8XCA7CivmiYY+ecStfFwgOwor5omFPnnDrXxcIDsKK+aIuz5sw6x8XCA7CivmiLg+aMO5fFwgOwor5oi2PmjDuXxcIDsKK+aItT5xw7p8XCA7CivmiLI+eMOsfFwgOwor5oixPnjDrHxcIDsKK+aIrz54w6x8XCA7CivmiKs+ecO5fFwgOwor5oioPmdlfFwgOwor5oiTPmdlfFwgOwor5oiCPm3DrXxcIDsKK+aHvD5qw7l8XCA7Civmh7s+asOsfFwgOwor5oevPmZ1fFwgOwor5oeqPmLDs3xcIDsKK+aHoT5txY98XCA7Civmh6A+ccOtfFwgOwor5oedPsOgaXxcIDsKK+aHmT55xa18XCA7Civmh5M+w6BpfFwgOwor5oeOPnPDqHxcIDsKK+aHjD55w6x8XCA7Civmh4U+ccO6fFwgOwor5oa2PnnDrHxcIDsKK+aGtT5waXxcIDsKK+aGsT5jw7l8XCA7Civmhq4+d8WtfFwgOwor5oahPmPDqHxcIDsKK+aGnz5zw7l8XCA7Civmhpk+eMStfFwgOwor5oaYPnjErXxcIDsKK+aGiD5xdXxcIDsKK+aFvj55w7l8XCA7Civmhb0+cWl8XCA7Civmhbw+cWl8XCA7Civmhbg+ZMOsfFwgOwor5oWqPsOydXxcIDsKK+aFoD7DoG98XCA7CivmhZQ+bcOyfFwgOwor5oWJPnjDuXxcIDsKK+aFhD5sw6x8XCA7CivmhL0+YsOzfFwgOwor5oS1Pm7DrHxcIDsKK+aEsz5qw7l8XCA7CivmhLI+Z8WtfFwgOwor5oSxPmrDrXxcIDsKK+aErT5xw618XCA7CivmhKw+c8O5fFwgOwor5oSbPsOgaXxcIDsKK+aEmT5rw6h8XCA7CivmhJg+a8OofFwgOwor5oSKPmLDrHxcIDsKK+aEhT5nw6l8XCA7Civmg78+dMOtfFwgOwor5oO7PmPDqHxcIDsKK+aDqj5kw6l8XCA7Civmg54+d3V8XCA7Civmg5Y+dMOsfFwgOwor5oOSPmjDqXxcIDsKK+aDjj5qw6x8XCA7Civmg4Q+bsOsfFwgOwor5oOBPnhpfFwgOwor5oK9PnFpfFwgOwor5oK3PmzDrHxcIDsKK+aCrj53w7l8XCA7Civmgqc+bMOsfFwgOwor5oKlPnnDrHxcIDsKK+aCoT5sw618XCA7Civmgp4+d8O5fFwgOwor5oKVPnhpfFwgOwor5oKRPmLDuXxcIDsKK+aCkD50w6x8XCA7Civmgoc+ecO5fFwgOwor5oKGPnnDuXxcIDsKK+aCgj5waXxcIDsKK+aBtD5kw6l8XCA7CivmgZ4+ecOtfFwgOwor5oGWPnNpfFwgOwor5oGTPnhpfFwgOwor5oGIPm3DunxcIDsKK+aBhD54w6x8XCA7CivmgLg+eGl8XCA7CivmgLc+eGl8XCA7CivmgLY+cGl8XCA7CivmgLQ+eMO5fFwgOwor5oCtPmLDrHxcIDsKK+aArD54w6x8XCA7CivmgKQ+ZnV8XCA7CivmgKI+dMO6fFwgOwor5oCfPmTDrHxcIDsKK+aAmj5qw7l8XCA7CivmgJg+Z8O5fFwgOwor5oCIPnnDrHxcIDsKK+aAhz5qw7l8XCA7Civlv68+ccOtfFwgOwor5b+sPnnDuXxcIDsKK+W/pj55w6h8XCA7Civlv6U+eMOsfFwgOwor5b+jPmrDrXxcIDsKK+W/oj53w7l8XCA7Civlv5o+eGl8XCA7Civlv5Q+ccOsfFwgOwor5b+HPmzDqHxcIDsKK+W/gj5xw7p8XCA7CivlvrM+ZMOpfFwgOwor5b6vPnhpfFwgOwor5b6pPmbDuXxcIDsKK+W+mz5xw6x8XCA7Civlvo0+d2F8XCA7CivlvoY+eGl8XCA7Civlvb8+ZsO6fFwgOwor5b22PmrDrXxcIDsKK+W9pz55w7l8XCA7CivlvZ4+ecOtfFwgOwor5b2cPnnDrXxcIDsKK+W9mz55w618XCA7CivlvZQ+bMO5fFwgOwor5b2RPmrDrHxcIDsKK+W9kD5qw6x8XCA7CivlvYw+bcOtfFwgOwor5b2DPmLDrHxcIDsKK+W9gj5mYXxcIDsKK+W8uz5iw6x8XCA7CivlvKw+ecOtfFwgOwor5bykPmTErXxcIDsKK+W8oz5mxa18XCA7CivlvJ0+YsOgfFwgOwor5byZPnd1fFwgOwor5byWPmjDuXxcIDsKK+W8kD7DqHJ8XCA7CivlvI0+w6hyfFwgOwor5byMPnlpfFwgOwor5byGPmrFrXxcIDsKK+W7uT5ww7J8XCA7Civlu7g+ZMOtfFwgOwor5buyPmzDrXxcIDsKK+W7rD5sw7p8XCA7Civlu6Y+YsOsfFwgOwor5buhPnfFrXxcIDsKK+W7nT5zaXxcIDsKK+W7nD50dXxcIDsKK+W7mT55w6x8XCA7Civlu5g+bMO5fFwgOwor5buFPmjDqXxcIDsKK+W7gT5jw6h8XCA7Civlur0+ecO5fFwgOwor5bq8PmPDqHxcIDsKK+W6tD5qw618XCA7Civluq8+YsStfFwgOwor5bqrPmvDuXxcIDsKK+W6qT50w7p8XCA7CivluqE+ecStfFwgOwor5bqbPmNpfFwgOwor5bqYPnlhfFwgOwor5bqMPnnEg3xcIDsKK+W6hT5txY18XCA7CivluoI+esOofFwgOwor5bm+PmppfFwgOwor5bmmPm3DrHxcIDsKK+W5oz5iw6x8XCA7CivluaA+aHV8XCA7CivluZk+bcO5fFwgOwor5bmYPnrDqXxcIDsKK+W5jj5tw6x8XCA7CivluYY+ecOsfFwgOwor5bmBPnh1fFwgOwor5bi+PmTFrXxcIDsKK+W4uj5xw618XCA7CivluKQ+csO6fFwgOwor5bigPnnDrHxcIDsKK+W4nz55w6x8XCA7CivluJ4+bcOyfFwgOwor5biXPmbDunxcIDsKK+W4kz5tw6B8XCA7CivluI0+aMO5fFwgOwor5biKPnDDoHxcIDsKK+W4gD56YXxcIDsKK+W3vz5mw7p8XCA7Civlt4g+asO6fFwgOwor5beHPnhpfFwgOwor5beBPmzDrHxcIDsKK+W2vD55xa18XCA7Civltrs+esOhfFwgOwor5ba0PsOgb3xcIDsKK+W2sz5kw6x8XCA7CivltrI+eGl8XCA7CivltrE+a8SVfFwgOwor5bavPmrDrXxcIDsKK+W2rD55w618XCA7Civltqs+ecOofFwgOwor5baqPnnDqHxcIDsKK+W2pz55w6x8XCA7CivltpM+Ym98XCA7Civlto8+YsOzfFwgOwor5baOPnnDuXxcIDsKK+W2jT54w618XCA7Civltoc+cXV8XCA7CivltoU+w6FvfFwgOwor5baAPnR1fFwgOwor5bW6PmTDrHxcIDsKK+W1tD5qw618XCA7CivltbA+Y2l8XCA7Civltag+d8WtfFwgOwor5bWmPsOhaXxcIDsKK+W1oT5jaXxcIDsKK+W1oD54aXxcIDsKK+W1nj5qaXxcIDsKK+W1mz55w7p8XCA7CivltY4+ecO6fFwgOwor5bWNPmjDqXxcIDsKK+W1hj5qaXxcIDsKK+W0uj55xK18XCA7CivltLk+dMOtfFwgOwor5bSzPnnDunxcIDsKK+W0sT56w6l8XCA7CivltKo+esO6fFwgOwor5bSlPnDErXxcIDsKK+W0lT55w6F8XCA7CivltJM+Z8O5fFwgOwor5bSSPnrDunxcIDsKK+W0jD5qdXxcIDsKK+W0iT50w6B8XCA7Civls78+d8O6fFwgOwor5bO5PnTDunxcIDsKK+Wzsj5sxK18XCA7Civls6w+YnV8XCA7Civls6s+ecOpfFwgOwor5bOiPmzErXxcIDsKK+WznD5qaXxcIDsKK+Wzmz5sxK18XCA7Civls5g+aHV8XCA7Civls5Y+YW58XCA7Civls5Q+bcWtfFwgOwor5bOTPnnDrXxcIDsKK+Wzjz7ElXJ8XCA7Civls44+YW58XCA7Civls40+bMO5fFwgOwor5bOKPmbDuXxcIDsKK+Wzhz5rZXxcIDsKK+Wzhj5oZXxcIDsKK+Wytj5ww7J8XCA7CivlsrQ+cXV8XCA7CivlsrA+YmF8XCA7Civlsqo+ZsO6fFwgOwor5bKoPnF1fFwgOwor5bKmPmrFrXxcIDsKK+Wyoj5rxJV8XCA7CivlsqA+asO5fFwgOwor5bKTPnHDrXxcIDsKK+WyiT53w7l8XCA7Civlsbw+d8O5fFwgOwor5bG1PnjDuXxcIDsKK+WxtD5sw6x8XCA7CivlsbA+bMOofFwgOwor5bGtPnjDrHxcIDsKK+WxqD5qw7l8XCA7CivlsZw+dMOsfFwgOwor5bGWPnhpfFwgOwor5bGUPm7DrXxcIDsKK+Wxkz54w6x8XCA7CivlsYQ+Yml8XCA7CivlsYM+eMOsfFwgOwor5bCzPmfFrXxcIDsKK+WwnD5nw6F8XCA7CivlsJM+xJVyfFwgOwor5bCSPsSVcnxcIDsKK+WwkD5qaXxcIDsKK+Wwgz5mdXxcIDsKK+WwgD5wxY98XCA7Civlr70+bMecfFwgOwor5a+yPnnDrXxcIDsKK+WvsT55w6x8XCA7Civlr6M+aHV8XCA7Civlr6A+asO5fFwgOwor5a+ZPnnFrXxcIDsKK+Wuuz5tw6x8XCA7Civlrqc+ecOtfFwgOwor5a6QPnnDrXxcIDsKK+Wuij50w7p8XCA7Civlrbk+YsOyfFwgOwor5a23PmzDrXxcIDsKK+Wttj56aXxcIDsKK+WttD5uxK18XCA7CivlrbI+eWF8XCA7CivlraA+c8OsfFwgOwor5a2WPnppfFwgOwor5a2LPmzDrXxcIDsKK+Wtij5txK18XCA7CivlrLs+ZMO6fFwgOwor5ay6Pm7DrHxcIDsKK+WsrD54dXxcIDsKK+WsqT55w7p8XCA7CivlrKg+Y8OtfFwgOwor5aykPm1hfFwgOwor5ayhPsOgaXxcIDsKK+Wsnz55w6x8XCA7CivlrJQ+ZsO5fFwgOwor5ayRPnnDrHxcIDsKK+Wshj54aXxcIDsKK+WshD55aXxcIDsKK+Wsgz54dXxcIDsKK+WrvD5tw7J8XCA7Civlq7U+d8WtfFwgOwor5au0Pmd1fFwgOwor5auvPsOgb3xcIDsKK+Wrrj5ow7l8XCA7Civlq60+aMO5fFwgOwor5aunPmPDqHxcIDsKK+Wrnz5uw6x8XCA7Civlq5s+eWl8XCA7Civlq5c+ecO5fFwgOwor5auVPnnDrHxcIDsKK+Wrkz5ww6x8XCA7Civlq4o+c8O5fFwgOwor5aq9Pm1hfFwgOwor5aq8PsSDb3xcIDsKK+Wqtz5yw7l8XCA7Civlqq0+eHV8XCA7Civlqqk+aMO6fFwgOwor5aqnPndhfFwgOwor5aqkPnNpfFwgOwor5aqePnTDrXxcIDsKK+WqnD5kw6x8XCA7CivlqpU+YW58XCA7CivlqpA+eGl8XCA7Civlqo0+ZsO5fFwgOwor5aqJPnd1fFwgOwor5aqCPnTDrXxcIDsKK+WqgD55w7p8XCA7Civlqa8+bMOsfFwgOwor5amuPmp1fFwgOwor5amtPnnDoHxcIDsKK+Wppj5mw7l8XCA7CivlqaA+d8OgfFwgOwor5amfPmjDuXxcIDsKK+Wplz5uw618XCA7CivlqY8+ZsO5fFwgOwor5amNPnHErXxcIDsKK+WphT5qw7p8XCA7CivlqL4+xINpfFwgOwor5ai9PmzDuXxcIDsKK+WouD5xw618XCA7CivlqLU+anV8XCA7CivlqLA+c8OsfFwgOwor5aivPnnDunxcIDsKK+Worj53xY98XCA7CivlqK0+eGl8XCA7CivlqKw+d8WtfFwgOwor5aiqPmFpfFwgOwor5aibPnnDunxcIDsKK+WolD5rw6h8XCA7CivlqJI+d8WtfFwgOwor5aiQPmZ1fFwgOwor5aerPmppfFwgOwor5aeePmrDrXxcIDsKK+Wnlj5qw7l8XCA7Civlp4k+esStfFwgOwor5aeHPmZ1fFwgOwor5aeCPmbDoXxcIDsKK+WngT54xa18XCA7Civlp4A+aMOpfFwgOwor5aa8PmLDrHxcIDsKK+Wmuj5tw7J8XCA7CivlprQ+ccOsfFwgOwor5aawPm7ErXxcIDsKK+WmrT5iw6F8XCA7Civlpqw+ZMO5fFwgOwor5aagPm7DoHxcIDsKK+WmkT5wYXxcIDsKK+Wmiz5mdXxcIDsKK+WmgD5qxK18XCA7CivlpbA+YsOsfFwgOwor5aWnPsOgb3xcIDsKK+Wlpj53w7l8XCA7CivlpaE+w6BvfFwgOwor5aWbPmjEg3xcIDsKK+WlhT5qaXxcIDsKK+Wlgz5kw6x8XCA7CivlpYA+ZW58XCA7CivlpL8+YmF8XCA7CivlpLY+YsStfFwgOwor5aSoPmbDunxcIDsKK+WkoT5xw6x8XCA7CivlpJA+eMOsfFwgOwor5aSFPmbDuXxcIDsKK+Wkgz5ndXxcIDsKK+WkgT55aXxcIDsKK+Wjuz54w7l8XCA7Civlo7o+aMO6fFwgOwor5aO3PmjDunxcIDsKK+WjtD55w6x8XCA7Civlo7E+eWl8XCA7Civlo6k+YsOgfFwgOwor5aOiPmzDrHxcIDsKK+Wjmj5sw7p8XCA7Civlo5M+eWF8XCA7Civlo5I+w6BpfFwgOwor5aOJPmrDuXxcIDsKK+Wjhj5iw7N8XCA7Civlo4Q+ecSVfFwgOwor5aOAPnDDrXxcIDsKK+Wivz55w6x8XCA7Civlorw+aml8XCA7Civloro+w6BvfFwgOwor5aK3PsOgb3xcIDsKK+Witj5kYXxcIDsKK+Wisj53xa18XCA7CivlorA+ZMSBfFwgOwor5aKsPmTEk3xcIDsKK+Wioz5wdXxcIDsKK+Wioj5iw6F8XCA7Civlopg+ccOtfFwgOwor5aKWPnTEg3xcIDsKK+WikT5kaXxcIDsKK+Wijz5ib3xcIDsKK+WijT54w6x8XCA7CivlooY+ZMOsfFwgOwor5aKEPnFpfFwgOwor5aG4PsWPdXxcIDsKK+Whtz5sxa18XCA7CivlobY+Y8O5fFwgOwor5aGzPm91fFwgOwor5aGnPsOgaXxcIDsKK+Whoj53w7l8XCA7CivloZ8+d8O5fFwgOwor5aGbPmzDrHxcIDsKK+Whlz50w7p8XCA7CivloZM+bcOsfFwgOwor5aGQPnPDuXxcIDsKK+WhiT5qw618XCA7CivloYg+asOsfFwgOwor5aCyPmrDrXxcIDsKK+WgrD55w7p8XCA7CivloKU+w6BpfFwgOwor5aCjPnnDunxcIDsKK+Wgmz5iw6x8XCA7CivloJc+dHV8XCA7CivloJY+YsWtfFwgOwor5aCTPsOgbnxcIDsKK+WgkD55w6F8XCA7CivloIw+Z8O5fFwgOwor5aCJPnnDuXxcIDsKK+WghD5uw6x8XCA7CivloIE+a8OofFwgOwor5Z+/Pm7DrXxcIDsKK+WfvD5xw618XCA7Civln7Y+ecOsfFwgOwor5Z+nPmrDuXxcIDsKK+Wfnj5kxK18XCA7Civln5w+ecSVfFwgOwor5Z+XPmLDuXxcIDsKK+Wfij5kw6x8XCA7Civlnr8+eMO5fFwgOwor5Z68PnnDrHxcIDsKK+Weuz5iw6B8XCA7CivlnrU+xINufFwgOwor5Z6YPmbDunxcIDsKK+WekD5jw618XCA7Civlno8+bMO5fFwgOwor5Z6OPmvDqHxcIDsKK+WejT5qw6x8XCA7Civlnoc+w6BvfFwgOwor5Z6APmh1fFwgOwor5Z2/PmbDuXxcIDsKK+Wduj5iw6F8XCA7Civlnbg+Ym98XCA7CivlnbY+bcO5fFwgOwor5Z20PmtlfFwgOwor5Z2yPmbDs3xcIDsKK+Wdrj5hb3xcIDsKK+WdpT5xdXxcIDsKK+Wdoz5uw6x8XCA7CivlnZw+bMOsfFwgOwor5Z2YPmTErXxcIDsKK+Wdlj5qw6x8XCA7CivlnZQ+ZMOsfFwgOwor5Z2SPmLDrHxcIDsKK+WcvT5tw7J8XCA7CivlnLw+aml8XCA7CivlnKs+ecO5fFwgOwor5ZynPnlhfFwgOwor5ZylPmzDuXxcIDsKK+WcpD5ww7p8XCA7CivlnKE+dMWtfFwgOwor5ZygPnnDoHxcIDsKK+Wcmz55w6x8XCA7CivlnJc+dMO6fFwgOwor5ZyWPnTDunxcIDsKK+WclT50w7p8XCA7CivlnJE+ZsO5fFwgOwor5ZyQPmt1fFwgOwor5Zu4PnLDrHxcIDsKK+WbkD56w6F8XCA7Civlm40+eMStfFwgOwor5ZuMPnN1fFwgOwor5ZuIPnnDrHxcIDsKK+Wbhz5sw6x8XCA7Civlm4Q+bMOtfFwgOwor5ZuDPmPDoHxcIDsKK+Wauj50w6B8XCA7Civlmrk+bGF8XCA7CivlmrM+a8O5fFwgOwor5ZqxPnjDrHxcIDsKK+WasD5tw7N8XCA7Civlmq0+cMStfFwgOwor5ZqpPmbDunxcIDsKK+Wapz5sw7p8XCA7CivlmqY+bMOsfFwgOwor5ZqkPm3Ds3xcIDsKK+Waoj7DoW98XCA7Civlmp8+bMOtfFwgOwor5ZqcPm3DsnxcIDsKK+Wamz5ow7l8XCA7Civlmpc+YsOzfFwgOwor5ZqVPmx1fFwgOwor5ZqUPnTDrHxcIDsKK+WajD5qw6x8XCA7Civlmoo+eMOsfFwgOwor5ZqIPm3EgXxcIDsKK+Wagz50w6B8XCA7CivlmoE+ZMOtfFwgOwor5Zm9PnDErXxcIDsKK+WZsz55xa18XCA7Civlma8+xINpfFwgOwor5ZmnPmFpfFwgOwor5ZmgPmRhfFwgOwor5ZmdPnNpfFwgOwor5ZmTPnh1fFwgOwor5ZmQPnHDrHxcIDsKK+WZjz54aXxcIDsKK+WZij55w7l8XCA7CivlmYg+Y8O5fFwgOwor5Zi4PmbFrXxcIDsKK+WYsD5qaXxcIDsKK+WYoj55xJV8XCA7CivlmKA+Z2F8XCA7CivlmJ0+aMO6fFwgOwor5ZicPmfEg3xcIDsKK+WYmj5kw6l8XCA7CivlmJk+cMOzfFwgOwor5ZiWPnrDqXxcIDsKK+WYlD7Fj3V8XCA7CivlmJE+aHV8XCA7CivlmIo+w6FpfFwgOwor5Ze8Pm3DsnxcIDsKK+WXuD7DoW98XCA7Civll7Y+YsOsfFwgOwor5ZexPm7DoXxcIDsKK+WXsD5haXxcIDsKK+WXoj53w6B8XCA7Civll54+eml8XCA7Civll5o+d3V8XCA7Civll5g+aml8XCA7Civll5c+d2F8XCA7Civll44+bcSDfFwgOwor5ZeLPsOgaXxcIDsKK+WXhz5zw6h8XCA7Civll4M+aMOofFwgOwor5ZeBPnTDrXxcIDsKK+WWvj5rw7l8XCA7Civllro+eMOsfFwgOwor5ZayPnnFjXxcIDsKK+WWqT55w7l8XCA7CivllqU+ZMO5fFwgOwor5ZajPnjFrXxcIDsKK+WWnj5qaXxcIDsKK+WWlj5ow7p8XCA7CivllpU+aMOpfFwgOwor5ZaFPnnDuXxcIDsKK+WVvT7DoW58XCA7CivllbI+ZMOsfFwgOwor5ZWfPnHErXxcIDsKK+WVnj55YXxcIDsKK+WVnT5ow6l8XCA7CivllZo+YsStfFwgOwor5ZWZPnTDunxcIDsKK+WVmD55w6h8XCA7CivllZQ+ccStfFwgOwor5ZWTPnHErXxcIDsKK+WVkj5odXxcIDsKK+WVjj53xa18XCA7CivllYc+ZMOtfFwgOwor5ZWAPsOhaXxcIDsKK+WUvT54aXxcIDsKK+WUuT55dXxcIDsKK+WUtT7Eg258XCA7CivllLI+w6lyfFwgOwor5ZStPnFpfFwgOwor5ZSoPnrFrXxcIDsKK+WUmz5tw6B8XCA7CivllJk+ZMOtfFwgOwor5ZSYPnHErXxcIDsKK+WUlj55xIN8XCA7CivllI4+bMOsfFwgOwor5ZSIPnnDrHxcIDsKK+WUgz5nxa18XCA7CivllII+Z8WtfFwgOwor5ZO3PmzDqHxcIDsKK+WTtT5iYXxcIDsKK+WTsT5ib3xcIDsKK+WTrD5ow6l8XCA7Civlk4s+ZMOsfFwgOwor5ZOKPnnDuXxcIDsKK+WSoT7DqHJ8XCA7CivlkqA+ccOsfFwgOwor5ZKYPmLDuXxcIDsKK+WSkz53xIN8XCA7Civlkoo+aMOpfFwgOwor5ZKIPmbDunxcIDsKK+WShz5iw6x8XCA7Civlkb8+cXV8XCA7Civlkb4+ZMOhfFwgOwor5ZG5PnnDrHxcIDsKK+WRtD54dXxcIDsKK+WRsD56xK18XCA7Civlka4+ccOsfFwgOwor5ZGtPnnDrHxcIDsKK+WRpz5kxK18XCA7CivlkZ8+bsSTfFwgOwor5ZGRPsWPdXxcIDsKK+WRiT53w7p8XCA7CivlkYc+bsOgfFwgOwor5ZGEPmfDqXxcIDsKK+WQtj5uw6B8XCA7CivlkLM+d8O6fFwgOwor5ZClPmLDuXxcIDsKK+WQmj55aXxcIDsKK+WQmD7Fj3V8XCA7CivlkJQ+bcOhfFwgOwor5ZCHPnrErXxcIDsKK+WPuz5sw6h8XCA7Civlj5I+bMOsfFwgOwor5Y+QPmLDoXxcIDsKK+WPjj5ib3xcIDsKK+WPhj7DoGl8XCA7Civljr4+ZHV8XCA7Civljro+ccO5fFwgOwor5Y6yPmzDrHxcIDsKK+WOrz5sw6x8XCA7Civljqs+w6FvfFwgOwor5Y6kPmzDrHxcIDsKK+WOoD5jw6h8XCA7Civljpc+dMOtfFwgOwor5Y6TPnnDoXxcIDsKK+WOkj5ow6l8XCA7Civljoo+ecSDfFwgOwor5Y6DPsOgbnxcIDsKK+WOgD54aXxcIDsKK+WNvT5qw618XCA7Civljbw+d8O5fFwgOwor5Y25PnjDuXxcIDsKK+WNpT54aXxcIDsKK+WNmT5qw618XCA7CivljYw+eMOsfFwgOwor5Y2GPnrDunxcIDsKK+WNgD5vdXxcIDsKK+WMvT5vdXxcIDsKK+WMvD7Eg258XCA7CivljLg+eMStfFwgOwor5Yy3PnHDunxcIDsKK+WMtT5kw7p8XCA7CivljKs+aHV8XCA7CivljKQ+cXV8XCA7CivljKI+aHV8XCA7CivljJw+ecOtfFwgOwor5YySPmTDoXxcIDsKK+WMjj7DoG58XCA7CivljIw+Z8OpfFwgOwor5YyKPmrDunxcIDsKK+WLtT5sw6x8XCA7Civli7Q+bMecfFwgOwor5YuuPmrDuXxcIDsKK+WLqT55w6x8XCA7Civli6M+aml8XCA7Civli6A+bMO5fFwgOwor5YuaPnnDrHxcIDsKK+WLmT53w7l8XCA7Civli5c+eMO5fFwgOwor5YuOPmzDuXxcIDsKK+WLij5rw6h8XCA7Civli4A+a8OofFwgOwor5Yq4PndhfFwgOwor5YquPnnDrHxcIDsKK+WKnD55YXxcIDsKK+WKmT5sw618XCA7Civlipg+bcOzfFwgOwor5YqRPmrDrHxcIDsKK+WKhz5qw7l8XCA7CivlioU+cMStfFwgOwor5Ym6PmzDrXxcIDsKK+WJpD5qw6x8XCA7CivliZ4+aml8XCA7CivliZ0+Ym98XCA7CivliZo+esOsfFwgOwor5YmYPnHDrXxcIDsKK+WJkz5sw618XCA7CivliYs+a8OofFwgOwor5YmHPnrDqXxcIDsKK+WIvj5jw6x8XCA7CivliLU+w6hyfFwgOwor5YifPmp1fFwgOwor5YiePnHDuXxcIDsKK+WInD5mw7p8XCA7CivliJU+bMOtfFwgOwor5YiPPmppfFwgOwor5YiJPmppfFwgOwor5YelPmp1fFwgOwor5YefPmTDunxcIDsKK+WHnj54aXxcIDsKK+WHmD5zaXxcIDsKK+WHkz5sw6x8XCA7Civlh5I+ecOtfFwgOwor5YeFPmfDuXxcIDsKK+WHgz50w7p8XCA7Civlhrk+ZsO6fFwgOwor5Ya0PmjDuXxcIDsKK+WGsT5ow7l8XCA7Civlhqo+bcOsfFwgOwor5YaoPmbDuXxcIDsKK+WGoz5qw7l8XCA7Civlhp4+bcOtfFwgOwor5YadPnnDrXxcIDsKK+WGlj5tw6x8XCA7CivlhpQ+eMWtfFwgOwor5YaKPmPDqHxcIDsKK+WFvz55w6x8XCA7Civlhb4+asOsfFwgOwor5YWjPmzErXxcIDsKK+WFkz5rw6h8XCA7CivlhZI+w6lyfFwgOwor5YWQPsOpcnxcIDsKK+WFjj50w7l8XCA7CivlhLc+bMOsfFwgOwor5YSuPmzDrHxcIDsKK+WEqT5zw6x8XCA7CivlhKU+ZMO6fFwgOwor5YSePm7ErXxcIDsKK+WEmz53xa18XCA7CivlhJc+bsStfFwgOwor5YSRPsOgbnxcIDsKK+WEhD55w6x8XCA7CivlhIA+ecOtfFwgOwor5YO+PsOgaXxcIDsKK+WDtz55w6h8XCA7Civlg7E+Z8O5fFwgOwor5YOwPmLDs3xcIDsKK+WDnz5qaXxcIDsKK+WDmz5xaXxcIDsKK+WDlT5ww7p8XCA7Civlg4c+bMO5fFwgOwor5YOBPnhpfFwgOwor5YOAPmTDrHxcIDsKK+WCtD55xa18XCA7CivlgqA+ZmF8XCA7CivlgpI+eGl8XCA7Civlgow+bcOgfFwgOwor5YKJPnLDuXxcIDsKK+WCgz5zw7l8XCA7CivlgoE+ZnV8XCA7Civlgbo+esOhfFwgOwor5YG0PmPDqHxcIDsKK+WBsj5zaXxcIDsKK+WBrz55xK18XCA7Civlga4+asOtfFwgOwor5YGqPmJpfFwgOwor5YGpPmbDuXxcIDsKK+WBqD5jaXxcIDsKK+WBpj54dXxcIDsKK+WBnj55w6h8XCA7CivlgZk+ZMOsfFwgOwor5YGNPnTDrXxcIDsKK+WBij55xa18XCA7CivlgLs+eWV8XCA7CivlgLY+asO5fFwgOwor5YC1PnfFrXxcIDsKK+WAsz56w6x8XCA7CivlgJs+cWl8XCA7CivlgIs+Z8OofFwgOwor5L+8PnnDuXxcIDsKK+S/uT55w6B8XCA7Civkv7A+aMOofFwgOwor5L+kPnTDrHxcIDsKK+S/mT54aXxcIDsKK+S/jD5mxa18XCA7Civkv4s+ecOsfFwgOwor5L+JPnfDuXxcIDsKK+S/iD5rw7l8XCA7Civkv4Y+eMO6fFwgOwor5L+CPnjDrHxcIDsKK+S/gT55xa18XCA7Civkvrw+YsOzfFwgOwor5L63PmrDunxcIDsKK+S+nj5yxa18XCA7CivkvpU+w6lyfFwgOwor5L6TPmzDuXxcIDsKK+S+kj5hbnxcIDsKK+S+kD54w7l8XCA7Civkvo4+bcStfFwgOwor5L29PmPDrHxcIDsKK+S9tD7DqHJ8XCA7CivkvbE+ZsSDfFwgOwor5L2uPmfDqXxcIDsKK+S9qz5ow6h8XCA7Civkvac+a8SDfFwgOwor5L2iPnHDunxcIDsKK+S9lj5iw6x8XCA7CivkvYw+Y8StfFwgOwor5L2KPmLErXxcIDsKK+S9iT5xdXxcIDsKK+S9iD5iw7l8XCA7CivkvYE+xINpfFwgOwor5L2APnPDrHxcIDsKK+S8vz55w6x8XCA7CivkvL4+cGl8XCA7CivkvLk+cXV8XCA7CivkvLU+Y8OsfFwgOwor5LyxPm7ErXxcIDsKK+S8rj5uw7p8XCA7CivkvJU+ZnV8XCA7CivkvIw+w6BpfFwgOwor5LyLPmrDrXxcIDsKK+S8hz55w6x8XCA7CivkvIM+ecO6fFwgOwor5Lu+PmRpfFwgOwor5LuxPnDDrXxcIDsKK+S7qz5tw7l8XCA7Civku6I+ZMOtfFwgOwor5LuPPmbDs3xcIDsKK+S7iD5iYXxcIDsKK+S7gj5sw6h8XCA7Civkurw+asOtfFwgOwor5LqxPnnDqHxcIDsKK+S6nj55w6B8XCA7Civkup0+ccOtfFwgOwor5LqcPnnDoHxcIDsKK+S6lj5zw6x8XCA7CivkupM+ccOtfFwgOwor5LqEPnnDrHxcIDsKK+S5uD5uxIN8XCA7CivkubY+ZsWtfFwgOwor5LmVPmjFrXxcIDsKK+S5gj7DoGl8XCA7CivkuYE+ecOtfFwgOwor5LmAPmbDunxcIDsKK+S4qD5nxJV8XCA7CivkuIw+aml8XCA7Civktqk+asOsfFwgOwor5LamPnrDqXxcIDsKK+S2pT5qxa18XCA7CivktqM+w6FpfFwgOwor5LaePnHDrXxcIDsKK+S2nD5nw7l8XCA7Civktps+bMOgfFwgOwor5LaaPnHFrXxcIDsKK+S2mT5qw7l8XCA7Civktpg+bMOsfFwgOwor5LaXPmvDqHxcIDsKK+S2lT5ww6F8XCA7CivktpM+asOsfFwgOwor5LaSPnHDrXxcIDsKK+S2kT50w6x8XCA7Civkto8+dMStfFwgOwor5LaNPmTDrHxcIDsKK+S2iD5iw7N8XCA7CivktoU+aMOpfFwgOwor5LaBPnTDoHxcIDsKK+S2gD50w6B8XCA7Civktb4+ZsO6fFwgOwor5LW9PmPDoHxcIDsKK+S1uz5nxa18XCA7CivktbY+ccO6fFwgOwor5LWxPmjDqHxcIDsKK+S1rD50w6B8XCA7Civktas+ecO5fFwgOwor5LWpPmzDrXxcIDsKK+S1oz5kw6F8XCA7CivktaA+ZMOtfFwgOwor5LWdPnnDoHxcIDsKK+S1lz5mw7p8XCA7CivktZU+asO5fFwgOwor5LWTPmzDrXxcIDsKK+S1kj5uw6x8XCA7CivktZE+bsOsfFwgOwor5LWFPsOhb3xcIDsKK+S1hD5iw618XCA7CivktLs+bMOtfFwgOwor5LS6PmLDuXxcIDsKK+S0sz5ow6h8XCA7CivktLI+bcOyfFwgOwor5LSsPnnDrHxcIDsKK+S0qj5sw7l8XCA7CivktKI+bcOtfFwgOwor5LShPmzDrHxcIDsKK+S0nj5kw618XCA7CivktJ0+YsO5fFwgOwor5LSZPnDDrHxcIDsKK+S0lz5qw7p8XCA7CivktIo+ecOtfFwgOwor5LSIPsSDdXxcIDsKK+S0hj5ww7p8XCA7CivktIQ+bMOsfFwgOwor5LSBPnnDuXxcIDsKK+SzvT5ow6h8XCA7Civks7g+bcOhfFwgOwor5LO0PmTDoXxcIDsKK+Szsz54w7l8XCA7Civks7E+d8O5fFwgOwor5LOuPm3DsnxcIDsKK+SzrT5qw618XCA7Civks6I+ccOtfFwgOwor5LOdPmLDuXxcIDsKK+SznD50w7p8XCA7Civks5o+aMOpfFwgOwor5LOQPmPDrHxcIDsKK+Szij5iw6F8XCA7Civks4c+d8WtfFwgOwor5LOEPmPDrXxcIDsKK+SzgT5iw6F8XCA7Civksr8+Y8OtfFwgOwor5LK1PmjDuXxcIDsKK+Syrz5qw618XCA7Civksqw+ccOtfFwgOwor5LKqPnjDrHxcIDsKK+Sypz5kw7l8XCA7CivksqM+ecO6fFwgOwor5LKePmzDrHxcIDsKK+SynD55w6h8XCA7CivkspU+cMWtfFwgOwor5LKRPnnDrXxcIDsKK+SykD5sxa18XCA7Civksbk+bsOgfFwgOwor5LG3PnnDunxcIDsKK+SxsT5kw6x8XCA7Civksa8+bcO6fFwgOwor5LGrPmzDoHxcIDsKK+Sxoz56w7p8XCA7CivksaE+asO6fFwgOwor5LGfPmrDuXxcIDsKK+SxnT5iw6B8XCA7CivksZs+eMO5fFwgOwor5LGaPmzDuXxcIDsKK+SxmD5sw618XCA7CivksZI+ecOsfFwgOwor5LGMPnnDrXxcIDsKK+Sxij5txK18XCA7CivksYg+ccOtfFwgOwor5LGFPm3DsnxcIDsKK+Sxgz5kxK18XCA7CivksL4+YsOgfFwgOwor5LC7PnnDunxcIDsKK+SwuT56w6l8XCA7CivksLQ+ccOsfFwgOwor5LCyPnnDoHxcIDsKK+SwsD5yw7p8XCA7CivksK8+bsStfFwgOwor5LCsPmrDunxcIDsKK+Swpj5wxK18XCA7CivksJw+bMOsfFwgOwor5LCbPmzDrHxcIDsKK+SwmT55xK18XCA7CivksJU+bMO6fFwgOwor5LCPPmrDrHxcIDsKK+SwjT5jw6x8XCA7CivksIo+YsOzfFwgOwor5LCHPnHDrXxcIDsKK+SwgD53xY98XCA7Civkr78+esO6fFwgOwor5K+9PmbFrXxcIDsKK+SvvD5kw618XCA7Civkr7g+Y8OsfFwgOwor5K+yPnDDoXxcIDsKK+SvsT5mw7l8XCA7Civkr6Y+bcOgfFwgOwor5K+lPsOgbnxcIDsKK+Svoj5tw7N8XCA7Civkr6A+xINvfFwgOwor5K+cPnTDrHxcIDsKK+Svmj7Fj3V8XCA7Civkr5k+cMOyfFwgOwor5K+XPmLDrHxcIDsKK+Sviz5iw7N8XCA7Civkr4k+ecOgfFwgOwor5K+GPnnDrHxcIDsKK+Svgj5qw618XCA7Civkrro+asOsfFwgOwor5K64PmjDunxcIDsKK+Sutz5kw7p8XCA7Civkrq8+w6BvfFwgOwor5K6tPm3DrHxcIDsKK+SurD5tw7J8XCA7Civkrqk+Z8O6fFwgOwor5K6lPmzDrHxcIDsKK+SupD5kw618XCA7CivkrqE+YsOsfFwgOwor5K6bPmbDuXxcIDsKK+SumT55w7l8XCA7Civkrpg+w6lyfFwgOwor5K6XPsOgbnxcIDsKK+Sujz53w7p8XCA7Civkro4+eMOsfFwgOwor5K6LPmzDrHxcIDsKK+Suij55w618XCA7Civkrok+bMO6fFwgOwor5K6HPnnDuXxcIDsKK+Sugj5iw7N8XCA7CivkroA+YsOzfFwgOwor5K2/PnnDrHxcIDsKK+StvD5xw618XCA7Civkrbg+ZsO5fFwgOwor5K22PnHDrXxcIDsKK+Stsj5uxK18XCA7Civkra8+YsOzfFwgOwor5K2uPmLDrHxcIDsKK+StrD5xxK18XCA7Civkras+ccStfFwgOwor5K2pPm3DrHxcIDsKK+Stpz5txK18XCA7CivkraY+YsOzfFwgOwor5K2jPmPDrXxcIDsKK+StoT7DqG58XCA7CivkrZ8+ecOofFwgOwor5K2ePnnDrHxcIDsKK+Stkz7DqG58XCA7CivkrY0+aMO6fFwgOwor5K2MPmjDunxcIDsKK+Sthz55w6x8XCA7CivkrYY+bsOofFwgOwor5K2FPmjDunxcIDsKK+Stgj55w6x8XCA7CivkrL4+dMOtfFwgOwor5Ky2PsOobnxcIDsKK+SstT7DoGl8XCA7CivkrLQ+bcOyfFwgOwor5KyuPnnDrXxcIDsKK+Ssqj5iw7N8XCA7CivkrKg+Y8O5fFwgOwor5KylPnnDrHxcIDsKK+Ssoz5xw6x8XCA7CivkrJs+YsOsfFwgOwor5KyUPnjDuXxcIDsKK+Sskz7DoG58XCA7CivkrI8+YsO5fFwgOwor5KyGPmzDrHxcIDsKK+SshT5sw6x8XCA7CivkrIQ+ecO5fFwgOwor5KyDPnPDoHxcIDsKK+SsgT55w618XCA7Civkq74+YsOsfFwgOwor5KuzPmTDunxcIDsKK+SrsT5uw6F8XCA7Civkq6g+w6BvfFwgOwor5KumPmfDqXxcIDsKK+Sroz54w618XCA7Civkq50+ZsWtfFwgOwor5KuYPmjDqXxcIDsKK+SrlD5xw6x8XCA7Civkq5M+d8O6fFwgOwor5KuNPmbFrXxcIDsKK+SrjD5wxK18XCA7Civkq4o+YsOzfFwgOwor5KuBPmLDrHxcIDsKK+Sqvj5tw618XCA7Civkqro+Z8OpfFwgOwor5Kq1PnnEg3xcIDsKK+SqrD5iw7N8XCA7Civkqp4+esOhfFwgOwor5KqdPmjDuXxcIDsKK+Sqmj5ow6h8XCA7Civkqpk+ZsO6fFwgOwor5KqWPnDDsnxcIDsKK+SqlT5qw7p8XCA7CivkqpQ+YsWtfFwgOwor5KqQPmLDrHxcIDsKK+Sqjz5uw6B8XCA7Civkqok+bMOgfFwgOwor5KqHPmLDs3xcIDsKK+Sqhj50xK18XCA7CivkqoU+ZMO6fFwgOwor5KqCPmfDqXxcIDsKK+SqgT5ixa18XCA7Civkqbs+YsOgfFwgOwor5Km0PmjDunxcIDsKK+Sprz5qw618XCA7Civkqa4+bMO5fFwgOwor5KmkPnjDrHxcIDsKK+Spoj5kw6F8XCA7CivkqZ8+ecOtfFwgOwor5KmbPmLDrHxcIDsKK+Spmj5kw6x8XCA7CivkqZg+ZMOsfFwgOwor5KmXPmLDoHxcIDsKK+Spkz5xw618XCA7CivkqZI+ecO6fFwgOwor5KmQPmfDqXxcIDsKK+Spiz5txY98XCA7CivkqYk+ZsWtfFwgOwor5Ki8PmjDuXxcIDsKK+Sosz54w6x8XCA7CivkqLE+ZsO5fFwgOwor5KiwPnDDsnxcIDsKK+SopT5ow7l8XCA7CivkqKQ+ZMOtfFwgOwor5KijPmfDqXxcIDsKK+SooD7Eg2l8XCA7CivkqJ4+ecWtfFwgOwor5KibPnPDqHxcIDsKK+Solz5mw7p8XCA7CivkqJY+asOsfFwgOwor5KiSPnnDuXxcIDsKK+SokT50w618XCA7CivkqI8+Y8OtfFwgOwor5KiGPmLDrXxcIDsKK+SogD5kw618XCA7Civkp7w+aMO6fFwgOwor5Ke1PnHDrXxcIDsKK+Snsz5jw618XCA7Civkp6g+ecOofFwgOwor5KenPnnErXxcIDsKK+SnpD5ww7p8XCA7Civkp54+ZsO5fFwgOwor5KedPmTDrHxcIDsKK+SnmD5xw618XCA7Civkp5c+YsOsfFwgOwor5KeUPm3DuXxcIDsKK+SnjT54w6x8XCA7Civkp4k+bMStfFwgOwor5KeHPm7ErXxcIDsKK+SnhT50w6x8XCA7Civkp4Q+Z8OofFwgOwor5Ka9PnjDuXxcIDsKK+Smuz5jw6x8XCA7CivkprU+bsStfFwgOwor5Ka0PnnDrHxcIDsKK+Smqj55w6B8XCA7CivkpqM+ZsO5fFwgOwor5KacPnfDunxcIDsKK+SmmT5zw6x8XCA7Civkppg+YsOsfFwgOwor5KaXPnjDuXxcIDsKK+SmjT53w7l8XCA7Civkpos+w6FvfFwgOwor5KaHPmrDrHxcIDsKK+Sluj55w6l8XCA7Civkpbg+bcOtfFwgOwor5KW2PmzDrHxcIDsKK+Slrz5iw6B8XCA7Civkpaw+YsOzfFwgOwor5KWhPnnDqHxcIDsKK+Slnz55w6h8XCA7CivkpZ0+w6FvfFwgOwor5KWYPmPDuXxcIDsKK+SllD5zw7l8XCA7CivkpY8+ecWtfFwgOwor5KWIPm3FrXxcIDsKK+SlhD5jw7l8XCA7CivkpLY+ecOofFwgOwor5KSzPnnDqHxcIDsKK+SkqD5ww6x8XCA7CivkpKA+aml8XCA7CivkpJo+bMStfFwgOwor5KSZPmzDrHxcIDsKK+Skkj5qxK18XCA7CivkpI8+cMStfFwgOwor5KSOPmrDunxcIDsKK+SkjT5tw618XCA7CivkpIk+bcOsfFwgOwor5KSFPnTDunxcIDsKK+Sjvj5tw6x8XCA7Civko70+dMStfFwgOwor5KO5PmbDoXxcIDsKK+SjtT7DqHJ8XCA7Civko7Q+eMO5fFwgOwor5KOxPnjDuXxcIDsKK+SjsD5qw7l8XCA7Civko64+cMOyfFwgOwor5KOrPmzDrXxcIDsKK+Sjqj5ww7J8XCA7Civko6c+ecOsfFwgOwor5KOlPmLErXxcIDsKK+Sjoj5qw618XCA7Civko6E+dMOtfFwgOwor5KOdPnTDunxcIDsKK+Sjlj5txIN8XCA7Civko5U+bcSDfFwgOwor5KOTPmzDrXxcIDsKK+SjjD5kxK18XCA7Civko4Q+dMO6fFwgOwor5KOBPnnFrXxcIDsKK+SiuT5qxa18XCA7CivkorM+asStfFwgOwor5KKxPmTDunxcIDsKK+Siqj5iw7N8XCA7Civkoqk+ecO5fFwgOwor5KKePm7DuXxcIDsKK+SinT55w6B8XCA7Civkopc+aMOpfFwgOwor5KKVPnjDuXxcIDsKK+SilD5nw6l8XCA7CivkopM+ecO6fFwgOwor5KKRPmTErXxcIDsKK+SikD5jw7p8XCA7Civkoow+YsOzfFwgOwor5KKLPmrDrHxcIDsKK+SihD54xK18XCA7CivkooM+ecOsfFwgOwor5KKAPnHDrHxcIDsKK+ShqT5nxa18XCA7Civkoac+d8WtfFwgOwor5KGfPnDDrHxcIDsKK+Shnj5qw7p8XCA7CivkoZw+bMO5fFwgOwor5KGUPnHErXxcIDsKK+Shjj5sw7p8XCA7CivkoY0+ZsO6fFwgOwor5KGLPnHDrXxcIDsKK+Shgz5sw6x8XCA7CivkoLk+w6FpfFwgOwor5KC1PmbDuXxcIDsKK+Sgnj5jw7l8XCA7CivkoJo+d8OgfFwgOwor5KCYPnDDrHxcIDsKK+Sgkz5jw7l8XCA7CivkoJI+aMO6fFwgOwor5KCQPnHDuXxcIDsKK+Sgjz5qw6x8XCA7CivkoI4+d8OyfFwgOwor5KCLPmLErXxcIDsKK+SgiD50w7p8XCA7Civkn78+bMO5fFwgOwor5J+8PnfFrXxcIDsKK+Sfuz5kw7l8XCA7Civkn64+ZsO6fFwgOwor5J+mPmLDoXxcIDsKK+SfpD5iw6x8XCA7Civkn6E+ZMOsfFwgOwor5J+fPmPDuXxcIDsKK+SfnD5uw6B8XCA7Civkn5s+YsOzfFwgOwor5J+aPnHDrXxcIDsKK+SflD5mw7l8XCA7Civkn5E+bMSDfFwgOwor5J+QPmzDrHxcIDsKK+Sfjz5sw6x8XCA7Civkn4w+asOtfFwgOwor5J+KPnHDunxcIDsKK+Sfhj5iw6x8XCA7Civkn4Q+ccOsfFwgOwor5J+DPmPDoHxcIDsKK+SeuD5mw7l8XCA7CivknrY+ZMOsfFwgOwor5J6zPmLDs3xcIDsKK+SesT5ow7p8XCA7Civknq8+ZsO5fFwgOwor5J6mPmjDqXxcIDsKK+SepD5xw7p8XCA7Civknp8+cMOyfFwgOwor5J6ePmbDunxcIDsKK+SenT7Eg298XCA7Civknpw+ZsO5fFwgOwor5J6aPnHDrXxcIDsKK+SemT56w6F8XCA7Civknpg+asOtfFwgOwor5J6FPnnDrXxcIDsKK+Sdvj5mw7l8XCA7Civknb0+w6BpfFwgOwor5J24PmrDrHxcIDsKK+SdtT5iw7l8XCA7CivknbA+dMOtfFwgOwor5J2vPnnDrHxcIDsKK+Sdoz5xw7p8XCA7CivknZ8+ecOgfFwgOwor5J2dPnnErXxcIDsKK+Sdmj5uw618XCA7CivknZg+ecOsfFwgOwor5J2TPmzDoHxcIDsKK+ScvT55w7p8XCA7CivknLw+Z8O6fFwgOwor5Jy6PmPDqHxcIDsKK+Scrz5qw7p8XCA7CivknKE+eMO5fFwgOwor5JyePmrDrHxcIDsKK+Scmj50w6B8XCA7CivknJk+w6FufFwgOwor5JySPsOgb3xcIDsKK+Schj5tw7J8XCA7CivknIE+eMOsfFwgOwor5Ju/PmfDqXxcIDsKK+Sbvj5zw7l8XCA7Civkm7Q+ccStfFwgOwor5JuxPnTDrXxcIDsKK+Sbrz5qw7l8XCA7Civkm6k+d8O5fFwgOwor5JunPm3DrXxcIDsKK+SbpT54w6x8XCA7Civkm6Q+Y8O5fFwgOwor5JuZPnjDuXxcIDsKK+SblT55w7l8XCA7Civkm5Q+bsOhfFwgOwor5JuRPm3DrHxcIDsKK+SbkD5jw618XCA7Civkm48+bsOtfFwgOwor5JuOPmjDuXxcIDsKK+Sbiz5nw6l8XCA7Civkm4k+bcOsfFwgOwor5Jq5PnDErXxcIDsKK+Satz54w6x8XCA7CivkmrQ+d8OgfFwgOwor5JqwPnDErXxcIDsKK+Saqz7DoW98XCA7CivkmqM+dMOtfFwgOwor5JqdPnrDunxcIDsKK+Samz5ow7p8XCA7CivkmpU+bMOsfFwgOwor5JqQPmrDrXxcIDsKK+SajT5xw6x8XCA7Civkmok+ccOsfFwgOwor5JqGPsWPdXxcIDsKK+SahD5sw7l8XCA7CivkmoI+aMOofFwgOwor5Jm9PnjDrHxcIDsKK+SZuD5kw6l8XCA7Civkmbc+ZMOpfFwgOwor5JmxPmTDunxcIDsKK+SZsD5sw618XCA7Civkma8+Y8O5fFwgOwor5JmjPnPDoHxcIDsKK+SZlz50w6x8XCA7CivkmZI+eMO5fFwgOwor5JmQPmvDqHxcIDsKK+SZjz5iw7N8XCA7CivkmYQ+ccOsfFwgOwor5Ji9Pm7DrXxcIDsKK+SYuz5zw7l8XCA7CivkmLg+ecOsfFwgOwor5Ji1PmzDuXxcIDsKK+SYsT55w7l8XCA7CivkmK4+c8OgfFwgOwor5JimPm7DrXxcIDsKK+SYoz56xK18XCA7CivkmKE+YsStfFwgOwor5JigPmbDunxcIDsKK+SYnT55w6x8XCA7CivkmJg+ecO5fFwgOwor5JiPPnjDuXxcIDsKK+SYjD5uw6x8XCA7CivkmIg+bMOsfFwgOwor5JiEPmbDuXxcIDsKK+SYgz5tw7J8XCA7CivkmIE+Z8OpfFwgOwor5JiAPmbDuXxcIDsKK+SXuT5jw6x8XCA7Civkl7c+ecOsfFwgOwor5Je2PmzDoHxcIDsKK+SXsT5ww7p8XCA7Civkl6s+bcOhfFwgOwor5JeoPnnDunxcIDsKK+SXnz55w6x8XCA7Civkl5o+YsOzfFwgOwor5JeYPmfDqXxcIDsKK+SXkT55w6x8XCA7Civkl40+bMStfFwgOwor5JeHPmrDunxcIDsKK+SXhD5mxa18XCA7Civkl4I+aMWtfFwgOwor5JeBPmrDrHxcIDsKK+SWvz5sw618XCA7Civklr0+bMOtfFwgOwor5JaqPmPDrXxcIDsKK+SWqT5iw6x8XCA7Civklqc+bsOgfFwgOwor5JalPmzDrXxcIDsKK+SWmD50w7p8XCA7CivklpU+esWtfFwgOwor5JaTPm7DoHxcIDsKK+SWkT5tw6x8XCA7Civkloo+ecOtfFwgOwor5JaHPnnDuXxcIDsKK+SWgT55w6x8XCA7Civklbs+Z8OpfFwgOwor5JW5PnrDoXxcIDsKK+SVtz5tw618XCA7CivklbY+aMO5fFwgOwor5JWzPm3DrXxcIDsKK+SVrj5qw7p8XCA7Civklao+esOpfFwgOwor5JWlPm7ErXxcIDsKK+SVoz5ow6l8XCA7CivklaE+bMWtfFwgOwor5JWXPmLDrHxcIDsKK+SVjj5mw7p8XCA7CivklY0+ecOsfFwgOwor5JWJPnrDqXxcIDsKK+SUvT7DoGl8XCA7CivklLw+c8OofFwgOwor5JS2PnTDrXxcIDsKK+SUtD5jw6h8XCA7CivklLA+ZsO6fFwgOwor5JSvPmjDunxcIDsKK+SUrD55w6x8XCA7CivklKc+bMOtfFwgOwor5JSjPmzDrXxcIDsKK+SUoT55w7p8XCA7CivklJU+cMO6fFwgOwor5JSTPnjFrXxcIDsKK+SUjj5zw7l8XCA7CivklIk+bMOsfFwgOwor5JSHPnHErXxcIDsKK+SUhj5sw618XCA7CivklIM+esWtfFwgOwor5JSCPnrErXxcIDsKK+SUgT5sw6x8XCA7Civkk70+asOsfFwgOwor5JO8PmjDqHxcIDsKK+STuT55w6x8XCA7Civkk68+ZMO6fFwgOwor5JOrPmrDrHxcIDsKK+STpz5jw6x8XCA7Civkk6U+bMOgfFwgOwor5JOiPmfDuXxcIDsKK+SToD50w6B8XCA7Civkk54+bMOsfFwgOwor5JObPmbFrXxcIDsKK+STmj5jw7p8XCA7Civkk4k+ecOpfFwgOwor5JOIPnnDrHxcIDsKK+SThz54w6x8XCA7Civkk4U+ccOtfFwgOwor5JODPnnDrHxcIDsKK+SSuz5xxK18XCA7Civkkqw+bcOyfFwgOwor5JKpPmjDqXxcIDsKK+SSpz5xw7l8XCA7CivkkqU+ZsOgfFwgOwor5JKkPnLDrHxcIDsKK+SSlz5xw6x8XCA7Civkkok+d8WtfFwgOwor5JKIPmLFrXxcIDsKK+SShz5mw7l8XCA7CivkkoQ+YsOzfFwgOwor5JKBPmrDrHxcIDsKK+SSgD5mw7p8XCA7Civkkb8+c8O5fFwgOwor5JG9PmTDoXxcIDsKK+SRtT5tw7l8XCA7CivkkbQ+ccOtfFwgOwor5JGwPmLDuXxcIDsKK+SRrz5kw6x8XCA7Civkka0+ZMOsfFwgOwor5JGnPmbDunxcIDsKK+SRnD50w6B8XCA7CivkkZE+cMO6fFwgOwor5JGIPmLDs3xcIDsKK+SRhD5ww6x8XCA7CivkkYI+xINpfFwgOwor5JGBPnfDuXxcIDsKK+SRgD5ww6x8XCA7CivkkL8+w6FvfFwgOwor5JC8PnjDrHxcIDsKK+SQsz55w7p8XCA7CivkkKg+Z8WtfFwgOwor5JChPnHDrXxcIDsKK+SQmj5qw618XCA7CivkkJk+Z8OpfFwgOwor5JCXPmTFrXxcIDsKK+SQlj55w618XCA7CivkkJU+asOtfFwgOwor5JCKPmTDoXxcIDsKK+SQiT56w6x8XCA7CivkkIU+ecOtfFwgOwor5JCCPmzDuXxcIDsKK+SQgD5qw6x8XCA7Civkj78+ccStfFwgOwor5I+9PmLDuXxcIDsKK+SPuD55w7p8XCA7Civkj7Y+YsOsfFwgOwor5I+xPmrDunxcIDsKK+SPrj54w618XCA7Civkj6o+w6hyfFwgOwor5I+nPm7DoXxcIDsKK+SPpD5zw6x8XCA7Civkj6I+YsStfFwgOwor5I+gPnHDrHxcIDsKK+SPnj5tw7J8XCA7Civkj5g+cMStfFwgOwor5I+RPmTDrHxcIDsKK+SPjD5xw6x8XCA7Civkj4s+c8O5fFwgOwor5I+FPnHDrHxcIDsKK+SPgD5sw6B8XCA7Civkjrw+bMO5fFwgOwor5I64PnfDuXxcIDsKK+SOtj7DqHJ8XCA7CivkjrU+YsOsfFwgOwor5I6zPnfDoHxcIDsKK+SOsT5iw6B8XCA7Civkjq4+dMOsfFwgOwor5I6sPmLDoHxcIDsKK+SOqj5uw6h8XCA7Civkjqg+w6BufFwgOwor5I6jPnPDrHxcIDsKK+SOoj5xxK18XCA7CivkjqA+w6lyfFwgOwor5I6fPsOpcnxcIDsKK+SOmD5zw7l8XCA7CivkjpM+dMOgfFwgOwor5I6RPmzDuXxcIDsKK+SOjz7DoG58XCA7Civkjo4+bsOgfFwgOwor5I6MPmPDuXxcIDsKK+SOiz5ow6h8XCA7Civkjoo+cMOyfFwgOwor5I6IPnnDrHxcIDsKK+SOhT5mw7l8XCA7CivkjoE+aMO6fFwgOwor5I29PmzDrHxcIDsKK+SNuD5iw7N8XCA7CivkjbE+eMO6fFwgOwor5I2oPmLDs3xcIDsKK+SNpj5sw618XCA7CivkjaQ+asStfFwgOwor5I2iPnfDunxcIDsKK+SNoD5sw618XCA7CivkjZ4+ecO5fFwgOwor5I2dPnTDoHxcIDsKK+SNmz5nw7l8XCA7CivkjZg+bcOtfFwgOwor5I2WPmbDunxcIDsKK+SNlT5kxK18XCA7CivkjZM+aMO5fFwgOwor5I2NPmfFrXxcIDsKK+SNjD5iw7l8XCA7CivkjYc+dMOgfFwgOwor5I2CPnnDunxcIDsKK+SMvz5mw7p8XCA7CivkjLs+ecOsfFwgOwor5Iy6PsSVcnxcIDsKK+SMqT5tw6x8XCA7CivkjKE+dMStfFwgOwor5IyfPmLDrHxcIDsKK+SMmj5zw7l8XCA7CivkjJg+bcOtfFwgOwor5IyXPmbFrXxcIDsKK+SMlT5tw618XCA7CivkjJQ+w7J1fFwgOwor5IySPmzDuXxcIDsKK+SMkD5tw6x8XCA7CivkjI8+bcOsfFwgOwor5IyMPnHDrHxcIDsKK+SMiD50w6B8XCA7CivkjII+w7J1fFwgOwor5Iu5PmbDunxcIDsKK+SLtj54w7l8XCA7Civki7U+ecOsfFwgOwor5IuwPmrDunxcIDsKK+SLrz5xxK18XCA7Civki6k+w6lyfFwgOwor5IuoPmbFrXxcIDsKK+SLpz5xw7p8XCA7Civki6U+bMOtfFwgOwor5IugPmLFrXxcIDsKK+SLnz5qw6x8XCA7Civki5s+bcOtfFwgOwor5IuaPnnDrHxcIDsKK+SLmT7ElXJ8XCA7Civki5Y+ecO5fFwgOwor5IuUPmLDrHxcIDsKK+SLiD5yw7p8XCA7Civkir8+YsOzfFwgOwor5Iq+Pm3DuXxcIDsKK+SKuj5nxa18XCA7CivkirM+bcOtfFwgOwor5IquPmTDrXxcIDsKK+SKqj5sw6x8XCA7Civkiqc+YsOsfFwgOwor5IqmPnnDoXxcIDsKK+SKoD54w6x8XCA7Civkips+c8SDfFwgOwor5IqQPsOobnxcIDsKK+SKjT5sw618XCA7Civkioc+YsO5fFwgOwor5IqCPmPDqHxcIDsKK+SKgD5ow7p8XCA7Civkib8+aMO6fFwgOwor5Im+Pm3DrHxcIDsKK+SJuz5xw618XCA7Civkias+bMOtfFwgOwor5ImoPnnDrHxcIDsKK+SJoj5zw6h8XCA7CivkiZ0+ccStfFwgOwor5ImbPnnDuXxcIDsKK+SJkT5tw7N8XCA7CivkiYk+aMO6fFwgOwor5Ii7PnDDunxcIDsKK+SIuD5ow7p8XCA7CivkiLM+dMOgfFwgOwor5IiuPmrFrXxcIDsKK+SIrD5ww7p8XCA7CivkiKs+bsOgfFwgOwor5IiqPnjDrHxcIDsKK+SInz5jw6h8XCA7CivkiJ4+ZMWtfFwgOwor5IiYPmPDrXxcIDsKK+SIkz5nw6l8XCA7CivkiI4+ecOofFwgOwor5IiLPnTDoHxcIDsKK+SIhT55w7l8XCA7Civkh7c+YsStfFwgOwor5Ie1PnnDrXxcIDsKK+SHsT5uw6B8XCA7Civkh6k+ecOsfFwgOwor5IelPnrDqXxcIDsKK+SHoz5uw6B8XCA7Civkh6I+a8WtfFwgOwor5IeYPmjDuXxcIDsKK+SHkT5iw6B8XCA7Civkh5A+bMOsfFwgOwor5IeFPmbDoXxcIDsKK+SHgz5zw6x8XCA7Civkhr8+ecOsfFwgOwor5Ia9PmrDuXxcIDsKK+SGtz55w7l8XCA7Civkhp8+Z8OpfFwgOwor5IaJPmLDoHxcIDsKK+SGhT5jw618XCA7Civkhb0+Z8WtfFwgOwor5IW7PmzDrXxcIDsKK+SFuD56w7p8XCA7Civkhbc+dMO6fFwgOwor5IWyPnHDrXxcIDsKK+SFsD7ElW58XCA7Civkhaw+w6BpfFwgOwor5IWkPnHDrHxcIDsKK+SFoT54xa18XCA7CivkhaA+dMOtfFwgOwor5IWePm7DoHxcIDsKK+SFlj7Eg258XCA7CivkhZM+asWtfFwgOwor5IWKPmTDuXxcIDsKK+SFiT55w6B8XCA7CivkhYc+c8O5fFwgOwor5IWGPnrDrHxcIDsKK+SFhD5sw6x8XCA7CivkhYI+aMOpfFwgOwor5IWBPsOgbnxcIDsKK+SEvz55w6x8XCA7CivkhLg+cMOyfFwgOwor5IS2PmLDrHxcIDsKK+SEsD55w6F8XCA7CivkhKw+ecOtfFwgOwor5ISrPnHErXxcIDsKK+SEqD55w7p8XCA7CivkhKI+ccOtfFwgOwor5IScPmzDrXxcIDsKK+SElD5qxa18XCA7CivkhI8+ecO6fFwgOwor5ISOPnHErXxcIDsKK+SEjT5kw7l8XCA7CivkhIE+ecOsfFwgOwor5IO+PmLErXxcIDsKK+SDvT5mw7p8XCA7Civkg7s+YsOgfFwgOwor5IO6Pm3Ds3xcIDsKK+SDsz5sw6B8XCA7Civkg68+bMOsfFwgOwor5IOuPmTDoXxcIDsKK+SDpD5zw7l8XCA7Civkg5o+Y8O5fFwgOwor5IOZPmzDuXxcIDsKK+SDlj53w7l8XCA7Civkg5I+aMOpfFwgOwor5IOOPnrDqXxcIDsKK+SDiz55w7p8XCA7Civkg4o+asWtfFwgOwor5IK/PnTDoHxcIDsKK+SCsj5mxIN8XCA7CivkgrA+bMOgfFwgOwor5IKkPmbDuXxcIDsKK+SCoz5jw618XCA7CivkgqE+ZMStfFwgOwor5IKbPnnDunxcIDsKK+SCjT5iw7N8XCA7Civkgoo+ecO5fFwgOwor5IKGPnjDuXxcIDsKK+SCgj5xw7p8XCA7Civkgb8+bcOyfFwgOwor5IG8Pm3DsnxcIDsKK+SBuz5sw6x8XCA7Civkgbk+YsOsfFwgOwor5IGxPsOgdXxcIDsKK+SBqz5ow7p8XCA7Civkgak+ecO6fFwgOwor5IGmPnHDuXxcIDsKK+SBpT5uw6x8XCA7CivkgZI+asOtfFwgOwor5IGMPnnDuXxcIDsKK+SBij53w7J8XCA7CivkgYk+ccOsfFwgOwor5IGIPnHDrHxcIDsKK+SBhz5tw6x8XCA7CivkgYY+xINufFwgOwor5IC/PmTDrHxcIDsKK+SAvj5kxa18XCA7CivkgLg+ZMOsfFwgOwor5ICzPsOgaXxcIDsKK+SAsj5tw7l8XCA7CivkgLA+Z8WtfFwgOwor5ICvPmLFrXxcIDsKK+SApj5nxa18XCA7CivkgKM+YsOsfFwgOwor5ICgPnHDunxcIDsKK+SAnD5nxa18XCA7CivkgJk+ccOsfFwgOwor5ICYPnjDrXxcIDsKK+SAkT5uw6B8XCA7CivkgIg+ccOsfFwgOwor5ICHPmfFrXxcIDsKK+O/vz55xIN8XCA7Civjv7k+dMOgfFwgOwor47+wPsOhb3xcIDsKK+O/rz5kw6F8XCA7Civjv6s+YsOsfFwgOwor47+oPmzDrHxcIDsKK+O/pT5ow7p8XCA7Civjv6M+aMOpfFwgOwor47+bPmzDrXxcIDsKK+O/mT5ww6x8XCA7Civjv5Y+bMO6fFwgOwor47+HPnjDrXxcIDsKK+O/hD7DoGl8XCA7Civjvro+bcOgfFwgOwor4762PmfFrXxcIDsKK+O+tT5qw6x8XCA7CivjvrA+aMO6fFwgOwor476oPnHErXxcIDsKK+O+pz5rw6h8XCA7CivjvqU+eMO5fFwgOwor476fPmLDuXxcIDsKK+O+lj5sxK18XCA7CivjvpI+asOsfFwgOwor476RPmTDoXxcIDsKK+O+kD5sw6x8XCA7Civjvoo+asOtfFwgOwor476IPmbDuXxcIDsKK+O+hz5tw7l8XCA7CivjvoU+c8OsfFwgOwor476EPmTDunxcIDsKK+O9vj53w7l8XCA7Civjvb0+Z8O5fFwgOwor4726PmrDrXxcIDsKK+O9rz54w618XCA7Civjvaw+ZsO5fFwgOwor472kPmrDunxcIDsKK+O9oz55w7l8XCA7CivjvaI+xINufFwgOwor472dPmzDrHxcIDsKK+O9iD55w6x8XCA7CivjvYI+c8OgfFwgOwor472BPmzDrHxcIDsKK+O8vj5sw7l8XCA7CivjvLY+ecO6fFwgOwor47y1PmTDrHxcIDsKK+O8tD7Fj3V8XCA7CivjvKQ+ccOsfFwgOwor47yYPnfEg3xcIDsKK+O8lj5sw6x8XCA7CivjvIw+ecWtfFwgOwor47yLPmfFrXxcIDsKK+O7uj5sw6x8XCA7Civju7c+asOtfFwgOwor47u2PmLErXxcIDsKK+O7rz50w7p8XCA7Civju60+c8OofFwgOwor47usPnTDunxcIDsKK+O7qz5iw6x8XCA7Civju6A+dMO6fFwgOwor47udPmzDoHxcIDsKK+O7kT5qw6x8XCA7Civju44+bMOsfFwgOwor47uNPnfDunxcIDsKK+O7jD50w7p8XCA7Civju4s+bMOgfFwgOwor47uJPmLDuXxcIDsKK+O6vz55w618XCA7Civjurc+eMO5fFwgOwor47quPnnDunxcIDsKK+O6rT56xK18XCA7Civjuqo+cMO6fFwgOwor47qhPmzDrHxcIDsKK+O6nj55w7p8XCA7Civjupo+dMSDfFwgOwor47qJPmjDuXxcIDsKK+O6hD55xa18XCA7Civjubo+dMOgfFwgOwor47m4Pm7DrXxcIDsKK+O5sz53w7p8XCA7CivjubE+aMO6fFwgOwor47muPm3DsnxcIDsKK+O5rT55w6x8XCA7Civjuas+eMOsfFwgOwor47mYPnLDunxcIDsKK+O5kz55w6x8XCA7CivjuZI+cMWtfFwgOwor47mRPnPDrHxcIDsKK+O5jT5kw618XCA7CivjuYg+bMOtfFwgOwor47mHPmjDqXxcIDsKK+O5hD5qw6x8XCA7CivjuYM+YsOsfFwgOwor47mCPmPDrHxcIDsKK+O5gD5iw7N8XCA7CivjuL8+ZMO6fFwgOwor47i7PnPDrHxcIDsKK+O4qT7DoG58XCA7CivjuKY+aMO5fFwgOwor47ijPnnDqHxcIDsKK+O4mj5sxK18XCA7CivjuJM+bcOsfFwgOwor47iPPm3DrXxcIDsKK+O4jT54w6x8XCA7CivjuIo+bMOgfFwgOwor47iEPmrDrHxcIDsKK+O3uz53w7p8XCA7Civjt7U+bcOyfFwgOwor47e0PmfDqXxcIDsKK+O3sD5sw618XCA7Civjt6w+bcOyfFwgOwor47emPnjDuXxcIDsKK+O3pD5ow6h8XCA7Civjt5I+ecO6fFwgOwor47eOPmjDqHxcIDsKK+O2vz5iw7N8XCA7CivjtqA+ecOsfFwgOwor47abPnnDunxcIDsKK+O2mj5iw6B8XCA7Civjtb8+eMOtfFwgOwor47WyPnfFrXxcIDsKK+O1sD54w7l8XCA7Civjtas+bsStfFwgOwor47WpPnnDrHxcIDsKK+O1qD5iw6x8XCA7Civjtac+Z8OpfFwgOwor47WlPmLDrHxcIDsKK+O1oz5rxJV8XCA7CivjtZ0+ecOsfFwgOwor47WXPmbDuXxcIDsKK+O1kT5ow6h8XCA7CivjtYs+bcOsfFwgOwor47S+PmLDs3xcIDsKK+O0vD5zw7l8XCA7CivjtLg+bsOgfFwgOwor47S1Pm3DrHxcIDsKK+O0nT5sw618XCA7CivjtJU+asOtfFwgOwor47SUPnPDqHxcIDsKK+O0kj55w6x8XCA7CivjtJE+c8O5fFwgOwor47SLPnPDuXxcIDsKK+O0iT5qxK18XCA7CivjtIE+ecOsfFwgOwor47O9Pm3ErXxcIDsKK+OzvD5iw6x8XCA7Civjs7s+esOpfFwgOwor47O1PmrDrHxcIDsKK+OztD5tw6x8XCA7Civjs6s+dMOgfFwgOwor47OnPnjDrXxcIDsKK+OzpT5qw7l8XCA7Civjs6A+dMOgfFwgOwor47ObPnnDunxcIDsKK+Ozmj55w7l8XCA7Civjs5E+ecOsfFwgOwor47OQPnPDoHxcIDsKK+OzjT5iw7l8XCA7Civjs4c+ZsO5fFwgOwor47OBPnrDqHxcIDsKK+Oyvj55xa18XCA7Civjsrw+ecOsfFwgOwor47K7Pm7DrHxcIDsKK+Oyuj5qw618XCA7Civjsqs+cMO6fFwgOwor47KePnrDunxcIDsKK+OymD5xw7p8XCA7CivjsoU+asOsfFwgOwor47G6PmzDunxcIDsKK+OxuT5sw6x8XCA7Civjsbg+YsOsfFwgOwor47G0PnrDrHxcIDsKK+Oxsz5tw7J8XCA7CivjsbI+ecOsfFwgOwor47GvPsOhaXxcIDsKK+OxqT5kw7p8XCA7Civjsac+d8OyfFwgOwor47GfPmLDs3xcIDsKK+Oxnj5qw618XCA7CivjsZg+w6BufFwgOwor47GJPnnDqHxcIDsKK+Oxhz5zw6h8XCA7CivjsYU+ecOsfFwgOwor47GEPm3DsnxcIDsKK+OwvT5txK18XCA7CivjsLs+ecStfFwgOwor47C3PnrDrHxcIDsKK+OwtT56w7p8XCA7CivjsLQ+cMOzfFwgOwor47CzPnnDoHxcIDsKK+Owsj54w7l8XCA7CivjsKo+d8OhfFwgOwor47CmPnHDuXxcIDsKK+OwpD5rxJV8XCA7CivjsKM+esOsfFwgOwor47CfPmrDrHxcIDsKK+OwnT55xK18XCA7CivjsJo+bMOtfFwgOwor47CYPnnDrXxcIDsKK+Owlz5jw7l8XCA7CivjsIU+ZMOtfFwgOwor47CAPmzDrXxcIDsKK+Ovtz5ww7p8XCA7Civjr60+bMWtfFwgOwor46+rPnHDunxcIDsKK+OvqT50w6x8XCA7Civjr6Y+ccOtfFwgOwor46+kPmzDrHxcIDsKK+Ovnz5sw7l8XCA7Civjr50+bMO5fFwgOwor46+bPmjDunxcIDsKK+Ovmj5kw6F8XCA7Civjr5Y+ZMOpfFwgOwor46+TPnTDoHxcIDsKK+Ovjz5nxa18XCA7Civjr4g+c8O5fFwgOwor46+HPmLDrHxcIDsKK+OvhT5ww618XCA7Civjrr8+YsOsfFwgOwor466wPmLDrXxcIDsKK+Ouqz5ow6l8XCA7Civjrqg+asOtfFwgOwor466mPnPDqHxcIDsKK+Ounz5qw618XCA7Civjrp0+aMOpfFwgOwor466aPmzDrHxcIDsKK+OulT7DqXJ8XCA7CivjrpE+ccOsfFwgOwor466CPmrDunxcIDsKK+OtvT5kxK18XCA7Civjrbw+dMOgfFwgOwor4624PnTDunxcIDsKK+Otsj5qw618XCA7CivjrbE+aMOpfFwgOwor462wPmrDrHxcIDsKK+OtoT54w6x8XCA7CivjrZg+aMOpfFwgOwor462UPmzDunxcIDsKK+Otkj5zw6x8XCA7CivjrLw+ZsO5fFwgOwor46yzPnfFrXxcIDsKK+OssT50w6x8XCA7CivjrLA+ecO6fFwgOwor46ysPmrDuXxcIDsKK+Ospz5iw7N8XCA7CivjrKU+cMO5fFwgOwor46yePmjDqHxcIDsKK+OsmD5zw7l8XCA7CivjrI8+bMOsfFwgOwor46yNPmLDs3xcIDsKK+Osgj55w7p8XCA7Civjq70+bMO5fFwgOwor46uiPnHDuXxcIDsKK+OrmT5mw7p8XCA7Civjq5g+bcOsfFwgOwor46uTPnHErXxcIDsKK+Orij55xK18XCA7Civjqr4+Z8OpfFwgOwor46q8PmvElXxcIDsKK+Oqtj5ow7p8XCA7Civjqq0+bMO6fFwgOwor46qqPnPDoHxcIDsKK+OqqT5zw7l8XCA7CivjqqQ+YsOsfFwgOwor46qhPmvElXxcIDsKK+OqmT5rxJV8XCA7CivjqpY+bMO5fFwgOwor46qSPm7DrXxcIDsKK+OqkT55w6h8XCA7CivjqpA+bMO5fFwgOwor46qPPmLErXxcIDsKK+OqjT5iw7N8XCA7Civjqok+aMOpfFwgOwor46qGPmTErXxcIDsKK+OqhD5mw7p8XCA7CivjqoM+a8SVfFwgOwor46qAPnnDunxcIDsKK+OpvT5xw618XCA7CivjqbQ+asO6fFwgOwor46mtPmLDs3xcIDsKK+OpqT5xxK18XCA7Civjqac+YsOzfFwgOwor46miPm3DrXxcIDsKK+Opnj5jw6x8XCA7CivjqZg+ecStfFwgOwor46mXPnjDrXxcIDsKK+Opjj55w6h8XCA7CivjqY0+Y8OofFwgOwor46mLPnPDuXxcIDsKK+OpgD5qw7l8XCA7CivjqL8+asO5fFwgOwor46i9PnDErXxcIDsKK+OouD5tw6B8XCA7CivjqLI+Y8OofFwgOwor46iwPmfDqXxcIDsKK+OorT5ow7l8XCA7CivjqKU+bsOgfFwgOwor46igPm3DrHxcIDsKK+Oonj5zw7l8XCA7CivjqJA+YsWtfFwgOwor46iOPnLDunxcIDsKK+OoiD5qxK18XCA7CivjqIc+cMOzfFwgOwor46e9PmfDuXxcIDsKK+Onuj50w6B8XCA7Civjp7k+dMOofFwgOwor46e0PnfFj3xcIDsKK+Onsz5iw7N8XCA7Civjp7A+bMOsfFwgOwor46erPsOpcnxcIDsKK+Onmj53xIN8XCA7Civjp5k+YsOsfFwgOwor46eXPnrErXxcIDsKK+Onjj55w6F8XCA7Civjp4o+YsOhfFwgOwor46eFPm3DuXxcIDsKK+OngT5xw7l8XCA7Civjp4A+asOtfFwgOwor46a/PmjDuXxcIDsKK+Omvj55w618XCA7Civjpr0+eMO5fFwgOwor46a7PnjDrXxcIDsKK+Omuj5yxa18XCA7Civjprg+asStfFwgOwor46a0PmfDqXxcIDsKK+OmsT53xY98XCA7CivjpqY+aMOofFwgOwor46akPnnDrHxcIDsKK+OmoT5sw6h8XCA7Civjpps+ecO6fFwgOwor46aSPmzDrXxcIDsKK+OmkD5uw6x8XCA7Civjpok+ecOsfFwgOwor46aHPmzDuXxcIDsKK+OmhT5kw6x8XCA7CivjpoQ+bcOhfFwgOwor46W/PsOgb3xcIDsKK+Olvj5uw6x8XCA7Civjpb0+Y8OofFwgOwor46W6PmjDqXxcIDsKK+Oltz55w6h8XCA7CivjpbY+c8OofFwgOwor46W0PnnDrXxcIDsKK+OlpT55w7p8XCA7CivjpaE+eMOsfFwgOwor46WgPnjFrXxcIDsKK+OlnT5txK18XCA7CivjpZs+asOtfFwgOwor46WaPnnDunxcIDsKK+OllD55w7p8XCA7CivjpZM+ccStfFwgOwor46WNPmrDrHxcIDsKK+OljD5qw7p8XCA7CivjpYI+dMOofFwgOwor46WBPmTDqXxcIDsKK+OlgD5kw6l8XCA7CivjpLg+eMOsfFwgOwor46S1PmPDrXxcIDsKK+OktD54w618XCA7CivjpLE+ZsO5fFwgOwor46SrPmTDqXxcIDsKK+OkqT5rw6h8XCA7CivjpKY+bMOsfFwgOwor46SkPnnDunxcIDsKK+Okoj54w7l8XCA7CivjpKE+bMOsfFwgOwor46SUPmbDunxcIDsKK+Okhz7Eg298XCA7CivjpIU+w6BpfFwgOwor46SCPmrDrXxcIDsKK+Ojuz55w6x8XCA7Civjo7U+dMOgfFwgOwor46OxPnrDqXxcIDsKK+OjrD5xw6x8XCA7Civjo6I+dMOtfFwgOwor46OfPnjDrHxcIDsKK+Ojmz50w6B8XCA7Civjo5k+ZMOtfFwgOwor46OOPm3DuXxcIDsKK+OjiD5zw6x8XCA7Civjo4c+bsStfFwgOwor46OGPm3DrXxcIDsKK+OjhD5xw7p8XCA7Civjo4M+ecWtfFwgOwor46OCPnnDrHxcIDsKK+OivT7ElXJ8XCA7Civjorg+YsOsfFwgOwor46K2PmLDrHxcIDsKK+Oisz5sw7p8XCA7CivjorA+YsOsfFwgOwor46KpPmTDrHxcIDsKK+Oinj55w6x8XCA7Civjopo+bMWtfFwgOwor46KKPsSDaXxcIDsKK+OigD5jw6x8XCA7Civjobw+ecOsfFwgOwor46G5PmPDrHxcIDsKK+Ohtj5qw6x8XCA7CivjobM+ZMStfFwgOwor46GwPnnFrXxcIDsKK+Ohrj5qw618XCA7Civjoa0+asOsfFwgOwor46GrPnnDrHxcIDsKK+OhmT5iw6x8XCA7CivjoZc+dMOtfFwgOwor46GUPnfDuXxcIDsKK+Ohhz5qw618XCA7CivjoYI+bMOsfFwgOwor46GAPmLDrHxcIDsKK+Ogvz5jxK18XCA7CivjoLg+a8O5fFwgOwor46C3PmfDqXxcIDsKK+Ogsj5ixK18XCA7CivjoLE+asOsfFwgOwor46CvPnnErXxcIDsKK+Ogqj5qw7l8XCA7CivjoKg+ecO5fFwgOwor46CnPm3DrXxcIDsKK+OgoD5sw7p8XCA7CivjoJ8+bMOtfFwgOwor46CcPm7DrHxcIDsKK+Ogmz53w7J8XCA7CivjoJg+ecWtfFwgOwor46CXPsOgb3xcIDsKK+Oglj5qw6x8XCA7CivjoI0+asOtfFwgOwor46CFPmbDunxcIDsKK+OghD54w618XCA7CivjoII+w6FvfFwgOwor45+8PsOhb3xcIDsKK+Oftz5kxIF8XCA7Civjn7M+bMOsfFwgOwor45+kPmzDuXxcIDsKK+Ofoj5xw618XCA7Civjn5w+bcOtfFwgOwor45+aPnHDrXxcIDsKK+Ofkz5xw618XCA7Civjn5E+YsOzfFwgOwor45+KPmbDunxcIDsKK+OfgT7DoG58XCA7Civjnr4+bsOtfFwgOwor4566PnrDunxcIDsKK+OeuT5rxJV8XCA7CivjnrA+eMWtfFwgOwor456rPmrDuXxcIDsKK+Oepj5qxK18XCA7Civjnps+asStfFwgOwor456aPnHDrHxcIDsKK+Oelj5jw6x8XCA7CivjnpQ+ecOtfFwgOwor456TPnHErXxcIDsKK+Oekj54w6x8XCA7CivjnpA+anV8XCA7Civjno4+YsSDfFwgOwor456KPnjDuXxcIDsKK+Oehj5qxK18XCA7CivjnoM+asOtfFwgOwor452/PmLDs3xcIDsKK+Odtj7DoGl8XCA7CivjnbU+ZMOpfFwgOwor452lPm3ErXxcIDsKK+Odoz55w6h8XCA7CivjnaI+ecWtfFwgOwor452ePnnDoHxcIDsKK+Odmz5zw7l8XCA7CivjnZY+ecOtfFwgOwor452TPmfDqXxcIDsKK+Ocvz54w7l8XCA7CivjnL0+esStfFwgOwor45y5PnHDunxcIDsKK+Octz5tw618XCA7CivjnKs+bcOgfFwgOwor45ypPsOgdXxcIDsKK+OcqD7DqXJ8XCA7CivjnJ0+xINufFwgOwor45ycPsOgb3xcIDsKK+Ocmj5zw7l8XCA7CivjnJk+bMO5fFwgOwor45yYPmrDuXxcIDsKK+Ockz5kw6F8XCA7CivjnJI+ecOsfFwgOwor45yRPmbDunxcIDsKK+Ocjj5xw618XCA7CivjnIs+ecOsfFwgOwor45yIPm3DuXxcIDsKK+Ochj5tw6x8XCA7CivjnIU+eMO5fFwgOwor45uyPmbDoHxcIDsKK+ObrD5sw7l8XCA7Civjm6U+dMOgfFwgOwor45uYPnDDsnxcIDsKK+OblT55w6x8XCA7Civjm48+w7J1fFwgOwor45uFPsOocnxcIDsKK+Oatz7ElXJ8XCA7CivjmrY+c8OsfFwgOwor45q0PmLDuXxcIDsKK+OasD5ixK18XCA7CivjmqY+ecOtfFwgOwor45qlPnnDunxcIDsKK+OapD55w6x8XCA7CivjmqI+bsO6fFwgOwor45qhPmrErXxcIDsKK+OanD54w7l8XCA7Civjmps+eMOsfFwgOwor45qVPmbDunxcIDsKK+OaiT5nxa18XCA7CivjmoY+ZsO5fFwgOwor45m+PnjDrHxcIDsKK+OZrz55w6x8XCA7Civjmas+asOtfFwgOwor45mqPnnDqHxcIDsKK+OZqD5qw6x8XCA7CivjmaA+ecOsfFwgOwor45mbPmLFrXxcIDsKK+OZkj55xJV8XCA7CivjmZE+ecWtfFwgOwor45mPPmbDuXxcIDsKK+OZhD5iw6x8XCA7CivjmLo+ZsOhfFwgOwor45i5PmPDrXxcIDsKK+OYtz7DoGl8XCA7CivjmLU+YsO5fFwgOwor45iyPmrDunxcIDsKK+OYrT7DoG98XCA7CivjmKw+w6BvfFwgOwor45ipPmLDrHxcIDsKK+OYpz54w7l8XCA7CivjmKA+YsOsfFwgOwor45iRPmzDrHxcIDsKK+OYjT5qw618XCA7CivjmIw+asO5fFwgOwor45iKPnnDrHxcIDsKK+OYiD55aXxcIDsKK+OYgj5jw618XCA7CivjmIE+ecOsfFwgOwor45e8PnnDqHxcIDsKK+OXtT54w7l8XCA7Civjl7M+dMSDfFwgOwor45exPmrDrXxcIDsKK+OXqD7Eg2l8XCA7Civjl6Q+Y8O5fFwgOwor45ejPnTDrHxcIDsKK+OXmj5sw6x8XCA7Civjl5k+bsOgfFwgOwor45eYPmLDs3xcIDsKK+OXkj7DoGl8XCA7Civjl4o+asOtfFwgOwor45eJPmLDrHxcIDsKK+OXhj5nw6l8XCA7Civjl4U+aMO6fFwgOwor45a9PnrDqXxcIDsKK+OWtj55w6h8XCA7Civjlqg+bMO5fFwgOwor45aiPmrDrXxcIDsKK+OWoT55w6h8XCA7CivjlqA+YsOgfFwgOwor45aVPmLDsnxcIDsKK+OWkj50w618XCA7Civjloc+w6lyfFwgOwor45aGPnHDunxcIDsKK+OWhT54w7l8XCA7CivjloI+ecOsfFwgOwor45aAPmzDqHxcIDsKK+OVvT5zw6x8XCA7Civjlbk+ZsOhfFwgOwor45W4PmzDrHxcIDsKK+OVsD5ow6h8XCA7Civjla4+ZsWtfFwgOwor45WtPsOgb3xcIDsKK+OVpT55xK18XCA7CivjlaE+aMOpfFwgOwor45WbPnjDuXxcIDsKK+OVlj5zw7l8XCA7CivjlYw+w6BpfFwgOwor45WJPmvDqHxcIDsKK+OVhz5sw6F8XCA7CivjlYY+aMO5fFwgOwor45S5PmzDqHxcIDsKK+OUtD55w6x8XCA7CivjlLE+ecWtfFwgOwor45SqPmzFrXxcIDsKK+OUpT5ww618XCA7CivjlKA+aMOpfFwgOwor45ScPmLDoXxcIDsKK+OUlT5qw618XCA7CivjlJI+eMOtfFwgOwor45SPPmzDrHxcIDsKK+OUhD5zw7l8XCA7Civjk7c+ecOsfFwgOwor45OvPmzDrXxcIDsKK+OTrT5ow6l8XCA7Civjk6g+Y8OtfFwgOwor45OhPmbFrXxcIDsKK+OTnj5xw6x8XCA7Civjk5g+c8O5fFwgOwor45OWPmLDrHxcIDsKK+OTkD5sw7l8XCA7Civjkr8+bMOtfFwgOwor45K0PmfFrXxcIDsKK+OSqz5qw6x8XCA7Civjkqc+bMOsfFwgOwor45KcPnnDunxcIDsKK+OSlj7Fj3V8XCA7CivjkpM+dMOgfFwgOwor45KSPnDDunxcIDsKK+OSjj5zxIN8XCA7Civjkoo+c8OofFwgOwor45KHPm3DuXxcIDsKK+OShT5xxK18XCA7CivjkoM+w6hyfFwgOwor45KCPmvDuXxcIDsKK+OSgT55xa18XCA7Civjkbs+bcOgfFwgOwor45G4PsSDaXxcIDsKK+ORtj54w6x8XCA7Civjka8+eMWtfFwgOwor45GoPnnFrXxcIDsKK+ORpz5qw6x8XCA7CivjkaY+bMOsfFwgOwor45GlPnnDrHxcIDsKK+ORnD55w6x8XCA7CivjkZs+c8O5fFwgOwor45GUPnjFrXxcIDsKK+ORij55w6x8XCA7CivjkYk+c8O5fFwgOwor45GEPnfFrXxcIDsKK+ORgz7Eg298XCA7CivjkLs+bsyGfFwgOwor45C5PnnDrHxcIDsKK+OQtz5txIN8XCA7CivjkLM+d8O5fFwgOwor45CoPnjDuXxcIDsKK+OQlj55w6h8XCA7CivjkIw+c8OsfFwgOwor45CFPnfFrXxcIDsKK/ClnIw+xINvfFwgOwor8KGcsT5qw6x8XCA7CivwoLy7PmppfFwgOwor8KCBpT5nxIN8XCA7CivwoICBPnFpfFwgOwor8KCAgD5oYXxcIDsKK+mYvz5hfFwgOwor5ZWKPmF8XCA7CivmgbY+w6h8XCA7Civpop0+w6l8XCA7Civkv4Q+w6l8XCA7Civppb8+w6h8XCA7CivlkbU+YXxcIDsKK+WTpj7DqXxcIDsKK+m5hT7DqXxcIDsKK+WopT7DqXxcIDsKK+WZoj5vfFwgOwor5bOoPsOpfFwgOwor5oSVPsOofFwgOwor6YGPPsOofFwgOwor5Y6EPsOofFwgOwor5om8PsOofFwgOwor6JC8PsOofFwgOwor5ZmpPsOofFwgOwor6YSCPsOofFwgOwor6Ju+PsOpfFwgOwor5ZaUPm98XCA7Civorrk+w6l8XCA7CivlkYM+w6h8XCA7CivpuZc+w6h8XCA7CivlqYA+ZXxcIDsKK+WTkD7DqHxcIDsKK+mimj7DqHxcIDsKK+WxmT5lfFwgOwor6L2tPsOofFwgOwor5ZeEPsOhfFwgOwor6LCUPsOofFwgOwor5Z6pPsOofFwgOwor6IWtPsOofFwgOwor6ZiPPsOofFwgOwor6I6qPsOpfFwgOwor6Jq1PsOpfFwgOwor6b22PsOofFwgOwor6b2CPsOofFwgOwor6baaPsOofFwgOwor6bWePsOpfFwgOwor6bWdPsOpfFwgOwor6bG3PsOofFwgOwor6bCQPsOofFwgOwor6a2lPsOofFwgOwor6aiAPsOpfFwgOwor6aSpPsOofFwgOwor6aSTPsOofFwgOwor6aGOPsOofFwgOwor6aGNPsOpfFwgOwor6aCfPsOpfFwgOwor6aCePsOofFwgOwor6Zi+PsSDfFwgOwor6Zi4PsOofFwgOwor6ZioPsOofFwgOwor6Za8PsOofFwgOwor6ZSVPmF8XCA7CivpkrY+ZXxcIDsKK+mRqT7DqHxcIDsKK+mNlD7DqHxcIDsKK+mMkj5hfFwgOwor6YuoPsOpfFwgOwor6YunPsOpfFwgOwor6YiLPsOpfFwgOwor6YGMPsOofFwgOwor6L+XPsOpfFwgOwor6Lu2PsOofFwgOwor6LubPsOofFwgOwor6LKWPsOofFwgOwor6LGfPsOofFwgOwor6K6NPsOofFwgOwor6K2MPsOpfFwgOwor6KukPsOofFwgOwor6KqQPsOpfFwgOwor6Km7PsOofFwgOwor6KibPsOpfFwgOwor6KaoPsOofFwgOwor6J2BPsOofFwgOwor6JqFPsOofFwgOwor6JWaPsOofFwgOwor6IuKPsOofFwgOwor56OAPsOpfFwgOwor56GqPsOpfFwgOwor56GGPsOofFwgOwor56CQPsOofFwgOwor552LPsOpfFwgOwor55qSPsOpfFwgOwor55e+PmV8XCA7CivnkKc+w6h8XCA7Civnj7Q+w6l8XCA7Civnjb8+xJV8XCA7CivnjJQ+ZXxcIDsKK+eFvj5ufFwgOwor5rmCPsOofFwgOwor5raQPsOpfFwgOwor5quuPsOofFwgOwor5p6ZPsOofFwgOwor5pC5PsOofFwgOwor5pCkPsOofFwgOwor5oi5PsOofFwgOwor5oOhPsSVfFwgOwor5oKqPsOofFwgOwor5batPsOofFwgOwor5bS/PsOofFwgOwor5bOpPsOpfFwgOwor5bOJPmV8XCA7Civls4g+w6h8XCA7Civlsos+w6h8XCA7CivlqZA+ZXxcIDsKK+Wovz5lfFwgOwor5aa/PmV8XCA7Civlprg+ZXxcIDsKK+Wgrj7DqHxcIDsKK+WgqD7DqHxcIDsKK+Wgij7DqHxcIDsKK+WclD7DqHxcIDsKK+Wbrj7DqXxcIDsKK+WZgT7ElXxcIDsKK+WWkj5vfFwgOwor5ZK5PsOofFwgOwor5ZKiPsOofFwgOwor5ZGjPuG4v3xcIDsKK+WRnT7DqHxcIDsKK+WQqj7DqXxcIDsKK+WQlj5hfFwgOwor5Y2+PsOofFwgOwor5YSNPsOofFwgOwor5YOrPsOofFwgOwor5YGUPsOofFwgOwor5LOsPsOofFwgOwor5LOYPsOpfFwgOwor5LOXPsOpfFwgOwor5LGuPsOpfFwgOwor5Ku3PsOofFwgOwor5Km5PsOpfFwgOwor5KOePsOofFwgOwor5J6pPsOofFwgOwor5J2IPsOofFwgOwor5JuWPsOofFwgOwor5JmzPsOofFwgOwor5Ja4PsOpfFwgOwor5JWPPsOpfFwgOwor5JS+PsOofFwgOwor5JOKPsOofFwgOwor5JGqPsOofFwgOwor5JGlPsOofFwgOwor5IaTPsOofFwgOwor5ISJPsOpfFwgOwor47ywPsOpfFwgOwor47yiPsSVfFwgOwor47yCPsOpfFwgOwor47eIPsOofFwgOwor47GmPsOofFwgOwor466ZPsOofFwgOwor46m1PsOofFwgOwor46eWPsOofFwgOwor46aNPsOofFwgOwor46GLPsOofFwgOwor46CLPsOofFwgOwor45+nPsOofFwgOwor45eBPsOofFwgOwor45a+PsOofFwgOwor45WOPsOofFwgOwor45SpPsOofFwgOwor45O1PsOofFwgOwor44CCIDw+ICcuJzsKKyMgRW5kIFJBVyBkYXRhIGZvciBjb252ZXJ0aW5nIENKSyBjaGFyYWN0ZXJzCisKKworCisjIGZhbGxiYWNrcworCisjIyB8IHlpIDwgaTsKKyMjIHwgd3UgPCB1OworIyMgfCBiaSA8IGI7CisjIyB8IGNpIDwgYzsKKyMjIHwgZGkgPCBkOworIyMgfCBmdSA8IGY7CisjIyB8IGd1IDwgZzsKKyMjIHwgaGUgPCBoOworIyMgfCBqaSA8IGo7CisjIyB8IGt1IDwgazsKKyMjIHwgbGkgPCBsOworIyMgfCBtaSA8IG07CisjIyB8IHBpIDwgcDsKKyMjIHwgcWkgPCBxOworIyMgfCBsIDwgcjsKKyMjIHwgc2kgPCBzOworIyMgfCB0aSA8IHQ7CisjIyB8IGYgPCB2OworIyMgfCB3YSA8IHc7CisjIyB8IHhpIDwgeDsKKyMjIHwgeWkgPCB5OworIyMgfCB6aSA8IHo7CisKKyMgZmlsdGVyIG91dCB0aGUgaGFsZi13aWR0aCBoYW5ndWwKKzo6IFteXHVGRkJFLVx1RkZFRV0gZnVsbHdpZHRoLWhhbGZ3aWR0aCAoKTsKKyMjIDo6IChsb3dlcikgOwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9IYW5fTGF0aW5fRGVmaW5pdGlvbi50eHQgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0hhbl9MYXRpbl9EZWZpbml0aW9uLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZDM5OWFmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9IYW5fTGF0aW5fRGVmaW5pdGlvbi50eHQKQEAgLTAsMCArMSw1NTgwMiBAQAor77u/Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvcHlyaWdodCAoYykgMTk5OS0yMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisjIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9IYW5fTGF0aW5fRGVmaW5pdGlvbi50eHQsdiAkCisjICREYXRlOiAyMDAyLzA3LzE0IDIxOjU5OjE1ICQKKyMgJFJldmlzaW9uOiAxLjIgJAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvbnZlcnQgQ0pLIGNoYXJhY3RlcnMsIGFjY29yZGluZyB0byB0aGUgZGVmaW50aW9ucyBpbiBDRURJQ1QgYW5kIFVuaWhhbi50eHQKKyMgTm90ZTogYWRkcyBzcGFjZSBiZXR3ZWVuIHRoZW0gYW5kIGxldHRlcnMuCit7IChbOkhhbjpdKSB9IFs6TDpdID4gfCAkMSAnICc7CitbXC5cLFw/XCHvvI7vvIzvvJ/vvIHjgIHjgIJbOlBlOl1bOlBmOl1dIHsgfSBbOkw6XSA+ICcgJzsKK1s6TDpdIHsgfSBbWzpIYW46XVs6UHM6XVs6UGk6XV0+ICcgJzsKKwor6K6K5paHIDwgYVwtcG9wdWxhclwtZm9ybVwtb2ZcLW5hcnJhdGl2ZVwtbGl0ZXJhdHVyZVwtZmxvdXJpc2hpbmdcLWluXC10aGVcLXRhbmdcLWR5bmFzdHlcLVwoNjE4XC05MDdcKVwtd2l0aFwtYWx0ZXJuYXRlXC1wcm9zZVwtYW5kXC1yaHltZWRcLXBhcnRzXC1mb3JcLXJlY2l0YXRpb25cLWFuZFwtc2luZ2luZ1wtXChvZnRlblwtb25cLWJ1ZGRoaXN0aWNcLXRoZW1lc1wpOwor6YKK5bmjIDwgYm9yZGVyXC1yZWdpb25cLWN1cnJlbmN5XC1cKGNvbnNpc3RpbmdcLW9mXC10aGVcLWN1cnJlbmN5XC1ub3Rlc1wtaXNzdWVkXC1ieVwtdGhlXC1ib3JkZXJcLXJlZ2lvblwtZ292ZXJubWVudHNcLWR1cmluZ1wtdGhlXC13YXJcLW9mXC1yZXNpc3RhbmNlXC1hZ2FpbnN0XC1qYXBhblwtYW5kXC10aGVcLXdhclwtb2ZcLWxpYmVyYXRpb25cKTsKK+ebtOmAmui7iiA8IFwidGhyb3VnaFwtdHJhaW5cIlwtXChyZWZlcnNcLXRvXC10aGVcLWlkZWFcLW9mXC1yZXRhaW5pbmdcLXByZXZpb3VzXC1sZWdpc2xhdHVyZVwtYWZ0ZXJcLXRyYW5zaXRpb25cLXRvXC1jaGluZXNlXC1ydWxlXC1pblwtaG9uZ1wta29uZ1wtb3JcLW1hY2F1XCk7CivlsI/oh5/prLwgPCBkaXJ0eVwtbGl0dGxlXC1tb25zdGVyXC1cKHNwb2tlblwtYWZmZWN0aW9uYXRlbHlcLXRvXC1hXC1jaGlsZFwtd2hvXC1oYXNcLWdvdHRlblwtaGltXChoZXJcKXNlbGZcLWRpcnR5XDtcLWxpdGVyYWxseVwtXCJsaXR0bGVcLWRpcnR5XC1naG9zdFwiXCk7Civmrrrpm57ntabnjLTnnIsgPCBcImtpbGxcLWFcLWNoaWNrZW5cLWluXC1mcm9udFwtb2ZcLWFcLW1vbmtleVwiXC1cLVwtXC1tYWtlXC1hblwtZXhhbXBsZVwtb3V0XC1vZlwtc29tZW9uZVwtXChieVwtcHVuaXNoaW5nXC10aGVtXClcLXRvXC1mcmlnaHRlblwtb3RoZXJzOwor5oqx6Jaq5pWR54GrIDwgY2FycnlcLWZhZ2dvdHNcLXRvXC1wdXRcLW91dFwtYVwtZmlyZVwtXC1cLWFkb3B0XC1hXC13cm9uZ1wtbWV0aG9kXC10b1wtc2F2ZVwtYVwtc2l0dWF0aW9uXC1hbmRcLWVuZFwtdXBcLWJ5XC1tYWtpbmdcLWl0XC13b3JzZTsKK+S4jeimi+ajuuadkOS4jeiQvea3miA8IG5vdFwtc2hlZFwtYVwtdGVhclwtdW50aWxcLW9uZVwtc2Vlc1wtdGhlXC1jb2ZmaW5cLVwtXC1yZWZ1c2VcLXRvXC1iZVwtY29udmluY2VkXC11bnRpbFwtb25lXC1pc1wtZmFjZWRcLXdpdGhcLWdyaW1cLXJlYWxpdHk7CivlkIzmnJ8gPCB0aGVcLWNvcnJlc3BvbmRpbmdcLXRpbWVcLXBlcmlvZFwtXChlZ1wsXC1jb21wYXJlXC1pbmZsYXRpb25cLW5vd1wtd2l0aFwtdGhlXC1yYXRlXC1kdXJpbmdcLXRoZVwtc2FtZVwtbW9udGhcLWxhc3RcLXllYXJcKTsKK+OhjiA8IHRoZVwtbG9uZ1wtYmFuZHNcLW9yXC1yaWJib25zXC1hdHRyYWNoZWRcLXRvXC1mbGFnc1wtYW5kXC1iYW5uZXJzXC10aGVcLWZlYXRoZXJcLWRlY29yZWN0ZWRcLWNhcnJpYWdlc1wtb3JcLWRyZXNzZXM7Civpg68gPCBuYW1lXC1vZlwtYVwtc21hbGxcLWFuY2llbnRcLXByaW5jaXBhbGl0eVwtd2hpY2hcLXdhc1wtc2l0dWF0ZWRcLWluXC13aGF0XC1pc1wtbm93XC1wYXJ0XC1vZlwtc2hhbnR1bmdcLWFuZFwta2lhbmdzdTsKK+adr+awtOi7iuiWqiA8IHRyeWluZ1wtdG9cLXB1dFwtb3V0XC1hXC1idXJuaW5nXC1jYXJ0bG9hZFwtb2ZcLWZhZ2dvdHNcLXdpdGhcLWFcLWN1cFwtb2ZcLXdhdGVyXC1cLVwtYW5cLXV0dGVybHlcLWluYWRlcXVhdGVcLW1lYXN1cmU7CivkkJ4gPCB0aGVcLXRoaW5cLW1lbWJyYW5lXC1iZXR3ZWVuXC1za2luXC1hbmRcLWZsZXNoXC10aGF0XC1wcm90ZWN0c1wtaW50ZXJuYWxcLW9yZ2Fuc1wtb3JcLXRpc3N1ZXNcLWluXC10aGVcLWh1bWFuXC1ib2R5Owor5YGP5YGPIDwgXChpbmRpY2F0ZXNcLXRoYXRcLXN0aFwuXC10dXJuc1wtb3V0XC1qdXN0XC10aGVcLW9wcG9zaXRlXC1vZlwtd2hhdFwtb25lXC13b3VsZFwtZXhwZWN0XC1vclwtd2hhdFwtd291bGRcLWJlXC1ub3JtYWxcKTsKK+aVrOelnSA8IHRvXC1yZXNwZWN0ZnVsbHlcLW9mZmVyXC1cKHdyaXR0ZW5cLWF0XC10aGVcLWVuZFwtb2ZcLWxldHRlclwtZnJvbVwtc29tZW9uZVwtb2ZcLWxvd2VyXC1zdGF0dXNcLXRvXC1oaWdoZXJcLXN0YXR1c1wpOwor5Y2c6L6tIDwgb3JhY2xlXC1pbnNjcmlwdGlvbnNcLW9mXC10aGVcLXNoYW5nXC1keW5hc3R5XC1cKDE2dGhcLTExdGhcLWNlbnR1cnlcLWJjXClcLW9uXC10b3J0b2lzZXNoZWxsc1wtb3JcLWFuaW1hbFwtYm9uZXM7Civnl4XmgKXkuoLmipXphqsgPCB0dXJuXC10b1wtYW55XC1kb2N0b3JcLW9uZVwtY2FuXC1maW5kXC13aGVuXC1jcml0aWNhbGx5XC1pbGxcLVwtXC10cnlcLWFueXRoaW5nXC13aGVuXC1pblwtYVwtZGVzcGVyYXRlXC1zaXR1YXRpb247Civovq/oqLzmlr3msrsgPCBkaWFnbm9zaXNcLWFuZFwtdHJlYXRtZW50XC1iYXNlZFwtb25cLWFuXC1vdmVyYWxsXC1hbmFseXNpc1wtb2ZcLXRoZVwtaWxsbmVzc1wtYW5kXC10aGVcLXBhdGllbnQnJ3NcLWNvbmRpdGlvbjsKK+ePqiA8IGFcLWphZGVcLXRhYmxlXC1jb25mZXJyZWRcLXVwb25cLWZldWRhbFwtcHJpbmNlc1wtYnlcLXRoZVwtZW1wZXJvclwtYXNcLWFcLXN5bWJvbFwtb2ZcLWRpZ25pdHlcLWFuZFwtYXV0aG9yaXR5Owor5pWd5bia6Ieq54+NIDwgdmFsdWVcLW9uZScnc1wtb3duXC1vbGRcLWJyb29tXC1cLVwtY2hlcmlzaFwtc29tZXRoaW5nXC1vZlwtbGl0dGxlXC12YWx1ZVwtc2ltcGx5XC1iZWNhdXNlXC1pdFwtaXNcLW9uZScnc1wtb3duOwor5LiN55+l5aSp6auY5Zyw5Y6aIDwgbm90XC1rbm93XC10aGVcLWltbWVuc2l0eVwtb2ZcLWhlYXZlblwtYW5kXC1lYXJ0aFwtXC1cLWhhdmVcLWFuXC1leGFnZ2VyYXRlZFwtb3Bpbmlvblwtb2ZcLW9uZScnc1wtYWJpbGl0aWVzOwor47q6IDwgYVwtdmVyeVwtcHJlY2lvdXNcLXBpZWNlXC1vZlwtamFkZVwtd29yblwtYnlcLWFuY2llbnRcLWVtcGVyb3JzXC10b1wtbWF0Y2hcLXRhYmxlc1wtYm9ybmVcLWJ5XC10aGVcLW5vYmxlczsKK+SAmCA8IHRvXC1jb3ZlclwtdGhlXC1saW5lXC1vZlwtdmlzaW9uXC1vclwtc2lnaHRcLVwtXC10aGVcLXN0cmFpZ2h0XC1saW5lXC1iZXR3ZWVuXC1hblwtb2JqZWN0XC1hbmRcLW9uZScnc1wtZXllczsKK+WFteS4jeihgOWIgyA8IHRoZVwtZWRnZXNcLW9mXC10aGVcLXN3b3Jkc1wtbm90XC1iZWluZ1wtc3RhaW5lZFwtd2l0aFwtYmxvb2RcLVwtXC13aW5cLXZpY3RvcnlcLXdpdGhvdXRcLWZpcmluZ1wtYVwtc2hvdDsKK+OopyA8IHdvb2Rlblwtc3RpY2tcLW9yXC1iYW1ib29cLWNhbmVcLXVzZWRcLXRvXC1zdXBwb3J0XC10aGVcLWNvdmVyaW5nXC1vZlwtYVwtY2FycmlhZ2VcLWluXC1hbmNpZW50XC10aW1lczsKK+OUoyA8IGluXC1hbmNpZW50XC10aW1lc1wtdG9cLWZpZ2h0XC1hZ2FpbnN0XC10aGVcLWVuZW15XC1ieVwtcHVzaGluZ1wtZG93blwtdGhlXC1iaWdcLXJvY2tzXC1mcm9tXC11cFwtaGlnaDsKK+a0m+W+tyA8IFwod2luc3RvblwpXC1sb3JkXC1cKGZvcm1lclwtYXNzaXN0YW50XC1zZWNyZXRhcnlcLW9mXC1zdGF0ZVwtZm9yXC1lYXN0XC1hc2lhXC1hbmRcLXBhY2lmaWNcLWFmZmFpcnNcKTsKK+S4jeWIsOm7g+ays+W/g+S4jeatuyA8IG5vdFwtc3RvcFwtdW50aWxcLW9uZVwtcmVhY2hlc1wtdGhlXC1odWFuZ2hlXC1yaXZlclwtXC1cLW5vdFwtc3RvcFwtdW50aWxcLW9uZVwtcmVhY2hlc1wtb25lJydzXC1nb2FsOwor5b235b6oIDwgbmFtZVwtb2ZcLWFcLWNvbGxlY3Rpb25cLW9mXC1zaG9ydFwtc3Rvcmllc1wsXC1wYW5nXC1odWFuZ1wsXC1cIndhbmRlcmluZ1wtYWJvdXRcIlwsXC1ieVwtbHUzXC14dW40XC3pra/ov4U7CivkmqsgPCBvcm5hbWVudGFsXC1hcnRpY2xlc1wtbWFkZVwtb2ZcLWhvcm5zXC11c2VkXC10b1wtZGVjb3JhdGVcLXRoZVwtdG9wXC1vZlwtYVwtc3RpY2tcLW9yXC1ob3JzZXdoaXA7CivppIrlhZLpmLLogIEgPCBcKG9mXC1wYXJlbnRzXClcLXRvXC1icmluZ1wtdXBcLWNpaGxkcmVuXC1mb3JcLXRoZVwtcHVycG9zZVwtb2ZcLWJlaW5nXC1sb29rZWRcLWFmdGVyXC1pblwtb2xkXC1hZ2U7CivpmbPmr4UgPCBjaGVuXC15aVwsXC1mb3JtZXJcLW1heW9yXC1vZlwtc2hhbmdoYWlcLWFuZFwtaGlnaGVzdFwtcmFua2luZ1wtbWlsaXRhcnlcLWNvbW1hbmRlclwtaW5cLWNoaW5hOwor57a66Imy5L2zIDwgaXRoYWNhXCxcLW55XC1cKGJ1dFwtcHJvbm91bmNlZFwteWkzXC1zZTRcLWppYTFcLFwtZm9sbG93aW5nXC1hXC1taXN0YWtlXC1tYWRlXC1ieVwtaHUyXC1zaGk0XC3og6HpgalcKTsKK+eskCA8IGJhbWJvb3NcLXBsYWNlZFwtYWNyb3NzXC13b29kZW5cLWZyYW1lc1wtb25cLXdoaWNoXC1ncmFpblwtbWF5XC1iZVwtc3RvcmVkXC1pblwtZGFtcFwtY2xpbWF0ZXM7Civko54gPCBuYW1lXC1vZlwtYW5cLWFuY2llbnRcLXN0YXRlXC13aGljaFwtb2NjdXBpZWRcLXRoZVwtc2l0ZVwtb2ZcLXRoZVwtcHJlc2VudFwtcHJvdmluY2VcLW9mXC1odWJlaTsKK+SHtiA8IGFcLXNtYWxsXC1yYWZ0ZXJzXC1tYWRlXC1vZlwtYmFtYm9vXC13aGljaFwtcHJvamVjdFwtZm9ybVwtdGhlXC1lYXZlc1wtYW5kXC1zdXBwb3J0XC10aGVcLXRpbGVzOwor6Zu35bOw5aGUIDwgbGVpZmVuZ1wtcGFnb2RhXCxcLWJ5XC13ZXN0XC1sYWtlXC11bnRpbFwtaXRcLXdhc1wtZGVzdHJveWVkXC1cKGFsc29cLWZyb21cLW1hZGFtXC13aGl0ZVwtc25ha2VcKTsKK+izqCA8IHRyaWJ1dGVcLXBhaWRcLWluXC1jbG90aFwtYnlcLXRoZVwtdHJpYmVzXC1pblwtc3plY2h3YW5cLWFuZFwteXVubmFuXC11bmRlclwtdGhlXC1oYW5cLWR5bmFzdHk7CivkuI3lhbHmiLTlpKkgPCB3aWxsXC1ub3RcLWxpdmVcLXVuZGVyXC10aGVcLXNhbWVcLXNreVwtXCh3aXRoXC1vbmUnJ3NcLWVuZW15XClcLVwtXC1hYnNvbHV0ZWx5XC1pcnJlY29uY2lsYWJsZTsKK+emqyA8IHNhY3JpZmljZVwtb2ZmZXJlZFwtYXRcLXRoZVwtZW5kXC1vZlwtdGhlXC10aHJlZVwteWVhcnMnJ1wtbW91cm5pbmdcLXRoZVwtZGVhdGhcLW9mXC1hXC1wYXJlbnQ7CivkgqkgPCBhblwtaW5cLXNsYWJcLW9yXC1pbmtcLXN0b25lXC1zb3VuZFwtb2ZcLXBlYmJsZXNcLW9yXC1zdG9uZXNcLXJ1YmJpbmdcLW9yXC1rbm9ja2luZ1wtdG9nZXRoZXI7Civkgo0gPCBhXC1raW5kXC1vZlwtd2VhcG9uXC1jYXJyaWVkXC1ieVwtdGhlXC1ob25vclwtZ3VhcmRcLWJlZm9yZVwtdGhlXC1lbXBlcm9yXC1pblwtYW5jaWVudFwtdGltZXM7Civmk4rlhbbmg7DmrbggPCBhdm9pZFwtdGhlXC1lbmVteVwtd2hlblwtaGVcLWlzXC1mcmVzaFwtYW5kXC1zdHJpa2VcLWhpbVwtd2hlblwtaGVcLWlzXC10aXJlZFwtYW5kXC13aXRoZHJhd3M7Civkv53nlLLliLbluqYgPCB0aGVcLWJhb1wtamlhXC1zeXN0ZW1cLVwoYW5cLWFkbWluaXN0cmF0aXZlXC1zeXN0ZW1cLW9yZ2FuaXplZFwtb25cLWJhc2lzXC1vZlwtaG91c2Vob2xkc1wpOwor5YyF5belIDwgdW5kZXJ0YWtlXC10b1wtcGVyZm9ybVwtd29ya1wtd2l0aGluXC1hXC10aW1lXC1saW1pdFwtYW5kXC1hY2NvcmRpbmdcLXRvXC1zcGVjaWZpY2F0aW9uczsKK+mDqOmmliA8IHJhZGljYWxzXC1ieVwtd2hpY2hcLWNoYXJhY3RlcnNcLWFyZVwtYXJyYW5nZWRcLWluXC10cmFkaXRpb25hbFwtY2hpbmVzZVwtZGljdGlvbmFyaWVzOwor6Zy45Li7IDwgYVwtcG93ZXJmdWxcLWNoaWVmXC1vZlwtdGhlXC1wcmluY2VzXC1vZlwtdGhlXC1zcHJpbmdcLWFuZFwtYXV0dW1uXC1wZXJpb2RcLVwoNzcwXC00NzZcLWJjXCk7CivooYggPCB0aGVcLWJsb29kXC1vZlwtYVwtc2FjcmlmaWNpYWxcLWZvd2xcLXdoaWNoXC13YXNcLXNwcmlua2xlZFwtb25cLXRoZVwtZG9vcnNcLWFuZFwtdmVzc2VsczsKK+OvqSA8IHRvXC1wdXRcLXRoZVwtZ3Jvd2luZ1wtdXBcLXNpbGt3b3Jtc1wtaW5cLWRpZmZlcmVudFwtZnJhbWVzXC1hY2NvcmRpbmdcLXRvXC10aGVpclwtc2l6ZXM7CivjmrMgPCBhXC1sYWR5XC10ZWFjaGVyXC10b1wtdGVhY2hcLXRoZVwtcHJvcGVyXC1ydWxlc1wtb2ZcLWZlbWFsZVwtYmVoYXZpb3JcLWluXC1hbmNpZW50XC10aW1lczsKK+S4jei+qOiPvem6pSA8IGJlXC11bmFibGVcLXRvXC10ZWxsXC1iZWFuc1wtZnJvbVwtd2hlYXRcLVwtXC1oYXZlXC1ub1wta25vd2xlZGdlXC1vZlwtcHJhY3RpY2FsXC1tYXR0ZXJzOwor57WlIDwgdG9cLWhhcm5lc3NcLWFcLWhvcnNlXC1hXC1ib2FyZFwtaW5cLWZyb250XC1vZlwtYVwtY2FycmlhZ2VcLWZvclwtdGhlXC1kcml2ZXJcLXRvXC1sZWFuXC1vbjsKK+SLrSA8IHRvXC13ZWF2ZVwtc2lsa1wtZmFicmljc1wtd2l0aFwtZ3JlZW5cLWNvbG9yXC1mb3JcLWxvbmdpdHVkZVwtYW5kXC13aGl0ZVwtZm9yXC1sYXRpdHVkZTsKK+OtvCA8IGFcLXJlY3RhbmdsZVwtc2hhcGVkXC1wZWdcLW9yXC1zaG9ydFwtcG9zdFwtYmV0d2VlblwtdGhlXC1iZWFuc1wtYW5kXC10aGVcLXJvb2ZcLXRpbWJlcnM7Civmga3llpznmbzosqEgPCBjb25ncmF0dWxhdGlvbnNcLWZvclwtZ2V0dGluZ1wtcmljaFwtXCh0cmFkaXRpb25hbFwtY2hpbmVzZVwtbmV3XC15ZWFyJydzXC1mdXR1cmVcLXVzZTsKK+eRhCA8IGFcLW9ybmFtZW50YWxcLXBpZWNlXC1vZlwtamFkZVwtc2V2ZXJhbFwtaW5jaGVzXC1hY3Jvc3NcLXdpdGhcLWFcLWhvbGVcLWluXC10aGVcLWNlbnRlcjsKK+eJoeS4ueWNoSA8IHBlb255XC1jYXJkXC1cKGNyZWRpdFwtY2FyZFwtaXNzdWVkXC1ieVwtaW5kdXN0cmlhbFwtYW5kXC1jb21tZXJjaWFsXC1iYW5rXC1vZlwtY2hpbmFcKTsKK+SspCA8IHRvXC1wdXRcLXRoZVwtdGhpY2tcLXNvdXBcLW9yXC1icm90aFwtb25cLXRvcFwtb2ZcLXRoZVwtcmljZVwtdGhpY2tcLWNvbmdlZVwtb3JcLXBvcnJpZGdlOwor5Zyo5pa8IDwgXCh0aGVcLXByb2JsZW1cLW9yXC1leHBsYW5hdGlvblwtb3JcLWFkdmFudGFnZVwtZXRjXC5cKVwtbGllc1wtaW5cLVwodGhlXC1mYWN0XC10aGF0XC5cLlwuXCk7Civkpa8gPCBhXC1mYXJtXC10b29sXC10b1wtY3J1c2hcLXRoZVwtY2xvZFwtb2ZcLWVhcnRoXC1pbnRvXC1waWVjZXNcLWFuZFwtbWFrZVwtdGhlXC1sYW5kXC1mbGF0Owor5I2WIDwgYVwta2luZFwtb2ZcLW5ldFwtZXF1aXB0ZWRcLXdpdGhcLXRyaWNreVwtbWFjaGluZVwtdXNlZFwtdG9cLWNhdGNoXC1iaXJkc1wtYW5kXC1iZWFzdHM7CivloZ7pn4voo6Hoq74gPCBcW2plYW5cLW1pY2hlbFxdXC1zZXZlcmlub1wtXFt3b3JsZFwtYmFua1wtdmljZVwtcHJlc2lkZW50XCxcLWVhc3RcLWFzaWFcLWFuZFwtcGFjaWZpY1xdOwor5I6tIDwgYVwta2luZFwtb2ZcLWZhcm1cLXRvb2xcLW1hZGVcLW9mXC10d2lzdGVkXC10aHJvblwtc3RyaXBzXC11c2VkXC10b1wtZmxhdGVuXC10aGVcLWxhbmQ7CivmlZnoqJMgPCBcKHRlYWNoXC1zb21lb25lXC1vclwtbGVhcm5cLWFcKVwtbGVzc29uXC1cKGllXCxcLW9idGFpblwtd2lzZG9tXC1mcm9tXC1hblwtZXhwZXJpZW5jZVwpOwor5LiJ5bKU5Y+jIDwgYXRcLXRoZVwtY3Jvc3Nyb2Fkc1wsXC10aGVcLW5hbWVcLW9mXC1hXC1mYW1vdXNcLW9wZXJhXCxcLXN0b3J5XC1mcm9tXC1zaHVpXC1odVwtemh1YW47CivnrZMgPCBhXC1oYWlycGluXC1vblwtd2hpY2hcLXRoZVwtaGFpclwtaXNcLWJvdW5kXC1hdFwtdGhlXC1iYWNrXC1vZlwtdGhlXC1oZWFkXC5cLTE1XC1vZlwtYWdlOwor5p2O6Ieq5oiQIDwgbmFtZVwtb2ZcLWFcLXBlcnNvblwsXC1saVwtemlcLWNoZW5nXCxcLWxlYWRlclwtb2ZcLW1pbmdcLWR5bmFzdHlcLXBlYXNhbnRcLXJlYmVsbGlvbjsKK+acieacn+W+kuWIkSA8IGxpbWl0ZWRcLXRlcm1cLW9mXC1pbXByaXNvbm1lbnRcLVwoaWVcLFwtYW55dGhpbmdcLWxlc3NcLXRoYW5cLWxpZmVcLWltcHJpc29ubWVudFwpOwor5rGf5YWr6bueIDwgXCJqaWFuZ1wtemVtaW4nJ3NcLWVpZ2h0XC1wb2ludFwtZm9ybXVsYVwiXC1cKGZvclwtcmVzdW1pbmdcLWFcLWRpYWxvZ1wtd2l0aFwtdGFpd2FuXCk7CivphKfkuq7mtKogPCB0YW5nXC1saWFuZ1wtaG9uZ1wtXChvcHBvc2l0aW9uXC1jYW5kaWRhdGVcLWluXC1qYW5cLTE5OTZcLXNpbmdhcG9yZVwtZWxlY3Rpb25zXCk7Civplonnm67loZ7ogb0gPCBzaHV0c1wtb25lJydzXC1leWVzXC1hbmRcLXN0b3BcLXVwXC1vbmUnJ3NcLWVhcnNcLVwtXC1iZVwtb3V0XC1vZlwtdG91Y2hcLXdpdGhcLXJlYWxpdHk7CivnrKjps6XlhYjpo5sgPCBjbHVtc3lcLWJpcmRzXC1oYXZlXC10b1wtc3RhcnRcLWZseWluZ1wtZWFybHlcLVwtXC10aGVcLXNsb3dcLW5lZWRcLXRvXC1zdGFydFwtZWFybHk7CivjrrIgPCBhXC1zbWFsbFwtcmluZ1wtb3JcLWFcLXNtYWxsXC1waWVjZVwtb2ZcLWJvYXJkXC1hdHRhY2hlZFwtdG9cLXRoZVwtbXV6emxlXC1vZlwtYW5cLW94Owor6aeB5bK4IDwgYVwtbG93XC1zdG9uZVwtd2FsbFwtYnVpbHRcLWFsb25nXC10aGVcLXdhdGVyJydzXC1lZGdlXC10b1wtcHJvdGVjdFwtYW5cLWVtYmFua21lbnQ7Civnmb7ogZ7kuI3lpoLkuIDoposgPCBzZWVpbmdcLWZvclwtb25lc2VsZlwtaXNcLWFcLWh1bmRyZWRcLXRpbWVzXC1iZXR0ZXJcLXRoYW5cLWhlYXJpbmdcLWZyb21cLW90aGVyczsKK+ijnOazlSA8IHRyZWF0bWVudFwtaW52b2x2aW5nXC10aGVcLXVzZVwtb2ZcLXRvbmljc1wtdG9cLXJlc3RvcmVcLXRoZVwtcGF0aWVudCcnc1wtaGVhbHRoOwor5LW7IDwgYVwtc21hbGxcLXRyaXBvZFwtb2ZcLWJyb256ZVwtd2l0aFwtdHdvXC1lYXJzXC10cmlwb2RcLW9mXC1icm9uemVcLXdpdGhcLXR3b1wtZWFyczsKK+S4ieS4jSA8IFwidGhlXC10aHJlZVwtbm8nJ3NcIlwtXChhblwtZXhhbXBsZVwtb2ZcLWFuXC1hYmJyZXZpYXRlZFwtc2xvZ2FuXC1vclwtY2F0Y2hwaHJhc2VcKTsKK+eZveacriA8IHRoZVwtcmhpem9tZVwtb2ZcLWxhcmdlXC1oZWFkZWRcLWF0cmFjdHlsb2Rlc1wtXChhdHJhY3R5bG9kZXNcLW1hY3JvY2VwaGFpYVwpOwor5pys6I2J57ax55uuIDwgYW5cLW91dGxpbmVcLXRyZWF0aXNlXC1vZlwtbWVkaWNhbFwtaGVyYnNcLFwtY29tcGlsZWRcLWJ5XC1saTNcLXNoaTJcLXpoZW4xXC3mnY7mmYLnj407CivnjqAgPCBsYXJnZVwtamFkZVwtdGFibGV0XC11c2VkXC1ieVwtb2ZmaWNpYWxzXC1hdFwtY291cnRcLXRvXC1pbmRpY2F0ZVwtdGhlaXJcLXJhbmtzOwor5ZCD5aSn5oi2IDwgbWFzc1wtc2VpenVyZVwtb2ZcLWZvb2RcLWZyb21cLWxhbmRsb3Jkc1wtZHVyaW5nXC1mYW1pbmVzXC1iZWZvcmVcLWxpYmVyYXRpb247CivkgpwgPCByb2NreVwtZmluZVwtc3RvbmVcLXdoaWNoXC1pc1wtbGl0dGxlXC1sZXNzXC12YWx1YWJsZVwtdGhhblwtamFkZVwtdG9cLWNvbGxhcHNlOwor46GGIDwgYW5cLWFydGlzYW5cLXRvXC1zb2Z0ZW5cLXJhd1wtc2lsa1wtYnlcLWJvaWxpbmdcLWFuZFwtdG9cLWR5ZVwtdGhlXC1kcmVzc2VkXC1zaWxrOwor5p2O5pmC54+NIDwgbGlcLXNoaVwtemhlblwtXCgxNTE4XC0xNTkzXCxcLWZhbW91c1wtZG9jdG9yXCxcLWF1dGhvclwtb2ZcLWJlbjNcLWNhbzNcLWdhbmcxXC1tdTQ7CivlhbXlvLfppqzlo68gPCBzdHJvbmdcLXNvbGRpZXJzXC1hbmRcLXN0dXJkeVwtaG9yc2VzXC1cLVwtYVwtd2VsbFwtdHJhaW5lZFwtYW5kXC1wb3dlcmZ1bFwtYXJteTsKK+ijjiA8IHRvXC10YWtlXC1vZmZcLXRoZVwtY2xvdGhlc1wtYW5kXC1leHBvc2VcLXRoZVwtYm9keVwuXC10b1wtY2FycnlcLWluXC10aGVcLWdpcmRsZTsKK+mOiyA8IHRoZVwtbGluY2hcLXBpblwtb2ZcLWFcLXdoZWVsXC10b1wtZ292ZXJuXC1vclwtY29udHJvbFwtdGhlXC1ub2lzZVwtb2ZcLWFcLWJhcnJvdzsKK+emvea1geaEnyA8IFwiYmlyZFwtZmx1XCJcLVwoZmx1XC1jYXJyaWVkXC1ieVwtYmlyZHNcLVwtXC1mb3VuZFwtaW5cLWhvbmdcLWtvbmdcLWluXC1sYXRlXC0xOTk3XCk7CivkqpAgPCBzb21ldGhpbmdcLW1hZGVcLW9mXC1iYW1ib29cLXB1dFwtaW5cLXRoZVwtYm93XC1jYXNlXC10b1wtcHJldGVjdFwtZnJvbVwtZGFtYWdlOwor5qWt5L2Z5aSn5a24IDwgY29sbGVnZVwtZm9yXC1wZW9wbGVcLXdob1wtYXR0ZW5kXC1hZnRlclwtd29ya1wtXChsaXRcLlw6XC1zcGFyZVwtdGltZVwtY29sbGVnZVwpOwor5IetIDwgY29udGFpbmVyc1wtbWFkZVwtb2ZcLXRoaW5cLWFuZFwtbG9uZ1wtc3RyaXBcLW9mXC1iYW1ib29cLW9yXC13aWxsb3dcLWJyYW5jaGVzOwor45+sIDwgYVwtbW91bnRhaW5cLWluXC10b2RheScnc1wtc2hhbmRvbmdcLXByb3ZpbmNlXC1zb3V0aHdlc3RcLW9mXC1tZW5neWluXC1jb3VudHk7CivjmqUgPCB0b1wtYmVjb21lXC1hc3NvY2lhdGVkXC13aXRoXC1lYWNoXC1vdGhlclwtaW5cLWdvb2RcLW1hbm5lcnNcLWFuZFwtcG9saXRlbmVzczsKK+Wuo+WIpCA8IHByb25vdW5jZVwtYVwtXChqdWRpY2lhbFwpXC1zZW50ZW5jZVwtXChhZnRlclwtYVwtdmVyZGljdFwtaW5cLWFcLWNvdXJ0XC1vZlwtbGF3XCk7Civokpnku6PniL4gPCBcKHdhbHRlclwpXC1tb25kYWxlXC1cKHVzXC1hbWJhc3NhZG9yXC10b1wtamFwYW5cLFwtZm9ybWVyXC11c1wtdmljZVwtcHJlc2lkZW50XCk7CivpmbPntI3lvrcgPCBcKGNsYWlyZVwpXC1jaGVubmF1bHRcLFwtY29tbWFuZGVyXC1vZlwtZmx5aW5nXC10aWdlcnNcLWR1cmluZ1wtd29ybGRcLXdhclwtaWk7Civnl4Xlj4sgPCBhXC1mcmllbmRcLW1hZGVcLWluXC1ob3NwaXRhbFwtb3JcLXBlb3BsZVwtd2hvXC1iZWNvbWVcLWZyaWVuZHNcLWluXC1ob3NwaXRhbDsKK+aNlemiqOaNieW9sSA8IGNoYXNlXC10aGVcLXdpbmRcLWFuZFwtY2x1dGNoXC1hdFwtc2hhZG93c1wtXC1cLW1ha2VcLWdyb3VuZGxlc3NcLWFjY3VzYXRpb25zOwor5bCx5pivIDwgXChlbXBoYXNpemVzXC10aGF0XC1zb21ldGhpbmdcLWlzXC1wcmVjaXNlbHlcLW9yXC1leGFjdGx5XC13aGF0XC1pc1wtc3RhdGVkXCk7CivkpJ4gPCBhXC1raW5kXC1vZlwtd2VhcG9uc1wtaGVsZFwtYnlcLXRoZVwtb2ZmaWNpYWxzXC1pblwtYXR0ZW5kYW5jZVwtaW5cLW9sZFwtdGltZXM7CivjuasgPCBhXC1raW5kXC1vZlwtYW5pbWFsXC1nZW5lcmFsbHlcLWNhbGxlZFwtZm9yXC1taW5vcml0eVwtZ3JvdXBzXC1pblwtb2xkXC1jaGluYTsKK+OzuyA8IGFcLWJhbmtcLW9mXC1lYXJ0aFwtb3JcLWFuXC1lbWJhbmttZW50XC10b1wtYmxvY2tcLXRoZVwtY3VycmVudFwtb2ZcLXRoZVwtd2F0ZXI7Civjr6IgPCBhXC1waWVjZVwtb2ZcLWNyb3NzXC13aXNlXC1ib2FyZFwtdXNlZFwtZm9yXC1mcmFtZVwtb25cLXdoaWNoXC1zaWxrd29ybXNcLXNwaW47Civntq3niL7lrrkgPCBcKGpvaGFubmVzXC1sb2Rld2lrdXNcKVwtdmlsam9lblwtXChzb3V0aFwtYWZyaWNhblwtYW1iYXNzYWRvclwtdG9cLXRhaXdhblwpOwor6JGb5rSy5aOpIDwgbmFtZVwtb2ZcLWFcLXBsYWNlXCxcLWdlemhvdWJhXC1kYW1cLW9uXC10aGVcLWNoYW5namlhbmdcLXJpdmVyXCxcLWluXC1zaWNodWFuOwor5IOYIDwgc2ltcGxlXC1hbmRcLWNydWRlXC10aGVcLXNvdW5kXC1vZlwtcGViYmxlc1wtb3JcLXN0b25lc1wta25vY2tpbmdcLXRvZ2V0aGVyOwor47CxIDwgdG9cLXNtZWFyXC10aGVcLW1vdXRoXC13aXRoXC10aGVcLWJsb29kXC1vZlwtYVwtdmljdGltXC13aGVuXC10YWtpbmdcLWFuXC1vYXRoOwor5LiN5YiG5b285q2kIDwgbWFrZVwtbm9cLWRpc3RpbmN0aW9uXC1iZXR3ZWVuXC13aGF0JydzXC1vbmUnJ3NcLW93blwtYW5kXC13aGF0JydzXC1hbm90aGVyJydzOwor6ICB6aml5LyP5quq5b+X5Zyo5Y2D6YeMIDwgXChsaXRcLlwpXC1hblwtb2xkXC1zdGVlZFwtaW5cLXRoZVwtc3RhYmxlXC1zdGlsbFwtYXNwaXJlc1wtdG9cLWdhbGxvcFwtMTAwMFwtbGk7CivlpKfnprkgPCBkYVwteXVcLFwtbmFtZVwtb2ZcLWFuXC1hbmNpZW50XC1oZXJvXC13aG9cLXN1Y2Nlc3NmdWxseVwtY29udHJvbGxlZFwtZmxvb2RzOwor542vIDwgYVwtdHJpYmVcLW9mXC1zY3l0aGlhbnNcLXdoaWNoXC1pbnZhZGVkXC1jaGluYVwtZHVyaW5nXC10aGVcLWhzaWFcLWR5bmFzdHk7CivpnpQgPCBzaWRlc1wtb3JcLXVwcGVyc1wtb2ZcLXNob2VzXC10b1wtc3RyZXRjaFwtYVwtc2tpblwtb25cLWFcLWZyYW1lXC1mb3JcLWFcLWRydW07CivooajorYkgPCBpbGxuZXNzXC10aGF0XC1oYXNcLW5vdFwtYXR0YWNrZWRcLXRoZVwtdml0YWxcLW9yZ2Fuc1wtb2ZcLXRoZVwtaHVtYW5cLWJvZHk7CivlnIvpmpvpm7voqbHpm7vloLHoq67oqaLlp5Tlk6HmnIMgPCBpbnRlcm5hdGlvbmFsXC1jb25zdWx0YXRpdmVcLWNvbW1pdHRlZVwtZm9yXC10ZWxlcGhvbmVcLWFuZFwtdGVsZWdyYXBoOwor5LiN55+l5Yeh5bm+IDwgY2FuJyd0XC10ZWxsXC1ob3dcLW1hbnlcLXRoZXJlXC1hcmVcLVwtXC10aGVyZVwtYXJlXC1udW1lcm91c1wtc2ltaWxhclwtY2FzZXM7Civklb0gPCB0aGVcLXJob2RvZGVuZHJvblwtXC1cLVwtaXRcLWlzXC1zYWlkXC10b1wtY2F1c2VcLXNoZWVwXC10b1wtc3RhZ2dlclwtYW5kXC1kaWU7CivpvLvpn7vmr40gPCBcKG9mXC1jaGluZXNlXC1wcm9udW5jaWF0aW9uXClcLWFcLXZvd2VsXC1mb2xsb3dlZFwtYnlcLWFcLW5hc2FsXC1jb25zb25hbnQ7CivluavplpEgPCBoYW5nXC1vblwtdG9cLWFuZFwtc2VydmVcLXRoZVwtcmljaFwtYW5kXC1wb3dlcmZ1bFwtYnlcLWxpdGVyYXJ5XC1oYWNrXC13b3JrOwor6YOcIDwgbmFtZVwtb2ZcLWZpZWZcLWluXC1zaGFudG9uZ1wtYmVzdG93ZWRcLW9uXC10aGVcLWVsZGVzdFwtc29uXC1vZlwtd2VuXC13YW5nOwor5o+P57SFIDwgdG9cLXRyYWNlXC1vdmVyXC1yZWRcLWNoYXJhY3RlcnNcLVwoYXNcLWFcLW1ldGhvZFwtb2ZcLWxlYXJuaW5nXC10b1wtd3JpdGVcKTsKK+mHkeawuOWNlyA8IGtpbVwteW9uZ1wtbmFtXC1cKG5vcnRoXC1rb3JlYW5cLWRlcHV0eVwtcHJlbWllclwtYW5kXC1mb3JlaWduXC1taW5pc3RlclwpOwor5oqX5oiwIDwgd2FyXC1vZlwtcmVzaXN0YW5jZVwsXC1lc3BlY2lhbGx5XC10aGVcLXdhclwtYWdhaW5zdFwtamFwYW5cLVwoMTkzN1wtMTk0NVwpOwor5oqx5q6Y5a6I57y6IDwgY2hlcmlzaFwtdGhlXC1vdXRtb2RlZFwtYW5kXC1wcmVzZXJ2ZVwtdGhlXC1vdXR3b3JuXC1cLVwtYmVcLWNvbnNlcnZhdGl2ZTsKK+mWieWhnuecvOedm+aNiem6u+mbgCA8IHRyeVwtdG9cLWNhdGNoXC1zcGFycm93c1wtd2l0aFwtb25lJydzXC1leWVzXC1ibGluZGZvbGRlZFwtXC1cLWFjdFwtYmxpbmRseTsKK+SNvyA8IGFcLWtpbmRcLW9mXC1kYW5jZVwtYWNjb21wYW5pZWRcLWJ5XC1tdXNpY1wtcGVyZm9ybWVkXC1pblwtYW5jaWVudFwtdGltZXM7CivkjJ4gPCBhXC1rbm90XC10b1wtaGFuZ1wtdGhlXC1hcHBhcmF0dXNcLW1hZGVcLW9mXC1yZWVkXC1mb3JcLXJhaXNpbmdcLXNpbGt3b3JtczsKK+SHiSA8IGNhcGFjaXR5XC11bml0XC1pblwtZnJhbmNlXC1lcXVhbFwtdG9cLW9uZVwtaHVuZHJlZFwtdGltZXNcLW9mXC1vbmVcLWxpdHJlOwor472IIDwgYVwtbGFyZ2VcLWVhcnRoZW53YXJlXC1qYXJcLXdpdGhcLWFcLXNtYWxsXC1tb3V0aFwtYW5kXC10d29cLW9yXC1mb3VyXC1lYXJzOwor47mQIDwgdG9cLXRvd1wtYVwtYm9hdFwtYWdhaW5zdFwtdGhlXC1jdXJyZW50XC1pblwtc3dpZnRcLXN0cmVhbVwtZnJvbVwtdGhlXC1iYW5rOwor5rKFIDwgbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtd2VzdGVyblwtaHVuYW5cLXRoYXRcLWZsb3dzXC1pbnRvXC1kb25ndGluZ1wtbGFrZTsKK+ewiyA8IGFcLXNxdWFyZVwtYmFza2V0XC1vZlwtYmFtYm9vXC1mb3JcLWhvbGRpbmdcLWdyYWluXC11c2VkXC1hdFwtc2FjcmlmaWNlczsKK+S4jeiyu+WQueeBsOS5i+WKmyA8IGFzXC1lYXN5XC1hc1wtYmxvd2luZ1wtb2ZmXC1kdXN0XC1cLVwtbm90XC1uZWVkaW5nXC10aGVcLXNsaWdodGVzdFwtZWZmb3J0Owor5paX5om55pS5IDwgc3RydWdnbGVcLWNyaXRpY2lzbVwtdHJhbnNmb3JtYXRpb25cLVwoY3VsdHVyYWxcLXJldm9sdXRpb25cLXNsb2dhblwpOwor6Zi/5LiN5L6G5o+QXC7pmL/kuI3pg73nhrHopb/mj5AgPCBhYmR1bGFpZGlcLWFtdWR1cmV4aXRpXC1cKGNoYWlybWFuXC1vZlwteGluamlhbmdcLWF1dG9ub21vdXNcLXJlZ2lvblwpOwor6be0IDwgc2lsdmVyXC1waGVhc2FudFwtYmFkZ2VcLXdvcm5cLWJ5XC1jaXZpbFwtb2ZmaWNpYWxzXC1vZlwtdGhlXC01dGhcLWdyYWRlOwor5Y2a5Y+k6YCa5LuKIDwgY29udmVyc2FudFwtd2l0aFwtdGhpbmdzXC1wYXN0XC1hbmRcLXByZXNlbnRcLVwtXC1lcnVkaXRlXC1hbmRcLWluZm9ybWVkOwor6J+VIDwgYVwtc3BlY2llc1wtb2ZcLXRvcnRvaXNlXC1mb3VuZFwtbmVhclwtdGhlXC1tb3V0aFwtb2ZcLXRoZVwteWVsbG93XC1yaXZlcjsKK+S7iumfsyA8IG1vZGVyblwtXChpXC5lXC5cLW5vdFwtYW5jaWVudFwpXC1wcm9udW5jaWF0aW9uXC1vZlwtYVwtY2hpbmVzZVwtY2hhcmFjdGVyOwor5pav54m55Yeh6Ku+5pmu5rSb5pavIDwgc3RlcGhhbm9wb3Vsb3NcLVwoZWdcLFwtZm9ybWVyXC1jbGludG9uXC1haWRlXC1nZW9yZ2VcLXN0ZXBoYW5vcG91bG9zXCk7CivjrIYgPCBwb3N0aHVtb3VzXC10aXRsZVwtY29uZmVycmVkXC11cG9uXC1lbXBlcm9yc1wtYW5kXC1lbWluZW50XC1vZmZpY2lhbHM7CivkuI3lhaXomY7nqbTnhInlvpfomY7lrZAgPCBob3dcLWNhblwteW91XC1jYXRjaFwtdGlnZXJcLWN1YnNcLXdpdGhvdXRcLWVudGVyaW5nXC10aGVcLXRpZ2VyJydzXC1sYWlyOwor6Z6dIDwgdGhlXC1waWVjZVwtb2ZcLWxlYXRoZXJcLXVzZWRcLWZvclwtc29sZXNcLW9uXC1jaGluZXNlXC1zaG9lc1wuXC1hXC1wYXRjaDsKK+Wkp+msp+WkqeWuriA8IFwidGhlXC1tb25rZXlcLWNyZWF0ZXNcLWhhdm9jXC1pblwtaGVhdmVuXCJcLFwtc3RvcnlcLWFib3V0XC1zdW5cLXd1XC1rb25nOwor6JSbIDwgYVwtc21hbGxcLW9yY2hpZFwtbGlrZVwtcGxhbnRcLWl0XC1iZWFyc1wtd2hpdGVcLWZsb3dlcnNcLWFcLWRlbmRyb2JpdW07Civnq6/ljYjnr4AgPCB0aGVcLWRyYWdvblwtYm9hdFwtZmVzdGl2YWxcLVwodGhlXC01dGhcLWRheVwtb2ZcLXRoZVwtNXRoXC1sdW5hclwtbW9udGhcKTsKK+SwmSA8IGFuXC1hbmNpZW50XC11bml0XC1vZlwtY2FwYWNpdHlcLXdpdGhcLXRocmVlXC1mZWV0XC1hbmRcLWFcLWJpZ1wtb3BlbmluZzsKK+SUuSA8IGFcLWZ1bmd1c1wtd2hpY2hcLWdyb3dzXC1vblwtcm90dGVuXC1wbGFudHNcLWFuZFwtaXNcLWVhdGVuXC13aGVuXC1mcmVzaDsKK+OvoyA8IGFcLWtpbmRcLW9mXC1mcmFncmFudFwtdHJlZVwtdXNlZFwtdG9cLXByb2R1Y2VcLXBlcmZ1bWVcLWJ5XC1idXJuaW5nXC1pdDsKK+OvoSA8IHRvXC1sYWNxdWVyXC1zb21lXC1raW5kXC1vZlwtYXNoZXNcLW9uXC13b29kZW5cLWFydGljYWxzXC1vclwtZnVybml0dXJlOwor5oKy5aSp5oar5Lq6IDwgYmVtb2FuXC10aGVcLXN0YXRlXC1vZlwtdGhlXC11bml2ZXJzZVwtYW5kXC1waXR5XC10aGVcLWZhdGVcLW9mXC1tYW5raW5kOwor5oOL5oOcIDwgdG9cLWZlZWxcLXNvcnJ5XC1mb3JcLWFcLXBlcnNvblwtb3Zlclwtc3RoXC10aGF0XC1zaG91bGRcLWhhdmVcLWhhcHBlbmVkOwor5bOLIDwgcmFuZ2VzXC1vZlwtaGlsbHNcLXN0cmV0Y2hpbmdcLW9uXC1iZXlvbmRcLWFub3RoZXJcLWlycmVndWxhclwtcGVha3M7CivmrYMgPCBzbWVhclwtb25lJydzXC1tb3V0aFwtd2l0aFwtYmxvb2RcLW9mXC1hXC12aWN0aW1cLXdoZW5cLXRha2luZ1wtYW5cLW9hdGg7Civnmb3ojKvojKsgPCBcKG9mXC1taXN0XCxcLXNub3dcLFwtZmxvb2R3YXRlclwsXC1ldGNcKVwtYVwtdmFzdFwtZXhwYW5zZVwtb2ZcLXdoaXRlbmVzczsKK+edpeedqCA8IGxvb2tcLWF0XC1zb21lYm9keVwtZGlzZGFpbmZ1bGx5XC1vdXRcLW9mXC10aGVcLWNvcm5lclwtb2ZcLW9uZScnc1wtZXllOwor576XIDwgdHJpYmVzXC1pblwtd2VzdFwtY2hpbmFcLXN0cm9uZ1wuXC1lZHVjYXRlZFwuXC1vYnN0aW5hdGVcLlwtYVwtcGFydGljbGU7Civog6HpgakgPCBodVwtc2hpXC1cKDE4OTFcLTE5NjJcKVwsXC1vcmlnaW5hbFwtcHJvcG9uZW50XC1vZlwtYmFpMlwtaHVhNFwtd2VuMlwt55m96Kmx5paHOwor6LuN5aeUIDwgbWlsaXRhcnlcLWNvbW1pc3Npb25cLW9mXC10aGVcLWNvbW11bmlzdFwtcGFydHlcLWNlbnRyYWxcLWNvbW1pdHRlZTsKK+S4jeacjeawtOWcnyA8IFwob2ZcLWFcLXN0cmFuZ2VyXClcLW5vdFwtYWNjdXN0b21lZFwtdG9cLXRoZVwtY2xpbWF0ZVwtb2ZcLWFcLW5ld1wtcGxhY2U7Civmlq/kvannvoUgPCBcKGpvYW5cKVwtc3Blcm9cLVwodW5kZXJcLXNlY3JldGFyeVwtb2ZcLXN0YXRlXC1mb3JcLWVjb25vbWljXC1hZmZhaXJzXCk7CivkuKMgPCBhbmNpZW50XC1mb3JtXC1vZlwtdGhlXC10ZW50aFwtb2ZcLXRoZVwtdHdlbHZlXC10ZXJyZXN0cmlhbFwtYnJhbmNoZXM7CivkoYUgPCBzb21ldGhpbmdcLXVzZWRcLXRvXC1iaW5kXC10aGVcLWZyYW1lXC13b3JrXC1pblwtYVwtY2FydFwtb2ZcLW9sZFwtdGltZXM7CivkmqggPCBhXC1zdHJpbmdcLWZhc3RlbmVkXC10b1wtYW5cLWFycm93XC10b1wtZHJhd1wtaXRcLWJhY2tcLWFmdGVyXC1zaG9vdGluZzsKK+SOoCA8IHRvXC10d2lzdFwtb3JcLXRvXC1jcnVtcGxlXC1iZXR3ZWVuXC1oYW5kc1wtYW5kXC1tYWtlXC1zb21ldGhpbmdcLXR1cm47Civjn7kgPCB0aGVcLWFwcGVhcmFuY2VcLW9mXC1hXC1tb3VudGFpblwtaXNcLWxvZnR5XC1hbmRcLXN0ZWVwXC1hbmRcLXByb2ZvdW5kOwor4524IDwgYVwtY29uaWNhbFwtY2FwXC13b3JuXC1vblwtY2VyZW1vbmlvdXNcLW9jY2FzaW9uc1wtaW5cLWFuY2llbnRcLXRpbWVzOwor45moIDwgdGhlXC1yb3lhbFwtZG9tYWluc1wtc2V0XC1hcGFydFwtaW5cLWFuY2llbnRcLXRpbWVzXC1mb3JcLXRoZVwtZW1wZXJvcjsKK+eHiOevgCA8IHRoZVwtbGFudGVyblwtZmVzdGl2YWxcLVwoMTV0aFwtb2ZcLWZpcnN0XC1tb250aFwtb2ZcLWx1bmFyXC1jYWxlbmRhclwpOwor6KGpIDwgdGhlXC1vcGVuXC1zZWFtXC1vZlwtYVwtZ2FybWVudFwtd2hpY2hcLWFsbG93c1wtZnJlZWRvbVwtb2ZcLW1vdmVtZW50Owor5bG6IDwgYVwtaGlsbFwtd2l0aFwtdHJlZXNcLW9yXC1ncmFzc1wtXC1cLXNvbWVcLWdpdmVcLXRoZVwtb3Bwb3NpdGVcLW1lYW5pbmc7CivljJfmtIsgPCB0aGVcLXFpbmdcLWR5bmFzdHlcLW5hbWVcLWZvclwtdGhlXC1jb2FzdGFsXC1wcm92aW5jZXNcLW9mXC1saWFvbmluZzsKK+WFq+aXlyA8IHRoZVwtXCJlaWdodFwtYmFubmVyc1wiXC1cKG1pbGl0YXJ5XC1vcmdhbmlzYXRpb25cLWluXC1xaW5nXC1keW5hc3R5XCk7CivktqYgPCB1cHBlclwtYW5kXC1sb3dlclwtdGVldGhcLWluXC1vcmRlclwtYW5kXC1jb3JyZXNwb25kaW5nXC1lYWNoXC1vdGhlcjsKK+SngiA8IHRvXC10dXJuXC1vdmVyXC10aGVcLWNsb2RcLW9mXC10aGVcLWVhcnRoXC13aXRoXC1hXC1zaG92ZWxcLW9yXC1hXC1zcGFkZTsKK+iXpOmHjiA8IG5hbWVcLW9mXC1hXC1wZXJzb25cLFwtdGVuZ1wteWVcLFwtYVwtamFwYW5lc2VcLWZyaWVuZFwtb2ZcLWx1M1wteHVuNFwt6a2v6L+FOwor6I+v6KGoIDwgbWFyYmxlXC1waWxsYXJcLVwob3JuYW1lbnRhbFwtY29sdW1uXC1pblwtZnJvbnRcLW9mXC1wbGFjZXNcLFwtdG9tYnNcKTsKK+W+healrSA8IHRvXC1hd2FpdFwtam9iXC1hc3NpZ25tZW50XC1cKHRlcm1cLXVzZWRcLW9ubHlcLWluXC1tYWlubGFuZFwtY2hpbmFcKTsKK+WkqualteaLsyA8IGFcLWtpbmRcLW9mXC10cmFkaXRpb25hbFwtY2hpbmVzZVwtc2hhZG93Ym94aW5nXC1cKHRhaVwtY2hpXC1jaHVhblwpOwor5ZOA5YW15b+F5YudIDwgYW5cLWFybXlcLWJ1cm5pbmdcLXdpdGhcLXJpZ2h0ZW91c1wtaW5kaWduYXRpb25cLWlzXC1ib3VuZFwtdG9cLXdpbjsKK+acg+S4jeacgyA8IFwocG9zaW5nXC1hXC1xdWVzdGlvblw6XC13aGV0aGVyXC1zb21lb25lXCxcLXNvbWV0aGluZ1wpXC1jYW5cLW9yXC1ub3Q7Civmia7nm7ggPCB0aGVcLWFwcGVhcmFuY2VcLW9mXC1hblwtYWN0b3JcLW9yXC1hY3RyZXNzXC1pblwtY29zdHVtZVwtb3JcLW1ha2V1cDsKK+aKseS9m+iFsyA8IGNsYXNwXC1idWRkYScnc1wtZmVldFwtXC1cLXByb2Zlc3NcLWRldm90aW9uXC1vbmx5XC13aGVuXC1pblwtdHJvdWJsZTsKK+WZniA8IHRoZVwtbW92ZW1lbnRcLW9mXC1hXC1maXNoJydzXC1tb3V0aFwtYXRcLXRoZVwtc3VyZmFjZVwtb2ZcLXRoZVwtd2F0ZXI7CivllLUgPCB1c2VkXC1pblwtYnVkZGhpc3RcLXRleHRzXC10b1wtdHJhbnNsaXRlcmF0ZVwtbm9uXC1jaGluZXNlXC1zb3VuZHM7CivkoIIgPCBuYW1lXC1vZlwtYVwtcG93ZXJmdWxcLWZldWRhbFwtc3RhdGVcLXdoaWNoXC1leGlzdGVkXC03NDBcLTMzMFwtYlwuY1wuOwor5Ja2IDwgdG9cLXJhaXNlXC11cFwtdGhlXC1ub3NlXC1pblwtb3JkZXJcLXRvXC1nZXRcLXRoZVwtYnVnc1wtaW5cLXRoZVwtZWFydGg7Civom4voirHmua8gPCBjbGVhclwtc291cFwtY29udGFpbmluZ1wtYmVhdGVuXC1lZ2dcLWFuZFwtZ3JlZW5cLWxlYWZ5XC12ZWdldGFibGU7CivkhJsgPCBzZXJ2aWNlXC1vclwtcml0ZXNcLW9mXC1vZmZlcmluZ1wtc2FjcmlmaWNlc1wtZm9yXC1kcmlua1wtYW5kXC1mb29kOwor47ywIDwgYW5cLWVhcnRoZW53YXJlXC1qYXJcLXdpdGhcLWFcLXNtYWxsXC1tb3V0aFwtYW5kXC10d29cLW9yXC1mb3VyXC1lYXJzOwor47iWIDwgaGlkZVwtb3JcLXRvXC1rZWVwXC1pblwtc3RvcmVcLXRoZVwtdmVnZXRhYmxlXC1pblwtY29sZFwtd2ludGVyXC1kYXlzOwor47efIDwgdG9cLXNjYWxkXC10aGVcLWJyaXN0bGVzXC1vZmZcLWFcLXBpZ1wtb3JcLXRoZVwtZmVhdGhlcnNcLW9mZlwtYVwtYmlyZDsKK+OwhyA8IHRoZVwtc3F1YXJlXC1wZWNrXC1zaGFwZWRcLWJveFwtaGFsZlwtd2F5XC11cFwtYVwtY2hpbmVzZVwtZmxhZ3N0YWZmOwor46a8IDwgYVwtd29vZGVuXC1waWxlc1wtdXNlZFwtYXNcLWFcLWNhYmxlXC10b1wtbWFrZVwtaW1tb3ZhYmxlXC1vZlwtYVwtYm9hdDsKK+OipyA8IGFcLWJvb2tcLW9yXC1wYWludGluZ1wtd2hpY2hcLWNhblwtYmVcLWVhc2lseVwtZm9sZGVkXC1vclwtcm9sbGVkXC11cDsKK+mHkeWxseWvuiA8IGppbnNoYW5cLXRlbXBsZVwsXC13aGVyZVwtZmFoYWlcLWxpdmVzXC1cKGZyb21cLW1hZGFtXC13aGl0ZVwtc25ha2VcKTsKK+S4puiSguiTriA8IHR3aW5cLWxvdHVzXC1mbG93ZXJzXC1vblwtb25lXC1zdGFsa1wtXC1cLWFcLWRldm90ZWRcLW1hcnJpZWRcLWNvdXBsZTsKK+atpuihkyA8IHd1c2h1XCxcLW1hcnRpYWxcLWFydHNcLXN1Y2hcLWFzXC1zaGFkb3dcLWJveGluZ1wsXC1zd29yZHBsYXlcLFwtZXRjXC47CivkuK3lhbEgPCBcKGFiYnJldmlhdGlvblwtZm9yXClcLWNoaW5lc2VcLWNvbW11bmlzdFwtXChwYXJ0eVwsXC1yZWdpbWVcLFwtZXRjXC5cKTsKK+mSsiA8IGtpbmRcLW9mXC1nb25nXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXNcLWJ5XC10cm9vcHNcLW9uXC10aGVcLW1hcmNoOwor5pS/5Y2UIDwgY3BwY2NcLVwoY2hpbmVzZVwtcGVvcGxlJydzXC1wb2xpdGljYWxcLWNvbnN1bHRhdGl2ZVwtY29tbWl0dGVlXCk7CivmjqHlj5YgPCBhZG9wdFwtb3JcLWNhcnJ5XC1vdXRcLVwobWVhc3VyZXNcLFwtcG9saWNpZXNcLFwtY291cnNlXC1vZlwtYWN0aW9uXCk7CivnmZ/kuIkgPCBhXC13cmV0Y2hlZFwtbG9va2luZ1wtdHJhbXBcLXdob1wtbGl2ZXNcLWJ5XC1iZWdnaW5nXC1vclwtc3RlYWxpbmc7CivooajlhYQgPCBtYWxlXC1jb3VzaW5cLXdpdGhcLWFcLWRpZmZlcmVudFwtc3VybmFtZVwtXChvbGRlclwtdGhhblwtb25lc2VsZlwpOwor55+b6aCt5oyH5ZCRIDwgdGFyZ2V0XC1zb21lb25lXC1vclwtc29tZXRoaW5nXC1cKGZvclwtYXR0YWNrXCxcLWNyaXRpY2lzbVwsXC1ldGNcLlwpOwor5LuZ6I2JIDwgYVwta2luZFwtb2ZcLXBsYW50XC11c2VkXC1hc1wtYVwtbWVkaWNpbmFsXC1oZXJiXC1pblwtYW5jaWVudFwtdGltZXM7CivkqrMgPCBzbGFudGVkXC1mYWNlXC1jYXVzaW5nXC1ieVwtdGhlXC1wYXJhbHl6ZWRcLW9mXC10aGVcLWZhY2lhbFwtbmVydmU7Civmnb/og6EgPCBhXC1ib3dlZFwtc3RyaW5nZWRcLWluc3RydW1lbnRcLXdpdGhcLWFcLXRoaW5cLXdvb2Rlblwtc291bmRib2FyZDsKK+SeiyA8IHRvXC1kb1wtYWxtc1wtZm9yXC10aGVcLWJ1ZGRoaXN0XC1wcmllc3RzXC1vclwtbW9ua3NcLWluXC1vbGRcLXRpbWVzOwor5JmGIDwgc2xpdHNcLW9uXC10aGVcLWxvd2VyXC1wYXJ0XC1vZlwtYVwtZ293blwtZm9yXC1mcmVlZG9tXC1vZlwtbW92ZW1lbnQ7CivkgI8gPCB0b1wtbW92ZVwtb25lJydzXC1leWVzXC10b1wtZXhwcmVzc1wtb3JcLWluZGljYXRlXC13aXRoXC1leWVzXC1kaXp6eTsKK+O/hCA8IHRoZVwtZ3JvYW5zXC1vclwtbW9hbnNcLWZyb21cLWFcLXBlcnNvblwtaW5cLWFcLWNyaXRpY2FsXC1jb25kaXRpb247Civjto8gPCBhblwtYW5jaWVudFwtbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtaGVuYW5cLXByb3ZpbmNlXC1kZW5nZmVuZ3hpYW47Civjs4cgPCBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC10b2RheScnc1wtamlhbmdzdVwtcHJvdmluY2VcLXlpeGluZ1wtY291bnR5Owor46uLIDwgYVwtc2lsa2VuXC1iYW5uZXJcLWhhbmdpbmdcLWZyb21cLWFcLXN0YWZmXC1iZW50XC1vdmVyXC1hdFwtdGhlXC10b3A7Civmlq/ljaHkvK/li5LnpIEgPCBzY2FyYm9yb3VnaFwtc2hvYWxcLVwocGhpbGlwcGluZXMnJ1wtbmFtZVwtZm9yXC1odWFuZ3lhblwtaXNsYW5kXCk7CivkuI3mgaXkuIvllY8gPCBub3RcLWZlZWxcLWFzaGFtZWRcLXRvXC1hc2tcLWFuZFwtbGVhcm5cLWZyb21cLW9uZScnc1wtc3Vib3JkaW5hdGVzOwor54u9IDwgYVwtbGVnZW5kYXJ5XC1hbmltYWxcLXdpdGhcLXNob3J0XC1mb3JlbGVnc1wtd2hpY2hcLXJvZGVcLWFcLXdvbGY7CivmrZAgPCB1c2VkXC1pblwtdHJhbnNsaXRlcmF0aW5nXC1ub25cLWNoaW5lc2VcLXdvcmRzXC1zdWNoXC1hc1wtZXVyb3BlOwor5rGoIDwgbWlcLXJpdmVyXC1pblwtaHVuYW5cLXByb3ZpbmNlXC13aGVyZVwtcXVcLXl1YW5cLWRyb3duZWRcLWhpbXNlbGY7CivmsZwgPCBhXC1zdHJlYW1cLXdoaWNoXC1sZWF2ZXNcLXRoZVwtbWFpblwtYnJhbmNoXC10aGVuXC1sYXRlclwtcmV0dXJuczsKK+WNoeaLiU9LIDwga2FyYW9rZVwtXChzaW5naW5nXC10b1wtcmVjb3JkZWRcLWluc3RydW1lbnRhbFwtYWNjb21wYW5pbWVudFwpOwor5Lit5ZyL5rCR6IiqIDwgZ2VuZXJhbFwtYWRtaW5pc3RyYXRpb25cLW9mXC1jaXZpbFwtYXZpYXRpb25cLW9mXC1jaGluYVwtXChjYWFjXCk7Civoo5zppIogPCB0YWtlXC1hXC10b25pY1wtb3JcLW5vdXJpc2hpbmdcLWZvb2RcLXRvXC1idWlsZFwtdXBcLW9uZScnc1wtaGVhbHRoOwor5rKZ5Yip56eR5LuA57at5YipIDwgZ2VuZXJhbFwtc2hhbGlrYXNodmlsaVwtXChoZWFkXC1vZlwtdXNcLWpvaW50XC1jaGllZnNcLW9mXC1zdGFmZlwpOwor57CIIDwgYmFtYm9vXC1tYXRcLXVzZWRcLXRvXC1wcm90ZWN0XC1jYXJyaWFnZVwtcGFzc2VuZ2Vyc1wtZnJvbVwtZHVzdDsKK+eIvCA8IGFcLXNtYWxsXC10YWJsZVwtb3JcLXRpZXJlZFwtc3RhbmRcLWZpbGxlZFwtd2l0aFwtbWVhdFwtb2ZmZXJpbmdzOwor5LiJ5ZyL5ryU576pIDwgbmFtZVwtb2ZcLWFcLWNsYXNzaWNcLW5vdmVsXCxcLVwicm9tYW5jZVwtb2ZcLXRoZVwtdGhyZWVcLWtpbmdkb21zXCI7Civmi7zlkb0gPCB0b1wtYmVcLXJlYWR5XC10b1wtcmlza1wtb25lJydzXC1saWZlXC1cKGluXC1maWdodGluZ1wsXC13b3JrXCxcLWV0Y1wuXCk7Civog4zmsLTkuIDmiLAgPCBmaWdodFwtd2l0aFwtb25lJydzXC1iYWNrXC10b1wtdGhlXC1yaXZlclwtXC1cLWZpZ2h0XC10b1wtd2luXC1vclwtZGllOwor5LOaIDwgYVwtc29ydFwtb2ZcLW5pZ2h0aW5nYWxlXC13aGljaFwtaXNcLXNhaWRcLXRvXC1zaW5nXC1mb3JcLXRoZVwtZGF3bjsKK+ShgiA8IHRoZVwtbG9uZ1wtd29vZGVuXC1idW1wZXJcLWF0XC10aGVcLXJlYXJcLW9mXC1hXC1jYXJ0XC1vclwtY2FycmlhZ2U7Civmna/lvJPom4flvbEgPCBtaXN0YWtpbmdcLXRoZVwtcmVmbGVjdGlvblwtb2ZcLWFcLWJvd1wtaW5cLXRoZVwtY3VwXC1mb3JcLWFcLXNuYWtlOwor5IO+IDwgdG9cLW9mZmVyXC1zbWFsbFwtcGlnXC1hc1wtc2FjcmlmaWNlXC13aGVuXC13YXJzaGlwXC1nb2RcLW9mXC1saWZlOwor47yqIDwgZnJhZ21lbnRzXC1vZlwtYVwtdGlsZVwtaGF2ZW4nJ3RcLXRcLWJlZW5cLWtpbG5cLWRyaWVkXC1jb21wbGV0ZWx5Owor47SWIDwgbmFtZVwtb2ZcLWFcLXN0cmVhbVwtaW5cLXNoYW5kb25nXC1wcm92aW5jZVwtc291dGh3ZXN0XC1vZlwtamluYW47CivjnYkgPCBzcGFjZVwtYmV0d2VlblwtdGhlXC10aHJvbmVcLWFuZFwtdGhlXC1yZXRpcmluZ1wtcm9vbVwtYmVoaW5kXC1pdDsKK+OWqyA8IHVzZWRcLWluXC1uYW1lc1wtZm9yXC1taW5vcml0eVwtZXRobmljXC1ncm91cFwtaW5cLWFuY2llbnRcLWNoaW5hOwor6IOM5LqV6Zui6YSJIDwgbGVhdmVcLW9uZScnc1wtbmF0aXZlXC1wbGFjZVwtXChlc3BlY2lhbGx5XC1hZ2FpbnN0XC1vbmUnJ3NcLXdpbGxcKTsKK+eCnSA8IHN0aXJcLWZyeVwtb3JcLWJvaWxcLWluXC13YXRlclwtb3JcLW9pbFwtdGhlblwtY29va1wtd2l0aFwtYVwtc2F1Y2U7CivpgbfmgJIgPCB0b1wtdGFrZVwtb25lJydzXC1hbmdlclwtb3V0XC1vblwtc2JcLVwod2hvXC1kb2VzXC1ub3RcLWRlc2VydmVcLWl0XCk7Civms6LngL7otbfkvI8gPCBvZlwtYVwtcGllY2VcLW9mXC13cml0aW5nXC13aXRoXC1vbmVcLWNsaW1heFwtZm9sbG93aW5nXC1hbm90aGVyOwor5LiN54K65bey55SaIDwgcmVmcmFpblwtZnJvbVwtZ29pbmdcLXRvXC1leHRyZW1lc1wtaW5cLW1ldGluZ1wtb3V0XC1wdW5pc2htZW50Owor5LiN57SE6ICM5ZCMIDwgdGFrZVwtdGhlXC1zYW1lXC1hY3Rpb25cLW9yXC12aWV3XC13aXRob3V0XC1wcmlvclwtY29uc3VsdGF0aW9uOwor6aOb6JmO6ZqKIDwgZmx5aW5nXC10aWdlcnNcLVwodXNcLWFpcm1lblwtaW5cLWNoaW5hXC1kdXJpbmdcLXdvcmxkXC13YXJcLXR3b1wpOwor5o6b5aW9IDwgdG9cLWhhbmdcLXVwXC1wcm9wZXJseVwtXCh0ZWxlcGhvbmVcLFwtcGljdHVyZVwsXC1jbG90aGVzXCxcLWV0Y1wuXCk7Civmi5Tmr5IgPCBkcmF3XC1vdXRcLXB1c1wtYnlcLWFwcGx5aW5nXC1hXC1wbGFzdGVyXC10b1wtdGhlXC1hZmZlY3RlZFwtYXJlYTsKK+W8riA8IGFcLWNyb3d3Ym93XC13aGljaFwtZGlzY2hhcmdlZFwtc2V2ZXJhbFwtYm9sdHNcLWluXC1zdWNjZXNzaW9uOwor5KqZIDwgbGVhdGhlclwtd3JhcHBlZFwtY29sbGFyXC1mb3JcLWFcLWRyYWZ0XC1hbmltYWxcLW9mXC1hXC1jYXJyaWFnZTsKK+SnmiA8IHRoZVwtbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtdGhlXC1zb3V0aFwtd2VzdFwtb2ZcLWhlYmVpXC1wcm92aW5jZTsKK+eVnOWKmyA8IGFuaW1hbFwtcG93ZXJlZFwtXChhc1wtb3Bwb3NlZFwtdG9cLWh1bWFuXC1vclwtbWFjaGluZVwtcG93ZXJlZFwpOwor5KGeIDwgbGVhdGhlclwtdGhhdFwtd2luZFwtcm91bmRcLW9uXC10aGVcLXNoYWZ0c1wtb2ZcLWFcLWJpZ1wtY2FycmlhZ2U7CivkjZwgPCBhXC1iYXNrZXRcLW9yXC1hXC1jYWdlXC11c2VkXC10b1wta2VlcFwtd2lsZFwtYW5kXC1kb21lc3RpY1wtZm93bHM7Civkh4YgPCBjYXBhY2l0eVwtdW5pdFwtaW5cLWZyYW5jZVwtZXF1YWxcLXRvXC10ZW5cLXRpbWVzXC1vZlwtb25lXC1saXRyZTsKK+SChSA8IHRvXC1oYXZlXC1pbnNpZ2h0XC1vclwtdmlzaW9uXC1vZlwtYVwtc2ltcGxlXC1hbmRcLWhvbmVzdFwtcGVyc29uOwor47K9IDwgbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtdG9kYXknJ3NcLXNvdXRod2VzdFwtb2ZcLXNoYW54aVwtcHJvdmluY2U7CivjrpAgPCBhXC1yYWNrXC1vclwtYVwtc3RhbmRcLXdpdGhcLXRocmVlXC1zdGlja3NcLXRvXC1jcm9zc1wtZWFjaFwtb3RoZXI7CivjrLggPCBhXC1raW5kXC1vZlwtc2VydmljZXNcLW9yXC1jZXJlbW9uaWVzXC1vZlwtb2ZmZXJpbmdcLXNhY3JpZmljZXM7CivmmpfoirHlhZIgPCBhXC12ZWlsZWRcLWRlc2lnblwtaW5jaXNlZFwtaW5cLXBvcmNlbGFpblwtb3JcLXdvdmVuXC1pblwtZmFicmljOwor5Yaw54Kt5LiN55u45a65IDwgYXNcLWluY29tcGF0aWJsZVwtb3JcLWlycmVjb25jaWxhYmxlXC1hc1wtaWNlXC1hbmRcLWhvdFwtY29hbHM7CivluavohZQgPCB2b2NhbFwtYWNjb21wYW5pbWVudFwtaW5cLXNvbWVcLXRyYWRpdGlvbmFsXC1jaGluZXNlXC1vcGVyYXM7CivlpZTllqogPCBoYXN0ZW5cLWhvbWVcLWZvclwtdGhlXC1mdW5lcmFsXC1vZlwtYVwtcGFyZW50XC1vclwtZ3JhbmRwYXJlbnQ7Civnmb3oio0gPCBcKHBlZWxlZFwpXC1yb290XC1vZlwtaGVyYmFjZW91c1wtcGVvbnlcLVwocGFlb25pYVwtbGFjdGlmbG9yYVwpOwor6YOMIDwgbmFtZVwtb2ZcLWFuXC1hbmNpZW50XC1oc2llblwtaW5cLW1vZGVyblwtZ2Fuc3VcL3NoYWFueGlcLWFyZWFcLjsKK+iIiOi2oyA8IGludGVyZXN0XC1cKGRpcmVjdGVkXC10b3dhcmRzXCxcLW5vdFwtaW5oZXJlbnRcLWluXC1zb21ldGhpbmdcKTsKK+aLlOe9kOWtkCA8IGN1cHBpbmdcLXRlY2huaXF1ZVwtdXNlZFwtaW5cLXRyYWRpdGlvbmFsXC1jaGluZXNlXC1tZWRpY2luZTsKK+iAsCA8IHRvb3RobGVzc1wtcmFrZVwtZm9yXC1kcmF3aW5nXC1lYXJ0aFwtb3ZlclwtbmV3bHlcLXNvd25cLWdyYWluOwor55CAIDwgZ2Vtc1wtb2ZcLXBlYXJsc1wtZm9ybWVybHlcLXB1dFwtaW50b1wtdGhlXC1tb3V0aFwtb2ZcLWFcLWNvcnBzZTsKK+aomeWFtSA8IHBhcmFkZVwtZ3VhcmRzXC1cKHVzdWFsbHlcLXNwYWNlZFwtb3V0XC1hbG9uZ1wtcGFyYWRlXC1yb3V0ZXNcKTsKK+SqgyA8IHdpbmVcLWNvbnRhaW5lclwtdXNlZFwtYnlcLW1pbm9yaXR5XC10cmliZVwtaW5cLWFuY2llbnRcLXRpbWVzOwor5KW3IDwgYVwtaGluZ2VkXC1zaGVhclwtb3JcLWxvbmdcLWtuaWZlXC1mb3JcLWN1dHRpbmdcLWZvZGRlclwtb3JcLWhheTsKK+SkqSA8IGFuXC1vcm5hbWVudFwtYXRcLXRoZVwtZW5kXC1vZlwtYVwtYmVsdFwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5J2qIDwgdG9cLXByb3ZpZGVcLW1vbmV5XC1vclwtZ2lmdFwtYW5kXC10b1wtY29uc3VsdFwtZm9ydHVuZVwtdGVsbGVyOwor5JmbIDwgY2VyZW1vbmlhbFwtZHJlc3NcLW9mXC10aGVcLWVtcGVyb3JcLW9yXC12ZXJ5XC1oaWdoXC1vZmZpY2lhbHM7CivkmKYgPCBhXC1raW5kXC1vZlwtaGVhZFwtZHJlc3NcLXdvcmVcLWluXC1mdW5lcmFsXC1yaXRlc1wtaW5cLW9sZFwtZGF5czsKK+SYnyA8IGtpbmRcLW9mXC1zaWxrXC13b3Zlblwtd2l0aFwtZG91YmxlXC10aHJlYWRzXC1hbmRcLXdhdGVyXC1wcm9vZjsKK+SUkSA8IGFcLXdoaXRlXC1jb2xvcmVkXC1jbHVzdGVyXC1ncm93blwtYXRcLXRoZVwtdGlwXC1vZlwtY29nb25ncmFzczsKK+SJsiA8IHRoaW5cLWFuZFwtZmxhdFwtc2xpcHNcLW9mXC1iYW1ib29cLXVzZWRcLWZvclwtd2VhdmluZ1wtcHVycG9zZTsKK+O8vSA8IGZyYWdtZW50c1wtb2ZcLWFcLXRpbGVcLWhhdmVuJyd0XC1iZWVuXC1raWxuXC1kcmllZFwtY29tcGxldGVseTsKK+O2gSA8IGFmdGVyXC1ibG9ja2luZ1wtdGhlXC13YXRlclwtZmxvd1wtdGFrZXNcLWRpZmZlcmVudFwtd2F0ZXJ3YXk7Civjr4AgPCBib25kc1wtYW5kXC1mZXR0ZXJzXC1mb3JcLWZhbGNvbnNcLWFuZFwtZG9nc1wtdXNlZFwtaW5cLWh1bnRpbmc7Civjkr4gPCBhXC1raW5kXC1vZlwtd3JhcHBlclwtdXNlZFwtdG9cLWNvdmVyXC1vdmVyXC10aGVcLWZhY2VcLWFuZFwtaGVhZDsKK+WFq+mdoueOsueTjyA8IGJlXC1zbW9vdGhcLWFuZFwtc2xpY2tcLVwoaW5cLWVzdGFibGlzaGluZ1wtc29jaWFsXC1yZWxhdGlvbnNcKTsKK+WFg+WuteevgCA8IHRoZVwtbGFudGVyblwtZmVzdGl2YWxcLFwtamFudWFyeVwtMTVcLW9uXC10aGVcLWx1bmFyXC1jYWxlbmRhcjsKK+ecvuW/l+aIkOWfjiA8IFwidW5pdHlcLW9mXC13aWxsXC1pc1wtYW5cLWltcHJlZ25hYmxlXC1zdHJvbmdob2xkXCJcLVwocHJvdmVyYlwpOwor5YCL6auU5oi2IDwgYVwtc21hbGxcLXByaXZhdGVcLWJ1c2luZXNzXC1cKHVzZWRcLWluXC1tYWlubGFuZFwtY2hpbmFcLW9ubHlcKTsKK+azlea1tyA8IG5hbWVcLW9mXC1hXC1idWRkaGlzdFwtbW9ua1wsXC1mYWhhaVwsXC1mcm9tXC1tYWRhbVwtd2hpdGVcLXNuYWtlOwor6KCyIDwgdGhlXC1taWxsaXBlZGVcLXNvbWV0aW1lc1wtY29uZm91bmRlZFwtd2l0aFwtdGhlXC1ncm93XC13b3JtOwor6JinIDwgYVwtcGxhbnRcLXdoaWNoXC1yZXNlbWJsZXNcLXdoZWF0XC1idXRcLWhhc1wtbm9cLWVkaWJsZVwtZ3JhaW47Civmma/lvrfpjq4gPCBqaW5nXC1kZVwtemhlblwtXChhXC1jaGluZXNlXC1jaXR5XC1pblwtamlhbmdcLXhpXC3msZ/opb9cLXByb3ZpbmNlXCk7Civpn4vniL7lvJfpm7fojLIgPCBcKGdlb3JnZVwpXC13ZWhyZnJpdHpcLVwoYmVpamluZ1wtYnVyZWF1XC1jaGllZlwtb2ZcLW5ld3N3ZWVrXCk7Civplbfln47ljaEgPCBncmVhdFwtd2FsbFwtY2FyZFwtXChjcmVkaXRcLWNhcmRcLWlzc3VlZFwtYnlcLWJhbmtcLW9mXC1jaGluYVwpOwor5ZOI6LKd54i+IDwgXCh3ZWJzdGVyXClcLWh1YmJlbGxcLVwoZm9ybWVyXC1hc3NvY2lhdGVcLWF0dG9ybmV5XC1nZW5lcmFsXCk7CivokKzlo73lsbEgPCBuYW1lXC1vZlwtYVwtcGxhY2VcLFwtbG9uZ2V2aXR5XC1oaWxsXCxcLWluXC1zdW1tZXJcLXBhbGFjZVwt6aCk5ZKM5ZySOwor5ouJ6YKj54OIIDwgXChwcmluY2VcKVwtcmFuYXJpZGRoXC1cKHNvblwtb2ZcLWtpbmdcLXNpaGFub3VrXC1vZlwtY2FtYm9kaWFcKTsKK+ShtCA8IGNhcnJpYWdlXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXNcLXRvXC10YWtlXC1lbmVteVwtcG9zaXRpb247Civkn7ogPCB3YWxrXC1zbG93bHlcLWJlY2F1c2VcLW9mXC10aGVcLXdyb25nXC1wb3NpdGlvblwtb2ZcLXRoZVwtZmVldDsKK+SJoyA8IHNsaXBzXC1vZlwtYmFtYm9vXC1wcm92aWRlZFwtZm9yXC13cml0aW5nXC1pblwtYW5jaWVudFwtdGltZXM7CivkgbkgPCB0b1wtbG9va1wtYXNrYW5jZVwtXC1cLVwtYVwtZXhwcmVzc2lvblwtb2ZcLWRpc2RhaW5cLW9yXC1kZXNwaXNlOwor47yMIDwgbG90XC1vZlwtbWVsb25zXC1ncm93aW5nXC1idXRcLXRoZVwtcm9vdFwtaXNcLXdlYWtcLWFuZFwtZmVlYmxlOwor47ugIDwgamFkZVwtaGFuZ2luZ1wtb25cLXRoZVwtc2lkZXNcLW9mXC10aGVcLWNhcFwtaW5cLWFuY2llbnRcLXRpbWVzOwor466jIDwgYVwtcGllY2VcLW9mXC13b29kXC11c2VkXC10b1wtc3RyaWtlXC1vZmZcLWdyYWluXC1pblwtYVwtbWVhc3VyZTsKK+OTpCA8IHRvXC1zdHJpcFwtdGhlXC1za2luXC1vZlwtdGhlXC1mYWNlXC1cLVwtXC1hblwtaW1taW5lbnRcLWNhbGFtaXR5Owor5YyF5bmy5Yi2IDwgYVwtc3lzdGVtXC1vZlwtcGF5bWVudFwtcGFydGx5XC1pblwta2luZFwtYW5kXC1wYXJ0bHlcLWluXC1jYXNoOwor5oqX5pel5oiw54itIDwgXChjaGluYScnc1wpXC13YXJcLW9mXC1yZXNpc3RhbmNlXC1hZ2FpbnN0XC1qYXBhblwtXCgxOTM3XC0xOTQ1XCk7CivpoY/nnJ/ljb8gPCBuYW1lXC1vZlwtYVwtcGVyc29uXCxcLXlhblwtemhlbnFpbmdcLFwtYVwtZmFtb3VzXC1jYWxsaWdyYXBoZXI7Civnmb3ntKDosp4gPCBcKG5hbWVcLW9mXC1hXC1wZXJzb25cKVwtYmFpXC1zdXpoZW5cLFwtZnJvbVwtbWFkYW1cLXdoaXRlXC1zbmFrZTsKK+eggCA8IGJyaWxsaWFudGx5XC1jb2xvcmVkXC1zdG9uZVwtd2l0aFwtdmVpbmVkXC1wYXR0ZXJuc1wtaW5cLWl0Owor5b2I55C0IDwgdG9cLXBsYXlcLW9yXC1zdHJ1bVwtYVwtbHV0ZVwtb3JcLW90aGVyXC1zdHJpbmdlZFwtaW5zdHJ1bWVudDsKK+eZvemZtiA8IHdoaXRlXC1wb3R0ZXJ5XC1cKG9mXC1zaGFuZ1wtZHluYXN0cnlcLTE2XC0xMXRoXC1jZW50dXJ5XC1iY1wpOwor5YyF5bmyIDwgYmVcLXJlc3BvbnNpYmxlXC1mb3JcLWFcLXRhc2tcLXVuaXRcLXVudGlsXC1pdFwtaXNcLWNvbXBsZXRlZDsKK+Wkp+adkOWwj+eUqCA8IHVzaW5nXC1hXC10YWxlbnRlZFwtcGVyc29uXC1pblwtYW5cLWluc2lnbmlmaWNhbnRcLXBvc2l0aW9uOwor55CzXC7miLTntq3mlq8gPCBseW5uXC1kYXZpc1wtXCh1c1wtc3RhdGVcLWRlcGFydG1lbnRcLWFybXNcLWNvbnRyb2xcLWV4cGVydFwpOwor5bmz5pa5IDwgc3F1YXJlXC1cKGFzXC1pblwtc3F1YXJlXC1mb290XCxcLXNxdWFyZVwtbWlsZVwsXC1zcXVhcmVcLXJvb3RcKTsKK+iZkiA8IGFuXC1hbXBoaWJpb3VzXC1iZWFzdFwtcmVzZW1ibGluZ1wtYVwtdGlnZXJcLXdpdGhcLW9uZVwtaG9ybjsKK+etgSA8IGFcLWJhbWJvb1wtZnJhbWVcLW9uXC13aGljaFwtc2lsa3dvcm1zXC1zcGluXC10aGVpclwtY29jb29uczsKK+S6uuawkeiLsembhOe0gOW/teeikSA8IG1vbnVtZW50XC10b1wtdGhlXC1wZW9wbGUnJ3NcLWhlcm9lc1wsXC1hdFwtdGlhbmFubWVuXC1zcXVhcmU7CivlhosgPCBhXC1kZXNlcnRcLWFcLWJvcmRlclwtcHJhaXJpZVwtdGhlXC0xc3RcLWZvcm1cLWlzXC1yYWRpY2FsXC0xMzsKK+S0tyA8IHVzZVwtdGhlXC13aG9sZVwtcGllY2VcLW9mXC1iYXJsZXlcLXRvXC1mZXJtZW50XC1mb3JcLWJyZXdpbmc7CivkrZ4gPCBhXC1raW5kXC1vZlwtc2FjcmlmaWNlc1wtb2ZmZXJlZFwtdG9cLWdvZHNcLW9yXC10aGVcLWRlY2Vhc2VkOwor5KegIDwgbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtd2hhdFwtaXNcLXRvZGF5JydzXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivkkakgPCBhXC1raW5kXC1vZlwtaW5sYW5kXC1yaXZlcnNcLXdhcnNoaXBcLXVzZWRcLWluXC1xaW5nXC1keW5hc3R5Owor5I24IDwgYVwtbGVnZW5kYXJ5XC1nb2F0XC1saWtlXC1hbmltYWxcLXdpdGhcLTRcLWVhcnNcLWFuZFwtOVwtdGFpbHM7Civkg6sgPCBhXC1zaWxpY2F0ZVwtc3Vic3RhbmNlXC1mcm9tXC10aGVcLXNhbHRcLXdlbGxzXC1pblwtc3plY2h3YW47CivjuJwgPCB0b1wtZ2V0XC10aHJvdWdoXC10aGVcLXNwYWNlXC1lbmNsb3NlZFwtYnlcLWFcLWNvbnN0ZWxsYXRpb247Civjt60gPCBhXC1jb25pY2FsXC1icmlja1wtc3RydWN0dXJlXC1pblwtd2hpY2hcLXRvXC1saWdodFwtYVwtYmVhY29uOwor5LiN6IGe5LiN5ZWPIDwgbm90XC1ib3RoZXJcLXRvXC1hc2tcLXF1ZXN0aW9uc1wtb3JcLWxpc3RlblwtdG9cLXdoYXQnJ3NcLXNhaWQ7CivkuKbooYzkuI3mgpYgPCBib3RoXC1jYW5cLWJlXC1pbXBsZW1lbnRlZFwtd2l0aG91dFwtY29taW5nXC1pbnRvXC1jb25mbGljdDsKK+atpeatpeeCuueHnyA8IGFkdmFuY2VcLWdyYWR1YWxseVwtYW5kXC1lbnRyZW5jaFwtb25lc2VsZlwtYXRcLWV2ZXJ5XC1zdGVwOwor55S+IDwgZ3JvdW5kXC10aGF0XC1oYXNcLWJlZW5cLXVuZGVyXC1jdWx0aXZhdGlvblwtZm9yXC1vbmVcLXllYXI7CivkuIDmnJvnhKHpmpsgPCBhc1wtZmFyXC1hc1wtdGhlXC1leWVcLWNhblwtc2VlXC1cKGxpdFw6XC1sb29rXC1hZmFyXC1ub1wtYm91bmRcKTsKK+S4jeimi+e2k+WCsyA8IG5vdFwtdG9cLWJlXC1mb3VuZFwtaW5cLXRoZVwtY2xhc3NpY3NcLVwtXC1ub3RcLWF1dGhvcml0YXRpdmU7CivmkqXpm7Lopovml6UgPCBkaXNwZWxcLXRoZVwtY2xvdWRzXC1hbmRcLXNlZVwtdGhlXC1zdW5cLVwtXC1yZXN0b3JlXC1qdXN0aWNlOwor5q+U5LiK5LiN6Laz5q+U5LiL5pyJ5L2ZIDwgZmFsbFwtc2hvcnRcLW9mXC10aGVcLWJlc3RcLWJ1dFwtYmVcLWJldHRlclwtdGhhblwtdGhlXC13b3JzdDsKK+eZveWGsOWGsCA8IHBhaVwtcGluZ1wtcGluZ1wtXCh3ZWxsXC1rbm93blwtdGFpd2FuXC1wZXJmb3JtaW5nXC1hcnRpc3RcKTsKK+aLieiynSA8IFwoam9oblwpXC1yYWJlXC1cKGdlcm1hblwtZXlld2l0bmVzc1wtdG9cLW5hbmppbmdcLW1hc3NhY3JlXCk7Civlt6vlsbEgPCBtdFwuXC13dVwsXC1vblwtdGhlXC1jaGFuZ2ppYW5nXC1yaXZlclwtYnlcLXRoZVwtdGhyZWVcLWdvcmdlczsKK+emoSA8IGFcLXNhY3JpZmljZVwtYXRcLXRoZVwtYmVnaW5uaW5nXC1vZlwtYVwtbWlsaXRhcnlcLWNhbXBhaWduOwor56SuIDwgYW5jaWVudFwtYmFsbGlzdGFcLWZvclwtdGhyb3dpbmdcLWhlYXZ5XC1zdG9uZXNcLWFcLWNhbm5vbjsKK+aNleS/mCA8IGNhcHR1cmVcLWVuZW15XC1wZXJzb25uZWxcLVwoZm9yXC1pbnRlbGxpZ2VuY2VcLXB1cnBvc2VzXCk7CivkvK/mganmlq8gPCBcKG5pY2hvbGFzXClcLWJ1cm5zXC1cKHVzXC1zdGF0ZVwtZGVwYXJ0bWVudFwtc3Bva2VzcGVyc29uXCk7Civkr6AgPCB0aGVcLWZpdmVcLWxvd2VzdFwtcGllY2VzXC1vZlwtYm9uZVwtb2ZcLXRoZVwtc3BpbmFsXC1jb2x1bW47CivkrKYgPCBmb29kXC1pdGVtc1wtbWVyZWx5XC1hcnJhbmdlZFwtZm9yXC1kaXNwbGF5XC1wdXJwb3NlXC1vbmx5Owor5JmRIDwgYVwtcGllY2VcLW9mXC1zYWNrY2xvdGhcLXdvcm5cLW9uXC10aGVcLWJyZWFzdFwtaW5cLW1vdXJuaW5nOwor6Y+i5a6iIDwgYXJtZWRcLWVzY29ydFwtXChvZlwtdHJhdmVsbGVyc1wtb3JcLW1lcmNoYW50cycnXC1jYXJhdmFuc1wpOwor5IixIDwgYW5cLW9wZW5cLWJhbWJvb1wtYmFza2V0XC11c2VkXC10b1wtZmVlZFwtZG9tZXN0aWNcLWFuaW1hbHM7CivjqrUgPCBoYWxmXC1vZlwtYVwtdW5pdFwtb2ZcLW1lYXN1cmVtZW50XC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7CivjoYggPCB0aGVcLXJvcGVzXC1hdHRhY2hlZFwtdG9cLXRoZVwtYmllclwtYW5kXC1oZWxkXC1ieVwtbW91cm5lcnM7CivjmqQgPCBhXC1sYWR5XC1vZmZpY2VyXC1vZlwtdGhlXC1tb25hcmNoJydzXC1wYWxhY2VcLWluXC1vbGRcLXRpbWVzOwor5a6J5q2l55W26LuKIDwgd2Fsa1wtb3ZlclwtbGVpc3VyZWx5XC1pbnN0ZWFkXC1vZlwtcmlkaW5nXC1pblwtYVwtY2FycmlhZ2U7Civosp3mr40gPCB0aGVcLWJ1bGJcLW9mXC10aGVcLWZyaXRpbGxhcnlcLVwoZnJpdGlsbGFyaWFcLXRodW5iZXJnaWlcKTsKK+WQjeWLnSA8IGFcLXBsYWNlXC1mYW1vdXNcLWZvclwtaXRzXC1zY2VuZXJ5XC1vclwtaGlzdG9yaWNhbFwtcmVsaWNzOwor5rCR5qiCIDwgbXVzaWNcLFwtZXNwXC5cLWZvbGtcLW11c2ljXCxcLWZvclwtdHJhZGl0aW9uYWxcLWluc3RydW1lbnRzOwor5ZGAIDwgcGFydGljbGVcLXVzZWRcLXRvXC1leHByZXNzXC1zdXJwcmlzZVwtb3JcLW1pbGRcLWVtcGhhc2lzOwor6Zmd6KW/IDwgc2hhYW54aVwtcHJvdmluY2VcLFwtY2hpbmFcLVwoY2FwaXRvbFwtY2l0eVwtaXNcLXhpJydhblwt6KW/5a6JXCk7Civml6XmlrkgPCB0aGVcLWphcGFuZXNlXC1zaWRlXC1vclwtcGFydHlcLVwoaW5cLW5lZ290aWF0aW9uc1wsXC1ldGNcLlwpOwor5LiN5Yud5p6a6IiJIDwgdG9vXC1udW1lcm91c1wtdG9cLW1lbnRpb25cLWluZGl2aWR1YWxseVwtb3JcLW9uZVwtYnlcLW9uZTsKK+mdtyA8IHRoZVwtbGVhdGhlclwtYmVsdFwtdGhhdFwtY29ubmVjdHNcLWFcLWhvcnNlXC13aXRoXC1hXC1jYXJ0Owor6K28IDwgdG9cLXN1cGVydmlzZVwtdG9cLWNvbmZpbmVcLWFcLWdvdmVybm1lbnRcLWVzdGFibGlzaG1lbnQ7CivmqavmipggPCBcKGhvcml6b250YWxcLXN0YXJ0aW5nXC1yaWdodFwtYW5nbGVcLWNoYXJhY3Rlclwtc3Ryb2tlXCk7Civopb/lrokgPCB4aScnYW5cLVwoY2l0eVwpXCxcLXRoZVwtY2FwaXRvbFwtY2l0eVwtb2ZcLXNoYWFueGlcLXByb3ZpbmNlOwor5bCP6Z2SIDwgbmFtZVwtb2ZcLWFcLXBlcnNvblwsXC14aWFvcWluZ1wsXC1mcm9tXC1tYWRhbVwtd2hpdGVcLXNuYWtlOwor6Ieo5pG5IDwgdG9cLWNvcHlcLVwoYVwtbW9kZWxcLW9mXC1jYWxsaWdyYXBoeVwtb3JcLXBhaW50aW5nXCxcLWV0Y1wuXCk7CivlnasgPCBhXC1zdGFuZFwtb25cLXdoaWNoXC10b1wtcmVwbGFjZVwtZ29ibGV0c1wtYWZ0ZXJcLWRyaW5raW5nOwor5YKZ5Y+WIDwgYmVcLW9uXC10aGVcLXdhaXRpbmdcLWxpc3RcLVwoZm9yXC1hZG1pc3Npb25cLXRvXC1hXC1zY2hvb2xcKTsKK+S0vSA8IGFcLXNtYWxsXC1yb3VuZFwtcGllY2VcLW9mXC1kaXN0aWxsZXInJ3NcLWdyYWluc1wtb3JcLXllYXN0Owor5LCOIDwgdG9cLXR3aXN0XC10aGVcLWhhaXJcLWluXC1hXC1rbm90XC1vblwtdGhlXC10b3BcLW9mXC10aGVcLWhlYWQ7Civkqp0gPCBsZWF0aGVyXC1jb3JkXC10aGF0XC13aW5kaW5nXC1vblwtdGhlXC1oYW5kbGVcLW9mXC1hXC1rbmlmZTsKK+izk+iHs+WmguatuCA8IGd1ZXN0c1wtZmVlbFwtYXRcLWhvbWVcLVwoaW5cLWFcLWhvdGVsXCxcLWd1ZXN0aG91c2VcLFwtZXRjXC5cKTsKK+ShhyA8IHRoZVwtY3Jvc3NcLWJhclwtYXRcLXRoZVwtZW5kXC1vZlwtdGhlXC1wb2xlXC1vZlwtYVwtY2FycmlhZ2U7CivknoAgPCB0b1wtZGVzaXJlXC1mb3JcLW1vcmVcLW1vbmV5XC10aGFuXC1vbmUnJ3NcLXJpZ2h0ZnVsXC1zaGFyZTsKK+SYrSA8IHRoZVwtcGxlYXRlc1wtb25cLXRoZVwtbGFwZWxcLW9mXC1hXC1nYXJtZW50XC1vZlwtdGhpblwtc2lsazsKK+SQiCA8IGFcLXBpZWNlXC1vZlwtb25lXC1mb290XC10d29cLWluY2hlc1wtZHJpZWRcLXNlYXNvbmVkXC1tZWF0Owor5I2FIDwgY29udGFpbmVyc1wtZm9yXC13YXRlclwtb3JcLXdpbmVcLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+SLviA8IGNvdHRvblwtYW5kXC1zaWxrXC10b1wtYmVcLWxhaWRcLWFuZFwtYXR0YWNoZWRcLWVhY2hcLW90aGVyOwor5ImQIDwgYVwtdGhpblwtYW5kXC1sb25nXC1zdHJpcFwtb2ZcLWJhbWJvb1wtZm9yXC1tYWtpbmdcLWJhc2tldHM7CivkiLsgPCBhXC1oZWF2eVwtbWF0c1wtb2ZcLWJhbWJvb1wtdXNlZFwtZm9yXC1kZWVwXC13YXRlclwtZmlzaGluZzsKK+SHoCA8IHdyZW5jaFwtdG9cLWFkanVzdFwtdGhlXC1zdHJpbmdcLW9uXC1zdHJpbmdlZFwtaW5zdHJ1bWVudDsKK+SEjCA8IHRvXC1wZXJmb3JtXC1yaXRpZXNcLWluXC1ob25vclwtb2ZcLXRoZVwtYW5jZXN0cmFsXC10ZW1wbGU7Civkg6YgPCBhXC1mbGF0XC1hbmRcLWdyZWF0XC1yb2NrXC1wZW9wbGVcLXNxdWF0XC1vclwtY3JvdWNoXC1vblwtaXQ7Civju4AgPCBmaW5lXC1zdG9uZVwtd2hpY2hcLWlzXC1saXR0bGVcLWxlc3NcLXZhbHVhYmxlXC10aGFuXC1qYWRlOwor47KsIDwgaGFpclwtZGVjb3JhdGlvbnNcLW9uXC1hXC1oZWxtZXRcLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+OxryA8IGdldFwtdGhlXC11bmJvcm5cLWJhYnlcLWdvYXRcLWJ5XC1raWxsbmdcLXRoZVwtbW90aGVyXC1nb2F0Owor466wIDwgdGhlXC1zbWFsbFwtYmVhbVwtc3VwcG9ydGluZ1wtdGhlXC1yYWZ0ZXJzXC1hdFwtdGhlXC1lYXZlczsKK+OqtiA8IGFcLWRyeVwtbWVhc3VyZVwtMTBcLW9yXC01XC10aW1lc1wtdGhhdFwtb2ZcLWFcLWNoaW5lc2VcLXBlY2s7CivlsLzotavpra8gPCBcKGphd2FoYXJsYWxcKVwtbmVocnVcLVwoZmlyc3RcLXByaW1lXC1taW5pc3Rlclwtb2ZcLWluZGlhXCk7Civjn5cgPCBuYW1lXC1vZlwtYVwtc21hbGxcLXByaW5jaXBhbGl0eVwtaW5cLXdoYXRcLWlzXC1ub3dcLXNoYW54aTsKK+aSpea1qum8kyA8IGFcLWRydW1cLXNoYXBlZFwtcmF0dGxlXC1cKHVzZWRcLWJ5XC1wZWRsYXJzXC1vclwtYXNcLWFcLXRveVwpOwor5bCW6Zaj5YiX5bO2IDwgc2Vua2FrdVwtaXNsYW5kc1wtXChqYXBhbmVzZVwtbmFtZVwtZm9yXC1kaWFveXVcLWlzbGFuZHNcKTsKK+acrOacqyA8IHRoZVwtd2hvbGVcLWNvdXJzZVwtb2ZcLWFuXC1ldmVudFwtZnJvbVwtYmVnaW5uaW5nXC10b1wtZW5kOwor6aCT5oyrIDwgd2l0aFwtc3luY29wYXRlZFwtY2FkZW5jZVwtXChicnVzaFwtc3Ryb2tlXC1pblwtcGFpbnRpbmdcKTsKK+e2reWQvueIvuaXjyA8IHRoZVwtdXlndXJcLVwodWlnaHVyXClcLW5hdGlvbmFsaXR5XCxcLWxpdmluZ1wtaW5cLXhpbmppYW5nOwor54mI55WrIDwgYVwtcGljdHVyZVwtcHJpbnRlZFwtZnJvbVwtYW5cLWVuZ3JhdmVkXC1vclwtZXRjaGVkXC1wbGF0ZTsKK+mBv+irsSA8IHRhYm9vXC1hZ2FpbnN0XC11c2luZ1wtdGhlXC1wZXJzb25hbFwtbmFtZXNcLW9mXC1lbXBlcm9yczsKK+aMieS4i+iRq+iYhua1rui1t+eToiA8IHNvbHZlXC1vbmVcLXByb2JsZW1cLW9ubHlcLXRvXC1maW5kXC1hbm90aGVyXC1jcm9wcGluZ1wtdXA7CivkvL0gPCB0cmFuc2NyaXB0aW9uXC1vZlwtc2Fuc2tyaXRcLScnZ2hhJydcLWluXC1idWRkaGlzdFwtdGV4dHM7CivlsaMgPCBzdHJhd1wtc2FuZGFsc1wtb3JcLXNsaXBwZXJzXC10aGF0XC1oYXZlXC1ub1wtaGVlbFwtYmFja3M7CivljJflpKfojZIgPCB0aGVcLWdyZWF0XC1ub3J0aGVyblwtd2lsZGVybmVzc1wtXChpblwtbm9ydGhlcm5cLWNoaW5hXCk7Civmrabmnb4gPCB3dXNvbmdcLFwtbmFtZVwtb2ZcLWFcLXBlcnNvblwsXC1hXC1oZXJvXC1pblwtc2h1aVwtaHVcLXpodWFuOwor5Y2B5LqU5aSnIDwgMVwtNXRoXC1wYXJ0eVwtY29uZ3Jlc3NcLVwob2ZcLWNoaW5lc2VcLWNvbW11bmlzdFwtcGFydHlcKTsKK+adjuWFieiAgCA8IGxlZVwta3VhblwteWV3XC1cKGZvcm1lclwtcHJpbWVcLW1pbmlzdGVyXC1vZlwtc2luZ2Fwb3JlXCk7CivoqLHku5kgPCBuYW1lXC1vZlwtYVwtcGVyc29uXCxcLXh1XC14aWFuXCxcLWZyb21cLW1hZGFtXC13aGl0ZVwtc25ha2U7CivlhJDnm7ggPCBhdHRlbmRhbnRcLW9mXC10aGVcLWJyaWRlXC1vclwtYnJpZGVncm9vbVwtYXRcLWFcLXdlZGRpbmc7Civoo5zngIkgPCByZWluZm9yY2luZ1wtYW5kXC1yZWR1Y2luZ1wtbWV0aG9kc1wtXChpblwtYWN1cHVuY3R1cmVcKTsKK+WNl+iPr+aXqeWgsSA8IHNvdXRoXC1jaGluYVwtbW9ybmluZ1wtcG9zdFwtXChuZXdzcGFwZXJcLWluXC1ob25nXC1rb25nXCk7CivlubnkuosgPCBhZG1pbmlzdHJhdGl2ZVwtc2VjcmV0YXJ5XC1cKGluXC1jaGFyZ2VcLW9mXC1zb21ldGhpbmdcKTsKK+eXheWFpeiGj+iCkyA8IHRoZVwtZGlzZWFzZVwtaGFzXC1hdHRhY2tlZFwtdGhlXC12aXRhbHNcLVwtXC1iZXlvbmRcLWN1cmU7Civlt6vls70gPCB3dXhpYVwtZ29yZ2VcLFwtaW5cLXRoZVwtY2hhbmdqaWFuZ1wtcml2ZXJcLXRocmVlXC1nb3JnZXM7CivmvI4gPCBhXC1wbGFjZVwtd2hlcmVcLXNtYWxsXC1zdHJlYW1zXC1mbG93XC1pbnRvXC1hXC1sYXJnZVwtb25lOwor5oqY562GIDwgYWdhaW5zdFwtdGhlXC1icmlzdGxlc1wtXChicnVzaFwtbW92ZW1lbnRcLWluXC1wYWludGluZ1wpOwor5qq+IDwgZ3Jhc3N5XC1wbGFudFwtd2l0aFwtZmlicmVzXC1mcm9tXC13aGljaFwtY2xvdGhcLWlzXC1tYWRlOwor5bCI57eaIDwgc3BlY2lhbFwtcHVycG9zZVwtcGhvbmVcLWxpbmVcLW9yXC1jb21tdW5pY2F0aW9uc1wtbGluazsKK+WcluWFiyA8IFwoZ2FyeVwtbFwuXClcLXRvb2tlclwtXChtb3Rvcm9sYVwtY2hhaXJtYW5cLW9mXC10aGVcLWJvYXJkXCk7CivksIwgPCB0b1wtYmluZFwtdGhlXC1oYWlyXC1pblwtYVwta25vdFwtb25cLXRoZVwtdG9wXC1vZlwtdGhlXC1oZWFkOwor5Km1IDwgdGFubmVyXC13aG9cLW1hZGVcLXRoZVwtbGVhdGhlclwtZHJ1bVwtaW5cLWFuY2llbnRcLXRpbWVzOwor5Lq65rCR6KGM5YuV6buoIDwgcGVvcGxlJydzXC1hY3Rpb25cLXBhcnR5XC1cKHJ1bGluZ1wtcGFydHlcLWluXC1zaW5nYXBvcmVcKTsKK+SamSA8IGFcLXNwb29uXC1mb3JcLWNvb2tlZFwtcmljZVwtbWFkZVwtb2ZcLWhvcm5cLW9mXC1hblwtYW5pbWFsOwor5IyzIDwgYVwta2luZFwtb2ZcLXVucmVmaW5lZFwtb3JcLXVucG9saXNoZWRcLXNpbGtlblwtdGV4dGlsZXM7CivkirogPCBhblwtaW1wbGVtZW50XC10b1wtZHJhd1wtb3JcLXRvXC1jb2xsZWN0XC1yb3Blc1wtb3JcLWNvcmRzOwor5ImDIDwgc2xpcGVkXC1vcGVuXC1iYW1ib29cLXdpdGhcLXRoZVwtam9pbnRzXC11c2VkXC1hc1wtYW5cLW9hcjsKK+SJgCA8IHJlY3Rhbmd1bGFyXC1jaGVzdFwtb3JcLWJveFwtd292ZW5cLWZyb21cLWJhbWJvb1wtc3RyaXBzOwor5ISLIDwgdG9cLXByYXlcLWZvclwtcHJldmVudGluZ1wtb3JcLWZvcmVzdGFsbGluZ1wtY2FsYW1pdGllczsKK+SDriA8IGFcLXN0b25lXC1idWlsZFwtaHlkcmF1bGljXC1tZWFzdXJlc1wtaW5cLWFuY2llbnRcLXRpbWVzOwor476/IDwgcm9hclwtb2ZcLWFzdGhtYVwtb3JcLWV4cGVjdG9yYXRlXC1mcm9tXC1hXC1keWluZ1wtcGVyc29uOwor47uoIDwgaW5lXC1zdG9uZVwtd2hpY2hcLWlzXC1saXR0bGVcLWxlc3NcLXZhbHVhYmxlXC10aGFuXC1qYWRlOwor47qQIDwgZ2VuZXJhbGx5XC1jYWxsZWRcLWZvclwtbWlub3JpdHlcLWdyb3Vwc1wtaW5cLW9sZFwtY2hpbmE7Civjr4IgPCBwaWxsYXJcLW9yXC1wb3N0XC1vZlwtYVwtZnJhbWVcLW9uXC13aGljaFwtc2lsa3dvcm1zXC1zcGluOwor45+LIDwgZGVlcFwtYW5kXC1sZXZlbFwtZ3JvdW5kXC1ndWxseVwtYXRcLXRoZVwtZm9vdFwtb2ZcLWFcLWhpbGw7CivjnqogPCB0aGVcLWFwcGVhcmFuY2VcLW9mXC10aGVcLW1vdW50YWluXC1pc1wtZmxhdFwtYW5kXC1zbW9vdGg7CivmlpzpiaQgPCBcKGRvd253YXJkc1wtcmlnaHRcLWNvbmNhdmVcLWhvb2tlZFwtY2hhcmFjdGVyXC1zdHJva2VcKTsKK+ixjuaKmCA8IFwoZG93bndhcmRzXC1zdGFydGluZ1wtcmlnaHRcLWFuZ2xlXC1jaGFyYWN0ZXJcLXN0cm9rZVwpOwor6ICB5YWEIDwgJydvbGRcLWNoYXAnJ1wtXChmb3JtXC1vZlwtYWRkcmVzc1wtYmV0d2VlblwtbWFsZVwtZnJpZW5kc1wpOwor57SE57+w5ouJ6LKdIDwgam9oblwtcmFiZVwtXChnZXJtYW5cLWV5ZXdpdG5lc3NcLXRvXC1uYW5qaW5nXC1tYXNzYWNyZVwpOwor6KGFIDwgY29uc2VjcmF0ZVwtc2FjcmlmaWNpYWxcLXZlc3NlbHNcLWJ5XC1zbWVhcmluZ1wtYmxvb2Q7CivomaIgPCBuYW1lXC1vZlwtYW5jaWVudFwtZmV1ZGFsXC1zdGF0ZVwtaW5cLXNoZW54aVwtYW5kXC1odW5hbjsKK+i3keaxn+a5liA8IHRvXC1tYWtlXC1hXC1saXZpbmdcLWFzXC1hXC10cmF2ZWxsaW5nXC1wZXJmb3JtZXJcLFwtZXRjXC47CivkuqTmmJPpoY0gPCBzdW1cLW9yXC12b2x1bWVcLW9yXC1hbW91bnRcLW9mXC1idXNpbmVzc1wtdHJhbnNhY3Rpb25zOwor6b2JIDwgc3RvcHBhZ2VcLW9mXC10aGVcLW5vc2VcLXRvXC1zcGVha1wtd2l0aFwtYVwtbmFzYWxcLXR3YW5nOwor5qmr562GIDwgYnJpc3RsZXNcLWx5aW5nXC1kb3duXC1cKGJydXNoXC1tb3ZlbWVudFwtaW5cLXBhaW50aW5nXCk7CivkuI3mlaLotorpm7fmsaDkuIDmraUgPCBkYXJlXC1ub3RcLWdvXC1vbmVcLXN0ZXBcLWJleW9uZFwtdGhlXC1wcmVzY3JpYmVkXC1saW1pdDsKK+aOoeizvCA8IG1ha2VcLXB1cmNoYXNlc1wtZm9yXC1hblwtb3JnYW5pemF0aW9uXC1vclwtZW50ZXJwcmlzZTsKK+ato+WcqCA8IGluXC10aGVcLXByb2Nlc3NcLW9mXC1cKGRvaW5nXC1zb21ldGhpbmdcLW9yXC1oYXBwZW5pbmdcKTsKK+ikryA8IGNoaWxkcmVuJydzXC1nYXJtZW50c1wuXC1hXC1tYXRcLWZvclwtd3JhcHBpbmdcLWdhcm1lbnRzOwor5p6X6LGQ5q2jIDwgbGluXC1mZW5nXC1jaGVuZ1wtXCh0YWl3YW5cLW1pbmlzdGVyXC1vZlwtdGhlXC1pbnRlcmlvclwpOwor5aCx5ZyLIDwgZGVkaWNhdGVcLW9uZXNlbGZcLXRvXC10aGVcLXNlcnZpY2VcLW9mXC1vbmUnJ3NcLWNvdW50cnk7CivokaPlu7roj68gPCB0dW5nXC1jaGVlXC1od2FcLVwoaG9uZ1wta29uZ1wtbGVhZGVyXC1hZnRlclwtanVseVwtMTk5N1wpOwor562G6Ke4IDwgYnJ1c2hcLXN0cm9rZVwtaW5cLWNoaW5lc2VcLXBhaW50aW5nXC1hbmRcLWNhbGxpZ3JhcGh5Owor5LiN56C05LiN56uLIDwgd2l0aG91dFwtZGVzdHJ1Y3Rpb25cLXRoZXJlXC1jYW5cLWJlXC1ub1wtY29uc3RydWN0aW9uOwor5Y2X5Lqs6LevIDwgbmFuamluZ1wtc3RcLlwsXC1sYXJnZVwtY29tbWVyY2lhbFwtc3RyZWV0XC1pblwtc2hhbmdoYWk7CivmoqAgPCBhXC1zbWFsbFwtYmVhbVwtc3VwcG9ydGluZ1wtdGhlXC1yYWZ0ZXJzXC1hdFwtdGhlXC1lYXZlczsKK+aRoyA8IGFcLWhhbmRmdWxcLlwtdG9cLXBpY2tcLXVwXC13aXRoXC10aGVcLWZpbmdlcnNcLlwtdG9cLXNlaXplOwor5aCYIDwgYVwtcmFpc2VkXC1wYXRoXC1iZXR3ZWVuXC1maWVsZFwtd2hpY2hcLWFjdHNcLWFzXC1hXC1keWtlOwor5LacIDwgdGhlXC1wcm9jZXNzXC10b1wtd2hpdGVuXC10aGVcLWl2b3J5XC1vclwtZWxlcGhhbnRcLXR1c2s7CivkrokgPCBob3JzZXNcLWtlcHRcLWF0XC1hXC1jb3VyaWVyXC1zdGF0aW9uXC1pblwtZm9ybWVyXC10aW1lczsKK+SitSA8IG5hbWVcLW9mXC1hblwtb2xkXC1jb3VudHJ5XC1pblwtdG9kYXknJ3NcLWh1YmVpXC1wcm92aW5jZTsKK+ShnyA8IGFcLXJpbmdcLW9mXC10aGVcLWhvcml6b250YWxcLWZyb250XC1iYXJcLW9uXC1hXC1jYXJyaWFnZTsKK+SemyA8IGRhbmNpbmdcLW9mXC1hXC1lYXN0ZXJuXC1taW5vcml0eVwtZ3JvdXBcLWluXC1vbGRcLWNoaW5hOwor5J2MIDwgYVwtcGlnXC1zZWVrXC1mb3JcLWZvb2RcLXRocm91Z2hcLWRpZ2dpbmdcLW9uXC10aGVcLWVhcnRoOwor5JKBIDwgYVwtc21hbGxcLWJvYXRcLWNvbm5lY3RlZFwtdG9cLXRoZVwtYmFja1wtb2ZcLWFcLWJpZ1wtYm9hdDsKK+SJiyA8IGFcLXZhcmlldHlcLW9mXC1iYW1ib29cLXNob290c1wtdGhhdFwtc3Byb3V0XC1pblwtd2ludGVyOwor5IiUIDwgd2hpc3RsZVwtbWFkZVwtb2ZcLXJlZWRcLXdpdGhvdXRcLWhvbGVzXC1mb3JcLWZpbmdlcmluZzsKK+O9mSA8IG9mZmljaWFsXC1pblwtY2hhcmdlXC1vZlwtZmFybWxhbmRzXC1pblwtYW5jaWVudFwtdGltZXM7Civjs44gPCBndWlkZVwtb3JcLWxlYWRcLXRvXC1tYWtlXC10aGVcLXdhdGVyXC1mbG93aW5nXC1zbW9vdGhseTsKK+OyqiA8IHdvb2xlblwtYmxhbmtldFwtd2l0aFwtZGVjb3JhdGl2ZVwtZGVzaWduXC1vclwtcGF0dGVybjsKK+OyqCA8IGFcLWRlY29yYXRpdmVcLWZpbmVcLWJsYW5rZXRcLW9uXC10aGVcLXRvcFwtb2ZcLWFcLXNhZGRsZTsKK+OniyA8IHRvXC1sZW5ndGhlblwtYW5kXC1leHRlbnVhdGVcLVwtXC1cLWFzXC1pblwtbWFraW5nXC1ub29kbGU7CivjoJwgPCB5b3VuZ1wta2lkc1wtc21hcnRcLWFuZFwtZmFtaWxpYXJcLXdpdGhcLWh1bWFuXC1hZmZhaXJzOwor5L6/5Lq6IDwgc29tZWJvZHlcLXdob1wtaGFwcGVuc1wtdG9cLWJlXC1vblwtaGFuZFwtZm9yXC1hblwtZXJyYW5kOwor45mxIDwgZWFydGhlbndhcmVcLXVzZWRcLXRvXC1iYWtlXC1jYWtlc1wtaW5cLW5vcnRoZXJuXC1jaGluYTsKK+isnei+myA8IGNoZWFcLXNpbVwtXChjYW1ib2RpYW5cLW5hdGlvbmFsXC1hc3NlbWJseVwtcHJlc2lkZW50XCk7CivlpJbpm7sgPCByZXBvcnRzXC1mcm9tXC1mb3JlaWduXC1cKG5vblwtY2hpbmVzZVwpXC1uZXdzXC1hZ2FuY2llczsKK+WWgSA8IHRoZVwtbW91dGhcLW9mXC1hXC1maXNoXC1hdFwtdGhlXC1zdXJmYWNlXC1vZlwtdGhlXC13YXRlcjsKK+aPjiA8IHRvXC1wdWxsXC11cFwtdGhlXC1zbGVldmVzXC1hbmRcLXN0cmV0Y2hcLW91dFwtdGhlXC1hcm1zOwor566sIDwgdGhlXC1jdXRpY2xlXC1vZlwtdGhlXC1iYW1ib29cLWFcLWJyb2FkXC1sZWF2ZWRcLWJhbWJvbzsKK+e9t+S6hiA8IGFcLW1vZGFsXC1wYXJ0aWNsZVwtaW5kaWNhdGluZ1wtXChkb24nJ3RcLW1pbmRcLWl0XCxcLW9rXCk7CivpnZzlsbEgPCBjaGVuZ1wtc2FuXC1cKGVsZWN0b3JhbFwtY29uc3RpdHVlbmN5XC1pblwtc2luZ2Fwb3JlXCk7Civlhavku5nmoYwgPCBvbGRcLWZhc2hpb25lZFwtc3F1YXJlXC10YWJsZVwtdG9cLXNlYXRcLWVpZ2h0XC1wZW9wbGU7CivljIXnlKLliLDmiLYgPCBmaXhpbmdcLW9mXC1mYXJtXC1vdXRwdXRcLXF1b3Rhc1wtZm9yXC1lYWNoXC1ob3VzZWhvbGQ7Civou74gPCBob3Jpem9udGFsXC13b29kZW5cLWJhclwtaW5cLWZyb250XC1vZlwtYVwtc2VkYW5cLWNoYWlyOwor5oqT6aOvIDwgYVwta2luZFwtb2ZcLWZvb2RcLXBvcHVsYXJcLWFtb25nXC1iZWxpZXZlcnNcLWluXC1pc2xhbTsKK+iQhiA8IHRoZVwtY2FzdG9yXC1vaWxcLXBsYW50XC1hbHNvXC11c2VkXC1mb3JcLW90aGVyXC1wbGFudHM7CivloZ7mi4nlh6EgPCBcKHNvbm55XClcLXNlcmFwaGluXC1cKGhhaXRpYW5cLWFtYmFzc2Fkb3JcLXRvXC10YWl3YW5cKTsKK+mHkeWkp+S4rSA8IGtpbVwtZGFlXC1qdW5nXC1cKG5ld2x5XC1lbGVjdGVkXC1wcmVzaWRlbnRcLW9mXC1rb3JlYVwpOwor55m95o+PIDwgbGluZVwtZHJhd2luZ1wtaW5cLXRyYWRpdGlvbmFsXC1pbmtcLWFuZFwtYnJ1c2hcLXN0eWxlOwor57CgIDwgYW5cLWFuY2llbnRcLXZlc3NlbFwtdXNlZFwtZm9yXC1ob2xkaW5nXC1ib2lsZWRcLWdyYWluOwor6IyD5pav5Z2mIDwgXChkaWFubmVcKVwtZmVpbnN0ZWluXC1cKHVzXC1zZW5hdG9yXC1mcm9tXC1jYWxpZm9ybmlhXCk7Civpp7Hpp53npaXlrZAgPCBuYW1lXC1vZlwtYVwtbm92ZWxcLFwtbHVvXC10dW9cLXhpYW5nemlcLFwtYnlcLWxhb1wtc2hlXC3ogIHoiI07CivksrAgPCBhXC1zZWNvbmRcLW5hbWVcLWZvclwtdGhlXC1waWdlb25cLW9yXC10aGVcLXR1cnRsZVwtZG92ZTsKK+iAtuepjOWfuuedo+acq+S4luiBluW+kuaVmeacgyA8IHRoZVwtY2h1cmNoXC1vZlwtamVzdXNcLWNocmlzdFwtb2ZcLWxhdHRlclwtZGF5XC1zYWludHM7CivknaUgPCB0b1wtcm9hclwtb3JcLWhvd2xcLWZyYW50aWNcLWJhcmtzXC1vZlwtZG9nc1wtb3JcLXdvbHZlczsKK+SUpCA8IHRoZVwtbHVzaFwtYW5kXC1sdXh1cmlhbnRcLW9mXC10aGVcLWdyYXNzXC1hbmRcLWZsb3dlcnM7CivmtrLmhYvmsLQgPCBsaXF1aWRcLXdhdGVyXC1cKGFzXC1vcHBvc2VkXC10b1wtc3RlYW1cLW9yXC1pY2VcLFwtZVwuZ1wuXCk7Civjr64gPCBhXC1raW5kXC1vZlwtdHJlZVwtd2l0aFwtYmlnXC1sZWF2ZXNcLWFuZFwtaW5cLXJlZFwtY29sb3I7CivpgLzkuIrmqJHlsbEgPCBiZVwtZHJpdmVuXC10b1wtam9pblwtdGhlXC1saWFuZ3NoYW5cLW1vdW50YWluXC1yZWJlbHM7CivjlI0gPCBhXC1oaW5nZWRcLXNoZWFyXC1vclwtbG9uZ1wta25pZmVcLWZvclwtY3V0dGluZ1wtZm9kZGVyOwor6Kej5pS+6LuNIDwgcGVvcGxlJydzXC1saWJlcmF0aW9uXC1hcm15XC1cKGllXCxcLXRoZVwtY2hpbmVzZVwtYXJteVwpOwor5ZSQ5bGxIDwgdGFuZ1wtc2hhblwtXChhXC1jaGluZXNlXC1jaXR5XC1pblwtaGViZWlcLeays+WMl1wtcHJvdmluY2VcKTsKK+W4uOS7u+eQhuS6i+WciyA8IHBlcm1hbmVudFwtbWVtYmVyXC1zdGF0ZVwtXChvZlwtdW5cLXNlY3VyaXR5XC1jb3VuY2lsXCk7CivnkpwgPCBhXC1zZW1pY2lyY3VsYXJcLWphZGVcLW9ybmFtZW50XC11c2VkXC1hc1wtYVwtcGVuZGFudDsKK+mBv+WrjCA8IGF2b2lkXC1kb2luZ1wtYW55dGhpbmdcLXRoYXRcLW1heVwtYXJvdXNlXC1zdXNwaWNpb247CivotpnntKvpmb0gPCB6aGFvXC16aXlhbmdcLVwoZm9ybWVyXC1jaGluZXNlXC1sZWFkZXJzaGlwXC1maWd1cmVcKTsKK+WgseW5lSA8IGFubm91bmNlXC10aGVcLWl0ZW1zXC1vblwtYVwtXCh0aGVhdHJpY2FsXClcLXByb2dyYW1tZTsKK+irrCA8IHRvXC1vcGVuXC10b1wtYmVnaW5cLXRvXC1leHBsYWluXC10b1wtaW5mb3JtXC1hXC1sZXR0ZXI7CivopqrlrrYgPCBwYXJlbnRzXC1vZlwtb25lJydzXC1kYXVnaHRlclwtaW5cLWxhd1wtb3JcLXNvblwtaW5cLWxhdzsKK+WNl+i9heWMl+i9jSA8IFwoZmlnXC5cKVwtYWN0XC1pblwtYVwtd2F5XC10aGF0XC1kZWZlYXRzXC1vbmUnJ3NcLXB1cnBvc2U7CivnjLkgPCB3aWxkXC1hbmltYWxcLW1lbnRpb25lZFwtaW5cLXNob3J0XC1zdG9yeVwtYnlcLWx1XC14dW47CivnirwgPCBhXC1maWVyY2VcLW1vbmdvbGlhblwtd29sZlwtZHJhZ29uJydzXC1oZWFkXC1vblwtcm9vZnM7CivmuZMgPCBhblwtYWZmbHVlbnRcLW9mXC10aGVcLXJpdmVyXC15YW5ndHplXC1uZWFyXC1raXVraWFuZzsKK+atmiA8IHVzZWRcLWluXC1uYW1lXC1vZlwtZmFtb3VzXC1rb3JlYW5cLXBhaW50ZXJcLWNlbmdcLXNlbjsKK+S/neWkluWwsemGqyA8IFwob2ZcLWFcLXByaXNvbmVyXClcLXJlbGVhc2VkXC1mb3JcLW1lZGljYWxcLXRyZWF0bWVudDsKK+WWnOezliA8IHN3ZWV0XC1naXZlblwtb25cLWFcLWhhcHB5XC1vY2Nhc2lvblwtXChlc3BcLlwtd2VkZGluZ1wpOwor5ouc5aO9IDwgY29uZ3JhdHVsYXRlXC1hblwtZWxkZXJseVwtcGVyc29uXC1vblwtaGlzXC1iaXJ0aGRheTsKK+iSuOiSuOaXpeS4iiA8IGJlY29taW5nXC1tb3JlXC1wcm9zcGVyb3VzXC13aXRoXC1lYWNoXC1wYXNzaW5nXC1kYXk7CivktpsgPCB0b1wtc2VwYXJhdGVcLXRoZVwtbWVhdFwtZnJvbVwtdGhlXC1ib25lc1wtd2l0aFwtdGVldGg7Civks5wgPCBhXC1raW5kXC1vZlwtYmlyZFwtd2hpY2hcLXNoYXJlc1wtaXRzXC1uZXN0XC13aXRoXC1yYXRzOwor5LKNIDwgYVwtcGVyY2hcLWxpa2VcLWZpc2hcLXdpdGhcLXdoaXRlXC1ib2R5XC1hbmRcLXJlZFwtdGFpbDsKK+SptiA8IHNhZGRsZVwtYW5kXC1yZWluXC1ldGNcLlwtZm9yXC10aGVcLWltcGVyaWFsXC1jYXJyaWFnZTsKK+eDj+mtr+acqOm9iiA8IHVydW1xaVwtXChjYXBpdGFsXC1vZlwteGluamlhbmdcLWF1dG9ub21vdXNcLXJlZ2lvblwpOwor5a6J5Zyf6YeN6YG3IDwgaGF0ZVwtdG9cLWxlYXZlXC1hXC1wbGFjZVwtd2hlcmVcLW9uZVwtaGFzXC1saXZlZFwtbG9uZzsKK+SXvSA8IGFcLXNtYWxsXC1nYWRmbHlcLXRoYXRcLXN1Y2tcLWJsb29kXC1vZlwtaG9yc2VcLW9yXC1jb3c7CivkibQgPCBhXC1iYW1ib29cLXdhcmVcLXRvXC1jb2xsZWN0XC1hbmRcLWtlZXBcLXNvbWV0aGluZ1wtaW47CivkiYUgPCBzbWFsbFwtYmFtYm9vXC13aG9zZVwtam9pbnRzXC1hcmVcLXRocmVlXC1mZWV0XC1hcGFydDsKK+SEpiA8IHRvXC1wdXRcLWZvcnRoXC1lYXJzXC1hbmRcLXRvXC1ibG9zc29tXC1vZlwtdGhlXC1ncmFpbnM7CivmlL/lupzmqZ/pl5zplovmlL7ns7vntbHkupLpgKPnuL3liYcgPCBnb3Zlcm5tZW50XC1vcGVuXC1zeXN0ZW1cLWludGVyY29ubmVjdGlvblwtcHJvZmlsZTsKK+O9qSA8IGNvbm5lY3RlZFwtYmFua3NcLW9mXC1lYXJ0aFwtb3JcLXBhdGhzXC1pblwtdGhlXC1maWVsZDsKK+S4puihjCA8IGluXC1wYXJhbGxlbFwtXFtkZXZlbG9wbWVudFwsXC1pbXBsZW1lbnRhdGlvblwsXC1ldGNcXTsKK+O5gyA8IHR3b1wtYnJpbmRsZWRcLWNvd3NcLXRvXC1wbG91Z2hcLWZhY2VcLXRvXC1lYWNoXC1vdGhlcjsKK+S8r+adsCA8IFwoc2FtdWVsXClcLWJlcmdlclwtXCh1c1wtbmF0aW9uYWxcLXNlY3VyaXR5XC1hZHZpc29yXCk7Civjtp8gPCBhblwtYW5jaWVudFwtbmVtZVwtb2ZcLWFcLXJpdmVyXC1pblwtc2hhbnhpXC1hbmRcLWhlYmVpOwor5p2x55ufIDwgYXNlYW5cLVwoYXNzb2NpYXRpb25cLW9mXC1zb3V0aGVhc3RcLWFzaWFuXC1uYXRpb25zXCk7CivjsoggPCB0aGVcLW5hbWVcLW9mXC10aGVcLW11c2ljXC1vZlwtdGhlXC1sZWdlbmRhcnlcLWVtcGVyb3I7CivjrJAgPCBhXC1zdGF0ZVwtZHVyaW5nXC10aGVcLXBlcmlvZFwtb2ZcLXNwcmluZ1wtYW5kXC1hdXR1bW47CivjoZsgPCBuYW1lXC1mb3JcLWFcLXdvcmttYW5cLXdob1wtYXBwbHlcLWNvbG9yXC1pblwtcGFpbnRpbmc7Civlt6XllYbpioDooYwgPCBpbmR1c3RyaWFsXC1hbmRcLWNvbW1lcmNpYWxcLWJhbmtcLW9mXC1jaGluYVwtXChpY2JjXCk7Civjn6IgPCB0aGVcLXJvY2tzXC1vblwtdGhlXC1oaWxsc1wtYXJlXC1vZlwtZGlmZmVyZW50XC1zaGFwZXM7CivjnLwgPCBjaGlsZHJlblwtb2ZcLW9uZScnc1wtYnJvdGhlclwtXC1cLVwtbmVwaGV3c1wtb3JcLW5pZWNlczsKK+abvue2kyA8IFwocmVmZXJzXC10b1wtc29tZXRoaW5nXC10aGF0XC1oYXBwZW5lZFwtcHJldmlvdXNseVwpOwor45S9IDwgYVwta2luZFwtb2ZcLXdpbmVcLXBvdFwtb3JcLWphclwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWU7Civjk4MgPCB0b1wtc2FjcmlmaWNlXC1ieVwtcG91cmluZ1wtb3V0XC1hXC1saWJhdGlvblwtb2ZcLXdpbmU7CivjkZ4gPCBhXC1tYWlkXC13aG9cLWFjY29tcGFuaWVzXC1hXC1icmlkZVwtdG9cLWhlclwtbmV3XC1ob21lOwor5Y+v6KaLIDwgaXRcLWNhblwtY2xlYXJseVwtYmVcLXNlZW5cLVwodGhhdFwtdGhpc1wtaXNcLXRoZVwtY2FzZVwpOwor5LqL6IiH6aGY6YGVIDwgdGhpbmdzXC1kb24nJ3RcLXR1cm5cLW91dFwtdGhlXC13YXlcLXlvdVwtd2FudFwtb3JcLXBsYW47CivmhbDllY8gPCBleHByZXNzXC1zeW1wYXRoeVwsXC1ncmVldGluZ3NcLFwtY29uc29sYXRpb25cLFwtZXRjXC47CivmtbflvrcgPCBoeWRlXC1cKGVnXCxcLWhvdXNlXC1qdWRpY2lhcnlcLWNoYWlybWFuXC1oZW5yeVwtaHlkZVwpOwor5by154eI57WQ57a1IDwgYmVcLWRlY29yYXRlZFwtd2l0aFwtbGFudGVybnNcLWFuZFwtY29sb3JlZFwtYmFubmVyczsKK+mWiemWgOaAnemBjiA8IHNodXRcLW9uZXNlbGZcLXVwXC1hbmRcLXBvbmRlclwtb3Zlclwtb25lJydzXC1taXN0YWtlczsKK+e+heaWryA8IHJvdGhcLVwoZWdcLFwtaHJ3XC1leGVjdXRpdmVcLWRpcmVjdG9yXC1rZW5uZXRoXC1yb3RoXCk7Civplonpl5zoh6rlroggPCBjbG9zZVwtdGhlXC1jb3VudHJ5XC10b1wtaW50ZXJuYXRpb25hbFwtaW50ZXJjb3Vyc2U7Civml4Hogb0gPCBiZVwtYVwtdmlzaXRvclwtXChhdFwtYVwtbWVldGluZ1wsXC1jbGFzc1wsXC10cmlhbFwsXC1ldGNcKTsKK+S6kumAmuaApyA8IGludGVyb3BlcmFiaWxpdHlcLVwob2ZcLWNvbW11bmljYXRpb25zXC1lcXVpcG1lbnRcKTsKK+eVsiA8IHRvXC1jdWx0aXZhdGVcLWxhbmRcLWJ5XC1maXJzdFwtc2V0dGluZ1wtZmlyZVwtdG9cLWl0Owor56+aIDwgcm91bmRcLW9yXC1vdmFsXC1jb3ZlcmVkXC1iYXNrZXRzXC13aXRoXC1zaG9ydFwtbGVnczsKK+aOqOi+rSA8IHRvXC1kZWNsaW5lXC1cKGFuXC1hcHBvaW50bWVudFwsXC1pbnZpdGF0aW9uXCxcLWV0Y1wuXCk7CivkuI3pgb/oibHpmqogPCBzaHJpbmtcLW9yXC1mbGluY2hcLWZyb21cLW5vXC1kaWZmaWN1bHR5XC1vclwtZGFuZ2VyOwor55m955eiIDwgZHlzZW50ZXJ5XC1jaGFyYWN0ZXJpemVkXC1ieVwtd2hpdGVcLW11Y291c1wtc3Rvb2w7Civoj6/kvZcgPCBuYW1lXC1vZlwtYVwtZmFtb3VzXC1kb2N0b3JcLWluXC1vbGRcLXRpbWVzXCxcLWh1YVwtdHVvOwor57KUIDwgY2FrZXNcLW1hZGVcLWZyb21cLXJpY2VcLWZsb3VyXC10d2lzdGVkXC1pbnRvXC1yaW5nczsKK+aIpCA8IHRvXC1pbmZyaW5nZVwtYVwtdHJhZGVcLW1hcmtcLXRvXC1wbGVkZ2VcLWFuXC1hcnRpY2xlOwor6Zi/5pe65puy5rKbIDwgbmdhd2FuZ1wtY2hvZXBlbFwtXCh0aWJldGFuXCxcLWZ1bGxicmlnaHRcLXNjaG9sYXJcKTsKK+ajkuanjCA8IHdvb2RlblwtY2x1YlwtXCh1c2VkXC10b1wtYmVhdFwtY2xvdGhlc1wtaW5cLXdhc2hpbmdcKTsKK+WFqOaWl+eFpSA8IGNodW5cLWRvb1wtaHdhblwtXChmb3JtZXJcLXNvdXRoXC1rb3JlYW5cLXByZXNpZGVudFwpOwor5LmkIDwgZmlyc3RcLWNoYXJhY3Rlclwtb2ZcLWtvcmVhblwtcGxhY2VcLW5hbWVcLScnaGFscGhvJyc7CivktqggPCBpblwtdGhlXC1tYW5uZXJcLWFcLXRvb3RobGVzc1wtcGVyc29uXC1jaGV3aW5nXC1mb29kOwor5K6bIDwgZXh0cmFcLWhvcnNlXC1oYXJuZXNzZWRcLWJ5XC10aGVcLXNpZGVcLW9mXC10aGVcLXRlYW07Civko6AgPCBuYW1lXC1vZlwtYVwtdmlsbGFnZVwtaW5cLXRvZGF5JydzXC1zaWNodWFuXC1wcm92aW5jZTsKK+SjnyA8IG5hbWVcLW9mXC1wYXZpbGlvblwtaW5cLXRvZGF5JydzXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivkoJIgPCBjb3VydGVzeVwtb2ZcLWFcLW1pbm9yaXR5XC1ncm91cFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5J2wIDwgdG9cLXN0b3JlXC1vclwtdG9cLWFjY3VtdWxhdGVcLXJpY2hlc1wtb3JcLXZhbHVhYmxlczsKK+ScsSA8IG5hbWVcLW9mXC1hXC1wYXZpbGlvblwtaW5cLXRvZGF5JydzXC1zaGFueGlcLXByb3ZpbmNlOwor5JOdIDwgY2hpbmVzZVwtcGVubmlzZXR1bVwpXC1wZW5uaXNldHVtXC1hbG9wZWN1cm9pZGVzXCk7Civki4kgPCBhXC1udW1lcmFyeVwtYWRqdW5jdFwtZm9yXC1wcmFjdGljYWxseVwtZXZlcnl0aGluZzsKK+SKoyA8IGxpZ2h0XC15ZWxsb3dcLWR1c3RcLWxpa2VcLWZ1bmdvaWRcLWdyb3d0aFwtb25cLXdpbmU7Civkh5IgPCBudW1lcmFyeVwtYWRqdW5jdFwtZm9yXC1wZXJpb2RpY1wtdGVybXNcLW9yXC1ldmVudHM7Civjv5cgPCBkaXNlYXNlXC1vZlwtdGhlXC1wcml2YXRlXC1wYXJ0XC1vZlwtdGhlXC1odW1hblwtYm9keTsKK+O+qyA8IGhlbWlwbGVnaWFcLVwtXC1cLXBhcmFseXNpc1wtb2ZcLWhhbGZcLW9mXC1vbmUnJ3NcLWJvZHk7Civju54gPCBmbG91cmlzaGluZ1wtYW5kXC1yYWRpYW50XC1vZlwtdGhlXC1jb2xvcmZ1bFwtamFkZXM7CivjubEgPCBuYW1lXC1vZlwtYVwtZG9nXC1pblwtdGhlXC1wZXJpb2RcLW9mXC13YXJyaW5nXC1zdGF0ZXM7CivjsqUgPCBhXC1raW5kXC1vZlwtd29vbGVuXC10ZXh0aWxlc1wtd2l0aFwtY3VydmVkXC1wYXR0ZXJuOwor4625IDwgbmFtZVwtb2ZcLWFcLWNvdW50eVwtaW5cLXRvZGF5JydzXC1zaGFuZG9uZ1wtcHJvdmluY2U7Civjo68gPCB0aGVcLWRyZXNzZXNcLXRvc3NcLWFuZFwtZmx5aW5nXC1hYm91dFwtaW5cLXRoZVwtd2luZDsKK+OiryA8IGJvd3NcLXVzZWRcLWJ5XC10aGVcLXNvblwtb2ZcLWhlYXZlblwtXC1cLVwtdGhlXC1lbXBlcm9yOwor46GKIDwgYVwta2luZFwtb2ZcLWNhcFwtd29yblwtYnlcLWFuXC1vZmZpY2VyXC1pblwtb2xkXC1jaGluYTsKK+S6uuawkeWkp+acg+WggiA8IGdyZWF0XC1oYWxsXC1vZlwtdGhlXC1wZW9wbGVcLFwtYXRcLXRpYW5hbm1lblwtc3F1YXJlOwor45mrIDwgYVwtZm91bnRhaW5cLW9yXC1zcHJpbmdcLW91dFwtZnJvbVwtdGhlXC11bmRlcmdyb3VuZDsKK+OZjSA8IG5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLXRvZGF5JydzXC1ndWFuZ2RvbmdcLXByb3ZpbmNlOwor5o6i6Lev6ICFIDwgcGF0aGZpbmRlclwtXChzcGFjZVwtY3JhZnRcLXNlbnRcLXRvXC1tYXJzXC1ieVwtbmFzYVwpOwor55Wr6JuH5re76LazIDwgcnVpblwtdGhlXC1lZmZlY3RcLWJ5XC1hZGRpbmdcLXdoYXRcLWlzXC1zdXBlcmZsdW91czsKK+W0lOS6nueQsyA8IGNoYXJsZXNcLXlhaFwtbGluXC10cmllXC1cKGFya2Fuc2FzXC1yZXN0YXVyYW50ZXVyXCk7CivljJflpKfopb/mtIvlhazntITntYTnuZQgPCB0aGVcLW5vcnRoXC1hdGxhbnRpY1wtdHJlYXR5XC1vcmdhbml6YXRpb25cLVwobmF0b1wpOwor5bCI5qGI57WEIDwgc3BlY2lhbFwtXChsZWdhbFx8anVkaWNpYWxcKVwtaW52ZXN0aWdhdGlvbnNcLWdyb3VwOwor5LuX576p5Z+36KiAIDwgc3BlYWtcLW91dFwtb25cLWFcLW1hdHRlclwtb2ZcLXByaW5jaXBsZVwtb3JcLWp1c3RpY2U7CivlhbXoh6jln47kuIsgPCB0aGVcLWF0dGFja2luZ1wtYXJteVwtaGFzXC1yZWFjaGVkXC10aGVcLWNpdHlcLWdhdGVzOwor5ZCe5ZCQIDwgdG9cLXRha2VcLWluXC1hbmRcLXNlbmRcLW91dFwtXChpblwtbGFyZ2VcLXF1YW50aXRpZXNcKTsKK+mSpyA8IHVuaXRcLW9mXC1tZWFzdXJlXC1lcXVpdmFsZW50XC10b1wtdGhpcnR5XC1jYXR0aWVzOwor5aayIDwgY29uY3ViaW5lXC1vZlwtbGFzdFwtcnVsZXJcLW9mXC10aGVcLXNoYW5nXC1keW5hc3R5Owor55O0IDwgY29uY2F2ZVwtY2hhbm5lbHNcLW9mXC10aWxpbmdcLWFcLWxvbmdcLW5lY2tlZFwtamFyOwor5aq1IDwgYVwtbWFpZFwtd2hvXC1hY2NvbXBhbmllc1wtYnJpZGVcLXRvXC1oZXJcLW5ld1wtaG9tZTsKK+iDmSA8IG1lYXRcLW9mZmVyZWRcLWluXC1zYWNyaWZpY2VcLXRvXC1vbmUnJ3NcLWFuY2VzdG9yczsKK+ifiiA8IGFcLWZseVwtd2hpY2hcLWlzXC11c2VkXC1zaW1pbGFybHlcLXRvXC1jYW50aGFyaWRlczsKK+aWt+apiyA8IHRoZVwtYnJva2VuXC1icmlkZ2VcLVwoYXRcLXdlc3RcLWxha2VcLWluXC1oYW5nemhvdVwpOwor5aSx5pWX5piv5oiQ5Yqf5LmL5q+NIDwgXCJmYWlsdXJlXC1pc1wtdGhlXC1tb3RoZXJcLW9mXC1zdWNjZXNzXCJcLVwocHJvdmVyYlwpOwor5rCj5YqfIDwgcWlnb25nXCxcLWFcLXN5c3RlbVwtb2ZcLWRlZXBcLWJyZWF0aGluZ1wtZXhlcmNpc2VzOwor55yB57SaIDwgcHJvdmluY2lhbFwtbGV2ZWxcLVwoZWdcLFwtcHJvdmluY2lhbFwtZ292ZXJubWVudFwpOwor5q2m5omTIDwgYWNyb2JhdGljXC1maWdodGluZ1wtaW5cLWNoaW5lc2VcLW9wZXJhXC1vclwtZGFuY2U7CivmqYvmnKzpvo3lpKrpg44gPCBoYXNoaW1vdG9cLFwtcnl1dGFyb1wtXChwcmltZVwtbWluaXN0ZXJcLW9mXC1qYXBhblwpOwor6aiyIDwgdGhlXC1mZW1hbGVcLW9mXC1jZXJ0YWluXC1hbmltYWxzXC1zdWNoXC1hc1wtaG9yc2VzOwor5aCx5aSxIDwgcmVwb3J0XC10aGVcLWxvc3NcLXRvXC10aGVcLWF1dGhvcml0aWVzXC1jb25jZXJuZWQ7Civkv53ppIogPCB0YWtlXC1nb29kXC1jYXJlXC1vZlwtXChvclwtY29uc2VydmVcKVwtb25lJydzXC1oZWFsdGg7CivlubPkv6EgPCBvcmRpbmFyeVwtbWFpbFwtXChhc1wtb3Bwb3NlZFwtdG9cLWFpclwtbWFpbFwsXC1ldGNcLlwpOwor5YiG5LqrIDwgb2J0YWluXC1vbmUnJ3NcLXNoYXJlXC1cKG9mXC13ZWFsdGhcLFwtcmlnaHRzXCxcLWV0Y1wuXCk7CivntIXloKEgPCByZWRcLWZvcnRcLVwoaGlzdG9yaWNcLWJ1aWxkaW5nXC1pblwtZGVsaGlcLFwtaW5kaWFcKTsKK+ePkyA8IHR3b1wtaGVtaXNwaGVyaWNhbFwtb2JqZWN0c1wtdXNlZFwtaW5cLWRpdmluYXRpb247CivlhYPlrrUgPCBzd2VldFwtZHVtcGxpbmdzXC1tYWRlXC1vZlwtZ2x1dGlub3VzXC1yaWNlXC1mbG91cjsKK+iDjOWfjuWAn+S4gCA8IG1ha2VcLWFcLWxhc3RcLWRpdGNoXC1zdGFuZFwtYmVmb3JlXC10aGVcLWNpdHlcLXdhbGw7CivmlacgPCB0b1wtcGlja1wtdXBcLXRoaW5nXC13aXRoXC1jaG9wc3RpY2tzXC1vclwtcGluY2Vyc1wuOwor5omEIDwgbGFyZ2VcLXJpbmdcLW9uXC1hXC1mcm9udFwtZG9vclwtdXNlZFwtYXNcLWFcLWtub2NrZXI7Civlq48gPCB0aGVcLXBsYWNlXC13aGVyZVwtdGhlXC1zdXByZW1lXC1zdG9yZXNcLWhpc1wtYm9va3M7Civoh6jlr6sgPCB0b1wtY29weVwtXChhXC1tb2RlbFwtb2ZcLWNhbGxpZ3JhcGh5XC1vclwtcGFpbnRpbmdcKTsKK+aciOmkhSA8IG1vb25cLWNha2VcLVwoZXNwXC5cLWZvclwtdGhlXC1taWRcLWF1dHVtblwtZmVzdGl2YWxcKTsKK+eZvuaEn+S6pOmbhiA8IGFsbFwtc29ydHNcLW9mXC1mZWVsaW5nc1wtd2VsbFwtdXBcLWluXC1vbmUnJ3NcLWhlYXJ0Owor5LGBIDwgYVwta2luZFwtb2ZcLW1lZGl1bVwtc2l6ZWRcLWZpc2hcLWdyb3duXC1pblwtdGhlXC1zZWE7CivksI8gPCBzcGFyc2VcLWhhaXJcLW9uXC1hXC1rbm90XC1vblwtdGhlXC10b3BcLW9mXC10aGVcLWhlYWQ7CivkroYgPCBhXC1ob3JzZVwtd2l0aFwtbWl4ZWRcLWNvbG9yXC1vZlwteWVsbG93XC1hbmRcLXdoaXRlOwor5KmbIDwgbGVhdGhlclwtYmVsdFwtdXNlZFwtdG9cLWJpbmRcLW9yXC1yZXN0cmFpblwtYVwtY2FydDsKK+aKhOWutiA8IHRvXC1zZWFyY2hcLWFcLWhvdXNlXC1hbmRcLWNvbmZpc2NhdGVcLXBvc3Nlc3Npb25zOwor5Ka5IDwgbmFtZVwtb2ZcLWFcLWNvdW50eVwtaW5cLXRvZGF5JydzXC1zaWNodWFuXC1wcm92aW5jZTsKK+SjlCA8IG5hbWVcLW9mXC1hXC1wYXZpbGlvblwtaW5cLXRvZGF5JydzXC1oZW5hblwtcHJvdmluY2U7Civko5EgPCBsaXZpbmdcLXNwYWNlXC1mb3JcLW9uZVwtZmFtaWx5XC1pblwtYW5jaWVudFwtdGltZXM7Civko4QgPCBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC10b2RheScnc1wtc2hhbmRvbmdcLXByb3ZpbmNlOwor5KK5IDwgbmFtZVwtb2ZcLWFcLXBhdmlsaW9uXC1pblwtdG9kYXknJ3NcLWh1bmFuXC1wcm92aW5jZTsKK+SiqiA8IGFcLXNsZWRnZVwtZm9yXC10cmFuc3BvcnRhdGlvblwtb3ZlclwtbXVkXC1vclwtc25vdzsKK+SfhiA8IHRvXC1rZWVwXC1wZXJzb25zXC1vZmZcLXRoZVwtcm91dGVcLW9mXC10aGVcLWVtcGVyb3I7CivmnIPoposgPCB0b1wtbWVldFwtd2l0aFwtXChzb21lb25lXC13aG9cLWlzXC1wYXlpbmdcLWFcLXZpc2l0XCk7CivkiJAgPCBhblwtYXJjaGVkXC1mcmFtZVwtbWFkZVwtb2ZcLWJhbWJvb1wtb2ZcLXdvb2RcLWJvYXJkOwor5IW/IDwgbHV4dXJpYW50XC1vclwtZXh1YmVyYW50XC1vZlwtdGhlXC1ncmFpbnNcLWZsb3dlcnk7Civkg4ggPCBtb3VudGFpblwtcm9ja3NcLWFcLWJsYWNrXC1zdG9uZVwtcmVzZW1ibGluZ1wtamFkZTsKK+SCrCA8IGJpZ1wtcm9ja3NcLW9uXC10aGVcLXJpdmVyc2lkZVwtYW5cLWFyY2hlZFwtb3BlbmluZzsKK+SBnSA8IGRlbHVkaW5nXC1hbmRcLWNhdXNpbmdcLWRpc29yZGVyXC1saWdodHNcLXNoaW5pbmc7CivjvZ8gPCB0b1wtdGlsbFwtb3JcLXRvXC1wbG91Z2hcLXRoZVwtZmllbGRzXC1hblwtZW5jbG9zdXJlOwor466EIDwgcHVibGljbHlcLXBvc3RlZFwtcm9sbFwtb2ZcLXN1Y2Nlc3NmdWxcLWV4YW1pbmVlczsKK+OtuCA8IHRoZVwtYnJhbmNoZXNcLXRvXC1zcHJlYWRcLW91dFwtaW5cLWFsbFwtZGlyZWN0aW9uczsKK+OpiSA8IHRvXC10YWtlXC1hXC1ydWJiaW5nXC1vZlwtYW5cLWluc2NyaXB0aW9uXC1vblwtc3RvbmU7Civjo4EgPCB0b1wtZXF1aXB0XC1hXC1ib3dcLXdpdGhcLXNpbGtcLWFuZFwtbXVzY3VsYXJcLWZpYnJlOwor452ZIDwgdGhlXC10aGlyZFwtb2ZcLXRoZVwtdHdlbHZlXC10ZXJyZXN0cmlhbFwtYnJhbmNoZXM7CivplbfmspnngaMgPCBjaGV1bmdcLXNoYVwtd2FuXC1cKHBvdWx0cnlcLW1hcmtldFwtaW5cLWhvbmdcLWtvbmdcKTsKK+Wlp+eIvuW4g+iztOeJuSA8IFwobWFkZWxlaW5lXClcLWFsYnJpZ2h0XC1cKHVzXC1zZWNyZXRhcnlcLW9mXC1zdGF0ZVwpOwor5q2j5bi45YyWIDwgbm9ybWFsaXphdGlvblwtXChvZlwtZGlwbG9tYXRpY1wtcmVsYXRpb25zXCxcLWV0Y1wpOwor5YW15LiN5Y6t6KmQIDwgdGhlcmVcLWNhblwtbmV2ZXJcLWJlXC10b29cLW11Y2hcLWRlY2VwdGlvblwtaW5cLXdhcjsKK+S6lOWFreWNgeatsiA8IFwoaW5cLW9uZScnc1wpXC1maWZ0aWVzXC1vclwtc2l4dGllc1wtXCh5ZWFyc1wtb2ZcLWFnZVwpOwor6YG/6YeN5bCx6LyVIDwgYXZvaWRcLXRoZVwtaW1wb3J0YW50XC1hbmRcLWR3ZWxsXC1vblwtdGhlXC10cml2aWFsOwor5aSn6IiJIDwgY2FycnlcLW91dFwtYVwtbGFyZ2VcLXNjYWxlXC1cKG1pbGl0YXJ5XClcLW9wZXJhdGlvbjsKK+aXpea8uCA8IFwoa2VlcFwtaW5jcmVhc2luZ1wsXC1jaGFuZ2luZ1wsXC1ldGNcLlwpXC1kYXlcLWJ5XC1kYXk7CivmqJnmlrDnq4vnlbAgPCBzdGFydFwtc29tZXRoaW5nXC1uZXdcLWluXC1vcmRlclwtdG9cLWJlXC1kaWZmZXJlbnQ7CivorbDluK0gPCBzZWF0XC1pblwtYVwtcGFybGlhbWVudFwtb3JcLWxlZ2lzbGF0aXZlXC1hc3NlbWJseTsKK+S5jiA8IGludGVycm9nYXRpdmVcLW9yXC1leGNsYW1hdG9yeVwtZmluYWxcLXBhcnRpY2xlOwor5r6EIDwgcHVyaWZ5XC13YXRlclwtYnlcLWFsbG93aW5nXC1zZWRpbWVudFwtdG9cLXNldHRsZTsKK+atnyA8IGFcLWZpbmFsXC1wYXJ0aWNsZVwtdXNlZFwtdG9cLWV4cHJlc3NcLWFkbWlyYXRpb247CivmoqIgPCBwb2ludGVkXC10aXBcLW9mXC1zb21ldGhpbmdcLWxvbmdcLWxpa2VcLWFcLWJyYW5jaDsKK+WTkiA8IGFcLXNvdW5kXC1tYWRlXC10b1wtZ2V0XC1hXC1ob3JzZVwtdG9cLW1vdmVcLWZvcndhcmQ7CivnkK4gPCBvY3RhZ29uYWxcLXBpZWNlXC1vZlwtamFkZVwtd2l0aFwtaG9sZVwtaW5cLW1pZGRsZTsKK+WUvCA8IHNwZWFraW5nXC1ldmlsXC5cLWdvYmJsaW5nXC1zb3VuZFwtbWFkZVwtYnlcLWR1Y2tzOwor5aSn5Yqf5ZGK5oiQIDwgc3VjY2Vzc2Z1bGx5XC1hY2NvbXBsaXNoZWRcLVwocHJvamVjdFwtb3JcLWdvYWxcKTsKK+mAmue3nSA8IHdhbnRlZFwtYnlcLXRoZVwtcG9saWNlXC1cKGZ1Z2l0aXZlXC1vclwtY3JpbWluYWxcKTsKK+ecn+e0jSA8IFwobW9oYW1tYWRcLWFsaVwpXC1qaW5uYWhcLVwoZm91bmRlclwtb2ZcLXBha2lzdGFuXCk7CivorJ3oo6HlpKsgPCBcKG5hd2F6XClcLXNoYXJpZlwtXChwcmltZVwtbWluaXN0ZXJcLW9mXC1wYWtpc3RhblwpOwor6a2v6LOTIDwgcnViaW5cLVwoZWdcLFwtdHJlYXN1cnlcLXNlY3JldGFyeVwtcm9iZXJ0XC1ydWJpblwpOwor5Yqb5a+2IDwgbGlwcG9cLVwoZ3JvdXBcKVwtXChpbmRvbmVzaWFuXC1idXNpbmVzc1wtY29uY2VyblwpOwor5ZCz5L2c5qOfIDwgZ29oXC1jaG9rXC10b25nXC1cKHByaW1lXC1taW5pc3Rlclwtb2ZcLXNpbmdhcG9yZVwpOwor54Sh5omA55So5b+DIDwgZWF0XC10aHJlZVwtc3F1YXJlXC1tZWFsc1wtYVwtZGF5XC1hbmRcLWRvXC1ub1wtd29yazsKK+WBtOmLkiA8IG9ibGlxdWVcLWF0dGFja1wtXChicnVzaFwtbW92ZW1lbnRcLWluXC1wYWludGluZ1wpOwor6YK0IDwgbmFtZVwtb2ZcLWFcLWNpdHlcLWluXC10aGVcLWFuY2llbnRcLXN0YXRlXC1vZlwtc29uZzsKK+ePremWgOW8hOaWpyA8IGRpc3BsYXlcLW9uZScnc1wtc2xpZ2h0XC1za2lsbFwtYmVmb3JlXC1hblwtZXhwZXJ0Owor5Lit5ZyL5pel5aCxIDwgY2hpbmFcLWRhaWx5XC1cKGFuXC1lbmdsaXNoXC1sYW5ndWFnZVwtbmV3c3BhcGVyXCk7CivltIfnpo4gPCBjaG9uZ3poZW5cLFwtbGFzdFwtZW1wZXJvclwtb2ZcLXRoZVwtbWluZ1wtZHluYXN0eTsKK+eZveWtlyA8IHdyb25nbHlcLXdyaXR0ZW5cLWFuZFwtbWlzcHJvbm91bmNlZFwtY2hhcmFjdGVyOwor5LiN5Y+v57WC5pelIDwgYmVcLXVuYWJsZVwtdG9cLWNhcnJ5XC1vblwtZXZlblwtZm9yXC1hXC1zaW5nbGVcLWRheTsKK+WvhOS6iOW+iOWkp+acn+acmyA8IHRvXC1wbGFjZVwtZ3JlYXRcLWhvcGVcLW9yXC1leHBlY3RhdGlvblwtb25cLVwoc3RoXCk7Civlt6Xkurrpu6ggPCB3b3JrZXJzJydcLXBhcnR5XC1cKHNpbmdhcG9yZVwtb3Bwb3NpdGlvblwtcGFydHlcKTsKK+WwjeetliA8IGNvdW50ZXJtZWFzdXJlXC1mb3JcLWRlYWxpbmdcLXdpdGhcLWFcLXNpdHVhdGlvbjsKK+S2mCA8IHRoZVwtc291bmRcLW9mXC1jaGV3aW5nXC1zb21ldGhpbmdcLWRyeVwtYW5kXC1oYXJkOwor5K6yIDwgaG9yc2VcLXdpdGhcLW1peGVkXC1jb2xvcnNcLW9mXC15ZWxsb3dcLWFuZFwtd2hpdGU7CivkprwgPCB0b1wtZGlnXC1hXC1wYXNzYWdlXC10aHJvdWdoXC1hXC1tb3VudGFpblwtb3JcLWhpbGw7CivkpZEgPCBhXC1raW5kXC1vZlwtZGVjb3JhdGlvblwtb25cLXRoZVwtaGVhZFwtb2ZcLWFcLWhvcnNlOwor5KOvIDwgd2luZVwtb3JcLWFueVwtdGhpY2tcLWZsdWlkXC1vZlwtdGhlXC1iZXN0XC1xdWFsaXR5Owor5KOaIDwgbmFtZVwtb2ZcLWFcLXZpbGxhZ2VcLWluXC10b2RheScnc1wtaGVuYW5cLXByb3ZpbmNlOwor5KOZIDwgbmFtZVwtb2ZcLWFcLWNvdW50eVwtaW5cLXRvZGF5JydzXC1zaGFueGlcLXByb3ZpbmNlOwor5KK6IDwgbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtdG9kYXknJ3NcLXNpY2h1YW5cLXByb3ZpbmNlOwor5KG/IDwgZnJhbWVzXC1vblwtdGhlXC1zaWRlc1wtYW5kXC1mcm9udFwtb2ZcLWFcLWNhcnJpYWdlOwor5JyvIDwgbmFtZVwtb2ZcLWFcLXZhbGxleVwtaW5cLXRvZGF5JydzXC1zaGFueGlcLXByb3ZpbmNlOwor5Ji/IDwgc2hpcnRcLW9yXC1hXC1qYWNrZXRcLXdpdGhvdXRcLWFueVwtZGVjb3JhdGVkXC1oZW07CivkloIgPCBhblwtZWRpYlwtbGVcLXdhdGVyXC1wbGFudFwtXC1cLVwtYnJhc2VuaWFcLXB1cnB1cmNhOwor5I+uIDwgdGhlXC1zaWRlc1wtb2ZcLXRoZVwtdHJ1bmtcLWZyb21cLWFybXBpdHNcLXRvXC1yaWJzOwor5IWNIDwgc3RyYWlnaHRcLXVwd2FyZFwtb2ZcLXRoZVwtd2hlYXRcLWFuZFwtcmljZVwtcGxhbnQ7CivkgrggPCB0b1wtc21hc2hcLW9yXC10b1wta25vY2tcLXRvXC1waWVjZXNcLW9mXC10aGVcLXN0b25lOwor562G5YqbIDwgdmlnb3VyXC1vZlwtc3Ryb2tlc1wtaW5cLWNhbGxpZ3JhcGh5XC1vclwtZHJhd2luZzsKK+e9sOmFkiA8IHRvXC1kcmlua1wtYXNcLXRoZVwtcmVzdWx0XC1vZlwtaGF2aW5nXC1sb3N0XC1hXC1iZXQ7CivjvrwgPCB0b1wtc3VmZmVyXC1hXC1zdHJva2VcLW9mXC1wYXJhbHlzaXNcLW9yXC1hcG9wbGV4eTsKK+O9qyA8IHNlZWRzXC1vZlwtdGhlXC1wbGFudFwtYWxsaWVkXC10b1wtdGhlXC13YXRlclwtbGlseTsKK+O4tyA8IGFcLWtpbmRcLW9mXC1jYXR0bGVcLXdpdGhcLXR3b1wtaG9ybnNcLXN0cmFpZ2h0XC11cDsKK+O2rCA8IGJyaWdodFwtbGlnaHRzXC1hbmRcLWlsbHVtaW5hdGlvbnNcLW9mXC10aGVcLWZpcmU7CivjtoYgPCBuYW1lXC1vZlwtYVwtc3RyZWFtXC1pblwtaGViZWlcLXByb3ZpbmNlXC1oZW5nc2hhbjsKK+aWr+S9qeaelyA8IHNwZWxsaW5nXC1cKGVnXCxcLXNwZWxsaW5nXC1lbnRlcnRhaW5tZW50XC1ncm91cFwpOwor466rIDwgYVwtd29vZGVuXC1hcnRpY2FsXC10b1wtYmVcLXVzZWRcLXRvXC1hZGp1c3RcLWFcLWJvdzsKK+OrjSA8IHRoZVwtc2NhbGxvcHNcLWFsb25nXC10aGVcLWxvd2VyXC1lZGdlXC1vZlwtYVwtZmxhZzsKK+OnjyA8IHRvXC1jYXJyeVwtb25cLXRoZVwtc2hvdWxkZXJzb2ZcLXR3b1wtb3JcLW1vcmVcLW1lbjsKK+aYn+mrlCA8IGNlbGVzdGlhbFwtYm9keVwtXChlZ1wsXC1wbGFuZXRcLFwtc2F0ZWxsaXRlXCxcLWV0Y1wpOwor45u2IDwgZG9cLW5vdFwtY2FyZVwtYWJvdXRcLWFwcGVhcmFuY2VcLWFuZFwtZGVwb3J0bWVudDsKK+OalCA8IGluc3RydW1lbnRcLW9mXC10b3J0dXJlXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7CivjmYcgPCB0aGVcLWNhdHRsZVwtYW5kXC1ob3JzZXNcLXRyYW1wbGVkXC1vblwtdGhlXC1maWVsZDsKK+S4u+euoSA8IFwoYmVcKVwtcGVyc29uXC1pblwtY2hhcmdlXC1vZlwtXChhXC1wb3NpdGlvblwsXC1ldGNcLlwpOwor5Zau5qeN5Yy56aasIDwgc2luZ2xlXC1oYW5kZWRcLVwobGl0XDpcLXNpbmdsZVwtc3BlYXJcLW9uZVwtaG9yc2VcKTsKK+ebp+azsOaEmiA8IHJvaFwtdGFlXC13b29cLVwoZm9ybWVyXC1zb3V0aFwta29yZWFuXC1wcmVzaWRlbnRcKTsKK+atpemfuyA8IHRvXC13cml0ZVwtYVwtcG9lbVwtdXNpbmdcLWFub3RoZXJcLXBvZW0nJ3NcLXJoeW1lczsKK+WPo+awoyA8IFwoZnJpZW5kbHlcLW9yXC11bmZyaWVuZGx5XClcLXRvbmVcLVwob2ZcLWNvbW1lbnRzXCk7CivmraPpi5IgPCBmcm9udGFsXC1hdHRhY2tcLVwoYnJ1c2hcLW1vdmVtZW50XC1pblwtcGFpbnRpbmdcKTsKK+m9iueZveefsyA8IG5hbWVcLW9mXC1hXC1mYW1vdXNcLWNoaW5lc2VcLWFydGlzdFwsXC1xaVwtYmFpXC1zaGk7CivkuIvkvoYgPCBcKHZlcmJcLXN1ZmZpeFwtaW5kaWNhdGluZ1wtY29udGludWF0aW9uXCxcLWV0Y1wuXCk7Civlubnpg6ggPCBhXC1jYWRyZVwtXChpZVwsXC1tYW5hZ2VyXCxcLXN0YWZmXCxcLW9mZmljZXJcLFwtZXRjXC5cKTsKK+WohSA8IG11dHVhbFwtdGVybVwtb2ZcLWFkZHJlc3NcLXVzZWRcLWJ5XC1zb25zXC1pblwtbGF3Owor5ZWG5YuZ6YOoIDwgY29tbWVyY2VcLWRlcGFydG1lbnRcLVwob2ZcLXRoZVwtdXNcLWdvdmVybm1lbnRcKTsKK+WQjeWJr+WFtuWvpiA8IG5vdFwtanVzdFwtaW5cLW5hbWVcLW9ubHlcLFwtYnV0XC1hbHNvXC1pblwtcmVhbGl0eTsKK+S4jeeVtuS4gOWbnuS6iyA8IG5vdFwtcmVnYXJkXC1hc1wtYVwtbWF0dGVyXC1cKG9mXC1hbnlcLWltcG9ydGFuY2VcKTsKK+iAgeS8tOWFkiA8IFwob2ZcLWFuXC1vbGRcLW1hcnJpZWRcLWNvdXBsZVwpXC1odXNiYW5kXC1vclwtd2lmZTsKK+S4jeaJk+S4jeebuOitmCA8IGZyb21cLWFuXC1leGNoYW5nZVwtb2ZcLWJsb3dzXC1mcmllbmRzaGlwXC1ncm93czsKK+W3tOeIvuiIjeWkq+aWr+WfuiA8IFwoY2hhcmxlbmVcKVwtYmFyc2hlZnNreVwsXC11c1wtdHJhZGVcLW5lZ290aWF0b3I7CivprqAgPCBhXC1raW5kXC1vZlwtc2hhZFwtd2l0aFwtYVwtaGVhZFwtbGlrZVwtYVwtc3R1cmdlb247CivmjqXntI0gPCBhZG1pdFwtXChpbnRvXC1tZW1iZXJzaGlwXC1vZlwtYW5cLW9yZ2FuaXphdGlvblwpOwor5Zac5paw5Y6t6IiKIDwgbGl0ZXJhbFw6XC10b1wtbGlrZVwtdGhlXC1uZXdcLFwtYW5kXC1oYXRlXC10aGVcLW9sZDsKK+aKiumiqCA8IGtlZXBcLXdhdGNoXC1cKGR1cmluZ1wtYVwtY2xhbmRlc3RpbmVcLWFjdGl2aXR5XCk7CivlgpnogJUgPCBtYWtlXC1wcmVwYXJhdGlvbnNcLWZvclwtcGxvdWdoaW5nXC1hbmRcLXNvd2luZzsKK+aSpeWGlyA8IGZpbmRcLXRpbWVcLWluXC10aGVcLW1pZHN0XC1vZlwtcHJlc3NpbmdcLWFmZmFpcnM7Civog5EgPCB0aGVcLWxpbWJzXC5cLXdpbmdzXC1vZlwtYmlyZHNcLlwtbGVnc1wtb2ZcLWFuaW1hbHM7Civnra0gPCBhblwtYW5jaWVudFwtZGV2aWNlXC1mb3JcLXdvcmtpbmdcLXdpdGhcLW51bWJlcnM7CivmooblrZDohZQgPCBhXC1nZW5lcmFsXC10ZXJtXC1mb3JcLWxvY2FsXC1vcGVyYXNcLWluXC1zaGFuZ3hpOwor5rudIDwgb25vbWF0b3BvZWljXC1mb3JcLXRoZVwtc291bmRcLW9mXC1mYWxsaW5nXC1yYWluOwor5qC96LSTIDwgdG9cLWZyYW1lXC1zb21lb25lXC1cKGJ5XC1wbGFudGluZ1wtc3RoXC1vblwtdGhlbVwpOwor5o+b5Y+WIDwgZ2l2ZVwtc29tZXRoaW5nXC1hbmRcLWdldFwtc29tZXRoaW5nXC1pblwtcmV0dXJuOwor5ouN5qGI5Y+r57WVIDwgbGl0XC5cOlwtc2xhcFwtdGhlXC10YWJsZVwtYW5kXC1zaG91dFwtd2l0aFwtcHJhaXNlOwor5YG95pu4IDwgXChmb3JnZWRcLFwtZHViaW91c1wsXC1taXNjbGFzc2lmaWVkXClcLW9sZFwtYm9va3M7CivmooXomK3oirMgPCBuYW1lXC1vZlwtYVwtdmVyeVwtZmFtb3VzXC1iZWlqaW5nXC1vcGVyYVwtYXJ0aXN0Owor57C/5YaKIDwgYm9va3NcLWZvclwtdGFraW5nXC1ub3Rlc1wtb3JcLWtlZXBpbmdcLWFjY291bnRzOwor5LO1IDwgYVwta2luZFwtb2ZcLXdhdGVyXC1iaXJkXC13aXRoXC1jb2xvcmZ1bFwtZmVhdGhlcjsKK+SzmyA8IGFcLXNtYWxsXC1icm93blwtc3BlY2tsZWRcLWJpcmRcLWxpa2VcLXRoZVwtcXVhaWw7CivkqZEgPCBob3Jpem9udGFsXC1mcm9udFwtYmFyXC1vblwtYVwtY2FydFwtb3JcLWNhcnJpYWdlOwor5KaTIDwgdG9cLXdhaXRcLWZvclwtc29tZXRoaW5nXC10b2hhcHBlblwtaW1tZWRpYXRlbHk7Civko6QgPCBuYW1lXC1vZlwtdmlsbGFnZVwtaW5cLXRvZGF5JydzXC1zaGFueGlcLXByb3ZpbmNlOwor5KOdIDwgbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtdG9kYXknJ3NcLXNoYW54aVwtcHJvdmluY2U7Civko4IgPCBuYW1lXC1vZlwtYVwtY291bnR5XC1pblwtdG9kYXknJ3NcLWh1bmFuXC1wcm92aW5jZTsKK+ShqSA8IHNvdW5kXC1vZlwtY2FydHNcLW9yXC1zdG9uZXNcLWtub2NraW5nXC10b2dldGhlcjsKK+SggCA8IHRvXC1zaXRcLWNyb3NzXC1sZWdnZWRcLWxpa2VcLWFcLWJ1ZGRoaXN0XC1wcmllc3Q7CivknKsgPCBuYW1lXC1vZlwtYVwtdmFsbGV5XC1pblwtdG9kYXknJ3NcLWhvYmVpXC1wcm92aW5jZTsKK+ScmiA8IHRvXC1zcGVha1wtcmVja2xlc3NseVwtb3JcLXdpdGhvdXRcLWZvcmV0aG91Z2h0Owor5JOlIDwgc291bmRcLW9mXC10aGVcLXdyaWdnbGVkXC1pbnNlY3RzXC1vblwtdGhlXC1ncmFzczsKK+SQhCA8IHRoZVwtdW5zYXRpc2ZhY3Rpb25cLW9mXC1odW5nZXJcLXJlcXVpcmVzXC1tZWF0Owor5I20IDwgdG9cLXNxdWVlemVcLWFuZFwtdG9cLWNyb3dkXC1hZ2FpbnN0XC1lYWNoXC1vdGhlcjsKK+SNhiA8IGNvbnRhaW5lclwtZm9yXC1ncmFpbnNcLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+S4iui7iiA8IHRvXC1nZXRcLW9uXC1vclwtaW50b1wtXChhXC1idXNcLFwtdHJhaW5cLFwtY2FyXC1ldGNcLlwpOwor5IevIDwgYVwta2luZFwtb2ZcLWJhbWJvb1wtd2l0aFwtcGF0dGVybnNcLW9uXC10aGVcLWhlYWQ7CivooYzmlL/pmaIgPCBleGVjdXRpdmVcLXl1YW5cLVwoZ292ZXJubWVudFwtYm9keVwtaW5cLXRhaXdhblwpOwor47yxIDwgdG9cLW1hbmFnZVwtb3JcLXJlZ3VsYXRlXC10aGVcLWxlYXRoZXJcLW1hdGVyaWFsOwor46+KIDwgZXZlblwtbWVhc3VyaW5nXC1ib2FyZFwtZm9yXC1wZWNrc1wtYW5kXC1idXNoZWxzOwor562G5LiLIDwgdGhlXC13b3JkaW5nXC1hbmRcLXB1cnBvcnRcLW9mXC13aGF0XC1vbmVcLXdyaXRlczsKK+S+v+WHvSA8IGFuXC1pbmZvcm1hbFwtbGV0dGVyXC1zZW50XC1ieVwtYW5cLW9yZ2FuaXphdGlvbjsKK+OokCA8IHRvXC1zbGFwXC1saWdodGx5XC1vblwtdGhlXC1jbG90aGVzXC1vclwtY292ZXJsZXQ7CivjoqUgPCBhXC1iaWdcLXBpZWNlXC1vZlwtbG9nXC10b1wtam9pblwtdGhlXC10aGlja1wtcm9wZXM7CivpppbluK0gPCBjaGllZlwtXChyZXByZXNlbnRhdGl2ZVwsXC1jb3JyZXNwb25kZW50XCxcLWV0Y1wpOwor6LSF5am/IDwgc29uXC1pblwtbGF3XC1saXZpbmdcLWF0XC13aWZlJydzXC1wYXJlbnQnJ3NcLWhvdXNlOwor5p2w5L2b6IyyIDwgXChqYW1lc1wpXC1qZWZmb3Jkc1wtXCh1c1wtc2VuYXRvclwtZnJvbVwtdmVybW9udFwpOwor6JmV5pa8IDwgYmVcLVwoaW5cLXNvbWVcLXN0YXRlXCxcLXBvc2l0aW9uXCxcLW9yXC1jb25kaXRpb25cKTsKK+miqOWcn+S6uuaDhSA8IGxvY2FsXC1jb25kaXRpb25zXC1cKGh1bWFuXC1hbmRcLWVudmlyb25tZW50YWxcKTsKK+mYv+aLieWhlOaWryA8IFwoYWxpXClcLWFsYXRhc1wtXChpbmRvbmVzaWFuXC1mb3JlaWduXC1taW5pc3RlclwpOwor576F5biD5rOKIDwgbG9wXC1ub3JcLVwobnVjbGVhclwtdGVzdGluZ1wtc2l0ZVwtaW5cLXhpbmppYW5nXCk7CivmsJHpgLLpu6ggPCBkcHBcLVwoZGVtb2NyYXRpY1wtcHJvZ3Jlc3NpdmVcLXBhcnR5XCxcLXRhaXdhblwpOwor5pWX562GIDwgYVwtZmF1bHR5XC1zdHJva2VcLWluXC1jYWxsaWdyYXBoeVwtb3JcLXBhaW50aW5nOwor54+IIDwgYW5cLW9ybmFtZW50XC1hdHRhY2hlZFwtdG9cLWFcLXdvbWFuJydzXC1oYWlycGluOwor6JyDIDwgbWFyaW5lXC1tb25zdGVyXC13aGljaFwtY2FuXC1jaGFuZ2VcLWl0c1wtc2hhcGU7CivmlpsgPCBkcnlcLW1lYXN1cmVcLWVxdWFsXC10b1wtc29tZVwtZml2ZVwtb3JcLXRlblwtZG91Owor6YSvIDwgZGlzdHJpY3RcLWluXC1nYW5zdVwtZHVyaW5nXC10aGVcLXRhbmdcLWR5bmFzdHk7CivlurkgPCB0aGVcLWxlbmd0aFwtb2ZcLW9uZScnc1wtdHdvXC1vdXRzdHJldGNoZWRcLWFybXM7Civmj7IgPCB0b1wtc29ydFwtb3V0XC10aGVcLXN0YWxrc1wtdXNlZFwtaW5cLWRpdmluYXRpb247Civlh7rot68gPCBhXC13YXlcLW91dFwtXChvZlwtYVwtZGlmZmljdWx0XC1zaXR1YXRpb25cLFwtZXRjXCk7CivntITlrpros4foqIrpgJ/njocgPCBjb21taXR0ZWRcLWluZm9ycm1hdGlvblwtcmF0ZVwtXChmcmFtZVwtcmVsYXlcKTsKK+eZveiKseibhyA8IGxvbmdcLW5vc2VkXC1waXRcLXZpcGVyXC1cKGFna2lzdHJvZG9uXC1hY3V0dXNcKTsKK+S4reWFseS4reWkriA8IGNoaW5lc2VcLWNvbW11bmlzdFwtcGFydHlcLWNlbnRyYWxcLWNvbW1pdHRlZTsKK+WNmuiBnuW8t+iomCA8IGhhdmVcLXdpZGVcLWxlYXJuaW5nXC1hbmRcLWFcLXJldGVudGl2ZVwtbWVtb3J5Owor5bqm5pelIDwgc2NyYXRjaFwtb3V0XC1hXC1kaWZmaWN1bHRcLFwtbWVhZ2VyXC1leGlzdGVuY2U7CivnnL7orbDlk6EgPCBtZW1iZXJcLW9mXC10aGVcLXVzXC1ob3VzZVwtb2ZcLXJlcHJlc2VudGF0aXZlczsKK+mfjSA8IGFcLWxlYXRoZXJcLWtuZWVcLXBhZFwtd29yblwtZHVyaW5nXC1zYWNyaWZpY2VzOwor5aCx5qGIIDwgcmVwb3J0XC1hXC1jYXNlXC10b1wtdGhlXC1zZWN1cml0eVwtYXV0aG9yaXRpZXM7Civpj54gPCBhXC1sYXJnZVwtYmVsbFwtdXNlZFwtYXNcLWFcLW11c2ljYWxcLWluc3RydW1lbnQ7Civou44gPCBhXC1icmFzc1wtcGFydHNcLWZvclwtYVwtY2FydFwtaW5cLWFuY2llbnRcLWNoaW5hOwor5YW15rqQIDwgbWFucG93ZXJcLXJlc291cmNlc1wtXChmb3JcLW1pbGl0YXJ5XC1zZXJ2aWNlXCk7CivomYsgPCBhc3BhcmFndXNcLWFcLXZhcmlldHlcLW9mXC1yZWRcLXN0YWxrZWRcLW1pbGxldDsKK+eZvuW5tOWkp+ioiCA8IGFcLXByb2plY3RcLW9mXC12aXRhbFwtYW5kXC1sYXN0aW5nXC1pbXBvcnRhbmNlOwor6YKB56eR6KOhIDwgXChtaWtlXClcLW1jY3VycnlcLVwod2hpdGVcLWhvdXNlXC1zcG9rZXNwZXJzb25cKTsKK+aLlOiLl+WKqemVtyA8IHNwb2lsXC10aGluZ3NcLXRocm91Z2hcLWV4Y2Vzc2l2ZVwtZW50aHVzaWFzbTsKK+WgseWRiuacgyA8IHB1YmxpY1wtbGVjdHVyZVwtXCh3aXRoXC1ndWVzdFwtc3BlYWtlcnNcLFwtZXRjXCk7CivliKnkvK/mm7wgPCBcKGNvbm5lY3RpY3V0XC1zZW5hdG9yXC1qb3NlcGhcLWlcLlwpXC1saWViZXJtYW47Civogq/mma7ntKLmgakgPCBcKGRpcmtcKVwta2VtcHRob3JuZVwtXCh1c1wtc2VuYXRvclwtZnJvbVwtaWRhaG9cKTsKK+W7niA8IHRvXC1wcmVwYXJlXC1ob3JzZXNcLWFuZFwtY2hhcmlvdHNcLWZvclwtYmF0dGxlOwor5amXIDwgYVwtbmV3XC1ib3JuXC1jaGlsZFwtdGhlXC13aGltcGVyXC1vZlwtYW5cLWluZmFudDsKK+WmuiA8IHdpZmVcLW9mXC10aGVcLWxhc3RcLXJ1bGVyXC1vZlwtdGhlXC14aWFcLWR5bmFzdHk7CivlmaAgPCBzb3VuZFwtbWFkZVwtdG9cLWdldFwtYVwtaG9yc2VcLXRvXC1tb3ZlXC1mb3J3YXJkOwor5aSW5a2r5aWz5YWSIDwgZ3JhbmRkYXVnaHRlclwtXChkYXVnaHRlclwtb2ZcLW9uZScnc1wtZGF1Z2hlclwpOwor5pyJ6Zu7IDwgXChvZlwtYVwtZHdlbGxpbmdcKVwtc3VwcGxpZWRcLXdpdGhcLWVsZWN0cmljaXR5Owor55m+5oqY5LiN5pKTIDwga2VlcFwtb25cLWZpZ2h0aW5nXC1pblwtc3BpdGVcLW9mXC1hbGxcLXNldGJhY2tzOwor56We5aWz5bOwIDwgbmFtZVwtb2ZcLWFcLXBlYWtcLWJ5XC1jaGFuZ2ppYW5nXC10aHJlZVwtZ29yZ2VzOwor5LiCIDwgb2JzdHJ1Y3Rpb25cLW9mXC1icmVhdGhcLWFzXC1pdFwtc2Vla3NcLXJlbGVhc2U7Civos4Hoh6ggPCBcKG9mXC1kaXN0aW5ndWlzaGVkXC1ndWVzdHNcKVwtaG9ub3VyXC1teVwtaG91c2U7CivksL8gPCBhXC1raW5kXC1vZlwtc21hbGxcLWZpc2hcLWdyb3duXC1pblwtZnJlc2hcLXdhdGVyOwor5a6J6Lqr56uL5ZG9IDwgc2V0dGxlXC1kb3duXC1hbmRcLWdldFwtb25cLXdpdGhcLW9uZScnc1wtcHVyc3VpdDsKK+SivyA8IG5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLXRvZGF5JydzXC1ob2JlaVwtcHJvdmluY2U7CivkoYggPCB0aGVcLWNyb3NzXC1iYXJcLWF0XC10aGVcLXNpZGVzXC1vZlwtYVwtY2Fycml0YWdlOwor5JSJIDwgc2NhdHRlcmVkXC1vclwtZGlzcGVyc2VkXC1vZlwtZ3Jhc3NcLWFuZFwtdHJlZXM7CivkkZIgPCBhXC1raW5kXC1vZlwtZmFybVwtdG9vbFwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5JCjIDwgc291cFwtbWFkZVwtb2ZcLWN1dHRlZFwtbWVhdFwtbWl4ZWRcLXdpdGhcLWJsb29kOwor5IyuIDwgc2lsa1wtZmFicmljc1wtd2l0aFwtdGhlXC1jb2xvclwtb2ZcLW5ld1wtbGVhdmVzOwor5ISoIDwgZ3JhaW5zXC1wcm9kdWNpbmdcLW5laXRoZXJcLWZsb3dlclwtbm9yXC1mcnVpdDsKK+SEnSA8IHNob3dcLW5vXC1yZXNwZWN0XC10b1wtdGhlXC1zZXJ2aWNlXC1vZlwtd29yc2hpcDsKK+O8rSA8IHRvXC1zdGVhZHlcLWJ5XC1wdXR0aW5nXC1zb21ldGhpbmdcLXVuZGVybmVhdGg7Civju7IgPCBhXC1yaXRlXC1vclwtc2VydmljZVwtZm9yXC1iZWdpbm5pbmdcLW9mXC1hdXR1bW47CivpgIblkJHmk4HloZ7pgJrnn6UgPCBiYWNrd2FyZFwtZXhwbGljaXRcLWNvbmdlc3Rpb25cLW5vdGlmaWNhdGlvbjsKK+e2k+eHn+euoeeQhuWSjOe2reittyA8IG9wZXJhdGlvbnNcLWFkbWluaXN0cmF0aW9uXC1hbmRcLW1haW50ZW5hbmNlOwor46qqIDwgdG9cLXVzZVwtYVwtd29vZGVuXC1wb2xlXC10b1wtc3VwcG9ydFwtc29tZXRoaW5nOwor46KmIDwgd29vZGVuXC1wb3N0XC1vclwtcGlsZVwtZm9yXC10ZXRoZXJpbmdcLWFuaW1hbHM7CivjnKIgPCBhXC1iYWRcLXRlcm1cLWJ5XC13aGljaFwtb25lXC1hZGRyZXNzZXNcLWFcLXdvbWFuOwor45qSIDwgY29uY2VhbGVkXC10aGVcLXN0b2xlblwtZ29vZHNcLWluXC1vbmUnJ3NcLWRyZXNzOwor55m95puJ54eVIDwgcGFpXC1oc2lhb1wteWVuXC1cKGRhdWdodGVyXC1vZlwtcGFpXC1waW5nXC1waW5nXCk7CivkuI3ntpPkuIDkuovkuI3plbfkuIDmmbogPCB5b3VcLWNhbicndFwtZ2Fpblwta25vd2xlZGdlXC13aXRob3V0XC1wcmFjdGljZTsKK+advuS4iyA8IG1hdHN1c2hpdGFcLVwoamFwYW5lc2VcLWVsZWN0cm9uaWNzXC1jb21wYW55XCk7CivkuI3lppkgPCBcKG9mXC1hXC10dXJuXC1vZlwtZXZlbnRzXClcLW5vdFwtdG9vXC1lbmNvdXJhZ2luZzsKK+i4oyA8IHRvXC1zdHVtYmxlXC1hbmRcLWZhbGxcLXByb25lXC1zdGlmZlwtaW5cLWRlYXRoOwor6bu8IDwgZW1icm9pZGVyZWRcLW9mZmljaWFsXC1vclwtc2FjcmlmaWNpYWxcLXJvYmU7Civls4QgPCBhXC1yYW5nZVwtb2ZcLXBlYWtzXC1pblwtc2hhbmRvbmdcLWFuZFwtamlhbmdzdTsKK+WLieW8tyA8IG1hbmFnZVwtXCh0b1wtZG9cLXNvbWV0aGluZ1wpXC13aXRoXC1kaWZmaWN1bHR5Owor5Yil54ShIDwgaGF2ZVwtbm9cLW90aGVyXC1cKGNob2ljZVwsXC1hbHRlcm5hdGl2ZVwsXC1ldGNcKTsKK+S4jeWPr+S4gOS4liA8IGNvbnNpZGVyXC1vbmVzZWxmXC11bmV4Y2VsbGVkXC1pblwtdGhlXC13b3JsZDsKK+mHkeaXpeaIkCA8IGtpbVwtaWxcLXN1bmdcLVwoZm9ybWVyXC1ub3J0aFwta29yZWFuXC1sZWFkZXJcKTsKK+WFrOe0hCA8IGNvbnZlbnRpb25cLVwoaWVcLFwtaW50ZXJuYXRpb25hbFwtYWdyZWVtZW50XCk7Civpl5cgPCBhXC1mcm9udGllclwtcGFzc1wtb3JcLWdhdGVcLXRvXC1zaHV0XC1vclwtY2xvc2U7Civpgr4gPCBhXC1mZXVkYWxcLXN0YXRlXC13aGljaFwtZXhpc3RlZFwtYlwuY1wuNzAwXC00Njk7CivlpKrmpbXlio0gPCBhXC1raW5kXC1vZlwtdHJhZGl0aW9uYWxcLWNoaW5lc2VcLXN3b3JkXC1wbGF5Owor5bm05bqmIDwgeWVhclwtXChlZ1wsXC1zY2hvb2xcLXllYXJcLFwtZmlzY2FsXC15ZWFyXCxcLWV0Y1wpOwor57WV5bCN5pW45a2XIDwgYWJzb2x1dGVcLVwoYXNcLW9wcG9zZWRcLXRvXC1yZWxhdGl2ZVwpXC1udW1iZXI7CivolqkgPCB0cmFuc2xpdGVyYXRpb25cLW9mXC0nJ3NhdCcnXC1pblwtJydib2RoaXNhdHR2YTsKK+ethumghiA8IG9yZGVyXC1vZlwtc3Ryb2tlc1wtb2JzZXJ2ZWRcLWluXC1jYWxsaWdyYXBoeTsKK+iGsCA8IHRvXC1jb29rXC1tZWF0XC1mb3JcLWFcLXNhY3JpZmljZVwtb3JcLW9mZmVyaW5nOwor5omO6YedIDwgdG9cLWdpdmVcLW9yXC1oYXZlXC1hblwtYWN1cHVuY3R1cmVcLXRyZWF0bWVudDsKK+WPuOazlemDqCA8IGp1c3RpY2VcLWRlcGFybWVudFwtXChvZlwtdGhlXC11c1wtZ292ZXJubWVudFwpOwor55GMIDwgYVwtd2hpdGVcLW9wYXF1ZVwtcXVhcnR6XC11c2VkXC1mb3JcLW9ybmFtZW50czsKK+a9nyA8IGxhbmRcLWltcHJlZ25hdGVkXC13aXRoXC1zYWx0XC1mcm9tXC10aGVcLXRpZGU7Civoo73lipEgPCBcKGNoZW1pY2FsXC1vclwtcGhhcm1hY2V1dGljYWxcKVwtcHJlcGFyYXRpb247Civpq5TmnIMgPCBrbm93XC1cKHRocm91Z2hcLWxlYXJuaW5nXC1vclwtYnlcLWV4cGVyaWVuY2VcKTsKK+WBveaJmCA8IGZha2luZ1wtYVwtbW9kZXJuXC1vYmplY3RcLWFzXC1hblwtYW5jaWVudFwtb25lOwor5bqr57SN5Y2XIDwgXChhbmRyZXdcKVwtY3VuYW5hblwtXChhbGxlZ2VkXC1zZXJpYWxcLWtpbGxlclwpOwor5rW36ZecIDwgY3VzdG9tc1wtXChpZVwsXC1ib3JkZXJcLWNyb3NzaW5nXC1pbnNwZWN0aW9uXCk7CivmirHpoK3pvKDnq4QgPCBjb3ZlclwtdGhlXC1oZWFkXC1hbmRcLXNuZWFrXC1hd2F5XC1saWtlXC1hXC1yYXQ7Civpu4Plu7rljZcgPCBqb2huXC1odWFuZ1wtXChkZW1vY3JhdGljXC1wYXJ0eVwtZnVuZHJhaXNlclwpOwor5LWeIDwgYW5jaWVudFwtcHVuaXNobWVudFwtb2ZcLXRhdHRvb2luZ1wtdGhlXC1mYWNlOwor5LG5IDwgYVwtY29uZGltZW50XC1tYWRlXC1mcm9tXC1taW5jZWRcLWZpc2hcLXNhbHRlZDsKK+SvsCA8IHVzZVwtYVwtaGFpclwtcGluXC10b1wtc2V0XC1hbmRcLWRyZXNzXC10aGVcLWhhaXI7CivkrK8gPCB0b1wtaGF2ZVwtY29uZ2VlXC13aXRoXC1mcmllbmRzXC1pblwtb2xkXC10aW1lczsKK+ShiyA8IGRlY29yYXRpb25cLW9uXC10aGVcLW5hdmVcLW9yXC1odWJcLW9mXC1hXC13aGVlbDsKK+SegyA8IHRvXC1yZWxpZXZlXC1vclwtZ2l2ZVwtYWlkXC10b1wtdGhlXC1kaXN0cmVzc2VkOwor5JivIDwgdGhlXC1sYXBlbFwtb3JcLWNvbGxhclwtb2ZcLWFcLWdhcm1lbnRcLW9yXC1yb2JlOwor5JikIDwgYVwtc3dvcmRcLWNvdmVyaW5nXC10b1wtcHJvdGVjdFwtdGhlXC1zY2FiYmFyZDsKK+SRjCA8IGx3aGF0XC1pc1wtbGVmdFwtb3Zlclwtb2ZcLXRoZVwtZm9vZFwtXC1vdmVycmlwZTsKK+SLpyA8IG9ybmFtZW5udHNcLWZvclwtdGhlXC1mcm9udGFsXC1wYXJ0XC1vZlwtc2hvZXM7Civki6MgPCBkZWNvcmF0aW9uc1wtcHV0XC1vblwtdGhlXC1tYW5lXC1vclwtaG9yc2VoYWlyOwor5IiVIDwgdGhlXC1tZXRhbFwtdG9uZ3VlXC1pblwtdGhlXC1yZWVkXC1pbnN0cnVtZW50czsKK+SDtCA8IGFcLXdoZXRzdG9uZVwtdXNlZFwtdG9cLWdyaW5kXC1wcmVjaW91c1wtc3RvbmU7CivkgbwgPCB0b1wtbG9va1wtYnV0XC1zZWVcLW5vdGhpbmdcLVwtXC1cLWFic2VudFwtbWluZGVkOwor47+GIDwgZGFtYWdlXC1ieVwtdGhlXC1wZXN0c1wtdG9cLXRoZVwtcmljZVwtc2VlZGxpbmc7Civju7YgPCBhXC1qYWRlXC10dWJlXC13aXRoXC13aGl0ZVwtYW5kXC1uYXR1cmVcLWNvbG9yczsKK+O7sCA8IGRlY29yYXRlZFwtamFkZVwtb3JcLW9ybmFtZW50XC1vblwtYVwtc2NhYmJhcmQ7Civju6EgPCBhXC1qYWRlXC1yaW5nXC13aXRoXC1hXC1zbWFsbFwtc2VnbWVudFwtY3V0XC1vZmY7CivjroYgPCBlYXZlc1wtc3Byb3V0aW5nXC1mcm9tXC10aGVcLXN0dW1wXC1vZlwtYVwtdHJlZTsKK+OrlCA8IG9uZVwtb2ZcLXRoZVwtZWlnaHRcLWRpYWdyYW1zXC1mb3JcLWRpdmluYXRpb247CivjqrsgPCBhXC1raW5kXC1vZlwtdXRlbnNpbFwtdXNlZFwtdG9cLWxhZGxlXC1vdXRcLXdpbmU7CivjqYogPCB0b1wtcHVsbFwtdXBcLXRoZVwtc2xlZXZlc1wtYW5kXC1zaG93XC10aGVcLWFybXM7Civjp60gPCB0b1wtZ2V0XC1zb21ldGhpbmdcLXdpdGhcLWJvdGhcLXJhaXNpbmdcLWhhbmRzOwor46eaIDwgdGhlXC1nZXN0dXJlXC1vZlwtdXNpbmdcLWFuXC1pbmRlbnRlZFwtY29udGFpbjsKK+OnhiA8IHRvXC1jb3Zlclwtc29tZXRoaW5nXC13aXRoXC1hXC1waWVjZVwtb2ZcLWNsb3RoOwor55m+5bui5L+x6IiIIDwgYWxsXC1uZWdsZWN0ZWRcLXRhc2tzXC1hcmVcLWJlaW5nXC11bmRlcnRha2VuOwor46GLIDwgYVwta2luZFwtb2ZcLWhlYWRkcmVzc1wtZm9yXC1tYW5cLWluXC1vbGRcLWNoaW5hOwor46C4IDwgdGhlXC1sYXBlbFwtb3JcLWNvbGxvclwtb2ZcLWFcLWdhcm1lbnRcLW9yXC1yb2JlOwor45yaIDwgYVwtbG9jYWxcLWdvdmVybm1lbnRcLXBvc3RcLWluXC1hbmNpZW50XC10aW1lczsKK+OZnyA8IGxvd1wtbHlpbmdcLW9uXC10aGVcLXNpZGVcLW9mXC1hXC1yaXZlclwtb3JcLWxha2U7Civpgb/lr6blsLHomZsgPCBzdGF5XC1jbGVhclwtb2ZcLXRoZVwtZW5lbXknJ3NcLW1haW5cLWZvcmNlXC1hbmQ7CivkuI3msYLnlJrop6MgPCBub3RcLXNlZWtcLXRvXC11bmRlcnN0YW5kXC10aGluZ3NcLXRob3JvdWdobHk7CivnopHoqJggPCBhXC1yZWNvcmRcLW9mXC1ldmVudHNcLWluc2NyaWJlZFwtb25cLWFcLXRhYmxldDsKK+S4reWkruWFqOacgyA8IHBsZW5hcnlcLXNlc3Npb25cLW9mXC10aGVcLWNlbnRyYWxcLWNvbW1pdHRlZTsKK+WMhei+piA8IHRha2VcLWNhcmVcLW9mXC1ldmVyeXRoaW5nXC1jb25jZXJuaW5nXC1hXC1qb2I7Civlj6TmnbDmi4nniL4gPCBcKGlcLlwta1wuXClcLWd1anJhbFwtXChwcmltZVwtbWluaXN0ZXJcLW9mXC1pbmRpYVwpOwor6buD5bKp5bO2IDwgaHVhbmd5YW5cLWlzbGFuZFwtXChpblwtdGhlXC1zb3V0aFwtY2hpbmFcLXNlYVwpOwor5qmf6Zec5aCxIDwgb2ZmaWNpYWxcLVwoZ292ZXJubWVudFwtb3BlcmF0ZWRcKVwtbmV3c3BhcGVyOwor5YmN5ZCR5pOB5aGe6YCa55+lIDwgZm9yd2FyZFwtZXhwbGljaXRcLWNvbmdlc3Rpb25cLW5vdGlmaWNhdGlvbjsKK+WHuumdoiA8IGFjdFwtaW5cLWFcLVwob2ZmaWNpYWxcLW9yXC1wZXJzb25hbFwpXC1jYXBhY2l0eTsKK+WWjyA8IHJlc3BlY3RmdWxcLXJlcGx5XC1vZlwtYXNzZW50XC10b1wtc3VwZXJpb3JzOwor56yPIDwgdGFibGV0XC1oZWxkXC1ieVwtc29tZW9uZVwtaGF2aW5nXC1hdXRob3JpdHk7CivotrwgPCBjYWxsb3VzXC1za2luXC1vblwtaGFuZHNcLW9yXC1mZWV0XC5cLWJsaXN0ZXJzOwor55u46ZqUIDwgYmVcLXNlcGFyYXRlZFwtYnlcLVwoZGlzdGFuY2VcLW9yXC10aW1lXCxcLWV0Y1wpOwor576O5ZyL5buj5pKt5YWs5Y+4IDwgYWJjXC1cKGFtZXJpY2FuXC1icm9hZGNhc3RpbmdcLWNvcnBvcmF0aW9uXCk7CivmmYLloLEgPCBcInRpbWVzXCJcLVwobmV3c3BhcGVyXCxcLWVnXCxcLW5ld1wteW9ya1wtdGltZXNcKTsKK+mAmuiIqiA8IGNvbm5lY3RlZFwtYnlcLWFpclx8c2VhXC10cmFmZmljXC1vclwtc2VydmljZTsKK+aguOatpuWZqOeglOijveioiOWKgyA8IG51Y2xlYXJcLXdlYXBvbnNcLVwobWFudWZhY3R1cmluZ1wpXC1wcm9ncmFtOwor5Ya35reh6Zec5L+CIDwgY29sZFwtcmVsYXRpb25zXC1cKGVcLmdcLlwtYmV0d2VlblwtY291bnRyaWVzXCk7CivkuI3kuobkuobkuYsgPCBzZXR0bGVcLWFcLW1hdHRlclwtYnlcLWxlYXZpbmdcLWl0XC11bnNldHRsZWQ7CivpgbflsYUgPCB0b1wtbW92ZVwtXChmcm9tXC1vbmVcLXJlc2lkZW5jZVwtdG9cLWFub3RoZXJcKTsKK+mlnSA8IHRvXC1mZWVkXC1hblwtaW5mYW50XC1ieVwtaGFuZFwtc3RlYW1lZFwtYnJlYWQ7CivkuI3ljbPkuI3pm6IgPCBiZVwtbmVpdGhlclwtdG9vXC1mYW1pbGlhclwtbm9yXC10b29cLWRpc3RhbnQ7CivnuL3mlL/msrvpg6ggPCBcKG1pbGl0YXJ5XClcLWdlbmVyYWxcLXBvbGl0aWNhbFwtZGVwYXJ0bWVudDsKK+WTiOijoeajruWPsuWvhueJuSA8IGhhcnJpc29uXC1zY2htaXR0XC1cKGFwb2xsb1wtMVwtN1wtYXN0cm9uYXV0XCk7CivlhaXlrbjnjocgPCBwZXJjZW50YWdlXC1vZlwtY2hpbGRyZW5cLXdob1wtZW50ZXJcLXNjaG9vbDsKK+ijjSA8IGFcLWJvcmRlclwtb3JcLWJhbmRcLW9uXC10aGVcLWVkZ2VcLW9mXC1hXC1kcmVzczsKK+W5tOS7oyA8IGFcLWRlY2FkZVwtb2ZcLWFcLWNlbnR1cnlcLVwoZWdcLFwtdGhlXC1zaXh0aWVzXCk7CivnlaLlhbblip/kuo7kuIDlvbkgPCBhY2NvbXBsaXNoXC10aGVcLXdob2xlXC10YXNrXC1hdFwtb25lXC1zdHJva2U7CivljYrot6/lh7rlrrYgPCBzd2l0Y2hcLXRvXC1hXC1qb2JcLW9uZVwtd2FzXC1ub3RcLXRyYWluZWRcLWZvcjsKK+exqiA8IGFcLXdlaXJcLW9mXC1iYW1ib29cLXRvXC1jYXRjaFwtZmlzaFwtb3JcLWNyYWJzOwor55iyIDwgc3Bhc21zXC1vclwtY29udnVsc2lvbnNcLWluXC15b3VuZ1wtY2hpbGRyZW47CivnkbIgPCB0aW5rbGluZ1wtc291bmRcLXRpbmtsaW5nXC1vZlwtcGVuZGFudFwtZ2VtczsKK+eXheavkuWtuOWutiA8IHZpcm9sb2dpc3RcLVwocGVyc29uXC13aG9cLXN0dWRpZXNcLXZpcnVzZXNcKTsKK+W7uueri+ato+W8j+WkluS6pOmXnOS/giA8IGZvcm1hbGx5XC1lc3RhYmxpc2hcLWRpcGxvbWF0aWNcLXJlbGF0aW9uczsKK+iMheiHuumFkiA8IG1hb3RhaVwtb3JcLW1haXRhaVwtXChjaGluZXNlXC1zdHJvbmdcLWRyaW5rXCk7CivntZDnpL7oh6rnlLEgPCBcKGNvbnN0aXR1dGlvbmFsXClcLWZyZWVkb21cLW9mXC1hc3NvY2lhdGlvbjsKK+W8nSA8IHRoZVwtcGFydFwtb2ZcLWFcLWJvd1wtZ3Jhc3BlZFwtd2hlblwtc2hvb3Rpbmc7Civllqznn7MgPCBxaWFvXC1zaGlcLVwoY2hpbmVzZVwtbGVhZGVyc2hpcFwtY29udGVuZGVyXCk7CivosY7piaQgPCBcKHN0cmFpZ2h0XC1kb3duXC1ob29rZWRcLWNoYXJhY3Rlclwtc3Ryb2tlXCk7CivkpZwgPCBwcm90ZWN0aXZlXC1tZXRhbFwtb25cLXRoZVwtYXhpc1wtb2ZcLWFcLXdoZWVsOwor5oiQ5pysIDwgXChtYW51ZmFjdHVyaW5nXCxcLXByb2R1Y3Rpb25cLFwtZXRjXC5cKVwtY29zdHM7CivkmZYgPCBhXC1jbG90aFwtdG9cLWNhcnJ5XC1hblwtaWluZmFudFwtb25cLXRoZVwtYmFjazsKK+eOi+e+suS5iyA8IG5hbWVcLW9mXC1hXC1wZXJzb25cLFwtYVwtZmFtb3VzXC1jYWxsaWdyYXBoZXI7Civkj6sgPCBpblwtYmV0d2Vlblwtb2ZcLXRoZVwtYWJkb21lblwtYW5kXC10aGVcLXNwaW5lOwor5I2JIDwgdHJhY2VzXC1vclwtbWFya3NcLW9mXC1pbmNvbXBsZXRlXC1vclwtZGFtYWdlOwor5Iy4IDwgZmluZVwtc2lsa1wtZmFicmljXC1vZlwtYnJpZ2h0XC13aGl0ZVwtY29sb3VyOwor6YKK6KeS56eRIDwgbGVmdG92ZXJcLWJpdHNcLWFuZFwtcGllY2VzXC1cKG9mXC1pbmR1c3RyaWFsOwor5Iu/IDwgYVwtZGVjb3JhdGl2ZVwta25vdFwtbWFkZVwtb2ZcLWNvbG9yZnVsXC1zaWxrOwor5IicIDwgYVwtdGhyZWFkXC11c2VkXC1ieVwtY2FycGVudGVyc1wtZm9yXC1tYXJraW5nOwor5IiGIDwgYVwtc2hhbGxvd1wtYW5kXC1sb25nXC1zaGFwZWRcLWJhbWJvb1wtYmFza2V0Owor5Luj55CGIDwgYWN0aW5nXC1cKHRlbXBvcmFyaWx5XC1maWxsaW5nXC1hXC1wb3NpdGlvblwpOwor47+5IDwganV0dGluZ1wtb25cLXRoZVwtZXBpZGVybWlzXC1vclwtdGhlXC1jdXRpY2xlOwor47yrIDwgZWFydGhlbndhcmVcLW9yXC1wb3R0ZXJ5XC13aXRoXC1iaWdcLW9wZW5pbmc7CivjtbsgPCB0b1wtcGVyc3BpcmVcLWZyb21cLWVtYmFycmFzc21lbnRcLW9yXC1zaGFtZTsKK+iUk+W7tuWFqOWciyA8IHRvXC1zcHJlYWRcLXRocm91Z2hvdXRcLXRoZVwtZW50aXJlXC1jb3VudHJ5Owor462pIDwgYVwta2luZFwtb2ZcLXRyZWVcLWNhblwtYmVcLXVzZWRcLWFzXC1keWVcLXN0dWZmOwor46OZIDwgdG9cLXdhbGtcLWluXC1hblwtZWFzeVwtYW5kXC1sZWlzdXJlbHlcLW1hbm5lcjsKK+OiqiA8IHRvXC1kcmF3XC1hXC1mdWxsXC1ib3dcLXRvXC1haW1cLWF0XC10aGVcLXRhcmdldDsKK+WuouW7syA8IGRyYXdpbmdcLXJvb21cLVwocm9vbVwtZm9yXC1hcnJpdmluZ1wtZ3Vlc3RzXCk7CivjmIogPCB0aGVcLWFicnVwdFwtYW5kXC1oYXN0eVwtc291bmRcLW9mXC10aGVcLWNyb3dkOwor45auIDwgYW5cLWludGVyamVjdGlvblwtdXNlZFwtaW5cLXBvZW1zXC1hbmRcLXNvbmdzOwor45SuIDwgYVwta2luZFwtb2ZcLWFuaW1hbFwtd2hpY2hcLWxvb2tzXC1saWtlXC1hXC1yYXQ7Civok67pnKcgPCB3YXhcLWFwcGxlXC1cKGFcLXJlZGRpc2hcLXBlYXJcLXNoYXBlZFwtZnJ1aXRcKTsKK+mhjOewvSA8IHRvXC13cml0ZVwtdGhlXC10aXRsZVwtb2ZcLWFcLWJvb2tcLW9uXC1hXC1sYWJlbDsKK+eZvuaAneS4jeinoyA8IHJlbWFpblwtcHV6emxlZFwtYWZ0ZXJcLXBvbmRlcmluZ1wtb3Zlclwtc3RoOwor5Y2K5Yue5YuV5YqbIDwgb25lXC1hYmxlXC10b1wtZG9cLWxpZ2h0XC1tYW51YWxcLWxhYm91clwtb25seTsKK+e4veW+jOWLpOmDqCA8IFwobWlsaXRhcnlcKVwtZ2VuZXJhbFwtbG9naXN0aWNzXC1kZXBhcnRtZW50Owor5LiA5ZyL5YWp5Yi2IDwgb25lXC1jb3VudHJ5XCxcLXR3b1wtc3lzdGVtc1wtXChjaGluYVwtdGFpd2FuXCk7Civmk7rkuovlr6borJvpgZPnkIYgPCBwcmVzZW50XC10aGVcLWZhY3RzXC1hbmRcLXJlYXNvblwtdGhpbmdzXC1vdXQ7CivogIHkuowgPCB0aGVcLXNlY29uZFwtY2hpbGRcLW9yXC1icm90aGVyXC1cKG9yXC1zaXN0ZXJcKTsKK+S4reWNlyA8IFwoYWJicmV2aWF0aW9uXC1mb3JcKVwtY2hpbmFcLVwtXC1zb3V0aFwtYWZyaWNhOwor6Zi/5piM5pePIDwgdGhlXC1hY2hhbmdcLW5hdGlvbmFsaXR5XC1saXZpbmdcLWluXC15dW5uYW47CivniYjmrKEgPCB0aGVcLW9yZGVyXC1pblwtd2hpY2hcLWVkaXRpb25zXC1hcmVcLXByaW50ZWQ7CivllacgPCBpbnRlcmplY3Rpb25cLW9mXC1hcHByb3ZhbFwtb3JcLWFkbWlyYXRpb247CivmjbogPCB0b1wtcHJlc3NcLWRvd25cLWhlYXZpbHlcLXdpdGhcLXRoZVwtZmluZ2VyczsKK+WCoyA8IHRoZVwtZGFpXC1taW5vcml0eVwtbGl2aW5nXC1pblwtc291dGhcLWNoaW5hOwor6bipIDwgYVwtYmlyZFwtcmVzZW1ibGluZ1wtdGhlXC1zZWNyZXRhcnlcLWZhbGNvbjsKK+a3nSA8IG5hbWVcLW9mXC1hblwtYWZmbHVlbnRcLW9mXC10aGVcLXBveWFuZ1wtbGFrZTsKK+mDhSA8IHRvXC1nb1wtdXBcLXRvXC5cLWZsb3VyaXNoaW5nXC1hXC1zdXBlcmxhdGl2ZTsKK+i9qyA8IGFcLWJsb2NrXC10aGF0XC1rZWVwc1wtYVwtd2hlZWxcLWZyb21cLW1vdmluZzsKK+W2tyA8IGFcLXJhbmdlXC1vZlwtbW91bnRhaW5zXC1pblwtaHVuYW5cLXByb3ZpbmNlOwor6ayyIDwgdHlwZVwtb2ZcLWNhbGRyb25cLXdpdGhcLXRocmVlXC1ob2xsb3dcLWxlZ3M7CivliJYgPCBjdXR0aW5nXC1vZmZcLWZlZXRcLWFzXC1mb3JtXC1vZlwtcHVuaXNobWVudDsKK+epuCA8IHRoZVwtZ2xvb21cLW9mXC10aGVcLWdyYXZlXC1hXC10b21iXC1vclwtZ3JhdmU7CivomIUgPCBhXC1mcmFncmFudFwtcGxhbnRcLXRoZVwtcm9vdFwtaXNcLW1lZGljaW5hbDsKK+eZvemgreirp+iAgSA8IGxpdmVcLXRvXC1yaXBlXC1vbGRcLWFnZVwtaW5cLWNvbmp1Z2FsXC1ibGlzczsKK+WPl+WCtyA8IHN1ZmZlclwtaW5qdXJpZXNcLVwoaW5cLWFuXC1hY2NpZGVudFwsXC1ldGNcLlwpOwor6KiC56uLIDwgYWdyZWVcLXRvXC1cKHRyZWF0eVwsXC1jb250cmFjdFwsXC1hZ3JlZW1lbnRcKTsKK+Wkj+abhiA8IHRoZVwtdHJhZGl0aW9uYWxcLWNoaW5lc2VcLWx1bmFyXC1jYWxlbmRhcjsKK+aIkOWNg+S4iuiQrCA8IGJ5XC10aGVcLXRob3VzYW5kc1wtYW5kXC10ZW5zXC1vZlwtdGhvdXNhbmRzOwor5bir56+EIDwgbm9ybWFsXC1cKGVnXCxcLWJlaWppbmdcLW5vcm1hbFwtdW5pdmVyc2l0eVwpOwor5L2p5rSb6KW/IDwgXChuYW5jeVwpXC1wZWxvc2lcLVwobWVtYmVyXC1vZlwtdXNcLWNvbmdyZXNzXCk7CivpqYYgPCB1c2VkXC1pblwtdHJhbnNsaXRlcmF0aW5nXC1idWRkaGlzdFwtYm9va3M7Civpp48gPCBvZmZzcHJpbmdcLW9mXC1hXC1zdGFsbGlvblwtYW5kXC1hXC1zaGVcLW11bGU7Civlu6PloLQgPCBhXC1wdWJsaWNcLXNxdWFyZVwtXChlZ1wsXC10aWFuYW5tZW5cLXNxdWFyZVwpOwor6YmMIDwgdGhlXC1iZWxsc1wtb25cLXRoZVwtY2FydFwtaW5cLWFuY2llbnRcLWNoaW5hOwor6KOc56WoIDwgYnV5XC1vbmUnJ3NcLXRpY2tldFwtYWZ0ZXJcLXRoZVwtbm9ybWFsXC10aW1lOwor55m854eSIDwgaGF2ZVwtYVwtaGlnaFwtdGVtcGVyYXR1cmVcLVwoZnJvbVwtaWxsbmVzc1wpOwor6KmnIDwgdG9cLWV4YW1pbmVcLWludG9cLWp1ZGljaWFsbHlcLXRvXC1maW5kXC1vdXQ7CivntrMgPCBhXC1jbG90aFwtdG9cLWNhcnJ5XC1hblwtaW5mYW50XC1vblwtdGhlXC1iYWNrOwor57aWIDwgdGhlXC1oYW5naW5nXC1mbGFwXC1pblwtdGhlXC1mcm9udFwtb2ZcLWFcLWhhdDsKK+elqyA8IHRyaWVubmlhbFwtc2FjcmlmaWNlXC10b1wtb25lJydzXC1hbmNlc3RvcnM7Civnm4blnLAgPCBiYXNpblwtXChsb3dcLWx5aW5nXC1nZW9ncmFwaGljYWxcLWZlYXR1cmVcKTsKK+ejuyA8IGFcLXRyaWJ1dGFyeVwtb2ZcLXRoZVwtd2VpXC1yaXZlclwtaW5cLXNoYW54aTsKK+aJi+i3oSA8IHNiXC4nJ3NcLW9yaWdpbmFsXC1oYW5kd3JpdGluZ1wtb3JcLXBhaW50aW5nOwor55Kn6YKEIDwgcmV0dXJuXC1cKGFcLWJvcnJvd2VkXC1vYmplY3RcKVwtd2l0aFwtdGhhbmtzOwor5LiN5a6j6ICM5oiwIDwgb3BlblwtaG9zdGlsaXRpZXNcLXdpdGhvdXRcLWRlY2xhcmluZ1wtd2FyOwor5ZyL6Zqb6Zu75L+h6IGv55ufIDwgaW50ZXJuYXRpb25hbFwtdGVsZWNvbW11bmljYXRpb25zXC11bmlvbjsKK+S4jemBoOWNg+mHjCA8IG1ha2VcLWxpZ2h0XC1vZlwtdHJhdmVsbGluZ1wtYVwtdGhvdXNhbmRcLWxpOwor5pa0IDwgdGhlXC1zb3VuZFwtb2ZcLXdhdGVyXC1mbG93aW5nXC1hbW9uZ1wtcm9ja3M7CivlronlsYXmqILmpa0gPCBsaXZlXC1hbmRcLXdvcmtcLWluXC1wZWFjZVwtYW5kXC1jb250ZW50bWVudDsKK+ihqOWmuSA8IGZlbWFsZVwtY291c2luXC13aXRoXC1hXC1kaWZmZXJlbnRcLXN1cm5hbWU7CivltJEgPCBrdW5sdW5cLW1vdW50YWluc1wtaW5cLWppYW5nXC1zdVwtcHJvdmluY2VcLjsKK+aLhuaVoyA8IHRvXC1icmVha1wtdXBcLVwoYVwtbWFycmlhZ2VcLFwtZmFtaWx5XCxcLWV0Y1wuXCk7CivlkJDpra/nlaogPCB0aGVcLXR1cmZhblwtYmFzaW5cLFwtaW5cLXhpbmppYW5nXC1wcm92aW5jZTsKK+WCmeWTgSA8IG1hY2hpbmVcLXBhcnRzXC1vclwtdG9vbHNcLWtlcHRcLWluXC1yZXNlcnZlOwor5LCYIDwgdG9cLWtpbGxcLWJ5XC1oYW5naW5nXC1vclwtdG9cLXN0cmFuZ3VsYXRpb247CivkrpcgPCB3aGl0ZVwtZnJvbVwtZm9yZWhlYWRcLXRvXC1saXBzXC1vZlwtYVwtaG9yc2U7CivkqrIgPCBhbmNpZW50XC1wdW5pc2htZW50XC1vZlwtc2hhdmluZ1wtdGhlXC1oZWFkOwor5Km4IDwgZmluZVwtd29vbGVuXC1ibGFua2V0XC1vblwtdG9wXC1vZlwtYVwtc2FkZGxlOwor5KmrIDwgYVwtdW5pdFwtdG9cLWNvdW50XC1zaG9lc1wtaW5cLWFuY2llbnRcLXRpbWVzOwor5KaFIDwgYVwta2luZFwtb2ZcLXdlYXBvblwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5KWQIDwgY29va2luZ1wtdXRlbnNpbHNcLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+SihyA8IGFcLXNvblwtd2hvXC1pc1wtbm90XC1zb1wtZ29vZFwtYXNcLWhpc1wtZmF0aGVyOwor5JuXIDwgdG9cLXByeVwtaW50b1wtb3JcLWV4cG9zZVwtYW5vdGhlcicnc1wtc2VjcmV0Owor5JqFIDwgdG9cLWxvb2tcLWFmdGVyXC1ob21lXC1vclwtZG9tZXN0aWNcLWFmZmFpcnM7CivkmKggPCBzaG9ydFwtbGVnZ2luZ3NcLWRyYXduXC1vdmVyXC10aGVcLXRyb3VzZXJzOwor5Ja/IDwgYVwta2luZFwtb2ZcLWNsYW1cLXdpdGhcLXRoaWNrXC13aGl0ZVwtc2hlbGxzOwor5JWwIDwgYVwtc2Vjb25kXC1uYW1lXC1mb3JcLXJoaXpvbWVcLW9mXC13aW5kXC13ZWVkOwor5JOtIDwgd2VlZFwtb3JcLWdyYXNzXC13aXRoXC1uYXJyb3dcLXRoaWNrXC1nbGFkZXM7CivljYrohKvnlKIgPCBwYXJ0bHlcLXJlbGVhc2VkXC1mcm9tXC1wcm9kdWN0aXZlXC1sYWJvdXI7CivkjbsgPCB5b3VuZ1wtZ29hdFwtb2ZcLXNoZWVwXC11bmRlclwtb25lXC15ZWFyXC1vbGQ7CivkjaYgPCBhXC1raW5kXC1vZlwtdHVyYmFuXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7CivkjLkgPCBhXC1nYXJtZW50XC1vZlwtb25lXC1jb2xvdXJcLXdpdGhcLW5vXC1saW5pbmc7CivkuI3lj6/lkIzml6XogIzoqp4gPCBjYW5ub3RcLWJlXC1tZW50aW9uZWRcLWluXC10aGVcLXNhbWVcLWJyZWF0aDsKK+SEqiA8IGhhbmdpbmdcLWRvd25cLW9mXC10aGVcLWVhcnNcLW9mXC10aGVcLWdyYWluczsKK+SEjSA8IHllYXJcLWVuZFwtc2FjcmlmaWNlXC1vZlwtdGhlXC16aG91XC1keW5hc3R5Owor472gIDwgY29ubmVjdGlvblwtb2ZcLXRoZVwtZGl0Y2hlc1wtb3JcLXdhdGVyd2F5czsKK+O8riA8IHRvXC1ydWJcLW91dFwtdGhlXC1maWx0aFwtd2l0aFwtYnJva2VuXC10aWxlczsKK+OrqSA8IHRoZVwtZmlyc3RcLW9mXC10aGVcLWZvdXJcLXNlYXNvblwtXC1cLVwtc3ByaW5nOwor46SdIDwgcGFscGl0YXRpb25cLW9yXC1mbHV0dGVyaW5nXC1vZlwtdGhlXC1oZWFydDsKK+OfjCA8IGFcLW1vdW50YWluXC1pblwtdG9kYXknJ3NcLXNpY2h1YW5cLXByb3ZpbmNlOwor45SvIDwgYVwtbGFyZ2VcLWJhc2tldFwtZm9yXC1ob2xkaW5nXC1jb29rZWRcLXJpY2U7Civpppbku7sgPCBmaXJzdFwtcGVyc29uXC10b1wtYmVcLWFwcG9pbnRlZFwtdG9cLWFcLXBvc3Q7CivnuL3mm7joqJggPCBnZW5lcmFsXC1zZWNyZXRhcnlcLVwob2ZcLWNvbW11bmlzdFwtcGFydHlcKTsKK+mDqOmVtyA8IGhlYWRcLW9mXC1hXC1cKGdvdmVybm1lbnRcLFwtZXRjXClcLWRlcGFydG1lbnQ7Civmr5Tph48gPCB0YWtlXC1yb3VnaFwtbWVhc3VyZW1lbnRzXC1cKHdpdGhcLXRoZVwtaGFuZDsKK+mBjemrlOmxl+WCtyA8IGNvdmVyZWRcLWFsbFwtb3Zlclwtd2l0aFwtY3V0c1wtYW5kXC1icnVpc2VzOwor56yZIDwgc21hbGxcLWdvdXJkXC1zaGFwZWRcLW11c2ljYWxcLWluc3RydW1lbnQ7Civmu5UgPCBhblwtYW5jaWVudFwtc3RhdGVcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivplZsgPCBsYXJnZVwtYmVsbFwtdXNlZFwtYXNcLW11c2ljYWxcLWluc3RydW1lbnQ7CivorrUgPCBhblwtaW50ZXJqZWN0aW9uXC11c2VkXC1leHByZXNzXC1zdXJwcmlzZTsKK+azlCA8IHdhdGVyXC1mcm9tXC13YXNoaW5nXC1yaWNlXC10b1wtYm9pbFwtdGhpY2s7CivnmJAgPCB0b1wtZGllXC1pblwtcHJpc29uXC1mcm9tXC1jb2xkXC1hbmRcLWh1bmdlcjsKK+ajvCA8IGJlYW1zXC1pblwtdGhlXC1yb29mXC1vZlwtYVwtaG91c2VcLWNvbmZ1c2VkOwor5pWZ5o6I55Wi56uf5piv5pWZ5o6IIDwgcHJvZmVzc29yc1wtYXJlXC1cKGFmdGVyXC1hbGxcKVwtcHJvZmVzc29yczsKK+eZvui2s+S5i+ifsuatu+iAjOS4jeWDtSA8IGFcLWNlbnRpcGVkZVwtZGllc1wtYnV0XC1uZXZlclwtZmFsbHNcLWRvd247CivljZrmhJsgPCB1bml2ZXJzYWxcLWZyYXRlcm5pdHlcLVwob3JcLWJyb3RoZXJob29kXCk7CivmlZfngasgPCByZWxpZXZlXC1pbmZsYW1tYXRpb25cLW9yXC1pbnRlcm5hbFwtaGVhdDsKK+e2k+eHnyA8IGVuZ2FnZVwtaW5cLVwoYVwtYnVzaW5lc3NcLWFjdGl2aXR5XCxcLWV0Y1wuXCk7Civpm4bmiJAgPCBpbnRlZ3JhdGVkXC1cKGFzXC1pblwtaW50ZWdyYXRlZFwtY2lyY3VpdFwpOwor6bqFIDwgYVwtc21hbGxcLXNwb3R0ZWRcLWRlZXJcLWZvdW5kXC1pblwtblwuY2hpbmE7Civlhafmh67lpJbmgqMgPCBkb21lc3RpY1wtc3RyaWZlXC1hbmRcLWZvcmVpZ25cLWFncmVzc2lvbjsKK+WuieWFqOiIh+S6pOaPm+WnlOWToeacgyA8IHNlY3VyaXRpZXNcLWFuZFwtZXhjaGFuZ2VcLWNvbW11bmljYXRpb247CivmlL/lp5QgPCBwb2xpdGljYWxcLWNvbW1pc3NhclwtXCh3aXRoaW5cLXRoZVwtYXJteVwpOwor5rKI5ZyL5pS+IDwgY2hpbmVzZVwtZm9yZWlnblwtbWluaXN0cnlcLXNwb2tlc3BlcnNvbjsKK+e3qOWwjiA8IHdyaXRlXC1hbmRcLWRpcmVjdFwtXChhXC1wbGF5XCxcLWZpbG1cLFwtZXRjXC5cKTsKK+ihjOmnmyA8IFwodmVoaWNsZXNcLFwtZXRjXC5cKVwtdHJhdmVsXC1hbG9uZ1wtYVwtcm91dGU7CivlhbXnqK4gPCBcKG1pbGl0YXJ5XClcLWJyYW5jaFwtb2ZcLXRoZVwtYXJtZWRcLWZvcmNlczsKK+mYvCA8IHRoZVwtc3RlcHNcLWxlYWRpbmdcLXRvXC10aGVcLWVhc3Rlcm5cLWRvb3I7CivpgLzlrq4gPCBmb3JjZVwtdGhlXC1raW5nXC1vclwtZW1wZXJvclwtdG9cLWFiZGljYXRlOwor6LyXIDwgYVwtY3Jvc3NcLWJhclwtYXRcLWVuZFwtb2ZcLWFcLWNhcnJpYWdlXC1wb2xlOwor6Iiq6KGMIDwgc2FpbFwtb3JcLWZseVwtXChpblwtYWlyXCxcLXdhdGVyXCxcLW9yXC1zcGFjZVwpOwor6KmOIDwgaW50ZXJqZWN0aW9uXC11c2VkXC10b1wtZXhwcmVzc1wtc3VycHJpc2U7CivnvIwgPCBjb2Fyc2VcLWNvdHRvblwtY2xvdGhcLXVzZWRcLWZvclwtbW91cm5pbmc7CivnoZwgPCB0aGVcLXNvdW5kXC1vZlwtc3RvbmVzXC1rbm9ja2luZ1wtdG9nZXRoZXI7Civnm7jkv6EgPCBiZVwtY29udmluY2VkXC1cKHRoYXRcLXNvbWV0aGluZ1wtaXNcLXRydWVcKTsKK+eKiSA8IGFuXC1veFwtd2l0aFwteWVsbG93XC1oYWlyXC1hbmRcLWJsYWNrXC1saXBzOwor5ouU56enIDwgcHVsbFwtdXBcLXNlZWRsaW5nc1wtXChmb3JcLXRyYW5zcGxhbnRpbmdcKTsKK+eFnSA8IHR3aXN0ZWRcLXBhcGVyXC1mb3JcLWxpZ2h0aW5nXC1jaWdhcmV0dGVzOwor5omL6KOhIDwgXChhXC1zaXR1YXRpb25cLWlzXClcLWluXC1cKHNvbWVvbmUnJ3NcKVwtaGFuZHM7CivmjZXmkoggPCBmaXNoXC1mb3JcLVwoYXF1YXRpY1wtYW5pbWFsc1wtYW5kXC1wbGFudHNcKTsKK+ephuahguiLsSA8IG11XC1ndWlcLXlpbmdcLVwobmFtZVwtb2ZcLWFcLXdvbWFuXC13YXJyaW9yXCk7CivnsL3lkI0gPCB0b1wtc2lnblwtXChvbmUnJ3NcLW5hbWVcLXdpdGhcLWFcLXBlblwsXC1ldGNcLlwpOwor5r+f5Y2XIDwgamknJ25hblwtXChjYXBpdGFsXC1vZlwtc2hhbmRvbmdcLXByb3ZpbmNlXCk7CivluKwgPCB0aGVcLXNraXJ0XC1vZlwtYVwtbGFkeScnc1wtZHJlc3NcLXBldHRpY29hdDsKK+W1oCA8IGFcLXZhbGxleVwtd2l0aFwtYVwtc3RyZWFtXC1pblwtaXRcLlwtYVwtZ29yZ2U7CivomZvmk6zpgJrpgZPmqJnoqoznrKYgPCB2aXJ0dWFsXC1jaGFubmVsXC1jb25uZWN0aW9uXC1pZGVudGlmaWVyOwor5bGP5qKdIDwgc2V0XC1vZlwtXCh1c3VhbGx5XC1mb3VyXClcLWhhbmdpbmdcLXNjcm9sbHM7CivlravlpbPlhZIgPCBncmFuZGRhdWdodGVyXC1cKGRhdWdodGVyXC1vZlwtb25lJydzXC1zb25cKTsKK+eptuernyA8IGFmdGVyXC1hbGxcLVwod2hlblwtYWxsXC1pc1wtc2FpZFwtYW5kXC1kb25lXCk7Civpjq7msZ8gPCB6aGVuamlhbmdcLVwoY2l0eVwpXCxcLWluXC1qaWFuZ3N1XC1wcm92aW5jZTsKK+SxlyA8IGFcLWxvbmdcLW5hcnJvd1wtZmlzaFwtdHJpY2hpdXJ1c1wtYXJtYXR1czsKK+SxlCA8IGFcLWxvbmdcLW5hcnJvd1wtYW5kXC1zaWx2ZXJcLWNvbG9yZWRcLWZpc2g7CivkqpMgPCBhXC1tZXRhbFwtb3JuYW1lbnRcLW9uXC1zb21lXC1raW5kXC1vZlwtYmVsdDsKK+SomSA8IHRvXC1yYWluXC1jYXRzXC1hbmRcLWRvZ3NcLWZvclwtYVwtbG9uZ1wtdGltZTsKK+SmiiA8IGFuXC1hcHBsaWFuY2VcLWZvclwtd2Fsa2luZ1wtb25cLXRoZVwtc2FuZHM7CivkpYIgPCB0aGVcLXNoYXJwXC1lZGdlXC1vZlwtYVwtc2hvdmVsXC1vclwtYVwtc3BhZGU7CivkoZUgPCB0aGVcLXJlYXJcLXBsYXRmb3JtXC1vZlwtYVwtbGlnaHRcLWNhcnJpYWdlOwor5JyUIDwgdG9cLXNwZWFrXC1vblwtdGhlXC1pZGVhc1wtb2ZcLXNvbWVvbmVcLWVsc2U7Civmsrvnl4XmlZHkurogPCBjdXJlXC10aGVcLXNpY2tuZXNzXC10b1wtc2F2ZVwtdGhlXC1wYXRpZW50Owor5JagIDwgYVwta2luZFwtb2ZcLWxpemFyZFwtZm91bmRcLWluXC1kYW1wXC1wbGFjZXM7CivklpwgPCB0aGVcLWZpZ2h0aW5nXC1zb3VuZFwtbWFkZVwtYnlcLXR3b1wtdGlnZXJzOwor5pyJ5b+X6ICF5LqL56uf5oiQIDwgd2hlcmVcLXRoZXJlXC1pc1wtYVwtd2lsbFwsXC10aGVyZVwtaXNcLWFcLXdheTsKK+SOkiA8IGZseWluZ1wtcXVpY2tseVwtYW5kXC10b1wtYXR0YWNrXC1zdWRkZW5seTsKK+SLiiA8IGRlY29yYXRpb25zXC1vZlwtdGhlXC1lbXBlcm9yJydzXC1jYXJyaWFnZTsKK+SAmyA8IHRvXC1sb29rXC1mYXJcLXdpdGhcLXRoZVwtZXllc1wtaGFsZlwtY2xvc2VkOwor47yoIDwgYVwtd2F0ZXJcLWphclwtd2l0aFwtZWFyc1wtZm9yXC1jYXJyeWluZ1wtaXQ7Civju44gPCBhXC1sYXJnZVwtaG9yaXpvbnRhbFwtbXVzaWNhbFwtaW5zdHJ1bWVudDsKK+O6qiA8IGFuXC11bmNhcnZlZFwtb2ZcLXVucG9saXNoZWRcLWphZGVcLW9yXC1nZW07Civjtb8gPCBlbmRsZXNzbHlcLWxvbmdcLW9yXC12YXN0XC13YXRlclwtY3VycmVudHM7CivjtKkgPCBuYW1lXC1vZlwtYVwtc3RyZWFtXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor46+YIDwgYVwtc21hbGxcLXdvb2Rlblwtc3RhbmRcLWhhdmluZ1wtZm91clwtbGVnczsKK+OkjSA8IG5ldmVyXC1yZXZlYWxcLW9uZScnc1wtZmVlbGluZ1wtb3JcLWVtb3Rpb247Civjo6AgPCBhXC1yb3BlXC1kZWNvcmF0ZWRcLXdpdGhcLWJyb256ZVwtb3JuYW1lbnQ7CivjoZEgPCBhbmNpZW50XC1tb3VybmluZ1wtdHVyYmFuXC13b3JuXC1ieVwtd29tZW47CivjoJEgPCBoaWdoXC1tb3VudGFpblwtc3RlZXBcLXJ1Z2dlZFwtYW5kXC11bmV2ZW47CivjoIQgPCBuYW1lXC1vZlwtYVwtbW91bnRhaW5cLWluXC15dW5uYW5cLXByb3ZpbmNlOwor46CBIDwgaXJyZWd1bGFyXC1vdXRsaW5lXC1vZlwtYVwtcmFuZ2VcLW9mXC1oaWxsczsKK+OfmiA8IG5hbWVcLW9mXC1hXC1tb3VudGFpblwtaW5cLXNoYW54aVwtcHJvdmluY2U7CivjmrYgPCB3aWZlXC1vZlwtb25lJydzXC1odXNiYW5kJydzXC1lbGRlclwtYnJvdGhlcjsKK+OYiCA8IGFibGVcLXRvXC10YWtlXC1hXC1jb3JyZWN0XC12aWV3XC1vZlwtdGhpbmdzOwor45ewIDwgdGhlXC1jaGFyYWN0ZXJcLXVzZWRcLWluXC10cmFuc2xpdGVyYXRpb247Civjkr8gPCBhXC1raW5kXC1vZlwtdHVyYmFuXC11c2VkXC1pblwtYW5jaWVudFwtdGltZTsKK+S4u+enkSA8IHJlcXVpcmVkXC1jb3Vyc2VzXC1pblwtdGhlXC1tYWpvclwtc3ViamVjdDsKK+WwmuaFleadsCA8IGphbWVzXC1zYXNzZXJcLVwodXNcLWFtYmFzc2Fkb3JcLXRvXC1jaGluYVwpOwor5ZOA6bS76YGN6YeOIDwgYVwtbGFuZFwtc3dhcm1pbmdcLXdpdGhcLWRpc2FzdGVyXC12aWN0aW1zOwor55eF5b6e5Y+j5YWlIDwgaWxsbmVzc1wtZmluZHNcLWl0c1wtd2F5XC1pblwtYnlcLXRoZVwtbW91dGg7Civnj63lupUgPCBvcmRpbmFyeVwtbWVtYmVyc1wtb2ZcLXRoZWF0cmljYWxcLXRyb3VwZTsKK+mHkee8vSA8IFwoZ29sZFwpXC1hbG1zXC1ib3dsXC1cKG9mXC1hXC1idWRkaGlzdFwtbW9ua1wpOwor5aGe54i+5Y2XIDwgXChldWdlbmVcKVwtY2VybmFuXC1cKGFwb2xsb1wtMTdcLWFzdHJvbmF1dFwpOwor6IGv5ZCNIDwgam9pbnRseVwtXChzaWduZWRcLFwtZGVjbGFyZWRcLFwtc3BvbnNvcmVkXCk7CivnuL3lj4PorIDpg6ggPCBcKG1pbGl0YXJ5XClcLWdlbmVyYWxcLXN0YWZmXC1oZWFkcXVhcnRlcnM7CivkuIvmprsgPCBzdGF5XC1hdFwtXChhXC1ob3RlbFwsXC1ldGNcLlwtZHVyaW5nXC1hXC10cmlwXCk7CivlubTnlavlhZIgPCBuZXdcLXllYXJcLVwob3JcLXNwcmluZ1wtZmVzdGl2YWxcKVwtcGljdHVyZTsKK+mQtemjr+eilyA8IFwiaXJvblwtcmljZVwtYm93bFwiXC1cLVwtXC1zZWN1cmVcLWVtcGxveW1lbnQ7Civoga/pgqboqr/mn6XlsYAgPCBmYmlcLVwoZmVkZXJhbFwtYnVyZWF1XC1vZlwtaW52ZXN0aWdhdGlvblwpOwor6IOh5b+X5piOIDwgaG9cLWNoaVwtbWluaFwtXCh2aWV0bmFtZXNlXC1sZWFkZXJcLFwtY2l0eVwpOwor6KiY6L+wIDwgbWFrZVwtYVwtZGVzY3JpcHRpdmVcLXJlY29yZFwtXChvZlwtZXZlbnRzXCk7CivmkqXntYPmqILlmaggPCBwbHVja2VkXC1zdHJpbmdcLW9yXC1zdHJpbmdlZFwtaW5zdHJ1bWVudDsKK+W8gSA8IGNvbmljYWxcLWNhcFwtd29yblwtZHVyaW5nXC16aG91XC1keW5hc3R5Owor6YWJIDwgdGVudGhcLW9mXC10aGVcLXR3ZWx2ZVwtZWFydGhseVwtYnJhbmNoZXM7Civml4wgPCBiYW5uZXJcLW9yXC1mbGFnXC1hZG9ybmVkXC13aXRoXC1mZWF0aGVyczsKK+ihriA8IGNlcmVtb25pYWxcLWRyZXNzXC13b3JuXC1ieVwtdGhlXC1lbXBlcm9yOwor5rqnIDwgcml2ZXJcLWluXC1hbmh1aVwtYW5kXC1qaWFuZ3N1XC1wcm92aW5jZXM7Civns40gPCBmb29kXC1tYWRlXC1vZlwtY3J1c2hlZFwtYW5kXC1jb29rZWRcLXJpY2U7CivmrpsgPCB0b1wtcHV0XC10b1wtZGVhdGhcLXRvXC1pbXByaXNvblwtZm9yXC1saWZlOwor54uNIDwgc3BlY2llc1wtb2ZcLWRlZXJcLWZvdW5kXC1pblwtbm9ydGhcLWNoaW5hOwor57uCIDwgcmliYm9uXC1vclwtY29yZFwtdXNlZFwtYXR0YWNoXC1vcm5hbWVudHM7Civno4kgPCB0aGVcLXN0b25lXC1iYXNlXC1vclwtcGxpbnRoXC1vZlwtYVwtcGlsbGFyOwor6JW5IDwgaXBvbW9lYVwtYXF1YXRpY2FcLXVzZWRcLWFzXC1hXC12ZWdldGFibGU7CivmmpflgrcgPCBpbnRlcm5hbFwtXChpbnZpc2libGVcKVwtaW5qdXJ5XC1cKGRhbWFnZVwpOwor5qqU5qGI6L2J6YCB5a2Y5Y+W5Y+K566h55CGIDwgZmlsZVwtdHJhbnNmZXJcLFwtYWNjZXNzXC1hbmRcLW1hbmFnZW1lbnQ7CivlpKrmuZYgPCB0YWlcLWh1XC1sYWtlXCxcLWFcLWJpZ1wtbGFrZVwtYnlcLXd1eGlcLWNpdHk7CivmqavpiaQgPCBcKGhvcml6b250YWxcLWhvb2tlZFwtY2hhcmFjdGVyXC1zdHJva2VcKTsKK+WMl+WuiyA8IHRoZVwtbm9ydGhlcm5cLXNvbmdcLWR5bmFzdHlcLVwoOTYwXC0xMTI3XCk7CivpvYggPCBjb2xkXC1pblwtdGhlXC1oZWFkXC1jYXRhcnJoXC1vZlwtdGhlXC1ub3NlOwor6bm7IDwgaW1wdXJlXC1jYXJib25hdGVcLW9mXC1zb2RpdW1cLW9mXC1uYXRyb247CivphInkuIsgPCBjb3VudHJ5XC1cKGFzXC1vcHBvc2VkXC10b1wtdG93blwtb3JcLWNpdHlcKTsKK+m2oiA8IGFcLWJpcmRcLXdoaWNoXC1mcmVxdWVudHNcLXRoZVwtc2VhXC1zaG9yZTsKK+WIpeWFt+S4gOagvCA8IGhhdmluZ1wtYVwtdW5pcXVlXC1vclwtZGlzdGluY3RpdmVcLXN0eWxlOwor57C96KiCIDwgdG9cLWFncmVlXC10b1wtYW5kXC1zaWduXC1cKGFcLXRyZWF0eVwsXC1ldGNcKTsKK+mDqiA8IG5hbWVcLW9mXC1hXC1zdHJlYW1cLWluXC1zaWNodWFuXC1wcm92aW5jZTsKK+W+kOaCsum0uyA8IG5hbWVcLW9mXC1hXC1mYW1vdXNcLXBhaW50ZXJcLFwteHVcLWJlaWhvbmc7CivovZ4gPCBhXC12ZWhpY2xlXC1mb3JcLXRyYW5zcG9ydGluZ1wtcHJpc29uZXJzOwor6Ly5IDwgdHdvXC1waWVjZXNcLW9mXC13b29kXC11bmRlcm5lYXRoXC1hXC1jYXJ0Owor6K6A6LOj5paw6IGeIDwgeW9taXVyaVwtc2hpbWJ1blwtXChqYXBhbmVzZVwtbmV3c3BhcGVyXCk7Civlop7lgLwgPCBhcHByZWNpYXRpb25cLVwob2ZcLWFcLWNhclwsXC1ob3VzZVwsXC1ldGNcLlwpOwor5LiA5Lmd5Zub5Lmd5bm0IDwgdGhlXC15ZWFyXC0xOTQ5XC1cKGNvbW11bmlzdFwtcmV2b2x1dGlvblwpOwor6Iq/IDwgZ3Jhc3NcLXdoaWNoXC1oYXNcLWJlZW5cLWN1dFwtYW5kXC1yZWdyb3duOwor6IOsIDwgYVwtZGlzZWFzZScnc1wtbmFtZVwtaW5cLWNoaW5lc2VcLW1lZGljaW5lOwor56aKIDwgc2VtaVwtYW5udWFsXC1jZXJlbW9ueVwtb2ZcLXB1cmlmaWNhdGlvbjsKK+WFteWutiA8IG1pbGl0YXJ5XC1zdHJhdGVnaXN0XC1pblwtYW5jaWVudFwtY2hpbmE7Civoi7HlsLogPCBcKGVuZ2xpc2hcKVwtZm9vdFwtXCh1bml0XC1vZlwtbWVhc3VyZW1lbnRcKTsKK+Wci+mam+aomea6lue1hOe5lCA8IGludGVybmF0aW9uYWxcLXN0YW5kYXJkc1wtb3JnYW5pemF0aW9uOwor5omN55aP5a245re6IDwgaGF2ZVwtbGl0dGxlXC10YWxlbnRcLWFuZFwtbGVzc1wtbGVhcm5pbmc7Civmt6rpmbcgPCBcKHRlcnJpdG9yeVwpXC1mYWxsXC10b1wtZW5lbXlcLW9jY3VwYXRpb247CivmiKUgPCBhXC1zbWFsbFwtc3RlZWx5YXJkXC1mb3JcLXdlaWdoaW5nXC1tb25leTsKK+iKseacqOiYrSA8IGh1YVwtbXVcLWxhblwtXChuYW1lXC1vZlwtYVwtd29tYW5cLXdhcnJpb3JcKTsKK+aJk+S4jemBjiA8IG5vdFwtdG9cLWJlXC1hYmxlXC10b1wtYmVhdFwtb3JcLWRlZmVhdFwtc2JcLjsKK+S4lueVjOaAp+WPpOiAgeWVj+mhjCA8IGFcLXByb2JsZW1cLWFzXC1vbGRcLWFzXC10aGVcLXdvcmxkXC1pdHNlbGY7Civpgb/lnZHokL3kupUgPCBkb2RnZVwtYVwtcGl0XC1vbmx5XC10b1wtZmFsbFwtaW50b1wtYVwtd2VsbDsKK+WvjSA8IHVzZWRcLWFzXC1hXC10ZXJtXC1vZlwtY29tcGFyaXNvblw6XC1yYXRoZXI7CivkurrpgbggPCBwZXJzb25cKHNcKVwtc2VsZWN0ZWRcLVwoZm9yXC1hXC1qb2JcLFwtZXRjXC5cKTsKK+eZvOS6huiogCA8IFwoXCJwYXN0XC10ZW5zZVwiXC1vZlwtXDrnmbzoqIBcKVwtc3Bva2VcLXB1YmxpY2x5Owor5ZKXIDwgdmVyYmFsXC1wYXJ0aWNsZVwtb2ZcLXBlcmZlY3RpdmVcLWFzcGVjdDsKK+iuiua6q+WLleeJqSA8IHBvaWtpbG90aGVybWFsXC1cKGNvbGRcLWJsb29kZWRcKVwtYW5pbWFsOwor5pyD6ZW3IDwgcHJlc2lkZW50XC1vZlwtYVwtY2x1YlwsXC1jb21taXR0ZWVcLFwtZXRjXC47CivkuLEgPCBjaGlsZCcnc1wtaGFpcnN0eWxlXC1ib3VuZFwtaW5cLXR3b1wtdHVmdHM7CivkuI3oh6rph48gPCBub3RcLXRha2VcLWFcLXByb3BlclwtbWVhc3VyZVwtb2ZcLW9uZXNlbGY7CivkrqQgPCBvbmVcLW9mXC10aGVcLTM2XC1nYXJkZW5zXC1pblwtaGFuXC1keW5hc3R5Owor5KytIDwgbmFtZVwtb2ZcLWFcLWxlZ2VuZGFyeVwtZmVyb2Npb3VzXC1hbmltYWw7CivkqpQgPCBjcm9zc1wtYmFyXC1vZlwtd29vZFwtdW5kZXJcLXRoZVwtY2FycmlhZ2U7Civkp6QgPCBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivkpIwgPCBhXC1raW5kXC1vZlwtd2luZVwtYmVcLWJyZXdlZFwtZnJvbVwtZ3JhaW5zOwor5KC3IDwgdGhlXC1hcHBlYXJhbmNlXC1vZlwtaGVpZ2h0XC1pblwtYVwtcGVyc29uOwor5KCFIDwgaGFuZHNcLWFuZFwtZmVldFwtY2hhcHBlZFwtZnJvbVwtdGhlXC1jb2xkOwor5J2kIDwgYVwtcHJpbWl0aXZlXC10cmliZVwtaW5cLXNvdXRod2VzdFwtY2hpbmE7CivknZ8gPCBhXC1maWVyY2VcLW1hblwtZWF0aW5nXC1hbmltYWxcLWluXC1sZWdlbmQ7CivknZ0gPCBhblwtZXhjbGFtYXRpb25cLWluZGljYXRpbmdcLWFkbWlyYXRpb247Civkm5MgPCBhblwtb2ZmaWNpYWxcLXBvc2l0aW9uXC1pblwtZm9ybWVyXC10aW1lczsKK+SamCA8IHRoZVwtbG9uZ1wtYW5kXC11cHJpZ2h0XC1ob3Juc1wtb2ZcLWNhdHRsZTsKK+SWkiA8IGVhcnRoZW53YXJlXC13aXRoXC10aGVcLXNoYXBlXC1vZlwtYVwtYmVhbjsKK+SVjiA8IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3NcLXBlcmVubmlhbDsKK+STkSA8IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3NcLWR1Y2t3ZWVkczsKK+SRlyA8IHRvXC1wb3VuZFwtaW5cLW9yZGVyXC10b1wtcmVtb3ZlXC10aGVcLWh1c2s7CivkkLEgPCB0b1wtcGlja1wtdGhlXC1tZWF0XC1pblwtYmV0d2Vlblwtb2ZcLWJvbmVzOwor5I+BIDwgdW5hYmxlXC10b1wtaGVhclwtZGlzdGluY3RseVwtb3JcLWNsZWFybHk7Civlr6vmiJAgPCB0b1wtY29tcGlsZVwtXChmYXNoaW9uXC10aHJvdWdoXC13cml0aW5nXCk7CivkiqAgPCB0b1wtZ2l2ZVwtYVwtc3VwcGx5XC1mXC1ncmFpblwtZm9yXC1yYXRpb25zOwor5ImfIDwgYVwtYmFtYm9vXC1iYXNrZXRcLXVzZWRcLXRvXC1jYXRjaFwtZmlzaGVzOwor5IiwIDwgYVwtYnJ1c2hcLWZvclwtd2FzaGluZ1wta2l0Y2hlblwtdXRlbnNpbHM7Civkh7wgPCBhXC1iYW1ib29cLXZlc3NlbFwtdXNlZFwtdG9cLWNhdGNoXC1maXNoZXM7CivlkJ7ph5EgPCB0b1wtY29tbWl0XC1zdWljaWRlXC1ieVwtc3dhbGxvd2luZ1wtZ29sZDsKK+SEqyA8IGFcLWtpbmRcLW9mXC1zb3JnaHVtXC13aXRoXC13aGl0ZVwtc3Byb3V0czsKK+SEiCA8IHNhY3JpZmljZVwtdG9cLWhhcHBpbmVzc1wtYW5kXC1nb29kXC1sdWNrOwor5IOkIDwgYmxhY2tcLWNvbG9yZWRcLWdyaW5kc3RvbmVcLW9yXC13aGVzdG9uZTsKK+SDjiA8IG5hbWVcLW9mXC1hXC1wbGFjZVwtXC1zbWFsbFwtcGllY2VcLW9mXC1jb2FsOwor5IK5IDwgc291bmRcLW9mXC10aGVcLWZhbGxpbmdcLXBpZWNlc1wtb2ZcLXJvY2tzOwor5IG2IDwgdG9cLWxvb2tcLWF0XC1zb21ldGhpbmdcLXdpdGhvdXRcLXdpbmtpbmc7CivkgbUgPCBuZXdib3JuXC1iYWJ5XC13aXRoXC10aGVcLWV5ZWxpZHNcLWNsb3NlZDsKK+adv+ecvCA8IG1lYXN1cmVcLWluXC10cmFkaXRpb25hbFwtY2hpbmVzZVwtbXVzaWM7CivjvYUgPCB2ZXNzZWxcLWZvclwtY2VyZW1vbnlcLWluXC1hbmNpZW50XC10aW1lczsKK+O4uSA8IGNhdHRsZVwtd2l0aFwtd2hpdGVcLXN0cmlwZVwtb25cLXRoZVwtYmFjazsKK+O4lyA8IG5vdFwtYVwtcmVhbFwtZmF0aGVyXC1vclwtYVwtbmF0dXJlXC1mYXRoZXI7Civjs5ggPCBhXC1mb3VudGFpblwtb3JcLXNwcmluZ1wtZmxvd3NcLWRvd253YXJkczsKK+OuryA8IHdob2xlXC1waWVjZVwtb2ZcLW9yXC11bmJyb2tlblwtZmlyZXdvb2RzOwor466cIDwgYVwtYmxvY2tzXC1lbmdyYXZlZFwtZm9yXC1ob2xkaW5nXC10aGluZ3M7Civjn7wgPCBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivpppblupwgPCBjYXBpdGFsXC1jaXR5XC1vZlwtYW5cLWF1dG9ub21vdXNcLXJlZ2lvbjsKK+OelCA8IHRoZVwtdXByaWdodFwtYmFyXC1mb3JcLWZhc3RlbmluZ1wtYVwtZG9vcjsKK+OdniA8IHByZXRlbmRcLXRvXC1iZVwtZGVsaWNhdGVcLWFuZFwtYmVhdXRpZnVsOwor45y5IDwgbmFtZVwtb2ZcLWFcLWZvbGtcLXNvbmdcLWluXC1hbmNpZW50XC10aW1lczsKK+OagSA8IHRoZVwtbG9uZ1wtdGFpbFwtZmVhdGhlcnNcLXdoaWNoXC1jdXJsXC11cDsKK+ePreasoSA8IG9yZGVyXC1vZlwtY2xhc3Nlc1wtb3JcLWdyYWRlc1wtYXRcLXNjaG9vbDsKK+aKhOW+jOi3ryA8IHRvXC1vdXRmbGFua1wtYW5kXC1hdHRhY2tcLWZyb21cLXRoZVwtcmVhcjsKK+e3qOW5tOmrlCA8IGFubmFsaXN0aWNcLXN0eWxlXC1cKGluXC1oaXN0b3Jpb2dyYXBoeVwpOwor5a626YSJ6ZueIDwgJydob21lXC10b3duXC1jaGlja2VuJydcLVwoYVwtdHlwZVwtb2ZcLWRpc2hcKTsKK+eroOWtneWatCA8IGpvaG5cLWNoYW5nXC1cKHRhaXdhblwtZm9yZWlnblwtbWluaXN0ZXJcKTsKK+iytOW3niA8IG5hbWVcLW9mXC1hXC1wcm92aW5jZVwtaW5cLWNoaW5hXCxcLWd1aXpob3U7Civok4vojKggPCBcKGJpbGxcKVwtZ2F0ZXNcLVwoY2hhaXJtYW5cLW9mXC1taWNyb3NvZnRcKTsKK+WQuOW8lSA8IGF0dHJhY3RcLVwoaW50ZXJlc3RcLFwtaW52ZXN0bWVudFwsXC1ldGNcLlwpOwor5L6G5LiN5Y+KIDwgdGhlcmUnJ3NcLW5vdFwtZW5vdWdoXC10aW1lXC1cKHRvXC1kb1wtc3RoXC5cKTsKK+aal+WovCA8IHVubGljZW5zZWRcLVwodW5yZWdpc3RlcmVkXClcLXByb3N0aXR1dGU7CivpnZ7lsI3nqLHlvI/mlbjmk5rnlKjmiLbnt5ogPCBhc3ltbWV0cmljYWxcLWRpZ2l0YWxcLXN1YnNjcmliZXJcLWxpbmU7CivpnLjnjosgPCB4aWFuZzR5dTNcLVwoMjMyXC0yMDJcLWJjXClcLXRoZVwtY29ucXVlcm9yOwor5aO956auIDwgYmlydGhkYXlcLXByZXNlbnRcLVwoZm9yXC1hblwtb2xkXC1wZXJzb25cKTsKK+mYriA8IGFuY2llbnRcLW11c2ljYWxcLWluc3RydW1lbnRcOlwtc3VybmFtZTsKK+WWlCA8IGRlc2NyaXB0aXZlXC1vZlwtY3J5aW5nXC1vclwtb2ZcLWNyb3dpbmc7CivnkI8gPCB2ZXNzZWxcLXVzZWRcLXRvXC1ob2xkXC1ncmFpblwtb2ZmZXJpbmdzOwor6YKVIDwgZm9ybWVyXC1vclwtbGl0ZXJhcnlcLW5hbWVcLWZvclwtbmFubmluZzsKK+mtkSA8IGFcLW1vdW50YWluXC1kZW1vblwtcmVzZW1ibGluZ1wtYVwtdGlnZXI7CivmmLYgPCBhXC1sb25nXC1kYXlcLlwtYnJpZ2h0XC5cLWV4dGVuZGVkXC5cLWNsZWFyOwor57ynIDwgYVwtY2hhaW5cLW9yXC1yb3BlXC11c2VkXC1iaW5kXC1jcmltaW5hbHM7Civonq0gPCBhXC1kcmFnb25cLXdob3NlXC1ob3Juc1wtaGF2ZVwtbm90XC1ncm93bjsKK+m+gCA8IGxvc2VcLWJhYnlcLXRlZXRoXC1hbmRcLWdldFwtYWR1bHRcLXRlZXRoOwor6IKcIDwgdG9cLXNhY3JpZmljZVwtb25cLXR3b1wtc3VjY2Vzc2l2ZVwtZGF5czsKK+mClyA8IGFuXC1hbmNpZW50XC1wbGFjZVwtaW5cLXRoZVwtc3RhdGVcLW9mXC13dTsKK+iQrOe4oyA8IHdhbnhpYW5cLWNvdW50eVwsXC1pblwtc2ljaHVhblwtcHJvdmluY2U7CivmrbvkuI3kuoYgPCBwb3J0dWxhY2FcLXN1bmRpYWxcLVwoYVwtdHlwZVwtb2ZcLXBsYW50XCk7CivlpKfkuK3lrbjnlJ8gPCB1bml2ZXJzaXR5XC1hbmRcLWhpZ2hcLXNjaG9vbFwtc3R1ZGVudHM7Civov47mmKXoirEgPCB3aW50ZXJcLWphc21pbmVcLFwtamFzbWludW1cLW51ZGlmbG9ydW07CivntITnv7Dlhafmlq/loKEgPCBqb2hhbm5lc2J1cmdcLVwoY2l0eVwtaW5cLXNvdXRoXC1hZnJpY2FcKTsKK+S4u+S6uue/gSA8IG1hc3RlclwtXChvZlwtb25lJydzXC1vd25cLWRlc3RpbnlcLFwtZXRjXC5cKTsKK+WIhuS9iOW8j+eSsOWigyA8IGRpc3RyaWJ1dGVkXC1cKGNvbXB1dGluZ1wpXC1lbnZpcm9ubWVudDsKK+WFtemDqCA8IHRoZVwtbWluaXN0cnlcLW9mXC13YXJcLWluXC1mZXVkYWxcLWNoaW5hOwor5YyX5ZGoIDwgdGhlXC1ub3J0aGVyblwtemhvdVwtZHluYXN0eVwtXCg1NTdcLTU4MVwpOwor5a6J5YiG5a6I5bexIDwgYWJpZGVcLWJ5XC10aGVcLWxhd1wtYW5kXC1iZWhhdmVcLW9uZXNlbGY7CivljJfkuqwgPCBiZWlqaW5nXC1cKGNhcGl0YWxcLW9mXC1tYWlubGFuZFwtY2hpbmFcKTsKK+Wkp+mhr+i6q+aJiyA8IGZ1bGx5XC1kaXNwbGF5aW5nXC1vbmUnJ3NcLWNhcGFiaWxpdGllczsKK+mbu+S/oeacjeWLmeS+m+aHieWVhiA8IHRlbGVjb21tdW5pY2F0aW9uc1wtc2VydmljZVwtcHJvdmlkZXI7Civlk4jlr4bnk5wgPCBoYW1pXC1tZWxvblwtXChhXC12YXJpZXR5XC1vZlwtbXVza21lbG9uXCk7CivpkKQgPCBodWdlXC10cmlwb2RcLW9mXC1icm9uemVcLXdpdGhcLXR3b1wtZWFyczsKK+iyv+aYk+mhjSA8IHZvbHVtZVwtb2ZcLXRyYWRlXC1cKGJldHdlZW5cLWNvdW50cmllc1wpOwor6I2J5qGIIDwgZHJhZnRcLVwobGVnaXNsYXRpb25cLFwtcHJvcG9zYWxcLFwtZXRjXC5cKTsKK+imquaEmyA8IGRlYXJcLVwuXC5cLlwtXCh3YXlcLW9mXC1zdGFydGluZ1wtYVwtbGV0dGVyXCk7Civop60gPCBvbmVcLXR1cm5pbmdcLXVwXC1hbmRcLW9uZVwtdHVybmluZ1wtZG93bjsKK+ijnOeZvSA8IGZpbGxlclwtXChpblwtYVwtbmV3c3BhcGVyXC1vclwtbWFnYXppbmVcKTsKK+iksSA8IHRvXC1jYXJyeVwtaW5cLXRoZVwtYm9zb21cLW9yXC10aGVcLXNsZWV2ZTsKK+azoueAvuWjr+mXiiA8IHN1cmdpbmdcLWZvcndhcmRcLXdpdGhcLWdyZWF0XC1tb21lbnR1bTsKK+iIieihjCA8IHRvXC1ob2xkXC1cKGFcLW1lZXRpbmdcLFwtY2VyZW1vbnlcLFwtZXRjXC5cKTsKK+WbnuatuOS4reWciyA8IHRvXC1yZXR1cm5cLXRvXC1jaGluYVwtXChlXC5nXC5cLWhvbmdcLWtvbmdcKTsKK+iJnCA8IGFcLWxvbmdcLW5hcnJvd1wtdmVzc2VsXC13aXRoXC10d29cLW1hc3RzOwor57i95YuV5ZOhIDwgZ2VuZXJhbFwtbW9iaWxpemF0aW9uXC1cKGZvclwtd2FyXCxcLWV0Y1wpOwor6Ie/IDwgdG9cLXNlcGFyYXRlXC10aGVcLWdyYWluXC1mcm9tXC10aGVcLWh1c2s7CivntbAgPCB3aGl0ZVwtaGVtcGVuXC1jbG90aFwtd29yblwtYnlcLW1vdXJuZXJzOwor5L+d6YCBIDwgcmVjb21tZW5kXC1cKGZvclwtYWRtaXNzaW9uXC10b1wtc2Nob29sXCk7CivmhJvojqvog73liqkgPCB3aWxsaW5nXC10b1wtaGVscFwtYnV0XC11bmFibGVcLXRvXC1kb1wtc287CivnoqogPCBzdG9uZVwtc2xhYlwtdXNlZFwtZm9yXC13YXNoaW5nXC1jbG90aGVzOwor6L2J5bizIDwgdHJhbnNmZXJcLW1vbmV5XC1mcm9tXHxpbnRvXC1hblwtYWNjb3VudDsKK+W4reS9jSA8IHBhcmxpYW1lbnRhcnlcLW9yXC1jb25ncmVzc2lvbmFsXC1zZWF0Owor55uHIDwgd2h5XC1ub3RcP1wtd291bGRcLWl0XC1ub3RcLWJlXC1iZXR0ZXJcLXRvXD87CivluIPku4AgPCBcKGdlb3JnZVwpXC1idXNoXC1cKGZvcm1lclwtdXNcLXByZXNpZGVudFwpOwor5bSp6b6N5pePIDwgdGhlXC1iZW5nbG9uZ1wtXChwZW5nbHVuZ1wpXC1uYXRpb25hbGl0eTsKK+a7qyA8IHdhdGVyXC1pblwtd2hpY2hcLXJpY2VcLWhhc1wtYmVlblwtYm9pbGVkOwor6Z2e5pS/5bqc57WE57mUIDwgbm9uXC1nb3Zlcm5tZW50YWxcLW9yZ2FuaXphdGlvblwtXChuZ29cKTsKK+WvqeioiiA8IGFcLVwoanVkaWNpYWxcKVwtdHJpYWxcLVwoaW5cLWFcLWNvdXJ0cm9vbVwpOwor5qqRIDwgbG9nc1wtcm9sbGVkXC1kb3duXC1pblwtZGVmZW5zZVwtb2ZcLWNpdHk7Civmo7MgPCBzbWFsbFwtcGlsbGFyc1wtdGhhdFwtc3VwcG9ydFwtdGhlXC1yb29mOwor5biXIDwgYVwtbXVsdGljb2xvcmVkXC1wcm9wXC11c2VkXC1pblwtZGFuY2luZzsKK+e2nOWQiOacjeWLmeaVuOS9jee2sue1oSA8IGludGVncmF0ZWRcLXNlcnZpY2VzXC1kaWdpdGFsXC1uZXR3b3JrOwor5ZigIDwgdGhlXC1jaGlycGluZ1wtb2ZcLWJpcmRzXC1sb3VkXC1sYXVnaHRlcjsKK+ethuahvyA8IHRoZVwtc2hhZnRcLW9mXC1hXC1wZW5cLW9yXC13cml0aW5nXC1icnVzaDsKK+eXheWLoiA8IGRlZ3JlZVwtb2ZcLXNlcmlvdXNuZXNzXC1vZlwtYW5cLWlsbG5lc3M7CivllIQgPCBmaW5hbFwtcGFydGljbGVcLW9mXC1hc3NlcnRpb25cLXBhdGhha2E7CivlgLsgPCBwaG9uZXRpY1wtdXNlZFwtaW5cLWtvcmVhblwtcGxhY2VcLW5hbWVzOwor5LW6IDwgYm91bmRhcnlcLWJldHdlZW5cLWFncmljdWx0dXJhbFwtbGFuZHM7CivktbkgPCBpbnNlY3RzXC10aGF0XC1hcmVcLWluanVyaW91c1wtdG9cLWNyb3BzOwor5K2NIDwgdG9cLWxpdmVcLXdpdGhcLWFub3RoZXJcLWF0XC1oaXNcLWV4cGVuc2U7CivkrKUgPCBjb29rZWRcLWZvb2RcLXdoaWNoXC1oYXNcLWJlY29tZVwtbW91bGR5Owor5KyZIDwgdG9cLWRhbmNlXC1hbmRcLXRvc3NcLWFib3V0XC1pblwtdGhlXC13aW5kOwor5Li76L6mIDwgaG9zdFwtXChhXC1jb25mZXJlbmNlXC1vclwtc3BvcnRzXC1ldmVudFwpOwor5KCrIDwgdG9cLXN1Y2N1bWJcLXRvXC10aGVcLWVmZmVjdFwtb2ZcLWFsY29ob2w7CivknaYgPCBhXC1raW5kXC1vZlwtYW5pbWFsXC1sb29rc1wtbGlrZVwtbGVvcGFyZDsKK+ScoCA8IGxhbmd1YWdlXC1vZlwtdGhlXC1zYXZhZ2VcLW9yXC1iYXJiYXJpYW47CivklrogPCBhXC1sZWdlbmRhcnlcLWFuaW1hbFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5JK8IDwgYVwtYmFtYm9vXC10cmF5XC1mb3JcLXJhaXNpbmdcLXNpbGt3b3JtczsKK+SRsyA8IGFcLWhvcml6b250YWxcLWJhclwtaW5cLWZyb250XC1vZlwtYVwtYm9hdDsKK+SQpyA8IHRvXC1yZXdhcmRcLW9yXC1jaGVlclwtdHJvb3BzXC13aXRoXC1mb29kOwor5I6wIDwgbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtc2ljaHVhblwtcHJvdmluY2U7CivkjZ8gPCBhXC1raW5kXC1vZlwtZmlzaFwtbmV0XC13aXRoXC1maW5lXC1tZXNoZXM7Civkh6ggPCBhXC1iYW1ib29cLWJhc2tldFwtZm9yXC1mb29kXC1jb250YWluZXJzOwor6Zy4546L6Z6tIDwgYVwtcmF0dGxlXC1zdGlja1wtdXNlZFwtaW5cLWZvbGtcLWRhbmNpbmc7CivmnKzojYkgPCBhXC1ib29rXC1vblwtY2hpbmVzZVwtXChoZXJiYWxcKVwtbWVkaWNpbmU7Civkho4gPCBncmFzc1wtYW5kXC1ncmFpbnNcLXByb2R1Y2luZ1wtbm9cLWZydWl0Owor5IS7IDwgYVwtc2Vjb25kXC10aW1lXC1ncm93aW5nXC1vZlwtcmljZVwtcGxhbnQ7CivkgJogPCB0b1wtbGlmdFwtdXBcLXRoZVwtZXllc1wtYW5kXC1sb29rXC1hcm91bmQ7Civjv5YgPCBjYXJidW5jbGVcLXVzZWRcLWluXC1uYW1pbmdcLW9mXC1hXC1wbGFjZTsKK+O6myA8IG5hbWVcLW9mXC1hXC12aWxsYWdlXC1pblwtaGVuYW5cLXByb3ZpbmNlOwor47eIIDwgZW1iZXJzXC1rZXB0XC1mb3JcLXN0YXJ0aW5nXC1hXC1uZXdcLWZpcmU7CivjtYEgPCB2YXN0XC1hbmRcLWJvdW5kbGVzc1wtb2ZcLWZsb3dpbmdcLXdhdGVyOwor47OVIDwgd2F0ZXJcLWluXC13aGljaFwtcmljZVwtaGFzXC1iZWVuXC13YXNoZWQ7Civjr6ogPCBjYXJ2ZWRcLW9yXC1wYXR0ZXJuZWRcLXdpbmRvd1wtcmFpbGluZ3M7CivkurrniakgPCBjaGFyYWN0ZXJzXC1cKGluXC1hXC1wbGF5XCxcLW5vdmVsXCxcLWV0Y1wuXCk7CivorbDplbcgPCBzcGVha2VyXC1cKG9mXC1hXC1sZWdpc2xhdGl2ZVwtYXNzZW1ibHlcKTsKK+OgmSA8IGFcLW1vdW50YWluXC1wYXRoc1wtbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor6Kq/5p+l57WQ5p6cIDwgcmVzdWx0c1wtXChvZlwtYW5cLWludmVzdGlnYXRpb25cLFwtcG9sbFwpOwor45OtIDwgdG9cLW1ha2VcLXJlYWR5XC10aGVcLWxlYXRoZXJcLWZvclwtc2hvZXM7CivjkLcgPCBhXC1raW5kXC1vZlwtcHVuaXNobWVudFwtaW5cLWhhblwtZHluYXN0eTsKK+eZvuerr+W+heiIiSA8IGFcLXRob3VzYW5kXC10aGluZ3NcLXJlbWFpblwtdG9cLWJlXC1kb25lOwor5a6J5Y2XIDwgXFtrb2ZpXF1cLWFubmFuXC1cW3VuXC1zZWNyZXRhcnlcLWdlbmVyYWxcXTsKK+WMhemjryA8IGdldFwtb3JcLXN1cHBseVwtbWVhbHNcLWF0XC1hXC1maXhlZFwtcmF0ZTsKK+acieawtCA8IFwob2ZcLWFcLWR3ZWxsaW5nXClcLXN1cHBsaWVkXC13aXRoXC13YXRlcjsKK+eZveaureigtiA8IHRoZVwtbGFydmFcLW9mXC1zaWxrd29ybVwtd2l0aFwtYmF0cnl0aXM7CivoqbHpoYwgPCBzdWJqZWN0XC1cKG9mXC1hXC10YWxrXC1vclwtY29udmVyc2F0aW9uXCk7Civkuovli5kgPCBcKHBvbGl0aWNhbFwsXC1lY29ub21pY1wsXC1ldGNcLlwpXC1hZmZhaXJzOwor5ZKx5YCRIDwgd2VcLVwoaW5jbHVkaW5nXC10aGVcLXBlcnNvblwtc3Bva2VuXC10b1wpOwor5bCk6YeR5aGe54i+5Y2XIDwgZXVnZW5lXC1jZXJuYW5cLVwoYXBvbGxvXC0xN1wtYXN0cm9uYXV0XCk7CivnjoflhYggPCB0YWtlXC10aGVcLWxlYWRcLVwoc2hvd2luZ1wtaW5pdGl0YXRpdmVcKTsKK+ebruWJjemChOS4jea4healmiA8IGF0XC1wcmVzZW50XC1pdFwtaXNcLXN0aWxsXC11bmNsZWFyXC1cLlwuXC5cLjsKK+eni+mrmOawo+eIvSA8IGNsZWFyXC1hbmRcLXJlZnJlc2hpbmdcLWF1dHVtblwtd2VhdGhlcjsKK+WMheennyA8IHJlbnRcLWxhbmRcLW9yXC1hXC1ob3VzZVwtZm9yXC1zdWJsZXR0aW5nOwor5piO5paHIDwgXChsYXdzXCxcLXJ1bGVzXCxcLWV0Y1wpXC1zdGF0ZVwtaW5cLXdyaXRpbmc7CivoorEgPCBhXC1waWVjZVwtb2ZcLWNsb3RoXC11c2VkXC13cmFwXC1idW5kbGVzOwor5oyyIDwgdG9cLWZlZWxcLW9yXC1mb25kbGVcLXdpdGhcLXRoZVwtZmluZ2VyczsKK+evkSA8IGFcLWJhbWJvb1wtYmFza2V0XC1mb3JcLWNhcnJ5aW5nXC1lYXJ0aDsKK+iCkyA8IHJlZ2lvblwtYmV0d2VlblwtaGVhcnRcLWFuZFwtZGlhcGhyYWdtOwor5rumIDwgcml2ZXJcLWFuZFwtY291bnR5XC1pblwtaGViZWlcLXByb3ZpbmNlOwor6YOXIDwgY2l0eVwtdW5kZXJcLXRoZVwtY2hvdVwtZHluXC5cLWFcLXN1cm5hbWU7Civnj48gPCB0d29cLXBpZWNlc1wtb2ZcLWphZGVcLWpvaW5lZFwtdG9nZXRoZXI7CivntqYgPCBkYXJrXC1ncmV5XC5cLXZhcmllZ2F0ZWRcLlwtc3VwZXJsYXRpdmU7CivpuocgPCBnZW5lcmFsXC1uYW1lXC1mb3JcLXRoZVwtaG9ybmxlc3NcLWRlZXI7Civnko4gPCBhXC1uZWNrbGFjZVwtbWFkZVwtb2ZcLXByZWNpb3VzXC1zdG9uZXM7Civmjr4gPCBhXC1nZW5lcmFsXC1kZXNpZ25hdGlvblwtb2ZcLW9mZmljaWFsczsKK+mDhyA8IGFuXC1hbmNpZW50XC1mZXVkYWxcLXN0YXRlXC1pblwtc2hhYW54aTsKK+mAj+imliA8IHRvXC1leGFtaW5lXC1ieVwtZmx1b3Jvc2NvcGVcLW9yXC14XC1yYXk7CivloLHoraYgPCByZXBvcnRcLVwoYW5cLWluY2lkZW50XClcLXRvXC10aGVcLXBvbGljZTsKK+eikeW4liA8IGFcLXJ1YmJpbmdcLWZyb21cLWFcLXN0b25lXC1pbnNjcmlwdGlvbjsKK+eJm+W5tCA8IHllYXJcLW9mXC10aGVcLW94XC1cKGluXC1jaGluZXNlXC16b2RpYWNcKTsKK+ewoeWWrue2sue1oeeuoeeQhuWNlOitsCA8IHNpbXBsZVwtbmV0d29ya1wtbWFuYWdlbWVudFwtcHJvdG9jb2w7Civoh6jmmYLnmoTmnKzlnLDnrqHnkIbmjqXlj6MgPCBpbnRlcmltXC1sb2NhbFwtbWFuYWdlbWVudFwtaW50ZXJmYWNlOwor5YyF5buCIDwgYm94XC1cKGluXC1hXC10aGVhdHJlXC1vclwtY29uY2VydFwtaGFsbFwpOwor6L2J6K6TIDwgdHJhbnNmZXJcLVwodGVjaG5vbG9neVwsXC1nb29kc1wsXC1ldGNcLlwpOwor5Yaw5raI55Om6KejIDwgbWVsdFwtbGlrZVwtaWNlXC1hbmRcLWJyZWFrXC1saWtlXC10aWxlczsKK+m+mCA8IHRoZVwtYXBwZWFyYW5jZVwtb2ZcLWFcLWRyYWdvblwtd2Fsa2luZzsKK+WNiuaWpOWFq+WFqSA8IG5vdFwtbXVjaFwtdG9cLWNob29zZVwtYmV0d2VlblwtdGhlXC10d287CivptL0gPCBhXC1zcGVjaWVzXC1vZlwtYmlyZFwtcmVzZW1ibGluZ1wtcXVhaWw7Civnm5zniYggPCBwaXJhdGVcLXZlcnNpb25cLVwob2ZcLXNvZnR3YXJlXCxcLWVcLmdcLlwpOwor5q2l5Lq65b6M5aG1IDwgZm9sbG93XC1pblwtb3RoZXJcLXBlb3BsZScnc1wtZm9vdHN0ZXBzOwor6YSrIDwgc3RhdGVcLWluXC10b2RheScnc1wtc2hhbmRvbmdcLXByb3ZpbmNlOwor6YSHIDwgYVwtbmFtZVwtb2ZcLWFcLXRvd25cLWluXC1oZW5hblwtcHJvdmluY2U7Civov78gPCB0b1wtYmVcLXRoZVwtZmlyc3RcLXRvXC1iZWdpblwtYVwtcXVhcnJlbDsKK+i9lSA8IGdyZWF0XC1hcnJheVwtb2ZcLXNwZWFyc1wtYW5kXC1jaGFyaW90czsKK+i8oCA8IGdyZWFzZVwtcG90XC1odW5nXC11bmRlclwtYXhsZVwtb2ZcLWNhcnQ7Civpvo3po5vps7PoiJ4gPCBsaXRcLlw6XC1kcmFnb25cLWZsaWVzXCxcLXBob2VuaXhcLWRhbmNlczsKK+e3o+S7vSA8IGZhdGVcLVwod2hpY2hcLWJyaW5nc1wtcGVvcGxlXC10b2dldGhlcjsKK+W5s+WjpCA8IHB5b25neWFuZ1wtXChjYXBpdGFsXC1vZlwtbm9ydGhcLWtvcmVhXCk7CivlnIvpmpvopovogZ4gPCBpbnRlcm5hdGlvbmFsXC1iYWNrZ3JvdW5kXC1rbm93bGVkZ2U7Civmk5Tku7sgPCBob2xkXC1hXC1nb3Zlcm5tZW50YWxcLW9mZmljZVwtb3JcLXBvc3Q7CivohrIgPCB0aGVcLXRocmVlXC1kaXZpc2lvbnNcLW9mXC10aGVcLXZpc2NlcmE7CivlhYvmnI0gPCBcKHRyeVwtdG9cKVwtb3ZlcmNvbWVcLVwoaGFyZHNoaXBzXCxcLWV0Y1wpOwor5oqE6YCBIDwgdG9cLW1ha2VcLWFcLWNvcHlcLVwoYW5kXC1zZW5kXC1pdFwtdG9cLXNiXCk7CivkuI3lpLHngrogPCBjYW5cLXN0aWxsXC1iZVwtY29uc2lkZXJlZFwtXCh0b1wtYmVcLlwuXC5cKTsKK+e0liA8IGFcLXJvcGVcLWZvclwtbGVhZGluZ1wtY2F0dGxlXC1vclwtaG9yc2U7CivmnIDmg6DlnIsgPCBtb3N0XC1mYXZvcmVkXC1uYXRpb25cLVwodHJhZGVcLXN0YXR1c1wpOwor56yuIDwgYm9hcmRzXC13aGljaFwtc3VwcG9ydFwtdGlsZXNcLW9uXC1yb29mOwor5qGI6amXIDwgaW52ZXN0aWdhdGVcLXRoZVwtZXZpZGVuY2VcLW9mXC1hXC1jYXNlOwor5omY6YGLIDwgdG9cLWJvb2tcLW9yXC1jaGVja1wtdGhyb3VnaFwtXChiYWdnYWdlXCk7CivnoIUgPCBjcm9zc1wtc3RyZWFtXC1ieVwtc3RlcHBpbmdcLW9uXC1zdG9uZXM7CivlnIvli5nlp5Tlk6EgPCBtZW1iZXJcLW9mXC1zdGF0ZVwtY291bmNpbFwtXChpblwtY2hpbmFcKTsKK+aItumDqCA8IGZldWRhbFwtY2hpbmVzZVwtbWluaXN0cnlcLW9mXC1yZXZlbnVlOwor55KJIDwgYVwtdmVzc2VsXC11c2VkXC1ob2xkXC1ncmFpblwtb2ZmZXJpbmdzOwor5qKhIDwgdHJheVwtZm9yXC1jYXJyeWluZ1wtc2FjcmlmaWNpYWxcLW1lYXQ7Civlj6/np7vmpI3mgKcgPCBwb3J0YWJpbGl0eVwtXChwcm9ncmFtbWluZ1wtbGFuZ3VhZ2VcKTsKK+aOqOWLlSA8IHRvXC1wdXNoXC1cKGZvclwtYWNjZXB0YW5jZVwtb2ZcLWFcLXBsYW5cKTsKK+W5tSA8IGV2ZW5cLWxldmVsXC5cLXRvXC1yYWlzZVwtaW5cLWJvdGhcLWhhbmRzOwor5auEIDwgYW5cLWFuY2llbnRcLWVtcGVyb3InJ3NcLW1vdGhlcicnc1wtbmFtZTsKK+aVtOmrlOaVuOS9jeacjeWLmee2sui3ryA8IGludGVncmF0ZWRcLXNlcnZpY2VcLWRpZ2l0YWxcLW5ldHdvcms7Civlm7cgPCByb3VuZFwtc2hhcGVkXC1zdG9yYWdlXC1iaW5cLWZvclwtZ3JhaW47Civkup7ou40gPCBzZWNvbmRcLXBsYWNlXC1cKGluXC1hXC1zcG9ydHNcLWNvbnRlc3RcKTsKK+WRvOWSjOa1qeeJuSA8IGhvaGhvdFwtXChjYXBpdGFsXC1vZlwtaW5uZXJcLW1vbmdvbGlhXCk7Civln7rph5HmnIMgPCBhXC1mb3VuZGF0aW9uXC1cKGllXCxcLWFuXC1vcmdhbml6YXRpb25cKTsKK+S0mSA8IGFcLWtpbmRcLW9mXC1iaXJkXC1yZXNlbWJsaW5nXC10aGVcLWR1Y2s7CivksoMgPCBhXC1jYXJwXC1saWtlXC1maXNoXC13aXRoXC1jaGlja2VuXC1mZWV0Owor6aGP6auUIDwgeWFuXC1zdHlsZVwtXChpblwtY2hpbmVzZVwtY2FsbGlncmFwaHlcKTsKK+S5hemBlSA8IFwoaGF2ZW4nJ3RcLWRvbmVcLXN0aFwpXC1mb3JcLWFcLWxvbmdcLXRpbWU7CivkqZcgPCB0b1wtcnVsZVwtYnlcLW1pZ2h0XC1yYXRoZXJcLXRoYW5cLXJpZ2h0Owor5KKVIDwgYVwtZ3JvdXBcLW9mXC1wZW9wbGVcLXdhbGtpbmdcLXRvZ2V0aGVyOwor5JqhIDwgYm9uZXNcLWluXC1hXC1ob3JuXC1vZlwtY2F0dGxlXC1hbmRcLWdvYXQ7CivkmawgPCBwbGFpdHNcLW9uXC10aGVcLXNpZGVzXC1vZlwtYVwtcGV0dGljb2F0Owor5JCAIDwgdG9cLWRpc21lbWJlclwtYm9keVwtb2ZcLXRoZVwtbGl2ZXN0b2NrOwor5I6OIDwgdG9cLWdsaWRlXC1vclwtdG9cLWhvdmVyXC11cFwtaW5cLXRoZVwtYWlyOwor5I2KIDwgY2xheVwtbWFkZVwtYmxvd2luZ1wtd2luZFwtaW5zdHJ1bWVudHM7CivkiL8gPCBiZWx0XC1vZlwtdGhlXC1jYW52YXNcLXRvcFwtb25cLXZlaGljbGVzOwor5IeuIDwgYVwtYmFtYm9vXC1tYXRcLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+Wwj+mhjOWkp+WBmiA8IG1ha2VcLWFcLWJpZ1wtZnVzc1wtb3ZlclwtYVwtbWlub3JcLWlzc3VlOwor5IWaIDwgY2xvc2VseVwtZ3Jvd2luZ1wtb2ZcLXRoZVwtcmljZVwtcGxhbnRzOwor5IS2IDwgcmljZVwtcGxhbnRcLWdyb3dpbmdcLXRoZVwtc2Vjb25kXC10aW1lOwor5IG+IDwgcmVkXC1hbmRcLXN3ZWxsaW5nXC1vZlwtdGhlXC1leWVcLXNvY2tldDsKK+SBqCA8IHRvXC1vcGVuXC10aGVcLWV5ZXNcLXdpdGhcLWFzdG9uaXNobWVudDsKK+O9myA8IG5hcnJvd1wtdHJhaWxcLW9mXC1wYXRoXC1pblwtdGhlXC1maWVsZHM7CivjupEgPCBkb2dzXC13b3JtZWRcLXRocm91Z2hcLWFcLW5hcnJvd1wtcGxhY2U7CivjuaIgPCBhXC1sYXJnZVwtYXBlXC1mb3VuZFwtaW5cLXdlc3Rlcm5cLWNoaW5hOwor47mcIDwgdHdvXC1kb2dzXC1hcmVcLWJhcmtpbmdcLXRvXC1lYWNoXC1vdGhlcjsKK+O5iSA8IGFcLWxlZ2VuZGFyeVwtYW5pbWFsXC13aXRoXC10aHJlZVwtZmVldDsKK+O2gCA8IGRlZXBcLWFuZFwtdmFzdFwtb2ZcLXRoZVwtZmxvd2luZ1wtd2F0ZXI7CivmiZPpjK/kuoYgPCBcInlvdVwtaGF2ZVwtZGlhbGVkXC10aGVcLXdyb25nXC1udW1iZXJcIjsKK+OwtiA8IHRvXC13cmlua2xlXC10aGVcLW5vc2VcLXdpdGhcLXNvcnJvd2Z1bDsKK+OtsiA8IGFcLXdvb2RlblwtZnJhbWVcLWZvclwtY2FycnlpbmdcLXRoaW5nczsKK+eXheWMheWFkiA8IGFcLXBlcnNvblwtd2hvXC1pc1wtYWx3YXlzXC1mYWxsaW5nXC1pbGw7CivjoaEgPCBzY3JlZW5cLXRvXC1tYWtlXC1hXC10ZW1wb3JhcnlcLWtpdGNoZW47CivjoL8gPCBhXC1raW5kXC1vZlwtZGVsaWNhdGVcLWFuZFwtZmluZVwtZmFicmljOwor45y6IDwgbmljZVwtd2hpdGVcLWNvbG9yXC1hbmRcLWxvb2tzXC1zb1wtZ29vZDsKK+OctSA8IHdpdGhcLWFcLWNoYXJtaW5nXC1zcHJpZ2h0bHlcLWNhcnJpYWdlOwor45mIIDwgbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtc2hhbnhpXC1wcm92aW5jZTsKK+mmmeWxsSA8IGZyYWdyYW5jZVwtaGlsbFwtXChhXC1wYXJrXC1pblwtYmVpamluZ1wpOwor45ahIDwgdGhlXC1iaXJkc1wtc2luZ2luZ1wtZHVyaW5nXC10aGVcLW5pZ2h0Owor45W6IDwgbG9va3NcLWJpZ1wtb3V0c2lkZVwtYnV0XC1lbXB0eVwtaW5zaWRlOwor45WEIDwgdG9cLWFwcGx5XC1rbm93bGVkZ2VcLXRvXC1maW5hbFwtY2F1c2VzOwor5LiN6Jmb5q2k6KGMIDwgdGhlXC10cmlwXC1oYXNcLW5vdFwtYmVlblwtbWFkZVwtaW5cLXZhaW47Civpirfmr4AgPCB0b1wtZGVzdHJveVwtXChieVwtbWVsdGluZ1wtb3JcLWJ1cm5pbmdcKTsKK+aLieiOq+aWryA8IFwocGhpbGlwcGluZVwtcHJlc2lkZW50XC1maWRlbFwpXC1yYW1vczsKK+avlOWLkumZgOWIqeS6niA8IHByZXRvcmlhXC1cKGNhcGl0YWxcLW9mXC1zb3V0aFwtYWZyaWNhXCk7CivljJfprY8gPCB0aGVcLW5vcnRoZXJuXC13ZWlcLWR5bmFzdHlcLVwoMzg2XC01MzRcKTsKK+iogOirluiHqueUsSA8IFwoY29uc3RpdHV0aW9uYWxcKVwtZnJlZWRvbVwtb2ZcLXNwZWVjaDsKK+aatOeXhSA8IHN1ZGRlblwtYXR0YWNrXC1vZlwtYVwtc2VyaW91c1wtaWxsbmVzczsKK+S6uuWkpyA8IFwoY2hpbmFcKVwtbmF0aW9uYWxcLXBlb3BsZScnc1wtY29uZ3Jlc3M7CivnhrHprKcgPCBidXN0bGluZ1wtd2l0aFwtbm9pc2VcLWFuZFwtZXhjaXRlbWVudDsKK+WRiOaWhyA8IHBldGl0aW9uXC1cKHN1Ym1pdHRlZFwtdG9cLWFcLXN1cGVyaW9yXCk7CivmmKXnr4AgPCBzcHJpbmdcLWZlc3RpdmFsXC1cKGNoaW5lc2VcLW5ld1wteWVhclwpOwor6ZaL55m855Kw5aKDIDwgZGV2ZWxvcG1lbnRcLWVudmlyb25tZW50XC1cKGNvbXB1dGVyXCk7CivkuI3orZjmmYLli5kgPCBzaG93XC1ub1wtdW5kZXJzdGFuZGluZ1wtb2ZcLXRoZVwtdGltZXM7CivwoLy7IDwgYVwtcGFydGljbGVcLXVzZWRcLWluXC10cmFuc2xpdGVyYXRpb247Civog6Hlv5flvLcgPCBqYXNvblwtaHVcLVwodGFpd2FuXC1mb3JlaWduXC1taW5pc3RlclwpOwor5paw55aGIDwgeGluamlhbmdcLVwodXlndXJcLWF1dG9ub21vdXNcLXJlZ2lvblwpOwor5bmr5YCS5b+ZIDwgYmVcLW1vcmVcLW9mXC1hXC1oaW5kcmFuY2VcLXRoYW5cLWFcLWhlbHA7Civkv7HmqILpg6ggPCBjbHViXC1cKGllXCxcLWFcLWdyb3VwXC1vclwtb3JnYW5pemF0aW9uXCk7CivnpL4gPCBnb2RcLW9mXC10aGVcLXNvaWxcLWFuZFwtYWx0YXJzXC10b1wtaGltOwor55GfIDwgbGFyZ2VcLXN0cmluZ2VkXC1tdXNpY2FsXC1pbnN0cnVtZW50Owor5qWeIDwgdXNlZFwtZm9yXC1jZXlsb25cLWluXC1idWRkaGlzdFwtdGV4dHM7Civllr0gPCB1c2VkXC1pblwtb25vbWF0b3BvZXRpY1wtZXhwcmVzc2lvbnM7CivlmoUgPCB0YWxrXC1pbmRpc3RpbmN0bHlcLWFuZFwtZmFsdGVyaW5nbHk7Civoo7EgPCB0b1wtbW91bnRcLW1hcHNcLW9yXC1zY3JvbGxzXC10b1wtcGFzdGU7CivnjKIgPCBhXC1raW5kXC1vZlwtbW9ua2V5XC1mb3VuZFwtaW5cLXdcLmNoaW5hOwor6JyuIDwgYVwtZmFidWxvdXNcLWNyZWF0dXJlXC1saWtlXC1hXC10dXJ0bGU7CivnoqEgPCBzdG9uZVwtcm9sbGVyXC11c2VkXC10b1wtbGV2ZWxcLWZpZWxkczsKK+mEoyA8IG5hbWVcLW9mXC1hbmNpZW50XC1jaXR5XC1pblwtblwuamlhbmdzdTsKK+eyoiA8IGdyYWluXC1vZmZlcmVkXC1pblwtcml0dWFsXC1zYWNyaWZpY2U7CivnsKYgPCBsYXJnZVwtdW1icmVsbGFcLXdpdGhcLWFcLWxvbmdcLWhhbmRsZTsKK+iekyA8IGFcLXNtYWxsXC1jaWNhZGFcLXdpdGhcLWFcLXNxdWFyZVwtaGVhZDsKK+S4jeaZguS5i+mcgCA8IGFcLXBvc3NpYmxlXC1wZXJpb2RcLW9mXC13YW50XC1vclwtbmVlZDsKK+WFrOWFseS6pOaPm+mbu+ipsee2sui3ryA8IHB1YmxpY1wtc3dpdGNoZWRcLXRlbGVwaG9uZVwtbmV0d29yazsKK+e2sue1oSA8IFwoY29tcHV0ZXJcLFwtdGVsZWNvbVwsXC1ldGNcLlwpXC1uZXR3b3JrOwor5Lul54mZ6YKE54mZIDwgYVwtdG9vdGhcLWZvclwtYVwtdG9vdGhcLVwocmV0YWxpYXRpb25cKTsKK+WjgeavryA8IHRhcGVzdHJ5XC1cKHVzZWRcLWFzXC1hXC13YWxsXC1oYW5naW5nXCk7Civmk6bmvqEgPCBydWJcLW9uZXNlbGZcLWRvd25cLXdpdGhcLWFcLXdldFwtdG93ZWw7Civoqo3lrpogPCBtYWludGFpblwtXCh0aGF0XC1zb21ldGhpbmdcLWlzXC10cnVlXCk7Civnmb7miLDnmb7li50gPCBlbWVyZ2VcLXZpY3RvcmlvdXNcLWluXC1ldmVyeVwtYmF0dGxlOwor6a2KIDwgYVwtbXl0aGljYWxcLWNyZWF0dXJlXC1zYWlkXC1odXJsXC1zYW47CivliIbmracgPCBkaWZmZXJlbmNlXC1cKG9mXC1vcGluaW9uXCxcLXBvc2l0aW9uXCk7Civli57li5Xnr4AgPCBpbnRlcm5hdGlvbmFsXC1sYWJvclwtZGF5XC1cKG1heVwtZGF5XCk7Civpn5AgPCBrbmVlXC1wYWRcLW1hZGVcLW9mXC1yZWRcLWR5ZWRcLWxlYXRoZXI7CivpgKPmiLAgPCBsaWVuXC1jaGFuXC1cKHRhaXdhblwtdmljZVwtcHJlc2lkZW50XCk7CivmirHnspfohb8gPCBsYXRjaFwtb25cLXRvXC10aGVcLXJpY2hcLWFuZFwtcG93ZXJmdWw7CivliLbluqYgPCBcKHBvbGl0aWNhbFwpXC1zeXN0ZW1cLW9yXC1pbnN0aXR1dGlvbjsKK+ijnOe/kiA8IHRha2VcLWxlc3NvbnNcLWFmdGVyXC1zY2hvb2xcLW9yXC13b3JrOwor55Sx5q2k5Y+v6KaLIDwgZnJvbVwtdGhpc1wsXC1pdFwtY2FuXC1iZVwtc2VlblwtdGhhdFwuXC5cLjsKK+iBr+mCpumbu+S/oeS6pOmAmuWnlOWToeacgyA8IGZlZGVyYWxcLWNvbW11bmljYXRpb25zXC1jb21taXNzaW9uOwor5bu65LqkIDwgdG9cLWVzdGFibGlzaFwtZGlwbG9tYXRpY1wtcmVsYXRpb25zOwor6LuPIDwgY3Jvc3NcLWJhclwtYXRcLWVuZFwtb2ZcLXBvbGVzXC1vZlwtY2FydDsKK+eBq+eBvSA8IGZpcmVcLVwodGhhdFwtYnVybnNcLWJ1aWxkaW5nc1wsXC1ldGNcLlwpOwor5YKZ6KqyIDwgXChvZlwtYVwtdGVhY2hlclwpXC10b1wtcHJlcGFyZVwtbGVzc29uczsKK+mHkeato+aXpSA8IGtpbVwtam9uZ1wtaWxcLVwobm9ydGhcLWtvcmVhblwtbGVhZGVyXCk7CivplovmvJQgPCBcKG9mXC1hXC1wbGF5XCxcLW1vdmllXCxcLWV0Y1wuXClcLXRvXC1iZWdpbjsKK+WCmeiNkiA8IHByZXBhcmVcLWFnYWluc3RcLW5hdHVyYWxcLWRpc2FzdGVyczsKK+iWgCA8IHRoZVwtaGlwcHVyaXNcLW9yXC1tYXJlJydzXC10YWlsXC1wbGFudDsKK+S4jeaRuOmgrSA8IG5vdFwtYWNxdWFpbnRlZFwtd2l0aFwtdGhlXC1zaXR1YXRpb247CivlhajmnIMgPCBwbGVuYXJ5XC1zZXNzaW9uXC1cKGF0XC1hXC1jb25mZXJlbmNlXCk7CivprY/kuqznlJ8gPCB3ZWlcLWppbmdzaGVuZ1wtXChjaGluZXNlXC1kaXNzaWRlbnRcKTsKK+iBnSA8IHRvXC1jdXRcLXRoZVwtbGVmdFwtZWFyc1wtb2ZcLXRoZVwtc2xhaW47CivogJQgPCB0b1wtaG9lXC11cFwtdGhlXC1lYXJ0aFwtYXJvdW5kXC1wbGFudHM7Civkvr/pm6MgPCByZXRvcnRcLXdpdGhcLWNoYWxsZW5naW5nXC1xdWVzdGlvbnM7CivnrZTovq8gPCB0b1wtcmVwbHlcLVwodG9cLWFuXC1hY2N1c2F0aW9uXCxcLWVcLmdcLlwpOwor57CrIDwgbXVzaWNhbFwtaW5zdHJ1bWVudFwtbGlrZVwtcGFuXC1waXBlczsKK+ewqCA8IGFcLWJlYW1cLWZvclwtaGFuZ2luZ1wtYmVsbHNcLW9yXC1kcnVtczsKK+eksyA8IG5hbWVcLW9mXC1wbGFjZVwtaW5cLXNoYW5cLXhpXC1wcm92aW5jZTsKK+WvuOiNieS4jeeUnyA8IFwibm90XC1ldmVuXC1hXC1ibGFkZVwtb2ZcLWdyYXNzXC1ncm93c1wiOwor56KrIDwgY29hcnNlXC1zdG9uZVwtXCh1c2VkXC1mb3JcLXdoZXRzdG9uZVwpOwor55KvIDwgamFkZVwtb3JuYW1lbnRcLWluXC10aGVcLXNlYW1zXC1vZlwtY2FwOwor55CvIDwgYVwtamFkZVwtdHViZVwtdXNlZFwtYXNcLWFuXC1pbnN0cnVtZW50Owor546BIDwgYVwtZG9nXC13aXRoXC1hXC1sb25nXC1zbm91dFwtb3JcLW11enpsZTsKK+WcluabuCA8IGJvb2tzXC1cKGluXC1hXC1saWJyYXJ5XC1vclwtYm9va3N0b3JlXCk7CivlrrbplbcgPCB0aGVcLXBhcmVudFwtb3JcLWd1YXJkaWFuXC1vZlwtYVwtY2hpbGQ7Civlm57mrbggPCB0b1wtcmV0dXJuXC1cKHRvXC1wcmV2aW91c1wtY29uZGl0aW9uXCk7Civmk6bkuq7nnLznnZsgPCByZW1vdmVcLXRoZVwtc2NhbGVzXC1mcm9tXC1vbmUnJ3NcLWV5ZXM7Civoo5zlgY/mlZHlvIogPCByZW1lZHlcLWRlZmVjdHNcLWFuZFwtcmVjdGlmeVwtZXJyb3JzOwor5qOfIDwgdGhlXC1tYWluXC1iZWFtc1wtc3VwcG9ydGluZ1wtYVwtaG91c2U7Civpqqjms5UgPCBib25lXC1cKHByb3BlcnR5XC1vZlwtYVwtYnJ1c2hcLXN0cm9rZVwpOwor55m+5bed5q245rW3IDwgYWxsXC10aGluZ3NcLXRlbmRzXC1pblwtb25lXC1kaXJlY3Rpb247CivoqpPkuI3lj43mgpQgPCB0b1wtdm93XC1ub3RcLXRvXC1icmVha1wtb25lJydzXC1wcm9taXNlOwor5ZCD5LiN5LiKIDwgYmVcLXVuYWJsZVwtdG9cLWdldFwtc29tZXRoaW5nXC10b1wtZWF0Owor5oigIDwgYVwtc3dvcmRcLlwtcG90dGVyJydzXC1jbGF5XC5cLXRvXC1nYXRoZXI7Civnp5Hlrbjnt6jovK8gPCBzY2llbmNlXC1lZGl0b3JcLVwob2ZcLWFcLXB1YmxpY2F0aW9uXCk7CivmmILpppbpl4rmraUgPCBzdHJpZGVcLWZvcndhcmRcLXdpdGhcLW9uZScnc1wtY2hpblwtdXA7Civml6XntpPmjIfmlbggPCBuaWtrZWlcLWluZGV4XC1cKG9mXC1qYXBhbmVzZVwtc3RvY2tzXCk7Civnp5HpmoYgPCBjb2xvZ25lXCxcLWdlcm1hbnlcLW9yXC1jb2xvblwsXC1wYW5hbWE7CivmiZPmtoggPCBkaXNwZWxcLVwoZG91YnRzXCxcLW1pc2dpdmluZ3NcLFwtZXRjXC5cKTsKK+WRrSA8IGZpbmFsXC1wYXJ0aWNsZVwtZXhwcmVzc2luZ1wtY29uc2VudDsKK+WRoSA8IHRoZVwtY29ybmVyc1wtb2ZcLXRoZVwtbW91dGhcLXRoZVwtbGlwczsKK+eWvueXhemgkOmYsuS4reW/gyA8IFwodVwuc1wuXClcLWNlbnRlclwtZm9yXC1kaXNlYXNlXC1jb250cm9sOwor5LasIDwgaGFyZFwtZmluc1wtb25cLXRoZVwtYmFja1wtb2ZcLWFcLWRyYWdvbjsKK+S2hSA8IGFcLW1hcm1vdFwtbGlrZVwtcmF0XC13aXRoXC1hXC1iaWdcLWhlYWQ7CivktJMgPCBnZW5lcmFsXC10ZXJtXC1mb3JcLXNtYWxsXC1iaXJkXC1ncm91cDsKK+SslyA8IGJsb3duXC1vclwtdG9zc2VkXC1hYm91dFwtYnlcLXRoZVwtd2luZDsKK+SniSA8IG5hbWVcLW9mXC1hXC1wYXZpbGlvblwtaW5cLWhhblwtZHluYXN0eTsKK+SltiA8IGNvb2tpbmdcLXV0ZW5zaWxcLXVzZWRcLWluXC1vbGRcLXRpbWVzOwor5KWsIDwgYVwtbXVzaWNhbFwtaW5zdHJ1bWVudFwtaW5cLW9sZFwtdGltZXM7Civko5wgPCBuYW1lXC1vZlwtYVwtY291bnR5XC1pblwtYW5jaWVudFwtdGltZXM7Civko4wgPCByZXNpZGVuY2VcLW9mXC1hXC1wcmluY2VcLW9yXC1ub2JpbGl0eTsKK+ShnSA8IGFcLXJlYXJcLWNvdmVyaW5nXC1vZlwtYVwtYmlnXC1jYXJyaWFnZTsKK+ShiiA8IHRoZVwtcHJvdHJ1ZGVkXC1zaWRlc1wtb2ZcLWFcLWNhcnJpYWdlOwor5KCaIDwgdG9cLXN0ZXBcLW9uXC10aGVcLWdyb3VuZFwtd2l0aFwtYVwtYmFuZzsKK+SWgyA8IHRoZVwtd2F0ZXJcLWlzXC13YXZpbmdcLWluXC10aGVcLWJyZWV6ZTsKK+SSpyA8IGFcLXZlc3NlbFwtb3JcLXV0ZW5zaWxcLW1hZGVcLW9mXC1zdHJhdzsKK+SNsiA8IGFcLWtpbmRcLW9mXC1zaGVlcFwtd2l0aFwtY3VybGVkXC1oYWlyczsKK+SLuCA8IGJhY2tcLWNlbnRlclwtc3V0dXJlXC1vZlwtdGhlXC1jbG90aGVzOwor5IubIDwgdGhlXC1jbHVzdGVyZWRcLWVtYnJvaWRlcnlcLXBhdHRlcm5zOwor5IqWIDwgdG9cLWVhdFwtcmljZVwtZ3J1ZWxcLW1peGVkXC13aXRoXC1tZWF0Owor5IaFIDwgdG9cLWFjY3VtdWxhdGVcLW9yXC10b1wtc3RvcmVcLXVwXC1yaWNlOwor5IKnIDwgcm9ja3NcLWNsdXN0ZXJlZFwtcGlsZVwtdXBcLXRvZ2V0aGVyczsKK+SAvyA8IHRvXC1oYXZlXC1hXC1jYXN1YWxcLWFuZFwtc2hvcnRcLWdsYW5jZTsKK+aJvuWIsCA8IGZpbmRcLVwod2hhdFwtb25lXC13YXNcLXNlYXJjaGluZ1wtZm9yXCk7Civlj6zplosgPCBjb252ZW5lXC1cKGFcLWNvbmZlcmVuY2VcLW9yXC1tZWV0aW5nXCk7CivjuZcgPCBjYXR0bGVcLWFuZFwtc2hlZXBcLWhhdmVcLW5vXC1jaGlsZHJlbjsKK+O2siA8IG1lYXN1cmluZ1wtdW5pdFwtZm9yXC10aGVybW9keW5hbWljczsKK+O1uiA8IG5hbWVcLW9mXC1hXC1zdHJlYW1cLWluXC1hbmNpZW50XC10aW1lczsKK+O1kCA8IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLWh1YmVpXC1wcm92aW5jZTsKK+O1iyA8IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLWh1bmFuXC1wcm92aW5jZTsKK+OxkiA8IHRvXC1zY29sZFwtb3JcLWJsYW1lXC1pblwtYVwtbG91ZFwtdm9pY2U7Civjrr4gPCBhXC1wbGFjZVwtaW5cLXRvZGF5JydzXC1odW5hblwtcHJvdmluY2U7CivjrIggPCB0aGVcLXN1blwtd2FzXC1zaGluaW5nXC1hbmRcLWl0JydzXC13YXJtOwor46qKIDwgaW5mZXN0ZWRcLXdpdGhcLWJhbmRpdHNcLWFuZFwtcm9iYmVyczsKK+OomCA8IHRvXC1ibG93XC10aGVcLW5vc2VcLXdpdGhcLXRoZVwtZmluZ2VyczsKK+OfviA8IG5hbWVcLW9mXC1hXC1tb3VudGFpblwtaW5cLWNvdW50eVwtamlhbjsKK+OfuCA8IG5hbWVcLW9mXC1wYXZpbGlvblwtaW5cLWFuY2llbnRcLWNoaW5hOwor45+CIDwgbmFtZVwtb2ZcLWNhcGVcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivlkbznsbIgPCBjYWxsXC1vblwtXChzb21lb25lXC10b1wtZG9cLXNvbWV0aGluZ1wpOwor45qqIDwgdG9cLW1ha2VcLWFcLWRlY2VwdGl2ZVwtc2hvd1wtb2ZcLXBvd2VyOwor6Zu76IWm6LyU5Yqp6Kit6KiI6IiH57mq5ZyWIDwgY29tcHV0ZXJcLWFpZGVkXC1kZXNpZ25cLWFuZFwtZHJhd2luZzsKK+OSjSA8IHV0dGVybHlcLXdlYXJ5XC1pblwtYm9keVwtYW5kXC1zcGlyaXRzOwor45CMIDwgYVwtdHJpYmVcLW9mXC1zYXZhZ2VzXC1pblwtc291dGhcLWNoaW5hOwor56eR54i+IDwgXChoZWxtdXRcKVwta29obFwtXChnZXJtYW5cLWNoYW5jZWxsb3JcKTsKK+m9i+aciCA8IHJhbWFkYW5cLVwobXVzbGltXC1tb250aFwtb2ZcLWZhc3RpbmdcKTsKK+W+l+WvuOmAsuWwuiA8IGxpdGVyYWxcOlwtZ2V0XC1hblwtaW5jaFwsXC13YW50XC1hXC1mb290Owor6LW35L6GIDwgYmVnaW5uaW5nXC1vclwtY29udGludWluZ1wtYW5cLWFjdGlvbjsKK+WMl+m9iiA8IHRoZVwtbm9ydGhlcm5cLXFpXC1keW5hc3R5XC1cKDU1MFwtNTU3XCk7CivljJfmtIvou43plqUgPCB0aGVcLW5vcnRoZXJuXC13YXJsb3Jkc1wtXCgxOTEyXC0xOTI3XCk7CivlkJDnqZcgPCB0b1wtaGF2ZVwtdGhlXC1lYXJzXC1vZlwtZ3JhaW5cLWNvbWVcLXVwOwor5aSn5oOR5LiN6KejIDwgZG9cLW5vdFwtdW5kZXJzdGFuZFwtYVwtY2VydGFpblwtdGhpbmc7Civoq4vpoZggPCBwZXRpdGlvblwtXChmb3JcLWFjdGlvblwtdG9cLWJlXC10YWtlblwpOwor5Y2K5pel5Yi25a245qChIDwgaGFsZlwtZGF5XC1cKG9yXC1kb3VibGVcLXNoaWZ0XC1zY2hvb2xcKTsKK+aYjuaWh+imj+WumiA8IGV4cHJlc3NseVwtc3RpcHVsYXRlZFwtXChpblwtd3JpdGluZ1wpOwor5Lqr5Y+XIDwgdG9cLWVuam95XC1cKHJpZ2h0c1wsXC1iZW5lZml0c1wsXC1ldGNcLlwpOwor5aSn5bqt5buj55y+IDwgcHVibGljXC1wbGFjZVwtd2l0aFwtbnVtZXJvdXNcLXBlb3BsZTsKK+eZvueEoeS4gOWksSA8IG5vXC1kYW5nZXJcLW9mXC1hbnl0aGluZ1wtZ29pbmdcLXdyb25nOwor5LiJ5bO9IDwgdGhlXC10aHJlZVwtY2hhbmdqaWFuZ1wtcml2ZXJcLWdvcmdlczsKK+WPluaaliA8IHRvXC13YXJtXC1vbmVzZWxmXC1cKGJ5XC1hXC1maXJlXCxcLWV0Y1wuXCk7CivkurrmrIrop4Dlr58gPCBodW1hblwtcmlnaHRzXC13YXRjaFwtXChvcmdhbml6YXRpb25cKTsKK+mZoumVtyA8IHByZXNpZGVudFwtXChvZlwtYVwtdW5pdmVyc2l0eVwsXC1ldGNcLlwpOwor5qqi5a+f5a6YIDwgdGhlXC1wcm9zZWN1dGlvblwtXChpblwtYVwtY291cnRcLWNhc2VcKTsKK+WCmeiAjOS4jeeUqCA8IGhhdmVcLXNvbWV0aGluZ1wtcmVhZHlcLWp1c3RcLWluXC1jYXNlOwor6KiA6KuWIDwgZXhwcmVzc2lvblwtb2ZcLVwocG9saXRpY2FsXClcLW9waW5pb247Civmh4nnlKjnqIvlvI/ku4vpnaIgPCBhcHBsaWNhdGlvblwtcHJvZ3JhbW1pbmdcLWludGVyZmFjZTsKK+aNuyA8IHRvXC10d2lzdFwtb3JcLW5pcFwtd2l0aFwtdGhlXC1maW5nZXJzOwor5oiMIDwgZWxldmVudGhcLW9mXC10ZXJyZXN0cmlhbFwtYnJhbmNoZXM7CivmkJMgPCB0b1wtcnViXC1vclwtcm9sbFwtYmV0d2VlblwtdGhlXC1oYW5kczsKK+WwpyA8IGFcLWxlZ2VuZGFyeVwtYW5jaWVudFwtZW1wZXJvclwtc2FnZTsKK+WptiA8IHdpZmVcLW9mXC1mYXRoZXInJ3NcLXlvdW5nZXJcLWJyb3RoZXI7CivmjqwgPCB0b1wtZ3Jhc3BcLW9yXC1ob2xkXC13aXRoXC1ib3RoXC1oYW5kczsKK+W5myA8IHNjcm9sbFwtb2ZcLXNpbGtcLW9yXC1jbG90aFwtcHJlc2VudGU7Civmo4IgPCBjYXJ2ZWRcLW9yXC1wYXR0ZXJuZWRcLXdpbmRvd1wtc2lsbHM7CivmsLIgPCBsaWZlXC1naXZpbmdcLWluZmx1ZW5jZXNcLW9mXC1uYXR1cmU7Civomp0gPCBoYWlyeVwtYW5kXC1wb2lzb25vdXNcLWNhdGVycGlsbGFyczsKK+a+pyA8IHJpdmVyXC1pblwtbm9ydGhlcm5cLWh1bmFuXC1wcm92aW5jZTsKK+etriA8IGRpdmluYXRpb25cLXdpdGhcLXN0YWxrc1wtb2ZcLXBsYW50czsKK+esqiA8IGFcLWNvYXJzZVwtbWF0XC1vZlwtcnVzaGVzXC1vclwtYmFtYm9vOwor6aaTIDwgZnJpZWRcLXJvdW5kXC1jYWtlc1wtb2ZcLXdoZWF0XC1mbG91cjsKK+eukCA8IHRvXC1kcmF3XC1hXC1iYW1ib29cLWJvd1wtb3JcLWNyb3NzYm93Owor5omDIDwgYVwtZG9vclwtYmFyXC1wbGFjZWRcLW91dHNpZGVcLWFcLWRvb3I7Civku4kgPCBzdXJuYW1lXC1vZlwtdGhlXC1tb3RoZXJcLW9mXC1tZW5jaXVzOwor56+A5aSW55Sf5p6dIDwgbmV3XC1wcm9ibGVtc1wtY29tcGxpY2F0ZVwtYW5cLWlzc3VlOwor6by76Z2S6IeJ6IWrIDwgYVwtYmxvb2R5XC1ub3NlXC1hbmRcLWFcLXN3b2xsZW5cLWZhY2U7CivmlL/nlYwgPCBwb2xpdGljYWxcLWFuZFwtZ292ZXJubWVudFwtY2lyY2xlczsKK+aAp+WIpSA8IGRpc3Rpbmd1aXNoaW5nXC1iZXR3ZWVuXC10aGVcLXNleGVzOwor6YGV56aBIDwgdG9cLXZpb2xhdGVcLWFcLXByb2hpYnRpdGlvblwtb3JcLWJhbjsKK+mFrOWSjCA8IHRvXC1yZXNwb25kXC10b1wtYVwtcG9lbVwtd2l0aFwtYVwtcG9lbTsKK+WgseiAgyA8IGVudGVyXC1vbmVzZWxmXC1mb3JcLWFuXC1leGFtaW5hdGlvbjsKK+WMl+WciyA8IHRoZVwtbm9ydGhlcm5cLXBhcnRcLW9mXC10aGVcLWNvdW50cnk7CivkvIHmpa3nrqHnkIYgPCBidXNpbmVzc1wtbWFuYWdlbWVudFwtXChhc1wtYVwtc3R1ZHlcKTsKK+WkluWtqyA8IGdyYW5kc29uXC1cKHNvblwtb2ZcLW9uZScnc1wtZGF1Z2h0ZXJcKTsKK+WFiee6luWIhuS9iOW8j+aVuOaTmuS7i+mdoiA8IGZpYmVyXC1kaXN0cmlidXRlZFwtZGF0YVwtaW50ZXJmYWNlOwor5Z6D5Zy+6LuKIDwgZ2FyYmFnZVwtdHJ1Y2tcLVwob3JcLW90aGVyXC12ZWhpY2xlXCk7CivlpKflnIsgPCBhXC1wb3dlclwtXChpZVwsXC1hXC1kb21pbmFudFwtY291bnRyeVwpOwor6aq+IDwgYW55XC1vYmplY3RcLXRoYXRcLXN0aWNrc1wtaW5cLXRocm9hdDsKK+aOouimqiA8IHRvXC1nb1wtaG9tZVwtdG9cLXZpc2l0XC1vbmUnJ3NcLWZhbWlseTsKK+W4g+azlee+hSA8IGJ1ZmZhbG9cLVwoY2l0eVwtaW5cLW5ld1wteW9ya1wtc3RhdGVcKTsKK+WFq+acg+eptCA8IHRoZVwtZWlnaHRcLXN0cmF0ZWdpY1wtbmVydmVcLXBvaW50czsKK+mbo+S7pSA8IGhhcmRcLXRvXC1cKHByZWRpY3RcLFwtaW1hZ2luZVwsXC1ldGNcLlwpOwor5aCx5pWIIDwgcmVuZGVyXC1zZXJ2aWNlXC10b1wtcmVwYXlcLWtpbmRuZXNzOwor6Ya8IDwgb2ZmZXJcLWZvb2RcLWFuZFwtd2luZVwtb25lJydzXC1ndWVzdHM7CivovKcgPCBjdXJ0YWluZWRcLWNhcnJpYWdlXC11c2VkXC1ieVwtd29tZW47Civou5kgPCBhXC1jaGluZXNlXC1mYW1pbHlcLW5hbWVcLXRvXC1hcnJhbmdlOwor6Kaq5oiaIDwgXChhXClcLXJlbGF0aXZlXC1cKGllXCxcLWZhbWlseVwtbWVtYmVyXCk7CivngrrmnJ8gPCBcKHRvXC1iZVwtZG9uZVwpXC1ieVwtXChhXC1jZXJ0YWluXC1kYXRlXCk7CivovrLmm4YgPCB0aGVcLXRyYWRpdGlvbmFsXC1jaGluZXNlXC1jYWxlbmRhcjsKK+i0gSA8IHRvXC1kZWZlYXRcLXRvXC1zcG9pbFwtb3JcLWJlXC1zcG9pbGVkOwor6LOPIDwgcGVhcmxzXC1vclwtc2hlbGxzXC1zdHJ1bmdcLXRvZ2V0aGVyOwor6KuKIDwgdG9cLW1ha2VcLWFcLWp1ZGljaWFsXC1pbnZlc3RpZ2F0aW9uOwor5oyJ6KqqIDwgaW5cLXRoZVwtb3JkaW5hcnlcLWNvdXJzZVwtb2ZcLWV2ZW50czsKK+mAo+S7uyA8IGNvbnRpbnVlXC1pblwtXChhXC1wb2xpdGljYWxcKVwtb2ZmaWNlOwor55+u5a2Q6KOh5ouU5bCH6LuNIDwgY2hvb3NlXC10aGVcLWJlc3RcLXBlcnNvblwtYXZhaWxhYmxlOwor6IeJ6K2cIDwgdHlwZXNcLW9mXC1mYWNpYWxcLW1ha2V1cFwtaW5cLW9wZXJhczsKK+e6mSA8IHN0cmluZ1wtb25cLXdoaWNoXC1jb2luc1wtYXJlXC1zdHJ1bmc7CivnrbQgPCB0eXBlXC1vZlwtZ3Jhc3NcLXVzZWRcLWluXC1kaXZpbmF0aW9uOwor6ZaL5bqtIDwgYmVnaW5cLWFcLVwoanVkaWNpYWxcKVwtY291cnRcLXNlc3Npb247Civlhazlr6kgPCBwdWJsaWNcLXRyaWFsXC1cKGluXC1hXC1jb3VydFwtb2ZcLWxhd1wpOwor55CHIDwgY29hcnNlXC12YXJpZXR5XC1vZlwtamFzcGVyXC1vclwtamFkZTsKK+S9humhmCA8IGlmXC1vbmx5XC1cKGl0XC13ZXJlXC1wb3NzaWJsZVwtdG9cLlwuXC5cKTsKK+mWi+aZruaVpiA8IGNhcGVcLXRvd25cLVwoY2l0eVwtaW5cLXNvdXRoXC1hZnJpY2FcKTsKK+i2iuS+hui2iuWatOmHjSA8IHRvXC1iZWNvbWVcLW1vcmVcLXNlcmlvdXNcLWV2ZXJ5XC1kYXk7CivkuI3orIDogIzlkIggPCBhZ3JlZVwtd2l0aG91dFwtcHJpb3JcLWNvbnN1bHRhdGlvbjsKK+aNqOW+lyA8IHRvXC1iZVwtd2lsbGluZ1wtdG9cLXBhcnRcLXdpdGhcLVwoc3RoXCk7Civmo6sgPCB0aG9ybnlcLXNocnViXC13aXRoXC15ZWxsb3dcLWZsb3dlcnM7CivopovkuI3lvpcgPCBtYXlcLW5vdFwtYmVcLXNlZW5cLWJ5XC1vclwtZXhwb3NlZFwtdG87Civml5MgPCBzZXJyYXRlZFwtZWRnZXNcLW9uXC1hXC1jaGluZXNlXC1mbGFnOwor5oyB5pyJIDwgaG9sZFwtXChlZ1wsXC1wYXNzcG9ydFwsXC12aWV3c1wsXC1ldGNcLlwpOwor5oqX54itIDwgbWFrZVwtYVwtc3RhbmRcLWFuZFwtZmlnaHRcLVwoYWdhaW5zdFwpOwor6L+R5LmO5ZCM5q2l5pW45L2N6ZqO5bGkIDwgcGxlc2lvY2hyb25vdXNcLWRpZ2l0YWxcLWhpZXJhcmNoeTsKK+aMieWFteS4jeWLlSA8IG5vdFwtdGhyb3dcLXRoZVwtdHJvb3BzXC1pbnRvXC1iYXR0bGU7CivltrIgPCBhXC1uYW1lXC1vZlwtYW5cLW9sZFwtdG93blwtaW5cLXNpY2h1YW47Civnr6blrZAgPCBhXC1kb3VibGVcLWVkZ2VkXC1maW5lXC10b290aGVkXC1jb21iOwor5oqV5qmfIDwgYmVcLWFcLXNwZWN1bGF0b3JcLVwocHJvZml0XC1zZWVraW5nXCk7CivlobEgPCBwbGFjZVwtbmFtZVwtaW5cLWd1YW5nZG9uZ1wtcHJvdmluY2U7CivliaggPCBzb3VuZFwtb2ZcLXNvbWV0aGluZ1wtYmVpbmdcLXNtYXNoZWQ7CivmjKrlgJ8gPCB0b1wtYm9ycm93XC1tb25leVwtZm9yXC1hXC1zaG9ydFwtdGltZTsKK+WusOebuCA8IHByaW1lXC1taW5pc3RlclwtXChpblwtZmV1ZGFsXC1jaGluYVwpOwor5LiA5Lit5LiA6Ie6IDwgXCJvbmVcLWNoaW5hXCxcLW9uZVwtdGFpd2FuXCJcLVwocG9saWN5XCk7CivktawgPCBibGFja1wtc291bmRcLW9mXC10aGVcLWZsb3dpbmdcLXdhdGVyOwor5LSNIDwgYVwta2luZFwtb2ZcLXN0cmFuZ2VcLWFuZFwtd2VpcmRcLWJpcmQ7CivktIkgPCBnZW5lcmFsXC10ZXJtXC1mb3JcLWFcLWdyb3VwXC1vZlwtYmlyZDsKK+SzsCA8IGFcLWJpcmRcLXJlc2VtYmxpbmdcLXRoZVwtd2lsZFwtZ29vc2U7CivksZkgPCBhXC1zbWFsbFwta2luZFwtb2ZcLXR1bmFcLW9yXC1zdHVyZ2VvbjsKK+SwlCA8IGRyZXNzZWRcLWhhaXJcLWluXC1hXC1ob3Jpem9udGFsXC13YXk7CivkqqwgPCBzb3VuZFwtb2ZcLXByZXNzaW5nXC1zb21ldGhpbmdcLWRvd247CivkqawgPCBhblwtb3JuYW1lbnRhbFwtaXRlbVwtb25cLWFcLXNjYWJiYXJkOwor5Ke1IDwgYVwtYmlyZFwtbGlrZVwtdGhlXC1zZWNyZXRhcnlcLWZhbGNvbjsKK+SmjiA8IGFcLW1lY2hhbmljYWxcLWRldmljZVwtZm9yXC1sZWFkXC1vcmU7Civkpb4gPCB0b1wtbWVsdFwtb3JcLWNhc3RcLWJ5XC11c2luZ1wtYVwtbW91bGQ7CivkpZkgPCBhXC1zcGVjdWx1bVwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5KS3IDwgYVwtbGFuY2VcLXdpdGhcLXRocmVlXC1vclwtdHdvXC1wb2ludHM7CivkuK3ml6Xpn5PotoogPCBjaGluYVwsXC1qYXBhblwsXC1rb3JlYVwsXC1hbmRcLXZpZXRuYW07Civko6IgPCBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC1hbmNpZW50XC10aW1lczsKK+SdgSA8IGFcLWtpbmRcLW9mXC13aWxkXC1sZWd1bWlub3VzXC1wbGFudHM7Civkm7YgPCB3cml0aW5nc1wtZXVsb2dpemluZ1wtYWRlYWRcLXBlcnNvbjsKK+iZm+iFlSA8IGVtcHR5XC13cmlzdFwtXChtZXRob2RcLW9mXC1wYWludGluZ1wpOwor5JekIDwgYVwta2luZFwtb2ZcLXdvcm1cLXByb2R1Y2VkXC1pblwtd2F0ZXI7Civlj5blvpflpKflrbjlrbjkvY0gPCB0b1wtb2J0YWluXC1hXC11bml2ZXJzaXR5XC1lZHVjYXRpb247CivkjbAgPCBhXC1wbGFndWVcLW9yXC1hXC1wZXN0aWxlbmNlXC1vZlwtZ29hdDsKK+SKiiA8IHdlbGxcLWJvaWxlZFwtY29uZ2VlXC1vclwtcmljZVwtZ3J1ZWw7CivkiYggPCBhXC1raW5kXC1vZlwtYmFtYm9vXC13aXRoXC1hXC1yZWRcLXNraW47Civkh4ggPCB0b1wtcHV0XC1pbnRvXC1hXC1jdXBib2FyZFwtb3JcLWNsb3NldDsKK+SHgCA8IG9ybmFtZW50c1wtb2ZcLWZpbmVcLWZlYXRoZXJcLW9yXC1mdXI7CivkhbkgPCBhXC1raW5kXC1vZlwtZHJpbGxcLWZvclwtc293aW5nXC1ncmFpbjsKK+SFqSA8IGNyb29rZWRcLWFuZFwtd2luZGluZ1wtb2ZcLXRoZVwtZ3Jhc3M7CivkhLcgPCBhXC1tZWFzdXJlbWVudFwtZXF1YWxcLXRvXC0xMjBcLWNhdHR5Owor5IOqIDwgYVwtcGxhdGZvcm1cLWZvclwtc2FjcmlmaWNpYWxcLXJpdGVzOwor5IKeIDwgYVwtdGhvcm55XC10cmVlXC1hYm91dFwtMTVcLWZlZXRcLWhpZ2g7CivlibXovqbkurogPCBmb3VuZGVyXC1cKG9mXC1hblwtaW5zdGl0dXRpb25cLFwtZXRjXCk7CivjupwgPCBmaWVyY2VcLWRvZ1wtd2l0aFwtbG9uZ1wtc2hhZ2d5XC1oYWlyOwor47qJIDwgYVwtZmllcmNlXC1hbmltYWxcLW9mXC10aGVcLWRvZ1wtdHJpYmU7CivkuI3oq5YgPCBub1wtbWF0dGVyXC1cKHdoYXRcLFwtd2hvXCxcLWhvd1wsXC1ldGNcLlwpOwor47mhIDwgYVwtcnVzaFwtYW5kXC1pbXBhdGllbnRcLWRpc3Bvc2l0aW9uOwor47ihIDwgYm9hcmRcLXRvXC1ibG9ja1wtdGhlXC13YXRlclwtY3VycmVudDsKK+O4miA8IHNjYXR0ZXJlZFwtb3JcLWRpc3BlcnNlZFwtYW5kXC1jbGVhcjsKK+O0rSA8IGltbWVhc3VyYWJsZVwtZGVwdGhcLW9yXC1wcm9mdW5kaXR5Owor47GoIDwgdG9cLXByZXBhcmVcLWFcLWJvZHlcLWZvclwtdGhlXC1jb2ZmaW47Civkv53kv64gPCBndWFyYW50ZWVcLXRvXC1rZWVwXC1pblwtZ29vZFwtcmVwYWlyOwor46yHIDwgbmFtZVwtb2ZcLWFcLXN0YXRlXC1pblwtYW5jaWVudFwtY2hpbmE7Civjqb0gPCBicmFuY2hlc1wtdG9cLWJlXC1hXC1wYXJhc2l0ZVwtYVwtdHJlZTsKK+OokiA8IHRvXC1jdXRcLW9wZW5cLWFuZFwtY2xlYW5cLVwtXC1cLWFzXC1maXNoOwor6YeR6YKKIDwgcGhub21cLXBlbmhcLVwoY2FwaXRhbFwtb2ZcLWNhbWJvZGlhXCk7CivjorIgPCB0aGVcLTV0aFwtb2ZcLXRoZVwtZWlnaHRcLWRpYWdyYW1zXC3lhavljaY7Civjn6ggPCBhXC1mb3VudGFpblwtaW5cLXRoZVwtc2lkZVwtb2ZcLWFcLWhpbGw7Civjm40gPCB0b1wtaGF2ZVwtb25lJydzXC1hbWJpdGlvblwtZnVsZmlsbGVkOwor45qhIDwgc3RhbmRpbmdcLXdpdGhvdXRcLWFcLXN0cmFpZ2h0XC1iYWNrOwor45qJIDwgdG9cLW1ha2VcLWFcLXByb2ZpdFwtb25cLXNlbGxcLWFuZFwtYnV5Owor5L615L2UIDwgdG9cLWludmFkZVwtYW5kXC1vY2N1cHlcLVwodGVycml0b3J5XCk7CivjlaMgPCBhXC1tYXJzaFwtYXRcLXRoZVwtZm9vdFwtb2ZcLXRoZVwtaGlsbHM7Civmn6/lr4YgPCBrZXJtaXRcLVwoY29tbXVuaWNhdGlvbnNcLXByb3RvY29sXCk7CivkuqvmnIkgPCBlbmpveVwtXChyaWdodHNcLFwtcHJpdmlsZWdlc1wsXC1ldGNcLlwpOwor56au54KuIDwgYVwtZ3VuXC1zYWx1dGVcLVwoZWdcLFwtMjFcLWd1blwtc2FsdXRlXCk7CivnqoHljqUgPCB0dXJraWNcLVwobWlub3JpdHlcLWdyb3VwXC1pblwtY2hpbmFcKTsKK+aIiOeIvuW3tOWWrOWkqyA8IFwoZm9ybWVyXC1zb3ZpZXRcLWxlYWRlclwpXC1nb3JiYWNoZXY7CivpgLzkvpvkv6EgPCBvYnRhaW5cLWNvbmZlc3Npb25zXC1ieVwtY29tcHVsc2lvbjsKK+WuieS/nSA8IFwoYWJicmV2aWF0aW9uXClcLW1haW50YWluXC1zZWN1cml0eTsKK+Wjvem6tSA8IGJpcnRoZGF5XC1ub29kbGVzXC1cKGZvclwtbG9uZ2V2aXR5XCk7CivmtbTlrqQgPCBiYXRocm9vbVwtXChyb29tXC11c2VkXC1mb3JcLWJhdGhpbmdcKTsKK+S7pOS6uiA8IGNhdXNlXC1zb21lb25lXC10b1wtXChiZVwsXC1mZWVsXCxcLWV0Y1wpOwor5b2i5b2x5LiN6ZuiIDwgaW5zZXBhcmFibGVcLVwoYXNcLWZvcm1cLWFuZFwtc2hhZG93XCk7CivllYbmpa3niYjmnKwgPCBjb21tZXJjaWFsXC12ZXJzaW9uXC1cKG9mXC1zb2Z0d2FyZVwpOwor55m+6K6A5LiN5Y6tIDwgYmVcLXdvcnRoXC1yZWFkaW5nXC1hXC1odW5kcmVkXC10aW1lczsKK+mZpOmdniA8IG9ubHlcLWlmXC1cKFwuXC5cLlwsXC1vclwtb3RoZXJ3aXNlXCxcLVwuXC5cLlwpOwor5q2n6KaWIDwgZGlzY3JpbWluYXRpb25cLVwoYWdhaW5zdFwtc29tZW9uZVwpOwor5pWX6JC9IDwgZGVjbGluZVwtXChpblwtd2VhbHRoXC1hbmRcLXBvc2l0aW9uXCk7CivnhKHpjKsgPCB3dXhpXC1cKGNpdHlcKVwsXC1pblwtamlhbmdzdVwtcHJvdmluY2U7CivliIbms6LlpJrlt6UgPCB3YXZlbGVuZ3RoXC1kaXZpc2lvblwtbXVsdGlwbGV4aW5nOwor5b+F55Sx5LmL6LevIDwgdGhlXC1yb2FkXC1vbmVcLW11c3RcLWZvbGxvd1wtb3JcLXRha2U7Civku6wgPCBhZGp1bmN0XC1wcm9ub3VuXC1pbmRpY2F0ZVwtcGx1cmFsOwor5ZGiIDwgaW50ZXJyb2dhdGl2ZVwtb3JcLWVtcGhhdGljXC1maW5hbDsKK+alvCA8IGJ1aWxkaW5nXC1vZlwtdHdvXC1vclwtbW9yZVwtc3RvcmllczsKK+iNryA8IGxlYWZcLW9mXC1kYWh1cmlhblwtYW5nZWxpY2FcLXBsYW50Owor6b2OIDwgdGFrZVwtaW5cLWJvdGhcLWhhbmRzXC1hbmRcLW9mZmVyXC10bzsKK+S4iCA8IHVuaXRcLW9mXC1sZW5ndGhcLWVxdWFsXC0zXC4zXC1tZXRlcnM7CivmjJEgPCBhXC1sb2FkXC1jYXJyaWVkXC1vblwtdGhlXC1zaG91bGRlcnM7CivnpZ0gPCBwcmF5XC1mb3JcLWhhcHBpbmVzc1wtb3JcLWJsZXNzaW5nczsKK+adiSA8IHZhcmlvdXNcLXNwZWNpZXNcLW9mXC1waW5lXC1hbmRcLWZpcjsKK+acpyA8IGNvbmRpdGlvblwtb3JcLWFwcGVhcmFuY2VcLW9mXC1tb29uOwor6Zy4IDwgcnVsZVwtYnlcLW1pZ2h0XC1yYXRoZXJcLXRoYW5cLXJpZ2h0Owor566qIDwgc21hbGxcLWJhbWJvb1wtYmFza2V0XC1mb3JcLWhvbGRpbmc7CivphqQgPCBhbnlcLWphbVwtbGlrZVwtb3JcLXBhc3RlXC1saWtlXC1mb29kOwor54KVIDwgdGhlXC1icmlja1wtYmVkXC1pblwtbm9ydGhlcm5cLWNoaW5hOwor5LqlIDwgbGFzdFwtb2ZcLXR3ZWx2ZVwtZWFydGhseVwtYnJhbmNoZXM7CivnsqQgPCBndWFuZ2RvbmdcLWFuZFwtZ3Vhbmd4aVwtcHJvdmluY2VzOwor57K9IDwgZHVtcGxpbmdcLW1hZGVcLW9mXC1nbHV0aW5vdXNcLXJpY2U7CivpmYcgPCBtb3VudGFpblwtbG9jYXRlZFwtYmV0d2Vlblwtc2hhbnhpOwor6Ze+IDwgdmlsbGFnZVwtb2ZcLXR3ZW50eVwtZml2ZVwtZmFtaWxpZXM7Civpg6YgPCBwbGFjZVwtaW5cLXRvZGF5JydzXC1oZW5hblwtcHJvdmluY2U7CivpnoUgPCBsZWF0aGVyXC1zdHJhcFwtb3ZlclwtaG9yc2UnJ3NcLW5lY2s7Civpk6EgPCBzaWNrbGVcLWZvclwtY3V0dGluZ1wtZ3Jhc3NcLW9yXC1oYXk7CivpqqcgPCBnYWxsb3BcLWFib3V0XC13aXRoXC1oZWFkXC11cGxpZnRlZDsKK+mqoiA8IGhvcnNlXC13aXRoXC1hXC1ibHVpc2hcLXdoaXRlXC1jb2xvcjsKK+ibsyA8IGtpbmRcLW9mXC1zbmFpbFwtd2l0aFwtc3BpcmFsXC1zaGVsbDsKK+mCsyA8IGFcLWRlcGFydG1lbnRcLWluXC10aGVcLXN0YXRlXC1vZlwtbHU7Civpg6IgPCBzdGF0ZVwtaW5cLXRvZGF5JydzXC1odWJlaVwtcHJvdmluY2U7CivpqpYgPCB0d29cLW91dHNpZGVcLW9uZXNcLWluXC10aHJlZVwtaG9yc2U7CivovbggPCBjcm9zc1wtYm9hcmRcLWF0XC1yZWFyXC1vZlwtY2FycmlhZ2U7CivnrpwgPCBhbmNpZW50XC1zdHJpbmdcLW11c2ljXC1pbnN0cnVtZW50Owor6YOQIDwgc3RhdGVcLWluXC10b2RheScnc1wtaGVuYW5cLXByb3ZpbmNlOwor6L25IDwgcnVuXC1vdmVyXC1zb21ldGhpbmdcLXdpdGhcLXZlaGljbGU7CivmoJ0gPCBhXC1idWlsZGVyJydzXC1mcmFtZVwtZm9yXC1tZWFzdXJpbmc7CivnjY0gPCBhblwtYW5pbWFsXC13aGljaFwtZWF0c1wtaXRzXC1tb3RoZXI7CivosqDosqzkurogPCBwZXJzb25cLWluXC1jaGFyZ2VcLVwob2ZcLXNvbWV0aGluZ1wpOwor5aeQ5aSrIDwgYnJvdGhlclwtaW5cLWxhd1wtXChodXNiYW5kJydzXC1zaWRlXCk7CivljYHkuInntpMgPCB0aGVcLXRoaXJ0ZWVuXC1jb25mdWNpYW5cLWNsYXNzaWNzOwor5a+m5pmC5pON5L2c55Kw5aKDIDwgcmVhbFwtdGltZVwtb3BlcmF0aW5nXC1lbnZpcm9ubWVudDsKK+eJueWNgCA8IHNwZWNpYWxcLVwoYWRtaW5pc3RyYXRpdmVcKVwtcmVnaW9uOwor5pel5ZyTIDwgamFwYW5lc2VcLXllblwtXCh1bml0XC1vZlwtY3VycmVuY3lcKTsKK+eXheifsuWusyA8IHBsYW50XC1kaXNlYXNlc1wtYW5kXC1pbnNlY3RcLXBlc3RzOwor5Lqo54m55rOw576FIDwgaHVudGVyXC10eWxvXC1cKGhvbGx5d29vZFwtYWN0cmVzc1wpOwor5aOB5qulIDwgYVwtYnVpbHRcLWluXC13YXJkcm9iZVwtb3JcLWN1cGJvYXJkOwor6ZaJ6ZaA6YCg6LuKIDwgbWFrZVwtYVwtY2FydFwtYmVoaW5kXC1jbG9zZWRcLWRvb3JzOwor6YG/5pqRIDwgYmVcLWF3YXlcLWZvclwtdGhlXC1zdW1tZXJcLWhvbGlkYXlzOwor5q2l5pCWIDwgZGFuZ2xpbmdcLW9ybmFtZW50XC13b3JuXC1ieVwtd29tZW47CivlnIvpmpvllYbmpa3mqZ/lmaggPCBpbnRlcm5hdGlvbmFsXC1idXNpbmVzc1wtbWFjaGluZXM7CivpvJcgPCBzbWFsbFwtcmV2b2x2aW5nXC1kcnVtXC13aXRoXC1rbm9iczsKK+m8kiA8IGxhcmdlXC10cmlwb2RcLWNhbGRyb25cLXdpdGhcLXNtYWxsOwor6baWIDwgbGFyZ2VcLXdhdGVyZm93bFwtd2l0aFwtbmFrZWRcLWhlYWQ7CivpqIQgPCBuYW1lXC1vZlwtYVwtbGVnZW5kYXJ5XC1zd2lmdFwtaG9yc2U7CivppJYgPCBmb29kXC1pdGVtXC1zZXRcLW91dFwtZm9yXC1zaG93XC1vbmx5Owor6aCjIDwgdG9cLXZpZXdcLW90aGVyc1wtd2l0aFwtcmFpc2VkXC1leWVzOwor6YKm5LqkIDwgcmVsYXRpb25zXC1iZXR3ZWVuXC10d29cLWNvdW50cmllczsKK+mEtCA8IHBsYWNlXC1pblwtdG9kYXknJ3NcLWhvbmFuXC1wcm92aW5jZTsKK+mEmiA8IHBsYWNlXC1pblwtdG9kYXknJ3NcLWhlYmVpXC1wcm92aW5jZTsKK+mDlCA8IHBsYWNlXC1uYW1lXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor6YK9IDwgbmFtZVwtb2ZcLWFcLWNvdW50eVwtaW5cLWhhblwtZHluYXN0eTsKK+i7qCA8IGxhdHRpY2VcLXdvcmtcLW9uXC1mcm9udFwtYW5kXC1zaWRlczsKK+i4iyA8IHRoZVwtZm9vdFwtb3JcLWZlZXRcLWNhc3RcLW9mXC1hXC1wbGF5Owor5pW45pOa6Y+I6Lev6YCj5o6l6K2Y5Yil56K8IDwgZGF0YVwtbGlua1wtY29ubmVjdGlvblwtaWRlbnRpZmllcjsKK+ilrSA8IHR1Y2tcLXVwXC1oZW1cLW9mXC1nYXJtZW50XC1hbmRcLXdyYXA7Civoo4sgPCBjb3R0b25cLWNsb3RoZXNcLW9mXC1hXC1ib3lcLXNlcnZhbnQ7CivoobogPCBzbGl0XC1pblwtZ2FybWVudFwtdG9cLWFpZFwtbW92ZW1lbnQ7CivooKggPCBhXC1raW5kXC1vZlwtc3BpZGVyXC13aXRoXC1sb25nXC1sZWdzOwor6J6jIDwgbXl0aG9sb2dpY2FsXC13aW5nbGVzc1wtZHJhZ29uXC1vZjsKK+aPkOeFiSA8IHRvXC1leHRyYWN0XC1cKG9yZVwsXC1taW5lcmFsc1wsXC1ldGNcKTsKK+iLpCA8IGJyYXNzaWNhXC1jYW1wZXN0cmlzXC1zdWJzcFwuXC1yYXBhOwor5qmL5o6lIDwgYnJpZGdpbmdcLVwoaW5cLWNvbXB1dGVyXC1uZXR3b3Jrc1wpOwor6ImVIDwgdHdvXC1ib2F0c1wtZmFzdGVuZWRcLXNpZGVcLWJ5XC1zaWRlOwor5YWr5pa5IDwgdGhlXC1laWdodFwtcG9pbnRzXC1vZlwtdGhlXC1jb21wYXNzOwor6IarIDwgdGhlXC1mYXRcLWNvdmVyaW5nXC10aGVcLWludGVzdGluZXM7CivmgrLllpzkuqTpm4YgPCBtaXhlZFwtZmVlbGluZ3NcLW9mXC1ncmllZlwtYW5kXC1qb3k7CivlhafmlL8gPCBpbnRlcm5hbFwtYWZmYWlyc1wtXChvZlwtYVwtY291bnRyeVwpOwor57iXIDwgc2Fja2Nsb3RoXC13b3JuXC1vblwtYnJlYXN0XC1kdXJpbmc7Civov6vkvb8gPCBmb3JjZVwtXChzb21lb25lXC10b1wtZG9cLXNvbWV0aGluZ1wpOwor56+qIDwgYVwtYmFtYm9vXC1mbHV0ZVwtd2l0aFwtc2V2ZW5cLWhvbGVzOwor5ZCD5LiN5pyNIDwgbm90XC1iZVwtYWNjdXN0b21lZFwtdG9cLWVhdGluZ1wtc3RoOwor6ZW35buKIDwgdGhlXC1sb25nXC1jb3JyaWRvclwtYXRcLXlpXC1oZVwteXVhbjsKK+eeliA8IGFcLWNhdGFyYWN0XC1vclwtZmlsbVwtb3ZlclwtdGhlXC1leWU7CivkuI3kv67pgorluYUgPCBub3RcLWNhcmVcLWFib3V0XC1vbmUnJ3NcLWFwcGVhcmFuY2U7CivnlaQgPCBwbGFjZVwtZm9yXC13b3JzaGlwcGluZ1wtdGhlXC1oYXZlbjsKK+WFg+W4pSA8IGFcLW1hcnNoYWxcLVwoaW5cLXRoZVwtYXJtZWRcLWZvcmNlc1wpOwor55SXIDwgZWFydGhlbndhcmVcLXZlc3NlbFwtaW5cLXR3b1wtcGFydHM7CivnrKblkIjnvo7lnIvliKnnm4ogPCBpblwtbGluZVwtd2l0aFwtYW1lcmljYW5cLWludGVyZXN0czsKK+Wkp+W/q+S6uuW/gyA8IHRvXC10aGVcLXNhdGlzZmFjdGlvblwtb2ZcLWV2ZXJ5b25lOwor5qCh6ZW3IDwgXChjb2xsZWdlXCxcLXVuaXZlcnNpdHlcKVwtcHJlc2lkZW50Owor54OzIDwgdG9cLXRyYXZlbFwtYnlcLXRoZVwtbGlnaHRcLW9mXC10b3JjaDsKK+eBlSA8IHNob3J0XC1uYW1lXC1mb3JcLWd1YW5neGlcLXByb3ZpbmNlOwor6aas5bC85ouJIDwgbWFuaWxhXC1cKGNhcGl0YWxcLW9mXC1waGlsaXBwaW5lc1wpOwor6ZaL5YiAIDwgdG9cLXBlcmZvcm1cLW9yXC1oYXZlXC1hblwtb3BlcmF0aW9uOwor5rK0IDwgZm91bFwtYW5kXC1wb2lzb25vdXNcLWluXC1jb25mdXNpb247CivmqJAgPCBhXC1sb29rb3V0XC10dXJyZXRcLW9uXC1hXC1jaXR5XC13YWxsOwor5qO7IDwga2luZFwtb2ZcLXdvb2RcLWZyb21cLXdoaWNoXC1wZXJmdW1lOwor6Lyp5YiGIDwgc2VuaW9yaXR5XC1pblwtdGhlXC1mYW1pbHlcLW9yXC1jbGFuOwor5p6MIDwgdmFyaWV0eVwtb2ZcLWVsbVwtd2l0aFwtc21hbGxcLXNlZWRzOwor6Z6t6ZW36I6r5Y+KIDwgYmV5b25kXC10aGVcLXJlYWNoXC1vZlwtb25lJydzXC1wb3dlcjsKK+S4jeWtuOeEoeihkyA8IGhhdmVcLW5laXRoZXJcLWxlYXJuaW5nXC1ub3JcLXNraWxsOwor5oeJ6Kmy6KqqIDwgaXRcLXNob3VsZFwtYmVcLW1lbnRpb25lZFwtdGhhdFwtXC5cLlwuOwor5LiN5b6X5LiNIDwgaGF2ZVwtbm9cLWNob2ljZVwtb3JcLW9wdGlvblwtYnV0XC10bzsKK+S4jeWvkuiAjOaFhCA8IHNoaXZlclwtYWxsXC1vdmVyXC10aG91Z2hcLW5vdFwtY29sZDsKK+WwvueJmSA8IGFcLXllYXJcLWVuZFwtZGlubmVyXC1mb3JcLWVtcGxveWVlczsKK+ePrei8qiA8IHJlZ3VsYXJcLXBhc3Nlbmdlclwtb3JcLWNhcmdvXC1zaGlwOwor5Z6fIDwgY2xheVwtc2hlZXBcLWJ1cmllZFwtd2l0aFwtdGhlXC1kZWFkOwor5oqo5pOKIDwgYXR0YWNrXC1cKHZlcmJhbGx5XC1vclwtaW5cLXdyaXRpbmdcKTsKK+iInuWPsCA8IFwodGhlYXRyaWNhbFwtb3JcLXBvbGl0aWNhbFwpXC1zdGFnZTsKK+WSoCA8IHRvXC13aGlzcGVyXC5cLXRvXC1ibGFtZVwtdG9cLXNsYW5kZXI7Civlj6cgPCB0b1wtY3V0XC1tZWF0XC1vZmZcLWF3YXlcLWZyb21cLWJvbmVzOwor5YaUIDwgY2FwXC13b3JuXC1kdXJpbmdcLXRoZVwteWluXC1keW5hc3R5Owor5Lq8IDwgdG9cLWFzc2VtYmxlXC5cLXRvXC1nYXRoZXJcLXRvZ2V0aGVyOwor5LmEIDwgc2hpbWVcOlwtdG9cLWZpbmRcLWFcLXBsYWNlXC10b1wtZHdlbGw7CivktbggPCB0aGVcLXRvYWRcLXRoYXRcLWxpdmVzXC1pblwtdGhlXC1tb29uOwor5LOhIDwgYVwta2luZFwtb2ZcLWJpcmRcLWluXC1hbmNpZW50XC1ib29rczsKK+WMl+S8kOi7jSA8IHRoZVwtbm9ydGhlcm5cLWV4cGVkaXRpb25hcnlcLWFybXk7Civksp4gPCBhXC1zZWNvbmRcLWdlbmVyYWxcLW5hbWVcLWZvclwtcGVyY2g7CivksYwgPCBhXC1zZWNvbmRcLW5hbWVcLWZvclwtdGhlXC1nbG9iZWZpc2g7CivksJ0gPCBhXC1sYXJnZVwtZWFydGhlblwtcG90XC1mb3JcLWNvb2tpbmc7CivksIAgPCBkcmVzc2VkXC1oYWlyXC1vZlwtYVwtY2hpbmVzZVwtd29tYW47CivkrrggPCB0b1wtbW92ZVwtc2xvd2x5XC1hbmRcLXRoZW5cLXN3aWZ0bHk7CivkrLsgPCB0b1wtZW50ZXJ0YWluXC1hXC1kZXBhcnRpbmdcLWZyaWVuZDsKK+SqviA8IHRvXC1kZWFsXC13aXRoXC1hZmZhaXJzXC1jYXV0aW91c2x5Owor5KqNIDwgYVwtY29udGFpbmVyXC1mb3JcLWJvd3NcLWFuZFwtYXJyb3dzOwor5KijIDwgbGVhdGhlclwtdG9cLWJlXC1tb2lzdGVuZWRcLWJ5XC1yYWluOwor6Luf6auU5Ye654mI5Y2U5pyDIDwgc29mdHdhcmVcLXB1Ymxpc2hlcnNcLWFzc29jaWF0aW9uOwor5KOjIDwgbmFtZVwtb2ZcLWFcLXBsYWNlXC1uYW1lXC1vZlwtYVwtcGxhY2U7Civkn5ogPCB0b1wtc2l0XC13aXRoXC10aGVcLWxlZ3NcLXNwcmVhZFwtb3V0Owor5Jy3IDwgZmVybWVudGVkXC1hbmRcLXNlYXNvbmVkXC1zb3liZWFuczsKK+ScqiA8IG5hbWVcLW9mXC1hXC1wYXZpbGlvblwtaW5cLW9sZFwtdGltZXM7Civkm4AgPCByZWFzb25hYmxlXC1hdXRob3JpdHlcLXN0YXRlbWVudHM7CivkmIUgPCBhXC1zbWFsbFwtZ2FkZmxpZXNcLWFuZFwtbW9zcXVpdG9lczsKK+WPr+enu+akjSA8IHBvcnRhYmxlXC1cKHByb2dyYW1taW5nXC1sYW5ndWFnZVwpOwor5JCDIDwgZmF0XC1pblwtdGhlXC1hYmRvbWVuXC1vclwtaW50ZXN0aW5lOwor5I2bIDwgYVwta2luZFwtb2ZcLXRvb2xcLXVzZWRcLXRvXC1nZXRcLWZpc2g7CivkiqQgPCB2ZWdldGFibGVcLW1peGVkXC13aXRoXC10aGlja1wtc291cDsKK+SCsiA8IHN0YW5kYXJkXC13ZWlnaHRzXC11c2VkXC1pblwtc2NhbGVzOwor5IGwIDwgdG9cLWxvb2tcLWluXC1hXC1ldmlsXC1vclwtd2lja2VkXC13YXk7CivjvJYgPCBnb3VyZFwtdXNlZFwtYXNcLWFcLWxhZGxlXC1vclwtZGlwcGVyOwor47urIDwgYVwtZ2VtXC1vclwtb3JuYW1lbnRcLW9uXC1hXC1zY2FiYmFyZDsKK+eMm+i3jCA8IGRyb3BcLXNoYXJwbHlcLVwoZWdcLFwtc3RvY2tcLXByaWNlc1wpOwor5bGk5Ye65LiN56quIDwgdG9cLWNvbWVcLW91dFwtb25lXC1hZnRlclwtdGhlXC1vdGhlcjsKK+S/oeS7tiA8IGFcLWxldHRlclwtXChpZVwsXC1zZW50XC1pblwtdGhlXC1tYWlsXCk7CivjrLkgPCB0ZW5kb25zXC1vZlwtdGhlXC1oZWVsXC1vZlwtdGhlXC1mb290Owor46yBIDwgdGhlXC1zdW5cLWlzXC1zaGluaW5nXC1vblwtdGhlXC13YXRlcjsKK+OlhiA8IGluZHVsZ2VudFwtYW5kXC13aXRob3V0XC1yZXN0cmFpbnQ7CivlhavntJrlt6Xos4fliLYgPCBlaWdodFwtZ3JhZGVcLXdhZ2VcLXNjYWxlXC1cKHN5c3RlbVwpOwor45eYIDwgdG9cLWJpdGVcLXRoZVwtaGFyZFwtYW5kXC1zb2xpZFwtZm9vZDsKK+S9v+WRvSA8IGFcLVwoZGlwbG9tYXRpY1wtb3JcLW90aGVyXClcLW1pc3Npb247Civjk6IgPCB0b1wtY3V0XC10aGVcLWZsZXNoXC1mcm9tXC10aGVcLWJvbmVzOwor45OUIDwgZmFkZWRcLWFuZFwtZmFsbGVuXC1cLVwtXC1hc1wtYmxvc3NvbXM7CivjkrsgPCB0b1wtZ29cLWZvcndhcmRcLXdpdGhcLWV5ZXNcLWNvdmVyZWQ7CivkuLnnmq4gPCB0aGVcLXJvb3RcLWJhcmtcLW9mXC10aGVcLXBlb255XC10cmVlOwor5a6a5YGaIDwgdG9cLWhhdmVcLXNvbWV0aGluZ1wtbWFkZVwtdG9cLW9yZGVyOwor5Zyo5a+G5YiH5rOo5oSPIDwgdG9cLXBheVwtY2xvc2VcLWF0dGVudGlvblwtXCh0b1wtc3RoXCk7CivlronmsJHlkYrnpLogPCBhXC1ub3RpY2VcLXRvXC1yZWFzc3VyZVwtdGhlXC1wdWJsaWM7Civmnb7kuIvpm7vmsKPlt6Xmpa0gPCBtYXRzdXNoaXRhXC1lbGVjdHJvbmljc1wtaW5kdXN0cnk7Civph43nlKggPCB0b1wtcHV0XC1pblwtYW5cLWltcG9ydGFudFwtcG9zaXRpb247CivntLDoj4zmrablmaggPCBiaW9sb2dpY2FsXC13ZWFwb25cLVwodXNpbmdcLWdlcm1zXCk7Civmr5Tos70gPCBcW2F0aGxldGljXC1vclwtb3RoZXJcXVwtY29tcGV0aXRpb247CivliKXplovnlJ/pnaIgPCBzdGFydFwtc29tZXRoaW5nXC1uZXdcLW9yXC1vcmlnaW5hbDsKK+aVmOi/sCA8IHJlbGF0ZVwtXChhXC1zdG9yeVwtb3JcLWluZm9ybWF0aW9uXCk7CivliqDph40gPCBiZWNvbWVcfG1ha2VcLW1vcmVcLXNlcmlvdXNcfGdyYXZlcjsKK+iUmueCuiA8IHRvXC1hZmZvcmRcLVwoYVwtdmlld1wtb2ZcLXN0aFwsXC1lXC5nXC5cKTsKK+e2k+a/n+WtuCA8IGVjb25vbWljc1wtXChhc1wtYVwtZmllbGRcLW9mXC1zdHVkeVwpOwor6Zu76Ie6IDwgcmFkaW9cLVwob3JcLWJyb2FkY2FzdGluZ1wpXC1zdGF0aW9uOwor5aaC6aOi5Ly85ri0IDwgdGhpcnN0aW5nXC1vclwtaHVuZ2VyaW5nXC1mb3JcLXN0aFwuOwor6ZaL5ZyL5YWD5YubIDwgZm91bmRpbmdcLWZhdGhlcnNcLVwob2ZcLWFcLWNvdW50cnlcKTsKK+eikeaelyA8IHRoZVwtZm9yZXN0XC1vZlwtc3RlbGVzXC1cKGluXC14aScnYW5cKTsKK+W5uSA8IHRydW5rXC1vZlwtdHJlZVwtb3JcLW9mXC1odW1hblwtYm9keTsKK+WwuiA8IGNoaW5lc2VcLW1lYXN1cmVcLWFwcHJveFwuXC0nJ2Zvb3QnJzsKK+exsyA8IGh1bGxlZFwtb3JcLWh1c2tlZFwtdW5jb29rZWRcLXJpY2U7CivpuY8gPCBmYWJ1bG91c1wtYmlyZFwtb2ZcLWVub3Jtb3VzXC1zaXplOwor5ZaCIDwgaW50ZXJqZWN0aW9uXC10b1wtY2FsbFwtYXR0ZW50aW9uOwor5r2HIDwgc291bmRcLW9mXC1iZWF0aW5nXC13aW5kXC1hbmRcLXJhaW47CivnprkgPCBsZWdlbmRhcnlcLWhzaWFcLWR5bmFzdHlcLWZvdW5kZXI7Civmlp8gPCB0b1wtcG91clwtd2luZVwtb3JcLXRlYVwtaW50b1wtYVwtY3VwOwor6JC8IDwgdGhlXC1zdGVtXC1hbmRcLWNhbHl4XC1vZlwtYVwtZmxvd2VyOwor6ZiAIDwgcG93ZXJmdWxcLWFuZFwtaW5mbHVlbnRpYWxcLWdyb3VwOwor5qW3IDwgbW9kZWxcLXN0eWxlXC1vZlwtY2hpbmVzZVwtd3JpdGluZzsKK+i+hCA8IHNpZGVzXC1vZlwtY2hhcmlvdFwtd2hlcmVcLXdlYXBvbnM7Civkv5EgPCB3b29kZW5cLWZpZ3VyZVwtYnVyaWVkXC13aXRoXC1kZWFkOwor5Zi5IDwgdXNlZFwtZGVzY3JpYmVcLWNsYXJpdHlcLW9mXC12b2ljZTsKK+i9vCA8IGhvcml6b250YWxcLXdvb2RlblwtYmFyXC1pblwtZnJvbnQ7CivpppEgPCB0aW1lXC1vZlwtZmFtaW5lXC1vclwtY3JvcFwtZmFpbHVyZTsKK+S8pSA8IGdob3N0XC1vZlwtb25lXC1kZXZvdXJlZFwtYnlcLXRpZ2VyOwor57u2IDwgc2lsa1wtcmliYm9uXC1hdHRhY2hlZFwtYXNcLWFcLXNlYWw7CivprIggPCBmaW5lXC1ncm93dGhcLW9mXC1oYWlyXC1jdXJseVwtaGFpcjsKK+ejlCA8IGRvd253YXJkXC1zdHJva2VcLXNsYW50aW5nXC1yaWdodDsKK+ijoiA8IGZvbGRpbmdcLXB1cnNlXC1pbnNlcnRlZFwtaW5cLWJlbHQ7CivmnrggPCBraW5kXC1vZlwtYXNwZW5cLWZvdW5kXC1pblwtc2ljaHVhbjsKK+iKiiA8IGV4dWJlcmFudFwtYW5kXC12aWdvcm91c1wtZm9saWFnZTsKK+mEhCA8IG5hbWVcLW9mXC1hXC1kaXN0cmljdFwtaW5cLXNoYW5kb25nOwor6by5IDwgYVwta2luZFwtb2ZcLWluc2VjdGl2b3JvdXNcLXJvZGVudDsKK+iOvCA8IGFuXC1lZGlibGVcLXdhdGVyXC1wbGFudFwtYnJhc2VuaWE7CivlnKwgPCBwbGFzdGVyXC1vdmVyXC13aXRoXC1sYXllclwtb2ZcLW11ZDsKK+iOqSA8IG1lbWJyYW5lXC1saW5pbmdcLWluc2lkZVwtb2ZcLXJlZWQ7Civor7YgPCBhblwtZXhjbGFtYXRpb25cLW9mXC1jb25maXJtYXRpb247CivopJkgPCBwYXBlclwtb3JcLWNsb3RoXC1wYXN0ZWRcLXRvZ2V0aGVyOwor55u05o6l5pW45pOaIDwgZGF0YVwtZGlyZWN0XC1cKGluXC1sYW5cLWVtdWxhdGlvblwpOwor5aSW54GYIDwgd2FpdGFuXC1cKHRoZVwtYnVuZFwpXCxcLWluXC1zaGFuZ2hhaTsKK+itieWvpiA8IGNvbmZpcm1cLVwoc29tZXRoaW5nXC10b1wtYmVcLXRydWVcKTsKK+aEm+mdouWtkCA8IGJlXC1jb25jZXJuZWRcLWFib3V0XC1mYWNlXC1zYXZpbmc7CivorbDlk6EgPCBtZW1iZXJcLVwob2ZcLWFcLWxlZ2lzbGF0aXZlXC1ib2R5XCk7CivloLHooaggPCBmb3Jtc1wtZm9yXC1yZXBvcnRpbmdcLXN0YXRpc3RpY3M7CivmmI7loLEgPCBtaW5nXC1wYW9cLW5ld3NwYXBlclwtXChob25nXC1rb25nXCk7CivliY3nqIsgPCBmdXR1cmVcLVwoY2FyZWVyXCxcLWV0Y1wpXC1wcm9zcGVjdHM7CivnmbvploAgPCBwYXlcLWFcLXZpc2l0XC10b1wtc29tZW9uZScnc1wtaG91c2U7CivpgormsJEgPCBwZW9wbGVcLWxpdmluZ1wtb25cLXRoZVwtZnJvbnRpZXJzOwor6YKj5pyrIDwgaWZcLXRoYXQnJ3NcLXRoZVwtY2FzZVwsXC10aGVuXC1cKFwuXC5cLlwpOwor5pWI5oeJIDwgZWZmZWN0XC1cKGVnXCxcLWdyZWVuaG91c2VcLWVmZmVjdFwpOwor5aKo54i+57y9IDwgbWVsYm91cm5lXC1cKGFuXC1hdXN0cmFsaWFuXC1jaXR5XCk7CivmrbnlvpIgPCBldmlsXC1wZXJzb25cLXdob1wtY29tbWl0c1wtY3JpbWVzOwor5pS25b6pIDwgcmVjb3ZlclwtXChsb3N0XC10ZXJyaXRvcnlcLFwtZXRjXC5cKTsKK+WCsumqqCA8IGxvZnR5XC1hbmRcLXVueWllbGRpbmdcLWNoYXJhY3RlcjsKK+aWt+S6pCA8IGJyZWFrXC1vZmZcLWRpcGxvbWF0aWNcLXJlbGF0aW9uczsKK+mbu+iFpuiIh+mbu+ipseezu+e1seaVtOWQiCA8IGNvbXB1dGVyXC10ZWxlcGhvbnlcLWludGVncmF0aW9uOwor6baLIDwgYVwtc2VhXC1iaXJkXC13aXRoXC1hXC13aGl0ZVwtYnJlYXN0Owor6a+PIDwgYVwtZGlhbGVjdFwuXC5cLlwuXC5cLlwuXC5cLW5hbWVcLW9mXC1maXNoOwor6aWBIDwgY2FycnlcLW1lYWxcLXRvXC13b3JrZXJzXC1pblwtZmllbGQ7Civml6XmnKzpm7vloLHpm7voqbHlhazlj7ggPCBuaXBwb25cLXRlbGVncmFwaFwtYW5kXC10ZWxlcGhvbmU7CivpjqsgPCBvcm5hbWVudFwtb3ZlclwtdGhlXC1ob3JzZScnc1wtaGVhZDsKK+WCs+e1semGq+iXpSA8IFwoY2hpbmVzZVwpXC10cmFkaXRpb25hbFwtbWVkaWNpbmU7CivotZkgPCBnaWZ0XC1vZlwtbW9uZXlcLWhlbHBcLXBheVwtZnVuZXJhbDsKK+acieWPsuS7peS+hiA8IHNpbmNlXC10aGVcLWJlZ2lubmluZ1wtb2ZcLWhpc3Rvcnk7CivluLPmiLYgPCBcKGJhbmtcLFwtY29tcHV0ZXJcLFwtZXRjXC5cKVwtYWNjb3VudDsKK+ippCA8IHRvXC1tYWtlXC13aWxkXC1zdGF0ZW1lbnRzXC10b1wtbGllOwor5qC45aiB5oe+5pS/562WIDwgcG9saWN5XC1vZlwtbnVjbGVhclwtaW50aW1pZGF0aW9uOwor6Ji0IDwgeW91bmdcLXNob290c1wtb2ZcLXRoZVwtcmFwZXR1cm5pcDsKK+iOnSA8IHRvXC1jaG9wXC1zdHJhd1wtZmluZVwtZm9yXC1hbmltYWxzOwor57Si5p2w57SNIDwgc29qb3VybmVyXC1cKG1hcnRpYW5cLWxhbmRcLXJvdmVyXCk7CivohaAgPCBiZXR3ZWVuXC10aGVcLXNraW5cLWFuZFwtdGhlXC1mbGVzaDsKK+WMheayu+eZvueXhSA8IGd1YXJhbnRlZVwtdG9cLWN1cmVcLWFsbFwtZGlzZWFzZXM7Civnv78gPCBzdHJlYW1lclwtYWRvcm5lZFwtd2l0aFwtZmVhdGhlcnM7CivnraUgPCByb3VuZFwtc2hhcGVkXC1iYW1ib29cLWJhc2tldFwtZm9yOwor5Zu654S2IDwgYWRtaXR0ZWRseVwtXChpdCcnc1wtdHJ1ZVwtdGhhdFwuXC5cLlwpOwor55eEIDwgc2Nyb2Z1bG91c1wtc3dlbGxpbmdzXC1hbmRcLXNvcmVzOwor5Lit6I+v5Lq65rCR5YWx5ZKM5ZyLIDwgdGhlXC1wZW9wbGUnJ3NcLXJlcHVibGljXC1vZlwtY2hpbmE7CivnjqQgPCBhXC1raW5kXC1vZlwtZ2VtXC1pbmZlcmlvclwtdG9cLWphZGU7CivmnI3li5nlu6PlkYrljZTorbAgPCBzZXJ2aWNlXC1hZHZlcnRpc2VtZW50XC1wcm90b2NvbDsKK+eFoCA8IHRvXC1mcnlcLWluXC1mYXRcLW9yXC1vaWxcLlwtdG9cLXNjYWxkOwor6Ie6542oIDwgdGFpd2FuXC1pbmRlcGVuZGVuY2VcLVwobW92ZW1lbnRcKTsKK+a9jyA8IGZhcmVzaGFyZVwtcmVjbGFpbWVkXC1mcm9tXC1yaXZlcjsKK+a8vCA8IGhhdmluZ1wtdGhlXC1hcHBlYXJhbmNlXC1vZlwtZGVwdGg7Civkv53oi5cgPCBrZWVwXC1hXC1mdWxsXC1zdGFuZFwtb2ZcLXNlZWRsaW5nczsKK+asniA8IHRoZVwtbGF0dGljZVwtb2ZcLWFcLXdpbmRvd1wtYVwtc2lsbDsKK+aMiemcgOWIhumFjSA8IGRpc3RyaWJ1dGlvblwtYWNjb3JkaW5nXC10b1wtbmVlZDsKK+S4luiyv+e1hOe5lCA8IHd0b1wtXCh3b3JsZFwtdHJhZGVcLW9yZ2FuaXphdGlvblwpOwor5puaIDwgdHdpbGlnaHRcLWp1c3RcLWJlZm9yZVwtc3VuXC1yaXNlczsKK+aykuacieS7gOm6vCA8IHRoZXJlJydzXC1ub3RoaW5nXC1cKFwuXC5cLlwtYWJvdXRcLWl0XCk7CivmlpogPCBhXC1zbWFsbFwtY3VwXC1vZlwtc3RvbmVcLXdpdGhcLWVhcnM7CivmjInli57liIbphY0gPCBkaXN0cmlidXRpb25cLWFjY29yZGluZ1wtdG9cLXdvcms7Civot6/nlLEgPCByb3V0aW5nXC1cKGluXC1jb21wdXRlclwtbmV0d29ya3NcKTsKK+Wwjee+jiA8IFwocG9saWN5XCxcLWV0Y1wuXClcLXRvd2FyZHNcLWFtZXJpY2E7CivmjIfmlbggPCBcKG51bWVyaWNhbFwsXC1zdGF0aXN0aWNhbFwpXC1pbmRleDsKK+ethueVqyA8IHN0cm9rZXNcLW9mXC1hXC1jaGluZXNlXC1jaGFyYWN0ZXI7CivmiYogPCB1cHJpZ2h0XC1iYXJcLWZvclwtZmFzdGVuaW5nXC1kb29yOwor5oWcIDwgbmFtZVwtb2ZcLWFcLW1vbmtcLWluXC10YW5nXC1keW5hc3R5Owor56m66KWyIDwgXChtaWxpdGFyeVwpXC1hdHRhY2tcLWZyb21cLXRoZVwtYWlyOwor5bSgIDwgcGxhY2VcLW5hbWVcLWluXC1ndWFuZ3hpXC1wcm92aW5jZTsKK+ihqOWgsSA8IHN0YXRpc3RpY2FsXC10YWJsZXNcLWFuZFwtcmVwb3J0czsKK+WynSA8IG5hbWVcLW9mXC1hXC1tb3VudGFpblwtaW5cLXNoYW5kb25nOwor5ouY5oq8IDwgXChhcnJlc3RcLWFuZFwpXC10YWtlXC1pbnRvXC1jdXN0b2R5Owor6KuH5b6X5L6GIDwgYWJsZVwtdG9cLXRhbGtcLXRvXC1vclwtZ2V0XC1vblwtd2l0aDsKK+WgrSA8IGFcLWRyeVwtbW9hdFwtb3V0c2lkZVwtYVwtY2l0eVwtd2FsbDsKK+WgjiA8IGNoYXJhY3RlclwtdXNlZFwtZm9yXC1wbGFjZVwtbmFtZXM7CivlmrkgPCBhXC1wYXJ0aWNsZVwtaW1wbHlpbmdcLWNvbXBsZXRpb247CivpmL/mi4nmnKjlnJYgPCBhbG1hdHlcLVwoY2FwaXRhbFwtb2ZcLWthemFraHN0YW5cKTsKK+WMsyA8IGxhZGllc1wtdG9pbGV0XC1jYXNlXC13aXRoXC1taXJyb3I7CivliLUgPCBwdW5pc2htZW50XC1ieVwtY3V0dGluZ1wtb2ZmXC1lYXJzOwor5bCa5pu4IDwgaGlnaFwtb2ZmaWNpYWxcLWluXC1hbmNpZW50XC1jaGluYTsKK+SygSA8IGdlbmVyYWxcLXRlcm1cLW9mXC1hXC1raW5kXC1vZlwtZmlzaDsKK+S4g+WxpOaetuaniyA8IHNldmVuXC1sYXllclwtYXJjaGl0ZWN0dXJlXC1cKG9zaVwpOwor5LCaIDwgdGhlXC10b3BcLXBhcnRcLW9mXC10aGVcLXJpY2VcLWdydWVsOwor5K+1IDwgaGFpclwtc3R5bGVcLWZvclwtbGl0dGxlXC1jaGlsZHJlbjsKK+SvpCA8IGJvbmV3YXJlXC11c2VkXC10b1wtY29tYlwtdGhlXC1oYWlyOwor5K+SIDwgdGhlXC11cHBlclwtcGFydFwtb2ZcLXRoZVwtc2hpbmJvbmU7CivkrpQgPCBhXC15b3VuZ1wtYW5kXC1mbGVldFwtZm9vdGVkXC1ob3JzZTsKK+StuiA8IGFcLWhvcnNlXC10b1wtcmFpc2VcLWl0c1wtaGVhZFwtaGlnaDsKK+SrriA8IHRvXC1iZW5kXC1vclwtbG93ZXJcLW9mXC1vbmUnJ3NcLWhlYWQ7Civkq4YgPCB0aGVcLWZyb250XC1hbmRcLWJhY2tcLW9mXC10aGVcLW5lY2s7Civkp5IgPCBzdGVwc1wtbGVhZGluZ1wtdXBcLXRvXC1hXC1idWlsZGluZzsKK+SkmyA8IGNvbXBvbmVudFwtcGFydHNcLW9mXC1hXC1jcm9zc1wtYm93Owor5KO5IDwgdG9cLWJyZXdcLTEwXC1wZXJjZW50XC1vZlwtdGhlXC13aW5lOwor5KO1IDwgdG9cLWJyZXdcLXRoZVwtd2luZVwtYVwtc2Vjb25kXC10aW1lOwor5KOsIDwgdGhlXC1zaGlueVwtY29sb3JmdWxcLW9mXC10aGVcLXdpbmU7CivogbPnq4sgPCB0b1wtdG93ZXJcLWFib3ZlXC1cKG9uXC10b3BcLW9mXC1zdGhcKTsKK+SiviA8IG5hbWVcLW9mXC1hblwtYW5jaWVudFwtc21hbGxcLXN0YXRlOwor5KGDIDwgYVwtdG9vbFwtZm9yXC1icnVzaGluZ1wtdGhlXC10aHJlYWQ7CivknLIgPCBuYW1lXC1vZlwtYVwtdmlsbGFnZVwtaW5cLW9sZFwtY2hpbmE7Civnj63ntYQgPCB0ZWFtc1wtYW5kXC1ncm91cHNcLVwoaW5cLWZhY3RvcmllczsKK+SYkyA8IHRoaWNrXC1ibG9vZFwtb2ZcLWNhdHRsZVwtYW5kXC1nb2F0Owor5JO/IDwgYVwtc2Vjb25kXC1uYW1lXC1mb3JcLWxvdHVzXC1mbG93ZXI7Civkk7kgPCB0b1wtc3R1ZmZcLWZ1bGxcLWFuZFwtdG9cLWd1bHBcLWRvd247CivkjYEgPCB0aGVcLWhlbVwtb3JcLWJvcmRlclwtb2ZcLWFcLWdhcm1lbnQ7Civki7QgPCBzaWxrXC1mYWJyaWNzXC13aXRoXC1taXhlZFwtY29sb3JzOwor5IuzIDwgY2xvdGhcLW9yXC1wYXBlclwtcGFzdGVkXC10b2dldGhlcjsKK+S8r+avjSA8IHdpZmVcLW9mXC1mYXRoZXInJ3NcLWVsZGVyXC1icm90aGVyOwor5ImkIDwgYVwtYmFtYm9vXC13YXJlXC1mb3JcLXdhc2hpbmdcLXJpY2U7CivkiZsgPCBiYW1ib29cLWJhc2tldFwtZm9yXC13YXNoaW5nXC1yaWNlOwor5ImTIDwgbWF0dHJlc3NcLW1hZGVcLW9mXC1iYW1ib29cLXN0cmlwczsKK+SHrCA8IHRoaW5cLWJhbWJvb1wtbGF0aHNcLWtuaXR0ZWRcLXNhaWw7Civkh6cgPCB0b1wtZmlsbFwtYW5cLW9wZW5pbmdcLXdpdGhcLWJhbWJvbzsKK+SEoSA8IG5vcnRoZXJuXC1taW5vcml0eVwtZXRobmljXC1ncm91cDsKK+SDtiA8IHJ1Z2dlZFwtYW5kXC11bmV2ZW5cLW9mXC10aGVcLXJvY2tzOwor5IOaIDwgcnVnZ2VkXC1sYW5kXC1vZlwtc2FuZFwtYW5kXC1wZWJibGU7Civkg4IgPCBkdWxsXC1zb3VuZFwtb2ZcLXRoZVwtdG9sbGluZ1wtYmVsbDsKK+O8oSA8IGFcLXNtYWxsXC1qYXJcLXdpdGhcLWFcLXNtYWxsXC1tb3V0aDsKK+O1tyA8IHR1cmJ1bGVudFwtZmxvd2luZ1wtb2ZcLXRoZVwtd2F0ZXI7CivkuK3ol6UgPCBcKHRyYWRpdGlvbmFsXClcLWNoaW5lc2VcLW1lZGljaW5lOwor6Kqe6Z+z6YCa6KiK6YCa6YGTIDwgdm9pY2VcLVwoY29tbXVuaWNhdGlvbnNcKVwtY2hhbm5lbDsKK+OyuSA8IHRoZVwtZHJ5XC1zb2lsXC1vblwtdGhlXC1yaXZlclwtc2lkZTsKK+OynSA8IGZpbmVcLWhhaXJcLW9mXC1iaXJkc1wtYW5kXC1hbmltYWxzOwor46+FIDwgdGhlXC1icmFuY2hlc1wtZ3Jvd2luZ1wtZG93bndhcmRzOwor466CIDwgYW5cLWFwcGxpYW5jZVwtdXNlZFwtdG9cLWxpZnRcLWZvb2Q7CivjrKQgPCB3ZXRcLWNsb3RoZXNcLW5vdFwtY29tcGxldGVseVwtZHJ5Owor46q+IDwgdG9cLWN1dFwtdGhlXC1mbGVzaFwtZnJvbVwtdGhlXC1ib25lOwor46iZIDwgdG9cLWNsYXNwXC1vclwtaG9sZFwtdW5kZXJcLXRoZVwtYXJtOwor46ayIDwgYVwtcGFydGljbGVcLWV4cHJlc3NpbmdcLXN1cnByaXNlOwor46WLIDwgc291bmRcLW9mXC10aGVcLWFuZ3Vpc2hcLW9mXC1zb3Jyb3c7CivjpK8gPCBjbGV2ZXJcLW9yXC1zbWFydFwtaW5cLWFcLXNtYWxsXC13YXk7CivjpJQgPCB0b1wtY29uY2VkZVwtb3JcLXN1Ym1pdFwtd2lsbGluZ2x5Owor46OHIDwgYVwta2luZFwtb2ZcLWJlYXN0XC13aXRoXC1sb25nXC1oYWlyOwor46GeIDwgYVwtc2Fja1wtdXNlZFwtdG9cLWZlZWRcLXRoZVwtaG9yc2VzOwor46CjIDwgYVwtbW91bnRhaW5cLWluXC1qaWFuZ3hpXC1wcm92aW5jZTsKK+OeryA8IHRoZVwtdHVybmluZ1wtYXJlYVwtb2ZcLWFcLW1vdW50YWluOwor54+t5Li75Lu7IDwgYVwtdGVhY2hlclwtaW5cLWNoYXJnZVwtb2ZcLWFcLWNsYXNzOwor45yGIDwgY29tbW9ubHlcLWtub3duXC1hc1wtbW90aGVyXC1pblwtd3U7CivjmZogPCByZWRcLWNvbG9yZWRcLWhhcmRcLWFuZFwtc29saWRcLW11ZDsKK+OYniA8IHllbGxpbmdcLXNvdW5kXC1vZlwtdG93aW5nXC1hXC1ib2F0Owor45SpIDwgaGFpclwtb3JubWVudHNcLXVzZWRcLWluXC1vbGRcLXRpbWU7CivjlIAgPCB0b1wtYnJhbmRcLWNyaW1pbmFsc1wtb25cLXRoZVwtZmFjZTsKK+aal+iiiyA8IGNhbWVyYVwtYmFnXC1cKGZvclwtY2hhbmdpbmdcLWZpbG1cKTsKK+WPr+mBuOaTh+S4n+ajhCA8IGRpc2NhcmRcLWVsaWdpYmxlXC1cKGZyYW1lXC1yZWxheVwpOwor6JmV5rG6IDwgZXhlY3V0ZVwtXChhXC1jb25kZW1uZWRcLWNyaW1pbmFsXCk7Civmh4nmnInnm6HmnIkgPCBldmVyeXRoaW5nXC1cKG9uZVwtY291bGRcLWltYWdpbmVcKTsKK+aWsOmuriA8IGZyZXNoXC1cKGV4cGVyaWVuY2VcLFwtZm9vZFwsXC1ldGNcLlwpOwor5bCO6Iiq5ZOhIDwgbmF2aWdhdG9yXC1cKG9uXC1hXC1wbGFuZVwtb3JcLWJvYXRcKTsKK+WPq+iBsiA8IHllbGxpbmdcLVwoc291bmRcLW1hZGVcLWJ5XC1wZXJzb25cKTsKK+ePreW4qyA8IHdpdGhkcmF3XC10cm9vcHNcLWZyb21cLXRoZVwtZnJvbnQ7Civlk4DmgrwgPCBncmlldmVcLVwobW91cm5cKVwtb3Zlclwtc2InJ3NcLWRlYXRoOwor56eR5oGpIDwgY29oZW5cLVwodVwuc1wuXC1kZWZlbmNlXC1zZWNyZXRhcnlcKTsKK+aVl+mZoyA8IGJlXC1kZWZlYXRlZFwtb25cLXRoZVwtYmF0dGxlZmllbGQ7CivnnL7orbDpmaIgPCBob3VzZVwtb2ZcLXJlcHJlc2VudGF0aXZlc1wtXCh1c2FcKTsKK+WMheizoCA8IGd1YXJhbnRlZVwtdG9cLXBheVwtY29tcGVuc2F0aW9uczsKK+WQjeasoSA8IHBvc2l0aW9uXC1pblwtYVwtcmFua2luZ1wtb2ZcLW5hbWVzOwor5auC5auCIDwgc2lzdGVyXC1pblwtbGF3XC1cKGh1c2JhbmQnJ3NcLXNpZGVcKTsKK+WlieihjCA8IHRvXC1wdXJzdWVcLVwoYVwtY291cnNlXCxcLWFcLXBvbGljeVwpOwor6Z2S5bGx57ag5rC0IDwgdmVyZGFudFwtaGlsbHNcLWFuZFwtZ3JlZW5cLXdhdGVyczsKK+WRvOWWmiA8IGNhbGxcLW91dFwtXChzb21lb25lJydzXC1uYW1lXCxcLWV0Y1wpOwor8KCAgSA8IHRoZVwtb3JpZ2luYWxcLWZvcm1cLWZvclwt5LiDXC11XCs0ZTAzOwor8KCAgCA8IHRoZVwtc291bmRcLW1hZGVcLWJ5XC1icmVhdGhpbmdcLWluOwor6Jm55qmL5qmf5aC0IDwgaG9uZ3FpYW9cLWFpcnBvcnRcLVwoaW5cLXNoYW5naGFpXCk7CivntbHkuIDmi5vnlJ8gPCBuYXRpb25hbFwtdW5pZmllZFwtZW50cmFuY2VcLWV4YW07CivnpLrlqIEgPCBob2xkXC1hXC1cKHByb3Rlc3RcKVwtZGVtb25zdHJhdGlvbjsKK+adsemDqOaZgumWkyA8IFwodVwuc1wuXClcLWVhc3Rlcm5cLVwoc3RhbmRhcmRcKVwtdGltZTsKK+eVtuS6i+S6uiA8IHBlcnNvbnNcLWludm9sdmVkXC1vclwtaW1wbGljYXRlZDsKK+aZguWkp+aZguWwjyA8IHNvbWV0aW1lc1wtYmlnXCxcLXNvbWV0aW1lc1wtc21hbGw7CivluLjopo/pioXpm7voqbHnt5ogPCBvcmRpbmFyeVwtY29wcGVyXC10ZWxlcGhvbmVcLWxpbmU7Civov6YgPCBjaGFyYWN0ZXJcLWZvclwtdHJhbnNsaXRlcmF0aW9uOwor5bq1IDwgYnVkZGhpc3RcLW1vbmFzdGVyeVwtb3JcLW51bm5lcnk7CivlupogPCBzZXZlbnRoXC1vZlwtdGVuXC1jeWNsaWNhbFwtc3RlbXM7CivotqMgPCB3aGF0XC1hdHRyYWN0c1wtb25lJydzXC1hdHRlbnRpb247CivnlZQgPCBib3VuZGFyeVwtcGF0aFwtZGl2aWRpbmdcLWZpZWxkczsKK+WkviA8IGJlXC13ZWRnZWRcLW9yXC1pbnNlcnRlZFwtYmV0d2VlbjsKK+i+hiA8IG51bWVyYXJ5XC1hZGp1bmN0XC1mb3JcLXZlaGljbGVzOwor5oCUIDwgYVwtZGlzZWFzZVwtcmVzZW1ibGluZ1wtbmV1cm9zaXM7CivpmYwgPCBmb290XC1wYXRoXC1iZXR3ZWVuXC1yaWNlXC1maWVsZHM7CivpqoYgPCBhXC13aGl0ZVwtaG9yc2VcLXdpdGhcLWJsYWNrXC1tYW5lOwor5qWjIDwgY3Jvc3NiZWFtXC1hYm92ZVwtb3JcLXVuZGVyXC1nYXRlOwor55KnIDwgcGllY2VcLW9mXC1qYWRlXC13aXRoXC1ob2xlXC1pblwtaXQ7CivohrsgPCByYW5rXC1vZG9yXC1cKG9mXC1zaGVlcFwtb3JcLWdvYXRzXCk7CivnjpEgPCBwZWFybFwtdGhhdFwtaXNcLW5vdFwtcXVpdGVcLXJvdW5kOwor5ZSiIDwgZmx1dGVcLWxpa2VcLW11c2ljYWxcLWluc3RydW1lbnQ7CivmpYIgPCBhXC1yYWZ0XC5cLXRvXC1oZXdcLlwtdG9cLWZlbGxcLXRyZWVzOwor54qSIDwgZW50ZXJ0YWluXC12aWN0b3Jpb3VzXC1zb2xkaWVyczsKK+efjSA8IGxvb2tcLWFib3V0XC1pblwtZnJpZ2h0XC1vclwtYWxhcm07Civmk6QgPCB0b1wtYmxvd1wtdGhlXC1ub3NlXC13aXRoXC1maW5nZXJzOwor6IqhIDwgcGxhbnRcLWFsbGllZFwtdG9cLXRoZVwtd2F0ZXJsaWx5Owor57G8IDwgbm9uXC1nbHV0aW5vdXNcLWxvbmdcLWdyYWluXC1yaWNlOwor5qGhIDwgYmVudFwtb3JcLXR3aXN0ZWRcLXBpZWNlXC1vZlwtd29vZDsKK+m7uyA8IHNwZWNpYWxcLXBhdHRlcm5cLW9mXC1lbWJyb2lkZXJ5Owor5bWdIDwgZ291bG91XC1tb3VudGFpblwtcGVha1wtaW5cLWh1bmFuOwor5Z6tIDwgY2hhcmFjdGVyXC11c2VkXC1pblwtcGxhY2VcLW5hbWVzOwor56GWIDwgXDxhcmNoXD5cLXRvd25cLWluXC1oZWJlaVwtcHJvdmluY2U7CivpgqEgPCBuYW1lXC1vZlwtYVwtZGlzdHJpY3RcLWluXC1zaWNodWFuOwor6K6gIDwgc2ltcGxpZmllZFwta2FuZ3hpXC1yYWRpY2FsXC0xNDk7CivlmbsgPCBjaGFyYWN0ZXJcLXVzZWRcLWluXC10cmFuc2xhdGlvbjsKK+eWrCA8IHNjcm9mdWxvdXNcLWx1bXBzXC1vclwtc3dlbGxpbmdzOwor6JSfIDwgZnJhbWVcLW9uXC13aGljaFwtc2lsa3dvcm1zXC1zcGluOwor5Z6nIDwgdmFyaWFibGVcLXVuaXRcLW9mXC1sYW5kXC1tZWFzdXJlOwor6ayPIDwgYVwtY29pZmZ1cmVcLW9uXC10b3BcLW9mXC10aGVcLWhlYWQ7CivnrZggPCBcKGFcLW1lYXN1cmVcLW9mXC13aWR0aFwtb2ZcLWNsb3RoXCk7CivnvJEgPCBjb3JkXC1iaW5kaW5nXC1vblwtaGlsdFwtb2ZcLXN3b3JkOwor57CWIDwgYmFtYm9vXC10cmFwXC1mb3JcLWNhdGNoaW5nXC1maXNoOwor5bqLIDwgYVwtY3VwYm9hcmRcLW9yXC1wYW50cnlcLXRvXC1zdG9yZTsKK+eUjSA8IHJhZnRlcnNcLXN1cHBvcnRpbmdcLXJvb2ZcLXRpbGVzOwor5ZCD5YiAIDwgcGVuZXRyYXRpb25cLW9mXC1hXC1jdXR0aW5nXC10b29sOwor5ZCE5L2NIDwgZXZlcnlib2R5XC1cKGFcLXRlcm1cLW9mXC1hZGRyZXNzXCk7Civpn5PlnJMgPCBrb3JlYW5cLXdvblwtXCh1bml0XC1vZlwtY3VycmVuY3lcKTsKK+S4jei+reiAjOWIpSA8IGxlYXZlXC13aXRob3V0XC1zYXlpbmdcLWdvb2RcLWJ5ZTsKK+eZvuiBveS4jeWOrSA8IHdvcnRoXC1oZWFyaW5nXC1hXC1odW5kcmVkXC10aW1lczsKK+S9jumajuiqnuiogCA8IGxvd1wtbGV2ZWxcLVwoY29tcHV0ZXJcKVwtbGFuZ3VhZ2U7CivkuI3otrPngrroqJMgPCBub3RcLXRvXC1iZVwtdGFrZW5cLWFzXC1hblwtZXhhbXBsZTsKK+WgseekviA8IGdlbmVyYWxcLW9mZmljZVwtb2ZcLWFcLW5ld3NwYXBlcjsKK+eZvOi3oSA8IHRvXC1yaXNlXC10b1wtcG93ZXJcLWFuZFwtcG9zaXRpb247CivmlK/mj7QgPCBwcm92aWRlXC1hc3Npc3RhbmNlXC1vclwtYmFja2luZzsKK+ingOa4rCA8IFwoc2NpZW50aWZpY1wsXC1ldGNcKVwtb2JzZXJ2YXRpb247CivpgZXlv4MgPCBhZ2FpbnN0XC1vbmVzXC13aWxsXC1vclwtZmVlbGluZ3M7Civpp7kgPCBibGFja1wtaG9yc2VcLXdpdGhcLWFcLXdoaXRlXC1mYWNlOwor6aWOIDwgd2luZVwtYW5kXC1mb29kXC1lYXRlblwtd2l0aFwtd2luZTsKK+WQjOatpeaVuOS9jemajuWxpCA8IHN5bmNocm9ub3VzXC1kaWdpdGFsXC1oaWVyYXJjaHk7Civmi7zpn7MgPCBwaW55aW5cLVwoY2hpbmVzZVwtcm9tYW5pemF0aW9uXCk7CivlpKflkLnlpKfmk4IgPCBtYWtlXC1hblwtZXhoaWJpdGlvblwtb2ZcLW9uZXNlbGY7Civph4QgPCB3aW5lXC1icmV3XC1mb3JcLXRoZVwtc2Vjb25kXC10aW1lOwor6YeBIDwgc21lYXJcLXdpdGhcLWJsb29kXC1pblwtc2FjcmlmaWNlOwor5aKD5aSWIDwgb3V0c2lkZVwtXChhXC1jb3VudHJ5JydzXClcLWJvcmRlcnM7CivkuIrmtbfmiLLlioflrbjpmaIgPCBzaGFuZ2hhaVwtdGhlYXRyaWNhbFwtaW5zdGl0dXRlOwor6L+nIDwgYVwtY2hpbmVzZVwtZmFtaWx5XC1uYW1lXC1hcnJhbmdlOwor6L2YIDwgdGVhclwtYXN1bmRlclwtYmV0d2VlblwtY2hhcmlvdHM7CivovJkgPCBzaWRlc1wtb2ZcLWNoYXJpb3RcLXdlcmVcLXdlYXBvbnM7Civmi4zpnaIgPCBub29kbGVzXC1zZXJ2ZWRcLXdpdGhcLXNveVwtc2F1Y2U7Civnm7TmjqUgPCBkaXJlY3RcLVwob3Bwb3NpdGVcLW9mXC1pbmRpcmVjdFwpOwor6KmAIDwgZ2FycnVsb3VzXC10b1wtd2hpc3BlclwuXC10b1wtam9rZTsKK+iouSA8IHRvXC1iZWd1aWxlXC13aXRoXC1mYWxzZVwtc3RvcmllczsKK+iXiiA8IGFcLWtpbmRcLW9mXC1iZWFuXC13aXRoXC1mbGF0XC1wb2RzOwor5a6J5LmL6Iul57SgIDwgYmVhclwtaGFyZHNoaXBcLXdpdGhcLWVxdWFuaW1pdHk7CivoiKAgPCBsb25nXC1uYXJyb3dcLWtuaWZlXC1zaGFwZWRcLWJvYXQ7Civpj6HpoK0gPCBjYW1lcmFcLXNob3RcLVwoaW5cLWFcLW1vdmllXCxcLWV0Y1wpOwor57+jIDwgZmVhdGhlcnNcLXVzZWRcLWRlY29yYXRlXC1jb2ZmaW47CivojqvkuI0gPCB0aGVyZVwtaXNcLW5vXC1vbmVcLVwod2hvXC1kb2VzbicndFwpOwor6YCB5Lq6IDwgdG9cLXNlZVwtXChvclwtd2Fsa1wpXC1zb21lb25lXC1ob21lOwor55m95paHIDwgdGhlXC10ZXh0XC1vZlwtYW5cLWFubm90YXRlZFwtYm9vazsKK+e4kyA8IG9yYW5nZVwtb3JcLXJlZGRpc2hcLXllbGxvd1wtc2lsazsKK+ilv+WTiOWKquWFiyA8IFwoa2luZ1wpXC1zaWhhbm91a1wtXChvZlwtY2FtYm9kaWFcKTsKK+Wwh+mgmCA8IGhpZ2hcLXJhbmtpbmdcLW1pbGl0YXJ5XC1vZmZpY2VyOwor5q665Lq65qGI5Lu2IDwgXChjYXNlXC1vZlwsXC1pbmNpZGVudFwtb2ZcKVwtbXVyZGVyOwor57OPIDwgcmljZVwtZ3JpdHNcLWxlZnRcLWFmdGVyXC1odWxsaW5nOwor56+YIDwgYVwtdXRlbnNpbFwtdXNlZFwtdG9cLWZpbHRlclwtd2luZTsKK+e0hee2oOeHiCA8IFwocmVkXC1hbmRcLWdyZWVuXClcLXRyYWZmaWNcLWxpZ2h0Owor5o6M5qyKIDwgd2llbGRcLVwocG9saXRpY2FsXCxcLWV0Y1wuXClcLXBvd2VyOwor5L+D6YCyIDwgdG9cLXByb21vdGVcLVwoYW5cLWlkZWFcLW9yXC1jYXVzZVwpOwor55+wIDwgYXJyb3dcLXdpdGhcLWF0dGFjaGVkXC1zaWxrXC1jb3JkOwor5YWs5a6JIDwgXChtaW5pc3RyeVwtb2ZcKVwtcHVibGljXC1zZWN1cml0eTsKK+eOgyA8IGFcLWxhcmdlXC1hcGVcLWZvdW5kXC1pblwtd1wuXC1jaGluYTsKK+eMhyA8IHRoZVwtc2NyZWFtXC1vclwtcm9hclwtb2ZcLWFcLXRpZ2VyOwor54m4IDwgdGhlXC1mZW1hbGVcLW9mXC1jZXJ0YWluXC1hbmltYWxzOwor6IOM6YGT6ICM6aazIDwgcnVuXC1pblwtdGhlXC1vcHBvc2l0ZVwtZGlyZWN0aW9uOwor5ruZIDwgd2F0ZXJzXC1jb252ZXJnaW5nXC10b1wtb25lXC1zcG90Owor5YKz6Ly45o6n5Yi25Y2U5a6aIDwgdHJhbnNtaXNzaW9uXC1jb250cm9sXC1wcm90b2NvbDsKK+eXheaguSA8IGFuXC1pbmNvbXBsZXRlbHlcLWN1cmVkXC1pbGxuZXNzOwor6KOc5aCxIDwgbWFrZVwtYVwtcmVwb3J0XC1hZnRlclwtdGhlXC1ldmVudDsKK+mHjeikh+evgCA8IHJlcGVhdGVkXC1zZWdtZW50XC1cKG5ldHdvcmtpbmdcKTsKK+akiiA8IHRvXC1maXRcLWFcLWhhbmRsZVwtaW50b1wtYVwtc29ja2V0Owor5LiN5ZCN5LiA5paHIDwgd2l0aG91dFwtYVwtcGVubnlcLXRvXC1vbmUnJ3NcLW5hbWU7CivkuI3nhKHlsI/oo5wgPCBub3RcLWJlXC13aXRob3V0XC1zb21lXC1hZHZhbnRhZ2U7CivlsI3oh7ogPCBcKHBvbGljeVwsXC1ldGNcLlwpXC10b3dhcmRzXC10YWl3YW47Civmnb/pvJMgPCBhXC1zbWFsbFwtZHJ1bVwtZm9yXC1tYXJraW5nXC10aW1lOwor5pqQIDwgdGhlXC1icmlnaHRcLXNoaW5pbmdcLW9mXC10aGVcLXN1bjsKK+aYsyA8IHRoZVwtZGVjbGluaW5nXC1zdW5cLWluXC10aGVcLXdlc3Q7CivnibnliKXooYzmlL/ljYAgPCBzcGVjaWFsXC1hZG1pbmlzdHJhdGl2ZVwtcmVnaW9uOwor6LSF6L+wIDwgdG9cLXNheVwtbW9yZVwtdGhhblwtaXNcLW5lY2Vzc2FyeTsKK+aNrCA8IHByZXNzXC1kb3duXC1oZWF2aWx5XC13aXRoXC1oYW5kczsKK+aKlCA8IHRha2VcLW9yXC1ob2xkXC11cFwtaW5cLWJvdGhcLWhhbmRzOwor5a+m6IKYIDwgZnVsbFwtYXJtXC1cKG1ldGhvZFwtb2ZcLXBhaW50aW5nXCk7Civmt5jph5EgPCBwYW5uaW5nXC1cKGZvclwtcHJlY2lvdXNcLW1ldGFsc1wpOwor5bS+IDwgcGxhY2VcLW5hbWVcLWluXC1zaGFueGlcLXByb3ZpbmNlOwor5bOrIDwgbW91bnRhaW5cLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7Civlp4UgPCB3b21hblwtYXRcLXRpbWVcLW9mXC1tZW5zdHJ1YXRpb247Civlo7wgPCBwYWxhY2VcLWNvcnJpZG9yXC1vclwtcGFzc2FnZXdheTsKK+WjjSA8IG1vYXRcLWFyb3VuZFwtYVwtY2l0eVwuXC1hXC1jaGFubmVsOwor5Yqg5by3566h5Yi2IDwgdG9cLXRpZ2h0ZW5cLWNvbnRyb2xcLVwob3Zlclwtc3RoXCk7CivllakgPCBwYXJ0aWNsZVwtaW1wbHlpbmdcLXByb2JhYmlsaXR5Owor5Y+QIDwgdG9cLXByaWNrXC1hXC1kb2dcLXRvXC1tYWtlXC1oaW1cLWdvOwor5Y2QIDwgc3dhc3Rpa2FcLWZvdXJ0aFwtb2ZcLWF1c3BpY2lvdXM7CivmiIjniL4gPCBcKGFsXClcLWdvcmVcLVwodXNcLXZpY2VcLXByZXNpZGVudFwpOwor5LaVIDwgaXJyZWd1bGFyXC1hbmRcLXByb21pbmVudFwtdGVldGg7CivktZggPCBkb3NlbicndFwtdFwtc3RpY2tcLXRvXC1lYWNoXC1vdGhlcjsKK+SytSA8IGFcLWdlbmVyYWxcLW5hbWVcLW9mXC1zbWFsbFwtYmlyZHM7CivkuoLoqqogPCB0b1wtbWFrZVwtaXJyZXNwb25zaWJsZVwtcmVtYXJrczsKK+SvhiA8IHNtYWxsXC1hbmRcLXRoaW5cLXBpZWNlXC1vZlwtYm9uZXM7CivkurrmsJHml6XloLEgPCByZW5taW5cLXJpYmFvXC1cKHBlb3BsZScnc1wtZGFpbHlcKTsKK+SrsiA8IHRoaW5cLWFuZFwtc2lja2x5XC1pblwtYXBwZWFyYW5jZTsKK+SrpCA8IGJldHdlZW5cLXRoZVwtZXllYnJvd3NcLWFuZFwtZXllczsKK+SroSA8IGFcLWxvbmdcLXNoYXBlXC1vZlwtaGVhZFwtYW5kXC1mYWNlOwor5KuLIDwgZmVtYWxlXC1hdHRlbmRhbnRzXC1vclwtc2VydmFudHM7Civplovlp4vku6XliY0gPCBiZWZvcmVcLXRoZVwtYmVnaW5uaW5nXC1cKG9mXC1zdGhcKTsKK+SnkCA8IGFcLW1vdW50YWluXC1pblwtc2hhbnhpXC1wcm92aW5jZTsKK+SloyA8IGFuXC1pbnN0cnVtZW50XC1mb3JcLWJvcmluZ1wtd29vZDsKK+SliSA8IHRoZVwtY3VydmVkXC1pcm9uXC1wYXJ0XC1vZlwtYVwtaG9lOwor5KSSIDwgd2luZVwtbWFkZVwtZnJvbVwtZ2x1dGlub3VzXC1yaWNlOwor5KSNIDwgcm90dGVuXC1wYXN0ZVwtb3JcLXNveWJlYW5cLXNhdWNlOwor5LiN6K2Y5aSn6auUIDwgZmFpbFwtdG9cLXNlZVwtdGhlXC1sYXJnZXJcLWlzc3VlczsKK+SgvSA8IGhlaWdodFwtb3JcLXN0YXR1cmVcLW9mXC1hXC1wZXJzb247CivkoLEgPCB0b1wtd2Fsa1wtc2xvd2x5XC1hbmRcLWNhdXRpb3VzbHk7Civkn6cgPCBzb3VuZFwtb2ZcLXRyZWFkaW5nXC1vclwtc3RlcHBpbmc7CivknocgPCBnaWZ0c1wtdG9cLXN1cGVyaW9yc1wtb3JcLWZyaWVuZHM7Civknb0gPCBuYW1lXC1vZlwtYVwtcGVyc29uXC1pblwtb2xkXC1jaGluYTsKK+WFteW3peW7oCA8IG11bml0aW9uc1wtb3JcLW9yZG5hbmNlXC1mYWN0b3J5Owor5J2ZIDwgYVwta2luZFwtb2ZcLWFuaW1hbFwtbGlrZVwtYVwtdGlnZXI7CivknIggPCB0b1wtc3BlYWtcLW9uXC1iZWhhbGZcLW9mXC1hbm90aGVyOwor5JizIDwgYVwtZ2FybWVudFwtb2ZcLXNpbmdsZVwtdGhpY2tuZXNzOwor5I+8IDwgd2hhdFwtaXNcLWxlZnRcLW92ZXJcLW9mXC10aGVcLWZvb2Q7CivkuI3miZPoh6rmi5sgPCBjb25mZXNzXC13aXRob3V0XC1iZWluZ1wtcHJlc3NlZDsKK+SOoiA8IHRvXC1tZWFzdXJlXC1ieVwtcGludHNcLWFuZFwtcGVja3M7CivkjpEgPCBmbHlpbmdcLW92ZXJcLXRoZVwtd2F0ZXJcLXN1cmZhY2U7Civkja4gPCB5b3VuZ1wtZ29hdFwtdW5kZXJcLW9uZVwteWVhclwtb2xkOwor5I2CIDwgdG9vbHNcLXRvXC1kcmF3XC13YXRlclwtb3JcLWxpcXVpZDsKK+SMvyA8IHRoZVwtYnJlYWR0aFwtb2ZcLWNsb3RoXC1vclwtcGFwZXI7CivkjJcgPCB0aGVcLWxlZnRcLW92ZXJcLW9mXC1kcmF3aW5nXC1zaWxrOwor5IyIIDwgdG9cLWdldFwtc29tZXRoaW5nXC13aXRoXC1hXC1sYXNzbzsKK+S4gOiIieWFqeW+lyA8IGtpbGxcLXR3b1wtYmlyZHNcLXdpdGhcLW9uZVwtc3RvbmU7CivkuI3ou4wgPCBhZ2FpbnN0XC10aGVcLWxhd1wtb3JcLWRpc2NpcGxpbmU7CivkiaUgPCBhXC1zbWFsbFwtYmFza2V0XC1mb3JcLWNob3BzdGlja3M7CivljYrouqvlg48gPCBoYWxmXC1sZW5ndGhcLXBob3RvXC1vclwtcG9ydHJhaXQ7CivkhrogPCB3aGlybGluZ1wtb2ZcLXRoZVwtZmxvd2luZ1wtd2F0ZXI7CivkhaIgPCBtYXR1cmVcLW9yXC1yaXBlblwtb2ZcLXRoZVwtZ3JhaW5zOwor5L+d5ZWGIDwgcHJlc2VydmF0aW9uXC1vZlwtc29pbFwtbW9pc3R1cmU7Civjv7YgPCB0aGVcLXNpZGVzXC1vZlwtYVwtc2hvZVwtb3JcLWd1dHRlcjsKK+O9sCA8IGNhcnZlZFwtd2luZG93XC1mcmFtZVwtb25cLWFcLWRvb3I7CivkvZzmiLAgPCBjb25kdWN0XC1cKG1pbGl0YXJ5XC1vcGVyYXRpb25zXCk7CivjuYIgPCB1bnRhbWVkXC1hbmRcLWluZG9jaWxpdHlcLWNhdHRsZTsKK+O0hCA8IHRoZVwtd2F0ZXJcLWZsb3dpbmdcLWluXC1hXC10dXJuZWQ7CivkuJbooYwgPCBcW2FiYnJldmlhdGlvblwtZm9yXF1cLXdvcmxkXC1iYW5rOwor47CJIDwgdGhlXC1oYXplbFwtbnV0XC1vclwtZmlsYmVydFwtdHJlZTsKK+S4reiPryA8IGNoaW5hXC1cKGFsdGVybmF0ZVwtZm9ybWFsXC1uYW1lXCk7CivjrZ8gPCB0b3J0dXJlXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7Civjq5AgPCBkaXN0YW50XC1hbmRcLWluZGlzdGluZ3Vpc2hhYmxlOwor46G7IDwgbmFtZVwtb2ZcLWFcLXNtYWxsXC1hbmNpZW50XC1zdGF0ZTsKK+S+teWFpSA8IHRvXC1tYWtlXC1cKG1pbGl0YXJ5XClcLWluY3Vyc2lvbnM7CivnkIPmqq8gPCB0YWJsZVwtXChmb3JcLWdhbWVzXC11c2luZ1wtYmFsbHNcKTsKK+ObkCA8IHdpZmVcLW9mXC1vbmUnJ3NcLWVsZGVyJydzXC1icm90aGVyOwor45qGIDwgdG9cLWRvXC1zb21ldGhpbmdcLWluXC1hblwtb2xkXC13YXk7Civjlp8gPCB0b1wtZGVsaXZlclwtb3ZlclwtdG9cLXBlcnNvbmFsbHk7CivkuIvoh7ogPCBzdGVwXC1kb3duXC1cKGZyb21cLW9mZmljZVwsXC1ldGNcLlwpOwor6LKq5rGhIDwgXChwb2xpdGljYWxcLFwtbW9yYWxcKVwtY29ycnVwdGlvbjsKK+S4ree0miA8IG1pZGRsZVwtbGV2ZWxcLVwoaW5cLWFcLWhpZXJhcmNoeVwpOwor5pyJ55qEIDwgXCh0aGVyZVwtYXJlXClcLXNvbWVcLVwod2hvXC1hcmVcLlwuXC5cKTsKK+iTi+mjryA8IHJpY2VcLXdpdGhcLW1lYXRcLWFuZFwtdmVnaXRhYmxlczsKK+S4jemAn+S5i+WuoiA8IHVuaW52aXRlZFwtb3JcLXVuZXhwZWN0ZWRcLWd1ZXN0Owor5LiL54+tIDwgdG9cLWNvbWVcLW9yXC1nb1wtb3JcLWdldFwtb2ZmXC13b3JrOwor55m86Zu76YePIDwgXChnZW5lcmF0ZWRcKVwtZWxlY3RyaWNhbFwtZW5lcmd5Owor5LiN5b6X6KaB6aCYIDwgZmFpbFwtdG9cLWdyYXNwXC10aGVcLW1haW5cLXBvaW50czsKK+WMhemKtyA8IGhhdmVcLWV4Y2x1c2l2ZVwtc2VsbGluZ1wtcmlnaHRzOwor6YCy6KGM6Kq/5p+lIDwgdG9cLWNhcnJ5XC1vdXRcLWFuXC1pbnZlc3RpZ2F0aW9uOwor6K6T55CDIDwgdG9cLWNvbmNlZGVcLXBvaW50c1wtXChpblwtYVwtZ2FtZVwpOwor5pu45oi/IDwgc3R1ZHlcLVwoaVwuZVwuXC10aGVcLWtpbmRcLW9mXC1yb29tXCk7CivpgJrnlKjos4fmupDorZjliKXomZ8gPCB1bml2ZXJzYWxcLXJlc291cmNlXC1pZGVudGlmaWVyOwor6KqN6K2YIDwgYmVcLWFjcXVhaW50ZWRcLXdpdGhcLVwoYVwtcGVyc29uXCk7Civljbvnl4UgPCB0b1wtcHJldmVudFwtb3JcLXRyZWF0XC1hXC1kaXNlYXNlOwor6YGy6YGyIDwgXChiZVwpXC1sYXRlXC1cKHdpdGhcLWFcLXRhc2tcLFwtZXRjXC5cKTsKK+Wkp+ihl+Wwj+W3tyA8IGxhcmdlXC1zdHJlZXRzXC1hbmRcLXNtYWxsXC1sYW5lczsKK/CggIUgPCBhblwtYWx0ZXJuYXRlXC1mb3JtXC1vZlwtdVwrNGVhNVwt5LqlOwor5b6354+tIDwgZHVyYmFuXC1cKGNpdHlcLWluXC1zb3V0aFwtYWZyaWNhXCk7Civkv53lronml48gPCB0aGVcLWJhb2FuXC1cKHBhb2FuXClcLW5hdGlvbmFsaXR5Owor5pO66LyqIDwgYmFsYW5jZVwtXChvZlwtYVwtd2F0Y2hcLW9yXC1jbG9ja1wpOwor5pO66KitIDwgZnVybmlzaFwtYW5kXC1kZWNvcmF0ZVwtXChhXC1yb29tXCk7CivmsZ/mvqTmsJEgPCBqaWFuZ1wtemVtaW5cLVwoY2hpbmVzZVwtcHJlbWllclwpOwor54ax57eaIDwgaG90bGluZVwtXChjb21tdW5pY2F0aW9uc1wtbGlua1wpOwor5rOV5Yi2IDwgbGVnYWxcLXN5c3RlbVwtYW5kXC1pbnN0aXR1dGlvbnM7Civku7YgPCBudW1lcmFyeVwtYWRqdW5jdFwtZm9yXC1hcnRpY2xlOwor5ZCXIDwgZmluYWxcLWludGVycm9nYXRpdmVcLXBhcnRpY2xlOwor6bq9IDwgaW50ZXJyb2dhdGl2ZVwtZmluYWxcLXBhcnRpY2xlOwor55+jIDwgcGFydGljbGVcLW9mXC1jb21wbGV0ZWRcLWFjdGlvbjsKK+S5kiA8IHVzZWRcLXdpdGhcLXBvbmdcLWZvclwtcGluZ1wtcG9uZzsKK+S5kyA8IHVzZWRcLXdpdGhcLXBpbmdcLWZvclwtcGluZ1wtcG9uZzsKK+WSmiA8IHVzZWRcLWFzXC1kZXNjcmlwdGlvblwtb2ZcLXNvdW5kOwor55CFIDwgYVwtdmFyaWV0eVwtb2ZcLXdoaXRlXC1jYXJuZWxpYW47CivlrbAgPCB3aG9cP1wtd2hpY2hcP1wtd2hhdFw/XC13aGljaFwtb25lXD87CivmiIogPCBmaWZ0aFwtb2ZcLXRlblwtY2VsZXN0aWFsXC1zdGVtczsKK+a4siA8IGFkZFwtcmVwZWF0ZWRcLXdhc2hlc1wtb2ZcLWNvbG9yOwor5ZKrIDwgZm9vdFwtbWVhc3VyZVwtb2ZcLXpob3VcLWR5bmFzdHk7CivppbcgPCByYXRpb25zXC1hbmRcLXBheVwtZm9yXC1zb2xkaWVyczsKK+axtiA8IGFcLXJpdmVyXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor5Y+BIDwgYmFua1wtZm9ybVwtb2ZcLW51bWVyYWxcLScndGhyZWUnJzsKK+WjrCA8IG5pbnRoXC1vZlwtdGVuXC1jZWxlc3RpYWxcLXN0ZW1zOwor5p+pIDwgY29mZmluXC13aGljaFwtY29udGFpbnNcLWNvcnBzZTsKK+ahoCA8IHRoZVwtZm9ya2luZ1wtYnJhbmNoXC1vZlwtYVwtdHJlZTsKK+eUjyA8IGFcLXNxdWF0XC1qYXJcLWZvclwtaG9sZGluZ1wtd2luZTsKK+esniA8IGJhbWJvb1wtcm9kXC11c2VkXC1mb3JcLWJlYXRpbmdzOwor6ZiXIDwgYVwtcGxhY2VcLWluXC14aW5qaWFuZ1wtcHJvdmluY2U7Civpk4kgPCBkZXZpY2VcLWZvclwtY2FycnlpbmdcLWFcLXRyaXBvZDsKK+inpSA8IGFcLWN1cFwtbWFkZVwtb2ZcLWhvcm5cLW9ic3RpbmF0ZTsKK+ijoyA8IGRyYXdcLW9uZScnc1wtaGFuZHNcLWludG9cLXNsZWV2ZTsKK+W0gyA8IG1vdW50YWluXC1pblwtc2ljaHVhblwtcHJvdmluY2U7CivnvZggPCBzY3JlZW5cLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+awhyA8IHRoaWNrXC1yb3VnaFwtc2VyZ2VcLWZyb21cLXRpYmV0Owor5Z+0IDwgc29pbFwtd2l0aFwtbGFyZ2VcLWNsYXlcLWNvbnRlbnQ7CivmmLQgPCBvbmVcLW9mXC10aGVcLTI4XC1jb25zdGVsbGF0aW9uczsKK+iPuSA8IHNhbHRlZFwtb3JcLXBpY2tsZWRcLXZlZ2V0YWJsZXM7CivlkITlpKfou43ljYAgPCBcInRoZVwtZ3JlYXRlclwtbWlsaXRhcnlcLWFyZWFzXCI7CivmsLTlubMgPCBsZXZlbFwtXChvZlwtYWNoaWV2ZW1lbnRcLFwtZXRjXC5cKTsKK+Wkq+asiiA8IGF1dGhvcml0eVwtb3ZlclwtdGhlXC1ob3VzZWhvbGQ7CivljbDlsLwgPCBcKGFiYnJldmlhdGlvblwtZm9yXClcLWluZG9uZXNpYTsKK+iuiuWDuSA8IGFwcHJhaXNlXC1hdFwtdGhlXC1jdXJyZW50XC1yYXRlOwor5bm05aSc6aOvIDwgbmV3XC15ZWFyJydzXC1ldmVcLWZhbWlseVwtZGlubmVyOwor5aa55aSrIDwgYnJvdGhlclwtaW5cLWxhd1wtXCh3aWZlJydzXC1zaWRlXCk7CivpgLLogIwgPCBhbmRcLXRoZW5cLVwod2hhdFwtZm9sbG93c1wtbmV4dFwpOwor5p2O55m76LydIDwgbGVlXC10ZW5nXC1odWlcLVwodGFpd2FuXC1sZWFkZXJcKTsKK+mZo+e3miA8IGFcLWZyb250XC1cKGllXCxcLW1pbGl0YW50XC1ncm91cFwpOwor5ZG857Gy576O5ZyLIDwgdG9cLWNhbGxcLW9uXC10aGVcLXVuaXRlZFwtc3RhdGVzOwor5YKz57Wx5Lit5ZyL6Yar6JelIDwgY2hpbmVzZVwtdHJhZGl0aW9uYWxcLW1lZGljaW5lOwor5q2y5pyIIDwgdGhlXC15ZWFyc1wtb2ZcLWFcLXBlcnNvbicnc1wtbGlmZTsKK+ixkOiho+i2s+mjnyA8IGhhdmVcLWFtcGxlXC1mb29kXC1hbmRcLWNsb3RoaW5nOwor5LiN55+l5aW95q25IDwgbm90XC1rbm93XC13aGF0JydzXC1nb29kXC1mb3JcLW9uZTsKK+atuOWxrCA8IGJlXC11bmRlclwtdGhlXC1qdXJpc2RpY3Rpb25cLW9mOwor5Zyo6YeOIDwgYmVcLW91dFwtb2ZcLVwocG9saXRpY2FsXClcLW9mZmljZTsKK+W7oOaIvyA8IGFcLWJ1aWxkaW5nXC11c2VkXC1hc1wtYVwtZmFjdG9yeTsKK+WIpOaxuiA8IGp1ZGdtZW50XC1cKGJ5XC1hXC1jb3VydFwtb2ZcLWxhd1wpOwor5Zuw6ZujIDwgXChmaW5hbmNpYWxcLFwtZXRjXC5cKVwtZGlmZmljdWx0eTsKK+m1rSA8IGFcLXNtYWxsXC1iaXJkXC13aXRoXC1ibGFja1wtbmVjazsKK+Wkp+iHqueEtiA8IG5hdHVyZVwtXChhc1wtaW5cLW1vdGhlclwtbmF0dXJlXCk7CivntrLnrqHmjqXlj6MgPCBuZXR3b3JrXC1tYW5hZ2VtZW50XC1pbnRlcmZhY2U7CivpmpIgPCB0aGVcLWFwcGVhcmFuY2VcLW9mXC1hXC1tb3VudGFpbjsKK+aOm+iZnyA8IHRvXC1yZWdpc3RlclwtXChhXC1sZXR0ZXJcLFwtZXRjXC5cKTsKK+ijnOiLlyA8IGZpbGxcLXRoZVwtZ2Fwc1wtd2l0aFwtc2VlZGxpbmdzOwor5qC55pOa5LiK6KGoIDwgYWNjb3JkaW5nXC10b1wtdGhlXC1hYm92ZVwtdGFibGU7CivmrablipsgPCBcKG1ha2VcLXVzZVwtb2ZcKVwtbWlsaXRhcnlcLWZvcmNlOwor5pS+5YGHIDwgdG9cLWhhdmVcLWFcLWhvbGlkeVwtb3JcLXZhY2F0aW9uOwor6YaBIDwgYVwta2luZFwtb2ZcLWdyZWVuXC1jb2xvcmVkXC13aW5lOwor6IiJ6YeNIDwgXCh0aGVcLXNwb3J0XC1vZlwpXC13ZWlnaHRsaWZ0aW5nOwor6YK/IDwgYVwtc3RhdGVcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivovZYgPCBmcmFtZXdvcmtcLW9mXC1sYXR0aWNlXC1vblwtY2FydDsKK+WatOipniA8IFwoY3JpdGljaXplXCxcLWV0Y1wuXClcLWZvcmNlZnVsbHk7Civop7UgPCBhXC1jdXBcLW1hZGVcLW9mXC1jb3JuXC1vYnN0aW5hdGU7Civoj6/nm5vpoJPmmYLloLEgPCB3YXNoaW5ndG9uXC10aW1lc1wtXChuZXdzcGFwZXJcKTsKK+Wig+WFpyA8IHdpdGhpblwtXChhXC1jb3VudHJ5JydzXClcLWJvcmRlcnM7Civoj6/kurogPCBldGhuaWNcLWNoaW5lc2VcLXBlcnNvblx8cGVvcGxlOwor5qmL5pysIDwgXChqYXBhbmVzZVwtc3VybmFtZVwpXC1oYXNoaW1vdG87CivlnLDnmq4gPCBsb3RcLFwtc2VjdGlvblwtb2ZcLWxhbmRcLFwtZ3JvdW5kOwor56uL5pa557GzIDwgY3ViaWNcLW1ldGVyXC1cKHVuaXRcLW9mXC12b2x1bWVcKTsKK+i9ieapnyA8IFwodGFrZVwtYVwpXC10dXJuXC1mb3JcLXRoZVwtYmV0dGVyOwor5Zu65a6a6Jmb5pOs6YCj5o6lIDwgcGVybWFuZW50XC12aXJ0dWFsXC1jb25uZWN0aW9uOwor5bi45aeUIDwgbWVtYmVyXC1vZlwtc3RhbmRpbmdcLWNvbW1pdHRlZTsKK+WQg+S4jea2iCA8IGJlXC11bmFibGVcLXRvXC1zdGFuZFwtXChleGVydGlvbjsKK+aKleelqOermSA8IHBvbGxpbmdcLXN0YXRpb25cLVwoZm9yXC1hXC12b3RlXCk7CivogIcgPCB3cmlua2xlZFwtZmFjZVwtb2ZcLXRoZVwtZWxkZXJseTsKK+e+tCA8IHJhbmtcLW9kb3VyXC1vZlwtc2hlZXBcLW9yXC1nb2F0czsKK+W+l+elqOeOhyA8IHBlcmNlbnRhZ2VcLW9mXC12b3Rlc1wtb2J0YWluZWQ7CivntYMgPCBzdHJpbmdcLW9uXC1tdXNpY2FsXC1pbnN0cnVtZW50Owor5ZyL6Ziy5Yip55uKIDwgXChuYXRpb25hbFwpXC1kZWZlbmNlXC1pbnRlcmVzdHM7CivplovmlL7ns7vntbHkupLpgKMgPCBvcGVuXC1zeXN0ZW1zXC1pbnRlcmNvbm5lY3Rpb247CivnrbsgPCBwbGFjZVwtbmFtZVwtaW5cLWh1bmFuXC1wcm92aW5jZTsKK+ermiA8IHN0YW5kXC1hbmRcLXdhaXRcLWZvclwtbG9uZ1wtdGltZTsKK+i1t+mjmyA8IHRvXC10YWtlXC1vZmZcLVwoaW5cLWFuXC1haXJwbGFuZVwpOwor6ZaL5bmVIDwgdG9cLW9wZW5cLVwoYVwtY29uZmVyZW5jZVwsXC1lXC5nXC5cKTsKK+aJk+mHnSA8IHRvXC1naXZlXC1vclwtaGF2ZVwtYW5cLWluamVjdGlvbjsKK+edmSA8IHRvXC1yb2xsXC10aGVcLWV5ZWJhbGxzXC10b1wtbG9vazsKK+eRgiA8IFwoc3RvbmVcLXdoaWNoXC1yZXNlbWJsZXNcLWphZGVcKTsKK+acrOacq+WAkue9riA8IHRha2VcLXRoZVwtYnJhbmNoXC1mb3JcLXRoZVwtcm9vdDsKK+eHuiA8IHRoZVwtZHJ5XC1hdFwtdGhlXC1maXJlXC10b1wtcm9hc3Q7CivngJQgPCByaXZlclwtbmFtZVwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+aKsemgreeXm+WTrSA8IGNyeVwtb25cLWVhY2hcLW90aGVyJydzXC1zaG91bGRlcjsKK+axpyA8IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLXNoYW5nZG9uZzsKK+eSp+isnSA8IGRlY2xpbmVcLVwoYVwtZ2lmdFwpXC13aXRoXC10aGFua3M7CivmqbUgPCB3b29kXC1wbGFjZWRcLXVuZGVyXC1yb29mXC10aWxlczsKK+WwjeiPryA8IFwocG9saWN5XCxcLWV0Y1wuXClcLXRvd2FyZHNcLWNoaW5hOwor5LiN5LiA6ICM6LazIDwgYnlcLW5vXC1tZWFuc1wtYW5cLWlzb2xhdGVkXC1jYXNlOwor5puIIDwgdHdpbGlnaHRcLWp1c3RcLWJlZm9yZVwtc3VucmlzZTsKK+aXnyA8IGFuXC1taWxpdGFyeVwtZmxhZ1wtb2FcLXN0YW5kYXJkOwor5YSA5ZmoIDwgXChzY2llbnRpZmljXCxcLWV0Y1wpXC1pbnN0cnVtZW50Owor5Y6f5a2Q56eR5a245a626YCa5aCxIDwgam91cm5hbFwtb2ZcLWF0b21pY1wtc2NpZW50aXN0czsKK+eptui+piA8IHRvXC1pbnZlc3RpZ2F0ZVwtYW5kXC1kZWFsXC13aXRoOwor5ZCD5LiN5L2PIDwgYmVcLXVuYWJsZVwtdG9cLWJlYXJcLW9yXC1zdXBwb3J0Owor5omoIDwgcGlja1wtdXBcLXdpdGhcLWZvcmtcLW9yXC1waW5jZXJzOwor5bmwIDwgY3VydGFpblwtYXRcLWZyb250XC1vZlwtY2FycmlhZ2U7CivlqIAgPCBuYW1lXC1vZlwtYVwtY29uY3ViaW5lXC1vZlwtZGlcLWt1Owor55m957SZ6buR5a2XIDwgXCh3cml0dGVuXClcLWluXC1ibGFja1wtYW5kXC13aGl0ZTsKK+WfhCA8IHdoaXJsaW5nXC1vZlwtZHVzdFwtaW5cLXRoZVwtd2luZDsKK+Wumue9qiA8IGNvbnZpY3RcLVwoc29tZW9uZVwtb2ZcLWFcLWNyaW1lXCk7CivmnKzpoYwgPCB0aGVcLXN1YmplY3RcLXVuZGVyXC1kaXNjdXNzaW9uOwor6IOM57CNIDwgYVwtYmFza2V0XC1jYXJyaWVkXC1vblwtdGhlXC1iYWNrOwor5YyX5Lqs6Jed6KGT5a246ZmiIDwgYmVpamluZ1wtYWNhZGVteVwtb2ZcLWZpbmVcLWFydHM7CivkuI3noo7njrvnkoMgPCBzaGF0dGVycHJvb2ZcLW9yXC1zYWZldHlcLWdsYXNzOwor5pyJ6ZecIDwgdG9cLWhhdmVcLXNvbWV0aGluZ1wtdG9cLWRvXC13aXRoOwor5L6G5rqQIDwgc291cmNlXC1cKG9mXC1pbmZvcm1hdGlvblwsXC1ldGNcKTsKK+S1oCA8IHJ1c2hlc1wtdXNlZFwtZm9ybVwtbWFraW5nXC1tYXRzOwor5LONIDwgYVwta2luZFwtb2ZcLXBoZWFzYW50XC1saWtlXC1iaXJkOwor542y6YeLIDwgb2J0YWluXC1yZWxlYXNlXC1cKGZyb21cLXByaXNvblwpOwor5LGxIDwgYVwta2luZFwtb2ZcLXNsaXBwZXJ5XC1sb25nXC1maXNoOwor5K6HIDwgYmxhY2tcLWhvcnNlXC13aXRoXC13aGl0ZVwtdGhpZ2g7CivlsI3ml6UgPCBcKHBvbGljeVwsXC1ldGNcLlwpXC10b3dhcmRzXC1qYXBhbjsKK+SsoCA8IHRoZVwtZmFsbGluZ1wtb2ZcLXNub3dcLWFuZFwtcmFpbjsKK+SqrSA8IGFcLWtpbmRcLW9mXC1tdXNpY2FsXC1pbnN0cnVtZW50Owor5KqJIDwgbWV0YWxcLWRlY29yYXRpb25cLW9uXC1hXC1oYWx0ZXI7CivkqaEgPCBhXC1raW5kXC1vZlwtYm9vdHNcLWluXC1vbGRcLXRpbWVzOwor6I6r6KG35LiA5pivIDwgY2Fubm90XC1kZWNpZGVcLXdoaWNoXC1pc1wtcmlnaHQ7CivkppwgPCBuYW1lXC1vZlwtYVwtc3RhdGVcLWluXC1vbGRcLXRpbWVzOwor5KW6IDwgbmFtZVwtb2ZcLWFcLWRvdWJsZVwtZWRnZWRcLXN3b3JkOwor5KWVIDwgdGhlXC1ibGFkZVwtb3JcLWVkZ2VcLW9mXC1hXC1zcGFkZTsKK+SkiSA8IGVtcHRpZWRcLXRoZVwtZHJpbmtcLWNvbXBsZXRlbHk7Civko6EgPCBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC1vbGRcLXRpbWVzOwor5KGRIDwgdGhlXC1yaW1cLW9yXC1mZWxsb2VcLW9mXC1hXC13aGVlbDsKK+SgtCA8IHdpdGhcLWFcLXN5bW1ldHJpY1wtd2VsbFwtZm9ybWVkOwor5J21IDwgdG9cLXRoYW5rXC13aXRoXC1tb25leVwtb3JcLWdpZnRzOwor5JmXIDwgYVwtc3dhZGRsaW5nXC1jbG90aFwtZm9yXC1pbmZhbnQ7CivkmLsgPCBjdXJ0YWluXC1vblwtYVwtY2FycmlhZ2VcLW9yXC1jYXI7CivkmLogPCBhXC1zZWFtXC13aGljaFwtaGFzXC1jb21lXC11bnNld247CivkmLUgPCBoaXNzaW5nXC1zb3VuZFwtb2ZcLXRoZVwtY2xvdGhlczsKK+SUmyA8IGZpYnJvdXNcLXBsYW50XC1vZlwtd2hpY2hcLWNsb3RoOwor5JG5IDwgYVwtbnVtZXJhcnlcLWFkanVuY3RcLWZvclwtc2hpcHM7CivkjaAgPCB0dXJiYW5cLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+SMiyA8IGFcLWhlcmNoaWVmXC1odW5nXC1hdFwtdGhlXC13YWlzdDsKK+SLqSA8IHByZXR0eVwtYW5kXC1maW5lXC1zaWxrXC1mYWJyaWNzOwor5IuPIDwgdGhpY2tcLWFuZFwtYmlnXC1yb3Blc1wtb3JcLWNvcmRzOwor5IuLIDwgYVwta2luZFwtb2ZcLXNwcmluZ1wtZmlzaGluZ1wtbmV0Owor5YWr5ZyL6IGv6LuNIDwgdGhlXC1laWdodFwtcG93ZXJcLWFsbGllZFwtZm9yY2U7CivkhrYgPCBub2lzZVwtb2ZcLWFcLW1vdXNlXC1pblwtdGhlXC1jYXZlOwor5IWzIDwgc3RhbGtcLW9mXC10aGVcLXBhbmljbGVkXC1taWxsZXQ7Civkha0gPCBhXC12YXJpZXR5XC1vZlwtcGFuaWNsZWRcLW1pbGxldDsKK+SFjCA8IHN0YWxrXC1vZlwtd2hlYXRcLW9yXC1yaWNlXC1wbGFudDsKK+SDiyA8IGFcLWZpbmVcLXN0b25lXC1yZXNlbWJsaW5nXC1qYWRlOwor5IK1IDwgc291bmRcLW9mXC1idW1waW5nXC1vclwtc3RyaWtpbmc7CivkgqsgPCBub2lzZVwtb2ZcLXN0b25lc1wtcm9sbGluZ1wtZG93bjsKK+SAsyA8IG5vdFwtdG9cLWxvb2tcLXN0cmFpZ2h0XC1mb3J3YXJkOwor4760IDwgdGhlXC1lcnl0aGVtYVwtb2ZcLWFjbmVcLXJvc2FjZWE7CivlpJrlubTku6XkvoYgPCBmb3JcLW1hbnlcLXllYXJzXC1cKGluXC10aGVcLXBhc3RcKTsKK+O5pSA8IGFcLXllbGxvd1wtZG9nXC13aXRoXC1ibGFja1wtaGVhZDsKK+O5gSA8IGdlbmVyYWxseVwtY2FsbGVkXC10aGVcLWFuaW1hbHM7CivjtbUgPCBzd2lmdFwtY3VycmVudHNcLW9mXC10aGVcLXN0cmVhbTsKK+O1jiA8IGFcLW1vdW50YWluXC1zdHJlYW1cLW9yXC10b3JyZW50Owor47SaIDwgdGhlXC1zbWFsbFwtZGl0Y2hcLWluXC10aGVcLWZpZWxkOwor55+l6K2Y55Si5qyKIDwgaW50ZWxsZWN0dWFsXC1wcm9wZXJ0eVwtcmlnaHRzOwor5oaL5rCjIDwgZmVlbFwtc3VmZm9jYXRlZFwtb3JcLW9wcHJlc3NlZDsKK+OwhiA8IGFuXC1pbnN0cnVtZW50XC10b1wtYmxvd1wtYVwtZmlyZTsKK+OwgSA8IGFcLXRyZWVcLXdpdGhcLXNsYW50ZWRcLWJyYW5jaGVzOwor46+zIDwgYVwta2luZFwtb2ZcLXRvb2xcLXRvXC1hZGp1c3RcLWJvdzsKK+OlnCA8IHVuc3VjY2Vzc2Z1bFwtaW5cLW9uZScnc1wtY2FyZWVyOwor46GxIDwgdG9cLWNhdXRlcml6ZVwtYnlcLWJ1cm5pbmdcLW1veGE7CivjoLEgPCB0b1wtc2V0XC13aXRoXC10aGVcLWxlZ3NcLWNsb3NzZWQ7CivjnIwgPCBhXC1kaWZmZXJlbnRcLW5hbWVcLWZvclwtYnJlYXN0czsKK+OZviA8IGhpbGxzXC13aXRoXC1sb3RzXC1vZlwtYmlnXC1yb2NrczsKK+OZmyA8IGFcLXBlcnNvbicnc1wtbmFtZVwtaW5cLW9sZFwtdGltZXM7Civjl74gPCB0b1wtZ2l2ZVwtdmVudFwtdG9cLXRoZVwtZmVlbGluZ3M7Civjl4YgPCBzb3VuZFwtb2ZcLXRoZVwtcmluZ2VkXC1waGVhc2FudDsKK+OTsyA8IHVzZVwta25pZmVcLXRvXC1zcGxpdFwtc29tZXRoaW5nOwor45GfIDwgaW5zaW5jZXJlXC1hbmRcLWN1bm5pbmdcLXBlcnNvbjsKK+iHquayu+WNgCA8IGF1dG9ub21vdXNcLXJlZ2lvblwtXChpblwtY2hpbmFcKTsKK+WQjOiDniA8IGZlbGxvd1wtY2l0aXplblwtb3JcLWNvdW50cnltYW47CivljL7poY0gPCBhXC1ob3Jpem9udGFsXC1pbnNjcmliZWRcLWJvYXJkOwor5buj5pKt5ZKM5pyq55+l5pyN5YuZ5ZmoIDwgYnJvYWRjYXN0XC1hbmRcLXVua25vd25cLXNlcnZlcjsKK+eiuuiouiA8IHRvXC1tYWtlXC1hXC1kZWZpbml0ZVwtZGlhZ25vc2lzOwor5by157SU5aaCIDwgXChhbWVyaWNhblwtYXV0aG9yXClcLWlyaXNcLWNoYW5nOwor5a6D5YCRIDwgdGhleVwtXChmb3JcLWluYW5pbWF0ZVwtb2JqZWN0c1wpOwor54++5aC0IDwgc2NlbmVcLVwob2ZcLWV2ZW50XC1vclwtaW5jaWRlbnRcKTsKK+aEm+aDhSA8IGxvdmVcLVwoYmV0d2VlblwtbWFuXC1hbmRcLXdvbWFuXCk7Civorornr4AgPCBtYWtlXC1hXC1wb2xpdGljYWxcLXJlY2FudGF0aW9uOwor6KqT5q275LiN6ZmNIDwgdG9cLXZvd1wtdG9cLWZpZ2h0XC10b1wtdGhlXC1kZWF0aDsKK+aykuacieW/heimgSA8IHRoZXJlXC1pc1wtbm9cLW5lZWRcLXRvXC1cKGRvXC1zdGhcKTsKK+a2ieWrjCA8IHRvXC1iZVwtYVwtc3VzcGVjdFwtXChpblwtYVwtY3JpbWVcKTsKK+ePreWLmeacgyA8IGFcLXJvdXRpbmVcLW1lZXRpbmdcLW9mXC1hXC1zcXVhZDsKK+aWsOW+t+ijoSA8IG5ld1wtZGVsaGlcLVwoY2FwaXRhbFwtb2ZcLWluZGlhXCk7Civlj43lsI3pu6ggPCBvcHBvc2l0aW9uXC1cKHBvbGl0aWNhbFwpXC1wYXJ0eTsKK+Wksei2syA8IHRvXC10YWtlXC1hXC13cm9uZ1wtc3RlcFwtaW5cLWxpZmU7CivkuK3mloflu6Pmkq0gPCBjaGluZXNlXC1cKGxhbmd1YWdlXClcLWJyb2FkY2FzdDsKK+enu+auluaJi+ihkyA8IFwob3JnYW5cKVwtdHJhbnNwbGFudFwtb3BlcmF0aW9uOwor54qn54myIDwgc2FjcmlmaWNlXC1cKG9uZScnc1wtbGlmZVwsXC1ldGNcLlwpOwor5Lqe5LyvIDwgYWJlXC1cKHNob3J0XC1mb3JtXC1mb3JcLWFicmFoYW1cKTsKK+eMnOW/jCA8IGJlXC1zdXNwaWNpb3VzXC1hbmRcLWplYWxvdXNcLW9mOwor6buo5YWnIDwgd2l0aGluXC10aGVcLVwoY29tbXVuaXN0XClcLXBhcnR5Owor6Kqq5piO5pu4IDwgc3lub3BzaXNcLVwob2ZcLWFcLXBsYXlcLW9yXC1maWxtXCk7Civli5XolakgPCBcKHNvY2lhbFwtb3JcLXBvbGl0aWNhbFwpXC11bnJlc3Q7CivnjovkuLkgPCB3YW5nXC1kYW5cLVwoY2hpbmVzZVwtZGlzc2lkZW50XCk7Civlj5vkuoLnvaogPCB0aGVcLWNyaW1lXC1vZlwtYXJtZWRcLXJlYmVsbGlvbjsKK+a1quWtkOWbnumgrSA8IHRoZVwtcmV0dXJuXC1vZlwtYVwtcHJvZGlnYWxcLXNvbjsKK+W3ruW+l+WkmiA8IGZhbGxcLXNob3J0XC1ieVwtYVwtbGFyZ2VcLWFtb3VudDsKK+S4jeaApeS5i+WLmSA8IGFcLW1hdHRlclwtb2ZcLW5vXC1ncmVhdFwtdXJnZW5jeTsKK+mbu+ejgeW5suaTviA8IGVsZWN0cm9tYWduZXRpY1wtaW50ZXJmZXJlbmNlOwor5Y+w54Gj6KmxIDwgdGFpd2FuZXNlXC1jaGluZXNlXC1cKGxhbmd1YWdlXCk7CivllaYgPCBmaW5hbFwtcGFydGljbGVcLW9mXC1hc3NlcnRpb247Civnu7wgPCBhcnJhbmdlXC10aHJlYWRzXC1mb3JcLXdlYXZpbmc7Civmi60gPCB3aXBlXC1hd2F5XC1zdGFpbnNcLXdpdGhcLWNsb3RoOwor5Y+uIDwgZXhob3J0XC1vclwtZW5qb2luXC1yZXBlYXRlZGx5Owor5oifIDwgaGFsYmVyZFwtd2l0aFwtY3Jlc2NlbnRcLWJsYWRlOwor5YebIDwgdG9cLXNoaXZlclwtd2l0aFwtY29sZFwtb3JcLWZlYXI7CivmoIsgPCBtYWluXC1iZWFtc1wtc3VwcG9ydGluZ1wtaG91c2U7Civpq6YgPCBmbG93aW5nXC1oYWlyXC1vZlwteW91bmdcLWNoaWxkOwor562dIDwgc3RyaW5nZWRcLW11c2ljYWxcLWluc3RydW1lbnQ7CivkuJkgPCB0aGlyZFwtb2ZcLXRoZVwtaGVhdmVubHlcLXN0ZW1zOwor5rKCIDwgcml2ZXJcLWluXC1zb3V0aGVhc3RcLXNoYW5kb25nOwor56yIIDwgYmFtYm9vXC1ib3hcLXVzZWRcLWNhcnJ5XC1ib29rczsKK+eToiA8IGxhZGxlXC1tYWRlXC1mcm9tXC1kcmllZFwtZ291cmQ7CivnsKcgPCByZWVkXC1vZlwtd29vZHdpbmRcLWluc3RydW1lbnQ7Civom58gPCBzY2FseVwtZHJhZ29uXC13aXRoXC1mb3VyXC1sZWdzOwor5pWVIDwgYW5cLWltcGVyaWFsXC1vcmRlclwtb3JcLWRlY3JlZTsKK+ijnyA8IGFcLWNhc3NvY2tcLW9yXC1yb2JlXC1vZlwtYVwtbW9uazsKK+eitCA8IGNoaXBwZWRcLWVkZ2VcLW9mXC1hXC1jb250YWluZXI7CivnmLQgPCBtYWxhcmlhXC1wZXN0aWxlbnRpYWxcLXZhcG9yczsKK+e6tiA8IGdyZWVuXC1zaWxrXC10aHJlYWRcLW9yXC10YXNzZWw7CivnvaEgPCB0aGVcLW5hbWVcLW9mXC1hXC1jZXJ0YWluXC1zdGFyczsKK+eZuCA8IGxhc3RcLW9mXC10ZW5cLWNlbGVzdGlhbFwtc3RlbXM7CivmqYcgPCBhXC1zbGVkZ2VcLWZvclwtdHJhbnNwb3J0YXRpb247CivnmosgPCB0aGVcLWhpZ2hcLWxhbmRcLWFsb25nXC1hXC1yaXZlcjsKK+a9jSA8IGNvdW50eVwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+a0mSA8IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLXNoYW5kb25nOwor542gIDwgdG9cLWh1bnRcLWF0XC1uaWdodFwtYnlcLXRvcmNoZXM7CivpupIgPCBsZWdlbmRhcnlcLWF1c3BpY2lvdXNcLWFuaW1hbDsKK+ePqSA8IHRoZVwtdG9wXC1nZW1cLW9mXC10aGVcLXBlbmRhbnRzOwor6LClIDwgdG9cLWNvbmZlclwtcG9zdGh1bW91c1wtdGl0bGVzOwor56erIDwgZ2x1dGlub3VzXC12YXJpZXR5XC1vZlwtbWlsbGV0Owor56u9IDwgYW5jaWVudFwtd29vZHdpbmRcLWluc3RydW1lbnQ7CivltK4gPCBcKGVsZW1lbnRcLWluXC1tb3VudGFpblwtbmFtZXNcKTsKK+aEgCA8IHRvXC1jaGFuZ2VcLW9uZScnc1wtY291bnRlbmFuY2U7CivphKIgPCBuYW1lXC1vZlwtYVwtZGlzdHJpY3RcLWluXC1ob25hbjsKK+eZjSA8IHVuaGVhbHRoeVwtbWFya3NcLW9uXC10aGVcLXNraW47CivphJ4gPCBjb3VudHlcLWluXC16aGVqaWFuZ1wtcHJvdmluY2U7Civpm5IgPCBibGFja1wtaG9yc2VcLXdpdGhcLXdoaXRlXC1tYW5lOwor5peSIDwgZnJpbmdlc1wtb2ZcLXBlYXJsc1wtb25cLWNyb3duczsKK+eQiiA8IGFcLXBsYWNlXC1pblwtZWFzdGVyblwtc2hhbmRvbmc7CivomqggPCBhXC1raW5kXC1vZlwtd2F0ZXJcLWJlZXRsZVwtY2FzaDsKK+avsyA8IGZpbmVcLWhhaXJcLW9yXC1mdXJcLW9uXC1hbmltYWxzOwor55ilIDwgdG9cLXJlY292ZXJcLWZyb21cLWFueVwtZGlzZWFzZTsKK+a1iCA8IHJpdmVyXC1pblwtZ3Vhbmdkb25nXC1wcm92aW5jZTsKK+WYpyA8IFwocGhvbmV0aWNcKVwtYXNcLWluXC1weXJpbWlkaW5lOwor5LiN5piT5LmL6KuWIDwgcGVyZmVjdGx5XC1zb3VuZFwtcHJvcG9zaXRpb247CivkvLzkuY7lvojlronlhaggPCB0b1wtYXBwZWFyXC1cKHRvXC1iZVwpXC12ZXJ5XC1zYWZlOwor5rG65a6aIDwgdG9cLWRlY2lkZVwtXCh0b1wtZG9cLXNvbWV0aGluZ1wpOwor5aeK5aa5IDwgXChvbGRlclwtYW5kXC15b3VuZ2VyXClcLXNpc3RlcnM7CivpgLzogpYgPCBiZWFyXC1hXC1jbG9zZVwtcmVzZW1ibGFuY2VcLXRvOwor6JGJ5Yip5qy9IDwgXChydXNzaWFuXC1wcmVzaWRlbnRcKVwteWVsdHNpbjsKK+W+qeWvqSA8IHJlZXhhbWluZVwtXChhXC1qdWRpY2lhbFwtY2FzZVwpOwor5YWl6ZaAIDwgaW50cm9kdWN0aW9uXC1cKHRvXC1hXC1zdWJqZWN0XCk7Civnmb3pnLIgPCB3aGl0ZVwtZGV3XC1cKDE1dGhcLXNvbGFyXC10ZXJtXCk7CivlkITnqK7lkITmqKMgPCB2YXJpb3VzXC1zb3J0c1wtYW5kXC12YXJpZXRpZXM7Civoo5zpq5QgPCBjb21wbGVtZW50XC1cKGluXC1ibG9vZFwtc2VydW1cKTsKK+ipleavlCA8IHRvXC1ldmFsdWF0ZVwtXChieVwtY29tcGFyaXNvblwpOwor5LiN6YGV6L6y5pmCIDwgbm90XC1taXNzXC10aGVcLWZhcm1pbmdcLXNlYXNvbjsKK+m7g+a1puaxnyA8IGh1YW5ncHVcLXJpdmVyXC1cKGluXC1zaGFuZ2hhaVwpOwor6L2J6LqrIDwgXChvZlwtYVwtcGVyc29uXClcLXRvXC10dXJuXC1yb3VuZDsKK+eIquWThyA8IGphdmFcLVwocHJvZ3JhbW1pbmdcLWxhbmd1YWdlXCk7CivmlYjlv6AgPCB2b3dcLWxveWFsdHlcLWFuZFwtZGV2b3Rpb25cLXRvOwor5LqC5L2c5rG65a6aIDwgdG9cLW1ha2VcLWFyYml0cmFyeVwtZGVjaXNpb25zOwor5o6h6L6mIDwgYnV5XC1vblwtYVwtY29uc2lkZXJhYmxlXC1zY2FsZTsKK+W8n+WmuSA8IHNpc3RlclwtaW5cLWxhd1wtXCh3aWZlJydzXC1zaWRlXCk7CivpmbfmlrwgPCBjYXVnaHRcLWluXC1cKGFcLWJhZFwtc2l0dWF0aW9uXCk7Civptb4gPCBhXC1iaXJkXC1yZXNlbWJsaW5nXC10aGVcLWNyYW5lOwor5aSW5YyvIDwgZm9yZWlnblwtXChjdXJyZW5jeVwpXC1leGNoYW5nZTsKK+Wkp+WZqOaZmuaIkCA8IGdyYW5kXC10YWxlbnRzXC1tYXR1cmVcLXNsb3dseTsKK+aRmOeUsSA8IGhpZ2hcLXBvaW50c1wtXChvZlwtYVwtZG9jdW1lbnRcKTsKK+muqCA8IGVwaW5lcGhlbHVzXC1zZXB0ZW1mYXNjaWF0dXM7Civpo6YgPCB3ZWxsXC1ib2lsZWRcLWNvbmdlZVwtb3JcLWdydWVsOwor6ZuKIDwgdGhlXC1jcm93XC1vZlwtYVwtbWFsZVwtcGhlYXNhbnQ7CivpmrogPCBhXC1iaXJkXC1mbHlpbmdcLWhpZ2hcLWFtYml0aW9uOwor6IOM5YyF6KKxIDwgaGF2ZVwtYVwtd2VpZ2h0XC1vblwtb25lJydzXC1taW5kOwor5oyJ5q2l5bCx54+tIDwgZm9sbG93XC10aGVcLXByZXNjcmliZWRcLW9yZGVyOwor5aSW5Lqk6YOo6ZW3IDwgbWluaXN0ZXJcLW9mXC1mb3JlaWduXC1hZmZhaXJzOwor6YaxIDwgdG9cLWJyZXdcLWZvclwtdGhlXC1zZWNvbmRcLXRpbWU7CivphZYgPCB3aW5lXC13aXRoXC1iaXJkXC1wb2lzb25cLWFkZGVkOwor55m+5bC65p2G6aCt5pu055uh5LiA5q2lIDwgbWFrZVwtc3RpbGxcLWZ1cnRoZXJcLXByb2dyZXNzOwor6YS/IDwgY291bnR5XC1pblwteGluamlhbmdcLXByb3ZpbmNlOwor6YSNIDwgYVwtdG93blwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+i5miA8IHRyZWFkXC10aHJvdWdoXC1tdWRcLWFuZFwtd2F0ZXI7CivkuK3lpK7mg4XloLHlsYAgPCBjZW50cmFsXC1pbnRlbGxpZ2VuY2VcLWFnZW5jeTsKK+WBtOi6uiA8IHRvXC1saWVcLWRvd25cLVwob25cLW9uZScnc1wtc2lkZVwpOwor5aCx5oi25Y+jIDwgYXBwbHlcLWZvclwtYVwtcmVzaWRlbnRcLXBlcm1pdDsKK+ikmCA8IGNlcmVtb25pYWxcLWdvd25zXC1vZlwtYVwtcXVlZW47Civon7AgPCBzbWFsbFwtc3BpZGVyXC13aXRoXC1sb25nXC1sZWdzOwor6JuVIDwgdGhlXC1jb21tb25cLWludGVzdGluYWxcLXdvcm1zOwor5pyN5YuZ5o+Q5L6b5ZWGIDwgXChpbnRlcm5ldFwpXC1zZXJ2aWNlXC1wcm92aWRlcjsKK+aQnOaNlSA8IGh1bnRcLWFuZFwtYXJyZXN0XC1cKGZ1Z2l0aXZlc1wpOwor5o+55pu4IDwgcmVjaXRlXC1hXC1sZXNzb25cLWZyb21cLW1lbW9yeTsKK+W5uOWFjSA8IG5hcnJvd2x5XC1hbmRcLWx1Y2tpbHlcLWVzY2FwZTsKK+S4jeeZu+Wkp+mbheS5i+WggiA8IG5vdFwtYXBwZWFsXC10b1wtcmVmaW5lZFwtdGFzdGU7CivogrcgPCBhcmVhXC1iZXR3ZWVuXC13YWlzdFwtYW5kXC1oaXBzOwor6IiJ5LiW55+a55uuIDwgYXR0cmFjdFwtd29ybGR3aWRlXC1hdHRlbnRpb247CivnjajmlrflsIjooYwgPCBhY3RcLWluXC1hblwtYXJiaXRyYXJ5XC1mYXNoaW9uOwor57GEIDwgYVwtYmFza2V0XC1mb3JcLWNhcnJ5aW5nXC1lYXJ0aDsKK+Wci+mam+e0miA8IFwoYXRcLWFuXClcLWludGVybmF0aW9uYWxcLWxldmVsOwor562OIDwgdGhpblwtb3V0c2lkZVwtc2tpblwtb2ZcLWJhbWJvbzsKK+eepCA8IHRvXC1ibGlua1wtb3JcLXR3aXRjaFwtdGhlXC1leWVzOwor566h55CG5L+h5oGv5bqrIDwgbWFuYWdlbWVudFwtaW5mb3JtYXRpb25cLWJhc2U7Civoj6/nm5vpoJPpg7XloLEgPCB3YXNoaW5ndG9uXC1wb3N0XC1cKG5ld3NwYXBlclwpOwor5ZyL5qiZIDwgZ3VvYmlhb1wtXChlbmNvZGluZ1wtc3RhbmRhcmRcKTsKK+S+v+ihgCA8IGhhdmluZ1wtYmxvb2RcLWluXC1vbmUnJ3NcLXN0b29sOwor5regIDwgbHV4dXJpYW50XC1cKG9mXC13YXRlclwtcGxhbnRzXCk7CivmtbAgPCBhdHRlbmRcLVwob2ZmaWNpYWxcLWZ1bmN0aW9uc1wpOwor55eF5qmfIDwgaW50ZXJwcmV0YXRpb25cLW9mXC10aGVcLWNhdXNlOwor5rORIDwgdGhlXC12aXRyZW91c1wtZ2xhemVcLW9uXC1jaGluYTsKK+auqCA8IHRvXC1vcGVuXC1hc1wtYW5cLXVsY2VyXC1vclwtc29yZTsKK+aJjeiPryA8IGxpdGVyYXJ5XC1vclwtYXJ0aXN0aWNcLXRhbGVudDsKK+aMh+azlSA8IGZpbmdlclwtbWV0aG9kXC1cKGluXC1wYWludGluZ1wpOwor5a+26JePIDwgcHJlY2lvdXNcLVwobWluZXJhbFwpXC1kZXBvc2l0czsKK+aPkOWJjSA8IHRvXC1zaGlmdFwtdG9cLWFuXC1lYXJsaWVyXC1kYXRlOwor6Lyp5Ye6IDwgY29tZVwtZm9ydGhcLWluXC1sYXJnZVwtbnVtYmVyczsKK+aejyA8IGFcLXZhcmlldHlcLW9mXC1ldmVyZ3JlZW5cLXRyZWU7Civmnb/ptKggPCBwcmVzc2VkXC1cKGRyaWVkXClcLXNhbHRlZFwtZHVjazsKK+aLlOa1tyA8IGVsZXZhdGlvblwtXChhYm92ZVwtc2VhXC1sZXZlbFwpOwor6aGY5oSP5LiN6aGY5oSPIDwgd2hldGhlclwtb25lXC13YW50c1wtdG9cLW9yXC1ub3Q7CivlkIPkuI3kvoYgPCBub3RcLWJlXC1mb25kXC1vZlwtY2VydGFpblwtZm9vZDsKK+aQhyA8IHRvXC1wcmVzc1wtZG93blwtd2l0aFwtdGhlXC1oYW5kOwor5pOa5aCx5bCOIDwgYWNjb3JkaW5nXC10b1wtXChuZXdzXClcLXJlcG9ydHM7CivotoXmlofku7blgrPovLjljZTlrpogPCBoeXBlcnRleHRcLXRyYW5zZmVyXC1wcm90b2NvbDsKK+W8uCA8IGFcLWJvd1wtc3RyZXRjaGVkXC10b1wtdGhlXC1mdWxsOwor5begIDwgc3RyZWFtc1wtcnVubmluZ1wtdW5kZXJncm91bmQ7CivltJkgPCBrdW5sdW5cLW1vdW50YWluc1wtaW5cLWppYW5nc3U7CivlgKvmlaYgPCBsb25kb25cLVwoY2FwaXRhbFwtb2ZcLWVuZ2xhbmRcKTsKK+WgsyA8IGxhbmRcLWFsbG90bWVudFwtZmV1ZGFsXC1ub2JsZTsKK+WMl+S6rOiqnuiogOWtuOmZoiA8IGJlaWppbmdcLWxhbmd1YWdlc1wtaW5zdGl0dXRlOwor5ZmVIDwgdG9cLXNwZWFrXC1mYWxzZWx5XC1vclwtd3JvbmdseTsKK+aineasviA8IGNsYXVzZVwtXChvZlwtY29udHJhY3RcLW9yXC1sYXdcKTsKK+eXheS+iyA8IFxbbWVkaWNhbFxdXC1jYXNlXC1cW29mXC1pbGxuZXNzXF07CivlmajlrpggPCBvcmdhblwtXChwYXJ0XC1vZlwtYm9keVwtdGlzc3VlXCk7CivkuKkgPCB0b1wtam9pblwtb3JcLWNvbm5lY3RcLXRoZVwtdmluZTsKK+S4kiA8IHRoZVwtcGVyaW9kXC1mcm9tXC0xXC10b1wtM1wtYVwubVwuOwor5LWFIDwgdG9cLWV4dHJhY3RcLWJ5XC1hcHBseWluZ1wtaGVhdDsKK+S0syA8IGRpc3RpbGxlcicnc1wtZ3JhaW5zXC1vclwteWVhc3Q7Civks54gPCBiaXJkc1wtZmx5aW5nXC1hbGxcLWRpcmVjdGlvbnM7Civks4ogPCBhXC13aWxkXC1kdWNrXC1saWtlXC13YXRlclwtYmlyZDsKK+SzgyA8IGFcLWtpbmRcLW9mXC1waG9lbml4XC1saWtlXC1iaXJkOwor5Kq3IDwgdG9cLXRvaWxcLW9yXC1sYWJvclwtc2VkdWxvdXNseTsKK+SqhyA8IGN1c2hpb25lZFwtc2VhdFwtb25cLWFcLXZlaGljbGU7Civkqb8gPCBhXC1iaWdcLWRydW1cLXVzZWRcLWluXC10aGVcLWFybXk7Civkp5ggPCBhXC1sb3dcLXdhbGxcLW9uXC10aGVcLXJvYWRcLXNpZGU7CivkprIgPCBlYXZlc1wtb2ZcLWFcLWFuY2VzdHJhbFwtdGVtcGxlOwor5KS7IDwgaGVhdnlcLWlyb25cLXBhcnRcLW9mXC1hXC1wbG91Z2g7Civko7IgPCB0b1wtaGVhdFwtdGhlXC13aW5lXC1vdmVyXC1uaWdodDsKK+SiryA8IHRvXC1jaG9vc2VcLW9yXC1zZWxlY3RcLWNhcmVmdWw7CivkoIsgPCBiZWxsXC1zaGFwZWRcLXdpdGhcLWxhcmdlXC1iYXNlOwor5J+uIDwgdG9cLWNyYXdsXC1vblwtaGFuZHNcLWFuZFwta25lZXM7CivknLggPCBzbWFsbFwtcGllY2VzXC1vZlwtYmVhblwtc3RhbGtzOwor5JyHIDwgdG9cLXNwZWFrXC1ub3RcLWluXC1hXC1jbGVhclwtd2F5Owor54+t57SaIDwgY2xhc3Nlc1wtb3JcLWdyYWRlc1wtaW5cLXNjaG9vbDsKK+SaoyA8IGNyb29rZWRcLWhvcm5zXC1vZlwtdGhlXC1hbmltYWw7CivkmpwgPCBjYXR0bGVcLXdpdGhcLWNyb3Nzd2lzZVwtaG9ybnM7CivkmaMgPCByYWdnZWRcLWdhcm1lbnRzXC1vclwtY2xvdGhpbmc7CivkmZUgPCBjbG90aGVzXC10aGF0XC1oYXZlXC1ub1wtbGluaW5nOwor5JmUIDwgY2xvdGhlc1wtbWFkZVwtb2ZcLXBvb3JcLWZhYnJpYzsKK+SZkyA8IHRoZVwtbG93ZXJcLXBhcnRcLW9mXC1hXC1nYXJtZW50Owor5JilIDwgdGhlXC1mcm9udFwtb2ZcLWFcLWNoaW5lc2VcLWdvd247CivkmIEgPCBhXC1ibHVlXC1ncmVlblwtY29sb3JlZFwtY2ljYWRhOwor5Je1IDwgYVwtZGlzZWFzZVwtYXR0YWNrZWRcLXNpbGt3b3JtOwor5JWuIDwgZmxvd2VyXC1vZlwtdGhlXC1jaHJ5c2FudGhlbXVtOwor5JSlIDwgY29tbW9uXC12YXJpZXR5XC1vZlwtYXJ0ZW1pc2lhOwor5JSfIDwgc2hha2VcLWFuZFwtd2F2ZVwtb2ZcLXRoZVwtZ3Jhc3M7Civnl4Xmr5LlrbggPCB2aXJvbG9neVwtXChzdHVkeVwtb2ZcLXZpcnVzZXNcKTsKK+SQvCA8IHRoaW5cLW1lbWJyYW5lXC1vZlwtdGhlXC10aHJvYXQ7CivkkK8gPCB1Z2x5XC1hcHBlYXJhbmNlXC1vZlwtYVwtcGVyc29uOwor5JCRIDwgdGhpblwtY3V0XC1vZlwtdGhlXC1zbGljZWRcLW1lYXQ7CivkjbogPCBhXC1sZWdlbmRhcnlcLWdvYXRcLWxpa2VcLWJlYXN0Owor5Iy8IDwgYVwta2luZFwtb2ZcLWZpbmVcLXNpbGtcLWZhYnJpY3M7CivkjIQgPCBhXC1yb3BlXC1mb3JcLWRyYXdpbmdcLXVwXC13YXRlcjsKK+engeS6uumRsOWMmSA8IHByaXZhdGVcLWtleVwtXChpblwtZW5jcnlwdGlvblwpOwor5IqeIDwgdG9cLXJvbGxcLXJvdW5kXC13aXRoXC10aGVcLWhhbmQ7CivkibogPCBkZXRlcmlvcmF0ZWRcLWFuZFwtYmVjb21lXC1yZWQ7CivkibkgPCBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SJuCA8IHNsaXBzXC1vZlwtYmFtYm9vXC1mb3JcLXdyaXRpbmc7CivkiLIgPCBhXC1iYW1ib29cLWJhc2tldFwtZm9yXC1maXNoaW5nOwor5Ie6IDwgYmVhbnNcLWFuZFwtcGVhc1wtY29sbGVjdGl2ZWx5Owor5Ie1IDwgb25lXC1vZlwtdGhlXC13aW5kXC1pbnN0cnVtZW50czsKK+aGsuazlSA8IGNvbnN0aXR1dGlvblwtXChvZlwtYVwtY291bnRyeVwpOwor5IWqIDwgZGlzZWFzZVwtb2ZcLXRoZVwtcHJpdmF0ZVwtcGFydDsKK+SEsCA8IGZvcnR5XC1idW5kbGVzXC1vZlwtcmljZVwtcGxhbnQ7Civkg4cgPCBpbmtcLWZvclwtaW1wcmludGluZ1wtb2ZcLXNlYWxzOwor5ICRIDwgdG9cLWdvdWdlXC1vdXRcLWFuXC1leWVcLW9yXC1leWVzOwor472OIDwgdGhlXC1wcm9mdW5kaXR5XC1vZlwtdGhlXC1oYXJlbTsKK+O8oCA8IGFcLWNyb2NrXC13aXRoXC1uYXJyb3dcLW9wZW5pbmc7CivjuqwgPCBhXC1sYXJnZVwtcGllY2VcLW9mXC1qYWRlXC1zdG9uZTsKK+O6kiA8IGJhcmtpbmdcLW9mXC1hXC1mcmlnaHRlbmVkXC1kb2c7CivkuI3oq7EgPCB3aXRob3V0XC1jb25jZWFsaW5nXC1hbnl0aGluZzsKK+O5liA8IHRvXC1mZWVkXC1hbmltYWxzXC13aXRoXC1ncmFpbnM7CivjuJIgPCB0b1wtYWJzdXJkXC1wdXJzdWl0XC1vclwtZGVzaXJlOwor5Zyw5Z2A6Kej5p6Q5Y2U6K2wIDwgYWRkcmVzc1wtcmVzb2x1dGlvblwtcHJvdG9jb2w7CivjroAgPCB0b29sXC10b1wtY2xlYXJcLW91dFwtdGhlXC13YXRlcjsKK+OtlSA8IGFcLWJvYXJkXC1mb3JcLWNhcnJ5aW5nXC10aGluZ3M7CivjqYYgPCB0b1wtYmVcLWluXC1mdWxsXC1wb3NzZXNzaW9uXC1vZjsKK+iAjOS4jemcgCA8IHdpdGhvdXRcLW5lZWRpbmdcLVwodG9cLXNvXC1zdGhcKTsKK+OnlSA8IHRvXC1mZWVsXC1vclwtdG91Y2hcLXdpdGhcLWhhbmRzOwor46eCIDwgYVwtY2F2ZVwtYVwtaG9sZFwtaW5cLXRoZVwtZ3JvdW5kOwor46aQIDwgYVwtc3RyYWlnaHRmb3J3YXJkXC1jaGFyYWN0ZXI7Civlronmj5IgPCBwbGFjZVwtaW5cLWFcLWNlcnRhaW5cLXBvc2l0aW9uOwor46W0IDwgZG9cLW5vdFwtY2FyZVwtYWJvdXRcLXNvbWV0aGluZzsKK+S6pOaPm+apnyA8IHN3aXRjaFwtXCh0ZWxlY29tbXVuaWNhdGlvbnNcKTsKK++kmiA8IHdoaXRlXC1ob3JzZVwtd2l0aFwtYmxhY2tcLW1hbmU7CivjobUgPCByb29mXC1vZlwtdGhlXC1ob3VzZVwtY29ubmVjdGVkOwor46CfIDwgYVwtbW91bnRhaW5cLWluXC1hbmNpZW50XC10aW1lczsKK+WPpOi5nyA8IHBsYWNlc1wtb2ZcLWhpc3RvcmljXC1pbnRlcmVzdDsKK+ObvSA8IHRvXC13YWxrXC1zbG93bHlcLWxpa2VcLWFcLXdvbWFuOwor45uuIDwgd2lmZVwtb2ZcLW9uZScnc1wtZWxkZXJcLWJyb3RoZXI7Civjk4ggPCBzb3VuZFwtb2ZcLWZseWluZ1wtb3JcLXNwZWVkaW5nOwor45KrIDwgY2hva2VkXC1hbmRcLXVuYWJsZVwtdG9cLWJyZWF0aDsKK+OSliA8IHRoZVwtcm9vdFwtc3RvY2tcLW9mXC10aGVcLWxvdHVzOwor5rCj6auUIDwgZ2FzXC1cKGllXCxcLWdhc2VvdXNcLXN1YnN0YW5jZVwpOwor5aSn6Zm46KmxIDwgbWFpbmxhbmRcLWNoaW5lc2VcLVwobGFuZ3VhZ2VcKTsKK+Wtq+WtkCA8IGdyYW5kc29uXC1cKHNvblwtb2ZcLW9uZScnc1wtc29uXCk7CivlpZTpqLAgPCBcKG9mXC13YXZlc1wpXC10b1wtc3VyZ2VcLWZvcndhcmQ7CivljbvkuYvkuI3mga0gPCB0b1wtcmVmdXNlXC13b3VsZFwtYmVcLWltcG9saXRlOwor5Lqk5o+b5ZmoIDwgXCh0ZWxlY29tXC1vclwtbmV0d29ya1wpXC1zd2l0Y2g7CivpgJroqIrnpL4gPCBhXC1uZXdzXC1zZXJ2aWNlXC1cKGVnXCxcLXhpbmh1YVwpOwor6YO16Zu7IDwgcG9zdFwtYW5kXC10ZWxlY29tbXVuaWNhdGlvbnM7CivllY/lgJkgPCBnaXZlXC1zb21lb25lXC1vbmUnJ3NcLXJlc3BlY3RzOwor56WW54i2IDwgZ3JhbmRmYXRoZXJcLVwoZmF0aGVyJydzXC1zaWRlXCk7CivmhJvlpb3ogIUgPCBsb3ZlclwtXChvZlwtYXJ0XCxcLXNwb3J0c1wsXC1ldGNcKTsKK+axuuetliA8IFwobWFrZVwtYVwpXC1zdHJhdGVnaWNcLWRlY2lzaW9uOwor56WW5q+NIDwgZ3JhbmRtb3RoZXJcLVwoZmF0aGVyJydzXC1zaWRlXCk7CivlnIvpmpvosqjluaPln7rph5HntYTnuZQgPCBpbnRlcm5hdGlvbmFsXC1tb25ldGFyeVwtZnVuZDsKK+mmrOWkquemj+mfsyA8IGdvc3BlbFwtYWNjb3JkaW5nXC10b1wtbWF0dGhldzsKK+mHneeBuCA8IGFjdXB1bmN0dXJlXC1hbmRcLW1veGlidXN0aW9uOwor6Zu76Kmx5pyD6K2wIDwgXCh0ZWxlcGhvbmVcKVwtY29uZmVyZW5jZVwtY2FsbDsKK+S4gOaXpiA8IGluXC1jYXNlXC1cKHNvbWV0aGluZ1wtaGFwcGVuc1wpOwor5aO96L6wIDwgYmlydGhkYXlcLVwob2ZcLWFuXC1vbGRcLXBlcnNvblwpOwor5LiN6JC956qg6Ie8IDwgbm90XC1mb2xsb3dcLXRoZVwtYmVhdGVuXC10cmFjazsKK+aMieeFp+ioiOWKgyA8IGFjY29yZGluZ1wtdG9cLVwodGhlXClcLXBsYW5cLVwuXC5cLjsKK+WFrOWuiemDqCA8IG1pbmlzdHJ5XC1vZlwtcHVibGljXC1zZWN1cml0eTsKK+aKseS4jeW5syA8IGJlXC1vdXRyYWdlZFwtYnlcLWFuXC1pbmp1c3RpY2U7Civkuovmg4XopoHlgZogPCB0aGluZ1wtdGhhdFwtbmVlZHNcLXRvXC1iZVwtZG9uZTsKK+W+qeeUpiA8IHJlY292ZXJ5XC1cKGhlYWx0aFwsXC1lY29ub21pY1wpOwor5pmC5pyfIDwgYVwtcGVyaW9kXC1pblwtdGltZVwtb3JcLWhpc3Rvcnk7CivlkITlnLAgPCBpblwtYWxsXC1wYXJ0c1wtb2ZcLVwoYVwtY291bnRyeVwpOwor55S35a2Q5ryiIDwgbWFuXC1cKGlcLmVcLlwtbWFubHlcLFwtbWFzY3VsaW5lXCk7CivnlaYgPCBzZWN0aW9uc1wtaW5cLXZlZ2V0YWJsZVwtZmFybTsKK+eUuiA8IHJhaXNlZFwtcGF0aFwtYmV0d2VlblwtZmllbGRzOwor5ZuBIDwgbW92ZVwtbGlwc1wtYXNcLXdoZW5cLXNwZWFraW5nOwor5LymIDwgbm9ybWFsXC1odW1hblwtcmVsYXRpb25zaGlwczsKK+WYmyA8IGZpbmFsXC1leGNsYW1hdG9yeVwtcGFydGljbGU7CivokKggPCBidWRkaGlzdFwtZ29kc1wtb3JcLWltbW9ydGFsczsKK+ahkCA8IG5hbWVcLWFwcGxpZWRcLXZhcmlvdXNcLXRyZWVzOwor6JKCIDwgcGVkdW5jbGVcLW9yXC1zdGVtXC1vZlwtcGxhbnRzOwor57S6IDwgZGFya1wtYmx1ZVwtb3JcLXJlZGRpc2hcLWNvbG9yOwor5qO1IDwgbnVtZXJhcnlcLWFkanVuY3RcLWZvclwtdHJlZXM7CivmhosgPCB0b1wtc3VwcHJlc3NcLWlubmVyXC1mZWVsaW5nczsKK+WtnCA8IGJlXC1hc1wtZGlsaWdlbnRcLWFzXC1wb3NzaWJsZTsKK+eysSA8IGJldHRlclwtdmFyaWV0aWVzXC1vZlwtbWlsbGV0Owor5bOSIDwgbW91bnRhaW5cLWluXC1nYW5zdVwtcHJvdmluY2U7CivmpqggPCB0b1wtcHJlc3NcLW9yXC1leHRyYWN0XC1qdWljZXM7CivphLEgPCBjb3VudHlcLWFuZFwtbGFrZVwtaW5cLWppYW5neGk7Civoj6AgPCBzcGluYWNoXC1hbmRcLXNpbWlsYXJcLWdyZWVuczsKK+a3niA8IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLWppYW5nc3U7Civmt4QgPCByaXZlclwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+aCsSA8IHRvXC1iZVwtZGVzaXJvdXNcLW9mXC1zcGVha2luZzsKK+a8ryA8IHJpdmVyXC1pblwtbm9ydGhlcm5cLXNoYW5kb25nOwor6JWZIDwgc3BlY2llc1wtb2ZcLWZyYWdyYW50XC1vcmNoaWQ7Civmu4EgPCBkaXN0cmljdFwtaW5cLWFuaHVpXC1wcm92aW5jZTsKK+eLgSA8IGFcLXRyaWJlXC1vZlwtc2N5dGhpYW5cLW5vbWFkczsKK+mFoiA8IHRvYXN0XC1vbmUnJ3NcLWhvc3RcLXdpdGhcLXdpbmU7Civoob8gPCBjb2xsYXJcLW9yXC1sYXBlbFwtb2ZcLWdhcm1lbnQ7Civltp0gPCBwYXRoXC1sZWFkaW5nXC11cFwtYVwtbW91bnRhaW47Civml4MgPCBzaWxrXC1iYW5uZXJcLXdpdGhcLWJlbnRcLXBvbGU7CivpvZEgPCBicmVha1wtb3JcLXNtYXNoXC1pbnRvXC1waWVjZXM7CivohJggPCBpbnRlcm5hbFwtY2F2aXR5XC1vZlwtc3RvbWFjaDsKK+mVkiA8IG1lYXN1cmVcLW9mXC13ZWlnaHRcLWZvclwtZ29sZDsKK+ecrSA8IGV2aWxcLWxvb2tcLW9mXC1kZWVwXC1zZXRcLWV5ZXM7CivplJYgPCB0aGVcLWNvbG9yXC1vZlwtdGhlXC1hXC1taW5lcmFsOwor6YKZIDwgbW91bnRhaW5cLWluXC1oZW5hblwtcHJvdmluY2U7CivmlasgPCBhbmNpZW50XC1tdXNpY2FsXC1pbnN0cnVtZW50Owor6JCRIDwgZ3Jhc3NcLXVzZWRcLWZvclwtbWFraW5nXC1tYXRzOwor6KevIDwgd2luZVwtZ29ibGV0XC1tYWRlXC1mcm9tXC1ob3JuOwor6IijIDwgdG9cLW1vb3JcLWFcLWJvYXRcLXRvXC10aGVcLWJhbms7CivnopHmlocgPCBhblwtaW5zY3JpcHRpb25cLW9uXC1hXC10YWJsZXQ7Civlt7TlhZLni5cgPCBwZWtpbmdlc2VcLVwoYVwtYnJlZWRcLW9mXC1kb2dcKTsKK+S4gOi3r+W5s+WuiSA8IHRvXC1oYXZlXC1hXC1wbGVhc2FudFwtam91cm5leTsKK+e0kOe0hOaZguWgsSA8IG5ld1wteW9ya1wtdGltZXNcLVwobmV3c3BhcGVyXCk7Civlj7DljJcgPCB0YWlwZWlcLVwoY2FwaXRhbFwtb2ZcLXRhaXdhblwpOwor5bi45ZWP5ZWP6aGMIDwgZnJlcXVlbnRseVwtYXNrZWRcLXF1ZXN0aW9uczsKK+eZvuWtlOWNg+eYoSA8IHJpZGRsZWRcLXdpdGhcLWdhcGluZ1wtd291bmRzOwor5YW16YCj56aN57WQIDwgcmF2YWdlZFwtYnlcLXN1Y2Nlc3NpdmVcLXdhcnM7CivmsrPlhacgPCBoYW5vaVwtXChjYXBpdGFsXC1vZlwtdmlldG5hbVwpOwor6YeP5YqbIDwgdG9cLWVzdGltYXRlXC1vbmUnJ3NcLXN0cmVuZ3RoOwor5pys5Zyw566h55CG55WM6Z2iIDwgbG9jYWxcLW1hbmFnZW1lbnRcLWludGVyZmFjZTsKK+mVt+acn+S7peS+hiA8IGV2ZXJcLXNpbmNlXC1hXC1sb25nXC10aW1lXC1hZ287CivlrZjou4romZUgPCBwYXJraW5nXC1sb3RcLVwoZm9yXC1iaWN5Y2xlc1wpOwor5pah5peLIDwgbWVkaWF0ZVwtXChhXC1jb25mbGljdFwsXC1ldGNcLlwpOwor55m85bGV5qC45q2m5ZmoIDwgdG9cLWRldmVsb3BcLW51Y2xlYXJcLXdlYXBvbnM7CivlronlrrbokL3miLYgPCBtYWtlXC1vbmUnJ3NcLWhvbWVcLWluXC1hXC1wbGFjZTsKK+WFpeacqOS4ieWIhiA8IHdyaXR0ZW5cLWluXC1hXC1mb3JjZWZ1bFwtaGFuZDsKK+eJjOWMviA8IGJvYXJkXC1cKGF0dGFjaGVkXC10b1wtYVwtd2FsbFwpOwor5YuV5omLIDwgdG9cLWhpdFwtd2l0aFwtaGFuZHNcLW9yXC1maXN0czsKK+m8u+eJm+WFkiA8IGhhcmRlbmVkXC1tdWN1c1wtaW5cLW5vc3RyaWxzOwor5q2l5pyIIDwgdG9cLXN0cm9sbFwtYmVuZWF0aFwtdGhlXC1tb29uOwor55Ww5q2l5YKz6Ly45qih5byPIDwgYXN5bmNocm9ub3VzXC10cmFuc2ZlclwtbW9kZTsKK+iqk+W4qyA8IHRvXC12b3dcLWJlZm9yZVwtb25lJydzXC10cm9vcHM7Civpg6jlp5QgPCBtaW5pc3RyaWVzXC1hbmRcLWNvbW1pc3Npb25zOwor6Zuj5oCqIDwgXChpdCcnc1wpXC1ub1wtd29uZGVyXC1cKHRoYXRcLlwuXC5cKTsKK+WHjee1kCA8IFwobG9hblwsXC13YWdlXCxcLXByaWNlXClcLWZyZWV6ZTsKK+aWveWKoCA8IGV4ZXJ0XC1cKGVmZm9ydFwtb3JcLXByZXNzdXJlXCk7CivoppbnqpcgPCB3aW5kb3dzXC1cKG9wZXJhdGluZ1wtc3lzdGVtXCk7Civlt6jokZcgPCBtb251bWVudGFsXC1cKGxpdGVyYXJ5XClcLXdvcms7CivliIbmmYLlpJrlt6UgPCB0aW1lXC1kaXZpc2lvblwtbXVsdGlwbGV4aW5nOwor5Yuf5YyWIDwgdG9cLWNvbGxlY3RcLWFsbXNcLVwoYnVkZGhpc21cKTsKK+aguea3seiSguWbuiA8IGRlZXBcLXJvb3RlZFwtXChwcm9ibGVtXCxcLWV0Y1wpOwor5Y+b6K6K55qE55yB5Lu9IDwgcmVuZWdhZGVcLXByb3ZpbmNlXC1cKHRhaXdhblwpOwor6YOo5LiLIDwgdHJvb3BzXC11bmRlclwtb25lJydzXC1jb21tYW5kOwor6aa1IDwgaG9yc2VcLXdpdGhcLXdoaXRlXC1iYWNrXC1sZWdzOwor6aOjIDwgZGlzcGxheVwtZm9vZFwtZm9yXC1zaG93XC1vbmx5Owor5pif5bO25pel5aCxIDwgc2luZ1wtdGFvXC1kYWlseVwtXChuZXdzcGFwZXJcKTsKK+mXkiA8IHVwcGVyXC1zdG9yeVwtZG9vclwtb3JcLXdpbmRvdzsKK+WFqOeoiyA8IFwoZHVyaW5nXC1hblwpXC1lbnRpcmVcLWpvdXJuZXk7Civplbfnr4cgPCBsZW5ndGh5XC1cKHJlcG9ydFwtb3JcLXNwZWVjaFwpOwor6Zu76IWm6LyU5Yqp5pWZ5p2QIDwgY29tcHV0ZXJcLWFpZGVkXC1pbnN0cnVjdGlvbjsKK+ilv+a5liA8IHRoZVwtd2VzdFwtbGFrZVwsXC1pblwtaGFuZ3pob3U7CivlrqLmiLbmqZ/mnI3li5nlmajnkrDlooMgPCBjbGllbnRcLXNlcnZlclwtZW52aXJvbmVtZW50Owor6YqBIDwgYVwtd2VpZ2h0XC1vZlwtdGhpcnR5XC1jYXR0aWNzOwor6YaKIDwgdG9cLXBvdXJcLXdpbmVcLWluXC1hXC1saWJhdGlvbjsKK+mDvyA8IGNvdW50eVwtaW5cLXNoYWFueGlcLXByb3ZpbmNlOwor6YOzIDwgc3RhdGVcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7Civpg6AgPCBwbGFjZVwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+mDmiA8IHRvd25zXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor6LykIDwgYVwtcGFsbFwtdG9cLWNvdmVyXC10aGVcLWhlYXJzZTsKK+aSpeW8hCA8IG1vdmVcLXRvXC1hbmRcLWZyb1wtXCh3aXRoXC1oYW5kOwor6KGo6KiYIDwgc29tZXRoaW5nXC1naXZlblwtYXNcLWFcLXRva2VuOwor6LiSIDwgdG9cLXNsaXBcLWFuZFwtc3ByYWluXC1hXC1ibGltYjsKK+ihqOijoSA8IHRoZVwtb3V0c2lkZVwtYW5kXC10aGVcLWluc2lkZTsKK+imkCA8IGFcLXNsZWVwXC10b1wtcmVhbGl6ZVwtdG9cLWZlZWw7CivmoYPoirHpgYsgPCBsdWNrXC13aXRoXC10aGVcLW9wcG9zaXRlXC1zZXg7Civpm7vkv6HmnI3li5kgPCB0ZWxlY29tbXVuaWNhdGlvbnNcLXNlcnZpY2U7CivpgLzlgrUgPCBwcmVzc1wtZm9yXC1wYXltZW50XC1vZlwtZGVidHM7CivlhazplovpkbDljJkgPCBwdWJsaWNcLWtleVwtXChpblwtZW5jcnlwdGlvblwpOwor6JmhIDwgc3VwcG9ydFwtc3RydWN0dXJlXC1mb3JcLWJlbGw7Civolr4gPCBsdXh1cmlhbnRcLWdyb3d0aFwtb2ZcLWZsb3dlcjsKK+W8l+WhnuWlhyA8IHZlcnNhY2VcLVwoZmFzaGlvblwtZGVzaWduZXJcKTsKK+iMiCA8IGFcLXBsYW50XC15aWVsZGluZ1wtYVwtcmVkXC1keWU7Civmma7pgJroqbEgPCBtYW5kYXJpblwtXChjb21tb25cLWxhbmd1YWdlXCk7Civpm7vkv6HntrLot68gPCB0ZWxlY29tbXVuaWNhdGlvbnNcLW5ldHdvcms7CivohoYgPCB0aGVcLWNvcnBcLW9mXC1hXC1iaXJkXC1vclwtZm93bDsKK+mbu+iFpui8lOWKqeW3peeoiyA8IGNvbXB1dGVyXC1haWRlZFwtZW5naW5lZXJpbmc7CivmhJ/mn5PkurrmlbggPCBudW1iZXJcLW9mXC1pbmZlY3RlZFwtcGVyc29uczsKK+ethumLkiA8IHRoZVwtdGlwXC1vZlwtYVwtd3JpdGluZ1wtYnJ1c2g7CivloLHliIogPCBuZXdzcGFwZXJzXC1hbmRcLXBlcmlvZGljYWxzOwor55m+5q2l56m/5qWKIDwgc2hvb3RcLXdpdGhcLWdyZWF0XC1wcmVjaXNpb247Civnva0gPCBkcmFnXC1uZXRcLW1hZGVcLW9mXC1maW5lXC1tZXNoOwor572PIDwgZWFydGhlblwtc3RhbmRcLWZvclwtd2luZVwtanVnOwor572NIDwgbGFyZ2VcLWVhcnRoZW53YXJlXC13aW5lXC1qYXI7CivmvJTorJsgPCBcKGdpdmVcKVwtYVwtc3BlZWNoXC1vclwtbGVjdHVyZTsKK+e5uCA8IGhlbVwtb3JcLWJvcmRlclwtb2ZcLWFcLWdhcm1lbnQ7CivlnIvniLYgPCBmYXRoZXJcfGZvdW5kZXJcLW9mXC1hXC1uYXRpb247Civnr58gPCBsdXh1cmlhbnRcLWdyb3d0aFwtb2ZcLWJhbWJvbzsKK+S+nemdoCA8IHJlbHlcLW9uXC1cKGZvclwtc3VwcG9ydFwsXC1ldGNcKTsKK+aJgOmVtyA8IGhlYWRcLW9mXC1hblwtaW5zdGl0dXRlXCxcLWV0Y1wuOwor56qGIDwgdG9cLXB1dFwtYVwtY29mZmluXC1pblwtYVwtZ3JhdmU7CivnpbIgPCBvbWlub3VzXC1vclwtc2luaXN0ZXJcLXNwaXJpdDsKK+W5vuW5tOS+hiA8IGZvclwtdGhlXC1wYXN0XC1zZXZlcmFsXC15ZWFyczsKK+iLpeW5siA8IGFcLWNlcnRhaW5cLW51bWJlclx8YW1vdW50XC1vZjsKK+eZlSA8IGxvc3NcLW9mXC10aGVcLXNlbnNlXC1vZlwtc21lbGw7CivpoKTlkozlnJIgPCBzdW1tZXJcLXBhbGFjZVwtXChpblwtYmVpamluZ1wpOwor56u26YG4IDwgcnVuXC1mb3JcLVwoZWxlY3RvcmFsXClcLW9mZmljZTsKK+aQtuWFiCA8IHRvXC1ydXNoXC1cKHRvXC1kb1wtc3RoXC11cmdlbnRcKTsKK+ePmyA8IHF1aWNrbHlcLWRldGVyaW9yYXRpbmdcLWphZGU7CivlgZznlZkgPCBzdGF5XC1zb21ld2hlcmVcLXRlbXBvcmFyaWx5Owor5r63IDwgd2F0ZXJcLW92ZXJmbG93aW5nXC1kaWZmdXNlZDsKK+WHuuePvuaEj+WkliA8IFwodG9cLWFwcGVhclwpXC11bmV4cGVjdGVkXChseVwpOwor5q+pIDwgYVwtbGVhdGhlclwtYmFsbFwtZm9yXC1raWNraW5nOwor55eF5qCqIDwgZGlzZWFzZWRcLW9yXC1pbmZlY3RlZFwtcGxhbnQ7Civkv5fnqLEgPCBiZVwtY29tbW9ubHlcLXJlZmVycmVkXC10b1wtYXM7Civmj7kgPCBjYXJyeVwtdGhpbmdzXC1vblwtb25lJydzXC1iYWNrOwor5o+BIDwgc291bmRcLW9mXC1zZXR0aW5nXC11cFwtYVwta290bzsKK+S4gOinuOWNs+eZvCA8IGNvdWxkXC1oYXBwZW5cLWF0XC1hbnlcLW1vbWVudDsKK+ihjOWwhyA8IGJlXC1hYm91dFwtdG9cLVwoZG9cLXNvbWV0aGluZ1wpOwor6Laz55CDIDwgZm9vdGJhbGxcLVwoYnJpdGlzaFwtZW5nbGlzaFwpOwor57qW6Iqv55u05b6RIDwgY29yZVwtZGlhbWV0ZXJcLVwob2ZcLWFcLWZpYmVyXCk7CivlqqcgPCBteXRob2xvZ2ljYWxcLXNuYWlsXC1nb2RkZXNzOwor6IOM6ISKIDwgdGhlXC1iYWNrXC1vZlwtdGhlXC1odW1hblwtYm9keTsKK+WbiSA8IGV4Y2xhbWF0b3J5XC1maW5hbFwtcGFydGljbGU7CivlrqLmiLbmnI3li5nlmajntZDmp4sgPCBjbGllbnRcLXNlcnZlclwtYXJjaGl0ZWN0dXJlOwor5Zi3IDwgdGhlXC1yb2FyaW5nXC1vZlwtd2lsZFwtYmVhc3RzOwor6YCy6KGM5Lqk5piTIDwgdG9cLWNhcnJ5XC1vdXRcLWFcLXRyYW5zYWN0aW9uOwor5oqX5pOKIDwgcmVzaXN0XC1cKGFcLW1pbGl0YXJ5XC1hdHRhY2tcKTsKK+WJniA8IGNhcnZpbmdcLW9yXC1lbmdyYXZpbmdcLWtuaWZlOwor6aas5L6G5Lq6IDwgbWFsYXlzaWFuXC1wZXJzb25cLW9yXC1wZW9wbGU7Civlho8gPCBhYnV0aWxvblwtYXZpY2VubmFlXC1cKHBsYW50XCk7CivliKXlh7rlv4Poo4EgPCBhZG9wdFwtYW5cLW9yaWdpbmFsXC1hcHByb2FjaDsKK+Wwi+apnyA8IHRvXC1sb29rXC1mb3JcLWFuXC1vcHBvcnR1bml0eTsKK+S5qyA8IHVzZWRcLWluXC1rb3JlYW5cLXBsYWNlXC1uYW1lczsKK+WvpuazgSA8IHdoYXRcLWlzXC1hY3R1YWxseVwtaGFwcGVuaW5nOwor5LWGIDwgZ3JhaW5zXC1mcm9tXC10aGVcLWRpc3RpbGxlcnk7Civksq8gPCBhXC1raW5kXC1vZlwtYmxhY2tcLXNtYWxsXC1iaXJkOwor5K+TIDwgdGhlXC1oZWFkXC1ib25lXC1vZlwtbGl2ZXN0b2NrOwor5K62IDwgZmxvY2tcLW9mXC1ob3JzZXNcLXN0YW1wZWRpbmc7CivkrqMgPCBhXC15ZWxsb3dcLXdpdGhcLWFcLXdoaXRlXC10YWlsOwor5aqS6auU5o6l5Y+j6YCj5o6l5ZmoIDwgbWVkaXVtXC1pbnRlcmZhY2VcLWNvbm5lY3RvcjsKK+W6leeJueW+iyA8IGRldHJvaXRcLVwoYVwtY2l0eVwtaW5cLXRoZVwtdXNcKTsKK+SssSA8IGNvYXJzZVwtZ3JhaW5zXC1zdWNoXC1hc1wtY29ybjsKK+S4reWci+enkeWtuOmZoiA8IGNoaW5lc2VcLWFjYWRhbXlcLW9mXC1zY2llbmNlOwor5KmyIDwgYVwtdG9vbFwtdXNlZFwtdG9cLWN1dFwtbGVhdGhlcjsKK+SpmiA8IHRvXC1tZW5kXC10aGVcLXNvbGVzXC1vZlwtc2hvZXM7Civnmb7nmbznmb7kuK0gPCBldmVyeVwtc2hvdFwtaGl0c1wtdGhlXC10YXJnZXQ7CivkuIHpm7IgPCBkaW5nXC15dW5cLVwoYVwtcGVyc29uYWxcLW5hbWVcKTsKK+iZm+aTrOmAmumBk+mAo+aOpSA8IHZpcnR1YWxcLWNoYW5uZWxcLWNvbm5lY3Rpb247CivkoaYgPCB0aGVcLWVtcHR5XC1zcGFjZVwtb2ZcLWFcLXdoZWVsOwor5qGI5p2/IDwga25lYWRpbmdcLW9yXC1jaG9wcGluZ1wtYm9hcmQ7CivkoIkgPCB0b1wtcnVuXC1hd2F5XC1vclwtZXNjYXBlXC1mcm9tOwor5J6RIDwgYVwtcmVkXC1zd2VsbGluZ1wtb2ZcLXRoZVwtc2tpbjsKK+S/neWuiCA8IFwocG9saXRpY2FsbHlcKVwtY29uc2VydmF0aXZlOwor5JuvIDwgdGhlXC1yZWFzb25hYmxlXC1vZlwtc3BlZWtpbmc7CivkloUgPCBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JSFIDwgbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC10cmVlczsKK+SSsSA8IHR3aWdzXC1vZlwtaGVtcFwtdXNlZFwtZm9cLWZ1ZWw7CivkjrcgPCBhblwtb2xkXC1tYW5cLXdpdGhcLXdoaXRlXC1oYWlyOwor5LiN6YCBIDwgZG9uJyd0XC1ib3RoZXJcLXRvXC1zZWVcLW1lXC1vdXQ7CivkjKAgPCBob2xkXC1vblwtdG9cLW9uZScnc1wtb3duXC12aWV3czsKK+mdouWaruWwjeixoeeahOaKgOihkyA8IG9iamVjdFwtb3JpZW50ZWRcLXRlY2hub2xvZ3k7CivnpZ7pgZMgPCBzaGludG9cLVwoamFwYW5lc2VcLXJlbGlnaW9uXCk7Civki4AgPCBzaG9lc1wtbWFkZVwtb2ZcLWhlbXBcLW9yXC1oYWlyOwor5IquIDwgbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFpbjsKK+SJgiA8IGFcLWJhc2tldFwtZm9yXC1lYXJ0aFwtb3JcLXNvaWw7Civkh5YgPCByb3BlXC1tYWRlXC1vZlwtYmFtYm9vXC1zdHJpcHM7CivkhoAgPCB0b1wtY29ycnVwdFwtb3JcLWJlXC1jb3JydXB0ZWQ7Civkhb4gPCBzdGFydGluZ1wtdG9cLXB1dFwtZm9ydGhcLWVhcnM7CivkhawgPCBzbWFsbFwtYnVuZGxlXC1vZlwtcmljZVwtcGxhbnQ7CivlsIflsLEgPCBhY2NlcHRcLVwoYVwtYml0XC1yZWx1Y3RhbnRseVwpOwor5LiN5Lqi5LiN5Y2RIDwgbmVpdGhlclwtaGF1Z2h0eVwtbm9yXC1odW1ibGU7CivkgY4gPCB0b1wtbWFrZVwtYVwtY2xvc2VcLWluc3BlY3Rpb247CivkgIogPCBhXC1raW5kXC1vZlwtd2F0ZXJcLWNvbnRhaW5lcnM7Civmh7fmirEgPCBcKHdpdGhpblwtc29tZW9uZScnc1wpXC1lbWJyYWNlOwor47ypIDwgY29uY2F2ZVwtY2hhbm5lbHNcLW9mXC10aWxpbmc7CivnlKjmiLbnq6/oqK3lgpkgPCBjdXN0b21lclwtcHJlbWlzZVwtZXF1aXBtZW50Owor5oOF5rOB5LiLIDwgdW5kZXJcLVwodGhpc1wpXC1jaXJjdW1zdGFuY2VzOwor47qgIDwgYVwtYmxhY2tcLWFwZVwtd2l0aFwtbG9uZ1wtdGFpbDsKK+O6lSA8IHRoZVwtZmlnaHRpbmdcLXNvdW5kXC1vZlwtZG9nczsKK+O5miA8IHNvdW5kXC1vZlwtY2FsbGluZ1wtdG9cLWFcLWNhbGY7Civjt7YgPCB0b1wtZHJ5XC1vclwtd2FybVwtbmVhclwtYVwtZmlyZTsKK+a6q+WTpeiPryA8IHZhbmNvdXZlclwtXChjaXR5XC1pblwtY2FuYWRhXCk7Civjt4MgPCBmaXJlXC1idXJuc1wtZm9yXC1hXC1sb25nXC10aW1lOwor47SUIDwgdGhlXC1ub2lzZVwtb2ZcLWZsb3dpbmdcLXdhdGVyOwor47SLIDwgZGVlcFwtYW5kXC1jbGVhclwtXC10b1wtdXJpbmF0ZTsKK+OzpyA8IHRoZVwtd2F0ZXJcLWZsb3dpbmdcLWZyb21cLVwuXC5cLjsKK+OxvSA8IHRvXC1oaXRcLW9yXC10b1wtc3RyaWtlaGVhdmlseTsKK+OxuyA8IGRpc2Vhc2VzXC1vZlwtZHVtYlwtY3JlYXR1cmVzOwor47GhIDwgdGhlXC1zb3VsXC1vdXRcLW9mXC1vbmUnJ3NcLWJvZHk7CivjsZQgPCBhXC1zbWFsbFwtcXVhbnRpdHlcLW9yXC1udW1iZXI7Civjr58gPCBmb290XC1vZlwtYVwtaGlsbFwtb3JcLW1vdW50YWluOwor462uIDwgYVwta2luZFwtb2ZcLWxpcXVvclwtY29udGFpbmVyOwor5Y+z6YKKIDwgcmlnaHRcLVwoYXNcLW9wcG9zZWRcLXRvXC1sZWZ0XCk7CivkuI3nrYnlg7nkuqTmj5sgPCBleGNoYW5nZVwtb2ZcLXVuZXF1YWxcLXZhbHVlczsKK+eZvemgree/gSA8IHJvb3RcLW9mXC1jaGluZXNlXC1wdWxzYXRpbGxhOwor76iMIDwgZHVwbGljYXRlXC1vZlwtYmlnXC1maXZlXC1hNDYxOwor55m95aOB54Sh55GVIDwgaW1wZWNjYWJsZVwtbW9yYWxcLWludGVncml0eTsKK+OmgyA8IHBlcmZlY3RcLXBlcnNvbmFsXC1jaGFyYWN0ZXI7CivnpL7oq5YgPCBlZGl0b3JpYWxcLVwoaW5cLWFcLW5ld3NwYXBlclwpOwor5a625bi4IDwgdGhlXC1kYWlseVwtbGlmZVwtb2ZcLWFcLWZhbWlseTsKK+OljSA8IHRvXC1iZWFyXC1qZWFsb3VzXC1oYXRyZWRcLWZvcjsKK+OkrCA8IGZ1bGxcLW9mXC1hbmdlclwtYW5kXC12ZXhhdGlvbjsKK+OkjiA8IGFcLW1vZGVsXC1vclwtdHlwaWNhbFwtZXhhbXBsZTsKK+OkhCA8IHJhZ2luZ1wtYW5pbW9zaXR5XC1vclwtaGF0cmVkOwor46OnIDwgdGhlXC1zdWNjZXNzaW9uXC1pblwtYVwtZmFtaWx5Owor46OjIDwgdG9cLXdhbGtcLWluXC1hblwtdW5zdGVhZHlcLXdheTsKK+OiuCA8IGRldmljZVwtZm9yXC1yZWd1bGF0aW5nXC1ib3dzOwor46KSIDwgYW5cLWFsbW9zdFwtY29sbGFwc2luZ1wtaG91c2U7Civmm7jogZYgPCBhXC1ncmVhdFwtY2FsbGlncmFwaHlcLW1hc3RlcjsKK+OcqiA8IG5hbWVcLW9mXC1hXC1mYW1pbHlcLW9yXC1hXC1jbGFuOwor45yVIDwgcmVsYXRpdmVzXC10aHJvdWdoXC1tYXJyaWFnZTsKK+ObsiA8IHRoZVwtaGFpclwtb25cLXRoZVwtaHVtYW5cLWhlYWQ7Civjmr8gPCBhXC1nb2RkZXNzJydzXC1uYW1lXC1pblwtbGVnZW5kOwor45mhIDwgYVwta2luZFwtb2ZcLWVhdGFibGVcLW11c2hyb29tOwor45i5IDwgdG9cLXNwcmVhZFwtc29pbFwtb25cLXRoZVwtcm9hZDsKK+S4reaWh+eJiCA8IGNoaW5lc2VcLVwobGFuZ3VhZ2VcKVwtdmVyc2lvbjsKK+OYpCA8IGNpcmNsZVwtb2ZcLXRoZVwtbW92aW5nXC13YXRlcjsKK+OWqCA8IGluZGlzdGluY3RcLW5hc2FsXC11dHRlcmFuY2U7Civjkr0gPCBhXC1raW5kXC1vZlwtY2FwXC1mb3JcLWNoaWxkcmVuOwor6auY5Lit55SfIDwgc2VuaW9yXC1oaWdoXC1zY2hvb2xcLXN0dWRlbnQ7CivjkJYgPCBhXC10cmFuc2xhdGVkXC1uYW1lXC1vZlwtaW5kaWE7Civos4fmnKwgPCBjYXBpdGFsXC1cKGFzXC1pblwtY2FwaXRhbGlzbVwpOwor5p2/576955CDIDwgYmF0dGxlZG9yZVwtYW5kXC1zaHV0dGxlY29jazsKK+miqOeQtCA8IG9yZ2FuXC1cKG11c2ljYWxcLWluc3RydW1lbnRcKTsKK+Wtl+W4liA8IGNvcHlib29rXC1cKGZvclwtY2FsbGlncmFwaHlcKTsKK+aVl+WtkOWbnumgrSA8IHJldHVyblwtb2ZcLXRoZVwtcHJvZGlnYWxcLXNvbjsKK+ioquWVj+e+juWciyA8IHRvXC12aXNpdFwtdGhlXC11bml0ZWRcLXN0YXRlczsKK+S4jeWkseaZguapnyA8IHNlaXplXC10aGVcLW9wcG9ydHVuZVwtbW9tZW50Owor5a6J5YiGIDwgbm90XC1nb1wtYmV5b25kXC1vbmUnJ3NcLWJvdW5kczsKK+aal+eskSA8IGxhdWdoXC1pblwtXCh1cFwpXC1vbmUnJ3NcLXNsZWV2ZTsKK+WwjuW9iOa9m+iJhyA8IFwoZ3VpZGVkXClcLW1pc3NpbGVcLXN1Ym1hcmluZTsKK+e+jueOsiA8IG1laVwtbGluZ1wtXChhXC1wZXJzb24nJ3NcLW5hbWVcKTsKK+eip+ihgCA8IGJsb29kXC1zaGVkXC1pblwtYVwtanVzdFwtY2F1c2U7Civlj4PlhanpmaIgPCBib3RoXC1ob3VzZXNcLW9mXC11c1wtY29uZ3Jlc3M7CivmtKrmo64gPCBodW5cLXNlblwtXChjYW1ib2RpYW5cLWxlYWRlclwpOwor56if5ZGKIDwgcmVwb3J0XC1cKHRvXC1vbmUnJ3NcLXN1cGVyaW9yXCk7Civpgbrpq5QgPCByZW1haW5zXC1cKG9mXC1hXC1kZWFkXC1wZXJzb25cKTsKK+mBv+miqCA8IHRha2VcLXNoZWx0ZXJcLWZyb21cLXRoZVwtd2luZDsKK+emj+W7uiA8IGZ1amlhblwtXChwcm92aW5jZVwtb2ZcLWNoaW5hXCk7CivlronlpoLms7DlsbEgPCBhc1wtc2VjdXJlXC1hc1wtbW91bnRcLXRhaXNoYW47Civli5joqqQgPCB0b1wtY29ycmVjdFwtcHJpbnRpbmdcLWVycm9yczsKK+WNh+e0miA8IHRvXC1lc2NhbGF0ZVwtXChpblwtaW50ZW5zaXR5XCk7CivlvLfoqr8gPCB0b1wtZW1waGFzaXplXC1cKGFcLXN0YXRlbWVudFwpOwor6ICM5LiUIDwgbm90XC1vbmx5XC1cLlwuXC5cLWJ1dFwtYWxzb1wtXC5cLlwuXC47Civpgbfpg70gPCB0b1wtbW92ZVwtdGhlXC1jYXBpdG9sXC1cKGNpdHlcKTsKK+S4jee+qeS5i+iyoSA8IGlsbFwtZ290dGVuXC13ZWFsdGhcLW9yXC1nYWluczsKK+mHjeimgeeahOaYryA8IGl0XC1pc1wtaW1wb3J0YW50XC1cKHRoYXRcKVwtXC5cLlwuOwor5LiN5L2GIDwgbm90XC1vbmx5XC1cKFwuXC5cLlwtYnV0XC1hbHNvXC5cLlwuXCk7CivljIXnlKIgPCBtYWtlXC1hXC1wcm9kdWN0aW9uXC1jb250cmFjdDsKK+eZn+ieuueXpyA8IGNob2xlcmFcLVwod2l0aFwtZGVoeWRyYXRpb25cKTsKK+WxiiA8IG51bWVyYXJ5XC1hZGp1bmN0XC1mb3JcLXRpbWU7CivosIEgPCB3aG9cP1wtd2hvbVw/XC13aG9zZVw/XC1hbnlvbmVcPzsKK+mYvyA8IHByZWZpeFwtZm9yXC1wZW9wbGUnJ3NcLW5hbWVzOwor6I6iIDwgcG9kc1wtb2ZcLWxlZ3VtaW5vdXNcLXBsYW50czsKK+eLhCA8IHRyaWJlXC1mcm9tXC1ub3J0aGVyblwtY2hpbmE7CivnubAgPCB0b1wtcmVlbFwtc2lsa1wtZnJvbVwtY29jb29uczsKK+a8kyA8IHJpdmVyXC1pblwtZ3Vhbmd4aVwtcHJvdmluY2U7CivlkosgPCBxdWVzdGlvblwtZm9ybWluZ1wtcGFydGljbGU7Civpup8gPCBmZW1hbGVcLW9mXC1jaGluZXNlXC11bmljb3JuOwor5ritIDwgbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtc2hhbnhpOwor6IqcIDwgbHV4dXJpb3VzXC1ncm93dGhcLW9mXC13ZWVkczsKK+e7jiA8IHRvXC11bnJhdmVsXC1vclwtdW5yZWVsXC1zaWxrOwor55KQIDwgYmVhdXRpZnVsXC12YXJpZXR5XC1vZlwtamFkZTsKK+mftiA8IG11c2ljXC1vZlwtdGhlXC1lbXBlcm9yXC1zaHVuOwor6ayfIDwgZHJlc3NcLWhhaXJcLWluXC1jb2lsZWRcLWtub3Q7CivnvYIgPCBsb25nXC1uZWNrZWRcLWphclwtb3JcLWJvdHRsZTsKK+mdsyA8IHN0cmFwXC1vblwtYVwtaG9yc2UnJ3NcLWJyZWFzdDsKK+a3piA8IHJpdmVyXC1pblwtamlhbmd4aVwtcHJvdmluY2U7CivmkKEgPCB0b1wtcHVzaFwtb3Zlclwtb3JcLXB1c2hcLWJhY2s7Civoia4gPCBzZXZlbnRoXC1vZlwtZWlnaHRcLWRpYWdyYW1zOwor5rmfIDwgcml2ZXJcLWluXC1xaW5naGFpXC1wcm92aW5jZTsKK+eMsSA8IGFcLW1vbmtleVwtd2l0aFwteWVsbG93XC1oYWlyOwor5raqIDwgcml2ZXJcLWluXC1zaWNodWFuXC1wcm92aW5jZTsKK+S6syA8IG5hbWVcLW9mXC1kaXN0cmljdFwtaW5cLWFuaHVpOwor6JS6IDwgcnVzaFwtdXNlZFwtZm9yXC1tYWtpbmdcLW1hdHM7CivnkKwgPCB0aGVcLXZpcnR1ZVwtb2ZcLWFcLWdlbnRsZW1hbjsKK+eMlyA8IGV4Y2xhbWF0aW9uXC1vZlwtYWRtaXJhdGlvbjsKK+m8mSA8IGRydW1cLWNhcnJpZWRcLW9uXC1ob3JzZWJhY2s7CivolbIgPCB2YXJpZXR5XC1vZlwtYXJ0ZW1pc2lhXC1zZWVrOwor55OeIDwgeW91bmdcLW1lbG9uc1wtanVzdFwtZm9ybWluZzsKK+i+gSA8IGNhcnRcLXdoZWVsXC13aXRoXC1ub1wtc3Bva2VzOwor6YWGIDwgbmFtZVwtb2ZcLXpob3VcLXBlcmlvZFwtc3RhdGU7CivljJfmnJ0gPCB0aGVcLW5vcnRoZXJuXC1keW5hc3RpZXNcLVwoYTsKK+i2heaWh+acrOaomeiomOiqnuiogCA8IGh5cGVydGV4dFwtbWFya3VwXC1sYW5ndWFnZTsKK+awuOS5heiZm+mbu+i3ryA8IHBlcm1hbmVudFwtdmlydHVhbFwtY2lyY3VpdDsKK+WMheaUrCA8IHVuZGVydGFrZVwtdGhlXC13aG9sZVwtdGhpbmc7Civli57mlZkgPCByZWVkdWNhdGlvblwtdGhyb3VnaFwtbGFib3I7CivljYrloLQgPCBoYWxmXC1vZlwtYVwtZ2FtZVwtb3JcLWNvbnRlc3Q7CivpgJrkv6HmioDooZMgPCBjb21tdW5pY2F0aW9uc1wtdGVjaG5vbG9neTsKK+eZvOmBlCA8IGRldmVsb3BlZFwtXChjb3VudHJ5XCxcLWV0Y1wuXCk7CivloZ7niL7ntq3kup7lhYvnvoXlnLDkup7oqp4gPCBzZXJib1wtY3JvYXRpYW5cLVwobGFuZ3VhZ2VcKTsKK+eAiemcsiA8IHRvXC1sZWFrXC1vdXRcLVwoaW5mb3JtYXRpb25cKTsKK+atsuaVuCA8IGFnZVwtXChudW1iZXJcLW9mXC15ZWFyc1wtb2xkXCk7CivlpJbljK/lhLLlgpkgPCBmb3JlaWduXC1leGNoYW5nZVwtcmVzZXJ2ZXM7CivplovoqK0gPCBvZmZlclwtXChnb29kc1wtb3JcLXNlcnZpY2VzXCk7Civlu6PmnbEgPCBndWFuZ2RvbmdcLXByb3ZpbmNlXCxcLWNoaW5hOwor5pS+5b+DIDwgdG9cLXNldFwtb25lJydzXC1taW5kXC1hdFwtcmVzdDsKK+mtr+i/hSA8IG5hbWVcLW9mXC1hblwtYXV0aG9yXCxcLWx1XC14dW47CivpgZnmnJsgPCB0b1wtbG9va1wtaW50b1wtdGhlXC1kaXN0YW5jZTsKK+mbu+WtkOmDteS7tuWCs+mAgeacjeWLmSA8IFwoZVwtXCltYWlsXC1kZWxpdmVyeVwtc2VydmljZTsKK+ijnOi2syA8IGJyaW5nXC11cFwtdG9cLWZ1bGxcLXN0cmVuZ3RoOwor6YCP6YCa5oCnIDwgdHJhbnNwYXJlbmN5XC1cKG5ldHdvcmtpbmdcKTsKK+eGrOWknCA8IHN0YXlcLXVwXC1sYXRlXC1vclwtYWxsXC1uaWdodDsKK+mwvCA8IHRoZVwtd2VhdGhlclwtb3JcLWRvam9cLWxvYWNoOwor6auU6amXIDwgdG9cLWV4cGVyaWVuY2VcLWZvclwtb25lc2VsZjsKK+aSleavgCA8IHRlYXJcLXVwXC1cKGFcLWNvbnRyYWN0XCxcLWV0Y1wpOwor5YK+6Yq3IDwgdG9cLWR1bXBcLVwoZ29vZHNcLFwtcHJvZHVjdHNcKTsKK+mflCA8IGFcLXdyYXBwZXJcLW9yXC1jYXNlXC1mb3JcLWJvdzsKK+eci+azlSA8IHdheVwtb2ZcLWxvb2tpbmdcLWF0XC1hXC10aGluZzsKK+mZlyA8IGFcLXN0ZWVwXC1oaWxsXC5cLXByZWNpcGl0b3VzOwor54ef5qWt6aGNIDwgc3VtXC1vclwtdm9sdW1lXC1vZlwtYnVzaW5lc3M7Civpj74gPCB0aGVcLXRyaWdnZXJcLW9mXC1hXC1jcm9zc2JvdzsKK+mXnOazqCA8IGZvbGxvd1wtXChhblwtaXNzdWVcKVwtY2xvc2VseTsKK+mEoCA8IGNvdW50eVwtaW5cLXNoYW54aVwtcHJvdmluY2U7CivphI4gPCBhXC1wbGFjZVwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+WJneWVhCA8IHRhcFwtXChvblwtYVwtZG9vclwtb3JcLXdpbmRvd1wpOwor6L6o5p6QIDwgZGlmZmVyZW50aWF0ZVwtYW5kXC1hbmFseXNlOwor5LiN6L6t6L6b6IumIDwgbWFrZVwtbm90aGluZ1wtb2ZcLWhhcmRzaGlwczsKK+eoi+W8j+eQhuWToSA8IHByb2dyYW1cLW1hbmFnZXJcLVwod2luZG93c1wpOwor6Ke3IDwgdG9cLXByb2Nlc3NcLW9yXC1jYXJ2ZVwtaG9ybnM7CivmsJHkuLvpu6jkurogPCBhXC1kZW1vY3JhdGljXC1wYXJ0eVwtbWVtYmVyOwor6J2wIDwgdmlwZXJhXC1ydXNzZWxpaVwtc2lhbWVuc2lzOwor5Y2B5YSE5L2N5YWD5Lul5aSq57ay57Wh6IGv55ufIDwgZ2lnYWJpdFwtZXRoZXJuZXRcLWFsbGlhbmNlOwor6JG2IDwgZHJhYmFcLW5lbWVyb3NhXC1iZWJlXC1jYXJwYTsKK+iKlCA8IGFcLWdlbmVyYWxcLXRlcm1cLWZvclwtcGxhbnRzOwor6IalIDwgZWdnc1wtb2ZcLWJpcmRzXC1vclwtcmVwdGlsZXM7CivkuInljYHlubTkvoYgPCBmb3JcLXRoZVwtcGFzdFwtdGhpcnR5XC15ZWFyczsKK+aKgOihk+eZvOWxlSA8IHRlY2hub2xvZ2ljYWxcLWRldmVsb3BtZW50Owor5ZyL55SiIDwgbWFkZVwtaW5cLW9uZScnc1wtb3duXC1jb3VudHJ5Owor6auY562J5a245qChIDwgY29sbGVnZXNcLWFuZFwtdW5pdmVyc2l0aWVzOwor55m95pePIDwgdGhlXC1iYWlcLVwocGFpXClcLW5hdGlvbmFsaXR5Owor57qRIDwgdG9cLXNvZnRlblwtaGVtcFwtYnlcLWJvaWxpbmc7Civljp/lm6DlvojnsKHllq4gPCB0aGVcLXJlYXNvblwtaXNcLXZlcnlcLXNpbXBsZTsKK+exqSA8IGJhbWJvb1wtY29udGFpbmVyXC1mb3JcLWZvb2Q7CivnsZ0gPCBhXC10dWJlXC10b1wtaG9sZFwtY2hvcHN0aWNrczsKK+W6t+a2heeLhOagvCA8IGNvbm5lY3RpY3V0XC1cKHN0YXRlXC1pblwtdXNcKTsKK+esjiA8IGJhbWJvb1wtd2l0aFwtYmxhY2tcLXBhdGNoZXM7Civllq7pgKPmjqXnq5kgPCBzaW5nbGVcLWF0dGFjaG1lbnRcLXN0YXRpb247CivnppggPCBpbXBlcmlhbFwtYW5jZXN0b3JcLXdvcnNoaXA7Civnn67lgIvlhZIgPCBhXC1wZXJzb25cLW9mXC1zaG9ydFwtc3RhdHVyZTsKK+eXheeZkiA8IHJlY292ZXJcLVwoZnJvbVwtYW5cLWlsbG5lc3NcKTsKK+ekhCA8IHBsYWNlXC1pblwtc2ljaHVhblwtcHJvdmluY2U7Civlr6zpmZAgPCBleHRlbmRcLVwoYVwtZGVhZGxpbmVcLFwtZXRjXC5cKTsKK+eSqiA8IHBlYXJsXC1wZW5kYW50c1wtb25cLWNvcm9uZXQ7Civnkb0gPCB0aW5rbGluZ1wtb2ZcLWphZGVcLXBlbmRhbnRzOwor54yyIDwgc21va2VcLW9yXC1mbGFtZXNcLWZyb21cLWZpcmU7CivnrKblkIjmqJnmupYgPCB0b1wtY29tcGx5XC13aXRoXC1hXC1zdGFuZGFyZDsKK+ekuuWogemBiuihjCA8IGFcLVwocHJvdGVzdFwpXC1kZW1vbnN0cmF0aW9uOwor5rOcIDwgYVwtcml2ZXJcLWluXC1oZWJlaVwtcHJvdmluY2U7Civms5IgPCBhXC1yaXZlclwtaW5cLWh1YmVpXC1wcm92aW5jZTsKK+axrSA8IGNvbmZsdWVuY2VcLW9mXC10d29cLXN0cmVhbXM7Civmq70gPCBzaGFwZVwtd29vZFwtYnlcLXVzZVwtb2ZcLWhlYXQ7CivmmawgPCBmaXJzdFwtYmlydGhkYXlcLW9mXC1hXC1jaGlsZDsKK+ihqOaFiyA8IG1ha2VcLWtub3duXC1vbmUnJ3NcLXBvc2l0aW9uOwor5a6j6KqTIDwgc3dlYXJcLWFuXC1vYXRoXC1cKG9mXC1vZmZpY2VcKTsKK+Wkp+aVteeVtuWJjSA8IGNvbmZyb250XC1hXC1wb3dlcmZ1bFwtZW5lbXk7CivmgoogPCB3aXNlXC5cLXRvXC1rbm93XC1pbnR1aXRpdmVseTsKK+aLnOacmyA8IGNhbGxcLXRvXC1wYXlcLW9uZScnc1wtcmVzcGVjdDsKK+W9jSA8IHRvXC1kcmF3XC1hXC1ib3dcLXRvXC10aGVcLWZ1bGw7CivmoLjlpKflnIsgPCBhXC1udWNsZWFyXC1wb3dlclwtXChjb3VudHJ5XCk7CivluoUgPCBhblwtaW50ZXJyb2dhdGl2ZVwtcGFydGljbGU7CivnoJToo73pgY7nqIsgPCBtYW51ZmFjdHVyaW5nXC1lbnZpcm9ubWVudDsKK+evh+W5hSA8IFwodGFrZVwtdXBcLW9yXC1kZXZvdGVcKVwtc3BhY2U7Civlj43llIfnm7jorY8gPCBhbnN3ZXJcLWJhY2tcLXNhcmNhc3RpY2FsbHk7CivmoLjovZ/ngrjmqZ8gPCBudWNsZWFyXC1ib21iZXJcLVwoYWlyY3JhZnRcKTsKK+W4jOiHmOiqniA8IFwobW9kZXJuXClcLWdyZWVrXC1cKGxhbmd1YWdlXCk7Civpppbnm7ggPCBcKGphcGFuZXNlXClcLXByaW1lXC1taW5pc3RlcjsKK+aZgumWk+WFpyA8IHdpdGhpblwtXChhXC1wZXJpb2RcLW9mXC10aW1lXCk7CivntrLntaHnrqHnkIbns7vntbEgPCBuZXR3b3JrXC1tYW5hZ2VtZW50XC1zeXN0ZW07CivmiorlvI8gPCBwZXJzb25cLXNraWxsZWRcLWluXC1hXC10cmFkZTsKK+S1tSA8IHllbGxvd2lzaFwtYmxhY2tcLWFuZFwtd2hpdGU7CivktasgPCBsaWdodFwtcmVkXC15ZWxsb3dpc2hcLWJsYWNrOwor5LSbIDwgdG9cLW1ha2VcLWRlY29jdGlvblwtb2ZcLXNhbHQ7Civks7cgPCBhXC1zZWNvbmRcLW5hbWVcLWZvclwtY2hpY2tlbjsKK+SzhiA8IGFcLWtpbmRcLW9mXC1zcGVjaWVzXC1vZlwtbXluYTsKK+SwgiA8IGFcLWNvaWZmdXJlXC13aXRoXC1hXC10b3Brbm90Owor5K6VIDwgaG9yc2VcLXdpdGhcLXdoaXRlXC1mb3JlaGVhZDsKK+StqCA8IHdpbmVcLXBvdXJlZFwtaW5cLWFcLWxpYmF0aW9uOwor5KuAIDwgdGhlXC1sb3dlclwtZW5kXC1vZlwtdGhlXC1qYXdzOwor5KmdIDwgdG9cLXRhblwtYW5kXC1zb2Z0ZW5cLWxlYXRoZXI7CivkuI3lvpfkurrlv4MgPCBub3RcLWVuam95XC1wb3B1bGFyXC1zdXBwb3J0Owor5reY57GuIDwgYmFza2V0XC1cKGZvclwtd2FzaGluZ1wtcmljZVwpOwor5KSCIDwgYVwtc2Vjb25kXC1uYW1lXC1mb3JcLXZpbmVnYXI7CivnlKXlpbMgPCBuaWVjZVwtXChzaXN0ZXInJ3NcLWRhdWdodGVyXCk7Civko7QgPCB0b1wtbG9zZVwtdGVtcGVyXC13aGVuXC1kcnVuazsKK+SjhiA8IG5hbWVcLW9mXC1hXC1jb3VudHlcLWluXC1nYW9taTsKK+SisiA8IHRvXC1nb1wtYWxsXC10aGVcLXdheVwtZm9yd2FyZDsKK+SiriA8IHJhcGlkXC1tYXJjaGluZ1wtb3JcLXJ1bm5pbmc7CivkoqEgPCB0b1wtc3RhbXBcLXRoZVwtZm9vdFwtZm9yd2FyZDsKK+ShuSA8IHRoZVwtbG93XC1yZWFyXC1vZlwtYVwtY2hhcmlvdDsKK+ShryA8IHNvdW5kXC1vZlwtbW92aW5nXC1jYXJyaWFnZXM7CivkoaEgPCB0b1wtZ2V0XC11cFwtaW50b1wtYVwtY2FycmlhZ2U7Civnm7ToqIDkuI3oq7EgPCBzcGVha1wtZnJhbmtseVwtYW5kXC1ibHVudGx5Owor5pmv5bGx5YWs5ZySIDwgbmFtZVwtb2ZcLWFcLXBhcmtcLWluXC1iZWlqaW5nOwor5Ji4IDwgdGhlXC1sb3dlclwtZnJvbnRcLW9mXC1hXC1yb2JlOwor5JiSIDwgYm95JydzXC1yZXByb2R1Y3RpdmVcLW9yZ2FuczsKK+SVhCA8IG1lYXRcLWluXC10aGVcLWZvcm1cLW9mXC1wYXN0ZTsKK+STiyA8IGVsbVwtc2VlZHNcLVwtXC1cLXVzZWRcLWFzXC1mb29kOwor5JGiIDwgYVwta25pZmVcLXNoYXBlZFwtc21hbGxcLWJvYXQ7CivkkYggPCBtZWF0XC10b1wtb2ZmZXJcLWZvclwtd29yc2hpcDsKK+a8ouS6uiA8IGhhblwtY2hpbmVzZVwtcGVyc29uXHxwZW9wbGU7Civkja8gPCBnYW90XC13aXRoXC1kaWZmZXJlbnRcLWhvcm5zOwor5I2iIDwgbmV0dGVkXC12ZWluZWRcLXdpbmRvd1wtc2lsbDsKK+SLnyA8IHRoZVwtd2VpZ2h0XC1vblwtYVwtc3RlZWx5YXJkOwor5Iq2IDwgYVwtcm9wZVwtZm9yXC1sZWFkaW5nXC1jYXR0bGU7CivkuJbnlYzooZvnlJ/ntYTnuZQgPCB3b3JsZFwtaGVhbHRoXC1vcmdhbml6YXRpb247CivkvLrmqZ8gPCB0b1wtd2F0Y2hcLWZvclwtb25lJydzXC1jaGFuY2U7CivkiZcgPCBhXC1yZWNlcHRhY2xlXC1vclwtY29udGFpbmVyOwor5IS4IDwgZ3JhaW5zXC1wcm9kdWNpbmdcLW5vXC1mcnVpdDsKK+SEkiA8IHJpcGVuaW5nXC1vZlwtcGFkZHlcLW9yXC1yaWNlOwor5IOBIDwgdW5ldmVuXC1vclwtcnVnZ2VkXC10ZXJyYWluczsKK+SBlCA8IGJpZ1wtZXllc1wtcHJvdHViZXJhbnRcLWV5ZXM7Civjv7AgPCBkdXJhYmxlXC1hbmRcLXNvbGlkXC1sZWF0aGVyOwor6aC46YOoIDwgdGhlXC1uZWNrXC1hcmVhXC1vZlwtdGhlXC1ib2R5Owor47+CIDwgb2JzdHJhY3Rpb25cLW9mXC10aGVcLWJvd2VsczsKK+O+tSA8IGFcLWRhcmtcLWNvbG9yZWRcLWJpcnRoXC1tYXJrOwor476cIDwgd2Vha1wtYnJlYXRoXC1vZlwtYVwtc2lja1wtbWFuOwor472+IDwgYVwta2luZFwtb2ZcLXdvbWFuJydzXC1kaXNlYXNlOwor6YCa6KiK6Ieq5YuV5YyWIDwgY29tbXVuaWNhdGlvbnNcLWF1dG9tYXRpb247CivjuLIgPCBhXC1raW5kXC1vZlwtbW91bnRhaW5cLWNhdHRsZTsKK+O3ryA8IHNtb2tlXC1hbmRcLWR1c3RcLWV2ZXJ5d2hlcmU7CivjtrogPCB0aGVcLWxpZ2h0XC1vclwtZ2xvd1wtb2ZcLWZpcmU7Civjtb0gPCB0aGVcLXN0cmVuZ3RoXC1vZlwtYVwtY3VycmVudDsKK+OxpSA8IHRoZVwtZXZpbFwtc3Bpcml0c1wtY29tZVwtb3V0Owor47CmIDwgdG9cLWJyZWF0aFwtd2l0aFwtbW91dGhcLW9wZW47CivjsJQgPCBhXC1raW5kXC1vZlwtZWRpYmxlXC1tdXNocm9vbTsKK+OwjiA8IGFcLXdvb2RlblwtcGVzdGxlXC1vclwtcmFtbWVyOwor462bIDwgYVwta2luZFwtb2ZcLWNsaW1iaW5nXC1wbGFudHM7CivjqaAgPCBhXC1maWVyY2VcLW9yXC1ibG9vZHlcLWJhdHRsZTsKK+OmmyA8IHRvXC13YWxrXC1pblwtYVwtY29tcG9zZWRcLXdheTsKK+mdouiHqOWbsOmboyA8IHRvXC1iZVwtZmFjZWRcLXdpdGhcLXByb2JsZW1zOwor6IOM5b2xIDwgYVwtdmlld1wtb2ZcLXNvbWVib2R5JydzXC1iYWNrOwor46CdIDwgbG9mdHlcLWFuZFwtc3RlZXBcLW1vdW50YWluczsKK+OgkCA8IGhpZ2hcLWFuZFwtcG9pbnRlZFwtbW91bnRhaW47CivjnpogPCB0b1wtcGlsZVwtdXBcLWxheWVyXC1ieVwtbGF5ZXI7CivjnK8gPCBhXC13b3JkXC10b1wtZGVzaWduYXRlXC13b21hbjsKK+OcriA8IHRvXC1nb1wtYmV5b25kXC1ub3JtYWxcLWxpbWl0Owor5LiN5YuZ5q2j5qWtIDwgbm90XC1lbmdhZ2VcLWluXC1ob25lc3RcLXdvcms7CivjmpMgPCB0aWVcLWJlYW1zXC1vZlwtYVwtc21hbGxcLWJvYXQ7Civni6Hos7QgPCB0b1wtZGVueVwtXCh0aHJvdWdoXC1zb3BoaXNtXCk7CivjmIwgPCB0b1wtbGF1Z2hcLXdpdGhvdXRcLXN0b3BwaW5nOwor45emIDwgYVwtbG91ZFwtYW5kXC1jb25mdXNlZFwtbm9pc2U7Civjl5ogPCB2ZXhpbmdseVwtdmVyYm9zZVwtb3JcLXdvcmR5Owor45eVIDwgdGhlXC1jcm93aW5nXC1vZlwtYVwtcGhlYXNhbnQ7CivjloQgPCBzb3VuZFwtb2ZcLWNhbGxpbmdcLWNoaWNrZW5zOwor45WaIDwgY2xhd3NcLW9mXC1iaXJkc1wtb3JcLWFuaW1hbHM7CivmhJvnkIbkuI3nkIYgPCBsb29rXC1jb2xkXC1hbmRcLWluZGlmZmVyZW50Owor45CzIDwgaGlnaFwtYW5kXC1sZXZlbFwtb25cLXRoZVwtdG9wOwor6K6K6LOjIDwgc2VsbFwtb2ZmXC1cKG9uZScnc1wtcHJvcGVydHlcKTsKK+S4i+W3peWkqyA8IHRvXC1wdXRcLWluXC10aW1lXC1hbmRcLWVuZXJneTsKK+axuuizvSA8IGZpbmFsc1wtXChvZlwtYVwtY29tcGV0aXRpb25cKTsKK+adv+abuCA8IHdyaXRpbmdcLW9uXC10aGVcLWJsYWNrYm9hcmQ7Civnj4Dmlq8gPCBwZXJ0aFwtXChjaXR5XC1pblwtYXVzdHJhbGlhXCk7CivmlLnlloTpgJroqIogPCB0b1wtaW1wcm92ZVwtY29tbXVuaWNhdGlvbnM7CivnuL3lj4PorIDplbcgPCBcKG1pbGl0YXJ5XClcLWNoaWVmXC1vZlwtc3RhZmY7CivmhJvmhpAgPCBzaG93XC10ZW5kZXJcLWFmZmVjdGlvblwtZm9yOwor5pq05ryyIDwgcmlzZVwtc3VkZGVubHlcLWFuZFwtc2hhcnBseTsKK+mMhOWFsSA8IHRvXC10YWtlXC1kb3duXC1hXC1jb25mZXNzaW9uOwor5pys5a62IDwgYVwtbWVtYmVyXC1vZlwtdGhlXC1zYW1lXC1jbGFuOwor6Z2i6IeoIDwgYmVcLWZhY2VkXC13aXRoXC1cKGFcLXByb2JsZW1cKTsKK+iDjOS/oeajhOe+qSA8IGJyZWFrXC1mYWl0aFwtd2l0aFwtc29tZWJvZHk7CivlgLzlvpfms6jmhI/nmoTmmK8gPCBpdCcnc1wtd29ydGhcLW5vdGluZ1wtdGhhdFwuXC5cLjsKK+i3qOWci+WFrOWPuCA8IHRyYW5zbmF0aW9uYWxcLWNvcnBvcmF0aW9uOwor5pel5pys5Lq6IDwgamFwYW5lc2VcLXBlcnNvblwtb3JcLXBlb3BsZTsKK+WFseWSjOm7qOS6uiA8IGFcLXJlcHVibGljYW5cLXBhcnR5XC1tZW1iZXI7CivmsaDmua8gPCBsYXJnZVwtcG9vbFwtaW5cLWFcLWJhdGhob3VzZTsKK+eEoemZkOacnyA8IHVubGltaXRlZFwtXCh0aW1lXClcLWR1cmF0aW9uOwor542O5Yu1IDwgcmV3YXJkXC1cKGFzXC1lbmNvdXJhZ2VtZW50XCk7CivpoIblt64gPCBcKHRyYWRlXC1vclwtYnVkZ2V0XClcLXN1cnBsdXM7CivnkrDnkIPlrprkvY3ns7vntbEgPCBnbG9iYWxcLXBvc2l0aW9uaW5nXC1zeXN0ZW07CivliJ3pgbggPCBcKHVzXClcLXByaW1hcmllc1wtXChlbGVjdGlvblwpOwor5biV6Jit5Y2hIDwgcGFsYW5rYVwtXChhXC1wZXJzb25hbFwtbmFtZVwpOwor5aCx6Yq3IDwgc3VibWl0XC1hblwtZXhwZW5zZVwtYWNjb3VudDsKK+icgCA8IG5hbWVcLW9mXC1hblwtYW5jaWVudFwtc3RhdGU7CivmtJsgPCByaXZlclwtaW5cLXNoYW54aVwtcHJvdmluY2U7Civlj5QgPCBmYXRoZXInJ3NcLXlvdW5nZXJcLWJyb3RoZXI7CivntbkgPCBraW5kXC1vZlwtdGhpY2tcLXN0aWZmXC1zaWxrOwor572pIDwgYmFza2V0XC1mb3JcLWNhdGNoaW5nXC1maXNoOwor5aS3IDwgYW5jaWVudFwtYmFyYmFyaWFuXC10cmliZXM7CivnoLAgPCBzb3VuZFwtb2ZcLWNyYXNoaW5nXC1zdG9uZXM7Civlk44gPCBpbnRlcmplY3Rpb25cLW9mXC1zdXJwcmlzZTsKK+aclCA8IGZpcnN0XC1kYXlcLW9mXC1sdW5hclwtbW9udGg7Civmj6MgPCBwdXRcLXRoaW5nc1wtdW5kZXJcLWNsb3RoZXM7CivltYsgPCBvbWVpXC1tb3VudGFpblwtaW5cLXNpY2h1YW47CivnvIkgPCB0b1wtc2V3XC1pblwtY2xvc2VcLXN0aXRjaGVzOwor5Zm2IDwgdXNlZFwtaW5cLXRyYW5zbGl0ZXJhdGlvbnM7CivmjrAgPCB0b1wtYnJlYWtcLXdpdGhcLWJvdGhcLWhhbmRzOwor6ZyGIDwgYVwtc3VkZGVuXC1wZWFsXC1vZlwtdGh1bmRlcjsKK+a8syA8IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLWhlbmFuOwor5bezIDwgc2l4dGhcLW9mXC10d2VsdmVcLWJyYW5jaGVzOwor5ZedIDwgY2Fja2xpbmdcLW9mXC1mb3dsc1wtdG9cLWdhZzsKK+WnmCA8IGlsbGljaXRcLXNleHVhbFwtcmVsYXRpb25zOwor6ZyPIDwgZmFsbGluZ1wtb2ZcLXNub3dcLWFuZFwtcmFpbjsKK+mDuCA8IGNvdW50eVwtaW5cLWhlYmVpXC1wcm92aW5jZTsKK+WRpiA8IHRoZVwtYmxlYXRpbmdcLW9mXC10aGVcLWRlZXI7Civmjq4gPCB0b1wtYmVhclwtb25cLXRoZVwtc2hvdWxkZXJzOwor6I6GIDwgYVwta2luZFwtb2ZcLWxlZ2VuZGFyeVwtdHJlZTsKK+mYoSA8IGZvb3RwYXRoc1wtYmV0d2VlblwtZmllbGRzOwor6biqIDwgc3BlY2llc1wtb2ZcLXRhaXdhblwtcGlnZW9uOwor5rCQIDwgbmFtZVwtb2ZcLWFuXC1hbmNpZW50XC10cmliZTsKK+WRpCA8IHB1cmluZVwtaW5cLWNoZW1cLlwtY29tcG91bmQ7CivlrJcgPCBzdWNjZXNzaW9uXC10b1wtdGhlXC10aHJvbmU7Civop48gPCBtZWV0XC1vclwtc2VlXC11bmV4cGVjdGVkbHk7Civmv64gPCBjb3VudHlcLWluXC1oZW5hblwtcHJvdmluY2U7Civpg7QgPCBjb3VudHlcLWluXC1odW5hblwtcHJvdmluY2U7Civovb4gPCBsb3dcLXJlYXJcLXBvcnRpb25cLW9mXC1jYXJ0Owor56ieIDwgZ3JhaW5cLXJlYWR5XC1mb3JcLWdyaW5kaW5nOwor6YOnIDwgY291bnR5XC1pblwtaHViZWlcLXByb3ZpbmNlOwor6Lm8IDwgd2ViYmVkXC1mZWV0XC1vZlwtd2F0ZXJmb3dsOwor55SRIDwgYm9pbGVyXC1mb3JcLXN0ZWFtaW5nXC1yaWNlOwor5aaXIDwgd2lmZVwtb2ZcLW1vdGhlcicnc1wtYnJvdGhlcjsKK+a1oCA8IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLWh1YmVpOwor6bOUIDwgc3dpbW1pbmdcLWJsYWRkZXJcLW9mXC1maXNoOwor56+MIDwgYW5jaWVudFwtbXVzaWNcLWluc3RydW1lbnQ7Civnp5UgPCBlbXB0eVwtZ3JhaW5cLW9yXC1yaWNlXC1odXNrOwor55CaIDwgb3JuYW1lbnRhbFwtZ2Vtc1wtZm9yXC1iZWx0Owor6bK1IDwgY3J5cHRvYnJhbmNodXNcLWphcG9uaWN1czsKK+iJqCA8IGxvbmdcLWFuZFwtbmFycm93XC13YXJcLWJvYXQ7CivmtpEgPCByaXZlclwtaW5cLXNoYW5zaVwtcHJvdmluY2U7Civpm6kgPCBvZmZlclwtc2FjcmlmaWNlXC1mb3JcLXJhaW47Civkvb4gPCBhXC1yb3dcLW9yXC1maWxlXC1vZlwtZGFuY2VyczsKK+e8giA8IHRoZVwtd29vZlwtb2ZcLWFcLXdvdmVuXC1pdGVtOwor6Im0IDwgdGhlXC1jb3VudGVuYW5jZVwtY2hhbmdpbmc7Civmu48gPCBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1oZWJlaTsKK+S6uuawkeW5oyA8IGNoaW5lc2VcLXVuaXRcLW9mXC1jdXJyZW5jeTsKK+mmrOWPr+emj+mfsyA8IGdvc3BlbFwtYWNjb3JkaW5nXC10b1wtbWFyazsKK+a1geawk+e9qiA8IHRoZVwtY3JpbWVcLW9mXC1ob29saWdhbmlzbTsKK+WfjumXnCA8IGFyZWFcLW91dHNpZGVcLWFcLWNpdHlcLWdhdGU7CivpjITpn7PmqZ8gPCBcKHRhcGVcKVwtcmVjb3JkaW5nXC1tYWNoaW5lOwor6YGL566XIDwgXChtYXRoZW1hdGljYWxcKVwtb3BlcmF0aW9uOwor5bee6ZW3IDwgZ292ZXJub3JcLVwob2ZcLWFcLXVzXC1zdGF0ZVwpOwor5q+P5bm05LiA5bqmIDwgb25jZVwtYVwteWVhclwtXChldmVyeVwteWVhclwpOwor5Z+f5ZCN6Ki75YaKIDwgZG9tYWluXC1uYW1lXC1yZWdpc3RyYXRpb247Civku6PkuYvku6UgPCBcKGhhc1wtYmVlblwpXC1yZXBsYWNlZFwtd2l0aDsKK+mDqOWxrCA8IGFmZmlsaWF0ZWRcLXRvXC1hXC1taW5pc3RyeTsKK+W8leaTjiA8IGVuZ2luZVwtXCh0cmFuc2xpdGVyYXRpb25cKTsKK+WFteiytOelnumAnyA8IHNwZWVkXC1pc1wtcHJlY2lvdXNcLWluXC13YXI7CivorormiLLms5UgPCBwZXJmb3JtXC1jb25qdXJpbmdcLXRyaWNrczsKK+WkmumCiuWQiOS9nCA8IG11bHRpbGF0ZXJhbFwtY29vcGVyYXRpb247CivnmbzooYzpoY0gPCBcKHBlcmlvZGljYWxcKVwtY2lyY3VsYXRpb247CivnmbvoqJggPCB0b1wtcmVnaXN0ZXJcLVwob25lJydzXC1uYW1lXCk7CivljYHkuInml6UgPCB0aGlydGlldGhcLWRheVwtb2ZcLWFcLW1vbnRoOwor5bmA6aaW5a6a55WM56ymIDwgc3RhcnRcLW9mXC1mcmFtZVwtZGVsaW1pdGVyOwor5oqV5pS+5biC5aC0IDwgdG9cLXB1dFwtc3RoXC1vblwtdGhlXC1tYXJrZXQ7CivmqZ/ntYQgPCBmbGlnaHRcLWNyZXdcLVwob25cLWFcLXBsYW5lXCk7Civpt54gPCB0aGVcLXR1cnF1b2lzZVwta2luZ2Zpc2hlcjsKK+S4i+WNiui6qyA8IGxvd2VyXC1oYWxmXC1vZlwtb25lJydzXC1ib2R5Owor6bWBIDwgbXljdGljb3JheFwtcHJhc2lub3NjZWxlczsKK+iNkueEoeS6uueFmSA8IGRlc29sYXRlXC1hbmRcLXVuaW5oYWJpdGVkOwor6a6wIDwgYVwtc21hbGxcLWtpbmRcLW9mXC1zdHVyZ2VvbjsKK+mBvOWvpyA8IGxpYW9uaW5nXC1wcm92aW5jZVwsXC1jaGluYTsKK+mroCA8IHNoYXZlXC1oZWFkXC1hc1wtcHVuaXNobWVudDsKK+molSA8IG5hbWVcLW9mXC1hXC1mYWJ1bG91c1wtaG9yc2U7CivnhafluLggPCBcKGJ1c2luZXNzXCxcLWV0Y1wpXC1hc1wtdXN1YWw7Civpn4IgPCBhXC1zYWRkbGVcLWZsYXBcLlwtdHJhcHBpbmdzOwor5Zug54m557ay5o+Q5L6b5ZWGIDwgaW50ZXJuZXRcLXNldmljZVwtcHJvdmlkZXI7CivntITnv7Dnpo/pn7MgPCBnb3NwZWxcLWFjY29yZGluZ1wtdG9cLWpvaG47CivpmbQgPCBhXC1wYXJhcGV0XC1vblwtYVwtY2l0eVwtd2FsbDsKK+mXpCA8IHdhbGxcLWFyb3VuZFwtbWFya2V0XC1wbGFjZTsKK+WNsOatkOiqnuiogCA8IGluZG9cLWV1cm9wZWFuXC1cKGxhbmd1YWdlXCk7CivmkqvmkbggPCBnZW50bHlcLWNhcmVzc1wtYW5kXC1zdHJva2U7CivliIfmlrcgPCBjdXRcLW9mZlwtXChhXC1zdXBwbHlcLFwtZXRjXC5cKTsKK+e2sue1oeaTjeS9nOezu+e1sSA8IG5ldHdvcmtcLW9wZXJhdGluZ1wtc3lzdGVtOwor57+S5Lul54K65bi4IDwgYmVcLWFjY3VzdG9tZWRcLW9yXC11c2VkXC10bzsKK+WFteiNkummrOS6giA8IHR1cm1vaWxcLWFuZFwtY2hhb3NcLW9mXC13YXI7Civlu7rliLYgPCBvcmdhbml6YXRpb25hbFwtc3RydWN0dXJlOwor5LiN5om/6KqN5Li7576pIDwgcG9saWN5XC1vZlwtbm9ucmVjb2duaXRpb247CivpgIDlvbkgPCByZXRpcmVcLWZyb21cLXRoZVwtbWlsaXRhcnk7CivpgZXlj40gPCB0b1wtdmlvbGF0ZVwtXChhXC1sYXdcLFwtZVwuZ1wuXCk7Civluavlu5ogPCBoZWxwXC1pblwtdGhlXC1tZXNzXC1raXRjaGVuOwor5LiN5YuV6IGy6ImyIDwgbWFpbnRhaW5cLW9uZScnc1wtY29tcG9zdXJlOwor5rWu6bue6YGL566XIDwgZmxvYXRpbmdcLXBvaW50XC1vcGVyYXRpb247CivotJEgPCBcPGFiYnJ2XD5cLWppYW5neGlcLXByb3ZpbmNlOwor6KOc56iFIDwgcGF5XC1hXC10YXhcLW9uZVwtaGFzXC1ldmFkZWQ7CivoqKEgPCB0b1wtY2hhbnRcLXRvXC1tb2FuXC10b1wtc2lnaDsKK+ilsuaTiiA8IFwobWFrZVwtYVwpXC1zdXJwcmlzZVwtYXR0YWNrOwor5YWn5pS/6YOo6ZW3IDwgbWluaXN0ZXJcLW9mXC10aGVcLWludGVyaW9yOwor55m95reoIDwgXChvZlwtc2tpblwpXC1mYWlyXC1hbmRcLWNsZWFyOwor6JuBIDwgcG9tcG9uaWFcLW1hY3VsYXRpb2NvbGxpczsKK+W3oeafpSA8IHRvXC1nb1wtYXJvdW5kXC1hbmRcLWluc3BlY3Q7CivomIAgPCBmYWxsaW5nXC1sZWF2ZXNcLWFuZFwtYmFya3M7Civol7ogPCBydXNoXC11c2VkXC1pblwtbWFraW5nXC1tYXRzOwor5YW15pu4IDwgYVwtYm9va1wtb25cLXRoZVwtYXJ0XC1vZlwtd2FyOwor6I+0IDwgc21hbGxcLWJ1ZGRoaXN0XC1tb25hc3Rlcnk7CivpvLvph53nmYLms5UgPCBub3NlXC1hY3VwdW5jdHVyZVwtdGhlcmFweTsKK+iOlCA8IGZyaXRpbGxhcmlhXC12ZXJ0aWNpbGxhdGE7CivojLwgPCBjaHJ5c2FudGhlbXVtXC1jb3JvbmFyaXVtOwor6ImlIDwgYW5cLW9hclwtb3JcLXBhZGRsZVwuXC10b1wtcm93Owor55Si6Yq3IDwgcHJvZHVjdGlvblwtYW5kXC1tYXJrZXRpbmc7CivohpkgPCBjYWxsb3VzXC1za2luXC1vblwtdGhlXC1mZWV0Owor6IWcIDwgcXVpY2tlbmluZ1wtb2ZcLXRoZVwtZm9ldHVzOwor6IKzIDwgdGhlXC1jb3JuZXJzXC1vZlwtdGhlXC1tb3V0aDsKK+mXjOWwviA8IGFwcGVuZGl4XC1cKGluXC1odW1hblwtYm9keVwpOwor57+bIDwgbG9va1wtb2ZcLXJ1bXBsZWRcLWZlYXRoZXJzOwor572dIDwgbmV0XC1mb3JcLWNhdGNoaW5nXC1yYWJiaXRzOwor5bmF5ZOhIDwgYVwtY291bnRyeScnc1wtc3VyZmFjZVwtYXJlYTsKK+iZm+aTrOeSsOWigyA8IHRoZW9yaGV0aWNhbFwtZW52aXJvbm1lbnQ7CivmkqXku5ggPCBhcHByb3ByaWF0ZVwtc3VtXC1vZlwtbW9uZXk7Civnt4wgPCB0YXNzZWxzXC1oYW5naW5nXC1mcm9tXC1oYXQ7Civlr4bliIfms6jmhI8gPCBjbG9zZVwtYXR0ZW50aW9uXC1cKHRvXC1zdGhcKTsKK+Wci+eHnyA8IHN0YXRlXC1ydW5cLVwoY29tcGFueVwsXC1ldGNcKTsKK+WcluWDj+eUqOaItuS7i+mdoiA8IGdyYXBoaWNhbFwtdXNlclwtaW50ZXJmYWNlOwor5624IDwgbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtaG9uYW47CivpnaLlmq7lsI3osaHoqp7oqIAgPCBvYmplY3RcLW9yaWVudGVkXC1sYW5ndWFnZTsKK+aQjeWksSA8IGFcLVwoZmluYW5jaWFsXCxcLWV0Y1wuXClcLWxvc3M7CivovqblhawgPCBoYW5kbGVcLW9mZmljaWFsXC1idXNpbmVzczsKK+aliueZvue/sOWkp+WtuCA8IGJyaWdoYW1cLXlvdW5nXC11bml2ZXJzaXR5Owor55KgIDwgYVwtcGllY2VcLW9mXC1wcmVjaW91c1wtamFkZTsKK+eOtiA8IG5hbWVcLW9mXC1vbmVcLWtpbmRcLW9mXC1qYWRlOwor542eIDwgbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1kb2c7CivkuI3mi5jkuIDmoLwgPCBub3RcLXN0aWNrXC10b1wtb25lXC1wYXR0ZXJuOwor5L2Z6ZyHIDwgXChlYXJ0aHF1YWtlXClcLWFmdGVyc2hvY2tzOwor55Wa566VIDwgYVwtYmFtYm9vXC1vclwtd2lja2VyXC1zY29vcDsKK+eBqCA8IHRoZVwtcml2ZXJcLWdhblwtaW5cLWppYW5neGk7Civmv7IgPCBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1odW5hbjsKK+WujOWFqOaHguW+lyA8IHRvXC11bmRlcnN0YW5kXC1jb21wbGV0ZWx5Owor56qB6aGvIDwgbWFrZVwtc29tZXRoaW5nXC1zdGFuZFwtb3V0Owor5LiN5bmz5YmH6bO0IDwgd2hlcmVcLXRoZXJlXC1pc1wtaW5qdXN0aWNlOwor5rSnIDwgbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtaG9uYW47CivmoLjkuI3mk7TmlaMgPCBudWNsZWFyXC1ub25wcm9saWZlcmF0aW9uOwor5o+h5YqbIDwgXChzdHJlbmd0aFwtb2ZcLW9uZScnc1wpXC1ncmlwOwor5qinIDwgemFudGhveHlsdW1cLWFpbGFudGhvaWRlczsKK+ampCA8IHBlcmNoXC1mb3JcLWZvd2xzXC1yb29zdFwtb247CivlhafmlL/pg6ggPCBtaW5pc3RyeVwtb2ZcLXRoZVwtaW50ZXJpb3I7CivlhbHlkIzplpjpgZPku4vpnaIgPCBjb21tb25cLWdhdGV3YXlcLWludGVyZmFjZTsKK+aTuuiEq+WNseapnyA8IHRvXC1icmVha1wtb3V0XC1vZlwtYVwtY3Jpc2lzOwor5qCCIDwgYVwta2luZFwtb2ZcLWV2ZXJncmVlblwtdHJlZTsKK+WvjOW4g+iztOeJuSA8IGZ1bGxicmlnaHRcLVwoc2Nob2xhcnNoaXBcKTsKK+aXoSA8IGNob2tlXC1vblwtc29tZXRoaW5nXC1lYXRlbjsKK+mmrOijoSA8IG1hbGlcLVwobmFtZVwtb2ZcLWFcLWNvdW50cnlcKTsKK+aSiyA8IHRvXC1ydWJcLWJldHdlZW5cLXRoZVwtaGFuZHM7Civnl4XmhYsgPCBtb3JiaWRcLW9yXC1hYm5vcm1hbFwtc3RhdGU7CivmjqfliLYgPCB0b1wtXChoYXZlXClcLWNvbnRyb2xcLVwob3ZlclwpOwor5pKl5LqC5Y+N5q2jIDwgYnJpbmdcLW9yZGVyXC1vdXRcLW9mXC1jaGFvczsKK+aDjCA8IHRvXC1iZWFyXC1hXC1ncnVkZ2VcLWFnYWluc3Q7CivkvbPog70gPCBjYW5vblwtXChqYXBhbmVzZVwtY29tcGFueVwpOwor55eF5a62IDwgYVwtcGF0aWVudFwtYW5kXC1oaXNcLWZhbWlseTsKK+eWkeaDkSA8IFwoYVwtc2Vuc2VcLW9mXClcLXVuY2VydGFpbnR5Owor5bS2IDwgbmFtZVwtb2ZcLWFcLWxlZ2VuZGFyeVwtaGlsbDsKK+W0gSA8IGFcLXBsYWNlXC1pblwtdGFpd2FuXC10YWluYW47CivlsJ4gPCBmdWVsXC11c2VkXC1mb3JcLXNhY3JpZmljZXM7CivnhKHpu6jmtL4gPCBwb2xpdGljYWxseVwtdW5hZmZpbGlhdGVkOwor5omT54mMIDwgdG9cLXBsYXlcLW1haGpvbmdcLW9yXC1jYXJkczsKK+WlniA8IHRoZVwtc3RyaWRlXC1tYWRlXC1ieVwtYVwtbWFuOwor5aSXIDwgdG9cLXR1cm5cLW92ZXJcLXdoZW5cLWFzbGVlcDsKK+iuiumbu+ermSA8IFwodHJhbnNmb3JtZXJcKVwtc3Vic3RhdGlvbjsKK+WBmuWuoiA8IHRvXC1iZVwtYVwtZ3Vlc3RcLW9yXC12aXNpdG9yOwor5a6J56ys5pav5bGxIDwgdGhlXC1hbmRlc1wtbW91bnRhaW5cLXJhbmdlOwor5YecIDwgc2hpdmVyXC13aXRoXC1jb2xkXC1vclwtZmVhcjsKK+WDsCA8IGFuY2llbnRcLWFib3JpZ2luYWxcLXRyaWJlOwor55m+54WJ5oiQ6Yu8IDwgYmVcLXRlbXBlcmVkXC1pbnRvXC1hXC1zdGVlbDsKK+ihjOS9vyA8IGV4ZXJjaXNlXC1cKGFcLXJpZ2h0XCxcLWV0Y1wuXCk7CivnrYbmjLogPCBcKHN0YW5kaW5nXClcLXZlcnlcLXN0cmFpZ2h0Owor5YiG5L2I5byP57WQ5qeLIDwgZGlzdHJpYnV0ZWRcLWFyY2hpdGVjdHVyZTsKK+WuieelniA8IGNhbG1cLVwoc29vdGhlXClcLXRoZVwtbmVydmVzOwor6IGz6IKpIDwgdG9cLXNocnVnXC1vbmUnJ3NcLXNob3VsZGVyczsKK+S6gyA8IG5hbWVcLW9mXC1hXC1raW5kXC1vZlwtYW5pbWFsOwor5Lm6IDwgcGFpbnRpbmdcLXRvb2xcLXBsYWNlXC1uYW1lOwor5Lm2IDwga29yZWFuXC1wbGFjZVwtbmFtZVwtcGhvbGhhOwor5LWCIDwgdG9cLWdyaW5kXC13aGVhdFwtdG9cLXBvd2RlcjsKK+SysyA8IGJpcmRzXC1mbHlpbmdcLXVwXC1hbmRcLWRvd247CivlnIvli5nmrKHljb8gPCB1bmRlclwtc2VjcmV0YXJ5XC1vZlwtc3RhdGU7CivkspsgPCBhblwtYW5jaWVudFwtbmFtZVwtZm9yXC10dW5hOwor5LKEIDwgYVwta2luZFwtb2ZcLWZpaXNoXC1pblwtb2NlYW47CivksI0gPCBhXC1raW5kXC1vZlwtZGFya1wtcmVkXC1wYWludDsKK+SwhiA8IGJlYXV0aWZ1bFwtYW5kXC1oYWlyeVwtbWFuZTsKK+SvliA8IHRoZVwtbXVzY2xlc1wtb2ZcLXRoZVwtdGhpZ2g7CivljYrkv6HljYrnlpEgPCBoYWxmXC1iZWxpZXZlXCxcLWhhbGZcLWRvdWJ0Owor5KyzIDwgY2FrZXNcLW1hZGVcLW9mXC1yaWNlXC1mbG91cjsKK+SrryA8IHRvXC10YWtlXC1hXC1jYXN1YWxcLWxvb2tcLWF0Owor5rex56m6IDwgZGVlcFwtc3BhY2VcLVwob3V0ZXJcLXNwYWNlXCk7CivkqoAgPCBrbm93blwtdG9nZXRoZXJcLWFzXC1zYWRkbGU7CivkqJIgPCBzb3VuZFwtb2ZcLXRoZVwtd2F0ZXJcLWRyb3BzOwor5ZSQ57SNIDwgdGFubmVyXC1cKGVuZ2xpc2hcLXN1cm5hbWVcKTsKK+SmqCA8IGFcLWRvb3JcLWN1cnRhaW5cLW9yXC1zY3JlZW47CivkpK8gPCBjb250YWluZXJcLWZvclwtdGhpY2tcLXNvdXA7CivmnKjkuYPkvIogPCBtdW1teVwtXChwcmVzZXJ2ZWRcLWNvcnBzZVwpOwor5KGNIDwgdGhlXC1saW5jaFwtcGluXC1vZlwtYVwtc2hlZWw7Civkn5cgPCB0b1wtc3RhbmRcLWZvclwtYVwtbG9uZ1wtdGltZTsKK+SfgyA8IHRvXC1tb3ZlXC1vclwtbWFyY2hcLXN3aWZ0bHk7CivkmrYgPCB0b1wtc2NvbGRcLWluXC1hXC1sb3VkXC12b2ljZTsKK+SZnCA8IGxlZ2VuZGFyeVwtbW91bnRhaW5cLWRlaXR5Owor5JmIIDwgYVwtbG9vc2VcLWdhcm1lbnRcLW9yXC1jbG9hazsKK+SZhyA8IGNsb3RoZXNcLW9mXC1jb2Fyc2VcLWZhYnJpYzsKK+SXgiA8IGRpZW15Y3R5bHVzXC1weXJyaG9nYXN0ZXI7CivklKMgPCBhXC10cmliZVwtaW5cLWFuY2llbnRcLXRpbWVzOwor5JO0IDwgZWRpYmxlXC1mdW5ndXNcLWZyb21cLXRyZWVzOwor5JGOIDwgc291cFwtb2ZcLXBpZycnc1wtaW50ZXN0aW5lczsKK+SQuyA8IGJpZ1wtcGllY2VzXC1vZlwtZHJpZWRcLW1lYXQ7CivkkLkgPCBwZXJzZXJ2ZWRcLWFuZFwtZHJpZWRcLW1lYXQ7CivkkLAgPCB0b1wtb2ZmZXJcLWZvb2RcLWFzXC10cmlidXRlOwor5aSW5Lqk6YOoIDwgZm9yZWlnblwtYWZmYWlyc1wtbWluaXN0cnk7CivkkIIgPCBmYXRcLW9mXC1hbmltYWxzXC1vclwtcGxhbnRzOwor5I61IDwgdG9cLWxvb2tcLXN0cmFpZ2h0XC1mb3J3YXJkOwor5IqQIDwgZmx1ZmZ5XC1zdHVmZmVkXC1kdW1wbGluZ3M7Civkio0gPCB0aGlja1wtY29uZ2VlXC1vclwtcG9ycmlkZ2U7CivmjIHkuI3lkIzmlL/oposgPCBcKHBvbGl0aWNhbGx5XClcLWRpc3NlbnRpbmc7Civkh48gPCB0b1wtcGlsZVwtb25lXC11cG9uXC1hbm90aGVyOwor5IScIDwgaGFwcGluZXNzXC1hbmRcLXdlbGxcLWJlaW5nOwor5ISWIDwgdXNlZFwtaW5cLW5hbWVcLW9mXC1hXC1wZXJzb247Civkg6IgPCBuYW1lXC1vZlwtYVwtbW91bnRhaW5cLWxvZnR5Owor5IGHIDwgdG9cLWxvb2tcLWZvclwtYVwtc2hvcnRcLXRpbWU7CivkgKsgPCBuYXJyb3dcLWFuZFwtZGltXC1leWVcLXNpZ2h0Owor47+6IDwganV0dGluZ1wtb25cLXRoZVwtZXBpZGVybWlzOwor5ZGI6KuLIDwgdG9cLXN1Ym1pdFwtXCh0b1wtc3VwZXJpb3JzXCk7CivjvZIgPCB0aGVcLWNoaWxkcmVuXC1vZlwtYVwtc2lzdGVyOwor47y/IDwgdGhlXC1icmlja1wtd2FsbFwtb2ZcLWFcLXdlbGw7CivjvJsgPCBsb25nXC1uZWNrZWRcLXdpbmVcLXZlc3NlbHM7Civju6ogPCBhXC1raW5kXC1vZlwtamFkZVwtZmluZVwtamFkZTsKK+O2hSA8IGRyaWVkXC11cFwtbW91bnRhaW5cLWNyZWVrczsKK+S4iuiotCA8IGFwcGVhbFwtXChhXC1qdWRpY2lhbFwtY2FzZVwpOwor47WiIDwgYVwtbWFyc2hcLWluXC1hbmNpZW50XC10aW1lczsKK+O0sCA8IGFcLXJpdmVyXC1pblwtYW5jaWVudFwtdGltZXM7Civmh7flv7UgPCB0b1wtY2hlcmlzaFwtdGhlXC1tZW1vcnlcLW9mOwor47ONIDwgYVwtcGxhY2VcLWluXC1hbmNpZW50XC10aW1lczsKK+OziiA8IHRoZVwtZmxvd2luZ1wtb2ZcLXRoZVwtd2F0ZXI7CivjsoogPCB0b1wtdW5kZXJzdGFuZFwtdGhvcm91Z2hseTsKK+OwviA8IHNvbmdzXC1vZlwtdGhlXC1wZW9wbGVcLW9mXC3mpZo7CivjsL0gPCB0b1wtZXhlcnRcLW9uZXNlbGZcLXRvXC15ZWxsOwor46+rIDwgYVwtd2F0dGxlXC1vclwtYmFtYm9vXC1mZW5jZTsKK+OupiA8IGJyYW5jaGVzXC1ncm93aW5nXC11cHdhcmRzOwor54m56bueIDwgY2hhcmFjdGVyaXN0aWNcLVwoZmVhdHVyZVwpOwor5a2X5q+NIDwgbGV0dGVyXC1cKG9mXC10aGVcLWFscGhhYmV0XCk7CivjqpsgPCB0b1wtcG91bmRcLXJvY2tzXC10b1wtcGllY2VzOwor46qZIDwgdG9cLWdvXC10b1wtdGhlXC12ZXJ5XC1zb3VyY2U7Civjqa0gPCB0b1wtZGlzdHVyYlwtb3JcLXRvXC1hZ2l0YXRlOwor5ouU54Gr572Q5YWSIDwgZGV0YWNoYWJsZVwtc3RvdmVcLWNoaW1uZXk7CivlkIzorIAgPCB0b1wtY29uc3BpcmVcLXdpdGhcLXNvbWVvbmU7CivjoaogPCB0aGVcLXZhcm5pc2hcLW9uXC10aGVcLWZsb29yOwor46GnIDwgdG9cLXN0cmV0Y2hcLW9wZW5cLXBhaW50aW5nOwor46CHIDwgbmFtZVwtb2ZcLWFcLW1vdW50YWluXC1yaWRnZTsKK+ahg+WckiA8IHRhb3l1YW5cLVwoY2l0eVwtaW5cLXRhaXdhblwpOwor45y/IDwgbmFtZVwtb2ZcLWFcLWZpc2hcLWluXC1sZWdlbmQ7CivmsZ/pnaIgPCB0aGVcLXN1cmZhY2VcLW9mXC10aGVcLXJpdmVyOwor45epIDwgc291bmRcLW9mXC1lbmR1cmVcLWNvbGRuZXNzOwor45enIDwgdG9cLXNjb2xkXC13aXRoXC1sb3VkXC12b2ljZTsKK+WPpOW4jOiHmOiqniA8IGFuY2llbnRcLWdyZWVrXC1cKGxhbmd1YWdlXCk7Civjk6EgPCB0aGVcLW1pZGRsZVwtcGFydFwtb2ZcLWFcLWJvdzsKK+OQqCA8IGFcLWtpbmRcLW9mXC1maXNoXC1pblwtbGVnZW5kOwor6YGy5rWp55SwIDwgY2hpbmVzZVwtZGVmZW5zZVwtbWluaXN0ZXI7CivnopHpoY0gPCB0aGVcLXRvcFwtcGFydFwtb2ZcLWFcLXRhYmxldDsKK+S8tOWljyA8IHRvXC1hY2NvbXBhbnlcLVwobXVzaWNhbGx5XCk7CivljJfmuqvluLYgPCB0aGVcLW5vcnRoXC10ZW1wZXJhdGVcLXpvbmU7CivmiZPpm7voqbEgPCB0b1wtbWFrZVwtYVwtdGVsZXBob25lXC1jYWxsOwor5Y+z57+8IDwgXChwb2xpdGljYWxseVwpXC1yaWdodFwtd2luZzsKK+a1meaxnyA8IHpoZWppYW5nXC1wcm92aW5jZVwsXC1jaGluYTsKK+S6uuawkeino+aUvui7jSA8IHBlb3BsZScnc1wtbGliZXJhdGlvblwtYXJteTsKK+itmOimiyA8IGtub3dsZWRnZVwtYW5kXC1leHBlcmllbmNlOwor6LK35bizIDwgdG9cLXNob3dcLXJlc3BlY3RcLVwoZm9yXC1zYlwpOwor5pqX566tIDwgYXR0YWNrXC1ieVwtYVwtaGlkZGVuXC1lbmVteTsKK+a3seWcsyA8IHNoZW56aGVuXC1cKGNpdHlcLWluXC1jaGluYVwpOwor56iL5bqmIDwgZGVncmVlXC1cKGxldmVsXC1vclwtZXh0ZW50XCk7CivlpKfpl5wgPCBcKHJlYWNoXC1hXClcLWNyaXRpY2FsXC1wb2ludDsKK+W+nuWkluihqOS+hueciyA8IGxvb2tpbmdcLWZyb21cLXRoZVwtb3V0c2lkZTsKK+mgreeJiCA8IFwobmV3c3BhcGVyJydzXClcLWZyb250XC1wYWdlOwor5Y2D57Wy6JCs57i3IDwgbGlua2VkXC1pblwtY291bnRsZXNzXC13YXlzOwor5pil6IGvIDwgc3ByaW5nXC1mZXN0aXZlbFwtY291cGxldHM7CivlhaznnL7pm7vkv6HntrLot68gPCBwdWJsaWNcLXRlbGVwaG9uZVwtbmV0d29yazsKK+S6pOaPm+iZm+mbu+i3ryA8IHN3aXRjaGVkXC12aXJ0dWFsXC1jaXJjdWl0Owor5Lul5L6GIDwgc2luY2VcLVwoYVwtcHJldmlvdXNcLWV2ZW50XCk7Civok67oirEgPCBsb3R1c1wtXChjb21wdXRlclwtY29tcGFueVwpOwor5LiN5pelIDwgd2l0aGluXC10aGVcLW5leHRcLWZld1wtZGF5czsKK+irkuinoyA8IFwocmVhY2hcKVwtYW5cLXVuZGVyc3RhbmRpbmc7CivnoLTlnJ/lhbjnpq4gPCBncm91bmRcLWJyZWFraW5nXC1jZXJlbW9ueTsKK+aVmeWtuOapn+aniyA8IGVkdWNhdGlvbmFsXC1vcmdhbml6YXRpb247CivkuI3pgbrkvZnlipsgPCBzcGFyZVwtbm9cLXBhaW5zXC1vclwtZWZmb3J0Owor6KGo56S65pWs5oSPIDwgcmVzcGVjdGZ1bFwsXC1zaG93XC1yZXNwZWN0Owor6JOL56ugIDwgdG9cLWFmZml4XC1hXC1zZWFsXC1cKHRvXC1zdGhcKTsKK+atoueXm+azlSA8IG1ldGhvZFwtb2ZcLXJlbGlldmluZ1wtcGFpbjsKK+inuOmbuyA8IHRvXC1nZXRcLWFuXC1lbGVjdHJpY1wtc2hvY2s7CivkuLvli5UgPCBcKHRvXC10YWtlXC10aGVcKVwtaW5pdGlhdGl2ZTsKK+i3r+WKoOemj+mfsyA8IGdvc3BlbFwtYWNjb3JkaW5nXC10b1wtbHVrZTsKK+iotOiqqiA8IHRlbGxcLVwodG9cLWFub3RoZXJcLXBlcnNvblwpOwor57i957WxIDwgcHJlc2lkZW50XC1cKG9mXC1hXC1jb3VudHJ5XCk7CivloLHpoK0gPCBtYXN0aGVhZFwtXChvZlwtYVwtbmV3c3BhcGVyOwor5Y2X5rKZIDwgbmFuc2hhXC1cKHNwcmF0bHlcKVwtaXNsYW5kczsKK+mAmumBkyA8IFwoY29tbXVuaWNhdGlvbnNcKVwtY2hhbm5lbDsKK+aUv+e4viA8IFwocG9saXRpY2FsXClcLWFjaGlldmVtZW50czsKK+eepSA8IHRha2VcLWZsZWV0aW5nXC1nbGFuY2VcLWF0Owor5beeIDwgYWRtaW5pc3RyYXRpdmVcLWRpdmlzaW9uOwor5ZCnIDwgZW1waGF0aWNcLWZpbmFsXC1wYXJ0aWNsZTsKK+afkCA8IGNlcnRhaW5cLXRoaW5nXC1vclwtcGVyc29uOwor56WoIDwgc2xpcFwtb2ZcLXBhcGVyXC1vclwtYmFtYm9vOwor6IC2IDwgdXNlZFwtaW5cLXRyYW5zbGl0ZXJhdGlvbjsKK+WOmCA8IHRob3VzYW5kdGhcLXBhcnRcLW9mXC10YWVsOwor5b2tIDwgbmFtZVwtb2ZcLWFuY2llbnRcLWNvdW50cnk7CivogrQgPCBjb29rZWRcLW9yXC1wcmVwYXJlZFwtbWVhdDsKK+S/jiA8IGNob3BwaW5nXC1ib2FyZFwtb3JcLWJsb2NrOwor5reuIDwgcml2ZXJcLWluXC1hbmh1aVwtcHJvdmluY2U7Civlk6YgPCBvaFw/XC1yZWFsbHlcP1wtaXNcLXRoYXRcLXNvXD87CivplKQgPCBiYWxhbmNlXC13ZWlnaHRcLW9uXC1zY2FsZTsKK+S7niA8IGFuY2llbnRcLXVuaXRcLW9mXC1tZWFzdXJlOwor6IqtIDwgcGxhbnRhaW5cLW9yXC1iYW5hbmFcLXBhbG07Civno4ogPCBwaWxlXC1vZlwtcm9ja3NcLW9yXC1zdG9uZXM7CivlkbggPCBleHByZXNzaW9uXC1vZlwtcmVwcmltYW5kOwor5ou3IDwgdG9ydHVyZVwtYW5kXC1pbnRlcnJvZ2F0ZTsKK+aKvyA8IHB1Y2tlclwtdXBcLWxpcHNcLWluXC1zbWlsZTsKK+WNiSA8IGdlbmVyYWxcLXRlcm1cLWZvclwtcGxhbnRzOwor6au7IDwgaGFpclwtcm9sbGVkXC11cFwtaW5cLWFcLWJ1bjsKK+ijhiA8IGNyb3RjaFwtb3JcLXNlYXRcLW9mXC1wYW50czsKK+iYkSA8IHR5cGVcLW9mXC1lZGlibGVcLW11c2hyb29tOwor5ZK/IDwgZGVzY3JpcHRpdmVcLW9mXC1jcmVha2luZzsKK+evviA8IGJhbWJvb1wtc3BsaW50c1wtb3JcLXNsYXRzOwor5reHIDwgcml2ZXJcLWluXC1oZW5hblwtcHJvdmluY2U7Civok5EgPCByYWluXC1jb2F0XC1tYWRlXC1vZlwtc3RyYXc7CivmqqwgPCB0eXBlXC1vZlwtbG9jdXN0XC1vcmFjYWNpYTsKK+a3mSA8IGd1cmdsaW5nXC1zb3VuZFwtb2ZcLXdhdGVyOwor5q6TIDwgZHJlc3NcLWNvcnBzZVwtZm9yXC1idXJpYWw7CivnkKUgPCBqZXdlbFwtaW5cLXNoYXBlXC1vZlwtdGlnZXI7CivmvZ4gPCByaXZlclwtaW5cLW5vcnRoZXJuXC1jaGluYTsKK+mGjSA8IGVzc2VudGlhbFwtb2lsXC1vZlwtYnV0dGVyOwor5aavIDwgd2l2ZXNcLW9mXC1vbmUnJ3NcLWJyb3RoZXJzOwor5biPIDwgY3VydGFpblwtdGhhdFwtZm9ybXNcLXdhbGw7Civnk5IgPCBjZXJlbW9uaWFsXC1saWJhdGlvblwtY3VwOwor55GXIDwgbGFyZ2VcLXJpbmdcLW9mXC1maW5lXC1qYWRlOwor5raeIDwgcml2ZXJcLWluXC1oZWJlaVwtcHJvdmluY2U7CivniLsgPCBkaWFncmFtc1wtZm9yXC1kaXZpbmF0aW9uOwor6ZSfIDwgYW5jaWVudFwtdHJlYXN1cmVkXC1zd29yZDsKK+iKlyA8IGZyYWdyYW50XC1zbWVsbFwtb2ZcLWdyYWluOwor5qWmIDwgYVwtbGFzdFwtZm9yXC1tYWtpbmdcLXNob2VzOwor6IiBIDwgY2FycnlcLW9uXC1vbmUnJ3NcLXNob3VsZGVyOwor5rugIDwgcml2ZXJcLWluXC1odWJlaVwtcHJvdmluY2U7Civlv4zmgaggPCBoYXRlXC1cKGR1ZVwtdG9cLWVudnlcLFwtZXRjXCk7Civpm7nngb0gPCBkaXNhc3RlclwtY2F1c2VkXC1ieVwtaGFpbDsKK+WHuuioqiA8IHZpc2l0XC1hXC1mb3JlaWduXC1jb3VudHJ5Owor5qC45q2m5Zmo5p2Q5paZIDwgbnVjbGVhclwtd2VhcG9uXC1tYXRlcmlhbDsKK+mAmuioiuihjOalrSA8IGNvbW11bmljYXRpb25zXC1pbmR1c3RyeTsKK+WMl+WNiueQgyA8IHRoZVwtbm9ydGhlcm5cLWhlbWlzcGhlcmU7Civpm5nntZ7nt5ogPCB1bnNoaWVsZGVkXC10d2lzdGVkXC1wYWl0Owor55m85L2I5paw6Luf5Lu2IDwgdG9cLXJlbGVhc2VcLW5ld1wtc29mdHdhcmU7CivmlpHmlpEgPCBmdWxsXC1vZlwtc3RhaW5zXC1vclwtc3BvdHM7Civopb/oo50gPCBcKHdlc3Rlcm5cLXN0eWxlXClcLWNsb3RoZXM7CivliqDmsrkgPCB0b1wtbWFrZVwtYW5cLWV4dHJhXC1lZmZvcnQ7Civli5/mjZAgPCB0b1wtc29saWN0XC1jb250cmlidXRpb25zOwor5bCI5bGs57aT5r+f5Y2AIDwgZXhjbHVzaXZlXC1lY29ub21pY1wtem9uZTsKK+eatOijgiA8IGNoYXBcLVwobGlwc1wsXC1za2luXCxcLWV0Y1wuXCk7CivopovogZ4gPCB3aGF0XC1vbmVcLXNlZXNcLWFuZFwtaGVhcnM7CivljIXmib/liLYgPCByZXNwb25zaWJsZVwtY3Jld1wtc3lzdGVtOwor5Y2X5LqsIDwgbmFuamluZ1wtXChjaXR5XC1pblwtY2hpbmFcKTsKK+imj+e0hCA8IHRlcm1zXC1cKG9mXC1hblwtYWdyZWVtZW50XCk7Civmrbjlv4MgPCBjb252ZXJ0ZWRcLXRvXC1cKHJlbGlnaW9uXCk7CivpgLzmrbsgPCBob3VuZFwtc29tZWJvZHlcLXRvXC1kZWF0aDsKK+acrOS9jeS4u+e+qSA8IHNlbGZpc2hcLWRlcGFydG1lbnRhbGlzbTsKK+eCuuaJgOassueCuiA8IGRvXC13aGF0ZXZlclwtb25lXC1wbGVhc2VzOwor5Lq65rCR5rOV6ZmiIDwgcGVvcGxlJydzXC1jb3VydFwtXChvZlwtbGF3XCk7CivllYbmpa3mqZ/mp4sgPCBjb21tZXJjaWFsXC1vcmdhbml6YXRpb247CivpvI8gPCBjb3Zlclwtb2ZcLXRyaXBvZFwtY2FsZHJvbjsKK+m7sCA8IHlvdW5nXC1naXJsJydzXC1oYWlyXC1zdHlsZTsKK+e1seayuyA8IFwocG9saXRpY2FsXClcLXJ1bGVcLVwob3ZlclwpOwor6KOc6KqyIDwgbWFrZVwtdXBcLWFcLW1pc3NlZFwtbGVzc29uOwor6YCZ5qijIDwgdGhpc1wtXChraW5kXC1vZlwsXC1zb3J0XC1vZlwpOwor5pKt5pS+5qmfIDwgcGxheWVyXC1cKGVcLmdcLlwtY2RcLXBsYXllclwpOwor6YGU5oiQIDwgdG9cLXJlYWNoXC1cKGFuXC1hZ3JlZW1lbnRcKTsKK+eZvuiIrCA8IGluXC1odW5kcmVkXC1hbmRcLW9uZVwtd2F5czsKK+msgiA8IHRoZVwtaGFpclwtb25cLXRoZVwtdGVtcGxlczsKK+emgeatouaguOatpuWZqOippumpl+ainee0hCA8IG51Y2xlYXJcLXRlc3RcLWJhblwtdHJlYXR5Owor6aeuIDwgYVwta2luZFwtb2ZcLWZpZXJjZVwtYW5pbWFsOwor5LiN57+86ICM6aObIDwgZGlzYXBwZWFyXC13aXRob3V0XC10cmFjZTsKK+aOiOioiCA8IHRvXC1jb25maWRlXC1hXC1wbGFuXC10b1wtc2I7CivnlaLmga3nlaLmlawgPCByZXZlcmVudFwtYW5kXC1yZXNwZWN0ZnVsOwor56eR56CU5Lq65ZOhIDwgXChzY2llbnRpZmljXClcLXJlc2VhcmNoZXI7CivloLHmm4kgPCBoZXJhbGRcLXRoZVwtYnJlYWtcLW9mXC1kYXk7Civmk5rntbHoqIggPCBhY2NvcmRpbmdcLXRvXC1zdGF0aXN0aWNzOwor6YCP6Zyy5raI5oGvIDwgdG9cLWRpc2Nsb3NlXC1pbmZvcm1hdGlvbjsKK+S4reWci+aZguWgsSA8IGNoaW5hXC10aW1lc1wtXChuZXdzcGFwZXJcKTsKK+mEviA8IHBsYWNlXC1pblwtaHViZWlcLXByb3ZpbmNlOwor6YSsIDwgcGxhY2VcLWluXC1oZW5hblwtcHJvdmluY2U7CivphJggPCBzdGF0ZVwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+WIqeW4giA8IFwibGFpXC1zZWVcIlwtXChsdWNreVwtbW9uZXlcKTsKK+mDsCA8IGJpcnRocGxhY2VcLW9mXC1jb25mdWNpdXM7CivpgqcgPCB0b3duXC1pblwtc2hhbnhpXC1wcm92aW5jZTsKK+WBtOmHjSA8IHBsYWNlXC1leHRyYVwtZW1waGFzaXNcLW9uOwor5aCx5oGpIDwgcGF5XC1hXC1kZWJ0XC1vZlwtZ3JhdGl0dWRlOwor55WZ5a2455SfIDwgc3R1ZGVudFwtc3R1ZHlpbmdcLWFicm9hZDsKK+WogeW7ieaWr+WgoSA8IHdpbGxpYW1zYnVyZ1wtXCh2aXJnaW5pYVwpOwor5L6/5a6c6KGM5LqLIDwgYWN0XC1hdFwtb25lJydzXC1kaXNjcmV0aW9uOwor5bmr5a2QIDwgb3V0ZXJcLVwob2ZcLWNhYmJhZ2VcLFwtZXRjXCk7Civoh6rosaogPCBcKGZlZWxcLWFcLXNlbnNlXC1vZlwpXC1wcmlkZTsKK+WPjeiJpuiJh+W3oeiIquWwjuW9iCA8IGFudGlcLXNoaXBcLWNydWlzZVwtbWlzc2xlOwor6Jq7IDwgc21hbGxcLXNwZWNpZXNcLW9mXC1jaWNhZGE7CivokrEgPCBnYW1ibGluZ1wtZ2FtZVwtd2l0aFwtZGljZTsKK+iRpyA8IGhlbGVvY2hhcmlzXC1wbGFudGFnaW5lYTsKK+a1geS6oeWcqOa1t+WkliA8IHRvXC1iZVwtaW5cLWV4aWxlXC1vdmVyc2VhczsKK+mYsuWLmSA8IFwocGVydGFpbmluZ1wtdG9cKVwtZGVmZW5zZTsKK+alree4viA8IG91dHN0YW5kaW5nXC1hY2hpZXZlbWVudDsKK+iIsiA8IHNtYWxsXC1ib2F0XC13aXRoXC13aW5kb3dzOwor5ZWG5qWt566h55CGIDwgYnVzaW5lc3NcLWFkbWluaXN0cmF0aW9uOwor55WZ6KiAIDwgdG9cLWxlYXZlXC1vbmUnJ3NcLWNvbW1lbnRzOwor576rIDwgdGhlXC1za2VsZXRvblwtb2ZcLWFcLXNoZWVwOwor5bm05L6GIDwgb3ZlclwtdGhlXC1sYXN0XC1cLlwuXC5cLXllYXJzOwor5729IDwgYVwta2luZFwtb2ZcLXdvb2xlblwtZmFicmljOwor6ZaL5ouNIDwgYmVnaW5cLXNob290aW5nXC1cKGFcLWZpbG1cKTsKK+WIhuS5iyA8IFwoaW5kaWNhdGluZ1wtYVwtZnJhY3Rpb25cKTsKK+eyuiA8IHBvbGlzaGVkXC1yaWNlXC1vclwtbWlsbGV0Owor5aSa5bm05L6GIDwgZm9yXC10aGVcLXBhc3RcLW1hbnlcLXllYXJzOwor56+nIDwgY3JlZWxcLWZvclwtdHJhcHBpbmdcLWZpc2g7Civnr5sgPCBjdXRpY2xlXC1vZlwtYmFtYm9vXC1wbGFudDsKK+WfuuekjumAn+eOhyA8IGJhc2ljXC1yYXRlXC1cKGFzXC1pblwtaXNkblwpOwor562U6KydIDwgdG9cLWV4cHJlc3NcLW9uZScnc1wtdGhhbmtzOwor56WUIDwgd29yc2hpcFwtb25lJydzXC1hbmNlc3RvcnM7CivnrYboq4cgPCBjb252ZXJzYXRpb25cLWJ5XC13cml0aW5nOwor55Gq6bqXIDwgbWFsaVwtXChhXC1wZXJzb24nJ3MnJ1wtbmFtZVwpOwor552WIDwgdG9cLXN0YXJlXC1zdHJhaWdodFwtYWhlYWQ7CivnnKIgPCBleWVzXC13aXRob3V0XC1icmlnaHRuZXNzOwor55eH54uAIDwgc3ltcHRvbVwtXChvZlwtYW5cLWlsbG5lc3NcKTsKK+eVviA8IGZpZWxkc1wtZGl2aWRlZFwtYnlcLWRpa2VzOwor55KyIDwgcGVuZGFudFwtZ2lyZGxlXC1vcm5hbWVudDsKK+eRvyA8IGFcLWJsYWNrXC1zdG9uZVwtbGlrZVwtamFkZTsKK+eRryA8IGtpbmRcLW9mXC13aGl0ZVwtY29ybmVsaWFuOwor55GiIDwgZ2VtXC1vcm5hbWVudHNcLWZvclwtYmVsdHM7Civnj7YgPCB3aGl0ZVwtamFkZVwtd29yblwtb25cLWJlbHQ7CivkuK3np4vnr4AgPCB0aGVcLW1pZFwtYXV0dW1uXC1mZXN0aXZhbDsKK+eOlSA8IGluZmVyaW9yXC12YXJpZXR5XC1vZlwtZ2VtOwor5L2U6aCYIDwgdG9cLW9jY3VweVwtXChhXC10ZXJyaXRvcnlcKTsKK+eMiCA8IGRvZ1wtd2l0aFwtc2hvcnRcLXNoaW5ib25lOwor5omL5a+r6K2Y5YilIDwgaGFuZHdyaXRpbmdcLXJlY29nbml0aW9uOwor5r6JIDwgdG9cLXdhc2hcLW5hbWVcLW9mXC1hXC1wbGFjZTsKK+a9liA8IG5hbWVcLW9mXC1hXC1jZXJ0YWluXC1yaXZlcjsKK+mdnuebiOWIqeeahOe1hOe5lCA8IG5vblwtcHJvZml0XC1vcmdhbml6YXRpb247CivmrpkgPCB0b1wtZGllXC1ieVwtdGFraW5nXC1wb2lzb247CivmrYEgPCB1bnNhdGlzZmllZFwtXChvZlwtZWF0aW5nXCk7CivmrKggPCB0b1wtYmxvd1wtb3JcLWJyZWF0aGVcLXVwb247CivmrI8gPCB0cmVlXC10aGVcLWhvcnNlXC1jaGVzdG51dDsKK+aqhyA8IHdvb2RlblwtcmFtbWVyXC1vclwtcGVzdGxlOwor5qmUIDwgYVwtd29vZGVuXC1jaG9wcGluZ1wtYmxvY2s7CivoqIrmga/omZXnkIbns7vntbEgPCBtZXNzYWdlXC1oYW5kbGluZ1wtc3lzdGVtOwor5YKZ5paZIDwgZ2V0XC10aGVcLW1hdGVyaWFsc1wtcmVhZHk7CivlnablhYsgPCB0YW5rXC1cKG1pbGl0YXJ5XC12ZWhpY2xlXCk7Civppqzot6/lj6MgPCBpbnRlcnNlY3Rpb25cLVwob2ZcLXJvYWRzXCk7Civlm5vlt50gPCBzaWNodWFuXC1wcm92aW5jZVwsXC1jaGluYTsKK+aAuCA8IGNuc1wtMlwtMmE0MFwtaXNcLWRpZmZlcmVudDsKK+avlOavlOeahuaYryA8IGNhblwtYmVcLWZvdW5kXC1ldmVyeXdoZXJlOwor5LiN5oq15oqX5Li7576pIDwgcG9saWN5XC1vZlwtbm9ucmVzaXN0YW5jZTsKK+iyqemBiyA8IHRvXC10cmFuc3BvcnRcLVwoZm9yXC1zYWxlXCk7CivlooQgPCB0aGVcLXN0ZXBzXC1vZlwtYVwtc3RhaXJ3YXk7CivmlbjlrZfoqILos7znt5rot68gPCBkaWdpdGFsXC1zdWJzY3JpYmVyXC1saW5lOwor5qOE6IiK5o+b5pawIDwgdG9cLXR1cm5cLW92ZXJcLWFcLW5ld1wtbGVhZjsKK+S7iuitryA8IG1vZGVyblwtbGFuZ3VhZ2VcLXZlcnNpb247CivkuI3mg4XkuYvoq4sgPCBteVwtcHJlc3VtcHR1b3VzXC1yZXF1ZXN0Owor5ZWrIDwgaW50ZXJqZWN0aW9uXC1vZlwtd2FybmluZzsKK+aKleaUviA8IHRvXC1wdXRcLWluXC1cKGNpcmN1bGF0aW9uXCk7CivlkJogPCB1c2VkXC10b1wtcmVwcmVzZW50XC1zb3VuZDsKK+WMgSA8IGphcGFuZXNlXC11bml0XC1vZlwtd2VpZ2h0Owor55eF5YCSIDwgYmVcLWRvd25cLXdpdGhcLWFuXC1pbGxuZXNzOwor5ou35ZWPIDwgdG9cLXF1ZXN0aW9uXC12aWFcLXRvcnR1cmU7Civku74gPCB0b1wtaGFuZ1wtb3JcLWJvd1wtdGhlXC1oZWFkOwor5LadIDwgZ3Jvd2luZ1wtaXJyZWd1bGFyXC10ZWV0aDsKK+S1iCA8IHVuc21lbHRlZFwtaGVtcFwtYW5kXC1zaWxrOwor5LWAIDwgY29hcnNlXC1jcnVtYnNcLW9mXC1iYXJsZXk7CivktJEgPCBhXC1sZWdlbmRhcnlcLXdlaXJlZFwtYmlyZDsKK+S0hyA8IGFcLXNlY29uZFwtbmFtZVwtZm9yXC1jcmFuZTsKK+S0gSA8IGFcLWtpbmRcLW9mXC1yYXRcLWxpa2VcLWJpcmQ7Civks7IgPCBhXC1zd2FybVwtb2ZcLWZseWluZ1wtYmlyZHM7CivksrQgPCBhXC1raW5kXC1vZlwtdmVub21vdXNcLWJpcmQ7Civksb4gPCBhXC1jYXJwXC1saWtlXC1zYXZvcnlcLWZpc2g7CivksKsgPCBuaW1ibGVcLWFuZFwtYWN0aXZlXC1naG9zdDsKK+mbmemAo+aOpeermSA8IGR1YWxcLWF0dGFjaG1lbnRcLXN0YXRpb247CivkrYcgPCB0b1wtYmVcLWNob2NrZWRcLXdpdGhcLWZvb2Q7CivkrYYgPCBzbWFsbFwtY2hpbGRyZW5cLWVhdFwtbGVzczsKK+SssiA8IHRvXC1lYXRcLXRvXC10aGVcLWhhbGZcLWZ1bGw7CivkrKogPCBhXC1raW5kXC1vZlwtY29va2VkXC1ub29kbGU7CivkrJsgPCB0aGVcLXJvYXJpbmdcLW9mXC10aGVcLXdpbmQ7CivmgqPpm6MgPCB0cmlhbHNcLWFuZFwtdHJpYnVsYXRpb25zOwor5KiXIDwgZXhjZXNzaXZlXC1yYWluXC1hbmRcLXNub3c7CivkqIUgPCBzbWFsbFwtYmlyZHNcLVwtXC1cLXRoZVwtd3JlbjsKK+mNm+eFiSA8IHRvXC1kb1wtcGh5c2ljYWxcLXRyYWluaW5nOwor5KWWIDwgc2lsdmVyXC1vZlwtZ29sZFwtZmlsYWdyZWU7CivkpY8gPCB1bmZpdHRlZFwtZm9yXC1lYWNoXC1vdGhlcjsKK+SkpSA8IGFncmljdWx0dXJhbFwtaW1wbGVtZW50czsKK+SinCA8IHRoZVwtbWFycmlhZ2VcLW9mXC1hXC13b21hbjsKK+ShvSA8IHRoZVwtc2hhZnRzXC1vZlwtYVwtdmVoaWNsZTsKK+ShuiA8IHRoZVwtZW5kXC1vZlwtYW5cLWF4bGVcLXRyZWU7CivkoaMgPCBhXC1waWVjZVwtb2ZcLWN1cnZlZFwtYm9hcmQ7CivkoKMgPCBuZXRcLXRvXC10cmFwXC10aGVcLWFuaW1hbHM7CivknYggPCBhXC1iaWdcLWFuZFwtc3RyZW51b3VzXC1waWc7CivkmpAgPCBnZXR0aW5nXC1yZWRcLWluXC10aGVcLWV5ZXM7CivkmoogPCB0b1wtbG9va1wtZnJvbVwtYVwtZGlzdGFuY2U7CivkmZAgPCBmdXJzXC1hbmRcLWxpbmVuXC1nYXJtZW50czsKK+SYhiA8IGFcLXNlY29uZFwtZm9ybVwtZWFydGh3b3JtOwor5JegIDwgdGhlXC1sYXJ2YVwtb2ZcLW1vc3F1aXRvZXM7Civkl5QgPCBhXC1ob3VzZVwtbGl6YXJkXC1vclwtZ2Vja287CivklrEgPCBsYXJnZVwtc2hyaW1wXC1pblwtdGhlXC1zZWE7CivklL4gPCBhXC1raW5kXC1vZlwtZnJhZ3JhbnRcLWhlcmI7Civkk7EgPCBhXC1raW5kXC1vZlwtaGVyYlwtbWVkaWNpbmU7CivmiLTntq3mlq8gPCBkYXZpc1wtXChlbmdsaXNoXC1zdXJuYW1lXCk7Civoo5zliqnntYTnuZQgPCBhdXhpbGlhcnlcLW9yZ2FuaXphdGlvbnM7CivkkKQgPCBkcmllZFwtYW5kXC1zZWFzb25lZFwtbWVhdDsKK+SQkCA8IGN1cnZlZFwtcGFydFwtb2ZcLXRoZVwta25lZTsKK+SPmSA8IGJyaW5lXC1mcm9tXC1waWNrbGVkXC1tZWF0Owor5I+VIDwgdG9cLWNvb2tcLWZvb2RcLXRob3JvdWdobHk7CivntIXmqJPlpKIgPCBhXC1kcmVhbVwtb2ZcLXJlZFwtbWFuc2lvbnM7CivkjbkgPCBvZG9yXC1vZlwtYVwtc2hlZXBcLW9yXC1nb2F0Owor5I2ZIDwgbmV0c1wtZm9yXC1jYXRjaGluZ1wtYmlyZHM7CivkjZggPCBhXC1nZW5lcmFsXC10ZXJtXC1mb3JcLW5ldHM7CivkjZMgPCBuZXRcLWZvclwtY2F0Y2hpbmdcLXJhYmJpdDsKK+SLqyA8IHRvXC13aW5kXC1yb3VuZFwtdGhlXC1yb3BlczsKK+SLqCA8IHRvXC1zZXRcLWluXC1vcmRlclwtdGhlXC1vbGQ7CivkirQgPCBmb29kXC1tYWRlXC1vZlwtcmljZVwtZmxvdXI7CivkiqogPCBjb2Fyc2VcLXJpY2VcLVwtXC1cLXVuaHVsbGVkOwor5ImcIDwgeW91bmdcLWFuZFwtdGVuZGVyXC1iYW1ib287CivkiZYgPCBmcmFtZXdvcmtcLW9mXC1hXC1jYXJyaWFnZTsKK+SHlyA8IGJhbWJvb1wtd2l0aFwtbG9uZ1wtam9pbnRzOwor5IeRIDwgYVwtc3RhbmRpbmdcLXNob3J0XC1wZXJzb247CivkhoogPCB1bmh1c2tlZFwtZ2x1dGlub3VzXC1yaWNlOwor5IaJIDwgdGhlXC1zd2luZ1wtb2ZcLXJpY2VcLXBsYW50Owor6JuZ5rOzIDwgXChzd2ltbWluZ1wpXC1icmVhc3RzdHJva2U7Civkg4kgPCBhXC1zdG9uZVwtcmVzZW1ibGluZ1wtamFkZTsKK+aAjum6vCA8IFwoaW50ZXJyb2dhdGl2ZVwtcHJvbm91blwpOwor5IGMIDwgdG9cLXNlZVwtZm9yXC1hXC1zaG9ydFwtdGltZTsKK+O+gCA8IHRvXC1iZVwtd2Vha2VkXC1ieVwtZGlzZWFzZTsKK+O9uCA8IGRpc2Vhc2VzXC1vZlwtdGhlXC1hYmRvbWVuOwor5Zyo5LuK5bm05bm05bqVIDwgYXRcLXRoZVwtZW5kXC1vZlwtdGhpc1wteWVhcjsKK+O8pyA8IHRpbGVzXC1pblwtY3lsaW5kZXJcLXNoYXBlOwor6YGO5LiN5Y67IDwgbWFrZVwtbGlmZVwtZGlmZmljdWx0XC1mb3I7CivjubIgPCBhXC1mcmlnaHRlbmVkXC1waWdcLW9yXC1kb2c7Civjua4gPCBhXC1raW5kXC1vZlwtYW5pbWFsXC1cLXRhcGlyOwor47mdIDwgYVwtbGVnZW5kYXJ5XC13aWxkXC1hbmltYWw7CivjuZEgPCBhXC1mb3VyXC15ZWFyc1wtb2xkXC1jYXR0bGU7CivjuYogPCBhXC1jYXR0bGVcLW9mXC13aGl0ZVwtY29sb3I7CivjuYYgPCB0aGVcLWNvdWx0ZXJcLW9mXC1hXC1wbG91Z2g7Civlm57poafmrbflj7IgPCB0b1wtbG9va1wtYmFja1wtYXRcLWhpc3Rvcnk7CivpgJroqIrljZTlrpogPCBjb21tdW5pY2F0aW9uc1wtcHJvdG9jb2w7CivjuIsgPCBtZWF0c1wtdXNlZFwtaW5cLXNhY3JpZmljZTsKK+O3riA8IHNjb3JjaGVkXC1vclwtYnVybmVkXC13b29kOwor47erIDwgZmlyZVwtY2F1c2luZ1wtYnlcLWRyeW5lc3M7CivjtpIgPCB0aGVcLWN1cnJlbnRcLW9mXC1hXC1zdHJlYW07CivjtLIgPCBhXC1yaXZlclwtaW5cLWFuY2llbnRcLXRpbWU7CivjtJEgPCB0b1wtdHJhY2VcLXVwXC10b1wtYVwtc291cmNlOwor47SPIDwgdGhlXC1wb25kXC13YXRlclwtaXNcLXN0aWxsOwor47K/IDwgZXh0ZW5zaXZlXC1ib2R5XC1vZlwtd2F0ZXI7CivjsoQgPCB1bmJ1cm50XC1icmlja3NcLW9yXC10aWxlczsKK+OxrCA8IGNhbm5vdFwtcmVjb2duaXplXC1wZW9wbGU7Civjr5kgPCB0aGVcLWJ1Y2t0aG9yblwtb3JcLWp1anViZTsKK+mnkOWuiCA8IFwobWFuXC1hXC1wb3N0XC1hbmRcKVwtZGVmZW5kOwor462+IDwgdG9cLWN1dFwtdGhlXC10aW1iZXJcLWFwYXJ0Owor5rqr5ZKMIDwgbW9kZXJhdGVcLVwocG9saWN5XCxcLWV0Y1wuXCk7CivjrYMgPCB0aGVcLWxhcmdlXC1yb3BlXC1vZlwtYVwtbmV0Owor462CIDwgaGVpZ2h0XC1vZlwtdGhlXC1lbmRcLXBvaW50Owor46y7IDwgaW5cLWJldHdlZW5cLW9mXC10aGVcLWZsZXNoOwor5ZCm6KqNIDwgdG9cLWRlY2xhcmVcLXRvXC1iZVwtdW50cnVlOwor46evIDwgYVwtYnVja2V0XC1tYWRlXC1vZlwtd2lsbG93Owor46elIDwgdG9cLW5pcFwtd2l0aFwtdGhlXC1maW5nZXJzOwor46a9IDwgd2l0aFwtZWxlZ2FudFwtYXBwZWFyYW5jZTsKK+aDheWgseiZlSA8IHNvdXJjZVwtXChvZlwtaW5mb3JtYXRpb25cKTsKK+OmuiA8IGFcLWxhbmNlXC13aXRoXC10d29cLXBvaW50czsKK+OmhyA8IGFcLXBlYWNlZnVsXC1vclwtZWFzeVwtbW9vZDsKK+OlhSA8IHVzZWRcLWluXC1hXC1wZXJzb24nJ3NcLW5hbWU7CivjpIwgPCB0b1wtaGF2ZVwtb25lJydzXC1oZWFydFwtb3duOwor46O7IDwgdG9cLXJlbWVkeVwtYnlcLXB1bmlzaG1lbnQ7Civjo6ogPCB0b1wtd2Fsa1wtd2l0aFwtc2xvd1wtc3RlcHM7Civjo4YgPCB0b1wtbG9vc2VcLXRoZVwtYm93XC1zdHJpbmc7Civjor4gPCB0aGVcLWN1cnZlZFwtZW5kXC1vZlwtYVwtYm93Owor46K1IDwgcG93ZXJmdWxcLWFuZFwtc3Ryb25nXC1ib3c7CivjobkgPCB0b1wtcmVseVwtdXBvblwtZWFjaFwtb3RoZXI7CivjoZIgPCBhXC1jYWxpY29cLXNhY2tcLWZvclwtZ3JhaW47CivjoY8gPCB0b1wtY3V0XC1hXC1zdHJpcFwtb2ZcLWNsb3RoOwor4568IDwgdG9cLXJlc3BlY3RmdWxseVwtcmVjZWl2ZTsKK+OarCA8IGFcLWxhZHlcLXN0YXJ0XC10b1wtZG9sbFwtdXA7CivjmpYgPCB0b1wtY29tZVwtb3V0XC10b1wtdGhlXC1vcGVuOwor45mKIDwgYW5cLWFyZWFcLW9mXC1sZXZlbFwtZ3JvdW5kOwor45W4IDwgc291bmRcLW9mXC1yb2xsaW5nXC1hXC1ib2F0Owor45SkIDwgdG9cLWV4ZXJ0XC1vbmUnJ3NcLXN0cmVuZ3RoOwor6IWQ5pWX572qIDwgdGhlXC1jcmltZVwtb2ZcLWNvcnJ1cHRpb247CivjkqQgPCB0b1wtaGF2ZVwtb25lJydzXC1oZWFydFwtd29uOwor45KZIDwgdG9cLWhhbmRcLW9yXC1ib3dcLXRoZVwtaGVhZDsKK+atpeWxpee2reiJsSA8IGhhdmVcLWRpZmZpY3VsdHlcLXdhbGtpbmc7CivlhbHlkIznr6npgbggPCBjb2xsYWJvcmF0aXZlXC1maWx0ZXJpbmc7Civnmb3om4flgrMgPCB0YWxlXC1vZlwtdGhlXC13aGl0ZVwtc25ha2U7CivlpKfpqZrlsI/mgKogPCBtdWNoXC1mdXNzXC1hYm91dFwtbm90aGluZzsKK+i+r+iovOWUr+eJqeS4u+e+qSA8IGRpYWxlY3RpY2FsXC1tYXRlcmlhbGlzbTsKK+axn+ilvyA8IGppYW5neGlcLXByb3ZpbmNlXCxcLWNoaW5hOwor5oSb5pKrIDwgdG9cLXNob3dcLXRlbmRlclwtY2FyZVwtZm9yOwor5Y+D6IiHIDwgdG9cLXBhcnRpY2lwYXRlXC1cKGluXC1zdGhcKTsKK+a4r+S6uiA8IGhvbmdcLWtvbmdcLXBlcnNvblx8cGVvcGxlOwor6buD5rKzIDwgeWVsbG93XC1yaXZlclwtXChodWFuZ1wtaGVcKTsKK+axn+iYhyA8IGppYW5nc3VcLXByb3ZpbmNlXCxcLWNoaW5hOwor5Lu75ZG9IDwgdG9cLWFwcG9pbnRcLWFuZFwtbm9taW5hdGU7Civlhazlronlrpjlk6EgPCBwdWJsaWNcLXNhZmV0eVwtb2ZmaWNpYWxzOwor6aSF5a2QIDwgbWFpemVcLW9yXC1taWxsZXRcLXBhbmNha2U7CivmnJ/mlLcgPCBlbmRcLW9mXC10ZXJtXC1leGFtaW5hdGlvbjsKK+e4vemhjSA8IHRvdGFsXC1cKGFtb3VudFwtb3JcLXZhbHVlXCk7CivorILoqp4gPCBcKGdyYW1tYXRpY2FsXClcLXByZWRpY2F0ZTsKK+WNiuaIkOWTgSA8IHNlbWlcLW1hbnVmYWN0dXJlZFwtZ29vZHM7CivkuK3ml6wgPCBtaWRkbGVcLXRoaXJkXC1vZlwtYVwtbW9udGg7CivkuIvml6wgPCBsYXN0XC10aGlyZFwtb2ZcLXRoZVwtbW9udGg7CivlgrPovLjmioDooZMgPCB0cmFuc21pc3Npb25cLXRlY2hub2xvZ3k7Civosp3lhYsgPCBiYWtlclwtXChlbmdsaXNoXC1zdXJuYW1lXCk7CivkuoLlkIMgPCB0b1wtZWF0XC1pbmRpc2NyaW1pbmFudGx5Owor5aWU6aCt5YWSIDwgc29tZXRoaW5nXC10b1wtc3RyaXZlXC1mb3I7CivlhrDlpKnpm6rlnLAgPCBhXC13b3JsZFwtb2ZcLWljZVwtYW5kXC1zbm93Owor5pS/5bqc5qmf5qeLIDwgZ292ZXJubWVudFwtb3JnYW5pemF0aW9uOwor5Lit6L2J56uZIDwgaHViXC1cKG5ldHdvcmtcLWVxdWlwbWVudFwpOwor5oGp5oCoIDwgXChmZWVsaW5nXC1vZlwpXC1yZXNlbnRtZW50Owor5LiN5aSWIDwgbm90XC1iZXlvbmRcLXRoZVwtc2NvcGVcLW9mOwor5pyN5YiRIDwgc2VydmVcLWFcLXByaXNvblwtc2VudGVuY2U7CivojqvpnZ4gPCBjYW5cLWl0XC1iZVwtcG9zc2libGVcLXRoYXQ7Civlu6Popb8gPCBndWFuZ3hpXC1wcm92aW5jZVwsXC1jaGluYTsKK+S4jeWPr+eQhuWWuyA8IGJlXC1pbXBlcnZpb3VzXC10b1wtcmVhc29uOwor5aWU54CJIDwgXChvZlwtdG9ycmVudHNcKVwtcnVzaFwtZG93bjsKK+S5iCA8IGludGVycm9nYXRpdmVcLXBhcnRpY2xlOwor6KKrIDwgcGFzc2l2ZVwtaW5kaWNhdG9yXC0nJ2J5Jyc7CivnlLMgPCB0b1wtc3RhdGVcLXRvXC1hXC1zdXBlcmlvcjsKK+WyoSA8IHJpZGdlXC1vclwtY3Jlc3RcLW9mXC1oaWxsOwor55C0IDwgY2hpbmVzZVwtbHV0ZVwtb3JcLWd1aXRhcjsKK+WsjCA8IHNlZHVjdGl2ZVwtYW5kXC1sb3ZlYWJsZTsKK+e9lyA8IG5ldFwtZm9yXC1jYXRjaGluZ1wtYmlyZHM7CivmkbggPCBnZW50bHlcLXRvdWNoXC13aXRoXC1oYW5kOwor5LuwIDwgcmFpc2VcLXRoZVwtaGVhZFwtdG9cLWxvb2s7Civoh40gPCBhYmRvbWluYWxcLWFyZWFcLW9mXC1jcmFiOwor6YORIDwgc3RhdGVcLWluXC10b2RheScnc1wtaGVuYW47CivotK8gPCBhXC1zdHJpbmdcLW9mXC0xMDAwXC1jb2luczsKK+errSA8IHB1dFwtZm9ydGhcLWdyZWF0XC1lZmZvcnQ7Civnp5IgPCBiZWFyZFwtb2ZcLWdyYWluXC1vclwtY29ybjsKK+WlmiA8IHdoZXJlXD9cLXdoYXRcP1wtaG93XD9cLXdoeVw/Owor55uPIDwgc21hbGxcLWN1cFwtb3JcLWNvbnRhaW5lcjsKK+iQnSA8IHR5cGVcLW9mXC1jcmVlcGluZ1wtcGxhbnQ7CivmoqcgPCBzdGVyY3VsaWFcLXBsYXRhbmlmb2xpYTsKK+WSpiA8IGV4cHJlc3Npb25cLW9mXC1zdXJwcmlzZTsKK+etkCA8IGJhbWJvb1wtYmFza2V0XC1vclwtY2hlc3Q7CivosI0gPCBhblwtaW50ZWxsaWdlbmNlXC1yZXBvcnQ7Civnr7EgPCBiYW1ib29cLW9yXC13b29kZW5cLWZlbmNlOwor55C2IDwgZ3VpdGFyXC1saWtlXC1pbnN0cnVtZW50Owor5r26IDwgc291bmRcLW9mXC1mbG93aW5nXC13YXRlcjsKK+WdsyA8IGFcLWhvbGxvd1wtaW5cLXRoZVwtZ3JvdW5kOwor5Z+CIDwgZGl0Y2hlc1wtZm9yXC1pcnJpZ2F0aW9uOwor5YCMIDwgYXNzaXN0YW50XC1pblwtd2luZVwtc2hvcDsKK+mcgSA8IHRvXC1jbGVhclwtdXBcLWFmdGVyXC1yYWluOwor6YKvIDwgY2l0eVwtaW5cLWhlYmVpXC1wcm92aW5jZTsKK+eykSA8IHRzYW1iYVwtXChmb29kXC1pblwtdGliZXRcKTsKK+ibgCA8IGluc2VjdHNcLXRoYXRcLWVhdFwtYm9va3M7Civlq6YgPCBuYW1lXC1vZlwtYVwtbW9vblwtZ29kZGVzczsKK+i1iiA8IGJ1eVwtYW5kXC1zZWxsXC1vblwtY3JlZGl0Owor5byRIDwgdG9cLWtpbGxcLW9uZScnc1wtc3VwZXJpb3I7CivmkYEgPCB0b1wtcHJlc3NcLXdpdGhcLXRoZVwtaGFuZDsKK+eVuSA8IGFcLWZpZWxkXC1vZlwtMjBcLW9yXC0zMFwtbXU7Civop5AgPCBoYXZlXC1pbXBlcmlhbFwtYXVkaWVuY2U7CivorqYgPCBleHBvc2VcLW90aGVyJydzXC1zZWNyZXRzOwor5peEIDwgYVwta2luZFwtb2ZcLWFuY2llbnRcLWZsYWc7CivotrUgPCBub2lzZVwtb2ZcLXRyYW1waW5nXC1mZWV0Owor6YW5IDwgdG9cLXBvdXJcLW91dFwtYVwtbGliYXRpb247CivlrbMgPCBicmVlZFwtaW5cLWxhcmdlXC1udW1iZXJzOwor5aGEIDwgZWxldmF0ZWRcLWJhbmtcLWluXC1maWVsZDsKK+ieiCA8IGRpZW15ZWxpbHVzXC1weXJvZ2FzdGVyOwor56qsIDwgYVwtc21hbGxcLWRvb3JcLW9yXC13aW5kb3c7CivnrLEgPCBhXC1iYXNrZXRcLXRyYXBcLWZvclwtZmlzaDsKK+eJvyA8IHNoZWRcLW9yXC1wZW5cLWZvclwtY2F0dGxlOwor6JuYIDwgYVwtd2VldmlsXC1mb3VuZFwtaW5cLXJpY2U7CivnlY4gPCBhXC1kcmFpblwtYmV0d2VlblwtZmllbGRzOwor6IG35qWt5Lit5a24IDwgdm9jYXRpb25hbFwtaGlnaFwtc2Nob29sOwor57ay6Lev56+A6bue5LuL6Z2iIDwgbmV0d29ya1wtbm9kZVwtaW50ZXJmYWNlOwor5q2j5Zyo5Lit5ZyL6Kiq5ZWPIDwgZHVyaW5nXC1hXC10cmlwXC10b1wtY2hpbmE7CivpgbrnlZkgPCBcKGxlYXZlXC1vclwtYmVcLWFcKVwtbGVnYWN5Owor5bi46KaPIDwgY29udmVudGlvbmFsXC1cKHdlYXBvbnNcKTsKK+iHqumjn+WFtuaenCA8IHJlYXBcLXdoYXRcLW9uZVwtaGFzXC1zb3duOwor6K2J5Yi4IDwgXChmaW5hbmNpYWxcKVwtc2VjdXJpdGllczsKK+S4jemcsuiBsuiJsiA8IG5vdFwtc2hvd1wtb25lJydzXC1mZWVsaW5nOwor5oWV6YGT5Y+LIDwgcmVsaWdpb3VzXC1pbnZlc3RpZ2F0b3I7CivlvoDluLggPCBoYWJpdHVhbGx5XC1pblwtdGhlXC1wYXN0Owor5aSn54We6aKo5pmvIDwgZGFtcGVuaW5nXC1vbmUnJ3NcLXNwaXJpdDsKK+WJneaOoeavlCA8IHN0cmlwcGluZ1wtdG9cLW9yZVwtcmF0aW87CivnvoXmm7zoqp7ml48gPCByb21hbmNlXC1sYW5ndWFnZVwtZ3JvdXA7CivlrbDog73nlJ/lt6cgPCBwcmFjdGljZVwtbWFrZXNcLXBlcmZlY3Q7CivlppblhrYgPCBwcmV0dHlcLWFuZFwtZmxpcnRhdGlvdXM7Civpnanlkb0gPCBcKHBvbGl0aWNhbFwpXC1yZXZvbHV0aW9uOwor6KuW5aOHIDwgZm9ydW1cLVwoZm9yXC1kaXNjdXNzaW9uXCk7Civlo5/mlrcgPCBlbmpveVwtbWFya2V0XC1kb21pbmFuY2U7CivniaHkuLkgPCBwZW9ueVwtXCh0eXBlXC1vZlwtZmxvd2VyXCk7CivloLHnqIUgPCBkZWNsYXJlXC1kdXRpYWJsZVwtZ29vZHM7Civnm67nmoTlnLAgPCBkZXN0aW5hdGlvblwtXChsb2NhdGlvblwpOwor5YWs6KqNIDwgcHVibGljbHlcLWtub3duXC1cKHRvXC1iZVwpOwor5Ze35Ze35b6F5ZO6IDwgY3J5XC1waXRlb3VzbHlcLWZvclwtZm9vZDsKK+eZvOihqCA8IHRvXC1pc3N1ZVwtXChhXC1zdGF0ZW1lbnRcKTsKK+S4jeeXm+S4jeeXkiA8IHNjcmF0Y2hpbmdcLXRoZVwtc3VyZmFjZTsKK+Wci+WLmemZoiA8IHN0YXRlXC1kZXBhcnRtZW50XC1cKHVzYVwpOwor6b2vIDwgdGVldGhcLWdyb3duXC1pblwtb2xkXC1hZ2U7Civpm7vlmaggPCBcKGVsZWN0cmljYWxcKVwtYXBwbGlhbmNlOwor6bmjIDwgZmFidWxvdXNcLW15dGhpY2FsXC1iaXJkOwor5q635YukIDwgcG9saXRlbHlcLFwtc29saWNpdG91c2x5Owor5Y2B5LqU5YSEIDwgb25lXC1hbmRcLWFcLWhhbGZcLWJpbGxpb247CivpsIYgPCBzY29tYmVyb21vcnVzXC1zaW5lbnNpczsKK+mukyA8IG1pbmNlZFwtYW5kXC1zYWx0ZWRcLWZpc2g7CivntIXnh5LogokgPCByZWRcLWNvb2tlZFwtXChwb3JrXClcLW1lYXQ7CivliLDmnJ8gPCBiZWNvbWVcLWR1ZVwtXChlZ1wsXC1sb2Fuc1wpOwor6amMIDwgbmFtZVwtb2ZcLWFcLWZhbW91c1wtaG9yc2U7CivlhazlronlsYAgPCBwdWJsaWNcLXNlY3VyaXR5XC1idXJlYXU7Civnl4XpmaIgPCBhXC1zcGVjaWFsaXplZFwtaG9zcGl0YWw7Civoga/ntrLnkrDlooMgPCBuZXR3b3JraW5nXC1lbnZpcm9ubWVudDsKK+mfuSA8IG11c2ljXC1vZlwtYmVsbFwtYW5kXC1kcnVtOwor6Kej6YeL5Z+36KGMIDwgaW50ZXJwcmV0ZWRcLVwoY29tcHV0ZXJcKTsKK+WFq+Wwj+aZguW3peS9nOWItiA8IGVpZ2h0XC1ob3VyXC13b3JraW5nXC1kYXk7Civmtojmga/pnYjpgJrkurrlo6sgPCBhXC13ZWxsXC1pbmZvcm1lZFwtc291cmNlOwor6ZuYIDwgZHllXC1tYWRlXC1mcm9tXC1yZWRcLXNvaWw7CivpmIcgPCBhXC1idWRkaGlzdFwtaGlnaFwtcHJpZXN0Owor5LiN6L+R5Lq65oOFIDwgbm90XC1hbWVuYWJsZVwtdG9cLXJlYXNvbjsKK+mRkCA8IGJvbHRcLW9mXC1hXC1jaGluZXNlXC1sb2NrOwor5pS/5rK75qmf5qeLIDwgcG9saXRpY2FsXC1vcmdhbml6YXRpb247CivpjIYgPCB0aGVcLWNvbG9yXC1vZlwtYVwtbWluZXJhbDsKK+mEkCA8IHRvd25cLWluXC1oZW5hblwtcHJvdmluY2U7CivpgbAgPCBncnVudGluZ1wtc291bmRcLW9mXC1waWdzOwor6L6lIDwgdmFyaWV0eVwtb2ZcLW1hcnNoXC1ncmFzczsKK+eXheixoSA8IHN5bXB0b21cLVwob2ZcLWFcLWRpc2Vhc2VcKTsKK+aXpeacrOe2k+a/n+aWsOiBniA8IGphcGFuZXNlXC1lY29ub21pY1wtbmV3czsKK+asuuWHjCA8IHRvXC1idWxseVwtYW5kXC1odW1pbGlhdGU7CivpgY3lj4ogPCB0b1wtZXh0ZW5kXC1cKGV2ZXJ5d2hlcmVcKTsKK+iwgiA8IGNvbnN1bHRcLWNhcmVmdWxseVwtd2l0aDsKK+ewvee9siA8IHRvXC1zaWduXC1cKGFuXC1hZ3JlZW1lbnRcKTsKK+ipqiA8IGRpZmZpY3VsdHlcLWluXC1zcGVha2luZzsKK+WgseWwjiA8IHRvXC1jb3ZlclwtXChyZXBvcnRcKVwtbmV3czsKK+invyA8IGFcLWJvZGtpblwtbWFkZVwtb2ZcLWl2b3J5Owor5biD5pyXIDwgZW5nbGlzaFwtc3VybmFtZVwsXC1icm93bjsKK+imgCA8IHZhcmlhbnRcLW9mXC1yYWRpY2FsXC0xNDY7CivopJ8gPCBpbm5lclwtc2hpcnRcLW9yXC1zaW5nbGV0Owor6KGtIDwgdGhlXC1sYXBlbFwtb2ZcLWFcLWdhcm1lbnQ7CivooaYgPCBzbW9vdGhcLW91dFwtdGhlXC1jbG90aGVzOwor5qiZ5rqWIDwgXChhblwtb2ZmaWNpYWxcKVwtc3RhbmRhcmQ7CivoqIrmga/lgrPpgZ7kuK3ku4sgPCBtZXNzYWdlXC10cmFuc2ZlclwtYWdlbnQ7Civlj6bnnLznm7jnnIsgPCB0b1wtdmlld1wtaW5cLWFcLW5ld1wtbGlnaHQ7CivolZUgPCBjYXJ5b3B0ZXJpc1wtZGl2YXJpY2F0YTsKK+iUryA8IGFcLXZhcmlldHlcLW9mXC1hcnRlbWlzaWE7CivokLQgPCBtZWRpY2luYWxcLXBvaXNvblwtcGxhbnQ7Civoj7YgPCBzcGVjaWVzXC1vZlwtd2F0ZXJcLXBsYW50Owor5L+h5oGv5oqA6KGTIDwgaW5mb3JtYXRpb25cLXRlY2hub2xvZ3k7CivohKQgPCByYXdcLW1lYXRcLWZvclwtc2FjcmlmaWNlOwor55m855eF546HIDwgaW5jaWRlbmNlXC1vZlwtYVwtZGlzZWFzZTsKK+iArCA8IGRyaWxsXC1mb3JcLXNvd2luZ1wtZ3JhaW47CivnlpHllY/lj6UgPCBpbnRlcnJvZ2F0aXZlXC1zZW50YW5jZTsKK+iAgiA8IHZhcmlhbnRcLW9mXC1yYWRpY2FsXC0xMjU7CivpgIDkvJEgPCByZXRpcmVtZW50XC1cKGZyb21cLXdvcmtcKTsKK+e5piA8IHN0cmluZ1wtb2ZcLWNvcHBlclwtY29pbnM7Civkvoblm57kvobljrvlnLAgPCBiYWNrd2FyZHNcLWFuZFwtZm9yd2FyZHM7CivlronlhajogIPmha4gPCBzZWN1cml0eVwtY29uc2lkZXJhdGlvbjsKK+e3hSA8IHNpbGtcLW9mXC1wdXJwbGlzaFwtY29sb3I7CivotqjpmYQgPCB0b1wtaW5ncmF0aWF0aW9uXC1vbnNlbGY7CivmraTkuIDmmYIgPCB0aGF0XC13YXNcLW9uZVwtc2l0dWF0aW9uOwor56+iIDwgdGhlXC1uYW1lXC1vZlwtYmFtYm9vXC1oYXQ7CivnrYbot6EgPCBhXC1wZXJzb24nJ3NcLWhhbmR3cml0aW5nOwor5L+h5oGv566h55CGIDwgaW5mb3JtYXRpb25cLW1hbmFnZW1lbnQ7Civnm6HlipsgPCBkb1wtb25lJydzXC1iZXN0XC1cKGVmZm9ydFwpOwor57ay57Wh5bGk5Y2U6K2wIDwgbmV0d29ya1wtbGF5ZXJcLXByb3RvY29sOwor562G6KiYIDwgdGFrZVwtZG93blwtXChpblwtd3JpdGluZ1wpOwor5LiN5aW95oO5IDwgbm90XC10b1wtYmVcLXRyaWZsZWRcLXdpdGg7CivopKXlrZAgPCBjb3R0b25cLXBhZGRlZFwtbWF0dHJlc3M7CivnmYogPCBhXC1kaXNlYXNlXC1vZlwtdGhlXC1oZWFydDsKK+eRsSA8IGFcLWdlbVwtdXNlZFwtYXNcLWVhclwtcGx1ZzsKK+i5pui5pui3s+i3syA8IGJvdW5jaW5nXC1hbmRcLXZpdmFjaW91czsKK+ePoyA8IG5hbWVcLW9mXC1hXC1raW5kXC1vZlwtamFkZTsKK+eOvCA8IGJlYXV0aWZ1bFwtY29sb3JcLW9mXC1nZW07CivnibcgPCBjb3dcLW9yXC1veFwtb2ZcLW9uZVwtY29sb3I7CivlhJjlv6sgPCBhc1wtcXVpY2tseVwtYXNcLXBvc3NpYmxlOwor6YCa5L+h5a+G5bqmIDwgY29tbXVuaWNhdGlvbnNcLWRlbnNpdHk7CivkuI3lvpflt7IgPCBhY3RcLWFnYWluc3RcLW9uZScnc1wtd2lsbDsKK+eEhCA8IHJpc2luZ1wtZmxhbWVzXC1vclwtZnVtZXM7Civng5YgPCBjYWxhbWl0aWVzXC1mcm9tXC1oZWF2ZW47CivmspLmnInlt67liKUgPCB0aGVyZVwtaXNcLW5vXC1kaWZmZXJlbmNlOwor5r+A5piCIDwgYXJvdXNlZFwtdG9cLWluZGlnbmF0aW9uOwor5LiN6KiA6ICM5Za7IDwgaXRcLWdvZXNcLXdpdGhvdXRcLXNheWluZzsKK+W3pealreWMluWci+WutiA8IGluZHVzdHJpYWxpemVkXC1jb3VudHJ5Owor5q2l6Kq/5LiA6Ie0IDwgdG9cLWJlXC11bml0ZWRcLWluXC1hY3Rpb247Civnq6XoqbEgPCBjaGlsZHJlbicnc1wtZmFpcnlcLXRhbGVzOwor5q6iIDwgYmVcLWluXC1ncmVhdFwtZGlmZmljdWx0eTsKK+ansSA8IGZpcmV3b29kXC1mb3JcLXNhY3JpZmljZTsKK+S4iuWNiuW5tCA8IGZpcnN0XC1oYWxmXC1cKG9mXC1hXC15ZWFyXCk7CivkuI3opoHoh4kgPCBoYXZlXC1ub1wtc2Vuc2VcLW9mXC1zaGFtZTsKK+iDjOWcsOmiqCA8IGJlaGluZFwtc29tZWJvZHknJ3NcLWJhY2s7CivnlKjmiLbliLDntrLntaHnmoTmjqXlj6MgPCB1c2VyXC1uZXR3b3JrXC1pbnRlcmZhY2U7CivmnI8gPCBsaWdodFwtb2ZcLWNyZXNjZW50XC1tb29uOwor5peQIDwgYW5cLWVtYnJvaWRlcmVkXC1wZW5uYW50Owor5pSZIDwgdG9cLWdpdmVcLWFcLWhlbHBpbmdcLWhhbmQ7Civmj5DkuqQgPCBzdWJtaXRcLVwoYVwtcmVwb3J0XCxcLWV0Y1wpOwor5pGwIDwgdG9cLXNlaXplXC13aXRoXC10aGVcLWhhbmQ7CivkvpvogbcgPCBob2xkXC1hblwtb2ZmaWNlXC1vclwtcG9zdDsKK+aRgCA8IHRvXC1jb3Zlclwtd2l0aFwtdGhlXC1oYW5kOwor5pC+IDwgdG9cLWNydXNoXC13aXRoXC10aGVcLWhhbmQ7Civkvoboh6ogPCB0b1wtY29tZVwtZnJvbVwtXChhXC1wbGFjZVwpOwor5a6a6KqeIDwgYXR0cmlidXRpdmVcLVwobW9kaWZpZXJcKTsKK+i/keW5tOS+hiA8IGZvclwtdGhlXC1wYXN0XC1mZXdcLXllYXJzOwor5oC5IDwgYVwtcG9saXRlXC12ZXJzaW9uXC1vZlwtaGU7CivmvILmtYEgPCBjYXJyaWVkXC1ieVwtdGhlXC1jdXJyZW50Owor5bqIIDwgdXNlZFwtaW5cLXBlcnNvbicnc1wtbmFtZXM7CivltbYgPCBsb3dcLXBhcnRcLW9mXC1hXC1tb3VudGFpbjsKK+WtkiA8IGxhcnZhZVwtb2ZcLXRoZVwtbW9zcXVpdG87Civmo4TmrIogPCB0b1wtYWJzdGFpblwtZnJvbVwtdm90aW5nOwor5o2P5ZCIIDwgdG9cLWFjdFwtYXNcLWFcLWdvXC1iZXR3ZWVuOwor5aOWIDwgb3Blblwtc3BhY2VcLWFsb25nXC13YXRlcjsKK+eUsuadvyA8IGRlY2tcLVwob2ZcLWFcLWJvYXRcLFwtZXRjXC5cKTsKK+WFtuiHqui6qyA8IG9uZScnc1wtb3duXC1cKHJlc3BlY3RpdmVcKTsKK+aVmee+qeWSjOiBlue0hCA8IGRvY3RyaW5lXC1hbmRcLWNvdmVuYW50czsKK+WZgCA8IHNwaXJ0XC1vdXRcLW9mXC10aGVcLW1vdXRoOwor5qKF5rS+IDwgdGhlXC1tZWlcLWxhbmZhbmdcLXNjaG9vbDsKK+eBq+eEsOWxsSA8IHRoZVwtbW91bnRhaW5cLW9mXC1mbGFtZXM7CivmtonpgY4gPCBmb3JkXC1cKGFcLXN0cmVhbVwsXC1yaXZlclwpOwor5Y+dIDwgdG9cLXJlc3BlY3RmdWxseVwtaW5mb3JtOwor5bel5L2c56uZIDwgXChjb21wdXRlclwpXC13b3Jrc3RhdGlvbjsKK+mrlOWFpyA8IGludGVybmFsXC1cKHRvXC10aGVcLWJvZHlcKTsKK+S8riA8IHRvXC1tYWtlXC1hXC1ncmVhdFwtZWZmb3J0Owor6YCa6KiK6YCa6YGTIDwgY29tbXVuaWNhdGlvbnNcLWNoYW5uZWw7CivktqUgPCB1bmV2ZW5seVwtZml0dGluZ1wtdGVldGg7CivktqQgPCBzb3VuZFwtb2ZcLWNoZXdpbmdcLWJvbmVzOwor5LaCIDwgYVwtc3F1aXJyZWxcLWxpa2VcLWFuaW1hbDsKK+SzriA8IHRvXC1sb29rXC1hdFwtaW5cLXN1cnByaXNlOwor5LKaIDwgYVwtc2Vjb25kXC1uYW1lXC1mb3JcLXNoYWQ7CivmjqHoqKroqJjogIUgPCBpbnZlc3RpZ2F0aXZlXC1yZXBvcnRlcjsKK+SwtSA8IGxvb2tzXC1saWtlXC1jb21tb25cLWNhcnA7CivksLAgPCBkcmVhcnlcLWNyaWVzXC1vZlwtZ2hvc3RzOwor5K66IDwgbHV4dXJpYW50XC1vZlwtdGhlXC1ncmFzczsKK+SuqiA8IHRvXC1nZWxkXC1hXC1ob3JzZVwtb3JcLWFzczsKK+SpvCA8IHN0aXRjaGVzXC1vblwtYVwtY292ZXJsZXQ7CivkqY0gPCB0b1wtbG9va1wtcGFsZVwtb3JcLXBhbGxpZDsKK+SotSA8IHJhaW5lZFwtZm9yXC1hXC1sb25nXC10aW1lOwor5KaIIDwgdG9cLXNpZ2hcLWluXC1sYW1lbnRhdGlvbjsKK+SlnyA8IGFcLW1ldGFsXC1tYXJraW5nXC1cLXN0YWtlOwor6ISK5qSOIDwgYmFja1wtXChvZlwtYVwtdmVydGlicmF0ZVwpOwor5Lyv54i2IDwgZmF0aGVyJydzXC1lbGRlclwtYnJvdGhlcjsKK+SijiA8IGluZGljYXRpbmdcLWV4Y2xhbWF0aW9uOwor5KG1IDwgZGVjb3JhdGlvblwtb25cLWNhcnJpYWdlOwor5KGwIDwgc3Ryb25nXC1hbmRcLWR1cmFibGVcLWh1YjsKK+ShrCA8IGNvdmVyaW5nXC1vZlwtYVwtY2FycmlhZ2U7CivkoYEgPCBub3RcLXdlbGxcLWZvcm1lZFwtZmlndXJlOwor5J+9IDwgc2NhdHRlcmVkXC1vclwtZGlzcGVyc2VkOwor5J6YIDwgdG9cLWdvXC1zdHJhaWdodFwtZm9yd2FyZDsKK+SdoiA8IGFuXC1hbmltYWxcLWluXC1vbGRcLXRpbWVzOwor5L+d5a6JIDwgZW5zdXJlXC1wdWJsaWNcLXNlY3VyaXR5Owor5J2TIDwgbG9uZ1wtYmVhcmRcLW9yXC13aGlza2VyczsKK+ScuiA8IGh1c2tpbmdcLWJlYW5zXC1mb3JcLWNha2U7CivknKEgPCB0b1wtc21lbGxcLXRoZVwtZnJhZ3JhbnRzOwor5JuZIDwgdG9cLXNtZWxsXC10aGVcLWZyYWdyYW5jZTsKK+SaniA8IHRoZVwtbWlkZGxlXC1vZlwtdGhlXC1ob3JuOwor5Y2w5q2Q5Lq6IDwgaW5kb1wtZXVyb3BlYW5cLVwocGVyc29uXCk7CivkmYQgPCBjbG90aGVzXC13aXRoXC10aGlja1wtaGVtOwor5Ji9IDwgY2xvdGhpbmdcLWFuZFwtb3JuYW1lbnRzOwor5JW0IDwgYVwtc2Vjb25kXC1mb3JcLW1vbmtzaG9vZDsKK+SUoCA8IHRoaW5cLXJvb3RcLW9mXC10aGVcLWxvdHVzOwor5I+pIDwgdG9cLXNocnVnXC10aGVcLXNob3VsZGVyczsKK+SNsSA8IHRoZVwtd2lsZFwtZ29hdFwtb3JcLXNoZWVwOwor5IuqIDwgZmluZVwtYW5kXC1kZWxpY2F0ZVwtc2lsazsKK+SKjyA8IG1peGluZ1wtcmljZVwtd2l0aFwtYnJvdGg7CivkiIQgPCBhXC1raW5kXC1vZlwtc29saWRcLWJhbWJvbzsKK+S4iui6qyA8IHVwcGVyXC1wYXJ0XC1vZlwtdGhlXC1ib2R5Owor5IejIDwgYmFtYm9vXC13aXRoXC13aGl0ZVwtYmFyazsKK+SEoCA8IHRvXC1zYWNyaWZpY2VcLXRvXC1oZWF2ZW47Civkg6cgPCBzb3VuZFwtb2ZcLWZhbGxpbmdcLXJvY2tzOwor5ICEIDwgY29udGFpbmVyXC1mdWxsXC1vZlwtZm9vZDsKK+O/iyA8IGFcLWtpbmRcLW9mXC1za2luXC1kaXNlYXNlOwor47yeIDwgamFyXC13aXRoXC1hXC1zbWFsbFwtbW91dGg7Civjup4gPCB0b1wtc2lnblwtaW5cLWxhbWVudGF0aW9uOwor5Z2m5YWL6LuKIDwgdGFua1wtXChhcm1vcmVkXC12ZWhpY2xlXCk7CivjuK8gPCBhXC1maW5lXC1icmVlZFwtb2ZcLWNhdHRsZTsKK+avlOi8g+iAjOiogCA8IGNvbXBhcmF0aXZlbHlcLXNwZWFraW5nOwor47WvIDwgc291bmRcLW9mXC13YXRlclwtZmxvd2luZzsKK+OzryA8IGdvZGRlc3NcLW9mXC1hblwtaW5rXC1zbGFiOwor47GGIDwgdG9cLXNtaWxlXC1hdFwtZWFjaFwtb3RoZXI7CivjsKggPCB0b1wtdGFrZVwtYnJlYXRoXC1vclwtcmVzdDsKK+OukSA8IHNvdW5kXC1vZlwtYnJva2VuXC1zdGlja3M7Civjra8gPCB0cmVlXC13aXRoXC1zbWFsbFwtbGVhdmVzOwor5a2X5q61IDwgXChudW1lcmljXCxcLWRhdGRhXClcLWZpZWxkOwor46uKIDwgZmx1dHRlcmluZ1wtb2ZcLXRoZVwtZmxhZzsKK+OqoyA8IGFcLXBsYWNlXC1pblwtaGFuXC1keW5hc3R5Owor46qfIDwgdG9cLXJlZ2FyZFwtYXNcLWltcG9ydGFudDsKK+OqniA8IHRvXC1iZVwtaGVsZFwtYnlcLXRoZVwtaGFuZDsKK+OpuiA8IGFcLWNyYWNrXC1vblwtdGhlXC11dGVuc2lsOwor46mcIDwgdG9cLWJlXC1pblwtcG9zc2Vzc2lvblwtb2Y7CivjqY4gPCB0b1wtcHJlc3NcLXdpdGhcLWFcLWZpbmdlcjsKK+OntiA8IHRoZVwtamluZ2xpbmdcLW9mXC1tZXRhbHM7Civjp5kgPCB0b1wtZ2l2ZVwtYVwtcGxheWZ1bFwtYmxvdzsKK+OngyA8IHRvXC1yZWNlaXZlXC13aGF0XC1pc1wtZHVlOwor46ajIDwgdG9cLXRhbGtcLWluXC1vbmUnJ3NcLXNsZWVwOwor46aEIDwgaGFyZFwtdG9cLXNheVwtb3JcLXByZWRpY3Q7CivjpIogPCBjaGVlcmZ1bFwtYW5kXC1leHViZXJhbnQ7CivkuKboiIkgPCBkZXZlbG9wXC1zaW11bHRhbmVvdXNseTsKK+OiiSA8IGFcLXJvb21cLXdpdGhcLW9wZW5cLXNwYWNlOwor5LiA6JmfIDwgZmlyc3RcLWRheVwtb2ZcLXRoZVwtbW9udGg7CivjoJQgPCBzaGFwZXNcLW9mXC10aGVcLW1vdW50YWluOwor45+7IDwgdGhlXC1tb2F0XC1hcm91bmRcLWFcLWNpdHk7Civpm6LplovmlYXphIkgPCB0b1wtbGVhdmVcLW9uZScnXC1ob21lbGFuZDsKK+ObsyA8IGFuXC1hYm5vbWFsXC11bmJvcm5cLWJhYnk7CivjmrcgPCB0aGVcLWJyZWFzdHNcLW9mXC1hXC13b21hbjsKK+OZsyA8IHJ1Z2dlZG5lc3NcLW9mXC10aGVcLXJvYWQ7CivjmaQgPCBhXC1jcmFja1wtaW5cLWVhcnRoZW53YXJlOwor45mYIDwgdXNlZFwtaW5cLW5hbWluZ1wtYVwtcGxhY2U7Civjl4IgPCB0b1wta2VlcFwtdGhlXC1tb3V0aFwtc2h1dDsKK+OWkCA8IHNvdW5kXC1vZlwtY2FsbGluZ1wtZHVja3M7CivjlLQgPCBhZ3JpY3VsdHVyYWxcLWltcGxlbWVudDsKK+OTuSA8IGFcLXNoYXJwXC1wb2ludGVkXC13ZWFwb247Civjk6YgPCB0b1wtZGVsaWJlcmF0ZVwtYW5kXC1wbGFuOwor45OYIDwgamFkZVwtd2l0aFwtc29tZVwtZGVmZWN0czsKK+S4jeWDj+aooyA8IGluXC1ub1wtc2hhcGVcLXRvXC1iZVwtc2VlbjsKK+WvqeWIpCA8IHB1dFwtXChzb21lb25lXClcLXRvXC10cmlhbDsKK+WQkOiVgyA8IGFuY2llbnRcLW5hbWVcLWZvclwtdGliZXQ7CivmuKzlrpogPCB0b1wtc3VydmV5XC1hbmRcLWV2YWx1YXRlOwor5rOw576FIDwgXChlbmdsaXNoXC1zdXJuYW1lXClcLXR5bG87CivlkJ7ogbIgPCB0b1wtc3dhbGxvd1wtb25lJydzXC1jcmllczsKK+iuiuWIhuazlSA8IGNhbGN1bHVzXC1vZlwtdmFyaWF0aW9uczsKK+iyoeacgyA8IGZpbmFuY2VcLWFuZFwtYWNjb3VudGluZzsKK+mAmuS/oee2sue1oSA8IGNvbW11bmljYXRpb25zXC1uZXR3b3JrOwor5Lqk5piTIDwgXChidXNpbmVzc1wpXC10cmFuc2FjdGlvbjsKK+ilv+mBiuiomCA8IHBpbGdyaW1hZ2VcLXRvXC10aGVcLXdlc3Q7CivmlbjlrZfpgJrkv6EgPCBkaWdpdGFsXC1jb21tdW5pY2F0aW9uczsKK+ePvuW9uSA8IFwobWlsaXRhcnlcKVwtYWN0aXZlXC1kdXR5Owor5YWx55Si6buo5ZOhIDwgY29tbXVuaXN0XC1wYXJ0eVwtbWVtYmVyOwor5rCR6YG4IDwgZGVtb2NyYXRpY2FsbHlcLWVsZWN0ZWQ7Civmtbfmi5QgPCBoZWlnaHRcLWFib3ZlXC1zZWFcLWxldmVsOwor57ay6Lev5p625qeLIDwgbmV0d29ya1wtaW5mcmFzdHJ1Y3R1cmU7Civnp5HmioAgPCBzY2llbmNlXC1hbmRcLXRlY2hub2xvZ3k7Civku7vlhY0gPCB0b1wtYXBwb2ludFwtYW5kXC1kaXNtaXNzOwor55Wi5qWt55SfIDwgZ3JhZHVhdGVcLVwob2ZcLWFcLXNjaG9vbFwpOwor5LqC5a+rIDwgdG9cLXdyaXRlXC13aXRob3V0XC1iYXNpczsKK+mbtumMoiA8IGNoYW5nZVwtXChzYWlkXC1vZlwtbW9uZXlcKTsKK+S4jeacjSA8IG5vdFwtYWNjZXB0XC1cKHNvbWV0aGluZ1wpOwor6by75YWSIDwgYVwtaG9sZVwtaW5cLWFuXC1pbXBsZW1lbnQ7CivmhJ/lmIYgPCB0b1wtc2lnaFwtXCh3aXRoXC1mZWVsaW5nXCk7CivljJboo50gPCBcKG9mXC1hY3RvcnNcKVwtdG9cLW1ha2VcLXVwOwor5LqR5Y2XIDwgeXVubmFuXC1wcm92aW5jZVwsXC1jaGluYTsKK+acjeWujCA8IHNlcnZlXC1vdXRcLVwoYVwtc2VudGVuY2VcKTsKK+m7g+WxsSA8IG10XC5cLWh1YW5nXC1cKGh1YW5nXC1zaGFuXCk7Civlj6Tms6IgPCBndWJvXC1cKGFcLXBlcnNvbmFsXC1uYW1lXCk7CivnjJzmi7MgPCBhXC1maW5nZXJcLWd1ZXNzaW5nXC1nYW1lOwor576O5ZyL5LmL6Z+zIDwgdm9pY2VcLW9mXC1hbWVyaWNhXC1yYWRpbzsKK+iDjOm7kemNiyA8IHRvXC1iZVwtbWFkZVwtYVwtc2NhcGVnb2F0Owor5Yqp6KmeIDwgcGFydGljbGVcLVwoZ3JhbW1hdGljYWxcKTsKK+mdiOaVj+W6piA8IFwobGV2ZWxcLW9mXClcLXNlbnNpdGl2aXR5Owor5qiZ5rqW57WE57mUIDwgc3RhbmRhcmRzXC1vcmdhbml6YXRpb247CivnjajmlKzluILloLQgPCB0b1wtbW9ub3BvbGl6ZVwtYVwtbWFya2V0Owor6KeJIDwgdG9cLXdha2VcLXVwXC1mcm9tXC1zbGVlcDsKK+eSsCA8IGphZGVcLXJpbmdcLW9yXC1icmFjZWxldDsKK+WIkiA8IHRvXC1yb3dcLW9yXC1wYWRkbGVcLWJvYXQ7CivloKogPCBhZGVxdWF0ZWx5XC1jYXBhYmxlXC1vZjsKK+WQtCA8IG5hbWVcLW9mXC13YXJyaW5nXC1zdGF0ZTsKK+mztCA8IGNyeVwtb2ZcLWJpcmRcLW9yXC1hbmltYWw7CivlkYkgPCBvbmVcLW9mXC13YXJyaW5nXC1zdGF0ZXM7CivpprMgPCBnb1wtcXVpY2tseVwtb3JcLXN3aWZ0bHk7Civmpo4gPCBzbWFsbFwtZXZlcmdyZWVuXC1zaHJ1YjsKK+WnuyA8IHJlbGF0aXZlc1wtYnlcLW1hcnJpYWdlOwor562SIDwgdGhpY2tcLXBpZWNlXC1vZlwtYmFtYm9vOwor5biYIDwgZmxhZ1wtc2lnblwtb2ZcLWFcLXRhdmVybjsKK+eouyA8IHJpY2VcLWdyb3dpbmdcLWluXC1maWVsZDsKK+emsCA8IG9uZScnc1wtZGVjZWFzZWRcLWZhdGhlcjsKK+WJgiA8IG1lZGljaW5hbFwtcHJlcGFyYXRpb247Civnj4IgPCBpbmZlcmlvclwta2luZFwtb2ZcLWphZGU7CivlmJ8gPCBzb3VuZFwtb2ZcLWhvcm5cLXRvb3Rpbmc7CivnkZwgPCBmbGF3bGVzc1wtZ2VtXC1vclwtamV3ZWw7Civnj5EgPCBhXC1nZW1cLWN1dFwtbGlrZVwtZHJhZ29uOwor6K+sIDwgbWFrZVwtZmFsc2VcLWFjY3VzYXRpb247Civlq5YgPCBwYXRyb25pemVcLXByb3N0aXR1dGVzOwor6aOSIDwgdGhlXC1zb3VuZFwtb2ZcLXRoZVwtd2luZDsKK+mUoiA8IHJ1blwtbWV0YWxcLWludG9cLWNyYWNrczsKK+aOliA8IHN1cHBvcnRcLXdpdGhcLXRoZVwtYXJtczsKK+ajoyA8IGtlcnJpYVwtamFwb25pY2FcLXBsYW50Owor6I+BIDwgZmxvd2VyXC1vZlwtbGVla1wtZmFtaWx5Owor5ZKpIDwgdGhlXC1ibGVhdGluZ1wtb2ZcLXNoZWVwOwor54+JIDwgc3RvbmVcLXJlc2VtYmxpbmdcLWphZGU7Civpko4gPCB0b29sXC1mb3JcLWJvcmluZ1wtaG9sZXM7Civmip8gPCByb2xsXC1hcm91bmRcLXdpdGhcLWhhbmQ7CivotrggPCBzZWxsXC1vclwtYnV5XC13aG9sZXNhbGU7CivlpqMgPCBvbmUnJ3NcLWRlY2Vhc2VkXC1tb3RoZXI7CivltYogPCBkaXN0cmljdFwtaW5cLXNoYW9oc2luZzsKK+esuCA8IGZsYXRcLWJhc2tldFwtZm9yXC1ncmFpbjsKK+iCqyA8IHRoZVwtZ2l6emFyZFwtb2ZcLWFcLWZvd2w7Civoi6sgPCBydXNoXC1vclwtc3RyYXdcLW1hdHRpbmc7Civls6QgPCBoaWdoXC1wb2ludGVkXC1tb3VudGFpbjsKK+enrSA8IG9uZVwtdGhvdXNhbmRcLW1pbGxpb25zOwor5aeSIDwgd2lmZVwtb2ZcLWVsZGVyXC1icm90aGVyOwor6JOwIDwgdG9cLWluY3JlYXNlXC1maXZlXC1mb2xkOwor6JKMIDwgYXJ0ZW1pc2lhXC1zdGVsbGVyaWFuYTsKK+mFgyA8IHRoZVwtc3Bpcml0XC1vZlwtYVwtYmVpbmc7Civns5cgPCBwYXJjaGVkXC13aGVhdFwtb3JcLXJpY2U7CivovosgPCBleHRlcmlvclwtcmltXC1vZlwtd2hlZWw7Civpq6sgPCBjaGlsZHJlbicnc1wtaGFpclwtc3R5bGU7CivombogPCBsYXJnZVwtcG9pc29ub3VzXC1zbmFrZTsKK+mGtSA8IGNvbnRyaWJ1dGVcLWZvclwtZHJpbmtzOwor6JqsIDwgYVwtdmFyaWV0eVwtb2ZcLWJpdmFsdmVzOwor6KO8IDwgdG9cLXRha2VcLW9mZlwtb25lJydzXC10b3A7CivnnLUgPCBleWVzXC1kaXNlYXNlZFwtYW5kXC1kaW07CivmnrUgPCBob2xsb1wtc3R1bXBcLW9mXC1hXC10cmVlOwor6JipIDwgYXJ0ZW1pc2lhXC1zdGVsbGFyaWFuYTsKK+iuk+WdkCA8IHRvXC1naXZlXC11cFwtb25lJydzXC1zZWF0Owor5b2s5b2s5pyJ56auIDwgcmVmaW5lZFwtYW5kXC1jb3VydGVvdXM7CivntrLntaHnrqHnkIblk6EgPCBuZXR3b3JrXC1hZG1pbmlzdHJhdG9yOwor5rK55YO5IDwgb2lsXC1cKHBldHJvbGV1bVwpXC1wcmljZTsKK+i7n+ehrOS7tiA8IHNvZnR3YXJlXC1hbmRcLWhhcmR3YXJlOwor5beo6aGNIDwgYVwtaHVnZVwtc3VtXC1cKG9mXC1tb25leVwpOwor5aWU5pS+IDwgYm9sZFwtYW5kXC11bnJlc3RyYWluZWQ7CivlvpfmhI8gPCBcKGJlXClcLXByb3VkXC1vZlwtb25lc2VsZjsKK+WujOWFqOWFvOWuuSA8IGNvbXBsZXRlbHlcLWNvbXBhdGlibGU7CivnhrHploDosqggPCBnb29kc1wtaW5cLWdyZWF0XC1kZW1hbmQ7CivpgJrkv6Hph48gPCBjb21tdW5pY2F0aW9uc1wtdm9sdW1lOwor5aWU5b+ZIDwgYmVcLWJ1c3lcLXJ1c2hpbmdcLWFib3V0Owor6KeA5ris6KGb5pifIDwgb2JzZXJ2YXRpb25cLXNhdGVsbGl0ZTsKK+WJm+ebtCA8IHVwcmlnaHRcLWFuZFwtb3V0c3Bva2VuOwor5beh6YKPIDwgYmVcLW9uXC1cKHBvbGljZVwpXC1wYXRyb2w7CivnpZ3os4DoqZ4gPCBjb25ncmF0dWxhdG9yeVwtc3BlZWNoOwor6Zu76IWm6LyU5Yqp6Kit6KiIIDwgY29tcHV0ZXJcLWFpZGVkXC1kZXNpZ247CivpmY3npo8gPCBibGVzc2luZ3NcLWZyb21cLWhlYXZlbjsKK+eCuOiXpSA8IGV4cGxvc2l2ZVwtXChzdWJzdGFuY2VcKTsKK+W5vuWNgeW5tCA8IHNldmVyYWxcLXRlbnNcLW9mXC15ZWFyczsKK+WkouaDsyA8IHRvXC1kcmVhbVwtb2ZcLVwoaW5cLXZhaW5cKTsKK+mYsuepuiA8IGFudGlcLWFpcmNyYWZ0XC1kZWZlbnNlOwor5LiJ6JCs5LiD5Y2DIDwgdGhpcnR5XC1zZXZlblwtdGhvdXNhbmQ7CivlhYjpgLIgPCBhZHZhbmNlZFwtXCh0ZWNobm9sb2d5XCk7CivlpKfotablnIvpmpsgPCBhbW5lc3R5XC1pbnRlcm5hdGlvbmFsOwor5oOF5aCx5a6Y5ZOhIDwgaW50ZWxsaWdlbmNlXC1vZmZpY2lhbDsKK+WllOWRvSA8IHJ1c2hcLWFib3V0XC1vblwtZXJyYW5kczsKK+avlOaWueiqqiA8IHRvXC1tYWtlXC1hblwtYW5hbG9neVwuXC5cLjsKK+mbu+ejgeWZquiBsiA8IGVsZWN0cm9tYWduZXRpY1wtbm9pc2U7CivplbfpgJTntrLot68gPCBsb25nXC1kaXN0YW5jZVwtbmV0d29yazsKK+iKneWKoOWTpeWkp+WtuCA8IHVuaXZlcnNpdHlcLW9mXC1jaGljYWdvOwor6Kej5rG6IDwgdG9cLXNldHRsZVwtXChhXC1kaXNwdXRlXCk7CivpvIMgPCB0aGVcLWVkaWJsZVwtd2F0ZXJcLWZyb2c7CivpuqXoir3ns5YgPCBtYWx0b3NlXC1cKHN3ZWV0XC1zeXJ1cFwpOwor6beAIDwgdGhlXC1maXNoaW5nXC1jb3Jtb3JhbnQ7Civnvo7oga/npL4gPCBhc3NvY2lhdGVkXC1wcmVzc1wtXChhcFwpOwor6bSgIDwgYVwta2luZFwtb2ZcLW5pZ2h0aW5nYWxlOwor6Ziy5rK7IDwgXChwcmV2ZW50aW9uXC1hbmRcKVwtY3VyZTsKK+mwpCA8IHNlcmlvbGFcLXFpbnF1ZXJhZGlhdGE7Civmr5ToibLliIbmnpAgPCBjb2xvcmltZXRyaWNcLWFuYWx5c2lzOwor6a+EIDwgbGVwaWRvdHJpZ2xhXC1zdHJhdWNoaTsKK+mriCA8IGRlZmluZWRcLWFzXC10aGVcLXBlbHZpczsKK+aOqOiWpuS/oSA8IHJlY29tbWVuZGF0aW9uXC1sZXR0ZXI7CivluqvniL7lvrfkurogPCBrdXJkaXNoXC1wZXJzb25cfHBlb3BsZTsKK+W+rui7n+WFrOWPuCA8IG1pY3Jvc29mdFwtY29ycG9yYXRpb247CivliIbmqZ8gPCBcKHRlbGVwaG9uZVwpXC1leHRlbnNpb247CivporggPCBjb29sXC1icmVlemVcLW9mXC1hdXR1bW47CivnnL7mnJsgPCBwZW9wbGUnJ3NcLWV4cGVjdGF0aW9uczsKK+S4jeitmOaKrOiIiSA8IGZhaWxcLXRvXC1hcHByZWNpYXRlXC1zYjsKK+eZveezliA8IFwocmVmaW5lZFwpXC13aGl0ZVwtc3VnYXI7Civmk4HmiLQgPCB0b1wtc3VwcG9ydFwtXChhXC1wZXJzb25cKTsKK+W4reWNt+S6nua0siA8IHRvXC1zd2VlcFwtdGhyb3VnaFwtYXNpYTsKK+ihqOmBlCA8IHRvXC12b2ljZVwtXChhblwtb3BpbmlvblwpOwor5bm+5aSp5L6GIDwgZm9yXC10aGVcLXBhc3RcLWZld1wtZGF5czsKK+WgseaZgiA8IGdpdmVcLXRoZVwtY29ycmVjdFwtdGltZTsKK+maqOWSjCA8IGFtaWFibGVcLVwoZGlzcG9zaXRpb25cKTsKK+S9nOalreeSsOWigyA8IG9wZXJhdGluZ1wtZW52aXJvbm1lbnQ7CivphY4gPCBkb3VibGVcLWZlcm1lbnRlZFwtd2luZTsKK+WHveaOiCA8IGNvcnJlc3BvbmRlbmNlXC1jb3Vyc2U7Civov7fmiIAgPCB0b1wtYmVcLWluZmF0dWF0ZWRcLXdpdGg7CivpmbjmtbfnqbrkuInou40gPCBhcm15XCxcLW5hdnlcLFwtYWlyXC1mb3JjZTsKK+aKleS6huelqCA8IHBhc3RcLXRlbnNlXC1vZlwtdG9cLXZvdGU7Civogq/lsLzov6ogPCBrZW5uZWR5XC1cKHByb3BlclwtbmFtZVwpOwor5ouX6Zm3IDwgZ2VvbG9naWNhbFwtZGVwcmVzc2lvbjsKK+WFjeeWqyA8IGltbXVuaXR5XC1cKHRvXC1kaXNlYXNlXCk7CivlhaznhLYgPCBcKGRvXC1zb21ldGhpbmdcKVwtb3Blbmx5Owor5pm65oWn55Si5qyKIDwgaW50ZWxsZWN0dWFsXC1wcm9wZXJ0eTsKK+iwuiA8IHRoZVwtbW91dGhcLW9mXC1hXC12YWxsZXk7CivloIXmjIEgPCB0b1wtY29udGludWVcLXVwaG9sZGluZzsKK+WHuuW3riA8IGJlXC1vblwtYVwtYnVzaW5lc3NcLXRyaXA7CivooLggPCBhdWxhY29waG9yYVwtZmVtb3JhbGlzOwor5ry46YCyIDwgcHJvZ3Jlc3NcLXN0ZXBcLWJ5XC1zdGVwOwor6Jy6IDwgcmVmbGVjdGlvblwtb2ZcLXJhaW5ib3c7CivmnKzlnJ/ljJbou5/ku7YgPCBzb2Z0d2FyZVwtbG9jYWxpemF0aW9uOwor6JiYIDwgYVwta2luZFwtb2ZcLXdpbGRcLWdpbmdlcjsKK+mZkOWItiA8IFwoaW1wb3NlXClcLXJlc3RyaWN0aW9uczsKK+iVmiA8IHRoZVwtY2FseXhcLW9mXC1hXC1mbG93ZXI7Civkv53orbfljYAgPCBjb25zZXJ2YXRpb25cLWRpc3RyaWN0Owor6JG5IDwga2luZFwtb2ZcLWNocnlzYW50aGVtdW07CivokLsgPCBzbWFsbFwtYnVkZGhpc3RcLXRlbXBsZTsKK+W5tOWInSA8IGJlZ2lubmluZ1wtb2ZcLXRoZVwteWVhcjsKK+iImiA8IHRvXC1wdXRcLW91dFwtdGhlXC10b25ndWU7Civlpaflvrfos70gPCB0aGVcLW9keXNzZXlcLFwtYnlcLWhvbWVyOwor6auY57Sa5a6Y5ZOhIDwgaGlnaFwtcmFua2luZ1wtb2ZmaWNpYWw7CivljYrlpJzkuInmm7QgPCBpblwtdGhlXC1kZXB0aFwtb2ZcLW5pZ2h0Owor562G6YyEIDwgcHV0XC1kb3duXC1cKGluXC13cml0aW5nXCk7CivmjInohIggPCBmZWVsXC1cKHRha2VcKVwtdGhlXC1wdWxzZTsKK+e5tCA8IGFcLWtpbmRcLW9mXC1maXNoaW5nXC1uZXQ7Civnq7wgPCBiYW1ib29cLWNvdmVyXC1mb3JcLWJvYXQ7Civlj5bmtojnpoHku6QgPCB0b1wtbGlmZVwtYVwtcHJvaGliaXRpb247CivnpqggPCBwcmF5XC1mb3JcLWdvb2RcLWZvcnR1bmU7Civmi5vogZggPCB0YWtlXC1qb2JcLWFwcGxpY2F0aW9uczsKK+i2iuWNl+iqniA8IHZpZXRuYW1lc2VcLVwobGFuZ3VhZ2VcKTsKK+eZpSA8IG9ic3RydWN0aW9uXC1vZlwtYm93ZWxzOwor55ePIDwgYVwtYnJ1aXNlXC1vclwtY29udHVzaW9uOwor5oyB5LiN5ZCM5pS/6KaL6ICFIDwgXChwb2xpdGljYWxcKVwtZGlzc2lkZW50Owor5YWJ5beeIDwga3dhbmdqdVwtXChzb3V0aFwta29yZWFcKTsKK+Wvpumam+aHieeUqCA8IHByYWN0aWNhbFwtYXBwbGljYXRpb247CivnkqEgPCBqYWRlXC1sb29rXC1hbGlrZVwtc3RvbmU7Civlt6XllYYgPCBpbmR1c3RyeVwtYW5kXC1jb21tZXJjZTsKK+a+s+a0siA8IGF1c3RyYWxpYVwtXChjb250aW5lbnRcKTsKK+eUn+eUouiDveWKmyA8IG1hbnVmYWN0dXJpbmdcLWFiaWxpdHk7CivnuL3ntbHpgbjoiIkgPCBwcmVzaWRlbnRpYWxcLWVsZWN0aW9uOwor55qu5YWSIDwgXChkb3VnaFwsXC1ldGNcLlwpd3JhcHBlcnM7CivmvoIgPCBjbGVhclwtYW5kXC1zdGlsbFwtd2F0ZXI7CivnlJjogoUgPCBnYW5zdVwtcHJvdmluY2VcLFwtY2hpbmE7CivkuI3mk4fmiYvmrrUgPCBieVwtZmFpclwtbWVhbnNcLW9yXC1mb3VsOwor5recIDwgcm9hclwtb2ZcLWRhc2hpbmdcLXdhdmVzOwor5rKHIDwgZmxvd2luZ1wtYW5kXC1lbmd1bGZpbmc7CivlronplpIgPCBwZWFjZWZ1bFwtYW5kXC1jYXJlZnJlZTsKK+iJseW3qCA8IHZlcnlcLWRpZmZpY3VsdFwtXCh0YXNrXCk7CivooLvmqasgPCBydWRlXC1hbmRcLXVucmVhc29uYWJsZTsKK+ewveWtlyA8IHRvXC1zaWduXC1cKGFcLXNpZ25hdHVyZVwpOwor5pqOIDwgc3VuXC1iZWdpbm5pbmdcLWRlY2xpbmU7CivlronpgakgPCBxdWlldFwtYW5kXC1jb21mb3J0YWJsZTsKK+Wci+mam+aomea6liA8IGludGVybnRpb25hbFwtc3RhbmRhcmQ7Civph5HpmbXlpKflrbggPCB1bml2ZXJzaXR5XC1vZlwtbmFua2luZzsKK+eVsOizque2sui3ryA8IGhldGVyb2dlbmVvdXNcLW5ldHdvcms7Civnmb3miYvotbflrrYgPCBidWlsZFwtdXBcLWZyb21cLW5vdGhpbmc7CivltbwgPCB3aW5kaW5nXC1tb3VudGFpblwtcGF0aDsKK+iRoeiQhOeJmeiqniA8IHBvcnR1Z3Vlc2VcLVwobGFuZ3VhZ2VcKTsKK+a4rOiJryA8IHRvXC1zdXJ2ZXlcLWFuZFwtbWVhc3VyZTsKK+izh+aWmeWCs+mAgeacjeWLmSA8IGRhdGFcLWRlbGl2ZXJ5XC1zZXJ2aWNlOwor54+t6LuKIDwgcmVndWxhclwtYnVzXC1cKHNlcnZpY2VcKTsKK+WftSA8IGhhcmRlbmVkXC1kaXJ0XC1vclwtY2xheTsKK+WXuyA8IHRvXC1zY3JlZW5cLlwtbG9xdWFjaW91czsKK+ahiOeUsSA8IG1haW5cLXBvaW50c1wtb2ZcLWFcLWNhc2U7CivosrborKsgPCBiYW5pc2hcLWZyb21cLXRoZVwtY291cnQ7Civpu4PprZogPCB5ZWxsb3dcLWNyb2FrZXJcLVwoZmlzaFwpOwor6Lqr5LiWIDwgb25lJydzXC1saWZlXC1leHBlcmllbmNlOwor5oqx5oGoIDwgaGF2ZVwtYVwtZ25hd2luZ1wtcmVncmV0Owor5YyfIDwgZGl2YW5cLWZvclwtdHdvXC1wZXJzb25zOwor5Ym+IDwgdG9cLXBpY2tcLXVwXC13aXRoXC1rbmlmZTsKK+Wbm+W5tOWJjSA8IGZvdXJcLXllYXJzXC1wcmV2aW91c2x5Owor6Ieq5Y+kIDwgXChzaW5jZVwpXC1hbmNpZW50XC10aW1lczsKK+S1lyA8IHRvXC1jbGVhblwtdGhlXC13aXRoZXJlZDsKK+S1hCA8IHRvXC1ib2lsXC1vclwtc3Rld1wtd2hlYXQ7Civks7kgPCBhXC1raW5kXC1kb3ZlXC1saWtlXC1iaXJkOwor5LOdIDwgYVwta2luZFwtb2ZcLXNtYWxsXC1iaXJkczsKK+SxnyA8IGFcLWtpbmRcLW9mXC1zaWx2ZXJcLWZpc2g7Civku4vos6roqKrllY/mjqfliLYgPCBtZWRpdW1cLWFjY2Vzc1wtY29udHJvbDsKK+SvryA8IGhhbmdcLWRvd25cLW9mXC10aGVcLWhhaXI7Civkr60gPCBvZlwtbmljZVwtYW5kXC1nb29kXC1oYWlyOwor5K6EIDwgYW5cLW9uZVwteWVhclwtb2xkXC1ob3JzZTsKK+eshuaWlyA8IHJvdW5kXC1ib3R0b21lZFwtYmFza2V0Owor5LiA6IeC5LmL5YqbIDwgXChsZW5kXClcLWFcLWhlbHBpbmdcLWhhbmQ7CivkqqUgPCBzaGFsbG90c1wtb3JcLXNjYWxsaW9uczsKK+SpqSA8IGFcLW1lYXN1cmVcLW9mXC1jYXBhY2l0eTsKK+SmvSA8IGFuXC1lYXN0XC1hbmRcLXdlc3RcLXdhbGw7Civoo73pgKDllYYgPCBtYW51ZmFjdHVyaW5nXC1jb21wYW55Owor5KaaIDwgd2lkZVwtb3Blblwtb2ZcLXRoZVwtZG9vcjsKK+SmjCA8IHRoZVwtZG9vclwtaXNcLXdpZGVcLW9wZW47CivkuozomZ8gPCAyXC1uZFwtZGF5XC1vZlwtdGhlXC1tb250aDsKK+SliCA8IHRoZVwtc3ltYm9sXC1mb3JcLWNvYmFsdDsKK+S4jeWAq+S4jemhniA8IG5laXRoZXJcLWZpc2hcLW5vclwtZm93bDsKK+SklyA8IHRhc3RlXC1vZlwtc3Ryb25nXC1kcmluazsKK+SiqSA8IHRvXC1mb3JiaWRcLXRvXC1wcm9oaWJpdDsKK+ShtiA8IHZlaGljbGVzXC1hbmRcLWdhcm1lbnRzOwor5J6aIDwgdG9cLWhhbmdcLW9uXC1hXC1iaWdcLXRyZWU7CivknZYgPCByZXB0aWxlc1wtd2l0aG91dFwtZmVldDsKK+SbsSA8IHRvXC10YWxrXC11bnJlbWl0dGluZ2x5Owor5JuKIDwgY2hlZXJmdWxcLWFsbFwtdGhlXC10aW1lOwor5JuDIDwgdXNlZFwtaW5cLXBlcnNvbicnc1wtbmFtZTsKK+SYkCA8IHRoZVwtYmxlZWRcLWF0XC10aGVcLW5vc2U7Civkl4kgPCBhXC1zbWFsbFwtc29saXRhcnlcLXdhc3A7Civln7rmnKzljp/nkIYgPCBmdW5kYW1lbnRhbFwtcHJpbmNpcGxlOwor5JaUIDwgYVwta2luZFwtb2ZcLXdoaXRlXC10aWdlcjsKK+SWjSA8IHRvXC1hY3RcLXdpdGhcLXJldmVyZW5jZTsKK+SUtSA8IGZyYWdyYW50XC10aG9yb3VnaHdvcnQ7CivosqHntpMgPCBmaW5hbmNlXC1hbmRcLWVjb25vbWljczsKK+SUiiA8IGRlbnNlXC1ncm93dGhcLW9mXC1ncmFzczsKK+STkiA8IHNjaXJwdXNcLWN5cGVyaW51c1wtdmFyOwor5pKr6aSK5oiQ5Lq6IDwgdG9cLWJyaW5nXC11cFwtXChhXC1jaGlsZFwpOwor5JKmIDwgZ3Jhc3NcLWZsb2F0c1wtb25cLXdhdGVyOwor5JKEIDwgZnVsbHlcLWxhZGVuXC1vZlwtYVwtYm9hdDsKK+SRnSA8IGFcLXNtYWxsXC1jdXBcLXdpdGhcLWVhcnM7Civkj6QgPCB0b3BcLW9mXC10aGVcLWh1bWFuXC1oZWFkOwor5Li76KqeIDwgXChncmFtbWF0aWNhbFwpXC1zdWJqZWN0Owor5I62IDwgb2ZmZXJpbmdcLWJsb29kXC10b1wtZ29kOwor6YCa5L+h5pyN5YuZIDwgY29tbXVuaWNhdGlvblwtc2VydmljZTsKK+SOmiA8IHRoZVwtZW5kXC1vZlwtYmlyZFwtd2luZ3M7CivkjpYgPCBzb2FyaW5nXC11cFwtaW5cLXRoZVwtc2t5Owor5IynIDwgYVwta2luZFwtb2ZcLXNpbGtcLWZhYnJpYzsKK+SMnyA8IHRvXC13ZWF2ZVwtc2lsa1wtcmliYm9uczsKK+WYluWYliA8IHRvXC1jbGlja1wtb25lJydzXC10b25ndWU7Civki4IgPCBkcmVzc2VzXC1mb3JcLXRoZVwtYnJpZGU7CivkiKcgPCBza2luXC1vZlwtYmFtYm9vXC1zaG9vdHM7CivkiJ4gPCBhbmNpZW50XC1uYW1lXC1vZlwtaW5kaWE7Civkh74gPCBhXC1mbHV0ZVwtd2l0aFwtMjNcLXR1YmVzOwor5IewIDwgYVwtYmFtYm9vXC1iaW5kZWRcLXRvcmNoOwor5IehIDwgdGhlXC1zaHV0dGxlXC1vZlwtYVwtbG9vbTsKK+SGoCA8IGFcLWdvdmVybm1lbnRcLW9mZmljaWFsOwor5IabIDwgc29tZXRoaW5nXC1pblwtdGhlXC1jYXZlOwor6by756WWIDwgdGhlXC1lYXJsaWVzdFwtYW5jZXN0b3I7CivkhZcgPCBmb3VyXC1idW5kbGVcLW9mXC1ncmFpbnM7Civlj43pnanlkb0gPCBjb3VudGVyXC1yZXZvbHV0aW9uYXJ5Owor5IGtIDwgdG9cLWdpdmVcLWFuXC1hbmdyeVwtbG9vazsKK+SBmiA8IGFcLWtpbmRcLW9mXC1leWVcLWRpc2Vhc2U7CivkgL0gPCB0b1wtbG9va1wtYXRcLWVhY2hcLW90aGVyOwor5ICgIDwgYVwtY2hpbmVzZVwtZmFtaWx5XC1uYW1lOwor5ICTIDwgdG9cLXR1cm5cLW9uZScnc1wtZXllc1wtdG87Civjv7QgPCB3aWRlXC1waWVjZVwtb2ZcLWxlYXRoZXI7Civjv6sgPCB0b1wtc3BsaXRcLXRhbmdsZWRcLWhlbXA7Civjv48gPCBwYXJhbHlzaXNcLW9mXC10aGVcLWJvZHk7Civjvr4gPCBkaXNlYXNlXC1vZlwtdGhlXC10aHJvYXQ7CivjvLIgPCBzb3VuZFwtb2ZcLWJyb2tlblwtdGlsZXM7CivmiIDmhJsgPCB0b1wtaGF2ZVwtYVwtbG92ZVwtYWZmYWlyOwor47yQIDwgYVwta2luZFwtb2ZcLXdoaXRlXC1tZWxvbjsKK+O5tiA8IGFcLWtpbmRcLW9mXC13aWxkXC1hbmltYWw7CivjuaYgPCBkb2dcLXdpdGhcLWFcLXNob3J0XC10YWlsOwor47mUIDwgY2F0dGxlXC13aXRoXC1sb25nXC1iYWNrOwor5pq06LeMIDwgc3RlZXBcLWZhbGxcLVwoaW5cLXByaWNlXCk7CivjtaggPCBhXC1kcnlcLWxhbmRcLWluXC1hXC1yaXZlcjsKK+OziCA8IGFcLWdyZWF0XC1mbG93XC1vZlwtd2F0ZXI7CivorpPplosgPCB0b1wtZ2V0XC1vdXRcLW9mXC10aGVcLXdheTsKK+OxnyA8IHRvXC1yaXBcLW9wZW5cLXRoZVwtZmxlc2g7CivjsIQgPCBhXC1zbWFsbFwtY2hlc3RudXRcLXRyZWU7CivjrpcgPCB0aGVcLWhhbmRsZVwtb2ZcLWFcLXNwZWFyOwor462NIDwgY2FwaXRhbFwtZm9ybVwtb2ZcLXNldmVuOwor46ygIDwgdG9cLWV4cG9zZVwtdG9cLXN1bmxpZ2h0Owor5qqU5qGI5YiG6YWN5Y2AIDwgZmlsZVwtYWxsb2NhdGlvblwtdGFibGU7CivjqZ8gPCB0b1wtc2V3XC1zb21lXC1vcm5hbWVudHM7CivjqIwgPCB0b1wtbWlsa1wtYVwtY293XC1vclwtZ29hdDsKK+WwseS+vyA8IGF0XC1cKHlvdXJcKVwtY29udmVuaWVuY2U7Civlj6/ouqsgPCB0b1wtZml0XC13ZWxsXC1cKGNsb3RoZXNcKTsKK+enkeeglCA8IFwoc2NpZW50aWZpY1wpXC1yZXNlYXJjaDsKK+OgiyA8IGFcLWxvZnR5XC1tb3VudGFpblwtcGVhazsKK+OfniA8IHByZWNpcGl0b3VzXC1hbmRcLWxvZnR5Owor45+dIDwgdG9cLWJhbmtcLXVwXC13aXRoXC1lYXJ0aDsKK+OfnCA8IHNoYXBlXC1vZlwtdGhlXC1tb3VudGFpbjsKK+OfliA8IGFcLWRpYWxlY3RcLW9mXC1taW5vcml0eTsKK+OfjiA8IGFcLWxvbmdcLW1vdW50YWluXC1yaWRnZTsKK+OegSA8IGNhblwtbm90XC13YWxrXC1ub3JtYWxseTsKK+OYsCA8IG5hbWVcLW9mXC1hXC1vbGRcLWNvdW50cnk7CivjmKEgPCBhXC1wZW5cLWZvclwtd2lsZFwtYmVhc3RzOwor45iWIDwgdG9cLW1ha2VcLWFcLWRpc3R1cmJhbmNlOwor6ICB5YWp5Y+jIDwgYW5cLW9sZFwtbWFycmllZFwtY291cGxlOwor45eBIDwgdGhlXC1yb29mXC1vZlwtdGhlXC1tb3V0aDsKK+OWlyA8IGhpZ2hcLXJpZGdlc1wtb2ZcLWNsaWZmczsKK+WcsOWwjeepuuWwjuW9iCA8IGdyb3VuZFwtdG9cLWFpclwtbWlzc2lsZTsKK+OVoiA8IHByb2ZvdW5kXC1zaWduaWZpY2FuY2U7Civlj6/orIIgPCBpdFwtY291bGRcLWV2ZW5cLWJlXC1zYWlkOwor6K6T6LevIDwgdG9cLW1ha2VcLXdheVwtXChmb3JcLXN0aFwpOwor45KGIDwgdG9cLWdhdGhlclwtdGhlXC1oYXJ2ZXN0Owor5oi25Li7IDwgaGVhZFwtb2ZcLXRoZVwtaG91c2Vob2xkOwor6aCS6KGMIDwgaXNzdWVcLWZvclwtZW5mb3JjZW1lbnQ7CivlnIvnh5/kvIHmpa0gPCBuYXRpb25hbGl6ZWRcLWluZHVzdHJ5Owor5LqM5Y2B5YWr6JmfIDwgMjh0aFwtZGF5XC1vZlwtdGhlXC1tb250aDsKK+a5luWNlyA8IGh1bmFuXC1wcm92aW5jZVwsXC1jaGluYTsKK+acrOWbuuaeneamriA8IHdoZW5cLXRoZVwtcm9vdFwtaXNcLWZpcm07CivlgrPovLjoqK3lgpkgPCB0cmFuc21pc3Npb25cLWZhY2lsaXR5Owor6aSY5pW4IDwgXChudW1lcmljYWxcKVwtcmVtYWluZGVyOwor5LiN566hIDwgbm9cLW1hdHRlclwtXCh3aGF0XCxcLWhvd1wpOwor54mI6Z2iIDwgc3BhY2VcLW9mXC1hXC13aG9sZVwtcGFnZTsKK+S4jeaYr+WRs+WFkiA8IG5vdFwtdGhlXC1yaWdodFwtZmxhdm91cjsKK+S4jeemgSA8IGNhbicndFwtaGVscFwtXChkb2luZ1wtc3RoOwor6Zqo5qmf5pmC6ZaTIDwgcmFuZG9tXC1wZXJpb2RcLW9mXC10aW1lOwor5piP6L+3IDwgdG9cLWxvc2VcLWNvbnNjaW91c25lc3M7CivlkJDnta4gPCB0aGVcLW9wZW5pbmdcLW9mXC1hXC1ib2xsOwor6Yuq5bmzIDwgc3ByZWFkXC1vdXRcLVwobWF0ZXJpYWxcKTsKK+WCs+i8uOi3nemboiA8IHRyYW5zbWlzc2lvblwtZGlzdGFuY2U7Civmi5zmiorlrZAgPCBiZWNvbWVcLXN3b3JuXC1icm90aGVyczsKK+WMl+WvkuW4tiA8IHRoZVwtbm9ydGhcLWZyaWdpZFwtem9uZTsKK+S4jeeQhiA8IHJlZnVzZVwtdG9cLWFja25vd2xlZGdlOwor6K6K6IeJIDwgc3VkZGVubHlcLXR1cm5cLWhvc3RpbGU7CivljbDluqblsLzopb/kup7oqp4gPCBpbmRvbmVzaWFuXC1cKGxhbmd1YWdlXCk7Civmtbfmlq8gPCBoYXllc1wtXChtaWNyb2NvbXB1dGVyXCk7CivmnbHlvrcgPCBcKGZvcm1lclwpXC1lYXN0XC1nZXJtYW55Owor5pqX56SBIDwgc3VibWVyZ2VkXC1yZWVmXC1cKHJvY2tcKTsKK+iyt+WlvSA8IHRvXC1pbmdyYXRpYXRlXC1vbmVzZWxmOwor5YWr6Lev6LuNIDwgdGhlXC1laWdodGhcLXJvdXRlXC1hcm15Owor5pqX55a+IDwgdW5tZW50aW9uYWJsZVwtZGlzZWFzZTsKK+iBs+WLlSA8IHRvXC1jcmVhdGVcLWFcLXNlbnNhdGlvbjsKK+WPpui1t+eIkOeBtiA8IHRvXC1zdGFydFwtZnJvbVwtc2NyYXRjaDsKK+mmluiFpuacg+itsCA8IGxlYWRlcnNoaXBcLWNvbmZlcmVuY2U7Civmnb/lh7MgPCB3b29kZW5cLWJlbmNoXC1vclwtc3Rvb2w7CivkuI3mmocgPCBoYXZlXC1ub1wtdGltZVwtXChmb3JcLXN0aDsKK+aCsuaGpCA8IGdyaWVmXC1hbmRcLWluZGlnbmF0aW9uOwor5LiN5L+h5Lu75oqV56WoIDwgdm90ZVwtb2ZcLW5vXC1jb25maWRlbmNlOwor5Y2X5YyX5qW1IDwgc291dGhcLWFuZFwtbm9ydGhcLXBvbGVzOwor5aaC5Ye65LiA6L2NIDwgYmVcLXByZWNpc2VseVwtdGhlXC1zYW1lOwor6JGj5LqL6ZW3IDwgY2hhaXJtYW5cLW9mXC10aGVcLWJvYXJkOwor5pys5Lq655qE6KeA6bueIDwgXChvbmUnJ3NcKVwtcGVyc29uYWxcLXZpZXc7CivnibnnlKIgPCBzcGVjaWFsXC1sb2NhbFwtcHJvZHVjdDsKK+iVreainSA8IFwoZWNvbm9taWNcKVwtZGVwcmVzc2lvbjsKK+S4jeihjOS6hiA8IG9uXC10aGVcLXBvaW50XC1vZlwtZGVhdGg7Civnn67mnYblk4HnqK4gPCBzaG9ydFwtc3RhbGtlZFwtdmFyaWV0eTsKK+aur+iRrCA8IGZ1bmVyYWxcLWFuZFwtaW50ZXJtZW50Owor5ZG95LukIDwgXChhblwpXC1vcmRlclwtb3JcLWNvbW1hbmQ7CivmtYHkuqEgPCB0b1wtXChmb3JjZVwtaW50b1wpXC1leGlsZTsKK+e1nueboeiFpuaxgSA8IHRvXC13cmFja1wtb25lJydzXC1icmFpbnM7CivlhYnno4Hnop/mqZ8gPCBtYWduZXRvXC1vcHRpY2FsXC1kcml2ZTsKK+WNoeilv+WwvCA8IGNhc3NpbmlcLVwocHJvcGVyXC1uYW1lXCk7CivljZHmsaEgPCBkZXNwaWNhYmxlXC1hbmRcLWZpbHRoeTsKK+Wci+acieS8gealrSA8IG5hdGlvbmFsaXplZFwtYnVzaW5lc3M7CivmmrTljZIgPCBkaWVcLW9mXC1zdWRkZW5cLWlsbG5lc3M7CivpgLzoppYgPCBsb29rXC1hdFwtZnJvbVwtY2xvc2VcLXVwOwor5pe65pyIIDwgYnVzeVwtXChidXNpbmVzc1wpXC1tb250aDsKK+S7gCA8IGZpbGVcLW9mXC10ZW5cLXNvbGRpZXJzOwor6LKsIDwgb25lJydzXC1yZXNwb25zaWJpbGl0eTsKK+eItSA8IGZldWRhbFwtdGl0bGVcLW9yXC1yYW5rOwor5ZWKIDwgZXhjbGFtYXRvcnlcLXBhcnRpY2xlOwor5qWaIDwgbmFtZVwtb2ZcLWZldWRhbFwtc3RhdGU7CivmiZggPCB0b1wtaG9sZFwtdXBcLXdpdGhcLXBhbG07CivmsbIgPCBkcmF3XC13YXRlclwtZnJvbVwtd2VsbDsKK+mthSA8IGtpbmRcLW9mXC1mb3Jlc3RcLWRlbW9uOwor5LyKIDwgdGhpcmRcLXBlcnNvblwtcHJvbm91bjsKK+m4vyA8IHNwZWNpZXNcLW9mXC13aWxkXC1zd2FuOwor5aelIDwgbWF0ZXJuYWxcLWdyYW5kbW90aGVyOwor5o2nIDwgaG9sZFwtdXBcLWluXC10d29cLWhhbmRzOwor5LmZIDwgc2Vjb25kXC1oZWF2ZW4nJ3NcLXN0ZW07CivlkIEgPCBpbnRlcmplY3Rpb25cLScnYWxhc1whJyc7Civlp6ggPCBtb3RoZXJcL3dpZmUnJ3NcLXNpc3RlcjsKK+S6qSA8IGNoaW5lc2VcLWxhbmRcLW1lYXN1cmU7Civlg7UgPCBzdGlmZlwtYW5kXC1tb3Rpb25sZXNzOwor5ouxIDwgZm9sZFwtaGFuZHNcLW9uXC1icmVhc3Q7Civnpr4gPCBncmFpblwtc3RpbGxcLW9uXC1zdGFsazsKK+WXoSA8IHNvdW5kXC1vZlwtZmx5aW5nXC1iZWVzOwor54ypIDwgc3BlY2llc1wtb2ZcLW9yYW5ndXRhbjsKK+eLniA8IGZlcm9jaW91c1wtYXBwZWFyYW5jZTsKK+aLiCA8IHBpY2tcLXVwXC13aXRoXC1maW5nZXJzOwor6ZmbIDwgc3RlcHNcLWxlYWRpbmdcLXRocm9uZTsKK+m4ryA8IGZlbWFsZVwtbWFuZGFyaW5cLWR1Y2s7Civlja8gPCB0aFwtb2ZcLWVhcnRoXC1icmFuY2hlczsKK+eGoCA8IGJyaWdodFwtYW5kXC1zcGFya2xpbmc7CivpmIIgPCBibG9ja2VkXC1vclwtc2VwYXJhdGVkOwor5reFIDwgd2F0ZXJcLXVzZWRcLXdhc2hcLXJpY2U7CivkvZogPCBpbmR1bGdlXC1pblwtcGxlYXN1cmVzOwor6L6aIDwgcnVtYmxpbmdcLW9mXC12ZWhpY2xlczsKK+W3vSA8IHRoXC1vZlwtdGhlXC04XC10cmlncmFtczsKK+iohyA8IHRoZVwtc291bmRcLW9mXC1hXC1jcmFzaDsKK+eLuiA8IHRoZVwtc25hcmxpbmdcLW9mXC1kb2dzOwor5rWUIDwgc3RlZXBcLWJhbmtcLWJ5XC1zdHJlYW07Civok4ogPCBsdXh1cmlhbnRcLXZlZ2V0YXRpb247Civok6AgPCBncmFjaWxhcmlhXC12ZXJydWNvc2E7Civoj4AgPCBsdXh1cmlhbmNlXC1vZlwtZ3Jvd3RoOwor6IOXIDwgcHVzdHVsZXNcLW9mXC1hbnlcLWtpbmQ7CivpooMgPCBmbHlcLWRvd25cLW9yXC1kb3dud2FyZDsKK+WehiA8IGJsYWNrXC1jbG9kc1wtb2ZcLWVhcnRoOwor5qiXIDwgYWlsYW50aHVzXC1nbGFuZHVsb3NhOwor6JqnIDwgYVwtcmVkXC1zcG90dGVkXC1saXphcmQ7CivnvLYgPCBlYXJ0aGVuXC1jcm9ja1wtb3JcLWphcjsKK+ixsyA8IGFcLXpob3VcLWR5bmFzdHlcLXN0YXRlOwor6L26IDwgc21hbGxcLWxpZ2h0XC1jYXJyaWFnZTsKK+mAryA8IGxlYXZlXC13aXRob3V0XC1yZWFzb247CivliJfou4ogPCB0cmFpblwtXChyYWlsd2F5XC10ZXJtXCk7Civlj4vlpb0gPCBmcmllbmRseVwtXChyZWxhdGlvbnNcKTsKK+arg+mCiiA8IHRvXC1saWVcLW9uXC1vbmUnJ3NcLXNpZGU7CivliLboo4EgPCBcKGVjb25vbWljXClcLXNhbmN0aW9uczsKK+ekvuS6pCA8IFwoc29jaWFsXClcLWludGVyYWN0aW9uOwor5pON6KGMIDwgXChzdHVkZW50JydzXClcLWJlaGF2aW9yOwor5YWJ56OB56KfIDwgbWFnbmV0b1wtb3B0aWNhbFwtZGlzazsKK+e3qOe1hCA8IG9yZ2FuaXplXC1pbnRvXC1ncm91cHM7Civopqrov5EgPCBnZXRcLWNsb3NlXC10b1wtc29tZW9uZTsKK+WNmuimveacgyA8IFwoaW50ZXJuYXRpb25hbFwpXC1mYWlyOwor5aSa56iu6Kqe6KiA5pSv5oyBIDwgbXVsdGlsaW5ndWFsXC1zdXBwb3J0Owor57WQ6KuWIDwgXChyZWFjaFwtYVwpXC1jb25jbHVzaW9uOwor6Zeh6L+wIDwgZXhwb3VuZFwtXChhXC1wb3NpdGlvblwpOwor57at5ZC+54i+5Lq6IDwgdWlnaHVyXC1wZXJzb25cfHBlb3BsZTsKK+mWi+mZpOWtuOexjSA8IHRvXC1leHBlbFwtZnJvbVwtc2Nob29sOwor5b+D5a+SIDwgYmVcLXZlcnlcLWRpc2FwcG9pbnRlZDsKK+e1hOijnSA8IGFzc2VtYmxlXC1hbmRcLWluc3RhbGw7CivoqpPmrbsgPCB0b1wtcGxlZGdlXC1vbmUnJ3NcLWxpZmU7CivkuIDoiKzmgKcgPCBcKGluXClcLWdlbmVyYWxcLVwodGVybXNcKTsKK+WfjumEiSA8IGNpdHlcLWFuZFwtY291bnRyeXNpZGU7CivljZTlrpogPCBcKHJlYWNoXC1hblwpXC1hZ3JlZW1lbnQ7CivpgIvpgIPol6ogPCByZWZ1Z2VcLWZvclwtZnVnaXRpdmVzOwor6aaW5bit5Luj6KGoIDwgY2hpZWZcLXJlcHJlc2VudGF0aXZlOwor5rC05Z+fIDwgXCh0ZXJyaXRvcmlhbFwpXC13YXRlcnM7Civli7vmlbQgPCBuZWF0XC1hbmRcLXdlbGxcLXNwYWNlZDsKK+eZveecvOePoCA8IHRoZVwtd2hpdGVcLW9mXC10aGVcLWV5ZTsKK+eJqeeQhue1kOaniyA8IHBoeXNpY2FsXC1jb21wb3NpdGlvbjsKK+WFp+mWoyA8IFwoZ292ZXJubWVudFwpXC1jYWJpbmV0Owor5bug54mMIDwgYnJhbmRcLVwob2ZcLWFcLXByb2R1Y3RcKTsKK+WltuWltiA8IHBhdGVybmFsXC1ncmFuZG1vdGhlcjsKK+e3qOasoSA8IG9yZGVyXC1vZlwtYXJyYW5nZW1lbnQ7CivlnIvmnIPorbDplbcgPCBzcGVha2VyXC1vZlwtdGhlXC1ob3VzZTsKK+aHieeUqOW5s+WPsCA8IGFwcGxpY2F0aW9uXC1wbGF0Zm9ybTsKK+aVmeaOiCA8IHVuaXZlcnNpdHlcLXByb2Zlc3NvcjsKK+WLouW/hSA8IGlzXC1ib3VuZFwtdG9cLVwoaGFwcGVuXCk7CivloqjmsYEgPCBwcmVwYXJlZFwtY2hpbmVzZVwtaW5rOwor5aSn5bCHIDwgYVwtZ2VuZXJhbFwtb3JcLWFkbWlyYWw7CivmsKPkurogPCB0b1wtZ2V0XC1zb21lb25lXC1hbmdyeTsKK+WMheWgtCA8IGJvb2tcLWFcLXdob2xlXC10aGVhdHJlOwor5YWt6JmfIDwgNnRoXC1kYXlcLW9mXC10aGVcLW1vbnRoOwor5YyI54mZ5Yip6KqeIDwgaHVuZ2FyaWFuXC1cKGxhbmd1YWdlXCk7CivoqZ7lvZkgPCBcKGxpc3RcLW9mXClcLXZvY2FidWxhcnk7Civou5/pq5TphY3pgIHogIUgPCBzb2Z0d2FyZVwtZGlzdHJpYnV0b3I7CivkuI3kv6Hku7vmoYggPCBub1wtY29uZmlkZW5jZVwtbW90aW9uOwor6b2eIDwgdG9cLWRpc3BsYXlcLXRoZVwtdGVldGg7CivpvIggPCBhXC1mcmVzaFwtd2F0ZXJcLXR1cnRsZTsKK+m8giA8IGFcLWtpbmRcLW9mXC1zZWFcLXR1cnRsZTsKK+aNleifsuiRiSA8IGluc2VjdFwtY2F0Y2hpbmdcLWxlYWY7CivpuIcgPCBraW5kXC1vZlwtYmlyZFwtb2ZcLXByZXk7CivmlJ3lvbEgPCB0b1wtdGFrZVwtYVwtcGhvdG9ncmFwaDsKK+m4giA8IGFcLWtpbmRcLW9mXC13YXRlclwtYmlyZDsKK+m3qyA8IHR1cnF1b2lzZVwta2luZ2Zpc2hlcjsKK+m3gSA8IGZpc2hoYXdrXC1ib3dcLW9yXC1wcm93Owor5pS55ZaE6Zec5L+CIDwgdG9cLWltcHJvdmVcLXJlbGF0aW9uczsKK+i+r+eZvSA8IG9mZmVyXC1hblwtZXhwbGFuYXRpb247CivpsJwgPCBiaWdcLW1vdXRoZWRcLWZsb3VuZGVyOwor6au6IDwgdGhlXC1oYWlyXC1kaXNoZXZlbGxlZDsKK+aOoeioqiA8IGNvdmVyXC1cKGFcLW5ld3NcLXN0b3J5XCk7CivpqqMgPCBob3JzZVwtd2l0aG91dFwtc2FkZGxlOwor5YGc54Gr5Y2U6K2wIDwgY2Vhc2VcLWZpcmVcLWFncmVlbWVudDsKK+mkvSA8IG1ha2VcLXByZXNlbnRcLW9mXC1mb29kOwor5YW156uZIDwgYXJteVwtc2VydmljZVwtc3RhdGlvbjsKK+mfsSA8IHdpbGRcLW9uaW9uc1wtb3JcLWxlZWtzOwor6LuN6LK7IDwgbWlsaXRhcnlcLWV4cGVuZGl0dXJlOwor5LqM5Y2B5LqM6JmfIDwgMjJcLW5kXC1kYXlcLW9mXC1hXC1tb250aDsKK+mcgyA8IGxvbmdcLWNvbnRpbnVlZFwtcmFpbnM7Civmk5rmgokgPCBhY2NvcmRpbmdcLXRvXC1yZXBvcnRzOwor5YmN5bm0IDwgdGhlXC15ZWFyXC1iZWZvcmVcLWxhc3Q7Civpl40gPCB0b3dlclwtb3ZlclwtY2l0eVwtZ2F0ZTsKK+ijnOiJsiA8IGNvbXBsZW1lbnRhcnlcLWNvbG91cjsKK+aUu+WLoiA8IFwobWlsaXRhcnlcKVwtb2ZmZW5zaXZlOwor56K65pyJ5YW25LqLIDwgXChjb25maXJtXC10b1wtYmVcKVwtdHJ1ZTsKK+Wkp+Wei+S8gealrSA8IGxhcmdlXC1zY2FsZVwtaW5kdXN0cnk7CivliIbmk5QgPCBzaGFyZVwtcmVzcG9uc2liaWxpdHk7CivpjbEgPCB0aGluXC1wbGF0ZXNcLW9mXC1tZXRhbDsKK+S9v+W+kuihjOWCsyA8IGFjdHNcLW9mXC10aGVcLWFwb3N0bGVzOwor6Ym2IDwgc2FjcmlmaWNpYWxcLWNhdWxkcm9uOwor6ZaL55m8IDwgZXhwbG9pdFwtXChhXC1yZXNvdXJjZVwpOwor5q235LujIDwgc3VjY2Vzc2l2ZVwtZHluYXN0aWVzOwor6YawIDwgYml0dGVyXC10YXN0ZVwtaW5cLXdpbmU7Civov5Hml6UgPCBpblwtdGhlXC1wYXN0XC1mZXdcLWRheXM7Civlm57oqKogPCBcKHBheVwtYVwpXC1yZXR1cm5cLXZpc2l0Owor5b+F5LiN5Y+v5bCRIDwgYWJzb2x1dGVseVwtbmVjZXNzYXJ5Owor55eF6K6KIDwgcGF0aG9sb2dpY2FsXC1jaGFuZ2VzOwor5YeM5pmoIDwgZWFybHlcLWluXC10aGVcLW1vcm5pbmc7CivotoIgPCB0b1wtdGFrZVwtYWR2YW50YWdlXC1vZjsKK+S4jembheingCA8IG9mZmVuc2l2ZVwtdG9cLXRoZVwtZXllOwor5o6l5pS25Zmo6Z2I5pWP5bqmIDwgcmVjZWl2ZXJcLXNlbnNpdGl2aXR5Owor5LiN5Zyo6Kmx5LiLIDwgYmVcLW5vdGhpbmdcLWRpZmZpY3VsdDsKK+mZs+i/sOWPpSA8IGRlY2xhcmF0aXZlXC1zZW50ZW5jZTsKK+ilrCA8IGxvd2VyXC1wYXJ0XC1vZlwtYVwtcm9iZTsKK+mAmeWAi+aciCA8IHRoaXNcLVwoY3VycmVudFwpXC1tb250aDsKK+iisyA8IHNwcmVhZFwtb25lJydzXC1jbG90aGVzOwor5q235L6G5pyA5L2O6bueIDwgYWxsXC10aW1lXC1sb3dcLVwocG9pbnRcKTsKK+WAjemgu+WZqCA8IGZyZXF1ZW5jeVwtbXVsdGlwbGllcjsKK+ans+eLgCA8IGNlcnRpZmljYXRlXC1vZlwtbWVyaXQ7CivonJsgPCBoeWRyb3BoaWx1c1wtY29nbmF0dXM7Civom5ogPCBjeXJ0b3hpcGh1c1wtcml0c2VtYWU7CivmsJHml4/kuLvnvqnmg4Xnt5IgPCBuYXRpb25hbGlzdFwtZmVlbGluZ3M7CivpoJjlsI7mrIogPCBsZWFkZXJzaGlwXC1hdXRob3JpdHk7CivolqIgPCB3b29keVwtY2xpbWJpbmdcLXBsYW50Owor5YCa6YeNIDwgdG9cLXJlbHlcLWhlYXZpbHlcLXVwb247CivntIDlv7Xml6UgPCBkYXlcLW9mXC1jb21tZW1vcmF0aW9uOwor6IyAIDwgb3Zlcmdyb3duXC13aXRoXC1ncmFzczsKK+iKhCA8IG1ldGFwbGV4aXNcLXN0YXVudG9uaTsKK+aHieeUqOi7n+S7tiA8IGFwcGxpY2F0aW9uXC1zb2Z0d2FyZTsKK+iIuiA8IHBsYWNlXC1uYW1lXC1pblwtdGFpd2FuOwor6IShIDwgc3RyaXBzXC1vZlwtZHJpZWRcLW1lYXQ7CivmiorphZIgPCByYWlzZVwtb25lJydzXC13aW5lXC1jdXA7Civou43nlKggPCBcKGZvclwpXC1taWxpdGFyeVwtXCh1c2VcKTsKK+S6pOaPm+aKgOihkyA8IHN3aXRjaGluZ1wtdGVjaG5vbG9neTsKK+exs+W+t+eIvuS8r+ijoSA8IG1pZGRsZWJ1cnlcLVwoY29sbGVnZVwpOwor5L+d6YeNIDwgdGFrZVwtY2FyZVwtb2ZcLW9uZXNlbGY7CivloLHku4cgPCB0b1wtcmV2ZW5nZVwtXChvbmVzZWxmXCk7CivmioTouqsgPCB0b1wtc2VhcmNoXC1cKGFcLXBlcnNvblwpOwor57KDIDwgZW1wdHlcLWh1c2tzXC1vZlwtZ3JhaW47CivnqIvlvI/oqp7oqIAgPCBwcm9ncmFtbWluZ1wtbGFuZ3VhZ2U7Civnmb3mo4nntJkgPCBzdGVuY2lsXC10aXNzdWVcLXBhcGVyOwor56qjIDwgdG9cLXJ1c2hcLW91dFwtb2ZcLWFcLWRlbjsKK+ephyA8IHBhbmljdW1cLWZydW1lbnRhY2V1bTsKK+ajieilliA8IGNvdHRvblwtcGFkZGVkXC1qYWNrZXQ7Civno5IgPCB0b1wtZmFsbFwtZnJvbVwtb3JcLWludG87CivlhJjml6kgPCBhc1wtZWFybHlcLWFzXC1wb3NzaWJsZTsKK+efkSA8IHRoZVwtcHVwaWxcLW9mXC10aGVcLWV5ZTsKK+edjSA8IHRvXC1sb29rXC1hdFwtZmVhcmZ1bGx5Owor5Z+55L+uIDwgdG9cLXJlcGFpclwtZWFydGh3b3JrczsKK+WwiumHjSA8IHRvXC12YWx1ZVwtXChzb21ldGhpbmdcKTsKK+eUvSA8IGRyYWluXC1iZXR3ZWVuXC1maWVsZHM7CivnlIMgPCBicmlja1wtd2FsbFwtb2ZcLWFcLXdlbGw7CivnmbzooajogbLmmI4gPCB0b1wtaXNzdWVcLWFcLXN0YXRlbWVudDsKK+eQliA8IGNhcnZlZFwtamFkZVwtd2luZVwtY3VwOwor546mIDwgYnJva2VuXC1waWVjZVwtb2ZcLWphZGU7Civnl4XngbYgPCBmb2N1c1wtXChvZlwtaW5mZWN0aW9uXCk7Civlhanpu57ljYHkuZ3liIYgPCAyXC1cOjFcLTlcLVwodGltZVwtb2ZcLWRheVwpOwor5L616KWyIDwgdG9cLWludmFkZVwtYW5kXC1hdHRhY2s7CivngLMgPCB0b1wtYXJyaXZlXC1cKG9mXC13YXRlclwpOwor6Zu75a2Q5bel5qWtIDwgZWxlY3Ryb25pY3NcLWluZHVzdHJ5Owor5r6sIDwgdG9cLXJhaW5cLWNvbnRpbnVvdXNseTsKK+ewoeactCA8IHNpbXBsZVwtYW5kXC11bmFkb3JuZWQ7Civpp4HpgYsgPCB0cmFuc3BvcnRcLWJ5XC1saWdodGVyOwor5oyq56qp5YWSIDwgdG9cLW1vdmVcLVwodG9cLWFcLWhvdXNlXCk7Civlj6zplovmnIPorbAgPCB0b1wtY2FsbFwtYVwtY29uZmVyZW5jZTsKK+a0pCA8IGFcLWZvdW50YWluXC1vclwtc3ByaW5nOwor5L6L6KiAIDwgaW50cm9kdWN0b3J5XC1yZW1hcmtzOwor5YKZ5p+lIDwgZm9yXC1mdXR1cmVcLXJlZmVyZW5jZTsKK+anviA8IHBhc3RlXC13YWxsXC13aXRoXC1kaXJ0Owor5b635ZyL5Lq6IDwgZ2VybWFuXC1wZXJzb25cfHBlb3BsZTsKK+ajqCA8IHRhbGx5XC1vclwtd29vZGVuXC1wYXNzOwor5qGsIDwgcGVhclwtYW5kXC1vdGhlclwtdHJlZXM7CivlronpgLggPCBlYXN5XC1hbmRcLWNvbWZvcnRhYmxlOwor5pWzIDwgdG9cLWdvdmVyblwtZm9yY2VmdWxseTsKK+aVgSA8IHRvXC13ZWlnaFwtaW5cLXRoZVwtaGFuZDsKK+eXheaIvyA8IHdhcmRcLVwob2ZcLWFcLWhvc3BpdGFsXCk7Civnmb7kuovpgJogPCBrbm93bGVkZ2VhYmxlXC1wZXJzb247CivooajlvbAgPCBjaXRlXC1cKGluXC1kaXNwYXRjaGVzXCk7CivmkI4gPCB0b1wtcnViXC13aXRoXC10aGVcLWhhbmQ7CivkuI3mrbvlv4MgPCB1bndpbGxpbmdcLXRvXC1naXZlXC11cDsKK+ekpuazieawtCA8IG1pbmVyYWxcLXNwcmluZ1wtd2F0ZXI7CivlkIPkuI3kuIsgPCBub3RcLWZlZWxcLWxpa2VcLWVhdGluZzsKK+W5gOaqoumpl+W6j+WIlyA8IGZyYW1lXC1jaGVja1wtc2VxdWVuY2U7CivokKzntq3ntrIgPCB3b3JsZFwtd2lkZVwtd2ViXC1cKHd3d1wpOwor5ZWG5qWt5oeJ55SoIDwgYnVzaW5lc3NcLWFwcGxpY2F0aW9uOwor5q+P5rOB5oSI5LiLIDwgc3RlYWRpbHlcLWRldGVyaW9yYXRlOwor5ouc5pyDIDwgcGF5XC1hblwtb2ZmaWNpYWxcLWNhbGw7CivlsIjnqIsgPCBzcGVjaWFsXC1wdXJwb3NlXC10cmlwOwor5aqS6auU6Kiq5ZWP5o6n5Yi2IDwgbWVkaWFcLWFjY2Vzc1wtY29udHJvbDsKK+WBveW5oyA8IGNvdW50ZXJmZWl0XC1jdXJyZW5jeTsKK+i7jeS6i+apn+aniyA8IG1pbGl0YXJ5XC1pbnN0aXR1dGlvbjsKK+W1jyA8IGFcLW1vdW50YWluXC1pblwtc2hlbnhpOwor5omN55WlIDwgYWJpbGl0eVwtYW5kXC1zYWdhY2l0eTsKK+WtrSA8IHRvXC1jYXJyeVwtb25cLXRoZVwtYmFjazsKK+Wbm+W5tOWItueahOWkp+WtuCA8IGZvdXJcLXllYXJcLXVuaXZlcnNpdHk7CivlsaTmrKEgPCBhcnJhbmdlbWVudFwtb2ZcLWlkZWFzOwor5Yik6JmV5q275YiRIDwgdG9cLXNlbnRhbmNlXC10b1wtZGVhdGg7Civlq4sgPCBzbGVuZGVyXC1hbmRcLWRlbGljYXRlOwor5amjIDwgbWFycmlhZ2VcLWNvbm5lY3Rpb25zOwor562G5rOVIDwgdGVjaG5pcXVlXC1vZlwtd3JpdGluZzsKK+WvpumrlOWxpCA8IHBoeXNpY2FsXC1sYXllclwtXChvc2lcKTsKK+WbrCA8IHRvXC1yZXR1cm5cLXRvXC1vclwtZnJvbTsKK+S6pOmAmiA8IFwoYXV0b21vYmlsZVwpXC10cmFmZmljOwor54++6ZqO5q61IDwgYXRcLXRoZVwtcHJlc2VudFwtc3RhZ2U7CivosqjluaPosrblgLwgPCBjdXJyZW5jeVwtZGV2YWx1YXRpb247Civlj5vlnIvnvaogPCB0aGVcLWNyaW1lXC1vZlwtdHJlYXNvbjsKK+aMieeFp+azleW+iyA8IGFjY29yZGluZ1wtdG9cLXRoZVwtbGF3Owor5YqCIDwgY2hpc2VsXC1mb3JcLWVuZ3JhdmluZzsKK+WVn+eoiyA8IHNldFwtb3V0XC1vblwtYVwtam91cm5leTsKK+S4jeWujOWFqOS4reeriyA8IGltcGVyZmVjdFwtbmV1dHJhbGl0eTsKK+eVq+WgsSA8IHBpY3RvcmlhbFwtXChtYWdhemluZVwpOwor5YyX5Zue5q2457eaIDwgdGhlXC10cm9waWNcLW9mXC1jYW5jZXI7CivlhYvph4zmlq/miZjlvJcgPCBcKHdhcnJlblwpXC1jaHJpc3RvcGhlcjsKK+mbu+WtkOWFg+S7tiA8IGVsZWN0cm9uaWNcLWNvbXBvbmVudDsKK+e2k+a/n+ihsOmAgCA8IFwoZWNvbm9taWNcKVwtcmVjZXNzaW9uOwor5LaZIDwgc3dlbGxpbmdcLW9mXC10aGVcLWd1bXM7CivktoogPCB0b1wtYmxlZWRcLWF0XC10aGVcLW5vc2U7CivlhYnkuozmpbXnrqEgPCBsaWdodFwtZW1pdHRpbmdcLWRpb2RlOwor5LSfIDwgYW5cLW9uZVwteWVhclwtb2xkXC1kZWVyOwor5LOzIDwgYVwta2luZFwtb2ZcLXNtYWxsXC1iaXJkOwor5LORIDwgYVwtcGhlYXNhbnRcLWxpa2VcLWJpcmQ7CivksrEgPCBhXC1raW5kXC1vZlwtYmxhY2tcLWJpcmQ7CivkspUgPCB0aGVcLXlhbmd0emVcLXBvcnBvaXNlOwor5LGQIDwgYVwta2luZFwtb2ZcLWJsYWNrXC1maXNoOwor5LGAIDwgYVwta2luZFwtb2ZcLXNtYWxsXC1maXNoOwor5L615pO+IDwgdG9cLWludmFkZVwtYW5kXC1oYXJhc3M7CivlsY/luZUgPCBcKHR2XC1vclwtbW92aWVcKVwtc2NyZWVuOwor5K6hIDwgYVwtc3VwZXJuYXR1cmFsXC1ob3JzZTsKK+SugiA8IGhvcnNlXC13aXRoXC1sb25nXC1oYWlyOwor5K23IDwgaG9yc2VcLXdpdGhcLWxvbmdcLW1hbmU7CivkrKkgPCB0b1wtYWJzdGFpblwtZnJvbVwtbWVhdDsKK+SsoyA8IGFcLXNhY3JpZmljaWFsXC12aWN0aW07Civkq6AgPCBzaG9ydFwtaGFpclwtYW5kXC1iZWFyZDsKK+mMpuaomeizvSA8IGNoYW1waW9uc2hpcFwtY29udGVzdDsKK+SpvSA8IGFcLXF1aXZlclwtb25lXC1hXC1ob3JzZTsKK+SpgiA8IHRvXC1jb21lXC10b1wtdGhlXC1mcm9udDsKK+eQg+e2siA8IG5ldFwtXChmb3JcLWJhbGxcLWdhbWVzXCk7Civkp5cgPCBtb3VudGFpbnNcLWNvbGxhcHNpbmc7CivkpqYgPCBhXC1tdXNpY2FsXC1pbnN0cnVtZW50Owor5KWkIDwgdGhlXC1uZWNrXC1vZlwtYVwtcGVzdGxlOwor5KWEIDwgdG9cLXBsYXN0ZXJcLXdpdGhcLWdvbGQ7CivkpLggPCBzaG9ydFwtc3BlYXJcLW9yXC1sYW5jZTsKK+S4jeepqeW5s+ihoSA8IHVuc3RhYmxlXC1lcXVpbGlicml1bTsKK+a8ouWMliA8IGNoaW5lc2VcLWxvY2FsaXphdGlvbjsKK+SgkSA8IGJldHdlZW5cLXRoZVwtYnV0dG9ja3M7CivkoIggPCBoYXJkXC10b1wtbW92ZVwtZm9yd2FyZDsKK+SfqSA8IGhhcmRcLW9mXC13YWxrXC1mb3J3YXJkOwor5J6ZIDwgdG9cLXdhbGtcLWluXC1odXJyaWVkbHk7CivknZEgPCBhXC1sb2NhbFwtcHJvZHVjZWRcLXBpZzsKK+ScpyA8IHRvXC1pbnN1bHRcLXdpdGhcLXdvcmRzOwor5JyTIDwgYVwtc2xpcFwtb2ZcLXRoZVwtdG9uZ3VlOwor5JuMIDwgdG9cLXByb3Zva2VcLW9yXC1hcm91c2U7Civkma4gPCBzdHJpcFwtb2ZcLXRoZVwtY2xvdGhlczsKK+SYviA8IGxlZ3NcLW9mXC10aGVcLXRyb3VzZXJzOwor5L+h5oGv6LOH5rqQIDwgaW5mb3JtYXRpb25cLXJlc291cmNlOwor5JWrIDwgYVwtb25lXC1sZWdnZWRcLW1vbnN0ZXI7CivklIggPCBsdXNoXC1ncm93dGhcLW9mXC1ncmFzczsKK+WFreWNgeS6lOatsiA8IHNpeHR5XC1maXZlXC15ZWFyc1wtb2xkOwor5JGgIDwgbG9uZ1wtYW5kXC1uYXJyb3dcLWJvYXQ7CivkkLggPCB0aGVcLWJhY2tcLW9mXC10aGVcLWtuZWU7Civkj78gPCB0aGVcLWNhbGZcLW9mXC10aGVcLWxlZ3M7Civkj6EgPCB1bmNvb2tlZFwtb3JcLXJhd1wtbWVhdDsKK+SKsyA8IHRvXC1icmVha1wtaW50b1wtcGllY2VzOwor5IqyIDwgdG9cLWh1bGxcLXJpY2VcLXJvdWdobHk7CivkioIgPCBwb29yXC1xdWFsaXR5XC1vZlwtcmljZTsKK+WwjeWzmSA8IG11dHVhbFwtY29uZnJvbnRhdGlvbjsKK+SJkSA8IGJsYWNrXC1za2lubmVkXC1iYW1ib287CivkiKYgPCBhXC1jdXJ2ZWRcLWJhbWJvb1wtd2hpcDsKK+SIkSA8IHRvb2xzXC10b1wtdW5yZWVsXC1zaWxrOwor5IiBIDwgdG9vbHNcLXVzZWRcLW9uXC1hXC1ib2F0Owor5IeYIDwgdG9vbFwtdG9cLWNvbGxlY3RcLXJvcGU7CivkhqMgPCBhYm9kZVwtb2ZcLXRoZVwtZW1wZXJvcjsKK+SGjyA8IGFcLWtpbmRcLW9mXC1yaWNlXC1wbGFudDsKK+SFriA8IGFcLWZ1bGxcLWhlYWRcLW9mXC1ncmFpbjsKK+SFkyA8IGN1cnZlZFwtcGllY2VcLW9mXC13b29kOwor5IWPIDwgcmljZVwtYm9pbGVkXC10b1wtZ3J1ZWw7CivkhK8gPCB0ZW5cLWhhbmRsZVwtb2ZcLWdyYWluczsKK+e+jui7jSA8IHVzXC1hcm15XHxhcm1lZFwtZm9yY2VzOwor5ISCIDwgdG9cLXByYXlcLWFuZFwtdG9cLWN1cnNlOwor5IOwIDwgYnJpY2tcLW9yXC1zdG9uZVwtc3RlcHM7CivkgpIgPCBzaG9ydFwtdG9cLWN1cnJ5XC1mYXZvcjsKK+SCgiA8IHRvXC1nYXplXC1hdFwtaW5cLXRlcnJvcjsKK+SBrCA8IHRvXC1hY3RcLXByZXRlbnRpb3VzbHk7CivkgLcgPCB0b1wtaGF2ZVwtcXVpY2tcLWdsYW5jZTsKK+SAsiA8IGRpc2Vhc2VzXC1pblwtdGhlXC1leWVzOwor5L2N5pa8IDwgYmVcLXNpdHVhdGVkXC1cKGluXCxcLWF0XCk7Civjv7ggPCB0b1wtY2FzdFwtb2ZmXC10aGVcLXNraW47Civjv54gPCBhblwtb2xkXC1tYW5cLW9mXC1laWdodHk7CivjvaQgPCBhXC1zbWFsbFwtcGxvdFwtb2ZcLWxhbmQ7CivjvaIgPCB0b1wtcGxvdWdoXC10aGVcLWZpZWxkczsKK+O9lSA8IG5ld1wtYnJhbmNoZXNcLWdyb3dpbmc7CivjvYMgPCBhXC1iaWdcLXBpZWNlXC1vZlwtYnJpY2s7CivjvKIgPCBicmlja3NcLWFuXC1lYXRoZW5cLWphcjsKK+O8iSA8IGdyZWVuXC1jb2xvcmVkXC1tZWxvbnM7Civju64gPCBicmlnaHRcLWFuZFwtYnJpbGxpYW50Owor47quIDwgZmluZVwtc3RvbmVcLWxpa2VcLWphZGU7CivjuoIgPCBiaWdcLWFuZFwtc3Ryb25nXC1zaGVlcDsKK+O5mCA8IHNoaW5ib25lXC1vZlwtYVwtY2F0dGxlOwor47iqIDwgYW5cLW94XC13YWxraW5nXC1zbG93bHk7CivororpoLsgPCBmcmVxdWVuY3lcLWNvbnZlcnNpb247Civnq7bniK3lipsgPCBjb21wZXRpdGl2ZVwtc3RyZW5ndGg7Civjt5kgPCB0b1wtZnJ5XC1pblwtZmF0XC1vclwtb2lsOwor47aUIDwgc3dpZnRcLWFuZFwtdG9ycmVudGlhbDsKK+O1niA8IGJlbGxpZWRcLWluXC13YXRlclwtZ2FzOwor47O8IDwgYnViYmxpbmdcLW9mXC1mb3VudGFpbjsKK+OzmiA8IGZsb3dpbmdcLW9mXC10aGVcLXdhdGVyOwor47OUIDwgdG9cLXNvYWtcLW9yXC1iZVwtc29ha2VkOwor47KrIDwgaGFpclwta25vdHNcLWluXC1hXC1tZXNzOwor47CLIDwgYVwta2luZFwtb2ZcLWZydWl0XC10cmVlOwor46+MIDwgdG9cLW9wZXJhdGVcLW9yXC1tYW5hZ2U7Civmmbrog73lpKfmqJMgPCBpbnRlbGxpZ2VudFwtYnVpbGRpbmc7CivlsJHmlbjmsJHml48gPCBtaW5vcml0eVwtbmF0aW9uYWxpdHk7Civllq7lrZcgPCBpbmRpdmlkdWFsXC1jaGFyYWN0ZXI7CivjrZ4gPCBhXC1raW5kXC1pbmZlcmlvclwtd29vZDsKK+OtkiA8IGFcLWZhcm1pbmdcLWluc3RydW1lbnQ7CivjqbsgPCBydWdnZWRcLW1vdW50YWluXC1wYXRoOwor46mUIDwgYVwtdG9vbFwtdG9cLW1ha2VcLWFcLWJvdzsKK+OnuSA8IHRvXC1zdHJpa2VcLXdpdGhcLWZpc3RzOwor6IOM5b+DIDwgYVwtc2xlZXZlbGVzc1wtZ2FybWVudDsKK+aItuWPoyA8IHJlZ2lzdGVyZWRcLXJlc2lkZW5jZTsKK+OhmSA8IGN1cnRhaW5cLWZvclwtY2FycmlhZ2U7CivmnKznp5EgPCB1bmRlcmdyYWR1YXRlXC1jb3Vyc2U7CivjoJcgPCBkZWVwXC1pblwtdGhlXC1tb3VudGFpbjsKK+OenyA8IHNhdmluZ3NcLWFuZFwtcmVzZXJ2ZXM7CivjmaMgPCB0b1wtcGlsZVwtYVwtc2FuZFwtaGlsbHM7Civkvr/kuK0gPCBhdFwtb25lJydzXC1jb252ZW5pZW5jZTsKK+OZkSA8IHRoZVwtY2Fub3B5XC1vZlwtaGVhdmVuOwor45iOIDwgdGhlXC1yb2Fyc1wtb2ZcLWFcLXRpZ2VyOwor6ZGS5a6a5aeU5ZOh5pyDIDwgZXZhbHVhdGlvblwtY29tbWl0dGVlOwor45iFIDwgdG9cLWhvbGRcLWluXC10aGVcLW1vdXRoOwor5a+25YqNIDwgYVwtZG91YmxlXC1lZGdlZFwtc3dvcmQ7CivjlaEgPCB0aGVcLWJlZFwtb2ZcLWFcLXRvcnJlbnQ7CivjlYwgPCB0b1wtcmFpc2VcLXRoZVwtY3VydGFpbjsKK+OUiyA8IGN1dFwtaW50b1wtdGhpblwtc2xpY2VzOwor45KFIDwgdG9cLXVuYmluZFwtdGhlXC1jb2xsYXI7CivjkYkgPCBjYW5ub3RcLXN0cmFpZ2h0ZW5cLXVwOwor6Yae6YeAIDwgbXVsbFwtb3ZlclwtXChhblwtaXNzdWVcKTsKK+WFqOmdouemgeatoiA8IGNvbXBsZXRlXC1wcm9oaWJpdGlvbjsKK+aal+iZnyA8IHNlY3JldFwtc2lnbmFsXC1cKHNpZ25cKTsKK+iAgeeIuiA8IG1hdGVybmFsXC1ncmFuZGZhdGhlcjsKK+ePreacnyA8IHNjaGVkdWxlXC1cKGZvclwtZmxpZ2h0Owor6LK35pa5IDwgYnV5ZXJcLVwoaW5cLWNvbnRyYWN0c1wpOwor5a6J5aicIDwgYW5uYVwtXChwZXJzb24nJ3NcLW5hbWVcKTsKK+movummrOWkp+i7iiA8IG11bGVcLWFuZFwtaG9yc2VcLWNhcnRzOwor57aT5r+f55m85bGVIDwgZWNvbm9taWNcLWRldmVsb3BtZW50Owor6YCa6KiK57O757WxIDwgY29tbXVuaWNhdGlvblwtc3lzdGVtOwor6LKs5oiQIDwgZ2l2ZVwtc29tZWJvZHlcLWFcLXRhc2s7CivkuI3kuozms5XploAgPCB0aGVcLW9uZVwtYW5kXC1vbmx5XC13YXk7Civpgo/ovK/pj4jot6/mjqfliLYgPCBsb2dpY2FsXC1saW5rXC1jb250cm9sOwor5aSa6bq8IDwgaG93XC1cKHdvbmRlcmZ1bFwsXC1ldGNcKTsKK+mFrOisnSA8IHRvXC10aGFua1wtd2l0aFwtYVwtZ2lmdDsKK+eEoeWDueePjeePoCA8IHBlYXJsXC1vZlwtZ3JlYXRcLXByaWNlOwor5b6A6L+UIDwgdG9cLWdvXC1iYWNrXC1hbmRcLWZvcnRoOwor5YyF6YeRIDwgY292ZXJcLXdpdGhcLWdvbGRcLWxlYWY7CivmnKrmiJDlubTogIUgPCBtaW5vclwtXChub3RcLWFuXC1hZHVsdFwpOwor5pqR54axIDwgaG90XC1cKHN1bW1lclwpXC13ZWF0aGVyOwor5beh6L+05YiG5p6Q56uv5Y+jIDwgcm92aW5nXC1hbmFseXNpc1wtcG9ydDsKK+S8iuaWr+iYreWgoSA8IGlzbGFtYWJhZFwtXChwYWtpc3RhblwpOwor6YGL5YuV5pyDIDwgYVwtc3BvcnRzXC1jb21wZXRpdGlvbjsKK+S4jeabviA8IG5ldmVyXC1cKGhhdmVcLWRvbmVcLXN0aDsKK+e4vemDqCA8IGdlbmVyYWxcLWhlYWRxdWFydGVyczsKK+iytuWAvCA8IHRvXC1iZWNvbWVcLWRldmFsdWF0ZWQ7CivpgbrpqrggPCBcKGRlYWRcKVwtaHVtYW5cLXJlbWFpbnM7CivkuozljYHlm5vomZ8gPCAyNFwtdGhcLWRheVwtb2ZcLWFcLW1vbnRoOwor6aGe5o6oIDwgdG9cLXJlYXNvblwtYnlcLWFuYWxvZ3k7CivlpKflpLHmiYDmnJsgPCBncmVhdGx5XC1kaXNzYXBvaW50ZWQ7Civlkozlpb0gPCB0b1wtYmVjb21lXC1yZWNvbmNpbGVkOwor5pys5ZyfIDwgb25lJydzXC1uYXRpdmVcLWNvdW50cnk7Civkup7lgKsgPCBhYXJvblwtXChhXC1tYW4nJ3NcLW5hbWVcKTsKK+e+nuaBpSA8IFwoYVwtZmVlbGluZ1wtb2ZcKVwtc2hhbWU7Civlk4jkvZsgPCBoYXJ2YXJkXC1cKHVuaXZlcnNpdHlcKTsKK+aakeacnyA8IHN1bW1lclwtdmFjYXRpb25cLXRpbWU7CivkvIHmpa3pm4blnJggPCBpbmR1c3RyeVwtYXNzb2NpYXRpb247CivnrqHnkIbmjqXlj6MgPCBtYW5hZ2VtZW50XC1pbnRlcmZhY2U7CivlkbzlloogPCBzaG91dFwtXChzbG9nYW5zXCxcLWV0Y1wpOwor57m957SbIDwgaW5cLXJpb3RvdXNcLXByb2Z1c2lvbjsKK+WRiOWgsSA8IHRvXC1cKHN1Ym1pdFwtYVwpXC1yZXBvcnQ7CivnlJ/nlKLoqK3lgpkgPCBwcm9kdWN0aW9uXC1lcXVpcG1lbnQ7CivljYrnmb0gPCBmaWZ0eVwtXCh5ZWFyc1wtb2ZcLWFnZVwpOwor8KCBpSA8IHRoZVwtaG9ybnNcLW9mXC1hXC1zaGVlcDsKK+i3kem+jeWllyA8IHRvXC1wbGF5XC1hXC1zbWFsbFwtcm9sZTsKK+aYgueEtiA8IHVwcmlnaHRcLWFuZFwtdW5hZnJhaWQ7CivpgoToqqogPCB0b1wtYWRkXC1cKGluXC1zcGVha2luZ1wpOwor5pu05YqgIDwgbW9yZVwtXCh0aGFuXC1zdGhcLWVsc2VcKTsKK+W+t+mbt+eIviA8IFwoanVuZVwtdGV1ZmVsXClcLWRyZXllcjsKK+e+qeWLmeaVmeiCsiA8IGN1bXB1bHNvcnlcLWVkdWNhdGlvbjsKK+eIuueIuiA8IHBhdGVybmFsXC1ncmFuZGZhdGhlcjsKK+WCs+i8uOaOp+WItiA8IHRyYW5zbWlzc2lvblwtY29udHJvbDsKK+S4jeWLnSA8IGNhbm5vdFwtYmVhclwtb3JcLXN0YW5kOwor5pWX6IODIDwgc3BvaWxcLW9uZScnc1wtYXBwZXRpdGU7Civororlv4MgPCBjZWFzZVwtdG9cLWJlXC1mYWl0aGZ1bDsKK+S4jeaHt+WlveaEjyA8IGhhcmJvdXJcLWV2aWxcLWRlc2lnbnM7CivkuIrlgIsgPCBmaXJzdFwtXChvZlwtdHdvXC1wYXJ0c1wpOwor5Y+q5LiN6YGO5bm+5bm05YmNIDwgb25seVwtYVwtZmV3XC15ZWFyc1wtYWdvOwor5bm+IDwgaG93XC1tYW55XD9cLWhvd1wtbXVjaFw/Owor5aWPIDwgbWVtb3JpYWxpemVcLWVtcGVyb3I7CivmgqggPCBob25vcmlmaWNcLWZvclwtJyd5b3UnJzsKK+WQjyA8IGdvdmVybm1lbnRcLW9mZmljaWFsOwor5YWAIDwgdG9cLWN1dFwtb2ZmXC10aGVcLWZlZXQ7Civog7QgPCB0aGVcLWxhcmdlXC1pbnRlc3RpbmU7Civnp6YgPCBmZXVkYWxcLXN0YXRlXC1vZlwtcWluOwor5qGBIDwgY3Jvc3NcLWJlYW1zXC1vZlwtcm9vZjsKK+iOjiA8IGtpbmRcLW9mXC1zZWRnZVwtZ3Jhc3M7CivolpsgPCBraW5kXC1vZlwtbWFyc2hcLWdyYXNzOwor57WjIDwgdG9cLWJhc3RlXC1mb3JcLXNld2luZzsKK+aCliA8IGJlXC1jb250cmFkaWN0b3J5XC10bzsKK+iKkiA8IG1pc2NhbnRodXNcLXNpbmVuc2lzOwor5Zi2IDwgbmVpZ2hpbmdcLW9mXC1hXC1ob3JzZTsKK+WPvSA8IHNpZ2hcLWluXC1kaXNhcHByb3ZhbDsKK+WOpSA8IHBlcnNvbmFsXC1wcm9ub3VuXC1oZTsKK+WcrSA8IGphZGVcLXBvaW50ZWRcLWF0XC10b3A7CivlvpggPCB3YWxrXC1iYWNrXC1hbmRcLWZvcnRoOwor5pmkIDwgaGF2ZVwtaW50ZXJ2aWV3XC13aXRoOwor6Ii3IDwgdGhlXC1zaWRlc1wtb2ZcLWFcLWJvYXQ7CivpgqwgPCB2YXJpb3VzXC1wbGFjZVwtbmFtZXM7CivopJAgPCBjb2Fyc2VcLXdvb2xlblwtY2xvdGg7CivppoggPCBvZmZlclwtZm9vZFwtc3VwZXJpb3I7CivllKcgPCBjaGlycGluZ1wtb2ZcLWluc2VjdHM7CivlkpQgPCB1c2VkXC1pblwtdHJhbnNsYXRpb247CivngbggPCBjYXV0ZXJpemVcLXdpdGhcLW1veGE7CivpqbcgPCB0ZWFtXC1vZlwtZm91clwtaG9yc2VzOwor57K8IDwgY2xlYXJcLVwoYXNcLW9mXC13YXRlclwpOwor576aIDwgc3BlY2llc1wtb2ZcLWFudGVsb3BlOwor5ZGTIDwgdGFsa1wtaW5cLW9uZScnc1wtc2xlZXA7Civnr5kgPCBwb2xlXC11c2VkXC1wdW50XC1ib2F0Owor5rmNIDwgcmFwaWRcLXdhdGVyXC1jdXJyZW50Owor6ISNIDwgbWluY2VkXC1tZWF0XC1vclwtZmlzaDsKK+mPliA8IHRvXC1maWdodFwtdG9cLXRoZVwtZW5kOwor6IK9IDwgYVwtY2hlbWljYWxcLWNvbXBvdW5kOwor6YquIDwgYmVsbHNcLWh1bmdcLW9uXC1ob3JzZTsKK+essyA8IGFcLXJlZWRcLWxlYWZcLXdoaXN0bGU7Civolo8gPCBzZWVkXC1vZlwtam9iJydzXC10ZWFyczsKK+aCnSA8IHRvXC1sYXVnaFwtYXRcLXRvXC1waXR5Owor6LGHIDwgYVwtc21hbGxcLWtpZG5leVwtYmVhbjsKK+ahiSA8IGV1Y2FseXB0dXNcLWdsb2J1bHVzOwor6LmBIDwgdG9cLXdhbGtcLXdpdGhcLWFcLWxpbXA7CivohYggPCBhblwtb3JnYW5pY1wtY29tcG91bmQ7Civonp8gPCBraW5kXC1vZlwtY2F0ZXJwaWxsYXI7Civms64gPCB6aG91XC1keW5hc3R5XC1zY2hvb2w7CivpsrMgPCB0aGVcLXNpbHZlcnlcLXBvbWZyZXQ7CivpnKogPCBsb25nXC1hbmRcLWhlYXZ5XC1yYWluOwor5p6YIDwgdGhlXC1oYW5kbGVcLW9mXC10b29sczsKK+a7uSA8IHRoZVwtYmFua1wtb2ZcLWFcLXN0ZWFtOwor5b2zIDwgc3RlcFwtd2l0aFwtbGVmdFwtZm9vdDsKK+S6jSA8IHRvXC10YWtlXC1zbWFsbFwtc3RlcHM7CivnoJggPCBhXC1raW5kXC1vZlwtZmFybVwtdG9vbDsKK+agjiA8IGNoZXN0bnV0XC1sZWF2ZWRcLW9hazsKK+m5hyA8IHRoZVwtc2lsdmVyXC1waGVhc2FudDsKK+iLjCA8IGF2ZXJyaG9yYVwtY2FyYW1ib2xhOwor6YObIDwgb3V0ZXJcLXdhbGxzXC1vZlwtY2l0eTsKK+mGoiA8IG1pbmNlZFwtcGlja2xlZFwtbWVhdDsKK+ecmiA8IGRpc2Vhc2VcLW9mXC10aGVcLWV5ZXM7Civoo4kgPCBzXC1zZWFtXC1pblwtYVwtZ2FybWVudDsKK+W0piA8IGFcLW1vdW50YWluXC1pblwta2Fuc3U7CivlhZUgPCBhXC1mZW1hbGVcLXJoaW5vY2Vyb3M7CivoqLrmlrflip/og70gPCBkaWFnbm9zdGljXC1mdW5jdGlvbjsKK+iyoeaUv+mDqCA8IG1pbmlzdHJ5XC1vZlwtZmluYW5jZTsKK+WllOa1gSA8IGZsb3dcLWF0XC1ncmVhdFwtc3BlZWQ7Civlu6PlkYrllYYgPCBhZHZlcnRpc2luZ1wtY29tcGFueTsKK+S4gOeZvuS6lOWNgeWkmuW5tCA8IG1vcmVcLXRoYW5cLTE1MFwteWVhcnM7Civml6XmlocgPCBqYXBhbmVzZVwtXChsYW5ndWFnZVwpOwor6aas5L6G6KW/5Lqe6KqeIDwgbWFsYXNpYW5cLVwobGFuZ3VhZ2VcKTsKK+aSnuimiyA8IHRvXC1tZWV0XC1ieVwtYWNjaWRlbnQ7Civlt67poY0gPCBiYWxhbmNlXC1cKGZpbmFuY2lhbFwpOwor5Y2K5oiqIDwgaGFsZlwtXChvZlwtYVwtc2VjdGlvblwpOwor5Ymb57qUIDwgXChqdXN0XClcLWFcLW1vbWVudFwtYWdvOwor5oWw5a6J5ammIDwgY29tZm9ydFwtd29tYW5cfHdvbWVuOwor5oqY5bCE546HIDwgaW5kZXhcLW9mXC1yZWZyYWN0aW9uOwor5bug56SmIDwgZmFjdG9yaWVzXC1hbmRcLW1pbmVzOwor5YKz6Ly45aqS6auUIDwgdHJhbnNtaXNzaW9uXC1tZWRpdW07Civotbfmrbvlm57nlJ8gPCBhcmlzZVwtZnJvbVwtdGhlXC1kZWFkOwor54ax54OIIDwgd2FybVwtXCh3ZWxjb21lXCxcLWV0Y1wpOwor6auY6ZqO6Kqe6KiAIDwgaGlnaFwtbGV2ZWxcLWxhbmd1YWdlOwor5bm05Luj5YidIDwgYmVnaW5uaW5nXC1vZlwtYW5cLWFnZTsKK+S6nua0suiIh+WkquW5s+a0i+WcsOWNgCA8IGFzaWFcLXBhY2lmaWNcLXJlZ2lvbjsKK+i+r+ittyA8IHNwZWFrXC1pblwtZGVmZW5jZVwtb2Y7Civnvo7lnIvkurrmsJEgPCB0aGVcLWFtZXJpY2FuXC1wZW9wbGU7Civlk6XlgKvmr5Tkup7lpKflrbggPCBjb2x1bWJpYVwtdW5pdmVyc2l0eTsKK+mYsuempuaApyA8IGRlZmVuc2l2ZVwtXCh3ZWFwb25zXCk7CivpgY7kuobkupTliIbpkJggPCBmaXZlXC1taW51dGVzXC1wYXNzZWQ7CivmiZPmqavngq4gPCBzcGVha1wtdW53YXJyYW50ZWRseTsKK+Wkp+aJuSA8IGxhcmdlXC1xdWFudGl0aWVzXC1vZjsKK+mdouWarumAo+aOpSA8IGNvbm5lY3Rpb25cLW9yaWVudGVkOwor5bCI5qWt5Lq65omNIDwgZXhwZXJ0XC1cKGluXC1hXC1maWVsZFwpOwor54Sh57ir6YCj5o6lIDwgc2VhbWxlc3NcLWNvbm5lY3Rpb247CivntoHnpaggPCBraWRuYXBcLVwoZm9yXC1yYW5zb21cKTsKK+eZvemKhSA8IGNvcHBlclwtbmlja2VsXC1hbGxveTsKK+WFi+e+heWcsOS6nuiqniA8IGNyb2F0aWFuXC1cKGxhbmd1YWdlXCk7CivntbHnqLEgPCBjb2xsZWN0aXZlbHlcLWNhbGxlZDsKK+eZvOiogOasiiA8IHRoZVwtcmlnaHRcLW9mXC1zcGVlY2g7Civlu6LmsKMgPCB3YXN0ZVwtXChleGhhdXN0XClcLWdhczsKK+iojuirlueahOitsOmhjCA8IHRvcGljXC1vZlwtZGlzY3Vzc2lvbjsKK+WMheWtkCA8IHN0ZWFtZWRcLXN0dWZmZWRcLWJ1bjsKK+e0heiRiSA8IHJlZFwtYXV0dW1uYWxcLWxlYXZlczsKK+WxpOimi+i/reWHuiA8IHRvXC1vY2N1clwtZnJlcXVlbnRseTsKK+eZvuiyqCA8IGdlbmVyYWxcLW1lcmNoYW5kaXNlOwor6ayi6auuIDwgaGFpclwtb25cLXRoZVwtdGVtcGxlczsKK+e+juWci+S7peWkliA8IG91dHNpZGVcLW9mXC10aGVcLXVcLnNcLjsKK+WEmOmHjyA8IGFzXC1tdWNoXC1hc1wtcG9zc2libGU7Civouqvpq5ggPCBcKGFcLXBlcnNvbicnc1wpXC1oZWlnaHQ7CivmlZnlrbggPCB0ZWFjaGVyXC1hbmRcLXN0dWRlbnQ7CivphJnkurogPCB5b3VyXC1odW1ibGVcLXNlcnZhbnQ7CivlnLDlnYDnmoTovYnmj5sgPCBhZGRyZXNzXC10cmFuc2xhdGlvbjsKK+aVheWuriA8IHRoZVwtaW1wZXJpYWxcLXBhbGFjZTsKK+aUv+WxgCA8IHBvbGl0aWNhbFwtc2l0dWF0aW9uOwor552/5pm6IDwgd2lzZVwtYW5kXC1mYXJzaWdodGVkOwor6Ieq5YuV5Zyw5bel5L2cIDwgYXV0b21hdGljXC1vcGVyYXRpb247CivmraTmmYLmraTliLsgPCBhdFwtdGhpc1wtdmVyeVwtbW9tZW50Owor6biSIDwgdGhlXC1lYXN0ZXJuXC1qYWNrZGF3Owor6bayIDwgc2liZXJpYW5cLWZseWNhdGNoZXI7CivlubTkuYvkuYUgPCBwZXJpb2RcLW9mXC1cLlwuXC5cLXllYXJzOwor6KOc6KeSIDwgc3VwcGxlbWVudGFyeVwtYW5nbGU7CivpsLYgPCBrb25vc2lydXNcLXB1bmN0YXR1czsKK+mvpSA8IHBvbWF0b211c1wtc2FsdGF0cml4Owor6a+VIDwgY29yeXBoYWVuYVwtaGlwcHVydXM7CivprrYgPCBzZWJhc3RvZGVzXC1ndW50aGVyaTsKK+mAsuaUuyA8IGF0dGFja1wtXChtaWxpdGFyaWx5XCk7Civmk7rlvIQgPCBtb3ZlXC1iYWNrXC1hbmRcLWZvcnRoOwor5LiN5Lit5oSPIDwgbm90XC10b1wtb25lJydzXC1saWtpbmc7Civpo4IgPCB3aW5kXC1pblwtaGlnaFwtcGxhY2VzOwor6aK+IDwgYmxvd2luZ1wtb2ZcLXRoZVwtd2luZDsKK+mgjSA8IHRvXC1yYWlzZVwtb25lJydzXC1oZWFkOwor6Z+YIDwgYXJjaGVyJydzXC10aHVtYlwtcmluZzsKK+merCA8IGFcLXF1aXZlclwtb25cLWFcLWhvcnNlOwor6LK/5piT5L+d6K235Li7576pIDwgdHJhZGVcLXByb3RlY3Rpb25pc207CivpgY3luIMgPCBiZVwtZm91bmRcLWV2ZXJ5d2hlcmU7CivlpJrpu6jpgbjoiIkgPCBtdWx0aXBhcnR5XC1lbGVjdGlvbjsKK+mctiA8IGRvd25wb3VyaW5nXC1vZlwtcmFpbjsKK+mcriA8IGRlbnNlbmVzc1wtb2ZcLWNsb3VkczsKK+WFiee6luihsOa4myA8IG9wdGljYWxcLWF0dGVudWF0aW9uOwor5pS55ZCNIDwgdG9cLWNoYW5nZVwtb25lc1wtbmFtZTsKK+mRtCA8IHRvXC1lbmdyYXZlXC1vclwtY2FydmU7CivkuI3li57ogIznjbIgPCByZWFwXC13aXRob3V0XC1zb3dpbmc7CivpjoQgPCBpcmlkaXVtXC1laW5zdGVpbml1bTsKK+aKgOihk+aomea6liA8IHRlY2hub2xvZ3lcLXN0YW5kYXJkOwor6KOc6ICDIDwgbWFrZVwtdXBcLWV4YW1pbmF0aW9uOwor6ZaL55m86YGO56iLIDwgZGV2ZWxvcG1lbnRcLXByb2Nlc3M7Civnmb7liIbliLYgPCBodW5kcmVkXC1tYXJrXC1zeXN0ZW07CivpiIMgPCBhbmNpZW50XC13aW5lXC12ZXNzZWw7CivphacgPCB0b1wtcGxlZGdlXC13aXRoXC13aW5lOwor5YiG5p6Q5a62IDwgXChwb2xpdGljYWxcKVwtYW5hbHlzdDsKK+aSreW8hCA8IG9yZGVyXC1zdWJqZWN0XC1hYm91dDsKK+W5tOW6lSA8IHRoZVwtZW5kXC1vZlwtdGhlXC15ZWFyOwor57SE5quDIDwgYXJrXC1vZlwtdGhlXC1jb3ZlbmFudDsKK+W5q+W3pSA8IGhlbHBcLXdpdGhcLWZhcm1cLXdvcms7CivloLHlu6IgPCByZXBvcnRcLWFzXC13b3J0aGxlc3M7CivpgJrkv6HosqDovIkgPCBjb21tdW5pY2F0aW9uc1wtbG9hZDsKK+W4uOimj+atpuWZqCA8IGNvbnZlbnRpb25hbFwtd2VhcG9uOwor57Wx6KiI57WQ5p6cIDwgc3RhdGlzdGljYWxcLXJlc3VsdHM7Civlj7jnqbropovmhaMgPCBhXC1jb21tb25cLW9jY3VycmVuY2U7Civnq4vms5XmnIMgPCBsZWdpc2xhdGl2ZVwtY291bmNpbDsKK+Wft+aOjCA8IHdpZWxkXC1cKHBvd2VyXCxcLWV0Y1wuXCk7CivopbQgPCBhXC1vbmVcLXBpZWNlXC1nYXJtZW50Owor6KSDIDwgYVwtc2VhbVwtaW5cLWFcLWdhcm1lbnQ7CivlvJXlipvloLQgPCBncmF2aXRhdGlvbmFsXC1maWVsZDsKK+WFteasiiA8IG1pbGl0YXJ5XC1sZWFkZXJzaGlwOwor6KCwIDwgY2VyYW1ieXhcLXJ1Z2ljb2xsaXM7Civon6ggPCB0aGVcLXNpYmVyaWFuXC1qZXJib2E7CivonZ0gPCB0aGVcLWxhcnZhXC1vZlwtbG9jdXN0Owor5LqM5Y2B5LiD6JmfIDwgMjd0aFwtZGF5XC1vZlwtYVwtbW9udGg7CivpgLzkvpsgPCBleHRvcnRcLWFcLWNvbmZlc3Npb247CivoppbogIzkuI3oposgPCB0dXJuXC1hXC1ibGluZFwtZXllXC10bzsKK+S/neWuieiHquWLleWMliA8IHNlY3VyaXR5XC1hdXRvbWF0aW9uOwor6JSKIDwgbmFzdHVydGl1bVwtbW9udGFudW07Civok4cgPCBmb2xsaWNsZXNcLW9mXC1wbGFudHM7CivokYcgPCBlbHNob2x0cmlhXC1wYWx0cmluaTsKK+iOlSA8IG55bXBob2lkZXNcLXBlbHRhdHVtOwor6IyzIDwgY3lwZXJ1c1wtbWFsYWNjZW5zaXM7Civoi7MgPCBwZXRhc2l0ZXNcLWphcG9uaWN1czsKK+iJqyA8IGJvd1wtb3JcLXByb3dcLW9mXC1ib2F0Owor5raI6ICX6YePIDwgcmF0ZVwtb2ZcLWNvbnN1bXB0aW9uOwor6Zu75a2Q5paH5Lu2IDwgZWxlY3Ryb25pY1wtZG9jdW1lbnQ7CivplovmlL4gPCBsaWZ0XC1cKHJlc3RyaWN0aW9uc1wpOwor55m75pyIIDwgZ29cLVwodXBcKVwtdG9cLXRoZVwtbW9vbjsKK+e+oiA8IGZpbmVcLXdvb2xlblwtZmFicmljczsKK+aguOmbu+ermSA8IG51Y2xlYXJcLXBvd2VyXC1wbGFudDsKK+e+kSA8IGFcLWd1aWRlXC10b1wtZ29vZG5lc3M7CivntZDmp4vliqnoqZ4gPCBzdHJ1Y3R1cmFsXC1wYXJ0aWNsZTsKK+Wtl+aWn+WPpemFjCA8IHdlaWdoaW5nXC1ldmVyeVwtd29yZDsKK+e5siA8IHRvXC13b3JrXC1hc1wtYVwtdGFpbG9yOwor5bmj5YC8IDwgdmFsdWVcLW9mXC1hXC1jdXJyZW5jeTsKK+e2gCA8IGFcLWtpbmRcLW9mXC1zYWNrY2xvdGg7CivmlL/msrvpl5zkv4IgPCBwb2xpdGljYWxcLXJlbGF0aW9uczsKK+WGsOWgtCA8IHNrYXRpbmdcLW9yXC1pY2VcLXJpbms7Civnm7jkupLlhbzlrrkgPCBtdXR1YWxseVwtY29tcGF0aWJsZTsKK+Wwi+S6i+eUn+mdniA8IHRvXC1sb29rXC1mb3JcLXRyb3VibGU7Civnq5EgPCBiZVwtdmFzdFwtYW5kXC1lbmRsZXNzOwor56aTIDwgdG9cLWRyaXZlXC1vdXRcLWRlbW9uczsKK+elkCA8IGRpdmluZVwtaW50ZXJ2ZW50aW9uOwor55uu5YmNIDwgYXRcLXRoZVwtcHJlc2VudFwtdGltZTsKK+ihqOmdouWMliA8IGNvbWVcLXRvXC10aGVcLXN1cmZhY2U7CivnrYbora8gPCB3cml0dGVuXC10cmFuc2xhdGlvbjsKK+ethuippiA8IHdyaXR0ZW5cLWV4YW1pbmF0aW9uOwor55+UIDwgYnJpbGxpYW50XC1cKG9mXC1leWVzXCk7Civpl5zliIcgPCBiZVwtZGVlcGx5XC1jb25jZXJuZWQ7CivlsI/lr6vlrZfmr40gPCBsb3dlcmNhc2VcLVwobGV0dGVyc1wpOwor556VIDwgY2F0YXJhY3RcLWluXC10aGVcLWV5ZTsKK+i1sOmWiyA8IGdldFwtb3V0XC1vZlwtdGhlXC13YXlcITsKK+imhuS6oSA8IGZhbGxcLVwob2ZcLWFuXC1lbXBpcmVcKTsKK+mbu+ipseapnyA8IHRlbGVwaG9uZVwtZXF1aXBtZW50Owor6KOB5pa3IDwgY29uc2lkZXJcLWFuZFwtZGVjaWRlOwor57i957Wx5bqcIDwgcHJlc2lkZW50aWFsXC1wYWxhY2U7CivntIDlhYMgPCBiZWdpbm5pbmdcLW9mXC1hblwtZXJhOwor5YW15ZyYIDwgbGFyZ2VcLW1pbGl0YXJ5XC11bml0Owor6L6m5LqLIDwgdG9cLWhhbmRsZVwtXChhZmZhaXJzXCk7Civns77lgY8gPCB0b1wtY29ycmVjdFwtYW5cLWVycm9yOwor5omN6K2YIDwgYWJpbGl0eVwtYW5kXC1pbnNpZ2h0Owor5oyJ55CGIDwgYWNjb3JkaW5nXC10b1wtcmVhc29uOwor6LyU5bmjIDwgZnJhY3Rpb25hbFwtY3VycmVuY3k7CivmkK3kvLQgPCB0cmF2ZWxcLXdpdGhcLWFub3RoZXI7CivlnKjmn5DnqK7nqIvluqbkuIogPCB0b1wtYVwtY2VydGFpblwtZXh0ZW50Owor5ZyL5peXIDwgZmxhZ1wtXChvZlwtYVwtY291bnRyeVwpOwor6LuN5pS/IDwgYXJteVwtYW5kXC1nb3Zlcm5tZW50Owor55eF5rOBIDwgc3RhdGVcLW9mXC1hblwtaWxsbmVzczsKK+WIhuS9iOW8j+e2sue1oSA8IGRpc3RyaWJ1dGVkXC1uZXR3b3JrOwor566h55CG5Yqf6IO9IDwgbWFuYWdlbWVudFwtZnVuY3Rpb247CivovYnlkJEgPCBjaGFuZ2VcLW9mXC1kaXJlY3Rpb247CivmqYvmjqXlmaggPCBicmlkZ2VcLVwobmV0d29ya2luZ1wpOwor55m95Y23IDwgYmxhbmtcLWV4YW1pbmVcLXBhcGVyOwor5pu85b655pav54m557eo56K8IDwgbWFuY2hlc3RlclwtZW5jb2Rpbmc7Civlhavku5kgPCB0aGVcLWVpZ2h0XC1pbW1vcnRhbHM7CivovIPlpKcgPCBjb21wYXJhdGl2ZWx5XC1sYXJnZTsKK+ethueulyA8IGRvXC1hXC1zdW1cLWluXC13cml0aW5nOwor5qGqIDwgbXl0aGljYWxcLWdpYW50XC10cmVlOwor5o+Q5Ye6IDwgdG9cLXJhaXNlXC1cKGFuXC1pc3N1ZVwpOwor55m95Lq6IDwgd2hpdGVcLW1hblwtYW5kXC13b21hbjsKK+afriA8IGZsYXRcLXBpZWNlc1wtb2ZcLXdvb2Q7CivlgZrms5UgPCB3YXlcLW9mXC1kb2luZ1wtdGhpbmdzOwor5pq1IDwgZHJ5XC1ieVwtZXhwb3NpbmdcLXN1bjsKK+aKveeFmSA8IHNtb2tlXC1cKGFcLWNpZ2FyZXR0ZVwpOwor5padIDwgc21hbGxcLWphZGVcLXdpbmVcLWN1cDsKK+ihqOaDhSA8IFwoZmFjaWFsXClcLWV4cHJlc3Npb247Civoo5zliqkgPCBcKGZpbmFuY2lhbFwpXC1zdWJzaWR5Owor5pWEIDwgdG9cLXB1dFwtZm9ydGhcLWVmZm9ydDsKK+iGoOeJhyA8IFwocGhvdG9ncmFwaGljXClcLWZpbG07Civmko0gPCB0b1wtaG9sZFwtaW5cLXRoZVwtaGFuZDsKK+S4jeacn+eEtuiAjOeEtiA8IGhhcHBlblwtdW5leHBlY3RlZGx5Owor5o+VIDwgcm9sbFwtdXBcLXRoZVwtc2xlZXZlczsKK+aflOmBkyA8IFwodGhlXC1zcG9ydFwtb2ZcKVwtanVkbzsKK+WKoOWAvOWei+e2sui3ryA8IHZhbHVlXC1hZGRlZFwtbmV0d29yazsKK+aOoeWItiA8IGNvbGxlY3RcLWFuZFwtcHJvY2VzczsKK+S4jeW+l+S6hiA8IGRlc3BlcmF0ZWx5XC1zZXJpb3VzOwor5oqE542yIDwgdG9cLXNlYXJjaFwtYW5kXC1zZWl6ZTsKK+ihqOWnkCA8IG9sZGVyXC1mZW1hbGVcLWNvdXNpbjsKK+WIhuS9iOaOp+WItiA8IGRpc3RyaWJ1dGVkXC1jb250cm9sOwor5bCXIDwgeW91bmdlclwtb2ZcLWJyb3RoZXJzOwor6Luf5Lu2IDwgXChjb21wdXRlclwpXC1zb2Z0d2FyZTsKK+WjkCA8IHRoZVwtaW1wZXJpYWxcLXNpZ25ldDsKK+aLm+W+hSA8IHRvXC1yZWNlaXZlXC1cKGd1ZXN0c1wpOwor5p2/5qKB5qmLIDwgcGxhdGVcLWdpcmRlclwtYnJpZGdlOwor5Z6VIDwgdXNlZFwtaW5cLXBsYWNlXC1uYW1lczsKK+aLnOW5tCA8IHBheVwtYVwtbmV3XC15ZWFyXC1jYWxsOwor5qC96Lef6aCtIDwgdG9cLXN1ZmZlclwtYVwtc2V0YmFjazsKK+WUmiA8IHZvbWl0aW5nXC1vZlwtYW5pbWFsczsKK+aguOW3peeoiyA8IG51Y2xlYXJcLWVuZ2luZWVyaW5nOwor5Zug54m557ay6IGv6YCaIDwgaW50ZXJuZXRcLWNvbm5lY3Rpb247CivlkbogPCB2b2ljZVwtb2ZcLWFuZ2VyXC12YXN0Owor5LqS6YCaIDwgdG9cLWludGVyY29tbXVuaWNhdGU7Civnp5HlrbjnmoTkuqTmtYEgPCBzY2llbnRpZmljXC1leGNoYW5nZTsKK+WuieeQhuacgyA8IHVuXC1zZWN1cml0eVwtY291bmNpbDsKK+e2sue1oeaHieeUqCA8IG5ldHdvcmtcLWFwcGxpY2F0aW9uOwor5YGYIDwgYW5jaWVudFwtZmFtaWx5XC1uYW1lOwor56+h5L2NIDwgdG9cLXNlaXplXC10aGVcLXRocm9uZTsKK+apn+aisOe/u+itryA8IG1hY2hpbmVcLXRyYW5zbGF0aW9uOwor57236bucIDwgZGlzbWlzc1wtZnJvbVwtb2ZmaWNlOwor5LavIDwgdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7CivktpIgPCBvdXRzdGFuZGluZ1wtYWJpbGl0eTsKK+S2jCA8IGFcLXB1c3R1bGVcLW9yXC1waW1wbGU7CivktoQgPCBzdHJpcGVkXC1tb3R0bGVkXC1yYXQ7CivktbEgPCByZWRcLWFuZFwtYmxhY2tcLWNvbG9yOwor5LWUIDwgdG9cLXR1cm5cLW9uXC10aGVcLWhlZWw7CivktKogPCBhXC1mYWJ1bG91c1wtY3JlYXR1cmU7CivktKAgPCBhXC15b3VuZ1wtdGFpbGVkXC1kZWVyOwor5bGs5a+mIDwgdHVyblwtb3V0XC10b1wtYmVcLXRydWU7CivksacgPCBhXC1raW5kXC1vZlwtZmlzaFwtZWVsczsKK+SwnCA8IGFcLWxhcmdlXC1lYXJ0aGVuXC1wb3Q7CivkrrcgPCBtb3ZlbWVudFwtb2ZcLWFcLWhvcnNlOwor5K6DIDwgdG9cLWdvXC1iZWZvcmVcLW90aGVyczsKK+a0vumBoyA8IHNlbmRcLVwob25cLWFcLW1pc3Npb25cKTsKK+SrsSA8IGFcLXBhcnRcLW9mXC10aGVcLXNrdWxsOwor5KupIDwgdG9cLXNoYWtlXC1vbmUnJ3NcLWhlYWQ7Civkqr8gPCB0aGVcLXRvcFwtb2ZcLXRoZVwtaGVhZDsKK+SqvSA8IGhvYXJ5XC1oYWlyZWRcLXBlcnNvbjsKK+SptyA8IHRoZVwtc2lkZXNcLW9mXC1hXC1zaG9lOwor5KmnIDwgdG9cLXRpZVwtdXBcLWh1cnJpZWRseTsKK+SpjCA8IHRvXC1oYXZlXC1hXC13b3JuXC1sb29rOwor5KeUIDwgdG9cLW1lZXRcLWF0XC10aGVcLWJhbms7CivkppkgPCBhXC1nb3Zlcm5tZW50XC1hZ2VuY3k7CivkpacgPCBhXC1maW5lXC1raW5kXC1vZlwtamFkZTsKK+ioiuahhuWCs+mAgeacjeWLmSA8IGZyYW1lXC1yZWxheVwtc2VydmljZTsKK+SkhiA8IGFcLWtpbmRcLW9mXC1yaWNlXC13aW5lOwor5KSBIDwgY29va2VkXC1vclwtd2VsbFwtZG9uZTsKK+SiiyA8IGFcLW1hcnNoYWxcLW9yXC1oZXJhbGQ7CivkuKbph40gPCBsYXlcLWVxdWFsXC1zdHJlc3NcLW9uOwor6Luf5Lu25oqA6KGTIDwgc29mdHdhcmVcLXRlY2hub2xvZ3k7Civkn6MgPCBhblwtYW5pbWFsXC1pblwtbGVnZW5kOwor5J6zIDwgdG9cLXN0dW1ibGVcLWFuZFwtZmFsbDsKK+SdoCA8IGFcLWtpbmRcLW9mXC13aWxkXC1ib2FyOwor5JyBIDwgdG9cLWFidXNlXC1hbmRcLWluc3VsdDsKK+SZkiA8IHRvXC1zdG9yZVwtb3JcLXNhdmVcLXVwOwor5JmPIDwgc2hvcnRcLXNsZWV2ZXNcLXNoaXJ0Owor5JmBIDwgY2hpbGRyZW4nJ3NcLWdhcm1lbnRzOwor5JiqIDwgY2xvdGhlc1wtd2l0aG91dFwtaGVtOwor5JaiIDwgZmlyc3RcLWJvcm5cLXNpbGt3b3JtOwor5JaWIDwgdG9cLXNob3dcLWZhbWlsaWFyaXR5Owor5JW+IDwgYVwta2luZFwtb2ZcLXZlZ2V0YWJsZTsKK+SVmCA8IGFcLXZhcmlldHlcLW9mXC1mdW5ndXM7CivklYMgPCB0aGVcLXNoYWRlXC1vZlwtYVwtdHJlZTsKK+STtyA8IG55bXBob2lkZXNcLXBlbHRhbHVtOwor5JONIDwgY3J1Y2lmZXJvdXNcLWZsb3dlcnM7CivkkoggPCBzaWRlXC1iZWFtXC1vZlwtYVwtYm9hdDsKK+SSgCA8IHNob3J0XC1hbmRcLWRlZXBcLWJvYXQ7CivkkYcgPCBtZWRpY2luZVwtZm9yXC1hXC1zb3JlOwor5JCtIDwgYVwtZGlzY2hhcmdlXC1vclwtZmx1eDsKK+SPuSA8IHRvXC13YXRjaFwtc3RlYWx0aGlseTsKK+SPqCA8IHRvXC1zd2VsbFwtdXBcLWdyZWF0bHk7Civkj4YgPCBidXp6aW5nXC1pblwtdGhlXC1lYXJzOwor5I23IDwgdG9cLWNoYXNlXC1lYWNoXC1vdGhlcjsKK+SLuSA8IGJyZWFkdGhcLW9mXC1tYXRlcmlhbDsKK+SLsCA8IHRvXC1iaW5kXC1vclwtcmVzdHJhaW47CivmiY3lrbggPCB0YWxlbnRcLWFuZFwtbGVhcm5pbmc7CivogJXogJggPCBwbG93aW5nXC1hbmRcLXdlZWRpbmc7Civmk7rploDpnaIgPCBrZWVwXC11cFwtYXBwZWFyYW5jZXM7CivoqIrmoYblgrPpgIHntrLot68gPCBmcmFtZVwtcmVsYXlcLW5ldHdvcms7Civkh70gPCBhXC1jb2Fyc2VcLWJhbWJvb1wtbWF0Owor5IavIDwgYVwtc2hvcnRcLXNoYXBlZFwtZmFjZTsKK+SFryA8IGFcLXZhcmlldHlcLW9mXC1taWxsZXQ7CivkhZ8gPCB2YXJpZXRpZXNcLW9mXC1taWxsZXQ7CivkhZIgPCBhXC1zaGFycFwtZWRnZWRcLWdyYXNzOwor5oWI56WlIDwgXChhXClcLWtpbmRseVwtXChwZXJzb25cKTsKK+SBiyA8IHdpdGhcLW9uZVwtZXllXC1jbG9zZWQ7CivkgYMgPCB0b1wtbG9va1wtYXR0ZW50aXZlbHk7CivkgKQgPCBpbnNpZ2h0XC1vZlwtamVhbG91c3k7CivkgKMgPCB0b1wtbG9va1wtc3RlYWRpbHlcLWF0Owor5aW25rK56I+c6IqxIDwgY3JlYW1lZFwtY2F1bGlmbG93ZXI7Civjv5MgPCBkaXNlYXNlXC1vZlwtdGhlXC1ob29mOwor5YWJ55m86YCB5ZmoIDwgb3B0aWNhbFwtdHJhbnNtaXR0ZXI7CivjvrsgPCBub3RcLWFueVwtcHJvZ3Jlc3NpdmU7CivjvrYgPCBkaXNlYXNlXC1vZlwtdGhlXC1rbmVlOwor5a6J5qiCIDwgcGVhY2VcLWFuZFwtaGFwcGluZXNzOwor476iIDwgYVwtbWFsaWduYW50XC1kaXNlYXNlOwor472tIDwgdmFjYW50XC1sb3RcLW9yXC1zcGFjZTsKK+O9jCA8IHRoZVwtcmlkZ2VcLW9mXC1hXC1yb29mOwor472CIDwgYVwtY3JhY2tlZFwtY29udGFpbmVyOwor47yZIDwgYnJpY2t3b3JrXC1vZlwtYVwtd2VsbDsKK+O8kiA8IGFcLWtpbmRcLW9mXC1iaWdcLW1lbG9uOwor57ay57Wh55Kw5aKDIDwgbmV0d29ya1wtZW52aXJvbm1lbnQ7CivmhJvkurrlpoLlt7EgPCBsb3ZlXC1vdGhlcnNcLWFzXC1zZWxmOwor47i2IDwgY29sb3JcLW9mXC10aGVcLW94dGFpbDsKK+O4tSA8IHRoZVwtbG93aW5nXC1vZlwtYW5cLW94Owor47ilIDwgaG91c2Vob2xkXC1yZWdpc3RlcnM7CivjuKIgPCBjcm9zc1wtYmVhbVwtb2ZcLWFcLWJlZDsKK+O4niA8IGJsb2Nrc1wtZm9yXC1wcmludGluZzsKK+O4kyA8IHRvXC1oYXZlXC1kaXNhcHBlYXJlZDsKK+O4gCA8IGJsYWNrZW5lZFwtd2l0aFwtc29vdDsKK+O3pCA8IHJvc3lcLWNsb3Vkc1wtb2ZcLWRhd247CivpqJnlj5YgPCB0b1wtZ2FpblwtYnlcLWNoZWF0aW5nOwor47KHIDwgdGhlXC1yYXR0bGVcLW9mXC1kcnVtczsKK+OxviA8IGFcLWtpbmRcLW9mXC1vcm5hbWVudHM7CivjsbkgPCB0b1wtZGllXC1mcm9tXC1kaXNlYXNlOwor47GrIDwgZGVzdHJveWVkXC1vclwtcnVpbmVkOwor47GqIDwgc3R1cGlkXC1hbmRcLWNvbmZ1c2VkOwor47GKIDwgYXN0aG1hdGljXC1icmVhdGhpbmc7CivjsYkgPCBtb3ZpbmdcLW9mXC10aGVcLW1vdXRoOwor47C0IDwgdG9cLWdyYXRlXC1vblwtdGhlXC1lYXI7CivjsK8gPCB0aGVcLXdheVwtb2ZcLXNwZWFraW5nOwor6Lev6YCP56S+IDwgcmV1dGVyc1wtbmV3c1wtYWdlbmN5Owor5ra854i9IDwgY29vbFwtYW5kXC1yZWZyZXNoaW5nOwor6buo57WEIDwgbGVhZGluZ1wtcGFydHlcLWdyb3VwOwor5L6L5aSWIDwgXChtYWtlXC1hblwpXC1leGNlcHRpb247Civjq68gPCBpblwtY29udHJhdmVudGlvblwtb2Y7Civos4fmupAgPCBcKG5hdHVyYWxcKVwtcmVzb3VyY2VzOwor5ZWG5pyDIDwgY2hhbWJlclwtb2ZcLWNvbW1lcmNlOwor6LWk5a2XIDwgXChmaW5hbmNpYWxcKVwtZGVmaWNpdDsKK+OppiA8IHRvXC1sZWFkXC1ieVwtdGhlXC1oYW5kOwor46mYIDwgdG9cLW1vb3JcLXRvXC10aGVcLWJhbms7CivjqJ0gPCB0aGVcLXZlcnlcLWhhcmRcLXN0dWZmOwor46eFIDwgdG9cLXR1cm5cLXVwc2lkZVwtZG93bjsKK+OmkyA8IGRpZmZpY3VsdFwtaW50ZW50aW9uOwor46WdIDwgdG9cLWFyb3VzZVwtdG9cLWFjdGlvbjsKK+mYv+aLieW3tOmmrCA8IGFsYWJhbWFcLVwodVwuc1wuc3RhdGVcKTsKK+OiiiA8IHRvXC1zZXRcLXNpZGVcLWJ5XC1zaWRlOwor46KCIDwgb2ZcLWhpZ2hseVwtc3RyYXRlZ2ljOwor6Yuw6Zui5a2Q6Zu75rGgIDwgbGl0aGl1bVwtaW9uXC1iYXR0ZXJ5Owor57WC6bue5Zyw5Z2AIDwgZGVzdGluYXRpb25cLWFkZHJlc3M7Civjn7EgPCBzaGFwZVwtb2ZcLWFcLW1vdW50YWluOwor45+TIDwgbG9mdHlcLWFuZFwtZGFuZ2Vyb3VzOwor45+SIDwgbW91bnRhaW5zXC1hZGpvaW5pbmc7CivkuKboga8gPCBwYXJhbGxlbFwtY29ubmVjdGlvbjsKK+OYqyA8IHRvXC1mYWxsXC1pbnRvXC1hXC13ZWxsOwor6LKh5rqQIDwgZmluYW5jaWFsXC1yZXNvdXJjZXM7Civjl7YgPCB0b1wtZXhwZWxcLXRoZVwtYnJlYXRoOwor56eR5a246ZmiIDwgYWNhZGVteVwtb2ZcLXNjaWVuY2VzOwor45aqIDwgc291bmRcLW9mXC1zdXJwcmlzaW5nOwor45S5IDwgYVwtc3VycGx1c1wtb3JcLWV4Y2VzczsKK+OTtyA8IHRvXC1jdXRcLW9mZlwtdGhlXC1ub3NlOwor45KEIDwgYnJpdHRsZVwtYW5kXC1mcmlhYmxlOwor45KDIDwgY2FwaXRhbFwtZm9ybVwtb2ZcLXR3bzsKK+mHj+iuiiA8IHF1YW50aXRhdGl2ZVwtY2hhbmdlOwor6ICQ54WpIDwgcGF0aWVudFwtXChhZGplY3RpdmVcKTsKK+S4mee2uCA8IHBvbHlwcm9weWxlbmVcLWZpYnJlOwor5LqM5Y2B5YWt6JmfIDwgMjZ0aFwtZGF5XC1vZlwtYVwtbW9udGg7CivmraXpgLLliLYgPCBzdGVwXC1ieVwtc3RlcFwtc3lzdGVtOwor5YmN6JiH6IGvIDwgZm9ybWVyXC1zb3ZpZXRcLXVuaW9uOwor5LiN5Zyo5oSPIDwgcGF5XC1ub1wtYXR0ZW50aW9uXC10bzsKK+axuuitsCA8IFwocGFzc1wtYVwpXC1yZXNvbHV0aW9uOwor6Yyv5a2XIDwgaW5jb3JyZWN0XC1jaGFyYWN0ZXI7CivkuK3lnIvnlbblsYAgPCBjaGluZXNlXC1hdXRob3JpdGllczsKK+S8tOWUsSA8IHZvY2FsXC1hY2NvbXBhbmltZW50Owor6K2Y6LKoIDwgdG9cLWtub3dcLXdoYXQnJ3NcLXdoYXQ7CivnqJ/mgKcgPCBuYXR1cmFsXC1kaXNwb3NpdGlvbjsKK+mgkOe/kiA8IHRvXC1wcmVwYXJlXC1hXC1sZXNzb247CivlkIjmg4XlkIjnkIYgPCByZWFzb25hYmxlXC1hbmRcLWZhaXI7CivmtYHmtL4gPCBzY2hvb2xcLVwob2ZcLXRob3VnaHRcKTsKK+eZvuS+neeZvumghiA8IGRvY2lsZVwtYW5kXC1vYmVkaWVudDsKK+WNiuiHquiAlei+siA8IHNlbWlcLXRlbmFudFwtcGVhc2FudDsKK+WTgOaGkCA8IGZlZWxcLWNvbXBhc3Npb25cLWZvcjsKK+WPjeW9iOWwjuW9iCA8IGFudGltaXNzaWxlXC1taXNzaWxlOwor6LKh5a+2IDwgbW9uZXlcLWFuZFwtdmFsdWFibGVzOwor55Sf55Si6Kit5pa9IDwgcHJvZHVjdGlvblwtZmFjaWxpdHk7CivokaHokITniZnkurogPCBwb3J0dWd1ZXNlXC1cKHBlcnNvblwpOwor5LqL5a6cIDwgXChtYWtlXClcLWFycmFuZ2VtZW50czsKK+aVl+mhniA8IHNjdW1cLW9mXC1hXC1jb21tdW5pdHk7CivkuI3ntZXlpoLnuLcgPCBoYW5naW5nXC1ieVwtYVwtdGhyZWFkOwor5peX6KKNIDwgY2hpbmVzZVwtc3R5bGVcLWRyZXNzOwor6ZW35pyf56mp5a6a5oCnIDwgbG9uZ1wtdGVybVwtc3RhYmlsaXR5Owor5oqA6KGT55+l6K2YIDwgdGVjaG5pY2FsXC1rbm93bGVkZ2U7CivlvpDooYwgPCB3YWxrXC1zbG93bHlcLFwtc3Ryb2xsOwor6JeP5pePIDwgdGliZXRhblwtbmF0aW9uYWxpdHk7CivmqJPlrofoh6rli5XljJYgPCBidWlsZGluZ1wtYXV0b21hdGlvbjsKK+WkluWtq+WlsyA8IGRhdWdodGVyJydzXC1kYXVnaHRlcjsKK+WGsOmGi+mFuCA8IGdsYWNpYWxcLWFjZXRpY1wtYWNpZDsKK+e+juWci+i7jeS6uiA8IGFtZXJpY2FuXC1zZXJ2aWNlbWFuOwor6Zi/5q+U6KW/5bC85Lqe5Lq6IDwgYWJ5c3NpbmlhblwtXChwZXJzb25cKTsKK+a2iOeCjuiXpSA8IGFudGliaW90aWNcLW1lZGljaW5lOwor54Wn6aGnIDwgdGFrZVwtXChnb29kXClcLWNhcmVcLW9mOwor5aeU5ZOh6ZW3IDwgaGVhZFwtb2ZcLWFcLWNvbW1pdHRlZTsKK+imlueql+WKoOmAn+WZqCA8IHdpbmRvd3NcLWFjY2VsYXJhdG9yOwor6K6T5q2lIDwgXChtYWtlXC1hXClcLWNvbmNlc3Npb247CivpgorpgaAgPCBmYXJcLWZyb21cLXRoZVwtY2VudGVyOwor6I+v54i+6KGX5pel5aCxIDwgd2FsbFwtc3RyZWV0XC1qb3VybmFsOwor5pO66ZeKIDwgcGFyYWRlXC1vbmUnJ3NcLXdlYWx0aDsKK+aDheWgseWxgCA8IGludGVsbGlnZW5jZVwtYWdlbmN5Owor5pm05pyXIDwgc3VubnlcLWFuZFwtY2xvdWRsZXNzOwor5oKy5aOvIDwgc29sZW1uXC1hbmRcLXN0aXJyaW5nOwor5ZyL6Zqb6LK/5piTIDwgaW50ZXJuYXRpb25hbFwtdHJhZGU7CivnvbfluIIgPCBzaG9wa2VlcGVyJydzXC1zdHJpa2U7CivkuI3lpqggPCB0aGVyZVwtaXNcLW5vXC1oYXJtXC1pbjsKK+S6uumAoOiqnuiogCA8IGFydGlmaWNpYWxcLWxhbmd1YWdlOwor5Lqe5aSq57aT5ZCI57WE57mUIDwgYXBlY1wtXChvcmdhbml6YXRpb25cKTsKK+S4ueWPgyA8IHNhbHZpYVwtbWlsdGlvcnJoaXphOwor6Zu26JC9IDwgd2l0aGVyZWRcLWFuZFwtZmFsbGVuOwor5YyF6Lqr5belIDwgaW5kZW50dXJlZFwtbGFib3VyZXI7Civlvpfnn6UgPCBcKGZpbmRcLW91dFwtYW5kXClcLWtub3c7CivorormlYUgPCBhblwtdW5mb3Jlc2VlblwtZXZlbnQ7CivkuI3mlZfkuYvlnLAgPCBpbnZpbmNpYmxlXC1wb3NpdGlvbjsKK+aBkOaAlSA8IFwoaScnbVwpXC1hZnJhaWRcLVwodGhhdFwpOwor6Ieq6Lqr5Yip55uKIDwgb25lJydzXC1vd25cLWludGVyZXN0czsKK+W7oOimjyA8IGZhY3RvcnlcLXJlZ3VsYXRpb25zOwor6aCQ5a6aIDwgc2NoZWR1bGVcLWluXC1hZHZhbmNlOwor5LiN5YehIDwgb3V0XC1vZlwtdGhlXC1vcmRpbmFyeTsKK+ertueIreeUouWTgSA8IGNvbXBldGl0aXZlXC1wcm9kdWN0Owor5pWX57i+IDwgYmVcLXV0dGVybHlcLWRlZmVhdGVkOwor5pq05YipIDwgc3VkZGVuXC1odWdlXC1wcm9maXRzOwor6Z2e5qC45ZyL5a62IDwgbm9uXC1udWNsZWFyXC1jb3VudHJ5Owor572q5ZCNIDwgYVwtXChjcmltaW5hbFwpXC1jaGFyZ2U7CivkuI3kuY8gPCB0aGVyZVwtaXNcLW5vXC1sYWNrXC1vZjsKK+WQiOWQjCA8IFwoYnVzaW5lc3NcKVwtY29udHJhY3Q7CivljJfkuqzkurogPCBwZXJzb25cLWZyb21cLWJlaWppbmc7CivmsKPlgJnni4Dms4EgPCBjbGltYXRpY1wtY29uZGl0aW9uczsKK+eOliA8IGJsYWNrXC1jb2xvcmVkXC1qYWRlOwor5ZOqIDwgd2hpY2hcP1wtd2hlcmVcP1wtaG93XD87CivnibIgPCBzYWNyaWZpY2lhbFwtYW5pbWFsOwor5ryiIDwgdGhlXC1jaGluZXNlXC1wZW9wbGU7CivmvJUgPCB0cmFuc3BvcnRcLWJ5XC13YXRlcjsKK+mYtCA8ICcnZmVtYWxlJydcLXByaW5jaXBsZTsKK+S7mSA8IHRhb2lzdFwtc3VwZXJcLWJlaW5nOwor6am7IDwgdG9cLWJlXC1zdGF0aW9uZWRcLWF0Owor6IWuIDwgbG93ZXJcLXBhcnRcLW9mXC1mYWNlOwor5ouSIDwgd2FyZFwtb2ZmXC13aXRoXC1oYW5kOwor5qGCIDwgY2Fzc2lhXC1vclwtY2lubmFtb247CivmnLUgPCBjbHVzdGVyXC1vZlwtZmxvd2VyczsKK+abuSA8IG1pbmlzdHJ5XC1vZmZpY2lhbHM7CivnvY4gPCBhblwtZWFydGhlbndhcmVcLWphcjsKK+S4uCA8IHNtYWxsXC1yb3VuZFwtb2JqZWN0Owor55+pIDwgY2FycGVudGVyJydzXC1zcXVhcmU7CivohYogPCB5ZWFyXC1lbmRcLXNhY3JpZmljZTsKK+m+nyA8IHR1cnRsZVwtb3JcLXRvcnRvaXNlOwor6YK4IDwgb2ZmaWNpYWxcLXJlc2lkZW5jZTsKK+S+gyA8IHVwcmlnaHRcLWFuZFwtc3Ryb25nOwor6YKCIDwgdW5leHBlY3RlZFwtbWVldGluZzsKK+aAryA8IGxhY2tpbmdcLWluXC1jb3VyYWdlOwor55S4IDwgc3VidXJic1wtb2ZcLWNhcGl0YWw7CivmjZ4gPCBzY29vcFwtb3V0XC1vZlwtd2F0ZXI7CivmiZsgPCBjYXJyeVwtb25cLXNob3VsZGVyczsKK+iZlCA8IGFjdFwtd2l0aFwtcmV2ZXJlbmNlOwor6ZyWIDwgbG9uZ1wtc3BlbGxcLW9mXC1yYWluOwor6Z+nIDwgc3Ryb25nXC1hbmRcLXBsaWFibGU7Civnkb4gPCBicmlsbGlhbmNlXC1vZlwtZ2VtczsKK+ahlCA8IGNoaW5lc2VcLWJlbGxmbG93ZXI7CivpuLMgPCBtYWxlXC1tYW5kYXJpblwtZHVjazsKK+mSlyA8IG9ybmFtZW50YWxcLWhhaXJwaW47Civlt4UgPCBzdW1taXRcLW9mXC1tb3VudGFpbjsKK+aoqCA8IG9zbWFudGh1c1wtZnJhZ3JhbnM7CivooKEgPCB3b29kXC1ib3JpbmdcLWluc2VjdDsKK+i5giA8IHRyYW1wbGVcLXVuZGVyXC1mb290Owor6aqlIDwgdGhvcm91Z2hicmVkXC1ob3JzZTsKK+WUgSA8IGV4cHJlc3NcLWNvbmRvbGVuY2U7CivpqoUgPCBhblwtZXhjZWxsZW50XC1ob3JzZTsKK+eiiSA8IHJvb21cLW1hZGVcLW9mXC1zdG9uZTsKK+eWnyA8IGludGVybWl0dGVudFwtZmV2ZXI7CivnuqMgPCBuYW1lXC1vZlwtYW5cLWVtcGVyb3I7Civno6wgPCBtdXNpY2FsXC1pbnN0cnVtZW50Owor54i/IDwgaGFsZlwtb2ZcLXRyZWVcLXRydW5rOwor5peOIDwgZmx1dHRlcmluZ1wtb2ZcLWZsYWc7CivlpJQgPCBvbmVcLWxlZ2dlZFwtbW9uc3RlcjsKK+aujSA8IHRvXC1zdGFydmVcLXRvXC1kZWF0aDsKK+mqiiA8IGFcLXB1cmVcLWJsYWNrXC1ob3JzZTsKK+a5jiA8IGZsdXNoZWRcLXdpdGhcLWRyaW5rOwor5Za1IDwgdGhlXC1tZXdcLW9mXC10aGVcLWNhdDsKK+eEmSA8IGRyeVwtb3Zlclwtc2xvd1wtZmlyZTsKK+e7viA8IHRvXC1zdHJpbmdcLXRvZ2V0aGVyOwor55ymIDwgY29ybmVyXC1vZlwtdGhlXC1leWVzOwor55GBIDwgZmluZVwtcGllY2VcLW9mXC1qYWRlOwor57KzIDwgbm9uXC1nbHV0aW5vdXNcLXJpY2U7CivppK4gPCBhXC1sZWdlbmRhcnlcLWFuaW1hbDsKK+axiiA8IGFcLWJyYW5jaGluZ1wtc3RyZWFtOwor57yDIDwgbGlnaHRcLXllbGxvd1wtY29sb3I7CivmqqkgPCB0aGVcLWJvbGVcLW9mXC1hXC10cmVlOwor5aWBIDwgbGFkeScnc1wtdmFuaXR5XC1jYXNlOwor5qW4IDwgbWFsbG90dXNcLWphcG9uaWN1czsKK+mquiA8IHRpcFwtb2ZcLWFcLWxvbmdcLWJvbmU7Civol78gPCBsb3BoYW50aHVzXC1ydWdvc3VzOwor5qi+IDwgdGhlXC1zaGFkZVwtb2ZcLXRyZWVzOwor6YWkIDwgdG9cLWRlYWxcLWluXC1zcGlyaXRzOwor6IeMIDwgZHJvcHNpY2FsXC1zd2VsbGluZzsKK+i3qyA8IHNvdW5kXC1vZlwtZm9vdHN0ZXBzOwor57auIDwgZW1icm9pZGVyZWRcLWJhbm5lcjsKK+insyA8IGFuXC1hbmNpZW50XC1tZWFzdXJlOwor5p2MIDwgdGhlXC1zdHVtcFwtZlwtYVwtdHJlZTsKK+W1qyA8IGFcLWhpbGxcLWluXC1zaGFudHVuZzsKK+aTlyA8IHRvXC1iZWF0XC10aGVcLWJyZWFzdDsKK+iElCA8IHNtYWxsXC1sdW1wXC1vZlwtbWVhdDsKK+mGhSA8IHVuc3RyYWluZWRcLXNwaXJpdHM7CivnvrAgPCBjYXJib255bFwtXChyYWRpY2FsXCk7Civom7ggPCBsb25nXC1sZWdnZWRcLXNwaWRlcjsKK+eegCA8IHRvXC1sb29rXC1hdFwtY2xvc2VseTsKK+ausyA8IG5hbWVcLW9mXC1vbGRcLXdlYXBvbjsKK+W0niA8IG1vdW50YWluXC1pblwtc2hhbnhpOwor5Z6yIDwgaGlnaFwtYW5kXC1kcnlcLXBsYWNlOwor6Jm/IDwgYVwta2luZFwtb2ZcLXNjb3JwaW9uOwor55azIDwgY2hpbGRob29kXC1kaXNlYXNlczsKK+e9viA8IGFcLWxhcmdlXC1zcXVhcmVcLW5ldDsKK+eNrCA8IGFcLWZhYnVsb3VzXC1tb25zdGVyOwor6LKg6LKs5Lu7IDwgcmVzcG9uc2liaWxpdHlcLWZvcjsKK+W5q+i+piA8IGFzc2lzdFwtaW5cLW1hbmFnaW5nOwor6YWs5oeJIDwgc29jaWFsXC1pbnRlcmFjdGlvbjsKK+eEoeirliA8IG5vXC1tYXR0ZXJcLXdoYXRcfGhvdzsKK+WOn+WumiA8IG9yaWdpbmFsbHlcLXBsYW5uZWQ7CivpgJrooYwgPCBsaWNlbmNlXC1cKGNvbXB1dGVyXCk7CivnkrDlvaLntZDmp4sgPCByaW5nXC1jb25maWd1cmF0aW9uOwor5Y+45LukIDwgY29tbWFuZGluZ1wtb2ZmaWNlcjsKK+ezvumbhiA8IHRvXC1nYXRoZXJcLXRvZ2V0aGVyOwor6YCB6KGMIDwgdG9cLXNlZVwtc29tZW9uZVwtb2ZmOwor6KW/54+t54mZ6KqeIDwgc3BhbmlzaFwtXChsYW5ndWFnZVwpOwor6YGV57SEIDwgdG9cLWJyZWFrXC1hXC1wcm9taXNlOwor5Y2x5bGAIDwgcGVyaWxvdXNcLXNpdHVhdGlvbjsKK+S4gOiIrOS+huiqqiA8IGdlbmVyYWxseVwtc3BlYWtpbmc7Civou5/ku7bplovnmbzkurrlk6EgPCBzb2Z0d2FyZVwtZGV2ZWxvcGVyOwor5pKl6JmfIDwgZGlhbFwtXChhXC10ZWxlcGhvbmVcKTsKK+Wci+awkem7qOi7jemaiiA8IG5hdGlvbmFsaXN0XC1mb3JjZXM7CivpppbohabmnIPmmaQgPCBsZWFkZXJzaGlwXC1tZWV0aW5nOwor6K6K5L+uIDwgYmVjb21lXC1yZXZpc2lvbmlzdDsKK+mBleeroCA8IHRvXC1icmVha1wtdGhlXC1ydWxlczsKK+mHjeimgeWVj+mhjCA8IGFuXC1pbXBvcnRhbnRcLWlzc3VlOwor57ay566hIDwgbmV0d29ya1wtbWFuYWdlbWVudDsKK+iSmeaWhyA8IG1vbmdvbGlhblwtbGFuZ3VhZ2U7CivmgKfkuqQgPCBzZXh1YWxcLWludGVyY291cnNlOwor5Lit5bGx6KOdIDwgY2hpbmVzZVwtdHVuaWNcLXN1aXQ7Civnt6znlLjoqp4gPCBidXJtZXNlXC1cKGxhbmd1YWdlXCk7CivmlL/msrvniq8gPCBwb2xpdGljYWxcLXByaXNvbmVyOwor5bm05Lul5L6GIDwgc2luY2VcLXRoZVwteWVhclwtXC5cLlwuOwor5paw6I+v56S+IDwgeGluaHVhXC1uZXdzXC1hZ2VuY3k7CivkuI3kuK3nlKggPCB1bmZpdFwtZm9yXC1hbnl0aGluZzsKK+S4gOWwj+aZguS7peW+jCA8IGFcLXNob3J0XC10aW1lXC1sYXRlcjsKK+mgmOWFiOWcsOS9jSA8IGxlYWRcKGluZ1wpXC1wb3NpdGlvbjsKK+mAsuS4gOatpSA8IFwob25lXC1zdGVwXClcLWZ1cnRoZXI7Civnianlg7kgPCBcKGNvbW1vZGl0eVwpXC1wcmljZXM7Civkv6Hmga/ns7vntbEgPCBpbmZvcm1hdGlvblwtc3lzdGVtOwor5b6M5aSpIDwgZGF5XC1hZnRlclwtdG9tb3Jyb3c7Civmj5DkvpvllYYgPCBwcm92aWRlclwtXChjb21wYW55XCk7CivlpKrlubMgPCBwZWFjZVwtYW5kXC1zZWN1cml0eTsKK+efmuacmyA8IHRvXC1sb29rXC1mb3J3YXJkXC10bzsKK+WNlOWKqSA8IHByb3ZpZGVcLWFzc2lzdGFuY2U7CivmjqHpoqggPCBjb2xsZWN0XC1mb2xrXC1zb25nczsKK+eoruaXj+a4hea0lyA8IFwiZXRobmljXC1jbGVhbnNpbmdcIjsKK+aPj+mHkSA8IHRvXC1vdXRsaW5lXC1pblwtZ29sZDsKK+WKqeaVmSA8IHRlYWNoaW5nXC1hc3Npc3RhbnQ7CivlpKvlqaYgPCBhXC1cKG1hcnJpZWRcKVwtY291cGxlOwor5LmS5LmT55CD5qqvIDwgdGFibGVcLXRlbm5pc1wtdGFibGU7Civoi7Hoqp4gPCBlbmdsaXNoXC1cKGxhbmd1YWdlXCk7CivpgYvmsKMgPCBsdWNrXC1cKGdvb2RcLW9yXC1iYWRcKTsKK+mdnuW4uOWatOWOsiA8IHRvXC1wdW5pc2hcLXNldmVyZWx5Owor5Y6f6JiH6IGvIDwgZm9tZXJcLXNvdmlldFwtdW5pb247CivmjqHpjIQgPCBjb2xsZWN0XC1hbmRcLXJlY29yZDsKK+eGiuaOjCA8IGJlYXJcLXBhd1wtXChhc1wtZm9vZFwpOwor5YWn6YOo57WQ5qeLIDwgaW50ZXJuYWxcLXN0cnVjdXRyZTsKK+aWsOWFtSA8IG5ld1wtXChhcm15XClcLXJlY3J1aXQ7Civmlbjmk5rpgJrkv6EgPCBkYXRhXC1jb21tdW5pY2F0aW9uOwor5aSp5a6J6ZaAIDwgdGlhbmFubWVuXC1cKHNxdWFyZVwpOwor6Z2e5bi45oSf6KydIDwgZXh0cmVtZWx5XC1ncmF0ZWZ1bDsKK+m+liA8IGZsaWdodFwtb2ZcLWFcLWRyYWdvbjsKK+aWg+WRvSA8IG1lZXRcLXZpb2xlbnRcLWRlYXRoOwor6bicIDwgYVwtc3BlY2llc1wtb2ZcLW15bmFoOwor6be9IDwgb3JpZW50YWxcLWJ1bGxmaW5jaDsKK+WFi+mahuaKgOihkyA8IGNsb25pbmdcLXRlY2hub2xvZ3k7Civpm7vlrZDntrLntaEgPCBlbGVjdHJvbmljXC1uZXR3b3JrOwor6bSXIDwgYWxjZWRvXC1iZW5nYWxlbnNpczsKK+mxtSA8IGh5cG9yaGFtcHVzXC1zYWp1cmk7CivlpLHkuosgPCBcKGhhdmVcLWFuXClcLWFjY2lkZW50Owor5LiN5Y+X55CGIDwgcmVqZWN0XC1hXC1jb21wbGFpbnQ7CivprKAgPCB0b1wtbWFrZVwtYVwtdG9wXC1rbm90Owor55m86YGU5ZyLIDwgZGV2ZWxvcGluZ1wtY291bnRyeTsKK+eZvem6teabuOeUnyA8IHBhbGVcLWZhY2VkXC1zY2hvbGFyOwor6LeR6K2m5aCxIDwgdG9cLXJ1blwtZm9yXC1zaGVsdGVyOwor6aS8IDwgc2FjcmlmaWNpYWxcLXZpY3RpbTsKK+mbu+S/oSA8IHRlbGVjb21tdW5pY2F0aW9uczsKK+aNqOi6qyA8IHRvXC1naXZlXC1vbmUnJ3NcLWxpZmU7CivpoJQgPCBnb29kXC1hbmRcLWJlYXV0aWZ1bDsKK+iKneiYrSA8IGlyaXNlc1wtYW5kXC1vcmNoaWRzOwor6LKh5YuZ6Luf5Lu2IDwgZmluYW5jaWFsXC1zb2Z0d2FyZTsKK+aUueWPoyA8IHRvXC1jb3JyZWN0XC1vbmVzZWxmOwor55m96ZaL5rC0IDwgcGxhaW5cLWJvaWxlZFwtd2F0ZXI7CivmlL/li5kgPCBnb3Zlcm5tZW50XC1hZmZhaXJzOwor5YWn56eRIDwgbWVkaWNhbFwtZGVwYXJ0bWVudDsKK+WFg+e0oCA8IFwoY2hlbWljYWxcKVwtZWxlbWVudDsKK+WKoOWFpSA8IHRvXC1iZWNvbWVcLWFcLW1lbWJlcjsKK+aLm+W+heacgyA8IFwocHJlc3NcKVwtY29uZmVyZW5jZTsKK+mBuOWNgCA8IGVsZWN0b3JhbFwtZGlzdHJpY3Q7Civph5IgPCBrYW5neGlcLXJhZGljYWxcLTE2NzsKK+mEriA8IGFuY2llbnRcLXBsYWNlXC1uYW1lOwor5Zyf6JGXIDwgbmF0aXZlXCxcLWFib3JpZ2luYWw7Civmh7fkv4TmmI4gPCB3eW9taW5nXC1cKHVzXC1zdGF0ZVwpOwor5Y2h5ouJ5aWHIDwga2FyYWNoaVwtXChwYWtpc3RhblwpOwor5pON5a6IIDwgcGVyc29uYWxcLWludGVncml0eTsKK+i9mSA8IHJpbmdzXC1vblwtdGhlXC15b2tlczsKK+WCsuimliA8IHR1cm5cLXVwXC1vbmUnJ3NcLW5vc2U7Civou7AgPCBhXC1yb3dcLW9mXC1jYXJyaWFnZXM7CivljYropo/nrqEgPCBzZW1pY2lyY3VsYXJcLWNhbmFsOwor6aas5L6G6KqeIDwgbWFsYXlzaWFuXC1sYW5ndWFnZTsKK+WPpOWFuOiqnuiogCA8IGNsYXNzaWNhbFwtbGFuZ3VhZ2U7CivosL0gPCBhXC1tb3V0aFwtb3JcLW9wZW5pbmc7CivojqvlpoIgPCBpdFwtd291bGRcLWJlXC1iZXR0ZXI7CivntZDluLMgPCB0b1wtc2V0dGxlXC1hY2NvdW50czsKK+Wbm+iZlSA8IGFsbFwtb3ZlclwtdGhlXC1wbGFjZTsKK+avlOS4jeS4iiA8IGNhbicndFwtY29tcGFyZVwtd2l0aDsKK+e2sui3r+mAo+aOpeWxpCA8IG5ldHdvcmtcLWxpbmtcLWxheWVyOwor6KiBIDwga2FuZ3hpXC1yYWRpY2FsXC0xNDk7CivopbUgPCBhXC1wbGVhdFwtaW5cLWFcLXNraXJ0Owor6KSwIDwgbGlmdFwtdXBcLXRoZVwtc2tpcnRzOwor5Z2m546HIDwgZnJhbmtcLVwoZGlzY3Vzc2lvblwpOwor6YGL5L2cIDwgdGhyZWFkXC1cKGNvbXB1dGluZ1wpOwor5aSa57Gz5bC85Yqg5YWx5ZKM5ZyLIDwgZG9taW5pY2FuXC1yZXB1YmxpYzsKK+mAseWIiiA8IHdlZWtseVwtcHVibGljYXRpb247CivomrkgPCBldWxvdGFcLXBlbGlvbXBoYWxhOwor6Ja3IDwgZWxzaG90cmlhXC1wYWx0cmluaTsKK+S/nemnlSA8IGVzY29ydFwtdGhlXC1lbXBlcm9yOwor6JW6IDwgaG91dHR1eW5pYVwtY29yZGF0YTsKK+iTtCA8IGVkaWJsZVwtd2F0ZXJcLXBsYW50Owor5YWp5YCL5Lit5ZyLIDwgdHdvXC1jaGluYVwtXChwb2xpY3lcKTsKK+iRtCA8IHBoeXNhbGlzXC1hbGtla2VuZ2k7CivlhbHmnIkgPCB0b1wtaGF2ZVwtYWx0b2dldGhlcjsKK+WgseWWnCA8IGFubm91bmNlXC1nb29kXC1uZXdzOwor6LeR6Zu7IDwgZWxlY3RyaWNhbFwtbGVha2FnZTsKK+iNhSA8IGFuc3dlclw6XC1zbWFsbFwtYmVhbjsKK+iMliA8IGFsbGl1bVwtdmljdG9yaWFsaXM7CivlnIvpmLLpg6ggPCBkZWZlbnNlXC1kZXBhcnRtZW50Owor6IqjIDwgbWVkaWNpbmFsXC1wbGFudGFnbzsKK+aSpeWIuiA8IHNwbGFzaFwtXChvZlwtYVwtZmlzaFwpOwor5ouc6KaLIDwgcGF5XC1hXC1mb3JtYWxcLXZpc2l0Owor5aSW5L6G5oqV6LOHIDwgZm9yZWlnblwtaW52ZXN0bWVudDsKK+i2leS4jeS4iiA8IGNhbicndFwta2VlcFwtdXBcLXdpdGg7Civnv68gPCBnbGlzdGVuaW5nXC1wbHVtYWdlOwor57+WIDwga3NjXC1leHRlbnNpb25cLTMxMDg7CivliJ3kuK0gPCBqdW5pb3JcLWhpZ2hcLXNjaG9vbDsKK+e+pyA8IGNhcmJveHlsXC1cKHJhZGljYWxcKTsKK+Wcn+iAs+WFtuiqniA8IHR1cmtpc2hcLVwobGFuZ3VhZ2VcKTsKK+S4jeato+S5i+miqCA8IHVuaGVhbHRoeVwtdGVuZGVuY3k7CivmioTpgZMgPCB0b1wtdGFrZVwtYVwtc2hvcnRjdXQ7CivmvJToqqogPCBcKGRlbGl2ZXJcLWFcKVwtc3BlZWNoOwor6KaB5ZywIDwgc3RyYXRlZ2ljXC1sb2NhdGlvbjsKK+i+puWgsSA8IHRvXC1ydW5cLWFcLW5ld3NwYXBlcjsKK+mbhuaIkOmbu+i3ryA8IGludGVncmF0ZWRcLWNpcmN1aXQ7Civns5IgPCBmb29kXC1mb3JcLWFcLWpvdXJuZXk7Civlh7rku7sgPCBzdGFydFwtaW5cLWFcLW5ld1wtam9iOwor6ZaJ6Zec5pS/562WIDwgY2xvc2VkXC1kb29yXC1wb2xpY3k7Civlhafmg4UgPCBpbnNpZGVcLWluZm9ybWF0aW9uOwor5ou/5Li75oSPIDwgdG9cLW1ha2VcLWFcLWRlY2lzaW9uOwor57ay57Wh5oqA6KGTIDwgbmV0d29ya1wtdGVjaG5vbG9neTsKK+W4uOWnlOacgyA8IHN0YW5kaW5nXC1jb21taXR0ZWU7CivkuK3lnIvmlL/lupwgPCBjaGluZXNlXC1nb3Zlcm5tZW50Owor6ZaL5bGVIDwgXChiZWdpblwtdG9cKVwtZGV2ZWxvcDsKK+S7pOeJjOeSsOe2siA8IHRva2VuXC1yaW5nXC1uZXR3b3JrOwor55qqIDwgbHVzdGVyXC1cKG9mXC1wZWFybHNcKTsKK+Wkp+aYjum8jum8jiA8IGFcLWdyYW5kXC1yZXB1dGF0aW9uOwor55ecIDwgYVwtc2NhYmJ5XC1iYWxkXC1oZWFkOwor5aSn5a2455SfIDwgdW5pdmVyc2l0eVwtc3R1ZGVudDsKK+eUvyA8IGZhcm1pbmdcLXBvcHVsYXRpb247Civosr/mmJPntYTnuZQgPCB0cmFkZVwtb3JnYW5pemF0aW9uOwor55SLIDwgYVwtamFyXC13aXRob3V0XC1lYXJzOwor55CkIDwgamFkZVwtb2ZcLWphZGVcLWJlaW5nOwor546YIDwgY291cnRcLWRyZXNzXC1qZXdlbHM7CivpgY3lnLDplovoirEgPCBibG9zc29tXC1ldmVyeXdoZXJlOwor542zIDwgZmllcmNlXC1kb2dcLWxvb2tpbmc7Civkv4Toqp4gPCBydXNzaWFuXC1cKGxhbmd1YWdlXCk7CivlsbHohbMgPCBmb290XC1vZlwtYVwtbW91bnRhaW47CivnhY0gPCB0b1wtY29sb3VyXC1ieVwtc21va2U7Civpq5jpgJ/ntrLntaEgPCBoaWdoXC1zcGVlZFwtbmV0d29yazsKK+eBpSA8IGFcLWdyb3VwXC1vZlwtc3ByaW5nczsKK+W6t+WliOeIvuWkp+WtuCA8IGNvcm5lbGxcLXVuaXZlcnNpdHk7Civlhazlj7ggPCBcKGJ1c2luZXNzXClcLWNvbXBhbnk7Civmi4nnpaggPCBjYW1wYWlnblwtZm9yXC12b3RlczsKK+aJi+ihkyA8IHN1cmdpY2FsXC1vcGVyYXRpb247CivlhavljaYgPCB0aGVcLWVpZ2h0XC1kaWFncmFtczsKK+eAj+imveWZqCA8IGJyb3dzZXJcLVwoc29mdHdhcmVcKTsKK+mrlOa6qyA8IFwoYm9keVwpXC10ZW1wZXJhdHVyZTsKK+abuOmdouioseWPryA8IHdyaXR0ZW5cLXBlcm1pc3Npb247Civms7IgPCBraW5kXC1vZlwtd2hpdGVcLXdpbmU7CivkuJbntIDmnKsgPCBlbmRcLW9mXC10aGVcLWNlbnR1cnk7CivmsI0gPCBmaW5lXC13b29sbGVuXC1jbG90aDsKK+a8guenuyA8IGRyaWZ0XC1cKGVsZWN0cmljYWxcKTsKK+iBr+WQiOWFrOWgsSA8IGpvaW50XC1hbm5vdW5jZW1lbnQ7CivnoJTnqbbmqZ/mp4sgPCByZXNlYXJjaFwtaW5zdGl0dXRlOwor5L2b6Jit6IqS6KqeIDwgZmxlbWlzaFwtXChsYW5ndWFnZVwpOwor5YGc5ruvIDwgYmVcLWF0XC1hXC1zdGFuZHN0aWxsOwor5ZyL5pyD6K2w5ZOhIDwgbWVtYmVyXC1vZlwtY29uZ3Jlc3M7CivmnIDov5Hlub7lubQgPCB0aGVcLWxhc3RcLWZld1wteWVhcnM7Civnsr7nsKHplovmlK8gPCB0b1wtcmVkdWNlXC1zcGVuZGluZzsKK+afuiA8IGFuXC1vbGRcLW1hbicnc1wtc3RhZmY7CivmnbsgPCBsaWd1c3RydW1cLXNpbmVuZXNlOwor5p2ZIDwgYVwtdGlueVwtd29vZGVuXC1wb3N0Owor5LiN572u5Y+v5ZCmIDwgZGVjbGluZVwtdG9cLWNvbW1lbnQ7Civou43lrpggPCBcKG1pbGl0YXJ5XClcLW9mZmljZXI7CivmmLcgPCB0b1wtZmVlZFwtYVwtcHJpc29uZXI7Civml7wgPCBnZW50bGVcLWFuZFwtYWZmYWJsZTsKK+WhnueIvue2reS6nuiqniA8IHNlcmJpYW5cLVwobGFuZ3VhZ2VcKTsKK+aTrSA8IHRyYXBcLWNhdGNoXC1hbmltYWxzOwor5LiJ6KeS6IW55bi2IDwgYXRobGV0aWNcLXN1cHBvcnRlcjsKK+ethuebtCA8IHBlcmZlY3RseVwtc3RyYWlnaHQ7CivnlKLnlJ8gPCB0b1wtY29tZVwtaW50b1wtYmVpbmc7Civpp5Doj68gPCBzdGF0aW9uZWRcLWluXC1jaGluYTsKK+aWr+eTpuW4jOijoeiqniA8IHN3YWhpbGlcLVwobGFuZ3VhZ2VcKTsKK+aOiOWPlyA8IHRvXC1naXZlXC1hbmRcLWFjY2VwdDsKK+eWq+aDhSA8IGVwaWRlbWljXC1zaXR1YXRpb247Civmt7HpgKAgPCBhZHZhbmNlZFwtXChzdHVkaWVzXCk7CivooZvnlJ/oqK3lgpkgPCBzYW5pdGFyeVwtZXF1aXBtZW50Owor6YCg5oiQ5ZWP6aGMIDwgdG9cLWNyZWF0ZVwtYW5cLWlzc3VlOwor5b2EIDwgbm9ja1wtYXRcLWVuZFwtb2ZcLWJvdzsKK+aNqOWRvSA8IHRvXC1yaXNrXC1vbmUnJ3NcLWxpZmU7Civmk4HorbfogIUgPCBzdXBwb3J0ZXJcLVwocGVyc29uXCk7CivlnIvli5nljb8gPCBzZWNyZXRhcnlcLW9mXC1zdGF0ZTsKK+W2qCA8IGJpZ1wtcm9ja3lcLW1vdW50YWluOwor6KOB5LimIDwgY3V0XC1kb3duXC1hbmRcLW1lcmdlOwor5bWWIDwgbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor5L2/56+AIDwgXChkaXBsb21hdGljXClcLWVudm95Owor5ZyL5a625qiZ5rqW56K8IDwgZ2JcLVwoZ3VvXC1iaWFvXClcLWNvZGU7CivljYrovKnlrZAgPCBoYWxmXC1vZlwtYVwtbGlmZXRpbWU7CivmnKzliJ3lrZDljYjnt5ogPCB0aGVcLWZpcnN0XC1tZXJpZGlhbjsKK+WutuW6rea2iOiyu+iAhSA8IGhvdXNlaG9sZFwtY29uc3VtZXI7Civlo5wgPCBlYXJ0aGVuXC1qYXJcLW9yXC1qdWc7Civoh7PlsJEgPCBcKHRvXC1zYXlcLXRoZVwpXC1sZWFzdDsKK+WikCA8IHRvXC1idWlsZFwtd2l0aFwtc29pbDsKK+ermeeuoeeQhiA8IHN0YXRpb25cLW1hbmFnZW1lbnQ7Civosrfos6MgPCBidXlpbmdcLWFuZFwtc2VsbGluZzsKK+WZiyA8IHRvXC1zd2FsbG93XC1oYXN0aWx5Owor5ris57mqIDwgdG9cLXN1cnZleVwtYW5kXC1kcmF3Owor6IOM57SEIDwgYnJlYWtcLWFuXC1hZ3JlZW1lbnQ7CivoibLmg4XlsI/oqqogPCBwb3Jub2dyYXBoaWNcLW5vdmVsOwor5ZOwIDwgaW5jb2hlcmVudFwtY2hhdHRlcjsKK+iKrOiYreiqniA8IGZpbm5pc2hcLVwobGFuZ3VhZ2VcKTsKK+iytOWmg+mGiemFkiA8IHRoZVwtZHJ1bmtlblwtYmVhdXR5Owor6K6K5rOV5YWSIDwgdHJ5XC1kaWZmZXJlbnRcLXdheXM7Civmtbfnqbrou40gPCBuYXZ5XC1hbmRcLWFpclwtZm9yY2U7Civpm7vlrZDkv6HnrrEgPCBlbGVjdHJvbmljXC1tYWlsYm94Owor6Lev5b6RIDwgcm91dGVcLVwobmV0d29ya2luZ1wpOwor5L23IDwgdG9cLWFjdFwtY29udHJhcnlcLXRvOwor6IiJ5L6LIDwgdG9cLWdpdmVcLWFuXC1leGFtcGxlOwor5pKS5ZOI5ouJ5Lul5Y2X6Z2e5rSyIDwgc3ViXC1zYWhhcmFuXC1hZnJpY2E7CivkuZEgPCBzdGFuZFwtc2lkZVwtYnlcLXNpZGU7CivmiY3mmbogPCBhYmlsaXR5XC1hbmRcLXdpc2RvbTsKK+S2oyA8IHRvXC1ncmluZFwtdGhlXC10ZWV0aDsKK+S2nyA8IHRvXC1nbmFzaFwtdGhlXC10ZWV0aDsKK+S1lSA8IGFcLXZhcmlldHlvZlwtbWlsbGV0Owor5LSxIDwgY2FrZXNcLWFuZFwtYmlzY3VpdHM7Civks6ggPCB0aGVcLWZlbWFsZVwtcGhvZW5peDsKK+SzlCA8IGFcLXBpZ2VvblwtbGlrZVwtYmlyZDsKK+SxsyA8IGFcLWtpbmRcLW9mXC1zdHVyZ2VvbjsKK+SxoyA8IGFcLWxvbmdcLW5hcnJvd1wtZmlzaDsKK+SwqiA8IG1pc2NoaWV2b3VzXC1zcGlyaXQ7Civkr7EgPCB0aGVcLWhhaXJcLXN0YW5kc1wtdXA7Civkr48gPCB0aGVcLXNob3VsZGVyXC1ibGFkZTsKK+SupSA8IGNvbG9yXC1vZlwtdGhlXC1ob3JzZTsKK+e0sOiPjOaIsCA8IGJpb2xvZ2ljYWxcLXdhcmZhcmU7CivkrbAgPCBzdHJvbmdcLXN3ZWV0XC1zbWVsbDsKK+StiyA8IHRvXC1lYXRcLXRvXC10aGVcLWZ1bGw7CivkrYMgPCB0b1wtZWF0XC10b1wtdGhlXC1mb29sOwor5Ky0IDwgZm9kZGVyXC1mb3JcLWFuaW1hbHM7CivkrKcgPCByb3VuZFwtc2hhcGVkXC1jYWtlczsKK+aJk+aLsyA8IHRvXC1kb1wtc2hhZG93Ym94aW5nOwor6ISI5qyCIDwgYmVhdGluZ1wtXChvZlwtaGVhcnRcKTsKK+SrkCA8IHRvXC1iZW5kXC1vbmUnJ3NcLWhlYWQ7CivkqowgPCBjdXNoaW9uXC1mb3JcLXNhZGRsZTsKK+SohiA8IGFcLWtpbmRcLW9mXC1waGVhc2FudDsKK+SnvCA8IHRoZVwtdGhlXC1zbm93XC1nb29zZTsKK+SnpiA8IG5hbWVcLW9mXC1hXC1oaWxsc2lkZTsKK+aWsOWKoOWdoeS6uiA8IHNpbmdhcG9yZWFuXC1wZXJzb247Civkpq4gPCBkb29yXC1vZlwtdGhlXC1jZW50ZXI7Civoh6rkuLsgPCB0b1wtYWN0XC1mb3JcLW9uZXNlbGY7CivkppIgPCB0aGVcLWRvb3JcLWlzXC1jbG9zZWQ7CivkppAgPCB0aGVcLWJvbHRcLW9mXC1hXC1kb29yOwor5pyf6LKoIDwgZnV0dXJlc1wtXChvblwtZ29vZHNcKTsKK+SlsyA8IGFcLWNoZW1pY2FsXC1lbGVtZW50Owor5KWeIDwgdG9cLWN1dFwtd2l0aFwtc2hlYXJzOwor5KWdIDwgZGVzcGVyYXRlXC1maWdodGluZzsKK+S+teaIqiA8IHRvXC1oYWNrXC1cKGNvbXB1dGVyXCk7Civko7ogPCBmaWx0cmF0ZWRcLXRoZVwtd2luZTsKK+mgremrriA8IGhhaXJcLVwob25cLXRoZVwtaGVhZFwpOwor5KGgIDwgc3Ryb25nXC1hbmRcLWR1cmFibGU7CivkoZsgPCBuYW1lXC1vZlwtYVwtY2FycmlhZ2U7CivkoKcgPCBoYXJkXC10b1wtZ29cLWZvcndhcmQ7Civkn50gPCB0b1wtd2Fsa1wtcmlnaHRcLWludG87CivknZ4gPCBuYW1lXC1vZlwtYVwtaW1tb3J0YWw7Civkm4kgPCB0b1wtaW5kdWNlXC1ieVwtd29yZHM7CivkmqcgPCBjdXJ2ZWRcLXdpdGhcLWFuZ2xlczsKK+Wkp+WKm+eZvOWxlSA8IHZpZ29yb3VzXC1leHBhbnNpb247CivkmYMgPCBzbGVldmVsZXNzXC1jbG90aGVzOwor6LOq55aRIDwgY2FsbFwtaW50b1wtcXVlc3Rpb247Civkl7sgPCBhXC1raW5kXC1vZlwtc2VhXC1jcmFiOwor5JeoIDwgbGVwc2ltYVwtc2FjY2hhcmluYTsKK+SXoyA8IGluc2VjdFwtb2ZcLW11bGJlcnJ5Owor5pyN5YuZ6KaP56ugIDwgc2VydmljZVwtcmVndWxhdGlvbjsKK+SWpyA8IGFcLXBvaXNvbm91c1wtaW5zZWN0Owor5JaTIDwgb2ZcLWFcLXdhbGtpbmdcLXRpZ2VyOwor5JWqIDwgdGhlXC13YXRlclwtcGxhbnRhaW47CivklLwgPCBzb3VuZFwtb2ZcLXRoZVwtZ3Jhc3M7CivklIMgPCBjb3JkYXRlXC1ob3V0dHV5bmlhOwor5JOoIDwgbG9uZ1wtbmVja2VkXC1ib3R0bGU7Civkk5YgPCBjbmlkaXVtXC1vZmZpY2luYWxlOwor5JODIDwgbWVsYW5jaG9seVwtYW5kXC1zYWQ7Civkkp0gPCByb290XC1vZlwtdGhlXC10aGF0Y2g7CivpppbmrKEgPCBmb3JcLXRoZVwtZmlyc3RcLXRpbWU7CivkkZkgPCBwdXRcLW91dFwtdGhlXC10b25ndWU7CivkkYYgPCBmZWVsXC1saWtlXC12b21pdGluZzsKK+WcqOWCs+i8uOmBjueoi+S4rSA8IHdoaWxlXC10cmFuc21pdHRpbmc7CivkkJQgPCBtdXNjbGVcLW9mXC10aGVcLWNhbGY7Civkjr4gPCBiaWdcLWFuZFwtcm91bmRcLWV5ZXM7Civln5/lkI3mnI3li5nlmaggPCBkb21haW5cLW5hbWVcLXNlcnZlcjsKK+SOtCA8IGFcLWxlZ2VuZGFyeVwtc3Bpcml0Owor5I6qIDwgdGhlXC1zdGFsa1wtb2ZcLWdyYWluOwor5qKG5a2QIDwgd2F0Y2htYW4nJ3NcLWNsYXBwZXI7CivkjpQgPCBmaW5lXC1hbmRcLXNvZnRcLWhhaXI7Civkjo8gPCB5b3VuZ1wtYmlyZHNcLWZseWluZzsKK+ayuemkhSA8IGRlZXBcLWZyaWVkXC1wYW5jYWtlOwor5I2pIDwgdG9cLW9mZmVyXC1wcm92aXNpb247CivkjaMgPCBhXC1raW5kXC1vZlwtZmlzaFwtbmV0Owor5IyNIDwgZmluZVwtd292ZW5cLXBhdHRlcm47CivkjIkgPCB0aGVcLWxhcmdlXC1vZlwtYVwtbmV0Owor5rOE6ZyyIDwgbGVha1wtXChpbmZvcm1hdGlvblwpOwor5IuIIDwgdG9cLWJpbmRcLWxvb3NlXC1oZW1wOwor5ImsIDwgY29hcnNlXC1iYW1ib29cLW1hdHM7CivkiK4gPCBhXC13b3ZlblwtaW5zdHJ1bWVudDsKK+SHsyA8IGFcLW1lbW9yYWR1bVwtdGFibGV0Owor5IaqIDwgY29sb3JcLW9mXC10aGVcLWxpZ2h0Owor5IalIDwgdG9cLXBpZXJjZVwtdGhyb3VnaGo7CivkhpEgPCBhXC1saXR0bGVcLXByb3RydWRlZDsKK+aKleWFpSA8IHB1dFwtaW50b1wtb3BlcmF0aW9uOwor5IW9IDwgZnJhZ3JhbmNlXC1vclwtYXJvbWE7CivkhacgPCBmaW5lXC1yaWNlXC1zZWVkbGluZzsKK+SFnCA8IHRvXC1zdG9yZVwtdXBcLWdyYWluczsKK+SEmiA8IHRvXC13b3JzaGlwXC10aGVcLWdvZDsKK+SDnCA8IGFcLWZpbmVcLWJsYWNrXC1zdG9uZTsKK+SBiiA8IGRhcmtcLWFuZFwtZGVlcFwtZXllZDsKK+SAniA8IHdpdGhcLWhlYXZ5XC1leWVsaWRzOwor5ICXIDwgdG9cLWxvb2tcLWFza2FuY2VcLWF0Owor5p6Q55aRIDwgdG9cLXJlc29sdmVcLWFcLWRvdWJ0Owor47+MIDwgbHVtcFwtaW5cLXRoZVwtdGhyb2F0Owor56ut55uh5YWo5YqbIDwgdG9cLXNwYXJlXC1ub1wtZWZmb3J0Owor55Ge5YW46KqeIDwgc3dlZGlzaFwtXChsYW5ndWFnZVwpOwor47yjIDwgYnJpY2tzXC1vZlwtdGhlXC13ZWxsOwor47yHIDwgZmluZVwtamFkZVwtb3JcLWFnYXRlOwor5raJ5auM5Lq6IDwgXChjcmltaW5hbFwpXC1zdXNwZWN0Owor47uXIDwgYVwtc3RyaW5nXC1vZlwtcGVhcmxzOwor47uKIDwgYVwtcmVkXC1jb2xvcmVkXC1qYWRlOwor47uFIDwgamFkZVwtZGVjb3JhdGVkXC1jYXA7Civol4/oqp4gPCB0aWJldGFuXC1cKGxhbmd1YWdlXCk7CivkuI3mipjkuI3miaMgPCBhXC1odW5kcmVkXC1wZXJcLWNlbnQ7CivjuqcgPCBhXC13aGl0ZVwteWVsbG93XC1kb2c7CivjuL0gPCBhXC10d29cLXllYXJzXC1vbGRcLW94Owor5pyo6ICzIDwgZWRpYmxlXC10cmVlXC1mdW5ndXM7CivjuIggPCBzY29yY2hlZFwtb3JcLWJ1cm5lZDsKK+O3syA8IGNvbG9yXC1vZlwtdGhlXC1mbGFtZTsKK+WWmOaBryA8IHRvXC1nYXNwXC1mb3JcLWJyZWF0aDsKK+ajhOS4liA8IHRvXC1sZWF2ZVwtdGhpc1wtd29yZDsKK+O3oiA8IGJ1bmRsZVwtb2ZcLWNoYXJjb2FsOwor47egIDwgYVwtd2lsbFwtbycnXC10aGVcLXdpc3A7CivjtZMgPCB0aGVcLXdhdGVyXC1pc1wtY2xlYXI7CivjtL4gPCBzd2VsbGluZ1wtb3JcLXJpc2luZzsKK+S9teaNsuapnyA8IHJpYmJvblwtbGFwXC1tYWNoaW5lOwor5Yil5YuV6ZqKIDwgc3BlY2lhbFwtZGV0YWNobWVudDsKK+OzgiA8IHRvXC1mb2xsb3dcLWFcLWNvdXJzZTsKK+OyoSA8IHRoaWNrXC1jb2F0XC1vZlwtaGFpcjsKK+OylyA8IHRvXC1zbW9vdGhcLXRoZVwtaGFpcjsKK+aEm+eosSA8IHRlcm1cLW9mXC1lbmRlYXJtZW50Owor56eR56CU5qij5qmfIDwgcmVzZWFyY2hcLXByb3RvdHlwZTsKK+OvtiA8IHRoZVwtY29pclwtcGFsbVwtdHJlZTsKK+OvsiA8IGFcLXdvb2RlblwtZnJhbWV3b3JrOwor46+bIDwgZ291cmRcLXNoYXBlZFwtZGF0ZXM7CivjrrsgPCB0b1wtc2NyYXRjaFwtbGlnaHRseTsKK+WNgOWfn+e2sui3ryA8IGxvY2FsXC1hcmVhXC1uZXR3b3JrOwor466NIDwgYW1lbW9yYW5kdW1cLXRhYmxldDsKK+OtqCA8IHRoZVwtY29jb2FcLW51dFwtcGFsbTsKK+OtnSA8IG5hbWVcLW9mXC1hXC1wYXZpbGlvbjsKK+eZvOmAgeWKn+eOhyA8IHRyYW5zbWlzc2lvblwtcG93ZXI7CivjrLQgPCB0aGVcLW1vb25cLWlzXC1kaW1tZWQ7CivjrJIgPCB0aGVcLXN1blwtYXJlXC1kaW1tZWQ7CivjrI4gPCBtb3Rlc1wtaW5cLWFcLXN1bmJlYW07CivmlL/lupzorablkYogPCBnb3Zlcm5tZW50XC13YXJuaW5nOwor46umIDwgb2ZcLWxvb2tcLW9mXC10aGVcLXN1bjsKK+OquCA8IHRvXC1maWxsXC1hXC1jdXBcLXdpdGg7CivjqYMgPCB0b1wtdGFrZVwtb3JcLWNhcHR1cmU7CivjqL0gPCB0b1wtY3V0XC1vclwtcmlwXC1vcGVuOwor46ihIDwgdG9cLXB1c2hcLXdpdGhcLWhhbmRzOwor46icIDwgdG9cLWhlbHBcLWVhY2hcLW90aGVyOwor5qC46IO95oqA6KGTIDwgbnVjbGVhclwtdGVjaG5vbG9neTsKK+W5tOi8leWMliA8IG1ha2VcLW1vcmVcLXlvdXRoZnVsOwor5bCI5ZOhIDwgYXNzaXN0YW50XC1kaXJlY3RvcjsKK+OluCA8IHRvXC1zeW1wYXRoaXplXC13aXRoOwor46WoIDwgdW5oYXBweVwtZGlzcGxlYXNlZDsKK+OkqiA8IHRvXC1maW5kXC1mYXVsdFwtd2l0aDsKK+OjjCA8IHRvXC1qb2luXC10d29cLXRoaW5nczsKK+OhryA8IHdhbGxcLW9mXC1hXC1idWlsZGluZzsKK+mgk+i2syA8IHN0YW1wXC1cKG9uZScnc1wtZmVldFwpOwor5Yqg6YCf5ZmoIDwgYWNjZWxlcmF0b3JcLVwoY29tcFwpOwor45izIDwgYVwtaGlsbG9ja1wtb3JcLW1vdW5kOwor45ixIDwgdG9cLWZhbGxcLWludG9cLXJ1aW5zOwor5oSP5aSn5Yip6KqeIDwgaXRhbGlhblwtXChsYW5ndWFnZVwpOwor45icIDwgYVwta2luZFwtb2ZcLXNpbGt3b3JtOwor45aFIDwgc291bmRcLW9mXC1hXC13aGlzdGxlOwor45aDIDwgdG9cLXJvYXJcLW9mXC1hbmltYWxzOwor45SiIDwgdG9cLWJyZWFrXC1zb21ldGhpbmc7CivkuI3nrYnomZ8gPCBzaWduXC1vZlwtaW5lcXVhbGl0eTsKK+ePvuaciSA8IGN1cnJlbnRseVwtZXhpc3Rpbmc7Civopb/ljYrnkIMgPCB3ZXN0ZXJuXC1oZW1pc3BoZXJlOwor6by75qiRIDwgYnJpZGdlXC1vZlwtdGhlXC1ub3NlOwor5Y+D6LSKIDwgZGlwbG9tYXRpY1wtb2ZmaWNlcjsKK+S4pueriyA8IGV4aXN0XC1zaWRlXC1ieVwtc2lkZTsKK+iyv+aYkyA8IFwoY29tbWVyY2lhbFwpXC10cmFkZTsKK+Wkmuerr+S4ree5vOWZqCA8IG11bHRpcG9ydFwtcmVwZWF0ZXI7CivljJfkuqzlpKflrbggPCBiZWlqaW5nXC11bml2ZXJzaXR5Owor5aCx5YuZ5ZOhIDwgdGVsZWdyYXBoXC1vcGVyYXRvcjsKK+mFrOmFoiA8IHRvXC1leGNoYW5nZVwtdG9hc3RzOwor5rWq5raMIDwgXChlbGVjdHJpY2FsXClcLXN1cmdlOwor5L2U5YWIIDwgdG9cLXRha2VcLXByZWNlZGVuY2U7Civog4zlhYkgPCBiZVwtaW5cLWFcLXBvb3JcLWxpZ2h0Owor5YWJ5rOi6ZW3IDwgb3B0aWNhbFwtd2F2ZWxlbmd0aDsKK+a3seWknCA8IHZlcnlcLWxhdGVcLWF0XC1uaWdodDsKK+WWieaTpumfsyA8IGd1dHR1cmFsXC1mcmljYXRpdmU7CivlhavntJrlt6UgPCBlaWdodFwtZ3JhZGVcLXdvcmtlcjsKK+S9m+iSmeeJuSA8IHZlcm1vbnRcLVxbdXNcLXN0YXRlXF07CivpnLLpnaIgPCBhcHBlYXJcLVwoaW5cLXB1YmxpY1wpOwor5ZWG5YuZIDwgY29tbWVyY2lhbFwtYWZmYWlyczsKK+iBr+mCpuaUv+W6nCA8IGZlZGVyYWxcLWdvdmVybm1lbnQ7CivnjJznlpEgPCBoYXJib3VyXC1zdXNwaWNpb25zOwor55Sf5rS75b+F6ZyA5ZOBIDwgbGlmZScnc1wtbmVjZXNzaXRpZXM7CivosrTlp5MgPCB3aGF0XC1pc1wteW91clwtbmFtZVw/Owor54yZ542wIDwgbWVhblwtYW5kXC1mZXJvY2lvdXM7CivpgLLooYznt6jnqIsgPCBleGVjdXRhYmxlXC1wcm9ncmFtOwor5ray5aOTIDwgaHlkcmF1bGljXC1wcmVzc3VyZTsKK+euoeeQhuermSA8IG1hbmFnZW1lbnRcLXN0YXRpb247CivpvLvloZ4gPCBoYXZlXC1hXC1zdHVmZnlcLW5vc2U7CivomZvmk6zpgKPmjqUgPCB2aXJ0dWFsXC1jb25uZWN0aW9uOwor6bue5b+DIDwgbGlnaHRcLXJlZnJlc2htZW50czsKK+WuouaItuaHieeUqCA8IGNsaWVudFwtYXBwbGljYXRpb247CivkuI3pmqjmhI/ogowgPCBpbnZvbHVudGFyeVwtbXVzY2xlOwor6Kqq5LiN5a6aIDwgY2FuJyd0XC1zYXlcLWZvclwtc3VyZTsKK+azouaWr+iqniA8IGJvc25pYW5cLVwobGFuZ3VhZ2VcKTsKK+a1t+WfnyA8IHRlcnJpdG9yaWFsXC13YXRlcnM7Civmr5ToqaYgPCBoYXZlXC1hXC1jb21wZXRpdGlvbjsKK+aOoeWPluaOquaWvSA8IHRvXC1hZG9wdFwtYVwtbWVhc3VyZTsKK+WEmOWPr+iDvSA8IGFzXC1mYXJcLWFzXC1wb3NzaWJsZTsKK+WTiOS9m+Wkp+WtuCA8IGhhcnZhcmRcLXVuaXZlcnNpdHk7Civpm7vot68gPCBcKGVsZWN0cmljXClcLWNpcmN1aXQ7CivkuK3lsIcgPCBsaWV1dGVuYW50XC1nZW5lcmFsOwor5YyF5om/57WEIDwgXChyZXNwb25zaWJsZVwpXC1jcmV3Owor55m+6JGJ566xIDwgdGhlcm1vbWV0ZXJcLXNjcmVlbjsKK+aal+e3muWFieitnCA8IGRhcmtcLWxpbmVcLXNwZWN0cnVtOwor5paH6JedIDwgbGl0ZXJhdHVyZVwtYW5kXC1hcnQ7CivniYjnqIUgPCByb3lhbHR5XC1cKG9uXC1ib29rc1wpOwor6Zu76KaW56+A55uuIDwgdGVsZXZpc2lvblwtcHJvZ3JhbTsKK+aDheWgsSA8IFwoc3B5XClcLWludGVsbGlnZW5jZTsKK+e3qOmBoyA8IHJlb3JnYW5pemVcLVwodHJvb3BzOwor6YG/6Zu35ZmoIDwgbGlnaHRuaW5nXC1hcnJlc3RlcjsKK+W/heS4jeWPr+Wwkee1hOaIkCA8IGFic29sdXRlXC1uZWNlc3NpdHk7Civms7DlsbEgPCB0YWlzaGFuXC1cKG1vdW50YWluXCk7CivmgonlsLwgPCBzeWRuZXlcLVwoYXVzdHJhbGlhXCk7CivmiLDprKXmqZ8gPCBmaWdodGVyXC1cKGFpcmNyYWZ0XCk7CivoloTmg4UgPCBpbmNvbnN0YW50XC1pblwtbG92ZTsKK+awkeeUqCA8IFwoZm9yXClcLWNpdmlsaWFuXC11c2U7Civnt6jora8gPCB0cmFuc2xhdGVcLWFuZFwtZWRpdDsKK+emj+WIqSA8IFwobWF0ZXJpYWxcKVwtd2VsZmFyZTsKK+ewoeefreS7i+e0uSA8IGJyaWVmXC1pbnRyb2R1Y3Rpb247CivmtbfngaPmiLDniK0gPCBcKHBlcnNpYW5cKVwtZ3VsZlwtd2FyOwor5Zyw55CD5aSn5rCjIDwgZWFydGgnJ3NcLWF0bW9zcGhlcmU7CivlkIzlrbggPCBcKGZlbGxvd1wpXC1jbGFzc21hdGU7CivkuI3lkowgPCBub3RcLWdldFwtYWxvbmdcLXdlbGw7CivkuI3ljq0gPCBub3RcLW1pbmRcLWRvaW5nXC1zdGg7Civlj43mhJ8gPCBcKHN0cm9uZ2x5XClcLWRpc2xpa2U7Civph53lsI0gPCBpblwtY29ubmVjdGlvblwtd2l0aDsKK+acjeWLmeizqumHjyA8IHF1YWxpdHlcLW9mXC1zZXJ2aWNlOwor5Y+m5a+EIDwgdG9cLW1haWxcLXNlcGFyYXRlbHk7CivororlubsgPCBjaGFuZ2VcLWlycmVndWxhcmx5Owor5aCx6ZecIDwgZGVjbGFyZVwtYXRcLWN1c3RvbXM7CivnvbLlkI0gPCBzaWduXC1cKGFcLXNpZ25hdHVyZVwpOwor6YGK6Ka9IDwgdG9cLWdvXC1zaWdodFwtc2VlaW5nOwor5LiN5pS76Ieq56C0IDwgY29sbGFwc2VcLW9mXC1pdHNlbGY7CivmlofljJblgrPntbEgPCBjdWx0dXJhbFwtdHJhZGl0aW9uOwor6aGv56S65ZmoIDwgbW9uaXRvclwtXChjb21wdXRlclwpOwor55q/IDwgc2hhbGxvd1wtY29udGFpbmVyOwor5bGTIDwgZ2lnYW50aWNcLXN0cmVuZ3RoOwor5rS+IDwgc2Nob29sXC1vZlwtdGhvdWdodDsKK+WnkyA8IG9uZScnc1wtZmFtaWx5XC1uYW1lOwor54WOIDwgZnJ5XC1pblwtZmF0XC1vclwtb2lsOwor6KWBIDwgc3dhZGRsaW5nXC1jbG90aGVzOwor5ZOIIDwgc291bmRcLW9mXC1sYXVnaHRlcjsKK+m4miA8IHNwZWNpZXNcLW9mXC1wYXJyb3Q7CivmrKcgPCB0cmFuc2xpdFwuXDpcLWV1cm9wZTsKK+iuoiA8IGRyYXdcLXVwXC1hZ3JlZW1lbnQ7CivlgY8gPCBpbmNsaW5lZFwtb25lXC1zaWRlOwor5q2UIDwgYmxvd1wtdGhyb3VnaFwtbm9zZTsKK+WfuSA8IGJhbmtcLXVwXC13aXRoXC1kaXJ0Owor5ryrIDwgb3ZlcmZsb3dcLW9mXC13YXRlcjsKK+S+oCA8IGNoaXZhbHJvdXNcLXBlcnNvbjsKK+WnhiA8IGNoaWxkJydzXC1nb3Zlcm5lc3M7Civnm5IgPCBzbWFsbFwtYm94XC1vclwtY2FzZTsKK+WEkiA8IGNvbmZ1Y2lhblwtc2Nob2xhcjsKK+mYqiA8IGhpbGxzaWRlXC1mYXJtbGFuZDsKK+i/iCA8IHRha2VcLWFcLWJpZ1wtc3RyaWRlOwor5o2PIDwgcGlja1wtd2l0aFwtZmluZ2VyczsKK+a1mSA8IHpoZWppYW5nXC1wcm92aW5jZTsKK+etpyA8IGJhbWJvb1wtd2F0ZXJcLXBpcGU7CivoiZggPCBjb3VudGVyXC1mb3JcLXNoaXBzOwor6LaBIDwgdGFrZVwtYWR2YW50YWdlXC1vZjsKK+mJoiA8IGVhcnRoZW53YXJlXC1iYXNpbjsKK+iTrCA8IHR5cGVcLW9mXC1yYXNwYmVycnk7CivovpYgPCBsaW5jaHBpblwtb2ZcLXdoZWVsOwor6YCFIDwgbWVldFwtdW5leHBlY3RlZGx5Owor6YWjIDwgZW5qb3lcLWludG94aWNhbnRzOwor6aW6IDwgc3R1ZmZlZFwtZHVtcGxpbmdzOwor5ZKPIDwgc2luZ1wtc29uZ1wtb3JcLXBvZW07CivmkIAgPCBnaXZlXC1oZWxwaW5nXC1oYW5kOwor5o22IDwgc3RyaWtlXC13aXRoXC1zdGljazsKK+WIqCA8IGNhcnBlbnRlcicnc1wtcGxhbmU7CivooJUgPCBldW1lbmVzXC1wb2xpZm9taXM7CivltIYgPCBrb25ndG9uZ1wtbW91bnRhaW47Civnm4UgPCBzbWFsbFwtY3VwXC1vclwtYm93bDsKK+aihiA8IHdhdGNobWFuJydzXC1yYXR0bGU7CivltYcgPCBtb3VudGFpblwtaW5cLWhlbmFuOwor6IC3IDwgZWFyc1wtaGFuZ2luZ1wtZG93bjsKK+e+jCA8IHFpYW5nXC1uYXRpb25hbGl0eTsKK+iLniA8IGFcLXZhcmlldHlcLW9mXC1ydXNoOwor6JecIDwgY2hlbm9wb2RpdW1cLWFsYnVtOwor6ImEIDwgc3Rlcm5cLW9mXC1hXC12ZXNzZWw7Civls4EgPCB5ZWxsb3dcLWRpcnRcLW1vdW50Owor6ZWUIDwgaGlnaFwtcXVhbGl0eVwtaXJvbjsKK+myqyA8IGNhcmFzc2l1c1wtYXVyYXR1czsKK+m+hyA8IHRvXC1zaG93XC10aGVcLXRlZXRoOwor5rKtIDwgcml2ZXJcLWluXC1zaGFudHVuZzsKK+amqyA8IG1vcnRpc2VcLWFuZFwtdGVub247CivokIsgPCBsdXh1cmlhbnRcLWZvbGlhZ2U7Civphq4gPCByZWxpZ2lvdXNcLXNlcnZpY2U7CivniZ0gPCBmZW1hbGVcLW9mXC1zcGVjaWVzOwor5pu3IDwgd2h5XD9cLXdoYXRcP1wtd2hlcmVcPzsKK+eRtyA8IGZpbmVcLXF1YWxpdHlcLWphZGU7CivogKYgPCBwbG93XC1zaWRlXC1ieVwtc2lkZTsKK+m4tiA8IHRoZVwtZWFzdGVyblwtZWdyZXQ7Civnr6YgPCBmaW5lXC10b290aGVkXC1jb21iOwor5aaBIDwgYWN0XC1hc1wtZ29cLWJldHdlZW47CivojaUgPCBhXC1jb3VudHlcLWluXC1oZW5hbjsKK+aIvSA8IHRvXC1iYWxlXC1vdXRcLXdhdGVyOwor5p6zIDwgdHJpZm9saWF0ZVwtb3JhbmdlOwor5qSQIDwgemVsa293YVwtYWN1bWluYXRhOwor6a2JIDwgYVwta2luZFwtb2ZcLW1vbnN0ZXI7Civpop4gPCB0aGVcLXRlbXBvcmFsXC1ib25lOwor6ICpIDwgdG9cLXBsb3VnaFwuXC10b1wtc293Owor5buoIDwgZ292ZXJubWVudFwtb2ZmaWNlOwor6J+uIDwgdHlwZVwtb2ZcLWVhcnRod29ybTsKK+ibsSA8IGtpbmRcLW9mXC1idXR0ZXJmbHk7CivnprMgPCBwcmF5XC1vclwtc2FjcmlmaWNlOwor556iIDwgZXllc2lnaHRcLW9ic2N1cmVkOwor6JS4IDwgY291bnRlclwtZm9yXC1wbGFudDsKK+iehSA8IFwoaW50ZXN0aW5hbFwtd29ybVwpOwor56WnIDwgYW5cLWFuY2VzdHJhbFwtaGFsbDsKK+iggyA8IHRoZVwtc29saXRhcnlcLXdhc3A7CivogYMgPCBlYXJzXC13aXRob3V0XC1yaW1zOwor6ICcIDwgc3BhZGVcLXNoYXBlZFwtdG9vbDsKK+aFnSA8IGRvXC1ldmlsXC1pblwtc2VjcmV0Owor5bqzIDwgYVwtbG93XC1idWlsdFwtaG91c2U7CivpvKIgPCBhXC12YXJpZXR5XC1vZlwtbW9sZTsKK+iauiA8IGFcLWJvYVwtY29uc3RyaWN0b3I7CivnoYcgPCBhXC1raW5kXC1vZlwtbWluZXJhbDsKK+ehrSA8IGFcLWNydWRlXC1zYWx0cGV0cmU7Civog6ggPCBhXC1raW5kXC1vZlwtcHJvdGVpbjsKK+WklueVjCA8IHRoZVwtb3V0c2lkZVwtd29ybGQ7CivororlpKkgPCBjaGFuZ2VcLW9mXC13ZWF0aGVyOwor5q+U5r+VIDwgc3BlY2lmaWNcLWh1bWlkaXR5Owor5Y+v6KGM5oCn56CU56m2IDwgZmVhc2liaWxpdHlcLXN0dWR5Owor57ay57Wh6YG356e7IDwgbmV0d29ya1wtbWlncmF0aW9uOwor6Zu76IWm6Luf5Lu2IDwgY29tcHV0ZXJcLXNvZnR3YXJlOwor5b+F5L+u6KqyIDwgYVwtcmVxdWlyZWRcLWNvdXJzZTsKK+W+t+aWhyA8IGdlcm1hblwtXChsYW5ndWFnZVwpOwor5YOF5qyh5LqOIDwgc2Vjb25kXC1vbmx5XC10b1wuXC5cLjsKK+acnemuruiqniA8IGtvcmVhblwtXChsYW5ndWFnZVwpOwor6LOH5paZ5YKz6Ly4IDwgZGF0YVwtdHJhbnNtaXNzaW9uOwor5Y2R5oCvIDwgbWVhblwtYW5kXC1jb3dhcmRseTsKK+WFtemmrCA8IHRyb29wc1wtYW5kXC1ob3JzZXM7Civmlbjmk5rluqvou5/ku7YgPCBkYXRhYmFzZVwtc29mdHdhcmU7Civnoqnlo6sgPCBtYXN0ZXInJ3NcLVwoZGVncmVlXCk7Civopb/oo6HniL7lrZfmr40gPCBjeXJpbGxpY1wtYWxwaGFiZXQ7CivlnIvpmLLpg6jplbcgPCBkZWZlbmNlXC1zZWNyZXRhcnk7Civnmb3pqqggPCBib25lc1wtb2ZcLXRoZVwtZGVhZDsKK+W3qOWkp+Wjk+WKmyA8IGVub3Jtb3VzXC1wcmVzc3VyZTsKK+eFp+ebuCA8IHRha2VcLWFcLXBob3RvZ3JhcGg7Civnmb3po68gPCBwbGFpblwtY29va2VkXC1yaWNlOwor5pel5a2QIDwgYVwtXChjYWxlbmRhclwpXC1kYXRlOwor5bu656+J5qWtIDwgYnVpbGRpbmdcLWluZHVzdHJ5Owor5pS/5rK75rCj5YCZIDwgcG9saXRpY2FsXC1jbGltYXRlOwor5buj5Z+f57ay6LevIDwgd2lkZVwtYXJlYVwtbmV0d29yazsKK+aVmeWPi+Wkp+acgyA8IGNodXJjaFwtY29uZmVyZW5jZTsKK+e+juWci+iIquepuuWFrOWPuCA8IGFtZXJpY2FuXC1haXJsaW5lczsKK+aVmeadkCA8IHRlYWNoaW5nXC1tYXRlcmlhbDsKK+mEsOWciyA8IGJvcmRlcmluZ1wtY291bnRyeTsKK+apn+ijvSA8IG1hY2hpbmVcLXByb2Nlc3NlZDsKK+mVt+mBlCA8IGV4dGVuZFwtYXNcLWxvbmdcLWFzOwor5YyW5aadIDwgdG9cLXB1dFwtb25cLW1ha2VcLXVwOwor6Zuj5o2xIDwgdHJ5aW5nXCxcLWRpZmZpY3VsdDsKK+Wkp+WxgCA8IGdlbmVyYWxcLXNpdHVhdGlvbjsKK+aSkui/puWIqeS6nuabuCA8IGJvb2tcLW9mXC16ZWNoYXJpYWg7CivmlY/mhJ8gPCBzZW5zaXRpdmVcLVwoaXNzdWVcKTsKK+e0oee5lCA8IHNwaW5uaW5nXC1cKHRocmVhZFwpOwor5aSn5aSaIDwgZm9yXC10aGVcLW1vc3RcLXBhcnQ7CivlvpLliJEgPCBcKHByaXNvblwpXC1zZW50ZW5jZTsKK+i7jeS6i+WKm+mHjyA8IG1pbGl0YXJ5XC1zdHJlbmd0aDsKK+azouWjq+mgk+Wkp+WtuCA8IGJvc3RvblwtdW5pdmVyc2l0eTsKK+aUr+aMgSA8IHRvXC1iZVwtaW5cLWZhdm9yXC1vZjsKK+e0m+e0myA8IG9uZVwtYWZ0ZXJcLWFub3RoZXI7CivpuqXlhYvntq0gPCBcKHRpbW90aHlcKVwtbWN2ZWlnaDsKK+aHieeUqOWxpCA8IGFwcGxpY2F0aW9uXC1sYXllcjsKK+ahjOWIpeaelyA8IFwoY2hhcmxpZVwpXC1jaGFwbGluOwor6Zu76Kmx5pyN5YuZIDwgdGVsZXBob25lXC1zZXJ2aWNlOwor6JOL54i+6KqeIDwgZ2FlbGljXC1cKGxhbmd1YWdlXCk7CivkuqTmj5vku6XlpKrntrLntaEgPCBzd2l0Y2hlZFwtZXRoZXJuZXQ7CivlpJblnIsgPCBmb3JlaWduXC1cKGNvdW50cnlcKTsKK+mYv+aLieS8r+iqniA8IGFyYWJpY1wtXChsYW5ndWFnZVwpOwor5o2V6aOfIDwgY2F0Y2hcLWFuZFwtZmVlZFwtb247CivmlK/mn7HnlKLmpa0gPCBtYWluc3RheVwtaW5kdXN0cnk7CivnhKHmiYDorIIgPCB0b1wtYmVcLWluZGlmZmVyZW50Owor5aSa56uZ5Zyw5Z2AIDwgbXVsdGljYXN0XC1hZGRyZXNzOwor6b2EIDwgcmVkXC1zb3Jlc1wtb25cLW5vc2U7CivntpPmv5/lronlhaggPCBlY29ub21pY1wtc2VjdXJpdHk7Civpu58gPCBibGFja1wtYW5kXC1zaGluaW5nOwor6bmBIDwgc3BlY2llc1wtb2ZcLXBpZ2VvbjsKK+i8lOiqsiA8IHN1YnNpZGlhcnlcLWNvdXJzZTsKK+WkluS6pOmiqOazoiA8IGRpcGxvbWF0aWNcLWNyaXNpczsKK+m1tSA8IHNjb3BzXC1zZW1pdG9ycXVlczsKK+WFq+iCoSA8IGVpZ2h0XC1cLXBhcnRcLWVzc2F5Owor5bmz5rCRIDwgXChvcmRpbmFyeVwpXC1wZW9wbGU7Civpg4rljYAgPCBzdWJ1cmJhblwtZGlzdHJpY3Q7CivlhanogIUgPCBib3RoXC1zaWRlc1x8dGhpbmdzOwor6a64IDwgc2NpYWVuYVwtYWxiaWZsb3JhOwor6a2rIDwgdGhlXC15b3VuZ1wtb2ZcLWZpc2g7Civpg6jku70gPCBwYXJ0XC1cKG9mXC1hXC13aG9sZVwpOwor6au9IDwgdG9cLWRyZXNzXC10aGVcLWhhaXI7Civpm7voqbHntrLot68gPCB0ZWxlcGhvbmVcLW5ldHdvcms7Civnmb3ogokgPCBwbGFpblwtYm9pbGVkXC1wb3JrOwor6aWpIDwgc2FjcmZpY2lhbFwtdmljdGltOwor6YKK5aGeIDwgZnJvbnRpZXJcLWZvcnRyZXNzOwor6aSCIDwgdG9cLW9idGFpblwtYnlcLWhvb2s7Civnn7PliLsgPCBzdG9uZVwtaW5zY3JpcHRpb247CivpnrggPCBsZWF0aGVyXC1hcm1cLWd1YXJkOwor6Z2/IDwgdGhlXC1sZWdcLW9mXC1hXC1ib290Owor57eK5a+GIDwgaW5zZXBhcmFibHlcLWNsb3NlOwor6Zq4IDwgYmVcLXN1YnNlcnZpZW50XC10bzsKK+apn+WZqOS6uiA8IG1lY2hhbmljYWxcLXBlcnNvbjsKK+mWqiA8IHRvXC1sb3NlXC1sb3N0XC1pdGVtOwor6YKK5Y2hIDwgYm9yZGVyXC1jaGVja3BvaW50Owor57ep5ZKMIDwgdG9cLWVhc2VcLVwodGVuc2lvblwpOwor5Y+N6YGO5L6G6KqqIDwgb25cLXRoZVwtb3RoZXJcLWhhbmQ7Civntq3mjIHosrsgPCBtYWludGVuYW5jZVwtY29zdHM7CivpiqAgPCByaG9kaXVtXC1ydXRoZW5pdW07Civnt6jljbAgPCBjb21waWxlXC1hbmRcLXByaW50Owor6YmVIDwgcHJvbWV0aGl1bVwtYnJvbnplOwor6L6m5YWs6Ieq5YuV5YyWIDwgb2ZmaWNlXC1hdXRvbWF0aW9uOwor6YizIDwgY29sdW1iaXVtXC1uaW9iaXVtOwor5Yex5peLIDwgcmV0dXJuXC10cml1bXBoYW50Owor5q2Q5rSy6Kqe6KiAIDwgZXVyb3BlYW5cLWxhbmd1YWdlOwor54CJ6IKaIDwgdG9cLWhhdmVcLWRpYXJyaG9lYTsKK+mGrSA8IG1vdWxkc1wtb25cLWxpcXVpZHM7CivphpEgPCB0b1wtc3RyYWluXC1zcGlyaXRzOwor6YW6IDwgZHJpbmtcLXdpdGhcLW90aGVyczsKK+e2sue1oeioreWCmSA8IG5ldHdvcmtcLWVxdWlwbWVudDsKK+eZveecvCA8IHN1cGVyY2lsaW91c1wtbG9vazsKK+adv+aTpuWFkiA8IGJsYWNrYm9hcmRcLWVyYXNlcjsKK+aXpeebiuWinuWKoCA8IHRvXC1pbmNyZWFzZVwtZGFpbHk7Civoso0gPCBhXC1mb3hcLWxpa2VcLWFuaW1hbDsKK+ecvOWwliA8IHRvXC1oYXZlXC1nb29kXC1leWVzOwor6LGLIDwgY2VyZW1vbmlhbFwtdmVzc2VsOwor5aCx5bizIDwgcmVuZGVyXC1hblwtYWNjb3VudDsKK+e2k+a/n+WKm+mHjyA8IGVjb25vbWljXC1zdHJlbmd0aDsKK+imvCA8IGV4cGxhaW5cLWluXC1kZXRhaWw7CivlkIzmgKfmiIAgPCBob21vc2V4dWFsXC1cKGxvdmVcKTsKK+ijnOeZvCA8IHN1cHBseVwtYWdhaW5cLVwoc3RoOwor6K6K5pys5Yqg5Y6yIDwgYmVjb21lXC1hZ2dyYXZhdGVkOwor5LiN5Y+K54mp5YuV6KmeIDwgaW50cmFuc2l0aXZlXC12ZXJiOwor5YWJ57qW5o6l5Y+jIDwgb3B0aWNhbFwtaW50ZXJmYWNlOwor6Ku+6LKd54i+5ZKM5bmz542OIDwgbm9iZWxcLXBlYWNlXC1wcml6ZTsKK+iclCA8IGlubGFpZFwtc2hlbGxcLXdvcms7CivmiorpoK0gPCBsYWJvdXJcLWNvbnRyYWN0b3I7CivllYbmpa3ooYzngrogPCBidXNpbmVzc1wtYWN0aXZpdHk7Civou43osrvplovmlK8gPCBtaWxpdGFyeVwtc3BlbmRpbmc7CivomLUgPCBwaHlzYWxpc1wtYW5ndWxhdGE7CivmgKfpqLfmk74gPCBzZXh1YWxcLWhhcmFzc21lbnQ7Civol6ggPCBraW5kXC1vZlwtcmFzcGJlcnJ5Owor6JW4IDwgd2F0ZXJcLWxpbHknJ3NcLWxlYWY7CivolZEgPCB2YWxlcmlhbmFcLXZpbGxvc2E7Civou5/ku7blubPoh7ogPCBzb2Z0d2FyZVwtcGxhdGZvcm07CivokY4gPCBodW11bHVzXC1qYXBvbmljdXM7CivlsY/pmpwgPCBwcm90ZWN0aXZlXC1zY3JlZW47Civoj6MgPCBhcnRlbWlzaWFcLWFwaWFjZWE7CivojpsgPCBzdGFsa3NcLW9mXC1ncmFzc2VzOwor54Gr5pifIDwgbWFyc1wtXCh0aGVcLXBsYW5ldFwpOwor6IyNIDwgdG9cLWJlXC1jaXJjdW1zcGVjdDsKK+mojummrCA8IHJpZGVcLW9uXC1ob3JzZWJhY2s7CivmqavmlrfniakgPCB0cmFuc3ZlcnNlXC1vYmplY3Q7CivmioTpjIQgPCB0b1wtbWFrZVwtYVwtY29weVwtb2Y7Civmj63mm4kgPCBhbm5vdW5jZVwtcHVibGljbHk7CivnvZsgPCBsYXJnZVwtZmlzaGluZ1wtbmV0Owor55m95bGI6I+cIDwgZ3JlYXRlclwtY2VsYW5kaW5lOwor57iwIDwgYmFuZFwtZm9yXC10aGVcLWhhaXI7Civnto4gPCBzaWxrXC1icmFpZGVkXC1jb3JkOwor5oyJ5ZyW57Si6amlIDwgdHJ5XC10b1wtbG9jYXRlXC1zdGg7CivntKwgPCBraW5kXC1vZlwtdGhpblwtc2lsazsKK+eXheeoiyA8IGNvdXJzZVwtb2ZcLWRpc2Vhc2U7CivlgrPovLjnjocgPCB0cmFuc21pc3Npb25cLXJhdGU7CivnsbggPCBwb3dkZXJ5XC1zdWJzdGFuY2U7CivluIzkvK/kvoboqp4gPCBoZWJyZXdcLVwobGFuZ3VhZ2VcKTsKK+exkyA8IGJpZ1wtd2lubm93XC1iYXNrZXQ7CivplovnmbzpgLHmnJ8gPCBkZXZlbG9wbWVudFwtY3ljbGU7Civnr6ggPCBjb2Fyc2VcLWJhbWJvb1wtbWF0Owor55Sz6Ki0IDwgdG9cLWFwcGVhbFwtXCh0b1wtc2JcKTsKK+S8uuacjeWZqCA8IHNlcnZlclwtXChjb21wdXRlclwpOwor5L6b6ZyAIDwgc3VwcGx5XC1hbmRcLWRlbWFuZDsKK+WcsOauvCA8IHRoZVwtZWFydGgnJ3NcLWNydXN0Owor6ZaJ5bmVIDwgdGhlXC1jdXJ0YWluXC1mYWxsczsKK+eliiA8IHJpdmVyXC1pblwtc2hhbmRvbmc7Civnm5vlkI0gPCBmYW1vdXNcLXJlcHV0YXRpb247Civlt6Xlp5QgPCB3b3JraW5nXC1jb21taXR0ZWU7CivmiLDnlaXlpKXkvLQgPCBzdHJhdGVnaWNcLXBhcnRuZXI7CivnrYboqr8gPCBcKG9mXC13cml0aW5nXClcLXRvbmU7CivlsZXopr0gPCB0b1wtcHV0XC1vblwtZGlzcGxheTsKK+eZveW4gyA8IHBsYWluXC13aGl0ZVwtY2xvdGg7CivpnZzohIjlkLjmr5IgPCBpbnRyYXZlbmVvdXNcLWRydWc7CivnmLUgPCBhXC13YXN0aW5nXC1kaXNlYXNlOwor54Sh5pyf5b6S5YiRIDwgbGlmZVwtaW1wcmlzb25tZW50Owor5bel5ZywIDwgY29uc3RydWN0aW9uXC1zaXRlOwor55KrIDwgcGVuZGFudFwtb3JuYW1lbnRzOwor55m+5YiG5LmL55m+IDwgYVwtaHVuZHJlZFwtcGVyY2VudDsKK+ajleiJsiA8IGJyb3duXC1cKHRoZVwtY29sb3JcKTsKK+evh+ebriA8IHRhYmxlXC1vZlwtY29udGVudHM7Civnjp4gPCBhblwtaW5mZXJpb3JcLWFnYXRlOwor6Iad5LiK5Z6L6Zu76IWmIDwgbGFwdG9wXC1cKGNvbXB1dGVyXCk7CivokIrmuqvmlq/ln7ogPCBcKG1vbmljYVwpXC1sZXdpbnNreTsKK+eGgCA8IHRoZVwtYmxhemVcLW9mXC1maXJlOwor5L2P6ZmiIDwgdG9cLWJlXC1pblwtaG9zcGl0YWw7CivlgrPovLjmnI3li5kgPCB0cmFuc3BvcnRcLXNlcnZpY2U7CivmkI/li5UgPCBiZWF0XC1yaHl0aG1pY2FsbHk7CivmjqXlvoUgPCByZWNlaXZlXC1cKGFcLXZpc2l0XCk7CivngY4gPCBtb3ZlbWVudFwtb2ZcLXdhdGVyOwor5YWs5YuZIDwgb2ZmaWNpYWxcLWJ1c2luZXNzOwor5riwIDwgZm9ybWluZ1wtb3JcLXJpc2luZzsKK+aLmOeVmSA8IGRldGFpblwtXChwcmlzb25lclwpOwor5rS2IDwgdGhlXC1ydXNoXC1vZlwtd2F0ZXI7CivntpzlkIjluIPnt5ogPCBpbnRlZ3JhdGVkXC13aXJpbmc7CivlnIvpmpvms5UgPCBpbnRlcm5hdGlvbmFsXC1sYXc7CivlhazkvYggPCBwdWJsaWNseVwtYW5ub3VuY2U7CivlhafkuoIgPCBpbnRlcm5hbFwtZGlzb3JkZXI7CivooZvmmJ8gPCBcKHNwYWNlXClcLXNhdGVsbGl0ZTsKK+aLjeeFpyA8IHRvXC10YWtlXC1hXC1waWN0dXJlOwor55eF5pWFIDwgZGllXC1vZlwtYW5cLWlsbG5lc3M7CivooZ3mk4ogPCBcKGJlXC11bmRlclwpXC1hdHRhY2s7CivplbfkuYUgPCBcKGZvclwtYVwpXC1sb25nXC10aW1lOwor5pygIDwgY29sb3JcLW9mXC10aGVcLW1vb247CivlgrPovLjpgJrpgZMgPCB0cmFuc3BvcnRcLWNoYW5uZWw7CivmlL/lupzpg6jploAgPCBnb3Zlcm5tZW50XC1icmFuY2g7CivmmpQgPCBuYW1lXC1vZlwtYVwtY291bnRyeTsKK+mMhOmfsyA8IFwoc291bmRcKVwtcmVjb3JkaW5nOwor5paw6IGe6YCx5YiKIDwgbmV3c3dlZWtcLW1hZ2F6aW5lOwor5pSwIDwgdG90YWxseVwtZXhoYXVzdGVkOwor5L+d56WQIDwgYmxlc3NcLWFuZFwtcHJvdGVjdDsKK+aOqyA8IGJlXC1vblwtbmlnaHRcLXdhdGNoOwor5o235aCxIDwgcmVwb3J0XC1vZlwtc3VjY2VzczsKK+aNpSA8IHRvXC1iZW5kXC10aGVcLXdyaXN0Owor5ZyY5ZyTIDwgdG9cLWhhdmVcLWFcLXJldW5pb247Civnm7TmjqXnq7bniK0gPCBkaXJlY3RcLWNvbXBldGl0b3I7CivkuK3lpK7lp5Tlk6HmnIMgPCBjZW50cmFsXC1jb21taXR0ZWU7CivphqvnmYLntpPpqZcgPCBtZWRpY2FsXC1leHBlcnRpc2U7Civlu6Pmkq3lnLDlnYAgPCBicm9hZGNhc3RcLWFkZHJlc3M7CivmhLAgPCBjbGVhcm5lc3NcLW9mXC1taW5kOwor5o6I5YubIDwgdG9cLWF3YXJkXC1hblwtaG9ub3I7Civlk4Dps7QgPCBhXC1wbGFpbnRpdmVcLXdoaW5lOwor55Sf54mp5q2m5ZmoIDwgYmlvbG9naWNhbFwtd2VhcG9uOwor5byWIDwgcGhvbmV0aWNcLWZvclwtJyd0ZScnOwor5oeC6KGMIDwgdG9cLWtub3dcLXRoZVwtcm9wZXM7Civou43ljYAgPCBhXC1taWxpdGFyeVwtcmVnaW9uOwor5L+d54i+IDwgXChhXC1wZXJzb25hbFwtbmFtZVwpOwor6LKh6ZalIDwgZmluYW5jaWFsXC1tYWduYXRlOwor5pqX54Sh5aSp5pelIDwgY29tcGxldGVcLWRhcmtuZXNzOwor5bCoIDwgc2hhZ2d5XC1oYWlyZWRcLWRvZzsKK+aLjeaUnSA8IFwoc2hvb3RcLWFcKVwtcGljdHVyZTsKK+S+teaIquiAhSA8IFwoY29tcHV0ZXJcKVwtaGFja2VyOwor6ICD6amXIDwgXChwdXRcLXRvXC10aGVcKVwtdGVzdDsKK+S/nea6qyA8IGhlYXRcLXByZXNlcnZhdGlvbjsKK+mrmOe0mueglOeptiA8IGFkdmFuY2VkXC1yZXNlYXJjaDsKK+Wxj+awoyA8IGhvbGRcLW9uZScnc1wtYnJlYXRoOwor6Ieq5Li757O757WxIDwgYXV0b25vbW91c1wtc3lzdGVtOwor55m96YeR5ryi5a6uIDwgYnVja2luZ2hhbVwtcGFsYWNlOwor6YGL6KGM54uA5rOBIDwgb3BlcmF0aW9uYWxcLXN0YXRlOwor5aSKIDwga2FuZ3hpXC1yYWRpY2FsXC0zNTsKK+WbsOmbo+WcqOaWvCA8IHRoZVwtcHJvYmxlbVwtaXNcLlwuXC47Civml6XogLPmm7zoqp4gPCBnZXJtYW5pY1wtbGFuZ3VhZ2U7CivnqJ/os6YgPCBuYXR1cmFsXC1lbmRvd21lbnQ7Civnl4XljbEgPCBiZVwtY3JpdGljYWxseVwtaWxsOwor5YKz6Ly45Y2U5a6aIDwgdHJhbnNmZXJcLXByb3RvY29sOwor5Za/IDwgY2hpcnBpbmdcLW9mXC1iaXJkczsKK+WWvCA8IHVzZWRcLXBob25ldGljYWxseTsKK+WWuSA8IGNoZW1pY2FsXC1jb21wb3VuZDsKK+S9teeZvCA8IGJlXC1jb21wbGljYXRlZFwtYnk7Civlk7UgPCB0aGVcLWNyeVwtb2ZcLWFcLWJpcmQ7Civlk7QgPCBjcnlpbmdcLW9mXC1pbmZhbnRzOwor6LKh6LK/IDwgZmluYW5jZVwtYW5kXC10cmFkZTsKK+Wkp+WIgOmXiuaWpyA8IGJvbGRcLWFuZFwtZGVjaXNpdmU7CivnibnliKXlvoXpgYcgPCBzcGVjaWFsXC10cmVhdG1lbnQ7CivlkKIgPCB2b21pdGluZ1wtb2ZcLWFcLWRvZzsKK+WIneWtuOiAhSA8IGJlZ2lubmluZ1wtc3R1ZGVudDsKK+WwiOeUqOe2sui3ryA8IGRlZGljYXRlZFwtbmV0d29yazsKK+ilv+eOi+avjSA8IG5hbWVcLW9mXC1hXC1nb2RkZXNzOwor5LqU6KeS5aSn5qiT5a6Y5ZOhIDwgcGVudGFnb25cLW9mZmljaWFsOwor5pWY5Yip5Lqe5paHIDwgc3lyaWFjXC1cKGxhbmd1YWdlXCk7CivmvKLlrZcgPCBjaGluZXNlXC1jaGFyYWN0ZXI7CivlronnqakgPCBzbW9vdGhcLWFuZFwtc3RlYWR5Owor5YCIIDwgdG9cLWluZHVjZVwtdG9cLWNvbWU7Civkv4ggPCB0b1wtaW5mb3JtXC1xdWlja2x5Owor5Yiw6YKj5YCL5pmC5YCZIDwgdW50aWxcLXRoaXNcLW1vbWVudDsKK+S7giA8IHN1cnBsdXNcLW9yXC1leGNlc3M7CivlnKjpoK3niYggPCBvblwtdGhlXC1mcm9udFwtcGFnZTsKK+WwiOalrSA8IHNwZWNpYWxpemVkXC1maWVsZDsKK+S5qiA8IGFcLWJlbmRcLWluXC1hXC1yaXZlcjsKK+i2qOaZgiA8IHRvXC1mb2xsb3dcLWZhc2hpb247CivktrAgPCBmZWF0aGVyXC1vcm5hbWVudHM7CivktpYgPCBkaXNlYXNlXC1vZlwtdG9uZ3VlOwor5LWcIDwgdG9cLXBsb3VnaFwtYW5kXC1zb3c7CivktIogPCB0aGVcLWNyb3dcLXBoZWFzYW50Owor5LuN6IiKIDwgc3RpbGxcLVwocmVtYWluaW5nXCk7Civks6QgPCBhXC1raW5kXC1vZlwtc3RyYW5nZTsKK+SzmSA8IGFcLWVncmV0XC1saWtlXC1iaXJkOwor5ouX5Y+jIDwgaGFyZFwtdG9cLXByb25vdW5jZTsKK+SvpSA8IHdpdGhcLWFcLWhpZ2hcLXNrdWxsOwor5K+iIDwgcGFydGlhbFwtcGFyYWx5c2lzOwor5K6rIDwgYVwtYmlnXC1tdWxlXC1hblwtYXNzOwor5K6aIDwgZGlzZWFzZXNcLW9mXC1ob3JzZTsKK+SukCA8IGluXC1nb29kXC1jb25kaXRpb247CivkrZQgPCBzdGVhbWVkXC1kdW1wbGluZ3M7CivkrLAgPCBsaWdodFwtcmVmcmVzaG1lbnQ7CivkrJUgPCBzb3VuZFwtb2ZcLXRoZVwtd2luZDsKK+SsjSA8IHRoZVwtc291bmRcLW9mXC13aW5kOwor5KyGIDwgYVwtYmx1c3RlcmluZ1wtZ2FsZTsKK+SrpiA8IHRoZVwtbG93ZXJcLWphd2JvbmU7Civkq58gPCBmYWNpYWxcLWNvbXBsZXhpb247Civkq40gPCB0b1wtYm93XC1vbmUnJ3NcLWhlYWQ7Civkq4kgPCBmYWNpYWxcLWFwcGVhcmFuY2U7CivkuI3mraHogIzmlaMgPCBwYXJ0XC1vblwtYmFkXC10ZXJtczsKK+SolSA8IHBvdXJpbmdcLXdpdGhcLXJhaW47CivkuK3oj6/msJHlnIsgPCByZXB1YmxpY1wtb2ZcLWNoaW5hOwor5Ke6IDwgdGhlXC1tYWxlXC1vZlwtYmlyZHM7CivkpqogPCBzb3VuZFwtb2ZcLXRoZVwtZG9vcjsKK+WWmOawoyA8IHRvXC1icmVhdGhlXC1kZWVwbHk7CivkpoMgPCB0b1wtZGlnXC13aXRoXC1hXC1ob2U7Civko7sgPCBjb2xvclwtb2ZcLXRoZVwtd2luZTsKK+aLnOWAkiA8IHByb3N0cmF0ZVwtb25lc2VsZjsKK+azouiYreiqniA8IHBvbGlzaFwtXChsYW5ndWFnZVwpOwor5KKdIDwgdGhlXC1uZXh0XC1pblwtb3JkZXI7CivkobcgPCBub2lzZVwtb2ZcLXZlaGljbGVzOwor5KGqIDwgZmFuXC1vZlwtYVwtY2FycmlhZ2U7CivkoZkgPCBhblwtYXJtZWRcLWNhcnJpYWdlOwor5J6VIDwgY29sb3JcLW9mXC10aGVcLWZpcmU7CivknoIgPCBmYWlybHlcLXByb3NwZXJvdXM7CivmiY3mgJ0gPCBpbWFnaW5hdGl2ZVwtcG93ZXI7CivknbogPCB0b1wtcGllcmNlXC10aHJvdWdoOwor5J2zIDwgdG9cLWtpbGxcLWZvclwtbW9uZXk7CivknbIgPCBmYXJld2VsbFwtcHJlc2VudHM7CivkuKbpp5XpvYrpqYUgPCBydW5cLW5lY2tcLWFuZFwtbmVjazsKK+azoumfsyA8IGJvZWluZ1wtXChhaXJjcmFmdFwpOwor6L2f54K45qmfIDwgYm9tYmVyXC1cKGFpcmNyYWZ0XCk7CivknKIgPCBjcnVlbFwtYW5kXC12aW9sZW50Owor6Zuj5Lul5oeJ5LuYIDwgaGFyZFwtdG9cLWRlYWxcLXdpdGg7CivkmqAgPCB1bmJyb2tlblwtZmlyZXdvb2Q7Civkmp0gPCBuZXdcLWdyb3dpbmdcLWhvcm5zOwor5JqaIDwgaG9yblwtb2ZcLWFuXC1hbmltYWw7CivkmpEgPCB0b1wtc3RlYWxcLWFcLWdsYW5jZTsKK+SagCA8IHRvXC1zZWVcLXN0ZWFsdGhpbHk7CivkmbQgPCB0b1wtc29hclwtYXNcLWFcLWJpcmQ7CivkmaogPCBhXC1sb29wXC1mb3JcLWJ1dHRvbjsKK+a0m+adieejr+aZguWgsSA8IGxvc1wtYW5nZWxlc1wtdGltZXM7CivkmI4gPCBuYW1lXC1vZlwtYW5cLWluc2VjdDsKK+ehrOS7tuW5s+iHuiA8IGhhcmR3YXJlXC1wbGF0Zm9ybTsKK+SXuSA8IGhhaXJ5XC1jYXRlcnBpbGxhcjsKK+S9nOalrSA8IHNjaG9vbFwtYXNzaWdubWVudDsKK+WumOaWueiqnuiogCA8IG9mZmljaWFsXC1sYW5ndWFnZTsKK+m8k+iIniA8IGhlYXJ0ZW5pbmdcLVwobmV3c1wpOwor5JWnIDwgeml6YW5pYVwtbGF0aWZvbGlhOwor5JWGIDwgcm91bmRcLXN0cmF3XC1xdWlsdDsKK+mGq+WtuOWutiA8IG1lZGljYWxcLXNjaWVudGlzdDsKK+STmyA8IG1vbGVjdWxhclwtZm9ybXVsYTsKK+SSvSA8IGlsbGljaXVtXC1hbmlzYXR1bTsKK+SSkCA8IGRpc3R1cmJlZFwtaW5cLW1pbmQ7CivkkbwgPCBvY2VhblwtZ29pbmdcLWxpbmVyOwor5YyX5Lqs6L+R6YOKIDwgc3VidXJiXC1vZlwtYmVpamluZzsKK+SQoCA8IGJldHdlZW5cLXRoZVwtZmxlc2g7CivkkJggPCB0b1wtbGF1Z2hcLWhlYXJ0aWx5Owor5I+wIDwgYVwta2luZFwtb2ZcLWluc2VjdHM7Civoj6/nm5vpoJMgPCB3YXNoaW5ndG9uXC1cKGRcLmNcLlwpOwor5I2tIDwgYVwtZXdlXC1vclwtc2hlXC1nb2F0Owor5I2HIDwgZmxhdFwtYm90dG9tXC1jcm9jazsKK+SMqCA8IHRoaW5cLXNpbGtcLWZhYnJpY3M7Civki7sgPCB0b1wtc3BpblwtYW5kXC13ZWF2ZTsKK+SLuiA8IGFcLXN3aW5nXC1hXC1jcnVwcGVyOwor5IuYIDwgdG9cLWhhbmRcLWJ5XC1hXC1yb3BlOwor5paH5YyW55qE5Lqk5rWBIDwgY3VsdHVyYWxcLWV4Y2hhbmdlOwor5IqvIDwgZ3JhaW5zXC13aXRoXC1iZWFyZDsKK+SJjCA8IGNydWRlXC1iYW1ib29cLW1hdHM7CivkiKAgPCBib29rc1wtYW5kXC12b2x1bWVzOwor5pav5rSb5LyQ5YWL6KqeIDwgc2xvdmFrXC1cKGxhbmd1YWdlXCk7CivmoYjmg4UgPCBkZXRhaWxzXC1vZlwtYVwtY2FzZTsKK+S4n+mjr+eilyA8IHRvXC1sb3NlXC1vbmUnJ3NcLWpvYjsKK+SEiSA8IGFcLXJpdGVcLW9yXC1zZXJ2aWNlOwor6LKh56WeIDwgdGhlXC1nb2RcLW9mXC13ZWFsdGg7CivkgYQgPCB0b1wtY2xvc2VcLXRoZVwtZXllczsKK+SAuSA8IHRvXC13aW5rXC1leWVsYXNoZXM7Civmr5TovIPmlrAgPCBjb21wYXJhdGl2ZWx5XC1uZXc7Civjv4MgPCBhblwtb3hcLWhlYWRlZFwtYm9pbDsKK+O+sSA8IGluY3VyYWJsZVwtZGlzZWFzZTsKK+O9jSA8IGFuXC1lYXJ0aGVuXC12ZXNzZWw7Civjur8gPCBhXC1qYWRlXC1saWtlXC1zdG9uZTsKK+WkluWci+aXhemBiuiAhSA8IGZvcmVpZ25cLXRyYXZlbGxlcjsKK+ePvueLgCA8IGN1cnJlbnRcLXNpdHVhdGlvbjsKK+Wwj+WgsSA8IHRhYmxvaWRcLW5ld3NwYXBlcjsKK+O2vyA8IHRoZVwtc21va2VcLXdlbnRcLXVwOwor47a0IDwgYVwtdmVyeVwtZ3JlYXRcLWZpcmU7CivkuIDoiKzljp/liYcgPCBnZW5lcmFsXC1wcmluY2lwbGU7CivjtasgPCB3YXRlclwtZ3VzaGluZ1wtb3V0Owor47WNIDwgZmlsbGVkXC13aXRoXC13YXRlcjsKK+O1hCA8IG5hbWVcLW9mXC1hXC1keW5hc3R5Owor5pyd6IGWIDwgbWFrZVwtYVwtcGlsZ3JpbWFnZTsKK+OznCA8IHRoZVwtZmxvd2luZ1wtd2F0ZXI7CivjsrIgPCBmaW5lXC1jb3R0b25cLWNsb3RoOwor47KYIDwgZmluZVwtd29vbGVuXC1jbG90aDsKK+OyiyA8IGFcLWtpbmRcLW9mXC1hbmltYWxzOwor47KDIDwgc21vb3RoXC1hbmRcLWN1cnZlZDsKK+S/neWBpSA8IGhlYWx0aFwtcHJvdGVjdGlvbjsKK+OvvyA8IGhhbmRsZVwtb2ZcLWFcLWxhZGxlOwor46+mIDwgdGhlXC1nYW1lXC1vZlwtY2hlc3M7Civmt6vmsLQgPCBzZXh1YWxcLXNlY3JldGlvbnM7CivjrrUgPCBjb21tb25cLXNhbmRhbHdvb2Q7CivjrqggPCBjb2RpdW1cLW1hY3JvbmF0dW07CivjrpogPCB0aGVcLWNoZXN0bnV0XC10cmVlOwor46ybIDwgdG9cLWRyeVwtaW5cLXRoZVwtc3VuOwor5bCE6aC75bmy5pO+IDwgcmFkaW9cLWludGVyZmVyZWNlOwor46muIDwgdG9cLWxpZnRcLXVwXC1vclwtb2ZmOwor46mpIDwgdG9cLWNvbWVcLXRvXC1hblwtZW5kOwor46mZIDwgYVwtY29ya1wtb3JcLXN0b3BwZXI7CivjqKIgPCB0b1wtcmlwXC1vcGVuXC1mbGVzaDsKK+mbu+S/oeiZnyA8IGVsZWN0cmljYWxcLXNpZ25hbDsKK+Wwi+WRsyA8IHRvXC10aGlua1wtc3RoXC1vdmVyOwor5p2/54WZIDwgcGx1Z1wtXChvZlwtdG9iYWNjb1wpOwor5rOo6KaWIDwgd2F0Y2hcLWF0dGVudGl2ZWx5Owor46OiIDwgdG9cLXJlc3RcLWZyb21cLXdvcms7Civjo5MgPCBsaXRlcmFyeVwtaW5cLXRhc3RlOwor46ONIDwgYVwtcmFpc2VkXC1wbGF0Zm9ybTsKK+OiriA8IHRvXC11bnN0cmluZ1wtYVwtYm93Owor46KRIDwgYVwtY29sbGFwc2VkXC1ob3VzZTsKK+OihCA8IGFcLWtpbmRcLW9mXC11dGVuc2lsOwor5rOV6KqeIDwgZnJlbmNoXC1cKGxhbmd1YWdlXCk7CivjoZ8gPCBiZWRcLW1hdHNcLWZvclwtYmFieTsKK+OgtyA8IGFcLXZlc3NlbFwtZm9yXC1yaWNlOwor46ClIDwgcnVnZ2VkXC1hbmRcLXVuZXZlbjsKK+OftCA8IGx1bXBcLW9uXC10aGVcLWhpbGxzOwor45+kIDwgemh1YW5nXC1pblwtZ3Vhbmd4aTsKK+OfgyA8IHRvXC1oYXZlXC1jaGFyZ2VcLW9mOwor456tIDwgbmFtZVwtb2ZcLWFuXC1pc2xhbmQ7Civlm5vpnaLlhavmlrkgPCBpblwtYWxsXC1kaXJlY3Rpb25zOwor452MIDwgcHJvbG9uZ2VkXC1pbGxuZXNzOwor45u0IDwgdG9cLWFuZ2VyXC10b1wtYW5ub3k7CivjmoUgPCB0b1wtd29yc2hpcFwtb2ZcLWdvZDsKK+OZqSA8IGFuXC1lbmNsb3NpbmdcLXdhbGw7CivjmKYgPCB3YWxsXC1tYWRlXC1vZlwtc29pbDsKK+OYmiA8IGFuZ3J5XC1haXJcLW9mXC1sb29rOwor45e8IDwgZWF0aW5nXC1vclwtdGFsa2luZzsKK+OXpSA8IHNvdW5kXC1vZlwtc3RyaWtpbmc7CivjlqcgPCBjYW5cLW5vdFwtc2VlXC1jbGVhcjsKK+OUnSA8IHN0cm9uZ1wtcmVzaXN0YW5jZTsKK+OTviA8IHRvXC13b3VuZFwtdGhlXC1za2luOwor542o56uLIDwgdG9cLWJlXC1pbmRlcGVuZGVudDsKK+ORnSA8IHRvXC1tYWtlXC1hXC1mb29sXC1vZjsKK+ORjyA8IHRvXC1zdGFuZFwtYW5kXC13YWl0Owor45GKIDwgYVwta2luZFwtb2ZcLWRpc2Vhc2U7Civnp5jmm7jplbcgPCBzZWNyZXRhcnlcLWdlbmVyYWw7CivotbDlh7ogPCB0b1wtbW92ZVwtYXdheVwtZnJvbTsKK+iBsuaPtCA8IHN1cHBvcnRcLVwoYVwtY2F1c2VcKTsKK+ekpuiXjyA8IG1pbmVyYWxcLXJlc291cmNlczsKK+Wvq+S/oSA8IHRvXC13cml0ZVwtYVwtbGV0dGVyOwor5LiJ57atIDwgdGhyZWVcLWRpbWVuc2lvbmFsOwor56m05bGFIDwgdG9cLWxpdmVcLWluXC1hXC1jYXZlOwor54uA6KqeIDwgYWR2ZXJiaWFsXC1hZGp1bmN0Owor5Zyo5aSn5aSa5pW45oOF5rOB5LiLIDwgaW5cLW1vc3RcLWluc3RhbmNlczsKK+mFrOmHkSA8IFwobW9uZXRhcnlcKVwtcmV3YXJkOwor5ZyL5a625a6J5YWoIDwgbmF0aW9uYWxcLXNlY3VyaXR5Owor6LKh5pS/IDwgZmluYW5jZXNcLVwocHVibGljXCk7CivmtbfmtIvmuqvluqYgPCBvY2VhblwtdGVtcGVyYXR1cmU7CivntrLpmpvljZTlrpogPCBpbnRlcm5ldFwtcHJvdG9jb2w7CivlpJbkuqTpl5zkv4IgPCBmb3JlaWduXC1yZWxhdGlvbnM7CivlronljbEgPCBzYWZldHlcLWFuZFwtZGFuZ2VyOwor5be05YWL5aSP6LGsIDwgYmVya3NoaXJlXC1cKHN3aW5lXCk7CivlkI3nqLEgPCBuYW1lXC1cKG9mXC1hXC10aGluZ1wpOwor54mp6LOqIDwgXChwaHlzaWNhbFwpXC1tYXR0ZXI7CivlkIPnqb8gPCBmb29kXC1hbmRcLWNsb3RoaW5nOwor6KiK5qGG5YKz6YCB6KuW5aOHIDwgZnJhbWVcLXJlbGF5XC1mb3J1bTsKK+eptOS9jSA8IGFjdXB1bmN0dXJlXC1wb2ludDsKK+WtuOS9jSA8IGVkdWNhdGlvbmFsXC1sZXZlbDsKK+WQhOeVjCA8IGFsbFwtd2Fsa3NcLW9mXC1saWZlOwor6ICz5a2QIDwgaGFuZGxlXC1cKG9uXC1hXC1wb3RcKTsKK+atkOa0suS6uiA8IGV1cm9wZWFuXC1cKHBlcnNvblwpOwor5oCd57atIDwgXChsaW5lXC1vZlwpXC10aG91Z2h0Owor6KGb55Sf6YOoIDwgaGVhbHRoXC1kZXBhcnRtZW50Owor5qWt55WM5qiZ5rqWIDwgaW5kdXN0cnlcLXN0YW5kYXJkOwor5Lul5YWNIDwgaW5cLW9yZGVyXC10b1wtYXZvaWQ7CivkuIDljYPkuIPnmb7okKwgPCBzZXZlbnRlZW5cLW1pbGxpb247Civkuovlr6YgPCBcKHRoZVwpXC1mYWN0XC1cKHRoYXRcKTsKK+acrOaApyA8IG5hdHVyYWxcLWluc3RpbmN0czsKK+mbo+mhjCA8IGRpZmZpY3VsdFwtcHJvYmxlbTsKK+WnlOWToeacg+acg+itsCA8IGNvbW1pdHRlZVwtbWVldGluZzsKK+iuiuebuCA8IGluXC1kaXNndWlzZWRcLWZvcm07CivosqHli5kgPCBmaW5hbmNpYWxcLWFmZmFpcnM7CivmnI3lvbkgPCBzZXJ2ZVwtaW5cLXRoZVwtYXJteTsKK+mGq+eZgiA8IG1lZGljYWxcLXRyZWF0bWVudDsKK+mZuOWfuuWwjuW9iCA8IGxhbmRcLWJhc2VkXC1taXNzbGU7Civmlazph40gPCB0b1wtcmVzcGVjdFwtZGVlcGx5Owor5pqX5rKzIDwgdW5kZXJncm91bmRcLXJpdmVyOwor6aC45qSOIDwgY2VydmljYWxcLXZlcnRpYnJhOwor57ay6bueIDwgbm9kZVwtaW5cLWFcLW5ldHdvcms7Civpu5HlrqIgPCBoYWNrZXJcLVwoY29tcHV0ZXJcKTsKK+e6luiKryA8IGNvcmVcLVwob2ZcLWFcLWZpYmVyXCk7Civnt6jpmoogPCBmb3JtXC1pbnRvXC1jb2x1bW5zOwor5pWX6YCAIDwgcmV0cmVhdFwtaW5cLWRlZmVhdDsKK+acrOWciyA8IG9uZScnc1wtb3duXC1jb3VudHJ5Owor5aSq5bmz5rSLIDwgdGhlXC1wYWNpZmljXC1vY2VhbjsKK+WOn+WboOaYryA8IHRoZVwtcmVhc29uXC1pc1wtXC5cLlwuOwor6KiI566X5qmf5bel5qWtIDwgY29tcHV0ZXJcLWluZHVzdHJ5Owor6KW/55Wq6ZuF5pu4IDwgYm9va1wtb2ZcLXplcGhhbmlhaDsKK+iqnuiogCA8IFwoc3Bva2VuXClcLWxhbmd1YWdlOwor5LiA5bm05Y2KIDwgYVwteWVhclwtYW5kXC1hXC1oYWxmOwor5bCI5a626KmV6KuWIDwgZXhwZXJ0XC1jb21tZW50YXJ5Owor6Zi/54i+5be05bC85Lqe5Lq6IDwgYWxiYW5pYW5cLVwocGVyc29uXCk7CivkuI3lsZEgPCBkaXNkYWluXC10b1wtZG9cLXN0aDsKK+Wah+W+l+eZvOaKliA8IHRyZW1ibGVcLXdpdGhcLWZlYXI7CivljYrnpaggPCBoYWxmXC1wcmljZVwtdGlja2V0Owor542o5ZSxIDwgXChpblwtc2luZ2luZ1wpXC1zb2xvOwor5LiN55SY5b+DIDwgbm90XC1yZWNvbmNpbGVkXC10bzsKK+Wbm+mWgOi9jui7iiA8IHNlZGFuXC1cKG1vdG9yXC1jYXJcKTsKK+engeS6uiA8IHByaXZhdGVcLVwoY2l0aXplblwpOwor542y5YeGIDwgb2J0YWluXC1wZXJtaXNzaW9uOwor5a6i5oi25qmfIDwgY2xpZW50XC1cKGNvbXB1dGVyXCk7CivmrIrpkbAgPCBrZXlzXC1vZlwtYXV0aG9yaXR5Owor5aSx5qWt546HIDwgdW5lbXBsb3ltZW50XC1yYXRlOwor54iG566hIDwgY2FydHJpZGdlXC1pZ25pdGVyOwor56Sm5bqKIDwgXChtaW5lcmFsXClcLWRlcG9zaXQ7CivmhJvkuI3ph4vmiYsgPCBmb25kbGVcLWFkbWlyaW5nbHk7CivmraLooYAgPCBzdGFuY2hcLVwoYmxlZWRpbmdcKTsKK+WQjeWtlyA8IFwoYVwtcGVyc29uJydzXClcLW5hbWU7Civorablr5/lsYAgPCBwb2xpY2VcLWRlcGFydG1lbnQ7Civlj7DluaMgPCBuZXdcLXRhaXdhblwtZG9sbGFyOwor6aGn5Y+KIDwgdGFrZVwtaW50b1wtYWNjb3VudDsKK+atuOW/g+iAhSA8IHJlbGlnaW91c1wtY29udmVydDsKK+aykumXnOS/giA8IGl0XC1kb2VzbicndFwtbWF0dGVyOwor5LiL5Y67IDwgZ29cLWRvd25cLVwoZGVzY2VuZFwpOwor5b6e6aCt5Yiw6IWzIDwgZnJvbVwtaGVhZFwtdG9cLWZvb3Q7Civli7vnqLEgPCB3ZWxsXC1wcm9wb3J0aW9uZWQ7CivkuI3lipsgPCBub3RcLWRvXC1vbmUnJ3NcLWJlc3Q7CivpgZPorJ0gPCB0b1wtZXhwcmVzc1wtdGhhbmtzOwor56Gd54WZIDwgc21va2VcLVwoZnJvbVwtZ3Vuc1wpOwor6Jed5Lq6IDwgcGVyZm9ybWluZ1wtYXJ0aXN0Owor5YyF5ZyS5YWSIDwgYnV5XC10aGVcLXdob2xlXC1sb3Q7CivmlZnnt7QgPCBcKGF0aGxldGUnJ3NcKVwtY29hY2g7Civlh7rpmaIgPCB0b1wtbGVhdmVcLWhvc3BpdGFsOwor6Zi/6YeMIDwgYWxpXC1cKHByb3BlclwtbmFtZVwpOwor5LiA6Lqr5rGXIDwgc3dlYXRpbmdcLWFsbFwtb3ZlcjsKK+mZhOi/kSA8IFwoaW5cLXRoZVwpXC12aWNpbml0eTsKK+W7o+aSree2sui3ryA8IGJyb2FkY2FzdFwtbmV0d29yazsKK+esqOWPo+aLmeiIjCA8IGF3a3dhcmRcLWluXC1zcGVlY2g7CivniYzmqJMgPCBkZWNvcmF0ZWRcLWFyY2h3YXk7Civlt7Tmlq/lhYvoqp4gPCBiYXNxdWVcLVwobGFuZ3VhZ2VcKTsKK+eItuavjSA8IGZhdGhlclwtYW5kXC1tb3RoZXI7Civoj6/ljJflubPljp8gPCBub3J0aFwtY2hpbmFcLXBsYWluOwor5pWR5oGp6KiI5YqDIDwgcGxhblwtb2ZcLXNhbHZhdGlvbjsKK+S4qiA8IG51bWVyYXJ5XC1hZGp1bmN0Owor6YeMIDwgdW5pdFwtb2ZcLWRpc3RhbmNlOwor6ZizIDwgJydtYWxlJydcLXByaW5jaXBsZTsKK+ionSA8IGV4cHJlc3NcLXN1cnByaXNlOwor6buNIDwgZ2x1dGlub3VzXC1taWxsZXQ7CivliacgPCB0aGVhdHJpY2FsXC1wbGF5czsKK+iYgiA8IHN0YW1lblwtb3JcLXBpc3RpbDsKK+aMuiA8IHRvXC1zdGFuZFwtdXByaWdodDsKK+ehgCA8IGZvdW5kYXRpb25cLXN0b25lOwor6IiFIDwgbW90aGVyJydzXC1icm90aGVyOwor6JCnIDwgY29tbW9uXC1hcnRlbWlzaWE7Civkv7ogPCBwZXJzb25hbFwtcHJvbm91bjsKK+eOsiA8IHRpbmtsaW5nXC1vZlwtamFkZTsKK+aNqSA8IHR3aXN0XC13aXRoXC1oYW5kczsKK+m7myA8IGJsYWNrZW5cLWV5ZWJyb3dzOwor5aaGIDwgdG9cLWFkb3JuXC1vbmVzZWxmOwor5bmiIDwgY2FycmlhZ2VcLWN1cnRhaW47Civmoq0gPCB3ZWF2ZXInJ3NcLXNodXR0bGU7CivmvKogPCByaXBwbGVzXC1vblwtd2F0ZXI7CivnnLcgPCB0YWtlXC1pbnRlcmVzdFwtaW47Civli4sgPCBtZXJpdG9yaW91c1wtZGVlZDsKK+eUrSA8IHRoZXJlXC1pc1wtbm9cLW5lZWQ7CivnpaAgPCBhbmNlc3RyYWxcLXRlbXBsZTsKK+iIlCA8IGxpY2tcLXdpdGhcLXRvbmd1ZTsKK+iViiA8IHVub3BlbmVkXC1mbG93ZXJzOwor6LWjIDwgamlhbmd4aVwtcHJvdmluY2U7Civot7cgPCByYWlzZVwtb25lJydzXC1mb290Owor5YmBIDwgY2hvcFwtYnlcLXBvdW5kaW5nOwor6JawIDwgYVwtbWVkaWNpbmFsXC1oZXJiOwor5Y+8IDwgaG9sZGluZ1wtaW5cLW1vdXRoOwor6I28IDwgYml0dGVyXC12ZWdldGFibGU7CivlvpkgPCBtb3ZlXC1vbmUnJ3NcLWFib2RlOwor5raUIDwgcml2ZXJcLWluXC1zaGFhbnhpOwor5r2iIDwgZXhwYW5zZVwtb2ZcLXdhdGVyOwor56e4IDwgc3RhbGtzXC1vZlwtbWlsbGV0Owor6KKIIDwgYnVkZGhpc3RcLWNhc3NvY2s7Civnj54gPCBraW5kXC1vZlwtbmVja2xhY2U7Civllb4gPCB3YWlsaW5nXC1vZlwtY2hpbGQ7CivkursgPCByYWRpY2FsXC1udW1iZXJcLTk7CivlpJkgPCBlYXJseVwtaW5cLW1vcm5pbmc7CivpuZggPCBhXC1raW5kXC1vZlwtcGlnZW9uOwor5aipIDwgZ2l2ZVwtYmlydGhcLWNoaWxkOwor5aedIDwgYVwtYmVhdXRpZnVsXC1naXJsOwor5oeRIDwgYmVcLXNpY2tcLWF0XC1oZWFydDsKK+mUiSA8IGNhcnBlbnRlcicnc1wtZmlsZTsKK+a0sSA8IGFcLWxha2VcLWluXC15dW5uYW47CivonYggPCBzbWFsbFwtZ3JlZW5cLWZyb2c7CivluLwgPCB3b21lbicnc1wtaGVhZGdlYXI7Civni44gPCBiZVwtZmFtaWxpYXJcLXdpdGg7Civog6ogPCBhcnJhbmdlXC1pblwtb3JkZXI7CivosaIgPCBkb21lc3RpY1wtYW5pbWFsczsKK+echyA8IGJsaW5kXC1pblwtb25lXC1leWU7Civnvr8gPCBsZWdlbmRhcnlcLWFyY2hlcjsKK+iKqSA8IHNhbHRcLW1hcnNoXC1wbGFudDsKK+iMrSA8IGFuXC1hcXVhdGljXC1ncmFzczsKK+iTliA8IGNhc3Rvclwtb2lsXC1wbGFudDsKK+WCpyA8IGVudGVydGFpblwtZ3Vlc3RzOwor6JacIDwgZXZlcmdyZWVuXC1zaHJ1YnM7CivotrogPCBzaXRcLWNyb3NzXC1sZWdnZWQ7CivmpLkgPCBhXC1jaG9wcGluZ1wtYm9hcmQ7CivpnIggPCB0b3JyZW50aWFsXC1yYWluczsKK+abqSA8IGluXC1hbmNpZW50XC10aW1lczsKK+agjCA8IHN1cHBvcnRpbmdcLWJsb2NrOwor5ZOaIDwgY2hlbWljYWxcLWVsZW1lbnQ7CivnrYwgPCBiYW1ib29cLWZpc2hcLXRyYXA7CivmtY0gPCBpcnJpZ2F0aW9uXC1kaXRjaDsKK+eMgSA8IGFcLWtpbmRcLW9mXC1tb25rZXk7CivllbYgPCBcLWRcLVwrXC1pbmVcLVwoY2hlbVwuXCk7CivprK8gPCBzYWNyaWZpY2lhbFwtd2luZTsKK+mytyA8IHBhZ3Jvc29tdXNcLW1ham9yOwor6IGxIDwgYmVudFwtYW5kXC10d2lzdGVkOwor5YqiIDwgcHV0XC1mb3J0aFwtZWZmb3J0Owor6J+qIDwgYVwta2luZFwtb2ZcLWNpY2FkYTsKK+i1hiA8IGZhcmV3ZWxsXC1wcmVzZW50Owor5Z+vIDwgY292ZXJcLXdpdGhcLWVhcnRoOwor6bKUIDwga2luZFwtb2ZcLXN0dXJnZW9uOwor572oIDwgbWVkaWNhbFwtY29tcHJlc3M7Civlq5wgPCBodXNiYW5kJydzXC1wYXJlbnQ7CivmvKQgPCBtYXJpbmF0ZVwtaW5cLXNhbHQ7CivlmoYgPCBnaXZlXC1mb3J0aFwtc291bmQ7CivolrkgPCBjeXBlcnVzXC1yb3R1bmR1czsKK+iMhiA8IHNwZWNpZXNcLW9mXC1ncmFzczsKK+ejqOWtkCA8IG1pbGxcLFwtbWlsbHN0b25lczsKK+WFseeUoum7qOmDqOmaiiA8IGNvbW11bmlzdFwtZm9yY2VzOwor5ZCO5Lq6IDwgbGF0ZXJcLWdlbmVyYXRpb247CivoiKrnqbrmr43oiaYgPCBhaXJjcmFmdFwtY2FycmllcjsKK+itmOWtlyA8IHRvXC1sZWFyblwtdG9cLXJlYWQ7CivkuK3lnIvlpKfpmbggPCBjaGluZXNlXC1tYWlubGFuZDsKK+W9seWDj+acg+itsCA8IHZpZGVvXC1jb25mZXJlbmNlOwor5b+D5b6XIDwga25vd2xlZGdlXC1nYWluZWQ7CivmgrLmraHpm6LlkIggPCBqb3lzXC1hbmRcLXNvcnJvd3M7Civnmb7ph4zmjJHkuIAgPCBvbmVcLWluXC1hXC1odW5kcmVkOwor55m957Sw6IOeIDwgd2hpdGVcLWJsb29kXC1jZWxsOwor6Kqe5rOV6KGT6KqeIDwgZ3JhbW1hdGljYWxcLXRlcm07CivmsYLlqZogPCBwcm9wb3NlXC1tYXJyaWFnZTsKK+e3qOebriA8IG1ha2VcLWFcLWNhdGFsb2d1ZTsKK+mbu+a1gSA8IGVsZWN0cmljXC1jdXJyZW50Owor5Z+O6Y6uIDwgY2l0aWVzXC1hbmRcLXRvd25zOwor5aeU5ZOhIDwgY29tbWl0dGVlXC1tZW1iZXI7Civlo4HnlasgPCBtdXJhbFwtXChwYWludGluZ1wpOwor5aeT5ZCNIDwgbmFtZVwtYW5kXC1zdXJuYW1lOwor5piv5ZCmIDwgd2hldGhlclwtXChvclwtbm90XCk7CivnuL3mqZ8gPCBjZW50cmFsXC1leGNoYW5nZTsKK+mBjueoiyA8IGNvdXJzZVwtb2ZcLWV2ZW50czsKK+eGiueMtCA8IGFzc2FtZXNlXC1tYWNhcXVlOwor5aSn5pyDIDwgZ2VuZXJhbFwtYXNzZW1ibHk7Civln7roqr8gPCBcKHNwZWVjaFwpXC1rZXlub3RlOwor6Kqk5pyDIDwgdG9cLW1pc3VuZGVyc3RhbmQ7Civmm7Tpq5jmgKfog70gPCBoaWdoXC1wZXJmb3JtYW5jZTsKK+i2hemrmOmAn+S5meWkque2sui3ryA8IGdpZ2FiaXRcLWV0aGVybmV0Owor6KiC56WoIDwgdG9cLWlzc3VlXC10aWNrZXRzOwor5aO95qGDIDwgYmlydGhkYXlcLXBlYWNoZXM7Civou43kuovnp5HlrbggPCBtaWxpdGFyeVwtc2NpZW5jZTsKK+acjeWLmeaPkOS+m+iAhSA8IHNlcnZpY2VcLXByb3ZpZGVyOwor5Zmo5a6Y56e75q6WIDwgb3JnYW5cLXRyYW5zcGxhbnQ7Civnp7vli5XlvI/pm7voqbEgPCBtb2JpbGVcLXRlbGVwaG9uZTsKK+W3tOixhiA8IFwocHVyZ2luZ1wpXC1jcm90b247Civlo73mmJ8gPCBnb2RcLW9mXC1sb25nZXZpdHk7CivlvbHlg4/omZXnkIYgPCBpbWFnZVwtcHJvY2Vzc2luZzsKK+WFpei/tyA8IHRvXC1iZVwtZmFzY2luYXRlZDsKK+aYjuS7oyA8IHRoZVwtbWluZ1wtZHluYXN0eTsKK+aAp+mXnOS/giA8IHNleHVhbFwtcmVsYXRpb25zOwor5Lq65LqL6YOo6ZaAIDwgcGVyc29ubmVsXC1vZmZpY2U7CivpgIDnpaggPCBib3VuY2VcLVwoYVwtY2hlY2tcKTsKK+a9m+WcqOWogeiEhSA8IHBvdGVudGlhbFwtdGhyZWF0Owor5q6v5YSA6aSoIDwgdGhlXC11bmRlcnRha2VyJydzOwor57Wx6KiI5pW45pOaIDwgc3RhdGlzdGljYWxcLWRhdGE7CivnuYPlrZAgPCBlbWJyb2lkZXJ5XC1mcmFtZTsKK+W+l+WHuiA8IG9idGFpblwtXChyZXN1bHRzXCk7CivlhY3osrsgPCBmcmVlXC1cKG9mXC1jaGFyZ2VcKTsKK+mBsuaariA8IHBhc3RcLW9uZScnc1wtcHJpbWU7CivnoJToqI7mnIMgPCBkaXNjdXNzaW9uXC1mb3J1bTsKK+S4jeWIhumdkue0heeagueZvSA8IGluZGlzY3JpbWluYXRlbHk7CivnibnlrprlkKvnvqkgPCBzcGVjaWZpY1wtbWVhbmluZzsKK+mHkeiejeezu+e1sSA8IGZpbmFuY2lhbFwtc3lzdGVtOwor5bCO6Ie05q275LqhIDwgdG9cLWxlYWRcLXRvXC1kZWF0aDsKK+adv+S4iumHmOmHmCA8IHRoYXRcLWNsaW5jaGVzXC1pdDsKK+e2suapiyA8IFwobmV0d29ya1wpXC1icmlkZ2U7CivliJfngrogPCBiZVwtY2xhc3NpZmllZFwtYXM7CivlqZrlpJbmgKfmjqXop7ggPCBleHRyYW1hcml0YWxcLXNleDsKK+Wci+mYsiA8IG5hdGlvbmFsXC1kZWZlbmNlOwor5pWF5bGFIDwgZm9ybWVyXC1yZXNpZGVuY2U7Civms6Lnvo7mr5Tph43oqIggPCBiYXVtZVwtaHlkcm9tZXRlcjsKK+m9mSA8IHByb2plY3RpbmdcLXRlZXRoOwor6bm2IDwgc2FsdHlcLWFuZFwtYml0dGVyOwor5Ym95oKNIDwgc3dpZnRcLWFuZFwtZmllcmNlOwor5q2m5a6YIDwgbWlsaXRhcnlcLWF0dGFjaGU7CivkuI3nrYnpgorkuInop5LlvaIgPCBzY2FsZW5lXC10cmlhbmdsZTsKK+mBleaGsiA8IHVuY29uc3RpdHV0aW9uYWw7Civpr4YgPCB0aGVcLXNrYXRlXC1vclwtcmF5Owor5Yue5YuVIDwgXChwaHlzaWNhbFwpXC1sYWJvcjsKK+eCuueUnyA8IHRvXC1tYWtlXC1hXC1saXZpbmc7Civpm7vohabkvIHmpa0gPCBjb21wdXRlclwtY29tcGFueTsKK+WFrOe+iiA8IHJhbVwtXChtYWxlXC1zaGVlcFwpOwor6Ii56ZqKIDwgZmxlZXRcLVwob2ZcLXNoaXBzXCk7CivprawgPCBzb2xlXC1vclwtZmxvdW5kZXI7Civlu6Plt54gPCBndWFuZ3pob3VcLVwoY2l0eVwpOwor5ZSJ6IGy5ZiG5rCjIDwgaGVhdmVcLWRlZXBcLXNpZ2hzOwor5LiN5aW95oSP5oCdIDwgZmVlbFwtZW1iYXJyYXNzZWQ7Civpm7vlipsgPCBlbGVjdHJpY2FsXC1wb3dlcjsKK+ijnOihgCA8IGVucmljaFwtdGhlXC1ibG9vZDsKK+mqtCA8IGFcLXB1dHJpZFwtY2FyY2FzZTsKK+WkluWci+aKleizh+iAhSA8IGZvcmVpZ25cLWludmVzdG9yOwor6aaYIDwgY3V0XC1vZmZcLWxlZnRcLWVhcjsKK+W3tOW4g+S6nuaWsOW5vuWFp+S6niA8IHBhcGF1XC1uZXdcLWd1aW5lYTsKK+izh+aWmemHjyA8IHF1YW50aXR5XC1vZlwtZGF0YTsKK+e3qOi8r+WupCA8IGVkaXRvcmlhbFwtb2ZmaWNlOwor6aOAIDwgc291Z2hpbmdcLW9mXC13aW5kOwor54eI5YWJIDwgXChzdGFnZVwpXC1saWdodGluZzsKK+mfnSA8IGxlYXRoZXJcLWFybVwtYmFuZDsKK+mfiiA8IGFcLWNhc2VcLWZvclwtYVwtYm93Owor6Z62IDwgYmlnXC1sZWF0aGVyXC1iZWx0Owor6YCP5pSvIDwgXChiYW5rXClcLW92ZXJkcmFmdDsKK+ato+W4uOW3peS9nCA8IG5vcm1hbFwtb3BlcmF0aW9uOwor6ZuXIDwgYVwtd2hpdGVcLXBoZWFzYW50Owor6ZqkIDwgdG9cLWZhbGxcLWluXC1ydWluczsKK+WCs+ecn+eZvOmAgSA8IGZheFwtdHJhbnNtaXNzaW9uOwor6ZegIDwgZ2F0ZVwtb2ZcLWFcLW1hcmtldDsKK+eVsOaAp+aAp+aOpeinuCA8IGhldGVyb3NleHVhbFwtc2V4Owor6L+05peLIDwgbWFuZXV2ZXJpbmdcLXJvb207Civmi4nkuIHoqp4gPCBsYXRpblwtXChsYW5ndWFnZVwpOwor5pON5L2c57O757WxIDwgb3BlcmF0aW5nXC1zeXN0ZW07CivpirsgPCBhbnRpbW9ueVwtc3RpYml1bTsKK+mKpyA8IHBvaW50XC1vZlwtYVwtc3dvcmQ7CivpiYAgPCBwb3Rhc3NpdW1cLWthbGl1bTsKK+eZveejtyA8IHdoaXRlXC1waG9zcGhvcnVzOwor6YGp6YWN5bGkIDwgYWRhcHRhdGlvblwtbGF5ZXI7Civlh7rpoqjpoK0gPCB0b1wtY3JlYXRlXC1hXC1zdGlyOwor5aCx5o23IDwgcmVwb3J0XC1hXC1zdWNjZXNzOwor6Kiq5ZWPIDwgcGF5XC1hXC12aXNpdFwtXCh0b1wpOwor5YKz6Ly45aqS55WMIDwgdHJhbnNwb3J0XC1tZXRob2Q7CivpmaTlpJUgPCBcKG5ld1wteWVhcicnc1wpXC1ldmU7CivourcgPCBvZlwtc2hvcnRcLXN0YXR1cmU7CivoubEgPCB0b1wtc3RhZ2dlclwtYWxvbmc7CivouZAgPCB0YWtlXC1zaG9ydFwtc3RlcHM7CivmoYzkuIrlnovpm7vohaYgPCBkZXNrdG9wXC1jb21wdXRlcjsKK+i+puahiCA8IHRvXC1oYW5kbGVcLWFcLWNhc2U7Civos5kgPCBnaXZlXC1mb3JcLWNoYXJpdHk7Civotorph47ou4ogPCBvZmZcLXJvYWRcLXZlaGljYWw7CivosY8gPCBoYWxmXC1ncm93blwtYmVhbnM7CivntrLntaHnm7TlvpEgPCBuZXR3b3JrXC1kaWFtZXRlcjsKK+ioguWWriA8IFwocHVyY2hhc2VcKVwtb3JkZXI7CivmiJDnvqTntZDpmoogPCBpblwtbGFyZ2VcLW51bWJlcnM7CivpganphY3lmaggPCBhZGFwdGVyXC1cKGRldmljZVwpOwor5Ymv5Li75bitIDwgdmljZVwtY2hhaXJwZXJzb247Civoj6/lg5EgPCBvdmVyc2Vhc1wtY2hpbmVzZTsKK+iqlSA8IHRvXC1iZWFyXC1jaGlsZHJlbjsKK+a7kem8oCA8IG1vdXNlXC1cKGNvbXB1dGVyXCk7CivopoIgPCB0b1wtdGhyb3dcLWFcLXJpZGVyOwor6KWxIDwgbGVnc1wtb2ZcLXRyb3VzZXJzOwor6KObIDwgdG9cLXdyYXBcLWFuZFwtYmluZDsKK+iilyA8IHVubGluZWRcLWdhcm1lbnRzOwor54Sh5omA5LiN6LOjIDwgdG9cLXNlbGxcLWFueXRoaW5nOwor6KGOIDwgdG9cLWdpdmVcLXBsZWFzdXJlOwor6J+/IDwgYWNyaWRhXC1jaGluZW5zaXM7CivonosgPCBzcGlkZXJcLW1pbGxpcGVkZTsKK+iduyA8IGltbWF0dXJlXC1sb2N1c3RzOwor55eF6I+MIDwgaGFybWZ1bFwtYmFjdGVyaWE7CivoqJjogIXmi5vlvoXmnIMgPCBwcmVzc1wtY29uZmVyZW5jZTsKK+aNt+WFi+iqniA8IGN6ZWNoXC1cKGxhbmd1YWdlXCk7CivomaUgPCBzdHJpcGVkXC13aWxkXC1jYXQ7CivnrYblupXkuIsgPCBhYmlsaXR5XC10b1wtd3JpdGU7CivpgLLkv64gPCBhZHZhbmNlZFwtc3R1ZGllczsKK+iXpiA8IGVkaWJsZVwtbXVzaHJvb21zOwor6ZW35rGfIDwgY2hhbmdqaWFuZ1wtcml2ZXI7Civol4sgPCBzYW1idWN1XC1qYXZpbmljYTsKK+iWgyA8IGN5cGVydXNcLWFtdXJpY3VzOwor6YCa55So6Zu75ZmoIDwgZ2VuZXJhbFwtZWxlY3RyaWM7CivolIcgPCBsdXh1cmlhbnRcLWdyb3d0aDsKK+W5vuWNgyA8IHNldmVyYWxcLXRob3VzYW5kOwor5pyd6a6u5Y2K5bO2IDwga29yZWFuXC1wZW5pbnN1bGE7CivokZkgPCBjZWxvc2lhXC1hcmdlbnRlYTsKK+iPiSA8IHRoZVwtZ3JlZW5cLWJhbWJvbzsKK+iKmCA8IG1hbHZhXC1zeWx2ZXN0cmlzOwor5Yiw5LqGIDwgaW5cLVwoYVwtcGFzdFwtdGltZVwpOwor5qC45Y6f5paZIDwgbnVjbGVhclwtbWF0ZXJpYWw7CivmnInpl5zkurrlo6sgPCBwZXJzb25zXC1pbnZvbHZlZDsKK+WgseWQjSA8IGVudGVyXC1vbmUnJ3NcLW5hbWU7Civlh7rlkI0gPCB3ZWxsXC1rbm93blwtXChmb3JcKTsKK+aOiOeNjiA8IHRvXC1hd2FyZFwtYVwtcHJpemU7Civpq5TogrIgPCBwaHlzaWNhbFwtY3VsdHVyZTsKK+iAtuWIqeexs+abuCA8IGJvb2tcLW9mXC1qZXJlbWlhaDsKK+iAvCA8IGVhcnNcLXdpdGhvdXRcLXJpbTsKK+S4jeeIreawoyA8IGJlXC1kaXNhcHBvaW50aW5nOwor5ryi6KqeIDwgY2hpbmVzZVwtbGFuZ3VhZ2U7Civph5Hono3luILloLQgPCBmaW5hbmNpYWxcLW1hcmtldDsKK+e2tSA8IHZhcmljb2xvcmVkXC1zaWxrOwor57S9IDwgYVwtc3RyYW5kXC1vZlwtc2lsazsKK+eztSA8IGZlcm1lbnRpbmdcLWdyYWluOwor57OIIDwgc2FjcmlmaWNpYWxcLXJpY2U7CivlhbXlvbkgPCBtaWxpdGFyeVwtc2VydmljZTsKK+expyA8IGNydWRlXC1iYW1ib29cLW1hdDsKK+WMl+WGsOa0iyA8IHRoZVwtYXJjdGljXC1vY2VhbjsKK+WFqeWyuOWwjeipsSA8IGJpbGF0ZXJpYWxcLXRhbGtzOwor566vIDwgYmFtYm9vXC1wYWxhbnF1aW47CivnroogPCBiYW1ib29cLXdpdGhcLXRoaW47Civnp7cgPCBzb3VuZFwtb2ZcLXJlYXBpbmc7Civno6UgPCBhXC1oZWFwXC1vZlwtc3RvbmVzOwor576F5a+G5q2Q6IiH5pyx6bqX6JGJIDwgcm9tZW9cLWFuZFwtanVsaWV0Owor56CrIDwgYW5jZXN0cmFsXC10YWJsZXQ7CivnnpggPCBkZWVwbHlcLXN1bmtcLWV5ZXM7CivnnosgPCBnbGFyZVwtd2l0aFwtYW5nZXI7CivnlaLogpYgPCByZXNlbWJsZVwtY2xvc2VseTsKK+ednCA8IHRvXC1vcGVuXC10aGVcLWV5ZXM7CivkuI3ntpPkuYvoq4cgPCBhYnN1cmRcLXN0YXRlbWVudDsKK+W0qea8jyA8IHV0ZXJpbmVcLWJsZWVkaW5nOwor55umIDwgbGlkXC1vZlwtYVwtY2FsZHJvbjsKK+eZiSA8IHRvXC1oYXRlXC1iaXR0ZXJseTsKK+WGl+WToSA8IGV4Y2Vzc1wtcGVyc29ubmVsOwor5YW15aOrIDwgb3JkaW5hcnlcLXNvbGRpZXI7CivopoHkurogPCBpbXBvcnRhbnRcLXBlcnNvbjsKK+aOoeaThyA8IHNlbGVjdFwtYW5kXC1hZG9wdDsKK+i4qee3miA8IHN0ZXBcLW9uXC10aGVcLWxpbmU7Civnk58gPCB0aGVcLWJvdHRsZVwtZ291cmQ7CivnjLggPCBhXC1raW5kXC1vZlwtYW5pbWFsOwor5Y+I5L6G5LqGIDwgaGVyZVwtd2VcLWdvXC1hZ2FpbjsKK+eZseWtkCA8IHBhcmFseXplZFwtcGVyc29uOwor54u7IDwgYVwtZmFidWxvdXNcLWJlYXN0Owor5beo5YygIDwgbWFzdGVyXC1jcmFmdHNtYW47CivplrHlhbUgPCB0b1wtcmV2aWV3XC10cm9vcHM7CivlgrLmsKMgPCBhaXJcLW9mXC1hcnJvZ2FuY2U7Civng5wgPCBsaWdodFwtb2ZcLXRoZVwtc3VuOwor5L6/6KGjIDwgY2l2aWxpYW5cLWNsb3RoZXM7CivntrLpmpvntrLot6/ljZTmnIMgPCBpbnRlcm5ldFwtc29jaWV0eTsKK+i3r+eUseWNlOWumiA8IHJvdXRpbmdcLXByb3RvY29sOwor5r6mIDwgcGxhY2VcLWluXC1zaWNodWFuOwor5r6lIDwgYVwtYmxvY2tlZFwtc3RyZWFtOwor5r6UIDwgcmFkaWFuY2VcLW9mXC1nZW1zOwor5bCL6KiqIDwgdG9cLWlucXVpcmVcLWFmdGVyOwor5a+26LKdIDwgdHJlYXN1cmVkXC1vYmplY3Q7CivplrHkuJYgPCB0b1wtc2VlXC10aGVcLXdvcmxkOwor5rirIDwgYmVhdGluZ1wtb2ZcLW9jZWFuOwor57Ch5piOIDwgc2ltcGxlXC1hbmRcLWNsZWFyOwor57ay6Lev5bmz5Y+wIDwgbmV0d29ya1wtcGxhdGZvcm07CivlronpoJMgPCBmaW5kXC1hXC1wbGFjZVwtZm9yOwor5YWs5YWsIDwgaHVzYmFuZCcnc1wtZmF0aGVyOwor5L6L6KqeIDwgZXhhbXBsZVwtc2VudGFuY2U7Civmr64gPCB0b1wtcHVsbFwtb3V0XC1oYWlyOwor5q+qIDwgc2VyZ2VcLWZyb21cLXRpYmV0Owor5qibIDwgYmVuZGluZ1wtYnJhbmNoZXM7CivploPkuq4gPCBicmlsbGlhbnRcLFwtc2hpbnk7CivlhYnmqqLmuKzlmaggPCBvcHRpY2FsXC1kZXRlY3RvcjsKK+aesiA8IG1hbGVcLW5ldHRsZVwtaGVtcDsKK+mbu+iFpue2sui3ryA8IGNvbXB1dGVyXC1uZXR3b3JrOwor5p6SIDwgdGhlXC1jb2NvbnV0XC10cmVlOwor5rOi54i+5aSa5rayIDwgYm9yZGVhdXhcLW1peHR1cmU7CivmlrUgPCB0b1wtY3V0XC10b1wtcGllY2VzOwor5paeIDwgYVwtc3RhY2tcLW9mXC1ncmFpbjsKK+aSmiA8IHR3aXJsXC1pblwtZmluZ2VyczsKK+WOn+WtkOenkeWtuOWutiA8IGF0b21pY1wtc2NpZW50aXN0Owor5Z2H5YuiIDwgYmFsYW5jZVwtb2ZcLXBvd2VyOwor55m86YGU5ZyL5a62IDwgZGV2ZWxvcGVkXC1uYXRpb247CivljYHlpJrlhIQgPCBvdmVyXC1vbmVcLWJpbGxpb247Civlt7LntpPpgLLooYwgPCBhbHJlYWR5XC11bmRlcndheTsKK+WCs+mAgeacjeWLmSA8IGRlbGl2ZXJ5XC1zZXJ2aWNlOwor5oy3IDwgdG9cLXByb3BlbFwtYVwtYm9hdDsKK+S/neeVmSA8IGNvbnRpbnVlXC10b1wtaGF2ZTsKK+S6uumgrSA8IG51bWJlclwtb2ZcLXBlb3BsZTsKK+aOpeS6uiA8IHRvXC1tZWV0XC1hXC1wZXJzb247CivoroDogIXkvobkv6EgPCByZWFkZXInJ3NcLWxldHRlcnM7CivlvLMgPCBjaXJjdWxhclwtbWVhc3VyZTsKK+W7tSA8IHRvXC1nb1wtb25cLWNpcmN1aXQ7CivkuIDkuIvlrZAgPCBpblwtYVwtc2hvcnRcLXdoaWxlOwor5ZOI5be06LC35pu4IDwgYm9va1wtb2ZcLWhhYmFra3VrOwor5qC46Kit5pa9IDwgbnVjbGVhclwtZmFjaWxpdHk7CivlnIvlipsgPCBhXC1uYXRpb24nJ3NcLXBvd2VyOwor55m95aOB5b6u55GVIDwgYVwtc2xpZ2h0XC1ibGVtaXNoOwor5Y2B5bm+5YCL5pyIIDwgdGVuXC1tb250aHNcLW9yXC1zbzsKK+mdnuaUv+W6nCA8IG5vblwtZ292ZXJubWVudGFsOwor5Li75bm557eaIDwgYmFja2JvbmVcLVwoY2FibGVcKTsKK+WsjiA8IHRvXC1iZWFyXC1tdWx0aXBsZTsKK+mbu+imluapnyA8IHRlbGV2aXNpb25cLVwoc2V0XCk7CivlqqQgPCBodXNiYW5kJydzXC1mYW1pbHk7Civmia7mvJQgPCBwbGF5XC10aGVcLXBhcnRcLW9mOwor5rWB6KGM55eFIDwgZXBpZGVtaWNcLWRpc2Vhc2U7Civnl4Xlm6AgPCBjYXVzZVwtb2ZcLWRpc2Vhc2U7Civou43kuosgPCBtaWxpdGFyeVwtYWZmYWlyczsKK+S9lOe3miA8IGJ1c3lcLVwodGVsZXBob25lXCk7CivlsbHmnZEgPCBtb3VudGFpblwtdmlsbGFnZTsKK+S/oeeUqOitiSA8IGxldHRlclwtb2ZcLWNyZWRpdDsKK+S4jeWKoOaAnee0oiA8IHdpdGhvdXRcLXRoaW5raW5nOwor5ZuNIDwgZG91YmxlXC1oYXBwaW5lc3M7CivlmrMgPCBteXRoaWNhbFwtZW1wZXJvcjsKK+WtuOihk+eVjCA8IGFjYWRlbWljXC1jaXJjbGVzOwor5ouQ5b2OIDwgdG9cLXR1cm5cLWFcLWNvcm5lcjsKK+iBmuiuiiA8IFwobnVjbGVhclwpXC1mdXNpb247CivooajlhoogPCBzdGF0aXN0aWNhbFwtZm9ybTsKK+WYhSA8IHNvdW5kXC1vZlwtc2lnaGluZzsKK+WWruaooeWFiee6liA8IHNpbmdsZW1vZGVcLWZpYmVyOwor5pyA5aSn6IO95YqbIDwgbWF4aW11bVwtY2FwYWNpdHk7CivooZvmmJ/ln44gPCBcInNhdGVsbGl0ZVwiXC10b3duOwor5ZeeIDwgdG9cLWNvbnN1bHRcLWFib3V0Owor5Za6IDwgdG9cLWJlXC1sb2NhdGVkXC1hdDsKK+WvqeeQhiA8IHRvXC1oZWFyXC1cKGFcLWNhc2VcKTsKK+aKhOacrCA8IGhhbmR3cml0dGVuXC1jb3B5Owor6IiU5ZCuIDwgdG9cLWxpY2tcLWFuZFwtc3VjazsKK+eahOS4gOeoriA8IGlzXC1vbmVcLVwoa2luZFwtb2ZcKTsKK+abvOW+t+aLiSA8IFwobmVsc29uXClcLW1hbmRlbGE7CivmnInnt5rpm7voppYgPCBjYWJsZVwtdGVsZXZpc2lvbjsKK+WNsOWcsOiqniA8IGhpbmRpXC1cKGxhbmd1YWdlXCk7Civkvr/mqYsgPCB0ZW1wb3JhcnlcLWJyaWRnZTsKK+W3pealreWMliA8IHRvXC1pbmR1c3RyaWFsaXplOwor5YaTIDwgYVwtc2VjbHVkZWRcLXBsYWNlOwor5LiN6K6K6LOH5pysIDwgY29uc3RhbnRcLWNhcGl0YWw7CivlhIogPCByb3VnaFwtYW5kXC1ydWdnZWQ7CivlgpwgPCBhXC1taW5vcml0eVwtdHJpYmU7CivnrYbmiLAgPCB3cml0dGVuXC1wb2xlbWljczsKK+S+v+acjSA8IGV2ZXJ5ZGF5XC1jbG90aGVzOwor5oSf6KydIDwgXChleHByZXNzXClcLXRoYW5rczsKK+S2sSA8IGFcLWtpbmRcLW9mXC10dXJ0bGU7CivktaQgPCB0b1wtY3JhY2tcLW9yXC1jaGFwOwor5LWjIDwgd2hpdGVcLXdpdGhcLWJsYWNrOwor5LWDIDwgYVwta2luZFwtb2ZcLWJhcmxleTsKK+S0rCA8IGNydW1ic1wtb2ZcLWJhcmxleTsKK+WHuueJiOekviA8IHB1Ymxpc2hpbmdcLWhvdXNlOwor5LiL6aasIDwgZGlzbW91bnRcLWFcLWhvcnNlOwor5LSFIDwgYVwtbGVnZW5kYXJ5XC1iaXJkOwor5rKW57mp5bO2IDwgb2tpbmF3YVwtXChpc2xhbmRcKTsKK+SzoiA8IHNtYWxsXC13aWxkXC1nb29zZTsKK+SzkCA8IGFuXC1vd2xcLWxpa2VcLWJpcmQ7CivlronnnKAgPCBzbGVlcFwtcGVhY2VmdWxseTsKK+SysiA8IGFcLWhhd2tcLWxpa2VcLWJpcmQ7CivlsaTlsaQgPCBsYXllclwtdXBvblwtbGF5ZXI7CivksIMgPCBkaXNoZXZlbGxlZFwtaGFpcjsKK+SvsyA8IGxvb3NlbHlcLWFycmFuZ2VkOwor562G5bi9IDwgdGhlXC1jYXBcLW9mXC1hXC1wZW47Civkr4cgPCB0b1wtZXhlcnRcLW9uZXNlbGY7CivkrrQgPCB1bnN0YWJsZVwtd2Fsa2luZzsKK+SusyA8IHRvXC1naXZlXC1iaXJ0aFwtdG87CivkroEgPCBhXC1wYWlyXC1vZlwtaG9yc2VzOwor5KuMIDwgYm93ZWRcLW9uZScnc1wtaGVhZDsKK+SqjiA8IHN0cmluZ3NcLW9mXC1hXC1jYXA7CivkqaUgPCBhXC1iZWx0XC1mb3JcLWhvcnNlOwor5Ki7IDwgcm9hclwtb2ZcLXRodW5kZXJzOwor5Ki0IDwgZ2F0aGVyaW5nXC1jbG91ZHM7CivkqLMgPCB0aGVcLXJhaW5cLXN0b3BwZWQ7CivkqI8gPCBzb3VuZFwtb2ZcLXJhaW5pbmc7CivkqIogPCBhXC1mbG9ja1wtb2ZcLWJpcmRzOwor5KehIDwgYVwtZm9ydGlmaWVkXC13YWxsOwor6LK2576pIDwgZGVyb2dhdG9yeVwtc2Vuc2U7Civkp4QgPCBuYW1lXC1vZlwtYVwtcGVyc29uOwor5KaVIDwgYmFuZ1wtb2ZcLXRoZVwtZG9vcjsKK+SlmyA8IGFcLWtpbmRcLW9mXC1zaWNrbGU7CivplbfluqbmjIfnpLrnrKYgPCBsZW5ndGhcLWluZGljYXRvcjsKK+S9nOazlSA8IGNvdXJzZVwtb2ZcLWFjdGlvbjsKK+SjriA8IHNtZWxsXC1vZlwtYWxjb2hvbDsKK+SjqyA8IHNvdXJlZFwtYmVhblwtY3VyZDsKK+SiniA8IHJvd3NcLWFuZFwtY29sdW1uczsKK+ShriA8IHRyYWNlXC1vZlwtYVwtd2hlZWw7CivkoaIgPCBhXC1zbWFsbFwtY2FycmlhZ2U7CivmvJTlk6EgPCBhY3Rvclwtb3JcLWFjdHJlc3M7CivkoLsgPCB0b1wtYmVuZFwtdGhlXC1ib2R5Owor6ZGS5YilIDwgdG9cLWRpZmZlcmVudGlhdGU7Civkn4sgPCB0b1wtcHJlc3NcLWZvcndhcmQ7Civkv53lr4YgPCBtYWludGFpblwtc2VjcmVjeTsKK+SejCA8IHRvXC1sb3NlXC1pblwtdHJhZGU7CivknYsgPCBhXC1saXR0bGVcLW9mXC1waWdzOwor5J2HIDwgZ3J1bnRpbmdcLW9mXC1waWdzOwor5JuPIDwgdG9cLWNhbGxcLXNvbWVib2R5Owor5JuOIDwgdG9cLXNob3V0XC1pblwtcmFnZTsKK+SbgiA8IHRvXC1zZXBhcmF0ZVwtZnJvbTsKK+SalCA8IHRvXC1sb29rXC1zdWRkZW5seTsKK+SakiA8IGV5ZXNpZ2h0XC1ibHVycmVkOwor5JqDIDwgdG9cLXJlYWxpemVcLWZ1bGx5Owor5YCf5YqpIDwgdG9cLWdldFwtaGVscFwtZnJvbTsKK+SZrSA8IHRvXC1saWZ0XC1vclwtcmFpc2U7Civpm7voqbHkv6HomZ8gPCB0ZWxlcGhvbmVcLXNpZ25hbDsKK+SYiyA8IGFcLWtpbmRcLW9mXC1pbnNlY3Q7CivmsJHkuLvpu6ggPCBkZW1vY3JhdGljXC1wYXJ0eTsKK+SXjyA8IG5hbWVcLW9mXC1hXC1pbnNlY3Q7Civklq8gPCBwb2lzb25vdXNcLWluc2VjdDsKK+SWkCA8IHNvdW5kXC1vZlwtYVwtdGlnZXI7CivnlJjlnLAgPCBcKG1haGF0bWFcKVwtZ2FuZGhpOwor5Lu/55yf5pyN5YuZ5ZmoIDwgZW11bGF0aW9uXC1zZXJ2ZXI7CivkkqMgPCBsdXNoXC1vclwtZGVsaWNhdGU7CivkkbggPCBhXC1ncm91cFwtb2ZcLWJvYXRzOwor5JGFIDwgZGl6enlcLWFuZFwtc2xlZXB5Owor5JCoIDwgYmFja1wtb2ZcLXRoZVwtZm9vdDsKK+SPkiA8IGhhbGZcLW9mXC10aGVcLWJvZHk7Civkj48gPCBzaWduc1wtYW5kXC1ncm9hbnM7Civkjq8gPCB3aW50ZXJcLXBsb3VnaGluZzsKK+SOgiA8IGNvbG9yZnVsXC1mZWF0aGVyOwor6Zu76KaW5YqHIDwgdHZcLWRyYW1hXC1wcm9ncmFtOwor5IukIDwgcGxhaW5cLXdoaXRlXC1zaWxrOwor5IuUIDwgdG9cLWJhbmRcLXRvZ2V0aGVyOwor5Im3IDwgYVwtZmVhdGhlclwtc2NyZWVuOwor5ImJIDwgYVwtd3JpdGluZ1wtdGFibGV0Owor5IiZIDwgYmFtYm9vXC10b1wtd2l0aGVyOwor5IiIIDwgYVwta2luZFwtb2ZcLWJhbWJvbzsKK+azqOmHjSA8IHBheVwtYXR0ZW50aW9uXC10bzsKK+SGvyA8IHRvXC10YWxrXC1pblwtc2xlZXA7CivkhrIgPCBhXC1zcGFjaW91c1wtaG91c2U7CivkhoggPCB5b3VuZ1wtYW5kXC10ZW5kZXI7CivkhbwgPCBhXC1raW5kXC1vZlwtZ3JhaW5zOwor5IW6IDwgZ3JhaW5cLWluXC10aGVcLWVhcjsKK+i8u+WwhOazoiA8IHJhZGlhdGlvblwtXCh3YXZlXCk7Civmh7jmjpsgPCBcKGNhclwpXC1zdXNwZW5zaW9uOwor5IKqIDwgaGFyZFwtYmFycmVuXC1sYW5kOwor5ICDIDwgYVwta2luZFwtb2ZcLXZlc3NlbDsKK+O+piA8IHNjYWJcLW92ZXJcLWFcLXNvcmU7CivjvoEgPCB3YWxraW5nXC1saWtlXC1tYWQ7Civjva4gPCBhXC1wb2ludFwtb2ZcLWxpZ2h0Owor472KIDwgY3JhY2tpbmdcLW9mXC10aWxlOwor47uSIDwgcmVkXC1jb2xvcmVkXC1qYWRlOwor47uBIDwgYVwta2luZFwtb2ZcLWphc3BlcjsKK+S4jeisnSA8IGRvbicndFwtbWVudGlvblwtaXQ7CivjurUgPCBibGFja1wtamFkZVwtc3RvbmU7CivjurQgPCBuYW1lXC1vZlwtYVwtc3Bpcml0Owor47qmIDwgYVwtcnVubmluZ1wtYW5pbWFsOwor47m6IDwgZG9nXC10b1wtdGFrZVwtZm9vZDsKK+O5hyA8IGFcLWtpbmRcLW9mXC1jYXR0bGU7CivjuKMgPCBpblwtYW5jaWVudFwtY2hpbmE7CivmnKznvqkgPCBvcmlnaW5hbFwtbWVhbmluZzsKK+O2viA8IHRvdWdoXC1hbmRcLWhvbmVzdDsKK+O2jSA8IG5hbWVcLW9mXC1hXC1zdHJlYW07CivkvLTmmJ8gPCBjb21wYW5pb25cLVwoc3RhclwpOwor5L+d5YWoIDwgc2F2ZVwtZnJvbVwtZGFtYWdlOwor47SnIDwgb2ZcLWZsb3dpbmdcLXdhdGVyOwor5aiB54i+5aOr6KqeIDwgd2Vsc2hcLVwobGFuZ3VhZ2VcKTsKK+aKhOS7tiA8IGR1cGxpY2F0ZVwtXChjb3B5XCk7Civjs70gPCBhXC13YXRlcnlcLWV4cGFuc2U7CivjsbYgPCBhXC1zd2VsbGVuXC1jb3Jwc2U7Civjsa0gPCBhblwtaW5mZXJ0aWxlXC1lZ2c7CivjsKQgPCB0b1wtbGF1Z2hcLWhlcnRpbHk7CivjsJsgPCBuYW1lXC1vZlwtYVwtY291bnR5Owor47CFIDwgZWF2ZXNcLW9mXC1hXC1ob3VzZTsKK+OvlSA8IHN0aWNrc1wtb3JcLWZyYW1lczsKK+OvgyA8IHRoZVwtdmFybmlzaFwtdHJlZTsKK+eUt+WtkOexg+eQgyA8IG1lbicnc1wtYmFza2V0YmFsbDsKK+OukyA8IGFuXC1leHRyZW1lXC1saW1pdDsKK+OtuiA8IHRoZVwtY2hlcnJ5XC1hcHBsZTsKK+iBr+mCpuWkp+aokyA8IGZlZGVyYWxcLWJ1aWxkaW5nOwor46qtIDwgdG9cLWRyYXdcLXRvZ2V0aGVyOwor46qWIDwgc291bmRcLW9mXC1iZWF0aW5nOwor5pmu6YCa5ZWP6aGMIDwgY29tbW9uXC1xdWVzdGlvbnM7CivjqLwgPCB0b1wtdGFrZVwtYnlcLWZvcmNlOwor57236KqyIDwgc3R1ZGVudCcnc1wtc3RyaWtlOwor46e6IDwgYVwtZmluZ2VyXC13cmFwcGVyOwor6Ly46YCB5aqS5LuLIDwgdHJhbnNwb3J0XC1tZWRpdW07CivjppwgPCB0b1wtbW92ZVwtdGhlXC1taW5kOwor5oeJ5oiwIDwgZmFjZVwtYVwtY2hhbGxlbmdlOwor5qC45aiBIDwgbnVjbGVhclwtc3RyZW5ndGg7CivjorAgPCB0b1wtc3RyZXRjaFwtYVwtYm93Owor6Jmc542yIDwgY2FwdHVyZVwtXChwZW9wbGVcKTsKK+OhvSA8IGRlcHJhdmVkXC10YWxraW5nOwor46GJIDwgYVwta2luZFwtb2ZcLWZhYnJpYzsKK+OgpyA8IGFcLWxpdHRsZVwtc2xhbnRlZDsKK+OgjiA8IGFcLWxvZnR5XC1tb3VudGFpbjsKK+acrOelqCA8IGNhc2hpZXInJ3NcLWNoZXF1ZTsKK+mYsuihm+atpuWZqCA8IGRlZmVuc2l2ZVwtd2VhcG9uOwor452rIDwgc2hhcGVcLW9mXC10aGVcLXNreTsKK+OdqiA8IGFcLXNsYW50aW5nXC1ob3VzZTsKK+OdqSA8IHNwYWNpb3VzbHlcLXJvb21zOwor6YGO5Lu957Ch5Zau5YyWIDwgb3ZlcnNpbXBsaWNhdGlvbjsKK+OctCA8IGRhcmtcLWFuZFwtb2JzY3VyZTsKK+OcnSA8IHRvXC1jaGVyaXNoXC1hbmdlcjsKK+OciCA8IGFcLWJlYXVnaWZ1bFwtZmFjZTsKK+mrlOiCsuS5i+eqlyA8IHdpbmRvd1wtb25cLXNwb3J0czsKK+abuOWvq+iqnuiogCA8IHdyaXR0ZW5cLWxhbmd1YWdlOwor45qcIDwgd2l0aFwtZ3JlYXRcLXBvd2VyOwor45qXIDwgd2l0aFwtYVwtYmlnXC1tb3V0aDsKK+OahyA8IGRyYXdcLXRoZVwtZmVldFwtdXA7CivjmZ4gPCBhXC1zbWFsbFwtbW91bnRhaW47CivjmY4gPCBicmVhY2hcLW9mXC1hXC10YW5rOwor45mFIDwgYVwtd2FsbGVkXC12aWxpYWdlOwor45mAIDwgYVwtdmVnZXRhYmxlXC1wbG90Owor45e7IDwgYmFieScnc1wtYW5zd2VyaW5nOwor45eZIDwgdG9cLXNob3V0XC1vclwtYmF3bDsKK+OVrSA8IHRvXC1iYXJrXC1hc1wtYVwtZG9nOwor45WpIDwgc291bmRcLW9mXC10YXBwaW5nOwor5a6J5b69IDwgYW5odWlcLVwocHJvdmluY2VcKTsKK+OVhyA8IHJvY2tzXC1jb2xsYXBzaW5nOwor45SRIDwgYW5cLWluY2lzZWRcLXdvdW5kOwor5ZWG5qWt5YyWIDwgdG9cLWNvbW1lcmNpYWxpemU7Civjkq0gPCBhblwtZWxkZXJcLWJyb3RoZXI7CivjkoEgPCBvZlwtZ3JlYXRcLXN0YXR1cmU7Civnq5nlj7AgPCByYWlsd2F5XC1wbGF0Zm9ybTsKK+WFseS6q+W4tuWvrCA8IHNoYXJlZFwtYmFuZHdpZHRoOwor45CAIDwgaGlsbG9ja1wtb3JcLW1vdW5kOwor5paH5YyW6Zqc56SZIDwgY3VsdHVyYWxcLWJhcnJpZXI7Civnm7TmjqXlvbHpn78gPCBkaXJlY3RcLWluZmx1ZW5jZTsKK+iIh+atpOWQjOaZgiA8IGF0XC10aGVcLXNhbWVcLXRpbWU7CivkuLvopoHkvobmupAgPCBwcmluY2lwbGVcLXNvdXJjZTsKK+S6uuawkeWFrOekviA8IHBlb3BsZScnc1wtY29tbXVuZTsKK+eNsuebiiA8IG9idGFpblwtYVwtYmVuZWZpdDsKK+S4i+mdouiri+eciyA8IHBsZWFzZVwtc2VlXC1iZWxvdzsKK+S7iuaYlCA8IHBhc3RcLWFuZFwtcHJlc2VudDsKK+adv+aglyA8IGNoaW5lc2VcLWNoZXN0bnV0Owor5ZC4566hIDwgXChkcmlua2luZ1wpXC1zdHJhdzsKK+WutuWLmSA8IGhvdXNlaG9sZFwtZHV0aWVzOwor6YeR6J6N6aKo5rOiIDwgZmluYW5jaWFsXC1jcmlzaXM7CivplovluZXlvI8gPCBvcGVuaW5nXC1jZXJlbW9ueTsKK+Wvpue/kueUnyA8IGludGVyblwtXChzdHVkZW50XCk7CivmsJHplpMgPCBhbW9uZ1wtdGhlXC1wZW9wbGU7CivlqZrnpq4gPCB3ZWRkaW5nXC1jZXJlbW9ueTsKK+itpuihmyA8IFwoc2VjdXJpdHlcKVwtZ3VhcmQ7Civnn6XorZjlt6XnqIvluKsgPCBrbm93bGVkZ2VcLXdvcmtlcjsKK+Wci+izk+mkqCA8IHN0YXRlXC1ndWVzdGhvdXNlOwor5Lm+5p2vIDwgdG9cLWRyaW5rXC1hXC10b2FzdDsKK+eMv+eMtCA8IGFwZXNcLWFuZFwtbW9ua2V5czsKK+e2sue1oeWNlOitsCA8IG5ldHdvcmtcLXByb3RvY29sOwor5Lim5r+AIDwgc2h1bnRcLWV4Y2l0YXRpb247Civph4/ntrEgPCBkaW1lbnNpb25cLVwodW5pdFwpOwor6LOq5ZWPIDwgXChhc2tcLWFcKVwtcXVlc3Rpb247CivokpDpm4YgPCB0b1wtZ2F0aGVyXC1cKGRhdGFcKTsKK+S4ieWNg+WIsOS6lOWNg+iQrCA8IDMwXC10b1wtNTBcLW1pbGxpb247CivkuI3oh7PmlrwgPCBjYW5ub3RcLWdvXC1zb1wtZmFyOwor5pqR55ifIDwgdHJvcGljYWxcLWRpc2Vhc2U7CivljZropr0gPCByZWFkXC1leHRlbnNpdmVseTsKK+a3seWFpSA8IHBlbmV0cmF0ZVwtZGVlcGx5Owor5Li55qGCIDwgb3JhbmdlXC1vc21hbnRodXM7Civmnb/lo4EgPCB3b29kZW5cLXBhcnRpdGlvbjsKK+afkOS6uiA8IGFcLWNlcnRhaW5cLXBlcnNvbjsKK+aciOabhiA8IG1vbnRobHlcLWNhbGVuZGFyOwor5rK755eFIDwgdHJlYXRcLWFuXC1pbGxuZXNzOwor5Y2B6KqhIDwgdGVuXC1jb21tYW5kbWVudHM7Civnmb3ooaPmiLDlo6sgPCB3YXJyaW9yXC1pblwtd2hpdGU7CivlronlpoLno5Dnn7MgPCBhc1wtc29saWRcLWFzXC1yb2NrOwor5aSW6ZW3IDwgZm9yZWlnblwtbWluaXN0ZXI7Civnmb7liIbpu54gPCBwZXJjZW50YWdlXC1wb2ludDsKK+mFjeiXpSA8IGRpc3BlbnNlXC1cKGRydWdzXCk7Civlip/og73pm4YgPCBmdW5jdGlvblwtbGlicmFyeTsKK+Wtl+S4siA8IGNoYXJhY3Rlclwtc3RyaW5nOwor5pWF6Zqc5o6S6ZmkIDwgZmF1bHRcLXJlc29sdXRpb247Civph5Hono3mlLnpnakgPCBmaW5hbmNpYWxcLXJlZm9ybTsKK+S4gOWAi+S4reWci+aUv+etliA8IG9uZVwtY2hpbmFcLXBvbGljeTsKK+WMluWtuOaIsCA8IGNoZW1pY2FsXC13YXJmYXJlOwor5aSn5aSa5pW4IDwgXChncmVhdFwpXC1tYWpvcml0eTsKK+Wkp+mBuCA8IGdlbmVyYWxcLWVsZWN0aW9uOwor5ZSQ5LujIDwgdGhlXC10YW5nXC1keW5hc3R5Owor5oCn55eFIDwgdmVuZXJlYWxcLWRpc2Vhc2U7CivlkJvmrIogPCBtb25hcmNoaWFsXC1wb3dlcjsKK+mbjOaAp+aOpeWPoyA8IGZlbWFsZVwtY29ubmVjdG9yOwor6JeP5paHIDwgdGliZXRhblwtbGFuZ3VhZ2U7Civlv4Poh5/np7vmrpYgPCBoZWFydFwtdHJhbnNwbGFudDsKK+iPj+iYreiqniA8IGR1dGNoXC1cKGxhbmd1YWdlXCk7CivkuIDlubTlpJogPCBtb3JlXC10aGFuXC1hXC15ZWFyOwor6YGZ5o6n5pON5L2cIDwgcmVtb3RlXC1vcGVyYXRpb247CivnsKHllq7nmoToqqogPCB0b1wtcHV0XC1pdFwtc2ltcGx5Owor5YWJ5o6l5pS25ZmoIDwgb3B0aWNhbFwtcmVjZWl2ZXI7CivmqZ/morDoqp7oqIAgPCBtYWNoaW5lXC1sYW5ndWFnZTsKK+iDoeW/l+aYjuW4giA8IGhvXC1jaGlcLW1pbmhcLWNpdHk7CivoroDniakgPCByZWFkaW5nXC1tYXRlcmlhbDsKK+mCiumYsiA8IGZyb250aWVyXC1kZWZlbmNlOwor5YWx5ZKM6buoIDwgcmVwdWJsaWNhblwtcGFydHk7CivohJbpoLjlhZIgPCBiYWNrXC1vZlwtdGhlXC1uZWNrOwor5ZCR5p2xIDwgdG93YXJkc1wtdGhlXC1lYXN0Owor5aSn54Sh55WPIDwgdXR0ZXJseVwtZmVhcmxlc3M7Civpm4bpjKYgPCBiZXN0XC1vZlwtdGhlXC1iZXN0Owor57235pWZIDwgdGVhY2hlcicnc1wtc3RyaWtlOwor5aSW6KqeIDwgZm9yZWlnblwtbGFuZ3VhZ2U7CivoqrLooaggPCBzY2hvb2xcLXRpbWV0YWJsZTsKK+iqpOinoyA8IG1pc3VuZGVyc3RhbmRpbmc7CivkuI3nn6XmiYDkupEgPCBub3RcLWtub3dcLXdoYXRcLXNiOwor5LiN5b+ZIDwgdGhlcmUnJ3NcLW5vXC1odXJyeTsKK+i2hemrmOmAnyA8IHVsdHJhXC1oaWdoXC1zcGVlZDsKK+mbhumDtSA8IHN0YW1wXC1jb2xsZWN0aW5nOwor5bug6ZW3IDwgZmFjdG9yeVwtZGlyZWN0b3I7Civororms5UgPCBwb2xpdGljYWxcLXJlZm9ybTsKK+azouaKmCA8IHR3aXN0c1wtYW5kXC10dXJuczsKK+e+pOWztiA8IGdyb3VwXC1vZlwtaXNsYW5kczsKK+WkqumZveW+ruezu+e1seWFrOWPuCA8IHN1blwtbWljcm9zeXN0ZW1zOwor6IGv5bit5pyD6K2wIDwgam9pbnRcLWNvbmZlcmVuY2U7CivkuqTmj5vntrLot68gPCBzd2l0Y2hlZFwtbmV0d29yazsKK+eKr+azlSA8IHRvXC1icmVha1wtdGhlXC1sYXc7CivkuI3lsJEgPCBub3RcLVwoanVzdFwpXC1hXC1mZXc7CivlubTpvaEgPCBcKGFcLXBlcnNvbicnc1wpXC1hZ2U7CivmgKfmjqXop7ggPCBzZXh1YWxcLWVuY291bnRlcjsKK+avlOe/vCA8IGZseVwtd2luZ1wtdG9cLXdpbmc7CivpqqjlubnntrLot68gPCBiYWNrYm9uZVwtbmV0d29yazsKK+i7n+S7tuS8gealrSA8IHNvZnR3YXJlXC1jb21wYW55Owor5ou/5omL6I+cIDwgc3BlY2lhbHR5XC1cKGRpc2hcKTsKK+aWvea0l+e0hOe/sCA8IGpvaG5cLXRoZVwtYmFwdGlzdDsKK+elnuWlhyA8IG1hZ2ljYWxcLW15c3RpY2FsOwor56aB5ZOBIDwgY29udHJhYmFuZFwtZ29vZHM7CivlsLzluIznsbPoqJggPCBib29rXC1vZlwtbmVoZW1pYWg7CivloLHntJnloLHlsI4gPCBuZXdzcGFwZXJcLXJlcG9ydDsKK+acgOWFiCA8IFwodGhlXClcLXZlcnlcLWZpcnN0Owor5piO5reoIDwgYnJpZ2h0XC1hbmRcLWNsZWFuOwor6YeN5oW2IDwgY2hvbmdxaW5nXC1cKGNpdHlcKTsKK+WphuWphiA8IGh1c2JhbmQnJ3NcLW1vdGhlcjsKK+S6kuaTjeaApyA8IGludGVyb3BlcmFiaWxpdHk7CivlkIPlrowgPCB0b1wtZmluaXNoXC1lYXRpbmc7CivpgLzov5EgPCBwcmVzc1wtb25cLXRvd2FyZHM7CivloLHppKggPCBuZXdzcGFwZXJcLW9mZmljZTsKK+mbu+e6nCA8IFwoZWxlY3RyaWNcKVwtY2FibGU7Civlip/og73nvqQgPCBmdW5jdGlvbmFsXC1ncm91cDsKK+eLgOaFiyA8IHN0YXRlXC1vZlwtYWZmYWlyczsKK+S4reS7iyA8IGFnZW50XC1cKGNvbXB1dGVyXCk7CivkuI3lhYkgPCBub3RcLXRoZVwtb25seVwtb25lOwor5pqR5aSpIDwgaG90XC1cKHN1bW1lclwpXC1kYXk7Civlj43lsI0gPCB0b1wtZmlnaHRcLWFnYWluc3Q7CivkuI3kuYUgPCBub3RcLWxvbmdcLVwoYWZ0ZXJcKTsKK+mboumWi+WMl+S6rCA8IHRvXC1sZWF2ZVwtYmVpamluZzsKK+S4gOi8qeWtkCA8IFwoZm9yXClcLWFcLWxpZmV0aW1lOwor552oIDwgbG9va1wtYXNrYW5jZVwtYXQ7CivmgI4gPCB3aGF0XD9cLXdoeVw/XC1ob3dcPzsKK+aUtiA8IGdhdGhlclwtdG9nZXRoZXI7CivlhZogPCBwb2xpdGljYWxcLXBhcnR5Owor54mIIDwgcHJpbnRpbmdcLWJsb2NrczsKK+WtoyA8IHF1YXJ0ZXJcLW9mXC15ZWFyOwor54mhIDwgbWFsZVwtb2ZcLWFuaW1hbHM7CivoqLogPCBleGFtaW5lXC1wYXRpZW50Owor5aeRIDwgZmF0aGVyJydzXC1zaXN0ZXI7CivopJMgPCBzd2FkZGxpbmdcLWNsb3RoOwor6aaGIDwgcHVibGljXC1idWlsZGluZzsKK+a8vyA8IGFueVwtdGhpY2tcLWZsdWlkOwor6ZuEIDwgbWFsZVwtb2ZcLXNwZWNpZXM7Civkur8gPCBodW5kcmVkXC1taWxsaW9uOwor5Zu6IDwgdG9cLWJlY29tZVwtc29saWQ7CivmuqogPCBtb3VudGFpblwtc3RyZWFtOwor6JmeIDwgY29uY2VybmVkXC1hYm91dDsKK+WXmiA8IHNvdW5kXC1vZlwtY3J5aW5nOwor6JaHIDwgb3NtdW5kYVwtcmVnYWxpczsKK+aIjyA8IHRoZWF0cmljYWxcLXBsYXk7Civlj6wgPCBpbXBlcmlhbFwtZGVjcmVlOwor55GeIDwgZmVsaWNpdG91c1wtb21lbjsKK+msoiA8IGhhaXJcLW9uXC10ZW1wbGVzOwor5YOnIDwgYnVkZGhpc3RcLXByaWVzdDsKK+aqnCA8IGNoaW5lc2VcLWN5cHJlc3M7Civmqo4gPCBzbWFsbFwtcmVkXC1hcHBsZTsKK+mphSA8IHNwdXJcLWFcLWhvcnNlXC1vbjsKK+iHnyA8IGludGVybmFsXC1vcmdhbnM7CivlnLMgPCBmdXJyb3dcLWluXC1maWVsZDsKK+e5uyA8IGZpbmVcLXNpbGtcLWd1YXplOwor5a2fIDwgZmlyc3RcLWluXC1zZXJpZXM7CivnuIsgPCBjbGltYlwtZG93blwtcm9wZTsKK+mWpCA8IHNtYWxsXC1zaWRlXC1kb29yOwor5paOIDwgdmVnZXRhcmlhblwtZGlldDsKK+ebryA8IHJpdmV0XC1nYXplXC11cG9uOwor57KfIDwgdW5odXNrZWRcLW1pbGxldDsKK+exkCA8IGNsaW1iaW5nXC1wbGFudHM7CivmjrsgPCBzY3JhdGNoXC1saWdodGx5Owor5L+YIDwgcHJpc29uZXJcLW9mXC13YXI7CivmjL4gPCBjbGFzcFwtdW5kZXJcLWFybTsKK+WqsyA8IGRhdWdodGVyXC1pblwtbGF3Owor5a6ZIDwgdGltZVwtYXNcLWNvbmNlcHQ7CivljZwgPCBmb3J0dW5lXC10ZWxsaW5nOwor5biWIDwgaW52aXRhdGlvblwtY2FyZDsKK+mAniA8IGluZHVsZ2VcLW9uZXNlbGY7Civmj6ogPCBncmFzcFwtd2l0aFwtaGFuZDsKK+S7kSA8IGxvZ2ljYWxcLXJlYXNvbnM7CivnhZ4gPCBtYWxpZ25hbnRcLWRlaXR5Owor6bOMIDwgaHVnZVwtc2VhXC10dXJ0bGU7CivnnqkgPCB3YXRjaFwtY2FyZWZ1bGx5Owor55aaIDwgY2hyb25pY1wtZGlzZWFzZTsKK+iUkyA8IGNyZWVwaW5nXC1wbGFudHM7Civpqo8gPCBleGNlbGxlbnRcLWhvcnNlOwor6Ze9IDwgZnVqaWFuXC1wcm92aW5jZTsKK+iihSA8IGN1cmxpbmdcLXVwd2FyZHM7CivovpAgPCBzcG9rZXNcLW9mXC13aGVlbDsKK+eQiSA8IHNwYXJrbGluZ1wtc3RvbmU7CivoiJwgPCBsZWdlbmRhcnlcLXJ1bGVyOwor6L2nIDwgY3J1c2hcLWJ5XC13ZWlnaHQ7Civmu4cgPCB5dW5uYW5cLXByb3ZpbmNlOwor5qGTIDwgdmFyaWV0eVwtb2ZcLXRyZWU7Civmo6AgPCBjcmFiXC1hcHBsZVwtdHJlZTsKK+WQriA8IHN1Y2tcLXdpdGhcLW1vdXRoOwor6Jy3IDwgY3JlZXBcLWxpa2VcLXdvcm07CivmnrcgPCBjYW5ndWVcLXNjYWZmb2xkOwor576yIDwgYW5jaWVudFwtZW1wZXJvcjsKK+WtmiA8IGJyb29kXC1vdmVyXC1lZ2dzOwor55qRIDwgYnJpbGxpYW50XC13aGl0ZTsKK+e8pSA8IGxpZ2h0XC1ibHVlXC1zaWxrOwor6K+MIDwgcGxheVwtd2l0aFwtd29yZHM7Civms74gPCBuYW1lXC1vZlwtYVwtcml2ZXI7Civop44gPCBkZXNpcmVcLXN0cm9uZ2x5Owor5466IDwgaW1wZXJpYWxcLXNpZ25ldDsKK+WNniA8IHRvXC1iZVwtaW1wYXRpZW50Owor6L6UIDwgYnJpZGxlXC1vZlwtaG9yc2U7CivotpQgPCBub3RcLXByb2dyZXNzaW5nOwor5b6cIDwgd2Fsa2luZ1wtYW5kXC1mcm87CivojaAgPCB3YXRlclwtY2hlc3RudXRzOwor5rGeIDwgZWxlbWVudFwtbWVyY3VyeTsKK+eVvyA8IGltcGVyaWFsXC1kb21haW47CivoiIIgPCBncmluZFwtaW5cLW1vcnRhcjsKK+extCA8IHB1cmNoYXNlXC1ncmFpbnM7CivnqbAgPCBzdGFsa3NcLW9mXC1ncmFpbjsKK+WXhCA8IGhvYXJzZVwtb2ZcLXZvaWNlOwor5riaIDwgc21hbGxcLXNhbmRcLWJhbms7CivnoJ0gPCBiYWxhbmNlXC13ZWlnaHRzOwor5p28IDwgc2h1dHRsZVwtb2ZcLWxvb207CivpvoMgPCBpcnJlZ3VsYXJcLXRlZXRoOwor5YuQIDwgaW1wZXJpYWxcLWRlZ3JlZTsKK+efuCA8IGFcLXJvY2tcLW9yXC1jbGlmZjsKK+iVqCA8IHB0ZXJpc1wtYXF1aWxpbmE7CivosYkgPCBmZXJtZW50ZWRcLWJlYW5zOwor5b6tIDwgY29uc2NyaXB0XC1sYWJvcjsKK+m6iCA8IHNwZWNpZXNcLW9mXC1kZWVyOwor6JWkIDwgZHJvb3BpbmdcLWxlYXZlczsKK+e7oSA8IHJhd1wtc2lsa1wtZmFicmljOwor6IqoIDwgbmFtZVwtb2ZcLWFcLXBsYW50Owor6IujIDwga2luZFwtb2ZcLWxldHR1Y2U7CivnopsgPCBzYW5kXC1hbmRcLWdyYXZlbDsKK+iOkiA8IGhlbXBcLWxpa2VcLXBsYW50Owor6JCBIDwga2luZFwtb2ZcLWdyYXNzZXM7CivnnIQgPCB0b1wtbG9va1wtYXNrYW5jZTsKK+WbnyA8IHRvcFwtb2ZcLXRoZVwtaGVhZDsKK+WyoyA8IGFcLWhpbGxcLWluXC1odW5hbjsKK+WXviA8IHRvXC1zZXRcLWFcLWRvZ1wtb247CivojZwgPCBzcGVjaWVzXC1vZlwtYmVhbjsKK+ezgSA8IGFcLWdyYWluXC1vZlwtcmljZTsKK+eynSA8IHVucG9saXNoZWRcLXJpY2U7Civoo7AgPCB0b1wtbWVuZFwtY2xvdGhlczsKK+iWqCA8IGRlYXRoXC1vZlwtcHJpbmNlOwor6IyRIDwgdGhlXC1jb252b3Z1bHZ1czsKK+e/riA8IHN0ZW1cLW9mXC1mZWF0aGVyOwor6ImfIDwgYW5jaWVudFwtd2Fyc2hpcDsKK+m8ryA8IGZseWluZ1wtc3F1aXJyZWw7CivnoKkgPCBuYW1lXC1vZlwtYVwtc3RvbmU7CivngrsgPCBhXC1raW5kXC1vZlwtY2hpbmE7CivmqqsgPCBzYXNzYWZyYXNcLXR6dW11Owor54u0IDwgYVwta2luZFwtb2ZcLXRhcGlyOwor6auY5pWI546HIDwgaGlnaFwtZWZmaWNpZW5jeTsKK+WkqeeItiA8IGhlYXZlbmx5XC1mYXRoZXI7Civlub7kuY7lrozlhaggPCBhbG1vc3RcLWVudGlyZWx5Owor54m55b61IDwgY2hhcmFjdGVyaXN0aWNzOwor5L+h5oGv5pmC5LujIDwgaW5mb3JtYXRpb25cLWFnZTsKK+aakeWBhyA8IHN1bW1lclwtdmFjYXRpb247Civmk7rohKsgPCBicmVha1wtYXdheVwtZnJvbTsKK+WNiuaVuCA8IGhhbGZcLXRoZVwtbnVtYmVyOwor5Yaw6ZycIDwgbW9yYWxcLWludGVncml0eTsKK+WLu+a6nCA8IGV2ZW5cLWFuZFwtc21vb3RoOwor5Y6f5aeUIDwgdGhlXC13aG9sZVwtc3Rvcnk7CivnlKLlk4HntpPnkIYgPCBwcm9kdWN0XC1tYW5hZ2VyOwor6LOH5paZ6Y+I57WQ5bGkIDwgZGF0YVwtbGlua1wtbGF5ZXI7Civou43kuovlqIHohIUgPCBtaWxpdGFyeVwtdGhyZWF0Owor54m55a+rIDwgZmVhdHVyZVwtYXJ0aWNsZTsKK+aYpeWkqSA8IHNwcmluZ1wtXChzZWFzb25cKTsKK+e2sui3r+acjeWLmSA8IG5ldHdvcmtcLXNlcnZpY2U7CivnoJTnqbbkuK3lv4MgPCByZXNlYXJjaFwtY2VudGVyOwor5q2i55ebIDwgdG9cLXJlbGlldmVcLXBhaW47CivliY3kuI3kuYUgPCBub3RcLWxvbmdcLWJlZm9yZTsKK+WPm+S6giA8IGFybWVkXC1yZWJlbGxpb247CivmlofmqpQgPCBcKGNvbXB1dGVyXClcLWZpbGU7CivltIfmi5zlhIDlvI8gPCB3b3JzaGlwXC1zZXJ2aWNlOwor57es55S4IDwgbXlhbm1hclwtXChidXJtYVwpOwor5pa56IiI5pyq6Im+IDwgdG9cLWJlXC11bmZvbGRpbmc7Civpm5npgorosr/mmJMgPCBiaWxhdGVyYWxcLXRyYWRlOwor5aSx5pybIDwgYmVcLWRpc2FwcG9pbnRlZDsKK+i7jeS6i+mDqOmWgCA8IG1pbGl0YXJ5XC1icmFuY2g7CivntrLnq5kgPCBuZXR3b3JrXC1zdGF0aW9uOwor6Zmk5q2k5LmL5aSWIDwgYXBhcnRcLWZyb21cLXRoaXM7CivlpKrpmb3lhazlj7ggPCBzdW5cLWNvcnBvcmF0aW9uOwor5aSW5ZyL6LOH5pysIDwgZm9yZWlnblwtY2FwaXRhbDsKK+mWi+mWgCA8IG9wZW5cLVwodGhlXClcLWRvb3I7CivnlJ/nlKLpmoogPCBwcm9kdWN0aW9uXC10ZWFtOwor57aT566hIDwgYmVcLWluXC1jaGFyZ2VcLW9mOwor55So5oi257eaIDwgc3Vic2NyaWJlclwtbGluZTsKK+e+juWci+S6uiA8IGFtZXJpY2FuXC1wZXJzb247CivljYrlpKkgPCBoYWxmXC1vZlwtdGhlXC1kYXk7Civoqp7ml48gPCBsYW5ndWFnZVwtYnJhbmNoOwor5b6A5bm0IDwgaW5cLWZvcm1lclwteWVhcnM7Civml6XloLEgPCBkYWlseVwtbmV3c3BhcGVyOwor5YWJ6Zu7IDwgb3B0b1wtZWxlY3RyaWNhbDsKK+eZvemQtSA8IGdhbHZhbml6ZWRcLWlyb247Civpm4XmrYwgPCBzb25nXC1vZlwtc29sb21vbjsKK+W9vOWyuCA8IHRoZVwtb3RoZXJcLXNob3JlOwor6YWN5ZCIIDwgY29vcmRpbmF0ZVwtd2l0aDsKK+WgseezuyA8IG5ld3NwYXBlclwtY2hhaW47CivosZDlr4zlpJrlvakgPCByaWNobHlcLWNvbG9yZnVsOwor5qiZ6YePIDwgc2NhbGFyXC1xdWFudGl0eTsKK+WNl+WMlyA8IG5vcnRoXC1hbmRcLXNvdXRoOwor5q+U5a65IDwgc3BlY2lmaWNcLXZvbHVtZTsKK+eci+S4iuWOuyA8IGl0XC13b3VsZFwtYXBwZWFyOwor55uI6JmnIDwgcHJvZml0XC1hbmRcLWxvc3M7Civli7jlsI4gPCB0cnlcLXRvXC1jb252aW5jZTsKK+mZo+eHnyA8IGdyb3VwXC1vZlwtcGVvcGxlOwor5bm+55m+IDwgc2V2ZXJhbFwtaHVuZHJlZDsKK+Wkp+WvqyA8IGNhcGl0YWxcLWxldHRlcnM7CivpgY7mtLsgPCBsaXZlXC1vbmUnJ3NcLWxpZmU7CivniYzkvY0gPCBtZW1vcmlhbFwtdGFibGV0Owor5pep5LqbIDwgXChhXC1iaXRcKVwtZWFybGllcjsKK+iqsuWkliA8IGV4dHJhY3VycmljdWxhcjsKK+mbtuetieW+heeLgOaFiyA8IHplcm9cLXdhaXRcLXN0YXRlOwor5pS25ou+IDwgdG9cLXB1dFwtaW5cLW9yZGVyOwor5LiN55m95LmL5YakIDwgdW5yaWdodGVkXC13cm9uZzsKK+e2suautSA8IG5ldHdvcmtcLXNlZ21lbnQ7CivlvJ/lvJ8gPCB5b3VuZ2VyXC1icm90aGVyOwor6YGy5pepIDwgc29vbmVyXC1vclwtbGF0ZXI7CivmiJLlgpnmo67lmrQgPCBoZWF2aWx5XC1ndWFyZGVkOwor55+u5bCPIDwgc2hvcnRcLWFuZFwtc21hbGw7CivljYrpgJTogIzlu6IgPCBnaXZlXC11cFwtaGFsZndheTsKK+avlOWDuSA8IHByaWNlXC1yZWxhdGlvbnM7CivpvpEgPCBoaWdoXC1hbmRcLWJyaWdodDsKK+aWsOS7uyA8IG5ld2x5XC1hcHBvaW50ZWQ7CivpnLjkvZQgPCBmb3JjaWJseVwtb2NjdXB5Owor6byVIDwgcmF0dGxlXC1vZlwtZHJ1bXM7Civlub7ljYHlhIQgPCBzZXZlcmFsXC1iaWxsaW9uOwor55eF6a2UIDwgc2VyaW91c1wtaWxsbmVzczsKK+W4uOeUqCA8IGluXC1jb21tb25cLXVzYWdlOwor5Yaw56OaIDwgaWNlXC1jcmVhbVwtYnJpY2s7CivptJIgPCBzcGVjaWVzXC1vZlwtbGFyazsKK+eZveiPnCA8IGNoaW5lc2VcLWNhYmJhZ2U7CivptIIgPCB0aGVcLXRhaWxvclwtYmlyZDsKK+mzuyA8IHRoZVwtd2lsZFwtcGlnZW9uOwor6bOTIDwgY2hpbmVzZVwtaGVycmluZzsKK+mxoSA8IHRoZVwtY3V0dGxlXC1maXNoOwor6bGFIDwgYVwta2luZFwtb2ZcLXRlbmNoOwor5LiN5b6F6KqqIDwgbmVlZGxlc3NcLXRvXC1zYXk7Civmibnph4/nlJ/nlKIgPCB0b1wtbWFzc1wtcHJvZHVjZTsKK+mtsCA8IHRoZVwtZmx5aW5nXC1maXNoOwor5Zyo5b6I5aSa5pa56Z2iIDwgaW5cLW1hbnlcLWFzcGVjdHM7Civpq74gPCB0YWlsXC1vZlwtYVwtY29tZXQ7Civpq7QgPCBkaXNoZXZlbGVkXC1oYWlyOwor5pON5L2c6YCf546HIDwgb3BlcmF0aW5nXC1zcGVlZDsKK+W8t+WKoCA8IGltcG9zZVwtYnlcLWZvcmNlOwor6aiYIDwgYVwtcGllYmFsZFwtaG9yc2U7CivppYcgPCB0b1wtZWF0XC10b29cLW11Y2g7CivporsgPCBmbG9hdGluZ1wtaW5cLWFpcjsKK+miriA8IHN0b3JtXC13aGlybHdpbmQ7CivlpJbkuosgPCBmb3JlaWduXC1hZmZhaXJzOwor6IGv5ZCI55m86KGoIDwgam9pbnRcLXN0YXRlbWVudDsKK+mCiuWcsCA8IGJvcmRlclwtZGlzdHJpY3Q7Civpn54gPCBhblwtb3JhbmdlXC1jb2xvcjsKK+metCA8IHNhZGRsZVwtdXBcLWhvcnNlOwor6Z24IDwgYVwtY2hpbGQnJ3NcLXNob2VzOwor6ZuxIDwgc25vd2luZ1wtaGVhdmlseTsKK+iIjOmdoiA8IGJsYWRlXC1vZlwtdG9uZ3VlOwor5Ym16KiY6YyEIDwgdG9cLXNldFwtYVwtcmVjb3JkOwor6JGX5L2cIDwgYVwtbGl0ZXJhcnlcLXdvcms7Civnmb3nsbMgPCBcKHBvbGlzaGVkXClcLXJpY2U7CivngJXoh6ggPCBvblwtdGhlXC12ZXJnZVwtb2Y7CivkuI3lrozlhajokYkgPCBpbmNvbXBsZXRlXC1sZWFmOwor6YG45ZauIDwgXChzb2Z0d2FyZVwpXC1tZW51Owor5Z+35rOVIDwgbGF3XC1lbmZvcmNlbWVudDsKK+mOpCA8IHNvdW5kXC1vZlwtYVwtYmVsbDsKK+S4jeWQjeaVuCA8IGFic3RyYWN0XC1udW1iZXI7CivpgLLlsZUgPCB0b1wtbWFrZVwtaGVhZHdheTsKK+eCuuatpCA8IGZvclwtdGhpc1wtcmVhc29uOwor6Ya+IDwgdW5maWx0ZXJlZFwtd2luZTsKK+aguOWPjeaHieWghiA8IG51Y2xlYXJcLXJlYWN0b3I7CivntpPmv5/mlLnpnakgPCBlY29ub21pY1wtcmVmb3JtOwor6YS5IDwgbmFtZVwtb2ZcLWFcLXN0YXRlOwor5bug5Y+yIDwgZmFjdG9yeVwtaGlzdG9yeTsKK+WFieejgSA8IG1hZ25ldG9cLW9wdGljYWw7Civpmpjlj6MgPCBcKG1vdW50YWluXClcLXBhc3M7CivntrLlnYAgPCBcKGludGVybmV0XClcLXNpdGU7CivnlavpnaIgPCBcKHBpY3R1cmVcKVwtZnJhbWU7Civoj5zlnLAgPCB2ZWdldGFibGVcLWZpZWxkOwor55Wc6aGeIDwgZG9tZXN0aWNcLWFuaW1hbDsKK+i6gCA8IHRvXC1zdHVtYmxlXC1vdmVyOwor57i957aT55CGIDwgZ2VuZXJhbFwtbWFuYWdlcjsKK+i2riA8IGVhc2lseVwtcHJvdm9rZWQ7CivljYrlo4HmsZ/lsbEgPCBoYWxmXC1vZlwtY291bnRyeTsKK+aKsemkiiA8IGFkb3B0XC1cKGFcLWNoaWxkXCk7Civln47mqJMgPCBjaXR5XC1nYXRlXC10b3dlcjsKK+iroSA8IHBvc3RodW1vdXNcLW5hbWU7CivmjqHnqK4gPCBzZWVkXC1jb2xsZWN0aW5nOwor5L+E5be05bqV5Lqe5pu4IDwgYm9va1wtb2ZcLW9iYWRpYWg7CivoqJIgPCBoZXNpdGF0ZVwtdG9cLXNheTsKK+WPpOWFuOmfs+aogiA8IGNsYXNzaWNhbFwtbXVzaWM7CivoirHnmb0gPCBncml6emxlZFwtXChoYWlyXCk7CivkuI3lj6/lpJrlvpcgPCBoYXJkXC10b1wtY29tZVwtYnk7CivopbwgPCAnJ2tpbW9ubycnXC1zbGVldmU7CivopYwgPCB1bmxpbmVkXC1nYXJtZW50Owor6KSnIDwgdW5saW5lZFwtY2xvdGhlczsKK+mHjeaWsOmWi+WniyA8IHJlc3VtZVwsXC1yZXN0YXJ0Owor5bGN6auUIDwgXChsaWZlbGVzc1wpXC1ib2R5Owor5ZyW57C9IDwgXChjb21wdXRlclwpXC1pY29uOwor5be05pybIDwgbG9va1wtZm9yd2FyZFwtdG87CivonpogPCBlcmlzdGFsaXNcLXRlbmF4Owor5bGk6ZuyIDwgc3RyYXR1c1wtXChjbG91ZFwpOwor5pW455m+6JCsIDwgc2V2ZXJhbFwtbWlsbGlvbjsKK+aLvOi1t+S+hiA8IHRvXC1wdXRcLXRvZ2V0aGVyOwor57GM56K8IDwgYmFyZ2FpbmluZ1wtY2hpcDsKK+iXtiA8IGFcLWtpbmRcLW9mXC1wbGFudDsKK+iVoiA8IGVkaWJsZVwtYW1hcmFudGg7CivolY0gPCBhbGlzbWFcLXBsYW50YWdzOwor6JS+IDwga2luZFwtb2ZcLWJyYW1ibGU7CivokqggPCBsdXNoXC12ZWdldGF0aW9uOwor6JKTIDwgYW5cLWVkaWJsZVwtd2F0ZXI7Civpm7vlrZDpg7Xku7YgPCBlbGVjdHJvbmljXC1tYWlsOwor6ZmN5YO5IDwgcHJpY2VcLXJlZHVjdGlvbjsKK+iRkSA8IHRoZVwtcmFwZVwtdHVybmlwOwor57Gz57KJ6IKJIDwgcmljZVwtZmxvdXJcLW1lYXQ7CivmqJnmqIEgPCBcKG1hcmtpbmdcKVwtc3Rha2U7CivplonmnIMgPCBjbG9zZVwtYVwtbWVldGluZzsKK+iJhSA8IGFcLWRlc3BhdGNoXC1ib2F0Owor57SU5bGsIDwgcHVyZVwtYW5kXC1zaW1wbGU7CivlhYnmpq4gPCBob25vclwtYW5kXC1nbG9yeTsKK+iFoiA8IHRoZVwtY29sbGFyXC1ib25lOwor6L6m5a24IDwgdG9cLXJ1blwtYVwtc2Nob29sOwor5qiZ5p2GIDwgc3VydmV5b3InJ3NcLXBvbGU7CivluaPliLYgPCBjdXJyZW5jeVwtc3lzdGVtOwor5aCx5YiwIDwgcmVwb3J0XC1mb3JcLWR1dHk7Civnvb8gPCBuZXRcLWNhdGNoXC1iaXJkczsKK+e2k+a/n+WJjemAlCA8IGVjb25vbWljXC1mdXR1cmU7CivlubTku70gPCBwYXJ0aWN1bGFyXC15ZWFyOwor5bel6K6A5a245qChIDwgdGhlXC1yZWZvcm1hdG9yeTsKK+WfuuWcsCA8IFwobWlsaXRhcnlcKVwtYmFzZTsKK+WatOmHjemXnOWIhyA8IHNlcmlvdXNcLWNvbmNlcm47CivlhYnmmI4gPCBicmlnaHRcLVwoZnV0dXJlXCk7Civpq5jmioDooZMgPCBoaWdoXC10ZWNobm9sb2d5Owor5L+d6YeLIDwgcmVsZWFzZVwtb25cLWJhaWw7CivntY0gPCB0b1wtbGF5XC10aGVcLXdhcnA7CivntpPmv5/ljbHmqZ8gPCBlY29ub21pY1wtY3Jpc2lzOwor5bCE6aC7IDwgcmFkaW9cLWZyZXF1ZW5jeTsKK+WLleaFi+WKqeipniA8IGFzcGVjdFwtcGFydGljbGU7Civplonpn7Pnr4AgPCBjbG9zZWRcLXN5bGxhYmxlOwor57CUIDwgYVwtY29hdFwtcmFpbmNvYXQ7Civnr7AgPCBhXC1iYW1ib29cLWJhc2tldDsKK+mspeeIrSA8IHN0cnVnZ2xlXC1cKHdpdGhcKTsKK+ijoeaguSA8IFwocm9uYWxkXClcLXJlYWdhbjsKK+ephCA8IHBhbmljbGVkXC1taWxsZXQ7CivnposgPCBvZmZlclwtc2FjcmlmaWNlOwor56OqIDwgYVwtaGlnaFwtbW91bnRhaW47CivmmrTot7PlpoLpm7cgPCBzdGFtcFwtd2l0aFwtZnVyeTsKK+aKl+ihoSA8IGNvbnRlbmRcLWFnYWluc3Q7CivntJrliKUgPCBcKG1pbGl0YXJ5XClcLXJhbms7CivnrYboqqQgPCBhXC1zbGlwXC1vZlwtYVwtcGVuOwor5YWr5a+2IDwgZWlnaHRcLXRyZWFzdXJlczsKK+eZvuW5tCA8IGFcLWh1bmRyZWRcLXllYXJzOwor5Lul6KW/57WQ5pu4IDwgYm9va1wtb2ZcLWV6ZWtpZWw7CivmkZjlgJ8gPCB0b1wtYm9ycm93XC1tb25leTsKK+WMluWtuOatpuWZqCA8IGNoZW1pY2FsXC13ZWFwb247CivnmIggPCBwcm9sb25nZWRcLWZldmVyOwor55iDIDwgc29yZXNcLWZyb21cLWNvbGQ7Civnl74gPCBjaHJvbmljXC1pbGxuZXNzOwor55e1IDwgYVwtaGVhcnRcLXN5bXB0b207Civnl64gPCBhXC1zd2VsbGVkXC1iZWxseTsKK+eXoCA8IGFjaGluZ1wtb2ZcLWxpbWJzOwor55eBIDwgY2hyb25pY1wtbWFsYXJpYTsKK+eVrCA8IHJlY2xhaW1lZFwtZmllbGQ7CivplbflrpggPCBzZW5pb3JcLW9mZmljaWFsOwor6Jmb6Zu76LevIDwgdmlydHVhbFwtY2lyY3VpdDsKK+eZu+iomOeUqOaItiA8IHJlZ2lzdGVyZWRcLXVzZXI7CivnqK7ml4/kuLvnvqnogIUgPCByYWNpc3RcLVwocGVyc29uXCk7CivnkK0gPCBqYWRlXC1saWtlXC1zdG9uZTsKK+W+nuWOu+W5tCA8IHNpbmNlXC1sYXN0XC15ZWFyOwor54+nIDwgbW90aGVyXC1vZlwtcGVhcmw7CivlhaXlooMgPCBlbnRlclwtYVwtY291bnRyeTsKK+ePhyA8IGNhcnZpbmdcLW9uXC1qYWRlOwor5Zq06YeN5ZWP6aGMIDwgc2VyaW91c1wtcHJvYmxlbTsKK+iHgue0lyA8IFwoYmxhY2tcKVwtYXJtYmFuZDsKK+eOnyA8IHN0cmVha3NcLWluXC1qYWRlOwor55W25YuZ5LmL5oClIDwgdXJnZW50XC1wcmlvcml0eTsKK+eNsSA8IGFcLWtpbmRcLW9mXC1vdHRlcjsKK+i7jeagoSA8IG1pbGl0YXJ5XC1zY2hvb2w7Civni6sgPCBuYW1lXC1vZlwtYVwtdHJpYmU7Civou5/ku7bns7vntbEgPCBzb2Z0d2FyZVwtc3lzdGVtOwor54mEIDwgdG9cLXdhbGtcLXJhcGlkbHk7CivnhpMgPCB0aGVcLWJhbmtcLWFcLWZpcmU7CivnhLUgPCB0b1wtdGVtcGVyXC1zdGVlbDsKK+aKiuiItSA8IGhvbGRcLXRoZVwtcnVkZGVyOwor6I+y5b6L6LOTIDwgdGhlXC1waGlsaXBwaW5lczsKK+iiq+aNlSA8IGJlXC11bmRlclwtYXJyZXN0Owor54CeIDwgcG9vbFwtaW5cLWFcLXJpdmVyOwor5r2ZIDwgcml2ZXJcLWluXC1zaGFueGk7CivntrLntaHngI/opr3lmaggPCBuZXR3b3JrXC1icm93c2VyOwor5ruOIDwgY291bnR5XC1pblwtaGVuYW47CivmnKzml4/oqp4gPCBuYXRpdmVcLWxhbmd1YWdlOwor5rOpIDwgcmlzaW5nXC1vZlwtd2F0ZXI7Civos7zniankuK3lv4MgPCBzaG9wcGluZ1wtY2VudGVyOwor5rKaIDwgaXNsZXRcLWluXC1zdHJlYW07Civnmb7ljYEgPCBhXC1odW5kcmVkXC1vclwtc287CivlnZDlpb0gPCB0b1wtc2l0XC1wcm9wZXJseTsKK+e1huiFs+efsyA8IHN0dW1ibGluZ1wtYmxvY2s7CivmhJ/mn5PogIUgPCBpbmZlY3RlZFwtcGVyc29uOwor5aSa5qij5YyWIDwgZGl2ZXJzaWZpY2F0aW9uOwor5qahIDwgcXVlcmN1c1wtZGVudGF0YTsKK+WjgeWjmOajruWatCA8IGNsb3NlbHlcLWd1YXJkZWQ7CivmpLogPCBiZWFtXC1vZlwtYVwtaG91c2U7CivntrLnrqHlk6EgPCBuZXR3b3JrXC1tYW5hZ2VyOwor5biW5pKS576F5bC86L+m5b6M5pu4IDwgMlwtdGhlc3NhbG9uaWFuczsKK+mMpumbniA8IGdvbGRlblwtcGhlYXNhbnQ7Civmn44gPCBjYWx5eFwtb2ZcLWZsb3dlcjsKK+afgSA8IGxhcmdlXC10aWVcLWJlYW1zOwor5p6sIDwgYW5cLWV2ZW5cLWdyYWluZWQ7Civoh6rmrrogPCB0b1wta2lsbFwtb25lc2VsZjsKK+acoyA8IHRoZVwtcmlzaW5nXC1tb29uOwor55Gq5ouJ5Z+65pu4IDwgYm9va1wtb2ZcLW1hbGFjaGk7Civpq5jmmIIgPCBpblwtaGlnaFwtc3Bpcml0czsKK+iyv+aYk+WkpeS8tCA8IHRyYWRpbmdcLXBhcnRuZXI7Civnqb/pgY4gPCB0b1wtcGFzc1wtdGhyb3VnaDsKK+WCmeaIsCA8IHByZXBhcmVcLWZvclwtd2FyOwor5pyI5Lu95pyD6K2wIDwgbW9udGhseVwtbWVldGluZzsKK+aRuyA8IGFcLWRlbGljYXRlXC1oYW5kOwor5a6J6LqrIDwgbWFrZVwtb25lJydzXC1ob21lOwor5ri46KqqIDwgZHJ1bVwtdXBcLXN1cHBvcnQ7Civoh7PmlrwgPCBnb1wtc29cLWZhclwtYXNcLXRvOwor5oiEIDwgdG9cLWJlXC1pblwtYXdlXC1vZjsKK+eglOeptuWgseWRiiA8IHJlc2VhcmNoXC1yZXBvcnQ7CivlhYjpgLLmrablmaggPCBhZHZhbmNlZFwtd2VhcG9uOwor55Sf54mpIDwgbGl2aW5nXC1jcmVhdHVyZTsKK+aItuexjSA8IGNlbnN1c1wtcmVnaXN0ZXI7CivlpKfnmbzpm7fpnIYgPCBleHRyZW1lbHlcLWFuZ3J5Owor5b6sIDwgdG9cLXdhbmRlclwtYWJvdXQ7CivlvLQgPCByZWRcLWxhY3F1ZXJcLWJvdzsKK+e+juWci+aUv+W6nCA8IHVcLnNcLlwtZ292ZXJubWVudDsKK+agoeiIjSA8IHNjaG9vbFwtYnVpbGRpbmc7Civlt7kgPCBudXB0aWFsXC13aW5lY3VwOwor5LiN5bmy5raJIDwgbm9uaW50ZXJmZXJlbmNlOwor5ZaE6ImvIDwgZ29vZFwtYW5kXC1ob25lc3Q7CivltY4gPCBtb3VudGFpblwtcmVjZXNzOwor5Lqe54i+55m85ZKM5aWn57Gz5YqgIDwgYWxwaGFcLWFuZFwtb21lZ2E7Civls54gPCBoaWdoXC1hbmRcLXVuZXZlbjsKK+WhnueIvueJueiqniA8IGNlbHRpY1wtbGFuZ3VhZ2U7CivmoLjmrabluqsgPCBudWNsZWFyXC1hcnNlbmFsOwor5a6i5oi25qmf6Luf5Lu2IDwgY2xpZW50XC1zb2Z0d2FyZTsKK+aOqui+reW8t+ehrCA8IHN0cm9uZ2x5XC13b3JkZWQ7Civou43lgpkgPCBcKG1pbGl0YXJ5XClcLWFybXM7CivpppbohaYgPCBoZWFkXC1cKG9mXC1zdGF0ZVwpOwor5a6J6JGsIDwgYnVyeVwtXCh0aGVcLWRlYWRcKTsKK+iHquWLleWUruiyqOapnyA8IHZlbmRpbmdcLW1hY2hpbmU7CivlpLIgPCBhZHZhbmNlXC1xdWlja2x5Owor5Lit576O5rSyIDwgY2VudHJhbFwtYW1lcmljYTsKK+alteWKmyA8IGRvXC1hdFwtYWxsXC1jb3N0czsKK+i3keatpSA8IHRvXC13YWxrXC1xdWlja2x5Owor5Z20IDwgYVwtY2xvZFwtb2ZcLWVhcnRoOwor5ZajIDwgdG9cLWJyZWF0aGVcLXVwb247CivllLIgPCBmb3JjZWRcLWxhdWdodGVyOwor5YWs5Y+45pyD6K2wIDwgY29tcGFueVwtbWVldGluZzsKK+iytuipniA8IGRlcm9nYXRvcnlcLXRlcm07CivkupLpgKMgPCBpbnRlcmNvbm5lY3Rpb247CivljpwgPCBhXC1tb3VudGFpblwtcGVhazsKK+WkqeS4u+aVmSA8IGNhdGhvbGljXC1jaHVyY2g7CivljIkgPCBub2lzZVwtb2ZcLXdhdGVyczsKK+WMhCA8IHRvXC1iZWdcLWZvclwtYWxtczsKK+aUueiuiuW9ouWDjyA8IHRyYW5zZmlndXJhdGlvbjsKK+WKmCA8IG1ha2VcLWludG9cLW1pbmNlOwor5oKy6bO0IDwgdXR0ZXJcLXNhZFwtY2FsbHM7Civmu7/mhI8gPCB0b1wtYmVcLXNhdGlzZmllZDsKK+a1t+mBiyA8IHNoaXBwaW5nXC1ieVwtc2VhOwor55WZ5a24IDwgdG9cLXN0dWR5XC1hYnJvYWQ7Civph5Hoo6HlpYcgPCBcKG5ld3RcKVwtZ2luZ3JpY2g7Civkvr/mop0gPCBcKGluZm9ybWFsXClcLW5vdGU7Civlgr0gPCB0ZXJyb3JcLXN0cmlja2VuOwor55Sa5oiWIDwgc29cLW11Y2hcLXNvXC10aGF0Owor5L2UIDwgb2NjdXB5XC1ieVwtZm9yY2U7CivlsbHls7AgPCBcKG1vdW50YWluXClcLXBlYWs7Civmuqvmn5QgPCBnZW50bGVcLWFuZFwtc29mdDsKK+S5uCA8IGZlbWluaW5lXC1zdWZmaXg7Civpq5jkuK0gPCBoaWdoXC1hbmRcLW1pZGRsZTsKK+eZvuWFkuWFq+WNgSA8IGFib3V0XC1hXC1odW5kcmVkOwor5biW5pKS576F5bC86L+m5YmN5pu4IDwgMVwtdGhlc3NhbG9uaWFuczsKK+S2oSA8IHNvdW5kXC1vZlwtYml0aW5nOwor5LaOIDwgc291bmRcLW9mXC1icmVhdGg7Civog4Pnl4UgPCBzdG9tYWNoXC10cm91YmxlOwor5LS+IDwgdG9cLWdyaW5kXC1iYXJsZXk7CivktK4gPCBjYWtlc1wtcGZcLWxlYXZlbjsKK+WkmuaooeWFiee6liA8IG11bHRpbW9kZVwtZmliZXI7CivlkIzpvaEgPCBvZlwtdGhlXC1zYW1lXC1hZ2U7Civou5/ku7bluILloLQgPCBzb2Z0d2FyZVwtbWFya2V0Owor5qCh5ZyS6aqo5bm5IDwgY2FtcHVzXC1iYWNrYm9uZTsKK+SvhCA8IGFcLXBpZWJhbGtcLWhvcnNlOwor5K69IDwgYml0XC1mb3JcLWFcLWhvcnNlOwor5K61IDwgbmFtZVwtb2ZcLWFcLWhvcnNlOwor5K6xIDwgYVwta2luZFwtb2ZcLWJlYXN0Owor5K6nIDwgbG9uZ1wtaGFpclwtaG9yc2U7CivkrqIgPCBhXC13YWxraW5nXC1ob3JzZTsKK+SujiA8IGFcLXJ1bm5pbmdcLWhvcnNlOwor5K28IDwgZGFya1wtYmx1ZVwtaG9yc2U7CivkrKsgPCBjbGFyZmllZFwtYnV0dGVyOwor5KyBIDwgYVwtbGlnaHRcLWN5Y2xvbmU7CivlkLjpn7MgPCBzb3VuZFwtYWJzb3JiaW5nOwor5rKS5pyJ6IGv57mrIDwgdG9cLWJlXC11bnJlbGF0ZWQ7Civkqq4gPCBiZWF1dGlmdWxcLXNvdW5kOwor5KqVIDwgdG9cLXdyYXBcLW9yXC1iYW5kOwor5Km5IDwgdG9cLXJlcGFpclwtc2hvZXM7CivkqZIgPCBkcmVzc2VkXC1sZWF0aGVyOwor6bq76YaJIDwgdG9cLWFuYWVzdGhldGl6ZTsKK+SphCA8IHRvXC1mYWNlXC10b1wtZmFjZTsKK+SooiA8IGFcLXBhc3NpbmdcLWNsb3VkOwor5KiWIDwgdG9cLXN0b3BcLXJhaW5pbmc7CivkqIAgPCB0b1wtbGF5XC1pblwtZ3JhaW47Civkp68gPCBuYW1lXC1vZlwtYVwtcGxhY2U7CivntrLntaHopo/lioPkurrlk6EgPCBuZXR3b3JrXC1wbGFubmVyOwor5KarIDwgaW5zaWRlXC10aGVcLWRvb3I7CivmipXlpZQgPCB0b1wtc2Vla1wtc2hlbHRlcjsKK+SllyA8IGFcLWJyYW5kaW5nXC1pcm9uOwor5KSxIDwgYVwtc29sZW1uXC1wbGVkZ2U7Civko7YgPCB1bnN0cmFpbmVkXC13aW5lOwor5L6L5pyDIDwgcmVndWxhclwtbWVldGluZzsKK+WFseeUoum7qCA8IGNvbW11bmlzdFwtcGFydHk7CivkoqYgPCB0b1wtbGVhZFwtdGhlXC13YXk7CivkopYgPCB0b1wtYmVcLXNjYXR0ZXJlZDsKK+SigSA8IHRpcmVcLW9mXC1hXC13aGVlbDsKK+ShuyA8IHNoYWtlXC1vZlwtYVwtY2FydDsKK+ShqCA8IGNvbm5lY3RlZFwtY2FydHM7CivppIXogqUgPCBjYWtlXC1mZXJ0aWxpemVyOwor5KGQIDwgdG9cLW1vdmVcLXN3aWZ0bHk7CivkuJbnlYzmnIDlpKcgPCB3b3JsZCcnc1wtbGFyZ2VzdDsKK+SgtSA8IHRvXC13ZWFyXC1jbG90aGVzOwor5KCoIDwgd2Fsa2luZ1wtcmFwaWRseTsKK+WwlumKs+aJueiplSA8IHNoYXJwXC1jcml0aWNpc207CivkuI3opovlvpcgPCBub3RcLW5lY2Vzc2FyaWx5Owor5J2vIDwgdG9cLWNoYW5nZVwtaGFuZHM7CivknZAgPCBhXC1jYXN0cmF0ZWRcLWhvZzsKK+SchCA8IHNsb3dcLW9uXC10YWxraW5nOwor5Ju1IDwgdG9cLXRlYWNoXC1vcmFsbHk7Civkm58gPCB3aWxkXC1zdGF0ZW1lbnRzOwor5JuUIDwgdG9cLWhvbGRcLWluXC1oYW5kOwor5pq06ZuoIDwgdG9ycmVudGlhbFwtcmFpbjsKK+SapiA8IHNsYW50ZWRcLWNvcm5lcnM7CivkmqUgPCB0b1wtYWRqdXN0XC1hXC1ib3c7CivkmbsgPCB0b1wtc3RlYWxcLWFcLWxvb2s7CivkmaggPCB0b1wtd3JhcFwtb3JcLWJpbmQ7CivkmZ0gPCB1bmRlclwtZ2Fycm1lbnRzOwor5Je+IDwgY29yYmljdWxhXC1sZWFuYTsKK+SWvCA8IHRoZVwtZHVuZ1wtYmVldGxlOwor5JaZIDwgYVwtcmVzdGluZ1wtdGlnZXI7CivklokgPCB0b1wtcm9hclwtb3JcLWhvd2w7CivklZkgPCB0b1wtc2V0XC1pblwtb3JkZXI7CivkkowgPCBkYXJrXC1ibHVlXC1jb2xvcjsKK+SPsiA8IHByb3RydWRlZFwtYm9uZXM7Civkvr/lrrQgPCBpbmZvcm1hbFwtZGlubmVyOwor5I6zIDwgbG9zZVwtb2ZcLXRoZVwtZWFyOwor5I6JIDwgdG9cLXdhbGtcLXN3aWZ0bHk7CivkuIrov7AgPCBhYm92ZVwtbWVudGlvbmVkOwor5Iu3IDwgYVwta2luZFwtb2ZcLXRoaWNrOwor5Iq1IDwgeW91bmdcLWFuZFwtc21hbGw7CivkipcgPCBhXC1raW5kXC1vZlwtZ3JhaW47CivkiokgPCBwcmVzZXJ2ZWRcLWZydWl0Owor5ImnIDwgc291bmRcLW9mXC1iYW1ib287Civos4DlubTniYcgPCBuZXdcLXllYXInJ3NcLWNhcmQ7CivkhbcgPCBhblwtZWFyXC1vZlwtZ3JhaW47CivkhbAgPCBhXC1raW5kXC1vZlwtZ3Jhc3M7CivmqJnmupbljJYgPCBzdGFuZGFyZGl6YXRpb247CivkhK4gPCBkYXJrXC1yaWNlXC1wbGFudDsKK+SElSA8IGdvZFwtb2ZcLXRoZVwtbGFuZDsKK+mbu+iFpuezu+e1sSA8IGNvbXB1dGVyXC1zeXN0ZW07Civkg7cgPCBhXC1raW5kXC1vZlwtc3RvbmU7Civkg5IgPCBwb29yXC1hbmRcLWJhcnJlbjsKK+SBtCA8IGtlZXBcLW9uXC1sb29raW5nOwor5IGzIDwgdG9cLWxvc2VcLW9uZVwtZXllOwor5a+m5b2IIDwgbGl2ZVwtYW1tdW5pdGlvbjsKK+iyqOW5o+WNseapnyA8IG1vbmV0YXJ5XC1jcmlzaXM7CivkgIkgPCBmb29kXC1jb250YWluZXJzOwor47+xIDwgZHJ5XC1hbmRcLWRlY2F5ZWQ7CivjvqkgPCBtYWxpZ25hbnRcLWJvaWxzOwor5YWx5Lqr5Lul5aSq57ay57WhIDwgc2hhcmVkXC1ldGhlcm5ldDsKK+eUouWAvCA8IHZhbHVlXC1vZlwtb3V0cHV0Owor5pqX6YCB56eL5rOiIDwgbWFrZVwtZXllc1wtYXRcLXNiOwor5L2/5ru/5oSPIDwgdG9cLW1ha2VcLWNvbnRlbnQ7CivnpZ3os4AgPCB0b1wtY29uZ3JhdHVsYXRlOwor47yVIDwgcHVscFwtb2ZcLWFcLW1lbG9uOwor47yUIDwgYVwta2luZFwtb2ZcLW1lbG9uOwor5LiN6Y+96Yu8IDwgc3RhaW5sZXNzXC1zdGVlbDsKK+O8giA8IGFcLWNyYWNrXC1pblwtamFkZTsKK+O7jSA8IG5hbWVcLW9mXC1hXC1zd29yZDsKK+O6jCA8IGVuZGxlc3NcLWJhcmtpbmc7Civku6XngrogPCBjb25zaWRlclwtXCh0aGF0XCk7CivjuacgPCBmb3hcLWxpa2VcLWFuaW1hbDsKK+O4sSA8IGhvcm5sZXNzXC1jYXR0bGU7CivjuKkgPCB0b1wtZGVzaXN0XC1hblwtb3g7CivmoLjlvYggPCBudWNsZWFyXC13YXJoZWFkOwor47iRIDwgYVwtY29va2luZ1wtc3RvdmU7CivljbDluqbkurogPCBpbmRpYW5cLVwocGVyc29uXCk7CivkuIroqrIgPCB0b1wtYXR0ZW5kXC1jbGFzczsKK+Wlp+mBi+adkSA8IG9seW1waWNcLXZpbGxhZ2U7Civjt40gPCBhXC1jaGVtaWNhbFwtdGVybTsKK+espuWQiCA8IGluXC1rZWVwaW5nXC13aXRoOwor5oqA5YCGIDwgdHJpY2t5XC1tYW5ldXZlcjsKK+aal+mBqeaHiSA8IGRhcmtcLWFkYXB0YXRpb247CivmlbjkvY3ntrLot68gPCBkaWdpdGFsXC1uZXR3b3JrOwor47O/IDwgcm9sbGluZ1wtYmlsbG93czsKK+OzlyA8IGJhbmtcLW9mXC1hXC1yaXZlcjsKK+OylCA8IHdvb2xlblwtdGV4dGlsZXM7CivjsY4gPCBjYW5ub3RcLWJlXC1rbm93bjsKK+OwrCA8IHNob3J0d2luZGVkbmVzczsKK+OwlyA8IGFcLWtpbmRcLW9mXC1tYXBsZTsKK+OwiCA8IG5pY2VcLWFuZFwtcHJldHR5Owor46+xIDwgYW5cLWVubGFyZ2VkXC1iYWc7Civjr6QgPCB0aGVcLWp1anViZVwtdHJlZTsKK+OvlCA8IHRvXC1odWxsXC1oZWF2aWx5Owor5rOw6KqeIDwgdGhhaVwtXChsYW5ndWFnZVwpOwor466hIDwgdG9cLWxpZ2h0XC1hXC1maXJlOwor5a+15aOeIDwgc3BvaWxcLVwoYVwtY2hpbGRcKTsKK+OtpCA8IHRoZVwtY29udm9sdnVsdXM7CivkuqTnlYwgPCBjb21tb25cLWJvdW5kYXJ5Owor6Jmb5pOs57ay57WhIDwgdmlydHVhbFwtbmV0d29yazsKK+WFieaYjuaXpeWgsSA8IGd1YW5nbWluZ1wtZGFpbHk7Civjq6AgPCBhXC1raW5kXC1vZlwtd2F0ZXI7CivjqqsgPCB3aXNlXC1hbmRcLWNsZXZlcjsKK+att+WPsuS5hemBoCA8IGFuY2llbnRcLWhpc3Rvcnk7Civjp44gPCBmb3JrZWRcLWJyYW5jaGVzOwor6ICB55m+5aeTIDwgb3JkaW5hcnlcLXBlb3BsZTsKK+OlniA8IHRvXC10aGlua1wtZGVlcGx5Owor46WbIDwgd2l0aFwtZXhwZWRpdGlvbjsKK+OiniA8IHJvb21zXC1jb25uZWN0ZWQ7Civjoo0gPCBhXC1sb25nXC12ZXJhYmRhaDsKK+Wkq+Wmu+W6lyA8IGZhbWlseVwtcnVuXC1zaG9wOwor46GyIDwgdGlsZXNcLW9uXC1hXC1yb29mOwor46GAIDwgcmFnZ2VkXC1jbG90aGluZzsKK+OflCA8IHN0ZWVwXC1hbmRcLWxvZnR5Owor452lIDwgaGF2ZVwtYVwtbmlnaG1hcmU7CivkuInokKwgPCB0aGlydHlcLXRob3VzYW5kOwor452FIDwgdG9cLWdpdmVcLXN1Y2tcLXRvOwor45yyIDwgdG9cLWhhdmVcLXN1cnBsdXM7CivosqjmupAgPCBzdXBwbHlcLW9mXC1nb29kczsKK+ObsCA8IHRvXC1tYXJyeVwtYVwtd2lmZTsKK+OapiA8IGFcLWNoYXJtaW5nXC1naXJsOwor45m8IDwgYVwtbWlsaXRhcnlcLXdhbGw7CivnqpfluJggPCB3aW5kb3dcLWN1cnRhaW5zOwor45mXIDwgYVwtbHVtcFwtb2ZcLWVhcnRoOwor45i6IDwgY3VsdGl2YXRlZFwtbGFuZDsKK+acn+elqCA8IHByb21pc3NvcnlcLW5vdGU7Civjl78gPCB0b1wtbGF1Z2hcLWxvdWRseTsKK+OVsiA8IHRvXC1nYWdcLW9yXC1icmliZTsKK+OVmCA8IHRvXC10YWtlXC1wYXJ0XC1pbjsKK+OSnyA8IHdpdGhcLWFcLWNoYXJtaW5nOwor5Y+j6KqeIDwgc3Bva2VuXC1sYW5ndWFnZTsKK+aWr+aLieWkq+iqniA8IHNsYXZpY1wtbGFuZ3VhZ2U7Civnp4Hnh58gPCBwcml2YXRlbHlcLW93bmVkOwor5aSW5ZyL5YWs5Y+4IDwgZm9yZWlnblwtY29tcGFueTsKK+WvkuWBhyA8IHdpbnRlclwtdmFjYXRpb247Civlk4DmrYwgPCBhXC1tb3VybmZ1bFwtc29uZzsKK+WFkuWMlumfuyA8IHJldHJvZmxleFwtZmluYWw7Civnib3pgKMgPCBcKGJlXClcLWltcGxpY2F0ZWQ7CivmgKfooYwgPCBzZXh1YWxcLWFjdGl2aXR5Owor5a245aOrIDwgYmFjaGVsb3JcLWRlZ3JlZTsKK+iyoOaTlCA8IFwoYmVhclwtYVwpXC1idXJkZW47CivllYbmpa3kuK3lv4MgPCBidXNpbmVzc1wtY2VudGVyOwor5LiA56eYIDwgZmlyc3RcLXNlY3JldGFyeTsKK+iXpeeTtiA8IG1lZGljaW5lXC1ib3R0bGU7CivmhZrmhKcgPCBcKHRvXC1iZVwpXC1hc2hhbWVkOwor5Lq65omNIDwgdGFsZW50ZWRcLXBlcnNvbjsKK+S4jeeUmCA8IHVucmVjb25jaWxlZFwtdG87CivkuI3nm7jkuIrkuIsgPCBlcXVhbGx5XC1tYXRjaGVkOwor54+t5a2QIDwgb3JnYW5pemVkXC1ncm91cDsKK+avj+malCA8IGF0XC1pbnRlcnZhbHNcLW9mOwor5oSb5oi0IDwgbG92ZVwtYW5kXC1lc3RlZW07CivmhJvmiIAgPCBiZVwtaW5cLWxvdmVcLXdpdGg7CivmqZ/lr4bmlofku7YgPCBzZWNyZXRcLWRvY3VtZW50Owor5p2t5beeIDwgaGFuZ3pob3VcLVwoY2l0eVwpOwor5ZWP5LiWIDwgdG9cLWJlXC1wdWJsaXNoZWQ7CivmgrLms6MgPCB3ZWVwXC13aXRoXC1ncmllZjsKK+azleeQhiA8IGxlZ2FsXC1wcmluY2lwbGU7Civnp6nluo8gPCBvcmRlclwtXChvcmRlcmx5XCk7CivntrLntaHmiZPljbDmqZ8gPCBuZXR3b3JrXC1wcmludGVyOwor5ZCN54mHIDwgXChidXNpbmVzc1wpXC1jYXJkOwor5peF6LK7IDwgdHJhdmVsXC1leHBlbnNlczsKK+iyoeWcmCA8IGZpbmFuY2lhbFwtZ3JvdXA7Civmspnnn7MgPCBzYW5kXC1hbmRcLXN0b25lczsKK+emgeaenCA8IGZvcmJpZGRlblwtZnJ1aXQ7Civpg7XpgZ4gPCB0b1wtc2VuZFwtYnlcLW1haWw7Civmnb/mnb/lha3ljYHlm5sgPCB1bmFjY29tbW9kYXRpbmc7CivmnpDlh7ogPCB0b1wtc2VwZXJhdGVcLW91dDsKK+esrOS4gOWAi+WxpOasoSA8IHRoZVwtZmlyc3RcLXN0YWdlOwor5YW36auU6KiI5YqDIDwgYVwtY29uY3JldGVcLXBsYW47CivlpZTopbIgPCBsb25nXC1yYW5nZVwtcmFpZDsKK+adv+WItyA8IHNjcnViYmluZ1wtYnJ1c2g7CivmnI3lvp4gPCBvYmV5XC1cKGFuXC1vcmRlclwpOwor5pa96KGMIDwgdG9cLXB1dFwtaW5cLXBsYWNlOwor6I6r5bC85Y2h6JCK5rqr5pav5Z+6IDwgbW9uaWNhXC1sZXdpbnNreTsKK+aWh+abuOiZleeQhiA8IHdvcmRcLXByb2Nlc3Npbmc7CivnvbDmrL4gPCBcKGltcG9zZVwtYVwpXC1maW5lOwor6ZuM6ZuEIDwgbWFsZVwtYW5kXC1mZW1hbGU7Civpgorpn7MgPCBsYXRlcmFsXC1cKHNvdW5kXCk7Civmr43opqogPCBtb3RoZXJcLVwoZm9ybWFsXCk7CivmnInoga/nuasgPCB0b1wtYmVcLWNvbm5lY3RlZDsKK+ejgeebpCA8IFwoY29tcHV0ZXJcKVwtZGlzazsKK+mgkOmYsuaOquaWvSA8IHByb3RlY3RpdmVcLXN0ZXA7CivnpKbmpa0gPCBtaW5pbmdcLWluZHVzdHJ5Owor5YWs54S26KGo56S6IDwgdG9cLXN0YXRlXC1vcGVubHk7CivmtYHlpLEgPCBiZVwtZHJhaW5lZFwtYXdheTsKK+W8lei1tyA8IHRvXC1naXZlXC1yaXNlXC10bzsKK/CjjrQgPCBzdHVtcFwtb2ZcLWFcLXRyZWU7CivorYnniakgPCBleGhpYml0XC1cKGxlZ2FsXCk7CivnuKvoo5wgPCBkYXJuXC1cKGNsb3RoaW5nXCk7Civnt6jpgbggPCBzZWxlY3RcLWFuZFwtZWRpdDsKK+iyoOWCtee6jee6jSA8IGhlYXZpbHlcLWluXC1kZWJ0Owor5a+p5Yik6ZW3IDwgcHJlc2lkaW5nXC1qdWRnZTsKK+S4iuWtuCA8IHRvXC1nb1wtdG9cLXNjaG9vbDsKK+mgu+W4tiA8IGZyZXF1ZW5jeVwtcmFuZ2U7CivmlL/oposgPCBwb2xpdGljYWxcLXZpZXdzOwor5oKy5ZiGIDwgc2lnaFwtbW91cm5mdWxseTsKK+WNiueUnyA8IGhhbGZcLWFcLWxpZmV0aW1lOwor5Y2a54mpIDwgbmF0dXJhbFwtc2NpZW5jZTsKK+e2k+a/n+mrlOWItiA8IGVjb25vbWljXC1zeXN0ZW07CivkuI3pgY7niL7niL4gPCBtZXJlbHlcLW1lZGlvY3JlOwor55uc54mI6ICFIDwgc29mdHdhcmVcLXBpcmF0ZTsKK+Wkp+mDqOS7vSA8IFwoaW5cKVwtbGFyZ2VcLXBhcnQ7CivmtYHmhJ/nl4Xmr5IgPCBpbmZsdWVuemFcLXZpcnVzOwor6YO156WoIDwgXChwb3N0YWdlXClcLXN0YW1wOwor5oGw5aW9IDwgYXNcLWl0XC10dXJuc1wtb3V0Owor5rCj5rqrIDwgYWlyXC10ZW1wZXJhdHVyZTsKK+efruiDliA8IHNob3J0XC1hbmRcLXN0b3V0Owor6Kqe57O7IDwgbGFuZ3VhZ2VcLXN5c3RlbTsKK+iuiuW9oiA8IGJlXC1vdXRcLW9mXC1zaGFwZTsKK+WNl+a1tyA8IHNvdXRoXC1jaGluYVwtc2VhOwor5Ya35rCj5qmfIDwgYWlyXC1jb25kaXRpb25lcjsKK+e+juWFgyA8IGFtZXJpY2FuXC1kb2xsYXI7CivkuJbkurogPCBcKGNvbW1vblwpXC1wZW9wbGU7CivlkI3llq4gPCBsaXN0XC1cKG9mXC1uYW1lc1wpOwor6Zu756OBIDwgZWxlY3Ryb21hZ25ldGljOwor5rCR5qyKIDwgY2l2aWxcLWxpYmVydGllczsKK+aTmuiqqiA8IGl0XC1pc1wtc2FpZFwtdGhhdDsKK+WOn+aApyA8IG9yaWdpbmFsXC1uYXR1cmU7CivooZvnlJ/lrpjlk6EgPCBoZWFsdGhcLW9mZmljaWFsOwor6LqFIDwgd2Fsa1wtY2FyZWZ1bGx5Owor5be0IDwgZ3JlYXRseVwtZGVzaXJlOwor5pyfIDwgcGVyaW9kXC1vZlwtdGltZTsKK+WPuCA8IHRha2VcLWNoYXJnZVwtb2Y7CivnlKUgPCBzaXN0ZXInJ3NcLWNoaWxkOwor5bGPIDwgZm9sZGluZ1wtc2NyZWVuOwor54uQIDwgc3BlY2llc1wtb2ZcLWZveDsKK+axiSA8IGNoaW5lc2VcLXBlb3BsZTsKK+WmuSA8IHlvdW5nZXJcLXNpc3RlcjsKK+S8gSA8IHBsYW5cLWFcLXByb2plY3Q7CivopZYgPCBvdXRlclwtZ2FybWVudHM7Civlo4EgPCBwYXJ0aXRpb25cLXdhbGw7Civpn6YgPCB0YW5uZWRcLWxlYXRoZXI7CivmvbAgPCBmbG9vZGluZ1wtcml2ZXI7Civnj6AgPCBwcmVjaW91c1wtc3RvbmU7CivplIsgPCBwb2ludFwtb2ZcLXNwZWFyOwor5L+XIDwgc29jaWFsXC1jdXN0b21zOwor5qqQIDwgZWF2ZXNcLW9mXC1ob3VzZTsKK+mqkSA8IHJpZGVcLWhvcnNlYmFjazsKK+WHvSA8IGNvcnJlc3BvbmRlbmNlOwor6a2PIDwga2luZ2RvbVwtb2ZcLXdlaTsKK+aemiA8IHN0YWxrXC1vZlwtc2hydWI7Civku7IgPCBtaWRkbGVcLWJyb3RoZXI7CivnkLMgPCBiZWF1dGlmdWxcLWphZGU7Civlh5EgPCBwaWVjZVwtdG9nZXRoZXI7Civpg4EgPCBzd2VldFwtc21lbGxpbmc7Civoiq8gPCBwaXRoXC1mcm9tXC1ydXNoOwor57ieIDwgd2hpdGVcLXJhd1wtc2lsazsKK+aXrCA8IHRlblwtZGF5XC1wZXJpb2Q7CivntrogPCBmaW5lXC10aGluXC1zaWxrOwor5aaoIDwgaW50ZXJmZXJlXC13aXRoOwor6aqEIDwgc3Bpcml0ZWRcLWhvcnNlOwor5o60IDwgYm94XC1vbmUnJ3NcLWVhcnM7Civll68gPCBmaW5hbFwtcGFydGljbGU7Civlsq0gPCBtb3VudGFpblwtcmlkZ2U7CivmuZggPCBodW5hblwtcHJvdmluY2U7CivpioMgPCBhbmNpZW50XC13ZWFwb247Civpk64gPCBjbGFuZ2luZ1wtc291bmQ7CivojrkgPCBsdXN0ZXJcLW9mXC1nZW1zOwor5YO7IDwgb3V0XC1vZlwtdGhlXC13YXk7CivmuLogPCBlbmRsZXNzbHlcLWxvbmc7CivkvaMgPCBjb21taXNzaW9uXC1mZWU7CivlkZsgPCBjaG9rZVwtYnlcLXNtb2tlOwor5YewIDwgZmVtYWxlXC1waG9lbml4Owor6Ze6IDwgc21hbGxcLWVudHJhbmNlOwor57yAIDwgcGF0Y2hcLXRvZ2V0aGVyOwor55KLIDwgamFkZVwtcGxheXRoaW5nOwor5ou0IDwgYmluZFwtd2l0aFwtcm9wZTsKK+enpyA8IHJpY2VcLXNlZWRsaW5nczsKK+iVgyA8IGZvcmVpZ25cLXRoaW5nczsKK+mEgiA8IGh1YmVpXC1wcm92aW5jZTsKK+ajsSA8IHNxdWFyZWRcLXRpbWJlcjsKK+ailyA8IHN0ZW1cLW9mXC1mbG93ZXI7Civoj7EgPCB3YXRlclwtY2hlc3RudXQ7CivplZEgPCBwb3VuZFwtc3Rlcmxpbmc7CivmoKkgPCBzcGVjaWVzXC1vZlwtb2FrOwor55KeIDwgdW5wb2xpc2hlZFwtZ2VtOwor6ZuvIDwgY2xvdWRcLXBhdHRlcm5zOwor6K63IDwgc2xvd1wtb2ZcLXNwZWVjaDsKK+eLsCA8IGZpZXJjZVwtbG9va2luZzsKK+WzpiA8IG1vdW50YWluXC1yYW5nZTsKK+a5gyA8IHNvdW5kXC1vZlwtd2F2ZXM7CivonZcgPCBraW5kXC1vZlwtbG9jdXN0Owor55qWIDwgYW5odWlcLXByb3ZpbmNlOwor6YWLIDwgY2hpZWZcLW9mXC10cmliZTsKK+WjkSA8IGJlZFwtb2ZcLXRvcnJlbnQ7Civns68gPCBnbHV0aW5vdXNcLXJpY2U7CivnqLcgPCBnb2RcLW9mXC1jZXJlYWxzOwor5aG+IDwgdmlsbGFnZVwtc2Nob29sOwor54upIDwgd2ludGVyXC1odW50aW5nOwor5oiNIDwgZGVmZW5kXC1ib3JkZXJzOwor55KAIDwgbHVzdHJlXC1vZlwtZ2VtczsKK+eJjSA8IHdyaXRpbmdcLXRhYmxldDsKK+mVjCA8IGVuZ3JhdmluZ1wtdG9vbDsKK+mlryA8IGZhcmV3ZWxsXC1wYXJ0eTsKK+m5giA8IGNoaW5lc2VcLW9yaW9sZTsKK+WboSA8IG9uZScnc1wtZGF1Z2h0ZXI7Civmup8gPCBkcml6emxpbmdcLXJhaW47CivplI8gPCBraW5kXC1vZlwtcmFwaWVyOwor5bGZIDwgdG9cLWVhc2VcLW5hdHVyZTsKK+eOsyA8IHRvcnRvaXNlXC1zaGVsbDsKK+eRrSA8IGFcLWtpbmRcLW9mXC1qYWRlOwor5p2IIDwgZm9ya1wtb2ZcLWFcLXRyZWU7CivljJAgPCBmYWxsXC1wcm9zdHJhdGU7CivnoKMgPCBhXC1zdG9uZVwtcm9sbGVyOwor6ZOiIDwgdW5pdFwtb2ZcLXdlaWdodDsKK+mqiCA8IHRlYW1cLW9mXC1ob3JzZXM7CivlmbEgPCBsYXVnaFwtaGVhcnRpbHk7Civnm7EgPCB3aWRlXC1vcGVuXC1leWVzOwor6ICEIDwgZWxkZXJseVwtcGVyc29uOwor5qaUIDwgYmV0ZWxcLW51dFwtdHJlZTsKK+ivpCA8IHRvXC1leHBvc3R1bGF0ZTsKK+idriA8IHZlbm9tb3VzXC1zbmFrZTsKK+mijSA8IHJpdmVyXC1pblwtYW5odWk7CivmpZ0gPCBtZWxpYVwtamFwb25pY2E7CivonbwgPCBhXC1tb2xlXC1jcmlja2V0Owor6I2qIDwgYXJvbWF0aWNcLWdyYXNzOwor5aiMIDwgYnJvdGhlcicnc1wtd2lmZTsKK+aZtyA8IHNoYWRvd3NcLW9mXC1zdW47Civll7UgPCB1c2VkXC1mb3JcLXNvdW5kOwor6LiFIDwgdG9cLXdhbGtcLWFyb3VuZDsKK+aPhiA8IHByaW1lXC1taW5pc3RlcjsKK+eMlSA8IG1hY2FjdXNcLW1vbmtleTsKK+WOnSA8IGN1dFwtb3JcLWVuZ3JhdmU7CivokZogPCBtdWxiZXJyeVwtZnJ1aXQ7CivogJIgPCBoYW5kbGVcLW9mXC1wbG93Owor5L+FIDwgb3JuYW1lbnRhbFwtY2FwOwor6I+9IDwgYmVhbnNcLWFuZFwtcGVhczsKK+meryA8IHNhZGRsZVwtYmxhbmtldDsKK+m8kCA8IGluY2Vuc2VcLXRyaXBvZDsKK+iwsCA8IGFjY3VzZVwtZmFsc2VseTsKK+mqsSA8IGpvaW50XC1vZlwtYm9uZXM7CivorKYgPCB0XC1zcGVha1wtc29mdGx5Owor56O0IDwgc3RlcHNcLW9uXC1sZWRnZTsKK+WpuiA8IG5hbWVcLW9mXC1hXC1zdGFyOwor5aCNIDwgc2lkZVwtb2ZcLWJyaWRnZTsKK+ahqyA8IGhvcnNlXC1jaGVzdG51dDsKK+a8tiA8IGluZGVjaXBoZXJhYmxlOwor5a2lIDwgb25lJydzXC1jaGlsZHJlbjsKK+a6sSA8IHJpdmVyXC1pblwtaGVuYW47Civpu6UgPCB0YXR0b29pbmdcLWZhY2U7CivoupAgPCB0b1wtc3RyaWRlXC1vdmVyOwor6LmvIDwgcGF3c1wtb2ZcLWFuaW1hbDsKK+ebjSA8IHdoYXRcP1wtd2h5XC1ub3RcPzsKK+a6hiA8IHJpdmVyXC1pblwtaHVuYW47Civno7IgPCB0cmlkYWNuYVwtZ2lnYXM7CivmmJ0gPCBhXC1kdWFsXC1wcm9ub3VuOwor5p+9IDwgdHlwZVwtb2ZcLXdpbGxvdzsKK+e8rCA8IHBhdHRlcm5lZFwtc2lsazsKK+mpuiA8IG1vdW50ZWRcLWVzY29ydDsKK+mYiiA8IGdhdGVcLW9mXC1oZWF2ZW47CivojakgPCBhXC1raW5kXC1vZlwtd2VlZDsKK+iKjiA8IGFcLWtpbmRcLW9mXC1oZXJiOwor6YuIIDwgc2lsdmVyXC1wbGF0aW5nOwor6b6FIDwgdGVldGhcLXByb3RydWRlOwor5pmhIDwgbGF0ZVwtYWZ0ZXJub29uOwor5qqgIDwgc3RhbmRcLWZvclwtbGFtcDsKK+mArSA8IHRvXC1lc2NhcGVcLWZyb207Civmk43oqrIgPCBtaWxpdGFyeVwtZHJpbGw7CivkvIrnlLjlnJIgPCBnYXJkZW5cLW9mXC1lZGVuOwor5oiQ5ZOh5ZyLIDwgbWVtYmVyXC1jb3VudHJ5Owor5YW36auU5ZWP6aGMIDwgY29uY3JldGVcLWlzc3VlOwor5Y2U5pyDIDwgYW5cLWFzc29jaWF0aW9uOwor5paH54mpIDwgY3VsdHVyYWxcLXJlbGljOwor6YCa6KiKIDwgY29tbXVuaWNhdGlvbnM7CivljbHmiL8gPCBkZWNyZXBpdFwtaG91c2U7Civnibnlt6UgPCBzZWNyZXRcLXNlcnZpY2U7Civpm7vnh4ggPCBlbGVjdHJpY1wtbGlnaHQ7Civph6PprZroh7ogPCBkaWFveXVcLWlzbGFuZHM7CivljJfmpbUgPCB0aGVcLW5vcnRoXC1wb2xlOwor6KSH6Z+75q+NIDwgY29tcG91bmRcLWZpbmFsOwor6aCQ5LuYIDwgcGF5XC1pblwtYWR2YW5jZTsKK+Wci+mYsumgkOeulyA8IGRlZmVuY2VcLWJ1ZGdldDsKK+auuuawoyA8IG11cmRlcm91c1wtbG9vazsKK+ejgeWgtCA8IG1hZ25ldGljXC1maWVsZDsKK+ijgea4m+i7jeWCmSA8IGFybXNcLXJlZHVjdGlvbjsKK+eJmeW6iiA8IGFsdmVvbGFyXC1yaWRnZTsKK+WPg+WKoCA8IHRvXC1wYXJ0aWNpcGF0ZTsKK+awkeaEjyA8IHB1YmxpY1wtb3BpbmlvbjsKK+WHuuWPo+WVhuWTgSA8IGV4cG9ydFwtcHJvZHVjdDsKK+W+gOaXpSA8IGluXC1mb3JtZXJcLWRheXM7Civli5jmuKwgPCB0b1wtaW52ZXN0aWdhdGU7CivlhrDph4sgPCBcKG9mXC1taXNnaXZpbmdzOwor5aSn5qiTIDwgbGFyZ2VcLWJ1aWxkaW5nOwor5pS56Z2p6YCy56iLIDwgcmVmb3JtXC1wcm9jZXNzOwor5YWo55CD6LOH6KiK57ayIDwgd29ybGRcLXdpZGVcLXdlYjsKK+iWhOiDjueTt+WZqCA8IGVnZ3NoZWxsXC1jaGluYTsKK+aAquS6uiA8IHN0cmFuZ2VcLXBlcnNvbjsKK+eHn+alrSA8IHRvXC1kb1wtYnVzaW5lc3M7CivloZHohqAgPCBwbGFzdGljXC1jZW1lbnQ7CivmmZrkuIogPCBpblwtdGhlXC1ldmVuaW5nOwor5pWj5q2lIDwgdG9cLXRha2VcLWFcLXdhbGs7CivorZjliKUgPCB0b1wtZGlzdGluZ3Vpc2g7CivluYDlpKrplbcgPCBvdmVyc2l6ZVwtZnJhbWU7Civmk7rolanlkIrnkrAgPCBzd2luZ2luZ1wtcmluZ3M7CivlhajnkIPmsKPlgJkgPCBnbG9iYWxcLWNsaW1hdGU7CivlpLHmjqcgPCBvdXRcLW9mXC1jb250cm9sOwor5pW45pyIIDwgc2V2ZXJhbFwtbW9udGhzOwor5b6A5b6pIDwgdG9cLXJlY2lwcm9jYXRlOwor5bCN5aSW5pS/562WIDwgZm9yZWlnblwtcG9saWN5Owor6Z225aC0IDwgc2hvb3RpbmdcLXJhbmdlOwor57OW6YaLIDwgc3dlZXRcLWFuZFwtc291cjsKK+S8tOeUn+awoyA8IGFzc29jaWF0ZWRcLWdhczsKK+W4s+iZnyA8IGFjY291bnRcLW51bWJlcjsKK+eIquWtkCA8IFwoYW5pbWFsJydzXClcLXBhdzsKK+WIpeeuoSA8IG5vXC1tYXR0ZXJcLVwod2hvOwor6YCy6KGM6YCa5L+hIDwgdG9cLWNvbW11bmljYXRlOwor5Yio56iLIDwgcGxhbmluZ1wtbGVuZ3RoOwor57Sg6I+cIDwgdmVnZXRhYmxlXC1kaXNoOwor5LiN5ZKO5pei5b6AIDwgbm90XC1jZW5zdXJlXC1zYjsKK+mWi+i7iiA8IHRvXC1kcml2ZVwtYVwtY2FyOwor54WZ54GrIDwgc21va2VcLWFuZFwtZmlyZTsKK+i9iemBiyA8IHRyYW5zcG9ydGF0aW9uOwor5beh6K2mIDwgcG9saWNlXC1vZmZpY2VyOwor5qCh5ZyS57ay57WhIDwgY2FtcHVzXC1uZXR3b3JrOwor5pW45L2N5L+h6JmfIDwgZGlnaXRhbFwtc2lnbmFsOwor5pS+5pigIDwgc2hvd1wtXChhXC1tb3ZpZVwpOwor54mp55CG5bGkIDwgcGh5c2ljYWxcLWxheWVyOwor6IGv5ZCI5ZyLIDwgdW5pdGVkXC1uYXRpb25zOwor6KO96YCgIDwgdG9cLW1hbnVmYWN0dXJlOwor5Yip546HIDwgaW50ZXJlc3RcLXJhdGVzOwor6Iux5ZyL5Lq6IDwgYnJpdGlzaFwtcGVyc29uOwor55Sf6ZW35r+A57SgIDwgZ3Jvd3RoXC1ob3Jtb25lOwor55m954ax5YyWIDwgdHVyblwtd2hpdGVcLWhvdDsKK+W8seWwjyA8IHNtYWxsXC1hbmRcLXdlYWs7CivmlZ3lsaMgPCB3b3JuXC1vdXRcLXNob2VzOwor5Y2B5LiA5pyIIDwgZWxldmVudGhcLW1vbnRoOwor5oyH5o+u5Lit5b+DIDwgY29tbWFuZFwtY2VudGVyOwor55+u5a2QIDwgYVwtc2hvcnRcLXBlcnNvbjsKK+WOn+WtkOaguCA8IGF0b21pY1wtbnVjbGV1czsKK+aKiuWFhOW8nyA8IHN3b3JuXC1icm90aGVyczsKK+mAn+axuiA8IHF1aWNrXC1kZWNpc2lvbjsKK+mXnOeohSA8IFwoY3VzdG9tc1wpXC1kdXR5Owor55m96JiHIDwgY29tbW9uXC1wZXJpbGxhOwor5q+U5YC8IDwgc3BlY2lmaWNcLXZhbHVlOwor6Zu76Kmx57ea6LevIDwgdGVsZXBob25lXC1saW5lOwor5Z+6552jIDwgamVzdXNcLVwoY2hyaXN0XCk7CivmjqLot68gPCB0b1wtZmluZFwtYVwtcGF0aDsKK+mBmeaOpyA8IHJlbW90ZVwtY29udHJvbDsKK+WMl+aWl+aYnyA8IHRoZVwtYmlnXC1kaXBwZXI7CivplovnjqnnrJEgPCB0b1wtcGxheVwtYVwtam9rZTsKK+m4jiA8IHRoZVwtbWFuZ29cLWJpcmQ7CivptpcgPCBhXC1raW5kXC1vZlwtaGF3azsKK+S7peWkque2sue1oeW5gCA8IGV0aGVybmV0XC1mcmFtZTsKK+mBmeaEnyA8IHJlbW90ZVwtc2Vuc2luZzsKK+eZveiJsiA8IHdoaXRlXC1cKGNvbG91clwpOwor6a6nIDwgdGhlXC1zaGVhdFwtZmlzaDsKK+aSpeasviA8IGFsbG9jYXRlXC1mdW5kczsKK+msmCA8IGJlYXV0aWZ1bFwtaGFpcjsKK+mslyA8IGhlYWRcLW9ybmFtZW50czsKK+W7oOW3pSA8IGZhY3RvcnlcLXdvcmtlcjsKK+iqnuawo+WKqeipniA8IG1vZGFsXC1wYXJ0aWNsZTsKK+mrhiA8IHNob3VsZGVyXC1ibGFkZTsKK+ato+WlvSA8IGp1c3RcLVwoaW5cLXRpbWVcKTsKK+e0hOabuOS6nuiomCA8IGJvb2tcLW9mXC1qb3NodWE7CivmjqLoppYgPCBwYXlcLWFcLXZpc2l0XC10bzsKK+mojCA8IGFcLWhvcnNlJydzXC1tYW5lOwor6aShIDwgcGFzdHJ5XC1maWxsaW5nOwor6aSXIDwgZm9vZFwtaW5cLXRyaXBvZDsKK+W8leWSjiA8IHRha2VcLXRoZVwtYmxhbWU7Civlr6nliKTluK0gPCBqdWRnZW1lbnRcLXNlYXQ7Civnmb3nsonnl4UgPCBwb3dkZXJ5XC1taWxkZXc7Civlo4HloLEgPCB3YWxsXC1uZXdzcGFwZXI7CivmlLnlloQgPCB0b1wtbWFrZVwtYmV0dGVyOwor57aT5r+f5pyJ5pWIIDwgY29zdFwtZWZmZWN0aXZlOwor5aCF5rG65ZCm6KqNIDwgdG9cLWZpcm1seVwtZGVueTsKK+mAoOaIkCA8IHRvXC1icmluZ1wtYWJvdXQ7CivluavmnIMgPCBzZWNyZXRcLXNvY2lldHk7CivplKogPCBhXC1raW5kXC1vZlwtdG9vbDsKK+aTjeW/gyA8IHRvXC13b3JyeVwtYWJvdXQ7Civpj7QgPCB0b1wtcGx1Z1wtYVwtaG9sZTsKK+mOqSA8IG1vdWx0XC1zYW1hcml1bTsKK+abuOWvq+espuiZnyA8IHdyaXRpbmdcLXN5bWJvbDsKK+eZveeoriA8IHRoZVwtd2hpdGVcLXJhY2U7CivpjYYgPCBtZFwtbWVuZGVsZXZpdW07Civpi6kgPCBwb2ludFwtb2ZcLXN3b3JkOwor6YuDIDwgbG9ja1wtbGFudGhhbnVtOwor6KOc57y6IDwgZmlsbFwtYVwtdmFjYW5jeTsKK+WPpOW4jOiHmCA8IGFuY2llbnRcLWdyZWVjZTsKK+ilv+atkCA8IHdlc3Rlcm5cLWV1cm9wZTsKK+S4reWci+S6uiA8IGNoaW5lc2VcLXBlcnNvbjsKK+mAleW6rSA8IHZlcnlcLWRpZmZlcmVudDsKK+WNoee0jee2reaLieeIvuinkiA8IGNhcGVcLWNhbmF2ZXJhbDsKK+ijnOe2tCA8IG1lbmRcLVwoY2xvdGhlc1wpOwor5LiN55+l5q275rS7IDwgYWN0XC1yZWNrbGVzc2x5Owor55uj552j5Lq6IDwgc3VwZXJpbnRlbmRlbnQ7Civpm4bkuK0gPCB0b1wtY29uY2VudHJhdGU7CivpgKkgPCB0b1wtcnVuXC1xdWlja2x5Owor6YGy5YiwIDwgdG9cLWFycml2ZVwtbGF0ZTsKK+i8tiA8IGxpZ2h0XC1jYXJyaWFnZTsKK+azoue+heeahOa1tyA8IHRoZVwtYmFsdGljXC1zZWE7CivotrkgPCBraWNrXC13aXRoXC1ob29mOwor5aCx5b6pIDwgbWFrZVwtcmVwcmlzYWxzOwor55yf5oOFIDwgcmVhbFwtc2l0dWF0aW9uOwor5qGM6Z2i57O757WxIDwgZGVza3RvcFwtc3lzdGVtOwor5p2x5Y2X5Lqe5ZyLIDwgc291dGhlYXN0XC1hc2lhOwor5beo5rWBIDwgc3Ryb25nXC1jdXJyZW50Owor6LGjIDwgcGlnXC1vZlwtM1wteWVhcnM7CivosZYgPCBhXC1zaGFja2xlZFwtcGlnOwor6YCA5a24IDwgdG9cLXF1aXRcLXNjaG9vbDsKK+iuhSA8IGtub3dcLWluXC1kZXRhaWw7Civlu4nlg7kgPCBjaGVhcGx5XC1wcmljZWQ7CivlsI/lnovkvIHmpa0gPCBzbWFsbFwtYnVzaW5lc3M7CivoqaggPCBraW5kXC1vZlwtY2ljYWRhOwor6aCG5bqP5pW4IDwgb3JkaW5hbFwtbnVtYmVyOwor55eF6JmfIDwgc2lja1wtcGVyc29ubmVsOwor5ZyY57WQIDwgXChob2xkXC1hXClcLXJhbGx5Owor6KSJIDwgc2hvcnRcLWdhcm1lbnRzOwor5ZyN57meIDwgcmV2b2x2ZVwtYXJvdW5kOwor6L+R5bm0IDwgcmVjZW50XC15ZWFyXChzXCk7CivooYIgPCB0b1wtYmVcLWRlZmVhdGVkOwor6KCCIDwgcG9kaXNtYVwtbWlrYWRvOwor6J+zIDwgYVwta2luZFwtb2ZcLWNyYWI7Civon60gPCB2ZXJ5XC1zbWFsbFwtYnVnOwor5YCS6ZaJIDwgdG9cLWdvXC1iYW5rcnVwdDsKK+ierCA8IGdydWJzXC1pblwtZnJ1aXQ7CivlhrfmiLAgPCBcKHRoZVwpXC1jb2xkXC13YXI7CivonI4gPCBtb3NxdWl0b1wtbGFydmE7Civos4fmlpnku4vpnaIgPCBkYXRhXC1pbnRlcmZhY2U7CivomYAgPCBtaW5jZWRcLXBpY2tsZXM7CivolrMgPCBuYW1lXC1vZlwtYVwtaGVyYjsKK+iWmCA8IHBsYW50YWdvXC1tYWpvcjsKK+WDueebriA8IFwobWFya2VkXClcLXByaWNlOwor6JOvIDwgbWVkaWNpbmFsXC1oZXJiOwor6JOPIDwgZnJ1aXRcLW9mXC1wbGFudDsKK+iRpSA8IHJ1YnVzXC1wYWxtYXR1czsKK+eXheiEiCA8IGFibm9ybWFsXC1wdWxzZTsKK+S4jeaAjum6vOaooyA8IG5vdFwtdXBcLXRvXC1tdWNoOwor5ry46K6KIDwgZ3JhZHVhbFwtY2hhbmdlOwor6IyeIDwgZnJhZ3JhbnRcLXBsYW50Owor6Z2e5bi46YeN6KaBIDwgdmVyeVwtaW1wb3J0YW50Owor57SA5b+1IDwgdG9cLWNvbW1lbW9yYXRlOwor6ZaL5pyDIDwgaGF2ZVwtYVwtbWVldGluZzsKK+mGq+WtuOWwiOWutiA8IG1lZGljYWxcLWV4cGVydDsKK+iKiCA8IGJsZWF0XC1vZlwtc2hlZXA7CivlhYjpgLLmsLTlubMgPCBhZHZhbmNlZFwtbGV2ZWw7CivljYDln5/ntrLot6/mioDooZMgPCBsYW5cLXRlY2hub2xvZ3k7Civlhajmma8gPCBwYW5vcmFtaWNcLXZpZXc7CivliIDlj4kgPCBrbmlmZVwtYW5kXC1mb3JrOwor6ISmIDwgdXNlZFwtaW5cLScnbGVkZScnOwor6YCj6Y6W5Y+N5oeJIDwgY2hhaW5cLXJlYWN0aW9uOwor54m55Yil5oSf6KydIDwgc3BlY2lhbFwtdGhhbmtzOwor5Lq65aO95L+d6ZqqIDwgbGlmZVwtaW5zdXJhbmNlOwor5biD5bibIDwgY2xvdGhcLWFuZFwtc2lsazsKK+aJvumMoiA8IHRvXC1naXZlXC1jaGFuZ2U7Civoo5zmtrIgPCBmbHVpZFwtaW5mdXNpb247Civotbfpu54gPCBzdGFydGluZ1wtcG9pbnQ7CivlsLHmmK/oqqogPCBpblwtb3RoZXJcLXdvcmRzOwor5aCx5YiGIDwgY2FsbFwtdGhlXC1zY29yZTsKK+aVmeiCsueVjCA8IGFjYWRlbWljXC13b3JsZDsKK+aMuueriyA8IHRvXC1zdGFuZFwtZXJlY3Q7CivkuI3lubPnrYnmop3ntIQgPCB1bmVxdWFsXC10cmVhdHk7CivlhavmiJAgPCBlaWdodHlcLXBlcmNlbnQ7CivlhanmiYsgPCBkb3VibGVcLXRhY3RpY3M7CivntZwgPCBhXC1tYXJraW5nXC1saW5lOwor5o6h5rK5IDwgb2lsXC1leHRyYWN0aW9uOwor57S+IDwgdHVybnNcLW9yXC10d2lzdDsKK+ezuiA8IHRvXC1jb2xsYWJvcmF0ZTsKK+i3qOi2iiA8IHRvXC1zdGVwXC1hY3Jvc3M7Civot5HpgZMgPCBhdGhsZXRpY1wtdHJhY2s7CivkuI3mlaLnlbYgPCB5b3VcLWZsYXR0ZXJcLW1lOwor57GrIDwgYmFtYm9vXC11dGVuc2lsOwor562sIDwgcmVlZFwtb2ZcLWFcLWxvb207CivllpjkuI3pgY7msKPkvoYgPCBjYW5ub3RcLWJyZWF0aGU7Civmj6Hmi7MgPCB0b1wtbWFrZVwtYVwtZmlzdDsKK+WJr+e4vee1sSA8IHZpY2VcLXByZXNpZGVudDsKK+eUmuiHs+aWvCA8IHNvXC1tdWNoXC1cKHRoYXRcKTsKK+aPoeaJiyA8IHRvXC1zaGFrZVwtaGFuZHM7CivnqK0gPCBzdGFsa1wtb2ZcLWdyYWluOwor57K+5bmyIDwgY3JhY2tcLVwodHJvb3BzXCk7CivplbflvoEgPCB0aGVcLWxvbmdcLW1hcmNoOwor55eF55ebIDwgc2xpZ2h0XC1pbGxuZXNzOwor5LiN5bmz6KGhIDwgZGlzZXF1aWxpYnJpdW07CivnoKIgPCBwaWxlXC1vZlwtc3RvbmVzOwor55+JIDwgYW5cLWFuZ3J5XC1nbGFyZTsKK+edsSA8IHRvXC1nYXplXC1zbG93bHk7Civnna8gPCB0b1wtYmVcLWFnb25pemVkOwor6Iux5a+4IDwgXChlbmdsaXNoXClcLWluY2g7CivnnKMgPCBwcm9taW5lbnRcLWV5ZXM7CivmjqHmlLbnjocgPCByZWNvdmVyeVwtcmF0aW87Civoh6rnlLHljJYgPCBsaWJlcmFsaXphdGlvbjsKK+aomeWwuiA8IHN1cnZleW9yJydzXC1yb2Q7CivolqnpgZTlp4bkvq/os73lm6AgPCBzYWRkYW1cLWh1c3NlaW47CivnkrggPCBqYWRlJydzXC1zdHJlYWtzOwor55KYIDwgbHVzdGVyXC1vZlwtamFkZTsKK+Wwh+i7jSA8IFwoYXJteVwpXC1nZW5lcmFsOwor546lIDwgbXlzdGVyaW91c1wtZ2VtOwor54uoIDwgaGFwYWxlXC1qYWNjaHVzOwor5YWp5ZyLIDwgYm90aFwtY291bnRyaWVzOwor5YWo5ZyLIDwgZW50aXJlXC1jb3VudHJ5Owor54qoIDwgcGFudGluZ1wtb2ZcLWNvdzsKK+S4jemBqeeUqCA8IG5vdFwtYXBwbGljYWJsZTsKK+S9huS7peeQhuabuCA8IGJvb2tcLW9mXC1kYW5pZWw7Civnh4kgPCBoZWF0XC13aXRoXC1maXJlOwor54eAIDwgdG9cLW1ha2VcLWFcLWZpcmU7CivnhokgPCBcKHllbGxvd1wtY29sb3JcKTsKK+i8qeWtkCA8IGFsbFwtb25lJydzXC1saWZlOwor6ZW35Z+OIDwgdGhlXC1ncmVhdFwtd2FsbDsKK+ihqOaxuiA8IGRlY2lkZVwtYnlcLXZvdGU7CivmiJDpg70gPCBjaGVuZ2R1XC1cKGNpdHlcKTsKK+mspeaZuiA8IGJhdHRsZVwtb2ZcLXdpdHM7CivlhavljYMgPCBlaWdodFwtdGhvdXNhbmQ7CivmupsgPCB0b1wtZm9ybVwtaG9sbG93Owor5rmxIDwgc291bmRcLW9mXC13YXRlcjsKK+aNt+WFi+WFseWSjOWciyA8IGN6ZWNoXC1yZXB1YmxpYzsKK+eXheattyA8IG1lZGljYWxcLXJlY29yZDsKK+a4oiA8IHBsZWFzYW50XC1zb3VuZDsKK+a2rCA8IHdhdGVyeVwtZXhwYW5zZTsKK+ewoeWWruWMliA8IHNpbXBsaWZpY2F0aW9uOwor5Ly46ZaLIDwgdG9cLXN0cmV0Y2hcLW91dDsKK+a0vyA8IHN0YWduYW50XC13YXRlcjsKK+i/q+S4jeW+l+W3siA8IGhhdmVcLW5vXC1jaG9pY2U7CivoqZXlg7nliIbpoZ4gPCByYW5rXCxcLWNsYXNzaWZ5Owor5rOCIDwgY2xlYXJcLWFuZFwtZGVlcDsKK+a8lOekuiA8IHRvXC1kZW1vbnN0cmF0ZTsKK+aytyA8IHRvXC1yZW1vdmVcLWV2aWw7Civlvp7kuovnoJTnqbYgPCB0b1wtZG9cLXJlc2VhcmNoOwor5q6tIDwgYVwtc3RpZmZcLWNvcnBzZTsKK+S7peizveS6nuabuCA8IGJvb2tcLW9mXC1pc2FpYWg7Civpub3muZbln44gPCBzYWx0XC1sYWtlXC1jaXR5Owor5qqWIDwgd2lsZFwtcGVhclwtdHJlZTsKK+apvyA8IHF1ZXJjdXNcLWdsYXVjYTsKK+WCs+aSrSA8IHRvXC1kaXNzZW1pbmF0ZTsKK+WFpeS8jSA8IGVudGVyXC10aGVcLWFybXk7Civpppbpg70gPCBjYXBpdGFsXC1cKGNpdHlcKTsKK+amviA8IHBpZWNlc1wtb2ZcLXdvb2Q7CivmpqAgPCBjaGluZXNlXC1xdWluY2U7CivmppYgPCBwYXBlclwtbXVsYmVycnk7CivmpKogPCBtYWNoaWx1c1wtbmFubXU7CivmvZTmt6ggPCBjbGVhbnNlXC1cKHNpbnNcKTsKK+ajkCA8IHNwZWNpZXNcLW9mXC15ZXc7CivmooogPCBzcXVlZXplXC1vdXRcLW9mOwor5Y2K5pW45Lul5LiKIDwgbW9yZVwtdGhhblwtaGFsZjsKK+afviA8IHN0cmFpZ2h0XC1ncmFpbjsKK+afgyA8IGV1cnlhXC1qYXBvbmljYTsKK+iIjOaguSA8IGJhY2tcLW9mXC10b25ndWU7CivmqpTmoYjlsazmgKcgPCBmaWxlXC1hdHRyaWJ1dGU7Civmm48gPCBvbmNlXC11cG9uXC10aW1lOwor6KGM5pS/IDwgYWRtaW5pc3RyYXRpb247CivooYDoo73lk4EgPCBibG9vZFwtcHJvZHVjdHM7CivmmaIgPCBsaWdodFwtb2ZcLXN0YXJzOwor5bCP6IGyIDwgaW5cLWFcLWxvd1wtdm9pY2U7CivmmLAgPCB2YXJcLW9mXC0nJ3RvXC1iZScnOwor56+h5pS5IDwgdG9cLXRhbXBlclwtd2l0aDsKK+aIquiHsyA8IHVwXC10b1wtXChhXC10aW1lXCk7CivmlIIgPCB0b1wtYmVhdFwtYVwtZHJ1bTsKK+i1t+iNiSA8IGRyYWZ0XC1cKGFcLWJpbGxcKTsKK+aMqOaJkyA8IHRha2VcLWFcLWJlYXRpbmc7CivlsaTnkIYgPCBzdHJhdGlmaWNhdGlvbjsKK+eQg+meiyA8IGF0aGxldGljXC1zaG9lczsKK+mNi+iyvCA8IGZyaWVkXC1kdW1wbGluZzsKK+WHuemdoumPoSA8IGNvbmNhdmVcLW1pcnJvcjsKK+aOiOWRvSA8IHRvXC1naXZlXC1vcmRlcnM7Civplovlv4PmnpwgPCBwaXN0YWNoaW9cLW51dHM7Civlvp7kvobmspLmnIkgPCBoYXZlXHxoYXNcLW5ldmVyOwor5Lul5pav5biW6KiYIDwgYm9va1wtb2ZcLWVzdGhlcjsKK+acgOS9s+WIqeebiiA8IGJlc3RcLWludGVyZXN0czsKK+S4lueVjOiqniA8IHdvcmxkXC1sYW5ndWFnZTsKK+aDoeaAp+W+queSsCA8IHZpY2lvdXNcLWNpcmNsZTsKK+aguOiDvSA8IG51Y2xlYXJcLWVuZXJneTsKK+a1rum7niA8IGZsb2F0aW5nXC1wb2ludDsKK+W5sSA8IG9mZmljaWFsXC1kcmVzczsKK+S4jeecgeS6uuS6iyA8IGJlXC11bmNvbnNjaW91czsKK+W3nyA8IGFcLXdhdGVyeVwtd2FzdGU7Civnmb7nhKHogYros7QgPCBib3JlZFwtdG9cLWRlYXRoOwor6KGM5pif6ZqbIDwgaW50ZXJwbGFuZXRhcnk7CivkuK3lv4Poqp4gPCBxdWFsaWZpZWRcLXdvcmQ7Civlj4PorIDplbcgPCBjaGllZlwtb2ZcLXN0YWZmOwor6Ieq5b6eIDwgc2luY2VcLVwoYVwtdGltZVwpOwor5qOE5qu7IDwgYWJhbmRvbmVkXC1iYWJ5Owor55Si5qyKIDwgcHJvcGVydHlcLXJpZ2h0Owor6b2S6LyqIDwgXChtYWNoaW5lXClcLWdlYXI7CivkvrXniq8gPCB0b1wtaW5mcmluZ2VcLW9uOwor6Yar5a245Lit5b+DIDwgbWVkaWNhbFwtY2VudGVyOwor6KGA5aOTIDwgYmxvb2RcLXByZXNzdXJlOwor6YyE5YOP5qmfIDwgdmlkZW9cLXJlY29yZGVyOwor5aGVIDwgYVwtZ3VzdFwtb2ZcLXdpbmQ7Civln4cgPCBuYW1lXC1vZlwtYnJpZGdlOwor5YWJ5L+h6JmfIDwgb3B0aWNhbFwtc2lnbmFsOwor57ac5ZCI5aCx5bCOIDwgc3VtbWFyeVwtcmVwb3J0Owor5Zm5IDwgc291bmRcLW9mXC1iZWxsczsKK+WYkyA8IGd1cmdsaW5nXC1zb3VuZDsKK+a4m+iCpSA8IHRvXC1sb3NlXC13ZWlnaHQ7Civku6PooaggPCByZXByZXNlbnRhdGl2ZTsKK+Wkp+WQjOWwj+eVsCA8IGFsbW9zdFwtc2ltaWxhcjsKK+WVjCA8IGFuaW1hbFwtZGlzZWFzZTsKK+eVq+WxlSA8IGFydFwtZXhoaWJpdGlvbjsKK+eUn+aViCA8IHRvXC10YWtlXC1lZmZlY3Q7CivmoLjmrablmaggPCBudWNsZWFyXC13ZWFwb247CivpgZTkuI3liLAgPCBjYW5ub3RcLWFjaGlldmU7CivmiY3msKMgPCBsaXRlYXJ5XC10YWxlbnQ7CivljoMgPCB0b1wtbG9va1wtdXB3YXJkOwor5Y2tIDwgaGlnaFwuXC10b1wtcmFpc2U7CivljYIgPCB0b1wtZmx5XC1yYXBpZGx5Owor5Y2R6Lqs5bGI56+AIDwgYm93XC1hbmRcLXNjcmFwZTsKK+aBreizgOaWsOempyA8IGhhcHB5XC1uZXdcLXllYXI7CivlsIjmrIQgPCBzcGVjaWFsXC1jb2x1bW47CivlrbjnsY0gPCBzY2hvb2xcLXJvbGxcKHNcKTsKK+emgemjnyA8IGZhc3RcLVwobm90XC1lYXRcKTsKK+WFi+ael+mgkyA8IFwoYmlsbFwpXC1jbGludG9uOwor5LyVIDwgY29tbW9uXC1sYWJvcmVyOwor5LqHIDwga3d1a3llbFwtaGFtbWVyOwor5LaUIDwgcHJvbWluZW50XC1ndW1zOwor5LaQIDwgdG9cLXRha2VcLWJyZWF0aDsKK+S2gCA8IHNvdW5kXC1vZlwtZHJ1bXM7CivktbYgPCBhXC1raW5kXC1vZlwtZnJvZzsKK+S1jCA8IHJlZGRpc2hcLXllbGxvdzsKK+S0tCA8IGFcLWtpbmRcLW9mXC1jYWtlOwor5LSpIDwgYVwta2luZFwtb2ZcLWRlZXI7CivktJggPCBhXC1raW5kXC1vZlwtYmlyZDsKK+SzuCA8IHRoZVwtd2lsZFwtZ29vc2U7Civks6sgPCBhXC1zbWFsbFwtcGlnZW9uOwor5LKiIDwgYVwta2luZFwtb2ZcLWZpc2g7Civmn5DnqK4gPCBzb21lXC1raW5kXC1cKG9mXCk7CivksLkgPCB0aGVcLWN1dHRsZWZpc2g7CivksLQgPCBhXC13YWZ0aW5nXC1maXNoOwor5LChIDwgYVwtZmllcmNlXC1naG9zdDsKK+Wwh+acgyA8IHdpbGxcLFwtZ29pbmdcLXRvOwor5K+bIDwgdGhlXC1rbmVlXC1ib25lczsKK+SuuSA8IGFuXC1hbmdyeVwtaG9yc2U7Civkrq4gPCBhXC1raW5kXC1vZlwtbXVsZTsKK+StuyA8IGFcLXN3aWZ0eVwtaG9yc2U7Civkra0gPCB0aGVcLWVsZGVzdFwtc29uOwor5K2pIDwgdG9cLWZlZWRcLWFcLWJhYnk7CivliY3nlJ/lj6zllpogPCBmb3Jlb3JkaW5hdGlvbjsKK+StgSA8IHN0aW5raW5nXC1zbWVsbDsKK+SsuiA8IHNhbWVcLWFzXC11XCs0YjUwOwor5KyYIDwgdGhlXC13aW5kXC1ibG93czsKK+SskiA8IHRvXC1ibG93XC1jaGlsbHk7CivosY7otbcgPCBob2xkXC11cFwtXChoaWdoXCk7CivntrLpmpvpm7voqbEgPCBpbnRlcm5ldFwtcGhvbmU7Civkq6sgPCBodW1hblwtc2tlbGV0b247CivkqrwgPCB0aGVcLWNoZWVrXC1ib25lOwor5KqIIDwgYVwtbGVhdGhlclwtYmVsdDsKK+SpkCA8IHRpZVwtaXRcLXRpZ2h0bHk7CivkqKUgPCBhXC1wb3VyaW5nXC1yYWluOwor5KenIDwgaGlnaFwtbW91bnRhaW5zOwor5a+25pu4IDwgdHJlYXN1cmVkXC1ib29rOwor5Ka6IDwgbmFtZVwtb2ZcLWFcLWhpbGw7CivkpqQgPCBzZWVkXC1vZlwtZ3JhaW5zOwor5KaRIDwgd2l0aG91dFwtYVwtZG9vcjsKK+SmjyA8IHdpbmdcLW9mXC1hXC1kb29yOwor6IGW6KqV56+AIDwgY2hyaXN0bWFzXC10aW1lOwor5KSWIDwgYVwta2luZFwtb2ZcLXdpbmU7Civko44gPCBuYW1lXC1vZlwtY291bnR5Owor55m95Luk5rW3IDwgdGhlXC1iZXJpbmdcLXNlYTsKK+SiqCA8IHRvXC13YWxrXC1zbG93bHk7Civkob4gPCBoaWdoXC1jYXJ0bG9hZHM7CivkobIgPCByaW1cLW9mXC1hXC13aGVlbDsKK+aRqemWgOe2kyA8IGJvb2tcLW9mXC1tb3Jtb247CivkoYkgPCBhXC1raW5kXC1vZlwtY2FydDsKK+iYi+aenOmbu+iFpiA8IGFwcGxlXC1jb21wdXRlcjsKK+ScvSA8IGFcLWtpbmRcLW9mXC1iZWFuOwor5JycIDwgd29yZHNcLW9mXC1hbmdlcjsKK+SboCA8IHVuYWJsZVwtdG9cLXRhbGs7CivlkIPpqZogPCB0b1wtYmVcLXN0YXJ0bGVkOwor5JqWIDwgbW91bnRhaW5cLWRlaXR5Owor5JqEIDwgdG9cLW1ha2VcLWZ1blwtb2Y7CivkmbMgPCBzcGl0aW5nXC1mbGFtZXM7CivkmaYgPCB1cHBlclwtZ2FybWVudHM7CivkmKIgPCBvbGRcLWFuZFwtc2hhYmJ5Owor5Je3IDwgYVwta2luZFwtb2ZcLXdhc3A7Civkl6ogPCBhXC1raW5kXC1vZlwtd29ybTsKK+SXmiA8IGVnZ3NcLW9mXC1tYW50aXM7Civkl5IgPCBhXC1raW5kXC1vZlwtY2xhbTsKK+SWsCA8IGFcLWtpbmRcLW9mXC1nbmF0Owor5pKe5pOK5byP5Y2w6KGo5qmfIDwgaW1wYWN0XC1wcmludGVyOwor5JWaIDwgYVwtc3RyYXdcLWJhc2tldDsKK+SUlSA8IGNoaWNrZW5cLWJyZWFzdDsKK+SUiyA8IGFcLWtpbmRcLW9mXC10cmVlOwor5bCO5b2IIDwgZ3VpZGVkXC1taXNzaWxlOwor5JSCIDwgdmVnZXRhYmxlXC1zb3VwOwor5riF54i9IDwgZnJlc2hcLWFuZFwtY29vbDsKK+SToSA8IGFcLW1lZGljYWxcLWhlcmI7CivkkpMgPCB0b1wtZG9cLXZpb2xlbmNlOwor5JKHIDwgbmFtZVwtb2ZcLWFcLXNoaXA7CivkkoUgPCBiZWF1dGlmdWxcLWV5ZXM7CivkkbYgPCBzcHJpZ2h0bHlcLWJvYXQ7CivkkasgPCB0b29sc1wtZm9yXC1ib2F0Owor5JGjIDwgYVwtc2FpbGluZ1wtYm9hdDsKK+SRnCA8IHRvXC1lYXRcLWhlYXZpbHk7CivkupLoga8gPCBpbnRlcmNvbm5lY3RlZDsKK+SQlSA8IG9pbFwtYW5kXC1ncmVhc2U7CivkkI0gPCBleGNlbGxlbnRcLWZvb2Q7CivkjaEgPCBzbWFsbFwtZmlzaFwtbmV0Owor5I2RIDwgYVwtbmV0XC1vclwtc25hcmU7CivkjY0gPCB1bmJ1cm50XC1icmlja3M7CivllLHniYcgPCBcKHZpbnlsXClcLXJlY29yZDsKK+SMtSA8IGxhcGVsXC1hbmRcLWJlbHQ7CivkjLAgPCBjb25uZWN0ZWRcLXNpbGs7CivkjKUgPCB0b1wtc2V3XC1jbG90aGVzOwor5IyhIDwgdG9cLXdpbmRcLWFyb3VuZDsKK+S6jOiAhSA8IGJvdGhcLVxbb2ZcLXRoZW1cXTsKK+SLvSA8IGhlbXBlblwtc2FuZGFsczsKK+SLryA8IGNydWNpYWxcLXBvaW50czsKK+SLoiA8IHRvXC10d2lzdFwtcm9wZXM7CivkirwgPCBtZWFzdXJpbmdcLXVuaXQ7CivmiY3lrZAgPCBnaWZ0ZWRcLXNjaG9sYXI7CivkvrXlrrMgPCB0b1wtZW5jcm9hY2hcLW9uOwor5IqoIDwgc3RvcmluZ1wtZ3JhaW5zOwor5Ii3IDwgYVwtYmFtYm9vXC1mZW5jZTsKK+SImiA8IGFcLWJhbWJvb1wtc2hvb3Q7CivkuI3ohJvogIzotbAgPCBnZXRcLXJvdW5kXC1mYXN0Owor5IerIDwgYmFtYm9vXC1zcGxpbnRzOwor5IeFIDwgdG9cLXN0YW5kXC1zdGlsbDsKK+S4iei8qui7iuS8lSA8IHBlZGljYWJcLWRyaXZlcjsKK+WvtuW6qyA8IHRyZWFzdXJlXC1ob3VzZTsKK+S/neWWriA8IGd1YXJhbnRlZVwtc2xpcDsKK+mjvee2k+miqOmcnCA8IHdlYXRoZXJcLWJlYXRlbjsKK+SFpSA8IHJpcGVuaW5nXC1jcm9wczsKK+Wwj+WtuCA8IHByaW1hcnlcLXNjaG9vbDsKK+S7lOeVnCA8IG5ld2Jvcm5cLWFuaW1hbDsKK+SDuSA8IGphZGVcLWFuZFwtc3RvbmU7Civkg6EgPCBhXC1zbWFsbFwtcGViYmxlOwor5pys6ImyIDwgbmF0dXJhbFwtY29sb3VyOwor5IOPIDwgYVwta2luZFwtb2ZcLXJvY2s7Civkg4wgPCByb2NreVwtbW91bnRhaW47CivkvoblvoAgPCB0b1wtY29tZVwtYW5kXC1nbzsKK+SCjCA8IGFcLXNob3J0XC13ZWFwb247Civlhajlv4PlhajmhI8gPCBoZWFydFwtYW5kXC1zb3VsOwor5IGkIDwgbW9pc3RlbmVkXC1leWVzOwor5IGPIDwgZmFyc2lnaHRlZG5lc3M7CivkgLogPCBzcXVpbnRpbmdcLWV5ZXM7Civlt6Xmpa3nmoTlt6jpoK0gPCBpbmR1c3RyeVwtbW9nb2w7CivjvaYgPCByZWNsYWltZWRcLWxhbmQ7CivjvaUgPCBmZXJ0aWxlXC1maWVsZHM7CivjvYsgPCBhXC1raW5kXC1vZlwtdGlsZTsKK+O9hCA8IGFuXC1lYXJ0aGVuXC1qYXI7CivpoYzot4sgPCBzaG9ydFwtY29tbWVudHM7CivjuKsgPCBjYXN0cmF0ZWRcLWJ1bGw7CivjuKQgPCBicm9rZW5cLWxlYXRoZXI7CivjuIogPCBmaWVyY2VcLW9mXC1maXJlOwor47agIDwgd2F0ZXJcLWN1cnJlbnRzOwor5LiN6KejIDwgbm90XC11bmRlcnN0YW5kOwor5rOw57Gz54i+6KqeIDwgdGFtaWxcLWxhbmd1YWdlOwor47WYIDwgZ3JlYXRcLWN1cnJlbnRzOwor5oeu5oWuIDwgXChmZWVsXClcLWFueGlldHk7CivjtLggPCBzd2lmdFwtY3VycmVudHM7Civniq/kuI3okZcgPCBub3RcLXdvcnRod2hpbGU7CivjtJkgPCB3YXRlclwtZHJpcHBpbmc7Civjs4MgPCB0b1wtdGVtcGVyXC1pcm9uOwor47KPIDwgZmx5aW5nXC1mZWF0aGVyOwor5L2Z5oK4IDwgbGluZ2VyaW5nXC1mZWFyOwor47GPIDwgdGhlXC1yaWdodFwtc2lkZTsKK+aIkOWwsSA8IGFjY29tcGxpc2htZW50Owor4627IDwgdGhlXC1jcmFiXC1hcHBsZTsKK+S4jeeUqOisnSA8IHlvdScncmVcLXdlbGNvbWU7CivjrY8gPCBhXC1raW5kXC1vZlwtd29vZDsKK+OthCA8IGFcLWtpbmdcLW9mXC10cmVlOwor5a655b+NIDwgdG9cLXB1dFwtdXBcLXdpdGg7Civjq48gPCBhXC1raW5kXC1vZlwtZmxhZzsKK+OrgiA8IHRvXC1jaG9wXC1vclwtY3V0Owor57236KuWIDwgYWJhbmRvbmVkXC1pZGVhOwor5oKj6JmVIDwgYWZmbGljdGVkXC1wYXJ0Owor46iHIDwgdG9cLXN3ZWVwXC1jbGVhbjsKK+OluiA8IHRvXC1ibG93XC1hXC1maXJlOwor5LiN5pyf6ICM6YGHIDwgbWVldFwtYnlcLWNoYW5jZTsKK+OliSA8IGFcLWxpdHRsZVwtYW5ncnk7CivjpYcgPCB0b1wtYmVcLXBlcnZlcnNlOwor46S+IDwgbm90XC1kb2luZ1wtd2VsbDsKK+OkliA8IHRvXC1oYXZlXC13aXNkb207Civjo6YgPCBhXC13aW5kaW5nXC1wYXRoOwor5p625qeLIDwgaW5mcmFzdHJ1Y3R1cmU7CivnqbTmkq0gPCBidW5jaFwtcGxhbnRpbmc7CivljYroh6rli5UgPCBzZW1pXC1hdXRvbWF0aWM7CivjoZwgPCByYWdnZWRcLWNsb3RoZXM7Civmh7flrZUgPCB0b1wtYmVcLXByZWduYW50Owor46CoIDwgbWlzdHlcLW1vdW50YWluOwor46ChIDwgaGlnaFwtYW5kXC1sb2Z0eTsKK+OfvyA8IGhpZ2hcLWFuZFwtc3RlZXA7Civogbfmpa0gPCBqb2JcLW9jY3VwYXRpb247Civlhafokpnlj6QgPCBpbm5lclwtbW9uZ29saWE7CivpgIDkvJHph5EgPCByZXRpcmVtZW50XC1wYXk7CivnlZnoqIDnsL8gPCB2aXNpdG9yJydzXC1ib29rOwor456pIDwgbW91bnRhaW5cLXZhcG9yOwor456XIDwgdGhlXC1tYWxlXC1vcmdhbjsKK+S7u+acnyA8IHRlcm1cLW9mXC1vZmZpY2U7CivjnoogPCB1bmFibGVcLXRvXC13YWxrOwor452wIDwgdW5hYmxlXC10b1wtbWVldDsKK+OdmyA8IGFoYWx0aW5nXC1wbGFjZTsKK+OcpCA8IGZvb2xpbmdcLWFyb3VuZDsKK+OckSA8IGFuXC1vbGRlclwtd29tYW47Civov5HkuY7lkIzmraUgPCBwbGVzaW9jaHJvbm91czsKK+ObqSA8IHNpc3RlcnNcLWluXC1sYXc7Civjm4IgPCB3ZWFrXC1hbmRcLXNtYWxsOwor45qDIDwgdG9cLXRha2VcLWFcLWhpbnQ7CivjmbcgPCBsb3dcLWx5aW5nXC1hcmVhOwor5LiN6IiIIDwgb3V0XC1vZlwtZmFzaGlvbjsKK+OWoiA8IHRvXC1yZWplY3RcLWZvb2Q7CivjlaQgPCBhXC1wcm91ZFwtdGVtcGVyOwor55CD5qOSIDwgXChiYXNlYmFsbFwpXC1iYXQ7CivjlJkgPCBncmVhdFwtc3RyZW5ndGg7CivjkpsgPCB0b1wtc3RhbmRcLWFsb25lOwor45KAIDwgZG9cLW5vdFwtZmVhclwtdG87Civos4fmoLwgPCBxdWFsaWZpY2F0aW9uczsKK+adsea1tyA8IGVhc3RcLWNoaW5hXC1zZWE7CivmrbvkuqHnjocgPCBtb3J0YWxpdHlcLXJhdGU7Civlk6XmnKzlk4jmoLkgPCBjb3BlbmhhZ2VuXC1cP1w/XD87CivmnbHmrZAgPCBlYXN0ZXJuXC1ldXJvcGU7Civku7vmhpEgPCBub1wtbWF0dGVyXC13aGF0Owor5LuK5pydIDwgYXRcLXRoZVwtcHJlc2VudDsKK+S9nOWTgSA8IHdvcmtzXC1cKG9mXC1hcnRcKTsKK+aGi+aCtiA8IGZlZWxcLW9wcHJlc3NlZDsKK+mjvOanvSA8IGZlZWRpbmdcLXRyb3VnaDsKK+itpui7iiA8IHBvbGljZVwtdmVoaWNsZTsKK+WvkuWGtyA8IGNvbGRcLVwoY2xpbWF0ZVwpOwor5ZOI6Kmy5pu4IDwgYm9va1wtb2ZcLWhhZ2dhaTsKK+WuieWlvSA8IHNhZmVcLWFuZFwtc291bmQ7CivmtrLmmbYgPCBsaXF1aWRcLWNyeXN0YWw7Civlj4Pop4AgPCB0b1wtbG9va1wtYXJvdW5kOwor6Zi/5LyP5Ly95b63576F5a6a5b6LIDwgYXZvZ2Fkcm8nJ3NcLWxhdzsKK+aTuuaUpOWtkCA8IHNldFwtdXBcLWFcLXN0YWxsOwor5Y+v6IO9IDwgbWlnaHRcLVwoaGFwcGVuXCk7CivpppblhYggPCBmaXJzdFwtXChvZlwtYWxsXCk7CivnkZ7lo6vkurogPCBzd2lzc1wtXChwZXJzb25cKTsKK+avj+err+WPo+WDueagvCA8IHByaWNlXC1wZXJcLXBvcnQ7CivmtrLmhYsgPCBsaXF1aWRcLVwoc3RhdGVcKTsKK+WtleWppiA8IHByZWduYW50XC13b21hbjsKK+S5mOazlSA8IG11bHRpcGxpY2F0aW9uOwor5beu5LiN5aSaIDwgYWxtb3N0XCxcLW5lYXJseTsKK+WumuWDuSA8IHRvXC1zZXRcLWFcLXByaWNlOwor5ous5byn6KOhIDwgaW5cLXBhcmVudGhlc2VzOwor5pqX566xIDwgY2FtZXJhXC1iZWxsb3dzOwor5rib5YiRIDwgcmVkdWNlXC1wZW5hbHR5Owor55m+57Gz6LO96LeRIDwgMTAwXC1tZXRyZVwtZGFzaDsKK+S/oeiZn+iHuiA8IHNpZ25hbFwtc3RhdGlvbjsKK+S4lueVjOS4iiA8IFwob2ZcLXRoZVwpXC13b3JsZDsKK+iqv+afpeWgseWRiiA8IG1lbW9pclwsXC1yZXBvcnQ7CivlnJPnj6DnrYYgPCBiYWxsXC1wb2ludFwtcGVuOwor5Lit5q2QIDwgY2VudHJhbFwtZXVyb3BlOwor5YWo55CD5rCj5YCZ5Y2H5rqrIDwgZ2xvYmFsXC13YXJtaW5nOwor54qv572qIDwgXChjb21taXRcKVwtY3JpbWU7Civku73lhZIgPCBkZWdyZWVcLFwtZXh0ZW50Owor6LeR6IW/5YWSIDwgdG9cLXJ1blwtZXJyYW5kczsKK+S4jeato+W4uOeLgOazgSA8IGFibm9ybWFsXC1zdGF0ZTsKK+eJueiJsiA8IGNoYXJhY3RlcmlzdGljOwor5Lit5pa3IDwgdG9cLWRpc2NvbnRpbnVlOwor56eV5a2QIDwgYmxpZ2h0ZWRcLWdyYWluOwor5LiW55WM57aT5r+fIDwgZ2xvYmFsXC1lY29ub215Owor5pyJ5b6FIDwgbm90XC15ZXRcLVwoZG9uZVwpOwor6aGM5p2QIDwgc3ViamVjdFwtbWF0dGVyOwor56Sm5rOJIDwgbWluZXJhbFwtc3ByaW5nOwor6YCa55So5rG96LuKIDwgZ2VuZXJhbFwtbW90b3JzOwor5q+b6KGjIDwgXCh3b29sXClcLXN3ZWF0ZXI7Civosqzku7sgPCByZXNwb25zaWJpbGl0eTsKK+WMl+S6rOmAseWgsSA8IGJlaWppbmdcLXJldmlldzsKK+WNiuiBtyA8IHBhcnRcLXRpbWVcLXdvcms7Civms6Lni4DnhrEgPCB1bmR1bGFudFwtZmV2ZXI7Civpoa/lvpcgPCBhcHBlYXJcLVwodG9cLWJlXCk7CivkuI3lv40gPCBjYW5ub3RcLWJlYXJcLXRvOwor55+l6K2Y5bqrIDwga25vd2xlZGdlXC1iYXNlOwor5rqQ6bue5Zyw5Z2AIDwgc291cmNlXC1hZGRyZXNzOwor6YCZ5qyh5Y2x5qmfIDwgcHJlc2VudFwtY3Jpc2lzOwor5aSa5bel6YGL5L2cIDwgbXVsdGl0aHJlYWRpbmc7Civlqr3lkqogPCBtdW1teVwtXChtb3RoZXJcKTsKK+azouaBqSA8IGJvbm5cLVwoZ2VybWFueVwpOwor5pWX6Ki0IDwgbG9zZVwtYVwtbGF3c3VpdDsKK+mbu+S/oeWxgCA8IGNlbnRyYWxcLW9mZmljZTsKK+WjveihoyA8IGJ1cmlhbFwtY2xvdGhlczsKK+ilv+WNl+S6niA8IHNvdXRod2VzdFwtYXNpYTsKK+S6jOawp+WMlueisyA8IGNhcmJvblwtZGlveGlkZTsKK+aTuumQmCA8IHBlbmR1bHVtXC1jbG9jazsKK+aSpeiZn+ebpCA8IHRlbGVwaG9uZVwtZGlhbDsKK+WMl+e3ryA8IG5vcnRoXC1sYXRpdHVkZTsKK+WPiuagvCA8IHRvXC1wYXNzXC1hXC10ZXN0Owor5rOV5bqtIDwgY291cnRcLVwob2ZcLWxhd1wpOwor6YCZ6aGeIDwgdGhpc1wta2luZFwtXChvZlwpOwor57ay57Wh6Kit6KiIIDwgbmV0d29ya1wtZGVzaWduOwor5b6M5YWp6ICFIDwgdGhlXC1sYXR0ZXJcLXR3bzsKK+S4u+S/riA8IFwoc2Nob29sXClcLW1ham9yOwor6K6K5oiQIDwgdG9cLWNoYW5nZVwtaW50bzsKK+W7oOemruaLnCA8IGRheVwtb2ZmXC1cKHdvcmtcKTsKK+S4jeWQiCA8IG5vdFwtY29uZm9ybVwtdG87CivplovmlL7lvI/ns7vntbEgPCBvcGVuXC1zeXN0ZW1cKHNcKTsKK+aWkeeruSA8IG1vdHRsZWRcLWJhbWJvbzsKK+S4jeWPiiA8IG5vdFwtYXNcLWdvb2RcLWFzOwor5YiG6aGeIDwgY2xhc3NpZmljYXRpb247Civlhannmb7lhIQgPCB0d2VudHlcLWJpbGxpb247CivnhKHpgKPmjqUgPCBjb25uZWN0aW9ubGVzczsKK+mHjeW7uiA8IHJlY29uc3RydWN0aW9uOwor54yc6KyO5YWSIDwgZ3Vlc3NcLWFcLXJpZGRsZTsKK+iri+eciyA8IHBsZWFzZVwtc2VlXC1cLlwuXC47CivkupTlubToqIjlioMgPCBmaXZlXC15ZWFyXC1wbGFuOwor5rCr5rCjIDwgaHlkcm9nZW5cLVwoZ2FzXCk7CivluILloLTntpPmv58gPCBtYXJrZXRcLWVjb25vbXk7CivmqpTmoYjln7fooYwgPCBmaWxlXC1leGVjdXRpb247CivkupLli5Xpm7voppYgPCBpbnRlcmFjdGl2ZVwtdHY7Civnvo7lt67kuosgPCBhXC10ZXJyaWZpY1wtam9iOwor5pW456iuIDwgbnVtZXJvdXNcLXR5cGVzOwor5Yaw6bueIDwgZnJlZXppbmdcLXBvaW50Owor5q2Q5rSy6IGv55ufIDwgZXVyb3BlYW5cLXVuaW9uOwor6I+v6KOUIDwgZXRobmljXC1jaGluZXNlOwor5LiN5LuBIDwgbm90XC1iZW5ldm9sZW50Owor5pS26IG9IDwgdG9cLWxpc3RlblwtXCh0b1wpOwor57uPIDwgY2xhc3NpY1wtd29ya3M7CivlvJ8gPCB5b3VuZ1wtYnJvdGhlcjsKK+W7uyA8IGNpcmNsZVwtYXJvdW5kOwor5YWzIDwgZnJvbnRpZXJcLXBhc3M7CivluJ0gPCBzdXByZW1lXC1ydWxlcjsKK+eVqiA8IHRvXC10YWtlXC10dXJuczsKK+eVpSA8IGFwcHJveGltYXRlbHk7CivlhbEgPCB0b2dldGhlclwtd2l0aDsKK+S5iSA8IHJpZ2h0XC1jb25kdWN0Owor5auCIDwgc2lzdGVyXC1pblwtbGF3Owor5ZOlIDwgZWxkZXJcLWJyb3RoZXI7CivlqaYgPCBtYXJyaWVkXC13b21lbjsKK+iooyA8IHRha2VcLWxlYXZlXC1vZjsKK+aXjyA8IGFcLWZhbWlseVwtY2xhbjsKK+WlqiA8IHRha2VcLWJ5XC1mb3JjZTsKK+eslCA8IHdyaXRpbmdcLWJydXNoOwor6KK3IDwgbGluZWRcLWdhcm1lbnQ7CivngKwgPCBzd2lmdFwtY3VycmVudDsKK+S8ryA8IG9sZGVyXC1icm90aGVyOwor5ryyIDwgcmlzZVwtaW5cLXByaWNlOwor56S8IDwgc29jaWFsXC1jdXN0b207CivlmKkgPCBydXNoaW5nXC1zb3VuZDsKK+WVoyA8IGhvbGRcLWluXC1tb3V0aDsKK+aziiA8IGFuY2hvclwtdmVzc2VsOwor5rK/IDwgZm9sbG93XC1jb3Vyc2U7CivlkoQgPCBub2lzZVwtb2ZcLXJhZ2U7Civoj4ogPCBjaHJ5c2FudGhlbXVtOwor5bKzIDwgbW91bnRhaW5cLXBlYWs7CivljLkgPCBib2x0XC1vZlwtY2xvdGg7CivpoocgPCBsZWFuXC1vbmVcLXNpZGU7CivmmaggPCBlYXJseVwtbW9ybmluZzsKK+aSniA8IGtub2NrXC1hZ2FpbnN0Owor5oSIIDwgbW9yZVwtYW5kXC1tb3JlOwor5qeHIDwgdGlwXC1vZlwtYVwtdHJlZTsKK+mnhSA8IHJlbGF5XC1zdGF0aW9uOwor6aWFIDwgc3RlYW1lZFwtYnJlYWQ7CivngrggPCB0b1wtZnJ5XC1pblwtb2lsOwor6ISIIDwgYmxvb2RcLXZlc3NlbHM7Civnu6ogPCBlbmRcLW9mXC10aHJlYWQ7Civpo7wgPCByYWlzZVwtYW5pbWFsczsKK+aikyA8IGNhdGFscGFcLW92YXRhOwor6IKMIDwgbXVzY2xlXC10aXNzdWU7CivkvakgPCBiZWx0XC1vcm5hbWVudDsKK+e9siA8IHB1YmxpY1wtb2ZmaWNlOwor5pCtIDwgam9pblwtdG9nZXRoZXI7CivmoJcgPCBjaGVzdG51dFwtdHJlZTsKK+ahkSA8IG11bGJlcnJ5XC10cmVlOwor6Z6EIDwgdG9cLXdvcmtcLWhpZGVzOwor5p2TIDwgaGFuZGxlXC1vZlwtY3VwOwor5L2DIDwgdGVuYW50XC1mYXJtZXI7CivotKEgPCBvZmZlclwtdHJpYnV0ZTsKK+abhyA8IGJlY29tZVwtY2xvdWR5Owor5LqZIDwgZXh0ZW5kXC1hY3Jvc3M7Civor54gPCBiZWFyXC1jaGlsZHJlbjsKK+aZtCA8IGNsZWFyXC13ZWF0aGVyOwor5aGRIDwgbW9kZWxcLWluXC1jbGF5Owor5rWmIDwgYmFua1wtb2ZcLXJpdmVyOwor57GUIDwgYmFtYm9vXC1iYXNrZXQ7CivmhY4gPCBhY3RcLXdpdGhcLWNhcmU7CivojokgPCB3aGl0ZVwtamFzbWluZTsKK+aNlyA8IG1ha2VcLXByb2dyZXNzOwor5aGMIDwgZmFsbFwtaW5cLXJ1aW5zOwor56uWIDwgcGVycGVuZGljdWxhcjsKK+mZlSA8IG1vdW50YWluXC1wYXNzOwor5oOaIDwgYWJzZW50XC1taW5kZWQ7Civmt4AgPCBzaGFsbG93XC13YXRlcjsKK+a3mCA8IHdhc2hcLWluXC1zaWV2ZTsKK+eRsCA8IGV4dHJhb3JkaW5hcnk7CivlnqsgPCBhZHZhbmNlXC1tb25leTsKK+eBtiA8IGtpdGNoZW5cLXJhbmdlOwor5q+TIDwgZ2l2ZVwtYmlydGhcLXRvOwor5ZKnIDwgc3RyZXRjaFwtbW91dGg7CivlpY4gPCBzdHJpZGVcLW9mXC1tYW47CivmtL0gPCB0b1wtYmxlbmRcLXdpdGg7CivnkbYgPCBwcmVjaW91c1wtamFkZTsKK+mSsCA8IHJhcmVcLXRyZWFzdXJlOwor55GbIDwgbHVzdGVyXC1vZlwtZ2VtOwor5q6JIDwgZGllXC1mb3JcLWNhdXNlOwor5ZSsIDwgdG9cLWludGltaWRhdGU7CivnmKogPCBzaHJpdmVsbGVkXC11cDsKK+WUhiA8IG1ha2VcLW1pc2NoaWVmOwor5bKaIDwgbW91bnRhaW5cLW1pc3Q7CivmoaYgPCB0eXBlXC1vZlwtYmlyY2g7Civmtp8gPCBmbG93aW5nXC13YXRlcjsKK+mjlSA8IHNvdW5kXC1vZlwtd2luZDsKK+WdtyA8IGNsb2RcLW9mXC1lYXJ0aDsKK+mRqyA8IHVzZWRcLWluXC1uYW1lczsKK+esiyA8IGJhbWJvb1wtc2hvb3RzOwor6I2DIDwgYXJvbWF0aWNcLWhlcmI7CivppoQgPCBkdW1wbGluZ1wtc291cDsKK+epuSA8IGhpZ2hcLWFuZFwtdmFzdDsKK+W8iCA8IGNoaW5lc2VcLWNoZXNzOwor6amuIDwgY2FycnlcLW9uXC1iYWNrOwor6IqlIDwgbXVzdGFyZFwtcGxhbnQ7CivngpwgPCBicmlsbGlhbnRcLXJlZDsKK+WynCA8IHJvY2tcLW1vdW50YWluOwor57qrIDwgdGhyZWFkXC1uZWVkbGU7CivmoYAgPCBjaGlja2VuXC1yb29zdDsKK+aLriA8IGxhYm9yaW5nXC1oYXJkOwor57qlIDwgaW5mZXJpb3JcLXNpbGs7Civlv6QgPCBpbnN1Ym9yZGluYXRlOwor6bi+IDwgZmFidWxvdXNcLWJpcmQ7CivlmIEgPCB0b1wtYmVcLWdyaWV2ZWQ7Civovo4gPCBhXC1zdXBwbHlcLWNhcnQ7CivoiqsgPCBkYXBobmVcLWdlbmt3YTsKK+S8pyA8IHZ1bGdhclwtcGVyc29uOwor5rOgIDwgbmljZVwtYW5kXC1jb29sOwor57i7IDwgaGFsdGVyXC1mb3JcLW94Owor6Li9IDwgdG9cLXdhbGtcLWFsb25lOwor6LWtIDwgcmVkZGlzaFwtYnJvd247CivpooAgPCB0YWxsXC1hbmRcLXNsaW07Civmn5ggPCBhXC10aG9ybnlcLXRyZWU7CivosJQgPCBob25lc3RcLXNwZWVjaDsKK+mqkyA8IHBpZWJhbGRcLWhvcnNlOwor5bSnIDwgaGlnaFwtbW91bnRhaW47CivphZogPCBjYXJib2xpY1wtYWNpZDsKK+WkpCA8IGRpc3RhbnRcLXBsYWNlOwor5pqMIDwgaW5cLW9wcG9zaXRpb247CivmgI0gPCB0b1wtYmVcLWFzaGFtZWQ7CivotL0gPCBnaWZ0XC1zdXBlcmlvcjsKK+avliA8IGd1YXJkXC1hZ2FpbnN0Owor6L+TIDwgdG9cLWdvXC10b1wtbWVldDsKK+avtSA8IGxvbmdcLWZlYXRoZXJzOwor552aIDwgY29ybmVyXC1vZlwtZXllOwor5q+9IDwgYVwtc2h1dHRsZWNvY2s7Civlg7MgPCBtaW5vcml0eVwtbmFtZTsKK+i+jyA8IGh1YnNcLW9mXC13aGVlbDsKK+aXhiA8IGZsYWdcLW9ybmFtZW50Owor6I2HIDwgYVwtd2F0ZXJcLXBsYW50Owor5Y2uIDwgbWVhc3VyaW5nXC1jdXA7Civpq6EgPCB0b1wtc2hlYXJcLXRyZWU7Civps5wgPCBtYW5kYXJpblwtZmlzaDsKK+m8jSA8IGxhcmdlXC1yZXB0aWxlOwor56yrIDwgcGxhbmtzXC1vZlwtYmVkOwor57yhIDwgYVwtYnJpZGFsXC12ZWlsOwor57uoIDwgY29hcnNlXC1wb25nZWU7CivoirAgPCB3YXRlclwtY2FsdHJvcDsKK+mtgyA8IGRyb3VnaHRcLWRlbW9uOwor6IizIDwgc3Rlcm5cLW9mXC1zaGlwOwor5bGmIDwgc3RyYXdcLXNhbmRhbHM7Civok5AgPCBzdHJhd1wtYmVkXC1tYXQ7Civpio4gPCBleWVcLW9mXC1hblwtYXhlOwor6YajIDwgY2FyYm9oeWRyYXRlczsKK+ibkSA8IGFcLW1hcmluZVwtY3JhYjsKK+akoCA8IHdvb2RlblwtdGFibGV0Owor5aq4IDwgYW5cLXVnbHlcLXdvbWFuOwor6aaHIDwgc3RpclwtYW5kXC1jb29rOwor55SZIDwgc3VnYXJcLXByb2R1Y3Q7CivolqQgPCBhbGxpdW1cLWJha2VyaTsKK+WhpSA8IGRyeVwtY2xheVwtbHVtcDsKK+aqlOahiOi9iemAgSA8IGZpbGVcLXRyYW5zZmVyOwor6Ku+6LKd54i+IDwgbm9iZWxcLVwocHJpemVcKTsKK+iPsuiPsiA8IHZlcnlcLWZyYWdyYW50Owor5piC5o+aIDwgaGlnaFwtc3Bpcml0ZWQ7Civkv53orYnph5EgPCBlYXJuZXN0XC1tb25leTsKK+ejgeW4tiA8IG1hZ25ldGljXC10YXBlOwor6Kej6Kq/IDwgdG9cLWRlbW9kdWxhdGU7CivljJfmtbcgPCB0aGVcLW5vcnRoXC1zZWE7CivoloTliKkgPCBzbWFsbFwtcHJvZml0czsKK+aOkuWxseWAkua1tyA8IGVhcnRoXC1zaGFraW5nOwor5pma5aCxIDwgZXZlbmluZ1wtcGFwZXI7CivmmJ/luqcgPCBjb25zdGVsbGF0aW9uOwor5r+A5YWJ5omT5byV5qmfIDwgbGFzZXJcLXByaW50ZXI7CivlhrDpnosgPCBza2F0aW5nXC1ib290czsKK+aOm+iZn+itiSA8IHJlZ2lzdGVyXC1jYXJkOwor5bug57WyIDwgZmlsYXR1cmVcLXNpbGs7Civnn5vnm74gPCBjb250cmFkaWN0b3J5Owor5Ye66LOjIDwgdG9cLXNlbGxcLVwob2ZmXCk7CivliLDomZUgPCBpblwtYWxsXC1wbGFjZXM7CivntpPnh5/osrvnlKggPCBidXNpbmVzc1wtY29zdDsKK+WOn+WtkOiDvSA8IGF0b21pY1wtZW5lcmd5Owor5Y+k5LujIDwgYW5jaWVudFwtdGltZXM7CivmlrDmnIggPCBjcmVzY2VudFwtbW9vbjsKK+e0gOW/temkqCA8IG1lbW9yaWFsXC1oYWxsOwor5Zau6Z+75q+NIDwgc2ltcGxlXC1maW5hbHM7CivljbPlsIcgPCBvblwtdGhlXC1ldmVcLW9mOwor5Y2R5b6uIDwgcGV0dHlcLWFuZFwtbG93Owor5Y2x5a6zIDwgdG9cLWplb3BhcmRpemU7Civnm7TmiKrkuobnlbYgPCBwbGFpblwtdGFsa2luZzsKK+WGt+aIsOS7peW+jCA8IHBvc3RcLWNvbGRcLXdhcjsKK+acieWPr+iDvSA8IGl0JydzXC1wb3NzaWJsZTsKK+WIqOiKsSA8IHdvb2RcLXNoYXZpbmdzOwor6I6o6I+qIDwgYmxhY2tcLWhlbmJhbmU7Civoqr/mn6UgPCBpbnZlc3RpZ2F0aW9uOwor57aB6IW/IDwgbGVnXC13cmFwcGluZ3M7CivliJfoiIkgPCBcKG1ha2VcLWFcKVwtbGlzdDsKK+mBqeeUqCA8IGJlXC1hcHBsaWNhYmxlOwor5pGY6KiYIDwgdG9cLXRha2VcLW5vdGVzOwor5YWD6aaWIDwgaGVhZFwtb2ZcLXN0YXRlOwor5pyq5o+Q5Y+KIDwgbm90XC1tZW50aW9uZWQ7CivmlrnlvI8gPCB3YXlcLVwob2ZcLWxpZmVcKTsKK+aXpeWknCA8IGRheVwtYW5kXC1uaWdodDsKK+iKnem6uyA8IHNlc2FtZVwtXChzZWVkXCk7CivmnKznlJ/nh4ggPCBidW5zZW5cLWJ1cm5lcjsKK+eJjOWdiiA8IG1lbW9yaWFsXC1hcmNoOwor5b+D6Ief55eFIDwgaGVhcnRcLWRpc2Vhc2U7CivliY3nlJ8gPCBwcmVcLWV4aXN0ZW5jZTsKK+WLouWcqOW/heihjCA8IGJlXC1pbXBlcmF0aXZlOwor5piH5YC8IDwgcmlzZVwtaW5cLXZhbHVlOwor5Y2B5LqU5bm0IDwgZmlmdGVlblwteWVhcnM7CivnsbPpo68gPCBcKGNvb2tlZFwpXC1yaWNlOwor6YSn5bCP5bmzIDwgZGVuZ1wteGlhb3Bpbmc7CivovYnpgZMgPCBtYWtlXC1hXC1kZXRvdXI7CivoiIrntITlhajmm7ggPCBvbGRcLXRlc3RhbWVudDsKK+mVt+mAlCA8IGxvbmdcLWRpc3RhbmNlOwor5pel5YmNIDwgdGhlXC1vdGhlclwtZGF5Owor5bm+5YCL5bCP5pmCIDwgc2V2ZXJhbFwtaG91cnM7CivpgqPptLvmm7ggPCBib29rXC1vZlwtbmFodW07CivntrLntaHlsaQgPCBuZXR3b3JrXC1sYXllcjsKK+WinOavgCA8IFwocGxhbmVcKVwtY3Jhc2g7Civpm5nmiYsgPCBwYWlyXC1vZlwtaGFuZHM7Civlk6XmnpflpJrlvozmm7ggPCAyXC1jb3JpbnRoaWFuczsKK+WNl+S6niA8IHNvdXRoZXJuXC1hc2lhOwor5YiK55m7IDwgY2FycnlcLWFcLXN0b3J5Owor6KqH5by1IDwgdG9cLWV4YWdnZXJhdGU7Civpm6Plv5ggPCB1bmZvcmdldHRhYmxlOwor5aSq5aSqIDwgbWFycmllZFwtd29tYW47CivmkqXnlKggPCBhcHByb3ByaWF0aW9uOwor5a+p5Yik5qyEIDwganVkZ2VtZW50XC1iYXI7CivlooPms4EgPCBjaXJjdW1zdGFuY2VzOwor5rCR5LqLIDwgY2l2aWxcLW1hdHRlcnM7CivlpbPkvaMgPCBcKGZlbWFsZVwpXC1tYWlkOwor5LiN5Y+v57y65bCRIDwgaW5kaXNwZW5zYWJsZTsKK+WLmOWvnyA8IHJlY29ubmFpc2FuY2U7CivnsYzpm4YgPCBjb2xsZWN0XC1tb25leTsKK+aTjea8lCA8IGRlbW9uc3RyYXRpb247Civnmb3oirHoirEgPCBzaGluaW5nXC13aGl0ZTsKK+W7uuevieWtuCA8IGFyY2hpdGVjdHVyYWw7Civoppbnqpfln7rmupYgPCB3aW5kb3dzXC1iYXNlZDsKK+mbu+mDteS9jee9riA8IGVtYWlsXC1hZGRyZXNzOwor5bm754eIIDwgbGF0ZXJuXC1zbGlkZXM7CivnoJTnqbbpoJjln58gPCByZXNlYXJjaFwtYXJlYTsKK+S4reWci+W8jyA8IGNoaW5lc2VcLXN0eWxlOwor5Yqg5b+rIDwgdG9cLWFjY2VsZXJhdGU7CivlhrDns5YgPCBjcnlzdGFsXC1zdWdhcjsKK+Wci+mamyA8IGludGVybmF0aW9uYWw7CivljYrlpLHmpa0gPCBzZW1pXC1lbXBsb3llZDsKK+mspembniA8IGNvY2tcLWZpZ2h0aW5nOwor6YGO5pmCIDwgb2xkXC1mYXNoaW9uZWQ7CivpgLLmjqXmnI3li5kgPCBhY2Nlc3NcLXNlcnZlcjsKK+maqOaEjyA8IGFzXC1vbmVcLXdpc2hlczsKK+WkseWIqSA8IHN1ZmZlclwtZGVmZWF0Owor6KGo5rG65qyKIDwgcmlnaHRcLXRvXC12b3RlOwor56m66ZaT56uZIDwgc3BhY2VcLXN0YXRpb247CivmkI3ogJcgPCB3ZWFyXC1hbmRcLXRlYXI7Civnm7jnlbYgPCBlcXVpdmFsZW50XC10bzsKK+mAkOatpSA8IHByb2dyZXNzaXZlbHk7CivptakgPCBvd2xcLWxpa2VcLWJpcmQ7CivlpKflhazlj7ggPCBsYXJnZVwtY29tcGFueTsKK+S4jeiomOWQjeaKleelqCA8IHNlY3JldFwtYmFsbG90Owor5LqM5qyh5aSn5oiwIDwgd29ybGRcLXdhclwtdHdvOwor5bm+5qyhIDwgc2V2ZXJhbFwtdGltZXM7Civlt6jntLAgPCBiaWdcLWFuZFwtc21hbGw7Civlub7mqKMgPCBzZXZlcmFsXC1raW5kczsKK+Wkp+S9vyA8IGFuXC1hbWJhc3NhZG9yOwor57eo5a+pIDwgcmVhZFwtYW5kXC1lZGl0Owor5by35YyWIDwgdG9cLXN0cmVuZ3RoZW47Civpgb/lrZUgPCBjb250cmFjZXB0aW9uOwor6auDIDwgc2hvdWxkZXJcLWJvbmU7CivkuI3liJfpoZvoq7jls7YgPCBicml0aXNoXC1pc2xlczsKK+mqqiA8IGNyb29rZWRcLWJvbmVzOwor5aSn5a656YePIDwgaGlnaFwtY2FwYWNpdHk7CivlpKfkuosgPCBhXC1tYWpvclwtZXZlbnQ7CivmpYrnmb7nv7AgPCBicmlnaGFtXC15b3VuZzsKK+Wkp+WVj+mhjCA8IGdyZWF0XC1wcm9ibGVtOwor6aajIDwgZnJhZ3JhbnRcLW9kb3I7CivmlZnlj4sgPCBjaHVyY2hcLW1lbWJlcjsKK+WFieWKn+eOhyA8IG9wdGljYWxcLXBvd2VyOwor6YCf5pWIIDwgcXVpY2tcLXJlc3VsdHM7CivppJogPCBwcmVwYXJlZFwtbWVhdDsKK+asiuWogeaApyA8IGF1dGhvcml0YXRpdmU7CivliKnmlrwgPCBiZVwtYmVuZWZpY2lhbDsKK+WIneacnyA8IGluaXRpYWxcLXN0YWdlOwor5aWz5pyL5Y+LIDwgZmVtYWxlXC1mcmllbmQ7Civln7rmnKzmpoLlv7UgPCBiYXNpY1wtY29uY2VwdDsKK+S4jeWRqOW7tiA8IHVuZGlzdHJpYnV0ZWQ7Civpnq4gPCBsZWF0aGVyXC1zaG9lczsKK+ipouWVjyA8IGlucXVpcmVcLWFib3V0Owor6ZydIDwgZHJvcHNcLW9mXC1yYWluOwor5pGB6Yem5YWSIDwgc25hcFwtZmFzdGVuZXI7CivmrbvliJEgPCBkZWF0aFwtcGVuYWx0eTsKK+mTliA8IHBlcnNvbicnc1wtbmFtZTsKK+eZveearuadviA8IGxhY2ViYXJrXC1waW5lOwor6YyhIDwgYVwta2luZFwtb2ZcLXBlbjsKK+WFteeXniA8IGFybXlcLXJpZmZyYWZmOwor5a2Y5YSy5ZmoIDwgbWVtb3J5XC1cKHVuaXRcKTsKK+iyv+aYk+mghuW3riA8IHRyYWRlXC1zdXJwbHVzOwor5b2M6L+m5pu4IDwgYm9va1wtb2ZcLW1pY2FoOwor6YiEIDwgYVwtd2luZVwtZmxhZ29uOwor5q2m5Zmo57O757WxIDwgd2VhcG9uXC1zeXN0ZW07Civph60gPCB0aXJlXC1vZlwtd2hlZWw7CivphqggPCBkcmVnc1wtb2ZcLXdpbmU7Civpq5Tph40gPCBcKGJvZHlcKVwtd2VpZ2h0Owor55m956CSIDwgd2hpdGVcLWFyc2VuaWM7CivmooXloZ7ov6rmlq/lpZTpprMgPCBtZXJjZWRlc1wtYmVuejsKK+ebuOaetiA8IHBpY3R1cmVcLWZyYW1lOwor6L6hIDwgcmVjcmltaW5hdGlvbjsKK+WutueUqOmbu+iFpiA8IGhvbWVcLWNvbXB1dGVyOwor54++5Luj5YyWIDwgbW9kZXJuaXphdGlvbjsKK+i9jyA8IHNsZWVwaW5nXC1jYXJ0Owor5YW154efIDwgbWlsaXRhcnlcLWNhbXA7CivkuLvnprHmlocgPCBsb3JkJydzXC1wcmF5ZXI7CivluILmsJEgPCBjaXR5XC1yZXNpZGVudDsKK+W6reWckiA8IGZsb3dlclwtZ2FyZGVuOwor6LeuIDwgaGFzdHlcLXdhbGtpbmc7CivovZ/ngrggPCBcKGRyb3BcLWFcKVwtYm9tYjsKK+mBjuWOuyA8IFwoaW5cLXRoZVwpXC1wYXN0Owor6LOuIDwgZmFyZXdlbGxcLWdpZnQ7CivoiaboiYcgPCBuYXZhbFwtdmVzc2VsczsKK+Wkp+WFrOeEoeengSA8IGp1c3RcLWFuZFwtZmFpcjsKK+WTpeael+WkmuWJjeabuCA8IDFcLWNvcmludGhpYW5zOwor5Yaw5pyfIDwgZ2xhY2lhbFwtZXBvY2g7Civpl5zmlrwgPCBwZXJ0YWluaW5nXC10bzsKK+WJm+WJmyA8IGp1c3RcLXJlY2VudGx5Owor5bug5Li7IDwgZmFjdG9yeVwtb3duZXI7Civlho3mrKEgPCBvbmVcLW1vcmVcLXRpbWU7CivorI0gPCBodW1taW5nXC1zb3VuZDsKK+aWsOe0hOWFqOabuCA8IG5ld1wtdGVzdGFtZW50Owor6Ka2IDwgdG9cLWxvb2tcLWFib3V0Owor6KaUIDwgdG9cLXNlYXJjaFwtZm9yOwor6KWaIDwgZ3JhdmVcLWNsb3RoZXM7CivmrIrlipsgPCBcKHdpZWxkXClcLXBvd2VyOwor6KC1IDwgbGFyZ2VcLXR1cnRsZXM7CivnsL/nsY0gPCBhY2NvdW50XC1ib29rczsKK+ieviA8IHRoZVwtZWFydGh3b3JtOwor6J6lIDwgdGhlXC1ob3VzZVwtZmx5Owor6J6ZIDwgZ3J1YnNcLWluXC13b29kOwor6JuFIDwgYVwtY2F0ZXJwaWxsYXI7CivmqavmjoMgPCB0b1wtc3dlZXBcLWF3YXk7CivluqblgYcgPCBnb1wtb25cLWhvbGlkYXk7CivomK8gPCB0b1wtdG9zc1wtYWJvdXQ7CivnlbDos6ogPCBoZXRlcm9nZW5lb3VzOwor6LuK56uZIDwgXChidXNcKVwtc3RhdGlvbjsKK+S6nua0suWci+WutiA8IGFzaWFuXC1jb3VudHJ5Owor5pq06aKo6amf6ZuoIDwgdmlvbGVudFwtc3Rvcm07CivolI4gPCB0aGVhXC1zaW5lbnNpczsKK+WCmeiHsyA8IHRvXC10aGVcLXV0bW9zdDsKK+iRvSA8IHR5cGVcLW9mXC1ncmFpbjsKK+iPvCA8IHJ1c2hcLW9yXC1zZWRnZTsKK+iPuiA8IGFsdGhhZWFcLXJvc2VhOwor6LeR6Z6LIDwgcnVubmluZ1wtc2hvZXM7Civoj5EgPCB0b1wtd2VlZFwtZ3Jhc3M7CivloLHllq4gPCB0YXhhdGlvblwtZm9ybTsKK+iOpyA8IGVkaWJsZVwtZ3JlZW5zOwor6IylIDwgcnVidXNcLXRva2t1cmE7CivpkZLos54gPCB0b1wtYXBwcmVjaWF0ZTsKK+iLmCA8IGluZGlhblwtbWFsbG93Owor6YCZ5L2NIDwgdGhpc1wtXChwZXJzb25cKTsKK+WbsOeqmCA8IGVtYmFycmFzc21lbnQ7CivpmY3kuJYgPCBjb21lXC10b1wtZWFydGg7CivohKUgPCBwZWx2aWNcLWNhdml0eTsKK+S+v+mjryA8IGFcLXNpbXBsZVwtbWVhbDsKK+iDsiA8IGh5ZHJveHlsYW1pbmU7CivovLvmop0gPCBcKHdoZWVsXClcLXNwb2tlOwor5aW95bm+5bm0IDwgc2V2ZXJhbFwteWVhcnM7CivnvbMgPCB3b29kZW5cLXNjcmVlbjsKK+e8hyA8IHJlZGRpc2hcLWNvbG9yOwor5omT6ZaLIDwgdG9cLWJyZWFrXC1vcGVuOwor5ZSu56Wo6JmVIDwgdGlja2V0XC1vZmZpY2U7Civnmbzmj64gPCBicmluZ1wtdG9cLWJlYXI7Civns60gPCByaWNlXC1kdW1wbGluZzsKK+aNieWPluWcluWDjyA8IGNhcHR1cmVcLWltYWdlOwor57G+IDwgdW5odWxsZWRcLXJpY2U7CivnsZwgPCBiYW1ib29cLXNoZWF0aDsKK+WFrem7nuWNiiA8IGhhbGZcLXBhc3RcLXNpeDsKK+mWi+W/gyA8IHRvXC1mZWVsXC1oYXBweTsKK+eEoeaEj+itmCA8IHVuY29uc2Npb3VzbHk7Civlr6bpqZcgPCB0b1wtZXhwZXJpbWVudDsKK+estSA8IGFcLWJhbWJvb1wtZm9ybTsKK+esrSA8IGJhbWJvb1wtc2NyZWVuOwor6L2J5b2OIDwgdHVyblwtXChhcm91bmRcKTsKK+ahiOmgrSA8IG9uXC1vbmUnJ3NcLWRlc2s7Civmi5zph5HkuLvnvqkgPCBtb25leVwtd29yc2hpcDsKK+awuOS5heWSjOW5syA8IGxhc3RpbmdcLXBlYWNlOwor56CeIDwgdG9cLXNtYXNoXC1yb2NrOwor55+eIDwgYm9yZVwtd2l0aFwtYXdsOwor6L6o5YilIDwgZGlmZmVyZW50aWF0ZTsKK+aKhOilsiA8IHRvXC1wbGFnaWFyaXplOwor6L6m5YiwIDwgdG9cLWFjY29tcGxpc2g7CivlhYjlvowgPCBpblwtc3VjY2Vzc2lvbjsKK+eVnOiCpSA8IGFuaW1hbFwtbWFudXJlOwor5o6o5YuV5YqbIDwgZHJpdmluZ1wtZm9yY2U7Civmi4nnvo4gPCBsYXRpblwtYW1lcmljYTsKK+aguOmbuyA8IG51Y2xlYXJcLXBvd2VyOwor6LaK6YeOIDwgY3Jvc3NcLWNvdW50cnk7CivnkoIgPCBqYWRlXC1vcm5hbWVudDsKK+eQlSA8IHR5cGVcLW9mXC1wZWFybDsKK+eNmSA8IGRpZVwtdmlvbGVudGx5Owor5YWs5ZySIDwgYVwtcHVibGljXC1wYXJrOwor55m+5aeTIDwgY29tbW9uXC1wZW9wbGU7Civlk4jolqnlhYvkurogPCBrYXpha2hcLXBlcnNvbjsKK+eBveWNgCA8IGRpc2FzdGVyXC1hcmVhOwor6YG/6aKo6JmVIDwgbGVlXCxcLXdpbmRzdG9wOwor54mBIDwgbW9vcmluZ1wtc3Rha2U7Civmp4vmiJAgPCB0b1wtY29uc3RpdHV0ZTsKK+eGsCA8IGdyZWF0XC1kcm91Z2h0Owor5L+d6JePIDwga2VlcFwtaW5cLXN0b3JlOwor55Ge6aaZIDwgd2ludGVyXC1kYXBobmU7Civmi4znqK4gPCBzZWVkXC1kcmVzc2luZzsKK+exjOaOqiA8IHJhaXNlXC1cKG1vbmV5XCk7Civmo4Tnva4gPCB0b1wtdGhyb3dcLWF3YXk7Civkvb/nlKjph48gPCB2b2x1bWVcLW9mXC11c2U7Civos6Ppu54gPCBzZWxsaW5nXC1wb2ludDsKK+eYpuW8sSA8IHRoaW5cLWFuZFwtd2VhazsKK+a1rCA8IG5hdXRpY2FsXC1taWxlOwor55m95YyqIDwgd2hpdGVcLWJhbmRpdHM7Civogonpq5QgPCBwaHlzaWNhbFwtYm9keTsKK+astSA8IHRvXC10cmVhdFwtd2VsbDsKK+askyA8IGFcLWNyb3NzXC1waWVjZTsKK+WNiuWwjumrlCA8IHNlbWljb25kdWN0b3I7CivlgpnmoYggPCBwdXRcLW9uXC1yZWNvcmQ7Civmq4wgPCBhXC1raW5kXC1vZlwtaG9lOwor5qquIDwgYmxvY2tcLW9mXC13b29kOwor5beh6Iiq5bCO5b2IIDwgY3J1aXNlXC1taXNzbGU7CivkuI3lj6/og73nmoTkuosgPCBpbXBvc3NpYmlsaXR5Owor5qaMIDwgd29vZGVuXC1sYWRkZXI7Civnmb7liIbkuYvkupTljYEgPCBmaWZ0eVwtcGVyY2VudDsKK+mspeW/lyA8IHdpbGxcLXRvXC1maWdodDsKK+aJgeiNsyA8IGh5YWNpbnRoXC1iZWFuOwor55m+5YCNIDwgYVwtaHVuZHJlZGZvbGQ7CivmpZkgPCBuYW1lXC1vZlwtcGxhbnQ7CivnrYbnrZIgPCBwZW5cLWNvbnRhaW5lcjsKK+aiuSA8IHRoZVwtYXJlY2FcLW51dDsKK+WvtuiXjSA8IHNhcHBoaXJlXC1ibHVlOwor5qKOIDwgc2lja2xlXC1oYW5kbGU7CivmoLAgPCBhXC1iYW1ib29cLXJhZnQ7Civmu7LnorMgPCBjYXJidXJpemF0aW9uOwor5pq05Yqb54qv572qIDwgdmlvbGVudFwtY3JpbWU7CivmnKkgPCBrd3VreWVsXDpcLXJhbms7CivmuKHpgY4gPCB0b1wtY3Jvc3NcLW92ZXI7CivlrZfpm4YgPCBjaGFyYWN0ZXJcLXNldDsKK+mngeauvOanjSA8IG1hdXNlclwtcGlzdG9sOwor5L2V6KW/6Zi/5pu4IDwgYm9va1wtb2ZcLWhvc2VhOwor56m66YGLIDwgYWlyXC10cmFuc3BvcnQ7CivlpaflhYvmi4nojbfppqzluIIgPCBva2xhaG9tYVwtY2l0eTsKK+aQoiA8IHRvXC1zdGlja1wtaW50bzsKK+aOrSA8IHRvXC1tYW5pcHVsYXRlOwor5oy2IDwgaG9sZFwtaW5cLWhhbmRzOwor5ouVIDwgdG9cLWRyYWdcLWFmdGVyOwor5oqDIDwgdG9cLWNsYXBcLWhhbmRzOwor5LiN5oiQ5paH5rOVIDwgdW53cml0dGVuXC1sYXc7CivmiLogPCBzdG9uZVwtYm9hcmRlcjsKK+aIuSA8IGluXC1kaWZmaWN1bHR5Owor6auY6YCf5LmZ5aSq57ay6LevIDwgZmFzdFwtZXRoZXJuZXQ7CivkuI3mlrnkvr8gPCBpbmNvbnZlbmllbmNlOwor5rKS57aT6amXIDwgaW5leHBlcmllbmNlZDsKK+ihqOWxpCA8IHN1cmZhY2VcLWxheWVyOwor5oC+IDwgbW91bnRhaW5cLW5hbWU7CivlnJPlkaggPCBjaXJjdW1mZXJlbmNlOwor5b29IDwgZ29cLXRvXC1hbmRcLWZybzsKK+W9siA8IHllbGxvd1wtZHJhZ29uOwor5b2UIDwgdG9cLWNhcnZlXC13b29kOwor5Li75pel5a24IDwgc3VuZGF5XC1zY2hvb2w7Civnl4XlrrMgPCBwbGFudFwtZGlzZWFzZTsKK+W3sCA8IGFuXC1hdG9tXC1ncm91cDsKK+WUruiyqCA8IHRvXC1zZWxsXC1nb29kczsKK+WzgiA8IG5hbWVcLW9mXC1wbGFjZTsKK+acieWKqeS6jiA8IGNvbnRyaWJ1dGVcLXRvOwor5a+AIDwgZmV1ZGFsXC1lc3RhdGU7CivoiIzlsJYgPCB0aXBcLW9mXC10b25ndWU7CivmoYjnqLEgPCBjb3VudGVyXC1zY2FsZTsKK+WqoiA8IGJlXC1qZWFsb3VzXC1vZjsKK+a2iOmYsiA8IGZpcmVcLWZpZ2h0aW5nOwor5ZaJ57WQIDwgYWRhbScncycnXC1hcHBsZTsKK+WztuWciyA8IGlzbGFuZFwtbmF0aW9uOwor6ayn5LqLIDwgY2F1c2VcLXRyb3VibGU7Civkuqzpg70gPCBreW90b1wtXChqYXBhblwpOwor5Zub5Y2DIDwgZm91clwtdGhvdXNhbmQ7CivnlbblubQgPCBpblwtdGhvc2VcLWRheXM7CivlnrsgPCBhblwtZW1iYW5rbWVudDsKK+iyoei/tyA8IG1vbmV5XC1ncnViYmVyOwor5LiJ5Y2B5YSEIDwgdGhyZWVcLWJpbGxpb247CivnkIbop6MgPCB0b1wtY29tcHJlaGVuZDsKK+WamiA8IGFyZ3VtZW50YXRpdmU7CivkuI3lh43muK8gPCBpY2VcLWZyZWVcLXBvcnQ7CivmraXoqbHmqZ8gPCB3YWxraWVcLXRhbGtpZTsKK+WvhueivCA8IFwoc2VjcmV0XClcLWNvZGU7Civnr4nln44gPCBmb3J0aWZpY2F0aW9uOwor5ZKhIDwgc2lkZVwtb2ZcLW1vdXRoOwor6KGb5YW1IDwgXChib2R5XClcLWd1YXJkXCk7Civoib7mu4vnl4Xmipfpq5QgPCBhaWRzXC1hbnRpYm9keTsKK+mbhue3muWZqCA8IGh1YlwtXChuZXR3b3JrXCk7CivnlpHllY8gPCBpbnRlcnJvZ2F0aW9uOwor5YefIDwgdG9cLWJlXC1ydWRlXC10bzsKK+WWieeXpyA8IHNjYXJsZXRcLWZldmVyOwor5YCL5oCnIDwgaW5kaXZpZHVhbGl0eTsKK+WEuSA8IHRvXC1hY2N1bXVsYXRlOwor5YSyIDwgdG9cLXNhdmVcLW1vbmV5Owor5YSbIDwgdG9cLXNraXBcLWFib3V0Owor5LiN6IiS6YGpIDwgdW5jb21mb3J0YWJsZTsKK+WCkiA8IHBlcnNvbmFsXC1uYW1lOwor5YWp5Y2D5bm0IDwgdGhlXC15ZWFyXC0yMDAwOwor5qiZ5pys6J+yIDwgc3BpZGVyXC1iZWV0bGU7CivllZ/npLogPCBlbmxpZ2h0ZW5tZW50Owor6YCy5Ye65Y+jIDwgaW1wb3J0XHxleHBvcnQ7CivkuI3lj6/kvrXniq/mrIogPCBpbnZpb2xhYmlsaXR5Owor5L6CIDwgdG9cLWNvbW1pc3Npb247CivlkJHopb/ljZcgPCBzb3V0aHdlc3R3YXJkOwor6Ie05Ye9IDwgc2VuZFwtYVwtbGV0dGVyOwor5LmoIDwgdGhlXC1iZWdpbm5pbmc7CivktpogPCBkZWNheWVkXC10b290aDsKK+S2iCA8IGFcLWtpbmRcLW9mXC1yYXQ7Civktb8gPCBhXC1zaWxlbnRcLWRydW07CivktYEgPCBkZWNheWVkXC1kb3VnaDsKK+S0sCA8IGFcLWZhbWlseVwtbmFtZTsKK+SyuiA8IGJpcmRzXC1zaW5naW5nOwor5LKFIDwgdGhlXC1nbG9iZWZpc2g7CivksLsgPCB0b1wtY2F0Y2hcLWZpc2g7CivmhI/orZggPCBjb25zY2lvdXNuZXNzOwor5LCxIDwgbmFtZVwtb2ZcLWFcLWdvZDsKK+WUruelqOWToSA8IHRpY2tldFwtc2VsbGVyOwor5K+FIDwgYVwtc3dpZnRcLWhvcnNlOwor5K6IIDwgdG9cLWdvXC1zd2lmdGx5Owor5Ku/IDwgYVwtY29vbFwtYnJlZXplOwor5Ku0IDwgd2Vha1wtYW5kXC1kdWxsOwor6IGv57WhIDwgY29tbXVuaWNhdGlvbjsKK+WUruelqOWPoyA8IHRpY2tldFwtd2luZG93Owor5omB5pOUIDwgY2FycnlpbmdcLXBvbGU7Civkq4EgPCB0aGVcLWZpcnN0XC1zb247CivkqqsgPCBhbmNpZW50XC1tdXNpYzsKK+SqkiA8IGxlYXRoZXJcLXBhbnRzOwor5Km+IDwgaGVyYlwtbWVkaWNpbmU7CivkqaQgPCB0b1wtbGVhZFwtYW5cLW94Owor5KmjIDwgc2hvZVwtY3VzaGlvbnM7CivkqZ4gPCBhXC1zYWRkbGVcLWZsYXA7CivkqI4gPCBkZWVwXC1hbmRcLWRhcms7CivlronlrprljJYgPCBzdGFiaWxpemF0aW9uOwor5KeWIDwgYVwtc21hbGxcLW1vdW5kOwor5Ka0IDwgb3BlblwtdGhlXC1kb29yOwor5KazIDwgYmV0d2Vlblwtc3RlcHM7CivkuqTmj5vnq68gPCBzd2l0Y2hlZFwtcG9ydDsKK+WTgOiZnyA8IGNyeVwtcGl0ZW91c2x5Owor5KahIDwgYVwtZG9vclwta2VlcGVyOwor5KWpIDwgaG9va3NcLXRvXC1oYW5nOwor5KS1IDwgYVwtdGlueVwtbmVlZGxlOwor5KSOIDwgc295YmVhblwtc2F1Y2U7CivkpIMgPCBkcnVua2VuXC1zb3VuZDsKK+SjsCA8IHRvXC1wb29sXC1tb25leTsKK+SipyA8IHRvXC1nb1wtZm9yd2FyZDsKK+SimiA8IGFcLW5hcnJvd1wtcGF0aDsKK+SigyA8IHRvXC1hZG1pbmlzdGVyOwor5KGlIDwgYVwtbW92aW5nXC1jYXJ0Owor5J+YIDwgdG9cLXN0cmFpZ2h0ZW47Civkn4ogPCBzaG9ydFwtc3RyaWRlczsKK+ahguaelyA8IGd1aWxpblwtXChjaXR5XCk7CivknoEgPCBjb3JyZXNwb25kaW5nOwor5J22IDwgdG9cLWxldnlcLXRheGVzOwor5J2sIDwgYVwtd2VhbHRoeVwtbWFuOwor6YeR6buDIDwgZ29sZGVuXC15ZWxsb3c7Civkm74gPCBmYW1pbGlhclwtd2l0aDsKK+S4jeebuOW5siA8IGJlXC1pcnJlbGV2YW50Owor55uu5qiZ5biC5aC0IDwgdGFyZ2V0XC1tYXJrZXQ7Civkm5AgPCBhblwtZXhwcmVzc2lvbjsKK+WkqeabieW+lyA8IGhlYXZlblwta25vd3NcITsKK+SalSA8IHRvXC1zZWFyY2hcLW91dDsKK+SZuSA8IHRvXC12b21pdFwtbWlsazsKK+SZpSA8IHNoaW55XC1kcmVzc2VzOwor5JmiIDwgc2hvcnRcLXRcLXNoaXJ0Owor5JmgIDwgc2hvcnRcLWNsb3RoZXM7CivkmZ8gPCBoZWF2eVwtY2xvdGhlczsKK+SZniA8IHdvb2xlblwtc3RyaW5nOwor5JmFIDwgdGhlXC13YWlzdGxpbmU7Civot6jlnIsgPCB0cmFuc25hdGlvbmFsOwor5JeXIDwgdGhlXC1taWxsaXBlZGU7CivklqkgPCBhXC1raW5kXC1vZlwtYmVlOwor5JaRIDwgYVwtd2hpdGVcLXRpZ2VyOwor5JaHIDwgZnJhZ3JhbnRcLWhlcmI7CivmvJTlh7ogPCBcKGFjdGluZ1wpXC1wbGF5Owor5ZCD6aOvIDwgdG9cLWVhdFwtYVwtbWVhbDsKK+SSjiA8IHdpdGhvdXRcLWNvbG9yOwor5JGyIDwgdG9cLXJvd1wtYVwtYm9hdDsKK+SRpSA8IGFcLW1vdmluZ1wtYm9hdDsKK+SQsiA8IGhhbGZcLXJhd1wtbWVhdDsKK+SQmSA8IHRoZVwtZGlhcGhyYWdtOwor5I+YIDwgYVwtYmlnXC1hYmRvbWVuOwor5I+EIDwgbm90XC10b1wtbGlzdGVuOwor5LiN6YCaIDwgYmVcLW9ic3RydWN0ZWQ7CivmnIDpq5jms5XpmaIgPCBzdXByZW1lXC1jb3VydDsKK+SNvSA8IGFcLWZpZXJjZVwtZ29hdDsKK+SNvCA8IHNhbHRlZFwtbXV0dG9uOwor5I2qIDwgY2FzdHJhdGVkXC1yYW07CivkjaQgPCB0b1wtc3RyYWluXC1vdXQ7CivmiJLmjIcgPCBcKGZpbmdlclwpXC1yaW5nOwor5pyA5b6M5pu05pawIDwgbGF0ZXN0XC11cGRhdGU7CivkjJkgPCBoYW5rXC1vZlwtcm9wZXM7CivkjIUgPCBhXC10aGlja1wtcm9wZXM7Civki6YgPCByYXZlbGxlZFwtc2lsazsKK+SLnSA8IGFcLXRocm9hdFwtYmFuZDsKK+adj+S7geixhuiFkCA8IGFsbW9uZFwtanVua2V0Owor5Iq9IDwgYVwtZmluZVwtdGhyZWFkOwor5IqUIDwgcG9saXNoZWRcLXJpY2U7CivkiakgPCBhXC1iYW1ib29cLXdhcmU7CivkiaggPCBiYW1ib29cLWpvaW50czsKK+SIviA8IG1vdmVcLWFcLWxpdHRsZTsKK+SIsyA8IGFcLXdpbmRvd1wtbGVhZjsKK+WwkeWwhyA8IG1ham9yXC1nZW5lcmFsOwor5IaaIDwgdG9cLWdvXC10aHJvdWdoOwor5p2c57WVIDwgcHV0XC1hblwtZW5kXC10bzsKK+SFmyA8IGh1c2tzXC1vZlwtcmljZTsKK+SDsyA8IGZhbGxpbmdcLXN0b25lOwor5IK2IDwgdGhlXC1jcnVzdGFjZWE7CivkgpcgPCB0b1wtYmVcLWNhcmVmdWw7Civkgo4gPCBhXC1zaG9ydFwtc3BlYXI7CivkgoEgPCBhblwtYW5ncnlcLWxvb2s7CivkgZkgPCBlbG9xdWVudFwtZXllczsKK+SAriA8IHNpZ2h0XC1ibHVycmVkOwor5ICtIDwgd2l0aFwtYmlnXC1leWVzOwor5ICWIDwgdG9cLWxvb2tcLXVwXC10bzsKK+SAlSA8IGFuZ3J5XC1nbGFuY2VzOwor5pqX6Y6WIDwgYnVpbHRcLWluXC1sb2NrOwor47+sIDwgbmFzYWxcLWRpc2Vhc2U7Civjvr0gPCBzd2VsbGluZ1wtZmVldDsKK+O9siA8IGdyaXBpbmdcLWNvbGljOwor472HIDwgdW5idXJudFwtdGlsZXM7CivjvLUgPCBhXC1zbWFsbFwtYmFzaW47CivjvJ8gPCBhXC10aWxlZFwtaG91c2U7CivjvI4gPCBhXC1zbWFsbFwtbWVsb247Civju74gPCBqYWRlXC1hcnRpY2xlczsKK+WQjOebn+WciyA8IGNvbmZlZGVyYXRpb247CivjuoggPCB0b1wtZ29cLWh1bnRpbmc7CivjubkgPCBhXC1raW5kXC1vZlwtZG9nOwor47m1IDwgYVwtaHVudGluZ1wtZG9nOwor47mzIDwgYVwta2luZFwtb2ZcLWFwZTsKK+aHsuaIkiA8IHRvXC1kaXNjaXBsaW5lOwor6YCZ56iu5pa55byPIDwgXChpblwpXC10aGlzXC13YXk7CivkuIvoqrIgPCBjbGFzc1wtaXNcLW92ZXI7CivkuI3oqbMgPCBub3RcLWluXC1kZXRhaWw7CivjuIQgPCBhXC1yYWdpbmdcLWZpcmU7Civjt74gPCBibGF6ZVwtb2ZcLWZpcmU7Civlj43pn78gPCByZXBlcmN1c3Npb25zOwor47eWIDwgdG9cLXNoaW5lXC11cG9uOwor47eVIDwgaGVhcmluZ1wtc291bmQ7Civjt5IgPCB0b1wtY29va1wtbWVhbHM7CivjtpggPCBmdWxsXC1vZlwtd2F0ZXI7CivlpafpgYvmnIMgPCBvbHltcGljXC1nYW1lczsKK+O1syA8IGNyeXN0YWxcLWNsZWFyOwor47WgIDwgdG9cLWd1c2hcLWZvcnRoOwor47S9IDwgd2F0ZXJcLWN1cnJlbnQ7CivjtKsgPCBncmVhdFwtZmxvd2luZzsKK+O0piA8IHRvXC13YXNoXC1oYW5kczsKK+O0pSA8IGdyZWF0XC1iaWxsb3dzOwor47SQIDwgZ3JlYXRcLWN1cnJlbnQ7Civkv53orbfkuLvnvqkgPCBwcm90ZWN0aW9uaXNtOwor47KbIDwgaGFpcnlcLWFuaW1hbHM7CivlnKjmnKrkvoYgPCBpblwtdGhlXC1mdXR1cmU7Civlrr/mgKggPCBhblwtb2xkXC1ncnVkZ2U7CivjsLsgPCBhc3Nlc1wtYnJheWluZzsKK+OwjyA8IGFcLWJhbWJvb1wtcG9sZTsKK+OwjCA8IHRvXC1tb25vcG9saXplOwor462/IDwgb2JsaXF1ZVwtYW5nbGU7Civllq7lrZAgPCBsaXN0XC1vZlwtaXRlbXM7CivjrZMgPCBhXC1waWxsYXJcLWFyY2g7CivosqLnjbsgPCB0b1wtY29udHJpYnV0ZTsKK+OspSA8IHRvXC1zdW5cLXRvXC1haXI7Civlj6vphpIgPCB0b1wtY2FsbFwtYXdha2U7CivjrIQgPCB3YXJtXC1hbmRcLWRhbXA7Civjq58gPCBkYXlcLWFmdGVyXC1kYXk7CivljZfnvo7mtLIgPCBzb3V0aFwtYW1lcmljYTsKK+e+juihkyA8IHRoZVwtZmluZVwtYXJ0czsKK+OppSA8IGRlbGljYXRlXC1oYW5kOwor46ieIDwgdG9cLWZlZWxcLWFib3V0Owor46e8IDwgdG9cLWRpc3RyaWJ1dGU7Civjp7cgPCB0b1wtd2lwZVwtdGVhcnM7CivjpqsgPCBsYXhcLWFuZFwtY3J1ZGU7CivjpowgPCBrZWVuXC1vclwtc2hhcnA7CivjpbwgPCB0b1wtYmVcLW5lYXJcLXRvOwor46O/IDwgcGFpbmZ1bGx5XC1zYWQ7Civjo6QgPCB0b1wtdHJlYWRcLXVwb247CivjorsgPCB0b1wtZHJhd1wtYVwtYm93Owor46KWIDwgYVwtc3RvcmVcLWhvdXNlOwor5LiD55m+6JCsIDwgc2V2ZW5cLW1pbGxpb247CivjoLQgPCBhXC1waWxsb3dcLWNhc2U7CivjoJsgPCBuYW1lXC1hXC1jb3VudHk7CivmnIjnkIPooajpnaIgPCBsdW5hclwtc3VyZmFjZTsKK+OfrSA8IHRoZVwtbWluXC1yaXZlcjsKK+iDveWkoCA8IGJlXC1jYXBhYmxlXC1vZjsKK+OerCA8IGNsb3NlXC1vclwtbmVhcjsKK+OeiyA8IHNvZnRcLWFuZFwtbWVlazsKK+WutuWxrCA8IGZhbWlseVwtbWVtYmVyOwor4527IDwgYmFyZWx5XC1lbm91Z2g7CivjnYMgPCB0b1wtYmVhclwtYVwtc29uOwor5Zyw5pa55YGc6LuKIDwgcGFya2luZ1wtcGxhY2U7Civjm5IgPCBjYW5cLW5vdFwtc3BlYWs7CivjmrQgPCBhXC1wcmV0dHlcLWdpcmw7CivpvLvmt7UgPCBuYXNvc2ludXNpdGlzOwor5oeC5b6XIDwgdG9cLXVuZGVyc3RhbmQ7CivjmJsgPCBhXC1kZWVwXC12YWxsZXk7CivmnInoia/lv4MgPCBjb25zY2llbnRpb3VzOwor45iTIDwgcHJvbGl4XC1zcGVlY2g7CivjmIkgPCB0b1wtbWFrZVwtc291bmQ7Civjl7QgPCBkb2dzXC1maWdodGluZzsKK+OVsCA8IHNvdW5kXC1hbmdyaWx5Owor45WqIDwgYmlyZHMnJ1wtY2hpcnBzOwor45WZIDwgYVwtd2lseVwtcmFiYml0Owor45WJIDwgdG9cLWRpZ1wtYVwtaG9sZTsKK+OUpSA8IGZ1bGxcLW9mXC1hbmdlcjsKK+OTtCA8IHRvXC1jdXRcLWluXC10d287CivljYrpu54gPCB0aGVcLWxlYXN0XC1iaXQ7Civjk5YgPCBiaXR0ZXJseVwtY29sZDsKK+S7peWkque2sue1oeerr+WPoyA8IGV0aGVybmV0XC1wb3J0Owor45GlIDwgZGlzcmVzcGVjdGZ1bDsKK+mJm+ethiA8IFwobGVhZFwpXC1wZW5jaWw7Civllq7lkJEgPCB1bmRpcmVjdGlvbmFsOwor45CwIDwgdG9cLWJlbGlldmVcLWluOwor5Y+X6LOEIDwgYWNjZXB0XC1icmliZXM7CivpvLvpo7zms5UgPCBuYXNhbFwtZmVlZGluZzsKK+efpeWQjeS6uuWjqyA8IHB1YmxpY1wtZmlndXJlOwor57SE5ou/5pu4IDwgYm9va1wtb2ZcLWpvbmFoOwor5L6L5YGHIDwgbGVnYWxcLWhvbGlkYXk7CivmsLTpnaIgPCB3YXRlclwtc3VyZmFjZTsKK+atpeihjOifsiA8IGdyb3VuZFwtYmVldGxlOwor56e75q6WIDwgdG9cLXRyYW5zcGxhbnQ7CivotbfkvI8gPCB1cHNcLWFuZFwtZG93bnM7Civororoqr8gPCBtb2RpZmllZFwtdG9uZTsKK+WPi+iqvCA8IGNvbXBhbmlvbnNoaXA7Civnvo7lnIvlnIvmnIMgPCB1XC5zXC5cLWNvbmdyZXNzOwor5ZOA5qiCIDwgZnVuZXJhbFwtbXVzaWM7CivkuI3lubjnmoTmmK8gPCB1bmZvcnR1bmF0ZWx5Owor5a+M5LqOIDwgdG9cLWJlXC1mdWxsXC1vZjsKK+S+v+atpei1sCA8IG1hcmNoXC1hdFwtZWFzZTsKK+iBsuW4tiA8IHZvY2FsXC1jb3JkXChzXCk7CivkuI3nn6UgPCB1bmtub3dpbmdcKGx5XCk7CivlravlpbMgPCBncmFuZGRhdWdodGVyOwor5YWJ57qW6Zu757qcIDwgb3B0aWNhbFwtZmliZXI7CivnpL7kuqToqp7oqIAgPCBsaW5ndWFcLWZyYW5jYTsKK+a2vOW/qyA8IG5pY2VcLWFuZFwtY29sZDsKK+S4ieeZviA8IHRocmVlXC1odW5kcmVkOwor6YCj5o6l6IezIDwgdG9cLWNvbm5lY3RcLXRvOwor5Lqs5oiyIDwgYmVpamluZ1wtb3BlcmE7CivkvY7kuo4gPCBiZVwtbG93ZXJcLXRoYW47Civps7blsL7oirEgPCBpcmlzXC1cKGZsb3dlclwpOwor5Y2X6YOoIDwgc291dGhlcm5cLXBhcnQ7CivororoibIgPCBjaGFuZ2VcLWNvbG91cjsKK+WNiuWumOaWuSA8IHNlbWlcLW9mZmljaWFsOwor5YyX6Z2iIDwgbm9ydGhlcm5cLXNpZGU7CivkuIrnj60gPCB0b1wtZ29cLXRvXC13b3JrOwor55m+56eR5YWo5pu4IDwgZW5jeWNsb3BhZWRpYTsKK+WQhOeoriA8IGV2ZXJ5XC1raW5kXC1vZjsKK+iyneW9qyA8IHNoZWxsXC1jYXJ2aW5nOwor5pel6LuNIDwgamFwYW5lc2VcLWFybXk7Civlip/njofmg6HljJYgPCBwb3dlclwtcGVuYWx0eTsKK+WNl+i2iiA8IHNvdXRoXC12aWV0bmFtOwor5oSb5oaOIDwgbG92ZVwtYW5kXC1oYXRlOwor6IG35ZOhIDwgb2ZmaWNlXC13b3JrZXI7CivmtIvmuqIgPCBicmltbWluZ1wtd2l0aDsKK+S4jeWPr+aKl+WKmyA8IGZvcmNlXC1tYWpldXJlOwor5Y2U6Kq/IDwgdG9cLWNvb3JkaW5hdGU7CivlpKfpmKogPCBvc2FrYVwtXChqYXBhblwpOwor6ICD5oWuIDwgdG9cLXRoaW5rXC1vdmVyOwor55Sf5ZG955qE6YG66LehIDwgdHJhY2VcLW9mXC1saWZlOwor5YyX6YOoIDwgbm9ydGhlcm5cLXBhcnQ7CivlhbzlrrnmgKcgPCBjb21wYXRpYmlsaXR5Owor6Kej5aOT57iuIDwgdG9cLWRlY29tcHJlc3M7CivmnKzmhI8gPCBvcmlnaW5hbFwtaWRlYTsKK+WQuOavkiA8IHRvXC10YWtlXC1kcnVnczsKK+S4reWci+mKgOihjCA8IGJhbmtcLW9mXC1jaGluYTsKK+azs+axoCA8IHN3aW1taW5nXC1wb25kOwor5LiA5q2lIDwgXChzaW5nbGVcKVwtc3RlcDsKK+WMl+i2iiA8IG5vcnRoXC12aWV0bmFtOwor6Z+/5oeJ5pmC6ZaTIDwgcmVzcG9uc2VcLXRpbWU7Civpm5zpoIUgPCBtaXNjZWxsYW5lb3VzOwor5YKz6Ly45qih5byPIDwgdHJhbnNmZXJcLW1vZGU7CivmjqHmo4nmqZ8gPCBjb3R0b25cLXBpY2tlcjsKK+WklumDqCA8IGV4dGVybmFsXC1wYXJ0Owor6IGe5Lq6IDwgZmFtb3VzXC1wZXJzb247CivliY3miYDmnKrmnIkgPCB1bnByZWNlZGVudGVkOwor5ZKM5bCaIDwgYnVkZGhpc3RcLW1vbms7CivomIflt54gPCBzdXpob3VcLVwoY2l0eVwpOwor56Sm5rC0IDwgbWluZXJhbFwtd2F0ZXI7CivmmpHmsKMgPCBcKHN1bW1lclwpXC1oZWF0Owor5LiA5Lmd5Lmd5LiD5bm0IDwgdGhlXC15ZWFyXC0xOTk3Owor5ZOA5ZGKIDwgYmVnXC1waXRlb3VzbHk7CivlpJbosr8gPCBmb3JlaWduXC10cmFkZTsKK+mBv+mboyA8IFxbdGFrZVxdXC1yZWZ1Z2U7CivljIXoorEgPCBjbG90aFwtd3JhcHBlcjsKK+aEn+WGkiA8IHRvXC1jYXRjaFwtY29sZDsKK+W9qeiajCA8IHBhaW50ZWRcLXNoZWxsOwor6Iqt6JWJ5omHIDwgcGFsbVwtbGVhZlwtZmFuOwor56au5aCCIDwgYXNzZW1ibHlcLWhhbGw7CivnuL3oqIggPCBcKGdyYW5kXClcLXRvdGFsOwor5aib5qiCIDwgZW50ZXJ0YWlubWVudDsKK+S4reWtuCA8IG1pZGRsZVwtc2Nob29sOwor5LqU5LiAIDwgNVwtMVwtXChtYXlcLTFzdFwpOwor56OB54mHIDwgbWFnbmV0aWNcLWRpc2s7CivmnIPloLQgPCBtZWV0aW5nXC1wbGFjZTsKK+WqvuWSjCA8IHRvXC1tYWtlXC1wZWFjZTsKK+WFrOWFg+WJjSA8IGJlZm9yZVwtY2hyaXN0Owor5LiK5biCIDwgb25cLXRoZVwtbWFya2V0Owor6Kiq5ZWP5pa55byPIDwgYWNjZXNzXC1tZXRob2Q7CivmqpTmoYjlu7rnq4sgPCBmaWxlXC1jcmVhdGlvbjsKK+engeWIqSA8IHBlcnNvbmFsXC1nYWluOwor6YGy6YiNIDwgc2xvd1wtXCh3aXR0ZWRcKTsKK+azoue+juW6piA8IGJhdW1lXC1kZWdyZWVzOwor5YyX576OIDwgbm9ydGhcLWFtZXJpY2E7CivntpPpqZcgPCB0b1wtZXhwZXJpZW5jZTsKK+WHuueUn+aXpeacnyA8IGRhdGVcLW9mXC1iaXJ0aDsKK+S4jeWPr+aAneitsCA8IGluY29uY2VpdmFibGU7CivmoLzlrZDoirHlkaIgPCBwbGFpZFwsXC10YXJ0YW47CivmsbLmsLQgPCB0b1wtZHJhd1wtd2F0ZXI7CivnjbLli50gPCBiZVwtdmljdG9yaW91czsKK+ingOm7niA8IHBvaW50XC1vZlwtdmlldzsKK+WNiuW+qeizvSA8IGVpZ2h0aFwtZmluYWxzOwor5rC054mbIDwgd2F0ZXJcLWJ1ZmZhbG87Civpm5nnlJ/lhYTlvJ8gPCB0d2luXC1icm90aGVyczsKK+WQjOW5tCA8IHRoZVwtc2FtZVwteWVhcjsKK+acgOWkp+mAn+eOhyA8IG1heGltdW1cLXNwZWVkOwor6K6K5pifIDwgdmFyaWFibGVcLXN0YXI7CivpgornlYznt5ogPCBib3VuZGFyeVwtbGluZTsKK+iYh+S/hCA8IHNvdmlldFwtcnVzc2lhOwor54++5a+m5oOF5rOBIDwgY3VycmVudFwtc3RhdGU7CivmraXooYwgPCB0b1wtZ29cLW9uXC1mb290Owor5pOF6ZW3IDwgdG9cLWJlXC1nb29kXC1hdDsKK+S4jeWVuyA8IG5vdFwtbGVzc1wtdGhhbjsKK+eJjOeFpyA8IGxpY2Vuc2VcLXBsYXRlOwor5pSv5oyB546HIDwgc3VwcG9ydFwtbGV2ZWw7CivoqabkuIDoqaYgPCB0b1wtaGF2ZVwtYVwtdHJ5Owor5pqX5a6zIDwga2lsbFwtc2VjcmV0bHk7CivljIXnvoXokKzosaEgPCBhbGxcLWVtYnJhY2luZzsKK+WLg+iIiCA8IHJpc2VcLXN1ZGRlbmx5Owor6K6K5oWLIDwgbWV0YW1vcnBob3NpczsKK+aAp+aFviA8IHNleHVhbFwtZGVzaXJlOwor5Yyv546HIDwgZXhjaGFuZ2VcLXJhdGU7CivmsrvlrokgPCBsYXdcLWFuZFwtb3JkZXI7CivoppbpoLvnr4Dnm64gPCB2aWRlb1wtcHJvZ3JhbTsKK+mbjOiKsSA8IGZlbWFsZVwtZmxvd2VyOwor5YWo5LiW55WM56ys5LiAIDwgd29ybGQnJ3NcLWZpcnN0Owor5aSa56iuIDwgbWFueVwta2luZHNcLW9mOwor5ZC45YWlIDwgdG9cLWJyZWF0aGVcLWluOwor6K6K5belIDwgZXhjaGFuZ2VcLXdvcms7CivkuIvoh7PkuIogPCBib3R0b21cLXRvXC10b3A7Civlj5flrrMgPCB0b1wtYmVcLWluanVyZWQ7Civmib7kuI3liLAgPCBjb3VsZG4nJ3RcLWZpbmQ7Civmsbrlv4MgPCBkZXRlcm1pbmF0aW9uOwor5LiL5LukIDwgZ2l2ZVwtYW5cLW9yZGVyOwor6I6r6YCGIDwgdmVyeVwtZnJpZW5kbHk7CivnvoXppqzlrZfmr40gPCByb21hblwtbGV0dGVyczsKK+avlOeGsSA8IHNwZWNpZmljXC1oZWF0Owor5LiN5Y+v5ZCN54uAIDwgaW5kZXNjcmliYWJsZTsKK+eesyA8IHB1cGlsXC1vZlwtZXllOwor5LiHIDwgdGVuXC10aG91c2FuZDsKK+W4gyA8IGNvdHRvblwtY2xvdGg7CivpgJogPCBwYXNzXC10aHJvdWdoOwor5o+QIDwgaG9sZFwtaW5cLWhhbmQ7CivkuqwgPCBjYXBpdGFsXC1jaXR5Owor55SaIDwgZ3JlYXRcLWV4dGVudDsKK+WRqCA8IHpob3VcLWR5bmFzdHk7CivlsLsgPCBlbmRcLW9mXC1zcGluZTsKK+WutCA8IHRvXC1lbnRlcnRhaW47CivlrrAgPCB0b1wtc2xhdWdodGVyOwor54qvIDwgY29tbWl0XC1jcmltZTsKK+WpoiA8IHNlcnZhbnRcLWdpcmw7Civlj4IgPCB0YWtlXC1wYXJ0XC1pbjsKK+aOjCA8IHBhbG1cLW9mXC1oYW5kOwor5ae/IDwgb25lJydzXC1tYW5uZXI7Civlp4kgPCBlbGRlclwtc2lzdGVyOwor5paXIDwgY2hpbmVzZVwtcGVjazsKK+WRvCA8IGJyZWF0aGVcLXNpZ2g7CivooZ0gPCBydXNoXC1hZ2FpbnN0Owor6J66IDwgc3BpcmFsXC1zaGVsbDsKK+WdiiA8IG5laWdoYm9yaG9vZDsKK+WwvCA8IGJ1ZGRoaXN0XC1udW47CivpvL4gPCBzbm9yZVwtbG91ZGx5Owor5Y+2IDwgdG9cLWhhcm1vbml6ZTsKK+mHjiA8IG9wZW5cLWNvdW50cnk7Civnp7sgPCBjaGFuZ2VcLXBsYWNlOwor5ZSQIDwgdGFuZ1wtZHluYXN0eTsKK+engCA8IGVhclwtb2ZcLWdyYWluOwor6JKyIDwgdHlwZVwtb2ZcLXJ1c2g7CivluoYgPCBjb25ncmF0dWxhdGU7Civokp8gPCBiZXRlbFwtcGVwcGVyOwor5rGXIDwgcGVyc3BpcmF0aW9uOwor5oucIDwgZG9cLW9iZWlzYW5jZTsKK+iZkSA8IGJlXC1jb25jZXJuZWQ7CivlrosgPCBzb25nXC1keW5hc3R5Owor6IOGIDwgZ2FsbFwtYmxhZGRlcjsKK+WJliA8IHNwbGl0XC1pblwtdHdvOwor5YekIDwgbWFsZVwtcGhvZW5peDsKK+ivoiA8IGlucXVpcmVcLWludG87CivnrZEgPCBhbmNpZW50XC1sdXRlOwor5YG2IDwgYWNjaWRlbnRhbGx5Owor6aO9IDwgZWF0XC1oZWFydGlseTsKK+iDjiA8IHVuYm9yblwtY2hpbGQ7Civmgp8gPCB0b1wtYXBwcmVoZW5kOwor6IKFIDwgcGF5XC1yZXNwZWN0czsKK+S+mCA8IGRpc2FwcG9pbnRlZDsKK+elrSA8IHNhY3JpZmljZVwtdG87CivlrqogPCBjb25zdGl0dXRpb247CivnopEgPCBzdG9uZVwtdGFibGV0Owor5piMIDwgbGlnaHRcLW9mXC1zdW47CivmkLogPCBsZWFkXC1ieVwtaGFuZDsKK+WOpiA8IGJpZ1wtYnVpbGRpbmc7Civku4YgPCBmYWxsXC1mb3J3YXJkOwor5aalIDwgc2F0aXNmYWN0b3J5Owor5p2tIDwgY3Jvc3NcLXN0cmVhbTsKK+i1oCA8IGdpdmVcLXByZXNlbnQ7CivohZQgPCBjaGVzdFwtY2F2aXR5Owor5a2dIDwgZmlsaWFsXC1waWV0eTsKK+esuSA8IHNtYWxsXC1iYW1ib287CivnrJsgPCBiYW1ib29cLWZsdXRlOwor5q2nIDwgZm9ya1wtb2ZcLXJvYWQ7CivpiZsgPCBsZWFkXC1wbHVtYnVtOwor5ZaDIDwga2VlcFwtdGFsa2luZzsKK+iIsSA8IGhvbGRcLW9mXC1zaGlwOwor6YacIDwgdWdseVwtbG9va2luZzsKK+ijmCA8IGZ1clwtZ2FybWVudHM7CivmoL0gPCB0b1wtY3VsdGl2YXRlOwor6K+nIDwgYmVcLXN1cnByaXNlZDsKK+mYjiA8IHZpbGxhZ2VcLWdhdGU7CivmhKMgPCBiZVwtaW5cLWFcLWRhemU7CivnkKogPCB0eXBlXC1vZlwtamFkZTsKK+WopSA8IGJlXC1iZWF1dGlmdWw7CivlkqogPCBzb3VuZFwtb2ZcLWNhdDsKK+a4lyA8IHNvYWtcLXRocm91Z2g7CivokasgPCBib3R0bGVcLWdvdXJkOwor5Z2qIDwgbGV2ZWxcLWdyb3VuZDsKK+WdniA8IGVudHJlbmNobWVudDsKK+apoSA8IGNoZXN0bnV0XC1vYWs7Civnta4gPCB3YXN0ZVwtY290dG9uOwor6LeEIDwgd2Fsa1wtcmFwaWRseTsKK+WxuSA8IHRvXC1yaXNlXC1oaWdoOwor5oOYIDwgZGlzY29uY2VydGVkOwor5o+pIDwgcnViXC1hbmRcLXdpcGU7CivmpaAgPCBuYW1lXC1vZlwtdHJlZTsKK+m6kyA8IGZvb3RcLW9mXC1oaWxsOwor5oG7IDwgZmVlbFwtYW5ndWlzaDsKK+ahhSA8IG1hc3RcLW9mXC1zaGlwOwor6aqLIDwgZ2FsbG9wXC1ob3JzZTsKK+i5kiA8IHRvXC1qdW1wXC1vdmVyOwor56WAIDwgdG9cLXNhY3JpZmljZTsKK+WvsCA8IGdyZWF0XC1kb21haW47CivmlpMgPCBtdWx0aWNvbG9yZWQ7CivkvKsgPCBsb29rXC10b3dhcmRzOwor6LqPIDwgdHJhbXBsZVwtZG93bjsKK+ayvSA8IGJ1eVwtYW5kXC1zZWxsOwor54+lIDwgZWFyXC1vcm5hbWVudDsKK+eshiA8IGJhbWJvb1wtZmVuY2U7CivomawgPCB5b3VuZ1wtZHJhZ29uOwor5oOsIDwgYmVcLXNhdGlzZmllZDsKK+e8qCA8IGFcLWNoaW5cLXN0cmFwOwor5Yq+IDwgZXhhbWluZVwtaW50bzsKK+WYpCA8IHNlZWtcLWZyaWVuZHM7Civor4MgPCBzY29sZFwtbG91ZGx5Owor5Ya9IDwgY29sZFwtYW5kXC1yYXc7Civpo6ggPCBob3N0XC1iYW5xdWV0Owor5oCPIDwgZGlzY29udGVudGVkOwor5YaiIDwgYnVyaWFsXC1tb3VuZDsKK+WXsyA8IGludGVyamVjdGlvbjsKK+WulSA8IHN0b25lXC1xdWFycnk7CivogIYgPCBtYW5cLW9mXC1zaXh0eTsKK+mdkyA8IG1ha2VcLXVwXC1mYWNlOwor6JuwIDwgdG9cLWhpYmVybmF0ZTsKK+aOvCA8IHRocm93XC1ncm91bmQ7Civlm6QgPCBncmFpblwtYmFza2V0Owor562xIDwgZHdhcmZcLWJhbWJvbzsKK+aonyA8IGNhbXBob3JcLXRyZWU7CivpsqUgPCByZWV2ZXMnJ1wtc2hhZDsKK+mAtSA8IHRob3JvdWdoZmFyZTsKK+WytyA8IG1pblwtbW91bnRhaW47CivmnrAgPCBzbW9vdGhcLWJvYXJkOwor5bGQIDwgd29vZGVuXC1zaG9lczsKK+iDmyA8IHRoZVwtc2hvdWxkZXI7CivpuZ4gPCBzcGFycm93XC1oYXdrOwor54qEIDwgYW5pbWFsXC1ob3JuczsKK+i3uSA8IHdhbmRlclwtYWJvdXQ7CivmmLEgPCBicmlnaHRcLWxpZ2h0Owor5rmEIDwgd2F0ZXInJ3NcLWVkZ2U7Civoj4UgPCBjb2Fyc2VcLWdyYXNzOwor57u7IDwgYWZmZWN0aW9uYXRlOwor56+BIDwgYmFtYm9vXC1ncm92ZTsKK+i1hSA8IHByZXBhcmVkXC1mb3I7CivmpIEgPCBvdXRlclwtY29mZmluOwor57qwIDwgc3BvaWxlZFwtc2lsazsKK+m8iyA8IGxhcmdlXC10dXJ0bGU7CivphpAgPCBwdXJlc3RcLWNyZWFtOwor6b6JIDwgdW5ldmVuXC10ZWV0aDsKK+iLuyA8IGtpbmRcLW9mXC1oZXJiOwor6ayjIDwgaG9yc2UnJ3NcLW1hbmU7CivnvJcgPCBmaXNoaW5nXC1saW5lOwor5rmrIDwgYVwtc21hbGxcLXBvbmQ7Civku58gPCBvbmVcLXRob3VzYW5kOwor6Jq2IDwga2luZFwtb2ZcLWNsYW07Civom4QgPCBtb2xlXC1jcmlja2V0Owor5q+CIDwgaHViXC1vZlwtd2hlZWw7CivnlZogPCBzdHJhd1wtYmFza2V0Owor5rSEIDwgYVwtYmFja1wtd2F0ZXI7Civpo6cgPCBldmVuaW5nXC1tZWFsOwor6YaqIDwgdW5jbGVhclwtd2luZTsKK+mqnSA8IGZhbW91c1wtaG9yc2U7CivpqpIgPCBtb3RoZXJcLWhvcnNlOwor5oeUIDwgYmVcLWFmcmFpZFwtb2Y7CivlipMgPCBjdXRcLW9mZlwtbm9zZTsKK+i4lCA8IHRvXC1nZXRcLWFoZWFkOwor6aKhIDwgdGhlXC1mb3JlaGVhZDsKK+a9siA8IGRyaXZpbmdcLXJhaW47CivnvK8gPCBzaWxrXC1mYWJyaWNzOwor55STIDwgZ2xhemVkXC10aWxlczsKK+iNrCA8IGFcLXBsYW50XC1uYW1lOwor5p+SIDwgbnVtYmVyXC1zZXZlbjsKK+eYsyA8IHRvXC1iZVwtaGVhbGVkOwor6LCHIDwgc3BlYWtcLWlsbFwtb2Y7CivkuYcgPCB0b1wtZGVwZW5kXC1vbjsKK+WFtuS7lueahOS6uiA8IG90aGVyXC1wZW9wbGU7CivliqDnt4ogPCB0b1wtaW50ZW5zaWZ5Owor6JCs5LqL6YGUIDwgbWFzdGVyXChjYXJkXCk7CivnnaHoprogPCB0b1wtZ29cLXRvXC1iZWQ7Civml6nmnJ8gPCBlYXJseVwtcGVyaW9kOwor57SE54+l5pu4IDwgYm9va1wtb2ZcLWpvZWw7CivlqpLpq5TloLHlsI4gPCBtZWRpYVwtcmVwb3J0Owor55u46ZecIDwgaW50ZXJyZWxhdGVkOwor6Im+5ruL55eF5oKj6ICFIDwgYWlkc1wtcGF0aWVudDsKK+eBq+m+jSA8IGZpZXJ5XC1kcmFnb247CivlkIjkvZwgPCB0b1wtY29vcGVyYXRlOwor6LOg5YSf6YeRIDwgY29tcGVuc2F0aW9uOwor57C/6KiY566h55CG5ZOhIDwgY29tbWlzc2FyaWFuOwor5pm65YqbIDwgaW50ZWxsaWdlbmNlOwor56S65aiB6ICFIDwgZGVtb25zdHJhdG9yOwor5piU5bm0IDwgZm9ybWVyXC15ZWFyczsKK+WSjOW5s+ainee0hCA8IHBlYWNlXC10cmVhdHk7Civmr5vkuLvluK0gPCBjaGFpcm1hblwtbWFvOwor56Sm5LqVIDwgbWluZVwtXChzaGFmdFwpOwor54af55+lIDwgYWNxdWFpbnRhbmNlOwor5pSv56WoIDwgXChiYW5rXClcLWNoZWNrOwor5bu656+J54mpIDwgXChhXClcLWJ1aWxkaW5nOwor5aeQ5aeQIDwgb2xkZXJcLXNpc3RlcjsKK+iCoeelqOW4guWgtCA8IHN0b2NrXC1tYXJrZXQ7CivplrHopr3lrqQgPCByZWFkaW5nXC1yb29tOwor6K2m5aCxIDwgXChmaXJlXClcLWFsYXJtOwor5b6M5p6cIDwgY29uc2VxdWVuY2VzOwor5LiN5ZCN6K29IDwgZGlzcmVwdXRhYmxlOwor5pS255ukIDwgbWFya2V0XC1jbG9zZTsKK+WfjumYsiA8IGNpdHlcLWRlZmVuY2U7CivpoILkvY8gPCB0b1wtd2l0aHN0YW5kOwor6KW/6YOoIDwgd2VzdGVyblwtcGFydDsKK+WlveaEnyA8IGdvb2RcLW9waW5pb247CivmqZ/morDnorwgPCBtYWNoaW5lXC1jb2RlOwor5aSx5qWtIDwgdW5lbXBsb3ltZW50Owor5pOF6IeqIDwgdW5hdXRob3JpemVkOwor5aSn6ama5aSx6ImyIDwgYXBwcmVoZW5zaXZlOwor6auY5bGk5peF6aSoIDwgbHV4dXJ5XC1ob3RlbDsKK+mAleiHqiA8IG9uXC1vbmUnJ3NcLW93bjsKK+i/keimliA8IHNob3J0c2lnaHRlZDsKK+atpeeKgSA8IHdhbGtpbmdcLXBsb3c7CivkuI3miJDlip8gPCB1bnN1Y2Nlc3NmdWw7CivmsLTmu7jlgrMgPCB3YXRlclwtbWFyZ2luOwor5LiN6YeN6KaWIDwgaW5kaWZmZXJlbmNlOwor6ZaL6ZecIDwgcG93ZXJcLXN3aXRjaDsKK+WOu+S4liA8IHRvXC1wYXNzXC1hd2F5Owor5Lqe5rSy6IiH5aSq5bmz5rSLIDwgYXNpYVwtcGFjaWZpYzsKK+WNgeS5neatsiA8IDE5XC15ZWFyc1wtb2xkOwor6Z2I55qE5LiW55WMIDwgc3Bpcml0XC13b3JsZDsKK+WkmuaWuSA8IGluXC1tYW55XC13YXlzOwor5pC26LO8IDwgcGFuaWNcLWJ1eWluZzsKK+W3oei/tCA8IHRvXC1nb1wtYXJvdW5kOwor6YCZ56iuIDwgdGhpc1wta2luZFwtb2Y7CivlpKfmhI8gPCBnZW5lcmFsXC1pZGVhOwor5Y2K5paH55uyIDwgc2VtaWxpdGVyYXRlOwor5Yil56ixIDwgYW5vdGhlclwtbmFtZTsKK+atpeatpSA8IHN0ZXBcLWJ5XC1zdGVwOwor5Y2U5ZWGIDwgY29uc3VsdFwtd2l0aDsKK+efruaYnyA8IGR3YXJmXC1cKHN0YXJcKTsKK+aguOatpuWZqOippumplyA8IG51Y2xlYXJcLXRlc3Q7CivkuJnng6/phbggPCBhY3J5bGljXC1hY2lkOwor5Y2K54af57e0IDwgc2VtaVwtc2tpbGxlZDsKK+mCo+aZgiA8IGF0XC10aGF0XC10aW1lOwor5ZCD5LiN6ZaLIDwgYmVcLXVucG9wdWxhcjsKK+Wkp+W4qyA8IGdyZWF0XC1tYXN0ZXI7CivntYTnuZQgPCBvcmdhbml6YXRpb247Civlh7rkuY7poJDmlpkgPCB1bmV4cGVjdGVkbHk7CivpgJrnlKggPCBjb21tb25cLVwodXNlXCk7CivlpJrlt6UgPCB0b1wtbXVsdGlwbGV4Owor57O+6JGbIDwgZW50YW5nbGVtZW50Owor6Kmm5o6iIDwgdG9cLXNvdW5kXC1vdXQ7CivlpKvlprsgPCBtYW5cLWFuZFwtd2lmZTsKK+WcsOaWueS4u+e+qSA8IFwibG9jYWxcLVwtaXNtXCI7CivpgZPmrYkgPCB0b1wtYXBvbG9naXplOwor5pWF5oSPIDwgZGVsaWJlcmF0ZWx5Owor6KuL5ZWPIDwgbWF5XC1pXC1hc2tcLlwuXC47Civmv4DlhYnllLHniYcgPCBjb21wYWN0XC1kaXNrOwor5LqM5Y2B5LiA5LiW57SAIDwgMjFzdFwtY2VudHVyeTsKK+WHuueZvCA8IHRvXC1zdGFydFwtb3V0Owor57iu5a+rIDwgYWJicmV2aWF0aW9uOwor5Lit5aSu6YqA6KGMIDwgY2VudHJhbFwtYmFuazsKK+WjgeaOmyA8IHdhbGxcLWhhbmdpbmc7Civnhp/mgokgPCB0b1wta25vd1wtd2VsbDsKK+eGn+aAnSA8IGRlbGliZXJhdGlvbjsKK+aVtOWkqSA8IGFsbFwtZGF5XC1sb25nOwor6bGJ55SyIDwgdHVydGxlXC1zaGVsbDsKK+i6q+mrlCA8IFwoaHVtYW5cKVwtYm9keTsKK+aWr+Wvhue0hOeRnyA8IGpvc2VwaFwtc21pdGg7Civns77nuo8gPCBiZVwtZW50YW5nbGVkOwor5LiN5ZCI55CGIDwgdW5yZWFzb25hYmxlOwor55uu5YmN5LiW55WMIDwgbW9kZXJuXC13b3JsZDsKK+ikh+ijvSA8IHRvXC1kdXBsaWNhdGU7Civpmorml5cgPCB0ZWFtXC1wZW5uYW50Owor5Yqg5by3IDwgdG9cLXJlaW5mb3JjZTsKK+WHuueNhCA8IGxlYXZlXC1wcmlzb247CivkuI3mhInlv6sgPCBkaXNhZ3JlZWFibGU7Civoq4fliKQgPCB0b1wtbmVnb3RpYXRlOwor55yL55eFIDwgc2VlXC1hXC1kb2N0b3I7CivmsJHmhI/oqr/mn6UgPCBvcGluaW9uXC1wb2xsOwor5b6I5LiNIDwgdmVyeVwtdW5cLVwuXC5cLlwuOwor5q+F5YqbIDwgcGVyc2V2ZXJhbmNlOwor6JC95a+mIDwgdG9cLWltcGxlbWVudDsKK+aUr+W6lyA8IGJyYW5jaFwtc3RvcmU7CivpvYYgPCBzdHVmZmVkXC1ub3plOwor6by9IDwgY2xvZ2dlZFwtbm9zZTsKK+eZveiWryA8IHN3ZWV0XC1wb3RhdG87CivntrXml5cgPCBjb2xvcmVkXC1mbGFnOwor6aSK6Zue5aC0IDwgY2hpY2tlblwtZmFybTsKK+m6lSA8IG11bnRqYWNcLWRlZXI7Civnj77ku6Ppn7PmqIIgPCBtb2Rlcm5cLW11c2ljOwor5Zue6aGnIDwgdG9cLWxvb2tcLWJhY2s7Civmrq3ljJYgPCBiZWNvbWVcLXJpZ2lkOwor6bOQIDwgdGhlXC1uYXV0aWx1czsKK+mxkSA8IHRoZVwtc3R1cmdlb247CivpsYIgPCBuYW1lXC1vZlwtZmlzaDsKK+ijvemAoOalreiAhSA8IG1hbnVmYWN0dXJlcjsKK+iGneS4iuWeiyA8IGxhcHRvcFwtXChhZGpcKTsKK+eAj+imvSA8IHRvXC1za2ltXC1vdmVyOwor5b+D55CG5a245a62IDwgcHN5Y2hvbG9naXN0Owor6a2mIDwgc2hhcmtcLWZhbWlseTsKK+mstSA8IGJpZ1wtaXJvblwtcG90Owor6ayFIDwgdW5rZW1wdFwtaGFpcjsKK+iqsuS9mSA8IGFmdGVyXC1zY2hvb2w7Civou4rpgZMgPCB0cmFmZmljXC1sYW5lOwor5q2j5aaCIDwgYmVcLWp1c3RcLWxpa2U7CivpqYggPCBibGFja1wtaG9yc2VzOwor6aiGIDwgZGl2aW5lXC1ob3JzZTsKK+mnnCA8IHN0cm9uZ1wtaG9yc2U7Civpp5cgPCBjaGF0dGVyXC1tYXJrOwor5pyJ5qKd5pyJ55CG5ZywIDwgbWV0aG9kaWNhbGx5Owor5LiN5piv546p5YWS55qEIDwgaXQnJ3NcLW5vXC1qb2tlOwor5a+m6Zqb5oCnIDwgcHJhY3RpY2FsaXR5Owor5Y2B5LiA5bm0IDwgZWxldmVuXC15ZWFyczsKK+mkgCA8IHRhaW50ZWRcLWZvb2Q7CivkuI3og73mirXmipcgPCBpcnJlc2lzdGlibGU7Civpoq0gPCBzd2F5XC1pblwtd2luZDsKK+e0meeJjCA8IHBsYXlpbmdcLWNhcmQ7CivpnqYgPCBsZWF0aGVyXC1zdGFwOwor6YGO5aKD57C96Ki8IDwgdHJhbnNpdFwtdmlzYTsKK+mckSA8IGJlXC1tb2lzdGVuZWQ7CivpmYEgPCBhXC1zdGVlcFwtYmFuazsKK+eZvOe0hSA8IGZsdXNoXC1cKGZhY2VcKTsKK+mbhuWQiCA8IGNvbmdyZWdhdGlvbjsKK+mAn+aIkCA8IGNyYXNoXC1jb3Vyc2U7Civpl5EgPCB0aGVcLWRvb3JzaWxsOwor5YWJ57eaIDwgb3B0aWNhbFwtbGluZTsKK+mVqCA8IHByYXNlb2R5bWl1bTsKK+WKquWKmyA8IGdyZWF0XC1lZmZvcnQ7CivlvJXlhaUgPCB0b1wtZHJhd1wtaW50bzsKK+W7oOWdgCA8IGZhY3RvcnlcLXNpdGU7Civpj7cgPCBwcm90YWN0aW5pdW07Civnm7jkvLzmgKcgPCByZXNzZW1ibGFuY2U7CivpnZ7lkIzmraUgPCBhc3luY2hyb25vdXM7CivpjYogPCBzbWVsdFwtbWV0YWxzOwor6YyIIDwgdG9cLWJlbmRcLWlyb247CivlgrPpgZPmm7ggPCBlY2NsZXNpYXN0ZXM7CivpmqjlkIwgPCBhY2NvbXBhbnlpbmc7CivogLbnqYzln7rnnaMgPCBqZXN1c1wtY2hyaXN0Owor54aS5YWJIDwgZmxvdXJlc2NlbmNlOwor6KiY6ICF5aCx5bCOIDwgcHJlc3NcLXJlcG9ydDsKK+mHqiA8IGFuXC1hbG1zXC1ib3dsOwor5buj5ZGKIDwgdG9cLWFkdmVydGlzZTsKK+mGvSA8IGtpbmRcLW9mXC13aW5lOwor5oyo6L+RIDwgZ2V0XC1jbG9zZVwtdG87Civnt6jliocgPCB3cml0ZVwtYVwtcGxheTsKK+Wjk+WAkiA8IG92ZXJ3aGVsbWluZzsKK+aOoeiEgiA8IHRyZWVcLXRhcHBpbmc7Civpg5kgPCB0b1wtYmVcLWV4aWxlZDsKK+mCsiA8IGdvb2RcLWxvb2tpbmc7Civov6MgPCB0b1wtbGVhcFwtb3ZlcjsKK+mAn+WvqyA8IHF1aWNrXC1za2V0Y2g7CivlpJrlt6XkvZzmpa0gPCBtdWx0aXRha3Npbmc7CivnmbzoqIDkurogPCBzcG9rZXNwZXJzb247CivouLwgPCB0b1wtZmFsbFwtZmxhdDsKK+i4pCA8IGJ1dHRcLWFnYWluc3Q7Civpm4bkuK3lmaggPCBjb25jZW50cmF0b3I7CivkuI3lpKfpm6LlhZIgPCBwcmV0dHlcLWNsb3NlOwor6YCx5ZyNIDwgc3Vycm91bmRpbmdzOwor5r++57SZIDwgZmlsdGVyXC1wYXBlcjsKK+iziSA8IHRvXC1naXZlXC1hbG1zOwor6LKGIDwgc21hbGxcLWJhZGdlcjsKK+ixtiA8IGNhc3RyYXRlXC1waWc7CivotrPnkIPov7cgPCBmb290YmFsbFwtZmFuOwor5pys5L6G6Z2i55uuIDwgdHJ1ZVwtY29sb3VyczsKK+ioquS/hCA8IHZpc2l0XC1ydXNzaWE7Civmi5TpjKggPCB3ZWlnaFwtYW5jaG9yOwor5qiZ54eIIDwgYmVhY29uXC1saWdodDsKK+WGsOaZtiA8IGljZVwtY3J5c3RhbHM7Civoqr4gPCBzcGVha1wtZ2VudGx5Owor5bm+5aSpIDwgc2V2ZXJhbFwtZGF5czsKK+aOiOeyviA8IGluc2VtaW5hdGlvbjsKK+mrkuipsSA8IGJhZFwtbGFuZ3VhZ2U7Civlh7nlsrggPCBjb25jYXZlXC1iYW5rOwor6KWbIDwgZmluZVwtY2xvdGhlczsKK+ilhiA8IGhvb2RcLW9yXC1jb3dsOwor6YGO5L6GIDwgdG9cLWNvbWVcLW92ZXI7Civmk43li54gPCB0b1wtd29ya1wtaGFyZDsKK+mCo+aoo+eahCA8IHRoYXRcLWtpbmRcLW9mOwor5YWJ5rqQIDwgbGlnaHRcLXNvdXJjZTsKK+eyl+S/l+eahOmajue0miA8IHZ1bGdhclwtY2xhc3M7CivpgJ/lh40gPCBxdWlja1wtZnJlZXplOwor57ay6Lev56+A6bueIDwgbmV0d29ya1wtbm9kZTsKK+WdkOeJoiA8IGltcHJpc29ubWVudDsKK+ijnOeJmSA8IGZpbGxcLWFcLXRvb3RoOwor5Yio5YiAIDwgcGxhbmluZ1wtdG9vbDsKK+aKiumXnCA8IGd1YXJkXC1hXC1wYXNzOwor5omT5Y2w5pyN5YuZ5ZmoIDwgcHJpbnRcLXNlcnZlcjsKK+S4jeWPr+aUtuaLviA8IGlycmVtZWRpYWJsZTsKK+WNiumCiuWkqSA8IGhhbGZcLXRoZVwtc2t5Owor6JGcIDwgc21pbGF4XC1jaGluYTsKK+iQqSA8IHNjYW5kZW50XC1ob3A7CivokJggPCBuYXBodGhhbmxlbmU7Civoh6rooZsgPCBzZWxmXC1kZWZlbnNlOwor6LOT6KW/5rOV5bC85LqeIDwgcGVubnN5bHZhbmlhOwor6I6mIDwganVuZ2xlXC1ncmFzczsKK+Wci+Wutuapn+WvhiA8IHN0YXRlXC1zZWNyZXQ7CivpmZvkuIsgPCB5b3VyXC1tYWplc3R5Owor5YWr5pyIIDwgZWlnaHRoXC1tb250aDsKK+iKmiA8IGdyZWVuXC1zcHJvdXQ7CivlgpnogIMgPCBcKGFuXC1hcHBlbmRpeDsKK+iKkSA8IHdoaXRlXC1taWxsZXQ7CivlubTliY0gPCBcLlwuXC55ZWFyc1wtYWdvOwor6IaXIDwgdWdseVwtYW5kXC1mYXQ7CivplovmlK8gPCBleHBlbmRpdHVyZXM7CivmjY/nqY0gPCBjaGlyb3ByYWN0aWM7CivokaHokITphZIgPCBcKGdyYXBlXClcLXdpbmU7CivogpkgPCBhXC1zbWFsbFwtd29ybTsKK+e+gCA8IGZpc2hpbmdcLXRyYXA7Civoqr/mn6Xkurrlk6EgPCBpbnZlc3RpZ2F0b3I7Civmraboo53pg6jpmoogPCBhcm1lZFwtZm9yY2VzOwor5aCx5YO5IDwgcXVvdGVkXC1wcmljZTsKK+i/t+S/oSA8IHN1cGVyc3RpdGlvbjsKK+e6gSA8IHNoYWRlXC1vZlwtcmVkOwor57mZIDwgdG9cLWludGVycHJldDsKK+e4lSA8IHRhbmdsZWRcLWhlbXA7CivovYnmj5sgPCB0b1wtdHJhbnNmb3JtOwor5pCs5a62IDwgbW92ZVwtXChob3VzZVwpOwor5oi26aCtIDwgYmFua1wtYWNjb3VudDsKK+i+suS9nOeJqSA8IFwoZmFybVwpXC1jcm9wczsKK+exryA8IGJhbWJvb1wtY2hlc3Q7Civlm5vljYHlpJogPCBtb3JlXC10aGFuXC00MDsKK+imquS/oSA8IHRydXN0ZWRcLWFpZGU7CivnraQgPCB5b3VuZ1wtYmFtYm9vOwor6KGM56iLIDwgdHJhdmVsXC1yb3V0ZTsKK+etjSA8IGJhbWJvb1wtc2hvb3Q7CivnrYUgPCBiYW1ib29cLWJydXNoOwor5Zq056ujIDwgdGlnaHRcLnN0cmljdDsKK+itieWvpuemriA8IGNvbmZpcm1hdGlvbjsKK+WQjemMhOacjeWLmSA8IG5hbWVcLXNlcnZpY2U7Civnp6wgPCBibGFja1wtbWlsbGV0Owor55yL5L2cIDwgbG9va1wtdXBvblwtYXM7Civoqp7pn7Pkv6HomZ8gPCB2b2ljZVwtc2lnbmFsOwor5a+n6aGYIDwgd291bGRcLXJhdGhlcjsKK+elmCA8IHRvXC1jYWxjdWxhdGU7Civno6AgPCBzYWxcLWFtbW9uaWFjOwor56K2IDwgYVwtZmxvb2RcLWdhdGU7CivmjqXmnp0gPCBcKHRyZWVcKVwtZ3JhZnQ7CivmjojmrIogPCB0b1wtYXV0aG9yaXplOwor55+8IDwgc3RvbmVcLWJyaWRnZTsKK+mWi+WtuCA8IHNjaG9vbFwtb3BlbnM7CivnnZIgPCB0b1wtZ2xhbmNlXC1hdDsKK+S/neitiSA8IHRvXC1ndWFyYW50ZWU7CivmibnoqZUgPCB0b1wtY3JpdGljaXplOwor5a6H6Iiq5bGAIDwgc3BhY2VcLWFnZW5jeTsKK+eapiA8IGJyaWdodFwtd2hpdGU7Civku6TkurrpqZrnlbAgPCBzdXJwcmlzaW5nbHk7CivnmLogPCBhbmFsXC1maXN0dWxhOwor5Y675ZyL5aSWIDwgdG9cLWdvXC1hYnJvYWQ7Civnlr8gPCBwcmlja2x5XC1oZWF0Owor5ouU57WyIDwgd2lyZVwtZHJhd2luZzsKK+aJk+izrSA8IFwobWFrZVwtYVwpXC1iZXQ7CivlhKrmg6AgPCBwcmVmZXJlbnRpYWw7CivnrKzkuozkvY0gPCBzZWNvbmRcLXBsYWNlOwor5YWs5aCxIDwgYW5ub3VuY2VtZW50Owor5Z+656SO6Kit5pa9IDwgYmFzZVwtc3RhdGlvbjsKK+WvhumbhiA8IGNvbmNlbnRyYXRlZDsKK+aOiOaZgiA8IHRpbWVcLXNlcnZpY2U7CivlnKjml4EgPCBieVwtXChhXC1wbGFjZVwpOwor5ZCM5pmC5LujIDwgY29udGVtcG9yYXJ5Owor546NIDwgaWxsXC10ZW1wZXJlZDsKK+aLvOebpCA8IGNvbGRcLXBsYXR0ZXI7Civni4YgPCBwZWtpbmVzZVwtZG9nOwor54mCIDwgZmVtYWxlXC1zaGVlcDsKK+aNkOasviA8IGRvbmF0ZVwtbW9uZXk7Civlia/nuL3nkIYgPCB2aWNlXC1wcmVtaWVyOwor5ZyL5pyJIDwgbmF0aW9uYWxpemVkOwor57O75LiKIDwgdG9cLWJ1Y2tsZVwtdXA7Civog4zpm6IgPCBkZXZpYXRlXC1mcm9tOwor5oyJ54WnIDwgYWNjb3JkaW5nXC10bzsKK+WBtueEtiA8IGluY2lkZW50YWxseTsKK+WWiemPoSA8IGxhcnluZ29zY29wZTsKK+iDjOmZsCA8IGluXC10aGVcLXNoYWRlOwor55Sf5ZG96Leh6LGhIDwgc2lnblwtb2ZcLWxpZmU7CivlhanljYMgPCB0d29cLXRob3VzYW5kOwor5ruKIDwgYVwtcml2ZXJcLW5hbWU7Civot6/lvpfoqJggPCBib29rXC1vZlwtcnV0aDsKK+aPkuWcliA8IGlsbHVzdHJhdGlvbjsKK+azliA8IHN0aWxsXC13YXRlcnM7Civnn6XorZjliIblrZAgPCBpbnRlbGxlY3R1YWw7CivnrqHnkIYgPCB0b1wtc3VwZXJ2aXNlOwor5LiJ5ZCI5LiAIDwgdGhyZWVcLWluXC1vbmU7Civmr4ggPCBmZXJ0aWxlXC1lZ2dzOwor5q6cIDwgaGFsZlwtc2l0dGluZzsKK+Wbm+eZvuiQrCA8IGZvdXJcLW1pbGxpb247CivmooXoirEgPCBwbHVtXC1ibG9zc29tOwor6Zi/5pGp5Y+45pu4IDwgYm9va1wtb2ZcLWFtb3M7CivnlbbnhLYgPCBvbmx5XC1uYXR1cmFsOwor5qmSIDwgd29vZFwtc3RyZWFrczsKK+mrmOizqumHjyA8IGhpZ2hcLXF1YWxpdHk7CivmqJnlg7kgPCBtYXJrXC1hXC1wcmljZTsKK+anuyA8IHplbGtvdmFcLXRyZWU7Civmo5LnoasgPCByb2xsXC1zdWxwaHVyOwor5qeUIDwgd2F0ZXJcLXB1bGxleTsKK+Wkoua4uOeXhyA8IHRvXC1zbGVlcHdhbGs7CivogLbliKnnsbPlk4DmrYwgPCBsYW1lbnRhdGlvbnM7CivppYXpoK0gPCBzdGVhbWVkXC1yb2xsOwor5L+d566hIDwgdGFrZVwtY2FyZVwtb2Y7CivnlKjmiLblrprnvqkgPCB1c2VyXC1kZWZpbmVkOwor5Z6C5LiLIDwgdG9cLWhhbmdcLWRvd247CivmiJDlkInmgJ3msZcgPCBnZW5naGlzXC1raGFuOwor5pGZIDwgdG9cLXRyYW5zcG9ydDsKK+ijgeWToSA8IHRvXC1jdXRcLXN0YWZmOwor5riF6YaSIDwgY2xlYXJcLWhlYWRlZDsKK+ijnOWFhSA8IHRvXC1yZXBsZW5pc2g7CivkuI3ntZDnm58gPCBub25hbGlnbm1lbnQ7Civmj5EgPCB0b1wtZmFicmljYXRlOwor5YWr57Sa6aKoIDwgZm9yY2VcLThcLXdpbmQ7CivmiIkgPCBhXC1iYXR0bGVcLWF4ZTsKK+S+v+enmCA8IGNvbnN0aXBhdGlvbjsKK+eXheW6iiA8IGhvc3BpdGFsXC1iZWQ7CivlubzlhZLlnJIgPCBraW5kZXJnYXJ0ZW47CivmoZTlrZDmsLQgPCBvcmFuZ2VcLWp1aWNlOwor5p6Y6ZG/IDwgaW5jb21wYXRpYmxlOwor5Li75bm557ay6LevIDwgY29yZVwtbmV0d29yazsKK+W7uSA8IHRvXC1wZXJzZWN1dGU7CivlibXpgKDmgKcgPCBjcmVhdGl2ZW5lc3M7Civlmq7lvoAgPCB0b1wteWVhcm5cLWZvcjsKK+iHquaLlCA8IGZyZWVcLW9uZXNlbGY7CivluKggPCBoYW5ka2VyY2hpZWY7CivltqIgPCBoaWdoXC1vclwtdGFsbDsKK+WxmCA8IHRoZVwteW91bmdlc3Q7CivoiKrlpKkgPCBzcGFjZVwtZmxpZ2h0Owor6auY5a+GIDwgaGlnaFwtZGVuc2l0eTsKK+ihqOWcnyA8IHN1cmZhY2VcLXNvaWw7Civmrbfku6Plv5fkuIsgPCAyXC1jaHJvbmljbGVzOwor5q235Luj5b+X5LiKIDwgMVwtY2hyb25pY2xlczsKK+WrsiA8IGdyYW5kXC1tb3RoZXI7Civos57orZggPCBhcHByZWNpYXRpb247CivmtojpmaQgPCB0b1wtZWxpbWluYXRlOwor55Ge6ImyIDwgbG92ZWx5XC1jb2xvcjsKK+iBveiqqiA8IHRvXC1oZWFyXC10b2xkOwor5ZGo57i955CGIDwgcHJlbWllclwtemhvdTsKK+Wft+aUv+m7qCA8IHJ1bGluZ1wtcGFydHk7Civnlbblv4MgPCB0b1wtdGFrZVwtY2FyZTsKK+eVsOaApyA8IGhldGVyb3NleHVhbDsKK+S6pOmLkiA8IGNyb3NzXC1zd29yZHM7CivoiIjlpa4gPCBcKGJlXClcLWV4Y2l0ZWQ7CivmjIfku6TlkI3lrZcgPCBjb21tYW5kXC1uYW1lOwor56a96aGeIDwgYmlyZFwtc3BlY2llczsKK+avjeimquevgCA8IG1vdGhlcicnc1wtZGF5Owor5ZatIDwgY29uZG9sZVwtd2l0aDsKK+S4gOWwj+mDqOWIhiA8IGFcLXNtYWxsXC1wYXJ0Owor5YG95ZaEIDwgaHlwb2NyaXRpY2FsOwor5oqx5oSnIDwgZmVlbFwtYXNoYW1lZDsKK+WRuSA8IHRvXC1lYXRcLWdyYXNzOwor5LiA5LiL5YWSIDwgYVwtbGl0dGxlXC1iaXQ7CivosqDosqwgPCBpblwtY2hhcmdlXC1vZjsKK+ePvuihjCA8IGJlXC1pblwtZWZmZWN0Owor5bGI5pyNIDwgdG9cLXN1cnJlbmRlcjsKK+WOtyA8IHRoZVwtZm9yZVwtYXJtOwor5rib57epIDwgdG9cLXNsb3dcLWRvd247Civli6MgPCBhY2hpZXZlbWVudHM7CivkuIvpvZIgPCBib3R0b21cLXRlZXRoOwor5aqS6auUIDwgXChuZXdzXClcLW1lZGlhOwor5Ym3IDwgdG9cLWxldmVsXC1vZmY7CivpqZrmhJUgPCBhc3RvbmlzaG1lbnQ7CivnlbbloLQgPCBhdFwtdGhlXC1zY2VuZTsKK+ikh+ijveWTgSA8IHJlcHJvZHVjdGlvbjsKK+WElyA8IGNvbXBhcmVcLXdpdGg7Civlj7jms5XmrIogPCBqdXJpc2RpY3Rpb247CivlqZrpvaEgPCBtYXJyeWluZ1wtYWdlOwor5oqx5bGIIDwgZmVlbFwtd3JvbmdlZDsKK+S9lOS+v+WunCA8IGFkdmVudGFnZW91czsKK+S9rSA8IHVuc3VibWlzc2l2ZTsKK+mjn+itnCA8IGNvb2tlcnlcLWJvb2s7CivkuLwgPCBib3dsXC1vZlwtZm9vZDsKK+S4pumdniA8IHJlYWxseVwtaXNuJyd0Owor56qB56C0IDwgYnJlYWt0aHJvdWdoOwor6by75Lit6ZqUIDwgbmFzYWxcLXNlcHR1bTsKK+aWsOiBnuiZlSA8IG5ld3NcLXNlcnZpY2U7CivkvrXmmaggPCB0b3dhcmRzXC1kYXduOwor5LS8IDwgdG9cLWV4dGlycGF0ZTsKK+S0lSA8IGFcLXdvb2RwZWNrZXI7CivmvKLln44gPCBzZW91bFwsXC1rb3JlYTsKK+SzliA8IGZseWluZ1wtYmlyZHM7CivkspwgPCBsb3RzXC1vZlwtZmlzaDsKK+SxiiA8IHJvZVwtb3JcLXNwYXduOwor5K+2IDwgZmFpclwtb2ZcLWhhaXI7Civkr6cgPCBhXC1zbWFsbFwtaGFsbDsKK+mBi+WLlemeiyA8IHNwb3J0c1wtc2hvZXM7Civkrp8gPCBiaWdcLWFuZFwtdGFsbDsKK+WwkeaVuCA8IHNtYWxsXC1udW1iZXI7CivkrpEgPCBhXC1ncmF5XC1ob3JzZTsKK+StmCA8IHdlbGxcLXN0YWNrZWQ7CivkrZYgPCBhbmltYWxcLWZlZWRzOwor5ouM5ZKMIDwgbWl4XC1hbmRcLXN0aXI7CivkrYkgPCBtYXNoZWRcLWJlYW5zOwor5KycIDwgZXZpbFwtc3Bpcml0czsKK+SsmiA8IHRvXC1tb3ZlXC1mYXN0Owor5KyLIDwgdmlvbGVudFwtd2luZDsKK+a1gemAmiA8IHRvXC1jaXJjdWxhdGU7Civkq6ggPCB0YWxsXC1hbmRcLWJpZzsKK+SrmiA8IHNob3J0XC1oZWFkZWQ7Civkq5UgPCBzbWFsbFwtaGVhZGVkOwor5ZKo6KmiIDwgY29uc3VsdGF0aXZlOwor5KuHIDwgdGhlXC13aGlza2VyczsKK+aJkuaLiSA8IHB1c2hcLWxpZ2h0bHk7CivkqrkgPCBhXC1sYXJnZVwtZmFjZTsKK+SqoSA8IHRvXC1mYWxsXC1kb3duOwor5KqLIDwgc2lsa1wtY29yZGFnZTsKK+SpjyA8IGFcLXNtYWxsXC1mYWNlOwor5KmLIDwgYVwtZ3JlZW5cLWZhY2U7CivkqYcgPCBhXC1zbWFsbFwtaGVhZDsKK+WwiOaUvyA8IGRpY3RhdG9yc2hpcDsKK+SotiA8IHRodW5kZXJzdG9ybTsKK+SosiA8IGFcLXNtYWxsXC1oYXJlOwor5KiqIDwgYVwtZHVzdFwtc3Rvcm07CivkqJ0gPCBhXC1wdXJlXC13b21hbjsKK+SoiCA8IGFcLXNtYWxsXC1iaXJkOwor6aO86I2JIDwgZm9yYWdlXC1ncmFzczsKK+SnoiA8IGFcLXJvdWdoXC1yb2FkOwor5KeZIDwgYVwtaGlnaFwtbW91bmQ7CivpvLvohZQgPCBuYXNhbFwtY2F2aXR5Owor5qC46L2f54K4IDwgbnVjbGVhclwtYm9tYjsKK+a1tOihgCA8IGJsb29kXC1zb2FrZWQ7CivkpYMgPCBhXC1iaWdcLWhhbW1lcjsKK+SkrCA8IGFcLXNtYWxsXC1nb25nOwor5KSjIDwgYVwtbWV0YWxcLXJpbmc7CivkpIsgPCB5ZWxsb3dcLWZhY2VkOwor5KO+IDwgY2hlZXNlXC1kcmVnczsKK+SjvCA8IG1peGVkXC1zdGFyY2g7CivlsazlnIsgPCB2YXNzYWxcLXN0YXRlOwor5KCUIDwgZmFyXC1hbmRcLWRlZXA7Civkn78gPCB0b1wtcmV2ZXJlbmNlOwor5J+5IDwgdG9cLWhvcFwtYWJvdXQ7CivovYnos6zljaEgPCBhXC1kZWJpdFwtY2FyZDsKK+mLvOethiA8IGZvdW50YWluXC1wZW47Civkn5UgPCB0b1wtc3RlcFwtdXBvbjsKK+SesSA8IHRvXC1mYWxsXC1vdmVyOwor5J6nIDwgaGFyZFwtdG9cLXdhbGs7CivlgYnkurogPCBncmVhdFwtcGVyc29uOwor5a6J54efIDwgcGl0Y2hcLWFcLWNhbXA7Civlkozop6MgPCBjb25jaWxpYXRvcnk7CivpnaLlsI3pnaIgPCBmYWNlXC10b1wtZmFjZTsKK+SaqiA8IGN1cnZlZFwtaG9ybnM7Civmop3lrZAgPCBhXC1zaG9ydFwtbm90ZTsKK+aPrumcjeeEoeW6piA8IGV4dHJhdmFnYW5jZTsKK+agueacrCA8IFwobm90XClcLWF0XC1hbGw7CivkmIQgPCBjaWNhZGFcLWZhbWl5Owor5JiAIDwgZ3Jhc3Nob3BwZXJzOwor5JenIDwgbGliZWxsdWxpZGFlOwor56iu56iuIDwgYWxsXC1raW5kc1wtb2Y7Civklp4gPCBhXC1zZWFcLWluc2VjdDsKK+SVuyA8IHRvXC1hZGhlcmVcLXRvOwor5JW6IDwgZGVuc2VcLWdyb3d0aDsKK+SVnSA8IG1lZGljYWxcLWhlcmI7CivklYsgPCBvZlwtZWxtXC1ncm91cDsKK+STryA8IHdhdGVyXC1wZXBwZXI7CivnmbvpmbjmnIjnkIMgPCBtb29uXC1sYW5kaW5nOwor6KSH5a+r57SZIDwgY2FyYm9uXC1wYXBlcjsKK+SRvSA8IGFcLWxhcmdlXC1ib2F0Owor5JG1IDwgYVwtc21hbGxcLWJvYXQ7Civms5XpmaIgPCBjb3VydFwtb2ZcLWxhdzsKK+SQhSA8IHRoZVwtYnV0dG9ja3M7Civkj4AgPCBpbmhhcm1vbmlvdXM7CivkjpggPCBiaXJkc1wtZmx5aW5nOwor5rKz6aasIDwgaGlwcG9wb3RhbXVzOwor55Sf5ZG9IDwgbGlmZVwtXChmb3JjZVwpOwor5I2EIDwgYW5cLWluZGVudHVyZTsKK+SMtiA8IFwpXC1ibGFja1wtc2lsazsKK+SMhyA8IGFcLXRoaWNrXC1yb3BlOwor5Li76KeSIDwgbGVhZGluZ1wtcm9sZTsKK+a3q+eMpSA8IGFib21pbmF0aW9uczsKK+eUouWNtSA8IGxheVwtXChhblwtZWdnXCk7Civmnpznmq4gPCBcKGZydWl0XClcLXBlZWw7CivkioUgPCB0b1wtc29ha1wtcmljZTsKK+SJryA8IGRyaWVkXC1iYW1ib287CivkiZUgPCBhXC1iYW1ib29cLWhhdDsKK+SJlCA8IGJhbWJvb1wtc2xpcHM7CivkiJ8gPCBicm9rZW5cLXNvdW5kOwor5Ie4IDwgYVwtYmFtYm9vXC1tYXQ7Civkh50gPCB0b1wtYnJlYWtcLW9mZjsKK+SGoiA8IHRvXC1wZW5ldHJhdGU7Civkhp8gPCBjb3Jlc3BvbmRpbmc7Civkho0gPCBjdXR0ZWRcLWNyb3BzOwor5LiN6LazIDwgaW5zdWZmaWNpZW50Owor5IWBIDwgdG9cLWh1c2tcLXJpY2U7CivmiZPlrZTlmaggPCBob2xlXC1wdW5jaGVyOwor5IOyIDwgYVwtZ3JlYXRcLXJvY2s7Civkg68gPCBzbWFsbFwtc3RvbmVzOwor5IOdIDwgcnVnZ2VkXC1yb2NrczsKK+SCkCA8IHNob3J0XC1zdHVwaWQ7CivkgacgPCB0b1wtb3Blblwtd2lkZTsKK+WutuaUvyA8IGhvdXNla2VlcGluZzsKK+S4jeiysiA8IGltbWVhc3VyYWJsZTsKK+SAgSA8IGFcLXNtYWxsXC1ib3dsOwor47+1IDwgc29mdFwtbGVhdGhlcjsKK+O/siA8IGFcLWZpZXJjZVwtZG9nOwor47+qIDwgc2tpblwtZGlzZWFzZTsKK+O/iiA8IHZlcnlcLXBhaW5mdWw7CivjvpQgPCBsb25nXC1pbGxuZXNzOwor5LuA6bq85pivIDwgd2hhdFwtaXNcLVwuXC5cLlw/Owor6LuN5LqL5o+05YqpIDwgbWlsaXRhcnlcLWFpZDsKK+WHuemAj+mPoSA8IGNvbmNhdmVcLWxlbnM7CivjvIsgPCB0aGVcLWN1Y3VtYmVyOwor5pys5pys5Li7576pIDwgYm9va1wtd29yc2hpcDsKK+O6liA8IGRvZ3NcLWJhcmtpbmc7Civjuo4gPCBmaWVyY2VcLWJlYXN0Owor5LqU6KeS5aSn5qiTIDwgdGhlXC1wZW50YWdvbjsKK+O4viA8IHRvXC1maWxsZWRcLXVwOwor47itIDwgdGhlXC1vcHBvc2l0ZTsKK+O3uSA8IGludGVuc2VcLWhlYXQ7CivjtpUgPCB0b1wtd2FzaFwtcmljZTsKK+S9nOaEmyA8IHRvXC1tYWtlXC1sb3ZlOwor47WKIDwgbW92aW5nXC1pbWFnZTsKK+O0lSA8IHRvXC1ib2lsXC1hd2F5Owor47OeIDwgZGVlcFwtYW5kXC1mYXI7Civjs5EgPCB0b1wtZmxvd1wtb3ZlcjsKK+OwtyA8IHJlc3VycmVjdGlvbjsKK+OvoCA8IGFcLWNyb3NzXC1iZWFtOwor46+cIDwgZGVjYXllZFwtd29vZDsKK+OuriA8IGFcLXdlbGxcLXN3ZWVwOwor466sIDwgYVwtZnJ1aXRcLXRyZWU7CivomIfoga8gPCBzb3ZpZXRcLXVuaW9uOwor46y1IDwgdGhlXC1zaGluYm9uZTsKK+aRqeilv+W+i+azlSA8IGxhd1wtb2ZcLW1vc2VzOwor46uSIDwgaGFuZHNcLWpvaW5lZDsKK+Wus+aAlSA8IHRvXC1iZVwtYWZyYWlkOwor46uDIDwgZmxhZ3NcLWZseWluZzsKK+OrgSA8IHRvXC1jdXRcLWFwYXJ0Owor5pma6ZaTIDwgZXZlbmluZ1wtdGltZTsKK+S6lOeZviA8IGZpdmVcLWh1bmRyZWQ7Civjp7QgPCB0b1wtcnViXC1oYW5kczsKK+OmjiA8IGNhbnRhbmtlcm91czsKK+OltSA8IHRvXC1kaXNob25vdXI7CivjpKcgPCBjb25jaWxpYXRpb247Civjo5IgPCBoYWlyXC1yYWlzaW5nOwor46ORIDwgZG91YmxlXC1pbWFnZTsKK+i/hemAn+iUk+W7tiA8IHJhcGlkXC1zcHJlYWQ7CivjopcgPCBhXC1oaWdoXC1ob3VzZTsKK+OhlCA8IG9pbGVkXC1jYWxpY287CivjoYUgPCBzdG9yYWdlXC1yb29tOwor6K2J6amXIDwgcmVhbFwtcmVzdWx0czsKK+OgviA8IGFcLWRpc2hcLWNsb3RoOwor5oeK5oKUIDwgZmVlbFwtcmVtb3JzZTsKK+OgkiA8IG1vdW50YWluXC10b3A7Civjn5AgPCBiaWdcLWFuZFwtaGlnaDsKK+OfhyA8IGFcLWxhbmRcLXNsaWRlOwor456iIDwgdG9cLWFycml2ZVwtYXQ7CivjnpsgPCByZWRcLXNsaXBwZXJzOwor456FIDwgbm90XC1zdHJhaWdodDsKK+WPpOe+hemmrCA8IGFuY2llbnRcLXJvbWU7CivjnJcgPCBjb3ZldG91c25lc3M7Civjm7wgPCB0b1wtaW50ZXJydXB0Owor5L+E5LitIDwgcnVzc2lhXC1jaGluYTsKK+ObpSA8IHRvXC1wcm9zdHJhdGU7Civjm4ogPCB0b1wtc3BlY3VsYXRlOwor5LqM5Y2B6JCsIDwgMjAwXC10aG91c2FuZDsKK+OYoiA8IGFcLXJvdW5kXC1jYXZlOwor45iNIDwgc291bmRcLW9mXC1yYXQ7CivororpgJ8gPCBzcGVlZFwtY2hhbmdlOwor45a3IDwgYmlyZFwtc2luZ2luZzsKK+W5tOi8leS6uiA8IHlvdW5nXC1wZW9wbGU7CivjlqAgPCBhblwtYXV4aWxpYXJ5Owor45WvIDwgc2xvd1wtdG9uZ3VlZDsKK+WuieW/gyA8IGZlZWxcLWF0XC1lYXNlOwor45WSIDwgYVwtbG9mdHlcLXBlYWs7CivjlKwgPCB0b1wtZXN0YWJsaXNoOwor45SmIDwgdG9cLWVuY291cmFnZTsKK+OUlSA8IHdpdGhcLXB1cnBvc2U7CivjlIMgPCB0b1wtY3V0XC1zaG9ydDsKK+OToyA8IHRvXC1zaW5rXC1pbnRvOwor5Lq65rCRIDwgXCh0aGVcKVwtcGVvcGxlOwor5bCH5L6GIDwgXCh0aGVcKVwtZnV0dXJlOwor45GqIDwgYVwtZ2VuZXJhdGlvbjsKK+ORlCA8IGFsbFwtdG9nZXRoZXI7CivjkLggPCB0b1wtb3duXC1tb25leTsKK+OQtCA8IHRvXC1kcmFnXC1kb3duOwor6aGM6IqxIDwgdGl0bGVcLWRlc2lnbjsKK+WPr+ingCA8IGNvbnNpZGVyYWJsZTsKK+S6uuasiiA8IGh1bWFuXC1yaWdodHM7CivkuZLkuZPnkIMgPCB0YWJsZVwtdGVubmlzOwor6ZqO57Sa5byPIDwgaGllcmFyY2hpY2FsOwor5Lul5pav5ouJ6KiYIDwgYm9va1wtb2ZcLWV6cmE7CivotpXkuIogPCBrZWVwXC11cFwtd2l0aDsKK+iBveiqqumBjiA8IHRvXC1oZWFyXC1zYWlkOwor6ZeM5bC+54KOIDwgYXBwZW5kaWNpdGlzOwor56e75rCRIDwgdG9cLWltbWlncmF0ZTsKK+S7iuaZqCA8IHRoaXNcLW1vcm5pbmc7Civlr4blj4sgPCBjbG9zZVwtZnJpZW5kOwor5Y2X6Z2eIDwgc291dGhcLWFmcmljYTsKK+S4jeespiA8IGluY29uc2lzdGVudDsKK+mWi+aUvuW8j+e2sui3ryA8IG9wZW5cLW5ldHdvcms7CivkuLnnlLAgPCBwdWJpY1wtcmVnaW9uOwor5Y2K6Z+/IDwgaGFsZlwtdGhlXC1kYXk7CivkuLvnkrAgPCBwcmltYXJ5XC1yaW5nOwor5aSn5LiA5LqbIDwgYVwtYml0XC1iaWdnZXI7CivkvaDlgJEgPCB5b3VcLVwocGx1cmFsXCk7CivkuIDnm7QgPCBjb250aW51b3VzbHk7CivnlJ/nianmiLAgPCBnZXJtXC13YXJmYXJlOwor5LiN55+l5omA5o6qIDwgYmVcLWF0XC1hXC1sb3NzOwor5pqX566XIDwgcGxvdFwtYWdhaW5zdDsKK+W7uuioreaApyA8IGNvbnN0cnVjdGl2ZTsKK+S6ruW6piA8IGlsbHVtaW5hdGlvbjsKK+WPg+iAgyA8IGNvbnN1bHRhdGlvbjsKK+WWieWhnumfsyA8IGdsb3R0YWxcLXN0b3A7Civlo6/pupcgPCBtYWduaWZpY2VuY2U7Civpu6jmlL8gPCBwYXJ0eVwtcG9saWN5Owor5qqU5qGI5pyN5YuZIDwgZmlsZVwtc2Vydm9jZTsKK+iZkOW+hSA8IG1pc3RyZWF0bWVudDsKK+aEn+aBqSA8IHRoYW5rc2dpdmluZzsKK+Wkp+mDveacgyA8IG1ldHJvcG9saXRhbjsKK+e9sOeQgyA8IHBlbmFsdHlcLXNob3Q7Civosrvln44gPCBwaGlsYWRlbHBoaWE7CivmnIDkvY7pu54gPCBsb3dlc3RcLXBvaW50Owor5rK555WrIDwgb2lsXC1wYWludGluZzsKK+e+jua0siA8IHRoZVwtYW1lcmljYXM7Civosqflm7AgPCBpbXBvdmVyaXNoZWQ7CivpmY3okL3lnLDpu54gPCBsYW5kaW5nXC1zaXRlOwor5Z+6552j5pWZIDwgY2hyaXN0aWFuaXR5Owor5aSn6YePIDwgZ3JlYXRcLWFtb3VudDsKK+mggueUqCA8IHRvXC1iZVwtb2ZcLXVzZTsKK+WuieecoOmFriA8IG1ldGhhcXVhbG9uZTsKK+aal+eBmCA8IGhpZGRlblwtc2hvYWw7Civol6XmlrkgPCBwcmVzY3JpcHRpb247CivoqabpqZfmgKcgPCBleHBlcmltZW50YWw7CivkuLvmjIEgPCBwcmVzaWRlXC1vdmVyOwor6YqA5bmVIDwgbW92aWVcLXNjcmVlbjsKK+iAgeWutiA8IG5hdGl2ZVwtcGxhY2U7Civmmpfmva4gPCB1bmRlcmN1cnJlbnQ7Civosrflg7kgPCBidXlpbmdcLXByaWNlOwor5aSa6YKKIDwgbXVsdGlsYXRlcmFsOwor54++5LujIDwgbW9kZXJuXC10aW1lczsKK+S7luS6uiA8IG90aGVyXC1wZXJzb247CivkuYvlvowgPCBhZnRlclwod2FyZHNcKTsKK+aFo+S+iyA8IGNvbnZlbnRpb25hbDsKK+S4puaOkiA8IHNpZGVcLWJ5XC1zaWRlOwor6ICV5ZywIDwgYXJpYWJsZVwtbGFuZDsKK+iytOaXj+WMliA8IGFyaXN0b2NyYXRpYzsKK+a1tOWgtCA8IGJhdGhpbmdcLXNwb3Q7CivkupTnmb7okKwgPCBmaXZlXC1taWxsaW9uOwor6JOL6I+cIDwgbGVhZlwtbXVzdGFyZDsKK+WGsOa0suefsyA8IGljZWxhbmRcLXNwYXI7CivmoLjou43lgpkgPCBudWNsZWFyXC1hcm1zOwor5LiN5ouYIDwgbm90XC1zdGlja1wtdG87CivkuInljYHkupTlhIQgPCAzXC1cLjVcLWJpbGxpb247Civpnq3noLIgPCBmaXJlY3JhY2tlcnM7CivkuozljYHlha3mrbIgPCAyNlwteWVhcnNcLW9sZDsKK+aEn+WLlSA8IHRvXC1tb3ZlXC1cKHNiXCk7CivmhI/lkbMgPCBzaWduaWZpY2FuY2U7CivpgJ/oqJjlk6EgPCBzdGVub2dyYXBoZXI7Civnmb3msLTms6UgPCB3aGl0ZVwtY2VtZW50Owor5LiN5oSnIDwgYmVcLXdvcnRoeVwtb2Y7CivpnbbntJkgPCB0YXJnZXRcLXNoZWV0Owor5pW45pOa57ay57WhIDwgZGF0YVwtbmV0d29yazsKK+m+kOeEtuWkp+eJqSA8IGh1Z2VcLW1vbnN0ZXI7CivosaHogbLoqZ4gPCBvbm9tYXRvcG9laWE7CivmhIjliqAgPCBhbGxcLXRoZVwtbW9yZTsKK+mBoOmboiA8IHJlbW92ZWRcLWZyb207CivlkozlloQgPCBnb29kXC1uYXR1cmVkOwor6KqN6K2JIDwgYXV0aGVudGljYXRlOwor5Yio6b2SIDwgZ2Vhclwtc2hhcGluZzsKK+azqOaEjyA8IHRha2VcLW5vdGVcLW9mOwor6aKo5ZGzIDwgbG9jYWxcLWZsYXZvcjsKK+e5oeiKsSA8IHRvXC1lbWJyb2lkZXI7CivmmpfmjqIgPCBzZWNyZXRcLWFnZW50Owor5pq05oCSIDwgdmlvbGVudFwtcmFnZTsKK+S4jeWuuSA8IG5vdFwtdG9sZXJhdGU7CivkuI3lrpwgPCBub3RcLXN1aXRhYmxlOwor54qv5q+SIDwgaWxsZWdhbFwtZHJ1ZzsKK+S4lueVjOefpeWQjSA8IHdvcmxkXC1mYW1vdXM7CivluYDmoLzlvI8gPCBmcmFtZVwtZm9ybWF0Owor5aSn6Ie0IDwgbW9yZVwtb3JcLWxlc3M7CivkuI3lpoIgPCBub3RcLWVxdWFsXC10bzsKK+W+l+elqCA8IHZvdGVcLWdldHRpbmc7CivmtL7liKUgPCBkZW5vbWluYXRpb247Civnt5rou7ggPCB0aHJlYWRcLXNwb29sOwor5pyJ5YipIDwgYWR2YW50YWdlb3VzOwor6KGb55Sf57SZIDwgdG9pbGV0XC1wYXBlcjsKK+iogumWsSA8IHN1YnNjcmlwdGlvbjsKK+aBouW+qSA8IHRvXC1yZWluc3RhdGU7CivpgJnpoIUgPCB0aGlzXC1cKHRoaW5nXCk7Civlv6vpgJ/nmbzlsZUgPCByYXBpZFwtZ3Jvd3RoOwor5aSa56iu6Kqe6KiAIDwgbXVsdGlsaW5ndWFsOwor5Y+v5oOcIDwgaXRcLWlzXC1hXC1waXR5Owor55W25pmC55qEIDwgb2ZcLXRoYXRcLXRpbWU7CivlqZrlpJYgPCBleHRyYW1hcml0YWw7CivkuI3llq4gPCBub3RcLXRoZVwtb25seTsKK+WuieWFqOWVj+mhjCA8IHNhZmV0eVwtaXNzdWU7CivkuYvkuIAgPCBvbmVcLW9mXC1cKHN0aFwpOwor5aKD6YGHIDwgY2lyY3Vtc3RhbmNlOwor6YeO5b+DIDwgd2lsZFwtc2NoZW1lczsKK+WNu+atpSA8IHRvXC1zdGVwXC1iYWNrOwor5Lit5L+EIDwgY2hpbmFcLXJ1c3NpYTsKK+WNseauhiA8IGdyYXZlXC1kYW5nZXI7CivkuK3kup4gPCBjZW50cmFsXC1hc2lhOwor6K6K5oCnIDwgZGVuYXR1cmF0aW9uOwor5Y6f5paZIDwgcmF3XC1tYXRlcmlhbDsKK+a2iOmYsuagkyA8IGZpcmVcLWh5ZHJhbnQ7CivkuI3liKkgPCB1bmZhdm91cmFibGU7CivpgI/mmI7luqYgPCB0cmFuc3BhcmVuY3k7CivniIbnmbwgPCB0b1wtYnJlYWtcLW91dDsKK+WkmuermSA8IG11bHRpc3RhdGlvbjsKK+awp+awoyA8IG94eWdlblwtXChnYXNcKTsKK+W/teaXpSA8IG1lbW9yaWFsXC1kYXk7CivlkITlnIsgPCBlYWNoXC1jb3VudHJ5Owor5LiN5L6/IDwgaW5jb252ZW5pZW50Owor5pmC5oWLIDwgXCh2ZXJiXClcLXRlbnNlOwor576F5YiXIDwgdG9cLXNwZWFkXC1vdXQ7CivkuIDlhIQgPCAxXC0wMFwtbWlsbGlvbjsKK+aatOWLlSA8IGluc3VycmVjdGlvbjsKK+mdtuapnyA8IHRhcmdldFwtZHJvbmU7CivpgYvooYwgPCBiZVwtaW5cLW1vdGlvbjsKK+e3qOiIniA8IGNob3Jlb2dyYXBoeTsKK+S6jOWNgeS4gyA8IHR3ZW50eVwtc2V2ZW47Civku6UgPCBieVwtbWVhbnNcLW9mOwor6L6yIDwgYWdyaWN1bHR1cmU7CivlvoQgPCBuYXJyb3dcLXBhdGg7Civlh6AgPCBzbWFsbFwtdGFibGU7Civkvr8gPCBjb252ZW5pZW5jZTsKK+eUtSA8IGVsZWN0cmljaXR5Owor55m+IDwgb25lXC1odW5kcmVkOwor6LejIDwgYmFyZVwtZm9vdGVkOwor6LSFIDwgdW5uZWNlc3Nhcnk7Civlip8gPCBhY2hpZXZlbWVudDsKK+axnyA8IGxhcmdlXC1yaXZlcjsKK+azqCA8IGNvbmNlbnRyYXRlOwor54mnIDwgdGVuZFwtY2F0dGxlOwor5amaIDwgZ2V0XC1tYXJyaWVkOwor5YiKIDwgcHVibGljYXRpb247Civnhp8gPCB3ZWxsXC1jb29rZWQ7Civppa0gPCBjb29rZWRcLXJpY2U7CivlpaIgPCBleHRyYXZhZ2FudDsKK+afpSA8IGludmVzdGlnYXRlOwor56ugIDwgY29tcG9zaXRpb247CivmjIkgPCBwdXRcLWhhbmRcLW9uOwor6J2gIDwga2luZFwtb2ZcLWJhdDsKK+idlSA8IG5pYmJsZVwtYXdheTsKK+WbsCA8IHRvXC1zdXJyb3VuZDsKK+mZqSA8IG5hcnJvd1wtcGFzczsKK+e7gyA8IHRvXC1wcmFjdGljZTsKK+a6ryA8IGdvXC11cHN0cmVhbTsKK+a4iSA8IGZvcmRcLXN0cmVhbTsKK+i0pSA8IGJlXC1kZWZlYXRlZDsKK+e6tyA8IGluXC1kaXNvcmRlcjsKK+e8uiA8IGJlXC1zaG9ydFwtb2Y7Civpga0gPCBjb21lXC1hY3Jvc3M7CivmiLQgPCB3ZWFyXC1vblwtdG9wOwor5YukIDwgaW5kdXN0cmlvdXM7Civpq4QgPCBib25lXC1tYXJyb3c7CivlirkgPCBlZmZpY2FjaW91czsKK+iyjCA8IGNvdW50ZW5hbmNlOwor57mBIDwgY29tcGxpY2F0ZWQ7Civmn7MgPCB3aWxsb3dcLXRyZWU7Civlh4QgPCBiaXR0ZXJcLWNvbGQ7CivpnJ4gPCByb3N5XC1jbG91ZHM7Civpo7QgPCBzd2VldFwtbWVhdHM7CivogaogPCBpbnRlbGxpZ2VudDsKK+WApiA8IGJlXC10aXJlZFwtb2Y7CivmkZQgPCBmYWxsXC1ncm91bmQ7CivphokgPCBpbnRveGljYXRlZDsKK+a2myA8IGxhcmdlXC13YXZlczsKK+mUhSA8IGNvb2tpbmdcLXBvdDsKK+S7lCA8IHNtYWxsXC10aGluZzsKK+acgyA8IHRvXC1hc3NlbWJsZTsKK+aLhiA8IHRvXC1icmVha1wtdXA7Civnv6AgPCBjb2xvclwtZ3JlZW47CivmmZUgPCBoYWxvXC1pblwtc2t5Owor6L6oIDwgZGlzdGluZ3Vpc2g7CivokZsgPCBlZGlibGVcLWJlYW47Civovb8gPCBzZWRhblwtY2hhaXI7CivmlKsgPCBzbmF0Y2hcLWF3YXk7CivpjZsgPCBmb3JnZVwtbWV0YWw7CivljpUgPCBtaW5nbGVcLXdpdGg7Civnq78gPCBiYW1ib29cLXBvbGU7CivliLggPCBjZXJ0aWZpY2F0ZTsKK+epiSA8IHlvdW5nXC1ncmFpbjsKK+mpsyA8IHZhcmljb2xvcmVkOwor5oaUIDwgYmVcLXdvcm5cLW91dDsKK+eyniA8IGdyb3VuZFwtcmljZTsKK+mBgiA8IGNvbXBseVwtd2l0aDsKK+matiA8IHN1YnNlcnZpZW50Owor57y4IDwgZWFydGhlblwtanVnOwor6IKiIDwgaHVtYW5cLWxpbWJzOwor5bC0IDwgZW1iYXJyYXNzZWQ7CivlkZAgPCByYWlzZVwtdm9pY2U7CivpopYgPCByaWNlXC10YXNzZWw7CivnoKUgPCBhXC13aGV0c3RvbmU7CivlrZUgPCBiZVwtcHJlZ25hbnQ7Civpkp4gPCBwYXBlclwtbW9uZXk7CivnkKIgPCBwb2xpc2hcLWphZGU7Civnu70gPCByaXBwZWRcLXNlYW07CivlpaAgPCBwYXlcLXJlc3BlY3Q7CivmvpwgPCBvdmVyZmxvd2luZzsKK+aDlSA8IGJlXC1jYXV0aW91czsKK+i2tCA8IGx5aW5nXC1wcm9uZTsKK+maiyA8IHN1aVwtZHluYXN0eTsKK+eehCA8IHRha2VcLWFpbVwtYXQ7CivnpZ8gPCBldmlsXC1zcGlyaXQ7Civll5QgPCBiZVwtYW5ncnlcLWF0Owor5aWVIDwgaW5cLXNlcXVlbmNlOwor5qa0IDwgcG9tZWdyYW5hdGU7Civmo5ggPCBqdWp1YmVcLXRyZWU7Civls5kgPCBzdGFuZFwtZXJlY3Q7CivnoIwgPCBzdG9uZVwtc3RlcHM7Civmp5AgPCBsb2N1c3RcLXRyZWU7Civps54gPCBmaXNoXC1zY2FsZXM7Civngr0gPCBidXJuaW5nXC1ob3Q7Civov4IgPCBkb2N0cmluYWlyZTsKK+e8qiA8IHdpbmRcLWFyb3VuZDsKK+WHiyA8IGJlXC13aXRoZXJlZDsKK+e8pCA8IGZsb3VyaXNoaW5nOwor6ZuzIDwgdGh1bmRlcmNsYXA7CivpqbggPCBleHRyYVwtaG9yc2U7Civll7cgPCBsb3VkXC1jbGFtb3I7CivngpYgPCBzdGV3XC1zbG93bHk7CivosI8gPCByZW1vbnN0cmF0ZTsKK+evhiA8IHNlYWxcLXNjcmlwdDsKK+WupiA8IG9mZmljaWFsZG9tOwor55OuIDwgZWFydGhlblwtamFyOwor5pyVIDwgcHJvbm91blwtJydpJyc7CivpmJEgPCBkb29yXC1zY3JlZW47CivljaQgPCBzYWxpbmVcLXNvaWw7CivllI8gPCB3ZWVwXC1vclwtc29iOwor5rGpIDwgcnVuXC1zd2lmdGx5Owor5qaVIDwgYmFueWFuXC10cmVlOwor6ZewIDwgaW50ZXJjYWxhcnk7CivmmIogPCBzdW1tZXJcLXRpbWU7CivnjrcgPCBmbGF3XC1pblwtZ2VtOwor6ZiZIDwgd2F0Y2hcLXRvd2VyOwor5rOMIDwgdG9cLXNlZXBcLW91dDsKK+eDvSA8IHNpZ25hbFwtZmlyZTsKK+WttSA8IHNpdFwtb25cLWVnZ3M7CivmpK0gPCBvdmFsXC1zaGFwZWQ7Civnl4kgPCBjb252dWxzaW9uczsKK+WMnSA8IGZ1bGxcLWNpcmNsZTsKK+mlqiA8IGNvb2tlZFwtZm9vZDsKK+W2mSA8IHByZWNpcGl0b3VzOwor6aKnIDwgY2hlZWtcLWJvbmVzOwor6ZWXIDwgYm9yaW5nXC10b29sOwor5o+2IDwgbWFrZVwtZnVuXC1vZjsKK+eCtyA8IGNhbmRsZVwtd2ljazsKK+i0siA8IGZvcmdlXC1haGVhZDsKK+iasSA8IGdyYXNzaG9wcGVyOwor55eoIDwgY29uc3VtcHRpb247Civmv4IgPCBhXC13YXRlcmZhbGw7CivmsZAgPCBuaWdodFwtdGlkZXM7CivnraAgPCBiYW1ib29cLXNraW47CivmsKQgPCBoYW5naW5nXC1mb2c7Civnl5QgPCBoZW1vcnJob2lkczsKK+i2vyA8IHRvXC10cmVhZFwtb247Civop54gPCB3aW5lXC12ZXNzZWw7CivmjLkgPCB0b1wtYmFsZVwtb3V0Owor6IaRIDwgdGhlXC1rbmVlY2FwOwor5ZSzIDwgY3J5XC1vZlwtYmlyZDsKK+ekhSA8IHN0b25lXC1ibG9jazsKK+eulCA8IHJlZWRcLXNjcmVlbjsKK+ixuCA8IHJhZGljYWxcLTE1MzsKK+eDgyA8IGh5ZHJvY2FyYm9uOwor56CtIDwgc3RvbmVcLXByb2JlOwor5r6NIDwgdGltZWx5XC1yYWluOwor6b6LIDwgdG9vdGhcLWRlY2F5Owor57yxIDwgYXR0YWNoZWRcLXRvOwor5aWCIDwgYmVcLW51bWVyb3VzOwor6bupIDwgdG9cLWRpc2hvbm9yOwor5aOFIDwgdG9cLW9ic3RydWN0Owor5r62IDwgc3RpbGxcLXdhdGVyOwor6aSNIDwgYmVcLXNhdGlhdGVkOwor5p6lIDwgdHlwZVwtb2ZcLW9hazsKK+ahlSA8IHRhbGxvd1wtdHJlZTsKK+myoiA8IHNpbHZlclwtY2FycDsKK+i2sSA8IGdvXC1pblwtaHVycnk7CivlpqsgPCBmYW1pbHlcLW5hbWU7Civmmr4gPCBtb3JuaW5nXC1zdW47CivojaYgPCBicmluZGxlZFwtb3g7CivpgpsgPCBpblwtZGlzdHJlc3M7CivmiKIgPCB0b1wtcHV0XC1hd2F5Owor5qanIDwgdHlwZVwtb2ZcLXlldzsKK+WghyA8IHllbGxvd1wtbG9hbTsKK+WKrCA8IGJlXC1kaWxpZ2VudDsKK+mtiCA8IG1pc2NoZXZpb3VzOwor6Y2qIDwgYW5cLWlyb25cLXBhbjsKK+icoyA8IGR1bmdcLWJlZXRsZTsKK+eXpiA8IFwoZmxhdFwpXC1tb2xlOwor5oisIDwgZXh0ZXJtaW5hdGU7Civll4kgPCBiaXJkJydzXC1jcm9wOwor5YSLIDwgYVwtc21hbGxcLWphcjsKK+ianCA8IHBsYW50XC1sb3VzZTsKK+eynCA8IHNlbGxcLWdyYWluczsKK+aUriA8IHRvXC1mZW5kXC1vZmY7Civoi44gPCBjaGluYVwtZ3Jhc3M7CivlnakgPCBlYXJ0aGVud2FyZTsKK+amiSA8IHR5cGVcLW9mXC1lbG07CivnjqIgPCBwb3JwaHlyaXRlczsKK+e7gSA8IHRvXC1jb250cmFjdDsKK+a9hiA8IHRpbnlcLXN0cmVhbTsKK+mruSA8IHJlZFwtbGFjcXVlcjsKK+inliA8IHRvXC1sb25nXC1mb3I7CivonrUgPCBhXC1jaHJ5c2FsaXM7CivmnaogPCB0aXBcLW9mXC10d2lnOwor5bmCIDwgY292ZXJcLWNsb3RoOwor56GXIDwgYmFycmVuXC1sYW5kOwor6ISeIDwgbWluY2VkXC1tZWF0Owor6L21IDwgZW5kXC1vZlwtYXhsZTsKK+allyA8IGJhclwtb2ZcLWRvb3I7CivmoYQgPCBhXC1jb2lyXC1wYWxtOwor5aCgIDwgYmF0dGxlbWVudHM7Civkv5wgPCB0b1wtdHJ1c3RcLXRvOwor5aOT57iuIDwgdG9cLWNvbXByZXNzOwor5aSn6KaP5qihIDwgbGFyZ2VcLXNjYWxlOwor5bqm6YeP6KGhIDwgbWVhc3VyZW1lbnQ7CivoiKrnqbrooZMgPCBhZXJvbmF1dGljczsKK+ioquiPryA8IHZpc2l0XC1jaGluYTsKK+iqjeefpSA8IGFja25vd2xlZGdlOwor5Y+r5ZaKIDwgZXhjbGFtYXRpb247CivoqKrllY/ogIUgPCBpbnRlcnZpZXdlcjsKK+ayiemHjeaJk+aTiiA8IHRvXC1oaXRcLWhhcmQ7CivpgKPoqZ4gPCBjb25qdW5jdGlvbjsKK+Wlveaci+WPiyA8IGdvb2RcLWZyaWVuZDsKK+Wbm+mdoumrlCA8IHRldHJhaGVkcm9uOwor6Ieq54S26ICM54S2IDwgaW52b2x1bnRhcnk7CivlvIrnq68gPCBtYWxwcmFjdGljZTsKK+mdnuaguCA8IG5vblwtbnVjbGVhcjsKK+aLlOmHmOmMmCA8IGNsYXdcLWhhbW1lcjsKK+eUs+WRveiomCA8IGRldXRlcm9ub215Owor5pS256mrIDwgYWNxdWlzaXRpb247CivmiY3lpJbmtYEgPCBicmFpblwtZHJhaW47CivmsJHml48gPCBuYXRpb25hbGl0eTsKK+S4jei0iuS4gOipniA8IGtlZXBcLXNpbGVudDsKK+aal+S6lSA8IGJsaW5kXC1zaGFmdDsKK+aal+S4rSA8IGluXC10aGVcLWRhcms7Civnn5rnm64gPCB0b1wtZm9jdXNcLW9uOwor5biD6Z6LIDwgY2xvdGhcLXNob2VzOwor5Lq66auU5Zmo5a6YIDwgaHVtYW5cLW9yZ2FuOwor5Z+L6aCtIDwgc3RlYW1lZFwtYnVuOwor5Ym15L2c5YqbIDwgb3JpZ2luYWxpdHk7Civnmb3nn67mmJ8gPCB3aGl0ZVwtZHdhcmY7CivliKTomZUgPCB0b1wtc2VudGFuY2U7CivmsJHml4/kuLvnvqkgPCBuYXRpb25hbGlzbTsKK+WIu+iLpiA8IGhhcmR3b3JraW5nOwor5qiZ6bueIDwgcHVuY3R1YXRpb247Civnmb3purUgPCB3aGVhdFwtZmxvdXI7CivlhpLpmqogPCB0YWtlXC1hXC1yaXNrOwor55m96ba0IDwgd2hpdGVcLWNyYW5lOwor5LiN6LSK5oiQIDwgZGlzYXBwcm92YWw7CivlvoDmmJQgPCBpblwtdGhlXC1wYXN0Owor5Y2K5pyI5YiKIDwgc2VtaW1vbnRobHk7CivpgornloYgPCBib3JkZXJcLWFyZWE7CivorpPkvY0gPCB0b1wtYWJkaWNhdGU7CivmgKrlg7sgPCBwZWN1bGlhcml0eTsKK+W+geaUtiA8IGxldnlcLVwoZmluZVwpOwor5q+N5p2/IDwgbW90aGVyYm9hcmQ7CivpnIDmsYIgPCByZXF1aXJlbWVudDsKK+Wkp+alrSA8IGdyZWF0XC1jYXVzZTsKK+aXuuWtoyA8IGJ1c3lcLXNlYXNvbjsKK+WCmeeUqOeSsCA8IGJhY2t1cFwtcmluZzsKK+W/heWumiA8IGJlXC1ib3VuZFwtdG87CivljYrlubQgPCBoYWxmXC1hXC15ZWFyOwor6Kqy5qGMIDwgc2Nob29sXC1kZXNrOwor5ru0562U6IGyIDwgdGlja1wtXCh0b2NrXCk7CivplpPpmpQgPCBjb21wYXJ0bWVudDsKK+mBsueWkSA8IHRvXC1oZXNpdGF0ZTsKK+mdiOaEnyA8IGluc3BpcmF0aW9uOwor57K+5a2Q5a+G5bqmIDwgc3Blcm1cLWNvdW50Owor5rqr5bqm6KiIIDwgdGhlcm1vZ3JhcGg7CivpgbflsYXnp7vmsJEgPCBpbW1pZ3JhdGlvbjsKK+S4jemHjeimgSA8IHVuaW1wb3J0YW50Owor6YeO55Sf5YuV54mpIDwgd2lsZFwtYW5pbWFsOwor6Kqq5pyNIDwgdG9cLXBlcnN1YWRlOwor5Yi257SEIDwgdG9cLXJlc3RyaWN0Owor5pyJ5b2x6Z+/IDwgaW5mbHVlbnRpYWw7Civpno/lm7ogPCBjb25zb2xpZGF0ZTsKK+eZvOmbu+W7oCA8IHBvd2VyXC1wbGFudDsKK+iBluiqleiAgeS6uiA8IHNhbnRhXC1jbGF1czsKK+WMheaLrCA8IHRvXC1jb21wcmlzZTsKK+WmpeWWhCA8IGFwcHJvcHJpYXRlOwor6L6v6Ki8IDwgZGlhbGVjdGljYWw7CivmtarmvKvkuLvnvqkgPCByb21hbnRpY2lzbTsKK+afj+ael+eJhiA8IGJlcmxpblwtd2FsbDsKK+eAiem5vSA8IGVwc29tXC1zYWx0czsKK+S4jeWPr+efpeirliA8IGFnbm9zdGljaXNtOwor5LiN5YiH5a+m6ZqbIDwgdW5yZWFsaXN0aWM7CivlhbjlnovnlKjpgJQgPCB0eXBpY2FsXC11c2U7Civlr4zmlrzmg7Plg48gPCBpbWFnaW5hdGl2ZTsKK+W3oemCj+iJhyA8IHBhdHJvbFwtYm9hdDsKK+S4jeWQq+eziiA8IHVuYW1iaWd1b3VzOwor5pys5Zyf5YyWIDwgdG9cLWxvY2FsaXplOwor5Y2z5Yi7IDwgaW1tZWRpYXRlbHk7Civlronlhajnh4ggPCBzYWZldHlcLWxhbXA7Civli5jmjqIgPCBleHBsb3JhdGlvbjsKK+acieaEj+aAnSA8IGludGVyZXN0aW5nOwor5Y2a5Y+WIDwgdHJ5XC10b1wtZ2FpbjsKK+eql+eOu+eSgyA8IHdpbmRvd1wtcGFuZTsKK+aUvuajhCA8IHRvXC1yZW5vdW5jZTsKK+WGsOibiyA8IGZyb3plblwtZWdnczsKK+mDteWxgCA8IHBvc3RcLW9mZmljZTsKK+mbmeaVuCA8IGV2ZW5cLW51bWJlcjsKK+iSkOWwiyA8IHRvXC1sb29rXC1mb3I7Civnmb3pgZMgPCBtb29uJydzXC1wYXRoOwor5YuV5oWLIDwgZGV2ZWxvcG1lbnQ7CivmsLjkuYUgPCBldmVybGFzdGluZzsKK+eZvOmAgSA8IHRvXC10cmFuc21pdDsKK+mFjeWCmSA8IHRvXC1hbGxvY2F0ZTsKK+aWsOilv+iYrSA8IG5ld1wtemVhbGFuZDsKK+avlOWmgiA8IGZvclwtZXhhbXBsZTsKK+Wci+S6i+ioquWVjyA8IHN0YXRlXC12aXNpdDsKK+WFi+ijoeWnhuael+WuriA8IHRoZVwta3JlbWxpbjsKK+WkmuWxsSA8IG1vdW50YWlub3VzOwor5Y2K5Y2K5ouJ5ouJIDwgaW5jb21wbGV0ZWQ7Civpm7vlt6UgPCBlbGVjdHJpY2lhbjsKK+e0heiJsiA8IHJlZFwtXChjb2xvclwpOwor5o+P6L+wIDwgdG9cLWRlc2NyaWJlOwor5Y2B5YSEIDwgb25lXC1iaWxsaW9uOwor5LiN5Y+v5YiG6ZuiIDwgaW5zZXBhcmFibGU7CivlhbXon7sgPCBzb2xkaWVyXC1hbnQ7Civmr4Dlo54gPCBkZXN0cnVjdGlvbjsKK+WJiua4myA8IHRvXC1jdXRcLWRvd247Civml6XkuK0gPCBqYXBhblwtY2hpbmE7Civpm7vnupzoqr/liLbop6Poqr/lmaggPCBjYWJsZVwtbW9kZW07CivpmqjmmYIgPCBhdFwtYW55XC10aW1lOwor5LiA5Y2D6Zu25LqU5Y2B5YSEIDwgMTA1XC1iaWxsaW9uOwor6ZW36KuHIDwgYVwtbG9uZ1wtdGFsazsKK+ijnOmBuCA8IGJ5XC1lbGVjdGlvbjsKK+aVl+ihgOeXhyA8IHNlcHRpY2FlbWlhOwor54Sh55Si6ZqO57SaIDwgcHJvbGV0YXJpYXQ7CivokL3lvowgPCBmYWxsXC1iZWhpbmQ7CivliIbkvYjlvI8gPCBkaXN0cnVidXRlZDsKK+WkseWOu+aEj+itmCA8IHVuY29uc2Npb3VzOwor5o6o6YGyIDwgdG9cLXBvc3Rwb25lOwor55m+6JCs5a+M57+BIDwgbWlsbGlvbmFpcmU7CivosrTml4/npL7mnIMgPCBhcmlzdG9jcmFjeTsKK+aTjeazlSA8IGRyaWxsXC1ydWxlczsKK+i7jemaiiA8IGFybXlcLXRyb29wczsKK+aoueiRiSA8IHRyZWVcLWxlYXZlczsKK+WJm+aetiA8IHJpZ2lkXC1mcmFtZTsKK+irh+WIsCA8IHRvXC1yZWZlclwtdG87Civlho3ogIUgPCBmdXJ0aGVybW9yZTsKK+iqv+WItiA8IHRvXC1tb2R1bGF0ZTsKK+WfuuefsyA8IGNvcm5lcnN0b25lOwor5b6A5LqLIDwgcGFzdFwtZXZlbnRzOwor6bqAIDwgZmVtYWxlXC1kZWVyOwor5aSn5YqfIDwgZ3JlYXRcLW1lcml0Owor5pyJ5Lqb5Lq6IDwgc29tZVwtcGVvcGxlOwor6KOB6LuNIDwgZGlzYXJtYW1lbnQ7CivoqqHlkb0gPCBjb21tYW5kbWVudDsKK+m4jyA8IHRyb3BpY1wtYmlyZDsKK+WFp+iHoyA8IGNoYW1iZXJsYWluOwor5rOi5aSa6buO5ZCEIDwgcHVlcnRvXC1yaWNvOwor6bS6IDwgdGhlXC1wZWxpY2FuOwor56uL5rOV5qmf6ZecIDwgbGVnaXNsYXR1cmU7CivpsaAgPCBtaW5jZWRcLWZpc2g7CivprJkgPCBtYXR0ZWRcLWhhaXI7CivlnabolakgPCBtYWduYW5pbW91czsKK+S4jeWQkOawoyA8IHVuYXNwaXJhdGVkOwor5Li76KaB5Y6f5ZugIDwgbWFpblwtcmVhc29uOwor5aKe5by3IDwgdG9cLWluY3JlYXNlOwor6amUIDwgYmxhY2tcLWhvcnNlOwor6amHIDwgaGVhdnlcLWhvcnNlOwor5pyJ57aT6amXIDwgZXhwZXJpZW5jZWQ7CivpmZDmlrwgPCByZXN0cmljdFwtYXQ7CivplonntpMgPCBhbWVub3JyaG9lYTsKK+iqjeWHuiA8IHJlY29nbml0aW9uOwor5YWN6IG3IDwgZGVncmFkYXRpb247Civlt6XnqIsgPCBlbmdpbmVlcmluZzsKK+iomOW+lyA8IHRvXC1yZW1lbWJlcjsKK+aTuuW4gyA8IG9yZGVyXC1hYm91dDsKK+mgiyA8IHRvXC1jYXJlXC1mb3I7CivpgI/mmI4gPCB0cmFuc3BhcmVudDsKK+WKm+WcliA8IHRyeVwtaGFyZFwtdG87CivmnInnlJ/ku6XkvoYgPCBzaW5jZVwtYmlydGg7CivpnqsgPCBpbnRlcnJvZ2F0ZTsKK+iyneWKoOeIvua5liA8IGxha2VcLWJhaWthbDsKK+WFuOemriA8IGNlbGVicmF0aW9uOwor5YiR5pyfIDwgcHJpc29uXC10ZXJtOwor57K+57ChIDwgdG9cLXNpbXBsaWZ5Owor5ZKM5bmz5pyD6KuHIDwgcGVhY2VcLXRhbGtzOwor6Iqx6Iy2IDwgc2NlbnRlZFwtdGVhOwor5pWj5L2IIDwgZGlzc2VtaW5hdGU7CivnsL/oqJggPCBib29ra2VlcGluZzsKK+WkquW5s+a0i+mAsemCiiA8IHBhY2lmaWNcLXJpbTsKK+inuOaAkiA8IHByb3ZvY2F0aW9uOwor5pSq5ZKMIDwgdG9cLW1peFwtXCh1cFwpOwor6YCx5bm0IDwgYW5uaXZlcnNhcnk7CivntZXmnJsgPCBkZXNwZXJhdGlvbjsKK+aVl+S7lyA8IGxvc3RcLWJhdHRsZTsKK+S4jeiuiuWDueagvCA8IGZpeGVkXC1wcmljZTsKK+mQpiA8IGNhbGlmb3JuaXVtOwor57WQ5p2fIDwgdGVybWluYXRpb247CivnhKHmhI8gPCBpbmFkdmVydGFudDsKK+mPuyA8IHBob3NwaG9uaXVtOwor55S35pyL5Y+LIDwgbWFsZVwtZnJpZW5kOwor55u45q+UIDwgY29tcGFyZWRcLXRvOwor6KaG5rKSIDwgYW5uaWhpbGF0ZWQ7Civnmb3nmq7mm7ggPCB3aGl0ZVwtcGFwZXI7CivpjZAgPCBhXC1oZWFkc3RhbGw7CivnnInmoqIgPCB0aXBcLW9mXC1icm93Owor5YiH5o+bIDwgdG9cLWN1dFwtb3ZlcjsKK+e/u+itr+iAhSA8IGludGVycHJldGVyOwor5YWp55m+IDwgdHdvXC1odW5kcmVkOwor5aWz57m85om/5Lq6IDwgaW5oZXJpdHJlc3M7CivlgYfoqK3oqp7msKMgPCBzdWJqdW5jdGl2ZTsKK+WcsOW/g+WQuOWKmyA8IGdyYXZpdGF0aW9uOwor6Ya5IDwgc3Ryb25nXC13aW5lOwor6YaTIDwgc2FsdGVkXC1tZWF0Owor5LiN5rOo5oSPIDwgdGhvdWdodGxlc3M7CivoqZXlg7kgPCB0b1wtZXZhbHVhdGU7CivphY8gPCBtaWxsZXRcLXdpbmU7Civkv53kuI3kvY8gPCBtb3N0XC1saWtlbHk7CivltKnoo4IgPCBidXJzdFwtYXBhcnQ7Civlt7Tlk4jppqwgPCB0aGVcLWJhaGFtYXM7Civmv4DlhYnkuozmpbXnrqEgPCBsYXNlclwtZGlvZGU7CivnmbzpgIHlmaggPCB0cmFuc21pdHRlcjsKK+WKoOS7pSA8IGluXC1hZGRpdGlvbjsKK+aMiemIlSA8IHB1c2hcLWJ1dHRvbjsKK+i/iiA8IHRvXC1nb1wtcm91bmQ7CivloLHmh4kgPCByZXRyaWJ1dGlvbjsKK+W5vuW5tCA8IGFcLWZld1wteWVhcnM7Civnm7zmnJsgPCB0b1wtaG9wZVwtZm9yOwor6ZqK5ZOhIDwgdGVhbVwtbWVtYmVyOwor6KGM6LmkIDwgd2hlcmVhYm91dHM7CivmlK/ku5ggPCBwYXlcLVwobW9uZXlcKTsKK+esrOS4gOeroCA8IGNoYXB0ZXJcLW9uZTsKK+mBi+iyqOmmrOi7iiA8IGNhcmdvXC13YWdvbjsKK+ihqOiqniA8IHByZWRpY2F0aXZlOwor6LymIDwgYVwtaGFuZFwtY2FydDsKK+iou+WGiiA8IHRvXC1yZWdpc3RlcjsKK+mZhOWxrCA8IHN1Ym9yZGluYXRlOwor6YCj55Kw5ZyWIDwgY29taWNcLXN0cmlwOwor5YG96LuNIDwgcHVwcGV0XC1hcm15Owor5YSq56eAIDwgb3V0c3RhbmRpbmc7CivotJcgPCBjb3VudGVyZmVpdDsKK+iymCA8IHRoZVwtcGFudGhlcjsKK+mrlOiyvCA8IGNvbnNpZGVyYXRlOwor6LGmIDwgYVwtd2lsZFwtYm9hcjsKK+ixmCA8IGFcLXNtYWxsXC1waWc7Civln7fmlL8gPCBiZVwtaW5cLXBvd2VyOwor5Zyo5Zyw5LiLIDwgdW5kZXJncm91bmQ7CivnrKzkuInkuJbnlYwgPCB0aGlyZFwtd29ybGQ7CivprZrnq78gPCBmaXNoaW5nXC1yb2Q7CivnhKHpl5znt4ropoEgPCBpbmRpZmZlcmVudDsKK+W4jOacmyA8IHJvXC13aXNoXC1mb3I7CivntITmnIMgPCBhcHBvaW50bWVudDsKK+mrlOiqjSA8IHJlYWxpemF0aW9uOwor5bm45aW9IDwgZm9ydHVuYXRlbHk7CivmjojnsokgPCBwb2xsaW5hdGlvbjsKK+insSA8IHRhcnRhclwtaG9ybjsKK+iktSA8IGJyaWRhbFwtdmVpbDsKK+ijveeJhyA8IG1vdmllbWFraW5nOwor5YKz55yf5qmfIDwgZmF4XC1tYWNoaW5lOwor5qmf5pyDIDwgb3Bwb3J0dW5pdHk7Civpl5zmirwgPCBwdXRcLWluXC1qYWlsOwor5aSn5L6/5Lm+54elIDwgY29uc3RpcGF0ZWQ7Civoo53nlLLou4ogPCBhcm1vcmVkXC1jYXI7CivooIsgPCBjYXRlcnBpbGxhcjsKK+S4jeWBj+S4jeWAmiA8IGV2ZW5cLWhhbmRlZDsKK+ifmyA8IGFcLWxhbmRcLWNyYWI7CivngYzmuokgPCB0b1wtaXJyaWdhdGU7CivpgJrlkYogPCB0b1wtYW5ub3VuY2U7CivonZsgPCB0aGVcLXNvd1wtYnVnOwor6J2NIDwgYVwtY2VudGlwZWRlOwor6amV6Zm9IDwgYmxhemluZ1wtc3VuOwor5YmN5Lu7IDwgcHJlZGVjZXNzb3I7Civol5ogPCB3YXRlclwtcGxhbnQ7CivliIbmlaPms6jmhI8gPCB0b1wtZGlzdHJhY3Q7Civol4QgPCBlZGlibGVcLWZlcm47Civou5/nop8gPCBmbG9wcHlcLWRpc2s7Civok6ogPCBwYXBlclwtcGxhbnQ7Civok4IgPCBsdWNreVwtcGxhY2U7Civokq0gPCB0b1wtY3V0Z3Jhc3M7CivokJAgPCBsdWNreVwtcGxhbnQ7Civoj6IgPCB0b1wtaW5jdWJhdGU7CivnjbLnm4rogIUgPCBiZW5lZmljaWFyeTsKK+Wxj+mWgCA8IHNjcmVlblwtZG9vcjsKK+aLnOioqiA8IHBheVwtYVwtdmlzaXQ7CivljYrpgI/mmI4gPCB0cmFuc2x1Y2VudDsKK+iJlyA8IGJvd1wtb2ZcLWp1bms7CivpgIDlh7ogPCB0b1wtd2l0aGRyYXc7CivmjqHnhaQgPCBjb2FsXC1taW5pbmc7CivnrKzkuIDmtYEgPCBmaXJzdFwtY2xhc3M7CivlubPlh6EgPCBjb21tb25wbGFjZTsKK+isgOauuuahiCA8IG11cmRlclwtY2FzZTsKK+aLrOiZnyA8IHBhcmVudGhlc2lzOwor6IOUIDwgcm90dGVuXC1tZWF0Owor6IKIIDwgdG9cLWNvbW1lbmNlOwor6IGmIDwgdGhlXC1oZWFyaW5nOwor6ICRIDwgc3BlY2lhbGl6ZWQ7CivnvpYgPCBhXC1ibGFja1wtcmFtOwor542O5a246YeRIDwgc2Nob2xhcnNoaXA7CivnvbEgPCBmaXNoaW5nXC1uZXQ7Civmu7LpgI8gPCB0b1wtcGVybWVhdGU7CivnvaAgPCBhbmltYWxcLXRyYXA7CivnvZIgPCByYWRpY2FsXC0xMjI7Civlgbfogb0gPCB0b1wtZXZlc2Ryb3A7Civlh7rlhbUgPCBzZW5kXC10cm9vcHM7Civln7nlnJ8gPCB0b1wtZWFydGhcLXVwOwor6ZaL5oiwIDwgc3RhcnRcLWFcLXdhcjsKK+WIhuS9iCA8IGRpc3RyaWJ1dGVkOwor6L+35Lq6IDwgZmFzY2luYXRpbmc7CivkuI3li5XnlKIgPCByZWFsXC1lc3RhdGU7Civns6IgPCByaWNlXC1zbmFja3M7Civlh7rkvoYgPCB0b1wtY29tZVwtb3V0Owor5L+h6YGTIDwgc2lnbmFsXC1wYXRoOwor5ZWf56S66YyEIDwgcmV2ZWxhdGlvbnM7CivnsLkgPCB0YWxsXC1iYW1ib287CivnsLUgPCBmaW5lXC1iYW1ib287CivnsLAgPCBiYW1ib29cLXJhZnQ7CivprZTms5UgPCBlbmNoYW50bWVudDsKK+eUs+iriyA8IGFwcGx5XC1cKGZvclwpOwor56ys5LiJ5pa5IDwgdGhpcmRcLXBhcnR5Owor562pIDwgYmFtYm9vXC1waXBlOwor562KIDwgYmFtYm9vXC1yb3BlOwor562HIDwgYmFtYm9vXC1uYW1lOwor6LeR6LuKIDwgcmFjaW5nXC1iaWtlOwor56yvIDwgYVwtYmlyZFwtY2FnZTsKK+ihqOiSmeWtkCA8IHdhdGNoXC1nbGFzczsKK+aTuuaetuWtkCA8IHB1dFwtb25cLWFpcnM7CivnqrggPCBmYWludFwtc291bmQ7CivkuI3norrlrpogPCB1bmNlcnRhaW50eTsKK+WFq+W5tCA8IGVpZ2h0XC15ZWFyczsKK+eptSA8IGRlZXBcLWhvbGxvdzsKK+i2hee0muW4guWgtCA8IHN1cGVybWFya2V0Owor56O5IDwgc3RvbmVcLXdlZGdlOwor56KUIDwgXC8yXC1wclwtc3RvbmU7CivnsYzmrL4gPCBmdW5kcmFpc2luZzsKK+Wfn+WQjSA8IGRvbWFpblwtbmFtZTsKK+eggyA8IHdoaXRlXC1zdG9uZTsKK+eetSA8IHRvXC1zdGFyZVwtYXQ7Civlj6TlhbjmtL4gPCBjbGFzc2ljaXN0czsKK+WFq+WtlyA8IGNoYXJhY3RlclwtODsKK+ebuOS8vCA8IHRvXC1yZXNlbWJsZTsKK+aMqueUqCA8IHRvXC1lbWJlenpsZTsKK+WPr+ihjOaApyA8IGZlYXNpYmlsaXR5Owor55ylIDwgZXllXC1zb2NrZXRzOwor55yRIDwgc3Vua2VuXC1leWVzOwor55yKIDwgZGltXC1zaWdodGVkOwor55iaIDwgdG9cLWhpY2NvdWdoOwor55ezIDwgcG9ja1wtbWFya2VkOwor55etIDwgbWVub3JyaGFnaWE7Civnl4MgPCBpbmRpZ2VzdGlvbjsKK+ijneaJriA8IGRyZXNzXC11cFwtYXM7Civln47ljYAgPCBjaXR5XC1wcm9wZXI7Civmup3pgJogPCBjb21tdW5pY2F0ZTsKK+eCuuS6hiA8IGluXC1vcmRlclwtdG87Civnmb3lrq4gPCB3aGl0ZVwtaG91c2U7CivlkIjms5XljJYgPCB0b1wtbGVnYWxpemU7CivlhqDlhpUgPCByb3lhbFwtY3Jvd247Civnj70gPCBqYWRlXC10YWJsZXQ7Civlg4/mqKMgPCBwcmVzZW50YWJsZTsKK+W3p+WQiCA8IGNvaW5jaWRlbmNlOwor54uiIDwgYW5pbWFsXC1uYW1lOwor5oiw6LuKIDwgd2FyXC1jaGFyaW90Owor5o6i54Wn54eIIDwgc2VhcmNobGlnaHQ7Civlronlr6fniYcgPCBtZXByb2JhbWF0ZTsKK+eZveWknCA8IHdoaXRlXC1uaWdodDsKK+aYr+S4jeaYryA8IGlzXC1vclwtaXNuJyd0Owor6Iqx5bqXIDwgZmxvd2VyXC1zaG9wOwor5L6/6Ka9IDwgYnJpZWZcLWd1aWRlOwor54eWIDwgcmVoZWF0XC1mb29kOwor6IiK54mIIDwgb2xkXC12ZXJzaW9uOwor5aSa5bel5ZmoIDwgbXVsdGlwbGV4ZXI7CivnhZ8gPCBicmlnaHRcLXJvb207CivnhY8gPCBkcnlcLWJ5XC1maXJlOwor54WGIDwgcmFnaW5nXC1maXJlOwor5Zug5q2kIDwgdGhhdFwtaXNcLXdoeTsKK+a9viA8IGNsZWFyXC13YXRlcjsKK+WLnuWLleWKmyA8IGxhYm9yXC1mb3JjZTsKK+iqnuiogOWtuCA8IGxpbmd1aXN0aWNzOwor5r2gIDwgdG9cLWJsb3dcLW91dDsKK+a7tyA8IHRoaWNrXC1ncmF2eTsKK+WIhuacn+S7mOasviA8IGluc3RhbGxtZW50Owor55Ge6ZuqIDwgdGltZWx5XC1zbm93Owor5rifIDwgbm90XC1mbG93aW5nOwor5YWs5YWDIDwgXCh5ZWFyXClcLWFcLmRcLjsKK+a1oSA8IGJ1cnN0XC1mb3J0aDsKK+W5uOmBi+WFkiA8IGFcLWx1Y2t5XC1ndXk7CivmsrAgPCB0b1wtbGV0XC1kcm9wOwor6Imy5oOFIDwgcG9ybm9ncmFwaHk7CivmnKzos6rkuIogPCBlc3NlbnRpYWxseTsKK+WcsOS4i+awtCA8IGdyb3VuZHdhdGVyOwor55Sz6KuL5pu4IDwgYXBwbGljYXRpb247CivmrrAgPCBhblwtYWJvcnRpb247Civnmb3liIMgPCBuYWtlZFwtc3dvcmQ7Civnmbzlh7ogPCB0b1wtc2VuZFwtb3V0Owor5pWZ6IKy5oCnIDwgaW5zdHJ1Y3RpdmU7CivlsLHogbcgPCB0YWtlXC1vZmZpY2U7Civnubzmib/mrIogPCBpbmhlcml0YW5jZTsKK+anoiA8IGFcLWhhcmRcLXdvb2Q7Civmi5Tnh58gPCBzdHJpa2VcLWNhbXA7CivmiornqakgPCB0cnVzdHdvcnRoeTsKK+aimCA8IGJhbWJvb1wtdHViZTsKK+ailiA8IGFcLXBhbG1cLXRyZWU7CivmooQgPCBhXC1zb2Z0XC13b29kOwor5LiW55WM6LK/5piTIDwgd29ybGRcLXRyYWRlOwor6IiS5pyNIDwgY29tZm9ydGFibGU7CivmmJwgPCB0b1wtb3Blblwtb3V0Owor5piJIDwgYnJpZ2h0XC1kYXduOwor5peJIDwgdG9cLXN0YXRlXC10bzsKK+aJi+e6jCA8IGZvcm1hbGl0aWVzOwor5oyJ5pyfIDwgb25cLXNjaGVkdWxlOwor5pGOIDwgdG9cLXN0cmFuZ2xlOwor5pWX5a625a2QIDwgc3BlbmR0aHJpZnQ7CivouKnmsLQgPCB0cmVhZFwtd2F0ZXI7CivlrqPoqIAgPCBkZWNsYXJhdGlvbjsKK+iOjuWjq+avlOS6niA8IHNoYWtlc3BlYXJlOwor5bGA6ZmQ5oCnIDwgbGltaXRhdGlvbnM7CivmhYkgPCB0b1wtYnJpbmdcLXVwOwor5ZSu6LKo5ZOhIDwgc2FsZXNwZXJzb247Civlj6/lsIrmlawgPCByZXNwZWN0YWJsZTsKK+WBt+aHtiA8IHRvXC1nb29mXC1vZmY7CivpvLvpn7MgPCBuYXNhbFwtc291bmQ7CivpnZ7mlbjlrZcgPCBub25cLW51bWVyaWM7CivlvrsgPCBhXC13aWRlXC1yb29tOwor5Zuw5aKDIDwgcHJlZGljYW1lbnQ7CivniIbnsbPoirEgPCBwdWZmZWRcLXJpY2U7CivkuInljYHlpKkgPCB0aGlydHlcLWRheXM7Civmu7Lmv74gPCBwZXJjb2xhdGlvbjsKK+W8sCA8IGVuZHNcLW9mXC1ib3c7Civlm5vliIbkuYvkuIAgPCBvbmVcLXF1YXJ0ZXI7Civnl4XlrrkgPCBzaWNrbHlcLWxvb2s7CivmiJDnuL4gPCBwZXJmb3JtYW5jZTsKK+S6uumWkyA8IG1hbicnc1wtd29ybGQ7Civnq6/nq5kgPCBlbmRcLXN0YXRpb247CivojIXlsYvpoIIgPCB0aGF0Y2hcLXJvb2Y7CivooY3lsIQgPCBkaWZmcmFjdGlvbjsKK+W0qiA8IHJvY2t5XC1wZWFrczsKK+WbnuWgsSA8IFwoaW5cKVwtcmV0dXJuOwor5LiJ5Y2B5ZubIDwgdGhpcnR5XC1mb3VyOwor5bGwIDwgZGlzb2JlZGllbnQ7CivlsZ0gPCBzdHJhd1wtc2hvZXM7CivlsJwgPCBhXC1jaGlsZFwtdG95Owor5Zmo5a6Y5o2Q54276ICFIDwgb3JnYW5cLWRvbm9yOwor6KiK5qGG5YKz6YCBIDwgZnJhbWVcLXJlbGF5Owor5oCn5Ly05L62IDwgc2V4XC1wYXJ0bmVyOwor5ayUIDwgYmFieVwtcmFiYml0Owor5oiW56ixIDwgYWxzb1wtY2FsbGVkOwor5Lmz55m96ImyIDwgbWlsa3lcLXdoaXRlOwor55Wr5o+S5ZyW6ICFIDwgaWxsdXN0cmF0b3I7CivnrKzkuozmrKHkuJbnlYzlpKfmiLAgPCB3b3JsZFwtd2FyXC0yOwor6auY5aOTIDwgaGlnaFwtaGFuZGVkOwor5aG/IDwgc21hbGxcLW1vdW5kOwor5Luy6KOBIDwgYXJiaXRyYXRpb247CivloIogPCB3aGl0ZVwtZWFydGg7Civlnp0gPCBkaWxhcGlkYXRlZDsKK+WelCA8IHRvXC1yZXN0cmFpbjsKK+WAvOW+lyA8IHRvXC1iZVwtd29ydGg7CivnlbDluLggPCBleGNlcHRpb25hbDsKK+mRveWtlCA8IGJvcmVcLWFcLWhvbGU7Civok4vnhLbmgKcgPCBwcm9iYWJpbGl0eTsKK+aWh+S7tuacjeWLmeWZqCA8IGZpbGVcLXNlcnZlcjsKK+eVtuWxgCA8IGF1dGhvcml0aWVzOwor5ZaOIDwgYVwtd3J5XC1tb3V0aDsKK+mrmOWUsSA8IHNpbmdcLWxvdWRseTsKK+i2iuWNl+aIsOeIrSA8IHZpZXRuYW1cLXdhcjsKK+WUuSA8IHRvXC1zbWlsZVwtYXQ7Civku4voqZ4gPCBwcmVwb3NpdGlvbjsKK+WPr+iDveaApyA8IHBvc3NpYmlsaXR5Owor5ZKFIDwgdG9cLXNwaXRcLW91dDsKK+iInuWKhyA8IGRhbmNlXC1kcmFtYTsKK+WPuyA8IHBsYWNlXC1uYW1lczsKK+WOviA8IGxpZ2h0bHlcLXRhcDsKK+WCkeWHuiA8IGlsbHVzdHJpb3VzOwor55aG5aC0IDwgYmF0dGxlZmllbGQ7CivnmbvlsbHlrrYgPCBtb3VudGFpbmVlcjsKK+S/oeacjSA8IHRvXC1jb252aW5jZTsKK+WMryA8IGFcLWNvbmNvdXJzZTsKK+WLoCA8IGpvaW5cLWZvcmNlczsKK+eEoeaJgOS4jeWcqCA8IG9tbmlwcmVzZW50Owor5Yq8IDwgYmVcLWRpc2NyZWV0Owor6IS+5rCjIDwgdGVtcGVyYW1lbnQ7CivkuI3lh7rmiYDmlpkgPCBhc1wtZXhwZWN0ZWQ7CivkuIrpvZIgPCB1cHBlclwtdGVldGg7CivmhbDol4kgPCBjb25zb2xhdGlvbjsKK+WJpiA8IHRvXC1jYXN0cmF0ZTsKK+adv+imjyA8IHBsYXRlXC1nYXVnZTsKK+WHqSA8IHdpbnRyeVwtd2luZDsKK+eXheS6uiA8IHNpY2tcLXBlcnNvbjsKK+mRkuWumiA8IHRvXC1hcHByYWlzZTsKK+S4lueVjOWSjOW5syA8IHdvcmxkXC1waWVjZTsKK+WCmeS7tiA8IHNwYXJlXC1wYXJ0czsKK+WTsuWtuOWutiA8IHBoaWxvc29waGVyOwor55Sf5oiQIDwgYmVcLXByb2R1Y2VkOwor5L6/5qG2IDwgY2hhbWJlclwtcG90Owor5YKPIDwgdG9cLXdhcmRcLW9mZjsKK+iEq+awpyA8IGRlb3hpZGF0aW9uOwor5oOF6aGYIDwgd2lsbGluZ25lc3M7CivnlJ/mhYsgPCB3YXlcLW9mXC1saWZlOwor5oyH5Ye6IDwgdG9cLWluZGljYXRlOwor5L+bIDwgbWFrZVwtZWZmb3J0Owor57O75YiX54mHIDwgZmlsbVwtc2VyaWVzOwor6Zi/5a+M5rGXIDwgYWZnaGFuaXN0YW47CivkvbkgPCBkZXBlbmRcLXVwb247CivmtJvmnYnno68gPCBsb3NcLWFuZ2VsZXM7CivmiYHmoYMgPCBhbG1vbmRcLXRyZWU7Civot4vmiYggPCBkb21pbmVlcmluZzsKK+S2qiA8IHNoYXJwXC10ZWV0aDsKK+mZsOa2vOiZlSA8IHNoYWR5XC1wbGFjZTsKK+S/ruW+qSA8IHJlc3RvcmF0aW9uOwor5LW0IDwgYmxhY2tcLWNvbG9yOwor5LWzIDwgbGlnaHRcLWJsYWNrOwor5LWpIDwgZGFya1wteWVsbG93Owor562G5b+DIDwgcGVuY2lsXC1sZWFkOwor5LK7IDwgdGhlXC1zd2FsbG93Owor5L+h5oGvIDwgaW5mb3JtYXRpb247Civksb0gPCB0aGVcLXBvbWZyZXQ7CivksbogPCBhXC1tYWxlXC1jcmFiOwor5LGSIDwgc2FsdGVkXC1maXNoOwor6L2J5L6G6L2J5Y67IDwgcm92ZVwtYXJvdW5kOwor5LiN6aGnIDwgaW5cLXNwaXRlXC1vZjsKK+SumCA8IHlvdW5nXC1ob3JzZTsKK+eri+azlSA8IGxlZ2lzbGF0aW9uOwor5bCN5pa5IDwgY291bnRlcnBhcnQ7Civnqbrnmb0gPCBibGFua1wtc3BhY2U7CivnlLflpbMgPCBtYWxlXC1mZW1hbGU7Civkq7MgPCBodW1hblwtc2t1bGw7Civkq7AgPCBzcGFyc2VcLWhhaXI7Civkq60gPCBiYWxkXC1oZWFkZWQ7Civph53pi5Lnm7jlsI0gPCB0aXRcLWZvclwtdGF0Owor5KuEIDwgYmV0dGVyXC10aGFuOwor5Kq0IDwgdGhlXC1vY2NpcHV0Owor5Ly457iu5oCnIDwgZmxleGliaWxpdHk7CivkqoQgPCBncmVhdFwtYmxhemU7CivkqbsgPCB0b1wtYmVcLWNoaWVmOwor5KmcIDwgZGVzY2VuZGFudHM7CivplonmnIPnpYjnprEgPCBiZW5lZGljdGlvbjsKK+SosSA8IHNwaWx0XC13YXRlcjsKK+SnkyA8IGFcLWJpZ1wtbW91bmQ7CivkprcgPCB0b1wtc3RydWdnbGU7CivnlbblgZogPCB0b1wtdHJlYXRcLWFzOwor5KaYIDwgYVwtdGhyZXNob2xkOwor6ZaJ5YWD6Z+zIDwgY2xvc2VcLXZvd2VsOwor5KWAIDwgdG9cLXB1bGxcLW91dDsKK+SkrSA8IHRvXC1vcm5hbWVudDsKK+SkhSA8IHNvdXRoZXJ3b29kOwor6Leb5a2QIDwgbGFtZVwtcGVyc29uOwor5LiN5Y+v5Lyw6YePIDwgaW5lc3RpbWFibGU7CivkupTokKwgPCA1MFwtdGhvdXNhbmQ7CivkoJ0gPCB0b1wtc3RhbmRcLXVwOwor5KCNIDwgYXRcLXRoZVwtZmVldDsKK+acgOWkp+WMliA8IHRvXC1tYXhpbWl6ZTsKK+SfhSA8IHRvXC1nb1wtYWhlYWQ7Civkn4EgPCBhXC1mb290XC1yYWNlOwor5J69IDwgdG9cLWxpZVwtZmxhdDsKK+SeqCA8IGhhbGZcLWFcLXBhY2U7CivknoQgPCB0b1wtZGlzcGVyc2U7CivknYAgPCBnYXJkZW5cLXBlYXM7CivknLAgPCBkZWVwXC12YWxsZXk7Civkv53lrZggPCB0b1wtY29uc2VydmU7CivknJcgPCBhbmdyeVwtd29yZHM7CivknIYgPCBoYXN0eVwtd29yZHM7Civkm5ggPCB0b1wtdGhpbmtcLW9mOwor5JqzIDwgZG9cLW5vdFwta25vdzsKK+SasiA8IHRvXC1sYXVnaFwtYXQ7Civmt5jnpZ4gPCB0cm91Ymxlc29tZTsKK+SZviA8IHRvXC13YWl0XC1mb3I7CivkmbEgPCBhXC1sb25nXC1jb2F0Owor5JmwIDwgbmV3XC1mZWF0aGVyOwor5JmCIDwgc2hvcnRcLXBhbnRzOwor562G5aKoIDwgcGVuXC1hbmRcLWluazsKK+SXliA8IHRoZVwtcmFpbmJvdzsKK+iWkemkhSA8IGdpbmdlcmJyZWFkOwor56ys5Y2B5LiDIDwgc2V2ZW50ZWVudGg7CivklbggPCB3aGVhdFwtc3RyYXc7CivmuqvluqYgPCB0ZW1wZXJhdHVyZTsKK+SUvyA8IGx1c2hcLWdyb3d0aDsKK+i3keWjmCA8IGJhc2VydW5uaW5nOwor6ZaL5pS+57O757WxIDwgb3Blblwtc3lzdGVtOwor6Jyc5qGDIDwgaG9uZXlcLXBlYWNoOwor6ZGS5LqOIDwgaW5cLWxpZ2h0XC1vZjsKK+SSiyA8IGFpclwtY3VycmVudDsKK+WPr+mpmiA8IGFzdG9uaXNoaW5nOwor5pyJ6ZmQ5YWs5Y+4IDwgY29ycG9yYXRpb247CivnqbrplpPmjqLmuKwgPCBzcGFjZVwtcHJvYmU7CivkkJogPCBnb29kXC1ncmFjZXM7Civkj7YgPCB0aGVcLXN0b21hY2g7Civkj5QgPCB0b1wtZWF0XC1tZWF0Owor5L6/5a6cIDwgaW5leHBlbnNpdmU7Civlk7LlrbjkuIogPCBwaGlsb3NvcGhpYzsKK+WQpuacieaViCA8IGluZWZmaWNpZW50Owor5LiN6L+tIDwgY2Fubm90XC1jb3BlOwor5YyX5pyd6a6uIDwgbm9ydGhcLWtvcmVhOwor5IyqIDwgdG9cLWNvbnRpbnVlOwor5IymIDwgZ3JlZW5cLWNvbG9yOwor5ZCJ54i+5ZCJ5pav5pav5Z2mIDwga2lyZ2hpenN0YW47CivmiYvlr6sgPCBoYW5kd3JpdGluZzsKK+SKrSA8IHRvXC1vdmVydHVybjsKK+SKqyA8IGNvYXJzZVwtcmljZTsKK+SKoiA8IHRoaWNrXC1mbHVpZDsKK+SKkyA8IHRvXC1wYXN0ZVwtdXA7CivkuIvovIkgPCB0b1wtZG93bmxvYWQ7CivkiZ0gPCBiYW1ib29cLXdhcmU7CivkiLggPCBhXC1iaWdcLWNoZXN0Owor6LiP5LiKIDwgc2V0XC1mb290XC1vbjsKK+SGsyA8IGZhclwtZGlzdGFudDsKK+SGmCA8IGFjdXB1bmN0dXJlOwor5IaWIDwgYVwtYmlnXC1ob3VzZTsKK+SFhCA8IGxvbmdcLWdyYWluczsKK+SEvSA8IGNvbW1vblwtcmljZTsKK+SDrSA8IGFcLXN0b25lXC1ib3g7CivnkrDlvaIgPCByaW5nXC1zaGFwZWQ7CivkgrEgPCB0b1wtd2Vhclwtb3V0Owor5IKTIDwgcmVndWxhdGlvbnM7CivkgbsgPCBwcmV0dHlcLWV5ZXM7CivkgbcgPCBicmlnaHRcLWV5ZXM7CivkgbEgPCBob2xsb3dcLWV5ZWQ7CivkvYjmma8gPCBcKHN0YWdlXClcLXNldDsKK+SAgiA8IGFcLWJpZ1wtYmFzaW47Civln7rnpI7llY/poYwgPCBiYXNpY1wtaXNzdWU7Civjv6MgPCB3aGl0ZVwtY29sb3I7Civjv5ggPCB0b1wtZ2V0XC1zaWNrOwor4766IDwgZXllXC1kaXNlYXNlOwor476dIDwgdG9cLWxlYWtcLW91dDsKK+mot+WLlSA8IGRpc3R1cmJhbmNlOwor476IIDwgaHVuY2hiYWNrZWQ7CivjvoMgPCBodW1wXC1iYWNrZWQ7CivjvaogPCBwYWRkeVwtZmllbGQ7CivmgrLop4AgPCBwZXNzaW1pc3RpYzsKK+WPo+mmmeezliA8IGNoZXdpbmdcLWd1bTsKK+O8mCA8IG9mXC1tb3VudGFpbjsKK+O8kyA8IG1lbG9uXC1zZWVkczsKK+ilv+S5g+WxsSA8IG1vdW50XC1zaW5haTsKK+O7kyA8IGFcLWZpbmVcLWphZGU7Civnvo7osowgPCBnb29kbG9va2luZzsKK+m6u+iXpSA8IGFuYWVzdGhldGljOwor47mgIDwgYVwtc21hbGxcLWJpZzsKK+mCgemYv+WvhueBmCA8IG1pYW1pXC1iZWFjaDsKK+O4oCA8IHRoaWNrXC1zdGljazsKK+Wwj+WeiyA8IHNtYWxsXC1zY2FsZTsKK+O1pCA8IHRvXC1vdmVyZmxvdzsKK+O0mCA8IHRvXC1vb3plXC1vdXQ7Civph5Hlsazmnb8gPCBtZXRhbFwtcGxhdGU7CivjsrAgPCBhXC1oYWlyeVwtZG9nOwor47CyIDwgdG9cLWJsb3dcLW9mZjsKK+OviCA8IHNtYWxsXC10cmVlczsKK+mhjOipniA8IGluc2NyaXB0aW9uOwor466dIDwgYW5nbGVcLXN0ZWVsOwor4620IDwgdGhlXC1vc2NpbmVzOwor462OIDwgYVwtdGFsbFwtdHJlZTsKK+i2o+WRsyA8IHRvXC1pbnRlcmVzdDsKK+S/oeS7sCA8IGZpcm1cLWJlbGllZjsKK+OsqSA8IGFcLXRpbnlcLXN0YXI7CivogqHmnbEgPCBzdG9ja2hvbGRlcjsKK+mOruWjkyA8IHN1cHByZXNzaW9uOwor46uYIDwgZGlzYXBwZWFyZWQ7Civmnb/niZkgPCBmcm9udFwtdG9vdGg7Civms7PopLIgPCBzd2ltXC10cnVua3M7CivlkIzos6ogPCBob21vZ2VuZW91czsKK+OphSA8IHRvXC1kcmF3XC1vdXQ7Civlhannmb7okKwgPCB0d29cLW1pbGxpb247CivjqLUgPCB0b1wtY3V0XC1hd2F5Owor46i0IDwgdG9cLXR1cm5vdmVyOwor46iVIDwgdG9cLXNob3VsZGVyOwor55Kw5aKDIDwgZW52aXJvbm1lbnQ7Civjp5QgPCB0b1wtZGlzdHVyYmU7Civkv67nkIblu6AgPCByZXBhaXJcLXNob3A7CivjppIgPCB0b1wtZGVjZWl2ZWQ7CivjpKEgPCB0b1wtc3VycHJpc2U7CivjpJUgPCBtZWxhbmNob2xveTsKK+OkgSA8IHRvXC1kaXNncmFjZTsKK+OjviA8IGRvXC1ub3RcLWNhcmU7Civjo7UgPCB0b1wtcnVuXC1hd2F5Owor46OlIDwgdG9cLXN0b3JlXC11cDsKK+OikyA8IHRvXC1zZXBhcmF0ZTsKK+aenOaxgSA8IGZydWl0XC1qdWljZTsKK+iAleeVnCA8IGZhcm1cLWFuaW1hbDsKK+WinumVt+eOhyA8IGdyb3d0aFwtcmF0ZTsKK+mHjei/lCA8IHJldHVyblwtXCh0b1wpOwor5Lif6IeJIDwgaHVtaWxpYXRpb247CivjnbQgPCBhXC1yb3VuZFwtb2ZmOwor452UIDwgZGVlcFwtYm90dG9tOwor5oiR5ZyLIDwgb3VyXC1jb3VudHJ5Owor45yjIDwgYVwtbGFzdFwtbmFtZTsKK+OcjiA8IHNsYXZlXC1naXJsczsKK+ObkSA8IHRocmVlXC13b21lbjsKK+OaviA8IHRvXC1oYXZlXC1mdW47CivnjrvmhI/ogLPlrprlvosgPCBib3lsZScnc1wtbGF3Owor45i2IDwgYVwtaGVuXC1yb29zdDsKK+i6q+W/g+eIveW/qyA8IHJlZnJlc2htZW50Owor45ilIDwgdG9cLWludmVpZ2xlOwor5L2I5bGAIDwgYXJyYW5nZW1lbnQ7Civku5blgJHpg70gPCBhbGxcLW9mXC10aGVtOwor6K6K6YCaIDwgYmVcLWZsZXhpYmxlOwor6by75raVIDwgbmFzYWxcLW11Y3VzOwor45a9IDwgdG9cLWNhbGxcLW91dDsKK+iyuOasviA8IFwoYmFua1wpXC1sb2FuOwor45aRIDwgdG9cLXNob3V0XC1hdDsKK+OUvCA8IHRvXC1maXRcLWludG87CivjlLYgPCBhXC1zbWFsbFwtY3VwOwor45SPIDwgdG9cLWN1dFwtb3BlbjsKK+OTqSA8IGhvcm5lZFwtaGFpcjsKK+a6luWCmSA8IHByZXBhcmF0aW9uOwor45KoIDwgYW5cLWltbW9ydGFsOwor5a6J5bq3IDwgZ29vZFwtaGVhbHRoOwor6aCQ6KiIIDwgdG9cLWZvcmVjYXN0Owor56Wt5Y+45qyK6KGTIDwgcHJpZXN0Y3JhZnQ7CivpoZ7kvLzpu54gPCByZXNlbWJsYW5jZTsKK+mHj+ipniA8IG1lYXVyZVwtd29yZDsKK+mbmeS6uuaIvyA8IGRvdWJsZVwtcm9vbTsKK+WQjeiRlyA8IG1hc3RlcnBpZWNlOwor576O6KGT6aSoIDwgYXJ0XC1nYWxsZXJ5Owor5Lu75oSPIDwgYXJiaXRyYXJpbHk7CivlronlrrYgPCBzZXR0bGVcLWRvd247CivppZLmgZUgPCBmb3JnaXZlbmVzczsKK+Wuh+WumSA8IG91dGVyXC1zcGFjZTsKK+eRnuWjqyA8IHN3aXR6ZXJsYW5kOwor5Zyo6YCZ5pyf6ZaTIDwgZHVyaW5nXC10aW1lOwor5ZaH5Y+tIDwgbG91ZHNwZWFrZXI7CivntITkvK/oqJggPCBib29rXC1vZlwtam9iOwor54Sh5rOV5b+N5Y+XIDwgaW50b2xlcmFibGU7CivmgrLllpzliocgPCB0cmFnaWNvbWVkeTsKK+mngeWAkiA8IGRlbW9saXNoXC1zYjsKK+WNiuWwgeW7uiA8IHNlbWlcLWZldWRhbDsKK+a1tOaxoCA8IHB1YmxpY1wtYmF0aDsKK+WPjeWLleWIhuWtkCA8IHJlYWN0aW9uYXJ5Owor5a+m6LOq5oCnIDwgc3Vic3RhbnRpdmU7Civororlo5PlmaggPCB0cmFuc2Zvcm1lcjsKK+S9v+eUqOaWueS+vyA8IGVhc3lcLXRvXC11c2U7CivlpZTpprMgPCBydW5cLXF1aWNrbHk7Civnj77lubQgPCBjdXJyZW50XC1hZ2U7CivnhKHms5XlvaLlrrkgPCB1bnNwZWFrYWJsZTsKK+iYi+aenOaxgSA8IGFwcGxlXC1qdWljZTsKK+ekuuevhCA8IGRlbW9uc3RyYXRlOwor5Lqk5o+bIDwgdG9cLWV4Y2hhbmdlOwor6Jel54mpIDwgbWVkaWNhbWVudHM7CivmnInlkIzmg4Xlv4MgPCBzeW1wYXRoZXRpYzsKK+aal+iomOWFkiA8IHNlY3JldFwtbWFyazsKK+mEmemZiyA8IHN1cGVyZmljaWFsOwor5aSc6bavIDwgbmlnaHRpbmdhbGU7CivppJDlu7MgPCBkaW5pbmdcLWhhbGw7CivlqIHohIUgPCB0b1wtdGhyZWF0ZW47CivnqbrliY0gPCB1bnByZWNlZGVudDsKK+mgkOe0hCA8IHJlc2VydmF0aW9uOwor56Kw6KaLIDwgdG9cLXJ1blwtaW50bzsKK+afpeWHuiA8IHRvXC1maW5kXC1vdXQ7CivljYrpgoogPCBoYWxmXC1vZlwtc3RoOwor5pqX56S6IDwgZHJvcFwtYVwtaGludDsKK+S6pOW+gCA8IGFzc29jaWF0aW9uOwor6YWN6YCB6ICFIDwgZGlzdHJpYnV0b3I7Civmm7jms5UgPCBjYWxsaWdyYXBoeTsKK+mHkemKgOiKsSA8IGhvbmV5c3Vja2xlOwor5YWD6ICB6ZmiIDwgdXBwZXJcLWhvdXNlOwor5Y2T6LaKIDwgZGlzdGluY3Rpb247CivogqHlg7kgPCBzdG9ja1wtcHJpY2U7CivkuZ3mnIggPCBuaW50aFwtbW9udGg7CivkuLvmrIogPCBzb3ZlcmVpZ250eTsKK+WPr+aDs+WDjyA8IGNvbmNlaXZhYmxlOwor5aSa6aSYIDwgc3VwZXJmbHVvdXM7Civogb3lj5YgPCBoZWFyXC1cKG5ld3NcKTsKK+aEn+aApyA8IHNlbnNpYmlsaXR5Owor5ZWG5Lq6IDwgYnVzaW5lc3NtYW47CivnpoHmraIgPCB0b1wtcHJvaGliaXQ7Civnp4nmib8gPCB0YWtlXC1vcmRlcnM7CivllK7lg7kgPCB0b1wtc2VsbFwtZm9yOwor5ayM5aqaIDwgZmxpcnRhdGlvdXM7CivpoIHnorwgPCBwYWdlXC1udW1iZXI7CivkuqTlqr4gPCB0b1wtaGF2ZVwtc2V4Owor5LiK5rWBIDwgdXBwZXJcLWNsYXNzOwor5L+h55So5Y2hIDwgY3JlZGl0XC1jYXJkOwor6Zy46YGTIDwgb3ZlcmJlYXJpbmc7Civms6LngL4gPCBncmVhdFwtd2F2ZXM7CivkuI3mraIgPCBpbmNlc3NhbnRseTsKK+eIreitsCA8IGNvbnRyb3ZlcnN5Owor5Lit5p2xIDwgbWlkZGxlXC1lYXN0Owor5aWz566h5a62IDwgaG91c2VrZWVwZXI7CivkuIDljYPlm5vnmb7lhIQgPCAxNDBcLWJpbGxpb247CivkuLnmlrkgPCBmb2xrXC1yZW1lZHk7Civph43nloogPCBvdmVybGFwcGluZzsKK+S4reaXpSA8IGNoaW5hXC1qYXBhbjsKK+iHqueUsemBuOaTh+asiiA8IGZyZWVcLWFnZW5jeTsKK+WWnOatoeWQteaetiA8IHF1YXJyZWxzb21lOwor5pyJ5a6z55qEIDwgZGVzdHJ1Y3RpdmU7Civph43nj74gPCB0b1wtcmVhcHBlYXI7CivmqKHns4rpgo/ovK8gPCBmdXp6eVwtbG9naWM7CivpnbboiLkgPCB0YXJnZXRcLXNoaXA7CivljYPokKwgPCB0ZW5cLW1pbGxpb247CivkuIDmnIggPCBmaXJzdFwtbW9udGg7Civniq/nl4UgPCB0b1wtZmFsbFwtaWxsOwor5ZCM5q2lIDwgc3luY2hyb25vdXM7Civlk7rkubMgPCBicmVhc3RcLWZlZWQ7CivkuLvlvLUgPCB0b1wtYWR2b2NhdGU7CivlqZrmnJ8gPCB3ZWRkaW5nXC1kYXk7CivmmpfmrrogPCBhc3Nhc3NpbmF0ZTsKK+S4u+W4rSA8IGNoYWlycGVyc29uOwor5Y2x56+kIDwgZGVhdGhseVwtaWxsOwor5LqS5YuVIDwgaW50ZXJhY3RpdmU7CivlpKnnhLbmsKMgPCBuYXR1cmFsXC1nYXM7CivkvpvooYDogIUgPCBibG9vZFwtZG9ub3I7CivkuK3lubQgPCBtaWRkbGVcLWFnZWQ7Civnh5/ppIrlk4EgPCBub3VyaXNobWVudDsKK+iyneS4mCA8IHNoZWxsXC1tb3VuZDsKK+aEj+WQkSA8IGRpc3Bvc2l0aW9uOwor6YGp5oeJ5oCnIDwgc3VpdGFiaWxpdHk7CivmsojmvrEgPCBwcmVjaXBpdGF0ZTsKK+WkqeaWh+WPsCA8IG9ic2VydmF0b3J5Owor6ZG/55+z5aC0IDwgcm9ja1wtcXVhcnJ5Owor5bCx77mN6ICM6KiAIDwgY29uc2lkZXJpbmc7CivkuInlubQgPCB0aHJlZVwteWVhcnM7Civwob2xIDwgYVwtaGlnaFwtaGlsbDsKK+S4iuWxpCA8IHVwcGVyXC1sYXllcjsKK+Wjr+ingCA8IHNwZWN0YWN1bGFyOwor5pyJ6YG46IiJ5qyKIDwgY29uc3RpdHVlbnQ7CivmlL/oroogPCBjb3VwXC1kJydldGF0Owor56We5a24IDwgdGhlb2xvZ2ljYWw7CivmuKzpqZfntZDmnpwgPCB0ZXN0XC1yZXN1bHQ7CivlkIjlvbEgPCBqb2ludFwtcGhvdG87CivlpoLnlasgPCBwaWN0dXJlc3F1ZTsKK+S4jeWgqiA8IGNhbm5vdFwtYmVhcjsKK+e1gum7niA8IGRlc3RpbmF0aW9uOwor54iG56u5IDwgZmlyZWNyYWNrZXI7CivnrqHlrrbogbfli5kgPCBzdGV3YXJkc2hpcDsKK+Wwj+axvei7iiA8IGNvbXBhY3RcLWNhcjsKK+eJueasiiA8IHByZXJvZ2F0aXZlOwor6J6657Wy5YiAIDwgc2NyZXdkcml2ZXI7Civni5fkuqTlqr7oiKwgPCBkb2dneVwtc3R5bGU7CivliIbpm6IgPCB0b1wtc2VwZXJhdGU7Civlia/kvZznlKggPCBzaWRlXC1lZmZlY3Q7CivnpoHku6QgPCBwcm9oaWJpdGlvbjsKK+S4jeWFjSA8IHVuYXZvaWRhYmxlOwor6KqT57SEIDwgaG9ub3JcLWJvdW5kOwor6K2J5pu4IDwgY3JlZGVudGlhbHM7CivmsojmgJ0gPCBjb250ZW1wbGF0ZTsKK+ino+mHiyA8IGV4cGxhbmF0aW9uOwor56SB5bO2IDwgcmVlZlwtaXNsYW5kOwor5qau542y6Ku+6LKd54i+542OIDwgbm9iZWxcLXByaXplOwor5LqM5Y2B5YSEIDwgdHdvXC1iaWxsaW9uOwor6L+O6aKoIDwgaW5cLXRoZVwtd2luZDsKK+enu+akjeaApyA8IHBvcnRhYmlsaXR5Owor5aaC5q2kIDwgaW5cLXRoaXNcLXdheTsKK+aCoOS5hSA8IGVzdGFibGlzaGVkOwor5bCI5pyJ5ZCN6KmeIDwgcHJvcGVyXC1ub3VuOwor5LiK5LiLIDwgdXBcLWFuZFwtZG93bjsKK+S6jOWNgeS6lCA8IHR3ZW50eVwtZml2ZTsKK+aci+avlOeCuuWluCA8IHRvXC1jb25zcGlyZTsKK+aQrOW8hOaYr+mdniA8IHNvd1wtZGlzY29yZDsKK+eahCA8IHBvc3Nlc3NpdmU7CivovrwgPCBjcm93ZFwtaW50bzsKK+i+uyA8IGNyb3Nzcm9hZHM7Civog70gPCB0b1wtYmVcLWFibGU7Civpg70gPCBtZXRyb3BvbGlzOwor5paHIDwgbGl0ZXJhdHVyZTsKK+i9jSA8IHdhZ29uXC1ydXRzOwor6LypIDwgZ2VuZXJhdGlvbjsKK+ecqSA8IHRvXC1jb25mdXNlOwor55ygIDwgY2xvc2VcLWV5ZXM7CivovJ0gPCBicmlnaHRuZXNzOwor5byQIDwgbnVtYmVyXC10d287CivogIUgPCB0aGF0XC13aGljaDsKK+S4miA8IHByb2Zlc3Npb247CivlupwgPCBwcmVmZWN0dXJlOwor5pS/IDwgZ292ZXJubWVudDsKK+S6pyA8IGdpdmVcLWJpcnRoOwor5Zy6IDwgb3Blblwtc3BhY2U7Civmr5QgPCB0b1wtY29tcGFyZTsKK+eWsiA8IGZlZWxcLXRpcmVkOwor55S7IDwgYVwtcGFpbnRpbmc7CivmnJsgPCB0b1wtbG9va1wtYXQ7Civos7ogPCBtYWtlXC1tb25leTsKK+WFrSA8IG51bWJlclwtc2l4Owor5bGhIDwgZnJlcXVlbnRseTsKK+WwpCA8IGVzcGVjaWFsbHk7CivlsIggPCBtb25vcG9saXplOwor5Z+6IDwgZm91bmRhdGlvbjsKK+WPjCA8IHNldFwtb2ZcLXR3bzsKK+WtqyA8IGdyYW5kY2hpbGQ7CivlrKogPCBjb3VydFwtbGFkeTsKK+emuyA8IHJhcmVcLWJlYXN0Owor5aqSIDwgZ29cLWJldHdlZW47CivoqowgPCB3cml0ZVwtZG93bjsKK+iqhyA8IGV4YWdnZXJhdGU7Civlk40gPCBtYWtlXC1zb3VuZDsKK+WpvyA8IHNvblwtaW5cLWxhdzsKK+eIrSA8IHRvXC1kaXNwdXRlOwor5ZmoIDwgcmVjZXB0YWNsZTsKK+eHnyA8IGVuY2FtcG1lbnQ7CivlppkgPCBteXN0ZXJpb3VzOwor6IOhIDwgcmVja2xlc3NseTsKK+WmkyA8IHByb3N0aXR1dGU7CivopaYgPCBzaG9ydFwtY29hdDsKK+WjsSA8IG51bWJlclwtb25lOwor6YOtIDwgb3V0ZXJcLXBhcnQ7CivorqggPCB0b1wtZGlzY3VzczsKK+a7hSA8IGV4dGluZ3Vpc2g7CivomZwgPCB0b1wtY2FwdHVyZTsKK+enryA8IGFjY3VtdWxhdGU7Civoj5wgPCB2ZWdldGFibGVzOwor5ZejIDwgdG9cLWNvbm5lY3Q7Civll5wgPCBiZVwtZm9uZFwtb2Y7Civku4sgPCBmb3JlcnVubmVyOwor57SiIDwgbGFyZ2VcLXJvcGU7CivkuIEgPCBtYWxlXC1hZHVsdDsKK+mBjSA8IGV2ZXJ5d2hlcmU7CivokpQgPCB0cmFuc3BsYW50Owor5oeCIDwgdW5kZXJzdGFuZDsKK+mHiiA8IGludGVycHJldGU7CivnurUgPCBpbmR1bGdlXC1pbjsKK+attCA8IHRha2VcLXBsYWNlOwor5LuBIDwgaHVtYW5lbmVzczsKK+aqgCA8IHNhbmRhbHdvb2Q7CivliYogPCBzY3JhcGVcLW9mZjsKK+WIkSA8IHB1bmlzaG1lbnQ7CivlsoIgPCBob3dcP1wtd2hhdFw/Owor6ZqGIDwgcHJvc3Blcm91czsKK+WIgyA8IGVkZ2VkXC10b29sOwor5p6QIDwgc3BsaXRcLXdvb2Q7CivohbggPCBpbnRlc3RpbmVzOwor5qWTIDwgbWFwbGVcLXRyZWU7CivppIUgPCByaWNlXC1jYWtlczsKK+WCjSA8IGJ5XC1zaWRlXC1vZjsKK+agkyA8IHdvb2RlblwtcGVnOwor5YevIDwgdHJpdW1waGFudDsKK+aBrSA8IHJlc3BlY3RmdWw7CivnpbggPCBtaXNmb3J0dW5lOwor56aFIDwgbWVkaXRhdGlvbjsKK+afryA8IGF4ZVwtaGFuZGxlOwor5o2QIDwgY29udHJpYnV0ZTsKK+i4qiA8IGZvb3RwcmludHM7CivlsYEgPCBicmVha1wtd2luZDsKK+iwiiA8IGZyaWVuZHNoaXA7CivlgqggPCBzYXZlXC1tb25leTsKK+mbgSA8IHdpbGRcLWdvb3NlOwor5pGKIDwgc3ByZWFkXC1vdXQ7CivlkKggPCBtZXRyaWNcLXRvbjsKK+S5jSA8IGZpcnN0XC10aW1lOwor6ZmAIDwgc3RlZXBcLWJhbms7Civntr8gPCBjb3R0b25cLXdhZDsKK+e2sSA8IGhlYXZ5XC1yb3BlOwor5oqRIDwgcHJlc3NcLWRvd247CivlvawgPCBjdWx0aXZhdGVkOwor5pKuIDwgbGl0dGxlXC1iaXQ7CivnsqUgPCByaWNlXC1ncnVlbDsKK+ibriA8IGJhcmJhcmlhbnM7CivnrrggPCBjaG9wc3RpY2tzOwor5621IDwgYmFtYm9vXC1tYXQ7CivoiYcgPCBzbWFsbFwtYm9hdDsKK+aNjCA8IGJyZWFrXC1vcGVuOwor56ygIDwgYmFtYm9vXC1oYXQ7Civlup4gPCBkaXNvcmRlcmx5Owor56udIDwgdG9cLWNvbWJpbmU7CivmiYkgPCBkb29yXC1wYW5lbDsKK+WdnSA8IGVtYmFua21lbnQ7CivmhqcgPCBpcnJlc29sdXRlOwor55SpIDwgdGhyb3dcLWF3YXk7CivphYwgPCBzZXJ2ZVwtd2luZTsKK+ejkCA8IGxhcmdlXC1yb2NrOwor6L6FIDwgY2hlZWtcLWJvbmU7CivmjaEgPCB0b1wtcGlja1wtdXA7CivouYggPCBzdGFtcFwtZmVldDsKK+aZkiA8IGRyeVwtaW5cLXN1bjsKK+atvCA8IGFubmloaWxhdGU7CivmtqkgPCBhc3RyaW5nZW50Owor6ZyOIDwgbGlnaHRcLXJhaW47Civnu7ggPCBzaWxrXC1jbG90aDsKK+ecryA8IGJlXC1ibGluZGVkOwor5a+FIDwgdG9cLXJlc3BlY3Q7CivnnLYgPCBleWVcLXNvY2tldDsKK+einyA8IHNtYWxsXC1kaXNoOwor6JW0IDwgdG9cLWNvbGxlY3Q7Civov60gPCByZXBlYXRlZGx5Owor5petIDwgcmlzaW5nXC1zdW47Civmgo0gPCBjb3VyYWdlb3VzOwor5p6iIDwgZG9vclwtaGluZ2U7Civot4sgPCBnb1wtYnlcLWZvb3Q7CivlnKogPCBcKHBob25ldGljXCk7CivmkJQgPCB0b1wtc2NyYXRjaDsKK+WajiA8IGNyeVwtbG91ZGx5Owor5rGbIDwgaGlnaFwtd2F0ZXI7CivohK8gPCBkcmllZFwtbWVhdDsKK+WXkiA8IHRvXC1kZXNwYWlyOwor5aKfIDwgaGlnaFwtbW91bmQ7CivpposgPCBnbHV0dG9ub3VzOwor6LmtIDwgdG9cLXNodWZmbGU7CivmvoggPCB0aG9yb3VnaGx5Owor57ytIDwgd2luZFwtcm91bmQ7CivllrMgPCB3aGlzcGVyaW5nOwor5bynIDwgd29vZGVuXC1ib3c7Civmg4YgPCBkaXN0cmVzc2VkOwor5pK1IDwgZHJpdmVcLWF3YXk7CivovbYgPCBydXNoXC1mb3J0aDsKK+eqvyA8IG1pbmVcLXNoYWZ0Owor5qi1IDwgd29vZGN1dHRlcjsKK+eKgCA8IHJoaW5vY2Vyb3M7Civnu5ogPCB2YXJpZWdhdGVkOwor6JeVIDwgbG90dXNcLXJvb3Q7CivmkZ4gPCB0b1wtcGlsZVwtdXA7Civmu6QgPCBzdHJhaW5cLW91dDsKK+e8iCA8IGluZGlzdGluY3Q7CivogqogPCBhbmltYWxcLWZhdDsKK+eUhCA8IHRvXC1leGFtaW5lOwor6ZObIDwgZnJ5aW5nXC1wYW47Civlq6EgPCBsZWdhbFwtd2lmZTsKK+ejtyA8IHBob3NwaG9ydXM7Civnv6EgPCBraW5nZmlzaGVyOwor6ZytIDwgY2xvdWR5XC1za3k7CivoiKsgPCBmYW5jeVwtYm9hdDsKK+e6qCA8IHdoaXRlXC1zaWxrOwor5qa3IDwgZm9vdGJyaWRnZTsKK+iUlyA8IHN1Z2FyXC1jYW5lOwor5b2XIDwgYnJvb21zdGljazsKK+WWnyA8IGhlYXZlXC1zaWdoOwor5ZaRIDwgdG9cLWJlXC1kdW1iOwor6bG/IDwgY3V0dGxlZmlzaDsKK+WAnCA8IHJhaXNlXC1oaWdoOwor5ruCIDwgdG9ycmVudGlhbDsKK+W/uyA8IGRlbGlnaHRmdWw7Civnh6cgPCBmbGludHN0b25lOwor56iUIDwgcmlwZVwtZ3JhaW47CivpookgPCBmbHlcLXVwd2FyZDsKK+iIuCA8IGxhcmdlXC1ib2F0Owor55yZIDwgdG9cLWdhemVcLWF0Owor55iAIDwgYVwtaGVtYXRvbWE7CivlpK8gPCBoZWF2eVwtbG9hZDsKK+myoCA8IGZpc2hcLWJvbmVzOwor6IyPIDwgdGFsbFwtZ3Jhc3M7CivojK8gPCBjaGluYVwtcm9vdDsKK+mypyA8IGdpYW50XC1maXNoOwor6YCmIDwgbWVhbmRlcmluZzsKK+mqnCA8IHdpbGRcLWhvcnNlOwor5qy5IDwgZmllcmNlXC1kb2c7CivnvJsgPCBkZWNvcmF0aXZlOwor6IuVIDwgcnVzaFwtcGxhbnQ7CivpobggPCBsYXJnZVwtZmFjZTsKK+e8piA8IHBsYWluXC1zaWxrOwor5biZIDwgYm9va1wtY292ZXI7Civps4MgPCBmaXNoXC1naWxsczsKK+mGtCA8IHN3ZWV0XC13aW5lOwor6L6KIDwgdHVyblwtcm91bmQ7CivlspggPCBzdGVlcFwtaGlsbDsKK+WArCA8IG5vdGljZWFibGU7Civpsp4gPCBkcmllZFwtZmlzaDsKK+e8gSA8IGJsYWNrXC1zaWxrOwor566nIDwgcmF0dGFuXC1ib3g7CivlooEgPCB0b1wtcGxhc3RlcjsKK+e9tCA8IGJyb3duXC1iZWFyOwor54iwIDwgbGVhZFwtb25cLXRvOwor5p2yIDwgYnJpZ2h0XC1zdW47CivnmZQgPCBoeXN0ZXJpY2FsOwor6I6cIDwgYXZlbmFcLW51ZGE7Civln5kgPCBpbnN0cnVtZW50Owor542+IDwgdGhlXC1iYWRnZXI7Civpg6sgPCBwbGFjZVwtbmFtZTsKK+ibjyA8IHJhem9yXC1jbGFtOwor5biRIDwgYVwtdHJlYXN1cnk7Civmj6AgPCB0b1wtcHVsbFwtdXA7CivotpEgPCBjYW4nJ3RcLW1vdmU7CivpmI0gPCBnYXRla2VlcGVyOwor5o6KIDwgdG9cLWV4dHJhY3Q7CivplZ0gPCBkeXNwcm9zaXVtOwor56CXIDwgZ2lhbnRcLWNsYW07Civlq6sgPCB1Z2x5XC13b21hbjsKK+i3lyA8IHRoZVwtaW5zdGVwOwor5rW8IDwgdG9cLXJlcXVlc3Q7Civll4wgPCB0aGVcLXRocm9hdDsKK+axhiA8IHRvXC1wYXJib2lsOwor5YitIDwgY3V0XC10aHJvYXQ7Civpq4IgPCB0aGVcLXBlbHZpczsKK+mSvCA8IG1vbHliZGVudW07Civmhp0gPCB0b1wtZGlzbGlrZTsKK+eChSA8IGJyaWxsaWFuY2U7CivpmrMgPCB0b1wtZGVzdHJveTsKK+iMmyA8IHJhbnVuY3VsdXM7Civns4cgPCBkcmllZFwtcmljZTsKK+mShiA8IGdhZG9saW5pdW07CivmvowgPCB0b1wtZXhoYXVzdDsKK+W6gCA8IHRvXC1wcmVwYXJlOwor54q0IDwgYVwtd2lsZFwtZG9nOwor5Z+PIDwgYVwtYm91bmRhcnk7CivosK4gPCB0b1wtc2xhbmRlcjsKK+e4ruefrSA8IHRvXC1jdXJ0YWlsOwor5pS557WEIDwgcmVvcmdhbml6ZTsKK+aykuWVj+mhjCA8IG5vXC1wcm9ibGVtOwor56ys5LqU6aGeIDwgY2F0ZWdvcnlcLTU7Civmk4HorbcgPCB0b1wtZW5kb3JzZTsKK+mAsuihjCA8IHRvXC1hZHZhbmNlOwor5aWU5rOiIDwgcnVzaFwtYWJvdXQ7Civlvozmr40gPCBzdGVwbW90aGVyOwor5pWj55m8IDwgZGlzdHJpYnV0ZTsKK+WkseeBqyA8IGNhdGNoXC1maXJlOwor6KqV55SfIDwgdG9cLWJlXC1ib3JuOwor5aSa54i+IDwgXChib2JcKVwtZG9sZTsKK+W3tOaer+Wvp+S4u+e+qSA8IGJha3VuaW5pc207CivlvbzmraQgPCBlYWNoXC1vdGhlcjsKK+mgkOWFiCA8IGJlZm9yZWhhbmQ7Civpl5zploAgPCBjbG9zZVwtZG93bjsKK+mBleiDjCA8IHRvXC12aW9sYXRlOwor5Yaw5p+T5p+T5paZIDwgYXpvaWNcLWR5ZXM7CivntbHoqIggPCBzdGF0aXN0aWNzOwor5Ye96LO8IDwgbWFpbFwtb3JkZXI7Civlo4Hnq4sgPCBcKG9mXC1jbGlmZnM7CivmmKXlraMgPCBzcHJpbmd0aW1lOwor6aCS5L2IIDwgcHJvbXVsZ2F0ZTsKK+avj+asoSA8IGV2ZXJ5XC10aW1lOwor57eo56iLIDwgdG9cLXByb2dyYW07CivliIboqZ4gPCBwYXJ0aWNpcGxlOwor5b6M5pyfIDwgbGF0ZVwtc3RhZ2U7CivmlYjnlKggPCB1c2VmdWxuZXNzOwor57On6aOfIDwgZm9vZHN0dWZmczsKK+iNkumHjiA8IHdpbGRlcm5lc3M7CivmkpLorIogPCB0ZWxsXC1hXC1saWU7Civnh4Pnh5IgPCBjb21idXN0aW9uOwor5byE55u0IDwgc3RyYWlnaHRlbjsKK+mBt+enuyA8IHRvXC1taWdyYXRlOwor6Z2e5a6Y5pa5IDwgdW5vZmZpY2lhbDsKK+Wkp+awoyA8IGF0bW9zcGhlcmU7Civoqo3ngrogPCB0b1wtYmVsaWV2ZTsKK+mZjeiQvSA8IHRvXC1kZXNjZW5kOwor5YmN6ICFIDwgdGhlXC1mb3JtZXI7CivmlYjnjocgPCBlZmZpY2llbmN5Owor6Z225b+DIDwgYnVsbCcnc1wtZXllOwor5ZyL5rCR6buoIDwga3VvbWludGFuZzsKK+WLg+eEtiA8IGFnaXRhdGVkbHk7CivorJvluKsgPCBpbnN0cnVjdG9yOwor5Y+W5LujIDwgc3Vic3RpdHV0ZTsKK+aWsOaVmSA8IHByb3Rlc3RhbnQ7CivlpJrmrKEgPCBtYW55XC10aW1lczsKK+Wlh+aVuCA8IG9kZFwtbnVtYmVyOwor5b+F5bCHIDwgaW5ldml0YWJseTsKK+mZsOeyviA8IHNleFwtZmx1aWRzOwor55m96Imy6auUIDwgbGV1Y29wbGFzdDsKK+WmluWsiCA8IGVuY2hhbnRpbmc7CivkuI3ogJDnhakgPCBpbXBhdGllbmNlOwor55m+5YiG546HIDwgcGVyY2VudGFnZTsKK+e5vOaJvyA8IHRvXC1pbmhlcml0Owor5Luk54mM55KwIDwgdG9rZW5cLXJpbmc7Civmk43nuLEgPCB0b1wtb3BlcmF0ZTsKK+WFqOmdoiA8IGFsbFwtYXJvdW5kOwor5Zub5YCL5bCP5pmCIDwgZm91clwtaG91cnM7CivljpjljYcgPCBjZW50aWxpdGVyOwor6Kq/5pW0IDwgYWRqdXN0bWVudDsKK+iNkuisrCA8IHJpZGljdWxvdXM7Civoh6rnmb3mm7ggPCBjb25mZXNzaW9uOwor5bGV6Ka95pyDIDwgZXhoaWJpdGlvbjsKK+eZvemgrSA8IGhvYXJ5XC1oZWFkOwor5aSp5paH5a245a62IDwgYXN0cm9ub21lcjsKK+axuuS4jSA8IG5vdFwtYXRcLWFsbDsKK+iqquaYjiA8IHRvXC1leHBsYWluOwor55y86Iqx57ma5LqCIDwgYmVcLWRhenpsZWQ7Civpra/kvZvniL7lrq4gPCB0aGVcLWxvdXZyZTsKK+WHuuiJsiA8IHJlbWFya2FibGU7CivkuI3loKrlv43lj5cgPCB1bmJlYXJhYmxlOwor6auY6YCf546HIDwgaGlnaFwtc3BlZWQ7CivlhY3pmaQgPCB0b1wtcHJldmVudDsKK+WmpeWNlCA8IGNvbXByb21pc2U7Civlt6jovKogPCBsYXJnZVwtc2hpcDsKK+eFp+eJhyA8IHBob3RvZ3JhcGg7CivpmYTnrYYgPCBwb3N0c2NyaXB0Owor6Kaq6IeqIDwgcGVyc29uYWxseTsKK+iqquS4jeWHuuipseS+hiA8IHNwZWVjaGxlc3M7CivlqJvmqILkuK3lv4MgPCByZWNyZWF0aW9uOwor5pS55q2jIDwgdG9cLWNvcnJlY3Q7CivlpKfln47luIIgPCBtYWpvclwtY2l0eTsKK+iHqueUseiyv+aYkyA8IGZyZWVcLXRyYWRlOwor5Y2K5ZyTIDwgc2VtaWNpcmNsZTsKK+eIreWlqiA8IGZpZ2h0XC1vdmVyOwor55+t5pyfIDwgc2hvcnRcLXRlcm07Civmr4/lubQgPCBldmVyeVwteWVhcjsKK+WWrOayu+aVpiA8IGdlb3JnZXRvd247CivkuInliIbkuYvkuowgPCB0d29cLXRoaXJkczsKK+WCs+mBk+iAhSA8IG1pc3Npb25hcnk7CivmlbXmiYsgPCBhbnRhZ29uaXN0Owor5Y2w5YOPIDwgaW1wcmVzc2lvbjsKK+S4jeWPr+iDvSA8IGltcG9zc2libGU7Civnsr7pgJogPCBwcm9maWNpZW50Owor5b6I5aSnIDwgdHJlbWVuZG91czsKK+eZvemFkiA8IHNwaXJpdFwtdXN1Owor6YyE6Z+z5bi2IDwgYXVkaW9cLXRhcGU7CivojYnojpMgPCBzdHJhd2JlcnJ5Owor6Yyr5a6J5bGxIDwgbW91bnRcLXppb247CivloZTlkInlhYvmlq/lnaYgPCB0YWppa2lzdGFuOwor5aCx56ugIDwgbmV3c3BhcGVyczsKK+WkmuW5tCA8IG1hbnlcLXllYXJzOwor6Kqe5b2ZIDwgdm9jYWJ1bGFyeTsKK+aXqeWFiCA8IHByZXZpb3VzbHk7CivnuL3ntbHku7vmnJ8gPCBwcmVzaWRlbmN5Owor54mM5YO5IDwgbGlzdFwtcHJpY2U7Civlt6vooZMgPCB3aXRjaGNyYWZ0Owor6YGO5rihIDwgdHJhbnNpdGlvbjsKK+aOoumaqiA8IHRvXC1leHBsb3JlOwor5aSn5a24IDwgdW5pdmVyc2l0eTsKK+eEoeeQhiA8IGlycmF0aW9uYWw7CivljYrlg7kgPCBoYWxmXC1wcmljZTsKK+WNgOWIpSA8IGRpZmZlcmVuY2U7Civpl5zoga8gPCBiZVwtcmVsYXRlZDsKK+ehrOejgeebpCA8IGhhcmRcLWRyaXZlOwor5Zyw6ZyHIDwgZWFydGhxdWFrZTsKK+ingOecviA8IHNwZWN0YXRvcnM7CivmjpLpmoogPCB0b1wtbGluZVwtdXA7CivmlKrmk74gPCB0b1wtZGlzdHVyYjsKK+S4jeWPr+mAvui2iiA8IGltcGFzc2FibGU7CivmlbjlrbggPCBtYXRoZW1hdGljOwor54ax5b+DIDwgZW50aHVzaWFzbTsKK+WKoOWIqeemj+WwvOS6niA8IGNhbGlmb3JuaWE7Civmrbflj7LkuIogPCBoaXN0b3JpY2FsOwor6KiY5biz5ZOhIDwgYm9va2tlZXBlcjsKK+mbu+WtkCA8IGVsZWN0cm9uaWM7Civnmb3oqbEgPCB2ZXJuYWN1bGFyOwor54K457OVIDwgZnJpZWRcLWNha2U7CivmlaPlsIQgPCBzY2F0dGVyaW5nOwor6JOL5LiWIDwgdW5yaXZlbGxlZDsKK+e3qOaOkiA8IHRvXC1hcnJhbmdlOwor5o2V6a2aIDwgY2F0Y2hcLWZpc2g7CivlhYHoq74gPCB0b1wtcHJvbWlzZTsKK+iqv+WSjCA8IGhhcm1vbmlvdXM7CivlvozkvoYgPCBhZnRlcndhcmRzOwor5L2/5aSx5pybIDwgZGlzYXBwb2ludDsKK+Wkp+WWnCA8IGV4dWx0YXRpb247CivoqK3mlr0gPCBmYWNpbGl0aWVzOwor5pa55L6/IDwgY29udmVuaWVudDsKK+atpOW+jCA8IGFmdGVyXC10aGlzOwor5bqn5qiZIDwgY29vcmRpbmF0ZTsKK+e2k+attyA8IGV4cGVyaWVuY2U7CivmqILop4AgPCBvcHRpbWlzdGljOwor5aSq5Y+kIDwgaW1tZW1vcmlhbDsKK+mbouWpmiA8IHRvXC1kaXZvcmNlOwor5pWZ5aCC5aKT5ZywIDwgY2h1cmNoeWFyZDsKK+m+oiA8IGluXC1oYXJtb255Owor54eI5aGUIDwgbGlnaHRob3VzZTsKK+WHuueJiCA8IHRvXC1wdWJsaXNoOwor5YW16Ii5IDwgbWFuXC1vZlwtd2FyOwor6KGM5pS/6ZW35a6YIDwgbWFnaXN0cmF0ZTsKK+m8pyA8IHRoZVwtbWFybW90Owor6byEIDwgdGhlXC1zcGlkZXI7Civpu7kgPCBlbWJyb2lkZXJ5Owor6buyIDwgZ3JleVwtYmxhY2s7Civpu6QgPCBibHVlXC1ibGFjazsKK+WCt+miqCA8IGNhdGNoXC1jb2xkOwor5pS+5bCEIDwgdG9cLXJhZGlhdGU7Civmr5TkvosgPCBwcm9wb3J0aW9uOwor6bi6IDwgaG9ybmVkXC1vd2w7CivpmqjlvowgPCBzb29uXC1hZnRlcjsKK+WJjeaZryA8IGZvcmVncm91bmQ7Civpgbflu7YgPCBsb25nXC1kZWxheTsKK+ijnOiqniA8IGNvbXBsZW1lbnQ7CivptZIgPCBteW5haFwtYmlyZDsKK+m0tyA8IHdvb2RwZWNrZXI7CivliqDlr4YgPCB0b1wtZW5jcnlwdDsKK+aVtOWQiCA8IHRvXC1jb25mb3JtOwor5om/5YyF5Lq6IDwgY29udHJhY3RvcjsKK+mBleaKlyA8IHRvXC1kaXNvYmV5Owor55uj552jIDwgdG9cLWNvbnRyb2w7Civps7IgPCB0dXJ0bGVkb3ZlOwor5paH5YW3IDwgc3RhdGlvbmVyeTsKK+avj+S6uiA8IHBlclwtcGVyc29uOwor54mp6LOq5LiKIDwgbWF0ZXJpYWxseTsKK+mysCA8IHNtYWxsXC1maXNoOwor6Ziy5rC0IDwgd2F0ZXJwcm9vZjsKK+mxhyA8IGFuZ2xlcmZpc2g7CivosrTml4/oq5bogIUgPCBhcmlzdG9jcmF0Owor5Y2K5YWs6ZaLIDwgc2VtaVwtb3ZlcnQ7Civkvb/lhY3pmaQgPCBnZXRcLXJpZFwtb2Y7Civmm7TooaPlrqQgPCBjaGFuZ2Vyb29tOwor6a6BIDwgdGhlXC1ib25pdG87CivpgIDmraUgPCBkZWdlbmVyYXRlOwor6YGp5bqmIDwgbW9kZXJhdGVseTsKK+mtmyA8IHRoZVwtbXVsbGV0Owor6YGg5b6BIDwgZXhwZWRpdGlvbjsKK+msqCA8IGJvaXN0ZXJvdXM7CivprJwgPCB0b1wtZ29cLWJhbGQ7Civnmb3oh4kgPCB3aGl0ZVwtZmFjZTsKK+e4veWFsSA8IGFsdG9nZXRoZXI7Civpq6MgPCBzaW1pbGFyXC10bzsKK+mrgSA8IHRoaWdoXC1ib25lOwor6Kej5p6QIDwgdG9cLWFuYWx5emU7CivpqJcgPCB0b1wtc3dpbmRsZTsKK+moiyA8IHRhbGxcLWhvcnNlOwor6aiJIDwgZmluZVwtaG9yc2U7Civpp7AgPCBncmV5XC1ob3JzZTsKK+mmuSA8IHBvc3RcLWhvcnNlOwor6Kmm5ZyWIDwgdG9cLWF0dGVtcHQ7CivoiabovIkgPCBzaGlwXC1iYXNlZDsKK+efpeWQjSA8IHdlbGxcLWtub3duOwor5aSa5LqLIDwgbWVkZGxlc29tZTsKK+WGsOeQgyA8IGljZVwtaG9ja2V5Owor6Kej5pS+IDwgbGliZXJhdGlvbjsKK+meoSA8IGxlZ1wtd2FybWVyOwor6Z2dIDwgdGhlXC1oZWF2ZW47Civlgb3poIIgPCBmYWxzZVwtcm9vZjsKK+mrmOmajiA8IGhpZ2hcLWxldmVsOwor5o2P6YCgIDwgdG9cLW1ha2VcLXVwOwor6ZquIDwgdGlcLXJpc2VcLXVwOwor6Zm7IDwgc21hbGxcLWhpbGw7CivmlrDogZ7oqJjogIUgPCBqb3VybmFsaXN0Owor5pOB5oqxIDwgdG9cLWVtYnJhY2U7Civpm7bkuIsgPCBiZWxvd1wtemVybzsKK+mXnyA8IHBlYWNlZnVsbHk7Civpnq3pl6LlhaXoo6EgPCBwZW5ldHJhdGVkOwor6LaF5aqS6auUIDwgaHlwZXJtZWRpYTsKK+mVmiA8IHNtYWxsXC1jb2luOwor6ZSsIDwgbG9uZ1wtc3BlYXI7CivkuI3mmI7norogPCBpbmRlZmluaXRlOwor6ZK3IDwgcHJvbWV0aGl1bTsKK+aUvuWHuiA8IHRvXC1sZXRcLW9mZjsKK+mQtiA8IG1ldGFsXC1yaW5nOwor6ZCaIDwgc29mdFwtc3RlZWw7Civlhaznn7MgPCBoZWN0b2xpdGVyOwor6ZCSIDwgbGF3cmVuY2l1bTsKK+mQgCA8IGFcLWN1cGJvYXJkOwor5LiN5pmv5rCjIDwgZGVwcmVzc2lvbjsKK+S7luWAkeiHquW3sSA8IHRoZW1zZWx2ZXM7Civos4fmnKzlrrYgPCBjYXBpdGFsaXN0Owor6Y6qIDwgdG9cLWVuZ3JhdmU7CivpjpsgPCBsYXJnZVwtYmVsbDsKK+WgseaVuCA8IG51bWJlclwtb2ZmOwor6Y2AIDwgdGVjaG5ldGl1bTsKK+aUtuWFpSA8IHRvXC10YWtlXC1pbjsKK+ipnuWFuCA8IGRpY3Rpb25hcnk7CivoqK3lnKggPCBsb2NhdGVkXC1hdDsKK+mZkOW6piA8IGxpbWl0YXRpb247Civoo7Hns4ogPCB3YWxsXC1wYXBlcjsKK+mIiiA8IGNhZG9saW5pdW07CivphqEgPCB3aW5lXC1wcmVzczsKK+mGnSA8IHdoaXRlXC13aW5lOwor5qqi5p+lIDwgaW5zcGVjdGlvbjsKK+mFhSA8IHJhaXNlXC1mZWV0Owor6Zi/5aGe5ouc55aGIDwgYXplcmJhaWphbjsKK+eAhuiBtyA8IHdyb25nZG9pbmc7Civluoflu5UgPCBcKG9mXC1hXC10cmVlOwor5LqM5omL6LKoIDwgc2Vjb25kaGFuZDsKK+mZsOWkqSA8IGNsb3VkeVwtZGF5Owor57WC5pa8IDwgZXZlbnR1YWxseTsKK+ioguWpmiA8IGVuZ2FnZW1lbnQ7Civpmbjln7ogPCBsYW5kXC1iYXNlZDsKK+mCj+i8r+eCuOW9iCA8IGxvZ2ljXC1ib21iOwor5bua5Y+4IDwgY29va1wsXC1jaGVmOwor5YKz6KqqIDwgaXRcLWlzXC1zYWlkOwor5Yi25a6aIDwgdG9cLWRyYXdcLXVwOwor5piT5o6l6L+RIDwgYWNjZXNzaWJsZTsKK+mArCA8IHRvXC1zY2F0dGVyOwor6YCf5bCEIDwgcmFwaWRcLWZpcmU7CivpgbrlgrMgPCBoZXJlZGl0YXJ5Owor6IiJ6L6mIDwgdG9cLWNvbmR1Y3Q7CivliKnlrrMgPCBmb3JtaWRhYmxlOwor6LqpIDwgdGFrZVwtcXVpY2s7CivlhaXnjYQgPCBnb1wtdG9cLWphaWw7CivnsbPnsokgPCByaWNlXC1mbG91cjsKK+Wcluino+iqquaYjiA8IGlsbHVzdHJhdGU7CivkuI3lsYjkuI3mkpMgPCB1bnlpZWxkaW5nOwor6LinIDwgdW5lYXNpbmVzczsKK+i4nCA8IHRvXC1zdHVtYmxlOwor6LiWIDwgdHJhbXBsZVwtb247CivovrLmnZEgPCBydXJhbFwtYXJlYTsKK+aDs+WDj+WKmyA8IGNvbmNlcHRpb247Civot5AgPCB0b1wtdHJhbXBsZTsKK+WJr+WIiiA8IHN1cHBsZW1lbnQ7CivmnInmsbrlv4MgPCBkZXRlcm1pbmVkOwor5qmE5qyW5qi5IDwgb2xpdmVcLXRyZWU7Civmk43loLQgPCBwbGF5Z3JvdW5kOwor5Z+65pa8IDwgYmVjYXVzZVwtb2Y7CivooY3oroogPCB0b1wtZGV2ZWxvcDsKK+WFqOeEtiA8IGNvbXBsZXRlbHk7CivlpKfohabmrbvkuqEgPCBicmFpblwtZGVhZDsKK+WcmOiBmiA8IHRvXC1yZXVuaXRlOwor6LGAIDwgdG9cLXF1YXJyZWw7CivniK3oq5bpu54gPCBjb250ZW50aW9uOwor55m954uQIDwgYXJjdGljXC1mb3g7Civmk4HloZ4gPCBjb25nZXN0aW9uOwor6KiO5Y6tIDwgZGlzZ3VzdGluZzsKK+isqiA8IHRvXC1jb25zdWx0Owor55m954a+IDwgd2hpdGVcLWhlYXQ7CivopIfpm5zmgKcgPCBjb21wbGV4aXR5Owor55m954aKIDwgcG9sYXJcLWJlYXI7Civnmb3nhaQgPCBhbnRocmFjaXRlOwor5YCa6Z2gIDwgdG9cLWxlYW5cLW9uOwor5bm85aWzIDwgeW91bmdcLWdpcmw7Civop4Dlr58gPCB0b1wtb2JzZXJ2ZTsKK+S9v+eUqOiAheS4reS7iyA8IHVzZXJcLWFnZW50Owor5YW15rOVIDwgYXJ0XC1vZlwtd2FyOwor55W26YG4IDwgYmVcLWVsZWN0ZWQ7CivoprggPCBzdGVhbFwtbG9vazsKK+ebo+aOpyA8IHRvXC1tb25pdG9yOwor57WQ5bGAIDwgY29uY2x1c2lvbjsKK+ijqiA8IHRoZVwtc2xlZXZlOwor5qyg5L2zIDwgc3Vib3B0aW1hbDsKK+mAseWIsCA8IHRob3VnaHRmdWw7Civopo/lvosgPCBkaXNjaXBsaW5lOwor6J+rIDwgc2lsdmVyZmlzaDsKK+ifoyA8IGxvdXNlXC1lZ2dzOwor566h6L2EIDwgYWRtaW5pc3RlcjsKK+ifgSA8IGFcLW1vc3F1aXRvOwor6IOh5oCd5LqC5oOzIDwgaW1hZ2luaW5nczsKK+WltueJm+WgtCA8IGRhaXJ5XC1mYXJtOwor5qi55qiBIDwgdHJlZVwtc3R1bXA7Civopa/miZggPCB0b1wtc2V0XC1vZmY7Civom5wgPCB3b29kXC1sb3VzZTsKK+aTjeWFuCA8IGRyaWxsXC1ib29rOwor6LeR6aasIDwgaG9yc2VcLXJhY2U7CivolqcgPCBkcmllZFwtZm9vZDsKK+aqouWvnyA8IHRvXC1pbnNwZWN0Owor6JWhIDwgaGVtcFwtc2VlZHM7Civlt6jmmJ8gPCBnaWFudFwtc3RhcjsKK+Wtl+evgOaVuCA8IGJ5dGVcLWNvdW50Owor6JO3IDwgbW90aGVyd29ydDsKK+mZhOWKoCA8IGFkZGl0aW9uYWw7Civokr0gPCBhbnRocmFjZW5lOwor6JKmIDwgdG9cLW1lYXN1cmU7CivokpYgPCBwbGFudFwtbmFtZTsKK+S4gOWIh+S6i+eJqSA8IGV2ZXJ5dGhpbmc7Civoka8gPCBvcnJpc1wtcm9vdDsKK+atjOe+heilv+abuCA8IGNvbG9zc2lhbnM7Civnm7jlsI0gPCByZWxhdGl2ZWx5Owor54Sh5YO5IDwgaW52YWx1YWJsZTsKK+aQj+aWlyA8IHRvXC13cmVzdGxlOwor6I21IDwgcG9sZW1vbml1bTsKK+WHuueUn+WcsCA8IGJpcnRocGxhY2U7CivkuI3nlLHoh6rkuLsgPCBjYW4nJ3RcLWhlbHA7Civmi5zoqJcgPCByZXF1ZXN0XC1zYjsKK+aOkueQgyA8IHZvbGxleWJhbGw7CivlupfkuLsgPCBzaG9wXC1vd25lcjsKK+S4jeS4i+S6jiA8IGFzXC1tYW55XC1hczsKK+eTtumguCA8IGJvdHRsZW5lY2s7CivluavliqkgPCBhc3Npc3RhbmNlOwor6ISqIDwgZXJ5c2lwZWxhczsKK+iElyA8IGNvaW5jaWRpbmc7Civluavlh7YgPCBhY2NvbXBsaWNlOwor5YWs5pKuIDwgbWlsbGlsaXRlcjsKK+iCpiA8IGxhcmdlXC1oZWFkOwor57GD55CDIDwgYmFza2V0YmFsbDsKK+aKseiyoCA8IGFzcGlyYXRpb247Civmm7zlvrnmlq/nibkgPCBtYW5jaGVzdGVyOwor5Ly96aas5bCE57eaIDwgZ2FtbWFcLXJheXM7CivlpKflqpLpq5QgPCBtYWNyb21lZGlhOwor566X6KGTIDwgYXJpdGhtZXRpYzsKK+aOqOa4rCA8IGNvbmplY3R1cmU7CivopoHloZ4gPCBzdHJvbmdob2xkOwor55m95peXIDwgd2hpdGVcLWZsYWc7Civmu7/otrMgPCB0b1wtc2F0aXNmeTsKK+mphemAkCA8IGJhbmlzaG1lbnQ7CivmpbXngrrpvpDlpKcgPCBtb251bWVudGFsOwor57mQIDwgZmluZVwtY2xvdGg7Civlgpnlv5jpjIQgPCBtZW1vcmFuZHVtOwor57iHIDwgZGVjb3JhdGlvbjsKK+ihqOekuiA8IHRvXC1leHByZXNzOwor5oyo5YCL5YWSIDwgb25lXC1ieVwtb25lOwor6L6y5ZySIDwgcGxhbnRhdGlvbjsKK+WFhOW8n+acgyA8IGZyYXRlcm5pdHk7CivnlZnogbLmqZ8gPCBncmFtb3Bob25lOwor57W6IDwgZmluZVwtbGluZW47CivmnInliKnlj6/lnJYgPCBwcm9maXRhYmxlOwor57WbIDwgc2lsa1wtYnJhaWQ7CivntZYgPCBmaW5lXC1zaWxrczsKK+e1kyA8IG9ic3RydWN0ZWQ7CivmipXos4cgPCBpbnZlc3RtZW50Owor57K7IDwgcHJvdmlzaW9uczsKK+eEoeaJgOS4jeiDvSA8IG9tbmlwb3RlbnQ7CivnnIvliLAgPCBzZWVcLVwodGhhdFwpOwor5o+Q5piHIDwgdG9cLXByb21vdGU7Civlk4jolqnlhYvmlq/lnaYgPCBrYXpha2hzdGFuOwor57ClIDwgbGFyZ2VcLXBpcGU7CivliIbpm6LkuLvnvqkgPCBzZXBhcmF0aXNtOwor5YWM5o+bIDwgdG9cLWNvbnZlcnQ7CivkuJbnlYzpioDooYwgPCB3b3JsZFwtYmFuazsKK+m7keiOk+WtkCA8IGJsYWNrYmVycnk7Civnr4sgPCByYXR0b25cLWJveDsKK+euoCA8IGhvcnNlXC13aGlwOwor566aIDwgYnJpZWZcLW5vdGU7CivlhazlvJUgPCBoZWN0b21ldGVyOwor56qwIDwgYnJpY2tcLWtpbG47CivlsIjploAgPCBzcGVjaWFsaXN0Owor56mtIDwgd2lsZFwtZ3JhaW47CivnnIvkvoYgPCBhcHBhcmVudGx5Owor6IeJ6ImyIDwgY29tcGxleGlvbjsKK+iNieWPoiA8IHVuZGVyYnJ1c2g7CivlhbzlrrkgPCBjb21wYXRpYmxlOwor5Zyo5LiL6Z2iIDwgdW5kZXJuZWF0aDsKK+elhSA8IGNhbGFtaXRpZXM7CivkuI3ororljJYgPCBpbnZhcmlhYmx5Owor6LuN5rivIDwgbmF2YWxcLXBvcnQ7CivmjInnq4sgPCBvcmRpbmF0aW9uOwor55Sf6KiIIDwgbGl2ZWxpaG9vZDsKK+ejkSA8IHN0b25lXC1taWxsOwor5o6M5quDIDwgc2hvcGtlZXBlcjsKK+ihqOePviA8IGV4cHJlc3Npb247CivlhanlsrggPCBiaWxhdGVyaWFsOwor56GDIDwgYVwtcmVkXC1tb2xlOwor5YWx5a2YIDwgdG9cLWNvZXhpc3Q7CivnnZ8gPCBjbGVhclwtZXllZDsKK+WbmueKryA8IGFcLXByaXNvbmVyOwor5YGJ57i+IDwgZ3JlYXRcLWFjdHM7CivooY3nlJ8gPCBkZXJ2aWF0aXZlOwor5Yaw5YiAIDwgaWNlXC1za2F0ZXM7CivmjqXmlLYgPCB0b1wtcmVjZWl2ZTsKK+aKgOihkyA8IHRlY2hub2xvZ3k7CivnlpUgPCBoZWFkXC1zb3JlczsKK+eVkyA8IHJpY2VcLWZpZWxkOwor55WBIDwgdG9cLWdpdmVcLXRvOwor5a6/6aGMIDwgYXNzaWdubWVudDsKK+mZjOeUn+S6uiA8IGFcLXN0cmFuZ2VyOwor546UIDwgZ3JlZW5cLWphZGU7CivprZrmjpIgPCBmaXNoXC1zdGVhazsKK+eEoeaJgOS4jeefpSA8IG9tbmlzY2llbnQ7CivmjIfnlLIgPCBmaW5nZXJuYWlsOwor6ZaL5pyD56WI56axIDwgaW52b2NhdGlvbjsKK+WtuOm9oSA8IHNjaG9vbFwtYWdlOwor54qbIDwgYVwtYmxhY2tcLW94Owor5LiN6YGp55W2IDwgaW5hZGVxdWF0ZTsKK+aNqOajhCA8IHRvXC1naXZlXC11cDsKK+mbu+imluiHuiA8IHR2XC1zdGF0aW9uOwor54mPIDwgcHJpdnlcLWhvbGU7CivniKsgPCByYWRpY2FsXC04NzsKK+S9v+mGiSA8IGludG94aWNhdGU7Civmi5jnpoEgPCBjb25zdHJhaW50Owor54aFIDwgc21vb3RoXC1vdXQ7CivlnIvmnIMgPCBwYXJsaWFtZW50Owor6aCY5bCO6IO95YqbIDwgbGVhZGVyc2hpcDsKK+i2hei2iiA8IHRvXC1zdXJwYXNzOwor54G6IDwgY2FuZGxlXC1lbmQ7CivngZIgPCB0b1wtc3BhdHRlcjsKK+aOqOW7oyA8IHBvcHVsYXJpemU7CivkuLvlipvoiaYgPCBiYXR0bGVzaGlwOwor5r+ZIDwgdG9cLXJldm9sdmU7Civmv4YgPCByaXZlclwtYmFuazsKK+S9o+mHkSA8IGNvbW1pc3Npb247Civnmb3llokgPCBkaXBodGhlcmlhOwor5o6I5oSPIDwgdG9cLWluc3BpcmU7CivlhazliIYgPCBjZW50aW1ldGVyOwor562G6ICFIDwgdGhlXC1hdXRob3I7Civms4YgPCBsaWNlbnRpb3VzOwor5L+d6IKyIDwgY2hpbGRcLWNhcmU7Civnmb3ljYAgPCB3aGl0ZVwtYXJlYTsKK+aPueWCtSA8IGJlXC1pblwtZGVidDsKK+a8q+eVqyA8IGNhcmljYXR1cmU7CivooYzkuI3pgJogPCB3b24nJ3RcLXdvcms7CivlgZzngasgPCBjZWFzZVwtZmlyZTsKK+ertueIreiAhSA8IGNvbXBldGl0b3I7Civoia/lv4MgPCBjb25zY2llbmNlOwor5qu+IDwgdGhlXC1wb21lbG87Civllq7oqr8gPCBtb25vdG9ub3VzOwor5qq8IDwgcmlkZ2VcLXBvbGU7CivooajmmI4gPCBtYWtlXC1rbm93bjsKK+acieezu+e1sSA8IHN5c3RlbWF0aWM7CivmspLkurrkvY8gPCB1bm9jY3VwaWVkOwor5qa8IDwgd2luZVwtZ2xhc3M7CivmpqYgPCB0cmVlXC10cnVuazsKK+WLleeJqeWtuCA8IHpvb2xvZ2ljYWw7CivmpLUgPCBwb21wZWxtb3VzOwor5qSzIDwgdGhlXC1waXZvdHM7CivmqKHku78gPCB0b1wtaW1pdGF0ZTsKK+aEj+imi+S4jeWQiCA8IGRpc3NlbnNpb247Civnm6fmo67loKEgPCBsdXhlbWJvdXJnOwor55m85L2IIDwgdG9cLXJlbGVhc2U7CivnrKzkuIPljYEgPCBzZXZlbnRpZXRoOwor5qCbIDwgdGhlXC1saWNoZWU7CivmoJggPCBmcnVpdFwtdHJlZTsKK+ainee0hCA8IHRyZWF0eXBhY3Q7CivlsI7oiKogPCBuYXZpZ2F0aW9uOwor5o6S5aSWIDwgeGVub3Bob2JpYzsKK+WwjuiHtCA8IHRvXC1sZWFkXC10bzsKK+WxleekuiA8IHRvXC1vcGVuXC11cDsKK+WGsOWHneWZqCA8IGNyeW9waG9ydXM7CivlsIvoiIsgPCB0b1wtcHJvdm9rZTsKK+adoiA8IHdvb2R3b3JrZXI7CivlhYjkvosgPCBhbnRlY2VkZW50Owor6LOT6aSoIDwgZ3Vlc3Rob3VzZTsKK+aok+S4iyA8IGRvd25zdGFpcnM7CivmlqIgPCB0b1wtcGx1bmRlcjsKK+aJk+e1kCA8IHRpZVwtYVwta25vdDsKK+Wtn+WKoOaLieWciyA8IGJhbmdsYWRlc2g7Civoh4bmuKwgPCBhc3N1bXB0aW9uOwor5b+D55CG5a24IDwgcHN5Y2hvbG9neTsKK+aTqiA8IHRvXC10dWNrXC1pbjsKK+aSsSA8IHRvXC1zaG9ydGVuOwor5rCj5ZaY5ZaYIDwgYnJlYXRobGVzczsKK+aLlOaysyA8IHR1Z1wtb2ZcLXdhcjsKK+esrOS4gOS+iyA8IGZpcnN0XC1jYXNlOwor55Sf55SiIDwgdG9cLXByb2R1Y2U7Civoo5zlhJ8gPCBjb21wZW5zYXRlOwor5o6xIDwgcGlja3BvY2tldDsKK+aOjiA8IGRyYWdcLWFzaWRlOwor5Lq66auUIDwgaHVtYW5cLWJvZHk7Civog57ooaMgPCBhZnRlcmJpcnRoOwor5oyW5o6YIDwgZXhjYXZhdGlvbjsKK+Wbm+W5tCA8IGZvdXJcLXllYXJzOwor55m+5YiG5LmL5Lmd5Y2BIDwgOTBcLXBlcmNlbnQ7CivmiaEgPCBkcmFnXC1hbG9uZzsKK+mkkOmkqCA8IHJlc3RhdXJhbnQ7CivogZbpnYggPCBob2x5XC1naG9zdDsKK+aGuCA8IHRvXC1mbGF0dGVyOwor5oyH5o6nIDwgYWNjdXNhdGlvbjsKK+aGjSA8IGJlXC1oYXVnaHR5Owor5oaAIDwgdG9cLXJlbHlcLW9uOwor5byV5Lq65rOo5oSPIDwgYXR0cmFjdGl2ZTsKK+aJi+eovyA8IG1hbnVzY3JpcHQ7CivmirnmsrkgPCB0b1wtYW5ub2ludDsKK+aEkyA8IHByb2ZsaWdhdGU7CivooajlsLogPCByZWFyXC1zaWdodDsKK+aDjyA8IGF2YXJpY2lvdXM7CivmkanlpKnmkZ8gPCBza3lzY3JhcGVyOwor55Wi5qWtIDwgZ3JhZHVhdGlvbjsKK+aBmyA8IGRpc29yZGVyZWQ7Civlm7rln7cgPCBwZXJzaXN0ZW50Owor5oCyIDwgYmVcLWFueGlvdXM7Civlvb8gPCByZXNlbWJsaW5nOwor5p+l6KmiIDwgdG9cLWlucXVpcmU7CivlvIcgPCBjb3Zlclwtb3ZlcjsKK+W7gCA8IHRvXC1jb25jZWFsOwor5b+Y5oGp6LKg576pIDwgdW5ncmF0ZWZ1bDsKK+eWkeaFriA8IGhlc2l0YXRpb247CivllonoiIwgPCBtb3V0aHBpZWNlOwor6IGv6YCaIDwgY29ubmVjdGlvbjsKK+W+l+S4jeWIsCA8IGNhbm5vdFwtZ2V0Owor6aeQ57SuIDwgdG9cLXN0YXRpb247CivnsL3lh7ogPCB0b1wtbG9nXC1vZmY7CivlsYQgPCB0aGVcLXZhZ2luYTsKK+mHjeimgeaApyA8IGltcG9ydGFuY2U7CivppIXpkLogPCBiYWtpbmdcLXBhbjsKK+WuvCA8IHR5cmFubmljYWw7CivmioDooZPlk6EgPCB0ZWNobmljaWFuOwor6Y6X566hIDwgZ3VuXC1iYXJyZWw7Civlqp8gPCBsdXN0XC1hZnRlcjsKK+mQteadvyA8IGlyb25cLXBhbmVsOwor6Y+I55KwIDwgY2hhaW5cLWxpbms7Civnm7jlkIzlkI3lrZcgPCBsaWtlXC1uYW1lZDsKK+erreeboSA8IGV4aGF1c3Rpb247Civou43kurogPCBzZXJ2aWNlbWFuOwor5L2/5Lq65L+h5pyNIDwgY29udmluY2luZzsKK+iAgemgrSA8IG9sZFwtZmVsbG93Owor5ZGo5oGp5L6GIDwgemhvdVwtZW5sYWk7Civnj77osaEgPCBhcHBlYXJhbmNlOwor6Y6u55ebIDwgYW5hbGdlc2lhYzsKK+WggyA8IGNvbXBsaWFuY2U7CivmnInoiIjotqMgPCBpbnRlcmVzdGVkOwor6Ieq5bCKIDwgc2VsZlwtcHJpZGU7CivlrprnvqkgPCBkZWZpbml0aW9uOwor5ZymIDwgd2F0ZXJcLWdhdGU7Civlm4wgPCBsb3F1YWNpb3VzOwor5ZqyIDwgcmVhZFwtYWxvdWQ7CivkuI3ntpPmhI8gPCBjYXJlbGVzc2x5Owor56u254itIDwgdG9cLWNvbXBldGU7CivmiZPlrZfmqZ8gPCB0eXBld3JpdGVyOwor5ZS9IDwgdG9cLXR3aXR0ZXI7Civlr6bnj74gPCB0b1wtYWNoaWV2ZTsKK+WCt+S6oSA8IGNhc3VhbHRpZXM7CivlkbQgPCBicmVhdGhlXC1vbjsKK+WAjeWinuWZqCA8IG11bHRpcGxpZXI7Civmpa3kvZkgPCBzcGFyZVwtdGltZTsKK+mHkeWxrOe3miA8IG1ldGFsXC13aXJlOwor6KGM5YiXIDwgcHJvY2Vzc2lvbjsKK+WNnSA8IGhhaXJcLXN0eWxlOwor55eF5YGHIDwgc2lja1wtbGVhdmU7CivmnJ/pmZAgPCB0aW1lXC1saW1pdDsKK+WKjyA8IHRvXC1idXRjaGVyOwor6Zu75a2Q56m66ZaTIDwgY3liZXJzcGFjZTsKK+WGmCA8IHRvXC1tb3ZlXC1vbjsKK+itmOWIpeiZnyA8IGlkZW50aWZpZXI7CivmiormiLIgPCBhY3JvYmF0aWNzOwor55Sf5pyJ5qyKIDwgYmlydGhyaWdodDsKK+WBrSA8IHRyYW5zZ3Jlc3M7CivlgZ0gPCBub3RcLWZhY2luZzsKK+a2iOiyuyA8IHRvXC1jb25zdW1lOwor5oyB5Y2h5Lq6IDwgY2FyZGhvbGRlcjsKK+ihjOS6uiA8IHBlZGVzdHJpYW47CivlgIAgPCBiZXdpbGRlcmVkOwor5q+b5r6k5p2xIDwgbWFvXC16ZWRvbmc7Civmm7jpnaIgPCBpblwtd3JpdGluZzsKK+WFreWNgeS6lCA8IHNpeHR5XC1maXZlOwor5Ly3IDwgZGVzY2VuZGVudDsKK+WkmuWqkumrlCA8IG11bHRpbWVkaWE7Civnr4DliLYgPCB0ZW1wZXJhbmNlOwor5oq15oqX5YqbIDwgcmVzaXN0YW5jZTsKK+iFkOaVlyA8IGNvcnJ1cHRpb247CivktqsgPCBmaW5lXC10ZWV0aDsKK+S2iSA8IGd1aW5lYVwtcGlnOwor5LWqIDwgcHVyZVwtYmxhY2s7CivktZ0gPCBkYXJrXC1ibGFjazsKK+eNuOmGqyA8IHZldGVyaW5hcnk7Civlvq7kuI3otrPpgZMgPCBuZWdsaWdpYmxlOwor5YGa5Ye6IDwgdG9cLXB1dFwtb3V0Owor5L2c54K6IDwgYWNjb21wbGlzaDsKK+SzlSA8IHRoZVwtcGlnZW9uOwor5LOMIDwgdGhlXC1jdWNrb287CivmipjlsIQgPCByZWZyYWN0aW9uOwor5LGdIDwgYmxhY2tcLWNhcnA7CivksYQgPCBhXC1mbGF0ZmlzaDsKK+WWieeCjiA8IGxhcnluZ2l0aXM7CivksKwgPCB3aWxkXC1naG9zdDsKK+S/oeW/gyA8IGNvbmZpZGVuY2U7CivksIQgPCBzaG9ydFwtaGFpcjsKK+SvlCA8IHRvXC1pbmNsaW5lOwor5K+MIDwgdGhlXC1zYWNydW07Civnj43ol48gPCBjb2xsZWN0aW9uOwor5aSn5Li75pWZIDwgYXJjaGJpc2hvcDsKK+SujSA8IGN1cmxpbmdcLXVwOwor5K24IDwgYVwtc3RhbGxpb247CivoqabnrpfooaggPCBzcGVhZHNoZWV0Owor5Ky3IDwgd2VsbFwtZmVlZFwuOwor6IGW6IG3IDwgcHJpZXN0aG9vZDsKK+SrpSA8IGFcLXdyeVwtbmVjazsKK+mBlOiztOWWh+WYmyA8IGRhbGFpXC1sYW1hOwor5Kq6IDwgdGVldGhyaWRnZTsKK+SqoCA8IHB1bHZlcml6ZWQ7CivpjLbnm6QgPCBkaWFsXC1wbGF0ZTsKK+SpsSA8IGFcLXNjYWJiYXJkOwor5qGD5qi5IDwgcGVhY2hcLXRyZWU7Civnmb3lj6PpkLUgPCB3aGl0ZVwtaXJvbjsKK+SpgSA8IHRoaW5cLWhhaXJzOwor5Zau5qihIDwgc2luZ2xlbW9kZTsKK+SovSA8IHRvXC1yZXNvbHZlOwor5KipIDwgdGhlXC1zcGlyaXQ7CivkuI3mj6PlhpLmmKcgPCB2ZW50dXJlXC10bzsKK+SnvyA8IHRoZVwtbWFncGllOwor5KejIDwgdG9cLXN0b3BcLXVwOwor5oOz6LGhIDwgdG9cLWltYWdpbmU7Civkpq8gPCB2ZXJ5XC1kZW5zZTsKK+S4i+mZjSA8IHRvXC1kZWNsaW5lOwor5KaNIDwgdG9cLWluY2x1ZGU7CivkpL4gPCB0b1wtY29udGFpbjsKK+SkvSA8IGZhcm1cLXRvb2xzOwor5bGk5aOTIDwgbGFtaW5hdGlvbjsKK+esrOWNgeWFqyA8IGVpZ2h0ZWVudGg7CivlkajpgJ8gPCBjeWNsZVwtdGltZTsKK+aatOmiqCA8IHN0b3JtXC13aW5kOwor5a+m6amX5a6kIDwgbGFib3JhdG9yeTsKK+ShpyA8IGFcLWNhcnJpYWdlOwor5KGaIDwgaW1wbGVtZW50czsKK+WxrOWcsCA8IGRlcGVuZGVuY3k7CivkoY4gPCBhXC13aW5kbGFzczsKK+SguCA8IG9ic2VxdWlvdXM7CivkoLYgPCB0b1wtcHJvamVjdDsKK+SgqSA8IHRvXC11cmluYXRlOwor5KCfIDwgdG9cLXRyaXBcLXVwOwor5ryy5YO5IDwgYXBwcmVjaWF0ZTsKK+SgmCA8IG9uZVwtbGVnZ2VkOwor6IGW57aTIDwgaG9seVwtYmlibGU7Civku7/nnJ8gPCB0b1wtZW11bGF0ZTsKK+ecgeeVpeespuiZnyA8IGFwb3N0cm9waGU7CivkuI3lsI3norTlhZIgPCBub3RcLXByb3BlcjsKK+S7i+e0uSA8IHRvXC1wcmVzZW50Owor5J+ZIDwgdG9cLXN0YWdnZXI7Civkn4QgPCBpblwtYVwtaHVycnk7Civknb8gPCBob25vdXJhYmVsOwor5J23IDwgc2VjdXJpdGllczsKK+SdsSA8IHRvXC10cm91YmxlOwor5JyZIDwgbm90XC1jbGV2ZXI7CivknIsgPCB0b1wtc3VzcGVuZDsKK+e8uum7niA8IHdlYWtcLXBvaW50Owor5JuyIDwgdG9cLWRlY2VpdmU7Civkm6YgPCBsaXRpZ2F0aW9uOwor5JuEIDwgdG9cLWNvbnNvbGU7CivmnKzooYwgPCBvbmUnJ3NcLWxpbmU7Civmu7LlnZEgPCBzZXdhZ2VcLXBpdDsKK+ertuaKgCA8IHRvdXJuYW1lbnQ7CivnrKzljYHkuZ0gPCBuaW5ldGVlbnRoOwor5JazIDwgamVsbHlcLWZpc2g7CivpkLXljKAgPCBibGFja3NtaXRoOwor5Lu755SoIDwgdG9cLWFwcG9pbnQ7Civmnb/ntJkgPCBwYXBlcmJvYXJkOwor56ys5Y2B5LiJIDwgdGhpcnRlZW50aDsKK+SVoSA8IGNvbXBvc2l0YWU7CivmqZ/pl5zou4ogPCBsb2NvbW90aXZlOwor5L+d5r2U566xIDwgbGl0dGVyXC1iaW47CivklJggPCBmaXNoXC1wYXN0ZTsKK+iAgeW5tOS6uiA8IG9sZFwtcGVvcGxlOwor5JO1IDwgdG9cLWJsb3Nzb207Civms6LplbcgPCB3YXZlbGVuZ3RoOwor5JOkIDwgdmVnZXRhdGlvbjsKK+WwiOW/gyA8IGFic29ycHRpb247Civkk4YgPCB0b1wtY3V0XC10aGU7CivkkqIgPCBzd2VldFwtZmxhZzsKK+eZvOiBsuazlSA8IGludG9uYXRpb247Civkka0gPCB3YXJcLXZlc3NlbDsKK+SRjSA8IHRvXC1zd2FsbG93Owor5JCiIDwgdG9cLXdyaW5rbGU7Civkj60gPCB0aGVcLWNoZWVrczsKK+SPjCA8IHRvXC12aWJyYXRlOwor5I6fIDwgdG9cLWZhd25cLW9uOwor5YCL5YilIDwgaW5kaXZpZHVhbDsKK+acg+ioiCA8IGFjY291bnRhbnQ7CivkjbUgPCB5b3VuZ1wtZ29hdDsKK+SNniA8IGFcLWRyYWdcLW5ldDsKK+SNlyA8IHRvXC1oYW5nXC11cDsKK+SNlCA8IGFcLWZ1bGxcLW5ldDsKK+aEj+aDs+S4jeWIsCA8IHVuZXhwZWN0ZWQ7CivmtYHooYAgPCBzaGVkXC1ibG9vZDsKK+iCieeJhyA8IG1lYXRcLXNsaWNlOwor5IuxIDwgYVwtd2lsZFwteWFrOwor5Yaw5LiK6YGL5YuVIDwgaWNlXC1zcG9ydHM7CivlhazplovoqI7oq5bmnIMgPCBvcGVuXC1mb3J1bTsKK+SKqSA8IHJpY2VcLWdyYXZ5Owor5rqr5a6kIDwgZ3JlZW5ob3VzZTsKK+e+juS5g+a7i+mGrCA8IG1heW9ubmFpc2U7CivkuI3lubPlh6EgPCBtYXJ2ZWxsb3VzOwor5oqR5Yi2IDwgdG9cLWluaGliaXQ7Civkh44gPCB0b1wtc3RhcnRsZTsKK+S9nOaWmSA8IGNvbmRpbWVudHM7Civkh4cgPCB0aGVcLXBlb3BsZTsKK+SGiyA8IHRoZVwtYXV0dW1uOwor5IWUIDwgZGVhZFwtY3JvcHM7CivltJHltJnlsbEgPCBtdFwuXC1rdW5sdW47Civkvr/lo7ogPCBiZWRcLXVyaW5hbDsKK+SEnyA8IHRvXC13b3JzaGlwOwor5L2/5oCSIDwgZXhhc3BlcmF0ZTsKK+S+neWxrCA8IGRlcGVuZGVuY2U7CivkgZ4gPCBhXC1wcm92aW5jZTsKK+SBgSA8IHN0cmFiaXNtdXM7CivnrYnliLAgPCB3YWl0XC11bnRpbDsKK+Wwj+WnkCA8IHlvdW5nXC1sYWR5Owor5Luj6KGo5ZyYIDwgZGVsZWdhdGlvbjsKK+O9qCA8IGZyYWdtZW50ZWQ7CivjvaMgPCBhXC1mcm9udGllcjsKK+O9mCA8IGJvcmRlcmxhbmQ7CivmoYzluIMgPCB0YWJsZWNsb3RoOwor47y5IDwgZWFydGVud2FyZTsKK+iDjOaZryA8IGJhY2tncm91bmQ7CivkuI3oroogPCB1bmNoYW5naW5nOwor5LiA6LKrIDwgY29uc2lzdGVudDsKK+O6syA8IGJsYWNrXC1taWNhOwor47qFIDwgdGhlXC1tb25rZXk7Civmibnlh4YgPCB0b1wtYXBwcm92ZTsKK+O4qCA8IGFcLWJpZ1wtYnVsbDsKK+O4jCA8IHRvXC10d2lua2xlOwor47e3IDwgdGhpY2tcLXNvdXA7Civjtq0gPCBhbG1vc3RcLWRyeTsKK+O2nCA8IGRlZXBcLXdhdGVyOwor56eR57O7IDwgZGVwYXJ0bWVudDsKK+O1gCA8IHdhdGVyXC1mbG93Owor5oSB57eSIDwgbWVsYW5jaG9seTsKK+elnuipsSA8IGZhaXJ5XC10YWxlOwor5L2P5omAIDwgaGFiaXRhdGlvbjsKK+W9seWDj+aqlCA8IGltYWdlXC1maWxlOwor47KvIDwgbG9uZ1wtaGFpcnk7CivpoZvopoYgPCBzdWJ2ZXJzaW9uOwor47KMIDwgZG9nJydzXC1oYWlyOwor47KJIDwgZWdnXC1zaGVsbHM7CivjsaYgPCB0b1wtZGlzY2FyZDsKK+OxnCA8IHBlc3RpbGVuY2U7CivmoYjlrZAgPCBsb25nXC10YWJsZTsKK+OvhyA8IGFcLXN0b2NrYWRlOwor5bGF5L2P6ICFIDwgaW5oYWJpdGFudDsKK+OssSA8IHRvXC1yZXBsYWNlOwor46yqIDwgdG9cLWZvbGRcLXVwOwor46ukIDwgYVwtbG9uZ1wtZGF5Owor46qMIDwgdG9cLWxlYWRcLW9uOwor46m5IDwgdG9cLXBpbGVcLW9uOwor46meIDwgdG9cLWJhY2tcLXVwOwor46ivIDwgdG9cLWVubGFyZ2U7CivjqK4gPCB0b1wtbGlmdFwtdXA7Civmt5jmsbAgPCB0b1wtZGllXC1vdXQ7CivogqXmlpkgPCBmZXJ0aWxpemVyOwor46aCIDwgY29uc3RhbnRseTsKK+OltiA8IHRvXC1maWxsXC11cDsKK+OloyA8IHRvXC1iZW5lZml0Owor46S3IDwgdG9cLWRlYmF1Y2g7CivjpJAgPCBkaXNoYXJtb255Owor54uh6L6vIDwgdG9cLXF1aWJibGU7Civjo70gPCB0b1wtZm9yZ2l2ZTsKK+OjhSA8IGJvd1wtc3RyaW5nOwor46OAIDwgdG9cLXJlYm91bmQ7Civjoq0gPCBhXC1ib3dcLWNhc2U7CivjopogPCBhXC1jb3JyaWRvcjsKK+OijyA8IGFcLWNlc3Nwb29sOwor46GlIDwgdG9cLWN1cmxcLXVwOwor5pq06KGMIDwgc2F2YWdlXC1hY3Q7Civlm5vnmb7lhIQgPCA0MFwtYmlsbGlvbjsKK+WvpuWcqCA8IGluXC1yZWFsaXR5Owor6Im+5ruL55eF55eF5q+SIDwgYWlkc1wtdmlydXM7CivjnqAgPCBtYWxlXC1vcmdhbjsKK+mZuOi7jeS4reWwiSA8IGxpZXV0ZW5hbnQ7Civjno4gPCBib2R5XC13YXN0ZTsKK+OdryA8IHRvXC1zb2pvdXJuOwor45qgIDwgZnVsbFwtZ3Jvd247CivjmbogPCBjcm9zc1wtcm9hZDsKK+i2heWNhyA8IGV4YWx0YXRpb247Civlj5vou40gPCByZWJlbFwtYXJteTsKK+OYpyA8IHByZWNlZGVuY2U7CivnjbjnqbQgPCBhbmltYWxcLWRlbjsKK+OXrCA8IHRoaWNrXC1saXBzOwor45erIDwgdG9cLXdoaXNwZXI7CivlvarlvaLlpKfmvKIgPCBidXJseVwtY2hhcDsKK+itpumQmCA8IGFsYXJtXC1iZWxsOwor45aGIDwgdG9cLWNvbmRlbW47Civog5blrZAgPCBmYXRcLXBlcnNvbjsKK+OVjSA8IHRvXC1oZWFwXC11cDsKK+OVhiA8IGZpbmVcLXN0b25lOwor45S3IDwgdG9cLXNlY3JldGU7CivjlJggPCB0b1wtZGVncmFkZTsKK+OUkyA8IHRvXC1zdGFtbWVyOwor45SMIDwgdG9cLWN1dFwtb2ZmOwor45O6IDwgY2FzdHJhdGlvbjsKK+WtmOaUviA8IHRvXC1kZXBvc2l0Owor6aST5q27IDwgc3RhcnZhdGlvbjsKK+OStyA8IHRvXC1wcm9zcGVyOwor45CkIDwgdG9cLWltcGxvcmU7CivokKzkuovpgZTljaEgPCBtYXN0ZXJjYXJkOwor5L215ZCeIDwgc3dhbGxvd1wtdXA7CivlrbjlvpIgPCBhcHByZW50aWNlOwor5p2/5qiBIDwgc2hlZXRcLXBpbGU7CivlkKbmsbrmrIogPCB2ZXRvXC1wb3dlcjsKK+aIkOWIhiA8IGluZ3JlZGllbnQ7CivltIfmi5zogIUgPCB3b3JzaGlwcGVyOwor5oKU572qIDwgY29udmljdGlvbjsKK+iDveWKmyA8IGNhcGFiaWxpdHk7CivmiLLliofljJYgPCB0aGVhdHJpY2FsOwor5b+F6aCIIDwgdG9cLWhhdmVcLXRvOwor6IKv5a6aIDwgdG9cLWJlXC1zdXJlOwor5Lu75oCnIDwgY2FwcmljaW91czsKK+eOi+eJjCA8IHRydW1wXC1jYXJkOwor5paw6IGe5aqS6auUIDwgbmV3c1wtbWVkaWE7CivloIXlrprkuI3np7sgPCB1bnN3ZXJ2aW5nOwor6Z2e55uI5YipIDwgbm9uXC1wcm9maXQ7CivljZfpnaIgPCBzb3V0aFwtc2lkZTsKK+S9v+WuueaYkyA8IGZhY2lsaXRhdGU7CivnoJTnqbblk6EgPCByZXNlYXJjaGVyOwor6JaE6I23IDwgZmllbGRcLW1pbnQ7CivppqzlipsgPCBob3JzZXBvd2VyOwor5pyI55CDIDwgXCh0aGVcKVwtbW9vbjsKK+ePvuaIkCA8IHJlYWR5XC1tYWRlOwor6K2w6KuWIDwgdG9cLWNvbW1lbnQ7Civpoqjmv5UgPCByaGV1bWF0aXNtOwor576k55y+IDwgdGhlXC1tYXNzZXM7CivkuInmnIjkuozljYHkuInomZ8gPCBtYXJjaFwtMjNyZDsKK+atpOaZguS7peWJjSA8IGhlcmV0b2ZvcmU7Civku4HmhYggPCBiZW5ldm9sZW50Owor55uu5pOK6ICFIDwgZXlld2l0bmVzczsKK+S7iuW+jCA8IGhlbmNlZm9ydGg7CivomZvmk6wgPCBmaWN0aXRpb3VzOwor5bCI6ZaA5YyWIDwgc3BlY2lhbGl6ZTsKK+Wkmum7qCA8IG11bHRpcGFydHk7CivkuI3nlbYgPCB1bnN1aXRhYmxlOwor5rKI6JC9IDwgc2lua1wsXC1mYWxsOwor6Kyb6L+wIDwgdGFsa1wtYWJvdXQ7CivlrqPkvYggPCB0b1wtZGVjbGFyZTsKK+aRqeaJmOi7iiA8IG1vdG9yY3ljbGU7CivmnJ3prq7miLDniK0gPCBrb3JlYW5cLXdhcjsKK+m8k+aOjCA8IHRvXC1hcHBsYXVkOwor5Lul5aSWIDwgYXBhcnRcLWZyb207CivoqILos7zogIUgPCBzdWJzY3JpYmVyOwor54iG6Z+zIDwgc29uaWNcLWJvb207CivlpKfpq5QgPCBpblwtZ2VuZXJhbDsKK+mjn+aMhyA8IGZvcmVmaW5nZXI7CivnibTop7ggPCBjb250cmFkaWN0Owor56iL5bqPIDwgcHJvY2VkdXJlczsKK+aYjuiogCA8IHByb25vdW5jZWQ7Civpoa/lvq7pj6EgPCBtaWNyb3Njb3BlOwor5pys5pyIIDwgdGhpc1wtbW9udGg7Civljp/nlJ/os6ogPCBwcm90b3BsYXNtOwor5aSa5pa56Z2iIDwgbWFueVwtc2lkZWQ7Civlk7LlrbggPCBwaGlsb3NvcGh5Owor5rCj6LGhIDwgbWV0ZW9yb2xneTsKK+S6kuaDoCA8IHJlY2lwcm9jYWw7CivlkKvnh5AgPCBwaG9zcGhvcmljOwor5pu05q2jIDwgY29ycmVjdGlvbjsKK+m7keadvyA8IGJsYWNrYm9hcmQ7CivmlrDogZ7lrbggPCBqb3VybmFsaXNtOwor5LiN5a6a6KmeIDwgaW5maW5pdGl2ZTsKK+mgkOefpSA8IGFudGljaXBhdGU7Civku6Xlj4ogPCBhc1wtd2VsbFwtYXM7CivkuLvmoLwgPCBub21pbmF0aXZlOwor6YyE5Y+WIDwgdG9cLXJlY3J1aXQ7CivmlrDpg44gPCBicmlkZWdyb29tOwor6ICM5b6MIDwgYWZ0ZXJcLXRoYXQ7CivmgrLmrYwgPCBzYWRcLW1lbG9keTsKK+S6uuWdhyA8IHBlclwtY2FwaXRhOwor5Y+v55aRIDwgc3VzcGljaW91czsKK+iAjOW3siA8IHRoYXQnJ3NcLWFsbDsKK+mbo+S7pee9ruS/oSA8IGluY3JlZGlibGU7CivmtbTlt74gPCBiYXRoXC10b3dlbDsKK+WQiueHiCA8IGNoYW5kZWxpZXI7CivlhbHlkozmlL/pq5QgPCByZXB1YmxpY2FuOwor6IGy5YO5IDwgcmVwdXRhdGlvbjsKK+S4jeewoeWWriA8IG5vdFwtc2ltcGxlOwor5Y+X5YK35a6zIDwgYmVcLWluanVyZWQ7Civnq6/ns7vntbEgPCBlbmRcLXN5c3RlbTsKK+iWhOeJhyA8IHRoaW5cLXNsaWNlOwor5pu05pawIDwgdXBcLXRvXC1kYXRlOwor6aGr5qCXIDwgdG9cLXRyZW1ibGU7Civpm4bpq5QgPCBjb2xsZWN0aXZlOwor5aSW5Lqk5omL6IWVIDwgZGlwbG9tYXRpYzsKK+aVl+mcsiA8IFwob2ZcLWFcLXBsb3Q7CivoqabpqZcgPCBleHBlcmltZW50Owor5Lq65Y+jIDwgcG9wdWxhdGlvbjsKK+S4ieeZvuWEhCA8IDMwXC1iaWxsaW9uOwor5q246aCGIDwgc3VibWlzc2lvbjsKK+Wksei5pCA8IGJlXC1taXNzaW5nOwor6aO95ZKMIDwgc2F0dXJhdGlvbjsKK+atoemosCA8IGp1YmlsYXRpb247Civlvozoo5QgPCBkZXNjZW5kYW50Owor6YeR54mMIDwgZ29sZFwtbWVkYWw7CivpnZ7lsI3nqLEgPCBhc3ltbWV0cmljOwor5LiN5pyDIDwgaW1wcm9iYWJsZTsKK+S4iuaciCA8IGxhc3RcLW1vbnRoOwor5Y2K5rG66LO9IDwgc2VtaWZpbmFsczsKK+eip+e2oCA8IGRhcmtcLWdyZWVuOwor6ICB5aWXIDwgb2xkXC10aGluZ3M7Civlj4rniakgPCB0cmFuc2l0aXZlOwor6I6r6aCI5pyJIDwgZ3JvdW5kbGVzczsKK+S4jeiyt+izrCA8IG5vdFwtYnV5XC1pdDsKK+ejgeebpOmpheWLleWZqCA8IGRpc2xcLWRyaXZlOwor6Zu76LuKIDwgdHJvbGxleWJ1czsKK+mhp+aFriA8IG1pc2dpdmluZ3M7Civlj6/mr5QgPCBjb21wYXJhYmxlOwor6IWT56uL5q+U5pu4IDwgcGhpbGlwaWFuczsKK+S6i+WFiCA8IGluXC1hZHZhbmNlOwor6K2m54qsIDwgcG9saWNlXC1kb2c7CivliZvpq5QgPCByaWdpZFwtYm9keTsKK+aZr+awoyA8IHByb3NwZXJpdHk7CivljZznra4gPCBkaXZpbmF0aW9uOwor5aWz6KOd6KOB57ir5birIDwgZHJlc3NtYWtlcjsKK+S4jeW/qyA8IGJlXC11bmhhcHB5Owor5aWz5a2455SfIDwgc2Nob29sZ2lybDsKK+aUuemAsiA8IHRvXC1pbXByb3ZlOwor6Zu76KaWIDwgdGVsZXZpc2lvbjsKK+W+jOiAhSA8IHRoZVwtbGF0dGVyOwor57qP57meIDwgaW50ZXJ0d2luZTsKK+WKoOmAnyA8IGFjY2VsZXJhdGU7Civoq7Pnt7QgPCBjb252ZXJzYW50Owor5LiL5YCL5pyIIDwgbmV4dFwtbW9udGg7CivpqI7lo6vpoqjmoLwgPCBrbmlnaHRob29kOwor6Y+I6Lev5bGkIDwgbGlua1wtbGF5ZXI7CivkuIDluqYgPCBmb3JcLWFcLXRpbWU7CivmraHov44gPCB0b1wtd2VsY29tZTsKK+WMluWmneiInuacgyA8IG1hc3F1ZXJhZGU7Civloqjpj6EgPCBzdW5nbGFzc2VzOwor5Ymd6ZuiIDwgXChvZlwtdGlzc3VlOwor5b2I6JelIDwgYW1tdW5pdGlvbjsKK+a6q+WSjOaApyA8IHRlbmRlcm5lc3M7CivkuI3lrokgPCBpbnRyYW5xdWlsOwor5pyf5YiKIDwgcGVyaW9kaWNhbDsKK+efpeimuiA8IHBlcmNlcHRpb247CivmiYDmnInogIUgPCBwcm9wcmlldG9yOwor5ZCM5oOFIDwgY29tcGFzc2lvbjsKK+mBqemFjSA8IGFkYXB0YXRpb247CivlkIjmhI8gPCBhY2NlcHRhYmxlOwor5aSn6IejIDwgY2hhbmNlbGxvcjsKK+WQjOaApyA8IGhvbW9zZXh1YWw7Civml6Xnm4ogPCBkYXlcLWJ5XC1kYXk7CivljYrnqbrkuK0gPCBpblwtbWlkXC1haXI7CivmnKzku70gPCBvbmUnJ3NcLWR1dHk7CivlpbPmnI3nianlk6EgPCBzdGV3YXJkZXNzOwor5rKS5pyJ55+l6Ka6IDwgaW5zZW5zaWJsZTsKK+S4jeetieW8jyA8IGluZXF1YWxpdHk7CivmnIPlj4sgPCBtZW1iZXJzaGlwOwor5pqX6ZaT5YWSIDwgaW5uZXJcLXJvb207Civoh6rli5XljJYgPCBhdXRvbWF0aW9uOwor5LiN5aSgIDwgbm90XC1lbm91Z2g7Civllq7mlrnpnaIgPCB1bmlsYXRlcmFsOwor56eB5LiLIDwgaW5cLXByaXZhdGU7Civms6Lls7AgPCB3YXZlXC1jcmVzdDsKK+S4ieWkqSA8IHRocmVlXC1kYXlzOwor5Y+N5pelIDwgYW50aVwtamFwYW47Civlu7rorbAgPCB0b1wtcHJvcG9zZTsKK+S9m+aVmeW+kiA8IGFcLWJ1ZGRoaXN0Owor5rOi5bCOIDwgd2F2ZVwtZ3VpZGU7CivlqaLlpbMgPCBzbGF2ZVwtZ2lybDsKK+aykuaUtiA8IGNvbmZpc2NhdGU7Civlv6vmtLsgPCBnYXlcLFwtaGFwcHk7Civlj6/mgrIgPCBsYW1lbnRhYmxlOwor6KmV6Ki7IDwgY29tbWVudGFyeTsKK+W/heeEtiA8IGluZXZpdGFibGU7CivljYrnkIMgPCBoZW1pc3BoZXJlOwor6Z+/5oeJIDwgcmVzcG9uZFwtdG87CivlpKfntrEgPCBtYWluXC1wb2ludDsKK+awo+WLoua0tua0tiA8IGFnZ3Jlc3NpdmU7Civng6TptKggPCByb2FzdFwtZHVjazsKK+atjOipniA8IHNvbmdcLWx5cmljOwor5Lim5YWlIDwgbWVyZ2VcLWludG87CivlvLHohIggPCB3ZWFrXC1wdWxzZTsKK+aTjeiIteWupCA8IHBpbG90aG91c2U7Civljp/mnKwgPCBvcmlnaW5hbGx5Owor5ZC45ZCuIDwgdG9cLXN1Y2tcLWluOwor54iG56C0IDwgdG9cLWJsb3dcLXVwOwor6YGT6LOAIDwgY29tcGxpbWVudDsKK+WPluW+lyA8IHRvXC1hY3F1aXJlOwor5LiK5Y2KIDwgZmlyc3RcLWhhbGY7CivmlZnogrIgPCB0b1wtZWR1Y2F0ZTsKK+S4jeWLlSA8IG1vdGlvbmxlc3M7CivkuIPljYHlubTku6MgPCB0aGVcLTE5NzAnJ3M7Civopb/pu54gPCB3ZXN0XC1wb2ludDsKK+aWl+ecvCA8IGNyb3NzXC1leWVkOwor55y86Y+hIDwgc3BlY3RhY2xlczsKK+S4jeWCmSA8IHVucHJlcGFyZWQ7CivmgavlmocgPCBpbnRpbWlkYXRlOwor5aWJ5427IDwgY29uc2VjcmF0ZTsKK+S4jeS+nSA8IG5vdFwtY29tcGx5Owor6Zu75ZSx5qmfIDwgcGhvbm9ncmFwaDsKK+aWh+ebsiA8IGlsbGl0ZXJhdGU7CivmmI7mmbogPCBub3RcLXVud2lzZTsKK+a1geeoi+WcliA8IGZsb3dcLWNoYXJ0Owor55uj552j6ICFIDwgc3VwZXJ2aXNvcjsKK+S4gOeZvuS6lOWNgeWEhCA8IDE1XC1iaWxsaW9uOwor5pKe6YedIDwgZmlyaW5nXC1waW47CivljZfmpbUgPCBzb3V0aFwtcG9sZTsKK+aJgOacieeJqSA8IGJlbG9uZ2luZ3M7CivoppbnqpfmlrDmioAgPCB3aW5kb3dzXC1udDsKK+S6jOWNgeS4gCA8IHR3ZW50eVwtb25lOwor5LqGIDwgdG9cLWZpbmlzaDsKK+WtkCA8IG9mZnNwcmluZzsKK+W+uSA8IHBlbmV0cmF0ZTsKK+imgSA8IG5lY2Vzc2FyeTsKK+i+sSA8IGh1bWlsaWF0ZTsKK+edgCA8IG1ha2VcLW1vdmU7CivmiJAgPCBjb21wbGV0ZWQ7CivnnaMgPCBzdXBlcnZpc2U7CivovK8gPCBnYXRoZXJcLXVwOwor5bylIDwgZXh0ZW5zaXZlOwor576OIDwgYmVhdXRpZnVsOwor5buCIDwgc2lkZVwtcm9vbTsKK+mXriA8IGFza1wtYWJvdXQ7Civluq0gPCBjb3VydHlhcmQ7CivnmYIgPCBiZVwtaGVhbGVkOwor55e6IDwgcGFyYWx5c2lzOwor5beuIDwgdG9cLWRpZmZlcjsKK+maviA8IGRpZmZpY3VsdDsKK+i2hSA8IGp1bXBcLW92ZXI7CivnlbAgPCBkaWZmZXJlbnQ7CivkurIgPCByZWxhdGl2ZXM7CivnlasgPCBkZWxpbmVhdGU7CivnlZwgPCBsaXZlc3RvY2s7CivnlZEgPCBkcnlcLWZpZWxkOwor55SYIDwgc3dlZXRuZXNzOwor6K6kIDwgcmVjb2duaXplOwor6LK0IDwgZXhwZW5zaXZlOwor6LKdIDwgc2VhXC1zaGVsbDsKK+i+viA8IGFycml2ZVwtYXQ7CivkvJcgPCBtdWx0aXR1ZGU7CivlgJIgPCBmYWxsXC1vdmVyOwor546pIDwgcGxheVwtd2l0aDsKK+WDjyA8IGFcLXBpY3R1cmU7CivlroUgPCByZXNpZGVuY2U7Civmja4gPCB0b1wtb2NjdXB5Owor6K2vIDwgdHJhbnNsYXRlOwor6K2rIDwgdGFsa2F0aXZlOwor6YCgIDwgY29uc3RydWN0Owor5aq8IDwgb2xkXC13b21hbjsKK+eKoCA8IHNhY3JpZmljZTsKK+eJkiA8IGRvY3VtZW50czsKK+eJjCA8IHNpZ25ib2FyZDsKK+eIkCA8IGZpcmVwbGFjZTsKK+S5hSA8IGxvbmdcLXRpbWU7Civlpr4gPCBjb25jdWJpbmU7CivliJ0gPCBiZWdpbm5pbmc7CivpmaQgPCBlbGltaW5hdGU7CivlhrUgPCBjb25kaXRpb247CivkubEgPCBjb25mdXNpb247CivliJsgPCBlc3RhYmxpc2g7Civnpo8gPCBoYXBwaW5lc3M7CivlgYcgPCBmYWxzZWhvb2Q7Civpob4gPCBsb29rXC1iYWNrOwor6KC2IDwgc2lsa3dvcm1zOwor5riQIDwgZ3JhZHVhbGx5Owor556nIDwgZ2xhbmNlXC1hdDsKK+WfkiA8IGVuY2xvc3VyZTsKK+WfgyA8IGZpbmVcLWR1c3Q7CivonqIgPCBnbG93XC13b3JtOwor6YCAIDwgc3RlcFwtYmFjazsKK+icuyA8IGRyYWdvbmZseTsKK+e/uyA8IGZsaXBcLW92ZXI7CivlnI8gPCB0b1wtY2lyY2xlOwor5pmuIDwgdW5pdmVyc2FsOwor6Ju5IDwgY2hyeXNhbGlzOwor5Li0IDwgZHJhd1wtbmVhcjsKK+WNjyA8IGJlXC11bml0ZWQ7Civmua8gPCBob3RcLXdhdGVyOwor5L6LIDwgcHJlY2VkZW50Owor5rSyIDwgY29udGluZW50Owor5p2+IDwgcGluZVwtdHJlZTsKK+S8mSA8IGNvbXBhbmlvbjsKK+avqyA8IGZpbmVcLWhhaXI7CivolY4gPCBidWNrd2hlYXQ7CivovpMgPCB0cmFuc3BvcnQ7CivmipggPCBicmVha1wtb2ZmOwor5rGwIDwgZXhjZXNzaXZlOwor5ZCbIDwgc292ZXJlaWduOwor5Y2xIDwgZGFuZ2Vyb3VzOwor5qaCIDwgZ2VuZXJhbGx5Owor5Y6EIDwgYWR2ZXJzaXR5Owor5rGHIDwgY29uY291cnNlOwor5Y6JIDwgd2hldHN0b25lOwor6ZmEIDwgYWRoZXJlXC10bzsKK+iCqSA8IHNob3VsZGVyczsKK+mtmCA8IG5pZ2h0bWFyZTsKK+iNkiA8IHdhc3RlbGFuZDsKK+mssSA8IGx1eHVyaWFudDsKK+WMoCA8IGNyYWZ0c21hbjsKK+WMgiA8IGZyYWdyYW5jZTsKK+WLuCA8IHJlY29tbWVuZDsKK+mjmCA8IHdoaXJsd2luZDsKK+eCriA8IGxhcmdlXC1ndW47Civpg44gPCBnZW50bGVtYW47CivpmaogPCBhY2NvbXBhbnk7Civlh50gPCBjb2FndWxhdGU7CivliakgPCBsZWZ0b3ZlcnM7CivppZIgPCBib3VudGlmdWw7CivogpggPCB0aGVcLWVsYm93Owor6IKWIDwgbG9va1wtbGlrZTsKK+aYqCA8IHllc3RlcmRheTsKK+aagiA8IHRlbXBvcmFyeTsKK+mAkiA8IGhhbmRcLW92ZXI7CivnpaUgPCBnb29kXC1sdWNrOwor5YC5IDwgdGVtcGVyYXRlOwor5LuXIDwgcmVseVwtdXBvbjsKK+afvyA8IHBlcnNpbW1vbjsKK+mUriA8IGRvb3JcLWJvbHQ7Civmnq8gPCBkcmllZFwtb3V0Owor6I6xIDwgZ29vc2Vmb290Owor6LWUIDwgaW5kZW1uaWZ5Owor6YCiIDwgY29tZVwtdXBvbjsKK+edgSA8IG9wZW5cLWV5ZXM7CivlmL8gPCBiZVwtc2lsZW50Owor6LSqIDwgYmVcLWdyZWVkeTsKK+mAnSA8IHBhc3NcLWF3YXk7Civoib4gPCBhcnRlbWlzaWE7Civooo0gPCBsb25nXC1nb3duOwor5YakIDwgZ3JpZXZhbmNlOwor6L+qIDwgZW5saWdodGVuOwor5ZiJIDwgZXhjZWxsZW50Owor6Za+IDwgdGhyZXNob2xkOwor57a+IDwgdGhpblwtc2lsazsKK+iGgCA8IHVwcGVyXC1hcm07Civpob0gPCBvYnN0aW5hdGU7CivmrYkgPCBkZWZpY2llbnQ7CivluIUgPCBjb21tYW5kZXI7Civmhr4gPCB0b1wtcmVncmV0Owor5YqIIDwgY3V0XC1hcGFydDsKK+aLgiA8IHNoYWtlXC1vZmY7CivnrYggPCBhcnJvd1wtZW5kOwor54asIDwgY29va1wtZG93bjsKK+eovCA8IHNvd1wtZ3JhaW47CivmgY0gPCBzZWVtaW5nbHk7Civnu6MgPCBlbWJyb2lkZXI7Civmh4MgPCBjb3VydGVvdXM7CivooawgPCB1bmRlcndlYXI7CivmhYogPCB0b1wtcmVzZW50Owor5r2tIDwgZGVlcFwtcG9vbDsKK+ehnSA8IHNhbHRwZXRlcjsKK+mqpCA8IHByb2NlZHVyZTsKK+W/vyA8IGdldFwtYW5ncnk7CivlnaAgPCBmYWxsXC1kb3duOwor6J22IDwgYnV0dGVyZmx5Owor54SJIDwgdGhlcmV1cG9uOwor56aAIDwgcmVwb3J0XC10bzsKK+aMqyA8IHB1c2hcLWRvd247Civps4QgPCBhbGxpZ2F0b3I7CivosJAgPCBoYXJtb25pemU7CivlsY4gPCBleGNyZW1lbnQ7CivokbEgPCBzY2FsbGlvbnM7CivmnqMgPCBkYXRlXC10cmVlOwor6LC0IDwgcmVwcmltYW5kOwor5rG5IDwgdHVyYnVsZW50Owor5rO7IDwgZHJhaW5cLW9mZjsKK+eAkSA8IHdhdGVyZmFsbDsKK+aoiiA8IGFcLXJhaWxpbmc7CivmlZsgPCBkcmF3XC1iYWNrOwor6Iy1IDwgYVwtY3VzaGlvbjsKK+ajlSA8IGhlbXBcLXBhbG07CivovpcgPCB0dXJuXC1vdmVyOwor5oGkIDwgc2hvd1wtcGl0eTsKK+S+iCA8IGx1eHVyaW91czsKK+aygSA8IHNvYWtcLWludG87CivljKMgPCBzbWFsbFwtYm94Owor5o2OIDwgdG9cLXNlbGVjdDsKK+eXniA8IGR5c3BlcHNpYTsKK+edkCA8IHNxdWludFwtYXQ7CivlnqYgPCBjdWx0aXZhdGU7CivmtZIgPCByaXZlcmJhbms7CivokbUgPCBzdW5mbG93ZXI7CivnnasgPCBleWVsYXNoZXM7Civlk7ogPCBjaGV3XC1mb29kOwor56ujIDwgdGVybWluYXRlOwor5ZuUIDwgbXV0dGVyaW5nOwor6JeQIDwgZGlzcmVnYXJkOwor5Z+gIDwgcG9ydFwtY2l0eTsKK+iNpCA8IG1lYXRcLWRpZXQ7CivonJIgPCBtaWxsaXBlZGU7Civoj4cgPCBtdXNocm9vbXM7CivosZogPCBzbWFsbFwtcGlnOwor5rKTIDwgY29ubmVjdGVkOwor5bypIDwgY3Jvc3NcLWJvdzsKK+auhyA8IGRpZVwteW91bmc7CivmoIggPCB3YXJlaG91c2U7CivphrogPCBnZXRcLWRydW5rOwor6JyIIDwgY2VudGlwZWRlOwor5oSrIDwgZ3VpbGVsZXNzOwor6LCZIDwgdmVyc2VkXC1pbjsKK+eGuSA8IGRpbVwtbGlnaHQ7CivmgIIgPCBpbnN0aWdhdGU7CivpgZsgPCB0YWtlXC13YWxrOwor6bq+IDwgYVwtcGVubmFudDsKK+WqsiA8IG1hcnJ5XC1vZmY7CivplYEgPCBtYWduZXNpdW07CivmpLAgPCBwYWxtXC10cmVlOwor55eiIDwgZHlzZW50ZXJ5Owor5ZeRIDwgZWF0XC1zZWVkczsKK+iaryA8IGVhcnRod29ybTsKK+icmiA8IGNvY2tyb2FjaDsKK+mYhiA8IGhpZ2hcLWRvb3I7Civmk4AgPCByb2xsXC1mbGF0Owor6KKkIDwgbG9uZ2l0dWRlOwor6bqdIDwgbXVza1wtZGVlcjsKK+S9uyA8IGZyaXZvbG91czsKK+mSviA8IHBvdGFzc2l1bTsKK+WtkSA8IHJlbWFpbmluZzsKK+aqhCA8IGNhbGxcLWFybXM7Civpmo0gPCBkcnlcLWRpdGNoOwor6K+/IDwgcGFzc1wtYnVjazsKK+mAhCA8IGFcLXN1cm5hbWU7Civmoo8gPCBoYW5kY3VmZnM7CivpkrogPCBicm9hZFwtYXhlOwor5p+RIDwgdGFuZ2VyaW5lOwor5LmcIDwgdG9cLXNxdWludDsKK+WosiA8IGFcLWdvZGRlc3M7Civlv50gPCBkaXNncmFjZWQ7Civor64gPCBjcml0aWNpemU7Civps48gPCBodWdlXC1maXNoOwor6JyHIDwgamVsbHlmaXNoOwor5YqtIDwgZW5jb3VyYWdlOwor55mjIDwgcmluZ3dvcm1zOwor57umIDwgc2lsa1wtY29yZDsKK+mSuCA8IHBsdXRvbml1bTsKK+mmlyA8IGNoZWVrYm9uZTsKK+mUsCA8IG1hbmdhbmVzZTsKK+S+qiA8IGFcLWNvbXBhbnk7Civlh6sgPCB3aWxkXC1kdWNrOwor55exIDwgaGVhdFwtcmFzaDsKK+eXiCA8IGNhcmJ1bmNsZTsKK+aCjCA8IGJyb3RoZXJseTsKK+WGvCA8IFwoc3VybmFtZVwpOwor6bmnIDwgcGFydHJpZGdlOwor5oKSIDwgc29ycm93ZnVsOwor5oCDIDwgcmVncmV0ZnVsOwor5aKSIDwgd2V0XC10aWx0aDsKK+ioviA8IGJhZFwtbW91dGg7CivlnK4gPCBkZXN0cm95ZWQ7CivpsoggPCBzZWFcLXBlcmNoOwor5pSJIDwgdG9cLWJlY2tvbjsKK+myhyA8IHNoZWF0ZmlzaDsKK+iGiCA8IGRpYXBocmFnbTsKK+eKjSA8IGFcLWJ1bGxvY2s7CivplJcgPCBnZXJtYW5pdW07Civpjo8gPCBwdXJlXC1nb2xkOwor6ZWFIDwgYW1lcmljaXVtOwor6L6CIDwgYVwtY2hhcmlvdDsKK+i3uCA8IGNsZWFyXC13YXk7CivnhbMgPCBiZVwtYnVybmVkOwor54m+IDwgdG9cLW9wcG9zZTsKK+aYgCA8IHN1blwtbGlnaHQ7CivkuakgPCB0b1wtZGl2aW5lOwor576fIDwgaHlkcm94aWRlOwor6I29IDwgY29yaWFuZGVyOwor57ugIDwgd2VsbFwtcm9wZTsKK+WTkyA8IGdhcnJ1bG91czsKK+iErCA8IGFcLWJsYWRkZXI7CivmiKEgPCBzdWJqdWdhdGU7CivovocgPCBoYW5kXC1jYXJ0Owor6bmaIDwgY29ybW9yYW50Owor6ZWeIDwgYXJyb3doZWFkOwor6I+wIDwgd2lsZFwtcmljZTsKK+igliA8IGluY2hcLXdvcm07Civpk6sgPCBsYXJnZVwtaG9lOwor5rCYIDwgZGV1dGVyaXVtOwor6bu+IDwgdG9cLXN0cml2ZTsKK+mVpyA8IGxhbnRoYW51bTsKK+WeoSA8IHBsb3dcLXNvaWw7CivngpQgPCBhY2V0eWxlbmU7CivplbEgPCB5dHRlcmJpdW07CivpkpUgPCBuZW9keW1pdW07Civlv60gPCBkZWxpZ2h0ZWQ7Civoi7QgPCBzYWNrY2xvdGg7CivosLMgPCB0b1wtZGVjaWRlOwor6ZKvIDwgcGFsbGFkaXVtOwor56KyIDwgdGVsbHVyaXVtOwor55KpIDwgamFkZVwtcmluZzsKK+mlqyA8IHN1cmZlaXRlZDsKK+aSmSA8IGVjb25vbWl6ZTsKK+iTvCA8IHNtYXJ0d2VlZDsKK+mllCA8IGJyZWFrZmFzdDsKK+mUtiA8IHN0cm9udGl1bTsKK+aYgyA8IGFmdGVybm9vbjsKK+WUqiA8IHRvXC1yZWNpdGU7CivlhIcgPCBpbmdlbmlvdXM7CivpsrQgPCBmaXNoXC1ndXRzOwor6bKFIDwgZmlzaFwtbmFtZTsKK+mTjSA8IGJlcnlsbGl1bTsKK+eGsyA8IHRvXC1zcHJlYWQ7Civog40gPCBndWFuaWRpbmU7CivpspAgPCBnbG9iZWZpc2g7CivphZAgPCBhbmh5ZHJpZGU7CivooYQgPCBlcGlzdGF4aXM7Civnn6cgPCBtdWNoXC1tb3JlOwor5oKrIDwgc2luY2VyaXR5Owor6IamIDwgcGhvc3BoaW5lOwor57yjIDwgZmluZVwtc2lsazsKK+WuhCA8IGFcLXRyYWl0b3I7CivpmIwgPCB3ZW5cLXhpYW5nOwor6YWeIDwgcGh0aGFsZWluOwor5pS257iuIDwgcHVsbFwtYmFjazsKK+WkmueWkSA8IHNrZXB0aWNhbDsKK+WQiOWKmyA8IGNvb3BlcmF0ZTsKK+eIhueCuCA8IGV4cGxvc2lvbjsKK+e4ruWwj+aooeWeiyA8IG1pbmlhdHVyZTsKK+WJsuiNiSA8IG1vd1wtZ3Jhc3M7CivororlpY8gPCB2YXJpYXRpb247CivpoJjlj5cgPCB0b1wtYWNjZXB0Owor5Lul5byX5omA5pu4IDwgZXBoZXNpYW5zOwor5YuV55uqIDwgY29tbW90aW9uOwor5Y+v5ZOAIDwgbWlzZXJhYmx5Owor5rKS5pyJ5b2i54uAIDwgc2hhcGVsZXNzOwor6I+g6Ji/IDwgcGluZWFwcGxlOwor56mp5a6a5oCnIDwgc3RhYmlsaXR5Owor5Y6a5bqmIDwgdGhpY2tuZXNzOwor6YCf6KiYIDwgc2hvcnRoYW5kOwor55So5oi25pW45pOaIDwgdXNlclwtZGF0YTsKK+W+kOatpSA8IHRvXC1zdHJvbGw7Civopb/pnaIgPCB3ZXN0XC1zaWRlOwor6YCj5o6l5ZmoIDwgY29ubmVjdG9yOwor5pGY6ZmkIDwgdG9cLWV4Y2lzZTsKK+itpuWumCA8IGNvbnN0YWJsZTsKK+mWi+eZvOS6uuWToSA8IGRldmVsb3BlcjsKK+WQjeS6uiA8IHBlcnNvbmFnZTsKK+iUk+W7tiA8IHRvXC1leHRlbmQ7CivlnLDos6rlrbjlrrYgPCBnZW9sb2dpc3Q7CivlkIzkuosgPCBjb2xsZWFndWU7CivlvaLlrrnovq0gPCBhZGplY3RpdmU7CivljYrml5cgPCBoYWxmXC1tYXN0Owor6YeR5YygIDwgZ29sZHNtaXRoOwor5ZCM5LiAIDwgaWRlbnRpY2FsOwor5Y+v5b6X5YiwIDwgYXZhaWxhYmxlOwor56Kw5benIDwgYnlcLWNoYW5jZTsKK+enkeWtuOWutiA8IHNjaWVudGlzdDsKK+aZruWPiiA8IHdpZGVzcGVhZDsKK+ioree9riA8IHRvXC1zZXRcLXVwOwor5b+X6aGY6ICFIDwgdm9sdW50ZWVyOwor54eS54esIDwgYnVyblwtZG93bjsKK+aYjuW5tCA8IG5leHRcLXllYXI7Civmk6bpgornkIMgPCBlZGdlXC1iYWxsOwor5Y+k5YW4IDwgY2xhc3NpY2FsOwor5Y+r5YGaIDwgYmVcLWNhbGxlZDsKK+e2oOiMtiA8IGdyZWVuXC10ZWE7CivmgI7purzmqKMgPCBob3dcLWFib3V0Owor5omA5pyJ5qyKIDwgb3duZXJzaGlwOwor5Yil6JmVIDwgZWxzZXdoZXJlOwor6L+w6KqeIDwgcHJlZGljYXRlOwor55m95aCx57SZIDwgbmV3c3ByaW50Owor6Ziy6KGbIDwgdG9cLWRlZmVuZDsKK+iojuirluacgyA8IHN5bXBvc2l1bTsKK+aVmeeItiA8IGdvZGZhdGhlcjsKK+WPl+WDsSA8IG1lcmNlbmFyeTsKK+iqnua6kCA8IGV0eW1vbG9neTsKK+iqquazlSA8IHN0YXRlbWVudDsKK+WfjumWgCA8IGNpdHlcLWdhdGU7CivmjqXlj5fogIUgPCByZWNpcGllbnQ7CivnlJ/nianlrbjlrrYgPCBiaW9sb2dpc3Q7CivpnYjmlY8gPCBzZW5zaXRpdmU7CivliqnnkIYgPCBhc3Npc3RhbnQ7Civmr4/lgIvkurogPCBldmVyeWJvZHk7CivkuI3ogrLmgKcgPCBzdGVyaWxpdHk7CivmqqLmn6Xlk6EgPCBpbnNwZWN0b3I7Civoq5bmlrcgPCBpbmZlcmVuY2U7Civlj5fkuosgPCByZWNlcGllbnQ7CivnhqznhY4gPCBzdWZmZXJpbmc7CivliIbomZ8gPCBzZW1pY29sb247Civljp/lkYogPCBjb21wbGFpbnQ7Civnmb3prZogPCB3aGl0ZWZpc2g7Civooajnj77lnosgPCBwaGVub3R5cGU7CivlpJrmqKMgPCBkaXZlcnNpdHk7CivlpJrmqKEgPCBtdWx0aW1vZGU7CivnhKHog70gPCBpbmFiaWxpdHk7Civnmb3pq5QgPCBsZWFuXC10eXBlOwor5qiZ6auYIDwgZWxldmF0aW9uOwor5aaW5aqaIDwgc2VkdWN0aXZlOwor54Sh6IGyIDwgbm9pc2VsZXNzOwor5Y2B5bm0IDwgdGVuXC15ZWFyczsKK+WNiuWztiA8IHBlbmluc3VsYTsKK+S4jeWPr+ejqOa7hSA8IGluZGVsaWJsZTsKK+mAo+e6jCA8IGNvbnRpbm91czsKK+WOn+WJhyA8IHByaW5jaXBsZTsKK+earumei+WMoCA8IHNob2VtYWtlcjsKK+mYv+avlOilv+WwvOS6niA8IGFieXNzaW5pYTsKK+mEreW3niA8IHpoZW5nemhvdTsKK+ioiOetliA8IHN0cmF0YWdlbTsKK+W6lee3miA8IHVuZGVybGluZTsKK+mWg+mbuyA8IGxpZ2h0bmluZzsKK+W8lea4oSA8IGV4dHJhZGl0ZTsKK+S/neitt+iAhSA8IHByb3RlY3RvcjsKK+aVmeavjSA8IGdvZG1vdGhlcjsKK+aWh+aYjiA8IGNpdmlsaXplZDsKK+WBveWQm+WtkCA8IGh5cG9jcnl0ZTsKK+ebtOimuiA8IGludHVpdGlvbjsKK+WjgeeHiCA8IHdhbGxcLWxhbXA7Civnmbzpn7MgPCBwcm9ub3VuY2U7CivljpjlhYsgPCBjZW50aWdyYW07CivppqzouYTpkLUgPCBob3JzZXNob2U7Civmk5TmnrbluoogPCBzdHJldGNoZXI7CivnhKHnsZ8gPCBzY291bmRyZWw7CivliqDmt7EgPCB0b1wtZGVlcGVuOwor5Z+36KGMIDwgaW1wbGVtZW50Owor6Zu55pq0IDwgaGFpbHN0b3JtOwor56K65L+hIDwgY29uZmlkZW50Owor6YKj5qijIDwgdGhhdFwta2luZDsKK+WFrOmHjCA8IGtpbG9tZXRlcjsKK+iqoOaRryA8IHNpbmNlcmVseTsKK+W3rui3nSA8IGRpc3Bhcml0eTsKK+S4jeS6puaoguS5jiA8IGV4dHJlbWVseTsKK+ilr+ijmSA8IHBldHRpY29hdDsKK+mwvuiGoCA8IGlzaW5nbGFzczsKK+aMieeFp+Wtl+mdoiA8IGxpdGVyYWxseTsKK+itieS7tiA8IHBhcGVyd29yazsKK+e0sOiPjCA8IGJhY3RlcmlhbDsKK+iSvOWkqSA8IGZpcm1hbWVudDsKK+S4ieWIhuS5i+S4gCA8IG9uZVwtdGhpcmQ7Civnt6nmspYgPCB0b1wtYnVmZmVyOwor6YG45rS+IDwgc2V0XC1hcGFydDsKK+S4jeWujOWWhCA8IGltcGVyZmVjdDsKK+Wkp+W/lyA8IGhpZ2hcLWFpbXM7CivovJTpn7MgPCBjb25zb25hbnQ7CivlvLXmj5ogPCBwdWJsaWNpemU7Civop6PnorwgPCB0b1wtZGVjb2RlOwor5pKt56iuIDwgc293XC1zZWVkczsKK+WMluWtuCA8IGNoZW1pc3RyeTsKK+Wgsee0mSA8IG5ld3NwYXBlcjsKK+eEoeefpSA8IGlnbm9yYW5jZTsKK+aOpemngSA8IHRvXC1hY2Nlc3M7CivkuI3lj6/mlZHol6UgPCBpbmN1cmFibGU7CivlvojlpJogPCB2ZXJ5XC1tYW55Owor6IC26Lev5pKS5Ya3IDwgamVydXNhbGVtOwor6ZuZ5pa5IDwgYmlsYXRlcmFsOwor5pm06Zuo6KGoIDwgYmFyb21ldGVyOwor5Y2D56an5bm0IDwgbWlsbGVuaXVtOwor6ZW36YGgIDwgbG9uZ1wtdGVybTsKK+WNg+WRqCA8IGtpbG9oZXJ0ejsKK+mBjua/viA8IHRvXC1maWx0ZXI7CivopLvngIbnmoToqbEgPCBibGFzcGhlbXk7CivlpYflppkgPCBmYW50YXN0aWM7CivlhrDok4sgPCBpY2VcLXNoZWV0Owor5ZyL5YWn5oiw54itIDwgY2l2aWxcLXdhcjsKK+WNseWcsOmmrOaLiSA8IGd1YXRhbWFsYTsKK+mBmea4rCA8IHRlbGVtZXRyeTsKK+aOpeePreS6uiA8IHN1Y2Nlc3NvcjsKK+i+suiIjSA8IGZhcm1ob3VzZTsKK+WJquiyvOewvyA8IHNjcmFwYm9vazsKK+WBieaZtuWyqSA8IHBlZ21hdGl0ZTsKK+e0heiTriA8IHJlZFwtbG90dXM7CivmjIfnpLrnrKYgPCBpbmRpY2F0b3I7CivlhbHorZggPCBjb25zZW5zdXM7CivliqDlr4blvoznmoQgPCBlbmNyeXB0ZWQ7CivmnInmlLvmk4rmgKcgPCBvZmZlbnNpdmU7CivlpKflsI8gPCBkaW1lbnNpb247Civmg6HlkI3mmK3lvbAgPCBub3RvcmlvdXM7Civkv53mg6DluKsgPCBjb21mb3J0ZXI7CivlpKflrrYgPCBhdXRob3JpdHk7CivniK3lj5YgPCBmaWdodFwtZm9yOwor5q+P5aSpIDwgZXZlcnlcLWRheTsKK+e2k+a/n+WtuOWutiA8IGVjb25vbWlzdDsKK+aUu+aTiiA8IHRvXC1hdHRhY2s7CivntIXojLYgPCBibGFja1wtdGVhOwor5paH5a2XIDwgY2hhcmFjdGVyOwor5bi457agIDwgZXZlcmdyZWVuOwor5q6Y5buiIDwgZGVmb3JtaXR5Owor6Zqx5pmmIDwgb2JzY3VyaXR5Owor5bu656+J5birIDwgYXJjaGl0ZWN0Owor54Wn5qijIDwgYXNcLWJlZm9yZTsKK+aWueWQkSA8IGRpcmVjdGlvbjsKK+eEsOeBqyA8IGZpcmV3b3JrczsKK+aVkeaBqSA8IHNhbHZhdGlvbjsKK+mYv+epuuWKoOeTnCA8IGFjb25jYWd1YTsKK+WKoOaLieWkquabuCA8IGdhbGF0aWFuczsKK+W+jOWLpCA8IGxvZ2lzdGljczsKK+WnlOWToeacgyA8IGNvbW1pdHRlZTsKK+e2sumam+iJsuaDhSA8IGN5YmVycG9ybjsKK+i+pue9qiA8IHRvXC1wdW5pc2g7CivopoHnt4ogPCBpbXBvcnRhbnQ7CivmsJHkuLsgPCBkZW1vY3JhY3k7Civli5nlr6YgPCBwcmFnbWF0aWM7CivmjqjpircgPCB0b1wtbWFya2V0Owor5b2Z5aCxIDwgdG9cLXJlcG9ydDsKK+imgee0oCA8IGVzc2VudGlhbDsKK+iIqua1t+iAhSA8IG5hdmlnYXRvcjsKK+WkouWigyA8IGRyZWFtbGFuZDsKK+iqsuWggiA8IGNsYXNzcm9vbTsKK+WgseeVjCA8IHRoZVwtcHJlc3M7CivljYHkuIMgPCBzZXZlbnRlZW47Civngavol6UgPCBndW5wb3dkZXI7CivoqLrmlrcgPCBkaWFnbm9zaXM7Civmr6vlhYsgPCBtaWxsaWdyYW07Civlia/mnKwgPCBkdXBsaWNhdGU7CivoirHnsonpgY7mlY8gPCBoYXlcLWZldmVyOwor5buj5pKtIDwgYnJvYWRjYXN0Owor5pWX5bGAIDwgbG9zdFwtZ2FtZTsKK+mDiuWkliA8IG91dHNraXJ0czsKK+eZveignyA8IHdoaXRlXC13YXg7Civlh7rnj74gPCB0b1wtYXBwZWFyOwor5Yaw57OVIDwgaWNlXC1jcmVhbTsKK+WFgeiosSA8IHRvXC1wZXJtaXQ7CivlsI/lkIPlupcgPCBzbmFja1wtYmFyOwor5b6M5LujIDwgcG9zdGVyaXR5Owor57at5aOr5Y2hIDwgdmlzYVwtY2FyZDsKK+eCuuaZgumBjuaXqSA8IHByZW1hdHVyZTsKK+iBr+WQiOe1hOe5lCA8IHN5bmRpY2F0ZTsKK+ani+mAoCA8IHN0cnVjdHVyZTsKK+m9syA8IHRvb3RobGVzczsKK+m9rSA8IHRvb3RoYWNoZTsKK+WlveWlh+W/gyA8IGN1cmlvc2l0eTsKK+WLvuWKgyA8IHRvXC1za2V0Y2g7Civkurrnianmj4/lr6sgPCBwb3J0cmF5YWw7Civlop7mj7QgPCByZWluZm9yY2U7CivnhKHmr5QgPCBtYXRjaGxlc3M7CivmlZnlo6sgPCBjaHVyY2htYW47CivmrKHmlbggPCBmcmVxdWVuY3k7CivlpKflipsgPCBlbmVyZ2V0aWM7CivmlL/msrvmgKcgPCBwb2xpdGljYWw7Civmu5HpvKDlooogPCBtb3VzZVwtcGFkOwor5aOv5aSnIDwgdG9cLWV4cGFuZDsKK+m3viA8IGFcLXN3YWxsb3c7Civpt60gPCB3YXRlclwtaGVuOwor5ouc54mp5pWZIDwgZmV0aXNoaXNtOwor6YG15b6qIDwgdG9cLWZvbGxvdzsKK+m3pSA8IHRoZVwtZWdyZXQ7CivpganmhI8gPCBhZ3JlZWFibGU7Civpt48gPCBiaXJkXC1uYW1lOwor6bahIDwgY3Jvc3NiaWxsOwor6Kq/5YGcIDwgcmVjb25jaWxlOwor6bW3IDwgY29cLXdvcmtlcjsKK+W5sua2iSA8IGludGVyZmVyZTsKK+mzoiA8IHNuYWtlaGVhZDsKK+ekvuacg+S4u+e+qeiAhSA8IHNvY2lhbGlzdDsKK+S9jumAn+eOhyA8IGxvd1wtc3BlZWQ7Civpso4gPCBraW5nXC1jcmFiOwor6bG3IDwgY3JvY29kaWxlOwor5Yuk5YuJIDwgZGlsaWdlbmNlOwor5qy+5b6FIDwgZW50ZXJ0YWluOwor5Luk5Lq65qy95L2pIDwgYWRtaXJhYmxlOwor6a+gIDwgdG9cLWNvbmZlcjsKK+eZvOiKvSA8IGdlcm1pbmF0ZTsKK+mupiA8IHNuYWtlZmlzaDsKK+aSpeatoyA8IHNldFwtcmlnaHQ7CivprZ4gPCBmaXNoXC10cmFwOwor6Zi/5aWH6YeM5pavIDwgYWVzY2h5bHVzOwor5aO95ZG9IDwgbGlmZVwtc3BhbjsKK+msliA8IHdpbGRcLWhhaXI7Civpq6cgPCBsb25nXC1oYWlyOwor6auXIDwgdGhlXC1za3VsbDsKK+aPkOaRqeWkquWQjuabuCA8IDJcLXRpbW90aHk7Civpqq0gPCBzaGluXC1ib25lOwor5pS/5rK75bGAIDwgcG9saXRidXJvOwor57aT5paHIDwgc2NyaXB0dXJlOwor6Zu25ZSu5ZWGIDwgdHJhZGVzbWFuOwor5pWy5YWlIDwgdG9cLWtleVwtaW47CivpmorlvaIgPCBmb3JtYXRpb247CivpqKcgPCB0YW5cLWhvcnNlOwor6aiQIDwgdG9cLXZlcml0eTsKK+WkqeS4iiA8IGNlbGVzdGlhbDsKK+mnuCA8IGdhbGxvcGluZzsKK+aUv+ayu+WutiA8IHN0YXRlc21hbjsKK+mloCA8IHJpY2VcLWNha2U7CivovqbnkIYgPCB0b1wtaGFuZGxlOwor6aSxIDwgZHJ5XC1nb29kczsKK+WuieWFqOW4tiA8IHNlYXRcLWJlbHQ7CivlrZ/liqDmi4noqp4gPCBiZW5nYWxlc2U7CivoqLvlrpogPCBiZVwtZG9vbWVkOwor54Sh5pW4IDwgY291bnRsZXNzOwor5pS25ZueIDwgdG9cLXJlZ2FpbjsKK+WkluS6pCA8IGRpcGxvbWFjeTsKK+mBjuW6piA8IGV4Y2VlZGluZzsKK+aTjeaMgSA8IHRvXC1tYW5hZ2U7Civnmbvlu6PlkYogPCBhZHZlcnRpc2U7CivmqqLmuKwgPCB0b1wtZGV0ZWN0Owor55+u5YezIDwgbG93XC1zdG9vbDsKK+majuWxpCA8IGhpZXJhcmNoeTsKK+mdqiA8IHRvXC1jb2JibGU7CivpppnmqrPphZIgPCBjaGFtcGFnbmU7CivpnacgPCB3YXNoXC1mYWNlOwor6Iez6auYIDwgcGFyYW1vdW50Owor6Z2AIDwgZHJpenpsaW5nOwor5o6S6KGMIDwgc2VuaW9yaXR5Owor6ZyCIDwgZmluZVwtcmFpbjsKK+WJjeW+gCA8IGxlYXZlXC1mb3I7CivmlZnlhIAgPCBvcmRpbmFuY2U7CivmqZ/morDoo53nva4gPCBtYWNoaW5lcnk7CivpmoMgPCB0b1wtZXhjZWVkOwor5aKz5aKTIDwgc2VwdWxjaGVyOwor57ac5ZCI5oCnIDwgc3ludGhlc2lzOwor5YWs56eJIDwga2lsb2xpdGVyOwor6Zi75pKTIDwgdG9cLXRod2FydDsKK+WCs+mAgSA8IHRvXC1jb252ZXk7CivplrogPCBsb29rXC1kb3duOwor6YG65ZuRIDwgdGVzdGFtZW50Owor5q2h5ZG8IDwgY2hlZXJcLWZvcjsKK+mUqyA8IGJlcmtlbGl1bTsKK+mUhiA8IHppcmNvbml1bTsKK+mStiA8IGNvbHVtYml1bTsKK+mBiuWuoiA8IHRyYXZlbGxlcjsKK+mSjCA8IHJ1dGhlbml1bTsKK+aRgemHmOWFkiA8IHRodW1idGFjazsKK+mSgSA8IGFcLW1hdHRvY2s7CivmloflhbfllYYgPCBzdGF0aW9uZXI7CivmlrDliqDlnaEgPCBzaW5nYXBvcmU7Civln47niYYgPCBjaXR5XC13YWxsOwor5YWn56K8IDwgdG9cLWVuY29kZTsKK+mQuyA8IGRydW1zdGljazsKK+aRp+aumCA8IHRvXC1yYXZhZ2U7Civmkp7mk4ogPCB0b1wtc3RyaWtlOwor5Yqg5YqHIDwgYWdncmF2YXRlOwor6Y+bIDwgdG9cLXBvbGlzaDsKK+mYu+aKlyA8IGltcGVkYW5jZTsKK+aNkOi0iCA8IHRvXC1kb25hdGU7Civoh6rpoZggPCB2b2x1bnRhcnk7Civpjr8gPCBuZXB0dW5pdW07CivmqLnnmq4gPCB0cmVlXC1iYXJrOwor6Y6eIDwgcGxvd3NoYXJlOwor6Zqo5ZOhIDwgYXR0ZW5kYW50Owor5YWJ562GIDwgbGlnaHRcLXBlbjsKK+WgseaUpCA8IG5ld3NzdGFuZDsKK+WHuuaWvCA8IGJlXC1kdWVcLXRvOwor54Sh5b2iIDwgaW52aXNpYmxlOwor6KOd572uIDwgZXF1aXBtZW50Owor6YiMIDwgdG9cLXBpZXJjZTsKK+aVheS6iyA8IG5hcnJhdGl2ZTsKK+WFseeUoiA8IGNvbW11bmlzdDsKK+aOqOe/uyA8IG92ZXJ0aHJvdzsKK+mgmOS6i+mkqCA8IGNvbnN1bGF0ZTsKK+WckuiXnSA8IGdhcmRlbmluZzsKK+WKg+WIhiA8IHRvXC1kaXZpZGU7CivlgrPoqJggPCBiaW9ncmFwaHk7Civov7fmg5EgPCB0b1wtcHV6emxlOwor5Yqg5LiKIDwgdG9cLXB1dFwtaW47CivovJggPCBhXC1jYXJcLXJ1dDsKK+mAmuWutSA8IG92ZXJuaWdodDsKK+i7hCA8IHRvXC1nb3Zlcm47CivoupQgPCBmb2xsb3dcLWluOwor5buj5YKzIDwgcHJvcGFnYXRlOwor55m855SfIDwgdG9cLWhhcHBlbjsKK+i3qSA8IHRvXC13YWRkbGU7CivotoXoga/ntZAgPCBoeXBlcmxpbms7Civotp0gPCB0b1wtcHVyc3VlOwor6LW/IDwgbGF0ZVwtc2xvdzsKK+e1hOaIkCA8IGNvbXBvbmVudDsKK+aOpeeuoSA8IHRha2VcLW92ZXI7CivosbUgPCB5b3VuZ1wtcGlnOwor57i95pyD5pyD6ZW3IDwgcHJlc2lkZW50Owor6ZqG5YasIDwgbWlkd2ludGVyOwor5Ye55bqmIDwgY29uY2F2aXR5Owor5ryr6ZW3IDwgdmVyeVwtbG9uZzsKK+eVjOmdoiA8IGludGVyZmFjZTsKK+WJteS9nCA8IHRvXC1jcmVhdGU7CivliLDnm67liY3ngrrmraIgPCB1bnRpbFwtbm93Owor6K2KIDwgd3JhbmdsaW5nOwor6K2FIDwgd3JpZ2dsaW5nOwor6KudIDwga25vd2xlZGdlOwor5q+r54Sh55aR5ZWPIDwgY2VydGFpbnR5Owor57ac5ZCIIDwgY29tcG9zaXRlOwor5oqr6ZyyIDwgdG9cLXJldmVhbDsKK+eci+W+hSA8IGxvb2tcLXVwb247CivpmbflhaUgPCBzaW5rXC1pbnRvOwor6KGw6JC9IDwgZGVjb21wb3NlOwor5pKl5aWPIDwgcGl6emljYXRvOwor6L+r5a6zIDwgcGVyc2VjdXRlOwor6YCy5YyWIDwgZXZvbHV0aW9uOwor5rWB6KGM5oCn5oSf5YaSIDwgaW5mbHVlbnphOwor6KOyIDwgd2Fpc3Rjb2F0Owor6L6v5omNIDwgZWxvcXVlbmNlOwor6Ieq6LKgIDwgY29uY2VpdGVkOwor6J6MIDwgYVwtc3RyaXBlZDsKK+W4guaUvyA8IG11bmljaXBhbDsKK+WEvOeEtiA8IGp1c3RcLWxpa2U7Civkv53nmofpu6ggPCByb3lhbGlzdHM7CivntZXlppkgPCBleHF1aXNpdGU7CivmnbHljJfmlrkgPCBub3J0aGVhc3Q7CivmipXpmY0gPCBzdXJyZW5kZXI7CivnsL3nq6AgPCBzaWduYXR1cmU7CivomJ4gPCB3aWxkXC12aW5lOwor57aB5YyqIDwga2lkbmFwcGVyOwor54Sh5YqbIDwgcG93ZXJsZXNzOwor5aW96JCK5aGiIDwgaG9sbHl3b29kOwor5pOU5L+dIDwgZ3VhcmFudGVlOwor5o6o55CGIDwgcmVhc29uaW5nOwor6JWXIDwgbGV1Y2FjZW5lOwor5Zug6ICMIDwgdGhlcmVmb3JlOwor6YCG5ZCRIDwgYmFja3dhcmRzOwor6JOGIDwgc3RyYXdcLW1hdDsKK+aMieiaiiA8IGFub3BoZWxlczsKK+aoo+apnyA8IHByb3RvdHlwZTsKK+iSoiA8IGhlZHlzYXJ1bTsKK+WIqOWGsCA8IHdhdGVyXC1pY2U7CivluLblr6wgPCBiYW5kd2lkdGg7CivokZMgPCB2ZWdldGFibGU7CivnlbDorbAgPCBvYmplY3Rpb247Civopo/lrpogPCBwcm92aXNpb247CivlsZXplosgPCB0b1wtdW5mb2xkOwor6Lyq5rWBIDwgYWx0ZXJuYXRlOwor5oyB5LmF5oCnIDwgY29uc3RhbmN5Owor5YKz57WxIDwgdHJhZGl0aW9uOwor5YGP6KaLIDwgcHJlanVkaWNlOwor55m96KGA55eFIDwgbGV1a2FlbWlhOwor5YWo5LiW55WMIDwgd29ybGR3aWRlOwor5Zyw55CGIDwgZ2VvZ3JhcGh5Owor5Zyw55CDIDwgdGhlXC1lYXJ0aDsKK+iLmSA8IGFcLXBpZ1wtc3R5Owor6Iq8IDwgdG9cLWNob29zZTsKK+mZjeS9jiA8IHRvXC1yZWR1Y2U7Civkv53pmqogPCBpbnN1cmFuY2U7Civkv53pmpwgPCB0b1wtZW5zdXJlOwor6ImjIDwgc3Rlcm5cLW9hcjsKK+WgtOWQiCA8IHNpdHVhdGlvbjsKK+iJjiA8IGZhc3RcLWJvYXQ7CivloLHlkYogPCB0b1wtaW5mb3JtOwor6IidIDwgbGluY2hcLXBpbjsKK+iImCA8IGFcLW1hbnNpb247Civoh68gPCB0b1wtcHJhaXNlOwor5r6z5aSn5Yip5LqeIDwgYXVzdHJhbGlhOwor5YWs5paXIDwgZGVjYWxpdGVyOwor6L+U5ZueIDwgcmV0dXJuXC10bzsKK+Wkp+Wvq+mOluWumiA8IGNhcHNcLWxvY2s7CivliIblibIgPCB0b1wtY3V0XC11cDsKK+iDpiA8IHRoZVwtbmF2ZWw7CivmiYHpqqggPCBmbGF0XC1ib25lOwor6IClIDwgZmFybVwtdG9vbDsKK+e+tiA8IHJhbmtcLW9kb3I7Civkv53pj6IgPCBib2R5Z3VhcmQ7Civot5HpjLYgPCBzdG9wd2F0Y2g7CivntJnlpL4gPCBwYXBlcmNsaXA7CivnvYEgPCBhXC1jaXN0ZXJuOwor55m85piOIDwgdG9cLWludmVudDsKK+aooeaTrCA8IGltaXRhdGlvbjsKK+WNiuW3peWNiuiugCA8IHBhcnRcLXdvcms7Civmv4DnmbwgPCB0b1wtYXJvdXNlOwor5YaN5bqmIDwgb25jZVwtbW9yZTsKK+ezvuWvnyA8IHRvXC1waWNrZXQ7Civmi7foirEgPCB0b1wtZW1ib3NzOwor5oiR5YCR6Ieq5bexIDwgb3Vyc2VsdmVzOwor5r2b6ImHIDwgc3VibWFyaW5lOwor6L+35L2PIDwgZmFzY2luYXRlOwor6Im+54K3IDwgbW94YVwtY29uZTsKK+WbmuemgSA8IGNhcHRpdml0eTsKK+e3pSA8IHN3YWRkbGluZzsKK+e+heW+ueaWr+eJuSA8IHJvY2hlc3RlcjsKK+S+v+mWgCA8IHNpZGVcLWRvb3I7CivmipforbDogIUgPCBwcm90ZXN0ZXI7CivooaPluL3plpMgPCBjbG9ha3Jvb207CivkuIDljLnppqwgPCBvbmVcLWhvcnNlOwor5pyJ5pmC5YCZIDwgc29tZXRpbWVzOwor57OwIDwgcmljZVwtYmFsbDsKK+eznSA8IHNjYXR0ZXJlZDsKK+WAmemBuOS6uiA8IGNhbmRpZGF0ZTsKK+euoeW8puaoguWcmCA8IG9yY2hlc3RyYTsKK+WQkeWMl+WcsCA8IG5vcnRod2FyZDsKK+exqCA8IHRyb3Vzc2VhdTsKK+S4i+axuuW/gyA8IGRldGVybWluZTsKK+imj+WLuCA8IHRvXC1hZHZpc2U7Civooajnmq4gPCBlcGlkZXJtaXM7Civooajnmb0gPCB2aW5kaWNhdGU7Civnmb3ml6XlgZrlpKIgPCBkYXlcLWRyZWFtOwor56uVIDwgZGVjaWxpdGVyOwor5L+d6K2J5Lq6IDwgZ3VhcmFudG9yOwor56uGIDwgZXhoYXVzdGVkOwor55yL5YGaIDwgcmVnYXJkXC1hczsKK+eqiyA8IGluXC1hXC1ob2xlOwor56isIDwgZ2x1dGlub3VzOwor5LiK5pif5pyfIDwgbGFzdFwtd2VlazsKK+WFh+aJiyA8IGFzc2FpbGFudDsKK+WvrOmguyA8IGJyb2FkYmFuZDsKK+ilv+WNlyA8IHNvdXRod2VzdDsKK+ilv+WMlyA8IG5vcnRod2VzdDsKK+ekvSA8IGJsZXNzaW5nczsKK+ekniA8IFwobWluZXJhbFwpOwor57K+5benIDwgZWxhYm9yYXRlOwor56ys5LqM5Y2BIDwgdHdlbnRpZXRoOwor5baE5pawIDwgYnJhbmRcLW5ldzsKK+eihiA8IGFycm93XC10aXA7CivmiZPpgLIgPCB0b1wtYnJlYWNoOwor56CsIDwgYmlnXC1zdG9uZTsKK+WFrOWvuCA8IGRlY2ltZXRlcjsKK+WFrOWvkyA8IGFwYXJ0bWVudDsKK+W4uOS7uyA8IHBlcm1hbmVudDsKK+WFieW9qSA8IGhvbm9yYWJsZTsKK+edoemBjumgrSA8IG92ZXJzbGVlcDsKK+aMh+ekuiA8IHBvaW50XC1vdXQ7CivnnJUgPCByZXN0cmFpbnQ7Civnl4XnkIYgPCBwYXRob2xvZ3k7Civku7vkvZXlhbbku5YgPCBhbnlcLW90aGVyOwor6L6b5YueIDwgbGFib3Jpb3VzOwor5pCN5aOeIDwgdG9cLWRhbWFnZTsKK+eYrSA8IGFcLXdoaXRsb3c7CivnmJwgPCBhXC1wb2x5cHVzOwor5be05YuS5pav5Z2mIDwgcGFsZXN0aW5lOwor55ehIDwgYVwtZGlzZWFzZTsKK+WIqeacquiomCA8IGxldml0aWN1czsKK+erpeWtkOi7jSA8IGJveVwtc2NvdXQ7CivnlbEgPCB0b1wtZGV0YWluOwor5ZiJ6KixIDwgZmF2b3JhYmxlOwor55WLIDwgdGlsbFwtbGFuZDsKK+WFq+WkqSA8IGVpZ2h0XC1kYXk7CivnlKYgPCBiZVwtcmVib3JuOwor55O4IDwgaGVjdG9ncmFtOwor5ouS57WVIDwgdG9cLXJlZnVzZTsKK+imgeS4jSA8IG90aGVyd2lzZTsKK+eSvyA8IGZpbmVcLWphZGU7CivmqJnlrpogPCBkZW1hcmNhdGU7CivnkbQgPCB0d2luXC1nZW1zOwor55GjIDwgZnJhZ21lbnRzOwor6Ly75bCEIDwgcmFkaWF0aW9uOwor5Zub5Y2B5YWtIDwgZm9ydHlcLXNpeDsKK+aOkuaUviA8IGRpc2NoYXJnZTsKK+mrlOePviA8IHRvXC1lbWJvZHk7CivoobDmuJsgPCB0b1wtd2Vha2VuOwor57GD5p2/IDwgYmFja2JvYXJkOwor5Zyo77mN5peB6YKKIDwgYWxvbmdzaWRlOwor6aas6Z6tIDwgaG9yc2V3aGlwOwor542AIDwgdG9cLWdhdGhlcjsKK+esrOS5neWNgSA8IG5pbmV0aWV0aDsKK+eLsyA8IGFybWFkaWxsbzsKK+eHtiA8IHRvXC1zY29yY2g7CivnlaLnq58gPCBhZnRlclwtYWxsOwor54a/IDwgYnJpbGxpYW50Owor5YWI6KaL5LmL5piOIDwgZm9yZXNpZ2h0Owor5L2O6ZqOIDwgbG93XC1sZXZlbDsKK+aJgOisgiA8IHNvXC1jYWxsZWQ7CivmvbDniJsgPCB0b1wtZmVzdGVyOwor5YSy5a2YIDwgc3RvY2twaWxlOwor6LuK5YmN54eIIDwgaGVhZGxpZ2h0Owor5r+pIDwgcG91clwtZG93bjsKK+aOm+W/tSA8IGNvbmNlcm5lZDsKK+Wuh+iIquWToSA8IGFzdHJvbmF1dDsKK+i9n+WLlSA8IHNlbnNhdGlvbjsKK+iHuueHiCA8IGRlc2tcLWxhbXA7Civkvb/lm7DnqpggPCBlbWJhcnJhc3M7CivmubwgPCBibGFja1wtbXVkOwor5rmFIDwgYm9pbFwtc2lsazsKK+a3qSA8IHBhc3NcLW92ZXI7Civlr6bos6ogPCBzdWJzdGFuY2U7CivpmqjkuYvogIzlvowgPCBmcm9tXC10aGF0Owor5ra3IDwgcmFpbnN0b3JtOwor5rSRIDwgd2hpcmxwb29sOwor5ben5YWL5YqbIDwgY2hvY29sYXRlOwor5pyJ6ZuE5b+DIDwgYW1iaXRpb3VzOwor5q6IIDwgaW5mZXJ0aWxlOwor5qyVIDwgdHJlZVwtbmFtZTsKK+akjeeJqSA8IGJvdGFuaWNhbDsKK+epuumYsiA8IGFpclwtZm9yY2U7CivlhaXkvrUgPCB0b1wtaW52YWRlOwor6JmV55CG5ZmoIDwgcHJvY2Vzc29yOwor5Li7566h5Lq65ZOhIDwgZXhlY3V0aXZlOwor5qmaIDwgdGFsbFwtdHJlZTsKK+WFrOS4iCA8IGRlY2FtZXRlcjsKK+i8uOWHuiA8IHRvXC1leHBvcnQ7CivmpqogPCBoZWFkYm9hcmQ7Civnn6Xmm7Tps6UgPCByZWRicmVhc3Q7CivllZ/npLrogIUgPCByZXZlbGF0b3I7CivovLjlhaUgPCB0b1wtaW1wb3J0Owor562J562JIDwgZXRcLWNldGVyYTsKK+esrOS4ieWNgSA8IHRoaXJ0aWV0aDsKK+ajliA8IGRvb3JcLXN0b3A7CivmopwgPCBjaG9wc3RpY2s7Civmv4DmgJIgPCBpbmZ1cmlhdGU7CivmoLEgPCBsYXJnZVwtcGVnOwor5qCtIDwga2luZ1wtcG9zdDsKK+agkiA8IGNyb3NzXC1iYXI7CivlgZzms4ogPCBhbmNob3JhZ2U7Civmn4ggPCBjb250YWluZXI7CivmnpkgPCB0cmVlXC1rbm90Owor55m96Y6i56SmIDwgc2NoZWVsaXRlOwor5pyeIDwgZnVsbFwteWVhcjsKK+aJi+aPkOWMhSA8IFwoaGFuZFwpYmFnOwor5oqA6KGT5oCnIDwgdGVjaG5pY2FsOwor5ryy5r2uIDwgaGlnaFwtdGlkZTsKK+aajSA8IHN1bnN0cm9rZTsKK+WutuitnCA8IGdlbmVhbG9neTsKK+mpmueVsCA8IGFtYXplbWVudDsKK+i8lOWKqSA8IHRvXC1hc3Npc3Q7Civml6ogPCB1bml0ZWRcLWluOwor5o+Q5L6bIDwgdG9cLXN1cHBseTsKK+S4jeiqoOWvpiA8IGRpc2hvbmVzdDsKK+ixjOixhueypSA8IHBlYVwtZ3J1ZWw7CivorormtYHlmaggPCBjb252ZXJ0ZXI7CivmlIsgPCB0b1wtY2x1dGNoOwor5pSDIDwgcHJlY2VkaW5nOwor5pOQIDwgdG9cLXB1dFwtb247Civpq5Tmk40gPCBneW1uYXN0aWM7Civmkb0gPCB0aHJvd1wtb3V0Owor5o+Q5pGp5aSq5YmN5pu4IDwgMVwtdGltb3RoeTsKK+aRriA8IHRvXC1yYXR0bGU7Civmj6UgPCBzY3JhdGNoZXI7Civkvr/nrosgPCBub3RlcGFwZXI7CivogZbppJAgPCBzYWNyYW1lbnQ7CivosqHli5nnp5jmm7ggPCB0cmVhc3VyZXI7CivmibnnmbwgPCB3aG9sZXNhbGU7CivotpXnt4ogPCBodXJyaWVkbHk7CivmibPpgZPlk6EgPCBwb2ludHNtYW47CivmiaQgPCB0b1wtdGhydXN0Owor6aqo5p62IDwgZnJhbWV3b3JrOwor5oicIDwgdG9cLXNjcmFwZTsKK+WBteaOoiA8IGRldGVjdGl2ZTsKK+WFqeaYn+acnyA8IGZvcnRuaWdodDsKK+aMkeaIsCA8IGNoYWxsZW5nZTsKK+agvOW8j+WMliA8IHRvXC1mb3JtYXQ7CivooqvlkYogPCBkZWZlbmRhbnQ7Civms6LliKnlsLzopb/kup4gPCBwb2x5bmVzaWE7CivmgoEgPCBpcnJpdGFibGU7CivmgZEgPCB0b1wtY2hhbmdlOwor5oC6IDwgdG9cLWVuZHVyZTsKK+aAniA8IHRvXC1ncmlldmU7CivmgJcgPCBvYnNlcnZhbnQ7CivmjqHnn7PloLQgPCBzdG9uZVwtcGl0Owor5Yqg5YuS5q+UIDwgY2FyaWJiZWFuOwor6Zu75aCx5qmfIDwgdGVsZWdyYXBoOwor6LKd6aGeIDwgc2hlbGxmaXNoOwor5Zyo5YWnIDwgaW5jbHVkaW5nOwor5ou/5omLIDwgZXhwZXJ0XC1pbjsKK+W3peS9nOihqCA8IHdvcmtzaGVldDsKK+aatOmiqOmbqiA8IHNub3dzdG9ybTsKK+eriuiBvSA8IGVhdmVzZHJvcDsKK+W7viA8IHR3b1wtaGFuZHM7CivluokgPCBhXC12aWxsYWdlOwor5bmpIDwgdHJhcHBpbmdzOwor5bmZIDwgYVwtY3VydGFpbjsKK+Wuv+iIjSA8IGRvcm1pdG9yeTsKK+WxseawtCA8IGxhbmRzY2FwZTsKK+Wbm+WkqSA8IGZvdXJcLWRheXM7CivmjLrlpb0gPCB2ZXJ5XC1nb29kOwor57C95YWlIDwgdG9cLWxvZ1wtb247Civppqzog4wgPCBob3JzZWJhY2s7CivpqZXmsKMgPCBhcnJvZ2FuY2U7CivnlpHlv4MgPCBzdXNwaWNpb247CivmuLrojKsgPCB1bmNlcnRhaW47Civlr70gPCBhXC1oYW5kZnVsOwor5paH5a2X5qqUIDwgdGV4dFwtZmlsZTsKK+WvmCA8IHB1dFwtYXNpZGU7Civmv4Dli5UgPCB0b1wtZXhjaXRlOwor5aubIDwgY29tcGxpYW50Owor5aqsIDwgZ292ZXJuZXNzOwor5aqVIDwgdW5kZWNpZGVkOwor5re76KOcIDwgZmlsbFwtXCh1cFwpOwor6LK/5piT5oiwIDwgdHJhZGVcLXdhcjsKK+WlieaJv+iAhSA8IGZsYXR0ZXJlcjsKK+eUn+iCsuiDveWKmyA8IGZlcnRpbGl0eTsKK+S/ruatoyA8IHRvXC1yZXZpc2U7CivmjIfmj67ogIUgPCBjb25kdWN0b3I7CivlpIwgPCB0b1wtZGF3ZGxlOwor5p+Q6JmVIDwgc29tZXdoZXJlOwor5aGdIDwgZmxhdFwtYmFuazsKK+WPg+iAg+abuCA8IHJlZmVyZW5jZTsKK+WFseS6q+i7n+mrlCA8IHNoYXJld2FyZTsKK+iyqOi8qiA8IGZyZWlnaHRlcjsKK+WNiuihsOacnyA8IGhhbGZcLWxpZmU7CivlnIogPCByZXN0XC1yb29tOwor6auU5ZyYIDwgY29tbXVuaXR5Owor5oq15oqXIDwgdG9cLXJlc2lzdDsKK+S4jeWPl+atoei/jiA8IHVud2VsY29tZTsKK+WZgSA8IG5hc3RpbmVzczsKK+misemiqCA8IGh1cnJpY2FuZTsKK+WYkSA8IHRvXC1tZW5hY2U7Civmi4nmlpDnibkgPCBsYWZheWV0dGU7CivotJbnvaogPCBhdG9uZW1lbnQ7Civlr7XniakgPCBob3VzZVwtcGV0Owor6IGW6KqVIDwgY2hyaXN0bWFzOwor5ZOrIDwgdG9cLWNham9sZTsKK+WStSA8IHRvXC1yZXZpbGU7CivkuI3ntZDmnpwgPCBmcnVpdGxlc3M7CivlkacgPCB0b1wtcmVidWtlOwor5YGH5a6aIDwgdG9cLWFzc3VtZTsKK+eUs+iri+S6uiA8IGFwcGxpY2FudDsKK+ihjOWLlSA8IG9wZXJhdGlvbjsKK+S4u+mrlCA8IG1haW5cLXBhcnQ7CivmiYvms5UgPCB0ZWNobmlxdWU7CivmtojpgaMgPCBhbXVzZW1lbnQ7Civlh7rniYjogIUgPCBwdWJsaXNoZXI7Civlj4UgPCB0b1wtY291bmVsOwor5Y6TIDwgcHJlY2lwaWNlOwor5Ye55Ye45Y2w5Yi3IDwgZW1ib3NzaW5nOwor5bCx5qWtIDwgZ2V0XC1hXC1qb2I7Civnlobln58gPCB0ZXJyaXRvcnk7CivmnKzmmJ/mnJ8gPCB0aGlzXC13ZWVrOwor5YyYIDwgdGhlXC1icmFpbjsKK+WLqSA8IHdvcmtcLWhhcmQ7CivmgKrkuI3lvpcgPCBub1wtd29uZGVyOwor5pKS6YO96Kmy5Lq6IDwgc2FkZHVjZWVzOwor5om/5pOUIDwgdW5kZXJ0YWtlOwor5YiUIDwgc2Nvb3BcLW91dDsKK+iGveWwjyA8IGNvd2FyZGljZTsKK+WHtyA8IGRpcnRcLWNsb2Q7Civlh5kgPCBhblwtaWNpY2xlOwor5Ym16YCg5YqbIDwgaW5nZW51aXR5Owor5bGs5oCnIDwgYXR0cmlidXRlOwor5YWHIDwgYXRyb2Npb3VzOwor5Li76aCBIDwgaG9tZVwtcGFnZTsKK+WPr+WuueW/jSA8IHRvbGVyYWJsZTsKK+acg+mdoiA8IG1lZXRcLXdpdGg7CivlgrogPCB0b1wtaGluZGVyOwor5oiQ54K6IDwgdG9cLWJlY29tZTsKK+S6pOiqvCA8IGNvbW11bmlvbjsKK+WcluabuOeuoeeQhuWToSA8IGxpYnJhcmlhbjsKK+WfuuacrOS4iiA8IGJhc2ljYWxseTsKK+S+jiA8IHRvXC1zb290aGU7CivkvLsgPCBtZXNzZW5nZXI7CivkvIsgPCBkZWNlcHRpdmU7CivmvZvlipsgPCBwb3RlbnRpYWw7CivnqLvojYnkurogPCBzY2FyZWNyb3c7Civlrbjnq6UgPCBzY2hvb2xib3k7CivlpJrnlKjmiLYgPCBtdWx0aXVzZXI7Civoh6rli5UgPCBhdXRvbWF0aWM7CivlhbHnlKLkuLvnvqkgPCBjb21tdW5pc207CivktrMgPCB0b1wtbG9va3VwOwor5LaRIDwgdG9cLXNuZWV6ZTsKK+igleWLlSA8IHRvXC13aWdnbGU7CivmiZPmlZcgPCB0b1wtZGVmZWF0Owor6LGq6LGsIDwgcG9yY3VwaW5lOwor5LiN5Lul54K654S2IDwgb2JqZWN0XC10bzsKK+SzuiA8IHRoZVwtcXVhaWw7CivmtYHph48gPCBmbG93XC1yYXRlOwor5LKoIDwgd2lsZFwtc3dhbjsKK+ekvuacg+S4u+e+qSA8IHNvY2lhbGlzbTsKK+SxiCA8IGZpc2hcLXB1bHA7CivksKUgPCBhXC1jeWNsb25lOwor6LOc57WmIDwgdG9cLWJlc3RvdzsKK+icnOaciOWBh+acnyA8IGhvbmV5bW9vbjsKK+SvpiA8IHRpbnlcLWJvbmU7CivkrpwgPCB0b1wtZ2FsbG9wOwor5oub5YufIDwgdG9cLXJlY3VpdDsKK+StrCA8IHRvXC1rb3d0b3c7CivlsI3mlrwgPCByZWdhcmRpbmc7CivkrZsgPCB0YXN0ZWxlc3M7CivkrZEgPCBpbmNvcnJ1cHQ7CivlkIznj63lkIzlrbggPCBjbGFzc21hdGU7CivkrLYgPCB0b1wtc3RyYXZlOwor5Ku7IDwgYVwtdHlwaG9vbjsKK+SrlCA8IGFcLXNlcnZhbnQ7CivkuIrpnaIgPCBvblwtdG9wXC1vZjsKK+e+veavm+eQgyA8IGJhZG1pbnRvbjsKK+SppiA8IHRoZVwtcmVpbnM7CivkupTomZ8gPCB0aGVcLWZpZnRoOwor5KitIDwgdGhlXC1za2llczsKK+SojSA8IGRlZXBcLXBvbmQ7CivkprUgPCBpbmNhcGFibGU7CivkpqwgPCBhXC12YWNhbmN5Owor5KaGIDwgYVwtYmlnXC1ob2U7Civmi4bljbggPCB0b1wtdW5sb2FkOwor5pWR6K236LuKIDwgYW1idWxhbmNlOwor6JuL55m9IDwgZWdnXC13aGl0ZTsKK+esrOWNgeWFrSA8IHNpeHRlZW50aDsKK+SisSA8IHRvXC1zbGlnaHQ7Civkop8gPCB0b1wtdHJhdmVsOwor5ZCe6aOfIDwgdG9cLWRldm91cjsKK+SijSA8IHRvXC1oYXN0ZW47Civkvb/nlJ/msKMgPCBkaXNwbGVhc2U7Civog4Pngo4gPCBnYXN0cml0aXM7CivlsI3mipcgPCB3aXRoc3RhbmQ7CivkoLIgPCB0b1wtbGlzdGVuOwor5KCvIDwgdG9cLWFzY2VuZDsKK+SgriA8IHRvXC1wcmFuY2U7Civkn7sgPCBiYXJlXC1mZWV0Owor5J+eIDwgdG9cLWZhbHRlcjsKK+S4jeWFrOatoyA8IGluanVzdGljZTsKK+iEq+aOiSA8IHN0cmlwXC1vZmY7CivpppnmuK8gPCBob25nXC1rb25nOwor5J+MIDwgZGl2ZXJnaW5nOwor5J68IDwgdG9cLWVzY2FwZTsKK+SekiA8IHJlZFwtY29sb3I7CivknpAgPCBwbGVudGlmdWw7CivknokgPCBhXC1zdXJwbHVzOwor5JytIDwgdG9cLWRyZWRnZTsKK+WvpuaZgiA8IHJlYWxcLXRpbWU7Civogrrngo4gPCBwbmV1bW9uaWE7CivknJ8gPCB0b1wtdmVyaWZ5Owor5YWJ5bCE57eaIDwgbGlnaHRcLXJheTsKK+SbuyA8IHRvXC1pbmR1Y2U7Civkm7kgPCB0b1wtYWNjdXNlOwor5JuzIDwgdG9cLW1hbGlnbjsKK+SbrCA8IGJhYnlcLXRhbGs7Civkm6ogPCBsb3F1YWNpdHk7Civkm4sgPCB0b1wtc2NoZW1lOwor5JuBIDwgdG9cLW11cm11cjsKK+aFtuelnSA8IGNlbGVicmF0ZTsKK+SZuCA8IHRvXC1vYnRhaW47CivlpJblnIvkurogPCBmb3JlaWduZXI7CivkmLwgPCBzdG9ja2luZ3M7CivlrrDmrrogPCBzbGF1Z2h0ZXI7CivnrKzljYHkupQgPCBmaWZ0ZWVudGg7CivkmJEgPCB0aGVcLXB1bHNlOwor5JWpIDwgZHJ5XC1mcnVpdDsKK+a1quiVqSA8IHRvXC1sb2l0ZXI7CivklLMgPCBjaGlja2xpbmc7Civkk7AgPCBhYnNpbnRoaW47Civmn5DniakgPCBzb21ldGhpbmc7CivkkoogPCBhXC1wYXRpZW50Owor5JGqIDwgYVwtc2FpbGluZzsKK+SRkyA8IGFcLWxvb2tvdXQ7CivmtKXosrwgPCBhbGxvd2FuY2U7CivkkLogPCBkZWxpY2lvdXM7CivkkJsgPCB0b1wtbG9vc2VuOwor5JCGIDwgYmlnXC1iZWxseTsKK+SPvSA8IG1lYXRcLXB1bHA7Civkj6wgPCB0aGVcLXNwaW5lOwor5I+gIDwgbWVhdFwtc291cDsKK+SPniA8IHRoZVwtYmVsbHk7Civogp3ngo4gPCBoZXBhdGl0aXM7CivkjqEgPCB0b1wtc2hyaW5rOwor5raI6ICXIDwgdG9cLXVzZVwtdXA7CivkjoMgPCBmaW5lXC1kb3duOwor6Zi/5qC55bu3IDwgYXJnZW50aW5hOwor5I2OIDwgYVwtc3BpbmRsZTsKK+SMsiA8IGxpZ2h0XC1yZWQ7CivkjJsgPCBlbnRvdXJhZ2U7Civki6AgPCB0b1wtcmVwYWlyOwor5IqwIDwgZm9vZHN0dWZmOwor5IqcIDwgZHVtcGxpbmdzOwor5Im8IDwgbWF0ZXJpYWxzOwor5LiK6LyJIDwgdG9cLXVwbG9hZDsKK+iYreiKsSA8IGN5bWJpZGl1bTsKK+abuOiomCA8IHNlY3JldGFyeTsKK+a1quiIuSA8IHN3aW5nYm9hdDsKK+WBveWWhOiAhSA8IGh5cG9jcml0ZTsKK+SHkCA8IHRvXC1hcnJpdmU7CivlsI/lr6sgPCBsb3dlcmNhc2U7CivkhpAgPCBhXC1jb3VudHJ5Owor6J665peL5qezIDwgcHJvcGVsbGVyOwor55So5YW3IDwgYXBwbGlhbmNlOwor5Y+k6aKoIDwgYW50aXF1aXR5Owor5IWDIDwgbGF0ZVwtY3JvcDsKK+WuieathyA8IGdvXC10b1wtYmVkOwor5IOpIDwgYVwtbWluZXJhbDsKK+WutuaXjyA8IGhvdXNlaG9sZDsKK+SDlSA8IHN0b25ld2FyZTsKK+iHquWLleaok+airyA8IGVzY2FsYXRvcjsKK+e3iuaApeS6i+S7tiA8IGVtZXJnZW5jeTsKK+SDgCA8IG1pbGxzdG9uZTsKK+S9leaVhSA8IHdoZXJlZm9yZTsKK+iFs+WNsCA8IGZvb3RwcmludDsKK+eTt+WZqCA8IGNoaW5hd2FyZTsKK+iyr+awtOiZlSA8IHJlc2Vydm9pcjsKK+SBkCA8IGRlZXBcLWV5ZWQ7Civnq6XlubQgPCBjaGlsZGhvb2Q7CivljbDluqblsLzopb/kup4gPCBpbmRvbmVzaWE7CivljYrmtYHpq5QgPCBzZW1pZmx1aWQ7CivkgKwgPCB0b1wtZ2xhbmNlOwor5IChIDwgdG9cLXNweVwtb247CivkgJAgPCB0b1wtcmVnYXJkOwor6LW35bqKIDwgdG9cLWdldFwtdXA7Civjv78gPCB3aW5lXC1jdXBzOwor5rCR5Li75Li7576p6ICFIDwgZGVtb2NyYXRzOwor47+fIDwgaGVcLWJyaWdodDsKK+W+geacjeiAhSA8IGNvbnF1ZXJvcjsKK+O+pSA8IGJlbGx5YWNoZTsKK+O+oyA8IHRvXC1zaGl2ZXI7Civku4rnlJ8gPCB0aGlzXC1saWZlOwor5o2V6byg5ZmoIDwgbW91c2V0cmFwOwor472eIDwgdG9cLXJlbWFpbjsKK+O9iSA8IGFcLWJpZ1wtamFyOwor47y6IDwgcG9yY2VsYWluOwor6K6K6Imy6b6NIDwgY2hhbWVsZW9uOwor47yaIDwgZWFydGh3YXJlOwor5bCN5oqX6ICFIDwgYWR2ZXJzYXJ5Owor5pys6IG3IDwgb25lJydzXC1qb2I7CivpgIDpu5Hmv4DntKAgPCBtZWxhdG9uaW47Civog4zmlpwgPCBhbnRpY2xpbmU7CivmmrTouoEgPCBpcmFzY2libGU7CivmsaDpub0gPCBsYWtlXC1zYWx0Owor6JaE5rK55bGkIDwgb2lsXC1zaGVldDsKK+S4jeiosSA8IG5vdFwtYWxsb3c7CivllYbmqJkgPCB0cmFkZW1hcms7Civpo6/nopcgPCByaWNlXC1ib3dsOwor54Sh55+l6Ka6IDwgc2Vuc2VsZXNzOwor5pmk6Z2iIDwgaW50ZXJ2aWV3Owor6YeN6ZaLIDwgdG9cLXJlb3BlbjsKK+O1lCA8IG5vdFwtY2xlYXI7CivororpnakgPCB0cmFuc2Zvcm07CivjtIEgPCB0b1wtYWRkXC10bzsKK+eZveS6keavjSA8IG11c2Nvdml0ZTsKK+OzqCA8IHRvXC1zcGxhc2g7CivmiKrlpaogPCBpbnRlcmNlcHQ7CivlvavliLvlk4EgPCBzY3VscHR1cmU7Civmt7HmsLQgPCBkZWVwd2F0ZXI7CivjsJYgPCB0aGVcLW9saXZlOwor46+6IDwgYVwtY2FiaW5ldDsKK+iuiueEpui3nemPoemgrSA8IHpvb21cLWxlbnM7Civjr68gPCBzbWFsbFwtY3VwOwor46+dIDwgcGF1bG93bmlhOwor466ZIDwgYVwtcGl0ZmFsbDsKK+OtoiA8IG1lY2hhbmljczsKK+i1t+WniyA8IG9yaWdpbmF0ZTsKK+OsvyA8IG1vb25saWdodDsKK+elh+iugCA8IHJlYWRcLW9ubHk7CivjrKsgPCBjbGVhclwtc2t5Owor5LiA5Y2D5Zm4IDwgMTAwMFwtdG9uczsKK+S4jeimj+WJhyA8IGlycmVndWxhcjsKK+azoueLgOmbsiA8IHVuZHVsYXR1czsKK+WtuOacgyA8IGluc3RpdHV0ZTsKK+OqiCA8IHRvXC1sZXRcLWdvOwor46mSIDwgdG9cLWFycmVzdDsKK+OphyA8IHRoZVwtdGh1bWI7CivjqLYgPCB0b1wtdGhyZXNoOwor46iJIDwgdG9cLXNtb290aDsKK+OnqSA8IHRvXC1kaXNwZWw7Civjp5cgPCB0b1wtY2xhdGNoOwor76a7IDwgb2ZmaWNpYWxzOwor46avIDwgYVwtY2VydGFpbjsKK+OmliA8IHJlc2VudGZ1bDsKK+OlviA8IG1vcnRpZmllZDsKK+OlsyA8IHRvXC1zdXJ2ZXk7CivjpaYgPCBzYXRpc2ZpZWQ7CivjpYAgPCBleGNsdXNpdmU7CivjpLUgPCBjb3Bhc3Npb247CivmnKvnq68gPCBleHRyZW1pdHk7CivjpIcgPCB0ZXJyaWZpZWQ7CivjpIYgPCBuYXVzZWF0ZWQ7Civjo7ogPCB0aGVcLWhlYXJ0Owor55Oc5YiGIDwgcGFydGl0aW9uOwor46KhIDwgdG9cLWV4aG9ydDsKK+OhvCA8IGFcLWdyYW5hcnk7CivjobogPCBhXC1jb3R0YWdlOwor46GXIDwgcmVkXC1wYXBlcjsKK+OgmCA8IGFuXC1pc2xhbmQ7Civmtoznj74gPCBzcHJpbmdcLXVwOwor56au56+AIDwgZXRpcXVldHRlOwor6K6K6YacIDwgZGlzZmlndXJlOwor45y7IDwgdG9cLWFkbWlyZTsKK+icguW3oiA8IGhvbmV5Y29tYjsKK+OcmCA8IGRlbGljYXRlZDsKK+OcjyA8IGxhc3RcLW5hbWU7CivkuK3nvo4gPCBjaGluYVwtdXNhOwor45u+IDwgbm90XC1jbGVhbjsKK+aal+iqniA8IGNvZGVcLXdvcmQ7Civmk7Tpn7PlmaggPCBtZWdhcGhvbmU7CivkuI3opovkuoYgPCBkaXNhcHBlYXI7CivjmrAgPCBhblwtZW1icnlvOwor45qbIDwgY29ycHVsZW50Owor45qYIDwgYVwtcGFydG5lcjsKK+mHjei5iCA8IHRvXC1yZXBlYXQ7CivjmKMgPCBjb21wYXNzZXM7Civjl7MgPCBmb3JnZXRmdWw7CivkuZ3mnIjku70gPCBzZXB0ZW1iZXI7CivotoXmlofmnKwgPCBoeXBlcnRleHQ7Civln7rnnaPmlZnlvpIgPCBjaHJpc3RpYW47CivjlbkgPCBhXC1idWNrbGVyOwor45WVIDwgZGVjZXB0aW9uOwor45WRIDwgYVwta2l0Y2hlbjsKK+S8keaIsCA8IGFybWlzdGljZTsKK+OViyA8IHJvY2tcLWxhbmQ7CivjlYggPCB0b1wtbGluZ2VyOwor45SnIDwgdG9cLWluY2l0ZTsKK+iugOabuOS6uiA8IGFcLXNjaG9sYXI7Civjk4sgPCB0b1wtZnJlZXplOwor45OEIDwgdG9cLXBsb3VnaDsKK+WPm+izoyA8IHRvXC1iZXRyYXk7CivjkacgPCBwZXJ0dXJiZWQ7CivjkYQgPCB0b1wtaW5zdWx0Owor45CvIDwgdG9cLWVtcGxveTsKK+S8uOWxlSA8IGV4dGVuc2lvbjsKK+S4gOiHtCA8IHVuYW5pbW91czsKK+W8leeUqOWPpSA8IHF1b3RhdGlvbjsKK+iAgeeJjCA8IG9sZFwtYnJhbmQ7CivlppbpoqggPCBldmlsXC13aW5kOwor6Yy25bi2IDwgd2F0Y2hiYW5kOwor5rib5bCRIDwgdG9cLWxlc3NlbjsKK+acieebiiA8IHdob2xlc29tZTsKK+eri+WIuyA8IGZvcnRod2l0aDsKK+WFq+WAjemrlCA8IG9jdG9wbG9pZDsKK+a3seaAnSA8IHRvXC1wb25kZXI7Civph47ooLsgPCBiYXJiYXJvdXM7CivosqHmnbEgPCBzaG9wb3duZXI7CivomZvmp4sgPCBpbWFnaW5hcnk7CivooqvnpoHmraIgPCBmb3JiaWRkZW47Civoga/mg7MgPCBhc3NvY2lhdGU7CivmtbjmspIgPCBpbW1lcnNpb247Civmt5LmhZggPCBtaXNlcmFibGU7CivkuIDnr4cgPCBvbmVcLXNpZGVkOwor5LuL6LOq6Kiq5ZWP5o6n5Yi25bGkIDwgbWFjXC1sYXllcjsKK+S4jeiHqueEtiA8IHVubmF0dXJhbDsKK+acn+a7vyA8IHRvXC1leHBpcmU7CivoraboprogPCB2aWdpbGFuY2U7Civljp/oq5IgPCB0b1wtZXhjdXNlOwor5a625L+xIDwgZnVybml0dXJlOwor6auY56eR5oqAIDwgaGlnaFwtdGVjaDsKK+aEn+afkyA8IGluZmVjdGlvbjsKK+WtlOWtkCA8IGNvbmZ1Y2l1czsKK+S6nuagvOmWgOi+siA8IGFnYW1lbW5vbjsKK+WutuS6iyA8IGhvdXNld29yazsKK+aAqueJqeS8vCA8IG1vbnN0cm91czsKK+WGsOajjeWFkiA8IGljZVwtbG9sbHk7Civku4rlubQgPCB0aGlzXC15ZWFyOwor55m954+t5YWSIDwgZGF5XC1zaGlmdDsKK+S4gOeZviA8IGFcLWh1bmRyZWQ7Civku7LlpI8gPCBtaWRzdW1tZXI7CivorYnoqZ4gPCB0ZXN0aW1vbnk7CivkuI3pgJ7kuYvlvpIgPCBkZXNwZXJhZG87CivnqoHlh7ogPCBwcm9taW5lbnQ7CivmmJ/mnJ/kuIkgPCB3ZWRuZXNkYXk7Civmg6Hmr5IgPCBtYWxpY2lvdXM7Civph47ooLvkurogPCBiYXJiYXJpYW47CivljYHlrZfou40gPCBjcnVzYWRlcnM7CivpnLLpn5MgPCB0b1wtZXhwb3NlOwor5rOV5ZyL5Lq6IDwgZnJlbmNobWFuOwor5LqU5Y2D5Zm4IDwgNTAwMFwtdG9uczsKK+W9semfvyA8IGluZmx1ZW5jZTsKK+aatOeZvCA8IGJyZWFrXC1vdXQ7Civmh4nku5ggPCBkZWFsXC13aXRoOwor5pyJ5q+SIDwgcG9pc29ub3VzOwor5byx6bm8IDwgd2Vha1wtYmFzZTsKK+axveiIuSA8IHN0ZWFtYm9hdDsKK+mBh+mbo+iIuSA8IHNoaXB3cmVjazsKK+WPr+eskSA8IGxhdWdoYWJsZTsKK+WNiui8iSA8IGhhbGZcLWxvYWQ7Civlvq7ou58gPCBtaWNyb3NvZnQ7Civku5nlooMgPCBmYWlyeWxhbmQ7Civml6jotqMgPCBvYmplY3RpdmU7CivlpKfpoZ4gPCBtYWluXC10eXBlOwor5pys5paHIDwgdGhpc1wtdGV4dDsKK+e+iuearue0mSA8IHBhcmNobWVudDsKK+aGpOaGpOS4jeW5syA8IGluZGlnbmFudDsKK+eHn+mkiiA8IG51dHJpdGlvbjsKK+WPjeiJpuiJhyA8IGFudGlcLXNoaXA7CivljZTorbAgPCBhZ3JlZW1lbnQ7CivpgqPpurwgPCBzb1wtXChtdWNoXCk7Civlv4XpnIDlk4EgPCBuZWNlc3NpdHk7Civnoqfol40gPCBkYXJrXC1ibHVlOwor5b6F6YGHIDwgdHJlYXRtZW50Owor5LiL5YCL5pif5pyfIDwgbmV4dFwtd2VlazsKK+WQiOeQhiA8IHJhdGlvbmFsZTsKK+eOqeW8hCA8IHJlc29ydFwtdG87Civml4Hot68gPCB0b1wtYnlwYXNzOwor5aSc6ZaTIDwgbmlnaHR0aW1lOwor5q+U6YSwIDwgbmVpZ2hib3VyOwor5pu45p62IDwgYm9va3NoZWxmOwor5pyJ5pWIIDwgZWZmZWN0aXZlOwor57y955uCIDwgYWxtc1wtYm93bDsKK+efs+eBsOefsyA8IGxpbWVzdG9uZTsKK+izh+WKqSA8IHN1YnNpZGl6ZTsKK+att+WPsuWtuOWutiA8IGhpc3RvcmlhbjsKK+S/rumBk+mZoiA8IG1vbmFzdGVyeTsKK+S4iuasoSA8IGxhc3RcLXRpbWU7CivmnJvpgaDpj6EgPCB0ZWxlc2NvcGU7Civmk7roqK3lhZIgPCBvcm5hbWVudHM7CivkupTlpKkgPCBmaXZlXC1kYXlzOwor5b+D6Z2I5LiKIDwgc3Bpcml0dWFsOwor5peB6KeAIDwgc3BlY3RhdG9yOwor5aCF5b+N5LiN5ouUIDwgZm9ydGl0dWRlOwor5LuL5YWlIDwgaW50ZXJ2ZW5lOwor5Lul5LiKIDwgbW9yZVwtdGhhbjsKK+efm+mgrSA8IHNwZWFyaGVhZDsKK+WkoumBuiA8IHdldFwtZHJlYW07CivlpKnmloflrbggPCBhc3Ryb25vbXk7Civlt7Tmr5TlpqUgPCBiYXJiaXRvbmU7Civms6LmrrUgPCB3YXZlXC1iYW5kOwor6Zui6ZaLIDwgdG9cLWRlcGFydDsKK+WvpuizquS4iiA8IHZpcnR1YWxseTsKK+WQkOawoyA8IGFzcGlyYXRlZDsKK+adseWNlyA8IHNvdXRoZWFzdDsKK+Wlh+ingCA8IHNwZWN0YWNsZTsKK+aUuemdqSA8IHRvXC1yZWZvcm07CivmhJvlnIsgPCBwYXRyaW90aWM7CivkuI3mlrcgPCB1bmNlYXNpbmc7CivmnKrlqZogPCB1bm1hcnJpZWQ7CivlvLHphbggPCB3ZWFrXC1hY2lkOwor5LmY5a6iIDwgcGFzc2VuZ2VyOwor6YWN572uIDwgdG9cLWRlcGxveTsKK+WkseiqvyA8IGltYmFsYW5jZTsKK+acrOWjmCA8IGhvbWVcLWJhc2U7CivkurrkuosgPCBwZXJzb25uZWw7CivmnInmhI/orZggPCBjb25zY2lvdXM7Civmm7jlupcgPCBib29rc3RvcmU7Civlj5flrrPogIUgPCBjYXN1bHRpZXM7CivkuI3lroznvo4gPCBkZWZlY3RpdmU7Civlj7jmqZ8gPCBjaGF1ZmZldXI7CivmnbHkup4gPCBlYXN0XC1hc2lhOwor5ZCI5qC8IDwgcXVhbGlmaWVkOwor5oOF57eS5YyWIDwgZW1vdGlvbmFsOwor6ICQ5YqbIDwgZW5kdXJhbmNlOwor5pSv5oyB6ICFIDwgc3VwcG9ydGVyOwor5piO56K6IDwgY2xlYXJcLWN1dDsKK+S4jeaDnCA8IG5vdFwtc3RpbnQ7CivlgJ/mm7jllq4gPCBib29rXC1zbGlwOwor5Li75ammIDwgaG91c2V3aWZlOwor6KGo5oSP5paH5a2XIDwgaWRlb2dyYXBoOwor6YCa6LKo6Iao6IS5IDwgaW5mbGF0aW9uOwor546p5YW3IDwgcGxheXRoaW5nOwor6Zu76KmxIDwgdGVsZXBob25lOwor5pa96IKlIDwgZmVydGlsaXplOwor56ys5YWr5Y2BIDwgZWlnaHRpZXRoOwor6YeM56iL56KRIDwgbWlsZXN0b25lOwor5LiN5beyIDwgZW5kbGVzc2x5Owor6Zuc6LKoIDwgZ3JvY2VyaWVzOwor5pyo5YygIDwgY2FycGVudGVyOwor6Yas5rK5IDwgc295XC1zYXVjZTsKK+S4jeaDhemhmCA8IHVud2lsbGluZzsKK+inuOmsmiA8IHRlbnRhY2xlczsKK+S4i+Wumue+qSA8IHRvXC1kZWZpbmU7Civmk6bpn7MgPCBmcmljYXRpdmU7CivlkajlnI0gPCBlbmNvbXBhc3M7CivlsI3kuI3otbcgPCBpJydtXC1zb3JyeTsKK+S4jeWwjSA8IGluY29ycmVjdDsKK+W/g+ebriA8IG1lbnRhbGl0eTsKK+WPr+aVrCA8IHZlbmVyYWJsZTsKK+Wkp+iNsyA8IHNveWFcLWJlYW47CivwoqWeIDwgc2FtZVwtYXNcLeW/oTsKK+WBh+ixoeeJmSA8IGNlbGx1bG9pZDsKK+mZjeiQveWCmCA8IHBhcmFjaHV0ZTsKK+azouW5hSA8IGFtcGxpdHVkZTsKK+WPs+aJiyA8IHJpZ2h0aGFuZDsKK+a1geWFpSA8IGZsb3dcLWludG87Civms6jlsIQgPCBpbmplY3Rpb247Civnoaznm6QgPCBoYXJkXC1kaXNrOwor5Yqf6KqyIDwgY2xhc3N3b3JrOwor6YCx6ZW3IDwgcGVyaW1ldGVyOwor6LO86LK36ICFIDwgcHVyY2hhc2VyOwor5aSn5pWZ5aCCIDwgY2F0aGVkcmFsOwor57WE57mU6ICFIDwgb3JnYW5pemVyOwor5ama5ae7IDwgbWF0cmltb255Owor5LiN5ZyoIDwgbm90XC1iZVwtaW47CivkuJnnqK7lsITnt5ogPCBnYW1tYVwtcmF5Owor6Z6t5q+bIDwgZmxhZ2VsbHVtOwor5pKr6aSKIDwgdG9cLWZvc3RlcjsKK+WIqumZpCA8IHRvXC1kZWxldGU7CivpgaDotrMgPCBleGN1cnNpb247CivnhKHpmZAgPCB1bmxpbWl0ZWQ7CivpoJHlvLcgPCB0ZW5hY2lvdXM7CivnhKHpl5wgPCB1bnJlbGF0ZWQ7CivokrjnmbwgPCBldmFwb3JhdGU7Civlj6TmgKogPCBlY2NlbnRyaWM7CivlvpfnlbYgPCBleHBlZGllbnQ7CivmsrnluIMgPCB0YXJwYXVsaW47CivkuIvllIcgPCBsb3dlclwtbGlwOwor5LiK5ZSHIDwgdXBwZXJcLWxpcDsKK+iBlui/reWTpSA8IHNhblwtZGllZ287CivpoIHlv4MgPCB0eXBlXC1wYWdlOwor5rGh5p+TIDwgcG9sbHV0aW9uOwor5oSP5rCj55u45oqVIDwgY29uZ2VuaWFsOwor6ZW35pa55b2iIDwgcmVjdGFuZ2xlOwor5YmN6YCUIDwgcHJvc3BlY3RzOwor54aK6JyCIDwgYnVtYmxlYmVlOwor57i957WQIDwgc3VtbWFyaXplOwor5ZC45Y+WIDwgdG9cLWFic29yYjsKK+mAsemCiiA8IHBlcmlwaGVyeTsKK+W5tOmZkCA8IGFnZVwtbGltaXQ7CivkuIvliJcgPCBmb2xsb3dpbmc7CivpoYzlkI0gPCBhdXRvZ3JhcGg7CivlpJrnq68gPCBtdWx0aXBvcnQ7CivmlYjog70gPCBlZmZpY2llbnQ7CivngbDnjbXniqwgPCBncmV5aG91bmQ7CivnjbLmmrTliKnogIUgPCBwcm9maXRlZXI7CivkuI3lgZwgPCBpbmNlc3NhbnQ7CivlpKfnoLIgPCBhcnRpbGxlcnk7CivkuI3lgLwgPCBub3RcLXdvcnRoOwor5rKZ5bKpIDwgc2FuZHN0b25lOwor5rOi5Y+KIDwgc3ByZWFkXC10bzsKK+W+ruazoiA8IG1pY3Jvd2F2ZTsKK+eEoei+nCA8IGlubm9jZW5jZTsKK+asoeimgSA8IHNlY29uZGFyeTsKK+S4jeS6iCA8IG5vdFwtZ3JhbnQ7CivljrvlubQgPCBsYXN0XC15ZWFyOwor5LiN5LqGIDwgdW5hYmxlXC10bzsKK+mfjOaApyA8IHRvdWdobmVzczsKK+eJiOasiiA8IGNvcHlyaWdodDsKK+WQkeWNlyA8IHNvdXRod2FyZDsKK+awkeatjCA8IGZvbGtcLXNvbmc7CivljbPmmYIgPCBpbW1lZGlhdGU7Civnv5LmhaPmgKcgPCBjdXN0b21hcnk7CivlubjpgYsgPCBmb3J0dW5hdGU7Civnvo7kuK0gPCB1c2FcLWNoaW5hOwor54af57e0IDwgcHJhY3RpY2VkOwor5b+1IDwgdGhpbmtcLW9mOwor5LyaIDwgYXNzZW1ibGU7CivlraYgPCBsZWFybmluZzsKK+W+kiA8IGRpc2NpcGxlOwor552mIDwgZnJpZW5kbHk7Civml6AgPCBuZWdhdGl2ZTsKK+aWuSA8IGFcLXNxdWFyZTsKK+WJjSA8IGluXC1mcm9udDsKK+eciSA8IGV5ZWJyb3dzOwor55yBIDwgcHJvdmluY2U7Civnm7QgPCBzdHJhaWdodDsKK+W7oiA8IGFicm9nYXRlOwor55ubIDwgYWJ1bmRhbnQ7Civou5IgPCBjYXJyaWFnZTsKK+WFqCA8IG1haW50YWluOwor5buKIDwgY29ycmlkb3I7CivnmrogPCB3cmlua2xlczsKK+W6tyA8IHBlYWNlZnVsOwor6Ze0IDwgbWlkcG9pbnQ7CivouoogPCBoZXNpdGF0ZTsKK+esrCA8IHNlcXVlbmNlOwor5bm7IDwgaWxsdXNpb247CivnmYcgPCBlcGlsZXBzeTsKK+WxsSA8IG1vdW50YWluOwor5be+IDwga2VyY2hpZWY7Civlt6cgPCBza2lsbGZ1bDsKK+i3nSA8IGRpc3RhbmNlOwor55WMIDwgYm91bmRhcnk7Civku7sgPCB0cnVzdFwtdG87Civlj7AgPCBwbGF0Zm9ybTsKK+ixoSA8IGVsZXBoYW50Owor6aKYIDwgZm9yZWhlYWQ7Civos6IgPCB2aXJ0dW91czsKK+izhyA8IHByb3BlcnR5Owor6LK8IDwgcGFzdGVcLXRvOwor6LK7IDwgZXhwZW5zZXM7CivlsaUgPCBmb290d2VhcjsKK+atpiA8IG1pbGl0YXJ5Owor55CyIDwgbmVja2xhY2U7CivlsKAgPCB2ZXJ5XC1mZXc7CivlrowgPCBjb21wbGV0ZTsKK+WNsyA8IHByb21wdGx5Owor5a+1IDwgZmF2b3JpdGU7Civor60gPCBsYW5ndWFnZTsKK+ePjSA8IHByZWNpb3VzOwor5ZWGIDwgY29tbWVyY2U7Civlrp0gPCB0cmVhc3VyZTsKK+WNgyA8IHRob3VzYW5kOwor5a6cIDwgc3VpdGFibGU7CivlrpggPCBvZmZpY2lhbDsKK+ermSA8IHN0YW5kXC11cDsKK+itrCA8IG1ldGFwaG9yOwor6aaZIDwgZnJhZ3JhbnQ7CivkvLwgPCByZXNlbWJsZTsKK+WsoiA8IHRyb3VibGVkOwor6Jm9IDwgYWx0aG91Z2g7CivkuJQgPCBtb3Jlb3ZlcjsKK+iwgyA8IHRyYW5zZmVyOwor5auJIDwgamVhbG91c3k7Civni4MgPCB0b1wtY292ZXQ7Civlq4EgPCB0b1wtbWFycnk7CivlqpogPCBjaGFybWluZzsKK+iqmCA8IHBlcnN1YWRlOwor6KqEIDwgZXVsb2dpemU7CivoqbMgPCBkZXRhaWxlZDsKK+ipsCA8IHF1ZXN0aW9uOwor5oOKIDwgZnJpZ2h0ZW47CivmlK8gPCBkaXNwZXJzZTsKK+eqgSA8IHN1ZGRlbmx5Owor6KmVIDwgYXBwcmFpc2U7CivlqKAgPCBwcmVnbmFudDsKK+WPpSA8IHNlbnRlbmNlOwor5pi+IDwgbWFuaWZlc3Q7Civlop4gPCBpbmNyZWFzZTsKK+aWmSA8IGNvbnNpZGVyOwor5aaKIDwgY29uY2VpdmU7Civnu60gPCBjb250aW51ZTsKK+eCrSA8IGNoYXJjb2FsOwor5Zu0IDwgc3Vycm91bmQ7Civngb0gPCBjYWxhbWl0eTsKK+WhmiA8IGNlbWV0ZXJ5Owor54CVIDwgYXBwcm9hY2g7Civmv7ogPCBzcHJpbmtsZTsKK+a/ryA8IHdhc2hcLW91dDsKK+WeoyA8IGxvd1wtd2FsbDsKK+S5oCA8IHByYWN0aWNlOwor5Z6CIDwgbGV0XC1kb3duOwor5Z2CIDwgaGlsbHNpZGU7CivnpZYgPCBhbmNlc3RvcjsKK+S8mCA8IHN1cGVyaW9yOwor5ruvIDwgYmxvY2tcLXVwOwor5rqiIDwgb3ZlcmZsb3c7CivmuKkgPCBsdWtld2FybTsKK+iaiiA8IG1vc3F1aXRvOwor6bm4IDwgYWxrYWxpbmU7CivlmaogPCBiZVwtbm9pc3k7CivlmLIgPCByaWRpY3VsZTsKK+a4myA8IGRlY3JlYXNlOwor5ZiUIDwgdG9cLXZvbWl0Owor5oGpIDwga2luZG5lc3M7CivohLEgPCB0YWtlXC1vZmY7CivmtrggPCBkcmllZFwtdXA7CivllqogPCBtb3VybmluZzsKK+WllCA8IHJ1blwtZmFzdDsKK+a2jCA8IHN1cmdlXC11cDsKK+emgSA8IHJlc3RyaWN0Owor5rWuIDwgdG9cLWZsb2F0Owor5LqSIDwgbXV0dWFsbHk7CivmkJ4gPCB0b1wtY2xlYXI7CivmnLEgPCBjaW5uYWJhcjsKK+WfnyA8IGRpc3RyaWN0Owor5p2QIDwgbWF0ZXJpYWw7CivlgbcgPCB0b1wtc3RlYWw7Civok4kgPCBoaWJpc2N1czsKK+aKvSA8IGRyYXdcLW91dDsKK+S7qiA8IGNlcmVtb255Owor5Y24IDwgbGF5XC1kb3duOwor5b+GIDwgcmVtZW1iZXI7CivpmpQgPCBzZXBhcmF0ZTsKK+WNkyA8IHByb2ZvdW5kOwor5o2fIDwgZGltaW5pc2g7CivojIQgPCBlZ2dwbGFudDsKK+WLvyA8IG11c3RcLW5vdDsKK+mrrSA8IG11c3RhY2hlOwor6YGlIDwgZmFyXC1hd2F5Owor5qubIDwgY29tYlwtb3V0Owor5biBIDwgY3VycmVuY3k7Civli4kgPCBlbmRlYXZvcjsKK+mquCA8IHNrZWxldG9uOwor5YqqIDwgdG9cLWV4ZXJ0Owor6JCNIDwgZHVja3dlZWQ7CivmqIUgPCBmaXJcLXRyZWU7CivnvKkgPCBjb250cmFjdDsKK+iHpSA8IGxpZVwtZG93bjsKK+aFlSA8IGxvbmdcLWZvcjsKK+iHoyA8IG1pbmlzdGVyOwor5oyhIDwgb2JzdHJ1Y3Q7CivohpwgPCBtZW1icmFuZTsKK+ammyA8IGhhemVsbnV0Owor5L+KIDwgdGFsZW50ZWQ7Civmnp0gPCBicmFuY2hlczsKK+mZtyA8IHN1Ym1lcmdlOwor5YuSIDwgc3RyYW5nbGU7CivogYogPCBzb21ld2hhdDsKK+mjviA8IGRlY29yYXRlOwor5pacIDwgc2xhbnRpbmc7CivmlpAgPCBncmFjZWZ1bDsKK+ainyA8IG93bFwtdGh1czsKK+WCmCA8IHVtYnJlbGxhOwor5LqtIDwgcGF2aWxpb247Civms5sgPCB0b1wtZHJpZnQ7CivnrKYgPCBpXC5kXC5cLXRhZzsKK+WFgSA8IHRvXC1ncmFudDsKK+i3qCA8IHN0cmFkZGxlOwor5o6pIDwgdG9cLWNvdmVyOwor6aCDIDwgYVwtbW9tZW50Owor5p+0IDwgZmlyZXdvb2Q7Civkv68gPCBib3dcLWRvd247Civkv6UgPCByaWNrc2hhdzsKK+mCuyA8IG5laWdoYm9yOwor6am+IDwgdG9cLWRyaXZlOwor576eIDwgZGlzZ3JhY2U7Civoo6QgPCB0cm91c2VyczsKK+S8sCA8IG1lcmNoYW50Owor6Z6YIDwgc2NhYmJhcmQ7CivlkpAgPCBpbnN0cnVjdDsKK+aBkiA8IGNvbnN0YW50Owor57OfIDwgc2VkaW1lbnQ7Civmia4gPCBkcmVzc1wtdXA7Civmm5wgPCBnbG9yaW91czsKK+aaoiA8IHNtb290aGx5Owor5oq8IDwgbW9ydGdhZ2U7CivmiJogPCByZWxhdGl2ZTsKK+ephiA8IG1hamVzdGljOwor5Zi7IDwgbWlydGhmdWw7CivkuKYgPCBlcXVhbFwtdG87CivmmJQgPCBmb3JtZXJseTsKK+mXmCA8IHN0cnVnZ2xlOwor556qIDwgc3RhcmVcLWF0Owor5palIDwgdG9cLXNjb2xkOwor5YmqIDwgc2Npc3NvcnM7Civlp5ogPCBoYW5kc29tZTsKK+aOjyA8IHRha2VcLW91dDsKK+mWkyA8IGludGVydmFsOwor5oO5IDwgaXJyaXRhdGU7CivnsL8gPCByZWdpc3RlcjsKK+iKtyA8IGFuZ2VsaWNhOwor56OBIDwgbWFnbmV0aWM7Civmr4UgPCByZXNvbHV0ZTsKK+espSA8IGFcLWhhbXBlcjsKK+aLmCA8IHJlc3RyYWluOwor5LyQIDwgY3V0XC1kb3duOwor56uKIDwgc2VjcmV0bHk7CivpipggPCBpbnNjcmliZTsKK+aEiSA8IHBsZWFzYW50Owor56qcIDwgcnVuXC1hd2F5Owor5a+oIDwgc3RvY2thZGU7CivmiLsgPCBwZXJ2ZXJzZTsKK+ayqiA8IHNoYW5naGFpOwor6YecIDwgY2F1bGRyb247Civll6QgPCBsYXVnaFwtYXQ7CivlqLEgPCBwbGVhc3VyZTsKK+emhCA8IGJsZXNzaW5nOwor5oSVIDwgc3RhcnRsZWQ7CivllaEgPCBtb3JwaGluZTsKK+WbmiA8IHByaXNvbmVyOwor6LSmIDwgYWNjb3VudHM7Civnk7cgPCBjcm9ja2VyeTsKK+iFpSA8IHJhd1wtbWVhdDsKK+WSuCA8IHRvZ2V0aGVyOwor55arIDwgZXBpZGVtaWM7CivllaogPCBzeWxsYWJsZTsKK+iGqCA8IHRvXC1zd2VsbDsKK+WQsSA8IGNoaXJwaW5nOwor6I+MIDwgbXVzaHJvb207CivnkJAgPCB0cmlmbGluZzsKK+iLnyA8IGNhcmVsZXNzOwor5bSbIDwgdG93ZXJpbmc7Civlh7ggPCBwcm90cnVkZTsKK+WYgCA8IGJhY2tiaXRlOwor6ZOQIDwgc2hhY2tsZXM7CivosJUgPCBwcm9jbGFpbTsKK+i/uCA8IGd1c2hcLW91dDsKK+WJlCA8IHBpY2tcLW91dDsKK+WGgCA8IGhvcGVcLWZvcjsKK+egmiA8IGlua3N0b25lOwor5o2NIDwgd2FyZFwtb2ZmOwor6IeAIDwgYnV0dG9ja3M7CivlgJQgPCBzdHViYm9ybjsKK+WlhCA8IGVyZVwtbG9uZzsKK+S+pSA8IGJlXC1sdWNreTsKK+aitSA8IGJ1ZGRoaXN0Owor6KSlIDwgbWF0dHJlc3M7CivmmZYgPCBzdW5zaGluZTsKK+eVtCA8IGZhcm1sYW5kOwor556fIDwgZ2xhcmVcLWF0Owor55i4IDwgbGFtZW5lc3M7Civmvo4gPCBzcGxhdHRlcjsKK+a9piA8IHRvXC1mbG9vZDsKK+WBjiA8IGNsaW5nXC10bzsKK+idjiA8IHNjb3JwaW9uOwor57C4IDwgd2lubm93ZXI7CivlurYgPCBudW1lcm91czsKK+aSgiA8IHB1dFwtZG93bjsKK+aZlyA8IHByZVwtZGF3bjsKK+i5iiA8IGZvb3RwYXRoOwor6ZiJIDwgY2FzdHJhdGU7Civmt4YgPCBjb25mdXNlZDsKK+iQpiA8IGVudGFuZ2xlOwor5qaGIDwgZWxtXC10cmVlOwor54ydIDwgYWJydXB0bHk7Civmm6YgPCBzdW5saWdodDsKK+a4pCA8IHN3ZWxsaW5nOwor6L6YIDwgd2luZGxhc3M7Civpk50gPCBhbHVtaW51bTsKK+aNiyA8IHRvXC1wbHVjazsKK+iZuyA8IGhvcnNlZmx5Owor556MIDwgZG96ZVwtb2ZmOwor5LqfIDwgdXJnZW50bHk7CivlvqggPCBkb3VidGZ1bDsKK+WVkCA8IHRvXC10YXN0ZTsKK+mVryA8IGJyYWNlbGV0Owor5Yi9IDwgYW1wdXRhdGU7Civol7sgPCBzcGxlbmRpZDsKK+aDsCA8IGluZG9sZW50Owor54eUIDwgdG9cLXJvYXN0Owor5radIDwgaW51bmRhdGU7Civnu5sgPCBkZWVwXC1yZWQ7CivmsK8gPCBjaGxvcmluZTsKK+WdjSA8IGNvbGxhcHNlOwor5b+QIDwgdGltb3JvdXM7CivmrqEgPCBlbmNvZmZpbjsKK+aYtSA8IGludGltYXRlOwor5L+fIDwgd2FpdFwtZm9yOwor5qGiIDwgaGFyZHdvb2Q7Civpu48gPCBzdGlja1wtdG87Civnl5ggPCBzbWFsbHBveDsKK+annyA8IGJldGVsbnV0Owor6Z+tIDwgc2NhbGxpb247CivolKsgPCB3aXRoZXJlZDsKK+iGgiA8IGJhY2tib25lOwor6IOrIDwgc2hpbmJvbmU7Civoh4MgPCBzd2VsbFwtdXA7CivlsowgPCBwZXJpbG91czsKK+eOjiA8IGppbmdsaW5nOwor6Zq8IDwgYXF1aWxpbmU7CivpmbIgPCBmcm9udGllcjsKK+iwtiA8IHByb3BoZWN5Owor5YG7IDwgaHVtcGJhY2s7Civpk4IgPCBwbGF0aW51bTsKK+e6myA8IGFcLWJhbm5lcjsKK+mTrCA8IGNocm9taXVtOwor6IOwIDwgcGFuY3JlYXM7CivopoMgPCByZWFjaFwtdG87Civnnb4gPCB0ZXN0aWNsZTsKK+WAqCA8IGFycm9nYW50Owor6K6jIDwgb2JpdHVhcnk7CivpkpsgPCB0aXRhbml1bTsKK+a1gyA8IHNhdHVyYXRlOwor5peWIDwgcm9tYW50aWM7CivnvJkgPCByZWRcLXNpbGs7Civoob4gPCBjb3ZlcmxldDsKK+WuuCA8IGltcGVyaWFsOwor5L2eIDwgZmxhdHRlcnk7Civom5QgPCB0YXBld29ybTsKK+awhSA8IG92ZXJjb2F0Owor5rCfIDwgZmx1b3JpbmU7CivmsLAgPCBjeWFub2dlbjsKK+mynyA8IHN0dXJnZW9uOwor56GSIDwgc2VsZW5pdW07CivoiKggPCBhXC1zYW1wYW47Civng4ogPCB0b1wtc21lbHQ7CivokLEgPCBkYXlcLWxpbHk7CivnlrggPCBqYXVuZGljZTsKK+mTiiA8IHRoYWxsaXVtOwor6K+CIDwgZXhlZ2VzaXM7Civpm4kgPCBwaGVhc2FudDsKK+mioiA8IGx1bWlub3VzOwor5qCAIDwgZ2FyZGVuaWE7Civor5IgPCBiZXF1ZWF0aDsKK+minyA8IGRhd2RsaW5nOwor6IuLIDwgYW1hcmFudGg7CivngKMgPCBzZWFcLW1pc3Q7Civnrp0gPCB0d2VlemVyczsKK+alriA8IG11bGJlcnJ5Owor6YGEIDwgdG9cLWh1cnJ5Owor6ZKSIDwgdmFuYWRpdW07Civoi7cgPCBsaWNvcmljZTsKK+mSqCA8IHR1bmdzdGVuOwor5Z+4IDwgYVwtYm9yZGVyOwor5auSIDwgZGF1Z2h0ZXI7CivnmZwgPCBlcnl0aGVtYTsKK+m4uSA8IHRoZVwtY3JvdzsKK+abmyA8IHR3aWxpZ2h0Owor6aqYIDwgc3RhbGxpb247CivlnbsgPCBhblwtaXNsZXQ7Civop6sgPCB0b1wtc3RhcnQ7Civpk7UgPCBhbW1vbml1bTsKK+awqSA8IGFyZ29uaXVtOwor5Y2jIDwgd2luZVwtcG90Owor6ZSRIDwgYW50aW1vbnk7CivphpsgPCBhbGRlaHlkZTsKK+mSvSA8IHRhbnRhbHVtOwor56C8IDwgY29uY3JldGU7CivnhpggPCB0b1wtc3RlYW07CivnqqggPCBhXC1jZWxsYXI7CivmoLIgPCBtYW5ncm92ZTsKK+myoyA8IHNraXBqYWNrOwor6ZO3IDwgcnViaWRpdW07Civpk5UgPCBldXJvcGl1bTsKK+mSiyA8IHBvbG9uaXVtOwor56CRIDwgdG9cLWdyaW5kOwor5rSrIDwgdG9cLWRpdGNoOwor5Z+aIDwgY3J1Y2libGU7CivlnqQgPCBhbnRcLWhpbGw7CivljbogPCB3aW5lY3VwczsKK+WYjyA8IGZlbGljaXR5Owor6bK9IDwgZmxhdGZpc2g7Civpsq0gPCBtYWNrZXJlbDsKK+mSqiA8IHNjYW5kaXVtOwor6ZKrIDwgZnJhbmNpdW07CivpkpAgPCBzYW1hcml1bTsKK+elkyA8IGV4b3JjaXNlOwor5qCzIDwgYVwtYmFza2V0Owor5ZCyIDwgc21pbGVcLWF0Owor6I6wIDwgY2FtcGhhbmU7CivoirQgPCBmbHVvcmVuZTsKK+i1nCA8IGFic3RydXNlOwor5pS557eoIDwgdG9cLWFkYXB0Owor55m95YWn6ZqcIDwgY2F0YXJhY3Q7Civlo5Pnt4ogPCBjb21wcmVzczsKK+mGq+WtuCA8IG1lZGljaW5lOwor5ZCe5L21IDwgdG9cLWFubmV4Owor6Z2I5rS7IDwgZmxleGlibGU7CivlpKfnr7fou4ogPCBzY2hvb25lcjsKK+aWh+eNuyA8IGRvY3VtZW50Owor5aSW55SoIDwgZXh0ZXJuYWw7Civnm6PorbfkurogPCBndWFyZGlhbjsKK+mCiue3miA8IHNpZGVsaW5lOwor5q2j57WxIDwgb3J0aG9kb3g7Civmlq/mtJvkvJDlhYsgPCBzbG92YWtpYTsKK+mgu+S7jSA8IGZyZXF1ZW50Owor57ev57eaIDwgbGF0aXR1ZGU7CivkuI3lkIjpgakgPCBpbXByb3BlcjsKK+eEoeiqpCA8IHZlcmlmaWVkOwor5pel5puGIDwgY2FsZW5kYXI7CivliZ3okL0gPCBwZWVsXC1vZmY7CivpoJDljZwgPCBmb3JldGVsbDsKK+isueaFjiA8IGNhdXRpb3VzOwor6Iy26aSoIDwgdGVhaG91c2U7CivkvIHmpa3plpPntrLot68gPCBleHRyYW5ldDsKK+ingOWvn+iAhSA8IG9ic2VydmVyOwor6bOl57GgIDwgYmlyZGNhZ2U7Civlu7rnr4kgPCBidWlsZGluZzsKK+iXpeWKkeWjqyA8IGRydWdnaXN0Owor5LiN5L+h5Lu7IDwgbWlzdHJ1c3Q7Civlu7rnq4sgPCBjcmVhdGlvbjsKK+WboOeJuee2siA8IGludGVybmV0Owor5b+D5omLIDwgbmV3XC1oYW5kOwor5Yaw6ZqZIDwgY3JldmFzc2U7CivpnLjmrIogPCBoZWdlbW9ueTsKK+WNseaApSA8IGNyaXRpY2FsOwor6ZqZ57irIDwgYXBlcnR1cmU7CivlsI3nqLHmgKcgPCBzeW1tZXRyeTsKK+imqui6qyA8IHBlcnNvbmFsOwor56K65a6aIDwgZGVmaW5pdGU7CivmqqLmuKzlmaggPCBkZXRlY3RvcjsKK+e1gui6qyA8IGxpZmVsb25nOwor6a2U6KGT5birIDwgbWFnaWNpYW47CivoqJjogIUgPCByZXBvcnRlcjsKK+imj+mBvyA8IHRvXC1ldmFkZTsKK+eJp+W4qyA8IGNoYXBsYWluOwor5pS255uKIDwgZWFybmluZ3M7CivlubPooYwgPCBwYXJhbGxlbDsKK+W/oOWvpiA8IGZhaXRoZnVsOwor5q2l55m8IDwgZm9vdHdvcms7CivliIboo4IgPCBzcGxpdFwtdXA7CivmlrDmm7ggPCBuZXdcLWJvb2s7CivkuI3mnL3nmoQgPCBpbW1vcnRhbDsKK+WPo+S6pCA8IG9yYWxcLXNleDsKK+WJteeriyA8IHRvXC1mb3VuZDsKK+eFpOeusSA8IGNvYWxcLWJveDsKK+ayueeCuOWciOmkhSA8IGRvdWdobnV0Owor57y65LmPIDwgc2hvcnRhZ2U7Civml6XlvowgPCBzb21ldGltZTsKK+att+WPsuaApyA8IGhpc3RvcmljOwor5Zug77mN5LmL5pWFIDwgaW5hc211Y2g7Civngb3pm6MgPCBkaXNhc3RlcjsKK+W+ueW6lSA8IHRob3JvdWdoOwor5qq45qqs5rC0IDwgbGVtb25hZGU7CivpsYnoo5kgPCBjYWxpcGFzaDsKK+itpuWPpSA8IGFwaG9yaXNtOwor5pep5beyIDwgbG9uZ1wtYWdvOwor56C05puJIDwgZGF5YnJlYWs7Civpm6jmu7QgPCByYWluZHJvcDsKK+S7peWkque2siA8IGV0aGVybmV0Owor5piO5aSpIDwgdG9tb3Jyb3c7Civlppblrb0gPCBldmlsZG9lcjsKK+mbu+awoyA8IGVsZWN0cmljOwor6YWs5aCxIDwgdG9cLXJlcGF5Owor6LKg6YeN5pOUIDwgYnVyZGVuZWQ7CivpgbrnlKIgPCBoZXJpdGFnZTsKK+ehrOW6piA8IGhhcmRuZXNzOwor54Sh6IGKIDwgbm9uc2Vuc2U7CivmqavpgY4gPCB0cmF2ZXJzZTsKK+mbjeWuueWkp+W6piA8IGdlbmVyb3VzOwor5b6B5oiwIDwgY2FtcGFpZ247CivoqrLmnKwgPCB0ZXh0Ym9vazsKK+WHi+isnSA8IGxhbmd1aXNoOwor5Y2B5LqM5pyIIDwgZGVjZW1iZXI7CivoqIjnrpcgPCB0b1wtY291bnQ7CivplovpmaQgPCB0b1wtZXhwZWw7Civnupblt6cgPCBkZWxpY2F0ZTsKK+aTpue2sueQgyA8IG5ldFwtYmFsbDsKK+eEoee4qyA8IHNlYW1sZXNzOwor5Yag6LuNIDwgY2hhbXBpb247Civlh4boqLEgPCB0b1wtYWxsb3c7Civpm7vmoq8gPCBlbGV2YXRvcjsKK+iTi+WxpCA8IGNhcFwtcm9jazsKK+mdouWwjSA8IGNvbmZyb250Owor54Sh57eaIDwgd2lyZWxlc3M7CivogZbkv53nvoUgPCBzdFwuXC1wYXVsOwor6YCa57SFIDwgdmVyeVwtcmVkOwor5YyF5oqEIDwgb3V0Zmxhbms7Civovqjoqo0gPCBpZGVudGlmeTsKK+WOn+S+hiA8IG9yaWdpbmFsOwor5aW95aW95YWS5ZywIDwgcHJvcGVybHk7CivlpJrmlbggPCBtYWpvcml0eTsKK+eJqeWTgSA8IGFydGljbGVzOwor5pS/5rK7IDwgcG9saXRpY3M7CivljYrlpJwgPCBtaWRuaWdodDsKK+aWsOW5tCA8IG5ld1wteWVhcjsKK+aXheWuoiA8IHRyYXZlbGVyOwor6YC855yfIDwgbGlmZWxpa2U7CivpqI7lo6vmsKPmpoIgPCBjaGl2YWxyeTsKK+ilv+ijoeeIviA8IGN5cmlsbGljOwor5YWs6YeQIDwgZGVjaWdyYW07CivmrrrmiK4gPCBtYXNzYWNyZTsKK+iJvuW+t+iVvuW+tyA8IGFkZWxhaWRlOwor5Yqb5rCjIDwgc3RyZW5ndGg7Civlhafpg6ggPCBpbnRlcmlvcjsKK+e5oeW4tyA8IHRhcGVzdHJ5Owor5aSq5b+ZIDwgdG9vXC1idXN5Owor552h55ygIDwgc2xlZXBpbmc7CivljYHlm5sgPCBmb3VydGVlbjsKK+W4uOWdkOaxvei7iuiAhSA8IG1vdG9yaXN0Owor5bmz562JIDwgZXF1YWxpdHk7CivljIXlsaQgPCBjbGFkZGluZzsKK+axvei7iuWxleimveacgyA8IGNhclwtc2hvdzsKK+WGjeimiyA8IGdvb2RcLWJ5ZTsKK+WPr+aTpuWvqyA8IGVyYXNhYmxlOwor5YWN6LK76Luf5Lu2IDwgZnJlZXdhcmU7CivljbHkuqEgPCBhdFwtc3Rha2U7Civlt6foqIggPCBtYW5ldXZlcjsKK+iRl+aJiyA8IGNvbW1lbmNlOwor5qGD6Iqx5b+D5pyoIDwgbWFob2dhbnk7Civnm7LohbggPCBhcHBlbmRpeDsKK+eJp+e+iuiAhSA8IHNoZXBoZXJkOwor5pSv5p+xIDwgbWFpbnN0YXk7CivlvaLlrrkgPCBkZXNjcmliZTsKK+eEoeeWkSA8IG5vXC1kb3VidDsKK+W8t+aCjSA8IHZhbGxpYW50Owor57KX6YeOIDwgaW5zb2xlbnQ7CivooovpvKAgPCBrYW5nYXJvbzsKK+i7n+mrlCA8IHNvZnR3YXJlOwor5paw5Z6LIDwgbmV3XC10eXBlOwor5Z+56IKyIDwgdG9cLXRyYWluOwor54Wk5rK5IDwga2Vyb3NlbmU7CivliqDmmYIgPCBvdmVydGltZTsKK+aomea6luimj+agvCA8IHN0YW5kYXJkOwor5YWJ6LydIDwgcmFkaWFuY2U7CivlvqnlhYMgPCByZWNvdmVyeTsKK+WNgeWFqyA8IGVpZ2h0ZWVuOwor5aSa5bCRIDwgaG93XC1tdWNoOwor5Y2B5YWLIDwgZGVjYWdyYW07CivlnLDpm7cgPCBsYW5kbWluZTsKK+WmguS7iiA8IG5vd2FkYXlzOwor6YKq5oOhIDwgc2luaXN0ZXI7CivnhKHoq5bkvZXmmYIgPCB3aGVuZXZlcjsKK+ingOeciyA8IHRvXC13YXRjaDsKK+W+l+WIhiA8IHRvXC1zY29yZTsKK+ethuiomOacrCA8IG5vdGVib29rOwor6LuA6auUIDwgdGhlXC1ib2R5Owor56Gs5Lu2IDwgaGFyZHdhcmU7CivlpKnloIIgPCBwYXJhZGlzZTsKK+iWsOiho+iNiSA8IGxhdmVuZGVyOwor5Y2B5LmdIDwgbmluZXRlZW47CivlhYnorZwgPCBzcGVjdHJ1bTsKK+ijnOmBuiA8IGFkZGVuZHVtOwor6YGg5p2xIDwgZmFyXC1lYXN0Owor5bm+5LmO5rKS5pyJIDwgc2NhcmNlbHk7CivljYHkuIkgPCB0aGlydGVlbjsKK+S4jeW/heimgSA8IG5lZWRsZXNzOwor5qmf6IO9IDwgZnVuY3Rpb247Civokpnlj6QgPCBtb25nb2xpYTsKK+eJp+W4q+S5i+iBtyA8IG1pbmlzdHJ5Owor6YGg5pmvIDwgcHJvc3BlY3Q7CivntJDntIQgPCBuZXdcLXlvcms7Civmj5DorbAgPCBwcm9wb3NhbDsKK+mAsuatpSA8IHByb2dyZXNzOwor6Zu75aCxIDwgdGVsZWdyYW07Civoq4vpoZjmm7ggPCBwZXRpdGlvbjsKK+i7iumWkyA8IHdvcmtzaG9wOwor5b6A5L6GIDwgZGVhbGluZ3M7CivlvJXlsI4gPCB0b1wtZ3VpZGU7CivpvpMgPCBhXC1oYWx0ZXI7Civoo53osqggPCBzaGlwcGluZzsKK+WKm+W6piA8IGR5bmFtaXNtOwor5oqV6LOH6ICFIDwgaW52ZXN0b3I7CivpgY7mlrwgPCB0b29cLW11Y2g7CivpvJogPCBkcnVtbWluZzsKK+ebo+emgSA8IGltcHJpc29uOwor5Yaw56qWIDwgaWNlaG91c2U7CivloILnmocgPCBpbXBvc2luZzsKK+m6riA8IHBvcnJpZGdlOwor55yB55WlIDwgb21pc3Npb247Civlha3ljYHlm5vokKwgPCA2NFwtMFwtMDAwOwor5a+E55Sf54mpIDwgcGFyYXNpdGU7Civogq/loZTln7ogPCBrZW50dWNreTsKK+avjeS/giA8IG1hdGVybmFsOwor5p+s5Z+U5a+oIDwgY2FtYm9kaWE7CivptZkgPCBhXC1zaHJpa2U7CivmjqHosrcgPCBwdXJjaGFzZTsKK+i8leimliA8IGNvbnRlbXB0Owor57K+6Ie0IDwgZGVsaWNhY3k7Civps64gPCBjaGlja2VuczsKK+mBsuW7tiA8IHRvXC1kZWxheTsKK+myuiA8IGNhdFwtZmlzaDsKK+aUnOW4tiA8IHRvXC1jYXJyeTsKK+W7tuWxlSA8IHRvXC1zY2FsZTsKK+mvuiA8IGJsb3dmaXNoOwor5LiA5bCP5pmCIDwgb25lXC1ob3VyOwor6YOo5L2NIDwgcG9zaXRpb247CivokpnmiZjnvoXmi4kgPCBtb3Rvcm9sYTsKK+S6uuihjOmBkyA8IHNpZGV3YWxrOwor6ayLIDwgZm9yZWxvY2s7CivprIAgPCB0b1wtc2hhdmU7Civpq7UgPCB3aGlza2VyczsKK+WFp+e9riA8IGludGVybmFsOwor6ZmQ5pyfIDwgZGVhZGxpbmU7CivlronlhajmgKcgPCBzZWN1cml0eTsKK+mrjiA8IGhpcFwtYm9uZTsKK+iomOaGtiA8IG1lbW9yaWVzOwor6YG35bCxIDwgdG9cLXlpZWxkOwor5by35YuBIDwgcG93ZXJmdWw7CivmrrrkurogPCBob21pY2lkZTsKK+WGjeS/neiovCA8IHJlYXNzdXJlOwor6aemIDwgdG9cLW1vdW50Owor6aapIDwgYXJvbWF0aWM7Civkurrlt6XmtYHnlKIgPCBhYm9ydGlvbjsKK+WJm+aApyA8IHJpZ2lkaXR5Owor6aSrIDwgZHVtcGxpbmc7CivppKkgPCBoaWNjb3VnaDsKK+mknyA8IGxpYmF0aW9uOwor6aSZIDwgdG9cLWFkb3JuOwor6aKxIDwgdGFpcGhvb247Civli4Pli4MgPCB0aHJpdmluZzsKK+aTgeaToCA8IHRvXC1jcm93ZDsKK+aOiOiqsiA8IHRvXC10ZWFjaDsKK+ino+aVoyA8IGRpc3NvbHZlOwor6Z+hIDwgZ29yZ2VvdXM7Civpn6AgPCBrbmVlXC1wYWQ7CivpmbDmgKcgPCBmZW1pbmluZTsKK+mduiA8IHN0b2NraW5nOwor5YuV5L2cIDwgbW92ZW1lbnQ7Civpm57lsL7phZIgPCBjb2NrdGFpbDsKK+aVpuS/gyA8IHRvXC1wcmVzczsKK+mcqCA8IGNsb3VkaW5nOwor5qmE5qyW55CDIDwgZm9vdGJhbGw7Civpm4flk6EgPCBlbXBsb3llZTsKK+eAieiXpSA8IGxheGF0aXZlOwor5o+b572uIDwgZGlzcGxhY2U7CivlubPlupXpjYsgPCBzYXVjZXBhbjsKK+e0gOW/teeikSA8IG1vbnVtZW50Owor5ZyW6KyAIDwgY29uc3BpcmU7CivokaPkuosgPCBkaXJlY3RvcjsKK+WLleS6uiA8IHRvdWNoaW5nOwor6Zi4IDwgZGlzdHJlc3M7CivpmLvmk4ogPCB0b1wtY2hlY2s7Civoo5zoirEgPCBhcHBsaXF1ZTsKK+mVpSA8IGx1dGV0aXVtOwor5aGX5oq5IDwgdG9cLXNtZWFyOwor6KOd6Ii5IDwgc2hpcG1lbnQ7CivmrLrlo5MgPCB0b1wtYnVsbHk7CivojZLmtrwgPCBkZXNvbGF0ZTsKK+WHueadvyA8IGludGFnbGlvOwor5Yqj5YuiIDwgaW5mZXJpb3I7Civlloflj63msLTku5kgPCBkYWZmb2RpbDsKK+WIhuaVuCA8IGZyYWN0aW9uOwor5aOT5YqbIDwgcHJlc3N1cmU7CivpgqPlgIsgPCB0aGF0XC1vbmU7CivnhKHmg4UgPCBwaXRpbGVzczsKK+aTpuWvqyA8IHRvXC1lcmFzZTsKK+Wjk+WItiA8IHN1cHByZXNzOwor57K+56K6IDwgYWNjdXJhdGU7CivpjakgPCBub2JlbGl1bTsKK+mNmiA8IGZyb250bGV0Owor5L615YWl6ICFIDwgaW50cnVkZXI7CivntpPluLggPCBldmVyeWRheTsKK+mMkiA8IGFjdGluaXVtOwor5pS56Z2p6ICFIDwgcmVmb3JtZXI7CivmraXlhbUgPCBpbmZhbnRyeTsKK+mKjSA8IGFcLXNpY2tsZTsKK+W5s+aIvyA8IGJ1bmdhbG93Owor5Yaw5ra8IDwgaWNlXC1jb2xkOwor5LyB5qWt5YWn57ay6LevIDwgaW50cmFuZXQ7Civlubvmg7MgPCBkZWx1c2lvbjsKK+W6j+W5lSA8IHByb2xvZ3VlOwor6YaGIDwgd2luZVwtY3VwOwor6YaDIDwgbWFyaW5hdGU7CivphbIgPCBoYW5nb3ZlcjsKK+mEiCA8IHNsaXBwZXJzOwor6YG/5YWNIDwgdG9cLWF2ZXJ0Owor5aC05omAIDwgbG9jYXRpb247CivpgoUgPCBoZXNpdGFudDsKK+mbh+S4uyA8IGVtcGxveWVyOwor5o+t55m8IDwgZGlzY2xvc2U7Civov7sgPCB0b1wtc2hpZnQ7CivlgrPoqIogPCBzdWJwb2VuYTsKK+ipleS8sCA8IGV2YWx1YXRlOwor5omL5o+Q566xIDwgc3VpdGNhc2U7Civlgb3pgKAgPCB0b1wtZm9yZ2U7CivngavniYYgPCBmaXJld2FsbDsKK+i9iiA8IGF4bGVcLXRpcDsKK+i8rCA8IGFcLWhlYXJzZTsKK+WHtuaJiyA8IG11cmRlcmVyOwor5LiN5ZCM5oSPIDwgZGlzYWdyZWU7CivlhbHlkozlnIsgPCByZXB1YmxpYzsKK+eEoeWusyA8IGhhcm1sZXNzOwor6Luf6IaPIDwgb2ludG1lbnQ7Civoub4gPCB0b1wtc3F1YXQ7CivmjozogbIgPCBhcHBsYXVzZTsKK+ihqOingCA8IGFwcGFyZW50Owor6LmnIDwgdG9cLXNwb2lsOwor5Z+L5rKSIDwgb2JsaXZpb247CivlubPluLggPCBvcmRpbmFyeTsKK+i4piA8IHRoZVwtc2hpbjsKK+aLlOmZpCA8IHB1bGxcLW91dDsKK+WinuWKoCA8IHRvXC1yYWlzZTsKK+i3giA8IGNyZWVwaW5nOwor54Sh6KuW5L2V5LqLIDwgYW55dGhpbmc7Civmkanmk6YgPCBmcmljdGlvbjsKK+imuuW+lyA8IHRvXC10aGluazsKK+mrmOiytCA8IGdyYW5kZXVyOwor5qOS56Oo5qmfIDwgcm9kXC1taWxsOwor5YWF55W2IDwgc2VydmVcLWFzOwor54K65pmCIDwgdGltZXdpc2U7CivpgZTliLAgPCB0b1wtcmVhY2g7CivosY4gPCB2ZXJ0aWNhbDsKK+ilv+aWuSA8IHRoZVwtd2VzdDsKK+eyvuWKm+WFheaymyA8IHZpZ29yb3VzOwor6K25IDwgdG9cLXNob3V0Owor6YCa5aCxIDwgYnVsbGV0aW47CivmkqXlrZAgPCBwbGVjdHJ1bTsKK+aKl+mrlCA8IGFudGlib2R5Owor6Ieo6L+RIDwgY2xvc2VcLXRvOwor6I6r5aSnIDwgZ3JlYXRlc3Q7Civlk6XlgKvluIPntIAgPCBjb2x1bWJ1czsKK+WIh+WvpiA8IGZlYXNpYmxlOwor6KuGIDwgdG9cLWNoZWF0Owor6KmLIDwgdG9cLWN1cnNlOwor6KmKIDwgcGxlYXNpbmc7CivliIblrZAgPCBtb2xlY3VsZTsKK+ebuOaHiSA8IHJlbGV2YW50Owor5bem6Lyq5omL5qeNIDwgcmV2b2x2ZXI7CivpmLvloZ4gPCB0b1wtYmxvY2s7CivopbYgPCBpZ25vcmFudDsKK+e1leWwjSA8IGFic29sdXRlOwor6KWrIDwgcmFpbmNvYXQ7CivliIblqKkgPCBkZWxpdmVyeTsKK+euoemBkyA8IHBpcGVsaW5lOwor5ZOl5YCr5q+U5LqeIDwgY29sb21iaWE7CivpgYrkvLQgPCBwbGF5bWF0ZTsKK+W3pealrSA8IGluZHVzdHJ5Owor5Yaw5o6SIDwgaWNlXC1yYWZ0Owor6YCy5YWlIDwgdG9cLWVudGVyOwor5bCP5aSc5puyIDwgc2VyZW5hZGU7CivlsI/mqJnpoYwgPCBzdWJ0aXRsZTsKK+i3r+mdoiA8IHBhdmVtZW50Owor6J2fIDwgaGVkZ2Vob2c7CivonY8gPCBcKGluc2VjdFwpOwor5pKS5q+N6ICz6KiY5LiLIDwgMlwtc2FtdWVsOwor5pKS5q+N6ICz6KiY5LiKIDwgMVwtc2FtdWVsOwor5pyJ5qmf6auUIDwgb3JnYW5pc207Civnm7TlvpEgPCBkaWFtZXRlcjsKK+eEoeWQjSA8IG5hbWVsZXNzOwor5aC15aGeIDwgYmxvY2thZ2U7CivmkqTlm54gPCB3aXRoZHJhdzsKK+iasyA8IGFudFwtZWdnczsKK+e2k+WFuCA8IGNsYXNzaWNzOwor5q276KGa6KGVIDwgZGVhZFwtZW5kOwor6aiw6aiwIDwgc3RlYW1pbmc7CivkuqTpn7/mm7IgPCBzeW1waG9ueTsKK+mAvOS6uiA8IHByZXNzaW5nOwor54Sh5YqpIDwgaGVscGxlc3M7CivmjqHnlKggPCB0b1wtYWRvcHQ7Civlt7LmlYUgPCB0aGVcLWxhdGU7CivnmbzmsZcgPCB0b1wtc3dlYXQ7CivlnIvnq4sgPCBuYXRpb25hbDsKK+aZgumWk+ihqCA8IHNjaGVkdWxlOwor6JSJIDwgZWFydGhcLXVwOwor56606KiAIDwgcHJvdmVyYnM7Civoo5zniJAgPCBmZXR0bGluZzsKK+iHquijvSA8IGhvbWVtYWRlOwor6JGWIDwgZm9sbGljbGU7CivpoK3lkJHliY0gPCBoZWFkbG9uZzsKK+mYu+WKmyA8IG9ic3RhY2xlOwor5o6i6Zqq6ICFIDwgZXhwbG9yZXI7CivooJXooJUgPCB3aWdnbGluZzsKK+iJqSA8IHRob2xlcGluOwor6YCB5YilIDwgZmFyZXdlbGw7CivoiYwgPCB0b1wtY2F1bGs7CivnhKHkurogPCB1bm1hbm5lZDsKK+WFrOaWpCA8IGtpbG9ncmFtOwor5ZCb5Li75pS/5rK7IDwgbW9uYXJjaHk7Civlj5fpm6PogIUgPCBzdWZmZXJlcjsKK+aKveixoSA8IGFic3RyYWN0Owor5Ye65Y+jIDwgdG9cLXNwZWFrOwor6ISwIDwgdGhlXC1uZWNrOwor6Kaq5ZaEIDwgZ29vZHdpbGw7CivoiIjoh7QgPCBpbnRlcmVzdDsKK+mAlOS4rSA8IGVuXC1yb3V0ZTsKK+iCjyA8IGNvcHVsYXRlOwor6ZaT5o6lIDwgaW5kaXJlY3Q7CivpkLXot68gPCByYWlscm9hZDsKK+aQrOW8hCA8IG1vdmVcLXN0aDsKK+W3tOaLieWcrSA8IHBhcmFndWF5Owor5qiZ5pysIDwgc3BlY2ltZW47CivnrKzkuIDmraUgPCBzdGVwXC1vbmU7Civoqr/lkbPmsYEgPCBkcmVzc2luZzsKK+mAgOS9jSA8IGFiZGljYXRlOwor572HIDwgYVwtZ29ibGV0Owor6YCD5LqhIDwgZnVnaXRpdmU7CivmiLDprKUgPCB0b1wtZmlnaHQ7CivntbHkuIAgPCB0b1wtdW5pZnk7CivliJHkuosgPCBjcmltaW5hbDsKK+aVuOaTmuW6qyA8IGRhdGFiYXNlOwor57i/IDwgc3RyZWFtZXI7CivnuLQgPCB0b3dcLWxpbmU7CivlgrXmrIrkurogPCBjcmVkaXRvcjsKK+ihneeqgSA8IGNvbmZsaWN0Owor6L+95LiKIDwgb3ZlcnRha2U7Civntq8gPCB0b1wtYnJhaWQ7CivntqogPCBkYXJrXC1yZWQ7CivoiKrnqbogPCBhdmlhdGlvbjsKK+S/rui+rSA8IHJoZXRvcmljOwor5r++5rayIDwgZmlsdHJhdGU7Civkurrlj6PnqKDlr4YgPCBwb3B1bG91czsKK+e0niA8IGFcLWZyaW5nZTsKK+WwjemdoiA8IG9wcG9zaXRlOwor5Ye95Lu2IDwgbGV0dGVyZXM7CivlvJ/lhYTlgJEgPCBicmV0aHJlbjsKK+Wwj+iqquWutiA8IG5vdmVsaXN0Owor57GjIDwgYm93XC1jYXNlOwor57CsIDwgXChiYW1ib29cKTsKK+mmtOm5vyA8IHJlaW5kZWVyOwor6ama6KidIDwgY29uZm91bmQ7CivmjZXnjbIgPCB0b1wtY2F0Y2g7CivmjqHmqKMgPCBzYW1wbGluZzsKK+e0lOWTgSA8IHN0ZXJsaW5nOwor6L+R5L6GIDwgcmVjZW50bHk7Civnp48gPCB0b1wtd2FzdGU7CivnrKzkupTljYEgPCBmaWZ0aWV0aDsKK+S4ieaYjuayuyA8IHNhbmR3aWNoOwor5a+66ZmiIDwgY2xvaXN0ZXI7CivnrZToqbEgPCB0b1wtcmVwbHk7CivlgqzljJblipEgPCBjYXRhbHlzdDsKK+eBq+WxsSA8IHZvbGNhbmljOwor5YW25a+mIDwgYWN0dWFsbHk7CivnlJ/oqZ4gPCBuZXdcLXdvcmQ7Civno58gPCBtZWRpb2NyZTsKK+aiteiqniA8IHNhbnNrcml0Owor56KPIDwgY29sb3VyZWQ7Civkvr/pgZMgPCBzaG9ydGN1dDsKK+a2iOiyu+iAhSA8IGNvbnN1bWVyOwor5a+n6Z2cIDwgdHJhbnF1aWw7CivnoLkgPCBhc3RhdGluZTsKK+efiyA8IHRvXC1zdGFyZTsKK+WwgemOliA8IGJsb2NrYWRlOwor5L+v6KaWIDwgb3Zlcmxvb2s7CivnnpMgPCB0b1wtc2xlZXA7CivnnY8gPCBiZVwtdGlyZWQ7CivlvJXkurrms6jnm64gPCBzdHJpa2luZzsKK+edhSA8IGJpZ1wtZXllZDsKK+a/leawoyA8IG1vaXN0dXJlOwor55usIDwgc2FsdFwtcGl0Owor6Zi/5aWH5q235pavIDwgYWNoaWxsZXM7Civnsr7lr4YgPCBhY2N1cmFjeTsKK+iMtuWMmSA8IHRlYXNwb29uOwor5YWE5byfIDwgYnJvdGhlcnM7CivnmZIgPCBnZXRcLXdlbGw7CivnmYMgPCB3ZWFrbmVzczsKK+eYvCA8IHNpY2tuZXNzOwor55i2IDwgdG9cLWNvdWdoOwor55iwIDwgc2Nyb2Z1bGE7CivoiIjnm5sgPCBmbG91cmlzaDsKK+WAmOiLpSA8IHByb3ZpZGVkOwor6Zec5L+CIDwgcmVsYXRpb247CivnmbzlsIQgPCB0b1wtc2hvb3Q7Civnk6kgPCBraWxvd2F0dDsKK+eQqyA8IG9ybmFtZW50Owor5o6h5o6YIDwgZXhjYXZhdGU7CivotorpgY4gPCB0b1wtY3Jvc3M7Civnj7cgPCBcLzJcLXByXC1zdDsKK+WFteWZqCA8IHdlYXBvbnJ5Owor5ouU56+AIDwgam9pbnRpbmc7CivmvJTnv5IgPCBleGVyY2lzZTsKK+Wlp+W+t+S/ruaWryA8IG9keXNzZXVzOwor57SK5LqCIDwgZGlzb3JkZXI7Civot7PoiJ4gPCB0b1wtZGFuY2U7Civnio4gPCB0aGVcLXplYnU7CivnibMgPCBcKGJvdmluZVwpOwor56+E55aHIDwgY2F0ZWdvcnk7CivlhbXlk6EgPCBzb2xkaWVyczsKK+a7suiJsiA8IGJsZWVkaW5nOwor54akIDwgXChwZXJzb25cKTsKK+ibi+m7gyA8IGVnZ1wteW9sazsKK+eEjCA8IHRvXC1saWdodDsKK+eCpCA8IGlsbHVtaW5lOwor6IOM6Z2iIDwgdGhlXC1iYWNrOwor54ChIDwgc2xpcHBlcnk7CivlnabmoZHlsLzkup4gPCB0YW56YW5pYTsKK+i8lOWwjiA8IHRvXC1jb2FjaDsKK+WvtuiytCA8IHZhbHVhYmxlOwor5r2OIDwgcmlwcGxpbmc7CivlhaXlj6MgPCBlbnRyYW5jZTsKK+a5oiA8IGJhdGhyb29tOwor6ZaL5Ym1IDwgaW5pdGlhdGU7CivkvrXonZUgPCB0b1wtZXJvZGU7CivmiYHon7IgPCBmbGF0d29ybTsKK+e2k+mZuOi3ryA8IG92ZXJsYW5kOwor5a656YePIDwgY2FwYWNpdHk7Civmj4/lnJYgPCB0b1wtdHJhY2U7Civlm5vmnIjljYHkuIPomZ8gPCBhcHJpbFwtMTc7CivotaTotrMgPCBiYXJlZm9vdDsKK+azkCA8IHRvXC13cml0ZTsKK+ayjSA8IGZyZWV6aW5nOwor5Zyo5oi25aSWIDwgb3V0ZG9vcnM7CivmsIkgPCByZXN0bGVzczsKK+avviA8IGFcLWNvYXJzZTsKK+avuyA8IHRvXC1tb3VsdDsKK+S4jemhp+S4gOWIhyA8IHJlY2tsZXNzOwor5q69IDwgbWl4ZWRcLXVwOwor6KO95ZOBIDwgcHJvZHVjdHM7CivlhbHkuqsgPCB0b1wtc2hhcmU7CivmrJsgPCBhXC1oYW5kbGU7Civmk6bmo5LnkIMgPCBmb3VsXC10aXA7Civmq4MgPCBjdXBib2FyZDsKK+WFrOS4uyA8IHByaW5jZXNzOwor5o+Q5ZCNIDwgbm9taW5hdGU7Civlm5vmlrkgPCBmb3VyXC13YXk7CivkuK3kuJbntIAgPCBtZWRpZXZhbDsKK+aomiA8IGFcLXB1bGxleTsKK+eyl+WOsiA8IGFicmFzaXZlOwor5YK+6IG96ICFIDwgbGlzdGVuZXI7CivmpIQgPCB0b1wtZ3JhZnQ7CivmorEgPCBkb29yc2lsbDsKK+aOpeaUtuWZqCA8IHJlY2VpdmVyOwor5Yui5aaC56C056u5IDwgc3dlZXBpbmc7Civoh6rmsrsgPCBhdXRvbm9teTsKK+mrmOaetiA8IG92ZXJoZWFkOwor5Zuw5oORIDwgYmV3aWxkZXI7Civmn6QgPCBoYXd0aG9ybjsKK+aeuyA8IGxvbmdcLW9hcjsKK+eskeiBsiA8IGxhdWdodGVyOwor6L6y5a625bqt6ZmiIDwgZmFybXlhcmQ7Civmnb7pvKAgPCBzcXVpcnJlbDsKK+WutuW6reS9nOalrSA8IGhvbWV3b3JrOwor5YWI5LukIDwgc2hpbGxpbmc7CivmuKDpgZMgPCBjaGFubmVsczsKK+aYoSA8IGxvbmdcLWRheTsKK+agoeiogiA8IHJldmlzaW9uOwor5peYIDwgYVwtcGVubm9uOwor5qOS55CDIDwgYmFzZWJhbGw7CivlhKrlhYggPCBwcmlvcml0eTsKK+aVqiA8IHRvXC13ZWlnaDsKK+aUniA8IHRvXC1zcGxpdDsKK+aTqSA8IHRvXC1zdGFpbjsKK+WZtOaziSA8IGZvdW50YWluOwor5pG3IDwgdG9cLWtub2NrOwor5pC1IDwgd2lwZVwtb2ZmOwor5pCyIDwgdG9cLXNlaXplOwor5pCLIDwgdG9cLXRodW1wOwor5o+wIDwgcG9rZVwtb3V0Owor5o+cIDwgY292ZXJcLXVwOwor6LuN5aOrIDwgc2VyZ2VhbnQ7Civmj4wgPCB0b1wtc2hha2U7CivooaPlu5ogPCB3YXJkcm9iZTsKK+aLkSA8IHRvXC1jbGFtcDsKK+S7vemHjyA8IHF1YW50aXR5Owor5omFIDwgZ2F0ZVwtYmFyOwor5oeJ6KmyIDwgb3VnaHRcLXRvOwor5o6h5YWJIDwgbGlnaHRpbmc7Civmh5UgPCBzYXRpYXRlZDsKK+aGqiA8IGNvbXBvc2VkOwor6JGh6JCE54mZIDwgcG9ydHVnYWw7Civoo4HliKQgPCBqdWRnbWVudDsKK+WNs+Wwh+S+huiHqCA8IGltbWluZW50Owor5oWrIDwgdG9cLWFsYXJtOwor5oWFIDwgYWdpdGF0ZWQ7CivmhYEgPCBkaXNob25vcjsKK+S6uumhniA8IGh1bWFuaXR5Owor5Lyw6KiIIDwgZXN0aW1hdGU7Civmg5QgPCBjaGVlcmZ1bDsKK+WdkOS4iyA8IHNpdFwtZG93bjsKK+WbnuWutiA8IGhvbWV3YXJkOwor5L2/6ICFIDwgZW1pc3Nhcnk7CivmgZ0gPCBjYXJlZnJlZTsKK+aJk+egtCA8IHRvXC1icmVhazsKK+aBjCA8IHRvXC13b3JyeTsKK+WBh+acnyA8IHZhY2F0aW9uOwor5LiN5q2j5bi4IDwgYWJub3JtYWw7CivooaPlrZAgPCBjb3ZlcmluZzsKK+mfs+aoguWFieeinyA8IG11c2ljXC1jZDsKK+i7vOS6iyA8IGFuZWNkb3RlOwor5bukIDwgdG9cLXBsYWNlOwor5oqx5q2JIDwgYmVcLXNvcnJ5Owor5qW15aW9IDwgZmFidWxvdXM7CivmpbXlpKcgPCBlbm9ybW91czsKK+eVjOaomSA8IGxhbmRtYXJrOwor5LiN6YCP5rCjIDwgYWlydGlnaHQ7CivkupTlvanos5PntJsgPCBjb2xvcmZ1bDsKK+W4tSA8IHJlbW5hbnRzOwor56+A5oW2IDwgZmVzdGl2YWw7CivmmpbmsKPmqZ8gPCByYWRpYXRvcjsKK+W2rSA8IGVsZXZhdGVkOwor6Zi/6IKv6ImyIDwgYXJrYW5zYXM7CivnpZ7lrbjnoJTnqbbmiYAgPCBzZW1pbmFyeTsKK+msp+WNgCA8IGRvd250b3duOwor5bKKIDwgZm9vdGhpbGw7CivpvJPlkLnogIUgPCBhZHZvY2F0ZTsKK+S+teeVpSA8IGludmFzaW9uOwor5L2157SXIDwgZG91Ymxpbmc7Civnl4XlpKsgPCBzaWNrXC1tYW47CivmjojkuoggPCB0b1wtYXdhcmQ7CivlnLDkuIvlrqQgPCBiYXNlbWVudDsKK+Wci+WFpyA8IGRvbWVzdGljOwor5a6sIDwgYXJjaGl2ZXM7CivlrKwgPCBtaXN0cmVzczsKK+ewoeWMliA8IHNpbXBsaWZ5Owor5ryi5a+G54i+6aCTIDwgaGFtaWx0b247CivosrfpgJogPCB0b1wtYnJpYmU7CivlhpLniq/ogIUgPCBvZmZlbmRlcjsKK+WnpiA8IGFkdWx0ZXJ5Owor56+h5aWqIDwgdG9cLXVzdXJwOwor6Ieo5bqKIDwgY2xpbmljYWw7Civkv53nnJ/luqYgPCBmaWRlbGl0eTsKK+agveeoriA8IHRvXC1wbGFudDsKK+aIsOeVpSA8IHN0cmF0ZWd5Owor5ZyS5LiBIDwgZ2FyZGVuZXI7CivmnKzpq5QgPCBub3VtZW5vbjsKK+S6uumAoCA8IG1hblwtbWFkZTsKK+iqnuiogOWtuOWutiA8IGxpbmd1aXN0Owor5bGF5rCRIDwgcmVzaWRlbnQ7CivohbPmraUgPCBmb290c3RlcDsKK+WfvCA8IGhlYWRsYW5kOwor5ou85a2XIDwgc3BlbGxpbmc7CivmnbHpg6ggPCB0aGVcLWVhc3Q7CivkuI3pq5TpnaIgPCBzaGFtZWZ1bDsKK+mrmOWcsCA8IGhpZ2hsYW5kOwor5Zu65Lu2IDwgZmlybXdhcmU7Civpvo3poK3ogIHlpKcgPCBiaWdcLWJvc3M7CivohZPliKnploDmm7ggPCBwaGlsZW1vbjsKK+mRsuW1jCA8IHRvXC1pbmxheTsKK+alreWLmSA8IGJ1c2luZXNzOwor5YCN5pW4IDwgbXVsdGlwbGU7CivlsI3nhacgPCBjb250cmFzdDsKK+WbriA8IGludmVpZ2xlOwor6IKp6IaAIDwgc2hvdWxkZXI7Civouqvku70gPCBpZGVudGl0eTsKK+WXgyA8IHRvXC1mbHV0ZTsKK+WwseatpCA8IGFuZFwtdGh1czsKK+Wfg+WhnuS/hOavlOS6niA8IGV0aGlvcGlhOwor5ZWHIDwgdG9cLXN0YWxrOwor562G5p62IDwgcGVuXC1yYWNrOwor5ZSlIDwgYVwtYnVuZGxlOwor55Sf5pelIDwgYmlydGhkYXk7CivlkaAgPCB0b1wtc3B1cnQ7CivpkJjmk7ogPCBwZW5kdWx1bTsKK+Wwj+ihneeqgSA8IHNraXJtaXNoOwor5Y+SIDwgb2JlZGllbnQ7CivljrUgPCBhXC1zcHJpbmc7CivmirHmgKggPCBjb21wbGFpbjsKK+WNvCA8IHVuc3RlYWR5Owor5Y25IDwgc3ltcGF0aHk7Civlrbjnv5IgPCB0b1wtbGVhcm47CivmipjmiaMgPCBkaXNjb3VudDsKK+WLjCA8IHRvXC1sYWJvcjsKK+WKuyA8IGZsdXJyaWVkOwor5oe455aRIDwgc3VzcGVuc2U7CivlipkgPCBhXC1kaXZpZGU7Civmh7fnlpEgPCB0b1wtZG91YnQ7CivnlbblpKkgPCB0aGF0XC1kYXk7CivliZ8gPCB0b1wtcHJpY2s7CivpjbXnm6QgPCBrZXlib2FyZDsKK+WHpSA8IHRvXC1kd2VsbDsKK+WGhyA8IGhhdmVcLW5vdDsKK+aOkuawtOa4oCA8IGRyYWluYWdlOwor5be05Z+65pav5Z2mIDwgcGFraXN0YW47CivpurvphonlipEgPCBuYXJjb3RpYzsKK+WDgyA8IHByZXBhcmVkOwor5a6255SoIDwgaG9tZVwtdXNlOwor5L20IDwgYVwtc2Vjb25kOwor6KKr5L615a6zIDwgc3RyaWNrZW47Civoh7TlipsgPCB3b3JrXC1mb3I7CivkupTop5IgPCBwZW50YWdvbjsKK+S2siA8IHRoZVwtZWRnZTsKK+S1siA8IHJhd1wtaGVtcDsKK+S1miA8IGthb2xpYW5nOwor5LWTIDwgdGhlXC1tb2xlOwor5LWJIDwgYWJ1dGlsb247CivktLsgPCBkcnlcLWZvb2Q7CivktKsgPCBhbnRlbG9wZTsKK+aIv+adsSA8IGxhbmRsb3JkOwor5LSaIDwgc2FsdHBvbmQ7Civks7sgPCBhblwtZWFnbGU7Civkv67lu7ogPCB0b1wtYnVpbGQ7CivkspYgPCBiaWdcLWZpc2g7CivoqIjnrpfmqZ8gPCBjb21wdXRlcjsKK+eqgeeZvCA8IG91dGJ1cnN0Owor5LCfIDwgdGhlXC1zb3VsOwor5K+qIDwgYmlnXC1oZWFkOwor5L+h5b6SIDwgYmVsaWV2ZXI7Civkr5ogPCB0aGVcLXJpYnM7Civkr4kgPCB0b1wtY2hva2U7Civnmb3mnKjogLMgPCB0cmVtZWxsYTsKK+aJk+aOgyA8IHRvXC1jbGVhbjsKK+aKgOW3pSA8IG1lY2hhbmljOwor5oyB5LmFIDwgZHVyYXRpb247CivkrbEgPCBhXC1saXR0bGU7Civpoqjou4ogPCB3aW5kbWlsbDsKK+eNqOijgeiAhSA8IGRpY3RhdG9yOwor5KyJIDwgaG90XC13aW5kOwor5Ku3IDwgdGhlXC1qb3dsOwor5omL5o+QIDwgcG9ydGFibGU7CivkuI3pnYggPCBub3RcLXdvcms7Civkq4MgPCB0aGVcLWxpcHM7CivkqrYgPCB0aGVcLWNoaW47CivkqqkgPCB0b1wtY2hhbnQ7CivkqpwgPCBhXC1zaGllbGQ7CivkqpEgPCB0b1wtc3RpY2s7CivkqoUgPCBhXC1xdWl2ZXI7CivkqaAgPCBhXC1naXJkbGU7CivkqYkgPCB0aGVcLWZhY2U7CivkqYggPCBhXC1wbHVtcHk7CivkqLwgPCBkeWVzdHVmZjsKK+eUn+WtmCA8IHRvXC1leGlzdDsKK+izpueohSA8IHRheGF0aW9uOwor5KerIDwgYVwtdHJlbmNoOwor5KeBIDwgdG9cLWxlYXZlOwor5rW06KGjIDwgYmF0aHJvYmU7CivkuIDpnaIgPCBvbmVcLXNpZGU7Civkpa0gPCBldmlkZW5jZTsKK+aBkOm+jSA8IGRpbm9zYXVyOwor6KiY6YyE5ZOhIDwgcmVjb3JkZXI7CivkpL8gPCB0b1wtY2FydmU7CivkpLYgPCBhXC1oYW1tZXI7CivkpLMgPCBhXC1taXJyb3c7Civlt7Tlt7TlpJrmlq8gPCBiYXJiYWRvczsKK+SkqyA8IGFcLWNoaXNlbDsKK+SkkCA8IHRvXC1kcmluazsKK+eVq+WDjyA8IHBvcnRyYWl0Owor55W25L2cIDwgdHJlYXRcLWFzOwor56au6LKMIDwgY291cnRlc3k7CivkopAgPCB0b1wtZ29cLXRvOwor6JiH5qC86JitIDwgc2NvdGxhbmQ7Civkv6HlsIEgPCBlbnZlbG9wZTsKK+SgviA8IHRvXC1kb2RnZTsKK+SgrCA8IGluc29tbmlhOwor5KCeIDwgd3JpbmtsZWQ7CivogbLnqLEgPCB0b1wtY2xhaW07CivkoIEgPCB0b1wtZ29cLXVwOwor5J+4IDwgdGhlXC1jYWxmOwor5bCN5omLIDwgb3Bwb25lbnQ7Civkv6HlroggPCBhYmlkZVwtYnk7Civknq4gPCB0b1wtY3Jhd2w7CivogZbntIQgPCBjb3ZlbmFudDsKK+agoeatoyA8IHJlZ3VsYXRlOwor5J2CIDwgdG9cLWVyZWN0Owor5JysIDwgYVwtY2F2ZXJuOwor5JyYIDwgdG9cLWd1YXJkOwor5JyQIDwgdG9cLWxpYmVsOwor5JyDIDwgdG9cLWJsYW1lOwor5JuSIDwgdG9cLWFyZ3VlOwor6YeN6bueIDwgZW1waGFzaXM7Civkm4cgPCB0b1wtbGF1Z2g7CivkmrcgPCB0b1wtdHJlYXQ7Civkmq8gPCB0b1wtcXVlbGw7Civogb3nnL4gPCBhdWRpZW5jZTsKK+iRoeiQhOWckiA8IHZpbmV5YXJkOwor5JirIDwgb2xkXC1yYWdzOwor5JicIDwgYVwtbmFwa2luOwor5JiJIDwgc2lsa3dvcm07CivpqI7luKsgPCBob3JzZW1hbjsKK+enp+iLlyA8IHNlZWRsaW5nOwor5JeYIDwgYVwtd2VldmlsOwor5JeIIDwgYVwtZ2FkZmx5Owor5L2/6IiI5aWuIDwgZXhjaXRpbmc7Civkl4cgPCB0aGVcLXRvYWQ7CivklrsgPCBlcGhlbWVyYTsKK+SWpCA8IHRvXC1jcmVlcDsKK+SWmyA8IG9mXC10aWdlcjsKK+esrOWNgeS4gCA8IGVsZXZlbnRoOwor5oGt6aCGIDwgZGVmZXJlbnQ7CivpjbXmp70gPCBrZXlcLXNsb3Q7Civos7zniakgPCBzaG9wcGluZzsKK+WWruaTmiA8IHJlY2VpcHRzOwor5pyD6K6KIDwgdmFyaWFibGU7Civkk5UgPCBwb2x5Z2FsYTsKK+SSsyA8IGFcLWZsb3dlcjsKK+WwkeW5tCA8IGp1dmVuaWxlOwor6aiZ5a2QIDwgc3dpbmRsZXI7Civoga/nm58gPCBhbGxpYW5jZTsKK+SRmCA8IHRvXC1wb3VuZDsKK+SRgyA8IGRpbVwtbW9vbjsKK+SQkiA8IG5vdFwtZmluZTsKK+aWueeoi+W8jyA8IGVxdWF0aW9uOwor6Lev5Y+jIDwgY3Jvc3Npbmc7Civkj58gPCBmYXRcLW1lYXQ7CivomZXnvbAgPCBwZW5hbGl6ZTsKK+SPiSA8IHRvXC13YXZlcjsKK+SPiCA8IHRvXC11bml0ZTsKK+mHkemtmiA8IGdvbGRmaXNoOwor5I6yIDwgZWFyXC1sb2JlOwor5I6jIDwgYVwtcGxvdWdoOwor5b2r5Yi75a62IDwgc2N1bHB0b3I7CivkjLcgPCBhXC10aHJlYWQ7CivkjK8gPCBhXC10cnViYW47CivkjKsgPCBhXC1oYXdzZXI7CivlkKvph48gPCBjb250ZW50czsKK+SMgyA8IHJhd1wtc2lsazsKK+mYv+aJmOWTgSA8IGF0cm9waW5lOwor5IuhIDwgdG9cLXJlbGF4Owor5IuDIDwgc3Rpbmdpbmc7CivkirggPCB0b1wtdHdpc3Q7Civkip0gPCB0b1wtZXhpbGU7CivnlKjlip8gPCBkaWxpZ2VudDsKK+SKgSA8IGxlYXZpbmdzOwor5Im7IDwgcmVkXC1yaWNlOwor5ImxIDwgYVwtY3JhZGxlOwor5ImSIDwgYVwtd2lubm93Owor5Ii2IDwgYW5cLWFycm93Owor5Zyw5Y2A5oCnIDwgcmVnaW9uYWw7Civkh4wgPCB0b1wtc3RhbmQ7CivkhrggPCBzcGFjaW91czsKK+ethuWQjSA8IHBlblwtbmFtZTsKK+S9m+aVmSA8IGJ1ZGRoaXNtOwor5Y+v6Z2gIDwgcmVsaWFibGU7CivkuInop5LlvaIgPCB0cmlhbmdsZTsKK+Wvk+aJgCA8IGR3ZWxsaW5nOwor5IORIDwgc3BlY2tsZXM7CivkgaUgPCB0b1wtYmxpbms7CivkgZwgPCBiaWdcLWV5ZXM7CivnlLHkvZkgPCBvd2luZ1wtdG87CivkgIggPCBhXC12ZXNzZWw7Civjv6IgPCB0b1wtc2hpbmU7Civjv6EgPCBhXC1oZWxtZXQ7Civjv4ggPCBhblwtdWxjZXI7Civjv4UgPCByaW5nd29ybTsKK+O+uCA8IGFcLXNjYWJieTsKK+mggemdoiA8IHdlYlwtcGFnZTsKK+O+jSA8IGRpc2Vhc2VzOwor4725IDwgdG9cLWZhaW50Owor5ri05pybIDwgZGVzaXJvdXM7CivmnKzog70gPCBpbnN0aW5jdDsKK+WXnOWlvSA8IGZvbmRuZXNzOwor57WC56uv55So5oi2IDwgZW5kXC11c2VyOwor5aKo5rC055O25p62IDwgaW5rc3RhbmQ7CivjupogPCBhblwtb3R0ZXI7Civoqpjmi5DogIUgPCBhYmR1Y3RvcjsKK+e8uumZtyA8IGFcLWRlZmVjdDsKK+O6hyA8IGFcLXdhcmRlbjsKK+O5uCA8IHRoZVwtbGlvbjsKK+ibi+auvCA8IGVnZ3NoZWxsOwor5oiy5YqH5oCnIDwgZHJhbWF0aWM7Civmh7LnvbDmgKcgPCBwdW5pdGl2ZTsKK+O4nSA8IGFcLXNob3ZlbDsKK+WFq+inkualkyA8IGFsYW5naXVtOwor47eAIDwgc29saXRhcnk7CivjtrwgPCB2ZXJ5XC1ob3Q7CivjtLYgPCB0b1wtd2F0ZXI7Civmu5HlhrAgPCB0b1wtc2thdGU7CivjtIogPCBhblwtYWJ5c3M7Civjs6sgPCByZXBlYXRlZDsKK+OzkiA8IHN0YXR1dGVzOwor5YyX5rW36YGTIDwgaG9ra2FpZG87CivjsrcgPCBuaXRyb2dlbjsKK+OysyA8IHRvXC10b3VjaDsKK+Wul+aVmSA8IHJlbGlnaW9uOwor5L2O5oiQ5pysIDwgbG93XC1jb3N0Owor47G/IDwgdGhlXC1odXNrOwor47G6IDwgdGhlXC1za2luOwor47GiIDwgdGhlXC1kZWFkOwor47GXIDwgYVwtYnJlYXRoOwor5ZG96ISIIDwgbGlmZWxpbmU7CivkuYPoh7MgPCBhbmRcLWV2ZW47Civnp5/nqIUgPCBsYW5kXC10YXg7CivkuI3ooYwgPCB3b24nJ3RcLWRvOwor5a6I5pmCIDwgcHVuY3R1YWw7Civjrq0gPCBhXC1jYXNrZXQ7CivmmpfovYkgPCBibGFja291dDsKK+aJk+WNsCA8IHRvXC1wcmludDsKK+OspyA8IGFcLWNvbGxhcjsKK+aYjuS/oeeJhyA8IHBvc3RjYXJkOwor5pWR6LSW5Li7IDwgcmVkZWVtZXI7Civjq70gPCBkYXJrbmVzczsKK+OqkCA8IHVuc3RhYmxlOwor6LKC55quIDwgbWlua1wtZnVyOwor46moIDwgdG9cLWNyYWNrOwor46mTIDwgdG9cLXdvdW5kOwor6Yar6ZmiIDwgaG9zcGl0YWw7CivjqJMgPCB0b1wtY2xvc2U7CivjqIEgPCB0b1wtdGhyb3c7Civjp7UgPCB0b1wtZXhhY3Q7Civjp7EgPCB0b1wtYnJpbmc7Civms7PooaMgPCBzd2ltc3VpdDsKK+OmvyA8IGFcLXdpbmRvdzsKK+a3muawtCA8IHRlYXJkcm9wOwor55Sf5ZG95YqbIDwgdml0YWxpdHk7CivjpbAgPCBtb3VybmZ1bDsKK+OlgSA8IG1vcmFsaXR5Owor46SuIDwgYW5cLWVycm9yOwor46SPIDwgZ3JpZXZvdXM7CivogonmoYIgPCBjaW5uYW1vbjsKK+OjqyA8IHRoZVwtaGVlbDsKK+a4m+aOiSA8IHN1YnRyYWN0Owor46OeIDwgdG9cLXdhbGtpOwor6by754KOIDwgcmhpbml0aXM7CivjoLkgPCBhXC10dXJiYW47CivnlKLph4/lpJogPCBmcnVpdGZ1bDsKK+eci+WuiOiAhSA8IHdhdGNobWFuOwor46CKIDwgYVwtcnVnZ2VkOwor5rOV5Yip6LO95Lq6IDwgcGhhcmlzZWU7CivjnrcgPCBsdXh1aWFudDsKK+WQkeilvyA8IHdlc3R3YXJkOwor5Y+b6YCGIDwgdG9cLXJlYmVsOwor456RIDwgdGhlXC10YWlsOwor456JIDwgYmlnXC1mb290Owor452tIDwgdG9cLWF3YWtlOwor452YIDwgaGFybW9ub3k7CivjnLYgPCBhXC1jb3VwbGU7CivmiLDljYAgPCB3YXJcLXpvbmU7Civlj7HosqwgPCByZXByb2FjaDsKK+S9lOmgmOiAhSA8IG9jY3VwYW50Owor56eR576F5ouJ5aSaIDwgY29sb3JhZG87Civosp7mvZQgPCBjaGFzdGl0eTsKK+OZoiA8IGFcLXRyb3dlbDsKK+OZgyA8IGFcLWNhdml0eTsKK+agl+WtkCA8IGNoZXN0bnV0Owor45iZIDwgdG9cLWdyb2FuOwor45iAIDwgdG9cLXNvdW5kOwor5Lit57m8IDwgdG9cLXJlbGF5Owor45eqIDwgbW91dGhmdWw7Civjl5wgPCB0b1wtc21lbGw7Civjl4kgPCBpbmNpc2l2ZTsKK+OWqSA8IG5vdFwtcHVyZTsKK+OVvCA8IHRvXC1icmF3bDsKK+mOruWNgCA8IHRvd25zaGlwOwor45WbIDwgYVwtZnJpZW5kOwor45WQIDwgaW5jbGluZWQ7CivjlYogPCB0b1wtc2xhbnQ7Civmnb/msrkgPCBsZWFmXC1mYXQ7CivljKrlvpLpm4blnJggPCBnYW5nc3RlcjsKK+OTkyA8IHRoaW5cLWljZTsKK+OSuSA8IHRvXC11cHNldDsKK+aHuOWegiA8IG92ZXJoYW5nOwor5bCE6aC75Zmq6Z+zIDwgcmZcLW5vaXNlOwor6YWS6ay8IDwgZHJ1bmthcmQ7CivkuI3ogpYgPCB1bndvcnRoeTsKK+ePreapnyA8IGFpcmxpbmVyOwor45CcIDwgYW5cLWVuZW15Owor5L2/5ZCD6amaIDwgYXN0b25pc2g7CivnqpflrZAgPCBjYXNlbWVudDsKK+aHieWwjSA8IHJlc3BvbnNlOwor5Lqk5rWBIDwgZXhjaGFuZ2U7Civlj5voroogPCByZW5lZ2FkZTsKK+aIsOS6iyA8IGZpZ2h0aW5nOwor5bm45a2Y6ICFIDwgc3Vydml2b3I7CivkurrpgZPkuLvnvqkgPCBodW1hbmlzbTsKK+S4gOW/g+S4gOaEjyA8IGludGVudGx5Owor5qu76Iqx6I2JIDwgcHJpbXJvc2U7CivmoLjlh4YgPCBzYW5jdGlvbjsKK+aYn+acn+WbmyA8IHRodXJzZGF5Owor5rG65a6a5oCnIDwgZGVjaXNpdmU7Civml6XogLPmm7wgPCBnZXJtYW5pYzsKK+ittOiyrCA8IGRlbm91bmNlOwor5qGI5Lu2IDwgbGF3XC1jYXNlOwor5bm+5L2V5a24IDwgZ2VvbWV0cnk7Civlp7vopqogPCBhZmZpbml0eTsKK+adkeawkSA8IHZpbGxhZ2VyOwor5oW35oWoIDwgdmVoZW1lbnQ7Civoq5bpu54gPCBhcmd1bWVudDsKK+WCvuWQkeaWvCA8IHByb25lXC10bzsKK+m7g+eTnCA8IGN1Y3VtYmVyOwor5pqX6IeqIDwgaW53YXJkbHk7Civmh4rllqogPCBkZWplY3RlZDsKK+eogOaciSA8IHVuY29tbW9uOwor6aOb5qmfIDwgYWlycGxhbmU7CivlrqTlj4sgPCByb29tbWF0ZTsKK+iytuaKkSA8IGJlbGl0dGxlOwor6IOM5YyFIDwga25hcHNhY2s7Civnsr7npZ7pjK/kuoIgPCBpbnNhbml0eTsKK+m7qOa0viA8IHBhcnRpc2FuOwor5a2Q5bGkIDwgc3VibGF5ZXI7Civpo7LmlpkgPCBiZXZlcmFnZTsKK+S4ieaciOS6jOWNgeS4gOiZnyA8IG1hcmNoXC0yMTsKK+S6uuaJiyA8IG1hbnBvd2VyOwor5pif5pyf5YWtIDwgc2F0dXJkYXk7CivpmLLlrojogIUgPCBkZWZlbmRlcjsKK+S6jOaciCA8IGZlYnJ1YXJ5Owor5rKS6JC9IDwgZG93bmZhbGw7CivlkKvnorMgPCBjYXJib25pYzsKK+WYieW5tOiPr+acgyA8IGNhcm5pdmFsOwor5pyA54K6IDwgdGhlXC1tb3N0Owor5Y2a6Iyo55Om57SNIDwgYm90c3dhbmE7CivkuI3nlKggPCBuZWVkXC1ub3Q7CivpoqjmsLQgPCBmZW5nc2h1aTsKK+awtOi3ryA8IHdhdGVyd2F5Owor5a2Q5aWzIDwgY2hpbGRyZW47CivkuovmlYUgPCBhY2NpZGVudDsKK+WIuua/gOeJqSA8IHN0aW11bHVzOwor5aOf5pa36LKp6LOjIDwgbW9ub3BvbHk7CivkuI3njaggPCBub3RcLW9ubHk7CivlpaflhYvmi4nojbfppqwgPCBva2xhaG9tYTsKK+WtteWMliA8IGJyZWVkaW5nOwor6Z6t6J+yIDwgd2hpcHdvcm07CivkuI3niL0gPCBub3RcLXdlbGw7Civkv53liqDliKnkup4gPCBidWxnYXJpYTsKK+aHguS6iyA8IHNlbnNpYmxlOwor6aOf5oW+IDwgYXBwZXRpdGU7CivpnIfpqZogPCB0b1wtc2hvY2s7CivlkLjnhZkgPCB0b1wtc21va2U7CivorJ3orJ0gPCB0b1wtdGhhbms7CivkuI3mv58gPCBub3RcLWdvb2Q7CivpoK3nl5sgPCBoZWFkYWNoZTsKK+aal+ebkiA8IG1hZ2F6aW5lOwor5Lit5q2iIDwgdG9cLWNlYXNlOwor6Kyb6KmxIDwgYVwtc3BlZWNoOwor5p6X5ZywIDwgd29vZGxhbmQ7Civmnrbli6IgPCBhdHRpdHVkZTsKK+iytOaXj+i6q+S7vSA8IGxvcmRzaGlwOwor5LiN5L+h55SoIDwgZGlzdHJ1c3Q7CivlpKrplbcgPCBvdmVyc2l6ZTsKK+WLoumgrSA8IG1vbWVudHVtOwor5oSa5byEIDwgZGVyaXNpb247CivlvoDpgoQgPCBjb250YWN0czsKK+ekpueUoiA8IG1pbmVyYWxzOwor5o+Q5L6b6Ku4IDwgcHJvdmlkZXI7CivniJDpgoogPCBmaXJlc2lkZTsKK+iCjOiCieeZvOmBlCA8IG11c2N1bGFyOwor5bel56iL5birIDwgZW5naW5lZXI7CivorornqK4gPCBtdXRhdGlvbjsKK+S4ree5vOWZqCA8IHJlcGVhdGVyOwor6KuW6L+wIDwgdHJlYXRpc2U7CivmtIvnkLXnkLYgPCBtYW5kb2xpbjsKK+iBluWMliA8IHNhbmN0aWZ5Owor5oOh5L2c5YqHIDwgbWlzY2hpZWY7Civph43nlLMgPCByZWFmZmlybTsKK+aatOa0qiA8IGFcLXN1ZGRlbjsKK+WtkOWNiOe3miA8IG1lcmlkaWFuOwor6KO95L2c6ICFIDwgcHJvZHVjZXI7CivkuI3lnKjkuY4gPCBub3RcLW1pbmQ7CivppKHlhZIgPCBzdHVmZmluZzsKK+mfs+aoguWutiA8IG11c2ljaWFuOwor5L2/6bq755e6IDwgcGFyYWx5emU7CivljYPlrZfnr4AgPCBraWxvYnl0ZTsKK+iuiumYu+WZqCA8IHRoZW9zdGF0Owor5rWB5oSf55ar6IuXIDwgZmx1XC1zaG90Owor5rW35aSWIDwgb3ZlcnNlYXM7CivnjovlrrYgPCBwcmluY2VseTsKK+WTqOWFtSA8IHNlbnRpbmVsOwor5oOz5a62IDwgaG9tZXNpY2s7CivosrfkuLsgPCBjdXN0b21lcjsKK+mgkOa4rCA8IGZvcmVjYXN0Owor576O5pelIDwgdXNcLWphcGFuOwor6LKg5YK1IDwgaW5kZWJ0ZWQ7Civpm6jph48gPCByYWluZmFsbDsKK+WPuOazlSA8IGp1ZGljaWFsOwor5aWz5oi/5p2xIDwgbGFuZGxhZHk7Civlt6XkvZzpgY7luqYgPCBvdmVyd29yazsKK+WKoOmVtyA8IGxlbmd0aGVuOwor5ZCQ5qOEIDwgdG9cLXNwdXJuOwor6JmV5YiGIDwgZGlzcG9zYWw7Civml6Xnvo4gPCBqYXBhblwtdXM7Civlop7pq5ggPCBoZWlnaHRlbjsKK+mBsumgkyA8IGluYWN0aXZlOwor6LKh5Li7IDwgcmljaFwtbWFuOwor5aSi6KmxIDwgZGF5ZHJlYW07Civmj5DkvpvogIUgPCBzdXBwbGllcjsKK+S4jeaHiCA8IHVudGlyaW5nOwor5pyA5bCRIDwgc21hbGxlc3Q7CivloIXlm7rmgKcgPCBmaXJtbmVzczsKK+itt+eFpyA8IHBhc3Nwb3J0Owor5Li75a6wIDwgZG9taW5hdGU7CivlpKLoposgPCB0b1wtZHJlYW07CivkuI3mgJUgPCBmZWFybGVzczsKK+aylua0lyA8IHRvXC1yaW5zZTsKK+S4jeW+iCA8IG5vdFwtdmVyeTsKK+eZveWMlueXhSA8IGFsYmluaXNtOwor5Ym36ZmkIDwgcm9vdFwtb3V0Owor56We5oCnIDwgZGl2aW5pdHk7CivnuL3oo4EgPCBjaGFpcm1hbjsKK+ayiea1uCA8IHBlcm1lYXRlOwor56ys5YWt5Y2BIDwgc2l4dGlldGg7Civnvo7lvrcgPCBhXC12aXJ0dWU7Civpm4Tovq8gPCBlbG9xdWVudDsKK+m7nuWQjSA8IHJvbGxjYWxsOwor6LGq5L+gIDwgY2F2YWxpZXI7CivmlofmmI7ljJYgPCBjaXZpbGl6ZTsKK+WkluiZnyA8IG5pY2tuYW1lOwor5rW35LiKIDwgbWFyaXRpbWU7CivnhrHoqqAgPCBkZXZvdGlvbjsKK+WQiOaIkCA8IGNvbXBvdW5kOwor5aSW5Lqk5a6YIDwgZGlwbG9tYXQ7CivlkIzmhI8gPCB0b1wtYWdyZWU7CivlkJHlvowgPCBiYWNrd2FyZDsKK+acjeWLmSA8IHRvXC1zZXJ2ZTsKK+awkeecviA8IHBvcHVsYWNlOwor5aiB5pybIDwgcHJlc3RpZ2U7CivmtLvli5UgPCBhY3Rpdml0eTsKK+WPm+aVmSA8IGFwb3N0YWN5Owor55m96Zuy55+zIDwgZG9sb21pdGU7CivlpKfog70gPCBhbG1pZ2h0eTsKK+aZguapnyA8IG9jY2FzaW9uOwor5Y+N5pigIDwgcmVhY3Rpb247CivmlofogbcgPCBjaXZpbGlhbjsKK+WpmuWrgSA8IG1hcnJpYWdlOwor5ZCb5a2QIDwgbm9ibGVtYW47CivnibnmtL4gPCBkaXNwYXRjaDsKK+S9v+e/kuaFoyA8IGFjY3VzdG9tOwor5LiA5ZyYIDwgcmVnaW1lbnQ7Civmkq3pn7MgPCB0cmFuc21pdDsKK+WPsOW6pyA8IHBlZGVzdGFsOwor6YGO6LyJIDwgb3ZlcmxvYWQ7CivnpZblnIsgPCBob21lbGFuZDsKK+azsOWciyA8IHRoYWlsYW5kOwor6Kej6ZaLIDwgdG9cLXVudGllOwor5oSb5Zug5pav5Z2mIDwgZWluc3RlaW47CivmmpflrqQgPCBkYXJrcm9vbTsKK+WltueJmyA8IG1pbGtcLWNvdzsKK+WGsOaZtuefsyA8IGNyeW9saXRlOwor5bm06Z2SIDwgeW91dGhmdWw7CivkuIDlkaggPCBvbmVcLXdlZWs7CivkuIDlkJEgPCBhbGxcLWxvbmc7Civmm53lhYkgPCBleHBvc3VyZTsKK+S4jeWwj+W/gyA8IGhlZWRsZXNzOwor57SN56iF5Lq6IDwgdGF4cGF5ZXI7CivnhKHoq5bkvZXomZUgPCBhbnl3aGVyZTsKK+WGjeWHuuePviA8IHJlYXBwZWFyOwor5LiA5YyZIDwgc3Bvb25mdWw7CivnoJTnqbYgPCByZXNlYXJjaDsKK+aAoOaDsCA8IGlkbGVuZXNzOwor5YyF55quIDwgd3JhcHBpbmc7CivpnaDog4zmpIUgPCBhcm1jaGFpcjsKK+WlieePviA8IG9mZmVyaW5nOwor5LiN5YCmIDwgdGlyZWxlc3M7Civmk43kvZzogIUgPCBvcGVyYXRvcjsKK+ioguizvCA8IHRvXC1vcmRlcjsKK+e1sueLgOeJqSA8IGZpbGFtZW50Owor5paR55m9IDwgZ3JpenpsZWQ7CivmmrTlipsgPCB2aW9sZW5jZTsKK+itpuaDlSA8IHZpZ2lsYW50Owor5rOi5YuVIDwgdW5kdWxhdGU7CivlpYfnibkgPCBwZWN1bGlhcjsKK+W/oOaWvCA8IGxveWFsXC10bzsKK+eZvOaYjuWutiA8IGludmVudG9yOwor6YG46IiJIDwgdG9cLWVsZWN0Owor5aSn6KW/5rSLIDwgYXRsYW50aWM7Civpn4zluLYgPCBsaWdhbWVudDsKK+i/tyA8IGJld2l0Y2g7Civov7AgPCBuYXJyYXRlOwor6L+lIDwgZGlzdGFudDsKK+S4rSA8IGNlbnRyYWw7Civlv5cgPCBwdXJwb3NlOwor6L+OIDwgcmVjZWl2ZTsKK+W/jCA8IGplYWxvdXM7CivlkowgPCBoYXJtb255Owor6L6vIDwgZGlzcHV0ZTsKK+WOuyA8IGdvXC1hd2F5Owor5a+5IDwgY29ycmVjdDsKK+eeoCA8IGxvb2tcLWF0Owor5b6LIDwgc3RhdHV0ZTsKK+W9uSA8IHNlcnZpY2U7CivlvLUgPCBzdHJldGNoOwor5beyIDwgYWxyZWFkeTsKK+W8mCA8IGVubGFyZ2U7CivlvJUgPCB0b1wtcHVsbDsKK+W8lCA8IGNvbmRvbGU7CivovIMgPCBjb21wYXJlOwor5oSPIDwgdGhvdWdodDsKK+i/myA8IGFkdmFuY2U7Civnm6EgPCBleGhhdXN0Owor5buJIDwgdXByaWdodDsKK+aDhSA8IGZlZWxpbmc7CivnmrAgPCBwaW1wbGVzOwor5bqWIDwga2l0Y2hlbjsKK+i6kyA8IHN0dW1ibGU7CivluoQgPCB2aWxsYWdlOwor5bm2IDwgY29tYmluZTsKK+i5oCA8IHN0ZXBcLW9uOwor55mWIDwgY3JhdmluZzsKK+W5lSA8IGN1cnRhaW47Civku6MgPCByZXBsYWNlOwor5birIDwgdGVhY2hlcjsKK+aAuyA8IGNvbGxlY3Q7Civnl7QgPCBmb29saXNoOwor5Y2OIDwgZmxvd2VyeTsKK+eXhyA8IGRpc2Vhc2U7Civnl4UgPCBpbGxuZXNzOwor5Y+NIDwgcmV2ZXJzZTsKK+eWjiA8IG5lZ2xlY3Q7CivliqEgPCBhZmZhaXJzOwor5bSpIDwgcnVwdHVyZTsKK+eJuSA8IHNwZWNpYWw7CivmnI0gPCBjbG90aGVzOwor6LO9IDwgY29tcGV0ZTsKK+izkSA8IHJlbGlldmU7Civnp5EgPCBzZWN0aW9uOwor6LGrIDwgcmVsYXhlZDsKK+iBlCA8IGNvbm5lY3Q7Civkv50gPCBwcm90ZWN0Owor6Z2pIDwgbGVhdGhlcjsKK+WwiiA8IHJlc3BlY3Q7Civlk4EgPCBhcnRpY2xlOwor5bCJIDwgb2ZmaWNlcjsKK+WjqyA8IHNjaG9sYXI7Civph48gPCBtZWFzdXJlOwor56iLIDwgam91cm5leTsKK+WvqSA8IGV4YW1pbmU7CivmnoEgPCBleHRyZW1lOwor5LukIDwgY29tbWFuZDsKK+acqiA8IG5vdFwteWV0Owor5oyBIDwgc3VzdGFpbjsKK+WOhiA8IGhpc3Rvcnk7CivlrqMgPCBkZWNsYXJlOwor5a6XIDwgbGluZWFnZTsKK+iuriA8IGNvbnN1bHQ7CivnjocgPCB0b1wtbGVhZDsKK+WnlCA8IGFwcG9pbnQ7CivlhbUgPCBzb2xkaWVyOwor5a2UIDwgb3BlbmluZzsKK+isuSA8IHBydWRlbnQ7CivorJsgPCBleHBsYWluOwor5qC8IDwgcGF0dGVybjsKK+iruCA8IHNldmVyYWw7Civoq6YgPCBjYXJlZnVsOwor5oCVIDwgdG9cLWZlYXI7Civni6EgPCBjdW5uaW5nOwor5YeGIDwgYXBwcm92ZTsKK+eyviA8IGVzc2VuY2U7Civnq58gPCBmaW5hbGx5Owor6KqgIDwgc2luY2VyZTsKK+aVtCA8IG9yZGVybHk7CivlqYkgPCBhbWlhYmxlOwor5aSHIDwgcHJlcGFyZTsKK+WPpiA8IGFub3RoZXI7CivpmYggPCBleGhpYml0Owor5pWFIDwgYW5jaWVudDsKK+iomyA8IHN3aW5kbGU7CivoqJcgPCBlbnRydXN0Owor6KiKIDwgaW5xdWlyZTsKK+eIhiA8IGNyYWNrbGU7CivmibkgPCBjb21tZW50Owor6YCBIDwgc2VlXC1vZmY7CivlpYcgPCBzdHJhbmdlOwor54eVIDwgc3dhbGxvdzsKK+eHiCA8IGxhbnRlcm47CivmuLggPCB0b1wtc3dpbTsKK+S7vSA8IHBvcnRpb247CivmlaIgPCB0b1wtZGFyZTsKK+eFvSA8IHN0aXJcLXVwOwor5pydIDwgZHluYXN0eTsKK+iCsiA8IHByb2R1Y2U7Civlm74gPCBkaWFncmFtOwor5YiYIDwgc3VybmFtZTsKK+WklSA8IGV2ZW5pbmc7Civmib8gPCBpbmhlcml0Owor5LmhIDwgY291bnRyeTsKK+ijgSA8IGN1dFwtb3V0Owor5ryUIDwgcGVyZm9ybTsKK+iigiA8IHNsZWV2ZXM7CivoobAgPCBkZWNsaW5lOwor5aGeIDwgc3RvcFwtdXA7Civmma8gPCBzY2VuZXJ5Owor6KCiIDwgd3JpZ2dsZTsKK+S+nSA8IHJlbHlcLW9uOwor54CdIDwgdHJpY2tsZTsKK+iDnCA8IHZpY3Rvcnk7Civmv6EgPCBpbW1lcnNlOwor5r+fIDwgdG9cLWhlbHA7Civon4sgPCBjcmlja2V0Owor5ryGIDwgdmFybmlzaDsKK+a8gSA8IHRvXC1maXNoOwor5pWjIDwgc2NhdHRlcjsKK+ibhiA8IG1hZ2dvdHM7Civmm7IgPCBjcm9va2VkOwor5rq2IDwgdG9cLW1lbHQ7CivljoIgPCBmYWN0b3J5Owor6IKvIDwgd2lsbGluZzsKK+aKkyA8IHNjcmF0Y2g7CivomasgPCBpbnNlY3RzOwor5rmnIDwgd2VsbFwtdXA7CivpnaAgPCBsZWFuXC1vbjsKK+aOiCA8IGdpdmVcLXRvOwor5riHIDwgdGhpcnN0eTsKK+a3uiA8IHNoYWxsb3c7Civmt6sgPCBvYnNjZW5lOwor6beEIDwgY2hpY2tlbjsKK+WXhyA8IG1pc2VybHk7CivmirEgPCBlbWJyYWNlOwor552bIDwgZXllYmFsbDsKK+aLrCA8IGluY2x1ZGU7CivpmY0gPCBkZXNjZW5kOwor56eBIDwgcHJpdmF0ZTsKK+iUkSA8IGRpc2RhaW47Civms6EgPCBidWJibGVzOwor6Ze5IDwgcXVhcnJlbDsKK+mGkiA8IHdha2VcLXVwOwor5rKMIDwgY2hhb3RpYzsKK+aatCA8IHZpb2xlbnQ7CivmiqIgPCBwbHVuZGVyOwor56+HIDwgY2hhcHRlcjsKK+mxiCA8IGNvZGZpc2g7Civor7ggPCB2YXJpb3VzOwor5Y+tIDwgdHJ1bXBldDsKK+WPmSA8IGV4cHJlc3M7Civljq0gPCBkaXNsaWtlOwor6ZuFIDwgZWxlZ2FudDsKK+mbtyA8IHRodW5kZXI7Civnq54gPCBjb250ZW5kOwor5pONIDwgY29uZHVjdDsKK+ivuiA8IHByb21pc2U7CivljIYgPCBoYXN0aWx5Owor5qyFIDwgemVsa292YTsKK+iLuiA8IGJlcnJpZXM7Civoi5cgPCBzcHJvdXRzOwor56KwIDwgY29sbGlkZTsKK+iLkSA8IHBhc3R1cmU7Civku78gPCBpbWl0YXRlOwor5qmfIDwgbWFjaGluZTsKK+agjyA8IHJhaWxpbmc7CivliIggPCBjdXRcLW9mZjsKK+eLoCA8IHZpY2lvdXM7CivmmKAgPCBwcm9qZWN0Owor5b+gIDwgbG95YWx0eTsKK+aJjiA8IHB1bGxcLXVwOwor6IW5IDwgc3RvbWFjaDsKK+iIkiA8IG9wZW5cLXVwOwor5Ye2IDwgY3VscHJpdDsKK+aFsCA8IGNvbWZvcnQ7CivppJggPCBzdXJwbHVzOwor5pKSIDwgcmVsZWFzZTsKK+aEgSA8IGFueGlldHk7CivmlqQgPCBhXC1jYXR0eTsKK+WDkSA8IHNvam91cm47CivmibYgPCBzdXBwb3J0Owor5q+BIDwgZGVzdHJveTsKK+aisCA8IHdlYXBvbnM7Civov50gPCBkaXNvYmV5Owor5LiiIDwgZGlzY2FyZDsKK+iChiA8IGluZHVsZ2U7Civnu5UgPCBlbnR3aW5lOwor6IGzIDwgdXJnZVwtb247CivoiLAgPCB3YXJzaGlwOwor5oG8IDwgYW5nZXJlZDsKK+i+oyA8IHBlcHBlcnk7Civml4sgPCByZXZvbHZlOwor5YCJIDwgZ3JhbmFyeTsKK+e9miA8IHBlbmFsdHk7Civmi74gPCBwaWNrXC11cDsKK+aBoiA8IHJlc3RvcmU7Civnv4EgPCBvbGRcLW1hbjsKK+e+vSA8IGZlYXRoZXI7CivmipYgPCB0cmVtYmxlOwor5L6vIDwgbWFycXVpczsKK+aDkSA8IGNvbmZ1c2U7Civpm5UgPCBlbmdyYXZlOwor5a+/IDwgb2xkXC1hZ2U7CivplKYgPCBicm9jYWRlOwor5p2PIDwgYXByaWNvdDsKK+aFjCA8IG5lcnZvdXM7CivlsaAgPCBidXRjaGVyOwor5p+PIDwgY3lwcmVzczsKK+mcjSA8IHF1aWNrbHk7CivpmbYgPCBwb3R0ZXJ5Owor5pGEIDwgdGFrZVwtaW47Civpl68gPCBydXNoXC1pbjsKK+aJsCA8IGRpc3R1cmI7Civpm4AgPCBzcGFycm93Owor6ZiBIDwgY2hhbWJlcjsKK+WNoiA8IGNvdHRhZ2U7Civmn5wgPCBjYWJpbmV0Owor5pqHIDwgbGVpc3VyZTsKK+aEpyA8IGFzaGFtZWQ7CivmmbYgPCBjcnlzdGFsOwor5pmdIDwgZGF5dGltZTsKK+etiyA8IG11c2NsZXM7CivmkpEgPCBwcm9wXC11cDsKK+WhqyA8IGZpbGxcLWluOwor5pe6IDwgcHJvc3BlcjsKK+iAlyA8IGNvbnN1bWU7CivmgqYgPCBwbGVhc2VkOwor5paRIDwgbW90dGxlZDsKK+i3tSA8IHRyYW1wbGU7Civmg7YgPCBmZWFyZnVsOwor57C+IDwgYVwtYmxpbmQ7CivotKkgPCBwZWRkbGVyOwor5oiIIDwgaGFsYmVyZDsKK+mQkCA8IGZldHRlcnM7CivombkgPCByYWluYm93Owor5a+hIDwgd2lkb3dlZDsKK+mDiiA8IHN1YnVyYnM7Civlvr0gPCBhXC1iYWRnZTsKK+myjSA8IGFiYWxvbmU7CivnrIQgPCBoYWlycGluOwor5rK+IDwgbW9pc3RlbjsKK+eekiA8IGRlY2VpdmU7Civnq4MgPCBmdXJuYWNlOwor6KOUIDwgcHJvZ2VueTsKK+WMqiA8IGJhbmRpdHM7CivmppwgPCBwbGFjYXJkOwor5p6JIDwgdXNlbGVzczsKK+mqhyA8IHRlcnJpZnk7CivmkrAgPCBjb21wb3NlOwor5Z6DIDwgZ2FyYmFnZTsKK+mpvCA8IGFcLWNhbWVsOwor6LG5IDwgbGVvcGFyZDsKK+e8tCA8IGRlbGl2ZXI7Civlk6ggPCB3aGlzdGxlOwor5Zq8IDwgcHJhdHRsZTsKK+aYpyA8IG9ic2N1cmU7Civml7EgPCBkcm91Z2h0Owor6IGCIDwgd2hpc3BlcjsKK+iOvSA8IHRoaWNrZXQ7Civljq4gPCBzZXJ2YW50Owor6IyoIDwgY2FsdHJvcDsKK+eymCA8IHZpc2NvdXM7CivmnL0gPCBkZWNheWVkOwor54SVIDwgc2hpbmluZzsKK+eGhCA8IHB1dFwtb3V0Owor6YC+IDwgZ29cLW92ZXI7CivphosgPCB2aW5lZ2FyOwor5paMIDwgcmVmaW5lZDsKK+aBlSA8IGZvcmdpdmU7CivmsqYgPCBiZVwtbG9zdDsKK+WysSA8IGRhaXNoYW47CivorrMgPCBjb25jZWFsOwor5bKUIDwgZGl2ZXJnZTsKK+WekiA8IHJhbXBhcnQ7Civnv5ggPCB0dXJuXC11cDsKK+inkSA8IHBlZXBcLWF0Owor5ouOIDwgdG9cLWhhdWw7CivlmZwgPCB2ZXJib3NlOwor5Ye5IDwgY29uY2F2ZTsKK+aSqSA8IGxpZnRcLXVwOwor5bS9IDwgYVwtY2hpbGQ7CivmtoUgPCBibGFja2VuOwor57CMIDwgZmFsbGluZzsKK+ivmyA8IGV4ZWN1dGU7CivmjrMgPCBjYXB0dXJlOwor6aaFIDwgZmlsbGluZzsKK+ehhSA8IHNpbGljb247CivmiqggPCBpbXBlYWNoOwor6IK+IDwga2lkbmV5czsKK+mUrSA8IHNwaW5kbGU7CivojKwgPCBoYXJ2ZXN0Owor6LCkIDwgc2xhbmRlcjsKK+mSsyA8IHBpbmNlcnM7Civnnb0gPCBzdGFyaW5nOwor6ZixIDwgcGl0ZmFsbDsKK+axgCA8IHNhbmRiYXI7Civnp6QgPCBiYWxhbmNlOwor5pm+IDwgYWlyXC1kcnk7Civot5ogPCBzdGFnZ2VyOwor6I6eIDwgc21pbGluZzsKK+m4pSA8IHNlYWd1bGw7CivokYYgPCByZXNlcnZlOwor5rCiIDwgYW1tb25pYTsKK+W4pyA8IHBpY3R1cmU7Civkva8gPCBwcmV0ZW5kOwor54OsIDwgY2luZGVyczsKK+iajCA8IG95c3RlcnM7CivosIYgPCBwYXRpZW50Owor55meIDwgbGVwcm9zeTsKK+WVhCA8IHRvXC1wZWNrOwor54eOIDwgdG9cLWJ1cm47Civov7MgPCBwYXNzXC1ieTsKK+aBuCA8IHNhZG5lc3M7CivlkoIgPCB0b1wtc3VjazsKK+ebuSA8IHRvXC1kb3plOwor5L++IDwgc29cLXRoYXQ7CivosJogPCBwcm92ZXJiOwor5o64IDwgdG9cLWR1c3Q7CivljK4gPCB0b1wtbGFjazsKK+W5oSA8IHBlbm5hbnQ7Civlm7EgPCBjaGltbmV5Owor5bSCIDwgbGFvc2hhbjsKK+idjCA8IHRhZHBvbGU7Civpk4AgPCB1cmFuaXVtOwor5oybIDwgdGFuZ2xlZDsKK+e7ryA8IHNjYXJsZXQ7CivpuKggPCBidXN0YXJkOwor6JyXIDwgYVwtc25haWw7CivmgasgPCBpblwtcGFpbjsKK+iwgCA8IGZsYXR0ZXI7CivouK4gPCB0aXBcLXRvZTsKK+mmiiA8IHNwb2lsZWQ7CivpkpkgPCBjYWxjaXVtOwor5o2xIDwgcHV0XC1vZmY7Civokr8gPCBtdWd3b3J0Owor6YW2IDwgZW56eW1lczsKK+ihoiA8IGhpZ2h3YXk7Civno7ogPCBzdWxwaHVyOwor6LmpIDwgdG9cLWxpbXA7CivmtaMgPCB0b1wtd2FzaDsKK+eWuSA8IG1lYXNsZXM7CivpnaUgPCBkaW1wbGVzOwor5oSGIDwgYVwtZmF1bHQ7CivpuLUgPCBvc3RyaWNoOwor56qVIDwgc2xlbmRlcjsKK+i/qSA8IGJlXC1uZWFyOwor5L2wIDwgaHVuZHJlZDsKK+mSuSA8IGN5bWJhbHM7CivpnbwgPCB0YXJ0YXJzOwor54WyIDwgdG9cLWhlYXQ7CivnjZAgPCByb2VidWNrOwor5L2dIDwgcmlja2V0czsKK+iTnyA8IGNpcmNpdW07Civpu5wgPCBkaXNtaXNzOwor5pGIIDwgZXhjbHVkZTsKK+mjkyA8IGN5Y2xvbmU7Civog7EgPCBibGFkZGVyOwor6aW9IDwgZmVycnVsZTsKK+mmjyA8IGRpc3RpbGw7Civoi68gPCBiZW56ZW5lOwor5re8IDwgYVwtZmxvb2Q7Civpk7EgPCBpcmlkaXVtOwor6JGpIDwgZmxvd2VyczsKK+mAoSA8IHJldHJlYXQ7CivpgLYgPCB3aW5kaW5nOwor6JC4IDwgZG9nd29vZDsKK+aMnSA8IHRvXC1iZWF0Owor54a1IDwgZW50cm9weTsKK+eFqCA8IHRvXC1zdGV3Owor56CSIDwgYXJzZW5pYzsKK+aZgSA8IG1vcm5pbmc7Civlh4cgPCBkZXdkcm9wOwor5ZmYIDwgcG91dGluZzsKK+WUoyA8IGNoYXR0ZXI7CivpqqAgPCBjaGFyZ2VyOwor5oCEIDwgYW5ub3llZDsKK+mUgiA8IGxpdGhpdW07CivnlqUgPCBzY2FiaWVzOwor56iXIDwgZGFybmVsczsKK+a0riA8IGNsZWFuc2U7Civpha4gPCBrZXRvbmVzOwor6IWaIDwgYnV0dG9jazsKK+iFsSA8IHRlbmRvbnM7CivpppQgPCB0b1wtZmVlZDsKK+aQoCA8IHRvXC1kYXViOwor6YWhIDwgZmx1c2hlZDsKK+WRkiA8IHVuY2xlYXI7Civnl6cgPCBjaG9sZXJhOwor56ykIDwgYVwtYnJvb207Civpn6sgPCBzZWNyZXRlOwor5oCbIDwgZ3JpZXZlZDsKK+eatCA8IGNoYXBwZWQ7CivnnaIgPCBnYXplXC1hdDsKK+WhrCA8IHBsYXRlYXU7Civonq8gPCBuaXBwZXJzOwor542SIDwgbWFzdGlmZjsKK+ayhiA8IGFcLWZlcnJ5Owor5biUIDwgYVwtc2tpcnQ7CivoloUgPCB0b1wtd2VlZDsKK+iOtCA8IGxldHR1Y2U7Civmja0gPCB0b1wtb3BlbjsKK+iRrSA8IGJ1bHJ1c2g7CivlgKUgPCBib29yaXNoOwor5rq0IDwgYnJvbWluZTsKK+W7myA8IGFcLXN0b3JlOwor5o+4IDwgaGFuZGZ1bDsKK+S7tSA8IHNpbWlsYXI7Civpq4sgPCBoaXBib25lOwor6IKxIDwgZm9yZWFybTsKK+iajSA8IG11c3NlbHM7CivplZMgPCBnYWxsaXVtOwor6ZOLIDwgYmlzbXV0aDsKK+iDnSA8IGNhbGxvdXM7CivotY0gPCBwcmVzZW50Owor57+lIDwgdG9cLXNvYXI7CivonJ4gPCBncmFwc3VzOwor6LCgIDwgY291bnNlbDsKK+efrCA8IGFcLWR3YXJmOwor5rqyIDwgdXJpbmF0ZTsKK+iVuyA8IGJ1ZGRpbmc7CivpuYggPCBwZWxpY2FuOwor6ZWJIDwgY2FkbWl1bTsKK+ishyA8IHN0dXR0ZXI7CivmhrcgPCBwYWluZnVsOwor6LChIDwgcmlzZVwtdXA7CivopIogPCBjcmFtcGVkOwor6ZKNIDwgdGhvcml1bTsKK+awqiA8IGtyeXB0b247Civov64gPCB0b1wtcmlzZTsKK+iTjSA8IG1pbGZvaWw7Civonr0gPCBrYXR5ZGlkOwor5YmAIDwgc2hhcnBlbjsKK+i5gCA8IHRvXC1za2lwOwor6ZSOIDwgY2Flc2l1bTsKK+mShyA8IHl0dHJpdW07CivmsJogPCB0cml0aXVtOwor54q4IDwgbWFtbW90aDsKK+iPuCA8IHRvXC1mYWRlOwor6bKxIDwgaGVycmluZzsKK+i6niA8IHRvXC13YWxrOwor6ZOMIDwgbmlvYml1bTsKK+eVgCA8IHRvXC1naXZlOwor6YGYIDwgdG9cLW1lZXQ7Civms7cgPCByYWluaW5nOwor6JKhIDwgYnVyZG9jazsKK+mrjCA8IGtuZWVjYXA7Civps5kgPCBiaWdoZWFkOwor57W3IDwgY29uZmluZTsKK+eupiA8IGJlZFwtbWF0Owor55iYIDwgZmlzdHVsYTsKK+mVhCA8IGZlcm1pdW07CivnpYYgPCBvcm1hemRhOwor5augIDwgYVwtd2lkb3c7CivmkLQgPCBleHRyYWN0Owor5YOmIDwgdG9cLWhlaXI7Civnib3mia8gPCBpbnZvbHZlOwor55yL5b6X6KaLIDwgdmlzaWJsZTsKK+WpmuS6iyA8IHdlZGRpbmc7CivmqqLplrEgPCBpbnNwZWN0Owor6Ki06IumIDwgZ3J1bWJsZTsKK+acieizh+agvCA8IGVudGl0bGU7CivmmqvlgZwgPCBzdXNwZW5kOwor5q2h6L+O5YWJ6IeoIDwgd2VsY29tZTsKK+inuOinkiA8IGFudGVubmE7CivlnJPnn7PpoK0gPCBib3VsZGVyOwor57235LyRIDwgZ2l2ZVwtdXA7CivlpaflnLDliKkgPCBhdXN0cmlhOwor6KqN55yfIDwgZWFybmVzdDsKK+aZguWwmiA8IGZhc2hpb247CivniYjmnKwgPCB2ZXJzaW9uOwor5bqH6K23IDwgc2hlbHRlcjsKK+mFuOaApyA8IGFjaWRpdHk7Civnt6jnuoIgPCBjb21waWxlOwor5ZCb5Li7IDwgbW9uYXJjaDsKK+e4veeQhiA8IHByZW1pZXI7CivlpKnnhLYgPCBuYXR1cmFsOwor552h6KGjIDwgcGFqYW1hczsKK+aVtOeQhiA8IGFycmFuZ2U7CivnhZnojYkgPCB0b2JhY2NvOwor54em54ibIDwgZ2xpdHRlcjsKK+WPr+WLlSA8IG1vdmFibGU7CivmsLTmiYsgPCBtYXJpbmVyOwor5YKz6YGT6YOoIDwgbWlzc2lvbjsKK+WPo+WQgyA8IHN0YW1tZXI7CivlibXkuJbntIAgPCBnZW5lc2lzOwor6I+P6JitIDwgaG9sbGFuZDsKK+iPoOiPnCA8IHNwaW5hY2g7CivljYHmnIggPCBvY3RvYmVyOwor5Y2D5L2N5YWDIDwga2lsb2JpdDsKK+aPmuiBsuWZqCA8IHNwZWFrZXI7Civmr5vmr68gPCBibGFua2V0Owor566h55CG5ZOhIDwgbWFuYWdlcjsKK+mZveiHuiA8IGJhbGNvbnk7Civni4LllpwgPCBlY3N0YXN5Owor5rC45oGGIDwgZXRlcm5hbDsKK+iri+axgiA8IHJlcXVlc3Q7Civmtbfou43nuL3lj7jku6QgPCBhZG1pcmFsOwor5Ye66LWwIDwgdG9cLWZsZWU7CivogIHos4fmoLwgPCB2ZXRlcmFuOwor5pWI55uKIDwgYmVuZWZpdDsKK+mHjeWKmyA8IGdyYXZpdHk7Civph5HpioDloYogPCBidWxsaW9uOwor56K85a2XIDwgbnVtZXJhbDsKK+W8hOeijiA8IGNydW1ibGU7CivmspnkuIHprZogPCBzYXJkaW5lOwor5aeQ5aa5IDwgc2lzdGVyczsKK+ebrumMhCA8IGNhdGFsb2c7Civlv4PmhJsgPCBiZWxvdmVkOwor5byE55+tIDwgc2hvcnRlbjsKK+eEoeiZlSA8IG5vd2hlcmU7CivororljpogPCB0aGlja2VuOwor5aaW5oCqIDwgbW9uc3RlcjsKK+e3iue3iiA8IGNsb3NlbHk7CivpmrHnp4EgPCBwcml2YWN5Owor6Zec6Y21IDwgY3J1Y2lhbDsKK+Wnv+WLoiA8IHBvc3R1cmU7Civlronmj5Dnk5zls7YgPCBhbnRpZ3VhOwor5Zaq5b+D55eF54uCIDwgbHVuYXRpYzsKK+W8t+eDiCA8IGludGVuc2U7Civlpb3miLAgPCB3YXJsaWtlOwor5byE55q6IDwgY3J1bXBsZTsKK+ebuOmAoyA8IHRvXC1saW5rOwor5paH5rOVIDwgZ3JhbW1hcjsKK+WPpOS+hiA8IG9sZHRpbWU7CivlpKnmsKMgPCB3ZWF0aGVyOwor6YWS5bugIDwgYnJld2VyeTsKK+W+geacjSA8IGNvbnF1ZXI7CivntKLpgZMgPCByb3Bld2F5Owor6Zm457qMIDwgaW5cLXR1cm47CivpmrHnnp4gPCB0b1wtaGlkZTsKK+Wklua1gSA8IG91dGZsb3c7Civlt6XpoK0gPCBmb3JlbWFuOwor6YGg56uvIDwgZmFyXC1lbmQ7Civlh7rntI3lk6EgPCBjYXNoaWVyOwor5Yqg55ScIDwgc3dlZXRlbjsKK+mfs+S/oSA8IG1lc3NhZ2U7CivpmpznpJkgPCBiYXJyaWVyOwor6K2m5ZGKIDwgdG9cLXdhcm47CivnhLbogIwgPCBob3dldmVyOwor5aSn5qaCIDwgcm91Z2hseTsKK+aEm+mBiueOqSA8IHBsYXlmdWw7CivmoLzlrZDmo4nluIMgPCBnaW5naGFtOwor6Yu855C05a62IDwgcGlhbmlzdDsKK+mbu+axoCA8IGJhdHRlcnk7Civmr5TmlrkgPCBhbmFsb2d5Owor6KiI5pW46ICFIDwgY291bnRlcjsKK+mAgOiQvSA8IHN1YnNpZGU7CivororkuoIgPCB0dXJtb2lsOwor54ax5r2uIDwgdXBzdXJnZTsKK+ino+WJluWtuCA8IGFuYXRvbXk7CivmrLrnnp4gPCB0b1wtZm9vbDsKK+acieWtuOWVjyA8IGxlYXJuZWQ7CivorbDlg7kgPCBiYXJnYWluOwor57qW5byxIDwgZnJhZ2lsZTsKK+imi+itiSA8IHdpdG5lc3M7CivliqDnhrEgPCBoZWF0aW5nOwor5Y2K5ZCK5a2QIDwgZGFiYmxlcjsKK+mdnuW4uCA8IHVudXN1YWw7Civli4fmsKMgPCBjb3VyYWdlOwor5aSx5pWIIDwgdG9cLWZhaWw7CivlhYjpqYUgPCBwaW9uZWVyOwor54qv5Lq6IDwgY29udmljdDsKK+mbo+awkSA8IHJlZnVnZWU7CivpgbrniakgPCByZW1uYW50Owor5q+S5omTIDwgYmVhdFwtdXA7CivphpzkuosgPCBzY2FuZGFsOwor6ZmN57SaIDwgZGVncmFkZTsKK+eEpuezliA8IGNhcmFtZWw7CivmkZjopoEgPCBzdW1tYXJ5Owor6YCy56iLIDwgcHJvY2VzczsKK+aRlOinkiA8IHdyZXN0bGU7CivljIXmiY4gPCB3cmFwXC11cDsKK+W7oueJqSA8IHJ1YmJpc2g7CivlpKnoirHmnb8gPCBjZWlsaW5nOwor5q6Y5qCqIDwgc3R1YmJsZTsKK+WlveWlhyA8IGN1cmlvdXM7CivnmbvpmbggPCB0b1wtbGFuZDsKK+ebo+imliA8IG92ZXJzZWU7CivlvaLmiJAgPCB0b1wtZm9ybTsKK+e4veaVuCA8IGFcLXRvdGFsOwor5b635ZyLIDwgZ2VybWFueTsKK+e1see1sSA8IHRvdGFsbHk7CivlpKfnm6TlrZAgPCBwbGF0dGVyOwor54Sh56quIDwgZW5kbGVzczsKK+efruaelyA8IGNvcHBpY2U7CivlooPnlYwgPCBib3VuZHJ5Owor5LiN6IO95LiNIDwgaGF2ZVwtdG87CivlvITmraogPCBkaXN0b3J0Owor5Yaw6KKLIDwgaWNlXC1iYWc7Civlh7rlhaXlj6MgPCBnYXRld2F5Owor5raI6Ziy6ZqK5ZOhIDwgZmlyZW1hbjsKK+i1t+eauue0iyA8IHNocml2ZWw7CivplrHoroAgPCB0b1wtcmVhZDsKK+mDteW3riA8IHBvc3RtYW47CivpnaLlmq4gPCB0b1wtZmFjZTsKK+inuOeZvCA8IHRyaWdnZXI7CivngJ3pnZIgPCBhc3BoYWx0Owor5Y2z5L6/IDwgZXZlblwtaWY7CivlpKflu4ggPCBlZGlmaWNlOwor55m86YW1IDwgZmVybWVudDsKK+W5uOemjyA8IGJsZXNzZWQ7CivnhKHnm4ogPCBub1wtZ29vZDsKK+mYsuempiA8IGRlZmVuc2U7CivmrbfmmYIgPCB0b1wtbGFzdDsKK+aJmOWFkuaJgCA8IG51cnNlcnk7CivoibfntIXoibIgPCBjcmltc29uOwor54m56Kix54uAIDwgY2hhcnRlcjsKK+aLluabs+apnyA8IHRyYWN0b3I7CivniYjliLsgPCBjYXJ2aW5nOwor6YWN5YG2IDwgY29uc29ydDsKK+mgkOiogOWutiA8IHByb3BoZXQ7CivmlZHmj7QgPCB0b1wtc2F2ZTsKK+aXpeWHuiA8IHN1bnJpc2U7CivmsKPlgJkgPCBjbGltYXRlOwor57mD5bi2IDwgYmFuZGFnZTsKK+mAl+eVmSA8IHN0YXlcLWF0Owor5Yip55SoIDwgZXhwbG9pdDsKK+WNgOWNgCA8IHRyaXZpYWw7Civog4zlj5vogIUgPCB0cmFpdG9yOwor5b6u5YWJIDwgZ2xpbW1lcjsKK+avj+WknCA8IG5pZ2h0bHk7CivpgZXms5UgPCBpbGxlZ2FsOwor5Ye656efIDwgdG9cLXJlbnQ7Civpm4DmlpEgPCBmcmVja2xlOwor5aSn5L2/6aSoIDwgZW1iYXNzeTsKK+Wkp+iNieWOnyA8IHByYWlyaWU7CivniannkIblrbggPCBwaHlzaWNzOwor5pS25pOaIDwgcmVjZWlwdDsKK+WNgeWFrSA8IHNpeHRlZW47CivnuarlnJYgPCB0b1wtZHJhdzsKK+efpeaCiSA8IHRvXC1rbm93Owor54ax5oOFIDwgY29yZGlhbDsKK+WNgeWAjSA8IHRlbmZvbGQ7CivliZvmr5sgPCBicmlzdGxlOwor5qmr6IelIDwgcmVjbGluZTsKK+WIuua/gCA8IHByb3Zva2U7CivntpPmv58gPCBlY29ub215Owor57Sw56+AIDwgZGV0YWlsczsKK+aJs+S4jeWAkuWFkiA8IHR1bWJsZXI7CivmqILotqMgPCBkZWxpZ2h0Owor54is6J+y5YuV54mpIDwgcmVwdGlsZTsKK+e0oummrOijoSA8IHNvbWFsaWE7CivljYHkupQgPCBmaWZ0ZWVuOwor5aSa5aSnIDwgaG93XC1iaWc7CivlhbHomZUgPCBjb2V4aXN0Owor5pSq5ouMIDwgdG9cLXN0aXI7CivovJXovJUgPCBsaWdodGx5Owor5buj5pKt57ayIDwgbmV0d29yazsKK+W3tOagvOmBlCA8IGJhZ2hkYWQ7CivliKnmvaQgPCBwcm9maXRzOwor5aSW56eR6Yar55SfIDwgc3VyZ2VvbjsKK+ijnei8iSA8IHRvXC1sb2FkOwor5YyF5ZCrIDwgY29udGFpbjsKK+aTr+ajhCA8IGFiYW5kb247CivlnKjvuY3kuYvplpMgPCBiZXR3ZWVuOwor55m86KGMIDwgcHVibGlzaDsKK+eZveifuyA8IHRlcm1pdGU7CivpgbjmiYsgPCBhdGhsZXRlOwor5aSx5Y67IDwgdG9cLWxvc2U7CivovKroqaIgPCB0b1wtcG9sbDsKK+iKseiyuyA8IGV4cGVuc2U7CivokYnlrZAgPCBmb2xpYWdlOwor6I2J56i/IDwgb3V0bGluZTsKK+atpuW6qyA8IGFyc2VuYWw7CivpioDooYzmpa0gPCBiYW5raW5nOwor5byE5bmzIDwgZmxhdHRlbjsKK+WItuatoiA8IHRvXC1jdXJiOwor54Wn5pCsIDwgdG9cLWNvcHk7CivpvqEgPCB0b1wtYmxvdzsKK+ijnOiyvCA8IHN1YnNpZHk7CivpvbAgPCB0b1wtYml0ZTsKK+m9qSA8IHRvXC1jaGV3Owor5q2j5bi4IDwgcmVndWxhcjsKK+m8tyA8IGFcLW1vdXNlOwor5paH5YyWIDwgY3VsdHVyZTsKK+W0qemZtyA8IGZhbGxcLWluOwor6biRIDwgYVwtbGFyZ2U7Civlt7TntZAgPCBmYXduXC1vbjsKK+m3nyA8IHBob2VuaXg7CivptrogPCB3YWd0YWlsOwor6ba5IDwgdGhlXC1vd2w7CivmiYvmjqjou4ogPCB0cm9sbGV5Owor55q657SLIDwgd3JpbmtsZTsKK+asiuadliA8IHNjZXB0ZXI7Civnmb7okKwgPCBtaWxsaW9uOwor5aSa5Y2KIDwgY2hpZWZseTsKK+mAseacqyA8IHdlZWtlbmQ7CivptKsgPCBhXC1zbmlwZTsKK+WIneatpSA8IGluaXRpYWw7Civli57li5XogIUgPCBsYWJvcmVyOwor54Wp5oOxIDwgYWdvbml6ZTsKK+mymiA8IGFuY2hvdnk7CivnhanmgrYgPCBhbmd1aXNoOwor5bmr5rS+IDwgZmFjdGlvbjsKK+e+jua0suixuSA8IHBhbnRoZXI7CivooajpnaIgPCBzdXJmYWNlOwor57Of57OVIDwgdG9vXC1iYWQ7CivnuL3liYcgPCBwcm9maWxlOwor6Zqq5bO7IDwgYXJkdW91czsKK+WItuacjSA8IHVuaWZvcm07Civlg4/pioAgPCBzaWx2ZXJ5Owor6a2cIDwgbWVybWFpZDsKK+WJjeaPkCA8IHByZW1pc2U7Civntq3mjIEgPCB0b1wta2VlcDsKK+aOpeinuCA8IGNvbnRhY3Q7CivoirHltJfnn7MgPCBncmFuaXRlOwor5aSl5Ly0IDwgcGFydG5lcjsKK+mqqyA8IGJlXC1iZW50Owor6aqJIDwgcnVubmluZzsKK+aTgeaciSA8IHRvXC1oYXZlOwor5Zyo5YW25LitIDwgdGhlcmVpbjsKK+mpmSA8IFwoaG9yc2VcKTsKK+mpkiA8IGRhcHBsZWQ7CivmraTlpJYgPCBiZXNpZGVzOwor5by35Yi2IDwgZW5mb3JjZTsKK+i7iui8myA8IHZlaGljbGU7CivoiqzomK0gPCBmaW5sYW5kOwor5pW45L2NIDwgZGlnaXRhbDsKK+WNgeWEhOS9jeWFgyA8IGdpZ2FiaXQ7CivpoqsgPCBhXC1zdG9ybTsKK+Wft+eFpyA8IGxpY2Vuc2U7CivnhKHmlYggPCBpblwtdmFpbjsKK+mfoyA8IGJvd1wtYmFnOwor6Z+FIDwgaGFybmVzczsKK+e0meeFmSA8IGNpZ2FyZXQ7CivnnLrmnJsgPCBsb29rb3V0Owor6Zec54WnIDwgY29uY2VybjsKK+mbmiA8IGFcLWhlcm9uOwor5Yaw54mHIDwgYm9ybmVvbDsKK+WKh+WgtCA8IHRoZWF0ZXI7CivnhrHliIcgPCBmZXJ2ZW50Owor6Zm+IDwgaW5cLWZpbGU7CivkupTmnIjljYHkupTomZ8gPCBtYXlcLTFcLTU7CivpmZ4gPCBwcm9tb3RlOwor6Zi75pSUIDwgdG9cLXN0b3A7CivpmKcgPCBzbG9waW5nOwor5byf5YWEIDwgYnJvdGhlcjsKK+ecieavmyA8IGV5ZWJyb3c7CivooqvopKUgPCBiZWRkaW5nOwor5pO65a2QIDwgbWFsYXJpYTsKK+aTlOW/gyA8IGFueGlvdXM7Civouqvpq5TpmpzlrrMgPCBjcmlwcGxlOwor5YWs56S+IDwgY29tbXVuZTsKK+mTvSA8IHRlcmJpdW07Civpk7wgPCByaGVuaXVtOwor6ZOqIDwgaGFmbml1bTsKK+mTpSA8IHRodWxpdW07Civpk5EgPCByaG9kaXVtOwor6ZKsIDwgaG9sbWl1bTsKK+e1kOaenCA8IG91dGNvbWU7CivmrbLlhaUgPCByZXZlbnVlOwor5aKK5a2QIDwgY3VzaGlvbjsKK+ebo+a4rCA8IG1vbml0b3I7CivmorXluJ3lsqEgPCB2YXRpY2FuOwor5ZCM576p5a2XIDwgc3lub255bTsKK+mMtiA8IGFcLXdhdGNoOwor6ayi6KeSIDwgdGVtcGxlczsKK+mMgCA8IFwobWV0YWxcKTsKK+aPreekuiA8IHRvXC1zaG93Owor6YuKIDwgYVwtcG9rZXI7Civpi4IgPCBiaXRcLWN1cDsKK+eXlei3oSA8IHZlc3RpZ2U7CivliZ3lpaogPCBkZXByaXZlOwor6L6y5rCRIDwgcGVhc2FudDsKK+aEm+Wci+iAhSA8IHBhdHJpb3Q7Civlu6DllYYgPCBjb21wYW55Owor5aWz5Li75Lq6IDwgaG9zdGVzczsKK+eZveamtOefsyA8IGxldWNpdGU7CivkvaDoh6rlt7EgPCB0aHlzZWxmOwor5YaS54WZIDwgc21va2luZzsKK+ewoeimgSA8IGNvbmNpc2U7CivntIXmtbcgPCByZWRcLXNlYTsKK+WGsOaysyA8IGdsYWNpYWw7CivntJTmraMgPCBnZW51aW5lOwor5Yio5belIDwgcGxhbmluZzsKK+a0vue1puW3peS9nCA8IHRvXC10YXNrOwor5bm75b2xIDwgcGhhbnRvbTsKK+iHqueUsea0viA8IGxpYmVyYWw7Civmi5TpoIIgPCB0b3BwaW5nOwor55a+6LWwIDwgc2NhbXBlcjsKK+i9kiA8IGNoYXJpb3Q7Civlt7Lmu4UgPCBleHRpbmN0Owor57Gg572pIDwgZW52ZWxvcDsKK+i7siA8IGFcLXdoZWVsOwor6LuYIDwgd2FyXC1jYXI7CivonqLngavon7IgPCBmaXJlZmx5Owor6LqmIDwgdG9cLWp1bXA7Civoup0gPCB0b1wtcGFzczsKK+eZvuWIhuS5iyA8IHBlcmNlbnQ7CivprIbnt4rluLYgPCBlbGFzdGljOwor6JaU6JaH6Iqx6JW+IDwgcm9zZWJ1ZDsKK+mZhOWvhCA8IGVuY2xvc2U7CivnhKHoq5bkvZXkurogPCB3aG9ldmVyOwor6LesIDwgdG9cLXN0ZXA7Civlr4Tlrr/nlJ8gPCBib2FyZGVyOwor6LeVIDwgc2h1ZmZsZTsKK+i2tyA8IHRvXC1qb2x0Owor57Wo5biDIDwgZmxhbm5lbDsKK+WEmOeuoSA8IGRlc3BpdGU7CivpmLvlsLwgPCBkYW1waW5nOwor55Sc6bueIDwgZGVzc2VydDsKK+eZvOePviA8IHRvXC1maW5kOwor6LSHIDwgYWZmYWJsZTsKK+i0gyA8IHRvXC1lYXJuOwor6ZaD54iNIDwgZmxpY2tlcjsKK+iho+ijnSA8IGdhcm1lbnQ7Civos50gPCBwcmVpb3VzOwor5YKZ6Ki7IDwgcmVtYXJrczsKK+mXoeaYjiA8IGNsYXJpZnk7Civlj5fmraHov44gPCBwb3B1bGFyOwor6LGXIDwgY2xhbW91cjsKK+WIsOWgtCA8IHNob3dcLXVwOwor55ub5pyDIDwgcGFnZWFudDsKK+iujCA8IGFcLWZlYXN0Owor6KyzIDwgdG9cLXNpbmc7CivorIYgPCBiZWd1aWxlOwor6aOb5qmf5aC0IDwgYWlycG9ydDsKK+ipviA8IG5vaXNpbHk7Civlgb3orYkgPCBwZXJqdXJ5Owor6KmrIDwgdG9cLWJyYWc7CivoqYUgPCB0b1wtc2VsbDsKK+eFp+S6riA8IGxpZ2h0ZW47CivpmbPliJcgPCBkaXNwbGF5Owor6Zi/54i+5Y+K5Yip5LqeIDwgYWxnZXJpYTsKK+inoSA8IGFudGxlcnM7Civpmb3lgpggPCBwYXJhc29sOwor5bGx6aCCIDwgaGlsbHRvcDsKK+aOjOeuoSA8IGNvbnRyb2w7CivopZwgPCBmbHV0dGVyOwor6KWDIDwgY29tbWVuZDsKK+iklCA8IGNvbXBsZXg7CivoorogPCBob2xkXC11cDsKK+aToOWFpSA8IGludHJ1ZGU7CivoobUgPCBjaGVtaXNlOwor5qyK5YipIDwgYVwtcG93ZXI7CivoirHnkrAgPCBnYXJsYW5kOwor5YWs5rCRIDwgY2l0aXplbjsKK+W3tOaelyA8IGJhaHJhaW47Civlgb3oo50gPCB0b1wtZmFrZTsKK+WgheW8tyA8IHN0YXVuY2g7Civmlq/nk6bluIzoo6EgPCBzd2FoaWxpOwor6Iiq56m66YO15Lu2IDwgYWlybWFpbDsKK+S6nueJueiYreWkpyA8IGF0bGFudGE7CivpgLLpgIDlhanpm6MgPCBkaWxlbW1hOwor5bmz5Z2HIDwgYXZlcmFnZTsKK+Wvpumam+S4iiA8IGluXC1mYWN0Owor5Yi65YiAIDwgYmF5b25ldDsKK+ewuOeulSA8IGR1c3RwYW47CivlhYXmu78gPCBmdWxsXC1vZjsKK+W4s+W4mCA8IGRyYXBlcnk7Civolr0gPCBcKGdyYXNzXCk7CivolrYgPCB0b1wtYnVyeTsKK+WPjeaHieWghiA8IHJlYWN0b3I7CivolpMgPCBnaW5zZW5nOwor5r+A57SgIDwgaG9ybW9uZTsKK+ino+WJliA8IGRpc3NlY3Q7CivojorlmrQgPCBzdGF0ZWx5Owor5bmz5Y+wIDwgdGVycmFjZTsKK+iPqiA8IGhlbmJhbmU7Civoj6cgPCBzdGliZW5lOwor5ouN6LOjIDwgYXVjdGlvbjsKK+a7i+mkiiA8IG5vdXJpc2g7Civop6Plg7EgPCB0b1wtZmlyZTsKK+iOgCA8IHRvXC1mYXJtOwor5Yiw5L6GIDwgYXJyaXZhbDsKK+W6iuWBtCA8IGJlZHNpZGU7CivmqJnmp40gPCBqYXZlbGluOwor55ar6IuXIDwgdmFjY2luZTsKK+i2hem9oSA8IHRvb1wtb2xkOwor5Zug57SgIDwgZWxlbWVudDsKK+WGsOW3nSA8IGdsYWNpZXI7Civpl4rluqYgPCBicmVhZHRoOwor6IiTIDwgdG9cLWxpY2s7Civoh50gPCBiZVwtYmFyZTsKK+i9n+aTiiA8IGJvbWJhcmQ7CivohZYgPCBwZXB0b25lOwor5Yaw5bO2IDwgaWNlbGFuZDsKK+eVsOaVmeW+kiA8IGhlYXRoZW47CivlnJbnlasgPCBkcmF3aW5nOwor6ISdIDwgZGlzdGVuZDsKK+WIhuaekOS6uuWjqyA8IGFuYWx5c3Q7CivlhrDlsbEgPCBpY2ViZXJnOwor5aSW6YKm5Lq6IDwgZ2VudGlsZTsKK+enu+awkeiAhSA8IG1pZ3JhbnQ7CivkuI3lkInliKkgPCBvbWlub3VzOwor572WIDwga3d1a3llbDsKK+acgOS9jumZkOW6piA8IG1pbmltdW07CivnvLIgPCB0b1wtcmVlbDsKK+eZguazlSA8IHRoZXJhcHk7CivlibXpgKDogIUgPCBjcmVhdG9yOwor5bCW6aCCIDwgc3RlZXBsZTsKK+iFuemDqCA8IGFiZG9tZW47CivnmbzmlL4gPCBwcm92aWRlOwor55iL54uCIDwgbWFkbmVzczsKK+e3gSA8IHRvXC1qb2luOwor5o+S5puyIDwgZXBpc29kZTsKK+e1qiA8IG1hdHRpbmc7CivlhYvku4DnsbPniL4gPCBrYXNobWlyOwor5aWz6Iux6ZuEIDwgaGVyb2luZTsKK+a0u+WLleaIv+WxiyA8IHRyYWlsZXI7Civku4DkuIDlpYnnjbsgPCB0aXRoaW5nOwor5YWn576F55WiIDwgbmFpcm9iaTsKK+aKl+itsCA8IHByb3Rlc3Q7CivluLbli5UgPCB0b1wtc3B1cjsKK+WFrOW8jyA8IGZvcm11bGE7CivnrJMgPCB0b1wtY29tYjsKK+WiqOilv+WTpeS6uiA8IG1leGljYW47Civngb3lrrMgPCBzY291cmdlOwor6Iqx5p2fIDwgYm91cXVldDsKK+W3suWpmiA8IG1hcnJpZWQ7Civnl5Lnl5IgPCB0b1wtaXRjaDsKK+S9v+mrmOiytCA8IGRpZ25pZnk7CivkvovpoYwgPCBleGFtcGxlOwor56iHIDwgdG9cLWJpbmQ7CivlhKrmlrwgPCBzdXJwYXNzOwor57WC5LqOIDwgYXRcLWxhc3Q7CivliqDmpq7ogIDmlrwgPCBnbG9yaWZ5Owor56aCIDwgdG9cLXByYXk7Civkv6Hos7QgPCBjb25maWRlOwor6Iql5pyrIDwgbXVzdGFyZDsKK+WcsOizquWtuCA8IGdlb2xvZ3k7CivlhrfljbsgPCBjb29saW5nOwor5qGM6Z2iIDwgZGVza3RvcDsKK+WxpeihjCA8IGZ1bGZpbGw7CivnmofluJ0gPCBlbXBlcm9yOwor56KDIDwgXChzdG9uZVwpOwor56+H56ugIDwgd3JpdGluZzsKK+efnyA8ICcnXC1sYW5jZTsKK+eeryA8IHRvXC1wZWVwOwor5LiN5bmy5LiN5reoIDwgdW5jbGVhbjsKK+WvrOmXiiA8IGV4cGFuc2U7Civpl5zpjbXoqZ4gPCBrZXl3b3JkOwor5YWn5a65IDwgY29udGVudDsKK+ecvSA8IHRvXC1nYXplOwor55y0IDwgZGF6emxlZDsKK+S4ieS9jeS4gOmrlCA8IHRyaW5pdHk7CivlgrLnhLYgPCBsb2Z0aWx5Owor5be05p2+566hIDwgYmFzc29vbjsKK+WboOeCuiA8IGJlY2F1c2U7CivmqLXlpKsgPCB3b29kbWFuOwor5biD6ZqG6L+qIDwgYnVydW5kaTsKK+eVkCA8IHRvXC1maWxsOwor6Ieq56eBIDwgc2VsZmlzaDsKK+WFuOWeiyA8IHR5cGljYWw7CivojLblhbcgPCB0ZWFcLXNldDsKK+eUlCA8IGJpZ1wtamFyOwor57OK5aGXIDwgbXVkZGxlZDsKK+eTmyA8IHNjYXB0cmU7CivnkrogPCBhXC1jcmFjazsKK+eSiiA8IHJlZGRpc2g7CivokpnlpKfmi78gPCBtb250YW5hOwor5425IDwgYVwtaG91bmQ7Civngq3nlr3nl4UgPCBhbnRocmF4Owor542aIDwgc3BhbmllbDsKK+WFrOebiuS6i+alrSA8IHV0aWxpdHk7Civnr4Dnm64gPCBwcm9ncmFtOwor6ZG955+zIDwgZGlhbW9uZDsKK+WckuaelyA8IGdhcmRlbnM7Civni4kgPCBmb3hcLWN1YjsKK+i7jOaelSA8IHNsZWVwZXI7Civoi7HlnIsgPCBlbmdsYW5kOwor6aaW6aO+IDwgamV3ZWxyeTsKK+aXpeW4uOW3peS9nCA8IHJvdXRpbmU7Civlt6XljKAgPCBhcnRpc2FuOwor54avIDwgYnlcLWZpcmU7Civkv5jomZwgPCBjYXB0aXZlOwor54W7IDwgdG9cLXdhcm07Civoh4Lnq6AgPCBhcm1iYW5kOwor6Ieq55SxIDwgZnJlZWRvbTsKK+WPsuWvhueJuSA8IHNjaG1pdHQ7CivngbQgPCB0b1wtYmFrZTsKK+W4g+S4gSA8IHB1ZGRpbmc7CivngLkgPCB0b1wtYm9pbDsKK+WcjeaUuyA8IGJlc2llZ2U7Civllp3ph4cgPCBhY2NsYWltOwor5r6QIDwgYmlsbG93czsKK+eUn+iCsiA8IHRvXC1iZWFyOwor6LWk6YGTIDwgZXF1YXRvcjsKK+a9rCA8IGFcLXJhcGlkOwor5a+M5aOr6YCaIDwgZnVqaXRzdTsKK+eUt+aAp+imquWxrCA8IGtpbnNtYW47CivmuqYgPCBkcml6emxlOwor6ZaA5Y+jIDwgZG9vcndheTsKK+eDueiqv+ihkyA8IGNvb2tlcnk7CivosqjnianpgYvovLggPCBmcmVpZ2h0Owor5pCN5YK3IDwgdG9cLWhhcm07CivmuLwgPCByaXBwbGVzOwor5rinIDwgdG9cLWRyb3A7CivouqvmnZAgPCBzdGF0dXJlOwor6Iux5YuHIDwgYnJhdmVyeTsKK+WNsOWIt+iAhSA8IHByaW50ZXI7Civmt7flkIjniakgPCBtaXh0dXJlOwor6Zi/5YWL5YCrIDwgYWNoZXJvbjsKK+a2tiA8IHRvXC1zcGl0Owor5raSIDwgbWVhbmRlcjsKK+a0uCA8IHNwYXJrbGU7CivniZnnp5HphqvnlJ8gPCBkZW50aXN0Owor5ZWP6aGMIDwgcHJvYmxlbTsKK+WvhOmAgSA8IHRvXC1zZW5kOwor5YK+5pacIDwgaW5jbGluZTsKK+mDoeayu+WuieWumCA8IHNoZXJpZmY7CivnhKHnpZ7oq5YgPCBhdGhlaXNtOwor5rGLIDwgdG9cLXBvdXI7CivkuI3li5XmkJYgPCB1bm1vdmVkOwor5rC8IDwgdG9cLXNpbms7Civlm7Dmk74gPCBwZXJwbGV4Owor5rCVIDwgcHJvdGl1bTsKK+aKvOaymem+jSA8IGFic2Fsb207CivmioTntrIgPCBkaXBcLW5ldDsKK+atnCA8IGZ1cmlvdXM7CivlmrTmraMgPCBzdGVybmx5Owor5YKs55yg5puyIDwgbHVsbGFieTsKK+S6nuS8r+aLiee9lSA8IGFicmFoYW07CivmiJboqLEgPCBwZXJoYXBzOwor5qau5bm4IDwgaG9ub3JlZDsKK+WFi+e+heWcsOS6niA8IGNyb2F0aWE7CivppqzouawgPCBzdGlycnVwOwor5qmGIDwgd2l0aG91dDsKK+WVhumaiiA8IGNhcmF2YW47CivniZvpoK3niqwgPCBidWxsZG9nOwor5a246ZmiIDwgY29sbGVnZTsKK+WDteWxgCA8IGltcGFzc2U7CivmjZXmiYsgPCBjYXRjaGVyOwor5qaiIDwgYVwtZnJhbWU7CivmipXnpaggPCB0b1wtdm90ZTsKK+S9v+mtlOazlSA8IGNvbmp1cmU7CivlhajnpZ7ngYzms6ggPCByYXB0dXJlOwor5qSXIDwgXChwbGFudFwpOwor5a6J5LmD6L+RIDwgYW5hbGdpbjsKK+ibi+eZveizqiA8IHByb3RlaW47CivlsIjnp5HpmaLmoKEgPCBhY2FkZW15Owor6KGM5p2OIDwgbHVnZ2FnZTsKK+aPkOWIsCA8IG1lbnRpb247CivpqZXnn5wgPCBoYXVnaHR5Owor6Iqd5Yqg5ZOlIDwgY2hpY2FnbzsKK+WFq+W4tumtmiA8IG9jdG9wdXM7CivmtJfooaPlupcgPCBsYXVuZHJ5Owor5L+h566xIDwgbWFpbGJveDsKK+aevCA8IGFcLXRhYmxlOwor5p6TIDwgY2FwaXRhbDsKK+aduCA8IHRvXC1raWxsOwor5py+IDwgdG9cLWJ1bXA7CivmpoLlv7UgPCBjb25jZXB0Owor5LiN5b6X5YuBIDwgYXdrd2FyZDsKK+WcsOWdgCA8IGFkZHJlc3M7CivlrZTpm4AgPCBwZWFjb2NrOwor5ruR56i9IDwgY29taWNhbDsKK+aVviA8IHRvXC1ydWxlOwor5pWvIDwgdG9cLWRlZnk7CivmlZwgPCBmaWxsXC11cDsKK+S9juiqvyA8IGxvd1wta2V5Owor5pO4IDwgdG9cLWhvbGQ7CivmjInmmYIgPCBvblwtdGltZTsKK+aRoCA8IGdlbmVyYWw7CivplbfpoLjpub8gPCBnaXJhZmZlOwor5omT566XIDwgdG9cLXBsYW47Civmjq8gPCBvcHByZXNzOwor5bCP57WEIDwgYVwtZ3JvdXA7CivmjI0gPCBjb2xsYXRlOwor5aWz6auY6Z+zIDwgc29wcmFubzsKK+aMieaRqSA8IG1hc3NhZ2U7CivmioggPCB0b1wtYmVuZDsKK+aJvSA8IHRvXC1tb3ZlOwor6LOq6YePIDwgcXVhbGl0eTsKK+evgOaXpSA8IGhvbGlkYXk7Civmr5TliKnmmYIgPCBiZWxnaXVtOwor5LiN6Kq/5ZKMIDwgZGlzY29yZDsKK+aHsCA8IGJlXC1nbGFkOwor5oerIDwgZW5yYWdlZDsKK+aciemZsOW9sSA8IHNoYWRvd3k7Civmh5sgPCBhbGFybWVkOwor5oeFIDwgYmFzaGZ1bDsKK+eUoueJqSA8IHByb2R1Y3Q7CivkvpvntaYgPCBmdXJuaXNoOwor5oOjIDwgb3ZlcmFsbDsKK+aDhyA8IGJlXC1raW5kOwor6Iie5byEIDwgdG9cLXdhdmU7CivmjIfpl5znr4AgPCBrbnVja2xlOwor5omT56KOIDwgc2hhdHRlcjsKK+aBiSA8IG1lYW5pbmc7CivlnKjliY0gPCBmb3J3YXJkOwor57Wm6IiH6LOH5qC8IDwgcXVhbGlmeTsKK+S4g+aciOS4ieWNgeiZnyA8IGp1bHlcLTMwOwor5p2O6bWsIDwgbGlcLXBlbmc7CivlronoqK0gPCBpbnN0YWxsOwor6LKs6ZujIDwgY2Vuc3VyZTsKK+WztuW2vCA8IGlzbGFuZHM7Civmn6Xoqr8gPCBpbnF1aXJ5Owor5L6/55uGIDwgYmVkXC1wYW47CivooLHmg5EgPCBlbmNoYW50Owor5buMIDwgdW5pY29ybjsKK+a7sua8jyA8IHNlZXBhZ2U7CivlubPluLjml6UgPCB3ZWVrZGF5Owor6IGv6YKmIDwgZmVkZXJhbDsKK+a8guaziiA8IGRyaWZ0ZXI7CivlhLLol4/lrqQgPCBzdG9yYWdlOwor5Zm45pW4IDwgdG9ubmFnZTsKK+WMiOeJmeWIqSA8IGh1bmdhcnk7CivllYboqI4gPCBkaXNjdXNzOwor6aaZ6I+cIDwgcGFyc2xleTsKK+a1t+muriA8IHNlYWZvb2Q7Civoh6XmiL8gPCBiZWRyb29tOwor5Y2w5Zyw5a6J6YKjIDwgaW5kaWFuYTsKK+WDpeWAliA8IGx1Y2tpbHk7CivlgrPllq4gPCBsZWFmbGV0Owor5LiN5b6X6ICM55+lIDwgdW5rbm93bjsKK+Wik+iqjOmKmCA8IGVwaXRhcGg7CivpppnohbggPCBzYXVzYWdlOwor6Iiq56m65YWs5Y+4IDwgYWlybGluZTsKK+WqniA8IGF0XC1lYXNlOwor6LWw56eBIDwgc211Z2dsZTsKK+acieiAkOS5heWKmyA8IGR1cmFibGU7CivkuIDmnIPlhZIgPCBhXC13aGlsZTsKK+S4jemBk+W+tyA8IGltbW9yYWw7Civpvo3onaYgPCBsb2JzdGVyOwor54OP5YWL6JitIDwgdWtyYWluZTsKK+WkqumZvem7keWtkCA8IHN1bnNwb3Q7CivlnKjlrqTlhacgPCBpbmRvb3JzOwor5aSjIDwgYVwtZHJlYW07Civlo50gPCBhXC1tb3VuZDsKK+W4jOS8r+S+huabuCA8IGhlYnJld3M7CivloZMgPCBwbGFzdGVyOwor5qSw5a2QIDwgY29jb251dDsKK+mRkuaIkiA8IHdhcm5pbmc7CivloIQgPCBwYXJhcGV0Owor5Luj6KmeIDwgcHJvbm91bjsKK+WflyA8IGFcLXdoYXJmOwor5Li56bqlIDwgZGVubWFyazsKK+S4jembouWFkiA8IG5vdFwtYmFkOwor5ZyVIDwgbGlicmFyeTsKK+WcgiA8IHBpZ1wtc3R5Owor55Wr5buKIDwgZ2FsbGVyeTsKK+eZveibi+eZvSA8IGFsYnVtaW47CivlmoogPCB0b1wtcGFudDsKK+S4u+W4reiHuiA8IHJvc3RydW07CivooZ3lipsgPCBpbXB1bHNlOwor6aGe5Zu66YaHIDwgc3Rlcm9pZDsKK+WWpSA8IGFcLXBsYWNlOwor5a6M576OIDwgcGVyZmVjdDsKK+WxleacmyA8IG91dGxvb2s7CivoqZXorbDmnIMgPCBjb3VuY2lsOwor5pyJ5biM5pybIDwgaG9wZWZ1bDsKK+eriuebnCA8IGJ1cmdsYXI7CivllJ4gPCB0b1wtZ2FzcDsKK+WUhSA8IGFcLXNvdW5kOwor5a6256a9IDwgcG91bHRyeTsKK+WCt+WvkueXhyA8IHR5cGhvaWQ7Civlkr4gPCBhXC1ub2lzZTsKK+WSiSA8IGFuXC1lY2hvOwor5aWn5p6X5Yy55YWLIDwgb2x5bXBpYzsKK+WIsOmCo+ijoSA8IHRoaXRoZXI7Civlkb8gPCB0b1wteWF3bjsKK+WRrCA8IHRvXC1yZXN0Owor5Lqe5Yip5qGR6YKjIDwgYXJpem9uYTsKK+WRjCA8IHRvXC1jYWxsOwor56m657y6IDwgdmFjYW5jeTsKK+acgOmrmCA8IGhpZ2hlc3Q7CivnlavlrrYgPCBwYWludGVyOwor6aSK6ICB6YeRIDwgcGVuc2lvbjsKK+eWsuWLniA8IGZhdGlndWU7CivljbIgPCBlbWluZW50Owor5YynIDwgYVwtdHJ1bms7CivkuI3pvZIgPCBkZXNwaXNlOwor5oqV5omLIDwgcGl0Y2hlcjsKK+a1t+mCiiA8IHNlYXNpZGU7Civok4vkuJblpKrkv50gPCBnZXN0YXBvOwor5ZmB5b+DIDwgdG9cLWhhdGU7CivlsIvmsYIgPCB0b1wtc2VlazsKK+WEtiA8IHZhbGlhbnQ7CivlsI/lhorlrZAgPCBib29rbGV0Owor5YSmIDwgbWlsbGluZzsKK+WEpCA8IG9uXC1kdXR5Owor5pyq5q2m6KOdIDwgdW5hcm1lZDsKK+WZtOWiqCA8IGlua1wtamV0Owor5pyJ6ZmQIDwgbGltaXRlZDsKK+aJmOaetiA8IGJyYWNrZXQ7CivkvocgPCBhXC1jbGFzczsKK+S8gCA8IGV4Y2l0ZWQ7CivmnIDplbcgPCBsb25nZXN0Owor5Lm/IDwgdG9cLWN1cmU7CivkuawgPCB0b1wtaGFuZzsKK+aJs+aJiyA8IHNwYW5uZXI7Civkvr/mlrwgPCBlYXN5XC10bzsKK+a1t+ixmiA8IGRvbHBoaW47CivmhJvorbcgPCBjaGVyaXNoOwor5LapIDwgdG9cLWduYXc7CivmhJvlsYvlj4rng48gPCBsb3ZlXC1tZTsKK+evgOWEiSA8IHRocmlmdHk7CivnpZ7pq5QgPCBnb2RoZWFkOwor5LSnIDwgdmVuaXNvbjsKK+S4remWkyA8IGJldHdpeHQ7Civksp0gPCBwb21mcmV0Owor5LKUIDwgYVwtd2hhbGU7CivmhJ/oprogPCB0b1wtZmVlbDsKK+acieW5q+WKqSA8IGhlbHBmdWw7CivksYkgPCB0aGVcLWVlbDsKK+SwniA8IHRvXC1jb29rOwor5a2k56uLIDwgaXNvbGF0ZTsKK+SuvCA8IHBpZWJhbGQ7CivnlbbliY0gPCBjdXJyZW50Owor5K6mIDwgdW50YW1lZDsKK+WxpOWtkCA8IHN0cmF0dW07CivkraAgPCBhXC1zbmFjazsKK+eUqOWtlyA8IGRpY3Rpb247CivkrI4gPCBob3RcLWFpcjsKK+mYv+aLieS8ryA8IGFyYWJpYW47Civkq5ggPCBoZWFsdGh5Owor5L+D5oiQIDwgcHJvY3VyZTsKK+WuieeTvyA8IGFtcG91bGU7CivkqqMgPCBzbWFzaGVkOwor6Iez5LiKIDwgc3VwcmVtZTsKK+SpsyA8IHRhbm5pbmc7CivkqZQgPCB0aGVcLWhlbTsKK+S7pemmrOWFp+WIqSA8IGVtYW51ZWw7CivkqJ4gPCB0b1wtcmFpbjsKK+S4gOmghSA8IGFuXC1pdGVtOwor5KiCIDwgYVwtY2hpY2s7Civkp58gPCB0b1wtc2tpbjsKK+mYv+aLieS4gSA8IGFsYWRkaW47CivkuI3oprrlr58gPCB1bmF3YXJlOwor5riF55yfIDwgaXNsYW1pYzsKK+SmiyA8IHRvXC1ncm93Owor5Zac5q2hIDwgdG9cLWxpa2U7CivnlJjol43oj5wgPCBjYWJiYWdlOwor5KSfIDwgYVwtc3BhZGU7CivkuIrploAgPCBkcm9wXC1pbjsKK+SitiA8IGFcLXN0YXRlOwor5a2455SfIDwgc3R1ZGVudDsKK+Wls+S/rumBkyA8IGNvbnZlbnQ7CivkopkgPCB0b1wtcnVpbjsKK+eNjumHkSA8IHByZW1pdW07Civopo/lioPkurrlk6EgPCBwbGFubmVyOwor5KC8IDwgdG9cLXdlYXI7CivkurrnvqQgPCBhXC1jcm93ZDsKK+WBh+S9vyA8IHN1cHBvc2U7Civnmbznj77niakgPCBmaW5kaW5nOwor5pu06YGgIDwgZmFydGhlcjsKK+WcqOS4i+aWuSA8IGJlbmVhdGg7CivpqZrlmocgPCBob3JyaWZ5Owor5JyWIDwgdG9cLXRhbGs7CivknIkgPCB0b1wtamVzdDsKK+SbtyA8IHRvXC1vYmV5Owor5JuwIDwgc2tldGNoeTsKK+iSuOaxveapnyA8IHN0ZWFtZXI7CivkmrEgPCBob25lc3R5Owor5JquIDwgdGhpY2tlcjsKK+SalyA8IHRvXC1saWZ0Owor5JqPIDwgdG9cLWxvdmU7CivkuJnpha4gPCBhY2V0b25lOwor5bCP54CR5biDIDwgY2FzY2FkZTsKK+aFiOWWhOapn+aniyA8IGNoYXJpdHk7CivnlLfmgKflsIrnqLEgPCBlc3F1aXJlOwor5JixIDwgd2VhbHRoeTsKK+SYoCA8IGdyZWF2ZXM7CivkmJ0gPCBhXC1zaGlydDsKK+esrOWNgeS6jCA8IHR3ZWxmdGg7CivkuI3kuInkuI3lm5sgPCBkdWJpb3VzOwor5omN5bmyIDwgYWJpbGl0eTsKK+mmmeawtCA8IHBlcmZ1bWU7CivpppnmsKMgPCBpbmNlbnNlOwor5JaaIDwgYVwtdGlnZXI7CivmiJDmlocgPCB3cml0dGVuOwor5JS6IDwgaGVhZGluZzsKK+WQkOmcsiA8IHRvXC10ZWxsOwor5pyq5rG65a6aIDwgcGVuZGluZzsKK+i2leW/qyA8IGF0XC1vbmNlOwor5pyD6K2wIDwgbWVldGluZzsKK+mjm+iIuSA8IGFpcnNoaXA7Civmm7zosLcgPCBiYW5na29rOwor5JK2IDwgdGhlXC1za3k7CivliJfnjovntIDkuIsgPCAyXC1raW5nczsKK+WIl+eOi+e0gOS4iiA8IDFcLWtpbmdzOwor5JGnIDwgYVwtc2hvcnQ7CivkkL8gPCBnaXp6YXJkOwor5JC3IDwgcGF1bmNoeTsKK+SQtCA8IGx1bWJhZ287CivkkKsgPCBvYmVzaXR5Owor5I+WIDwgYVwtd291bmQ7Civkj4cgPCB0b1wtaGVhcjsKK+SOqSA8IHRvXC10aWxsOwor5peF6YGK6ICFIDwgdG91cmlzdDsKK+S4u+ipniA8IHN1YmplY3Q7Civmsonpu5ggPCBzaWxlbmNlOwor5omT5a2XIDwgdG9cLXR5cGU7Civlj5foqJfkurogPCB0cnVzdGVlOwor5IyYIDwgdG9cLWtuaXQ7CivkjJQgPCB0b1wtc29hazsKK+SMgSA8IGFcLXBsZWF0Owor5IuOIDwgdG9cLW1lbmQ7Civkip8gPCBhZG9ybmVkOwor5IqYIDwgYVwtZ3JhaW47CivkiaIgPCBhXC1zaWV2ZTsKK+SJjiA8IGFcLWNvdmVyOwor5IisIDwgYVwtc21hbGw7CivlrrTmnIMgPCBiYW5xdWV0Owor5IeUIDwgYXRyb3BoeTsKK+SHjSA8IHRvXC13YWl0Owor6aCY6ZqKIDwgY2FwdGFpbjsKK+aciOidlSA8IGVjbGlwc2U7CivkhI8gPCBiaXphcnJlOwor5YCJ5L+DIDwgaHVycmllZDsKK+iCpeaygyA8IGZlcnRpbGU7CivkgoAgPCB0b1wtd2luazsKK+WPrOmbhiA8IGNvbnZlbmU7CivkgZsgPCB0b1wtbG9vazsKK+elnui3oSA8IG1pcmFjbGU7Civkvb/lvpIgPCBhcG9zdGxlOwor4763IDwgdG9cLWFjaGU7CivjvqAgPCBhXC1mZXZlcjsKK+O+nyA8IHJlbGFwc2U7CivjvpggPCBhaWxtZW50Owor476VIDwgYVwtY2hpbGw7CivjvoYgPCBlY2R5c2lzOwor476FIDwgZGVmZWN0czsKK+mZuOi7jeS4iuagoSA8IGNvbG9uZWw7CivjvZYgPCBhXC1odW1hbjsKK+O8vCA8IGFcLWxhZGxlOwor47y3IDwgYVwtYmFzaW47CivohLnlpKcgPCBzd29sbGVuOwor47yXIDwgYVwtYnJpY2s7CivomZvmp4vlsI/oqqogPCBmaWN0aW9uOwor5a+25a+2IDwgZGFybGluZzsKK+O6siA8IGJ1dHRvbnM7CivjuoogPCBhXC1iZWFzdDsKK+O5niA8IHRvXC1iYXJrOwor47mbIDwgYVwtdGFtZWQ7CivnrYnlgJkgPCB3YWl0aW5nOwor6LeM5YiwIDwgdG9cLWZhbGw7Civmh7rmgpQgPCBjb25mZXNzOwor47eTIDwgYVwtdG9yY2g7Civjt4kgPCB0b1wtaXJvbjsKK+aItuWkliA8IG91dGRvb3I7Civnn7PljZflsawgPCBoZWF0aGVyOwor5a+s5a65IDwgbGVuaWVudDsKK+O1kiA8IGJvaWxpbmc7CivjtYwgPCB0b1wtZmxvdzsKK+O1hSA8IGFcLXJpdmVyOwor6IO95bm5IDwgY2FwYWJsZTsKK+S4jeimiyA8IG5vdFwtc2VlOwor47SHIDwgdG9cLXdhZGU7Civjs60gPCBzcGl0dGxlOwor47OsIDwgYW5cLWVkZHk7CivkvY/miL8gPCBob3VzaW5nOwor47OZIDwgYVwtYnJvb2s7CivmiLDlo6sgPCBmaWdodGVyOwor47KCIDwgdG9cLXB1c2g7CivjsZYgPCB0b1wtc3RheTsKK+OxjCA8IHRvXC10YWtlOwor57+h57+gIDwgZW1lcmFsZDsKK+WwiuWatCA8IGRpZ25pdHk7CivoloTng6TppIUgPCBwYW5jYWtlOwor46+TIDwgYVwtY291Y2g7Civjr5AgPCB0dWJ1bGFyOwor46+LIDwgYVwtY2hlc3Q7Civlr4bluqYgPCBkZW5zaXR5Owor466bIDwgYVwtc3Bvb247CivjraogPCBhXC1zaHJ1YjsKK+avkuiNieWQjSA8IGhlbWxvY2s7Civjq7QgPCB0b1wtcm9hcjsKK+OrnSA8IHRoZVwtc3VuOwor5Zyw5bmz57eaIDwgaG9yaXpvbjsKK+WwluWPqyA8IHNjcmVlY2g7CivjqbAgPCB0b1wtc3RhYjsKK+WlueiHquW3sSA8IGhlcnNlbGY7CivlronmkqsgPCBwbGFjYXRlOwor46i3IDwgdG9cLXdpcGU7CivpoILph50gPCB0aGltYmxlOwor46iwIDwgdG9cLXR1cm47CivmoLjlrZAgPCBudWNsZWFyOwor5LyR5pyDIDwgYWRqb3VybjsKK+iyoueJqSA8IHRyaWJ1dGU7Civjp7sgPCBhXC10aG9ybjsKK+OmuSA8IGFcLXNwZWFyOwor46atIDwgdG9cLXBpdHk7Civpo5vnm6QgPCBmcmlzYmVlOwor5reY5rCjIDwgbmF1Z2h0eTsKK+OlkiA8IGNvcnJ1cHQ7CivpqI7lhbUgPCBjYXZhbHJ5Owor46S6IDwgYmx1cnJlZDsKK+OjtyA8IHdhbGtpbmc7Civnn67lo6/ntKAgPCBjeWNvY2VsOwor5aSW56eR5omL6KGTIDwgc3VyZ2VyeTsKK+OhuCA8IGFcLWhvdXNlOwor56ys5LiDIDwgc2V2ZW50aDsKK+OhqCA8IGFcLWxhYmVsOwor46GYIDwgc2NyZWVuczsKK+OhkyA8IGRyYXdlcnM7CivjoYIgPCByZW1haW5zOwor5L+D5L2/IDwgc3B1clwtb247CivpoqjnrrEgPCBiZWxsb3dzOwor45+nIDwgYVwtY2xpZmY7CivmtbTnm4YgPCBiYXRodHViOwor4566IDwgYVwtdHJpYmU7CivnvqToirEgPCBibG9zc29tOwor5ZCE6Imy5ZCE5qijIDwgZGl2ZXJzZTsKK+S9m+e+heijoemBlCA8IGZsb3JpZGE7CivppqzlrZAgPCBjb21tb2RlOwor6LaK5Y2XIDwgdmlldG5hbTsKK+WQkeS9leiZlSA8IHdoaXRoZXI7CivjnJMgPCB3b21hbmx5Owor56m65oiwIDwgYWlyXC13YXI7CivmiJDlnIggPCB3cmVhdGhlOwor45yHIDwgdW5oYXBweTsKK+aHieW+lyA8IGRlc2VydmU7CivmiLDli50gPCBwcmV2YWlsOwor45qiIDwgYVwtc2xhdmU7CivkuI3oi58gPCBub3RcLWxheDsKK+exg+adv+eQgyA8IHJlYm91bmQ7CivkvY/lrr8gPCBsb2RnaW5nOwor45mUIDwgYVwtZmVuY2U7CivjmY8gPCBjYXZlcm5zOwor6K6K6YG3IDwgY2hhbmdlczsKK+OYqSA8IHRvXC1tYXRlOwor45eDIDwgdGhlXC1saXA7CivlsIHlhaUgPCBpbmNsb3NlOwor6aas5YWL5oCd5Li7576pIDwgbWFyeGlzbTsKK+OVnyA8IHRvXC1zaWduOwor45WeIDwgYVwtYnJ1c2g7CivjlL8gPCBhXC10YWxseTsKK+OUoSA8IGdyZWF0bHk7CivjlIIgPCB0b1wtcGFyZTsKK+OTsCA8IHRvXC1yaXZlOwor45OfIDwgdG9cLXBlZWw7CivjkrQgPCB0b1wtY29tZTsKK+OSpiA8IHB1cHBldHM7Civogb3lvpfoposgPCBhdWRpYmxlOwor6YeO6LKTIDwgd2lsZGNhdDsKK+OSlSA8IHVueWllbGQ7CivjkpEgPCBncm93XC11cDsKK+S7o+abvyA8IGluc3RlYWQ7CivjkYUgPCB0b1wtbWFrZTsKK+ahiOWNtyA8IHJlY29yZHM7Civnmb7mhZXlpKcgPCBiZXJtdWRhOwor5Luj5pW4IDwgYWxnZWJyYTsKK+acieainee0iyA8IHN0cmlwZWQ7CivmnKjnk6YgPCBzaGluZ2xlOwor5oiQ5YqfIDwgc3VjY2VzczsKK+WuieaBr+aXpSA8IHNhYmJhdGg7CivkuK3nq4sgPCBuZXV0cmFsOwor5LiW57SAIDwgY2VudHVyeTsKK+S9juWcsCA8IGxvd2xhbmQ7CivmtbfmvqEgPCBzZWF3ZWVkOwor5LuK5pmaIDwgdG9uaWdodDsKK+ijgee0meapnyA8IHRyaW1tZXI7Civlk4DmsYIgPCBlbnRyZWF0Owor5rSX56auIDwgYmFwdGlzbTsKK+Wmk+mZoiA8IGJyb3RoZWw7CivkuI3nrYkgPCB0b1wtdmFyeTsKK+WFrOeIteWkq+S6uiA8IGR1Y2hlc3M7CivlkI3nvqkgPCB0aXR1bGFyOwor5raI5qW1IDwgcGFzc2l2ZTsKK+awtOmKgCA8IG1lcmN1cnk7CivmmojoiLkgPCBzZWFzaWNrOwor5oe35pW15oSPIDwgaG9zdGlsZTsKK+iBt+W3pSA8IHdvcmtlcnM7CivlrZ/lrZAgPCBtZW5jaXVzOwor5a6Y5Y+4IDwgbGF3c3VpdDsKK+mdnumboyA8IHJlcHJvb2Y7CivmsLjpgaAgPCBmb3JldmVyOwor6YWs6LyJIDwgcGF5bG9hZDsKK+iBveWvqyA8IGRpY3RhdGU7CivomafmkI0gPCBkZWZpY2l0Owor6bq754WpIDwgdHJvdWJsZTsKK+mYv+eIvuW3tOWwvOS6niA8IGFsYmFuaWE7Civlvbzlvpflvozmm7ggPCAyXC1wZXRlcjsKK+WJteeri+iAhSA8IGZvdW5kZXI7Civntq3ku5blkb0gPCB2aXRhbWluOwor6K2P6KqaIDwgY3luaWNhbDsKK+eiuuiqjSA8IGNvbmZpcm07Civoo53nva7niakgPCBmaXh0dXJlOwor546L5qyKIDwgcm95YWx0eTsKK+eOu+WIqee2reS6niA8IGJvbGl2aWE7CivkvIHlnJYgPCBhdHRlbXB0Owor5Y+D6K2w5ZOhIDwgc2VuYXRvcjsKK+e+heebpCA8IGNvbXBhc3M7CivmmJ/mnJ/kuowgPCB0dWVzZGF5Owor54++5a+mIDwgcmVhbGl0eTsKK+izquWcsCA8IHRleHR1cmU7Civpn7PmqILmnIMgPCBjb25jZXJ0Owor6LSK5YqpIDwgc3BvbnNvcjsKK+W/oOiqoCA8IGRldm90ZWQ7Civpq5TogrLloLQgPCBzdGFkaXVtOwor6YSt6YeNIDwgc2VyaW91czsKK+WNsOWDj+a3seWIuyA8IGltcHJlc3M7CivljYrpgJQgPCBoYWxmd2F5Owor5aW96L2JIDwgaW1wcm92ZTsKK+aDoeajjSA8IHZpbGxhaW47CivmhJvniL7omK0gPCBpcmVsYW5kOwor6YCD5Lqh6ICFIDwgcnVuYXdheTsKK+m8u+WtlCA8IG5vc3RyaWw7Civlk4DmgJ0gPCBwZW5zaXZlOwor5oyH5bCO5pWZ5o6IIDwgYWR2aXNlcjsKK+eMlueNlyA8IHJhbXBhbnQ7CivmnpzlnJIgPCBvcmNoYXJkOwor5peB6YKKIDwgbGF0ZXJhbDsKK+WSr+WSr+eskSA8IGNodWNrbGU7CivnlJ/nianlrbggPCBiaW9sb2d5Owor6aOb5b2IIDwgbWlzc2lsZTsKK+iBveWKmyA8IGhlYXJpbmc7Civkvb/mhqTmhaggPCBvdXRyYWdlOwor5pel6KqMIDwgam91cm5hbDsKK+WxheS9j+aWvCA8IGluaGFiaXQ7CivlpJbpnaIgPCBvdXRzaWRlOwor6ZuE6buDIDwgcmVhbGdhcjsKK+acg+acnyA8IHNlc3Npb247CivkuI3ms5UgPCBsYXdsZXNzOwor5LiN55+l5L2V5pWFIDwgc29tZWhvdzsKK+a3oeWFiSA8IHNoaW1tZXI7CivlvYzos73kup4gPCBtZXNzaWFoOwor5rKS55Sa6bq8IDwgbm90aGluZzsKK+Wkp+mMryA8IGJsdW5kZXI7CivogIHlubQgPCBlbGRlcmx5Owor6K6K56GsIDwgc3RpZmZlbjsKK+a1t+WyuCA8IGNvYXN0YWw7CivnhZnngbDnvLggPCBhc2h0cmF5Owor56Sm54mpIDwgbWluZXJhbDsKK+iRl+mZuCA8IGxhbmRpbmc7CivkuI3lnKjkuoYgPCBiZVwtZGVhZDsKK+e0oee5lOWTgSA8IHRleHRpbGU7Civnp5HlrbggPCBzY2llbmNlOwor5ray5YyWIDwgbGlxdWlmeTsKK+mYv+WPuOWMueaelyA8IGFzcGlyaW47CivmlrnoqIAgPCBkaWFsZWN0Owor5Y+k54mpIDwgYW50aXF1ZTsKK+aXpeiQvSA8IHN1bmRvd247Civph5HlhYnploPniI0gPCBzcGFuZ2xlOwor6YO16LK7IDwgcG9zdGFnZTsKK+abluaYpyA8IGlsbGljaXQ7CivkuI3kurrpgZMgPCBpbmh1bWFuOwor6ZuE6ZueIDwgcm9vc3RlcjsKK+aUvumWiyA8IHVubGVhc2g7CivooqvmspLmlLYgPCBmb3JmZWl0Owor5aW06Zq45Yi25bqmIDwgc2xhdmVyeTsKK+e+qOaFlSA8IGVudmlvdXM7Civot6/opb/lvJcgPCBsdWNpZmVyOwor5YyW5a245a62IDwgY2hlbWlzdDsKK+mkheS5viA8IGJpc2N1aXQ7CivmnInlrrMgPCBoYXJtZnVsOwor6YWS57K+IDwgYWxjb2hvbDsKK+ekvuacgyA8IHNvY2lldHk7CivmmrTmlL8gPCB0eXJhbm55Owor546L5ZyLIDwga2luZ2RvbTsKK+aYk+eijiA8IGJyaXR0bGU7Civph5jmrbsgPCBjcnVjaWZ5Owor6KiT57e06ICFIDwgdHJhaW5lcjsKK+a4hea9lOWZqCA8IGNsZWFuZXI7Civpoaflv4wgPCBzY3J1cGxlOwor5oSI5ZCIIDwgdG9cLWhlYWw7CivoqbPov7AgPCByZWNvdW50Owor6aGY5oSPIDwgdG9cLXdpc2g7CivmhJvlvrfnjrIgPCBhZGVsaW5lOwor6L+r5YiH5oCnIDwgdXJnZW5jeTsKK+eOqeWFkiA8IHRvXC1wbGF5Owor5aWz5ryU5ZOhIDwgYWN0cmVzczsKK+S4reWtkCA8IG5ldXRyb247Civph5HmqZggPCBrdW1xdWF0Owor6ZyA6KaBIDwgdG9cLW5lZWQ7CivmgpTmgaggPCByZW1vcnNlOwor5pyA5aSnIDwgYmlnZ2VzdDsKK+acgOWkmiA8IGF0XC1tb3N0Owor6ICV5L2cIDwgZmFybWluZzsKK+aApea1gSA8IHRvcnJlbnQ7Civlt7Tmr5TlgKsgPCBiYWJ5bG9uOwor6ICB5YWsIDwgaHVzYmFuZDsKK+WssOWFkuacnyA8IGluZmFuY3k7Civnmb7okYnnqpcgPCBzaHV0dGVyOwor6YG/5b2I5Z2RIDwgZm94aG9sZTsKK+mmrOS+huilv+S6niA8IG1hbGFzaWE7CivlsbHog6HmoYPmnKggPCBoaWNrb3J5Owor6ISr6KGj5pyNIDwgdW5kcmVzczsKK+S5j+WRsyA8IHRlZGlvdXM7CivwoZyxIDwgdG9cLWVudnk7CivlkbzlkLggPCBicmVhdGhlOwor54yc5bqmIDwgc3VybWlzZTsKK+WRu+WQnyA8IHRvXC1tb2FuOwor5b285b6X5YmN5pu4IDwgMVwtcGV0ZXI7CivpgbTpgbggPCB0b1wtcGljazsKK+Wls+elniA8IGdvZGRlc3M7Civmg7Plg48gPCBpbWFnaW5lOwor5qWt6aSY6ICFIDwgYW1hdGV1cjsKK+WQjOW/lyA8IGNvbXJhZGU7CivmspLmnIkgPCBoYXZlbicndDsKK+WNl+eTnCA8IHB1bXBraW47CivorormmpYgPCB3YXJtaW5nOwor6YeR5a2X5aGUIDwgcHlyYW1pZDsKK+awo+eQgyA8IGJhbGxvb247Civni4LmmrQgPCBmcmFudGljOwor5LuW6Ieq5bexIDwgaGltc2VsZjsKK+WQiuW6iiA8IGhhbW1vY2s7Civlj4rmmYIgPCBpblwtdGltZTsKK+mDqOe9siA8IGRpc3Bvc2U7CivkuZ/kuI0gPCBuZWl0aGVyOwor5Y+v5oaQIDwgcGl0aWZ1bDsKK+Wls+eahyA8IGVtcHJlc3M7CivlrprlsYXogIUgPCBzZXR0bGVyOwor5LiA5aSpIDwgb25lXC1kYXk7CivkuozljYHlpJogPCBvdmVyXC0yMDsKK+aUueijnSA8IHJlbW9kZWw7CivpmL/po5sgPCBob29kbHVtOwor5Y+v5oGoIDwgaGF0ZWZ1bDsKK+aUtueVmeaJgCA8IGJhcnJhY2s7Civms5XlrpggPCBhXC1qdWRnZTsKK+e+juWciyA8IGFtZXJpY2E7CivmnIDkvbMgPCBvcHRpbXVtOwor5bm96Z2IIDwgc3BlY3RlcjsKK+mBi+i9iSA8IHRvXC13b3JrOwor6YGL6Ly4IDwgdHJhbnNpdDsKK+aCsuWKhyA8IHRyYWdlZHk7Civmm7jkv6EgPCBlcGlzdGxlOwor5YqN6KGTIDwgZmVuY2luZzsKK+WwseWvouaZgumWkyA8IGJlZHRpbWU7Civnt5LoqIAgPCBwcmVmYWNlOwor6KqH6ICAIDwgcHJvdWRseTsKK+e8uuW4rSA8IGFic2VuY2U7CivkuIDlj6MgPCByZWFkaWx5Owor5LiD5Y2BIDwgc2V2ZW50eTsKK+eHlem6peeypSA8IG9hdG1lYWw7CivmlrDnlJ8gPCBuZXdib3JuOwor5LiN5YaNIDwgbm9cLW1vcmU7Civkup7mi4nlt7TppqwgPCBhbGFiYW1hOwor5LiW5L+XIDwgcHJvZmFuZTsKK+W5tOmRkSA8IGFsbWFuYWM7Civmr5TnlasgPCBnZXN0dXJlOwor6YeP5a2QIDwgcXVhbnR1bTsKK+eMv+S6uiA8IGFwZVwtbWFuOwor5Y+r5aW9IDwgYXBwbGF1ZDsKK+iHquihjOi7iiA8IGJpY3ljbGU7CivpgJDpgIAgPCByZXB1bHNlOwor5rCR5pW46KiYIDwgbnVtYmVyczsKK+Wwj+aWkem7niA8IHNwZWNrbGU7Civms6jlhaUgPCBwb3VyXC1pbjsKK+ato+e+qSA8IGp1c3RpY2U7Civkvb/ljq3nhakgPCBkaXNndXN0Owor6Im+6L+q55SfIDwgYWRkaXNvbjsKK+aYryA8IGluZGVlZDsKK+i/qyA8IGNvZXJjZTsKK+W/nCA8IHNob3VsZDsKK+W/mCA8IGZvcmdldDsKK+WbvSA8IG5hdGlvbjsKK+i/lCA8IHJldHVybjsKK+W/jSA8IGVuZHVyZTsKK+i/hCA8IGV4dGVuZDsKK+W/hSA8IHN1cmVseTsKK+WHuiA8IGdvXC1vdXQ7Civovr8gPCBmb2xsb3c7CivnnrwgPCBleWVsaWQ7CivlvpcgPCBvYnRhaW47CivovrcgPCBzbW9vdGg7CivlvrQgPCBzdW1tb247CivlvrMgPCB2aXJ0dWU7Civnnq0gPCBicmlnaHQ7CivovpsgPCBiaXR0ZXI7CivlvpAgPCBzbG93bHk7CivlvowgPCBiZWhpbmQ7CivlvoogPCBsaW5nZXI7CivlvbEgPCBzaGFkb3c7CivkuosgPCBhZmZhaXI7CivovZ8gPCBydW1ibGU7CivlvYggPCBwZWxsZXQ7CivkuLsgPCBtYXN0ZXI7CivlvLcgPCBzdHJvbmc7CivlvJsgPCBsb29zZW47CivmsJEgPCBwZW9wbGU7CivnnIwgPCBjb3VudHk7CivnjrAgPCBhcHBlYXI7CivliIYgPCBkaXZpZGU7CivkupsgPCBsaXR0bGU7Civnm7ggPCBtdXR1YWw7CivnkIYgPCByZWFzb247Civnm4ogPCBwcm9maXQ7Civor50gPCBzcGVlY2g7CivlkJEgPCB0b3dhcmQ7CivlrpogPCBkZWNpZGU7CivluqsgPCBhcm1vcnk7CivluqYgPCBkZWdyZWU7CivlupUgPCBib3R0b207CivmiZMgPCBzdHJpa2U7CivkvY0gPCB0aHJvbmU7Civluo8gPCBzZXJpZXM7CivlubwgPCBpbmZhbnQ7CivlubIgPCBvcHBvc2U7CivlhoUgPCBpbnNpZGU7CivnmaogPCBzcGFzbXM7CivliqAgPCBhZGRcLXRvOwor5YyWIDwgY2hhbmdlOwor55mMIDwgY2FuY2VyOwor5bi4IDwgY29tbW9uOwor6LiwIDwgZXhjZWVkOwor5biCIDwgbWFya2V0Owor5omNIDwgdGFsZW50Owor5L2PIDwgcmVzaWRlOwor5ZGYIDwgbWVtYmVyOwor5be7IDwgc2Nyb2xsOwor5oCnIDwgbmF0dXJlOwor5oqlIDwgcmVwb3J0Owor56WeIDwgc3Bpcml0Owor5pWwIDwgbnVtYmVyOwor6LehIDwgc2VhcmNoOwor5Y6fIDwgc291cmNlOwor5behIDwgcGF0cm9sOwor5bedIDwgc3RyZWFtOwor55aKIDwgcmVwZWF0Owor57O7IDwgc3lzdGVtOwor55WgIDwgZ2FyZGVuOwor6K6wIDwgcmVjb3JkOwor5p6XIDwgZm9yZXN0Owor57ufIDwgZ292ZXJuOwor5a2XIDwgbGV0dGVyOwor5bO2IDwgaXNsYW5kOwor6LOqIDwgbWF0dGVyOwor6K66IDwgZGViYXRlOwor6LKwIDwgYm9ycm93Owor5oyHIDwgZmluZ2VyOwor6LKhIDwgd2VhbHRoOwor6IqxIDwgZmxvd2VyOwor5bGkIDwgc3RvcmV5Owor5p2hIDwgY2xhdXNlOwor5bGNIDwgY29ycHNlOwor5bGAIDwgYnVyZWF1Owor5YqeIDwgbWFuYWdlOwor6LC3IDwgdmFsbGV5Owor5Z+OIDwgY2FzdGxlOwor54i2IDwgZmF0aGVyOwor5bCOIDwgZGlyZWN0Owor5a+nIDwgcmVwb3NlOwor6buEIDwgeWVsbG93Owor5b63IDwgZXRoaWNzOwor5a6zIDwgaW5qdXJlOwor5a6uIDwgcGFsYWNlOwor5Y+LIDwgZnJpZW5kOwor5a6IIDwgZGVmZW5kOwor6K6DIDwgcHJhaXNlOwor6ZmFIDwgYm9yZGVyOwor5Y2VIDwgc2luZ2xlOwor5a2kIDwgb3JwaGFuOwor5qChIDwgc2Nob29sOwor542EIDwgcHJpc29uOwor54y+IDwgY3JhZnR5Owor6KyZIDwgaHVtYmxlOwor6KyOIDwgcmlkZGxlOwor54u5IDwgbmFycm93Owor5q+NIDwgbW90aGVyOwor54uZIDwgYW5cLWFwZTsKK+WboiA8IHNwaGVyZTsKK+eLgiA8IGluc2FuZTsKK+iqsiA8IGxlc3NvbjsKK+aLmyA8IGJlY2tvbjsKK+WFtCA8IHRocml2ZTsKK+e6piA8IHRyZWF0eTsKK+ipqSA8IHBvZXRyeTsKK+e7nSA8IHRvXC1jdXQ7CivpgIkgPCBjaG9vc2U7CivmmJ8gPCBhXC1zdGFyOwor6Ki0IDwgYWNjdXNlOwor54ibIDwgcm90dGVuOwor5raIIDwgdmFuaXNoOwor54etIDwgY2FuZGxlOwor5aerIDwgYmVhdXR5Owor5p2oIDwgd2lsbG93Owor5LilIDwgc3RyaWN0Owor54aKIDwgYVwtYmVhcjsKK+WmhCA8IGFic3VyZDsKK+iLjyA8IHJldml2ZTsKK+etlCA8IGFuc3dlcjsKK+WlriA8IHN0cml2ZTsKK+eFqSA8IGJvdGhlcjsKK+ilpCA8IHJhZ2dlZDsKK+S+myA8IHN1cHBseTsKK+WkriA8IGNlbnRlcjsKK+WIlyA8IGFcLWxpbmU7CivnhKYgPCBidXJuZWQ7CivpvpkgPCBkcmFnb247CivlpI8gPCBzdW1tZXI7CivmmKUgPCBzcHJpbmc7CivmgIEgPCBtYW5uZXI7CivoopYgPCBzbGVldmU7CivooosgPCBwb2NrZXQ7Civlia8gPCBhc3Npc3Q7CivlpJ8gPCBlbm91Z2g7CivooZcgPCBzdHJlZXQ7Civmv4AgPCBhcm91c2U7Civpk7YgPCBzaWx2ZXI7CivpmLUgPCBjb2x1bW47CivnroAgPCBzaW1wbGU7Civmr5IgPCBwb2lzb247CivmuZYgPCBhXC1sYWtlOwor6J2JIDwgY2ljYWRhOwor6L+9IDwgcHVyc3VlOwor6bysIDwgd2Vhc2VsOwor57ucIDwgZW5tZXNoOwor5rygIDwgZGVzZXJ0Owor6JyYIDwgc3BpZGVyOwor5Y2gIDwgZGl2aW5lOwor5ZyTIDwgY2lyY2xlOwor5YWwIDwgb3JjaGlkOwor6Zi2IDwgc3RhaXJzOwor6buZIDwgc2lsZW50Owor5L2bIDwgYnVkZGhhOwor5pWIIDwgcmVzdWx0Owor5pS7IDwgYXR0YWNrOwor562WIDwgc2NoZW1lOwor6IKhIDwgdGhpZ2hzOwor6I6rIDwgZG9cLW5vdDsKK+WYmCA8IGV4aGFsZTsKK+eqlyA8IHdpbmRvdzsKK+a3uyA8IGFwcGVuZDsKK+a3tyA8IHRvXC1taXg7Civpt7IgPCBjb25kb3I7CivljZogPCBnYW1ibGU7Civol6QgPCByYXR0YW47CivmmbogPCB3aXNkb207CivmipcgPCByZXNpc3Q7CivllrAgPCB0b1wtZWF0Owor5ZanIDwgbGl2ZWx5Owor5ZaJIDwgdGhyb2F0Owor5rWaIDwgZHJlZGdlOwor6YCDIDwgZXNjYXBlOwor5ZS4IDwgcmVjaXRlOwor6Z2WIDwgcGFjaWZ5Owor56eYIDwgc2VjcmV0Owor5qyyIDwgZGVzaXJlOwor5b6BIDwgaW52YWRlOwor56eLIDwgYXV0dW1uOwor5ZC4IDwgaW5oYWxlOwor6bOpIDwgcGlnZW9uOwor5oKyIDwgc29ycm93Owor5qGlIDwgYnJpZGdlOwor6JK7IDwgcnVzaGVzOwor6JGhIDwgZ3JhcGVzOwor5rGaIDwgZmlsdGh5Owor6IO4IDwgYnJlYXN0Owor6YKuIDwgcG9zdGFsOwor5ZCdIDwgc3Rpbmd5Owor5qiqIDwgYWNyb3NzOwor6JCOIDwgd2l0aGVyOwor6I+rIDwgY2VsZXJ5Owor5oupIDwgc2VsZWN0Owor5oGoIDwgaGF0cmVkOwor56u5IDwgYmFtYm9vOwor6I+TIDwgZnJ1aXRzOwor5peXIDwgYmFubmVyOwor5q67IDwgY2FzaW5nOwor56izIDwgc3RhYmxlOwor6L+5IDwgdHJhY2VzOwor6ZKIIDwgbmVlZGxlOwor5qu7IDwgY2hlcnJ5Owor5byDIDwgcmVqZWN0Owor57SrIDwgcHVycGxlOwor5ouUIDwgdXByb290Owor6IqdIDwgc2VzYW1lOwor6LWPIDwgcmV3YXJkOwor5o+SIDwgaW5zZXJ0Owor6amiIDwgZG9ua2V5Owor5YasIDwgd2ludGVyOwor5ompIDwgZXhwYW5kOwor5qmYIDwgb3JhbmdlOwor6YC8IDwgY29tcGVsOwor6ai3IDwgaGFyYXNzOwor5Yi5IDwgdGVtcGxlOwor6ZWcIDwgbWlycm9yOwor5qiZIDwgYVwtbWFyazsKK+iIjCA8IHRvbmd1ZTsKK+anvSA8IHRyb3VnaDsKK+iHvCA8IG1vcnRhcjsKK+S8jyA8IGNyb3VjaDsKK+aEpCA8IHJlc2VudDsKK+S/hCA8IHN1ZGRlbjsKK+WHjSA8IGZyZWV6ZTsKK+anjCA8IGhhbW1lcjsKK+mYuyA8IGltcGVkZTsKK+mlkSA8IHN0YXJ2ZTsKK+iFkSA8IGJvd2VsczsKK+WFjiA8IHJhYmJpdDsKK+iFiyA8IGFybXBpdDsKK+WEmCA8IHV0bW9zdDsKK+W0hyA8IGVzdGVlbTsKK+mkkyA8IGh1bmdyeTsKK+ajuiA8IGNvZmZpbjsKK+eyiSA8IHBvd2RlcjsKK+ebviA8IHNoaWVsZDsKK+mjoiA8IGh1bmdlcjsKK+aNlSA8IGFycmVzdDsKK+airyA8IGxhZGRlcjsKK+iBmCA8IGVuZ2FnZTsKK+aigyA8IGFcLWNsdWI7CivpoasgPCBzaGl2ZXI7Civpl7cgPCBnbG9vbXk7CivmgpQgPCByZXBlbnQ7CivpgoAgPCBpbnZpdGU7CivpoKwgPCBjaGVla3M7CivmgqMgPCBzdWZmZXI7CivkuJAgPCBiZWdnYXI7Civmn7EgPCBwaWxsYXI7Civmn5ogPCBwb21lbG87Civmn4QgPCBoYW5kbGU7Civkvq4gPCBpbnN1bHQ7Civpk5wgPCBjb3BwZXI7CivmnpUgPCBwaWxsb3c7CivmnbUgPCBwZXN0bGU7Civmia8gPCByaXBcLXVwOwor6LaLIDwgaGFzdGVuOwor5LiyIDwgc3RyaW5nOwor6ZuyIDwgY2xvdWRzOwor6ZuMIDwgZmVtYWxlOwor6ZuHIDwgZW1wbG95Owor6ZqFIDwgY29ybmVyOwor57mVIDwgcmVwYWlyOwor5qOJIDwgY290dG9uOwor57ibIDwgdG9cLXRpZTsKK+iwhSA8IGV4Y3VzZTsKK+WRiCA8IHN1Ym1pdDsKK+e3miA8IHRocmVhZDsKK+aVtyA8IHNwcmVhZDsKK+iEviA8IHNwbGVlbjsKK+e0syA8IGdpcmRsZTsKK+m5sCA8IGZhbGNvbjsKK+aEmiA8IHN0dXBpZDsKK+ezniA8IG1hbnVyZTsKK+eypyA8IHRvaWxldDsKK+aOoSA8IGdhdGhlcjsKK+W4lSA8IHR1cmJhbjsKK+S4qyA8IGZvcmtlZDsKK+aLkCA8IGtpZG5hcDsKK+WAqiA8IGZlZWJsZTsKK+mMkCA8IGdpbWxldDsKK+evriA8IGJhc2tldDsKK+S+hCA8IG5lcGhldzsKK+WPiSA8IGNyb3RjaDsKK+aAliA8IHRlcnJvcjsKK+migSA8IGNvbmZlcjsKK+WSlSA8IG11bWJsZTsKK+iItSA8IHJ1ZGRlcjsKK+aDqSA8IHB1bmlzaDsKK+WSliA8IGNvZmZlZTsKK+a3syA8IGhvbmVzdDsKK+eMtCA8IG1vbmtleTsKK+mciSA8IG1pbGRldzsKK+aCvCA8IGdyaWV2ZTsKK+mAjSA8IHJhbWJsZTsKK+iAjSA8IGZyb2xpYzsKK+aNhiA8IHRpZVwtdXA7CivpgYogPCB3YW5kZXI7Civlu78gPCB0d2VudHk7CivohbsgPCBncmVhc3k7CivnvIYgPCBoYXdzZXI7CivpnpEgPCB0YXRhcnM7CivmhbcgPCBhcmRlbnQ7Civnr7cgPCBhd25pbmc7CivojYYgPCB0aG9ybnM7Civoho8gPCBncmVhc2U7Civpno0gPCBzYWRkbGU7CivnnawgPCBub3RpY2U7Civnu6UgPCBzb290aGU7CivmsKcgPCBveHlnZW47CivlqbcgPCBwcmV0dHk7Civlh78gPCBjaGlzZWw7Civlt6sgPCB3aXphcmQ7Civomb4gPCBzaHJpbXA7CivkvLYgPCBsb25lbHk7CivmpJIgPCBwZXBwZXI7Civmj5YgPCBzYWx1dGU7CivlhokgPCB0ZW5kZXI7CivouLEgPCBzdHJvbGw7CivnjKwgPCB2dWxnYXI7CivopIIgPCBqYWNrZXQ7Civns5kgPCBjb2Fyc2U7Civpl7ggPCBzbHVpY2U7CivpopMgPCBydWluZWQ7CivlsYkgPCBkcmF3ZXI7CivliIEgPCB0cmlja3k7CivmtLwgPCBob2xsb3c7CivokpwgPCBnYXJsaWM7CivmuKMgPCByZWZ1c2U7CivmhZEgPCBhZnJhaWQ7Civlv48gPCByZWdyZXQ7Civnor4gPCByb2xsZXI7CivnlpkgPCBwaW1wbGU7CivmvIkgPCBmaWx0ZXI7CivpmqcgPCB0dW5uZWw7CivphaUgPCBidXR0ZXI7Civpkq4gPCBidXR0b247CivmvLEgPCBnYXJnbGU7Civnm5QgPCBoZWxtZXQ7Civno4sgPCBwb2xpc2g7CivolYkgPCBiYW5hbmE7Civnl7AgPCBwaGxlZ207CivnvoEgPCBoYWx0ZXI7Civor48gPCBkZWNyZWU7CivpnbYgPCB0YXJnZXQ7CivphZ0gPCBsaXF1b3I7CivkurUgPCBzbGlnaHQ7CivosoIgPCBtYXJ0ZW47CivogYYgPCBsaXN0ZW47Civpn6wgPCBzaGVhdGg7CivpuYogPCBtYWdwaWU7CivljYUgPCB0aGlydHk7CivnorMgPCBjYXJib247CivnoasgPCBzdWxmdXI7CivplbAgPCBzaWNrbGU7Civmto4gPCBzYWxpdmE7Civlo5UgPCB0cmVuY2g7CivplJogPCBhbmNob3I7CivpkqAgPCBzb2RpdW07Civnnb8gPCBzaHJld2Q7CivojrogPCBvcmlvbGU7Civog68gPCBwZWx2aXM7Civot7sgPCBhc2NlbmQ7Civps5YgPCB0dXJ0bGU7CivohbwgPCBtb2Rlc3Q7CivlqJMgPCBjb21wbHk7CivliI4gPCBiZWhlYWQ7CivouZkgPCB1cmdlbnQ7Civog5ogPCBlbWJyeW87CivojZQgPCBsaWNoZWU7CivplLUgPCB0aW5rbGU7CivojKcgPCBjb2Nvb247Civon5IgPCBweXRob247CivpuYMgPCBjdWNrb287CivnjZcgPCB1bnJ1bHk7Civokq8gPCBhXC1ydXNoOwor5rKPIDwgaW5mdXNlOwor5ZqPIDwgc25lZXplOwor56C+IDwgZ3JhdmVsOwor5L2fIDwgYVwtbmFtZTsKK+iMnCA8IG1hZGRlcjsKK+aJiCA8IGVzY29ydDsKK+WSmyA8IGVuam9pbjsKK+azlyA8IG11Y291czsKK+mUuSA8IHNob3ZlbDsKK+m5lyA8IG9zcHJleTsKK+WEoSA8IHB1cHBldDsKK+iegiA8IG1hbnRpczsKK+iLkyA8IGZ1bmd1czsKK+WPtSA8IGNhbm5vdDsKK+WvriA8IHNoYW50eTsKK+eKtyA8IGZpZXJjZTsKK+aysSA8IHJpdmVyczsKK+eWoSA8IHVsY2VyczsKK+W+lSA8IGluZHVjZTsKK+mqmyA8IGdhbGxvcDsKK+W+iSA8IHdvbmRlcjsKK+iwqiA8IGNoYXJnZTsKK+S/miA8IHJ1c3RpYzsKK+S/qiA8IHNwb3VzZTsKK+iHviA8IG1vbWVudDsKK+WstCA8IHRvXC13aW47Civng6kgPCByYWdvdXQ7Civpk6QgPCBpbmdvdHM7CivojIEgPCBzcHJvdXQ7CivoiKIgPCBzYW1wYW47CivnopwgPCBncml0dHk7Civlg60gPCBhc3N1bWU7CivnopggPCBpb2RpbmU7Civng68gPCBhbGtlbmU7Civlm78gPCBwZW5cLXVwOwor5ZurIDwgZW50aXJlOwor6ZWNIDwgbmlja2VsOwor5qmQIDwgYVwtc2FjazsKK+adtyA8IGxvcXVhdDsKK+iBkiA8IGNsYW1vcjsKK+e+ryA8IHdldGhlcjsKK+enoyA8IGZvZGRlcjsKK+aovSA8IGdvYmxldDsKK+eEliA8IHNpbW1lcjsKK+i9syA8IHB1bGxleTsKK+mVrSA8IHJhZGl1bTsKK+auhCA8IHRvXC1lbmQ7Civor7AgPCBpbmZvcm07CivojoUgPCBhdHRlbmQ7CivorqsgPCBmaW5pc2g7Civmt6wgPCB0ZW1wZXI7CivlmKwgPCB0b1wtbGFwOwor54O3IDwgYWxrYW5lOwor6JuOIDwgb3lzdGVyOwor54SxIDwgZmxhbWVzOwor6JylIDwgbGl6YXJkOwor6JG6IDwgdGhhdGNoOwor5oG9IDwgZGV2aXNlOwor6JO/IDwgY2xvdmVyOwor55iMIDwgc2V2ZXJlOwor5ZaxIDwgZ3JhbW1lOwor6ZK0IDwgY29iYWx0Owor6LKJIDwgYmFkZ2VyOwor6JyJIDwgbWF5Zmx5Owor6bKRIDwgc2FsbW9uOwor5aiIIDwgbG92ZWx5Owor6I2oIDwgbmV0dGxlOwor56umIDwgcmV2ZXJlOwor54uSIDwgYmFib29uOwor6Ji8IDwgbWlsbGV0Owor6Iy0IDwgZmVubmVsOwor6bKmIDwgbWlubm93Owor5riMIDwgc3RyYWluOwor6ZiaIDwgZ2xhbmNlOwor54+QIDwgZW5hbWVsOwor6Z2bIDwgaW5kaWdvOwor6bunIDwgYVwtZGFyazsKK+igkyA8IG1pZGdlczsKK+apvCA8IGNpdHJ1czsKK+mtjSA8IGRlbW9uczsKK+e/iiA8IGZseWluZzsKK+mVjyA8IGRpc3RpbDsKK+iDvCA8IGNhbGx1czsKK+eKjyA8IHlha1wtb3g7CivnopogPCBzdWJ1cmI7Civoha0gPCBwYWxhdGU7Civps58gPCBiYXJiZWw7CivmroIgPCB0b1wtZGllOwor562aIDwgd2lja2VyOwor55adIDwgaGVybmlhOwor6aqAIDwgYW5cLW9sZDsKK+iSlyA8IFwoaGVyYlwpOwor6I+fIDwgZG9kZGVyOwor6ZmJIDwgZGVmaWxlOwor55agIDwgYVwtc29yZTsKK+aXsCA8IHN1bnNldDsKK+iBjSA8IGVhcndheDsKK+mUhyA8IG9zbWl1bTsKK+mSoSA8IGJhcml1bTsKK+iluyA8IGFcLWxvb3A7Civpk5IgPCBlcmJpdW07Civpk4ggPCBjZXJpdW07CivmpLQgPCBwb3BsYXI7Civoi6EgPCBiYXJsZXk7CivoiIQgPCBhXC1zaG9lOwor6birIDwgdGhydXNoOwor6ZSUIDwgY3VyaXVtOwor6ZOfIDwgaW5kaXVtOwor55yNIDwgc3Vua2VuOwor5qG3IDwgcmFmdGVyOwor6IuEIDwgYmVuenlsOwor6ZmUIDwgYVwtc3RlcDsKK+mqtiA8IGNvY2N5eDsKK+myuyA8IG11bGxldDsKK+ieqCA8IGluc2VjdDsKK+iZvCA8IGFcLWZsZWE7CivnmJUgPCBhc3RobWE7CivplZggPCB0cm93ZWw7Civog4IgPCBhcnNpbmU7Civoj5QgPCB0dXJuaXA7Civlvp7mraQgPCB0aGVuY2U7Civps6Xnvr0gPCBwaW5pb247Civnt6jogIUgPCBlZGl0b3I7CivoqqTnlKggPCBtaXN1c2U7CivlvLfnm5wgPCBiYW5kaXQ7Civoqannr4cgPCBwc2FsbXM7Civmlrnms5UgPCBtZXRob2Q7CivmlL/nrZYgPCBwb2xpY3k7Civlk7rkubPli5XniakgPCBtYW1tYWw7CivkvIrlsLzkvIrlvrcgPCBhZW5laWQ7Civorablr58gPCBwb2xpY2U7Civlo6vluKvoqJggPCBqdWRnZXM7Civnmbzpm7vmqZ8gPCBkeW5hbW87CivnvarkurogPCBzaW5uZXI7CivlpKfngq4gPCBjYW5ub247CivlpKfngb0gPCBwbGFndWU7CivloZ7niL7ntq3kup4gPCBzZXJiaWE7CivlkInku5YgPCBndWl0YXI7Civmr4Dmu4UgPCBwZXJpc2g7CivnqYbmlq/mnpcgPCBtdXNsaW07Civplovou4rkurogPCBkcml2ZXI7CivluLbph6YgPCBidWNrbGU7Civli5XniakgPCBhbmltYWw7Civkvb/vuY3osZDlr4wgPCBlbnJpY2g7Civnt4rnuK4gPCByZWR1Y2U7Civnh5LnhKYgPCBzY29yY2g7CivpoJjkuosgPCBjb25zdWw7CivlmLbllZ7ogbIgPCBob2Fyc2U7CivlpKfmtaogPCBiaWxsb3c7CivnnaHokZcgPCBhc2xlZXA7CivmsKPmga8gPCBicmVhdGg7Civmk7Hnva4gPCBzaGVsdmU7CivmlbTmvZQgPCBuZWF0bHk7CivlvIrnl4UgPCBtYWxhZHk7CivpgbjnpaggPCBhXC12b3RlOwor5Ym956uKIDwgcGlyYXRlOwor57eo56K8IDwgY29kaW5nOwor5ouU5bCW5YWSIDwgdGlwdG9wOwor5beo6aCtIDwgdHljb29uOwor6aCC5LqLIDwgdXNlZnVsOwor5pKV6KOCIDwgbWFuZ2xlOwor6ZmE6JGXIDwgYWRoZXJlOwor5LyK5bC85Lqe5pavIDwgYWVuZWFzOwor5q2j55W2IDwgdGltZWx5Owor5oCS5ZC8IDwgYmVsbG93Owor5aWH5pmvIDwgbWFydmVsOwor54mI5byPIDwgZm9ybWF0Owor6amF6YCQ5Ye65aKDIDwgZGVwb3J0Owor6YGg56iLIDwgcmVtb3RlOwor5Y2K5b6RIDwgcmFkaXVzOwor6ZmN6IeoIDwgYmVmYWxsOwor566h55CG5Lq6IDwga2VlcGVyOwor6Yac5YyWIDwgZGVmYW1lOwor54uC5Lq6IDwgbWFkbWFuOwor5aSn5qG2IDwgYmFycmVsOwor5pyJ5Lq65oOFIDwgaHVtYW5lOwor6KW/57SF5p+/IDwgdG9tYXRvOwor55yL6KaLIDwgdG9cLXNlZTsKK+ino+iEqyA8IHJlbGllZjsKK+egtOaVlyA8IGJlYXRlbjsKK+aXl+W5nyA8IGVuc2lnbjsKK+awtOWjuiA8IGtldHRsZTsKK+auluawkSA8IGNvbG9ueTsKK+aXi+W+iyA8IG1lbG9keTsKK+WLleapnyA8IG1vdGl2ZTsKK+WOreWApiA8IGRyZWFyeTsKK+WFp+mZuCA8IGlubGFuZDsKK+W3pemMoiA8IHNhbGFyeTsKK+WFrOmWiyA8IHB1YmxpYzsKK+WOn+WFiCA8IGZvcm1lcjsKK+WFq+mWiyA8IG9jdGF2bzsKK+eGiueGiiA8IHJhZ2luZzsKK+efreatjCA8IGJhbGxhZDsKK+WNmuWjqyA8IGRvY3RvcjsKK+W/oOWRiiA8IGFkdmljZTsKK+egsuaJiyA8IGd1bm5lcjsKK+WkmuaYnyA8IHN0YXJyeTsKK+W+i+W4qyA8IGxhd3llcjsKK+WFq+WIhumfs+espiA8IHF1YXZlcjsKK+W+ruWmmSA8IHN1YnRsZTsKK+WlveWlvSA8IG5pY2VseTsKK+e4veaYryA8IGFsd2F5czsKK+mWi+mOliA8IHVubG9jazsKK+atpea4rCA8IHBhY2luZzsKK+eHn+aVkSA8IHJlc2N1ZTsKK+aVrOacjSA8IGFkbWlyZTsKK+WkqeeruueJoeS4uSA8IGRhaGxpYTsKK+W+l+WunCA8IHByb3BlcjsKK+WInee0miA8IGp1bmlvcjsKK+i8lemshiA8IGdlbnRsZTsKK+eIkOW6iiA8IGhlYXJ0aDsKK+isiuWgsSA8IHRvXC1saWU7Civnorrkv50gPCBlbnN1cmU7Civpm6LlpYfmnInotqMgPCBxdWFpbnQ7CivpgYvnlKggPCB0b1wtdXNlOwor57Wy57WoIDwgdmVsdmV0Owor54mI5ZyWIDwgZG9tYWluOwor5pS/5qyKIDwgcmVnaW1lOwor5b6I5bCRIDwgc2VsZG9tOwor54i15aOrIDwga25pZ2h0Owor6KWv6KOhIDwgbGluaW5nOwor6KyZ5ZKMIDwgbWVla2x5Owor57ay55CDIDwgdGVubmlzOwor6I2S6JWqIDwgYmFycmVuOwor6Zu75b2x6ZmiIDwgY2luZW1hOwor5aSp5oCnIDwgaW5ib3JuOwor5bCP5aaW57K+IDwgZ29ibGluOwor6YeR57Wy6ZuAIDwgY2FuYXJ5Owor5q2Q5rSyIDwgZXVyb3BlOwor5Yu+5byVIDwgc2VkdWNlOwor54ax5pybIDwgYXNwaXJlOwor57K+6YG4IDwgY2hvc2VuOwor6KqY5ouQIDwgYWJkdWN0Owor6Kqg5oeHIDwgaGVhcnR5Owor5YuV5ZCN6KmeIDwgZ2VydW5kOwor6YCa55+lIDwgbm90aWZ5Owor5Yi655ebIDwgdGluZ2xlOwor5b615Y+sIDwgZW5saXN0Owor5q2h5qiCIDwgZ2FpZXR5Owor56u26LO96ICFIDwgcGxheWVyOwor5YWI6YuSIDwgaGVyYWxkOwor57eo5bm05Y+yIDwgYW5uYWxzOwor5pW15oSPIDwgZW5taXR5Owor5be06KW/IDwgYnJhemlsOwor57y65rCn55eHIDwgYW5veGlhOwor54mp5Lu2IDwgb2JqZWN0Owor5Y245LiLIDwgdW5sb2FkOwor5YyF5a65IDwgcGFyZG9uOwor6KqY5oORIDwgZW50aWNlOwor54mn5Lq6IDwgcGFzdG9yOwor5aSn5Zyw5rSeIDwgY2F2ZXJuOwor5aSW5b2iIDwgZmlndXJlOwor6Zqo5qmfIDwgcmFuZG9tOwor5YW16K6KIDwgbXV0aW55Owor55m85ZiO5ZiO6IGyIDwgcmF0dGxlOwor5pWP5o23IDwgbmltYmxlOwor54mb5LuUIDwgY293Ym95Owor5o+Q6YaSIDwgcmVtaW5kOwor6Ke454qvIDwgb2ZmZW5kOwor5aWq5Y+WIDwgc25hdGNoOwor5aSr5a2QIDwgcGVkYW50Owor5aSq5a2QIDwgcHJpbmNlOwor55yf56m6IDwgdmFjdVw6bTsKK+auuuWusyA8IG11cmRlcjsKK+aumOW/jSA8IGJsb29keTsKK+mWkuipsSA8IGdvc3NpcDsKK+i+reiBtyA8IHJlc2lnbjsKK+e3muainSA8IHN0cmVhazsKK+a7kee/lOapnyA8IGdsaWRlcjsKK+W+kuWLniA8IGZ1dGlsZTsKK+W+l+WIsCA8IHRvXC1nZXQ7CivluIzoh5ggPCBncmVlY2U7Civmv7rplosgPCBzcGxhc2g7CivpgYrmrbcgPCB0cmF2ZWw7Civlvqnku4cgPCBhdmVuZ2U7CivmrpjppJjniakgPCBsaXR0ZXI7Civlo5PmiYEgPCBzcXVhc2g7CivoqanmhI8gPCBwb2V0aWM7CivmlJ3mlL8gPCByZWdlbnQ7CivmqJnoqp4gPCBzbG9nYW47CivkuI3lj6/lkYrkurogPCBoaWRkZW47CivnmbzoqpMgPCB0b1wtdm93Owor5qmh6IagIDwgcnViYmVyOwor5Yqb6Laz5Lul5YGaIDwgYWZmb3JkOwor5Zyo77mN5pyf6ZaTIDwgZHVyaW5nOwor5Zyw6ZC1IDwgc3Vid2F5Owor5Y2B5LiAIDwgZWxldmVuOwor5b6e5LqLIDwgZ29cLWZvcjsKK+eGseW4tiA8IHRyb3BpYzsKK+acieiyrOS7uyA8IGxpYWJsZTsKK+mbnOW3pSA8IHBvcnRlcjsKK+WHuueUoiA8IG91dHB1dDsKK+WlouS+iCA8IGx1eHVyeTsKK+aOm+mJpCA8IGNvdXBsZTsKK+e0lOeyuSA8IHB1cmVseTsKK+eoruaXj+S4u+e+qSA8IHJhY2lzbTsKK+WtqeWtkOawoyA8IGJveWlzaDsKK+Wwj+eJneeJmyA8IGhlaWZlcjsKK+i3keatpeiAhSA8IHJ1bm5lcjsKK+mcsuWHuiA8IGV4cG9zZTsKK+aUgOaYhyA8IHJpc2luZzsKK+ino+a4tCA8IHF1ZW5jaDsKK+atjOaJiyA8IHNpbmdlcjsKK+WQkOe2rOmbniA8IHR1cmtleTsKK+W3oeiIqiA8IGNydWlzZTsKK+W4g+e3miA8IHdpcmluZzsKK+ato+W8jyA8IGZvcm1hbDsKK+WGsOeusSA8IGljZWJveDsKK+eEoeazlSA8IHVuYWJsZTsKK+mAlea1gSA8IHJ1bm9mZjsKK+Wkp+WQgyA8IGdvYmJsZTsKK+avq+S4jSA8IGhhcmRseTsKK+mBk+aVmSA8IHRhb2lzbTsKK+m9tSA8IHVuZXZlbjsKK+iouuaJgCA8IGNsaW5pYzsKK+mBuuaBqCA8IGdydWRnZTsKK+m8qyA8IG1hcm1vdDsKK+m8lCA8IGFcLWRydW07CivprIbppIUgPCBtdWZmaW47CivliqDltJkgPCBnYWxsb247CivpuaggPCBhbnRodXM7Civot6jmjqXlmaggPCBqdW1wZXI7CivmlZnloIIgPCBjaHVyY2g7Civpt4cgPCBjaGlja3M7Civptr0gPCBhXC1oYXdrOwor6ba4IDwgc2lza2luOwor6Kme5bC+IDwgc3VmZml4Owor6bWAIDwgaG9vcG9lOwor6YCx5pyfIDwgcGVyaW9kOwor6bSiIDwgXChkdWNrXCk7CivosqDmk5TogIUgPCBiZWFyZXI7Civpm7bllK4gPCByZXRhaWw7CivptIMgPCBzaHJpa2U7CivlnKjou4ogPCBhYm9hcmQ7CivlvpLmraXml4XooYwgPCBoaWtpbmc7CivpsY4gPCBcKGZpc2hcKTsKK+mxhiA8IHBvdWxwZTsKK+iMtueilyA8IHRlYWN1cDsKK+e3nuW4tiA8IHJpYmJvbjsKK+WIhua0viA8IGFzc2lnbjsKK+WQiOWUseWcmCA8IGNob3J1czsKK+mYu+apiCA8IHRod2FydDsKK+aQluexgyA8IGNyYWRsZTsKK+mgmOWwjuiAhSA8IGxlYWRlcjsKK+iRl+WQjSA8IGZhbW91czsKK+W8t+WLoiA8IG1pZ2h0eTsKK+e0rueHnyA8IGVuY2FtcDsKK+mpqyA8IGhvcnNlczsKK+WHuea0niA8IGNhdml0eTsKK+W8seWMliA8IHdlYWtlbjsKK+mZsOaItiA8IHZhZ2luYTsKK+aTiuaVlyA8IGRlZmVhdDsKK+mAsuaOpSA8IGFjY2VzczsKK+mmvyA8IGFuXC1hc3M7CivntZXmsKMgPCBleHBpcmU7Civmm7Lmo43nkIMgPCBob2NrZXk7CivoqLzlr6YgPCB2ZXJpZnk7CivppKQgPCBpbmNpdGU7CivpgKPmk4ogPCBiYXR0ZXI7CivmlZnljYAgPCBwYXJpc2g7Civngavnrq0gPCByb2NrZXQ7CivpmrHlo6sgPCBoZXJtaXQ7Civot6/nlLHlmaggPCByb3V0ZXI7Civnn63lio0gPCBkYWdnZXI7CivpoZIgPCBzb2xlbW47CivlvLflgaUgPCBzdHVyZHk7CivkuIDnr4BcKOipqVwpIDwgc3RhbnphOwor5q2m5ZmoIDwgd2VhcG9uOwor6Z6aIDwgYnJpZGxlOwor54Wk5bGRIDwgY2luZGVyOwor5bmz5p2/IDwgdGFibGV0Owor5Ye55qe9IDwgc29ja2V0Owor5Yiu5o6JIDwgc2NyYXBlOwor6auY6ZuFIDwgZGFpbnR5Owor6ZuCIDwgXChiaXJkXCk7CivniLbmr43opqogPCBwYXJlbnQ7CivmraHllpwgPCBqb3lmdWw7CivliIbmnp0gPCBicmFuY2g7CivmraXlk6ggPCBzZW50cnk7CivlgrPpgZQgPCBjb252ZXk7CivljJblpp3lk4EgPCBtYWtldXA7CivmgKXkv4PogbIgPCBwYXR0ZXI7Civpl4kgPCBjdXJ2ZWQ7CivooaHph48gPCB3ZWlnaHQ7Civkvb/noazljJYgPCBoYXJkZW47Civpqqjpq5MgPCBtYXJyb3c7Civpk68gPCBjZXNpdW07CivmkJTnmaIgPCB0aWNrbGU7Civpm5Xlg48gPCBzdGF0dWU7CivpkZ4gPCBzb2xkZXI7CivmraPljYggPCBtaWRkYXk7CivpkYAgPCBpb25pdW07CivpkJ0gPCBhXC1waWNrOwor6Y6SIDwgdG9cLWhvZTsKK+S6pOaYk+iAhSA8IGRlYWxlcjsKK+mOhSA8IHRvXC1zYXc7CivmkqvmirEgPCBjYXJlc3M7CivpjKkgPCB2ZXNzZWw7CivmlZHkuLsgPCBzYXZpb3I7CivnspjnspggPCBzdGlja3k7Civml6Xlhafnk6YgPCBnZW5ldmE7Civpi5kgPCBtaXNmaXQ7Civlt7TniL4gPCBiYWx0aWM7CivnmoTnorogPCByZWFsbHk7Civpi4UgPCB6aW5jdW07CivpgY7lpLEgPCBkZWZlY3Q7CivpioDooYzlrrYgPCBiYW5rZXI7CivmpI3nianlrbggPCBib3Rhbnk7CivntIDlv7XnjY4gPCB0cm9waHk7CivphbQgPCBsZWF2ZW47Civplbfnn60gPCBsZW5ndGg7CivluavmiYsgPCBoZWxwZXI7Civlgb3pgKDnmoQgPCBmb3JnZWQ7Civml4XooYzoo53lgpkgPCBvdXRmaXQ7CivpmYTlurggPCB2YXNzYWw7CivpganlkIggPCB0b1wtZml0Owor56ys5LqM5qyhIDwgc2Vjb25kOwor6auY6YGUIDwgYXR0YWluOwor6bWd5Y2155+zIDwgcGViYmxlOwor5pyJ5rCj5rS+IDwgbG9yZGx5Owor5YK15YuZ5Lq6IDwgZGVidG9yOwor6Iqx57KJIDwgcG9sbGVuOwor6YCMIDwgcGxlYXNlOwor6L+NIDwgZmFsdGVyOwor6L2cIDwgaGVhcnNlOwor55m955e0IDwgaWRpb2N5Owor5bO96LC3IDwgY2FueW9uOwor6LqnIDwgc2FuZGFsOwor6KGo6KaqIDwgY291c2luOwor6KeA5b+1IDwgbm90aW9uOwor6LihIDwgY3VybGVkOwor6KOB57irIDwgdGFpbG9yOwor5o6h57SNIDwgYWNjZXB0Owor6KOc56iuIDwgcmVzZWVkOwor5bCP56Kf5a2QIDwgc2F1Y2VyOwor6LKqIDwgZ3JlZWR5Owor5Yaw5p+xIDwgaWNpY2xlOwor6Iie6LmI5a62IDwgZGFuY2VyOwor6Zi/5aeoIDwgYXVudGllOwor57ea5LiKIDwgb25saW5lOwor6K2GIDwgc2NyZWFtOwor6Ku1IDwgbXV0dGVyOwor6ama6aetIDwgZnJpZ2h0Owor57Sg5o+PIDwgc2tldGNoOwor6ZaS5re3IDwgbG9pdGVyOwor6Km7IDwgb3JkZXJzOwor6KmXIDwgdG9cLXNweTsKK+aRn+aKsSA8IHRvXC1odWc7Civoh6rouqsgPCBpdHNlbGY7CivpgLLlj6MgPCBpbXBvcnQ7CivmjqHnpKYgPCBtaW5pbmc7Civopa4gPCBjb2xsYXI7Civmk77kuoIgPCBpbmZlc3Q7CivntZDlsL4gPCBlbmRpbmc7CivplqPmqJMgPCBnYXJyZXQ7CivoirHnlJ8gPCBwZWFudXQ7CivoopogPCBncmVhdmU7CivpgY7ku70gPCB1bmR1bHk7CivpqZ/pm6ggPCBzaG93ZXI7CivluYPluZUgPCBzY3JlZW47Civkvb/mv5XpgI8gPCBkcmVuY2g7CivooKkgPCBhXC10b2FkOwor6KCBIDwgbGFydmFlOwor5aiB5aOr5b+M6YWSIDwgd2hpc2t5Owor5YWJ5r6kIDwgbHVzdGVyOwor6YCd5Y67IDwgZWxhcHNlOwor6JujIDwgYmVldGxlOwor6JuMIDwgY3JpY2tlOwor5YWJ5ruRIDwgZ2xvc3N5Owor6YCV5ZCRIDwgcmFkaWFsOwor6JmWIDwgdG9cLWNyeTsKK+aJueipleWutiA8IGNyaXRpYzsKK+ebuOW3riA8IGRpZmZlcjsKK+iWkSA8IGdpbmdlcjsKK+mXnOW/gyA8IGNhcmluZzsKK+WcqOa3seiZlSA8IGRlZXBseTsKK+iUlCA8IHJhZGlzaDsKK+iTmiA8IG94YWxpYzsKK+iSjiA8IHBpbmFuZTsKK+aKtemBlCA8IGFycml2ZTsKK+WLneWIqeiAhSA8IHZpY3RvcjsKK+WcsOeUoiA8IGVzdGF0ZTsKK+mAo+Wtl+espuiZnyA8IGh5cGhlbjsKK+iPhiA8IGp1bmdsZTsKK+W7oumZpOi7jeWCmSA8IGRpc2FybTsKK+WxgOmdoiA8IGFzcGVjdDsKK+iMoiA8IHNlZGdlczsKK+i5uui5uuadvyA8IHNlZXNhdzsKK+a+seeyiSA8IHN0YXJjaDsKK+aomeamnCA8IGZsYXVudDsKK+iJoiA8IGFcLW1hc3Q7Civmu5Hpm6ogPCB0b1wtc2tpOwor5Zue57WVIDwgcmVidWZmOwor6KWq5bi2IDwgZ2FydGVyOwor57aB5L2PIDwgZmFzdGVuOwor55y85YWJIDwgdmlzaW9uOwor56Oo5Z2K5Li7IDwgbWlsbGVyOwor5qij5pysIDwgc2FtcGxlOwor54OI5aOrIDwgbWFydHlyOwor57K+5piOIDwgYXN0dXRlOwor6IWz6ZCQIDwgZmV0dGVyOwor6IO5IDwgY29va2VkOwor55m95p6cIDwgZ2lua2dvOwor5biG5biDIDwgY2FudmFzOwor6Lez6YCyIDwgcGx1bmdlOwor5pyJ6Zec6YCjIDwgcmVsYXRlOwor5aSa5qi55pyoIDwgd29vZGVkOwor6ZmE5LiKIDwgYXR0YWNoOwor5oqs6LW3IDwgdXBsaWZ0Owor6aGb5YCS6YGO5L6GIDwgaW52ZXJ0Owor6ICkIDwgcGxvdWdoOwor5ZCx5ZCx6IGyIDwgc3F1ZWFrOwor5bm+5LmOIDwgYWxtb3N0Owor54CJ5rmWIDwgbGFnb29uOwor572rIDwgaGluZGVyOwor572lIDwgaW1wZXRlOwor57Ch55u0IDwgc2ltcGx5Owor5pyq5a6M5oiQIDwgdW5kb25lOwor57moIDwgYVwta25vdDsKK+WFieaYryA8IHNvbGVseTsKK+e4hiA8IGFcLXJvcGU7CivntabkuoggPCBhY2NvcmQ7CivkuIPmnIjkuIDomZ8gPCBqdWx5XC0xOwor6KSH5pW4IDwgcGx1cmFsOwor55m95pCtIDwgbm9cLXVzZTsKK+mtlOizveWFiyA8IG1vc2FpYzsKK+iIqueoiyA8IGZsaWdodDsKK+e0qSA8IHRvXC1zZXc7CivntJ8gPCBhXC1zYXNoOwor57SDIDwgYVwtY29yZDsKK+aPtOaJiyA8IHN1Y2NvcjsKK+W4neWciyA8IGVtcGlyZTsKK+iMtuWjuiA8IHRlYXBvdDsKK+S8r+S7suWPlOWtoyA8IGVsZGVzdDsKK+exsiA8IGFwcGVhbDsKK+ebn+WciyA8IGFsbGllczsKK+ewiSA8IGRlcHV0eTsKK+ijgeaxuiA8IHJ1bGluZzsKK+evpSA8IGJ1bGdsZTsKK+WvpumrlCA8IGVudGl0eTsKK+eumSA8IHF1aXZlcjsKK+eDj+W5sumBlCA8IHVnYW5kYTsKK+e0ouWPliA8IHRvXC1hc2s7CivluK3ljbcgPCBlbmd1bGY7CivkuI3norrlr6YgPCB1bnRydWU7CivlnLDmr68gPCBjYXJwZXQ7Civnq4kgPCBhXC1ob2xlOwor5YWr5bqmIDwgb2N0YXZlOwor55So6KqeIDwgc3ludGF4Owor6by75Y+j6YOo5YiGIDwgbXV6emxlOwor5bCW6IGy5ZW85ZOtIDwgc3F1ZWFsOwor56+A57SEIDwgZnJ1Z2FsOwor56WPIDwgc2hyaW5lOwor6L6m5YWs5a6kIDwgb2ZmaWNlOwor5om/6Ku+IDwgZWZmb3J0Owor6KGb55SfIDwgaGVhbHRoOwor6KOc5pWRIDwgcmVtZWR5Owor5L+u6KiCIDwgcmV2aXNlOwor576F6aas5pu4IDwgcm9tYW5zOwor6L+E5LuKIDwgc29cLWZhcjsKK+WvpumamyA8IGFjdHVhbDsKK+edqiA8IHNweVwtb247CivnnL4gPCBtYXNzZXM7CivlmJfoqaYgPCB0b1wtdHJ5Owor5Z6C5bmVIDwgY2Fub3B5Owor6KCf562GIDwgY3JheW9uOwor5pyN5YuZ5ZOhIDwgd2FpdGVyOwor5ZG96YGL6Ki75a6aIDwgb3JkYWluOwor5Lq66aCt542F6LqrIDwgc3BoaW54Owor55qAIDwga2VybmVsOwor5LiN5bm45LmL5LqLIDwgbWlzaGFwOwor6JyY6Jub57ayIDwgY29id2ViOwor55aDIDwgaGFtbGV0Owor5Z+35LqLIDwgZGVhY29uOwor55W9IDwgZ3JvdW5kOwor5oiQ6ZW3IDwgbWF0dXJlOwor5rqd6YGTIDwgZ3Jvb3ZlOwor6Zi/57Gz5be0IDwgYW1vZWJhOwor6L6y5Lq6IDwgZmFybWVyOwor5ru+6JC9IDwgdHVtYmxlOwor6J6N6KejIDwgbW9sdGVuOwor5ZyW5qGIIDwgZGVzaWduOwor6IWU6Kq/IDwgYWNjZW50Owor5L+u6KOc5YygIDwgdGlua2VyOwor6LWw6YyvIDwgYXN0cmF5Owor54+UIDwgXChqYWRlXCk7CivnjpMgPCBwZWFybHk7Civnr4DnnIEgPCBzYXZpbmc7CivnjLogPCBqYWNrYWw7Civkv6HomZ8gPCBzaWduYWw7CivlsI/ospMgPCBraXR0ZW47CivooYzngrogPCBhY3Rpb247CivlpKfnkIbnn7MgPCBtYXJibGU7CivlnKjvuY3kuYvml4EgPCBiZXNpZGU7CivmjIHmnInkurogPCBob2xkZXI7CivnhYMgPCByZW1vdmU7CivmkpLlk4jmi4kgPCBzYWhhcmE7CivlpKfpkK7liIAgPCBzY3l0aGU7Civln4vkvI8gPCBhbWJ1c2g7CivntITnv7Dkuozmm7ggPCAyXC1qb2huOwor5bCN6KmxIDwgZGlhbG9nOwor56ym6JmfIDwgc3ltYm9sOwor54CMIDwgcGxlbnR5Owor6IO46YedIDwgYnJvb2NoOwor5r+1IDwgYVwtYmFuazsKK+aQreS5mCA8IGVtYmFyazsKK+a+vCA8IGJsZWFjaDsKK+Wom+aoguWgtCA8IHJlc29ydDsKK+WFq+WNgSA8IGVpZ2h0eTsKK+ewuOaPmiA8IHdpbm5vdzsKK+ajkuezliA8IHN1Y2tlcjsKK+eul+ebpCA8IGFiYWN1czsKK+mGg+m7g+eTnCA8IHBpY2tsZTsKK+a4qCA8IGFcLWNvdmU7Civmt58gPCB0dXJiaWQ7Civnsr7lipsgPCBlbmVyZ3k7CivmlLblibLogIUgPCByZWFwZXI7CivlgrPmn5MgPCBpbmZlY3Q7Civlt6XkurogPCB3b3JrZXI7CivmtJ8gPCBzbml2ZWw7Civms60gPCBhXC1yYWZ0Owor5rCrIDwgYW1vbmlhOwor6LW36Ki0IDwgdG9cLXN1ZTsKK+idl+ifsiA8IGxvY3VzdDsKK+WCs+aVmSA8IHByZWFjaDsKK+i8g+WlvSA8IGJldHRlcjsKK+iKseWciCA8IHdyZWF0aDsKK+apsCA8IGFcLXNwYXI7CivohY7oh58gPCBraWRuZXk7CivmqaQgPCBzdGFtZW47CivmqZwgPCBhXC1wb3N0Owor5qmVIDwgYVwtcHJvcDsKK+aosiA8IGp1anViZTsKK+i3r+eoiyA8IGNvdXJzZTsKK+WFiOWJjSA8IGJlZm9yZTsKK+aGgumssSA8IHN1bGxlbjsKK+ieuuaXi+mJlyA8IHdyZW5jaDsKK+WPg+itsOmZoiA8IHNlbmF0ZTsKK+epl+mjviA8IHRhc3NlbDsKK+aloiA8IHRpbmRlcjsKK+eRnumHkSA8IHJ1aWppbjsKK+aKseeXhSA8IGJlXC1pbGw7CivlgrPmjoggPCBpbXBhcnQ7Civou4rluqsgPCBnYXJhZ2U7CivmuKzph48gPCBzdXJ2ZXk7CivlrZfpppYgPCBwcmVmaXg7CivprZrlpKsgPCBmaXNoZXI7CivmpKcgPCBndXR0ZXI7Civmo4MgPCBhXC1wZWFyOwor5qGyIDwgcXVpbmNlOwor6Iqx5ZOoIDwgZ2FyaXNoOwor6LyV5ZKsIDwgbmliYmxlOwor5qKd57SLIDwgc3RyaXBlOwor6Ie05q27IDwgZGVhZGx5Owor5Lu75L2V5Lq6IDwgYW55b25lOwor6LSW6YeRIDwgcmFuc29tOwor6KGM5pifIDwgcGxhbmV0Owor5puAIDwgc3Rvcm15Owor5Zue5oa2IDwgcmVjYWxsOwor56mA6aGeIDwgY2VyZWFsOwor5YG15p+lIDwgZGV0ZWN0Owor5pe7IDwgaGVhdmVuOwor5a656KixIDwgcGVybWl0Owor5pWhIDwgcmVidWtlOwor5pWCIDwgZGVkdWN0Owor5Y2B5Zub6KGM6KmpIDwgc29ubmV0Owor5pOTIDwgdG9cLXJ1YjsKK+aciemBk+W+tyA8IGNoYXN0ZTsKK+a8o+a8qiA8IHJpcHBsZTsKK+S6jOiAheS5i+S4gCA8IGVpdGhlcjsKK+aNvSA8IGNsdXRjaDsKK+Wci+WkliA8IGFicm9hZDsKK+a2sumrlCA8IGxpcXVpZDsKK+iXneihk+WutiA8IGFydGlzdDsKK+W0juW2hyA8IHJ1Z2dlZDsKK+mkkemkkSA8IHBhc3RyeTsKK+mkkOmjsiA8IHJlcGFzdDsKK+S9v+iGqOiEuSA8IGRpbGF0ZTsKK+S9leiZlSA8IHdoZW5jZTsKK+S/oeeUqCA8IGNyZWRpdDsKK+e0hOe/sOS4ieabuCA8IDNcLWpvaG47CivlsI/mj5DnkLQgPCBmaWRkbGU7Civlm6DlrZAgPCBmYWN0b3I7CivmgZ8gPCBzY2FyZWQ7Civmi7Pmk4ogPCBib3hpbmc7Civou5/ljJYgPCBzb2Z0ZW47CivlronoqbMgPCBzZXJlbmU7Civmh7bmtIvmtIsgPCBsYXppbHk7CivntITnv7DkuIDmm7ggPCAxXC1qb2huOwor5omj55WZIDwgZGV0YWluOwor5p2+6ZueIDwgZ3JvdXNlOwor5byjIDwgbWlkZGxlOwor6auY5bqmIDwgaGVpZ2h0Owor5buGIDwgYVwtcm9vbTsKK+eVsOaVmSA8IGhlcmVzeTsKK+W3pCA8IGFcLW1hbmU7Civlt5ggPCBzdW1taXQ7CivltpMgPCBib3NoYW47CivltL8gPCBjbGlmZnM7CivlnLDkuLsgPCBhXC1ob3N0Owor6aas5oiy5ZyYIDwgY2lyY3VzOwor6auY5bGxIDwgYWxwaW5lOwor55Sf5ravIDwgY2FyZWVyOwor5L2c6ICFIDwgYXV0aG9yOwor5oyq5aiBIDwgbm9yd2F5Owor5bCFIDwgc3ViZHVlOwor5bCL55qEIDwgaG9taW5nOwor5a+OIDwgZHJvd3N5Owor6aas6Yi06JavIDwgcG90YXRvOwor5a2+IDwgYVwtYmFieTsKK+S9v+i9ieWQkSA8IGRpdmVydDsKK+aykuacieS6uiA8IG5vYm9keTsKK+WsgyA8IHNpc3RlcjsKK+WrqiA8IGhhbmtlcjsKK+WpvCA8IHBlcnNvbjsKK+WNmueJqemkqCA8IG11c2V1bTsKK+WokiA8IG1hdHJvbjsKK+aci+m7qCA8IGNsaXF1ZTsKK+emruaLnOWggiA8IGNoYXBlbDsKK+a3t+ihgCA8IGh5YnJpZDsKK+i3i+a2iSA8IHRydWRnZTsKK+WkrCA8IHBhcnRlZDsKK+WDheWDhSA8IGJhcmVseTsKK+a8j+aWlyA8IGZ1bm5lbDsKK+S4jemAj+aYjiA8IG9wYXF1ZTsKK+WgpyA8IGFkam9pbjsKK+S5s+mgrSA8IG5pcHBsZTsKK+eQhuirliA8IHRoZW9yeTsKK+S7i+izqiA8IG1lZGl1bTsKK+WavyA8IGFcLWx1bXA7CivnlLHmlrwgPCBkdWVcLXRvOwor5ZmaIDwgZmF0aG9tOwor5ZKM6aKoIDwgYnJlZXplOwor5ZaGIDwgYVwtc2FnZTsKK+aJtuakjSA8IGZvc3RlcjsKK+eSsOeQgyA8IGdsb2JhbDsKK+WUqyA8IHRvXC1odW07CivpmaTkuobkuYvlpJYgPCBleGNlcHQ7CivllIggPCB0b1wtc29iOwor5ZOkIDwgamFyZ29uOwor5L6/5rGgIDwgdXJpbmFsOwor5ZGuIDwgdG9cLXNpdDsKK+WOjiA8IHNldHRsZTsKK+Wuo+eosSA8IGFzc2VydDsKK+WTgOi+rSA8IGxhbWVudDsKK+aJgeahg+mrlCA8IHRvbnNpbDsKK+WLhCA8IGFjdGl2ZTsKK+S5vumFqiA8IGNoZWVzZTsKK+abtOmrmCA8IGhpZ2hlcjsKK+WBjOWkpyA8IHNvXC1iaWc7CivmraPmlrnlvaIgPCBzcXVhcmU7CivogozogokgPCBtdXNjbGU7CivpqZrmgZAgPCBhcHBhbGw7Civlj6/kv6Hku7sgPCB0cnVzdHk7CivmloflrbjlrrYgPCB3cml0ZXI7CivmiYvmp40gPCBwaXN0b2w7Civlg6wgPCBjbGV2ZXI7Civlgo4gPCB0b3BwbGU7Civnp7vli5XlvI8gPCBtb2JpbGU7CivlrrbnlZwgPCBjYXR0bGU7Civnpo/pn7MgPCBnb3NwZWw7CivotbfmupAgPCBvcmlnaW47CivlgIMgPCBkYW1hZ2U7CivkuoLot7MgPCBib3VuY2U7CivliLDmraTomZUgPCBoaXRoZXI7Civohr3lpKcgPCBkYXJpbmc7Civku5ogPCB0b1wtZmx5Owor6KO96Zm25bel5Lq6IDwgcG90dGVyOwor5YGl5YWoIDwgcm9idXN0Owor5LaBIDwgbm9pc2VzOwor5LWnIDwgdG9cLWR5ZTsKK+S0pSA8IGFcLXN0YWc7Civks74gPCBhblwtb3dsOwor5ouM5Zi0IDwgYmlja2VyOwor5omT5pOKIDwgdG9cLWhpdDsKK+SzhyA8IHBhcnJvdDsKK+esqOaLmSA8IGNsdW1zeTsKK+SyuSA8IG9zcGVyeTsKK+S6uuWPo+iqv+afpSA8IGNlbnN1czsKK+SyjCA8IGFcLWZpc2g7CivksZUgPCBsYWJydXM7CivksKMgPCBhblwtZWxmOwor55GV55a1IDwgc3RpZ21hOwor5K+oIDwgdG9cLXJhcDsKK+SvgSA8IGFcLW11bGU7Civloqjopb/lk6UgPCBtZXhpY287CivmuIXnnJ/lr7ogPCBtb3NxdWU7CivkraogPCBncmFpbnM7CivkraUgPCBhXC1iYWl0Owor5K2MIDwgY29uZ2VlOwor5Ky4IDwgYVwtbWVhbDsKK+SskSA8IGFcLWdhbGU7Civkq6wgPCB0b1wtYm93Owor5rW36KOhIDwgbWFyaW5lOwor5ZGz6YGTIDwgZmxhdm9yOwor5Ki6IDwgY2xvdWR5Owor5KifIDwgcHVkZGxlOwor5KiHIDwgYVwtcGFpcjsKK+eEoeirluWmguS9lSA8IGFueWhvdzsKK+SntCA8IGFcLWJpcmQ7Civkp5EgPCBhXC1kaWtlOwor5Ye65Z+D5Y+K6KiYIDwgZXhvZHVzOwor5a6J5ZOl5ouJIDwgYW5nb2xhOwor5pyJ6Jel55mu6ICFIDwgYWRkaWN0Owor5KWqIDwgdG9cLWN1cDsKK+SlqCA8IGFcLWZpbGU7CivkpY0gPCBhXC13aGlwOwor5Lul6Imy5YiXIDwgaXNyYWVsOwor56eB6KqeIDwgbXVybXVyOwor6Yej6a2a55So5YW3IDwgdGFja2xlOwor5pyA6L+RIDwgcmVjZW50Owor5KOYIDwgYVwtaGFsbDsKK+a4heeYpiA8IG1lYWdlcjsKK+SjiCA8IGFcLWxhbmU7Civph5jmm7jph50gPCBzdGFwbGU7CivlsrjkuIogPCBhc2hvcmU7Civnhafnm7jmqZ8gPCBjYW1lcmE7CivkoLAgPCBjb2lsZWQ7CivkoKQgPCB0b2RkbGU7CivntKHnuZTogIUgPCB3ZWF2ZXI7CivkuK3pgJQgPCBtaWR3YXk7Civmlq/mi4nlpKsgPCBzbGF2aWM7CivknZwgPCBhXC1saW9uOwor5J2EIDwgY293cGVhOwor5L+E576F5pavIDwgcnVzc2lhOwor5JyeIDwgYVwtZG9zZTsKK+acqOijvSA8IHdvb2RlbjsKK+WuieeEtiA8IHNhZmVseTsKK+mjouiNkiA8IGZhbWluZTsKK+SYsCA8IGFcLWhvb2Q7Civotr7lsJYgPCB0aXB0b2U7CivkmKwgPCBhcm1vdXI7CivkmIwgPCBnYWRmbHk7Civkl6sgPCBhXC1mcm9nOwor5Ja5IDwgd2VldmlsOwor5L+h5aWJIDwgYmVsaWVmOwor5oiQ5pWIIDwgZWZmZWN0Owor5JSvIDwgc2FsdGVkOwor55O25a2QIDwgYm90dGxlOwor5JSiIDwgY2F0aGF5Owor5JSPIDwgYVwtbHVzaDsKK+S4iemHjSA8IHRyZWJsZTsKK+STpiA8IGFcLXJ1bGU7CivlrqLmsKMgPCBwb2xpdGU7Civkk4QgPCBncmFzc3k7Civmta7okZcgPCBhZmxvYXQ7Civororpu5EgPCBkYXJrZW47CivkkokgPCBhXC1sb25nOwor5JKCIDwgYW5cLW9hcjsKK+W8k+eureaJiyA8IGFyY2hlcjsKK+SRuiA8IGFcLXNhaWw7CivkkbQgPCBhXC1ib2F0Owor5rWu6I+vIDwgdmFuaXR5Owor5JCmIDwgc2xlZXB5Owor5JClIDwgc3Rpbmt5Owor6aeB5palIDwgcmVmdXRlOwor5LiN6YGpIDwgdW53ZWxsOwor5I+qIDwgdGVuZG9uOwor576e6L6xIDwgYmFmZmxlOwor55WZ5LiLIDwgcmVtYWluOwor5I+jIDwgbWFnZ290Owor5LiK6YKKIDwgdXBzaWRlOwor5I6xIDwgYVwtZHJhZzsKK+iDoeahgyA8IHdhbG51dDsKK+SNgyA8IGFcLXZhc2U7CivlsIHlu7ogPCBmZXVkYWw7Civlkozol7kgPCBraW5kbHk7Civki5AgPCBmYWJyaWM7CivkiqcgPCBhXC1mYXJ0Owor5aGe54i+54m5IDwgY2VsdGljOwor5IqbIDwgc2hyZWRzOwor56m/5rSeIDwgcGllcmNlOwor5Ii0IDwgYVwtY2FnZTsKK+SIjiA8IGFcLWxlYWY7Civkh5ogPCB0b1wtdGFwOwor5IeBIDwgYVwtY2F2ZTsKK+SGvCA8IGFcLW5lc3Q7Civkhq4gPCB0b1wtZGlwOwor5IaZIDwgYVwta2lsbjsKK+WuouajpyA8IHRhdmVybjsKK+WPqemgrSA8IGtvd3RvdzsKK+aIv+WuoiA8IHRlbmFudDsKK+esrOWbmyA8IGZvdXJ0aDsKK+SEuSA8IGFcLXllYXI7Civph47ppJAgPCBwaWNuaWM7CivkhJggPCBhXC1yaXRlOwor5IOlIDwgc3RvbmVzOwor5bCI5a62IDwgZXhwZXJ0Owor5IK3IDwgYnJva2VuOwor5L2/5b6XIDwgdXNhYmxlOwor47+8IDwgYVwtYm93bDsKK+O/uyA8IGFcLXRyYXk7CivmiZPlrZflk6EgPCB0eXBpc3Q7Civjv60gPCBjcmFja3M7Civjv6cgPCBmaWVsZHM7CivonIPmma8gPCBtaXJhZ2U7Civjv5QgPCBhXC13YXJ0Owor5Y+N6aeBIDwgcmV0b3J0Owor5bCR5aWzIDwgbWFpZGVuOwor4723IDwgZHJvcHN5Owor47y+IDwgYnJpY2tzOwor5rW357a/IDwgc3BvbmdlOwor5pif5pyf5pelIDwgc3VuZGF5Owor47yEIDwgcGVhcmxzOwor55So5LqOIDwgdXNlXC1pbjsKK+O4vyA8IGFcLWNhbGY7CivmmZrpo68gPCBzdXBwZXI7Civjt4sgPCBlbWJlcnM7CivokaHokITkub4gPCByYWlzaW47Civos63ms6ggPCBzdGFrZXM7CivjtqQgPCB0b1wtZnJ5Owor47aIIDwgY3JlZWtzOwor56We6KutIDwgb3JhY2xlOwor47WdIDwgbW92aW5nOwor5LiN6KaBIDwgZG9uJyd0XCE7CivjtJ4gPCBmbHVlbnQ7CivmiJHoh6rlt7EgPCBteXNlbGY7CivmnZDnqY0gPCB2b2x1bWU7CivmiYHlnJMgPCBvYmxhdGU7Civjs4wgPCBtYXJzaHk7CivjsZ4gPCBkYW5nZXI7CivjsY0gPCB0b1wtb3dlOwor5Y+u6Yi0IDwgamluZ2xlOwor47CDIDwgYVwtdHJlZTsKK+Wkp+atpei1sCA8IHN0cmlkZTsKK+esrOWFqyA8IGVpZ2h0aDsKK+S4iuihqyA8IGJsb3VzZTsKK+OuliA8IHRvXC1sYXk7CivjrbEgPCBhXC1jYXNlOwor5q+U6LyD5Zac5q2hIDwgcHJlZmVyOwor5a+25aGUIDwgcGFnb2RhOwor46u6IDwgYnlnb25lOwor5LiN5YWs5bmzIDwgdW5mYWlyOwor5a6i5oi2IDwgY2xpZW50Owor46uFIDwgYVwtZmxhZzsKK+OquSA8IHRvXC1yb2I7CivjqbIgPCBhXC1maXN0Owor6Iqt6JW+6IieIDwgYmFsbGV0Owor46i+IDwgYVwtdHlwZTsKK+OnpyA8IGFcLWNvbWI7Civlrrbluq0gPCBmYW1pbHk7Civmn4/mnpcgPCBiZXJsaW47CivjppQgPCBzaWxrbHk7CivmnInnvaogPCBndWlsdHk7CivjpoogPCBsYXZpc2g7CivjpoUgPCB1bmVhc3k7CivpjbXluL0gPCBrZXljYXA7CivlsI/ljIUgPCBwYWNrZXQ7CivkuqjnibkgPCBodW50ZXI7CivmiZPlgrcgPCBicnVpc2U7CivpoIHpgoogPCBtYXJnaW47CivmiYvlhoogPCBtYW51YWw7CivjoYEgPCBhXC1yb2JlOwor46CyIDwgcmlwcGVkOwor54mZ6b2SIDwgZGVudGFsOwor5ZCN6KiAIDwgc2F5aW5nOwor4525IDwgYVwtaGFyZTsKK+iAgOecvCA8IGRhenpsZTsKK+S8r+WIqeiMsiA8IGJlbGl6ZTsKK+a4r+W9jiA8IGhhcmJvcjsKK+iDjOW4tiA8IGJyYWNlczsKK+ieuuaXi+W9oiA8IHNwaXJhbDsKK+OavCA8IGFcLWdpcmw7CivjmrsgPCBzb2RvbXk7CivjmowgPCBhXC1iYW5kOwor45m5IDwgYVwtZGFtcDsKK+avlOi8g+WwkSA8IGxlc3NlcjsKK+eKr+mMryA8IHRvXC1lcnI7CivlnKjmraTomZUgPCBoZXJlaW47CivmmrTomZAgPCBicnV0YWw7CivooqvlrrPkurogPCB2aWN0aW07CivpmL/lpJrlsLzmlq8gPCBhZG9uaXM7Civms6LomK0gPCBwb2xhbmQ7CivjlLogPCBhblwtYWdlOwor45SJIDwgdG9cLWRpZzsKK+OTtSA8IHN3b3JkczsKK+OToCA8IGFcLWZsYXc7Civjk4UgPCBmcm96ZW47CivmmJ/pm7IgPCBuZWJ1bGE7Civmtbfni7ggPCBiZWF2ZXI7CivpmL/ms6LnvoUgPCBhcG9sbG87Civkvp3lgY4gPCBuZXN0bGU7Civmh6blpKsgPCBjb3dhcmQ7Civkvb/ogLPogb4gPCBkZWFmZW47CivkvJHmg5wgPCByZWNlc3M7Civok6zprIYgPCBmbHVmZnk7Civno4HpkLUgPCBtYWduZXQ7CivmoKHlnJIgPCBjYW1wdXM7Civororos6ogPCBnb1wtYmFkOwor576p6LOj5pyDIDwgYmF6YWFyOwor576K6IKJIDwgbXV0dG9uOwor5bel5L2c5a6kIDwgc3R1ZGlvOwor5ZCK6JGXIDwgZGFuZ2xlOwor57Sr576F6Jit6ImyIDwgdmlvbGV0Owor6ZaA5aSW5ryiIDwgbGF5bWFuOwor5oaO5oOhIDwgbG9hdGhlOwor6YCP5Y2w54mI5Y2w5Yi3IDwgb2Zmc2V0Owor5Zyo6ZmE6L+RIDwgbmVhcmJ5Owor5oaO5oGoIDwgZGV0ZXN0Owor5aGX5rK55pa8IDwgYW5vaW50Owor6Zuc6LKo5ZWGIDwgZ3JvY2VyOwor5Zac5YqHIDwgY29tZWR5Owor5a+S5YasIDwgd2ludHJ5Owor6LK25palIDwgZGVtb3RlOwor5Zau5L2NIDwgYVwtdW5pdDsKK+eQg+aLjSA8IHJhY2tldDsKK+e2reWQvueIviA8IHVpZ2h1cjsKK+iLsembhOW8jyA8IGhlcm9pYzsKK+WtkOW9iCA8IGJ1bGxldDsKK+eQhumrruW4qyA8IGJhcmJlcjsKK+WCreS6uumgmOePrSA8IGJ1dGxlcjsKK+WuieWfuSA8IGFtcGVyZTsKK+mjn+anvSA8IG1hbmdlcjsKK+iDjOWPmyA8IGJldHJheTsKK+i0luWbniA8IHJlZGVlbTsKK+eNqOeJuSA8IHVuaXF1ZTsKK+avm+e5lOmBi+WLleihqyA8IGplcnNleTsKK+mHkeiJsiA8IGdvbGRlbjsKK+i1t+azoeayqyA8IHNlZXRoZTsKK+S4jeaIsOS4jeWSjCA8IG5vXC13YXI7CivlrqTlhacgPCBpbmRvb3I7Civos5PlrqIgPCBndWVzdHM7CivnkZ7lhbggPCBzd2VkZW47CivotIrlkIwgPCBhc3NlbnQ7CivoloTntJkgPCB0aXNzdWU7CivmgrbnhrEgPCBzdWx0cnk7CivmmJ/mnJ/kupQgPCBmcmlkYXk7CivmmJ/mnJ/kuIAgPCBtb25kYXk7Civnj77lrZggPCBleHRhbnQ7CivppJDlt74gPCBuYXBraW47Civku6XlpKogPCBldGhlclwtOwor5be054i+5bmyIDwgYmFsa2FuOwor55Gj5LqLIDwgdHJpZmxlOwor5qC85qC856yRIDwgZ2lnZ2xlOwor6aCQ566XIDwgYnVkZ2V0Owor5a2f5Yqg5ouJIDwgYmVuZ2FsOwor6Z2S6YqFIDwgYnJvbnplOwor6aCR56ulIDwgdXJjaGluOwor5pyD5q27IDwgbW9ydGFsOwor5LiN54S2IDwgbm90XC1zbzsKK+iugOiAhSA8IHJlYWRlcjsKK+a0quawtCA8IGRlbHVnZTsKK+eZveiYreWcsCA8IGJyYW5keTsKK+acqOaWmSA8IGx1bWJlcjsKK+aEm+W+t+iPryA8IGVkd2FyZDsKK+a3seWMliA8IGRlZXBlbjsKK+ePvuWcqCA8IG1vZGVybjsKK+iYh+agvOiYreW4vSA8IGJvbm5ldDsKK+iuiue0hSA8IHJlZGRlbjsKK+a4m+S9jumAn+W6piA8IHJldGFyZDsKK+eMlueLgiA8IHNhdmFnZTsKK+a3qOWMliA8IHB1cmlmeTsKK+W+jOmAgCA8IHJlY29pbDsKK+mYv+aLieaWr+WKoCA8IGFsYXNrYTsKK+eJh+iqniA8IHBocmFzZTsKK+a1geaYnyA8IG1ldGVvcjsKK+aCsuatjiA8IGJld2FpbDsKK+WtmOWEsiA8IG1lbW9yeTsKK+S9v+WFt+mrlOWMliA8IGVtYm9keTsKK+WFuOeNhOmVtyA8IHdhcmRlbjsKK+eci+S4jeimiyA8IHVuc2VlbjsKK+S9v+S9nOWYlCA8IHNpY2tlbjsKK+ixoeW+tSA8IGVtYmxlbTsKK+S4jeavlCA8IHVubGlrZTsKK+Wkp+mMmCA8IHNsZWRnZTsKK+acgOaWsCA8IGxhdGVzdDsKK+S4u+aVmSA8IGJpc2hvcDsKK+aBkOawtOeXhSA8IHJhYmllczsKK+iZleWlsyA8IHZpcmdpbjsKK+izo+S4uyA8IHNlbGxlcjsKK+e+iuavmyA8IGZsZWVjZTsKK+WQq+awtCA8IHdhdGVyeTsKK+WKoO+5jeaWvCA8IGltcG9zZTsKK+iZleWigyA8IHBsaWdodDsKK+itsOeoiyA8IGFnZW5kYTsKK+aDoeaEjyA8IG1hbGljZTsKK+acrOW3niA8IGhvbnNodTsKK+apoeearuaQvSA8IGVyYXNlcjsKK+aVuOmHjyA8IGFtb3VudDsKK+aWt+iogCA8IGFmZmlybTsKK+a1quWtkCA8IGxvYWZlcjsKK+acieaEjyA8IGludGVuZDsKK+azouWjq+mgkyA8IGJvc3RvbjsKK+WQjea1gSA8IGdlbnRyeTsKK+WPsOeBoyA8IHRhaXdhbjsKK+S4jeaZuiA8IHVud2lzZTsKK+aVhemanCA8IGdsaXRjaDsKK+WQiOazlSA8IGxhd2Z1bDsKK+WQjeawoyA8IHJlcHV0ZTsKK+Wkp+i3ryA8IGF2ZW51ZTsKK+a1t+WgsSA8IHBvc3RlcjsKK+S6puWNsyA8IG5hbWVseTsKK+e2k+e0gOS6uiA8IGJyb2tlcjsKK+e0heiYv+iUlCA8IGNhcnJvdDsKK+aChOaChOWcsCA8IGdlbnRseTsKK+aaluawoyA8IGhlYXRlcjsKK+S9v++5jeiDveWkoCA8IGVuYWJsZTsKK+WQuOaUtiA8IGFic29yYjsKK+aEj+WcliA8IGludGVudDsKK+e3o+mjviA8IGZyaW5nZTsKK+mBv+mbo+aJgCA8IHJlZnVnZTsKK+WRqOW5tCA8IGFubnVhbDsKK+eZvem6teWFkiA8IGhlcm9pbjsKK+WPo+a4tCA8IHRoaXJzdDsKK+mHneazlSA8IHN0aXRjaDsKK+a2iOWMliA8IGRpZ2VzdDsKK+ato+mWgCA8IHBvcnRhbDsKK+a1t+WToSA8IHNhaWxvcjsKK+WQkOaguSA8IGlwZWNhYzsKK+mbmemHjSA8IGRvdWJsZTsKK+mdkuiLlCA8IGxpY2hlbjsKK+WkmuiuiiA8IGZpY2tsZTsKK+mJi+W6iiA8IHBsYW5lcjsKK+mjvOmkiuiAhSA8IGZlZWRlcjsKK+WQjeacmyA8IHJlbm93bjsKK+WPlua2iCA8IGNhbmNlbDsKK+mCo+mCiiA8IHlvbmRlcjsKK+W3tOaWr+WFiyA8IGJhc3F1ZTsKK+WKiOmWiyA8IGNsZWF2ZTsKK+mFkueqqSA8IGRpbXBsZTsKK+WLleitsCA8IG1vdGlvbjsKK+aUvumAkCA8IGJhbmlzaDsKK+mFjeeosSA8IHdvcnRoeTsKK+a0u+WhniA8IHBpc3RvbjsKK+iOq+aWr+enkSA8IG1vc2NvdzsKK/ClnIwgPCBhXC1jb2F0Owor5p2P5LuBIDwgYWxtb25kOwor5pyI5qGC5qi5IDwgbGF1cmVsOwor6aCQ5pyfIDwgZXhwZWN0Owor56eJ5YWsIDwganVzdGx5Owor56ax5ZGKIDwgcHJheWVyOwor5pu05aSnIDwgYmlnZ2VyOwor5Lmd5Y2BIDwgbmluZXR5Owor56C06IiKIDwgc2hhYmJ5Owor5LiA5bi2IDwgcmVnaW9uOwor56Kn546JIDwgamFzcGVyOwor5b6u6JaE55qEIDwgbWVhZ3JlOwor5Y+q5pivIDwgbWVyZWx5Owor5bCP5reY5rCjIDwgcmFzY2FsOwor5oOh5YyWIDwgd29yc2VuOwor5LiA5bGAIDwgaW5uaW5nOwor54Sh5rOV54Sh5aSpIDwgb3V0bGF3Owor5pyq5L6GIDwgZnV0dXJlOwor6YSJ57SzIDwgc3F1aXJlOwor6Kmt6KiIIDwgZGVjZWl0Owor6LGB5YWNIDwgZXhlbXB0Owor5b+D55CGIDwgbWVudGFsOwor54mi54miIDwgZmlybWx5Owor6aKo5L+XIDwgY3VzdG9tOwor8KCAiSA8IGFcLWhpbGw7CivlibXovqYgPCBsYXVuY2g7CivpgY7ph48gPCBleGNlc3M7CivotbfoqLTogIUgPCBzdWl0b3I7CivnhpTop6MgPCBmdXNpb247Civnn7Poi7EgPCBxdWFydHo7Civlt7Tmi7/ppqwgPCBwYW5hbWE7CivljIXnrqEgPCBhc3N1cmU7Civli5XohIggPCBhcnRlcnk7CivmnIDkvY4gPCBsb3dlc3Q7Civnpa3lj7ggPCBwcmllc3Q7CivnibnmraQgPCBoZXJlYnk7Civpm4zolYogPCBwaXN0aWw7CivlubLpoJAgPCBtZWRkbGU7CivljJbnn7MgPCBmb3NzaWw7CivmjZXpr6joiLkgPCB3aGFsZXI7CivmsLTms6UgPCBjZW1lbnQ7CivmsLTms6EgPCBidWJibGU7CivmvJToqqrogIUgPCBvcmF0b3I7Civok4vniL4gPCBnYWVsaWM7CivliY3ovKkgPCBzZW5pb3I7Civmk7rmqKPlrZAgPCBkb1wtc3RoOwor5Ymv6KmeIDwgYWR2ZXJiOwor5Y2x5qmfIDwgY3Jpc2lzOwor5LiN5YWsIDwgdW5qdXN0Owor5rOV5ZyLIDwgZnJhbmNlOwor5rKJ5oCdIDwgcG9uZGVyOwor5pqX5aChIDwgYnVua2VyOwor54uX5bGLIDwga2VubmVsOwor5pq05ZCbIDwgdHlyYW50Owor5rOi5pav5bC85LqeIDwgYm9zbmlhOwor5LiJ5YCNIDwgdHJpcGxlOwor6Zyc55m9IDwgZnJvc3R5Owor5ZCm5YmHIDwgaWZcLW5vdDsKK+WIhumQmCA8IG1pbnV0ZTsKK+iRrOemriA8IGJ1cmlhbDsKK+awtOahtiA8IGJ1Y2tldDsKK+aSpOmKtyA8IHJlcGVhbDsKK+WKoOaLv+WkpyA8IGNhbmFkYTsKK+WPjeWwhCA8IHJlZmxleDsKK+S4jeS4uSA8IGJodXRhbjsKK+mdnua0siA8IGFmcmljYTsKK+WJneidlSA8IGRlbnVkZTsKK+S4gOS4siA8IHN0cmFuZDsKK+e6luavmyA8IGNpbGl1bTsKK+efsyA8IHN0b25lOwor55+tIDwgc2hvcnQ7Civlv6sgPCByYXBpZDsKK+WcqCA8IGJlXC1hdDsKK+S7liA8IG90aGVyOwor55+iIDwgYXJyb3c7CivliLAgPCBnb1wtdG87Civor7QgPCBzcGVhazsKK+i/hSA8IHF1aWNrOwor5ZywIDwgZWFydGg7Civlv4MgPCBoZWFydDsKK+S4iyA8IHVuZGVyOwor6L6tIDwgd29yZHM7Civlvq4gPCBzbWFsbDsKK+WutiA8IGhvdXNlOwor5b6hIDwgZHJpdmU7CivlkI4gPCBxdWVlbjsKK+W+hSA8IHRyZWF0Owor6L+YIDwgc3RpbGw7Civlj5EgPCBpc3N1ZTsKK+W9qyA8IGNhcnZlOwor5oOzIDwgdGhpbms7CivnnaEgPCBzbGVlcDsKK+i9iSA8IHNoaWZ0Owor5omAIDwgcGxhY2U7CivovKogPCB3aGVlbDsKK+S4iSA8IHRocmVlOwor6LyVIDwgbGlnaHQ7CivlvI8gPCBzdHlsZTsKK+agtyA8IHNoYXBlOwor5bu6IDwgYnVpbGQ7Civlu7YgPCBkZWxheTsKK+ebsiA8IGJsaW5kOwor5bujIDwgYnJvYWQ7Civlo7AgPCBzb3VuZDsKK+W3pSA8IGxhYm9yOwor55uGIDwgYmFzaW47Civnm4MgPCBnbGFzczsKK+atoyA8IHJpZ2h0Owor5bq4IDwgdXN1YWw7CivlpbMgPCB3b21hbjsKK+WKmyA8IHBvd2VyOwor6LqRIDwgd2F2ZXI7Civlm6AgPCBjYXVzZTsKK+mHjSA8IGhlYXZ5Owor55qHIDwgcm95YWw7CivluocgPCBjb3ZlcjsKK+asoSA8IG9yZGVyOwor5Y+jIDwgbW91dGg7Civnmb0gPCB3aGl0ZTsKK+W5vSA8IHF1aWV0Owor5pWZIDwgdGVhY2g7Civlho0gPCBhZ2FpbjsKK+awlCA8IHN0ZWFtOwor5L+hIDwgdHJ1c3Q7CivljJcgPCBub3J0aDsKK+i5siA8IHNxdWF0Owor6LmfIDwgdHJhY2U7CivluYUgPCBwaWVjZTsKK+WFpSA8IGVudGVyOwor5YWIIDwgZmlyc3Q7CivmsLQgPCB3YXRlcjsKK+W3tyA8IGFsbGV5Owor56yRIDwgc21pbGU7Civnq4sgPCBzdGFuZDsKK+i3qiA8IGtuZWVsOwor6amsIDwgaG9yc2U7Civlt6ggPCBsYXJnZTsKK+eWkSA8IGRvdWJ0Owor5YipIDwgZ2FpbnM7CivmnpwgPCBmcnVpdDsKK+i1pyA8IGJsdXNoOwor6IezIDwgcmVhY2g7CivmuIUgPCBjbGVhcjsKK+eJqSA8IHRoaW5nOwor5bWMIDwgaW5sYXk7CivnlLIgPCBhcm1vcjsKK+eUsCA8IGZpZWxkOwor6K64IDwgYWxsb3c7CivlhasgPCBlaWdodDsKK+W0liA8IGNsaWZmOwor5bSOIDwgcm91Z2g7CivljZcgPCBzb3V0aDsKK+iJsiA8IGNvbG9yOwor55OcIDwgbWVsb247CivnrpcgPCBjb3VudDsKK+iziiA8IHRoaWVmOwor6LKvIDwgc3RvcmU7CivosqggPCBnb29kczsKK+avjyA8IGV2ZXJ5Owor5bGsIDwgY2xhc3M7CivosaogPCBicmF2ZTsKK+ixhiA8IGJlYW5zOwor5LiDIDwgc2V2ZW47CivlsJYgPCBzaGFycDsKK+WwhCA8IHNob290Owor56m6IDwgZW1wdHk7CivmioAgPCBza2lsbDsKK+WvuiA8IGNvdXJ0Owor5a+rIDwgd3JpdGU7Civoi7EgPCBwZXRhbDsKK+WvhiA8IGRlbnNlOwor6ZKxIDwgbW9uZXk7CivlrrkgPCBsb29rczsKK+WutSA8IG5pZ2h0Owor5aeLIDwgYmVnaW47CivlrqIgPCBndWVzdDsKK+eJhyA8IHNsaWNlOwor56CUIDwgZ3JpbmQ7Civml6kgPCBlYXJseTsKK+eNuyA8IG9mZmVyOwor5426IDwgb3R0ZXI7CivnjbggPCBiZWFzdDsKK+eNqCA8IGFsb25lOwor6K2mIDwgZ3VhcmQ7CivlrZggPCBleGlzdDsKK+itiSA8IHByb29mOwor6KydIDwgdGhhbms7CivnjJwgPCBndWVzczsKK+WsiSA8IGVuam95Owor6buRIDwgYmxhY2s7CivorIEgPCB2aXNpdDsKK+WJkSA8IHN3b3JkOwor5LmQIDwgaGFwcHk7CivnuqcgPCBsZXZlbDsKK+S4viA8IHJhaXNlOwor6K+BIDwgcHJvdmU7CivnhacgPCBzaGluZTsKK+iqkyA8IHN3ZWFyOwor576kIDwgZ3JvdXA7CivoqoIgPCB0ZW1wdDsKK+S8pCA8IHdvdW5kOwor5patIDwgc2V2ZXI7Civku7cgPCBwcmljZTsKK+iEkSA8IGJyYWluOwor6KeEIDwgcnVsZXM7CivlqJEgPCBkYW5jZTsKK+egtCA8IGJyZWFrOwor5rO9IDwgbWFyc2g7Civnh7sgPCBzbW9rZTsKK+e0pyA8IHRlbnNlOwor6Ke4IDwgdG91Y2g7Civoo4UgPCBkcmVzczsKK+aysyA8IHJpdmVyOwor6KGAIDwgYmxvb2Q7CivmipUgPCB0aHJvdzsKK+WltCA8IHNsYXZlOwor5YiAIDwga25pZmU7CivopZ8gPCBsYXBlbDsKK+WWnSA8IGRyaW5rOwor6KSqIDwgc3RyaXA7CivlpKIgPCBkcmVhbTsKK+mUmSA8IGVycm9yOwor5qGIIDwgdGFibGU7CivljbAgPCBwcmludDsKK+WjkyA8IHByZXNzOwor54OIIDwgZmllcnk7Civlo4cgPCBhbHRhcjsKK+ijgiA8IHNwbGl0Owor6KK0IDwgcGFudHM7CivlopMgPCBncmF2ZTsKK+eCjiA8IGZsYW1lOwor54GwIDwgYXNoZXM7CivloZcgPCBzbWVhcjsKK+aVjCA8IGVuZW15Owor5aGUIDwgdG93ZXI7CivmgIAgPCBib3NvbTsKK+e9qiA8IGNyaW1lOwor6J+yIDwgd29ybXM7Civmv7EgPCBiZWFjaDsKK+aRmCA8IHBsdWNrOwor5pa9IDwgZ3JhbnQ7CivmqKEgPCBtb2RlbDsKK+iNiSA8IGdyYXNzOwor5r+DIDwgdGhpY2s7Civmv4EgPCBtdWRkeTsKK+S/riA8IHN0dWR5Owor5ZGzIDwgdGFzdGU7Civnu4cgPCB3ZWF2ZTsKK+m+lSA8IG5pY2hlOwor6J2/IDwgZmxpZXM7CivlhY0gPCBzcGFyZTsKK+azoiA8IHdhdmVzOwor5r2UIDwgY2xlYW47CivmtIsgPCBvY2VhbjsKK+WdhyA8IGVxdWFsOwor5aWWIDwgcHJpemU7Civpob8gPCBwYXVzZTsKK+a8giA8IGZsb2F0Owor5YikIDwganVkZ2U7Civmi4UgPCBjYXJyeTsKK+advyA8IHBsYW5rOwor6ZKfIDwgY2xvY2s7Civpu5AgPCBzdGljazsKK+ibhyA8IHNuYWtlOwor5p6EIDwgZnJhbWU7CivmurogPCBkcm93bjsKK+m6piA8IHdoZWF0Owor5rqdIDwgZGl0Y2g7CivmupwgPCBzbGlkZTsKK+iCiSA8IGZsZXNoOwor57q4IDwgcGFwZXI7CivomZogPCBmYWxzZTsKK+iZjiA8IHRpZ2VyOwor5ZmMIDwgc2NvbGQ7CivmnYIgPCBtaXhlZDsKK+aAkiA8IGFuZ2VyOwor56i/IDwgZHJhZnQ7CivmuKYgPCBzd2lybDsKK+a4oSA8IGNyb3NzOwor572iIDwgY2Vhc2U7Civpt7ogPCBoZXJvbjsKK+m3uSA8IGVhZ2xlOwor6JepIDwgZmVuY2U7Civol6UgPCBkcnVnczsKK+mynCA8IGZyZXNoOwor5ZeFIDwgc21lbGw7Civol4EgPCBzdHJhdzsKK+m2tCA8IGNyYW5lOwor5p6qIDwgc3BlYXI7Civmtq8gPCBzaG9yZTsKK+a2mSA8IHRlYXJzOwor6YWNIDwgbWF0Y2g7CivmtbQgPCBiYXRoZTsKK+WNhyA8IGFyaXNlOwor5rWcIDwgY3JlZWs7CivolK0gPCBzaGFkZTsKK+a0pSA8IGZlcnJ5Owor6ay8IDwgZ2hvc3Q7Civok64gPCBsb3R1czsKK+mBvyA8IGF2b2lkOwor5LqhIDwgZGVhdGg7Civpl6ogPCBmbGFzaDsKK+mchyA8IHNoYWtlOwor5ZKzIDwgY291Z2g7Civnu78gPCBncmVlbjsKK+WSjiA8IGZhdWx0Owor57qzIDwgYWRtaXQ7CivlkaogPCBjdXJzZTsKK+erpSA8IGNoaWxkOwor5LyfIDwgZ3JlYXQ7CivmsYEgPCBqdWljZTsKK+iNoyA8IGdsb3J5Owor5ZCQIDwgdm9taXQ7CivpsIwgPCBsb2FjaDsKK+WWiiA8IHNob3V0Owor5ZCJIDwgbHVja3k7CivpgJAgPCBjaGFzZTsKK+WPqSA8IGtub2NrOwor5qOAIDwgY2hlY2s7Civmj6EgPCBncmFzcDsKK+eJmSA8IHRvb3RoOwor5q6WIDwgYnJlZWQ7Civljb8gPCBub2JsZTsKK+atryA8IHRlZXRoOwor5q2qIDwgc2xhbnQ7Civmo4sgPCBjaGVzczsKK+mtlCA8IGRlbW9uOwor6IWwIDwgd2Fpc3Q7CivmooUgPCBwbHVtczsKK+mSoiA8IHN0ZWVsOwor6Iy5IDwgcm9vdHM7CivmrLogPCBjaGVhdDsKK+msmiA8IGJlYXJkOwor5YyZIDwgc3Bvb247CivljI0gPCBjcmF3bDsKK+iMhSA8IHJlZWRzOwor57SvIDwgdGlyZWQ7CivmnKsgPCBmaW5hbDsKK+eziiA8IHBhc3RlOwor56iOIDwgdGF4ZXM7Civmg68gPCBoYWJpdDsKK+WAviA8IHVwc2V0Owor6LS4IDwgdHJhZGU7CivmiasgPCBzd2VlcDsKK+WQkyA8IHNjYXJlOwor5YmDIDwgc2hhdmU7CivliLcgPCBicnVzaDsKK+e+iiA8IHNoZWVwOwor5omRIDwgcG91bmQ7CivlgI0gPCB0aW1lczsKK+WGtiA8IHNtZWx0Owor6IazIDwgbWVhbHM7CivlhbwgPCB1bml0ZTsKK+meiyA8IHNob2VzOwor5oykIDwgY3Jvd2Q7CivpopcgPCBncmFpbjsKK+aDoCA8IGZhdm9yOwor6IWVIDwgd3Jpc3Q7CivmoYMgPCBwZWFjaDsKK+WdoSA8IHNsb3BlOwor5YSfIDwgcmVwYXk7CivmpI0gPCBwbGFudDsKK+iEiiA8IHNwaW5lOwor5qSFIDwgY2hhaXI7CivogpogPCBiZWxseTsKK+ajsiA8IHBlcmNoOwor6IKdIDwgbGl2ZXI7Civnlq8gPCBjcmF6eTsKK+iAuyA8IHNoYW1lOwor5L6NIDwgc2VydmU7CivooasgPCBzaGlydDsKK+mSuyA8IGRyaWxsOwor5bOhIDwgZ29yZ2U7Civpn7sgPCByaHltZTsKK+S4kSA8IGNsb3duOwor5r6zIDwgaW5sZXQ7CivnlrwgPCBhY2hlczsKK+ahoyA8IHNoZWxmOwor546bIDwgYWdhdGU7CivpnbQgPCBib290czsKK+WCsiA8IHByb3VkOwor6ZycIDwgZnJvc3Q7CivlkLUgPCBhcmd1ZTsKK+mCqiA8IHdyb25nOwor6ISGIDwgY3Jpc3A7Civmm7MgPCB0cmFpbDsKK+mboiA8IGxlYXZlOwor5Y+bIDwgcmViZWw7Civnv7wgPCB3aW5nczsKK+eUnCA8IHN3ZWV0Owor6ZqZIDwgY3JhY2s7CivlgoUgPCB0dXRvcjsKK+WWtyA8IHNwdXJ0Owor5ai2IDwgbWFycnk7Civpl4cgPCBjbG9zZTsKK+ezliA8IHN1Z2FyOwor54+KIDwgY29yYWw7CivnoLggPCBzbWFzaDsKK+e1niA8IHR3aXN0Owor6L2oIDwgdHJhY2s7CivnsZYgPCB0YWxseTsKK+aTkiA8IGNhdGNoOwor5o+DIDwgc2hlYXI7CivnrpIgPCBicm9vbTsKK+mNriA8IGJyYXNzOwor5ZeTIDwgdm9pY2U7CivllaUgPCB3aGF0XD87CivonJwgPCBob25leTsKK+mLjyA8IHRvbmdzOwor6IK/IDwgc3dlbGw7Civoo5kgPCBza2lydDsKK+WwvyA8IHVyaW5lOwor6YCuIDwgc2VpemU7CivlgKEgPCBndWlkZTsKK+WFnCA8IHBvdWNoOwor6a2EIDwgdmlnb3I7Civns5UgPCBjYWtlczsKK+eomiA8IHlvdW5nOwor6YiNIDwgYmx1bnQ7Civnpr0gPCBiaXJkczsKK+aGuiA8IHBlYWNlOwor6ZO+IDwgY2hhaW47CivmhqwgPCByb3VzZTsKK+WHsyA8IGJlbmNoOwor6YWsIDwgdG9hc3Q7Civngb8gPCB2aXZpZDsKK+aUgCA8IGNsaW1iOwor5rKrIDwgZnJvdGg7CivprYEgPCBjaGllZjsKK+a7pSA8IGZsb29kOwor5oizIDwgcHJpY2s7CivmoakgPCBzdGFrZTsKK+iCuiA8IGx1bmdzOwor57qxIDwgZ2F1emU7CivpmaEgPCBzdGVlcDsKK+eDqyA8IHNjYWxkOwor6bmFIDwgZ29vc2U7CivmlZ4gPCByb29teTsKK+WzqCA8IGxvZnR5Owor6JmQIDwgY3J1ZWw7CivovqsgPCBicmFpZDsKK+aApiA8IGVhZ2VyOwor5rWHIDwgc3ByYXk7CivohpsgPCBjaGVzdDsKK+mXtSA8IG1vdXJuOwor6KKcIDwgc29ja3M7CivotL8gPCBicmliZTsKK+WihSA8IHZpbGxhOwor56e9IDwgZGlydHk7CivlkbsgPCBncm9hbjsKK+aLpyA8IHBpbmNoOwor5p2gIDwgbGV2ZXI7CivnvI4gPCBzYXRpbjsKK+aDriA8IGRyZWFkOwor5ZmXIDwgYnVyc3Q7Civnn7YgPCBqZXR0eTsKK+ewhyA8IHN3YXJtOwor5oeKIDwgdmV4ZWQ7Civmi4cgPCB0aHVtYjsKK+mTsiA8IHNwYWRlOwor5ZO9IDwgY2hva2U7CivlhpUgPCBjcm93bjsKK+eWriA8IHR1bW9yOwor6LWDIDwgYm9vdHk7CivlqYogPCB3aG9yZTsKK+mUryA8IGFcLXNhdzsKK+WYiCA8IG5vaXN5Owor57ywIDwgcmVpbnM7CivorqogPCBhYnVzZTsKK+W/oSA8IGFcLXNhZDsKK+mmjSA8IGJyZWFkOwor6aKFIDwgc2t1bGw7Civng5kgPCBicmFuZDsKK+WflCA8IHBsYWluOwor6ZicIDwgbW91bmQ7CivngqwgPCB0b3JjaDsKK+eCmSA8IHJvYXN0Owor5amqIDwgY292ZXQ7CivouZEgPCB0cmVhZDsKK+eruiA8IGluZGlhOwor5YmMIDwgc2xhc2g7CivnrZsgPCBzaWV2ZTsKK+evoSA8IHVzdXJwOwor6bK4IDwgd2hhbGU7CivmiqEgPCBzd2luZzsKK+a2riA8IHJpbnNlOwor6YW1IDwgeWVhc3Q7CivmqYQgPCBvbGl2ZTsKK+mbjyA8IGNoaWNrOwor5ranIDwgYnJvb2s7CivohbogPCBnbGFuZDsKK+W/sSA8IHRydXRoOwor6Jy/IDwgY3JlZXA7CivplYAgPCBwbGF0ZTsKK+iDrSA8IHJvdWdlOwor6LWzIDwgZ3JhbmQ7Civns6AgPCBjaGFmZjsKK+W4myA8IHNpbGtzOwor6bKoIDwgc2hhcms7CivouJ0gPCBhbmtsZTsKK+eciCA8IGdsb2F0Owor5YCtIDwgZHdhcmY7CivplZAgPCBzdG92ZTsKK+iZsSA8IGxvdXNlOwor5pCQIDwgY3JhbXA7CivmiJsgPCBsYW5jZTsKK+WRgyA8IGJlbGNoOwor5qatIDwga2lvc2s7CivphaogPCBjcmVhbTsKK+WtgCA8IHdpZG93Owor5a2qIDwgdHdpbnM7CivnnrAgPCB3YXRjaDsKK+awriA8IHhlbm9uOwor55ejIDwgc3BvdHM7CivmkZIgPCBleHBlbDsKK+S/uCA8IHdhZ2VzOwor5oSgIDwgYW5ncnk7CivmiaogPCBzdG9rZTsKK+e7iSA8IGNyZXBlOwor54+AIDwgYW1iZXI7Civor6kgPCBib2FzdDsKK+iKjSA8IHBlb255Owor6KS2IDwgcGxlYXQ7CivphZcgPCBkcnVuazsKK+afoCA8IGxlbW9uOwor6K+ZIDwgdGVhc2U7Civnu7ogPCBza2VpbjsKK+mHiSA8IGdsYXplOwor5a2bIDwgY29tZXQ7CivmpL0gPCBiZWFtczsKK+mipiA8IGZyb3duOwor5reWIDwgc2x1c2g7CivojqAgPCB3ZWVkczsKK+apmyA8IGFcLXBlZzsKK+iSuiA8IGZ1cnplOwor57+VIDwgYWdyZWU7CivpnL4gPCBtaXN0eTsKK+egpyA8IGFudmlsOwor6IO6IDwgYW1pbmU7Civom60gPCBsZWVjaDsKK+ivqCA8IGpva2VzOwor5oCrIDwgc29ycnk7CivmpZQgPCB3ZWRnZTsKK+eWvSA8IHVsY2VyOwor5qGkIDwgYWxkZXI7Civpk4YgPCByaXZldDsKK+aSuiA8IGh1cnJ5Owor6IKEIDwgbGVhcm47CivlraIgPCBzcG9yZTsKK+mysiA8IHNwYXduOwor6ZOoIDwgd2VpZ2g7CivosZUgPCBhXC1waWc7CivnrIogPCBsYWRsZTsKK+WblyA8IGVyZWN0Owor6ZOpIDwgbW91bHQ7CivpuZEgPCBxdWFpbDsKK+WVgSA8IGNoaXJwOwor6YaaIDwgZXRoZXI7CivnkLAgPCBqZXdlbDsKK+i/qCA8IHVudGlsOwor6bmsIDwgc25pcGU7CivlgoggPCB0cmliZTsKK+mTsCA8IGhpbmdlOwor56G8IDwgYm9yYXg7Civpha8gPCBlc3RlcjsKK+mVqiA8IGNvaW5zOwor5ommIDwgcHJvYmU7CivmurcgPCBwcml2eTsKK+S/syA8IGFjdG9yOwor6JiWIDwgc3R1bXA7CivlooAgPCBwb3JjaDsKK+WWiCA8IG11c2ljOwor5ZChIDwgYmxhbWU7CivnmIogPCB3YXJ0czsKK+WOoyA8IHNoZWxsOwor57OFIDwgYmxlbmQ7CivpmI8gPCBibG9jazsKK+mygiA8IGJyZWFtOwor5rq9IDwgbW9pc3Q7CivnsI8gPCBhXC1ib3g7Civoo6UgPCBmb2xkczsKK+e8syA8IG5vb3NlOwor6b6gIDwgZmx1dGU7CivonaQgPCBsYXJ2YTsKK+WfrSA8IGFcLWRhbTsKK+mytiA8IHNoZWF0Owor6ZSeIDwgaW5nb3Q7CivmsKEgPCByYWRvbjsKK+anrSA8IG1hcGxlOwor5b2YIDwgc3dpbmU7CivlvZYgPCBhXC1ob2c7Civmu5cgPCBkcmFpbjsKK+W7kSA8IGFcLWh1dDsKK+WMjyA8IGdvdXJkOwor56+8IDwgc2VkYW47Civom54gPCBzbmFpbDsKK+eSgSA8IFwoZ2VtXCk7Civnu5cgPCBiYXN0ZTsKK+WfmCA8IHJvb3N0Owor5be06buOIDwgcGFyaXM7Civku6PnkIbkurogPCBhZ2VudDsKK+mBiuiVqSA8IHN0cmF5Owor5byE57OfIDwgc3BvaWw7CivmganlhbggPCBncmFjZTsKK+Wkp+eIuiA8IHVuY2xlOwor5pel5pysIDwgamFwYW47Civlj6/lj68gPCBjb2NvYTsKK+WPr+WPoyA8IHRhc3R5Owor5bu257epIDwgZGVmZXI7Civlp6rlpbMgPCBuaWVjZTsKK+mZt+iQvSA8IHNsdW1wOwor54mb5o6SIDwgc3RlYWs7CivpmrHntIQgPCB2YWd1ZTsKK+WQiOS9tSA8IGFubmV4Owor6K235aOrIDwgbnVyc2U7Civms4rkvY0gPCBiZXJ0aDsKK+eNqOacqOiInyA8IGNhbm9lOwor5qKd5p2/566xIDwgY3JhdGU7CivpmbPliJfoh7ogPCBzdGFsbDsKK+mBiuiJhyA8IGJhcmdlOwor6Zmw6I6WIDwgcGVuaXM7CivmmbrliKkgPCBjaGlsZTsKK+Wjk+eijiA8IGNydXNoOwor5q+P5q+PIDwgb2Z0ZW47Civpn5PlnIsgPCBrb3JlYTsKK+efs+eLgCA8IHN0b255Owor55S35L+u6YGT6Zmi6ZW3IDwgYWJib3Q7CivliKXomZ8gPCBhbGlhczsKK+W8leeUqCA8IHF1b3RlOwor5biC6ZW3IDwgbWF5b3I7CivniJDmnrYgPCBncmF0ZTsKK+apn+mXnCA8IG9yZ2FuOwor5rOl5rC05YygIDwgbWFzb247CivptInniYcgPCBvcGl1bTsKK+akjeeJqee+pCA8IGZsb3JhOwor5Zyo6auY6JmVIDwgYWxvZnQ7CivmkpDnq7/ot7MgPCB2YXVsdDsKK+aUvueJpyA8IGdyYXplOwor5q+P5pelIDwgZGFpbHk7CivlpZfmiL8gPCBzdWl0ZTsKK+mBleekmSA8IHRhYm9vOwor5YSq6bueIDwgbWVyaXQ7CivlvpjlvoogPCBob3ZlcjsKK+imluimuiA8IHNpZ2h0Owor5pWY5Yip5LqeIDwgc3lyaWE7CivliIDokYkgPCBibGFkZTsKK+aRqeilvyA8IG1vc2VzOwor6Jmb5by16IGy5YuiIDwgYmx1ZmY7Civoqr/liLbop6Poqr/lmaggPCBtb2RlbTsKK+mdkuW5tCA8IHlvdXRoOwor5qiZ6aGMIDwgdGl0bGU7CivmsKjln7ogPCBhbWlubzsKK+apn+i7uCA8IGFyYm9yOwor6YaS5L6GIDwgd2FrZW47CivploDploIgPCBsYXRjaDsKK+mdiOW3pyA8IGhhbmR5Owor5YWD6Z+zIDwgdm93ZWw7CivlhYvpmoYgPCBjbG9uZTsKK+aVtOaVtCA8IHdob2xlOwor5Yyv5a+EIDwgcmVtaXQ7CivliYHnoo4gPCBtaW5jZTsKK+iqv+aDhSA8IGZsaXJ0Owor5pyq5oiQ5bm05Lq6IDwgbWlub3I7CivljIblv5kgPCBoYXN0eTsKK+avm+W3viA8IHRvd2VsOwor6Iqz6aaZIDwgYmFsbXk7CivlubTntJogPCBncmFkZTsKK+e0q+S4gemmmSA8IGxpbGFjOwor5pWj5paHIDwgcHJvc2U7CivkuI3mlrDprq4gPCBzdGFsZTsKK+ilv+iXjyA8IHRpYmV0Owor5aSn6L6y5aC0IDwgcmFuY2g7Civngavou4ogPCB0cmFpbjsKK+atu+advyA8IHJpZ2lkOwor55+b5p+EIDwgc2hhZnQ7Civplbfph5ggPCBzcGlrZTsKK+atpeanjSA8IHJpZmxlOwor5Yi755eVIDwgbm90Y2g7CivpgbjmsJEgPCB2b3RlcjsKK+mtlOmsvCA8IGRldmlsOwor5paw5aiYIDwgYnJpZGU7CivorKDlgrMgPCBydW1vcjsKK+aWsOWlhyA8IG5vdmVsOwor54Wk5rijIDwgc2xhY2s7CivoirHplosgPCBibG9vbTsKK+eJqeS4uyA8IG93bmVyOwor5b2I5byTIDwgc2xpbmc7CivlpJrmsLTliIYgPCBqdWljeTsKK+WgseeqqSA8IGJyb29kOwor6bq15YyF5bir5YKFIDwgYmFrZXI7Civpm7vlvbEgPCBtb3ZpZTsKK+aRuOe0oiA8IGdyb3BlOwor6YCf546HIDwgc3BlZWQ7CivnoLTlo54gPCB3cmVjazsKK+e0hOiOqyA8IGFib3V0Owor5aOB5p62IDwgbGVkZ2U7Civlkbzlj6vlmaggPCBwYWdlcjsKK+majuautSA8IHN0YWdlOwor5Y2B5YiGIDwgZnVsbHk7CivlnLDpnaIgPCBmbG9vcjsKK+irt+WIuiA8IGlyb255Owor55m96LK7IDwgd2FzdGU7CivpgYvmsrMgPCBjYW5hbDsKK+WFq+inkiA8IGFuaXNlOwor6Zmw5ra8IDwgc2hhZHk7Civmk6bmtJcgPCBzY291cjsKK+eGseW/sSA8IGFyZG9yOwor57ag5rSyIDwgb2FzaXM7CivkuIvmsLTpgZMgPCBzZXdlcjsKK+WbuumrlCA8IHNvbGlkOwor5YOn6ZmiIDwgYWJiZXk7CivmjqjpgbggPCBlbGVjdDsKK+aOqOmAsiA8IGltcGVsOwor6Zec56+AIDwgam9pbnQ7Civlvp7kvobkuI0gPCBuZXZlcjsKK+iJpumaiiA8IGZsZWV0Owor5q+U5YiGIDwgc2NvcmU7CivliZvmnpwgPCBjb25nbzsKK+eBq+iKsSA8IHNwYXJrOwor5b2x5YOPIDwgaW1hZ2U7Civnm5znq4ogPCBzdGVhbDsKK+m6uiA8IGZsb3VyOwor6bqYIDwgc2NlbnQ7Civpub4gPCBzYWx0eTsKK+m4siA8IG15bmFoOwor5LqM5qW1566hIDwgZGlvZGU7CivnnaHmpIUgPCBjb3VjaDsKK+ertuaKgOWgtCA8IGFyZW5hOwor5Yqg5a+sIDwgd2lkZW47CivptKogPCBzd29vcDsKK+WPr+aTpuWvq+WPr+e3qOeoi+elh+iugOWtmOWEsuWZqCA8IGVwcm9tOwor6Kqq5Ye6IDwgdXR0ZXI7CivmvrPploAgPCBhb21lbjsKK+aOqOirliA8IGluZmVyOwor57Oi57OKIDwgZm9nZ3k7CivpsJ4gPCBzcXVpZDsKK+WLleWQkSA8IHRyZW5kOwor5aSp5L2/IDwgYW5nZWw7CivopJDoibIgPCBicm93bjsKK+mshumWiyA8IGxvb3NlOwor5qu45pyoIDwgYmVlY2g7Civpg6jku7YgPCBwYXJ0czsKK+i7jOmBkyA8IG9yYml0Owor6ayOIDwgZmF2dXM7CivploPogIAgPCBnbGludDsKK+iHrem8rCA8IHNrdW5rOwor6auzIDwgc3RhdGU7Civpq7IgPCBhXC13aWc7Civnlr7poqggPCBibGFzdDsKK+aUpOWtkCA8IGJvb3RoOwor5aSn5Lq6IDwgYWR1bHQ7CivpuqXpmL/lr4YgPCBtaWFtaTsKK+WHuuaykiA8IGhhdW50Owor6aeeIDwgY2FtZWw7CivpgZPlvrcgPCBtb3JhbDsKK+eZvOiBsiA8IHZvY2FsOwor6ZW36ICBIDwgZWxkZXI7CivkvJHmga/lrqQgPCBsb2JieTsKK+aoueexrCA8IGhlZGdlOwor6aWYIDwgZ3J1ZWw7CivnkIPni4DniakgPCBnbG9iZTsKK+mkqiA8IGZlYXN0Owor6aSmIDwgY2FuZHk7CivluJ3njosgPCByZWdhbDsKK+W8t+WFiSA8IGdsYXJlOwor6aO2IDwgb2RvdXI7Civpo5EgPCBzdG9ybTsKK+i7jOi3oSA8IGxvY3VzOwor6LuM6LedIDwgZ2F1Z2U7Civoo5zol6UgPCB0b25pYzsKK+WwjeaVteiAhSA8IHJpdmFsOwor5bm95pqXIDwgZ2xvb207Civmk5Tmh64gPCB3b3JyeTsKK+amruitvSA8IGhvbm9yOwor6a2U6KGTIDwgbWFnaWM7CivpnoMgPCBib2FyZDsKK+mdpiA8IHRpbWlkOwor6ZyxIDwgY2xvdWQ7CivpnJkgPCBzbGVldDsKK+mWi+erryA8IHN0YXJ0Owor6Zue5YagIDwgY3Jlc3Q7CivpmbwgPCBpc2xldDsKK+mYuSA8IGFcLXBlbjsKK+WIh+acmyA8IGNyYXZlOwor5Yas6Z2S5qi5IDwgaG9sbHk7CivmqJnnsaQgPCBsYWJlbDsKK+mVnyA8IGxhdGhlOwor54S25b6MIDwgYWZ0ZXI7CivpgqPlhZIgPCB0aGVyZTsKK+mSgyA8IG1ldGFsOwor5ZyW6KGoIDwgY2hhcnQ7CivlnI3oo5kgPCBhcHJvbjsKK+eyl+ezmSA8IGNydWRlOwor5p6c5a2Q5YeNIDwgamVsbHk7CivlpKflnLDlnJYgPCBhdGxhczsKK+WJquWgsSA8IHNjcmFwOwor6KaP5qihIDwgc2NhbGU7CivpgqPkupsgPCB0aG9zZTsKK+mIhyA8IGFuXC1heDsKK+i+puazlSA8IG1lYW5zOwor6Ii56LKoIDwgY2FyZ287CivmrYzliocgPCBvcGVyYTsKK+eDj+acqCA8IGVib255Owor6ZuF5ZCE5pu4IDwgamFtZXM7CivnsonnrYYgPCBjaGFsazsKK+e1leaKgCA8IHN0dW50Owor6IeJ6aCwIDwgY2hlZWs7Civnmb3nmaEgPCBpZGlvdDsKK+inkuW6piA8IGFuZ2xlOwor55m855eFIDwgb25zZXQ7CivmhJ/ljJbppIXkub4gPCB3YWZlcjsKK+WfuuacrCA8IGJhc2ljOwor54Gr54SwIDwgYmxhemU7CivmjqLntKIgPCBxdWVzdDsKK+Whq+WhniA8IHN0dWZmOwor57OW5ry/IDwgc3lydXA7Civnsonnoo4gPCBjcmFzaDsKK+iLseS7o+eIviA8IGludGVsOwor6LKkIDwgc3RlcHM7CivoiInotbcgPCBoZWF2ZTsKK+ixlCA8IHBsdW1wOwor6YCZ5aSpIDwgdG9kYXk7CivorpkgPCBjaGVlcjsKK+itgSA8IG5vaXNlOwor5bC86b6NIDwgbnlsb247Civmr5vojLjojLggPCBoYWlyeTsKK+maiuS8jSA8IHJhbmtzOwor6KeUIDwgY2F0dHk7CivluYXluqYgPCB3aWR0aDsKK+apoeacqCA8IG9ha2VuOwor57K+5rayIDwgc2VtZW47Civluorllq4gPCBzaGVldDsKK+WJg+WIgCA8IHJhem9yOwor6KCXIDwgXChhcGVcKTsKK+WwvOaXpeeIviA8IG5pZ2VyOwor6J+iIDwgY2F1bGs7Civlh7PlrZAgPCBzdG9vbDsKK+iGvemHjyA8IG5lcnZlOwor6J2YIDwgZ2Vja287Civlho3mnIMgPCBhZGlldTsKK+aqs+WtkCA8IGJpbnppOwor5YWp5qyhIDwgdHdpY2U7Civkv67po74gPCBhZG9ybjsKK+e0ouW8lSA8IGluZGV4Owor5YO156GsIDwgc3Rhcms7CivomJMgPCB0aHltZTsKK+iYiyA8IGFwcGxlOwor5bel5pyDIDwgdW5pb247Civoo4Lnl5UgPCBjaGFzbTsKK+e0sOWwjyA8IHBldHR5Owor6amF6ZmkIDwgcmVwZWw7CivmqLnmnpcgPCB3b29kczsKK+a9m+ihjCA8IHNuZWFrOwor5Z6C5q27IDwgZHlpbmc7CivmqLrmnKggPCBiaXJjaDsKK+iOvyA8IHRob3JuOwor5YWs5pyDIDwgZ3VpbGQ7Civoi7YgPCB3ZWFyeTsKK+aUtumfs+apnyA8IHJhZGlvOwor5pCT5o+JIDwga25lYWQ7Civoh70gPCBhXC1waXQ7Civoh7IgPCBqdW1weTsKK+iHmyA8IGJyb3RoOwor6YCZ5LqbIDwgdGhlc2U7CivluofkvZEgPCBibGVzczsKK+WBh+ijnSA8IGZlaWduOwor6L6u5a2QIDwgcGxhaXQ7CivpmY3kuIsgPCBsb3dlcjsKK+iFoSA8IGxpbmVzOwor5qiT5qKvIDwgc3RhaXI7CivnrKzkuInmrKEgPCB0aGlyZDsKK+mrmOiBsiA8IGFsb3VkOwor5bCK6a2aIDwgdHJvdXQ7CivogpUgPCB0b3VnaDsKK+WbnuetlCA8IHJlcGx5Owor6ICeIDwgZmxhaWw7Civmi5vlvoXlk6EgPCB1c2hlcjsKK+ewoeefrSA8IGJyaWVmOwor57+9IDwgd2hpcnI7Civlm6TnqY0gPCBob2FyZDsKK+e/hCA8IHdpbmRzOwor6ae/6aasIDwgc3RlZWQ7CivnvYkgPCBhXC1wb3Q7CivoibLni7wgPCBzYXR5cjsKK+e6uyA8IHJhbWllOwor6L2J5pKtIDwgcmVsYXk7Civmibnph48gPCBiYXRjaDsKK+e4jyA8IHB1cnNlOwor57aMIDwgY2xvdGg7Civnmq7luLYgPCBzdHJhcDsKK+aSkuS9hiA8IHNhdGFuOwor5Yaw5aGUIDwgc2VyYWM7Civnso4gPCBtZXRyZTsKK+eumyA8IGJ1Z2xlOwor6LyV5p+TIDwgdGluZ2U7CivnrbAgPCBjYWJsZTsKK+etpiA8IGFcLWtleTsKK+erlCA8IGxpdHJlOwor5oub6Ie0IDwgaW5jdXI7CivkuIDnt5rlvq7lhYkgPCBnbGVhbTsKK+eppyA8IHNoZWFmOwor5qCX6bygIDwgYnVubnk7Civlt6vlqYYgPCB3aXRjaDsKK+mWgOW7iiA8IHN0b29wOwor56S2IDwgYVwtanVnOwor5oSP5aSn5YipIDwgaXRhbHk7Civno4ggPCByb2NreTsKK+eDmOS5viA8IHBhcmNoOwor5rC05bmz6Z2iIDwgcGxhbmU7CivlhazlsLogPCBtZXRlcjsKK+efkyA8IGZhaW50Owor556PIDwgcm91bmQ7Civkup7purvluIMgPCBsaW5lbjsKK+ecuSA8IHB1cGlsOwor5LqU6Iqx5YWr6ZaAIDwgbXlyaWQ7Civnm47lj7ggPCBvdW5jZTsKK+eavSA8IHNjdXJmOwor6aiO6LuKIDwgY3ljbGU7Civnsr7lrZAgPCBzcGVybTsKK+eZoSA8IHNpbGx5Owor5YeM5LqCIDwgY2hhb3M7Civkv5roqp4gPCBzbGFuZzsKK+e0heWIqSA8IGJvbnVzOwor5rqc5Yaw6Z6LIDwgc2thdGU7CivnlI4gPCBicmljazsKK+S9nOWTvOiBsiA8IHNub3J0Owor5Z+D5Y+KIDwgZWd5cHQ7Civoo73pgKDogIUgPCBtYWtlcjsKK+eRlCA8IFwoamFkZTsKK+ePliA8IGNhcmF0Owor56ym6KiYIDwgdG9rZW47CivllqrpkJggPCBrbmVsbDsKK+iEuei1tyA8IGJ1bGdlOwor5YWs5Zm4IDwgdG9ubmU7CivnhKHnlJ/lkb0gPCBpbmVydDsKK+eJnCA8IGFuXC1veDsKK+eJlCA8IGdhYmxlOwor6YWq6L6y5qWtIDwgZGFpcnk7CivnlJ/oi5QgPCBtb3NzeTsKK+momeihkyA8IHRyaWNrOwor5omT6KO9IDwgZm9yZ2U7CivngaMgPCBhXC1iYXk7CivohZDonZUgPCBydXN0eTsKK+awtOiSuOawoyA8IHZhcG9yOwor5YWt5Y2BIDwgc2l4dHk7CivlhazljYcgPCBsaXRlcjsKK+S8vOmbqiA8IHNub3d5Owor55eF5q+SIDwgdmlydXM7CivmjqjltIcgPCB2YWx1ZTsKK+i3r+e3miA8IHJvdXRlOwor5beo5Lq6IDwgZ2lhbnQ7Civlg4/niYfnsL8gPCBhbGJ1bTsKK+aJi+iXnSA8IGNyYWZ0Owor6LSI6IiH6ICFIDwgZ2l2ZXI7CivmlpzntIvou5/lkaIgPCB0d2VlZDsKK+axsyA8IGhlbmFuOwor5b635YWL6Jap5pavIDwgdGV4YXM7CivppqzpgZQgPCBtb3RvcjsKK+Wbm+aciCA8IGFwcmlsOwor5q6RIDwgc3dvb247CivlhbbkuK0gPCBhbW9uZzsKK+atiCA8IHNvbmdzOwor5qy4IDwgc2lnaHM7Civmu5Hnv5QgPCBnbGlkZTsKK+WkqeiXjeiJsiA8IGF6dXJlOwor6KGw5pWXIDwgZGVjYXk7Civoi5vliLsgPCBoYXJzaDsKK+aqqCA8IG1hbmdvOwor56m66ZaTIDwgc3BhY2U7CivmqJUgPCBzaHJ1YjsKK+aOoOWlqiA8IGhhcnJ5Owor5a+f6Ka6IDwgYXdhcmU7CivlsYvnsLcgPCBlYXZlczsKK+agvOiogCA8IG1heGltOwor5qWFIDwgYnVhcmQ7Civnk6PohpwgPCB2YWx2ZTsKK+akiCA8IGNlZGFyOwor5qOBIDwgam9pc3Q7CivlnI3lt74gPCBzY2FyZjsKK+Wvk+iogCA8IGZhYmxlOwor6KKr5a2QIDwgcXVpbHQ7CivmoI0gPCBhXC1sb3Q7CivlsI/oiIwgPCB1dnVsYTsKK+Wwsee3kiA8IHJlYWR5Owor6LuA5bm5IDwgdHJ1bms7CivmiYvogpggPCBlbGJvdzsKK+Wuoui7iiA8IGNvYWNoOwor6Im+5aesIDwgYWdnaWU7Civpo5vooYzlk6EgPCBwaWxvdDsKK+WcqOWkliA8IG91dGVyOwor5bSH5oucIDwgYWRvcmU7CivlhYXku70gPCBhbXBsZTsKK+mrmOaYjiA8IHNtYXJ0Owor55eb5oGoIDwgYWJob3I7Civnl5vlv6sgPCBqb2xseTsKK+aNkOi0iOiAhSA8IGRvbm9yOwor5pWUIDwgZ2F2ZWw7Civopb/nj63niZkgPCBzcGFpbjsKK+eUt+eItSA8IGJhcm9uOwor5Zu65a6aIDwgZml4ZWQ7CivlsJbntLAgPCB0YXBlcjsKK+iKseS/jyA8IGZhbmN5Owor6LWr6IyyIDwgaGVydHo7CivmjIwgPCBmaWdodDsKK+aPkOWkmuabuCA8IHRpdHVzOwor5ZyN5Z+OIDwgc2llZ2U7CivmiaIgPCBjYXBlcjsKK+iHtOaVrCA8IGdyZWV0Owor6LuN5ZyYIDwgY29ycHM7CivmhIMgPCByZWxheDsKK+aOkuWIlyA8IGFycmF5Owor5L+P55quIDwgc2F1Y3k7CivoiJ7lvIogPCBmcmF1ZDsKK+aCviA8IG5haXZlOwor6KOc5LiBIDwgcGF0Y2g7CivnlJ/purXns7AgPCBkb3VnaDsKK+a7v+i6q+WhteWfgyA8IGR1c3R5Owor5ry/5p6cIDwgYmVycnk7CivpmL/mi4nmkakgPCBhbGFtbzsKK+mtheWKmyA8IGNoYXJtOwor5ryC5ri4IDwgZHJpZnQ7CivlvZEgPCBzbm91dDsKK+iqv+WRs+iCieaxgSA8IGdyYXZ5Owor5r2R5o6JIDwgc3BpbGw7CivluJIgPCBhXC1iYWc7Civos4fph5EgPCBmdW5kczsKK+eUt+mrmOmfsyA8IHRlbm9yOwor5LiA6bue5YWSIDwgYVwtYml0Owor5baeIDwgcmlkZ2U7Civoh6rmiJEgPCBzZWxmXC07CivmnpzphZIgPCBjaWRlcjsKK+W0miA8IGhpbGx5Owor5o235YWLIDwgY3plY2g7CivnlKjms5UgPCB1c2FnZTsKK+WtmOiyqCA8IHN0b2NrOwor6auY5bCaIDwgbm9ibHk7Civmi43mk4ogPCBzbWFjazsKK+WrmiA8IHNjb3JuOwor5bCP5qi55p6XIDwgZ3JvdmU7CivluIPokIrniL4gPCBibGFpcjsKK+WcqO+5jeS5i+S4iyA8IGJlbG93Owor5Zyo77mN5LmL5LiKIDwgYWJvdmU7Civmv4DlhYkgPCBsYXNlcjsKK+WuieiPryA8IGFud2FyOwor5ouC5o6DIDwgd2hpc2s7CivoiLnlj6ogPCBzaGlwczsKK+WjhiA8IHN0aWZmOwor5aK6IDwgd2FsbHM7Civloo0gPCBwYWludDsKK+WhmSA8IHRydWx5Owor5Zub5Y2BIDwgZm9ydHk7CivlnbAgPCB3aWxkczsKK+aSpeeBq+ajjSA8IHBva2VyOwor5Zm6IDwgc3Rvcnk7Civll5AgPCBhbGFzXCE7CivmtYHpq5QgPCBmbHVpZDsKK+WWtCA8IGhlbGxvOwor5ZWyIDwgYVwtZmV3Owor5ZWNIDwgY3JlYWs7Civlk7YgPCBibGVhdDsKK+WSjSA8IGxhdWdoOwor5ZCwIDwgY2xhbmc7Civnr4TlnI0gPCByYW5nZTsKK+WOuiA8IHRvXC1nbzsKK+WOliA8IGJ1bGt5Owor5LiJ6Imy57Sr576F6JitIDwgcGFuc3k7Civkv67mlLkgPCBhbWVuZDsKK+aciemiqCA8IHdpbmR5Owor6ama5oWMIDwgcGFuaWM7CivlnKjml4HpgoogPCBhc2lkZTsKK+WGpyA8IGFcLWJ1ZDsKK+S4u+mhjCA8IHRoZW1lOwor54ef5qWt5ZOhIDwgY2xlcms7Civlk6roo6EgPCB3aGVyZTsKK+Wci+mam+mbu+Wgsembu+ipseWSqOipouWnlOWToeacgyA8IGNjaXR0Owor6K2m5aCx5ZmoIDwgc2lyZW47CivnlbblnLAgPCBsb2NhbDsKK+WAieW6qyA8IGRlcG90Owor5L26IDwgZmFpcnk7CivkvIrntKIgPCBhZXNvcDsKK+WLleaFi+W9seWDjyA8IHZpZGVvOwor5LiJ6KeS5rSyIDwgZGVsdGE7CivnrJHmnpcgPCBodW1vcjsKK+WogeeIvuWjqyA8IHdhbGVzOwor5qOa5a2QIDwgc2hhY2s7CivktocgPCBhXC1yYXQ7Civogq/lsLzkup4gPCBrZW55YTsKK+eUt+WtkCA8IGFcLW1hbjsKK+iCoeelqCA8IHNoYXJlOwor5LOxIDwgZHVja3M7CivpurXljIXnmq4gPCBjcnVzdDsKK+iCpeeiqSA8IHN0b3V0Owor5K+NIDwgYm9uZXM7Civnn7PljZfmqLkgPCBoZWF0aDsKK+aLtOS9jyA8IGhpdGNoOwor6KCi5LqLIDwgZm9sbHk7CivkqrsgPCBhXC1jYXA7CivkqZUgPCBjbG9nczsKK+S4i+mbqCA8IHJhaW55Owor6ama5aWHIDwgYW1hemU7CivkqLkgPCBzd2lmdDsKK+WZtOWHuiA8IHNwb3V0Owor5KeqIDwgc2lzc3k7Civkpp4gPCBleHRyYTsKK+SlkyA8IGFcLWhvZTsKK+SkmSA8IGRyZWdzOwor6IWx5a2QIDwgc2luZXc7Civmm7TpgbIgPCBsYXRlcjsKK+m7keiygiA8IHNhYmxlOwor5J2SIDwgYVwtc293Owor5JqfIDwgaG9ybnM7CivonrrntbLph5ggPCBzY3JldzsKK+SaiSA8IG9cLXNlZTsKK+aymem+jSA8IHNhbG9uOwor5JeVIDwgYmVuZHM7Civkv53lp4YgPCBuYW5ueTsKK+WUseipqeePrSA8IGNob2lyOwor5ouJ5LiBIDwgbGF0aW47CivkkYEgPCBmYXR0eTsKK+acg+irhyA8IHRhbGtzOwor6ISI5pCPIDwgcHVsc2U7Civkj7MgPCBvbGVpbjsKK+SPryA8IG1vbGVzOwor5I2lIDwgc21va3k7Civph5Hpq64gPCBibG9uZDsKK+SNjCA8IGFcLWphcjsKK+S4ieWNg+S6lOeZviA8IDNcLTUwMDsKK+SMkSA8IHRpZ2h0Owor5IyQIDwgcm9wZXM7CivkirsgPCBzaWxreTsKK+Wwj+WxiyA8IGNhYmluOwor5IiJIDwgYVwtZmFuOwor5ZiO5ZiOIDwgcXVhY2s7CivkhKUgPCBhXC1nb2Q7CivkhKIgPCBwaW91czsKK+S+v+WjqyA8IHBlbm55Owor6IC256mMIDwgamVzdXM7Civkg5kgPCByb2NrczsKK+mLvOeQtCA8IHBpYW5vOwor6aiO5aOrIDwgcmlkZXI7CivmiYvlpZcgPCBnbG92ZTsKK+i3n+WJjSA8IGZyb250Owor5L+u5YmqIDwgcHJ1bmU7CivjvpogPCBpdGNoeTsKK+mmmeaWmSA8IHNwaWNlOwor5Ly65pyNIDwgc2Vydm87Civnp5/ntIQgPCBsZWFzZTsKK+O8jyA8IGFcLWJhZDsKK+WwluWhlCA8IHNwaXJlOwor5Ze25ZiwIDwgc2VyZ2U7CivmsaHpu54gPCBzdGFpbjsKK+azlemDjiA8IGZyYW5jOwor5rS76JGXIDwgYWxpdmU7CivjuoMgPCBhXC1kb2c7CivjubsgPCBwdXBweTsKK+O5iyA8IGFcLWNvdzsKK+iChea4hSA8IHB1cmdlOwor47iDIDwgYVwtZG90Owor55m854mi6ai3IDwgd2hpbmU7Civmt7nmspIgPCBmbHVzaDsKK+esrOWNgSA8IHRlbnRoOwor5pmC6aumIDwgdm9ndWU7CivmiZPlkbwgPCBzbm9yZTsKK+OwvCA8IGdyZWVkOwor6aSY54e8IDwgZW1iZXI7Civjr7cgPCBkYXRlczsKK+esrOWFrSA8IHNpeHRoOwor466lIDwgc2FpbHM7Civnvr3ojpYgPCBxdWlsbDsKK+WwgeWcsCA8IG1hbm9yOwor6aGM6KejIDwgbm90ZXM7CivplbfpoLjnk7YgPCBmbGFzazsKK+S4gOihjCA8IHBhcnR5Owor46iXIDwgYWxlcnQ7CivjqIMgPCBhXC1yb3c7CivlsI/lkIMgPCBzbmFjazsKK+WuieWFqOeQhuS6i+acgyA8IHRoZVwtdTsKK+OnjSA8IGFsaWtlOwor54+N54+gIDwgcGVhcmw7CivpvLvnhZkgPCBzbnVmZjsKK+a0i+iUpSA8IG9uaW9uOwor56S65aiB6YGL5YuVIDwgcmFsbHk7CivotqPliocgPCBmYXJjZTsKK+S9juW7iSA8IGNoZWFwOwor5ZOA55ebIDwgZ3JpZWY7CivnrKzkupQgPCBmaWZ0aDsKK+esrOS5nSA8IG5pbnRoOwor46G2IDwgZHdlbGw7CivjoZAgPCBmbGFnczsKK+OhjCA8IGFcLWhhdDsKK+OhhyA8IGNvbGFyOwor5pyJ57eaIDwgd2lyZWQ7Civjnr4gPCBhXC1udW47CivjnpUgPCBjaGlwczsKK+OekiA8IGx1c3R5Owor5oiy5YqHIDwgZHJhbWE7CivovInosqjmsb3ou4ogPCBsb3JyeTsKK+e9qeihqyA8IHNtb2NrOwor45akIDwgd3JhdGg7CivjlY4gPCBjYXZlczsKK+eauueciemgrSA8IHNjb3dsOwor45OdIDwgYVwtbGF3Owor45OBIDwgYVwtbmV0Owor45KpIDwgbmFrZWQ7CivjkowgPCBhbG9uZzsKK+eOh+ebtCA8IGZyYW5rOwor45CxIDwgYnVzaHk7Civmma/osaEgPCBzY2VuZTsKK+ixoeeJmSA8IGl2b3J5Owor5Zad5Y+xIDwgY2hpZGU7CivnkLTlvKYgPCBjaG9yZDsKK+eNjueroCA8IG1lZGFsOwor5a2Q5oi/IDwgb3Zhcnk7CivmgKroqpUgPCBmcmVhazsKK+a3seW6piA8IGRlcHRoOwor5Y2I6aSQIDwgbHVuY2g7CivnjbXniqwgPCBob3VuZDsKK+eQhuaDsyA8IGlkZWFsOwor6IC95pOxIDwgdGFycnk7Civml4XppKggPCBob3RlbDsKK+mmrOS+hiA8IG1hbGF5Owor6aas5LyVIDwgZ3Jvb207CivlpKfpub8gPCBtb29zZTsKK+iBluW+kiA8IHNhaW50Owor5LiW55WMIDwgd29ybGQ7CivkvIrmlq/omK3mlZkgPCBpc2xhbTsKK+a4m+WOuyA8IG1pbnVzOwor5Lq65oCnIDwgaHVtYW47CivmhYjmgrIgPCBtZXJjeTsKK+irlumhjCA8IHRvcGljOwor5Y2h6LuKIDwgdHJ1Y2s7CivnvYznsp8gPCBwb3BweTsKK+aWkemmrCA8IHplYnJhOwor5aWX6ZCYIDwgY2hpbWU7CivlrojlgJkgPCBhYmlkZTsKK+adv+WyqSA8IHNsYXRlOwor6aCt55quIDwgc2NhbHA7CivljZHos6QgPCBsb3dseTsKK+WNh+i1tyA8IGhvaXN0Owor5rWB5rWq6ICFIDwgcm92ZXI7Civosp3lr6cgPCBiZW5pbjsKK+aXi+i9iSA8IHdoaXJsOwor54GM5pyo5Y+iIDwgc2NydWI7Civml6XoqJggPCBkaWFyeTsKK+S5g+aYryA8IHRvXC1iZTsKK+aWsOi/kSA8IG5ld2x5Owor5ZC45rCjIDwgc25pZmY7CivoqpjpmbcgPCBzbmFyZTsKK+adk+WtkCA8IHNjb29wOwor5oSf5a6YIDwgc2Vuc2U7CivmnKzlvbEgPCB1bWJyYTsKK+S6uuWToSA8IHN0YWZmOwor57qM6KiCIDwgcmVuZXc7Civmm7TmlLkgPCBhbHRlcjsKK+WQieaZruizveS6uiA8IGd5cHN5Owor5pS26aSKIDwgYWRvcHQ7CivmgKrnlbAgPCB3ZWlyZDsKK+iyk+WSqiA8IGtpdHR5Owor5rK85r6kIDwgZ2xhZGU7Civnoo7luIPmop0gPCBzaHJlZDsKK+axoeepoiA8IG5hc3R5Owor5LiJ5pyIIDwgbWFyY2g7CivlhaflnKjnmoQgPCBpbm5lcjsKK+mbu+mDtSA8IGVtYWlsOwor5Yud6YGOIDwgZXhjZWw7CivorYnnq6AgPCBiYWRnZTsKK+a1t+WcsCA8IGhhaXRpOwor6Zu36YGUIDwgcmFkYXI7CivprLHph5HpppkgPCB0dWxpcDsKK+WkseiqpCA8IGxhcHNlOwor6YKK6ZqbIDwgbGltaXQ7Civni4LnhrEgPCBjcmF6ZTsKK+S6lOWNgSA8IGZpZnR5Owor6Zuq6IyE54WZIDwgY2lnYXI7CivmnbHkuqwgPCB0b2t5bzsKK+avkuibhyA8IHZpcGVyOwor6aCM5q2MIDwgY2Fyb2w7CivlkpXlmpUgPCBncnVudDsKK+S4gOaJkyA8IGRvemVuOwor6Kmm6YeRIDwgYXNzYXk7CivpoK3mmoggPCBkaXp6eTsKK+WQueesm+iAhSA8IHBpcGVyOwor5LiA5be05o6MIDwgc3Bhbms7CivnhKbpu54gPCBmb2N1czsKK+e1seayu+iAhSA8IHJ1bGVyOwor57qW57atIDwgZmliZXI7Civkuovku7YgPCBldmVudDsKK+mAl+m7niA8IGNvbW1hOwor5ZKG5ZOuIDwgZ3Jvd2w7Civlkbzlj6vogbIgPCB3aG9vcDsKK+mCj+i8ryA8IGxvZ2ljOwor5pu05aOeIDwgd29yc2U7Civluqflj7PpipggPCBtb3R0bzsKK+S4ieeonOmPoSA8IHByaXNtOwor5Lit5ZyLIDwgY2hpbmE7CivlpJrokYkgPCBsZWFmeTsKK+S4gOWxpCA8IGxheWVyOwor54e76IKJIDwgYmFjb247Civmk6LpmZ4gPCBleGFsdDsKK+aEm+WFi+aWr+WFiSA8IHhcLXJheTsKK+Wkp+iFvyA8IHRoaWdoOwor5pys5Lq6IDwgaVwtXChtZTsKK+mfu+aWhyA8IHZlcnNlOwor54aK6LKTIDwgcGFuZGE7CivmlpHnvpogPCBnb3JhbDsKK+efruWiqeWiqSA8IHB1ZGd5Owor6JGh6JCEIDwgZ3JhcGU7CivnjY7lk4EgPCBhd2FyZDsKK+m7j+S9jyA8IGNsaW5nOwor5Y+v5oCVIDwgYXdmdWw7CivpgY7pgZMgPCBhaXNsZTsKK+ekpuW3pSA8IG1pbmVyOwor5q2M6KygIDwgY2hhbnQ7Civmspnmi4kgPCBzYWxhZDsKK+aWl+evtyA8IGNsb2FrOwor5pyI5Lu9IDwgbW9udGg7Civpm5voj4ogPCBkYWlzeTsKK+WMheepgCA8IG1haXplOwor6Zi/54i+5rOVIDwgYWxwaGE7CivpgLzov6sgPCBmb3JjZTsKK+WqkuS7iyA8IG1lZGlhOwor5ZOq5LiA5YCLIDwgd2hpY2g7CivmlZnnvqkgPCBjcmVlZDsKK+WQiOiCoee3miA8IHR3aW5lOwor6aCB5bKpIDwgc2hhbGU7CivnkZ7lhbjkurogPCBzd2VkZTsKK+WOreaDoSA8IGxvYXRoOwor5L2/576e5oSnIDwgYWJhc2g7CivmmI/mmpcgPCBkdXNreTsKK+avlOeOhyA8IHJhdGlvOwor6ZyO55y8IDwgYmxpbms7CivmmbTlpKkgPCBzdW5ueTsKK+eUt+WtkOawoyA8IG1hbmx5Owor5L2/5aib5qiCIDwgYW11c2U7CivmnIkgPCBoYXZlOwor55+lIDwga25vdzsKK+i/mSA8IHRoaXM7Civnn5wgPCBwaXR5Owor5b+ZIDwgYnVzeTsKK+adpSA8IGNvbWU7Civov5EgPCBuZWFyOwor6YGTIDwgcGF0aDsKK+S5nyA8IGFsc287Civml7YgPCB0aW1lOwor5bm0IDwgeWVhcjsKK+eeuyA8IGxvb2s7CivovrogPCBlZGdlOwor5bCxIDwganVzdDsKK+mCoyA8IHRoYXQ7CivnlJ8gPCBsaWZlOwor6IeqIDwgc2VsZjsKK+eerCA8IHdpbms7Civov4cgPCBwYXNzOwor5b6qIDwgb2JleTsKK+W+niA8IGZyb207CivlpJogPCBtdWNoOwor5aW9IDwgZ29vZDsKK+i1tyA8IHJpc2U7Civlj6ogPCBvbmx5Owor5L2cIDwgbWFrZTsKK+W9kyA8IGJlYXI7CivlvaIgPCBmb3JtOwor5byAIDwgb3BlbjsKK+aJiyA8IGhhbmQ7CivlvLEgPCB3ZWFrOwor5pysIDwgcm9vdDsKK+WktCA8IGhlYWQ7CivnnJ8gPCByZWFsOwor6Z2iIDwgZmFjZTsKK+WFrCA8IGZhaXI7CivlkIwgPCBzYW1lOwor5YqoIDwgbW92ZTsKK+mVvyA8IGxvbmc7CivovIkgPCBsb2FkOwor5bCGIDwgd2lsbDsKK+i6qyA8IGJvZHk7Civpq5ggPCBoaWdoOwor5oqKIDwgaG9sZDsKK+ebpSA8IHdhc2g7CivmnIggPCBtb29uOwor56eNIDwgc2VlZDsKK+i7jSA8IGFybXk7Civou4ogPCBjYXJ0Owor6YOoIDwgcGFydDsKK+WQjSA8IG5hbWU7Civnmq4gPCBza2luOwor5py6IDwgZGVzazsKK+e7mSA8IGdpdmU7CivnrYkgPCByYW5rOwor5bqnIDwgc2VhdDsKK+W+iCA8IHZlcnk7CivmnIAgPCBtb3N0Owor5bqXIDwgc2hvcDsKK+i6jSA8IHNraXA7CivotbAgPCB3YWxrOwor5ZubIDwgZm91cjsKK+mXqCA8IGdhdGU7CivkuJwgPCBlYXN0Owor5bqBIDwgaGFsbDsKK+ilvyA8IHdlc3Q7CivlubMgPCBmbGF0Owor5ZCsIDwgaGVhcjsKK+W5uCA8IGx1Y2s7CivoubQgPCBraWNrOwor5LqUIDwgZml2ZTsKK+W4tyA8IHRlbnQ7CivluLYgPCBiZWx0Owor5biMIDwgcmFyZTsKK+i4iiA8IGxlYXA7CivkuaYgPCBib29rOwor5LmdIDwgbmluZTsKK+i3syA8IGp1bXA7Civot68gPCByb2FkOwor55epIDwgdGhpbjsKK+a0uyA8IGxpdmU7Civlt6YgPCBsZWZ0Owor5bejIDwgbmVzdDsKK+ihqCA8IHNob3c7Civot58gPCBoZWVsOwor55ebIDwgcGFpbjsKK+eXlSA8IHNjYXI7Civnl5IgPCBpdGNoOwor5oSfIDwgZmVlbDsKK+i2syA8IGZvb3Q7Civph5EgPCBnb2xkOwor5L2VIDwgd2hhdDsKK+abtCA8IG1vcmU7CivnlosgPCByb2xsOwor5YGaIDwgd29yazsKK+iuoSA8IHBsYW47CivnjosgPCBraW5nOwor5ZCEIDwgZWFjaDsKK+eVmSA8IHN0b3A7CivnlY8gPCBmZWFyOwor55S3IDwgbWFsZTsKK+mjjiA8IHdpbmQ7CivltJcgPCBwb3N0Owor5q+bIDwgaGFpcjsKK+WzsCA8IHBlYWs7CivniLEgPCBsb3ZlOwor55OmIDwgdGlsZTsKK+izoyA8IHNlbGw7Civos4MgPCByZW50Owor6LK4IDwgbGVuZDsKK+WyuCA8IGJhbms7Civnu5MgPCBrbm90Owor5bKsIDwgY2FwZTsKK+a1gSA8IGZsb3c7CivosqcgPCBwb29yOwor6Z2SIDwgYmx1ZTsKK+euoSA8IHBpcGU7Civov54gPCBqb2luOwor6ZifIDwgdGVhbTsKK+WxkSA8IGJpdHM7CivpooYgPCBuZWNrOwor5bGIIDwgYmVuZDsKK+WwviA8IHRhaWw7CivljYogPCBoYWxmOwor5YCZIDwgd2FpdDsKK+atpSA8IHN0ZXA7Civmt7EgPCBkZWVwOwor5Yy6IDwgYXJlYTsKK+WwiyA8IHNlZWs7CivnkIMgPCBiYWxsOwor5ZGKIDwgdGVsbDsKK+WvuCA8IGluY2g7Civmu6EgPCBmaWxsOwor5p2OIDwgcGx1bTsKK+aBryA8IHJlc3Q7Civlr5IgPCBjb2xkOwor5a+EIDwgc2VuZDsKK+WPliA8IHRha2U7CivlrqQgPCByb29tOwor5a6bIDwgc2VlbTsKK+WtqSA8IGJhYnk7Civlub8gPCB3aWRlOwor546JIDwgamFkZTsKK+eBqyA8IGZpcmU7CivoroAgPCByZWFkOwor6K29IDwgZmFtZTsKK+WImSA8IHJ1bGU7CivlpLEgPCBsb3NlOwor5YyFIDwgd3JhcDsKK+eMtiA8IGxpa2U7CivokL0gPCBmYWxsOwor5rWOIDwgaGVscDsKK+isoSA8IHNpbmc7CivnvJYgPCBrbml0Owor6LCIIDwgdGFsazsKK+aLiSA8IHB1bGw7Civni7wgPCB3b2xmOwor5p2AIDwga2lsbDsKK+WrjCA8IGhhdGU7CivlhYsgPCBncmFtOwor5YayIDwgc29hcjsKK+aOqCA8IHB1c2g7Civnp7AgPCBjYWxsOwor6KmmIDwgdGVzdDsKK+WPtyA8IG1hcms7CivkupogPCBhc2lhOwor5rivIDwgcG9ydDsKK+iIrCA8IHNvcnQ7CivniKogPCBjbGF3Owor5YiaIDwgaGFyZDsKK+mZhiA8IGxhbmQ7Civnoa4gPCBzdXJlOwor5YW3IDwgdG9vbDsKK+WogSA8IHBvbXA7Civnur8gPCBsaW5lOwor6KemIDwgYnV0dDsKK+inkiA8IGhvcm47Civnh5IgPCBidXJuOwor5aa7IDwgd2lmZTsKK+mcgCA8IG5lZWQ7CivphZIgPCB3aW5lOwor6ZOBIDwgaXJvbjsKK+imlyA8IHBlZWs7CivljLsgPCBjdXJlOwor6KWyIDwgcmFpZDsKK+eFriA8IGNvb2s7CivlnJ8gPCBzb2lsOwor6L2vIDwgc29mdDsKK+eFpCA8IGNvYWw7CivlpZcgPCBjYXNlOwor5oi3IDwgZG9vcjsKK+iDjCA8IGJhY2s7CivmmpcgPCBkYXJrOwor6aG7IDwgbXVzdDsKK+ijuCA8IGJhcmU7CivmoJEgPCB0cmVlOwor5rKJIDwgc2luazsKK+iBjCA8IGR1dHk7Civnu4YgPCBmaW5lOwor6KOcIDwgbWVuZDsKK+iioiA8IHJvYmU7Civml4EgPCBzaWRlOwor5aG1IDwgZHVzdDsKK+WhqSA8IHNhbHQ7CivmrYwgPCBzb25nOwor54GMIDwgcG91cjsKK+WhgCA8IHdhbGw7CivloKQgPCBkaWtlOwor5oG2IDwgZXZpbDsKK+WghiA8IGhlYXA7CivmhaIgPCBzbG93Owor5aCAIDwgY2F2ZTsKK+ifuyA8IGFudHM7Civol48gPCBoaWRlOwor5Z+LIDwgYnVyeTsKK+a+uSA8IGNhbG07CivlnqIgPCBkaXJ0Owor6J6NIDwgbWVsdDsKK+a9riA8IHRpZGU7CivmlZEgPCBzYXZlOwor5LidIDwgc2lsazsKK+m9iiA8IGV2ZW47CivpvLsgPCBub3NlOwor5rysIDwgc29hazsKK+m8kyA8IGRydW07CivmvI8gPCBsZWFrOwor5b2VIDwgY29weTsKK+mBhyA8IG1lZXQ7CivoiLkgPCBzaGlwOwor6bu0IDwgbW9sZDsKK+a7tCA8IGRyaXA7Civpm6ggPCByYWluOwor6JuZIDwgZnJvZzsKK+a7kSA8IHNsaXA7CivpursgPCBoZW1wOwor6JqkIDwgZmxlYTsKK+m5vyA8IGRlZXI7CivmspkgPCBzYW5kOwor5ZmbIDwgYml0ZTsKK+aLjSA8IGNsYXA7CivmjokgPCB0dXJuOwor5ZOtIDwgd2VlcDsKK+WYhiA8IHNpZ2g7CivljYggPCBub29uOwor5Y2hIDwgY2FyZDsKK+mbqiA8IHNub3c7Civmt7UgPCBndWxmOwor5ra8IDwgY29vbDsKK+WIuiA8IHN0YWI7CivolqogPCBmdWVsOwor6bG8IDwgZmlzaDsKK+WWmCA8IHBhbnQ7Civnm5ggPCB0cmF5Owor6JaUIDwgcm9zZTsKK+aetiA8IHJhY2s7CivmrL4gPCBpdGVtOwor5rWqIDwgd2F2ZTsKK+iVqSA8IHBvbmQ7CivmtKogPCB2YXN0Owor6ZWHIDwgdG93bjsKK+a1hCA8IHB1cmU7Civml4UgPCB0cmlwOwor5ZS+IDwgc3BpdDsKK+mqqCA8IGJvbmU7CivllJYgPCBkdW1iOwor6bSJIDwgY3JvdzsKK+WUhyA8IGxpcHM7Civms7MgPCBkaXZlOwor5ZOyIDwgd2lzZTsKK+WTqSA8IG1pbGU7CivlnKMgPCBob2x5Owor6bOlIDwgYmlyZDsKK+aZkyA8IGRhd247CivmsrwgPCBsYWtlOwor6IW/IDwgbGVnczsKK+aOoiA8IGZpbmQ7CivokaYgPCByZWVkOwor5rGgIDwgcG9vbDsKK+iRiSA8IGxlYWY7CivmnZ8gPCBiaW5kOwor5ZGGIDwgZHVsbDsKK+WQuyA8IGtpc3M7CivlkLkgPCBibG93Owor5rCPIDwgY2xhbjsKK+etviA8IHNpZ247CivmsIggPCBmZWx0Owor5aW2IDwgbWlsazsKK+iPqSA8IGhlcmI7Civlj6IgPCBidXNoOwor5oyCIDwgaGFuZzsKK+iIqiA8IHNhaWw7Civmi7MgPCBmaXN0Owor5LmYIDwgcmlkZTsKK+WdgCA8IHNpdGU7Civmr4YgPCBiZWF0Owor6a2CIDwgc291bDsKK+S5lCA8IHRhbGw7Civnsq4gPCBmb29kOwor5pWPIDwgZmFzdDsKK+iMjiA8IHN0ZW07Civpm7YgPCB6ZXJvOwor5Yu+IDwgaG9vazsKK+S5gyA8IHRoZW47CivmiqwgPCBsaWZ0Owor6IuUIDwgbW9zczsKK+WGkiA8IHJpc2s7CivmqqMgPCBtYXN0Owor6ZetIDwgc2h1dDsKK+eilyA8IGJvd2w7CivliaUgPCBwZWVsOwor6JuLIDwgZWdnczsKK+S/gyA8IHVyZ2U7CivmnbAgPCBoZXJvOwor6IifIDwgYm9hdDsKK+i/nyA8IGxhdGU7CivotZYgPCByZWx5Owor6aeSIDwgY29sdDsKK+mmtCA8IHRhbWU7Civohp0gPCBrbmVlOwor5ouWIDwgZHJhZzsKK+aYjyA8IGR1c2s7CivmiJIgPCB3YXJuOwor6aG1IDwgcGFnZTsKK+S6lSA8IHdlbGw7CivohIcgPCByaWJzOwor5LmPIDwgbGFjazsKK+iDniA8IHdvbWI7CivmoqggPCBwZWFyOwor6YW4IDwgdGFydDsKK+ahtiA8IHBhaWw7Civnu6kgPCBzcGluOwor5pOmIDwgd2lwZTsKK+autyA8IG1hbnk7CivogJUgPCBwbG93Owor5pqWIDwgd2FybTsKK+mUgSA8IGxvY2s7CivnoI0gPCBoYWNrOwor5oWIIDwga2luZDsKK+e+uSA8IHNvdXA7Civpnq0gPCB3aGlwOwor576oIDwgZW52eTsKK+aSpCA8IG9taXQ7CivnrbkgPCBjaGlwOwor5p2WIDwgY2FuZTsKK+mcsCA8IGhhaWw7Civmu4sgPCBncm93Owor6LCxIDwgbGlzdDsKK+S4mCA8IGhpbGw7CivmnYYgPCBwb2xlOwor6ZqIIDwgY292ZTsKK+e6giA8IGVkaXQ7CivllIkgPCBhbGFzOwor56y8IDwgY2FnZTsKK+e5qiA8IGRyYXc7CivnuakgPCByb3BlOwor55+/IDwgbWluZTsKK+mVliA8IGRhcnQ7CivlhYYgPCBvbWVuOwor5oqrIDwgd2VhcjsKK+WAuiA8IGRlYnQ7CivloKEgPCBmb3J0Owor6aKCIDwgbGF1ZDsKK+e1hiA8IGxvb3A7CivpkokgPCBuYWlsOwor5ZOEIDwgY29heDsKK+mTgyA8IGJlbGw7CivlpZEgPCBkZWVkOwor5oeSIDwgbGF6eTsKK+eMjiA8IGh1bnQ7CivmkbogPCBmb2xkOwor566LIDwgbm90ZTsKK+aNsiA8IGN1cmw7Civnp4MgPCBiYWxkOwor6bitIDwgZHVjazsKK+WQvCA8IHJvYXI7CivnqrogPCBwZWVwOwor5Y+gIDwgcGlsZTsKK+mKkSA8IG1pbGw7CivpgLggPCBmbGVlOwor6LSxIDwgbWVhbjsKK+eLriA8IGxpb247Civlpq4gPCBtYWlkOwor56qRIDwga2lsbjsKK+aFviA8IGx1c3Q7CivnpbcgPCBwcmF5Owor6LmEIDwgaG9vZjsKK+eDpCA8IGJha2U7CivlsKwgPCBsaW1wOwor6YCxIDwgd2VlazsKK+aAoCA8IGlkbGU7Civog7YgPCBnbHVlOwor5qKzIDwgY29tYjsKK+WVpCA8IGJlZXI7Civphb8gPCBicmV3Owor5o2jIDwgaHVsbDsKK+WZoiA8IG1vYW47Civnqp8gPCBob2xlOwor5YWRIDwgY2FzaDsKK+ayuCA8IGJvaWw7CivnmL4gPCByYXNoOwor5aaeIDwgZ2lybDsKK+W4nCA8IGZsYWc7Civolb4gPCBidWRzOwor6ZOFIDwgbGVhZDsKK+mUoyA8IGdvbmc7Civll6YgPCBzdWNrOwor6L20IDwgYXhsZTsKK+a2lSA8IHRlYXI7CivlkIYgPCBiYXdsOwor6IGLIDwgZGVhZjsKK+WLnyA8IGxldnk7CivnmoIgPCBzb2FwOwor6J+5IDwgY3JhYjsKK+WUoCA8IGNoYXQ7CivllYMgPCBnbmF3Owor576UIDwgbGFtYjsKK+mUiCA8IHJ1c3Q7CivohZMgPCBjYWxmOwor6aqhIDwgbXVsZTsKK+mGhyA8IHJpY2g7CivnuqwgPCB3b29mOwor6JukIDwgY2xhbTsKK+WRsSA8IHdhaWw7CivmiI4gPCBhcm1zOwor6JS8IDwgbHVzaDsKK+ekgSA8IHJlZWY7Civpl6kgPCBib2x0Owor6LebIDwgbGFtZTsKK+WBjCA8IHRodXM7Civnro0gPCBob29wOwor6J+gIDwgY29pbDsKK+aOgiA8IGhlZnQ7CivpgZAgPCBhZmFyOwor5ZCgIDwgYmFyazsKK+ibviA8IG1vdGg7CivogJggPCB3ZWVkOwor6J++IDwgdG9hZDsKK+etjyA8IHJhZnQ7CivpsqQgPCBjYXJwOwor6IqLIDwgdGFybzsKK+m5qiA8IHdyZW47CivonJUgPCBtb2x0Owor54SKIDwgd2VsZDsKK+iAmSA8IHJha2U7CivnvIQgPCBzZWFsOwor5rypIDwgZWRkeTsKK+mltSA8IGJhaXQ7CivosJEgPCBqZWVyOwor6aKPIDwgY2hpbjsKK+iKriA8IHRpbnk7CivnkqggPCBnZW1zOwor5rO1IDwgcHVtcDsKK+ixjCA8IHBlYXM7CivloJEgPCBtb2F0Owor55a1IDwgZmxhdzsKK+amiCA8IHBhbG07CivprIMgPCBtYW5lOwor5ZKdIDwgaGlzczsKK+mCiyA8IHJhZ3M7Civog6QgPCBoZWlyOwor57KVIDwgbGVlczsKK+aMniA8IGZsb2c7CivplasgPCBsYW1wOwor6ZiEIDwgbG90czsKK+mUjCA8IHppbmM7CivllpkgPCBiZWFrOwor6IKbIDwgYW51czsKK+eXgiA8IHNjYWI7CivpuKIgPCBraXRlOwor6L2tIDwgeW9rZTsKK+a0tSA8IHRydWU7Civms4UgPCBzd2ltOwor55++IDwgYWx1bTsKK+iaqSA8IHdvcm07CivpuLcgPCBoYXdrOwor6ICLIDwgYWdlZDsKK+WdqCA8IGx1bXA7CivnlrEgPCBhY25lOwor54ioIDwgb3ZlbjsKK+aLiiA8IHNsYXA7Civpqp8gPCBnZWxkOwor5Zy5IDwgdG9tYjsKK+m+iCA8IGd1bXM7CivpmIsgPCBmZXVkOwor6YWwIDwgYWN5bDsKK+eWoyA8IHdhcnQ7CivnqZEgPCBmYXJtOwor56S7IDwgY3VsdDsKK+S9pCA8IGthd2E7CivpurggPCBicmFuOwor6I+WIDwgaXJpczsKK+WrsSA8IGxhZHk7CivosJ0gPCBicmFnOwor5rCWIDwgbmVvbjsKK+i3liA8IHNvbGU7CivomosgPCBnbmF0Owor5YG+IDwgcnVpbjsKK+eWkiA8IHNpY2s7CivlmY0gPCBjaGV3Owor5rSzIDwgZGFtcDsKK+eCsSA8IHNvb3Q7CivohqogPCBwb3JrOwor57uyIDwgY29yZDsKK+WugCA8IHJvb2Y7CivluLbpnLIgPCBkZXd5Owor6JaE5ZG9IDwgXCh1c3U7Civlip/nuL4gPCBmZWF0Owor5pq05LqCIDwgcmlvdDsKK+eIm+azpSA8IG9vemU7Civml6XmnJ8gPCBkYXRlOwor5aeo5aq9IDwgYXVudDsKK+S8iuaLieWFiyA8IGlyYXE7Civlub3osLcgPCBkZWxsOwor5pWZ55qHIDwgcG9wZTsKK+WQkeS4iyA8IGRvd247CivpgJ/ooYwgPCBydXNoOwor5pyJ6IO95YqbIDwgYWJsZTsKK+mAmeijoSA8IGhlcmU7CivnvLrlj6MgPCBuaWNrOwor5Y6f5a2QIDwgYXRvbTsKK+eLguWQoCA8IGhvd2w7Civlv4Pmg4UgPCBtb29kOwor6YeO5YWUIDwgaGFyZTsKK+WfuumHkSA8IGZ1bmQ7Civln4PnsbPniL4gPCBlbWlyOwor55+z54mHIDwgc2xhYjsKK+WSluWVoemkqCA8IGNhZmU7CivlhrDpjq4gPCBpY2VkOwor54a+54axIDwgZ2xvdzsKK+efs+eBsCA8IGxpbWU7Civnmq7pnq0gPCBsYXNoOwor5Ya36YW3IDwgZ3JpbTsKK+ehrOW5oyA8IGNvaW47Civlh53oppYgPCBnYXplOwor5pWZ5rS+IDwgc2VjdDsKK+WFrOmbniA8IGNvY2s7Civop5LoibIgPCByb2xlOwor57qW5bqmIDwgc2l6ZTsKK+WlieaJvyA8IGZhd247CivpnLLpvZLogIznrJEgPCBncmluOwor6Kqy5paHIDwgdGV4dDsKK+mVt+mdtCA8IGJvb3Q7CivniaLlm7ogPCBmaXJtOwor55m+6Z2IIDwgbGFyazsKK+mAmuihjOeohSA8IHRvbGw7CivnjononIDpu40gPCBjb3JuOwor6YCP57SFIDwgcm9zeTsKK+aVuOaTmiA8IGRhdGE7CivoqanmrYwgPCBwb2VtOwor5bCP5q+b6J+yIDwgc2x1ZzsKK+aogumaiiA8IGJhbmQ7CivmsKPlkbMgPCBvZG9yOwor54Sh56auIDwgcnVkZTsKK+mDveW4giA8IGNpdHk7Civopb/oloQgPCBjYWtlOwor5pyA5Li76KaBIDwgbWFpbjsKK+mbquaSrCA8IHNsZWQ7CivpgajmuLggPCByb2FtOwor5q+S5a6zIDwgYmFuZTsKK+eMtuS7luW3niA8IHV0YWg7CivntLDog54gPCBjZWxsOwor5Y2R5YqjIDwgYmFzZTsKK+W+qeWOnyA8IGhlYWw7CivliKXnmoQgPCBlbHNlOwor5YWs6LGsIDwgYm9hcjsKK+iqv+WtkCA8IHR1bmU7CivnnLznnIsgPCBzb29uOwor6Z2i5YW3IDwgbWFzazsKK+W8p+W9oiA8IGFyY2g7Civkvb/lj5flgrcgPCBodXJ0Owor55im6ZW3IDwgc2xpbTsKK+iKsemCiiA8IGxhY2U7Civloavmu78gPCBjcmFtOwor6Ku+5LqeIDwgbm9haDsKK+WkluWllyA8IGNvYXQ7CivplbfopaogPCBob3NlOwor56uL5pa56auUIDwgY3ViZTsKK+mVt+iijSA8IGdvd247CivlvLflp6YgPCByYXBlOwor54Wn5paZIDwgdGVuZDsKK+aOoemCkSA8IGZpZWY7CivmjqDpgY4gPCBmbGl0Owor54Gw6ImyIDwgZ3JheTsKK+eZvemqqOmggiA8IGNvb3Q7CivntLDnnIsgPCBwZWVyOwor6bu2IDwgbW9sZTsKK+ikquiJsiA8IGZhZGU7CivpupogPCBidWNrOwor6YGp5oeJIDwgc3VpdDsKK+m6jCA8IHN0YWc7CivpuoMgPCB0aWxsOwor6bmGIDwgbXluYTsKK+S4gOinkumKgOW5oyA8IGRpbWU7CivliZ3mjokgPCBwYXJlOwor6YO15Lu2IDwgbWFpbDsKK+eekeaDsyA8IG11c2U7CivpgYrmiLIgPCBnYW1lOwor56+A6bueIDwgbm9kZTsKK+moryA8IGxvdWQ7Civpp70gPCBncmV5Owor5o2y6Lu4IDwgcmVlbDsKK+mljCA8IGZlZWQ7CivmlaPlh7ogPCBzaGVkOwor6aOhIDwgbWVhbDsKK+W3oueptCA8IGxhaXI7CivmtIvlqIPlqIMgPCBkb2xsOwor6Zi/5pu8IDwgb21hbjsKK+W7oOWtkCA8IHlhcmQ7CivourLpgb8gPCBzaHVuOwor54ax5YqbIDwgaGVhdDsKK+mYniA8IHZlaW47CivkuIvkuIDmrKEgPCBuZXh0Owor5re66buD6ImyIDwgYnVmZjsKK+mXhiA8IGJvc3M7CivnsL3oqLwgPCB2aXNhOwor6bO05Y+rIDwgaG9vdDsKK+mVqSA8IHBpY2s7CivplZUgPCBmdXNlOwor6ZGiIDwgZmlsZTsKK+mQqSA8IGxlbnM7CivmlLblibIgPCByZWFwOwor57ay5a2UIDwgbWVzaDsKK+mbnOS6giA8IG1lc3M7CivmjonokL0gPCBmbG9wOwor6aOy6aOf55mC6aSKIDwgZGlldDsKK+ipqeS6uiA8IGJhcmQ7CivlpKfooovlrZAgPCBzYWNrOwor6KGo6LGhIDwgaWRlYTsKK+iIkumBqSA8IGNvenk7Civoi7HnlZ0gPCBhY3JlOwor5q2l5LyQIDwgcGFjZTsKK+i9lyA8IGZhaWw7CivmjqXnuKsgPCBzZWFtOwor5YWs54mbIDwgYnVsbDsKK+eyl+eggiA8IGdyaXQ7CivlhazniLUgPCBkdWtlOwor6Le8IDwgYmVudDsKK+WHuuenn+i7iiA8IHRheGk7Civot7IgPCBob29kOwor6I+c5ZauIDwgbWVudTsKK+apq+aokSA8IGJlYW07Civos7UgPCBnaWZ0Owor6KGT6KqeIDwgdGVybTsKK+WJm+WLgSA8IGJvbGQ7CivooZrooZUgPCBsYW5lOwor6Im+57WoIDwgbW94YTsKK+iqpyA8IGh1Z2U7Civop50gPCBnb3JlOwor5YWI6KaL6ICFIDwgc2VlcjsKK+iKseeTtiA8IHZhc2U7CivooK0gPCBiZWVzOwor5qmf5pm6IDwgdGFjdDsKK+WCvuiBvSA8IGhhcms7CivonokgPCB3YXNwOwor6ZCY6aCtIDwgaG91cjsKK+iYkiA8IFw6MTQzOwor6JefIDwgdmluZTsKK+eCuOW9iCA8IGJvbWI7Civlm57ogbIgPCBlY2hvOwor6JOrIDwgZG9jazsKK+ino+WHjSA8IHRoYXc7CivokJwgPCBjNWg4Owor6I++IDwgYmVldDsKK+mVt+anjSA8IHBpa2U7Civlha3mnIggPCBqdW5lOwor5YOx55SoIDwgaGlyZTsKK+Wck+ebpCA8IGRpc2s7CivlnLDnjYQgPCBoZWxsOwor54i15aOr6IieIDwgamF6ejsKK+mYv+WAkSA8IGFtZW47CivohbYgPCBtZWF0Owor6ISyIDwgdXJlYTsKK+i3r+mCiiA8IGN1cmI7CivoppblnJYgPCB2aWV3Owor5pKH5Y67IDwgc2tpbTsKK+i+suWltCA8IHNlcmY7Civoib7mu4vnl4UgPCBhaWRzOwor5biz5ZauIDwgYmlsbDsKK+iNieWdqiA8IGxhd247CivmkLblpaogPCBzbmFwOwor6Zu754eI5rOhIDwgYnVsYjsKK+ergSA8IGJvcmU7CivnqZwgPCByaWNlOwor56a4IDwgcnVtcDsKK+WDueasviA8IGNvc3Q7CivmqKPlvI8gPCB0eXBlOwor5pCN5a6zIDwgaGFybTsKK+aooeW8jyA8IG1vZGU7Civnm5/lj4sgPCBhbGx5Owor55+7IDwgdG9pbDsKK+eWvOeXmyA8IGFjaGU7CivmqJPlu4IgPCBsb2Z0Owor55uu556q5Y+j5ZGGIDwgc3R1bjsKK+WxgeipsSA8IHNoaXQ7Civpj4jot68gPCBsaW5rOwor54y25aSn5pu4IDwganVkZTsKK+S9jumfsyA8IGJhc3M7CivnlKjohrMgPCBkaW5lOwor56yR6KmxIDwgam9rZTsKK+Wxsee+iiA8IGdvYXQ7Civnq7bos70gPCByYWNlOwor56yo6JuLIDwgZm9vbDsKK+WyqeefsyA8IHJvY2s7CivnlaXnorwgPCBjb2RlOwor5ra0IDwgZGF1YjsKK+i8g+WwkSA8IGxlc3M7Civnmb7lkIggPCBsaWx5Owor6IWw6IKJIDwgbG9pbjsKK+WcsOW4tiA8IHpvbmU7CivplqPkuIsgPCBzaXJlOwor6b6N6aqoIDwga2VlbDsKK+Wkp+mgremHmCA8IHRhY2s7Civkv53nvoUgPCBwYXVsOwor6Imy5b2pIDwgdGludDsKK+aqjSA8IGlsZXg7Civmp7kgPCBzcGFyOwor5o2y5bi2IDwgdGFwZTsKK+akkSA8IG92YWw7CivpjY3ph5EgPCBnaWxkOwor5oyH5qiZIDwgbm9ybTsKK+ihneaSniA8IGRhc2g7Civmn6MgPCBzaWxsOwor5bKp5ry/IDwgbGF2YTsKK+afgiA8IGhlbG07Civmj6HkvY8gPCBncmlwOwor5pyYIDwgd2FuZTsKK+Wck+Wxi+mggiA8IGRvbWU7Civmk6sgPCB0dWNrOwor562W55WlIDwgcGxvdDsKK+aRsiA8IHJhemU7CivmkJggPCBwcm9wOwor5Lqe6bq7IDwgZmxheDsKK+aOniA8IGVhc3k7CivlnIjlpZcgPCB0cmFwOwor6ZuZ6IOe6IOOIDwgdHdpbjsKK+exg+WciCA8IHJpbmc7Civohr3msYEgPCBnYWxsOwor5oawIDwgd2lseTsKK+aAsyA8IHdpbGQ7CivmjqHkvJAgPCBmZWxsOwor5LiA5aGK6bq1IDwgbG9hZjsKK+mbu+apn+WPiumbu+WtkOWtuOW3peeoi+W4q+iBr+WQiOacgyA8IGllZWU7CivlgJ/mrL4gPCBsb2FuOwor5Yiw77mN5LmL5LiKIDwgb250bzsKK+iiluWPoyA8IGN1ZmY7Civlhajpq5Tkurrlk6EgPCBjcmV3Owor5L2/55So6ICFIDwgdXNlcjsKK+enmOmtryA8IHBlcnU7Civlg6fkvrYgPCBtb25rOwor5a27IDwgbGFzdDsKK+aLluaLiSA8IGhhdWw7CivlqoogPCBzdGFyOwor5ai4IDwgdWdseTsKK+mBoOeoi+ebo+aOpyA8IHJtb247CivlnKjvuY3kuYvkuK0gPCBhbWlkOwor5ZyN5L2PIDwgZ2lyZDsKK+WnpCA8IG1hdGU7Civmo43mo5IgPCBjbHViOwor5ouN5omTIDwgZmxhcDsKK+mjvumHmCA8IHN0dWQ7CivlgY/lt64gPCBiaWFzOwor6aqw5a2QIDwgZGljZTsKK+iBluipqSA8IGh5bW47CivlpJblsI/ohb8gPCBzaGluOwor6Yuq6KitIDwgcGF2ZTsKK+WQvSA8ICcnb20nJzsKK+ibi+eZveefsyA8IG9wYWw7Civmnq/okI4gPCB3aWx0Owor5YicIDwgY2hvcDsKK+WIkyA8IHRyaW07CivkuIDliIbpjKIgPCBjZW50Owor55ay5YCmIDwgdGlyZTsKK+izouiDvSA8IHNhZ2U7Civmtbfou40gPCBuYXZ5Owor6Iet5ZGzIDwgZnVtZTsKK+S+nCA8IGxpZXM7CivkvLEgPCB0aG91Owor5YG25YOPIDwgaWRvbDsKK+Wwj+i1t+mHjeapnyA8IGphY2s7Civot6jluqYgPCBzcGFuOwor5LO8IDwgZ3VsbDsKK+aenOiCiSA8IHB1bHA7CivksbQgPCB0dW5hOwor5K+VIDwgYm9ueTsKK+WRvemBiyA8IGZhdGU7CivlrZfnr4AgPCBieXRlOwor576F6aasIDwgcm9tZTsKK+iAg+ippiA8IGV4YW07Civkp7sgPCBkb3ZlOwor5YCN5aGUIDwgYmV0YTsKK+Wck+mMkOmrlCA8IGNvbmU7CivmgqDplpIgPCBlYXNlOwor5Lyv54i1IDwgZWFybDsKK+WRqOmBiiA8IHRvdXI7CivkoYAgPCBudWRlOwor5KCPIDwgZmVldDsKK+SavSA8IG5ld3M7CivnkLXnkLYgPCBsdXRlOwor5JmKIDwgYXJpZDsKK+iGoOWNtyA8IGZpbG07Civklq0gPCBncnViOwor5bCI55So6ZuG5oiQ6Zu76LevIDwgYXNpYzsKK+SSuiA8IGNsYXk7Civlk4HohKsgPCBwaW50Owor5bCP5bO2IDwgaXNsZTsKK+iWhOmcpyA8IG1pc3Q7CivkvZXmmYIgPCB3aGVuOwor5Y+j6aCtIDwgb3JhbDsKK+S7pOeLgCA8IHdyaXQ7CivkgYYgPCBleWVzOwor5IGFIDwgcmFnZTsKK+iVqOmhniA8IGZlcm47CivkgIAgPCBjdXBzOwor47+ZIDwgZnVsbDsKK+O+uSA8IGxlYW47CivmipPkvY8gPCBncmFiOwor6JyC6Jyc6YWSIDwgbWVhZDsKK+aguOW/gyA8IGNvcmU7CivmsbrprKUgPCBkdWVsOwor6LGG6IWQIDwgdG9mdTsKK+WSkue9tSA8IGRhbW47CivjsrsgPCBzdW5rOwor47K0IDwgbWluZDsKK+OynCA8IHJ1Z3M7CivjsKsgPCBnbGFkOwor47CfIDwgaG9wZTsKK+OupCA8IHBpbmU7CivonILmiL8gPCBoaXZlOwor466SIDwgd29vZDsKK+OrsSA8IG1pbGQ7Civppqzlu4QgPCBiYXJuOwor5Lqe55W2IDwgYWRhbTsKK+e/heiGgCA8IHdpbmc7Civph5HlsazoloTniYcgPCBmb2lsOwor5LyK5pyXIDwgaXJhbjsKK+S4u+e+qSA8IFwtaXNtOwor6bql6Iq9IDwgbWFsdDsKK+eLueiwtyA8IGdsZW47CivniaHpub8gPCBoYXJ0Owor5Zyo5LmL5LiKIDwgb3ZlcjsKK+WQjeipniA8IG5vdW47CivlrZjmoLkgPCBzdHViOwor6aCt6IWm5riF5qWaIDwgc2FuZTsKK+OapyA8IGFnaWw7Civlj7LoqakgPCBlcGljOwor6LK05amm5Lq6IDwgZGFtZTsKK+WutuWckiA8IGhvbWU7CivniZvpo7IgPCBndWxwOwor6LO65b6XIDwgZWFybjsKK+ixjueQtCA8IGhhcnA7CivkuIDnvqQgPCBnYW5nOwor6Z+z6Kq/IDwgdG9uZTsKK+adv+ainSA8IGxhdGg7CivosrTml48gPCBsb3JkOwor5ZOI5qygIDwgeWF3bjsKK+ixrOayuSA8IGxhcmQ7CivpjKvlrokgPCB6aW9uOwor542154mpIDwgcHJleTsKK+e0heWvtuefsyA8IHJ1Ynk7Civniq/opo8gPCBmb3VsOwor6Luf5pyo5aGeIDwgY29yazsKK+ayueiGjyA8IGJhbG07Civnj63miL8gPCBqYWlsOwor5paR6bueIDwgc3BvdDsKK+a1ruaomSA8IGJ1b3k7CivlrrbkvJkgPCBjaGFwOwor5b6M6Z2iIDwgcmVhcjsKK+Wkqem1nSA8IHN3YW47CivmlbTpvYogPCB0aWR5Owor5Zyo5rC05q2l6KGMIDwgd2FkZTsKK+avjemmrCA8IG1hcmU7CivlrZflnosgPCBmb250Owor5a6J5YWoIDwgc2FmZTsKK+eyiee0heiJsiA8IHBpbms7CivlraTllq4gPCBsb25lOwor5pyo5qG2IDwgY2FzazsKK+mjvuW4tiA8IHNhc2g7CivogIHmkr4gPCBsYW9zOwor5pym5pynIDwgYmx1cjsKK+iqsumhjCA8IHRhc2s7Civnj6DlrZAgPCBiZWFkOwor5ZG85ZG86IGyIDwgd2hpcjsKK+W/q+atpei3kSA8IHRyb3Q7Civms6LnibkgPCBiYXVkOwor6YeO56a9IDwgZm93bDsKK+aaiOecqSA8IGRhemU7CivoqqrorIrogIUgPCBsaWFyOwor5p+Q5LqbIDwgc29tZTsKK+W8t+miqCA8IGdhbGU7CivpurvmnKggPCBudW1iOwor6Zmq5a+p5ZyYIDwganVyeTsKK+mfgee5qSA8IHJlaW47CivlkKbmsbogPCB2ZXRvOwor5rKZ55m8IDwgc29mYTsKK+S7luWAkSA8IHRoZXk7Civms6HmsqsgPCBmb2FtOwor54mb6IKJIDwgYmVlZjsKK+S4g+aciCA8IGp1bHk7CivkuIDmnI0gPCBkb3NlOwor6LGG5a2QIDwgYmVhbjsKK+WqveWqvSA8IG1hbWE7CivmlY/pirMgPCBrZWVuOwor5rK55rK5IDwgb2lseTsKK+WMheijnSA8IHBhY2s7CivmsaHnl5UgPCBibG90Owor54yb5pKeIDwgc2xhbTsKK+mdoue9qSA8IHZlaWw7Civpnq3nl5UgPCB3ZWx0Owor5Lqe5LiBIDwgYWRlbjsKK+eNqOWljyA8IHNvbG87CivmspDmtbQgPCBiYXRoOwor5pyA5aW9IDwgYmVzdDsKK+iqk+ipniA8IG9hdGg7Civli5XoqZ4gPCB2ZXJiOwor6auY54i+5aSr55CDIDwgZ29sZjsKK+aatOW+kiA8IHRodWc7Civmsb3msLQgPCBzb2RhOwor55+t6KWqIDwgc29jazsKK+W8leitiSA8IGNpdGU7CivpiJXluLYgPCBib25kOwor5YmN6Z2iIDwgZm9yZTsKK+mZo+miqCA8IGd1c3Q7Civmg6HliqMgPCB2aWxlOwor5q+b57eaIDwgeWFybjsKK+WMl+e0hCA8IG5hdG87Civph43mk4ogPCBiYW5nOwor5q2l6Kq/IDwgZ2FpdDsKK+mAmumiqCA8IGFpcnk7Civorormj5sgPCB2YXJ5Owor6JK855m9IDwgcGFsZTsKK+awtOa7tCA8IGRyb3A7CivnuZTluIPmqZ8gPCBsb29tOwor6Zu76Kmx6Yi06IGyIDwgYnV6ejsKK+aUtuiXjyA8IGtlZXA7Civpm7vnt5ogPCB3aXJlOwor5LiA5ZC5IDwgcHVmZjsKK+avm+eariA8IHBlbHQ7CivpgYvosrsgPCBmYXJlOwor5aOB6JmxIDwgdGljazsKK+aSpemWiyA8IHBva2U7Civov7fpmaMgPCBtYXplOwor6Jel5Li4IDwgcGlsbDsKK+WFiee6luWIhuS9iOaVuOaTmuaOpeWPoyA8IGZkZGk7CivpnLLnh58gPCBjYW1wOwor5q+S54mpIDwgcGVzdDsKK+S4gCA8IG9uZTsKK+S6uiA8IG1hbjsKK+aIkSA8IG91cjsKK+WkpyA8IGJpZzsKK+S4iiA8IHRvcDsKK+S9oCA8IHlvdTsKK+WPryA8IG1heTsKK+WluSA8IHNoZTsKK+WkqSA8IHNreTsKK+iAjCA8IGFuZDsKK+eEtiA8IHllczsKK+ayoSA8IG5vdDsKK+aXpSA8IHN1bjsKK+W9qSA8IGh1ZTsKK+WNgSA8IHRlbjsKK+eUqCA8IHVzZTsKK+ecvCA8IGV5ZTsKK+ingSA8IHNlZTsKK+iAgSA8IG9sZDsKK+S4pCA8IHR3bzsKK+WkliA8IG91dDsKK+azlSA8IGxhdzsKK+eCuSA8IGRvdDsKK+ebnCA8IHJvYjsKK+WFtiA8IGhpczsKK+WEvyA8IHNvbjsKK+aWsCA8IG5ldzsKK+W6iiA8IGJlZDsKK+eahiA8IGFsbDsKK+a1tyA8IHNlYTsKK+WwkSA8IGZldzsKK+W4vSA8IGhhdDsKK+WPqyA8IGNyeTsKK+atuyA8IGRpZTsKK+aUviA8IHB1dDsKK+S7iiA8IG5vdzsKK+i1pCA8IHJlZDsKK+eVoiA8IGVuZDsKK+aImCA8IHdhcjsKK+izvCA8IGJ1eTsKK+eTtiA8IGp1ZzsKK+ivtyA8IGFzazsKK+S6pCA8IG1peDsKK+WQgyA8IGVhdDsKK+i/kCA8IHJ1bjsKK+e9kSA8IG5ldDsKK+mjniA8IGZseTsKK+eMvyA8IGFwZTsKK+eMqyA8IGNhdDsKK+eMqiA8IHBpZzsKK+WdkCA8IHNpdDsKK+isgiA8IHNheTsKK+eLlyA8IGRvZzsKK+WIhyA8IGN1dDsKK+iqpCA8IGVycjsKK+eDrSA8IGhvdDsKK+eJmyA8IGNvdzsKK+S9jiA8IGxvdzsKK+S7jSA8IHlldDsKK+iEmiA8IGxlZzsKK+WliCA8IGJ1dDsKK+aOkiA8IHJvdzsKK+WjniA8IGJhZDsKK+a5viA8IGJheTsKK+WiqCA8IGluazsKK+ihkyA8IGFydDsKK+a/mCA8IG11ZDsKK+a/lSA8IHdldDsKK+mcsiA8IGRldzsKK+m9oiA8IGFnZTsKK+idmSA8IGJhdDsKK+idiyA8IHdheDsKK+m8oCA8IHJhdDsKK+icgiA8IGJlZTsKK+aRhyA8IHdhZzsKK+ayuSA8IG9pbDsKK+iXiSA8IG1hdDsKK+a2siA8IHNhcDsKK+iWryA8IHlhbTsKK+iAsyA8IGVhcjsKK+WWiyA8IG5hZzsKK+WVnCA8IHNpcDsKK+WTgCA8IHNhZDsKK+WGsCA8IGljZTsKK+adryA8IGN1cDsKK+awoyA8IGFpcjsKK+iQjCA8IGJ1ZDsKK+mAlCA8IHdheTsKK+iMtiA8IHRlYTsKK+WNtSA8IGVnZzsKK+aSrSA8IHNvdzsKK+iHgiA8IGFybTsKK+astyA8IHNvYjsKK+WMmiA8IGJveDsKK+aRqSA8IHJ1YjsKK+WGoCA8IGNhcDsKK+iKuCA8IHJ1ZTsKK+e8mCA8IGhlbTsKK+afkyA8IGR5ZTsKK+iGvyA8IHB1czsKK+amuyA8IGNvdDsKK+WGhiA8IHllbjsKK+iFkCA8IHJvdDsKK+iEgiA8IGZhdDsKK+aPtCA8IGFpZDsKK+WTvCA8IGh1bTsKK+WBtSA8IHNweTsKK+mhjiA8IGphdzsKK+e9kCA8IGphcjsKK+aNtyA8IHdpbjsKK+mcpyA8IGZvZzsKK+S5viA8IGRyeTsKK+e8nSA8IHNldzsKK+aKmiA8IHBhdDsKK+aMliA8IGRpZzsKK+aJhyA8IGZhbjsKK+S5niA8IGJlZzsKK+i1jCA8IGJldDsKK+asoCA8IG93ZTsKK+awmyA8IGdhczsKK+e3oCA8IHRpZTsKK+eCkiA8IGZyeTsKK+mUoSA8IHRpbjsKK+WdkSA8IHBpdDsKK+aSlSA8IHJpcDsKK+ejlSA8IGhpdDsKK+iwjiA8IGxpZTsKK+mKnCA8IGJpdDsKK+i1iyA8IHRheDsKK+WbiiA8IGJhZzsKK+aQgiA8IGh1ZzsKK+W8kyA8IGJvdzsKK+W6kCA8IGh1dDsKK+avryA8IHJ1ZzsKK+mSpSA8IGtleTsKK+aWpyA8IGF4ZTsKK+i5piA8IGhvcDsKK+i/oiA8IGZhcjsKK+iagiA8IGFudDsKK+mUhCA8IGhvZTsKK+aNhSA8IGphYjsKK+ahqCA8IG9hcjsKK+eLuCA8IGZveDsKK+eMliA8IG1hZDsKK+i2viA8IHRvZTsKK+iYuCA8IGRpcDsKK+eQpiA8IGdlbTsKK+eVuCA8IG9kZDsKK+WdryA8IGRhbTsKK+mznSA8IGVlbDsKK+aAqSA8IHNoeTsKK+m7oCA8IHNseTsKK+mUmyA8IGFkejsKK+m6iyA8IGVsazsKK+mzjSA8IGZpbjsKK+WIjSA8IG1vdzsKK+afniA8IG9hazsKK+meoyA8IHRhbjsKK+WDliA8IGpveTsKK+e+nSA8IHJhbTsKK+WfpCA8IGFkZDsKK+epuueZvem7niA8IGdhcDsKK+axguaEmyA8IHdvbzsKK+WQjOS9jSA8IHBhcjsKK+eCuueUmum6vCA8IHdoeTsKK+WPl+WIsCA8IGdldDsKK+WPr+S7pSA8IGNhbjsKK+mFkuW7iiA8IGJhcjsKK+eUt+WtqeWtkCA8IGJveTsKK+a2suaZtumhr+ekuiA8IGxjZDsKK+egtOW4gyA8IHJhZzsKK+W8t+aLiSA8IHR1ZzsKK+eEoeiKseaenCA8IGZpZzsKK+e2k+eUsSA8IHZpYTsKK+ioreazlSA8IHRyeTsKK+WmguS9lSA8IGhvdzsKK+ecvOeVjCA8IGtlbjsKK+W5vOeNuCA8IGN1YjsKK+mbouWtkCA8IGlvbjsKK+iyk+WPq+iBsiA8IG1ldzsKK+eEpuayuSA8IHRhcjsKK+mAgOa9riA8IGViYjsKK+m9oyA8IGFjdDsKK+eBq+iFvyA8IGhhbTsKK+m5iyA8IGVtdTsKK+mZsOaalyA8IGRpbTsKK+e4veWSjCA8IHN1bTsKK+m0niA8IG93bDsKK+mylSA8IHJvZTsKK+mstyA8IHBvdDsKK+mshiA8IGxheDsKK+mroiA8IHdpZzsKK+egjeS8kCA8IGhldzsKK+WIuuaOoiA8IHByeTsKK+W4uOaYpeiXpCA8IGl2eTsKK+mRryA8IGF3bDsKK+eDj+WQiOS5i+ecviA8IG1vYjsKK+WJjeWklSA8IGV2ZTsKK+WgheaenCA8IG51dDsKK+i9kSA8IHJ1dDsKK+i4tiA8IHBhdzsKK+WFiOeUnyA8IHNpcjsKK+ashOWciCA8IHBlbjsKK+Wwj+eyvumdiCA8IGVsZjsKK+imquWxrCA8IGtpbjsKK+e0ouWFt+ijnee9riA8IHJpZzsKK+aLlui7iiA8IHRvdzsKK+Whq+WFhSA8IHBhZDsKK+WFrOWFseaxvei7iiA8IGJ1czsKK+iStCA8IHBvZDsKK+iAgeWkqeeIuiA8IGdvZDsKK+mbtum7nuWFrSA8IDBcLjY7CivmqIXmqLkgPCBmaXI7CivnlJzphZIgPCBydW07CivnvocgPCBpbm47Civlh7rlg7kgPCBiaWQ7CivlgrPnnJ8gPCBmYXg7Civoi6bmg7EgPCBhaWw7Civlha3pu57lha0gPCA2XC42Owor6aqo572IIDwgdXJuOwor6Luf5q+bIDwgZnVyOwor56CyIDwgZ3VuOwor55mZIDwgaWxsOwor6LyV5omTIDwgdGFwOwor5bCP6LK7IDwgdGlwOwor5qaG5qi5IDwgZWxtOwor5r2aIDwgZ2F5Owor5bel5L2cIDwgam9iOwor6IKL6aqoIDwgcmliOwor5qWOIDwgcGVnOwor5qKpIDwgaG9kOwor6auU6IKy6aSoIDwgZ3ltOwor5p2FIDwgdHViOwor5LiD6bue5LqUIDwgN1wuNTsKK+S4g+m7nuS6jCA8IDdcLjI7CivlnLDlnJYgPCBtYXA7CivmlLUgPCByYXA7Civli5XnianlnJIgPCB6b287CivprIblvJsgPCBzYWc7CivppKHppIUgPCBwaWU7CivlnJblg4/kupLmj5vmoLzlvI8gPCBnaWY7CivlsITnt5ogPCByYXk7Civpi7jplosgPCBzYXc7CivmnpzphqwgPCBqYW07CivlnI3lhZwgPCBiaWI7CivlrJsgPCBhcHQ7CivnjLblpKrkurogPCBqZXc7Civmi5bmioogPCBtb3A7CivkuYjpu54gPCBhY2U7CivlsI/ni5cgPCBwdXA7Civosqjou4ogPCB2YW47CivlnJPlvaLmnKjmnZAgPCBsb2c7Civpu57poK0gPCBub2Q7CivlsI3mupYgPCBhaW07CivlmbTlsIQgPCBqZXQ7CivlgqLkvJkgPCBndXk7CivkuaIgPCBsaWQ7CivpqaLlrZAgPCBhc3M7Civpo5von7IgPCBidWc7CivnrYblsJYgPCBuaWI7CivkoZwgPCBjYXI7CivpuqXphZIgPCBhbGU7Civkv67lpbMgPCBudW47CivknYYgPCBob2c7CivmnIPosrsgPCBkdWU7Civkub7ojYkgPCBoYXk7CivkjKIgPCByYXc7Civki54gPCB3ZWI7CivkipEgPCBwYXk7CivlsaLliqAgPCBwbHk7CivkuZ3kuIPlubQgPCAnJzk3Owor5ZyT5b2i6bq15YyFIDwgYnVuOwor5a6J5pS+IDwgbGF5Owor45y4IDwgc2luOwor6KiI5LmY6LuKIDwgY2FiOwor6aCM6KmeIDwgb2RlOwor6ISr5rCn5qC457OW5qC46YW4IDwgZG5hOwor5p2c5p2+5a2Q6YWSIDwgZ2luOwor5L2V5Lq6IDwgd2hvOwor54eV6bqlIDwgb2F0Owor5q+N6ZueIDwgaGVuOwor56Sm55+zIDwgb3JlOwor5oCV576eIDwgY295Owor5Lu75L2VIDwgYW55Owor5rWB5oSfIDwgZmx1Owor5ZOO5ZayIDwgaGV5Owor5pa56IifIDwgYXJrOwor54iG6IGyIDwgcG9wOwor5pS26LK7IDwgZmVlOwor5q+N576KIDwgZXdlOwor5bCP5LyZ5a2QIDwgbGFkOwor5Yil6YedIDwgcGluOwor5bmz6Y2LIDwgcGFuOwor5LiNIDwgbm87CivkuLogPCBkbzsKK+S5iyA8ICcnczsKK+W+gyA8IGdvOwor5LqOIDwgaW47CivlpoIgPCBpZjsKK+aIliA8IG9yOwor5a6DIDwgaXQ7CivlkrEgPCB1czsKK+WTnyA8IGFoOwor5ZeoIDwgaGk7CivlvZ0gPCB5aTsKK+mUsSA8IG96Owor6ZKUIDwgbWQ7CivkvLIgPCB3ZTsKK+mVpCA8IHBhOwor6ZWOIDwgbnA7Civpk7kgPCBscjsKK+WQkeS4iuWcsCA8IHVwOwor6ZS/IDwgZXM7CivplJ0gPCB0YzsKK+mUlSA8IGFjOwor5YWJ56KfIDwgY2Q7CivnuYQgPCBiZTsKK+ezjiA8IG1tOwor57KoIDwgaG07CivnsoEgPCBrbTsKK+extSA8IGRtOwor5ZqH6IGyIDwgaG87CivnpYIgPCBoZTsKK+aIkeeahCA8IG15Owor5ZeIIDwgb2g7CivlkoEgPCBzbzsKK+WFoSA8IGhnOwor5YWeIDwgbWc7CivlhZ0gPCBkZzsKK+aWp+mgrSA8IGF4Owor5L2ZIDwgaTsKK+aotiA8IGM7CivkuIDlgIsgPCBhOwor5pS/5bqc5qmf6Zec6ZaL5pS+57O757Wx5LqS6YCj57i95YmHID4gZ292ZXJubWVudFwtb3Blblwtc3lzdGVtXC1pbnRlcmNvbm5lY3Rpb25cLXByb2ZpbGU7Civpm7vmqZ/lj4rpm7vlrZDlrbjlt6XnqIvluKvoga/lkIjmnIMgPiBpZWVlOwor5ZyL6Zqb6Zu76Kmx6Zu75aCx6Kuu6Kmi5aeU5ZOh5pyDID4gaW50ZXJuYXRpb25hbFwtY29uc3VsdGF0aXZlXC1jb21taXR0ZWVcLWZvclwtdGVsZXBob25lXC1hbmRcLXRlbGVncmFwaDsKK+mYv+S4jeS+huaPkFwu6Zi/5LiN6YO954ax6KW/5o+QID4gYWJkdWxhaWRpXC1hbXVkdXJleGl0aVwtXChjaGFpcm1hblwtb2ZcLXhpbmppYW5nXC1hdXRvbm9tb3VzXC1yZWdpb25cKTsKK+WPr+aTpuWvq+WPr+e3qOeoi+elh+iugOWtmOWEsuWZqCA+IGVwcm9tOwor5ZyL6Zqb6Zu75aCx6Zu76Kmx5ZKo6Kmi5aeU5ZOh5pyDID4gY2NpdHQ7CivogLbnqYzln7rnnaPmnKvkuJbogZblvpLmlZnmnIMgPiB0aGVcLWNodXJjaFwtb2ZcLWplc3VzXC1jaHJpc3RcLW9mXC1sYXR0ZXJcLWRheVwtc2FpbnRzOwor5Y2B5YSE5L2N5YWD5Lul5aSq57ay57Wh6IGv55ufID4gZ2lnYWJpdFwtZXRoZXJuZXRcLWFsbGlhbmNlOwor5qqU5qGI6L2J6YCB5a2Y5Y+W5Y+K566h55CGID4gZmlsZVwtdHJhbnNmZXJcLFwtYWNjZXNzXC1hbmRcLW1hbmFnZW1lbnQ7CivpnZ7lsI3nqLHlvI/mlbjmk5rnlKjmiLbnt5ogPiBhc3ltbWV0cmljYWxcLWRpZ2l0YWxcLXN1YnNjcmliZXJcLWxpbmU7Civoh6jmmYLnmoTmnKzlnLDnrqHnkIbmjqXlj6MgPiBpbnRlcmltXC1sb2NhbFwtbWFuYWdlbWVudFwtaW50ZXJmYWNlOwor6IGv6YKm6Zu75L+h5Lqk6YCa5aeU5ZOh5pyDID4gZmVkZXJhbFwtY29tbXVuaWNhdGlvbnNcLWNvbW1pc3Npb247Civpm7vohabovJTliqnoqK3oqIjoiIfnuarlnJYgPiBjb21wdXRlclwtYWlkZWRcLWRlc2lnblwtYW5kXC1kcmF3aW5nOwor5YWJ57qW5YiG5L2I5byP5pW45pOa5LuL6Z2iID4gZmliZXJcLWRpc3RyaWJ1dGVkXC1kYXRhXC1pbnRlcmZhY2U7CivlhYnnupbliIbmlaPlvI/os4fmlpnku4vpnaIgPiBmaWJlclwtZGlzdHJpYnV0ZWRcLWRhdGFcLWludGVyZmFjZTsKK+aVuOaTmumPiOi3r+mAo+aOpeitmOWIpeeivCA+IGRhdGFcLWxpbmtcLWNvbm5lY3Rpb25cLWlkZW50aWZpZXI7Civpm7vohaboiIfpm7voqbHns7vntbHmlbTlkIggPiBjb21wdXRlclwtdGVsZXBob255XC1pbnRlZ3JhdGlvbjsKK+WhnueIvue2reS6nuWFi+e+heWcsOS6nuiqniA+IHNlcmJvXC1jcm9hdGlhblwtXChsYW5ndWFnZVwpOwor56aB5q2i5qC45q2m5Zmo6Kmm6amX5qKd57SEID4gbnVjbGVhclwtdGVzdFwtYmFuXC10cmVhdHk7CivogIHpqaXkvI/mq6rlv5flnKjljYPph4wgPiBcKGxpdFwuXClcLWFuXC1vbGRcLXN0ZWVkXC1pblwtdGhlXC1zdGFibGVcLXN0aWxsXC1hc3BpcmVzXC10b1wtZ2FsbG9wXC0xMDAwXC1saTsKK+S4jeWFpeiZjueptOeEieW+l+iZjuWtkCA+IGhvd1wtY2FuXC15b3VcLWNhdGNoXC10aWdlclwtY3Vic1wtd2l0aG91dFwtZW50ZXJpbmdcLXRoZVwtdGlnZXInJ3NcLWxhaXI7Civmr5TkuIrkuI3otrPmr5TkuIvmnInkvZkgPiBmYWxsXC1zaG9ydFwtb2ZcLXRoZVwtYmVzdFwtYnV0XC1iZVwtYmV0dGVyXC10aGFuXC10aGVcLXdvcnN0Owor5YyX5aSn6KW/5rSL5YWs57SE57WE57mUID4gdGhlXC1ub3J0aFwtYXRsYW50aWNcLXRyZWF0eVwtb3JnYW5pemF0aW9uXC1cKG5hdG9cKTsKK+S4jee2k+S4gOS6i+S4jemVt+S4gOaZuiA+IHlvdVwtY2FuJyd0XC1nYWluXC1rbm93bGVkZ2VcLXdpdGhvdXRcLXByYWN0aWNlOwor5bu656uL5q2j5byP5aSW5Lqk6Zec5L+CID4gZm9ybWFsbHlcLWVzdGFibGlzaFwtZGlwbG9tYXRpY1wtcmVsYXRpb25zOwor55m+6Laz5LmL6J+y5q276ICM5LiN5YO1ID4gYVwtY2VudGlwZWRlXC1kaWVzXC1idXRcLW5ldmVyXC1mYWxsc1wtZG93bjsKK+WuieWFqOiIh+S6pOaPm+WnlOWToeacgyA+IHNlY3VyaXRpZXNcLWFuZFwtZXhjaGFuZ2VcLWNvbW11bmljYXRpb247CivntpzlkIjmnI3li5nmlbjkvY3ntrLntaEgPiBpbnRlZ3JhdGVkXC1zZXJ2aWNlc1wtZGlnaXRhbFwtbmV0d29yazsKK+aVtOmrlOacjeWLmeaVuOS9jee2sui3ryA+IGludGVncmF0ZWRcLXNlcnZpY2VzXC1kaWdpdGFsXC1uZXR3b3JrOwor57Ch5Zau57ay57Wh566h55CG5Y2U6K2wID4gc2ltcGxlXC1uZXR3b3JrXC1tYW5hZ2VtZW50XC1wcm90b2NvbDsKK+aVtOmrlOaVuOS9jeacjeWLmee2sui3ryA+IGludGVncmF0ZWRcLXNlcnZpY2VcLWRpZ2l0YWxcLW5ldHdvcms7CivlhazlhbHkuqTmj5vpm7voqbHntrLot68gPiBwdWJsaWNcLXN3aXRjaGVkXC10ZWxlcGhvbmVcLW5ldHdvcms7Civov5HkuY7lkIzmraXmlbjkvY3pmo7lsaQgPiBwbGVzaW9jaHJvbm91c1wtZGlnaXRhbFwtaGllcmFyY2h5Owor5pel5pys6Zu75aCx6Zu76Kmx5YWs5Y+4ID4gbmlwcG9uXC10ZWxlZ3JhcGhcLWFuZFwtdGVsZXBob25lOwor5buj5pKt5ZKM5pyq55+l5pyN5YuZ5ZmoID4gYnJvYWRjYXN0XC1hbmRcLXVua25vd25cLXNlcnZlcjsKK+eZvuWwuuadhumgreabtOeboeS4gOatpSA+IG1ha2VcLXN0aWxsXC1mdXJ0aGVyXC1wcm9ncmVzczsKK+Wci+mam+iyqOW5o+WfuumHkee1hOe5lCA+IGludGVybmF0aW9uYWxcLW1vbmV0YXJ5XC1mdW5kOwor5a6i5oi25qmf5pyN5YuZ5Zmo55Kw5aKDID4gY2xpZW50XC1zZXJ2ZXJcLWVudmlyb25lbWVudDsKK+mbu+WtkOmDteS7tuWCs+mAgeacjeWLmSA+IFwoZVwtXCltYWlsXC1kZWxpdmVyeVwtc2VydmljZTsKK+eUqOaItuWIsOe2sue1oeeahOaOpeWPoyA+IHVzZXJcLW5ldHdvcmtcLWludGVyZmFjZTsKK+S6nua0suiIh+WkquW5s+a0i+WcsOWNgCA+IGFzaWFcLXBhY2lmaWNcLXJlZ2lvbjsKK+WNgeWEhOS9jeWFg+S7peWkque2sue1oSA+IGdpZ2FiaXRcLWV0aGVybmV0Owor5YWJ57qW5YiG5L2I5pW45pOa5o6l5Y+jID4gZmRkaTsKK+S4jeimi+ajuuadkOS4jeiQvea3miA+IG5vdFwtc2hlZFwtYVwtdGVhclwtdW50aWxcLW9uZVwtc2Vlc1wtdGhlXC1jb2ZmaW5cLVwtXC1yZWZ1c2VcLXRvXC1iZVwtY29udmluY2VkXC11bnRpbFwtb25lXC1pc1wtZmFjZWRcLXdpdGhcLWdyaW1cLXJlYWxpdHk7CivkuI3liLDpu4PmsrPlv4PkuI3mrbsgPiBub3RcLXN0b3BcLXVudGlsXC1vbmVcLXJlYWNoZXNcLXRoZVwtaHVhbmdoZVwtcml2ZXJcLVwtXC1ub3RcLXN0b3BcLXVudGlsXC1vbmVcLXJlYWNoZXNcLW9uZScnc1wtZ29hbDsKK+mWieWhnuecvOedm+aNiem6u+mbgCA+IHRyeVwtdG9cLWNhdGNoXC1zcGFycm93c1wtd2l0aFwtb25lJydzXC1leWVzXC1ibGluZGZvbGRlZFwtXC1cLWFjdFwtYmxpbmRseTsKK+aWr+eJueWHoeirvuaZrua0m+aWryA+IHN0ZXBoYW5vcG91bG9zXC1cKGVnXCxcLWZvcm1lclwtY2xpbnRvblwtYWlkZVwtZ2VvcmdlXC1zdGVwaGFub3BvdWxvc1wpOwor5Lq65rCR6Iux6ZuE57SA5b+156KRID4gbW9udW1lbnRcLXRvXC10aGVcLXBlb3BsZScnc1wtaGVyb2VzXCxcLWF0XC10aWFuYW5tZW5cLXNxdWFyZTsKK+aMieS4i+iRq+iYhua1rui1t+eToiA+IHNvbHZlXC1vbmVcLXByb2JsZW1cLW9ubHlcLXRvXC1maW5kXC1hbm90aGVyXC1jcm9wcGluZ1wtdXA7CivkuI3mlaLotorpm7fmsaDkuIDmraUgPiBkYXJlXC1ub3RcLWdvXC1vbmVcLXN0ZXBcLWJleW9uZFwtdGhlXC1wcmVzY3JpYmVkXC1saW1pdDsKK+adseWNl+S6nuWci+WutuiBr+ebnyA+IGFzZWFuXC1cKGFzc29jaWF0aW9uXC1vZlwtc291dGhlYXN0XC1hc2lhblwtbmF0aW9uc1wpOwor5aSx5pWX5piv5oiQ5Yqf5LmL5q+NID4gXCJmYWlsdXJlXC1pc1wtdGhlXC1tb3RoZXJcLW9mXC1zdWNjZXNzXCJcLVwocHJvdmVyYlwpOwor57aT54ef566h55CG5ZKM57at6K23ID4gb3BlcmF0aW9uc1wtYWRtaW5pc3RyYXRpb25cLWFuZFwtbWFpbnRlbmFuY2U7CivmoLjmrablmajnoJToo73oqIjlioMgPiBudWNsZWFyXC13ZWFwb25zXC1cKG1hbnVmYWN0dXJpbmdcKVwtcHJvZ3JhbTsKK+aVmeaOiOeVouern+aYr+aVmeaOiCA+IHByb2Zlc3NvcnNcLWFyZVwtXChhZnRlclwtYWxsXClcLXByb2Zlc3NvcnM7CivomZvmk6zpgJrpgZPmqJnoqoznrKYgPiB2aXJ0dWFsXC1jaGFubmVsXC1jb25uZWN0aW9uXC1pZGVudGlmaWVyOwor5LiW55WM5oCn5Y+k6ICB5ZWP6aGMID4gYVwtcHJvYmxlbVwtYXNcLW9sZFwtYXNcLXRoZVwtd29ybGRcLWl0c2VsZjsKK+mbu+S/oeacjeWLmeS+m+aHieWVhiA+IHRlbGVjb21tdW5pY2F0aW9uc1wtc2VydmljZVwtcHJvdmlkZXI7CivlhaznlKjkuqTmj5vpm7voqbHntrIgPiBwdWJsaWNcLXN3aXRjaGVkXC10ZWxlcGhvbmVcLW5ldHdvcms7CivkuK3oj6/kurrmsJHlhbHlkozlnIsgPiB0aGVcLXBlb3BsZScnc1wtcmVwdWJsaWNcLW9mXC1jaGluYTsKK+mAmueUqOizh+a6kOitmOWIpeiZnyA+IHVuaXZlcnNhbFwtcmVzb3VyY2VcLWlkZW50aWZpZXI7Civljp/lrZDnp5HlrbjlrrbpgJrloLEgPiBqb3VybmFsXC1vZlwtYXRvbWljXC1zY2llbnRpc3RzOwor6LaF5paH5Lu25YKz6Ly45Y2U5a6aID4gaHlwZXJ0ZXh0XC10cmFuc2ZlclwtcHJvdG9jb2w7CivotoXmlofmnKzlgrPovLjljZTlrpogPiBoeXBlcnRleHRcLXRyYW5zZmVyXC1wcm90b2NvbDsKK+WuouaItuacjeWLmeWZqOe1kOaniyA+IGNsaWVudFwtc2VydmVyXC1hcmNoaXRlY3R1cmU7CivlqpLpq5TmjqXlj6PpgKPmjqXlmaggPiBtZWRpdW1cLWludGVyZmFjZVwtY29ubmVjdG9yOwor6Z2i5Zqu5bCN6LGh55qE5oqA6KGTID4gb2JqZWN0XC1vcmllbnRlZFwtdGVjaG5vbG9neTsKK+mdnuWQjOatpeWCs+i8uOaooeW8jyA+IGFzeW5jaHJvbm91c1wtdHJhbnNmZXJcLW1vZGU7CivotoXmlofmnKzmqJnoqJjoqp7oqIAgPiBoeXBlcnRleHRcLW1hcmt1cFwtbGFuZ3VhZ2U7Civlj43oiaboiYflt6HoiKrlsI7lvYggPiBhbnRpXC1zaGlwXC1jcnVpc2VcLW1pc3NsZTsKK+eUqOaItuWIsOe2sue1oeaOpeWPoyA+IHVzZXJcLW5ldHdvcmtcLWludGVyZmFjZTsKK+S6nua0suWkquW5s+a0i+WcsOWNgCA+IGFzaWFcLXBhY2lmaWNcLXJlZ2lvbjsKK+Wkmuexs+WwvOWKoOWFseWSjOWciyA+IGRvbWluaWNhblwtcmVwdWJsaWM7CivmkpLlk4jmi4nku6XljZfpnZ7mtLIgPiBzdWJcLXNhaGFyYW5cLWFmcmljYTsKK+WcqOWkp+WkmuaVuOaDheazgeS4iyA+IGluXC1tb3N0XC1pbnN0YW5jZXM7CivotoXpq5jpgJ/kuZnlpKrntrLot68gPiBnaWdhYml0XC1ldGhlcm5ldDsKK+W3tOW4g+S6nuaWsOW5vuWFp+S6niA+IHBhcGF1XC1uZXdcLWd1aW5lYTsKK+e+heWvhuatkOiIh+acsem6l+iRiSA+IHJvbWVvXC1hbmRcLWp1bGlldDsKK+WkqumZveW+ruezu+e1seWFrOWPuCA+IHN1blwtbWljcm9zeXN0ZW1zOwor5biW5pKS576F5bC86L+m5b6M5pu4ID4gMlwtdGhlc3NhbG9uaWFuczsKK+S6nueIvueZvOWSjOWlp+exs+WKoCA+IGFscGhhXC1hbmRcLW9tZWdhOwor5biW5pKS576F5bC86L+m5YmN5pu4ID4gMVwtdGhlc3NhbG9uaWFuczsKK+iOq+WwvOWNoeiQiua6q+aWr+WfuiA+IG1vbmljYVwtbGV3aW5za3k7CivpmL/kvI/kvL3lvrfnvoXlrprlvosgPiBhdm9nYWRybycnc1wtbGF3Owor6Zu757qc6Kq/5Yi26Kej6Kq/5ZmoID4gY2FibGVcLW1vZGVtOwor56ys5LqM5qyh5LiW55WM5aSn5oiwID4gd29ybGRcLXdhclwtMjsKK+S7i+izquioquWVj+aOp+WItuWxpCA+IG1hY1wtbGF5ZXI7CivkuI3nn6XlpKnpq5jlnLDljpogPiBub3RcLWtub3dcLXRoZVwtaW1tZW5zaXR5XC1vZlwtaGVhdmVuXC1hbmRcLWVhcnRoXC1cLVwtaGF2ZVwtYW5cLWV4YWdnZXJhdGVkXC1vcGluaW9uXC1vZlwtb25lJydzXC1hYmlsaXRpZXM7Civnmb7ogZ7kuI3lpoLkuIDoposgPiBzZWVpbmdcLWZvclwtb25lc2VsZlwtaXNcLWFcLWh1bmRyZWRcLXRpbWVzXC1iZXR0ZXJcLXRoYW5cLWhlYXJpbmdcLWZyb21cLW90aGVyczsKK+S4jeiyu+WQueeBsOS5i+WKmyA+IGFzXC1lYXN5XC1hc1wtYmxvd2luZ1wtb2ZmXC1kdXN0XC1cLVwtbm90XC1uZWVkaW5nXC10aGVcLXNsaWdodGVzdFwtZWZmb3J0Owor5rKZ5Yip56eR5LuA57at5YipID4gZ2VuZXJhbFwtc2hhbGlrYXNodmlsaVwtXChoZWFkXC1vZlwtdXNcLWpvaW50XC1jaGllZnNcLW9mXC1zdGFmZlwpOwor5a+E5LqI5b6I5aSn5pyf5pybID4gdG9cLXBsYWNlXC1ncmVhdFwtaG9wZVwtb3JcLWV4cGVjdGF0aW9uXC1vblwtXChzdGhcKTsKK+W3tOeIvuiIjeWkq+aWr+WfuiA+IFwoY2hhcmxlbmVcKVwtYmFyc2hlZnNreVwsXC11c1wtdHJhZGVcLW5lZ290aWF0b3I7CivntITlrpros4foqIrpgJ/njocgPiBjb21taXR0ZWRcLWluZm9ycm1hdGlvblwtcmF0ZVwtXChmcmFtZVwtcmVsYXlcKTsKK+mAhuWQkeaTgeWhnumAmuefpSA+IGJhY2t3YXJkXC1leHBsaWNpdFwtY29uZ2VzdGlvblwtbm90aWZpY2F0aW9uOwor5YmN5ZCR5pOB5aGe6YCa55+lID4gZm9yd2FyZFwtZXhwbGljaXRcLWNvbmdlc3Rpb25cLW5vdGlmaWNhdGlvbjsKK+e+juWci+W7o+aSreWFrOWPuCA+IGFiY1wtXChhbWVyaWNhblwtYnJvYWRjYXN0aW5nXC1jb3Jwb3JhdGlvblwpOwor5ZOI6KOh5qOu5Y+y5a+G54m5ID4gaGFycmlzb25cLXNjaG1pdHRcLVwoYXBvbGxvXC0xXC03XC1hc3Ryb25hdXRcKTsKK+eVouWFtuWKn+S6juS4gOW9uSA+IGFjY29tcGxpc2hcLXRoZVwtd2hvbGVcLXRhc2tcLWF0XC1vbmVcLXN0cm9rZTsKK+aTuuS6i+Wvpuism+mBk+eQhiA+IHByZXNlbnRcLXRoZVwtZmFjdHNcLWFuZFwtcmVhc29uXC10aGluZ3NcLW91dDsKK+Wci+mam+mbu+S/oeiBr+ebnyA+IGludGVybmF0aW9uYWxcLXRlbGVjb21tdW5pY2F0aW9uc1wtdW5pb247CivkuI3lj6/lkIzml6XogIzoqp4gPiBjYW5ub3RcLWJlXC1tZW50aW9uZWRcLWluXC10aGVcLXNhbWVcLWJyZWF0aDsKK+acieW/l+iAheS6i+ern+aIkCA+IHdoZXJlXC10aGVyZVwtaXNcLWFcLXdpbGxcLFwtdGhlcmVcLWlzXC1hXC13YXk7CivlnIvpmpvmqJnmupbntYTnuZQgPiBpbnRlcm5hdGlvbmFsXC1zdGFuZGFyZHNcLW9yZ2FuaXphdGlvbjsKK+ebruWJjemChOS4jea4healmiA+IGF0XC1wcmVzZW50XC1pdFwtaXNcLXN0aWxsXC11bmNsZWFyXC1cLlwuXC5cLjsKK+eWvueXhemgkOmYsuS4reW/gyA+IFwodVwuc1wuXClcLWNlbnRlclwtZm9yXC1kaXNlYXNlXC1jb250cm9sOwor5oeJ55So56iL5byP5LuL6Z2iID4gYXBwbGljYXRpb25cLXByb2dyYW1taW5nXC1pbnRlcmZhY2U7Civnn67lrZDoo6Hmi5TlsIfou40gPiBjaG9vc2VcLXRoZVwtYmVzdFwtcGVyc29uXC1hdmFpbGFibGU7Civlj5blvpflpKflrbjlrbjkvY0gPiB0b1wtb2J0YWluXC1hXC11bml2ZXJzaXR5XC1lZHVjYXRpb247Civlr6bmmYLmk43kvZznkrDlooMgPiByZWFsXC10aW1lXC1vcGVyYXRpbmdcLWVudmlyb25tZW50Owor5ZyL6Zqb5ZWG5qWt5qmf5ZmoID4gaW50ZXJuYXRpb25hbFwtYnVzaW5lc3NcLW1hY2hpbmVzOwor56ym5ZCI576O5ZyL5Yip55uKID4gaW5cLWxpbmVcLXdpdGhcLWFtZXJpY2FuXC1pbnRlcmVzdHM7Civou5/pq5Tlh7rniYjljZTmnIMgPiBzb2Z0d2FyZVwtcHVibGlzaGVyc1wtYXNzb2NpYXRpb247Civmnb7kuIvpm7vmsKPlt6Xmpa0gPiBtYXRzdXNoaXRhXC1lbGVjdHJvbmljc1wtaW5kdXN0cnk7CivmnI3li5nlu6PlkYrljZTorbAgPiBzZXJ2aWNlXC1hZHZlcnRpc2VtZW50XC1wcm90b2NvbDsKK+iqnumfs+mAmuioiumAmumBkyA+IHZvaWNlXC1cKGNvbW11bmljYXRpb25zXClcLWNoYW5uZWw7CivkuJbnlYzosr/mmJPntYTnuZQgPiB3dG9cLVwod29ybGRcLXRyYWRlXC1vcmdhbml6YXRpb25cKTsKK+W4uOimj+mKhembu+ipsee3miA+IG9yZGluYXJ5XC1jb3BwZXJcLXRlbGVwaG9uZVwtbGluZTsKK+WQjOatpeaVuOS9jemajuWxpCA+IHN5bmNocm9ub3VzXC1kaWdpdGFsXC1oaWVyYXJjaHk7CivkuIrmtbfmiLLlioflrbjpmaIgPiBzaGFuZ2hhaVwtdGhlYXRyaWNhbFwtaW5zdGl0dXRlOwor5YKz6Ly45o6n5Yi25Y2U5a6aID4gdHJhbnNtaXNzaW9uXC1jb250cm9sXC1wcm90b2NvbDsKK+WCs+e1seS4reWci+mGq+iXpSA+IGNoaW5lc2VcLXRyYWRpdGlvbmFsXC1tZWRpY2luZTsKK+WbuuWumuiZm+aTrOmAo+aOpSA+IHBlcm1hbmVudFwtdmlydHVhbFwtY29ubmVjdGlvbjsKK+mWi+aUvuezu+e1seS6kumAoyA+IG9wZW5cLXN5c3RlbXNcLWludGVyY29ubmVjdGlvbjsKK+WMl+S6rOiXneihk+WtuOmZoiA+IGJlaWppbmdcLWFjYWRlbXlcLW9mXC1maW5lXC1hcnRzOwor5LiN55m75aSn6ZuF5LmL5aCCID4gbm90XC1hcHBlYWxcLXRvXC1yZWZpbmVkXC10YXN0ZTsKK+WMl+S6rOiqnuiogOWtuOmZoiA+IGJlaWppbmdcLWxhbmd1YWdlc1wtaW5zdGl0dXRlOwor5Zyw5Z2A6Kej5p6Q5Y2U6K2wID4gYWRkcmVzc1wtcmVzb2x1dGlvblwtcHJvdG9jb2w7CivmnKzlnLDnrqHnkIbnlYzpnaIgPiBsb2NhbFwtbWFuYWdlbWVudFwtaW50ZXJmYWNlOwor55Ww5q2l5YKz6Ly45qih5byPID4gYXN5bmNocm9ub3VzXC10cmFuc2ZlclwtbW9kZTsKK+mbu+iFpui8lOWKqeaVmeadkCA+IGNvbXB1dGVyXC1haWRlZFwtaW5zdHJ1Y3Rpb247Civpm7vohabovJTliqnlt6XnqIsgPiBjb21wdXRlclwtYWlkZWRcLWVuZ2luZWVyaW5nOwor6Jmb5pOs6YCa6YGT6YCj5o6lID4gdmlydHVhbFwtY2hhbm5lbFwtY29ubmVjdGlvbjsKK+e2sue1oeeuoeeQhuezu+e1sSA+IG5ldHdvcmtcLW1hbmFnZW1lbnRcLXN5c3RlbTsKK+S4lueVjOihm+eUn+e1hOe5lCA+IHdvcmxkXC1oZWFsdGhcLW9yZ2FuaXphdGlvbjsKK+WAvOW+l+azqOaEj+eahOaYryA+IGl0JydzXC13b3J0aFwtbm90aW5nXC10aGF0XC5cLlwuOwor55Kw55CD5a6a5L2N57O757WxID4gZ2xvYmFsXC1wb3NpdGlvbmluZ1wtc3lzdGVtOwor5Zug54m557ay5o+Q5L6b5ZWGID4gaW50ZXJuZXRcLXNldmljZVwtcHJvdmlkZXI7CivntrLntaHmk43kvZzns7vntbEgPiBuZXR3b3JrXC1vcGVyYXRpbmdcLXN5c3RlbTsKK+WcluWDj+eUqOaItuS7i+mdoiA+IGdyYXBoaWNhbFwtdXNlclwtaW50ZXJmYWNlOwor6Z2i5Zqu5bCN6LGh6Kqe6KiAID4gb2JqZWN0XC1vcmllbnRlZFwtbGFuZ3VhZ2U7CivlhbHlkIzplpjpgZPku4vpnaIgPiBjb21tb25cLWdhdGV3YXlcLWludGVyZmFjZTsKK+e2sui3r+S9nOalreezu+e1sSA+IG5ldHdvcmtcLW9wZXJhdGluZ1wtc3lzdGVtOwor5YWs55y+6Zu75L+h57ay6LevID4gcHVibGljXC10ZWxlcGhvbmVcLW5ldHdvcms7CivpnZ7nm4jliKnnmoTntYTnuZQgPiBub25cLXByb2ZpdFwtb3JnYW5pemF0aW9uOwor6KiK5oGv6JmV55CG57O757WxID4gbWVzc2FnZVwtaGFuZGxpbmdcLXN5c3RlbTsKK+aVuOWtl+ioguizvOe3mui3ryA+IGRpZ2l0YWxcLXN1YnNjcmliZXJcLWxpbmU7Civovq/oqLzllK/niankuLvnvqkgPiBkaWFsZWN0aWNhbFwtbWF0ZXJpYWxpc207CivntrLot6/nr4Dpu57ku4vpnaIgPiBuZXR3b3JrXC1ub2RlXC1pbnRlcmZhY2U7CivmraPlnKjkuK3lnIvoqKrllY8gPiBkdXJpbmdcLWFcLXRyaXBcLXRvXC1jaGluYTsKK+WFq+Wwj+aZguW3peS9nOWItiA+IGVpZ2h0XC1ob3VyXC13b3JraW5nXC1kYXk7Civmtojmga/pnYjpgJrkurrlo6sgPiBhXC13ZWxsXC1pbmZvcm1lZFwtc291cmNlOwor5pel5pys57aT5r+f5paw6IGeID4gamFwYW5lc2VcLWVjb25vbWljXC1uZXdzOwor6KiK5oGv5YKz6YGe5Lit5LuLID4gbWVzc2FnZVwtdHJhbnNmZXJcLWFnZW50Owor6Zu76IWm6LyU5Yqp6Kit6KiIID4gY29tcHV0ZXJcLWFpZGVkXC1kZXNpZ247CivmjIHkuI3lkIzmlL/opovogIUgPiBcKHBvbGl0aWNhbFwpXC1kaXNzaWRlbnQ7Civos4fmlpnlgrPpgIHmnI3li5kgPiBkYXRhXC1kZWxpdmVyeVwtc2VydmljZTsKK+S7i+izquioquWVj+aOp+WItiA+IG1lZGl1bVwtYWNjZXNzXC1jb250cm9sOwor5Y2w5bqm5bC86KW/5Lqe6KqeID4gaW5kb25lc2lhblwtXChsYW5ndWFnZVwpOwor5aSa56iu6Kqe6KiA5pSv5oyBID4gbXVsdGlsaW5ndWFsXC1zdXBwb3J0Owor5o6l5pS25Zmo6Z2I5pWP5bqmID4gcmVjZWl2ZXJcLXNlbnNpdGl2aXR5Owor5rCR5peP5Li7576p5oOF57eSID4gbmF0aW9uYWxpc3RcLWZlZWxpbmdzOwor5aqS6auU6Kiq5ZWP5o6n5Yi2ID4gbWVkaWFcLWFjY2Vzc1wtY29udHJvbDsKK+Wbm+W5tOWItueahOWkp+WtuCA+IGZvdXJcLXllYXJcLXVuaXZlcnNpdHk7Civpgo/ovK/pj4jot6/mjqfliLYgPiBsb2dpY2FsXC1saW5rXC1jb250cm9sOwor6JCs57at5aSp576F5Zyw57ayID4gd29ybGRcLXdpZGVcLXdlYlwtXCh3d3dcKTsKK+W3oei/tOWIhuaekOerr+WPoyA+IHJvdmluZ1wtYW5hbHlzaXNcLXBvcnQ7Civlj6rkuI3pgY7lub7lubTliY0gPiBvbmx5XC1hXC1mZXdcLXllYXJzXC1hZ287CivkuIDnmb7kupTljYHlpJrlubQgPiBtb3JlXC10aGFuXC0xNTBcLXllYXJzOwor5ZOl5YCr5q+U5Lqe5aSn5a24ID4gY29sdW1iaWFcLXVuaXZlcnNpdHk7Civosr/mmJPkv53orbfkuLvnvqkgPiB0cmFkZVwtcHJvdGVjdGlvbmlzbTsKK+WcqOafkOeorueoi+W6puS4iiA+IHRvXC1hXC1jZXJ0YWluXC1leHRlbnQ7Civmm7zlvrnmlq/nibnnt6jnorwgPiBtYW5jaGVzdGVyXC1lbmNvZGluZzsKK+ioiuahhuWCs+mAgeacjeWLmSA+IGZyYW1lXC1yZWxheVwtc2VydmljZTsKK+ioiuahhuWCs+mAgee2sui3ryA+IGZyYW1lXC1yZWxheVwtbmV0d29yazsKK+mYv+avlOilv+WwvOS6nuS6uiA+IGFieXNzaW5pYW5cLVwocGVyc29uXCk7Civkup7lpKrntpPlkIjntYTnuZQgPiBhcGVjXC1cKG9yZ2FuaXphdGlvblwpOwor6Luf5Lu26ZaL55m85Lq65ZOhID4gc29mdHdhcmVcLWRldmVsb3BlcjsKK+WcqOWCs+i8uOmBjueoi+S4rSA+IHdoaWxlXC10cmFuc21pdHRpbmc7Civlv4XkuI3lj6/lsJHntYTmiJAgPiBhYnNvbHV0ZVwtbmVjZXNzaXR5Owor576O5ZyL6Iiq56m65YWs5Y+4ID4gYW1lcmljYW5cLWFpcmxpbmVzOwor5Lqk5o+b5Lul5aSq57ay57WhID4gc3dpdGNoZWRcLWV0aGVybmV0Owor6Ku+6LKd54i+5ZKM5bmz542OID4gbm9iZWxcLXBlYWNlXC1wcml6ZTsKK+S6lOinkuWkp+aok+WumOWToSA+IHBlbnRhZ29uXC1vZmZpY2lhbDsKK+ioiuahhuWCs+mAgeirluWjhyA+IGZyYW1lXC1yZWxheVwtZm9ydW07CivpmL/niL7lt7TlsLzkup7kurogPiBhbGJhbmlhblwtXChwZXJzb25cKTsKK+S4jeWIhumdkue0heeagueZvSA+IGluZGlzY3JpbWluYXRlbHk7CivkuI3nrYnpgorkuInop5LlvaIgPiBzY2FsZW5lXC10cmlhbmdsZTsKK+e2sumam+e2sui3r+WNlOacgyA+IGludGVybmV0XC1zb2NpZXR5Owor5LiJ5Y2D5Yiw5LqU5Y2D6JCsID4gMzBcLXRvXC01MFwtbWlsbGlvbjsKK+S4gOWAi+S4reWci+aUv+etliA+IG9uZVwtY2hpbmFcLXBvbGljeTsKK+e2sue1oeimj+WKg+S6uuWToSA+IG5ldHdvcmtcLXBsYW5uZXI7CivlhbHkuqvku6XlpKrntrLntaEgPiBzaGFyZWRcLWV0aGVybmV0Owor5Y2h57SN57at5ouJ54i+6KeSID4gY2FwZVwtY2FuYXZlcmFsOwor5Y2A5Z+f57ay6Lev5oqA6KGTID4gbGFuXC10ZWNobm9sb2d5Owor6Jap6YGU5aeG5L6v6LO95ZugID4gc2FkZGFtXC1odXNzZWluOwor5pKe5pOK5byP5Y2w6KGo5qmfID4gaW1wYWN0XC1wcmludGVyOwor5pKe5pOK5byP5omT5Y2w5qmfID4gaW1wYWN0XC1wcmludGVyOwor5YWo55CD5rCj5YCZ5Y2H5rqrID4gZ2xvYmFsXC13YXJtaW5nOwor5qKF5aGe6L+q5pav5aWU6aazID4gbWVyY2VkZXNcLWJlbno7CivlpaflhYvmi4nojbfppqzluIIgPiBva2xhaG9tYVwtY2l0eTsKK+mrmOmAn+S5meWkque2sui3ryA+IGZhc3RcLWV0aGVybmV0Owor5b+r6YCf5Lul5aSq57ay57WhID4gZmFzdFwtZXRoZXJuZXQ7Civku6XlpKrntrLntaHnq6/lj6MgPiBldGhlcm5ldFwtcG9ydDsKK+S6nua0suiIh+WkquW5s+a0iyA+IGFzaWFcLXBhY2lmaWM7CivkuIDljYPpm7bkupTljYHlhIQgPiAxMDVcLWJpbGxpb247CivlkInniL7lkInmlq/mlq/lnaYgPiBraXJnaGl6c3RhbjsKK+amrueNsuirvuiyneeIvueNjiA+IG5vYmVsXC1wcml6ZTsKK+S4ieaciOS6jOWNgeS4ieiZnyA+IG1hcmNoXC0yM3JkOwor5rKS5pyJ55Sf6IKy6IO95YqbID4gaW5mZXJ0aWxlOwor5ZyL6Zqb5LqS6IGv57ay57WhID4gaW50ZXJuZXQ7CivkuInmnIjkuozljYHkuIDomZ8gPiBtYXJjaFwtMjE7CivlsIjnlKjpm4bmiJDpm7vot68gPiBhc2ljOwor5ZyW5YOP5LqS5o+b5qC85byPID4gZ2lmOwor6ISr5rCn5qC457OW5qC46YW4ID4gZG5hOwor5q666Zue57Wm54y055yLID4gXCJraWxsXC1hXC1jaGlja2VuXC1pblwtZnJvbnRcLW9mXC1hXC1tb25rZXlcIlwtXC1cLVwtbWFrZVwtYW5cLWV4YW1wbGVcLW91dFwtb2ZcLXNvbWVvbmVcLVwoYnlcLXB1bmlzaGluZ1wtdGhlbVwpXC10b1wtZnJpZ2h0ZW5cLW90aGVyczsKK+eXheaApeS6guaKlemGqyA+IHR1cm5cLXRvXC1hbnlcLWRvY3Rvclwtb25lXC1jYW5cLWZpbmRcLXdoZW5cLWNyaXRpY2FsbHlcLWlsbFwtXC1cLXRyeVwtYW55dGhpbmdcLXdoZW5cLWluXC1hXC1kZXNwZXJhdGVcLXNpdHVhdGlvbjsKK+aWr+WNoeS8r+WLkuekgSA+IHNjYXJib3JvdWdoXC1zaG9hbFwtXChwaGlsaXBwaW5lcycnXC1uYW1lXC1mb3JcLWh1YW5neWFuXC1pc2xhbmRcKTsKK+WGsOeCreS4jeebuOWuuSA+IGFzXC1pbmNvbXBhdGlibGVcLW9yXC1pcnJlY29uY2lsYWJsZVwtYXNcLWljZVwtYW5kXC1ob3RcLWNvYWxzOwor6Z+L54i+5byX6Zu36IyyID4gXChnZW9yZ2VcKVwtd2VocmZyaXR6XC1cKGJlaWppbmdcLWJ1cmVhdVwtY2hpZWZcLW9mXC1uZXdzd2Vla1wpOwor55CzXC7miLTntq3mlq8gPiBseW5uXC1kYXZpc1wtXCh1c1wtc3RhdGVcLWRlcGFydG1lbnRcLWFybXNcLWNvbnRyb2xcLWV4cGVydFwpOwor5Lq65rCR6KGM5YuV6buoID4gcGVvcGxlJydzXC1hY3Rpb25cLXBhcnR5XC1cKHJ1bGluZ1wtcGFydHlcLWluXC1zaW5nYXBvcmVcKTsKK+W4uOS7u+eQhuS6i+WciyA+IHBlcm1hbmVudFwtbWVtYmVyXC1zdGF0ZVwtXChvZlwtdW5cLXNlY3VyaXR5XC1jb3VuY2lsXCk7CivkurrmsJHlpKfmnIPloIIgPiBncmVhdFwtaGFsbFwtb2ZcLXRoZVwtcGVvcGxlXCxcLWF0XC10aWFuYW5tZW5cLXNxdWFyZTsKK+api+acrOm+jeWkqumDjiA+IGhhc2hpbW90b1wsXC1yeXV0YXJvXC1cKHByaW1lXC1taW5pc3Rlclwtb2ZcLWphcGFuXCk7CivlpafniL7luIPos7TnibkgPiBcKG1hZGVsZWluZVwpXC1hbGJyaWdodFwtXCh1c1wtc2VjcmV0YXJ5XC1vZlwtc3RhdGVcKTsKK+S4jeeVtuS4gOWbnuS6iyA+IG5vdFwtcmVnYXJkXC1hc1wtYVwtbWF0dGVyXC1cKG9mXC1hbnlcLWltcG9ydGFuY2VcKTsKK+S4jeaJk+S4jeebuOitmCA+IGZyb21cLWFuXC1leGNoYW5nZVwtb2ZcLWJsb3dzXC1mcmllbmRzaGlwXC1ncm93czsKK+iBr+mCpuiqv+afpeWxgCA+IGZiaVwtXChmZWRlcmFsXC1idXJlYXVcLW9mXC1pbnZlc3RpZ2F0aW9uXCk7CivkuIDkuZ3lm5vkuZ3lubQgPiB0aGVcLXllYXJcLTE5NDlcLVwoY29tbXVuaXN0XC1yZXZvbHV0aW9uXCk7CivntITnv7Dlhafmlq/loKEgPiBqb2hhbm5lc2J1cmdcLVwoY2l0eVwtaW5cLXNvdXRoXC1hZnJpY2FcKTsKK+WIhuS9iOW8j+eSsOWigyA+IGRpc3RyaWJ1dGVkXC1cKGNvbXB1dGluZ1wpXC1lbnZpcm9ubWVudDsKK+mdnuaUv+W6nOe1hOe5lCA+IG5vblwtZ292ZXJubWVudGFsXC1vcmdhbml6YXRpb25cLVwobmdvXCk7CivlsKTph5HloZ7niL7ljZcgPiBldWdlbmVcLWNlcm5hblwtXChhcG9sbG9cLTE3XC1hc3Ryb25hdXRcKTsKK+avlOWLkumZgOWIqeS6niA+IHByZXRvcmlhXC1cKGNhcGl0YWxcLW9mXC1zb3V0aFwtYWZyaWNhXCk7CivljYrml6XliLblrbjmoKEgPiBoYWxmXC1kYXlcLVwob3JcLWRvdWJsZVwtc2hpZnRcLXNjaG9vbFwpOwor6LaK5L6G6LaK5Zq06YeNID4gdG9cLWJlY29tZVwtbW9yZVwtc2VyaW91c1wtZXZlcnlcLWRheTsKK+aIiOeIvuW3tOWWrOWkqyA+IFwoZm9ybWVyXC1zb3ZpZXRcLWxlYWRlclwpXC1nb3JiYWNoZXY7CivlhavntJrlt6Xos4fliLYgPiBlaWdodFwtZ3JhZGVcLXdhZ2VcLXNjYWxlXC1cKHN5c3RlbVwpOwor5Zyo5a+G5YiH5rOo5oSPID4gdG9cLXBheVwtY2xvc2VcLWF0dGVudGlvblwtXCh0b1wtc3RoXCk7CivmoLjlqIHmh77mlL/nrZYgPiBwb2xpY3lcLW9mXC1udWNsZWFyXC1pbnRpbWlkYXRpb247Civlj6/pgbjmk4fkuJ/mo4QgPiBkaXNjYXJkXC1lbGlnaWJsZVwtXChmcmFtZVwtcmVsYXlcKTsKK+eJueWIpeihjOaUv+WNgCA+IHNwZWNpYWxcLWFkbWluaXN0cmF0aXZlXC1yZWdpb247Civoj6/nm5vpoJPmmYLloLEgPiB3YXNoaW5ndG9uXC10aW1lc1wtXChuZXdzcGFwZXJcKTsKK+S8vOS5juW+iOWuieWFqCA+IHRvXC1hcHBlYXJcLVwodG9cLWJlXClcLXZlcnlcLXNhZmU7CivkuK3lpK7mg4XloLHlsYAgPiBjZW50cmFsXC1pbnRlbGxpZ2VuY2VcLWFnZW5jeTsKK+acjeWLmeaPkOS+m+WVhiA+IFwoaW50ZXJuZXRcKVwtc2VydmljZVwtcHJvdmlkZXI7CivnrqHnkIbkv6Hmga/luqsgPiBtYW5hZ2VtZW50XC1pbmZvcm1hdGlvblwtYmFzZTsKK+iPr+ebm+mgk+mDteWgsSA+IHdhc2hpbmd0b25cLXBvc3RcLVwobmV3c3BhcGVyXCk7CivpoZjmhI/kuI3poZjmhI8gPiB3aGV0aGVyXC1vbmVcLXdhbnRzXC10b1wtb3JcLW5vdDsKK+eZvOWxleaguOatpuWZqCA+IHRvXC1kZXZlbG9wXC1udWNsZWFyXC13ZWFwb25zOwor5Y+b6K6K55qE55yB5Lu9ID4gcmVuZWdhZGVcLXByb3ZpbmNlXC1cKHRhaXdhblwpOwor5Lit5ZyL56eR5a246ZmiID4gY2hpbmVzZVwtYWNhZGFteVwtb2ZcLXNjaWVuY2U7CivnlKjmiLbnq6/oqK3lgpkgPiBjdXN0b21lclwtcHJlbWlzZVwtZXF1aXBtZW50Owor5LiN562J5YO55Lqk5o+bID4gZXhjaGFuZ2VcLW9mXC11bmVxdWFsXC12YWx1ZXM7CivmsLjkuYXomZvpm7vot68gPiBwZXJtYW5lbnRcLXZpcnR1YWxcLWNpcmN1aXQ7Civljp/lm6DlvojnsKHllq4gPiB0aGVcLXJlYXNvblwtaXNcLXZlcnlcLXNpbXBsZTsKK+mAmuioiuiHquWLleWMliA+IGNvbW11bmljYXRpb25zXC1hdXRvbWF0aW9uOwor5bmA6aaW5a6a55WM56ymID4gc3RhcnRcLW9mXC1mcmFtZVwtZGVsaW1pdGVyOwor5LiN5om/6KqN5Li7576pID4gcG9saWN5XC1vZlwtbm9ucmVjb2duaXRpb247CivmpYrnmb7nv7DlpKflrbggPiBicmlnaGFtXC15b3VuZ1wtdW5pdmVyc2l0eTsKK+WIhuS9iOW8j+e1kOaniyA+IGRpc3RyaWJ1dGVkXC1hcmNoaXRlY3R1cmU7CivmjIHkuI3lkIzmlL/oposgPiBcKHBvbGl0aWNhbGx5XClcLWRpc3NlbnRpbmc7CivkurrmsJHop6PmlL7ou40gPiBwZW9wbGUnJ3NcLWxpYmVyYXRpb25cLWFybXk7Civlvp7lpJbooajkvobnnIsgPiBsb29raW5nXC1mcm9tXC10aGVcLW91dHNpZGU7CivkuqTmj5vomZvpm7vot68gPiBzd2l0Y2hlZFwtdmlydHVhbFwtY2lyY3VpdDsKK+aguOatpuWZqOadkOaWmSA+IG51Y2xlYXJcLXdlYXBvblwtbWF0ZXJpYWw7CivnmbzkvYjmlrDou5/ku7YgPiB0b1wtcmVsZWFzZVwtbmV3XC1zb2Z0d2FyZTsKK+WwiOWxrOe2k+a/n+WNgCA+IGV4Y2x1c2l2ZVwtZWNvbm9taWNcLXpvbmU7CivmtYHkuqHlnKjmtbflpJYgPiB0b1wtYmVcLWluXC1leGlsZVwtb3ZlcnNlYXM7CivkuI3mirXmipfkuLvnvqkgPiBwb2xpY3lcLW9mXC1ub25yZXNpc3RhbmNlOwor5Zyo5LuK5bm05bm05bqVID4gYXRcLXRoZVwtZW5kXC1vZlwtdGhpc1wteWVhcjsKK+S+huWbnuS+huWOu+WcsCA+IGJhY2t3YXJkc1wtYW5kXC1mb3J3YXJkczsKK+e2sue1oeWxpOWNlOitsCA+IG5ldHdvcmtcLWxheWVyXC1wcm90b2NvbDsKK+W3pealreWMluWci+WutiA+IGluZHVzdHJpYWxpemVkXC1jb3VudHJ5Owor5pWZ576p5ZKM6IGW57SEID4gZG9jdHJpbmVcLWFuZFwtY292ZW5hbnRzOwor57ay57Wh566h55CG5ZOhID4gbmV0d29ya1wtYWRtaW5pc3RyYXRvcjsKK+iKneWKoOWTpeWkp+WtuCA+IHVuaXZlcnNpdHlcLW9mXC1jaGljYWdvOwor6Zm45rW356m65LiJ6LuNID4gYXJteVwsXC1uYXZ5XCxcLWFpclwtZm9yY2U7CivmnKzlnJ/ljJbou5/ku7YgPiBzb2Z0d2FyZVwtbG9jYWxpemF0aW9uOwor5qqU5qGI5YiG6YWN5Y2AID4gZmlsZVwtYWxsb2NhdGlvblwtdGFibGU7CivlnLDlsI3nqbrlsI7lvYggPiBncm91bmRcLXRvXC1haXJcLW1pc3NpbGU7CivkuI3kv6Hku7vmipXnpaggPiB2b3RlXC1vZlwtbm9cLWNvbmZpZGVuY2U7CivmnKzkurrnmoTop4Dpu54gPiBcKG9uZScnc1wpXC1wZXJzb25hbFwtdmlldzsKK+i7n+mrlOmFjemAgeiAhSA+IHNvZnR3YXJlXC1kaXN0cmlidXRvcjsKK+att+S+huacgOS9jum7niA+IGFsbFwtdGltZVwtbG93XC1cKHBvaW50XCk7CivnsbPlvrfniL7kvK/oo6EgPiBtaWRkbGVidXJ5XC1cKGNvbGxlZ2VcKTsKK+WFqem7nuWNgeS5neWIhiA+IDJcLVw6MVwtOVwtXCh0aW1lXC1vZlwtZGF5XCk7CivluYDmqqLpqZfluo/liJcgPiBmcmFtZVwtY2hlY2tcLXNlcXVlbmNlOwor5LiN5a6M5YWo5Lit56uLID4gaW1wZXJmZWN0XC1uZXV0cmFsaXR5Owor5YWL6YeM5pav5omY5byXID4gXCh3YXJyZW5cKVwtY2hyaXN0b3BoZXI7CivpkZLlrprlp5Tlk6HmnIMgPiBldmFsdWF0aW9uXC1jb21taXR0ZWU7Civppqzkvobopb/kup7oqp4gPiBtYWxhc2lhblwtXChsYW5ndWFnZVwpOwor6YGO5LqG5LqU5YiG6ZCYID4gZml2ZVwtbWludXRlc1wtcGFzc2VkOwor5YWL576F5Zyw5Lqe6KqeID4gY3JvYXRpYW5cLVwobGFuZ3VhZ2VcKTsKK+iojuirlueahOitsOmhjCA+IHRvcGljXC1vZlwtZGlzY3Vzc2lvbjsKK+WcsOWdgOeahOi9ieaPmyA+IGFkZHJlc3NcLXRyYW5zbGF0aW9uOwor6Ieq5YuV5Zyw5bel5L2cID4gYXV0b21hdGljXC1vcGVyYXRpb247Civkv53lronoh6rli5XljJYgPiBzZWN1cml0eVwtYXV0b21hdGlvbjsKK+WIhuS9iOW8j+e2sue1oSA+IGRpc3RyaWJ1dGVkXC1uZXR3b3JrOwor5LiN5pyf54S26ICM54S2ID4gaGFwcGVuXC11bmV4cGVjdGVkbHk7CivliqDlgLzlnovntrLot68gPiB2YWx1ZVwtYWRkZWRcLW5ldHdvcms7Civlm6DnibnntrLoga/pgJogPiBpbnRlcm5ldFwtY29ubmVjdGlvbjsKK+enkeWtuOeahOS6pOa1gSA+IHNjaWVudGlmaWNcLWV4Y2hhbmdlOwor6Yuw6Zui5a2Q6Zu75rGgID4gbGl0aGl1bVwtaW9uXC1iYXR0ZXJ5Owor6ZW35pyf56mp5a6a5oCnID4gbG9uZ1wtdGVybVwtc3RhYmlsaXR5Owor5qiT5a6H6Ieq5YuV5YyWID4gYnVpbGRpbmdcLWF1dG9tYXRpb247CivoppbnqpfliqDpgJ/lmaggPiB3aW5kb3dzXC1hY2NlbGFyYXRvcjsKK+iPr+eIvuihl+aXpeWgsSA+IHdhbGxcLXN0cmVldFwtam91cm5hbDsKK+Wci+awkem7qOi7jemaiiA+IG5hdGlvbmFsaXN0XC1mb3JjZXM7CivkuIDlsI/mmYLku6XlvowgPiBhXC1zaG9ydFwtdGltZVwtbGF0ZXI7CivntrLot6/pgKPmjqXlsaQgPiBuZXR3b3JrXC1saW5rXC1sYXllcjsKK+W6t+WliOeIvuWkp+WtuCA+IGNvcm5lbGxcLXVuaXZlcnNpdHk7CivloZ7niL7ntq3kup7oqp4gPiBzZXJiaWFuXC1cKGxhbmd1YWdlXCk7Civmlq/nk6bluIzoo6Hoqp4gPiBzd2FoaWxpXC1cKGxhbmd1YWdlXCk7CivlnIvlrrbmqJnmupbnorwgPiBnYlwtXChndW9cLWJpYW9cKVwtY29kZTsKK+acrOWIneWtkOWNiOe3miA+IHRoZVwtZmlyc3RcLW1lcmlkaWFuOwor5a625bqt5raI6LK76ICFID4gaG91c2Vob2xkXC1jb25zdW1lcjsKK+Wfn+WQjeacjeWLmeWZqCA+IGRvbWFpblwtbmFtZVwtc2VydmVyOwor55m85bGV5Lit5ZyL5a62ID4gZGV2ZWxvcGluZ1wtY291bnRyeTsKK+Wkmuerr+S4ree5vOWZqCA+IG11bHRpcG9ydFwtcmVwZWF0ZXI7CivnmbzlsZXnmoTlnIvlrrYgPiBkZXZlbG9waW5nXC1jb3VudHJ5Owor55Sf5rS75b+F6ZyA5ZOBID4gbGlmZScnc1wtbmVjZXNzaXRpZXM7Civlj6/ooYzmgKfnoJTnqbYgPiBmZWFzaWJpbGl0eVwtc3R1ZHk7Civmlbjmk5rluqvou5/ku7YgPiBkYXRhYmFzZVwtc29mdHdhcmU7Civopb/oo6HniL7lrZfmr40gPiBjeXJpbGxpY1wtYWxwaGFiZXQ7CivmkpLov6bliKnkup7mm7ggPiBib29rXC1vZlwtemVjaGFyaWFoOwor5rOi5aOr6aCT5aSn5a24ID4gYm9zdG9uXC11bml2ZXJzaXR5Owor6L6m5YWs6Ieq5YuV5YyWID4gb2ZmaWNlXC1hdXRvbWF0aW9uOwor5LiN5Y+K54mp5YuV6KmeID4gaW50cmFuc2l0aXZlXC12ZXJiOwor6Iad5LiK5Z6L6Zu76IWmID4gbGFwdG9wXC1cKGNvbXB1dGVyXCk7CivkuK3lpK7lp5Tlk6HmnIMgPiBjZW50cmFsXC1jb21taXR0ZWU7CivliLDpgqPlgIvmmYLlgJkgPiB1bnRpbFwtdGhpc1wtbW9tZW50Owor5rSb5p2J56Ov5pmC5aCxID4gbG9zXC1hbmdlbGVzXC10aW1lczsKK+aWh+WMlueahOS6pOa1gSA+IGN1bHR1cmFsXC1leGNoYW5nZTsKK+aWr+a0m+S8kOWFi+iqniA+IHNsb3Zha1wtXChsYW5ndWFnZVwpOwor5aSW5ZyL5peF6YGK6ICFID4gZm9yZWlnblwtdHJhdmVsbGVyOwor5LiA5Y2D5LiD55m+6JCsID4gc2V2ZW50ZWVuXC1taWxsaW9uOwor5aeU5ZOh5pyD5pyD6K2wID4gY29tbWl0dGVlXC1tZWV0aW5nOwor6KiI566X5qmf5bel5qWtID4gY29tcHV0ZXJcLWluZHVzdHJ5Owor5YWx55Si6buo6YOo6ZqKID4gY29tbXVuaXN0XC1mb3JjZXM7CivmnI3li5nmj5DkvpvogIUgPiBzZXJ2aWNlXC1wcm92aWRlcjsKK+enu+WLleW8j+mbu+ipsSA+IG1vYmlsZVwtdGVsZXBob25lOwor5ama5aSW5oCn5o6l6Ke4ID4gZXh0cmFtYXJpdGFsXC1zZXg7Civms6Lnvo7mr5Tph43oqIggPiBiYXVtZVwtaHlkcm9tZXRlcjsKK+WkluWci+aKleizh+iAhSA+IGZvcmVpZ25cLWludmVzdG9yOwor55Ww5oCn5oCn5o6l6Ke4ID4gaGV0ZXJvc2V4dWFsXC1zZXg7CivmoYzkuIrlnovpm7vohaYgPiBkZXNrdG9wXC1jb21wdXRlcjsKK+iomOiAheaLm+W+heacgyA+IHByZXNzXC1jb25mZXJlbmNlOwor5Y6f5a2Q56eR5a245a62ID4gYXRvbWljXC1zY2llbnRpc3Q7CivplbfluqbmjIfnpLrnrKYgPiBsZW5ndGhcLWluZGljYXRvcjsKK+S7v+ecn+acjeWLmeWZqCA+IGVtdWxhdGlvblwtc2VydmVyOwor6KiI566X5qmf57ay57WhID4gY29tcHV0ZXJcLW5ldHdvcms7CivpgY7ku73nsKHllq7ljJYgPiBvdmVyc2ltcGxpY2F0aW9uOwor55+l6K2Y5bel56iL5birID4ga25vd2xlZGdlXC13b3JrZXI7Civos4fmlpnpj4jntZDlsaQgPiBkYXRhXC1saW5rXC1sYXllcjsKK+mbtuetieW+heeLgOaFiyA+IHplcm9cLXdhaXRcLXN0YXRlOwor5Zyo5b6I5aSa5pa56Z2iID4gaW5cLW1hbnlcLWFzcGVjdHM7Civkv4Tlt7TlupXkup7mm7ggPiBib29rXC1vZlwtb2JhZGlhaDsKK+aVuOaTmumPiOi3r+WxpCA+IGRhdGFcLWxpbmtcLWxheWVyOwor56iu5peP5Li7576p6ICFID4gcmFjaXN0XC1cKHBlcnNvblwpOwor57ay57Wh54CP6Ka95ZmoID4gbmV0d29ya1wtYnJvd3NlcjsKK+WuouaItuapn+i7n+S7tiA+IGNsaWVudFwtc29mdHdhcmU7Civoh6rli5XllK7osqjmqZ8gPiB2ZW5kaW5nXC1tYWNoaW5lOwor57ay57Wh5omT5Y2w5qmfID4gbmV0d29ya1wtcHJpbnRlcjsKK+adv+adv+WFreWNgeWbmyA+IHVuYWNjb21tb2RhdGluZzsKK+esrOS4gOWAi+WxpOasoSA+IHRoZVwtZmlyc3RcLXN0YWdlOwor5YWo55CD6LOH6KiK57ayID4gd29ybGRcLXdpZGVcLXdlYjsKK+S7peWkque2sue1oeW5gCA+IGV0aGVybmV0XC1mcmFtZTsKK+S4jeW5s+etieainee0hCA+IHVuZXF1YWxcLXRyZWF0eTsKK+WWmOS4jemBjuawo+S+hiA+IGNhbm5vdFwtYnJlYXRoZTsKK+aNt+WFi+WFseWSjOWciyA+IGN6ZWNoXC1yZXB1YmxpYzsKK+W3pealreeahOW3qOmgrSA+IGluZHVzdHJ5XC1tb2dvbDsKK+avj+err+WPo+WDueagvCA+IHByaWNlXC1wZXJcLXBvcnQ7CivkuI3mraPluLjni4Dms4EgPiBhYm5vcm1hbFwtc3RhdGU7CivplovmlL7lvI/ns7vntbEgPiBvcGVuXC1zeXN0ZW1cKHNcKTsKK+S4lueVjOeahOiqnuiogCA+IHdvcmxkXC1sYW5ndWFnZTsKK+a/gOWFieaJk+W8leapnyA+IGxhc2VyXC1wcmludGVyOwor5ZOl5p6X5aSa5b6M5pu4ID4gMlwtY29yaW50aGlhbnM7CivkuI3oqJjlkI3mipXnpaggPiBzZWNyZXRcLWJhbGxvdDsKK+S4jeWIl+mhm+iruOWztiA+IGJyaXRpc2hcLWlzbGVzOwor5ZOl5p6X5aSa5YmN5pu4ID4gMVwtY29yaW50aGlhbnM7CivkuI3lj6/og73nmoTkuosgPiBpbXBvc3NpYmlsaXR5Owor55m+5YiG5LmL5LqU5Y2BID4gZmlmdHlcLXBlcmNlbnQ7Civoib7mu4vnl4Xmipfpq5QgPiBhaWRzXC1hbnRpYm9keTsKK+S4jeWPr+S+teeKr+asiiA+IGludmlvbGFiaWxpdHk7CivpkLPlsITljbDooajmqZ8gPiBsYXNlclwtcHJpbnRlcjsKK+eUn+WRveeahOmBuui3oSA+IHRyYWNlXC1vZlwtbGlmZTsKK+S4gOS5neS5neS4g+W5tCA+IHRoZVwteWVhclwtMTk5NzsKK+WFqOS4lueVjOesrOS4gCA+IHdvcmxkJydzXC1maXJzdDsKK+aZrumAmuiAgeeZvuWnkyA+IGNvbW1vblwtcGVvcGxlOwor6Im+5ruL55eF5oKj6ICFID4gYWlkc1wtcGF0aWVudDsKK+ewv+iomOeuoeeQhuWToSA+IGNvbW1pc3NhcmlhbjsKK+aguOatpuWZqOippumplyA+IG51Y2xlYXJcLXRlc3Q7CivkuozljYHkuIDkuJbntIAgPiAyMXN0XC1jZW50dXJ5Owor5pyJ5qKd5pyJ55CG5ZywID4gbWV0aG9kaWNhbGx5Owor5LiN5piv546p5YWS55qEID4gaXQnJ3NcLW5vXC1qb2tlOwor57KX5L+X55qE6ZqO57SaID4gdnVsZ2FyXC1jbGFzczsKK+aJk+WNsOacjeWLmeWZqCA+IHByaW50XC1zZXJ2ZXI7Civos5Popb/ms5XlsLzkup4gPiBwZW5uc3lsdmFuaWE7CivogLbliKnnsbPlk4DmrYwgPiBsYW1lbnRhdGlvbnM7CivlhavkuZ3kuI3pm6LljYEgPiBwcmV0dHlcLWNsb3NlOwor6ZaL5pS+5byP57ay6LevID4gb3BlblwtbmV0d29yazsKK+WFi+ijoeWnhuael+WuriA+IHRoZVwta3JlbWxpbjsKK+WkquW5s+a0i+mAsemCiiA+IHBhY2lmaWNcLXJpbTsKK+a/gOWFieS6jOalteeuoSA+IGxhc2VyXC1kaW9kZTsKK+WZqOWumOaNkOeNu+iAhSA+IG9yZ2FuXC1kb25vcjsKK+aWh+S7tuacjeWLmeWZqCA+IGZpbGVcLXNlcnZlcjsKK+eOu+aEj+iAs+WumuW+iyA+IGJveWxlJydzXC1sYXc7CivkuIDljYPlm5vnmb7lhIQgPiAxNDBcLWJpbGxpb247Civoh6rnlLHpgbjmk4fmrIogPiBmcmVlXC1hZ2VuY3k7Civlt7Tmnq/lr6fkuLvnvqkgPiBiYWt1bmluaXNtOwor6Kqq5LiN5Ye66Kmx5L6GID4gc3BlZWNobGVzczsKK+WhlOWQieWFi+aWr+WdpiA+IHRhamlraXN0YW47CivliqDliKnnpo/lsLzkup4gPiBjYWxpZm9ybmlhOwor5L2/55So6ICF5Lit5LuLID4gdXNlclwtYWdlbnQ7Civlk4jolqnlhYvmlq/lnaYgPiBrYXpha2hzdGFuOwor55m+5YiG5LmL5Lmd5Y2BID4gOTBcLXBlcmNlbnQ7CivlhazplovoqI7oq5bmnIMgPiBvcGVuXC1mb3J1bTsKK+iJvua7i+eXheeXheavkiA+IGFpZHNcLXZpcnVzOwor5Zyw5pa55a6Y6IG35L2NID4gcHJlZmVjdHVyZTsKK+ejgeebpOmpheWLleWZqCA+IGRpc2xcLWRyaXZlOwor5aWz6KOd6KOB57ir5birID4gZHJlc3NtYWtlcjsKK+mVt+WtkOeahOWQjeS7vSA+IGJpcnRocmlnaHQ7CivkuIDnmb7kupTljYHlhIQgPiAxNVwtYmlsbGlvbjsKK+mYv+avlOilv+WwvOS6niA+IGFieXNzaW5pYTsKK+ekvuacg+S4u+e+qeiAhSA+IHNvY2lhbGlzdDsKK+aPkOaRqeWkquWQjuabuCA+IDJcLXRpbW90aHk7CivliLDnm67liY3ngrrmraIgPiB1bnRpbFwtbm93Owor5rWB6KGM5oCn5oSf5YaSID4gaW5mbHVlbnphOwor5LiN56mp5a6a5rCj5rWBID4gdHVyYnVsZW50Owor5o+Q5pGp5aSq5YmN5pu4ID4gMVwtdGltb3RoeTsKK+azouWIqeWwvOilv+S6niA+IHBvbHluZXNpYTsKK+WcluabuOeuoeeQhuWToSA+IGxpYnJhcmlhbjsKK+WNsOW6puWwvOilv+S6niA+IGluZG9uZXNpYTsKK+awkeS4u+S4u+e+qeiAhSA+IGRlbW9jcmF0czsKK+iuiueEpui3nemPoemgrSA+IHpvb21cLWxlbnM7CivkvIHmpa3plpPntrLot68gPiBleHRyYW5ldDsKK+W4uOWdkOaxvei7iuiAhSA+IG1vdG9yaXN0Owor5rG96LuK5bGV6Ka95pyDID4gY2FyXC1zaG93Owor5LyB5qWt5YWn57ay6LevID4gaW50cmFuZXQ7CivmkpLmr43ogLPoqJjkuIsgPiAyXC1zYW11ZWw7CivmkpLmr43ogLPoqJjkuIogPiAxXC1zYW11ZWw7Civlm5vmnIjljYHkuIPomZ8gPiBhcHJpbFwtMTc7CivnpZ7lrbjnoJTnqbbmiYAgPiBzZW1pbmFyeTsKK+Wfg+WhnuS/hOavlOS6niA+IGV0aGlvcGlhOwor5aWn5YWL5ouJ6I236aasID4gb2tsYWhvbWE7CivkuI3lkI3orb3kuovniakgPiBkaXNob25vcjsKK+a1t+i7jee4veWPuOS7pCA+IGFkbWlyYWw7CivkupTmnIjljYHkupTomZ8gPiBtYXlcLTFcLTU7CivpmL/niL7lj4rliKnkup4gPiBhbGdlcmlhOwor5LiD5pyI5LiJ5Y2B6JmfID4ganVseVwtMzA7CivppqzlhYvmgJ3kuLvnvqkgPiBtYXJ4aXNtOwor6Zi/54i+5be05bC85LqeID4gYWxiYW5pYTsKK+S4gOevgFwo6KmpXCkgPiBzdGFuemE7CivpgI/ljbDniYjljbDliLcgPiBvZmZzZXQ7Civmr5vnuZTpgYvli5XooasgPiBqZXJzZXk7CivnlLfkv67pgZPpmaLplbcgPiBhYmJvdDsKK+iqv+WItuino+iqv+WZqCA+IG1vZGVtOwor5LiJ6Imy57Sr576F6JitID4gcGFuc3k7CivlronlhajnkIbkuovmnIMgPiB0aGVcLXU7CivmirHolqrmlZHngasgPiBjYXJyeVwtZmFnZ290c1wtdG9cLXB1dFwtb3V0XC1hXC1maXJlXC1cLVwtYWRvcHRcLWFcLXdyb25nXC1tZXRob2RcLXRvXC1zYXZlXC1hXC1zaXR1YXRpb25cLWFuZFwtZW5kXC11cFwtYnlcLW1ha2luZ1wtaXRcLXdvcnNlOwor5p2v5rC06LuK6JaqID4gdHJ5aW5nXC10b1wtcHV0XC1vdXRcLWFcLWJ1cm5pbmdcLWNhcnRsb2FkXC1vZlwtZmFnZ290c1wtd2l0aFwtYVwtY3VwXC1vZlwtd2F0ZXJcLVwtXC1hblwtdXR0ZXJseVwtaW5hZGVxdWF0ZVwtbWVhc3VyZTsKK+i+r+iovOaWveayuyA+IGRpYWdub3Npc1wtYW5kXC10cmVhdG1lbnRcLWJhc2VkXC1vblwtYW5cLW92ZXJhbGxcLWFuYWx5c2lzXC1vZlwtdGhlXC1pbGxuZXNzXC1hbmRcLXRoZVwtcGF0aWVudCcnc1wtY29uZGl0aW9uOwor5pWd5bia6Ieq54+NID4gdmFsdWVcLW9uZScnc1wtb3duXC1vbGRcLWJyb29tXC1cLVwtY2hlcmlzaFwtc29tZXRoaW5nXC1vZlwtbGl0dGxlXC12YWx1ZVwtc2ltcGx5XC1iZWNhdXNlXC1pdFwtaXNcLW9uZScnc1wtb3duOwor5YW15LiN6KGA5YiDID4gdGhlXC1lZGdlc1wtb2ZcLXRoZVwtc3dvcmRzXC1ub3RcLWJlaW5nXC1zdGFpbmVkXC13aXRoXC1ibG9vZFwtXC1cLXdpblwtdmljdG9yeVwtd2l0aG91dFwtZmlyaW5nXC1hXC1zaG90Owor6aSK5YWS6Ziy6ICBID4gXChvZlwtcGFyZW50c1wpXC10b1wtYnJpbmdcLXVwXC1jaWhsZHJlblwtZm9yXC10aGVcLXB1cnBvc2VcLW9mXC1iZWluZ1wtbG9va2VkXC1hZnRlclwtaW5cLW9sZFwtYWdlOwor5LiN5YWx5oi05aSpID4gd2lsbFwtbm90XC1saXZlXC11bmRlclwtdGhlXC1zYW1lXC1za3lcLVwod2l0aFwtb25lJydzXC1lbmVteVwpXC1cLVwtYWJzb2x1dGVseVwtaXJyZWNvbmNpbGFibGU7Civmk4rlhbbmg7DmrbggPiBhdm9pZFwtdGhlXC1lbmVteVwtd2hlblwtaGVcLWlzXC1mcmVzaFwtYW5kXC1zdHJpa2VcLWhpbVwtd2hlblwtaGVcLWlzXC10aXJlZFwtYW5kXC13aXRoZHJhd3M7Civpgb/lhbbpirPmsKMgPiBhdm9pZFwtdGhlXC1lbmVteVwtd2hlblwtaGVcLWlzXC1mcmVzaFwtYW5kXC1zdHJpa2VcLWhpbVwtd2hlblwtaGVcLWlzXC10aXJlZFwtYW5kXC13aXRoZHJhd3M7Civkv53nlLLliLbluqYgPiB0aGVcLWJhb1wtamlhXC1zeXN0ZW1cLVwoYW5cLWFkbWluaXN0cmF0aXZlXC1zeXN0ZW1cLW9yZ2FuaXplZFwtb25cLWJhc2lzXC1vZlwtaG91c2Vob2xkc1wpOwor5LiN6L6o6I+96bqlID4gYmVcLXVuYWJsZVwtdG9cLXRlbGxcLWJlYW5zXC1mcm9tXC13aGVhdFwtXC1cLWhhdmVcLW5vXC1rbm93bGVkZ2VcLW9mXC1wcmFjdGljYWxcLW1hdHRlcnM7Civmga3llpznmbzosqEgPiBjb25ncmF0dWxhdGlvbnNcLWZvclwtZ2V0dGluZ1wtcmljaFwtXCh0cmFkaXRpb25hbFwtY2hpbmVzZVwtbmV3XC15ZWFyJydzXC1mdXR1cmVcLXVzZTsKK+Whnumfi+ijoeirviA+IFxbamVhblwtbWljaGVsXF1cLXNldmVyaW5vXC1cW3dvcmxkXC1iYW5rXC12aWNlXC1wcmVzaWRlbnRcLFwtZWFzdFwtYXNpYVwtYW5kXC1wYWNpZmljXF07CivmnInmnJ/lvpLliJEgPiBsaW1pdGVkXC10ZXJtXC1vZlwtaW1wcmlzb25tZW50XC1cKGllXCxcLWFueXRoaW5nXC1sZXNzXC10aGFuXC1saWZlXC1pbXByaXNvbm1lbnRcKTsKK+mWieebruWhnuiBvSA+IHNodXRzXC1vbmUnJ3NcLWV5ZXNcLWFuZFwtc3RvcFwtdXBcLW9uZScnc1wtZWFyc1wtXC1cLWJlXC1vdXRcLW9mXC10b3VjaFwtd2l0aFwtcmVhbGl0eTsKK+esqOmzpeWFiOmjmyA+IGNsdW1zeVwtYmlyZHNcLWhhdmVcLXRvXC1zdGFydFwtZmx5aW5nXC1lYXJseVwtXC1cLXRoZVwtc2xvd1wtbmVlZFwtdG9cLXN0YXJ0XC1lYXJseTsKK+acrOiNiee2seebriA+IGFuXC1vdXRsaW5lXC10cmVhdGlzZVwtb2ZcLW1lZGljYWxcLWhlcmJzXCxcLWNvbXBpbGVkXC1ieVwtbGkzXC1zaGkyXC16aGVuMVwt5p2O5pmC54+NOwor5YW15by36aas5aOvID4gc3Ryb25nXC1zb2xkaWVyc1wtYW5kXC1zdHVyZHlcLWhvcnNlc1wtXC1cLWFcLXdlbGxcLXRyYWluZWRcLWFuZFwtcG93ZXJmdWxcLWFybXk7Civmpa3kvZnlpKflrbggPiBjb2xsZWdlXC1mb3JcLXBlb3BsZVwtd2hvXC1hdHRlbmRcLWFmdGVyXC13b3JrXC1cKGxpdFwuXDpcLXNwYXJlXC10aW1lXC1jb2xsZWdlXCk7CivmjZXpoqjmjYnlvbEgPiBjaGFzZVwtdGhlXC13aW5kXC1hbmRcLWNsdXRjaFwtYXRcLXNoYWRvd3NcLVwtXC1tYWtlXC1ncm91bmRsZXNzXC1hY2N1c2F0aW9uczsKK+S4jeWIhuW9vOatpCA+IG1ha2VcLW5vXC1kaXN0aW5jdGlvblwtYmV0d2Vlblwtd2hhdCcnc1wtb25lJydzXC1vd25cLWFuZFwtd2hhdCcnc1wtYW5vdGhlcicnczsKK+S4jeefpeWHoeW5viA+IGNhbicndFwtdGVsbFwtaG93XC1tYW55XC10aGVyZVwtYXJlXC1cLVwtdGhlcmVcLWFyZVwtbnVtZXJvdXNcLXNpbWlsYXJcLWNhc2VzOwor5oqx5q6Y5a6I57y6ID4gY2hlcmlzaFwtdGhlXC1vdXRtb2RlZFwtYW5kXC1wcmVzZXJ2ZVwtdGhlXC1vdXR3b3JuXC1cLVwtYmVcLWNvbnNlcnZhdGl2ZTsKK+WNmuWPpOmAmuS7iiA+IGNvbnZlcnNhbnRcLXdpdGhcLXRoaW5nc1wtcGFzdFwtYW5kXC1wcmVzZW50XC1cLVwtZXJ1ZGl0ZVwtYW5kXC1pbmZvcm1lZDsKK+Wkp+msp+WkqeWuriA+IFwidGhlXC1tb25rZXlcLWNyZWF0ZXNcLWhhdm9jXC1pblwtaGVhdmVuXCJcLFwtc3RvcnlcLWFib3V0XC1zdW5cLXd1XC1rb25nOwor5oKy5aSp5oar5Lq6ID4gYmVtb2FuXC10aGVcLXN0YXRlXC1vZlwtdGhlXC11bml2ZXJzZVwtYW5kXC1waXR5XC10aGVcLWZhdGVcLW9mXC1tYW5raW5kOwor5LiN5pyN5rC05ZyfID4gXChvZlwtYVwtc3RyYW5nZXJcKVwtbm90XC1hY2N1c3RvbWVkXC10b1wtdGhlXC1jbGltYXRlXC1vZlwtYVwtbmV3XC1wbGFjZTsKK+WTgOWFteW/heWLnSA+IGFuXC1hcm15XC1idXJuaW5nXC13aXRoXC1yaWdodGVvdXNcLWluZGlnbmF0aW9uXC1pc1wtYm91bmRcLXRvXC13aW47Civnn5vpoK3mjIflkJEgPiB0YXJnZXRcLXNvbWVvbmVcLW9yXC1zb21ldGhpbmdcLVwoZm9yXC1hdHRhY2tcLFwtY3JpdGljaXNtXCxcLWV0Y1wuXCk7CivkuI3mgaXkuIvllY8gPiBub3RcLWZlZWxcLWFzaGFtZWRcLXRvXC1hc2tcLWFuZFwtbGVhcm5cLWZyb21cLW9uZScnc1wtc3Vib3JkaW5hdGVzOwor5Y2h5ouJT0sgPiBrYXJhb2tlXC1cKHNpbmdpbmdcLXRvXC1yZWNvcmRlZFwtaW5zdHJ1bWVudGFsXC1hY2NvbXBhbmltZW50XCk7CivkuK3lnIvmsJHoiKogPiBnZW5lcmFsXC1hZG1pbmlzdHJhdGlvblwtb2ZcLWNpdmlsXC1hdmlhdGlvblwtb2ZcLWNoaW5hXC1cKGNhYWNcKTsKK+S4ieWci+a8lOe+qSA+IG5hbWVcLW9mXC1hXC1jbGFzc2ljXC1ub3ZlbFwsXC1cInJvbWFuY2VcLW9mXC10aGVcLXRocmVlXC1raW5nZG9tc1wiOwor6IOM5rC05LiA5oiwID4gZmlnaHRcLXdpdGhcLW9uZScnc1wtYmFja1wtdG9cLXRoZVwtcml2ZXJcLVwtXC1maWdodFwtdG9cLXdpblwtb3JcLWRpZTsKK+adr+W8k+ibh+W9sSA+IG1pc3Rha2luZ1wtdGhlXC1yZWZsZWN0aW9uXC1vZlwtYVwtYm93XC1pblwtdGhlXC1jdXBcLWZvclwtYVwtc25ha2U7Civog4zkupXpm6LphIkgPiBsZWF2ZVwtb25lJydzXC1uYXRpdmVcLXBsYWNlXC1cKGVzcGVjaWFsbHlcLWFnYWluc3RcLW9uZScnc1wtd2lsbFwpOwor5rOi54C+6LW35LyPID4gb2ZcLWFcLXBpZWNlXC1vZlwtd3JpdGluZ1wtd2l0aFwtb25lXC1jbGltYXhcLWZvbGxvd2luZ1wtYW5vdGhlcjsKK+S4jeeCuuW3sueUmiA+IHJlZnJhaW5cLWZyb21cLWdvaW5nXC10b1wtZXh0cmVtZXNcLWluXC1tZXRpbmdcLW91dFwtcHVuaXNobWVudDsKK+S4jee0hOiAjOWQjCA+IHRha2VcLXRoZVwtc2FtZVwtYWN0aW9uXC1vclwtdmlld1wtd2l0aG91dFwtcHJpb3JcLWNvbnN1bHRhdGlvbjsKK+WFq+mdoueOsueTjyA+IGJlXC1zbW9vdGhcLWFuZFwtc2xpY2tcLVwoaW5cLWVzdGFibGlzaGluZ1wtc29jaWFsXC1yZWxhdGlvbnNcKTsKK+ecvuW/l+aIkOWfjiA+IFwidW5pdHlcLW9mXC13aWxsXC1pc1wtYW5cLWltcHJlZ25hYmxlXC1zdHJvbmdob2xkXCJcLVwocHJvdmVyYlwpOwor5oqX5pel5oiw54itID4gXChjaGluYScnc1wpXC13YXJcLW9mXC1yZXNpc3RhbmNlXC1hZ2FpbnN0XC1qYXBhblwtXCgxOTM3XC0xOTQ1XCk7CivlpKfmnZDlsI/nlKggPiB1c2luZ1wtYVwtdGFsZW50ZWRcLXBlcnNvblwtaW5cLWFuXC1pbnNpZ25pZmljYW50XC1wb3NpdGlvbjsKK+S4jeiBnuS4jeWVjyA+IG5vdFwtYm90aGVyXC10b1wtYXNrXC1xdWVzdGlvbnNcLW9yXC1saXN0ZW5cLXRvXC13aGF0JydzXC1zYWlkOwor5Lim6KGM5LiN5oKWID4gYm90aFwtY2FuXC1iZVwtaW1wbGVtZW50ZWRcLXdpdGhvdXRcLWNvbWluZ1wtaW50b1wtY29uZmxpY3Q7CivmraXmraXngrrnh58gPiBhZHZhbmNlXC1ncmFkdWFsbHlcLWFuZFwtZW50cmVuY2hcLW9uZXNlbGZcLWF0XC1ldmVyeVwtc3RlcDsKK+S4gOacm+eEoemamyA+IGFzXC1mYXJcLWFzXC10aGVcLWV5ZVwtY2FuXC1zZWVcLVwobGl0XDpcLWxvb2tcLWFmYXJcLW5vXC1ib3VuZFwpOwor5LiN6KaL57aT5YKzID4gbm90XC10b1wtYmVcLWZvdW5kXC1pblwtdGhlXC1jbGFzc2ljc1wtXC1cLW5vdFwtYXV0aG9yaXRhdGl2ZTsKK+aSpembsuimi+aXpSA+IGRpc3BlbFwtdGhlXC1jbG91ZHNcLWFuZFwtc2VlXC10aGVcLXN1blwtXC1cLXJlc3RvcmVcLWp1c3RpY2U7CivlronmraXnlbbou4ogPiB3YWxrXC1vdmVyXC1sZWlzdXJlbHlcLWluc3RlYWRcLW9mXC1yaWRpbmdcLWluXC1hXC1jYXJyaWFnZTsKK+S4jeWLneaemuiIiSA+IHRvb1wtbnVtZXJvdXNcLXRvXC1tZW50aW9uXC1pbmRpdmlkdWFsbHlcLW9yXC1vbmVcLWJ5XC1vbmU7Civos5Poh7PlpoLmrbggPiBndWVzdHNcLWZlZWxcLWF0XC1ob21lXC1cKGluXC1hXC1ob3RlbFwsXC1ndWVzdGhvdXNlXCxcLWV0Y1wuXCk7CivlsJbplqPliJfls7YgPiBzZW5rYWt1XC1pc2xhbmRzXC1cKGphcGFuZXNlXC1uYW1lXC1mb3JcLWRpYW95dVwtaXNsYW5kc1wpOwor57at5ZC+54i+5pePID4gdGhlXC11eWd1clwtXCh1aWdodXJcKVwtbmF0aW9uYWxpdHlcLFwtbGl2aW5nXC1pblwteGluamlhbmc7CivljZfoj6/ml6nloLEgPiBzb3V0aFwtY2hpbmFcLW1vcm5pbmdcLXBvc3RcLVwobmV3c3BhcGVyXC1pblwtaG9uZ1wta29uZ1wpOwor55eF5YWl6IaP6IKTID4gdGhlXC1kaXNlYXNlXC1oYXNcLWF0dGFja2VkXC10aGVcLXZpdGFsc1wtXC1cLWJleW9uZFwtY3VyZTsKK+e0hOe/sOaLieiynSA+IGpvaG5cLXJhYmVcLVwoZ2VybWFuXC1leWV3aXRuZXNzXC10b1wtbmFuamluZ1wtbWFzc2FjcmVcKTsKK+S4jeegtOS4jeeriyA+IHdpdGhvdXRcLWRlc3RydWN0aW9uXC10aGVyZVwtY2FuXC1iZVwtbm9cLWNvbnN0cnVjdGlvbjsKK+WMheeUouWIsOaItiA+IGZpeGluZ1wtb2ZcLWZhcm1cLW91dHB1dFwtcXVvdGFzXC1mb3JcLWVhY2hcLWhvdXNlaG9sZDsKK+mnsemnneelpeWtkCA+IG5hbWVcLW9mXC1hXC1ub3ZlbFwsXC1sdW9cLXR1b1wteGlhbmd6aVwsXC1ieVwtbGFvXC1zaGVcLeiAgeiIjTsKK+mAvOS4iuaokeWxsSA+IGJlXC1kcml2ZW5cLXRvXC1qb2luXC10aGVcLWxpYW5nc2hhblwtbW91bnRhaW5cLXJlYmVsczsKK+WNl+i9heWMl+i9jSA+IFwoZmlnXC5cKVwtYWN0XC1pblwtYVwtd2F5XC10aGF0XC1kZWZlYXRzXC1vbmUnJ3NcLXB1cnBvc2U7Civkv53lpJblsLHphqsgPiBcKG9mXC1hXC1wcmlzb25lclwpXC1yZWxlYXNlZFwtZm9yXC1tZWRpY2FsXC10cmVhdG1lbnQ7Civokrjokrjml6XkuIogPiBiZWNvbWluZ1wtbW9yZVwtcHJvc3Blcm91c1wtd2l0aFwtZWFjaFwtcGFzc2luZ1wtZGF5Owor54OP6a2v5pyo6b2KID4gdXJ1bXFpXC1cKGNhcGl0YWxcLW9mXC14aW5qaWFuZ1wtYXV0b25vbW91c1wtcmVnaW9uXCk7CivlronlnJ/ph43pgbcgPiBoYXRlXC10b1wtbGVhdmVcLWFcLXBsYWNlXC13aGVyZVwtb25lXC1oYXNcLWxpdmVkXC1sb25nOwor5bel5ZWG6YqA6KGMID4gaW5kdXN0cmlhbFwtYW5kXC1jb21tZXJjaWFsXC1iYW5rXC1vZlwtY2hpbmFcLVwoaWNiY1wpOwor5LqL6IiH6aGY6YGVID4gdGhpbmdzXC1kb24nJ3RcLXR1cm5cLW91dFwtdGhlXC13YXlcLXlvdVwtd2FudFwtb3JcLXBsYW47CivlvLXnh4jntZDntrUgPiBiZVwtZGVjb3JhdGVkXC13aXRoXC1sYW50ZXJuc1wtYW5kXC1jb2xvcmVkXC1iYW5uZXJzOwor6ZaJ6ZaA5oCd6YGOID4gc2h1dFwtb25lc2VsZlwtdXBcLWFuZFwtcG9uZGVyXC1vdmVyXC1vbmUnJ3NcLW1pc3Rha2VzOwor6ZaJ6Zec6Ieq5a6IID4gY2xvc2VcLXRoZVwtY291bnRyeVwtdG9cLWludGVybmF0aW9uYWxcLWludGVyY291cnNlOwor5LiN6YG/6Imx6ZqqID4gc2hyaW5rXC1vclwtZmxpbmNoXC1mcm9tXC1ub1wtZGlmZmljdWx0eVwtb3JcLWRhbmdlcjsKK+mYv+aXuuabsuaymyA+IG5nYXdhbmdcLWNob2VwZWxcLVwodGliZXRhblwsXC1mdWxsYnJpZ2h0XC1zY2hvbGFyXCk7Civnlavom4fmt7votrMgPiBydWluXC10aGVcLWVmZmVjdFwtYnlcLWFkZGluZ1wtd2hhdFwtaXNcLXN1cGVyZmx1b3VzOwor5LuX576p5Z+36KiAID4gc3BlYWtcLW91dFwtb25cLWFcLW1hdHRlclwtb2ZcLXByaW5jaXBsZVwtb3JcLWp1c3RpY2U7CivlhbXoh6jln47kuIsgPiB0aGVcLWF0dGFja2luZ1wtYXJteVwtaGFzXC1yZWFjaGVkXC10aGVcLWNpdHlcLWdhdGVzOwor6IOM5Z+O5YCf5LiAID4gbWFrZVwtYVwtbGFzdFwtZGl0Y2hcLXN0YW5kXC1iZWZvcmVcLXRoZVwtY2l0eVwtd2FsbDsKK+eZvuaEn+S6pOmbhiA+IGFsbFwtc29ydHNcLW9mXC1mZWVsaW5nc1wtd2VsbFwtdXBcLWluXC1vbmUnJ3NcLWhlYXJ0Owor5YW15LiN5Y6t6KmQID4gdGhlcmVcLWNhblwtbmV2ZXJcLWJlXC10b29cLW11Y2hcLWRlY2VwdGlvblwtaW5cLXdhcjsKK+S6lOWFreWNgeatsiA+IFwoaW5cLW9uZScnc1wpXC1maWZ0aWVzXC1vclwtc2l4dGllc1wtXCh5ZWFyc1wtb2ZcLWFnZVwpOwor6YG/6YeN5bCx6LyVID4gYXZvaWRcLXRoZVwtaW1wb3J0YW50XC1hbmRcLWR3ZWxsXC1vblwtdGhlXC10cml2aWFsOwor5qiZ5paw56uL55WwID4gc3RhcnRcLXNvbWV0aGluZ1wtbmV3XC1pblwtb3JkZXJcLXRvXC1iZVwtZGlmZmVyZW50Owor5aSn5Yqf5ZGK5oiQID4gc3VjY2Vzc2Z1bGx5XC1hY2NvbXBsaXNoZWRcLVwocHJvamVjdFwtb3JcLWdvYWxcKTsKK+eEoeaJgOeUqOW/gyA+IGVhdFwtdGhyZWVcLXNxdWFyZVwtbWVhbHNcLWFcLWRheVwtYW5kXC1kb1wtbm9cLXdvcms7Civnj63ploDlvITmlqcgPiBkaXNwbGF5XC1vbmUnJ3NcLXNsaWdodFwtc2tpbGxcLWJlZm9yZVwtYW5cLWV4cGVydDsKK+S4reWci+aXpeWgsSA+IGNoaW5hXC1kYWlseVwtXChhblwtZW5nbGlzaFwtbGFuZ3VhZ2VcLW5ld3NwYXBlclwpOwor5LiN5Y+v57WC5pelID4gYmVcLXVuYWJsZVwtdG9cLWNhcnJ5XC1vblwtZXZlblwtZm9yXC1hXC1zaW5nbGVcLWRheTsKK+mjvemjn+e1guaXpSA+IGVhdFwtdGhyZWVcLXNxdWFyZVwtbWVhbHNcLWFcLWRheVwtYW5kXC1kb1wtbm9cLXdvcms7Civllq7mp43ljLnppqwgPiBzaW5nbGVcLWhhbmRlZFwtXChsaXRcOlwtc2luZ2xlXC1zcGVhclwtb25lXC1ob3JzZVwpOwor5ZCN5Ymv5YW25a+mID4gbm90XC1qdXN0XC1pblwtbmFtZVwtb25seVwsXC1idXRcLWFsc29cLWluXC1yZWFsaXR5Owor5Zac5paw5Y6t6IiKID4gbGl0ZXJhbFw6XC10b1wtbGlrZVwtdGhlXC1uZXdcLFwtYW5kXC1oYXRlXC10aGVcLW9sZDsKK+aLjeahiOWPq+e1lSA+IGxpdFwuXDpcLXNsYXBcLXRoZVwtdGFibGVcLWFuZFwtc2hvdXRcLXdpdGhcLXByYWlzZTsKK+miqOWcn+S6uuaDhSA+IGxvY2FsXC1jb25kaXRpb25zXC1cKGh1bWFuXC1hbmRcLWVudmlyb25tZW50YWxcKTsKK+mYv+aLieWhlOaWryA+IFwoYWxpXClcLWFsYXRhc1wtXChpbmRvbmVzaWFuXC1mb3JlaWduXC1taW5pc3RlclwpOwor5Lit5YWx5Lit5aSuID4gY2hpbmVzZVwtY29tbXVuaXN0XC1wYXJ0eVwtY2VudHJhbFwtY29tbWl0dGVlOwor5Y2a6IGe5by36KiYID4gaGF2ZVwtd2lkZVwtbGVhcm5pbmdcLWFuZFwtYVwtcmV0ZW50aXZlXC1tZW1vcnk7Civnmb7lubTlpKfoqIggPiBhXC1wcm9qZWN0XC1vZlwtdml0YWxcLWFuZFwtbGFzdGluZ1wtaW1wb3J0YW5jZTsKK+aLlOiLl+WKqemVtyA+IHNwb2lsXC10aGluZ3NcLXRocm91Z2hcLWV4Y2Vzc2l2ZVwtZW50aHVzaWFzbTsKK+iCr+aZrue0ouaBqSA+IFwoZGlya1wpXC1rZW1wdGhvcm5lXC1cKHVzXC1zZW5hdG9yXC1mcm9tXC1pZGFob1wpOwor5aSW5a2r5aWz5YWSID4gZ3JhbmRkYXVnaHRlclwtXChkYXVnaHRlclwtb2ZcLW9uZScnc1wtZGF1Z2hlclwpOwor55m+5oqY5LiN5pKTID4ga2VlcFwtb25cLWZpZ2h0aW5nXC1pblwtc3BpdGVcLW9mXC1hbGxcLXNldGJhY2tzOwor5a6J6Lqr56uL5ZG9ID4gc2V0dGxlXC1kb3duXC1hbmRcLWdldFwtb25cLXdpdGhcLW9uZScnc1wtcHVyc3VpdDsKK+S4jeWPr+S4gOS4liA+IGNvbnNpZGVyXC1vbmVzZWxmXC11bmV4Y2VsbGVkXC1pblwtdGhlXC13b3JsZDsKK+e1leWwjeaVuOWtlyA+IGFic29sdXRlXC1cKGFzXC1vcHBvc2VkXC10b1wtcmVsYXRpdmVcKVwtbnVtYmVyOwor5oqx6aCt6byg56uEID4gY292ZXJcLXRoZVwtaGVhZFwtYW5kXC1zbmVha1wtYXdheVwtbGlrZVwtYVwtcmF0Owor55m+5bui5L+x6IiIID4gYWxsXC1uZWdsZWN0ZWRcLXRhc2tzXC1hcmVcLWJlaW5nXC11bmRlcnRha2VuOwor6YG/5a+m5bCx6JmbID4gc3RheVwtY2xlYXJcLW9mXC10aGVcLWVuZW15JydzXC1tYWluXC1mb3JjZVwtYW5kOwor5LiN5rGC55Sa6KejID4gbm90XC1zZWVrXC10b1wtdW5kZXJzdGFuZFwtdGhpbmdzXC10aG9yb3VnaGx5Owor5Lit5aSu5YWo5pyDID4gcGxlbmFyeVwtc2Vzc2lvblwtb2ZcLXRoZVwtY2VudHJhbFwtY29tbWl0dGVlOwor5Y+k5p2w5ouJ54i+ID4gXChpXC5cLWtcLlwpXC1ndWpyYWxcLVwocHJpbWVcLW1pbmlzdGVyXC1vZlwtaW5kaWFcKTsKK+WGt+a3oemXnOS/giA+IGNvbGRcLXJlbGF0aW9uc1wtXChlXC5nXC5cLWJldHdlZW5cLWNvdW50cmllc1wpOwor5LiN5LqG5LqG5LmLID4gc2V0dGxlXC1hXC1tYXR0ZXJcLWJ5XC1sZWF2aW5nXC1pdFwtdW5zZXR0bGVkOwor5LiN5Y2z5LiN6ZuiID4gYmVcLW5laXRoZXJcLXRvb1wtZmFtaWxpYXJcLW5vclwtdG9vXC1kaXN0YW50Owor57i95pS/5rK76YOoID4gXChtaWxpdGFyeVwpXC1nZW5lcmFsXC1wb2xpdGljYWxcLWRlcGFydG1lbnQ7CivljYrot6/lh7rlrrYgPiBzd2l0Y2hcLXRvXC1hXC1qb2JcLW9uZVwtd2FzXC1ub3RcLXRyYWluZWRcLWZvcjsKK+eXheavkuWtuOWutiA+IHZpcm9sb2dpc3RcLVwocGVyc29uXC13aG9cLXN0dWRpZXNcLXZpcnVzZXNcKTsKK+e1kOekvuiHqueUsSA+IFwoY29uc3RpdHV0aW9uYWxcKVwtZnJlZWRvbVwtb2ZcLWFzc29jaWF0aW9uOwor6JST5bu25YWo5ZyLID4gdG9cLXNwcmVhZFwtdGhyb3VnaG91dFwtdGhlXC1lbnRpcmVcLWNvdW50cnk7Civnmb7mgJ3kuI3op6MgPiByZW1haW5cLXB1enpsZWRcLWFmdGVyXC1wb25kZXJpbmdcLW92ZXJcLXN0aDsKK+WNiuWLnuWLleWKmyA+IG9uZVwtYWJsZVwtdG9cLWRvXC1saWdodFwtbWFudWFsXC1sYWJvdXJcLW9ubHk7CivnuL3lvozli6Tpg6ggPiBcKG1pbGl0YXJ5XClcLWdlbmVyYWxcLWxvZ2lzdGljc1wtZGVwYXJ0bWVudDsKK+S4gOWci+WFqeWItiA+IG9uZVwtY291bnRyeVwsXC10d29cLXN5c3RlbXNcLVwoY2hpbmFcLXRhaXdhblwpOwor55m96aCt6Kun6ICBID4gbGl2ZVwtdG9cLXJpcGVcLW9sZFwtYWdlXC1pblwtY29uanVnYWxcLWJsaXNzOwor5oiQ5Y2D5LiK6JCsID4gYnlcLXRoZVwtdGhvdXNhbmRzXC1hbmRcLXRlbnNcLW9mXC10aG91c2FuZHM7CivkuI3lrqPogIzmiLAgPiBvcGVuXC1ob3N0aWxpdGllc1wtd2l0aG91dFwtZGVjbGFyaW5nXC13YXI7CivkuI3pgaDljYPph4wgPiBtYWtlXC1saWdodFwtb2ZcLXRyYXZlbGxpbmdcLWFcLXRob3VzYW5kXC1saTsKK+WuieWxheaogualrSA+IGxpdmVcLWFuZFwtd29ya1wtaW5cLXBlYWNlXC1hbmRcLWNvbnRlbnRtZW50Owor6YGN6auU6bGX5YK3ID4gY292ZXJlZFwtYWxsXC1vdmVyXC13aXRoXC1jdXRzXC1hbmRcLWJydWlzZXM7Civlhafmh67lpJbmgqMgPiBkb21lc3RpY1wtc3RyaWZlXC1hbmRcLWZvcmVpZ25cLWFncmVzc2lvbjsKK+ayu+eXheaVkeS6uiA+IGN1cmVcLXRoZVwtc2lja25lc3NcLXRvXC1zYXZlXC10aGVcLXBhdGllbnQ7Civlk4DptLvpgY3ph44gPiBhXC1sYW5kXC1zd2FybWluZ1wtd2l0aFwtZGlzYXN0ZXJcLXZpY3RpbXM7Civnl4Xlvp7lj6PlhaUgPiBpbGxuZXNzXC1maW5kc1wtaXRzXC13YXlcLWluXC1ieVwtdGhlXC1tb3V0aDsKK+e4veWPg+isgOmDqCA+IFwobWlsaXRhcnlcKVwtZ2VuZXJhbFwtc3RhZmZcLWhlYWRxdWFydGVyczsKK+aSpee1g+aoguWZqCA+IHBsdWNrZWRcLXN0cmluZ1wtb3JcLXN0cmluZ2VkXC1pbnN0cnVtZW50Owor5Yil5YW35LiA5qC8ID4gaGF2aW5nXC1hXC11bmlxdWVcLW9yXC1kaXN0aW5jdGl2ZVwtc3R5bGU7CivoroDos6PmlrDogZ4gPiB5b21pdXJpXC1zaGltYnVuXC1cKGphcGFuZXNlXC1uZXdzcGFwZXJcKTsKK+aJjeeWj+WtuOa3uiA+IGhhdmVcLWxpdHRsZVwtdGFsZW50XC1hbmRcLWxlc3NcLWxlYXJuaW5nOwor6YG/5Z2R6JC95LqVID4gZG9kZ2VcLWFcLXBpdFwtb25seVwtdG9cLWZhbGxcLWludG9cLWFcLXdlbGw7Civorormuqvli5XniakgPiBwb2lraWxvdGhlcm1hbFwtXChjb2xkXC1ibG9vZGVkXClcLWFuaW1hbDsKK+Wkp+S4reWtuOeUnyA+IHVuaXZlcnNpdHlcLWFuZFwtaGlnaFwtc2Nob29sXC1zdHVkZW50czsKK+WuieWIhuWuiOW3sSA+IGFiaWRlXC1ieVwtdGhlXC1sYXdcLWFuZFwtYmVoYXZlXC1vbmVzZWxmOwor5aSn6aGv6Lqr5omLID4gZnVsbHlcLWRpc3BsYXlpbmdcLW9uZScnc1wtY2FwYWJpbGl0aWVzOwor5rOi54C+5aOv6ZeKID4gc3VyZ2luZ1wtZm9yd2FyZFwtd2l0aFwtZ3JlYXRcLW1vbWVudHVtOwor5Zue5q245Lit5ZyLID4gdG9cLXJldHVyblwtdG9cLWNoaW5hXC1cKGVcLmdcLlwtaG9uZ1wta29uZ1wpOwor5oSb6I6r6IO95YqpID4gd2lsbGluZ1wtdG9cLWhlbHBcLWJ1dFwtdW5hYmxlXC10b1wtZG9cLXNvOwor6Kq/5p+l57WQ5p6cID4gcmVzdWx0c1wtXChvZlwtYW5cLWludmVzdGlnYXRpb25cLFwtcG9sbFwpOwor55m+56uv5b6F6IiJID4gYVwtdGhvdXNhbmRcLXRoaW5nc1wtcmVtYWluXC10b1wtYmVcLWRvbmU7Civnp4vpq5jmsKPniL0gPiBjbGVhclwtYW5kXC1yZWZyZXNoaW5nXC1hdXR1bW5cLXdlYXRoZXI7CivlhrDmtojnk6bop6MgPiBtZWx0XC1saWtlXC1pY2VcLWFuZFwtYnJlYWtcLWxpa2VcLXRpbGVzOwor5Y2K5pak5YWr5YWpID4gbm90XC1tdWNoXC10b1wtY2hvb3NlXC1iZXR3ZWVuXC10aGVcLXR3bzsKK+atpeS6uuW+jOWhtSA+IGZvbGxvd1wtaW5cLW90aGVyXC1wZW9wbGUnJ3NcLWZvb3RzdGVwczsKK+m+jemjm+mzs+iIniA+IGxpdFwuXDpcLWRyYWdvblwtZmxpZXNcLFwtcGhvZW5peFwtZGFuY2VzOwor5ZyL6Zqb6KaL6IGeID4gaW50ZXJuYXRpb25hbFwtYmFja2dyb3VuZFwta25vd2xlZGdlOwor5ZyL5YuZ5aeU5ZOhID4gbWVtYmVyXC1vZlwtc3RhdGVcLWNvdW5jaWxcLVwoaW5cLWNoaW5hXCk7Civlj6/np7vmpI3mgKcgPiBwb3J0YWJpbGl0eVwtXChwcm9ncmFtbWluZ1wtbGFuZ3VhZ2VcKTsKK+WRvOWSjOa1qeeJuSA+IGhvaGhvdFwtXChjYXBpdGFsXC1vZlwtaW5uZXJcLW1vbmdvbGlhXCk7CivlsI/poYzlpKflgZogPiBtYWtlXC1hXC1iaWdcLWZ1c3NcLW92ZXJcLWFcLW1pbm9yXC1pc3N1ZTsKK+S4jeiZm+atpOihjCA+IHRoZVwtdHJpcFwtaGFzXC1ub3RcLWJlZW5cLW1hZGVcLWluXC12YWluOwor6KiA6KuW6Ieq55SxID4gXChjb25zdGl0dXRpb25hbFwpXC1mcmVlZG9tXC1vZlwtc3BlZWNoOwor6ZaL55m855Kw5aKDID4gZGV2ZWxvcG1lbnRcLWVudmlyb25tZW50XC1cKGNvbXB1dGVyXCk7CivkuI3orZjmmYLli5kgPiBzaG93XC1ub1wtdW5kZXJzdGFuZGluZ1wtb2ZcLXRoZVwtdGltZXM7CivkuI3mmYLkuYvpnIAgPiBhXC1wb3NzaWJsZVwtcGVyaW9kXC1vZlwtd2FudFwtb3JcLW5lZWQ7Civku6XniZnpgoTniZkgPiBhXC10b290aFwtZm9yXC1hXC10b290aFwtXChyZXRhbGlhdGlvblwpOwor55m+5oiw55m+5YudID4gZW1lcmdlXC12aWN0b3Jpb3VzXC1pblwtZXZlcnlcLWJhdHRsZTsKK+eUseatpOWPr+imiyA+IGZyb21cLXRoaXNcLFwtaXRcLWNhblwtYmVcLXNlZW5cLXRoYXRcLlwuXC47Civlr7jojYnkuI3nlJ8gPiBcIm5vdFwtZXZlblwtYVwtYmxhZGVcLW9mXC1ncmFzc1wtZ3Jvd3NcIjsKK+aTpuS6ruecvOedmyA+IHJlbW92ZVwtdGhlXC1zY2FsZXNcLWZyb21cLW9uZScnc1wtZXllczsKK+ijnOWBj+aVkeW8iiA+IHJlbWVkeVwtZGVmZWN0c1wtYW5kXC1yZWN0aWZ5XC1lcnJvcnM7Civnmb7lt53mrbjmtbcgPiBhbGxcLXRoaW5nc1wtdGVuZHNcLWluXC1vbmVcLWRpcmVjdGlvbjsKK+iqk+S4jeWPjeaClCA+IHRvXC12b3dcLW5vdFwtdG9cLWJyZWFrXC1vbmUnJ3NcLXByb21pc2U7Civnp5Hlrbjnt6jovK8gPiBzY2llbmNlXC1lZGl0b3JcLVwob2ZcLWFcLXB1YmxpY2F0aW9uXCk7CivmmILpppbpl4rmraUgPiBzdHJpZGVcLWZvcndhcmRcLXdpdGhcLW9uZScnc1wtY2hpblwtdXA7Civml6XntpPmjIfmlbggPiBuaWtrZWlcLWluZGV4XC1cKG9mXC1qYXBhbmVzZVwtc3RvY2tzXCk7Civlvpflr7jpgLLlsLogPiBsaXRlcmFsXDpcLWdldFwtYW5cLWluY2hcLFwtd2FudFwtYVwtZm9vdDsKK+WMl+a0i+i7jemWpSA+IHRoZVwtbm9ydGhlcm5cLXdhcmxvcmRzXC1cKDE5MTJcLTE5MjdcKTsKK+Wkp+aDkeS4jeinoyA+IGRvXC1ub3RcLXVuZGVyc3RhbmRcLWFcLWNlcnRhaW5cLXRoaW5nOwor5piO5paH6KaP5a6aID4gZXhwcmVzc2x5XC1zdGlwdWxhdGVkXC1cKGluXC13cml0aW5nXCk7CivlpKfluq3lu6PnnL4gPiBwdWJsaWNcLXBsYWNlXC13aXRoXC1udW1lcm91c1wtcGVvcGxlOwor55m+54Sh5LiA5aSxID4gbm9cLWRhbmdlclwtb2ZcLWFueXRoaW5nXC1nb2luZ1wtd3Jvbmc7CivkurrmrIrop4Dlr58gPiBodW1hblwtcmlnaHRzXC13YXRjaFwtXChvcmdhbml6YXRpb25cKTsKK+WCmeiAjOS4jeeUqCA+IGhhdmVcLXNvbWV0aGluZ1wtcmVhZHlcLWp1c3RcLWluXC1jYXNlOwor56+A5aSW55Sf5p6dID4gbmV3XC1wcm9ibGVtc1wtY29tcGxpY2F0ZVwtYW5cLWlzc3VlOwor6by76Z2S6IeJ6IWrID4gYVwtYmxvb2R5XC1ub3NlXC1hbmRcLWFcLXN3b2xsZW5cLWZhY2U7CivkvIHmpa3nrqHnkIYgPiBidXNpbmVzc1wtbWFuYWdlbWVudFwtXChhc1wtYVwtc3R1ZHlcKTsKK+S4jeisgOiAjOWQiCA+IGFncmVlXC13aXRob3V0XC1wcmlvclwtY29uc3VsdGF0aW9uOwor5oyJ5YW15LiN5YuVID4gbm90XC10aHJvd1wtdGhlXC10cm9vcHNcLWludG9cLWJhdHRsZTsKK+S4gOS4reS4gOiHuiA+IFwib25lXC1jaGluYVwsXC1vbmVcLXRhaXdhblwiXC1cKHBvbGljeVwpOwor5Lit5pel6Z+T6LaKID4gY2hpbmFcLFwtamFwYW5cLFwta29yZWFcLFwtYW5kXC12aWV0bmFtOwor5b2i5b2x5LiN6ZuiID4gaW5zZXBhcmFibGVcLVwoYXNcLWZvcm1cLWFuZFwtc2hhZG93XCk7CivllYbmpa3niYjmnKwgPiBjb21tZXJjaWFsXC12ZXJzaW9uXC1cKG9mXC1zb2Z0d2FyZVwpOwor55m+6K6A5LiN5Y6tID4gYmVcLXdvcnRoXC1yZWFkaW5nXC1hXC1odW5kcmVkXC10aW1lczsKK+WIhuazouWkmuW3pSA+IHdhdmVsZW5ndGhcLWRpdmlzaW9uXC1tdWx0aXBsZXhpbmc7Civlv4XnlLHkuYvot68gPiB0aGVcLXJvYWRcLW9uZVwtbXVzdFwtZm9sbG93XC1vclwtdGFrZTsKK+S6qOeJueazsOe+hSA+IGh1bnRlclwtdHlsb1wtXChob2xseXdvb2RcLWFjdHJlc3NcKTsKK+mWiemWgOmAoOi7iiA+IG1ha2VcLWFcLWNhcnRcLWJlaGluZFwtY2xvc2VkXC1kb29yczsKK+aCsuWWnOS6pOmbhiA+IG1peGVkXC1mZWVsaW5nc1wtb2ZcLWdyaWVmXC1hbmRcLWpveTsKK+S4jeS/rumCiuW5hSA+IG5vdFwtY2FyZVwtYWJvdXRcLW9uZScnc1wtYXBwZWFyYW5jZTsKK+Wkp+W/q+S6uuW/gyA+IHRvXC10aGVcLXNhdGlzZmFjdGlvblwtb2ZcLWV2ZXJ5b25lOwor6Z6t6ZW36I6r5Y+KID4gYmV5b25kXC10aGVcLXJlYWNoXC1vZlwtb25lJydzXC1wb3dlcjsKK+S4jeWtuOeEoeihkyA+IGhhdmVcLW5laXRoZXJcLWxlYXJuaW5nXC1ub3JcLXNraWxsOwor5LiN5a+S6ICM5oWEID4gc2hpdmVyXC1hbGxcLW92ZXJcLXRob3VnaFwtbm90XC1jb2xkOwor5bGk5Ye65LiN56quID4gdG9cLWNvbWVcLW91dFwtb25lXC1hZnRlclwtdGhlXC1vdGhlcjsKK+WuieawkeWRiuekuiA+IGFcLW5vdGljZVwtdG9cLXJlYXNzdXJlXC10aGVcLXB1YmxpYzsKK+e0sOiPjOatpuWZqCA+IGJpb2xvZ2ljYWxcLXdlYXBvblwtXCh1c2luZ1wtZ2VybXNcKTsKK+WIpemWi+eUn+mdoiA+IHN0YXJ0XC1zb21ldGhpbmdcLW5ld1wtb3JcLW9yaWdpbmFsOwor5aaC6aOi5Ly85ri0ID4gdGhpcnN0aW5nXC1vclwtaHVuZ2VyaW5nXC1mb3JcLXN0aFwuOwor6ZaL5ZyL5YWD5YubID4gZm91bmRpbmdcLWZhdGhlcnNcLVwob2ZcLWFcLWNvdW50cnlcKTsKK+ebtOaOpeaVuOaTmiA+IGRhdGFcLWRpcmVjdFwtXChpblwtbGFuXC1lbXVsYXRpb25cKTsKK+WCs+e1semGq+iXpSA+IFwoY2hpbmVzZVwpXC10cmFkaXRpb25hbFwtbWVkaWNpbmU7CivmnInlj7Lku6XkvoYgPiBzaW5jZVwtdGhlXC1iZWdpbm5pbmdcLW9mXC1oaXN0b3J5Owor5YyF5rK755m+55eFID4gZ3VhcmFudGVlXC10b1wtY3VyZVwtYWxsXC1kaXNlYXNlczsKK+aMiemcgOWIhumFjSA+IGRpc3RyaWJ1dGlvblwtYWNjb3JkaW5nXC10b1wtbmVlZDsKK+S4luiyv+e1hOe5lCA+IHd0b1wtXCh3b3JsZFwtdHJhZGVcLW9yZ2FuaXphdGlvblwpOwor5rKS5pyJ5LuA6bq8ID4gdGhlcmUnJ3NcLW5vdGhpbmdcLVwoXC5cLlwuXC1hYm91dFwtaXRcKTsKK+aMieWLnuWIhumFjSA+IGRpc3RyaWJ1dGlvblwtYWNjb3JkaW5nXC10b1wtd29yazsKK+mYv+aLieacqOWcliA+IGFsbWF0eVwtXChjYXBpdGFsXC1vZlwta2F6YWtoc3RhblwpOwor5LiD5bGk5p625qeLID4gc2V2ZW5cLWxheWVyXC1hcmNoaXRlY3R1cmVcLVwob3NpXCk7Civmh4nmnInnm6HmnIkgPiBldmVyeXRoaW5nXC1cKG9uZVwtY291bGRcLWltYWdpbmVcKTsKK+mdkuWxsee2oOawtCA+IHZlcmRhbnRcLWhpbGxzXC1hbmRcLWdyZWVuXC13YXRlcnM7CivombnmqYvmqZ/loLQgPiBob25ncWlhb1wtYWlycG9ydFwtXChpblwtc2hhbmdoYWlcKTsKK+e1seS4gOaLm+eUnyA+IG5hdGlvbmFsXC11bmlmaWVkXC1lbnRyYW5jZVwtZXhhbTsKK+adsemDqOaZgumWkyA+IFwodVwuc1wuXClcLWVhc3Rlcm5cLVwoc3RhbmRhcmRcKVwtdGltZTsKK+aZguWkp+aZguWwjyA+IHNvbWV0aW1lc1wtYmlnXCxcLXNvbWV0aW1lc1wtc21hbGw7CivkuI3ovq3ogIzliKUgPiBsZWF2ZVwtd2l0aG91dFwtc2F5aW5nXC1nb29kXC1ieWU7Civnmb7ogb3kuI3ljq0gPiB3b3J0aFwtaGVhcmluZ1wtYVwtaHVuZHJlZFwtdGltZXM7CivkvY7pmo7oqp7oqIAgPiBsb3dcLWxldmVsXC1cKGNvbXB1dGVyXClcLWxhbmd1YWdlOwor5LiN6Laz54K66KiTID4gbm90XC10b1wtYmVcLXRha2VuXC1hc1wtYW5cLWV4YW1wbGU7CivlpKflkLnlpKfmk4IgPiBtYWtlXC1hblwtZXhoaWJpdGlvblwtb2ZcLW9uZXNlbGY7CivlronkuYvoi6XntKAgPiBiZWFyXC1oYXJkc2hpcFwtd2l0aFwtZXF1YW5pbWl0eTsKK+ilv+WTiOWKquWFiyA+IFwoa2luZ1wpXC1zaWhhbm91a1wtXChvZlwtY2FtYm9kaWFcKTsKK+auuuS6uuahiOS7tiA+IFwoY2FzZVwtb2ZcLFwtaW5jaWRlbnRcLW9mXClcLW11cmRlcjsKK+iDjOmBk+iAjOmmsyA+IHJ1blwtaW5cLXRoZVwtb3Bwb3NpdGVcLWRpcmVjdGlvbjsKK+S9jue0muiqnuiogCA+IGxvd1wtbGV2ZWxcLVwoY29tcHV0ZXJcKVwtbGFuZ3VhZ2U7CivkuI3lkI3kuIDmlocgPiB3aXRob3V0XC1hXC1wZW5ueVwtdG9cLW9uZScnc1wtbmFtZTsKK+S4jeeEoeWwj+ijnCA+IG5vdFwtYmVcLXdpdGhvdXRcLXNvbWVcLWFkdmFudGFnZTsKK+WKoOW8t+euoeWItiA+IHRvXC10aWdodGVuXC1jb250cm9sXC1cKG92ZXJcLXN0aFwpOwor5Lq65rCR5pel5aCxID4gcmVubWluXC1yaWJhb1wtXChwZW9wbGUnJ3NcLWRhaWx5XCk7Civplovlp4vku6XliY0gPiBiZWZvcmVcLXRoZVwtYmVnaW5uaW5nXC1cKG9mXC1zdGhcKTsKK+S4jeitmOWkp+mrlCA+IGZhaWxcLXRvXC1zZWVcLXRoZVwtbGFyZ2VyXC1pc3N1ZXM7CivkuI3miZPoh6rmi5sgPiBjb25mZXNzXC13aXRob3V0XC1iZWluZ1wtcHJlc3NlZDsKK+S4gOiIieWFqeW+lyA+IGtpbGxcLXR3b1wtYmlyZHNcLXdpdGhcLW9uZVwtc3RvbmU7CivkuI3pgJ/kuYvlrqIgPiB1bmludml0ZWRcLW9yXC11bmV4cGVjdGVkXC1ndWVzdDsKK+S4jeW+l+imgemgmCA+IGZhaWxcLXRvXC1ncmFzcFwtdGhlXC1tYWluXC1wb2ludHM7CivpgLLooYzoqr/mn6UgPiB0b1wtY2FycnlcLW91dFwtYW5cLWludmVzdGlnYXRpb247CivlpKfooZflsI/lt7cgPiBsYXJnZVwtc3RyZWV0c1wtYW5kXC1zbWFsbFwtbGFuZXM7CivlkITlpKfou43ljYAgPiBcInRoZVwtZ3JlYXRlclwtbWlsaXRhcnlcLWFyZWFzXCI7CivlkbznsbLnvo7lnIsgPiB0b1wtY2FsbFwtb25cLXRoZVwtdW5pdGVkXC1zdGF0ZXM7CivosZDooaPotrPpo58gPiBoYXZlXC1hbXBsZVwtZm9vZFwtYW5kXC1jbG90aGluZzsKK+S4jeefpeWlveatuSA+IG5vdFwta25vd1wtd2hhdCcnc1wtZ29vZFwtZm9yXC1vbmU7CivntrLnrqHmjqXlj6MgPiBuZXR3b3JrXC1tYW5hZ2VtZW50XC1pbnRlcmZhY2U7CivmoLnmk5rkuIrooaggPiBhY2NvcmRpbmdcLXRvXC10aGVcLWFib3ZlXC10YWJsZTsKK+Wci+mYsuWIqeebiiA+IFwobmF0aW9uYWxcKVwtZGVmZW5jZVwtaW50ZXJlc3RzOwor5pys5pyr5YCS572uID4gdGFrZVwtdGhlXC1icmFuY2hcLWZvclwtdGhlXC1yb290Owor5oqx6aCt55eb5ZOtID4gY3J5XC1vblwtZWFjaFwtb3RoZXInJ3NcLXNob3VsZGVyOwor5LiN5LiA6ICM6LazID4gYnlcLW5vXC1tZWFuc1wtYW5cLWlzb2xhdGVkXC1jYXNlOwor55m957SZ6buR5a2XID4gXCh3cml0dGVuXClcLWluXC1ibGFja1wtYW5kXC13aGl0ZTsKK+S4jeeijueOu+eSgyA+IHNoYXR0ZXJwcm9vZlwtb3JcLXNhZmV0eVwtZ2xhc3M7CivojqvoobfkuIDmmK8gPiBjYW5ub3RcLWRlY2lkZVwtd2hpY2hcLWlzXC1yaWdodDsKK+WFq+Wci+iBr+i7jSA+IHRoZVwtZWlnaHRcLXBvd2VyXC1hbGxpZWRcLWZvcmNlOwor5aSa5bm05Lul5L6GID4gZm9yXC1tYW55XC15ZWFyc1wtXChpblwtdGhlXC1wYXN0XCk7Civnn6XorZjnlKLmrIogPiBpbnRlbGxlY3R1YWxcLXByb3BlcnR5XC1yaWdodHM7CivoqpPmrbvkuI3pmY0gPiB0b1wtdm93XC10b1wtZmlnaHRcLXRvXC10aGVcLWRlYXRoOwor5rKS5pyJ5b+F6KaBID4gdGhlcmVcLWlzXC1ub1wtbmVlZFwtdG9cLVwoZG9cLXN0aFwpOwor5Lit5paH5buj5pKtID4gY2hpbmVzZVwtXChsYW5ndWFnZVwpXC1icm9hZGNhc3Q7Civnp7vmrpbmiYvooZMgPiBcKG9yZ2FuXClcLXRyYW5zcGxhbnRcLW9wZXJhdGlvbjsKK+a1quWtkOWbnumgrSA+IHRoZVwtcmV0dXJuXC1vZlwtYVwtcHJvZGlnYWxcLXNvbjsKK+S4jeaApeS5i+WLmSA+IGFcLW1hdHRlclwtb2ZcLW5vXC1ncmVhdFwtdXJnZW5jeTsKK+mbu+ejgeW5suaTviA+IGVsZWN0cm9tYWduZXRpY1wtaW50ZXJmZXJlbmNlOwor5LiN5piT5LmL6KuWID4gcGVyZmVjdGx5XC1zb3VuZFwtcHJvcG9zaXRpb247CivlkITnqK7lkITmqKMgPiB2YXJpb3VzXC1zb3J0c1wtYW5kXC12YXJpZXRpZXM7CivkuI3pgZXovrLmmYIgPiBub3RcLW1pc3NcLXRoZVwtZmFybWluZ1wtc2Vhc29uOwor5LqC5L2c5rG65a6aID4gdG9cLW1ha2VcLWFyYml0cmFyeVwtZGVjaXNpb25zOwor5aSn5Zmo5pma5oiQID4gZ3JhbmRcLXRhbGVudHNcLW1hdHVyZVwtc2xvd2x5Owor5oyJ5q2l5bCx54+tID4gZm9sbG93XC10aGVcLXByZXNjcmliZWRcLW9yZGVyOwor5aSW5Lqk6YOo6ZW3ID4gbWluaXN0ZXJcLW9mXC1mb3JlaWduXC1hZmZhaXJzOwor6IiJ5LiW55+a55uuID4gYXR0cmFjdFwtd29ybGR3aWRlXC1hdHRlbnRpb247CivnjajmlrflsIjooYwgPiBhY3RcLWluXC1hblwtYXJiaXRyYXJ5XC1mYXNoaW9uOwor56eB5Lq66ZGw5YyZID4gcHJpdmF0ZVwta2V5XC1cKGluXC1lbmNyeXB0aW9uXCk7CivljbvkuYvkuI3mga0gPiB0b1wtcmVmdXNlXC13b3VsZFwtYmVcLWltcG9saXRlOwor6aas5aSq56aP6Z+zID4gZ29zcGVsXC1hY2NvcmRpbmdcLXRvXC1tYXR0aGV3Owor6Zu76Kmx5pyD6K2wID4gXCh0ZWxlcGhvbmVcKVwtY29uZmVyZW5jZVwtY2FsbDsKK+S4jeiQveeqoOiHvCA+IG5vdFwtZm9sbG93XC10aGVcLWJlYXRlblwtdHJhY2s7CivmjInnhafoqIjlioMgPiBhY2NvcmRpbmdcLXRvXC1cKHRoZVwpXC1wbGFuXC1cLlwuXC47Civkuovmg4XopoHlgZogPiB0aGluZ1wtdGhhdFwtbmVlZHNcLXRvXC1iZVwtZG9uZTsKK+S4gOi3r+W5s+WuiSA+IHRvXC1oYXZlXC1hXC1wbGVhc2FudFwtam91cm5leTsKK+e0kOe0hOaZguWgsSA+IG5ld1wteW9ya1wtdGltZXNcLVwobmV3c3BhcGVyXCk7CivluLjllY/llY/poYwgPiBmcmVxdWVudGx5XC1hc2tlZFwtcXVlc3Rpb25zOwor55m+5a2U5Y2D55ihID4gcmlkZGxlZFwtd2l0aFwtZ2FwaW5nXC13b3VuZHM7CivlhbXpgKPnpo3ntZAgPiByYXZhZ2VkXC1ieVwtc3VjY2Vzc2l2ZVwtd2FyczsKK+mVt+acn+S7peS+hiA+IGV2ZXJcLXNpbmNlXC1hXC1sb25nXC10aW1lXC1hZ287CivlronlrrbokL3miLYgPiBtYWtlXC1vbmUnJ3NcLWhvbWVcLWluXC1hXC1wbGFjZTsKK+WFpeacqOS4ieWIhiA+IHdyaXR0ZW5cLWluXC1hXC1mb3JjZWZ1bFwtaGFuZDsKK+WIhuaZguWkmuW3pSA+IHRpbWVcLWRpdmlzaW9uXC1tdWx0aXBsZXhpbmc7CivmoLnmt7HokoLlm7ogPiBkZWVwXC1yb290ZWRcLVwocHJvYmxlbVwsXC1ldGNcKTsKK+aYn+WztuaXpeWgsSA+IHNpbmdcLXRhb1wtZGFpbHlcLVwobmV3c3BhcGVyXCk7Civpm7vkv6HmnI3li5kgPiB0ZWxlY29tbXVuaWNhdGlvbnNcLXNlcnZpY2U7CivlhazplovpkbDljJkgPiBwdWJsaWNcLWtleVwtXChpblwtZW5jcnlwdGlvblwpOwor6Zu75L+h57ay6LevID4gdGVsZWNvbW11bmljYXRpb25zXC1uZXR3b3JrOwor5oSf5p+T5Lq65pW4ID4gbnVtYmVyXC1vZlwtaW5mZWN0ZWRcLXBlcnNvbnM7Civnmb7mraXnqb/mpYogPiBzaG9vdFwtd2l0aFwtZ3JlYXRcLXByZWNpc2lvbjsKK+WHuuePvuaEj+WkliA+IFwodG9cLWFwcGVhclwpXC11bmV4cGVjdGVkXChseVwpOwor5LiA6Ke45Y2z55m8ID4gY291bGRcLWhhcHBlblwtYXRcLWFueVwtbW9tZW50Owor57qW6Iqv55u05b6RID4gY29yZVwtZGlhbWV0ZXJcLVwob2ZcLWFcLWZpYmVyXCk7CivpgLLooYzkuqTmmJMgPiB0b1wtY2FycnlcLW91dFwtYVwtdHJhbnNhY3Rpb247CivliKXlh7rlv4Poo4EgPiBhZG9wdFwtYW5cLW9yaWdpbmFsXC1hcHByb2FjaDsKK+eZvueZvOeZvuS4rSA+IGV2ZXJ5XC1zaG90XC1oaXRzXC10aGVcLXRhcmdldDsKK+S4jeS6ouS4jeWNkSA+IG5laXRoZXJcLWhhdWdodHlcLW5vclwtaHVtYmxlOwor55m95aOB54Sh55GVID4gaW1wZWNjYWJsZVwtbW9yYWxcLWludGVncml0eTsKK+aVl+WtkOWbnumgrSA+IHJldHVyblwtb2ZcLXRoZVwtcHJvZGlnYWxcLXNvbjsKK+ioquWVj+e+juWciyA+IHRvXC12aXNpdFwtdGhlXC11bml0ZWRcLXN0YXRlczsKK+S4jeWkseaZguapnyA+IHNlaXplXC10aGVcLW9wcG9ydHVuZVwtbW9tZW50Owor5bCO5b2I5r2b6ImHID4gXChndWlkZWRcKVwtbWlzc2lsZVwtc3VibWFyaW5lOwor5a6J5aaC5rOw5bGxID4gYXNcLXNlY3VyZVwtYXNcLW1vdW50XC10YWlzaGFuOwor5LiN576p5LmL6LKhID4gaWxsXC1nb3R0ZW5cLXdlYWx0aFwtb3JcLWdhaW5zOwor6YeN6KaB55qE5pivID4gaXRcLWlzXC1pbXBvcnRhbnRcLVwodGhhdFwpXC1cLlwuXC47CivpgJrkv6HmioDooZMgPiBjb21tdW5pY2F0aW9uc1wtdGVjaG5vbG9neTsKK+WkluWMr+WEsuWCmSA+IGZvcmVpZ25cLWV4Y2hhbmdlXC1yZXNlcnZlczsKK+WLnuWLleaVmemkiiA+IHJlZWR1Y2F0aW9uXC10aHJvdWdoXC1sYWJvcjsKK+S4jei+rei+m+iLpiA+IG1ha2VcLW5vdGhpbmdcLW9mXC1oYXJkc2hpcHM7CivnqIvlvI/nkIblk6EgPiBwcm9ncmFtXC1tYW5hZ2VyXC1cKHdpbmRvd3NcKTsKK+awkeS4u+m7qOS6uiA+IGFcLWRlbW9jcmF0aWNcLXBhcnR5XC1tZW1iZXI7CivkuInljYHlubTkvoYgPiBmb3JcLXRoZVwtcGFzdFwtdGhpcnR5XC15ZWFyczsKK+aKgOihk+eZvOWxlSA+IHRlY2hub2xvZ2ljYWxcLWRldmVsb3BtZW50Owor6auY562J5a245qChID4gY29sbGVnZXNcLWFuZFwtdW5pdmVyc2l0aWVzOwor5bq35raF54uE5qC8ID4gY29ubmVjdGljdXRcLVwoc3RhdGVcLWluXC11c1wpOwor5Zau6YCj5o6l56uZID4gc2luZ2xlXC1hdHRhY2htZW50XC1zdGF0aW9uOwor56ym5ZCI5qiZ5rqWID4gdG9cLWNvbXBseVwtd2l0aFwtYVwtc3RhbmRhcmQ7CivnpLrlqIHpgYrooYwgPiBhXC1cKHByb3Rlc3RcKVwtZGVtb25zdHJhdGlvbjsKK+Wkp+aVteeVtuWJjSA+IGNvbmZyb250XC1hXC1wb3dlcmZ1bFwtZW5lbXk7CivnoJToo73pgY7nqIsgPiBtYW51ZmFjdHVyaW5nXC1lbnZpcm9ubWVudDsKK+WPjeWUh+ebuOitjyA+IGFuc3dlclwtYmFja1wtc2FyY2FzdGljYWxseTsKK+aguOi9n+eCuOapnyA+IG51Y2xlYXJcLWJvbWJlclwtXChhaXJjcmFmdFwpOwor5LiN5b6X5Lq65b+DID4gbm90XC1lbmpveVwtcG9wdWxhclwtc3VwcG9ydDsKK+ebtOiogOS4jeirsSA+IHNwZWFrXC1mcmFua2x5XC1hbmRcLWJsdW50bHk7Civmma/lsbHlhazlnJIgPiBuYW1lXC1vZlwtYVwtcGFya1wtaW5cLWJlaWppbmc7CivpnaLoh6jlm7Dpm6MgPiB0b1wtYmVcLWZhY2VkXC13aXRoXC1wcm9ibGVtczsKK+S4jeWLmeato+alrSA+IG5vdFwtZW5nYWdlXC1pblwtaG9uZXN0XC13b3JrOwor5oSb55CG5LiN55CGID4gbG9va1wtY29sZFwtYW5kXC1pbmRpZmZlcmVudDsKK+aUueWWhOmAmuioiiA+IHRvXC1pbXByb3ZlXC1jb21tdW5pY2F0aW9uczsKK+e4veWPg+isgOmVtyA+IFwobWlsaXRhcnlcKVwtY2hpZWZcLW9mXC1zdGFmZjsKK+iDjOS/oeajhOe+qSA+IGJyZWFrXC1mYWl0aFwtd2l0aFwtc29tZWJvZHk7Civot6jlnIvlhazlj7ggPiB0cmFuc25hdGlvbmFsXC1jb3Jwb3JhdGlvbjsKK+WFseWSjOm7qOS6uiA+IGFcLXJlcHVibGljYW5cLXBhcnR5XC1tZW1iZXI7Civppqzlj6/npo/pn7MgPiBnb3NwZWxcLWFjY29yZGluZ1wtdG9cLW1hcms7Civmr4/lubTkuIDluqYgPiBvbmNlXC1hXC15ZWFyXC1cKGV2ZXJ5XC15ZWFyXCk7Civln5/lkI3oqLvlhoogPiBkb21haW5cLW5hbWVcLXJlZ2lzdHJhdGlvbjsKK+WFteiytOelnumAnyA+IHNwZWVkXC1pc1wtcHJlY2lvdXNcLWluXC13YXI7CivlpJrpgorlkIjkvZwgPiBtdWx0aWxhdGVyYWxcLWNvb3BlcmF0aW9uOwor5oqV5pS+5biC5aC0ID4gdG9cLXB1dFwtc3RoXC1vblwtdGhlXC1tYXJrZXQ7CivojZLnhKHkurrnhZkgPiBkZXNvbGF0ZVwtYW5kXC11bmluaGFiaXRlZDsKK+e0hOe/sOemj+mfsyA+IGdvc3BlbFwtYWNjb3JkaW5nXC10b1wtam9objsKK+WNsOatkOiqnuiogCA+IGluZG9cLWV1cm9wZWFuXC1cKGxhbmd1YWdlXCk7Civnv5Lku6XngrrluLggPiBiZVwtYWNjdXN0b21lZFwtb3JcLXVzZWRcLXRvOwor5YW16I2S6aas5LqCID4gdHVybW9pbFwtYW5kXC1jaGFvc1wtb2ZcLXdhcjsKK+S4jeWLleiBsuiJsiA+IG1haW50YWluXC1vbmUnJ3NcLWNvbXBvc3VyZTsKK+a1rum7numBi+eulyA+IGZsb2F0aW5nXC1wb2ludFwtb3BlcmF0aW9uOwor5YWn5pS/6YOo6ZW3ID4gbWluaXN0ZXJcLW9mXC10aGVcLWludGVyaW9yOwor6by76Yed55mC5rOVID4gbm9zZVwtYWN1cHVuY3R1cmVcLXRoZXJhcHk7CivomZvmk6znkrDlooMgPiB0aGVvcmhldGljYWxcLWVudmlyb25tZW50Owor5a+G5YiH5rOo5oSPID4gY2xvc2VcLWF0dGVudGlvblwtXCh0b1wtc3RoXCk7CivkuI3mi5jkuIDmoLwgPiBub3RcLXN0aWNrXC10b1wtb25lXC1wYXR0ZXJuOwor5a6M5YWo5oeC5b6XID4gdG9cLXVuZGVyc3RhbmRcLWNvbXBsZXRlbHk7CivkuI3lubPliYfps7QgPiB3aGVyZVwtdGhlcmVcLWlzXC1pbmp1c3RpY2U7CivmoLjkuI3mk7TmlaMgPiBudWNsZWFyXC1ub25wcm9saWZlcmF0aW9uOwor5pO66ISr5Y2x5qmfID4gdG9cLWJyZWFrXC1vdXRcLW9mXC1hXC1jcmlzaXM7Civlr4zluIPos7TnibkgPiBmdWxsYnJpZ2h0XC1cKHNjaG9sYXJzaGlwXCk7CivmkqXkuoLlj43mraMgPiBicmluZ1wtb3JkZXJcLW91dFwtb2ZcLWNoYW9zOwor5a6J56ys5pav5bGxID4gdGhlXC1hbmRlc1wtbW91bnRhaW5cLXJhbmdlOwor55m+54WJ5oiQ6Yu8ID4gYmVcLXRlbXBlcmVkXC1pbnRvXC1hXC1zdGVlbDsKK+Wci+WLmeasoeWNvyA+IHVuZGVyXC1zZWNyZXRhcnlcLW9mXC1zdGF0ZTsKK+WNiuS/oeWNiueWkSA+IGhhbGZcLWJlbGlldmVcLFwtaGFsZlwtZG91YnQ7Civmi5TngavnvZDlhZIgPiBkZXRhY2hhYmxlXC1zdG92ZVwtY2hpbW5leTsKK+WPpOW4jOiHmOiqniA+IGFuY2llbnRcLWdyZWVrXC1cKGxhbmd1YWdlXCk7CivljYPntbLokKznuLcgPiBsaW5rZWRcLWluXC1jb3VudGxlc3NcLXdheXM7CivnoLTlnJ/lhbjnpq4gPiBncm91bmRcLWJyZWFraW5nXC1jZXJlbW9ueTsKK+aVmeWtuOapn+aniyA+IGVkdWNhdGlvbmFsXC1vcmdhbml6YXRpb247CivkuI3pgbrkvZnlipsgPiBzcGFyZVwtbm9cLXBhaW5zXC1vclwtZWZmb3J0Owor6KGo56S65pWs5oSPID4gcmVzcGVjdGZ1bFwsXC1zaG93XC1yZXNwZWN0Owor6Lev5Yqg56aP6Z+zID4gZ29zcGVsXC1hY2NvcmRpbmdcLXRvXC1sdWtlOwor6YCa6KiK6KGM5qWtID4gY29tbXVuaWNhdGlvbnNcLWluZHVzdHJ5Owor5pys5L2N5Li7576pID4gc2VsZmlzaFwtZGVwYXJ0bWVudGFsaXNtOwor54K65omA5qyy54K6ID4gZG9cLXdoYXRldmVyXC1vbmVcLXBsZWFzZXM7CivkurrmsJHms5XpmaIgPiBwZW9wbGUnJ3NcLWNvdXJ0XC1cKG9mXC1sYXdcKTsKK+WVhualreapn+aniyA+IGNvbW1lcmNpYWxcLW9yZ2FuaXphdGlvbjsKK+S4jee/vOiAjOmjmyA+IGRpc2FwcGVhclwtd2l0aG91dFwtdHJhY2U7CivnlaLmga3nlaLmlawgPiByZXZlcmVudFwtYW5kXC1yZXNwZWN0ZnVsOwor56eR56CU5Lq65ZOhID4gXChzY2llbnRpZmljXClcLXJlc2VhcmNoZXI7CivpgI/pnLLmtojmga8gPiB0b1wtZGlzY2xvc2VcLWluZm9ybWF0aW9uOwor5Lit5ZyL5pmC5aCxID4gY2hpbmFcLXRpbWVzXC1cKG5ld3NwYXBlclwpOwor5aiB5buJ5pav5aChID4gd2lsbGlhbXNidXJnXC1cKHZpcmdpbmlhXCk7Civkvr/lrpzooYzkuosgPiBhY3RcLWF0XC1vbmUnJ3NcLWRpc2NyZXRpb247CivllYbmpa3nrqHnkIYgPiBidXNpbmVzc1wtYWRtaW5pc3RyYXRpb247Civln7rnpI7pgJ/njocgPiBiYXNpY1wtcmF0ZVwtXChhc1wtaW5cLWlzZG5cKTsKK+aJi+Wvq+itmOWIpSA+IGhhbmR3cml0aW5nXC1yZWNvZ25pdGlvbjsKK+aJi+Wvq+i+r+itmCA+IGhhbmR3cml0aW5nXC1yZWNvZ25pdGlvbjsKK+avlOavlOeahuaYryA+IGNhblwtYmVcLWZvdW5kXC1ldmVyeXdoZXJlOwor5qOE6IiK5o+b5pawID4gdG9cLXR1cm5cLW92ZXJcLWFcLW5ld1wtbGVhZjsKK+S4jeaDheS5i+iriyA+IG15XC1wcmVzdW1wdHVvdXNcLXJlcXVlc3Q7Civpm5npgKPmjqXnq5kgPiBkdWFsXC1hdHRhY2htZW50XC1zdGF0aW9uOwor6KOc5Yqp57WE57mUID4gYXV4aWxpYXJ5XC1vcmdhbml6YXRpb25zOwor5Zue6aGn5q235Y+yID4gdG9cLWxvb2tcLWJhY2tcLWF0XC1oaXN0b3J5Owor6YCa6KiK5Y2U5a6aID4gY29tbXVuaWNhdGlvbnNcLXByb3RvY29sOwor5q2l5bGl57at6ImxID4gaGF2ZVwtZGlmZmljdWx0eVwtd2Fsa2luZzsKK+WFseWQjOevqemBuCA+IGNvbGxhYm9yYXRpdmVcLWZpbHRlcmluZzsKK+Wkp+mpmuWwj+aAqiA+IG11Y2hcLWZ1c3NcLWFib3V0XC1ub3RoaW5nOwor6YCa5L+h5Y2U5a6aID4gY29tbXVuaWNhdGlvbnNcLXByb3RvY29sOwor5YWs5a6J5a6Y5ZOhID4gcHVibGljXC1zYWZldHlcLW9mZmljaWFsczsKK+WCs+i8uOaKgOihkyA+IHRyYW5zbWlzc2lvblwtdGVjaG5vbG9neTsKK+WGsOWkqembquWcsCA+IGFcLXdvcmxkXC1vZlwtaWNlXC1hbmRcLXNub3c7CivmlL/lupzmqZ/mp4sgPiBnb3Zlcm5tZW50XC1vcmdhbml6YXRpb247CivkuI3lj6/nkIbllrsgPiBiZVwtaW1wZXJ2aW91c1wtdG9cLXJlYXNvbjsKK+iBt+alreS4reWtuCA+IHZvY2F0aW9uYWxcLWhpZ2hcLXNjaG9vbDsKK+iHqumjn+WFtuaenCA+IHJlYXBcLXdoYXRcLW9uZVwtaGFzXC1zb3duOwor5LiN6Zyy6IGy6ImyID4gbm90XC1zaG93XC1vbmUnJ3NcLWZlZWxpbmc7CivlpKfnhZ7poqjmma8gPiBkYW1wZW5pbmdcLW9uZScnc1wtc3Bpcml0Owor576F5pu86Kqe5pePID4gcm9tYW5jZVwtbGFuZ3VhZ2VcLWdyb3VwOwor5a2w6IO955Sf5benID4gcHJhY3RpY2VcLW1ha2VzXC1wZXJmZWN0Owor5Ze35Ze35b6F5ZO6ID4gY3J5XC1waXRlb3VzbHlcLWZvclwtZm9vZDsKK+S4jeeXm+S4jeeXkiA+IHNjcmF0Y2hpbmdcLXRoZVwtc3VyZmFjZTsKK+iBr+e2sueSsOWigyA+IG5ldHdvcmtpbmdcLWVudmlyb25tZW50Owor6Kej6YeL5Z+36KGMID4gaW50ZXJwcmV0ZWRcLVwoY29tcHV0ZXJcKTsKK+S4jei/keS6uuaDhSA+IG5vdFwtYW1lbmFibGVcLXRvXC1yZWFzb247CivmlL/msrvmqZ/mp4sgPiBwb2xpdGljYWxcLW9yZ2FuaXphdGlvbjsKK+WPpuecvOebuOeciyA+IHRvXC12aWV3XC1pblwtYVwtbmV3XC1saWdodDsKK+S/oeaBr+aKgOihkyA+IGluZm9ybWF0aW9uXC10ZWNobm9sb2d5Owor5a6J5YWo6ICD5oWuID4gc2VjdXJpdHlcLWNvbnNpZGVyYXRpb247Civkv6Hmga/nrqHnkIYgPiBpbmZvcm1hdGlvblwtbWFuYWdlbWVudDsKK+i5pui5pui3s+i3syA+IGJvdW5jaW5nXC1hbmRcLXZpdmFjaW91czsKK+mAmuS/oeWvhuW6piA+IGNvbW11bmljYXRpb25zXC1kZW5zaXR5Owor5rKS5pyJ5beu5YilID4gdGhlcmVcLWlzXC1ub1wtZGlmZmVyZW5jZTsKK+S4jeiogOiAjOWWuyA+IGl0XC1nb2VzXC13aXRob3V0XC1zYXlpbmc7CivmraXoqr/kuIDoh7QgPiB0b1wtYmVcLXVuaXRlZFwtaW5cLWFjdGlvbjsKK+mAmuioiumAmumBkyA+IGNvbW11bmljYXRpb25zXC1jaGFubmVsOwor5o6h6Kiq6KiY6ICFID4gaW52ZXN0aWdhdGl2ZVwtcmVwb3J0ZXI7Civmr5TovIPogIzoqIAgPiBjb21wYXJhdGl2ZWx5XC1zcGVha2luZzsKK+mboumWi+aVhemEiSA+IHRvXC1sZWF2ZVwtb25lJydcLWhvbWVsYW5kOwor6YCa5L+h57ay57WhID4gY29tbXVuaWNhdGlvbnNcLW5ldHdvcms7CivmlbjlrZfpgJrkv6EgPiBkaWdpdGFsXC1jb21tdW5pY2F0aW9uczsKK+WFseeUoum7qOWToSA+IGNvbW11bmlzdFwtcGFydHlcLW1lbWJlcjsKK+e2sui3r+aetuaniyA+IG5ldHdvcmtcLWluZnJhc3RydWN0dXJlOwor5oqA6KGT5oOF5aCxID4gaW5mb3JtYXRpb25cLXRlY2hub2xvZ3k7Civnvo7lnIvkuYvpn7MgPiB2b2ljZVwtb2ZcLWFtZXJpY2FcLXJhZGlvOwor5qiZ5rqW57WE57mUID4gc3RhbmRhcmRzXC1vcmdhbml6YXRpb247CivnjajmlKzluILloLQgPiB0b1wtbW9ub3BvbGl6ZVwtYVwtbWFya2V0Owor5b2s5b2s5pyJ56auID4gcmVmaW5lZFwtYW5kXC1jb3VydGVvdXM7CivlrozlhajlhbzlrrkgPiBjb21wbGV0ZWx5XC1jb21wYXRpYmxlOwor6KeA5ris6KGb5pifID4gb2JzZXJ2YXRpb25cLXNhdGVsbGl0ZTsKK+S4ieiQrOS4g+WNgyA+IHRoaXJ0eVwtc2V2ZW5cLXRob3VzYW5kOwor5aSn6LWm5ZyL6ZqbID4gYW1uZXN0eVwtaW50ZXJuYXRpb25hbDsKK+aDheWgseWumOWToSA+IGludGVsbGlnZW5jZVwtb2ZmaWNpYWw7Civpm7vno4HlmarogbIgPiBlbGVjdHJvbWFnbmV0aWNcLW5vaXNlOwor6ZW36YCU57ay6LevID4gbG9uZ1wtZGlzdGFuY2VcLW5ldHdvcms7Civmr5ToibLliIbmnpAgPiBjb2xvcmltZXRyaWNcLWFuYWx5c2lzOwor5bqr54i+5b635Lq6ID4ga3VyZGlzaFwtcGVyc29uXHxwZW9wbGU7Civlvq7ou5/lhazlj7ggPiBtaWNyb3NvZnRcLWNvcnBvcmF0aW9uOwor5LiN6K2Y5oqs6IiJID4gZmFpbFwtdG9cLWFwcHJlY2lhdGVcLXNiOwor5bit5Y235Lqe5rSyID4gdG9cLXN3ZWVwXC10aHJvdWdoXC1hc2lhOwor5L2c5qWt55Kw5aKDID4gb3BlcmF0aW5nXC1lbnZpcm9ubWVudDsKK+aZuuaFp+eUouasiiA+IGludGVsbGVjdHVhbFwtcHJvcGVydHk7Civpq5jntJrlrpjlk6EgPiBoaWdoXC1yYW5raW5nXC1vZmZpY2lhbDsKK+WNiuWknOS4ieabtCA+IGluXC10aGVcLWRlcHRoXC1vZlwtbmlnaHQ7Civlj5bmtojnpoHku6QgPiB0b1wtbGlmZVwtYVwtcHJvaGliaXRpb247Civlr6bpmpvmh4nnlKggPiBwcmFjdGljYWxcLWFwcGxpY2F0aW9uOwor55Sf55Si6IO95YqbID4gbWFudWZhY3R1cmluZ1wtYWJpbGl0eTsKK+e4vee1semBuOiIiSA+IHByZXNpZGVudGlhbFwtZWxlY3Rpb247CivkuI3mk4fmiYvmrrUgPiBieVwtZmFpclwtbWVhbnNcLW9yXC1mb3VsOwor5ZyL6Zqb5qiZ5rqWID4gaW50ZXJudGlvbmFsXC1zdGFuZGFyZDsKK+mHkemZteWkp+WtuCA+IHVuaXZlcnNpdHlcLW9mXC1uYW5raW5nOwor55Ww6LOq57ay6LevID4gaGV0ZXJvZ2VuZW91c1wtbmV0d29yazsKK+eZveaJi+i1t+WutiA+IGJ1aWxkXC11cFwtZnJvbVwtbm90aGluZzsKK+iRoeiQhOeJmeiqniA+IHBvcnR1Z3Vlc2VcLVwobGFuZ3VhZ2VcKTsKK+S4gOiHguS5i+WKmyA+IFwobGVuZFwpXC1hXC1oZWxwaW5nXC1oYW5kOwor5LiN5YCr5LiN6aGeID4gbmVpdGhlclwtZmlzaFwtbm9yXC1mb3dsOwor5Z+65pys5Y6f55CGID4gZnVuZGFtZW50YWxcLXByaW5jaXBsZTsKK+aSq+mkiuaIkOS6uiA+IHRvXC1icmluZ1wtdXBcLVwoYVwtY2hpbGRcKTsKK+mAmuS/oeacjeWLmSA+IGNvbW11bmljYXRpb25cLXNlcnZpY2U7CivlnIvnh5/kvIHmpa0gPiBuYXRpb25hbGl6ZWRcLWluZHVzdHJ5Owor5LqM5Y2B5YWr6JmfID4gMjh0aFwtZGF5XC1vZlwtdGhlXC1tb250aDsKK+acrOWbuuaeneamriA+IHdoZW5cLXRoZVwtcm9vdFwtaXNcLWZpcm07CivlgrPovLjoqK3lgpkgPiB0cmFuc21pc3Npb25cLWZhY2lsaXR5Owor5LiN5piv5ZGz5YWSID4gbm90XC10aGVcLXJpZ2h0XC1mbGF2b3VyOwor5pON5L2c55Kw5aKDID4gb3BlcmF0aW5nXC1lbnZpcm9ubWVudDsKK+maqOapn+aZgumWkyA+IHJhbmRvbVwtcGVyaW9kXC1vZlwtdGltZTsKK+WCs+i8uOi3nemboiA+IHRyYW5zbWlzc2lvblwtZGlzdGFuY2U7Civlj6botbfniJDngbYgPiB0b1wtc3RhcnRcLWZyb21cLXNjcmF0Y2g7CivpppbohabmnIPorbAgPiBsZWFkZXJzaGlwXC1jb25mZXJlbmNlOwor5aaC5Ye65LiA6L2NID4gYmVcLXByZWNpc2VseVwtdGhlXC1zYW1lOwor55+u5p2G5ZOB56iuID4gc2hvcnRcLXN0YWxrZWRcLXZhcmlldHk7CivpgYvnrpfnkrDlooMgPiBvcGVyYXRpbmdcLWVudmlyb25tZW50Owor57We55uh6IWm5rGBID4gdG9cLXdyYWNrXC1vbmUnJ3NcLWJyYWluczsKK+WFieejgeein+apnyA+IG1hZ25ldG9cLW9wdGljYWxcLWRyaXZlOwor5ZyL5pyJ5LyB5qWtID4gbmF0aW9uYWxpemVkXC1idXNpbmVzczsKK+e2reWQvueIvuS6uiA+IHVpZ2h1clwtcGVyc29uXHxwZW9wbGU7CivplovpmaTlrbjnsY0gPiB0b1wtZXhwZWxcLWZyb21cLXNjaG9vbDsKK+mmluW4reS7o+ihqCA+IGNoaWVmXC1yZXByZXNlbnRhdGl2ZTsKK+eJqeeQhue1kOaniyA+IHBoeXNpY2FsXC1jb21wb3NpdGlvbjsKK+Wci+acg+itsOmVtyA+IHNwZWFrZXJcLW9mXC10aGVcLWhvdXNlOwor5oeJ55So5bmz5Y+wID4gYXBwbGljYXRpb25cLXBsYXRmb3JtOwor5YyI54mZ5Yip6KqeID4gaHVuZ2FyaWFuXC1cKGxhbmd1YWdlXCk7CivkuI3kv6Hku7vmoYggPiBub1wtY29uZmlkZW5jZVwtbW90aW9uOwor5pS55ZaE6Zec5L+CID4gdG9cLWltcHJvdmVcLXJlbGF0aW9uczsKK+WBnOeBq+WNlOitsCA+IGNlYXNlXC1maXJlXC1hZ3JlZW1lbnQ7CivkuozljYHkuozomZ8gPiAyMlwtbmRcLWRheVwtb2ZcLWFcLW1vbnRoOwor56K65pyJ5YW25LqLID4gXChjb25maXJtXC10b1wtYmVcKVwtdHJ1ZTsKK+Wkp+Wei+S8gealrSA+IGxhcmdlXC1zY2FsZVwtaW5kdXN0cnk7Civkvb/lvpLooYzlgrMgPiBhY3RzXC1vZlwtdGhlXC1hcG9zdGxlczsKK+W/heS4jeWPr+WwkSA+IGFic29sdXRlbHlcLW5lY2Vzc2FyeTsKK+S4jeWcqOipseS4iyA+IGJlXC1ub3RoaW5nXC1kaWZmaWN1bHQ7Civmh4nnlKjou5/ku7YgPiBhcHBsaWNhdGlvblwtc29mdHdhcmU7CivkuqTmj5vmioDooZMgPiBzd2l0Y2hpbmdcLXRlY2hub2xvZ3k7CivnqIvlvI/oqp7oqIAgPiBwcm9ncmFtbWluZ1wtbGFuZ3VhZ2U7CivnmbzooajogbLmmI4gPiB0b1wtaXNzdWVcLWFcLXN0YXRlbWVudDsKK+mbu+iFpuiqnuiogCA+IHByb2dyYW1taW5nXC1sYW5ndWFnZTsKK+mbu+WtkOW3pealrSA+IGVsZWN0cm9uaWNzXC1pbmR1c3RyeTsKK+WPrOmWi+acg+itsCA+IHRvXC1jYWxsXC1hXC1jb25mZXJlbmNlOwor5ZWG5qWt5oeJ55SoID4gYnVzaW5lc3NcLWFwcGxpY2F0aW9uOwor5q+P5rOB5oSI5LiLID4gc3RlYWRpbHlcLWRldGVyaW9yYXRlOwor6LuN5LqL5qmf5qeLID4gbWlsaXRhcnlcLWluc3RpdHV0aW9uOwor5Yik6JmV5q275YiRID4gdG9cLXNlbnRhbmNlXC10b1wtZGVhdGg7CivosqjluaPosrblgLwgPiBjdXJyZW5jeVwtZGV2YWx1YXRpb247CivmjInnhafms5XlvosgPiBhY2NvcmRpbmdcLXRvXC10aGVcLWxhdzsKK+WMl+WbnuatuOe3miA+IHRoZVwtdHJvcGljXC1vZlwtY2FuY2VyOwor6Zu75a2Q5YWD5Lu2ID4gZWxlY3Ryb25pY1wtY29tcG9uZW50Owor57aT5r+f6KGw6YCAID4gXChlY29ub21pY1wpXC1yZWNlc3Npb247CivlhYnkuozmpbXnrqEgPiBsaWdodFwtZW1pdHRpbmdcLWRpb2RlOwor5LiN56mp5bmz6KGhID4gdW5zdGFibGVcLWVxdWlsaWJyaXVtOwor5L+h5oGv6LOH5rqQID4gaW5mb3JtYXRpb25cLXJlc291cmNlOwor5YWt5Y2B5LqU5q2yID4gc2l4dHlcLWZpdmVcLXllYXJzXC1vbGQ7Civmmbrog73lpKfmqJMgPiBpbnRlbGxpZ2VudFwtYnVpbGRpbmc7CivlsJHmlbjmsJHml48gPiBtaW5vcml0eVwtbmF0aW9uYWxpdHk7CivlhajpnaLnpoHmraIgPiBjb21wbGV0ZVwtcHJvaGliaXRpb247CivpqL7ppqzlpKfou4ogPiBtdWxlXC1hbmRcLWhvcnNlXC1jYXJ0czsKK+e2k+a/n+eZvOWxlSA+IGVjb25vbWljXC1kZXZlbG9wbWVudDsKK+mAmuioiuezu+e1sSA+IGNvbW11bmljYXRpb25cLXN5c3RlbTsKK+S4jeS6jOazlemWgCA+IHRoZVwtb25lXC1hbmRcLW9ubHlcLXdheTsKK+eEoeWDueePjeePoCA+IHBlYXJsXC1vZlwtZ3JlYXRcLXByaWNlOwor5pyq5oiQ5bm06ICFID4gbWlub3JcLVwobm90XC1hblwtYWR1bHRcKTsKK+S8iuaWr+iYreWgoSA+IGlzbGFtYWJhZFwtXChwYWtpc3RhblwpOwor5LqM5Y2B5Zub6JmfID4gMjRcLXRoXC1kYXlcLW9mXC1hXC1tb250aDsKK+Wkp+WkseaJgOacmyA+IGdyZWF0bHlcLWRpc3NhcG9pbnRlZDsKK+S8gealrembhuWcmCA+IGluZHVzdHJ5XC1hc3NvY2lhdGlvbjsKK+euoeeQhuaOpeWPoyA+IG1hbmFnZW1lbnRcLWludGVyZmFjZTsKK+aHieeUqOi7n+mrlCA+IGFwcGxpY2F0aW9uXC1zb2Z0d2FyZTsKK+eUn+eUouioreWCmSA+IHByb2R1Y3Rpb25cLWVxdWlwbWVudDsKK+e+qeWLmeaVmeiCsiA+IGN1bXB1bHNvcnlcLWVkdWNhdGlvbjsKK+WCs+i8uOaOp+WItiA+IHRyYW5zbWlzc2lvblwtY29udHJvbDsKK+S4jeaHt+WlveaEjyA+IGhhcmJvdXJcLWV2aWxcLWRlc2lnbnM7CivoqLrmlrflip/og70gPiBkaWFnbm9zdGljXC1mdW5jdGlvbjsKK+WCs+i8uOWqkumrlCA+IHRyYW5zbWlzc2lvblwtbWVkaXVtOwor6LW35q275Zue55SfID4gYXJpc2VcLWZyb21cLXRoZVwtZGVhZDsKK+mrmOmajuiqnuiogCA+IGhpZ2hcLWxldmVsXC1sYW5ndWFnZTsKK+e+juWci+S6uuawkSA+IHRoZVwtYW1lcmljYW5cLXBlb3BsZTsKK+mdouWarumAo+aOpSA+IGNvbm5lY3Rpb25cLW9yaWVudGVkOwor5bCI5qWt5Lq65omNID4gZXhwZXJ0XC1cKGluXC1hXC1maWVsZFwpOwor54Sh57ir6YCj5o6lID4gc2VhbWxlc3NcLWNvbm5lY3Rpb247CivlgrPovLjlqpLos6ogPiB0cmFuc21pc3Npb25cLW1lZGl1bTsKK+WxpOimi+i/reWHuiA+IHRvXC1vY2N1clwtZnJlcXVlbnRseTsKK+e+juWci+S7peWkliA+IG91dHNpZGVcLW9mXC10aGVcLXVcLnNcLjsKK+atpOaZguatpOWIuyA+IGF0XC10aGlzXC12ZXJ5XC1tb21lbnQ7CivlpJrpu6jpgbjoiIkgPiBtdWx0aXBhcnR5XC1lbGVjdGlvbjsKK+WFiee6luihsOa4myA+IG9wdGljYWxcLWF0dGVudWF0aW9uOwor5LiN5Yue6ICM542yID4gcmVhcFwtd2l0aG91dFwtc293aW5nOwor5oqA6KGT5qiZ5rqWID4gdGVjaG5vbG9neVwtc3RhbmRhcmQ7CivplovnmbzpgY7nqIsgPiBkZXZlbG9wbWVudFwtcHJvY2VzczsKK+mAmuS/oeiyoOi8iSA+IGNvbW11bmljYXRpb25zXC1sb2FkOwor5bi46KaP5q2m5ZmoID4gY29udmVudGlvbmFsXC13ZWFwb247CivntbHoqIjntZDmnpwgPiBzdGF0aXN0aWNhbFwtcmVzdWx0czsKK+WPuOepuuimi+aFoyA+IGFcLWNvbW1vblwtb2NjdXJyZW5jZTsKK+S6jOWNgeS4g+iZnyA+IDI3dGhcLWRheVwtb2ZcLWFcLW1vbnRoOwor6KaW6ICM5LiN6KaLID4gdHVyblwtYVwtYmxpbmRcLWV5ZVwtdG87Civpm7vlrZDmlofku7YgPiBlbGVjdHJvbmljXC1kb2N1bWVudDsKK+e1kOani+WKqeipniA+IHN0cnVjdHVyYWxcLXBhcnRpY2xlOwor5a2X5paf5Y+l6YWMID4gd2VpZ2hpbmdcLWV2ZXJ5XC13b3JkOwor5pS/5rK76Zec5L+CID4gcG9saXRpY2FsXC1yZWxhdGlvbnM7Civnm7jkupLlhbzlrrkgPiBtdXR1YWxseVwtY29tcGF0aWJsZTsKK+Wwi+S6i+eUn+mdniA+IHRvXC1sb29rXC1mb3JcLXRyb3VibGU7CivlsI/lr6vlrZfmr40gPiBsb3dlcmNhc2VcLVwobGV0dGVyc1wpOwor566h55CG5Yqf6IO9ID4gbWFuYWdlbWVudFwtZnVuY3Rpb247Civpq5jntJroqp7oqIAgPiBoaWdoXC1sZXZlbFwtbGFuZ3VhZ2U7CivliIbkvYjmjqfliLYgPiBkaXN0cmlidXRlZFwtY29udHJvbDsKK+e2sue1oeaHieeUqCA+IG5ldHdvcmtcLWFwcGxpY2F0aW9uOwor5qmf5qKw57+76K2vID4gbWFjaGluZVwtdHJhbnNsYXRpb247Civou5/ku7bmioDooZMgPiBzb2Z0d2FyZVwtdGVjaG5vbG9neTsKK+WltuayueiPnOiKsSA+IGNyZWFtZWRcLWNhdWxpZmxvd2VyOwor5YWJ55m86YCB5ZmoID4gb3B0aWNhbFwtdHJhbnNtaXR0ZXI7CivntrLntaHnkrDlooMgPiBuZXR3b3JrXC1lbnZpcm9ubWVudDsKK+aEm+S6uuWmguW3sSA+IGxvdmVcLW90aGVyc1wtYXNcLXNlbGY7CivpmL/mi4nlt7TppqwgPiBhbGFiYW1hXC1cKHVcLnNcLnN0YXRlXCk7CivntYLpu57lnLDlnYAgPiBkZXN0aW5hdGlvblwtYWRkcmVzczsKK+e2sui3r+aHieeUqCA+IG5ldHdvcmtcLWFwcGxpY2F0aW9uOwor55uu5qiZ5Zyw5Z2AID4gZGVzdGluYXRpb25cLWFkZHJlc3M7CivkuozljYHlha3omZ8gPiAyNnRoXC1kYXlcLW9mXC1hXC1tb250aDsKK+S4reWci+eVtuWxgCA+IGNoaW5lc2VcLWF1dGhvcml0aWVzOwor5ZCI5oOF5ZCI55CGID4gcmVhc29uYWJsZVwtYW5kXC1mYWlyOwor55m+5L6d55m+6aCGID4gZG9jaWxlXC1hbmRcLW9iZWRpZW50Owor5Y2K6Ieq6ICV6L6yID4gc2VtaVwtdGVuYW50XC1wZWFzYW50Owor57ay6Lev55Kw5aKDID4gbmV0d29ya1wtZW52aXJvbm1lbnQ7Civlj43lvYjlsI7lvYggPiBhbnRpbWlzc2lsZVwtbWlzc2lsZTsKK+eUn+eUouioreaWvSA+IHByb2R1Y3Rpb25cLWZhY2lsaXR5Owor6JGh6JCE54mZ5Lq6ID4gcG9ydHVndWVzZVwtXChwZXJzb25cKTsKK+S4jee1leWmgue4tyA+IGhhbmdpbmdcLWJ5XC1hXC10aHJlYWQ7CivmioDooZPnn6XorZggPiB0ZWNobmljYWxcLWtub3dsZWRnZTsKK+e+juWci+i7jeS6uiA+IGFtZXJpY2FuXC1zZXJ2aWNlbWFuOwor5ZyL6Zqb6LK/5piTID4gaW50ZXJuYXRpb25hbFwtdHJhZGU7CivkurrpgKDoqp7oqIAgPiBhcnRpZmljaWFsXC1sYW5ndWFnZTsKK+S4jeaVl+S5i+WcsCA+IGludmluY2libGVcLXBvc2l0aW9uOwor6Ieq6Lqr5Yip55uKID4gb25lJydzXC1vd25cLWludGVyZXN0czsKK+ertueIreeUouWTgSA+IGNvbXBldGl0aXZlXC1wcm9kdWN0Owor6Z2e5qC45ZyL5a62ID4gbm9uXC1udWNsZWFyXC1jb3VudHJ5Owor5rCj5YCZ54uA5rOBID4gY2xpbWF0aWNcLWNvbmRpdGlvbnM7CivnkrDlvaLntZDmp4sgPiByaW5nXC1jb25maWd1cmF0aW9uOwor6KW/54+t54mZ6KqeID4gc3BhbmlzaFwtXChsYW5ndWFnZVwpOwor5LiA6Iis5L6G6KqqID4gZ2VuZXJhbGx5XC1zcGVha2luZzsKK+mmluiFpuacg+aZpCA+IGxlYWRlcnNoaXBcLW1lZXRpbmc7Civph43opoHllY/poYwgPiBhblwtaW1wb3J0YW50XC1pc3N1ZTsKK+mgmOWFiOWcsOS9jSA+IGxlYWRcKGluZ1wpXC1wb3NpdGlvbjsKK+S/oeaBr+ezu+e1sSA+IGluZm9ybWF0aW9uXC1zeXN0ZW07CivnqK7ml4/muIXmtJcgPiBcImV0aG5pY1wtY2xlYW5zaW5nXCI7CivkuZLkuZPnkIPmqq8gPiB0YWJsZVwtdGVubmlzXC10YWJsZTsKK+mdnuW4uOWatOWOsiA+IHRvXC1wdW5pc2hcLXNldmVyZWx5Owor5YWn6YOo57WQ5qeLID4gaW50ZXJuYWxcLXN0cnVjdXRyZTsKK+aVuOaTmumAmuS/oSA+IGRhdGFcLWNvbW11bmljYXRpb247CivpnZ7luLjmhJ/orJ0gPiBleHRyZW1lbHlcLWdyYXRlZnVsOwor5YWL6ZqG5oqA6KGTID4gY2xvbmluZ1wtdGVjaG5vbG9neTsKK+mbu+WtkOe2sue1oSA+IGVsZWN0cm9uaWNcLW5ldHdvcms7Civnmb3purXmm7jnlJ8gPiBwYWxlXC1mYWNlZFwtc2Nob2xhcjsKK+iyoeWLmei7n+S7tiA+IGZpbmFuY2lhbFwtc29mdHdhcmU7Civopb/nj63niZnmlocgPiBzcGFuaXNoXC1cKGxhbmd1YWdlXCk7Civlj6Tlhbjoqp7oqIAgPiBjbGFzc2ljYWxcLWxhbmd1YWdlOwor5YWp5YCL5Lit5ZyLID4gdHdvXC1jaGluYVwtXChwb2xpY3lcKTsKK+WkluS+huaKleizhyA+IGZvcmVpZ25cLWludmVzdG1lbnQ7CivlnJ/ogLPlhbboqp4gPiB0dXJraXNoXC1cKGxhbmd1YWdlXCk7CivkuI3mraPkuYvpoqggPiB1bmhlYWx0aHlcLXRlbmRlbmN5Owor6ZuG5oiQ6Zu76LevID4gaW50ZWdyYXRlZFwtY2lyY3VpdDsKK+mWiemXnOaUv+etliA+IGNsb3NlZFwtZG9vclwtcG9saWN5Owor57ay57Wh5oqA6KGTID4gbmV0d29ya1wtdGVjaG5vbG9neTsKK+S4reWci+aUv+W6nCA+IGNoaW5lc2VcLWdvdmVybm1lbnQ7Civku6TniYznkrDntrIgPiB0b2tlblwtcmluZ1wtbmV0d29yazsKK+Wkp+aYjum8jum8jiA+IGFcLWdyYW5kXC1yZXB1dGF0aW9uOwor6LK/5piT57WE57mUID4gdHJhZGVcLW9yZ2FuaXphdGlvbjsKK+mBjeWcsOmWi+iKsSA+IGJsb3Nzb21cLWV2ZXJ5d2hlcmU7CivntrLntaHnrqHnkIYgPiBuZXR3b3JrXC1tYW5hZ2VtZW50Owor6auY6YCf57ay57WhID4gaGlnaFwtc3BlZWRcLW5ldHdvcms7Civmm7jpnaLoqLHlj68gPiB3cml0dGVuXC1wZXJtaXNzaW9uOwor6IGv5ZCI5YWs5aCxID4gam9pbnRcLWFubm91bmNlbWVudDsKK+eglOeptuapn+aniyA+IHJlc2VhcmNoXC1pbnN0aXR1dGU7CivkvZvomK3oipLoqp4gPiBmbGVtaXNoXC1cKGxhbmd1YWdlXCk7CivlnIvmnIPorbDlk6EgPiBtZW1iZXJcLW9mXC1jb25ncmVzczsKK+acgOi/keW5vuW5tCA+IHRoZVwtbGFzdFwtZmV3XC15ZWFyczsKK+eyvuewoemWi+aUryA+IHRvXC1yZWR1Y2VcLXNwZW5kaW5nOwor5LiN572u5Y+v5ZCmID4gZGVjbGluZVwtdG9cLWNvbW1lbnQ7CivkuInop5LohbnluLYgPiBhdGhsZXRpY1wtc3VwcG9ydGVyOwor6KGb55Sf6Kit5YKZID4gc2FuaXRhcnlcLWVxdWlwbWVudDsKK+mAoOaIkOWVj+mhjCA+IHRvXC1jcmVhdGVcLWFuXC1pc3N1ZTsKK+e4veeahOS+huiqqiA+IGdlbmVyYWxseVwtc3BlYWtpbmc7CivoibLmg4XlsI/oqqogPiBwb3Jub2dyYXBoaWNcLW5vdmVsOwor6LK05aaD6YaJ6YWSID4gdGhlXC1kcnVua2VuXC1iZWF1dHk7Civpm7vlrZDkv6HnrrEgPiBlbGVjdHJvbmljXC1tYWlsYm94Owor5paw5Yqg5Z2h5Lq6ID4gc2luZ2Fwb3JlYW5cLXBlcnNvbjsKK+mpmua/pOmnrea1qiA+IHBlcmlsb3VzXC1zaXR1YXRpb247CivlpKflipvnmbzlsZUgPiB2aWdvcm91c1wtZXhwYW5zaW9uOwor5pyN5YuZ6KaP56ugID4gc2VydmljZVwtcmVndWxhdGlvbjsKK+erreeboeWFqOWKmyA+IHRvXC1zcGFyZVwtbm9cLWVmZm9ydDsKK+S4jeaKmOS4jeaJoyA+IGFcLWh1bmRyZWRcLXBlclwtY2VudDsKK+enkeeglOaoo+apnyA+IHJlc2VhcmNoXC1wcm90b3R5cGU7CivljYDln5/ntrLot68gPiBsb2NhbFwtYXJlYVwtbmV0d29yazsKK+eZvOmAgeWKn+eOhyA+IHRyYW5zbWlzc2lvblwtcG93ZXI7CivmlL/lupzorablkYogPiBnb3Zlcm5tZW50XC13YXJuaW5nOwor5qC46IO95oqA6KGTID4gbnVjbGVhclwtdGVjaG5vbG9neTsKK+aEj+Wkp+WIqeiqniA+IGl0YWxpYW5cLVwobGFuZ3VhZ2VcKTsKK+WMl+S6rOWkp+WtuCA+IGJlaWppbmdcLXVuaXZlcnNpdHk7CivljYDln5/ntrLntaEgPiBsb2NhbFwtYXJlYVwtbmV0d29yazsKK+e2sue1oeenkeaKgCA+IG5ldHdvcmtcLXRlY2hub2xvZ3k7Civoga/pgqbmlL/lupwgPiBmZWRlcmFsXC1nb3Zlcm5tZW50Owor6Zu76IWm5qWt6ICFID4gc29mdHdhcmVcLWRldmVsb3BlcjsKK+mAsuihjOe3qOeoiyA+IGV4ZWN1dGFibGVcLXByb2dyYW07CivomZvmk6zpgKPmjqUgPiB2aXJ0dWFsXC1jb25uZWN0aW9uOwor5a6i5oi25oeJ55SoID4gY2xpZW50XC1hcHBsaWNhdGlvbjsKK+S4jemaqOaEj+iCjCA+IGludm9sdW50YXJ5XC1tdXNjbGU7CivmjqHlj5bmjqrmlr0gPiB0b1wtYWRvcHRcLWFcLW1lYXN1cmU7Civlk4jkvZvlpKflrbggPiBoYXJ2YXJkXC11bml2ZXJzaXR5Owor57ay566h57O757WxID4gbmV0d29ya1wtbWFuYWdlbWVudDsKK+aal+e3muWFieitnCA+IGRhcmtcLWxpbmVcLXNwZWN0cnVtOwor6Zu76KaW56+A55uuID4gdGVsZXZpc2lvblwtcHJvZ3JhbTsKK+S4reWci+S6uuawkSA+IHRoZVwtY2hpbmVzZVwtcGVvcGxlOwor57Ch55+t5LuL57S5ID4gYnJpZWZcLWludHJvZHVjdGlvbjsKK+a1t+eBo+aIsOeIrSA+IFwocGVyc2lhblwpXC1ndWxmXC13YXI7CivlnLDnkIPlpKfmsKMgPiBlYXJ0aCcnc1wtYXRtb3NwaGVyZTsKK+ewoeimgeS7i+e0uSA+IGJyaWVmXC1pbnRyb2R1Y3Rpb247CivmnI3li5nos6rph48gPiBxdWFsaXR5XC1vZlwtc2VydmljZTsKK+S4jeaUu+iHquegtCA+IGNvbGxhcHNlXC1vZlwtaXRzZWxmOwor5paH5YyW5YKz57WxID4gY3VsdHVyYWxcLXRyYWRpdGlvbjsKK+e2sue1oemBt+enuyA+IG5ldHdvcmtcLW1pZ3JhdGlvbjsKK+mbu+iFpui7n+S7tiA+IGNvbXB1dGVyXC1zb2Z0d2FyZTsKK+izh+aWmeWCs+i8uCA+IGRhdGFcLXRyYW5zbWlzc2lvbjsKK+Wci+mYsumDqOmVtyA+IGRlZmVuY2VcLXNlY3JldGFyeTsKK+W3qOWkp+Wjk+WKmyA+IGVub3Jtb3VzXC1wcmVzc3VyZTsKK+aVuOaTmuWCs+i8uCA+IGRhdGFcLXRyYW5zbWlzc2lvbjsKK+aUv+ayu+awo+WAmSA+IHBvbGl0aWNhbFwtY2xpbWF0ZTsKK+W7o+Wfn+e2sui3ryA+IHdpZGVcLWFyZWFcLW5ldHdvcms7CivmlZnlj4vlpKfmnIMgPiBjaHVyY2hcLWNvbmZlcmVuY2U7Civou43kuovlipvph48gPiBtaWxpdGFyeVwtc3RyZW5ndGg7Civpm7voqbHmnI3li5kgPiB0ZWxlcGhvbmVcLXNlcnZpY2U7CivpmL/mi4nkvK/oqp4gPiBhcmFiaWNcLVwobGFuZ3VhZ2VcKTsKK+aUr+afseeUoualrSA+IG1haW5zdGF5XC1pbmR1c3RyeTsKK+WkmuermeWcsOWdgCA+IG11bHRpY2FzdFwtYWRkcmVzczsKK+e2k+a/n+WuieWFqCA+IGVjb25vbWljXC1zZWN1cml0eTsKK+WkluS6pOmiqOazoiA+IGRpcGxvbWF0aWNcLWNyaXNpczsKK+mbu+ipsee2sui3ryA+IHRlbGVwaG9uZVwtbmV0d29yazsKK+WPjemBjuS+huiqqiA+IG9uXC10aGVcLW90aGVyXC1oYW5kOwor5q2Q5rSy6Kqe6KiAID4gZXVyb3BlYW5cLWxhbmd1YWdlOwor57ay57Wh6Kit5YKZID4gbmV0d29ya1wtZXF1aXBtZW50Owor5pel55uK5aKe5YqgID4gdG9cLWluY3JlYXNlXC1kYWlseTsKK+e2k+a/n+WKm+mHjyA+IGVjb25vbWljXC1zdHJlbmd0aDsKK+iuiuacrOWKoOWOsiA+IGJlY29tZVwtYWdncmF2YXRlZDsKK+WFiee6luaOpeWPoyA+IG9wdGljYWxcLWludGVyZmFjZTsKK+WVhualreihjOeCuiA+IGJ1c2luZXNzXC1hY3Rpdml0eTsKK+i7jeiyu+mWi+aUryA+IG1pbGl0YXJ5XC1zcGVuZGluZzsKK+i7n+S7tuW5s+iHuiA+IHNvZnR3YXJlXC1wbGF0Zm9ybTsKK+aMieWclue0oumppSA+IHRyeVwtdG9cLWxvY2F0ZVwtc3RoOwor5biM5Lyv5L6G6KqeID4gaGVicmV3XC1cKGxhbmd1YWdlXCk7CivplovnmbzpgLHmnJ8gPiBkZXZlbG9wbWVudFwtY3ljbGU7CivpmL/mi4nkvK/mlocgPiBhcmFiaWNcLVwobGFuZ3VhZ2VcKTsKK+aIsOeVpeWkpeS8tCA+IHN0cmF0ZWdpY1wtcGFydG5lcjsKK+mdnOiEiOWQuOavkiA+IGludHJhdmVuZW91c1wtZHJ1ZzsKK+eEoeacn+W+kuWIkSA+IGxpZmVcLWltcHJpc29ubWVudDsKK+eZvuWIhuS5i+eZviA+IGFcLWh1bmRyZWRcLXBlcmNlbnQ7CivokIrmuqvmlq/ln7ogPiBcKG1vbmljYVwpXC1sZXdpbnNreTsKK+WCs+i8uOacjeWLmSA+IHRyYW5zcG9ydFwtc2VydmljZTsKK+e2nOWQiOW4g+e3miA+IGludGVncmF0ZWRcLXdpcmluZzsKK+WCs+i8uOmAmumBkyA+IHRyYW5zcG9ydFwtY2hhbm5lbDsKK+aUv+W6nOmDqOmWgCA+IGdvdmVybm1lbnRcLWJyYW5jaDsKK+aWsOiBnumAseWIiiA+IG5ld3N3ZWVrXC1tYWdhemluZTsKK+ebtOaOpeertueIrSA+IGRpcmVjdFwtY29tcGV0aXRvcjsKK+mGq+eZgue2k+mplyA+IG1lZGljYWxcLWV4cGVydGlzZTsKK+W7o+aSreWcsOWdgCA+IGJyb2FkY2FzdFwtYWRkcmVzczsKK+eUn+eJqeatpuWZqCA+IGJpb2xvZ2ljYWxcLXdlYXBvbjsKK+aal+eEoeWkqeaXpSA+IGNvbXBsZXRlXC1kYXJrbmVzczsKK+mrmOe0mueglOeptiA+IGFkdmFuY2VkXC1yZXNlYXJjaDsKK+iHquS4u+ezu+e1sSA+IGF1dG9ub21vdXNcLXN5c3RlbTsKK+eZvemHkea8ouWuriA+IGJ1Y2tpbmdoYW1cLXBhbGFjZTsKK+mBi+ihjOeLgOazgSA+IG9wZXJhdGlvbmFsXC1zdGF0ZTsKK+WbsOmbo+WcqOaWvCA+IHRoZVwtcHJvYmxlbVwtaXNcLlwuXC47Civml6XogLPmm7zoqp4gPiBnZXJtYW5pY1wtbGFuZ3VhZ2U7CivlgrPovLjljZTlrpogPiB0cmFuc2ZlclwtcHJvdG9jb2w7CivlpKfliIDpl4rmlqcgPiBib2xkXC1hbmRcLWRlY2lzaXZlOwor54m55Yil5b6F6YGHID4gc3BlY2lhbFwtdHJlYXRtZW50Owor5bCI55So57ay6LevID4gZGVkaWNhdGVkXC1uZXR3b3JrOwor5pWY5Yip5Lqe5paHID4gc3lyaWFjXC1cKGxhbmd1YWdlXCk7CivlgrPovLjpgJ/njocgPiB0cmFuc21pc3Npb25cLXJhdGU7CivkuI3mraHogIzmlaMgPiBwYXJ0XC1vblwtYmFkXC10ZXJtczsKK+S4reiPr+awkeWciyA+IHJlcHVibGljXC1vZlwtY2hpbmE7CivkuKbpp5XpvYrpqYUgPiBydW5cLW5lY2tcLWFuZFwtbmVjazsKK+mbo+S7peaHieS7mCA+IGhhcmRcLXRvXC1kZWFsXC13aXRoOwor56Gs5Lu25bmz6Ie6ID4gaGFyZHdhcmVcLXBsYXRmb3JtOwor5a6Y5pa56Kqe6KiAID4gb2ZmaWNpYWxcLWxhbmd1YWdlOwor5YyX5Lqs6L+R6YOKID4gc3VidXJiXC1vZlwtYmVpamluZzsKK+S4gOiIrOWOn+WJhyA+IGdlbmVyYWxcLXByaW5jaXBsZTsKK+WwhOmgu+W5suaTviA+IHJhZGlvXC1pbnRlcmZlcmVjZTsKK+Wbm+mdouWFq+aWuSA+IGluXC1hbGxcLWRpcmVjdGlvbnM7CivlnIvlrrblronlhaggPiBuYXRpb25hbFwtc2VjdXJpdHk7CivmtbfmtIvmuqvluqYgPiBvY2VhblwtdGVtcGVyYXR1cmU7CivntrLpmpvljZTlrpogPiBpbnRlcm5ldFwtcHJvdG9jb2w7CivlpJbkuqTpl5zkv4IgPiBmb3JlaWduXC1yZWxhdGlvbnM7Civlt7TlhYvlpI/osawgPiBiZXJrc2hpcmVcLVwoc3dpbmVcKTsKK+S4jeayu+S5i+eXhyA+IGluY3VyYWJsZVwtZGlzZWFzZTsKK+alreeVjOaomea6liA+IGluZHVzdHJ5XC1zdGFuZGFyZDsKK+mZuOWfuuWwjuW9iCA+IGxhbmRcLWJhc2VkXC1taXNzbGU7Civopb/nlarpm4Xmm7ggPiBib29rXC1vZlwtemVwaGFuaWFoOwor5bCI5a626KmV6KuWID4gZXhwZXJ0XC1jb21tZW50YXJ5Owor5ZqH5b6X55m85oqWID4gdHJlbWJsZVwtd2l0aFwtZmVhcjsKK+Wbm+mWgOi9jui7iiA+IHNlZGFuXC1cKG1vdG9yXC1jYXJcKTsKK+aEm+S4jemHi+aJiyA+IGZvbmRsZVwtYWRtaXJpbmdseTsKK+W+numgreWIsOiFsyA+IGZyb21cLWhlYWRcLXRvXC1mb290Owor6LuN5LqL5a+m5YqbID4gbWlsaXRhcnlcLXN0cmVuZ3RoOwor5buj5pKt57ay6LevID4gYnJvYWRjYXN0XC1uZXR3b3JrOwor56yo5Y+j5ouZ6IiMID4gYXdrd2FyZFwtaW5cLXNwZWVjaDsKK+W3tOaWr+WFi+iqniA+IGJhc3F1ZVwtXChsYW5ndWFnZVwpOwor6I+v5YyX5bmz5Y6fID4gbm9ydGhcLWNoaW5hXC1wbGFpbjsKK+aVkeaBqeioiOWKgyA+IHBsYW5cLW9mXC1zYWx2YXRpb247CivoiKrnqbrmr43oiaYgPiBhaXJjcmFmdFwtY2FycmllcjsKK+S4reWci+Wkp+mZuCA+IGNoaW5lc2VcLW1haW5sYW5kOwor5b2x5YOP5pyD6K2wID4gdmlkZW9cLWNvbmZlcmVuY2U7CivmgrLmraHpm6LlkIggPiBqb3lzXC1hbmRcLXNvcnJvd3M7Civnmb7ph4zmjJHkuIAgPiBvbmVcLWluXC1hXC1odW5kcmVkOwor6Kqe5rOV6KGT6KqeID4gZ3JhbW1hdGljYWxcLXRlcm07Civmm7Tpq5jmgKfog70gPiBoaWdoXC1wZXJmb3JtYW5jZTsKK+i7jeS6i+enkeWtuCA+IG1pbGl0YXJ5XC1zY2llbmNlOwor5Zmo5a6Y56e75q6WID4gb3JnYW5cLXRyYW5zcGxhbnQ7CivlvbHlg4/omZXnkIYgPiBpbWFnZVwtcHJvY2Vzc2luZzsKK+S6uuS6i+mDqOmWgCA+IHBlcnNvbm5lbFwtb2ZmaWNlOwor5r2b5Zyo5aiB6ISFID4gcG90ZW50aWFsXC10aHJlYXQ7CivntbHoqIjmlbjmk5ogPiBzdGF0aXN0aWNhbFwtZGF0YTsKK+eJueWumuWQq+e+qSA+IHNwZWNpZmljXC1tZWFuaW5nOwor6YeR6J6N57O757WxID4gZmluYW5jaWFsXC1zeXN0ZW07CivlsI7oh7TmrbvkuqEgPiB0b1wtbGVhZFwtdG9cLWRlYXRoOwor5p2/5LiK6YeY6YeYID4gdGhhdFwtY2xpbmNoZXNcLWl0Owor6Zu76IWm5LyB5qWtID4gY29tcHV0ZXJcLWNvbXBhbnk7CivllInogbLlmIbmsKMgPiBoZWF2ZVwtZGVlcFwtc2lnaHM7CivkuI3lpb3mhI/mgJ0gPiBmZWVsXC1lbWJhcnJhc3NlZDsKK+ato+W4uOW3peS9nCA+IG5vcm1hbFwtb3BlcmF0aW9uOwor5YKz55yf55m86YCBID4gZmF4XC10cmFuc21pc3Npb247Civmk43kvZzns7vntbEgPiBvcGVyYXRpbmdcLXN5c3RlbTsKK+WCs+i8uOWqkueVjCA+IHRyYW5zcG9ydFwtbWV0aG9kOwor56e75YuV6Zu76KmxID4gbW9iaWxlXC10ZWxlcGhvbmU7CivntrLntaHnm7TlvpEgPiBuZXR3b3JrXC1kaWFtZXRlcjsKK+aIkOe+pOe1kOmaiiA+IGluXC1sYXJnZVwtbnVtYmVyczsKK+eEoeaJgOS4jeizoyA+IHRvXC1zZWxsXC1hbnl0aGluZzsKK+mAmueUqOmbu+WZqCA+IGdlbmVyYWxcLWVsZWN0cmljOwor5pyd6a6u5Y2K5bO2ID4ga29yZWFuXC1wZW5pbnN1bGE7CivmnInpl5zkurrlo6sgPiBwZXJzb25zXC1pbnZvbHZlZDsKK+iAtuWIqeexs+abuCA+IGJvb2tcLW9mXC1qZXJlbWlhaDsKK+mHkeiejeW4guWgtCA+IGZpbmFuY2lhbFwtbWFya2V0Owor5YWp5bK45bCN6KmxID4gYmlsYXRlcmlhbFwtdGFsa3M7CivkuI3ntpPkuYvoq4cgPiBhYnN1cmRcLXN0YXRlbWVudDsKK+i3r+eUseWNlOWumiA+IHJvdXRpbmdcLXByb3RvY29sOwor57ay6Lev5bmz5Y+wID4gbmV0d29ya1wtcGxhdGZvcm07CivlhYnmqqLmuKzlmaggPiBvcHRpY2FsXC1kZXRlY3RvcjsKK+mbu+iFpue2sui3ryA+IGNvbXB1dGVyXC1uZXR3b3JrOwor5rOi54i+5aSa5rayID4gYm9yZGVhdXhcLW1peHR1cmU7CivnmbzpgZTlnIvlrrYgPiBkZXZlbG9wZWRcLW5hdGlvbjsKK+W3sue2k+mAsuihjCA+IGFscmVhZHlcLXVuZGVyd2F5Owor5YKz6YCB5pyN5YuZID4gZGVsaXZlcnlcLXNlcnZpY2U7CivoroDogIXkvobkv6EgPiByZWFkZXInJ3NcLWxldHRlcnM7Civlk4jlt7TosLfmm7ggPiBib29rXC1vZlwtaGFiYWtrdWs7Civnmb3lo4Hlvq7nkZUgPiBhXC1zbGlnaHRcLWJsZW1pc2g7CivljYHlub7lgIvmnIggPiB0ZW5cLW1vbnRoc1wtb3JcLXNvOwor5LiN5Yqg5oCd57SiID4gd2l0aG91dFwtdGhpbmtpbmc7Civllq7mqKHlhYnnupYgPiBzaW5nbGVtb2RlXC1maWJlcjsKK+acgOWkp+iDveWKmyA+IG1heGltdW1cLWNhcGFjaXR5Owor5pyJ57ea6Zu76KaWID4gY2FibGVcLXRlbGV2aXNpb247CivkuI3ororos4fmnKwgPiBjb25zdGFudFwtY2FwaXRhbDsKK+mbu+ipseS/oeiZnyA+IHRlbGVwaG9uZVwtc2lnbmFsOwor5aiB54i+5aOr6KqeID4gd2Vsc2hcLVwobGFuZ3VhZ2VcKTsKK+eUt+WtkOexg+eQgyA+IG1lbicnc1wtYmFza2V0YmFsbDsKK+iBr+mCpuWkp+aokyA+IGZlZGVyYWxcLWJ1aWxkaW5nOwor5pmu6YCa5ZWP6aGMID4gY29tbW9uXC1xdWVzdGlvbnM7CivovLjpgIHlqpLku4sgPiB0cmFuc3BvcnRcLW1lZGl1bTsKK+mYsuihm+atpuWZqCA+IGRlZmVuc2l2ZVwtd2VhcG9uOwor5L2c5qWt57O757WxID4gb3BlcmF0aW5nXC1zeXN0ZW07Civpq5TogrLkuYvnqpcgPiB3aW5kb3dcLW9uXC1zcG9ydHM7Civmm7jlr6voqp7oqIAgPiB3cml0dGVuXC1sYW5ndWFnZTsKK+WFseS6q+W4tuWvrCA+IHNoYXJlZFwtYmFuZHdpZHRoOwor5paH5YyW6Zqc56SZID4gY3VsdHVyYWxcLWJhcnJpZXI7Civnm7TmjqXlvbHpn78gPiBkaXJlY3RcLWluZmx1ZW5jZTsKK+iIh+atpOWQjOaZgiA+IGF0XC10aGVcLXNhbWVcLXRpbWU7CivkuLvopoHkvobmupAgPiBwcmluY2lwbGVcLXNvdXJjZTsKK+S6uuawkeWFrOekviA+IHBlb3BsZScnc1wtY29tbXVuZTsKK+S4i+mdouiri+eciyA+IHBsZWFzZVwtc2VlXC1iZWxvdzsKK+mHkeiejemiqOazoiA+IGZpbmFuY2lhbFwtY3Jpc2lzOwor57ay57Wh5Y2U6K2wID4gbmV0d29ya1wtcHJvdG9jb2w7Civnmb3ooaPmiLDlo6sgPiB3YXJyaW9yXC1pblwtd2hpdGU7CivlronlpoLno5Dnn7MgPiBhc1wtc29saWRcLWFzXC1yb2NrOwor5pWF6Zqc5o6S6ZmkID4gZmF1bHRcLXJlc29sdXRpb247Civph5Hono3mlLnpnakgPiBmaW5hbmNpYWxcLXJlZm9ybTsKK+ihjOWLlembu+ipsSA+IG1vYmlsZVwtdGVsZXBob25lOwor6ZuM5oCn5o6l5Y+jID4gZmVtYWxlXC1jb25uZWN0b3I7Civlv4Poh5/np7vmrpYgPiBoZWFydFwtdHJhbnNwbGFudDsKK+mBmeaOp+aTjeS9nCA+IHJlbW90ZVwtb3BlcmF0aW9uOwor57Ch5Zau55qE6KqqID4gdG9cLXB1dFwtaXRcLXNpbXBseTsKK+WFieaOpeaUtuWZqCA+IG9wdGljYWxcLXJlY2VpdmVyOwor5qmf5qKw6Kqe6KiAID4gbWFjaGluZVwtbGFuZ3VhZ2U7Civog6Hlv5fmmI7luIIgPiBob1wtY2hpXC1taW5oXC1jaXR5Owor5LiN55+l5omA5LqRID4gbm90XC1rbm93XC13aGF0XC1zYjsKK+mbu+iFpuWFrOWPuCA+IGNvbXB1dGVyXC1jb21wYW55Owor6IGv5bit5pyD6K2wID4gam9pbnRcLWNvbmZlcmVuY2U7CivkuqTmj5vntrLot68gPiBzd2l0Y2hlZFwtbmV0d29yazsKK+mqqOW5uee2sui3ryA+IGJhY2tib25lXC1uZXR3b3JrOwor6Luf5Lu25LyB5qWtID4gc29mdHdhcmVcLWNvbXBhbnk7Civlipvph4/lnYfooaEgPiBiYWxhbmNlXC1vZlwtcG93ZXI7Civmlr3mtJfntITnv7AgPiBqb2huXC10aGVcLWJhcHRpc3Q7CivlsLzluIznsbPoqJggPiBib29rXC1vZlwtbmVoZW1pYWg7CivloLHntJnloLHlsI4gPiBuZXdzcGFwZXJcLXJlcG9ydDsKK+mHkeiejeWNseapnyA+IGZpbmFuY2lhbFwtY3Jpc2lzOwor6Zui6ZaL5YyX5LqsID4gdG9cLWxlYXZlXC1iZWlqaW5nOwor5bm+5LmO5a6M5YWoID4gYWxtb3N0XC1lbnRpcmVseTsKK+S/oeaBr+aZguS7oyA+IGluZm9ybWF0aW9uXC1hZ2U7CivnlKLlk4HntpPnkIYgPiBwcm9kdWN0XC1tYW5hZ2VyOwor6LuN5LqL5aiB6ISFID4gbWlsaXRhcnlcLXRocmVhdDsKK+e2sui3r+acjeWLmSA+IG5ldHdvcmtcLXNlcnZpY2U7CivnoJTnqbbkuK3lv4MgPiByZXNlYXJjaFwtY2VudGVyOwor5bSH5ouc5YSA5byPID4gd29yc2hpcFwtc2VydmljZTsKK+aWueiIiOacquiJviA+IHRvXC1iZVwtdW5mb2xkaW5nOwor6ZuZ6YKK6LK/5piTID4gYmlsYXRlcmFsXC10cmFkZTsKK+i7jeS6i+mDqOmWgCA+IG1pbGl0YXJ5XC1icmFuY2g7CivpmaTmraTkuYvlpJYgPiBhcGFydFwtZnJvbVwtdGhpczsKK+WkqumZveWFrOWPuCA+IHN1blwtY29ycG9yYXRpb247CivlpJblnIvos4fmnKwgPiBmb3JlaWduXC1jYXBpdGFsOwor6LGQ5a+M5aSa5b2pID4gcmljaGx5XC1jb2xvcmZ1bDsKK+S4jeeZveS5i+WGpCA+IHVucmlnaHRlZFwtd3Jvbmc7CivmiJLlgpnmo67lmrQgPiBoZWF2aWx5XC1ndWFyZGVkOwor5Y2K6YCU6ICM5buiID4gZ2l2ZVwtdXBcLWhhbGZ3YXk7Civmibnph4/nlJ/nlKIgPiB0b1wtbWFzc1wtcHJvZHVjZTsKK+aTjeS9nOmAn+eOhyA+IG9wZXJhdGluZ1wtc3BlZWQ7Civoga/lkIjnmbzooaggPiBqb2ludFwtc3RhdGVtZW50Owor5LiN5a6M5YWo6JGJID4gaW5jb21wbGV0ZVwtbGVhZjsKK+aguOWPjeaHieWghiA+IG51Y2xlYXJcLXJlYWN0b3I7CivntpPmv5/mlLnpnakgPiBlY29ub21pY1wtcmVmb3JtOwor5Y2K5aOB5rGf5bGxID4gaGFsZlwtb2ZcLWNvdW50cnk7Civlj6Tlhbjpn7PmqIIgPiBjbGFzc2ljYWxcLW11c2ljOwor5LiN5Y+v5aSa5b6XID4gaGFyZFwtdG9cLWNvbWVcLWJ5Owor6YeN5paw6ZaL5aeLID4gcmVzdW1lXCxcLXJlc3RhcnQ7Civpm7vlrZDpg7Xku7YgPiBlbGVjdHJvbmljXC1tYWlsOwor57aT5r+f5YmN6YCUID4gZWNvbm9taWNcLWZ1dHVyZTsKK+W3peiugOWtuOagoSA+IHRoZVwtcmVmb3JtYXRvcnk7CivlmrTph43pl5zliIcgPiBzZXJpb3VzXC1jb25jZXJuOwor57aT5r+f5Y2x5qmfID4gZWNvbm9taWNcLWNyaXNpczsKK+WLleaFi+WKqeipniA+IGFzcGVjdFwtcGFydGljbGU7CivmmrTot7PlpoLpm7cgPiBzdGFtcFwtd2l0aFwtZnVyeTsKK+S7peilv+e1kOabuCA+IGJvb2tcLW9mXC1lemVraWVsOwor5YyW5a245q2m5ZmoID4gY2hlbWljYWxcLXdlYXBvbjsKK+eZu+iomOeUqOaItiA+IHJlZ2lzdGVyZWRcLXVzZXI7CivlmrTph43llY/poYwgPiBzZXJpb3VzXC1wcm9ibGVtOwor55W25YuZ5LmL5oClID4gdXJnZW50XC1wcmlvcml0eTsKK+i7n+S7tuezu+e1sSA+IHNvZnR3YXJlXC1zeXN0ZW07Civos7zniankuK3lv4MgPiBzaG9wcGluZ1wtY2VudGVyOwor5aOB5aOY5qOu5Zq0ID4gY2xvc2VseVwtZ3VhcmRlZDsKK+eRquaLieWfuuabuCA+IGJvb2tcLW9mXC1tYWxhY2hpOwor6LK/5piT5aSl5Ly0ID4gdHJhZGluZ1wtcGFydG5lcjsKK+aciOS7veacg+itsCA+IG1vbnRobHlcLW1lZXRpbmc7CivnoJTnqbbloLHlkYogPiByZXNlYXJjaFwtcmVwb3J0Owor5YWI6YCy5q2m5ZmoID4gYWR2YW5jZWRcLXdlYXBvbjsKK+Wkp+eZvOmbt+mchiA+IGV4dHJlbWVseVwtYW5ncnk7Civnvo7lnIvmlL/lupwgPiB1XC5zXC5cLWdvdmVybm1lbnQ7CivloZ7niL7nibnoqp4gPiBjZWx0aWNcLWxhbmd1YWdlOwor5o6q6L6t5by356GsID4gc3Ryb25nbHlcLXdvcmRlZDsKK+WFrOWPuOacg+itsCA+IGNvbXBhbnlcLW1lZXRpbmc7CivmlLnororlvaLlg48gPiB0cmFuc2ZpZ3VyYXRpb247Civnmb7lhZLlhavljYEgPiBhYm91dFwtYVwtaHVuZHJlZDsKK+WkmuaooeWFiee6liA+IG11bHRpbW9kZVwtZmliZXI7Civou5/ku7bluILloLQgPiBzb2Z0d2FyZVwtbWFya2V0Owor5qCh5ZyS6aqo5bm5ID4gY2FtcHVzXC1iYWNrYm9uZTsKK+aykuacieiBr+e5qyA+IHRvXC1iZVwtdW5yZWxhdGVkOwor5LiW55WM5pyA5aSnID4gd29ybGQnJ3NcLWxhcmdlc3Q7CivlsJbpirPmibnoqZUgPiBzaGFycFwtY3JpdGljaXNtOwor6Zu76IWm57O757WxID4gY29tcHV0ZXJcLXN5c3RlbTsKK+iyqOW5o+WNseapnyA+IG1vbmV0YXJ5XC1jcmlzaXM7CivmmpfpgIHnp4vms6IgPiBtYWtlXC1leWVzXC1hdFwtc2I7CivmlbjkvY3ntrLot68gPiBkaWdpdGFsXC1uZXR3b3JrOwor5YWo5Yqb5Lul6LW0ID4gZG9cLWF0XC1hbGxcLWNvc3RzOwor6Jmb5pOs57ay57WhID4gdmlydHVhbFwtbmV0d29yazsKK+WFieaYjuaXpeWgsSA+IGd1YW5nbWluZ1wtZGFpbHk7Civmrbflj7LkuYXpgaAgPiBhbmNpZW50XC1oaXN0b3J5Owor5pav5ouJ5aSr6KqeID4gc2xhdmljXC1sYW5ndWFnZTsKK+WkluWci+WFrOWPuCA+IGZvcmVpZ25cLWNvbXBhbnk7CivllYbmpa3kuK3lv4MgPiBidXNpbmVzc1wtY2VudGVyOwor5LiN55u45LiK5LiLID4gZXF1YWxseVwtbWF0Y2hlZDsKK+apn+WvhuaWh+S7tiA+IHNlY3JldFwtZG9jdW1lbnQ7Civlhbfpq5ToqIjlioMgPiBhXC1jb25jcmV0ZVwtcGxhbjsKK+aWh+abuOiZleeQhiA+IHdvcmRcLXByb2Nlc3Npbmc7CivpoJDpmLLmjqrmlr0gPiBwcm90ZWN0aXZlXC1zdGVwOwor5YWs54S26KGo56S6ID4gdG9cLXN0YXRlXC1vcGVubHk7CivosqDlgrXnuo3nuo0gPiBoZWF2aWx5XC1pblwtZGVidDsKK+e2k+a/n+mrlOWItiA+IGVjb25vbWljXC1zeXN0ZW07CivkuI3pgY7niL7niL4gPiBtZXJlbHlcLW1lZGlvY3JlOwor5rWB5oSf55eF5q+SID4gaW5mbHVlbnphXC12aXJ1czsKK+ihm+eUn+WumOWToSA+IGhlYWx0aFwtb2ZmaWNpYWw7Civlhbfpq5TllY/poYwgPiBjb25jcmV0ZVwtaXNzdWU7CivlnIvpmLLpoJDnrpcgPiBkZWZlbmNlXC1idWRnZXQ7Civoo4HmuJvou43lgpkgPiBhcm1zXC1yZWR1Y3Rpb247Civlh7rlj6PllYblk4EgPiBleHBvcnRcLXByb2R1Y3Q7CivmlLnpnanpgLLnqIsgPiByZWZvcm1cLXByb2Nlc3M7CivoloTog47nk7flmaggPiBlZ2dzaGVsbFwtY2hpbmE7Civmk7rolanlkIrnkrAgPiBzd2luZ2luZ1wtcmluZ3M7CivlhajnkIPmsKPlgJkgPiBnbG9iYWxcLWNsaW1hdGU7CivlsI3lpJbmlL/nrZYgPiBmb3JlaWduXC1wb2xpY3k7CivpgLLooYzpgJrkv6EgPiB0b1wtY29tbXVuaWNhdGU7CivkuI3lko7ml6LlvoAgPiBub3RcLWNlbnN1cmVcLXNiOwor5qCh5ZyS57ay57WhID4gY2FtcHVzXC1uZXR3b3JrOwor5pW45L2N5L+h6JmfID4gZGlnaXRhbFwtc2lnbmFsOwor55Sf6ZW35r+A57SgID4gZ3Jvd3RoXC1ob3Jtb25lOwor5oyH5o+u5Lit5b+DID4gY29tbWFuZFwtY2VudGVyOwor6Zu76Kmx57ea6LevID4gdGVsZXBob25lXC1saW5lOwor6Kqe5rCj5Yqp6KmeID4gbW9kYWxcLXBhcnRpY2xlOwor57SE5pu45Lqe6KiYID4gYm9va1wtb2ZcLWpvc2h1YTsKK+e2k+a/n+acieaViCA+IGNvc3RcLWVmZmVjdGl2ZTsKK+WgheaxuuWQpuiqjSA+IHRvXC1maXJtbHlcLWRlbnk7Civmm7jlr6vnrKbomZ8gPiB3cml0aW5nXC1zeW1ib2w7CivkuI3nn6XmrbvmtLsgPiBhY3RcLXJlY2tsZXNzbHk7Civms6LnvoXnmoTmtbcgPiB0aGVcLWJhbHRpY1wtc2VhOwor5qGM6Z2i57O757WxID4gZGVza3RvcFwtc3lzdGVtOwor5p2x5Y2X5Lqe5ZyLID4gc291dGhlYXN0XC1hc2lhOwor5bCP5Z6L5LyB5qWtID4gc21hbGxcLWJ1c2luZXNzOwor6LOH5paZ5LuL6Z2iID4gZGF0YVwtaW50ZXJmYWNlOwor5LiN5oCO6bq85qijID4gbm90XC11cFwtdG9cLW11Y2g7CivpnZ7luLjph43opoEgPiB2ZXJ5XC1pbXBvcnRhbnQ7CivphqvlrbjlsIjlrrYgPiBtZWRpY2FsXC1leHBlcnQ7CivlhYjpgLLmsLTlubMgPiBhZHZhbmNlZFwtbGV2ZWw7Civmlbjmk5rmjqXlj6MgPiBkYXRhXC1pbnRlcmZhY2U7CivpgKPpjpblj43mh4kgPiBjaGFpblwtcmVhY3Rpb247CivnibnliKXmhJ/orJ0gPiBzcGVjaWFsXC10aGFua3M7Civkurrlo73kv53pmqogPiBsaWZlXC1pbnN1cmFuY2U7Civmlbjmk5rku4vpnaIgPiBkYXRhXC1pbnRlcmZhY2U7CivkvYbku6XnkIbmm7ggPiBib29rXC1vZlwtZGFuaWVsOwor6L+r5LiN5b6X5beyID4gaGF2ZVwtbm9cLWNob2ljZTsKK+ipleWDueWIhumhniA+IHJhbmtcLFwtY2xhc3NpZnk7Civlvp7kuovnoJTnqbYgPiB0b1wtZG9cLXJlc2VhcmNoOwor5Lul6LO95Lqe5pu4ID4gYm9va1wtb2ZcLWlzYWlhaDsKK+WNiuaVuOS7peS4iiA+IG1vcmVcLXRoYW5cLWhhbGY7CivmqpTmoYjlsazmgKcgPiBmaWxlXC1hdHRyaWJ1dGU7Civlvp7kvobmspLmnIkgPiBoYXZlXHxoYXNcLW5ldmVyOwor5Lul5pav5biW6KiYID4gYm9va1wtb2ZcLWVzdGhlcjsKK+acgOS9s+WIqeebiiA+IGJlc3RcLWludGVyZXN0czsKK+aDoeaAp+W+queSsCA+IHZpY2lvdXNcLWNpcmNsZTsKK+S4jeecgeS6uuS6iyA+IGJlXC11bmNvbnNjaW91czsKK+eZvueEoeiBiuiztCA+IGJvcmVkXC10b1wtZGVhdGg7CivphqvlrbjkuK3lv4MgPiBtZWRpY2FsXC1jZW50ZXI7Civnmb3oibLkurrnqK4gPiB0aGVcLXdoaXRlXC1yYWNlOwor57ac5ZCI5aCx5bCOID4gc3VtbWFyeVwtcmVwb3J0Owor5aSn5ZCM5bCP55WwID4gYWxtb3N0XC1zaW1pbGFyOwor5Y2R6Lqs5bGI56+AID4gYm93XC1hbmRcLXNjcmFwZTsKK+aBreizgOaWsOempyA+IGhhcHB5XC1uZXdcLXllYXI7CivliY3nlJ/lj6zllpogPiBmb3Jlb3JkaW5hdGlvbjsKK+e2sumam+mbu+ipsSA+IGludGVybmV0XC1waG9uZTsKK+iYi+aenOmbu+iFpiA+IGFwcGxlXC1jb21wdXRlcjsKK+S4jeiEm+iAjOi1sCA+IGdldFwtcm91bmRcLWZhc3Q7CivkuInovKrou4rkvJUgPiBwZWRpY2FiXC1kcml2ZXI7Civpo73ntpPpoqjpnJwgPiB3ZWF0aGVyXC1iZWF0ZW47Civlhajlv4PlhajmhI8gPiBoZWFydFwtYW5kXC1zb3VsOwor5rOw57Gz54i+6KqeID4gdGFtaWxcLWxhbmd1YWdlOwor5LiN5pyf6ICM6YGHID4gbWVldFwtYnlcLWNoYW5jZTsKK+i/keS5juWQjOatpSA+IHBsZXNpb2Nocm9ub3VzOwor5ZOl5pys5ZOI5qC5ID4gY29wZW5oYWdlblwtXD9cP1w/Owor55m+57Gz6LO96LeRID4gMTAwXC1tZXRyZVwtZGFzaDsKK+iqv+afpeWgseWRiiA+IG1lbW9pclwsXC1yZXBvcnQ7CivmlbjlrZfkv6HomZ8gPiBkaWdpdGFsXC1zaWduYWw7CivkuJbnlYzntpPmv58gPiBnbG9iYWxcLWVjb25vbXk7CivpgJrnlKjmsb3ou4ogPiBnZW5lcmFsXC1tb3RvcnM7CivljJfkuqzpgLHloLEgPiBiZWlqaW5nXC1yZXZpZXc7CivmupDpu57lnLDlnYAgPiBzb3VyY2VcLWFkZHJlc3M7CivpgJnmrKHljbHmqZ8gPiBwcmVzZW50XC1jcmlzaXM7Civlh7rlj6PnlKLlk4EgPiBleHBvcnRcLXByb2R1Y3Q7CivlpJrlt6XpgYvkvZwgPiBtdWx0aXRocmVhZGluZzsKK+S6jOawp+WMlueisyA+IGNhcmJvblwtZGlveGlkZTsKK+e2sue1oeioreioiCA+IG5ldHdvcmtcLWRlc2lnbjsKK+S6lOW5tOioiOWKgyA+IGZpdmVcLXllYXJcLXBsYW47CivluILloLTntpPmv58gPiBtYXJrZXRcLWVjb25vbXk7CivmqpTmoYjln7fooYwgPiBmaWxlXC1leGVjdXRpb247CivkupLli5Xpm7voppYgPiBpbnRlcmFjdGl2ZVwtdHY7CivlhaznnL7mhI/oposgPiBwdWJsaWNcLW9waW5pb247CivmrZDmtLLoga/nm58gPiBldXJvcGVhblwtdW5pb247CivmqpTmoYjovYnpgIEgPiBmaWxlXC10cmFuc2ZlcjsKK+aOkuWxseWAkua1tyA+IGVhcnRoXC1zaGFraW5nOwor57aT54ef6LK755SoID4gYnVzaW5lc3NcLWNvc3Q7Civnm7TmiKrkuobnlbYgPiBwbGFpblwtdGFsa2luZzsKK+WGt+aIsOS7peW+jCA+IHBvc3RcLWNvbGRcLXdhcjsKK+WLouWcqOW/heihjCA+IGJlXC1pbXBlcmF0aXZlOwor6IiK57SE5YWo5pu4ID4gb2xkXC10ZXN0YW1lbnQ7Civlub7lgIvlsI/mmYIgPiBzZXZlcmFsXC1ob3VyczsKK+S4jeWPr+e8uuWwkSA+IGluZGlzcGVuc2FibGU7Civoppbnqpfln7rmupYgPiB3aW5kb3dzXC1iYXNlZDsKK+mbu+mDteS9jee9riA+IGVtYWlsXC1hZGRyZXNzOwor56CU56m26aCY5Z+fID4gcmVzZWFyY2hcLWFyZWE7CivpgLLmjqXmnI3li5kgPiBhY2Nlc3NcLXNlcnZlcjsKK+S6jOasoeWkp+aIsCA+IHdvcmxkXC13YXJcLXR3bzsKK+WfuuacrOamguW/tSA+IGJhc2ljXC1jb25jZXB0Owor6LK/5piT6aCG5beuID4gdHJhZGVcLXN1cnBsdXM7Civmrablmajns7vntbEgPiB3ZWFwb25cLXN5c3RlbTsKK+WutueUqOmbu+iFpiA+IGhvbWVcLWNvbXB1dGVyOwor5aSn5YWs54Sh56eBID4ganVzdFwtYW5kXC1mYWlyOwor5paw57SE5YWo5pu4ID4gbmV3XC10ZXN0YW1lbnQ7Civkup7mtLLlnIvlrrYgPiBhc2lhblwtY291bnRyeTsKK+aatOmiqOmpn+mbqCA+IHZpb2xlbnRcLXN0b3JtOwor5o2J5Y+W5ZyW5YOPID4gY2FwdHVyZVwtaW1hZ2U7Civmi5zph5HkuLvnvqkgPiBtb25leVwtd29yc2hpcDsKK+awuOS5heWSjOW5syA+IGxhc3RpbmdcLXBlYWNlOwor5ZOI6Jap5YWL5Lq6ID4ga2F6YWtoXC1wZXJzb247Civlt6HoiKrlsI7lvYggPiBjcnVpc2VcLW1pc3NsZTsKK+aatOWKm+eKr+e9qiA+IHZpb2xlbnRcLWNyaW1lOwor5L2V6KW/6Zi/5pu4ID4gYm9va1wtb2ZcLWhvc2VhOwor5LiN5oiQ5paH5rOVID4gdW53cml0dGVuXC1sYXc7Civkup7lpKrlnIvlrrYgPiBhc2lhblwtY291bnRyeTsKK+ebruaomeW4guWgtCA+IHRhcmdldFwtbWFya2V0Owor5pyA6auY5rOV6ZmiID4gc3VwcmVtZVwtY291cnQ7CivmnIDlvozmm7TmlrAgPiBsYXRlc3RcLXVwZGF0ZTsKK+adj+S7geixhuiFkCA+IGFsbW9uZFwtanVua2V0Owor6YCZ56iu5pa55byPID4gXChpblwpXC10aGlzXC13YXk7Civkv53orbfkuLvnvqkgPiBwcm90ZWN0aW9uaXNtOwor5pyI55CD6KGo6Z2iID4gbHVuYXJcLXN1cmZhY2U7CivlnLDmlrnlgZzou4ogPiBwYXJraW5nXC1wbGFjZTsKK+efpeWQjeS6uuWjqyA+IHB1YmxpY1wtZmlndXJlOwor576O5ZyL5ZyL5pyDID4gdVwuc1wuXC1jb25ncmVzczsKK+S4jeW5uOeahOaYryA+IHVuZm9ydHVuYXRlbHk7CivlhYnnupbpm7vnupwgPiBvcHRpY2FsXC1maWJlcjsKK+ekvuS6pOiqnuiogCA+IGxpbmd1YVwtZnJhbmNhOwor6LaK5L6G6LaK5aSaID4gbW9yZVwtYW5kXC1tb3JlOwor55m+56eR5YWo5pu4ID4gZW5jeWNsb3BhZWRpYTsKK+WKn+eOh+aDoeWMliA+IHBvd2VyXC1wZW5hbHR5Owor5LiN5Y+v5oqX5YqbID4gZm9yY2VcLW1hamV1cmU7CivkuK3lnIvpioDooYwgPiBiYW5rXC1vZlwtY2hpbmE7Civpn7/mh4nmmYLplpMgPiByZXNwb25zZVwtdGltZTsKK+WCs+i8uOaooeW8jyA+IHRyYW5zZmVyXC1tb2RlOwor5LiN55+l5LiN6Ka6ID4gdW5jb25zY2lvdXNseTsKK+WJjeaJgOacquaciSA+IHVucHJlY2VkZW50ZWQ7CivoqKrllY/mlrnlvI8gPiBhY2Nlc3NcLW1ldGhvZDsKK+aqlOahiOW7uueriyA+IGZpbGVcLWNyZWF0aW9uOwor5Ye655Sf5pel5pyfID4gZGF0ZVwtb2ZcLWJpcnRoOwor5LiN5Y+v5oCd6K2wID4gaW5jb25jZWl2YWJsZTsKK+agvOWtkOiKseWRoiA+IHBsYWlkXCxcLXRhcnRhbjsKK+mbmeeUn+WFhOW8nyA+IHR3aW5cLWJyb3RoZXJzOwor5pyA5aSn6YCf546HID4gbWF4aW11bVwtc3BlZWQ7Civnj77lr6bmg4Xms4EgPiBjdXJyZW50XC1zdGF0ZTsKK+WMhee+heiQrOixoSA+IGFsbFwtZW1icmFjaW5nOwor6KaW6aC756+A55uuID4gdmlkZW9cLXByb2dyYW07CivnvoXppqzlrZfmr40gPiByb21hblwtbGV0dGVyczsKK+S4jeWPr+WQjeeLgCA+IGluZGVzY3JpYmFibGU7Civlhbbku5bnmoTkurogPiBvdGhlclwtcGVvcGxlOwor5aqS6auU5aCx5bCOID4gbWVkaWFcLXJlcG9ydDsKK+WSjOW5s+ainee0hCA+IHBlYWNlXC10cmVhdHk7CivogqHnpajluILloLQgPiBzdG9ja1wtbWFya2V0Owor5aSn6ama5aSx6ImyID4gYXBwcmVoZW5zaXZlOwor6auY5bGk5peF6aSoID4gbHV4dXJ5XC1ob3RlbDsKK+mdiOeahOS4lueVjCA+IHNwaXJpdFwtd29ybGQ7Civlh7rkuY7poJDmlpkgPiB1bmV4cGVjdGVkbHk7CivlnLDmlrnkuLvnvqkgPiBcImxvY2FsXC1cLWlzbVwiOwor5r+A5YWJ5ZSx54mHID4gY29tcGFjdFwtZGlzazsKK+S4reWkrumKgOihjCA+IGNlbnRyYWxcLWJhbms7Civmlq/lr4bntITnkZ8gPiBqb3NlcGhcLXNtaXRoOwor55uu5YmN5LiW55WMID4gbW9kZXJuXC13b3JsZDsKK+awkeaEj+iqv+afpSA+IG9waW5pb25cLXBvbGw7Civnj77ku6Ppn7PmqIIgPiBtb2Rlcm5cLW11c2ljOwor6KO96YCg5qWt6ICFID4gbWFudWZhY3R1cmVyOwor5b+D55CG5a245a62ID4gcHN5Y2hvbG9naXN0Owor5LiN6IO95oq15oqXID4gaXJyZXNpc3RpYmxlOwor6YGO5aKD57C96Ki8ID4gdHJhbnNpdFwtdmlzYTsKK+iAtuepjOWfuuedoyA+IGplc3VzXC1jaHJpc3Q7CivoqJjogIXloLHlsI4gPiBwcmVzc1wtcmVwb3J0Owor5aSa5bel5L2c5qWtID4gbXVsdGl0YWtzaW5nOwor5LiN5aSn6Zui5YWSID4gcHJldHR5XC1jbG9zZTsKK+acrOS+humdouebriA+IHRydWVcLWNvbG91cnM7CivntrLot6/nr4Dpu54gPiBuZXR3b3JrXC1ub2RlOwor5LiN5Y+v5pS25ou+ID4gaXJyZW1lZGlhYmxlOwor5ZyL5a625qmf5a+GID4gc3RhdGVcLXNlY3JldDsKK+iqv+afpeS6uuWToSA+IGludmVzdGlnYXRvcjsKK+atpuijnemDqOmaiiA+IGFybWVkXC1mb3JjZXM7CivnlJ/nlKLkvIHmpa0gPiBtYW51ZmFjdHVyZXI7CivlkI3pjITmnI3li5kgPiBuYW1lXC1zZXJ2aWNlOwor6Kqe6Z+z5L+h6JmfID4gdm9pY2VcLXNpZ25hbDsKK+S7pOS6uumpmueVsCA+IHN1cnByaXNpbmdseTsKK+WfuuekjuioreaWvSA+IGJhc2VcLXN0YXRpb247CivnlJ/lkb3ot6HosaEgPiBzaWduXC1vZlwtbGlmZTsKK+efpeitmOWIhuWtkCA+IGludGVsbGVjdHVhbDsKK+mYv+aRqeWPuOabuCA+IGJvb2tcLW9mXC1hbW9zOwor55So5oi25a6a576pID4gdXNlclwtZGVmaW5lZDsKK+aIkOWQieaAneaxlyA+IGdlbmdoaXNcLWtoYW47CivkuLvlubnntrLot68gPiBjb3JlXC1uZXR3b3JrOwor5rCR5oSP5ris6amXID4gb3BpbmlvblwtcG9sbDsKK+att+S7o+W/l+S4iyA+IDJcLWNocm9uaWNsZXM7Civmrbfku6Plv5fkuIogPiAxXC1jaHJvbmljbGVzOwor5oyH5Luk5ZCN5a2XID4gY29tbWFuZFwtbmFtZTsKK+S4gOWwj+mDqOWIhiA+IGFcLXNtYWxsXC1wYXJ0Owor5Li75bm557ay57WhID4gY29yZVwtbmV0d29yazsKK+aPrumcjeeEoeW6piA+IGV4dHJhdmFnYW5jZTsKK+eZu+mZuOaciOeQgyA+IG1vb25cLWxhbmRpbmc7Civou43kuovmj7TliqkgPiBtaWxpdGFyeVwtYWlkOwor5pys5pys5Li7576pID4gYm9va1wtd29yc2hpcDsKK+S6lOinkuWkp+aokyA+IHRoZVwtcGVudGFnb247Civmkanopb/lvovms5UgPiBsYXdcLW9mXC1tb3NlczsKK+i/hemAn+iUk+W7tiA+IHJhcGlkXC1zcHJlYWQ7Civku6Xmlq/mi4noqJggPiBib29rXC1vZlwtZXpyYTsKK+S4jeefpeaJgOaOqiA+IGJlXC1hdFwtYVwtbG9zczsKK+W9ouW9ouiJsuiJsiA+IGFsbFwta2luZHNcLW9mOwor5qqU5qGI5pyN5YuZID4gZmlsZVwtc2Vydm9jZTsKK+mZjeiQveWcsOm7niA+IGxhbmRpbmdcLXNpdGU7CivkuInljYHkupTlhIQgPiAzXC1cLjVcLWJpbGxpb247CivkuozljYHlha3mrbIgPiAyNlwteWVhcnNcLW9sZDsKK+aVuOaTmue2sue1oSA+IGRhdGFcLW5ldHdvcms7CivpvpDnhLblpKfniakgPiBodWdlXC1tb25zdGVyOwor5LiW55WM55+l5ZCNID4gd29ybGRcLWZhbW91czsKK+efpeitmOS7veWtkCA+IGludGVsbGVjdHVhbDsKK+W/q+mAn+eZvOWxlSA+IHJhcGlkXC1ncm93dGg7CivlpJrnqK7oqp7oqIAgPiBtdWx0aWxpbmd1YWw7CivlronlhajllY/poYwgPiBzYWZldHlcLWlzc3VlOwor5rKJ6YeN5omT5pOKID4gdG9cLWhpdFwtaGFyZDsKK+iHqueEtuiAjOeEtiA+IGludm9sdW50YXJ5Owor5LiN6LSK5LiA6KmeID4ga2VlcFwtc2lsZW50Owor5Lq66auU5Zmo5a6YID4gaHVtYW5cLW9yZ2FuOwor5rCR5peP5Li7576pID4gbmF0aW9uYWxpc207Civnsr7lrZDlr4bluqYgPiBzcGVybVwtY291bnQ7CivpgbflsYXnp7vmsJEgPiBpbW1pZ3JhdGlvbjsKK+mHjueUn+WLleeJqSA+IHdpbGRcLWFuaW1hbDsKK+iBluiqleiAgeS6uiA+IHNhbnRhXC1jbGF1czsKK+a1qua8q+S4u+e+qSA+IHJvbWFudGljaXNtOwor5LiN5Y+v55+l6KuWID4gYWdub3N0aWNpc207CivkuI3liIflr6bpmpsgPiB1bnJlYWxpc3RpYzsKK+WFuOWei+eUqOmAlCA+IHR5cGljYWxcLXVzZTsKK+WvjOaWvOaDs+WDjyA+IGltYWdpbmF0aXZlOwor5ZyL5LqL6Kiq5ZWPID4gc3RhdGVcLXZpc2l0Owor5Y2K5Y2K5ouJ5ouJID4gaW5jb21wbGV0ZWQ7CivkuI3lj6/liIbpm6IgPiBpbnNlcGFyYWJsZTsKK+eEoeeUoumajue0miA+IHByb2xldGFyaWF0Owor5aSx5Y675oSP6K2YID4gdW5jb25zY2lvdXM7Civnmb7okKzlr4znv4EgPiBtaWxsaW9uYWlyZTsKK+iytOaXj+ekvuacgyA+IGFyaXN0b2NyYWN5Owor5rOi5aSa6buO5ZCEID4gcHVlcnRvXC1yaWNvOwor56uL5rOV5qmf6ZecID4gbGVnaXNsYXR1cmU7CivkuLvopoHljp/lm6AgPiBtYWluXC1yZWFzb247CivmnInnlJ/ku6XkvoYgPiBzaW5jZVwtYmlydGg7Civosp3liqDniL7muZYgPiBsYWtlXC1iYWlrYWw7CivlkozlubPmnIPoq4cgPiBwZWFjZVwtdGFsa3M7CivkuI3ororlg7nmoLwgPiBmaXhlZFwtcHJpY2U7CivlpbPnubzmib/kurogPiBpbmhlcml0cmVzczsKK+WBh+ioreiqnuawoyA+IHN1Ymp1bmN0aXZlOwor5Zyw5b+D5ZC45YqbID4gZ3Jhdml0YXRpb247CivpgYvosqjppqzou4ogPiBjYXJnb1wtd2Fnb247CivnrKzkuInkuJbnlYwgPiB0aGlyZFwtd29ybGQ7CivnhKHpl5znt4ropoEgPiBpbmRpZmZlcmVudDsKK+Wkp+S+v+S5vueHpSA+IGNvbnN0aXBhdGVkOwor5LiN5YGP5LiN5YCaID4gZXZlblwtaGFuZGVkOwor5YiG5pWj5rOo5oSPID4gdG9cLWRpc3RyYWN0Owor5LiN5q+b5LmL5ZywID4gYmFycmVuXC1sYW5kOwor6LaF57Sa5biC5aC0ID4gc3VwZXJtYXJrZXQ7Civlv4XopoHmop3ku7YgPiByZXF1aXJlbWVudDsKK+WIhuacn+S7mOasviA+IGluc3RhbGxtZW50Owor6IiJ5L6L5L6G6KqqID4gZm9yXC1leGFtcGxlOwor5LiW55WM6LK/5piTID4gd29ybGRcLXRyYWRlOwor6I6O5aOr5q+U5LqeID4gc2hha2VzcGVhcmU7Civlm5vliIbkuYvkuIAgPiBvbmVcLXF1YXJ0ZXI7CivoqIrmoYblgrPpgIEgPiBmcmFtZVwtcmVsYXk7Civnlavmj5LlnJbogIUgPiBpbGx1c3RyYXRvcjsKK+i2iuWNl+aIsOeIrSA+IHZpZXRuYW1cLXdhcjsKK+eEoeaJgOS4jeWcqCA+IG9tbmlwcmVzZW50Owor5LiN5Ye65omA5paZID4gYXNcLWV4cGVjdGVkOwor5LiW55WM5ZKM5bmzID4gd29ybGRcLXBpZWNlOwor5LiN5ZCM5Yeh6Z+/ID4gb3V0c3RhbmRpbmc7Civmh4nnlKjnqIvlvI8gPiBhcHBsaWNhdGlvbjsKK+i9ieS+hui9ieWOuyA+IHJvdmVcLWFyb3VuZDsKK+mHnemLkuebuOWwjSA+IHRpdFwtZm9yXC10YXQ7CivplonmnIPnpYjnprEgPiBiZW5lZGljdGlvbjsKK+S4jeWPr+S8sOmHjyA+IGluZXN0aW1hYmxlOwor6ZaL5pS+57O757WxID4gb3Blblwtc3lzdGVtOwor5pyJ6ZmQ5YWs5Y+4ID4gY29ycG9yYXRpb247CivnqbrplpPmjqLmuKwgPiBzcGFjZVwtcHJvYmU7Civln7rnpI7llY/poYwgPiBiYXNpY1wtaXNzdWU7CivpgoHpmL/lr4bngZggPiBtaWFtaVwtYmVhY2g7Civouqvlv4PniL3lv6sgPiByZWZyZXNobWVudDsKK+elreWPuOasiuihkyA+IHByaWVzdGNyYWZ0Owor5oGw5aaC5YW25Lu9ID4gYXBwcm9wcmlhdGU7CivlnKjpgJnmnJ/plpMgPiBkdXJpbmdcLXRpbWU7CivnhKHms5Xlv43lj5cgPiBpbnRvbGVyYWJsZTsKK+WPjeWLleWIhuWtkCA+IHJlYWN0aW9uYXJ5Owor5L2/55So5pa55L6/ID4gZWFzeVwtdG9cLXVzZTsKK+eEoeazleW9ouWuuSA+IHVuc3BlYWthYmxlOwor5pyJ5ZCM5oOF5b+DID4gc3ltcGF0aGV0aWM7CivpgLLooYzmgKfkuqQgPiB0b1wtaGF2ZVwtc2V4Owor5Zac5q2h5ZC15p62ID4gcXVhcnJlbHNvbWU7CivmqKHns4rpgo/ovK8gPiBmdXp6eVwtbG9naWM7CivlsLHvuY3ogIzoqIAgPiBjb25zaWRlcmluZzsKK+aciemBuOiIieasiiA+IGNvbnN0aXR1ZW50Owor5ris6amX57WQ5p6cID4gdGVzdFwtcmVzdWx0Owor566h5a626IG35YuZID4gc3Rld2FyZHNoaXA7Civni5fkuqTlqr7oiKwgPiBkb2dneVwtc3R5bGU7CivlsIjmnInlkI3oqZ4gPiBwcm9wZXJcLW5vdW47CivmnIvmr5TngrrlpbggPiB0b1wtY29uc3BpcmU7CivmkKzlvITmmK/pnZ4gPiBzb3dcLWRpc2NvcmQ7CivlhrDmn5Pmn5PmlpkgPiBhem9pY1wtZHllczsKK+Wbm+WAi+Wwj+aZgiA+IGZvdXJcLWhvdXJzOwor5aSp5paH5a245a62ID4gYXN0cm9ub21lcjsKK+ecvOiKsee5muS6giA+IGJlXC1kYXp6bGVkOwor6a2v5L2b54i+5a6uID4gdGhlXC1sb3V2cmU7CivkuI3loKrlv43lj5cgPiB1bmJlYXJhYmxlOwor5aib5qiC5Lit5b+DID4gcmVjcmVhdGlvbjsKK+iHqueUseiyv+aYkyA+IGZyZWVcLXRyYWRlOwor5LiJ5YiG5LmL5LqMID4gdHdvXC10aGlyZHM7CivnuL3ntbHku7vmnJ8gPiBwcmVzaWRlbmN5Owor5LiN5Y+v6YC+6LaKID4gaW1wYXNzYWJsZTsKK+aVmeWgguWik+WcsCA+IGNodXJjaHlhcmQ7CivooYzmlL/plbflrpggPiBtYWdpc3RyYXRlOwor6LK05peP6KuW6ICFID4gYXJpc3RvY3JhdDsKK+aWsOiBnuiomOiAhSA+IGpvdXJuYWxpc3Q7Civpnq3pl6LlhaXoo6EgPiBwZW5ldHJhdGVkOwor5LuW5YCR6Ieq5bexID4gdGhlbXNlbHZlczsKK+mYv+WhnuaLnOeWhiA+IGF6ZXJiYWlqYW47Civpgo/ovK/ngrjlvYggPiBsb2dpY1wtYm9tYjsKK+Wcluino+iqquaYjiA+IGlsbHVzdHJhdGU7CivkuI3lsYjkuI3mkpMgPiB1bnlpZWxkaW5nOwor5aSn6IWm5q275LqhID4gYnJhaW5cLWRlYWQ7Civog6HmgJ3kuoLmg7MgPiBpbWFnaW5pbmdzOwor5LiA5YiH5LqL54mpID4gZXZlcnl0aGluZzsKK+atjOe+heilv+abuCA+IGNvbG9zc2lhbnM7CivkuI3nlLHoh6rkuLsgPiBjYW4nJ3RcLWhlbHA7Civmm7zlvrnmlq/nibkgPiBtYW5jaGVzdGVyOwor5Ly96aas5bCE57eaID4gZ2FtbWFcLXJheXM7CivmpbXngrrpvpDlpKcgPiBtb251bWVudGFsOwor5pyJ5Yip5Y+v5ZyWID4gcHJvZml0YWJsZTsKK+eEoeaJgOS4jeiDvSA+IG9tbmlwb3RlbnQ7CivliIbpm6LkuLvnvqkgPiBzZXBhcmF0aXNtOwor5LiW55WM6YqA6KGMID4gd29ybGRcLWJhbms7CivnhKHmiYDkuI3nn6UgPiBvbW5pc2NpZW50Owor6ZaL5pyD56WI56axID4gaW52b2NhdGlvbjsKK+mgmOWwjuiDveWKmyA+IGxlYWRlcnNoaXA7CivmhI/opovkuI3lkIggPiBkaXNzZW5zaW9uOwor5a2f5Yqg5ouJ5ZyLID4gYmFuZ2xhZGVzaDsKK+W8leS6uuazqOaEjyA+IGF0dHJhY3RpdmU7Civlv5jmganosqDnvqkgPiB1bmdyYXRlZnVsOwor55u45ZCM5ZCN5a2XID4gbGlrZVwtbmFtZWQ7Civkvb/kurrkv6HmnI0gPiBjb252aW5jaW5nOwor5Y+W6ICM5Luj5LmLID4gc3Vic3RpdHV0ZTsKK+mbu+WtkOepuumWkyA+IGN5YmVyc3BhY2U7Civlvq7kuI3otrPpgZMgPiBuZWdsaWdpYmxlOwor6YGU6LO05ZaH5ZibID4gZGFsYWlcLWxhbWE7CivkuI3mj6PlhpLmmKcgPiB2ZW50dXJlXC10bzsKK+ecgeeVpeespuiZnyA+IGFwb3N0cm9waGU7CivkuI3lsI3norTlhZIgPiBub3RcLXByb3BlcjsKK+aEj+aDs+S4jeWIsCA+IHVuZXhwZWN0ZWQ7CivlhrDkuIrpgYvli5UgPiBpY2VcLXNwb3J0czsKK+e+juS5g+a7i+mGrCA+IG1heW9ubmFpc2U7Civpmbjou43kuK3lsIkgPiBsaWV1dGVuYW50Owor5b2q5b2i5aSn5ryiID4gYnVybHlcLWNoYXA7CivokKzkuovpgZTljaEgPiBtYXN0ZXJjYXJkOwor6YGO5rih5pmC5pyfID4gdHJhbnNpdGlvbjsKK+aWsOiBnuWqkumrlCA+IG5ld3NcLW1lZGlhOwor5aCF5a6a5LiN56e7ID4gdW5zd2VydmluZzsKK+atpOaZguS7peWJjSA+IGhlcmV0b2ZvcmU7CivmnJ3prq7miLDniK0gPiBrb3JlYW5cLXdhcjsKK+mbo+S7pee9ruS/oSA+IGluY3JlZGlibGU7CivlhbHlkozmlL/pq5QgPiByZXB1YmxpY2FuOwor5aSW5Lqk5omL6IWVID4gZGlwbG9tYXRpYzsKK+eVoualreWFuOemriA+IGdyYWR1YXRpb247CivohZPnq4vmr5Tmm7ggPiBwaGlsaXBpYW5zOwor6aiO5aOr6aKo5qC8ID4ga25pZ2h0aG9vZDsKK+WMluWmneiInuacgyA+IG1hc3F1ZXJhZGU7CivlpbPmnI3nianlk6EgPiBzdGV3YXJkZXNzOwor5rKS5pyJ55+l6Ka6ID4gaW5zZW5zaWJsZTsKK+aWkemnrumZuOmboiA+IHZhcmllZ2F0ZWQ7CivmsKPli6LmtLbmtLYgPiBhZ2dyZXNzaXZlOwor5LiD5Y2B5bm05LujID4gdGhlXC0xOTcwJydzOwor5b6e5LuK5Lul5b6MID4gaGVuY2Vmb3J0aDsKK+imlueql+aWsOaKgCA+IHdpbmRvd3NcLW50Owor57iu5bCP5qih5Z6LID4gbWluaWF0dXJlOwor5Lul5byX5omA5pu4ID4gZXBoZXNpYW5zOwor5rKS5pyJ5b2i54uAID4gc2hhcGVsZXNzOwor55So5oi25pW45pOaID4gdXNlclwtZGF0YTsKK+mWi+eZvOS6uuWToSA+IGRldmVsb3BlcjsKK+WcsOizquWtuOWutiA+IGdlb2xvZ2lzdDsKK+eUn+eJqeWtuOWutiA+IGJpb2xvZ2lzdDsKK+S4jeWPr+ejqOa7hSA+IGluZGVsaWJsZTsKK+S4jeS6puaoguS5jiA+IGV4dHJlbWVseTsKK+aMieeFp+Wtl+mdoiA+IGxpdGVyYWxseTsKK+S4ieWIhuS5i+S4gCA+IG9uZVwtdGhpcmQ7CivkuI3lj6/mlZHol6UgPiBpbmN1cmFibGU7CivogLbot6/mkpLlhrcgPiBqZXJ1c2FsZW07CivopLvngIbnmoToqbEgPiBibGFzcGhlbXk7CivlnIvlhafmiLDniK0gPiBjaXZpbFwtd2FyOwor5Y2x5Zyw6aas5ouJID4gZ3VhdGFtYWxhOwor5Yqg5a+G5b6M55qEID4gZW5jcnlwdGVkOwor5pyJ5pS75pOK5oCnID4gb2ZmZW5zaXZlOwor5oOh5ZCN5pit5b2wID4gbm90b3Jpb3VzOwor57aT5r+f5a245a62ID4gZWNvbm9taXN0Owor6Zi/56m65Yqg55OcID4gYWNvbmNhZ3VhOwor5Yqg5ouJ5aSq5pu4ID4gZ2FsYXRpYW5zOwor57ay6Zqb6Imy5oOFID4gY3liZXJwb3JuOwor6Iqx57KJ6YGO5pWPID4gaGF5XC1mZXZlcjsKK+eCuuaZgumBjuaXqSA+IHByZW1hdHVyZTsKK+iBr+WQiOe1hOe5lCA+IHN5bmRpY2F0ZTsKK+acieWJtemAoOWKmyA+IGluZ2VuaW91czsKK+S6uueJqeaPj+WvqyA+IHBvcnRyYXlhbDsKK+S7pOS6uuasveS9qSA+IGFkbWlyYWJsZTsKK+mYv+Wlh+mHjOaWryA+IGFlc2NoeWx1czsKK+Wtn+WKoOaLieiqniA+IGJlbmdhbGVzZTsKK+apn+aisOijnee9riA+IG1hY2hpbmVyeTsKK+aWkee/heWxsem2iSA+IHBhcnRyaWRnZTsKK+S4jeWPr+WLneaVuCA+IGNvdW50bGVzczsKK+e4veacg+acg+mVtyA+IHByZXNpZGVudDsKK+avq+eEoeeWkeWVjyA+IGNlcnRhaW50eTsKK+a+s+Wkp+WIqeS6niA+IGF1c3RyYWxpYTsKK+Wkp+Wvq+mOluWumiA+IGNhcHNcLWxvY2s7CivljYrlt6XljYroroAgPiBwYXJ0XC13b3JrOwor5oiR5YCR6Ieq5bexID4gb3Vyc2VsdmVzOwor576F5b655pav54m5ID4gcm9jaGVzdGVyOwor566h5bym5qiC5ZyYID4gb3JjaGVzdHJhOwor55m95pel5YGa5aSiID4gZGF5XC1kcmVhbTsKK+S7u+S9leWFtuS7liA+IGFueVwtb3RoZXI7Civlt7Tli5Lmlq/lnaYgPiBwYWxlc3RpbmU7CivlnKjvuY3ml4HpgoogPiBhbG9uZ3NpZGU7CivlhYjopovkuYvmmI4gPiBmb3Jlc2lnaHQ7CivpmqjkuYvogIzlvowgPiBmcm9tXC10aGF0Owor5LiK5YCL5pif5pyfID4gbGFzdFwtd2VlazsKK+awkeS4u+aUv+ayuyA+IGRlbW9jcmFjeTsKK+S4u+euoeS6uuWToSA+IGV4ZWN1dGl2ZTsKK+iyoeWLmeenmOabuCA+IHRyZWFzdXJlcjsKK+eUn+iCsuiDveWKmyA+IGZlcnRpbGl0eTsKK+WFseS6q+i7n+mrlCA+IHNoYXJld2FyZTsKK+S4jeWPl+atoei/jiA+IHVud2VsY29tZTsKK+WHueWHuOWNsOWItyA+IGVtYm9zc2luZzsKK+aSkumDveipsuS6uiA+IHNhZGR1Y2VlczsKK+WFseeUouS4u+e+qSA+IGNvbW11bmlzbTsKK+S4jeS7peeCuueEtiA+IG9iamVjdFwtdG87CivnpL7mnIPkuLvnvqkgPiBzb2NpYWxpc207CivonJzmnIjlgYfmnJ8gPiBob25leW1vb247CivlkIznj63lkIzlrbggPiBjbGFzc21hdGU7CivlhbfmnInkuLvmrIogPiBzb3ZlcmVpZ247Civoh6rli5XmqJPmoq8gPiBlc2NhbGF0b3I7Civnt4rmgKXkuovku7YgPiBlbWVyZ2VuY3k7CivpgIDpu5Hmv4DntKAgPiBtZWxhdG9uaW47CivkuI3oqIjlhbbmlbggPiBjb3VudGxlc3M7Civln7rnnaPmlZnlvpIgPiBjaHJpc3RpYW47Civlh7nlh7jou4voirEgPiBlbWJvc3Npbmc7CivkuI3nhLbnmoToqbEgPiBvdGhlcndpc2U7Civkup7moLzploDovrIgPiBhZ2FtZW1ub247CivkuI3pgJ7kuYvlvpIgPiBkZXNwZXJhZG87Civnva7kuYvluqblpJYgPiBkaXNyZWdhcmQ7CivmhqTmhqTkuI3lubMgPiBpbmRpZ25hbnQ7CivkuIvlgIvmmJ/mnJ8gPiBuZXh0XC13ZWVrOwor5q235Y+y5a245a62ID4gaGlzdG9yaWFuOwor5aCF5b+N5LiN5ouUID4gZm9ydGl0dWRlOwor5YWo5aC05LiA6Ie0ID4gdW5hbmltb3VzOwor576F5YiH5pav54m5ID4gcm9jaGVzdGVyOwor6KGo5oSP5paH5a2XID4gaWRlb2dyYXBoOwor6YCa6LKo6Iao6IS5ID4gaW5mbGF0aW9uOwor6K6K5o+b6Kit5YKZID4gY29udmVydGVyOwor57aT5r+f5a246ICFID4gZWNvbm9taXN0Owor5LiZ56iu5bCE57eaID4gZ2FtbWFcLXJheTsKK+aEj+awo+ebuOaKlSA+IGNvbmdlbmlhbDsKK+eNsuaatOWIqeiAhSA+IHByb2ZpdGVlcjsKK+aWr+a0m+S8kOWFiyA+IHNsb3Zha2lhOwor5rK554K45ZyI6aSFID4gZG91Z2hudXQ7Civlm6DvuY3kuYvmlYUgPiBpbmFzbXVjaDsKK+mbjeWuueWkp+W6piA+IGdlbmVyb3VzOwor5aW95aW95YWS5ZywID4gcHJvcGVybHk7CivpqI7lo6vmsKPmpoIgPiBjaGl2YWxyeTsKK+iJvuW+t+iVvuW+tyA+IGFkZWxhaWRlOwor5YWN6LK76Luf5Lu2ID4gZnJlZXdhcmU7Civku6XlpKrntrLntaEgPiBldGhlcm5ldDsKK+ahg+iKseW/g+acqCA+IG1haG9nYW55Owor5qiZ5rqW6KaP5qC8ID4gc3RhbmRhcmQ7CivnhKHoq5bkvZXmmYIgPiB3aGVuZXZlcjsKK+W5vuS5juaykuaciSA+IHNjYXJjZWx5Owor54mn5bir5LmL6IG3ID4gbWluaXN0cnk7Civlha3ljYHlm5vokKwgPiA2NFwtMFwtMDAwOwor6JKZ5omY576F5ouJID4gbW90b3JvbGE7Civkurrlt6XmtYHnlKIgPiBhYm9ydGlvbjsKK+WWh+WPreawtOS7mSA+IGRhZmZvZGlsOwor5ZyL6Zqb57ay57WhID4gaW50ZXJuZXQ7CivnhKHoq5bkvZXkuosgPiBhbnl0aGluZzsKK+eyvuWKm+WFheaymyA+IHZpZ29yb3VzOwor5ZOl5YCr5biD57SAID4gY29sdW1idXM7Civlt6bovKrmiYvmp40gPiByZXZvbHZlcjsKK+WTpeWAq+avlOS6niA+IGNvbG9tYmlhOwor5ZCb5Li75pS/5rK7ID4gbW9uYXJjaHk7Civkurrlj6PnqKDlr4YgPiBwb3B1bG91czsKK+W8leS6uuazqOebriA+IHN0cmlraW5nOwor6Zi/5aWH5q235pavID4gYWNoaWxsZXM7Civlpaflvrfkv67mlq8gPiBvZHlzc2V1czsKK+WdpuahkeWwvOS6niA+IHRhbnphbmlhOwor5LiN6aGn5LiA5YiHID4gcmVja2xlc3M7Civli6LlpoLnoLTnq7kgPiBzd2VlcGluZzsKK+i+suWutuW6remZoiA+IGZhcm15YXJkOwor5a625bqt5L2c5qWtID4gaG9tZXdvcms7CivljbPlsIfkvoboh6ggPiBpbW1pbmVudDsKK+mfs+aoguWFieeinyA+IG11c2ljXC1jZDsKK+S6lOW9qeizk+e0myA+IGNvbG9yZnVsOwor5ryi5a+G54i+6aCTID4gaGFtaWx0b247Civoqp7oqIDlrbjlrrYgPiBsaW5ndWlzdDsKK+m+jemgreiAgeWkpyA+IGJpZ1wtYm9zczsKK+iFk+WIqemWgOabuCA+IHBoaWxlbW9uOwor6Zu76IWm57ay57WhID4gaW50ZXJuZXQ7CivmkanmiZjnvoXmi4kgPiBtb3Rvcm9sYTsKK+W3tOWfuuaWr+WdpiA+IHBha2lzdGFuOwor5be05be05aSa5pavID4gYmFyYmFkb3M7Civnq7bpgbjmtLvli5UgPiBjYW1wYWlnbjsKK+e1guerr+eUqOaItiA+IGVuZFwtdXNlcjsKK+WiqOawtOeTtuaetiA+IGlua3N0YW5kOwor57ay6Zqb57ay6LevID4gaW50ZXJuZXQ7CivnhKHkurrpp5Xpp5sgPiB1bm1hbm5lZDsKK+azleWIqeizveS6uiA+IHBoYXJpc2VlOwor56eR576F5ouJ5aSaID4gY29sb3JhZG87CivljKrlvpLpm4blnJggPiBnYW5nc3RlcjsKK+WwhOmgu+WZqumfsyA+IHJmXC1ub2lzZTsKK+S6uumBk+S4u+e+qSA+IGh1bWFuaXNtOwor5LiA5b+D5LiA5oSPID4gaW50ZW50bHk7CivntrLpmpvntrLntaEgPiBpbnRlcm5ldDsKK+eyvuelnumMr+S6giA+IGluc2FuaXR5Owor5ZiJ5bm06I+v5pyDID4gY2Fybml2YWw7CivljZrojKjnk6bntI0gPiBib3Rzd2FuYTsKK+Wjn+aWt+iyqeizoyA+IG1vbm9wb2x5Owor5L+d5Yqg5Yip5LqeID4gYnVsZ2FyaWE7CivosrTml4/ouqvku70gPiBsb3Jkc2hpcDsKK+iCjOiCieeZvOmBlCA+IG11c2N1bGFyOwor5rWB5oSf55ar6IuXID4gZmx1XC1zaG90Owor5bel5L2c6YGO5bqmID4gb3Zlcndvcms7CivkuZnlpKrntrLot68gPiBldGhlcm5ldDsKK+mqqOmgreaetuWtkCA+IHNrZWxldG9uOwor5oSb5Zug5pav5Z2mID4gZWluc3RlaW47CivnhKHoq5bkvZXomZUgPiBhbnl3aGVyZTsKK+WFrOmWi+aMh+iyrCA+IGRlbm91bmNlOwor5q2h6L+O5YWJ6IeoID4gd2VsY29tZTsKK+WuieaPkOeTnOWztiA+IGFudGlndWE7Civllqrlv4Pnl4Xni4IgPiBsdW5hdGljOwor5qC85a2Q5qOJ5biDID4gZ2luZ2hhbTsKK+iQrOacieW8leWKmyA+IGdyYXZpdHk7CivmtojpmLLpmorlk6EgPiBmaXJlbWFuOwor5omz5LiN5YCS5YWSID4gdHVtYmxlcjsKK+eIrOifsuWLleeJqSA+IHJlcHRpbGU7CivpgIDkvI3ou43kurogPiB2ZXRlcmFuOwor5aSW56eR6Yar55SfID4gc3VyZ2VvbjsKK+WcqO+5jeS5i+mWkyA+IGJldHdlZW47CivljYHlhITkvY3lhYMgPiBnaWdhYml0Owor6Lqr6auU6Zqc5a6zID4gY3JpcHBsZTsKK+mYv+aRqeWwvOS6niA+IGFtbW9uaWE7CivooJXli5XliY3pgLIgPiB3cmlnZ2xlOwor5rS+57Wm5bel5L2cID4gdG9cLXRhc2s7CivolpTolofoirHolb4gPiByb3NlYnVkOwor54Sh6KuW5L2V5Lq6ID4gd2hvZXZlcjsKK+aWr+eTpuW4jOijoSA+IHN3YWhpbGk7CivoiKrnqbrpg7Xku7YgPiBhaXJtYWlsOwor5Lqe54m56Jit5aSnID4gYXRsYW50YTsKK+mAsumAgOWFqemboyA+IGRpbGVtbWE7CivkuI3nqILkuI3ojqAgPiB1c2VsZXNzOwor5YiG5p6Q5Lq65aOrID4gYW5hbHlzdDsKK+acgOS9jumZkOW6piA+IG1pbmltdW07CivlhYvku4DnsbPniL4gPiBrYXNobWlyOwor5rS75YuV5oi/5bGLID4gdHJhaWxlcjsKK+S7gOS4gOWlieeNuyA+IHRpdGhpbmc7Civloqjopb/lk6XkurogPiBtZXhpY2FuOwor5Yqg5qau6ICA5pa8ID4gZ2xvcmlmeTsKK+S4jeW5suS4jea3qCA+IHVuY2xlYW47CivkuInkvY3kuIDpq5QgPiB0cmluaXR5Owor5aWz55So5YWn6KGjID4gY2hlbWlzZTsKK+WFrOebiuS6i+alrSA+IHV0aWxpdHk7Civml6XluLjlt6XkvZwgPiByb3V0aW5lOwor55S35oCn6Kaq5bGsID4ga2luc21hbjsKK+iyqOeJqemBi+i8uCA+IGZyZWlnaHQ7CivniZnnp5HphqvnlJ8gPiBkZW50aXN0Owor6YOh5rK75a6J5a6YID4gc2hlcmlmZjsKK+S6nuS8r+aLiee9lSA+IGFicmFoYW07CivlhYvnvoXlnLDkup4gPiBjcm9hdGlhOwor5YWo56We54GM5rOoID4gcmFwdHVyZTsKK+WwiOenkemZouagoSA+IGFjYWRlbXk7Civpq5jpgJ/lhazot68gPiBoaWdod2F5Owor57Wm6IiH6LOH5qC8ID4gcXVhbGlmeTsKK+WNsOWcsOWuiemCoyA+IGluZGlhbmE7CivkuI3lvpfogIznn6UgPiB1bmtub3duOwor6Iiq56m65YWs5Y+4ID4gYWlybGluZTsKK+acieiAkOS5heWKmyA+IGR1cmFibGU7CivlpKrpmb3pu5HlrZAgPiBzdW5zcG90Owor5biM5Lyv5L6G5pu4ID4gaGVicmV3czsKK+Wlp+ael+WMueWFiyA+IG9seW1waWM7Civkup7liKnmoZHpgqMgPiBhcml6b25hOwor6JOL5LiW5aSq5L+dID4gZ2VzdGFwbzsKK+WWi+WWi+S4jeS8kSA+IGNoYXR0ZXI7CivmhJvlsYvlj4rng48gPiBsb3ZlXC1tZTsKK+e2k+a/n+WItuW6piA+IGVjb25vbXk7Civku6XppqzlhafliKkgPiBlbWFudWVsOwor6KaP5YqD5Lq65ZOhID4gcGxhbm5lcjsKK+aFiOWWhOapn+aniyA+IGNoYXJpdHk7CivnlLfmgKflsIrnqLEgPiBlc3F1aXJlOwor5LiN5LiJ5LiN5ZubID4gZHViaW91czsKK+WIl+eOi+e0gOS4iyA+IDJcLWtpbmdzOwor5YiX546L57SA5LiKID4gMVwta2luZ3M7Civpmbjou43kuIrmoKEgPiBjb2xvbmVsOwor6Jmb5qeL5bCP6KqqID4gZmljdGlvbjsKK+WkluenkeaJi+ihkyA+IHN1cmdlcnk7CivlkIToibLlkITmqKMgPiBkaXZlcnNlOwor5L2b576F6KOh6YGUID4gZmxvcmlkYTsKK+WFrOeIteWkq+S6uiA+IGR1Y2hlc3M7CivmnInlpb3lpYflv4MgPiBjdXJpb3VzOwor5b285b6X5b6M5pu4ID4gMlwtcGV0ZXI7CivnjrvliKnntq3kup4gPiBib2xpdmlhOwor5bCP5Z6L5quD5qulID4gY2FiaW5ldDsKK+WNsOWDj+a3seWIuyA+IGltcHJlc3M7CivmjIflsI7mlZnmjoggPiBhZHZpc2VyOwor5LiN55+l5L2V5pWFID4gc29tZWhvdzsKK+mYv+WPuOWMueaelyA+IGFzcGlyaW47Civph5HlhYnploPniI0gPiBzcGFuZ2xlOwor5LqS6IGv57ay57WhID4gbmV0d29yazsKK+WltOmauOWItuW6piA+IHNsYXZlcnk7CivmgaLlvqnljp/ni4AgPiByZXN0b3JlOwor6aas5L6G6KW/5LqeID4gbWFsYXNpYTsKK+WxseiDoeahg+acqCA+IGhpY2tvcnk7CivlvbzlvpfliY3mm7ggPiAxXC1wZXRlcjsKK+WwseWvouaZgumWkyA+IGJlZHRpbWU7Civlm5vovKrppqzou4ogPiBjaGFyaW90Owor5Lqe5ouJ5be06aasID4gYWxhYmFtYTsKK+W9iOmBk+WwjuW9iCA+IG1pc3NpbGU7CivmnInnsr7npZ7nl4UgPiBpbnNhbmU7Civlk7rkubPli5XniakgPiBtYW1tYWw7CivkvIrlsLzkvIrlvrcgPiBhZW5laWQ7CivloZ7niL7ntq3kup4gPiBzZXJiaWE7Civkvb/vuY3osZDlr4wgPiBlbnJpY2g7CivkvIrlsLzkup7mlq8gPiBhZW5lYXM7CivpqYXpgJDlh7rlooMgPiBkZXBvcnQ7CivlhavliIbpn7PnrKYgPiBxdWF2ZXI7CivlpKnnq7rniaHkuLkgPiBkYWhsaWE7Civpm6LlpYfmnInotqMgPiBxdWFpbnQ7CivnmbzlmI7lmI7ogbIgPiByYXR0bGU7CivotoXpgY7pmZDluqYgPiBleGNlZWQ7CivkuI3lj6/lkYrkurogPiBoaWRkZW47CivlipvotrPku6XlgZogPiBhZmZvcmQ7CivlnKjvuY3mnJ/plpMgPiBkdXJpbmc7CivnqK7ml4/kuLvnvqkgPiByYWNpc207CivlvpLmraXml4XooYwgPiBoaWtpbmc7Civml4XooYzoo53lgpkgPiBvdXRmaXQ7CivlnLDkuIvpkLXot68gPiBzdWJ3YXk7CivlqIHlo6vlv4zphZIgPiB3aGlza3k7CivpgKPlrZfnrKbomZ8gPiBoeXBoZW47Civlu6LpmaTou43lgpkgPiBkaXNhcm07CivpoZvlgJLpgY7kvoYgPiBpbnZlcnQ7CivkuIPmnIjkuIDomZ8gPiBqdWx5XC0xOwor6bue6aCt5oub5ZG8ID4gYmVja29uOwor5Lyv5Luy5Y+U5a2jID4gZWxkZXN0Owor6by75Y+j6YOo5YiGID4gbXV6emxlOwor5bCW6IGy5ZW85ZOtID4gc3F1ZWFsOwor5ZG96YGL6Ki75a6aID4gb3JkYWluOwor5Lq66aCt542F6LqrID4gc3BoaW54Owor5LiN5bm45LmL5LqLID4gbWlzaGFwOwor5Zyo77mN5LmL5peBID4gYmVzaWRlOwor57SE57+w5LqM5pu4ID4gMlwtam9objsKK+i9n+i9n+eDiOeDiCA+IHN0cm9uZzsKK+WNgeWbm+ihjOipqSA+IHNvbm5ldDsKK+S6jOiAheS5i+S4gCA+IGVpdGhlcjsKK+e0hOe/sOS4ieabuCA+IDNcLWpvaG47CivntITnv7DkuIDmm7ggPiAxXC1qb2huOwor576O5rSy5YWA6be5ID4gY29uZG9yOwor5LqU5YiG576O6YeRID4gbmlja2VsOwor6Zmk5LqG5LmL5aSWID4gZXhjZXB0Owor6KO96Zm25bel5Lq6ID4gcG90dGVyOwor5Lq65Y+j6Kq/5p+lID4gY2Vuc3VzOwor54Sh6KuW5aaC5L2VID4gYW55aG93Owor5Ye65Z+D5Y+K6KiYID4gZXhvZHVzOwor5pyJ6Jel55mu6ICFID4gYWRkaWN0Owor6Yej6a2a55So5YW3ID4gdGFja2xlOwor5q+U6LyD5Zac5q2hID4gcHJlZmVyOwor6Zi/5aSa5bC85pavID4gYWRvbmlzOwor6YCD5LmL5aSt5aStID4gZXNjYXBlOwor57Sr576F6Jit6ImyID4gdmlvbGV0Owor5YKt5Lq66aCY54+tID4gYnV0bGVyOwor5LiN5oiw5LiN5ZKMID4gbm9cLXdhcjsKK+iYh+agvOiYreW4vSA+IGJvbm5ldDsKK+a4m+S9jumAn+W6piA+IHJldGFyZDsKK+mYv+aLieaWr+WKoCA+IGFsYXNrYTsKK+S9v+WFt+mrlOWMliA+IGVtYm9keTsKK+mFkueyvumjsuaWmSA+IGxpcXVvcjsKK+i3keWgguWFkueahCA+IHdhaXRlcjsKK+S9v++5jeiDveWkoCA+IGVuYWJsZTsKK+eUn+awo+WLg+WLgyA+IGxpdmVseTsKK+eEoeazleeEoeWkqSA+IG91dGxhdzsKK+azouaWr+WwvOS6niA+IGJvc25pYTsKK+iZm+W8teiBsuWLoiA+IGJsdWZmOwor5pyq5oiQ5bm05Lq6ID4gbWlub3I7CivpurXljIXluKvlgoUgPiBiYWtlcjsKK+aEn+WMlumkheS5viA+IHdhZmVyOwor6Z2e5bi45a6z5oCVID4gZHJlYWQ7CivkuIDnt5rlvq7lhYkgPiBnbGVhbTsKK+S6lOiKseWFq+mWgCA+IG15cmlkOwor5pac57SL6Luf5ZGiID4gdHdlZWQ7CivlvrflhYvolqnmlq8gPiB0ZXhhczsKK+a7v+i6q+WhteWfgyA+IGR1c3R5Owor6Kq/5ZGz6IKJ5rGBID4gZ3Jhdnk7CivmqJnmupblsLrlr7ggPiBnYXVnZTsKK+WcqO+5jeS5i+S4iyA+IGJlbG93Owor5Zyo77mN5LmL5LiKID4gYWJvdmU7Civon7Lps6Xlj6vogbIgPiBjaGlycDsKK+WLleaFi+W9seWDjyA+IHZpZGVvOwor5LiJ5Y2D5LqU55m+ID4gM1wtNTAwOwor56S65aiB6YGL5YuVID4gcmFsbHk7CivovInosqjmsb3ou4ogPiBsb3JyeTsKK+W4g+W4m+iPveeynyA+IGNsb3RoOwor56We57aT6YGO5pWPID4ganVtcHk7CivkvIrmlq/omK3mlZkgPiBpc2xhbTsKK+aEgeecieiLpuiHiSA+IGZyb3duOwor5ZCJ5pmu6LO95Lq6ID4gZ3lwc3k7CivmhJvlhYvmlq/lhYkgPiB4XC1yYXk7Civlrrbluq3mlZnluKsgPiB0dXRvcjsKK+mcsum9kuiAjOeskSA+IGdyaW47Civlvp7lrrnkuI3ov6sgPiBjYWxtOwor5LiA6KeS6YqA5bmjID4gZGltZTsKK+mjsumjn+eZgumkiiA+IGRpZXQ7Civnm67nnqrlj6PlkYYgPiBzdHVuOwor5pO66b6N6ZaA6ZmjID4gY2hhdDsKK+WIsO+5jeS5i+S4iiA+IG9udG87Civlhajpq5Tkurrlk6EgPiBjcmV3Owor6YGg56iL55uj5o6nID4gcm1vbjsKK+WcqO+5jeS5i+S4rSA+IGFtaWQ7CivlsI/otbfph43mqZ8gPiBqYWNrOwor6LyV6ICM5piT6IiJID4gZWFzeTsKK+mHkeWxrOiWhOeJhyA+IGZvaWw7CivpoK3ohabmuIXmpZogPiBzYW5lOwor5Zyo5rC05q2l6KGMID4gd2FkZTsKK+WHuuenn+axvei7iiA+IHRheGk7Civpq5jniL7lpKvnkIMgPiBnb2xmOwor6Zu76Kmx6Yi06IGyID4gYnV6ejsKK+a2suaZtumhr+ekuiA+IGxjZDsKK+eDj+WQiOS5i+ecviA+IG1vYjsKK+e0ouWFt+ijnee9riA+IHJpZzsKK+WFrOWFseaxvei7iiA+IGJ1czsKK+iOq+WQjeWFtuWmmSA+IG9kZDsKK+Wck+W9ouacqOadkCA+IGxvZzsKK+S4jeWIhuWLneiyoCA+IHRpZTsKK+iho+acjee4q+mCiiA+IGhlbTsKK+Wck+W9oum6teWMhSA+IGJ1bjsKK+adnOadvuWtkOmFkiA+IGdpbjsKK+WcqO+5jeS5i+WFpyA+IGluOwor55u06YCa6LuKID4gXCJ0aHJvdWdoXC10cmFpblwiXC1cKHJlZmVyc1wtdG9cLXRoZVwtaWRlYVwtb2ZcLXJldGFpbmluZ1wtcHJldmlvdXNcLWxlZ2lzbGF0dXJlXC1hZnRlclwtdHJhbnNpdGlvblwtdG9cLWNoaW5lc2VcLXJ1bGVcLWluXC1ob25nXC1rb25nXC1vclwtbWFjYXVcKTsKK+Wwj+iHn+msvCA+IGRpcnR5XC1saXR0bGVcLW1vbnN0ZXJcLVwoc3Bva2VuXC1hZmZlY3Rpb25hdGVseVwtdG9cLWFcLWNoaWxkXC13aG9cLWhhc1wtZ290dGVuXC1oaW1cKGhlclwpc2VsZlwtZGlydHlcO1wtbGl0ZXJhbGx5XC1cImxpdHRsZVwtZGlydHlcLWdob3N0XCJcKTsKK+e2uuiJsuS9syA+IGl0aGFjYVwsXC1ueVwtXChidXRcLXByb25vdW5jZWRcLXlpM1wtc2U0XC1qaWExXCxcLWZvbGxvd2luZ1wtYVwtbWlzdGFrZVwtbWFkZVwtYnlcLWh1Mlwtc2hpNFwt6IOh6YGpXCk7Civpm7fls7DloZQgPiBsZWlmZW5nXC1wYWdvZGFcLFwtYnlcLXdlc3RcLWxha2VcLXVudGlsXC1pdFwtd2FzXC1kZXN0cm95ZWRcLVwoYWxzb1wtZnJvbVwtbWFkYW1cLXdoaXRlXC1zbmFrZVwpOwor54mh5Li55Y2hID4gcGVvbnlcLWNhcmRcLVwoY3JlZGl0XC1jYXJkXC1pc3N1ZWRcLWJ5XC1pbmR1c3RyaWFsXC1hbmRcLWNvbW1lcmNpYWxcLWJhbmtcLW9mXC1jaGluYVwpOwor5LiJ5bKU5Y+jID4gYXRcLXRoZVwtY3Jvc3Nyb2Fkc1wsXC10aGVcLW5hbWVcLW9mXC1hXC1mYW1vdXNcLW9wZXJhXCxcLXN0b3J5XC1mcm9tXC1zaHVpXC1odVwtemh1YW47CivmnY7oh6rmiJAgPiBuYW1lXC1vZlwtYVwtcGVyc29uXCxcLWxpXC16aVwtY2hlbmdcLFwtbGVhZGVyXC1vZlwtbWluZ1wtZHluYXN0eVwtcGVhc2FudFwtcmViZWxsaW9uOwor5rGf5YWr6bueID4gXCJqaWFuZ1wtemVtaW4nJ3NcLWVpZ2h0XC1wb2ludFwtZm9ybXVsYVwiXC1cKGZvclwtcmVzdW1pbmdcLWFcLWRpYWxvZ1wtd2l0aFwtdGFpd2FuXCk7CivphKfkuq7mtKogPiB0YW5nXC1saWFuZ1wtaG9uZ1wtXChvcHBvc2l0aW9uXC1jYW5kaWRhdGVcLWluXC1qYW5cLTE5OTZcLXNpbmdhcG9yZVwtZWxlY3Rpb25zXCk7CivlkIPlpKfmiLYgPiBtYXNzXC1zZWl6dXJlXC1vZlwtZm9vZFwtZnJvbVwtbGFuZGxvcmRzXC1kdXJpbmdcLWZhbWluZXNcLWJlZm9yZVwtbGliZXJhdGlvbjsKK+adjuaZguePjSA+IGxpXC1zaGlcLXpoZW5cLVwoMTUxOFwtMTU5M1wsXC1mYW1vdXNcLWRvY3RvclwsXC1hdXRob3JcLW9mXC1iZW4zXC1jYW8zXC1nYW5nMVwtbXU0Owor56a95rWB5oSfID4gXCJiaXJkXC1mbHVcIlwtXChmbHVcLWNhcnJpZWRcLWJ5XC1iaXJkc1wtXC1cLWZvdW5kXC1pblwtaG9uZ1wta29uZ1wtaW5cLWxhdGVcLTE5OTdcKTsKK+iSmeS7o+eIviA+IFwod2FsdGVyXClcLW1vbmRhbGVcLVwodXNcLWFtYmFzc2Fkb3JcLXRvXC1qYXBhblwsXC1mb3JtZXJcLXVzXC12aWNlXC1wcmVzaWRlbnRcKTsKK+mZs+e0jeW+tyA+IFwoY2xhaXJlXClcLWNoZW5uYXVsdFwsXC1jb21tYW5kZXJcLW9mXC1mbHlpbmdcLXRpZ2Vyc1wtZHVyaW5nXC13b3JsZFwtd2FyXC1paTsKK+e2reeIvuWuuSA+IFwoam9oYW5uZXNcLWxvZGV3aWt1c1wpXC12aWxqb2VuXC1cKHNvdXRoXC1hZnJpY2FuXC1hbWJhc3NhZG9yXC10b1wtdGFpd2FuXCk7CivokZvmtLLlo6kgPiBuYW1lXC1vZlwtYVwtcGxhY2VcLFwtZ2V6aG91YmFcLWRhbVwtb25cLXRoZVwtY2hhbmdqaWFuZ1wtcml2ZXJcLFwtaW5cLXNpY2h1YW47CivpvLvpn7vmr40gPiBcKG9mXC1jaGluZXNlXC1wcm9udW5jaWF0aW9uXClcLWFcLXZvd2VsXC1mb2xsb3dlZFwtYnlcLWFcLW5hc2FsXC1jb25zb25hbnQ7Civph5HmsLjljZcgPiBraW1cLXlvbmdcLW5hbVwtXChub3J0aFwta29yZWFuXC1kZXB1dHlcLXByZW1pZXJcLWFuZFwtZm9yZWlnblwtbWluaXN0ZXJcKTsKK+aWl+aJueaUuSA+IHN0cnVnZ2xlXC1jcml0aWNpc21cLXRyYW5zZm9ybWF0aW9uXC1cKGN1bHR1cmFsXC1yZXZvbHV0aW9uXC1zbG9nYW5cKTsKK+err+WNiOevgCA+IHRoZVwtZHJhZ29uXC1ib2F0XC1mZXN0aXZhbFwtXCh0aGVcLTV0aFwtZGF5XC1vZlwtdGhlXC01dGhcLWx1bmFyXC1tb250aFwpOwor55m96Iyr6IyrID4gXChvZlwtbWlzdFwsXC1zbm93XCxcLWZsb29kd2F0ZXJcLFwtZXRjXClcLWFcLXZhc3RcLWV4cGFuc2VcLW9mXC13aGl0ZW5lc3M7Civmlq/kvannvoUgPiBcKGpvYW5cKVwtc3Blcm9cLVwodW5kZXJcLXNlY3JldGFyeVwtb2ZcLXN0YXRlXC1mb3JcLWVjb25vbWljXC1hZmZhaXJzXCk7CivlpKrmpbXmi7MgPiBhXC1raW5kXC1vZlwtdHJhZGl0aW9uYWxcLWNoaW5lc2VcLXNoYWRvd2JveGluZ1wtXCh0YWlcLWNoaVwtY2h1YW5cKTsKK+acg+S4jeacgyA+IFwocG9zaW5nXC1hXC1xdWVzdGlvblw6XC13aGV0aGVyXC1zb21lb25lXCxcLXNvbWV0aGluZ1wpXC1jYW5cLW9yXC1ub3Q7CivmirHkvZvohbMgPiBjbGFzcFwtYnVkZGEnJ3NcLWZlZXRcLVwtXC1wcm9mZXNzXC1kZXZvdGlvblwtb25seVwtd2hlblwtaW5cLXRyb3VibGU7Civom4voirHmua8gPiBjbGVhclwtc291cFwtY29udGFpbmluZ1wtYmVhdGVuXC1lZ2dcLWFuZFwtZ3JlZW5cLWxlYWZ5XC12ZWdldGFibGU7Civph5HlsbHlr7ogPiBqaW5zaGFuXC10ZW1wbGVcLFwtd2hlcmVcLWZhaGFpXC1saXZlc1wtXChmcm9tXC1tYWRhbVwtd2hpdGVcLXNuYWtlXCk7CivkuKbokoLok64gPiB0d2luXC1sb3R1c1wtZmxvd2Vyc1wtb25cLW9uZVwtc3RhbGtcLVwtXC1hXC1kZXZvdGVkXC1tYXJyaWVkXC1jb3VwbGU7Civpo5vomY7pmoogPiBmbHlpbmdcLXRpZ2Vyc1wtXCh1c1wtYWlybWVuXC1pblwtY2hpbmFcLWR1cmluZ1wtd29ybGRcLXdhclwtdHdvXCk7CivmmpfoirHlhZIgPiBhXC12ZWlsZWRcLWRlc2lnblwtaW5jaXNlZFwtaW5cLXBvcmNlbGFpblwtb3JcLXdvdmVuXC1pblwtZmFicmljOwor5ouU572Q5a2QID4gY3VwcGluZ1wtdGVjaG5pcXVlXC11c2VkXC1pblwtdHJhZGl0aW9uYWxcLWNoaW5lc2VcLW1lZGljaW5lOwor5YWD5a6156+AID4gdGhlXC1sYW50ZXJuXC1mZXN0aXZhbFwsXC1qYW51YXJ5XC0xNVwtb25cLXRoZVwtbHVuYXJcLWNhbGVuZGFyOwor5YCL6auU5oi2ID4gYVwtc21hbGxcLXByaXZhdGVcLWJ1c2luZXNzXC1cKHVzZWRcLWluXC1tYWlubGFuZFwtY2hpbmFcLW9ubHlcKTsKK+aZr+W+t+mOriA+IGppbmdcLWRlXC16aGVuXC1cKGFcLWNoaW5lc2VcLWNpdHlcLWluXC1qaWFuZ1wteGlcLeaxn+ilv1wtcHJvdmluY2VcKTsKK+mVt+WfjuWNoSA+IGdyZWF0XC13YWxsXC1jYXJkXC1cKGNyZWRpdFwtY2FyZFwtaXNzdWVkXC1ieVwtYmFua1wtb2ZcLWNoaW5hXCk7Civlk4josp3niL4gPiBcKHdlYnN0ZXJcKVwtaHViYmVsbFwtXChmb3JtZXJcLWFzc29jaWF0ZVwtYXR0b3JuZXlcLWdlbmVyYWxcKTsKK+iQrOWjveWxsSA+IG5hbWVcLW9mXC1hXC1wbGFjZVwsXC1sb25nZXZpdHlcLWhpbGxcLFwtaW5cLXN1bW1lclwtcGFsYWNlXC3poKTlkozlnJI7Civmi4npgqPng4ggPiBcKHByaW5jZVwpXC1yYW5hcmlkZGhcLVwoc29uXC1vZlwta2luZ1wtc2loYW5vdWtcLW9mXC1jYW1ib2RpYVwpOwor5YyF5bmy5Yi2ID4gYVwtc3lzdGVtXC1vZlwtcGF5bWVudFwtcGFydGx5XC1pblwta2luZFwtYW5kXC1wYXJ0bHlcLWluXC1jYXNoOwor6aGP55yf5Y2/ID4gbmFtZVwtb2ZcLWFcLXBlcnNvblwsXC15YW5cLXpoZW5xaW5nXCxcLWFcLWZhbW91c1wtY2FsbGlncmFwaGVyOwor55m957Sg6LKeID4gXChuYW1lXC1vZlwtYVwtcGVyc29uXClcLWJhaVwtc3V6aGVuXCxcLWZyb21cLW1hZGFtXC13aGl0ZVwtc25ha2U7Civnmb3lhrDlhrAgPiBwYWlcLXBpbmdcLXBpbmdcLVwod2VsbFwta25vd25cLXRhaXdhblwtcGVyZm9ybWluZ1wtYXJ0aXN0XCk7CivkvK/mganmlq8gPiBcKG5pY2hvbGFzXClcLWJ1cm5zXC1cKHVzXC1zdGF0ZVwtZGVwYXJ0bWVudFwtc3Bva2VzcGVyc29uXCk7CivlsLzotavpra8gPiBcKGphd2FoYXJsYWxcKVwtbmVocnVcLVwoZmlyc3RcLXByaW1lXC1taW5pc3Rlclwtb2ZcLWluZGlhXCk7CivmkqXmtarpvJMgPiBhXC1kcnVtXC1zaGFwZWRcLXJhdHRsZVwtXCh1c2VkXC1ieVwtcGVkbGFyc1wtb3JcLWFzXC1hXC10b3lcKTsKK+WMl+Wkp+iNkiA+IHRoZVwtZ3JlYXRcLW5vcnRoZXJuXC13aWxkZXJuZXNzXC1cKGluXC1ub3J0aGVyblwtY2hpbmFcKTsKK+WNgeS6lOWkpyA+IDFcLTV0aFwtcGFydHlcLWNvbmdyZXNzXC1cKG9mXC1jaGluZXNlXC1jb21tdW5pc3RcLXBhcnR5XCk7CivmnY7lhYnogIAgPiBsZWVcLWt1YW5cLXlld1wtXChmb3JtZXJcLXByaW1lXC1taW5pc3Rlclwtb2ZcLXNpbmdhcG9yZVwpOwor6LeR5rGf5rmWID4gdG9cLW1ha2VcLWFcLWxpdmluZ1wtYXNcLWFcLXRyYXZlbGxpbmdcLXBlcmZvcm1lclwsXC1ldGNcLjsKK+S6pOaYk+mhjSA+IHN1bVwtb3JcLXZvbHVtZVwtb3JcLWFtb3VudFwtb2ZcLWJ1c2luZXNzXC10cmFuc2FjdGlvbnM7CivmnpfosZDmraMgPiBsaW5cLWZlbmdcLWNoZW5nXC1cKHRhaXdhblwtbWluaXN0ZXJcLW9mXC10aGVcLWludGVyaW9yXCk7CivokaPlu7roj68gPiB0dW5nXC1jaGVlXC1od2FcLVwoaG9uZ1wta29uZ1wtbGVhZGVyXC1hZnRlclwtanVseVwtMTk5N1wpOwor5Y2X5Lqs6LevID4gbmFuamluZ1wtc3RcLlwsXC1sYXJnZVwtY29tbWVyY2lhbFwtc3RyZWV0XC1pblwtc2hhbmdoYWk7Civlhavku5nmoYwgPiBvbGRcLWZhc2hpb25lZFwtc3F1YXJlXC10YWJsZVwtdG9cLXNlYXRcLWVpZ2h0XC1wZW9wbGU7CivloZ7mi4nlh6EgPiBcKHNvbm55XClcLXNlcmFwaGluXC1cKGhhaXRpYW5cLWFtYmFzc2Fkb3JcLXRvXC10YWl3YW5cKTsKK+mHkeWkp+S4rSA+IGtpbVwtZGFlXC1qdW5nXC1cKG5ld2x5XC1lbGVjdGVkXC1wcmVzaWRlbnRcLW9mXC1rb3JlYVwpOwor6IyD5pav5Z2mID4gXChkaWFubmVcKVwtZmVpbnN0ZWluXC1cKHVzXC1zZW5hdG9yXC1mcm9tXC1jYWxpZm9ybmlhXCk7CivmtrLmhYvmsLQgPiBsaXF1aWRcLXdhdGVyXC1cKGFzXC1vcHBvc2VkXC10b1wtc3RlYW1cLW9yXC1pY2VcLFwtZVwuZ1wuXCk7Civop6PmlL7ou40gPiBwZW9wbGUnJ3NcLWxpYmVyYXRpb25cLWFybXlcLVwoaWVcLFwtdGhlXC1jaGluZXNlXC1hcm15XCk7CivotpnntKvpmb0gPiB6aGFvXC16aXlhbmdcLVwoZm9ybWVyXC1jaGluZXNlXC1sZWFkZXJzaGlwXC1maWd1cmVcKTsKK+S6kumAmuaApyA+IGludGVyb3BlcmFiaWxpdHlcLVwob2ZcLWNvbW11bmljYXRpb25zXC1lcXVpcG1lbnRcKTsKK+WFqOaWl+eFpSA+IGNodW5cLWRvb1wtaHdhblwtXChmb3JtZXJcLXNvdXRoXC1rb3JlYW5cLXByZXNpZGVudFwpOwor5o6i6Lev6ICFID4gcGF0aGZpbmRlclwtXChzcGFjZVwtY3JhZnRcLXNlbnRcLXRvXC1tYXJzXC1ieVwtbmFzYVwpOwor5bSU5Lqe55CzID4gY2hhcmxlc1wteWFoXC1saW5cLXRyaWVcLVwoYXJrYW5zYXNcLXJlc3RhdXJhbnRldXJcKTsKK+WwiOahiOe1hCA+IHNwZWNpYWxcLVwobGVnYWxcfGp1ZGljaWFsXClcLWludmVzdGlnYXRpb25zXC1ncm91cDsKK+mVt+aymeeBoyA+IGNoZXVuZ1wtc2hhXC13YW5cLVwocG91bHRyeVwtbWFya2V0XC1pblwtaG9uZ1wta29uZ1wpOwor5q2j5bi45YyWID4gbm9ybWFsaXphdGlvblwtXChvZlwtZGlwbG9tYXRpY1wtcmVsYXRpb25zXCxcLWV0Y1wpOwor6Kyd6KOh5aSrID4gXChuYXdhelwpXC1zaGFyaWZcLVwocHJpbWVcLW1pbmlzdGVyXC1vZlwtcGFraXN0YW5cKTsKK+WQs+S9nOajnyA+IGdvaFwtY2hva1wtdG9uZ1wtXChwcmltZVwtbWluaXN0ZXJcLW9mXC1zaW5nYXBvcmVcKTsKK+W3peS6uum7qCA+IHdvcmtlcnMnJ1wtcGFydHlcLVwoc2luZ2Fwb3JlXC1vcHBvc2l0aW9uXC1wYXJ0eVwpOwor5pav5L2p5p6XID4gc3BlbGxpbmdcLVwoZWdcLFwtc3BlbGxpbmdcLWVudGVydGFpbm1lbnRcLWdyb3VwXCk7Civnm6fms7DmhJogPiByb2hcLXRhZVwtd29vXC1cKGZvcm1lclwtc291dGhcLWtvcmVhblwtcHJlc2lkZW50XCk7CivpvYrnmb3nn7MgPiBuYW1lXC1vZlwtYVwtZmFtb3VzXC1jaGluZXNlXC1hcnRpc3RcLFwtcWlcLWJhaVwtc2hpOwor5ZWG5YuZ6YOoID4gY29tbWVyY2VcLWRlcGFydG1lbnRcLVwob2ZcLXRoZVwtdXNcLWdvdmVybm1lbnRcKTsKK+iAgeS8tOWFkiA+IFwob2ZcLWFuXC1vbGRcLW1hcnJpZWRcLWNvdXBsZVwpXC1odXNiYW5kXC1vclwtd2lmZTsKK+aihuWtkOiFlCA+IGFcLWdlbmVyYWxcLXRlcm1cLWZvclwtbG9jYWxcLW9wZXJhc1wtaW5cLXNoYW5neGk7CivmooXomK3oirMgPiBuYW1lXC1vZlwtYVwtdmVyeVwtZmFtb3VzXC1iZWlqaW5nXC1vcGVyYVwtYXJ0aXN0Owor6KGM5pS/6ZmiID4gZXhlY3V0aXZlXC15dWFuXC1cKGdvdmVybm1lbnRcLWJvZHlcLWluXC10YWl3YW5cKTsKK+adsOS9m+iMsiA+IFwoamFtZXNcKVwtamVmZm9yZHNcLVwodXNcLXNlbmF0b3JcLWZyb21cLXZlcm1vbnRcKTsKK+e+heW4g+aziiA+IGxvcFwtbm9yXC1cKG51Y2xlYXJcLXRlc3RpbmdcLXNpdGVcLWluXC14aW5qaWFuZ1wpOwor5rCR6YCy6buoID4gZHBwXC1cKGRlbW9jcmF0aWNcLXByb2dyZXNzaXZlXC1wYXJ0eVwsXC10YWl3YW5cKTsKK+eZveiKseibhyA+IGxvbmdcLW5vc2VkXC1waXRcLXZpcGVyXC1cKGFna2lzdHJvZG9uXC1hY3V0dXNcKTsKK+ecvuitsOWToSA+IG1lbWJlclwtb2ZcLXRoZVwtdXNcLWhvdXNlXC1vZlwtcmVwcmVzZW50YXRpdmVzOwor6YKB56eR6KOhID4gXChtaWtlXClcLW1jY3VycnlcLVwod2hpdGVcLWhvdXNlXC1zcG9rZXNwZXJzb25cKTsKK+WgseWRiuacgyA+IHB1YmxpY1wtbGVjdHVyZVwtXCh3aXRoXC1ndWVzdFwtc3BlYWtlcnNcLFwtZXRjXCk7CivliKnkvK/mm7wgPiBcKGNvbm5lY3RpY3V0XC1zZW5hdG9yXC1qb3NlcGhcLWlcLlwpXC1saWViZXJtYW47CivpuqXnp5Hoo6EgPiBcKG1pa2VcKVwtbWNjdXJyeVwtXCh3aGl0ZVwtaG91c2VcLXNwb2tlc3BlcnNvblwpOwor56We5aWz5bOwID4gbmFtZVwtb2ZcLWFcLXBlYWtcLWJ5XC1jaGFuZ2ppYW5nXC10aHJlZVwtZ29yZ2VzOwor55m95puJ54eVID4gcGFpXC1oc2lhb1wteWVuXC1cKGRhdWdodGVyXC1vZlwtcGFpXC1waW5nXC1waW5nXCk7Civph5Hml6XmiJAgPiBraW1cLWlsXC1zdW5nXC1cKGZvcm1lclwtbm9ydGhcLWtvcmVhblwtbGVhZGVyXCk7CivlpKrmpbXlio0gPiBhXC1raW5kXC1vZlwtdHJhZGl0aW9uYWxcLWNoaW5lc2VcLXN3b3JkXC1wbGF5Owor5Y+45rOV6YOoID4ganVzdGljZVwtZGVwYXJtZW50XC1cKG9mXC10aGVcLXVzXC1nb3Zlcm5tZW50XCk7CivluqvntI3ljZcgPiBcKGFuZHJld1wpXC1jdW5hbmFuXC1cKGFsbGVnZWRcLXNlcmlhbFwta2lsbGVyXCk7Civpu4Plu7rljZcgPiBqb2huXC1odWFuZ1wtXChkZW1vY3JhdGljXC1wYXJ0eVwtZnVuZHJhaXNlclwpOwor6buD5bKp5bO2ID4gaHVhbmd5YW5cLWlzbGFuZFwtXChpblwtdGhlXC1zb3V0aFwtY2hpbmFcLXNlYVwpOwor5qmf6Zec5aCxID4gb2ZmaWNpYWxcLVwoZ292ZXJubWVudFwtb3BlcmF0ZWRcKVwtbmV3c3BhcGVyOwor5YWl5a24546HID4gcGVyY2VudGFnZVwtb2ZcLWNoaWxkcmVuXC13aG9cLWVudGVyXC1zY2hvb2w7CivojIXoh7rphZIgPiBtYW90YWlcLW9yXC1tYWl0YWlcLVwoY2hpbmVzZVwtc3Ryb25nXC1kcmlua1wpOwor546L576y5LmLID4gbmFtZVwtb2ZcLWFcLXBlcnNvblwsXC1hXC1mYW1vdXNcLWNhbGxpZ3JhcGhlcjsKK+mCiuinkuenkSA+IGxlZnRvdmVyXC1iaXRzXC1hbmRcLXBpZWNlc1wtXChvZlwtaW5kdXN0cmlhbDsKK+mYv+aYjOaXjyA+IHRoZVwtYWNoYW5nXC1uYXRpb25hbGl0eVwtbGl2aW5nXC1pblwteXVubmFuOwor5L2p5rSb6KW/ID4gXChuYW5jeVwpXC1wZWxvc2lcLVwobWVtYmVyXC1vZlwtdXNcLWNvbmdyZXNzXCk7CivlkJDpra/nlaogPiB0aGVcLXR1cmZhblwtYmFzaW5cLFwtaW5cLXhpbmppYW5nXC1wcm92aW5jZTsKK+WNiuiEq+eUoiA+IHBhcnRseVwtcmVsZWFzZWRcLWZyb21cLXByb2R1Y3RpdmVcLWxhYm91cjsKK+e4veabuOiomCA+IGdlbmVyYWxcLXNlY3JldGFyeVwtXChvZlwtY29tbXVuaXN0XC1wYXJ0eVwpOwor5rKI5ZyL5pS+ID4gY2hpbmVzZVwtZm9yZWlnblwtbWluaXN0cnlcLXNwb2tlc3BlcnNvbjsKK+ephuahguiLsSA+IG11XC1ndWlcLXlpbmdcLVwobmFtZVwtb2ZcLWFcLXdvbWFuXC13YXJyaW9yXCk7CivlravlpbPlhZIgPiBncmFuZGRhdWdodGVyXC1cKGRhdWdodGVyXC1vZlwtb25lJydzXC1zb25cKTsKK+WwmuaFleadsCA+IGphbWVzXC1zYXNzZXJcLVwodXNcLWFtYmFzc2Fkb3JcLXRvXC1jaGluYVwpOwor5aGe54i+5Y2XID4gXChldWdlbmVcKVwtY2VybmFuXC1cKGFwb2xsb1wtMTdcLWFzdHJvbmF1dFwpOwor5bm055Wr5YWSID4gbmV3XC15ZWFyXC1cKG9yXC1zcHJpbmdcLWZlc3RpdmFsXClcLXBpY3R1cmU7CivpkLXpo6/nopcgPiBcImlyb25cLXJpY2VcLWJvd2xcIlwtXC1cLVwtc2VjdXJlXC1lbXBsb3ltZW50Owor6IOh5b+X5piOID4gaG9cLWNoaVwtbWluaFwtXCh2aWV0bmFtZXNlXC1sZWFkZXJcLFwtY2l0eVwpOwor5b6Q5oKy6bS7ID4gbmFtZVwtb2ZcLWFcLWZhbW91c1wtcGFpbnRlclwsXC14dVwtYmVpaG9uZzsKK+iKseacqOiYrSA+IGh1YVwtbXVcLWxhblwtXChuYW1lXC1vZlwtYVwtd29tYW5cLXdhcnJpb3JcKTsKK+aJk+S4jemBjiA+IG5vdFwtdG9cLWJlXC1hYmxlXC10b1wtYmVhdFwtb3JcLWRlZmVhdFwtc2JcLjsKK+eZvOS6huiogCA+IFwoXCJwYXN0XC10ZW5zZVwiXC1vZlwtXDrnmbzoqIBcKVwtc3Bva2VcLXB1YmxpY2x5Owor5LiN6Ieq6YePID4gbm90XC10YWtlXC1hXC1wcm9wZXJcLW1lYXN1cmVcLW9mXC1vbmVzZWxmOwor5oqE5b6M6LevID4gdG9cLW91dGZsYW5rXC1hbmRcLWF0dGFja1wtZnJvbVwtdGhlXC1yZWFyOwor57eo5bm06auUID4gYW5uYWxpc3RpY1wtc3R5bGVcLVwoaW5cLWhpc3RvcmlvZ3JhcGh5XCk7CivlrrbphInpm54gPiAnJ2hvbWVcLXRvd25cLWNoaWNrZW4nJ1wtXChhXC10eXBlXC1vZlwtZGlzaFwpOwor56ug5a2d5Zq0ID4gam9oblwtY2hhbmdcLVwodGFpd2FuXC1mb3JlaWduXC1taW5pc3RlclwpOwor5L6G5LiN5Y+KID4gdGhlcmUnJ3NcLW5vdFwtZW5vdWdoXC10aW1lXC1cKHRvXC1kb1wtc3RoXC5cKTsKK+atu+S4jeS6hiA+IHBvcnR1bGFjYVwtc3VuZGlhbFwtXChhXC10eXBlXC1vZlwtcGxhbnRcKTsKK+i/juaYpeiKsSA+IHdpbnRlclwtamFzbWluZVwsXC1qYXNtaW51bVwtbnVkaWZsb3J1bTsKK+S4u+S6uue/gSA+IG1hc3RlclwtXChvZlwtb25lJydzXC1vd25cLWRlc3RpbnlcLFwtZXRjXC5cKTsKK+WTiOWvhueTnCA+IGhhbWlcLW1lbG9uXC1cKGFcLXZhcmlldHlcLW9mXC1tdXNrbWVsb25cKTsKK+iyv+aYk+mhjSA+IHZvbHVtZVwtb2ZcLXRyYWRlXC1cKGJldHdlZW5cLWNvdW50cmllc1wpOwor57i95YuV5ZOhID4gZ2VuZXJhbFwtbW9iaWxpemF0aW9uXC1cKGZvclwtd2FyXCxcLWV0Y1wpOwor5bSp6b6N5pePID4gdGhlXC1iZW5nbG9uZ1wtXChwZW5nbHVuZ1wpXC1uYXRpb25hbGl0eTsKK+mcuOeOi+merSA+IGFcLXJhdHRsZVwtc3RpY2tcLXVzZWRcLWluXC1mb2xrXC1kYW5jaW5nOwor55m95q6t6KC2ID4gdGhlXC1sYXJ2YVwtb2ZcLXNpbGt3b3JtXC13aXRoXC1iYXRyeXRpczsKK+S4jeWkseeCuiA+IGNhblwtc3RpbGxcLWJlXC1jb25zaWRlcmVkXC1cKHRvXC1iZVwuXC5cLlwpOwor5pyA5oOg5ZyLID4gbW9zdFwtZmF2b3JlZFwtbmF0aW9uXC1cKHRyYWRlXC1zdGF0dXNcKTsKK+WfuumHkeacgyA+IGFcLWZvdW5kYXRpb25cLVwoaWVcLFwtYW5cLW9yZ2FuaXphdGlvblwpOwor5omT6Yyv5LqGID4gXCJ5b3VcLWhhdmVcLWRpYWxlZFwtdGhlXC13cm9uZ1wtbnVtYmVyXCI7Civnl4XljIXlhZIgPiBhXC1wZXJzb25cLXdob1wtaXNcLWFsd2F5c1wtZmFsbGluZ1wtaWxsOwor5ouJ6I6r5pavID4gXChwaGlsaXBwaW5lXC1wcmVzaWRlbnRcLWZpZGVsXClcLXJhbW9zOwor6IOh5b+X5by3ID4gamFzb25cLWh1XC1cKHRhaXdhblwtZm9yZWlnblwtbWluaXN0ZXJcKTsKK+W5q+WAkuW/mSA+IGJlXC1tb3JlXC1vZlwtYVwtaGluZHJhbmNlXC10aGFuXC1hXC1oZWxwOwor5L+x5qiC6YOoID4gY2x1YlwtXChpZVwsXC1hXC1ncm91cFwtb3JcLW9yZ2FuaXphdGlvblwpOwor5Yue5YuV56+AID4gaW50ZXJuYXRpb25hbFwtbGFib3JcLWRheVwtXChtYXlcLWRheVwpOwor5oqx57KX6IW/ID4gbGF0Y2hcLW9uXC10b1wtdGhlXC1yaWNoXC1hbmRcLXBvd2VyZnVsOwor6YeR5q2j5pelID4ga2ltXC1qb25nXC1pbFwtXChub3J0aFwta29yZWFuXC1sZWFkZXJcKTsKK+S4jeaRuOmgrSA+IG5vdFwtYWNxdWFpbnRlZFwtd2l0aFwtdGhlXC1zaXR1YXRpb247CivprY/kuqznlJ8gPiB3ZWlcLWppbmdzaGVuZ1wtXChjaGluZXNlXC1kaXNzaWRlbnRcKTsKK+WQg+S4jeS4iiA+IGJlXC11bmFibGVcLXRvXC1nZXRcLXNvbWV0aGluZ1wtdG9cLWVhdDsKK+aqouWvn+WumCA+IHRoZVwtcHJvc2VjdXRpb25cLVwoaW5cLWFcLWNvdXJ0XC1jYXNlXCk7CivlnoPlnL7ou4ogPiBnYXJiYWdlXC10cnVja1wtXChvclwtb3RoZXJcLXZlaGljbGVcKTsKK+W4g+azlee+hSA+IGJ1ZmZhbG9cLVwoY2l0eVwtaW5cLW5ld1wteW9ya1wtc3RhdGVcKTsKK+WFq+acg+eptCA+IHRoZVwtZWlnaHRcLXN0cmF0ZWdpY1wtbmVydmVcLXBvaW50czsKK+mWi+aZruaVpiA+IGNhcGVcLXRvd25cLVwoY2l0eVwtaW5cLXNvdXRoXC1hZnJpY2FcKTsKK+imi+S4jeW+lyA+IG1heVwtbm90XC1iZVwtc2VlblwtYnlcLW9yXC1leHBvc2VkXC10bzsKK+WJtei+puS6uiA+IGZvdW5kZXJcLVwob2ZcLWFuXC1pbnN0aXR1dGlvblwsXC1ldGNcKTsKK+mAvOS+m+S/oSA+IG9idGFpblwtY29uZmVzc2lvbnNcLWJ5XC1jb21wdWxzaW9uOwor6LKg6LKs5Lq6ID4gcGVyc29uXC1pblwtY2hhcmdlXC1cKG9mXC1zb21ldGhpbmdcKTsKK+WNgeS4iee2kyA+IHRoZVwtdGhpcnRlZW5cLWNvbmZ1Y2lhblwtY2xhc3NpY3M7Civnl4Xon7LlrrMgPiBwbGFudFwtZGlzZWFzZXNcLWFuZFwtaW5zZWN0XC1wZXN0czsKK+WQg+S4jeacjSA+IG5vdFwtYmVcLWFjY3VzdG9tZWRcLXRvXC1lYXRpbmdcLXN0aDsKK+mmrOWwvOaLiSA+IG1hbmlsYVwtXChjYXBpdGFsXC1vZlwtcGhpbGlwcGluZXNcKTsKK+aHieipsuiqqiA+IGl0XC1zaG91bGRcLWJlXC1tZW50aW9uZWRcLXRoYXRcLVwuXC5cLjsKK+S4jeW+l+S4jSA+IGhhdmVcLW5vXC1jaG9pY2VcLW9yXC1vcHRpb25cLWJ1dFwtdG87CivljJfkvJDou40gPiB0aGVcLW5vcnRoZXJuXC1leHBlZGl0aW9uYXJ5XC1hcm15Owor5Y+v56e75qSNID4gcG9ydGFibGVcLVwocHJvZ3JhbW1pbmdcLWxhbmd1YWdlXCk7CivntpPmv5/lrbggPiBlY29ub21pY3NcLVwoYXNcLWFcLWZpZWxkXC1vZlwtc3R1ZHlcKTsKK+aEm+mdouWtkCA+IGJlXC1jb25jZXJuZWRcLWFib3V0XC1mYWNlXC1zYXZpbmc7CivloqjniL7nvL0gPiBtZWxib3VybmVcLVwoYW5cLWF1c3RyYWxpYW5cLWNpdHlcKTsKK+e0ouadsOe0jSA+IHNvam91cm5lclwtXChtYXJ0aWFuXC1sYW5kXC1yb3ZlclwpOwor6KuH5b6X5L6GID4gYWJsZVwtdG9cLXRhbGtcLXRvXC1vclwtZ2V0XC1vblwtd2l0aDsKK+ePreS4u+S7uyA+IGFcLXRlYWNoZXJcLWluXC1jaGFyZ2VcLW9mXC1hXC1jbGFzczsKK+WwjuiIquWToSA+IG5hdmlnYXRvclwtXChvblwtYVwtcGxhbmVcLW9yXC1ib2F0XCk7CivnnL7orbDpmaIgPiBob3VzZVwtb2ZcLXJlcHJlc2VudGF0aXZlc1wtXCh1c2FcKTsKK+eVtuS6i+S6uiA+IHBlcnNvbnNcLWludm9sdmVkXC1vclwtaW1wbGljYXRlZDsKK+e0hee2oOeHiCA+IFwocmVkXC1hbmRcLWdyZWVuXClcLXRyYWZmaWNcLWxpZ2h0Owor6YeN6KSH56+AID4gcmVwZWF0ZWRcLXNlZ21lbnRcLVwobmV0d29ya2luZ1wpOwor5YW15bel5bugID4gbXVuaXRpb25zXC1vclwtb3JkbmFuY2VcLWZhY3Rvcnk7CivljYrouqvlg48gPiBoYWxmXC1sZW5ndGhcLXBob3RvXC1vclwtcG9ydHJhaXQ7Civnmbzpm7vph48gPiBcKGdlbmVyYXRlZFwpXC1lbGVjdHJpY2FsXC1lbmVyZ3k7Civkv53lronml48gPiB0aGVcLWJhb2FuXC1cKHBhb2FuXClcLW5hdGlvbmFsaXR5Owor5rGf5r6k5rCRID4gamlhbmdcLXplbWluXC1cKGNoaW5lc2VcLXByZW1pZXJcKTsKK+W5tOWknOmjryA+IG5ld1wteWVhcicnc1wtZXZlXC1mYW1pbHlcLWRpbm5lcjsKK+adjueZu+i8nSA+IGxlZVwtdGVuZ1wtaHVpXC1cKHRhaXdhblwtbGVhZGVyXCk7CivlpKfoh6rnhLYgPiBuYXR1cmVcLVwoYXNcLWluXC1tb3RoZXJcLW5hdHVyZVwpOwor56uL5pa557GzID4gY3ViaWNcLW1ldGVyXC1cKHVuaXRcLW9mXC12b2x1bWVcKTsKK+WQg+S4jea2iCA+IGJlXC11bmFibGVcLXRvXC1zdGFuZFwtXChleGVydGlvbjsKK+aKleelqOermSA+IHBvbGxpbmdcLXN0YXRpb25cLVwoZm9yXC1hXC12b3RlXCk7CivlvpfnpajnjocgPiBwZXJjZW50YWdlXC1vZlwtdm90ZXNcLW9idGFpbmVkOwor5ZCD5LiN5L2PID4gYmVcLXVuYWJsZVwtdG9cLWJlYXJcLW9yXC1zdXBwb3J0Owor6Ieq5rK75Y2AID4gYXV0b25vbW91c1wtcmVnaW9uXC1cKGluXC1jaGluYVwpOwor5by157SU5aaCID4gXChhbWVyaWNhblwtYXV0aG9yXClcLWlyaXNcLWNoYW5nOwor54+t5YuZ5pyDID4gYVwtcm91dGluZVwtbWVldGluZ1wtb2ZcLWFcLXNxdWFkOwor5paw5b636KOhID4gbmV3XC1kZWxoaVwtXChjYXBpdGFsXC1vZlwtaW5kaWFcKTsKK+WPjeWwjem7qCA+IG9wcG9zaXRpb25cLVwocG9saXRpY2FsXClcLXBhcnR5Owor6Kqq5piO5pu4ID4gc3lub3BzaXNcLVwob2ZcLWFcLXBsYXlcLW9yXC1maWxtXCk7Civlj5vkuoLnvaogPiB0aGVcLWNyaW1lXC1vZlwtYXJtZWRcLXJlYmVsbGlvbjsKK+W3ruW+l+WkmiA+IGZhbGxcLXNob3J0XC1ieVwtYVwtbGFyZ2VcLWFtb3VudDsKK+WPsOeBo+ipsSA+IHRhaXdhbmVzZVwtY2hpbmVzZVwtXChsYW5ndWFnZVwpOwor6JGJ5Yip5qy9ID4gXChydXNzaWFuXC1wcmVzaWRlbnRcKVwteWVsdHNpbjsKK+m7g+a1puaxnyA+IGh1YW5ncHVcLXJpdmVyXC1cKGluXC1zaGFuZ2hhaVwpOwor6IOM5YyF6KKxID4gaGF2ZVwtYVwtd2VpZ2h0XC1vblwtb25lJydzXC1taW5kOwor5aCx5oi25Y+jID4gYXBwbHlcLWZvclwtYVwtcmVzaWRlbnRcLXBlcm1pdDsKK+Wci+mam+e0miA+IFwoYXRcLWFuXClcLWludGVybmF0aW9uYWxcLWxldmVsOwor5ZCD5LiN5L6GID4gbm90XC1iZVwtZm9uZFwtb2ZcLWNlcnRhaW5cLWZvb2Q7Civmk5rloLHlsI4gPiBhY2NvcmRpbmdcLXRvXC1cKG5ld3NcKVwtcmVwb3J0czsKK+eXheavkuWtuCA+IHZpcm9sb2d5XC1cKHN0dWR5XC1vZlwtdmlydXNlc1wpOwor6ICM5LiN6ZyAID4gd2l0aG91dFwtbmVlZGluZ1wtXCh0b1wtc29cLXN0aFwpOwor5Lqk5o+b5qmfID4gc3dpdGNoXC1cKHRlbGVjb21tdW5pY2F0aW9uc1wpOwor5aSn6Zm46KmxID4gbWFpbmxhbmRcLWNoaW5lc2VcLVwobGFuZ3VhZ2VcKTsKK+S6pOaPm+WZqCA+IFwodGVsZWNvbVwtb3JcLW5ldHdvcmtcKVwtc3dpdGNoOwor6YCa6KiK56S+ID4gYVwtbmV3c1wtc2VydmljZVwtXChlZ1wsXC14aW5odWFcKTsKK+aEm+WlveiAhSA+IGxvdmVyXC1cKG9mXC1hcnRcLFwtc3BvcnRzXCxcLWV0Y1wpOwor5YWs5a6J6YOoID4gbWluaXN0cnlcLW9mXC1wdWJsaWNcLXNlY3VyaXR5Owor5oqx5LiN5bmzID4gYmVcLW91dHJhZ2VkXC1ieVwtYW5cLWluanVzdGljZTsKK+eUt+WtkOa8oiA+IG1hblwtXChpXC5lXC5cLW1hbmx5XCxcLW1hc2N1bGluZVwpOwor5be05YWS54uXID4gcGVraW5nZXNlXC1cKGFcLWJyZWVkXC1vZlwtZG9nXCk7CivlrZjou4romZUgPiBwYXJraW5nXC1sb3RcLVwoZm9yXC1iaWN5Y2xlc1wpOwor6by754mb5YWSID4gaGFyZGVuZWRcLW11Y3VzXC1pblwtbm9zdHJpbHM7CivmoYPoirHpgYsgPiBsdWNrXC13aXRoXC10aGVcLW9wcG9zaXRlXC1zZXg7CivlvJfloZ7lpYcgPiB2ZXJzYWNlXC1cKGZhc2hpb25cLWRlc2lnbmVyXCk7Civmma7pgJroqbEgPiBtYW5kYXJpblwtXChjb21tb25cLWxhbmd1YWdlXCk7Civlub7lubTkvoYgPiBmb3JcLXRoZVwtcGFzdFwtc2V2ZXJhbFwteWVhcnM7CivpoKTlkozlnJIgPiBzdW1tZXJcLXBhbGFjZVwtXChpblwtYmVpamluZ1wpOwor6aas5L6G5Lq6ID4gbWFsYXlzaWFuXC1wZXJzb25cLW9yXC1wZW9wbGU7CivlupXnibnlvosgPiBkZXRyb2l0XC1cKGFcLWNpdHlcLWluXC10aGVcLXVzXCk7Civmg4Xms4HkuIsgPiB1bmRlclwtXCh0aGlzXClcLWNpcmN1bXN0YW5jZXM7Civmuqvlk6Xoj68gPiB2YW5jb3V2ZXJcLVwoY2l0eVwtaW5cLWNhbmFkYVwpOwor55m96aCt57+BID4gcm9vdFwtb2ZcLWNoaW5lc2VcLXB1bHNhdGlsbGE7CivkuK3mlofniYggPiBjaGluZXNlXC1cKGxhbmd1YWdlXClcLXZlcnNpb247Civpq5jkuK3nlJ8gPiBzZW5pb3JcLWhpZ2hcLXNjaG9vbFwtc3R1ZGVudDsKK+adv+e+veeQgyA+IGJhdHRsZWRvcmVcLWFuZFwtc2h1dHRsZWNvY2s7Civlj4PlhanpmaIgPiBib3RoXC1ob3VzZXNcLW9mXC11c1wtY29uZ3Jlc3M7CivnmZ/onrrnl6cgPiBjaG9sZXJhXC1cKHdpdGhcLWRlaHlkcmF0aW9uXCk7CivpgI/pgJrmgKcgPiB0cmFuc3BhcmVuY3lcLVwobmV0d29ya2luZ1wpOwor54ef5qWt6aGNID4gc3VtXC1vclwtdm9sdW1lXC1vZlwtYnVzaW5lc3M7Civnn67lgIvlhZIgPiBhXC1wZXJzb25cLW9mXC1zaG9ydFwtc3RhdHVyZTsKK+aguOWkp+WciyA+IGFcLW51Y2xlYXJcLXBvd2VyXC1cKGNvdW50cnlcKTsKK+W4jOiHmOiqniA+IFwobW9kZXJuXClcLWdyZWVrXC1cKGxhbmd1YWdlXCk7CivmmYLplpPlhacgPiB3aXRoaW5cLVwoYVwtcGVyaW9kXC1vZlwtdGltZVwpOwor5LiL5bel5aSrID4gdG9cLXB1dFwtaW5cLXRpbWVcLWFuZFwtZW5lcmd5Owor5pel5pys5Lq6ID4gamFwYW5lc2VcLXBlcnNvblwtb3JcLXBlb3BsZTsKK+eEoemZkOacnyA+IHVubGltaXRlZFwtXCh0aW1lXClcLWR1cmF0aW9uOwor5biV6Jit5Y2hID4gcGFsYW5rYVwtXChhXC1wZXJzb25hbFwtbmFtZVwpOwor5Lq65rCR5bmjID4gY2hpbmVzZVwtdW5pdFwtb2ZcLWN1cnJlbmN5Owor5rWB5rCT572qID4gdGhlXC1jcmltZVwtb2ZcLWhvb2xpZ2FuaXNtOwor6YyE6Z+z5qmfID4gXCh0YXBlXClcLXJlY29yZGluZ1wtbWFjaGluZTsKK+S7o+S5i+S7pSA+IFwoaGFzXC1iZWVuXClcLXJlcGxhY2VkXC13aXRoOwor6K6K5oiy5rOVID4gcGVyZm9ybVwtY29uanVyaW5nXC10cmlja3M7CivnmbzooYzpoY0gPiBcKHBlcmlvZGljYWxcKVwtY2lyY3VsYXRpb247CivljYHkuInml6UgPiB0aGlydGlldGhcLWRheVwtb2ZcLWFcLW1vbnRoOwor5LiL5Y2K6LqrID4gbG93ZXJcLWhhbGZcLW9mXC1vbmUnJ3NcLWJvZHk7CivljbDmrZDoqp4gPiBpbmRvXC1ldXJvcGVhblwtXChsYW5ndWFnZVwpOwor5YWn5pS/6YOoID4gbWluaXN0cnlcLW9mXC10aGVcLWludGVyaW9yOwor5Y2w5q2Q5paHID4gaW5kb1wtZXVyb3BlYW5cLVwobGFuZ3VhZ2VcKTsKK+eEoem7qOa0viA+IHBvbGl0aWNhbGx5XC11bmFmZmlsaWF0ZWQ7Civororpm7vnq5kgPiBcKHRyYW5zZm9ybWVyXClcLXN1YnN0YXRpb247CivmnKjkuYPkvIogPiBtdW1teVwtXChwcmVzZXJ2ZWRcLWNvcnBzZVwpOwor5aSW5Lqk6YOoID4gZm9yZWlnblwtYWZmYWlyc1wtbWluaXN0cnk7CivpgbLmtannlLAgPiBjaGluZXNlXC1kZWZlbnNlXC1taW5pc3RlcjsKK+WMl+a6q+W4tiA+IHRoZVwtbm9ydGhcLXRlbXBlcmF0ZVwtem9uZTsKK+aJk+mbu+ipsSA+IHRvXC1tYWtlXC1hXC10ZWxlcGhvbmVcLWNhbGw7CivmraLnl5vms5UgPiBtZXRob2RcLW9mXC1yZWxpZXZpbmdcLXBhaW47CivljJfljYrnkIMgPiB0aGVcLW5vcnRoZXJuXC1oZW1pc3BoZXJlOwor6ZuZ57We57eaID4gdW5zaGllbGRlZFwtdHdpc3RlZFwtcGFpdDsKK+WMheaJv+WItiA+IHJlc3BvbnNpYmxlXC1jcmV3XC1zeXN0ZW07Civmkq3mlL7mqZ8gPiBwbGF5ZXJcLVwoZVwuZ1wuXC1jZFwtcGxheWVyXCk7Civmk5rntbHoqIggPiBhY2NvcmRpbmdcLXRvXC1zdGF0aXN0aWNzOwor55WZ5a2455SfID4gc3R1ZGVudFwtc3R1ZHlpbmdcLWFicm9hZDsKK+WkmuW5tOS+hiA+IGZvclwtdGhlXC1wYXN0XC1tYW55XC15ZWFyczsKK+S4reeni+evgCA+IHRoZVwtbWlkXC1hdXR1bW5cLWZlc3RpdmFsOwor6aas6Lev5Y+jID4gaW50ZXJzZWN0aW9uXC1cKG9mXC1yb2Fkc1wpOwor5oi057at5pavID4gZGF2aXNcLVwoZW5nbGlzaFwtc3VybmFtZVwpOwor57SF5qiT5aSiID4gYVwtZHJlYW1cLW9mXC1yZWRcLW1hbnNpb25zOwor6YGO5LiN5Y67ID4gbWFrZVwtbGlmZVwtZGlmZmljdWx0XC1mb3I7Civmg4XloLHomZUgPiBzb3VyY2VcLVwob2ZcLWluZm9ybWF0aW9uXCk7CivohZDmlZfnvaogPiB0aGVcLWNyaW1lXC1vZlwtY29ycnVwdGlvbjsKK+eZveibh+WCsyA+IHRhbGVcLW9mXC10aGVcLXdoaXRlXC1zbmFrZTsKK+WNiuaIkOWTgSA+IHNlbWlcLW1hbnVmYWN0dXJlZFwtZ29vZHM7CivlpZTpoK3lhZIgPiBzb21ldGhpbmdcLXRvXC1zdHJpdmVcLWZvcjsKK+S4rei9ieermSA+IGh1YlwtXChuZXR3b3JrXC1lcXVpcG1lbnRcKTsKK+mmmea4r+S6uiA+IGhvbmdcLWtvbmdcLXBlcnNvblx8cGVvcGxlOwor5oWV6YGT5Y+LID4gcmVsaWdpb3VzXC1pbnZlc3RpZ2F0b3I7CivliZ3mjqHmr5QgPiBzdHJpcHBpbmdcLXRvXC1vcmVcLXJhdGlvOwor55uu55qE5ZywID4gZGVzdGluYXRpb25cLVwobG9jYXRpb25cKTsKK+Wci+WLmemZoiA+IHN0YXRlXC1kZXBhcnRtZW50XC1cKHVzYVwpOwor5Y2B5LqU5YSEID4gb25lXC1hbmRcLWFcLWhhbGZcLWJpbGxpb247CivntIXnh5LogokgPiByZWRcLWNvb2tlZFwtXChwb3JrXClcLW1lYXQ7CivlhazlronlsYAgPiBwdWJsaWNcLXNlY3VyaXR5XC1idXJlYXU7Civnmbznl4XnjocgPiBpbmNpZGVuY2VcLW9mXC1hXC1kaXNlYXNlOwor55aR5ZWP5Y+lID4gaW50ZXJyb2dhdGl2ZVwtc2VudGFuY2U7CivmraTkuIDmmYIgPiB0aGF0XC13YXNcLW9uZVwtc2l0dWF0aW9uOwor5LiN5aW95oO5ID4gbm90XC10b1wtYmVcLXRyaWZsZWRcLXdpdGg7CivkuI3lvpflt7IgPiBhY3RcLWFnYWluc3RcLW9uZScnc1wtd2lsbDsKK+S4iuWNiuW5tCA+IGZpcnN0XC1oYWxmXC1cKG9mXC1hXC15ZWFyXCk7CivkuI3opoHoh4kgPiBoYXZlXC1ub1wtc2Vuc2VcLW9mXC1zaGFtZTsKK+iDjOWcsOmiqCA+IGJlaGluZFwtc29tZWJvZHknJ3NcLWJhY2s7Civov5HlubTkvoYgPiBmb3JcLXRoZVwtcGFzdFwtZmV3XC15ZWFyczsKK+WFtuiHqui6qyA+IG9uZScnc1wtb3duXC1cKHJlc3BlY3RpdmVcKTsKK+eBq+eEsOWxsSA+IHRoZVwtbW91bnRhaW5cLW9mXC1mbGFtZXM7Civlt6XkvZznq5kgPiBcKGNvbXB1dGVyXClcLXdvcmtzdGF0aW9uOwor5Y2w5q2Q5Lq6ID4gaW5kb1wtZXVyb3BlYW5cLVwocGVyc29uXCk7CivlnablhYvou4ogPiB0YW5rXC1cKGFybW9yZWRcLXZlaGljbGVcKTsKK+S4jeWDj+aooyA+IGluXC1ub1wtc2hhcGVcLXRvXC1iZVwtc2VlbjsKK+iuiuWIhuazlSA+IGNhbGN1bHVzXC1vZlwtdmFyaWF0aW9uczsKK+ilv+mBiuiomCA+IHBpbGdyaW1hZ2VcLXRvXC10aGVcLXdlc3Q7CivnlaLmpa3nlJ8gPiBncmFkdWF0ZVwtXChvZlwtYVwtc2Nob29sXCk7Civog4zpu5HpjYsgPiB0b1wtYmVcLW1hZGVcLWFcLXNjYXBlZ29hdDsKK+mdiOaVj+W6piA+IFwobGV2ZWxcLW9mXClcLXNlbnNpdGl2aXR5Owor5b285LiA5pmCID4gdGhhdFwtd2FzXC1vbmVcLXNpdHVhdGlvbjsKK+i7n+ehrOS7tiA+IHNvZnR3YXJlXC1hbmRcLWhhcmR3YXJlOwor54ax6ZaA6LKoID4gZ29vZHNcLWluXC1ncmVhdFwtZGVtYW5kOwor6YCa5L+h6YePID4gY29tbXVuaWNhdGlvbnNcLXZvbHVtZTsKK+elneizgOipniA+IGNvbmdyYXR1bGF0b3J5XC1zcGVlY2g7Civlub7ljYHlubQgPiBzZXZlcmFsXC10ZW5zXC1vZlwteWVhcnM7Civmr5TmlrnoqqogPiB0b1wtbWFrZVwtYW5cLWFuYWxvZ3lcLlwuXC47CivpuqXoir3ns5YgPiBtYWx0b3NlXC1cKHN3ZWV0XC1zeXJ1cFwpOwor576O6IGv56S+ID4gYXNzb2NpYXRlZFwtcHJlc3NcLVwoYXBcKTsKK+aOqOiWpuS/oSA+IHJlY29tbWVuZGF0aW9uXC1sZXR0ZXI7Civlub7lpKnkvoYgPiBmb3JcLXRoZVwtcGFzdFwtZmV3XC1kYXlzOwor5oqV5LqG56WoID4gcGFzdFwtdGVuc2VcLW9mXC10b1wtdm90ZTsKK+iCr+WwvOi/qiA+IGtlbm5lZHlcLVwocHJvcGVyXC1uYW1lXCk7Civkv53orbfljYAgPiBjb25zZXJ2YXRpb25cLWRpc3RyaWN0Owor5aWn5b636LO9ID4gdGhlXC1vZHlzc2V5XCxcLWJ5XC1ob21lcjsKK+i2iuWNl+iqniA+IHZpZXRuYW1lc2VcLVwobGFuZ3VhZ2VcKTsKK+Wbm+W5tOWJjSA+IGZvdXJcLXllYXJzXC1wcmV2aW91c2x5Owor6KO96YCg5ZWGID4gbWFudWZhY3R1cmluZ1wtY29tcGFueTsKK+WPjemdqeWRvSA+IGNvdW50ZXJcLXJldm9sdXRpb25hcnk7CivogIHlhanlj6MgPiBhblwtb2xkXC1tYXJyaWVkXC1jb3VwbGU7Civmi5zmiorlrZAgPiBiZWNvbWVcLXN3b3JuXC1icm90aGVyczsKK+WMl+WvkuW4tiA+IHRoZVwtbm9ydGhcLWZyaWdpZFwtem9uZTsKK+WFq+i3r+i7jSA+IHRoZVwtZWlnaHRoXC1yb3V0ZVwtYXJteTsKK+WNl+WMl+altSA+IHNvdXRoXC1hbmRcLW5vcnRoXC1wb2xlczsKK+iRo+S6i+mVtyA+IGNoYWlybWFuXC1vZlwtdGhlXC1ib2FyZDsKK+S4jeihjOS6hiA+IG9uXC10aGVcLXBvaW50XC1vZlwtZGVhdGg7CivljaHopb/lsLwgPiBjYXNzaW5pXC1cKHByb3BlclwtbmFtZVwpOwor5YWJ56OB56KfID4gbWFnbmV0b1wtb3B0aWNhbFwtZGlzazsKK+WNmuimveacgyA+IFwoaW50ZXJuYXRpb25hbFwpXC1mYWlyOwor5LiA6Iis5oCnID4gXChpblwpXC1nZW5lcmFsXC1cKHRlcm1zXCk7CivpgIvpgIPol6ogPiByZWZ1Z2VcLWZvclwtZnVnaXRpdmVzOwor55m955y854+gID4gdGhlXC13aGl0ZVwtb2ZcLXRoZVwtZXllOwor5o2V6J+y6JGJID4gaW5zZWN0XC1jYXRjaGluZ1wtbGVhZjsKK+S4jembheingCA+IG9mZmVuc2l2ZVwtdG9cLXRoZVwtZXllOwor6Zmz6L+w5Y+lID4gZGVjbGFyYXRpdmVcLXNlbnRlbmNlOwor6YCZ5YCL5pyIID4gdGhpc1wtXChjdXJyZW50XClcLW1vbnRoOwor5LiA5riF5pepID4gZWFybHlcLWluXC10aGVcLW1vcm5pbmc7CivlgI3poLvlmaggPiBmcmVxdWVuY3lcLW11bHRpcGxpZXI7CivpoJjlsI7mrIogPiBsZWFkZXJzaGlwXC1hdXRob3JpdHk7CivntIDlv7Xml6UgPiBkYXlcLW9mXC1jb21tZW1vcmF0aW9uOwor55m95qOJ57SZID4gc3RlbmNpbFwtdGlzc3VlXC1wYXBlcjsKK+aMqueqqeWFkiA+IHRvXC1tb3ZlXC1cKHRvXC1hXC1ob3VzZVwpOwor5b635ZyL5Lq6ID4gZ2VybWFuXC1wZXJzb25cfHBlb3BsZTsKK+Wkp+a4heaXqSA+IGVhcmx5XC1pblwtdGhlXC1tb3JuaW5nOwor55m+5LqL6YCaID4ga25vd2xlZGdlYWJsZVwtcGVyc29uOwor5LiN5q275b+DID4gdW53aWxsaW5nXC10b1wtZ2l2ZVwtdXA7CivnpKbms4nmsLQgPiBtaW5lcmFsXC1zcHJpbmdcLXdhdGVyOwor5ZCD5LiN5LiLID4gbm90XC1mZWVsXC1saWtlXC1lYXRpbmc7CivokKzntq3ntrIgPiB3b3JsZFwtd2lkZVwtd2ViXC1cKHd3d1wpOwor5a+m6auU5bGkID4gcGh5c2ljYWxcLWxheWVyXC1cKG9zaVwpOwor54++6ZqO5q61ID4gYXRcLXRoZVwtcHJlc2VudFwtc3RhZ2U7Civlj5vlnIvnvaogPiB0aGVcLWNyaW1lXC1vZlwtdHJlYXNvbjsKK+mMpuaomeizvSA+IGNoYW1waW9uc2hpcFwtY29udGVzdDsKK+ertueIreWKmyA+IGNvbXBldGl0aXZlXC1zdHJlbmd0aDsKK+mBi+WLleacgyA+IGFcLXNwb3J0c1wtY29tcGV0aXRpb247Civot5Hpvo3lpZcgPiB0b1wtcGxheVwtYVwtc21hbGxcLXJvbGU7Civlvrfpm7fniL4gPiBcKGp1bmVcLXRldWZlbFwpXC1kcmV5ZXI7CivosqHmlL/pg6ggPiBtaW5pc3RyeVwtb2ZcLWZpbmFuY2U7Civlu6PlkYrllYYgPiBhZHZlcnRpc2luZ1wtY29tcGFueTsKK+aFsOWuieWppiA+IGNvbWZvcnRcLXdvbWFuXHx3b21lbjsKK+aKmOWwhOeOhyA+IGluZGV4XC1vZlwtcmVmcmFjdGlvbjsKK+W5tOS7o+WInSA+IGJlZ2lubmluZ1wtb2ZcLWFuXC1hZ2U7CivpmLLnpqbmgKcgPiBkZWZlbnNpdmVcLVwod2VhcG9uc1wpOwor5omT5qmr54KuID4gc3BlYWtcLXVud2FycmFudGVkbHk7CivnmbzoqIDmrIogPiB0aGVcLXJpZ2h0XC1vZlwtc3BlZWNoOwor5bm05LmL5LmFID4gcGVyaW9kXC1vZlwtXC5cLlwuXC15ZWFyczsKK+S4jeS4reaEjyA+IG5vdFwtdG9cLW9uZScnc1wtbGlraW5nOwor55m+5YiG5Yi2ID4gaHVuZHJlZFwtbWFya1wtc3lzdGVtOwor5YiG5p6Q5a62ID4gXChwb2xpdGljYWxcKVwtYW5hbHlzdDsKK+eri+azleacgyA+IGxlZ2lzbGF0aXZlXC1jb3VuY2lsOwor5byV5Yqb5aC0ID4gZ3Jhdml0YXRpb25hbFwtZmllbGQ7CivmtojogJfph48gPiByYXRlXC1vZlwtY29uc3VtcHRpb247CivmoLjpm7vnq5kgPiBudWNsZWFyXC1wb3dlclwtcGxhbnQ7CivooajpnaLljJYgPiBjb21lXC10b1wtdGhlXC1zdXJmYWNlOwor6Zu76Kmx5qmfID4gdGVsZXBob25lXC1lcXVpcG1lbnQ7CivnuL3ntbHlupwgPiBwcmVzaWRlbnRpYWxcLXBhbGFjZTsKK+api+aOpeWZqCA+IGJyaWRnZVwtXChuZXR3b3JraW5nXCk7CivppqzkvobmlocgPiBtYWxhc2lhblwtXChsYW5ndWFnZVwpOwor5LiN5b6X5LqGID4gZGVzcGVyYXRlbHlcLXNlcmlvdXM7Civmnb/mooHmqYsgPiBwbGF0ZVwtZ2lyZGVyXC1icmlkZ2U7CivmoL3ot5/poK0gPiB0b1wtc3VmZmVyXC1hXC1zZXRiYWNrOwor5qC45bel56iLID4gbnVjbGVhclwtZW5naW5lZXJpbmc7CivlronnkIbmnIMgPiB1blwtc2VjdXJpdHlcLWNvdW5jaWw7Civmk7rploDpnaIgPiBrZWVwXC11cFwtYXBwZWFyYW5jZXM7Civot6/pgI/npL4gPiByZXV0ZXJzXC1uZXdzXC1hZ2VuY3k7Civnp5HlrbjpmaIgPiBhY2FkZW15XC1vZlwtc2NpZW5jZXM7CivmraXpgLLliLYgPiBzdGVwXC1ieVwtc3RlcFwtc3lzdGVtOwor5YmN6JiH6IGvID4gZm9ybWVyXC1zb3ZpZXRcLXVuaW9uOwor5LiN5Zyo5oSPID4gcGF5XC1ub1wtYXR0ZW50aW9uXC10bzsKK+WkluWtq+WlsyA+IGRhdWdodGVyJydzXC1kYXVnaHRlcjsKK+WGsOmGi+mFuCA+IGdsYWNpYWxcLWFjZXRpY1wtYWNpZDsKK+a2iOeCjuiXpSA+IGFudGliaW90aWNcLW1lZGljaW5lOwor5aeU5ZOh6ZW3ID4gaGVhZFwtb2ZcLWFcLWNvbW1pdHRlZTsKK+aDheWgseWxgCA+IGludGVsbGlnZW5jZVwtYWdlbmN5Owor5YyF6Lqr5belID4gaW5kZW50dXJlZFwtbGFib3VyZXI7CivmsbrorbDmoYggPiBcKHBhc3NcLWFcKVwtcmVzb2x1dGlvbjsKK+WMl+S6rOS6uiA+IHBlcnNvblwtZnJvbVwtYmVpamluZzsKK+iyoOiyrOS7uyA+IHJlc3BvbnNpYmlsaXR5XC1mb3I7CivkuK3lsbHoo50gPiBjaGluZXNlXC10dW5pY1wtc3VpdDsKK+e3rOeUuOiqniA+IGJ1cm1lc2VcLVwobGFuZ3VhZ2VcKTsKK+aUv+ayu+eKryA+IHBvbGl0aWNhbFwtcHJpc29uZXI7CivlubTku6XkvoYgPiBzaW5jZVwtdGhlXC15ZWFyXC1cLlwuXC47CivmlrDoj6/npL4gPiB4aW5odWFcLW5ld3NcLWFnZW5jeTsKK+S4jeS4reeUqCA+IHVuZml0XC1mb3JcLWFueXRoaW5nOwor6YCy5LiA5q2lID4gXChvbmVcLXN0ZXBcKVwtZnVydGhlcjsKK+aPkOS+m+WVhiA+IHByb3ZpZGVyXC1cKGNvbXBhbnlcKTsKK+WOn+iYh+iBryA+IGZvbWVyXC1zb3ZpZXRcLXVuaW9uOwor5aSp5a6J6ZaAID4gdGlhbmFubWVuXC1cKHNxdWFyZVwpOwor5LiN5Y+X55CGID4gcmVqZWN0XC1hXC1jb21wbGFpbnQ7CivnmbzpgZTlnIsgPiBkZXZlbG9waW5nXC1jb3VudHJ5Owor6LeR6K2m5aCxID4gdG9cLXJ1blwtZm9yXC1zaGVsdGVyOwor55m96ZaL5rC0ID4gcGxhaW5cLWJvaWxlZFwtd2F0ZXI7Civmi5vlvoXmnIMgPiBcKHByZXNzXClcLWNvbmZlcmVuY2U7Civmh7fkv4TmmI4gPiB3eW9taW5nXC1cKHVzXC1zdGF0ZVwpOwor5Y2h5ouJ5aWHID4ga2FyYWNoaVwtXChwYWtpc3RhblwpOwor5Y2K6KaP566hID4gc2VtaWNpcmN1bGFyXC1jYW5hbDsKK+mmrOS+huiqniA+IG1hbGF5c2lhblwtbGFuZ3VhZ2U7Civmr5TkuI3kuIogPiBjYW4nJ3RcLWNvbXBhcmVcLXdpdGg7CivlnIvpmLLpg6ggPiBkZWZlbnNlXC1kZXBhcnRtZW50Owor6LaV5LiN5LiKID4gY2FuJyd0XC1rZWVwXC11cFwtd2l0aDsKK+aLv+S4u+aEjyA+IHRvXC1tYWtlXC1hXC1kZWNpc2lvbjsKK+W4uOWnlOacgyA+IHN0YW5kaW5nXC1jb21taXR0ZWU7CivlpKflrbjnlJ8gPiB1bml2ZXJzaXR5XC1zdHVkZW50Owor54CP6Ka95ZmoID4gYnJvd3NlclwtXChzb2Z0d2FyZVwpOwor5LiW57SA5pyrID4gZW5kXC1vZlwtdGhlXC1jZW50dXJ5Owor5pOB6K236ICFID4gc3VwcG9ydGVyXC1cKHBlcnNvblwpOwor5ZyL5YuZ5Y2/ID4gc2VjcmV0YXJ5XC1vZlwtc3RhdGU7CivljYrovKnlrZAgPiBoYWxmXC1vZlwtYVwtbGlmZXRpbWU7Civnq5nnrqHnkIYgPiBzdGF0aW9uXC1tYW5hZ2VtZW50Owor6Iqs6Jit6KqeID4gZmlubmlzaFwtXChsYW5ndWFnZVwpOwor6K6K5rOV5YWSID4gdHJ5XC1kaWZmZXJlbnRcLXdheXM7Civmtbfnqbrou40gPiBuYXZ5XC1hbmRcLWFpclwtZm9yY2U7CivntLDoj4zmiLAgPiBiaW9sb2dpY2FsXC13YXJmYXJlOwor55Ge5YW46KqeID4gc3dlZGlzaFwtXChsYW5ndWFnZVwpOwor5raJ5auM5Lq6ID4gXChjcmltaW5hbFwpXC1zdXNwZWN0Owor5L215o2y5qmfID4gcmliYm9uXC1sYXBcLW1hY2hpbmU7CivliKXli5XpmoogPiBzcGVjaWFsXC1kZXRhY2htZW50Owor56CU56m25omAID4gcmVzZWFyY2hcLWluc3RpdHV0ZTsKK+W5tOi8leWMliA+IG1ha2VcLW1vcmVcLXlvdXRoZnVsOwor5Yqg6YCf5ZmoID4gYWNjZWxlcmF0b3JcLVwoY29tcFwpOwor5LiN562J6JmfID4gc2lnblwtb2ZcLWluZXF1YWxpdHk7Civopb/ljYrnkIMgPiB3ZXN0ZXJuXC1oZW1pc3BoZXJlOwor5qC45oqA6KGTID4gbnVjbGVhclwtdGVjaG5vbG9neTsKK+WgseWLmeWToSA+IHRlbGVncmFwaFwtb3BlcmF0b3I7CivlhYnms6LplbcgPiBvcHRpY2FsXC13YXZlbGVuZ3RoOwor5ZaJ5pOm6Z+zID4gZ3V0dHVyYWxcLWZyaWNhdGl2ZTsKK+WFq+e0muW3pSA+IGVpZ2h0XC1ncmFkZVwtd29ya2VyOwor5L2b6JKZ54m5ID4gdmVybW9udFwtXFt1c1wtc3RhdGVcXTsKK+euoeeQhuermSA+IG1hbmFnZW1lbnRcLXN0YXRpb247CivoqqrkuI3lrpogPiBjYW4nJ3RcLXNheVwtZm9yXC1zdXJlOwor5rOi5pav6KqeID4gYm9zbmlhblwtXChsYW5ndWFnZVwpOwor5YSY5Y+v6IO9ID4gYXNcLWZhclwtYXNcLXBvc3NpYmxlOwor5YyF5om/57WEID4gXChyZXNwb25zaWJsZVwpXC1jcmV3Owor55m+6JGJ566xID4gdGhlcm1vbWV0ZXJcLXNjcmVlbjsKK+mBv+mbt+WZqCA+IGxpZ2h0bmluZ1wtYXJyZXN0ZXI7CivmiLDprKXmqZ8gPiBmaWdodGVyXC1cKGFpcmNyYWZ0XCk7Civpoa/npLrlmaggPiBtb25pdG9yXC1cKGNvbXB1dGVyXCk7Civlv4Xkv67oqrIgPiBhXC1yZXF1aXJlZFwtY291cnNlOwor5YOF5qyh5LqOID4gc2Vjb25kXC1vbmx5XC10b1wuXC5cLjsKK+acnemuruiqniA+IGtvcmVhblwtXChsYW5ndWFnZVwpOwor5bu656+J5qWtID4gYnVpbGRpbmdcLWluZHVzdHJ5Owor6bql5YWL57atID4gXCh0aW1vdGh5XClcLW1jdmVpZ2g7Civmh4nnlKjlsaQgPiBhcHBsaWNhdGlvblwtbGF5ZXI7CivmoYzliKXmnpcgPiBcKGNoYXJsaWVcKVwtY2hhcGxpbjsKK+iTi+eIvuiqniA+IGdhZWxpY1wtXChsYW5ndWFnZVwpOwor54Sh5omA6KyCID4gdG9cLWJlXC1pbmRpZmZlcmVudDsKK+apn+WZqOS6uiA+IG1lY2hhbmljYWxcLXBlcnNvbjsKK+W7o+Wfn+e2siA+IHdpZGVcLWFyZWFcLW5ldHdvcms7Civntq3mjIHosrsgPiBtYWludGVuYW5jZVwtY29zdHM7Civmnb/mk6blhZIgPiBibGFja2JvYXJkXC1lcmFzZXI7CivlkIzmgKfmiIAgPiBob21vc2V4dWFsXC1cKGxvdmVcKTsKK+mbu+ipsee2siA+IHRlbGVwaG9uZVwtbmV0d29yazsKK+aAp+mot+aTviA+IHNleHVhbFwtaGFyYXNzbWVudDsKK+apq+aWt+eJqSA+IHRyYW5zdmVyc2VcLW9iamVjdDsKK+eZveWxiOiPnCA+IGdyZWF0ZXJcLWNlbGFuZGluZTsKK+WCs+i8uOeOhyA+IHRyYW5zbWlzc2lvblwtcmF0ZTsKK+S8uuacjeWZqCA+IHNlcnZlclwtXChjb21wdXRlclwpOwor5pyN5YuZ5ZmoID4gc2VydmVyXC1cKGNvbXB1dGVyXCk7CivlnIvpmpvms5UgPiBpbnRlcm5hdGlvbmFsXC1sYXc7CivkvrXmiKrogIUgPiBcKGNvbXB1dGVyXClcLWhhY2tlcjsKK+WIneWtuOiAhSA+IGJlZ2lubmluZ1wtc3R1ZGVudDsKK+ilv+eOi+avjSA+IG5hbWVcLW9mXC1hXC1nb2RkZXNzOwor5Zyo6aCt54mIID4gb25cLXRoZVwtZnJvbnRcLXBhZ2U7Civms6LomK3oqp4gPiBwb2xpc2hcLVwobGFuZ3VhZ2VcKTsKK+i9n+eCuOapnyA+IGJvbWJlclwtXChhaXJjcmFmdFwpOwor6Yar5a245a62ID4gbWVkaWNhbFwtc2NpZW50aXN0Owor6I+v55ub6aCTID4gd2FzaGluZ3RvblwtXChkXC5jXC5cKTsKK+S4n+mjr+eilyA+IHRvXC1sb3NlXC1vbmUnJ3NcLWpvYjsKK+avlOi8g+aWsCA+IGNvbXBhcmF0aXZlbHlcLW5ldzsKK+mbu+S/oeiZnyA+IGVsZWN0cmljYWxcLXNpZ25hbDsKK+enmOabuOmVtyA+IHNlY3JldGFyeVwtZ2VuZXJhbDsKK+atkOa0suS6uiA+IGV1cm9wZWFuXC1cKHBlcnNvblwpOwor6KGb55Sf6YOoID4gaGVhbHRoXC1kZXBhcnRtZW50Owor5aSq5bmz5rSLID4gdGhlXC1wYWNpZmljXC1vY2VhbjsKK+WOn+WboOaYryA+IHRoZVwtcmVhc29uXC1pc1wtXC5cLlwuOwor5LiA5bm05Y2KID4gYVwteWVhclwtYW5kXC1hXC1oYWxmOwor5LiN55SY5b+DID4gbm90XC1yZWNvbmNpbGVkXC10bzsKK+WuouaItuapnyA+IGNsaWVudFwtXChjb21wdXRlclwpOwor5aSx5qWt546HID4gdW5lbXBsb3ltZW50XC1yYXRlOwor6K2m5a+f5bGAID4gcG9saWNlXC1kZXBhcnRtZW50Owor5q245b+D6ICFID4gcmVsaWdpb3VzXC1jb252ZXJ0Owor5rKS6Zec5L+CID4gaXRcLWRvZXNuJyd0XC1tYXR0ZXI7CivljIXlnJLlhZIgPiBidXlcLXRoZVwtd2hvbGVcLWxvdDsKK+S4gOi6q+axlyA+IHN3ZWF0aW5nXC1hbGxcLW92ZXI7Civnmb3ntLDog54gPiB3aGl0ZVwtYmxvb2RcLWNlbGw7CivmgKfpl5zkv4IgPiBzZXh1YWxcLXJlbGF0aW9uczsKK+aur+WEgOmkqCA+IHRoZVwtdW5kZXJ0YWtlcicnczsKK+eglOiojuacgyA+IGRpc2N1c3Npb25cLWZvcnVtOwor6LOH5paZ6YePID4gcXVhbnRpdHlcLW9mXC1kYXRhOwor57eo6Lyv5a6kID4gZWRpdG9yaWFsXC1vZmZpY2U7Civmi4nkuIHoqp4gPiBsYXRpblwtXChsYW5ndWFnZVwpOwor6YGp6YWN5bGkID4gYWRhcHRhdGlvblwtbGF5ZXI7Civlh7rpoqjpoK0gPiB0b1wtY3JlYXRlXC1hXC1zdGlyOwor6LaK6YeO6LuKID4gb2ZmXC1yb2FkXC12ZWhpY2FsOwor6YGp6YWN5ZmoID4gYWRhcHRlclwtXChkZXZpY2VcKTsKK+WJr+S4u+W4rSA+IHZpY2VcLWNoYWlycGVyc29uOwor5o235YWL6KqeID4gY3plY2hcLVwobGFuZ3VhZ2VcKTsKK+ethuW6leS4iyA+IGFiaWxpdHlcLXRvXC13cml0ZTsKK+aguOWOn+aWmSA+IG51Y2xlYXJcLW1hdGVyaWFsOwor55m96KGA55CDID4gd2hpdGVcLWJsb29kXC1jZWxsOwor5LiN54it5rCjID4gYmVcLWRpc2FwcG9pbnRpbmc7CivljJflhrDmtIsgPiB0aGVcLWFyY3RpY1wtb2NlYW47Civlj4jkvobkuoYgPiBoZXJlXC13ZVwtZ29cLWFnYWluOwor5Y2B5aSa5YSEID4gb3Zlclwtb25lXC1iaWxsaW9uOwor5LiA5LiL5a2QID4gaW5cLWFcLXNob3J0XC13aGlsZTsKK+aguOioreaWvSA+IG51Y2xlYXJcLWZhY2lsaXR5Owor6Z2e5pS/5bqcID4gbm9uXC1nb3Zlcm5tZW50YWw7CivkuLvlubnnt5ogPiBiYWNrYm9uZVwtXChjYWJsZVwpOwor6Zu76KaW5qmfID4gdGVsZXZpc2lvblwtXChzZXRcKTsKK+a1geihjOeXhSA+IGVwaWRlbWljXC1kaXNlYXNlOwor5L+h55So6K2JID4gbGV0dGVyXC1vZlwtY3JlZGl0Owor5a246KGT55WMID4gYWNhZGVtaWNcLWNpcmNsZXM7CivooZvmmJ/ln44gPiBcInNhdGVsbGl0ZVwiXC10b3duOwor55qE5LiA56iuID4gaXNcLW9uZVwtXChraW5kXC1vZlwpOwor5pu85b635ouJID4gXChuZWxzb25cKVwtbWFuZGVsYTsKK+WNsOWcsOiqniA+IGhpbmRpXC1cKGxhbmd1YWdlXCk7Civlt6Xmpa3ljJYgPiB0b1wtaW5kdXN0cmlhbGl6ZTsKK+iomOiAheacgyA+IHByZXNzXC1jb25mZXJlbmNlOwor5Ye654mI56S+ID4gcHVibGlzaGluZ1wtaG91c2U7Civmspbnuanls7YgPiBva2luYXdhXC1cKGlzbGFuZFwpOwor5rCR5Li76buoID4gZGVtb2NyYXRpY1wtcGFydHk7Civpm7voppbliocgPiB0dlwtZHJhbWFcLXByb2dyYW07CivovLvlsITms6IgPiByYWRpYXRpb25cLVwod2F2ZVwpOwor5ZWG5qWt5YyWID4gdG9cLWNvbW1lcmNpYWxpemU7Civpm7vohabntrIgPiBjb21wdXRlclwtbmV0d29yazsKK+mrmOaAp+iDvSA+IGhpZ2hcLXBlcmZvcm1hbmNlOwor6ZaL5bmV5byPID4gb3BlbmluZ1wtY2VyZW1vbnk7Civlr6bnv5LnlJ8gPiBpbnRlcm5cLVwoc3R1ZGVudFwpOwor5ZyL6LOT6aSoID4gc3RhdGVcLWd1ZXN0aG91c2U7CivkuI3oh7PmlrwgPiBjYW5ub3RcLWdvXC1zb1wtZmFyOwor55m+5YiG6bueID4gcGVyY2VudGFnZVwtcG9pbnQ7Civlip/og73pm4YgPiBmdW5jdGlvblwtbGlicmFyeTsKK+WMluWtuOaIsCA+IGNoZW1pY2FsXC13YXJmYXJlOwor5aSn5aSa5pW4ID4gXChncmVhdFwpXC1tYWpvcml0eTsKK+iPj+iYreiqniA+IGR1dGNoXC1cKGxhbmd1YWdlXCk7CivkuIDlubTlpJogPiBtb3JlXC10aGFuXC1hXC15ZWFyOwor5YWx5ZKM6buoID4gcmVwdWJsaWNhblwtcGFydHk7CivohJbpoLjlhZIgPiBiYWNrXC1vZlwtdGhlXC1uZWNrOwor5aSn54Sh55WPID4gdXR0ZXJseVwtZmVhcmxlc3M7CivotoXpq5jpgJ8gPiB1bHRyYVwtaGlnaFwtc3BlZWQ7CivmgKfmjqXop7ggPiBzZXh1YWxcLWVuY291bnRlcjsKK+aLv+aJi+iPnCA+IHNwZWNpYWx0eVwtXChkaXNoXCk7CivpvKDmqJnlmaggPiBtb3VzZVwtXChjb21wdXRlclwpOwor5LqS5pON5oCnID4gaW50ZXJvcGVyYWJpbGl0eTsKK+WKn+iDvee+pCA+IGZ1bmN0aW9uYWxcLWdyb3VwOwor5LiA6Lyp5a2QID4gXChmb3JcKVwtYVwtbGlmZXRpbWU7Civpq5jmlYjnjocgPiBoaWdoXC1lZmZpY2llbmN5Owor5YmN5LiN5LmFID4gbm90XC1sb25nXC1iZWZvcmU7CivnlJ/nlKLpmoogPiBwcm9kdWN0aW9uXC10ZWFtOwor55So5oi257eaID4gc3Vic2NyaWJlclwtbGluZTsKK+e+juWci+S6uiA+IGFtZXJpY2FuXC1wZXJzb247CivnnIvkuIrljrsgPiBpdFwtd291bGRcLWFwcGVhcjsKK+W5vuWNgeWEhCA+IHNldmVyYWxcLWJpbGxpb247CivkuI3lvoXoqqogPiBuZWVkbGVzc1wtdG9cLXNheTsKK+WJteiomOmMhCA+IHRvXC1zZXRcLWFcLXJlY29yZDsKK+S4jeWQjeaVuCA+IGFic3RyYWN0XC1udW1iZXI7CivmlbjljYHlhIQgPiBzZXZlcmFsXC1iaWxsaW9uOwor57i957aT55CGID4gZ2VuZXJhbFwtbWFuYWdlcjsKK+aVuOeZvuiQrCA+IHNldmVyYWxcLW1pbGxpb247Civmi7zotbfkvoYgPiB0b1wtcHV0XC10b2dldGhlcjsKK+exs+eyieiCiSA+IHJpY2VcLWZsb3VyXC1tZWF0Owor6auY5oqA6KGTID4gaGlnaFwtdGVjaG5vbG9neTsKK+mWiemfs+evgCA+IGNsb3NlZFwtc3lsbGFibGU7CivomZvpm7vot68gPiB2aXJ0dWFsXC1jaXJjdWl0Owor5b6e5Y675bm0ID4gc2luY2VcLWxhc3RcLXllYXI7Civoj7Llvovos5MgPiB0aGVcLXBoaWxpcHBpbmVzOwor5pys5peP6KqeID4gbmF0aXZlXC1sYW5ndWFnZTsKK+e1huiFs+efsyA+IHN0dW1ibGluZ1wtYmxvY2s7CivmhJ/mn5PogIUgPiBpbmZlY3RlZFwtcGVyc29uOwor5aSa5qij5YyWID4gZGl2ZXJzaWZpY2F0aW9uOwor57ay566h5ZOhID4gbmV0d29ya1wtbWFuYWdlcjsKK+S4jeW5sua2iSA+IG5vbmludGVyZmVyZW5jZTsKK+aguOatpuW6qyA+IG51Y2xlYXJcLWFyc2VuYWw7CivkuK3nvo7mtLIgPiBjZW50cmFsXC1hbWVyaWNhOwor5aSp5Li75pWZID4gY2F0aG9saWNcLWNodXJjaDsKK+mHkeijoeWlhyA+IFwobmV3dFwpXC1naW5ncmljaDsKK+azqOaEj+eciyA+IHdhdGNoXC1jYXJlZnVsbHk7CivlhbHnlKLpu6ggPiBjb21tdW5pc3RcLXBhcnR5Owor5LiN6KaL5b6XID4gbm90XC1uZWNlc3NhcmlseTsKK+izgOW5tOeJhyA+IG5ld1wteWVhcicnc1wtY2FyZDsKK+aomea6luWMliA+IHN0YW5kYXJkaXphdGlvbjsKK+S9v+a7v+aEjyA+IHRvXC1tYWtlXC1jb250ZW50Owor5LiN6Y+96Yu8ID4gc3RhaW5sZXNzXC1zdGVlbDsKK+WNsOW6puS6uiA+IGluZGlhblwtXChwZXJzb25cKTsKK+Wlp+mBi+adkSA+IG9seW1waWNcLXZpbGxhZ2U7Civmmpfpganmh4kgPiBkYXJrXC1hZGFwdGF0aW9uOwor6ICB55m+5aeTID4gb3JkaW5hcnlcLXBlb3BsZTsKK+Wkq+Wmu+W6lyA+IGZhbWlseVwtcnVuXC1zaG9wOwor5pW45a2X57ayID4gZGlnaXRhbFwtbmV0d29yazsKK+WFkuWMlumfuyA+IHJldHJvZmxleFwtZmluYWw7CivmnInoga/nuasgPiB0b1wtYmVcLWNvbm5lY3RlZDsKK+WvqeWIpOmVtyA+IHByZXNpZGluZ1wtanVkZ2U7Civpq5jmlYjog70gPiBoaWdoXC1lZmZpY2llbmN5Owor55uc54mI6ICFID4gc29mdHdhcmVcLXBpcmF0ZTsKK+Wkp+mDqOS7vSA+IFwoaW5cKVwtbGFyZ2VcLXBhcnQ7CivlhrfmsKPmqZ8gPiBhaXJcLWNvbmRpdGlvbmVyOwor5LyK55S45ZySID4gZ2FyZGVuXC1vZlwtZWRlbjsKK+aIkOWToeWciyA+IG1lbWJlclwtY291bnRyeTsKK+mHo+mtmuiHuiA+IGRpYW95dVwtaXNsYW5kczsKK+ikh+mfu+avjSA+IGNvbXBvdW5kXC1maW5hbDsKK+W5gOWkqumVtyA+IG92ZXJzaXplXC1mcmFtZTsKK+S8tOeUn+awoyA+IGFzc29jaWF0ZWRcLWdhczsKK+eJqeeQhuWxpCA+IHBoeXNpY2FsXC1sYXllcjsKK+iBr+WQiOWciyA+IHVuaXRlZFwtbmF0aW9uczsKK+iLseWci+S6uiA+IGJyaXRpc2hcLXBlcnNvbjsKK+eZveeGseWMliA+IHR1cm5cLXdoaXRlXC1ob3Q7CivljYHkuIDmnIggPiBlbGV2ZW50aFwtbW9udGg7Civljp/lrZDmoLggPiBhdG9taWNcLW51Y2xldXM7CivmiorlhYTlvJ8gPiBzd29yblwtYnJvdGhlcnM7CivljJfmlpfmmJ8gPiB0aGVcLWJpZ1wtZGlwcGVyOwor6ZaL546p56yRID4gdG9cLXBsYXlcLWFcLWpva2U7Civlr6nliKTluK0gPiBqdWRnZW1lbnRcLXNlYXQ7Civnmb3nsonnl4UgPiBwb3dkZXJ5XC1taWxkZXc7Civph6PprZrls7YgPiBkaWFveXVcLWlzbGFuZHM7Civlj6TluIzoh5ggPiBhbmNpZW50XC1ncmVlY2U7CivkuK3lnIvkurogPiBjaGluZXNlXC1wZXJzb247Civnm6PnnaPkurogPiBzdXBlcmludGVuZGVudDsKK+mghuW6j+aVuCA+IG9yZGluYWxcLW51bWJlcjsKK+mbu+ipsee3miA+IHRlbGVwaG9uZVwtbGluZTsKK+WwseaYr+iqqiA+IGluXC1vdGhlclwtd29yZHM7CivmlZnogrLnlYwgPiBhY2FkZW1pY1wtd29ybGQ7CivkuI3mlaLnlbYgPiB5b3VcLWZsYXR0ZXJcLW1lOwor5Ymv57i957WxID4gdmljZVwtcHJlc2lkZW50Owor55Sa6Iez5pa8ID4gc29cLW11Y2hcLVwodGhhdFwpOwor5LiN5bmz6KGhID4gZGlzZXF1aWxpYnJpdW07CivmnbHljZfkup4gPiBzb3V0aGVhc3RcLWFzaWE7CivmjqHmlLbnjocgPiByZWNvdmVyeVwtcmF0aW87Civoh6rnlLHljJYgPiBsaWJlcmFsaXphdGlvbjsKK+S4jemBqeeUqCA+IG5vdFwtYXBwbGljYWJsZTsKK+ewoeWWruWMliA+IHNpbXBsaWZpY2F0aW9uOwor6bm95rmW5Z+OID4gc2FsdFwtbGFrZVwtY2l0eTsKK+ihgOijveWTgSA+IGJsb29kXC1wcm9kdWN0czsKK+WHuemdoumPoSA+IGNvbmNhdmVcLW1pcnJvcjsKK+mWi+W/g+aenCA+IHBpc3RhY2hpb1wtbnV0czsKK+S4lueVjOiqniA+IHdvcmxkXC1sYW5ndWFnZTsKK+ihjOaYn+mamyA+IGludGVycGxhbmV0YXJ5Owor5Lit5b+D6KqeID4gcXVhbGlmaWVkXC13b3JkOwor5Y+D6KyA6ZW3ID4gY2hpZWZcLW9mXC1zdGFmZjsKK+mMhOWDj+apnyA+IHZpZGVvXC1yZWNvcmRlcjsKK+WFieS/oeiZnyA+IG9wdGljYWxcLXNpZ25hbDsKK+aguOatpuWZqCA+IG51Y2xlYXJcLXdlYXBvbjsKK+mBlOS4jeWIsCA+IGNhbm5vdFwtYWNoaWV2ZTsKK+WFi+ael+mgkyA+IFwoYmlsbFwpXC1jbGludG9uOwor6IGW6KqV56+AID4gY2hyaXN0bWFzXC10aW1lOwor55m95Luk5rW3ID4gdGhlXC1iZXJpbmdcLXNlYTsKK+aRqemWgOe2kyA+IGJvb2tcLW9mXC1tb3Jtb247CivlsIvplovlv4MgPiB0b1wtbWFrZVwtZnVuXC1vZjsKK+eKr+S4jeiRlyA+IG5vdFwtd29ydGh3aGlsZTsKK+S4jeeUqOisnSA+IHlvdScncmVcLXdlbGNvbWU7CivljYroh6rli5UgPiBzZW1pXC1hdXRvbWF0aWM7Civlhafokpnlj6QgPiBpbm5lclwtbW9uZ29saWE7CivpgIDkvJHph5EgPiByZXRpcmVtZW50XC1wYXk7CivnlZnoqIDnsL8gPiB2aXNpdG9yJydzXC1ib29rOwor5q275Lqh546HID4gbW9ydGFsaXR5XC1yYXRlOwor5ZOI6Kmy5pu4ID4gYm9va1wtb2ZcLWhhZ2dhaTsKK+aTuuaUpOWtkCA+IHNldFwtdXBcLWFcLXN0YWxsOwor55Ge5aOr5Lq6ID4gc3dpc3NcLVwocGVyc29uXCk7Civlt67kuI3lpJogPiBhbG1vc3RcLFwtbmVhcmx5Owor5ous5byn6KOhID4gaW5cLXBhcmVudGhlc2VzOwor5L+h6Jmf6Ie6ID4gc2lnbmFsXC1zdGF0aW9uOwor5LiW55WM5LiKID4gXChvZlwtdGhlXClcLXdvcmxkOwor5ZyT54+g562GID4gYmFsbFwtcG9pbnRcLXBlbjsKK+i3keiFv+WFkiA+IHRvXC1ydW5cLWVycmFuZHM7Civms6Lni4DnhrEgPiB1bmR1bGFudFwtZmV2ZXI7Civnn6XorZjluqsgPiBrbm93bGVkZ2VcLWJhc2U7Civpm7vkv6HlsYAgPiBjZW50cmFsXC1vZmZpY2U7Civopb/ljZfkup4gPiBzb3V0aHdlc3RcLWFzaWE7CivmkqXomZ/nm6QgPiB0ZWxlcGhvbmVcLWRpYWw7CivlvozlhanogIUgPiB0aGVcLWxhdHRlclwtdHdvOwor5bug56au5oucID4gZGF5XC1vZmZcLVwod29ya1wpOwor5YWp55m+5YSEID4gdHdlbnR5XC1iaWxsaW9uOwor54Sh6YCj5o6lID4gY29ubmVjdGlvbmxlc3M7CivnjJzorI7lhZIgPiBndWVzc1wtYVwtcmlkZGxlOwor5Y2K5Lul5LiKID4gbW9yZVwtdGhhblwtaGFsZjsKK+S4jeWuouawoyA+IHlvdScncmVcLXdlbGNvbWU7Civnvo7lt67kuosgPiBhXC10ZXJyaWZpY1wtam9iOwor6Ku+6LKd54i+ID4gbm9iZWxcLVwocHJpemVcKTsKK+S/neitiemHkSA+IGVhcm5lc3RcLW1vbmV5Owor5o6b6Jmf6K2JID4gcmVnaXN0ZXJcLWNhcmQ7Civljp/lrZDog70gPiBhdG9taWNcLWVuZXJneTsKK+e0gOW/temkqCA+IG1lbW9yaWFsXC1oYWxsOwor5Zau6Z+75q+NID4gc2ltcGxlXC1maW5hbHM7CivmnInlj6/og70gPiBpdCcnc1wtcG9zc2libGU7CivmnKrmj5Dlj4ogPiBub3RcLW1lbnRpb25lZDsKK+acrOeUn+eHiCA+IGJ1bnNlblwtYnVybmVyOwor5b+D6Ief55eFID4gaGVhcnRcLWRpc2Vhc2U7CivljYHkupTlubQgPiBmaWZ0ZWVuXC15ZWFyczsKK+mEp+Wwj+W5syA+IGRlbmdcLXhpYW9waW5nOwor6YKj6bS75pu4ID4gYm9va1wtb2ZcLW5haHVtOwor57ay57Wh5bGkID4gbmV0d29ya1wtbGF5ZXI7Civlr6nliKTmrIQgPiBqdWRnZW1lbnRcLWJhcjsKK+eZveiKseiKsSA+IHNoaW5pbmdcLXdoaXRlOwor5bu656+J5a24ID4gYXJjaGl0ZWN0dXJhbDsKK+S4reWci+W8jyA+IGNoaW5lc2VcLXN0eWxlOwor5Y2K5aSx5qWtID4gc2VtaVwtZW1wbG95ZWQ7CivooajmsbrmrIogPiByaWdodFwtdG9cLXZvdGU7CivnqbrplpPnq5kgPiBzcGFjZVwtc3RhdGlvbjsKK+Wkp+WFrOWPuCA+IGxhcmdlXC1jb21wYW55Owor5aSn5a656YePID4gaGlnaFwtY2FwYWNpdHk7CivmpYrnmb7nv7AgPiBicmlnaGFtXC15b3VuZzsKK+Wkp+WVj+mhjCA+IGdyZWF0XC1wcm9ibGVtOwor5YWJ5Yqf546HID4gb3B0aWNhbFwtcG93ZXI7CivmrIrlqIHmgKcgPiBhdXRob3JpdGF0aXZlOwor5aWz5pyL5Y+LID4gZmVtYWxlXC1mcmllbmQ7CivkuI3lkajlu7YgPiB1bmRpc3RyaWJ1dGVkOwor5pGB6Yem5YWSID4gc25hcFwtZmFzdGVuZXI7Civnmb3nmq7mnb4gPiBsYWNlYmFya1wtcGluZTsKK+WtmOWEsuWZqCA+IG1lbW9yeVwtXCh1bml0XCk7CivlvYzov6bmm7ggPiBib29rXC1vZlwtbWljYWg7Civnj77ku6PljJYgPiBtb2Rlcm5pemF0aW9uOwor5Li756ax5paHID4gbG9yZCcnc1wtcHJheWVyOwor5aW95bm+5bm0ID4gc2V2ZXJhbFwteWVhcnM7CivllK7npajomZUgPiB0aWNrZXRcLW9mZmljZTsKK+WFrem7nuWNiiA+IGhhbGZcLXBhc3RcLXNpeDsKK+eEoeaEj+itmCA+IHVuY29uc2Npb3VzbHk7Civmjqjli5XlipsgPiBkcml2aW5nXC1mb3JjZTsKK+mBv+miqOiZlSA+IGxlZVwsXC13aW5kc3RvcDsKK+S9v+eUqOmHjyA+IHZvbHVtZVwtb2ZcLXVzZTsKK+WNiuWwjumrlCA+IHNlbWljb25kdWN0b3I7Civpp4Hmrrzmp40gPiBtYXVzZXJcLXBpc3RvbDsKK+S4jeaWueS+vyA+IGluY29udmVuaWVuY2U7CivmspLntpPpqZcgPiBpbmV4cGVyaWVuY2VkOwor5Li75pel5a24ID4gc3VuZGF5XC1zY2hvb2w7CivmnInliqnkuo4gPiBjb250cmlidXRlXC10bzsKK+acieasiuWogSA+IGF1dGhvcml0YXRpdmU7CivkuInljYHlhIQgPiB0aHJlZVwtYmlsbGlvbjsKK+S4jeWHjea4ryA+IGljZVwtZnJlZVwtcG9ydDsKK+atpeipseapnyA+IHdhbGtpZVwtdGFsa2llOwor6ZuG57ea5ZmoID4gaHViXC1cKG5ldHdvcmtcKTsKK+S4jeiIkumBqSA+IHVuY29tZm9ydGFibGU7CivlhanljYPlubQgPiB0aGVcLXllYXJcLTIwMDA7CivmqJnmnKzon7IgPiBzcGlkZXJcLWJlZXRsZTsKK+mAsuWHuuWPoyA+IGltcG9ydFx8ZXhwb3J0Owor5ZCR6KW/5Y2XID4gc291dGh3ZXN0d2FyZDsKK+WUruelqOWToSA+IHRpY2tldFwtc2VsbGVyOwor5ZSu56Wo5Y+jID4gdGlja2V0XC13aW5kb3c7CivlronlrprljJYgPiBzdGFiaWxpemF0aW9uOwor5Lqk5o+b56uvID4gc3dpdGNoZWRcLXBvcnQ7CivkuI3nm7jlubIgPiBiZVwtaXJyZWxldmFudDsKK+WkqeabieW+lyA+IGhlYXZlblwta25vd3NcITsKK+WgseipseapnyA+IHdhbGtpZVwtdGFsa2llOwor5ZCM55uf5ZyLID4gY29uZmVkZXJhdGlvbjsKK+Wlp+mBi+acgyA+IG9seW1waWNcLWdhbWVzOwor5Zyo5pyq5L6GID4gaW5cLXRoZVwtZnV0dXJlOwor5Y2X576O5rSyID4gc291dGhcLWFtZXJpY2E7CivkuIPnmb7okKwgPiBzZXZlblwtbWlsbGlvbjsKK+acieiJr+W/gyA+IGNvbnNjaWVudGlvdXM7CivpvLvpo7zms5UgPiBuYXNhbFwtZmVlZGluZzsKK+e0hOaLv+abuCA+IGJvb2tcLW9mXC1qb25haDsKK+atpeihjOifsiA+IGdyb3VuZFwtYmVldGxlOwor5L6/5q2l6LWwID4gbWFyY2hcLWF0XC1lYXNlOwor6YCj5o6l6IezID4gdG9cLWNvbm5lY3RcLXRvOwor6bO25bC+6IqxID4gaXJpc1wtXChmbG93ZXJcKTsKK+WNiuWumOaWuSA+IHNlbWlcLW9mZmljaWFsOwor5YW85a655oCnID4gY29tcGF0aWJpbGl0eTsKK+ino+Wjk+e4riA+IHRvXC1kZWNvbXByZXNzOwor5o6h5qOJ5qmfID4gY290dG9uXC1waWNrZXI7Civoiq3olYnmiYcgPiBwYWxtXC1sZWFmXC1mYW47CivlhazlhYPliY0gPiBiZWZvcmVcLWNocmlzdDsKK+azoue+juW6piA+IGJhdW1lXC1kZWdyZWVzOwor5Y2K5b6p6LO9ID4gZWlnaHRoXC1maW5hbHM7CivpgornlYznt5ogPiBib3VuZGFyeVwtbGluZTsKK+WMl+e+jua0siA+IG5vcnRoXC1hbWVyaWNhOwor5qC46IO95rqQID4gbnVjbGVhclwtcG93ZXI7CivmlK/mjIHnjocgPiBzdXBwb3J0XC1sZXZlbDsKK+ippuS4gOippiA+IHRvXC1oYXZlXC1hXC10cnk7CivotorkvobotoogPiBtb3JlXC1hbmRcLW1vcmU7CivkuIvoh7PkuIogPiBib3R0b21cLXRvXC10b3A7Civmib7kuI3liLAgPiBjb3VsZG4nJ3RcLWZpbmQ7Civlvojpgbrmhr4gPiB1bmZvcnR1bmF0ZWx5Owor6JCs5LqL6YGUID4gbWFzdGVyXChjYXJkXCk7CivntITnj6Xmm7ggPiBib29rXC1vZlwtam9lbDsKK+izoOWEn+mHkSA+IGNvbXBlbnNhdGlvbjsKK+ekuuWogeiAhSA+IGRlbW9uc3RyYXRvcjsKK+avm+S4u+W4rSA+IGNoYWlybWFuXC1tYW87Civlu7rnr4nniakgPiBcKGFcKVwtYnVpbGRpbmc7CivplrHopr3lrqQgPiByZWFkaW5nXC1yb29tOwor5LiN5ZCN6K29ID4gZGlzcmVwdXRhYmxlOwor5qmf5qKw56K8ID4gbWFjaGluZVwtY29kZTsKK+S4jeaIkOWKnyA+IHVuc3VjY2Vzc2Z1bDsKK+awtOa7uOWCsyA+IHdhdGVyXC1tYXJnaW47CivkuI3ph43oppYgPiBpbmRpZmZlcmVuY2U7CivljYHkuZ3mrbIgPiAxOVwteWVhcnNcLW9sZDsKK+WNiuaWh+ebsiA+IHNlbWlsaXRlcmF0ZTsKK+S4meeDr+mFuCA+IGFjcnlsaWNcLWFjaWQ7CivljYrnhp/nt7QgPiBzZW1pXC1za2lsbGVkOwor5ZCD5LiN6ZaLID4gYmVcLXVucG9wdWxhcjsKK+S4jeWQiOeQhiA+IHVucmVhc29uYWJsZTsKK+S4jeaEieW/qyA+IGRpc2FncmVlYWJsZTsKK+mkiumbnuWgtCA+IGNoaWNrZW5cLWZhcm07Civohp3kuIrlnosgPiBsYXB0b3BcLVwoYWRqXCk7Civlr6bpmpvmgKcgPiBwcmFjdGljYWxpdHk7CivljYHkuIDlubQgPiBlbGV2ZW5cLXllYXJzOwor55u45Ly85oCnID4gcmVzc2VtYmxhbmNlOwor6Z2e5ZCM5q2lID4gYXN5bmNocm9ub3VzOwor5YKz6YGT5pu4ID4gZWNjbGVzaWFzdGVzOwor55m86KiA5Lq6ID4gc3Bva2VzcGVyc29uOwor6ZuG5Lit5ZmoID4gY29uY2VudHJhdG9yOwor5oSf5ZiG6KmeID4gaW50ZXJqZWN0aW9uOwor6Laz55CD6L+3ID4gZm9vdGJhbGxcLWZhbjsKK+mCo+aoo+eahCA+IHRoYXRcLWtpbmRcLW9mOwor5Y2K6YKK5aSpID4gaGFsZlwtdGhlXC1za3k7CivokaHokITphZIgPiBcKGdyYXBlXClcLXdpbmU7CivovrLkvZzniakgPiBcKGZhcm1cKVwtY3JvcHM7Civlm5vljYHlpJogPiBtb3JlXC10aGFuXC00MDsKK+itieWvpuemriA+IGNvbmZpcm1hdGlvbjsKK+Wuh+iIquWxgCA+IHNwYWNlXC1hZ2VuY3k7CivljrvlnIvlpJYgPiB0b1wtZ29cLWFicm9hZDsKK+esrOS6jOS9jSA+IHNlY29uZFwtcGxhY2U7CivlkIzmmYLku6MgPiBjb250ZW1wb3Jhcnk7Civlia/nuL3nkIYgPiB2aWNlXC1wcmVtaWVyOwor6Lev5b6X6KiYID4gYm9va1wtb2ZcLXJ1dGg7CivlpJrlt6XljJYgPiB0b1wtbXVsdGlwbGV4Owor5LiJ5ZCI5LiAID4gdGhyZWVcLWluXC1vbmU7Civlm5vnmb7okKwgPiBmb3VyXC1taWxsaW9uOwor6auY6LOq6YePID4gaGlnaFwtcXVhbGl0eTsKK+Wkoua4uOeXhyA+IHRvXC1zbGVlcHdhbGs7CivkuI3ntZDnm58gPiBub25hbGlnbm1lbnQ7CivlhavntJrpoqggPiBmb3JjZVwtOFwtd2luZDsKK+W5vOWFkuWckiA+IGtpbmRlcmdhcnRlbjsKK+ahlOWtkOawtCA+IG9yYW5nZVwtanVpY2U7CivlibXpgKDmgKcgPiBjcmVhdGl2ZW5lc3M7CivnoJTnqbbogIUgPiBpbnZlc3RpZ2F0b3I7CivlkajnuL3nkIYgPiBwcmVtaWVyXC16aG91Owor5Z+35pS/6buoID4gcnVsaW5nXC1wYXJ0eTsKK+avjeimquevgCA+IG1vdGhlcicnc1wtZGF5Owor5LiA5LiL5YWSID4gYVwtbGl0dGxlXC1iaXQ7CivkuI3lg4/oqbEgPiB1bnJlYXNvbmFibGU7CivopIfoo73lk4EgPiByZXByb2R1Y3Rpb247Civlj7jms5XmrIogPiBqdXJpc2RpY3Rpb247CivkvZTkvr/lrpwgPiBhZHZlbnRhZ2VvdXM7CivpvLvkuK3pmpQgPiBuYXNhbFwtc2VwdHVtOwor5paw6IGe6JmVID4gbmV3c1wtc2VydmljZTsKK+mBi+WLlemeiyA+IHNwb3J0c1wtc2hvZXM7CivmoLjovZ/ngrggPiBudWNsZWFyXC1ib21iOwor6L2J6LOs5Y2hID4gYVwtZGViaXRcLWNhcmQ7CivpnaLlsI3pnaIgPiBmYWNlXC10b1wtZmFjZTsKK+ikh+Wvq+e0mSA+IGNhcmJvblwtcGFwZXI7CivkuI3nm7jlrrkgPiBpbmNvbXBhdGlibGU7CivmiZPlrZTlmaggPiBob2xlXC1wdW5jaGVyOwor5LuA6bq85pivID4gd2hhdFwtaXNcLVwuXC5cLlw/Owor5Ye56YCP6Y+hID4gY29uY2F2ZVwtbGVuczsKK+WPpOe+hemmrCA+IGFuY2llbnRcLXJvbWU7CivkuozljYHokKwgPiAyMDBcLXRob3VzYW5kOwor5bm06LyV5Lq6ID4geW91bmdcLXBlb3BsZTsKK+S5kuS5k+eQgyA+IHRhYmxlXC10ZW5uaXM7Civpmo7ntJrlvI8gPiBoaWVyYXJjaGljYWw7Civogb3oqqrpgY4gPiB0b1wtaGVhclwtc2FpZDsKK+mXjOWwvueCjiA+IGFwcGVuZGljaXRpczsKK+Wkp+S4gOS6myA+IGFcLWJpdFwtYmlnZ2VyOwor55Sf54mp5oiwID4gZ2VybVwtd2FyZmFyZTsKK+W7uuioreaApyA+IGNvbnN0cnVjdGl2ZTsKK+WWieWhnumfsyA+IGdsb3R0YWxcLXN0b3A7CivlpKfpg73mnIMgPiBtZXRyb3BvbGl0YW47CivmnIDkvY7pu54gPiBsb3dlc3RcLXBvaW50Owor5Z+6552j5pWZID4gY2hyaXN0aWFuaXR5Owor5a6J55yg6YWuID4gbWV0aGFxdWFsb25lOwor6Kmm6amX5oCnID4gZXhwZXJpbWVudGFsOwor6LK05peP5YyWID4gYXJpc3RvY3JhdGljOwor5LqU55m+6JCsID4gZml2ZVwtbWlsbGlvbjsKK+WGsOa0suefsyA+IGljZWxhbmRcLXNwYXI7CivmoLjou43lgpkgPiBudWNsZWFyXC1hcm1zOwor6YCf6KiY5ZOhID4gc3Rlbm9ncmFwaGVyOwor55m95rC05rOlID4gd2hpdGVcLWNlbWVudDsKK+ixoeiBsuipniA+IG9ub21hdG9wb2VpYTsKK+W5gOagvOW8jyA+IGZyYW1lXC1mb3JtYXQ7CivooZvnlJ/ntJkgPiB0b2lsZXRcLXBhcGVyOwor55W25pmC55qEID4gb2ZcLXRoYXRcLXRpbWU7CivmtojpmLLmoJMgPiBmaXJlXC1oeWRyYW50Owor6YCP5piO5bqmID4gdHJhbnNwYXJlbmN5Owor5aOT5YCS5oCnID4gb3ZlcndoZWxtaW5nOwor5LqM5Y2B5LiDID4gdHdlbnR5XC1zZXZlbjsKK+Wkp+imj+aooSA+IGxhcmdlXC1zY2FsZTsKK+W6pumHj+ihoSA+IG1lYXN1cmVtZW50Owor6Iiq56m66KGTID4gYWVyb25hdXRpY3M7CivoqKrllY/ogIUgPiBpbnRlcnZpZXdlcjsKK+Wlveaci+WPiyA+IGdvb2RcLWZyaWVuZDsKK+Wbm+mdoumrlCA+IHRldHJhaGVkcm9uOwor5ouU6YeY6YyYID4gY2xhd1wtaGFtbWVyOwor55Sz5ZG96KiYID4gZGV1dGVyb25vbXk7CivmiY3lpJbmtYEgPiBicmFpblwtZHJhaW47CivlibXkvZzlipsgPiBvcmlnaW5hbGl0eTsKK+eZveefruaYnyA+IHdoaXRlXC1kd2FyZjsKK+S4jei0iuaIkCA+IGRpc2FwcHJvdmFsOwor5Y2K5pyI5YiKID4gc2VtaW1vbnRobHk7CivlgpnnlKjnkrAgPiBiYWNrdXBcLXJpbmc7Civmu7TnrZTogbIgPiB0aWNrXC1cKHRvY2tcKTsKK+a6q+W6puioiCA+IHRoZXJtb2dyYXBoOwor5LiN6YeN6KaBID4gdW5pbXBvcnRhbnQ7CivmnInlvbHpn78gPiBpbmZsdWVudGlhbDsKK+eZvOmbu+W7oCA+IHBvd2VyXC1wbGFudDsKK+afj+ael+eJhiA+IGJlcmxpblwtd2FsbDsKK+W3oemCj+iJhyA+IHBhdHJvbFwtYm9hdDsKK+S4jeWQq+eziiA+IHVuYW1iaWd1b3VzOwor5pys5Zyf5YyWID4gdG9cLWxvY2FsaXplOwor5a6J5YWo54eIID4gc2FmZXR5XC1sYW1wOwor5pyJ5oSP5oCdID4gaW50ZXJlc3Rpbmc7CivnqpfnjrvnkoMgPiB3aW5kb3dcLXBhbmU7CivmlrDopb/omK0gPiBuZXdcLXplYWxhbmQ7CivmlZfooYDnl4cgPiBzZXB0aWNhZW1pYTsKK+WIhuS9iOW8jyA+IGRpc3RydWJ1dGVkOwor5pyJ5Lqb5Lq6ID4gc29tZVwtcGVvcGxlOwor5LiN5ZCQ5rCjID4gdW5hc3BpcmF0ZWQ7CivmnInntpPpqZcgPiBleHBlcmllbmNlZDsKK+eUt+aci+WPiyA+IG1hbGVcLWZyaWVuZDsKK+eZveearuabuCA+IHdoaXRlXC1wYXBlcjsKK+e/u+itr+iAhSA+IGludGVycHJldGVyOwor5LiN5rOo5oSPID4gdGhvdWdodGxlc3M7Civkv53kuI3kvY8gPiBtb3N0XC1saWtlbHk7Civlt7Tlk4jppqwgPiB0aGVcLWJhaGFtYXM7CivnmbzpgIHlmaggPiB0cmFuc21pdHRlcjsKK+esrOS4gOeroCA+IGNoYXB0ZXJcLW9uZTsKK+mAo+eSsOWcliA+IGNvbWljXC1zdHJpcDsKK+WcqOWcsOS4iyA+IHVuZGVyZ3JvdW5kOwor5YKz55yf5qmfID4gZmF4XC1tYWNoaW5lOwor6KOd55Sy6LuKID4gYXJtb3JlZFwtY2FyOwor542y55uK6ICFID4gYmVuZWZpY2lhcnk7CivljYrpgI/mmI4gPiB0cmFuc2x1Y2VudDsKK+esrOS4gOa1gSA+IGZpcnN0XC1jbGFzczsKK+isgOauuuahiCA+IG11cmRlclwtY2FzZTsKK+eNjuWtuOmHkSA+IHNjaG9sYXJzaGlwOwor5LiN5YuV55SiID4gcmVhbFwtZXN0YXRlOwor5ZWf56S66YyEID4gcmV2ZWxhdGlvbnM7CivnrKzkuInmlrkgPiB0aGlyZFwtcGFydHk7CivooajokpnlrZAgPiB3YXRjaFwtZ2xhc3M7Civmk7rmnrblrZAgPiBwdXRcLW9uXC1haXJzOwor5LiN56K65a6aID4gdW5jZXJ0YWludHk7Civlj6TlhbjmtL4gPiBjbGFzc2ljaXN0czsKK+WPr+ihjOaApyA+IGZlYXNpYmlsaXR5Owor5ZCI5rOV5YyWID4gdG9cLWxlZ2FsaXplOwor5o6i54Wn54eIID4gc2VhcmNobGlnaHQ7Civlronlr6fniYcgPiBtZXByb2JhbWF0ZTsKK+aYr+S4jeaYryA+IGlzXC1vclwtaXNuJyd0Owor5aSa5bel5ZmoID4gbXVsdGlwbGV4ZXI7Civli57li5XlipsgPiBsYWJvclwtZm9yY2U7Civoqp7oqIDlrbggPiBsaW5ndWlzdGljczsKK+W5uOmBi+WFkiA+IGFcLWx1Y2t5XC1ndXk7CivmnKzos6rkuIogPiBlc3NlbnRpYWxseTsKK+WcsOS4i+awtCA+IGdyb3VuZHdhdGVyOwor55Sz6KuL5pu4ID4gYXBwbGljYXRpb247CivmlZnogrLmgKcgPiBpbnN0cnVjdGl2ZTsKK+e5vOaJv+asiiA+IGluaGVyaXRhbmNlOwor6KO954mH5Lq6ID4gbW92aWVtYWtpbmc7CivkuI3opoHnt4ogPiB1bmltcG9ydGFudDsKK+aVl+WutuWtkCA+IHNwZW5kdGhyaWZ0Owor5bGA6ZmQ5oCnID4gbGltaXRhdGlvbnM7CivllK7osqjlk6EgPiBzYWxlc3BlcnNvbjsKK+WPr+WwiuaVrCA+IHJlc3BlY3RhYmxlOwor6Z2e5pW45a2XID4gbm9uXC1udW1lcmljOwor54iG57Gz6IqxID4gcHVmZmVkXC1yaWNlOwor5LiJ5Y2B5aSpID4gdGhpcnR5XC1kYXlzOwor6IyF5bGL6aCCID4gdGhhdGNoXC1yb29mOwor5LiJ5Y2B5ZubID4gdGhpcnR5XC1mb3VyOwor5LiN6YCB5rCjID4gdW5hc3BpcmF0ZWQ7CivmgKfkvLTkvrYgPiBzZXhcLXBhcnRuZXI7CivkubPnmb3oibIgPiBtaWxreVwtd2hpdGU7CivmrrrkurrmoYggPiBtdXJkZXJcLWNhc2U7Civok4vnhLbmgKcgPiBwcm9iYWJpbGl0eTsKK+WPr+iDveaApyA+IHBvc3NpYmlsaXR5Owor5oi/5Zyw55SiID4gcmVhbFwtZXN0YXRlOwor55m75bGx5a62ID4gbW91bnRhaW5lZXI7Civlk7LlrbjlrrYgPiBwaGlsb3NvcGhlcjsKK+WIhuaVo+W8jyA+IGRpc3RyaWJ1dGVkOwor57O75YiX54mHID4gZmlsbVwtc2VyaWVzOwor6Zi/5a+M5rGXID4gYWZnaGFuaXN0YW47CivmtJvmnYnno68gPiBsb3NcLWFuZ2VsZXM7CivpmbDmtrzomZUgPiBzaGFkeVwtcGxhY2U7CivkvLjnuK7mgKcgPiBmbGV4aWJpbGl0eTsKK+mWieWFg+mfsyA+IGNsb3NlXC12b3dlbDsKK+acgOWkp+WMliA+IHRvXC1tYXhpbWl6ZTsKK+esrOWNgeS4gyA+IHNldmVudGVlbnRoOwor5ZOy5a245LiKID4gcGhpbG9zb3BoaWM7CivlkKbmnInmlYggPiBpbmVmZmljaWVudDsKK+WMl+acnemuriA+IG5vcnRoXC1rb3JlYTsKK+mdiOa0u+aApyA+IGZsZXhpYmlsaXR5Owor5L2/5L+h5pyNID4gdG9cLWNvbnZpbmNlOwor5Y+j6aaZ57OWID4gY2hld2luZ1wtZ3VtOwor6KW/5LmD5bGxID4gbW91bnRcLXNpbmFpOwor6YeR5bGs5p2/ID4gbWV0YWxcLXBsYXRlOwor5LiN5YGa6IGyID4ga2VlcFwtc2lsZW50Owor5YWp55m+6JCsID4gdHdvXC1taWxsaW9uOwor5L+u55CG5bugID4gcmVwYWlyXC1zaG9wOwor5qmf5YuV5oCnID4gZmxleGliaWxpdHk7Civlop7plbfnjocgPiBncm93dGhcLXJhdGU7Civku4vns7voqZ4gPiBwcmVwb3NpdGlvbjsKK+S4u+apn+advyA+IG1vdGhlcmJvYXJkOwor5LuW5YCR6YO9ID4gYWxsXC1vZlwtdGhlbTsKK+mhnuS8vOm7niA+IHJlc2VtYmxhbmNlOwor6ZuZ5Lq65oi/ID4gZG91YmxlXC1yb29tOwor576O6KGT6aSoID4gYXJ0XC1nYWxsZXJ5Owor6YCj5o6l6KmeID4gY29uanVuY3Rpb247CivntITkvK/oqJggPiBib29rXC1vZlwtam9iOwor5oKy5Zac5YqHID4gdHJhZ2ljb21lZHk7Civou5/no4Hnop8gPiBmbG9wcHlcLWRpc2s7CivljYrlsIHlu7ogPiBzZW1pXC1mZXVkYWw7Civlr6bos6rmgKcgPiBzdWJzdGFudGl2ZTsKK+i7n+ejgeebpCA+IGZsb3BweVwtZGlzazsKK+iuiuWjk+WZqCA+IHRyYW5zZm9ybWVyOwor6JiL5p6c5rGBID4gYXBwbGVcLWp1aWNlOwor5pqX6KiY5YWSID4gc2VjcmV0XC1tYXJrOwor6YWN6YCB6ICFID4gZGlzdHJpYnV0b3I7Civph5HpioDoirEgPiBob25leXN1Y2tsZTsKK+WFg+iAgemZoiA+IHVwcGVyXC1ob3VzZTsKK+WPr+aDs+WDjyA+IGNvbmNlaXZhYmxlOwor6K2J5piO5pu4ID4gY2VydGlmaWNhdGU7Civkv6HnlKjljaEgPiBjcmVkaXRcLWNhcmQ7CivlpbPnrqHlrrYgPiBob3VzZWtlZXBlcjsKK+W3peeoi+WtuCA+IGVuZ2luZWVyaW5nOwor5pyJ5a6z55qEID4gZGVzdHJ1Y3RpdmU7CivlpKnnhLbmsKMgPiBuYXR1cmFsXC1nYXM7CivkvpvooYDogIUgPiBibG9vZFwtZG9ub3I7Civnh5/ppIrlk4EgPiBub3VyaXNobWVudDsKK+mBqeaHieaApyA+IHN1aXRhYmlsaXR5Owor5aSp5paH5Y+wID4gb2JzZXJ2YXRvcnk7Civpkb/nn7PloLQgPiByb2NrXC1xdWFycnk7CivlsI/msb3ou4ogPiBjb21wYWN0XC1jYXI7CivonrrntbLliIAgPiBzY3Jld2RyaXZlcjsKK+WJr+S9nOeUqCA+IHNpZGVcLWVmZmVjdDsKK+S6jOWNgeWEhCA+IHR3b1wtYmlsbGlvbjsKK+enu+akjeaApyA+IHBvcnRhYmlsaXR5Owor5LqM5Y2B5LqUID4gdHdlbnR5XC1maXZlOwor5rKS5ZWP6aGMID4gbm9cLXByb2JsZW07CivnrKzkupTpoZ4gPiBjYXRlZ29yeVwtNTsKK+mdnuWumOaWuSA+IHVub2ZmaWNpYWw7CivlnIvmsJHpu6ggPiBrdW9taW50YW5nOwor55m96Imy6auUID4gbGV1Y29wbGFzdDsKK+S4jeiAkOeFqSA+IGltcGF0aWVuY2U7Civnmb7liIbnjocgPiBwZXJjZW50YWdlOwor5Luk54mM55KwID4gdG9rZW5cLXJpbmc7Civoh6rnmb3mm7ggPiBjb25mZXNzaW9uOwor5bGV6Ka95pyDID4gZXhoaWJpdGlvbjsKK+mrmOmAn+eOhyA+IGhpZ2hcLXNwZWVkOwor5aSn5Z+O5biCID4gbWFqb3JcLWNpdHk7CivllqzmsrvmlaYgPiBnZW9yZ2V0b3duOwor55m+5YiG5q+UID4gcGVyY2VudGFnZTsKK+WCs+mBk+iAhSA+IG1pc3Npb25hcnk7CivkuI3lj6/og70gPiBpbXBvc3NpYmxlOwor6YyE6Z+z5bi2ID4gYXVkaW9cLXRhcGU7CivpjKvlronlsbEgPiBtb3VudFwtemlvbjsKK+ehrOejgeebpCA+IGhhcmRcLWRyaXZlOwor55m+5YiG5pW4ID4gcGVyY2VudGFnZTsKK+att+WPsuS4iiA+IGhpc3RvcmljYWw7CivoqJjluLPlk6EgPiBib29ra2VlcGVyOwor5L2/5aSx5pybID4gZGlzYXBwb2ludDsKK+aJv+WMheS6uiA+IGNvbnRyYWN0b3I7Civnianos6rkuIogPiBtYXRlcmlhbGx5Owor5Y2K5YWs6ZaLID4gc2VtaVwtb3ZlcnQ7Civkvb/lhY3pmaQgPiBnZXRcLXJpZFwtb2Y7Civmm7TooaPlrqQgPiBjaGFuZ2Vyb29tOwor6LaF5aqS6auUID4gaHlwZXJtZWRpYTsKK+S4jeaYjueiuiA+IGluZGVmaW5pdGU7CivkuI3mma/msKMgPiBkZXByZXNzaW9uOwor6LOH5pys5a62ID4gY2FwaXRhbGlzdDsKK+S6jOaJi+iyqCA+IHNlY29uZGhhbmQ7CivlgrPmlZnlo6sgPiBtaXNzaW9uYXJ5Owor5piT5o6l6L+RID4gYWNjZXNzaWJsZTsKK+aDs+WDj+WKmyA+IGNvbmNlcHRpb247CivmnInmsbrlv4MgPiBkZXRlcm1pbmVkOwor5qmE5qyW5qi5ID4gb2xpdmVcLXRyZWU7CivniK3oq5bpu54gPiBjb250ZW50aW9uOwor6KSH6Zuc5oCnID4gY29tcGxleGl0eTsKK+WltueJm+WgtCA+IGRhaXJ5XC1mYXJtOwor5a2X56+A5pW4ID4gYnl0ZVwtY291bnQ7Civlh7rnlJ/lnLAgPiBiaXJ0aHBsYWNlOwor5LiN5LiL5LqOID4gYXNcLW1hbnlcLWFzOwor5aSn5aqS6auUID4gbWFjcm9tZWRpYTsKK+WCmeW/mOmMhCA+IG1lbW9yYW5kdW07CivmjKjlgIvlhZIgPiBvbmVcLWJ5XC1vbmU7CivlhYTlvJ/mnIMgPiBmcmF0ZXJuaXR5Owor55WZ6IGy5qmfID4gZ3JhbW9waG9uZTsKK+m7keiOk+WtkCA+IGJsYWNrYmVycnk7CivntbHoqIjlrbggPiBzdGF0aXN0aWNzOwor5Zyo5LiL6Z2iID4gdW5kZXJuZWF0aDsKK+S4jeiuiuWMliA+IGludmFyaWFibHk7CivpmYznlJ/kurogPiBhXC1zdHJhbmdlcjsKK+S4jemBqeeVtiA+IGluYWRlcXVhdGU7Civpm7voppboh7ogPiB0dlwtc3RhdGlvbjsKK+S4u+WKm+iJpiA+IGJhdHRsZXNoaXA7CivooYzkuI3pgJogPiB3b24nJ3RcLXdvcms7Civnq7bniK3ogIUgPiBjb21wZXRpdG9yOwor5pyJ57O757WxID4gc3lzdGVtYXRpYzsKK+efreaZgumWkyA+IHNob3J0XC10ZXJtOwor5rKS5Lq65L2PID4gdW5vY2N1cGllZDsKK+WLleeJqeWtuCA+IHpvb2xvZ2ljYWw7Civnm6fmo67loKEgPiBsdXhlbWJvdXJnOwor56ys5LiD5Y2BID4gc2V2ZW50aWV0aDsKK+WGsOWHneWZqCA+IGNyeW9waG9ydXM7Civlv4PnkIblrbggPiBwc3ljaG9sb2d5Owor5rCj5ZaY5ZaYID4gYnJlYXRobGVzczsKK+esrOS4gOS+iyA+IGZpcnN0XC1jYXNlOwor5pGp5aSp5pGfID4gc2t5c2NyYXBlcjsKK+S4jemAj+awtCA+IHdhdGVycHJvb2Y7CivlvpfkuI3liLAgPiBjYW5ub3RcLWdldDsKK+mHjeimgeaApyA+IGltcG9ydGFuY2U7CivmioDooZPlk6EgPiB0ZWNobmljaWFuOwor6Z2e5q2j5byPID4gdW5vZmZpY2lhbDsKK+WRqOaBqeS+hiA+IHpob3VcLWVubGFpOwor5pyJ6IiI6LajID4gaW50ZXJlc3RlZDsKK+S4jee2k+aEjyA+IGNhcmVsZXNzbHk7CivmiZPlrZfmqZ8gPiB0eXBld3JpdGVyOwor5YCN5aKe5ZmoID4gbXVsdGlwbGllcjsKK+mHkeWxrOe3miA+IG1ldGFsXC13aXJlOwor5pyJ6Ia96YePID4gY291cmFnZW91czsKK+itmOWIpeiZnyA+IGlkZW50aWZpZXI7CivnlJ/mnInmrIogPiBiaXJ0aHJpZ2h0Owor5oyB5Y2h5Lq6ID4gY2FyZGhvbGRlcjsKK+WIuue5oeWTgSA+IGVtYnJvaWRlcnk7Civmr5vmvqTmnbEgPiBtYW9cLXplZG9uZzsKK+WFreWNgeS6lCA+IHNpeHR5XC1maXZlOwor5aSa5aqS6auUID4gbXVsdGltZWRpYTsKK+S4jeW5s+W4uCA+IHJlbWFya2FibGU7CivmirXmipflipsgPiByZXNpc3RhbmNlOwor5aSn5Li75pWZID4gYXJjaGJpc2hvcDsKK+ippueul+ihqCA+IHNwZWFkc2hlZXQ7Civnmb3lj6PpkLUgPiB3aGl0ZVwtaXJvbjsKK+esrOWNgeWFqyA+IGVpZ2h0ZWVudGg7Civlr6bpqZflrqQgPiBsYWJvcmF0b3J5Owor56ys5Y2B5LmdID4gbmluZXRlZW50aDsKK+esrOWNgeS4iSA+IHRoaXJ0ZWVudGg7CivmqZ/pl5zou4ogPiBsb2NvbW90aXZlOwor5L+d5r2U566xID4gbGl0dGVyXC1iaW47CivogIHlubTkurogPiBvbGRcLXBlb3BsZTsKK+eZvOiBsuazlSA+IGludG9uYXRpb247CivorZjliKXnorwgPiBpZGVudGlmaWVyOwor5LiN5bmz5YehID4gbWFydmVsbG91czsKK+W0keW0meWxsSA+IG10XC5cLWt1bmx1bjsKK+S7o+ihqOWcmCA+IGRlbGVnYXRpb247CivlvbHlg4/mqpQgPiBpbWFnZVwtZmlsZTsKK+WxheS9j+iAhSA+IGluaGFiaXRhbnQ7CivlgrPmn5Pnl4UgPiBwZXN0aWxlbmNlOwor56ym6KiY55KwID4gdG9rZW5cLXJpbmc7Civlm5vnmb7lhIQgPiA0MFwtYmlsbGlvbjsKK+ebp+a1ruWuriA+IHRoZVwtbG91dnJlOwor5ZCm5rG65qyKID4gdmV0b1wtcG93ZXI7CivltIfmi5zogIUgPiB3b3JzaGlwcGVyOwor5oiy5YqH5YyWID4gdGhlYXRyaWNhbDsKK+WVhOacqOmzpSA+IHdvb2RwZWNrZXI7CivpnZ7nm4jliKkgPiBub25cLXByb2ZpdDsKK+S9v+WuueaYkyA+IGZhY2lsaXRhdGU7CivnoJTnqbblk6EgPiByZXNlYXJjaGVyOwor55uu5pOK6ICFID4gZXlld2l0bmVzczsKK+WwiOmWgOWMliA+IHNwZWNpYWxpemU7CivmkanmiZjou4ogPiBtb3RvcmN5Y2xlOwor5oyJ5omL56auID4gb3JkaW5hdGlvbjsKK+ioguizvOiAhSA+IHN1YnNjcmliZXI7Civpoa/lvq7pj6EgPiBtaWNyb3Njb3BlOwor5Y6f55Sf6LOqID4gcHJvdG9wbGFzbTsKK+WkmuaWuemdoiA+IG1hbnlcLXNpZGVkOwor5pyD6ZW35ZyYID4gcHJlc2lkZW5jeTsKK+aWsOiBnuWtuCA+IGpvdXJuYWxpc207CivkuI3lrproqZ4gPiBpbmZpbml0aXZlOwor5aSn5rCj5bGkID4gYXRtb3NwaGVyZTsKK+S4jeewoeWWriA+IG5vdFwtc2ltcGxlOwor5Y+X5YK35a6zID4gYmVcLWluanVyZWQ7Civnq6/ns7vntbEgPiBlbmRcLXN5c3RlbTsKK+S7o+abv+iAhSA+IHN1YnN0aXR1dGU7CivkuInnmb7lhIQgPiAzMFwtYmlsbGlvbjsKK+mdnuWwjeeosSA+IGFzeW1tZXRyaWM7CivnhKHnhZnnhaQgPiBhbnRocmFjaXRlOwor5Y2K5rG66LO9ID4gc2VtaWZpbmFsczsKK+iOq+mgiOaciSA+IGdyb3VuZGxlc3M7CivkuI3osrfos6wgPiBub3RcLWJ1eVwtaXQ7CivlpbPlrbjnlJ8gPiBzY2hvb2xnaXJsOwor5LiN6Ieq5ZyoID4gdW5lYXNpbmVzczsKK+S4i+WAi+aciCA+IG5leHRcLW1vbnRoOwor6Y+I6Lev5bGkID4gbGlua1wtbGF5ZXI7CivkuI3nlLHlvpcgPiBjYW4nJ3RcLWhlbHA7CivmuqvlkozmgKcgPiB0ZW5kZXJuZXNzOwor5omA5pyJ6ICFID4gcHJvcHJpZXRvcjsKK+S4iuWAi+aciCA+IGxhc3RcLW1vbnRoOwor5Y2K56m65LitID4gaW5cLW1pZFwtYWlyOwor5LiN562J5byPID4gaW5lcXVhbGl0eTsKK+aal+mWk+WFkiA+IGlubmVyXC1yb29tOwor6Ieq5YuV5YyWID4gYXV0b21hdGlvbjsKK+WWruaWuemdoiA+IHVuaWxhdGVyYWw7CivpgYvli5XloLQgPiBwbGF5Z3JvdW5kOwor6ZmE5Yqg54mpID4gY29tcGxlbWVudDsKK+S9m+aVmeW+kiA+IGFcLWJ1ZGRoaXN0Owor5pON6Ii15a6kID4gcGlsb3Rob3VzZTsKK+mbu+WUseapnyA+IHBob25vZ3JhcGg7CivmtYHnqIvlnJYgPiBmbG93XC1jaGFydDsKK+ebo+edo+iAhSA+IHN1cGVydmlzb3I7CivmiYDmnInniakgPiBiZWxvbmdpbmdzOwor5LqM5Y2B5LiAID4gdHdlbnR5XC1vbmU7CivnqanlrprmgKcgPiBzdGFiaWxpdHk7CivpgKPmjqXlmaggPiBjb25uZWN0b3I7CivlvaLlrrnovq0gPiBhZGplY3RpdmU7Civlj6/lvpfliLAgPiBhdmFpbGFibGU7Civnp5HlrbjlrrYgPiBzY2llbnRpc3Q7Civlv5fpoZjogIUgPiB2b2x1bnRlZXI7Civmk6bpgornkIMgPiBlZGdlXC1iYWxsOwor5oCO6bq85qijID4gaG93XC1hYm91dDsKK+aJgOacieasiiA+IG93bmVyc2hpcDsKK+eZveWgsee0mSA+IG5ld3NwcmludDsKK+iojuirluacgyA+IHN5bXBvc2l1bTsKK+aOpeWPl+iAhSA+IHJlY2lwaWVudDsKK+W9ouWuueipniA+IGFkamVjdGl2ZTsKK+avj+WAi+S6uiA+IGV2ZXJ5Ym9keTsKK+S4jeiCsuaApyA+IHN0ZXJpbGl0eTsKK+aqouafpeWToSA+IGluc3BlY3RvcjsKK+ihqOePvuWeiyA+IHBoZW5vdHlwZTsKK+earumei+WMoCA+IHNob2VtYWtlcjsKK+S/neitt+iAhSA+IHByb3RlY3RvcjsKK+WBveWQm+WtkCA+IGh5cG9jcnl0ZTsKK+iBsuaYjuabuCA+IHN0YXRlbWVudDsKK+mmrOi5hOmQtSA+IGhvcnNlc2hvZTsKK+aTlOaetuW6iiA+IHN0cmV0Y2hlcjsKK+S4jeWujOWWhCA+IGltcGVyZmVjdDsKK+aZtOmbqOihqCA+IGJhcm9tZXRlcjsKK+WNg+emp+W5tCA+IG1pbGxlbml1bTsKK+S9v+iUk+W7tiA+IHRvXC1zcHJlYWQ7CivmjqXnj63kurogPiBzdWNjZXNzb3I7CivliarosrznsL8gPiBzY3JhcGJvb2s7CivlgYnmmbblsqkgPiBwZWdtYXRpdGU7CivmjIfnpLrnrKYgPiBpbmRpY2F0b3I7Civkv53mg6DluKsgPiBjb21mb3J0ZXI7Civlu7rnr4nluKsgPiBhcmNoaXRlY3Q7Civlp5Tlk6HmnIMgPiBjb21taXR0ZWU7CivoiKrmtbfogIUgPiBuYXZpZ2F0b3I7CivlsI/lkIPlupcgPiBzbmFja1wtYmFyOwor57at5aOr5Y2hID4gdmlzYVwtY2FyZDsKK+WlveWlh+W/gyA+IGN1cmlvc2l0eTsKK+aUv+ayu+aApyA+IHBvbGl0aWNhbDsKK+a7kem8oOWiiiA+IG1vdXNlXC1wYWQ7Civmi5znianmlZkgPiBmZXRpc2hpc207CivkvY7pgJ/njocgPiBsb3dcLXNwZWVkOwor5pS/5rK75bGAID4gcG9saXRidXJvOwor6Zu25ZSu5ZWGID4gdHJhZGVzbWFuOwor5pS/5rK75a62ID4gc3RhdGVzbWFuOwor5a6J5YWo5bi2ID4gc2VhdFwtYmVsdDsKK+eZu+W7o+WRiiA+IGFkdmVydGlzZTsKK+aciea0u+WKmyA+IGVuZXJnZXRpYzsKK+mmmeaqs+mFkiA+IGNoYW1wYWduZTsKK+e2nOWQiOaApyA+IHN5bnRoZXNpczsKK+aRgemHmOWFkiA+IHRodW1idGFjazsKK+aWh+WFt+WVhiA+IHN0YXRpb25lcjsKK+aWsOWKoOWdoSA+IHNpbmdhcG9yZTsKK+mgmOS6i+mkqCA+IGNvbnN1bGF0ZTsKK+i2heiBr+e1kCA+IGh5cGVybGluazsKK+S/neeah+m7qCA+IHJveWFsaXN0czsKK+adseWMl+aWuSA+IG5vcnRoZWFzdDsKK+WlveiQiuWhoiA+IGhvbGx5d29vZDsKK+aMgeS5heaApyA+IGNvbnN0YW5jeTsKK+eZveihgOeXhSA+IGxldWthZW1pYTsKK+WFqOS4lueVjCA+IHdvcmxkd2lkZTsKK+e5vOaJv+iAhSA+IHN1Y2Nlc3NvcjsKK+aKl+itsOiAhSA+IHByb3Rlc3RlcjsKK+iho+W4vemWkyA+IGNsb2Frcm9vbTsKK+S4gOWMuemmrCA+IG9uZVwtaG9yc2U7CivmnInmmYLlgJkgPiBzb21ldGltZXM7CivlgJnpgbjkurogPiBjYW5kaWRhdGU7CivlkJHljJflnLAgPiBub3J0aHdhcmQ7CivkuIvmsbrlv4MgPiBkZXRlcm1pbmU7Civkv53orYnkurogPiBndWFyYW50b3I7CivkuIrmmJ/mnJ8gPiBsYXN0XC13ZWVrOwor56ys5LqM5Y2BID4gdHdlbnRpZXRoOwor552h6YGO6aCtID4gb3ZlcnNsZWVwOwor5Yip5pyq6KiYID4gbGV2aXRpY3VzOwor56ul5a2Q6LuNID4gYm95XC1zY291dDsKK+Wbm+WNgeWFrSA+IGZvcnR5XC1zaXg7CivnrKzkuZ3ljYEgPiBuaW5ldGlldGg7Civou4rliY3nh4ggPiBoZWFkbGlnaHQ7CivlrofoiKrlk6EgPiBhc3Ryb25hdXQ7Civkvb/lm7DnqpggPiBlbWJhcnJhc3M7Civlt6flhYvlipsgPiBjaG9jb2xhdGU7CivmnInpm4Tlv4MgPiBhbWJpdGlvdXM7CivomZXnkIblmaggPiBwcm9jZXNzb3I7Civnn6Xmm7Tps6UgPiByZWRicmVhc3Q7CivllZ/npLrogIUgPiByZXZlbGF0b3I7CivnrKzkuInljYEgPiB0aGlydGlldGg7Civnmb3pjqLnpKYgPiBzY2hlZWxpdGU7CivmiYvmj5DljIUgPiBcKGhhbmRcKWJhZzsKK+aKgOihk+aApyA+IHRlY2huaWNhbDsKK+S4jeiqoOWvpiA+IGRpc2hvbmVzdDsKK+ixjOixhueypSA+IHBlYVwtZ3J1ZWw7CivorormtYHlmaggPiBjb252ZXJ0ZXI7CivmvZvmsLToiYcgPiBzdWJtYXJpbmU7CivmibPpgZPlk6EgPiBwb2ludHNtYW47Civnubzku7vogIUgPiBzdWNjZXNzb3I7CivlhanmmJ/mnJ8gPiBmb3J0bmlnaHQ7CivmoLzlvI/ljJYgPiB0b1wtZm9ybWF0Owor5o6h55+z5aC0ID4gc3RvbmVcLXBpdDsKK+WKoOWLkuavlCA+IGNhcmliYmVhbjsKK+mbu+WgseapnyA+IHRlbGVncmFwaDsKK+W3peS9nOihqCA+IHdvcmtzaGVldDsKK+aatOmiqOmbqiA+IHNub3dzdG9ybTsKK+aatOmiqOmbqCA+IHJhaW5zdG9ybTsKK+aWh+Wtl+aqlCA+IHRleHRcLWZpbGU7Civosr/mmJPmiLAgPiB0cmFkZVwtd2FyOwor5L+d6Ki85Lq6ID4gZ3VhcmFudG9yOwor5aWJ5om/6ICFID4gZmxhdHRlcmVyOwor5oyH5o+u6ICFID4gY29uZHVjdG9yOwor5Y+D6ICD5pu4ID4gcmVmZXJlbmNlOwor6Yed5bCN5oCnID4gZGlyZWN0aW9uOwor5Y2K6KGw5pyfID4gaGFsZlwtbGlmZTsKK+aLieaWkOeJuSA+IGxhZmF5ZXR0ZTsKK+imgeS4jeeEtiA+IG90aGVyd2lzZTsKK+S4jee1kOaenCA+IGZydWl0bGVzczsKK+eUs+iri+S6uiA+IGFwcGxpY2FudDsKK+WHuueJiOiAhSA+IHB1Ymxpc2hlcjsKK+acrOaYn+acnyA+IHRoaXNcLXdlZWs7CivmgKrkuI3lvpcgPiBub1wtd29uZGVyOwor5Ym16YCg5YqbID4gaW5nZW51aXR5Owor5Y+v5a655b+NID4gdG9sZXJhYmxlOwor5Z+65pys5LiKID4gYmFzaWNhbGx5Owor56i76I2J5Lq6ID4gc2NhcmVjcm93Owor5aSa55So5oi2ID4gbXVsdGl1c2VyOwor57695q+b55CDID4gYmFkbWludG9uOwor5pWR6K236LuKID4gYW1idWxhbmNlOwor56ys5Y2B5YWtID4gc2l4dGVlbnRoOwor5L2/55Sf5rCjID4gZGlzcGxlYXNlOwor5LiN5YWs5q2jID4gaW5qdXN0aWNlOwor5YWJ5bCE57eaID4gbGlnaHRcLXJheTsKK+WkluWci+S6uiA+IGZvcmVpZ25lcjsKK+esrOWNgeS6lCA+IGZpZnRlZW50aDsKK+mYv+agueW7tyA+IGFyZ2VudGluYTsKK+WBveWWhOiAhSA+IGh5cG9jcml0ZTsKK+ieuuaXi+ansyA+IHByb3BlbGxlcjsKK+iyr+awtOiZlSA+IHJlc2Vydm9pcjsKK+WNiua1gemrlCA+IHNlbWlmbHVpZDsKK+W+geacjeiAhSA+IGNvbnF1ZXJvcjsKK+aNlem8oOWZqCA+IG1vdXNldHJhcDsKK+iuiuiJsum+jSA+IGNoYW1lbGVvbjsKK+WwjeaKl+iAhSA+IGFkdmVyc2FyeTsKK+iWhOayueWxpCA+IG9pbFwtc2hlZXQ7CivnhKHnn6XoprogPiBzZW5zZWxlc3M7CivmsKPlo5PoqIggPiBiYXJvbWV0ZXI7Civnmb3kupHmr40gPiBtdXNjb3ZpdGU7CivlvavliLvlk4EgPiBzY3VscHR1cmU7CivmlrDogZ7nlYwgPiB0aGVcLXByZXNzOwor5LiA5Y2D5Zm4ID4gMTAwMFwtdG9uczsKK+S4jeimj+WJhyA+IGlycmVndWxhcjsKK+azoueLgOmbsiA+IHVuZHVsYXR1czsKK+aTtOmfs+WZqCA+IG1lZ2FwaG9uZTsKK+S4jeimi+S6hiA+IGRpc2FwcGVhcjsKK+S5neaciOS7vSA+IHNlcHRlbWJlcjsKK+i2heaWh+acrCA+IGh5cGVydGV4dDsKK+iugOabuOS6uiA+IGFcLXNjaG9sYXI7CivmjIfmj67lrpggPiBjb21tYW5kZXI7CivlvJXnlKjlj6UgPiBxdW90YXRpb247CivljYPotavojLIgPiBraWxvaGVydHo7CivlhavlgI3pq5QgPiBvY3RvcGxvaWQ7CivooqvnpoHmraIgPiBmb3JiaWRkZW47CivkuI3oh6rnhLYgPiB1bm5hdHVyYWw7Civpq5jnp5HmioAgPiBoaWdoXC10ZWNoOwor5oCq54mp5Ly8ID4gbW9uc3Ryb3VzOwor5Yaw5qON5YWSID4gaWNlXC1sb2xseTsKK+eZveePreWFkiA+IGRheVwtc2hpZnQ7CivmmJ/mnJ/kuIkgPiB3ZWRuZXNkYXk7Civph47ooLvkurogPiBiYXJiYXJpYW47CivljYHlrZfou40gPiBjcnVzYWRlcnM7Civms5XlnIvkurogPiBmcmVuY2htYW47CivkupTljYPlmbggPiA1MDAwXC10b25zOwor6YGH6Zuj6Ii5ID4gc2hpcHdyZWNrOwor5Ye65bit6ICFID4gYXR0ZW5kYW50Owor576K55qu57SZID4gcGFyY2htZW50Owor5Y+N6Imm6ImHID4gYW50aVwtc2hpcDsKK+WFp+iho+iksiA+IHVuZGVyd2VhcjsKK+W/hemcgOWTgSA+IG5lY2Vzc2l0eTsKK+WGsOa3h+a3iyA+IGljZVwtY3JlYW07Civnn7PngbDnn7MgPiBsaW1lc3RvbmU7Civkv67pgZPpmaIgPiBtb25hc3Rlcnk7Civopb/ljJfmlrkgPiBub3J0aHdlc3Q7CivmnJvpgaDpj6EgPiB0ZWxlc2NvcGU7CivotoXmlofku7YgPiBoeXBlcnRleHQ7Civmk7roqK3lhZIgPiBvcm5hbWVudHM7CivlpKrlpb3kuoYgPiB2ZXJ5XC1nb29kOwor5pys5bm05bqmID4gdGhpc1wteWVhcjsKK+W/g+mdiOS4iiA+IHNwaXJpdHVhbDsKK+WkqeaWh+WtuCA+IGFzdHJvbm9teTsKK+W3tOavlOWmpSA+IGJhcmJpdG9uZTsKK+WvpuizquS4iiA+IHZpcnR1YWxseTsKK+acieevgOWItiA+IHRlbXBlcmF0ZTsKK+acieaEj+itmCA+IGNvbnNjaW91czsKK+WPl+Wus+iAhSA+IGNhc3VsdGllczsKK+S4jeWujOe+jiA+IGRlZmVjdGl2ZTsKK+aDhee3kuWMliA+IGVtb3Rpb25hbDsKK+aUr+aMgeiAhSA+IHN1cHBvcnRlcjsKK+aVuOS4jeeboSA+IGNvdW50bGVzczsKK+WAn+abuOWWriA+IGJvb2tcLXNsaXA7CivmnInnpq7osowgPiBjb3VydGVvdXM7CivnrKzlhavljYEgPiBlaWdodGlldGg7Civph4znqIvnopEgPiBtaWxlc3RvbmU7CivkuI3mg4XpoZggPiB1bndpbGxpbmc7CivkuIvlrprnvqkgPiB0b1wtZGVmaW5lOwor5bCN5LiN6LW3ID4gaScnbVwtc29ycnk7CivlgYfosaHniZkgPiBjZWxsdWxvaWQ7CivpmY3okL3lgpggPiBwYXJhY2h1dGU7CivkuI3ogrLnl4cgPiBzdGVyaWxpdHk7Civlv4XopoHmgKcgPiBuZWNlc3NpdHk7CivmlbjkuI3muIUgPiBjb3VudGxlc3M7Civos7zosrfogIUgPiBwdXJjaGFzZXI7CivlpKfmlZnloIIgPiBjYXRoZWRyYWw7CivntYTnuZTogIUgPiBvcmdhbml6ZXI7CivogZbov63lk6UgPiBzYW5cLWRpZWdvOwor6ZW35pa55b2iID4gcmVjdGFuZ2xlOwor55Sf5q6W5YqbID4gZmVydGlsaXR5Owor54Gw542154qsID4gZ3JleWhvdW5kOwor57+S5oWj5oCnID4gY3VzdG9tYXJ5Owor55m95YWn6ZqcID4gY2F0YXJhY3Q7CivlpKfnr7fou4ogPiBzY2hvb25lcjsKK+ebo+itt+S6uiA+IGd1YXJkaWFuOwor5LiN5ZCI6YGpID4gaW1wcm9wZXI7Civop4Dlr5/ogIUgPiBvYnNlcnZlcjsKK+iXpeWKkeWjqyA+IGRydWdnaXN0Owor5LiN5L+h5Lu7ID4gbWlzdHJ1c3Q7Civlm6DnibnntrIgPiBpbnRlcm5ldDsKK+WwjeeoseaApyA+IHN5bW1ldHJ5Owor5qqi5ris5ZmoID4gZGV0ZWN0b3I7CivprZTooZPluKsgPiBtYWdpY2lhbjsKK+S4jeacveeahCA+IGltbW9ydGFsOwor5q235Y+y5oCnID4gaGlzdG9yaWM7CivmqrjmqqzmsLQgPiBsZW1vbmFkZTsKK+S7peWkque2siA+IGV0aGVybmV0Owor6LKg6YeN5pOUID4gYnVyZGVuZWQ7CivmjqLmuKzlmaggPiBkZXRlY3RvcjsKK+WNgeS6jOaciCA+IGRlY2VtYmVyOwor5pOm57ay55CDID4gbmV0XC1iYWxsOwor6IGW5L+d576FID4gc3RcLlwtcGF1bDsKK+ilv+ijoeeIviA+IGN5cmlsbGljOwor5aWz5a2p5YWSID4gZGF1Z2h0ZXI7CivmnInlvrfooYwgPiB2aXJ0dW91czsKK+WPr+aTpuWvqyA+IGVyYXNhYmxlOwor54mn576K6ICFID4gc2hlcGhlcmQ7CivmnIDllpzmhJsgPiBmYXZvcml0ZTsKK+ethuiomOacrCA+IG5vdGVib29rOwor6Jaw6KGj6I2JID4gbGF2ZW5kZXI7CivkuI3lv4XopoEgPiBuZWVkbGVzczsKK+iri+mhmOabuCA+IHBldGl0aW9uOwor5oqV6LOH6ICFID4gaW52ZXN0b3I7Civlr4TnlJ/niakgPiBwYXJhc2l0ZTsKK+iCr+WhlOWfuiA+IGtlbnR1Y2t5Owor5p+s5Z+U5a+oID4gY2FtYm9kaWE7CivkuIDlsI/mmYIgPiBvbmVcLWhvdXI7CivkurrooYzpgZMgPiBzaWRld2FsazsKK+WuieWFqOaApyA+IHNlY3VyaXR5Owor5YaN5L+d6Ki8ID4gcmVhc3N1cmU7CivmlL/msrvlrbggPiBwb2xpdGljczsKK+ingOWvn+WutiA+IG9ic2VydmVyOwor6Zue5bC+6YWSID4gY29ja3RhaWw7CivmqYTmrJbnkIMgPiBmb290YmFsbDsKK+W5s+W6lemNiyA+IHNhdWNlcGFuOwor57SA5b+156KRID4gbW9udW1lbnQ7CivkvrXlhaXogIUgPiBpbnRydWRlcjsKK+aUuemdqeiAhSA+IHJlZm9ybWVyOwor5omL5o+Q566xID4gc3VpdGNhc2U7CivkuI3lkIzmhI8gPiBkaXNhZ3JlZTsKK+WFseWSjOWciyA+IHJlcHVibGljOwor5qOS56Oo5qmfID4gcm9kXC1taWxsOwor5q+U55uu6a2aID4gZmxhdGZpc2g7CivlpKflsaDmrrogPiBtYXNzYWNyZTsKK+Wwj+WknOabsiA+IHNlcmVuYWRlOwor5bCP5qiZ6aGMID4gc3VidGl0bGU7CivmnInmqZ/pq5QgPiBvcmdhbmlzbTsKK+atu+ihmuihlSA+IGRlYWRcLWVuZDsKK+S6pOmfv+absiA+IHN5bXBob255Owor5pmC6ZaT6KGoID4gc2NoZWR1bGU7CivpoK3lkJHliY0gPiBoZWFkbG9uZzsKK+aOoumaquiAhSA+IGV4cGxvcmVyOwor5Y+X6Zuj6ICFID4gc3VmZmVyZXI7Civlt7Tmi4nlnK0gPiBwYXJhZ3VheTsKK+esrOS4gOatpSA+IHN0ZXBcLW9uZTsKK+iqv+WRs+axgSA+IGRyZXNzaW5nOwor5pW45pOa5bqrID4gZGF0YWJhc2U7CivlgrXmrIrkurogPiBjcmVkaXRvcjsKK+W8n+WFhOWAkSA+IGJyZXRocmVuOwor5bCP6Kqq5a62ID4gbm92ZWxpc3Q7CivnrKzkupTljYEgPiBmaWZ0aWV0aDsKK+S4ieaYjuayuyA+IHNhbmR3aWNoOwor5YKs5YyW5YqRID4gY2F0YWx5c3Q7CivmtojosrvogIUgPiBjb25zdW1lcjsKK+eJp+e+iuS6uiA+IHNoZXBoZXJkOwor5pyJ5b2I5oCnID4gZmxleGlibGU7CivntpPpmbjot68gPiBvdmVybGFuZDsKK+WcqOaItuWkliA+IG91dGRvb3JzOwor5pOm5qOS55CDID4gZm91bFwtdGlwOwor5Lit5LiW57SAID4gbWVkaWV2YWw7Civlgr7ogb3ogIUgPiBsaXN0ZW5lcjsKK+aOpeaUtuWZqCA+IHJlY2VpdmVyOwor6LOH5paZ5bqrID4gZGF0YWJhc2U7Civmrrrkurrniq8gPiBtdXJkZXJlcjsKK+iRoeiQhOeJmSA+IHBvcnR1Z2FsOwor5LiN5q2j5bi4ID4gYWJub3JtYWw7Civlhafpg6jntrIgPiBpbnRyYW5ldDsKK+S4jemAj+awoyA+IGFpcnRpZ2h0Owor5pqW5rCj5qmfID4gcmFkaWF0b3I7CivpmL/ogq/oibIgPiBhcmthbnNhczsKK+aVmeenkeabuCA+IHRleHRib29rOwor6byT5ZC56ICFID4gYWR2b2NhdGU7CivlnLDkuIvlrqQgPiBiYXNlbWVudDsKK+Wkp+iCmuWtkCA+IHByZWduYW50Owor5LiN6YGO5oSPID4gYmVcLXNvcnJ5Owor5YaS54qv6ICFID4gb2ZmZW5kZXI7Civkv53nnJ/luqYgPiBmaWRlbGl0eTsKK+S4jemrlOmdoiA+IHNoYW1lZnVsOwor5bCP6KGd56qBID4gc2tpcm1pc2g7CivmjpLmsLTmuKAgPiBkcmFpbmFnZTsKK+m6u+mGieWKkSA+IG5hcmNvdGljOwor6KKr5L615a6zID4gc3RyaWNrZW47CivoqIjnrpfmqZ8gPiBjb21wdXRlcjsKK+eZveacqOiAsyA+IHRyZW1lbGxhOwor542o6KOB6ICFID4gZGljdGF0b3I7CivoqJjpjITlk6EgPiByZWNvcmRlcjsKK+iYh+agvOiYrSA+IHNjb3RsYW5kOwor6JGh6JCE5ZySID4gdmluZXlhcmQ7Civkvb/oiIjlpa4gPiBleGNpdGluZzsKK+esrOWNgeS4gCA+IGVsZXZlbnRoOwor5pa556iL5byPID4gZXF1YXRpb247CivnhKHnt5rpm7sgPiB3aXJlbGVzczsKK+W9q+WIu+WutiA+IHNjdWxwdG9yOwor5bel5ZWG55WMID4gaW5kdXN0cnk7CivpmL/miZjlk4EgPiBhdHJvcGluZTsKK+WcsOWNgOaApyA+IHJlZ2lvbmFsOwor6KOd6aO+54mpID4gb3JuYW1lbnQ7CivkuInop5LlvaIgPiB0cmlhbmdsZTsKK+iqmOaLkOiAhSA+IGFiZHVjdG9yOwor5oiy5YqH5oCnID4gZHJhbWF0aWM7Civmh7LnvbDmgKcgPiBwdW5pdGl2ZTsKK+WFq+inkualkyA+IGFsYW5naXVtOwor5YyX5rW36YGTID4gaG9ra2FpZG87CivkvY7miJDmnKwgPiBsb3dcLWNvc3Q7CivmmI7kv6HniYcgPiBwb3N0Y2FyZDsKK+aVkei0luS4uyA+IHJlZGVlbWVyOwor55Sf5ZG95YqbID4gdml0YWxpdHk7CivmiYDlnKjlnLAgPiBsb2NhdGlvbjsKK+eUoumHj+WkmiA+IGZydWl0ZnVsOwor55yL5a6I6ICFID4gd2F0Y2htYW47CivkvZTpoJjogIUgPiBvY2N1cGFudDsKK+aal+WcsOijoSA+IHNlY3JldGx5Owor5L2O6LK755SoID4gbG93XC1jb3N0Owor5L2/5ZCD6amaID4gYXN0b25pc2g7CivlubjlrZjogIUgPiBzdXJ2aXZvcjsKK+S9v+mnreaAlSA+IGZyaWdodGVuOwor5qu76Iqx6I2JID4gcHJpbXJvc2U7CivmmJ/mnJ/lm5sgPiB0aHVyc2RheTsKK+axuuWumuaApyA+IGRlY2lzaXZlOwor5pel6ICz5pu8ID4gZ2VybWFuaWM7Civlub7kvZXlrbggPiBnZW9tZXRyeTsKK+WCvuWQkeaWvCA+IHByb25lXC10bzsKK+eUn+mChOiAhSA+IHN1cnZpdm9yOwor5pif5pyf5YWtID4gc2F0dXJkYXk7CivpmLLlrojogIUgPiBkZWZlbmRlcjsKK+acieWDueWAvCA+IHZhbHVhYmxlOwor5Yi65r+A54mpID4gc3RpbXVsdXM7CivkuI3kv6HnlKggPiBkaXN0cnVzdDsKK+aPkOS+m+iruCA+IHByb3ZpZGVyOwor5bel56iL5birID4gZW5naW5lZXI7CivkuK3nubzlmaggPiByZXBlYXRlcjsKK+a0i+eQteeQtiA+IG1hbmRvbGluOwor5oOh5L2c5YqHID4gbWlzY2hpZWY7CivlrZDljYjnt5ogPiBtZXJpZGlhbjsKK+ijveS9nOiAhSA+IHByb2R1Y2VyOwor5LiN5Zyo5LmOID4gbm90XC1taW5kOwor6Z+z5qiC5a62ID4gbXVzaWNpYW47Civkvb/purvnl7ogPiBwYXJhbHl6ZTsKK+WNg+Wtl+evgCA+IGtpbG9ieXRlOwor6K6K6Zi75ZmoID4gdGhlb3N0YXQ7CivlpbPmiL/mnbEgPiBsYW5kbGFkeTsKK+S4jeWAvOW+lyA+IHVud29ydGh5Owor5o+Q5L6b6ICFID4gc3VwcGxpZXI7CivloIXlm7rmgKcgPiBmaXJtbmVzczsKK+eZveWMlueXhSA+IGFsYmluaXNtOwor56ys5YWt5Y2BID4gc2l4dGlldGg7CivmlofmmI7ljJYgPiBjaXZpbGl6ZTsKK+WkluS6pOWumCA+IGRpcGxvbWF0Owor55m96Zuy55+zID4gZG9sb21pdGU7Civkvb/nv5LmhaMgPiBhY2N1c3RvbTsKK+WGsOaZtuefsyA+IGNyeW9saXRlOwor5LiN5bCP5b+DID4gaGVlZGxlc3M7Civlr4zoibLlvakgPiBjb2xvcmZ1bDsKK+e0jeeoheS6uiA+IHRheHBheWVyOwor5YaN5Ye654++ID4gcmVhcHBlYXI7CivpnaDog4zmpIUgPiBhcm1jaGFpcjsKK+aTjeS9nOiAhSA+IG9wZXJhdG9yOwor5YWo5ZyL5oCnID4gbmF0aW9uYWw7CivntbLni4DniakgPiBmaWxhbWVudDsKK+eZvOaYjuWutiA+IGludmVudG9yOwor6Jel5YqR5birID4gZHJ1Z2dpc3Q7CivkuI3mgI7purwgPiBub3RcLXZlcnk7CivlpKfopb/mtIsgPiBhdGxhbnRpYzsKK+eci+W+l+imiyA+IHZpc2libGU7CivmnInos4fmoLwgPiBlbnRpdGxlOwor5ZyT55+z6aCtID4gYm91bGRlcjsKK+Wlp+WcsOWIqSA+IGF1c3RyaWE7CivlgrPpgZPpg6ggPiBtaXNzaW9uOwor5Ym15LiW57SAID4gZ2VuZXNpczsKK+WNg+S9jeWFgyA+IGtpbG9iaXQ7Civmj5rogbLlmaggPiBzcGVha2VyOwor566h55CG5ZOhID4gbWFuYWdlcjsKK+iAgeizh+agvCA+IHZldGVyYW47Civph5HpioDloYogPiBidWxsaW9uOwor5rKZ5LiB6a2aID4gc2FyZGluZTsKK+WHuue0jeWToSA+IGNhc2hpZXI7CivmhJvpgYrnjqkgPiBwbGF5ZnVsOwor6Yu855C05a62ID4gcGlhbmlzdDsKK+ioiOaVuOiAhSA+IGNvdW50ZXI7Civop6PliZblrbggPiBhbmF0b215Owor5pyJ5a245ZWPID4gbGVhcm5lZDsKK+WNiuWQiuWtkCA+IGRhYmJsZXI7CivlpKnoirHmnb8gPiBjZWlsaW5nOwor5aSn55uk5a2QID4gcGxhdHRlcjsKK+S4jeiDveS4jSA+IGhhdmVcLXRvOwor5Ye65YWl5Y+jID4gZ2F0ZXdheTsKK+i1t+eauue0iyA+IHNocml2ZWw7CivmsrnlhYnmvIYgPiB2YXJuaXNoOwor5omY5YWS5omAID4gbnVyc2VyeTsKK+iJt+e0heiJsiA+IGNyaW1zb247CivnibnoqLHni4AgPiBjaGFydGVyOwor5ouW5puz5qmfID4gdHJhY3RvcjsKK+mgkOiogOWutiA+IHByb3BoZXQ7Civog4zlj5vogIUgPiB0cmFpdG9yOwor5aSn5L2/6aSoID4gZW1iYXNzeTsKK+Wkp+iNieWOnyA+IHByYWlyaWU7CivniannkIblrbggPiBwaHlzaWNzOwor5LiN6IG95ZG9ID4gZGlzb2JleTsKK+e0oummrOijoSA+IHNvbWFsaWE7Civlu6Pmkq3ntrIgPiBuZXR3b3JrOwor5be05qC86YGUID4gYmFnaGRhZDsKK+mKgOihjOalrSA+IGJhbmtpbmc7CivmiYvmjqjou4ogPiB0cm9sbGV5Owor5Yue5YuV6ICFID4gbGFib3JlcjsKK+e+jua0suixuSA+IHBhbnRoZXI7CivoirHltJfnn7MgPiBncmFuaXRlOwor5Zyo5YW25LitID4gdGhlcmVpbjsKK+S4jeWQiOazlSA+IGlsbGVnYWw7CivmorXluJ3lsqEgPiB2YXRpY2FuOwor5ZCM576p5a2XID4gc3lub255bTsKK+aEm+Wci+iAhSA+IHBhdHJpb3Q7CivlpbPkuLvkurogPiBob3N0ZXNzOwor55m95qa055+zID4gbGV1Y2l0ZTsKK+S9oOiHquW3sSA+IHRoeXNlbGY7Civoh6rnlLHmtL4gPiBsaWJlcmFsOwor6J6i54Gr6J+yID4gZmlyZWZseTsKK+eZvuWIhuS5iyA+IHBlcmNlbnQ7CivprIbnt4rluLYgPiBlbGFzdGljOwor5a+E5a6/55SfID4gYm9hcmRlcjsKK+WPl+atoei/jiA+IHBvcHVsYXI7Civpo5vmqZ/loLQgPiBhaXJwb3J0Owor6KiI5pW45ZmoID4gY291bnRlcjsKK+Wvpumam+S4iiA+IGluXC1mYWN0Owor5Y+N5oeJ5aCGID4gcmVhY3RvcjsKK+eVsOaVmeW+kiA+IGhlYXRoZW47CivlpJbpgqbkurogPiBnZW50aWxlOwor56e75rCR6ICFID4gbWlncmFudDsKK+S4jeWQieWIqSA+IG9taW5vdXM7CivlibXpgKDogIUgPiBjcmVhdG9yOwor54aU56Sm54iQID4gZnVybmFjZTsKK+Wls+iLsembhCA+IGhlcm9pbmU7CivlhafnvoXnlaIgPiBuYWlyb2JpOwor5Y+b6YCG6ICFID4gdHJhaXRvcjsKK+S9v+mrmOiytCA+IGRpZ25pZnk7CivlnLDos6rlrbggPiBnZW9sb2d5Owor6Zec6Y216KmeID4ga2V5d29yZDsKK+W3tOadvueuoSA+IGJhc3Nvb247CivluIPpmobov6ogPiBidXJ1bmRpOwor5YWF6Zu75ZmoID4gY2hhcmdlcjsKK+iSmeWkp+aLvyA+IG1vbnRhbmE7Civngq3nlr3nl4UgPiBhbnRocmF4Owor5Y+y5a+G54m5ID4gc2NobWl0dDsKK+WvjOWjq+mAmiA+IGZ1aml0c3U7Civng7noqr/ooZMgPiBjb29rZXJ5Owor5Y2w5Yi36ICFID4gcHJpbnRlcjsKK+a3t+WQiOeJqSA+IG1peHR1cmU7CivpmL/lhYvlgKsgPiBhY2hlcm9uOwor54Sh56We6KuWID4gYXRoZWlzbTsKK+S4jeWLleaQliA+IHVubW92ZWQ7CivpmrHol4/omZUgPiBzaGVsdGVyOwor5oq85rKZ6b6NID4gYWJzYWxvbTsKK+WCrOecoOabsiA+IGx1bGxhYnk7CivniZvpoK3niqwgPiBidWxsZG9nOwor5L2/6a2U5rOVID4gY29uanVyZTsKK+WQueWPo+WTqCA+IHdoaXN0bGU7CivlronkuYPov5EgPiBhbmFsZ2luOwor6JuL55m96LOqID4gcHJvdGVpbjsKK+iKneWKoOWTpSA+IGNoaWNhZ287CivlhavluLbprZogPiBvY3RvcHVzOwor5rSX6KGj5bqXID4gbGF1bmRyeTsKK+S4jeW+l+WLgSA+IGF3a3dhcmQ7CivljYrnk7bphosgPiBkYWJibGVyOwor6ZW36aC46bm/ID4gZ2lyYWZmZTsKK+Wls+mrmOmfsyA+IHNvcHJhbm87Civmr5TliKnmmYIgPiBiZWxnaXVtOwor5LiN6Kq/5ZKMID4gZGlzY29yZDsKK+aciemZsOW9sSA+IHNoYWRvd3k7CivmjIfpl5znr4AgPiBrbnVja2xlOwor5bmz5bi45pelID4gd2Vla2RheTsKK+WEsuiXj+WupCA+IHN0b3JhZ2U7CivljIjniZnliKkgPiBodW5nYXJ5Owor5aKT6KqM6YqYID4gZXBpdGFwaDsKK+S4gOacg+WFkiA+IGFcLXdoaWxlOwor5LiN6YGT5b63ID4gaW1tb3JhbDsKK+eDj+WFi+iYrSA+IHVrcmFpbmU7CivlnKjlrqTlhacgPiBpbmRvb3JzOwor5LiN6Zui5YWSID4gbm90XC1iYWQ7Civnmb3om4vnmb0gPiBhbGJ1bWluOwor5Li75bit6Ie6ID4gcm9zdHJ1bTsKK+mhnuWbuumGhyA+IHN0ZXJvaWQ7CivoqZXorbDmnIMgPiBjb3VuY2lsOwor5pyJ5biM5pybID4gaG9wZWZ1bDsKK+WCt+WvkueXhyA+IHR5cGhvaWQ7CivliLDpgqPoo6EgPiB0aGl0aGVyOwor6aSK6ICB6YeRID4gcGVuc2lvbjsKK+edoeecoOiAhSA+IHNsZWVwZXI7CivllpjlkIHlkIEgPiB0b1wtYmxvdzsKK+Wwj+WGiuWtkCA+IGJvb2tsZXQ7CivmnKrmraboo50gPiB1bmFybWVkOwor5bi257SF6ImyID4gcmVkZGlzaDsKK+WQiOWkpeS6uiA+IHBhcnRuZXI7CivmnInluavliqkgPiBoZWxwZnVsOwor6Zi/5ouJ5LyvID4gYXJhYmlhbjsKK+mYv+aLieS4gSA+IGFsYWRkaW47CivkuI3oprrlr58gPiB1bmF3YXJlOwor55SY6JeN6I+cID4gY2FiYmFnZTsKK+Wls+S/rumBkyA+IGNvbnZlbnQ7Civnmbznj77niakgPiBmaW5kaW5nOwor5Zyo5LiL5pa5ID4gYmVuZWF0aDsKK+iSuOaxveapnyA+IHN0ZWFtZXI7CivlsI/ngJHluIMgPiBjYXNjYWRlOwor56ys5Y2B5LqMID4gdHdlbGZ0aDsKK+W3tOS4jeW+lyA+IGFueGlvdXM7CivmnKrmsbrlrpogPiBwZW5kaW5nOwor5peF6YGK6ICFID4gdG91cmlzdDsKK+WPl+iol+S6uiA+IHRydXN0ZWU7CivopovorYnkurogPiB3aXRuZXNzOwor55+z5Y2X5bGsID4gaGVhdGhlcjsKK+WcluabuOmkqCA+IGxpYnJhcnk7CivoloTng6TppIUgPiBwYW5jYWtlOwor5q+S6I2J5ZCNID4gaGVtbG9jazsKK+WcsOW5s+e3miA+IGhvcml6b247Civlpbnoh6rlt7EgPiBoZXJzZWxmOwor5L2/5a2k56uLID4gaXNvbGF0ZTsKK+efruWjr+e0oCA+IGN5Y29jZWw7CivlkJHkvZXomZUgPiB3aGl0aGVyOwor57GD5p2/55CDID4gcmVib3VuZDsKK+iBveW+l+imiyA+IGF1ZGlibGU7CivlgZrnprHlkYogPiB0b1wtcHJheTsKK+eZvuaFleWkpyA+IGJlcm11ZGE7CivmnInmop3ntIsgPiBzdHJpcGVkOwor5a6J5oGv5pelID4gc2FiYmF0aDsKK+S4jeWAkue/gSA+IHR1bWJsZXI7Civoo4HntJnmqZ8gPiB0cmltbWVyOwor5LiA6YOo5YiGID4gcG9ydGlvbjsKK+aHt+aVteaEjyA+IGhvc3RpbGU7CivlibXnq4vogIUgPiBmb3VuZGVyOwor57at5LuW5ZG9ID4gdml0YW1pbjsKK+ijnee9rueJqSA+IGZpeHR1cmU7Civlj4PorbDlk6EgPiBzZW5hdG9yOwor5Y2w6KGo5qmfID4gcHJpbnRlcjsKK+aYn+acn+S6jCA+IHR1ZXNkYXk7Civpn7PmqILmnIMgPiBjb25jZXJ0Owor6auU6IKy5aC0ID4gc3RhZGl1bTsKK+aEm+eIvuiYrSA+IGlyZWxhbmQ7CivpgIPkuqHogIUgPiBydW5hd2F5Owor5ZKv5ZKv56yRID4gY2h1Y2tsZTsKK+eUn+eJqeWtuCA+IGJpb2xvZ3k7CivmiLDprKXogIUgPiBmaWdodGVyOwor5L2/5oak5oWoID4gb3V0cmFnZTsKK+WxheS9j+aWvCA+IGluaGFiaXQ7CivmiZPljbDmqZ8gPiBwcmludGVyOwor5L2/5oak5oCSID4gcHJvdm9rZTsKK+W9jOizveS6niA+IG1lc3NpYWg7CivmspLnlJrpurwgPiBub3RoaW5nOwor54WZ54Gw57y4ID4gYXNodHJheTsKK+a3see0heiJsiA+IHNjYXJsZXQ7CivkuI3lnKjkuoYgPiBiZVwtZGVhZDsKK+e0oee5lOWTgSA+IHRleHRpbGU7Civku6PlkI3oqZ4gPiBwcm9ub3VuOwor5LiN5r+f5LqLID4gbm9cLWdvb2Q7Civplovmi5PogIUgPiBwaW9uZWVyOwor5LiN5Lq66YGTID4gaW5odW1hbjsKK+iiq+aykuaUtiA+IGZvcmZlaXQ7Civot6/opb/lvJcgPiBsdWNpZmVyOwor5YyW5a245a62ID4gY2hlbWlzdDsKK+iok+e3tOiAhSA+IHRyYWluZXI7CivmuIXmvZTlmaggPiBjbGVhbmVyOwor5oSb5b63546yID4gYWRlbGluZTsKK+i/q+WIh+aApyA+IHVyZ2VuY3k7CivlpbPmvJTlk6EgPiBhY3RyZXNzOwor5qGM5LiK5Z6LID4gZGVza3RvcDsKK+W3tOavlOWAqyA+IGJhYnlsb247CivlrLDlhZLmnJ8gPiBpbmZhbmN5Owor55m+6JGJ56qXID4gc2h1dHRlcjsKK+mBv+W9iOWdkSA+IGZveGhvbGU7CivmnInmiY3lubkgPiBjYXBhYmxlOwor6ISr6KGj5pyNID4gdW5kcmVzczsKK+ingOWFieWuoiA+IHRvdXJpc3Q7CivpgYvli5XlrrYgPiBhdGhsZXRlOwor5qWt6aSY6ICFID4gYW1hdGV1cjsKK+mHkeWtl+WhlCA+IHB5cmFtaWQ7Civku5boh6rlt7EgPiBoaW1zZWxmOwor5a6a5bGF6ICFID4gc2V0dGxlcjsKK+S6jOWNgeWkmiA+IG92ZXJcLTIwOwor5pS255WZ5omAID4gYmFycmFjazsKK+avm+avm+mbqCA+IGRyaXp6bGU7CivpgYvli5Xlk6EgPiBhdGhsZXRlOwor54eV6bql57KlID4gb2F0bWVhbDsKK+aomeiqnueJjCA+IHBsYWNhcmQ7Civoh6rooYzou4ogPiBiaWN5Y2xlOwor5rCR5pW46KiYID4gbnVtYmVyczsKK+Wwj+aWkem7niA+IHNwZWNrbGU7Civkvb/ljq3nhakgPiBkaXNndXN0Owor6Im+6L+q55SfID4gYWRkaXNvbjsKK+Wjq+W4q+iomCA+IGp1ZGdlczsKK+itt+mAgeiAhSA+IGVzY29ydDsKK+eZvOmbu+apnyA+IGR5bmFtbzsKK+ephuaWr+aelyA+IG11c2xpbTsKK+mWi+i7iuS6uiA+IGRyaXZlcjsKK+WYtuWVnuiBsiA+IGhvYXJzZTsKK+aLlOWwluWFkiA+IHRpcHRvcDsKK+euoeeQhuS6uiA+IGtlZXBlcjsKK+m7g+m8oOeLvCA+IHdlYXNlbDsKK+acieS6uuaDhSA+IGh1bWFuZTsKK+ilv+e0heafvyA+IHRvbWF0bzsKK+mbu+W9semZoiA+IGNpbmVtYTsKK+Wwj+WmlueyviA+IGdvYmxpbjsKK+mHkee1sumbgCA+IGNhbmFyeTsKK+WLleWQjeipniA+IGdlcnVuZDsKK+ertuizveiAhSA+IHBsYXllcjsKK+e3qOW5tOWPsiA+IGFubmFsczsKK+e8uuawp+eXhyA+IGFub3hpYTsKK+Wkp+WcsOa0niA+IGNhdmVybjsKK+a7kee/lOapnyA+IGdsaWRlcjsKK+aumOmkmOeJqSA+IGxpdHRlcjsKK+acieiyrOS7uyA+IGxpYWJsZTsKK+WtqeWtkOawoyA+IGJveWlzaDsKK+Wwj+eJneeJmyA+IGhlaWZlcjsKK+i3keatpeiAhSA+IHJ1bm5lcjsKK+WQkOe2rOmbniA+IHR1cmtleTsKK+i3qOaOpeWZqCA+IGp1bXBlcjsKK+iyoOaTlOiAhSA+IGJlYXJlcjsKK+WQiOWUseWcmCA+IGNob3J1czsKK+mgmOWwjuiAhSA+IGxlYWRlcjsKK+absuajjeeQgyA+IGhvY2tleTsKK+i3r+eUseWZqCA+IHJvdXRlcjsKK+eItuavjeimqiA+IHBhcmVudDsKK+WMluWmneWTgSA+IG1ha2V1cDsKK+aApeS/g+iBsiA+IHBhdHRlcjsKK+S9v+ehrOWMliA+IGhhcmRlbjsKK+S6pOaYk+iAhSA+IGRlYWxlcjsKK+aXpeWFp+eTpiA+IGdlbmV2YTsKK+mKgOihjOWutiA+IGJhbmtlcjsKK+akjeeJqeWtuCA+IGJvdGFueTsKK+e0gOW/teeNjiA+IHRyb3BoeTsKK+WBvemAoOeahCA+IGZvcmdlZDsKK+esrOS6jOasoSA+IHNlY29uZDsKK+m1neWNteefsyA+IHBlYmJsZTsKK+acieawo+a0viA+IGxvcmRseTsKK+WCteWLmeS6uiA+IGRlYnRvcjsKK+eVq+eciemzpSA+IHRocnVzaDsKK+Wwj+ein+WtkCA+IHNhdWNlcjsKK+iInui5iOWutiA+IGRhbmNlcjsKK+WPruWZueiBsiA+IHRpbmtsZTsKK+S9v+a/lemAjyA+IGRyZW5jaDsKK+aJueipleWutiA+IGNyaXRpYzsKK+WcqOa3seiZlSA+IGRlZXBseTsKK+WLneWIqeiAhSA+IHZpY3RvcjsKK+i5uui5uuadvyA+IHNlZXNhdzsKK+ejqOWdiuS4uyA+IG1pbGxlcjsKK+aciemXnOmAoyA+IHJlbGF0ZTsKK+WkmuaoueacqCA+IHdvb2RlZDsKK+WQseWQseiBsiA+IHNxdWVhazsKK+acquWujOaIkCA+IHVuZG9uZTsKK+mtlOizveWFiyA+IG1vc2FpYzsKK+W8t+acieWKmyA+IHN0cm9uZzsKK+eDj+W5sumBlCA+IHVnYW5kYTsKK+S4jeeiuuWvpiA+IHVudHJ1ZTsKK+i+puWFrOWupCA+IG9mZmljZTsKK+e+hemmrOabuCA+IHJvbWFuczsKK+acjeWLmeWToSA+IHdhaXRlcjsKK+icmOibm+e2siA+IGNvYndlYjsKK+mYv+exs+W3tCA+IGFtb2ViYTsKK+S/ruijnOWMoCA+IHRpbmtlcjsKK+Wkp+eQhuefsyA+IG1hcmJsZTsKK+aMgeacieS6uiA+IGhvbGRlcjsKK+aSkuWTiOaLiSA+IHNhaGFyYTsKK+Wkp+mQruWIgCA+IHNjeXRoZTsKK+a/vuazouWZqCA+IGZpbHRlcjsKK+Wom+aoguWgtCA+IHJlc29ydDsKK+S9v+mrmOiIiCA+IHBsZWFzZTsKK+acgOW5tOmVtyA+IGVsZGVzdDsKK+mGg+m7g+eTnCA+IHBpY2tsZTsKK+aUtuWJsuiAhSA+IHJlYXBlcjsKK+adnOm1kemzpSA+IGN1Y2tvbzsKK+aJk+WZtOWajyA+IHNuZWV6ZTsKK+ieuuaXi+mJlyA+IHdyZW5jaDsKK+WPg+itsOmZoiA+IHNlbmF0ZTsKK+mgmOWwjuS6uiA+IGxlYWRlcjsKK+iuiuW9ouifsiA+IGFtb2ViYTsKK+S7u+S9leS6uiA+IGFueW9uZTsKK+aciemBk+W+tyA+IGNoYXN0ZTsKK+iXneihk+WutiA+IGFydGlzdDsKK+mgguaokeafsSA+IHBpbGxhcjsKK+S9v+iGqOiEuSA+IGRpbGF0ZTsKK+Wwj+aPkOeQtCA+IGZpZGRsZTsKK+aHtua0i+a0iyA+IGxhemlseTsKK+mmrOaIsuWcmCA+IGNpcmN1czsKK+mrmOiFs+adryA+IGdvYmxldDsKK+mmrOmItOiWryA+IHBvdGF0bzsKK+S9v+i9ieWQkSA+IGRpdmVydDsKK+aykuacieS6uiA+IG5vYm9keTsKK+WNmueJqemkqCA+IG11c2V1bTsKK+S9v+WbsOaTviA+IGhhcmFzczsKK+emruaLnOWggiA+IGNoYXBlbDsKK+S4jemAj+aYjiA+IG9wYXF1ZTsKK+Wug+acrOi6qyA+IGl0c2VsZjsKK+aJgeahg+mrlCA+IHRvbnNpbDsKK+aOkuawtOa6nSA+IGd1dHRlcjsKK+ato+aWueW9oiA+IHNxdWFyZTsKK+WPr+S/oeS7uyA+IHRydXN0eTsKK+aWh+WtuOWutiA+IHdyaXRlcjsKK+enu+WLleW8jyA+IG1vYmlsZTsKK+WIsOatpOiZlSA+IGhpdGhlcjsKK+auluawkeWcsCA+IGNvbG9ueTsKK+WiqOilv+WTpSA+IG1leGljbzsKK+a4heecn+WvuiA+IG1vc3F1ZTsKK+i+puS6i+iZlSA+IG9mZmljZTsKK+WuieWTpeaLiSA+IGFuZ29sYTsKK+S7peiJsuWIlyA+IGlzcmFlbDsKK+mHmOabuOmHnSA+IHN0YXBsZTsKK+eFp+ebuOapnyA+IGNhbWVyYTsKK+e0oee5lOiAhSA+IHdlYXZlcjsKK+aWr+aLieWkqyA+IHNsYXZpYzsKK+S/hOe+heaWryA+IHJ1c3NpYTsKK+ijgee4q+W4qyA+IHRhaWxvcjsKK+W8k+eureaJiyA+IGFyY2hlcjsKK+WhnueIvueJuSA+IGNlbHRpYzsKK+Wls+iIjeeboyA+IG1hdHJvbjsKK+aJk+Wtl+WToSA+IHR5cGlzdDsKK+aYn+acn+aXpSA+IHN1bmRheTsKK+iRoeiQhOS5viA+IHJhaXNpbjsKK+aIkeiHquW3sSA+IG15c2VsZjsKK+Wkp+atpei1sCA+IHN0cmlkZTsKK+S4jeWFrOW5syA+IHVuZmFpcjsKK+iKreiVvuiIniA+IGJhbGxldDsKK+ipleirluWutiA+IGNyaXRpYzsKK+S8r+WIqeiMsiA+IGJlbGl6ZTsKK+ieuuaXi+W9oiA+IHNwaXJhbDsKK+avlOi8g+WwkSA+IGxlc3NlcjsKK+WcqOatpOiZlSA+IGhlcmVpbjsKK+iiq+Wus+S6uiA+IHZpY3RpbTsKK+mYv+azoue+hSA+IGFwb2xsbzsKK+S9v+iAs+iBviA+IGRlYWZlbjsKK+e+qeizo+acgyA+IGJhemFhcjsKK+aYn+acn+WkqSA+IHN1bmRheTsKK+W3peS9nOWupCA+IHN0dWRpbzsKK+mWgOWklua8oiA+IGxheW1hbjsKK+WcqOmZhOi/kSA+IG5lYXJieTsKK+Whl+ayueaWvCA+IGFub2ludDsKK+mbnOiyqOWVhiA+IGdyb2NlcjsKK+e2reWQvueIviA+IHVpZ2h1cjsKK+iLsembhOW8jyA+IGhlcm9pYzsKK+eQhumrruW4qyA+IGJhcmJlcjsKK+i1t+azoeayqyA+IHNlZXRoZTsKK+aYn+acn+S6lCA+IGZyaWRheTsKK+aYn+acn+S4gCA+IG1vbmRheTsKK+W3tOeIvuW5siA+IGJhbGthbjsKK+agvOagvOeskSA+IGdpZ2dsZTsKK+Wtn+WKoOaLiSA+IGJlbmdhbDsKK+Wcn+iAs+WFtiA+IHR1cmtleTsKK+eZveiYreWcsCA+IGJyYW5keTsKK+aEm+W+t+iPryA+IGVkd2FyZDsKK+WNiuS4reiFsCA+IG1pZGRsZTsKK+eZveS5vuWFkiA+IHNwaXJpdDsKK+WFuOeNhOmVtyA+IHdhcmRlbjsKK+eci+S4jeimiyA+IHVuc2VlbjsKK+S9v+S9nOWYlCA+IHNpY2tlbjsKK+aBkOawtOeXhSA+IHJhYmllczsKK+WKoO+5jeaWvCA+IGltcG9zZTsKK+apoeearuaQvSA+IGVyYXNlcjsKK+azouWjq+mgkyA+IGJvc3RvbjsKK+e2k+e0gOS6uiA+IGJyb2tlcjsKK+e0heiYv+iUlCA+IGNhcnJvdDsKK+aChOaChOWcsCA+IGdlbnRseTsKK+mBv+mbo+aJgCA+IHJlZnVnZTsKK+eZvem6teWFkiA+IGhlcm9pbjsKK+mjvOmkiuiAhSA+IGZlZWRlcjsKK+W3tOaWr+WFiyA+IGJhc3F1ZTsKK+iOq+aWr+enkSA+IG1vc2NvdzsKK+aciOahguaouSA+IGxhdXJlbDsKK+mWgOiouuWupCA+IGNsaW5pYzsKK+W+ruiWhOeahCA+IG1lYWdyZTsKK+Wwj+a3mOawoyA+IHJhc2NhbDsKK+aUneW9seapnyA+IGNhbWVyYTsKK+i1t+iotOiAhSA+IHN1aXRvcjsKK+W3tOaLv+mmrCA+IHBhbmFtYTsKK+aNlemvqOiIuSA+IHdoYWxlcjsKK+a8lOiqquiAhSA+IG9yYXRvcjsKK+aTuuaoo+WtkCA+IGRvXC1zdGg7Civlub7kuY7kuI0gPiBoYXJkbHk7CivliqDmi7/lpKcgPiBjYW5hZGE7Civphqvli5nmiYAgPiBjbGluaWM7CivljYHlrZfmnrYgPiBjcm9zczsKK+S7o+eQhuS6uiA+IGFnZW50Owor6amF5YuV5ZmoID4gZHJpdmU7CivnjajmnKjoiJ8gPiBjYW5vZTsKK+aineadv+eusSA+IGNyYXRlOwor6Zmz5YiX6Ie6ID4gc3RhbGw7CivorJvop6Plk6EgPiBndWlkZTsKK+azpeawtOWMoCA+IG1hc29uOwor5qSN54mp576kID4gZmxvcmE7CivlnKjpq5jomZUgPiBhbG9mdDsKK+aSkOerv+i3syA+IHZhdWx0Owor6aCt6JOL6aqoID4gc2t1bGw7CivmlZjliKnkup4gPiBzeXJpYTsKK+e0q+S4gemmmSA+IGxpbGFjOwor5LiN5paw6a6uID4gc3RhbGU7CivlpKfovrLloLQgPiByYW5jaDsKK+WkmuawtOWIhiA+IGp1aWN5Owor5ZG85Y+r5ZmoID4gcGFnZXI7CivkuIvmsLTpgZMgPiBzZXdlcjsKK+W+nuS+huS4jSA+IG5ldmVyOwor5LqM5qW1566hID4gZGlvZGU7Civnq7bmioDloLQgPiBhcmVuYTsKK+m6pemYv+WvhiA+IG1pYW1pOwor5LyR5oGv5a6kID4gbG9iYnk7CivnkIPni4DniakgPiBnbG9iZTsKK+WwjeaVteiAhSA+IHJpdmFsOwor5Yas6Z2S5qi5ID4gaG9sbHk7CivmnpzlrZDlh40gPiBqZWxseTsKK+Wkp+WcsOWcliA+IGF0bGFzOwor5oiQ5bm06ICFID4gYWR1bHQ7Civpm4XlkITmm7ggPiBqYW1lczsKK+iLseS7o+eIviA+IGludGVsOwor5q+b6Iy46Iy4ID4gaGFpcnk7Civkvb/nhanmg7EgPiB3b3JyeTsKK+WwvOaXpeeIviA+IG5pZ2VyOwor5pS26Z+z5qmfID4gcmFkaW87CivnrKzkuInmrKEgPiB0aGlyZDsKK+aLm+W+heWToSA+IHVzaGVyOwor56ys5LiA5qyhID4gZmlyc3Q7CivmhI/lpKfliKkgPiBpdGFseTsKK+awtOW5s+mdoiA+IHBsYW5lOwor5Lqe6bq75biDID4gbGluZW47CivmupzlhrDpnosgPiBza2F0ZTsKK+S9nOWTvOiBsiA+IHNub3J0Owor6KO96YCg6ICFID4gbWFrZXI7CivnhKHnlJ/lkb0gPiBpbmVydDsKK+mFqui+sualrSA+IGRhaXJ5Owor5rC06JK45rCjID4gdmFwb3I7Civlg4/niYfnsL8gPiBhbGJ1bTsKK+i0iOiIh+iAhSA+IGdpdmVyOwor5p2/5qKd566xID4gY3JhdGU7CivlpKnol43oibIgPiBhenVyZTsKK+mjm+ihjOWToSA+IHBpbG90Owor5o2Q6LSI6ICFID4gZG9ub3I7Civopb/nj63niZkgPiBzcGFpbjsKK+aPkOWkmuabuCA+IHRpdHVzOwor55Sf6bq157OwID4gZG91Z2g7CivpmL/mi4nmkakgPiBhbGFtbzsKK+eUt+mrmOmfsyA+IHRlbm9yOwor5LiA6bue5YWSID4gYVwtYml0Owor6Iux54m554i+ID4gaW50ZWw7CivlsI/mqLnmnpcgPiBncm92ZTsKK+W4g+iQiueIviA+IGJsYWlyOwor5pKl54Gr5qONID4gcG9rZXI7CivlnKjml4HpgoogPiBhc2lkZTsKK+eHn+alreWToSA+IGNsZXJrOwor5L2/5Zu65a6aID4gcml2ZXQ7CivorabloLHlmaggPiBzaXJlbjsKK+S4ieinkua0siA+IGRlbHRhOwor5aiB54i+5aOrID4gd2FsZXM7Civogq/lsLzkup4gPiBrZW55YTsKK+m6teWMheeariA+IGNydXN0Owor55+z5Y2X5qi5ID4gaGVhdGg7CivonrrntbLph5ggPiBzY3JldzsKK+ilv+a0i+ajiyA+IGNoZXNzOwor5ZSx6Kmp54+tID4gY2hvaXI7Civopb/mtIvmnYkgPiBjZWRhcjsKK+S9v+a6uuatuyA+IGRyb3duOwor5YaN5LiA5qyhID4gYWdhaW47CivlnLDmlrnmgKcgPiBsb2NhbDsKK+eZvOeJoumotyA+IHdoaW5lOwor6ZW36aC455O2ID4gZmxhc2s7CivnmrrnnInpoK0gPiBzY293bDsKK+mnlemnm+WToSA+IHBpbG90Owor5L6G56aP5qeNID4gcmlmbGU7CivlkLXprKfogbIgPiBub2lzZTsKK+allOW9oueJqSA+IHdlZGdlOwor5rWB5rWq6ICFID4gcm92ZXI7Civmr5vll7blmLAgPiBzZXJnZTsKK+eBjOacqOWPoiA+IHNjcnViOwor6LW36YeN5qmfID4gY3JhbmU7Civnoo7luIPmop0gPiBzaHJlZDsKK+WFp+WcqOeahCA+IGlubmVyOwor6ayx6YeR6aaZID4gdHVsaXA7Civpm6rojITnhZkgPiBjaWdhcjsKK+eDpOm6teWMhSA+IHRvYXN0Owor5ZC556yb6ICFID4gcGlwZXI7CivkuIDlt7TmjowgPiBzcGFuazsKK+e1seayu+iAhSA+IHJ1bGVyOwor5ZG85Y+r6IGyID4gd2hvb3A7Civluqflj7PpipggPiBtb3R0bzsKK+S4ieeonOmPoSA+IHByaXNtOwor55+u5aKp5aKpID4gcHVkZ3k7CivpmL/niL7ms5UgPiBhbHBoYTsKK+avlOS+i+WwuiA+IHNjYWxlOwor5Y+N5oqX6ICFID4gcmViZWw7Civlk6rkuIDlgIsgPiB3aGljaDsKK+WQiOiCoee3miA+IHR3aW5lOwor6YKB6Zi/5a+GID4gbWlhbWk7CivovL/oq5bnlYwgPiBtZWRpYTsKK+eRnuWFuOS6uiA+IHN3ZWRlOwor5L2/576e5oSnID4gYWJhc2g7CivnlLflrZDmsKMgPiBtYW5seTsKK+S9v+Wom+aogiA+IGFtdXNlOwor5aqz5amm5YWSID4gd2lmZTsKK+S8iuaLieWFiyA+IGlyYXE7CivmnInog73lipsgPiBhYmxlOwor5Z+D57Gz54i+ID4gZW1pcjsKK+WSluWVoemkqCA+IGNhZmU7CivkuIDlrpropoEgPiBtdXN0Owor6YCa6KGM56iFID4gdG9sbDsKK+eOieicgOm7jSA+IGNvcm47CivlsI/mr5von7IgPiBzbHVnOwor5pyA5Li76KaBID4gbWFpbjsKK+eMtuS7luW3niA+IHV0YWg7Civkvb/lj5flgrcgPiBodXJ0Owor56uL5pa56auUID4gY3ViZTsKK+eZvemqqOmggiA+IGNvb3Q7Civorbfln47msrMgPiBtb2F0Owor5rSL5aiD5aiDID4gZG9sbDsKK+aEn+imuuWIsCA+IGZlZWw7CivkuIvkuIDmrKEgPiBuZXh0Owor5re66buD6ImyID4gYnVmZjsKK+Wkp+iii+WtkCA+IHNhY2s7CivlnIjni4DniakgPiBob29wOwor5LiN5Y+K5qC8ID4gZmFpbDsKK+WHuuenn+i7iiA+IHRheGk7Civkv53pmqrntbIgPiBmdXNlOwor5YWI6KaL6ICFID4gc2VlcjsKK+aJi+aLiei7iiA+IGNhcnQ7CivniLXlo6voiJ4gPiBqYXp6Owor5ZKW5ZWh5bqXID4gY2FmZTsKK+iJvua7i+eXhSA+IGFpZHM7Civlhavlk6XlhZIgPiBteW5hOwor6Zu754eI5rOhID4gYnVsYjsKK+eMtuWkp+abuCA+IGp1ZGU7CivlpKfpoK3ph5ggPiB0YWNrOwor5oSb5ruL55eFID4gYWlkczsKK+i1pOijuOijuCA+IGJhcmU7CivlnJPlsYvpoIIgPiBkb21lOwor6ZuZ6IOe6IOOID4gdHdpbjsKK+S4gOWhium6tSA+IGxvYWY7Civkvb/nlKjogIUgPiB1c2VyOwor5aSW5bCP6IW/ID4gc2hpbjsKK+ibi+eZveefsyA+IG9wYWw7CivkuIDliIbpjKIgPiBjZW50Owor5ZyT6YyQ6auUID4gY29uZTsKK+eZvuWQiOiKsSA+IGxpbHk7CivoqIjnqIvou4ogPiB0YXhpOwor6JyC6Jyc6YWSID4gbWVhZDsKK+mdnuW4uOWkmiA+IG11Y2g7CivlnKjkuYvkuIogPiBvdmVyOwor55yo55y8552bID4gd2luazsKK+iytOWppuS6uiA+IGRhbWU7CivntIXlr7bnn7MgPiBydWJ5Owor6Luf5pyo5aGeID4gY29yazsKK+eyiee0heiJsiA+IHBpbms7CivlkbzlkbzogbIgPiB3aGlyOwor5b+r5q2l6LeRID4gdHJvdDsKK+iqquisiuiAhSA+IGxpYXI7Civpmarlr6nlnJggPiBqdXJ5Owor57m85LmY5Lq6ID4gaGVpcjsKK+WFieemv+emvyA+IGJhbGQ7CivmnpzppKHppIUgPiB0YXJ0Owor5Zi25Zi26IGyID4gaGlzczsKK+aTpum7keWFkiA+IGR1c2s7CivmsLTmnpzphZIgPiB3aW5lOwor55mp5ZOI6J+GID4gdG9hZDsKK+e5lOW4g+apnyA+IGxvb207CivmqaLlnJPlvaIgPiBvdmFsOwor56m655m96bueID4gZ2FwOwor54K655Sa6bq8ID4gd2h5Owor55S35a2p5a2QID4gYm95Owor5rW45LiA5LiLID4gZGlwOwor5Zyo55y85YmNID4gbm93Owor54Sh6Iqx5p6cID4gZmlnOwor55S35a2p5YWSID4gYm95Owor6LKT5Y+r6IGyID4gbWV3Owor57Sw6aC455O2ID4ganVnOwor5bi45pil6JekID4gaXZ5Owor54K65LuA6bq8ID4gd2h5Owor54Sh5bC+54y/ID4gYXBlOwor5bCP57K+6Z2IID4gZWxmOwor6ICB5aSp54i6ID4gZ29kOwor6Zu26bue5YWtID4gMFwuNjsKK+WiqOawtOWFkiA+IGluazsKK+WFrem7nuWFrSA+IDZcLjY7CivnlKjmsrnngrggPiBmcnk7Civpq5TogrLppKggPiBneW07CivkuIPpu57kupQgPiA3XC41Owor5LiD6bue5LqMID4gN1wuMjsKK+WLleeJqeWckiA+IHpvbzsKK+eMtuWkquS6uiA+IGpldzsKK+m7g+ikkOiJsiA+IHRhbjsKK+ethuahv+WtkCA+IHBlbjsKK+S5neS4g+W5tCA+ICcnOTc7CivoqIjkuZjou4ogPiBjYWI7CivlsI/kvJnlrZAgPiBsYWQ7CivospPpoK3pt7kgPiBvd2w7CivlkJHkuIrlnLAgPiB1cDsKK+iuiuaWhyA+IGFcLXBvcHVsYXJcLWZvcm1cLW9mXC1uYXJyYXRpdmVcLWxpdGVyYXR1cmVcLWZsb3VyaXNoaW5nXC1pblwtdGhlXC10YW5nXC1keW5hc3R5XC1cKDYxOFwtOTA3XClcLXdpdGhcLWFsdGVybmF0ZVwtcHJvc2VcLWFuZFwtcmh5bWVkXC1wYXJ0c1wtZm9yXC1yZWNpdGF0aW9uXC1hbmRcLXNpbmdpbmdcLVwob2Z0ZW5cLW9uXC1idWRkaGlzdGljXC10aGVtZXNcKTsKK+mCiuW5oyA+IGJvcmRlclwtcmVnaW9uXC1jdXJyZW5jeVwtXChjb25zaXN0aW5nXC1vZlwtdGhlXC1jdXJyZW5jeVwtbm90ZXNcLWlzc3VlZFwtYnlcLXRoZVwtYm9yZGVyXC1yZWdpb25cLWdvdmVybm1lbnRzXC1kdXJpbmdcLXRoZVwtd2FyXC1vZlwtcmVzaXN0YW5jZVwtYWdhaW5zdFwtamFwYW5cLWFuZFwtdGhlXC13YXJcLW9mXC1saWJlcmF0aW9uXCk7CivlkIzmnJ8gPiB0aGVcLWNvcnJlc3BvbmRpbmdcLXRpbWVcLXBlcmlvZFwtXChlZ1wsXC1jb21wYXJlXC1pbmZsYXRpb25cLW5vd1wtd2l0aFwtdGhlXC1yYXRlXC1kdXJpbmdcLXRoZVwtc2FtZVwtbW9udGhcLWxhc3RcLXllYXJcKTsKK+WBj+WBjyA+IFwoaW5kaWNhdGVzXC10aGF0XC1zdGhcLlwtdHVybnNcLW91dFwtanVzdFwtdGhlXC1vcHBvc2l0ZVwtb2ZcLXdoYXRcLW9uZVwtd291bGRcLWV4cGVjdFwtb3JcLXdoYXRcLXdvdWxkXC1iZVwtbm9ybWFsXCk7CivmlaznpZ0gPiB0b1wtcmVzcGVjdGZ1bGx5XC1vZmZlclwtXCh3cml0dGVuXC1hdFwtdGhlXC1lbmRcLW9mXC1sZXR0ZXJcLWZyb21cLXNvbWVvbmVcLW9mXC1sb3dlclwtc3RhdHVzXC10b1wtaGlnaGVyXC1zdGF0dXNcKTsKK+WNnOi+rSA+IG9yYWNsZVwtaW5zY3JpcHRpb25zXC1vZlwtdGhlXC1zaGFuZ1wtZHluYXN0eVwtXCgxNnRoXC0xMXRoXC1jZW50dXJ5XC1iY1wpXC1vblwtdG9ydG9pc2VzaGVsbHNcLW9yXC1hbmltYWxcLWJvbmVzOwor5rSb5b63ID4gXCh3aW5zdG9uXClcLWxvcmRcLVwoZm9ybWVyXC1hc3Npc3RhbnRcLXNlY3JldGFyeVwtb2ZcLXN0YXRlXC1mb3JcLWVhc3RcLWFzaWFcLWFuZFwtcGFjaWZpY1wtYWZmYWlyc1wpOwor5b235b6oID4gbmFtZVwtb2ZcLWFcLWNvbGxlY3Rpb25cLW9mXC1zaG9ydFwtc3Rvcmllc1wsXC1wYW5nXC1odWFuZ1wsXC1cIndhbmRlcmluZ1wtYWJvdXRcIlwsXC1ieVwtbHUzXC14dW40XC3pra/ov4U7CivpmbPmr4UgPiBjaGVuXC15aVwsXC1mb3JtZXJcLW1heW9yXC1vZlwtc2hhbmdoYWlcLWFuZFwtaGlnaGVzdFwtcmFua2luZ1wtbWlsaXRhcnlcLWNvbW1hbmRlclwtaW5cLWNoaW5hOwor5YyF5belID4gdW5kZXJ0YWtlXC10b1wtcGVyZm9ybVwtd29ya1wtd2l0aGluXC1hXC10aW1lXC1saW1pdFwtYW5kXC1hY2NvcmRpbmdcLXRvXC1zcGVjaWZpY2F0aW9uczsKK+mDqOmmliA+IHJhZGljYWxzXC1ieVwtd2hpY2hcLWNoYXJhY3RlcnNcLWFyZVwtYXJyYW5nZWRcLWluXC10cmFkaXRpb25hbFwtY2hpbmVzZVwtZGljdGlvbmFyaWVzOwor6Zy45Li7ID4gYVwtcG93ZXJmdWxcLWNoaWVmXC1vZlwtdGhlXC1wcmluY2VzXC1vZlwtdGhlXC1zcHJpbmdcLWFuZFwtYXV0dW1uXC1wZXJpb2RcLVwoNzcwXC00NzZcLWJjXCk7CivlnKjmlrwgPiBcKHRoZVwtcHJvYmxlbVwtb3JcLWV4cGxhbmF0aW9uXC1vclwtYWR2YW50YWdlXC1ldGNcLlwpXC1saWVzXC1pblwtXCh0aGVcLWZhY3RcLXRoYXRcLlwuXC5cKTsKK+aVmeiokyA+IFwodGVhY2hcLXNvbWVvbmVcLW9yXC1sZWFyblwtYVwpXC1sZXNzb25cLVwoaWVcLFwtb2J0YWluXC13aXNkb21cLWZyb21cLWFuXC1leHBlcmllbmNlXCk7Civpp4HlsrggPiBhXC1sb3dcLXN0b25lXC13YWxsXC1idWlsdFwtYWxvbmdcLXRoZVwtd2F0ZXInJ3NcLWVkZ2VcLXRvXC1wcm90ZWN0XC1hblwtZW1iYW5rbWVudDsKK+ijnOazlSA+IHRyZWF0bWVudFwtaW52b2x2aW5nXC10aGVcLXVzZVwtb2ZcLXRvbmljc1wtdG9cLXJlc3RvcmVcLXRoZVwtcGF0aWVudCcnc1wtaGVhbHRoOwor5LiJ5LiNID4gXCJ0aGVcLXRocmVlXC1ubycnc1wiXC1cKGFuXC1leGFtcGxlXC1vZlwtYW5cLWFiYnJldmlhdGVkXC1zbG9nYW5cLW9yXC1jYXRjaHBocmFzZVwpOwor55m95pyuID4gdGhlXC1yaGl6b21lXC1vZlwtbGFyZ2VcLWhlYWRlZFwtYXRyYWN0eWxvZGVzXC1cKGF0cmFjdHlsb2Rlc1wtbWFjcm9jZXBoYWlhXCk7CivlrqPliKQgPiBwcm9ub3VuY2VcLWFcLVwoanVkaWNpYWxcKVwtc2VudGVuY2VcLVwoYWZ0ZXJcLWFcLXZlcmRpY3RcLWluXC1hXC1jb3VydFwtb2ZcLWxhd1wpOwor55eF5Y+LID4gYVwtZnJpZW5kXC1tYWRlXC1pblwtaG9zcGl0YWxcLW9yXC1wZW9wbGVcLXdob1wtYmVjb21lXC1mcmllbmRzXC1pblwtaG9zcGl0YWw7CivlsLHmmK8gPiBcKGVtcGhhc2l6ZXNcLXRoYXRcLXNvbWV0aGluZ1wtaXNcLXByZWNpc2VseVwtb3JcLWV4YWN0bHlcLXdoYXRcLWlzXC1zdGF0ZWRcKTsKK+Wkp+emuSA+IGRhXC15dVwsXC1uYW1lXC1vZlwtYW5cLWFuY2llbnRcLWhlcm9cLXdob1wtc3VjY2Vzc2Z1bGx5XC1jb250cm9sbGVkXC1mbG9vZHM7CivooajorYkgPiBpbGxuZXNzXC10aGF0XC1oYXNcLW5vdFwtYXR0YWNrZWRcLXRoZVwtdml0YWxcLW9yZ2Fuc1wtb2ZcLXRoZVwtaHVtYW5cLWJvZHk7CivluavplpEgPiBoYW5nXC1vblwtdG9cLWFuZFwtc2VydmVcLXRoZVwtcmljaFwtYW5kXC1wb3dlcmZ1bFwtYnlcLWxpdGVyYXJ5XC1oYWNrXC13b3JrOwor5o+P57SFID4gdG9cLXRyYWNlXC1vdmVyXC1yZWRcLWNoYXJhY3RlcnNcLVwoYXNcLWFcLW1ldGhvZFwtb2ZcLWxlYXJuaW5nXC10b1wtd3JpdGVcKTsKK+aKl+aIsCA+IHdhclwtb2ZcLXJlc2lzdGFuY2VcLFwtZXNwZWNpYWxseVwtdGhlXC13YXJcLWFnYWluc3RcLWphcGFuXC1cKDE5MzdcLTE5NDVcKTsKK+S7iumfsyA+IG1vZGVyblwtXChpXC5lXC5cLW5vdFwtYW5jaWVudFwpXC1wcm9udW5jaWF0aW9uXC1vZlwtYVwtY2hpbmVzZVwtY2hhcmFjdGVyOwor5oOL5oOcID4gdG9cLWZlZWxcLXNvcnJ5XC1mb3JcLWFcLXBlcnNvblwtb3Zlclwtc3RoXC10aGF0XC1zaG91bGRcLWhhdmVcLWhhcHBlbmVkOwor552l552oID4gbG9va1wtYXRcLXNvbWVib2R5XC1kaXNkYWluZnVsbHlcLW91dFwtb2ZcLXRoZVwtY29ybmVyXC1vZlwtb25lJydzXC1leWU7Civog6HpgakgPiBodVwtc2hpXC1cKDE4OTFcLTE5NjJcKVwsXC1vcmlnaW5hbFwtcHJvcG9uZW50XC1vZlwtYmFpMlwtaHVhNFwtd2VuMlwt55m96Kmx5paHOwor6LuN5aeUID4gbWlsaXRhcnlcLWNvbW1pc3Npb25cLW9mXC10aGVcLWNvbW11bmlzdFwtcGFydHlcLWNlbnRyYWxcLWNvbW1pdHRlZTsKK+eHiOevgCA+IHRoZVwtbGFudGVyblwtZmVzdGl2YWxcLVwoMTV0aFwtb2ZcLWZpcnN0XC1tb250aFwtb2ZcLWx1bmFyXC1jYWxlbmRhclwpOwor5YyX5rSLID4gdGhlXC1xaW5nXC1keW5hc3R5XC1uYW1lXC1mb3JcLXRoZVwtY29hc3RhbFwtcHJvdmluY2VzXC1vZlwtbGlhb25pbmc7Civlhavml5cgPiB0aGVcLVwiZWlnaHRcLWJhbm5lcnNcIlwtXChtaWxpdGFyeVwtb3JnYW5pc2F0aW9uXC1pblwtcWluZ1wtZHluYXN0eVwpOwor6Jek6YeOID4gbmFtZVwtb2ZcLWFcLXBlcnNvblwsXC10ZW5nXC15ZVwsXC1hXC1qYXBhbmVzZVwtZnJpZW5kXC1vZlwtbHUzXC14dW40XC3pra/ov4U7Civoj6/ooaggPiBtYXJibGVcLXBpbGxhclwtXChvcm5hbWVudGFsXC1jb2x1bW5cLWluXC1mcm9udFwtb2ZcLXBsYWNlc1wsXC10b21ic1wpOwor5b6F5qWtID4gdG9cLWF3YWl0XC1qb2JcLWFzc2lnbm1lbnRcLVwodGVybVwtdXNlZFwtb25seVwtaW5cLW1haW5sYW5kXC1jaGluYVwpOwor5omu55u4ID4gdGhlXC1hcHBlYXJhbmNlXC1vZlwtYW5cLWFjdG9yXC1vclwtYWN0cmVzc1wtaW5cLWNvc3R1bWVcLW9yXC1tYWtldXA7CivmrabooZMgPiB3dXNodVwsXC1tYXJ0aWFsXC1hcnRzXC1zdWNoXC1hc1wtc2hhZG93XC1ib3hpbmdcLFwtc3dvcmRwbGF5XCxcLWV0Y1wuOwor5Lit5YWxID4gXChhYmJyZXZpYXRpb25cLWZvclwpXC1jaGluZXNlXC1jb21tdW5pc3RcLVwocGFydHlcLFwtcmVnaW1lXCxcLWV0Y1wuXCk7CivmlL/ljZQgPiBjcHBjY1wtXChjaGluZXNlXC1wZW9wbGUnJ3NcLXBvbGl0aWNhbFwtY29uc3VsdGF0aXZlXC1jb21taXR0ZWVcKTsKK+aOoeWPliA+IGFkb3B0XC1vclwtY2FycnlcLW91dFwtXChtZWFzdXJlc1wsXC1wb2xpY2llc1wsXC1jb3Vyc2VcLW9mXC1hY3Rpb25cKTsKK+eZn+S4iSA+IGFcLXdyZXRjaGVkXC1sb29raW5nXC10cmFtcFwtd2hvXC1saXZlc1wtYnlcLWJlZ2dpbmdcLW9yXC1zdGVhbGluZzsKK+ihqOWFhCA+IG1hbGVcLWNvdXNpblwtd2l0aFwtYVwtZGlmZmVyZW50XC1zdXJuYW1lXC1cKG9sZGVyXC10aGFuXC1vbmVzZWxmXCk7Civku5nojYkgPiBhXC1raW5kXC1vZlwtcGxhbnRcLXVzZWRcLWFzXC1hXC1tZWRpY2luYWxcLWhlcmJcLWluXC1hbmNpZW50XC10aW1lczsKK+adv+iDoSA+IGFcLWJvd2VkXC1zdHJpbmdlZFwtaW5zdHJ1bWVudFwtd2l0aFwtYVwtdGhpblwtd29vZGVuXC1zb3VuZGJvYXJkOwor6KOc6aSKID4gdGFrZVwtYVwtdG9uaWNcLW9yXC1ub3VyaXNoaW5nXC1mb29kXC10b1wtYnVpbGRcLXVwXC1vbmUnJ3NcLWhlYWx0aDsKK+aLvOWRvSA+IHRvXC1iZVwtcmVhZHlcLXRvXC1yaXNrXC1vbmUnJ3NcLWxpZmVcLVwoaW5cLWZpZ2h0aW5nXCxcLXdvcmtcLFwtZXRjXC5cKTsKK+mBt+aAkiA+IHRvXC10YWtlXC1vbmUnJ3NcLWFuZ2VyXC1vdXRcLW9uXC1zYlwtXCh3aG9cLWRvZXNcLW5vdFwtZGVzZXJ2ZVwtaXRcKTsKK+aOm+WlvSA+IHRvXC1oYW5nXC11cFwtcHJvcGVybHlcLVwodGVsZXBob25lXCxcLXBpY3R1cmVcLFwtY2xvdGhlc1wsXC1ldGNcLlwpOwor5ouU5q+SID4gZHJhd1wtb3V0XC1wdXNcLWJ5XC1hcHBseWluZ1wtYVwtcGxhc3RlclwtdG9cLXRoZVwtYWZmZWN0ZWRcLWFyZWE7CivnlZzlipsgPiBhbmltYWxcLXBvd2VyZWRcLVwoYXNcLW9wcG9zZWRcLXRvXC1odW1hblwtb3JcLW1hY2hpbmVcLXBvd2VyZWRcKTsKK+W5q+iFlCA+IHZvY2FsXC1hY2NvbXBhbmltZW50XC1pblwtc29tZVwtdHJhZGl0aW9uYWxcLWNoaW5lc2VcLW9wZXJhczsKK+WllOWWqiA+IGhhc3RlblwtaG9tZVwtZm9yXC10aGVcLWZ1bmVyYWxcLW9mXC1hXC1wYXJlbnRcLW9yXC1ncmFuZHBhcmVudDsKK+eZveiKjSA+IFwocGVlbGVkXClcLXJvb3RcLW9mXC1oZXJiYWNlb3VzXC1wZW9ueVwtXChwYWVvbmlhXC1sYWN0aWZsb3JhXCk7CivoiIjotqMgPiBpbnRlcmVzdFwtXChkaXJlY3RlZFwtdG93YXJkc1wsXC1ub3RcLWluaGVyZW50XC1pblwtc29tZXRoaW5nXCk7CivmqJnlhbUgPiBwYXJhZGVcLWd1YXJkc1wtXCh1c3VhbGx5XC1zcGFjZWRcLW91dFwtYWxvbmdcLXBhcmFkZVwtcm91dGVzXCk7Civms5XmtbcgPiBuYW1lXC1vZlwtYVwtYnVkZGhpc3RcLW1vbmtcLFwtZmFoYWlcLFwtZnJvbVwtbWFkYW1cLXdoaXRlXC1zbmFrZTsKK+W9iOeQtCA+IHRvXC1wbGF5XC1vclwtc3RydW1cLWFcLWx1dGVcLW9yXC1vdGhlclwtc3RyaW5nZWRcLWluc3RydW1lbnQ7Civnmb3pmbYgPiB3aGl0ZVwtcG90dGVyeVwtXChvZlwtc2hhbmdcLWR5bmFzdHJ5XC0xNlwtMTF0aFwtY2VudHVyeVwtYmNcKTsKK+WMheW5siA+IGJlXC1yZXNwb25zaWJsZVwtZm9yXC1hXC10YXNrXC11bml0XC11bnRpbFwtaXRcLWlzXC1jb21wbGV0ZWQ7CivlubPmlrkgPiBzcXVhcmVcLVwoYXNcLWluXC1zcXVhcmVcLWZvb3RcLFwtc3F1YXJlXC1taWxlXCxcLXNxdWFyZVwtcm9vdFwpOwor5ouJ6LKdID4gXChqb2huXClcLXJhYmVcLVwoZ2VybWFuXC1leWV3aXRuZXNzXC10b1wtbmFuamluZ1wtbWFzc2FjcmVcKTsKK+W3q+WxsSA+IG10XC5cLXd1XCxcLW9uXC10aGVcLWNoYW5namlhbmdcLXJpdmVyXC1ieVwtdGhlXC10aHJlZVwtZ29yZ2VzOwor5o2V5L+YID4gY2FwdHVyZVwtZW5lbXlcLXBlcnNvbm5lbFwtXChmb3JcLWludGVsbGlnZW5jZVwtcHVycG9zZXNcKTsKK+mPouWuoiA+IGFybWVkXC1lc2NvcnRcLVwob2ZcLXRyYXZlbGxlcnNcLW9yXC1tZXJjaGFudHMnJ1wtY2FyYXZhbnNcKTsKK+iyneavjSA+IHRoZVwtYnVsYlwtb2ZcLXRoZVwtZnJpdGlsbGFyeVwtXChmcml0aWxsYXJpYVwtdGh1bmJlcmdpaVwpOwor5ZCN5YudID4gYVwtcGxhY2VcLWZhbW91c1wtZm9yXC1pdHNcLXNjZW5lcnlcLW9yXC1oaXN0b3JpY2FsXC1yZWxpY3M7CivmsJHmqIIgPiBtdXNpY1wsXC1lc3BcLlwtZm9sa1wtbXVzaWNcLFwtZm9yXC10cmFkaXRpb25hbFwtaW5zdHJ1bWVudHM7CivpmZ3opb8gPiBzaGFhbnhpXC1wcm92aW5jZVwsXC1jaGluYVwtXChjYXBpdG9sXC1jaXR5XC1pc1wteGknJ2FuXC3opb/lrolcKTsKK+aXpeaWuSA+IHRoZVwtamFwYW5lc2VcLXNpZGVcLW9yXC1wYXJ0eVwtXChpblwtbmVnb3RpYXRpb25zXCxcLWV0Y1wuXCk7CivmqavmipggPiBcKGhvcml6b250YWxcLXN0YXJ0aW5nXC1yaWdodFwtYW5nbGVcLWNoYXJhY3Rlclwtc3Ryb2tlXCk7Civopb/lrokgPiB4aScnYW5cLVwoY2l0eVwpXCxcLXRoZVwtY2FwaXRvbFwtY2l0eVwtb2ZcLXNoYWFueGlcLXByb3ZpbmNlOwor5bCP6Z2SID4gbmFtZVwtb2ZcLWFcLXBlcnNvblwsXC14aWFvcWluZ1wsXC1mcm9tXC1tYWRhbVwtd2hpdGVcLXNuYWtlOwor6Ieo5pG5ID4gdG9cLWNvcHlcLVwoYVwtbW9kZWxcLW9mXC1jYWxsaWdyYXBoeVwtb3JcLXBhaW50aW5nXCxcLWV0Y1wuXCk7Civlgpnlj5YgPiBiZVwtb25cLXRoZVwtd2FpdGluZ1wtbGlzdFwtXChmb3JcLWFkbWlzc2lvblwtdG9cLWFcLXNjaG9vbFwpOwor5pys5pyrID4gdGhlXC13aG9sZVwtY291cnNlXC1vZlwtYW5cLWV2ZW50XC1mcm9tXC1iZWdpbm5pbmdcLXRvXC1lbmQ7CivpoJPmjKsgPiB3aXRoXC1zeW5jb3BhdGVkXC1jYWRlbmNlXC1cKGJydXNoXC1zdHJva2VcLWluXC1wYWludGluZ1wpOwor54mI55WrID4gYVwtcGljdHVyZVwtcHJpbnRlZFwtZnJvbVwtYW5cLWVuZ3JhdmVkXC1vclwtZXRjaGVkXC1wbGF0ZTsKK+mBv+irsSA+IHRhYm9vXC1hZ2FpbnN0XC11c2luZ1wtdGhlXC1wZXJzb25hbFwtbmFtZXNcLW9mXC1lbXBlcm9yczsKK+atpuadviA+IHd1c29uZ1wsXC1uYW1lXC1vZlwtYVwtcGVyc29uXCxcLWFcLWhlcm9cLWluXC1zaHVpXC1odVwtemh1YW47CivoqLHku5kgPiBuYW1lXC1vZlwtYVwtcGVyc29uXCxcLXh1XC14aWFuXCxcLWZyb21cLW1hZGFtXC13aGl0ZVwtc25ha2U7CivlhJDnm7ggPiBhdHRlbmRhbnRcLW9mXC10aGVcLWJyaWRlXC1vclwtYnJpZGVncm9vbVwtYXRcLWFcLXdlZGRpbmc7Civoo5zngIkgPiByZWluZm9yY2luZ1wtYW5kXC1yZWR1Y2luZ1wtbWV0aG9kc1wtXChpblwtYWN1cHVuY3R1cmVcKTsKK+W5ueS6iyA+IGFkbWluaXN0cmF0aXZlXC1zZWNyZXRhcnlcLVwoaW5cLWNoYXJnZVwtb2ZcLXNvbWV0aGluZ1wpOwor5ber5bO9ID4gd3V4aWFcLWdvcmdlXCxcLWluXC10aGVcLWNoYW5namlhbmdcLXJpdmVyXC10aHJlZVwtZ29yZ2VzOwor5oqY562GID4gYWdhaW5zdFwtdGhlXC1icmlzdGxlc1wtXChicnVzaFwtbW92ZW1lbnRcLWluXC1wYWludGluZ1wpOwor5bCI57eaID4gc3BlY2lhbFwtcHVycG9zZVwtcGhvbmVcLWxpbmVcLW9yXC1jb21tdW5pY2F0aW9uc1wtbGluazsKK+WcluWFiyA+IFwoZ2FyeVwtbFwuXClcLXRvb2tlclwtXChtb3Rvcm9sYVwtY2hhaXJtYW5cLW9mXC10aGVcLWJvYXJkXCk7CivmlpzpiaQgPiBcKGRvd253YXJkc1wtcmlnaHRcLWNvbmNhdmVcLWhvb2tlZFwtY2hhcmFjdGVyXC1zdHJva2VcKTsKK+ixjuaKmCA+IFwoZG93bndhcmRzXC1zdGFydGluZ1wtcmlnaHRcLWFuZ2xlXC1jaGFyYWN0ZXJcLXN0cm9rZVwpOwor6ICB5YWEID4gJydvbGRcLWNoYXAnJ1wtXChmb3JtXC1vZlwtYWRkcmVzc1wtYmV0d2VlblwtbWFsZVwtZnJpZW5kc1wpOwor5qmr562GID4gYnJpc3RsZXNcLWx5aW5nXC1kb3duXC1cKGJydXNoXC1tb3ZlbWVudFwtaW5cLXBhaW50aW5nXCk7CivmjqHos7wgPiBtYWtlXC1wdXJjaGFzZXNcLWZvclwtYW5cLW9yZ2FuaXphdGlvblwtb3JcLWVudGVycHJpc2U7CivmraPlnKggPiBpblwtdGhlXC1wcm9jZXNzXC1vZlwtXChkb2luZ1wtc29tZXRoaW5nXC1vclwtaGFwcGVuaW5nXCk7CivloLHlnIsgPiBkZWRpY2F0ZVwtb25lc2VsZlwtdG9cLXRoZVwtc2VydmljZVwtb2ZcLW9uZScnc1wtY291bnRyeTsKK+ethuinuCA+IGJydXNoXC1zdHJva2VcLWluXC1jaGluZXNlXC1wYWludGluZ1wtYW5kXC1jYWxsaWdyYXBoeTsKK+S+v+S6uiA+IHNvbWVib2R5XC13aG9cLWhhcHBlbnNcLXRvXC1iZVwtb25cLWhhbmRcLWZvclwtYW5cLWVycmFuZDsKK+isnei+myA+IGNoZWFcLXNpbVwtXChjYW1ib2RpYW5cLW5hdGlvbmFsXC1hc3NlbWJseVwtcHJlc2lkZW50XCk7CivlpJbpm7sgPiByZXBvcnRzXC1mcm9tXC1mb3JlaWduXC1cKG5vblwtY2hpbmVzZVwpXC1uZXdzXC1hZ2FuY2llczsKK+e9t+S6hiA+IGFcLW1vZGFsXC1wYXJ0aWNsZVwtaW5kaWNhdGluZ1wtXChkb24nJ3RcLW1pbmRcLWl0XCxcLW9rXCk7CivpnZzlsbEgPiBjaGVuZ1wtc2FuXC1cKGVsZWN0b3JhbFwtY29uc3RpdHVlbmN5XC1pblwtc2luZ2Fwb3JlXCk7CivmipPpo68gPiBhXC1raW5kXC1vZlwtZm9vZFwtcG9wdWxhclwtYW1vbmdcLWJlbGlldmVyc1wtaW5cLWlzbGFtOwor55m95o+PID4gbGluZVwtZHJhd2luZ1wtaW5cLXRyYWRpdGlvbmFsXC1pbmtcLWFuZFwtYnJ1c2hcLXN0eWxlOwor5ZSQ5bGxID4gdGFuZ1wtc2hhblwtXChhXC1jaGluZXNlXC1jaXR5XC1pblwtaGViZWlcLeays+WMl1wtcHJvdmluY2VcKTsKK+mBv+WrjCA+IGF2b2lkXC1kb2luZ1wtYW55dGhpbmdcLXRoYXRcLW1heVwtYXJvdXNlXC1zdXNwaWNpb247CivloLHluZUgPiBhbm5vdW5jZVwtdGhlXC1pdGVtc1wtb25cLWFcLVwodGhlYXRyaWNhbFwpXC1wcm9ncmFtbWU7CivopqrlrrYgPiBwYXJlbnRzXC1vZlwtb25lJydzXC1kYXVnaHRlclwtaW5cLWxhd1wtb3JcLXNvblwtaW5cLWxhdzsKK+WWnOezliA+IHN3ZWV0XC1naXZlblwtb25cLWFcLWhhcHB5XC1vY2Nhc2lvblwtXChlc3BcLlwtd2VkZGluZ1wpOwor5ouc5aO9ID4gY29uZ3JhdHVsYXRlXC1hblwtZWxkZXJseVwtcGVyc29uXC1vblwtaGlzXC1iaXJ0aGRheTsKK+S4puihjCA+IGluXC1wYXJhbGxlbFwtXFtkZXZlbG9wbWVudFwsXC1pbXBsZW1lbnRhdGlvblwsXC1ldGNcXTsKK+S8r+adsCA+IFwoc2FtdWVsXClcLWJlcmdlclwtXCh1c1wtbmF0aW9uYWxcLXNlY3VyaXR5XC1hZHZpc29yXCk7CivmnbHnm58gPiBhc2VhblwtXChhc3NvY2lhdGlvblwtb2ZcLXNvdXRoZWFzdFwtYXNpYW5cLW5hdGlvbnNcKTsKK+abvue2kyA+IFwocmVmZXJzXC10b1wtc29tZXRoaW5nXC10aGF0XC1oYXBwZW5lZFwtcHJldmlvdXNseVwpOwor5Y+v6KaLID4gaXRcLWNhblwtY2xlYXJseVwtYmVcLXNlZW5cLVwodGhhdFwtdGhpc1wtaXNcLXRoZVwtY2FzZVwpOwor5oWw5ZWPID4gZXhwcmVzc1wtc3ltcGF0aHlcLFwtZ3JlZXRpbmdzXCxcLWNvbnNvbGF0aW9uXCxcLWV0Y1wuOwor5rW35b63ID4gaHlkZVwtXChlZ1wsXC1ob3VzZVwtanVkaWNpYXJ5XC1jaGFpcm1hblwtaGVucnlcLWh5ZGVcKTsKK+e+heaWryA+IHJvdGhcLVwoZWdcLFwtaHJ3XC1leGVjdXRpdmVcLWRpcmVjdG9yXC1rZW5uZXRoXC1yb3RoXCk7Civml4Hogb0gPiBiZVwtYVwtdmlzaXRvclwtXChhdFwtYVwtbWVldGluZ1wsXC1jbGFzc1wsXC10cmlhbFwsXC1ldGNcKTsKK+aOqOi+rSA+IHRvXC1kZWNsaW5lXC1cKGFuXC1hcHBvaW50bWVudFwsXC1pbnZpdGF0aW9uXCxcLWV0Y1wuXCk7Civnmb3nl6IgPiBkeXNlbnRlcnlcLWNoYXJhY3Rlcml6ZWRcLWJ5XC13aGl0ZVwtbXVjb3VzXC1zdG9vbDsKK+iPr+S9lyA+IG5hbWVcLW9mXC1hXC1mYW1vdXNcLWRvY3RvclwtaW5cLW9sZFwtdGltZXNcLFwtaHVhXC10dW87Civmo5Lmp4wgPiB3b29kZW5cLWNsdWJcLVwodXNlZFwtdG9cLWJlYXRcLWNsb3RoZXNcLWluXC13YXNoaW5nXCk7CivlkJ7lkJAgPiB0b1wtdGFrZVwtaW5cLWFuZFwtc2VuZFwtb3V0XC1cKGluXC1sYXJnZVwtcXVhbnRpdGllc1wpOwor5pa35qmLID4gdGhlXC1icm9rZW5cLWJyaWRnZVwtXChhdFwtd2VzdFwtbGFrZVwtaW5cLWhhbmd6aG91XCk7CivmsKPlip8gPiBxaWdvbmdcLFwtYVwtc3lzdGVtXC1vZlwtZGVlcFwtYnJlYXRoaW5nXC1leGVyY2lzZXM7CivnnIHntJogPiBwcm92aW5jaWFsXC1sZXZlbFwtXChlZ1wsXC1wcm92aW5jaWFsXC1nb3Zlcm5tZW50XCk7CivmrabmiZMgPiBhY3JvYmF0aWNcLWZpZ2h0aW5nXC1pblwtY2hpbmVzZVwtb3BlcmFcLW9yXC1kYW5jZTsKK+WgseWksSA+IHJlcG9ydFwtdGhlXC1sb3NzXC10b1wtdGhlXC1hdXRob3JpdGllc1wtY29uY2VybmVkOwor5L+d6aSKID4gdGFrZVwtZ29vZFwtY2FyZVwtb2ZcLVwob3JcLWNvbnNlcnZlXClcLW9uZScnc1wtaGVhbHRoOwor5bmz5L+hID4gb3JkaW5hcnlcLW1haWxcLVwoYXNcLW9wcG9zZWRcLXRvXC1haXJcLW1haWxcLFwtZXRjXC5cKTsKK+WIhuS6qyA+IG9idGFpblwtb25lJydzXC1zaGFyZVwtXChvZlwtd2VhbHRoXCxcLXJpZ2h0c1wsXC1ldGNcLlwpOwor57SF5aChID4gcmVkXC1mb3J0XC1cKGhpc3RvcmljXC1idWlsZGluZ1wtaW5cLWRlbGhpXCxcLWluZGlhXCk7CivlhYPlrrUgPiBzd2VldFwtZHVtcGxpbmdzXC1tYWRlXC1vZlwtZ2x1dGlub3VzXC1yaWNlXC1mbG91cjsKK+iHqOWvqyA+IHRvXC1jb3B5XC1cKGFcLW1vZGVsXC1vZlwtY2FsbGlncmFwaHlcLW9yXC1wYWludGluZ1wpOwor5pyI6aSFID4gbW9vblwtY2FrZVwtXChlc3BcLlwtZm9yXC10aGVcLW1pZFwtYXV0dW1uXC1mZXN0aXZhbFwpOwor5oqE5a62ID4gdG9cLXNlYXJjaFwtYVwtaG91c2VcLWFuZFwtY29uZmlzY2F0ZVwtcG9zc2Vzc2lvbnM7CivmnIPoposgPiB0b1wtbWVldFwtd2l0aFwtXChzb21lb25lXC13aG9cLWlzXC1wYXlpbmdcLWFcLXZpc2l0XCk7CivlpKfoiIkgPiBjYXJyeVwtb3V0XC1hXC1sYXJnZVwtc2NhbGVcLVwobWlsaXRhcnlcKVwtb3BlcmF0aW9uOwor5pel5ry4ID4gXChrZWVwXC1pbmNyZWFzaW5nXCxcLWNoYW5naW5nXCxcLWV0Y1wuXClcLWRheVwtYnlcLWRheTsKK+itsOW4rSA+IHNlYXRcLWluXC1hXC1wYXJsaWFtZW50XC1vclwtbGVnaXNsYXRpdmVcLWFzc2VtYmx5Owor6YCa57edID4gd2FudGVkXC1ieVwtdGhlXC1wb2xpY2VcLVwoZnVnaXRpdmVcLW9yXC1jcmltaW5hbFwpOwor55yf57SNID4gXChtb2hhbW1hZFwtYWxpXClcLWppbm5haFwtXChmb3VuZGVyXC1vZlwtcGFraXN0YW5cKTsKK+mtr+izkyA+IHJ1YmluXC1cKGVnXCxcLXRyZWFzdXJ5XC1zZWNyZXRhcnlcLXJvYmVydFwtcnViaW5cKTsKK+WKm+WvtiA+IGxpcHBvXC1cKGdyb3VwXClcLVwoaW5kb25lc2lhblwtYnVzaW5lc3NcLWNvbmNlcm5cKTsKK+WBtOmLkiA+IG9ibGlxdWVcLWF0dGFja1wtXChicnVzaFwtbW92ZW1lbnRcLWluXC1wYWludGluZ1wpOwor5bSH56aOID4gY2hvbmd6aGVuXCxcLWxhc3RcLWVtcGVyb3JcLW9mXC10aGVcLW1pbmdcLWR5bmFzdHk7Civnmb3lrZcgPiB3cm9uZ2x5XC13cml0dGVuXC1hbmRcLW1pc3Byb25vdW5jZWRcLWNoYXJhY3RlcjsKK+WwjeetliA+IGNvdW50ZXJtZWFzdXJlXC1mb3JcLWRlYWxpbmdcLXdpdGhcLWFcLXNpdHVhdGlvbjsKK+ethuWKmyA+IHZpZ291clwtb2ZcLXN0cm9rZXNcLWluXC1jYWxsaWdyYXBoeVwtb3JcLWRyYXdpbmc7CivnvbDphZIgPiB0b1wtZHJpbmtcLWFzXC10aGVcLXJlc3VsdFwtb2ZcLWhhdmluZ1wtbG9zdFwtYVwtYmV0Owor5pif6auUID4gY2VsZXN0aWFsXC1ib2R5XC1cKGVnXCxcLXBsYW5ldFwsXC1zYXRlbGxpdGVcLFwtZXRjXCk7CivkuLvnrqEgPiBcKGJlXClcLXBlcnNvblwtaW5cLWNoYXJnZVwtb2ZcLVwoYVwtcG9zaXRpb25cLFwtZXRjXC5cKTsKK+atpemfuyA+IHRvXC13cml0ZVwtYVwtcG9lbVwtdXNpbmdcLWFub3RoZXJcLXBvZW0nJ3NcLXJoeW1lczsKK+WPo+awoyA+IFwoZnJpZW5kbHlcLW9yXC11bmZyaWVuZGx5XClcLXRvbmVcLVwob2ZcLWNvbW1lbnRzXCk7CivmraPpi5IgPiBmcm9udGFsXC1hdHRhY2tcLVwoYnJ1c2hcLW1vdmVtZW50XC1pblwtcGFpbnRpbmdcKTsKK+aYn+eQgyA+IGNlbGVzdGlhbFwtYm9keVwtXChlZ1wsXC1wbGFuZXRcLFwtc2F0ZWxsaXRlXCxcLWV0Y1wpOwor5LiL5L6GID4gXCh2ZXJiXC1zdWZmaXhcLWluZGljYXRpbmdcLWNvbnRpbnVhdGlvblwsXC1ldGNcLlwpOwor5bm56YOoID4gYVwtY2FkcmVcLVwoaWVcLFwtbWFuYWdlclwsXC1zdGFmZlwsXC1vZmZpY2VyXCxcLWV0Y1wuXCk7CivmjqXntI0gPiBhZG1pdFwtXChpbnRvXC1tZW1iZXJzaGlwXC1vZlwtYW5cLW9yZ2FuaXphdGlvblwpOwor5oqK6aKoID4ga2VlcFwtd2F0Y2hcLVwoZHVyaW5nXC1hXC1jbGFuZGVzdGluZVwtYWN0aXZpdHlcKTsKK+WCmeiAlSA+IG1ha2VcLXByZXBhcmF0aW9uc1wtZm9yXC1wbG91Z2hpbmdcLWFuZFwtc293aW5nOwor5pKl5YaXID4gZmluZFwtdGltZVwtaW5cLXRoZVwtbWlkc3RcLW9mXC1wcmVzc2luZ1wtYWZmYWlyczsKK+agvei0kyA+IHRvXC1mcmFtZVwtc29tZW9uZVwtXChieVwtcGxhbnRpbmdcLXN0aFwtb25cLXRoZW1cKTsKK+aPm+WPliA+IGdpdmVcLXNvbWV0aGluZ1wtYW5kXC1nZXRcLXNvbWV0aGluZ1wtaW5cLXJldHVybjsKK+WBveabuCA+IFwoZm9yZ2VkXCxcLWR1YmlvdXNcLFwtbWlzY2xhc3NpZmllZFwpXC1vbGRcLWJvb2tzOwor57C/5YaKID4gYm9va3NcLWZvclwtdGFraW5nXC1ub3Rlc1wtb3JcLWtlZXBpbmdcLWFjY291bnRzOwor5LiK6LuKID4gdG9cLWdldFwtb25cLW9yXC1pbnRvXC1cKGFcLWJ1c1wsXC10cmFpblwsXC1jYXJcLWV0Y1wuXCk7CivnrYbkuIsgPiB0aGVcLXdvcmRpbmdcLWFuZFwtcHVycG9ydFwtb2ZcLXdoYXRcLW9uZVwtd3JpdGVzOwor5L6/5Ye9ID4gYW5cLWluZm9ybWFsXC1sZXR0ZXJcLXNlbnRcLWJ5XC1hblwtb3JnYW5pemF0aW9uOwor6aaW5bitID4gY2hpZWZcLVwocmVwcmVzZW50YXRpdmVcLFwtY29ycmVzcG9uZGVudFwsXC1ldGNcKTsKK+i0heWpvyA+IHNvblwtaW5cLWxhd1wtbGl2aW5nXC1hdFwtd2lmZScnc1wtcGFyZW50JydzXC1ob3VzZTsKK+iZleaWvCA+IGJlXC1cKGluXC1zb21lXC1zdGF0ZVwsXC1wb3NpdGlvblwsXC1vclwtY29uZGl0aW9uXCk7CivmlZfnrYYgPiBhXC1mYXVsdHlcLXN0cm9rZVwtaW5cLWNhbGxpZ3JhcGh5XC1vclwtcGFpbnRpbmc7Civlh7rot68gPiBhXC13YXlcLW91dFwtXChvZlwtYVwtZGlmZmljdWx0XC1zaXR1YXRpb25cLFwtZXRjXCk7Civluqbml6UgPiBzY3JhdGNoXC1vdXRcLWFcLWRpZmZpY3VsdFwsXC1tZWFnZXJcLWV4aXN0ZW5jZTsKK+WgseahiCA+IHJlcG9ydFwtYVwtY2FzZVwtdG9cLXRoZVwtc2VjdXJpdHlcLWF1dGhvcml0aWVzOwor5YW15rqQID4gbWFucG93ZXJcLXJlc291cmNlc1wtXChmb3JcLW1pbGl0YXJ5XC1zZXJ2aWNlXCk7CivmnInpm7sgPiBcKG9mXC1hXC1kd2VsbGluZ1wpXC1zdXBwbGllZFwtd2l0aFwtZWxlY3RyaWNpdHk7Civos4Hoh6ggPiBcKG9mXC1kaXN0aW5ndWlzaGVkXC1ndWVzdHNcKVwtaG9ub3VyXC1teVwtaG91c2U7Civmnb7kuIsgPiBtYXRzdXNoaXRhXC1cKGphcGFuZXNlXC1lbGVjdHJvbmljc1wtY29tcGFueVwpOwor5LiN5aaZID4gXChvZlwtYVwtdHVyblwtb2ZcLWV2ZW50c1wpXC1ub3RcLXRvb1wtZW5jb3VyYWdpbmc7Civli4nlvLcgPiBtYW5hZ2VcLVwodG9cLWRvXC1zb21ldGhpbmdcKVwtd2l0aFwtZGlmZmljdWx0eTsKK+WIpeeEoSA+IGhhdmVcLW5vXC1vdGhlclwtXChjaG9pY2VcLFwtYWx0ZXJuYXRpdmVcLFwtZXRjXCk7CivlhazntIQgPiBjb252ZW50aW9uXC1cKGllXCxcLWludGVybmF0aW9uYWxcLWFncmVlbWVudFwpOwor5bm05bqmID4geWVhclwtXChlZ1wsXC1zY2hvb2xcLXllYXJcLFwtZmlzY2FsXC15ZWFyXCxcLWV0Y1wpOwor562G6aCGID4gb3JkZXJcLW9mXC1zdHJva2VzXC1vYnNlcnZlZFwtaW5cLWNhbGxpZ3JhcGh5Owor5omO6YedID4gdG9cLWdpdmVcLW9yXC1oYXZlXC1hblwtYWN1cHVuY3R1cmVcLXRyZWF0bWVudDsKK+ijveWKkSA+IFwoY2hlbWljYWxcLW9yXC1waGFybWFjZXV0aWNhbFwpXC1wcmVwYXJhdGlvbjsKK+mrlOacgyA+IGtub3dcLVwodGhyb3VnaFwtbGVhcm5pbmdcLW9yXC1ieVwtZXhwZXJpZW5jZVwpOwor5YG95omYID4gZmFraW5nXC1hXC1tb2Rlcm5cLW9iamVjdFwtYXNcLWFuXC1hbmNpZW50XC1vbmU7Civmtbfpl5wgPiBjdXN0b21zXC1cKGllXCxcLWJvcmRlclwtY3Jvc3NpbmdcLWluc3BlY3Rpb25cKTsKK+eikeiomCA+IGFcLXJlY29yZFwtb2ZcLWV2ZW50c1wtaW5zY3JpYmVkXC1vblwtYVwtdGFibGV0Owor5YyF6L6mID4gdGFrZVwtY2FyZVwtb2ZcLWV2ZXJ5dGhpbmdcLWNvbmNlcm5pbmdcLWFcLWpvYjsKK+WHuumdoiA+IGFjdFwtaW5cLWFcLVwob2ZmaWNpYWxcLW9yXC1wZXJzb25hbFwpXC1jYXBhY2l0eTsKK+ebuOmalCA+IGJlXC1zZXBhcmF0ZWRcLWJ5XC1cKGRpc3RhbmNlXC1vclwtdGltZVwsXC1ldGNcKTsKK+aZguWgsSA+IFwidGltZXNcIlwtXChuZXdzcGFwZXJcLFwtZWdcLFwtbmV3XC15b3JrXC10aW1lc1wpOwor6YCa6IiqID4gY29ubmVjdGVkXC1ieVwtYWlyXHxzZWFcLXRyYWZmaWNcLW9yXC1zZXJ2aWNlOwor6YG35bGFID4gdG9cLW1vdmVcLVwoZnJvbVwtb25lXC1yZXNpZGVuY2VcLXRvXC1hbm90aGVyXCk7CivlubTku6MgPiBhXC1kZWNhZGVcLW9mXC1hXC1jZW50dXJ5XC1cKGVnXCxcLXRoZVwtc2l4dGllc1wpOwor5Zas55+zID4gcWlhb1wtc2hpXC1cKGNoaW5lc2VcLWxlYWRlcnNoaXBcLWNvbnRlbmRlclwpOwor6LGO6YmkID4gXChzdHJhaWdodFwtZG93blwtaG9va2VkXC1jaGFyYWN0ZXJcLXN0cm9rZVwpOwor5oiQ5pysID4gXChtYW51ZmFjdHVyaW5nXCxcLXByb2R1Y3Rpb25cLFwtZXRjXC5cKVwtY29zdHM7Civku6PnkIYgPiBhY3RpbmdcLVwodGVtcG9yYXJpbHlcLWZpbGxpbmdcLWFcLXBvc2l0aW9uXCk7CivlrqLlu7MgPiBkcmF3aW5nXC1yb29tXC1cKHJvb21cLWZvclwtYXJyaXZpbmdcLWd1ZXN0c1wpOwor6JOu6ZynID4gd2F4XC1hcHBsZVwtXChhXC1yZWRkaXNoXC1wZWFyXC1zaGFwZWRcLWZydWl0XCk7CivpoYznsL0gPiB0b1wtd3JpdGVcLXRoZVwtdGl0bGVcLW9mXC1hXC1ib29rXC1vblwtYVwtbGFiZWw7CivogIHkuowgPiB0aGVcLXNlY29uZFwtY2hpbGRcLW9yXC1icm90aGVyXC1cKG9yXC1zaXN0ZXJcKTsKK+S4reWNlyA+IFwoYWJicmV2aWF0aW9uXC1mb3JcKVwtY2hpbmFcLVwtXC1zb3V0aFwtYWZyaWNhOwor54mI5qyhID4gdGhlXC1vcmRlclwtaW5cLXdoaWNoXC1lZGl0aW9uc1wtYXJlXC1wcmludGVkOwor5Y+X5YK3ID4gc3VmZmVyXC1pbmp1cmllc1wtXChpblwtYW5cLWFjY2lkZW50XCxcLWV0Y1wuXCk7CivoqILnq4sgPiBhZ3JlZVwtdG9cLVwodHJlYXR5XCxcLWNvbnRyYWN0XCxcLWFncmVlbWVudFwpOwor5aSP5puGID4gdGhlXC10cmFkaXRpb25hbFwtY2hpbmVzZVwtbHVuYXJcLWNhbGVuZGFyOwor5bir56+EID4gbm9ybWFsXC1cKGVnXCxcLWJlaWppbmdcLW5vcm1hbFwtdW5pdmVyc2l0eVwpOwor5buj5aC0ID4gYVwtcHVibGljXC1zcXVhcmVcLVwoZWdcLFwtdGlhbmFubWVuXC1zcXVhcmVcKTsKK+ijnOelqCA+IGJ1eVwtb25lJydzXC10aWNrZXRcLWFmdGVyXC10aGVcLW5vcm1hbFwtdGltZTsKK+eZvOeHkiA+IGhhdmVcLWFcLWhpZ2hcLXRlbXBlcmF0dXJlXC1cKGZyb21cLWlsbG5lc3NcKTsKK+ebhuWcsCA+IGJhc2luXC1cKGxvd1wtbHlpbmdcLWdlb2dyYXBoaWNhbFwtZmVhdHVyZVwpOwor5omL6LehID4gc2JcLicnc1wtb3JpZ2luYWxcLWhhbmR3cml0aW5nXC1vclwtcGFpbnRpbmc7CivnkqfpgoQgPiByZXR1cm5cLVwoYVwtYm9ycm93ZWRcLW9iamVjdFwpXC13aXRoXC10aGFua3M7CivooajlprkgPiBmZW1hbGVcLWNvdXNpblwtd2l0aFwtYVwtZGlmZmVyZW50XC1zdXJuYW1lOwor5ouG5pWjID4gdG9cLWJyZWFrXC11cFwtXChhXC1tYXJyaWFnZVwsXC1mYW1pbHlcLFwtZXRjXC5cKTsKK+WCmeWTgSA+IG1hY2hpbmVcLXBhcnRzXC1vclwtdG9vbHNcLWtlcHRcLWluXC1yZXNlcnZlOwor6aaW5Lu7ID4gZmlyc3RcLXBlcnNvblwtdG9cLWJlXC1hcHBvaW50ZWRcLXRvXC1hXC1wb3N0Owor6YOo6ZW3ID4gaGVhZFwtb2ZcLWFcLVwoZ292ZXJubWVudFwsXC1ldGNcKVwtZGVwYXJ0bWVudDsKK+avlOmHjyA+IHRha2VcLXJvdWdoXC1tZWFzdXJlbWVudHNcLVwod2l0aFwtdGhlXC1oYW5kOwor5Y2a5oSbID4gdW5pdmVyc2FsXC1mcmF0ZXJuaXR5XC1cKG9yXC1icm90aGVyaG9vZFwpOwor5pWX54GrID4gcmVsaWV2ZVwtaW5mbGFtbWF0aW9uXC1vclwtaW50ZXJuYWxcLWhlYXQ7CivntpPnh58gPiBlbmdhZ2VcLWluXC1cKGFcLWJ1c2luZXNzXC1hY3Rpdml0eVwsXC1ldGNcLlwpOwor6ZuG5oiQID4gaW50ZWdyYXRlZFwtXChhc1wtaW5cLWludGVncmF0ZWRcLWNpcmN1aXRcKTsKK+aUv+WnlCA+IHBvbGl0aWNhbFwtY29tbWlzc2FyXC1cKHdpdGhpblwtdGhlXC1hcm15XCk7Civnt6jlsI4gPiB3cml0ZVwtYW5kXC1kaXJlY3RcLVwoYVwtcGxheVwsXC1maWxtXCxcLWV0Y1wuXCk7CivooYzpp5sgPiBcKHZlaGljbGVzXCxcLWV0Y1wuXClcLXRyYXZlbFwtYWxvbmdcLWFcLXJvdXRlOwor5YW156iuID4gXChtaWxpdGFyeVwpXC1icmFuY2hcLW9mXC10aGVcLWFybWVkXC1mb3JjZXM7CivpgLzlrq4gPiBmb3JjZVwtdGhlXC1raW5nXC1vclwtZW1wZXJvclwtdG9cLWFiZGljYXRlOwor6Iiq6KGMID4gc2FpbFwtb3JcLWZseVwtXChpblwtYWlyXCxcLXdhdGVyXCxcLW9yXC1zcGFjZVwpOwor55u45L+hID4gYmVcLWNvbnZpbmNlZFwtXCh0aGF0XC1zb21ldGhpbmdcLWlzXC10cnVlXCk7Civmi5Tnp6cgPiBwdWxsXC11cFwtc2VlZGxpbmdzXC1cKGZvclwtdHJhbnNwbGFudGluZ1wpOwor5omL6KOhID4gXChhXC1zaXR1YXRpb25cLWlzXClcLWluXC1cKHNvbWVvbmUnJ3NcKVwtaGFuZHM7CivmjZXmkoggPiBmaXNoXC1mb3JcLVwoYXF1YXRpY1wtYW5pbWFsc1wtYW5kXC1wbGFudHNcKTsKK+ewveWQjSA+IHRvXC1zaWduXC1cKG9uZScnc1wtbmFtZVwtd2l0aFwtYVwtcGVuXCxcLWV0Y1wuXCk7Civmv5/ljZcgPiBqaScnbmFuXC1cKGNhcGl0YWxcLW9mXC1zaGFuZG9uZ1wtcHJvdmluY2VcKTsKK+Wxj+ainSA+IHNldFwtb2ZcLVwodXN1YWxseVwtZm91clwpXC1oYW5naW5nXC1zY3JvbGxzOwor56m256ufID4gYWZ0ZXJcLWFsbFwtXCh3aGVuXC1hbGxcLWlzXC1zYWlkXC1hbmRcLWRvbmVcKTsKK+mOruaxnyA+IHpoZW5qaWFuZ1wtXChjaXR5XClcLFwtaW5cLWppYW5nc3VcLXByb3ZpbmNlOwor5Li756eRID4gcmVxdWlyZWRcLWNvdXJzZXNcLWluXC10aGVcLW1ham9yXC1zdWJqZWN0Owor54+t5bqVID4gb3JkaW5hcnlcLW1lbWJlcnNcLW9mXC10aGVhdHJpY2FsXC10cm91cGU7Civph5HnvL0gPiBcKGdvbGRcKVwtYWxtc1wtYm93bFwtXChvZlwtYVwtYnVkZGhpc3RcLW1vbmtcKTsKK+iBr+WQjSA+IGpvaW50bHlcLVwoc2lnbmVkXCxcLWRlY2xhcmVkXCxcLXNwb25zb3JlZFwpOwor5LiL5qa7ID4gc3RheVwtYXRcLVwoYVwtaG90ZWxcLFwtZXRjXC5cLWR1cmluZ1wtYVwtdHJpcFwpOwor6KiY6L+wID4gbWFrZVwtYVwtZGVzY3JpcHRpdmVcLXJlY29yZFwtXChvZlwtZXZlbnRzXCk7CivmmpflgrcgPiBpbnRlcm5hbFwtXChpbnZpc2libGVcKVwtaW5qdXJ5XC1cKGRhbWFnZVwpOwor5aSq5rmWID4gdGFpXC1odVwtbGFrZVwsXC1hXC1iaWdcLWxha2VcLWJ5XC13dXhpXC1jaXR5Owor5qmr6YmkID4gXChob3Jpem9udGFsXC1ob29rZWRcLWNoYXJhY3Rlclwtc3Ryb2tlXCk7CivljJflrosgPiB0aGVcLW5vcnRoZXJuXC1zb25nXC1keW5hc3R5XC1cKDk2MFwtMTEyN1wpOwor6YSJ5LiLID4gY291bnRyeVwtXChhc1wtb3Bwb3NlZFwtdG9cLXRvd25cLW9yXC1jaXR5XCk7CivnsL3oqIIgPiB0b1wtYWdyZWVcLXRvXC1hbmRcLXNpZ25cLVwoYVwtdHJlYXR5XCxcLWV0Y1wpOwor5aKe5YC8ID4gYXBwcmVjaWF0aW9uXC1cKG9mXC1hXC1jYXJcLFwtaG91c2VcLFwtZXRjXC5cKTsKK+WFteWutiA+IG1pbGl0YXJ5XC1zdHJhdGVnaXN0XC1pblwtYW5jaWVudFwtY2hpbmE7Civoi7HlsLogPiBcKGVuZ2xpc2hcKVwtZm9vdFwtXCh1bml0XC1vZlwtbWVhc3VyZW1lbnRcKTsKK+a3qumZtyA+IFwodGVycml0b3J5XClcLWZhbGxcLXRvXC1lbmVteVwtb2NjdXBhdGlvbjsKK+S6uumBuCA+IHBlcnNvblwoc1wpXC1zZWxlY3RlZFwtXChmb3JcLWFcLWpvYlwsXC1ldGNcLlwpOwor5pyD6ZW3ID4gcHJlc2lkZW50XC1vZlwtYVwtY2x1YlwsXC1jb21taXR0ZWVcLFwtZXRjXC47Civlr6vmiJAgPiB0b1wtY29tcGlsZVwtXChmYXNoaW9uXC10aHJvdWdoXC13cml0aW5nXCk7CivlkJ7ph5EgPiB0b1wtY29tbWl0XC1zdWljaWRlXC1ieVwtc3dhbGxvd2luZ1wtZ29sZDsKK+adv+ecvCA+IG1lYXN1cmVcLWluXC10cmFkaXRpb25hbFwtY2hpbmVzZVwtbXVzaWM7CivpppblupwgPiBjYXBpdGFsXC1jaXR5XC1vZlwtYW5cLWF1dG9ub21vdXNcLXJlZ2lvbjsKK+ePreasoSA+IG9yZGVyXC1vZlwtY2xhc3Nlc1wtb3JcLWdyYWRlc1wtYXRcLXNjaG9vbDsKK+iytOW3niA+IG5hbWVcLW9mXC1hXC1wcm92aW5jZVwtaW5cLWNoaW5hXCxcLWd1aXpob3U7Civok4vojKggPiBcKGJpbGxcKVwtZ2F0ZXNcLVwoY2hhaXJtYW5cLW9mXC1taWNyb3NvZnRcKTsKK+WQuOW8lSA+IGF0dHJhY3RcLVwoaW50ZXJlc3RcLFwtaW52ZXN0bWVudFwsXC1ldGNcLlwpOwor5pqX5ai8ID4gdW5saWNlbnNlZFwtXCh1bnJlZ2lzdGVyZWRcKVwtcHJvc3RpdHV0ZTsKK+mcuOeOiyA+IHhpYW5nNHl1M1wtXCgyMzJcLTIwMlwtYmNcKVwtdGhlXC1jb25xdWVyb3I7Civlo73npq4gPiBiaXJ0aGRheVwtcHJlc2VudFwtXChmb3JcLWFuXC1vbGRcLXBlcnNvblwpOwor6JCs57ijID4gd2FueGlhblwtY291bnR5XCxcLWluXC1zaWNodWFuXC1wcm92aW5jZTsKK+WFtemDqCA+IHRoZVwtbWluaXN0cnlcLW9mXC13YXJcLWluXC1mZXVkYWxcLWNoaW5hOwor5YyX5ZGoID4gdGhlXC1ub3J0aGVyblwtemhvdVwtZHluYXN0eVwtXCg1NTdcLTU4MVwpOwor5YyX5LqsID4gYmVpamluZ1wtXChjYXBpdGFsXC1vZlwtbWFpbmxhbmRcLWNoaW5hXCk7CivojYnmoYggPiBkcmFmdFwtXChsZWdpc2xhdGlvblwsXC1wcm9wb3NhbFwsXC1ldGNcLlwpOwor6Kaq5oSbID4gZGVhclwtXC5cLlwuXC1cKHdheVwtb2ZcLXN0YXJ0aW5nXC1hXC1sZXR0ZXJcKTsKK+ijnOeZvSA+IGZpbGxlclwtXChpblwtYVwtbmV3c3BhcGVyXC1vclwtbWFnYXppbmVcKTsKK+iIieihjCA+IHRvXC1ob2xkXC1cKGFcLW1lZXRpbmdcLFwtY2VyZW1vbnlcLFwtZXRjXC5cKTsKK+S/nemAgSA+IHJlY29tbWVuZFwtXChmb3JcLWFkbWlzc2lvblwtdG9cLXNjaG9vbFwpOwor6L2J5bizID4gdHJhbnNmZXJcLW1vbmV5XC1mcm9tXHxpbnRvXC1hblwtYWNjb3VudDsKK+W4reS9jSA+IHBhcmxpYW1lbnRhcnlcLW9yXC1jb25ncmVzc2lvbmFsXC1zZWF0Owor5biD5LuAID4gXChnZW9yZ2VcKVwtYnVzaFwtXChmb3JtZXJcLXVzXC1wcmVzaWRlbnRcKTsKK+WvqeioiiA+IGFcLVwoanVkaWNpYWxcKVwtdHJpYWxcLVwoaW5cLWFcLWNvdXJ0cm9vbVwpOwor562G5qG/ID4gdGhlXC1zaGFmdFwtb2ZcLWFcLXBlblwtb3JcLXdyaXRpbmdcLWJydXNoOwor55eF5YuiID4gZGVncmVlXC1vZlwtc2VyaW91c25lc3NcLW9mXC1hblwtaWxsbmVzczsKK+S4u+i+piA+IGhvc3RcLVwoYVwtY29uZmVyZW5jZVwtb3JcLXNwb3J0c1wtZXZlbnRcKTsKK+acrOiNiSA+IGFcLWJvb2tcLW9uXC1jaGluZXNlXC1cKGhlcmJhbFwpXC1tZWRpY2luZTsKK+S6uueJqSA+IGNoYXJhY3RlcnNcLVwoaW5cLWFcLXBsYXlcLFwtbm92ZWxcLFwtZXRjXC5cKTsKK+itsOmVtyA+IHNwZWFrZXJcLVwob2ZcLWFcLWxlZ2lzbGF0aXZlXC1hc3NlbWJseVwpOwor5a6J5Y2XID4gXFtrb2ZpXF1cLWFubmFuXC1cW3VuXC1zZWNyZXRhcnlcLWdlbmVyYWxcXTsKK+WMhemjryA+IGdldFwtb3JcLXN1cHBseVwtbWVhbHNcLWF0XC1hXC1maXhlZFwtcmF0ZTsKK+acieawtCA+IFwob2ZcLWFcLWR3ZWxsaW5nXClcLXN1cHBsaWVkXC13aXRoXC13YXRlcjsKK+ipsemhjCA+IHN1YmplY3RcLVwob2ZcLWFcLXRhbGtcLW9yXC1jb252ZXJzYXRpb25cKTsKK+S6i+WLmSA+IFwocG9saXRpY2FsXCxcLWVjb25vbWljXCxcLWV0Y1wuXClcLWFmZmFpcnM7CivlkrHlgJEgPiB3ZVwtXChpbmNsdWRpbmdcLXRoZVwtcGVyc29uXC1zcG9rZW5cLXRvXCk7CivnjoflhYggPiB0YWtlXC10aGVcLWxlYWRcLVwoc2hvd2luZ1wtaW5pdGl0YXRpdmVcKTsKK+WMheennyA+IHJlbnRcLWxhbmRcLW9yXC1hXC1ob3VzZVwtZm9yXC1zdWJsZXR0aW5nOwor5piO5paHID4gXChsYXdzXCxcLXJ1bGVzXCxcLWV0Y1wpXC1zdGF0ZVwtaW5cLXdyaXRpbmc7CivpgI/oppYgPiB0b1wtZXhhbWluZVwtYnlcLWZsdW9yb3Njb3BlXC1vclwteFwtcmF5Owor5aCx6K2mID4gcmVwb3J0XC1cKGFuXC1pbmNpZGVudFwpXC10b1wtdGhlXC1wb2xpY2U7CivnopHluJYgPiBhXC1ydWJiaW5nXC1mcm9tXC1hXC1zdG9uZVwtaW5zY3JpcHRpb247CivniZvlubQgPiB5ZWFyXC1vZlwtdGhlXC1veFwtXChpblwtY2hpbmVzZVwtem9kaWFjXCk7CivljIXlu4IgPiBib3hcLVwoaW5cLWFcLXRoZWF0cmVcLW9yXC1jb25jZXJ0XC1oYWxsXCk7CivovYnorpMgPiB0cmFuc2ZlclwtXCh0ZWNobm9sb2d5XCxcLWdvb2RzXCxcLWV0Y1wuXCk7Civnm5zniYggPiBwaXJhdGVcLXZlcnNpb25cLVwob2ZcLXNvZnR3YXJlXCxcLWVcLmdcLlwpOwor57ej5Lu9ID4gZmF0ZVwtXCh3aGljaFwtYnJpbmdzXC1wZW9wbGVcLXRvZ2V0aGVyOwor5bmz5aOkID4gcHlvbmd5YW5nXC1cKGNhcGl0YWxcLW9mXC1ub3J0aFwta29yZWFcKTsKK+aTlOS7uyA+IGhvbGRcLWFcLWdvdmVybm1lbnRhbFwtb2ZmaWNlXC1vclwtcG9zdDsKK+WFi+acjSA+IFwodHJ5XC10b1wpXC1vdmVyY29tZVwtXChoYXJkc2hpcHNcLFwtZXRjXCk7CivmioTpgIEgPiB0b1wtbWFrZVwtYVwtY29weVwtXChhbmRcLXNlbmRcLWl0XC10b1wtc2JcKTsKK+ahiOmplyA+IGludmVzdGlnYXRlXC10aGVcLWV2aWRlbmNlXC1vZlwtYVwtY2FzZTsKK+aJmOmBiyA+IHRvXC1ib29rXC1vclwtY2hlY2tcLXRocm91Z2hcLVwoYmFnZ2FnZVwpOwor5oi26YOoID4gZmV1ZGFsXC1jaGluZXNlXC1taW5pc3RyeVwtb2ZcLXJldmVudWU7Civmjqjli5UgPiB0b1wtcHVzaFwtXChmb3JcLWFjY2VwdGFuY2VcLW9mXC1hXC1wbGFuXCk7Civkup7ou40gPiBzZWNvbmRcLXBsYWNlXC1cKGluXC1hXC1zcG9ydHNcLWNvbnRlc3RcKTsKK+mhj+mrlCA+IHlhblwtc3R5bGVcLVwoaW5cLWNoaW5lc2VcLWNhbGxpZ3JhcGh5XCk7CivkuYXpgZUgPiBcKGhhdmVuJyd0XC1kb25lXC1zdGhcKVwtZm9yXC1hXC1sb25nXC10aW1lOwor6aaZ5bGxID4gZnJhZ3JhbmNlXC1oaWxsXC1cKGFcLXBhcmtcLWluXC1iZWlqaW5nXCk7Civpirfmr4AgPiB0b1wtZGVzdHJveVwtXChieVwtbWVsdGluZ1wtb3JcLWJ1cm5pbmdcKTsKK+WMl+mtjyA+IHRoZVwtbm9ydGhlcm5cLXdlaVwtZHluYXN0eVwtXCgzODZcLTUzNFwpOwor5pq055eFID4gc3VkZGVuXC1hdHRhY2tcLW9mXC1hXC1zZXJpb3VzXC1pbGxuZXNzOwor5Lq65aSnID4gXChjaGluYVwpXC1uYXRpb25hbFwtcGVvcGxlJydzXC1jb25ncmVzczsKK+eGsemspyA+IGJ1c3RsaW5nXC13aXRoXC1ub2lzZVwtYW5kXC1leGNpdGVtZW50Owor5ZGI5paHID4gcGV0aXRpb25cLVwoc3VibWl0dGVkXC10b1wtYVwtc3VwZXJpb3JcKTsKK+aYpeevgCA+IHNwcmluZ1wtZmVzdGl2YWxcLVwoY2hpbmVzZVwtbmV3XC15ZWFyXCk7CivwoLy7ID4gYVwtcGFydGljbGVcLXVzZWRcLWluXC10cmFuc2xpdGVyYXRpb247CivmlrDnloYgPiB4aW5qaWFuZ1wtXCh1eWd1clwtYXV0b25vbW91c1wtcmVnaW9uXCk7CivntrLntaEgPiBcKGNvbXB1dGVyXCxcLXRlbGVjb21cLFwtZXRjXC5cKVwtbmV0d29yazsKK+WjgeavryA+IHRhcGVzdHJ5XC1cKHVzZWRcLWFzXC1hXC13YWxsXC1oYW5naW5nXCk7Civmk6bmvqEgPiBydWJcLW9uZXNlbGZcLWRvd25cLXdpdGhcLWFcLXdldFwtdG93ZWw7Civoqo3lrpogPiBtYWludGFpblwtXCh0aGF0XC1zb21ldGhpbmdcLWlzXC10cnVlXCk7CivliIbmracgPiBkaWZmZXJlbmNlXC1cKG9mXC1vcGluaW9uXCxcLXBvc2l0aW9uXCk7CivpgKPmiLAgPiBsaWVuXC1jaGFuXC1cKHRhaXdhblwtdmljZVwtcHJlc2lkZW50XCk7CivliLbluqYgPiBcKHBvbGl0aWNhbFwpXC1zeXN0ZW1cLW9yXC1pbnN0aXR1dGlvbjsKK+ijnOe/kiA+IHRha2VcLWxlc3NvbnNcLWFmdGVyXC1zY2hvb2xcLW9yXC13b3JrOwor5bu65LqkID4gdG9cLWVzdGFibGlzaFwtZGlwbG9tYXRpY1wtcmVsYXRpb25zOwor54Gr54G9ID4gZmlyZVwtXCh0aGF0XC1idXJuc1wtYnVpbGRpbmdzXCxcLWV0Y1wuXCk7CivlgpnoqrIgPiBcKG9mXC1hXC10ZWFjaGVyXClcLXRvXC1wcmVwYXJlXC1sZXNzb25zOwor6ZaL5ryUID4gXChvZlwtYVwtcGxheVwsXC1tb3ZpZVwsXC1ldGNcLlwpXC10b1wtYmVnaW47CivlgpnojZIgPiBwcmVwYXJlXC1hZ2FpbnN0XC1uYXR1cmFsXC1kaXNhc3RlcnM7CivlhajmnIMgPiBwbGVuYXJ5XC1zZXNzaW9uXC1cKGF0XC1hXC1jb25mZXJlbmNlXCk7Civkvr/pm6MgPiByZXRvcnRcLXdpdGhcLWNoYWxsZW5naW5nXC1xdWVzdGlvbnM7CivnrZTovq8gPiB0b1wtcmVwbHlcLVwodG9cLWFuXC1hY2N1c2F0aW9uXCxcLWVcLmdcLlwpOwor5ZyW5pu4ID4gYm9va3NcLVwoaW5cLWFcLWxpYnJhcnlcLW9yXC1ib29rc3RvcmVcKTsKK+WutumVtyA+IHRoZVwtcGFyZW50XC1vclwtZ3VhcmRpYW5cLW9mXC1hXC1jaGlsZDsKK+WbnuatuCA+IHRvXC1yZXR1cm5cLVwodG9cLXByZXZpb3VzXC1jb25kaXRpb25cKTsKK+mqqOazlSA+IGJvbmVcLVwocHJvcGVydHlcLW9mXC1hXC1icnVzaFwtc3Ryb2tlXCk7Civnp5HpmoYgPiBjb2xvZ25lXCxcLWdlcm1hbnlcLW9yXC1jb2xvblwsXC1wYW5hbWE7CivmiZPmtoggPiBkaXNwZWxcLVwoZG91YnRzXCxcLW1pc2dpdmluZ3NcLFwtZXRjXC5cKTsKK+aJvuWIsCA+IGZpbmRcLVwod2hhdFwtb25lXC13YXNcLXNlYXJjaGluZ1wtZm9yXCk7Civlj6zplosgPiBjb252ZW5lXC1cKGFcLWNvbmZlcmVuY2VcLW9yXC1tZWV0aW5nXCk7CivlkbznsbIgPiBjYWxsXC1vblwtXChzb21lb25lXC10b1wtZG9cLXNvbWV0aGluZ1wpOwor56eR54i+ID4gXChoZWxtdXRcKVwta29obFwtXChnZXJtYW5cLWNoYW5jZWxsb3JcKTsKK+m9i+aciCA+IHJhbWFkYW5cLVwobXVzbGltXC1tb250aFwtb2ZcLWZhc3RpbmdcKTsKK+i1t+S+hiA+IGJlZ2lubmluZ1wtb3JcLWNvbnRpbnVpbmdcLWFuXC1hY3Rpb247CivljJfpvYogPiB0aGVcLW5vcnRoZXJuXC1xaVwtZHluYXN0eVwtXCg1NTBcLTU1N1wpOwor5ZCQ56mXID4gdG9cLWhhdmVcLXRoZVwtZWFyc1wtb2ZcLWdyYWluXC1jb21lXC11cDsKK+iri+mhmCA+IHBldGl0aW9uXC1cKGZvclwtYWN0aW9uXC10b1wtYmVcLXRha2VuXCk7Civkuqvlj5cgPiB0b1wtZW5qb3lcLVwocmlnaHRzXCxcLWJlbmVmaXRzXCxcLWV0Y1wuXCk7CivkuInls70gPiB0aGVcLXRocmVlXC1jaGFuZ2ppYW5nXC1yaXZlclwtZ29yZ2VzOwor5Y+W5pqWID4gdG9cLXdhcm1cLW9uZXNlbGZcLVwoYnlcLWFcLWZpcmVcLFwtZXRjXC5cKTsKK+mZoumVtyA+IHByZXNpZGVudFwtXChvZlwtYVwtdW5pdmVyc2l0eVwsXC1ldGNcLlwpOwor6KiA6KuWID4gZXhwcmVzc2lvblwtb2ZcLVwocG9saXRpY2FsXClcLW9waW5pb247CivmlL/nlYwgPiBwb2xpdGljYWxcLWFuZFwtZ292ZXJubWVudFwtY2lyY2xlczsKK+aAp+WIpSA+IGRpc3Rpbmd1aXNoaW5nXC1iZXR3ZWVuXC10aGVcLXNleGVzOwor6YGV56aBID4gdG9cLXZpb2xhdGVcLWFcLXByb2hpYnRpdGlvblwtb3JcLWJhbjsKK+mFrOWSjCA+IHRvXC1yZXNwb25kXC10b1wtYVwtcG9lbVwtd2l0aFwtYVwtcG9lbTsKK+WgseiAgyA+IGVudGVyXC1vbmVzZWxmXC1mb3JcLWFuXC1leGFtaW5hdGlvbjsKK+WMl+WciyA+IHRoZVwtbm9ydGhlcm5cLXBhcnRcLW9mXC10aGVcLWNvdW50cnk7CivlpJblrasgPiBncmFuZHNvblwtXChzb25cLW9mXC1vbmUnJ3NcLWRhdWdodGVyXCk7CivlpKflnIsgPiBhXC1wb3dlclwtXChpZVwsXC1hXC1kb21pbmFudFwtY291bnRyeVwpOwor5o6i6KaqID4gdG9cLWdvXC1ob21lXC10b1wtdmlzaXRcLW9uZScnc1wtZmFtaWx5Owor6Zuj5LulID4gaGFyZFwtdG9cLVwocHJlZGljdFwsXC1pbWFnaW5lXCxcLWV0Y1wuXCk7CivloLHmlYggPiByZW5kZXJcLXNlcnZpY2VcLXRvXC1yZXBheVwta2luZG5lc3M7CivopqrmiJogPiBcKGFcKVwtcmVsYXRpdmVcLVwoaWVcLFwtZmFtaWx5XC1tZW1iZXJcKTsKK+eCuuacnyA+IFwodG9cLWJlXC1kb25lXClcLWJ5XC1cKGFcLWNlcnRhaW5cLWRhdGVcKTsKK+i+suabhiA+IHRoZVwtdHJhZGl0aW9uYWxcLWNoaW5lc2VcLWNhbGVuZGFyOwor5oyJ6KqqID4gaW5cLXRoZVwtb3JkaW5hcnlcLWNvdXJzZVwtb2ZcLWV2ZW50czsKK+mAo+S7uyA+IGNvbnRpbnVlXC1pblwtXChhXC1wb2xpdGljYWxcKVwtb2ZmaWNlOwor6IeJ6K2cID4gdHlwZXNcLW9mXC1mYWNpYWxcLW1ha2V1cFwtaW5cLW9wZXJhczsKK+mWi+W6rSA+IGJlZ2luXC1hXC1cKGp1ZGljaWFsXClcLWNvdXJ0XC1zZXNzaW9uOwor5YWs5a+pID4gcHVibGljXC10cmlhbFwtXChpblwtYVwtY291cnRcLW9mXC1sYXdcKTsKK+S9humhmCA+IGlmXC1vbmx5XC1cKGl0XC13ZXJlXC1wb3NzaWJsZVwtdG9cLlwuXC5cKTsKK+aNqOW+lyA+IHRvXC1iZVwtd2lsbGluZ1wtdG9cLXBhcnRcLXdpdGhcLVwoc3RoXCk7CivmjIHmnIkgPiBob2xkXC1cKGVnXCxcLXBhc3Nwb3J0XCxcLXZpZXdzXCxcLWV0Y1wuXCk7CivmipfniK0gPiBtYWtlXC1hXC1zdGFuZFwtYW5kXC1maWdodFwtXChhZ2FpbnN0XCk7Civnr6blrZAgPiBhXC1kb3VibGVcLWVkZ2VkXC1maW5lXC10b290aGVkXC1jb21iOwor5oqV5qmfID4gYmVcLWFcLXNwZWN1bGF0b3JcLVwocHJvZml0XC1zZWVraW5nXCk7CivmjKrlgJ8gPiB0b1wtYm9ycm93XC1tb25leVwtZm9yXC1hXC1zaG9ydFwtdGltZTsKK+WusOebuCA+IHByaW1lXC1taW5pc3RlclwtXChpblwtZmV1ZGFsXC1jaGluYVwpOwor6Jmb6IWVID4gZW1wdHlcLXdyaXN0XC1cKG1ldGhvZFwtb2ZcLXBhaW50aW5nXCk7CivkuI3oq5YgPiBub1wtbWF0dGVyXC1cKHdoYXRcLFwtd2hvXCxcLWhvd1wsXC1ldGNcLlwpOwor5L+d5L+uID4gZ3VhcmFudGVlXC10b1wta2VlcFwtaW5cLWdvb2RcLXJlcGFpcjsKK+mHkemCiiA+IHBobm9tXC1wZW5oXC1cKGNhcGl0YWxcLW9mXC1jYW1ib2RpYVwpOwor5L615L2UID4gdG9cLWludmFkZVwtYW5kXC1vY2N1cHlcLVwodGVycml0b3J5XCk7Civmn6/lr4YgPiBrZXJtaXRcLVwoY29tbXVuaWNhdGlvbnNcLXByb3RvY29sXCk7CivkuqvmnIkgPiBlbmpveVwtXChyaWdodHNcLFwtcHJpdmlsZWdlc1wsXC1ldGNcLlwpOwor56au54KuID4gYVwtZ3VuXC1zYWx1dGVcLVwoZWdcLFwtMjFcLWd1blwtc2FsdXRlXCk7CivnqoHljqUgPiB0dXJraWNcLVwobWlub3JpdHlcLWdyb3VwXC1pblwtY2hpbmFcKTsKK+WuieS/nSA+IFwoYWJicmV2aWF0aW9uXClcLW1haW50YWluXC1zZWN1cml0eTsKK+Wjvem6tSA+IGJpcnRoZGF5XC1ub29kbGVzXC1cKGZvclwtbG9uZ2V2aXR5XCk7CivmtbTlrqQgPiBiYXRocm9vbVwtXChyb29tXC11c2VkXC1mb3JcLWJhdGhpbmdcKTsKK+S7pOS6uiA+IGNhdXNlXC1zb21lb25lXC10b1wtXChiZVwsXC1mZWVsXCxcLWV0Y1wpOwor6Zmk6Z2eID4gb25seVwtaWZcLVwoXC5cLlwuXCxcLW9yXC1vdGhlcndpc2VcLFwtXC5cLlwuXCk7CivmrafoppYgPiBkaXNjcmltaW5hdGlvblwtXChhZ2FpbnN0XC1zb21lb25lXCk7CivmlZfokL0gPiBkZWNsaW5lXC1cKGluXC13ZWFsdGhcLWFuZFwtcG9zaXRpb25cKTsKK+eEoemMqyA+IHd1eGlcLVwoY2l0eVwpXCxcLWluXC1qaWFuZ3N1XC1wcm92aW5jZTsKK+aal+WQiCA+IGFncmVlXC13aXRob3V0XC1wcmlvclwtY29uc3VsdGF0aW9uOwor5aeQ5aSrID4gYnJvdGhlclwtaW5cLWxhd1wtXChodXNiYW5kJydzXC1zaWRlXCk7CivnibnljYAgPiBzcGVjaWFsXC1cKGFkbWluaXN0cmF0aXZlXClcLXJlZ2lvbjsKK+aXpeWckyA+IGphcGFuZXNlXC15ZW5cLVwodW5pdFwtb2ZcLWN1cnJlbmN5XCk7Civlo4Hmq6UgPiBhXC1idWlsdFwtaW5cLXdhcmRyb2JlXC1vclwtY3VwYm9hcmQ7Civpgb/mmpEgPiBiZVwtYXdheVwtZm9yXC10aGVcLXN1bW1lclwtaG9saWRheXM7CivmraXmkJYgPiBkYW5nbGluZ1wtb3JuYW1lbnRcLXdvcm5cLWJ5XC13b21lbjsKK+mCpuS6pCA+IHJlbGF0aW9uc1wtYmV0d2VlblwtdHdvXC1jb3VudHJpZXM7Civmj5DnhYkgPiB0b1wtZXh0cmFjdFwtXChvcmVcLFwtbWluZXJhbHNcLFwtZXRjXCk7CivmqYvmjqUgPiBicmlkZ2luZ1wtXChpblwtY29tcHV0ZXJcLW5ldHdvcmtzXCk7CivlhavmlrkgPiB0aGVcLWVpZ2h0XC1wb2ludHNcLW9mXC10aGVcLWNvbXBhc3M7CivlhafmlL8gPiBpbnRlcm5hbFwtYWZmYWlyc1wtXChvZlwtYVwtY291bnRyeVwpOwor6L+r5L2/ID4gZm9yY2VcLVwoc29tZW9uZVwtdG9cLWRvXC1zb21ldGhpbmdcKTsKK+mVt+W7iiA+IHRoZVwtbG9uZ1wtY29ycmlkb3JcLWF0XC15aVwtaGVcLXl1YW47CivlhYPluKUgPiBhXC1tYXJzaGFsXC1cKGluXC10aGVcLWFybWVkXC1mb3JjZXNcKTsKK+agoemVtyA+IFwoY29sbGVnZVwsXC11bml2ZXJzaXR5XClcLXByZXNpZGVudDsKK+mWi+WIgCA+IHRvXC1wZXJmb3JtXC1vclwtaGF2ZVwtYW5cLW9wZXJhdGlvbjsKK+i8qeWIhiA+IHNlbmlvcml0eVwtaW5cLXRoZVwtZmFtaWx5XC1vclwtY2xhbjsKK+WwvueJmSA+IGFcLXllYXJcLWVuZFwtZGlubmVyXC1mb3JcLWVtcGxveWVlczsKK+ePrei8qiA+IHJlZ3VsYXJcLXBhc3Nlbmdlclwtb3JcLWNhcmdvXC1zaGlwOwor5oqo5pOKID4gYXR0YWNrXC1cKHZlcmJhbGx5XC1vclwtaW5cLXdyaXRpbmdcKTsKK+iInuWPsCA+IFwodGhlYXRyaWNhbFwtb3JcLXBvbGl0aWNhbFwpXC1zdGFnZTsKK+eMm+i3jCA+IGRyb3BcLXNoYXJwbHlcLVwoZWdcLFwtc3RvY2tcLXByaWNlc1wpOwor5L+h5Lu2ID4gYVwtbGV0dGVyXC1cKGllXCxcLXNlbnRcLWluXC10aGVcLW1haWxcKTsKK+S9v+WRvSA+IGFcLVwoZGlwbG9tYXRpY1wtb3JcLW90aGVyXClcLW1pc3Npb247CivkuLnnmq4gPiB0aGVcLXJvb3RcLWJhcmtcLW9mXC10aGVcLXBlb255XC10cmVlOwor5a6a5YGaID4gdG9cLWhhdmVcLXNvbWV0aGluZ1wtbWFkZVwtdG9cLW9yZGVyOwor6YeN55SoID4gdG9cLXB1dFwtaW5cLWFuXC1pbXBvcnRhbnRcLXBvc2l0aW9uOwor5q+U6LO9ID4gXFthdGhsZXRpY1wtb3JcLW90aGVyXF1cLWNvbXBldGl0aW9uOwor5pWY6L+wID4gcmVsYXRlXC1cKGFcLXN0b3J5XC1vclwtaW5mb3JtYXRpb25cKTsKK+WKoOmHjSA+IGJlY29tZVx8bWFrZVwtbW9yZVwtc2VyaW91c1x8Z3JhdmVyOwor6JSa54K6ID4gdG9cLWFmZm9yZFwtXChhXC12aWV3XC1vZlwtc3RoXCxcLWVcLmdcLlwpOwor6Zu76Ie6ID4gcmFkaW9cLVwob3JcLWJyb2FkY2FzdGluZ1wpXC1zdGF0aW9uOwor56KR5p6XID4gdGhlXC1mb3Jlc3RcLW9mXC1zdGVsZXNcLVwoaW5cLXhpJydhblwpOwor5aSW54GYID4gd2FpdGFuXC1cKHRoZVwtYnVuZFwpXCxcLWluXC1zaGFuZ2hhaTsKK+itieWvpiA+IGNvbmZpcm1cLVwoc29tZXRoaW5nXC10b1wtYmVcLXRydWVcKTsKK+itsOWToSA+IG1lbWJlclwtXChvZlwtYVwtbGVnaXNsYXRpdmVcLWJvZHlcKTsKK+WgseihqCA+IGZvcm1zXC1mb3JcLXJlcG9ydGluZ1wtc3RhdGlzdGljczsKK+aYjuWgsSA+IG1pbmdcLXBhb1wtbmV3c3BhcGVyXC1cKGhvbmdcLWtvbmdcKTsKK+WJjeeoiyA+IGZ1dHVyZVwtXChjYXJlZXJcLFwtZXRjXClcLXByb3NwZWN0czsKK+eZu+mWgCA+IHBheVwtYVwtdmlzaXRcLXRvXC1zb21lb25lJydzXC1ob3VzZTsKK+mCiuawkSA+IHBlb3BsZVwtbGl2aW5nXC1vblwtdGhlXC1mcm9udGllcnM7CivpgqPmnKsgPiBpZlwtdGhhdCcnc1wtdGhlXC1jYXNlXCxcLXRoZW5cLVwoXC5cLlwuXCk7CivmlYjmh4kgPiBlZmZlY3RcLVwoZWdcLFwtZ3JlZW5ob3VzZVwtZWZmZWN0XCk7CivmrbnlvpIgPiBldmlsXC1wZXJzb25cLXdob1wtY29tbWl0c1wtY3JpbWVzOwor5pS25b6pID4gcmVjb3ZlclwtXChsb3N0XC10ZXJyaXRvcnlcLFwtZXRjXC5cKTsKK+WCsumqqCA+IGxvZnR5XC1hbmRcLXVueWllbGRpbmdcLWNoYXJhY3RlcjsKK+aWt+S6pCA+IGJyZWFrXC1vZmZcLWRpcGxvbWF0aWNcLXJlbGF0aW9uczsKK+W4s+aItiA+IFwoYmFua1wsXC1jb21wdXRlclwsXC1ldGNcLlwpXC1hY2NvdW50Owor5Zu654S2ID4gYWRtaXR0ZWRseVwtXChpdCcnc1wtdHJ1ZVwtdGhhdFwuXC5cLlwpOwor6Ie6542oID4gdGFpd2FuXC1pbmRlcGVuZGVuY2VcLVwobW92ZW1lbnRcKTsKK+S/neiLlyA+IGtlZXBcLWFcLWZ1bGxcLXN0YW5kXC1vZlwtc2VlZGxpbmdzOwor6Lev55SxID4gcm91dGluZ1wtXChpblwtY29tcHV0ZXJcLW5ldHdvcmtzXCk7CivlsI3nvo4gPiBcKHBvbGljeVwsXC1ldGNcLlwpXC10b3dhcmRzXC1hbWVyaWNhOwor5oyH5pW4ID4gXChudW1lcmljYWxcLFwtc3RhdGlzdGljYWxcKVwtaW5kZXg7CivnrYbnlasgPiBzdHJva2VzXC1vZlwtYVwtY2hpbmVzZVwtY2hhcmFjdGVyOwor56m66KWyID4gXChtaWxpdGFyeVwpXC1hdHRhY2tcLWZyb21cLXRoZVwtYWlyOwor6KGo5aCxID4gc3RhdGlzdGljYWxcLXRhYmxlc1wtYW5kXC1yZXBvcnRzOwor5ouY5oq8ID4gXChhcnJlc3RcLWFuZFwpXC10YWtlXC1pbnRvXC1jdXN0b2R5Owor5bCa5pu4ID4gaGlnaFwtb2ZmaWNpYWxcLWluXC1hbmNpZW50XC1jaGluYTsKK+iBs+eriyA+IHRvXC10b3dlclwtYWJvdmVcLVwob25cLXRvcFwtb2ZcLXN0aFwpOwor54+t57WEID4gdGVhbXNcLWFuZFwtZ3JvdXBzXC1cKGluXC1mYWN0b3JpZXM7CivkvK/mr40gPiB3aWZlXC1vZlwtZmF0aGVyJydzXC1lbGRlclwtYnJvdGhlcjsKK+S4reiXpSA+IFwodHJhZGl0aW9uYWxcKVwtY2hpbmVzZVwtbWVkaWNpbmU7CivmmpfooosgPiBjYW1lcmFcLWJhZ1wtXChmb3JcLWNoYW5naW5nXC1maWxtXCk7CivomZXmsbogPiBleGVjdXRlXC1cKGFcLWNvbmRlbW5lZFwtY3JpbWluYWxcKTsKK+aWsOmuriA+IGZyZXNoXC1cKGV4cGVyaWVuY2VcLFwtZm9vZFwsXC1ldGNcLlwpOwor5Y+r6IGyID4geWVsbGluZ1wtXChzb3VuZFwtbWFkZVwtYnlcLXBlcnNvblwpOwor54+t5birID4gd2l0aGRyYXdcLXRyb29wc1wtZnJvbVwtdGhlXC1mcm9udDsKK+WTgOaCvCA+IGdyaWV2ZVwtXChtb3VyblwpXC1vdmVyXC1zYicnc1wtZGVhdGg7Civnp5HmgakgPiBjb2hlblwtXCh1XC5zXC5cLWRlZmVuY2VcLXNlY3JldGFyeVwpOwor5pWX6ZmjID4gYmVcLWRlZmVhdGVkXC1vblwtdGhlXC1iYXR0bGVmaWVsZDsKK+WMheizoCA+IGd1YXJhbnRlZVwtdG9cLXBheVwtY29tcGVuc2F0aW9uczsKK+WQjeasoSA+IHBvc2l0aW9uXC1pblwtYVwtcmFua2luZ1wtb2ZcLW5hbWVzOwor5auC5auCID4gc2lzdGVyXC1pblwtbGF3XC1cKGh1c2JhbmQnJ3NcLXNpZGVcKTsKK+WlieihjCA+IHRvXC1wdXJzdWVcLVwoYVwtY291cnNlXCxcLWFcLXBvbGljeVwpOwor5ZG85ZaaID4gY2FsbFwtb3V0XC1cKHNvbWVvbmUnJ3NcLW5hbWVcLFwtZXRjXCk7CivwoICBID4gdGhlXC1vcmlnaW5hbFwtZm9ybVwtZm9yXC3kuINcLXVcKzRlMDM7CivwoICAID4gdGhlXC1zb3VuZFwtbWFkZVwtYnlcLWJyZWF0aGluZ1wtaW47CivnpLrlqIEgPiBob2xkXC1hXC1cKHByb3Rlc3RcKVwtZGVtb25zdHJhdGlvbjsKK+WQg+WIgCA+IHBlbmV0cmF0aW9uXC1vZlwtYVwtY3V0dGluZ1wtdG9vbDsKK+WQhOS9jSA+IGV2ZXJ5Ym9keVwtXChhXC10ZXJtXC1vZlwtYWRkcmVzc1wpOwor6Z+T5ZyTID4ga29yZWFuXC13b25cLVwodW5pdFwtb2ZcLWN1cnJlbmN5XCk7CivloLHnpL4gPiBnZW5lcmFsXC1vZmZpY2VcLW9mXC1hXC1uZXdzcGFwZXI7Civnmbzot6EgPiB0b1wtcmlzZVwtdG9cLXBvd2VyXC1hbmRcLXBvc2l0aW9uOwor5pSv5o+0ID4gcHJvdmlkZVwtYXNzaXN0YW5jZVwtb3JcLWJhY2tpbmc7Civop4DmuKwgPiBcKHNjaWVudGlmaWNcLFwtZXRjXClcLW9ic2VydmF0aW9uOwor6YGV5b+DID4gYWdhaW5zdFwtb25lc1wtd2lsbFwtb3JcLWZlZWxpbmdzOwor5ou86Z+zID4gcGlueWluXC1cKGNoaW5lc2VcLXJvbWFuaXphdGlvblwpOwor5aKD5aSWID4gb3V0c2lkZVwtXChhXC1jb3VudHJ5JydzXClcLWJvcmRlcnM7Civmi4zpnaIgPiBub29kbGVzXC1zZXJ2ZWRcLXdpdGhcLXNveVwtc2F1Y2U7Civnm7TmjqUgPiBkaXJlY3RcLVwob3Bwb3NpdGVcLW9mXC1pbmRpcmVjdFwpOwor6Y+h6aCtID4gY2FtZXJhXC1zaG90XC1cKGluXC1hXC1tb3ZpZVwsXC1ldGNcKTsKK+iOq+S4jSA+IHRoZXJlXC1pc1wtbm9cLW9uZVwtXCh3aG9cLWRvZXNuJyd0XCk7CivpgIHkurogPiB0b1wtc2VlXC1cKG9yXC13YWxrXClcLXNvbWVvbmVcLWhvbWU7Civnmb3mlocgPiB0aGVcLXRleHRcLW9mXC1hblwtYW5ub3RhdGVkXC1ib29rOwor5bCH6aCYID4gaGlnaFwtcmFua2luZ1wtbWlsaXRhcnlcLW9mZmljZXI7CivmjozmrIogPiB3aWVsZFwtXChwb2xpdGljYWxcLFwtZXRjXC5cKVwtcG93ZXI7Civkv4PpgLIgPiB0b1wtcHJvbW90ZVwtXChhblwtaWRlYVwtb3JcLWNhdXNlXCk7CivlhazlrokgPiBcKG1pbmlzdHJ5XC1vZlwpXC1wdWJsaWNcLXNlY3VyaXR5Owor55eF5qC5ID4gYW5cLWluY29tcGxldGVseVwtY3VyZWRcLWlsbG5lc3M7Civoo5zloLEgPiBtYWtlXC1hXC1yZXBvcnRcLWFmdGVyXC10aGVcLWV2ZW50Owor5bCN6Ie6ID4gXChwb2xpY3lcLFwtZXRjXC5cKVwtdG93YXJkc1wtdGFpd2FuOwor5p2/6byTID4gYVwtc21hbGxcLWRydW1cLWZvclwtbWFya2luZ1wtdGltZTsKK+i0hei/sCA+IHRvXC1zYXlcLW1vcmVcLXRoYW5cLWlzXC1uZWNlc3Nhcnk7Civlr6bogpggPiBmdWxsXC1hcm1cLVwobWV0aG9kXC1vZlwtcGFpbnRpbmdcKTsKK+a3mOmHkSA+IHBhbm5pbmdcLVwoZm9yXC1wcmVjaW91c1wtbWV0YWxzXCk7CivmiIjniL4gPiBcKGFsXClcLWdvcmVcLVwodXNcLXZpY2VcLXByZXNpZGVudFwpOwor5LqC6KqqID4gdG9cLW1ha2VcLWlycmVzcG9uc2libGVcLXJlbWFya3M7CivkuI3ou4wgPiBhZ2FpbnN0XC10aGVcLWxhd1wtb3JcLWRpc2NpcGxpbmU7Civkv53llYYgPiBwcmVzZXJ2YXRpb25cLW9mXC1zb2lsXC1tb2lzdHVyZTsKK+S9nOaIsCA+IGNvbmR1Y3RcLVwobWlsaXRhcnlcLW9wZXJhdGlvbnNcKTsKK+S4luihjCA+IFxbYWJicmV2aWF0aW9uXC1mb3JcXVwtd29ybGRcLWJhbms7CivkuK3oj68gPiBjaGluYVwtXChhbHRlcm5hdGVcLWZvcm1hbFwtbmFtZVwpOwor5L615YWlID4gdG9cLW1ha2VcLVwobWlsaXRhcnlcKVwtaW5jdXJzaW9uczsKK+eQg+aqryA+IHRhYmxlXC1cKGZvclwtZ2FtZXNcLXVzaW5nXC1iYWxsc1wpOwor5LiL6Ie6ID4gc3RlcFwtZG93blwtXChmcm9tXC1vZmZpY2VcLFwtZXRjXC5cKTsKK+iyquaxoSA+IFwocG9saXRpY2FsXCxcLW1vcmFsXClcLWNvcnJ1cHRpb247CivkuK3ntJogPiBtaWRkbGVcLWxldmVsXC1cKGluXC1hXC1oaWVyYXJjaHlcKTsKK+acieeahCA+IFwodGhlcmVcLWFyZVwpXC1zb21lXC1cKHdob1wtYXJlXC5cLlwuXCk7Civok4vpo68gPiByaWNlXC13aXRoXC1tZWF0XC1hbmRcLXZlZ2l0YWJsZXM7CivkuIvnj60gPiB0b1wtY29tZVwtb3JcLWdvXC1vclwtZ2V0XC1vZmZcLXdvcms7CivljIXpircgPiBoYXZlXC1leGNsdXNpdmVcLXNlbGxpbmdcLXJpZ2h0czsKK+iuk+eQgyA+IHRvXC1jb25jZWRlXC1wb2ludHNcLVwoaW5cLWFcLWdhbWVcKTsKK+abuOaIvyA+IHN0dWR5XC1cKGlcLmVcLlwtdGhlXC1raW5kXC1vZlwtcm9vbVwpOwor6KqN6K2YID4gYmVcLWFjcXVhaW50ZWRcLXdpdGhcLVwoYVwtcGVyc29uXCk7Civljbvnl4UgPiB0b1wtcHJldmVudFwtb3JcLXRyZWF0XC1hXC1kaXNlYXNlOwor6YGy6YGyID4gXChiZVwpXC1sYXRlXC1cKHdpdGhcLWFcLXRhc2tcLFwtZXRjXC5cKTsKK/CggIUgPiBhblwtYWx0ZXJuYXRlXC1mb3JtXC1vZlwtdVwrNGVhNVwt5LqlOwor5b6354+tID4gZHVyYmFuXC1cKGNpdHlcLWluXC1zb3V0aFwtYWZyaWNhXCk7Civmk7rovKogPiBiYWxhbmNlXC1cKG9mXC1hXC13YXRjaFwtb3JcLWNsb2NrXCk7Civmk7roqK0gPiBmdXJuaXNoXC1hbmRcLWRlY29yYXRlXC1cKGFcLXJvb21cKTsKK+eGsee3miA+IGhvdGxpbmVcLVwoY29tbXVuaWNhdGlvbnNcLWxpbmtcKTsKK+azleWItiA+IGxlZ2FsXC1zeXN0ZW1cLWFuZFwtaW5zdGl0dXRpb25zOwor5rC05bmzID4gbGV2ZWxcLVwob2ZcLWFjaGlldmVtZW50XCxcLWV0Y1wuXCk7CivlpKvmrIogPiBhdXRob3JpdHlcLW92ZXJcLXRoZVwtaG91c2Vob2xkOwor5Y2w5bC8ID4gXChhYmJyZXZpYXRpb25cLWZvclwpXC1pbmRvbmVzaWE7Civororlg7kgPiBhcHByYWlzZVwtYXRcLXRoZVwtY3VycmVudFwtcmF0ZTsKK+WmueWkqyA+IGJyb3RoZXJcLWluXC1sYXdcLVwod2lmZScnc1wtc2lkZVwpOwor6YCy6ICMID4gYW5kXC10aGVuXC1cKHdoYXRcLWZvbGxvd3NcLW5leHRcKTsKK+mZo+e3miA+IGFcLWZyb250XC1cKGllXCxcLW1pbGl0YW50XC1ncm91cFwpOwor5q2y5pyIID4gdGhlXC15ZWFyc1wtb2ZcLWFcLXBlcnNvbicnc1wtbGlmZTsKK+atuOWxrCA+IGJlXC11bmRlclwtdGhlXC1qdXJpc2RpY3Rpb25cLW9mOwor5Zyo6YeOID4gYmVcLW91dFwtb2ZcLVwocG9saXRpY2FsXClcLW9mZmljZTsKK+W7oOaIvyA+IGFcLWJ1aWxkaW5nXC11c2VkXC1hc1wtYVwtZmFjdG9yeTsKK+WIpOaxuiA+IGp1ZGdtZW50XC1cKGJ5XC1hXC1jb3VydFwtb2ZcLWxhd1wpOwor5Zuw6ZujID4gXChmaW5hbmNpYWxcLFwtZXRjXC5cKVwtZGlmZmljdWx0eTsKK+aOm+iZnyA+IHRvXC1yZWdpc3RlclwtXChhXC1sZXR0ZXJcLFwtZXRjXC5cKTsKK+ijnOiLlyA+IGZpbGxcLXRoZVwtZ2Fwc1wtd2l0aFwtc2VlZGxpbmdzOwor5q2m5YqbID4gXChtYWtlXC11c2VcLW9mXClcLW1pbGl0YXJ5XC1mb3JjZTsKK+aUvuWBhyA+IHRvXC1oYXZlXC1hXC1ob2xpZHlcLW9yXC12YWNhdGlvbjsKK+iIiemHjSA+IFwodGhlXC1zcG9ydFwtb2ZcKVwtd2VpZ2h0bGlmdGluZzsKK+WatOipniA+IFwoY3JpdGljaXplXCxcLWV0Y1wuXClcLWZvcmNlZnVsbHk7CivlooPlhacgPiB3aXRoaW5cLVwoYVwtY291bnRyeScnc1wpXC1ib3JkZXJzOwor6I+v5Lq6ID4gZXRobmljXC1jaGluZXNlXC1wZXJzb25cfHBlb3BsZTsKK+api+acrCA+IFwoamFwYW5lc2VcLXN1cm5hbWVcKVwtaGFzaGltb3RvOwor5Zyw55quID4gbG90XCxcLXNlY3Rpb25cLW9mXC1sYW5kXCxcLWdyb3VuZDsKK+i9ieapnyA+IFwodGFrZVwtYVwpXC10dXJuXC1mb3JcLXRoZVwtYmV0dGVyOwor5bi45aeUID4gbWVtYmVyXC1vZlwtc3RhbmRpbmdcLWNvbW1pdHRlZTsKK+i1t+mjmyA+IHRvXC10YWtlXC1vZmZcLVwoaW5cLWFuXC1haXJwbGFuZVwpOwor6ZaL5bmVID4gdG9cLW9wZW5cLVwoYVwtY29uZmVyZW5jZVwsXC1lXC5nXC5cKTsKK+aJk+mHnSA+IHRvXC1naXZlXC1vclwtaGF2ZVwtYW5cLWluamVjdGlvbjsKK+eSp+isnSA+IGRlY2xpbmVcLVwoYVwtZ2lmdFwpXC13aXRoXC10aGFua3M7CivlsI3oj68gPiBcKHBvbGljeVwsXC1ldGNcLlwpXC10b3dhcmRzXC1jaGluYTsKK+WEgOWZqCA+IFwoc2NpZW50aWZpY1wsXC1ldGNcKVwtaW5zdHJ1bWVudDsKK+eptui+piA+IHRvXC1pbnZlc3RpZ2F0ZVwtYW5kXC1kZWFsXC13aXRoOwor5a6a572qID4gY29udmljdFwtXChzb21lb25lXC1vZlwtYVwtY3JpbWVcKTsKK+acrOmhjCA+IHRoZVwtc3ViamVjdFwtdW5kZXJcLWRpc2N1c3Npb247Civog4znsI0gPiBhXC1iYXNrZXRcLWNhcnJpZWRcLW9uXC10aGVcLWJhY2s7CivmnInpl5wgPiB0b1wtaGF2ZVwtc29tZXRoaW5nXC10b1wtZG9cLXdpdGg7CivkvobmupAgPiBzb3VyY2VcLVwob2ZcLWluZm9ybWF0aW9uXCxcLWV0Y1wpOwor542y6YeLID4gb2J0YWluXC1yZWxlYXNlXC1cKGZyb21cLXByaXNvblwpOwor5bCN5pelID4gXChwb2xpY3lcLFwtZXRjXC5cKVwtdG93YXJkc1wtamFwYW47CivmhovmsKMgPiBmZWVsXC1zdWZmb2NhdGVkXC1vclwtb3BwcmVzc2VkOwor5ZCM6IOeID4gZmVsbG93XC1jaXRpemVuXC1vclwtY291bnRyeW1hbjsKK+WMvumhjSA+IGFcLWhvcml6b250YWxcLWluc2NyaWJlZFwtYm9hcmQ7CivnorroqLogPiB0b1wtbWFrZVwtYVwtZGVmaW5pdGVcLWRpYWdub3NpczsKK+Wug+WAkSA+IHRoZXlcLVwoZm9yXC1pbmFuaW1hdGVcLW9iamVjdHNcKTsKK+ePvuWgtCA+IHNjZW5lXC1cKG9mXC1ldmVudFwtb3JcLWluY2lkZW50XCk7CivmhJvmg4UgPiBsb3ZlXC1cKGJldHdlZW5cLW1hblwtYW5kXC13b21hblwpOwor6K6K56+AID4gbWFrZVwtYVwtcG9saXRpY2FsXC1yZWNhbnRhdGlvbjsKK+a2ieWrjCA+IHRvXC1iZVwtYVwtc3VzcGVjdFwtXChpblwtYVwtY3JpbWVcKTsKK+Wksei2syA+IHRvXC10YWtlXC1hXC13cm9uZ1wtc3RlcFwtaW5cLWxpZmU7CivniqfnibIgPiBzYWNyaWZpY2VcLVwob25lJydzXC1saWZlXCxcLWV0Y1wuXCk7Civkup7kvK8gPiBhYmVcLVwoc2hvcnRcLWZvcm1cLWZvclwtYWJyYWhhbVwpOwor54yc5b+MID4gYmVcLXN1c3BpY2lvdXNcLWFuZFwtamVhbG91c1wtb2Y7Civpu6jlhacgPiB3aXRoaW5cLXRoZVwtXChjb21tdW5pc3RcKVwtcGFydHk7Civli5XolakgPiBcKHNvY2lhbFwtb3JcLXBvbGl0aWNhbFwpXC11bnJlc3Q7CivnjovkuLkgPiB3YW5nXC1kYW5cLVwoY2hpbmVzZVwtZGlzc2lkZW50XCk7CivmsbrlrpogPiB0b1wtZGVjaWRlXC1cKHRvXC1kb1wtc29tZXRoaW5nXCk7Civlp4rlprkgPiBcKG9sZGVyXC1hbmRcLXlvdW5nZXJcKVwtc2lzdGVyczsKK+mAvOiCliA+IGJlYXJcLWFcLWNsb3NlXC1yZXNlbWJsYW5jZVwtdG87Civlvqnlr6kgPiByZWV4YW1pbmVcLVwoYVwtanVkaWNpYWxcLWNhc2VcKTsKK+WFpemWgCA+IGludHJvZHVjdGlvblwtXCh0b1wtYVwtc3ViamVjdFwpOwor55m96ZyyID4gd2hpdGVcLWRld1wtXCgxNXRoXC1zb2xhclwtdGVybVwpOwor6KOc6auUID4gY29tcGxlbWVudFwtXChpblwtYmxvb2RcLXNlcnVtXCk7CivoqZXmr5QgPiB0b1wtZXZhbHVhdGVcLVwoYnlcLWNvbXBhcmlzb25cKTsKK+i9iei6qyA+IFwob2ZcLWFcLXBlcnNvblwpXC10b1wtdHVyblwtcm91bmQ7CivniKrlk4cgPiBqYXZhXC1cKHByb2dyYW1taW5nXC1sYW5ndWFnZVwpOwor5pWI5b+gID4gdm93XC1sb3lhbHR5XC1hbmRcLWRldm90aW9uXC10bzsKK+aOoei+piA+IGJ1eVwtb25cLWFcLWNvbnNpZGVyYWJsZVwtc2NhbGU7CivlvJ/lprkgPiBzaXN0ZXJcLWluXC1sYXdcLVwod2lmZScnc1wtc2lkZVwpOwor6Zm35pa8ID4gY2F1Z2h0XC1pblwtXChhXC1iYWRcLXNpdHVhdGlvblwpOwor5aSW5YyvID4gZm9yZWlnblwtXChjdXJyZW5jeVwpXC1leGNoYW5nZTsKK+aRmOeUsSA+IGhpZ2hcLXBvaW50c1wtXChvZlwtYVwtZG9jdW1lbnRcKTsKK+WBtOi6uiA+IHRvXC1saWVcLWRvd25cLVwob25cLW9uZScnc1wtc2lkZVwpOwor5pCc5o2VID4gaHVudFwtYW5kXC1hcnJlc3RcLVwoZnVnaXRpdmVzXCk7Civmj7nmm7ggPiByZWNpdGVcLWFcLWxlc3NvblwtZnJvbVwtbWVtb3J5Owor5bm45YWNID4gbmFycm93bHlcLWFuZFwtbHVja2lseVwtZXNjYXBlOwor5ZyL5qiZID4gZ3VvYmlhb1wtXChlbmNvZGluZ1wtc3RhbmRhcmRcKTsKK+S+v+ihgCA+IGhhdmluZ1wtYmxvb2RcLWluXC1vbmUnJ3NcLXN0b29sOwor55eF5qmfID4gaW50ZXJwcmV0YXRpb25cLW9mXC10aGVcLWNhdXNlOwor5omN6I+vID4gbGl0ZXJhcnlcLW9yXC1hcnRpc3RpY1wtdGFsZW50Owor5oyH5rOVID4gZmluZ2VyXC1tZXRob2RcLVwoaW5cLXBhaW50aW5nXCk7Civlr7bol48gPiBwcmVjaW91c1wtXChtaW5lcmFsXClcLWRlcG9zaXRzOwor5o+Q5YmNID4gdG9cLXNoaWZ0XC10b1wtYW5cLWVhcmxpZXJcLWRhdGU7CivovKnlh7ogPiBjb21lXC1mb3J0aFwtaW5cLWxhcmdlXC1udW1iZXJzOwor5p2/6bSoID4gcHJlc3NlZFwtXChkcmllZFwpXC1zYWx0ZWRcLWR1Y2s7Civmi5TmtbcgPiBlbGV2YXRpb25cLVwoYWJvdmVcLXNlYVwtbGV2ZWxcKTsKK+WAq+aVpiA+IGxvbmRvblwtXChjYXBpdGFsXC1vZlwtZW5nbGFuZFwpOwor5qKd5qy+ID4gY2xhdXNlXC1cKG9mXC1jb250cmFjdFwtb3JcLWxhd1wpOwor55eF5L6LID4gXFttZWRpY2FsXF1cLWNhc2VcLVxbb2ZcLWlsbG5lc3NcXTsKK+WZqOWumCA+IG9yZ2FuXC1cKHBhcnRcLW9mXC1ib2R5XC10aXNzdWVcKTsKK+ePree0miA+IGNsYXNzZXNcLW9yXC1ncmFkZXNcLWluXC1zY2hvb2w7CivmhrLms5UgPiBjb25zdGl0dXRpb25cLVwob2ZcLWFcLWNvdW50cnlcKTsKK+S4jeirsSA+IHdpdGhvdXRcLWNvbmNlYWxpbmdcLWFueXRoaW5nOwor5a6J5o+SID4gcGxhY2VcLWluXC1hXC1jZXJ0YWluXC1wb3NpdGlvbjsKK+WPpOi5nyA+IHBsYWNlc1wtb2ZcLWhpc3RvcmljXC1pbnRlcmVzdDsKK+awo+mrlCA+IGdhc1wtXChpZVwsXC1nYXNlb3VzXC1zdWJzdGFuY2VcKTsKK+Wtq+WtkCA+IGdyYW5kc29uXC1cKHNvblwtb2ZcLW9uZScnc1wtc29uXCk7CivlpZTpqLAgPiBcKG9mXC13YXZlc1wpXC10b1wtc3VyZ2VcLWZvcndhcmQ7Civpg7Xpm7sgPiBwb3N0XC1hbmRcLXRlbGVjb21tdW5pY2F0aW9uczsKK+WVj+WAmSA+IGdpdmVcLXNvbWVvbmVcLW9uZScnc1wtcmVzcGVjdHM7CivnpZbniLYgPiBncmFuZGZhdGhlclwtXChmYXRoZXInJ3NcLXNpZGVcKTsKK+axuuetliA+IFwobWFrZVwtYVwpXC1zdHJhdGVnaWNcLWRlY2lzaW9uOwor56WW5q+NID4gZ3JhbmRtb3RoZXJcLVwoZmF0aGVyJydzXC1zaWRlXCk7Civph53ngbggPiBhY3VwdW5jdHVyZVwtYW5kXC1tb3hpYnVzdGlvbjsKK+S4gOaXpiA+IGluXC1jYXNlXC1cKHNvbWV0aGluZ1wtaGFwcGVuc1wpOwor5aO96L6wID4gYmlydGhkYXlcLVwob2ZcLWFuXC1vbGRcLXBlcnNvblwpOwor5b6p55SmID4gcmVjb3ZlcnlcLVwoaGVhbHRoXCxcLWVjb25vbWljXCk7CivmmYLmnJ8gPiBhXC1wZXJpb2RcLWluXC10aW1lXC1vclwtaGlzdG9yeTsKK+WQhOWcsCA+IGluXC1hbGxcLXBhcnRzXC1vZlwtXChhXC1jb3VudHJ5XCk7CivnopHmlocgPiBhblwtaW5zY3JpcHRpb25cLW9uXC1hXC10YWJsZXQ7Civlj7DljJcgPiB0YWlwZWlcLVwoY2FwaXRhbFwtb2ZcLXRhaXdhblwpOwor5rKz5YWnID4gaGFub2lcLVwoY2FwaXRhbFwtb2ZcLXZpZXRuYW1cKTsKK+mHj+WKmyA+IHRvXC1lc3RpbWF0ZVwtb25lJydzXC1zdHJlbmd0aDsKK+aWoeaXiyA+IG1lZGlhdGVcLVwoYVwtY29uZmxpY3RcLFwtZXRjXC5cKTsKK+eJjOWMviA+IGJvYXJkXC1cKGF0dGFjaGVkXC10b1wtYVwtd2FsbFwpOwor5YuV5omLID4gdG9cLWhpdFwtd2l0aFwtaGFuZHNcLW9yXC1maXN0czsKK+atpeaciCA+IHRvXC1zdHJvbGxcLWJlbmVhdGhcLXRoZVwtbW9vbjsKK+iqk+W4qyA+IHRvXC12b3dcLWJlZm9yZVwtb25lJydzXC10cm9vcHM7Civpg6jlp5QgPiBtaW5pc3RyaWVzXC1hbmRcLWNvbW1pc3Npb25zOwor6Zuj5oCqID4gXChpdCcnc1wpXC1ub1wtd29uZGVyXC1cKHRoYXRcLlwuXC5cKTsKK+WHjee1kCA+IFwobG9hblwsXC13YWdlXCxcLXByaWNlXClcLWZyZWV6ZTsKK+aWveWKoCA+IGV4ZXJ0XC1cKGVmZm9ydFwtb3JcLXByZXNzdXJlXCk7CivoppbnqpcgPiB3aW5kb3dzXC1cKG9wZXJhdGluZ1wtc3lzdGVtXCk7Civlt6jokZcgPiBtb251bWVudGFsXC1cKGxpdGVyYXJ5XClcLXdvcms7Civli5/ljJYgPiB0b1wtY29sbGVjdFwtYWxtc1wtXChidWRkaGlzbVwpOwor6YOo5LiLID4gdHJvb3BzXC11bmRlclwtb25lJydzXC1jb21tYW5kOwor5YWo56iLID4gXChkdXJpbmdcLWFuXClcLWVudGlyZVwtam91cm5leTsKK+mVt+evhyA+IGxlbmd0aHlcLVwocmVwb3J0XC1vclwtc3BlZWNoXCk7Civopb/muZYgPiB0aGVcLXdlc3RcLWxha2VcLFwtaW5cLWhhbmd6aG91Owor5pKl5byEID4gbW92ZVwtdG9cLWFuZFwtZnJvXC1cKHdpdGhcLWhhbmQ7CivooajoqJggPiBzb21ldGhpbmdcLWdpdmVuXC1hc1wtYVwtdG9rZW47Civooajoo6EgPiB0aGVcLW91dHNpZGVcLWFuZFwtdGhlXC1pbnNpZGU7CivpgLzlgrUgPiBwcmVzc1wtZm9yXC1wYXltZW50XC1vZlwtZGVidHM7CivnrYbpi5IgPiB0aGVcLXRpcFwtb2ZcLWFcLXdyaXRpbmdcLWJydXNoOwor5aCx5YiKID4gbmV3c3BhcGVyc1wtYW5kXC1wZXJpb2RpY2FsczsKK+a8lOismyA+IFwoZ2l2ZVwpXC1hXC1zcGVlY2hcLW9yXC1sZWN0dXJlOwor5ZyL54i2ID4gZmF0aGVyXHxmb3VuZGVyXC1vZlwtYVwtbmF0aW9uOwor5L6d6Z2gID4gcmVseVwtb25cLVwoZm9yXC1zdXBwb3J0XCxcLWV0Y1wpOwor5omA6ZW3ID4gaGVhZFwtb2ZcLWFuXC1pbnN0aXR1dGVcLFwtZXRjXC47Civoi6XlubIgPiBhXC1jZXJ0YWluXC1udW1iZXJcfGFtb3VudFwtb2Y7Civnq7bpgbggPiBydW5cLWZvclwtXChlbGVjdG9yYWxcKVwtb2ZmaWNlOwor5pC25YWIID4gdG9cLXJ1c2hcLVwodG9cLWRvXC1zdGhcLXVyZ2VudFwpOwor5YGc55WZID4gc3RheVwtc29tZXdoZXJlXC10ZW1wb3JhcmlseTsKK+eXheagqiA+IGRpc2Vhc2VkXC1vclwtaW5mZWN0ZWRcLXBsYW50Owor5L+X56ixID4gYmVcLWNvbW1vbmx5XC1yZWZlcnJlZFwtdG9cLWFzOwor6KGM5bCHID4gYmVcLWFib3V0XC10b1wtXChkb1wtc29tZXRoaW5nXCk7CivotrPnkIMgPiBmb290YmFsbFwtXChicml0aXNoXC1lbmdsaXNoXCk7Civog4zohIogPiB0aGVcLWJhY2tcLW9mXC10aGVcLWh1bWFuXC1ib2R5Owor5oqX5pOKID4gcmVzaXN0XC1cKGFcLW1pbGl0YXJ5XC1hdHRhY2tcKTsKK+Wwi+apnyA+IHRvXC1sb29rXC1mb3JcLWFuXC1vcHBvcnR1bml0eTsKK+WvpuazgSA+IHdoYXRcLWlzXC1hY3R1YWxseVwtaGFwcGVuaW5nOwor5LiB6ZuyID4gZGluZ1wteXVuXC1cKGFcLXBlcnNvbmFsXC1uYW1lXCk7CivmoYjmnb8gPiBrbmVhZGluZ1wtb3JcLWNob3BwaW5nXC1ib2FyZDsKK+S/neWuiCA+IFwocG9saXRpY2FsbHlcKVwtY29uc2VydmF0aXZlOwor5LiN6YCBID4gZG9uJyd0XC1ib3RoZXJcLXRvXC1zZWVcLW1lXC1vdXQ7CivnpZ7pgZMgPiBzaGludG9cLVwoamFwYW5lc2VcLXJlbGlnaW9uXCk7CivlsIflsLEgPiBhY2NlcHRcLVwoYVwtYml0XC1yZWx1Y3RhbnRseVwpOwor5oe35oqxID4gXCh3aXRoaW5cLXNvbWVvbmUnJ3NcKVwtZW1icmFjZTsKK+WPs+mCiiA+IHJpZ2h0XC1cKGFzXC1vcHBvc2VkXC10b1wtbGVmdFwpOwor56S+6KuWID4gZWRpdG9yaWFsXC1cKGluXC1hXC1uZXdzcGFwZXJcKTsKK+WutuW4uCA+IHRoZVwtZGFpbHlcLWxpZmVcLW9mXC1hXC1mYW1pbHk7Civmm7jogZYgPiBhXC1ncmVhdFwtY2FsbGlncmFwaHlcLW1hc3RlcjsKK+izh+acrCA+IGNhcGl0YWxcLVwoYXNcLWluXC1jYXBpdGFsaXNtXCk7CivpoqjnkLQgPiBvcmdhblwtXChtdXNpY2FsXC1pbnN0cnVtZW50XCk7CivlrZfluJYgPiBjb3B5Ym9va1wtXChmb3JcLWNhbGxpZ3JhcGh5XCk7CivlronliIYgPiBub3RcLWdvXC1iZXlvbmRcLW9uZScnc1wtYm91bmRzOwor5pqX56yRID4gbGF1Z2hcLWluXC1cKHVwXClcLW9uZScnc1wtc2xlZXZlOwor576O546yID4gbWVpXC1saW5nXC1cKGFcLXBlcnNvbicnc1wtbmFtZVwpOwor56Kn6KGAID4gYmxvb2RcLXNoZWRcLWluXC1hXC1qdXN0XC1jYXVzZTsKK+a0quajriA+IGh1blwtc2VuXC1cKGNhbWJvZGlhblwtbGVhZGVyXCk7CivnqJ/lkYogPiByZXBvcnRcLVwodG9cLW9uZScnc1wtc3VwZXJpb3JcKTsKK+mBuumrlCA+IHJlbWFpbnNcLVwob2ZcLWFcLWRlYWRcLXBlcnNvblwpOwor6YG/6aKoID4gdGFrZVwtc2hlbHRlclwtZnJvbVwtdGhlXC13aW5kOwor56aP5bu6ID4gZnVqaWFuXC1cKHByb3ZpbmNlXC1vZlwtY2hpbmFcKTsKK+WLmOiqpCA+IHRvXC1jb3JyZWN0XC1wcmludGluZ1wtZXJyb3JzOwor5Y2H57SaID4gdG9cLWVzY2FsYXRlXC1cKGluXC1pbnRlbnNpdHlcKTsKK+W8t+iqvyA+IHRvXC1lbXBoYXNpemVcLVwoYVwtc3RhdGVtZW50XCk7CivogIzkuJQgPiBub3RcLW9ubHlcLVwuXC5cLlwtYnV0XC1hbHNvXC1cLlwuXC5cLjsKK+mBt+mDvSA+IHRvXC1tb3ZlXC10aGVcLWNhcGl0b2xcLVwoY2l0eVwpOwor5LiN5L2GID4gbm90XC1vbmx5XC1cKFwuXC5cLlwtYnV0XC1hbHNvXC5cLlwuXCk7CivljIXnlKIgPiBtYWtlXC1hXC1wcm9kdWN0aW9uXC1jb250cmFjdDsKK+WMl+acnSA+IHRoZVwtbm9ydGhlcm5cLWR5bmFzdGllc1wtXChhOwor5YyF5pSsID4gdW5kZXJ0YWtlXC10aGVcLXdob2xlXC10aGluZzsKK+WLnuaVmSA+IHJlZWR1Y2F0aW9uXC10aHJvdWdoXC1sYWJvcjsKK+WNiuWgtCA+IGhhbGZcLW9mXC1hXC1nYW1lXC1vclwtY29udGVzdDsKK+eZvOmBlCA+IGRldmVsb3BlZFwtXChjb3VudHJ5XCxcLWV0Y1wuXCk7CivngInpnLIgPiB0b1wtbGVha1wtb3V0XC1cKGluZm9ybWF0aW9uXCk7CivmrbLmlbggPiBhZ2VcLVwobnVtYmVyXC1vZlwteWVhcnNcLW9sZFwpOwor6ZaL6KitID4gb2ZmZXJcLVwoZ29vZHNcLW9yXC1zZXJ2aWNlc1wpOwor5buj5p2xID4gZ3Vhbmdkb25nXC1wcm92aW5jZVwsXC1jaGluYTsKK+aUvuW/gyA+IHRvXC1zZXRcLW9uZScnc1wtbWluZFwtYXRcLXJlc3Q7Civpra/ov4UgPiBuYW1lXC1vZlwtYW5cLWF1dGhvclwsXC1sdVwteHVuOwor6YGZ5pybID4gdG9cLWxvb2tcLWludG9cLXRoZVwtZGlzdGFuY2U7Civoo5zotrMgPiBicmluZ1wtdXBcLXRvXC1mdWxsXC1zdHJlbmd0aDsKK+eGrOWknCA+IHN0YXlcLXVwXC1sYXRlXC1vclwtYWxsXC1uaWdodDsKK+mrlOmplyA+IHRvXC1leHBlcmllbmNlXC1mb3JcLW9uZXNlbGY7CivmkpXmr4AgPiB0ZWFyXC11cFwtXChhXC1jb250cmFjdFwsXC1ldGNcKTsKK+WCvumKtyA+IHRvXC1kdW1wXC1cKGdvb2RzXCxcLXByb2R1Y3RzXCk7CivnnIvms5UgPiB3YXlcLW9mXC1sb29raW5nXC1hdFwtYVwtdGhpbmc7Civpl5zms6ggPiBmb2xsb3dcLVwoYW5cLWlzc3VlXClcLWNsb3NlbHk7CivliZ3llYQgPiB0YXBcLVwob25cLWFcLWRvb3JcLW9yXC13aW5kb3dcKTsKK+i+qOaekCA+IGRpZmZlcmVudGlhdGVcLWFuZFwtYW5hbHlzZTsKK+Wci+eUoiA+IG1hZGVcLWluXC1vbmUnJ3NcLW93blwtY291bnRyeTsKK+eZveaXjyA+IHRoZVwtYmFpXC1cKHBhaVwpXC1uYXRpb25hbGl0eTsKK+eXheeZkiA+IHJlY292ZXJcLVwoZnJvbVwtYW5cLWlsbG5lc3NcKTsKK+WvrOmZkCA+IGV4dGVuZFwtXChhXC1kZWFkbGluZVwsXC1ldGNcLlwpOwor6KGo5oWLID4gbWFrZVwta25vd25cLW9uZScnc1wtcG9zaXRpb247CivlrqPoqpMgPiBzd2VhclwtYW5cLW9hdGhcLVwob2ZcLW9mZmljZVwpOwor5ouc5pybID4gY2FsbFwtdG9cLXBheVwtb25lJydzXC1yZXNwZWN0Owor56+H5bmFID4gXCh0YWtlXC11cFwtb3JcLWRldm90ZVwpXC1zcGFjZTsKK+mmluebuCA+IFwoamFwYW5lc2VcKVwtcHJpbWVcLW1pbmlzdGVyOwor5oqK5byPID4gcGVyc29uXC1za2lsbGVkXC1pblwtYVwtdHJhZGU7Civmt5jnsa4gPiBiYXNrZXRcLVwoZm9yXC13YXNoaW5nXC1yaWNlXCk7CivnlKXlpbMgPiBuaWVjZVwtXChzaXN0ZXInJ3NcLWRhdWdodGVyXCk7CivmvKLkurogPiBoYW5cLWNoaW5lc2VcLXBlcnNvblx8cGVvcGxlOwor5Ly65qmfID4gdG9cLXdhdGNoXC1mb3JcLW9uZScnc1wtY2hhbmNlOwor6aC46YOoID4gdGhlXC1uZWNrXC1hcmVhXC1vZlwtdGhlXC1ib2R5Owor6IOM5b2xID4gYVwtdmlld1wtb2ZcLXNvbWVib2R5JydzXC1iYWNrOwor54uh6LO0ID4gdG9cLWRlbnlcLVwodGhyb3VnaFwtc29waGlzbVwpOwor6K6K6LOjID4gc2VsbFwtb2ZmXC1cKG9uZScnc1wtcHJvcGVydHlcKTsKK+axuuizvSA+IGZpbmFsc1wtXChvZlwtYVwtY29tcGV0aXRpb25cKTsKK+adv+abuCA+IHdyaXRpbmdcLW9uXC10aGVcLWJsYWNrYm9hcmQ7Civnj4Dmlq8gPiBwZXJ0aFwtXChjaXR5XC1pblwtYXVzdHJhbGlhXCk7CivmhJvmhpAgPiBzaG93XC10ZW5kZXJcLWFmZmVjdGlvblwtZm9yOwor5pq05ryyID4gcmlzZVwtc3VkZGVubHlcLWFuZFwtc2hhcnBseTsKK+mMhOWFsSA+IHRvXC10YWtlXC1kb3duXC1hXC1jb25mZXNzaW9uOwor5pys5a62ID4gYVwtbWVtYmVyXC1vZlwtdGhlXC1zYW1lXC1jbGFuOwor6Z2i6IeoID4gYmVcLWZhY2VkXC13aXRoXC1cKGFcLXByb2JsZW1cKTsKK+axoOa5ryA+IGxhcmdlXC1wb29sXC1pblwtYVwtYmF0aGhvdXNlOwor542O5Yu1ID4gcmV3YXJkXC1cKGFzXC1lbmNvdXJhZ2VtZW50XCk7CivpoIblt64gPiBcKHRyYWRlXC1vclwtYnVkZ2V0XClcLXN1cnBsdXM7CivliJ3pgbggPiBcKHVzXClcLXByaW1hcmllc1wtXChlbGVjdGlvblwpOwor5aCx6Yq3ID4gc3VibWl0XC1hblwtZXhwZW5zZVwtYWNjb3VudDsKK+WPlOWPlCA+IGZhdGhlcicnc1wteW91bmdlclwtYnJvdGhlcjsKK+WfjumXnCA+IGFyZWFcLW91dHNpZGVcLWFcLWNpdHlcLWdhdGU7CivpgYvnrpcgPiBcKG1hdGhlbWF0aWNhbFwpXC1vcGVyYXRpb247Civlt57plbcgPiBnb3Zlcm5vclwtXChvZlwtYVwtdXNcLXN0YXRlXCk7Civpg6jlsawgPiBhZmZpbGlhdGVkXC10b1wtYVwtbWluaXN0cnk7CivlvJXmk44gPiBlbmdpbmVcLVwodHJhbnNsaXRlcmF0aW9uXCk7CivnmbvoqJggPiB0b1wtcmVnaXN0ZXJcLVwob25lJydzXC1uYW1lXCk7CivmqZ/ntYQgPiBmbGlnaHRcLWNyZXdcLVwob25cLWFcLXBsYW5lXCk7Civpgbzlr6cgPiBsaWFvbmluZ1wtcHJvdmluY2VcLFwtY2hpbmE7CivnhafluLggPiBcKGJ1c2luZXNzXCxcLWV0Y1wpXC1hc1wtdXN1YWw7CivmkqvmkbggPiBnZW50bHlcLWNhcmVzc1wtYW5kXC1zdHJva2U7CivliIfmlrcgPiBjdXRcLW9mZlwtXChhXC1zdXBwbHlcLFwtZXRjXC5cKTsKK+W7uuWItiA+IG9yZ2FuaXphdGlvbmFsXC1zdHJ1Y3R1cmU7CivpgIDlvbkgPiByZXRpcmVcLWZyb21cLXRoZVwtbWlsaXRhcnk7CivpgZXlj40gPiB0b1wtdmlvbGF0ZVwtXChhXC1sYXdcLFwtZVwuZ1wuXCk7Civluavlu5ogPiBoZWxwXC1pblwtdGhlXC1tZXNzXC1raXRjaGVuOwor6KOc56iFID4gcGF5XC1hXC10YXhcLW9uZVwtaGFzXC1ldmFkZWQ7CivopbLmk4ogPiBcKG1ha2VcLWFcKVwtc3VycHJpc2VcLWF0dGFjazsKK+eZvea3qCA+IFwob2ZcLXNraW5cKVwtZmFpclwtYW5kXC1jbGVhcjsKK+W3oeafpSA+IHRvXC1nb1wtYXJvdW5kXC1hbmRcLWluc3BlY3Q7CivlhbXmm7ggPiBhXC1ib29rXC1vblwtdGhlXC1hcnRcLW9mXC13YXI7CivnlKLpircgPiBwcm9kdWN0aW9uXC1hbmRcLW1hcmtldGluZzsKK+mXjOWwviA+IGFwcGVuZGl4XC1cKGluXC1odW1hblwtYm9keVwpOwor5bmF5ZOhID4gYVwtY291bnRyeScnc1wtc3VyZmFjZVwtYXJlYTsKK+aSpeS7mCA+IGFwcHJvcHJpYXRlXC1zdW1cLW9mXC1tb25leTsKK+Wci+eHnyA+IHN0YXRlXC1ydW5cLVwoY29tcGFueVwsXC1ldGNcKTsKK+aQjeWksSA+IGFcLVwoZmluYW5jaWFsXCxcLWV0Y1wuXClcLWxvc3M7CivovqblhawgPiBoYW5kbGVcLW9mZmljaWFsXC1idXNpbmVzczsKK+S9memchyA+IFwoZWFydGhxdWFrZVwpXC1hZnRlcnNob2NrczsKK+eVmueulSA+IGFcLWJhbWJvb1wtb3JcLXdpY2tlclwtc2Nvb3A7CivnqoHpoa8gPiBtYWtlXC1zb21ldGhpbmdcLXN0YW5kXC1vdXQ7Civmj6HlipsgPiBcKHN0cmVuZ3RoXC1vZlwtb25lJydzXClcLWdyaXA7Civppqzoo6EgPiBtYWxpXC1cKG5hbWVcLW9mXC1hXC1jb3VudHJ5XCk7Civnl4XmhYsgPiBtb3JiaWRcLW9yXC1hYm5vcm1hbFwtc3RhdGU7CivmjqfliLYgPiB0b1wtXChoYXZlXClcLWNvbnRyb2xcLVwob3ZlclwpOwor5L2z6IO9ID4gY2Fub25cLVwoamFwYW5lc2VcLWNvbXBhbnlcKTsKK+eXheWutiA+IGFcLXBhdGllbnRcLWFuZFwtaGlzXC1mYW1pbHk7CivnlpHmg5EgPiBcKGFcLXNlbnNlXC1vZlwpXC11bmNlcnRhaW50eTsKK+aJk+eJjCA+IHRvXC1wbGF5XC1tYWhqb25nXC1vclwtY2FyZHM7CivlgZrlrqIgPiB0b1wtYmVcLWFcLWd1ZXN0XC1vclwtdmlzaXRvcjsKK+ihjOS9vyA+IGV4ZXJjaXNlXC1cKGFcLXJpZ2h0XCxcLWV0Y1wuXCk7CivnrYbmjLogPiBcKHN0YW5kaW5nXClcLXZlcnlcLXN0cmFpZ2h0Owor5a6J56WeID4gY2FsbVwtXChzb290aGVcKVwtdGhlXC1uZXJ2ZXM7CivogbPogqkgPiB0b1wtc2hydWdcLW9uZScnc1wtc2hvdWxkZXJzOwor5rex56m6ID4gZGVlcFwtc3BhY2VcLVwob3V0ZXJcLXNwYWNlXCk7CivllJDntI0gPiB0YW5uZXJcLVwoZW5nbGlzaFwtc3VybmFtZVwpOwor5ZGI6KuLID4gdG9cLXN1Ym1pdFwtXCh0b1wtc3VwZXJpb3JzXCk7CivkuIroqLQgPiBhcHBlYWxcLVwoYVwtanVkaWNpYWxcLWNhc2VcKTsKK+aHt+W/tSA+IHRvXC1jaGVyaXNoXC10aGVcLW1lbW9yeVwtb2Y7Civnibnpu54gPiBjaGFyYWN0ZXJpc3RpY1wtXChmZWF0dXJlXCk7CivlrZfmr40gPiBsZXR0ZXJcLVwob2ZcLXRoZVwtYWxwaGFiZXRcKTsKK+WQjOisgCA+IHRvXC1jb25zcGlyZVwtd2l0aFwtc29tZW9uZTsKK+ahg+WckiA+IHRhb3l1YW5cLVwoY2l0eVwtaW5cLXRhaXdhblwpOwor5rGf6Z2iID4gdGhlXC1zdXJmYWNlXC1vZlwtdGhlXC1yaXZlcjsKK+eikemhjSA+IHRoZVwtdG9wXC1wYXJ0XC1vZlwtYVwtdGFibGV0Owor5Ly05aWPID4gdG9cLWFjY29tcGFueVwtXChtdXNpY2FsbHlcKTsKK+WPs+e/vCA+IFwocG9saXRpY2FsbHlcKVwtcmlnaHRcLXdpbmc7CivmtZnmsZ8gPiB6aGVqaWFuZ1wtcHJvdmluY2VcLFwtY2hpbmE7CivorZjoposgPiBrbm93bGVkZ2VcLWFuZFwtZXhwZXJpZW5jZTsKK+iyt+W4syA+IHRvXC1zaG93XC1yZXNwZWN0XC1cKGZvclwtc2JcKTsKK+aal+eurSA+IGF0dGFja1wtYnlcLWFcLWhpZGRlblwtZW5lbXk7Civmt7HlnLMgPiBzaGVuemhlblwtXChjaXR5XC1pblwtY2hpbmFcKTsKK+eoi+W6piA+IGRlZ3JlZVwtXChsZXZlbFwtb3JcLWV4dGVudFwpOwor5aSn6ZecID4gXChyZWFjaFwtYVwpXC1jcml0aWNhbFwtcG9pbnQ7CivpoK3niYggPiBcKG5ld3NwYXBlcicnc1wpXC1mcm9udFwtcGFnZTsKK+aYpeiBryA+IHNwcmluZ1wtZmVzdGl2ZWxcLWNvdXBsZXRzOwor5Lul5L6GID4gc2luY2VcLVwoYVwtcHJldmlvdXNcLWV2ZW50XCk7Civok67oirEgPiBsb3R1c1wtXChjb21wdXRlclwtY29tcGFueVwpOwor5LiN5pelID4gd2l0aGluXC10aGVcLW5leHRcLWZld1wtZGF5czsKK+irkuinoyA+IFwocmVhY2hcKVwtYW5cLXVuZGVyc3RhbmRpbmc7Civok4vnq6AgPiB0b1wtYWZmaXhcLWFcLXNlYWxcLVwodG9cLXN0aFwpOwor6Ke46Zu7ID4gdG9cLWdldFwtYW5cLWVsZWN0cmljXC1zaG9jazsKK+S4u+WLlSA+IFwodG9cLXRha2VcLXRoZVwpXC1pbml0aWF0aXZlOwor6Ki06KqqID4gdGVsbFwtXCh0b1wtYW5vdGhlclwtcGVyc29uXCk7CivnuL3ntbEgPiBwcmVzaWRlbnRcLVwob2ZcLWFcLWNvdW50cnlcKTsKK+WgsemgrSA+IG1hc3RoZWFkXC1cKG9mXC1hXC1uZXdzcGFwZXI7CivljZfmspkgPiBuYW5zaGFcLVwoc3ByYXRseVwpXC1pc2xhbmRzOwor6YCa6YGTID4gXChjb21tdW5pY2F0aW9uc1wpXC1jaGFubmVsOwor5pS/57i+ID4gXChwb2xpdGljYWxcKVwtYWNoaWV2ZW1lbnRzOwor5b+M5oGoID4gaGF0ZVwtXChkdWVcLXRvXC1lbnZ5XCxcLWV0Y1wpOwor6Zu554G9ID4gZGlzYXN0ZXJcLWNhdXNlZFwtYnlcLWhhaWw7Civlh7roqKogPiB2aXNpdFwtYVwtZm9yZWlnblwtY291bnRyeTsKK+aWkeaWkSA+IGZ1bGxcLW9mXC1zdGFpbnNcLW9yXC1zcG90czsKK+ilv+ijnSA+IFwod2VzdGVyblwtc3R5bGVcKVwtY2xvdGhlczsKK+WKoOayuSA+IHRvXC1tYWtlXC1hblwtZXh0cmFcLWVmZm9ydDsKK+WLn+aNkCA+IHRvXC1zb2xpY3RcLWNvbnRyaWJ1dGlvbnM7CivnmrToo4IgPiBjaGFwXC1cKGxpcHNcLFwtc2tpblwsXC1ldGNcLlwpOwor6KaL6IGeID4gd2hhdFwtb25lXC1zZWVzXC1hbmRcLWhlYXJzOwor5Y2X5LqsID4gbmFuamluZ1wtXChjaXR5XC1pblwtY2hpbmFcKTsKK+imj+e0hCA+IHRlcm1zXC1cKG9mXC1hblwtYWdyZWVtZW50XCk7Civmrbjlv4MgPiBjb252ZXJ0ZWRcLXRvXC1cKHJlbGlnaW9uXCk7CivpgLzmrbsgPiBob3VuZFwtc29tZWJvZHlcLXRvXC1kZWF0aDsKK+e1seayuyA+IFwocG9saXRpY2FsXClcLXJ1bGVcLVwob3ZlclwpOwor6KOc6KqyID4gbWFrZVwtdXBcLWFcLW1pc3NlZFwtbGVzc29uOwor6YCZ5qijID4gdGhpc1wtXChraW5kXC1vZlwsXC1zb3J0XC1vZlwpOwor6YGU5oiQID4gdG9cLXJlYWNoXC1cKGFuXC1hZ3JlZW1lbnRcKTsKK+eZvuiIrCA+IGluXC1odW5kcmVkXC1hbmRcLW9uZVwtd2F5czsKK+aOiOioiCA+IHRvXC1jb25maWRlXC1hXC1wbGFuXC10b1wtc2I7CivloLHmm4kgPiBoZXJhbGRcLXRoZVwtYnJlYWtcLW9mXC1kYXk7CivliKnluIIgPiBcImxhaVwtc2VlXCJcLVwobHVja3lcLW1vbmV5XCk7CivlgbTph40gPiBwbGFjZVwtZXh0cmFcLWVtcGhhc2lzXC1vbjsKK+WgseaBqSA+IHBheVwtYVwtZGVidFwtb2ZcLWdyYXRpdHVkZTsKK+W5q+WtkCA+IG91dGVyXC1cKG9mXC1jYWJiYWdlXCxcLWV0Y1wpOwor6Ieq6LGqID4gXChmZWVsXC1hXC1zZW5zZVwtb2ZcKVwtcHJpZGU7CivpmLLli5kgPiBcKHBlcnRhaW5pbmdcLXRvXClcLWRlZmVuc2U7Civmpa3nuL4gPiBvdXRzdGFuZGluZ1wtYWNoaWV2ZW1lbnQ7CivnlZnoqIAgPiB0b1wtbGVhdmVcLW9uZScnc1wtY29tbWVudHM7CivlubTkvoYgPiBvdmVyXC10aGVcLWxhc3RcLVwuXC5cLlwteWVhcnM7Civplovmi40gPiBiZWdpblwtc2hvb3RpbmdcLVwoYVwtZmlsbVwpOwor5YiG5LmLID4gXChpbmRpY2F0aW5nXC1hXC1mcmFjdGlvblwpOwor562U6KydID4gdG9cLWV4cHJlc3NcLW9uZScnc1wtdGhhbmtzOwor562G6KuHID4gY29udmVyc2F0aW9uXC1ieVwtd3JpdGluZzsKK+eRqum6lyA+IG1hbGlcLVwoYVwtcGVyc29uJydzJydcLW5hbWVcKTsKK+eXh+eLgCA+IHN5bXB0b21cLVwob2ZcLWFuXC1pbGxuZXNzXCk7CivkvZTpoJggPiB0b1wtb2NjdXB5XC1cKGFcLXRlcnJpdG9yeVwpOwor5YKZ5paZID4gZ2V0XC10aGVcLW1hdGVyaWFsc1wtcmVhZHk7CivlnablhYsgPiB0YW5rXC1cKG1pbGl0YXJ5XC12ZWhpY2xlXCk7Civlm5vlt50gPiBzaWNodWFuXC1wcm92aW5jZVwsXC1jaGluYTsKK+iyqemBiyA+IHRvXC10cmFuc3BvcnRcLVwoZm9yXC1zYWxlXCk7Civku4rora8gPiBtb2Rlcm5cLWxhbmd1YWdlXC12ZXJzaW9uOwor5oqV5pS+ID4gdG9cLXB1dFwtaW5cLVwoY2lyY3VsYXRpb25cKTsKK+eXheWAkiA+IGJlXC1kb3duXC13aXRoXC1hblwtaWxsbmVzczsKK+aLt+WVjyA+IHRvXC1xdWVzdGlvblwtdmlhXC10b3J0dXJlOwor5oKj6ZujID4gdHJpYWxzXC1hbmRcLXRyaWJ1bGF0aW9uczsKK+mNm+eFiSA+IHRvXC1kb1wtcGh5c2ljYWxcLXRyYWluaW5nOwor6JuZ5rOzID4gXChzd2ltbWluZ1wpXC1icmVhc3RzdHJva2U7CivmgI7purwgPiBcKGludGVycm9nYXRpdmVcLXByb25vdW5cKTsKK+mnkOWuiCA+IFwobWFuXC1hXC1wb3N0XC1hbmRcKVwtZGVmZW5kOwor5rqr5ZKMID4gbW9kZXJhdGVcLVwocG9saWN5XCxcLWV0Y1wuXCk7CivlkKboqo0gPiB0b1wtZGVjbGFyZVwtdG9cLWJlXC11bnRydWU7CivmsZ/opb8gPiBqaWFuZ3hpXC1wcm92aW5jZVwsXC1jaGluYTsKK+aEm+aSqyA+IHRvXC1zaG93XC10ZW5kZXJcLWNhcmVcLWZvcjsKK+WPg+iIhyA+IHRvXC1wYXJ0aWNpcGF0ZVwtXChpblwtc3RoXCk7CivmuK/kurogPiBob25nXC1rb25nXC1wZXJzb25cfHBlb3BsZTsKK+m7g+aysyA+IHllbGxvd1wtcml2ZXJcLVwoaHVhbmdcLWhlXCk7CivmsZ/omIcgPiBqaWFuZ3N1XC1wcm92aW5jZVwsXC1jaGluYTsKK+S7u+WRvSA+IHRvXC1hcHBvaW50XC1hbmRcLW5vbWluYXRlOwor6aSF5a2QID4gbWFpemVcLW9yXC1taWxsZXRcLXBhbmNha2U7CivmnJ/mlLcgPiBlbmRcLW9mXC10ZXJtXC1leGFtaW5hdGlvbjsKK+e4vemhjSA+IHRvdGFsXC1cKGFtb3VudFwtb3JcLXZhbHVlXCk7CivorILoqp4gPiBcKGdyYW1tYXRpY2FsXClcLXByZWRpY2F0ZTsKK+S4reaXrCA+IG1pZGRsZVwtdGhpcmRcLW9mXC1hXC1tb250aDsKK+S4i+aXrCA+IGxhc3RcLXRoaXJkXC1vZlwtdGhlXC1tb250aDsKK+iyneWFiyA+IGJha2VyXC1cKGVuZ2xpc2hcLXN1cm5hbWVcKTsKK+S6guWQgyA+IHRvXC1lYXRcLWluZGlzY3JpbWluYW50bHk7CivmganmgKggPiBcKGZlZWxpbmdcLW9mXClcLXJlc2VudG1lbnQ7CivkuI3lpJYgPiBub3RcLWJleW9uZFwtdGhlXC1zY29wZVwtb2Y7CivmnI3liJEgPiBzZXJ2ZVwtYVwtcHJpc29uXC1zZW50ZW5jZTsKK+iOq+mdniA+IGNhblwtaXRcLWJlXC1wb3NzaWJsZVwtdGhhdDsKK+W7o+ilvyA+IGd1YW5neGlcLXByb3ZpbmNlXCxcLWNoaW5hOwor5aWU54CJID4gXChvZlwtdG9ycmVudHNcKVwtcnVzaFwtZG93bjsKK+mBuueVmSA+IFwobGVhdmVcLW9yXC1iZVwtYVwpXC1sZWdhY3k7CivluLjopo8gPiBjb252ZW50aW9uYWxcLVwod2VhcG9uc1wpOwor6K2J5Yi4ID4gXChmaW5hbmNpYWxcKVwtc2VjdXJpdGllczsKK+W+gOW4uCA+IGhhYml0dWFsbHlcLWluXC10aGVcLXBhc3Q7CivlppblhrYgPiBwcmV0dHlcLWFuZFwtZmxpcnRhdGlvdXM7Civpnanlkb0gPiBcKHBvbGl0aWNhbFwpXC1yZXZvbHV0aW9uOwor6KuW5aOHID4gZm9ydW1cLVwoZm9yXC1kaXNjdXNzaW9uXCk7Civlo5/mlrcgPiBlbmpveVwtbWFya2V0XC1kb21pbmFuY2U7CivniaHkuLkgPiBwZW9ueVwtXCh0eXBlXC1vZlwtZmxvd2VyXCk7CivloLHnqIUgPiBkZWNsYXJlXC1kdXRpYWJsZVwtZ29vZHM7Civlhazoqo0gPiBwdWJsaWNseVwta25vd25cLVwodG9cLWJlXCk7CivnmbzooaggPiB0b1wtaXNzdWVcLVwoYVwtc3RhdGVtZW50XCk7Civpm7vlmaggPiBcKGVsZWN0cmljYWxcKVwtYXBwbGlhbmNlOwor5q635YukID4gcG9saXRlbHlcLFwtc29saWNpdG91c2x5Owor5Yiw5pyfID4gYmVjb21lXC1kdWVcLVwoZWdcLFwtbG9hbnNcKTsKK+eXhemZoiA+IGFcLXNwZWNpYWxpemVkXC1ob3NwaXRhbDsKK+eXheixoSA+IHN5bXB0b21cLVwob2ZcLWFcLWRpc2Vhc2VcKTsKK+asuuWHjCA+IHRvXC1idWxseVwtYW5kXC1odW1pbGlhdGU7CivpgY3lj4ogPiB0b1wtZXh0ZW5kXC1cKGV2ZXJ5d2hlcmVcKTsKK+ewvee9siA+IHRvXC1zaWduXC1cKGFuXC1hZ3JlZW1lbnRcKTsKK+WgseWwjiA+IHRvXC1jb3ZlclwtXChyZXBvcnRcKVwtbmV3czsKK+W4g+aclyA+IGVuZ2xpc2hcLXN1cm5hbWVcLFwtYnJvd247CivmqJnmupYgPiBcKGFuXC1vZmZpY2lhbFwpXC1zdGFuZGFyZDsKK+mAgOS8kSA+IHJldGlyZW1lbnRcLVwoZnJvbVwtd29ya1wpOwor6Lao6ZmEID4gdG9cLWluZ3JhdGlhdGlvblwtb25zZWxmOwor562G6LehID4gYVwtcGVyc29uJydzXC1oYW5kd3JpdGluZzsKK+eboeWKmyA+IGRvXC1vbmUnJ3NcLWJlc3RcLVwoZWZmb3J0XCk7CivnrYboqJggPiB0YWtlXC1kb3duXC1cKGluXC13cml0aW5nXCk7CivopKXlrZAgPiBjb3R0b25cLXBhZGRlZFwtbWF0dHJlc3M7Civnl4Xni4AgPiBzeW1wdG9tXC1cKG9mXC1hXC1kaXNlYXNlXCk7CivlhJjlv6sgPiBhc1wtcXVpY2tseVwtYXNcLXBvc3NpYmxlOwor5r+A5piCID4gYXJvdXNlZFwtdG9cLWluZGlnbmF0aW9uOwor56ul6KmxID4gY2hpbGRyZW4nJ3NcLWZhaXJ5XC10YWxlczsKK+aPkOS6pCA+IHN1Ym1pdFwtXChhXC1yZXBvcnRcLFwtZXRjXCk7CivkvpvogbcgPiBob2xkXC1hblwtb2ZmaWNlXC1vclwtcG9zdDsKK+S+huiHqiA+IHRvXC1jb21lXC1mcm9tXC1cKGFcLXBsYWNlXCk7Civnl4XlvoEgPiBzeW1wdG9tXC1cKG9mXC1hXC1kaXNlYXNlXCk7Civlrproqp4gPiBhdHRyaWJ1dGl2ZVwtXChtb2RpZmllclwpOwor5ryC5rWBID4gY2FycmllZFwtYnlcLXRoZVwtY3VycmVudDsKK+ajhOasiiA+IHRvXC1hYnN0YWluXC1mcm9tXC12b3Rpbmc7CivmjY/lkIggPiB0b1wtYWN0XC1hc1wtYVwtZ29cLWJldHdlZW47CivnlLLmnb8gPiBkZWNrXC1cKG9mXC1hXC1ib2F0XCxcLWV0Y1wuXCk7CivmjY/kvLAgPiB0b1wtYWN0XC1hc1wtYVwtZ29cLWJldHdlZW47CivmooXmtL4gPiB0aGVcLW1laVwtbGFuZmFuZ1wtc2Nob29sOwor5raJ6YGOID4gZm9yZFwtXChhXC1zdHJlYW1cLFwtcml2ZXJcKTsKK+mrlOWFpyA+IGludGVybmFsXC1cKHRvXC10aGVcLWJvZHlcKTsKK+S7u+iBtyA+IGhvbGRcLWFuXC1vZmZpY2VcLW9yXC1wb3N0Owor6ISK5qSOID4gYmFja1wtXChvZlwtYVwtdmVydGlicmF0ZVwpOwor5Lyv54i2ID4gZmF0aGVyJydzXC1lbGRlclwtYnJvdGhlcjsKK+S/neWuiSA+IGVuc3VyZVwtcHVibGljXC1zZWN1cml0eTsKK+S4iui6qyA+IHVwcGVyXC1wYXJ0XC1vZlwtdGhlXC1ib2R5Owor5a2X5q61ID4gXChudW1lcmljXCxcLWRhdGRhXClcLWZpZWxkOwor5Lim6IiJID4gZGV2ZWxvcFwtc2ltdWx0YW5lb3VzbHk7CivkuIDomZ8gPiBmaXJzdFwtZGF5XC1vZlwtdGhlXC1tb250aDsKK+WvqeWIpCA+IHB1dFwtXChzb21lb25lXClcLXRvXC10cmlhbDsKK+WQkOiVgyA+IGFuY2llbnRcLW5hbWVcLWZvclwtdGliZXQ7CivmuKzlrpogPiB0b1wtc3VydmV5XC1hbmRcLWV2YWx1YXRlOwor5rOw576FID4gXChlbmdsaXNoXC1zdXJuYW1lXClcLXR5bG87CivlkJ7ogbIgPiB0b1wtc3dhbGxvd1wtb25lJydzXC1jcmllczsKK+iyoeacgyA+IGZpbmFuY2VcLWFuZFwtYWNjb3VudGluZzsKK+S6pOaYkyA+IFwoYnVzaW5lc3NcKVwtdHJhbnNhY3Rpb247Civnj77lvbkgPiBcKG1pbGl0YXJ5XClcLWFjdGl2ZVwtZHV0eTsKK+awkemBuCA+IGRlbW9jcmF0aWNhbGx5XC1lbGVjdGVkOwor5Lyv5LyvID4gZmF0aGVyJydzXC1lbGRlclwtYnJvdGhlcjsKK+a1t+aLlCA+IGhlaWdodFwtYWJvdmVcLXNlYVwtbGV2ZWw7Civnp5HmioAgPiBzY2llbmNlXC1hbmRcLXRlY2hub2xvZ3k7Civku7vlhY0gPiB0b1wtYXBwb2ludFwtYW5kXC1kaXNtaXNzOwor5LqC5a+rID4gdG9cLXdyaXRlXC13aXRob3V0XC1iYXNpczsKK+WmluiJtyA+IHByZXR0eVwtYW5kXC1mbGlydGF0aW91czsKK+mbtumMoiA+IGNoYW5nZVwtXChzYWlkXC1vZlwtbW9uZXlcKTsKK+S4jeacjSA+IG5vdFwtYWNjZXB0XC1cKHNvbWV0aGluZ1wpOwor6by75YWSID4gYVwtaG9sZVwtaW5cLWFuXC1pbXBsZW1lbnQ7CivmhJ/lmIYgPiB0b1wtc2lnaFwtXCh3aXRoXC1mZWVsaW5nXCk7CivljJboo50gPiBcKG9mXC1hY3RvcnNcKVwtdG9cLW1ha2VcLXVwOwor5LqR5Y2XID4geXVubmFuXC1wcm92aW5jZVwsXC1jaGluYTsKK+acjeWujCA+IHNlcnZlXC1vdXRcLVwoYVwtc2VudGVuY2VcKTsKK+m7g+WxsSA+IG10XC5cLWh1YW5nXC1cKGh1YW5nXC1zaGFuXCk7Civlj6Tms6IgPiBndWJvXC1cKGFcLXBlcnNvbmFsXC1uYW1lXCk7CivnjJzmi7MgPiBhXC1maW5nZXJcLWd1ZXNzaW5nXC1nYW1lOwor5Yqp6KmeID4gcGFydGljbGVcLVwoZ3JhbW1hdGljYWxcKTsKK+iuk+WdkCA+IHRvXC1naXZlXC11cFwtb25lJydzXC1zZWF0Owor5rK55YO5ID4gb2lsXC1cKHBldHJvbGV1bVwpXC1wcmljZTsKK+W3qOmhjSA+IGFcLWh1Z2VcLXN1bVwtXChvZlwtbW9uZXlcKTsKK+WllOaUviA+IGJvbGRcLWFuZFwtdW5yZXN0cmFpbmVkOwor5b6X5oSPID4gXChiZVwpXC1wcm91ZFwtb2ZcLW9uZXNlbGY7CivlpZTlv5kgPiBiZVwtYnVzeVwtcnVzaGluZ1wtYWJvdXQ7CivliZvnm7QgPiB1cHJpZ2h0XC1hbmRcLW91dHNwb2tlbjsKK+W3oemCjyA+IGJlXC1vblwtXChwb2xpY2VcKVwtcGF0cm9sOwor6ZmN56aPID4gYmxlc3NpbmdzXC1mcm9tXC1oZWF2ZW47Civngrjol6UgPiBleHBsb3NpdmVcLVwoc3Vic3RhbmNlXCk7CivlpKLmg7MgPiB0b1wtZHJlYW1cLW9mXC1cKGluXC12YWluXCk7CivpmLLnqbogPiBhbnRpXC1haXJjcmFmdFwtZGVmZW5zZTsKK+WFiOmAsiA+IGFkdmFuY2VkXC1cKHRlY2hub2xvZ3lcKTsKK+WllOWRvSA+IHJ1c2hcLWFib3V0XC1vblwtZXJyYW5kczsKK+ino+axuiA+IHRvXC1zZXR0bGVcLVwoYVwtZGlzcHV0ZVwpOwor6Ziy5rK7ID4gXChwcmV2ZW50aW9uXC1hbmRcKVwtY3VyZTsKK+WIhuapnyA+IFwodGVsZXBob25lXClcLWV4dGVuc2lvbjsKK+ecvuacmyA+IHBlb3BsZScnc1wtZXhwZWN0YXRpb25zOwor55m957OWID4gXChyZWZpbmVkXClcLXdoaXRlXC1zdWdhcjsKK+aTgeaItCA+IHRvXC1zdXBwb3J0XC1cKGFcLXBlcnNvblwpOwor6KGo6YGUID4gdG9cLXZvaWNlXC1cKGFuXC1vcGluaW9uXCk7CivloLHmmYIgPiBnaXZlXC10aGVcLWNvcnJlY3RcLXRpbWU7CivpmqjlkowgPiBhbWlhYmxlXC1cKGRpc3Bvc2l0aW9uXCk7Civlh73mjoggPiBjb3JyZXNwb25kZW5jZVwtY291cnNlOwor6L+35oiAID4gdG9cLWJlXC1pbmZhdHVhdGVkXC13aXRoOwor5ouX6Zm3ID4gZ2VvbG9naWNhbFwtZGVwcmVzc2lvbjsKK+WFjeeWqyA+IGltbXVuaXR5XC1cKHRvXC1kaXNlYXNlXCk7CivlhaznhLYgPiBcKGRvXC1zb21ldGhpbmdcKVwtb3Blbmx5Owor5aCF5oyBID4gdG9cLWNvbnRpbnVlXC11cGhvbGRpbmc7Civlh7rlt64gPiBiZVwtb25cLWFcLWJ1c2luZXNzXC10cmlwOwor5ry46YCyID4gcHJvZ3Jlc3NcLXN0ZXBcLWJ5XC1zdGVwOwor6ZmQ5Yi2ID4gXChpbXBvc2VcKVwtcmVzdHJpY3Rpb25zOwor5bm05YidID4gYmVnaW5uaW5nXC1vZlwtdGhlXC15ZWFyOwor562G6YyEID4gcHV0XC1kb3duXC1cKGluXC13cml0aW5nXCk7CivmjInohIggPiBmZWVsXC1cKHRha2VcKVwtdGhlXC1wdWxzZTsKK+aLm+iBmCA+IHRha2VcLWpvYlwtYXBwbGljYXRpb25zOwor5YWJ5beeID4ga3dhbmdqdVwtXChzb3V0aFwta29yZWFcKTsKK+W3peWVhiA+IGluZHVzdHJ5XC1hbmRcLWNvbW1lcmNlOwor5r6z5rSyID4gYXVzdHJhbGlhXC1cKGNvbnRpbmVudFwpOwor55qu5YWSID4gXChkb3VnaFwsXC1ldGNcLlwpd3JhcHBlcnM7CivnlJjogoUgPiBnYW5zdVwtcHJvdmluY2VcLFwtY2hpbmE7CivlronplpIgPiBwZWFjZWZ1bFwtYW5kXC1jYXJlZnJlZTsKK+iJseW3qCA+IHZlcnlcLWRpZmZpY3VsdFwtXCh0YXNrXCk7CivooLvmqasgPiBydWRlXC1hbmRcLXVucmVhc29uYWJsZTsKK+ewveWtlyA+IHRvXC1zaWduXC1cKGFcLXNpZ25hdHVyZVwpOwor5a6J6YGpID4gcXVpZXRcLWFuZFwtY29tZm9ydGFibGU7CivmuKzoia8gPiB0b1wtc3VydmV5XC1hbmRcLW1lYXN1cmU7Civnj63ou4ogPiByZWd1bGFyXC1idXNcLVwoc2VydmljZVwpOwor5qGI55SxID4gbWFpblwtcG9pbnRzXC1vZlwtYVwtY2FzZTsKK+iytuisqyA+IGJhbmlzaFwtZnJvbVwtdGhlXC1jb3VydDsKK+m7g+mtmiA+IHllbGxvd1wtY3JvYWtlclwtXChmaXNoXCk7CivouqvkuJYgPiBvbmUnJ3NcLWxpZmVcLWV4cGVyaWVuY2U7CivmirHmgaggPiBoYXZlXC1hXC1nbmF3aW5nXC1yZWdyZXQ7Civoh6rlj6QgPiBcKHNpbmNlXClcLWFuY2llbnRcLXRpbWVzOwor56yG5paXID4gcm91bmRcLWJvdHRvbWVkXC1iYXNrZXQ7CivkuozomZ8gPiAyXC1uZFwtZGF5XC1vZlwtdGhlXC1tb250aDsKK+iyoee2kyA+IGZpbmFuY2VcLWFuZFwtZWNvbm9taWNzOwor5Li76KqeID4gXChncmFtbWF0aWNhbFwpXC1zdWJqZWN0Owor5ZiW5ZiWID4gdG9cLWNsaWNrXC1vbmUnJ3NcLXRvbmd1ZTsKK+m8u+elliA+IHRoZVwtZWFybGllc3RcLWFuY2VzdG9yOwor5oiA5oSbID4gdG9cLWhhdmVcLWFcLWxvdmVcLWFmZmFpcjsKK+aatOi3jCA+IHN0ZWVwXC1mYWxsXC1cKGluXC1wcmljZVwpOwor6K6T6ZaLID4gdG9cLWdldFwtb3V0XC1vZlwtdGhlXC13YXk7CivlsLHkvr8gPiBhdFwtXCh5b3VyXClcLWNvbnZlbmllbmNlOwor5Y+v6LqrID4gdG9cLWZpdFwtd2VsbFwtXChjbG90aGVzXCk7Civnp5HnoJQgPiBcKHNjaWVudGlmaWNcKVwtcmVzZWFyY2g7Civlj6/orIIgPiBpdFwtY291bGRcLWV2ZW5cLWJlXC1zYWlkOwor6K6T6LevID4gdG9cLW1ha2VcLXdheVwtXChmb3JcLXN0aFwpOwor5oi25Li7ID4gaGVhZFwtb2ZcLXRoZVwtaG91c2Vob2xkOwor6aCS6KGMID4gaXNzdWVcLWZvclwtZW5mb3JjZW1lbnQ7CivmuZbljZcgPiBodW5hblwtcHJvdmluY2VcLFwtY2hpbmE7CivppJjmlbggPiBcKG51bWVyaWNhbFwpXC1yZW1haW5kZXI7CivkuI3nrqEgPiBub1wtbWF0dGVyXC1cKHdoYXRcLFwtaG93XCk7CivniYjpnaIgPiBzcGFjZVwtb2ZcLWFcLXdob2xlXC1wYWdlOwor5LiN56aBID4gY2FuJyd0XC1oZWxwXC1cKGRvaW5nXC1zdGg7CivmmI/ov7cgPiB0b1wtbG9zZVwtY29uc2Npb3VzbmVzczsKK+WQkOe1riA+IHRoZVwtb3BlbmluZ1wtb2ZcLWFcLWJvbGw7Civpi6rlubMgPiBzcHJlYWRcLW91dFwtXChtYXRlcmlhbFwpOwor5LiN55CGID4gcmVmdXNlXC10b1wtYWNrbm93bGVkZ2U7Civororoh4kgPiBzdWRkZW5seVwtdHVyblwtaG9zdGlsZTsKK+a1t+aWryA+IGhheWVzXC1cKG1pY3JvY29tcHV0ZXJcKTsKK+adseW+tyA+IFwoZm9ybWVyXClcLWVhc3RcLWdlcm1hbnk7CivmmpfnpIEgPiBzdWJtZXJnZWRcLXJlZWZcLVwocm9ja1wpOwor6LK35aW9ID4gdG9cLWluZ3JhdGlhdGVcLW9uZXNlbGY7Civmmpfnlr4gPiB1bm1lbnRpb25hYmxlXC1kaXNlYXNlOwor6IGz5YuVID4gdG9cLWNyZWF0ZVwtYVwtc2Vuc2F0aW9uOwor5p2/5YezID4gd29vZGVuXC1iZW5jaFwtb3JcLXN0b29sOwor5LiN5pqHID4gaGF2ZVwtbm9cLXRpbWVcLVwoZm9yXC1zdGg7CivmgrLmhqQgPiBncmllZlwtYW5kXC1pbmRpZ25hdGlvbjsKK+eJueeUoiA+IHNwZWNpYWxcLWxvY2FsXC1wcm9kdWN0Owor6JWt5qKdID4gXChlY29ub21pY1wpXC1kZXByZXNzaW9uOwor5q6v6JGsID4gZnVuZXJhbFwtYW5kXC1pbnRlcm1lbnQ7Civlkb3ku6QgPiBcKGFuXClcLW9yZGVyXC1vclwtY29tbWFuZDsKK+a1geS6oSA+IHRvXC1cKGZvcmNlXC1pbnRvXClcLWV4aWxlOwor5Y2R5rGhID4gZGVzcGljYWJsZVwtYW5kXC1maWx0aHk7CivmmrTljZIgPiBkaWVcLW9mXC1zdWRkZW5cLWlsbG5lc3M7CivpgLzoppYgPiBsb29rXC1hdFwtZnJvbVwtY2xvc2VcLXVwOwor5pe65pyIID4gYnVzeVwtXChidXNpbmVzc1wpXC1tb250aDsKK+WIl+i7iiA+IHRyYWluXC1cKHJhaWx3YXlcLXRlcm1cKTsKK+WPi+WlvSA+IGZyaWVuZGx5XC1cKHJlbGF0aW9uc1wpOwor5quD6YKKID4gdG9cLWxpZVwtb25cLW9uZScnc1wtc2lkZTsKK+WItuijgSA+IFwoZWNvbm9taWNcKVwtc2FuY3Rpb25zOwor56S+5LqkID4gXChzb2NpYWxcKVwtaW50ZXJhY3Rpb247Civmk43ooYwgPiBcKHN0dWRlbnQnJ3NcKVwtYmVoYXZpb3I7Civlp6Xlp6UgPiBtYXRlcm5hbFwtZ3JhbmRtb3RoZXI7Civnt6jntYQgPiBvcmdhbml6ZVwtaW50b1wtZ3JvdXBzOwor6Kaq6L+RID4gZ2V0XC1jbG9zZVwtdG9cLXNvbWVvbmU7CivntZDoq5YgPiBcKHJlYWNoXC1hXClcLWNvbmNsdXNpb247Civpl6Hov7AgPiBleHBvdW5kXC1cKGFcLXBvc2l0aW9uXCk7Civlv4Plr5IgPiBiZVwtdmVyeVwtZGlzYXBwb2ludGVkOwor57WE6KOdID4gYXNzZW1ibGVcLWFuZFwtaW5zdGFsbDsKK+iqk+atuyA+IHRvXC1wbGVkZ2VcLW9uZScnc1wtbGlmZTsKK+WfjumEiSA+IGNpdHlcLWFuZFwtY291bnRyeXNpZGU7CivljZTlrpogPiBcKHJlYWNoXC1hblwpXC1hZ3JlZW1lbnQ7CivmsLTln58gPiBcKHRlcnJpdG9yaWFsXClcLXdhdGVyczsKK+WLu+aVtCA+IG5lYXRcLWFuZFwtd2VsbFwtc3BhY2VkOwor5YWn6ZajID4gXChnb3Zlcm5tZW50XClcLWNhYmluZXQ7Civlu6DniYwgPiBicmFuZFwtXChvZlwtYVwtcHJvZHVjdFwpOwor5aW25aW2ID4gcGF0ZXJuYWxcLWdyYW5kbW90aGVyOwor57eo5qyhID4gb3JkZXJcLW9mXC1hcnJhbmdlbWVudDsKK+aVmeaOiCA+IHVuaXZlcnNpdHlcLXByb2Zlc3NvcjsKK+WLouW/hSA+IGlzXC1ib3VuZFwtdG9cLVwoaGFwcGVuXCk7CivloqjmsYEgPiBwcmVwYXJlZFwtY2hpbmVzZVwtaW5rOwor5aSn5bCHID4gYVwtZ2VuZXJhbFwtb3JcLWFkbWlyYWw7CivmsKPkurogPiB0b1wtZ2V0XC1zb21lb25lXC1hbmdyeTsKK+WMheWgtCA+IGJvb2tcLWFcLXdob2xlXC10aGVhdHJlOwor5YWt6JmfID4gNnRoXC1kYXlcLW9mXC10aGVcLW1vbnRoOwor6Kme5b2ZID4gXChsaXN0XC1vZlwpXC12b2NhYnVsYXJ5Owor5pSd5b2xID4gdG9cLXRha2VcLWFcLXBob3RvZ3JhcGg7Civovq/nmb0gPiBvZmZlclwtYW5cLWV4cGxhbmF0aW9uOwor5o6h6KiqID4gY292ZXJcLVwoYVwtbmV3c1wtc3RvcnlcKTsKK+WFteermSA+IGFybXlcLXNlcnZpY2VcLXN0YXRpb247Civou43osrsgPiBtaWxpdGFyeVwtZXhwZW5kaXR1cmU7Civmk5rmgokgPiBhY2NvcmRpbmdcLXRvXC1yZXBvcnRzOwor5YmN5bm0ID4gdGhlXC15ZWFyXC1iZWZvcmVcLWxhc3Q7Civoo5zoibIgPiBjb21wbGVtZW50YXJ5XC1jb2xvdXI7CivmlLvli6IgPiBcKG1pbGl0YXJ5XClcLW9mZmVuc2l2ZTsKK+WIhuaTlCA+IHNoYXJlXC1yZXNwb25zaWJpbGl0eTsKK+mWi+eZvCA+IGV4cGxvaXRcLVwoYVwtcmVzb3VyY2VcKTsKK+att+S7oyA+IHN1Y2Nlc3NpdmVcLWR5bmFzdGllczsKK+i/keaXpSA+IGluXC10aGVcLXBhc3RcLWZld1wtZGF5czsKK+WbnuioqiA+IFwocGF5XC1hXClcLXJldHVyblwtdmlzaXQ7Civnl4XoroogPiBwYXRob2xvZ2ljYWxcLWNoYW5nZXM7Civlh4zmmaggPiBlYXJseVwtaW5cLXRoZVwtbW9ybmluZzsKK+exoOe1sSA+IFwoaW5cKVwtZ2VuZXJhbFwtXCh0ZXJtc1wpOwor5qez54uAID4gY2VydGlmaWNhdGVcLW9mXC1tZXJpdDsKK+WAmumHjSA+IHRvXC1yZWx5XC1oZWF2aWx5XC11cG9uOwor5oqK6YWSID4gcmFpc2VcLW9uZScnc1wtd2luZVwtY3VwOwor6LuN55SoID4gXChmb3JcKVwtbWlsaXRhcnlcLVwodXNlXCk7Civkv53ph40gPiB0YWtlXC1jYXJlXC1vZlwtb25lc2VsZjsKK+WgseS7hyA+IHRvXC1yZXZlbmdlXC1cKG9uZXNlbGZcKTsKK+aKhOi6qyA+IHRvXC1zZWFyY2hcLVwoYVwtcGVyc29uXCk7Civmo4nopZYgPiBjb3R0b25cLXBhZGRlZFwtamFja2V0Owor5YSY5pepID4gYXNcLWVhcmx5XC1hc1wtcG9zc2libGU7Civln7nkv64gPiB0b1wtcmVwYWlyXC1lYXJ0aHdvcmtzOwor5bCK6YeNID4gdG9cLXZhbHVlXC1cKHNvbWV0aGluZ1wpOwor55eF54G2ID4gZm9jdXNcLVwob2ZcLWluZmVjdGlvblwpOwor5L616KWyID4gdG9cLWludmFkZVwtYW5kXC1hdHRhY2s7CivnsKHmnLQgPiBzaW1wbGVcLWFuZFwtdW5hZG9ybmVkOwor6aeB6YGLID4gdHJhbnNwb3J0XC1ieVwtbGlnaHRlcjsKK+S+i+iogCA+IGludHJvZHVjdG9yeVwtcmVtYXJrczsKK+WCmeafpSA+IGZvclwtZnV0dXJlXC1yZWZlcmVuY2U7CivlronpgLggPiBlYXN5XC1hbmRcLWNvbWZvcnRhYmxlOwor55eF5oi/ID4gd2FyZFwtXChvZlwtYVwtaG9zcGl0YWxcKTsKK+ihqOW9sCA+IGNpdGVcLVwoaW5cLWRpc3BhdGNoZXNcKTsKK+aLnOacgyA+IHBheVwtYW5cLW9mZmljaWFsXC1jYWxsOwor5bCI56iLID4gc3BlY2lhbFwtcHVycG9zZVwtdHJpcDsKK+WBveW5oyA+IGNvdW50ZXJmZWl0XC1jdXJyZW5jeTsKK+aJjeeVpSA+IGFiaWxpdHlcLWFuZFwtc2FnYWNpdHk7CivlsaTmrKEgPiBhcnJhbmdlbWVudFwtb2ZcLWlkZWFzOwor562G5rOVID4gdGVjaG5pcXVlXC1vZlwtd3JpdGluZzsKK+S6pOmAmiA+IFwoYXV0b21vYmlsZVwpXC10cmFmZmljOwor5ZWf56iLID4gc2V0XC1vdXRcLW9uXC1hXC1qb3VybmV5Owor55Wr5aCxID4gcGljdG9yaWFsXC1cKG1hZ2F6aW5lXCk7CivkvrXmk74gPiB0b1wtaW52YWRlXC1hbmRcLWhhcmFzczsKK+Wxj+W5lSA+IFwodHZcLW9yXC1tb3ZpZVwpXC1zY3JlZW47CivnkIPntrIgPiBuZXRcLVwoZm9yXC1iYWxsXC1nYW1lc1wpOwor5ryi5YyWID4gY2hpbmVzZVwtbG9jYWxpemF0aW9uOwor5bCN5bOZID4gbXV0dWFsXC1jb25mcm9udGF0aW9uOwor576O6LuNID4gdXNcLWFybXlcfGFybWVkXC1mb3JjZXM7CivkvY3mlrwgPiBiZVwtc2l0dWF0ZWRcLVwoaW5cLFwtYXRcKTsKK+iuiumguyA+IGZyZXF1ZW5jeVwtY29udmVyc2lvbjsKK+WWruWtlyA+IGluZGl2aWR1YWxcLWNoYXJhY3RlcjsKK+a4heaXqSA+IGVhcmx5XC1pblwtdGhlXC1tb3JuaW5nOwor6IOM5b+DID4gYVwtc2xlZXZlbGVzc1wtZ2FybWVudDsKK+aItuWPoyA+IHJlZ2lzdGVyZWRcLXJlc2lkZW5jZTsKK+acrOenkSA+IHVuZGVyZ3JhZHVhdGVcLWNvdXJzZTsKK+S+v+S4rSA+IGF0XC1vbmUnJ3NcLWNvbnZlbmllbmNlOwor5a+25YqNID4gYVwtZG91YmxlXC1lZGdlZFwtc3dvcmQ7Civphp7ph4AgPiBtdWxsXC1vdmVyXC1cKGFuXC1pc3N1ZVwpOwor5pqX6JmfID4gc2VjcmV0XC1zaWduYWxcLVwoc2lnblwpOwor6ICB54i6ID4gbWF0ZXJuYWxcLWdyYW5kZmF0aGVyOwor54+t5pyfID4gc2NoZWR1bGVcLVwoZm9yXC1mbGlnaHQ7CivosrfmlrkgPiBidXllclwtXChpblwtY29udHJhY3RzXCk7CivlronlqJwgPiBhbm5hXC1cKHBlcnNvbicnc1wtbmFtZVwpOwor6LKs5oiQID4gZ2l2ZVwtc29tZWJvZHlcLWFcLXRhc2s7CivlpJrpurwgPiBob3dcLVwod29uZGVyZnVsXCxcLWV0Y1wpOwor6YWs6KydID4gdG9cLXRoYW5rXC13aXRoXC1hXC1naWZ0Owor5b6A6L+UID4gdG9cLWdvXC1iYWNrXC1hbmRcLWZvcnRoOwor5YyF6YeRID4gY292ZXJcLXdpdGhcLWdvbGRcLWxlYWY7CivmmpHnhrEgPiBob3RcLVwoc3VtbWVyXClcLXdlYXRoZXI7CivkuI3mm74gPiBuZXZlclwtXChoYXZlXC1kb25lXC1zdGg7CivnuL3pg6ggPiBnZW5lcmFsXC1oZWFkcXVhcnRlcnM7CivosrblgLwgPiB0b1wtYmVjb21lXC1kZXZhbHVhdGVkOwor6YG66aq4ID4gXChkZWFkXClcLWh1bWFuXC1yZW1haW5zOwor6YG66aqoID4gXChkZWFkXClcLWh1bWFuXC1yZW1haW5zOwor6YWs562UID4gdG9cLXRoYW5rXC13aXRoXC1hXC1naWZ0Owor6aGe5o6oID4gdG9cLXJlYXNvblwtYnlcLWFuYWxvZ3k7Civlkozlpb0gPiB0b1wtYmVjb21lXC1yZWNvbmNpbGVkOwor5pys5ZyfID4gb25lJydzXC1uYXRpdmVcLWNvdW50cnk7Civkup7lgKsgPiBhYXJvblwtXChhXC1tYW4nJ3NcLW5hbWVcKTsKK+e+nuaBpSA+IFwoYVwtZmVlbGluZ1wtb2ZcKVwtc2hhbWU7Civlk4jkvZsgPiBoYXJ2YXJkXC1cKHVuaXZlcnNpdHlcKTsKK+aakeacnyA+IHN1bW1lclwtdmFjYXRpb25cLXRpbWU7CivlkbzlloogPiBzaG91dFwtXChzbG9nYW5zXCxcLWV0Y1wpOwor57m957SbID4gaW5cLXJpb3RvdXNcLXByb2Z1c2lvbjsKK+WRiOWgsSA+IHRvXC1cKHN1Ym1pdFwtYVwpXC1yZXBvcnQ7CivljYrnmb0gPiBmaWZ0eVwtXCh5ZWFyc1wtb2ZcLWFnZVwpOwor8KCBpSA+IHRoZVwtaG9ybnNcLW9mXC1hXC1zaGVlcDsKK+aYgueEtiA+IHVwcmlnaHRcLWFuZFwtdW5hZnJhaWQ7CivpgoToqqogPiB0b1wtYWRkXC1cKGluXC1zcGVha2luZ1wpOwor5pu05YqgID4gbW9yZVwtXCh0aGFuXC1zdGhcLWVsc2VcKTsKK+eIuueIuiA+IHBhdGVybmFsXC1ncmFuZGZhdGhlcjsKK+S4jeWLnSA+IGNhbm5vdFwtYmVhclwtb3JcLXN0YW5kOwor5pWX6IODID4gc3BvaWxcLW9uZScnc1wtYXBwZXRpdGU7Civororlv4MgPiBjZWFzZVwtdG9cLWJlXC1mYWl0aGZ1bDsKK+S4iuWAiyA+IGZpcnN0XC1cKG9mXC10d29cLXBhcnRzXCk7CivlpZTmtYEgPiBmbG93XC1hdFwtZ3JlYXRcLXNwZWVkOwor5pel5paHID4gamFwYW5lc2VcLVwobGFuZ3VhZ2VcKTsKK+aSnuimiyA+IHRvXC1tZWV0XC1ieVwtYWNjaWRlbnQ7Civlt67poY0gPiBiYWxhbmNlXC1cKGZpbmFuY2lhbFwpOwor5Y2K5oiqID4gaGFsZlwtXChvZlwtYVwtc2VjdGlvblwpOwor5Ymb57qUID4gXChqdXN0XClcLWFcLW1vbWVudFwtYWdvOwor5bug56SmID4gZmFjdG9yaWVzXC1hbmRcLW1pbmVzOwor54ax54OIID4gd2FybVwtXCh3ZWxjb21lXCxcLWV0Y1wpOwor6L6v6K23ID4gc3BlYWtcLWluXC1kZWZlbmNlXC1vZjsKK+Wkp+aJuSA+IGxhcmdlXC1xdWFudGl0aWVzXC1vZjsKK+e2geelqCA+IGtpZG5hcFwtXChmb3JcLXJhbnNvbVwpOwor55m96YqFID4gY29wcGVyXC1uaWNrZWxcLWFsbG95Owor57Wx56ixID4gY29sbGVjdGl2ZWx5XC1jYWxsZWQ7Civlu6LmsKMgPiB3YXN0ZVwtXChleGhhdXN0XClcLWdhczsKK+WMheWtkCA+IHN0ZWFtZWRcLXN0dWZmZWRcLWJ1bjsKK+e0heiRiSA+IHJlZFwtYXV0dW1uYWxcLWxlYXZlczsKK+eZvuiyqCA+IGdlbmVyYWxcLW1lcmNoYW5kaXNlOwor6ayi6auuID4gaGFpclwtb25cLXRoZVwtdGVtcGxlczsKK+WEmOmHjyA+IGFzXC1tdWNoXC1hc1wtcG9zc2libGU7Civouqvpq5ggPiBcKGFcLXBlcnNvbicnc1wpXC1oZWlnaHQ7CivmlZnlrbggPiB0ZWFjaGVyXC1hbmRcLXN0dWRlbnQ7CivphJnkurogPiB5b3VyXC1odW1ibGVcLXNlcnZhbnQ7CivmlYXlrq4gPiB0aGVcLWltcGVyaWFsXC1wYWxhY2U7CivmlL/lsYAgPiBwb2xpdGljYWxcLXNpdHVhdGlvbjsKK+edv+aZuiA+IHdpc2VcLWFuZFwtZmFyc2lnaHRlZDsKK+ijnOinkiA+IHN1cHBsZW1lbnRhcnlcLWFuZ2xlOwor6YCy5pS7ID4gYXR0YWNrXC1cKG1pbGl0YXJpbHlcKTsKK+aTuuW8hCA+IG1vdmVcLWJhY2tcLWFuZFwtZm9ydGg7CivpgY3luIMgPiBiZVwtZm91bmRcLWV2ZXJ5d2hlcmU7CivmlLnlkI0gPiB0b1wtY2hhbmdlXC1vbmVzXC1uYW1lOwor6KOc6ICDID4gbWFrZVwtdXBcLWV4YW1pbmF0aW9uOwor5pKt5byEID4gb3JkZXJcLXN1YmplY3RcLWFib3V0Owor5bm05bqVID4gdGhlXC1lbmRcLW9mXC10aGVcLXllYXI7CivntITmq4MgPiBhcmtcLW9mXC10aGVcLWNvdmVuYW50Owor5bmr5belID4gaGVscFwtd2l0aFwtZmFybVwtd29yazsKK+WgseW7oiA+IHJlcG9ydFwtYXNcLXdvcnRobGVzczsKK+aKrOmgrSA+IHRvXC1yYWlzZVwtb25lJydzXC1oZWFkOwor5Z+35o6MID4gd2llbGRcLVwocG93ZXJcLFwtZXRjXC5cKTsKK+WFteasiiA+IG1pbGl0YXJ5XC1sZWFkZXJzaGlwOwor6YC85L6bID4gZXh0b3J0XC1hXC1jb25mZXNzaW9uOwor6ZaL5pS+ID4gbGlmdFwtXChyZXN0cmljdGlvbnNcKTsKK+eZu+aciCA+IGdvXC1cKHVwXClcLXRvXC10aGVcLW1vb247CivluaPlgLwgPiB2YWx1ZVwtb2ZcLWFcLWN1cnJlbmN5Owor5Yaw5aC0ID4gc2thdGluZ1wtb3JcLWljZVwtcmluazsKK+ebruWJjSA+IGF0XC10aGVcLXByZXNlbnRcLXRpbWU7CivnrYbora8gPiB3cml0dGVuXC10cmFuc2xhdGlvbjsKK+ethuippiA+IHdyaXR0ZW5cLWV4YW1pbmF0aW9uOwor6Zec5YiHID4gYmVcLWRlZXBseVwtY29uY2VybmVkOwor6LWw6ZaLID4gZ2V0XC1vdXRcLW9mXC10aGVcLXdheVwhOwor6KaG5LqhID4gZmFsbFwtXChvZlwtYW5cLWVtcGlyZVwpOwor6KOB5pa3ID4gY29uc2lkZXJcLWFuZFwtZGVjaWRlOwor57SA5YWDID4gYmVnaW5uaW5nXC1vZlwtYW5cLWVyYTsKK+WFteWcmCA+IGxhcmdlXC1taWxpdGFyeVwtdW5pdDsKK+i+puS6iyA+IHRvXC1oYW5kbGVcLVwoYWZmYWlyc1wpOwor57O+5YGPID4gdG9cLWNvcnJlY3RcLWFuXC1lcnJvcjsKK+aJjeitmCA+IGFiaWxpdHlcLWFuZFwtaW5zaWdodDsKK+aMieeQhiA+IGFjY29yZGluZ1wtdG9cLXJlYXNvbjsKK+i8lOW5oyA+IGZyYWN0aW9uYWxcLWN1cnJlbmN5Owor5pCt5Ly0ID4gdHJhdmVsXC13aXRoXC1hbm90aGVyOwor5ZyL5peXID4gZmxhZ1wtXChvZlwtYVwtY291bnRyeVwpOwor6LuN5pS/ID4gYXJteVwtYW5kXC1nb3Zlcm5tZW50Owor55eF5rOBID4gc3RhdGVcLW9mXC1hblwtaWxsbmVzczsKK+i9ieWQkSA+IGNoYW5nZVwtb2ZcLWRpcmVjdGlvbjsKK+eZveWNtyA+IGJsYW5rXC1leGFtaW5lXC1wYXBlcjsKK+WFq+S7mSA+IHRoZVwtZWlnaHRcLWltbW9ydGFsczsKK+i8g+WkpyA+IGNvbXBhcmF0aXZlbHlcLWxhcmdlOwor562G566XID4gZG9cLWFcLXN1bVwtaW5cLXdyaXRpbmc7Civoo4HlpaogPiBjb25zaWRlclwtYW5kXC1kZWNpZGU7Civmj5Dlh7ogPiB0b1wtcmFpc2VcLVwoYW5cLWlzc3VlXCk7Civnmb3kurogPiB3aGl0ZVwtbWFuXC1hbmRcLXdvbWFuOwor5YGa5rOVID4gd2F5XC1vZlwtZG9pbmdcLXRoaW5nczsKK+aKveeFmSA+IHNtb2tlXC1cKGFcLWNpZ2FyZXR0ZVwpOwor6KGo5oOFID4gXChmYWNpYWxcKVwtZXhwcmVzc2lvbjsKK+ijnOWKqSA+IFwoZmluYW5jaWFsXClcLXN1YnNpZHk7CivohqDniYcgPiBcKHBob3RvZ3JhcGhpY1wpXC1maWxtOwor55eF5oOFID4gc3RhdGVcLW9mXC1hblwtaWxsbmVzczsKK+aflOmBkyA+IFwodGhlXC1zcG9ydFwtb2ZcKVwtanVkbzsKK+aOoeWItiA+IGNvbGxlY3RcLWFuZFwtcHJvY2VzczsKK+aKhOeNsiA+IHRvXC1zZWFyY2hcLWFuZFwtc2VpemU7Civooajlp5AgPiBvbGRlclwtZmVtYWxlXC1jb3VzaW47Civou5/ku7YgPiBcKGNvbXB1dGVyXClcLXNvZnR3YXJlOwor5oub5b6FID4gdG9cLXJlY2VpdmVcLVwoZ3Vlc3RzXCk7Civmi5zlubQgPiBwYXlcLWFcLW5ld1wteWVhclwtY2FsbDsKK+S6kumAmiA+IHRvXC1pbnRlcmNvbW11bmljYXRlOwor56+h5L2NID4gdG9cLXNlaXplXC10aGVcLXRocm9uZTsKK+e9t+m7nCA+IGRpc21pc3NcLWZyb21cLW9mZmljZTsKK+WxrOWvpiA+IHR1cm5cLW91dFwtdG9cLWJlXC10cnVlOwor5rS+6YGjID4gc2VuZFwtXChvblwtYVwtbWlzc2lvblwpOwor5Lim6YeNID4gbGF5XC1lcXVhbFwtc3RyZXNzXC1vbjsKK+aJjeWtuCA+IHRhbGVudFwtYW5kXC1sZWFybmluZzsKK+iAleiAmCA+IHBsb3dpbmdcLWFuZFwtd2VlZGluZzsKK+aFiOelpSA+IFwoYVwpXC1raW5kbHlcLVwocGVyc29uXCk7CivlronmqIIgPiBwZWFjZVwtYW5kXC1oYXBwaW5lc3M7CivpqJnlj5YgPiB0b1wtZ2FpblwtYnlcLWNoZWF0aW5nOwor5ra854i9ID4gY29vbFwtYW5kXC1yZWZyZXNoaW5nOwor6buo57WEID4gbGVhZGluZ1wtcGFydHlcLWdyb3VwOwor5L6L5aSWID4gXChtYWtlXC1hblwpXC1leGNlcHRpb247CivorbDpoYwgPiB0b3BpY1wtb2ZcLWRpc2N1c3Npb247Civos4fmupAgPiBcKG5hdHVyYWxcKVwtcmVzb3VyY2VzOwor5ZWG5pyDID4gY2hhbWJlclwtb2ZcLWNvbW1lcmNlOwor6LWk5a2XID4gXChmaW5hbmNpYWxcKVwtZGVmaWNpdDsKK+S4puiBryA+IHBhcmFsbGVsXC1jb25uZWN0aW9uOwor6LKh5rqQID4gZmluYW5jaWFsXC1yZXNvdXJjZXM7Civph4/oroogPiBxdWFudGl0YXRpdmVcLWNoYW5nZTsKK+iAkOeFqSA+IHBhdGllbnRcLVwoYWRqZWN0aXZlXCk7CivkuJnntrggPiBwb2x5cHJvcHlsZW5lXC1maWJyZTsKK+axuuitsCA+IFwocGFzc1wtYVwpXC1yZXNvbHV0aW9uOwor6Yyv5a2XID4gaW5jb3JyZWN0XC1jaGFyYWN0ZXI7CivkvLTllLEgPiB2b2NhbFwtYWNjb21wYW5pbWVudDsKK+itmOiyqCA+IHRvXC1rbm93XC13aGF0JydzXC13aGF0Owor5a6Y5ZOhID4gZ292ZXJubWVudFwtb2ZmaWNpYWw7CivnqJ/mgKcgPiBuYXR1cmFsXC1kaXNwb3NpdGlvbjsKK+mgkOe/kiA+IHRvXC1wcmVwYXJlXC1hXC1sZXNzb247CivmtYHmtL4gPiBzY2hvb2xcLVwob2ZcLXRob3VnaHRcKTsKK+WTgOaGkCA+IGZlZWxcLWNvbXBhc3Npb25cLWZvcjsKK+iyoeWvtiA+IG1vbmV5XC1hbmRcLXZhbHVhYmxlczsKK+iAkOW/gyA+IHBhdGllbnRcLVwoYWRqZWN0aXZlXCk7Civml6Xoqp4gPiBqYXBhbmVzZVwtXChsYW5ndWFnZVwpOwor5LqL5a6cID4gXChtYWtlXClcLWFycmFuZ2VtZW50czsKK+aVl+mhniA+IHNjdW1cLW9mXC1hXC1jb21tdW5pdHk7Civml5fooo0gPiBjaGluZXNlXC1zdHlsZVwtZHJlc3M7CivlvpDooYwgPiB3YWxrXC1zbG93bHlcLFwtc3Ryb2xsOwor6LKh5YqbID4gZmluYW5jaWFsXC1yZXNvdXJjZXM7Civol4/ml48gPiB0aWJldGFuXC1uYXRpb25hbGl0eTsKK+eFp+mhpyA+IHRha2VcLVwoZ29vZFwpXC1jYXJlXC1vZjsKK+iuk+atpSA+IFwobWFrZVwtYVwpXC1jb25jZXNzaW9uOwor6YKK6YGgID4gZmFyXC1mcm9tXC10aGVcLWNlbnRlcjsKK+aTuumXiiA+IHBhcmFkZVwtb25lJydzXC13ZWFsdGg7CivmmbTmnJcgPiBzdW5ueVwtYW5kXC1jbG91ZGxlc3M7CivmgrLlo68gPiBzb2xlbW5cLWFuZFwtc3RpcnJpbmc7CivnvbfluIIgPiBzaG9wa2VlcGVyJydzXC1zdHJpa2U7CivkuI3lpqggPiB0aGVyZVwtaXNcLW5vXC1oYXJtXC1pbjsKK+Wkp+iFuCA+IHRoZVwtbGFyZ2VcLWludGVzdGluZTsKK+S4ueWPgyA+IHNhbHZpYVwtbWlsdGlvcnJoaXphOwor6Zu26JC9ID4gd2l0aGVyZWRcLWFuZFwtZmFsbGVuOwor5b6X55+lID4gXChmaW5kXC1vdXRcLWFuZFwpXC1rbm93Owor57235a6YID4gZGlzbWlzc1wtZnJvbVwtb2ZmaWNlOwor6K6K5pWFID4gYW5cLXVuZm9yZXNlZW5cLWV2ZW50Owor5oGQ5oCVID4gXChpJydtXClcLWFmcmFpZFwtXCh0aGF0XCk7CivkuI3llY8gPiBwYXlcLW5vXC1hdHRlbnRpb25cLXRvOwor5bug6KaPID4gZmFjdG9yeVwtcmVndWxhdGlvbnM7CivpoJDlrpogPiBzY2hlZHVsZVwtaW5cLWFkdmFuY2U7CivkuI3lh6EgPiBvdXRcLW9mXC10aGVcLW9yZGluYXJ5Owor5pWX57i+ID4gYmVcLXV0dGVybHlcLWRlZmVhdGVkOwor5pq05YipID4gc3VkZGVuXC1odWdlXC1wcm9maXRzOwor572q5ZCNID4gYVwtXChjcmltaW5hbFwpXC1jaGFyZ2U7CivkuI3kuY8gPiB0aGVyZVwtaXNcLW5vXC1sYWNrXC1vZjsKK+WQiOWQjCA+IFwoYnVzaW5lc3NcKVwtY29udHJhY3Q7CivluavovqYgPiBhc3Npc3RcLWluXC1tYW5hZ2luZzsKK+mFrOaHiSA+IHNvY2lhbFwtaW50ZXJhY3Rpb247CivnhKHoq5YgPiBub1wtbWF0dGVyXC13aGF0XHxob3c7Civljp/lrpogPiBvcmlnaW5hbGx5XC1wbGFubmVkOwor6YCa6KGMID4gbGljZW5jZVwtXChjb21wdXRlclwpOwor5Y+45LukID4gY29tbWFuZGluZ1wtb2ZmaWNlcjsKK+ezvumbhiA+IHRvXC1nYXRoZXJcLXRvZ2V0aGVyOwor6YCB6KGMID4gdG9cLXNlZVwtc29tZW9uZVwtb2ZmOwor6YGV57SEID4gdG9cLWJyZWFrXC1hXC1wcm9taXNlOwor5Y2x5bGAID4gcGVyaWxvdXNcLXNpdHVhdGlvbjsKK+aSpeiZnyA+IGRpYWxcLVwoYVwtdGVsZXBob25lXCk7Civororkv64gPiBiZWNvbWVcLXJldmlzaW9uaXN0Owor6YGV56ugID4gdG9cLWJyZWFrXC10aGVcLXJ1bGVzOwor57ay566hID4gbmV0d29ya1wtbWFuYWdlbWVudDsKK+iSmeaWhyA+IG1vbmdvbGlhblwtbGFuZ3VhZ2U7CivmgKfkuqQgPiBzZXh1YWxcLWludGVyY291cnNlOwor54mp5YO5ID4gXChjb21tb2RpdHlcKVwtcHJpY2VzOwor5b6M5aSpID4gZGF5XC1hZnRlclwtdG9tb3Jyb3c7CivlpKrlubMgPiBwZWFjZVwtYW5kXC1zZWN1cml0eTsKK+efmuacmyA+IHRvXC1sb29rXC1mb3J3YXJkXC10bzsKK+WNlOWKqSA+IHByb3ZpZGVcLWFzc2lzdGFuY2U7CivmjqHpoqggPiBjb2xsZWN0XC1mb2xrXC1zb25nczsKK+aPj+mHkSA+IHRvXC1vdXRsaW5lXC1pblwtZ29sZDsKK+WKqeaVmSA+IHRlYWNoaW5nXC1hc3Npc3RhbnQ7CivlpKvlqaYgPiBhXC1cKG1hcnJpZWRcKVwtY291cGxlOwor6Iux6KqeID4gZW5nbGlzaFwtXChsYW5ndWFnZVwpOwor6YGL5rCjID4gbHVja1wtXChnb29kXC1vclwtYmFkXCk7CivmjqHpjIQgPiBjb2xsZWN0XC1hbmRcLXJlY29yZDsKK+eGiuaOjCA+IGJlYXJcLXBhd1wtXChhc1wtZm9vZFwpOwor5paw5YW1ID4gbmV3XC1cKGFybXlcKVwtcmVjcnVpdDsKK+aWg+WRvSA+IG1lZXRcLXZpb2xlbnRcLWRlYXRoOwor5aSx5LqLID4gXChoYXZlXC1hblwpXC1hY2NpZGVudDsKK+mbu+S/oSA+IHRlbGVjb21tdW5pY2F0aW9uczsKK+aNqOi6qyA+IHRvXC1naXZlXC1vbmUnJ3NcLWxpZmU7Civoip3omK0gPiBpcmlzZXNcLWFuZFwtb3JjaGlkczsKK+aUueWPoyA+IHRvXC1jb3JyZWN0XC1vbmVzZWxmOwor5pS/5YuZID4gZ292ZXJubWVudFwtYWZmYWlyczsKK+WFp+enkSA+IG1lZGljYWxcLWRlcGFydG1lbnQ7CivlhYPntKAgPiBcKGNoZW1pY2FsXClcLWVsZW1lbnQ7CivliqDlhaUgPiB0b1wtYmVjb21lXC1hXC1tZW1iZXI7CivpgbjljYAgPiBlbGVjdG9yYWxcLWRpc3RyaWN0Owor5Zyf6JGXID4gbmF0aXZlXCxcLWFib3JpZ2luYWw7Civmk43lroggPiBwZXJzb25hbFwtaW50ZWdyaXR5Owor5YKy6KaWID4gdHVyblwtdXBcLW9uZScnc1wtbm9zZTsKK+iOq+WmgiA+IGl0XC13b3VsZFwtYmVcLWJldHRlcjsKK+e1kOW4syA+IHRvXC1zZXR0bGVcLWFjY291bnRzOwor5Zub6JmVID4gYWxsXC1vdmVyXC10aGVcLXBsYWNlOwor6YGV5L6LID4gdG9cLWJyZWFrXC10aGVcLXJ1bGVzOwor5Z2m546HID4gZnJhbmtcLVwoZGlzY3Vzc2lvblwpOwor6YGL5L2cID4gdGhyZWFkXC1cKGNvbXB1dGluZ1wpOwor6YCx5YiKID4gd2Vla2x5XC1wdWJsaWNhdGlvbjsKK+S/nemnlSA+IGVzY29ydFwtdGhlXC1lbXBlcm9yOwor5YWx5pyJID4gdG9cLWhhdmVcLWFsdG9nZXRoZXI7CivloLHllpwgPiBhbm5vdW5jZVwtZ29vZFwtbmV3czsKK+i3kembuyA+IGVsZWN0cmljYWxcLWxlYWthZ2U7CivmkqXliLogPiBzcGxhc2hcLVwob2ZcLWFcLWZpc2hcKTsKK+aLnOimiyA+IHBheVwtYVwtZm9ybWFsXC12aXNpdDsKK+iLseaWhyA+IGVuZ2xpc2hcLVwobGFuZ3VhZ2VcKTsKK+WIneS4rSA+IGp1bmlvclwtaGlnaFwtc2Nob29sOwor5oqE6YGTID4gdG9cLXRha2VcLWFcLXNob3J0Y3V0Owor5ryU6KqqID4gXChkZWxpdmVyXC1hXClcLXNwZWVjaDsKK+imgeWcsCA+IHN0cmF0ZWdpY1wtbG9jYXRpb247CivovqbloLEgPiB0b1wtcnVuXC1hXC1uZXdzcGFwZXI7Civlh7rku7sgPiBzdGFydFwtaW5cLWFcLW5ld1wtam9iOwor5YWn5oOFID4gaW5zaWRlXC1pbmZvcm1hdGlvbjsKK+mWi+WxlSA+IFwoYmVnaW5cLXRvXClcLWRldmVsb3A7Civkv4Toqp4gPiBydXNzaWFuXC1cKGxhbmd1YWdlXCk7CivlsbHohbMgPiBmb290XC1vZlwtYVwtbW91bnRhaW47Civlhazlj7ggPiBcKGJ1c2luZXNzXClcLWNvbXBhbnk7Civmi4nnpaggPiBjYW1wYWlnblwtZm9yXC12b3RlczsKK+aJi+ihkyA+IHN1cmdpY2FsXC1vcGVyYXRpb247CivlhavljaYgPiB0aGVcLWVpZ2h0XC1kaWFncmFtczsKK+mrlOa6qyA+IFwoYm9keVwpXC10ZW1wZXJhdHVyZTsKK+a8guenuyA+IGRyaWZ0XC1cKGVsZWN0cmljYWxcKTsKK+WBnOa7ryA+IGJlXC1hdFwtYVwtc3RhbmRzdGlsbDsKK+WumOmCuCA+IG9mZmljaWFsXC1yZXNpZGVuY2U7Civmi5zmuLQgPiBwYXlcLWFcLWZvcm1hbFwtdmlzaXQ7Civou43lrpggPiBcKG1pbGl0YXJ5XClcLW9mZmljZXI7CivnrYbnm7QgPiBwZXJmZWN0bHlcLXN0cmFpZ2h0Owor55Si55SfID4gdG9cLWNvbWVcLWludG9cLWJlaW5nOwor6aeQ6I+vID4gc3RhdGlvbmVkXC1pblwtY2hpbmE7Civmjojlj5cgPiB0b1wtZ2l2ZVwtYW5kXC1hY2NlcHQ7Civnlqvmg4UgPiBlcGlkZW1pY1wtc2l0dWF0aW9uOwor5rex6YCgID4gYWR2YW5jZWRcLVwoc3R1ZGllc1wpOwor5o2o5ZG9ID4gdG9cLXJpc2tcLW9uZScnc1wtbGlmZTsKK+ijgeS4piA+IGN1dFwtZG93blwtYW5kXC1tZXJnZTsKK+S9v+evgCA+IFwoZGlwbG9tYXRpY1wpXC1lbnZveTsKK+iHs+WwkSA+IFwodG9cLXNheVwtdGhlXClcLWxlYXN0Owor6LK36LOjID4gYnV5aW5nXC1hbmRcLXNlbGxpbmc7CivmuKznuaogPiB0b1wtc3VydmV5XC1hbmRcLWRyYXc7Civog4zntIQgPiBicmVha1wtYW5cLWFncmVlbWVudDsKK+i3r+W+kSA+IHJvdXRlXC1cKG5ldHdvcmtpbmdcKTsKK+iIieS+iyA+IHRvXC1naXZlXC1hblwtZXhhbXBsZTsKK+S/hOaWhyA+IHJ1c3NpYW5cLVwobGFuZ3VhZ2VcKTsKK+aJjeaZuiA+IGFiaWxpdHlcLWFuZFwtd2lzZG9tOwor5omT5ouzID4gdG9cLWRvXC1zaGFkb3dib3hpbmc7CivohIjmrIIgPiBiZWF0aW5nXC1cKG9mXC1oZWFydFwpOwor6Ieq5Li7ID4gdG9cLWFjdFwtZm9yXC1vbmVzZWxmOwor5pyf6LKoID4gZnV0dXJlc1wtXChvblwtZ29vZHNcKTsKK+S+teaIqiA+IHRvXC1oYWNrXC1cKGNvbXB1dGVyXCk7CivpoK3pq64gPiBoYWlyXC1cKG9uXC10aGVcLWhlYWRcKTsKK+izqueWkSA+IGNhbGxcLWludG9cLXF1ZXN0aW9uOwor6aaW5qyhID4gZm9yXC10aGVcLWZpcnN0XC10aW1lOwor5qKG5a2QID4gd2F0Y2htYW4nJ3NcLWNsYXBwZXI7CivmsrnppIUgPiBkZWVwXC1mcmllZFwtcGFuY2FrZTsKK+azhOmcsiA+IGxlYWtcLVwoaW5mb3JtYXRpb25cKTsKK+aKleWFpSA+IHB1dFwtaW50b1wtb3BlcmF0aW9uOwor5p6Q55aRID4gdG9cLXJlc29sdmVcLWFcLWRvdWJ0Owor6JeP6KqeID4gdGliZXRhblwtXChsYW5ndWFnZVwpOwor5pyo6ICzID4gZWRpYmxlXC10cmVlXC1mdW5ndXM7Civllpjmga8gPiB0b1wtZ2FzcFwtZm9yXC1icmVhdGg7Civmo4TkuJYgPiB0b1wtbGVhdmVcLXRoaXNcLXdvcmQ7CivmhJvnqLEgPiB0ZXJtXC1vZlwtZW5kZWFybWVudDsKK+WwiOWToSA+IGFzc2lzdGFudFwtZGlyZWN0b3I7CivpoJPotrMgPiBzdGFtcFwtXChvbmUnJ3NcLWZlZXRcKTsKK+ePvuaciSA+IGN1cnJlbnRseVwtZXhpc3Rpbmc7CivpvLvmqJEgPiBicmlkZ2VcLW9mXC10aGVcLW5vc2U7Civlj4PotIogPiBkaXBsb21hdGljXC1vZmZpY2VyOwor5Lim56uLID4gZXhpc3RcLXNpZGVcLWJ5XC1zaWRlOwor6LK/5piTID4gXChjb21tZXJjaWFsXClcLXRyYWRlOwor6YWs6YWiID4gdG9cLWV4Y2hhbmdlXC10b2FzdHM7CivmtarmtowgPiBcKGVsZWN0cmljYWxcKVwtc3VyZ2U7CivkvZTlhYggPiB0b1wtdGFrZVwtcHJlY2VkZW5jZTsKK+iDjOWFiSA+IGJlXC1pblwtYVwtcG9vclwtbGlnaHQ7Civmt7HlpJwgPiB2ZXJ5XC1sYXRlXC1hdFwtbmlnaHQ7CivpnLLpnaIgPiBhcHBlYXJcLVwoaW5cLXB1YmxpY1wpOwor5ZWG5YuZID4gY29tbWVyY2lhbFwtYWZmYWlyczsKK+eMnOeWkSA+IGhhcmJvdXJcLXN1c3BpY2lvbnM7CivosrTlp5MgPiB3aGF0XC1pc1wteW91clwtbmFtZVw/Owor54yZ542wID4gbWVhblwtYW5kXC1mZXJvY2lvdXM7CivmtrLlo5MgPiBoeWRyYXVsaWNcLXByZXNzdXJlOwor6by75aGeID4gaGF2ZVwtYVwtc3R1ZmZ5XC1ub3NlOwor6bue5b+DID4gbGlnaHRcLXJlZnJlc2htZW50czsKK+acn+W+hSA+IHRvXC1sb29rXC1mb3J3YXJkXC10bzsKK+a1t+WfnyA+IHRlcnJpdG9yaWFsXC13YXRlcnM7Civmr5ToqaYgPiBoYXZlXC1hXC1jb21wZXRpdGlvbjsKK+WkluizhyA+IGZvcmVpZ25cLWludmVzdG1lbnQ7Civpm7vot68gPiBcKGVsZWN0cmljXClcLWNpcmN1aXQ7CivkuK3lsIcgPiBsaWV1dGVuYW50XC1nZW5lcmFsOwor5paH6JedID4gbGl0ZXJhdHVyZVwtYW5kXC1hcnQ7CivniYjnqIUgPiByb3lhbHR5XC1cKG9uXC1ib29rc1wpOwor5oOF5aCxID4gXChzcHlcKVwtaW50ZWxsaWdlbmNlOwor57eo6YGjID4gcmVvcmdhbml6ZVwtXCh0cm9vcHM7Civms7DlsbEgPiB0YWlzaGFuXC1cKG1vdW50YWluXCk7CivmgonlsLwgPiBzeWRuZXlcLVwoYXVzdHJhbGlhXCk7CivoloTmg4UgPiBpbmNvbnN0YW50XC1pblwtbG92ZTsKK+awkeeUqCA+IFwoZm9yXClcLWNpdmlsaWFuXC11c2U7Civnt6jora8gPiB0cmFuc2xhdGVcLWFuZFwtZWRpdDsKK+emj+WIqSA+IFwobWF0ZXJpYWxcKVwtd2VsZmFyZTsKK+WQjOWtuCA+IFwoZmVsbG93XClcLWNsYXNzbWF0ZTsKK+S4puWIlyA+IHN0YW5kXC1zaWRlXC1ieVwtc2lkZTsKK+S4jeWSjCA+IG5vdFwtZ2V0XC1hbG9uZ1wtd2VsbDsKK+S4jeWOrSA+IG5vdFwtbWluZFwtZG9pbmdcLXN0aDsKK+WPjeaEnyA+IFwoc3Ryb25nbHlcKVwtZGlzbGlrZTsKK+mHneWwjSA+IGluXC1jb25uZWN0aW9uXC13aXRoOwor5Y+m5a+EID4gdG9cLW1haWxcLXNlcGFyYXRlbHk7CivororlubsgPiBjaGFuZ2VcLWlycmVndWxhcmx5Owor5aCx6ZecID4gZGVjbGFyZVwtYXRcLWN1c3RvbXM7CivnvbLlkI0gPiBzaWduXC1cKGFcLXNpZ25hdHVyZVwpOwor6YGK6Ka9ID4gdG9cLWdvXC1zaWdodFwtc2VlaW5nOwor5aSW55WMID4gdGhlXC1vdXRzaWRlXC13b3JsZDsKK+iuiuWkqSA+IGNoYW5nZVwtb2ZcLXdlYXRoZXI7Civmr5Tmv5UgPiBzcGVjaWZpY1wtaHVtaWRpdHk7CivlvrfmlocgPiBnZXJtYW5cLVwobGFuZ3VhZ2VcKTsKK+WNkeaAryA+IG1lYW5cLWFuZFwtY293YXJkbHk7CivlhbXppqwgPiB0cm9vcHNcLWFuZFwtaG9yc2VzOwor56Kp5aOrID4gbWFzdGVyJydzXC1cKGRlZ3JlZVwpOwor55m96aqoID4gYm9uZXNcLW9mXC10aGVcLWRlYWQ7Civnhafnm7ggPiB0YWtlXC1hXC1waG90b2dyYXBoOwor55m96aOvID4gcGxhaW5cLWNvb2tlZFwtcmljZTsKK+aXpeWtkCA+IGFcLVwoY2FsZW5kYXJcKVwtZGF0ZTsKK+aVmeadkCA+IHRlYWNoaW5nXC1tYXRlcmlhbDsKK+mEsOWciyA+IGJvcmRlcmluZ1wtY291bnRyeTsKK+apn+ijvSA+IG1hY2hpbmVcLXByb2Nlc3NlZDsKK+mVt+mBlCA+IGV4dGVuZFwtYXNcLWxvbmdcLWFzOwor5YyW5aadID4gdG9cLXB1dFwtb25cLW1ha2VcLXVwOwor6Zuj5o2xID4gdHJ5aW5nXCxcLWRpZmZpY3VsdDsKK+Wkp+WxgCA+IGdlbmVyYWxcLXNpdHVhdGlvbjsKK+aVj+aEnyA+IHNlbnNpdGl2ZVwtXChpc3N1ZVwpOwor57Sh57mUID4gc3Bpbm5pbmdcLVwodGhyZWFkXCk7CivlpKflpJogPiBmb3JcLXRoZVwtbW9zdFwtcGFydDsKK+W+kuWIkSA+IFwocHJpc29uXClcLXNlbnRlbmNlOwor5pSv5oyBID4gdG9cLWJlXC1pblwtZmF2b3JcLW9mOwor57Sb57SbID4gb25lXC1hZnRlclwtYW5vdGhlcjsKK+WkluWciyA+IGZvcmVpZ25cLVwoY291bnRyeVwpOwor5o2V6aOfID4gY2F0Y2hcLWFuZFwtZmVlZFwtb247CivovJToqrIgPiBzdWJzaWRpYXJ5XC1jb3Vyc2U7CivlhavogqEgPiBlaWdodFwtXC1wYXJ0XC1lc3NheTsKK+W5s+awkSA+IFwob3JkaW5hcnlcKVwtcGVvcGxlOwor6YOK5Y2AID4gc3VidXJiYW5cLWRpc3RyaWN0Owor5YWp6ICFID4gYm90aFwtc2lkZXNcfHRoaW5nczsKK+mDqOS7vSA+IHBhcnRcLVwob2ZcLWFcLXdob2xlXCk7Civnmb3ogokgPiBwbGFpblwtYm9pbGVkXC1wb3JrOwor6YKK5aGeID4gZnJvbnRpZXJcLWZvcnRyZXNzOwor55+z5Yi7ID4gc3RvbmVcLWluc2NyaXB0aW9uOwor57eK5a+GID4gaW5zZXBhcmFibHlcLWNsb3NlOwor6YKK5Y2hID4gYm9yZGVyXC1jaGVja3BvaW50Owor57ep5ZKMID4gdG9cLWVhc2VcLVwodGVuc2lvblwpOwor57eo5Y2wID4gY29tcGlsZVwtYW5kXC1wcmludDsKK+WHseaXiyA+IHJldHVyblwtdHJpdW1waGFudDsKK+eAieiCmiA+IHRvXC1oYXZlXC1kaWFycmhvZWE7Civnmb3nnLwgPiBzdXBlcmNpbGlvdXNcLWxvb2s7CivnnLzlsJYgPiB0b1wtaGF2ZVwtZ29vZFwtZXllczsKK+WgseW4syA+IHJlbmRlclwtYW5cLWFjY291bnQ7Civoo5znmbwgPiBzdXBwbHlcLWFnYWluXC1cKHN0aDsKK+aKiumgrSA+IGxhYm91clwtY29udHJhY3RvcjsKK+Wxj+manCA+IHByb3RlY3RpdmVcLXNjcmVlbjsKK+eBq+aYnyA+IG1hcnNcLVwodGhlXC1wbGFuZXRcKTsKK+mojummrCA+IHJpZGVcLW9uXC1ob3JzZWJhY2s7CivmioTpjIQgPiB0b1wtbWFrZVwtYVwtY29weVwtb2Y7Civmj63mm4kgPiBhbm5vdW5jZVwtcHVibGljbHk7Civnl4XnqIsgPiBjb3Vyc2VcLW9mXC1kaXNlYXNlOwor55Sz6Ki0ID4gdG9cLWFwcGVhbFwtXCh0b1wtc2JcKTsKK+S+m+mcgCA+IHN1cHBseVwtYW5kXC1kZW1hbmQ7CivlnLDmrrwgPiB0aGVcLWVhcnRoJydzXC1jcnVzdDsKK+mWieW5lSA+IHRoZVwtY3VydGFpblwtZmFsbHM7Civnm5vlkI0gPiBmYW1vdXNcLXJlcHV0YXRpb247Civlt6Xlp5QgPiB3b3JraW5nXC1jb21taXR0ZWU7CivnrYboqr8gPiBcKG9mXC13cml0aW5nXClcLXRvbmU7CivlsZXopr0gPiB0b1wtcHV0XC1vblwtZGlzcGxheTsKK+eZveW4gyA+IHBsYWluXC13aGl0ZVwtY2xvdGg7Civlt6XlnLAgPiBjb25zdHJ1Y3Rpb25cLXNpdGU7Civmo5XoibIgPiBicm93blwtXCh0aGVcLWNvbG9yXCk7Civnr4fnm64gPiB0YWJsZVwtb2ZcLWNvbnRlbnRzOwor5L2P6ZmiID4gdG9cLWJlXC1pblwtaG9zcGl0YWw7CivmkI/li5UgPiBiZWF0XC1yaHl0aG1pY2FsbHk7CivmjqXlvoUgPiByZWNlaXZlXC1cKGFcLXZpc2l0XCk7CivlhbXlipsgPiBtaWxpdGFyeVwtc3RyZW5ndGg7Civlhazli5kgPiBvZmZpY2lhbFwtYnVzaW5lc3M7Civmi5jnlZkgPiBkZXRhaW5cLVwocHJpc29uZXJcKTsKK+aMqOasoSA+IG9uZVwtYWZ0ZXJcLWFub3RoZXI7CivlhazkvYggPiBwdWJsaWNseVwtYW5ub3VuY2U7CivlhafkuoIgPiBpbnRlcm5hbFwtZGlzb3JkZXI7CivooZvmmJ8gPiBcKHNwYWNlXClcLXNhdGVsbGl0ZTsKK+aLjeeFpyA+IHRvXC10YWtlXC1hXC1waWN0dXJlOwor55eF5pWFID4gZGllXC1vZlwtYW5cLWlsbG5lc3M7CivooZ3mk4ogPiBcKGJlXC11bmRlclwpXC1hdHRhY2s7CivplbfkuYUgPiBcKGZvclwtYVwpXC1sb25nXC10aW1lOwor6YyE6Z+zID4gXChzb3VuZFwpXC1yZWNvcmRpbmc7Civkv53npZAgPiBibGVzc1wtYW5kXC1wcm90ZWN0Owor5o235aCxID4gcmVwb3J0XC1vZlwtc3VjY2VzczsKK+WcmOWckyA+IHRvXC1oYXZlXC1hXC1yZXVuaW9uOwor5o6I5YubID4gdG9cLWF3YXJkXC1hblwtaG9ub3I7Civlk4Dps7QgPiBhXC1wbGFpbnRpdmVcLXdoaW5lOwor5oeC6KGMID4gdG9cLWtub3dcLXRoZVwtcm9wZXM7Civou43ljYAgPiBhXC1taWxpdGFyeVwtcmVnaW9uOwor5L+d54i+ID4gXChhXC1wZXJzb25hbFwtbmFtZVwpOwor6LKh6ZalID4gZmluYW5jaWFsXC1tYWduYXRlOwor5ouN5pSdID4gXChzaG9vdFwtYVwpXC1waWN0dXJlOwor6ICD6amXID4gXChwdXRcLXRvXC10aGVcKVwtdGVzdDsKK+S/nea6qyA+IGhlYXRcLXByZXNlcnZhdGlvbjsKK+Wxj+awoyA+IGhvbGRcLW9uZScnc1wtYnJlYXRoOwor56if6LOmID4gbmF0dXJhbFwtZW5kb3dtZW50Owor55eF5Y2xID4gYmVcLWNyaXRpY2FsbHlcLWlsbDsKK+S9teeZvCA+IGJlXC1jb21wbGljYXRlZFwtYnk7CivosqHosr8gPiBmaW5hbmNlXC1hbmRcLXRyYWRlOwor5ryi5a2XID4gY2hpbmVzZVwtY2hhcmFjdGVyOwor5a6J56mpID4gc21vb3RoXC1hbmRcLXN0ZWFkeTsKK+WwiOalrSA+IHNwZWNpYWxpemVkXC1maWVsZDsKK+Wxj+aBryA+IGhvbGRcLW9uZScnc1wtYnJlYXRoOwor6Lao5pmCID4gdG9cLWZvbGxvd1wtZmFzaGlvbjsKK+S7jeiIiiA+IHN0aWxsXC1cKHJlbWFpbmluZ1wpOwor5ouX5Y+jID4gaGFyZFwtdG9cLXByb25vdW5jZTsKK+WWmOawoyA+IHRvXC1icmVhdGhlXC1kZWVwbHk7Civmi5zlgJIgPiBwcm9zdHJhdGVcLW9uZXNlbGY7CivmiY3mgJ0gPiBpbWFnaW5hdGl2ZVwtcG93ZXI7Civms6Lpn7MgPiBib2VpbmdcLVwoYWlyY3JhZnRcKTsKK+S9nOalrSA+IHNjaG9vbFwtYXNzaWdubWVudDsKK+m8k+iIniA+IGhlYXJ0ZW5pbmdcLVwobmV3c1wpOwor5qGI5oOFID4gZGV0YWlsc1wtb2ZcLWFcLWNhc2U7CivosqHnpZ4gPiB0aGVcLWdvZFwtb2ZcLXdlYWx0aDsKK+WxleWHuiA+IHRvXC1wdXRcLW9uXC1kaXNwbGF5Owor54++54uAID4gY3VycmVudFwtc2l0dWF0aW9uOwor5bCP5aCxID4gdGFibG9pZFwtbmV3c3BhcGVyOwor5pyd6IGWID4gbWFrZVwtYVwtcGlsZ3JpbWFnZTsKK+S/neWBpSA+IGhlYWx0aFwtcHJvdGVjdGlvbjsKK+a3q+awtCA+IHNleHVhbFwtc2VjcmV0aW9uczsKK+Wwi+WRsyA+IHRvXC10aGlua1wtc3RoXC1vdmVyOwor5p2/54WZID4gcGx1Z1wtXChvZlwtdG9iYWNjb1wpOwor5rOo6KaWID4gd2F0Y2hcLWF0dGVudGl2ZWx5Owor5rOV6KqeID4gZnJlbmNoXC1cKGxhbmd1YWdlXCk7Civnjajnq4sgPiB0b1wtYmVcLWluZGVwZW5kZW50Owor6LWw5Ye6ID4gdG9cLW1vdmVcLWF3YXlcLWZyb207CivogbLmj7QgPiBzdXBwb3J0XC1cKGFcLWNhdXNlXCk7CivnpKbol48gPiBtaW5lcmFsXC1yZXNvdXJjZXM7Civlr6vkv6EgPiB0b1wtd3JpdGVcLWFcLWxldHRlcjsKK+S4iee2rSA+IHRocmVlXC1kaW1lbnNpb25hbDsKK+eptOWxhSA+IHRvXC1saXZlXC1pblwtYVwtY2F2ZTsKK+eLgOiqniA+IGFkdmVyYmlhbFwtYWRqdW5jdDsKK+mFrOmHkSA+IFwobW9uZXRhcnlcKVwtcmV3YXJkOwor6LKh5pS/ID4gZmluYW5jZXNcLVwocHVibGljXCk7CivlronljbEgPiBzYWZldHlcLWFuZFwtZGFuZ2VyOwor5ZCN56ixID4gbmFtZVwtXChvZlwtYVwtdGhpbmdcKTsKK+eJqeizqiA+IFwocGh5c2ljYWxcKVwtbWF0dGVyOwor5ZCD56m/ID4gZm9vZFwtYW5kXC1jbG90aGluZzsKK+eptOS9jSA+IGFjdXB1bmN0dXJlXC1wb2ludDsKK+WtuOS9jSA+IGVkdWNhdGlvbmFsXC1sZXZlbDsKK+W+t+iqniA+IGdlcm1hblwtXChsYW5ndWFnZVwpOwor5ZCE55WMID4gYWxsXC13YWxrc1wtb2ZcLWxpZmU7CivogLPlrZAgPiBoYW5kbGVcLVwob25cLWFcLXBvdFwpOwor5oCd57atID4gXChsaW5lXC1vZlwpXC10aG91Z2h0Owor5Lul5YWNID4gaW5cLW9yZGVyXC10b1wtYXZvaWQ7Civkuovlr6YgPiBcKHRoZVwpXC1mYWN0XC1cKHRoYXRcKTsKK+acrOaApyA+IG5hdHVyYWxcLWluc3RpbmN0czsKK+mbo+mhjCA+IGRpZmZpY3VsdFwtcHJvYmxlbTsKK+iuiuebuCA+IGluXC1kaXNndWlzZWRcLWZvcm07CivosqHli5kgPiBmaW5hbmNpYWxcLWFmZmFpcnM7CivmnI3lvbkgPiBzZXJ2ZVwtaW5cLXRoZVwtYXJteTsKK+mGq+eZgiA+IG1lZGljYWxcLXRyZWF0bWVudDsKK+aVrOmHjSA+IHRvXC1yZXNwZWN0XC1kZWVwbHk7CivmmpfmsrMgPiB1bmRlcmdyb3VuZFwtcml2ZXI7CivpoLjmpI4gPiBjZXJ2aWNhbFwtdmVydGlicmE7CivntrLpu54gPiBub2RlXC1pblwtYVwtbmV0d29yazsKK+m7keWuoiA+IGhhY2tlclwtXChjb21wdXRlclwpOwor57qW6IqvID4gY29yZVwtXChvZlwtYVwtZmliZXJcKTsKK+e3qOmaiiA+IGZvcm1cLWludG9cLWNvbHVtbnM7CivmlZfpgIAgPiByZXRyZWF0XC1pblwtZGVmZWF0Owor5pys5ZyLID4gb25lJydzXC1vd25cLWNvdW50cnk7Civms5XmlocgPiBmcmVuY2hcLVwobGFuZ3VhZ2VcKTsKK+iqnuiogCA+IFwoc3Bva2VuXClcLWxhbmd1YWdlOwor5LiN5bGRID4gZGlzZGFpblwtdG9cLWRvXC1zdGg7CivljYrnpaggPiBoYWxmXC1wcmljZVwtdGlja2V0Owor542o5ZSxID4gXChpblwtc2luZ2luZ1wpXC1zb2xvOwor56eB5Lq6ID4gcHJpdmF0ZVwtXChjaXRpemVuXCk7CivnjbLlh4YgPiBvYnRhaW5cLXBlcm1pc3Npb247CivmrIrpkbAgPiBrZXlzXC1vZlwtYXV0aG9yaXR5Owor54iG566hID4gY2FydHJpZGdlXC1pZ25pdGVyOwor56Sm5bqKID4gXChtaW5lcmFsXClcLWRlcG9zaXQ7CivmraLooYAgPiBzdGFuY2hcLVwoYmxlZWRpbmdcKTsKK+WQjeWtlyA+IFwoYVwtcGVyc29uJydzXClcLW5hbWU7Civlj7DluaMgPiBuZXdcLXRhaXdhblwtZG9sbGFyOwor6aGn5Y+KID4gdGFrZVwtaW50b1wtYWNjb3VudDsKK+S4i+WOuyA+IGdvXC1kb3duXC1cKGRlc2NlbmRcKTsKK+WLu+eosSA+IHdlbGxcLXByb3BvcnRpb25lZDsKK+S4jeWKmyA+IG5vdFwtZG9cLW9uZScnc1wtYmVzdDsKK+mBk+isnSA+IHRvXC1leHByZXNzXC10aGFua3M7CivnoZ3nhZkgPiBzbW9rZVwtXChmcm9tXC1ndW5zXCk7Civol53kurogPiBwZXJmb3JtaW5nXC1hcnRpc3Q7CivmlZnnt7QgPiBcKGF0aGxldGUnJ3NcKVwtY29hY2g7Civlh7rpmaIgPiB0b1wtbGVhdmVcLWhvc3BpdGFsOwor6Zi/6YeMID4gYWxpXC1cKHByb3BlclwtbmFtZVwpOwor6ZmE6L+RID4gXChpblwtdGhlXClcLXZpY2luaXR5Owor54mM5qiTID4gZGVjb3JhdGVkXC1hcmNod2F5Owor54i25q+NID4gZmF0aGVyXC1hbmRcLW1vdGhlcjsKK+ejqOWtkCA+IG1pbGxcLFwtbWlsbHN0b25lczsKK+WQjuS6uiA+IGxhdGVyXC1nZW5lcmF0aW9uOwor6K2Y5a2XID4gdG9cLWxlYXJuXC10b1wtcmVhZDsKK+W/g+W+lyA+IGtub3dsZWRnZVwtZ2FpbmVkOwor5rGC5amaID4gcHJvcG9zZVwtbWFycmlhZ2U7Civnt6jnm64gPiBtYWtlXC1hXC1jYXRhbG9ndWU7Civpm7vmtYEgPiBlbGVjdHJpY1wtY3VycmVudDsKK+WfjumOriA+IGNpdGllc1wtYW5kXC10b3duczsKK+WnlOWToSA+IGNvbW1pdHRlZVwtbWVtYmVyOwor5aOB55WrID4gbXVyYWxcLVwocGFpbnRpbmdcKTsKK+Wnk+WQjSA+IG5hbWVcLWFuZFwtc3VybmFtZTsKK+aYr+WQpiA+IHdoZXRoZXJcLVwob3JcLW5vdFwpOwor57i95qmfID4gY2VudHJhbFwtZXhjaGFuZ2U7CivpgY7nqIsgPiBjb3Vyc2VcLW9mXC1ldmVudHM7CivnhornjLQgPiBhc3NhbWVzZVwtbWFjYXF1ZTsKK+Wkp+acgyA+IGdlbmVyYWxcLWFzc2VtYmx5Owor5Z+66Kq/ID4gXChzcGVlY2hcKVwta2V5bm90ZTsKK+iqpOacgyA+IHRvXC1taXN1bmRlcnN0YW5kOwor6KiC56WoID4gdG9cLWlzc3VlXC10aWNrZXRzOwor5aO95qGDID4gYmlydGhkYXlcLXBlYWNoZXM7Civlt7TosYYgPiBcKHB1cmdpbmdcKVwtY3JvdG9uOwor5aO95pifID4gZ29kXC1vZlwtbG9uZ2V2aXR5Owor5YWl6L+3ID4gdG9cLWJlXC1mYXNjaW5hdGVkOwor5piO5LujID4gdGhlXC1taW5nXC1keW5hc3R5Owor6YCA56WoID4gYm91bmNlXC1cKGFcLWNoZWNrXCk7CivnuYPlrZAgPiBlbWJyb2lkZXJ5XC1mcmFtZTsKK+W+l+WHuiA+IG9idGFpblwtXChyZXN1bHRzXCk7CivlhY3osrsgPiBmcmVlXC1cKG9mXC1jaGFyZ2VcKTsKK+mBsuaariA+IHBhc3RcLW9uZScnc1wtcHJpbWU7CivntrLmqYsgPiBcKG5ldHdvcmtcKVwtYnJpZGdlOwor5YiX54K6ID4gYmVcLWNsYXNzaWZpZWRcLWFzOwor5ZyL6ZiyID4gbmF0aW9uYWxcLWRlZmVuY2U7CivmlYXlsYUgPiBmb3JtZXJcLXJlc2lkZW5jZTsKK+WJveaCjSA+IHN3aWZ0XC1hbmRcLWZpZXJjZTsKK+atpuWumCA+IG1pbGl0YXJ5XC1hdHRhY2hlOwor6YGV5oayID4gdW5jb25zdGl0dXRpb25hbDsKK+WLnuWLlSA+IFwocGh5c2ljYWxcKVwtbGFib3I7CivngrrnlJ8gPiB0b1wtbWFrZVwtYVwtbGl2aW5nOwor5YWs576KID4gcmFtXC1cKG1hbGVcLXNoZWVwXCk7CivoiLnpmoogPiBmbGVldFwtXChvZlwtc2hpcHNcKTsKK+W7o+W3niA+IGd1YW5nemhvdVwtXChjaXR5XCk7Civpm7vlipsgPiBlbGVjdHJpY2FsXC1wb3dlcjsKK+ijnOihgCA+IGVucmljaFwtdGhlXC1ibG9vZDsKK+eHiOWFiSA+IFwoc3RhZ2VcKVwtbGlnaHRpbmc7CivpgI/mlK8gPiBcKGJhbmtcKVwtb3ZlcmRyYWZ0Owor6L+05peLID4gbWFuZXV2ZXJpbmdcLXJvb207Civnmb3no7cgPiB3aGl0ZVwtcGhvc3Bob3J1czsKK+WgseaNtyA+IHJlcG9ydFwtYVwtc3VjY2VzczsKK+ioquWVjyA+IHBheVwtYVwtdmlzaXRcLVwodG9cKTsKK+mZpOWklSA+IFwobmV3XC15ZWFyJydzXClcLWV2ZTsKK+i+puahiCA+IHRvXC1oYW5kbGVcLWFcLWNhc2U7CivoqILllq4gPiBcKHB1cmNoYXNlXClcLW9yZGVyOwor6I+v5YORID4gb3ZlcnNlYXNcLWNoaW5lc2U7Civmu5HpvKAgPiBtb3VzZVwtXChjb21wdXRlclwpOwor55eF6I+MID4gaGFybWZ1bFwtYmFjdGVyaWE7CivpgLLkv64gPiBhZHZhbmNlZFwtc3R1ZGllczsKK+mVt+axnyA+IGNoYW5namlhbmdcLXJpdmVyOwor562G6aCtID4gYWJpbGl0eVwtdG9cLXdyaXRlOwor5bm+5Y2DID4gc2V2ZXJhbFwtdGhvdXNhbmQ7CivliLDkuoYgPiBpblwtXChhXC1wYXN0XC10aW1lXCk7CivloLHlkI0gPiBlbnRlclwtb25lJydzXC1uYW1lOwor5Ye65ZCNID4gd2VsbFwta25vd25cLVwoZm9yXCk7CivmjojnjY4gPiB0b1wtYXdhcmRcLWFcLXByaXplOwor6auU6IKyID4gcGh5c2ljYWxcLWN1bHR1cmU7CivmvKLoqp4gPiBjaGluZXNlXC1sYW5ndWFnZTsKK+WFteW9uSA+IG1pbGl0YXJ5XC1zZXJ2aWNlOwor55Wi6IKWID4gcmVzZW1ibGVcLWNsb3NlbHk7CivltKnmvI8gPiB1dGVyaW5lXC1ibGVlZGluZzsKK+WGl+WToSA+IGV4Y2Vzc1wtcGVyc29ubmVsOwor5YW15aOrID4gb3JkaW5hcnlcLXNvbGRpZXI7CivopoHkurogPiBpbXBvcnRhbnRcLXBlcnNvbjsKK+aOoeaThyA+IHNlbGVjdFwtYW5kXC1hZG9wdDsKK+i4qee3miA+IHN0ZXBcLW9uXC10aGVcLWxpbmU7CivnmbHlrZAgPiBwYXJhbHl6ZWRcLXBlcnNvbjsKK+W3qOWMoCA+IG1hc3RlclwtY3JhZnRzbWFuOwor6Zax5YW1ID4gdG9cLXJldmlld1wtdHJvb3BzOwor5YKy5rCjID4gYWlyXC1vZlwtYXJyb2dhbmNlOwor5L6/6KGjID4gY2l2aWxpYW5cLWNsb3RoZXM7CivlsIvoqKogPiB0b1wtaW5xdWlyZVwtYWZ0ZXI7Civlr7bosp0gPiB0cmVhc3VyZWRcLW9iamVjdDsKK+mWseS4liA+IHRvXC1zZWVcLXRoZVwtd29ybGQ7CivnsKHmmI4gPiBzaW1wbGVcLWFuZFwtY2xlYXI7CivlronpoJMgPiBmaW5kXC1hXC1wbGFjZVwtZm9yOwor5YWs5YWsID4gaHVzYmFuZCcnc1wtZmF0aGVyOwor5L6L6KqeID4gZXhhbXBsZVwtc2VudGFuY2U7CivploPkuq4gPiBicmlsbGlhbnRcLFwtc2hpbnk7CivlnYfli6IgPiBiYWxhbmNlXC1vZlwtcG93ZXI7Civkv53nlZkgPiBjb250aW51ZVwtdG9cLWhhdmU7CivkurrpoK0gPiBudW1iZXJcLW9mXC1wZW9wbGU7CivmjqXkurogPiB0b1wtbWVldFwtYVwtcGVyc29uOwor5ZyL5YqbID4gYVwtbmF0aW9uJydzXC1wb3dlcjsKK+aJrua8lCA+IHBsYXlcLXRoZVwtcGFydFwtb2Y7Civnl4Xlm6AgPiBjYXVzZVwtb2ZcLWRpc2Vhc2U7Civou43kuosgPiBtaWxpdGFyeVwtYWZmYWlyczsKK+S9lOe3miA+IGJ1c3lcLVwodGVsZXBob25lXCk7CivlsbHmnZEgPiBtb3VudGFpblwtdmlsbGFnZTsKK+WxrOaWvCA+IGJlXC1jbGFzc2lmaWVkXC1hczsKK+aLkOW9jiA+IHRvXC10dXJuXC1hXC1jb3JuZXI7Civnl4Xljp8gPiBjYXVzZVwtb2ZcLWRpc2Vhc2U7CivogZroroogPiBcKG51Y2xlYXJcKVwtZnVzaW9uOwor6KGo5YaKID4gc3RhdGlzdGljYWxcLWZvcm07Civlr6nnkIYgPiB0b1wtaGVhclwtXChhXC1jYXNlXCk7CivmioTmnKwgPiBoYW5kd3JpdHRlblwtY29weTsKK+Wuiee9riA+IGZpbmRcLWFcLXBsYWNlXC1mb3I7CivoiJTlkK4gPiB0b1wtbGlja1wtYW5kXC1zdWNrOwor5L6/5qmLID4gdGVtcG9yYXJ5XC1icmlkZ2U7CivnrYbmiLAgPiB3cml0dGVuXC1wb2xlbWljczsKK+S+v+acjSA+IGV2ZXJ5ZGF5XC1jbG90aGVzOwor5oSf6KydID4gXChleHByZXNzXClcLXRoYW5rczsKK+S4i+mmrCA+IGRpc21vdW50XC1hXC1ob3JzZTsKK+WuieecoCA+IHNsZWVwXC1wZWFjZWZ1bGx5Owor5bGk5bGkID4gbGF5ZXJcLXVwb25cLWxheWVyOwor562G5bi9ID4gdGhlXC1jYXBcLW9mXC1hXC1wZW47CivosrbnvqkgPiBkZXJvZ2F0b3J5XC1zZW5zZTsKK+S9nOazlSA+IGNvdXJzZVwtb2ZcLWFjdGlvbjsKK+a8lOWToSA+IGFjdG9yXC1vclwtYWN0cmVzczsKK+mRkuWIpSA+IHRvXC1kaWZmZXJlbnRpYXRlOwor5L+d5a+GID4gbWFpbnRhaW5cLXNlY3JlY3k7CivnrYblpZcgPiB0aGVcLWNhcFwtb2ZcLWFcLXBlbjsKK+WAn+WKqSA+IHRvXC1nZXRcLWhlbHBcLWZyb207CivnlJjlnLAgPiBcKG1haGF0bWFcKVwtZ2FuZGhpOwor5rOo6YeNID4gcGF5XC1hdHRlbnRpb25cLXRvOwor5oe45o6bID4gXChjYXJcKVwtc3VzcGVuc2lvbjsKK+S4jeisnSA+IGRvbicndFwtbWVudGlvblwtaXQ7CivmnKznvqkgPiBvcmlnaW5hbFwtbWVhbmluZzsKK+S8tOaYnyA+IGNvbXBhbmlvblwtXChzdGFyXCk7Civkv53lhaggPiBzYXZlXC1mcm9tXC1kYW1hZ2U7CivmioTku7YgPiBkdXBsaWNhdGVcLVwoY29weVwpOwor57236KqyID4gc3R1ZGVudCcnc1wtc3RyaWtlOwor6YeN6YeNID4gbGF5ZXJcLXVwb25cLWxheWVyOwor5oeJ5oiwID4gZmFjZVwtYVwtY2hhbGxlbmdlOwor5qC45aiBID4gbnVjbGVhclwtc3RyZW5ndGg7CivomZznjbIgPiBjYXB0dXJlXC1cKHBlb3BsZVwpOwor5pys56WoID4gY2FzaGllcicnc1wtY2hlcXVlOwor5L6L5Y+lID4gZXhhbXBsZVwtc2VudGFuY2U7Civlronlvr0gPiBhbmh1aVwtXChwcm92aW5jZVwpOwor6JOW6bq7ID4gY2FzdG9yXC1vaWxcLXBsYW50Owor56uZ5Y+wID4gcmFpbHdheVwtcGxhdGZvcm07CivnkIbmnIMgPiBwYXlcLWF0dGVudGlvblwtdG87CivnjbLnm4ogPiBvYnRhaW5cLWFcLWJlbmVmaXQ7Civku4rmmJQgPiBwYXN0XC1hbmRcLXByZXNlbnQ7Civmnb/moJcgPiBjaGluZXNlXC1jaGVzdG51dDsKK+WQuOeuoSA+IFwoZHJpbmtpbmdcKVwtc3RyYXc7CivkurrmlbggPiBudW1iZXJcLW9mXC1wZW9wbGU7Civlrrbli5kgPiBob3VzZWhvbGRcLWR1dGllczsKK+awkemWkyA+IGFtb25nXC10aGVcLXBlb3BsZTsKK+WpmuemriA+IHdlZGRpbmdcLWNlcmVtb255Owor6K2m6KGbID4gXChzZWN1cml0eVwpXC1ndWFyZDsKK+S5vuadryA+IHRvXC1kcmlua1wtYVwtdG9hc3Q7CivnjL/njLQgPiBhcGVzXC1hbmRcLW1vbmtleXM7CivkuKbmv4AgPiBzaHVudFwtZXhjaXRhdGlvbjsKK+mHj+e2sSA+IGRpbWVuc2lvblwtXCh1bml0XCk7Civos6rllY8gPiBcKGFza1wtYVwpXC1xdWVzdGlvbjsKK+iSkOmbhiA+IHRvXC1nYXRoZXJcLVwoZGF0YVwpOwor5pqR55ifID4gdHJvcGljYWxcLWRpc2Vhc2U7CivljZropr0gPiByZWFkXC1leHRlbnNpdmVseTsKK+a3seWFpSA+IHBlbmV0cmF0ZVwtZGVlcGx5Owor5Li55qGCID4gb3JhbmdlXC1vc21hbnRodXM7Civmnb/lo4EgPiB3b29kZW5cLXBhcnRpdGlvbjsKK+afkOS6uiA+IGFcLWNlcnRhaW5cLXBlcnNvbjsKK+aciOabhiA+IG1vbnRobHlcLWNhbGVuZGFyOwor5rK755eFID4gdHJlYXRcLWFuXC1pbGxuZXNzOwor5Y2B6KqhID4gdGVuXC1jb21tYW5kbWVudHM7CivlpJbplbcgPiBmb3JlaWduXC1taW5pc3RlcjsKK+mFjeiXpSA+IGRpc3BlbnNlXC1cKGRydWdzXCk7CivlrZfkuLIgPiBjaGFyYWN0ZXJcLXN0cmluZzsKK+S4reaWhyA+IGNoaW5lc2VcLWxhbmd1YWdlOwor5aSn6YG4ID4gZ2VuZXJhbFwtZWxlY3Rpb247CivllJDku6MgPiB0aGVcLXRhbmdcLWR5bmFzdHk7CivmgKfnl4UgPiB2ZW5lcmVhbFwtZGlzZWFzZTsKK+WQm+asiiA+IG1vbmFyY2hpYWxcLXBvd2VyOwor6JeP5paHID4gdGliZXRhblwtbGFuZ3VhZ2U7CivoroDniakgPiByZWFkaW5nXC1tYXRlcmlhbDsKK+mCiumYsiA+IGZyb250aWVyXC1kZWZlbmNlOwor5ZCR5p2xID4gdG93YXJkc1wtdGhlXC1lYXN0Owor6ZuG6YymID4gYmVzdFwtb2ZcLXRoZVwtYmVzdDsKK+e9t+aVmSA+IHRlYWNoZXInJ3NcLXN0cmlrZTsKK+WkluiqniA+IGZvcmVpZ25cLWxhbmd1YWdlOwor6Kqy6KGoID4gc2Nob29sXC10aW1ldGFibGU7CivoqqTop6MgPiBtaXN1bmRlcnN0YW5kaW5nOwor5ZCM5pmCID4gYXRcLXRoZVwtc2FtZVwtdGltZTsKK+S4jeW/mSA+IHRoZXJlJydzXC1ub1wtaHVycnk7Civpm4bpg7UgPiBzdGFtcFwtY29sbGVjdGluZzsKK+W7oOmVtyA+IGZhY3RvcnlcLWRpcmVjdG9yOwor6K6K5rOVID4gcG9saXRpY2FsXC1yZWZvcm07Civms6LmipggPiB0d2lzdHNcLWFuZFwtdHVybnM7CivnvqTls7YgPiBncm91cFwtb2ZcLWlzbGFuZHM7Civniq/ms5UgPiB0b1wtYnJlYWtcLXRoZVwtbGF3Owor5LiN5bCRID4gbm90XC1cKGp1c3RcKVwtYVwtZmV3Owor5bm06b2hID4gXChhXC1wZXJzb24nJ3NcKVwtYWdlOwor5q+U57+8ID4gZmx5XC13aW5nXC10b1wtd2luZzsKK+elnuWlhyA+IG1hZ2ljYWxcLW15c3RpY2FsOwor56aB5ZOBID4gY29udHJhYmFuZFwtZ29vZHM7CivmnIDlhYggPiBcKHRoZVwpXC12ZXJ5XC1maXJzdDsKK+WphuWutiA+IGh1c2JhbmQnJ3NcLWZhbWlseTsKK+aYjua3qCA+IGJyaWdodFwtYW5kXC1jbGVhbjsKK+mHjeaFtiA+IGNob25ncWluZ1wtXChjaXR5XCk7CivlqYblqYYgPiBodXNiYW5kJydzXC1tb3RoZXI7CivlkIPlrowgPiB0b1wtZmluaXNoXC1lYXRpbmc7CivpgLzov5EgPiBwcmVzc1wtb25cLXRvd2FyZHM7CivloLHppKggPiBuZXdzcGFwZXJcLW9mZmljZTsKK+mbu+e6nCA+IFwoZWxlY3RyaWNcKVwtY2FibGU7Civni4DmhYsgPiBzdGF0ZVwtb2ZcLWFmZmFpcnM7CivkuK3ku4sgPiBhZ2VudFwtXChjb21wdXRlclwpOwor5LiN5YWJID4gbm90XC10aGVcLW9ubHlcLW9uZTsKK+aakeWkqSA+IGhvdFwtXChzdW1tZXJcKVwtZGF5Owor6I+v6KqeID4gY2hpbmVzZVwtbGFuZ3VhZ2U7CivkuI3lg4UgPiBub3RcLXRoZVwtb25seVwtb25lOwor5Y+N5bCNID4gdG9cLWZpZ2h0XC1hZ2FpbnN0Owor5LiN5LmFID4gbm90XC1sb25nXC1cKGFmdGVyXCk7CivlpKnniLYgPiBoZWF2ZW5seVwtZmF0aGVyOwor54m55b61ID4gY2hhcmFjdGVyaXN0aWNzOwor5pqR5YGHID4gc3VtbWVyXC12YWNhdGlvbjsKK+aTuuiEqyA+IGJyZWFrXC1hd2F5XC1mcm9tOwor5Y2K5pW4ID4gaGFsZlwtdGhlXC1udW1iZXI7CivlhrDpnJwgPiBtb3JhbFwtaW50ZWdyaXR5Owor5Yu75rqcID4gZXZlblwtYW5kXC1zbW9vdGg7Civljp/lp5QgPiB0aGVcLXdob2xlXC1zdG9yeTsKK+eJueWvqyA+IGZlYXR1cmVcLWFydGljbGU7CivmmKXlpKkgPiBzcHJpbmdcLVwoc2Vhc29uXCk7CivmraLnl5sgPiB0b1wtcmVsaWV2ZVwtcGFpbjsKK+WPm+S6giA+IGFybWVkXC1yZWJlbGxpb247CivmlofmqpQgPiBcKGNvbXB1dGVyXClcLWZpbGU7Civnt6znlLggPiBteWFubWFyXC1cKGJ1cm1hXCk7CivlpLHmnJsgPiBiZVwtZGlzYXBwb2ludGVkOwor57ay56uZID4gbmV0d29ya1wtc3RhdGlvbjsKK+mWi+mWgCA+IG9wZW5cLVwodGhlXClcLWRvb3I7CivntpPnrqEgPiBiZVwtaW5cLWNoYXJnZVwtb2Y7CivljYrlpKkgPiBoYWxmXC1vZlwtdGhlXC1kYXk7Civoqp7ml48gPiBsYW5ndWFnZVwtYnJhbmNoOwor5b6A5bm0ID4gaW5cLWZvcm1lclwteWVhcnM7Civml6XloLEgPiBkYWlseVwtbmV3c3BhcGVyOwor5YWJ6Zu7ID4gb3B0b1wtZWxlY3RyaWNhbDsKK+iqnuaUryA+IGxhbmd1YWdlXC1icmFuY2g7Civnmb3pkLUgPiBnYWx2YW5pemVkXC1pcm9uOwor6ZuF5q2MID4gc29uZ1wtb2ZcLXNvbG9tb247CivlvbzlsrggPiB0aGVcLW90aGVyXC1zaG9yZTsKK+mFjeWQiCA+IGNvb3JkaW5hdGVcLXdpdGg7CivloLHns7sgPiBuZXdzcGFwZXJcLWNoYWluOwor5qiZ6YePID4gc2NhbGFyXC1xdWFudGl0eTsKK+WNl+WMlyA+IG5vcnRoXC1hbmRcLXNvdXRoOwor5q+U5a65ID4gc3BlY2lmaWNcLXZvbHVtZTsKK+ebiOiZpyA+IHByb2ZpdFwtYW5kXC1sb3NzOwor5Yu45bCOID4gdHJ5XC10b1wtY29udmluY2U7CivpmaPnh58gPiBncm91cFwtb2ZcLXBlb3BsZTsKK+W5vueZviA+IHNldmVyYWxcLWh1bmRyZWQ7CivlpKflr6sgPiBjYXBpdGFsXC1sZXR0ZXJzOwor6YGO5rS7ID4gbGl2ZVwtb25lJydzXC1saWZlOwor54mM5L2NID4gbWVtb3JpYWxcLXRhYmxldDsKK+aXqeS6myA+IFwoYVwtYml0XClcLWVhcmxpZXI7CivoqrLlpJYgPiBleHRyYWN1cnJpY3VsYXI7CivmlLbmi74gPiB0b1wtcHV0XC1pblwtb3JkZXI7CivntrLmrrUgPiBuZXR3b3JrXC1zZWdtZW50Owor5byf5byfID4geW91bmdlclwtYnJvdGhlcjsKK+mBsuaXqSA+IHNvb25lclwtb3JcLWxhdGVyOwor55+u5bCPID4gc2hvcnRcLWFuZFwtc21hbGw7Civmr5Tlg7kgPiBwcmljZVwtcmVsYXRpb25zOwor5paw5Lu7ID4gbmV3bHlcLWFwcG9pbnRlZDsKK+mcuOS9lCA+IGZvcmNpYmx5XC1vY2N1cHk7Civnl4XprZQgPiBzZXJpb3VzXC1pbGxuZXNzOwor5bi455SoID4gaW5cLWNvbW1vblwtdXNhZ2U7CivlhrDno5ogPiBpY2VcLWNyZWFtXC1icmljazsKK+eZveiPnCA+IGNoaW5lc2VcLWNhYmJhZ2U7CivlvLfliqAgPiBpbXBvc2VcLWJ5XC1mb3JjZTsKK+WkluS6iyA+IGZvcmVpZ25cLWFmZmFpcnM7CivpgorlnLAgPiBib3JkZXJcLWRpc3RyaWN0Owor6IiM6Z2iID4gYmxhZGVcLW9mXC10b25ndWU7CivokZfkvZwgPiBhXC1saXRlcmFyeVwtd29yazsKK+eZveexsyA+IFwocG9saXNoZWRcKVwtcmljZTsKK+eAleiHqCA+IG9uXC10aGVcLXZlcmdlXC1vZjsKK+aQjeebiiA+IHByb2ZpdFwtYW5kXC1sb3NzOwor6YG45ZauID4gXChzb2Z0d2FyZVwpXC1tZW51Owor5Z+35rOVID4gbGF3XC1lbmZvcmNlbWVudDsKK+mAsuWxlSA+IHRvXC1tYWtlXC1oZWFkd2F5Owor54K65q2kID4gZm9yXC10aGlzXC1yZWFzb247Civlu6Dlj7IgPiBmYWN0b3J5XC1oaXN0b3J5Owor5YWJ56OBID4gbWFnbmV0b1wtb3B0aWNhbDsKK+mamOWPoyA+IFwobW91bnRhaW5cKVwtcGFzczsKK+e2suWdgCA+IFwoaW50ZXJuZXRcKVwtc2l0ZTsKK+eVq+mdoiA+IFwocGljdHVyZVwpXC1mcmFtZTsKK+iPnOWcsCA+IHZlZ2V0YWJsZVwtZmllbGQ7CivnlZzpoZ4gPiBkb21lc3RpY1wtYW5pbWFsOwor5oqx6aSKID4gYWRvcHRcLVwoYVwtY2hpbGRcKTsKK+WfjuaokyA+IGNpdHlcLWdhdGVcLXRvd2VyOwor5o6h56iuID4gc2VlZFwtY29sbGVjdGluZzsKK+iKseeZvSA+IGdyaXp6bGVkXC1cKGhhaXJcKTsKK+WxjemrlCA+IFwobGlmZWxlc3NcKVwtYm9keTsKK+WcluewvSA+IFwoY29tcHV0ZXJcKVwtaWNvbjsKK+W3tOacmyA+IGxvb2tcLWZvcndhcmRcLXRvOwor5bGk6ZuyID4gc3RyYXR1c1wtXChjbG91ZFwpOwor57GM56K8ID4gYmFyZ2FpbmluZ1wtY2hpcDsKK+mZjeWDuSA+IHByaWNlXC1yZWR1Y3Rpb247CivmqJnmqIEgPiBcKG1hcmtpbmdcKVwtc3Rha2U7CivplonmnIMgPiBjbG9zZVwtYVwtbWVldGluZzsKK+e0lOWxrCA+IHB1cmVcLWFuZFwtc2ltcGxlOwor5YWJ5qauID4gaG9ub3JcLWFuZFwtZ2xvcnk7CivovqblrbggPiB0b1wtcnVuXC1hXC1zY2hvb2w7CivmqJnmnYYgPiBzdXJ2ZXlvcicnc1wtcG9sZTsKK+W5o+WItiA+IGN1cnJlbmN5XC1zeXN0ZW07CivloLHliLAgPiByZXBvcnRcLWZvclwtZHV0eTsKK+W5tOS7vSA+IHBhcnRpY3VsYXJcLXllYXI7Civln7rlnLAgPiBcKG1pbGl0YXJ5XClcLWJhc2U7CivlhYnmmI4gPiBicmlnaHRcLVwoZnV0dXJlXCk7Civkv53ph4sgPiByZWxlYXNlXC1vblwtYmFpbDsKK+WwhOmguyA+IHJhZGlvXC1mcmVxdWVuY3k7CivprKXniK0gPiBzdHJ1Z2dsZVwtXCh3aXRoXCk7Civoo6HmoLkgPiBcKHJvbmFsZFwpXC1yZWFnYW47CivmipfooaEgPiBjb250ZW5kXC1hZ2FpbnN0Owor57Sa5YilID4gXChtaWxpdGFyeVwpXC1yYW5rOwor562G6KqkID4gYVwtc2xpcFwtb2ZcLWFcLXBlbjsKK+WFq+WvtiA+IGVpZ2h0XC10cmVhc3VyZXM7Civnmb7lubQgPiBhXC1odW5kcmVkXC15ZWFyczsKK+aRmOWAnyA+IHRvXC1ib3Jyb3dcLW1vbmV5Owor5ZyW5qiZID4gXChjb21wdXRlclwpXC1pY29uOwor6ZW35a6YID4gc2VuaW9yXC1vZmZpY2lhbDsKK+WFpeWigyA+IGVudGVyXC1hXC1jb3VudHJ5Owor5YWS5aqzID4gZGF1Z2h0ZXJcLWluXC1sYXc7Civoh4LntJcgPiBcKGJsYWNrXClcLWFybWJhbmQ7Civou43moKEgPiBtaWxpdGFyeVwtc2Nob29sOwor5oqK6Ii1ID4gaG9sZFwtdGhlXC1ydWRkZXI7CivooqvmjZUgPiBiZVwtdW5kZXJcLWFycmVzdDsKK+mmlumVtyA+IHNlbmlvclwtb2ZmaWNpYWw7Civnmb7ljYEgPiBhXC1odW5kcmVkXC1vclwtc287CivlnZDlpb0gPiB0b1wtc2l0XC1wcm9wZXJseTsKK+eVnOeUnyA+IGRvbWVzdGljXC1hbmltYWw7CivpjKbpm54gPiBnb2xkZW5cLXBoZWFzYW50Owor6Ieq5q66ID4gdG9cLWtpbGxcLW9uZXNlbGY7Civpq5jmmIIgPiBpblwtaGlnaFwtc3Bpcml0czsKK+epv+mBjiA+IHRvXC1wYXNzXC10aHJvdWdoOwor5YKZ5oiwID4gcHJlcGFyZVwtZm9yXC13YXI7CivlronouqsgPiBtYWtlXC1vbmUnJ3NcLWhvbWU7CivmuLjoqqogPiBkcnVtXC11cFwtc3VwcG9ydDsKK+iHs+aWvCA+IGdvXC1zb1wtZmFyXC1hc1wtdG87CivnlJ/niakgPiBsaXZpbmdcLWNyZWF0dXJlOwor5oi257GNID4gY2Vuc3VzXC1yZWdpc3RlcjsKK+agoeiIjSA+IHNjaG9vbFwtYnVpbGRpbmc7CivlloToia8gPiBnb29kXC1hbmRcLWhvbmVzdDsKK+i7jeWCmSA+IFwobWlsaXRhcnlcKVwtYXJtczsKK+mmluiFpiA+IGhlYWRcLVwob2ZcLXN0YXRlXCk7CivlronokawgPiBidXJ5XC1cKHRoZVwtZGVhZFwpOwor5qW15YqbID4gZG9cLWF0XC1hbGxcLWNvc3RzOwor6LeR5q2lID4gdG9cLXdhbGtcLXF1aWNrbHk7CivosrboqZ4gPiBkZXJvZ2F0b3J5XC10ZXJtOwor5LqS6YCjID4gaW50ZXJjb25uZWN0aW9uOwor5oKy6bO0ID4gdXR0ZXJcLXNhZFwtY2FsbHM7Civmu7/mhI8gPiB0b1wtYmVcLXNhdGlzZmllZDsKK+a1t+mBiyA+IHNoaXBwaW5nXC1ieVwtc2VhOwor55WZ5a24ID4gdG9cLXN0dWR5XC1hYnJvYWQ7Civkvr/mop0gPiBcKGluZm9ybWFsXClcLW5vdGU7CivnlJrmiJYgPiBzb1wtbXVjaFwtc29cLXRoYXQ7CivlsbHls7AgPiBcKG1vdW50YWluXClcLXBlYWs7Civmuqvmn5QgPiBnZW50bGVcLWFuZFwtc29mdDsKK+mrmOS4rSA+IGhpZ2hcLWFuZFwtbWlkZGxlOwor6IOD55eFID4gc3RvbWFjaFwtdHJvdWJsZTsKK+WQjOm9oSA+IG9mXC10aGVcLXNhbWVcLWFnZTsKK+WQuOmfsyA+IHNvdW5kXC1hYnNvcmJpbmc7CivpurvphokgPiB0b1wtYW5hZXN0aGV0aXplOwor5oqV5aWUID4gdG9cLXNlZWtcLXNoZWx0ZXI7CivkvovmnIMgPiByZWd1bGFyXC1tZWV0aW5nOwor6aSF6IKlID4gY2FrZVwtZmVydGlsaXplcjsKK+aatOmbqCA+IHRvcnJlbnRpYWxcLXJhaW47Civkvr/lrrQgPiBpbmZvcm1hbFwtZGlubmVyOwor5LiK6L+wID4gYWJvdmVcLW1lbnRpb25lZDsKK+WvpuW9iCA+IGxpdmVcLWFtbXVuaXRpb247CivnlKLlgLwgPiB2YWx1ZVwtb2ZcLW91dHB1dDsKK+elneizgCA+IHRvXC1jb25ncmF0dWxhdGU7Civku6XngrogPiBjb25zaWRlclwtXCh0aGF0XCk7CivmoLjlvYggPiBudWNsZWFyXC13YXJoZWFkOwor5LiK6KqyID4gdG9cLWF0dGVuZFwtY2xhc3M7CivnrKblkIggPiBpblwta2VlcGluZ1wtd2l0aDsKK+aKgOWAhiA+IHRyaWNreVwtbWFuZXV2ZXI7Civms7Doqp4gPiB0aGFpXC1cKGxhbmd1YWdlXCk7Civlr7Xlo54gPiBzcG9pbFwtXChhXC1jaGlsZFwpOwor5Lqk55WMID4gY29tbW9uXC1ib3VuZGFyeTsKK+S4ieiQrCA+IHRoaXJ0eVwtdGhvdXNhbmQ7CivosqjmupAgPiBzdXBwbHlcLW9mXC1nb29kczsKK+eql+W4mCA+IHdpbmRvd1wtY3VydGFpbnM7CivmnJ/npaggPiBwcm9taXNzb3J5XC1ub3RlOwor5Y+j6KqeID4gc3Bva2VuXC1sYW5ndWFnZTsKK+engeeHnyA+IHByaXZhdGVseVwtb3duZWQ7Civlr5LlgYcgPiB3aW50ZXJcLXZhY2F0aW9uOwor5ZOA5q2MID4gYVwtbW91cm5mdWxcLXNvbmc7Civnib3pgKMgPiBcKGJlXClcLWltcGxpY2F0ZWQ7CivmgKfooYwgPiBzZXh1YWxcLWFjdGl2aXR5Owor5a245aOrID4gYmFjaGVsb3JcLWRlZ3JlZTsKK+iyoOaTlCA+IFwoYmVhclwtYVwpXC1idXJkZW47CivkuIDnp5ggPiBmaXJzdFwtc2VjcmV0YXJ5Owor6Jel55O2ID4gbWVkaWNpbmVcLWJvdHRsZTsKK+aFmuaEpyA+IFwodG9cLWJlXClcLWFzaGFtZWQ7CivkurrmiY0gPiB0YWxlbnRlZFwtcGVyc29uOwor5LiN55SYID4gdW5yZWNvbmNpbGVkXC10bzsKK+ePreWtkCA+IG9yZ2FuaXplZFwtZ3JvdXA7Civmr4/pmpQgPiBhdFwtaW50ZXJ2YWxzXC1vZjsKK+aEm+aItCA+IGxvdmVcLWFuZFwtZXN0ZWVtOwor5oSb5oiAID4gYmVcLWluXC1sb3ZlXC13aXRoOwor5p2t5beeID4gaGFuZ3pob3VcLVwoY2l0eVwpOwor5ZWP5LiWID4gdG9cLWJlXC1wdWJsaXNoZWQ7CivmgrLms6MgPiB3ZWVwXC13aXRoXC1ncmllZjsKK+azleeQhiA+IGxlZ2FsXC1wcmluY2lwbGU7Civnp6nluo8gPiBvcmRlclwtXChvcmRlcmx5XCk7CivmlL/pu6ggPiBwb2xpdGljYWxcLXBhcnR5Owor5ZCN54mHID4gXChidXNpbmVzc1wpXC1jYXJkOwor5peF6LK7ID4gdHJhdmVsXC1leHBlbnNlczsKK+iyoeWcmCA+IGZpbmFuY2lhbFwtZ3JvdXA7Civmspnnn7MgPiBzYW5kXC1hbmRcLXN0b25lczsKK+emgeaenCA+IGZvcmJpZGRlblwtZnJ1aXQ7Civpg7XpgZ4gPiB0b1wtc2VuZFwtYnlcLW1haWw7CivmnpDlh7ogPiB0b1wtc2VwZXJhdGVcLW91dDsKK+WllOilsiA+IGxvbmdcLXJhbmdlXC1yYWlkOwor5p2/5Yi3ID4gc2NydWJiaW5nXC1icnVzaDsKK+acjeW+niA+IG9iZXlcLVwoYW5cLW9yZGVyXCk7Civmlr3ooYwgPiB0b1wtcHV0XC1pblwtcGxhY2U7CivnvbDmrL4gPiBcKGltcG9zZVwtYVwpXC1maW5lOwor6ZuM6ZuEID4gbWFsZVwtYW5kXC1mZW1hbGU7Civpgorpn7MgPiBsYXRlcmFsXC1cKHNvdW5kXCk7Civmr43oqp4gPiBuYXRpdmVcLWxhbmd1YWdlOwor5q+N6KaqID4gbW90aGVyXC1cKGZvcm1hbFwpOwor5rOw5paHID4gdGhhaVwtXChsYW5ndWFnZVwpOwor56OB55ukID4gXChjb21wdXRlclwpXC1kaXNrOwor5aqz5ammID4gZGF1Z2h0ZXJcLWluXC1sYXc7CivnpKbmpa0gPiBtaW5pbmdcLWluZHVzdHJ5Owor5rWB5aSxID4gYmVcLWRyYWluZWRcLWF3YXk7CivlvJXotbcgPiB0b1wtZ2l2ZVwtcmlzZVwtdG87Civwo460ID4gc3R1bXBcLW9mXC1hXC10cmVlOwor6K2J54mpID4gZXhoaWJpdFwtXChsZWdhbFwpOwor57ir6KOcID4gZGFyblwtXChjbG90aGluZ1wpOwor57eo6YG4ID4gc2VsZWN0XC1hbmRcLWVkaXQ7CivkuIrlrbggPiB0b1wtZ29cLXRvXC1zY2hvb2w7CivpoLvluLYgPiBmcmVxdWVuY3lcLXJhbmdlOwor5bqt6ZW3ID4gcHJlc2lkaW5nXC1qdWRnZTsKK+aUv+imiyA+IHBvbGl0aWNhbFwtdmlld3M7CivmgrLlmIYgPiBzaWdoXC1tb3VybmZ1bGx5Owor6aC75a+sID4gZnJlcXVlbmN5XC1yYW5nZTsKK+WNiueUnyA+IGhhbGZcLWFcLWxpZmV0aW1lOwor5Y2a54mpID4gbmF0dXJhbFwtc2NpZW5jZTsKK+mDteelqCA+IFwocG9zdGFnZVwpXC1zdGFtcDsKK+aBsOWlvSA+IGFzXC1pdFwtdHVybnNcLW91dDsKK+awo+a6qyA+IGFpclwtdGVtcGVyYXR1cmU7Civnn67og5YgPiBzaG9ydFwtYW5kXC1zdG91dDsKK+iqnuezuyA+IGxhbmd1YWdlXC1zeXN0ZW07CivororlvaIgPiBiZVwtb3V0XC1vZlwtc2hhcGU7CivljZfmtbcgPiBzb3V0aFwtY2hpbmFcLXNlYTsKK+e+juWFgyA+IGFtZXJpY2FuXC1kb2xsYXI7CivkuJbkurogPiBcKGNvbW1vblwpXC1wZW9wbGU7CivlkI3llq4gPiBsaXN0XC1cKG9mXC1uYW1lc1wpOwor6Zu756OBID4gZWxlY3Ryb21hZ25ldGljOwor5rCR5qyKID4gY2l2aWxcLWxpYmVydGllczsKK+aTmuiqqiA+IGl0XC1pc1wtc2FpZFwtdGhhdDsKK+WOn+aApyA+IG9yaWdpbmFsXC1uYXR1cmU7Civmlbjnmb4gPiBzZXZlcmFsXC1odW5kcmVkOwor5pON6KqyID4gbWlsaXRhcnlcLWRyaWxsOwor5Y2U5pyDID4gYW5cLWFzc29jaWF0aW9uOwor5paH54mpID4gY3VsdHVyYWxcLXJlbGljOwor6YCa6KiKID4gY29tbXVuaWNhdGlvbnM7CivljbHmiL8gPiBkZWNyZXBpdFwtaG91c2U7Civnibnlt6UgPiBzZWNyZXRcLXNlcnZpY2U7Civpm7vnh4ggPiBlbGVjdHJpY1wtbGlnaHQ7CivljJfmpbUgPiB0aGVcLW5vcnRoXC1wb2xlOwor6aCQ5LuYID4gcGF5XC1pblwtYWR2YW5jZTsKK+auuuawoyA+IG11cmRlcm91c1wtbG9vazsKK+ejgeWgtCA+IG1hZ25ldGljXC1maWVsZDsKK+eJmeW6iiA+IGFsdmVvbGFyXC1yaWRnZTsKK+WPg+WKoCA+IHRvXC1wYXJ0aWNpcGF0ZTsKK+awkeaEjyA+IHB1YmxpY1wtb3BpbmlvbjsKK+WmueWmuSA+IHlvdW5nZXJcLXNpc3RlcjsKK+W+gOaXpSA+IGluXC1mb3JtZXJcLWRheXM7Civli5jmuKwgPiB0b1wtaW52ZXN0aWdhdGU7CivlhrDph4sgPiBcKG9mXC1taXNnaXZpbmdzOwor5aSn5qiTID4gbGFyZ2VcLWJ1aWxkaW5nOwor5oCq5Lq6ID4gc3RyYW5nZVwtcGVyc29uOwor54ef5qWtID4gdG9cLWRvXC1idXNpbmVzczsKK+WhkeiGoCA+IHBsYXN0aWNcLWNlbWVudDsKK+aZmuS4iiA+IGluXC10aGVcLWV2ZW5pbmc7CivmlaPmraUgPiB0b1wtdGFrZVwtYVwtd2FsazsKK+itmOWIpSA+IHRvXC1kaXN0aW5ndWlzaDsKK+WkseaOpyA+IG91dFwtb2ZcLWNvbnRyb2w7CivmlbjmnIggPiBzZXZlcmFsXC1tb250aHM7CivlvoDlvqkgPiB0b1wtcmVjaXByb2NhdGU7CivpnbbloLQgPiBzaG9vdGluZ1wtcmFuZ2U7Civns5bphosgPiBzd2VldFwtYW5kXC1zb3VyOwor5biz6JmfID4gYWNjb3VudFwtbnVtYmVyOwor54iq5a2QID4gXChhbmltYWwnJ3NcKVwtcGF3Owor5Yil566hID4gbm9cLW1hdHRlclwtXCh3aG87CivliKjnqIsgPiBwbGFuaW5nXC1sZW5ndGg7CivntKDoj5wgPiB2ZWdldGFibGVcLWRpc2g7Civplovou4ogPiB0b1wtZHJpdmVcLWFcLWNhcjsKK+eFmeeBqyA+IHNtb2tlXC1hbmRcLWZpcmU7CivovYnpgYsgPiB0cmFuc3BvcnRhdGlvbjsKK+W3oeitpiA+IHBvbGljZVwtb2ZmaWNlcjsKK+aUvuaYoCA+IHNob3dcLVwoYVwtbW92aWVcKTsKK+ijvemAoCA+IHRvXC1tYW51ZmFjdHVyZTsKK+WIqeeOhyA+IGludGVyZXN0XC1yYXRlczsKK+i8v+irliA+IHB1YmxpY1wtb3BpbmlvbjsKK+W8seWwjyA+IHNtYWxsXC1hbmRcLXdlYWs7CivmlZ3lsaMgPiB3b3JuXC1vdXRcLXNob2VzOwor55+u5a2QID4gYVwtc2hvcnRcLXBlcnNvbjsKK+mAn+axuiA+IHF1aWNrXC1kZWNpc2lvbjsKK+mXnOeohSA+IFwoY3VzdG9tc1wpXC1kdXR5Owor55m96JiHID4gY29tbW9uXC1wZXJpbGxhOwor5q+U5YC8ID4gc3BlY2lmaWNcLXZhbHVlOwor5Z+6552jID4gamVzdXNcLVwoY2hyaXN0XCk7CivmjqLot68gPiB0b1wtZmluZFwtYVwtcGF0aDsKK+mBmeaOpyA+IHJlbW90ZVwtY29udHJvbDsKK+mBmeaEnyA+IHJlbW90ZVwtc2Vuc2luZzsKK+eZveiJsiA+IHdoaXRlXC1cKGNvbG91clwpOwor5pKl5qy+ID4gYWxsb2NhdGVcLWZ1bmRzOwor5bug5belID4gZmFjdG9yeVwtd29ya2VyOwor5q2j5aW9ID4ganVzdFwtXChpblwtdGltZVwpOwor5o6i6KaWID4gcGF5XC1hXC12aXNpdFwtdG87CivliKTmmI4gPiB0b1wtZGlzdGluZ3Vpc2g7CivlvJXlko4gPiB0YWtlXC10aGVcLWJsYW1lOwor5aOB5aCxID4gd2FsbFwtbmV3c3BhcGVyOwor5pS55ZaEID4gdG9cLW1ha2VcLWJldHRlcjsKK+mAoOaIkCA+IHRvXC1icmluZ1wtYWJvdXQ7CivluavmnIMgPiBzZWNyZXRcLXNvY2lldHk7Civmk43lv4MgPiB0b1wtd29ycnlcLWFib3V0Owor55m956iuID4gdGhlXC13aGl0ZVwtcmFjZTsKK+ijnOe8uiA+IGZpbGxcLWFcLXZhY2FuY3k7Civopb/mrZAgPiB3ZXN0ZXJuXC1ldXJvcGU7CivpgJXluq0gPiB2ZXJ5XC1kaWZmZXJlbnQ7Civoo5zntrQgPiBtZW5kXC1cKGNsb3RoZXNcKTsKK+mbhuS4rSA+IHRvXC1jb25jZW50cmF0ZTsKK+mBsuWIsCA+IHRvXC1hcnJpdmVcLWxhdGU7CivloLHlvqkgPiBtYWtlXC1yZXByaXNhbHM7CivnnJ/mg4UgPiByZWFsXC1zaXR1YXRpb247Civlt6jmtYEgPiBzdHJvbmdcLWN1cnJlbnQ7CivpgIDlrbggPiB0b1wtcXVpdFwtc2Nob29sOwor5buJ5YO5ID4gY2hlYXBseVwtcHJpY2VkOwor55eF6JmfID4gc2lja1wtcGVyc29ubmVsOwor5ZyY57WQID4gXChob2xkXC1hXClcLXJhbGx5Owor5ZyN57meID4gcmV2b2x2ZVwtYXJvdW5kOwor6L+R5bm0ID4gcmVjZW50XC15ZWFyXChzXCk7CivlgJLplokgPiB0b1wtZ29cLWJhbmtydXB0Owor5Ya35oiwID4gXCh0aGVcKVwtY29sZFwtd2FyOwor5YO555uuID4gXChtYXJrZWRcKVwtcHJpY2U7Civnl4XohIggPiBhYm5vcm1hbFwtcHVsc2U7CivmvLjoroogPiBncmFkdWFsXC1jaGFuZ2U7CivpgJrkv6EgPiB0b1wtY29tbXVuaWNhdGU7CivntIDlv7UgPiB0b1wtY29tbWVtb3JhdGU7CivplovmnIMgPiBoYXZlXC1hXC1tZWV0aW5nOwor5YWo5pmvID4gcGFub3JhbWljXC12aWV3Owor5YiA5Y+JID4ga25pZmVcLWFuZFwtZm9yazsKK+W4g+W4myA+IGNsb3RoXC1hbmRcLXNpbGs7Civmib7pjKIgPiB0b1wtZ2l2ZVwtY2hhbmdlOwor6KOc5rayID4gZmx1aWRcLWluZnVzaW9uOwor6LW36bueID4gc3RhcnRpbmdcLXBvaW50Owor5aCx5YiGID4gY2FsbFwtdGhlXC1zY29yZTsKK+aMuueriyA+IHRvXC1zdGFuZFwtZXJlY3Q7CivlhavmiJAgPiBlaWdodHlcLXBlcmNlbnQ7CivlhanmiYsgPiBkb3VibGVcLXRhY3RpY3M7CivmjqHmsrkgPiBvaWxcLWV4dHJhY3Rpb247Civot6jotoogPiB0b1wtc3RlcFwtYWNyb3NzOwor6LeR6YGTID4gYXRobGV0aWNcLXRyYWNrOwor5o+h5ouzID4gdG9cLW1ha2VcLWFcLWZpc3Q7Civmj6HmiYsgPiB0b1wtc2hha2VcLWhhbmRzOwor57K+5bmyID4gY3JhY2tcLVwodHJvb3BzXCk7CivplbflvoEgPiB0aGVcLWxvbmdcLW1hcmNoOwor55eF55ebID4gc2xpZ2h0XC1pbGxuZXNzOwor6Iux5a+4ID4gXChlbmdsaXNoXClcLWluY2g7CivmqJnlsLogPiBzdXJ2ZXlvcicnc1wtcm9kOwor5bCH6LuNID4gXChhcm15XClcLWdlbmVyYWw7CivlhanlnIsgPiBib3RoXC1jb3VudHJpZXM7CivlhajlnIsgPiBlbnRpcmVcLWNvdW50cnk7CivovKnlrZAgPiBhbGxcLW9uZScnc1wtbGlmZTsKK+mVt+WfjiA+IHRoZVwtZ3JlYXRcLXdhbGw7CivooajmsbogPiBkZWNpZGVcLWJ5XC12b3RlOwor5oiQ6YO9ID4gY2hlbmdkdVwtXChjaXR5XCk7CivprKXmmbogPiBiYXR0bGVcLW9mXC13aXRzOwor5YWr5Y2DID4gZWlnaHRcLXRob3VzYW5kOwor55eF5q23ID4gbWVkaWNhbFwtcmVjb3JkOwor5Ly46ZaLID4gdG9cLXN0cmV0Y2hcLW91dDsKK+a8lOekuiA+IHRvXC1kZW1vbnN0cmF0ZTsKK+eVoueUnyA+IGFsbFwtb25lJydzXC1saWZlOwor5o+h5YilID4gdG9cLXNoYWtlXC1oYW5kczsKK+WCs+aSrSA+IHRvXC1kaXNzZW1pbmF0ZTsKK+WFpeS8jSA+IGVudGVyXC10aGVcLWFybXk7Civpppbpg70gPiBjYXBpdGFsXC1cKGNpdHlcKTsKK+a9lOa3qCA+IGNsZWFuc2VcLVwoc2luc1wpOwor6IiM5qC5ID4gYmFja1wtb2ZcLXRvbmd1ZTsKK+WCjeaZmiA+IGluXC10aGVcLWV2ZW5pbmc7CivooYzmlL8gPiBhZG1pbmlzdHJhdGlvbjsKK+Wwj+iBsiA+IGluXC1hXC1sb3dcLXZvaWNlOwor56+h5pS5ID4gdG9cLXRhbXBlclwtd2l0aDsKK+aIquiHsyA+IHVwXC10b1wtXChhXC10aW1lXCk7CivotbfojYkgPiBkcmFmdFwtXChhXC1iaWxsXCk7CivmjKjmiZMgPiB0YWtlXC1hXC1iZWF0aW5nOwor5bGk55CGID4gc3RyYXRpZmljYXRpb247CivnkIPpnosgPiBhdGhsZXRpY1wtc2hvZXM7CivpjYvosrwgPiBmcmllZFwtZHVtcGxpbmc7Civmjojlkb0gPiB0b1wtZ2l2ZVwtb3JkZXJzOwor5qC46IO9ID4gbnVjbGVhclwtZW5lcmd5Owor5rWu6bueID4gZmxvYXRpbmdcLXBvaW50Owor55Sf54GrID4gdG9cLW1ha2VcLWFcLWZpcmU7Civoh6rlvp4gPiBzaW5jZVwtXChhXC10aW1lXCk7Civlr7bnn7MgPiBwcmVjaW91c1wtc3RvbmU7Civmo4Tmq7sgPiBhYmFuZG9uZWRcLWJhYnk7CivnlKLmrIogPiBwcm9wZXJ0eVwtcmlnaHQ7CivpvZLovKogPiBcKG1hY2hpbmVcKVwtZ2VhcjsKK+S+teeKryA+IHRvXC1pbmZyaW5nZVwtb247CivooYDlo5MgPiBibG9vZFwtcHJlc3N1cmU7Civnl4Xlk6EgPiBzaWNrXC1wZXJzb25uZWw7CivmuJvogqUgPiB0b1wtbG9zZVwtd2VpZ2h0Owor5Luj6KGoID4gcmVwcmVzZW50YXRpdmU7CivnlavlsZUgPiBhcnRcLWV4aGliaXRpb247CivnlJ/mlYggPiB0b1wtdGFrZVwtZWZmZWN0Owor5omN5rCjID4gbGl0ZWFyeVwtdGFsZW50Owor5pyf6ZaTID4gcGVyaW9kXC1vZlwtdGltZTsKK+WwiOashCA+IHNwZWNpYWxcLWNvbHVtbjsKK+WtuOexjSA+IHNjaG9vbFwtcm9sbFwoc1wpOwor56aB6aOfID4gZmFzdFwtXChub3RcLWVhdFwpOwor5p+Q56iuID4gc29tZVwta2luZFwtXChvZlwpOwor5bCH5pyDID4gd2lsbFwsXC1nb2luZ1wtdG87CivosY7otbcgPiBob2xkXC11cFwtXChoaWdoXCk7Civlr7bmm7ggPiB0cmVhc3VyZWRcLWJvb2s7CivlkIPpqZogPiB0b1wtYmVcLXN0YXJ0bGVkOwor5bCO5b2IID4gZ3VpZGVkXC1taXNzaWxlOwor5riF54i9ID4gZnJlc2hcLWFuZFwtY29vbDsKK+S6kuiBryA+IGludGVyY29ubmVjdGVkOwor5ZSx54mHID4gXCh2aW55bFwpXC1yZWNvcmQ7CivkuozogIUgPiBib3RoXC1cW29mXC10aGVtXF07CivmiY3lrZAgPiBnaWZ0ZWRcLXNjaG9sYXI7CivkvrXlrrMgPiB0b1wtZW5jcm9hY2hcLW9uOwor5a+25bqrID4gdHJlYXN1cmVcLWhvdXNlOwor5L+d5ZauID4gZ3VhcmFudGVlXC1zbGlwOwor5bCP5a24ID4gcHJpbWFyeVwtc2Nob29sOwor5LuU55WcID4gbmV3Ym9yblwtYW5pbWFsOwor5pys6ImyID4gbmF0dXJhbFwtY29sb3VyOwor5L6G5b6AID4gdG9cLWNvbWVcLWFuZFwtZ287CivpoYzot4sgPiBzaG9ydFwtY29tbWVudHM7CivkuI3op6MgPiBub3RcLXVuZGVyc3RhbmQ7Civmh67mha4gPiBcKGZlZWxcKVwtYW54aWV0eTsKK+S9meaCuCA+IGxpbmdlcmluZ1wtZmVhcjsKK+aIkOWwsSA+IGFjY29tcGxpc2htZW50Owor5a655b+NID4gdG9cLXB1dFwtdXBcLXdpdGg7Civnvbfoq5YgPiBhYmFuZG9uZWRcLWlkZWE7CivmgqPomZUgPiBhZmZsaWN0ZWRcLXBhcnQ7Civmnrbmp4sgPiBpbmZyYXN0cnVjdHVyZTsKK+eptOaSrSA+IGJ1bmNoXC1wbGFudGluZzsKK+aHt+WtlSA+IHRvXC1iZVwtcHJlZ25hbnQ7Civogbfmpa0gPiBqb2JcLW9jY3VwYXRpb247Civku7vmnJ8gPiB0ZXJtXC1vZlwtb2ZmaWNlOwor5LiN6IiIID4gb3V0XC1vZlwtZmFzaGlvbjsKK+eQg+ajkiA+IFwoYmFzZWJhbGxcKVwtYmF0Owor6LOH5qC8ID4gcXVhbGlmaWNhdGlvbnM7CivmnbHmtbcgPiBlYXN0XC1jaGluYVwtc2VhOwor5p2x5q2QID4gZWFzdGVyblwtZXVyb3BlOwor5Lu75oaRID4gbm9cLW1hdHRlclwtd2hhdDsKK+S7iuacnSA+IGF0XC10aGVcLXByZXNlbnQ7CivkvZzlk4EgPiB3b3Jrc1wtXChvZlwtYXJ0XCk7CivmhovmgrYgPiBmZWVsXC1vcHByZXNzZWQ7Civpo7zmp70gPiBmZWVkaW5nXC10cm91Z2g7Civorabou4ogPiBwb2xpY2VcLXZlaGljbGU7Civlr5LlhrcgPiBjb2xkXC1cKGNsaW1hdGVcKTsKK+WuieWlvSA+IHNhZmVcLWFuZFwtc291bmQ7CivmtrLmmbYgPiBsaXF1aWRcLWNyeXN0YWw7Civlj4Pop4AgPiB0b1wtbG9va1wtYXJvdW5kOwor5Y+v6IO9ID4gbWlnaHRcLVwoaGFwcGVuXCk7CivpppblhYggPiBmaXJzdFwtXChvZlwtYWxsXCk7CivmtrLmhYsgPiBsaXF1aWRcLVwoc3RhdGVcKTsKK+WtleWppiA+IHByZWduYW50XC13b21hbjsKK+S5mOazlSA+IG11bHRpcGxpY2F0aW9uOwor5a6a5YO5ID4gdG9cLXNldFwtYVwtcHJpY2U7CivmmpfnrrEgPiBjYW1lcmFcLWJlbGxvd3M7CivmuJvliJEgPiByZWR1Y2VcLXBlbmFsdHk7CivkuIDnlJ8gPiBhbGxcLW9uZScnc1wtbGlmZTsKK+S4reatkCA+IGNlbnRyYWxcLWV1cm9wZTsKK+eKr+e9qiA+IFwoY29tbWl0XClcLWNyaW1lOwor5Lu95YWSID4gZGVncmVlXCxcLWV4dGVudDsKK+eJueiJsiA+IGNoYXJhY3RlcmlzdGljOwor5Lit5pa3ID4gdG9cLWRpc2NvbnRpbnVlOwor56eV5a2QID4gYmxpZ2h0ZWRcLWdyYWluOwor54++5Lu7ID4gYXRcLXRoZVwtcHJlc2VudDsKK+acieW+hSA+IG5vdFwteWV0XC1cKGRvbmVcKTsKK+mhjOadkCA+IHN1YmplY3RcLW1hdHRlcjsKK+ekpuaziSA+IG1pbmVyYWxcLXNwcmluZzsKK+avm+ihoyA+IFwod29vbFwpXC1zd2VhdGVyOwor6LKs5Lu7ID4gcmVzcG9uc2liaWxpdHk7CivljYrogbcgPiBwYXJ0XC10aW1lXC13b3JrOwor6aGv5b6XID4gYXBwZWFyXC1cKHRvXC1iZVwpOwor56CU6KO9ID4gdG9cLW1hbnVmYWN0dXJlOwor5LiN5b+NID4gY2Fubm90XC1iZWFyXC10bzsKK+WqveWSqiA+IG11bW15XC1cKG1vdGhlclwpOwor5rOi5oGpID4gYm9ublwtXChnZXJtYW55XCk7CivmlZfoqLQgPiBsb3NlXC1hXC1sYXdzdWl0Owor5aO96KGjID4gYnVyaWFsXC1jbG90aGVzOwor5pO66ZCYID4gcGVuZHVsdW1cLWNsb2NrOwor5YyX57evID4gbm9ydGhcLWxhdGl0dWRlOwor5Y+K5qC8ID4gdG9cLXBhc3NcLWFcLXRlc3Q7Civms5Xluq0gPiBjb3VydFwtXChvZlwtbGF3XCk7CivpgJnpoZ4gPiB0aGlzXC1raW5kXC1cKG9mXCk7CivkuLvkv64gPiBcKHNjaG9vbFwpXC1tYWpvcjsKK+iuiuaIkCA+IHRvXC1jaGFuZ2VcLWludG87CivkuI3lkIggPiBub3RcLWNvbmZvcm1cLXRvOwor5paR56u5ID4gbW90dGxlZFwtYmFtYm9vOwor5LiN5Y+KID4gbm90XC1hc1wtZ29vZFwtYXM7CivliIbpoZ4gPiBjbGFzc2lmaWNhdGlvbjsKK+mHjeW7uiA+IHJlY29uc3RydWN0aW9uOwor6KuL55yLID4gcGxlYXNlXC1zZWVcLVwuXC5cLjsKK+mhnuWIpSA+IGNsYXNzaWZpY2F0aW9uOwor5rCr5rCjID4gaHlkcm9nZW5cLVwoZ2FzXCk7CivmlbjnqK4gPiBudW1lcm91c1wtdHlwZXM7CivnoLTnlKIgPiB0b1wtZ29cLWJhbmtydXB0Owor5Yaw6bueID4gZnJlZXppbmdcLXBvaW50Owor6I+v6KOUID4gZXRobmljXC1jaGluZXNlOwor5LiN5LuBID4gbm90XC1iZW5ldm9sZW50Owor5pS26IG9ID4gdG9cLWxpc3RlblwtXCh0b1wpOwor6I+y6I+yID4gdmVyeVwtZnJhZ3JhbnQ7CivmmILmj5ogPiBoaWdoXC1zcGlyaXRlZDsKK+aXqeaZqCA+IGVhcmx5XC1tb3JuaW5nOwor56OB5bi2ID4gbWFnbmV0aWNcLXRhcGU7Civop6Poqr8gPiB0b1wtZGVtb2R1bGF0ZTsKK+WMl+a1tyA+IHRoZVwtbm9ydGhcLXNlYTsKK+iWhOWIqSA+IHNtYWxsXC1wcm9maXRzOwor5pma5aCxID4gZXZlbmluZ1wtcGFwZXI7CivmmJ/luqcgPiBjb25zdGVsbGF0aW9uOwor5Yaw6Z6LID4gc2thdGluZ1wtYm9vdHM7Civlu6DntbIgPiBmaWxhdHVyZVwtc2lsazsKK+efm+ebviA+IGNvbnRyYWRpY3Rvcnk7Civlh7ros6MgPiB0b1wtc2VsbFwtXChvZmZcKTsKK+WIsOiZlSA+IGluXC1hbGxcLXBsYWNlczsKK+WPpOS7oyA+IGFuY2llbnRcLXRpbWVzOwor5paw5pyIID4gY3Jlc2NlbnRcLW1vb247CivljbPlsIcgPiBvblwtdGhlXC1ldmVcLW9mOwor5Y2R5b6uID4gcGV0dHlcLWFuZFwtbG93Owor5Y2x5a6zID4gdG9cLWplb3BhcmRpemU7CivliKjoirEgPiB3b29kXC1zaGF2aW5nczsKK+iOqOiPqiA+IGJsYWNrXC1oZW5iYW5lOwor6Kq/5p+lID4gaW52ZXN0aWdhdGlvbjsKK+e2geiFvyA+IGxlZ1wtd3JhcHBpbmdzOwor5YiX6IiJID4gXChtYWtlXC1hXClcLWxpc3Q7CivpgannlKggPiBiZVwtYXBwbGljYWJsZTsKK+aRmOiomCA+IHRvXC10YWtlXC1ub3RlczsKK+WFg+mmliA+IGhlYWRcLW9mXC1zdGF0ZTsKK+aWueW8jyA+IHdheVwtXChvZlwtbGlmZVwpOwor5pel5aScID4gZGF5XC1hbmRcLW5pZ2h0Owor6Iqd6bq7ID4gc2VzYW1lXC1cKHNlZWRcKTsKK+eJjOWdiiA+IG1lbW9yaWFsXC1hcmNoOwor5YmN55SfID4gcHJlXC1leGlzdGVuY2U7CivmmIflgLwgPiByaXNlXC1pblwtdmFsdWU7CivnsbPpo68gPiBcKGNvb2tlZFwpXC1yaWNlOwor6L2J6YGTID4gbWFrZVwtYVwtZGV0b3VyOwor6ZW36YCUID4gbG9uZ1wtZGlzdGFuY2U7Civml6XliY0gPiB0aGVcLW90aGVyXC1kYXk7Civlopzmr4AgPiBcKHBsYW5lXClcLWNyYXNoOwor6ZuZ5omLID4gcGFpclwtb2ZcLWhhbmRzOwor5Y2X5LqeID4gc291dGhlcm5cLWFzaWE7CivliIrnmbsgPiBjYXJyeVwtYVwtc3Rvcnk7CivoqoflvLUgPiB0b1wtZXhhZ2dlcmF0ZTsKK+mbo+W/mCA+IHVuZm9yZ2V0dGFibGU7Civml6nkuIogPiBlYXJseVwtbW9ybmluZzsKK+WkquWkqiA+IG1hcnJpZWRcLXdvbWFuOwor5pKl55SoID4gYXBwcm9wcmlhdGlvbjsKK+Wig+azgSA+IGNpcmN1bXN0YW5jZXM7CivmsJHkuosgPiBjaXZpbFwtbWF0dGVyczsKK+Wls+S9oyA+IFwoZmVtYWxlXClcLW1haWQ7Civli5jlr58gPiByZWNvbm5haXNhbmNlOwor57GM6ZuGID4gY29sbGVjdFwtbW9uZXk7Civmk43mvJQgPiBkZW1vbnN0cmF0aW9uOwor5bm754eIID4gbGF0ZXJuXC1zbGlkZXM7CivliqDlv6sgPiB0b1wtYWNjZWxlcmF0ZTsKK+WGsOezliA+IGNyeXN0YWxcLXN1Z2FyOwor5ZyL6ZqbID4gaW50ZXJuYXRpb25hbDsKK+mspembniA+IGNvY2tcLWZpZ2h0aW5nOwor5b2i5YuiID4gY2lyY3Vtc3RhbmNlczsKK+mBjuaZgiA+IG9sZFwtZmFzaGlvbmVkOwor6Zqo5oSPID4gYXNcLW9uZVwtd2lzaGVzOwor5aSx5YipID4gc3VmZmVyXC1kZWZlYXQ7CivmkI3ogJcgPiB3ZWFyXC1hbmRcLXRlYXI7Civnm7jnlbYgPiBlcXVpdmFsZW50XC10bzsKK+mAkOatpSA+IHByb2dyZXNzaXZlbHk7Civlub7mrKEgPiBzZXZlcmFsXC10aW1lczsKK+W3qOe0sCA+IGJpZ1wtYW5kXC1zbWFsbDsKK+W5vuaooyA+IHNldmVyYWxcLWtpbmRzOwor5aSn5L2/ID4gYW5cLWFtYmFzc2Fkb3I7Civnt6jlr6kgPiByZWFkXC1hbmRcLWVkaXQ7CivlvLfljJYgPiB0b1wtc3RyZW5ndGhlbjsKK+mBv+WtlSA+IGNvbnRyYWNlcHRpb247CivlpKfkuosgPiBhXC1tYWpvclwtZXZlbnQ7CivmlZnlj4sgPiBjaHVyY2hcLW1lbWJlcjsKK+mAn+aViCA+IHF1aWNrXC1yZXN1bHRzOwor5Yip5pa8ID4gYmVcLWJlbmVmaWNpYWw7CivmlZfljJcgPiBzdWZmZXJcLWRlZmVhdDsKK+WIneacnyA+IGluaXRpYWxcLXN0YWdlOwor6Kmi5ZWPID4gaW5xdWlyZVwtYWJvdXQ7CivmrbvliJEgPiBkZWF0aFwtcGVuYWx0eTsKK+WFteeXniA+IGFybXlcLXJpZmZyYWZmOwor6auU6YeNID4gXChib2R5XClcLXdlaWdodDsKK+eZveegkiA+IHdoaXRlXC1hcnNlbmljOwor55u45p62ID4gcGljdHVyZVwtZnJhbWU7CivlnoLnm7QgPiBwZXJwZW5kaWN1bGFyOwor5aKD5ZywID4gY2lyY3Vtc3RhbmNlczsKK+WFteeHnyA+IG1pbGl0YXJ5XC1jYW1wOwor5biC5rCRID4gY2l0eVwtcmVzaWRlbnQ7Civpmqjkvr8gPiBhc1wtb25lXC13aXNoZXM7Civluq3lnJIgPiBmbG93ZXJcLWdhcmRlbjsKK+i9n+eCuCA+IFwoZHJvcFwtYVwpXC1ib21iOwor6YGO5Y67ID4gXChpblwtdGhlXClcLXBhc3Q7CivoiaboiYcgPiBuYXZhbFwtdmVzc2VsczsKK+WGsOacnyA+IGdsYWNpYWxcLWVwb2NoOwor6Zec5pa8ID4gcGVydGFpbmluZ1wtdG87CivliZvliZsgPiBqdXN0XC1yZWNlbnRseTsKK+W7oOS4uyA+IGZhY3RvcnlcLW93bmVyOwor5YaN5qyhID4gb25lXC1tb3JlXC10aW1lOwor5qyK5YqbID4gXCh3aWVsZFwpXC1wb3dlcjsKK+mAo+WQjCA+IHRvZ2V0aGVyXC13aXRoOwor57C/57GNID4gYWNjb3VudFwtYm9va3M7CivmqavmjoMgPiB0b1wtc3dlZXBcLWF3YXk7CivluqblgYcgPiBnb1wtb25cLWhvbGlkYXk7CivnlbDos6ogPiBoZXRlcm9nZW5lb3VzOwor6LuK56uZID4gXChidXNcKVwtc3RhdGlvbjsKK+WCmeiHsyA+IHRvXC10aGVcLXV0bW9zdDsKK+i3kemeiyA+IHJ1bm5pbmdcLXNob2VzOwor5aCx5ZauID4gdGF4YXRpb25cLWZvcm07CivpkZLos54gPiB0b1wtYXBwcmVjaWF0ZTsKK+mAmeS9jSA+IHRoaXNcLVwocGVyc29uXCk7Civlm7DnqpggPiBlbWJhcnJhc3NtZW50Owor6ZmN5LiWID4gY29tZVwtdG9cLWVhcnRoOwor5L6/6aOvID4gYVwtc2ltcGxlXC1tZWFsOwor6Ly75qKdID4gXCh3aGVlbFwpXC1zcG9rZTsKK+aJk+mWiyA+IHRvXC1icmVha1wtb3BlbjsKK+eZvOaPriA+IGJyaW5nXC10b1wtYmVhcjsKK+mWi+W/gyA+IHRvXC1mZWVsXC1oYXBweTsKK+WvpumplyA+IHRvXC1leHBlcmltZW50Owor6L2J5b2OID4gdHVyblwtXChhcm91bmRcKTsKK+ahiOmgrSA+IG9uXC1vbmUnJ3NcLWRlc2s7CivovqjliKUgPiBkaWZmZXJlbnRpYXRlOwor5oqE6KWyID4gdG9cLXBsYWdpYXJpemU7CivovqbliLAgPiB0b1wtYWNjb21wbGlzaDsKK+WFiOW+jCA+IGluXC1zdWNjZXNzaW9uOwor55Wc6IKlID4gYW5pbWFsXC1tYW51cmU7Civmi4nnvo4gPiBsYXRpblwtYW1lcmljYTsKK+aguOmbuyA+IG51Y2xlYXJcLXBvd2VyOwor6LaK6YeOID4gY3Jvc3NcLWNvdW50cnk7Civpp4Hpm5wgPiBoZXRlcm9nZW5lb3VzOwor5YWs5ZySID4gYVwtcHVibGljXC1wYXJrOwor55m+5aeTID4gY29tbW9uXC1wZW9wbGU7Civngb3ljYAgPiBkaXNhc3RlclwtYXJlYTsKK+ani+aIkCA+IHRvXC1jb25zdGl0dXRlOwor5L+d6JePID4ga2VlcFwtaW5cLXN0b3JlOwor55Ge6aaZID4gd2ludGVyXC1kYXBobmU7Civmi4znqK4gPiBzZWVkXC1kcmVzc2luZzsKK+exjOaOqiA+IHJhaXNlXC1cKG1vbmV5XCk7Civmo4Tnva4gPiB0b1wtdGhyb3dcLWF3YXk7Civos6Ppu54gPiBzZWxsaW5nXC1wb2ludDsKK+mWi+WIlyA+IFwobWFrZVwtYVwpXC1saXN0Owor55im5byxID4gdGhpblwtYW5kXC13ZWFrOwor55m95YyqID4gd2hpdGVcLWJhbmRpdHM7Civogonpq5QgPiBwaHlzaWNhbFwtYm9keTsKK+WCmeahiCA+IHB1dFwtb25cLXJlY29yZDsKK+mspeW/lyA+IHdpbGxcLXRvXC1maWdodDsKK+aJgeiNsyA+IGh5YWNpbnRoXC1iZWFuOwor55m+5YCNID4gYVwtaHVuZHJlZGZvbGQ7CivnrYbnrZIgPiBwZW5cLWNvbnRhaW5lcjsKK+WvtuiXjSA+IHNhcHBoaXJlXC1ibHVlOwor5ruy56KzID4gY2FyYnVyaXphdGlvbjsKK+a4oemBjiA+IHRvXC1jcm9zc1wtb3ZlcjsKK+Wtl+mbhiA+IGNoYXJhY3Rlclwtc2V0Owor56m66YGLID4gYWlyXC10cmFuc3BvcnQ7CivooajlsaQgPiBzdXJmYWNlXC1sYXllcjsKK+Wck+WRqCA+IGNpcmN1bWZlcmVuY2U7Civnl4XlrrMgPiBwbGFudFwtZGlzZWFzZTsKK+WUruiyqCA+IHRvXC1zZWxsXC1nb29kczsKK+iIjOWwliA+IHRpcFwtb2ZcLXRvbmd1ZTsKK+ahiOeosSA+IGNvdW50ZXJcLXNjYWxlOwor5raI6ZiyID4gZmlyZVwtZmlnaHRpbmc7CivllonntZAgPiBhZGFtJydzJydcLWFwcGxlOwor5bO25ZyLID4gaXNsYW5kXC1uYXRpb247CivprKfkuosgPiBjYXVzZVwtdHJvdWJsZTsKK+S6rOmDvSA+IGt5b3RvXC1cKGphcGFuXCk7Civlm5vljYMgPiBmb3VyXC10aG91c2FuZDsKK+eVtuW5tCA+IGluXC10aG9zZVwtZGF5czsKK+iyoei/tyA+IG1vbmV5XC1ncnViYmVyOwor55CG6KejID4gdG9cLWNvbXByZWhlbmQ7Civlr4bnorwgPiBcKHNlY3JldFwpXC1jb2RlOwor56+J5Z+OID4gZm9ydGlmaWNhdGlvbjsKK+ihm+WFtSA+IFwoYm9keVwpXC1ndWFyZFwpOwor55aR5ZWPID4gaW50ZXJyb2dhdGlvbjsKK+WWieeXpyA+IHNjYXJsZXRcLWZldmVyOwor5YCL5oCnID4gaW5kaXZpZHVhbGl0eTsKK+WVn+ekuiA+IGVubGlnaHRlbm1lbnQ7Civoh7Tlh70gPiBzZW5kXC1hXC1sZXR0ZXI7CivmhI/orZggPiBjb25zY2lvdXNuZXNzOwor6IGv57WhID4gY29tbXVuaWNhdGlvbjsKK+aLnOWIpSA+IHRha2VcLWxlYXZlXC1vZjsKK+aJgeaTlCA+IGNhcnJ5aW5nXC1wb2xlOwor5ZOA6JmfID4gY3J5XC1waXRlb3VzbHk7CivmoYLmnpcgPiBndWlsaW5cLVwoY2l0eVwpOwor6YeR6buDID4gZ29sZGVuXC15ZWxsb3c7Civot6jlnIsgPiB0cmFuc25hdGlvbmFsOwor5ryU5Ye6ID4gXChhY3RpbmdcKVwtcGxheTsKK+WQg+mjryA+IHRvXC1lYXRcLWFcLW1lYWw7CivkuI3pgJogPiBiZVwtb2JzdHJ1Y3RlZDsKK+aIkuaMhyA+IFwoZmluZ2VyXClcLXJpbmc7CivlsJHlsIcgPiBtYWpvclwtZ2VuZXJhbDsKK+adnOe1lSA+IHB1dFwtYW5cLWVuZFwtdG87CivmmpfpjpYgPiBidWlsdFwtaW5cLWxvY2s7Civmh7LmiJIgPiB0b1wtZGlzY2lwbGluZTsKK+S4i+iqsiA+IGNsYXNzXC1pc1wtb3ZlcjsKK+S4jeipsyA+IG5vdFwtaW5cLWRldGFpbDsKK+WPjemfvyA+IHJlcGVyY3Vzc2lvbnM7Civlrr/mgKggPiBhblwtb2xkXC1ncnVkZ2U7Civllq7lrZAgPiBsaXN0XC1vZlwtaXRlbXM7CivosqLnjbsgPiB0b1wtY29udHJpYnV0ZTsKK+WPq+mGkiA+IHRvXC1jYWxsXC1hd2FrZTsKK+e+juihkyA+IHRoZVwtZmluZVwtYXJ0czsKK+iDveWkoCA+IGJlXC1jYXBhYmxlXC1vZjsKK+WutuWxrCA+IGZhbWlseVwtbWVtYmVyOwor6by75re1ID4gbmFzb3NpbnVzaXRpczsKK+aHguW+lyA+IHRvXC11bmRlcnN0YW5kOwor5Y2K6bueID4gdGhlXC1sZWFzdFwtYml0Owor6Ymb562GID4gXChsZWFkXClcLXBlbmNpbDsKK+WWruWQkSA+IHVuZGlyZWN0aW9uYWw7Civlj5fos4QgPiBhY2NlcHRcLWJyaWJlczsKK+S+i+WBhyA+IGxlZ2FsXC1ob2xpZGF5Owor5rC06Z2iID4gd2F0ZXJcLXN1cmZhY2U7Civnp7vmrpYgPiB0b1wtdHJhbnNwbGFudDsKK+i1t+S8jyA+IHVwc1wtYW5kXC1kb3duczsKK+iuiuiqvyA+IG1vZGlmaWVkXC10b25lOwor5Y+L6Kq8ID4gY29tcGFuaW9uc2hpcDsKK+enu+akjSA+IHRvXC10cmFuc3BsYW50Owor5ZOA5qiCID4gZnVuZXJhbFwtbXVzaWM7Civlr4zkuo4gPiB0b1wtYmVcLWZ1bGxcLW9mOwor6IGy5bi2ID4gdm9jYWxcLWNvcmRcKHNcKTsKK+S4jeefpSA+IHVua25vd2luZ1wobHlcKTsKK+Wtq+WlsyA+IGdyYW5kZGF1Z2h0ZXI7Civmtrzlv6sgPiBuaWNlXC1hbmRcLWNvbGQ7CivkuInnmb4gPiB0aHJlZVwtaHVuZHJlZDsKK+S6rOaIsiA+IGJlaWppbmdcLW9wZXJhOwor5L2O5LqOID4gYmVcLWxvd2VyXC10aGFuOwor5Y2X6YOoID4gc291dGhlcm5cLXBhcnQ7CivmuIXllq4gPiBsaXN0XC1vZlwtaXRlbXM7CivororoibIgPiBjaGFuZ2VcLWNvbG91cjsKK+WMl+mdoiA+IG5vcnRoZXJuXC1zaWRlOwor5LiK54+tID4gdG9cLWdvXC10b1wtd29yazsKK+WQhOeoriA+IGV2ZXJ5XC1raW5kXC1vZjsKK+iyneW9qyA+IHNoZWxsXC1jYXJ2aW5nOwor5pel6LuNID4gamFwYW5lc2VcLWFybXk7CivljZfotoogPiBzb3V0aFwtdmlldG5hbTsKK+aDheazgSA+IGNpcmN1bXN0YW5jZXM7CivmhJvmho4gPiBsb3ZlXC1hbmRcLWhhdGU7Civogbflk6EgPiBvZmZpY2VcLXdvcmtlcjsKK+a0i+a6oiA+IGJyaW1taW5nXC13aXRoOwor5Y2U6Kq/ID4gdG9cLWNvb3JkaW5hdGU7CivlpKfpmKogPiBvc2FrYVwtXChqYXBhblwpOwor6ICD5oWuID4gdG9cLXRoaW5rXC1vdmVyOwor5YyX6YOoID4gbm9ydGhlcm5cLXBhcnQ7CivmnKzmhI8gPiBvcmlnaW5hbFwtaWRlYTsKK+eNqOaUrCA+IHRvXC1tb25vcG9saXplOwor5ZC45q+SID4gdG9cLXRha2VcLWRydWdzOwor5rOz5rGgID4gc3dpbW1pbmdcLXBvbmQ7CivkuIDmraUgPiBcKHNpbmdsZVwpXC1zdGVwOwor5YyX6LaKID4gbm9ydGhcLXZpZXRuYW07Civpm5zpoIUgPiBtaXNjZWxsYW5lb3VzOwor5ZOl5ZOlID4gb2xkZXJcLWJyb3RoZXI7CivlpJbpg6ggPiBleHRlcm5hbFwtcGFydDsKK+iBnuS6uiA+IGZhbW91c1wtcGVyc29uOwor5Lqs5YqHID4gYmVpamluZ1wtb3BlcmE7CivlkozlsJogPiBidWRkaGlzdFwtbW9uazsKK+iYh+W3niA+IHN1emhvdVwtXChjaXR5XCk7CivnpKbmsLQgPiBtaW5lcmFsXC13YXRlcjsKK+aakeawoyA+IFwoc3VtbWVyXClcLWhlYXQ7Civlk4DlkYogPiBiZWdcLXBpdGVvdXNseTsKK+aDheW9oiA+IGNpcmN1bXN0YW5jZXM7CivkuK3lvI8gPiBjaGluZXNlXC1zdHlsZTsKK+WkluiyvyA+IGZvcmVpZ25cLXRyYWRlOwor6YG/6ZujID4gXFt0YWtlXF1cLXJlZnVnZTsKK+WMheiisSA+IGNsb3RoXC13cmFwcGVyOwor5oSf5YaSID4gdG9cLWNhdGNoXC1jb2xkOwor5b2p6JqMID4gcGFpbnRlZFwtc2hlbGw7Civnpq7loIIgPiBhc3NlbWJseVwtaGFsbDsKK+S4jeaBrSA+IGRpc3Jlc3BlY3RmdWw7CivnuL3oqIggPiBcKGdyYW5kXClcLXRvdGFsOwor5aib5qiCID4gZW50ZXJ0YWlubWVudDsKK+S4reWtuCA+IG1pZGRsZVwtc2Nob29sOwor5LqU5LiAID4gNVwtMVwtXChtYXlcLTFzdFwpOwor56OB54mHID4gbWFnbmV0aWNcLWRpc2s7CivmnIPloLQgPiBtZWV0aW5nXC1wbGFjZTsKK+WqvuWSjCA+IHRvXC1tYWtlXC1wZWFjZTsKK+S4jeW3pyA+IHVuZm9ydHVuYXRlbHk7CivkuIrluIIgPiBvblwtdGhlXC1tYXJrZXQ7Civnp4HliKkgPiBwZXJzb25hbFwtZ2FpbjsKK+mBsumIjSA+IHNsb3dcLVwod2l0dGVkXCk7CivljJfnvo4gPiBub3J0aFwtYW1lcmljYTsKK+e2k+mplyA+IHRvXC1leHBlcmllbmNlOwor5rGy5rC0ID4gdG9cLWRyYXdcLXdhdGVyOwor542y5YudID4gYmVcLXZpY3RvcmlvdXM7Civop4Dpu54gPiBwb2ludFwtb2ZcLXZpZXc7CivmsLTniZsgPiB3YXRlclwtYnVmZmFsbzsKK+WQjOW5tCA+IHRoZVwtc2FtZVwteWVhcjsKK+iuiuaYnyA+IHZhcmlhYmxlXC1zdGFyOwor5q+b562GID4gd3JpdGluZ1wtYnJ1c2g7CivomIfkv4QgPiBzb3ZpZXRcLXJ1c3NpYTsKK+atpeihjCA+IHRvXC1nb1wtb25cLWZvb3Q7CivliKXpm6IgPiB0YWtlXC1sZWF2ZVwtb2Y7Civmk4XplbcgPiB0b1wtYmVcLWdvb2RcLWF0Owor5LiN5ZW7ID4gbm90XC1sZXNzXC10aGFuOwor5aSn57SEID4gYXBwcm94aW1hdGVseTsKK+eJjOeFpyA+IGxpY2Vuc2VcLXBsYXRlOwor5pqX5a6zID4ga2lsbFwtc2VjcmV0bHk7Civli4PoiIggPiByaXNlXC1zdWRkZW5seTsKK+WJjemAsiA+IHRvXC1nb1wtZm9yd2FyZDsKK+iuiuaFiyA+IG1ldGFtb3JwaG9zaXM7CivmgKfmhb4gPiBzZXh1YWxcLWRlc2lyZTsKK+WMr+eOhyA+IGV4Y2hhbmdlXC1yYXRlOwor5rK75a6JID4gbGF3XC1hbmRcLW9yZGVyOwor5qyj6LOeID4gdG9cLWFwcHJlY2lhdGU7Civpm4zoirEgPiBmZW1hbGVcLWZsb3dlcjsKK+mCpuiBryA+IGNvbmZlZGVyYXRpb247CivlpJrnqK4gPiBtYW55XC1raW5kc1wtb2Y7CivlkLjlhaUgPiB0b1wtYnJlYXRoZVwtaW47Civororlt6UgPiBleGNoYW5nZVwtd29yazsKK+WPl+WusyA+IHRvXC1iZVwtaW5qdXJlZDsKK+axuuW/gyA+IGRldGVybWluYXRpb247CivkuIvku6QgPiBnaXZlXC1hblwtb3JkZXI7CivojqvpgIYgPiB2ZXJ5XC1mcmllbmRseTsKK+avlOeGsSA+IHNwZWNpZmljXC1oZWF0Owor5piC5piCID4gaGlnaFwtc3Bpcml0ZWQ7CivliIbphY0gPiB0b1wtZGlzdHJpYnV0ZTsKK+WKoOe3iiA+IHRvXC1pbnRlbnNpZnk7CivnnaHoprogPiB0b1wtZ29cLXRvXC1iZWQ7Civml6nmnJ8gPiBlYXJseVwtcGVyaW9kOwor55u46ZecID4gaW50ZXJyZWxhdGVkOwor54Gr6b6NID4gZmllcnlcLWRyYWdvbjsKK+WQiOS9nCA+IHRvXC1jb29wZXJhdGU7CivmmbrlipsgPiBpbnRlbGxpZ2VuY2U7Civlv4zmhpogPiBiZVwtYWZyYWlkXC1vZjsKK+aYlOW5tCA+IGZvcm1lclwteWVhcnM7CivnpKbkupUgPiBtaW5lXC1cKHNoYWZ0XCk7Civnhp/nn6UgPiBhY3F1YWludGFuY2U7CivmlK/npaggPiBcKGJhbmtcKVwtY2hlY2s7Civlp5Dlp5AgPiBvbGRlclwtc2lzdGVyOwor6K2m5aCxID4gXChmaXJlXClcLWFsYXJtOwor5b6M5p6cID4gY29uc2VxdWVuY2VzOwor5aeK5aeKID4gb2xkZXJcLXNpc3RlcjsKK+aUtuebpCA+IG1hcmtldFwtY2xvc2U7Civln47pmLIgPiBjaXR5XC1kZWZlbmNlOwor6aCC5L2PID4gdG9cLXdpdGhzdGFuZDsKK+ilv+mDqCA+IHdlc3Rlcm5cLXBhcnQ7Civlpb3mhJ8gPiBnb29kXC1vcGluaW9uOwor5aSx5qWtID4gdW5lbXBsb3ltZW50Owor5pOF6IeqID4gdW5hdXRob3JpemVkOwor6YCV6IeqID4gb25cLW9uZScnc1wtb3duOwor57Si6LOgID4gY29tcGVuc2F0aW9uOwor6L+R6KaWID4gc2hvcnRzaWdodGVkOwor5q2l54qBID4gd2Fsa2luZ1wtcGxvdzsKK+ebuOitmCA+IGFjcXVhaW50YW5jZTsKK+mWi+mXnCA+IHBvd2VyXC1zd2l0Y2g7CivljrvkuJYgPiB0b1wtcGFzc1wtYXdheTsKK+WfueiokyA+IHRvXC1jdWx0aXZhdGU7CivlpJrmlrkgPiBpblwtbWFueVwtd2F5czsKK+aQtuizvCA+IHBhbmljXC1idXlpbmc7Civlt6Hov7QgPiB0b1wtZ29cLWFyb3VuZDsKK+mAmeeoriA+IHRoaXNcLWtpbmRcLW9mOwor5aSn5oSPID4gZ2VuZXJhbFwtaWRlYTsKK+WIpeeosSA+IGFub3RoZXJcLW5hbWU7CivmraXmraUgPiBzdGVwXC1ieVwtc3RlcDsKK+WNlOWVhiA+IGNvbnN1bHRcLXdpdGg7Civnn67mmJ8gPiBkd2FyZlwtXChzdGFyXCk7CivpgqPmmYIgPiBhdFwtdGhhdFwtdGltZTsKK+Wkp+W4qyA+IGdyZWF0XC1tYXN0ZXI7CivntYTnuZQgPiBvcmdhbml6YXRpb247CivpgJrnlKggPiBjb21tb25cLVwodXNlXCk7CivlpJrlt6UgPiB0b1wtbXVsdGlwbGV4Owor57O+6JGbID4gZW50YW5nbGVtZW50Owor6Kmm5o6iID4gdG9cLXNvdW5kXC1vdXQ7CivlpKvlprsgPiBtYW5cLWFuZFwtd2lmZTsKK+mBk+atiSA+IHRvXC1hcG9sb2dpemU7CivmlYXmhI8gPiBkZWxpYmVyYXRlbHk7Civoq4vllY8gPiBtYXlcLWlcLWFza1wuXC5cLjsKK+WHuueZvCA+IHRvXC1zdGFydFwtb3V0Owor57iu5a+rID4gYWJicmV2aWF0aW9uOwor5aOB5o6bID4gd2FsbFwtaGFuZ2luZzsKK+eGn+aCiSA+IHRvXC1rbm93XC13ZWxsOwor54af5oCdID4gZGVsaWJlcmF0aW9uOwor5pW05aSpID4gYWxsXC1kYXlcLWxvbmc7CivpsYnnlLIgPiB0dXJ0bGVcLXNoZWxsOwor6Lqr6auUID4gXChodW1hblwpXC1ib2R5Owor57O+57qPID4gYmVcLWVudGFuZ2xlZDsKK+ikh+ijvSA+IHRvXC1kdXBsaWNhdGU7Civpmorml5cgPiB0ZWFtXC1wZW5uYW50Owor5Yqg5by3ID4gdG9cLXJlaW5mb3JjZTsKK+WHuueNhCA+IGxlYXZlXC1wcmlzb247Civoq4fliKQgPiB0b1wtbmVnb3RpYXRlOwor55yL55eFID4gc2VlXC1hXC1kb2N0b3I7CivlvojkuI0gPiB2ZXJ5XC11blwtXC5cLlwuXC47Civmr4XlipsgPiBwZXJzZXZlcmFuY2U7CivokL3lr6YgPiB0b1wtaW1wbGVtZW50Owor5pSv5bqXID4gYnJhbmNoXC1zdG9yZTsKK+eZveiWryA+IHN3ZWV0XC1wb3RhdG87CivntrXml5cgPiBjb2xvcmVkXC1mbGFnOwor5Zue6aGnID4gdG9cLWxvb2tcLWJhY2s7Civmrq3ljJYgPiBiZWNvbWVcLXJpZ2lkOwor54CP6Ka9ID4gdG9cLXNraW1cLW92ZXI7CivoqrLkvZkgPiBhZnRlclwtc2Nob29sOwor6LuK6YGTID4gdHJhZmZpY1wtbGFuZTsKK+ato+WmgiA+IGJlXC1qdXN0XC1saWtlOwor57SZ54mMID4gcGxheWluZ1wtY2FyZDsKK+eZvOe0hSA+IGZsdXNoXC1cKGZhY2VcKTsKK+mbhuWQiCA+IGNvbmdyZWdhdGlvbjsKK+mAn+aIkCA+IGNyYXNoXC1jb3Vyc2U7CivlhYnnt5ogPiBvcHRpY2FsXC1saW5lOwor5Yqq5YqbID4gZ3JlYXRcLWVmZm9ydDsKK+W8leWFpSA+IHRvXC1kcmF3XC1pbnRvOwor5bug5Z2AID4gZmFjdG9yeVwtc2l0ZTsKK+maqOWQjCA+IGFjY29tcGFueWluZzsKK+eGkuWFiSA+IGZsb3VyZXNjZW5jZTsKK+W7o+WRiiA+IHRvXC1hZHZlcnRpc2U7CivmjKjov5EgPiBnZXRcLWNsb3NlXC10bzsKK+e3qOWKhyA+IHdyaXRlXC1hXC1wbGF5Owor5aOT5YCSID4gb3ZlcndoZWxtaW5nOwor5o6h6ISCID4gdHJlZVwtdGFwcGluZzsKK+eGn+S6uiA+IGFjcXVhaW50YW5jZTsKK+WfueakjSA+IHRvXC1jdWx0aXZhdGU7CivpgJ/lr6sgPiBxdWlja1wtc2tldGNoOwor6YCx5ZyNID4gc3Vycm91bmRpbmdzOwor5r++57SZID4gZmlsdGVyXC1wYXBlcjsKK+apn+aniyA+IG9yZ2FuaXphdGlvbjsKK+ioquS/hCA+IHZpc2l0XC1ydXNzaWE7Civmi5TpjKggPiB3ZWlnaFwtYW5jaG9yOwor5qiZ54eIID4gYmVhY29uXC1saWdodDsKK+WGsOaZtiA+IGljZVwtY3J5c3RhbHM7Civlub7lpKkgPiBzZXZlcmFsXC1kYXlzOwor5o6I57K+ID4gaW5zZW1pbmF0aW9uOwor6auS6KmxID4gYmFkXC1sYW5ndWFnZTsKK+WHueWyuCA+IGNvbmNhdmVcLWJhbms7CivpgY7kvoYgPiB0b1wtY29tZVwtb3ZlcjsKK+aTjeWLniA+IHRvXC13b3JrXC1oYXJkOwor5Yil5ZCNID4gYW5vdGhlclwtbmFtZTsKK+WFiea6kCA+IGxpZ2h0XC1zb3VyY2U7CivpgJ/lh40gPiBxdWlja1wtZnJlZXplOwor5Z2Q54miID4gaW1wcmlzb25tZW50Owor6KOc54mZID4gZmlsbFwtYVwtdG9vdGg7CivliKjliIAgPiBwbGFuaW5nXC10b29sOwor5oqK6ZecID4gZ3VhcmRcLWFcLXBhc3M7Civoh6rooZsgPiBzZWxmXC1kZWZlbnNlOwor6Zmb5LiLID4geW91clwtbWFqZXN0eTsKK+WFq+aciCA+IGVpZ2h0aFwtbW9udGg7CivlgpnogIMgPiBcKGFuXC1hcHBlbmRpeDsKK+W5tOWJjSA+IFwuXC5cLnllYXJzXC1hZ287CivnsKHnqLEgPiBhYmJyZXZpYXRpb247CivliKXkurogPiBvdGhlclwtcGVvcGxlOwor6ZaL5pSvID4gZXhwZW5kaXR1cmVzOwor5o2P56mNID4gY2hpcm9wcmFjdGljOwor5aCx5YO5ID4gcXVvdGVkXC1wcmljZTsKK+i/t+S/oSA+IHN1cGVyc3RpdGlvbjsKK+i9ieaPmyA+IHRvXC10cmFuc2Zvcm07CivmkKzlrrYgPiBtb3ZlXC1cKGhvdXNlXCk7CivmiLbpoK0gPiBiYW5rXC1hY2NvdW50Owor6Kaq5L+hID4gdHJ1c3RlZFwtYWlkZTsKK+ihjOeoiyA+IHRyYXZlbFwtcm91dGU7CivlmrTnq6MgPiB0aWdodFwuc3RyaWN0Owor55yL5L2cID4gbG9va1wtdXBvblwtYXM7Civlr6fpoZggPiB3b3VsZFwtcmF0aGVyOwor5o6l5p6dID4gXCh0cmVlXClcLWdyYWZ0Owor5o6I5qyKID4gdG9cLWF1dGhvcml6ZTsKK+mWi+WtuCA+IHNjaG9vbFwtb3BlbnM7Civkv53orYkgPiB0b1wtZ3VhcmFudGVlOwor5om56KmVID4gdG9cLWNyaXRpY2l6ZTsKK+aLlOe1siA+IHdpcmVcLWRyYXdpbmc7CivlmIboqZ4gPiBpbnRlcmplY3Rpb247CivmiZPos60gPiBcKG1ha2VcLWFcKVwtYmV0Owor5YSq5oOgID4gcHJlZmVyZW50aWFsOwor5YWs5aCxID4gYW5ub3VuY2VtZW50Owor5a+G6ZuGID4gY29uY2VudHJhdGVkOwor5o6I5pmCID4gdGltZVwtc2VydmljZTsKK+WcqOaXgSA+IGJ5XC1cKGFcLXBsYWNlXCk7Civmi7znm6QgPiBjb2xkXC1wbGF0dGVyOwor5o2Q5qy+ID4gZG9uYXRlXC1tb25leTsKK+Wci+aciSA+IG5hdGlvbmFsaXplZDsKK+S+neiztCA+IHRvXC1kZXBlbmRcLW9uOwor57O75LiKID4gdG9cLWJ1Y2tsZVwtdXA7Civog4zpm6IgPiBkZXZpYXRlXC1mcm9tOwor5oyJ54WnID4gYWNjb3JkaW5nXC10bzsKK+WBtueEtiA+IGluY2lkZW50YWxseTsKK+WWiemPoSA+IGxhcnluZ29zY29wZTsKK+iDjOmZsCA+IGluXC10aGVcLXNoYWRlOwor5ryU566XID4gdG9cLWNhbGN1bGF0ZTsKK+WFqeWNgyA+IHR3b1wtdGhvdXNhbmQ7Civmj5LlnJYgPiBpbGx1c3RyYXRpb247Civlr6norbAgPiBkZWxpYmVyYXRpb247CivnrqHnkIYgPiB0b1wtc3VwZXJ2aXNlOwor5qKF6IqxID4gcGx1bVwtYmxvc3NvbTsKK+eVtueEtiA+IG9ubHlcLW5hdHVyYWw7CivmqJnlg7kgPiBtYXJrXC1hXC1wcmljZTsKK+ajkuehqyA+IHJvbGxcLXN1bHBodXI7CivlrZ3poIYgPiBmaWxpYWxcLXBpZXR5Owor6aWF6aCtID4gc3RlYW1lZFwtcm9sbDsKK+S/neeuoSA+IHRha2VcLWNhcmVcLW9mOwor5Z6C5LiLID4gdG9cLWhhbmdcLWRvd247Civoo4Hlk6EgPiB0b1wtY3V0XC1zdGFmZjsKK+a4hemGkiA+IGNsZWFyXC1oZWFkZWQ7CivnlbDmraUgPiBhc3luY2hyb25vdXM7Civoo5zlhYUgPiB0b1wtcmVwbGVuaXNoOwor5L6/56eYID4gY29uc3RpcGF0aW9uOwor55eF5bqKID4gaG9zcGl0YWxcLWJlZDsKK+aemOmRvyA+IGluY29tcGF0aWJsZTsKK+WaruW+gCA+IHRvXC15ZWFyblwtZm9yOwor6Ieq5ouUID4gZnJlZVwtb25lc2VsZjsKK+iIquWkqSA+IHNwYWNlXC1mbGlnaHQ7CivmjbLlhaUgPiB0b1wtZHJhd1wtaW50bzsKK+mrmOWvhiA+IGhpZ2hcLWRlbnNpdHk7CivooajlnJ8gPiBzdXJmYWNlXC1zb2lsOwor6LOe6K2YID4gYXBwcmVjaWF0aW9uOwor5oW26LOAID4gY29uZ3JhdHVsYXRlOwor5raI6ZmkID4gdG9cLWVsaW1pbmF0ZTsKK+ihl+WdiiA+IG5laWdoYm9yaG9vZDsKK+eRnuiJsiA+IGxvdmVseVwtY29sb3I7Civogb3oqqogPiB0b1wtaGVhclwtdG9sZDsKK+eVtuW/gyA+IHRvXC10YWtlXC1jYXJlOwor55Ww5oCnID4gaGV0ZXJvc2V4dWFsOwor5Lqk6YuSID4gY3Jvc3NcLXN3b3JkczsKK+iIiOWlriA+IFwoYmVcKVwtZXhjaXRlZDsKK+Wuh+iIqiA+IHNwYWNlXC1mbGlnaHQ7Civnpr3poZ4gPiBiaXJkXC1zcGVjaWVzOwor5YG95ZaEID4gaHlwb2NyaXRpY2FsOwor5oqx5oSnID4gZmVlbFwtYXNoYW1lZDsKK+iyoOiyrCA+IGluXC1jaGFyZ2VcLW9mOwor54++6KGMID4gYmVcLWluXC1lZmZlY3Q7CivlsYjmnI0gPiB0b1wtc3VycmVuZGVyOwor5rib57epID4gdG9cLXNsb3dcLWRvd247CivkuIvpvZIgPiBib3R0b21cLXRlZXRoOwor5aqS6auUID4gXChuZXdzXClcLW1lZGlhOwor56uf54S2ID4gdW5leHBlY3RlZGx5Owor6ama5oSVID4gYXN0b25pc2htZW50Owor55W25aC0ID4gYXRcLXRoZVwtc2NlbmU7CivlqZrpvaEgPiBtYXJyeWluZ1wtYWdlOwor5oqx5bGIID4gZmVlbFwtd3JvbmdlZDsKK+mjn+itnCA+IGNvb2tlcnlcLWJvb2s7CivkuKbpnZ4gPiByZWFsbHlcLWlzbicndDsKK+eqgeegtCA+IGJyZWFrdGhyb3VnaDsKK+S+teaZqCA+IHRvd2FyZHNcLWRhd247CivmvKLln44gPiBzZW91bFwsXC1rb3JlYTsKK+WwkeaVuCA+IHNtYWxsXC1udW1iZXI7CivnlbbliJ0gPiBhdFwtdGhhdFwtdGltZTsKK+aLjOWSjCA+IG1peFwtYW5kXC1zdGlyOwor5rWB6YCaID4gdG9cLWNpcmN1bGF0ZTsKK+WSqOipoiA+IGNvbnN1bHRhdGl2ZTsKK+aJkuaLiSA+IHB1c2hcLWxpZ2h0bHk7CivlsIjmlL8gPiBkaWN0YXRvcnNoaXA7Civpo7zojYkgPiBmb3JhZ2VcLWdyYXNzOwor6by76IWUID4gbmFzYWxcLWNhdml0eTsKK+a1tOihgCA+IGJsb29kXC1zb2FrZWQ7Civkvp3mk5ogPiBhY2NvcmRpbmdcLXRvOwor5bGs5ZyLID4gdmFzc2FsXC1zdGF0ZTsKK+mLvOethiA+IGZvdW50YWluXC1wZW47CivlgYnkurogPiBncmVhdFwtcGVyc29uOwor5a6J54efID4gcGl0Y2hcLWFcLWNhbXA7Civlkozop6MgPiBjb25jaWxpYXRvcnk7Civlr6bmlr0gPiB0b1wtaW1wbGVtZW50Owor5qKd5a2QID4gYVwtc2hvcnRcLW5vdGU7CivmoLnmnKwgPiBcKG5vdFwpXC1hdFwtYWxsOwor56iu56iuID4gYWxsXC1raW5kc1wtb2Y7CivmiYvluJUgPiBoYW5ka2VyY2hpZWY7Civms5XpmaIgPiBjb3VydFwtb2ZcLWxhdzsKK+agueaTmiA+IGFjY29yZGluZ1wtdG87CivmsrPppqwgPiBoaXBwb3BvdGFtdXM7CivnlJ/lkb0gPiBsaWZlXC1cKGZvcmNlXCk7CivkuLvop5IgPiBsZWFkaW5nXC1yb2xlOwor5rer54ylID4gYWJvbWluYXRpb25zOwor55Si5Y21ID4gbGF5XC1cKGFuXC1lZ2dcKTsKK+aenOeariA+IFwoZnJ1aXRcKVwtcGVlbDsKK+eNqOijgSA+IGRpY3RhdG9yc2hpcDsKK+S4jei2syA+IGluc3VmZmljaWVudDsKK+WutuaUvyA+IGhvdXNla2VlcGluZzsKK+S4jeiysiA+IGltbWVhc3VyYWJsZTsKK+aZmumkkCA+IGV2ZW5pbmdcLW1lYWw7CivkvZzmhJsgPiB0b1wtbWFrZVwtbG92ZTsKK+iYh+iBryA+IHNvdmlldFwtdW5pb247CivlrrPmgJUgPiB0b1wtYmVcLWFmcmFpZDsKK+aZmumWkyA+IGV2ZW5pbmdcLXRpbWU7CivkupTnmb4gPiBmaXZlXC1odW5kcmVkOwor5ZKM57SEID4gcGVhY2VcLXRyZWF0eTsKK+itiemplyA+IHJlYWxcLXJlc3VsdHM7Civmh4rmgpQgPiBmZWVsXC1yZW1vcnNlOwor5omj5LiKID4gdG9cLWJ1Y2tsZVwtdXA7Civkv4TkuK0gPiBydXNzaWFcLWNoaW5hOwor5LiA6JCsID4gdGVuXC10aG91c2FuZDsKK+iuiumAnyA+IHNwZWVkXC1jaGFuZ2U7Civlronlv4MgPiBmZWVsXC1hdFwtZWFzZTsKK+S6uuawkSA+IFwodGhlXClcLXBlb3BsZTsKK+Wwh+S+hiA+IFwodGhlXClcLWZ1dHVyZTsKK+mhjOiKsSA+IHRpdGxlXC1kZXNpZ247Civlj6/op4AgPiBjb25zaWRlcmFibGU7CivkurrmrIogPiBodW1hblwtcmlnaHRzOwor6LaV5LiKID4ga2VlcFwtdXBcLXdpdGg7CivogqHluIIgPiBzdG9ja1wtbWFya2V0Owor56e75rCRID4gdG9cLWltbWlncmF0ZTsKK+a3seaEmyA+IGFmZmVjdGlvbmF0ZTsKK+S7iuaZqCA+IHRoaXNcLW1vcm5pbmc7Civlr4blj4sgPiBjbG9zZVwtZnJpZW5kOwor5a2Y5b+DID4gZGVsaWJlcmF0ZWx5Owor5Y2X6Z2eID4gc291dGhcLWFmcmljYTsKK+S4jeespiA+IGluY29uc2lzdGVudDsKK+WRiuekuiA+IGFubm91bmNlbWVudDsKK+S4ueeUsCA+IHB1YmljXC1yZWdpb247CivljYrpn78gPiBoYWxmXC10aGVcLWRheTsKK+S4u+eSsCA+IHByaW1hcnlcLXJpbmc7CivkvaDlgJEgPiB5b3VcLVwocGx1cmFsXCk7CivkuIDnm7QgPiBjb250aW51b3VzbHk7Civlp7/oibIgPiBnb29kXC1sb29raW5nOwor5pqX566XID4gcGxvdFwtYWdhaW5zdDsKK+eojeW+riA+IGFcLWxpdHRsZVwtYml0Owor5Lqu5bqmID4gaWxsdW1pbmF0aW9uOwor5Y+D6ICDID4gY29uc3VsdGF0aW9uOwor5Lq65a62ID4gb3RoZXJcLXBlb3BsZTsKK+Wjr+m6lyA+IG1hZ25pZmljZW5jZTsKK+m7qOaUvyA+IHBhcnR5XC1wb2xpY3k7CivomZDlvoUgPiBtaXN0cmVhdG1lbnQ7CivmhJ/mgakgPiB0aGFua3NnaXZpbmc7CivnvbDnkIMgPiBwZW5hbHR5XC1zaG90Owor6LK75Z+OID4gcGhpbGFkZWxwaGlhOwor5rK555WrID4gb2lsXC1wYWludGluZzsKK+e+jua0siA+IHRoZVwtYW1lcmljYXM7Civosqflm7AgPiBpbXBvdmVyaXNoZWQ7Civkup7lpKogPiBhc2lhXC1wYWNpZmljOwor5aSn6YePID4gZ3JlYXRcLWFtb3VudDsKK+mggueUqCA+IHRvXC1iZVwtb2ZcLXVzZTsKK+iyu+WKmyA+IGdyZWF0XC1lZmZvcnQ7CivmmpfngZggPiBoaWRkZW5cLXNob2FsOwor6Jel5pa5ID4gcHJlc2NyaXB0aW9uOwor5Li75oyBID4gcHJlc2lkZVwtb3ZlcjsKK+mKgOW5lSA+IG1vdmllXC1zY3JlZW47CivogIHlrrYgPiBuYXRpdmVcLXBsYWNlOwor5pqX5r2uID4gdW5kZXJjdXJyZW50Owor6LK35YO5ID4gYnV5aW5nXC1wcmljZTsKK+WkmumCiiA+IG11bHRpbGF0ZXJhbDsKK+ePvuS7oyA+IG1vZGVyblwtdGltZXM7Civku5bkurogPiBvdGhlclwtcGVyc29uOwor5LmL5b6MID4gYWZ0ZXJcKHdhcmRzXCk7CivmhaPkvosgPiBjb252ZW50aW9uYWw7CivkuKbmjpIgPiBzaWRlXC1ieVwtc2lkZTsKK+iAleWcsCA+IGFyaWFibGVcLWxhbmQ7CivmmpfmtYEgPiB1bmRlcmN1cnJlbnQ7CivmtbTloLQgPiBiYXRoaW5nXC1zcG90Owor5LiN5paZID4gdW5leHBlY3RlZGx5Owor6JOL6I+cID4gbGVhZlwtbXVzdGFyZDsKK+itmOegtCA+IHRvXC1wZW5ldHJhdGU7CivkuI3mi5ggPiBub3RcLXN0aWNrXC10bzsKK+m8k+WLtSA+IHRvXC1lbmNvdXJhZ2U7Civpnq3noLIgPiBmaXJlY3JhY2tlcnM7CivmhJ/li5UgPiB0b1wtbW92ZVwtXChzYlwpOwor5oSP5ZGzID4gc2lnbmlmaWNhbmNlOwor5LiN5oSnID4gYmVcLXdvcnRoeVwtb2Y7CivkuI3mhI8gPiB1bmV4cGVjdGVkbHk7CivpnbbntJkgPiB0YXJnZXRcLXNoZWV0Owor5oSI5YqgID4gYWxsXC10aGVcLW1vcmU7CivpgaDpm6IgPiByZW1vdmVkXC1mcm9tOwor5ZKM5ZaEID4gZ29vZFwtbmF0dXJlZDsKK+iqjeitiSA+IGF1dGhlbnRpY2F0ZTsKK+WIqOm9kiA+IGdlYXJcLXNoYXBpbmc7Civms6jmhI8gPiB0YWtlXC1ub3RlXC1vZjsKK/CmiYYgPiB0b1wtYnJlYWtcLW9mZjsKK+miqOWRsyA+IGxvY2FsXC1mbGF2b3I7CivnuaHoirEgPiB0b1wtZW1icm9pZGVyOwor55+l6K2YID4gaW50ZWxsZWN0dWFsOwor5pqX5o6iID4gc2VjcmV0XC1hZ2VudDsKK+aatOaAkiA+IHZpb2xlbnRcLXJhZ2U7CivkuI3lrrkgPiBub3RcLXRvbGVyYXRlOwor5LiN5a6cID4gbm90XC1zdWl0YWJsZTsKK+eKr+avkiA+IGlsbGVnYWxcLWRydWc7CivlpKfoh7QgPiBtb3JlXC1vclwtbGVzczsKK+WlveeciyA+IGdvb2RcLWxvb2tpbmc7CivkuI3lpoIgPiBub3RcLWVxdWFsXC10bzsKK+W+l+elqCA+IHZvdGVcLWdldHRpbmc7CivmtL7liKUgPiBkZW5vbWluYXRpb247Civnt5rou7ggPiB0aHJlYWRcLXNwb29sOwor5pyJ5YipID4gYWR2YW50YWdlb3VzOwor6KiC6ZaxID4gc3Vic2NyaXB0aW9uOwor5oGi5b6pID4gdG9cLXJlaW5zdGF0ZTsKK+mAmemghSA+IHRoaXNcLVwodGhpbmdcKTsKK+WPr+aDnCA+IGl0XC1pc1wtYVwtcGl0eTsKK+WpmuWkliA+IGV4dHJhbWFyaXRhbDsKK+S4jeWWriA+IG5vdFwtdGhlXC1vbmx5Owor6YGL6YCBID4gdG9cLXRyYW5zcG9ydDsKK+S5i+S4gCA+IG9uZVwtb2ZcLVwoc3RoXCk7CivlooPpgYcgPiBjaXJjdW1zdGFuY2U7Civph47lv4MgPiB3aWxkXC1zY2hlbWVzOwor5pWX6IiIID4gZGlzYXBwb2ludGVkOwor5Y275q2lID4gdG9cLXN0ZXBcLWJhY2s7CivkuK3kv4QgPiBjaGluYVwtcnVzc2lhOwor5Y2x5q6GID4gZ3JhdmVcLWRhbmdlcjsKK+S4reS6niA+IGNlbnRyYWxcLWFzaWE7CivorormgKcgPiBkZW5hdHVyYXRpb247Civljp/mlpkgPiByYXdcLW1hdGVyaWFsOwor5LiN5YipID4gdW5mYXZvdXJhYmxlOwor5LiA5Y2DID4gb25lXC10aG91c2FuZDsKK+eIhueZvCA+IHRvXC1icmVha1wtb3V0Owor5aSa56uZID4gbXVsdGlzdGF0aW9uOwor5rCn5rCjID4gb3h5Z2VuXC1cKGdhc1wpOwor5b+15pelID4gbWVtb3JpYWxcLWRheTsKK+WQhOWciyA+IGVhY2hcLWNvdW50cnk7CivkuI3kvr8gPiBpbmNvbnZlbmllbnQ7CivmmYLmhYsgPiBcKHZlcmJcKVwtdGVuc2U7CivnvoXliJcgPiB0b1wtc3BlYWRcLW91dDsKK+S4gOWEhCA+IDFcLTAwXC1taWxsaW9uOwor5b6p5rS7ID4gcmVzdXJyZWN0aW9uOwor5pq05YuVID4gaW5zdXJyZWN0aW9uOwor6Z225qmfID4gdGFyZ2V0XC1kcm9uZTsKK+mBi+ihjCA+IGJlXC1pblwtbW90aW9uOwor57eo6IieID4gY2hvcmVvZ3JhcGh5Owor5q+U54WnID4gYWNjb3JkaW5nXC10bzsKK+Wjk+e4riA+IHRvXC1jb21wcmVzczsKK+ioquiPryA+IHZpc2l0XC1jaGluYTsKK+iqjeefpSA+IGFja25vd2xlZGdlOwor5Y+r5ZaKID4gZXhjbGFtYXRpb247CivpgKPoqZ4gPiBjb25qdW5jdGlvbjsKK+W8iuerryA+IG1hbHByYWN0aWNlOwor6Z2e5qC4ID4gbm9uXC1udWNsZWFyOwor5pS256mrID4gYWNxdWlzaXRpb247CivmsJHml48gPiBuYXRpb25hbGl0eTsKK+aal+S6lSA+IGJsaW5kXC1zaGFmdDsKK+aal+S4rSA+IGluXC10aGVcLWRhcms7Civnn5rnm64gPiB0b1wtZm9jdXNcLW9uOwor5biD6Z6LID4gY2xvdGhcLXNob2VzOwor5Z+L6aCtID4gc3RlYW1lZFwtYnVuOwor5Yik6JmVID4gdG9cLXNlbnRhbmNlOwor5Yi76IumID4gaGFyZHdvcmtpbmc7CivmqJnpu54gPiBwdW5jdHVhdGlvbjsKK+eZvem6tSA+IHdoZWF0XC1mbG91cjsKK+WGkumaqiA+IHRha2VcLWFcLXJpc2s7Civnmb3ptrQgPiB3aGl0ZVwtY3JhbmU7CivlvoDmmJQgPiBpblwtdGhlXC1wYXN0Owor6YKK55aGID4gYm9yZGVyXC1hcmVhOwor6K6T5L2NID4gdG9cLWFiZGljYXRlOwor5oCq5YO7ID4gcGVjdWxpYXJpdHk7CivlvoHmlLYgPiBsZXZ5XC1cKGZpbmVcKTsKK+avjeadvyA+IG1vdGhlcmJvYXJkOwor6ZyA5rGCID4gcmVxdWlyZW1lbnQ7CivlpKfmpa0gPiBncmVhdFwtY2F1c2U7Civml7rlraMgPiBidXN5XC1zZWFzb247Civlv4XlrpogPiBiZVwtYm91bmRcLXRvOwor5Y2K5bm0ID4gaGFsZlwtYVwteWVhcjsKK+iqsuahjCA+IHNjaG9vbFwtZGVzazsKK+mWk+malCA+IGNvbXBhcnRtZW50Owor6YGy55aRID4gdG9cLWhlc2l0YXRlOwor6Z2I5oSfID4gaW5zcGlyYXRpb247CivlpLHmlZcgPiBiZVwtZGVmZWF0ZWQ7CivoqqrmnI0gPiB0b1wtcGVyc3VhZGU7CivliLbntIQgPiB0b1wtcmVzdHJpY3Q7Civpno/lm7ogPiBjb25zb2xpZGF0ZTsKK+WMheaLrCA+IHRvXC1jb21wcmlzZTsKK+WmpeWWhCA+IGFwcHJvcHJpYXRlOwor6L6v6Ki8ID4gZGlhbGVjdGljYWw7CivngInpub0gPiBlcHNvbVwtc2FsdHM7CivopIfpm5wgPiBjb21wbGljYXRlZDsKK+WNs+WIuyA+IGltbWVkaWF0ZWx5Owor5YuY5o6iID4gZXhwbG9yYXRpb247CivljZrlj5YgPiB0cnlcLXRvXC1nYWluOwor5pS+5qOEID4gdG9cLXJlbm91bmNlOwor5Yaw6JuLID4gZnJvemVuXC1lZ2dzOwor6Zi756SZID4gdG9cLW9ic3RydWN0Owor6L+956m2ID4gaW52ZXN0aWdhdGU7Civpg7XlsYAgPiBwb3N0XC1vZmZpY2U7Civpm5nmlbggPiBldmVuXC1udW1iZXI7CivokpDlsIsgPiB0b1wtbG9va1wtZm9yOwor55m96YGTID4gbW9vbicnc1wtcGF0aDsKK+WLleaFiyA+IGRldmVsb3BtZW50Owor5rC45LmFID4gZXZlcmxhc3Rpbmc7CivnmbzpgIEgPiB0b1wtdHJhbnNtaXQ7CivphY3lgpkgPiB0b1wtYWxsb2NhdGU7CivorIDlj5YgPiB0cnlcLXRvXC1nYWluOwor5q+U5aaCID4gZm9yXC1leGFtcGxlOwor5aSa5bGxID4gbW91bnRhaW5vdXM7Civpm7vlt6UgPiBlbGVjdHJpY2lhbjsKK+e0heiJsiA+IHJlZFwtXChjb2xvclwpOwor5o+P6L+wID4gdG9cLWRlc2NyaWJlOwor5Y2B5YSEID4gb25lXC1iaWxsaW9uOwor5YW16J+7ID4gc29sZGllclwtYW50Owor5q+A5aOeID4gZGVzdHJ1Y3Rpb247CivliYrmuJsgPiB0b1wtY3V0XC1kb3duOwor5pel5LitID4gamFwYW5cLWNoaW5hOwor6Zqo5pmCID4gYXRcLWFueVwtdGltZTsKK+iovOabuCA+IGNlcnRpZmljYXRlOwor6ZW36KuHID4gYVwtbG9uZ1wtdGFsazsKK+Wkp+WeiyA+IGxhcmdlXC1zY2FsZTsKK+ijnOmBuCA+IGJ5XC1lbGVjdGlvbjsKK+iQveW+jCA+IGZhbGxcLWJlaGluZDsKK+aOqOmBsiA+IHRvXC1wb3N0cG9uZTsKK+aTjeazlSA+IGRyaWxsXC1ydWxlczsKK+i7jemaiiA+IGFybXlcLXRyb29wczsKK+aoueiRiSA+IHRyZWVcLWxlYXZlczsKK+WJm+aetiA+IHJpZ2lkXC1mcmFtZTsKK+irh+WIsCA+IHRvXC1yZWZlclwtdG87Civlho3ogIUgPiBmdXJ0aGVybW9yZTsKK+iqv+WItiA+IHRvXC1tb2R1bGF0ZTsKK+WfuuefsyA+IGNvcm5lcnN0b25lOwor5b6A5LqLID4gcGFzdFwtZXZlbnRzOwor5aSn5YqfID4gZ3JlYXRcLW1lcml0Owor6KOB6LuNID4gZGlzYXJtYW1lbnQ7CivoqqHlkb0gPiBjb21tYW5kbWVudDsKK+WFp+iHoyA+IGNoYW1iZXJsYWluOwor5Z2m6JWpID4gbWFnbmFuaW1vdXM7CivmjqLoqI4gPiBpbnZlc3RpZ2F0ZTsKK+WinuW8tyA+IHRvXC1pbmNyZWFzZTsKK+mBteWuiCA+IGNvbXBseVwtd2l0aDsKK+mZkOaWvCA+IHJlc3RyaWN0XC1hdDsKK+mWiee2kyA+IGFtZW5vcnJob2VhOwor6KqN5Ye6ID4gcmVjb2duaXRpb247CivlhY3ogbcgPiBkZWdyYWRhdGlvbjsKK+W3peeoiyA+IGVuZ2luZWVyaW5nOwor6KiY5b6XID4gdG9cLXJlbWVtYmVyOwor5pO65biDID4gb3JkZXJcLWFib3V0Owor6YCP5piOID4gdHJhbnNwYXJlbnQ7CivlipvlnJYgPiB0cnlcLWhhcmRcLXRvOwor6L+95p+lID4gaW52ZXN0aWdhdGU7Civlhbjnpq4gPiBjZWxlYnJhdGlvbjsKK+WIkeacnyA+IHByaXNvblwtdGVybTsKK+eyvuewoSA+IHRvXC1zaW1wbGlmeTsKK+iKseiMtiA+IHNjZW50ZWRcLXRlYTsKK+aVo+S9iCA+IGRpc3NlbWluYXRlOwor6KaG5ruFID4gZGVzdHJ1Y3Rpb247CivnsL/oqJggPiBib29ra2VlcGluZzsKK+inuOaAkiA+IHByb3ZvY2F0aW9uOwor5pSq5ZKMID4gdG9cLW1peFwtXCh1cFwpOwor5o+P57mqID4gdG9cLWRlc2NyaWJlOwor6YCx5bm0ID4gYW5uaXZlcnNhcnk7CivntZXmnJsgPiBkZXNwZXJhdGlvbjsKK+aVl+S7lyA+IGxvc3RcLWJhdHRsZTsKK+WinuWkmiA+IHRvXC1pbmNyZWFzZTsKK+e1kOadnyA+IHRlcm1pbmF0aW9uOwor54Sh5oSPID4gaW5hZHZlcnRhbnQ7CivpgorljYAgPiBib3JkZXJcLWFyZWE7Civnm7jmr5QgPiBjb21wYXJlZFwtdG87CivopobmspIgPiBhbm5paGlsYXRlZDsKK+ecieaioiA+IHRpcFwtb2ZcLWJyb3c7CivliIfmj5sgPiB0b1wtY3V0XC1vdmVyOwor5YWp55m+ID4gdHdvXC1odW5kcmVkOwor6KmV5YO5ID4gdG9cLWV2YWx1YXRlOwor5bSp6KOCID4gYnVyc3RcLWFwYXJ0Owor5Yqg5LulID4gaW5cLWFkZGl0aW9uOwor5oyJ6YiVID4gcHVzaFwtYnV0dG9uOwor6L6y5qWtID4gYWdyaWN1bHR1cmU7CivloLHmh4kgPiByZXRyaWJ1dGlvbjsKK+W5vuW5tCA+IGFcLWZld1wteWVhcnM7Civnm7zmnJsgPiB0b1wtaG9wZVwtZm9yOwor6ZqK5ZOhID4gdGVhbVwtbWVtYmVyOwor6KGM6LmkID4gd2hlcmVhYm91dHM7CivmlK/ku5ggPiBwYXlcLVwobW9uZXlcKTsKK+ihqOiqniA+IHByZWRpY2F0aXZlOwor6Ki75YaKID4gdG9cLXJlZ2lzdGVyOwor6ZmE5bGsID4gc3Vib3JkaW5hdGU7Civlgb3ou40gPiBwdXBwZXRcLWFybXk7CivlhKrnp4AgPiBvdXRzdGFuZGluZzsKK+mrlOiyvCA+IGNvbnNpZGVyYXRlOwor5Z+35pS/ID4gYmVcLWluXC1wb3dlcjsKK+mtmuervyA+IGZpc2hpbmdcLXJvZDsKK+W4jOacmyA+IHJvXC13aXNoXC1mb3I7CivntITmnIMgPiBhcHBvaW50bWVudDsKK+mrlOiqjSA+IHJlYWxpemF0aW9uOwor5bm45aW9ID4gZm9ydHVuYXRlbHk7CivmjojnsokgPiBwb2xsaW5hdGlvbjsKK+ijveeJhyA+IG1vdmllbWFraW5nOwor5qmf5pyDID4gb3Bwb3J0dW5pdHk7Civpl5zmirwgPiBwdXRcLWluXC1qYWlsOwor6KiY5L2PID4gdG9cLXJlbWVtYmVyOwor54GM5rqJID4gdG9cLWlycmlnYXRlOwor6YCa5ZGKID4gdG9cLWFubm91bmNlOwor6amV6Zm9ID4gYmxhemluZ1wtc3VuOwor5r+D57iuID4gY29uY2VudHJhdGU7CivlnIvnsY0gPiBuYXRpb25hbGl0eTsKK+WJjeS7uyA+IHByZWRlY2Vzc29yOwor6Luf56KfID4gZmxvcHB5XC1kaXNrOwor6Luf55ukID4gZmxvcHB5XC1kaXNrOwor5bGP6ZaAID4gc2NyZWVuXC1kb29yOwor5ouc6KiqID4gcGF5XC1hXC12aXNpdDsKK+mAgOWHuiA+IHRvXC13aXRoZHJhdzsKK+aOoeeFpCA+IGNvYWxcLW1pbmluZzsKK+W5s+WHoSA+IGNvbW1vbnBsYWNlOwor5ous6JmfID4gcGFyZW50aGVzaXM7Civkvr/pnosgPiBjbG90aFwtc2hvZXM7Civmu7LpgI8gPiB0b1wtcGVybWVhdGU7Civlgbfogb0gPiB0b1wtZXZlc2Ryb3A7Civlh7rlhbUgPiBzZW5kXC10cm9vcHM7Civln7nlnJ8gPiB0b1wtZWFydGhcLXVwOwor6ZaL5oiwID4gc3RhcnRcLWFcLXdhcjsKK+WIhuS9iCA+IGRpc3RyaWJ1dGVkOwor6L+35Lq6ID4gZmFzY2luYXRpbmc7Civlh7rkvoYgPiB0b1wtY29tZVwtb3V0Owor5L+h6YGTID4gc2lnbmFsXC1wYXRoOwor6a2U5rOVID4gZW5jaGFudG1lbnQ7CivnlLPoq4sgPiBhcHBseVwtXChmb3JcKTsKK+i3kei7iiA+IHJhY2luZ1wtYmlrZTsKK+aPj+aRuSA+IHRvXC1kZXNjcmliZTsKK+WFq+W5tCA+IGVpZ2h0XC15ZWFyczsKK+exjOasviA+IGZ1bmRyYWlzaW5nOwor5Z+f5ZCNID4gZG9tYWluXC1uYW1lOwor5YWr5a2XID4gY2hhcmFjdGVyXC04Owor55u45Ly8ID4gdG9cLXJlc2VtYmxlOwor5oyq55SoID4gdG9cLWVtYmV6emxlOwor55m85bGVID4gZGV2ZWxvcG1lbnQ7Civoo53mia4gPiBkcmVzc1wtdXBcLWFzOwor5Z+O5Y2AID4gY2l0eVwtcHJvcGVyOwor5rqd6YCaID4gY29tbXVuaWNhdGU7CivngrrkuoYgPiBpblwtb3JkZXJcLXRvOwor55m95a6uID4gd2hpdGVcLWhvdXNlOwor5Yag5YaVID4gcm95YWxcLWNyb3duOwor5YOP5qijID4gcHJlc2VudGFibGU7Civlt6flkIggPiBjb2luY2lkZW5jZTsKK+aIsOi7iiA+IHdhclwtY2hhcmlvdDsKK+eZveWknCA+IHdoaXRlXC1uaWdodDsKK+iKseW6lyA+IGZsb3dlclwtc2hvcDsKK+aPj+WvqyA+IHRvXC1kZXNjcmliZTsKK+S+v+imvSA+IGJyaWVmXC1ndWlkZTsKK+iIiueJiCA+IG9sZFwtdmVyc2lvbjsKK+WboOatpCA+IHRoYXRcLWlzXC13aHk7Civlr6bouJAgPiB0b1wtcHJhY3RpY2U7CivlsIvoppMgPiB0b1wtbG9va1wtZm9yOwor55Ge6ZuqID4gdGltZWx5XC1zbm93Owor5YWs5YWDID4gXCh5ZWFyXClcLWFcLmRcLjsKK+iJsuaDhSA+IHBvcm5vZ3JhcGh5Owor5L6G6KiqID4gcGF5XC1hXC12aXNpdDsKK+eZveWIgyA+IG5ha2VkXC1zd29yZDsKK+eZvOWHuiA+IHRvXC1zZW5kXC1vdXQ7CivlsLHogbcgPiB0YWtlXC1vZmZpY2U7Civmi5Tnh58gPiBzdHJpa2VcLWNhbXA7CivmiornqakgPiB0cnVzdHdvcnRoeTsKK+WuueiyjCA+IGNvdW50ZW5hbmNlOwor6IiS5pyNID4gY29tZm9ydGFibGU7CivmiYvnuowgPiBmb3JtYWxpdGllczsKK+aMieacnyA+IG9uXC1zY2hlZHVsZTsKK+i4qeawtCA+IHRyZWFkXC13YXRlcjsKK+Wuo+iogCA+IGRlY2xhcmF0aW9uOwor5Lu/6YCgID4gY291bnRlcmZlaXQ7Civlr6bnv5IgPiB0b1wtcHJhY3RpY2U7Civlgbfmh7YgPiB0b1wtZ29vZlwtb2ZmOwor6by76Z+zID4gbmFzYWxcLXNvdW5kOwor5p+l6K2JID4gaW52ZXN0aWdhdGU7CivnkrDnuZ4gPiB0b1wtc3Vycm91bmQ7Civlm7DlooMgPiBwcmVkaWNhbWVudDsKK+a7sua/viA+IHBlcmNvbGF0aW9uOwor55eF5a65ID4gc2lja2x5XC1sb29rOwor5oiQ57i+ID4gcGVyZm9ybWFuY2U7CivkurrplpMgPiBtYW4nJ3NcLXdvcmxkOwor56uv56uZID4gZW5kXC1zdGF0aW9uOwor6KGN5bCEID4gZGlmZnJhY3Rpb247Civlm57loLEgPiBcKGluXClcLXJldHVybjsKK+ajl+aouSA+IGp1anViZVwtdHJlZTsKK+aIlueosSA+IGFsc29cLWNhbGxlZDsKK+aLrOW8pyA+IHBhcmVudGhlc2lzOwor6auY5aOTID4gaGlnaFwtaGFuZGVkOwor5Luy6KOBID4gYXJiaXRyYXRpb247CivlgLzlvpcgPiB0b1wtYmVcLXdvcnRoOwor55Ww5bi4ID4gZXhjZXB0aW9uYWw7CivomrHonKIgPiBncmFzc2hvcHBlcjsKK+mRveWtlCA+IGJvcmVcLWFcLWhvbGU7CivnlbblsYAgPiBhdXRob3JpdGllczsKK+mrmOWUsSA+IHNpbmdcLWxvdWRseTsKK+S7i+ipniA+IHByZXBvc2l0aW9uOwor6Iie5YqHID4gZGFuY2VcLWRyYW1hOwor5YKR5Ye6ID4gaWxsdXN0cmlvdXM7CivnlobloLQgPiBiYXR0bGVmaWVsZDsKK+S/oeacjSA+IHRvXC1jb252aW5jZTsKK+iEvuawoyA+IHRlbXBlcmFtZW50Owor5LiK6b2SID4gdXBwZXJcLXRlZXRoOwor5oWw6JeJID4gY29uc29sYXRpb247Civmnb/opo8gPiBwbGF0ZVwtZ2F1Z2U7Civnl4XkurogPiBzaWNrXC1wZXJzb247CivpkZLlrpogPiB0b1wtYXBwcmFpc2U7Civlgpnku7YgPiBzcGFyZVwtcGFydHM7CivnlJ/miJAgPiBiZVwtcHJvZHVjZWQ7Civkvr/mobYgPiBjaGFtYmVyXC1wb3Q7CivohKvmsKcgPiBkZW94aWRhdGlvbjsKK+aDhemhmCA+IHdpbGxpbmduZXNzOwor55Sf5oWLID4gd2F5XC1vZlwtbGlmZTsKK+aMh+WHuiA+IHRvXC1pbmRpY2F0ZTsKK+aJgeahgyA+IGFsbW9uZFwtdHJlZTsKK+i3i+aJiCA+IGRvbWluZWVyaW5nOwor5L+u5b6pID4gcmVzdG9yYXRpb247CivnrYblv4MgPiBwZW5jaWxcLWxlYWQ7Civkv6Hmga8gPiBpbmZvcm1hdGlvbjsKK+S4jemhpyA+IGluXC1zcGl0ZVwtb2Y7Civnq4vms5UgPiBsZWdpc2xhdGlvbjsKK+WwjeaWuSA+IGNvdW50ZXJwYXJ0Owor56m655m9ID4gYmxhbmtcLXNwYWNlOwor55S35aWzID4gbWFsZVwtZmVtYWxlOwor55W25YGaID4gdG9cLXRyZWF0XC1hczsKK+i3m+WtkCA+IGxhbWVcLXBlcnNvbjsKK+S6lOiQrCA+IDUwXC10aG91c2FuZDsKK+aciei2oyA+IGludGVyZXN0aW5nOwor5L+d5a2YID4gdG9cLWNvbnNlcnZlOwor5reY56WeID4gdHJvdWJsZXNvbWU7CivnrYbloqggPiBwZW5cLWFuZFwtaW5rOwor6JaR6aSFID4gZ2luZ2VyYnJlYWQ7CivmuqvluqYgPiB0ZW1wZXJhdHVyZTsKK+i3keWjmCA+IGJhc2VydW5uaW5nOwor6Jyc5qGDID4gaG9uZXlcLXBlYWNoOwor6ZGS5LqOID4gaW5cLWxpZ2h0XC1vZjsKK+WPr+mpmiA+IGFzdG9uaXNoaW5nOwor5L6/5a6cID4gaW5leHBlbnNpdmU7CivkuI3ov60gPiBjYW5ub3RcLWNvcGU7CivmiYvlr6sgPiBoYW5kd3JpdGluZzsKK+S4i+i8iSA+IHRvXC1kb3dubG9hZDsKK+i4j+S4iiA+IHNldFwtZm9vdFwtb247CivkvZzmlocgPiBjb21wb3NpdGlvbjsKK+a7suWFpSA+IHRvXC1wZXJtZWF0ZTsKK+eSsOW9oiA+IHJpbmdcLXNoYXBlZDsKK+S9iOaZryA+IFwoc3RhZ2VcKVwtc2V0Owor5oiS5b6LID4gY29tbWFuZG1lbnQ7CivpqZrkurogPiBhc3RvbmlzaGluZzsKK+mot+WLlSA+IGRpc3R1cmJhbmNlOwor5oKy6KeAID4gcGVzc2ltaXN0aWM7CivlsazkuIsgPiBzdWJvcmRpbmF0ZTsKK+e+juiyjCA+IGdvb2Rsb29raW5nOwor55So5LulID4gaW5cLW9yZGVyXC10bzsKK+m6u+iXpSA+IGFuYWVzdGhldGljOwor5bCP5Z6LID4gc21hbGxcLXNjYWxlOwor5oiw5aC0ID4gYmF0dGxlZmllbGQ7CivpoYzoqZ4gPiBpbnNjcmlwdGlvbjsKK+S+i+WmgiA+IGZvclwtZXhhbXBsZTsKK+i2o+WRsyA+IHRvXC1pbnRlcmVzdDsKK+S/oeS7sCA+IGZpcm1cLWJlbGllZjsKK+iCoeadsSA+IHN0b2NraG9sZGVyOwor6Y6u5aOTID4gc3VwcHJlc3Npb247Civmnb/niZkgPiBmcm9udFwtdG9vdGg7Civms7PopLIgPiBzd2ltXC10cnVua3M7Civmop3kvosgPiByZWd1bGF0aW9uczsKK+WQjOizqiA+IGhvbW9nZW5lb3VzOwor55Kw5aKDID4gZW52aXJvbm1lbnQ7Civpoa/okZcgPiBvdXRzdGFuZGluZzsKK+S6jOeZviA+IHR3b1wtaHVuZHJlZDsKK+WwseS7uyA+IHRha2VcLW9mZmljZTsKK+aenOaxgSA+IGZydWl0XC1qdWljZTsKK+iAleeVnCA+IGZhcm1cLWFuaW1hbDsKK+mHjei/lCA+IHJldHVyblwtXCh0b1wpOwor5LiL6JC9ID4gd2hlcmVhYm91dHM7CivkuJ/oh4kgPiBodW1pbGlhdGlvbjsKK+azleimjyA+IGxlZ2lzbGF0aW9uOwor5oiR5ZyLID4gb3VyXC1jb3VudHJ5Owor5L2I5bGAID4gYXJyYW5nZW1lbnQ7CivororpgJogPiBiZVwtZmxleGlibGU7CivpvLvmtpUgPiBuYXNhbFwtbXVjdXM7CivosrjmrL4gPiBcKGJhbmtcKVwtbG9hbjsKK+a6luWCmSA+IHByZXBhcmF0aW9uOwor5a6J5bq3ID4gZ29vZFwtaGVhbHRoOwor6aCQ6KiIID4gdG9cLWZvcmVjYXN0Owor6IGw5piOID4gaW50ZWxsaWdlbnQ7Civph4/oqZ4gPiBtZWF1cmVcLXdvcmQ7Civnq4vljbMgPiBpbW1lZGlhdGVseTsKK+WQjeiRlyA+IG1hc3RlcnBpZWNlOwor5Lu75oSPID4gYXJiaXRyYXJpbHk7CivlronlrrYgPiBzZXR0bGVcLWRvd247CivppZLmgZUgPiBmb3JnaXZlbmVzczsKK+Wuh+WumSA+IG91dGVyXC1zcGFjZTsKK+eRnuWjqyA+IHN3aXR6ZXJsYW5kOwor5ZaH5Y+tID4gbG91ZHNwZWFrZXI7CivmiJDku70gPiBjb21wb3NpdGlvbjsKK+mngeWAkiA+IGRlbW9saXNoXC1zYjsKK+a1tOaxoCA+IHB1YmxpY1wtYmF0aDsKK+S7peW+gCA+IGluXC10aGVcLXBhc3Q7Civpoa/nm64gPiBvdXRzdGFuZGluZzsKK+WllOmmsyA+IHJ1blwtcXVpY2tseTsKK+ePvuW5tCA+IGN1cnJlbnRcLWFnZTsKK+mIlOelqCA+IHBhcGVyXC1tb25leTsKK+ekuuevhCA+IGRlbW9uc3RyYXRlOwor5pm66IO9ID4gaW50ZWxsaWdlbnQ7CivkuqTmj5sgPiB0b1wtZXhjaGFuZ2U7Civpoqjms6IgPiBkaXN0dXJiYW5jZTsKK+iXpeeJqSA+IG1lZGljYW1lbnRzOwor6YSZ6ZmLID4gc3VwZXJmaWNpYWw7CivogIPmn6UgPiBpbnZlc3RpZ2F0ZTsKK+WknOm2ryA+IG5pZ2h0aW5nYWxlOwor6aSQ5buzID4gZGluaW5nXC1oYWxsOwor5YyX6Z+TID4gbm9ydGhcLWtvcmVhOwor5LqS5o+bID4gdG9cLWV4Y2hhbmdlOwor5aiB6ISFID4gdG9cLXRocmVhdGVuOwor56m65YmNID4gdW5wcmVjZWRlbnQ7CivpoJDntIQgPiByZXNlcnZhdGlvbjsKK+eisOimiyA+IHRvXC1ydW5cLWludG87Civmn6Xlh7ogPiB0b1wtZmluZFwtb3V0Owor5Y2K6YKKID4gaGFsZlwtb2ZcLXN0aDsKK+aal+ekuiA+IGRyb3BcLWFcLWhpbnQ7CivkuqTlvoAgPiBhc3NvY2lhdGlvbjsKK+awo+izqiA+IHRlbXBlcmFtZW50Owor5pu45rOVID4gY2FsbGlncmFwaHk7CivljZPotoogPiBkaXN0aW5jdGlvbjsKK+iCoeWDuSA+IHN0b2NrXC1wcmljZTsKK+S5neaciCA+IG5pbnRoXC1tb250aDsKK+S4u+asiiA+IHNvdmVyZWlnbnR5Owor5aSa6aSYID4gc3VwZXJmbHVvdXM7CivmgbDnlbYgPiBhcHByb3ByaWF0ZTsKK+iBveWPliA+IGhlYXJcLVwobmV3c1wpOwor5oSf5oCnID4gc2Vuc2liaWxpdHk7CivllYbkurogPiBidXNpbmVzc21hbjsKK+emgeatoiA+IHRvXC1wcm9oaWJpdDsKK+enieaJvyA+IHRha2VcLW9yZGVyczsKK+WUruWDuSA+IHRvXC1zZWxsXC1mb3I7CivlrIzlqpogPiBmbGlydGF0aW91czsKK+mggeeivCA+IHBhZ2VcLW51bWJlcjsKK+S6pOWqviA+IHRvXC1oYXZlXC1zZXg7CivkuIrmtYEgPiB1cHBlclwtY2xhc3M7CivpnLjpgZMgPiBvdmVyYmVhcmluZzsKK+azoueAviA+IGdyZWF0XC13YXZlczsKK+azoua/pCA+IGdyZWF0XC13YXZlczsKK+S4jeatoiA+IGluY2Vzc2FudGx5Owor54it6K2wID4gY29udHJvdmVyc3k7CivkuK3mnbEgPiBtaWRkbGVcLWVhc3Q7CivkuLnmlrkgPiBmb2xrXC1yZW1lZHk7Civph43nloogPiBvdmVybGFwcGluZzsKK+S4reaXpSA+IGNoaW5hXC1qYXBhbjsKK+WQnuaykiA+IHRvXC1lbWJlenpsZTsKK+mHjeePviA+IHRvXC1yZWFwcGVhcjsKK+mjn+WggiA+IGRpbmluZ1wtaGFsbDsKK+absuaKmCA+IGNvbXBsaWNhdGVkOwor6Z226Ii5ID4gdGFyZ2V0XC1zaGlwOwor5Y2D6JCsID4gdGVuXC1taWxsaW9uOwor5LiA5pyIID4gZmlyc3RcLW1vbnRoOwor54qv55eFID4gdG9cLWZhbGxcLWlsbDsKK+WQjOatpSA+IHN5bmNocm9ub3VzOwor5ZO65LmzID4gYnJlYXN0XC1mZWVkOwor6Kq/6K6KID4gdG9cLW1vZHVsYXRlOwor5Li75by1ID4gdG9cLWFkdm9jYXRlOwor5ama5pyfID4gd2VkZGluZ1wtZGF5Owor5pqX5q66ID4gYXNzYXNzaW5hdGU7Civmr5von7IgPiBjYXRlcnBpbGxhcjsKK+S4u+W4rSA+IGNoYWlycGVyc29uOwor6YKK6ZmyID4gYm9yZGVyXC1hcmVhOwor5Y2x56+kID4gZGVhdGhseVwtaWxsOwor5LqS5YuVID4gaW50ZXJhY3RpdmU7Civlppbnsr4gPiBldmlsXC1zcGlyaXQ7CivkuK3lubQgPiBtaWRkbGVcLWFnZWQ7Civosp3kuJggPiBzaGVsbFwtbW91bmQ7CivmhI/lkJEgPiBkaXNwb3NpdGlvbjsKK+ayiOa+sSA+IHByZWNpcGl0YXRlOwor5Y+W5rG6ID4gZGVwZW5kXC11cG9uOwor57mB6KSHID4gY29tcGxpY2F0ZWQ7CivpmpTpm6IgPiB0b1wtc2VwYXJhdGU7CivkuInlubQgPiB0aHJlZVwteWVhcnM7CivpmpTplosgPiB0b1wtc2VwYXJhdGU7Civwob2xID4gYVwtaGlnaFwtaGlsbDsKK+S4i+WxrCA+IHN1Ym9yZGluYXRlOwor5LiK5bGkID4gdXBwZXJcLWxheWVyOwor57m857qMID4gdG9cLWNvbnRpbnVlOwor5aOv6KeAID4gc3BlY3RhY3VsYXI7CivmlL/oroogPiBjb3VwXC1kJydldGF0Owor56We5a24ID4gdGhlb2xvZ2ljYWw7CivnuYHoj68gPiBmbG91cmlzaGluZzsKK+mhjOWtlyA+IGluc2NyaXB0aW9uOwor5ZCI5b2xID4gam9pbnRcLXBob3RvOwor5aaC55WrID4gcGljdHVyZXNxdWU7CivkuI3loKogPiBjYW5ub3RcLWJlYXI7Civol6Xlk4EgPiBtZWRpY2FtZW50czsKK+mghuaHiSA+IGNvbXBseVwtd2l0aDsKK+e1gum7niA+IGRlc3RpbmF0aW9uOwor54iG56u5ID4gZmlyZWNyYWNrZXI7Civlvpfnl4UgPiB0b1wtZmFsbFwtaWxsOwor6YCP6ZyyID4gdG9cLWxlYWtcLW91dDsKK+mYu+malCA+IHRvXC1zZXBhcmF0ZTsKK+eJueasiiA+IHByZXJvZ2F0aXZlOwor5aSq56m6ID4gb3V0ZXJcLXNwYWNlOwor5YiG6ZuiID4gdG9cLXNlcGVyYXRlOwor56aB5LukID4gcHJvaGliaXRpb247CivkuI3lhY0gPiB1bmF2b2lkYWJsZTsKK+iqk+e0hCA+IGhvbm9yXC1ib3VuZDsKK+itieabuCA+IGNyZWRlbnRpYWxzOwor5rKI5oCdID4gY29udGVtcGxhdGU7Civop6Pph4sgPiBleHBsYW5hdGlvbjsKK+WIhumWiyA+IHRvXC1zZXBhcmF0ZTsKK+ekgeWztiA+IHJlZWZcLWlzbGFuZDsKK+mAmumBjiA+IGJ5XC1tZWFuc1wtb2Y7Civov47poqggPiBpblwtdGhlXC13aW5kOwor5LiK5Lu7ID4gdGFrZVwtb2ZmaWNlOwor5aaC5q2kID4gaW5cLXRoaXNcLXdheTsKK+irlueIrSA+IGNvbnRyb3ZlcnN5Owor5oKg5LmFID4gZXN0YWJsaXNoZWQ7CivkuIrkuIsgPiB1cFwtYW5kXC1kb3duOwor5oGQ5ZqHID4gdG9cLXRocmVhdGVuOwor57Sg6aOfID4gdmVnZXRhYmxlczsKK+e4ruefrSA+IHRvXC1jdXJ0YWlsOwor5pS557WEID4gcmVvcmdhbml6ZTsKK+aTgeittyA+IHRvXC1lbmRvcnNlOwor6YCy6KGMID4gdG9cLWFkdmFuY2U7CivlpZTms6IgPiBydXNoXC1hYm91dDsKK+W+jOavjSA+IHN0ZXBtb3RoZXI7CivmlaPnmbwgPiBkaXN0cmlidXRlOwor5aSx54GrID4gY2F0Y2hcLWZpcmU7CivoqpXnlJ8gPiB0b1wtYmVcLWJvcm47CivlpJrniL4gPiBcKGJvYlwpXC1kb2xlOwor5b285q2kID4gZWFjaFwtb3RoZXI7CivpoJDlhYggPiBiZWZvcmVoYW5kOwor6Zec6ZaAID4gY2xvc2VcLWRvd247CivpgZXog4wgPiB0b1wtdmlvbGF0ZTsKK+e1seioiCA+IHN0YXRpc3RpY3M7Civlh73os7wgPiBtYWlsXC1vcmRlcjsKK+mgkOWCmSA+IHRvXC1wcmVwYXJlOwor5aOB56uLID4gXChvZlwtY2xpZmZzOwor5pil5a2jID4gc3ByaW5ndGltZTsKK+aRmOmMhCA+IHRvXC1leHRyYWN0Owor6aCS5L2IID4gcHJvbXVsZ2F0ZTsKK+avj+asoSA+IGV2ZXJ5XC10aW1lOwor57eo56iLID4gdG9cLXByb2dyYW07CivliIboqZ4gPiBwYXJ0aWNpcGxlOwor5b6M5pyfID4gbGF0ZVwtc3RhZ2U7CivmlYjnlKggPiB1c2VmdWxuZXNzOwor57On6aOfID4gZm9vZHN0dWZmczsKK+iNkumHjiA+IHdpbGRlcm5lc3M7CivmkpLorIogPiB0ZWxsXC1hXC1saWU7Civnh4Pnh5IgPiBjb21idXN0aW9uOwor5byE55u0ID4gc3RyYWlnaHRlbjsKK+mBt+enuyA+IHRvXC1taWdyYXRlOwor5aSn5rCjID4gYXRtb3NwaGVyZTsKK+iqjeeCuiA+IHRvXC1iZWxpZXZlOwor6ZmN6JC9ID4gdG9cLWRlc2NlbmQ7CivliY3ogIUgPiB0aGVcLWZvcm1lcjsKK+aViOeOhyA+IGVmZmljaWVuY3k7Civpnbblv4MgPiBidWxsJydzXC1leWU7Civli4PnhLYgPiBhZ2l0YXRlZGx5Owor56Kf5a2QID4gc21hbGxcLWRpc2g7CivorJvluKsgPiBpbnN0cnVjdG9yOwor5Y+W5LujID4gc3Vic3RpdHV0ZTsKK+aWsOaVmSA+IHByb3Rlc3RhbnQ7CivlpJrmrKEgPiBtYW55XC10aW1lczsKK+Wlh+aVuCA+IG9kZFwtbnVtYmVyOwor5b+F5bCHID4gaW5ldml0YWJseTsKK+mZsOeyviA+IHNleFwtZmx1aWRzOwor5aaW5ayIID4gZW5jaGFudGluZzsKK+eLguS6giA+IGh5c3RlcmljYWw7CivnuYHmpq4gPiBwcm9zcGVyb3VzOwor57m85om/ID4gdG9cLWluaGVyaXQ7Civmk43nuLEgPiB0b1wtb3BlcmF0ZTsKK+WFqOmdoiA+IGFsbFwtYXJvdW5kOwor5Y6Y5Y2HID4gY2VudGlsaXRlcjsKK+iqv+aVtCA+IGFkanVzdG1lbnQ7CivlppPlpbMgPiBwcm9zdGl0dXRlOwor6I2S6KysID4gcmlkaWN1bG91czsKK+eZvemgrSA+IGhvYXJ5XC1oZWFkOwor5rG65LiNID4gbm90XC1hdFwtYWxsOwor6Kqq5piOID4gdG9cLWV4cGxhaW47Civlh7roibIgPiByZW1hcmthYmxlOwor5aWz5am/ID4gc29uXC1pblwtbGF3Owor54m55YilID4gZXNwZWNpYWxseTsKK+WFjemZpCA+IHRvXC1wcmV2ZW50Owor5aal5Y2UID4gY29tcHJvbWlzZTsKK+W3qOi8qiA+IGxhcmdlXC1zaGlwOwor54aE5ruFID4gZXh0aW5ndWlzaDsKK+eFp+eJhyA+IHBob3RvZ3JhcGg7CivpmYTnrYYgPiBwb3N0c2NyaXB0Owor6Kaq6IeqID4gcGVyc29uYWxseTsKK+aUueatoyA+IHRvXC1jb3JyZWN0Owor5Y2K5ZyTID4gc2VtaWNpcmNsZTsKK+mBleeKryA+IHRvXC12aW9sYXRlOwor54it5aWqID4gZmlnaHRcLW92ZXI7Civnn63mnJ8gPiBzaG9ydFwtdGVybTsKK+avj+W5tCA+IGV2ZXJ5XC15ZWFyOwor5pW15omLID4gYW50YWdvbmlzdDsKK+WNsOWDjyA+IGltcHJlc3Npb247Civnsr7pgJogPiBwcm9maWNpZW50Owor5b6I5aSnID4gdHJlbWVuZG91czsKK+eZvemFkiA+IHNwaXJpdFwtdXN1Owor5piO5LquID4gYnJpZ2h0bmVzczsKK+iNieiOkyA+IHN0cmF3YmVycnk7CivloLHnq6AgPiBuZXdzcGFwZXJzOwor5aSa5bm0ID4gbWFueVwteWVhcnM7Civoqp7lvZkgPiB2b2NhYnVsYXJ5Owor5pep5YWIID4gcHJldmlvdXNseTsKK+eJjOWDuSA+IGxpc3RcLXByaWNlOwor5ber6KGTID4gd2l0Y2hjcmFmdDsKK+mBjua4oSA+IHRyYW5zaXRpb247CivmjqLpmqogPiB0b1wtZXhwbG9yZTsKK+Wkp+WtuCA+IHVuaXZlcnNpdHk7CivnhKHnkIYgPiBpcnJhdGlvbmFsOwor5Y2K5YO5ID4gaGFsZlwtcHJpY2U7CivljYDliKUgPiBkaWZmZXJlbmNlOwor5paH5a24ID4gbGl0ZXJhdHVyZTsKK+W+nuWJjSA+IHByZXZpb3VzbHk7Civpl5zoga8gPiBiZVwtcmVsYXRlZDsKK+WcsOmchyA+IGVhcnRocXVha2U7Civop4DnnL4gPiBzcGVjdGF0b3JzOwor5o6S6ZqKID4gdG9cLWxpbmVcLXVwOwor5YiG55m8ID4gZGlzdHJpYnV0ZTsKK+aUquaTviA+IHRvXC1kaXN0dXJiOwor5pW45a24ID4gbWF0aGVtYXRpYzsKK+eGseW/gyA+IGVudGh1c2lhc207Civpm7vlrZAgPiBlbGVjdHJvbmljOwor55m96KmxID4gdmVybmFjdWxhcjsKK+eCuOezlSA+IGZyaWVkXC1jYWtlOwor5aCG56mNID4gYWNjdW11bGF0ZTsKK+aVo+WwhCA+IHNjYXR0ZXJpbmc7Civok4vkuJYgPiB1bnJpdmVsbGVkOwor57eo5o6SID4gdG9cLWFycmFuZ2U7CivmjZXprZogPiBjYXRjaFwtZmlzaDsKK+WHuueUnyA+IHRvXC1iZVwtYm9ybjsKK+WFgeirviA+IHRvXC1wcm9taXNlOwor6Kq/5ZKMID4gaGFybW9uaW91czsKK+W+jOS+hiA+IGFmdGVyd2FyZHM7CivlpKfllpwgPiBleHVsdGF0aW9uOwor5pS/5bqcID4gZ292ZXJubWVudDsKK+ioreaWvSA+IGZhY2lsaXRpZXM7Civmlrnkvr8gPiBjb252ZW5pZW50Owor5o6l6YCaID4gdG9cLWNvbm5lY3Q7CivmraTlvowgPiBhZnRlclwtdGhpczsKK+W6p+aomSA+IGNvb3JkaW5hdGU7CivntpPmrbcgPiBleHBlcmllbmNlOwor5qiC6KeAID4gb3B0aW1pc3RpYzsKK+WkquWPpCA+IGltbWVtb3JpYWw7Civpm6LlqZogPiB0b1wtZGl2b3JjZTsKK+eHiOWhlCA+IGxpZ2h0aG91c2U7Civlh7rniYggPiB0b1wtcHVibGlzaDsKK+iqh+WkpyA+IGV4YWdnZXJhdGU7CivlhbXoiLkgPiBtYW5cLW9mXC13YXI7CivliqDlt54gPiBjYWxpZm9ybmlhOwor5YK36aKoID4gY2F0Y2hcLWNvbGQ7CivmlL7lsIQgPiB0b1wtcmFkaWF0ZTsKK+avlOS+iyA+IHByb3BvcnRpb247CivpgbflvpkgPiB0b1wtbWlncmF0ZTsKK+maqOW+jCA+IHNvb25cLWFmdGVyOwor5YmN5pmvID4gZm9yZWdyb3VuZDsKK+mBt+W7tiA+IGxvbmdcLWRlbGF5Owor6KOc6KqeID4gY29tcGxlbWVudDsKK+WKoOWvhiA+IHRvXC1lbmNyeXB0Owor5pW05ZCIID4gdG9cLWNvbmZvcm07CivpgZXmipcgPiB0b1wtZGlzb2JleTsKK+ebo+edoyA+IHRvXC1jb250cm9sOwor5paH5YW3ID4gc3RhdGlvbmVyeTsKK+avj+S6uiA+IHBlclwtcGVyc29uOwor6Zi75q2iID4gdG9cLXByZXZlbnQ7CivpmLLmsLQgPiB3YXRlcnByb29mOwor6Ziy5q2iID4gdG9cLXByZXZlbnQ7CivpgIDmraUgPiBkZWdlbmVyYXRlOwor6YGp5bqmID4gbW9kZXJhdGVseTsKK+mBoOW+gSA+IGV4cGVkaXRpb247Civnmb3oh4kgPiB3aGl0ZVwtZmFjZTsKK+e4veWFsSA+IGFsdG9nZXRoZXI7Civop6PmnpAgPiB0b1wtYW5hbHl6ZTsKK+ippuWcliA+IHRvXC1hdHRlbXB0Owor6Imm6LyJID4gc2hpcFwtYmFzZWQ7Civnn6XlkI0gPiB3ZWxsXC1rbm93bjsKK+WkmuS6iyA+IG1lZGRsZXNvbWU7CivlhrDnkIMgPiBpY2VcLWhvY2tleTsKK+ino+aUviA+IGxpYmVyYXRpb247Civlgb3poIIgPiBmYWxzZVwtcm9vZjsKK+mrmOmajiA+IGhpZ2hcLWxldmVsOwor5o2P6YCgID4gdG9cLW1ha2VcLXVwOwor5YiG5p6QID4gdG9cLWFuYWx5emU7Civmk4HmirEgPiB0b1wtZW1icmFjZTsKK+mbtuS4iyA+IGJlbG93XC16ZXJvOwor5beu55WwID4gZGlmZmVyZW5jZTsKK+aUvuWHuiA+IHRvXC1sZXRcLW9mZjsKK+WFrOefsyA+IGhlY3RvbGl0ZXI7CivmlLvlhYsgPiB0b1wtY2FwdHVyZTsKK+WgseaVuCA+IG51bWJlclwtb2ZmOwor5pS25YWlID4gdG9cLXRha2VcLWluOwor6Kme5YW4ID4gZGljdGlvbmFyeTsKK+ioreWcqCA+IGxvY2F0ZWRcLWF0Owor6ZmQ5bqmID4gbGltaXRhdGlvbjsKK+ijseeziiA+IHdhbGxcLXBhcGVyOwor5qqi5p+lID4gaW5zcGVjdGlvbjsKK+eAhuiBtyA+IHdyb25nZG9pbmc7Civluoflu5UgPiBcKG9mXC1hXC10cmVlOwor6Zmw5aSpID4gY2xvdWR5XC1kYXk7CivntYLmlrwgPiBldmVudHVhbGx5Owor6KiC5amaID4gZW5nYWdlbWVudDsKK+mZuOWfuiA+IGxhbmRcLWJhc2VkOwor5bua5Y+4ID4gY29va1wsXC1jaGVmOwor5YKz6KqqID4gaXRcLWlzXC1zYWlkOwor6auY6YCfID4gaGlnaFwtc3BlZWQ7CivliLblrpogPiB0b1wtZHJhd1wtdXA7CivpgJ/lsIQgPiByYXBpZFwtZmlyZTsKK+mBuuWCsyA+IGhlcmVkaXRhcnk7CivoiInovqYgPiB0b1wtY29uZHVjdDsKK+WIqeWusyA+IGZvcm1pZGFibGU7CivmlKrkuoIgPiB0b1wtY29uZnVzZTsKK+WFpeeNhCA+IGdvXC10b1wtamFpbDsKK+exs+eyiSA+IHJpY2VcLWZsb3VyOwor57O+5q2jID4gdG9cLWNvcnJlY3Q7CivopqrmiYsgPiBwZXJzb25hbGx5Owor6L6y5p2RID4gcnVyYWxcLWFyZWE7Civlia/liIogPiBzdXBwbGVtZW50Owor5pON5aC0ID4gcGxheWdyb3VuZDsKK+WfuuaWvCA+IGJlY2F1c2VcLW9mOwor6KGN6K6KID4gdG9cLWRldmVsb3A7CivlhajnhLYgPiBjb21wbGV0ZWx5Owor5ZyY6IGaID4gdG9cLXJldW5pdGU7Civnmb3ni5AgPiBhcmN0aWNcLWZveDsKK+aTgeWhniA+IGNvbmdlc3Rpb247CivoqI7ljq0gPiBkaXNndXN0aW5nOwor6YGV5YKyID4gdG9cLWRpc29iZXk7Civnmb3nhr4gPiB3aGl0ZVwtaGVhdDsKK+eZveeGsSA+IHdoaXRlXC1oZWF0Owor55m954aKID4gcG9sYXJcLWJlYXI7Civnmb3nhaQgPiBhbnRocmFjaXRlOwor5YCa6Z2gID4gdG9cLWxlYW5cLW9uOwor5bm85aWzID4geW91bmdcLWdpcmw7Civop4Dlr58gPiB0b1wtb2JzZXJ2ZTsKK+WFteazlSA+IGFydFwtb2ZcLXdhcjsKK+eVtumBuCA+IGJlXC1lbGVjdGVkOwor5pGY5oqEID4gdG9cLWV4dHJhY3Q7Civnm6PmjqcgPiB0b1wtbW9uaXRvcjsKK+WgpOWyuCA+IGVtYmFua21lbnQ7CivntZDlsYAgPiBjb25jbHVzaW9uOwor5qyg5L2zID4gc3Vib3B0aW1hbDsKK+mAseWIsCA+IHRob3VnaHRmdWw7Civopo/lvosgPiBkaXNjaXBsaW5lOwor566h6L2EID4gYWRtaW5pc3RlcjsKK+W4uOW4uCA+IGZyZXF1ZW50bHk7CivmqLnmqIEgPiB0cmVlXC1zdHVtcDsKK+ilr+aJmCA+IHRvXC1zZXRcLW9mZjsKK+aTjeWFuCA+IGRyaWxsXC1ib29rOwor6LeR6aasID4gaG9yc2VcLXJhY2U7CivmqqLlr58gPiB0b1wtaW5zcGVjdDsKK+W3qOaYnyA+IGdpYW50XC1zdGFyOwor6ZmE5YqgID4gYWRkaXRpb25hbDsKK+aTjeS9nCA+IHRvXC1vcGVyYXRlOwor55u45bCNID4gcmVsYXRpdmVseTsKK+eEoeWDuSA+IGludmFsdWFibGU7CivlsY/pmaQgPiBnZXRcLXJpZFwtb2Y7CivmkI/mlpcgPiB0b1wtd3Jlc3RsZTsKK+aLnOiolyA+IHJlcXVlc3RcLXNiOwor5o6S55CDID4gdm9sbGV5YmFsbDsKK+e0gOW+iyA+IGRpc2NpcGxpbmU7CivlupfkuLsgPiBzaG9wXC1vd25lcjsKK+eTtumguCA+IGJvdHRsZW5lY2s7CivluavliqkgPiBhc3Npc3RhbmNlOwor5bmr5Ye2ID4gYWNjb21wbGljZTsKK+WIhuWIpSA+IGRpZmZlcmVuY2U7Civlhazmkq4gPiBtaWxsaWxpdGVyOwor57WQ5ZCIID4gdG9cLWNvbWJpbmU7CivnsYPnkIMgPiBiYXNrZXRiYWxsOwor5oqx6LKgID4gYXNwaXJhdGlvbjsKK+eul+ihkyA+IGFyaXRobWV0aWM7CivmjqjmuKwgPiBjb25qZWN0dXJlOwor6KaB5aGeID4gc3Ryb25naG9sZDsKK+eZveaXlyA+IHdoaXRlXC1mbGFnOwor5ryU6K6KID4gdG9cLWRldmVsb3A7Civmu7/otrMgPiB0b1wtc2F0aXNmeTsKK+mphemAkCA+IGJhbmlzaG1lbnQ7CivooajnpLogPiB0b1wtZXhwcmVzczsKK+i+suWckiA+IHBsYW50YXRpb247Civpq5jntJogPiBoaWdoXC1sZXZlbDsKK+aKleizhyA+IGludmVzdG1lbnQ7CivnnIvliLAgPiBzZWVcLVwodGhhdFwpOwor5o+Q5piHID4gdG9cLXByb21vdGU7CivlhYzmj5sgPiB0b1wtY29udmVydDsKK+WFrOW8lSA+IGhlY3RvbWV0ZXI7Civpp5Xppq0gPiB0b1wtY29udHJvbDsKK+WwiOmWgCA+IHNwZWNpYWxpc3Q7CivnnIvkvoYgPiBhcHBhcmVudGx5Owor6IeJ6ImyID4gY29tcGxleGlvbjsKK+iNieWPoiA+IHVuZGVyYnJ1c2g7CivlhbzlrrkgPiBjb21wYXRpYmxlOwor6LuN5rivID4gbmF2YWxcLXBvcnQ7CivmjInnq4sgPiBvcmRpbmF0aW9uOwor55Sf6KiIID4gbGl2ZWxpaG9vZDsKK+aOjOargyA+IHNob3BrZWVwZXI7Civooajnj74gPiBleHByZXNzaW9uOwor5YWp5bK4ID4gYmlsYXRlcmlhbDsKK+WFseWtmCA+IHRvXC1jb2V4aXN0Owor5Zua54qvID4gYVwtcHJpc29uZXI7CivlgYnnuL4gPiBncmVhdFwtYWN0czsKK+ebuOS6kiA+IGVhY2hcLW90aGVyOwor6KGN55SfID4gZGVydmlhdGl2ZTsKK+WGsOWIgCA+IGljZVwtc2thdGVzOwor5o6l5pS2ID4gdG9cLXJlY2VpdmU7CivnlKjomZUgPiB1c2VmdWxuZXNzOwor5oqA6KGTID4gdGVjaG5vbG9neTsKK+iKseaJmCA+IHJlY2VwdGFjbGU7Civlrr/poYwgPiBhc3NpZ25tZW50Owor6a2a5o6SID4gZmlzaFwtc3RlYWs7CivmjIfnlLIgPiBmaW5nZXJuYWlsOwor5a246b2hID4gc2Nob29sXC1hZ2U7Civmjajmo4QgPiB0b1wtZ2l2ZVwtdXA7Civlt67liKUgPiBkaWZmZXJlbmNlOwor5L2/6YaJID4gaW50b3hpY2F0ZTsKK+aLmOemgSA+IGNvbnN0cmFpbnQ7CivlnIvmnIMgPiBwYXJsaWFtZW50Owor6LaF6LaKID4gdG9cLXN1cnBhc3M7Civmjqjlu6MgPiBwb3B1bGFyaXplOwor5L2j6YeRID4gY29tbWlzc2lvbjsKK+eZveWWiSA+IGRpcGh0aGVyaWE7CivmjojmhI8gPiB0b1wtaW5zcGlyZTsKK+WFrOWIhiA+IGNlbnRpbWV0ZXI7CivnrYbogIUgPiB0aGVcLWF1dGhvcjsKK+S/neiCsiA+IGNoaWxkXC1jYXJlOwor55m95Y2AID4gd2hpdGVcLWFyZWE7Civmj7nlgrUgPiBiZVwtaW5cLWRlYnQ7CivmvKvnlasgPiBjYXJpY2F0dXJlOwor5YGc54GrID4gY2Vhc2VcLWZpcmU7Civoia/lv4MgPiBjb25zY2llbmNlOwor5Zau6Kq/ID4gbW9ub3Rvbm91czsKK+ihqOaYjiA+IG1ha2VcLWtub3duOwor5oqV56i/ID4gY29udHJpYnV0ZTsKK+aooeS7vyA+IHRvXC1pbWl0YXRlOwor55m85L2IID4gdG9cLXJlbGVhc2U7Civmop3ntIQgPiB0cmVhdHlwYWN0Owor5bCO6IiqID4gbmF2aWdhdGlvbjsKK+aOkuWkliA+IHhlbm9waG9iaWM7CivlsI7oh7QgPiB0b1wtbGVhZFwtdG87CivlsZXnpLogPiB0b1wtb3BlblwtdXA7CivlsIvoiIsgPiB0b1wtcHJvdm9rZTsKK+WFiOS+iyA+IGFudGVjZWRlbnQ7Civmu4XntZUgPiBleHRpbmd1aXNoOwor6LOT6aSoID4gZ3Vlc3Rob3VzZTsKK+aok+S4iyA+IGRvd25zdGFpcnM7Civmj5DlgKEgPiB0b1wtcHJvbW90ZTsKK+aJk+e1kCA+IHRpZVwtYVwta25vdDsKK+iHhua4rCA+IGFzc3VtcHRpb247CivoiIjml7ogPiBwcm9zcGVyb3VzOwor5bK45qiZID4gbGlnaHRob3VzZTsKK+aLlOaysyA+IHR1Z1wtb2ZcLXdhcjsKK+eUn+eUoiA+IHRvXC1wcm9kdWNlOwor6KOc5YSfID4gY29tcGVuc2F0ZTsKK+S6uumrlCA+IGh1bWFuXC1ib2R5Owor5o6o5Ye6ID4gdG9cLXJlbGVhc2U7Civog57ooaMgPiBhZnRlcmJpcnRoOwor5oyW5o6YID4gZXhjYXZhdGlvbjsKK+Wbm+W5tCA+IGZvdXJcLXllYXJzOwor6aSQ6aSoID4gcmVzdGF1cmFudDsKK+aMh+aPriA+IHRvXC1jb25kdWN0Owor6IGW6Z2IID4gaG9seVwtZ2hvc3Q7CivmjIfmjqcgPiBhY2N1c2F0aW9uOwor5omL56i/ID4gbWFudXNjcmlwdDsKK+aKueayuSA+IHRvXC1hbm5vaW50Owor6KGo5bC6ID4gcmVhclwtc2lnaHQ7CivnlaLmpa0gPiBncmFkdWF0aW9uOwor5Zu65Z+3ID4gcGVyc2lzdGVudDsKK+afpeipoiA+IHRvXC1pbnF1aXJlOwor6aOv6aSoID4gcmVzdGF1cmFudDsKK+eWkeaFriA+IGhlc2l0YXRpb247CivllonoiIwgPiBtb3V0aHBpZWNlOwor5L6/55W2ID4gY29udmVuaWVudDsKK+iBr+mAmiA+IGNvbm5lY3Rpb247Civpp5DntK4gPiB0b1wtc3RhdGlvbjsKK+ewveWHuiA+IHRvXC1sb2dcLW9mZjsKK+mrmOWxpCA+IGhpZ2hcLWxldmVsOwor6aSF6ZC6ID4gYmFraW5nXC1wYW47CivlsaLmrKEgPiByZXBlYXRlZGx5Owor6Y6X566hID4gZ3VuXC1iYXJyZWw7CivpkLXmnb8gPiBpcm9uXC1wYW5lbDsKK+mPiOeSsCA+IGNoYWluXC1saW5rOwor5o2J5Y+WID4gdG9cLWNhcHR1cmU7Civnq63nm6EgPiBleGhhdXN0aW9uOwor6LuN5Lq6ID4gc2VydmljZW1hbjsKK+aEj+mhmCA+IGFzcGlyYXRpb247CivogIHpoK0gPiBvbGRcLWZlbGxvdzsKK+ePvuixoSA+IGFwcGVhcmFuY2U7Civpjq7nl5sgPiBhbmFsZ2VzaWFjOwor6Ieq5bCKID4gc2VsZlwtcHJpZGU7CivlrprnvqkgPiBkZWZpbml0aW9uOwor56u254itID4gdG9cLWNvbXBldGU7Civlr6bnj74gPiB0b1wtYWNoaWV2ZTsKK+WCt+S6oSA+IGNhc3VhbHRpZXM7CivmiKrnhLYgPiBjb21wbGV0ZWx5Owor5qWt5L2ZID4gc3BhcmVcLXRpbWU7CivooYzliJcgPiBwcm9jZXNzaW9uOwor55eF5YGHID4gc2lja1wtbGVhdmU7CivmnJ/pmZAgPiB0aW1lXC1saW1pdDsKK+aKiuaIsiA+IGFjcm9iYXRpY3M7CivmtojosrsgPiB0b1wtY29uc3VtZTsKK+ihjOS6uiA+IHBlZGVzdHJpYW47Civmm7jpnaIgPiBpblwtd3JpdGluZzsKK+ett+WtkCA+IGNob3BzdGlja3M7Civnr4DliLYgPiB0ZW1wZXJhbmNlOwor6IWQ5pWXID4gY29ycnVwdGlvbjsKK+eNuOmGqyA+IHZldGVyaW5hcnk7CivlgZrlh7ogPiB0b1wtcHV0XC1vdXQ7CivkvZzngrogPiBhY2NvbXBsaXNoOwor5oqY5bCEID4gcmVmcmFjdGlvbjsKK+WWieeCjiA+IGxhcnluZ2l0aXM7Civkuobop6MgPiB1bmRlcnN0YW5kOwor5L+h5b+DID4gY29uZmlkZW5jZTsKK+iBr+e5qyA+IGNvbm5lY3Rpb247Civnj43ol48gPiBjb2xsZWN0aW9uOwor6Ieq5L+hID4gY29uZmlkZW5jZTsKK+iBluiBtyA+IHByaWVzdGhvb2Q7CivpjLbnm6QgPiBkaWFsXC1wbGF0ZTsKK+ahg+aouSA+IHBlYWNoXC10cmVlOwor5Zau5qihID4gc2luZ2xlbW9kZTsKK+aDs+ixoSA+IHRvXC1pbWFnaW5lOwor5LiL6ZmNID4gdG9cLWRlY2xpbmU7Civlr6nmn6UgPiB0b1wtZXhhbWluZTsKK+WxpOWjkyA+IGxhbWluYXRpb247CivlkajpgJ8gPiBjeWNsZVwtdGltZTsKK+aatOmiqCA+IHN0b3JtXC13aW5kOwor5bGs5ZywID4gZGVwZW5kZW5jeTsKK+a8suWDuSA+IGFwcHJlY2lhdGU7CivogZbntpMgPiBob2x5XC1iaWJsZTsKK+S7v+ecnyA+IHRvXC1lbXVsYXRlOwor5ZKM6KunID4gaGFybW9uaW91czsKK+S7i+e0uSA+IHRvXC1wcmVzZW50Owor6aC76aC7ID4gcmVwZWF0ZWRseTsKK+e8uum7niA+IHdlYWtcLXBvaW50Owor5pys6KGMID4gb25lJydzXC1saW5lOwor5ruy5Z2RID4gc2V3YWdlXC1waXQ7Civnq7bmioAgPiB0b3VybmFtZW50Owor5oq15Yi2ID4gcmVzaXN0YW5jZTsKK+mQteWMoCA+IGJsYWNrc21pdGg7Civku7vnlKggPiB0b1wtYXBwb2ludDsKK+WWruaVuCA+IG9kZFwtbnVtYmVyOwor5p2/57SZID4gcGFwZXJib2FyZDsKK+WRiOmBniA+IHRvXC1wcmVzZW50Owor5rOi6ZW3ID4gd2F2ZWxlbmd0aDsKK+WwiOW/gyA+IGFic29ycHRpb247CivlgIvliKUgPiBpbmRpdmlkdWFsOwor5pyD6KiIID4gYWNjb3VudGFudDsKK+a1geihgCA+IHNoZWRcLWJsb29kOwor6IKJ54mHID4gbWVhdFwtc2xpY2U7CivmuqvlrqQgPiBncmVlbmhvdXNlOwor5YCa5LuXID4gdG9cLWxlYW5cLW9uOwor5oqR5Yi2ID4gdG9cLWluaGliaXQ7CivkvZzmlpkgPiBjb25kaW1lbnRzOwor5L6/5aO6ID4gYmVkXC11cmluYWw7CivotqjlpYkgPiB0b1wtZmF3blwtb247Civkvb/mgJIgPiBleGFzcGVyYXRlOwor5L6d5bGsID4gZGVwZW5kZW5jZTsKK+mgkOmYsiA+IHRvXC1wcmV2ZW50Owor5YCL5Lq6ID4gaW5kaXZpZHVhbDsKK+etieWIsCA+IHdhaXRcLXVudGlsOwor5bCP5aeQID4geW91bmdcLWxhZHk7CivmoYzluIMgPiB0YWJsZWNsb3RoOwor6IOM5pmvID4gYmFja2dyb3VuZDsKK+S4jeiuiiA+IHVuY2hhbmdpbmc7CivkuIDosqsgPiBjb25zaXN0ZW50Owor5om55YeGID4gdG9cLWFwcHJvdmU7Civnp5Hns7sgPiBkZXBhcnRtZW50Owor5oSB57eSID4gbWVsYW5jaG9seTsKK+elnuipsSA+IGZhaXJ5XC10YWxlOwor5L2P5omAID4gaGFiaXRhdGlvbjsKK+mhm+imhiA+IHN1YnZlcnNpb247CivmoYjlrZAgPiBsb25nXC10YWJsZTsKK+S6kuebuCA+IGVhY2hcLW90aGVyOwor5L6/5YipID4gY29udmVuaWVudDsKK+ays+mCiiA+IHJpdmVyXC1iYW5rOwor5LiN6JmeID4gdW5leHBlY3RlZDsKK+WwpOWFtiA+IGVzcGVjaWFsbHk7Civmt5jmsbAgPiB0b1wtZGllXC1vdXQ7CivogqXmlpkgPiBmZXJ0aWxpemVyOwor5a6J5o6SID4gdG9cLWFycmFuZ2U7CivorbDpmaIgPiBwYXJsaWFtZW50Owor54uh6L6vID4gdG9cLXF1aWJibGU7CivnrKzkuowgPiBudW1iZXJcLXR3bzsKK+agvOWkliA+IGVzcGVjaWFsbHk7CivmmrTooYwgPiBzYXZhZ2VcLWFjdDsKK+WvpuWcqCA+IGluXC1yZWFsaXR5Owor6LaF5Y2HID4gZXhhbHRhdGlvbjsKK+WPm+i7jSA+IHJlYmVsXC1hcm15Owor542456m0ID4gYW5pbWFsXC1kZW47CivlrZ3mlawgPiB0b1wtcmVzcGVjdDsKK+itpumQmCA+IGFsYXJtXC1iZWxsOwor6IOW5a2QID4gZmF0XC1wZXJzb247CivlrZjmlL4gPiB0b1wtZGVwb3NpdDsKK+mkk+atuyA+IHN0YXJ2YXRpb247CivkvbXlkJ4gPiBzd2FsbG93XC11cDsKK+WtuOW+kiA+IGFwcHJlbnRpY2U7CivmhJ/mv4AgPiBhcHByZWNpYXRlOwor5p2/5qiBID4gc2hlZXRcLXBpbGU7CivmiJDliIYgPiBpbmdyZWRpZW50Owor5a655ZmoID4gcmVjZXB0YWNsZTsKK+mHjeimliA+IGltcG9ydGFuY2U7CivmgpTnvaogPiBjb252aWN0aW9uOwor6IO95YqbID4gY2FwYWJpbGl0eTsKK+W/hemgiCA+IHRvXC1oYXZlXC10bzsKK+iCr+WumiA+IHRvXC1iZVwtc3VyZTsKK+S7u+aApyA+IGNhcHJpY2lvdXM7CivnjovniYwgPiB0cnVtcFwtY2FyZDsKK+WNl+mdoiA+IHNvdXRoXC1zaWRlOwor6JaE6I23ID4gZmllbGRcLW1pbnQ7CivppqzlipsgPiBob3JzZXBvd2VyOwor5pyI55CDID4gXCh0aGVcKVwtbW9vbjsKK+Wpmue0hCA+IGVuZ2FnZW1lbnQ7Civnj77miJAgPiByZWFkeVwtbWFkZTsKK+mgu+e5gSA+IGZyZXF1ZW50bHk7CivorbDoq5YgPiB0b1wtY29tbWVudDsKK+S6pOabvyA+IHRvXC1yZXBsYWNlOwor56We56eYID4gbXlzdGVyaW91czsKK+miqOa/lSA+IHJoZXVtYXRpc207CivnvqTnnL4gPiB0aGVcLW1hc3NlczsKK+elnuellSA+IG15c3RlcmlvdXM7Civlr4TkuoggPiB0b1wtZXhwcmVzczsKK+S7geaFiCA+IGJlbmV2b2xlbnQ7Civku4rlvowgPiBoZW5jZWZvcnRoOwor6Jmb5pOsID4gZmljdGl0aW91czsKK+mhr+ePviA+IGFwcGVhcmFuY2U7CivlpJrpu6ggPiBtdWx0aXBhcnR5Owor5LiN55W2ID4gdW5zdWl0YWJsZTsKK+ayiOiQvSA+IHNpbmtcLFwtZmFsbDsKK+ism+i/sCA+IHRhbGtcLWFib3V0Owor5a6j5L2IID4gdG9cLWRlY2xhcmU7CivpvJPmjowgPiB0b1wtYXBwbGF1ZDsKK+S7peWkliA+IGFwYXJ0XC1mcm9tOwor54iG6Z+zID4gc29uaWNcLWJvb207CivkvLzkuY4gPiBhcHBhcmVudGx5Owor5aSn6auUID4gaW5cLWdlbmVyYWw7CivnqbrlhZIgPiBzcGFyZVwtdGltZTsKK+mjn+aMhyA+IGZvcmVmaW5nZXI7CivnibTop7ggPiBjb250cmFkaWN0Owor56iL5bqPID4gcHJvY2VkdXJlczsKK+W8sem7niA+IHdlYWtcLXBvaW50Owor5piO6KiAID4gcHJvbm91bmNlZDsKK+acrOaciCA+IHRoaXNcLW1vbnRoOwor5ZOy5a24ID4gcGhpbG9zb3BoeTsKK+S4ueavkiA+IGVyeXNpcGVsYXM7CivmsKPosaEgPiBtZXRlb3JvbGd5Owor5LqS5oOgID4gcmVjaXByb2NhbDsKK+e4vemrlCA+IGNvbXBsZXRlbHk7CivolKzoj5wgPiB2ZWdldGFibGVzOwor6aOv5bqXID4gcmVzdGF1cmFudDsKK+WQq+eHkCA+IHBob3NwaG9yaWM7Civmm7TmraMgPiBjb3JyZWN0aW9uOwor6buR5p2/ID4gYmxhY2tib2FyZDsKK+W9membhiA+IHRvXC1jb2xsZWN0Owor6Kyb6KejID4gdG9cLWV4cGxhaW47CivpoJDnn6UgPiBhbnRpY2lwYXRlOwor6YOo6ZaAID4gZGVwYXJ0bWVudDsKK+S7peWPiiA+IGFzXC13ZWxsXC1hczsKK+iBr+WQiCA+IHRvXC1jb21iaW5lOwor5Li75qC8ID4gbm9taW5hdGl2ZTsKK+mMhOWPliA+IHRvXC1yZWNydWl0Owor5paw6YOOID4gYnJpZGVncm9vbTsKK+iAjOW+jCA+IGFmdGVyXC10aGF0Owor5a2X5YW4ID4gZGljdGlvbmFyeTsKK+aCsuatjCA+IHNhZFwtbWVsb2R5Owor572q54uAID4gYWNjdXNhdGlvbjsKK+avlOmHjSA+IHByb3BvcnRpb247Civos6DlhJ8gPiBjb21wZW5zYXRlOwor5rWB5pS+ID4gYmFuaXNobWVudDsKK+S6uuWdhyA+IHBlclwtY2FwaXRhOwor5Y+v55aRID4gc3VzcGljaW91czsKK+iBnuWQjSA+IHdlbGxcLWtub3duOwor6ICM5beyID4gdGhhdCcnc1wtYWxsOwor5rW05be+ID4gYmF0aFwtdG93ZWw7CivlkIrnh4ggPiBjaGFuZGVsaWVyOwor6IGy5YO5ID4gcmVwdXRhdGlvbjsKK+iWhOeJhyA+IHRoaW5cLXNsaWNlOwor5pu05pawID4gdXBcLXRvXC1kYXRlOwor6aGr5qCXID4gdG9cLXRyZW1ibGU7CivmnKzlupUgPiBiYWNrZ3JvdW5kOwor6ZuG6auUID4gY29sbGVjdGl2ZTsKK+aVl+mcsiA+IFwob2ZcLWFcLXBsb3Q7CivoqabpqZcgPiBleHBlcmltZW50Owor5Lq65Y+jID4gcG9wdWxhdGlvbjsKK+WOmOexsyA+IGNlbnRpbWV0ZXI7CivmrbjpoIYgPiBzdWJtaXNzaW9uOwor5aSx6LmkID4gYmVcLW1pc3Npbmc7Civpo73lkowgPiBzYXR1cmF0aW9uOwor5q2h6aiwID4ganViaWxhdGlvbjsKK+W+jOijlCA+IGRlc2NlbmRhbnQ7CivmsKPoibIgPiBjb21wbGV4aW9uOwor6YeR54mMID4gZ29sZFwtbWVkYWw7CivkuI3mnIMgPiBpbXByb2JhYmxlOwor5LiK5pyIID4gbGFzdFwtbW9udGg7CivlkLXmnrYgPiB0b1wtcXVhcnJlbDsKK+aEj+WkliA+IHVuZXhwZWN0ZWQ7CivnoqfntqAgPiBkYXJrXC1ncmVlbjsKK+S4jeaZgiA+IGZyZXF1ZW50bHk7CivogIHlpZcgPiBvbGRcLXRoaW5nczsKK+S4puaKiiA+IHRvXC1pbmNsdWRlOwor6KuH6KuWID4gdG9cLWRpc2N1c3M7Civlj4rniakgPiB0cmFuc2l0aXZlOwor6Zu76LuKID4gdHJvbGxleWJ1czsKK+asuumomSA+IHRvXC1kZWNlaXZlOwor6aGn5oWuID4gbWlzZ2l2aW5nczsKK+WPr+avlCA+IGNvbXBhcmFibGU7CivkuovlhYggPiBpblwtYWR2YW5jZTsKK+itpueKrCA+IHBvbGljZVwtZG9nOwor5Ymb6auUID4gcmlnaWRcLWJvZHk7Civmma/msKMgPiBwcm9zcGVyaXR5Owor5Y2c562uID4gZGl2aW5hdGlvbjsKK+S4jeW/qyA+IGJlXC11bmhhcHB5Owor5piM55ubID4gcHJvc3Blcm91czsKK+aUuemBjiA+IHRvXC1jb3JyZWN0Owor5pS56YCyID4gdG9cLWltcHJvdmU7CivkuI3lubggPiBtaXNmb3J0dW5lOwor6Zu76KaWID4gdGVsZXZpc2lvbjsKK+W+jOiAhSA+IHRoZVwtbGF0dGVyOwor57qP57meID4gaW50ZXJ0d2luZTsKK+WKoOmAnyA+IGFjY2VsZXJhdGU7Civoq7Pnt7QgPiBjb252ZXJzYW50Owor5LiA5bqmID4gZm9yXC1hXC10aW1lOwor5q2h6L+OID4gdG9cLXdlbGNvbWU7CivljJbogqUgPiBmZXJ0aWxpemVyOwor5aKo6Y+hID4gc3VuZ2xhc3NlczsKK+WJnemboiA+IFwob2ZcLXRpc3N1ZTsKK+S4jeWxiCA+IHVueWllbGRpbmc7CivlvYjol6UgPiBhbW11bml0aW9uOwor6aCQ5paZID4gYW50aWNpcGF0ZTsKK+mgguabvyA+IHRvXC1yZXBsYWNlOwor5LiN5a6aID4gaW5kZWZpbml0ZTsKK+S4jeWuiSA+IGludHJhbnF1aWw7CivogIHkurogPiBvbGRcLXBlb3BsZTsKK+acn+WIiiA+IHBlcmlvZGljYWw7Civnn6XoprogPiBwZXJjZXB0aW9uOwor5ZCM5oOFID4gY29tcGFzc2lvbjsKK+mBqemFjSA+IGFkYXB0YXRpb247CivlkIjmhI8gPiBhY2NlcHRhYmxlOwor5aSn6IejID4gY2hhbmNlbGxvcjsKK+WQjOaApyA+IGhvbW9zZXh1YWw7Civml6Xnm4ogPiBkYXlcLWJ5XC1kYXk7CivlpKfohr0gPiBjb3VyYWdlb3VzOwor5pys5Lu9ID4gb25lJydzXC1kdXR5Owor5LiN5aalID4gbm90XC1wcm9wZXI7CivmnIPlj4sgPiBtZW1iZXJzaGlwOwor57mz57SNID4gY29udHJpYnV0ZTsKK+S4jeWkoCA+IG5vdFwtZW5vdWdoOwor56eB5LiLID4gaW5cLXByaXZhdGU7Civms6Lls7AgPiB3YXZlXC1jcmVzdDsKK+S4ieWkqSA+IHRocmVlXC1kYXlzOwor8KCAjSA+IGdlbmVyYXRpb247CivpnaLnm64gPiBhcHBlYXJhbmNlOwor5Y+N5pelID4gYW50aVwtamFwYW47Civlu7rorbAgPiB0b1wtcHJvcG9zZTsKK+azouWwjiA+IHdhdmVcLWd1aWRlOwor5ami5aWzID4gc2xhdmVcLWdpcmw7CivmspLmlLYgPiBjb25maXNjYXRlOwor5b+r5rS7ID4gZ2F5XCxcLWhhcHB5Owor5Y+v5oKyID4gbGFtZW50YWJsZTsKK+ipleiouyA+IGNvbW1lbnRhcnk7CivlqYrlrZAgPiBwcm9zdGl0dXRlOwor5b+F54S2ID4gaW5ldml0YWJsZTsKK+WNiueQgyA+IGhlbWlzcGhlcmU7Civpn7/mh4kgPiByZXNwb25kXC10bzsKK+W9mee3qCA+IGNvbGxlY3Rpb247CivorbDmnIMgPiBwYXJsaWFtZW50Owor5aSn57axID4gbWFpblwtcG9pbnQ7Civmkp7pqJkgPiB0b1wtc3dpbmRsZTsKK+eDpOm0qCA+IHJvYXN0XC1kdWNrOwor5q2M6KmeID4gc29uZ1wtbHlyaWM7CivkuKblhaUgPiBtZXJnZVwtaW50bzsKK+iomOi8iSA+IHdyaXRlXC1kb3duOwor5byx6ISIID4gd2Vha1wtcHVsc2U7Civpoavli5UgPiB0b1wtdHJlbWJsZTsKK+WOn+acrCA+IG9yaWdpbmFsbHk7CivlkLjlkK4gPiB0b1wtc3Vja1wtaW47CivniIbnoLQgPiB0b1wtYmxvd1wtdXA7CivpgZPos4AgPiBjb21wbGltZW50Owor5Y+W5b6XID4gdG9cLWFjcXVpcmU7CivkuIrljYogPiBmaXJzdFwtaGFsZjsKK+aVmeiCsiA+IHRvXC1lZHVjYXRlOwor5LiN5YuVID4gbW90aW9ubGVzczsKK+WQnuWZrCA+IHRvXC1zd2FsbG93Owor6KaB6bueID4gbWFpblwtcG9pbnQ7Civlj43lvqkgPiByZXBlYXRlZGx5Owor6KW/6bueID4gd2VzdFwtcG9pbnQ7CivkuKbkuI0gPiBub3RcLWF0XC1hbGw7CivmlpfnnLwgPiBjcm9zc1wtZXllZDsKK+awo+awmyA+IGF0bW9zcGhlcmU7CivnnLzpj6EgPiBzcGVjdGFjbGVzOwor5LiN5YKZID4gdW5wcmVwYXJlZDsKK+aqoumplyA+IHRvXC1pbnNwZWN0Owor5LiA5YaNID4gcmVwZWF0ZWRseTsKK+aBq+WahyA+IGludGltaWRhdGU7CivkuIDlhbEgPiBhbHRvZ2V0aGVyOwor5aWJ5427ID4gY29uc2VjcmF0ZTsKK+S4jeS+nSA+IG5vdFwtY29tcGx5Owor5LiN5L2PID4gcmVwZWF0ZWRseTsKK+WPquWlvSA+IHRvXC1oYXZlXC10bzsKK+iojuirliA+IHRvXC1kaXNjdXNzOwor5paH55uyID4gaWxsaXRlcmF0ZTsKK+aYjuaZuiA+IG5vdFwtdW53aXNlOwor5Y+m5aSWID4gYWRkaXRpb25hbDsKK+aSnumHnSA+IGZpcmluZ1wtcGluOwor5Y2X5qW1ID4gc291dGhcLXBvbGU7CivkuIDku6MgPiBnZW5lcmF0aW9uOwor5pS257iuID4gcHVsbFwtYmFjazsKK+WkmueWkSA+IHNrZXB0aWNhbDsKK+WQiOWKmyA+IGNvb3BlcmF0ZTsKK+eIhueCuCA+IGV4cGxvc2lvbjsKK+WJsuiNiSA+IG1vd1wtZ3Jhc3M7CivororlpY8gPiB2YXJpYXRpb247CivpoJjlj5cgPiB0b1wtYWNjZXB0Owor5YuV55uqID4gY29tbW90aW9uOwor5Y+v5ZOAID4gbWlzZXJhYmx5Owor6I+g6Ji/ID4gcGluZWFwcGxlOwor5Y6a5bqmID4gdGhpY2tuZXNzOwor6YCf6KiYID4gc2hvcnRoYW5kOwor5b6Q5q2lID4gdG9cLXN0cm9sbDsKK+ilv+mdoiA+IHdlc3RcLXNpZGU7CivmkZjpmaQgPiB0b1wtZXhjaXNlOwor6K2m5a6YID4gY29uc3RhYmxlOwor5ZCM5Ly0ID4gY29tcGFuaW9uOwor5ZCN5Lq6ID4gcGVyc29uYWdlOwor6JST5bu2ID4gdG9cLWV4dGVuZDsKK+WQjOS6iyA+IGNvbGxlYWd1ZTsKK+WNiuaXlyA+IGhhbGZcLW1hc3Q7Civph5HljKAgPiBnb2xkc21pdGg7CivlkIzkuIAgPiBpZGVudGljYWw7CivnorDlt6cgPiBieVwtY2hhbmNlOwor5pmu5Y+KID4gd2lkZXNwZWFkOwor6Kit572uID4gdG9cLXNldFwtdXA7Civnh5Lnh6wgPiBidXJuXC1kb3duOwor5piO5bm0ID4gbmV4dFwteWVhcjsKK+WPpOWFuCA+IGNsYXNzaWNhbDsKK+WPq+WBmiA+IGJlXC1jYWxsZWQ7CivntqDojLYgPiBncmVlblwtdGVhOwor5Yil6JmVID4gZWxzZXdoZXJlOwor6L+w6KqeID4gcHJlZGljYXRlOwor6Ziy6KGbID4gdG9cLWRlZmVuZDsKK+aYqOWkqSA+IHllc3RlcmRheTsKK+aVmeeItiA+IGdvZGZhdGhlcjsKK+WPl+WDsSA+IG1lcmNlbmFyeTsKK+aWvOaYryA+IHRoZXJldXBvbjsKK+iqnua6kCA+IGV0eW1vbG9neTsKK+iqquazlSA+IHN0YXRlbWVudDsKK+WfjumWgCA+IGNpdHlcLWdhdGU7CivpnYjmlY8gPiBzZW5zaXRpdmU7CivliqnnkIYgPiBhc3Npc3RhbnQ7CivoqK3nq4sgPiB0b1wtc2V0XC11cDsKK+irluaWtyA+IGluZmVyZW5jZTsKK+WPl+S6iyA+IHJlY2VwaWVudDsKK+eGrOeFjiA+IHN1ZmZlcmluZzsKK+WIhuiZnyA+IHNlbWljb2xvbjsKK+WOn+WRiiA+IGNvbXBsYWludDsKK+eZvemtmiA+IHdoaXRlZmlzaDsKK+WkmuaooyA+IGRpdmVyc2l0eTsKK+WkmuaooSA+IG11bHRpbW9kZTsKK+mWi+mgrSA+IGJlZ2lubmluZzsKK+eEoeiDvSA+IGluYWJpbGl0eTsKK+eZvemrlCA+IGxlYW5cLXR5cGU7CivmqJnpq5ggPiBlbGV2YXRpb247CivlppblqpogPiBzZWR1Y3RpdmU7CivnhKHogbIgPiBub2lzZWxlc3M7CivliLrnuaEgPiBlbWJyb2lkZXI7CivljYHlubQgPiB0ZW5cLXllYXJzOwor5Y2K5bO2ID4gcGVuaW5zdWxhOwor6YCj57qMID4gY29udGlub3VzOwor5Y6f5YmHID4gcHJpbmNpcGxlOwor6YSt5beeID4gemhlbmd6aG91Owor6KiI562WID4gc3RyYXRhZ2VtOwor5bqV57eaID4gdW5kZXJsaW5lOwor6ZaD6Zu7ID4gbGlnaHRuaW5nOwor5byV5rihID4gZXh0cmFkaXRlOwor5pWZ5q+NID4gZ29kbW90aGVyOwor5aOB54iQID4gZmlyZXBsYWNlOwor5paH5piOID4gY2l2aWxpemVkOwor55u06Ka6ID4gaW50dWl0aW9uOwor5aOB54eIID4gd2FsbFwtbGFtcDsKK+eZvOmfsyA+IHByb25vdW5jZTsKK+WOmOWFiyA+IGNlbnRpZ3JhbTsKK+eEoeexnyA+IHNjb3VuZHJlbDsKK+WKoOa3sSA+IHRvXC1kZWVwZW47Civln7fooYwgPiBpbXBsZW1lbnQ7Civpm7nmmrQgPiBoYWlsc3Rvcm07Civnorrkv6EgPiBjb25maWRlbnQ7CivlpaDlrpogPiBlc3RhYmxpc2g7CivpgqPmqKMgPiB0aGF0XC1raW5kOwor5YWs6YeMID4ga2lsb21ldGVyOwor6Kqg5pGvID4gc2luY2VyZWx5Owor5beu6LedID4gZGlzcGFyaXR5Owor6KWv6KOZID4gcGV0dGljb2F0Owor6bC+6IagID4gaXNpbmdsYXNzOwor6K2J5Lu2ID4gcGFwZXJ3b3JrOwor57Sw6I+MID4gYmFjdGVyaWFsOwor6Iqs6aaZID4gZnJhZ3JhbmNlOwor5Y2g5Y2cID4gdG9cLWRpdmluZTsKK+iSvOWkqSA+IGZpcm1hbWVudDsKK+e3qeayliA+IHRvXC1idWZmZXI7CivpgbjmtL4gPiBzZXRcLWFwYXJ0Owor5pWj5pKtID4gdG9cLXNwcmVhZDsKK+Wkp+W/lyA+IGhpZ2hcLWFpbXM7CivovJTpn7MgPiBjb25zb25hbnQ7CivlvLXmj5ogPiBwdWJsaWNpemU7Civop6PnorwgPiB0b1wtZGVjb2RlOwor5pKt56iuID4gc293XC1zZWVkczsKK+WMluWtuCA+IGNoZW1pc3RyeTsKK+Wgsee0mSA+IG5ld3NwYXBlcjsKK+eEoeefpSA+IGlnbm9yYW5jZTsKK+aOpemngSA+IHRvXC1hY2Nlc3M7CivlvojlpJogPiB2ZXJ5XC1tYW55Owor6Kqg5oSPID4gc2luY2VyaXR5Owor5buj5rObID4gZXh0ZW5zaXZlOwor6bOz5qKoID4gcGluZWFwcGxlOwor6ZuZ5pa5ID4gYmlsYXRlcmFsOwor6ZW36YGgID4gbG9uZ1wtdGVybTsKK+WNg+WRqCA+IGtpbG9oZXJ0ejsKK+mBjua/viA+IHRvXC1maWx0ZXI7CivlpYflppkgPiBmYW50YXN0aWM7CivlhrDok4sgPiBpY2VcLXNoZWV0Owor6YGZ5risID4gdGVsZW1ldHJ5Owor6L6y6IiNID4gZmFybWhvdXNlOwor57SF6JOuID4gcmVkXC1sb3R1czsKK+WFseitmCA+IGNvbnNlbnN1czsKK+i8uOmAgSA+IHRyYW5zcG9ydDsKK+Wkp+WwjyA+IGRpbWVuc2lvbjsKK+Wkp+WutiA+IGF1dGhvcml0eTsKK+eIreWPliA+IGZpZ2h0XC1mb3I7Civmr4/lpKkgPiBldmVyeVwtZGF5Owor5pS75pOKID4gdG9cLWF0dGFjazsKK+e0heiMtiA+IGJsYWNrXC10ZWE7CivmloflrZcgPiBjaGFyYWN0ZXI7CivluLjntqAgPiBldmVyZ3JlZW47Civmrpjlu6IgPiBkZWZvcm1pdHk7CivpmrHmmaYgPiBvYnNjdXJpdHk7CivnhafmqKMgPiBhc1wtYmVmb3JlOwor5pa55ZCRID4gZGlyZWN0aW9uOwor54Sw54GrID4gZmlyZXdvcmtzOwor5pWR5oGpID4gc2FsdmF0aW9uOwor5aSp5aSpID4gZXZlcnlcLWRheTsKK+W+jOWLpCA+IGxvZ2lzdGljczsKK+WKqeaJiyA+IGFzc2lzdGFudDsKK+WFp+iksiA+IHVuZGVyd2VhcjsKK+i+pue9qiA+IHRvXC1wdW5pc2g7CivopoHnt4ogPiBpbXBvcnRhbnQ7CivmsJHkuLsgPiBkZW1vY3JhY3k7Civli5nlr6YgPiBwcmFnbWF0aWM7CivmjqjpircgPiB0b1wtbWFya2V0Owor5b2Z5aCxID4gdG9cLXJlcG9ydDsKK+imgee0oCA+IGVzc2VudGlhbDsKK+WkouWigyA+IGRyZWFtbGFuZDsKK+iqsuWggiA+IGNsYXNzcm9vbTsKK+mBuOaThyA+IHRvXC1zZWxlY3Q7CivloLHnlYwgPiB0aGVcLXByZXNzOwor55m86KiAID4gc3RhdGVtZW50Owor5Y2B5LiDID4gc2V2ZW50ZWVuOwor54Gr6JelID4gZ3VucG93ZGVyOwor6Ki65pa3ID4gZGlhZ25vc2lzOwor5q+r5YWLID4gbWlsbGlncmFtOwor5Ymv5pysID4gZHVwbGljYXRlOwor6Imx6ZujID4gZGlmZmljdWx0Owor5buj5pKtID4gYnJvYWRjYXN0Owor5pWX5bGAID4gbG9zdFwtZ2FtZTsKK+mDiuWkliA+IG91dHNraXJ0czsKK+aVmeWupCA+IGNsYXNzcm9vbTsKK+eZveignyA+IHdoaXRlXC13YXg7Civlh7rnj74gPiB0b1wtYXBwZWFyOwor6YCQ5ry4ID4gZ3JhZHVhbGx5Owor5Yaw57OVID4gaWNlXC1jcmVhbTsKK+WFgeiosSA+IHRvXC1wZXJtaXQ7Civlvozku6MgPiBwb3N0ZXJpdHk7CivoiabplbcgPiBjb21tYW5kZXI7Civmp4vpgKAgPiBzdHJ1Y3R1cmU7Civli77lioMgPiB0b1wtc2tldGNoOwor5aKe5o+0ID4gcmVpbmZvcmNlOwor54Sh5q+UID4gbWF0Y2hsZXNzOwor5pWZ5aOrID4gY2h1cmNobWFuOwor5qyh5pW4ID4gZnJlcXVlbmN5Owor5aSn5YqbID4gZW5lcmdldGljOwor5aOv5aSnID4gdG9cLWV4cGFuZDsKK+asiuafhCA+IGF1dGhvcml0eTsKK+mBteW+qiA+IHRvXC1mb2xsb3c7CivpganmhI8gPiBhZ3JlZWFibGU7Civoqr/lgZwgPiByZWNvbmNpbGU7CivlubLmtokgPiBpbnRlcmZlcmU7Civli6Tli4kgPiBkaWxpZ2VuY2U7CivmrL7lvoUgPiBlbnRlcnRhaW47Civnmbzoir0gPiBnZXJtaW5hdGU7CivlpKfkvr8gPiBleGNyZW1lbnQ7CivmkqXmraMgPiBzZXRcLXJpZ2h0Owor5aO95ZG9ID4gbGlmZVwtc3BhbjsKK+e2k+aWhyA+IHNjcmlwdHVyZTsKK+aVsuWFpSA+IHRvXC1rZXlcLWluOwor6ZqK5b2iID4gZm9ybWF0aW9uOwor5aSp5LiKID4gY2VsZXN0aWFsOwor6L6m55CGID4gdG9cLWhhbmRsZTsKK+iou+WumiA+IGJlXC1kb29tZWQ7CivnhKHmlbggPiBjb3VudGxlc3M7CivmlLblm54gPiB0b1wtcmVnYWluOwor5aSW5LqkID4gZGlwbG9tYWN5Owor6YGO5bqmID4gZXhjZWVkaW5nOwor5Yik5pa3ID4gdG9cLWRlY2lkZTsKK+aTjeaMgSA+IHRvXC1tYW5hZ2U7CivmqqLmuKwgPiB0b1wtZGV0ZWN0Owor55+u5YezID4gbG93XC1zdG9vbDsKK+majuWxpCA+IGhpZXJhcmNoeTsKK+iHs+mrmCA+IHBhcmFtb3VudDsKK+aOqOiWpiA+IHJlY29tbWVuZDsKK+aOkuihjCA+IHNlbmlvcml0eTsKK+WJjeW+gCA+IGxlYXZlXC1mb3I7CivmlZnlhIAgPiBvcmRpbmFuY2U7CivntZDmp4sgPiBzdHJ1Y3R1cmU7CivlorPlopMgPiBzZXB1bGNoZXI7Civmkq3mlL4gPiBicm9hZGNhc3Q7Civlhaznp4kgPiBraWxvbGl0ZXI7CivpmLvmkpMgPiB0b1wtdGh3YXJ0Owor5YKz6YCBID4gdG9cLWNvbnZleTsKK+mBuuWbkSA+IHRlc3RhbWVudDsKK+atoeWRvCA+IGNoZWVyXC1mb3I7CivlgrPovLggPiB0cmFuc3BvcnQ7CivlubLmk74gPiBpbnRlcmZlcmU7CivmjqjojZAgPiByZWNvbW1lbmQ7CivpgYrlrqIgPiB0cmF2ZWxsZXI7Civln47niYYgPiBjaXR5XC13YWxsOwor5YWn56K8ID4gdG9cLWVuY29kZTsKK+aRp+aumCA+IHRvXC1yYXZhZ2U7Civmkp7mk4ogPiB0b1wtc3RyaWtlOwor5Yqg5YqHID4gYWdncmF2YXRlOwor6Zi75oqXID4gaW1wZWRhbmNlOwor5o2Q6LSIID4gdG9cLWRvbmF0ZTsKK+iHqumhmCA+IHZvbHVudGFyeTsKK+aoueeariA+IHRyZWVcLWJhcms7CivntpPluqYgPiBsb25naXR1ZGU7Civpmqjlk6EgPiBhdHRlbmRhbnQ7CivlhYnnrYYgPiBsaWdodFwtcGVuOwor5aCx5pSkID4gbmV3c3N0YW5kOwor5Ye65pa8ID4gYmVcLWR1ZVwtdG87CivmlZHkuJYgPiBzYWx2YXRpb247Civmk7TlpKcgPiB0b1wtZXhwYW5kOwor6YGO5aSaID4gZXhjZXNzaXZlOwor54Sh5b2iID4gaW52aXNpYmxlOwor6KOd572uID4gZXF1aXBtZW50Owor5pWF5LqLID4gbmFycmF0aXZlOwor5YWx55SiID4gY29tbXVuaXN0Owor56+p6YG4ID4gdG9cLWZpbHRlcjsKK+aOqOe/uyA+IG92ZXJ0aHJvdzsKK+mZouWtkCA+IGNvdXJ0eWFyZDsKK+WckuiXnSA+IGdhcmRlbmluZzsKK+W7o+WNmiA+IGV4dGVuc2l2ZTsKK+asiuWogSA+IGF1dGhvcml0eTsKK+WKg+WIhiA+IHRvXC1kaXZpZGU7CivlgrPoqJggPiBiaW9ncmFwaHk7Civov7fmg5EgPiB0b1wtcHV6emxlOwor5Yqg5LiKID4gdG9cLXB1dFwtaW47Civlu7bkvLggPiB0b1wtZXh0ZW5kOwor6YCa5a61ID4gb3Zlcm5pZ2h0Owor6Imx6IumID4gZGlmZmljdWx0Owor5buj5YKzID4gcHJvcGFnYXRlOwor55m855SfID4gdG9cLWhhcHBlbjsKK+eZseeYkyA+IHBhcmFseXNpczsKK+e1hOaIkCA+IGNvbXBvbmVudDsKK+maiuWIlyA+IGZvcm1hdGlvbjsKK+aOpeeuoSA+IHRha2VcLW92ZXI7CivoqK3lgpkgPiBlcXVpcG1lbnQ7CivpmoblhqwgPiBtaWR3aW50ZXI7Civlh7nluqYgPiBjb25jYXZpdHk7CivmvKvplbcgPiB2ZXJ5XC1sb25nOwor55WM6Z2iID4gaW50ZXJmYWNlOwor5Ym15L2cID4gdG9cLWNyZWF0ZTsKK+mZquWQjCA+IGFjY29tcGFueTsKK+aTtOWFhSA+IHRvXC1leHBhbmQ7CivmjIfosqwgPiBjcml0aWNpemU7CivntpzlkIggPiBjb21wb3NpdGU7CivmiqvpnLIgPiB0b1wtcmV2ZWFsOwor55yL5b6FID4gbG9va1wtdXBvbjsKK+mZt+WFpSA+IHNpbmtcLWludG87CivoobDokL0gPiBkZWNvbXBvc2U7CivliZvlgaUgPiBlbmVyZ2V0aWM7CivmkqXlpY8gPiBwaXp6aWNhdG87CivpgIblooMgPiBhZHZlcnNpdHk7Civov6vlrrMgPiBwZXJzZWN1dGU7CivpgLLljJYgPiBldm9sdXRpb247Civovq/miY0gPiBlbG9xdWVuY2U7Civoh6rosqAgPiBjb25jZWl0ZWQ7CivluILmlL8gPiBtdW5pY2lwYWw7CivlhLznhLYgPiBqdXN0XC1saWtlOwor57WV5aaZID4gZXhxdWlzaXRlOwor5oqV6ZmNID4gc3VycmVuZGVyOwor57C956ugID4gc2lnbmF0dXJlOwor6Zmq5Ly0ID4gYWNjb21wYW55Owor57aB5YyqID4ga2lkbmFwcGVyOwor54Sh5YqbID4gcG93ZXJsZXNzOwor5pOU5L+dID4gZ3VhcmFudGVlOwor5o6o55CGID4gcmVhc29uaW5nOwor5Zug6ICMID4gdGhlcmVmb3JlOwor6YCG5ZCRID4gYmFja3dhcmRzOwor6Lef6ZqoID4gdG9cLWZvbGxvdzsKK+aMieiaiiA+IGFub3BoZWxlczsKK+aoo+apnyA+IHByb3RvdHlwZTsKK+WIqOWGsCA+IHdhdGVyXC1pY2U7CivluLblr6wgPiBiYW5kd2lkdGg7CivnlbDorbAgPiBvYmplY3Rpb247Civopo/lrpogPiBwcm92aXNpb247CivlsZXplosgPiB0b1wtdW5mb2xkOwor6Lyq5rWBID4gYWx0ZXJuYXRlOwor5YKz57WxID4gdHJhZGl0aW9uOwor5YGP6KaLID4gcHJlanVkaWNlOwor5Zyw55CGID4gZ2VvZ3JhcGh5Owor5Zyw55CDID4gdGhlXC1lYXJ0aDsKK+mZjeS9jiA+IHRvXC1yZWR1Y2U7Civkv53pmqogPiBpbnN1cmFuY2U7Civkv53pmpwgPiB0b1wtZW5zdXJlOwor5aC05ZCIID4gc2l0dWF0aW9uOwor5aCx5ZGKID4gdG9cLWluZm9ybTsKK+e0s+WjqyA+IGdlbnRsZW1hbjsKK+WFrOaWlyA+IGRlY2FsaXRlcjsKK+mAneS4liA+IHBhc3NcLWF3YXk7Civov5Tlm54gPiByZXR1cm5cLXRvOwor6ZmE5Lu2ID4gZW5jbG9zdXJlOwor5YiG5YmyID4gdG9cLWN1dFwtdXA7CivplbfmnJ8gPiBsb25nXC10ZXJtOwor5omB6aqoID4gZmxhdFwtYm9uZTsKK+S/nemPoiA+IGJvZHlndWFyZDsKK+i3kemMtiA+IHN0b3B3YXRjaDsKK+e0meWkviA+IHBhcGVyY2xpcDsKK+eZvOaYjiA+IHRvXC1pbnZlbnQ7CivmqKHmk6wgPiBpbWl0YXRpb247Civmv4DnmbwgPiB0b1wtYXJvdXNlOwor5YaN5bqmID4gb25jZVwtbW9yZTsKK+ezvuWvnyA+IHRvXC1waWNrZXQ7Civmi7foirEgPiB0b1wtZW1ib3NzOwor5r2b6ImHID4gc3VibWFyaW5lOwor6L+35L2PID4gZmFzY2luYXRlOwor6Im+54K3ID4gbW94YVwtY29uZTsKK+WbmuemgSA+IGNhcHRpdml0eTsKK+WFp+aIsCA+IGNpdmlsXC13YXI7Civkvr/ploAgPiBzaWRlXC1kb29yOwor6KOB5ribID4gdG9cLXJlZHVjZTsKK+i/t+S6giA+IGNvbmZ1c2lvbjsKK+WcjeeJhiA+IGVuY2xvc3VyZTsKK+ebuOWQjCA+IGlkZW50aWNhbDsKK+imj+WLuCA+IHRvXC1hZHZpc2U7Civooajnmq4gPiBlcGlkZXJtaXM7Civooajnmb0gPiB2aW5kaWNhdGU7CivmiLbpmZAgPiB0aHJlc2hvbGQ7CivnnIvlgZogPiByZWdhcmRcLWFzOwor5o2Q5427ID4gdG9cLWRvbmF0ZTsKK+WFh+aJiyA+IGFzc2FpbGFudDsKK+ifkeiegiA+IGNvY2tyb2FjaDsKK+WvrOmguyA+IGJyb2FkYmFuZDsKK+ilv+WNlyA+IHNvdXRod2VzdDsKK+S9v+mkqCA+IGNvbnN1bGF0ZTsKK+ilv+WMlyA+IG5vcnRod2VzdDsKK+ajieiiqyA+IGNvbWZvcnRlcjsKK+eyvuW3pyA+IGVsYWJvcmF0ZTsKK+W2hOaWsCA+IGJyYW5kXC1uZXc7CivmiZPpgLIgPiB0b1wtYnJlYWNoOwor5YWs5a+4ID4gZGVjaW1ldGVyOwor5om/6KqNID4gcmVjb2duaXplOwor5YWs5a+TID4gYXBhcnRtZW50Owor5bi45Lu7ID4gcGVybWFuZW50Owor5YWJ5b2pID4gaG9ub3JhYmxlOwor5L+d6K23ID4gdG9cLWRlZmVuZDsKK+aMh+ekuiA+IHBvaW50XC1vdXQ7Civnl4XnkIYgPiBwYXRob2xvZ3k7Civovpvli54gPiBsYWJvcmlvdXM7CivmkI3lo54gPiB0b1wtZGFtYWdlOwor5L+d6Ki8ID4gZ3VhcmFudGVlOwor5ZiJ6KixID4gZmF2b3JhYmxlOwor5YWr5aSpID4gZWlnaHRcLWRheTsKK+aLkue1lSA+IHRvXC1yZWZ1c2U7CivopoHkuI0gPiBvdGhlcndpc2U7CivmqJnlrpogPiBkZW1hcmNhdGU7CivohqjohLkgPiB0b1wtZXhwYW5kOwor6Ly75bCEID4gcmFkaWF0aW9uOwor5o6S5pS+ID4gZGlzY2hhcmdlOwor6auU54++ID4gdG9cLWVtYm9keTsKK+ihsOa4myA+IHRvXC13ZWFrZW47CivnsYPmnb8gPiBiYWNrYm9hcmQ7Civppqzpnq0gPiBob3JzZXdoaXA7Civoi6blooMgPiBncmlldmFuY2U7CivnlaLnq58gPiBhZnRlclwtYWxsOwor5L2O6ZqOID4gbG93XC1sZXZlbDsKK+aJgOisgiA+IHNvXC1jYWxsZWQ7CivmvbDniJsgPiB0b1wtZmVzdGVyOwor5YSy5a2YID4gc3RvY2twaWxlOwor6IaA6IeCID4gdXBwZXJcLWFybTsKK+eAkeW4gyA+IHdhdGVyZmFsbDsKK+aOm+W/tSA+IGNvbmNlcm5lZDsKK+WFqOWQjCA+IGlkZW50aWNhbDsKK+i9n+WLlSA+IHNlbnNhdGlvbjsKK+iHuueHiCA+IGRlc2tcLWxhbXA7CivonbTonbYgPiBidXR0ZXJmbHk7CivnlJznvo4gPiBzd2VldG5lc3M7CivkvLTpmqggPiB0b1wtZm9sbG93Owor5a+m6LOqID4gc3Vic3RhbmNlOwor5YWs5YWpID4gaGVjdG9ncmFtOwor5qSN54mpID4gYm90YW5pY2FsOwor56m66ZiyID4gYWlyXC1mb3JjZTsKK+WFpeS+tSA+IHRvXC1pbnZhZGU7CivlhYvliLYgPiByZXN0cmFpbnQ7CivlhazkuIggPiBkZWNhbWV0ZXI7CivovLjlh7ogPiB0b1wtZXhwb3J0Owor5oqY56OoID4gcGVyc2VjdXRlOwor6Ly45YWlID4gdG9cLWltcG9ydDsKK+WvpuihjCA+IGltcGxlbWVudDsKK+etieetiSA+IGV0XC1jZXRlcmE7CivmuIXpmaQgPiBlbGltaW5hdGU7CivmiZPogb0gPiBhc2tcLWFib3V0Owor6KGo5o+aID4gdG9cLXByYWlzZTsKK+a/gOaAkiA+IGluZnVyaWF0ZTsKK+aJk+e/uyA+IG92ZXJ0aHJvdzsKK+WBnOaziiA+IGFuY2hvcmFnZTsKK+icu+ickyA+IGRyYWdvbmZseTsKK+a8uOa8uCA+IGdyYWR1YWxseTsKK+WtkOmfsyA+IGNvbnNvbmFudDsKK+a8sua9riA+IGhpZ2hcLXRpZGU7CivlrrborZwgPiBnZW5lYWxvZ3k7CivpqZrnlbAgPiBhbWF6ZW1lbnQ7CivovJTliqkgPiB0b1wtYXNzaXN0Owor5o+Q5L6bID4gdG9cLXN1cHBseTsKK+epv+mAjyA+IHBlbmV0cmF0ZTsKK+aOpeWPoyA+IGludGVyZmFjZTsKK+aOpeWPlyA+IHRvXC1hY2NlcHQ7Civpq5Tmk40gPiBneW1uYXN0aWM7Civkvr/nrosgPiBub3RlcGFwZXI7Civnqbrou40gPiBhaXJcLWZvcmNlOwor6LaF6IGvID4gaHlwZXJsaW5rOwor6IGW6aSQID4gc2FjcmFtZW50Owor6KOd5YKZID4gZXF1aXBtZW50Owor5om555m8ID4gd2hvbGVzYWxlOwor5ry45qyhID4gZ3JhZHVhbGx5Owor6LaV57eKID4gaHVycmllZGx5Owor6aqo5p62ID4gZnJhbWV3b3JrOwor5LuL6Z2iID4gaW50ZXJmYWNlOwor5YG15o6iID4gZGV0ZWN0aXZlOwor6Ieo5pmCID4gdGVtcG9yYXJ5Owor5oyR5oiwID4gY2hhbGxlbmdlOwor6KKr5ZGKID4gZGVmZW5kYW50Owor5o6S5Ye6ID4gZGlzY2hhcmdlOwor5ouU5p+TID4gZGlzY2hhcmdlOwor6LKd6aGeID4gc2hlbGxmaXNoOwor5Zyo5YWnID4gaW5jbHVkaW5nOwor5ou/5omLID4gZXhwZXJ0XC1pbjsKK+eriuiBvSA+IGVhdmVzZHJvcDsKK+Wuv+iIjSA+IGRvcm1pdG9yeTsKK+WxseawtCA+IGxhbmRzY2FwZTsKK+Wbm+WkqSA+IGZvdXJcLWRheXM7CivmjLrlpb0gPiB2ZXJ5XC1nb29kOwor57C95YWlID4gdG9cLWxvZ1wtb247Civppqzog4wgPiBob3JzZWJhY2s7CivpqZXmsKMgPiBhcnJvZ2FuY2U7CivnlpHlv4MgPiBzdXNwaWNpb247CivmuLrojKsgPiB1bmNlcnRhaW47Civmv4Dli7UgPiBlbmNvdXJhZ2U7Civmv4Dli5UgPiB0b1wtZXhjaXRlOwor5oiQ56uLID4gZXN0YWJsaXNoOwor5re76KOcID4gZmlsbFwtXCh1cFwpOwor5L+u5q2jID4gdG9cLXJldmlzZTsKK+afkOiZlSA+IHNvbWV3aGVyZTsKK+izk+ipniA+IHByZWRpY2F0ZTsKK+eoseiumiA+IHRvXC1wcmFpc2U7CivkvY7ntJogPiBsb3dcLWxldmVsOwor6LKo6LyqID4gZnJlaWdodGVyOwor6auU5ZyYID4gY29tbXVuaXR5Owor5qW15YW2ID4gZXh0cmVtZWx5Owor5oq15oqXID4gdG9cLXJlc2lzdDsKK+misemiqCA+IGh1cnJpY2FuZTsKK+S8uOe4riA+IHRvXC1leHRlbmQ7Civomq/ompMgPiBlYXJ0aHdvcm07CivotJbnvaogPiBhdG9uZW1lbnQ7Civlr7XniakgPiBob3VzZVwtcGV0Owor6IGW6KqVID4gY2hyaXN0bWFzOwor5YGH5a6aID4gdG9cLWFzc3VtZTsKK+ihjOWLlSA+IG9wZXJhdGlvbjsKK+S4u+mrlCA+IG1haW5cLXBhcnQ7CivmiYvms5UgPiB0ZWNobmlxdWU7CivmtojpgaMgPiBhbXVzZW1lbnQ7CivmpbXkuoYgPiBleHRyZW1lbHk7CivlsLHmpa0gPiBnZXRcLWFcLWpvYjsKK+eWhuWfnyA+IHRlcnJpdG9yeTsKK+ahjOeHiCA+IGRlc2tcLWxhbXA7CivnloblnJ8gPiB0ZXJyaXRvcnk7Civmib/mk5QgPiB1bmRlcnRha2U7Civohr3lsI8gPiBjb3dhcmRpY2U7CivlsazmgKcgPiBhdHRyaWJ1dGU7Civpq5jlg7kgPiBleHBlbnNpdmU7CivkuLvpoIEgPiBob21lXC1wYWdlOwor576O6bqXID4gYmVhdXRpZnVsOwor5pyD6Z2iID4gbWVldFwtd2l0aDsKK+aIkOeCuiA+IHRvXC1iZWNvbWU7CivkuqToqrwgPiBjb21tdW5pb247CivpjKbnuaEgPiBiZWF1dGlmdWw7CivmvZvlipsgPiBwb3RlbnRpYWw7CivlsYXmiYAgPiByZXNpZGVuY2U7Civlrbjnq6UgPiBzY2hvb2xib3k7Civoh6rli5UgPiBhdXRvbWF0aWM7CivooJXli5UgPiB0b1wtd2lnZ2xlOwor5omT5pWXID4gdG9cLWRlZmVhdDsKK+ixquixrCA+IHBvcmN1cGluZTsKK+WVn+eZvCA+IGVubGlnaHRlbjsKK+a1gemHjyA+IGZsb3dcLXJhdGU7Civos5zntaYgPiB0b1wtYmVzdG93Owor5oub5YufID4gdG9cLXJlY3VpdDsKK+WujOeVoiA+IHRvXC1maW5pc2g7CivlsI3mlrwgPiByZWdhcmRpbmc7Civoh7Pku4ogPiB1bnRpbFwtbm93Owor57+76K2vID4gdHJhbnNsYXRlOwor5LiK6Z2iID4gb25cLXRvcFwtb2Y7CivkupTomZ8gPiB0aGVcLWZpZnRoOwor5L+h5beuID4gbWVzc2VuZ2VyOwor6IaA5a2QID4gdXBwZXJcLWFybTsKK+aLhuWNuCA+IHRvXC11bmxvYWQ7Civom4vnmb0gPiBlZ2dcLXdoaXRlOwor5ZCe6aOfID4gdG9cLWRldm91cjsKK+ahhuaetiA+IGZyYW1ld29yazsKK+iDg+eCjiA+IGdhc3RyaXRpczsKK+WwjeaKlyA+IHdpdGhzdGFuZDsKK+WZqOWFtyA+IGltcGxlbWVudDsKK+iEq+aOiSA+IHN0cmlwXC1vZmY7CivpppnmuK8gPiBob25nXC1rb25nOwor5a+m5pmCID4gcmVhbFwtdGltZTsKK+iCuueCjiA+IHBuZXVtb25pYTsKK+aFtuelnSA+IGNlbGVicmF0ZTsKK+WusOauuiA+IHNsYXVnaHRlcjsKK+a1quiVqSA+IHRvXC1sb2l0ZXI7Civosaroj68gPiBsdXh1cmlvdXM7Civmn5DniakgPiBzb21ldGhpbmc7CivmtKXosrwgPiBhbGxvd2FuY2U7Civogp3ngo4gPiBoZXBhdGl0aXM7CivmtojogJcgPiB0b1wtdXNlXC11cDsKK+S4iui8iSA+IHRvXC11cGxvYWQ7CivomK3oirEgPiBjeW1iaWRpdW07Civmm7joqJggPiBzZWNyZXRhcnk7CivmtaroiLkgPiBzd2luZ2JvYXQ7CivlsI/lr6sgPiBsb3dlcmNhc2U7CivnlKjlhbcgPiBhcHBsaWFuY2U7Civlj6TpoqggPiBhbnRpcXVpdHk7CivlronmrYcgPiBnb1wtdG9cLWJlZDsKK+WutuaXjyA+IGhvdXNlaG9sZDsKK+S9leaVhSA+IHdoZXJlZm9yZTsKK+iFs+WNsCA+IGZvb3RwcmludDsKK+eTt+WZqCA+IGNoaW5hd2FyZTsKK+erpeW5tCA+IGNoaWxkaG9vZDsKK+S9lOaTmiA+IHRvXC1vY2N1cHk7CivotbfluoogPiB0b1wtZ2V0XC11cDsKK+WvrOW4tiA+IGJyb2FkYmFuZDsKK+S+huW5tCA+IG5leHRcLXllYXI7Civku4rnlJ8gPiB0aGlzXC1saWZlOwor6aC76YGTID4gZnJlcXVlbmN5Owor5pys6IG3ID4gb25lJydzXC1qb2I7CivlsYDli6IgPiBzaXR1YXRpb247Civog4zmlpwgPiBhbnRpY2xpbmU7CivmmrTouoEgPiBpcmFzY2libGU7CivmsaDpub0gPiBsYWtlXC1zYWx0Owor5LiN6KixID4gbm90XC1hbGxvdzsKK+WVhuaomSA+IHRyYWRlbWFyazsKK+mjr+eilyA+IHJpY2VcLWJvd2w7CivmmaTpnaIgPiBpbnRlcnZpZXc7CivmoZTlrZAgPiB0YW5nZXJpbmU7Civph43plosgPiB0b1wtcmVvcGVuOwor6K6K6Z2pID4gdHJhbnNmb3JtOwor5oiq5aWqID4gaW50ZXJjZXB0Owor5rex5rC0ID4gZGVlcHdhdGVyOwor6Lao5ZCRID4gZGlyZWN0aW9uOwor6LW35aeLID4gb3JpZ2luYXRlOwor56WH6K6AID4gcmVhZFwtb25seTsKK+WtuOacgyA+IGluc3RpdHV0ZTsKK+aHuOW0liA+IHByZWNpcGljZTsKK+aineS7tiA+IGNvbmRpdGlvbjsKK+m3k+m0oyA+IHBhcnRyaWRnZTsKK+acq+erryA+IGV4dHJlbWl0eTsKK+eTnOWIhiA+IHBhcnRpdGlvbjsKK+iZleeQhiA+IHRvXC1oYW5kbGU7Civmtoznj74gPiBzcHJpbmdcLXVwOwor56au56+AID4gZXRpcXVldHRlOwor5pmu6YGNID4gdW5pdmVyc2FsOwor6K6K6YacID4gZGlzZmlndXJlOwor5Lim6IKpID4gYWxvbmdzaWRlOwor6JyC5beiID4gaG9uZXljb21iOwor5Lit576OID4gY2hpbmFcLXVzYTsKK+aal+iqniA+IGNvZGVcLXdvcmQ7Civnq6/lj6MgPiBpbnRlcmZhY2U7CivkvY7lsaQgPiBsb3dcLWxldmVsOwor6YeN6LmIID4gdG9cLXJlcGVhdDsKK+S9j+WuhSA+IHJlc2lkZW5jZTsKK+S8keaIsCA+IGFybWlzdGljZTsKK+aJgOS7pSA+IHRoZXJlZm9yZTsKK+iumuizniA+IHRvXC1hZG1pcmU7CivmuJvlvLEgPiB0b1wtd2Vha2VuOwor5Y+b6LOjID4gdG9cLWJldHJheTsKK+WrjOeWkSA+IHN1c3BpY2lvbjsKK+S8uOWxlSA+IGV4dGVuc2lvbjsKK+S4gOiHtCA+IHVuYW5pbW91czsKK+iBsuaYjiA+IHN0YXRlbWVudDsKK+mkiuauliA+IGN1bHRpdmF0ZTsKK+afv+WtkCA+IHBlcnNpbW1vbjsKK+iAgeeJjCA+IG9sZFwtYnJhbmQ7CivlppbpoqggPiBldmlsXC13aW5kOwor6Yy25bi2ID4gd2F0Y2hiYW5kOwor6YeN6KaBID4gaW1wb3J0YW50Owor5rib5bCRID4gdG9cLWxlc3NlbjsKK+acieebiiA+IHdob2xlc29tZTsKK+mHjeikhyA+IHRvXC1yZXBlYXQ7Civnq4vliLsgPiBmb3J0aHdpdGg7Civmt7HmgJ0gPiB0b1wtcG9uZGVyOwor5pep6aSQID4gYnJlYWtmYXN0Owor6YeO6KC7ID4gYmFyYmFyb3VzOwor5pep6aOvID4gYnJlYWtmYXN0Owor5b+F6ZyAID4gZXNzZW50aWFsOwor6LKh5p2xID4gc2hvcG93bmVyOwor6Jmb5qeLID4gaW1hZ2luYXJ5Owor6IGv5oOzID4gYXNzb2NpYXRlOwor5rW45rKSID4gaW1tZXJzaW9uOwor5p2/5panID4gYnJvYWRcLWF4ZTsKK+WQq+eziiA+IG9ic2N1cml0eTsKK+a3kuaFmCA+IG1pc2VyYWJsZTsKK+S4gOevhyA+IG9uZVwtc2lkZWQ7CivpjbXlhaUgPiB0b1wta2V5XC1pbjsKK+aXi+miqCA+IHdoaXJsd2luZDsKK+elneemjyA+IGJsZXNzaW5nczsKK+acn+a7vyA+IHRvXC1leHBpcmU7CivoraboprogPiB2aWdpbGFuY2U7Civljp/oq5IgPiB0b1wtZXhjdXNlOwor5a625L+xID4gZnVybml0dXJlOwor5oSf5p+TID4gaW5mZWN0aW9uOwor5a2U5a2QID4gY29uZnVjaXVzOwor5a2Q5a2rID4gb2Zmc3ByaW5nOwor5a625Lq6ID4gaG91c2Vob2xkOwor5a625LqLID4gaG91c2V3b3JrOwor5a6j5YKzID4gcHVibGljaXplOwor5LuK5bm0ID4gdGhpc1wteWVhcjsKK+WRiOePviA+IHRvXC1hcHBlYXI7CivkuIDnmb4gPiBhXC1odW5kcmVkOwor6LKr5b65ID4gaW1wbGVtZW50Owor5Luy5aSPID4gbWlkc3VtbWVyOwor6K2J6KmeID4gdGVzdGltb255Owor56eY5pu4ID4gc2VjcmV0YXJ5Owor56qB5Ye6ID4gcHJvbWluZW50Owor5oOh5q+SID4gbWFsaWNpb3VzOwor5Ly05L62ID4gY29tcGFuaW9uOwor5piC6LK0ID4gZXhwZW5zaXZlOwor6Zyy6Z+TID4gdG9cLWV4cG9zZTsKK+W9semfvyA+IGluZmx1ZW5jZTsKK+WkoumtmCA+IG5pZ2h0bWFyZTsKK+WlvemBiyA+IGdvb2RcLWx1Y2s7CivmmrTnmbwgPiBicmVha1wtb3V0Owor5oeJ5LuYID4gZGVhbFwtd2l0aDsKK+acieavkiA+IHBvaXNvbm91czsKK+W8sem5vCA+IHdlYWtcLWJhc2U7Civmsb3oiLkgPiBzdGVhbWJvYXQ7Civlj6/nrJEgPiBsYXVnaGFibGU7CivljYrovIkgPiBoYWxmXC1sb2FkOwor5b6u6LufID4gbWljcm9zb2Z0Owor5LuZ5aKDID4gZmFpcnlsYW5kOwor5peo6LajID4gb2JqZWN0aXZlOwor5pel6LaoID4gZ3JhZHVhbGx5Owor5LqL5oWLID4gc2l0dWF0aW9uOwor5aSn6aGeID4gbWFpblwtdHlwZTsKK+acrOaWhyA+IHRoaXNcLXRleHQ7Civnh5/ppIogPiBudXRyaXRpb247CivpoLvnjocgPiBmcmVxdWVuY3k7CivljZTorbAgPiBhZ3JlZW1lbnQ7CivkuI3mu78gPiByZXNlbnRmdWw7CivpgqPpurwgPiBzb1wtXChtdWNoXCk7Civlv4XopoEgPiBuZWNlc3Nhcnk7CivlpKfpmbggPiBjb250aW5lbnQ7Civnoqfol40gPiBkYXJrXC1ibHVlOwor5b6F6YGHID4gdHJlYXRtZW50Owor5ZCI55CGID4gcmF0aW9uYWxlOwor546p5byEID4gcmVzb3J0XC10bzsKK+acieaZgiA+IHNvbWV0aW1lczsKK+aXgei3ryA+IHRvXC1ieXBhc3M7CivlpJzplpMgPiBuaWdodHRpbWU7Civmr5TphLAgPiBuZWlnaGJvdXI7CivpnZ7orbAgPiBjcml0aWNpemU7Civmm7jmnrYgPiBib29rc2hlbGY7Civmt7fkuoIgPiBjb25mdXNpb247CivmnInmlYggPiBlZmZlY3RpdmU7CivnvL3nm4IgPiBhbG1zXC1ib3dsOwor6LOH5YqpID4gc3Vic2lkaXplOwor5LiK5qyhID4gbGFzdFwtdGltZTsKK+eJjOiZnyA+IHRyYWRlbWFyazsKK+S6lOWkqSA+IGZpdmVcLWRheXM7CivmtojlpLEgPiBkaXNhcHBlYXI7Civml4Hop4AgPiBzcGVjdGF0b3I7Civno6jnn7MgPiBtaWxsc3RvbmU7Civku4vlhaUgPiBpbnRlcnZlbmU7Civku6XkuIogPiBtb3JlXC10aGFuOwor55+b6aCtID4gc3BlYXJoZWFkOwor5aSi6YG6ID4gd2V0XC1kcmVhbTsKK+iuiueVsCA+IHZhcmlhdGlvbjsKK+azouautSA+IHdhdmVcLWJhbmQ7Civpm6LplosgPiB0b1wtZGVwYXJ0Owor542y5b6XID4gdG9cLW9idGFpbjsKK+WQkOawoyA+IGFzcGlyYXRlZDsKK+adseWNlyA+IHNvdXRoZWFzdDsKK+adseWMlyA+IG5vcnRoZWFzdDsKK+S4jeaYjiA+IG5vdFwtY2xlYXI7CivlpYfop4AgPiBzcGVjdGFjbGU7CivmlLnpnakgPiB0b1wtcmVmb3JtOwor5oSb5ZyLID4gcGF0cmlvdGljOwor5LiN5pa3ID4gdW5jZWFzaW5nOwor5LuK5LiWID4gdGhpc1wtbGlmZTsKK+acquWpmiA+IHVubWFycmllZDsKK+W8semFuCA+IHdlYWtcLWFjaWQ7CivmlLbpm4YgPiB0b1wtZ2F0aGVyOwor5LmY5a6iID4gcGFzc2VuZ2VyOwor5LiA5pmCID4gdGVtcG9yYXJ5Owor5Yqp6ZW3ID4gZW5jb3VyYWdlOwor5Lqk5Ye6ID4gaGFuZFwtb3ZlcjsKK+mjn+WTgSA+IGZvb2RzdHVmZjsKK+mFjee9riA+IHRvXC1kZXBsb3k7CivlpLHoqr8gPiBpbWJhbGFuY2U7CivmtojljrsgPiBlbGltaW5hdGU7CivmnKzlo5ggPiBob21lXC1iYXNlOwor5Lq65LqLID4gcGVyc29ubmVsOwor5oKy5oWYID4gbWlzZXJhYmxlOwor6K2Y55u4ID4gc2Vuc2l0aXZlOwor5pu45bqXID4gYm9va3N0b3JlOwor6YKK6ZaAID4gc2lkZVwtZG9vcjsKK+S4reW6rSA+IGNvdXJ0eWFyZDsKK+WPuOapnyA+IGNoYXVmZmV1cjsKK+eNqOWutiA+IGV4Y2x1c2l2ZTsKK+adseS6niA+IGVhc3RcLWFzaWE7Civlvqnnv5IgPiB0b1wtcmV2aXNlOwor5ZCI5qC8ID4gcXVhbGlmaWVkOwor5pqr5pmCID4gdGVtcG9yYXJ5Owor6ZuZ6YKKID4gYmlsYXRlcmFsOwor6ICQ5YqbID4gZW5kdXJhbmNlOwor5piO56K6ID4gY2xlYXJcLWN1dDsKK+S4jeaDnCA+IG5vdFwtc3RpbnQ7Civmg6HlpKIgPiBuaWdodG1hcmU7Civljp/nkIYgPiBwcmluY2lwbGU7CivkuLvlqaYgPiBob3VzZXdpZmU7CivnjqnlhbcgPiBwbGF5dGhpbmc7Civpm7voqbEgPiB0ZWxlcGhvbmU7Civmlr3ogqUgPiBmZXJ0aWxpemU7CivmlLnpgKAgPiB0b1wtY2hhbmdlOwor54uA5rOBID4gY29uZGl0aW9uOwor5LiN5bmzID4gaW5qdXN0aWNlOwor6YCZ6bq8ID4gc29cLVwobXVjaFwpOwor5LiN5beyID4gZW5kbGVzc2x5Owor6Zuc6LKoID4gZ3JvY2VyaWVzOwor5pyo5YygID4gY2FycGVudGVyOwor6KmV6YG4ID4gdG9cLWNob29zZTsKK+mGrOayuSA+IHNveVwtc2F1Y2U7Civlu7rpgKAgPiBjb25zdHJ1Y3Q7Civop7jprJogPiB0ZW50YWNsZXM7Civmk6bpn7MgPiBmcmljYXRpdmU7CivlkajlnI0gPiBlbmNvbXBhc3M7CivkuI3lsI0gPiBpbmNvcnJlY3Q7Civlv4Pnm64gPiBtZW50YWxpdHk7Civlj6/mlawgPiB2ZW5lcmFibGU7Civlj5fmoLwgPiBvYmplY3RpdmU7CivlpKfojbMgPiBzb3lhXC1iZWFuOwor8KKlniA+IHNhbWVcLWFzXC3lv6E7CivlpZHntIQgPiBhZ3JlZW1lbnQ7CivpsbfprZogPiBhbGxpZ2F0b3I7Civms6LluYUgPiBhbXBsaXR1ZGU7CivmlLnoroogPiB0b1wtY2hhbmdlOwor5bqt6ZmiID4gY291cnR5YXJkOwor56au5YSAID4gZXRpcXVldHRlOwor5Y+z5omLID4gcmlnaHRoYW5kOwor5Ym16YCgID4gdG9cLWNyZWF0ZTsKK+a1geWFpSA+IGZsb3dcLWludG87Civms6jlsIQgPiBpbmplY3Rpb247Civnoaznm6QgPiBoYXJkXC1kaXNrOwor5Yqf6KqyID4gY2xhc3N3b3JrOwor6YCx6ZW3ID4gcGVyaW1ldGVyOwor5pyI5YWJID4gbW9vbmxpZ2h0Owor5aSx57ixID4gZGlzYXBwZWFyOwor5ama5ae7ID4gbWF0cmltb255Owor5Y+j5omNID4gZWxvcXVlbmNlOwor5LiN5ZyoID4gbm90XC1iZVwtaW47Civpnq3mr5sgPiBmbGFnZWxsdW07CivmkqvppIogPiB0b1wtZm9zdGVyOwor5rS+5Lu7ID4gc2V0XC1hcGFydDsKK+WIqumZpCA+IHRvXC1kZWxldGU7CivpgaDotrMgPiBleGN1cnNpb247CivnhKHpmZAgPiB1bmxpbWl0ZWQ7CivpoJHlvLcgPiB0ZW5hY2lvdXM7CivnhKHpl5wgPiB1bnJlbGF0ZWQ7CivokrjnmbwgPiBldmFwb3JhdGU7Civlj6TmgKogPiBlY2NlbnRyaWM7CivlvpfnlbYgPiBleHBlZGllbnQ7CivmsrnluIMgPiB0YXJwYXVsaW47CivkuIvllIcgPiBsb3dlclwtbGlwOwor576p5YuZID4gdm9sdW50ZWVyOwor5LiK5ZSHID4gdXBwZXJcLWxpcDsKK+mggeW/gyA+IHR5cGVcLXBhZ2U7CivkuI3lkJ0gPiBub3RcLXN0aW50Owor5LiN5ZCMID4gZGlmZmVyZW50Owor5rGh5p+TID4gcG9sbHV0aW9uOwor5YmN6YCUID4gcHJvc3BlY3RzOwor54aK6JyCID4gYnVtYmxlYmVlOwor57i957WQID4gc3VtbWFyaXplOwor576O5ZGzID4gZGVsaWNpb3VzOwor5ZC45Y+WID4gdG9cLWFic29yYjsKK+S4i+WNiCA+IGFmdGVybm9vbjsKK+mAsemCiiA+IHBlcmlwaGVyeTsKK+W5tOmZkCA+IGFnZVwtbGltaXQ7CivkuIvliJcgPiBmb2xsb3dpbmc7CivkuI3lh4YgPiBub3RcLWFsbG93Owor6aGM5ZCNID4gYXV0b2dyYXBoOwor5aSa56uvID4gbXVsdGlwb3J0Owor5pWI6IO9ID4gZWZmaWNpZW50Owor5LiN5YGcID4gaW5jZXNzYW50Owor5aSn56CyID4gYXJ0aWxsZXJ5Owor5LiN5YC8ID4gbm90XC13b3J0aDsKK+aymeWyqSA+IHNhbmRzdG9uZTsKK+azouWPiiA+IHNwcmVhZFwtdG87Civlvq7ms6IgPiBtaWNyb3dhdmU7CivkuI3kvJEgPiBlbmRsZXNzbHk7CivnhKHovpwgPiBpbm5vY2VuY2U7CivmrKHopoEgPiBzZWNvbmRhcnk7CivkuI3kuoggPiBub3RcLWdyYW50Owor5Y675bm0ID4gbGFzdFwteWVhcjsKK+S4jeS6hiA+IHVuYWJsZVwtdG87CivpoJjlnJ8gPiB0ZXJyaXRvcnk7Civpn4zmgKcgPiB0b3VnaG5lc3M7CivnpL7ljYAgPiBjb21tdW5pdHk7CivniYjmrIogPiBjb3B5cmlnaHQ7CivlkJHljZcgPiBzb3V0aHdhcmQ7CivmsJHmrYwgPiBmb2xrXC1zb25nOwor5Y2z5pmCID4gaW1tZWRpYXRlOwor5pKt6YCBID4gYnJvYWRjYXN0Owor5bm46YGLID4gZm9ydHVuYXRlOwor576O5LitID4gdXNhXC1jaGluYTsKK+maleiQvSA+IGZhbGxcLWRvd247Civnhp/nt7QgPiBwcmFjdGljZWQ7CivmlLnnt6ggPiB0b1wtYWRhcHQ7Civno4HmgKcgPiBtYWduZXRpYzsKK+Wjk+e3iiA+IGNvbXByZXNzOwor6Yar5a24ID4gbWVkaWNpbmU7CivlkJ7kvbUgPiB0b1wtYW5uZXg7CivpnYjmtLsgPiBmbGV4aWJsZTsKK+aWh+eNuyA+IGRvY3VtZW50Owor5aSW55SoID4gZXh0ZXJuYWw7Civpgornt5ogPiBzaWRlbGluZTsKK+ato+e1sSA+IG9ydGhvZG94Owor5bu257qMID4gY29udGludWU7CivpoLvku40gPiBmcmVxdWVudDsKK+e3r+e3miA+IGxhdGl0dWRlOwor54Sh6KqkID4gdmVyaWZpZWQ7Civml6Xmm4YgPiBjYWxlbmRhcjsKK+WJneiQvSA+IHBlZWxcLW9mZjsKK+mgkOWNnCA+IGZvcmV0ZWxsOwor5bm76LGhID4gaWxsdXNpb247CivorLnmhY4gPiBjYXV0aW91czsKK+eJueaApyA+IHByb3BlcnR5Owor6Iy26aSoID4gdGVhaG91c2U7Civps6XnsaAgPiBiaXJkY2FnZTsKK+W+ruaYjiA+IHR3aWxpZ2h0Owor5bu656+JID4gYnVpbGRpbmc7Civlj4vlloQgPiBmcmllbmRseTsKK+W7uueriyA+IGNyZWF0aW9uOwor6aCG5YipID4gc21vb3RobHk7Civlv4PmiYsgPiBuZXdcLWhhbmQ7CivlhrDpmpkgPiBjcmV2YXNzZTsKK+mcuOasiiA+IGhlZ2Vtb255Owor5Y2x5oClID4gY3JpdGljYWw7CivpmpnnuKsgPiBhcGVydHVyZTsKK+imqui6qyA+IHBlcnNvbmFsOwor56K65a6aID4gZGVmaW5pdGU7CivntYLouqsgPiBsaWZlbG9uZzsKK+iomOiAhSA+IHJlcG9ydGVyOwor6KaP6YG/ID4gdG9cLWV2YWRlOwor54mn5birID4gY2hhcGxhaW47CivmlLbnm4ogPiBlYXJuaW5nczsKK+WFt+mrlCA+IGNvbmNyZXRlOwor5bmz6KGMID4gcGFyYWxsZWw7Civlv6Dlr6YgPiBmYWl0aGZ1bDsKK+atpeeZvCA+IGZvb3R3b3JrOwor5YiG6KOCID4gc3BsaXRcLXVwOwor5paw5pu4ID4gbmV3XC1ib29rOwor5Y+j5LqkID4gb3JhbFwtc2V4Owor5Ym156uLID4gdG9cLWZvdW5kOwor54Wk566xID4gY29hbFwtYm94Owor57y65LmPID4gc2hvcnRhZ2U7Civml6XlvowgPiBzb21ldGltZTsKK+mCiueVjCA+IGJvdW5kYXJ5Owor54G96ZujID4gZGlzYXN0ZXI7CivlvrnlupUgPiB0aG9yb3VnaDsKK+mxieijmSA+IGNhbGlwYXNoOwor6K2m5Y+lID4gYXBob3Jpc207Civml6nlt7IgPiBsb25nXC1hZ287Civpm5bnhLYgPiBhbHRob3VnaDsKK+egtOabiSA+IGRheWJyZWFrOwor6Zuo5ru0ID4gcmFpbmRyb3A7CivmmI7lpKkgPiB0b21vcnJvdzsKK+WmluWtvSA+IGV2aWxkb2VyOwor6Zu75rCjID4gZWxlY3RyaWM7CivphazloLEgPiB0b1wtcmVwYXk7CivpgbrnlKIgPiBoZXJpdGFnZTsKK+ehrOW6piA+IGhhcmRuZXNzOwor54Sh6IGKID4gbm9uc2Vuc2U7CivmqavpgY4gPiB0cmF2ZXJzZTsKK+W+geaIsCA+IGNhbXBhaWduOwor6Kqy5pysID4gdGV4dGJvb2s7Civlh4vorJ0gPiBsYW5ndWlzaDsKK+ioiOeulyA+IHRvXC1jb3VudDsKK+mWi+mZpCA+IHRvXC1leHBlbDsKK+mBqeeVtiA+IHN1aXRhYmxlOwor57qW5benID4gZGVsaWNhdGU7CivlubPoh7ogPiBwbGF0Zm9ybTsKK+Wkp+aWuSA+IGdlbmVyb3VzOwor54Sh57irID4gc2VhbWxlc3M7CivlhqDou40gPiBjaGFtcGlvbjsKK+WHhuiosSA+IHRvXC1hbGxvdzsKK+mEsOWxhSA+IG5laWdoYm9yOwor6Zu75qKvID4gZWxldmF0b3I7Civok4vlsaQgPiBjYXBcLXJvY2s7CivpnaLlsI0gPiBjb25mcm9udDsKK+eEoee3miA+IHdpcmVsZXNzOwor56K65YiHID4gZGVmaW5pdGU7CivpgJrntIUgPiB2ZXJ5XC1yZWQ7CivljIXmioQgPiBvdXRmbGFuazsKK+i+qOiqjSA+IGlkZW50aWZ5Owor5Y6f5L6GID4gb3JpZ2luYWw7CivlpJrmlbggPiBtYWpvcml0eTsKK+eJqeWTgSA+IGFydGljbGVzOwor5pS/5rK7ID4gcG9saXRpY3M7CivljYrlpJwgPiBtaWRuaWdodDsKK+WNiOWknCA+IG1pZG5pZ2h0Owor5paw5bm0ID4gbmV3XC15ZWFyOwor5peF5a6iID4gdHJhdmVsZXI7CivpgLznnJ8gPiBsaWZlbGlrZTsKK+atpeazlSA+IGZvb3R3b3JrOwor5YWs6YeQID4gZGVjaWdyYW07CivmrrrmiK4gPiBtYXNzYWNyZTsKK+WKm+awoyA+IHN0cmVuZ3RoOwor5YWn6YOoID4gaW50ZXJpb3I7Civopobok4sgPiB0b1wtY292ZXI7CivnuaHluLcgPiB0YXBlc3RyeTsKK+WkquW/mSA+IHRvb1wtYnVzeTsKK+edoeecoCA+IHNsZWVwaW5nOwor6KOd6aO+ID4gZGVjb3JhdGU7CivljYHlm5sgPiBmb3VydGVlbjsKK+W5s+etiSA+IGVxdWFsaXR5Owor55m96YeRID4gcGxhdGludW07CivljIXlsaQgPiBjbGFkZGluZzsKK+i9iemAgSA+IHRyYW5zZmVyOwor5YaN6KaLID4gZ29vZFwtYnllOwor5aSi5bm7ID4gaWxsdXNpb247CivpgJXnm7QgPiBzdHJhaWdodDsKK+WNseS6oSA+IGF0XC1zdGFrZTsKK+iNieiNiSA+IGNhcmVsZXNzOwor5ben6KiIID4gbWFuZXV2ZXI7CivokZfmiYsgPiBjb21tZW5jZTsKK+aWmeWtkCA+IG1hdGVyaWFsOwor55uy6IW4ID4gYXBwZW5kaXg7CivmlK/mn7EgPiBtYWluc3RheTsKK+W9ouWuuSA+IGRlc2NyaWJlOwor54Sh55aRID4gbm9cLWRvdWJ0Owor5by35oKNID4gdmFsbGlhbnQ7Civnspfph44gPiBpbnNvbGVudDsKK+iii+m8oCA+IGthbmdhcm9vOwor5aaW5Lq6ID4gbWFnaWNpYW47Civou5/pq5QgPiBzb2Z0d2FyZTsKK+aWsOWeiyA+IG5ld1wtdHlwZTsKK+WfueiCsiA+IHRvXC10cmFpbjsKK+eFpOayuSA+IGtlcm9zZW5lOwor5Yqg5pmCID4gb3ZlcnRpbWU7CivlhYnovJ0gPiByYWRpYW5jZTsKK+W+qeWFgyA+IHJlY292ZXJ5Owor5by35bqmID4gc3RyZW5ndGg7CivljYHlhasgPiBlaWdodGVlbjsKK+Wls+WFkiA+IGRhdWdodGVyOwor5aSa5bCRID4gaG93XC1tdWNoOwor5Y2B5YWLID4gZGVjYWdyYW07CivlnLDpm7cgPiBsYW5kbWluZTsKK+WmguS7iiA+IG5vd2FkYXlzOwor6YKq5oOhID4gc2luaXN0ZXI7Civop4DnnIsgPiB0b1wtd2F0Y2g7CivlvpfliIYgPiB0b1wtc2NvcmU7CivljIXlnI0gPiBzdXJyb3VuZDsKK+avlOWWuyA+IG1ldGFwaG9yOwor6KaP56+EID4gc3RhbmRhcmQ7Civou4Dpq5QgPiB0aGVcLWJvZHk7Civnoazku7YgPiBoYXJkd2FyZTsKK+WkqeWggiA+IHBhcmFkaXNlOwor5Y2B5LmdID4gbmluZXRlZW47CivlhYnorZwgPiBzcGVjdHJ1bTsKK+ijnOmBuiA+IGFkZGVuZHVtOwor6YGg5p2xID4gZmFyXC1lYXN0Owor5Y2B5LiJID4gdGhpcnRlZW47CivmqZ/og70gPiBmdW5jdGlvbjsKK+iSmeWPpCA+IG1vbmdvbGlhOwor6YGg5pmvID4gcHJvc3BlY3Q7CivntJDntIQgPiBuZXdcLXlvcms7CivmlZnlsI4gPiBpbnN0cnVjdDsKK+aPkOitsCA+IHByb3Bvc2FsOwor5YSq6LaKID4gc3VwZXJpb3I7CivpgLLmraUgPiBwcm9ncmVzczsKK+mBruaOqSA+IHRvXC1jb3ZlcjsKK+mbu+WgsSA+IHRlbGVncmFtOwor5pG555WrID4gZGVzY3JpYmU7Civou4rplpMgPiB3b3Jrc2hvcDsKK+W+gOS+hiA+IGRlYWxpbmdzOwor6Kq/5YuVID4gdHJhbnNmZXI7CivlvJXlsI4gPiB0b1wtZ3VpZGU7Civoo53osqggPiBzaGlwcGluZzsKK+WKm+W6piA+IGR5bmFtaXNtOwor6YGO5pa8ID4gdG9vXC1tdWNoOwor55uj56aBID4gaW1wcmlzb247CivlhrDnqpYgPiBpY2Vob3VzZTsKK+WggueahyA+IGltcG9zaW5nOwor5bSH6auYID4gbWFqZXN0aWM7CivnnIHnlaUgPiBvbWlzc2lvbjsKK+avjeS/giA+IG1hdGVybmFsOwor5o6h6LK3ID4gcHVyY2hhc2U7CivovJXoppYgPiBjb250ZW1wdDsKK+eyvuiHtCA+IGRlbGljYWN5Owor6YGy5bu2ID4gdG9cLWRlbGF5Owor5pSc5bi2ID4gdG9cLWNhcnJ5Owor5bu25bGVID4gdG9cLXNjYWxlOwor6L6y55SwID4gZmFybWxhbmQ7Civpg6jkvY0gPiBwb3NpdGlvbjsKK+WJteW7uiA+IHRvXC1mb3VuZDsKK+WFp+e9riA+IGludGVybmFsOwor6ZmQ5pyfID4gZGVhZGxpbmU7Civnt4rlvLUgPiBjcml0aWNhbDsKK+iomOaGtiA+IG1lbW9yaWVzOwor6YG35bCxID4gdG9cLXlpZWxkOwor57K+576OID4gZGVsaWNhdGU7CivlvLfli4EgPiBwb3dlcmZ1bDsKK+aWh+S7tiA+IGRvY3VtZW50Owor5q665Lq6ID4gaG9taWNpZGU7CivpgorlooMgPiBmcm9udGllcjsKK+WkluS+hiA+IGV4dGVybmFsOwor5Ymb5oCnID4gcmlnaWRpdHk7Civli4Pli4MgPiB0aHJpdmluZzsKK+mBqeWunCA+IHN1aXRhYmxlOwor5pOB5pOgID4gdG9cLWNyb3dkOwor5o6I6KqyID4gdG9cLXRlYWNoOwor6Kej5pWjID4gZGlzc29sdmU7CivpmbDmgKcgPiBmZW1pbmluZTsKK+WLleS9nCA+IG1vdmVtZW50Owor5pWm5L+DID4gdG9cLXByZXNzOwor6ZuH5ZOhID4gZW1wbG95ZWU7CivngInol6UgPiBsYXhhdGl2ZTsKK+aPm+e9riA+IGRpc3BsYWNlOwor6Zuo5YKYID4gdW1icmVsbGE7CivlnJborIAgPiBjb25zcGlyZTsKK+iRo+S6iyA+IGRpcmVjdG9yOwor5YuV5Lq6ID4gdG91Y2hpbmc7CivpmLvmk4ogPiB0b1wtY2hlY2s7Civoo5zoirEgPiBhcHBsaXF1ZTsKK+Whl+aKuSA+IHRvXC1zbWVhcjsKK+mqqOmqvCA+IHNrZWxldG9uOwor6KOd6Ii5ID4gc2hpcG1lbnQ7CivmrLrlo5MgPiB0b1wtYnVsbHk7CivojZLmtrwgPiBkZXNvbGF0ZTsKK+WHueadvyA+IGludGFnbGlvOwor5Yqj5YuiID4gaW5mZXJpb3I7CivliIbmlbggPiBmcmFjdGlvbjsKK+ebjueEtiA+IGFidW5kYW50Owor5aOT5YqbID4gcHJlc3N1cmU7CivpgKPlv5kgPiBwcm9tcHRseTsKK+mCo+WAiyA+IHRoYXRcLW9uZTsKK+eEoeaDhSA+IHBpdGlsZXNzOwor5pOm5a+rID4gdG9cLWVyYXNlOwor5aOT5Yi2ID4gc3VwcHJlc3M7Civnsr7norogPiBhY2N1cmF0ZTsKK+WEque+jiA+IGdyYWNlZnVsOwor6Iiq6YGLID4gc2hpcHBpbmc7Civlh73mlbggPiBmdW5jdGlvbjsKK+e2k+W4uCA+IGV2ZXJ5ZGF5Owor5q2l5YW1ID4gaW5mYW50cnk7CivlubPmiL8gPiBidW5nYWxvdzsKK+WGsOa2vCA+IGljZVwtY29sZDsKK+W5u+aDsyA+IGRlbHVzaW9uOwor5bqP5bmVID4gcHJvbG9ndWU7CivliLvlr6sgPiBpbnNjcmliZTsKK+Wik+WcsCA+IGNlbWV0ZXJ5Owor6YG/5YWNID4gdG9cLWF2ZXJ0Owor6KaP5qC8ID4gc3RhbmRhcmQ7CivloLTmiYAgPiBsb2NhdGlvbjsKK+i/veaCvCA+IG1vdXJuaW5nOwor6ZuH5Li7ID4gZW1wbG95ZXI7Civmj63nmbwgPiBkaXNjbG9zZTsKK+ioseWPryA+IHRvXC1hbGxvdzsKK+WCs+ioiiA+IHN1YnBvZW5hOwor6KmV5LywID4gZXZhbHVhdGU7Civmi5bpnosgPiBzbGlwcGVyczsKK+WBvemAoCA+IHRvXC1mb3JnZTsKK+eBq+eJhiA+IGZpcmV3YWxsOwor5Ye25omLID4gbXVyZGVyZXI7CivnhKHlrrMgPiBoYXJtbGVzczsKK+i7n+iGjyA+IG9pbnRtZW50Owor5o6M6IGyID4gYXBwbGF1c2U7Civooajop4AgPiBhcHBhcmVudDsKK+Wfi+aykiA+IG9ibGl2aW9uOwor5bmz5bi4ID4gb3JkaW5hcnk7Civmi5TpmaQgPiBwdWxsXC1vdXQ7Civlop7liqAgPiB0b1wtcmFpc2U7Civou4zojIMgPiBzdGFuZGFyZDsKK+aRqeaTpiA+IGZyaWN0aW9uOwor6Ka65b6XID4gdG9cLXRoaW5rOwor6auY6LK0ID4gZ3JhbmRldXI7CivliarliIAgPiBzY2lzc29yczsKK+WFheeVtiA+IHNlcnZlXC1hczsKK+eCuuaZgiA+IHRpbWV3aXNlOwor6YGU5YiwID4gdG9cLXJlYWNoOwor6KW/5pa5ID4gdGhlXC13ZXN0Owor6YGL5YuVID4gbW92ZW1lbnQ7CivmrLrkvq4gPiB0b1wtYnVsbHk7CivpgJrloLEgPiBidWxsZXRpbjsKK+aSpeWtkCA+IHBsZWN0cnVtOwor5bqK5aKKID4gbWF0dHJlc3M7Civmipfpq5QgPiBhbnRpYm9keTsKK+iHqOi/kSA+IGNsb3NlXC10bzsKK+iOq+WkpyA+IGdyZWF0ZXN0Owor57SE5p2fID4gcmVzdHJpY3Q7CivliIflr6YgPiBmZWFzaWJsZTsKK+eVjOmZkCA+IGJvdW5kYXJ5Owor6Zm95YWJID4gc3Vuc2hpbmU7CivliIblrZAgPiBtb2xlY3VsZTsKK+ebuOaHiSA+IHJlbGV2YW50Owor55y+5aSaID4gbnVtZXJvdXM7CivpmLvloZ4gPiB0b1wtYmxvY2s7CivntZXlsI0gPiBhYnNvbHV0ZTsKK+WIhuWoqSA+IGRlbGl2ZXJ5Owor566h6YGTID4gcGlwZWxpbmU7CivpgYrkvLQgPiBwbGF5bWF0ZTsKK+W3pealrSA+IGluZHVzdHJ5Owor5Yaw5o6SID4gaWNlXC1yYWZ0Owor6YCy5YWlID4gdG9cLWVudGVyOwor6Lev6Z2iID4gcGF2ZW1lbnQ7Civnm7TlvpEgPiBkaWFtZXRlcjsKK+eEoeWQjSA+IG5hbWVsZXNzOwor57WQ5amaID4gdG9cLW1hcnJ5Owor5aC15aGeID4gYmxvY2thZ2U7CivmkqTlm54gPiB3aXRoZHJhdzsKK+edvuS4uCA+IHRlc3RpY2xlOwor57aT5YW4ID4gY2xhc3NpY3M7CivpqLDpqLAgPiBzdGVhbWluZzsKK+mAvOS6uiA+IHByZXNzaW5nOwor6Lyd54WMID4gc3BsZW5kaWQ7CivnhKHliqkgPiBoZWxwbGVzczsKK+aOoeeUqCA+IHRvXC1hZG9wdDsKK+W3suaVhSA+IHRoZVwtbGF0ZTsKK+W6j+WIlyA+IHNlcXVlbmNlOwor55m85rGXID4gdG9cLXN3ZWF0Owor5ZyL56uLID4gbmF0aW9uYWw7CivnrrToqIAgPiBwcm92ZXJiczsKK+ijnOeIkCA+IGZldHRsaW5nOwor6Led6ZuiID4gZGlzdGFuY2U7Civoh6roo70gPiBob21lbWFkZTsKK+mYu+WKmyA+IG9ic3RhY2xlOwor55if55arID4gZXBpZGVtaWM7CivooJXooJUgPiB3aWdnbGluZzsKK+mAgeWIpSA+IGZhcmV3ZWxsOwor54Sh5Lq6ID4gdW5tYW5uZWQ7CivlhazmlqQgPiBraWxvZ3JhbTsKK+WFrOaWhyA+IGRvY3VtZW50Owor5oq96LGhID4gYWJzdHJhY3Q7Civlh7rlj6MgPiB0b1wtc3BlYWs7CivopqrlloQgPiBnb29kd2lsbDsKK+iIiOiHtCA+IGludGVyZXN0Owor6YCU5LitID4gZW5cLXJvdXRlOwor6ZaT5o6lID4gaW5kaXJlY3Q7CivpkLXot68gPiByYWlscm9hZDsKK+aQrOW8hCA+IG1vdmVcLXN0aDsKK+aomeacrCA+IHNwZWNpbWVuOwor6YCA5L2NID4gYWJkaWNhdGU7CivntYTlkIggPiBhc3NlbWJsZTsKK+WhjOS4iyA+IGNvbGxhcHNlOwor6YCD5LqhID4gZnVnaXRpdmU7CivmiLDprKUgPiB0b1wtZmlnaHQ7CivntbHkuIAgPiB0b1wtdW5pZnk7CivliJHkuosgPiBjcmltaW5hbDsKK+aPkOahiCA+IHByb3Bvc2FsOwor6KGd56qBID4gY29uZmxpY3Q7Civov73kuIogPiBvdmVydGFrZTsKK+iIquepuiA+IGF2aWF0aW9uOwor5L+u6L6tID4gcmhldG9yaWM7Civmv77mtrIgPiBmaWx0cmF0ZTsKK+WwjemdoiA+IG9wcG9zaXRlOwor5Ye95Lu2ID4gbGV0dGVyZXM7Civnm7jlj40gPiBvcHBvc2l0ZTsKK+aMgee6jCA+IGNvbnRpbnVlOwor6aa06bm/ID4gcmVpbmRlZXI7CivmiYvpkLIgPiBicmFjZWxldDsKK+iEq+mboiA+IHNlcGFyYXRlOwor6ama6KidID4gY29uZm91bmQ7CivohIrpqqggPiBiYWNrYm9uZTsKK+aNleeNsiA+IHRvXC1jYXRjaDsKK+mnlemnmyA+IHRvXC1kcml2ZTsKK+aOoeaooyA+IHNhbXBsaW5nOwor57SU5ZOBID4gc3Rlcmxpbmc7CivploDlvpIgPiBkaXNjaXBsZTsKK+i/keS+hiA+IHJlY2VudGx5Owor5a+66ZmiID4gY2xvaXN0ZXI7CivnrZToqbEgPiB0b1wtcmVwbHk7Civmpa3nlYwgPiBpbmR1c3RyeTsKK+eBq+WxsSA+IHZvbGNhbmljOwor5YW25a+mID4gYWN0dWFsbHk7CivnlJ/oqZ4gPiBuZXdcLXdvcmQ7Civov5HkuY4gPiBjbG9zZVwtdG87CivmorXoqp4gPiBzYW5za3JpdDsKK+S+v+mBkyA+IHNob3J0Y3V0Owor6KSy5a2QID4gdHJvdXNlcnM7Civlr6fpnZwgPiB0cmFucXVpbDsKK+ecgeS7vSA+IHByb3ZpbmNlOwor5bCB6Y6WID4gYmxvY2thZGU7Civkv6/oppYgPiBvdmVybG9vazsKK+W0qea9sCA+IGNvbGxhcHNlOwor6LyJ5pScID4gdG9cLWNhcnJ5Owor5r+V5rCjID4gbW9pc3R1cmU7Civnsr7lr4YgPiBhY2N1cmFjeTsKK+iMtuWMmSA+IHRlYXNwb29uOwor5ZyL5rCRID4gbmF0aW9uYWw7CivlhYTlvJ8gPiBicm90aGVyczsKK+agoemplyA+IHRvXC1jaGVjazsKK+eyl+W/gyA+IGNhcmVsZXNzOwor5Yaw5Ya3ID4gaWNlXC1jb2xkOwor6IiI55ubID4gZmxvdXJpc2g7CivlgJjoi6UgPiBwcm92aWRlZDsKK+mXnOS/giA+IHJlbGF0aW9uOwor55m85bCEID4gdG9cLXNob290Owor5omL6LazID4gbW92ZW1lbnQ7CivmqZ/li5UgPiBmbGV4aWJsZTsKK+aOoeaOmCA+IGV4Y2F2YXRlOwor6LaK6YGOID4gdG9cLWNyb3NzOwor6KOB5pKkID4gZGlzc29sdmU7CivlhbXlmaggPiB3ZWFwb25yeTsKK+aLlOevgCA+IGpvaW50aW5nOwor5ryU57+SID4gZXhlcmNpc2U7CivntIrkuoIgPiBkaXNvcmRlcjsKK+i3s+iIniA+IHRvXC1kYW5jZTsKK+evhOeWhyA+IGNhdGVnb3J5Owor5YW15ZOhID4gc29sZGllcnM7Civmurbop6MgPiBkaXNzb2x2ZTsKK+aOmeaJjiA+IHN0cnVnZ2xlOwor5ruy6ImyID4gYmxlZWRpbmc7Civom4vpu4MgPiBlZ2dcLXlvbGs7CivlhbHlkowgPiByZXB1YmxpYzsKK+i7jeaWuSA+IG1pbGl0YXJ5Owor5qeL5oOzID4gY29uY2VpdmU7Civog4zpnaIgPiB0aGVcLWJhY2s7CivovJTlsI4gPiB0b1wtY29hY2g7Civlr7bosrQgPiB2YWx1YWJsZTsKK+WFpeWPoyA+IGVudHJhbmNlOwor6amV57ixID4gYXJyb2dhbnQ7CivplovlibUgPiBpbml0aWF0ZTsKK+S+teidlSA+IHRvXC1lcm9kZTsKK+WEgOW8jyA+IGNlcmVtb255Owor5omB6J+yID4gZmxhdHdvcm07CivlhbzkvbUgPiB0b1wtYW5uZXg7CivmqILlnJIgPiBwYXJhZGlzZTsKK+WuuemHjyA+IGNhcGFjaXR5Owor5o+P5ZyWID4gdG9cLXRyYWNlOwor6LWk6LazID4gYmFyZWZvb3Q7CivlsYHogqEgPiBidXR0b2NrczsKK+eZvOWLlSA+IHRvXC1zdGFydDsKK+ijveWTgSA+IHByb2R1Y3RzOwor5YWx5LqrID4gdG9cLXNoYXJlOwor6Iux5L+KID4gaGFuZHNvbWU7CivmjbflvpEgPiBzaG9ydGN1dDsKK+ihjOalrSA+IGluZHVzdHJ5Owor6aas6LuKID4gY2FycmlhZ2U7CivlhazkuLsgPiBwcmluY2VzczsKK+aPkOWQjSA+IG5vbWluYXRlOwor5Zub5pa5ID4gZm91clwtd2F5Owor57KX5Y6yID4gYWJyYXNpdmU7Civou4rlu4IgPiBjYXJyaWFnZTsKK+iHquayuyA+IGF1dG9ub215Owor6auY5p62ID4gb3ZlcmhlYWQ7Civlm7Dmg5EgPiBiZXdpbGRlcjsKK+eskeiBsiA+IGxhdWdodGVyOwor5p2+6bygID4gc3F1aXJyZWw7CivlhKrli6IgPiBzdXBlcmlvcjsKK+ewv+WtkCA+IG5vdGVib29rOwor5YKy5oWiID4gYXJyb2dhbnQ7CivlhYjku6QgPiBzaGlsbGluZzsKK+a4oOmBkyA+IGNoYW5uZWxzOwor5qCh6KiCID4gcmV2aXNpb247Civmo5LnkIMgPiBiYXNlYmFsbDsKK+WEquWFiCA+IHByaW9yaXR5Owor5Zm05rOJID4gZm91bnRhaW47Civou43lo6sgPiBzZXJnZWFudDsKK+S+huiHqCA+IGFwcHJvYWNoOwor6KGj5buaID4gd2FyZHJvYmU7Civku73ph48gPiBxdWFudGl0eTsKK+WDseWToSA+IGVtcGxveWVlOwor5oeJ6KmyID4gb3VnaHRcLXRvOwor5o6h5YWJID4gbGlnaHRpbmc7CivogZrpm4YgPiBhc3NlbWJsZTsKK+aMieaNuiA+IHJlc3RyYWluOwor6KOB5YikID4ganVkZ21lbnQ7CivkurrpoZ4gPiBodW1hbml0eTsKK+S8sOioiCA+IGVzdGltYXRlOwor5Z2Q5LiLID4gc2l0XC1kb3duOwor5a6J6KyQID4gdHJhbnF1aWw7Civlm57lrrYgPiBob21ld2FyZDsKK+S9v+iAhSA+IGVtaXNzYXJ5Owor5bSp5aGMID4gY29sbGFwc2U7CivmiZPnoLQgPiB0b1wtYnJlYWs7CivlsI3nqLEgPiBzeW1tZXRyeTsKK+WBh+acnyA+IHZhY2F0aW9uOwor6aO86aSKID4gdG9cLXJhaXNlOwor6KGj5a2QID4gY292ZXJpbmc7Civos7zosrcgPiBwdXJjaGFzZTsKK+i7vOS6iyA+IGFuZWNkb3RlOwor56iA6aOvID4gcG9ycmlkZ2U7CivmirHmrYkgPiBiZVwtc29ycnk7CivmvILmta4gPiB0b1wtZmxvYXQ7CivmpbXlpb0gPiBmYWJ1bG91czsKK+alteWkpyA+IGVub3Jtb3VzOwor55WM5qiZID4gbGFuZG1hcms7CivlnLDkvY0gPiBwb3NpdGlvbjsKK+eosemHjSA+IHRvXC13ZWlnaDsKK+evgOaFtiA+IGZlc3RpdmFsOwor6KC75bmyID4gcmVja2xlc3M7CivprKfljYAgPiBkb3dudG93bjsKK+a6lueiuiA+IGFjY3VyYXRlOwor5L6155WlID4gaW52YXNpb247CivkvbXntJcgPiBkb3VibGluZzsKK+eXheWkqyA+IHNpY2tcLW1hbjsKK+aOiOS6iCA+IHRvXC1hd2FyZDsKK+WtuOihkyA+IGxlYXJuaW5nOwor5ZyL5YWnID4gZG9tZXN0aWM7CivosrTph40gPiBwcmVjaW91czsKK+WxoOauuiA+IG1hc3NhY3JlOwor5ouU5o6JID4gdG9cLXBsdWNrOwor57Ch5YyWID4gc2ltcGxpZnk7CivpqZXmqasgPiBhcnJvZ2FudDsKK+iyt+mAsiA+IHB1cmNoYXNlOwor6LK36YCaID4gdG9cLWJyaWJlOwor5oWO6YeNID4gY2F1dGlvdXM7Civmu5HmupwgPiBzbGlwcGVyeTsKK+aMh+WwjiA+IHRvXC1ndWlkZTsKK+S9jee9riA+IHBvc2l0aW9uOwor56+h5aWqID4gdG9cLXVzdXJwOwor6Ieo5bqKID4gY2xpbmljYWw7CivmoL3nqK4gPiB0b1wtcGxhbnQ7CivmiLDnlaUgPiBzdHJhdGVneTsKK+WckuS4gSA+IGdhcmRlbmVyOwor5pys6auUID4gbm91bWVub247CivpqqjlubkgPiBiYWNrYm9uZTsKK+S6uumBkyA+IGh1bWFuaXR5Owor6Lqr5YiGID4gcG9zaXRpb247CivkurrpgKAgPiBtYW5cLW1hZGU7CivnlKLmpa0gPiBpbmR1c3RyeTsKK+WxheawkSA+IHJlc2lkZW50Owor6IWz5q2lID4gZm9vdHN0ZXA7Civmi7zlrZcgPiBzcGVsbGluZzsKK+adsemDqCA+IHRoZVwtZWFzdDsKK+mrmOWcsCA+IGhpZ2hsYW5kOwor5Zu65Lu2ID4gZmlybXdhcmU7CivkurrouqsgPiBwZXJzb25hbDsKK+mRsuW1jCA+IHRvXC1pbmxheTsKK+alreWLmSA+IGJ1c2luZXNzOwor5a+f55yLID4gdG9cLXdhdGNoOwor5YCN5pW4ID4gbXVsdGlwbGU7CivlsI3nhacgPiBjb250cmFzdDsKK+aKteaKvCA+IG1vcnRnYWdlOwor6IKp6IaAID4gc2hvdWxkZXI7CivnrrHlrZAgPiBzdWl0Y2FzZTsKK+i6q+S7vSA+IGlkZW50aXR5Owor5L2O562JID4gaW5mZXJpb3I7CivlsLHmraQgPiBhbmRcLXRodXM7CivnrYbmnrYgPiBwZW5cLXJhY2s7Civlr7bniakgPiB0cmVhc3VyZTsKK+eUn+aXpSA+IGJpcnRoZGF5Owor6ZCY5pO6ID4gcGVuZHVsdW07CivpqYXmlaMgPiBkaXNwZXJzZTsKK+aKseaAqCA+IGNvbXBsYWluOwor562J5pa8ID4gZXF1YWxcLXRvOwor5a2457+SID4gdG9cLWxlYXJuOwor5oqY5omjID4gZGlzY291bnQ7Civmh7jnlpEgPiBzdXNwZW5zZTsKK+ePjeiytCA+IHByZWNpb3VzOwor5oe355aRID4gdG9cLWRvdWJ0Owor55W25aSpID4gdGhhdFwtZGF5Owor6Y2155ukID4ga2V5Ym9hcmQ7CivmjIfljZcgPiB0b1wtZ3VpZGU7CivlrrbnlKggPiBob21lXC11c2U7CivnlJ/mhI8gPiBidXNpbmVzczsKK+iAl+iyuyA+IHRvXC13YXN0ZTsKK+iHtOWKmyA+IHdvcmtcLWZvcjsKK+S6m+iosSA+IHRyaWZsaW5nOwor5LqU6KeSID4gcGVudGFnb247CivnrYnlvoUgPiB3YWl0XC1mb3I7CivmiL/mnbEgPiBsYW5kbG9yZDsKK+S/ruW7uiA+IHRvXC1idWlsZDsKK+a1quiyuyA+IHRvXC13YXN0ZTsKK+eqgeeZvCA+IG91dGJ1cnN0Owor5L+h5b6SID4gYmVsaWV2ZXI7CivmiZPmjoMgPiB0b1wtY2xlYW47CivmioDlt6UgPiBtZWNoYW5pYzsKK+aMgeS5hSA+IGR1cmF0aW9uOwor562U5bCNID4gdG9cLXJlcGx5Owor6aKo6LuKID4gd2luZG1pbGw7CivmiYvmj5AgPiBwb3J0YWJsZTsKK+mjm+ihjCA+IGF2aWF0aW9uOwor5LiN6Z2IID4gbm90XC13b3JrOwor5a6J55SfID4gcGVhY2VmdWw7CivmiZPmia4gPiBkcmVzc1wtdXA7CivlgJLloYwgPiBjb2xsYXBzZTsKK+eUn+WtmCA+IHRvXC1leGlzdDsKK+izpueohSA+IHRheGF0aW9uOwor5a2U56m0ID4gYXBlcnR1cmU7CivmtbTooaMgPiBiYXRocm9iZTsKK+S4gOmdoiA+IG9uZVwtc2lkZTsKK+aBkOm+jSA+IGRpbm9zYXVyOwor5bGx5Z2hID4gaGlsbHNpZGU7CivpkLXlmaggPiBoYXJkd2FyZTsKK+eVq+WDjyA+IHBvcnRyYWl0Owor55W25L2cID4gdHJlYXRcLWFzOwor56au6LKMID4gY291cnRlc3k7CivmoL3mpI0gPiB0b1wtcGxhbnQ7Civkv6HlsIEgPiBlbnZlbG9wZTsKK+iBsueosSA+IHRvXC1jbGFpbTsKK+WwjeaJiyA+IG9wcG9uZW50Owor5L+h5a6IID4gYWJpZGVcLWJ5Owor6IGW57SEID4gY292ZW5hbnQ7CivmoKHmraMgPiByZWd1bGF0ZTsKK+mHjem7niA+IGVtcGhhc2lzOwor6IG955y+ID4gYXVkaWVuY2U7CivpqI7luKsgPiBob3JzZW1hbjsKK+enp+iLlyA+IHNlZWRsaW5nOwor5oGt6aCGID4gZGVmZXJlbnQ7CivpjbXmp70gPiBrZXlcLXNsb3Q7Civos7zniakgPiBzaG9wcGluZzsKK+WWruaTmiA+IHJlY2VpcHRzOwor5pyD6K6KID4gdmFyaWFibGU7CivlsJHlubQgPiBqdXZlbmlsZTsKK+momeWtkCA+IHN3aW5kbGVyOwor6IGv55ufID4gYWxsaWFuY2U7Civot6/lj6MgPiBjcm9zc2luZzsKK+iZlee9sCA+IHBlbmFsaXplOwor6YeR6a2aID4gZ29sZGZpc2g7CivlqproqZ4gPiBmbGF0dGVyeTsKK+WQq+mHjyA+IGNvbnRlbnRzOwor55So5YqfID4gZGlsaWdlbnQ7CivnrYblkI0gPiBwZW5cLW5hbWU7CivkvZvmlZkgPiBidWRkaGlzbTsKK+WPr+mdoCA+IHJlbGlhYmxlOwor6LOH55SiID4gcHJvcGVydHk7CivpqYXli5UgPiB0b1wtZHJpdmU7CivpqZXlgrIgPiBhcnJvZ2FudDsKK+Wvk+aJgCA+IGR3ZWxsaW5nOwor55Sx5L2ZID4gb3dpbmdcLXRvOwor6JiR6I+wID4gbXVzaHJvb207CivpoIHpnaIgPiB3ZWJcLXBhZ2U7CivkuIDotbcgPiB0b2dldGhlcjsKK+a4tOacmyA+IGRlc2lyb3VzOwor6LWw5buKID4gY29ycmlkb3I7CivmnKzog70gPiBpbnN0aW5jdDsKK+WXnOWlvSA+IGZvbmRuZXNzOwor5bCN5aSWID4gZXh0ZXJuYWw7CivnvLrpmbcgPiBhXC1kZWZlY3Q7Civom4vmrrwgPiBlZ2dzaGVsbDsKK+WQg+mGiyA+IGplYWxvdXN5Owor5ZCI6YGpID4gc3VpdGFibGU7CivlrpjmlrkgPiBvZmZpY2lhbDsKK+a7keWGsCA+IHRvXC1za2F0ZTsKK+WVhualrSA+IGJ1c2luZXNzOwor6LKh55SiID4gcHJvcGVydHk7CivlrpfmlZkgPiByZWxpZ2lvbjsKK+mfjOmrlCA+IGZpcm13YXJlOwor5ZG96ISIID4gbGlmZWxpbmU7CivkuYPoh7MgPiBhbmRcLWV2ZW47Civnp5/nqIUgPiBsYW5kXC10YXg7CivpoIXpjYogPiBuZWNrbGFjZTsKK+aBpei+sSA+IGRpc2dyYWNlOwor5LiN6KGMID4gd29uJyd0XC1kbzsKK+WuiOaZgiA+IHB1bmN0dWFsOwor5pqX6L2JID4gYmxhY2tvdXQ7CivmiZPljbAgPiB0b1wtcHJpbnQ7CivlrozmlbQgPiBjb21wbGV0ZTsKK+S+teWQniA+IHRvXC1hbm5leDsKK+azouitnCA+IHNwZWN0cnVtOwor5qC95a2QID4gc2VlZGxpbmc7CivosoLnmq4gPiBtaW5rXC1mdXI7CivphqvpmaIgPiBob3NwaXRhbDsKK+iyoeeJqSA+IHByb3BlcnR5Owor5rOz6KGjID4gc3dpbXN1aXQ7Civmt5rmsLQgPiB0ZWFyZHJvcDsKK+iCieahgiA+IGNpbm5hbW9uOwor5rib5o6JID4gc3VidHJhY3Q7CivpvLvngo4gPiByaGluaXRpczsKK+afkOaZgiA+IHNvbWV0aW1lOwor6Jel6IaPID4gb2ludG1lbnQ7CivlrozmiJAgPiBjb21wbGV0ZTsKK+a6ouWHuiA+IG92ZXJmbG93Owor5ZCR6KW/ID4gd2VzdHdhcmQ7Civororph48gPiB2YXJpYWJsZTsKK+WPm+mAhiA+IHRvXC1yZWJlbDsKK+aIsOWNgCA+IHdhclwtem9uZTsKK+WPseiyrCA+IHJlcHJvYWNoOwor56uL5aC0ID4gcG9zaXRpb247Civosp7mvZQgPiBjaGFzdGl0eTsKK+agl+WtkCA+IGNoZXN0bnV0Owor5Lit57m8ID4gdG9cLXJlbGF5Owor57+z55y8ID4gY2F0YXJhY3Q7Civpjq7ljYAgPiB0b3duc2hpcDsKK+adv+ayuSA+IGxlYWZcLWZhdDsKK+aHuOWegiA+IG92ZXJoYW5nOwor6YWS6ay8ID4gZHJ1bmthcmQ7CivkuI3ogpYgPiB1bndvcnRoeTsKK+ePreapnyA+IGFpcmxpbmVyOwor6aCQ6KiAID4gcHJvcGhlY3k7CivnqpflrZAgPiBjYXNlbWVudDsKK+WvpuWKmyA+IHN0cmVuZ3RoOwor5oeJ5bCNID4gcmVzcG9uc2U7CivnvprnvoogPiBhbnRlbG9wZTsKK+S6pOa1gSA+IGV4Y2hhbmdlOwor5Y+b6K6KID4gcmVuZWdhZGU7CivmiLDkuosgPiBmaWdodGluZzsKK+WPr+ihjCA+IGZlYXNpYmxlOwor5oaU5oK0ID4gbGFuZ3Vpc2g7CivljbHpm6MgPiBjYWxhbWl0eTsKK+WuieWvpyA+IHBlYWNlZnVsOwor5Li556CCID4gY2lubmFiYXI7CivmoLjlh4YgPiBzYW5jdGlvbjsKK+ittOiyrCA+IGRlbm91bmNlOwor5qGI5Lu2ID4gbGF3XC1jYXNlOwor5ae76KaqID4gYWZmaW5pdHk7CivmtarmvKsgPiByb21hbnRpYzsKK+adkeawkSA+IHZpbGxhZ2VyOwor5oW35oWoID4gdmVoZW1lbnQ7Civoq5bpu54gPiBhcmd1bWVudDsKK+acqOeCrSA+IGNoYXJjb2FsOwor6buD55OcID4gY3VjdW1iZXI7CivkuI3nq68gPiBpbXByb3BlcjsKK+aal+iHqiA+IGlud2FyZGx5Owor5oeK5ZaqID4gZGVqZWN0ZWQ7CivnqIDmnIkgPiB1bmNvbW1vbjsKK+mjm+apnyA+IGFpcnBsYW5lOwor5a6k5Y+LID4gcm9vbW1hdGU7CivosrbmipEgPiBiZWxpdHRsZTsKK+iWhOiGnCA+IG1lbWJyYW5lOwor5p2x5pa5ID4gdGhlXC1lYXN0Owor56iF5pS2ID4gdGF4YXRpb247Civpoqjmva4gPiBjYW1wYWlnbjsKK+iDjOWMhSA+IGtuYXBzYWNrOwor6buo5rS+ID4gcGFydGlzYW47CivlrZDlsaQgPiBzdWJsYXllcjsKK+mjsuaWmSA+IGJldmVyYWdlOwor5Lq65omLID4gbWFucG93ZXI7CivkuozmnIggPiBmZWJydWFyeTsKK+aykuiQvSA+IGRvd25mYWxsOwor5ZCr56KzID4gY2FyYm9uaWM7CivmnIDngrogPiB0aGVcLW1vc3Q7Civphqvol6UgPiBtZWRpY2luZTsKK+a3seWlpyA+IHByb2ZvdW5kOwor5ZWf5YuVID4gdG9cLXN0YXJ0Owor5a245ZWPID4gbGVhcm5pbmc7CivkuI3nlKggPiBuZWVkXC1ub3Q7CivpoqjmsLQgPiBmZW5nc2h1aTsKK+aEmuaYpyA+IGlnbm9yYW50Owor5p2Q5paZID4gbWF0ZXJpYWw7CivmsLTot68gPiB3YXRlcndheTsKK+WtkOWlsyA+IGNoaWxkcmVuOwor5LqL5pWFID4gYWNjaWRlbnQ7Civph4fogbIgPiBhcHBsYXVzZTsKK+WujOWFqCA+IGNvbXBsZXRlOwor56Kw6Ke4ID4gdG9cLXRvdWNoOwor5LiN542oID4gbm90XC1vbmx5Owor5a6a5L2NID4gcG9zaXRpb247CivlrZjlnKggPiB0b1wtZXhpc3Q7CivosqjluaMgPiBjdXJyZW5jeTsKK+S4i+eNhCA+IGltcHJpc29uOwor5a215YyWID4gYnJlZWRpbmc7CivomorlrZAgPiBtb3NxdWl0bzsKK+S4jeeJuSA+IG5vdFwtb25seTsKK+mereifsiA+IHdoaXB3b3JtOwor5LiN54i9ID4gbm90XC13ZWxsOwor5oCn6IO9ID4gZnVuY3Rpb247CivmtKrmtYEgPiBjYXRhcmFjdDsKK+aHguS6iyA+IHNlbnNpYmxlOwor6aOf5oW+ID4gYXBwZXRpdGU7Civpg6jpoZ4gPiBjYXRlZ29yeTsKK+WQjOebnyA+IGFsbGlhbmNlOwor6ZyH6amaID4gdG9cLXNob2NrOwor5ZC454WZID4gdG9cLXNtb2tlOwor6Kyd6KydID4gdG9cLXRoYW5rOwor5LiN5r+fID4gbm90XC1nb29kOwor6aCt55ebID4gaGVhZGFjaGU7CivkvJnkvLQgPiBwYXJ0aXNhbjsKK+aal+ebkiA+IG1hZ2F6aW5lOwor6IKW5YOPID4gcG9ydHJhaXQ7CivkuK3mraIgPiB0b1wtY2Vhc2U7CivorJvoqbEgPiBhXC1zcGVlY2g7CivmnpflnLAgPiB3b29kbGFuZDsKK+a3seWIuyA+IHByb2ZvdW5kOwor5Lqt5a2QID4gcGF2aWxpb247Civpn7Pnr4AgPiBzeWxsYWJsZTsKK+aetuWLoiA+IGF0dGl0dWRlOwor5LiN5risID4gYWNjaWRlbnQ7CivlpKrplbcgPiBvdmVyc2l6ZTsKK+WLoumgrSA+IG1vbWVudHVtOwor5aSn6ZaAID4gZW50cmFuY2U7CivmhJrlvIQgPiBkZXJpc2lvbjsKK+W+gOmChCA+IGNvbnRhY3RzOwor5rK755mCID4gdG9cLXRyZWF0Owor56Sm55SiID4gbWluZXJhbHM7CivkuIrmtbcgPiBzaGFuZ2hhaTsKK+e9queKryA+IGNyaW1pbmFsOwor54iQ6YKKID4gZmlyZXNpZGU7CivmhInlv6sgPiBjaGVlcmZ1bDsKK+iuiueoriA+IG11dGF0aW9uOwor6KuW6L+wID4gdHJlYXRpc2U7Civli5/pm4YgPiB0b1wtcmFpc2U7Civmtbfls70gPiBzdHJhaWdodDsKK+eIreirliA+IHRvXC1hcmd1ZTsKK+iBluWMliA+IHNhbmN0aWZ5Owor5piO6IarID4gbWFuaWZlc3Q7Civph43nlLMgPiByZWFmZmlybTsKK+aatOa0qiA+IGFcLXN1ZGRlbjsKK+abv+aPmyA+IGV4Y2hhbmdlOwor6aSh5YWSID4gc3R1ZmZpbmc7CivmnInmiYAgPiBzb21ld2hhdDsKK+aWpeiyrCA+IGRlbm91bmNlOwor6YeN542yID4gcmVjb3Zlcnk7CivkuI3mnL0gPiBpbW1vcnRhbDsKK+a1t+WkliA+IG92ZXJzZWFzOwor546L5a62ID4gcHJpbmNlbHk7Civlk6jlhbUgPiBzZW50aW5lbDsKK+iytuS9jiA+IGJlbGl0dGxlOwor6ZuJ6ZueID4gcGhlYXNhbnQ7Civmg7PlrrYgPiBob21lc2ljazsKK+WTpeWFkiA+IGJyb3RoZXJzOwor6I+v6bqXID4gZ29yZ2VvdXM7CivosrfkuLsgPiBjdXN0b21lcjsKK+aFmOS6iyA+IGRpc2FzdGVyOwor6aCQ5risID4gZm9yZWNhc3Q7Civnvo7ml6UgPiB1c1wtamFwYW47CivosqDlgrUgPiBpbmRlYnRlZDsKK+mbqOmHjyA+IHJhaW5mYWxsOwor5Y+45rOVID4ganVkaWNpYWw7CivoqpXovrAgPiBiaXJ0aGRheTsKK+WSs+WXvSA+IHRvXC1jb3VnaDsKK+aCsuaFnyA+IG1vdXJuZnVsOwor5Yqg6ZW3ID4gbGVuZ3RoZW47CivlkJDmo4QgPiB0b1wtc3B1cm47Civli7joqqogPiBwZXJzdWFkZTsKK+iZleWIhiA+IGRpc3Bvc2FsOwor5pel576OID4gamFwYW5cLXVzOwor5aKe6auYID4gaGVpZ2h0ZW47CivpgbLpoJMgPiBpbmFjdGl2ZTsKK+iyoeS4uyA+IHJpY2hcLW1hbjsKK+S4jeaIkCA+IHdvbicndFwtZG87CivlpKLoqbEgPiBkYXlkcmVhbTsKK+S4jeaHiCA+IHVudGlyaW5nOwor5aSn6KaBID4gYWJzdHJhY3Q7CivmnIDlsJEgPiBzbWFsbGVzdDsKK+itt+eFpyA+IHBhc3Nwb3J0Owor5Li75a6wID4gZG9taW5hdGU7CivlpKLoposgPiB0b1wtZHJlYW07CivkuI3mg58gPiBub3RcLW9ubHk7CivkuovlhZIgPiBidXNpbmVzczsKK+Wkp+ihoyA+IG92ZXJjb2F0Owor56e75LqkID4gdHJhbnNmZXI7Civmm7jlr6sgPiB0b1wtd3JpdGU7CivkuI3mgJUgPiBmZWFybGVzczsKK+S4jeW/hSA+IG5lZWRcLW5vdDsKK+aylua0lyA+IHRvXC1yaW5zZTsKK+S4jeW+lyA+IG11c3RcLW5vdDsKK+S4jeW+iCA+IG5vdFwtdmVyeTsKK+aal+aalyA+IHNlY3JldGx5Owor5Ym36ZmkID4gcm9vdFwtb3V0Owor8Ki6uSA+IG1vdXJuZnVsOwor56We5oCnID4gZGl2aW5pdHk7CivnuL3oo4EgPiBjaGFpcm1hbjsKK+WkluihqCA+IGV4dGVybmFsOwor5rKJ5rW4ID4gcGVybWVhdGU7CivmlK/phY0gPiBkb21pbmF0ZTsKK+e+juW+tyA+IGFcLXZpcnR1ZTsKK+mbhOi+ryA+IGVsb3F1ZW50Owor6bue5ZCNID4gcm9sbGNhbGw7Civlv73nhLYgPiBzdWRkZW5seTsKK+aXpeeoiyA+IHNjaGVkdWxlOwor5aem5rerID4gYWR1bHRlcnk7Civosarkv6AgPiBjYXZhbGllcjsKK+aXuuebmyA+IHZpZ29yb3VzOwor5aSW6JmfID4gbmlja25hbWU7CivlpYfogZ4gPiBhbmVjZG90ZTsKK+WJjemhjSA+IGZvcmVoZWFkOwor5rW35LiKID4gbWFyaXRpbWU7Civpm5zoqowgPiBtYWdhemluZTsKK+e2sumamyA+IGludGVybmV0Owor54ax6KqgID4gZGV2b3Rpb247CivlkIjmiJAgPiBjb21wb3VuZDsKK+WRvOWPqyA+IHRvXC1zaG91dDsKK+WkqeiKsSA+IHNtYWxscG94Owor6Zuo6KGjID4gcmFpbmNvYXQ7CivlkIzmhI8gPiB0b1wtYWdyZWU7CivmnKzkvoYgPiBvcmlnaW5hbDsKK+acrOS9jSA+IHN0YW5kYXJkOwor5ZCR5b6MID4gYmFja3dhcmQ7CivmnI3li5kgPiB0b1wtc2VydmU7CivmsJHnnL4gPiBwb3B1bGFjZTsKK+WogeacmyA+IHByZXN0aWdlOwor5rS75YuVID4gYWN0aXZpdHk7Civlj5vmlZkgPiBhcG9zdGFjeTsKK+S4jeWkpyA+IG5vdFwtdmVyeTsKK+Wkp+iDvSA+IGFsbWlnaHR5Owor5pyJ5YqbID4gcG93ZXJmdWw7CivmmYLmqZ8gPiBvY2Nhc2lvbjsKK+WQpuWumiA+IG5lZ2F0aXZlOwor6Jel5ZWGID4gZHJ1Z2dpc3Q7Civlj43mmKAgPiByZWFjdGlvbjsKK+mBuui0iCA+IGJlcXVlYXRoOwor5paH6IG3ID4gY2l2aWxpYW47CivlqZrlq4EgPiBtYXJyaWFnZTsKK+e3iui/qyA+IHByZXNzaW5nOwor6K6K5pW4ID4gdmFyaWFibGU7CivorbDmoYggPiBwcm9wb3NhbDsKK+WQm+WtkCA+IG5vYmxlbWFuOwor5bu66KitID4gdG9cLWJ1aWxkOwor54m55rS+ID4gZGlzcGF0Y2g7Civpm7vohaYgPiBjb21wdXRlcjsKK+WQjOWxiyA+IHJvb21tYXRlOwor6Jel5YqRID4gbWVkaWNpbmU7CivkuIDlnJggPiByZWdpbWVudDsKK+ejqOaTpiA+IGZyaWN0aW9uOwor5pKt6Z+zID4gdHJhbnNtaXQ7Civlj7DluqcgPiBwZWRlc3RhbDsKK+asuuiyoCA+IHRvXC1idWxseTsKK+mBjui8iSA+IG92ZXJsb2FkOwor6YGy6KqkID4gdG9cLWRlbGF5Owor56WW5ZyLID4gaG9tZWxhbmQ7CivpoIblvp4gPiBvYmVkaWVudDsKK+S4u+S7uyA+IGRpcmVjdG9yOwor5rOw5ZyLID4gdGhhaWxhbmQ7Civop6PplosgPiB0b1wtdW50aWU7CivmmpflrqQgPiBkYXJrcm9vbTsKK+WltueJmyA+IG1pbGtcLWNvdzsKK+WPjeaHiSA+IHJlYWN0aW9uOwor5oKy5YiHID4gbW91cm5mdWw7CivkuI3lj6ogPiBub3RcLW9ubHk7CivlubTpnZIgPiB5b3V0aGZ1bDsKK+mghuW6jyA+IHNlcXVlbmNlOwor5Lit5L+dID4gYWR2b2NhdGU7CivlubPpnZwgPiB0cmFucXVpbDsKK+Wnv+aFiyA+IGF0dGl0dWRlOwor5ZGK5YilID4gdG9cLWxlYXZlOwor5LiA5ZGoID4gb25lXC13ZWVrOwor5qy66KmQID4gdG9cLWNoZWF0Owor5LiA5ZCRID4gYWxsXC1sb25nOwor5pud5YWJID4gZXhwb3N1cmU7CivmsK7msKMgPiBuaXRyb2dlbjsKK+mZhOmMhCA+IGFwcGVuZGl4Owor5LiA5YyZID4gc3Bvb25mdWw7Civnopfmq4MgPiBjdXBib2FyZDsKK+eglOeptiA+IHJlc2VhcmNoOwor5oCg5oOwID4gaWRsZW5lc3M7CivljIXnmq4gPiB3cmFwcGluZzsKK+eKr+aEgSA+IHRvXC13b3JyeTsKK+WIsOmBlCA+IHRvXC1yZWFjaDsKK+WPpeWtkCA+IHNlbnRlbmNlOwor5aWJ54++ID4gb2ZmZXJpbmc7CivkuI3lgKYgPiB0aXJlbGVzczsKK+avj+eVtiA+IHdoZW5ldmVyOwor6KiC6LO8ID4gdG9cLW9yZGVyOwor5paR55m9ID4gZ3JpenpsZWQ7CivorYnmk5ogPiBldmlkZW5jZTsKK+elluWFiCA+IGFuY2VzdG9yOwor5bi46aeQID4gcmVzaWRlbnQ7CivmmrTlipsgPiB2aW9sZW5jZTsKK+mbhuiBmiA+IGFzc2VtYmxlOwor5piU5pelID4gZm9ybWVybHk7Civlip/og70gPiBmdW5jdGlvbjsKK+itpuaDlSA+IHZpZ2lsYW50Owor5rOi5YuVID4gdW5kdWxhdGU7CivpoJDloLEgPiBmb3JlY2FzdDsKK+Wlh+eJuSA+IHBlY3VsaWFyOwor5b+g5pa8ID4gbG95YWxcLXRvOwor5piO5pelID4gdG9tb3Jyb3c7CivoqbPntLAgPiBkZXRhaWxlZDsKK+aatOWFiSA+IGV4cG9zdXJlOwor6aCR5Zu6ID4gc3R1YmJvcm47CivpgbjoiIkgPiB0b1wtZWxlY3Q7CivpgIDpgb8gPiB3aXRoZHJhdzsKK+e3tOe/kiA+IGV4ZXJjaXNlOwor5Z+56aSKID4gdG9cLXRyYWluOwor6Z+M5bi2ID4gbGlnYW1lbnQ7CivmkqTpgIAgPiByZXRyZWF0Owor54m95omvID4gaW52b2x2ZTsKK+WpmuS6iyA+IHdlZGRpbmc7CivmqqLplrEgPiBpbnNwZWN0Owor6Ki06IumID4gZ3J1bWJsZTsKK+aaq+WBnCA+IHN1c3BlbmQ7Civop7jop5IgPiBhbnRlbm5hOwor5b2q54KzID4gc2hpbmluZzsKK+e9t+S8kSA+IGdpdmVcLXVwOwor57Sw6ZW3ID4gc2xlbmRlcjsKK+iqjeecnyA+IGVhcm5lc3Q7CivmmYLlsJogPiBmYXNoaW9uOwor54mI5pysID4gdmVyc2lvbjsKK+i/tOi9iSA+IHJldm9sdmU7CivluoforbcgPiBzaGVsdGVyOwor6YW45oCnID4gYWNpZGl0eTsKK+e3qOe6giA+IGNvbXBpbGU7CivlkJvkuLsgPiBtb25hcmNoOwor57i955CGID4gcHJlbWllcjsKK+WkqeeEtiA+IG5hdHVyYWw7CivnnaHooaMgPiBwYWphbWFzOwor5pW055CGID4gYXJyYW5nZTsKK+eFmeiNiSA+IHRvYmFjY287Civnh6bniJsgPiBnbGl0dGVyOwor5Y+v5YuVID4gbW92YWJsZTsKK+awtOaJiyA+IG1hcmluZXI7CivlkITlgIsgPiB2YXJpb3VzOwor5Y+j5ZCDID4gc3RhbW1lcjsKK+iPj+iYrSA+IGhvbGxhbmQ7CivpoJjlhYggPiB0b1wtbGVhZDsKK+iPoOiPnCA+IHNwaW5hY2g7CivljYHmnIggPiBvY3RvYmVyOwor6K6a5ZCMID4gYXBwcm92ZTsKK+avm+avryA+IGJsYW5rZXQ7Civpmb3oh7ogPiBiYWxjb255Owor6L+R6YOKID4gc3VidXJiczsKK+eLguWWnCA+IGVjc3Rhc3k7CivmsLjmgYYgPiBldGVybmFsOwor6KuL5rGCID4gcmVxdWVzdDsKK+mEmeajhCA+IGRpc2RhaW47Civlh7rotbAgPiB0b1wtZmxlZTsKK+aViOebiiA+IGJlbmVmaXQ7Civph43lipsgPiBncmF2aXR5Owor56K85a2XID4gbnVtZXJhbDsKK+e0oemMmCA+IHNwaW5kbGU7CivlvITnoo4gPiBjcnVtYmxlOwor5aeQ5aa5ID4gc2lzdGVyczsKK+ebrumMhCA+IGNhdGFsb2c7CivmraPnorogPiBjb3JyZWN0Owor5b+D5oSbID4gYmVsb3ZlZDsKK+W8hOefrSA+IHNob3J0ZW47CivnhKHomZUgPiBub3doZXJlOwor6K6K5Y6aID4gdGhpY2tlbjsKK+WmluaAqiA+IG1vbnN0ZXI7Civnt4rnt4ogPiBjbG9zZWx5Owor6Zqx56eBID4gcHJpdmFjeTsKK+mXnOmNtSA+IGNydWNpYWw7Civlp7/li6IgPiBwb3N0dXJlOwor5aaS5b+MID4gamVhbG91czsKK+W8t+eDiCA+IGludGVuc2U7Civlpb3miLAgPiB3YXJsaWtlOwor5bmz6KGhID4gYmFsYW5jZTsKK+eJueWumiA+IHNwZWNpYWw7CivlvITnmrogPiBjcnVtcGxlOwor55u46YCjID4gdG9cLWxpbms7Civmlofms5UgPiBncmFtbWFyOwor5Y+k5L6GID4gb2xkdGltZTsKK+WkqeawoyA+IHdlYXRoZXI7CivmraPnm7QgPiB1cHJpZ2h0Owor6YWS5bugID4gYnJld2VyeTsKK+W+geacjSA+IGNvbnF1ZXI7CivntKLpgZMgPiByb3Bld2F5Owor6Zm457qMID4gaW5cLXR1cm47CivpmrHnnp4gPiB0b1wtaGlkZTsKK+Wklua1gSA+IG91dGZsb3c7Civlt6XpoK0gPiBmb3JlbWFuOwor5Y+m5LiAID4gYW5vdGhlcjsKK+mBoOerryA+IGZhclwtZW5kOwor55qu6Z2pID4gbGVhdGhlcjsKK+WKoOeUnCA+IHN3ZWV0ZW47Civpn7Pkv6EgPiBtZXNzYWdlOwor54ax54eZID4gdG9cLWJ1cm47CivpmpznpJkgPiBiYXJyaWVyOwor6Kqe5rOVID4gZ3JhbW1hcjsKK+itpuWRiiA+IHRvXC13YXJuOwor54S26ICMID4gaG93ZXZlcjsKK+Wkp+amgiA+IHJvdWdobHk7Civpm7vmsaAgPiBiYXR0ZXJ5Owor5aW95bm+ID4gc2V2ZXJhbDsKK+avlOaWuSA+IGFuYWxvZ3k7CivpgIDokL0gPiBzdWJzaWRlOwor6K6K5LqCID4gdHVybW9pbDsKK+iri+aVmSA+IGNvbnN1bHQ7CivnhrHmva4gPiB1cHN1cmdlOwor5qy6556eID4gdG9cLWZvb2w7Civmr5Tmk6wgPiBjb21wYXJlOwor6K2w5YO5ID4gYmFyZ2FpbjsKK+e6luW8sSA+IGZyYWdpbGU7CivljZrlrbggPiBsZWFybmVkOwor6KaL6K2JID4gd2l0bmVzczsKK+WKoOeGsSA+IGhlYXRpbmc7Civln47pg4ogPiBzdWJ1cmJzOwor54mn5aC0ID4gcGFzdHVyZTsKK+mdnuW4uCA+IHVudXN1YWw7Civli4fmsKMgPiBjb3VyYWdlOwor5aSx5pWIID4gdG9cLWZhaWw7CivlhYjpqYUgPiBwaW9uZWVyOwor6a6R6a2aID4gYWJhbG9uZTsKK+eKr+S6uiA+IGNvbnZpY3Q7CivojbfomK0gPiBob2xsYW5kOwor6Zuj5rCRID4gcmVmdWdlZTsKK+mAo+e1kCA+IGNvbm5lY3Q7Civlvojlv6sgPiBxdWlja2x5Owor6YG654mpID4gcmVtbmFudDsKK+avkuaJkyA+IGJlYXRcLXVwOwor6Yac5LqLID4gc2NhbmRhbDsKK+mZjee0miA+IGRlZ3JhZGU7CivnhKbns5YgPiBjYXJhbWVsOwor5pGY6KaBID4gc3VtbWFyeTsKK+mAsueoiyA+IHByb2Nlc3M7Civovq/op6MgPiBleHBsYWluOwor5pGU6KeSID4gd3Jlc3RsZTsKK+WMheaJjiA+IHdyYXBcLXVwOwor5bui54mpID4gcnViYmlzaDsKK+Wlh+aAqiA+IHN0cmFuZ2U7Civlp5Tku7sgPiBhcHBvaW50Owor5quD6Ie6ID4gY291bnRlcjsKK+aumOagqiA+IHN0dWJibGU7Civlpb3lpYcgPiBjdXJpb3VzOwor55m76Zm4ID4gdG9cLWxhbmQ7Civmr4bmiZMgPiBiZWF0XC11cDsKK+ebo+imliA+IG92ZXJzZWU7CivlvaLmiJAgPiB0b1wtZm9ybTsKK+e4veaVuCA+IGFcLXRvdGFsOwor54m55Yi2ID4gc3BlY2lhbDsKK+W8t+aatCA+IHZpb2xlbnQ7CivlvrflnIsgPiBnZXJtYW55Owor57Wx57WxID4gdG90YWxseTsKK+eEoeeqriA+IGVuZGxlc3M7Civnn67mnpcgPiBjb3BwaWNlOwor5aKD55WMID4gYm91bmRyeTsKK+W8hOatqiA+IGRpc3RvcnQ7CivlhrDooosgPiBpY2VcLWJhZzsKK+itieS6uiA+IHdpdG5lc3M7CivplrHoroAgPiB0b1wtcmVhZDsKK+mDteW3riA+IHBvc3RtYW47CivpnaLlmq4gPiB0b1wtZmFjZTsKK+inuOeZvCA+IHRyaWdnZXI7CivniK3ln7cgPiBkaXNwdXRlOwor54Cd6Z2SID4gYXNwaGFsdDsKK+WNs+S+vyA+IGV2ZW5cLWlmOwor5aSn5buIID4gZWRpZmljZTsKK+eZvOmFtSA+IGZlcm1lbnQ7CivljbPkvb8gPiBldmVuXC1pZjsKK+mWseimvSA+IHRvXC1yZWFkOwor5bm456aPID4gYmxlc3NlZDsKK+eEoeebiiA+IG5vXC1nb29kOwor5Yip55uKID4gYmVuZWZpdDsKK+mYsuempiA+IGRlZmVuc2U7CivmrbfmmYIgPiB0b1wtbGFzdDsKK+eJiOWIuyA+IGNhcnZpbmc7CivntpPnkIYgPiBtYW5hZ2VyOwor6YWN5YG2ID4gY29uc29ydDsKK+atquabsiA+IGRpc3RvcnQ7CivmlZHmj7QgPiB0b1wtc2F2ZTsKK+aXpeWHuiA+IHN1bnJpc2U7CivmsKPlgJkgPiBjbGltYXRlOwor57mD5bi2ID4gYmFuZGFnZTsKK+eEoeeUqCA+IHVzZWxlc3M7CivpgJfnlZkgPiBzdGF5XC1hdDsKK+WIqeeUqCA+IGV4cGxvaXQ7CivljYDljYAgPiB0cml2aWFsOwor54it5ZC1ID4gZGlzcHV0ZTsKK+W+ruWFiSA+IGdsaW1tZXI7Civmr4/lpJwgPiBuaWdodGx5Owor6YGV5rOVID4gaWxsZWdhbDsKK+WHuuennyA+IHRvXC1yZW50Owor6ZuA5paRID4gZnJlY2tsZTsKK+aUtuaTmiA+IHJlY2VpcHQ7CivljYHlha0gPiBzaXh0ZWVuOwor57mq5ZyWID4gdG9cLWRyYXc7CivlnabpgJQgPiBoaWdod2F5Owor55+l5oKJID4gdG9cLWtub3c7CivmlK/mkpAgPiBwcm9wXC11cDsKK+eGseaDhSA+IGNvcmRpYWw7CivmjpLpmaQgPiBleGNsdWRlOwor5Y2B5YCNID4gdGVuZm9sZDsKK+WJm+avmyA+IGJyaXN0bGU7Civmqavoh6UgPiByZWNsaW5lOwor5Yi65r+AID4gcHJvdm9rZTsKK+e2k+a/nyA+IGVjb25vbXk7CivntLDnr4AgPiBkZXRhaWxzOwor57K+6KO9ID4gcmVmaW5lZDsKK+aVmeW4qyA+IHRlYWNoZXI7CivmqILotqMgPiBkZWxpZ2h0Owor5pS25oiQID4gaGFydmVzdDsKK+WNgeS6lCA+IGZpZnRlZW47CivlpJrlpKcgPiBob3dcLWJpZzsKK+WFseiZlSA+IGNvZXhpc3Q7CivmlKrmi4wgPiB0b1wtc3RpcjsKK+i8lei8lSA+IGxpZ2h0bHk7CivliKnmvaQgPiBwcm9maXRzOwor6KOd6LyJID4gdG9cLWxvYWQ7CivljIXlkKsgPiBjb250YWluOwor5pOv5qOEID4gYWJhbmRvbjsKK+eZvOihjCA+IHB1Ymxpc2g7Civnmb3on7sgPiB0ZXJtaXRlOwor6YG45omLID4gYXRobGV0ZTsKK+WkseWOuyA+IHRvXC1sb3NlOwor6Lyq6KmiID4gdG9cLXBvbGw7CivlvavliLsgPiBlbmdyYXZlOwor6Iqx6LK7ID4gZXhwZW5zZTsKK+iRieWtkCA+IGZvbGlhZ2U7CivojYnnqL8gPiBvdXRsaW5lOwor5q2m5bqrID4gYXJzZW5hbDsKK+W8hOW5syA+IGZsYXR0ZW47CivliLbmraIgPiB0b1wtY3VyYjsKK+ezvue0myA+IGRpc3B1dGU7CivojIXoiI0gPiBjb3R0YWdlOwor54Wn5pCsID4gdG9cLWNvcHk7CivlhbXoiaYgPiB3YXJzaGlwOwor6KOc6LK8ID4gc3Vic2lkeTsKK+ato+W4uCA+IHJlZ3VsYXI7Civlu5rmiL8gPiBraXRjaGVuOwor5paH5YyWID4gY3VsdHVyZTsKK+W0qemZtyA+IGZhbGxcLWluOwor6YCZ5qyhID4gcHJlc2VudDsKK+W3sue2kyA+IGFscmVhZHk7Civlt7TntZAgPiBmYXduXC1vbjsKK+eauue0iyA+IHdyaW5rbGU7CivmrIrmnZYgPiBzY2VwdGVyOwor5YyG5L+DID4gaGFzdGlseTsKK+ashOaftSA+IGJhcnJpZXI7Civnmb7okKwgPiBtaWxsaW9uOwor5aSa5Y2KID4gY2hpZWZseTsKK+ebrueahCA+IHB1cnBvc2U7CivpgLHmnKsgPiB3ZWVrZW5kOwor5Yid5q2lID4gaW5pdGlhbDsKK+ashOadhiA+IHJhaWxpbmc7Civnhanmg7EgPiBhZ29uaXplOwor5b2I5Yq+ID4gaW1wZWFjaDsKK+eFqeaCtiA+IGFuZ3Vpc2g7CivluavmtL4gPiBmYWN0aW9uOwor6KGo6Z2iID4gc3VyZmFjZTsKK+ezn+ezlSA+IHRvb1wtYmFkOwor57i95YmHID4gcHJvZmlsZTsKK+maquWzuyA+IGFyZHVvdXM7CivliLbmnI0gPiB1bmlmb3JtOwor5YOP6YqAID4gc2lsdmVyeTsKK+WJjeaPkCA+IHByZW1pc2U7Civnt6jlr6sgPiBjb21waWxlOwor57at5oyBID4gdG9cLWtlZXA7CivmjqXop7ggPiBjb250YWN0Owor5Yud5YipID4gdmljdG9yeTsKK+WkpeS8tCA+IHBhcnRuZXI7CivmlZnlk6EgPiB0ZWFjaGVyOwor6auV6aqoID4ga25lZWNhcDsKK+aTgeaciSA+IHRvXC1oYXZlOwor5q2k5aSWID4gYmVzaWRlczsKK+W8t+WItiA+IGVuZm9yY2U7Civou4rovJsgPiB2ZWhpY2xlOwor6ZyN5LqCID4gY2hvbGVyYTsKK+iKrOiYrSA+IGZpbmxhbmQ7CivmlbjkvY0gPiBkaWdpdGFsOwor6LyV6JSRID4gZGlzZGFpbjsKK+e1suafjyA+IGN5cHJlc3M7Civln7fnhacgPiBsaWNlbnNlOwor5quD5qqvID4gY291bnRlcjsKK+eEoeaViCA+IGluXC12YWluOwor5aOB5aOYID4gcmFtcGFydDsKK+mAo+aOpSA+IHRvXC1saW5rOwor6KiK5oGvID4gbWVzc2FnZTsKK+e0meeFmSA+IGNpZ2FyZXQ7Civmrbflj7IgPiBoaXN0b3J5Owor55y65pybID4gbG9va291dDsKK+mXnOeFpyA+IGNvbmNlcm47CivlhrDniYcgPiBib3JuZW9sOwor5YqH5aC0ID4gdGhlYXRlcjsKK+eGseWIhyA+IGZlcnZlbnQ7Civli5XkuoIgPiB0dXJtb2lsOwor5o6p6JOLID4gY29uY2VhbDsKK+mYu+aUlCA+IHRvXC1zdG9wOwor5byf5YWEID4gYnJvdGhlcjsKK+mYu+aTiyA+IHRvXC1zdG9wOwor55yJ5q+bID4gZXllYnJvdzsKK+Wjq+WFtSA+IHNvbGRpZXI7CivooqvopKUgPiBiZWRkaW5nOwor5pO65a2QID4gbWFsYXJpYTsKK+ihsOmAgCA+IGRlY2xpbmU7CivlvJXlh7ogPiBleHRyYWN0Owor5pOU5b+DID4gYW54aW91czsKK+WFrOekviA+IGNvbW11bmU7CivntZDmnpwgPiBvdXRjb21lOwor5pGn5q+AID4gZGVzdHJveTsKK+atsuWFpSA+IHJldmVudWU7CivliIbmlaMgPiBzY2F0dGVyOwor5aKK5a2QID4gY3VzaGlvbjsKK+eEpuaApSA+IGFueGlldHk7CivmlLbliLAgPiByZWNlaXZlOwor55uj5risID4gbW9uaXRvcjsKK+msouinkiA+IHRlbXBsZXM7Civmj63npLogPiB0b1wtc2hvdzsKK+imgeaxgiA+IHJlcXVlc3Q7Civnl5Xot6EgPiB2ZXN0aWdlOwor5Ymd5aWqID4gZGVwcml2ZTsKK+i+suawkSA+IHBlYXNhbnQ7Civlu6DllYYgPiBjb21wYW55Owor5Yiw5bqVID4gZmluYWxseTsKK+WGkueFmSA+IHNtb2tpbmc7CivnsKHopoEgPiBjb25jaXNlOwor5pS+5Lu7ID4gaW5kdWxnZTsKK+mAmuW4uCA+IHJlZ3VsYXI7CivnnJ/mka8gPiBzaW5jZXJlOwor57SF5rW3ID4gcmVkXC1zZWE7CivlhrDmsrMgPiBnbGFjaWFsOwor57SU5q2jID4gZ2VudWluZTsKK+WIqOW3pSA+IHBsYW5pbmc7CivnhZnlm6ogPiBjaGltbmV5Owor5bm75b2xID4gcGhhbnRvbTsKK+aLlOmggiA+IHRvcHBpbmc7Civnmb3nmb0gPiBpblwtdmFpbjsKK+WFiOefpSA+IHByb3BoZXQ7Civnlr7otbAgPiBzY2FtcGVyOwor5bey5ruFID4gZXh0aW5jdDsKK+exoOe9qSA+IGVudmVsb3A7CivntbHluKUgPiBjb21tYW5kOwor6Zm25ZmoID4gcG90dGVyeTsKK+mZhOWvhCA+IGVuY2xvc2U7CivntajluIMgPiBmbGFubmVsOwor6L+O5o6lID4gdG9cLW1lZXQ7CivlhJjnrqEgPiBkZXNwaXRlOwor6Zi75bC8ID4gZGFtcGluZzsKK+eUnOm7niA+IGRlc3NlcnQ7Civou43oiaYgPiB3YXJzaGlwOwor55m854++ID4gdG9cLWZpbmQ7CivploPniI0gPiBmbGlja2VyOwor6KGj6KOdID4gZ2FybWVudDsKK+WCmeiouyA+IHJlbWFya3M7CivmlJTkvY8gPiB0b1wtc3RvcDsKK+ijgue0iyA+IGNyYWNrbGU7CivmjJHotbcgPiBzdGlyXC11cDsKK+mXoeaYjiA+IGNsYXJpZnk7CivliLDloLQgPiBzaG93XC11cDsKK+mBjuWJqSA+IHN1cnBsdXM7CivouaPot5ogPiBzdGFnZ2VyOwor55ub5pyDID4gcGFnZWFudDsKK+WJneWJiiA+IGV4cGxvaXQ7Civmj4/nlasgPiB0b1wtZHJhdzsKK+ijqOebiiA+IGJlbmVmaXQ7CivpgYfliLAgPiB0b1wtbWVldDsKK+WBveitiSA+IHBlcmp1cnk7CivmqZ/morAgPiBtYWNoaW5lOwor54Wn5LquID4gbGlnaHRlbjsKK+mZs+WIlyA+IGRpc3BsYXk7CivlgZzou4ogPiB0b1wtc3RvcDsKK+mZveWCmCA+IHBhcmFzb2w7CivlsbHpoIIgPiBoaWxsdG9wOwor5o6M566hID4gY29udHJvbDsKK+ijnOebiiA+IGJlbmVmaXQ7Civmi7fosp0gPiB0b1wtY29weTsKK+aToOWFpSA+IGludHJ1ZGU7CivmrIrliKkgPiBhXC1wb3dlcjsKK+iKseeSsCA+IGdhcmxhbmQ7CivlhazmsJEgPiBjaXRpemVuOwor5be05p6XID4gYmFocmFpbjsKK+WBveijnSA+IHRvXC1mYWtlOwor5aCF5by3ID4gc3RhdW5jaDsKK+W5s+WdhyA+IGF2ZXJhZ2U7CivliLrliIAgPiBiYXlvbmV0Owor57C4566VID4gZHVzdHBhbjsKK+WFhea7vyA+IGZ1bGxcLW9mOwor5biz5biYID4gZHJhcGVyeTsKK+aOpeeUnyA+IGRlbGl2ZXI7Civmv4DntKAgPiBob3Jtb25lOwor6Kej5YmWID4gZGlzc2VjdDsKK+aMr+iIiCA+IHByb21vdGU7CivpmaTkuoYgPiBiZXNpZGVzOwor55in55a+ID4gbWFsYXJpYTsKK+iOiuWatCA+IHN0YXRlbHk7Civnspfmt7ogPiBzaGFsbG93Owor5qOy6LqrID4gc3RheVwtYXQ7CivlubPlj7AgPiB0ZXJyYWNlOwor5ouN6LOjID4gYXVjdGlvbjsKK+a7i+mkiiA+IG5vdXJpc2g7Civop6Plg7EgPiB0b1wtZmlyZTsKK+WIsOS+hiA+IGFycml2YWw7CivplpLmmocgPiBsZWlzdXJlOwor5bqK5YG0ID4gYmVkc2lkZTsKK+aomeanjSA+IGphdmVsaW47Civnlqvoi5cgPiB2YWNjaW5lOwor6LaF6b2hID4gdG9vXC1vbGQ7Civlh7rllK4gPiB0b1wtc2VsbDsKK+WboOe0oCA+IGVsZW1lbnQ7CivlhrDlt50gPiBnbGFjaWVyOwor6ZeK5bqmID4gYnJlYWR0aDsKK+i4kOi4jyA+IHRyYW1wbGU7Civmpa3ntpMgPiBhbHJlYWR5Owor6L2f5pOKID4gYm9tYmFyZDsKK+W5vuWAiyA+IHNldmVyYWw7CivlhrDls7YgPiBpY2VsYW5kOwor5oyR6IiLID4gcHJvdm9rZTsKK+WclueVqyA+IGRyYXdpbmc7CivlhrDlsbEgPiBpY2ViZXJnOwor5qW156uvID4gZXh0cmVtZTsKK+i+suWkqyA+IHBlYXNhbnQ7Civnmb3mmZ0gPiBkYXl0aW1lOwor5YW15oiIID4gd2VhcG9uczsKK+i3s+i6jSA+IHRvXC1qdW1wOwor55mC5rOVID4gdGhlcmFweTsKK+WwlumggiA+IHN0ZWVwbGU7Civohbnpg6ggPiBhYmRvbWVuOwor55m85pS+ID4gcHJvdmlkZTsKK+eYi+eLgiA+IG1hZG5lc3M7Civnl7LnlrkgPiBtZWFzbGVzOwor6Kaq5YiHID4gYW1pYWJsZTsKK+W3peW7oCA+IGZhY3Rvcnk7Civmj5Lmm7IgPiBlcGlzb2RlOwor6KGA57WxID4gbGluZWFnZTsKK+a/oea/lSA+IG1vaXN0ZW47CivmipforbAgPiBwcm90ZXN0Owor57WG5YCSID4gc3R1bWJsZTsKK+eziuW8hCA+IHRvXC1mb29sOwor5bi25YuVID4gdG9cLXNwdXI7CivlhazlvI8gPiBmb3JtdWxhOwor54G95a6zID4gc2NvdXJnZTsKK+iKseadnyA+IGJvdXF1ZXQ7Civlt7LlqZogPiBtYXJyaWVkOwor5omt6L2JID4gcmV2ZXJzZTsKK+aIsumZoiA+IHRoZWF0ZXI7Civnl5Lnl5IgPiB0b1wtaXRjaDsKK+S+i+mhjCA+IGV4YW1wbGU7CivojIXlsYsgPiBjb3R0YWdlOwor5YSq5pa8ID4gc3VycGFzczsKK+apn+WgtCA+IGFpcnBvcnQ7CivntYLkuo4gPiBhdFwtbGFzdDsKK+aooeW9oiA+IHBhdHRlcm47Civon4von4AgPiBjcmlja2V0Owor5L+h6LO0ID4gY29uZmlkZTsKK+iKpeacqyA+IG11c3RhcmQ7Civmv4Dng4ggPiBpbnRlbnNlOwor55eF55eHID4gZGlzZWFzZTsKK+WGt+WNuyA+IGNvb2xpbmc7CivmoYzpnaIgPiBkZXNrdG9wOwor5bGl6KGMID4gZnVsZmlsbDsKK+eah+W4nSA+IGVtcGVyb3I7CivooajnjocgPiBleGFtcGxlOwor5o+t5bmVID4gb3BlbmluZzsKK+evh+eroCA+IHdyaXRpbmc7CivmjqXmm78gPiByZXBsYWNlOwor5qmf5ZmoID4gbWFjaGluZTsKK+eWvueXhSA+IGRpc2Vhc2U7CivlgpnnlKggPiByZXNlcnZlOwor5a+s6ZeKID4gZXhwYW5zZTsKK+aOquaWvSA+IG1lYXN1cmU7CivlhaflrrkgPiBjb250ZW50Owor5o6h5pqWID4gaGVhdGluZzsKK+ebuOS7vyA+IHNpbWlsYXI7CivlgrLnhLYgPiBsb2Z0aWx5Owor5Zug54K6ID4gYmVjYXVzZTsKK+aoteWkqyA+IHdvb2RtYW47Civoh6rnp4EgPiBzZWxmaXNoOwor5YW45Z6LID4gdHlwaWNhbDsKK+iMtuWFtyA+IHRlYVwtc2V0Owor6Lyq5buTID4gb3V0bGluZTsKK+eziuWhlyA+IG11ZGRsZWQ7CivmppzmqKMgPiBleGFtcGxlOwor6ZaJ5aGeID4gc3RvcFwtdXA7CivooajmvJQgPiBwZXJmb3JtOwor6LaF6YGOID4gc3VycGFzczsKK+evgOebriA+IHByb2dyYW07Civpkb3nn7MgPiBkaWFtb25kOwor5ZyS5p6XID4gZ2FyZGVuczsKK+eUn+iPnCA+IGxldHR1Y2U7CivlsI/osqkgPiBwZWRkbGVyOwor6LuM5p6VID4gc2xlZXBlcjsKK+eZveWkqSA+IGRheXRpbWU7Civoi7HlnIsgPiBlbmdsYW5kOwor6aaW6aO+ID4gamV3ZWxyeTsKK+W3peWMoCA+IGFydGlzYW47Civnm4jkvZkgPiBzdXJwbHVzOwor5L+Y6JmcID4gY2FwdGl2ZTsKK+iHgueroCA+IGFybWJhbmQ7Civoh6rnlLEgPiBmcmVlZG9tOwor5biD5LiBID4gcHVkZGluZzsKK+WcjeaUuyA+IGJlc2llZ2U7Civllp3ph4cgPiBhY2NsYWltOwor55Sf6IKyID4gdG9cLWJlYXI7CivotaTpgZMgPiBlcXVhdG9yOwor6auY5ryyID4gdXBzdXJnZTsKK+mWgOWPoyA+IGRvb3J3YXk7CivmkI3lgrcgPiB0b1wtaGFybTsKK+i6q+adkCA+IHN0YXR1cmU7Civoi7Hli4cgPiBicmF2ZXJ5Owor5L6L6K2JID4gZXhhbXBsZTsKK+WVj+mhjCA+IHByb2JsZW07Civlr4TpgIEgPiB0b1wtc2VuZDsKK+WCvuaWnCA+IGluY2xpbmU7Civlm7Dmk74gPiBwZXJwbGV4Owor6KSH5ZCIID4gY29tcGxleDsKK+aKhOe2siA+IGRpcFwtbmV0Owor55m+5YiGID4gcGVyY2VudDsKK+WatOatoyA+IHN0ZXJubHk7CivooaPmnI0gPiBjbG90aGVzOwor5oiW6KixID4gcGVyaGFwczsKK+aIkOiqniA+IHByb3ZlcmI7Civmpq7lubggPiBob25vcmVkOwor5ryC56SrID4gYm91bGRlcjsKK+mmrOi5rCA+IHN0aXJydXA7CivmqKHlgKMgPiBpbWl0YXRlOwor5L6L6KGMID4gcm91dGluZTsKK+WVhumaiiA+IGNhcmF2YW47CivlrbjpmaIgPiBjb2xsZWdlOwor5YO15bGAID4gaW1wYXNzZTsKK+aNleaJiyA+IGNhdGNoZXI7CivmipXnpaggPiB0b1wtdm90ZTsKK+ihjOadjiA+IGx1Z2dhZ2U7Civmj5DliLAgPiBtZW50aW9uOwor6amV55+cID4gaGF1Z2h0eTsKK+S/oeeusSA+IG1haWxib3g7Civlr4boq4cgPiBjb21tdW5lOwor55So55uhID4gZXhoYXVzdDsKK+amguW/tSA+IGNvbmNlcHQ7CivlgZzmraIgPiB0b1wtc3RvcDsKK+WFg+S7tiA+IGVsZW1lbnQ7CivlnLDlnYAgPiBhZGRyZXNzOwor5ZyL5a62ID4gY291bnRyeTsKK+WtlOmbgCA+IHBlYWNvY2s7CivpjbXoqZ4gPiBrZXl3b3JkOwor5ruR56i9ID4gY29taWNhbDsKK+WVhumHjyA+IGNvbnN1bHQ7CivkvY7oqr8gPiBsb3dcLWtleTsKK+aMieaZgiA+IG9uXC10aW1lOwor6KOd5YWlID4gdG9cLWxvYWQ7CivmiZPnrpcgPiB0b1wtcGxhbjsKK+Wwj+e1kCA+IHN1bW1hcnk7CivlsI/ntYQgPiBhXC1ncm91cDsKK+aMieaRqSA+IG1hc3NhZ2U7CivlgYnmpa0gPiBleHBsb2l0Owor6LOq6YePID4gcXVhbGl0eTsKK+evgOaXpSA+IGhvbGlkYXk7Civoo4HliaogPiBjdXRcLW91dDsKK+eUoueJqSA+IHByb2R1Y3Q7CivkvpvntaYgPiBmdXJuaXNoOwor6Iie5byEID4gdG9cLXdhdmU7CivmiZPnoo4gPiBzaGF0dGVyOwor5ouv5pWRID4gdG9cLXNhdmU7CivlnKjliY0gPiBmb3J3YXJkOwor5p2O6bWsID4gbGlcLXBlbmc7CivlronoqK0gPiBpbnN0YWxsOwor6LKs6ZujID4gY2Vuc3VyZTsKK+WztuW2vCA+IGlzbGFuZHM7Civmn6Xoqr8gPiBpbnF1aXJ5Owor5ouL5qOEID4gZGlzY2FyZDsKK+S+v+ebhiA+IGJlZFwtcGFuOwor6KCx5oORID4gZW5jaGFudDsKK+WBh+aXpSA+IGhvbGlkYXk7Civlronoo50gPiBpbnN0YWxsOwor5ruy5ryPID4gc2VlcGFnZTsKK+iJpuWPqiA+IHdhcnNoaXA7Civmi7fmiZMgPiB0b1wtYmVhdDsKK+iBr+mCpiA+IGZlZGVyYWw7CivmvILms4ogPiBkcmlmdGVyOwor5Zm45pW4ID4gdG9ubmFnZTsKK+WVhuiojiA+IGRpc2N1c3M7CivllK7os6MgPiB0b1wtc2VsbDsKK+mmmeiPnCA+IHBhcnNsZXk7Civmtbfprq4gPiBzZWFmb29kOwor6Iel5oi/ID4gYmVkcm9vbTsKK+eroOevgCA+IGNoYXB0ZXI7Civmu7TmtYEgPiB0cmlja2xlOwor55aP5b+9ID4gbmVnbGVjdDsKK+WDpeWAliA+IGx1Y2tpbHk7Civmh7LnvbAgPiBwZW5hbHR5Owor5YKz5ZauID4gbGVhZmxldDsKK+mmmeiFuCA+IHNhdXNhZ2U7CivotbDnp4EgPiBzbXVnZ2xlOwor5bCI55SoID4gc3BlY2lhbDsKK+m+jeidpiA+IGxvYnN0ZXI7CivmjIflrpogPiBhcHBvaW50Owor5YOV5Lq6ID4gc2VydmFudDsKK+Wuuee0jSA+IGNvbnRhaW47Civkvq/niLUgPiBtYXJxdWlzOwor5qSw5a2QID4gY29jb251dDsKK+mRkuaIkiA+IHdhcm5pbmc7Civku6PoqZ4gPiBwcm9ub3VuOwor5Li56bqlID4gZGVubWFyazsKK+ewoeS7iyA+IHN1bW1hcnk7Civnlavlu4ogPiBnYWxsZXJ5Owor6Iel5a6kID4gYmVkcm9vbTsKK+aJs+apnyA+IHRyaWdnZXI7CivooZ3lipsgPiBpbXB1bHNlOwor5a6M576OID4gcGVyZmVjdDsKK+WxleacmyA+IG91dGxvb2s7Civnq4rnm5wgPiBidXJnbGFyOwor55Gj57SwID4gdHJpdmlhbDsKK+aMquWLlSA+IHRvXC1tb3ZlOwor5a6256a9ID4gcG91bHRyeTsKK+epuue8uiA+IHZhY2FuY3k7CivmnIDpq5ggPiBoaWdoZXN0Owor6auY5Y6fID4gcGxhdGVhdTsKK+eVq+WutiA+IHBhaW50ZXI7CivlsYjmm7IgPiBjcm9va2VkOwor5a246ICFID4gc2Nob2xhcjsKK+eWsuWLniA+IGZhdGlndWU7Civmu7/miYsgPiBoYW5kZnVsOwor5LiN6b2SID4gZGVzcGlzZTsKK+aKleaJiyA+IHBpdGNoZXI7CivmtbfpgoogPiBzZWFzaWRlOwor5oqK5oyBID4gY29udHJvbDsKK+WZgeW/gyA+IHRvXC1oYXRlOwor5bCL5rGCID4gdG9cLXNlZWs7CivmnKzpjKIgPiBjYXBpdGFsOwor6Ia95a2QID4gY291cmFnZTsKK+iAs+iqniA+IHdoaXNwZXI7CivlmbTloqggPiBpbmtcLWpldDsKK+S5i+mWkyA+IGJldHdlZW47CivmnInpmZAgPiBsaW1pdGVkOwor5omY5p62ID4gYnJhY2tldDsKK+WTgeizqiA+IHF1YWxpdHk7CivmnKzph5EgPiBjYXBpdGFsOwor6Yym57eeID4gYnJvY2FkZTsKK+m6u+mbgCA+IHNwYXJyb3c7CivmibbmjIEgPiB0b1wtaGVscDsKK+iZlOiqoCA+IHNpbmNlcmU7Civkv53mjIEgPiB0b1wta2VlcDsKK+aJtuaJiyA+IHJhaWxpbmc7CivmnIDplbcgPiBsb25nZXN0Owor5omz5omLID4gc3Bhbm5lcjsKK+S+v+aWvCA+IGVhc3lcLXRvOwor5rW36LGaID4gZG9scGhpbjsKK+aEm+ittyA+IGNoZXJpc2g7Civnr4DlhIkgPiB0aHJpZnR5Owor56We6auUID4gZ29kaGVhZDsKK+aJk+aTviA+IGRpc3R1cmI7CivkuK3plpMgPiBiZXR3aXh0Owor5L6G5q23ID4gaGlzdG9yeTsKK+aEn+imuiA+IHRvXC1mZWVsOwor56+E5L6LID4gZXhhbXBsZTsKK+WtpOeriyA+IGlzb2xhdGU7CivnlbbliY0gPiBjdXJyZW50Owor5bGk5a2QID4gc3RyYXR1bTsKK+acrOizqiA+IGVzc2VuY2U7CivnlKjlrZcgPiBkaWN0aW9uOwor6IGv57ayID4gbmV0d29yazsKK+a9m+S8jyA+IHRvXC1oaWRlOwor6IGv57WQID4gdG9cLWJpbmQ7CivnrqHliLYgPiBjb250cm9sOwor5L+D5oiQID4gcHJvY3VyZTsKK+WwiuaVrCA+IHJlc3BlY3Q7Civlronnk78gPiBhbXBvdWxlOwor6Iez5LiKID4gc3VwcmVtZTsKK+S4gOmghSA+IGFuXC1pdGVtOwor5oqE5a+rID4gdG9cLWNvcHk7CivotIXnmKQgPiB1c2VsZXNzOwor5riF55yfID4gaXNsYW1pYzsKK+eVq+WFkiA+IHBpY3R1cmU7CivllpzmraEgPiB0b1wtbGlrZTsKK+S7lOe0sCA+IGNhcmVmdWw7CivlsaDlpKsgPiBidXRjaGVyOwor5LiK6ZaAID4gZHJvcFwtaW47CivlrbjnlJ8gPiBzdHVkZW50Owor542O6YeRID4gcHJlbWl1bTsKK+S6uue+pCA+IGFcLWNyb3dkOwor55W25LuKID4gY3VycmVudDsKK+WBh+S9vyA+IHN1cHBvc2U7Civmm7TpgaAgPiBmYXJ0aGVyOwor5bCL5om+ID4gdG9cLXNlZWs7CivkvbXmop0gPiBkcmF3aW5nOwor5Lmf6KixID4gcGVyaGFwczsKK+mpmuWahyA+IGhvcnJpZnk7CivmibPlrZAgPiBzcGFubmVyOwor5oq95Ye6ID4gZXh0cmFjdDsKK+Wwt+WwrCA+IGF3a3dhcmQ7CivkuI3pjK8gPiBjb3JyZWN0Owor5qC45p+lID4gZXhhbWluZTsKK+S4memFriA+IGFjZXRvbmU7CivmiY3lubIgPiBhYmlsaXR5Owor6aaZ5rC0ID4gcGVyZnVtZTsKK+mmmeawoyA+IGluY2Vuc2U7CivlsI/lv4MgPiBjYXJlZnVsOwor5oiQ5paHID4gd3JpdHRlbjsKK+WQkOmcsiA+IHRvXC10ZWxsOwor6LaV5b+rID4gYXRcLW9uY2U7CivmnIPorbAgPiBtZWV0aW5nOwor6aOb6Ii5ID4gYWlyc2hpcDsKK+abvOiwtyA+IGJhbmdrb2s7CivlkYjpgIEgPiBwcmVzZW50Owor5Li76KmeID4gc3ViamVjdDsKK+ayiem7mCA+IHNpbGVuY2U7CivmiZPlrZcgPiB0b1wtdHlwZTsKK+ayiOm7mCA+IHNpbGVuY2U7Civot7Pli5UgPiB0b1wtYmVhdDsKK+a1geihjCA+IHBvcHVsYXI7CivkvZTmnIkgPiB0b1wtaGF2ZTsKK+WutOacgyA+IGJhbnF1ZXQ7Civog4zmo4QgPiBhYmFuZG9uOwor6aCY6ZqKID4gY2FwdGFpbjsKK+aciOidlSA+IGVjbGlwc2U7Civmib/lj5cgPiB0b1wtYmVhcjsKK+WAieS/gyA+IGh1cnJpZWQ7CivmipPlgrcgPiBzY3JhdGNoOwor5LiN6LO0ID4gbm90XC1iYWQ7CivogqXmsoMgPiBmZXJ0aWxlOwor5oSP576pID4gbWVhbmluZzsKK+WPrOmbhiA+IGNvbnZlbmU7CivnpZ7ot6EgPiBtaXJhY2xlOwor5L2/5b6SID4gYXBvc3RsZTsKK+a4hea0lyA+IHRvXC13YXNoOwor5ZGK6Ki0ID4gdG9cLXRlbGw7CivohLnlpKcgPiBzd29sbGVuOwor5Zac5oSbID4gdG9cLWxpa2U7Civlr7blr7YgPiBkYXJsaW5nOwor562J5YCZID4gd2FpdGluZzsKK+i3jOWIsCA+IHRvXC1mYWxsOwor5oe65oKUID4gY29uZmVzczsKK+aItuWkliA+IG91dGRvb3I7Civlr6zlrrkgPiBsZW5pZW50Owor6IO95bm5ID4gY2FwYWJsZTsKK+S4jeimiyA+IG5vdFwtc2VlOwor5L2P5oi/ID4gaG91c2luZzsKK+iAleeoriA+IHRvXC10aWxsOwor5oiw5aOrID4gZmlnaHRlcjsKK+e/oee/oCA+IGVtZXJhbGQ7CivlsIrlmrQgPiBkaWduaXR5Owor5a+G5bqmID4gZGVuc2l0eTsKK+WwluWPqyA+IHNjcmVlY2g7CivkvIHmpa0gPiBjb21wYW55Owor5a6J5pKrID4gcGxhY2F0ZTsKK+mggumHnSA+IHRoaW1ibGU7CivmoLjlrZAgPiBudWNsZWFyOwor5LyR5pyDID4gYWRqb3VybjsKK+iyoueJqSA+IHRyaWJ1dGU7Civmt5jmsrMgPiBwZWxpY2FuOwor6aOb55ukID4gZnJpc2JlZTsKK+a3mOawoyA+IG5hdWdodHk7CivpqI7lhbUgPiBjYXZhbHJ5Owor5oeK5oOxID4gYW5ub3llZDsKK+esrOS4gyA+IHNldmVudGg7CivmiZPlgJIgPiBmbGF0dGVuOwor5L+D5L2/ID4gc3B1clwtb247CivpoqjnrrEgPiBiZWxsb3dzOwor5rW055uGID4gYmF0aHR1YjsKK+e+pOiKsSA+IGJsb3Nzb207CivmiZjku5ggPiBlbnRydXN0Owor5qC95Z+5ID4gdG9cLWdyb3c7Civnp5Hnm64gPiBzdWJqZWN0Owor6aas5a2QID4gY29tbW9kZTsKK+i2iuWNlyA+IHZpZXRuYW07CivlronmhbAgPiBjb21mb3J0Owor56m65oiwID4gYWlyXC13YXI7CivmiJDlnIggPiB3cmVhdGhlOwor5oeJ5b6XID4gZGVzZXJ2ZTsKK+aIsOWLnSA+IHByZXZhaWw7CivkuI3oi58gPiBub3RcLWxheDsKK+S9j+WuvyA+IGxvZGdpbmc7CivotIrmiJAgPiBhcHByb3ZlOwor6K6K6YG3ID4gY2hhbmdlczsKK+acquefpSA+IHVua25vd247Civmg4Xnt5IgPiBmZWVsaW5nOwor5bCB5YWlID4gaW5jbG9zZTsKK+mHjuiykyA+IHdpbGRjYXQ7Civku6Pmm78gPiBpbnN0ZWFkOwor5qGI5Y23ID4gcmVjb3JkczsKK+aCo+iAhSA+IHBhdGllbnQ7CivkvobliLAgPiB0b1wtY29tZTsKK+S7o+aVuCA+IGFsZ2VicmE7CivmnKjnk6YgPiBzaGluZ2xlOwor5oiQ5YqfID4gc3VjY2VzczsKK+S4reeriyA+IG5ldXRyYWw7Civnj77mmYIgPiBjdXJyZW50Owor5LiW57SAID4gY2VudHVyeTsKK+S9juWcsCA+IGxvd2xhbmQ7CivmtbfmvqEgPiBzZWF3ZWVkOwor5ZCr576pID4gbWVhbmluZzsKK+S7iuaZmiA+IHRvbmlnaHQ7Civph5Hono0gPiBiYW5raW5nOwor5ZOA5rGCID4gZW50cmVhdDsKK+a0l+emriA+IGJhcHRpc207CivlrbjlrrYgPiBzY2hvbGFyOwor5aaT6ZmiID4gYnJvdGhlbDsKK+S4jeetiSA+IHRvXC12YXJ5Owor6aGv56S6ID4gdG9cLXNob3c7CivljZrpm4UgPiBsZWFybmVkOwor6Z2S6a2aID4gaGVycmluZzsKK+mmrOWFtyA+IGhhcm5lc3M7CivlkI3nvqkgPiB0aXR1bGFyOwor5LiN56WlID4gb21pbm91czsKK+a2iOaltSA+IHBhc3NpdmU7CivmsLTpioAgPiBtZXJjdXJ5Owor5pqI6Ii5ID4gc2Vhc2ljazsKK+iBt+W3pSA+IHdvcmtlcnM7Civml6XplpMgPiBkYXl0aW1lOwor5a2f5a2QID4gbWVuY2l1czsKK+elnuelliA+IGdvZGhlYWQ7Civmm4nnpLogPiB0b1wtdGVsbDsKK+iSuOmkviA+IGRpc3RpbGw7CivlrozlloQgPiBwZXJmZWN0Owor5oKy55ebID4gZ3JpZXZlZDsKK+WumOWPuCA+IGxhd3N1aXQ7CivpnZ7pm6MgPiByZXByb29mOwor5rC46YGgID4gZm9yZXZlcjsKK+mFrOi8iSA+IHBheWxvYWQ7Civogb3lr6sgPiBkaWN0YXRlOwor5aeU6KiXID4gZW50cnVzdDsKK+iZp+aQjSA+IGRlZmljaXQ7CivpurvnhakgPiB0cm91YmxlOwor6aas5LiKID4gYXRcLW9uY2U7Civmma/oibIgPiBzY2VuZXJ5Owor56WI56axID4gdG9cLXByYXk7Civlv73oppYgPiBuZWdsZWN0Owor6K2P6KqaID4gY3luaWNhbDsKK+eiuuiqjSA+IGNvbmZpcm07CivnjovmrIogPiByb3lhbHR5Owor5pa56Z2iID4gcmVzcGVjdDsKK+WPpOiAgSA+IGFuY2llbnQ7CivkvIHlnJYgPiBhdHRlbXB0Owor6aGM55uuID4gc3ViamVjdDsKK+axoeihiiA+IHNsYW5kZXI7CivnvoXnm6QgPiBjb21wYXNzOwor54++5a+mID4gcmVhbGl0eTsKK+izquWcsCA+IHRleHR1cmU7Civkub7ml7EgPiBkcm91Z2h0Owor54+N5oSbID4gY2hlcmlzaDsKK+i0iuWKqSA+IHNwb25zb3I7Civlv6DoqqAgPiBkZXZvdGVkOwor5paR6aeuID4gbW90dGxlZDsKK+mEremHjSA+IHNlcmlvdXM7CivljYfpgbcgPiBwcm9tb3RlOwor5Y2K6YCUID4gaGFsZndheTsKK+WPjeiAjCA+IGluc3RlYWQ7Civlpb3ovYkgPiBpbXByb3ZlOwor546L5pydID4gZHluYXN0eTsKK+aDoeajjSA+IHZpbGxhaW47CivljYrot68gPiBoYWxmd2F5Owor5pW06auUID4gb3ZlcmFsbDsKK+e+veavmyA+IGZlYXRoZXI7CivmhJ/mg4UgPiBmZWVsaW5nOwor6by75a2UID4gbm9zdHJpbDsKK+WTgOaAnSA+IHBlbnNpdmU7Civku7vli5kgPiBtaXNzaW9uOwor5oSb5oOcID4gY2hlcmlzaDsKK+eMlueNlyA+IHJhbXBhbnQ7CivmnpzlnJIgPiBvcmNoYXJkOwor5peB6YKKID4gbGF0ZXJhbDsKK+miqOaZryA+IHNjZW5lcnk7CivptJXps6UgPiBvc3RyaWNoOwor6Yac6IGeID4gc2NhbmRhbDsKK+mjveWtuCA+IGxlYXJuZWQ7CivmrpjpqrggPiByZW1haW5zOwor5paH6ZuFID4gZWxlZ2FudDsKK+mjm+W9iCA+IG1pc3NpbGU7Civogb3lipsgPiBoZWFyaW5nOwor5Lu/5YKaID4gdG9cLWNvcHk7Civml6XoqowgPiBqb3VybmFsOwor5aSW6Z2iID4gb3V0c2lkZTsKK+mgkeeariA+IG5hdWdodHk7CivmmrTng4ggPiB2aW9sZW50Owor6ZuE6buDID4gcmVhbGdhcjsKK+acg+acnyA+IHNlc3Npb247CivkuI3ms5UgPiBsYXdsZXNzOwor5ZGo5pyrID4gd2Vla2VuZDsKK+a3oeWFiSA+IHNoaW1tZXI7CivpoZ7mr5QgPiBhbmFsb2d5Owor6Ku66KqeID4gcHJvdmVyYjsKK+Wkp+mMryA+IGJsdW5kZXI7CivogIHlubQgPiBlbGRlcmx5Owor5Lif5qOEID4gZGlzY2FyZDsKK+iAgeW4qyA+IHRlYWNoZXI7CivorornoawgPiBzdGlmZmVuOwor5rW35bK4ID4gY29hc3RhbDsKK+aXpeidlSA+IGVjbGlwc2U7CivnpKbniakgPiBtaW5lcmFsOwor6LG55a2QID4gbGVvcGFyZDsKK+Wlh+i5nyA+IG1pcmFjbGU7Civmr5TovIMgPiBjb21wYXJlOwor5aWH6LehID4gbWlyYWNsZTsKK+S7peS+vyA+IHNvXC10aGF0Owor6JGX6Zm4ID4gbGFuZGluZzsKK+W8temWiyA+IHN0cmV0Y2g7CivlpKfpg70gPiBnZW5lcmFsOwor5aW96JmVID4gYmVuZWZpdDsKK+enkeWtuCA+IHNjaWVuY2U7CivmhJvlpb0gPiB0b1wtbGlrZTsKK+a2suWMliA+IGxpcXVpZnk7CivphJnoppYgPiBkZXNwaXNlOwor5pu05o+bID4gcmVwbGFjZTsKK+aWueiogCA+IGRpYWxlY3Q7Civlj6TniakgPiBhbnRpcXVlOwor5pel6JC9ID4gc3VuZG93bjsKK+elnuagvCA+IGdvZGhlYWQ7CivmnKzlsYYgPiBjdXJyZW50Owor6YO16LK7ID4gcG9zdGFnZTsKK+abluaYpyA+IGlsbGljaXQ7CivlpoLoirEgPiBmbG93ZXJ5Owor6Z6t562WID4gc3B1clwtb247Civmg4XmhJ8gPiBmZWVsaW5nOwor5Li55b+DID4gbG95YWx0eTsKK+mbhOmbniA+IHJvb3N0ZXI7Civmsr/mtbcgPiBjb2FzdGFsOwor5pS+6ZaLID4gdW5sZWFzaDsKK+e5quijvSA+IHRvXC1kcmF3Owor5Lit5oCnID4gbmV1dHJhbDsKK+mEmeiWhCA+IGRlc3Bpc2U7CivoqrnorJcgPiBzbGFuZGVyOwor5oCq54mpID4gbW9uc3RlcjsKK+W+qeiIiCA+IHJlc3RvcmU7Civmtonlj4ogPiBpbnZvbHZlOwor576o5oWVID4gZW52aW91czsKK+WMheijuSA+IHdyYXBcLXVwOwor6JGX6L+wID4gd3JpdGluZzsKK+WkluiyjCA+IHByb2ZpbGU7CivppIXkub4gPiBiaXNjdWl0Owor5pyJ5a6zID4gaGFybWZ1bDsKK+mFkueyviA+IGFsY29ob2w7CivnpL7mnIMgPiBzb2NpZXR5Owor576e5oSnID4gYXNoYW1lZDsKK+S4u+WwjiA+IHRvXC1sZWFkOwor5pq05pS/ID4gdHlyYW5ueTsKK+aEn+WIsCA+IHRvXC1mZWVsOwor546L5ZyLID4ga2luZ2RvbTsKK+aYk+eijiA+IGJyaXR0bGU7Civph5jmrbsgPiBjcnVjaWZ5Owor6aGn5b+MID4gc2NydXBsZTsKK+aEiOWQiCA+IHRvXC1oZWFsOwor5ZOA5YK3ID4gZ3JpZXZlZDsKK+aVuOipniA+IG51bWVyYWw7CivoqbPov7AgPiByZWNvdW50Owor5Ymp6aSYID4gc3VycGx1czsKK+mhmOaEjyA+IHRvXC13aXNoOwor5YyF6JePID4gY29udGFpbjsKK+eOqeWFkiA+IHRvXC1wbGF5Owor5Lit5a2QID4gbmV1dHJvbjsKK+mHkeapmCA+IGt1bXF1YXQ7CivpnIDopoEgPiB0b1wtbmVlZDsKK+aClOaBqCA+IHJlbW9yc2U7CivlkKvmhI8gPiBtZWFuaW5nOwor5pyA5aSnID4gYmlnZ2VzdDsKK+acgOWkmiA+IGF0XC1tb3N0Owor5puJ5b6XID4gdG9cLWtub3c7CivogJXkvZwgPiBmYXJtaW5nOwor5oCl5rWBID4gdG9ycmVudDsKK+e9t+aJiyA+IGdpdmVcLXVwOwor6ICB5YW1ID4gdmV0ZXJhbjsKK+iAgeWFrCA+IGh1c2JhbmQ7Civlo5Pov6sgPiBvcHByZXNzOwor54yc5oOzID4gc3VwcG9zZTsKK+S4reWkriA+IGNlbnRyYWw7CivpmorplbcgPiBjYXB0YWluOwor56Cy6Ie6ID4gYmF0dGVyeTsKK+S5j+WRsyA+IHRlZGlvdXM7CivwoZyxID4gdG9cLWVudnk7Civmk6/pmaQgPiBkaXNjYXJkOwor57eo6YCgID4gY29tcGlsZTsKK+S4iuWwhyA+IGdlbmVyYWw7CivlkbzlkLggPiBicmVhdGhlOwor8KKYuCA+IHRvXC1oYXRlOwor54yc5bqmID4gc3VybWlzZTsKK+WRu+WQnyA+IHRvXC1tb2FuOwor54mp55CGID4gcGh5c2ljczsKK+mBtOmBuCA+IHRvXC1waWNrOwor54it56uvID4gZGlzcHV0ZTsKK+Wls+elniA+IGdvZGRlc3M7Civmg7Plg48gPiBpbWFnaW5lOwor5byV6KiAID4gZm9yd2FyZDsKK+WQjOW/lyA+IGNvbXJhZGU7CivljIXnvoUgPiBpbmNsdWRlOwor5LiN5aW9ID4gbm9cLWdvb2Q7CivorozmnIMgPiBiYW5xdWV0Owor5peF56iLID4gam91cm5leTsKK+acrOS6iyA+IGFiaWxpdHk7Civph4vmlL4gPiByZWxlYXNlOwor5rKS5pyJID4gaGF2ZW4nJ3Q7CivljZfnk5wgPiBwdW1wa2luOwor6K6K5pqWID4gd2FybWluZzsKK+awo+eQgyA+IGJhbGxvb247Civni4LmmrQgPiBmcmFudGljOwor5LiI5aSrID4gaHVzYmFuZDsKK+elnuWlsyA+IGdvZGRlc3M7CivlkIrluoogPiBoYW1tb2NrOwor5Y+K5pmCID4gaW5cLXRpbWU7CivlppbniakgPiBtb25zdGVyOwor6YOo572yID4gZGlzcG9zZTsKK+S5n+S4jSA+IG5laXRoZXI7Civlj6/mhpAgPiBwaXRpZnVsOwor5aWz55qHID4gZW1wcmVzczsKK+WinumAsiA+IHByb21vdGU7CivpgZnpgaAgPiBkaXN0YW50Owor6YGZ6YGZID4gZGlzdGFudDsKK+ipleirliA+IGNvbW1lbnQ7CivkuIDlpKkgPiBvbmVcLWRheTsKK+WPr+aEmyA+IGFtaWFibGU7CivmlLnoo50gPiByZW1vZGVsOwor54m95raJID4gaW52b2x2ZTsKK+mYv+mjmyA+IGhvb2RsdW07Civlj6/mgaggPiBoYXRlZnVsOwor5oKy5ZOAID4gZ3JpZXZlZDsKK+mhp+WVjyA+IGFkdmlzZXI7CivlpKnnt5ogPiBhbnRlbm5hOwor5Yuz57i+ID4gZXhwbG9pdDsKK+azleWumCA+IGFcLWp1ZGdlOwor576O5ZyLID4gYW1lcmljYTsKK+acgOS9syA+IG9wdGltdW07Civlub3pnYggPiBzcGVjdGVyOwor6YGL6L2JID4gdG9cLXdvcms7Civpm7fogbIgPiB0aHVuZGVyOwor6YGL6Ly4ID4gdHJhbnNpdDsKK+eJueauiiA+IHNwZWNpYWw7CivmgrLliocgPiB0cmFnZWR5Owor55+z6IaPID4gcGxhc3RlcjsKK+abuOS/oSA+IGVwaXN0bGU7Civluqbph48gPiBtZWFzdXJlOwor57aT6Yq3ID4gdG9cLXNlbGw7Civlio3ooZMgPiBmZW5jaW5nOwor5Y+b5b6SID4gdHJhaXRvcjsKK+iou+inoyA+IGNvbW1lbnQ7CivntrLot68gPiBuZXR3b3JrOwor5LiK5Y2IID4gbW9ybmluZzsKK+e3kuiogCA+IHByZWZhY2U7CivoqLToqJ8gPiBsYXdzdWl0Owor6KqH6ICAID4gcHJvdWRseTsKK+aWh+eroCA+IGFydGljbGU7CivnvLrluK0gPiBhYnNlbmNlOwor5LiA5Y+jID4gcmVhZGlseTsKK+WQruWQuCA+IHRvXC1zdWNrOwor5LiD5Y2BID4gc2V2ZW50eTsKK+eLguaAkiA+IGZ1cmlvdXM7CivmlrDnlJ8gPiBuZXdib3JuOwor6Zqx6JePID4gdG9cLWhpZGU7CivntpPpgY4gPiB0b1wtcGFzczsKK+S4jeWGjSA+IG5vXC1tb3JlOwor6Zqx6JS9ID4gY29uY2VhbDsKK+S4luS/lyA+IHByb2ZhbmU7CivmgJ3mg7MgPiB0aG91Z2h0Owor5bm06ZGRID4gYWxtYW5hYzsKK+aUueiJryA+IGltcHJvdmU7CivmgKXlv5kgPiBoYXN0aWx5Owor57mq55WrID4gZHJhd2luZzsKK+avlOeVqyA+IGdlc3R1cmU7Civnh4jnsaAgPiBsYW50ZXJuOwor57eo6JGXID4gY29tcGlsZTsKK+itpuaIkiA+IHRvXC13YXJuOwor57at6K23ID4gZGVmZW5zZTsKK+mHj+WtkCA+IHF1YW50dW07CivnjL/kurogPiBhcGVcLW1hbjsKK+WPq+WlvSA+IGFwcGxhdWQ7CivpoZ7kvLwgPiBzaW1pbGFyOwor6YCQ6YCAID4gcmVwdWxzZTsKK+eisOaSniA+IGNvbGxpZGU7Civms6jlhaUgPiBwb3VyXC1pbjsKK+mgguWkmiA+IGF0XC1tb3N0Owor5YmN6KiAID4gcHJlZmFjZTsKK+mdnuazlSA+IGlsbGVnYWw7CivmsLTmmbYgPiBjcnlzdGFsOwor5q2j576pID4ganVzdGljZTsKK+aZmuWutCA+IGJhbnF1ZXQ7CivlkJHliY0gPiBmb3J3YXJkOwor6L6v6aeBID4gZGlzcHV0ZTsKK+W+nuatpCA+IHRoZW5jZTsKK+mzpee+vSA+IHBpbmlvbjsKK+WgsemFrCA+IHJld2FyZDsKK+e3qOiAhSA+IGVkaXRvcjsKK+iqpOeUqCA+IG1pc3VzZTsKK+WklueUpSA+IG5lcGhldzsKK+mHjeWbniA+IHJldHVybjsKK+W8t+ebnCA+IGJhbmRpdDsKK+ipqeevhyA+IHBzYWxtczsKK+aWueazlSA+IG1ldGhvZDsKK+aUv+etliA+IHBvbGljeTsKK+mAg+i1sCA+IGVzY2FwZTsKK+itpuWvnyA+IHBvbGljZTsKK+azleS7pCA+IGRlY3JlZTsKK+WNseaHvCA+IGFmcmFpZDsKK+e9quS6uiA+IHNpbm5lcjsKK+Wkp+eCriA+IGNhbm5vbjsKK+Wkp+eBvSA+IHBsYWd1ZTsKK+WLg+eZvCA+IHRocml2ZTsKK+WQieS7liA+IGd1aXRhcjsKK+WMhea2tSA+IGV4Y3VzZTsKK+avgOa7hSA+IHBlcmlzaDsKK+W4tumHpiA+IGJ1Y2tsZTsKK+eiuuWvpiA+IGluZGVlZDsKK+WLleeJqSA+IGFuaW1hbDsKK+e3iue4riA+IHJlZHVjZTsKK+eHkueEpiA+IHNjb3JjaDsKK+mgmOS6iyA+IGNvbnN1bDsKK+Wkp+a1qiA+IGJpbGxvdzsKK+edoeiRlyA+IGFzbGVlcDsKK+iuiuWMliA+IGNoYW5nZTsKK+awo+aBryA+IGJyZWF0aDsKK+aTsee9riA+IHNoZWx2ZTsKK+iuiuWLlSA+IGNoYW5nZTsKK+aVtOa9lCA+IG5lYXRseTsKK+aXqOaEjyA+IGRlY3JlZTsKK+W8iueXhSA+IG1hbGFkeTsKK+mBuOelqCA+IGFcLXZvdGU7Civlib3nq4ogPiBwaXJhdGU7Civnt6jnorwgPiBjb2Rpbmc7CivphInmnZEgPiBydXN0aWM7Civlt6jpoK0gPiB0eWNvb247CivpoILkuosgPiB1c2VmdWw7CivmkpXoo4IgPiBtYW5nbGU7CivpmYTokZcgPiBhZGhlcmU7CivmraPnlbYgPiB0aW1lbHk7CivmgJLlkLwgPiBiZWxsb3c7CivlpYfmma8gPiBtYXJ2ZWw7CivniYjlvI8gPiBmb3JtYXQ7CivpgaDnqIsgPiByZW1vdGU7CivnuK7muJsgPiB0b1wtY3V0Owor5Y2K5b6RID4gcmFkaXVzOwor56Oo5YWJID4gcG9saXNoOwor6a6t6a2aID4gc2FsbW9uOwor6ZmN6IeoID4gYmVmYWxsOwor6Kqy5qWtID4gbGVzc29uOwor6Yac5YyWID4gZGVmYW1lOwor6KeS6JC9ID4gY29ybmVyOwor54uC5Lq6ID4gbWFkbWFuOwor5pmC5Yi7ID4gbW9tZW50Owor5aSn5qG2ID4gYmFycmVsOwor55yL6KaLID4gdG9cLXNlZTsKK+e3o+eUsSA+IHJlYXNvbjsKK+ino+iEqyA+IHJlbGllZjsKK+egtOaVlyA+IGJlYXRlbjsKK+aXl+W5nyA+IGVuc2lnbjsKK+awtOWjuiA+IGtldHRsZTsKK+auluawkSA+IGNvbG9ueTsKK+aXi+W+iyA+IG1lbG9keTsKK+mDteaUvyA+IHBvc3RhbDsKK+mdtuWtkCA+IHRhcmdldDsKK+W+jOaClCA+IHJlZ3JldDsKK+WLleapnyA+IG1vdGl2ZTsKK+WOreWApiA+IGRyZWFyeTsKK+W+kOW+kCA+IHNsb3dseTsKK+WFp+mZuCA+IGlubGFuZDsKK+W3pemMoiA+IHNhbGFyeTsKK+WFrOmWiyA+IHB1YmxpYzsKK+WOn+WFiCA+IGZvcm1lcjsKK+WFq+mWiyA+IG9jdGF2bzsKK+eGiueGiiA+IHJhZ2luZzsKK+i+r+irliA+IGRlYmF0ZTsKK+efreatjCA+IGJhbGxhZDsKK+WNmuWjqyA+IGRvY3RvcjsKK+WltuWtkCA+IGJyZWFzdDsKK+W/oOWRiiA+IGFkdmljZTsKK+egsuaJiyA+IGd1bm5lcjsKK+WkmuaYnyA+IHN0YXJyeTsKK+W+i+W4qyA+IGxhd3llcjsKK+W+ruWmmSA+IHN1YnRsZTsKK+WlveWlvSA+IG5pY2VseTsKK+e4veaYryA+IGFsd2F5czsKK+mWi+mOliA+IHVubG9jazsKK+atpea4rCA+IHBhY2luZzsKK+eHn+aVkSA+IHJlc2N1ZTsKK+aVrOacjSA+IGFkbWlyZTsKK+mFrOWLniA+IHJld2FyZDsKK+W+l+WunCA+IHByb3BlcjsKK+WInee0miA+IGp1bmlvcjsKK+i8lemshiA+IGdlbnRsZTsKK+eIkOW6iiA+IGhlYXJ0aDsKK+isiuWgsSA+IHRvXC1saWU7Civnorrkv50gPiBlbnN1cmU7CivpgYvnlKggPiB0b1wtdXNlOwor5aSp5omNID4gdGFsZW50Owor57Wy57WoID4gdmVsdmV0Owor6YGT55CGID4gcmVhc29uOwor5pSq5re3ID4gdG9cLW1peDsKK+WjveadkCA+IGNvZmZpbjsKK+ino+etlCA+IGFuc3dlcjsKK+eJiOWcliA+IGRvbWFpbjsKK+aUv+asiiA+IHJlZ2ltZTsKK+W+iOWwkSA+IHNlbGRvbTsKK+eIteWjqyA+IGtuaWdodDsKK+ilr+ijoSA+IGxpbmluZzsKK+ismeWSjCA+IG1lZWtseTsKK+e2sueQgyA+IHRlbm5pczsKK+iNkuiVqiA+IGJhcnJlbjsKK+WMheW6hyA+IHNoaWVsZDsKK+WIhue1piA+IGRpdmlkZTsKK+WkqeaApyA+IGluYm9ybjsKK+atkOa0siA+IGV1cm9wZTsKK+WLvuW8lSA+IHNlZHVjZTsKK+eZvemKgCA+IHNpbHZlcjsKK+eGseacmyA+IGFzcGlyZTsKK+eyvumBuCA+IGNob3NlbjsKK+aViOaenCA+IHJlc3VsdDsKK+iqmOaLkCA+IGFiZHVjdDsKK+iqoOaHhyA+IGhlYXJ0eTsKK+mAmuefpSA+IG5vdGlmeTsKK+WIuueXmyA+IHRpbmdsZTsKK+W+teWPrCA+IGVubGlzdDsKK+atoeaogiA+IGdhaWV0eTsKK+e0q+iJsiA+IHB1cnBsZTsKK+ijoemdoiA+IGluc2lkZTsKK+WFiOmLkiA+IGhlcmFsZDsKK+W5s+epqSA+IHNtb290aDsKK+aVteaEjyA+IGVubWl0eTsKK+W3tOilvyA+IGJyYXppbDsKK+eJqeS7tiA+IG9iamVjdDsKK+WNuOS4iyA+IHVubG9hZDsKK+WMheWuuSA+IHBhcmRvbjsKK+iqmOaDkSA+IGVudGljZTsKK+eJp+S6uiA+IHBhc3RvcjsKK+Winua3uyA+IGFkZFwtdG87CivlpJblvaIgPiBmaWd1cmU7Civpm4bmnIMgPiBnYXRoZXI7CivpmqjmqZ8gPiByYW5kb207CivlhbXoroogPiBtdXRpbnk7CivmlY/mjbcgPiBuaW1ibGU7CivniZvku5QgPiBjb3dib3k7Civmj5DphpIgPiByZW1pbmQ7Civop7jniq8gPiBvZmZlbmQ7Civlparlj5YgPiBzbmF0Y2g7CivlpKvlrZAgPiBwZWRhbnQ7CivlpKrlrZAgPiBwcmluY2U7CivmjqHpm4YgPiBnYXRoZXI7CivnnJ/nqbogPiB2YWN1XDptOwor5q665a6zID4gbXVyZGVyOwor5q6Y5b+NID4gYmxvb2R5Owor6ZaS6KmxID4gZ29zc2lwOwor55y855quID4gZXllbGlkOwor57Sw57eaID4gc3RyaW5nOwor6L6t6IG3ID4gcmVzaWduOwor6YSZ5ZCdID4gdnVsZ2FyOwor57ea5qKdID4gc3RyZWFrOwor6bS/5a2QID4gcGlnZW9uOwor5b6S5YueID4gZnV0aWxlOwor5b6X5YiwID4gdG9cLWdldDsKK+i9ieiuiiA+IGNoYW5nZTsKK+e0sOeyiSA+IHBvd2RlcjsKK+iqoOWvpiA+IGhvbmVzdDsKK+W4jOiHmCA+IGdyZWVjZTsKK+mbo+W+lyA+IHNlbGRvbTsKK+Wkp+WkqyA+IGRvY3RvcjsKK+aVuOWtlyA+IG51bWJlcjsKK+a/uumWiyA+IHNwbGFzaDsKK+aUu+aJkyA+IGF0dGFjazsKK+mBiuattyA+IHRyYXZlbDsKK+WJm+atoyA+IGhvbmVzdDsKK+W+qeS7hyA+IGF2ZW5nZTsKK+majuairyA+IGxhZGRlcjsKK+Wjk+aJgSA+IHNxdWFzaDsKK+ipqeaEjyA+IHBvZXRpYzsKK+e3o+aVhSA+IHJlYXNvbjsKK+aUneaUvyA+IHJlZ2VudDsKK+W+nuS+hiA+IGFsd2F5czsKK+aomeiqniA+IHNsb2dhbjsKK+e4ruWwjyA+IHJlZHVjZTsKK+eZvOiqkyA+IHRvXC12b3c7CivmqaHohqAgPiBydWJiZXI7CivlnLDpkLUgPiBzdWJ3YXk7Civpm4zmgKcgPiBmZW1hbGU7CivljYHkuIAgPiBlbGV2ZW47Civlvp7kuosgPiBnb1wtZm9yOwor54ax5bi2ID4gdHJvcGljOwor6Zuc5belID4gcG9ydGVyOwor5Ye655SiID4gb3V0cHV0Owor5aWi5L6IID4gbHV4dXJ5Owor6JKZ5Y+XID4gc3VmZmVyOwor5o6b6YmkID4gY291cGxlOwor57SU57K5ID4gcHVyZWx5Owor5aSP5aSpID4gc3VtbWVyOwor6YSZ5L+aID4gdnVsZ2FyOwor6YSZ5L+XID4gdnVsZ2FyOwor6Zyy5Ye6ID4gZXhwb3NlOwor5pSA5piHID4gcmlzaW5nOwor54Wp5pO+ID4gYm90aGVyOwor6Kej5ri0ID4gcXVlbmNoOwor6YG65oa+ID4gcmVncmV0Owor5q2M5omLID4gc2luZ2VyOwor5beh6IiqID4gY3J1aXNlOwor5biD57eaID4gd2lyaW5nOwor5q2j5byPID4gZm9ybWFsOwor5Yaw566xID4gaWNlYm94Owor57O757WxID4gc3lzdGVtOwor54Sh5rOVID4gdW5hYmxlOwor6YCV5rWBID4gcnVub2ZmOwor5aS+5YWLID4gamFja2V0Owor5aSn5ZCDID4gZ29iYmxlOwor5q+r5LiNID4gaGFyZGx5Owor6YGT5pWZID4gdGFvaXNtOwor6Ki65omAID4gY2xpbmljOwor6YG65oGoID4gZ3J1ZGdlOwor5pO05pWjID4gc3ByZWFkOwor6ayG6aSFID4gbXVmZmluOwor5pOv5palID4gcmVqZWN0Owor5Yqg5bSZID4gZ2FsbG9uOwor5aWH5LqLID4gbWFydmVsOwor5pWZ5aCCID4gY2h1cmNoOwor6Kme5bC+ID4gc3VmZml4Owor6YCx5pyfID4gcGVyaW9kOwor6Zu25ZSuID4gcmV0YWlsOwor5qu75qGDID4gY2hlcnJ5Owor5Zyo6LuKID4gYWJvYXJkOwor6Iy256KXID4gdGVhY3VwOwor57ee5bi2ID4gcmliYm9uOwor5YiG5rS+ID4gYXNzaWduOwor55a+6aazID4gZ2FsbG9wOwor57eK5oClID4gdXJnZW50Owor5buB5omAID4gdG9pbGV0Owor5bqm5pW4ID4gZGVncmVlOwor6Zi75qmIID4gdGh3YXJ0Owor5o6n6Ki0ID4gYWNjdXNlOwor5pCW57GDID4gY3JhZGxlOwor6JGX5ZCNID4gZmFtb3VzOwor5by35YuiID4gbWlnaHR5Owor57Su54efID4gZW5jYW1wOwor57aB5p62ID4ga2lkbmFwOwor5Ye55rSeID4gY2F2aXR5Owor5byx5YyWID4gd2Vha2VuOwor6Zmw5oi2ID4gdmFnaW5hOwor5pOK5pWXID4gZGVmZWF0Owor6YCy5o6lID4gYWNjZXNzOwor55+t5Y+lID4gY2xhdXNlOwor57WV5rCjID4gZXhwaXJlOwor6Ki85a+mID4gdmVyaWZ5Owor6YCj5pOKID4gYmF0dGVyOwor5pWZ5Y2AID4gcGFyaXNoOwor6YCu5o2VID4gYXJyZXN0Owor55uj542EID4gcHJpc29uOwor54Gr566tID4gcm9ja2V0Owor6Zqx5aOrID4gaGVybWl0Owor6Iq56I+cID4gY2VsZXJ5Owor55+t5YqNID4gZGFnZ2VyOwor6Iqt6JWJID4gYmFuYW5hOwor5by35YGlID4gc3R1cmR5Owor5q2m5ZmoID4gd2VhcG9uOwor6IiM6aCtID4gdG9uZ3VlOwor54Wk5bGRID4gY2luZGVyOwor5bmz5p2/ID4gdGFibGV0Owor5Ye55qe9ID4gc29ja2V0Owor6KiY5bizID4gY2hhcmdlOwor5Yiu5o6JID4gc2NyYXBlOwor6Zmw5b2xID4gc2hhZG93Owor6auY6ZuFID4gZGFpbnR5Owor5q2h5ZacID4gam95ZnVsOwor5YiG5p6dID4gYnJhbmNoOwor5YmK5byxID4gd2Vha2VuOwor5q2l5ZOoID4gc2VudHJ5Owor5pCq55O3ID4gZW5hbWVsOwor5YKz6YGUID4gY29udmV5Owor5pO05bGVID4gZXh0ZW5kOwor5YiG5pyDID4gYnJhbmNoOwor5r+A6LW3ID4gYXJvdXNlOwor6KGh6YePID4gd2VpZ2h0Owor6aqo6auTID4gbWFycm93Owor5pCU55miID4gdGlja2xlOwor6ZuV5YOPID4gc3RhdHVlOwor5q2j5Y2IID4gbWlkZGF5Owor5pKr5oqxID4gY2FyZXNzOwor5YWs55y+ID4gcHVibGljOwor5pWR5Li7ID4gc2F2aW9yOwor57KY57KYID4gc3RpY2t5Owor5q235L6GID4gYWx3YXlzOwor5pSq5YuVID4gdG9cLW1peDsKK+ihl+mBkyA+IHN0cmVldDsKK+W3tOeIviA+IGJhbHRpYzsKK+eahOeiuiA+IHJlYWxseTsKK+mBjuWksSA+IGRlZmVjdDsKK+mVt+efrSA+IGxlbmd0aDsKK+W5q+aJiyA+IGhlbHBlcjsKK+ato+WAvCA+IGhvbmVzdDsKK+WFrOeUqCA+IHB1YmxpYzsKK+mBreWPlyA+IHN1ZmZlcjsKK+mZhOW6uCA+IHZhc3NhbDsKK+ebruaomSA+IHRhcmdldDsKK+mBqeWQiCA+IHRvXC1maXQ7Civpq5jpgZQgPiBhdHRhaW47Civoo5zntaYgPiBzdXBwbHk7CivoirHnsokgPiBwb2xsZW47CivlhajnkIMgPiBlbnRpcmU7CivmjJHpgbggPiBjaG9vc2U7Civpga3liLAgPiBzdWZmZXI7Civnmb3nl7QgPiBpZGlvY3k7Civls73osLcgPiBjYW55b247Civlmarpn7MgPiBydW1ibGU7CivmjY3ooZsgPiBkZWZlbmQ7CivooajopqogPiBjb3VzaW47Civop4Dlv7UgPiBub3Rpb247Civoo4HnuKsgPiB0YWlsb3I7CivmjqHntI0gPiBhY2NlcHQ7Civoo5znqK4gPiByZXNlZWQ7CivlhYHnlbYgPiBwcm9wZXI7CivlhrDmn7EgPiBpY2ljbGU7CivplrHmrbcgPiB0b1wtc2VlOwor5Z2m55m9ID4gaG9uZXN0Owor6Ziy5a6IID4gZGVmZW5kOwor6Zi/5aeoID4gYXVudGllOwor6I2J5paZID4gZm9kZGVyOwor57ea5LiKID4gb25saW5lOwor5Ye65bitID4gYXR0ZW5kOwor6ama6aetID4gZnJpZ2h0Owor57Sg5o+PID4gc2tldGNoOwor5YWH54ybID4gZmllcmNlOwor6ZaS5re3ID4gbG9pdGVyOwor5pGf5oqxID4gdG9cLWh1ZzsKK+iHqui6qyA+IGl0c2VsZjsKK+mAsuWPoyA+IGltcG9ydDsKK+aOoeekpiA+IG1pbmluZzsKK+aTvuS6giA+IGluZmVzdDsKK+e1kOWwviA+IGVuZGluZzsKK+mWo+aokyA+IGdhcnJldDsKK+iKseeUnyA+IHBlYW51dDsKK+mBjuS7vSA+IHVuZHVseTsKK+mpn+mbqCA+IHNob3dlcjsKK+W5g+W5lSA+IHNjcmVlbjsKK+aQtuaVkSA+IHJlc2N1ZTsKK+WFiea+pCA+IGx1c3RlcjsKK+aQnOafpSA+IHNlYXJjaDsKK+mAneWOuyA+IGVsYXBzZTsKK+WFiea8hiA+IGVuYW1lbDsKK+aQreaVkSA+IHJlc2N1ZTsKK+WFiea7kSA+IGdsb3NzeTsKK+mAleWQkSA+IHJhZGlhbDsKK+Wxj+miqCA+IHNjcmVlbjsKK+mAvOS7hCA+IG5hcnJvdzsKK+ebuOW3riA+IGRpZmZlcjsKK+mXnOW/gyA+IGNhcmluZzsKK+aQluaZgyA+IGZhbHRlcjsKK+aKtemBlCA+IGFycml2ZTsKK+WcsOeUoiA+IGVzdGF0ZTsKK+e0sOWrqSA+IHRlbmRlcjsKK+WxgOmdoiA+IGFzcGVjdDsKK+a+seeyiSA+IHN0YXJjaDsKK+aomeamnCA+IGZsYXVudDsKK+eZvealiiA+IHBvcGxhcjsKK+a6kOm7niA+IHNvdXJjZTsKK+a7kembqiA+IHRvXC1za2k7Civlm57ntZUgPiByZWJ1ZmY7CivoparluLYgPiBnYXJ0ZXI7CivntoHkvY8gPiBmYXN0ZW47CivnnLzlhYkgPiB2aXNpb247CivmqKPmnKwgPiBzYW1wbGU7Civng4jlo6sgPiBtYXJ0eXI7Civnsr7mmI4gPiBhc3R1dGU7CivohbPpkJAgPiBmZXR0ZXI7CivnlKLph48gPiBvdXRwdXQ7Civnmb3mnpwgPiBnaW5rZ287CivluIbluIMgPiBjYW52YXM7CivluIPluZUgPiBzY3JlZW47Civot7PpgLIgPiBwbHVuZ2U7CivlmrTogoUgPiBzb2xlbW47CivpmYTkuIogPiBhdHRhY2g7CivmiqzotbcgPiB1cGxpZnQ7Civlub7kuY4gPiBhbG1vc3Q7Civov6vliIcgPiB1cmdlbnQ7CivngInmuZYgPiBsYWdvb247CivntITlrpogPiBlbmdhZ2U7CivnsKHnm7QgPiBzaW1wbHk7Civot5/pgLIgPiBmb2xsb3c7CivlhYnmmK8gPiBzb2xlbHk7CivntabkuoggPiBhY2NvcmQ7CivlsbHosLcgPiB2YWxsZXk7CivloLHkv6EgPiBub3RpZnk7CivnsKHnlaUgPiBzaW1wbGU7CivopIfmlbggPiBwbHVyYWw7Civnmb3mkK0gPiBub1wtdXNlOwor5beh5byLID4gY3J1aXNlOwor5qmf5a+GID4gc2VjcmV0Owor6Iiq56iLID4gZmxpZ2h0Owor5Yas5aSpID4gd2ludGVyOwor5o+05omLID4gc3VjY29yOwor6auU57O7ID4gc3lzdGVtOwor5bid5ZyLID4gZW1waXJlOwor6Iy25aO6ID4gdGVhcG90Owor55uf5ZyLID4gYWxsaWVzOwor5qmY5a2QID4gb3JhbmdlOwor6KOB5rG6ID4gcnVsaW5nOwor6KaW5YqbID4gdmlzaW9uOwor5a+m6auUID4gZW50aXR5Owor55m85oqWID4gc2hpdmVyOwor57Si5Y+WID4gdG9cLWFzazsKK+W4reWNtyA+IGVuZ3VsZjsKK+WcsOavryA+IGNhcnBldDsKK+WFq+W6piA+IG9jdGF2ZTsKK+eUqOiqniA+IHN5bnRheDsKK+W4guWgtCA+IG1hcmtldDsKK+WfjuWgoSA+IGNhc3RsZTsKK+evgOe0hCA+IGZydWdhbDsKK+eUsuifsiA+IGJlZXRsZTsKK+aJv+irviA+IGVmZm9ydDsKK+ihm+eUnyA+IGhlYWx0aDsKK+mVt+W6piA+IGxlbmd0aDsKK+ijnOaVkSA+IHJlbWVkeTsKK+S/ruiogiA+IHJldmlzZTsKK+W4q+WChSA+IG1hc3RlcjsKK+i/hOS7iiA+IHNvXC1mYXI7Civlr6bpmpsgPiBhY3R1YWw7CivlmJfoqaYgPiB0b1wtdHJ5Owor5Z6C5bmVID4gY2Fub3B5Owor6KCf562GID4gY3JheW9uOwor5Yaw5YeNID4gZnJlZXplOwor5L6u6L6xID4gaW5zdWx0Owor5qij5a2QID4gbWFubmVyOwor55ar55eFID4gcGxhZ3VlOwor5Z+35LqLID4gZGVhY29uOwor5oiQ6ZW3ID4gbWF0dXJlOwor5rqd6YGTID4gZ3Jvb3ZlOwor6L6y5Lq6ID4gZmFybWVyOwor5o+S5bqnID4gc29ja2V0Owor5ru+6JC9ID4gdHVtYmxlOwor5bCH6L+RID4gYWxtb3N0Owor57O75YiXID4gc2VyaWVzOwor55uI5YipID4gcHJvZml0Owor5o6S5palID4gcmVqZWN0Owor5omu6KOdID4gbWFrZXVwOwor5ouJ57eKID4gc3RyYWluOwor5L+d6KGbID4gZGVmZW5kOwor6J6N6KejID4gbW9sdGVuOwor5ZyW5qGIID4gZGVzaWduOwor6IWU6Kq/ID4gYWNjZW50Owor6LWw6YyvID4gYXN0cmF5Owor5ZaJ6aCtID4gdGhyb2F0Owor56+A55yBID4gc2F2aW5nOwor6LyV5b6uID4gc2xpZ2h0Owor5ZyT5p+xID4gY29sdW1uOwor5qOJ6IqxID4gY290dG9uOwor5bGP6JS9ID4gc2NyZWVuOwor5YWn5ZywID4gaW5sYW5kOwor5L+h6JmfID4gc2lnbmFsOwor5bCP6LKTID4ga2l0dGVuOwor6KGM54K6ID4gYWN0aW9uOwor5bCN6LGhID4gdGFyZ2V0Owor5YWx5ZCMID4gY29tbW9uOwor5Z+L5LyPID4gYW1idXNoOwor55aG55WMID4gYm9yZGVyOwor5bCN6KmxID4gZGlhbG9nOwor56ym6JmfID4gc3ltYm9sOwor6IO46YedID4gYnJvb2NoOwor5pCt5LmYID4gZW1iYXJrOwor6ISF6L+rID4gY29lcmNlOwor5Zaa6YaSID4gYXJvdXNlOwor5YWr5Y2BID4gZWlnaHR5Owor5qij5ZOBID4gc2FtcGxlOwor57C45o+aID4gd2lubm93Owor5qOS57OWID4gc3Vja2VyOwor566X55ukID4gYWJhY3VzOwor57Ch5piTID4gc2ltcGxlOwor6KCf54etID4gY2FuZGxlOwor57K+5YqbID4gZW5lcmd5Owor5YWs5YWxID4gcHVibGljOwor5YKz5p+TID4gaW5mZWN0Owor5bel5Lq6ID4gd29ya2VyOwor5Zyo5b6MID4gYmVoaW5kOwor6Ieq54S2ID4gbmF0dXJlOwor5ru+562SID4gcm9sbGVyOwor5r2k5ruRID4gc21vb3RoOwor6LW36Ki0ID4gdG9cLXN1ZTsKK+idl+ifsiA+IGxvY3VzdDsKK+WyuOeEtiA+IHNvbGVtbjsKK+WCs+aVmSA+IHByZWFjaDsKK+ijgeWumiA+IHJ1bGluZzsKK+etiee0miA+IGRlZ3JlZTsKK+i8g+WlvSA+IGJldHRlcjsKK+iKseWckiA+IGdhcmRlbjsKK+iKseWciCA+IHdyZWF0aDsKK+iFjuiHnyA+IGtpZG5leTsKK+aNleaLvyA+IGFycmVzdDsKK+i3r+eoiyA+IGNvdXJzZTsKK+WFiOWJjSA+IGJlZm9yZTsKK+aGgumssSA+IHN1bGxlbjsKK+mmrOi3ryA+IHN0cmVldDsKK+epl+mjviA+IHRhc3NlbDsKK+WAq+eQhiA+IGV0aGljczsKK+eRnumHkSA+IHJ1aWppbjsKK+aKseeXhSA+IGJlXC1pbGw7CivlgrPmjoggPiBpbXBhcnQ7Civou4rluqsgPiBnYXJhZ2U7CivmuKzph48gPiBzdXJ2ZXk7CivlrZfpppYgPiBwcmVmaXg7CivprZrlpKsgPiBmaXNoZXI7CivnspfliqMgPiBjb2Fyc2U7CivoirHlk6ggPiBnYXJpc2g7CivmiY3og70gPiB0YWxlbnQ7CivovJXlkqwgPiBuaWJibGU7Civmop3ntIsgPiBzdHJpcGU7Civoh7TmrbsgPiBkZWFkbHk7CivlmrTmoLwgPiBzdHJpY3Q7Civmj5LlhaUgPiBpbnNlcnQ7CivmvILnmb0gPiBibGVhY2g7CivmjKvmlZcgPiB0aHdhcnQ7CivotJbph5EgPiByYW5zb207CivnsYPlrZAgPiBiYXNrZXQ7CivooYzmmJ8gPiBwbGFuZXQ7Civlm57mhrYgPiByZWNhbGw7CivlhYnkuq4gPiBicmlnaHQ7Civmv77lmaggPiBmaWx0ZXI7Civnspfkv5cgPiB2dWxnYXI7CivnqYDpoZ4gPiBjZXJlYWw7CivlgbXmn6UgPiBkZXRlY3Q7Civlgrflv4MgPiBncmlldmU7CivlrrnoqLEgPiBwZXJtaXQ7CivmjqflkYogPiBhY2N1c2U7CivoopblrZAgPiBzbGVldmU7CivkvY7oqp4gPiBtdXR0ZXI7CivoirHlhZIgPiBmbG93ZXI7CivonKXonLQgPiBsaXphcmQ7CivmvKPmvKogPiByaXBwbGU7Civlm7rlroggPiBhZGhlcmU7CivlnIvlpJYgPiBhYnJvYWQ7CivmtrLpq5QgPiBsaXF1aWQ7Civog4zoqqYgPiByZWNpdGU7CivmnpXpoK0gPiBwaWxsb3c7CivonJjom5sgPiBzcGlkZXI7CivltI7ltocgPiBydWdnZWQ7CivppJHppJEgPiBwYXN0cnk7CivnlrLmhoogPiBiZWF0ZW47Civkvo3ogIUgPiB3YWl0ZXI7CivppJDpo7IgPiByZXBhc3Q7CivlgrflrrMgPiBpbmp1cmU7Civkv67nkIYgPiByZXBhaXI7CivkvZXomZUgPiB3aGVuY2U7CivmvKvmraUgPiByYW1ibGU7Civkv6HnlKggPiBjcmVkaXQ7CivmtrzpnosgPiBzYW5kYWw7CivmtbfpvpwgPiB0dXJ0bGU7Civlm6DlrZAgPiBmYWN0b3I7Civmi7Pmk4ogPiBib3hpbmc7Civou5/ljJYgPiBzb2Z0ZW47CivlronoqbMgPiBzZXJlbmU7CivlnJ/ljKogPiBiYW5kaXQ7Civmi5TmoLkgPiB1cHJvb3Q7CivmiaPnlZkgPiBkZXRhaW47Civmnb7pm54gPiBncm91c2U7CivpppnolYkgPiBiYW5hbmE7Civpq5jluqYgPiBoZWlnaHQ7Civmp4vku7YgPiBtZW1iZXI7CivllYboq4cgPiBjb25mZXI7CivnlbDmlZkgPiBoZXJlc3k7CivnsKHllq4gPiBzaW1wbGU7Civmo7rmnZAgPiBjb2ZmaW47CivlnLDkuLsgPiBhXC1ob3N0Owor6auY5bGxID4gYWxwaW5lOwor5YOx5L2jID4gZW1wbG95Owor6aOi6aSTID4gaHVuZ2VyOwor55Sf5ravID4gY2FyZWVyOwor5qOu5p6XID4gZm9yZXN0Owor5L2c6ICFID4gYXV0aG9yOwor5oyq5aiBID4gbm9yd2F5Owor5bCL55qEID4gaG9taW5nOwor5Zq05a+GID4gc3RyaWN0Owor5ouY5o2VID4gYXJyZXN0Owor5YGl5bq3ID4gaGVhbHRoOwor6KGo5ZOlID4gY291c2luOwor5pyL6buoID4gY2xpcXVlOwor5re36KGAID4gaHlicmlkOwor6LeL5raJID4gdHJ1ZGdlOwor5YOF5YOFID4gYmFyZWx5Owor5Zue5Y67ID4gcmV0dXJuOwor5ryP5paXID4gZnVubmVsOwor6LOT6KqeID4gb2JqZWN0Owor5Lmz6aCtID4gbmlwcGxlOwor5ru/5pyfID4gZXhwaXJlOwor55CG6KuWID4gdGhlb3J5Owor5LuL6LOqID4gbWVkaXVtOwor562U5qGIID4gYW5zd2VyOwor6ZG/5a2QID4gY2hpc2VsOwor55Sx5pa8ID4gZHVlXC10bzsKK+aKiuafhCA+IGhhbmRsZTsKK+WSjOmiqCA+IGJyZWV6ZTsKK+S9v+eUqCA+IHRvXC11c2U7CivogZjoq4sgPiBlbmdhZ2U7CivmibbmpI0gPiBmb3N0ZXI7CivnkrDnkIMgPiBnbG9iYWw7CivltJfkvY0gPiBhXC1wb3N0Owor5L6/5rGgID4gdXJpbmFsOwor5Zue5L6GID4gcmV0dXJuOwor5ouT5bGVID4gZXhwYW5kOwor5rqq5rWBID4gc3RyZWFtOwor5Zq05Y6yID4gc2V2ZXJlOwor5r2b5ZyoID4gaGlkZGVuOwor6Ii55LiKID4gYWJvYXJkOwor5a6j56ixID4gYXNzZXJ0Owor5ZOA6L6tID4gbGFtZW50Owor5omL5q61ID4gbWV0aG9kOwor5Lm+6YWqID4gY2hlZXNlOwor5pu06auYID4gaGlnaGVyOwor5YGM5aSnID4gc29cLWJpZzsKK+Wuo+ekuiA+IHRvXC12b3c7CivlsI/msKMgPiBzdGluZ3k7Civpq5TliLYgPiBzeXN0ZW07CivmiJDnhp8gPiBtYXR1cmU7CivogozogokgPiBtdXNjbGU7CivkvZznlKggPiBhY3Rpb247Civmir3lsZwgPiBkcmF3ZXI7CivpqZrmgZAgPiBhcHBhbGw7CivmiormiYsgPiBoYW5kbGU7CivmiYvmp40gPiBwaXN0b2w7CivlrrbnlZwgPiBjYXR0bGU7Civnpo/pn7MgPiBnb3NwZWw7CivotbfmupAgPiBvcmlnaW47CivnvqTpq5QgPiBjb2xvbnk7CivkuoLot7MgPiBib3VuY2U7CivnlLflt6sgPiB3aXphcmQ7Civohr3lpKcgPiBkYXJpbmc7CivlronnpaUgPiBzZXJlbmU7CivnrZTlvqkgPiBhbnN3ZXI7Civot5/lvp4gPiBmb2xsb3c7CivlgaXlhaggPiByb2J1c3Q7CivmoLnmupAgPiBvcmlnaW47Civog73mupAgPiBlbmVyZ3k7CivmnKzouqsgPiBpdHNlbGY7Civmi4zlmLQgPiBiaWNrZXI7CivmiZPmk4ogPiB0b1wtaGl0Owor5oeJ55W2ID4gc2hvdWxkOwor5omj5oq8ID4gZGV0YWluOwor56yo5ouZID4gY2x1bXN5Owor5YCL5a2QID4gaGVpZ2h0Owor5oeJ55SoID4gdG9cLXVzZTsKK+eRleeWtSA+IHN0aWdtYTsKK+abnemcsiA+IGV4cG9zZTsKK+a1t+ijoSA+IG1hcmluZTsKK+WRs+mBkyA+IGZsYXZvcjsKK+aJi+aMhyA+IGZpbmdlcjsKK+aKiuWtkCA+IGhhbmRsZTsKK+engeiqniA+IG11cm11cjsKK+mkiuiCsiA+IGZvc3RlcjsKK+acgOi/kSA+IHJlY2VudDsKK+a4heeYpiA+IG1lYWdlcjsKK+a0u+i6jSA+IGFjdGl2ZTsKK+WyuOS4iiA+IGFzaG9yZTsKK+aIkOaenCA+IHJlc3VsdDsKK+S4remAlCA+IG1pZHdheTsKK+mggum7niA+IHN1bW1pdDsKK+aatOmcsiA+IGV4cG9zZTsKK+eqgeeEtiA+IHN1ZGRlbjsKK+acqOijvSA+IHdvb2RlbjsKK+WuieeEtiA+IHNhZmVseTsKK+mjouiNkiA+IGZhbWluZTsKK+i2vuWwliA+IHRpcHRvZTsKK+adn+iFsCA+IGdpcmRsZTsKK+WuruauvyA+IHBhbGFjZTsKK+adv+e1kCA+IGhhcmRlbjsKK+S+m+aHiSA+IHN1cHBseTsKK+S/oeWliSA+IGJlbGllZjsKK+aIkOaViCA+IGVmZmVjdDsKK+eTtuWtkCA+IGJvdHRsZTsKK+S4iemHjSA+IHRyZWJsZTsKK+WuouawoyA+IHBvbGl0ZTsKK+a1ruiRlyA+IGFmbG9hdDsKK+WqkuizqiA+IG1lZGl1bTsKK+iuium7kSA+IGRhcmtlbjsKK+WtpOeNqCA+IGxvbmVseTsKK+a4oOa6nSA+IHRyZW5jaDsKK+iDoeakkiA+IHBlcHBlcjsKK+a1ruiPryA+IHZhbml0eTsKK+mngeaWpSA+IHJlZnV0ZTsKK+S4jemBqSA+IHVud2VsbDsKK+e+nui+sSA+IGJhZmZsZTsKK+eVmeS4iyA+IHJlbWFpbjsKK+S4iumCiiA+IHVwc2lkZTsKK+mPoeWtkCA+IG1pcnJvcjsKK+iDoeahgyA+IHdhbG51dDsKK+mPn+WtkCA+IHNob3ZlbDsKK+WwgeW7uiA+IGZldWRhbDsKK+aenOecnyA+IHJlYWxseTsKK+WSjOiXuSA+IGtpbmRseTsKK+m4mum1oSA+IHBhcnJvdDsKK+epv+a0niA+IHBpZXJjZTsKK+WvuuW7nyA+IHRlbXBsZTsKK+eQhueUsSA+IHJlYXNvbjsKK+i2s+WkoCA+IGVub3VnaDsKK+iVgem6uyA+IG5ldHRsZTsKK+WuouajpyA+IHRhdmVybjsKK+WvtuW6pyA+IHRocm9uZTsKK+WPqemgrSA+IGtvd3RvdzsKK+aIv+WuoiA+IHRlbmFudDsKK+esrOWbmyA+IGZvdXJ0aDsKK+mHjumkkCA+IHBpY25pYzsKK+WwiOWutiA+IGV4cGVydDsKK+afs+aouSA+IHdpbGxvdzsKK+eUseS+hiA+IG9yaWdpbjsKK+S9v+W+lyA+IHVzYWJsZTsKK+a8guS6riA+IHByZXR0eTsKK+WXk+WtkCA+IHRocm9hdDsKK+icg+aZryA+IG1pcmFnZTsKK+mHjemfsyA+IGFjY2VudDsKK+WPjemngSA+IHJldG9ydDsKK+WwkeWlsyA+IG1haWRlbjsKK+eUseS6jiA+IGR1ZVwtdG87Civmtbfntr8gPiBzcG9uZ2U7CivnkIPni4AgPiBzcGhlcmU7CivnlKjkuo4gPiB1c2VcLWluOwor5oeJ5pyJID4gcHJvcGVyOwor6LKn55igID4gYmFycmVuOwor6Jmf56K8ID4gbnVtYmVyOwor5pma6aOvID4gc3VwcGVyOwor6LOt5rOoID4gc3Rha2VzOwor56We6KutID4gb3JhY2xlOwor5oSa56yoID4gc3R1cGlkOwor5p6c54S2ID4gcmVhbGx5Owor5LiN6KaBID4gZG9uJyd0XCE7CivmnZDnqY0gPiB2b2x1bWU7CivmiYHlnJMgPiBvYmxhdGU7Civpu4PoibIgPiB5ZWxsb3c7Civlj67piLQgPiBqaW5nbGU7CivnrKzlhasgPiBlaWdodGg7CivlsYXkvY8gPiByZXNpZGU7CivlrbjmoKEgPiBzY2hvb2w7CivkuIrooasgPiBibG91c2U7Civms6LosLcgPiB0cm91Z2g7CivkuIrooaMgPiBqYWNrZXQ7Civlr7bloZQgPiBwYWdvZGE7CivlrqLmiLYgPiBjbGllbnQ7CivnqpfmiLYgPiB3aW5kb3c7Civlrrbluq0gPiBmYW1pbHk7Civph43ph48gPiB3ZWlnaHQ7Civmn4/mnpcgPiBiZXJsaW47CivmnInnvaogPiBndWlsdHk7CivpjbXluL0gPiBrZXljYXA7CivlsI/ljIUgPiBwYWNrZXQ7CivkuqjnibkgPiBodW50ZXI7CivnqY3mpbUgPiBhY3RpdmU7CivmiZPlgrcgPiBicnVpc2U7CivpoIHpgoogPiBtYXJnaW47CivmiYvlhoogPiBtYW51YWw7Civlr4Llr54gPiBsb25lbHk7Civmtbfnm5wgPiBwaXJhdGU7Civog4zlvowgPiBiZWhpbmQ7CivniZnpvZIgPiBkZW50YWw7CivkvZzlrrYgPiBhdXRob3I7CivlkI3oqIAgPiBzYXlpbmc7Civmma7pgJogPiBjb21tb247CivogIDnnLwgPiBkYXp6bGU7CivkuLvnt6ggPiBlZGl0b3I7CivmuK/lvY4gPiBoYXJib3I7Civog4zluLYgPiBicmFjZXM7Civniq/pjK8gPiB0b1wtZXJyOwor6IGW5q6/ID4gdGVtcGxlOwor5pq06JmQID4gYnJ1dGFsOwor5rOi6JitID4gcG9sYW5kOwor6aeB5ZueID4gcmVqZWN0Owor5oiQ5ZOhID4gbWVtYmVyOwor5oOz552hID4gZHJvd3N5Owor5pif6ZuyID4gbmVidWxhOwor6K6K6LufID4gc29mdGVuOwor5LiN6IO9ID4gY2Fubm90Owor5rW354u4ID4gYmVhdmVyOwor5L6d5YGOID4gbmVzdGxlOwor5oak5oWoID4gcmVzZW50Owor5oem5aSrID4gY293YXJkOwor5LyR5oOcID4gcmVjZXNzOwor6JOs6ayGID4gZmx1ZmZ5Owor5Y+v6KaqID4ga2luZGx5Owor56OB6ZC1ID4gbWFnbmV0Owor6aCY6KKWID4gbGVhZGVyOwor5LiN576IID4gdW5ydWx5Owor5qCh5ZySID4gY2FtcHVzOwor5oiQ5YujID4gcmVzdWx0Owor56We6IGWID4gZGl2aW5lOwor5Lit562JID4gbWVkaXVtOwor6K6K6LOqID4gZ29cLWJhZDsKK+e+iuiCiSA+IG11dHRvbjsKK+a2iOa7hSA+IHBlcmlzaDsKK+WWieWaqCA+IHRocm9hdDsKK+aAp+izqiA+IG5hdHVyZTsKK+WQiuiRlyA+IGRhbmdsZTsKK+afseWtkCA+IHBpbGxhcjsKK+a4heW7iSA+IGhvbmVzdDsKK+WNsemaqiA+IGRhbmdlcjsKK+WuieWumiA+IHN0YWJsZTsKK+aGjuaDoSA+IGxvYXRoZTsKK+WPo+iiiyA+IHBvY2tldDsKK+aGjuaBqCA+IGRldGVzdDsKK+WWnOWKhyA+IGNvbWVkeTsKK+WvkuWGrCA+IHdpbnRyeTsKK+iytuaWpSA+IGRlbW90ZTsKK+WlrumspSA+IHN0cml2ZTsKK+WWruS9jSA+IGFcLXVuaXQ7CivmnInnlKggPiB1c2VmdWw7CivnkIPmi40gPiByYWNrZXQ7Civlj6XomZ8gPiBwZXJpb2Q7Civlj6PomZ8gPiBzbG9nYW47CivnqanlrpogPiBzdGFibGU7Civllq7kuIAgPiBzaW5nbGU7CivlrZDlvYggPiBidWxsZXQ7Civlronln7kgPiBhbXBlcmU7CivnoazpoJggPiBjb2xsYXI7CivpoYbnspIgPiBrZXJuZWw7Civpo5/mp70gPiBtYW5nZXI7CivlqpLnlYwgPiBtZWRpdW07CivmnKzmupAgPiBvcmlnaW47CivlrrDlibIgPiBpbnZhZGU7Civog4zlj5sgPiBiZXRyYXk7CivotJblm54gPiByZWRlZW07Civms6LntIsgPiByaXBwbGU7Civnqpflj6MgPiB3aW5kb3c7CivnjajnibkgPiB1bmlxdWU7CivlrZflsL4gPiBzdWZmaXg7CivnpZ7npL4gPiBzaHJpbmU7Civolaroj4EgPiB0dXJuaXA7CivmsrnohIIgPiBncmVhc2U7CivpnZvpnZIgPiBpbmRpZ287CivpnqDouqwgPiB0b1wtYm93Owor6YeR6ImyID4gZ29sZGVuOwor5Y236Lu4ID4gc2Nyb2xsOwor5aSn6bqlID4gYmFybGV5Owor6bWT6bS/ID4gcGlnZW9uOwor5a6k5YWnID4gaW5kb29yOwor5L2V5LulID4gd2hlbmNlOwor5Y+X6IumID4gc3VmZmVyOwor5Ly45Ye6ID4gZXh0ZW5kOwor5LiA556lID4gZ2xhbmNlOwor5Lyv5YueID4gc2hyaWtlOwor5rS75r2RID4gbGl2ZWx5Owor5pas6aaWID4gYmVoZWFkOwor6LOT5a6iID4gZ3Vlc3RzOwor5YyV6aaWID4gZGFnZ2VyOwor55Ge5YW4ID4gc3dlZGVuOwor6Kyb6YGTID4gcHJlYWNoOwor6by75oGvID4gYnJlYXRoOwor6KyZ6YGcID4gaHVtYmxlOwor6LKq5b+DID4gZ3JlZWR5Owor6LSK5ZCMID4gYXNzZW50Owor6JaE57SZID4gdGlzc3VlOwor5oK254axID4gc3VsdHJ5Owor6aCS57WmID4gY29uZmVyOwor6K6a576OID4gYWRtaXJlOwor54++5a2YID4gZXh0YW50Owor6aSQ5be+ID4gbmFwa2luOwor5Lul5aSqID4gZXRoZXJcLTsKK+aFi+W6piA+IG1hbm5lcjsKK+WltumFqiA+IGNoZWVzZTsKK+eLueeqhCA+IG5hcnJvdzsKK+eRo+S6iyA+IHRyaWZsZTsKK+iAgeaYryA+IGFsd2F5czsKK+iVg+iMhCA+IHRvbWF0bzsKK+iyoeW4myA+IHdlYWx0aDsKK+mgkOeulyA+IGJ1ZGdldDsKK+mdkumKhSA+IGJyb256ZTsKK+W/mOiomCA+IGZvcmdldDsKK+mgkeerpSA+IHVyY2hpbjsKK+a3t+WQiCA+IHRvXC1taXg7CivmnIPmrbsgPiBtb3J0YWw7CivkuI3nhLYgPiBub3RcLXNvOwor6K6A6ICFID4gcmVhZGVyOwor5rSq5rC0ID4gZGVsdWdlOwor5oSf5oWoID4gbGFtZW50Owor6LOt5Y2aID4gZ2FtYmxlOwor5LqL5oOFID4gYWZmYWlyOwor5a2Y5Y+WID4gYWNjZXNzOwor5pyo5paZID4gbHVtYmVyOwor6LKh5a+MID4gd2VhbHRoOwor5rex5YyWID4gZGVlcGVuOwor5pa56YedID4gcG9saWN5Owor6aCC56uvID4gc3VtbWl0Owor5aaW6KiAID4gaGVyZXN5Owor54++5ZyoID4gbW9kZXJuOwor6K6K57SFID4gcmVkZGVuOwor5ZCN55SiID4gc3RhcGxlOwor5piG6J+yID4gaW5zZWN0Owor5b6M6YKKID4gYmVoaW5kOwor54yW54uCID4gc2F2YWdlOwor5a2k5YWSID4gb3JwaGFuOwor5reo5YyWID4gcHVyaWZ5Owor5b6M6YCAID4gcmVjb2lsOwor54mh6KCjID4gb3lzdGVyOwor5Lq65aOrID4gcGVyc29uOwor6IG35YuZID4gYVwtcG9zdDsKK+eJh+iqniA+IHBocmFzZTsKK+awkeisoCA+IGJhbGxhZDsKK+eMm+eDiCA+IGZpZXJjZTsKK+a1geaYnyA+IG1ldGVvcjsKK+aCsuatjiA+IGJld2FpbDsKK+WtmOWEsiA+IG1lbW9yeTsKK+S7peWJjSA+IGJlZm9yZTsKK+ixoeW+tSA+IGVtYmxlbTsKK+S4jeavmyA+IGJhcnJlbjsKK+S4jeavlCA+IHVubGlrZTsKK+ixoeW+gSA+IHN5bWJvbDsKK+avl+mAoyA+IGFkam9pbjsKK+Wkp+mMmCA+IHNsZWRnZTsKK+acgOaWsCA+IGxhdGVzdDsKK+ayu+eQhiA+IGdvdmVybjsKK+S4u+aVmSA+IGJpc2hvcDsKK+ismeiZmyA+IG1vZGVzdDsKK+eItuimqiA+IGZhdGhlcjsKK+iZleWlsyA+IHZpcmdpbjsKK+izo+S4uyA+IHNlbGxlcjsKK+e+iuavmyA+IGZsZWVjZTsKK+aUvumshiA+IGxvb3NlbjsKK+WQq+awtCA+IHdhdGVyeTsKK+enmOWvhiA+IHNlY3JldDsKK+iZleWigyA+IHBsaWdodDsKK+itsOeoiyA+IGFnZW5kYTsKK+eLoeeMviA+IGNyYWZ0eTsKK+eOi+W6pyA+IHRocm9uZTsKK+aDoeaEjyA+IG1hbGljZTsKK+W8hOmrkiA+IGRlZmlsZTsKK+acrOW3niA+IGhvbnNodTsKK+WssOWFkiA+IGluZmFudDsKK+iWquawtCA+IHNhbGFyeTsKK+eNuOaApyA+IGJydXRhbDsKK+aVuOmHjyA+IGFtb3VudDsKK+aWt+iogCA+IGFmZmlybTsKK+aXheihjCA+IHRyYXZlbDsKK+a1quWtkCA+IGxvYWZlcjsKK+acieaEjyA+IGludGVuZDsKK+eni+WtoyA+IGF1dHVtbjsKK+WQjea1gSA+IGdlbnRyeTsKK+WPsOeBoyA+IHRhaXdhbjsKK+S4jeaZuiA+IHVud2lzZTsKK+WmguiNiSA+IGdyYXNzeTsKK+aVhemanCA+IGdsaXRjaDsKK+mhmOacmyA+IGRlc2lyZTsKK+WQiOazlSA+IGxhd2Z1bDsKK+WQjeawoyA+IHJlcHV0ZTsKK+Wkp+i3ryA+IGF2ZW51ZTsKK+a1t+WgsSA+IHBvc3RlcjsKK+ipnumgrSA+IHByZWZpeDsKK+S6puWNsyA+IG5hbWVseTsKK+WTgOWYhiA+IGxhbWVudDsKK+eOi+WtkCA+IHByaW5jZTsKK+e4q+mHnSA+IG5lZWRsZTsKK+aur+i7iiA+IGhlYXJzZTsKK+mGq+eUnyA+IGRvY3RvcjsKK+eni+WkqSA+IGF1dHVtbjsKK+S6uuWAkSA+IHBlb3BsZTsKK+aaluawoyA+IGhlYXRlcjsKK+enu+WLlSA+IG1vYmlsZTsKK+WQuOaUtiA+IGFic29yYjsKK+aEj+WcliA+IGludGVudDsKK+W8t+i/qyA+IGNvbXBlbDsKK+mhq+aKliA+IHF1aXZlcjsKK+e3o+mjviA+IGZyaW5nZTsKK+S4reW/gyA+IGNlbnRlcjsKK+aClOaUuSA+IHJlcGVudDsKK+WRqOW5tCA+IGFubnVhbDsKK+WPo+a4tCA+IHRoaXJzdDsKK+mHneazlSA+IHN0aXRjaDsKK+a2iOWMliA+IGRpZ2VzdDsKK+ato+mWgCA+IHBvcnRhbDsKK+a1t+WToSA+IHNhaWxvcjsKK+S6jOWNgSA+IHR3ZW50eTsKK+WQkOaguSA+IGlwZWNhYzsKK+mbmemHjSA+IGRvdWJsZTsKK+mdkuiLlCA+IGxpY2hlbjsKK+WkmuiuiiA+IGZpY2tsZTsKK+aymea8oCA+IGRlc2VydDsKK+mJi+W6iiA+IHBsYW5lcjsKK+W7tumVtyA+IGV4dGVuZDsKK+WQjeacmyA+IHJlbm93bjsKK+WPlua2iCA+IGNhbmNlbDsKK+WmqOekmSA+IGhpbmRlcjsKK+S6pOS6kiA+IG11dHVhbDsKK+mCo+mCiiA+IHlvbmRlcjsKK+atuOmChCA+IHJldHVybjsKK+WKiOmWiyA+IGNsZWF2ZTsKK+mFkueqqSA+IGRpbXBsZTsKK+WSluWVoSA+IGNvZmZlZTsKK+eerOmWkyA+IG1vbWVudDsKK+WLleitsCA+IG1vdGlvbjsKK+mZsOmssSA+IGdsb29teTsKK+aUvumAkCA+IGJhbmlzaDsKK+mFjeeosSA+IHdvcnRoeTsKK+a0u+WhniA+IHBpc3RvbjsKK+acquWPryA+IGNhbm5vdDsKK+WkluihjCA+IGxheW1hbjsKK/ClnIwgPiBhXC1jb2F0Owor5p2P5LuBID4gYWxtb25kOwor56KO55+zID4gZ3JhdmVsOwor6aCQ5pyfID4gZXhwZWN0Owor5pu05aW9ID4gYmV0dGVyOwor5oSb5Lq6ID4gc3BvdXNlOwor6ZqG6ZqGID4gcnVtYmxlOwor56eJ5YWsID4ganVzdGx5Owor56ax5ZGKID4gcHJheWVyOwor5pu05aSnID4gYmlnZ2VyOwor5pyd5ZCRID4gdG93YXJkOwor5Lmd5Y2BID4gbmluZXR5Owor56C06IiKID4gc2hhYmJ5Owor5LiA5bi2ID4gcmVnaW9uOwor6aGn5a6iID4gY2xpZW50Owor5Y+i5p6XID4ganVuZ2xlOwor56Kn546JID4gamFzcGVyOwor8KWlhSA+IGFcLWhvbGU7Civlj6rmmK8gPiBtZXJlbHk7CivnjLTlrZAgPiBtb25rZXk7CivwoqaPID4gdG9cLWN1dDsKK+map+mBkyA+IHR1bm5lbDsKK+aDoeWMliA+IHdvcnNlbjsKK+acqOWBtiA+IHB1cHBldDsKK+acg+WToSA+IG1lbWJlcjsKK+S4gOWxgCA+IGlubmluZzsKK+acieWQjSA+IGZhbW91czsKK+aci+WPiyA+IGZyaWVuZDsKK+iPjOmhniA+IGZ1bmd1czsKK+S4gOWwjSA+IGNvdXBsZTsKK+ehq+ejuiA+IHN1bGZ1cjsKK+acquS+hiA+IGZ1dHVyZTsKK+S4gOWumiA+IHN1cmVseTsKK+mBremBhyA+IGJlZmFsbDsKK+S5i+WJjSA+IGJlZm9yZTsKK+e9t+W3pSA+IHN0cmlrZTsKK+mEiee0syA+IHNxdWlyZTsKK+ipreioiCA+IGRlY2VpdDsKK+ixgeWFjSA+IGV4ZW1wdDsKK+a1geWIqSA+IGZsdWVudDsKK+aAp+agvCA+IG5hdHVyZTsKK+a0u+WKmyA+IGVuZXJneTsKK+iuiuabtCA+IGNoYW5nZTsKK+W/g+eQhiA+IG1lbnRhbDsKK+iuiuaalyA+IGRhcmtlbjsKK+eJoueJoiA+IGZpcm1seTsKK+miqOS/lyA+IGN1c3RvbTsKK+e3o+i1tyA+IG9yaWdpbjsKK+iomOmMhCA+IHJlY29yZDsKK/CggIkgPiBhXC1oaWxsOwor5Ym16L6mID4gbGF1bmNoOwor5pqX5b2xID4gc2hhZG93Owor6ZqK6YOoID4gb2ZmaWNlOwor6K6a5o+aID4gcHJhaXNlOwor5Lme5LiQID4gYmVnZ2FyOwor6YGO6YePID4gZXhjZXNzOwor54aU6KejID4gZnVzaW9uOwor6ZqY6LevID4gZGVmaWxlOwor6YKA6KuLID4gaW52aXRlOwor5b6q55KwID4gY2lyY2xlOwor5pm65oWnID4gd2lzZG9tOwor54215Lq6ID4gaHVudGVyOwor5oGQ5oCWID4gdGVycm9yOwor5paR57SLID4gc3RyaXBlOwor55+z6IuxID4gcXVhcnR6Owor5YyF566hID4gYXNzdXJlOwor6YW15q+NID4gbGVhdmVuOwor6Kej6ZmkID4gcmVtb3ZlOwor5YuV6ISIID4gYXJ0ZXJ5Owor5pyA5L2OID4gbG93ZXN0Owor56Wt5Y+4ID4gcHJpZXN0Owor54m55q2kID4gaGVyZWJ5Owor6ZuM6JWKID4gcGlzdGlsOwor5aSp56+3ID4gY2Fub3B5Owor5bmy6aCQID4gbWVkZGxlOwor5YyW55+zID4gZm9zc2lsOwor5LiN5Y+vID4gY2Fubm90Owor5rC05rOlID4gY2VtZW50Owor5rC05rOhID4gYnViYmxlOwor6K2m5pa5ID4gcG9saWNlOwor54i454i4ID4gZmF0aGVyOwor6JOL54i+ID4gZ2FlbGljOwor5YmN6LypID4gc2VuaW9yOwor6KiY6LW3ID4gcmVjYWxsOwor5LiJ5Y2BID4gdGhpcnR5Owor57mD57CnID4gc3ByaW5nOwor5pKk6ZmkID4gcmVtb3ZlOwor6Yem5a2QID4gYnV0dG9uOwor5b2I57CnID4gc3ByaW5nOwor5Ymv6KmeID4gYWR2ZXJiOwor54mb5rK5ID4gYnV0dGVyOwor6Kqy56iLID4gY291cnNlOwor5bm06ZW3ID4gc2VuaW9yOwor5oCn5oOFID4gbmF0dXJlOwor57eo6JmfID4gbnVtYmVyOwor5rCj5rOhID4gYnViYmxlOwor5Y2x5qmfID4gY3Jpc2lzOwor5LiN5YWsID4gdW5qdXN0Owor5bqV6YOoID4gYm90dG9tOwor5LiN5YWLID4gY2Fubm90Owor5rOV5ZyLID4gZnJhbmNlOwor5rKJ5oCdID4gcG9uZGVyOwor5pqX5aChID4gYnVua2VyOwor54uX5bGLID4ga2VubmVsOwor5pq05ZCbID4gdHlyYW50Owor5Ye56Zm3ID4gaG9sbG93Owor5LiJ5YCNID4gdHJpcGxlOwor5aSn55y+ID4gcGVvcGxlOwor6Zyc55m9ID4gZnJvc3R5Owor5ZCm5YmHID4gaWZcLW5vdDsKK+WIhumQmCA+IG1pbnV0ZTsKK+mgmOWfnyA+IGRvbWFpbjsKK+iRrOemriA+IGJ1cmlhbDsKK+awtOahtiA+IGJ1Y2tldDsKK+aSpOmKtyA+IHJlcGVhbDsKK+WQiOWUsSA+IGNob3J1czsKK+mGq+W4qyA+IGRvY3RvcjsKK+WPjeWwhCA+IHJlZmxleDsKK+S4jeS4uSA+IGJodXRhbjsKK+aVrOemriA+IHNhbHV0ZTsKK+mdnua0siA+IGFmcmljYTsKK+mAmui3ryA+IGFjY2VzczsKK+e+juS6uiA+IGJlYXV0eTsKK+isgOauuiA+IG11cmRlcjsKK+e9t+WFjSA+IHJlY2FsbDsKK+iogOiqniA+IHNwZWVjaDsKK+WJneidlSA+IGRlbnVkZTsKK+mAgOmChCA+IHJldHVybjsKK+aVuOebriA+IGFtb3VudDsKK+WPrOWbniA+IHJlY2FsbDsKK+egtOeImyA+IHJhZ2dlZDsKK+S4gOS4siA+IHN0cmFuZDsKK+e6luavmyA+IGNpbGl1bTsKK+aAp+WtkCA+IHRlbXBlcjsKK+i/vemAkCA+IGNoYXNlOwor6YCV6LO9ID4gdHJhY2s7CivpnZzmraIgPiBzdGlsbDsKK+W3tOm7jiA+IHBhcmlzOwor5bm06LyVID4geW91bmc7Civov7Tpgb8gPiBhdm9pZDsKK+iSuOaxvSA+IHN0ZWFtOwor5qyK6KGhID4gd2VpZ2g7CivpgYrolakgPiBzdHJheTsKK+W8hOeznyA+IHNwb2lsOwor5oGp5YW4ID4gZ3JhY2U7CivlpKfniLogPiB1bmNsZTsKK+aXpeacrCA+IGphcGFuOwor5Y+v5Y+vID4gY29jb2E7Civlj6/lj6MgPiB0YXN0eTsKK+W7tue3qSA+IGRlZmVyOwor57eo57mUID4gd2VhdmU7CivljZfmlrkgPiBzb3V0aDsKK+e9ruS6jiA+IHBsYWNlOwor5aeq5aWzID4gbmllY2U7CivpmbfokL0gPiBzbHVtcDsKK+eJm+aOkiA+IHN0ZWFrOwor6Zqx57SEID4gdmFndWU7Civpr6jprZogPiB3aGFsZTsKK+WQiOS9tSA+IGFubmV4Owor6K235aOrID4gbnVyc2U7Civms4rkvY0gPiBiZXJ0aDsKK+mBiuiJhyA+IGJhcmdlOwor6Zec6ZaJID4gY2xvc2U7CivpmbDojpYgPiBwZW5pczsKK+aZuuWIqSA+IGNoaWxlOwor57ea57SiID4gdHJhaWw7Civlo5Pnoo4gPiBjcnVzaDsKK+WOn+WniyA+IGZpcnN0Owor5q+P5q+PID4gb2Z0ZW47Civlj43lj5sgPiByZWJlbDsKK+mfk+WciyA+IGtvcmVhOwor6ZuZ55SfID4gdHdpbnM7Civnm7jphY0gPiBtYXRjaDsKK+WNsOW6piA+IGluZGlhOwor55+z54uAID4gc3Rvbnk7Civov4XpgJ8gPiByYXBpZDsKK+W5vOifsiA+IGxhcnZhOwor6a+K6a2aID4gc2hhcms7CivliKXomZ8gPiBhbGlhczsKK+e2oOiJsiA+IGdyZWVuOwor5byV55SoID4gcXVvdGU7Civnm7jov5EgPiBjbG9zZTsKK+W4gumVtyA+IG1heW9yOwor54iQ5p62ID4gZ3JhdGU7CivmqZ/pl5wgPiBvcmdhbjsKK+asiuiDvSA+IHBvd2VyOwor5Y6f5ZugID4gY2F1c2U7CivmgKXliocgPiByYXBpZDsKK+Wkp+asiiA+IHBvd2VyOwor6bSJ54mHID4gb3BpdW07CivoqJPnt7QgPiBkcmlsbDsKK+WMl+aWuSA+IG5vcnRoOwor6KuW5paHID4gcGFwZXI7CivmlL7niacgPiBncmF6ZTsKK+WKn+eOhyA+IHBvd2VyOwor5q+P5pelID4gZGFpbHk7CivlpZfmiL8gPiBzdWl0ZTsKK+mBleekmSA+IHRhYm9vOwor5YSq6bueID4gbWVyaXQ7CivlvpjlvoogPiBob3ZlcjsKK+imluimuiA+IHNpZ2h0Owor5pON57e0ID4gZHJpbGw7CivlvLfmrIogPiBwb3dlcjsKK+WIgOiRiSA+IGJsYWRlOwor5pGp6KW/ID4gbW9zZXM7CivorablgpkgPiBndWFyZDsKK+iqsuaZgiA+IGNsYXNzOwor5b2X5pifID4gY29tZXQ7CivmkKzpgYsgPiBjYXJyeTsKK+mdkuW5tCA+IHlvdXRoOwor5qiZ6aGMID4gdGl0bGU7Civmj5Dpq5ggPiByYWlzZTsKK+awqOWfuiA+IGFtaW5vOwor5aSc5pmaID4gbmlnaHQ7CivnhrHmsKMgPiBzdGVhbTsKK+apn+i7uCA+IGFyYm9yOwor6YaS5L6GID4gd2FrZW47CivlpbPlrZAgPiB3b21hbjsKK+mWgOmWgiA+IGxhdGNoOwor5b6A5b6AID4gb2Z0ZW47Civok4vlrZAgPiBjb3ZlcjsKK+mdiOW3pyA+IGhhbmR5Owor5YWD6Z+zID4gdm93ZWw7CivlhYvpmoYgPiBjbG9uZTsKK+aVtOaVtCA+IHdob2xlOwor5Yyv5a+EID4gcmVtaXQ7CivliYHnoo4gPiBtaW5jZTsKK+iqv+aDhSA+IGZsaXJ0Owor5Zyw6bueID4gcGxhY2U7CivmlbLmk4ogPiBwb3VuZDsKK+WMhuW/mSA+IGhhc3R5Owor5q+b5be+ID4gdG93ZWw7CivoirPpppkgPiBiYWxteTsKK+W5tOe0miA+IGdyYWRlOwor5byP5qijID4gc3R5bGU7Civopa/ooasgPiBzaGlydDsKK+ilr+ihoyA+IHNoaXJ0Owor5Y2w5Yi3ID4gcHJpbnQ7CivmlaPmlocgPiBwcm9zZTsKK+ippuaooyA+IHN0eWxlOwor5YWo6YOoID4gd2hvbGU7Civnn63mmqsgPiBzaG9ydDsKK+ilv+iXjyA+IHRpYmV0Owor5YuV5pCWID4gd2F2ZXI7Civnh4PmlL4gPiBsaWdodDsKK+eBq+i7iiA+IHRyYWluOwor5bel6LOHID4gd2FnZXM7Civli4fmlaIgPiBicmF2ZTsKK+atu+advyA+IHJpZ2lkOwor55+b5p+EID4gc2hhZnQ7Civplbfph5ggPiBzcGlrZTsKK+atpeanjSA+IHJpZmxlOwor5Yi755eVID4gbm90Y2g7CivlhKrpm4UgPiBncmFjZTsKK+mBuOawkSA+IHZvdGVyOwor6a2U6ay8ID4gZGV2aWw7CivmlrDlqJggPiBicmlkZTsKK+WkvuWtkCA+IGNyYW1wOwor6Kyg5YKzID4gcnVtb3I7CivmlrDlpYcgPiBub3ZlbDsKK+WgseetlCA+IHJlcGF5Owor54Wk5rijID4gc2xhY2s7CivpgormoYYgPiBmcmFtZTsKK+iKsemWiyA+IGJsb29tOwor54mp5Li7ID4gb3duZXI7CivlvYjlvJMgPiBzbGluZzsKK+WgseeqqSA+IGJyb29kOwor5pO65rihID4gZmVycnk7Civpm7vlvbEgPiBtb3ZpZTsKK+aRuOe0oiA+IGdyb3BlOwor6ay86a2CID4gZ2hvc3Q7CivpgJ/njocgPiBzcGVlZDsKK+egtOWjniA+IHdyZWNrOwor57SE6I6rID4gYWJvdXQ7Civlo4HmnrYgPiBsZWRnZTsKK+majuautSA+IHN0YWdlOwor5aSi5a+QID4gZHJlYW07Civlu7bmnJ8gPiBkZWxheTsKK+WNgeWIhiA+IGZ1bGx5Owor5Yue5belID4gbGFib3I7CivlnJjpq5QgPiBncm91cDsKK+WcsOmdoiA+IGZsb29yOwor6Ku35Yi6ID4gaXJvbnk7Civnmb3osrsgPiB3YXN0ZTsKK+mBi+aysyA+IGNhbmFsOwor5YWr6KeSID4gYW5pc2U7CivpmbDmtrwgPiBzaGFkeTsKK+aTpua0lyA+IHNjb3VyOwor54ax5b+xID4gYXJkb3I7CivpmL/niYcgPiBvcGl1bTsKK+eEmeeHkiA+IHJvYXN0Owor5aWz5Lq6ID4gd29tYW47CivntqDmtLIgPiBvYXNpczsKK+iovOaYjiA+IHByb3ZlOwor55u4562JID4gZXF1YWw7CivlhJ/pgoQgPiByZXBheTsKK+avkuWTgSA+IGRydWdzOwor5Zu66auUID4gc29saWQ7Civopo/nqIsgPiBydWxlczsKK+ebtOeriyA+IGVyZWN0Owor5YOn6ZmiID4gYWJiZXk7CivoqLzmk5ogPiBwcm9vZjsKK+aOqOmBuCA+IGVsZWN0Owor5q+b5Yi3ID4gYnJ1c2g7CivprI3prJogPiBiZWFyZDsKK+aOqOmAsiA+IGltcGVsOwor6Zec56+AID4gam9pbnQ7Civlg7npjKIgPiBwcmljZTsKK+WIh+eJhyA+IHNsaWNlOwor6Imm6ZqKID4gZmxlZXQ7CivlvLflpKcgPiBsYXJnZTsKK+ecn+eQhiA+IHRydXRoOwor5q+U5YiGID4gc2NvcmU7Civmk7Hmnb8gPiBzaGVsZjsKK+WJm+aenCA+IGNvbmdvOwor5Ymq5pa3ID4gc2hlYXI7CivngavoirEgPiBzcGFyazsKK+W9seWDjyA+IGltYWdlOwor55uc56uKID4gc3RlYWw7CivmqJnomZ8gPiBncmFkZTsKK+i/t+a/myA+IG1pc3R5Owor552h5qSFID4gY291Y2g7CivliqDlr6wgPiB3aWRlbjsKK+mch+WLlSA+IHNoYWtlOwor6Kqq5Ye6ID4gdXR0ZXI7CivoqIjmlbggPiBjb3VudDsKK+a+s+mWgCA+IGFvbWVuOwor5o6o6KuWID4gaW5mZXI7Civns6Lns4ogPiBmb2dneTsKK+avj+S4gCA+IGV2ZXJ5Owor5Yui5YqbID4gcG93ZXI7Civnt57luIMgPiBzYXRpbjsKK+WLleWQkSA+IHRyZW5kOwor5aSp5L2/ID4gYW5nZWw7CivopJDoibIgPiBicm93bjsKK+mshumWiyA+IGxvb3NlOwor5qu45pyoID4gYmVlY2g7Civpg6jku7YgPiBwYXJ0czsKK+eDmOeDpCA+IHJvYXN0Owor6LuM6YGTID4gb3JiaXQ7CivploPogIAgPiBnbGludDsKK+iHrem8rCA+IHNrdW5rOwor5YSy6JePID4gc3RvcmU7Civmk6bmi60gPiBjbGVhbjsKK+eWvumiqCA+IGJsYXN0Owor5pSk5a2QID4gYm9vdGg7CivlpKfkurogPiBhZHVsdDsKK+WKn+WkqyA+IHNraWxsOwor5YuV5YqbID4gcG93ZXI7Civnm7jniYcgPiBpbWFnZTsKK+mrkumrkiA+IGRpcnR5Owor54eZ5YK3ID4gc2NhbGQ7CivlnYfooaEgPiBlcXVhbDsKK+WHuuaykiA+IGhhdW50Owor6YGT5b63ID4gbW9yYWw7Civop7jmkbggPiB0b3VjaDsKK+eZvOiBsiA+IHZvY2FsOwor6ZW36ICBID4gZWxkZXI7CivmqLnnsawgPiBoZWRnZTsKK+WFuOevhCA+IG1vZGVsOwor6ZuG5ZyYID4gZ3JvdXA7CivmlbTlgIsgPiB3aG9sZTsKK+W4neeOiyA+IHJlZ2FsOwor5by35YWJID4gZ2xhcmU7Civnm5TnlLIgPiBhcm1vcjsKK+i7jOi3oSA+IGxvY3VzOwor6LuM6LedID4gZ2F1Z2U7Civoo5zol6UgPiB0b25pYzsKK+atuOWSjiA+IGJsYW1lOwor5pW15Lq6ID4gZW5lbXk7Civlub3mmpcgPiBnbG9vbTsKK+aTlOaHriA+IHdvcnJ5Owor5qau6K29ID4gaG9ub3I7CivprZTooZMgPiBtYWdpYzsKK+eFp+WwhCA+IHNoaW5lOwor5pCX56KOID4gc21hc2g7CivmqrjmqqwgPiBsZW1vbjsKK+mWi+erryA+IHN0YXJ0Owor5qih57OKID4gdmFndWU7Civpm57lhqAgPiBjcmVzdDsKK+WFiee6liA+IGxpZ2h0Owor6ZuV5Yi7ID4gY2FydmU7Civpqq/pq5IgPiBkaXJ0eTsKK+WIh+acmyA+IGNyYXZlOwor6Kmb5ZKSID4gY3Vyc2U7CivmqJnnsaQgPiBsYWJlbDsKK+eEtuW+jCA+IGFmdGVyOwor6YKj5YWSID4gdGhlcmU7CivplbfnrJsgPiBmbHV0ZTsKK+eyvuelniA+IHZpZ29yOwor5ZyW6KGoID4gY2hhcnQ7CivovYnnp7sgPiBzaGlmdDsKK+WFkuerpSA+IGNoaWxkOwor5ZyN6KOZID4gYXByb247CivmjqjoiIkgPiBlbGVjdDsKK+WBnOmgkyA+IHBhdXNlOwor57KX57OZID4gY3J1ZGU7CivliarloLEgPiBzY3JhcDsKK+mrrui+riA+IGJyYWlkOwor5q275LqhID4gZGVhdGg7Civopo/mqKEgPiBzY2FsZTsKK+mAn+W6piA+IHNwZWVkOwor6YKj5LqbID4gdGhvc2U7Civnrq3poK0gPiBhcnJvdzsKK+mbhOWBiSA+IGdyYW5kOwor6L6m5rOVID4gbWVhbnM7CivngrrmraIgPiB1bnRpbDsKK+WatOmHjSA+IGdyYXZlOwor6Ii56LKoID4gY2FyZ287Civplbfnn5sgPiBsYW5jZTsKK+atjOWKhyA+IG9wZXJhOwor6auY6YGgID4gbG9mdHk7Civlh6HmmK8gPiBldmVyeTsKK+eDj+acqCA+IGVib255Owor6Iie6LmIID4gZGFuY2U7CivnsonnrYYgPiBjaGFsazsKK+e1leaKgCA+IHN0dW50Owor6IeJ6aCwID4gY2hlZWs7Civnmb3nmaEgPiBpZGlvdDsKK+aOiOiIhyA+IGdyYW50Owor6KeS5bqmID4gYW5nbGU7Civnmbznl4UgPiBvbnNldDsKK+WfuuacrCA+IGJhc2ljOwor54Gr54SwID4gYmxhemU7CivliKTlrpogPiBqdWRnZTsKK+aOoue0oiA+IHF1ZXN0Owor6KOC57irID4gY3JhY2s7CivngavngqwgPiB0b3JjaDsKK+Whq+WhniA+IHN0dWZmOwor5pKw5a+rID4gd3JpdGU7Civns5bmvL8gPiBzeXJ1cDsKK+eyieeijiA+IGNyYXNoOwor6Zm95Y+wID4gcG9yY2g7Civmk7rli5UgPiBzd2luZzsKK+aKvOmfuyA+IHJoeW1lOwor5Z6L54uAID4gc2hhcGU7CivoiInotbcgPiBoZWF2ZTsKK+WJsuWCtyA+IHNsYXNoOwor6YCZ5aSpID4gdG9kYXk7CivnsaznrIYgPiBmZW5jZTsKK+amruiAgCA+IGhvbm9yOwor6YGP5Yi2ID4gY2hlY2s7Civnmbzni4IgPiBjcmF6eTsKK+WIpeWihSA+IHZpbGxhOwor5bK46YKKID4gc2hvcmU7CivlsLzpvo0gPiBueWxvbjsKK+maiuS8jSA+IHJhbmtzOwor5YiA5a2QID4ga25pZmU7CivluYXluqYgPiB3aWR0aDsKK+apoeacqCA+IG9ha2VuOwor57K+5rayID4gc2VtZW47Civluorllq4gPiBzaGVldDsKK+iKseeToyA+IHBldGFsOwor5YmD5YiAID4gcmF6b3I7Civlh7PlrZAgPiBzdG9vbDsKK+iGvemHjyA+IG5lcnZlOwor6YCg5Y+NID4gcmViZWw7CivoqJPku6QgPiBvcmRlcjsKK+WGjeacgyA+IGFkaWV1Owor5qqz5a2QID4gYmluemk7CivouLTouo0gPiBlYWdlcjsKK+WFqeasoSA+IHR3aWNlOwor5L+u6aO+ID4gYWRvcm47Civmj6PmuKwgPiBndWVzczsKK+e0ouW8lSA+IGluZGV4Owor5YO156GsID4gc3Rhcms7CivlgrPogZ4gPiBydW1vcjsKK+iHquiqhyA+IGJvYXN0Owor5pGY5byVID4gcXVvdGU7Civlt6XmnIMgPiB1bmlvbjsKK+ezluaenCA+IGNhbmR5Owor6KOC55eVID4gY2hhc207Civngavmn7QgPiBtYXRjaDsKK+e0sOWwjyA+IHBldHR5Owor5qyE5L2NID4gZmVuY2U7CivpqYXpmaQgPiByZXBlbDsKK+aoueaelyA+IHdvb2RzOwor5bCP6bqlID4gd2hlYXQ7CivmvZvooYwgPiBzbmVhazsKK+WeguatuyA+IGR5aW5nOwor5qi65pyoID4gYmlyY2g7CivpgJDlh7ogPiBleHBlbDsKK+W3qOaTmCA+IHRodW1iOwor57SX5biDID4gZ2F1emU7CivlubPljp8gPiBmaWVsZDsKK+WFrOacgyA+IGd1aWxkOwor55Sw6YeOID4gZmllbGQ7Civmv6vnlKggPiBhYnVzZTsKK+mVt+akhSA+IGJlbmNoOwor6auY6IiIID4gaGFwcHk7CivmkJPmj4kgPiBrbmVhZDsKK+mVt+ainSA+IHN0cmlwOwor6YCZ5LqbID4gdGhlc2U7CivluofkvZEgPiBibGVzczsKK+WBh+ijnSA+IGZlaWduOwor6L6u5a2QID4gcGxhaXQ7CivpmY3kuIsgPiBsb3dlcjsKK+aok+airyA+IHN0YWlyOwor6auY6IGzID4gZXJlY3Q7Civpq5jogbIgPiBhbG91ZDsKK+WwiumtmiA+IHRyb3V0Owor6KGA6IKJID4gZmxlc2g7Civnm5vlrrQgPiBmZWFzdDsKK+WbnuetlCA+IHJlcGx5Owor57Ch55+tID4gYnJpZWY7Civlm6TnqY0gPiBob2FyZDsKK+mnv+mmrCA+IHN0ZWVkOwor5qau542yID4gcHJpemU7CivoparlrZAgPiBzb2NrczsKK+idmemtmiA+IGJyZWFtOwor5aCx5YSfID4gcmVwYXk7CivlgrPnpZ4gPiB2aXZpZDsKK+iJsueLvCA+IHNhdHlyOwor5o6i5risID4gcHJvYmU7CivovYnmkq0gPiByZWxheTsKK+aJuemHjyA+IGJhdGNoOwor6aex6aedID4gY2FtZWw7CivlnJbniYcgPiBpbWFnZTsKK+WGoOWtkCA+IGNyZXN0Owor6IWw6YOoID4gd2Fpc3Q7Civnmq7luLYgPiBzdHJhcDsKK+eyl+aatCA+IHJvdWdoOwor5pKS5L2GID4gc2F0YW47CivlsI/pm54gPiBjaGljazsKK+WGsOWhlCA+IHNlcmFjOwor56yo6YeNID4gaGVhdnk7CivovJXmn5MgPiB0aW5nZTsKK+WFp+W/gyA+IGhlYXJ0Owor6IWz6LidID4gYW5rbGU7CivmjpLmsLQgPiBkcmFpbjsKK+aLm+iHtCA+IGluY3VyOwor5qCX6bygID4gYnVubnk7CivmiZLph5ggPiBjcmFtcDsKK+ebtOWIsCA+IHVudGlsOwor5ber5amGID4gd2l0Y2g7Civmj7TlvJUgPiBxdW90ZTsKK+etlOipniA+IHJlcGx5Owor5bCW6YqzID4gc2hhcnA7CivploDlu4ogPiBzdG9vcDsKK+WBt+eriiA+IHN0ZWFsOwor5qeT5qG/ID4gbGV2ZXI7CivlhbblroMgPiBvdGhlcjsKK+etlOimhiA+IHJlcGx5Owor54OY5Lm+ID4gcGFyY2g7CivlhazlsLogPiBtZXRlcjsKK+WZquiBsiA+IG5vaXNlOwor55uO5Y+4ID4gb3VuY2U7CivpqI7ou4ogPiBjeWNsZTsKK+WDueagvCA+IHByaWNlOwor57K+5a2QID4gc3Blcm07CivlnLDmnb8gPiBmbG9vcjsKK+WHjOS6giA+IGNoYW9zOwor5L+a6KqeID4gc2xhbmc7CivntIXliKkgPiBib251czsKK+mWi+WniyA+IGJlZ2luOwor5o6h5pGYID4gcGx1Y2s7Civln4Plj4ogPiBlZ3lwdDsKK+WvgumdnCA+IHF1aWV0Owor56ym6KiYID4gdG9rZW47CivllqrpkJggPiBrbmVsbDsKK+iEuei1tyA+IGJ1bGdlOwor6IOM6aqoID4gc3BpbmU7Civlt6blj7MgPiBhYm91dDsKK+WFrOWZuCA+IHRvbm5lOwor5o6M5o+hID4gZ3Jhc3A7CivnlJ/oi5QgPiBtb3NzeTsKK+aQluWLlSA+IHNoYWtlOwor6Lyq5a2QID4gd2hlZWw7CivpqJnooZMgPiB0cmljazsKK+aJk+ijvSA+IGZvcmdlOwor5bCP6KqqID4gbm92ZWw7CivohZDonZUgPiBydXN0eTsKK+mWieWQiCA+IGNsb3NlOwor6aeV6LuKID4gZHJpdmU7Civmu5HokL0gPiBzbGlkZTsKK+WFreWNgSA+IHNpeHR5Owor5YWs5Y2HID4gbGl0ZXI7CivkvLzpm6ogPiBzbm93eTsKK+iDuOmDqCA+IGNoZXN0Owor55eF5q+SID4gdmlydXM7CivmioDog70gPiBza2lsbDsKK+aOqOW0hyA+IHZhbHVlOwor5bCP6KKLID4gcG91Y2g7CivngavlhZIgPiBhbmdyeTsKK+ihl+autSA+IGJsb2NrOwor6Lev57eaID4gcm91dGU7Civlt6jkurogPiBnaWFudDsKK+ijmeWtkCA+IHNraXJ0Owor5oqT57eKID4gZ3Jhc3A7CivooYDmtrIgPiBibG9vZDsKK+WuiemdnCA+IHF1aWV0Owor5omL6JedID4gY3JhZnQ7CivppqzpgZQgPiBtb3RvcjsKK+mWg+WFiSA+IGZsYXNoOwor5YW25LuWID4gb3RoZXI7Civlm5vmnIggPiBhcHJpbDsKK+WFtuS4rSA+IGFtb25nOwor5qWT5qi5ID4gbWFwbGU7Civnq4ros4ogPiB0aGllZjsKK+a7kee/lCA+IGdsaWRlOwor5o6D5biaID4gYnJvb207CivoobDmlZcgPiBkZWNheTsKK+iLm+WIuyA+IGhhcnNoOwor6ZC156CnID4gYW52aWw7CivmjZXmjYkgPiBjYXRjaDsKK+epuumWkyA+IHNwYWNlOwor55m85YWJID4gc2hpbmU7CivmjqDlpaogPiBoYXJyeTsKK+Wvn+imuiA+IGF3YXJlOwor5bGL57C3ID4gZWF2ZXM7CivmoLzoqIAgPiBtYXhpbTsKK+eTo+iGnCA+IHZhbHZlOwor5o6h5aC0ID4gc2xvcGU7CivoiJ7mnIMgPiBkYW5jZTsKK+WcjeW3viA+IHNjYXJmOwor5a+T6KiAID4gZmFibGU7CivmiYvohZUgPiBza2lsbDsKK+iiq+WtkCA+IHF1aWx0Owor5bCP6IiMID4gdXZ1bGE7CivlsLHnt5IgPiByZWFkeTsKK+i7gOW5uSA+IHRydW5rOwor6LuA5bmyID4gdHJ1bms7Civnmbzkuq4gPiBzaGluZTsKK+aJi+iCmCA+IGVsYm93Owor6KOc5ZOBID4gdG9uaWM7CivlrqLou4ogPiBjb2FjaDsKK+iJvuWnrCA+IGFnZ2llOwor5Zyo5aSWID4gb3V0ZXI7CivltIfmi5wgPiBhZG9yZTsKK+WFheS7vSA+IGFtcGxlOwor6auY5piOID4gc21hcnQ7CivmvLLmu78gPiBzd2VsbDsKK+eXm+aBqCA+IGFiaG9yOwor6IGy6Z+zID4gdm9pY2U7Civnl5vlv6sgPiBqb2xseTsKK+aOpeWQiCA+IGpvaW50Owor5Zyf5aCGID4gbW91bmQ7CivmiLLogI0gPiB0ZWFzZTsKK+eorumhniA+IGNsYXNzOwor55S354i1ID4gYmFyb247Civlm7rlrpogPiBmaXhlZDsKK+Wwlue0sCA+IHRhcGVyOwor5Z2H5YiGID4gc3BsaXQ7CivoirHkv48gPiBmYW5jeTsKK+i1q+iMsiA+IGhlcnR6Owor566t5qG/ID4gc2hhZnQ7CivlnI3ln44gPiBzaWVnZTsKK+WCsuWyuCA+IHByb3VkOwor6Ie05pWsID4gZ3JlZXQ7Civou43lnJggPiBjb3JwczsKK+msjeWtkCA+IGJlYXJkOwor5o6S5YiXID4gYXJyYXk7Civkv4/nmq4gPiBzYXVjeTsKK+iInuW8iiA+IGZyYXVkOwor6aSF6aSMID4gY2FrZXM7Civoo5zkuIEgPiBwYXRjaDsKK+mngeiIuSA+IGJhcmdlOwor6JyC6JycID4gaG9uZXk7CivmvL/mnpwgPiBiZXJyeTsKK+mtheWKmyA+IGNoYXJtOwor6IO46IabID4gY2hlc3Q7CivmvILmuLggPiBkcmlmdDsKK+WDueWAvCA+IHZhbHVlOwor5r2R5o6JID4gc3BpbGw7CivoiIjlu7ogPiBidWlsZDsKK+izh+mHkSA+IGZ1bmRzOwor5ruy5rqdID4gc2V3ZXI7Civog63ohIIgPiByb3VnZTsKK+iHquaIkSA+IHNlbGZcLTsKK+mMr+iqpCA+IGVycm9yOwor5p6c6YWSID4gY2lkZXI7CivmjbflhYsgPiBjemVjaDsKK+eUqOazlSA+IHVzYWdlOwor56+p5a2QID4gc2lldmU7CivlnJblg48gPiBpbWFnZTsKK+WtmOiyqCA+IHN0b2NrOwor6auY5bCaID4gbm9ibHk7CivlnKjkuIsgPiB1bmRlcjsKK+aLjeaTiiA+IHNtYWNrOwor5Zqu5bCOID4gZ3VpZGU7Civlgr7lkJEgPiB0cmVuZDsKK+eUn+awoyA+IGFuZ3J5Owor5YGP5oSbID4gZmF2b3I7CivlrrPnvp4gPiBibHVzaDsKK+iduOeJmyA+IHNuYWlsOwor5ZWG6JmfID4gc3RvcmU7CivpjKLooosgPiBwdXJzZTsKK+a/gOWFiSA+IGxhc2VyOwor5a6J6I+vID4gYW53YXI7Civls63lo4EgPiBjbGlmZjsKK+aNkOWKqSA+IG9mZmVyOwor5ouH5oyHID4gdGh1bWI7Civmi4LmjoMgPiB3aGlzazsKK+iIueWPqiA+IHNoaXBzOwor6Ie65a2QID4gdGFibGU7CivmnJ3prq4gPiBrb3JlYTsKK+Wbm+WNgSA+IGZvcnR5Owor5oq95omTID4gc3RyYXA7Civmg6HprZQgPiBkZW1vbjsKK+acrOmgmCA+IHNraWxsOwor5qOy5oGvID4gcGVyY2g7CivmtYHpq5QgPiBmbHVpZDsKK+S+neeEtiA+IHN0aWxsOwor6IKd6IefID4gbGl2ZXI7Civnr4TlnI0gPiByYW5nZTsKK+WWrueNqCA+IGFsb25lOwor5L+u5pS5ID4gYW1lbmQ7CivmpIXlrZAgPiBjaGFpcjsKK+aciemiqCA+IHdpbmR5Owor5oqK5o+hID4gZ3Jhc3A7CivlsI/msrMgPiBicm9vazsKK+alreS4uyA+IG93bmVyOwor6ama5oWMID4gcGFuaWM7CivlgYnlpKcgPiBncmVhdDsKK+S4u+mhjCA+IHRoZW1lOwor5ZOq6KOhID4gd2hlcmU7CivnrZTmh4kgPiByZXBseTsKK+S4gOm7niA+IGFcLWJpdDsKK+WtuOe0miA+IGNsYXNzOwor55W25ZywID4gbG9jYWw7CivnqLvojYkgPiBzdHJhdzsKK+adseilvyA+IHRoaW5nOwor5YCJ5bqrID4gZGVwb3Q7CivkvIrntKIgPiBhZXNvcDsKK+WxseW0liA+IGNsaWZmOwor56yR5p6XID4gaHVtb3I7CivlmLTlt7QgPiBtb3V0aDsKK+mQs+WwhCA+IGxhc2VyOwor5qOa5a2QID4gc2hhY2s7CivlkLXprKcgPiBub2lzeTsKK+eUt+WtkCA+IGFcLW1hbjsKK+iCoeelqCA+IHNoYXJlOwor5qOS5a2QID4gc3RpY2s7CivmjIfku6QgPiBvcmRlcjsKK+iCpeeiqSA+IHN0b3V0Owor6buD6YqFID4gYnJhc3M7Civmo43lrZAgPiBzdGljazsKK+iHtOS9vyA+IGNhdXNlOwor5oqA5benID4gc2tpbGw7Civnp5joqKMgPiB0cmljazsKK+aLtOS9jyA+IGhpdGNoOwor5LiL6Z2iID4gYmVsb3c7CivooKLkuosgPiBmb2xseTsKK+aEmuigoiA+IHNpbGx5Owor5oqK5a6IID4gZ3VhcmQ7CivkuIvpm6ggPiByYWlueTsKK+mpmuWlhyA+IGFtYXplOwor6Iel5L2NID4gYmVydGg7CivlmbTlh7ogPiBzcG91dDsKK+miqOi2oyA+IGh1bW9yOwor5bC65bqmID4gc2NhbGU7CivlsITmk4ogPiBzaG9vdDsKK+izhOe1oSA+IGJyaWJlOwor5bGL5a2QID4gaG91c2U7CivosqznvbUgPiBzY29sZDsKK+iFseWtkCA+IHNpbmV3Owor5pu06YGyID4gbGF0ZXI7Civpu5HosoIgPiBzYWJsZTsKK+eVtuS4rSA+IGFtb25nOwor5Zas5pyoID4gYXJib3I7CivogIHomY4gPiB0aWdlcjsKK+aymem+jSA+IHNhbG9uOwor5L+d5aeGID4gbmFubnk7CivlsI/lvpEgPiBhbGxleTsKK+momeWxgCA+IGZyYXVkOwor5bCN5b6FID4gdHJlYXQ7Civmi4nkuIEgPiBsYXRpbjsKK+eQpeePgCA+IGFtYmVyOwor5pyD6KuHID4gdGFsa3M7CivohIjmkI8gPiBwdWxzZTsKK+eUouWTgSA+IGdvb2RzOwor5bCL5bi4ID4gdXN1YWw7CivmnI3oo50gPiBkcmVzczsKK+mHkemrriA+IGJsb25kOwor5oiy5byEID4gY2FwZXI7CivmtaroirEgPiBzcHJheTsKK+Wwj+WxiyA+IGNhYmluOwor5riF5r2UID4gY2xlYW47CivmiL/lsYsgPiBob3VzZTsKK+WYjuWYjiA+IHF1YWNrOwor55Sf5YuVID4gdml2aWQ7CivkuIvot6ogPiBrbmVlbDsKK+Wwj+WtqSA+IGNoaWxkOwor5riF5rmvID4gYnJvdGg7Civkvr/lo6sgPiBwZW5ueTsKK+aIv+WtkCA+IGhvdXNlOwor6IC256mMID4gamVzdXM7Civpi7znkLQgPiBwaWFubzsKK+mojuWjqyA+IHJpZGVyOwor6Y+I5a2QID4gY2hhaW47CivmiYvlpZcgPiBnbG92ZTsKK+eUt+S6uiA+IGFcLW1hbjsKK+i3n+WJjSA+IGZyb250Owor5L+u5YmqID4gcHJ1bmU7Civlr6zluqYgPiB3aWR0aDsKK+mmmeaWmSA+IHNwaWNlOwor5Ly65pyNID4gc2Vydm87Civmu4vlkbMgPiB0YXN0ZTsKK+enn+e0hCA+IGxlYXNlOwor5bCW5aGUID4gc3BpcmU7Civll7blmLAgPiBzZXJnZTsKK+axoem7niA+IHN0YWluOwor5rOV6YOOID4gZnJhbmM7CivmtLvokZcgPiBhbGl2ZTsKK+WWnOaChSA+IGhhcHB5Owor5oiQ5bm0ID4gYWR1bHQ7CivogoXmuIUgPiBwdXJnZTsKK+e/see/lCA+IGhvdmVyOwor5a2f5rWqID4gaGFzdHk7Civpu5HoibIgPiBibGFjazsKK+a3ueaykiA+IGZsdXNoOwor56eV57OgID4gY2hhZmY7CivnrKzljYEgPiB0ZW50aDsKK+WTgeeoriA+IGJyZWVkOwor5pmC6aumID4gdm9ndWU7CivmiZPlkbwgPiBzbm9yZTsKK+ahjOWtkCA+IHRhYmxlOwor5LuN54S2ID4gc3RpbGw7CivmuIXmpZogPiBjbGVhcjsKK+mkmOeHvCA+IGVtYmVyOwor56ys5YWtID4gc2l4dGg7CivpjKbmqJkgPiBwcml6ZTsKK+eNqOiHqiA+IGFsb25lOwor57696I6WID4gcXVpbGw7CivmoYPlrZAgPiBwZWFjaDsKK+WwgeWcsCA+IG1hbm9yOwor5L+h5Lu7ID4gdHJ1c3Q7CivkvZzlvIogPiBmcmF1ZDsKK+mhjOinoyA+IG5vdGVzOwor5L+d5L2RID4gYmxlc3M7CivosqjniakgPiBnb29kczsKK+WvoeWppiA+IHdpZG93Owor6aOy55SoID4gZHJpbms7CivkuIDooYwgPiBwYXJ0eTsKK+i2qOWLoiA+IHRyZW5kOwor54u56LevID4gZ29yZ2U7CivlsI/lkIMgPiBzbmFjazsKK+ePiueRmiA+IGNvcmFsOwor54+N54+gID4gcGVhcmw7Civmh7jlsqkgPiBjbGlmZjsKK+m8u+eFmSA+IHNudWZmOwor5rSL6JSlID4gb25pb247CivotqPliocgPiBmYXJjZTsKK+S9juW7iSA+IGNoZWFwOwor5ZOA55ebID4gZ3JpZWY7CivnrKzkupQgPiBmaWZ0aDsKK+esrOS5nSA+IG5pbnRoOwor56ys5LiJID4gdGhpcmQ7CivnrKzkuIAgPiBmaXJzdDsKK+eOu+eSgyA+IGdsYXNzOwor56qS5oGvID4gY2hva2U7CivmnInnt5ogPiB3aXJlZDsKK+adv+a7ryA+IHN0aWZmOwor5omT5LuXID4gZmlnaHQ7CivmiLLliocgPiBkcmFtYTsKK+ayiemHjSA+IGhlYXZ5Owor5rKI6YeNID4gaGVhdnk7CivmnIDntYIgPiBmaW5hbDsKK+e9quihjCA+IGNyaW1lOwor572p6KGrID4gc21vY2s7CivkvaDlpb0gPiBoZWxsbzsKK+S9jeWtkCA+IHBsYWNlOwor5rOi6JWpID4gaGVhdmU7CivotbDlkJEgPiB0cmVuZDsKK+m6teeyiSA+IGZsb3VyOwor5aaW6a2UID4gZGVtb247Civnjofnm7QgPiBmcmFuazsKK+aYjumhryA+IGNsZWFyOwor6aGP6ImyID4gY29sb3I7CivlsI/kuJEgPiBjbG93bjsKK+aZr+ixoSA+IHNjZW5lOwor54uh6KmQID4gY3JhZnQ7CivmhqTmgJIgPiBhbmdyeTsKK+iyneauvCA+IHNoZWxsOwor5L6N5YCZID4gc2VydmU7CivosaHniZkgPiBpdm9yeTsKK+WVhuW6lyA+IHN0b3JlOwor5Zad5Y+xID4gY2hpZGU7CivmtbfngZggPiBiZWFjaDsKK+eQtOW8piA+IGNob3JkOwor542O56ugID4gbWVkYWw7CivlrZDmiL8gPiBvdmFyeTsKK+iSvOm3uiA+IGhlcm9uOwor6LWm5YWNID4gcmVtaXQ7Civku4rml6UgPiB0b2RheTsKK+acqOeJiCA+IHBsYW5rOwor56We57aTID4gbmVydmU7CivmgKroqpUgPiBmcmVhazsKK+ermeS9jyA+IHN0YW5kOwor5rK/6JGXID4gYWxvbmc7Civkub7mt6ggPiBjbGVhbjsKK+WvhuWIhyA+IGNsb3NlOwor5rex5bqmID4gZGVwdGg7CivljYjppJAgPiBsdW5jaDsKK+aIkOS6uiA+IGFkdWx0Owor5Y2I6aOvID4gbHVuY2g7CivmtbfmtIsgPiBvY2VhbjsKK+iCmuWtkCA+IGJlbGx5Owor542154qsID4gaG91bmQ7CivnkIbmg7MgPiBpZGVhbDsKK+m1qum2iSA+IHF1YWlsOwor5Lul5b6MID4gYWZ0ZXI7CivlranlrZAgPiBjaGlsZDsKK+iAveaTsSA+IHRhcnJ5Owor5LqL5qWtID4gY2F1c2U7CivlraLlrZAgPiBzcG9yZTsKK+aXhemkqCA+IGhvdGVsOwor5aW06Zq4ID4gc2xhdmU7CivlkIrnuakgPiBzbGluZzsKK+mmrOS+hiA+IG1hbGF5Owor6aas5LyVID4gZ3Jvb207CivlpKfpub8gPiBtb29zZTsKK+iBluW+kiA+IHNhaW50Owor5LiW55WMID4gd29ybGQ7CivmuKHlj6MgPiBmZXJyeTsKK+a4m+WOuyA+IG1pbnVzOwor5Lq65oCnID4gaHVtYW47CivmhYjmgrIgPiBtZXJjeTsKK+mfv+iBsiA+IG5vaXNlOwor6KuW6aGMID4gdG9waWM7CivljaHou4ogPiB0cnVjazsKK+WuouS6uiA+IGd1ZXN0Owor572M57KfID4gcG9wcHk7Civpoa/nhLYgPiBjbGVhcjsKK+aWkemmrCA+IHplYnJhOwor5q+N6Z+zID4gdm93ZWw7Civku5nlpbMgPiBmYWlyeTsKK+eooOWvhiA+IGRlbnNlOwor5aWX6ZCYID4gY2hpbWU7CivlrojlgJkgPiBhYmlkZTsKK+a0l+a+oSA+IGJhdGhlOwor5p2/5bKpID4gc2xhdGU7CivorKzoqqQgPiBlcnJvcjsKK+miqOagvCA+IHN0eWxlOwor5rSX5ruMID4gcmluc2U7CivkuIDniYcgPiBwaWVjZTsKK+mMouWMhSA+IHB1cnNlOwor6aCt55quID4gc2NhbHA7Civmnb/lrZAgPiBib2FyZDsKK+WNkeizpCA+IGxvd2x5Owor5LuK5aSpID4gdG9kYXk7CivmhJvmhZUgPiBhZG9yZTsKK+aAneiAgyA+IHRoaW5rOwor6aKo5pq0ID4gc3Rvcm07CivljYfotbcgPiBob2lzdDsKK+iYi+aenCA+IGFwcGxlOwor6LKd5a+nID4gYmVuaW47CivorKDoqIAgPiBydW1vcjsKK+aXi+i9iSA+IHdoaXJsOwor5Y+W56yRID4gdGVhc2U7CivmsLTom60gPiBsZWVjaDsKK+iqnumfsyA+IHZvaWNlOwor5aS+6YmXID4gdG9uZ3M7Civml6XoqJggPiBkaWFyeTsKK+mgkueZvCA+IGlzc3VlOwor5LmD5pivID4gdG9cLWJlOwor5paw6L+RID4gbmV3bHk7Civlq4zmg6EgPiBhYmhvcjsKK+Wjgem+lSA+IG5pY2hlOwor5ZC45rCjID4gc25pZmY7CivoqpjpmbcgPiBzbmFyZTsKK+efs+mgrSA+IHN0b25lOwor54yc5risID4gZ3Vlc3M7Civku6Plg7kgPiBwcmljZTsKK+adk+WtkCA+IHNjb29wOwor5oSf5a6YID4gc2Vuc2U7CivkuInmrKEgPiB0aGlyZDsKK+acrOW9sSA+IHVtYnJhOwor5Lq65ZOhID4gc3RhZmY7CivkuIDmrKEgPiBmaXJzdDsKK+e6jOiogiA+IHJlbmV3Owor5pu05pS5ID4gYWx0ZXI7Civno6jnoo4gPiBncmluZDsKK+itpuesmyA+IHNpcmVuOwor57+S5oWjID4gaGFiaXQ7Civku4rlhZIgPiB0b2RheTsKK+S7peS4iyA+IGJlbG93Owor6YeO5424ID4gYmVhc3Q7CivlkozlubMgPiBwZWFjZTsKK+aUtumkiiA+IGFkb3B0Owor5oCq55WwID4gd2VpcmQ7CivospPlkqogPiBraXR0eTsKK+W/g+iHnyA+IGhlYXJ0Owor5rK85r6kID4gZ2xhZGU7CivmsaHnqaIgPiBuYXN0eTsKK+S4ieaciCA+IG1hcmNoOwor56OF56ekID4gc2NhbGU7Civlk6rlhZIgPiB3aGVyZTsKK+S6pOWPiSA+IGNyb3NzOwor6LKs5YKZID4gYmxhbWU7Civpm7vpg7UgPiBlbWFpbDsKK+S4n+aOiSA+IHRocm93Owor6IGW5Lq6ID4gc2FpbnQ7Civli53pgY4gPiBleGNlbDsKK+aumOmFtyA+IGNydWVsOwor5Y+U54i2ID4gdW5jbGU7CivorYnnq6AgPiBiYWRnZTsKK+a1t+WcsCA+IGhhaXRpOwor5pyA5b6MID4gZmluYWw7CivmraPpnaIgPiBmcm9udDsKK+mbt+mBlCA+IHJhZGFyOwor5ZOB5ZGzID4gdGFzdGU7CivkuLvlubkgPiB0cnVuazsKK+WkseiqpCA+IGxhcHNlOwor54iG6KOCID4gYnVyc3Q7CivpgorpmpsgPiBsaW1pdDsKK+mhj+aWmSA+IHBhaW50Owor54uC54axID4gY3JhemU7CivkupTljYEgPiBmaWZ0eTsKK+egtOijgiA+IGJ1cnN0Owor5rKz5rWBID4gcml2ZXI7CivmgrLmgrwgPiBtb3VybjsKK+mdkuiNiSA+IGdyYXNzOwor5pyo5aGKID4gYmxvY2s7CivkuZnlpKogPiBldGhlcjsKK+mKs+WIqSA+IHNoYXJwOwor6Jmb5YG9ID4gZmFsc2U7CivmnKzlnLAgPiBsb2NhbDsKK+adseS6rCA+IHRva3lvOwor5q+S6JuHID4gdmlwZXI7CivpoIzmrYwgPiBjYXJvbDsKK+WSleWalSA+IGdydW50Owor5qy+6aCFID4gZnVuZHM7CivkuIDmiZMgPiBkb3plbjsKK+ippumHkSA+IGFzc2F5Owor6aCt5pqIID4gZGl6enk7Civlvr3nq6AgPiBiYWRnZTsKK+WKm+mHjyA+IHBvd2VyOwor54Sm6bueID4gZm9jdXM7CivpiYvlrZAgPiBwbGFuZTsKK+aYjueZvSA+IGNsZWFyOwor546L5ZCOID4gcXVlZW47Civnupbntq0gPiBmaWJlcjsKK+S6i+S7tiA+IGV2ZW50Owor6YCX6bueID4gY29tbWE7CivpuqXlrZAgPiB3aGVhdDsKK+S4gOW8tSA+IHNoZWV0Owor5ZKG5ZOuID4gZ3Jvd2w7Civlvq7nrJEgPiBzbWlsZTsKK+eip+eTpiA+IGdyZWVuOwor5rC055uGID4gYmFzaW47CivnhZnpnKcgPiBzbW9rZTsKK+mCj+i8ryA+IGxvZ2ljOwor6Z+z5qiCID4gbXVzaWM7Civmm7Tlo54gPiB3b3JzZTsKK+mDqOiQvSA+IHRyaWJlOwor5bu26YGyID4gZGVsYXk7Civlub3pu5ggPiBodW1vcjsKK+eOi+WGoCA+IGNyb3duOwor6Zm36ZixID4gc25hcmU7CivmlrfntZUgPiBzZXZlcjsKK+S4reWciyA+IGNoaW5hOwor5aSa6JGJID4gbGVhZnk7CivkuIDlsaQgPiBsYXllcjsKK+eHu+iCiSA+IGJhY29uOwor5byV6Ki8ID4gcXVvdGU7Civmk6LpmZ4gPiBleGFsdDsKK+mHjeaWsCA+IGFnYWluOwor5aSn6IW/ID4gdGhpZ2g7CivlpKfohaYgPiBicmFpbjsKK+acrOS6uiA+IGlcLVwobWU7Civnpa3lo4cgPiBhbHRhcjsKK+mfu+aWhyA+IHZlcnNlOwor6YG66LehID4gdHJhY2U7CivpgqPoo6EgPiB0aGVyZTsKK+eGiuiykyA+IHBhbmRhOwor5paR576aID4gZ29yYWw7Civpmobph40gPiBncmFuZDsKK+W9juiFsCA+IHN0b29wOwor5amm5aWzID4gd29tYW47CivokaHokIQgPiBncmFwZTsKK+e+juWlvSA+IGhhcHB5Owor6K6A5pu4ID4gc3R1ZHk7CivnjY7lk4EgPiBhd2FyZDsKK+acgOWInSA+IGZpcnN0Owor5oGQ5oWMID4gcGFuaWM7CivpurXljIUgPiBicmVhZDsKK+mhjeWkliA+IGV4dHJhOwor6buP5L2PID4gY2xpbmc7CivkuIDloYogPiBwaWVjZTsKK+WPr+aAlSA+IGF3ZnVsOwor6YGO6YGTID4gYWlzbGU7CivmsYHmtrIgPiBqdWljZTsKK+ekpuW3pSA+IG1pbmVyOwor5q2M6KygID4gY2hhbnQ7Civmspnmi4kgPiBzYWxhZDsKK+m6teWFkiA+IGNvdmVyOwor5paX56+3ID4gY2xvYWs7CivkuYvkuIsgPiB1bmRlcjsKK+aciOS7vSA+IG1vbnRoOwor5rC05rqWID4gbGV2ZWw7CivlpbPnjosgPiBxdWVlbjsKK+mbm+iPiiA+IGRhaXN5Owor57eo6KO9ID4gd2VhdmU7CivljIXnqYAgPiBtYWl6ZTsKK+W/q+aogiA+IGhhcHB5Owor6YC86L+rID4gZm9yY2U7CivlpoLngasgPiBmaWVyeTsKK+azpeWcnyA+IGVhcnRoOwor5aqS5LuLID4gbWVkaWE7CivkuIDlkIwgPiBhbG9uZzsKK+WgtOmdoiA+IHNjZW5lOwor5aOB6JmOID4gZ2Vja287CivmlZnnvqkgPiBjcmVlZDsKK+avm+eXhSA+IGZhdWx0Owor6aCB5bKpID4gc2hhbGU7Civph5HlsawgPiBtZXRhbDsKK+itieaYjiA+IHByb29mOwor5Y6t5oOhID4gbG9hdGg7CivmmI/mmpcgPiBkdXNreTsKK+avlOeOhyA+IHJhdGlvOwor5aW25rK5ID4gY3JlYW07CivpnI7nnLwgPiBibGluazsKK+awtOaenCA+IGZydWl0Owor55+t57ChID4gYnJpZWY7Civlp7/lrrkgPiBsb29rczsKK+e2k+iyuyA+IGZ1bmRzOwor6KaW6aC7ID4gdmlkZW87CivpgYrooYwgPiBtYXJjaDsKK+aZtOWkqSA+IHN1bm55Owor6YeN5aSnID4gZ3JlYXQ7CivluLbpoJggPiBndWlkZTsKK+mAlei3oSA+IHRyYWNrOwor54iQ54G2ID4gc3RvdmU7CivmmYLluLggPiBvZnRlbjsKK+W8t+ehrCA+IHRvdWdoOwor5bi26ZyyID4gZGV3eTsKK+W9oueLgCA+IGZvcm07CivoloTlkb0gPiBcKHVzdTsKK+WKn+e4viA+IGZlYXQ7CivoqJjomZ8gPiBzZWFsOwor6KaL6Z2iID4gbWVldDsKK+mCiue3oyA+IGVkZ2U7CivmmrTkuoIgPiByaW90Owor54ib5rOlID4gb296ZTsKK+aXpeacnyA+IGRhdGU7Civlp6jlqr0gPiBhdW50Owor5bm96LC3ID4gZGVsbDsKK+WGt+mdnCA+IGNhbG07CivmlZnnmocgPiBwb3BlOwor5b615pS2ID4gbGV2eTsKK+WQkeS4iyA+IGRvd247CivpgJ/ooYwgPiBydXNoOwor6YCZ6KOhID4gaGVyZTsKK+e8uuWPoyA+IG5pY2s7CivpgbLnt6kgPiBzbG93Owor5rCP5pePID4gY2xhbjsKK+WOn+WtkCA+IGF0b207Civmr5vmsIggPiBmZWx0Owor5Yaw6Zu5ID4gaGFpbDsKK+mgkOWFhiA+IG9tZW47Civlp5Hlqr0gPiBhdW50Owor5rGg5a2QID4gcG9uZDsKK+WnkeWomCA+IGdpcmw7Civli7vmt6ggPiBldmVuOwor5pa55qGIID4gcGxhbjsKK+eLguWQoCA+IGhvd2w7Civlv4Pmg4UgPiBtb29kOwor6YeO5YWUID4gaGFyZTsKK+mereWtkCA+IHdoaXA7Civln7rph5EgPiBmdW5kOwor5aa75a2QID4gd2lmZTsKK+WNiuaLiSA+IGhhbGY7Civpr4nprZogPiBjYXJwOwor55+z54mHID4gc2xhYjsKK+W/heW+lyA+IG11c3Q7CivlhrDpjq4gPiBpY2VkOwor5rGg5aGYID4gcG9vbDsKK+eGvueGsSA+IGdsb3c7Civnn7PngbAgPiBsaW1lOwor55qu6Z6tID4gbGFzaDsKK+WGt+mFtyA+IGdyaW07CivlpZHmk5ogPiBkZWVkOwor56Gs5bmjID4gY29pbjsKK+WHneimliA+IGdhemU7CivmlZnmtL4gPiBzZWN0Owor5YWs6ZueID4gY29jazsKK+inkuiJsiA+IHJvbGU7CivnupbluqYgPiBzaXplOwor54mM5a2QID4gc2lnbjsKK+eJm+WltiA+IG1pbGs7CivlpYnmib8gPiBmYXduOwor5pmC5YCZID4gdGltZTsKK+iLsembhCA+IGhlcm87Civplovpl4ogPiB3aWRlOwor5b2O5puyID4gYmVuZDsKK+iqsuaWhyA+IHRleHQ7CivplbfpnbQgPiBib290Owor54mi5Zu6ID4gZmlybTsKK+eZvumdiCA+IGxhcms7Civml5flrZAgPiBmbGFnOwor5aWz5a2pID4gZ2lybDsKK+e6luWwjyA+IGZpbmU7CivlubTogIEgPiBhZ2VkOwor5bem6YKKID4gbGVmdDsKK+eJhuWjgSA+IHdhbGw7CivpgI/ntIUgPiByb3N5Owor5pW45pOaID4gZGF0YTsKK+ipqeatjCA+IHBvZW07Civnha7nhp8gPiBib2lsOwor55+z5p2/ID4gc2xhYjsKK+Wls+WjqyA+IGxhZHk7Civlv43lj5cgPiBiZWFyOwor5b6u5Z6LID4gdGlueTsKK+mCiuayvyA+IGVkZ2U7Civoi7Hph4wgPiBtaWxlOwor5qiC6ZqKID4gYmFuZDsKK+awo+WRsyA+IG9kb3I7CivnhKHnpq4gPiBydWRlOwor6YO95biCID4gY2l0eTsKK+WNgOWfnyA+IGFyZWE7CivoqIjnlasgPiBwbGFuOwor54eD5paZID4gZnVlbDsKK+W9ouW8jyA+IGZvcm07Civopb/oloQgPiBjYWtlOwor5pOY55WrID4gcGxhbjsKK+eFpOeBsCA+IHNvb3Q7CivplovovqYgPiBvcGVuOwor5pWy5omTID4gYmVhdDsKK+mbquaSrCA+IHNsZWQ7Civlvojlpb0gPiB3ZWxsOwor6YGo5ri4ID4gcm9hbTsKK+WmguWQjCA+IGxpa2U7CivlpKflu7MgPiBoYWxsOwor5q+S5a6zID4gYmFuZTsKK+e5qeWtkCA+IGNvcmQ7CivnuYHlv5kgPiBidXN5Owor57Sw6IOeID4gY2VsbDsKK+WNkeWKoyA+IGJhc2U7Civlvqnljp8gPiBoZWFsOwor5Yil55qEID4gZWxzZTsKK+WFrOixrCA+IGJvYXI7Civoqr/lrZAgPiB0dW5lOwor5Yu75a+mID4gZXZlbjsKK+W+teWFhiA+IG9tZW47Civmj7nosqAgPiBiZWFyOwor6ZaS6KuHID4gY2hhdDsKK+ecvOeciyA+IHNvb247Civovpvoi6YgPiBoYXJkOwor55mx6LufID4gbGltcDsKK+mdouWFtyA+IG1hc2s7CivmkpXnoLQgPiB0ZWFyOwor5Z+L6JGsID4gYnVyeTsKK+Wkp+WomCA+IGF1bnQ7CivmrYzmm7IgPiBzb25nOwor5byn5b2iID4gYXJjaDsKK+i8qui7uCA+IGF4bGU7CivluIboiLkgPiBzYWlsOwor5Y2R5LiLID4gYmFzZTsKK+aomeitmCA+IG1hcms7CivluLPnr7cgPiB0ZW50Owor55im6ZW3ID4gc2xpbTsKK+iKsemCiiA+IGxhY2U7Civloavmu78gPiBjcmFtOwor5aGK54uAID4gbHVtcDsKK+aomeiqjCA+IHNpZ247Civpm7nlrZAgPiBoYWlsOwor6Ku+5LqeID4gbm9haDsKK+imj+eroCA+IHJ1bGU7CivmqJnoqJggPiBzaWduOwor5aSW5aWXID4gY29hdDsKK+mVt+ilqiA+IGhvc2U7CivlnJjpmoogPiB0ZWFtOwor5b6e5LitID4gZnJvbTsKK+mVt+iijSA+IGdvd247Civpm4TmgKcgPiBtYWxlOwor552r5q+bID4gbGFzaDsKK+W8t+WnpiA+IHJhcGU7CivnhafmlpkgPiB0ZW5kOwor5o6h6YKRID4gZmllZjsKK+aOpei/kSA+IG5lYXI7Civnmq7ohpogPiBza2luOwor5o6g6YGOID4gZmxpdDsKK+e3qeaFoiA+IHNsb3c7Civln7rnpI4gPiBiYXNlOwor57ay5p62ID4gcmFjazsKK+imj+efqSA+IHJ1bGU7CivngbDoibIgPiBncmF5Owor57Sw55yLID4gcGVlcjsKK+mBsuaFoiA+IHNsb3c7CivopKroibIgPiBmYWRlOwor6YGp5oeJID4gc3VpdDsKK+aVl+WjniA+IHJ1aW47Civpg6jliIYgPiBwYXJ0Owor55y85reaID4gdGVhcjsKK+iLlOiYmiA+IG1vc3M7CivlvaLlg48gPiBmb3JtOwor5Ymd5o6JID4gcGFyZTsKK+mDteS7tiA+IG1haWw7CivmraXlrZAgPiBzdGVwOwor6L+95rGCID4gc2VlazsKK+ihqOmcsiA+IHNob3c7CivnnpHmg7MgPiBtdXNlOwor5pOm5o6JID4gd2lwZTsKK+mBiuaIsiA+IGdhbWU7Civnr4Dpu54gPiBub2RlOwor5aSr5Lq6ID4gbGFkeTsKK+W7muW4qyA+IGNvb2s7CivmjbLou7ggPiByZWVsOwor6auY6aObID4gc29hcjsKK+aVo+WHuiA+IHNoZWQ7Civlt6LnqbQgPiBsYWlyOwor6Zi/5pu8ID4gb21hbjsKK+W7oOWtkCA+IHlhcmQ7CivntKLnhLYgPiBkdWxsOwor5Ymb5by3ID4gZmlybTsKK+ecn+atoyA+IHJlYWw7CivourLpgb8gPiBzaHVuOwor5bua5a2QID4gY29vazsKK+eGseWKmyA+IGhlYXQ7Civlu6PlpKcgPiB2YXN0Owor6bOl5Zi0ID4gYmVhazsKK+Wfuua6liA+IGRhdGE7CivnsL3oqLwgPiB2aXNhOwor6bO05Y+rID4gaG9vdDsKK+WgheaxuiA+IGZpcm07CivoqLHlpJogPiBtYW55Owor54Gw55m9ID4gZ3JleTsKK+aUtuWJsiA+IHJlYXA7CivntrLlrZQgPiBtZXNoOwor5ouz6aCtID4gZmlzdDsKK+atjOWUsSA+IHNpbmc7Civpm5zkuoIgPiBtZXNzOwor5Ya35rehID4gY29sZDsKK+mqqOmgrSA+IGJvbmU7CivliZvlpb0gPiBqdXN0Owor5aOB5YqpID4gaGVscDsKK+aOieiQvSA+IGZsb3A7CivoqankurogPiBiYXJkOwor6JC95LiLID4gZmFsbDsKK+ihqOixoSA+IGlkZWE7CivpmbXlopMgPiB0b21iOwor6IiS6YGpID4gY296eTsKK+iLseeVnSA+IGFjcmU7CivmraXkvJAgPiBwYWNlOwor5qqU5qGIID4gZmlsZTsKK+ewuOiVqSA+IHJvbGw7CivluLbmnIkgPiBoYXZlOwor5q2M5YWSID4gc29uZzsKK+aOpee4qyA+IHNlYW07Civluavlv5kgPiBoZWxwOwor57WQ5oiQID4gZm9ybTsKK+ihjOi1sCA+IHdhbGs7CivlhrDmqYcgPiBzbGVkOwor5YWs54mbID4gYnVsbDsKK+WfjuaxoCA+IGNpdHk7CivnspfnoIIgPiBncml0Owor5YWs54i1ID4gZHVrZTsKK+imgeaciSA+IG5lZWQ7CivohrPpo58gPiBtZWFsOwor6Lqy6JePID4gaGlkZTsKK+iPnOWWriA+IG1lbnU7CivmqavmqJEgPiBiZWFtOwor6KGT6KqeID4gdGVybTsKK+mBsuS6hiA+IGxhdGU7CivliZvli4EgPiBib2xkOwor6KGa6KGVID4gbGFuZTsKK+iJvue1qCA+IG1veGE7CivoqIjlioMgPiBwbGFuOwor5oyJ6KqeID4gbm90ZTsKK+ecn+WvpiA+IHRydWU7Civnl5voi6YgPiBwYWluOwor6Iqx55O2ID4gdmFzZTsKK+WFtuasoSA+IG5leHQ7CivmqZ/mmbogPiB0YWN0Owor5YK+6IG9ID4gaGFyazsKK+ajlemWrSA+IHBhbG07CivlhazmraMgPiBqdXN0Owor5bmz5Z2mID4gZmxhdDsKK+iHgOmDqCA+IGJ1dHQ7CivpkJjpoK0gPiBob3VyOwor5pON5YiHID4gcmFzaDsKK+WdpueEtiA+IGNhbG07CivopoHlvpcgPiBnb29kOwor54K45b2IID4gYm9tYjsKK+W6p+S9jSA+IHNlYXQ7Civoiq/niYcgPiBjaGlwOwor5Zue6IGyID4gZWNobzsKK+mQtemKuSA+IHJ1c3Q7CivlsYvpoIIgPiByb29mOwor5aCh5aOYID4gZm9ydDsKK+WFt+aciSA+IGhhdmU7CivpgJnlhZIgPiBoZXJlOwor6Kej5YeNID4gdGhhdzsKK+eUn+mVtyA+IGdyb3c7CivloIXlrpogPiBmaXJtOwor5be05o6MID4gcGFsbTsKK+eYoueXlSA+IHNjYXI7CivluLblrZAgPiBiYW5kOwor6ZW35qeNID4gcGlrZTsKK+WFreaciCA+IGp1bmU7CivpgJnlgIsgPiB0aGlzOwor6ZaA5qCTID4gYm9sdDsKK+igleifsiA+IHdvcm07Civlg7HnlKggPiBoaXJlOwor5ZyT55ukID4gZGlzazsKK+WcsOeNhCA+IGhlbGw7CivpmL/lgJEgPiBhbWVuOwor6KCV6JmrID4gd29ybTsKK+ebpOWtkCA+IHRyYXk7CivnrYbpjKIgPiBmdW5kOwor6Lev6YKKID4gY3VyYjsKK+eBjOacqCA+IGJ1c2g7CivoppblnJYgPiB2aWV3Owor5pKH5Y67ID4gc2tpbTsKK+i+suWltCA+IHNlcmY7Civln47luIIgPiBjaXR5Owor5aCF5Zu6ID4gZmlybTsKK+Wwj+mmrCA+IGNvbHQ7CivlhbXmiI4gPiBhcm1zOwor5YWJ5p2fID4gYmVhbTsKK+aomeaYjiA+IG1hcms7CivopIfmnKwgPiBjb3B5Owor6J++6JyNID4gdG9hZDsKK+i+suWgtCA+IGZhcm07Civnm5LlrZAgPiBjYXNlOwor5ZyL546LID4ga2luZzsKK+W4s+WWriA+IGJpbGw7CivojYnlnaogPiBsYXduOwor6I2J5ZywID4gbGF3bjsKK+aQtuWlqiA+IHNuYXA7CivooYDnrqEgPiB2ZWluOwor6LuN54GrID4gYXJtczsKK+i3m+i2syA+IGxhbWU7CivmiL/plpMgPiByb29tOwor6KaP5YqDID4gcGxhbjsKK+iFs+i3nyA+IGhlZWw7Civot6HosaEgPiBtYXJrOwor6KaP5YmHID4gcnVsZTsKK+WFrOW5syA+IGZhaXI7Civpjq7pnZwgPiBjYWxtOwor5YO55qy+ID4gY29zdDsKK+aoo+W8jyA+IHR5cGU7CivmkI3lrrMgPiBoYXJtOwor5qih5byPID4gbW9kZTsKK+ebn+WPiyA+IGFsbHk7CivlhZzluL0gPiBob29kOwor5beo5aSnID4gaHVnZTsKK+W3peWkqyA+IHdvcms7Civnlrznl5sgPiBhY2hlOwor6Lez6JqkID4gZmxlYTsKK+aok+W7giA+IGxvZnQ7Civohp3ok4sgPiBrbmVlOwor5L+u6KOcID4gbWVuZDsKK+WxgeipsSA+IHNoaXQ7CivngbDlobUgPiBkdXN0Owor5YG355yLID4gcGVlcDsKK+aooeWtkCA+IG1vbGQ7CivnlqTnl5UgPiBzY2FyOwor5Zyw5pa5ID4gYXJlYTsKK+WFlOWtkCA+IGhhcmU7CivlsI/ot68gPiBsYW5lOwor6Y+I6LevID4gbGluazsKK+eUmOiUlyA+IGNhbmU7Civmjozmk4ogPiBzbGFwOwor5beu5YuBID4gcG9vcjsKK+S9jumfsyA+IGJhc3M7CivmupzotbAgPiBzbGlwOwor55Sc6I+cID4gYmVldDsKK+aNsuabsiA+IGN1cmw7CivmuKzpqZcgPiB0ZXN0Owor55So6IazID4gZGluZTsKK+eskeipsSA+IGpva2U7CivlsbHnvoogPiBnb2F0Owor56u26LO9ID4gcmFjZTsKK+esqOibiyA+IGZvb2w7Civlsqnnn7MgPiByb2NrOwor5YWs5ZGKID4gcG9zdDsKK+W3peWFtyA+IHRvb2w7CivnlJroh7MgPiBldmVuOwor55Wl56K8ID4gY29kZTsKK+i3jOiQvSA+IGZhbGw7Civmva7mv5UgPiBkYW1wOwor6LyD5bCRID4gbGVzczsKK+eZvuWQiCA+IGxpbHk7CivohbDogokgPiBsb2luOwor5Zyw5bi2ID4gem9uZTsKK+ihqOagvCA+IGZvcm07CivplqPkuIsgPiBzaXJlOwor6b6N6aqoID4ga2VlbDsKK+i9ieWLlSA+IHR1cm47CivlhbbkvZkgPiByZXN0Owor5r2u5rWBID4gdGlkZTsKK+S/nee+hSA+IHBhdWw7CivoibLlvakgPiB0aW50Owor5Ziy56yRID4gamVlcjsKK+a9ruaxkCA+IHRpZGU7CivmjbLluLYgPiB0YXBlOwor5ZWk6YWSID4gYmVlcjsKK+a9m+awtCA+IGRpdmU7CivpjY3ph5EgPiBnaWxkOwor5bCP6Ii5ID4gYm9hdDsKK+S7gOm6vCA+IHdoYXQ7CivmjIfmqJkgPiBub3JtOwor6KGd5pKeID4gZGFzaDsKK+Wyqea8vyA+IGxhdmE7Civmj6HkvY8gPiBncmlwOwor5Zyw5Z+fID4gYXJlYTsKK+m8tOm8oCA+IG1vbGU7Civoo73kvZwgPiBtYWtlOwor5Zyf5aOkID4gc29pbDsKK+Wwj+e+iiA+IGxhbWI7CivmjqXlkLsgPiBraXNzOwor6Imv5aW9ID4gZ29vZDsKK+etlueVpSA+IHBsb3Q7CivoobDlvLEgPiB3ZWFrOwor5ryp5rimID4gZWRkeTsKK+Wcn+WcsCA+IGxhbmQ7Civkup7pursgPiBmbGF4Owor5ZO66aSKID4gZmVlZDsKK+WciOWllyA+IHRyYXA7CivnsYPlnIggPiByaW5nOwor6Y+I57WQID4gbGluazsKK+iGveaxgSA+IGdhbGw7CivlnLDljYAgPiBhcmVhOwor5p+U6LufID4gc29mdDsKK+a8j+a0niA+IGhvbGU7CivmjqHkvJAgPiBmZWxsOwor55W25pmCID4gdGhlbjsKK+WAn+asviA+IGxvYW47Civoopblj6MgPiBjdWZmOwor5oub5pS2ID4gaGlyZTsKK+ePvumHkSA+IGNhc2g7CivpppnojYkgPiBoZXJiOwor5Zq05bO7ID4gZ3JpbTsKK+eWueWtkCA+IHJhc2g7Civnp5jpra8gPiBwZXJ1Owor56iF6ZecID4gcGlrZTsKK+eUn+a0uyA+IGxpZmU7Civlg6fkvrYgPiBtb25rOwor5omT5421ID4gaHVudDsKK+aLluaLiSA+IGhhdWw7Civmi7HlvaIgPiBhcmNoOwor5oqx5pyJID4gaGF2ZTsKK+WcjeS9jyA+IGdpcmQ7Civmo43mo5IgPiBjbHViOwor6IGy6K29ID4gZmFtZTsKK+iHquW3sSA+IHNlbGY7Civmi43miZMgPiBmbGFwOwor5ouN5omLID4gY2xhcDsKK+WCteWLmSA+IGRlYnQ7Civogb3oposgPiBoZWFyOwor6aO+6YeYID4gc3R1ZDsKK+Wwj+eJmyA+IGNhbGY7CivooYDloYogPiBnb3JlOwor5rWq6aCtID4gd2F2ZTsKK+WBj+W3riA+IGJpYXM7Civlgr7lgJIgPiBwb3VyOwor6aqw5a2QID4gZGljZTsKK+iyoOi8iSA+IGxvYWQ7CivmipjmlrcgPiBzbmFwOwor6ICB6ZeGID4gYm9zczsKK+iBluipqSA+IGh5bW47Civlgqzkv4MgPiB1cmdlOwor6Yuq6KitID4gcGF2ZTsKK+enn+mHkSA+IHJlbnQ7CivmiZPmrbsgPiBraWxsOwor6aKo6ZqqID4gcmlzazsKK+aer+iQjiA+IHdpbHQ7CivnlKjmiLYgPiB1c2VyOwor5rW46YCPID4gc29hazsKK+eWsuWApiA+IHRpcmU7CivohqDluLYgPiB0YXBlOwor6LOi6IO9ID4gc2FnZTsKK+a1t+i7jSA+IG5hdnk7Civoh63lkbMgPiBmdW1lOwor5YG25YOPID4gaWRvbDsKK+aJi+adliA+IGNhbmU7CivmtbfosbkgPiBzZWFsOwor6Leo5bqmID4gc3BhbjsKK+a6q+aaliA+IHdhcm07CivlraPnr4AgPiB0aW1lOwor5p6c6IKJID4gcHVscDsKK+Wwj+aZgiA+IGhvdXI7CivmipXlsIQgPiBkYXJ0Owor6buD6YeRID4gZ29sZDsKK+WRvemBiyA+IGZhdGU7CivlrZfnr4AgPiBieXRlOwor5rW36KeSID4gY2FwZTsKK+WYhuaBryA+IHNpZ2g7CivllKfnrZIgPiBwdW1wOwor55Wl5Y67ID4gb21pdDsKK+WTuuiCsiA+IGZlZWQ7CivnvoXppqwgPiByb21lOwor6ICD6KmmID4gZXhhbTsKK+aJi+aOjCA+IHBhbG07CivogqXnmoIgPiBzb2FwOwor5oSP6KaLID4gdmlldzsKK+WAjeWhlCA+IGJldGE7CivlsL7lt7QgPiB0YWlsOwor6LSF55ajID4gd2FydDsKK+aCoOmWkiA+IGVhc2U7CivkvK/niLUgPiBlYXJsOwor5ZGo6YGKID4gdG91cjsKK+aiqOWtkCA+IHBlYXI7CivlsLrlr7ggPiBzaXplOwor6aC46aCFID4gbmVjazsKK+eQteeQtiA+IGx1dGU7CivmoYjmlocgPiB0ZXh0Owor6Iag5Y23ID4gZmlsbTsKK+mKgOihjCA+IGJhbms7CivmuLjms7MgPiBzd2ltOwor6Jmn57y6ID4gd2FuZTsKK+WAn+WHuiA+IGxlbmQ7Civlr4zmnIkgPiByaWNoOwor5L+C5bCPID4gdGlueTsKK+WTgeiEqyA+IHBpbnQ7CivlrpfmtL4gPiBzZWN0Owor5LiN6YGcID4gcnVkZTsKK+mmtOacjSA+IHRhbWU7CivkuI3pgY4gPiBvbmx5Owor5LiN6YGCID4gZmFpbDsKK+WwluWzsCA+IHBlYWs7Civmu77li5UgPiByb2xsOwor6LKn56quID4gcG9vcjsKK+Wwj+WztiA+IGlzbGU7CivkuLvopoEgPiBtYWluOwor5p2f57ibID4gYmluZDsKK+adn+e3iiA+IGdpcmQ7CivoloTpnKcgPiBtaXN0Owor5riF5r6IID4gZmFpcjsKK+etluWKgyA+IHBsb3Q7CivosazogokgPiBwb3JrOwor5L2V5pmCID4gd2hlbjsKK+WuueaYkyA+IGVhc3k7CivkuIvot4wgPiBmYWxsOwor6buD6JyCID4gd2FzcDsKK+WPo+mgrSA+IG9yYWw7CivnvbDph5EgPiBmaW5lOwor5Luk54uAID4gd3JpdDsKK+iVqOmhniA+IGZlcm47CivosrvnlKggPiBjb3N0Owor5ZGK6KqhID4gd2FybjsKK+iYhuiRpiA+IHJlZWQ7CivmipPkvY8gPiBncmFiOwor5p2/55quID4gc2xhYjsKK+iEhuW8sSA+IHdlYWs7CivmoLjlv4MgPiBjb3JlOwor6aCt6YOoID4gaGVhZDsKK+agvOW8jyA+IGZvcm07Civmt7Hmt7EgPiBkZWVwOwor5rG66aylID4gZHVlbDsKK+ixhuiFkCA+IHRvZnU7Civmh7bmg7AgPiBpZGxlOwor5ru05LiLID4gZHJpcDsKK+aJgeWdryA+IHNsYWI7CivkvovlrZAgPiBjYXNlOwor5ZKS5721ID4gZGFtbjsKK+iEluWtkCA+IG5lY2s7CivlkIzovKkgPiBwZWVyOwor546p56yRID4gam9rZTsKK+iXpOiUkyA+IHZpbmU7Civkvo3lpbMgPiBtYWlkOwor6JyC5oi/ID4gaGl2ZTsKK+aIkuWtkCA+IHJpbmc7Civmu5HlgJIgPiBzbGlwOwor5rq25YyWID4gbWVsdDsKK+a4uOaIsiA+IGdhbWU7CivlrbjmnJ8gPiB0ZXJtOwor6aas5buEID4gYmFybjsKK+S6nueVtiA+IGFkYW07Civnv4XohoAgPiB3aW5nOwor5LyK5pyXID4gaXJhbjsKK+S4u+e+qSA+IFwtaXNtOwor6bql6Iq9ID4gbWFsdDsKK+WvhuWupCA+IGNlbGw7Civni7nosLcgPiBnbGVuOwor56qp5beiID4gbmVzdDsKK+eJoem5vyA+IGhhcnQ7Civpoqjnro8gPiBraXRlOwor5ZCN6KmeID4gbm91bjsKK+WtmOaguSA+IHN0dWI7CivmmYLplpMgPiB0aW1lOwor5rS+57O7ID4gc2VjdDsKK+ePvuasviA+IGNhc2g7CivnorzpoK0gPiBkb2NrOwor6YeA6YCgID4gYnJldzsKK+iXjeiJsiA+IGJsdWU7Civlronmga8gPiByZXN0Owor6IGW5q2MID4gaHltbjsKK+mjvea7vyA+IGZ1bGw7Civlk63ms6MgPiB3ZWVwOwor6aOf54mpID4gZm9vZDsKK+aFvuacmyA+IGx1c3Q7Civlj7LoqakgPiBlcGljOwor5LiA6IisID4gc2FtZTsKK+Wwj+S4mCA+IGhpbGw7Civmg4Xnr4AgPiBwbG90Owor56m/5bi2ID4gd2VhcjsKK+S8keaBryA+IHJlc3Q7CivpoIjopoEgPiBtdXN0Owor5p2+5qi5ID4gcGluZTsKK+iWlOiWhyA+IHJvc2U7Civkup7mtLIgPiBhc2lhOwor5a625ZySID4gaG9tZTsKK+aGkOaGqyA+IHBpdHk7Civmmpfol48gPiBoaWRlOwor54mb6aOyID4gZ3VscDsKK+izuuW+lyA+IGVhcm47Civos4fmlpkgPiBkYXRhOwor6LGO55C0ID4gaGFycDsKK+S4gOe+pCA+IGdhbmc7CivmnpzmlrcgPiBmaXJtOwor56iu5pePID4gcmFjZTsKK+m7keeXoyA+IG1vbGU7Civpn7Poqr8gPiB0b25lOwor5rSe56m0ID4gY2F2ZTsKK+adv+ainSA+IGxhdGg7CivkuIrntYMgPiB3aW5kOwor5ZOA5rOjID4gd2FpbDsKK+iytOaXjyA+IGxvcmQ7Civlk4jmrKAgPiB5YXduOwor5rWq5r2uID4gd2F2ZTsKK+emrueJqSA+IGdpZnQ7CivlkIToh6ogPiBlYWNoOwor6LGs5rK5ID4gbGFyZDsKK+mMq+WuiSA+IHppb247CivnjbXniakgPiBwcmV5Owor5b+r6YCfID4gZmFzdDsKK+mdiOmtgiA+IHNvdWw7Civniq/opo8gPiBmb3VsOwor5a6w5Yi2ID4gcnVsZTsKK+S5g+eIviA+IHRodXM7Civpo7zmlpkgPiBmZWVkOwor5rK56IaPID4gYmFsbTsKK+ePreaIvyA+IGphaWw7CivpvpDlpKcgPiBodWdlOwor5riv5Y+jID4gcG9ydDsKK+aWkem7niA+IHNwb3Q7CivkuIDnopcgPiBib3dsOwor5aSn6bq7ID4gaGVtcDsKK+a1ruaomSA+IGJ1b3k7Civmg7Pms5UgPiBpZGVhOwor5a625LyZID4gY2hhcDsKK+S6pOaOpSA+IGpvaW47CivlvozpnaIgPiByZWFyOwor5aSp6bWdID4gc3dhbjsKK+acg+a8jyA+IGxlYWs7CivmlbTpvYogPiB0aWR5Owor5piH6LW3ID4gcmlzZTsKK+WVhuWTgSA+IGdvb2Q7CivljZHphJkgPiBiYXNlOwor54qE6KeSID4gaG9ybjsKK+avjemmrCA+IG1hcmU7CivlrZflnosgPiBmb250Owor5a6J5YWoID4gc2FmZTsKK+eoruWtkCA+IHNlZWQ7CivlraTllq4gPiBsb25lOwor56iL5byPID4gZm9ybTsKK+acqOahtiA+IGNhc2s7Civnvrnmua8gPiBzb3VwOwor5Y2w6K2JID4gc2VhbDsKK+acqOadvyA+IHNsYWI7CivlkLnniZsgPiBicmFnOwor5pyo5p2QID4gd29vZDsKK+mjvuW4tiA+IHNhc2g7CivogIHmkr4gPiBsYW9zOwor5pym5pynID4gYmx1cjsKK+mdoOi/kSA+IG5lYXI7CivomZvlvLEgPiB3ZWFrOwor5raI5oGvID4gbmV3czsKK+iqsumhjCA+IHRhc2s7CivmnJ/mnJsgPiBob3BlOwor5rex5Y6aID4gZGVlcDsKK+S4u+apnyA+IGNvcmU7CivpvLvlrZAgPiBub3NlOwor54+g5a2QID4gYmVhZDsKK+aXhemBiiA+IHRyaXA7CivnqanlgaUgPiBmaXJtOwor6YOo6ZqKID4gYXJteTsKK+S4iua8siA+IHJpc2U7Civms7DnhLYgPiBjYWxtOwor6b2n5ZKsID4gZ25hdzsKK+eogOWwkSA+IHJhcmU7Civpu5HmmpcgPiBkYXJrOwor5rOi54m5ID4gYmF1ZDsKK+mHjuemvSA+IGZvd2w7CivmmojnnKkgPiBkYXplOwor5aWU6YCDID4gZmxlZTsKK+m7juaYjiA+IGRhd247CivmsrvnmZIgPiBjdXJlOwor5oSP5oCdID4gaWRlYTsKK+afkOS6myA+IHNvbWU7CivmhI/lv7UgPiBpZGVhOwor57mB6ZucID4gbWFueTsKK+aEj+W/lyA+IHdpbGw7CivnqLHlkbwgPiBjYWxsOwor5pu45qGMID4gZGVzazsKK+W8t+miqCA+IGdhbGU7Civpm4Tpub8gPiBidWNrOwor6bq75pyoID4gbnVtYjsKK+acg+aZpCA+IG1lZXQ7Civpu4PmmI8gPiBkdXNrOwor6aCF55uuID4gaXRlbTsKK+mfgee5qSA+IHJlaW47CivllK/kuIAgPiBvbmx5Owor6Zuy6ZuAID4gbGFyazsKK+eHkumWiyA+IGJvaWw7CivnqYDlgIkgPiBiYXJuOwor5p2O5a2QID4gcGx1bTsKK+iBt+S9jSA+IHBvc3Q7Civph47nlJ8gPiB3aWxkOwor5ZCm5rG6ID4gdmV0bzsKK+aymeeZvCA+IHNvZmE7Civms6LmtaogPiB3YXZlOwor5LiA5qijID4gc2FtZTsKK+S7luWAkSA+IHRoZXk7Civms6HmsqsgPiBmb2FtOwor5q2l6amfID4gc3RlcDsKK+iAgeWphiA+IHdpZmU7CivkuLvmhI8gPiBwbGFuOwor6Z2S6JuZID4gZnJvZzsKK+acrOWtkCA+IGJvb2s7CivniZvogokgPiBiZWVmOwor6LGQ5a+MID4gcmljaDsKK+S4g+aciCA+IGp1bHk7CivpirfllK4gPiBzZWxsOwor5LiK5piHID4gcmlzZTsKK+WTjuWRgCA+IGRhbW47Civpnq3nrJ4gPiBmbG9nOwor5LiA5pyNID4gZG9zZTsKK+WkqeizpiA+IGdpZnQ7Civoq4foqbEgPiB0YWxrOwor6LGG5a2QID4gYmVhbjsKK+WqveWqvSA+IG1hbWE7CivlkIzmqKMgPiBzYW1lOwor56Oa55OmID4gdGlsZTsKK+aVj+mKsyA+IGtlZW47CivmsrnmsrkgPiBvaWx5Owor5rOi5p2fID4gYmVhbTsKK+WMheijnSA+IHBhY2s7Civms5XmoYggPiBiaWxsOwor5rGh55eVID4gYmxvdDsKK+mJpOWtkCA+IGhvb2s7CivljbDnq6AgPiBzZWFsOwor6Z2c6ISIID4gdmVpbjsKK+efpemBkyA+IGtub3c7CivnjJvmkp4gPiBzbGFtOwor6YG86ZeKID4gdmFzdDsKK+aVhemEiSA+IGhvbWU7CivpnaLnvakgPiB2ZWlsOwor5b6e6ICMID4gdGh1czsKK+W/meeijCA+IGJ1c3k7Civpnq3nl5UgPiB3ZWx0Owor6YKK6YuSID4gd2luZzsKK+mFuOeXmyA+IGFjaGU7Civlu6Ppl4ogPiB3aWRlOwor56We5oOFID4gbG9vazsKK+S6nuS4gSA+IGFkZW47CivnjajlpY8gPiBzb2xvOwor5rKQ5rW0ID4gYmF0aDsKK+acgOWlvSA+IGJlc3Q7CivnjJbmiqsgPiB3aWxkOwor5ZKA5Zq8ID4gY2hldzsKK+WkluiijSA+IHJvYmU7CivoqpPoqZ4gPiBvYXRoOwor5YuV6KmeID4gdmVyYjsKK+eOqeWBtiA+IGRvbGw7CivoqpPoqIAgPiBvYXRoOwor6JaE5pquID4gZHVzazsKK+e6lue0sCA+IGZpbmU7CivkuIvlt7QgPiBjaGluOwor5paw6IGeID4gbmV3czsKK+eNheWtkCA+IGxpb247Civmm7TlpJogPiBtb3JlOwor5aKe6ZW3ID4gZ3JvdzsKK+WPquaciSA+IG9ubHk7CivlkYblrZAgPiBmb29sOwor5pq05b6SID4gdGh1ZzsKK+axveawtCA+IHNvZGE7CivpnaLnqY0gPiBhcmVhOwor5ZG95ZCNID4gbmFtZTsKK+auteiQvSA+IHBhcnQ7Civnn63opaogPiBzb2NrOwor5byV6K2JID4gY2l0ZTsKK+mIleW4tiA+IGJvbmQ7CivliY3pnaIgPiBmb3JlOwor6Zmj6aKoID4gZ3VzdDsKK+e3qOi8ryA+IGVkaXQ7CivmrbvoqJggPiBjcmFtOwor5oOh5YqjID4gdmlsZTsKK+a1geWLlSA+IGZsb3c7CivmnIPlkIggPiBtZWV0Owor5q+b57eaID4geWFybjsKK+WMl+e0hCA+IG5hdG87Civph43mk4ogPiBiYW5nOwor5rS+5Ye6ID4gc2VuZDsKK/CgsYMgPiB0aGluOwor5rGg5rK8ID4gcG9vbDsKK+atpeiqvyA+IGdhaXQ7CivnuanntKIgPiByb3BlOwor6YCa6aKoID4gYWlyeTsKK+aBkOaHvCA+IGZlYXI7Civnoo7niYcgPiBjaGlwOwor57ea6LevID4gbGluZTsKK+S4gOWllyA+IHN1aXQ7CivljaHniYcgPiBjYXJkOwor6aGe5Z6LID4gdHlwZTsKK+WMhee0riA+IGJpbmQ7CivkuK3ljYggPiBub29uOwor5q2m6KOdID4gYXJtczsKK+iWhOW8sSA+IHdlYWs7CivkuIDloIYgPiBwaWxlOwor6K6K5o+bID4gdmFyeTsKK+iSvOeZvSA+IHBhbGU7CivmsLTmu7QgPiBkcm9wOwor57ep6KejID4gZWFzZTsKK+acieS6myA+IHNvbWU7CivmnIjkuq4gPiBtb29uOwor5bm06aCtID4geWVhcjsKK+ekpuWxsSA+IG1pbmU7CivpgZPot68gPiByb2FkOwor5rSX5Yi3ID4gd2FzaDsKK+mZuOi7jSA+IGFybXk7CivmlLbol48gPiBrZWVwOwor5pOg6YCyID4gdHVjazsKK+S4iuWPuCA+IGJvc3M7CivpoJjlsI4gPiBsZWFkOwor5rC05rGgID4gcG9uZDsKK+mbu+e3miA+IHdpcmU7CivkuIDlkLkgPiBwdWZmOwor5q+b55quID4gcGVsdDsKK+eDj+m0iSA+IGNyb3c7Civli57ntK8gPiB0b2lsOwor6YGL6LK7ID4gZmFyZTsKK+WjgeiZsSA+IHRpY2s7CivmkqXplosgPiBwb2tlOwor6Kit6KiIID4gcGxhbjsKK+i/t+mZoyA+IG1hemU7CivlkJ3ll4cgPiBtZWFuOwor5LiA5Y2KID4gaGFsZjsKK+mgguWzsCA+IHBlYWs7Civol6XkuLggPiBwaWxsOwor5pif5pyfID4gd2VlazsKK+awtOanvSA+IHNpbms7CivnvLrlsJEgPiBsYWNrOwor5LiW5LuHID4gZmV1ZDsKK+aSnumOliA+IGxvY2s7Civpnq3mkrsgPiBsYXNoOwor6Zmw6KyAID4gcGxvdDsKK+WOreaBqCA+IGhhdGU7CivpgYfoposgPiBtZWV0Owor5piO5pifID4gc3RhcjsKK+S4jeS4gCA+IHZhcnk7CivorIDmsYIgPiBzZWVrOwor6Zyy54efID4gY2FtcDsKK+avkueJqSA+IHBlc3Q7CivmmpblkowgPiB3YXJtOwor5LiA5LqbID4gc29tZTsKK+mereaJkyA+IHdoaXA7Civlj6vlm4IgPiBob290Owor54K66aaWID4gaGVhZDsKK+axguaEmyA+IHdvbzsKK+WQjOS9jSA+IHBhcjsKK+mcsuawtCA+IGRldzsKK+WPl+WIsCA+IGdldDsKK+WPr+S7pSA+IGNhbjsKK+mFkuW7iiA+IGJhcjsKK+WNmuW+lyA+IHdpbjsKK+WPiuWFtiA+IGFuZDsKK+efs+ayuSA+IG9pbDsKK+aZguS7oyA+IGFnZTsKK+avr+WtkCA+IHJ1ZzsKK+W5tOe0gCA+IGFnZTsKK+Wll+WtkCA+IGNhcDsKK+egtOW4gyA+IHJhZzsKK+mtmumwrSA+IGZpbjsKK+W8t+aLiSA+IHR1ZzsKK+e2k+eUsSA+IHZpYTsKK+WiqOawtCA+IGluazsKK+ioreazlSA+IHRyeTsKK+mWk+irnCA+IHNweTsKK+ecvOedmyA+IGV5ZTsKK+atpOaZgiA+IG5vdzsKK+WmguS9lSA+IGhvdzsKK+e1guerryA+IGVuZDsKK+ecvOeVjCA+IGtlbjsKK+W5vOeNuCA+IGN1YjsKK+mbouWtkCA+IGlvbjsKK+eEpuayuSA+IHRhcjsKK+mAgOa9riA+IGViYjsKK+eBq+iFvyA+IGhhbTsKK+mZsOaalyA+IGRpbTsKK+e3iuaKsSA+IGh1ZzsKK+e4veWSjCA+IHN1bTsKK+imj+eOhyA+IGxhdzsKK+maseWvhiA+IHNseTsKK+egjeS8kCA+IGhldzsKK+WIuuaOoiA+IHByeTsKK+iKuOiKuCA+IGFsbDsKK+iJsuiqvyA+IGh1ZTsKK+WBh+mrriA+IHdpZzsKK+mAlOW+kSA+IHdheTsKK+WJjeWklSA+IGV2ZTsKK+WgheaenCA+IG51dDsKK+WFiOeUnyA+IHNpcjsKK+ashOWciCA+IHBlbjsKK+apoeaouSA+IG9hazsKK+iMtuadryA+IGN1cDsKK+imquWxrCA+IGtpbjsKK+aLlui7iiA+IHRvdzsKK+Whq+WFhSA+IHBhZDsKK+W4veWtkCA+IGhhdDsKK+aQluaTuiA+IHdhZzsKK+ecvOWJjSA+IG5vdzsKK+WIgOWPoyA+IGN1dDsKK+aoheaouSA+IGZpcjsKK+eUqOmAlCA+IHVzZTsKK+eUnOmFkiA+IHJ1bTsKK+ecvOS4iyA+IG5vdzsKK+WHuuWDuSA+IGJpZDsKK+ilr+WiiiA+IHBhZDsKK+WCs+ecnyA+IGZheDsKK+iLpuaDsSA+IGFpbDsKK+iFs+i2viA+IHRvZTsKK+aLluiIuSA+IHRvdzsKK+mqqOe9iCA+IHVybjsKK+eZvOaAkiA+IG1hZDsKK+i7n+avmyA+IGZ1cjsKK+iHguiGgCA+IGFybTsKK+i8leaJkyA+IHRhcDsKK+aQtuWKqyA+IHJvYjsKK+WFkuWtkCA+IHNvbjsKK+aJr+ijgiA+IHJpcDsKK+Wwj+iyuyA+IHRpcDsKK+amhuaouSA+IGVsbTsKK+WVnOmjsiA+IHNpcDsKK+W3peS9nCA+IGpvYjsKK+aPtOWKqSA+IGFpZDsKK+iCi+mqqCA+IHJpYjsKK+idmeidoCA+IGJhdDsKK+m+jemgrSA+IHRhcDsKK+aJi+iHgiA+IGFybTsKK+a3t+mbnCA+IG1peDsKK+WcsOWcliA+IG1hcDsKK+mshuW8myA+IHNhZzsKK+eUn+eXhSA+IGlsbDsKK+iii+WtkCA+IGJhZzsKK+mkoemkhSA+IHBpZTsKK+WwhOe3miA+IHJheTsKK+mLpOmgrSA+IGhvZTsKK+mLuOmWiyA+IHNhdzsKK+iAgem8oCA+IHJhdDsKK+aenOmGrCA+IGphbTsKK+iho+WkviA+IHBlZzsKK+WcjeWFnCA+IGJpYjsKK+aLluaKiiA+IG1vcDsKK+S5iOm7niA+IGFjZTsKK+Wwj+eLlyA+IHB1cDsKK+iyqOi7iiA+IHZhbjsKK+aIsOeIrSA+IHdhcjsKK+m7numgrSA+IG5vZDsKK+iCpeiDliA+IGZhdDsKK+Wwjea6liA+IGFpbTsKK+WZtOWwhCA+IGpldDsKK+WCouS8mSA+IGd1eTsKK+iIieWLlSA+IGFjdDsKK+m6i+m5vyA+IGVsazsKK+acqOmHmCA+IHBlZzsKK+eTpuaWryA+IGdhczsKK+mpouWtkCA+IGFzczsKK+eUt+WtqSA+IGJveTsKK+aJgOaciSA+IGFsbDsKK+mRsOWMmSA+IGtleTsKK+WTvOiBsiA+IGh1bTsKK+S5hemBoCA+IG9sZDsKK+mjm+ifsiA+IGJ1ZzsKK+ethuWwliA+IG5pYjsKK+m6pemFkiA+IGFsZTsKK+S/ruWlsyA+IG51bjsKK+S+v+W4vSA+IGNhcDsKK+acg+iyuyA+IGR1ZTsKK+WwvOWnkSA+IG51bjsKK+S5vuiNiSA+IGhheTsKK+WAn+WCtSA+IG93ZTsKK+aHh+axgiA+IGJlZzsKK+WxouWKoCA+IHBseTsKK+mjm+e/lCA+IGZseTsKK+aJh+WtkCA+IGZhbjsKK+iFkOWjniA+IHJvdDsKK+epuuawoyA+IGFpcjsKK+S9huaYryA+IGJ1dDsKK+iXneihkyA+IGFydDsKK+WuieaUviA+IGxheTsKK+WXmuWSvSA+IHNvYjsKK+afk+aWmSA+IGR5ZTsKK+S7mOasviA+IHBheTsKK+S4jeiJryA+IGJhZDsKK+i0j+W+lyA+IHdpbjsKK+mgjOipniA+IG9kZTsKK+S5vueHpSA+IGRyeTsKK+WRiue1giA+IGVuZDsKK+axvei7iiA+IGNhcjsKK+a1t+eBoyA+IGJheTsKK+iAs+actSA+IGVhcjsKK+S9jeWFgyA+IGJpdDsKK+S6lOaciCA+IG1heTsKK+S9leS6uiA+IHdobzsKK+eHlem6pSA+IG9hdDsKK+awo+i7iiA+IGJ1czsKK+acq+acnyA+IGVuZDsKK+avjembniA+IGhlbjsKK+WTgOaEgSA+IHNhZDsKK+ekpuefsyA+IG9yZTsKK+WTgOaAqCA+IHNhZDsKK+WkqumZvSA+IHN1bjsKK+aAlee+niA+IGNveTsKK+adr+WtkCA+IGN1cDsKK+isiuipsSA+IGxpZTsKK+isiuiogCA+IGxpZTsKK+mbtumgrSA+IG9kZDsKK+S7u+S9lSA+IGFueTsKK+a3qOWAvCA+IG5ldDsKK+WllOi3kSA+IHJ1bjsKK+WllOi1sCA+IHJ1bjsKK+a1geaEnyA+IGZsdTsKK+WTjuWWsiA+IGhleTsKK+ePvuS7iiA+IG5vdzsKK+aal+a3oSA+IGRpbTsKK+aYr+eahCA+IHllczsKK+S4gOaOkiA+IHJvdzsKK+aWueiInyA+IGFyazsKK+aWsOiIiCA+IG5ldzsKK+S4iuW4nSA+IGdvZDsKK+iAjOS7iiA+IG5vdzsKK+WPr+aYryA+IGJ1dDsKK+axveayuSA+IGdhczsKK+eIhuiBsiA+IHBvcDsKK+e9quaDoSA+IHNpbjsKK+aUtuiyuyA+IGZlZTsKK+avjee+iiA+IGV3ZTsKK+azleW+iyA+IGxhdzsKK+aAjuaooyA+IGhvdzsKK+mbnuibiyA+IGVnZzsKK+S4jeWWhCA+IGJhZDsKK+mwu+mtmiA+IGVlbDsKK+WkqeepuiA+IHNreTsKK+aCsuWCtyA+IHNhZDsKK+W6iumLqiA+IGJlZDsKK+S4puS4lCA+IGFuZDsKK+WIpemHnSA+IHBpbjsKK+e4q+e0iSA+IHNldzsKK+S4gOWIhyA+IGFsbDsKK+mAmumAmiA+IGFsbDsKK+W5s+mNiyA+IHBhbjsKK+aUvue9riA+IHB1dDsKK+W5tOmCgSA+IG9sZDsKK+avjeeJmyA+IGNvdzsKK+WmguaenCA+IGlmOwor6YKE5pivID4gb3I7CivnmoToqbEgPiBpZjsKK+WFieeinyA+IGNkOwor6KaB5pivID4gaWY7Civoi6XmmK8gPiBpZjsKK+Wah+iBsiA+IGhvOwor5oiW6ICFID4gb3I7CivmiJHnmoQgPiBteTsKK+WBh+WmgiA+IGlmOwor5oiR5YCRID4gd2U7CivllYrlkYAgPiBvaDsKK+aWp+mgrSA+IGF4Owor5LiA5L2GID4gaWY7CivkuIDlgIsgPiBhOwor46GOID4gdGhlXC1sb25nXC1iYW5kc1wtb3JcLXJpYmJvbnNcLWF0dHJhY2hlZFwtdG9cLWZsYWdzXC1hbmRcLWJhbm5lcnNcLXRoZVwtZmVhdGhlclwtZGVjb3JlY3RlZFwtY2FycmlhZ2VzXC1vclwtZHJlc3NlczsKK+mDryA+IG5hbWVcLW9mXC1hXC1zbWFsbFwtYW5jaWVudFwtcHJpbmNpcGFsaXR5XC13aGljaFwtd2FzXC1zaXR1YXRlZFwtaW5cLXdoYXRcLWlzXC1ub3dcLXBhcnRcLW9mXC1zaGFudHVuZ1wtYW5kXC1raWFuZ3N1Owor5JCeID4gdGhlXC10aGluXC1tZW1icmFuZVwtYmV0d2Vlblwtc2tpblwtYW5kXC1mbGVzaFwtdGhhdFwtcHJvdGVjdHNcLWludGVybmFsXC1vcmdhbnNcLW9yXC10aXNzdWVzXC1pblwtdGhlXC1odW1hblwtYm9keTsKK+ePqiA+IGFcLWphZGVcLXRhYmxlXC1jb25mZXJyZWRcLXVwb25cLWZldWRhbFwtcHJpbmNlc1wtYnlcLXRoZVwtZW1wZXJvclwtYXNcLWFcLXN5bWJvbFwtb2ZcLWRpZ25pdHlcLWFuZFwtYXV0aG9yaXR5Owor47q6ID4gYVwtdmVyeVwtcHJlY2lvdXNcLXBpZWNlXC1vZlwtamFkZVwtd29yblwtYnlcLWFuY2llbnRcLWVtcGVyb3JzXC10b1wtbWF0Y2hcLXRhYmxlc1wtYm9ybmVcLWJ5XC10aGVcLW5vYmxlczsKK+SAmCA+IHRvXC1jb3ZlclwtdGhlXC1saW5lXC1vZlwtdmlzaW9uXC1vclwtc2lnaHRcLVwtXC10aGVcLXN0cmFpZ2h0XC1saW5lXC1iZXR3ZWVuXC1hblwtb2JqZWN0XC1hbmRcLW9uZScnc1wtZXllczsKK+OopyA+IHdvb2Rlblwtc3RpY2tcLW9yXC1iYW1ib29cLWNhbmVcLXVzZWRcLXRvXC1zdXBwb3J0XC10aGVcLWNvdmVyaW5nXC1vZlwtYVwtY2FycmlhZ2VcLWluXC1hbmNpZW50XC10aW1lczsKK+OUoyA+IGluXC1hbmNpZW50XC10aW1lc1wtdG9cLWZpZ2h0XC1hZ2FpbnN0XC10aGVcLWVuZW15XC1ieVwtcHVzaGluZ1wtZG93blwtdGhlXC1iaWdcLXJvY2tzXC1mcm9tXC11cFwtaGlnaDsKK+SaqyA+IG9ybmFtZW50YWxcLWFydGljbGVzXC1tYWRlXC1vZlwtaG9ybnNcLXVzZWRcLXRvXC1kZWNvcmF0ZVwtdGhlXC10b3BcLW9mXC1hXC1zdGlja1wtb3JcLWhvcnNld2hpcDsKK+eskCA+IGJhbWJvb3NcLXBsYWNlZFwtYWNyb3NzXC13b29kZW5cLWZyYW1lc1wtb25cLXdoaWNoXC1ncmFpblwtbWF5XC1iZVwtc3RvcmVkXC1pblwtZGFtcFwtY2xpbWF0ZXM7Civko54gPiBuYW1lXC1vZlwtYW5cLWFuY2llbnRcLXN0YXRlXC13aGljaFwtb2NjdXBpZWRcLXRoZVwtc2l0ZVwtb2ZcLXRoZVwtcHJlc2VudFwtcHJvdmluY2VcLW9mXC1odWJlaTsKK+SHtiA+IGFcLXNtYWxsXC1yYWZ0ZXJzXC1tYWRlXC1vZlwtYmFtYm9vXC13aGljaFwtcHJvamVjdFwtZm9ybVwtdGhlXC1lYXZlc1wtYW5kXC1zdXBwb3J0XC10aGVcLXRpbGVzOwor6LOoID4gdHJpYnV0ZVwtcGFpZFwtaW5cLWNsb3RoXC1ieVwtdGhlXC10cmliZXNcLWluXC1zemVjaHdhblwtYW5kXC15dW5uYW5cLXVuZGVyXC10aGVcLWhhblwtZHluYXN0eTsKK+emqyA+IHNhY3JpZmljZVwtb2ZmZXJlZFwtYXRcLXRoZVwtZW5kXC1vZlwtdGhlXC10aHJlZVwteWVhcnMnJ1wtbW91cm5pbmdcLXRoZVwtZGVhdGhcLW9mXC1hXC1wYXJlbnQ7CivkgqkgPiBhblwtaW5cLXNsYWJcLW9yXC1pbmtcLXN0b25lXC1zb3VuZFwtb2ZcLXBlYmJsZXNcLW9yXC1zdG9uZXNcLXJ1YmJpbmdcLW9yXC1rbm9ja2luZ1wtdG9nZXRoZXI7Civkgo0gPiBhXC1raW5kXC1vZlwtd2VhcG9uXC1jYXJyaWVkXC1ieVwtdGhlXC1ob25vclwtZ3VhcmRcLWJlZm9yZVwtdGhlXC1lbXBlcm9yXC1pblwtYW5jaWVudFwtdGltZXM7CivooYggPiB0aGVcLWJsb29kXC1vZlwtYVwtc2FjcmlmaWNpYWxcLWZvd2xcLXdoaWNoXC13YXNcLXNwcmlua2xlZFwtb25cLXRoZVwtZG9vcnNcLWFuZFwtdmVzc2VsczsKK+OvqSA+IHRvXC1wdXRcLXRoZVwtZ3Jvd2luZ1wtdXBcLXNpbGt3b3Jtc1wtaW5cLWRpZmZlcmVudFwtZnJhbWVzXC1hY2NvcmRpbmdcLXRvXC10aGVpclwtc2l6ZXM7CivjmrMgPiBhXC1sYWR5XC10ZWFjaGVyXC10b1wtdGVhY2hcLXRoZVwtcHJvcGVyXC1ydWxlc1wtb2ZcLWZlbWFsZVwtYmVoYXZpb3JcLWluXC1hbmNpZW50XC10aW1lczsKK+e1pSA+IHRvXC1oYXJuZXNzXC1hXC1ob3JzZVwtYVwtYm9hcmRcLWluXC1mcm9udFwtb2ZcLWFcLWNhcnJpYWdlXC1mb3JcLXRoZVwtZHJpdmVyXC10b1wtbGVhblwtb247Civki60gPiB0b1wtd2VhdmVcLXNpbGtcLWZhYnJpY3NcLXdpdGhcLWdyZWVuXC1jb2xvclwtZm9yXC1sb25naXR1ZGVcLWFuZFwtd2hpdGVcLWZvclwtbGF0aXR1ZGU7CivjrbwgPiBhXC1yZWN0YW5nbGVcLXNoYXBlZFwtcGVnXC1vclwtc2hvcnRcLXBvc3RcLWJldHdlZW5cLXRoZVwtYmVhbnNcLWFuZFwtdGhlXC1yb29mXC10aW1iZXJzOwor55GEID4gYVwtb3JuYW1lbnRhbFwtcGllY2VcLW9mXC1qYWRlXC1zZXZlcmFsXC1pbmNoZXNcLWFjcm9zc1wtd2l0aFwtYVwtaG9sZVwtaW5cLXRoZVwtY2VudGVyOwor5KykID4gdG9cLXB1dFwtdGhlXC10aGlja1wtc291cFwtb3JcLWJyb3RoXC1vblwtdG9wXC1vZlwtdGhlXC1yaWNlXC10aGlja1wtY29uZ2VlXC1vclwtcG9ycmlkZ2U7Civkpa8gPiBhXC1mYXJtXC10b29sXC10b1wtY3J1c2hcLXRoZVwtY2xvZFwtb2ZcLWVhcnRoXC1pbnRvXC1waWVjZXNcLWFuZFwtbWFrZVwtdGhlXC1sYW5kXC1mbGF0Owor5I2WID4gYVwta2luZFwtb2ZcLW5ldFwtZXF1aXB0ZWRcLXdpdGhcLXRyaWNreVwtbWFjaGluZVwtdXNlZFwtdG9cLWNhdGNoXC1iaXJkc1wtYW5kXC1iZWFzdHM7Civkjq0gPiBhXC1raW5kXC1vZlwtZmFybVwtdG9vbFwtbWFkZVwtb2ZcLXR3aXN0ZWRcLXRocm9uXC1zdHJpcHNcLXVzZWRcLXRvXC1mbGF0ZW5cLXRoZVwtbGFuZDsKK+etkyA+IGFcLWhhaXJwaW5cLW9uXC13aGljaFwtdGhlXC1oYWlyXC1pc1wtYm91bmRcLWF0XC10aGVcLWJhY2tcLW9mXC10aGVcLWhlYWRcLlwtMTVcLW9mXC1hZ2U7CivjrrIgPiBhXC1zbWFsbFwtcmluZ1wtb3JcLWFcLXNtYWxsXC1waWVjZVwtb2ZcLWJvYXJkXC1hdHRhY2hlZFwtdG9cLXRoZVwtbXV6emxlXC1vZlwtYW5cLW94Owor5LW7ID4gYVwtc21hbGxcLXRyaXBvZFwtb2ZcLWJyb256ZVwtd2l0aFwtdHdvXC1lYXJzXC10cmlwb2RcLW9mXC1icm9uemVcLXdpdGhcLXR3b1wtZWFyczsKK+eOoCA+IGxhcmdlXC1qYWRlXC10YWJsZXRcLXVzZWRcLWJ5XC1vZmZpY2lhbHNcLWF0XC1jb3VydFwtdG9cLWluZGljYXRlXC10aGVpclwtcmFua3M7CivkgpwgPiByb2NreVwtZmluZVwtc3RvbmVcLXdoaWNoXC1pc1wtbGl0dGxlXC1sZXNzXC12YWx1YWJsZVwtdGhhblwtamFkZVwtdG9cLWNvbGxhcHNlOwor46GGID4gYW5cLWFydGlzYW5cLXRvXC1zb2Z0ZW5cLXJhd1wtc2lsa1wtYnlcLWJvaWxpbmdcLWFuZFwtdG9cLWR5ZVwtdGhlXC1kcmVzc2VkXC1zaWxrOwor46GDID4gYW5cLWFydGlzYW5cLXRvXC1zb2Z0ZW5cLXJhd1wtc2lsa1wtYnlcLWJvaWxpbmdcLWFuZFwtdG9cLWR5ZVwtdGhlXC1kcmVzc2VkXC1zaWxrOwor6KOOID4gdG9cLXRha2VcLW9mZlwtdGhlXC1jbG90aGVzXC1hbmRcLWV4cG9zZVwtdGhlXC1ib2R5XC5cLXRvXC1jYXJyeVwtaW5cLXRoZVwtZ2lyZGxlOwor6Y6LID4gdGhlXC1saW5jaFwtcGluXC1vZlwtYVwtd2hlZWxcLXRvXC1nb3Zlcm5cLW9yXC1jb250cm9sXC10aGVcLW5vaXNlXC1vZlwtYVwtYmFycm93Owor5KqQID4gc29tZXRoaW5nXC1tYWRlXC1vZlwtYmFtYm9vXC1wdXRcLWluXC10aGVcLWJvd1wtY2FzZVwtdG9cLXByZXRlY3RcLWZyb21cLWRhbWFnZTsKK+SHrSA+IGNvbnRhaW5lcnNcLW1hZGVcLW9mXC10aGluXC1hbmRcLWxvbmdcLXN0cmlwXC1vZlwtYmFtYm9vXC1vclwtd2lsbG93XC1icmFuY2hlczsKK+OfrCA+IGFcLW1vdW50YWluXC1pblwtdG9kYXknJ3NcLXNoYW5kb25nXC1wcm92aW5jZVwtc291dGh3ZXN0XC1vZlwtbWVuZ3lpblwtY291bnR5Owor45qlID4gdG9cLWJlY29tZVwtYXNzb2NpYXRlZFwtd2l0aFwtZWFjaFwtb3RoZXJcLWluXC1nb29kXC1tYW5uZXJzXC1hbmRcLXBvbGl0ZW5lc3M7CivkpJ4gPiBhXC1raW5kXC1vZlwtd2VhcG9uc1wtaGVsZFwtYnlcLXRoZVwtb2ZmaWNpYWxzXC1pblwtYXR0ZW5kYW5jZVwtaW5cLW9sZFwtdGltZXM7CivjuasgPiBhXC1raW5kXC1vZlwtYW5pbWFsXC1nZW5lcmFsbHlcLWNhbGxlZFwtZm9yXC1taW5vcml0eVwtZ3JvdXBzXC1pblwtb2xkXC1jaGluYTsKK+OzuyA+IGFcLWJhbmtcLW9mXC1lYXJ0aFwtb3JcLWFuXC1lbWJhbmttZW50XC10b1wtYmxvY2tcLXRoZVwtY3VycmVudFwtb2ZcLXRoZVwtd2F0ZXI7Civjr6IgPiBhXC1waWVjZVwtb2ZcLWNyb3NzXC13aXNlXC1ib2FyZFwtdXNlZFwtZm9yXC1mcmFtZVwtb25cLXdoaWNoXC1zaWxrd29ybXNcLXNwaW47Civkg5ggPiBzaW1wbGVcLWFuZFwtY3J1ZGVcLXRoZVwtc291bmRcLW9mXC1wZWJibGVzXC1vclwtc3RvbmVzXC1rbm9ja2luZ1wtdG9nZXRoZXI7CivjsLEgPiB0b1wtc21lYXJcLXRoZVwtbW91dGhcLXdpdGhcLXRoZVwtYmxvb2RcLW9mXC1hXC12aWN0aW1cLXdoZW5cLXRha2luZ1wtYW5cLW9hdGg7Civnja8gPiBhXC10cmliZVwtb2ZcLXNjeXRoaWFuc1wtd2hpY2hcLWludmFkZWRcLWNoaW5hXC1kdXJpbmdcLXRoZVwtaHNpYVwtZHluYXN0eTsKK+melCA+IHNpZGVzXC1vclwtdXBwZXJzXC1vZlwtc2hvZXNcLXRvXC1zdHJldGNoXC1hXC1za2luXC1vblwtYVwtZnJhbWVcLWZvclwtYVwtZHJ1bTsKK+SVvSA+IHRoZVwtcmhvZG9kZW5kcm9uXC1cLVwtXC1pdFwtaXNcLXNhaWRcLXRvXC1jYXVzZVwtc2hlZXBcLXRvXC1zdGFnZ2VyXC1hbmRcLWRpZTsKK+mDnCA+IG5hbWVcLW9mXC1maWVmXC1pblwtc2hhbnRvbmdcLWJlc3Rvd2VkXC1vblwtdGhlXC1lbGRlc3RcLXNvblwtb2ZcLXdlblwtd2FuZzsKK+SNvyA+IGFcLWtpbmRcLW9mXC1kYW5jZVwtYWNjb21wYW5pZWRcLWJ5XC1tdXNpY1wtcGVyZm9ybWVkXC1pblwtYW5jaWVudFwtdGltZXM7CivkjJ4gPiBhXC1rbm90XC10b1wtaGFuZ1wtdGhlXC1hcHBhcmF0dXNcLW1hZGVcLW9mXC1yZWVkXC1mb3JcLXJhaXNpbmdcLXNpbGt3b3JtczsKK+SHiSA+IGNhcGFjaXR5XC11bml0XC1pblwtZnJhbmNlXC1lcXVhbFwtdG9cLW9uZVwtaHVuZHJlZFwtdGltZXNcLW9mXC1vbmVcLWxpdHJlOwor472IID4gYVwtbGFyZ2VcLWVhcnRoZW53YXJlXC1qYXJcLXdpdGhcLWFcLXNtYWxsXC1tb3V0aFwtYW5kXC10d29cLW9yXC1mb3VyXC1lYXJzOwor47mQID4gdG9cLXRvd1wtYVwtYm9hdFwtYWdhaW5zdFwtdGhlXC1jdXJyZW50XC1pblwtc3dpZnRcLXN0cmVhbVwtZnJvbVwtdGhlXC1iYW5rOwor5rKFID4gbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtd2VzdGVyblwtaHVuYW5cLXRoYXRcLWZsb3dzXC1pbnRvXC1kb25ndGluZ1wtbGFrZTsKK+ewiyA+IGFcLXNxdWFyZVwtYmFza2V0XC1vZlwtYmFtYm9vXC1mb3JcLWhvbGRpbmdcLWdyYWluXC11c2VkXC1hdFwtc2FjcmlmaWNlczsKK+m3tCA+IHNpbHZlclwtcGhlYXNhbnRcLWJhZGdlXC13b3JuXC1ieVwtY2l2aWxcLW9mZmljaWFsc1wtb2ZcLXRoZVwtNXRoXC1ncmFkZTsKK+iflSA+IGFcLXNwZWNpZXNcLW9mXC10b3J0b2lzZVwtZm91bmRcLW5lYXJcLXRoZVwtbW91dGhcLW9mXC10aGVcLXllbGxvd1wtcml2ZXI7CivjrIYgPiBwb3N0aHVtb3VzXC10aXRsZVwtY29uZmVycmVkXC11cG9uXC1lbXBlcm9yc1wtYW5kXC1lbWluZW50XC1vZmZpY2lhbHM7CivjlLMgPiBhXC1zcXVhcmVcLWJhc2tldFwtb2ZcLWJhbWJvb1wtZm9yXC1ob2xkaW5nXC1ncmFpblwtdXNlZFwtYXRcLXNhY3JpZmljZXM7Civpnp0gPiB0aGVcLXBpZWNlXC1vZlwtbGVhdGhlclwtdXNlZFwtZm9yXC1zb2xlc1wtb25cLWNoaW5lc2VcLXNob2VzXC5cLWFcLXBhdGNoOwor6JSbID4gYVwtc21hbGxcLW9yY2hpZFwtbGlrZVwtcGxhbnRcLWl0XC1iZWFyc1wtd2hpdGVcLWZsb3dlcnNcLWFcLWRlbmRyb2JpdW07CivksJkgPiBhblwtYW5jaWVudFwtdW5pdFwtb2ZcLWNhcGFjaXR5XC13aXRoXC10aHJlZVwtZmVldFwtYW5kXC1hXC1iaWdcLW9wZW5pbmc7CivklLkgPiBhXC1mdW5ndXNcLXdoaWNoXC1ncm93c1wtb25cLXJvdHRlblwtcGxhbnRzXC1hbmRcLWlzXC1lYXRlblwtd2hlblwtZnJlc2g7Civjr6MgPiBhXC1raW5kXC1vZlwtZnJhZ3JhbnRcLXRyZWVcLXVzZWRcLXRvXC1wcm9kdWNlXC1wZXJmdW1lXC1ieVwtYnVybmluZ1wtaXQ7Civjr6EgPiB0b1wtbGFjcXVlclwtc29tZVwta2luZFwtb2ZcLWFzaGVzXC1vblwtd29vZGVuXC1hcnRpY2Fsc1wtb3JcLWZ1cm5pdHVyZTsKK+WziyA+IHJhbmdlc1wtb2ZcLWhpbGxzXC1zdHJldGNoaW5nXC1vblwtYmV5b25kXC1hbm90aGVyXC1pcnJlZ3VsYXJcLXBlYWtzOwor5q2DID4gc21lYXJcLW9uZScnc1wtbW91dGhcLXdpdGhcLWJsb29kXC1vZlwtYVwtdmljdGltXC13aGVuXC10YWtpbmdcLWFuXC1vYXRoOwor576XID4gdHJpYmVzXC1pblwtd2VzdFwtY2hpbmFcLXN0cm9uZ1wuXC1lZHVjYXRlZFwuXC1vYnN0aW5hdGVcLlwtYVwtcGFydGljbGU7CivkuKMgPiBhbmNpZW50XC1mb3JtXC1vZlwtdGhlXC10ZW50aFwtb2ZcLXRoZVwtdHdlbHZlXC10ZXJyZXN0cmlhbFwtYnJhbmNoZXM7CivkoYUgPiBzb21ldGhpbmdcLXVzZWRcLXRvXC1iaW5kXC10aGVcLWZyYW1lXC13b3JrXC1pblwtYVwtY2FydFwtb2ZcLW9sZFwtdGltZXM7CivkmqggPiBhXC1zdHJpbmdcLWZhc3RlbmVkXC10b1wtYW5cLWFycm93XC10b1wtZHJhd1wtaXRcLWJhY2tcLWFmdGVyXC1zaG9vdGluZzsKK+SOoCA+IHRvXC10d2lzdFwtb3JcLXRvXC1jcnVtcGxlXC1iZXR3ZWVuXC1oYW5kc1wtYW5kXC1tYWtlXC1zb21ldGhpbmdcLXR1cm47Civjn7kgPiB0aGVcLWFwcGVhcmFuY2VcLW9mXC1hXC1tb3VudGFpblwtaXNcLWxvZnR5XC1hbmRcLXN0ZWVwXC1hbmRcLXByb2ZvdW5kOwor4524ID4gYVwtY29uaWNhbFwtY2FwXC13b3JuXC1vblwtY2VyZW1vbmlvdXNcLW9jY2FzaW9uc1wtaW5cLWFuY2llbnRcLXRpbWVzOwor45moID4gdGhlXC1yb3lhbFwtZG9tYWluc1wtc2V0XC1hcGFydFwtaW5cLWFuY2llbnRcLXRpbWVzXC1mb3JcLXRoZVwtZW1wZXJvcjsKK+ihqSA+IHRoZVwtb3Blblwtc2VhbVwtb2ZcLWFcLWdhcm1lbnRcLXdoaWNoXC1hbGxvd3NcLWZyZWVkb21cLW9mXC1tb3ZlbWVudDsKK+WxuiA+IGFcLWhpbGxcLXdpdGhcLXRyZWVzXC1vclwtZ3Jhc3NcLVwtXC1zb21lXC1naXZlXC10aGVcLW9wcG9zaXRlXC1tZWFuaW5nOwor5LamID4gdXBwZXJcLWFuZFwtbG93ZXJcLXRlZXRoXC1pblwtb3JkZXJcLWFuZFwtY29ycmVzcG9uZGluZ1wtZWFjaFwtb3RoZXI7Civkp4IgPiB0b1wtdHVyblwtb3ZlclwtdGhlXC1jbG9kXC1vZlwtdGhlXC1lYXJ0aFwtd2l0aFwtYVwtc2hvdmVsXC1vclwtYVwtc3BhZGU7CivlmZ4gPiB0aGVcLW1vdmVtZW50XC1vZlwtYVwtZmlzaCcnc1wtbW91dGhcLWF0XC10aGVcLXN1cmZhY2VcLW9mXC10aGVcLXdhdGVyOwor5ZS1ID4gdXNlZFwtaW5cLWJ1ZGRoaXN0XC10ZXh0c1wtdG9cLXRyYW5zbGl0ZXJhdGVcLW5vblwtY2hpbmVzZVwtc291bmRzOwor5KCCID4gbmFtZVwtb2ZcLWFcLXBvd2VyZnVsXC1mZXVkYWxcLXN0YXRlXC13aGljaFwtZXhpc3RlZFwtNzQwXC0zMzBcLWJcLmNcLjsKK+SWtiA+IHRvXC1yYWlzZVwtdXBcLXRoZVwtbm9zZVwtaW5cLW9yZGVyXC10b1wtZ2V0XC10aGVcLWJ1Z3NcLWluXC10aGVcLWVhcnRoOwor5ISbID4gc2VydmljZVwtb3JcLXJpdGVzXC1vZlwtb2ZmZXJpbmdcLXNhY3JpZmljZXNcLWZvclwtZHJpbmtcLWFuZFwtZm9vZDsKK+O8sCA+IGFuXC1lYXJ0aGVud2FyZVwtamFyXC13aXRoXC1hXC1zbWFsbFwtbW91dGhcLWFuZFwtdHdvXC1vclwtZm91clwtZWFyczsKK+O4liA+IGhpZGVcLW9yXC10b1wta2VlcFwtaW5cLXN0b3JlXC10aGVcLXZlZ2V0YWJsZVwtaW5cLWNvbGRcLXdpbnRlclwtZGF5czsKK+O3nyA+IHRvXC1zY2FsZFwtdGhlXC1icmlzdGxlc1wtb2ZmXC1hXC1waWdcLW9yXC10aGVcLWZlYXRoZXJzXC1vZmZcLWFcLWJpcmQ7CivjsIcgPiB0aGVcLXNxdWFyZVwtcGVja1wtc2hhcGVkXC1ib3hcLWhhbGZcLXdheVwtdXBcLWFcLWNoaW5lc2VcLWZsYWdzdGFmZjsKK+OuniA+IHRoZVwtc3F1YXJlXC1wZWNrXC1zaGFwZWRcLWJveFwtaGFsZlwtd2F5XC11cFwtYVwtY2hpbmVzZVwtZmxhZ3N0YWZmOwor46a8ID4gYVwtd29vZGVuXC1waWxlc1wtdXNlZFwtYXNcLWFcLWNhYmxlXC10b1wtbWFrZVwtaW1tb3ZhYmxlXC1vZlwtYVwtYm9hdDsKK+OipyA+IGFcLWJvb2tcLW9yXC1wYWludGluZ1wtd2hpY2hcLWNhblwtYmVcLWVhc2lseVwtZm9sZGVkXC1vclwtcm9sbGVkXC11cDsKK+mSsiA+IGtpbmRcLW9mXC1nb25nXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXNcLWJ5XC10cm9vcHNcLW9uXC10aGVcLW1hcmNoOwor6YmmID4ga2luZFwtb2ZcLWdvbmdcLXVzZWRcLWluXC1hbmNpZW50XC10aW1lc1wtYnlcLXRyb29wc1wtb25cLXRoZVwtbWFyY2g7CivkqrMgPiBzbGFudGVkXC1mYWNlXC1jYXVzaW5nXC1ieVwtdGhlXC1wYXJhbHl6ZWRcLW9mXC10aGVcLWZhY2lhbFwtbmVydmU7CivknosgPiB0b1wtZG9cLWFsbXNcLWZvclwtdGhlXC1idWRkaGlzdFwtcHJpZXN0c1wtb3JcLW1vbmtzXC1pblwtb2xkXC10aW1lczsKK+SZhiA+IHNsaXRzXC1vblwtdGhlXC1sb3dlclwtcGFydFwtb2ZcLWFcLWdvd25cLWZvclwtZnJlZWRvbVwtb2ZcLW1vdmVtZW50Owor5ICPID4gdG9cLW1vdmVcLW9uZScnc1wtZXllc1wtdG9cLWV4cHJlc3NcLW9yXC1pbmRpY2F0ZVwtd2l0aFwtZXllc1wtZGl6enk7Civjv4QgPiB0aGVcLWdyb2Fuc1wtb3JcLW1vYW5zXC1mcm9tXC1hXC1wZXJzb25cLWluXC1hXC1jcml0aWNhbFwtY29uZGl0aW9uOwor47aPID4gYW5cLWFuY2llbnRcLW5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLWhlbmFuXC1wcm92aW5jZVwtZGVuZ2Zlbmd4aWFuOwor47OHID4gbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtdG9kYXknJ3NcLWppYW5nc3VcLXByb3ZpbmNlXC15aXhpbmdcLWNvdW50eTsKK+OriyA+IGFcLXNpbGtlblwtYmFubmVyXC1oYW5naW5nXC1mcm9tXC1hXC1zdGFmZlwtYmVudFwtb3ZlclwtYXRcLXRoZVwtdG9wOwor54u9ID4gYVwtbGVnZW5kYXJ5XC1hbmltYWxcLXdpdGhcLXNob3J0XC1mb3JlbGVnc1wtd2hpY2hcLXJvZGVcLWFcLXdvbGY7CivmrZAgPiB1c2VkXC1pblwtdHJhbnNsaXRlcmF0aW5nXC1ub25cLWNoaW5lc2VcLXdvcmRzXC1zdWNoXC1hc1wtZXVyb3BlOwor54uIID4gYVwtbGVnZW5kYXJ5XC1hbmltYWxcLXdpdGhcLXNob3J0XC1mb3JlbGVnc1wtd2hpY2hcLXJvZGVcLWFcLXdvbGY7CivmsaggPiBtaVwtcml2ZXJcLWluXC1odW5hblwtcHJvdmluY2VcLXdoZXJlXC1xdVwteXVhblwtZHJvd25lZFwtaGltc2VsZjsKK+axnCA+IGFcLXN0cmVhbVwtd2hpY2hcLWxlYXZlc1wtdGhlXC1tYWluXC1icmFuY2hcLXRoZW5cLWxhdGVyXC1yZXR1cm5zOwor57CIID4gYmFtYm9vXC1tYXRcLXVzZWRcLXRvXC1wcm90ZWN0XC1jYXJyaWFnZVwtcGFzc2VuZ2Vyc1wtZnJvbVwtZHVzdDsKK+eusyA+IGJhbWJvb1wtbWF0XC11c2VkXC10b1wtcHJvdGVjdFwtY2FycmlhZ2VcLXBhc3NlbmdlcnNcLWZyb21cLWR1c3Q7CivniLwgPiBhXC1zbWFsbFwtdGFibGVcLW9yXC10aWVyZWRcLXN0YW5kXC1maWxsZWRcLXdpdGhcLW1lYXRcLW9mZmVyaW5nczsKK+SzmiA+IGFcLXNvcnRcLW9mXC1uaWdodGluZ2FsZVwtd2hpY2hcLWlzXC1zYWlkXC10b1wtc2luZ1wtZm9yXC10aGVcLWRhd247CivkoYIgPiB0aGVcLWxvbmdcLXdvb2RlblwtYnVtcGVyXC1hdFwtdGhlXC1yZWFyXC1vZlwtYVwtY2FydFwtb3JcLWNhcnJpYWdlOwor5IO+ID4gdG9cLW9mZmVyXC1zbWFsbFwtcGlnXC1hc1wtc2FjcmlmaWNlXC13aGVuXC13YXJzaGlwXC1nb2RcLW9mXC1saWZlOwor47yqID4gZnJhZ21lbnRzXC1vZlwtYVwtdGlsZVwtaGF2ZW4nJ3RcLXRcLWJlZW5cLWtpbG5cLWRyaWVkXC1jb21wbGV0ZWx5Owor47SWID4gbmFtZVwtb2ZcLWFcLXN0cmVhbVwtaW5cLXNoYW5kb25nXC1wcm92aW5jZVwtc291dGh3ZXN0XC1vZlwtamluYW47CivjnYkgPiBzcGFjZVwtYmV0d2VlblwtdGhlXC10aHJvbmVcLWFuZFwtdGhlXC1yZXRpcmluZ1wtcm9vbVwtYmVoaW5kXC1pdDsKK+OWqyA+IHVzZWRcLWluXC1uYW1lc1wtZm9yXC1taW5vcml0eVwtZXRobmljXC1ncm91cFwtaW5cLWFuY2llbnRcLWNoaW5hOwor54KdID4gc3RpclwtZnJ5XC1vclwtYm9pbFwtaW5cLXdhdGVyXC1vclwtb2lsXC10aGVuXC1jb29rXC13aXRoXC1hXC1zYXVjZTsKK+eGlyA+IHN0aXJcLWZyeVwtb3JcLWJvaWxcLWluXC13YXRlclwtb3JcLW9pbFwtdGhlblwtY29va1wtd2l0aFwtYVwtc2F1Y2U7CivlvK4gPiBhXC1jcm93d2Jvd1wtd2hpY2hcLWRpc2NoYXJnZWRcLXNldmVyYWxcLWJvbHRzXC1pblwtc3VjY2Vzc2lvbjsKK+SqmSA+IGxlYXRoZXJcLXdyYXBwZWRcLWNvbGxhclwtZm9yXC1hXC1kcmFmdFwtYW5pbWFsXC1vZlwtYVwtY2FycmlhZ2U7CivkqpYgPiBsZWF0aGVyXC13cmFwcGVkXC1jb2xsYXJcLWZvclwtYVwtZHJhZnRcLWFuaW1hbFwtb2ZcLWFcLWNhcnJpYWdlOwor5KeaID4gdGhlXC1uYW1lXC1vZlwtYVwtcGxhY2VcLWluXC10aGVcLXNvdXRoXC13ZXN0XC1vZlwtaGViZWlcLXByb3ZpbmNlOwor5KGeID4gbGVhdGhlclwtdGhhdFwtd2luZFwtcm91bmRcLW9uXC10aGVcLXNoYWZ0c1wtb2ZcLWFcLWJpZ1wtY2FycmlhZ2U7CivkjZwgPiBhXC1iYXNrZXRcLW9yXC1hXC1jYWdlXC11c2VkXC10b1wta2VlcFwtd2lsZFwtYW5kXC1kb21lc3RpY1wtZm93bHM7Civkh4YgPiBjYXBhY2l0eVwtdW5pdFwtaW5cLWZyYW5jZVwtZXF1YWxcLXRvXC10ZW5cLXRpbWVzXC1vZlwtb25lXC1saXRyZTsKK+SChSA+IHRvXC1oYXZlXC1pbnNpZ2h0XC1vclwtdmlzaW9uXC1vZlwtYVwtc2ltcGxlXC1hbmRcLWhvbmVzdFwtcGVyc29uOwor47K9ID4gbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtdG9kYXknJ3NcLXNvdXRod2VzdFwtb2ZcLXNoYW54aVwtcHJvdmluY2U7CivjrpAgPiBhXC1yYWNrXC1vclwtYVwtc3RhbmRcLXdpdGhcLXRocmVlXC1zdGlja3NcLXRvXC1jcm9zc1wtZWFjaFwtb3RoZXI7CivjrLggPiBhXC1raW5kXC1vZlwtc2VydmljZXNcLW9yXC1jZXJlbW9uaWVzXC1vZlwtb2ZmZXJpbmdcLXNhY3JpZmljZXM7Civpg4wgPiBuYW1lXC1vZlwtYW5cLWFuY2llbnRcLWhzaWVuXC1pblwtbW9kZXJuXC1nYW5zdVwvc2hhYW54aVwtYXJlYVwuOwor6ICwID4gdG9vdGhsZXNzXC1yYWtlXC1mb3JcLWRyYXdpbmdcLWVhcnRoXC1vdmVyXC1uZXdseVwtc293blwtZ3JhaW47CivnkIAgPiBnZW1zXC1vZlwtcGVhcmxzXC1mb3JtZXJseVwtcHV0XC1pbnRvXC10aGVcLW1vdXRoXC1vZlwtYVwtY29ycHNlOwor5KqDID4gd2luZVwtY29udGFpbmVyXC11c2VkXC1ieVwtbWlub3JpdHlcLXRyaWJlXC1pblwtYW5jaWVudFwtdGltZXM7CivkpbcgPiBhXC1oaW5nZWRcLXNoZWFyXC1vclwtbG9uZ1wta25pZmVcLWZvclwtY3V0dGluZ1wtZm9kZGVyXC1vclwtaGF5Owor5KSpID4gYW5cLW9ybmFtZW50XC1hdFwtdGhlXC1lbmRcLW9mXC1hXC1iZWx0XC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7CivknaogPiB0b1wtcHJvdmlkZVwtbW9uZXlcLW9yXC1naWZ0XC1hbmRcLXRvXC1jb25zdWx0XC1mb3J0dW5lXC10ZWxsZXI7CivkmZsgPiBjZXJlbW9uaWFsXC1kcmVzc1wtb2ZcLXRoZVwtZW1wZXJvclwtb3JcLXZlcnlcLWhpZ2hcLW9mZmljaWFsczsKK+SYpiA+IGFcLWtpbmRcLW9mXC1oZWFkXC1kcmVzc1wtd29yZVwtaW5cLWZ1bmVyYWxcLXJpdGVzXC1pblwtb2xkXC1kYXlzOwor5JifID4ga2luZFwtb2ZcLXNpbGtcLXdvdmVuXC13aXRoXC1kb3VibGVcLXRocmVhZHNcLWFuZFwtd2F0ZXJcLXByb29mOwor5JSRID4gYVwtd2hpdGVcLWNvbG9yZWRcLWNsdXN0ZXJcLWdyb3duXC1hdFwtdGhlXC10aXBcLW9mXC1jb2dvbmdyYXNzOwor5ImyID4gdGhpblwtYW5kXC1mbGF0XC1zbGlwc1wtb2ZcLWJhbWJvb1wtdXNlZFwtZm9yXC13ZWF2aW5nXC1wdXJwb3NlOwor47y9ID4gZnJhZ21lbnRzXC1vZlwtYVwtdGlsZVwtaGF2ZW4nJ3RcLWJlZW5cLWtpbG5cLWRyaWVkXC1jb21wbGV0ZWx5Owor47aBID4gYWZ0ZXJcLWJsb2NraW5nXC10aGVcLXdhdGVyXC1mbG93XC10YWtlc1wtZGlmZmVyZW50XC13YXRlcndheTsKK+OvgCA+IGJvbmRzXC1hbmRcLWZldHRlcnNcLWZvclwtZmFsY29uc1wtYW5kXC1kb2dzXC11c2VkXC1pblwtaHVudGluZzsKK+OSviA+IGFcLWtpbmRcLW9mXC13cmFwcGVyXC11c2VkXC10b1wtY292ZXJcLW92ZXJcLXRoZVwtZmFjZVwtYW5kXC1oZWFkOwor6KCyID4gdGhlXC1taWxsaXBlZGVcLXNvbWV0aW1lc1wtY29uZm91bmRlZFwtd2l0aFwtdGhlXC1ncm93XC13b3JtOwor6JinID4gYVwtcGxhbnRcLXdoaWNoXC1yZXNlbWJsZXNcLXdoZWF0XC1idXRcLWhhc1wtbm9cLWVkaWJsZVwtZ3JhaW47CivkobQgPiBjYXJyaWFnZVwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzXC10b1wtdGFrZVwtZW5lbXlcLXBvc2l0aW9uOwor5J+6ID4gd2Fsa1wtc2xvd2x5XC1iZWNhdXNlXC1vZlwtdGhlXC13cm9uZ1wtcG9zaXRpb25cLW9mXC10aGVcLWZlZXQ7CivkiaMgPiBzbGlwc1wtb2ZcLWJhbWJvb1wtcHJvdmlkZWRcLWZvclwtd3JpdGluZ1wtaW5cLWFuY2llbnRcLXRpbWVzOwor5IG5ID4gdG9cLWxvb2tcLWFza2FuY2VcLVwtXC1cLWFcLWV4cHJlc3Npb25cLW9mXC1kaXNkYWluXC1vclwtZGVzcGlzZTsKK+O8jCA+IGxvdFwtb2ZcLW1lbG9uc1wtZ3Jvd2luZ1wtYnV0XC10aGVcLXJvb3RcLWlzXC13ZWFrXC1hbmRcLWZlZWJsZTsKK+O7oCA+IGphZGVcLWhhbmdpbmdcLW9uXC10aGVcLXNpZGVzXC1vZlwtdGhlXC1jYXBcLWluXC1hbmNpZW50XC10aW1lczsKK+OuoyA+IGFcLXBpZWNlXC1vZlwtd29vZFwtdXNlZFwtdG9cLXN0cmlrZVwtb2ZmXC1ncmFpblwtaW5cLWFcLW1lYXN1cmU7Civjk6QgPiB0b1wtc3RyaXBcLXRoZVwtc2tpblwtb2ZcLXRoZVwtZmFjZVwtXC1cLVwtYW5cLWltbWluZW50XC1jYWxhbWl0eTsKK+eggCA+IGJyaWxsaWFudGx5XC1jb2xvcmVkXC1zdG9uZVwtd2l0aFwtdmVpbmVkXC1wYXR0ZXJuc1wtaW5cLWl0Owor6JmSID4gYW5cLWFtcGhpYmlvdXNcLWJlYXN0XC1yZXNlbWJsaW5nXC1hXC10aWdlclwtd2l0aFwtb25lXC1ob3JuOwor562BID4gYVwtYmFtYm9vXC1mcmFtZVwtb25cLXdoaWNoXC1zaWxrd29ybXNcLXNwaW5cLXRoZWlyXC1jb2Nvb25zOwor56KtID4gYnJpbGxpYW50bHlcLWNvbG9yZWRcLXN0b25lXC13aXRoXC12ZWluZWRcLXBhdHRlcm5zXC1pblwtaXQ7CivlhosgPiBhXC1kZXNlcnRcLWFcLWJvcmRlclwtcHJhaXJpZVwtdGhlXC0xc3RcLWZvcm1cLWlzXC1yYWRpY2FsXC0xMzsKK+S0tyA+IHVzZVwtdGhlXC13aG9sZVwtcGllY2VcLW9mXC1iYXJsZXlcLXRvXC1mZXJtZW50XC1mb3JcLWJyZXdpbmc7CivkrZ4gPiBhXC1raW5kXC1vZlwtc2FjcmlmaWNlc1wtb2ZmZXJlZFwtdG9cLWdvZHNcLW9yXC10aGVcLWRlY2Vhc2VkOwor5KegID4gbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtd2hhdFwtaXNcLXRvZGF5JydzXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivkkakgPiBhXC1raW5kXC1vZlwtaW5sYW5kXC1yaXZlcnNcLXdhcnNoaXBcLXVzZWRcLWluXC1xaW5nXC1keW5hc3R5Owor5I24ID4gYVwtbGVnZW5kYXJ5XC1nb2F0XC1saWtlXC1hbmltYWxcLXdpdGhcLTRcLWVhcnNcLWFuZFwtOVwtdGFpbHM7CivkjasgPiBhXC1sZWdlbmRhcnlcLWdvYXRcLWxpa2VcLWFuaW1hbFwtd2l0aFwtNFwtZWFyc1wtYW5kXC05XC10YWlsczsKK+SDqyA+IGFcLXNpbGljYXRlXC1zdWJzdGFuY2VcLWZyb21cLXRoZVwtc2FsdFwtd2VsbHNcLWluXC1zemVjaHdhbjsKK+O4nCA+IHRvXC1nZXRcLXRocm91Z2hcLXRoZVwtc3BhY2VcLWVuY2xvc2VkXC1ieVwtYVwtY29uc3RlbGxhdGlvbjsKK+O3rSA+IGFcLWNvbmljYWxcLWJyaWNrXC1zdHJ1Y3R1cmVcLWluXC13aGljaFwtdG9cLWxpZ2h0XC1hXC1iZWFjb247CivjtrsgPiBhXC1jb25pY2FsXC1icmlja1wtc3RydWN0dXJlXC1pblwtd2hpY2hcLXRvXC1saWdodFwtYVwtYmVhY29uOwor55S+ID4gZ3JvdW5kXC10aGF0XC1oYXNcLWJlZW5cLXVuZGVyXC1jdWx0aXZhdGlvblwtZm9yXC1vbmVcLXllYXI7CivnpqEgPiBhXC1zYWNyaWZpY2VcLWF0XC10aGVcLWJlZ2lubmluZ1wtb2ZcLWFcLW1pbGl0YXJ5XC1jYW1wYWlnbjsKK+ekriA+IGFuY2llbnRcLWJhbGxpc3RhXC1mb3JcLXRocm93aW5nXC1oZWF2eVwtc3RvbmVzXC1hXC1jYW5ub247CivnpJ8gPiBhbmNpZW50XC1iYWxsaXN0YVwtZm9yXC10aHJvd2luZ1wtaGVhdnlcLXN0b25lc1wtYVwtY2Fubm9uOwor5K+gID4gdGhlXC1maXZlXC1sb3dlc3RcLXBpZWNlc1wtb2ZcLWJvbmVcLW9mXC10aGVcLXNwaW5hbFwtY29sdW1uOwor5K+ZID4gdGhlXC1maXZlXC1sb3dlc3RcLXBpZWNlc1wtb2ZcLWJvbmVcLW9mXC10aGVcLXNwaW5hbFwtY29sdW1uOwor5KymID4gZm9vZFwtaXRlbXNcLW1lcmVseVwtYXJyYW5nZWRcLWZvclwtZGlzcGxheVwtcHVycG9zZVwtb25seTsKK+SZkSA+IGFcLXBpZWNlXC1vZlwtc2Fja2Nsb3RoXC13b3JuXC1vblwtdGhlXC1icmVhc3RcLWluXC1tb3VybmluZzsKK+SIsSA+IGFuXC1vcGVuXC1iYW1ib29cLWJhc2tldFwtdXNlZFwtdG9cLWZlZWRcLWRvbWVzdGljXC1hbmltYWxzOwor46q1ID4gaGFsZlwtb2ZcLWFcLXVuaXRcLW9mXC1tZWFzdXJlbWVudFwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor46GIID4gdGhlXC1yb3Blc1wtYXR0YWNoZWRcLXRvXC10aGVcLWJpZXJcLWFuZFwtaGVsZFwtYnlcLW1vdXJuZXJzOwor45qkID4gYVwtbGFkeVwtb2ZmaWNlclwtb2ZcLXRoZVwtbW9uYXJjaCcnc1wtcGFsYWNlXC1pblwtb2xkXC10aW1lczsKK+WRgCA+IHBhcnRpY2xlXC11c2VkXC10b1wtZXhwcmVzc1wtc3VycHJpc2VcLW9yXC1taWxkXC1lbXBoYXNpczsKK+mdtyA+IHRoZVwtbGVhdGhlclwtYmVsdFwtdGhhdFwtY29ubmVjdHNcLWFcLWhvcnNlXC13aXRoXC1hXC1jYXJ0Owor6K28ID4gdG9cLXN1cGVydmlzZVwtdG9cLWNvbmZpbmVcLWFcLWdvdmVybm1lbnRcLWVzdGFibGlzaG1lbnQ7CivlnasgPiBhXC1zdGFuZFwtb25cLXdoaWNoXC10b1wtcmVwbGFjZVwtZ29ibGV0c1wtYWZ0ZXJcLWRyaW5raW5nOwor5LS9ID4gYVwtc21hbGxcLXJvdW5kXC1waWVjZVwtb2ZcLWRpc3RpbGxlcicnc1wtZ3JhaW5zXC1vclwteWVhc3Q7CivksI4gPiB0b1wtdHdpc3RcLXRoZVwtaGFpclwtaW5cLWFcLWtub3RcLW9uXC10aGVcLXRvcFwtb2ZcLXRoZVwtaGVhZDsKK+SqnSA+IGxlYXRoZXJcLWNvcmRcLXRoYXRcLXdpbmRpbmdcLW9uXC10aGVcLWhhbmRsZVwtb2ZcLWFcLWtuaWZlOwor5KGHID4gdGhlXC1jcm9zc1wtYmFyXC1hdFwtdGhlXC1lbmRcLW9mXC10aGVcLXBvbGVcLW9mXC1hXC1jYXJyaWFnZTsKK+SegCA+IHRvXC1kZXNpcmVcLWZvclwtbW9yZVwtbW9uZXlcLXRoYW5cLW9uZScnc1wtcmlnaHRmdWxcLXNoYXJlOwor5JitID4gdGhlXC1wbGVhdGVzXC1vblwtdGhlXC1sYXBlbFwtb2ZcLWFcLWdhcm1lbnRcLW9mXC10aGluXC1zaWxrOwor5JCIID4gYVwtcGllY2VcLW9mXC1vbmVcLWZvb3RcLXR3b1wtaW5jaGVzXC1kcmllZFwtc2Vhc29uZWRcLW1lYXQ7CivkjYUgPiBjb250YWluZXJzXC1mb3JcLXdhdGVyXC1vclwtd2luZVwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5Iu+ID4gY290dG9uXC1hbmRcLXNpbGtcLXRvXC1iZVwtbGFpZFwtYW5kXC1hdHRhY2hlZFwtZWFjaFwtb3RoZXI7CivkiZAgPiBhXC10aGluXC1hbmRcLWxvbmdcLXN0cmlwXC1vZlwtYmFtYm9vXC1mb3JcLW1ha2luZ1wtYmFza2V0czsKK+SIuyA+IGFcLWhlYXZ5XC1tYXRzXC1vZlwtYmFtYm9vXC11c2VkXC1mb3JcLWRlZXBcLXdhdGVyXC1maXNoaW5nOwor5IegID4gd3JlbmNoXC10b1wtYWRqdXN0XC10aGVcLXN0cmluZ1wtb25cLXN0cmluZ2VkXC1pbnN0cnVtZW50Owor5ISMID4gdG9cLXBlcmZvcm1cLXJpdGllc1wtaW5cLWhvbm9yXC1vZlwtdGhlXC1hbmNlc3RyYWxcLXRlbXBsZTsKK+SDpiA+IGFcLWZsYXRcLWFuZFwtZ3JlYXRcLXJvY2tcLXBlb3BsZVwtc3F1YXRcLW9yXC1jcm91Y2hcLW9uXC1pdDsKK+O7gCA+IGZpbmVcLXN0b25lXC13aGljaFwtaXNcLWxpdHRsZVwtbGVzc1wtdmFsdWFibGVcLXRoYW5cLWphZGU7CivjsqwgPiBoYWlyXC1kZWNvcmF0aW9uc1wtb25cLWFcLWhlbG1ldFwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor47GvID4gZ2V0XC10aGVcLXVuYm9yblwtYmFieVwtZ29hdFwtYnlcLWtpbGxuZ1wtdGhlXC1tb3RoZXJcLWdvYXQ7CivjrrAgPiB0aGVcLXNtYWxsXC1iZWFtXC1zdXBwb3J0aW5nXC10aGVcLXJhZnRlcnNcLWF0XC10aGVcLWVhdmVzOwor46q2ID4gYVwtZHJ5XC1tZWFzdXJlXC0xMFwtb3JcLTVcLXRpbWVzXC10aGF0XC1vZlwtYVwtY2hpbmVzZVwtcGVjazsKK+OflyA+IG5hbWVcLW9mXC1hXC1zbWFsbFwtcHJpbmNpcGFsaXR5XC1pblwtd2hhdFwtaXNcLW5vd1wtc2hhbnhpOwor5Ly9ID4gdHJhbnNjcmlwdGlvblwtb2ZcLXNhbnNrcml0XC0nJ2doYScnXC1pblwtYnVkZGhpc3RcLXRleHRzOwor5bGjID4gc3RyYXdcLXNhbmRhbHNcLW9yXC1zbGlwcGVyc1wtdGhhdFwtaGF2ZVwtbm9cLWhlZWxcLWJhY2tzOwor5ryOID4gYVwtcGxhY2VcLXdoZXJlXC1zbWFsbFwtc3RyZWFtc1wtZmxvd1wtaW50b1wtYVwtbGFyZ2VcLW9uZTsKK+aqviA+IGdyYXNzeVwtcGxhbnRcLXdpdGhcLWZpYnJlc1wtZnJvbVwtd2hpY2hcLWNsb3RoXC1pc1wtbWFkZTsKK+SwjCA+IHRvXC1iaW5kXC10aGVcLWhhaXJcLWluXC1hXC1rbm90XC1vblwtdGhlXC10b3BcLW9mXC10aGVcLWhlYWQ7CivkqbUgPiB0YW5uZXJcLXdob1wtbWFkZVwtdGhlXC1sZWF0aGVyXC1kcnVtXC1pblwtYW5jaWVudFwtdGltZXM7CivkmpkgPiBhXC1zcG9vblwtZm9yXC1jb29rZWRcLXJpY2VcLW1hZGVcLW9mXC1ob3JuXC1vZlwtYW5cLWFuaW1hbDsKK+SMsyA+IGFcLWtpbmRcLW9mXC11bnJlZmluZWRcLW9yXC11bnBvbGlzaGVkXC1zaWxrZW5cLXRleHRpbGVzOwor5IykID4gYVwta2luZFwtb2ZcLXVucmVmaW5lZFwtb3JcLXVucG9saXNoZWRcLXNpbGtlblwtdGV4dGlsZXM7CivkirogPiBhblwtaW1wbGVtZW50XC10b1wtZHJhd1wtb3JcLXRvXC1jb2xsZWN0XC1yb3Blc1wtb3JcLWNvcmRzOwor5ImDID4gc2xpcGVkXC1vcGVuXC1iYW1ib29cLXdpdGhcLXRoZVwtam9pbnRzXC11c2VkXC1hc1wtYW5cLW9hcjsKK+SJgCA+IHJlY3Rhbmd1bGFyXC1jaGVzdFwtb3JcLWJveFwtd292ZW5cLWZyb21cLWJhbWJvb1wtc3RyaXBzOwor5ISLID4gdG9cLXByYXlcLWZvclwtcHJldmVudGluZ1wtb3JcLWZvcmVzdGFsbGluZ1wtY2FsYW1pdGllczsKK+SDriA+IGFcLXN0b25lXC1idWlsZFwtaHlkcmF1bGljXC1tZWFzdXJlc1wtaW5cLWFuY2llbnRcLXRpbWVzOwor476/ID4gcm9hclwtb2ZcLWFzdGhtYVwtb3JcLWV4cGVjdG9yYXRlXC1mcm9tXC1hXC1keWluZ1wtcGVyc29uOwor47uoID4gaW5lXC1zdG9uZVwtd2hpY2hcLWlzXC1saXR0bGVcLWxlc3NcLXZhbHVhYmxlXC10aGFuXC1qYWRlOwor47qQID4gZ2VuZXJhbGx5XC1jYWxsZWRcLWZvclwtbWlub3JpdHlcLWdyb3Vwc1wtaW5cLW9sZFwtY2hpbmE7Civjr4IgPiBwaWxsYXJcLW9yXC1wb3N0XC1vZlwtYVwtZnJhbWVcLW9uXC13aGljaFwtc2lsa3dvcm1zXC1zcGluOwor45+LID4gZGVlcFwtYW5kXC1sZXZlbFwtZ3JvdW5kXC1ndWxseVwtYXRcLXRoZVwtZm9vdFwtb2ZcLWFcLWhpbGw7CivjnqogPiB0aGVcLWFwcGVhcmFuY2VcLW9mXC10aGVcLW1vdW50YWluXC1pc1wtZmxhdFwtYW5kXC1zbW9vdGg7CivooYUgPiBjb25zZWNyYXRlXC1zYWNyaWZpY2lhbFwtdmVzc2Vsc1wtYnlcLXNtZWFyaW5nXC1ibG9vZDsKK+iZoiA+IG5hbWVcLW9mXC1hbmNpZW50XC1mZXVkYWxcLXN0YXRlXC1pblwtc2hlbnhpXC1hbmRcLWh1bmFuOwor6b2JID4gc3RvcHBhZ2VcLW9mXC10aGVcLW5vc2VcLXRvXC1zcGVha1wtd2l0aFwtYVwtbmFzYWxcLXR3YW5nOwor6KSvID4gY2hpbGRyZW4nJ3NcLWdhcm1lbnRzXC5cLWFcLW1hdFwtZm9yXC13cmFwcGluZ1wtZ2FybWVudHM7CivmoqAgPiBhXC1zbWFsbFwtYmVhbVwtc3VwcG9ydGluZ1wtdGhlXC1yYWZ0ZXJzXC1hdFwtdGhlXC1lYXZlczsKK+aRoyA+IGFcLWhhbmRmdWxcLlwtdG9cLXBpY2tcLXVwXC13aXRoXC10aGVcLWZpbmdlcnNcLlwtdG9cLXNlaXplOwor5aCYID4gYVwtcmFpc2VkXC1wYXRoXC1iZXR3ZWVuXC1maWVsZFwtd2hpY2hcLWFjdHNcLWFzXC1hXC1keWtlOwor5LacID4gdGhlXC1wcm9jZXNzXC10b1wtd2hpdGVuXC10aGVcLWl2b3J5XC1vclwtZWxlcGhhbnRcLXR1c2s7CivkrokgPiBob3JzZXNcLWtlcHRcLWF0XC1hXC1jb3VyaWVyXC1zdGF0aW9uXC1pblwtZm9ybWVyXC10aW1lczsKK+SitSA+IG5hbWVcLW9mXC1hblwtb2xkXC1jb3VudHJ5XC1pblwtdG9kYXknJ3NcLWh1YmVpXC1wcm92aW5jZTsKK+ShnyA+IGFcLXJpbmdcLW9mXC10aGVcLWhvcml6b250YWxcLWZyb250XC1iYXJcLW9uXC1hXC1jYXJyaWFnZTsKK+SemyA+IGRhbmNpbmdcLW9mXC1hXC1lYXN0ZXJuXC1taW5vcml0eVwtZ3JvdXBcLWluXC1vbGRcLWNoaW5hOwor5J2MID4gYVwtcGlnXC1zZWVrXC1mb3JcLWZvb2RcLXRocm91Z2hcLWRpZ2dpbmdcLW9uXC10aGVcLWVhcnRoOwor5JKBID4gYVwtc21hbGxcLWJvYXRcLWNvbm5lY3RlZFwtdG9cLXRoZVwtYmFja1wtb2ZcLWFcLWJpZ1wtYm9hdDsKK+SJiyA+IGFcLXZhcmlldHlcLW9mXC1iYW1ib29cLXNob290c1wtdGhhdFwtc3Byb3V0XC1pblwtd2ludGVyOwor5IiUID4gd2hpc3RsZVwtbWFkZVwtb2ZcLXJlZWRcLXdpdGhvdXRcLWhvbGVzXC1mb3JcLWZpbmdlcmluZzsKK+O9mSA+IG9mZmljaWFsXC1pblwtY2hhcmdlXC1vZlwtZmFybWxhbmRzXC1pblwtYW5jaWVudFwtdGltZXM7Civjs44gPiBndWlkZVwtb3JcLWxlYWRcLXRvXC1tYWtlXC10aGVcLXdhdGVyXC1mbG93aW5nXC1zbW9vdGhseTsKK+OyqiA+IHdvb2xlblwtYmxhbmtldFwtd2l0aFwtZGVjb3JhdGl2ZVwtZGVzaWduXC1vclwtcGF0dGVybjsKK+OyqCA+IGFcLWRlY29yYXRpdmVcLWZpbmVcLWJsYW5rZXRcLW9uXC10aGVcLXRvcFwtb2ZcLWFcLXNhZGRsZTsKK+OyoyA+IHdvb2xlblwtYmxhbmtldFwtd2l0aFwtZGVjb3JhdGl2ZVwtZGVzaWduXC1vclwtcGF0dGVybjsKK+OymSA+IHdvb2xlblwtYmxhbmtldFwtd2l0aFwtZGVjb3JhdGl2ZVwtZGVzaWduXC1vclwtcGF0dGVybjsKK+OniyA+IHRvXC1sZW5ndGhlblwtYW5kXC1leHRlbnVhdGVcLVwtXC1cLWFzXC1pblwtbWFraW5nXC1ub29kbGU7CivjoJwgPiB5b3VuZ1wta2lkc1wtc21hcnRcLWFuZFwtZmFtaWxpYXJcLXdpdGhcLWh1bWFuXC1hZmZhaXJzOwor45mxID4gZWFydGhlbndhcmVcLXVzZWRcLXRvXC1iYWtlXC1jYWtlc1wtaW5cLW5vcnRoZXJuXC1jaGluYTsKK+WWgSA+IHRoZVwtbW91dGhcLW9mXC1hXC1maXNoXC1hdFwtdGhlXC1zdXJmYWNlXC1vZlwtdGhlXC13YXRlcjsKK+aPjiA+IHRvXC1wdWxsXC11cFwtdGhlXC1zbGVldmVzXC1hbmRcLXN0cmV0Y2hcLW91dFwtdGhlXC1hcm1zOwor566sID4gdGhlXC1jdXRpY2xlXC1vZlwtdGhlXC1iYW1ib29cLWFcLWJyb2FkXC1sZWF2ZWRcLWJhbWJvbzsKK+i7viA+IGhvcml6b250YWxcLXdvb2RlblwtYmFyXC1pblwtZnJvbnRcLW9mXC1hXC1zZWRhblwtY2hhaXI7CivokIYgPiB0aGVcLWNhc3Rvclwtb2lsXC1wbGFudFwtYWxzb1wtdXNlZFwtZm9yXC1vdGhlclwtcGxhbnRzOwor57CgID4gYW5cLWFuY2llbnRcLXZlc3NlbFwtdXNlZFwtZm9yXC1ob2xkaW5nXC1ib2lsZWRcLWdyYWluOwor5LKwID4gYVwtc2Vjb25kXC1uYW1lXC1mb3JcLXRoZVwtcGlnZW9uXC1vclwtdGhlXC10dXJ0bGVcLWRvdmU7CivknaUgPiB0b1wtcm9hclwtb3JcLWhvd2xcLWZyYW50aWNcLWJhcmtzXC1vZlwtZG9nc1wtb3JcLXdvbHZlczsKK+SUpCA+IHRoZVwtbHVzaFwtYW5kXC1sdXh1cmlhbnRcLW9mXC10aGVcLWdyYXNzXC1hbmRcLWZsb3dlcnM7Civjr64gPiBhXC1raW5kXC1vZlwtdHJlZVwtd2l0aFwtYmlnXC1sZWF2ZXNcLWFuZFwtaW5cLXJlZFwtY29sb3I7CivjlI0gPiBhXC1oaW5nZWRcLXNoZWFyXC1vclwtbG9uZ1wta25pZmVcLWZvclwtY3V0dGluZ1wtZm9kZGVyOwor55KcID4gYVwtc2VtaWNpcmN1bGFyXC1qYWRlXC1vcm5hbWVudFwtdXNlZFwtYXNcLWFcLXBlbmRhbnQ7Civoq6wgPiB0b1wtb3BlblwtdG9cLWJlZ2luXC10b1wtZXhwbGFpblwtdG9cLWluZm9ybVwtYVwtbGV0dGVyOwor54y5ID4gd2lsZFwtYW5pbWFsXC1tZW50aW9uZWRcLWluXC1zaG9ydFwtc3RvcnlcLWJ5XC1sdVwteHVuOwor54q8ID4gYVwtZmllcmNlXC1tb25nb2xpYW5cLXdvbGZcLWRyYWdvbicnc1wtaGVhZFwtb25cLXJvb2ZzOwor5rmTID4gYW5cLWFmZmx1ZW50XC1vZlwtdGhlXC1yaXZlclwteWFuZ3R6ZVwtbmVhclwta2l1a2lhbmc7CivmrZogPiB1c2VkXC1pblwtbmFtZVwtb2ZcLWZhbW91c1wta29yZWFuXC1wYWludGVyXC1jZW5nXC1zZW47CivktpsgPiB0b1wtc2VwYXJhdGVcLXRoZVwtbWVhdFwtZnJvbVwtdGhlXC1ib25lc1wtd2l0aFwtdGVldGg7Civks5wgPiBhXC1raW5kXC1vZlwtYmlyZFwtd2hpY2hcLXNoYXJlc1wtaXRzXC1uZXN0XC13aXRoXC1yYXRzOwor5LOFID4gYVwta2luZFwtb2ZcLWJpcmRcLXdoaWNoXC1zaGFyZXNcLWl0c1wtbmVzdFwtd2l0aFwtcmF0czsKK+SyjSA+IGFcLXBlcmNoXC1saWtlXC1maXNoXC13aXRoXC13aGl0ZVwtYm9keVwtYW5kXC1yZWRcLXRhaWw7CivkqbYgPiBzYWRkbGVcLWFuZFwtcmVpblwtZXRjXC5cLWZvclwtdGhlXC1pbXBlcmlhbFwtY2FycmlhZ2U7Civkl70gPiBhXC1zbWFsbFwtZ2FkZmx5XC10aGF0XC1zdWNrXC1ibG9vZFwtb2ZcLWhvcnNlXC1vclwtY293Owor5Im0ID4gYVwtYmFtYm9vXC13YXJlXC10b1wtY29sbGVjdFwtYW5kXC1rZWVwXC1zb21ldGhpbmdcLWluOwor5ImFID4gc21hbGxcLWJhbWJvb1wtd2hvc2VcLWpvaW50c1wtYXJlXC10aHJlZVwtZmVldFwtYXBhcnQ7CivkiJsgPiBzbWFsbFwtYmFtYm9vXC13aG9zZVwtam9pbnRzXC1hcmVcLXRocmVlXC1mZWV0XC1hcGFydDsKK+SEpiA+IHRvXC1wdXRcLWZvcnRoXC1lYXJzXC1hbmRcLXRvXC1ibG9zc29tXC1vZlwtdGhlXC1ncmFpbnM7CivjvakgPiBjb25uZWN0ZWRcLWJhbmtzXC1vZlwtZWFydGhcLW9yXC1wYXRoc1wtaW5cLXRoZVwtZmllbGQ7CivjuYMgPiB0d29cLWJyaW5kbGVkXC1jb3dzXC10b1wtcGxvdWdoXC1mYWNlXC10b1wtZWFjaFwtb3RoZXI7Civjtp8gPiBhblwtYW5jaWVudFwtbmVtZVwtb2ZcLWFcLXJpdmVyXC1pblwtc2hhbnhpXC1hbmRcLWhlYmVpOwor47KIID4gdGhlXC1uYW1lXC1vZlwtdGhlXC1tdXNpY1wtb2ZcLXRoZVwtbGVnZW5kYXJ5XC1lbXBlcm9yOwor46yQID4gYVwtc3RhdGVcLWR1cmluZ1wtdGhlXC1wZXJpb2RcLW9mXC1zcHJpbmdcLWFuZFwtYXV0dW1uOwor46GbID4gbmFtZVwtZm9yXC1hXC13b3JrbWFuXC13aG9cLWFwcGx5XC1jb2xvclwtaW5cLXBhaW50aW5nOwor45+iID4gdGhlXC1yb2Nrc1wtb25cLXRoZVwtaGlsbHNcLWFyZVwtb2ZcLWRpZmZlcmVudFwtc2hhcGVzOwor45y8ID4gY2hpbGRyZW5cLW9mXC1vbmUnJ3NcLWJyb3RoZXJcLVwtXC1cLW5lcGhld3NcLW9yXC1uaWVjZXM7CivjlL0gPiBhXC1raW5kXC1vZlwtd2luZVwtcG90XC1vclwtamFyXC11c2VkXC1pblwtYW5jaWVudFwtdGltZTsKK+OTgyA+IHRvXC1zYWNyaWZpY2VcLWJ5XC1wb3VyaW5nXC1vdXRcLWFcLWxpYmF0aW9uXC1vZlwtd2luZTsKK+ORniA+IGFcLW1haWRcLXdob1wtYWNjb21wYW5pZXNcLWFcLWJyaWRlXC10b1wtaGVyXC1uZXdcLWhvbWU7CivnlbIgPiB0b1wtY3VsdGl2YXRlXC1sYW5kXC1ieVwtZmlyc3RcLXNldHRpbmdcLWZpcmVcLXRvXC1pdDsKK+evmiA+IHJvdW5kXC1vclwtb3ZhbFwtY292ZXJlZFwtYmFza2V0c1wtd2l0aFwtc2hvcnRcLWxlZ3M7CivnspQgPiBjYWtlc1wtbWFkZVwtZnJvbVwtcmljZVwtZmxvdXJcLXR3aXN0ZWRcLWludG9cLXJpbmdzOwor5oikID4gdG9cLWluZnJpbmdlXC1hXC10cmFkZVwtbWFya1wtdG9cLXBsZWRnZVwtYW5cLWFydGljbGU7CivkuaQgPiBmaXJzdFwtY2hhcmFjdGVyXC1vZlwta29yZWFuXC1wbGFjZVwtbmFtZVwtJydoYWxwaG8nJzsKK+S2qCA+IGluXC10aGVcLW1hbm5lclwtYVwtdG9vdGhsZXNzXC1wZXJzb25cLWNoZXdpbmdcLWZvb2Q7CivkrpsgPiBleHRyYVwtaG9yc2VcLWhhcm5lc3NlZFwtYnlcLXRoZVwtc2lkZVwtb2ZcLXRoZVwtdGVhbTsKK+SjoCA+IG5hbWVcLW9mXC1hXC12aWxsYWdlXC1pblwtdG9kYXknJ3NcLXNpY2h1YW5cLXByb3ZpbmNlOwor5KOfID4gbmFtZVwtb2ZcLXBhdmlsaW9uXC1pblwtdG9kYXknJ3NcLXNoYW5kb25nXC1wcm92aW5jZTsKK+SgkiA+IGNvdXJ0ZXN5XC1vZlwtYVwtbWlub3JpdHlcLWdyb3VwXC1pblwtYW5jaWVudFwtdGltZXM7CivknbAgPiB0b1wtc3RvcmVcLW9yXC10b1wtYWNjdW11bGF0ZVwtcmljaGVzXC1vclwtdmFsdWFibGVzOwor5JyxID4gbmFtZVwtb2ZcLWFcLXBhdmlsaW9uXC1pblwtdG9kYXknJ3NcLXNoYW54aVwtcHJvdmluY2U7Civkk50gPiBjaGluZXNlXC1wZW5uaXNldHVtXClcLXBlbm5pc2V0dW1cLWFsb3BlY3Vyb2lkZXNcKTsKK+SLiSA+IGFcLW51bWVyYXJ5XC1hZGp1bmN0XC1mb3JcLXByYWN0aWNhbGx5XC1ldmVyeXRoaW5nOwor5IqjID4gbGlnaHRcLXllbGxvd1wtZHVzdFwtbGlrZVwtZnVuZ29pZFwtZ3Jvd3RoXC1vblwtd2luZTsKK+SHkiA+IG51bWVyYXJ5XC1hZGp1bmN0XC1mb3JcLXBlcmlvZGljXC10ZXJtc1wtb3JcLWV2ZW50czsKK+O/lyA+IGRpc2Vhc2VcLW9mXC10aGVcLXByaXZhdGVcLXBhcnRcLW9mXC10aGVcLWh1bWFuXC1ib2R5Owor47+JID4gZGlzZWFzZVwtb2ZcLXRoZVwtcHJpdmF0ZVwtcGFydFwtb2ZcLXRoZVwtaHVtYW5cLWJvZHk7CivjvqsgPiBoZW1pcGxlZ2lhXC1cLVwtXC1wYXJhbHlzaXNcLW9mXC1oYWxmXC1vZlwtb25lJydzXC1ib2R5Owor47ueID4gZmxvdXJpc2hpbmdcLWFuZFwtcmFkaWFudFwtb2ZcLXRoZVwtY29sb3JmdWxcLWphZGVzOwor47mxID4gbmFtZVwtb2ZcLWFcLWRvZ1wtaW5cLXRoZVwtcGVyaW9kXC1vZlwtd2FycmluZ1wtc3RhdGVzOwor47KlID4gYVwta2luZFwtb2ZcLXdvb2xlblwtdGV4dGlsZXNcLXdpdGhcLWN1cnZlZFwtcGF0dGVybjsKK+OtuSA+IG5hbWVcLW9mXC1hXC1jb3VudHlcLWluXC10b2RheScnc1wtc2hhbmRvbmdcLXByb3ZpbmNlOwor46OvID4gdGhlXC1kcmVzc2VzXC10b3NzXC1hbmRcLWZseWluZ1wtYWJvdXRcLWluXC10aGVcLXdpbmQ7Civjoq8gPiBib3dzXC11c2VkXC1ieVwtdGhlXC1zb25cLW9mXC1oZWF2ZW5cLVwtXC1cLXRoZVwtZW1wZXJvcjsKK+OhiiA+IGFcLWtpbmRcLW9mXC1jYXBcLXdvcm5cLWJ5XC1hblwtb2ZmaWNlclwtaW5cLW9sZFwtY2hpbmE7CivjmasgPiBhXC1mb3VudGFpblwtb3JcLXNwcmluZ1wtb3V0XC1mcm9tXC10aGVcLXVuZGVyZ3JvdW5kOwor45mNID4gbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtdG9kYXknJ3NcLWd1YW5nZG9uZ1wtcHJvdmluY2U7CivpkqcgPiB1bml0XC1vZlwtbWVhc3VyZVwtZXF1aXZhbGVudFwtdG9cLXRoaXJ0eVwtY2F0dGllczsKK+WmsiA+IGNvbmN1YmluZVwtb2ZcLWxhc3RcLXJ1bGVyXC1vZlwtdGhlXC1zaGFuZ1wtZHluYXN0eTsKK+eTtCA+IGNvbmNhdmVcLWNoYW5uZWxzXC1vZlwtdGlsaW5nXC1hXC1sb25nXC1uZWNrZWRcLWphcjsKK+WqtSA+IGFcLW1haWRcLXdob1wtYWNjb21wYW5pZXNcLWJyaWRlXC10b1wtaGVyXC1uZXdcLWhvbWU7Civog5kgPiBtZWF0XC1vZmZlcmVkXC1pblwtc2FjcmlmaWNlXC10b1wtb25lJydzXC1hbmNlc3RvcnM7Civon4ogPiBhXC1mbHlcLXdoaWNoXC1pc1wtdXNlZFwtc2ltaWxhcmx5XC10b1wtY2FudGhhcmlkZXM7CivpqLIgPiB0aGVcLWZlbWFsZVwtb2ZcLWNlcnRhaW5cLWFuaW1hbHNcLXN1Y2hcLWFzXC1ob3JzZXM7CivpiJ4gPiB1bml0XC1vZlwtbWVhc3VyZVwtZXF1aXZhbGVudFwtdG9cLXRoaXJ0eVwtY2F0dGllczsKK+idpSA+IGFcLWZseVwtd2hpY2hcLWlzXC11c2VkXC1zaW1pbGFybHlcLXRvXC1jYW50aGFyaWRlczsKK+ePkyA+IHR3b1wtaGVtaXNwaGVyaWNhbFwtb2JqZWN0c1wtdXNlZFwtaW5cLWRpdmluYXRpb247CivmlacgPiB0b1wtcGlja1wtdXBcLXRoaW5nXC13aXRoXC1jaG9wc3RpY2tzXC1vclwtcGluY2Vyc1wuOwor5omEID4gbGFyZ2VcLXJpbmdcLW9uXC1hXC1mcm9udFwtZG9vclwtdXNlZFwtYXNcLWFcLWtub2NrZXI7Civlq48gPiB0aGVcLXBsYWNlXC13aGVyZVwtdGhlXC1zdXByZW1lXC1zdG9yZXNcLWhpc1wtYm9va3M7CivksYEgPiBhXC1raW5kXC1vZlwtbWVkaXVtXC1zaXplZFwtZmlzaFwtZ3Jvd25cLWluXC10aGVcLXNlYTsKK+SwjyA+IHNwYXJzZVwtaGFpclwtb25cLWFcLWtub3RcLW9uXC10aGVcLXRvcFwtb2ZcLXRoZVwtaGVhZDsKK+SuhiA+IGFcLWhvcnNlXC13aXRoXC1taXhlZFwtY29sb3JcLW9mXC15ZWxsb3dcLWFuZFwtd2hpdGU7CivkqZsgPiBsZWF0aGVyXC1iZWx0XC11c2VkXC10b1wtYmluZFwtb3JcLXJlc3RyYWluXC1hXC1jYXJ0Owor5Ka5ID4gbmFtZVwtb2ZcLWFcLWNvdW50eVwtaW5cLXRvZGF5JydzXC1zaWNodWFuXC1wcm92aW5jZTsKK+SjlCA+IG5hbWVcLW9mXC1hXC1wYXZpbGlvblwtaW5cLXRvZGF5JydzXC1oZW5hblwtcHJvdmluY2U7Civko5EgPiBsaXZpbmdcLXNwYWNlXC1mb3JcLW9uZVwtZmFtaWx5XC1pblwtYW5jaWVudFwtdGltZXM7Civko4QgPiBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC10b2RheScnc1wtc2hhbmRvbmdcLXByb3ZpbmNlOwor5KOBID4gbmFtZVwtb2ZcLWFcLXBhdmlsaW9uXC1pblwtdG9kYXknJ3NcLWhlbmFuXC1wcm92aW5jZTsKK+SiuSA+IG5hbWVcLW9mXC1hXC1wYXZpbGlvblwtaW5cLXRvZGF5JydzXC1odW5hblwtcHJvdmluY2U7CivkoqogPiBhXC1zbGVkZ2VcLWZvclwtdHJhbnNwb3J0YXRpb25cLW92ZXJcLW11ZFwtb3JcLXNub3c7Civkn4YgPiB0b1wta2VlcFwtcGVyc29uc1wtb2ZmXC10aGVcLXJvdXRlXC1vZlwtdGhlXC1lbXBlcm9yOwor5IiQID4gYW5cLWFyY2hlZFwtZnJhbWVcLW1hZGVcLW9mXC1iYW1ib29cLW9mXC13b29kXC1ib2FyZDsKK+SFvyA+IGx1eHVyaWFudFwtb3JcLWV4dWJlcmFudFwtb2ZcLXRoZVwtZ3JhaW5zXC1mbG93ZXJ5Owor5IOIID4gbW91bnRhaW5cLXJvY2tzXC1hXC1ibGFja1wtc3RvbmVcLXJlc2VtYmxpbmdcLWphZGU7CivkgqwgPiBiaWdcLXJvY2tzXC1vblwtdGhlXC1yaXZlcnNpZGVcLWFuXC1hcmNoZWRcLW9wZW5pbmc7CivkgZ0gPiBkZWx1ZGluZ1wtYW5kXC1jYXVzaW5nXC1kaXNvcmRlclwtbGlnaHRzXC1zaGluaW5nOwor472fID4gdG9cLXRpbGxcLW9yXC10b1wtcGxvdWdoXC10aGVcLWZpZWxkc1wtYW5cLWVuY2xvc3VyZTsKK+OuhCA+IHB1YmxpY2x5XC1wb3N0ZWRcLXJvbGxcLW9mXC1zdWNjZXNzZnVsXC1leGFtaW5lZXM7CivjrbggPiB0aGVcLWJyYW5jaGVzXC10b1wtc3ByZWFkXC1vdXRcLWluXC1hbGxcLWRpcmVjdGlvbnM7CivjqYkgPiB0b1wtdGFrZVwtYVwtcnViYmluZ1wtb2ZcLWFuXC1pbnNjcmlwdGlvblwtb25cLXN0b25lOwor46OBID4gdG9cLWVxdWlwdFwtYVwtYm93XC13aXRoXC1zaWxrXC1hbmRcLW11c2N1bGFyXC1maWJyZTsKK+OihiA+IGxpdmluZ1wtc3BhY2VcLWZvclwtb25lXC1mYW1pbHlcLWluXC1hbmNpZW50XC10aW1lczsKK+OdmSA+IHRoZVwtdGhpcmRcLW9mXC10aGVcLXR3ZWx2ZVwtdGVycmVzdHJpYWxcLWJyYW5jaGVzOwor45m7ID4gbGl2aW5nXC1zcGFjZVwtZm9yXC1vbmVcLWZhbWlseVwtaW5cLWFuY2llbnRcLXRpbWVzOwor5LmOID4gaW50ZXJyb2dhdGl2ZVwtb3JcLWV4Y2xhbWF0b3J5XC1maW5hbFwtcGFydGljbGU7CivmvoQgPiBwdXJpZnlcLXdhdGVyXC1ieVwtYWxsb3dpbmdcLXNlZGltZW50XC10b1wtc2V0dGxlOwor5q2fID4gYVwtZmluYWxcLXBhcnRpY2xlXC11c2VkXC10b1wtZXhwcmVzc1wtYWRtaXJhdGlvbjsKK+aioiA+IHBvaW50ZWRcLXRpcFwtb2ZcLXNvbWV0aGluZ1wtbG9uZ1wtbGlrZVwtYVwtYnJhbmNoOwor5ZOSID4gYVwtc291bmRcLW1hZGVcLXRvXC1nZXRcLWFcLWhvcnNlXC10b1wtbW92ZVwtZm9yd2FyZDsKK+eQriA+IG9jdGFnb25hbFwtcGllY2VcLW9mXC1qYWRlXC13aXRoXC1ob2xlXC1pblwtbWlkZGxlOwor5qykID4gYVwtZmluYWxcLXBhcnRpY2xlXC11c2VkXC10b1wtZXhwcmVzc1wtYWRtaXJhdGlvbjsKK+WUvCA+IHNwZWFraW5nXC1ldmlsXC5cLWdvYmJsaW5nXC1zb3VuZFwtbWFkZVwtYnlcLWR1Y2tzOwor6YK0ID4gbmFtZVwtb2ZcLWFcLWNpdHlcLWluXC10aGVcLWFuY2llbnRcLXN0YXRlXC1vZlwtc29uZzsKK+S2mCA+IHRoZVwtc291bmRcLW9mXC1jaGV3aW5nXC1zb21ldGhpbmdcLWRyeVwtYW5kXC1oYXJkOwor5K6yID4gaG9yc2VcLXdpdGhcLW1peGVkXC1jb2xvcnNcLW9mXC15ZWxsb3dcLWFuZFwtd2hpdGU7CivkprwgPiB0b1wtZGlnXC1hXC1wYXNzYWdlXC10aHJvdWdoXC1hXC1tb3VudGFpblwtb3JcLWhpbGw7CivkpZEgPiBhXC1raW5kXC1vZlwtZGVjb3JhdGlvblwtb25cLXRoZVwtaGVhZFwtb2ZcLWFcLWhvcnNlOwor5KOvID4gd2luZVwtb3JcLWFueVwtdGhpY2tcLWZsdWlkXC1vZlwtdGhlXC1iZXN0XC1xdWFsaXR5Owor5KOaID4gbmFtZVwtb2ZcLWFcLXZpbGxhZ2VcLWluXC10b2RheScnc1wtaGVuYW5cLXByb3ZpbmNlOwor5KOZID4gbmFtZVwtb2ZcLWFcLWNvdW50eVwtaW5cLXRvZGF5JydzXC1zaGFueGlcLXByb3ZpbmNlOwor5KK6ID4gbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtdG9kYXknJ3NcLXNpY2h1YW5cLXByb3ZpbmNlOwor5KK4ID4gbmFtZVwtb2ZcLWFcLWNvdW50eVwtaW5cLXRvZGF5JydzXC1zaGFueGlcLXByb3ZpbmNlOwor5KG/ID4gZnJhbWVzXC1vblwtdGhlXC1zaWRlc1wtYW5kXC1mcm9udFwtb2ZcLWFcLWNhcnJpYWdlOwor5KG8ID4gZnJhbWVzXC1vblwtdGhlXC1zaWRlc1wtYW5kXC1mcm9udFwtb2ZcLWFcLWNhcnJpYWdlOwor5JyvID4gbmFtZVwtb2ZcLWFcLXZhbGxleVwtaW5cLXRvZGF5JydzXC1zaGFueGlcLXByb3ZpbmNlOwor5Ji/ID4gc2hpcnRcLW9yXC1hXC1qYWNrZXRcLXdpdGhvdXRcLWFueVwtZGVjb3JhdGVkXC1oZW07CivkloIgPiBhblwtZWRpYlwtbGVcLXdhdGVyXC1wbGFudFwtXC1cLVwtYnJhc2VuaWFcLXB1cnB1cmNhOwor5I+uID4gdGhlXC1zaWRlc1wtb2ZcLXRoZVwtdHJ1bmtcLWZyb21cLWFybXBpdHNcLXRvXC1yaWJzOwor5IWNID4gc3RyYWlnaHRcLXVwd2FyZFwtb2ZcLXRoZVwtd2hlYXRcLWFuZFwtcmljZVwtcGxhbnQ7CivkgrggPiB0b1wtc21hc2hcLW9yXC10b1wta25vY2tcLXRvXC1waWVjZXNcLW9mXC10aGVcLXN0b25lOwor4768ID4gdG9cLXN1ZmZlclwtYVwtc3Ryb2tlXC1vZlwtcGFyYWx5c2lzXC1vclwtYXBvcGxleHk7Civjvq8gPiB0b1wtc3VmZmVyXC1hXC1zdHJva2VcLW9mXC1wYXJhbHlzaXNcLW9yXC1hcG9wbGV4eTsKK+O9qyA+IHNlZWRzXC1vZlwtdGhlXC1wbGFudFwtYWxsaWVkXC10b1wtdGhlXC13YXRlclwtbGlseTsKK+O4tyA+IGFcLWtpbmRcLW9mXC1jYXR0bGVcLXdpdGhcLXR3b1wtaG9ybnNcLXN0cmFpZ2h0XC11cDsKK+O2rCA+IGJyaWdodFwtbGlnaHRzXC1hbmRcLWlsbHVtaW5hdGlvbnNcLW9mXC10aGVcLWZpcmU7CivjtqEgPiBicmlnaHRcLWxpZ2h0c1wtYW5kXC1pbGx1bWluYXRpb25zXC1vZlwtdGhlXC1maXJlOwor47aGID4gbmFtZVwtb2ZcLWFcLXN0cmVhbVwtaW5cLWhlYmVpXC1wcm92aW5jZVwtaGVuZ3NoYW47CivjrqsgPiBhXC13b29kZW5cLWFydGljYWxcLXRvXC1iZVwtdXNlZFwtdG9cLWFkanVzdFwtYVwtYm93Owor46uNID4gdGhlXC1zY2FsbG9wc1wtYWxvbmdcLXRoZVwtbG93ZXJcLWVkZ2VcLW9mXC1hXC1mbGFnOwor46ePID4gdG9cLWNhcnJ5XC1vblwtdGhlXC1zaG91bGRlcnNvZlwtdHdvXC1vclwtbW9yZVwtbWVuOwor45u2ID4gZG9cLW5vdFwtY2FyZVwtYWJvdXRcLWFwcGVhcmFuY2VcLWFuZFwtZGVwb3J0bWVudDsKK+ObpyA+IG5hbWVcLW9mXC1hXC1jb3VudHlcLWluXC10b2RheScnc1wtc2hhbnhpXC1wcm92aW5jZTsKK+OalCA+IGluc3RydW1lbnRcLW9mXC10b3J0dXJlXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7CivjmYcgPiB0aGVcLWNhdHRsZVwtYW5kXC1ob3JzZXNcLXRyYW1wbGVkXC1vblwtdGhlXC1maWVsZDsKK+WohSA+IG11dHVhbFwtdGVybVwtb2ZcLWFkZHJlc3NcLXVzZWRcLWJ5XC1zb25zXC1pblwtbGF3Owor6a6gID4gYVwta2luZFwtb2ZcLXNoYWRcLXdpdGhcLWFcLWhlYWRcLWxpa2VcLWFcLXN0dXJnZW9uOwor6IORID4gdGhlXC1saW1ic1wuXC13aW5nc1wtb2ZcLWJpcmRzXC5cLWxlZ3NcLW9mXC1hbmltYWxzOwor562tID4gYW5cLWFuY2llbnRcLWRldmljZVwtZm9yXC13b3JraW5nXC13aXRoXC1udW1iZXJzOwor5rudID4gb25vbWF0b3BvZWljXC1mb3JcLXRoZVwtc291bmRcLW9mXC1mYWxsaW5nXC1yYWluOwor5amtID4gbXV0dWFsXC10ZXJtXC1vZlwtYWRkcmVzc1wtdXNlZFwtYnlcLXNvbnNcLWluXC1sYXc7Civks7UgPiBhXC1raW5kXC1vZlwtd2F0ZXJcLWJpcmRcLXdpdGhcLWNvbG9yZnVsXC1mZWF0aGVyOwor5LObID4gYVwtc21hbGxcLWJyb3duXC1zcGVja2xlZFwtYmlyZFwtbGlrZVwtdGhlXC1xdWFpbDsKK+SpkSA+IGhvcml6b250YWxcLWZyb250XC1iYXJcLW9uXC1hXC1jYXJ0XC1vclwtY2FycmlhZ2U7CivkppMgPiB0b1wtd2FpdFwtZm9yXC1zb21ldGhpbmdcLXRvaGFwcGVuXC1pbW1lZGlhdGVseTsKK+SjpCA+IG5hbWVcLW9mXC12aWxsYWdlXC1pblwtdG9kYXknJ3NcLXNoYW54aVwtcHJvdmluY2U7Civko50gPiBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC10b2RheScnc1wtc2hhbnhpXC1wcm92aW5jZTsKK+SjgiA+IG5hbWVcLW9mXC1hXC1jb3VudHlcLWluXC10b2RheScnc1wtaHVuYW5cLXByb3ZpbmNlOwor5KGpID4gc291bmRcLW9mXC1jYXJ0c1wtb3JcLXN0b25lc1wta25vY2tpbmdcLXRvZ2V0aGVyOwor5KGPID4gaG9yaXpvbnRhbFwtZnJvbnRcLWJhclwtb25cLWFcLWNhcnRcLW9yXC1jYXJyaWFnZTsKK+ShjCA+IGhvcml6b250YWxcLWZyb250XC1iYXJcLW9uXC1hXC1jYXJ0XC1vclwtY2FycmlhZ2U7CivkoIAgPiB0b1wtc2l0XC1jcm9zc1wtbGVnZ2VkXC1saWtlXC1hXC1idWRkaGlzdFwtcHJpZXN0Owor5JyrID4gbmFtZVwtb2ZcLWFcLXZhbGxleVwtaW5cLXRvZGF5JydzXC1ob2JlaVwtcHJvdmluY2U7CivknJogPiB0b1wtc3BlYWtcLXJlY2tsZXNzbHlcLW9yXC13aXRob3V0XC1mb3JldGhvdWdodDsKK+STpSA+IHNvdW5kXC1vZlwtdGhlXC13cmlnZ2xlZFwtaW5zZWN0c1wtb25cLXRoZVwtZ3Jhc3M7CivkkIQgPiB0aGVcLXVuc2F0aXNmYWN0aW9uXC1vZlwtaHVuZ2VyXC1yZXF1aXJlc1wtbWVhdDsKK+SNtCA+IHRvXC1zcXVlZXplXC1hbmRcLXRvXC1jcm93ZFwtYWdhaW5zdFwtZWFjaFwtb3RoZXI7CivkjYYgPiBjb250YWluZXJcLWZvclwtZ3JhaW5zXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7Civkh68gPiBhXC1raW5kXC1vZlwtYmFtYm9vXC13aXRoXC1wYXR0ZXJuc1wtb25cLXRoZVwtaGVhZDsKK+O8sSA+IHRvXC1tYW5hZ2VcLW9yXC1yZWd1bGF0ZVwtdGhlXC1sZWF0aGVyXC1tYXRlcmlhbDsKK+OviiA+IGV2ZW5cLW1lYXN1cmluZ1wtYm9hcmRcLWZvclwtcGVja3NcLWFuZFwtYnVzaGVsczsKK+OokCA+IHRvXC1zbGFwXC1saWdodGx5XC1vblwtdGhlXC1jbG90aGVzXC1vclwtY292ZXJsZXQ7CivjoqUgPiBhXC1iaWdcLXBpZWNlXC1vZlwtbG9nXC10b1wtam9pblwtdGhlXC10aGlja1wtcm9wZXM7Civnj4ggPiBhblwtb3JuYW1lbnRcLWF0dGFjaGVkXC10b1wtYVwtd29tYW4nJ3NcLWhhaXJwaW47CivonIMgPiBtYXJpbmVcLW1vbnN0ZXJcLXdoaWNoXC1jYW5cLWNoYW5nZVwtaXRzXC1zaGFwZTsKK+aWmyA+IGRyeVwtbWVhc3VyZVwtZXF1YWxcLXRvXC1zb21lXC1maXZlXC1vclwtdGVuXC1kb3U7CivphK8gPiBkaXN0cmljdFwtaW5cLWdhbnN1XC1kdXJpbmdcLXRoZVwtdGFuZ1wtZHluYXN0eTsKK+W6uSA+IHRoZVwtbGVuZ3RoXC1vZlwtb25lJydzXC10d29cLW91dHN0cmV0Y2hlZFwtYXJtczsKK+aPsiA+IHRvXC1zb3J0XC1vdXRcLXRoZVwtc3RhbGtzXC11c2VkXC1pblwtZGl2aW5hdGlvbjsKK+mfjSA+IGFcLWxlYXRoZXJcLWtuZWVcLXBhZFwtd29yblwtZHVyaW5nXC1zYWNyaWZpY2VzOwor6Y+eID4gYVwtbGFyZ2VcLWJlbGxcLXVzZWRcLWFzXC1hXC1tdXNpY2FsXC1pbnN0cnVtZW50Owor6LuOID4gYVwtYnJhc3NcLXBhcnRzXC1mb3JcLWFcLWNhcnRcLWluXC1hbmNpZW50XC1jaGluYTsKK+iZiyA+IGFzcGFyYWd1c1wtYVwtdmFyaWV0eVwtb2ZcLXJlZFwtc3RhbGtlZFwtbWlsbGV0Owor5bueID4gdG9cLXByZXBhcmVcLWhvcnNlc1wtYW5kXC1jaGFyaW90c1wtZm9yXC1iYXR0bGU7CivlqZcgPiBhXC1uZXdcLWJvcm5cLWNoaWxkXC10aGVcLXdoaW1wZXJcLW9mXC1hblwtaW5mYW50Owor5aa6ID4gd2lmZVwtb2ZcLXRoZVwtbGFzdFwtcnVsZXJcLW9mXC10aGVcLXhpYVwtZHluYXN0eTsKK+WZoCA+IHNvdW5kXC1tYWRlXC10b1wtZ2V0XC1hXC1ob3JzZVwtdG9cLW1vdmVcLWZvcndhcmQ7CivkuIIgPiBvYnN0cnVjdGlvblwtb2ZcLWJyZWF0aFwtYXNcLWl0XC1zZWVrc1wtcmVsZWFzZTsKK+SwvyA+IGFcLWtpbmRcLW9mXC1zbWFsbFwtZmlzaFwtZ3Jvd25cLWluXC1mcmVzaFwtd2F0ZXI7Civkor8gPiBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC10b2RheScnc1wtaG9iZWlcLXByb3ZpbmNlOwor5KGIID4gdGhlXC1jcm9zc1wtYmFyXC1hdFwtdGhlXC1zaWRlc1wtb2ZcLWFcLWNhcnJpdGFnZTsKK+SUiSA+IHNjYXR0ZXJlZFwtb3JcLWRpc3BlcnNlZFwtb2ZcLWdyYXNzXC1hbmRcLXRyZWVzOwor5JGSID4gYVwta2luZFwtb2ZcLWZhcm1cLXRvb2xcLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+SQoyA+IHNvdXBcLW1hZGVcLW9mXC1jdXR0ZWRcLW1lYXRcLW1peGVkXC13aXRoXC1ibG9vZDsKK+SMriA+IHNpbGtcLWZhYnJpY3NcLXdpdGhcLXRoZVwtY29sb3JcLW9mXC1uZXdcLWxlYXZlczsKK+SEqCA+IGdyYWluc1wtcHJvZHVjaW5nXC1uZWl0aGVyXC1mbG93ZXJcLW5vclwtZnJ1aXQ7CivkhJ0gPiBzaG93XC1ub1wtcmVzcGVjdFwtdG9cLXRoZVwtc2VydmljZVwtb2ZcLXdvcnNoaXA7CivjvK0gPiB0b1wtc3RlYWR5XC1ieVwtcHV0dGluZ1wtc29tZXRoaW5nXC11bmRlcm5lYXRoOwor47uyID4gYVwtcml0ZVwtb3JcLXNlcnZpY2VcLWZvclwtYmVnaW5uaW5nXC1vZlwtYXV0dW1uOwor46qqID4gdG9cLXVzZVwtYVwtd29vZGVuXC1wb2xlXC10b1wtc3VwcG9ydFwtc29tZXRoaW5nOwor46KmID4gd29vZGVuXC1wb3N0XC1vclwtcGlsZVwtZm9yXC10ZXRoZXJpbmdcLWFuaW1hbHM7CivjnKIgPiBhXC1iYWRcLXRlcm1cLWJ5XC13aGljaFwtb25lXC1hZGRyZXNzZXNcLWFcLXdvbWFuOwor45qSID4gY29uY2VhbGVkXC10aGVcLXN0b2xlblwtZ29vZHNcLWluXC1vbmUnJ3NcLWRyZXNzOwor6LijID4gdG9cLXN0dW1ibGVcLWFuZFwtZmFsbFwtcHJvbmVcLXN0aWZmXC1pblwtZGVhdGg7Civpu7wgPiBlbWJyb2lkZXJlZFwtb2ZmaWNpYWxcLW9yXC1zYWNyaWZpY2lhbFwtcm9iZTsKK+WzhCA+IGFcLXJhbmdlXC1vZlwtcGVha3NcLWluXC1zaGFuZG9uZ1wtYW5kXC1qaWFuZ3N1Owor6ZeXID4gYVwtZnJvbnRpZXJcLXBhc3NcLW9yXC1nYXRlXC10b1wtc2h1dFwtb3JcLWNsb3NlOwor6YK+ID4gYVwtZmV1ZGFsXC1zdGF0ZVwtd2hpY2hcLWV4aXN0ZWRcLWJcLmNcLjcwMFwtNDY5Owor6JapID4gdHJhbnNsaXRlcmF0aW9uXC1vZlwtJydzYXQnJ1wtaW5cLScnYm9kaGlzYXR0dmE7CivohrAgPiB0b1wtY29va1wtbWVhdFwtZm9yXC1hXC1zYWNyaWZpY2VcLW9yXC1vZmZlcmluZzsKK+eRjCA+IGFcLXdoaXRlXC1vcGFxdWVcLXF1YXJ0elwtdXNlZFwtZm9yXC1vcm5hbWVudHM7CivmvZ8gPiBsYW5kXC1pbXByZWduYXRlZFwtd2l0aFwtc2FsdFwtZnJvbVwtdGhlXC10aWRlOwor5banID4gYVwtcmFuZ2VcLW9mXC1wZWFrc1wtaW5cLXNoYW5kb25nXC1hbmRcLWppYW5nc3U7CivktZ4gPiBhbmNpZW50XC1wdW5pc2htZW50XC1vZlwtdGF0dG9vaW5nXC10aGVcLWZhY2U7CivksbkgPiBhXC1jb25kaW1lbnRcLW1hZGVcLWZyb21cLW1pbmNlZFwtZmlzaFwtc2FsdGVkOwor5LC8ID4gYVwtY29uZGltZW50XC1tYWRlXC1mcm9tXC1taW5jZWRcLWZpc2hcLXNhbHRlZDsKK+SvsCA+IHVzZVwtYVwtaGFpclwtcGluXC10b1wtc2V0XC1hbmRcLWRyZXNzXC10aGVcLWhhaXI7CivkrK8gPiB0b1wtaGF2ZVwtY29uZ2VlXC13aXRoXC1mcmllbmRzXC1pblwtb2xkXC10aW1lczsKK+ShiyA+IGRlY29yYXRpb25cLW9uXC10aGVcLW5hdmVcLW9yXC1odWJcLW9mXC1hXC13aGVlbDsKK+SegyA+IHRvXC1yZWxpZXZlXC1vclwtZ2l2ZVwtYWlkXC10b1wtdGhlXC1kaXN0cmVzc2VkOwor5J2pID4gdG9cLXJlbGlldmVcLW9yXC1naXZlXC1haWRcLXRvXC10aGVcLWRpc3RyZXNzZWQ7CivkmK8gPiB0aGVcLWxhcGVsXC1vclwtY29sbGFyXC1vZlwtYVwtZ2FybWVudFwtb3JcLXJvYmU7CivkmKQgPiBhXC1zd29yZFwtY292ZXJpbmdcLXRvXC1wcm90ZWN0XC10aGVcLXNjYWJiYXJkOwor5JGMID4gbHdoYXRcLWlzXC1sZWZ0XC1vdmVyXC1vZlwtdGhlXC1mb29kXC1cLW92ZXJyaXBlOwor5IunID4gb3JuYW1lbm50c1wtZm9yXC10aGVcLWZyb250YWxcLXBhcnRcLW9mXC1zaG9lczsKK+SLoyA+IGRlY29yYXRpb25zXC1wdXRcLW9uXC10aGVcLW1hbmVcLW9yXC1ob3JzZWhhaXI7Civkir8gPiB0aGVcLWxhcGVsXC1vclwtY29sbGFyXC1vZlwtYVwtZ2FybWVudFwtb3JcLXJvYmU7CivkiJUgPiB0aGVcLW1ldGFsXC10b25ndWVcLWluXC10aGVcLXJlZWRcLWluc3RydW1lbnRzOwor5IO0ID4gYVwtd2hldHN0b25lXC11c2VkXC10b1wtZ3JpbmRcLXByZWNpb3VzXC1zdG9uZTsKK+SBvCA+IHRvXC1sb29rXC1idXRcLXNlZVwtbm90aGluZ1wtXC1cLVwtYWJzZW50XC1taW5kZWQ7Civjv4YgPiBkYW1hZ2VcLWJ5XC10aGVcLXBlc3RzXC10b1wtdGhlXC1yaWNlXC1zZWVkbGluZzsKK+O7tiA+IGFcLWphZGVcLXR1YmVcLXdpdGhcLXdoaXRlXC1hbmRcLW5hdHVyZVwtY29sb3JzOwor47uwID4gZGVjb3JhdGVkXC1qYWRlXC1vclwtb3JuYW1lbnRcLW9uXC1hXC1zY2FiYmFyZDsKK+O7oSA+IGFcLWphZGVcLXJpbmdcLXdpdGhcLWFcLXNtYWxsXC1zZWdtZW50XC1jdXRcLW9mZjsKK+OuhiA+IGVhdmVzXC1zcHJvdXRpbmdcLWZyb21cLXRoZVwtc3R1bXBcLW9mXC1hXC10cmVlOwor46uUID4gb25lXC1vZlwtdGhlXC1laWdodFwtZGlhZ3JhbXNcLWZvclwtZGl2aW5hdGlvbjsKK+OquyA+IGFcLWtpbmRcLW9mXC11dGVuc2lsXC11c2VkXC10b1wtbGFkbGVcLW91dFwtd2luZTsKK+OpiiA+IHRvXC1wdWxsXC11cFwtdGhlXC1zbGVldmVzXC1hbmRcLXNob3dcLXRoZVwtYXJtczsKK+OnrSA+IHRvXC1nZXRcLXNvbWV0aGluZ1wtd2l0aFwtYm90aFwtcmFpc2luZ1wtaGFuZHM7Civjp5ogPiB0aGVcLWdlc3R1cmVcLW9mXC11c2luZ1wtYW5cLWluZGVudGVkXC1jb250YWluOwor46eGID4gdG9cLWNvdmVyXC1zb21ldGhpbmdcLXdpdGhcLWFcLXBpZWNlXC1vZlwtY2xvdGg7CivjoYsgPiBhXC1raW5kXC1vZlwtaGVhZGRyZXNzXC1mb3JcLW1hblwtaW5cLW9sZFwtY2hpbmE7CivjoLggPiB0aGVcLWxhcGVsXC1vclwtY29sbG9yXC1vZlwtYVwtZ2FybWVudFwtb3JcLXJvYmU7CivjnJogPiBhXC1sb2NhbFwtZ292ZXJubWVudFwtcG9zdFwtaW5cLWFuY2llbnRcLXRpbWVzOwor45mfID4gbG93XC1seWluZ1wtb25cLXRoZVwtc2lkZVwtb2ZcLWFcLXJpdmVyXC1vclwtbGFrZTsKK+WWjyA+IHJlc3BlY3RmdWxcLXJlcGx5XC1vZlwtYXNzZW50XC10b1wtc3VwZXJpb3JzOwor56yPID4gdGFibGV0XC1oZWxkXC1ieVwtc29tZW9uZVwtaGF2aW5nXC1hdXRob3JpdHk7CivotrwgPiBjYWxsb3VzXC1za2luXC1vblwtaGFuZHNcLW9yXC1mZWV0XC5cLWJsaXN0ZXJzOwor6aWdID4gdG9cLWZlZWRcLWFuXC1pbmZhbnRcLWJ5XC1oYW5kXC1zdGVhbWVkXC1icmVhZDsKK+ijjSA+IGFcLWJvcmRlclwtb3JcLWJhbmRcLW9uXC10aGVcLWVkZ2VcLW9mXC1hXC1kcmVzczsKK+exqiA+IGFcLXdlaXJcLW9mXC1iYW1ib29cLXRvXC1jYXRjaFwtZmlzaFwtb3JcLWNyYWJzOwor55iyID4gc3Bhc21zXC1vclwtY29udnVsc2lvbnNcLWluXC15b3VuZ1wtY2hpbGRyZW47CivnkbIgPiB0aW5rbGluZ1wtc291bmRcLXRpbmtsaW5nXC1vZlwtcGVuZGFudFwtZ2VtczsKK+W8nSA+IHRoZVwtcGFydFwtb2ZcLWFcLWJvd1wtZ3Jhc3BlZFwtd2hlblwtc2hvb3Rpbmc7CivkpZwgPiBwcm90ZWN0aXZlXC1tZXRhbFwtb25cLXRoZVwtYXhpc1wtb2ZcLWFcLXdoZWVsOwor5JmWID4gYVwtY2xvdGhcLXRvXC1jYXJyeVwtYW5cLWlpbmZhbnRcLW9uXC10aGVcLWJhY2s7CivkmYAgPiBhXC1jbG90aFwtdG9cLWNhcnJ5XC1hblwtaWluZmFudFwtb25cLXRoZVwtYmFjazsKK+SPqyA+IGluXC1iZXR3ZWVuXC1vZlwtdGhlXC1hYmRvbWVuXC1hbmRcLXRoZVwtc3BpbmU7CivkjYkgPiB0cmFjZXNcLW9yXC1tYXJrc1wtb2ZcLWluY29tcGxldGVcLW9yXC1kYW1hZ2U7CivkjLggPiBmaW5lXC1zaWxrXC1mYWJyaWNcLW9mXC1icmlnaHRcLXdoaXRlXC1jb2xvdXI7Civki78gPiBhXC1kZWNvcmF0aXZlXC1rbm90XC1tYWRlXC1vZlwtY29sb3JmdWxcLXNpbGs7CivkiJwgPiBhXC10aHJlYWRcLXVzZWRcLWJ5XC1jYXJwZW50ZXJzXC1mb3JcLW1hcmtpbmc7CivkiIYgPiBhXC1zaGFsbG93XC1hbmRcLWxvbmdcLXNoYXBlZFwtYmFtYm9vXC1iYXNrZXQ7Civjv7kgPiBqdXR0aW5nXC1vblwtdGhlXC1lcGlkZXJtaXNcLW9yXC10aGVcLWN1dGljbGU7CivjvKsgPiBlYXJ0aGVud2FyZVwtb3JcLXBvdHRlcnlcLXdpdGhcLWJpZ1wtb3BlbmluZzsKK+O1uyA+IHRvXC1wZXJzcGlyZVwtZnJvbVwtZW1iYXJyYXNzbWVudFwtb3JcLXNoYW1lOwor462pID4gYVwta2luZFwtb2ZcLXRyZWVcLWNhblwtYmVcLXVzZWRcLWFzXC1keWVcLXN0dWZmOwor46OZID4gdG9cLXdhbGtcLWluXC1hblwtZWFzeVwtYW5kXC1sZWlzdXJlbHlcLW1hbm5lcjsKK+OiqiA+IHRvXC1kcmF3XC1hXC1mdWxsXC1ib3dcLXRvXC1haW1cLWF0XC10aGVcLXRhcmdldDsKK+OYiiA+IHRoZVwtYWJydXB0XC1hbmRcLWhhc3R5XC1zb3VuZFwtb2ZcLXRoZVwtY3Jvd2Q7Civjlq4gPiBhblwtaW50ZXJqZWN0aW9uXC11c2VkXC1pblwtcG9lbXNcLWFuZFwtc29uZ3M7CivjlK4gPiBhXC1raW5kXC1vZlwtYW5pbWFsXC13aGljaFwtbG9va3NcLWxpa2VcLWFcLXJhdDsKK+WVpyA+IGludGVyamVjdGlvblwtb2ZcLWFwcHJvdmFsXC1vclwtYWRtaXJhdGlvbjsKK+aNuiA+IHRvXC1wcmVzc1wtZG93blwtaGVhdmlseVwtd2l0aFwtdGhlXC1maW5nZXJzOwor5YKjID4gdGhlXC1kYWlcLW1pbm9yaXR5XC1saXZpbmdcLWluXC1zb3V0aFwtY2hpbmE7CivpuKkgPiBhXC1iaXJkXC1yZXNlbWJsaW5nXC10aGVcLXNlY3JldGFyeVwtZmFsY29uOwor5redID4gbmFtZVwtb2ZcLWFuXC1hZmZsdWVudFwtb2ZcLXRoZVwtcG95YW5nXC1sYWtlOwor6YOFID4gdG9cLWdvXC11cFwtdG9cLlwtZmxvdXJpc2hpbmdcLWFcLXN1cGVybGF0aXZlOwor6L2rID4gYVwtYmxvY2tcLXRoYXRcLWtlZXBzXC1hXC13aGVlbFwtZnJvbVwtbW92aW5nOwor5ba3ID4gYVwtcmFuZ2VcLW9mXC1tb3VudGFpbnNcLWluXC1odW5hblwtcHJvdmluY2U7CivprLIgPiB0eXBlXC1vZlwtY2FsZHJvblwtd2l0aFwtdGhyZWVcLWhvbGxvd1wtbGVnczsKK+WIliA+IGN1dHRpbmdcLW9mZlwtZmVldFwtYXNcLWZvcm1cLW9mXC1wdW5pc2htZW50Owor56m4ID4gdGhlXC1nbG9vbVwtb2ZcLXRoZVwtZ3JhdmVcLWFcLXRvbWJcLW9yXC1ncmF2ZTsKK+iYhSA+IGFcLWZyYWdyYW50XC1wbGFudFwtdGhlXC1yb290XC1pc1wtbWVkaWNpbmFsOwor6bSGID4gYVwtYmlyZFwtcmVzZW1ibGluZ1wtdGhlXC1zZWNyZXRhcnlcLWZhbGNvbjsKK+mphiA+IHVzZWRcLWluXC10cmFuc2xpdGVyYXRpbmdcLWJ1ZGRoaXN0XC1ib29rczsKK+mnjyA+IG9mZnNwcmluZ1wtb2ZcLWFcLXN0YWxsaW9uXC1hbmRcLWFcLXNoZVwtbXVsZTsKK+mJjCA+IHRoZVwtYmVsbHNcLW9uXC10aGVcLWNhcnRcLWluXC1hbmNpZW50XC1jaGluYTsKK+i7lCA+IGFcLWJsb2NrXC10aGF0XC1rZWVwc1wtYVwtd2hlZWxcLWZyb21cLW1vdmluZzsKK+ippyA+IHRvXC1leGFtaW5lXC1pbnRvXC1qdWRpY2lhbGx5XC10b1wtZmluZFwtb3V0Owor57azID4gYVwtY2xvdGhcLXRvXC1jYXJyeVwtYW5cLWluZmFudFwtb25cLXRoZVwtYmFjazsKK+e2liA+IHRoZVwtaGFuZ2luZ1wtZmxhcFwtaW5cLXRoZVwtZnJvbnRcLW9mXC1hXC1oYXQ7CivnpasgPiB0cmllbm5pYWxcLXNhY3JpZmljZVwtdG9cLW9uZScnc1wtYW5jZXN0b3JzOwor56O7ID4gYVwtdHJpYnV0YXJ5XC1vZlwtdGhlXC13ZWlcLXJpdmVyXC1pblwtc2hhbnhpOwor5pa0ID4gdGhlXC1zb3VuZFwtb2ZcLXdhdGVyXC1mbG93aW5nXC1hbW9uZ1wtcm9ja3M7CivltJEgPiBrdW5sdW5cLW1vdW50YWluc1wtaW5cLWppYW5nXC1zdVwtcHJvdmluY2VcLjsKK+WYliA+IGludGVyamVjdGlvblwtb2ZcLWFwcHJvdmFsXC1vclwtYWRtaXJhdGlvbjsKK+SwmCA+IHRvXC1raWxsXC1ieVwtaGFuZ2luZ1wtb3JcLXRvXC1zdHJhbmd1bGF0aW9uOwor5K6XID4gd2hpdGVcLWZyb21cLWZvcmVoZWFkXC10b1wtbGlwc1wtb2ZcLWFcLWhvcnNlOwor5KqyID4gYW5jaWVudFwtcHVuaXNobWVudFwtb2ZcLXNoYXZpbmdcLXRoZVwtaGVhZDsKK+SpuCA+IGZpbmVcLXdvb2xlblwtYmxhbmtldFwtb25cLXRvcFwtb2ZcLWFcLXNhZGRsZTsKK+SpqyA+IGFcLXVuaXRcLXRvXC1jb3VudFwtc2hvZXNcLWluXC1hbmNpZW50XC10aW1lczsKK+SmhSA+IGFcLWtpbmRcLW9mXC13ZWFwb25cLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+SlkCA+IGNvb2tpbmdcLXV0ZW5zaWxzXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7CivkoocgPiBhXC1zb25cLXdob1wtaXNcLW5vdFwtc29cLWdvb2RcLWFzXC1oaXNcLWZhdGhlcjsKK+SblyA+IHRvXC1wcnlcLWludG9cLW9yXC1leHBvc2VcLWFub3RoZXInJ3NcLXNlY3JldDsKK+SahSA+IHRvXC1sb29rXC1hZnRlclwtaG9tZVwtb3JcLWRvbWVzdGljXC1hZmZhaXJzOwor5JioID4gc2hvcnRcLWxlZ2dpbmdzXC1kcmF3blwtb3ZlclwtdGhlXC10cm91c2VyczsKK+SWvyA+IGFcLWtpbmRcLW9mXC1jbGFtXC13aXRoXC10aGlja1wtd2hpdGVcLXNoZWxsczsKK+SWvSA+IGFcLWtpbmRcLW9mXC1jbGFtXC13aXRoXC10aGlja1wtd2hpdGVcLXNoZWxsczsKK+SVsCA+IGFcLXNlY29uZFwtbmFtZVwtZm9yXC1yaGl6b21lXC1vZlwtd2luZFwtd2VlZDsKK+STrSA+IHdlZWRcLW9yXC1ncmFzc1wtd2l0aFwtbmFycm93XC10aGlja1wtZ2xhZGVzOwor5I27ID4geW91bmdcLWdvYXRcLW9mXC1zaGVlcFwtdW5kZXJcLW9uZVwteWVhclwtb2xkOwor5I2mID4gYVwta2luZFwtb2ZcLXR1cmJhblwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5Iy5ID4gYVwtZ2FybWVudFwtb2ZcLW9uZVwtY29sb3VyXC13aXRoXC1ub1wtbGluaW5nOwor5ISqID4gaGFuZ2luZ1wtZG93blwtb2ZcLXRoZVwtZWFyc1wtb2ZcLXRoZVwtZ3JhaW5zOwor5ISNID4geWVhclwtZW5kXC1zYWNyaWZpY2VcLW9mXC10aGVcLXpob3VcLWR5bmFzdHk7CivjvaAgPiBjb25uZWN0aW9uXC1vZlwtdGhlXC1kaXRjaGVzXC1vclwtd2F0ZXJ3YXlzOwor47yuID4gdG9cLXJ1Ylwtb3V0XC10aGVcLWZpbHRoXC13aXRoXC1icm9rZW5cLXRpbGVzOwor46upID4gdGhlXC1maXJzdFwtb2ZcLXRoZVwtZm91clwtc2Vhc29uXC1cLVwtXC1zcHJpbmc7CivvpaQgPiBhXC10cmlidXRhcnlcLW9mXC10aGVcLXdlaVwtcml2ZXJcLWluXC1zaGFueGk7CivjpJ0gPiBwYWxwaXRhdGlvblwtb3JcLWZsdXR0ZXJpbmdcLW9mXC10aGVcLWhlYXJ0Owor46SRID4gcGFscGl0YXRpb25cLW9yXC1mbHV0dGVyaW5nXC1vZlwtdGhlXC1oZWFydDsKK+OfjCA+IGFcLW1vdW50YWluXC1pblwtdG9kYXknJ3NcLXNpY2h1YW5cLXByb3ZpbmNlOwor45SvID4gYVwtbGFyZ2VcLWJhc2tldFwtZm9yXC1ob2xkaW5nXC1jb29rZWRcLXJpY2U7CivnrJkgPiBzbWFsbFwtZ291cmRcLXNoYXBlZFwtbXVzaWNhbFwtaW5zdHJ1bWVudDsKK+a7lSA+IGFuXC1hbmNpZW50XC1zdGF0ZVwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+mVmyA+IGxhcmdlXC1iZWxsXC11c2VkXC1hc1wtbXVzaWNhbFwtaW5zdHJ1bWVudDsKK+iutSA+IGFuXC1pbnRlcmplY3Rpb25cLXVzZWRcLWV4cHJlc3NcLXN1cnByaXNlOwor5rOUID4gd2F0ZXJcLWZyb21cLXdhc2hpbmdcLXJpY2VcLXRvXC1ib2lsXC10aGljazsKK+eYkCA+IHRvXC1kaWVcLWluXC1wcmlzb25cLWZyb21cLWNvbGRcLWFuZFwtaHVuZ2VyOwor5qO8ID4gYmVhbXNcLWluXC10aGVcLXJvb2ZcLW9mXC1hXC1ob3VzZVwtY29uZnVzZWQ7CivpuoUgPiBhXC1zbWFsbFwtc3BvdHRlZFwtZGVlclwtZm91bmRcLWluXC1uXC5jaGluYTsKK+mYvCA+IHRoZVwtc3RlcHNcLWxlYWRpbmdcLXRvXC10aGVcLWVhc3Rlcm5cLWRvb3I7CivovJcgPiBhXC1jcm9zc1wtYmFyXC1hdFwtZW5kXC1vZlwtYVwtY2FycmlhZ2VcLXBvbGU7CivoqY4gPiBpbnRlcmplY3Rpb25cLXVzZWRcLXRvXC1leHByZXNzXC1zdXJwcmlzZTsKK+e8jCA+IGNvYXJzZVwtY290dG9uXC1jbG90aFwtdXNlZFwtZm9yXC1tb3VybmluZzsKK+e3piA+IGNvYXJzZVwtY290dG9uXC1jbG90aFwtdXNlZFwtZm9yXC1tb3VybmluZzsKK+ehnCA+IHRoZVwtc291bmRcLW9mXC1zdG9uZXNcLWtub2NraW5nXC10b2dldGhlcjsKK+eKiSA+IGFuXC1veFwtd2l0aFwteWVsbG93XC1oYWlyXC1hbmRcLWJsYWNrXC1saXBzOwor54WdID4gdHdpc3RlZFwtcGFwZXJcLWZvclwtbGlnaHRpbmdcLWNpZ2FyZXR0ZXM7CivluKwgPiB0aGVcLXNraXJ0XC1vZlwtYVwtbGFkeScnc1wtZHJlc3NcLXBldHRpY29hdDsKK+W1oCA+IGFcLXZhbGxleVwtd2l0aFwtYVwtc3RyZWFtXC1pblwtaXRcLlwtYVwtZ29yZ2U7CivksZcgPiBhXC1sb25nXC1uYXJyb3dcLWZpc2hcLXRyaWNoaXVydXNcLWFybWF0dXM7CivksZQgPiBhXC1sb25nXC1uYXJyb3dcLWFuZFwtc2lsdmVyXC1jb2xvcmVkXC1maXNoOwor5KqTID4gYVwtbWV0YWxcLW9ybmFtZW50XC1vblwtc29tZVwta2luZFwtb2ZcLWJlbHQ7CivkqJkgPiB0b1wtcmFpblwtY2F0c1wtYW5kXC1kb2dzXC1mb3JcLWFcLWxvbmdcLXRpbWU7CivkpoogPiBhblwtYXBwbGlhbmNlXC1mb3JcLXdhbGtpbmdcLW9uXC10aGVcLXNhbmRzOwor5KWCID4gdGhlXC1zaGFycFwtZWRnZVwtb2ZcLWFcLXNob3ZlbFwtb3JcLWFcLXNwYWRlOwor5KGVID4gdGhlXC1yZWFyXC1wbGF0Zm9ybVwtb2ZcLWFcLWxpZ2h0XC1jYXJyaWFnZTsKK+SclCA+IHRvXC1zcGVha1wtb25cLXRoZVwtaWRlYXNcLW9mXC1zb21lb25lXC1lbHNlOwor5JagID4gYVwta2luZFwtb2ZcLWxpemFyZFwtZm91bmRcLWluXC1kYW1wXC1wbGFjZXM7CivklpwgPiB0aGVcLWZpZ2h0aW5nXC1zb3VuZFwtbWFkZVwtYnlcLXR3b1wtdGlnZXJzOwor5I6SID4gZmx5aW5nXC1xdWlja2x5XC1hbmRcLXRvXC1hdHRhY2tcLXN1ZGRlbmx5Owor5IuKID4gZGVjb3JhdGlvbnNcLW9mXC10aGVcLWVtcGVyb3InJ3NcLWNhcnJpYWdlOwor5ICbID4gdG9cLWxvb2tcLWZhclwtd2l0aFwtdGhlXC1leWVzXC1oYWxmXC1jbG9zZWQ7CivjvKggPiBhXC13YXRlclwtamFyXC13aXRoXC1lYXJzXC1mb3JcLWNhcnJ5aW5nXC1pdDsKK+O7jiA+IGFcLWxhcmdlXC1ob3Jpem9udGFsXC1tdXNpY2FsXC1pbnN0cnVtZW50Owor47qqID4gYW5cLXVuY2FydmVkXC1vZlwtdW5wb2xpc2hlZFwtamFkZVwtb3JcLWdlbTsKK+O1vyA+IGVuZGxlc3NseVwtbG9uZ1wtb3JcLXZhc3RcLXdhdGVyXC1jdXJyZW50czsKK+O0qSA+IG5hbWVcLW9mXC1hXC1zdHJlYW1cLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7Civjr5ggPiBhXC1zbWFsbFwtd29vZGVuXC1zdGFuZFwtaGF2aW5nXC1mb3VyXC1sZWdzOwor46SNID4gbmV2ZXJcLXJldmVhbFwtb25lJydzXC1mZWVsaW5nXC1vclwtZW1vdGlvbjsKK+OjoCA+IGFcLXJvcGVcLWRlY29yYXRlZFwtd2l0aFwtYnJvbnplXC1vcm5hbWVudDsKK+OhkSA+IGFuY2llbnRcLW1vdXJuaW5nXC10dXJiYW5cLXdvcm5cLWJ5XC13b21lbjsKK+OgkSA+IGhpZ2hcLW1vdW50YWluXC1zdGVlcFwtcnVnZ2VkXC1hbmRcLXVuZXZlbjsKK+OghCA+IG5hbWVcLW9mXC1hXC1tb3VudGFpblwtaW5cLXl1bm5hblwtcHJvdmluY2U7CivjoIEgPiBpcnJlZ3VsYXJcLW91dGxpbmVcLW9mXC1hXC1yYW5nZVwtb2ZcLWhpbGxzOwor45+aID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluXC1pblwtc2hhbnhpXC1wcm92aW5jZTsKK+OevyA+IG5hbWVcLW9mXC1hXC1tb3VudGFpblwtaW5cLXNoYW54aVwtcHJvdmluY2U7CivjnrkgPiBuYW1lXC1vZlwtYVwtbW91bnRhaW5cLWluXC1zaGFueGlcLXByb3ZpbmNlOwor45q2ID4gd2lmZVwtb2ZcLW9uZScnc1wtaHVzYmFuZCcnc1wtZWxkZXJcLWJyb3RoZXI7CivjmIggPiBhYmxlXC10b1wtdGFrZVwtYVwtY29ycmVjdFwtdmlld1wtb2ZcLXRoaW5nczsKK+OXsCA+IHRoZVwtY2hhcmFjdGVyXC11c2VkXC1pblwtdHJhbnNsaXRlcmF0aW9uOwor45K/ID4gYVwta2luZFwtb2ZcLXR1cmJhblwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWU7CivlvIEgPiBjb25pY2FsXC1jYXBcLXdvcm5cLWR1cmluZ1wtemhvdVwtZHluYXN0eTsKK+mFiSA+IHRlbnRoXC1vZlwtdGhlXC10d2VsdmVcLWVhcnRobHlcLWJyYW5jaGVzOwor5peMID4gYmFubmVyXC1vclwtZmxhZ1wtYWRvcm5lZFwtd2l0aFwtZmVhdGhlcnM7Civooa4gPiBjZXJlbW9uaWFsXC1kcmVzc1wtd29yblwtYnlcLXRoZVwtZW1wZXJvcjsKK+a6pyA+IHJpdmVyXC1pblwtYW5odWlcLWFuZFwtamlhbmdzdVwtcHJvdmluY2VzOwor57ONID4gZm9vZFwtbWFkZVwtb2ZcLWNydXNoZWRcLWFuZFwtY29va2VkXC1yaWNlOwor5q6bID4gdG9cLXB1dFwtdG9cLWRlYXRoXC10b1wtaW1wcmlzb25cLWZvclwtbGlmZTsKK+eLjSA+IHNwZWNpZXNcLW9mXC1kZWVyXC1mb3VuZFwtaW5cLW5vcnRoXC1jaGluYTsKK+e7giA+IHJpYmJvblwtb3JcLWNvcmRcLXVzZWRcLWF0dGFjaFwtb3JuYW1lbnRzOwor56OJID4gdGhlXC1zdG9uZVwtYmFzZVwtb3JcLXBsaW50aFwtb2ZcLWFcLXBpbGxhcjsKK+iVuSA+IGlwb21vZWFcLWFxdWF0aWNhXC11c2VkXC1hc1wtYVwtdmVnZXRhYmxlOwor6b2IID4gY29sZFwtaW5cLXRoZVwtaGVhZFwtY2F0YXJyaFwtb2ZcLXRoZVwtbm9zZTsKK+m5uyA+IGltcHVyZVwtY2FyYm9uYXRlXC1vZlwtc29kaXVtXC1vZlwtbmF0cm9uOwor6baiID4gYVwtYmlyZFwtd2hpY2hcLWZyZXF1ZW50c1wtdGhlXC1zZWFcLXNob3JlOwor6YOqID4gbmFtZVwtb2ZcLWFcLXN0cmVhbVwtaW5cLXNpY2h1YW5cLXByb3ZpbmNlOwor6L2eID4gYVwtdmVoaWNsZVwtZm9yXC10cmFuc3BvcnRpbmdcLXByaXNvbmVyczsKK+i8uSA+IHR3b1wtcGllY2VzXC1vZlwtd29vZFwtdW5kZXJuZWF0aFwtYVwtY2FydDsKK+iiniA+IGNlcmVtb25pYWxcLWRyZXNzXC13b3JuXC1ieVwtdGhlXC1lbXBlcm9yOwor6Iq/ID4gZ3Jhc3NcLXdoaWNoXC1oYXNcLWJlZW5cLWN1dFwtYW5kXC1yZWdyb3duOwor6IOsID4gYVwtZGlzZWFzZScnc1wtbmFtZVwtaW5cLWNoaW5lc2VcLW1lZGljaW5lOwor57SxID4gcmliYm9uXC1vclwtY29yZFwtdXNlZFwtYXR0YWNoXC1vcm5hbWVudHM7CivnpoogPiBzZW1pXC1hbm51YWxcLWNlcmVtb255XC1vZlwtcHVyaWZpY2F0aW9uOwor5oilID4gYVwtc21hbGxcLXN0ZWVseWFyZFwtZm9yXC13ZWlnaGluZ1wtbW9uZXk7Civlr40gPiB1c2VkXC1hc1wtYVwtdGVybVwtb2ZcLWNvbXBhcmlzb25cOlwtcmF0aGVyOwor5ZKXID4gdmVyYmFsXC1wYXJ0aWNsZVwtb2ZcLXBlcmZlY3RpdmVcLWFzcGVjdDsKK+S4sSA+IGNoaWxkJydzXC1oYWlyc3R5bGVcLWJvdW5kXC1pblwtdHdvXC10dWZ0czsKK+SupCA+IG9uZVwtb2ZcLXRoZVwtMzZcLWdhcmRlbnNcLWluXC1oYW5cLWR5bmFzdHk7CivkrK0gPiBuYW1lXC1vZlwtYVwtbGVnZW5kYXJ5XC1mZXJvY2lvdXNcLWFuaW1hbDsKK+SqlCA+IGNyb3NzXC1iYXJcLW9mXC13b29kXC11bmRlclwtdGhlXC1jYXJyaWFnZTsKK+SnpCA+IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+SkjCA+IGFcLWtpbmRcLW9mXC13aW5lXC1iZVwtYnJld2VkXC1mcm9tXC1ncmFpbnM7CivkoLcgPiB0aGVcLWFwcGVhcmFuY2VcLW9mXC1oZWlnaHRcLWluXC1hXC1wZXJzb247CivkoIUgPiBoYW5kc1wtYW5kXC1mZWV0XC1jaGFwcGVkXC1mcm9tXC10aGVcLWNvbGQ7CivknaQgPiBhXC1wcmltaXRpdmVcLXRyaWJlXC1pblwtc291dGh3ZXN0XC1jaGluYTsKK+SdnyA+IGFcLWZpZXJjZVwtbWFuXC1lYXRpbmdcLWFuaW1hbFwtaW5cLWxlZ2VuZDsKK+SdnSA+IGFuXC1leGNsYW1hdGlvblwtaW5kaWNhdGluZ1wtYWRtaXJhdGlvbjsKK+SbkyA+IGFuXC1vZmZpY2lhbFwtcG9zaXRpb25cLWluXC1mb3JtZXJcLXRpbWVzOwor5JqYID4gdGhlXC1sb25nXC1hbmRcLXVwcmlnaHRcLWhvcm5zXC1vZlwtY2F0dGxlOwor5JaSID4gZWFydGhlbndhcmVcLXdpdGhcLXRoZVwtc2hhcGVcLW9mXC1hXC1iZWFuOwor5JWOID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzc1wtcGVyZW5uaWFsOwor5JORID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzc1wtZHVja3dlZWRzOwor5JGXID4gdG9cLXBvdW5kXC1pblwtb3JkZXJcLXRvXC1yZW1vdmVcLXRoZVwtaHVzazsKK+SRlCA+IHRvXC1wb3VuZFwtaW5cLW9yZGVyXC10b1wtcmVtb3ZlXC10aGVcLWh1c2s7CivkkLEgPiB0b1wtcGlja1wtdGhlXC1tZWF0XC1pblwtYmV0d2Vlblwtb2ZcLWJvbmVzOwor5I+BID4gdW5hYmxlXC10b1wtaGVhclwtZGlzdGluY3RseVwtb3JcLWNsZWFybHk7CivkiqAgPiB0b1wtZ2l2ZVwtYVwtc3VwcGx5XC1mXC1ncmFpblwtZm9yXC1yYXRpb25zOwor5ImfID4gYVwtYmFtYm9vXC1iYXNrZXRcLXVzZWRcLXRvXC1jYXRjaFwtZmlzaGVzOwor5IiwID4gYVwtYnJ1c2hcLWZvclwtd2FzaGluZ1wta2l0Y2hlblwtdXRlbnNpbHM7Civkh7wgPiBhXC1iYW1ib29cLXZlc3NlbFwtdXNlZFwtdG9cLWNhdGNoXC1maXNoZXM7CivkhKsgPiBhXC1raW5kXC1vZlwtc29yZ2h1bVwtd2l0aFwtd2hpdGVcLXNwcm91dHM7CivkhIggPiBzYWNyaWZpY2VcLXRvXC1oYXBwaW5lc3NcLWFuZFwtZ29vZFwtbHVjazsKK+SDpCA+IGJsYWNrXC1jb2xvcmVkXC1ncmluZHN0b25lXC1vclwtd2hlc3RvbmU7Civkg44gPiBuYW1lXC1vZlwtYVwtcGxhY2VcLVwtc21hbGxcLXBpZWNlXC1vZlwtY29hbDsKK+SCvyA+IHRvXC1wb3VuZFwtaW5cLW9yZGVyXC10b1wtcmVtb3ZlXC10aGVcLWh1c2s7CivkgrkgPiBzb3VuZFwtb2ZcLXRoZVwtZmFsbGluZ1wtcGllY2VzXC1vZlwtcm9ja3M7CivkgbYgPiB0b1wtbG9va1wtYXRcLXNvbWV0aGluZ1wtd2l0aG91dFwtd2lua2luZzsKK+SBtSA+IG5ld2Jvcm5cLWJhYnlcLXdpdGhcLXRoZVwtZXllbGlkc1wtY2xvc2VkOwor472FID4gdmVzc2VsXC1mb3JcLWNlcmVtb255XC1pblwtYW5jaWVudFwtdGltZXM7CivjuLkgPiBjYXR0bGVcLXdpdGhcLXdoaXRlXC1zdHJpcGVcLW9uXC10aGVcLWJhY2s7CivjuJcgPiBub3RcLWFcLXJlYWxcLWZhdGhlclwtb3JcLWFcLW5hdHVyZVwtZmF0aGVyOwor47OYID4gYVwtZm91bnRhaW5cLW9yXC1zcHJpbmdcLWZsb3dzXC1kb3dud2FyZHM7Civjrq8gPiB3aG9sZVwtcGllY2VcLW9mXC1vclwtdW5icm9rZW5cLWZpcmV3b29kczsKK+OunCA+IGFcLWJsb2Nrc1wtZW5ncmF2ZWRcLWZvclwtaG9sZGluZ1wtdGhpbmdzOwor46uqID4gdG9cLXBvdW5kXC1pblwtb3JkZXJcLXRvXC1yZW1vdmVcLXRoZVwtaHVzazsKK+OfvCA+IG5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+OelCA+IHRoZVwtdXByaWdodFwtYmFyXC1mb3JcLWZhc3RlbmluZ1wtYVwtZG9vcjsKK+OdniA+IHByZXRlbmRcLXRvXC1iZVwtZGVsaWNhdGVcLWFuZFwtYmVhdXRpZnVsOwor45y5ID4gbmFtZVwtb2ZcLWFcLWZvbGtcLXNvbmdcLWluXC1hbmNpZW50XC10aW1lczsKK+OagSA+IHRoZVwtbG9uZ1wtdGFpbFwtZmVhdGhlcnNcLXdoaWNoXC1jdXJsXC11cDsKK+mYriA+IGFuY2llbnRcLW11c2ljYWxcLWluc3RydW1lbnRcOlwtc3VybmFtZTsKK+WWlCA+IGRlc2NyaXB0aXZlXC1vZlwtY3J5aW5nXC1vclwtb2ZcLWNyb3dpbmc7CivnkI8gPiB2ZXNzZWxcLXVzZWRcLXRvXC1ob2xkXC1ncmFpblwtb2ZmZXJpbmdzOwor6YKVID4gZm9ybWVyXC1vclwtbGl0ZXJhcnlcLW5hbWVcLWZvclwtbmFubmluZzsKK+mtkSA+IGFcLW1vdW50YWluXC1kZW1vblwtcmVzZW1ibGluZ1wtYVwtdGlnZXI7CivmmLYgPiBhXC1sb25nXC1kYXlcLlwtYnJpZ2h0XC5cLWV4dGVuZGVkXC5cLWNsZWFyOwor57ynID4gYVwtY2hhaW5cLW9yXC1yb3BlXC11c2VkXC1iaW5kXC1jcmltaW5hbHM7Civonq0gPiBhXC1kcmFnb25cLXdob3NlXC1ob3Juc1wtaGF2ZVwtbm90XC1ncm93bjsKK+m+gCA+IGxvc2VcLWJhYnlcLXRlZXRoXC1hbmRcLWdldFwtYWR1bHRcLXRlZXRoOwor6IKcID4gdG9cLXNhY3JpZmljZVwtb25cLXR3b1wtc3VjY2Vzc2l2ZVwtZGF5czsKK+mClyA+IGFuXC1hbmNpZW50XC1wbGFjZVwtaW5cLXRoZVwtc3RhdGVcLW9mXC13dTsKK+m+hiA+IGxvc2VcLWJhYnlcLXRlZXRoXC1hbmRcLWdldFwtYWR1bHRcLXRlZXRoOwor6b2gID4gbG9zZVwtYmFieVwtdGVldGhcLWFuZFwtZ2V0XC1hZHVsdFwtdGVldGg7CivpvZQgPiBsb3NlXC1iYWJ5XC10ZWV0aFwtYW5kXC1nZXRcLWFkdWx0XC10ZWV0aDsKK+mQpCA+IGh1Z2VcLXRyaXBvZFwtb2ZcLWJyb256ZVwtd2l0aFwtdHdvXC1lYXJzOwor6KetID4gb25lXC10dXJuaW5nXC11cFwtYW5kXC1vbmVcLXR1cm5pbmdcLWRvd247CivopLEgPiB0b1wtY2FycnlcLWluXC10aGVcLWJvc29tXC1vclwtdGhlXC1zbGVldmU7CivopKIgPiB0b1wtY2FycnlcLWluXC10aGVcLWJvc29tXC1vclwtdGhlXC1zbGVldmU7CivoiZwgPiBhXC1sb25nXC1uYXJyb3dcLXZlc3NlbFwtd2l0aFwtdHdvXC1tYXN0czsKK+iHvyA+IHRvXC1zZXBhcmF0ZVwtdGhlXC1ncmFpblwtZnJvbVwtdGhlXC1odXNrOwor57iyID4gYVwtY2hhaW5cLW9yXC1yb3BlXC11c2VkXC1iaW5kXC1jcmltaW5hbHM7CivntbAgPiB3aGl0ZVwtaGVtcGVuXC1jbG90aFwtd29yblwtYnlcLW1vdXJuZXJzOwor56KqID4gc3RvbmVcLXNsYWJcLXVzZWRcLWZvclwtd2FzaGluZ1wtY2xvdGhlczsKK+ebhyA+IHdoeVwtbm90XD9cLXdvdWxkXC1pdFwtbm90XC1iZVwtYmV0dGVyXC10b1w/Owor5rurID4gd2F0ZXJcLWluXC13aGljaFwtcmljZVwtaGFzXC1iZWVuXC1ib2lsZWQ7CivmqpEgPiBsb2dzXC1yb2xsZWRcLWRvd25cLWluXC1kZWZlbnNlXC1vZlwtY2l0eTsKK+ajsyA+IHNtYWxsXC1waWxsYXJzXC10aGF0XC1zdXBwb3J0XC10aGVcLXJvb2Y7CivluJcgPiBhXC1tdWx0aWNvbG9yZWRcLXByb3BcLXVzZWRcLWluXC1kYW5jaW5nOwor5ZigID4gdGhlXC1jaGlycGluZ1wtb2ZcLWJpcmRzXC1sb3VkXC1sYXVnaHRlcjsKK+WUhCA+IGZpbmFsXC1wYXJ0aWNsZVwtb2ZcLWFzc2VydGlvblwtcGF0aGFrYTsKK+WAuyA+IHBob25ldGljXC11c2VkXC1pblwta29yZWFuXC1wbGFjZVwtbmFtZXM7CivktbogPiBib3VuZGFyeVwtYmV0d2VlblwtYWdyaWN1bHR1cmFsXC1sYW5kczsKK+S1uSA+IGluc2VjdHNcLXRoYXRcLWFyZVwtaW5qdXJpb3VzXC10b1wtY3JvcHM7CivkrY0gPiB0b1wtbGl2ZVwtd2l0aFwtYW5vdGhlclwtYXRcLWhpc1wtZXhwZW5zZTsKK+SspSA+IGNvb2tlZFwtZm9vZFwtd2hpY2hcLWhhc1wtYmVjb21lXC1tb3VsZHk7CivkrJkgPiB0b1wtZGFuY2VcLWFuZFwtdG9zc1wtYWJvdXRcLWluXC10aGVcLXdpbmQ7CivkoKsgPiB0b1wtc3VjY3VtYlwtdG9cLXRoZVwtZWZmZWN0XC1vZlwtYWxjb2hvbDsKK+SdpiA+IGFcLWtpbmRcLW9mXC1hbmltYWxcLWxvb2tzXC1saWtlXC1sZW9wYXJkOwor5JygID4gbGFuZ3VhZ2VcLW9mXC10aGVcLXNhdmFnZVwtb3JcLWJhcmJhcmlhbjsKK+SWuiA+IGFcLWxlZ2VuZGFyeVwtYW5pbWFsXC1pblwtYW5jaWVudFwtdGltZXM7CivklqUgPiBpbnNlY3RzXC10aGF0XC1hcmVcLWluanVyaW91c1wtdG9cLWNyb3BzOwor5JK8ID4gYVwtYmFtYm9vXC10cmF5XC1mb3JcLXJhaXNpbmdcLXNpbGt3b3JtczsKK+SRsyA+IGFcLWhvcml6b250YWxcLWJhclwtaW5cLWZyb250XC1vZlwtYVwtYm9hdDsKK+SQpyA+IHRvXC1yZXdhcmRcLW9yXC1jaGVlclwtdHJvb3BzXC13aXRoXC1mb29kOwor5I6wID4gbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtc2ljaHVhblwtcHJvdmluY2U7CivkjZ8gPiBhXC1raW5kXC1vZlwtZmlzaFwtbmV0XC13aXRoXC1maW5lXC1tZXNoZXM7Civkh6ggPiBhXC1iYW1ib29cLWJhc2tldFwtZm9yXC1mb29kXC1jb250YWluZXJzOwor5IaOID4gZ3Jhc3NcLWFuZFwtZ3JhaW5zXC1wcm9kdWNpbmdcLW5vXC1mcnVpdDsKK+SEuyA+IGFcLXNlY29uZFwtdGltZVwtZ3Jvd2luZ1wtb2ZcLXJpY2VcLXBsYW50Owor5ICaID4gdG9cLWxpZnRcLXVwXC10aGVcLWV5ZXNcLWFuZFwtbG9va1wtYXJvdW5kOwor47+WID4gY2FyYnVuY2xlXC11c2VkXC1pblwtbmFtaW5nXC1vZlwtYVwtcGxhY2U7CivjupsgPiBuYW1lXC1vZlwtYVwtdmlsbGFnZVwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+O3iCA+IGVtYmVyc1wta2VwdFwtZm9yXC1zdGFydGluZ1wtYVwtbmV3XC1maXJlOwor47WBID4gdmFzdFwtYW5kXC1ib3VuZGxlc3NcLW9mXC1mbG93aW5nXC13YXRlcjsKK+OzlSA+IHdhdGVyXC1pblwtd2hpY2hcLXJpY2VcLWhhc1wtYmVlblwtd2FzaGVkOwor46+qID4gY2FydmVkXC1vclwtcGF0dGVybmVkXC13aW5kb3dcLXJhaWxpbmdzOwor46uAID4gaHVnZVwtdHJpcG9kXC1vZlwtYnJvbnplXC13aXRoXC10d29cLWVhcnM7CivvppQgPiB2ZXNzZWxcLXVzZWRcLXRvXC1ob2xkXC1ncmFpblwtb2ZmZXJpbmdzOwor46CZID4gYVwtbW91bnRhaW5cLXBhdGhzXC1uYW1lXC1vZlwtYVwtbW91bnRhaW47Civjk60gPiB0b1wtbWFrZVwtcmVhZHlcLXRoZVwtbGVhdGhlclwtZm9yXC1zaG9lczsKK+OQtyA+IGFcLWtpbmRcLW9mXC1wdW5pc2htZW50XC1pblwtaGFuXC1keW5hc3R5Owor6KKxID4gYVwtcGllY2VcLW9mXC1jbG90aFwtdXNlZFwtd3JhcFwtYnVuZGxlczsKK+aMsiA+IHRvXC1mZWVsXC1vclwtZm9uZGxlXC13aXRoXC10aGVcLWZpbmdlcnM7Civnr5EgPiBhXC1iYW1ib29cLWJhc2tldFwtZm9yXC1jYXJyeWluZ1wtZWFydGg7CivogpMgPiByZWdpb25cLWJldHdlZW5cLWhlYXJ0XC1hbmRcLWRpYXBocmFnbTsKK+a7piA+IHJpdmVyXC1hbmRcLWNvdW50eVwtaW5cLWhlYmVpXC1wcm92aW5jZTsKK+mDlyA+IGNpdHlcLXVuZGVyXC10aGVcLWNob3VcLWR5blwuXC1hXC1zdXJuYW1lOwor54+PID4gdHdvXC1waWVjZXNcLW9mXC1qYWRlXC1qb2luZWRcLXRvZ2V0aGVyOwor57amID4gZGFya1wtZ3JleVwuXC12YXJpZWdhdGVkXC5cLXN1cGVybGF0aXZlOwor6bqHID4gZ2VuZXJhbFwtbmFtZVwtZm9yXC10aGVcLWhvcm5sZXNzXC1kZWVyOwor55KOID4gYVwtbmVja2xhY2VcLW1hZGVcLW9mXC1wcmVjaW91c1wtc3RvbmVzOwor5o6+ID4gYVwtZ2VuZXJhbFwtZGVzaWduYXRpb25cLW9mXC1vZmZpY2lhbHM7Civpg4cgPiBhblwtYW5jaWVudFwtZmV1ZGFsXC1zdGF0ZVwtaW5cLXNoYWFueGk7CivpvpggPiB0aGVcLWFwcGVhcmFuY2VcLW9mXC1hXC1kcmFnb25cLXdhbGtpbmc7CivptL0gPiBhXC1zcGVjaWVzXC1vZlwtYmlyZFwtcmVzZW1ibGluZ1wtcXVhaWw7CivphKsgPiBzdGF0ZVwtaW5cLXRvZGF5JydzXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivphIcgPiBhXC1uYW1lXC1vZlwtYVwtdG93blwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+i/vyA+IHRvXC1iZVwtdGhlXC1maXJzdFwtdG9cLWJlZ2luXC1hXC1xdWFycmVsOwor6L2VID4gZ3JlYXRcLWFycmF5XC1vZlwtc3BlYXJzXC1hbmRcLWNoYXJpb3RzOwor6Ly1ID4gZ3JlYXRcLWFycmF5XC1vZlwtc3BlYXJzXC1hbmRcLWNoYXJpb3RzOwor6LygID4gZ3JlYXNlXC1wb3RcLWh1bmdcLXVuZGVyXC1heGxlXC1vZlwtY2FydDsKK+iGsiA+IHRoZVwtdGhyZWVcLWRpdmlzaW9uc1wtb2ZcLXRoZVwtdmlzY2VyYTsKK+e0liA+IGFcLXJvcGVcLWZvclwtbGVhZGluZ1wtY2F0dGxlXC1vclwtaG9yc2U7CivnsKMgPiBhXC1iYW1ib29cLWJhc2tldFwtZm9yXC1jYXJyeWluZ1wtZWFydGg7CivnrK4gPiBib2FyZHNcLXdoaWNoXC1zdXBwb3J0XC10aWxlc1wtb25cLXJvb2Y7CivnoIUgPiBjcm9zc1wtc3RyZWFtXC1ieVwtc3RlcHBpbmdcLW9uXC1zdG9uZXM7Civnk5QgPiBhXC1uZWNrbGFjZVwtbWFkZVwtb2ZcLXByZWNpb3VzXC1zdG9uZXM7CivnkokgPiBhXC12ZXNzZWxcLXVzZWRcLWhvbGRcLWdyYWluXC1vZmZlcmluZ3M7Civnj7EgPiBhXC1uZWNrbGFjZVwtbWFkZVwtb2ZcLXByZWNpb3VzXC1zdG9uZXM7CivnjqggPiB0d29cLXBpZWNlc1wtb2ZcLWphZGVcLWpvaW5lZFwtdG9nZXRoZXI7CivngaQgPiByaXZlclwtYW5kXC1jb3VudHlcLWluXC1oZWJlaVwtcHJvdmluY2U7CivmoqEgPiB0cmF5XC1mb3JcLWNhcnJ5aW5nXC1zYWNyaWZpY2lhbFwtbWVhdDsKK+aMsSA+IHRvXC1mZWVsXC1vclwtZm9uZGxlXC13aXRoXC10aGVcLWZpbmdlcnM7CivlubUgPiBldmVuXC1sZXZlbFwuXC10b1wtcmFpc2VcLWluXC1ib3RoXC1oYW5kczsKK+WrhCA+IGFuXC1hbmNpZW50XC1lbXBlcm9yJydzXC1tb3RoZXInJ3NcLW5hbWU7Civlm7cgPiByb3VuZFwtc2hhcGVkXC1zdG9yYWdlXC1iaW5cLWZvclwtZ3JhaW47CivktJkgPiBhXC1raW5kXC1vZlwtYmlyZFwtcmVzZW1ibGluZ1wtdGhlXC1kdWNrOwor5LKDID4gYVwtY2FycFwtbGlrZVwtZmlzaFwtd2l0aFwtY2hpY2tlblwtZmVldDsKK+SplyA+IHRvXC1ydWxlXC1ieVwtbWlnaHRcLXJhdGhlclwtdGhhblwtcmlnaHQ7CivkopUgPiBhXC1ncm91cFwtb2ZcLXBlb3BsZVwtd2Fsa2luZ1wtdG9nZXRoZXI7CivkmqEgPiBib25lc1wtaW5cLWFcLWhvcm5cLW9mXC1jYXR0bGVcLWFuZFwtZ29hdDsKK+SZrCA+IHBsYWl0c1wtb25cLXRoZVwtc2lkZXNcLW9mXC1hXC1wZXR0aWNvYXQ7CivkkIAgPiB0b1wtZGlzbWVtYmVyXC1ib2R5XC1vZlwtdGhlXC1saXZlc3RvY2s7Civkjo4gPiB0b1wtZ2xpZGVcLW9yXC10b1wtaG92ZXJcLXVwXC1pblwtdGhlXC1haXI7CivkjYogPiBjbGF5XC1tYWRlXC1ibG93aW5nXC13aW5kXC1pbnN0cnVtZW50czsKK+SIvyA+IGJlbHRcLW9mXC10aGVcLWNhbnZhc1wtdG9wXC1vblwtdmVoaWNsZXM7Civkh64gPiBhXC1iYW1ib29cLW1hdFwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5IWaID4gY2xvc2VseVwtZ3Jvd2luZ1wtb2ZcLXRoZVwtcmljZVwtcGxhbnRzOwor5IS2ID4gcmljZVwtcGxhbnRcLWdyb3dpbmdcLXRoZVwtc2Vjb25kXC10aW1lOwor5IG+ID4gcmVkXC1hbmRcLXN3ZWxsaW5nXC1vZlwtdGhlXC1leWVcLXNvY2tldDsKK+SBqCA+IHRvXC1vcGVuXC10aGVcLWV5ZXNcLXdpdGhcLWFzdG9uaXNobWVudDsKK+O9myA+IG5hcnJvd1wtdHJhaWxcLW9mXC1wYXRoXC1pblwtdGhlXC1maWVsZHM7CivjupEgPiBkb2dzXC13b3JtZWRcLXRocm91Z2hcLWFcLW5hcnJvd1wtcGxhY2U7CivjuaIgPiBhXC1sYXJnZVwtYXBlXC1mb3VuZFwtaW5cLXdlc3Rlcm5cLWNoaW5hOwor47mcID4gdHdvXC1kb2dzXC1hcmVcLWJhcmtpbmdcLXRvXC1lYWNoXC1vdGhlcjsKK+O5iSA+IGFcLWxlZ2VuZGFyeVwtYW5pbWFsXC13aXRoXC10aHJlZVwtZmVldDsKK+O3piA+IHRvXC1vcGVuXC10aGVcLWV5ZXNcLXdpdGhcLWFzdG9uaXNobWVudDsKK+O2gCA+IGRlZXBcLWFuZFwtdmFzdFwtb2ZcLXRoZVwtZmxvd2luZ1wtd2F0ZXI7CivjsLYgPiB0b1wtd3JpbmtsZVwtdGhlXC1ub3NlXC13aXRoXC1zb3Jyb3dmdWw7CivjrbIgPiBhXC13b29kZW5cLWZyYW1lXC1mb3JcLWNhcnJ5aW5nXC10aGluZ3M7CivjoaEgPiBzY3JlZW5cLXRvXC1tYWtlXC1hXC10ZW1wb3JhcnlcLWtpdGNoZW47CivjoL8gPiBhXC1raW5kXC1vZlwtZGVsaWNhdGVcLWFuZFwtZmluZVwtZmFicmljOwor45y6ID4gbmljZVwtd2hpdGVcLWNvbG9yXC1hbmRcLWxvb2tzXC1zb1wtZ29vZDsKK+OctSA+IHdpdGhcLWFcLWNoYXJtaW5nXC1zcHJpZ2h0bHlcLWNhcnJpYWdlOwor45qpID4gd2l0aFwtYVwtY2hhcm1pbmdcLXNwcmlnaHRseVwtY2FycmlhZ2U7CivjmYggPiBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC1zaGFueGlcLXByb3ZpbmNlOwor45ahID4gdGhlXC1iaXJkc1wtc2luZ2luZ1wtZHVyaW5nXC10aGVcLW5pZ2h0Owor45W6ID4gbG9va3NcLWJpZ1wtb3V0c2lkZVwtYnV0XC1lbXB0eVwtaW5zaWRlOwor45WEID4gdG9cLWFwcGx5XC1rbm93bGVkZ2VcLXRvXC1maW5hbFwtY2F1c2VzOwor56S+ID4gZ29kXC1vZlwtdGhlXC1zb2lsXC1hbmRcLWFsdGFyc1wtdG9cLWhpbTsKK+eRnyA+IGxhcmdlXC1zdHJpbmdlZFwtbXVzaWNhbFwtaW5zdHJ1bWVudDsKK+alniA+IHVzZWRcLWZvclwtY2V5bG9uXC1pblwtYnVkZGhpc3RcLXRleHRzOwor5Za9ID4gdXNlZFwtaW5cLW9ub21hdG9wb2V0aWNcLWV4cHJlc3Npb25zOwor5ZqFID4gdGFsa1wtaW5kaXN0aW5jdGx5XC1hbmRcLWZhbHRlcmluZ2x5Owor6KOxID4gdG9cLW1vdW50XC1tYXBzXC1vclwtc2Nyb2xsc1wtdG9cLXBhc3RlOwor54yiID4gYVwta2luZFwtb2ZcLW1vbmtleVwtZm91bmRcLWluXC13XC5jaGluYTsKK+icriA+IGFcLWZhYnVsb3VzXC1jcmVhdHVyZVwtbGlrZVwtYVwtdHVydGxlOwor5ZGWID4gdXNlZFwtaW5cLW9ub21hdG9wb2V0aWNcLWV4cHJlc3Npb25zOwor56KhID4gc3RvbmVcLXJvbGxlclwtdXNlZFwtdG9cLWxldmVsXC1maWVsZHM7CivphKMgPiBuYW1lXC1vZlwtYW5jaWVudFwtY2l0eVwtaW5cLW5cLmppYW5nc3U7CivnsqIgPiBncmFpblwtb2ZmZXJlZFwtaW5cLXJpdHVhbFwtc2FjcmlmaWNlOwor57CmID4gbGFyZ2VcLXVtYnJlbGxhXC13aXRoXC1hXC1sb25nXC1oYW5kbGU7CivonpMgPiBhXC1zbWFsbFwtY2ljYWRhXC13aXRoXC1hXC1zcXVhcmVcLWhlYWQ7CivprYogPiBhXC1teXRoaWNhbFwtY3JlYXR1cmVcLXNhaWRcLWh1cmxcLXNhbjsKK+mfkCA+IGtuZWVcLXBhZFwtbWFkZVwtb2ZcLXJlZFwtZHllZFwtbGVhdGhlcjsKK+i7jyA+IGNyb3NzXC1iYXJcLWF0XC1lbmRcLW9mXC1wb2xlc1wtb2ZcLWNhcnQ7CivoloAgPiB0aGVcLWhpcHB1cmlzXC1vclwtbWFyZScnc1wtdGFpbFwtcGxhbnQ7CivolbAgPiB0aGVcLWhpcHB1cmlzXC1vclwtbWFyZScnc1wtdGFpbFwtcGxhbnQ7CivogZ0gPiB0b1wtY3V0XC10aGVcLWxlZnRcLWVhcnNcLW9mXC10aGVcLXNsYWluOwor6ICUID4gdG9cLWhvZVwtdXBcLXRoZVwtZWFydGhcLWFyb3VuZFwtcGxhbnRzOwor57CrID4gbXVzaWNhbFwtaW5zdHJ1bWVudFwtbGlrZVwtcGFuXC1waXBlczsKK+ewqCA+IGFcLWJlYW1cLWZvclwtaGFuZ2luZ1wtYmVsbHNcLW9yXC1kcnVtczsKK+ewmCA+IG11c2ljYWxcLWluc3RydW1lbnRcLWxpa2VcLXBhblwtcGlwZXM7Civnrr4gPiBtdXNpY2FsXC1pbnN0cnVtZW50XC1saWtlXC1wYW5cLXBpcGVzOwor56SzID4gbmFtZVwtb2ZcLXBsYWNlXC1pblwtc2hhblwteGlcLXByb3ZpbmNlOwor56KrID4gY29hcnNlXC1zdG9uZVwtXCh1c2VkXC1mb3JcLXdoZXRzdG9uZVwpOwor55KvID4gamFkZVwtb3JuYW1lbnRcLWluXC10aGVcLXNlYW1zXC1vZlwtY2FwOwor55CvID4gYVwtamFkZVwtdHViZVwtdXNlZFwtYXNcLWFuXC1pbnN0cnVtZW50Owor546BID4gYVwtZG9nXC13aXRoXC1hXC1sb25nXC1zbm91dFwtb3JcLW11enpsZTsKK+ajnyA+IHRoZVwtbWFpblwtYmVhbXNcLXN1cHBvcnRpbmdcLWFcLWhvdXNlOwor5oigID4gYVwtc3dvcmRcLlwtcG90dGVyJydzXC1jbGF5XC5cLXRvXC1nYXRoZXI7CivlmqYgPiB1c2VkXC1pblwtb25vbWF0b3BvZXRpY1wtZXhwcmVzc2lvbnM7CivlmI0gPiB1c2VkXC1pblwtb25vbWF0b3BvZXRpY1wtZXhwcmVzc2lvbnM7Civlka0gPiBmaW5hbFwtcGFydGljbGVcLWV4cHJlc3NpbmdcLWNvbnNlbnQ7CivlkaEgPiB0aGVcLWNvcm5lcnNcLW9mXC10aGVcLW1vdXRoXC10aGVcLWxpcHM7CivktqwgPiBoYXJkXC1maW5zXC1vblwtdGhlXC1iYWNrXC1vZlwtYVwtZHJhZ29uOwor5LaFID4gYVwtbWFybW90XC1saWtlXC1yYXRcLXdpdGhcLWFcLWJpZ1wtaGVhZDsKK+S0kyA+IGdlbmVyYWxcLXRlcm1cLWZvclwtc21hbGxcLWJpcmRcLWdyb3VwOwor5KyXID4gYmxvd25cLW9yXC10b3NzZWRcLWFib3V0XC1ieVwtdGhlXC13aW5kOwor5KeJID4gbmFtZVwtb2ZcLWFcLXBhdmlsaW9uXC1pblwtaGFuXC1keW5hc3R5Owor5KW2ID4gY29va2luZ1wtdXRlbnNpbFwtdXNlZFwtaW5cLW9sZFwtdGltZXM7CivkpawgPiBhXC1tdXNpY2FsXC1pbnN0cnVtZW50XC1pblwtb2xkXC10aW1lczsKK+SjnCA+IG5hbWVcLW9mXC1hXC1jb3VudHlcLWluXC1hbmNpZW50XC10aW1lczsKK+SjliA+IG5hbWVcLW9mXC1hXC1jb3VudHlcLWluXC1hbmNpZW50XC10aW1lczsKK+SjlSA+IG5hbWVcLW9mXC1hXC1jb3VudHlcLWluXC1hbmNpZW50XC10aW1lczsKK+SjjCA+IHJlc2lkZW5jZVwtb2ZcLWFcLXByaW5jZVwtb3JcLW5vYmlsaXR5Owor5KGdID4gYVwtcmVhclwtY292ZXJpbmdcLW9mXC1hXC1iaWdcLWNhcnJpYWdlOwor5KGKID4gdGhlXC1wcm90cnVkZWRcLXNpZGVzXC1vZlwtYVwtY2FycmlhZ2U7CivkoJogPiB0b1wtc3RlcFwtb25cLXRoZVwtZ3JvdW5kXC13aXRoXC1hXC1iYW5nOwor5JaDID4gdGhlXC13YXRlclwtaXNcLXdhdmluZ1wtaW5cLXRoZVwtYnJlZXplOwor5JWkID4gbmFtZVwtb2ZcLWFcLWNvdW50eVwtaW5cLWFuY2llbnRcLXRpbWVzOwor5JKnID4gYVwtdmVzc2VsXC1vclwtdXRlbnNpbFwtbWFkZVwtb2ZcLXN0cmF3Owor5I2yID4gYVwta2luZFwtb2ZcLXNoZWVwXC13aXRoXC1jdXJsZWRcLWhhaXJzOwor5Iu4ID4gYmFja1wtY2VudGVyXC1zdXR1cmVcLW9mXC10aGVcLWNsb3RoZXM7Civki5sgPiB0aGVcLWNsdXN0ZXJlZFwtZW1icm9pZGVyeVwtcGF0dGVybnM7CivkipYgPiB0b1wtZWF0XC1yaWNlXC1ncnVlbFwtbWl4ZWRcLXdpdGhcLW1lYXQ7CivkhoUgPiB0b1wtYWNjdW11bGF0ZVwtb3JcLXRvXC1zdG9yZVwtdXBcLXJpY2U7CivkgqcgPiByb2Nrc1wtY2x1c3RlcmVkXC1waWxlXC11cFwtdG9nZXRoZXJzOwor5IC/ID4gdG9cLWhhdmVcLWFcLWNhc3VhbFwtYW5kXC1zaG9ydFwtZ2xhbmNlOwor5IC4ID4gdG9cLWhhdmVcLWFcLWNhc3VhbFwtYW5kXC1zaG9ydFwtZ2xhbmNlOwor47mXID4gY2F0dGxlXC1hbmRcLXNoZWVwXC1oYXZlXC1ub1wtY2hpbGRyZW47CivjtrIgPiBtZWFzdXJpbmdcLXVuaXRcLWZvclwtdGhlcm1vZHluYW1pY3M7CivjtbogPiBuYW1lXC1vZlwtYVwtc3RyZWFtXC1pblwtYW5jaWVudFwtdGltZXM7CivjtZAgPiBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1odWJlaVwtcHJvdmluY2U7CivjtYsgPiBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1odW5hblwtcHJvdmluY2U7CivjsZIgPiB0b1wtc2NvbGRcLW9yXC1ibGFtZVwtaW5cLWFcLWxvdWRcLXZvaWNlOwor466+ID4gYVwtcGxhY2VcLWluXC10b2RheScnc1wtaHVuYW5cLXByb3ZpbmNlOwor46yIID4gdGhlXC1zdW5cLXdhc1wtc2hpbmluZ1wtYW5kXC1pdCcnc1wtd2FybTsKK+OqiiA+IGluZmVzdGVkXC13aXRoXC1iYW5kaXRzXC1hbmRcLXJvYmJlcnM7CivjqJggPiB0b1wtYmxvd1wtdGhlXC1ub3NlXC13aXRoXC10aGVcLWZpbmdlcnM7Civjn74gPiBuYW1lXC1vZlwtYVwtbW91bnRhaW5cLWluXC1jb3VudHlcLWppYW47Civjn7ggPiBuYW1lXC1vZlwtcGF2aWxpb25cLWluXC1hbmNpZW50XC1jaGluYTsKK+OfiSA+IG5hbWVcLW9mXC1wYXZpbGlvblwtaW5cLWFuY2llbnRcLWNoaW5hOwor45+CID4gbmFtZVwtb2ZcLWNhcGVcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivjmqogPiB0b1wtbWFrZVwtYVwtZGVjZXB0aXZlXC1zaG93XC1vZlwtcG93ZXI7Civjko0gPiB1dHRlcmx5XC13ZWFyeVwtaW5cLWJvZHlcLWFuZFwtc3Bpcml0czsKK+OQjCA+IGFcLXRyaWJlXC1vZlwtc2F2YWdlc1wtaW5cLXNvdXRoXC1jaGluYTsKK+aNuyA+IHRvXC10d2lzdFwtb3JcLW5pcFwtd2l0aFwtdGhlXC1maW5nZXJzOwor5oiMID4gZWxldmVudGhcLW9mXC10ZXJyZXN0cmlhbFwtYnJhbmNoZXM7CivmkJMgPiB0b1wtcnViXC1vclwtcm9sbFwtYmV0d2VlblwtdGhlXC1oYW5kczsKK+WwpyA+IGFcLWxlZ2VuZGFyeVwtYW5jaWVudFwtZW1wZXJvclwtc2FnZTsKK+WptiA+IHdpZmVcLW9mXC1mYXRoZXInJ3NcLXlvdW5nZXJcLWJyb3RoZXI7CivmjqwgPiB0b1wtZ3Jhc3BcLW9yXC1ob2xkXC13aXRoXC1ib3RoXC1oYW5kczsKK+W5myA+IHNjcm9sbFwtb2ZcLXNpbGtcLW9yXC1jbG90aFwtcHJlc2VudGU7Civmo4IgPiBjYXJ2ZWRcLW9yXC1wYXR0ZXJuZWRcLXdpbmRvd1wtc2lsbHM7CivmsLIgPiBsaWZlXC1naXZpbmdcLWluZmx1ZW5jZXNcLW9mXC1uYXR1cmU7Civomp0gPiBoYWlyeVwtYW5kXC1wb2lzb25vdXNcLWNhdGVycGlsbGFyczsKK+a+pyA+IHJpdmVyXC1pblwtbm9ydGhlcm5cLWh1bmFuXC1wcm92aW5jZTsKK+etriA+IGRpdmluYXRpb25cLXdpdGhcLXN0YWxrc1wtb2ZcLXBsYW50czsKK+esqiA+IGFcLWNvYXJzZVwtbWF0XC1vZlwtcnVzaGVzXC1vclwtYmFtYm9vOwor6aaTID4gZnJpZWRcLXJvdW5kXC1jYWtlc1wtb2ZcLXdoZWF0XC1mbG91cjsKK+eukCA+IHRvXC1kcmF3XC1hXC1iYW1ib29cLWJvd1wtb3JcLWNyb3NzYm93Owor5omDID4gYVwtZG9vclwtYmFyXC1wbGFjZWRcLW91dHNpZGVcLWFcLWRvb3I7Civku4kgPiBzdXJuYW1lXC1vZlwtdGhlXC1tb3RoZXJcLW9mXC1tZW5jaXVzOwor6aq+ID4gYW55XC1vYmplY3RcLXRoYXRcLXN0aWNrc1wtaW5cLXRocm9hdDsKK+mliiA+IGZyaWVkXC1yb3VuZFwtY2FrZXNcLW9mXC13aGVhdFwtZmxvdXI7CivphrwgPiBvZmZlclwtZm9vZFwtYW5kXC13aW5lXC1vbmUnJ3NcLWd1ZXN0czsKK+i8pyA+IGN1cnRhaW5lZFwtY2FycmlhZ2VcLXVzZWRcLWJ5XC13b21lbjsKK+i7vyA+IGN1cnRhaW5lZFwtY2FycmlhZ2VcLXVzZWRcLWJ5XC13b21lbjsKK+i7mSA+IGFcLWNoaW5lc2VcLWZhbWlseVwtbmFtZVwtdG9cLWFycmFuZ2U7CivotIEgPiB0b1wtZGVmZWF0XC10b1wtc3BvaWxcLW9yXC1iZVwtc3BvaWxlZDsKK+izjyA+IHBlYXJsc1wtb3JcLXNoZWxsc1wtc3RydW5nXC10b2dldGhlcjsKK+iriiA+IHRvXC1tYWtlXC1hXC1qdWRpY2lhbFwtaW52ZXN0aWdhdGlvbjsKK+iehiA+IGhhaXJ5XC1hbmRcLXBvaXNvbm91c1wtY2F0ZXJwaWxsYXJzOwor57qZID4gc3RyaW5nXC1vblwtd2hpY2hcLWNvaW5zXC1hcmVcLXN0cnVuZzsKK+ezpCA+IGZyaWVkXC1yb3VuZFwtY2FrZXNcLW9mXC13aGVhdFwtZmxvdXI7CivnrbQgPiB0eXBlXC1vZlwtZ3Jhc3NcLXVzZWRcLWluXC1kaXZpbmF0aW9uOwor55CHID4gY29hcnNlXC12YXJpZXR5XC1vZlwtamFzcGVyXC1vclwtamFkZTsKK+awsyA+IGxpZmVcLWdpdmluZ1wtaW5mbHVlbmNlc1wtb2ZcLW5hdHVyZTsKK+aruiA+IGNhcnZlZFwtb3JcLXBhdHRlcm5lZFwtd2luZG93XC1zaWxsczsKK+ajqyA+IHRob3JueVwtc2hydWJcLXdpdGhcLXllbGxvd1wtZmxvd2VyczsKK+aXkyA+IHNlcnJhdGVkXC1lZGdlc1wtb25cLWFcLWNoaW5lc2VcLWZsYWc7CivltrIgPiBhXC1uYW1lXC1vZlwtYW5cLW9sZFwtdG93blwtaW5cLXNpY2h1YW47CivlsK0gPiBhXC1sZWdlbmRhcnlcLWFuY2llbnRcLWVtcGVyb3JcLXNhZ2U7CivlrLggPiB3aWZlXC1vZlwtZmF0aGVyJydzXC15b3VuZ2VyXC1icm90aGVyOwor5aGxID4gcGxhY2VcLW5hbWVcLWluXC1ndWFuZ2RvbmdcLXByb3ZpbmNlOwor5aCvID4gYVwtbGVnZW5kYXJ5XC1hbmNpZW50XC1lbXBlcm9yXC1zYWdlOwor5YmoID4gc291bmRcLW9mXC1zb21ldGhpbmdcLWJlaW5nXC1zbWFzaGVkOwor5LWsID4gYmxhY2tcLXNvdW5kXC1vZlwtdGhlXC1mbG93aW5nXC13YXRlcjsKK+S0jSA+IGFcLWtpbmRcLW9mXC1zdHJhbmdlXC1hbmRcLXdlaXJkXC1iaXJkOwor5LSJID4gZ2VuZXJhbFwtdGVybVwtZm9yXC1hXC1ncm91cFwtb2ZcLWJpcmQ7Civks7AgPiBhXC1iaXJkXC1yZXNlbWJsaW5nXC10aGVcLXdpbGRcLWdvb3NlOwor5LOIID4gYVwtYmlyZFwtcmVzZW1ibGluZ1wtdGhlXC13aWxkXC1nb29zZTsKK+SxmSA+IGFcLXNtYWxsXC1raW5kXC1vZlwtdHVuYVwtb3JcLXN0dXJnZW9uOwor5LCUID4gZHJlc3NlZFwtaGFpclwtaW5cLWFcLWhvcml6b250YWxcLXdheTsKK+SwiSA+IGRyZXNzZWRcLWhhaXJcLWluXC1hXC1ob3Jpem9udGFsXC13YXk7CivkqqwgPiBzb3VuZFwtb2ZcLXByZXNzaW5nXC1zb21ldGhpbmdcLWRvd247CivkqawgPiBhblwtb3JuYW1lbnRhbFwtaXRlbVwtb25cLWFcLXNjYWJiYXJkOwor5Ke1ID4gYVwtYmlyZFwtbGlrZVwtdGhlXC1zZWNyZXRhcnlcLWZhbGNvbjsKK+SmjiA+IGFcLW1lY2hhbmljYWxcLWRldmljZVwtZm9yXC1sZWFkXC1vcmU7Civkpb4gPiB0b1wtbWVsdFwtb3JcLWNhc3RcLWJ5XC11c2luZ1wtYVwtbW91bGQ7CivkpbEgPiB0b1wtbWVsdFwtb3JcLWNhc3RcLWJ5XC11c2luZ1wtYVwtbW91bGQ7CivkpZkgPiBhXC1zcGVjdWx1bVwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5KS3ID4gYVwtbGFuY2VcLXdpdGhcLXRocmVlXC1vclwtdHdvXC1wb2ludHM7Civko6IgPiBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC1hbmNpZW50XC10aW1lczsKK+SjmyA+IG5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLWFuY2llbnRcLXRpbWVzOwor5J2BID4gYVwta2luZFwtb2ZcLXdpbGRcLWxlZ3VtaW5vdXNcLXBsYW50czsKK+SbtiA+IHdyaXRpbmdzXC1ldWxvZ2l6aW5nXC1hZGVhZFwtcGVyc29uOwor5JekID4gYVwta2luZFwtb2ZcLXdvcm1cLXByb2R1Y2VkXC1pblwtd2F0ZXI7CivkjbAgPiBhXC1wbGFndWVcLW9yXC1hXC1wZXN0aWxlbmNlXC1vZlwtZ29hdDsKK+SKiiA+IHdlbGxcLWJvaWxlZFwtY29uZ2VlXC1vclwtcmljZVwtZ3J1ZWw7CivkiYggPiBhXC1raW5kXC1vZlwtYmFtYm9vXC13aXRoXC1hXC1yZWRcLXNraW47CivkiJMgPiBhXC1raW5kXC1vZlwtYmFtYm9vXC13aXRoXC1hXC1yZWRcLXNraW47Civkh4ggPiB0b1wtcHV0XC1pbnRvXC1hXC1jdXBib2FyZFwtb3JcLWNsb3NldDsKK+SHgCA+IG9ybmFtZW50c1wtb2ZcLWZpbmVcLWZlYXRoZXJcLW9yXC1mdXI7CivkhbkgPiBhXC1raW5kXC1vZlwtZHJpbGxcLWZvclwtc293aW5nXC1ncmFpbjsKK+SFqSA+IGNyb29rZWRcLWFuZFwtd2luZGluZ1wtb2ZcLXRoZVwtZ3Jhc3M7CivkhLwgPiBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC1hbmNpZW50XC10aW1lczsKK+SEtyA+IGFcLW1lYXN1cmVtZW50XC1lcXVhbFwtdG9cLTEyMFwtY2F0dHk7Civkg6ogPiBhXC1wbGF0Zm9ybVwtZm9yXC1zYWNyaWZpY2lhbFwtcml0ZXM7Civkgp4gPiBhXC10aG9ybnlcLXRyZWVcLWFib3V0XC0xNVwtZmVldFwtaGlnaDsKK+O6nCA+IGZpZXJjZVwtZG9nXC13aXRoXC1sb25nXC1zaGFnZ3lcLWhhaXI7CivjuokgPiBhXC1maWVyY2VcLWFuaW1hbFwtb2ZcLXRoZVwtZG9nXC10cmliZTsKK+O5oSA+IGFcLXJ1c2hcLWFuZFwtaW1wYXRpZW50XC1kaXNwb3NpdGlvbjsKK+O4oSA+IGJvYXJkXC10b1wtYmxvY2tcLXRoZVwtd2F0ZXJcLWN1cnJlbnQ7CivjuJogPiBzY2F0dGVyZWRcLW9yXC1kaXNwZXJzZWRcLWFuZFwtY2xlYXI7CivjtK0gPiBpbW1lYXN1cmFibGVcLWRlcHRoXC1vclwtcHJvZnVuZGl0eTsKK+OzhiA+IG5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLWFuY2llbnRcLXRpbWVzOwor47GoID4gdG9cLXByZXBhcmVcLWFcLWJvZHlcLWZvclwtdGhlXC1jb2ZmaW47CivjrIcgPiBuYW1lXC1vZlwtYVwtc3RhdGVcLWluXC1hbmNpZW50XC1jaGluYTsKK+OpvSA+IGJyYW5jaGVzXC10b1wtYmVcLWFcLXBhcmFzaXRlXC1hXC10cmVlOwor46iSID4gdG9cLWN1dFwtb3BlblwtYW5kXC1jbGVhblwtXC1cLVwtYXNcLWZpc2g7CivjorIgPiB0aGVcLTV0aFwtb2ZcLXRoZVwtZWlnaHRcLWRpYWdyYW1zXC3lhavljaY7Civjn6ggPiBhXC1mb3VudGFpblwtaW5cLXRoZVwtc2lkZVwtb2ZcLWFcLWhpbGw7Civjm40gPiB0b1wtaGF2ZVwtb25lJydzXC1hbWJpdGlvblwtZnVsZmlsbGVkOwor45qhID4gc3RhbmRpbmdcLXdpdGhvdXRcLWFcLXN0cmFpZ2h0XC1iYWNrOwor45qJID4gdG9cLW1ha2VcLWFcLXByb2ZpdFwtb25cLXNlbGxcLWFuZFwtYnV5Owor45mwID4gbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtYW5jaWVudFwtdGltZXM7CivjlaMgPiBhXC1tYXJzaFwtYXRcLXRoZVwtZm9vdFwtb2ZcLXRoZVwtaGlsbHM7Civku6wgPiBhZGp1bmN0XC1wcm9ub3VuXC1pbmRpY2F0ZVwtcGx1cmFsOwor5ZGiID4gaW50ZXJyb2dhdGl2ZVwtb3JcLWVtcGhhdGljXC1maW5hbDsKK+alvCA+IGJ1aWxkaW5nXC1vZlwtdHdvXC1vclwtbW9yZVwtc3RvcmllczsKK+iNryA+IGxlYWZcLW9mXC1kYWh1cmlhblwtYW5nZWxpY2FcLXBsYW50Owor6b2OID4gdGFrZVwtaW5cLWJvdGhcLWhhbmRzXC1hbmRcLW9mZmVyXC10bzsKK+S4iCA+IHVuaXRcLW9mXC1sZW5ndGhcLWVxdWFsXC0zXC4zXC1tZXRlcnM7CivmjJEgPiBhXC1sb2FkXC1jYXJyaWVkXC1vblwtdGhlXC1zaG91bGRlcnM7CivmqJMgPiBidWlsZGluZ1wtb2ZcLXR3b1wtb3JcLW1vcmVcLXN0b3JpZXM7CivnpZ0gPiBwcmF5XC1mb3JcLWhhcHBpbmVzc1wtb3JcLWJsZXNzaW5nczsKK+adiSA+IHZhcmlvdXNcLXNwZWNpZXNcLW9mXC1waW5lXC1hbmRcLWZpcjsKK+acpyA+IGNvbmRpdGlvblwtb3JcLWFwcGVhcmFuY2VcLW9mXC1tb29uOwor5pymID4gY29uZGl0aW9uXC1vclwtYXBwZWFyYW5jZVwtb2ZcLW1vb247CivpnLggPiBydWxlXC1ieVwtbWlnaHRcLXJhdGhlclwtdGhhblwtcmlnaHQ7CivnrqogPiBzbWFsbFwtYmFtYm9vXC1iYXNrZXRcLWZvclwtaG9sZGluZzsKK+mGpCA+IGFueVwtamFtXC1saWtlXC1vclwtcGFzdGVcLWxpa2VcLWZvb2Q7CivphbEgPiBhbnlcLWphbVwtbGlrZVwtb3JcLXBhc3RlXC1saWtlXC1mb29kOwor6IOnID4gY29uZGl0aW9uXC1vclwtYXBwZWFyYW5jZVwtb2ZcLW1vb247CivngpUgPiB0aGVcLWJyaWNrXC1iZWRcLWluXC1ub3J0aGVyblwtY2hpbmE7CivkuqUgPiBsYXN0XC1vZlwtdHdlbHZlXC1lYXJ0aGx5XC1icmFuY2hlczsKK+eypCA+IGd1YW5nZG9uZ1wtYW5kXC1ndWFuZ3hpXC1wcm92aW5jZXM7Civnsr0gPiBkdW1wbGluZ1wtbWFkZVwtb2ZcLWdsdXRpbm91c1wtcmljZTsKK+mZhyA+IG1vdW50YWluXC1sb2NhdGVkXC1iZXR3ZWVuXC1zaGFueGk7Civpl74gPiB2aWxsYWdlXC1vZlwtdHdlbnR5XC1maXZlXC1mYW1pbGllczsKK+mDpiA+IHBsYWNlXC1pblwtdG9kYXknJ3NcLWhlbmFuXC1wcm92aW5jZTsKK+mehSA+IGxlYXRoZXJcLXN0cmFwXC1vdmVyXC1ob3JzZScnc1wtbmVjazsKK+mCuiA+IHBsYWNlXC1pblwtdG9kYXknJ3NcLWhlbmFuXC1wcm92aW5jZTsKK+mToSA+IHNpY2tsZVwtZm9yXC1jdXR0aW5nXC1ncmFzc1wtb3JcLWhheTsKK+mqpyA+IGdhbGxvcFwtYWJvdXRcLXdpdGhcLWhlYWRcLXVwbGlmdGVkOwor6aqiID4gaG9yc2VcLXdpdGhcLWFcLWJsdWlzaFwtd2hpdGVcLWNvbG9yOwor6JuzID4ga2luZFwtb2ZcLXNuYWlsXC13aXRoXC1zcGlyYWxcLXNoZWxsOwor6YKzID4gYVwtZGVwYXJ0bWVudFwtaW5cLXRoZVwtc3RhdGVcLW9mXC1sdTsKK+mDoiA+IHN0YXRlXC1pblwtdG9kYXknJ3NcLWh1YmVpXC1wcm92aW5jZTsKK+mqliA+IHR3b1wtb3V0c2lkZVwtb25lc1wtaW5cLXRocmVlXC1ob3JzZTsKK+i9uCA+IGNyb3NzXC1ib2FyZFwtYXRcLXJlYXJcLW9mXC1jYXJyaWFnZTsKK+eunCA+IGFuY2llbnRcLXN0cmluZ1wtbXVzaWNcLWluc3RydW1lbnQ7Civpg5AgPiBzdGF0ZVwtaW5cLXRvZGF5JydzXC1oZW5hblwtcHJvdmluY2U7CivovbkgPiBydW5cLW92ZXJcLXNvbWV0aGluZ1wtd2l0aFwtdmVoaWNsZTsKK+agnSA+IGFcLWJ1aWxkZXInJ3NcLWZyYW1lXC1mb3JcLW1lYXN1cmluZzsKK+eNjSA+IGFuXC1hbmltYWxcLXdoaWNoXC1lYXRzXC1pdHNcLW1vdGhlcjsKK+m8lyA+IHNtYWxsXC1yZXZvbHZpbmdcLWRydW1cLXdpdGhcLWtub2JzOwor6bySID4gbGFyZ2VcLXRyaXBvZFwtY2FsZHJvblwtd2l0aFwtc21hbGw7CivptpYgPiBsYXJnZVwtd2F0ZXJmb3dsXC13aXRoXC1uYWtlZFwtaGVhZDsKK+mppCA+IGdhbGxvcFwtYWJvdXRcLXdpdGhcLWhlYWRcLXVwbGlmdGVkOwor6amEID4gaG9yc2VcLXdpdGhcLWFcLWJsdWlzaFwtd2hpdGVcLWNvbG9yOwor6amCID4gdHdvXC1vdXRzaWRlXC1vbmVzXC1pblwtdGhyZWVcLWhvcnNlOwor6aiEID4gbmFtZVwtb2ZcLWFcLWxlZ2VuZGFyeVwtc3dpZnRcLWhvcnNlOwor6aesID4gbmFtZVwtb2ZcLWFcLWxlZ2VuZGFyeVwtc3dpZnRcLWhvcnNlOwor6aSWID4gZm9vZFwtaXRlbVwtc2V0XC1vdXRcLWZvclwtc2hvd1wtb25seTsKK+mgoyA+IHRvXC12aWV3XC1vdGhlcnNcLXdpdGhcLXJhaXNlZFwtZXllczsKK+matCA+IG1vdW50YWluXC1sb2NhdGVkXC1iZXR3ZWVuXC1zaGFueGk7Civplq0gPiB2aWxsYWdlXC1vZlwtdHdlbnR5XC1maXZlXC1mYW1pbGllczsKK+mNmCA+IHNpY2tsZVwtZm9yXC1jdXR0aW5nXC1ncmFzc1wtb3JcLWhheTsKK+mLkCA+IHN0YXRlXC1pblwtdG9kYXknJ3NcLWh1YmVpXC1wcm92aW5jZTsKK+mGrCA+IGFueVwtamFtXC1saWtlXC1vclwtcGFzdGVcLWxpa2VcLWZvb2Q7CivphYggPiBwbGFjZVwtaW5cLXRvZGF5JydzXC1oZW5hblwtcHJvdmluY2U7CivphLYgPiBzdGF0ZVwtaW5cLXRvZGF5JydzXC1oZW5hblwtcHJvdmluY2U7CivphLQgPiBwbGFjZVwtaW5cLXRvZGF5JydzXC1ob25hblwtcHJvdmluY2U7CivphJogPiBwbGFjZVwtaW5cLXRvZGF5JydzXC1oZWJlaVwtcHJvdmluY2U7Civpg5QgPiBwbGFjZVwtbmFtZVwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+mCvSA+IG5hbWVcLW9mXC1hXC1jb3VudHlcLWluXC1oYW5cLWR5bmFzdHk7CivpgrYgPiBwbGFjZVwtaW5cLXRvZGF5JydzXC1oZW5hblwtcHJvdmluY2U7CivovaIgPiBydW5cLW92ZXJcLXNvbWV0aGluZ1wtd2l0aFwtdmVoaWNsZTsKK+i7qyA+IGNyb3NzXC1ib2FyZFwtYXRcLXJlYXJcLW9mXC1jYXJyaWFnZTsKK+i7qCA+IGxhdHRpY2VcLXdvcmtcLW9uXC1mcm9udFwtYW5kXC1zaWRlczsKK+i4iyA+IHRoZVwtZm9vdFwtb3JcLWZlZXRcLWNhc3RcLW9mXC1hXC1wbGF5Owor6KaHID4gcnVsZVwtYnlcLW1pZ2h0XC1yYXRoZXJcLXRoYW5cLXJpZ2h0Owor6KWtID4gdHVja1wtdXBcLWhlbVwtb2ZcLWdhcm1lbnRcLWFuZFwtd3JhcDsKK+ijiyA+IGNvdHRvblwtY2xvdGhlc1wtb2ZcLWFcLWJveVwtc2VydmFudDsKK+ihuiA+IHNsaXRcLWluXC1nYXJtZW50XC10b1wtYWlkXC1tb3ZlbWVudDsKK+igqCA+IGFcLWtpbmRcLW9mXC1zcGlkZXJcLXdpdGhcLWxvbmdcLWxlZ3M7CivonqMgPiBteXRob2xvZ2ljYWxcLXdpbmdsZXNzXC1kcmFnb25cLW9mOwor6J6EID4ga2luZFwtb2ZcLXNuYWlsXC13aXRoXC1zcGlyYWxcLXNoZWxsOwor6IukID4gYnJhc3NpY2FcLWNhbXBlc3RyaXNcLXN1YnNwXC5cLXJhcGE7CivoiZUgPiB0d29cLWJvYXRzXC1mYXN0ZW5lZFwtc2lkZVwtYnlcLXNpZGU7CivohqsgPiB0aGVcLWZhdFwtY292ZXJpbmdcLXRoZVwtaW50ZXN0aW5lczsKK+e4lyA+IHNhY2tjbG90aFwtd29yblwtb25cLWJyZWFzdFwtZHVyaW5nOwor57OJID4gZHVtcGxpbmdcLW1hZGVcLW9mXC1nbHV0aW5vdXNcLXJpY2U7CivnsrUgPiBndWFuZ2RvbmdcLWFuZFwtZ3Vhbmd4aVwtcHJvdmluY2VzOwor57CeID4gc21hbGxcLWJhbWJvb1wtYmFza2V0XC1mb3JcLWhvbGRpbmc7Civnr6ogPiBhXC1iYW1ib29cLWZsdXRlXC13aXRoXC1zZXZlblwtaG9sZXM7CivnnpYgPiBhXC1jYXRhcmFjdFwtb3JcLWZpbG1cLW92ZXJcLXRoZVwtZXllOwor55WkID4gcGxhY2VcLWZvclwtd29yc2hpcHBpbmdcLXRoZVwtaGF2ZW47CivnlJcgPiBlYXJ0aGVud2FyZVwtdmVzc2VsXC1pblwtdHdvXC1wYXJ0czsKK+eDsyA+IHRvXC10cmF2ZWxcLWJ5XC10aGVcLWxpZ2h0XC1vZlwtdG9yY2g7CivngZUgPiBzaG9ydFwtbmFtZVwtZm9yXC1ndWFuZ3hpXC1wcm92aW5jZTsKK+aytCA+IGZvdWxcLWFuZFwtcG9pc29ub3VzXC1pblwtY29uZnVzaW9uOwor5qiQID4gYVwtbG9va291dFwtdHVycmV0XC1vblwtYVwtY2l0eVwtd2FsbDsKK+ajuyA+IGtpbmRcLW9mXC13b29kXC1mcm9tXC13aGljaFwtcGVyZnVtZTsKK+aejCA+IHZhcmlldHlcLW9mXC1lbG1cLXdpdGhcLXNtYWxsXC1zZWVkczsKK+WenyA+IGNsYXlcLXNoZWVwXC1idXJpZWRcLXdpdGhcLXRoZVwtZGVhZDsKK+WSoCA+IHRvXC13aGlzcGVyXC5cLXRvXC1ibGFtZVwtdG9cLXNsYW5kZXI7Civlj6cgPiB0b1wtY3V0XC1tZWF0XC1vZmZcLWF3YXlcLWZyb21cLWJvbmVzOwor5YaUID4gY2FwXC13b3JuXC1kdXJpbmdcLXRoZVwteWluXC1keW5hc3R5Owor5YCRID4gYWRqdW5jdFwtcHJvbm91blwtaW5kaWNhdGVcLXBsdXJhbDsKK+S6vCA+IHRvXC1hc3NlbWJsZVwuXC10b1wtZ2F0aGVyXC10b2dldGhlcjsKK+S5hCA+IHNoaW1lXDpcLXRvXC1maW5kXC1hXC1wbGFjZVwtdG9cLWR3ZWxsOwor5La1ID4gYVwtYmFtYm9vXC1mbHV0ZVwtd2l0aFwtc2V2ZW5cLWhvbGVzOwor5LW4ID4gdGhlXC10b2FkXC10aGF0XC1saXZlc1wtaW5cLXRoZVwtbW9vbjsKK+SzoSA+IGFcLWtpbmRcLW9mXC1iaXJkXC1pblwtYW5jaWVudFwtYm9va3M7Civksp4gPiBhXC1zZWNvbmRcLWdlbmVyYWxcLW5hbWVcLWZvclwtcGVyY2g7CivksYwgPiBhXC1zZWNvbmRcLW5hbWVcLWZvclwtdGhlXC1nbG9iZWZpc2g7CivksJ0gPiBhXC1sYXJnZVwtZWFydGhlblwtcG90XC1mb3JcLWNvb2tpbmc7CivksIAgPiBkcmVzc2VkXC1oYWlyXC1vZlwtYVwtY2hpbmVzZVwtd29tYW47CivkrrggPiB0b1wtbW92ZVwtc2xvd2x5XC1hbmRcLXRoZW5cLXN3aWZ0bHk7CivkrLsgPiB0b1wtZW50ZXJ0YWluXC1hXC1kZXBhcnRpbmdcLWZyaWVuZDsKK+SqviA+IHRvXC1kZWFsXC13aXRoXC1hZmZhaXJzXC1jYXV0aW91c2x5Owor5KqNID4gYVwtY29udGFpbmVyXC1mb3JcLWJvd3NcLWFuZFwtYXJyb3dzOwor5KijID4gbGVhdGhlclwtdG9cLWJlXC1tb2lzdGVuZWRcLWJ5XC1yYWluOwor5KaHID4gZHJlc3NlZFwtaGFpclwtb2ZcLWFcLWNoaW5lc2VcLXdvbWFuOwor5KOjID4gbmFtZVwtb2ZcLWFcLXBsYWNlXC1uYW1lXC1vZlwtYVwtcGxhY2U7Civkn5ogPiB0b1wtc2l0XC13aXRoXC10aGVcLWxlZ3NcLXNwcmVhZFwtb3V0Owor5Jy3ID4gZmVybWVudGVkXC1hbmRcLXNlYXNvbmVkXC1zb3liZWFuczsKK+ScqiA+IG5hbWVcLW9mXC1hXC1wYXZpbGlvblwtaW5cLW9sZFwtdGltZXM7Civkm4AgPiByZWFzb25hYmxlXC1hdXRob3JpdHlcLXN0YXRlbWVudHM7CivkmIUgPiBhXC1zbWFsbFwtZ2FkZmxpZXNcLWFuZFwtbW9zcXVpdG9lczsKK+SQgyA+IGZhdFwtaW5cLXRoZVwtYWJkb21lblwtb3JcLWludGVzdGluZTsKK+SNmyA+IGFcLWtpbmRcLW9mXC10b29sXC11c2VkXC10b1wtZ2V0XC1maXNoOwor5IqkID4gdmVnZXRhYmxlXC1taXhlZFwtd2l0aFwtdGhpY2tcLXNvdXA7CivkgrIgPiBzdGFuZGFyZFwtd2VpZ2h0c1wtdXNlZFwtaW5cLXNjYWxlczsKK+SBsCA+IHRvXC1sb29rXC1pblwtYVwtZXZpbFwtb3JcLXdpY2tlZFwtd2F5Owor47yWID4gZ291cmRcLXVzZWRcLWFzXC1hXC1sYWRsZVwtb3JcLWRpcHBlcjsKK+O7qyA+IGFcLWdlbVwtb3JcLW9ybmFtZW50XC1vblwtYVwtc2NhYmJhcmQ7Civjr60gPiBhXC1sb29rb3V0XC10dXJyZXRcLW9uXC1hXC1jaXR5XC13YWxsOwor466HID4gYVwtYnVpbGRlcicnc1wtZnJhbWVcLWZvclwtbWVhc3VyaW5nOwor46y5ID4gdGVuZG9uc1wtb2ZcLXRoZVwtaGVlbFwtb2ZcLXRoZVwtZm9vdDsKK+OsgSA+IHRoZVwtc3VuXC1pc1wtc2hpbmluZ1wtb25cLXRoZVwtd2F0ZXI7Civjp70gPiBuYW1lXC1vZlwtYVwtY291bnR5XC1pblwtaGFuXC1keW5hc3R5Owor76aNID4gcnVuXC1vdmVyXC1zb21ldGhpbmdcLXdpdGhcLXZlaGljbGU7CivvpoYgPiB2aWxsYWdlXC1vZlwtdHdlbnR5XC1maXZlXC1mYW1pbGllczsKK++ljCA+IGJ1aWxkaW5nXC1vZlwtdHdvXC1vclwtbW9yZVwtc3RvcmllczsKK+OlhiA+IGluZHVsZ2VudFwtYW5kXC13aXRob3V0XC1yZXN0cmFpbnQ7Civjl5ggPiB0b1wtYml0ZVwtdGhlXC1oYXJkXC1hbmRcLXNvbGlkXC1mb29kOwor45OiID4gdG9cLWN1dFwtdGhlXC1mbGVzaFwtZnJvbVwtdGhlXC1ib25lczsKK+OTlCA+IGZhZGVkXC1hbmRcLWZhbGxlblwtXC1cLVwtYXNcLWJsb3Nzb21zOwor45K7ID4gdG9cLWdvXC1mb3J3YXJkXC13aXRoXC1leWVzXC1jb3ZlcmVkOwor5bm5ID4gdHJ1bmtcLW9mXC10cmVlXC1vclwtb2ZcLWh1bWFuXC1ib2R5Owor5bC6ID4gY2hpbmVzZVwtbWVhc3VyZVwtYXBwcm94XC5cLScnZm9vdCcnOwor57GzID4gaHVsbGVkXC1vclwtaHVza2VkXC11bmNvb2tlZFwtcmljZTsKK+m5jyA+IGZhYnVsb3VzXC1iaXJkXC1vZlwtZW5vcm1vdXNcLXNpemU7CivlloIgPiBpbnRlcmplY3Rpb25cLXRvXC1jYWxsXC1hdHRlbnRpb247CivmvYcgPiBzb3VuZFwtb2ZcLWJlYXRpbmdcLXdpbmRcLWFuZFwtcmFpbjsKK+emuSA+IGxlZ2VuZGFyeVwtaHNpYVwtZHluYXN0eVwtZm91bmRlcjsKK+aWnyA+IHRvXC1wb3VyXC13aW5lXC1vclwtdGVhXC1pbnRvXC1hXC1jdXA7CivokLwgPiB0aGVcLXN0ZW1cLWFuZFwtY2FseXhcLW9mXC1hXC1mbG93ZXI7CivpmIAgPiBwb3dlcmZ1bFwtYW5kXC1pbmZsdWVudGlhbFwtZ3JvdXA7CivmpbcgPiBtb2RlbFwtc3R5bGVcLW9mXC1jaGluZXNlXC13cml0aW5nOwor6L6EID4gc2lkZXNcLW9mXC1jaGFyaW90XC13aGVyZVwtd2VhcG9uczsKK+S/kSA+IHdvb2RlblwtZmlndXJlXC1idXJpZWRcLXdpdGhcLWRlYWQ7CivlmLkgPiB1c2VkXC1kZXNjcmliZVwtY2xhcml0eVwtb2ZcLXZvaWNlOwor6L28ID4gaG9yaXpvbnRhbFwtd29vZGVuXC1iYXJcLWluXC1mcm9udDsKK+mmkSA+IHRpbWVcLW9mXC1mYW1pbmVcLW9yXC1jcm9wXC1mYWlsdXJlOwor5LylID4gZ2hvc3RcLW9mXC1vbmVcLWRldm91cmVkXC1ieVwtdGlnZXI7Civnu7YgPiBzaWxrXC1yaWJib25cLWF0dGFjaGVkXC1hc1wtYVwtc2VhbDsKK+msiCA+IGZpbmVcLWdyb3d0aFwtb2ZcLWhhaXJcLWN1cmx5XC1oYWlyOwor56OUID4gZG93bndhcmRcLXN0cm9rZVwtc2xhbnRpbmdcLXJpZ2h0Owor6KOiID4gZm9sZGluZ1wtcHVyc2VcLWluc2VydGVkXC1pblwtYmVsdDsKK+aeuCA+IGtpbmRcLW9mXC1hc3BlblwtZm91bmRcLWluXC1zaWNodWFuOwor6IqKID4gZXh1YmVyYW50XC1hbmRcLXZpZ29yb3VzXC1mb2xpYWdlOwor6YSEID4gbmFtZVwtb2ZcLWFcLWRpc3RyaWN0XC1pblwtc2hhbmRvbmc7CivpvLkgPiBhXC1raW5kXC1vZlwtaW5zZWN0aXZvcm91c1wtcm9kZW50Owor6I68ID4gYW5cLWVkaWJsZVwtd2F0ZXJcLXBsYW50XC1icmFzZW5pYTsKK+WcrCA+IHBsYXN0ZXJcLW92ZXJcLXdpdGhcLWxheWVyXC1vZlwtbXVkOwor6I6pID4gbWVtYnJhbmVcLWxpbmluZ1wtaW5zaWRlXC1vZlwtcmVlZDsKK+ivtiA+IGFuXC1leGNsYW1hdGlvblwtb2ZcLWNvbmZpcm1hdGlvbjsKK+ikmSA+IHBhcGVyXC1vclwtY2xvdGhcLXBhc3RlZFwtdG9nZXRoZXI7CivojIwgPiBuYW1lXC1vZlwtYVwtZGlzdHJpY3RcLWluXC1zaGFuZG9uZzsKK+m8tCA+IGFcLWtpbmRcLW9mXC1pbnNlY3Rpdm9yb3VzXC1yb2RlbnQ7CivptosgPiBhXC1zZWFcLWJpcmRcLXdpdGhcLWFcLXdoaXRlXC1icmVhc3Q7CivptawgPiBmYWJ1bG91c1wtYmlyZFwtb2ZcLWVub3Jtb3VzXC1zaXplOwor6a+PID4gYVwtZGlhbGVjdFwuXC5cLlwuXC5cLlwuXC5cLW5hbWVcLW9mXC1maXNoOwor6aWJID4gdGltZVwtb2ZcLWZhbWluZVwtb3JcLWNyb3BcLWZhaWx1cmU7CivppYEgPiBjYXJyeVwtbWVhbFwtdG9cLXdvcmtlcnNcLWluXC1maWVsZDsKK+mWpSA+IHBvd2VyZnVsXC1hbmRcLWluZmx1ZW50aWFsXC1ncm91cDsKK+mOqyA+IG9ybmFtZW50XC1vdmVyXC10aGVcLWhvcnNlJydzXC1oZWFkOwor6LySID4gc2lkZXNcLW9mXC1jaGFyaW90XC13aGVyZVwtd2VhcG9uczsKK+i1mSA+IGdpZnRcLW9mXC1tb25leVwtaGVscFwtcGF5XC1mdW5lcmFsOwor6LO7ID4gZ2lmdFwtb2ZcLW1vbmV5XC1oZWxwXC1wYXlcLWZ1bmVyYWw7CivoqpIgPiBhblwtZXhjbGFtYXRpb25cLW9mXC1jb25maXJtYXRpb247CivoqaQgPiB0b1wtbWFrZVwtd2lsZFwtc3RhdGVtZW50c1wtdG9cLWxpZTsKK+iksyA+IGZvbGRpbmdcLXB1cnNlXC1pbnNlcnRlZFwtaW5cLWJlbHQ7CivomLQgPiB5b3VuZ1wtc2hvb3RzXC1vZlwtdGhlXC1yYXBldHVybmlwOwor6I6dID4gdG9cLWNob3BcLXN0cmF3XC1maW5lXC1mb3JcLWFuaW1hbHM7CivohaAgPiBiZXR3ZWVuXC10aGVcLXNraW5cLWFuZFwtdGhlXC1mbGVzaDsKK+e/vyA+IHN0cmVhbWVyXC1hZG9ybmVkXC13aXRoXC1mZWF0aGVyczsKK+e2rCA+IHNpbGtcLXJpYmJvblwtYXR0YWNoZWRcLWFzXC1hXC1zZWFsOwor562lID4gcm91bmRcLXNoYXBlZFwtYmFtYm9vXC1iYXNrZXRcLWZvcjsKK+eXhCA+IHNjcm9mdWxvdXNcLXN3ZWxsaW5nc1wtYW5kXC1zb3JlczsKK+eOpCA+IGFcLWtpbmRcLW9mXC1nZW1cLWluZmVyaW9yXC10b1wtamFkZTsKK+eFoCA+IHRvXC1mcnlcLWluXC1mYXRcLW9yXC1vaWxcLlwtdG9cLXNjYWxkOwor54CfID4gc291bmRcLW9mXC1iZWF0aW5nXC13aW5kXC1hbmRcLXJhaW47CivmvY8gPiBmYXJlc2hhcmVcLXJlY2xhaW1lZFwtZnJvbVwtcml2ZXI7CivmvLwgPiBoYXZpbmdcLXRoZVwtYXBwZWFyYW5jZVwtb2ZcLWRlcHRoOwor5qyeID4gdGhlXC1sYXR0aWNlXC1vZlwtYVwtd2luZG93XC1hXC1zaWxsOwor5puaID4gdHdpbGlnaHRcLWp1c3RcLWJlZm9yZVwtc3VuXC1yaXNlczsKK+aWmiA+IGFcLXNtYWxsXC1jdXBcLW9mXC1zdG9uZVwtd2l0aFwtZWFyczsKK+aJiiA+IHVwcmlnaHRcLWJhclwtZm9yXC1mYXN0ZW5pbmdcLWRvb3I7CivmhZwgPiBuYW1lXC1vZlwtYVwtbW9ua1wtaW5cLXRhbmdcLWR5bmFzdHk7CivltKAgPiBwbGFjZVwtbmFtZVwtaW5cLWd1YW5neGlcLXByb3ZpbmNlOwor5bK9ID4gcGxhY2VcLW5hbWVcLWluXC1ndWFuZ3hpXC1wcm92aW5jZTsKK+WynSA+IG5hbWVcLW9mXC1hXC1tb3VudGFpblwtaW5cLXNoYW5kb25nOwor5aCtID4gYVwtZHJ5XC1tb2F0XC1vdXRzaWRlXC1hXC1jaXR5XC13YWxsOwor5aCOID4gY2hhcmFjdGVyXC11c2VkXC1mb3JcLXBsYWNlXC1uYW1lczsKK+WauSA+IGFcLXBhcnRpY2xlXC1pbXBseWluZ1wtY29tcGxldGlvbjsKK+WMsyA+IGxhZGllc1wtdG9pbGV0XC1jYXNlXC13aXRoXC1taXJyb3I7CivliLUgPiBwdW5pc2htZW50XC1ieVwtY3V0dGluZ1wtb2ZmXC1lYXJzOwor5LKBID4gZ2VuZXJhbFwtdGVybVwtb2ZcLWFcLWtpbmRcLW9mXC1maXNoOwor5LCaID4gdGhlXC10b3BcLXBhcnRcLW9mXC10aGVcLXJpY2VcLWdydWVsOwor5K+1ID4gaGFpclwtc3R5bGVcLWZvclwtbGl0dGxlXC1jaGlsZHJlbjsKK+SvpCA+IGJvbmV3YXJlXC11c2VkXC10b1wtY29tYlwtdGhlXC1oYWlyOwor5K+SID4gdGhlXC11cHBlclwtcGFydFwtb2ZcLXRoZVwtc2hpbmJvbmU7CivkrpQgPiBhXC15b3VuZ1wtYW5kXC1mbGVldFwtZm9vdGVkXC1ob3JzZTsKK+StuiA+IGFcLWhvcnNlXC10b1wtcmFpc2VcLWl0c1wtaGVhZFwtaGlnaDsKK+SrriA+IHRvXC1iZW5kXC1vclwtbG93ZXJcLW9mXC1vbmUnJ3NcLWhlYWQ7Civkq4YgPiB0aGVcLWZyb250XC1hbmRcLWJhY2tcLW9mXC10aGVcLW5lY2s7Civkp5IgPiBzdGVwc1wtbGVhZGluZ1wtdXBcLXRvXC1hXC1idWlsZGluZzsKK+SkmyA+IGNvbXBvbmVudFwtcGFydHNcLW9mXC1hXC1jcm9zc1wtYm93Owor5KO5ID4gdG9cLWJyZXdcLTEwXC1wZXJjZW50XC1vZlwtdGhlXC13aW5lOwor5KO1ID4gdG9cLWJyZXdcLXRoZVwtd2luZVwtYVwtc2Vjb25kXC10aW1lOwor5KOsID4gdGhlXC1zaGlueVwtY29sb3JmdWxcLW9mXC10aGVcLXdpbmU7Civkor4gPiBuYW1lXC1vZlwtYW5cLWFuY2llbnRcLXNtYWxsXC1zdGF0ZTsKK+ShgyA+IGFcLXRvb2xcLWZvclwtYnJ1c2hpbmdcLXRoZVwtdGhyZWFkOwor5JyyID4gbmFtZVwtb2ZcLWFcLXZpbGxhZ2VcLWluXC1vbGRcLWNoaW5hOwor5JiTID4gdGhpY2tcLWJsb29kXC1vZlwtY2F0dGxlXC1hbmRcLWdvYXQ7Civkk78gPiBhXC1zZWNvbmRcLW5hbWVcLWZvclwtbG90dXNcLWZsb3dlcjsKK+STuSA+IHRvXC1zdHVmZlwtZnVsbFwtYW5kXC10b1wtZ3VscFwtZG93bjsKK+SNgSA+IHRoZVwtaGVtXC1vclwtYm9yZGVyXC1vZlwtYVwtZ2FybWVudDsKK+SLtCA+IHNpbGtcLWZhYnJpY3NcLXdpdGhcLW1peGVkXC1jb2xvcnM7Civki7MgPiBjbG90aFwtb3JcLXBhcGVyXC1wYXN0ZWRcLXRvZ2V0aGVyOwor5ImkID4gYVwtYmFtYm9vXC13YXJlXC1mb3JcLXdhc2hpbmdcLXJpY2U7CivkiZsgPiBiYW1ib29cLWJhc2tldFwtZm9yXC13YXNoaW5nXC1yaWNlOwor5ImTID4gbWF0dHJlc3NcLW1hZGVcLW9mXC1iYW1ib29cLXN0cmlwczsKK+SIuSA+IGFcLWJhbWJvb1wtd2FyZVwtZm9yXC13YXNoaW5nXC1yaWNlOwor5IesID4gdGhpblwtYmFtYm9vXC1sYXRoc1wta25pdHRlZFwtc2FpbDsKK+SHpyA+IHRvXC1maWxsXC1hblwtb3BlbmluZ1wtd2l0aFwtYmFtYm9vOwor5IShID4gbm9ydGhlcm5cLW1pbm9yaXR5XC1ldGhuaWNcLWdyb3VwOwor5IO2ID4gcnVnZ2VkXC1hbmRcLXVuZXZlblwtb2ZcLXRoZVwtcm9ja3M7Civkg5ogPiBydWdnZWRcLWxhbmRcLW9mXC1zYW5kXC1hbmRcLXBlYmJsZTsKK+SDgiA+IGR1bGxcLXNvdW5kXC1vZlwtdGhlXC10b2xsaW5nXC1iZWxsOwor47yhID4gYVwtc21hbGxcLWphclwtd2l0aFwtYVwtc21hbGxcLW1vdXRoOwor47W3ID4gdHVyYnVsZW50XC1mbG93aW5nXC1vZlwtdGhlXC13YXRlcjsKK+O1jyA+IGhhdmluZ1wtdGhlXC1hcHBlYXJhbmNlXC1vZlwtZGVwdGg7CivjsrkgPiB0aGVcLWRyeVwtc29pbFwtb25cLXRoZVwtcml2ZXJcLXNpZGU7Civjsp0gPiBmaW5lXC1oYWlyXC1vZlwtYmlyZHNcLWFuZFwtYW5pbWFsczsKK+OvhSA+IHRoZVwtYnJhbmNoZXNcLWdyb3dpbmdcLWRvd253YXJkczsKK+OugiA+IGFuXC1hcHBsaWFuY2VcLXVzZWRcLXRvXC1saWZ0XC1mb29kOwor46ykID4gd2V0XC1jbG90aGVzXC1ub3RcLWNvbXBsZXRlbHlcLWRyeTsKK+OqviA+IHRvXC1jdXRcLXRoZVwtZmxlc2hcLWZyb21cLXRoZVwtYm9uZTsKK+OomSA+IHRvXC1jbGFzcFwtb3JcLWhvbGRcLXVuZGVyXC10aGVcLWFybTsKK+OmsiA+IGFcLXBhcnRpY2xlXC1leHByZXNzaW5nXC1zdXJwcmlzZTsKK+OliyA+IHNvdW5kXC1vZlwtdGhlXC1hbmd1aXNoXC1vZlwtc29ycm93Owor46SvID4gY2xldmVyXC1vclwtc21hcnRcLWluXC1hXC1zbWFsbFwtd2F5Owor46SUID4gdG9cLWNvbmNlZGVcLW9yXC1zdWJtaXRcLXdpbGxpbmdseTsKK+OjhyA+IGFcLWtpbmRcLW9mXC1iZWFzdFwtd2l0aFwtbG9uZ1wtaGFpcjsKK+OhniA+IGFcLXNhY2tcLXVzZWRcLXRvXC1mZWVkXC10aGVcLWhvcnNlczsKK+OgoyA+IGFcLW1vdW50YWluXC1pblwtamlhbmd4aVwtcHJvdmluY2U7Civjnq8gPiB0aGVcLXR1cm5pbmdcLWFyZWFcLW9mXC1hXC1tb3VudGFpbjsKK+OchiA+IGNvbW1vbmx5XC1rbm93blwtYXNcLW1vdGhlclwtaW5cLXd1Owor45maID4gcmVkXC1jb2xvcmVkXC1oYXJkXC1hbmRcLXNvbGlkXC1tdWQ7CivjmJ4gPiB5ZWxsaW5nXC1zb3VuZFwtb2ZcLXRvd2luZ1wtYVwtYm9hdDsKK+OUqSA+IGhhaXJcLW9ybm1lbnRzXC11c2VkXC1pblwtb2xkXC10aW1lOwor45SAID4gdG9cLWJyYW5kXC1jcmltaW5hbHNcLW9uXC10aGVcLWZhY2U7Civov6YgPiBjaGFyYWN0ZXJcLWZvclwtdHJhbnNsaXRlcmF0aW9uOwor5bq1ID4gYnVkZGhpc3RcLW1vbmFzdGVyeVwtb3JcLW51bm5lcnk7CivlupogPiBzZXZlbnRoXC1vZlwtdGVuXC1jeWNsaWNhbFwtc3RlbXM7CivotqMgPiB3aGF0XC1hdHRyYWN0c1wtb25lJydzXC1hdHRlbnRpb247CivnlZQgPiBib3VuZGFyeVwtcGF0aFwtZGl2aWRpbmdcLWZpZWxkczsKK+WkviA+IGJlXC13ZWRnZWRcLW9yXC1pbnNlcnRlZFwtYmV0d2VlbjsKK+i+hiA+IG51bWVyYXJ5XC1hZGp1bmN0XC1mb3JcLXZlaGljbGVzOwor5aS5ID4gYmVcLXdlZGdlZFwtb3JcLWluc2VydGVkXC1iZXR3ZWVuOwor5oCUID4gYVwtZGlzZWFzZVwtcmVzZW1ibGluZ1wtbmV1cm9zaXM7CivpmYwgPiBmb290XC1wYXRoXC1iZXR3ZWVuXC1yaWNlXC1maWVsZHM7CivpqoYgPiBhXC13aGl0ZVwtaG9yc2VcLXdpdGhcLWJsYWNrXC1tYW5lOwor5qWjID4gY3Jvc3NiZWFtXC1hYm92ZVwtb3JcLXVuZGVyXC1nYXRlOwor55KnID4gcGllY2VcLW9mXC1qYWRlXC13aXRoXC1ob2xlXC1pblwtaXQ7CivohrsgPiByYW5rXC1vZG9yXC1cKG9mXC1zaGVlcFwtb3JcLWdvYXRzXCk7CivnjpEgPiBwZWFybFwtdGhhdFwtaXNcLW5vdFwtcXVpdGVcLXJvdW5kOwor5ZSiID4gZmx1dGVcLWxpa2VcLW11c2ljYWxcLWluc3RydW1lbnQ7CivmpYIgPiBhXC1yYWZ0XC5cLXRvXC1oZXdcLlwtdG9cLWZlbGxcLXRyZWVzOwor54qSID4gZW50ZXJ0YWluXC12aWN0b3Jpb3VzXC1zb2xkaWVyczsKK+efjSA+IGxvb2tcLWFib3V0XC1pblwtZnJpZ2h0XC1vclwtYWxhcm07Civmk6QgPiB0b1wtYmxvd1wtdGhlXC1ub3NlXC13aXRoXC1maW5nZXJzOwor6IqhID4gcGxhbnRcLWFsbGllZFwtdG9cLXRoZVwtd2F0ZXJsaWx5Owor57G8ID4gbm9uXC1nbHV0aW5vdXNcLWxvbmdcLWdyYWluXC1yaWNlOwor5qGhID4gYmVudFwtb3JcLXR3aXN0ZWRcLXBpZWNlXC1vZlwtd29vZDsKK+m7uyA+IHNwZWNpYWxcLXBhdHRlcm5cLW9mXC1lbWJyb2lkZXJ5Owor5bWdID4gZ291bG91XC1tb3VudGFpblwtcGVha1wtaW5cLWh1bmFuOwor5Z6tID4gY2hhcmFjdGVyXC11c2VkXC1pblwtcGxhY2VcLW5hbWVzOwor56GWID4gXDxhcmNoXD5cLXRvd25cLWluXC1oZWJlaVwtcHJvdmluY2U7CivpgqEgPiBuYW1lXC1vZlwtYVwtZGlzdHJpY3RcLWluXC1zaWNodWFuOwor6K6gID4gc2ltcGxpZmllZFwta2FuZ3hpXC1yYWRpY2FsXC0xNDk7CivlmbsgPiBjaGFyYWN0ZXJcLXVzZWRcLWluXC10cmFuc2xhdGlvbjsKK+eWrCA+IHNjcm9mdWxvdXNcLWx1bXBzXC1vclwtc3dlbGxpbmdzOwor6JSfID4gZnJhbWVcLW9uXC13aGljaFwtc2lsa3dvcm1zXC1zcGluOwor5Z6nID4gdmFyaWFibGVcLXVuaXRcLW9mXC1sYW5kXC1tZWFzdXJlOwor6ayPID4gYVwtY29pZmZ1cmVcLW9uXC10b3BcLW9mXC10aGVcLWhlYWQ7CivnrZggPiBcKGFcLW1lYXN1cmVcLW9mXC13aWR0aFwtb2ZcLWNsb3RoXCk7CivnvJEgPiBjb3JkXC1iaW5kaW5nXC1vblwtaGlsdFwtb2ZcLXN3b3JkOwor57CWID4gYmFtYm9vXC10cmFwXC1mb3JcLWNhdGNoaW5nXC1maXNoOwor5bqLID4gYVwtY3VwYm9hcmRcLW9yXC1wYW50cnlcLXRvXC1zdG9yZTsKK+eUjSA+IHJhZnRlcnNcLXN1cHBvcnRpbmdcLXJvb2ZcLXRpbGVzOwor6ae5ID4gYmxhY2tcLWhvcnNlXC13aXRoXC1hXC13aGl0ZVwtZmFjZTsKK+mnsSA+IGFcLXdoaXRlXC1ob3JzZVwtd2l0aFwtYmxhY2tcLW1hbmU7CivppY4gPiB3aW5lXC1hbmRcLWZvb2RcLWVhdGVuXC13aXRoXC13aW5lOwor6YeEID4gd2luZVwtYnJld1wtZm9yXC10aGVcLXNlY29uZFwtdGltZTsKK+mHgSA+IHNtZWFyXC13aXRoXC1ibG9vZFwtaW5cLXNhY3JpZmljZTsKK+i/pyA+IGFcLWNoaW5lc2VcLWZhbWlseVwtbmFtZVwtYXJyYW5nZTsKK+i9mCA+IHRlYXJcLWFzdW5kZXJcLWJldHdlZW5cLWNoYXJpb3RzOwor6LybID4gbnVtZXJhcnlcLWFkanVuY3RcLWZvclwtdmVoaWNsZXM7CivovJkgPiBzaWRlc1wtb2ZcLWNoYXJpb3RcLXdlcmVcLXdlYXBvbnM7CivovIwgPiBudW1lcmFyeVwtYWRqdW5jdFwtZm9yXC12ZWhpY2xlczsKK+ipgCA+IGdhcnJ1bG91c1wtdG9cLXdoaXNwZXJcLlwtdG9cLWpva2U7CivoqLkgPiB0b1wtYmVndWlsZVwtd2l0aFwtZmFsc2VcLXN0b3JpZXM7Civol4ogPiBhXC1raW5kXC1vZlwtYmVhblwtd2l0aFwtZmxhdFwtcG9kczsKK+iIoCA+IGxvbmdcLW5hcnJvd1wta25pZmVcLXNoYXBlZFwtYm9hdDsKK+e/oyA+IGZlYXRoZXJzXC11c2VkXC1kZWNvcmF0ZVwtY29mZmluOwor57iTID4gb3JhbmdlXC1vclwtcmVkZGlzaFwteWVsbG93XC1zaWxrOwor57exID4gY29yZFwtYmluZGluZ1wtb25cLWhpbHRcLW9mXC1zd29yZDsKK+ezjyA+IHJpY2VcLWdyaXRzXC1sZWZ0XC1hZnRlclwtaHVsbGluZzsKK+evmCA+IGFcLXV0ZW5zaWxcLXVzZWRcLXRvXC1maWx0ZXJcLXdpbmU7Civnp4ggPiBub25cLWdsdXRpbm91c1wtbG9uZ1wtZ3JhaW5cLXJpY2U7CivnoaQgPiBcPGFyY2hcPlwtdG93blwtaW5cLWhlYmVpXC1wcm92aW5jZTsKK+efsCA+IGFycm93XC13aXRoXC1hdHRhY2hlZFwtc2lsa1wtY29yZDsKK+eZpyA+IHNjcm9mdWxvdXNcLWx1bXBzXC1vclwtc3dlbGxpbmdzOwor55KjID4gcGVhcmxcLXRoYXRcLWlzXC1ub3RcLXF1aXRlXC1yb3VuZDsKK+eOgyA+IGFcLWxhcmdlXC1hcGVcLWZvdW5kXC1pblwtd1wuXC1jaGluYTsKK+eMhyA+IHRoZVwtc2NyZWFtXC1vclwtcm9hclwtb2ZcLWFcLXRpZ2VyOwor54m4ID4gdGhlXC1mZW1hbGVcLW9mXC1jZXJ0YWluXC1hbmltYWxzOwor5ruZID4gd2F0ZXJzXC1jb252ZXJnaW5nXC10b1wtb25lXC1zcG90Owor5ruYID4gY2hhcmFjdGVyXC11c2VkXC1pblwtcGxhY2VcLW5hbWVzOwor5qmIID4gYmVudFwtb3JcLXR3aXN0ZWRcLXBpZWNlXC1vZlwtd29vZDsKK+akiiA+IHRvXC1maXRcLWFcLWhhbmRsZVwtaW50b1wtYVwtc29ja2V0Owor5pqQID4gdGhlXC1icmlnaHRcLXNoaW5pbmdcLW9mXC10aGVcLXN1bjsKK+aYsyA+IHRoZVwtZGVjbGluaW5nXC1zdW5cLWluXC10aGVcLXdlc3Q7CivmjawgPiBwcmVzc1wtZG93blwtaGVhdmlseVwtd2l0aFwtaGFuZHM7CivmipQgPiB0YWtlXC1vclwtaG9sZFwtdXBcLWluXC1ib3RoXC1oYW5kczsKK+W2gSA+IGdvdWxvdVwtbW91bnRhaW5cLXBlYWtcLWluXC1odW5hbjsKK+W0viA+IHBsYWNlXC1uYW1lXC1pblwtc2hhbnhpXC1wcm92aW5jZTsKK+WzqyA+IG1vdW50YWluXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor5aeFID4gd29tYW5cLWF0XC10aW1lXC1vZlwtbWVuc3RydWF0aW9uOwor5aO8ID4gcGFsYWNlXC1jb3JyaWRvclwtb3JcLXBhc3NhZ2V3YXk7Civlo40gPiBtb2F0XC1hcm91bmRcLWFcLWNpdHlcLlwtYVwtY2hhbm5lbDsKK+WfoSA+IGNoYXJhY3RlclwtdXNlZFwtaW5cLXBsYWNlXC1uYW1lczsKK+WXqiA+IGNoYXJhY3RlclwtdXNlZFwtaW5cLXRyYW5zbGF0aW9uOwor5ZepID4gZmx1dGVcLWxpa2VcLW11c2ljYWxcLWluc3RydW1lbnQ7CivllakgPiBwYXJ0aWNsZVwtaW1wbHlpbmdcLXByb2JhYmlsaXR5Owor5Y+QID4gdG9cLXByaWNrXC1hXC1kb2dcLXRvXC1tYWtlXC1oaW1cLWdvOwor5Y2QID4gc3dhc3Rpa2FcLWZvdXJ0aFwtb2ZcLWF1c3BpY2lvdXM7CivljY0gPiBzd2FzdGlrYVwtZm91cnRoXC1vZlwtYXVzcGljaW91czsKK+S2lSA+IGlycmVndWxhclwtYW5kXC1wcm9taW5lbnRcLXRlZXRoOwor5LWYID4gZG9zZW4nJ3RcLXRcLXN0aWNrXC10b1wtZWFjaFwtb3RoZXI7CivksrUgPiBhXC1nZW5lcmFsXC1uYW1lXC1vZlwtc21hbGxcLWJpcmRzOwor5K+GID4gc21hbGxcLWFuZFwtdGhpblwtcGllY2VcLW9mXC1ib25lczsKK+SrsiA+IHRoaW5cLWFuZFwtc2lja2x5XC1pblwtYXBwZWFyYW5jZTsKK+SrpCA+IGJldHdlZW5cLXRoZVwtZXllYnJvd3NcLWFuZFwtZXllczsKK+SroSA+IGFcLWxvbmdcLXNoYXBlXC1vZlwtaGVhZFwtYW5kXC1mYWNlOwor5KuLID4gZmVtYWxlXC1hdHRlbmRhbnRzXC1vclwtc2VydmFudHM7Civkp5AgPiBhXC1tb3VudGFpblwtaW5cLXNoYW54aVwtcHJvdmluY2U7CivkpaMgPiBhblwtaW5zdHJ1bWVudFwtZm9yXC1ib3JpbmdcLXdvb2Q7CivkpYkgPiB0aGVcLWN1cnZlZFwtaXJvblwtcGFydFwtb2ZcLWFcLWhvZTsKK+SkkiA+IHdpbmVcLW1hZGVcLWZyb21cLWdsdXRpbm91c1wtcmljZTsKK+SkjSA+IHJvdHRlblwtcGFzdGVcLW9yXC1zb3liZWFuXC1zYXVjZTsKK+SgvSA+IGhlaWdodFwtb3JcLXN0YXR1cmVcLW9mXC1hXC1wZXJzb247CivkoLEgPiB0b1wtd2Fsa1wtc2xvd2x5XC1hbmRcLWNhdXRpb3VzbHk7Civkn6cgPiBzb3VuZFwtb2ZcLXRyZWFkaW5nXC1vclwtc3RlcHBpbmc7CivknocgPiBnaWZ0c1wtdG9cLXN1cGVyaW9yc1wtb3JcLWZyaWVuZHM7Civknb0gPiBuYW1lXC1vZlwtYVwtcGVyc29uXC1pblwtb2xkXC1jaGluYTsKK+SdmSA+IGFcLWtpbmRcLW9mXC1hbmltYWxcLWxpa2VcLWFcLXRpZ2VyOwor5J2XID4gYVwta2luZFwtb2ZcLWFuaW1hbFwtbGlrZVwtYVwtdGlnZXI7CivknIggPiB0b1wtc3BlYWtcLW9uXC1iZWhhbGZcLW9mXC1hbm90aGVyOwor5JizID4gYVwtZ2FybWVudFwtb2ZcLXNpbmdsZVwtdGhpY2tuZXNzOwor5I+8ID4gd2hhdFwtaXNcLWxlZnRcLW92ZXJcLW9mXC10aGVcLWZvb2Q7CivkjqIgPiB0b1wtbWVhc3VyZVwtYnlcLXBpbnRzXC1hbmRcLXBlY2tzOwor5I6RID4gZmx5aW5nXC1vdmVyXC10aGVcLXdhdGVyXC1zdXJmYWNlOwor5I2uID4geW91bmdcLWdvYXRcLXVuZGVyXC1vbmVcLXllYXJcLW9sZDsKK+SNgiA+IHRvb2xzXC10b1wtZHJhd1wtd2F0ZXJcLW9yXC1saXF1aWQ7CivkjL8gPiB0aGVcLWJyZWFkdGhcLW9mXC1jbG90aFwtb3JcLXBhcGVyOwor5IyXID4gdGhlXC1sZWZ0XC1vdmVyXC1vZlwtZHJhd2luZ1wtc2lsazsKK+SMiCA+IHRvXC1nZXRcLXNvbWV0aGluZ1wtd2l0aFwtYVwtbGFzc287CivkiaUgPiBhXC1zbWFsbFwtYmFza2V0XC1mb3JcLWNob3BzdGlja3M7CivkhrogPiB3aGlybGluZ1wtb2ZcLXRoZVwtZmxvd2luZ1wtd2F0ZXI7CivkhaIgPiBtYXR1cmVcLW9yXC1yaXBlblwtb2ZcLXRoZVwtZ3JhaW5zOwor47+2ID4gdGhlXC1zaWRlc1wtb2ZcLWFcLXNob2VcLW9yXC1ndXR0ZXI7CivjvbAgPiBjYXJ2ZWRcLXdpbmRvd1wtZnJhbWVcLW9uXC1hXC1kb29yOwor47mvID4gYVwta2luZFwtb2ZcLWFuaW1hbFwtbGlrZVwtYVwtdGlnZXI7CivjuYIgPiB1bnRhbWVkXC1hbmRcLWluZG9jaWxpdHlcLWNhdHRsZTsKK+O0hCA+IHRoZVwtd2F0ZXJcLWZsb3dpbmdcLWluXC1hXC10dXJuZWQ7CivjsIkgPiB0aGVcLWhhemVsXC1udXRcLW9yXC1maWxiZXJ0XC10cmVlOwor462fID4gdG9ydHVyZVwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor46uQID4gZGlzdGFudFwtYW5kXC1pbmRpc3Rpbmd1aXNoYWJsZTsKK+OhuyA+IG5hbWVcLW9mXC1hXC1zbWFsbFwtYW5jaWVudFwtc3RhdGU7Civjm5AgPiB3aWZlXC1vZlwtb25lJydzXC1lbGRlcicnc1wtYnJvdGhlcjsKK+OahiA+IHRvXC1kb1wtc29tZXRoaW5nXC1pblwtYW5cLW9sZFwtd2F5Owor45afID4gdG9cLWRlbGl2ZXJcLW92ZXJcLXRvXC1wZXJzb25hbGx5Owor5Lu2ID4gbnVtZXJhcnlcLWFkanVuY3RcLWZvclwtYXJ0aWNsZTsKK+WQlyA+IGZpbmFsXC1pbnRlcnJvZ2F0aXZlXC1wYXJ0aWNsZTsKK+m6vSA+IGludGVycm9nYXRpdmVcLWZpbmFsXC1wYXJ0aWNsZTsKK+efoyA+IHBhcnRpY2xlXC1vZlwtY29tcGxldGVkXC1hY3Rpb247CivkuZIgPiB1c2VkXC13aXRoXC1wb25nXC1mb3JcLXBpbmdcLXBvbmc7CivkuZMgPiB1c2VkXC13aXRoXC1waW5nXC1mb3JcLXBpbmdcLXBvbmc7CivlkpogPiB1c2VkXC1hc1wtZGVzY3JpcHRpb25cLW9mXC1zb3VuZDsKK+eQhSA+IGFcLXZhcmlldHlcLW9mXC13aGl0ZVwtY2FybmVsaWFuOwor5a2wID4gd2hvXD9cLXdoaWNoXD9cLXdoYXRcP1wtd2hpY2hcLW9uZVw/Owor5oiKID4gZmlmdGhcLW9mXC10ZW5cLWNlbGVzdGlhbFwtc3RlbXM7CivmuLIgPiBhZGRcLXJlcGVhdGVkXC13YXNoZXNcLW9mXC1jb2xvcjsKK+WSqyA+IGZvb3RcLW1lYXN1cmVcLW9mXC16aG91XC1keW5hc3R5Owor6aW3ID4gcmF0aW9uc1wtYW5kXC1wYXlcLWZvclwtc29sZGllcnM7CivmsbYgPiBhXC1yaXZlclwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+WPgSA+IGJhbmtcLWZvcm1cLW9mXC1udW1lcmFsXC0nJ3RocmVlJyc7Civlo6wgPiBuaW50aFwtb2ZcLXRlblwtY2VsZXN0aWFsXC1zdGVtczsKK+afqSA+IGNvZmZpblwtd2hpY2hcLWNvbnRhaW5zXC1jb3Jwc2U7CivmoaAgPiB0aGVcLWZvcmtpbmdcLWJyYW5jaFwtb2ZcLWFcLXRyZWU7CivnlI8gPiBhXC1zcXVhdFwtamFyXC1mb3JcLWhvbGRpbmdcLXdpbmU7CivnrJ4gPiBiYW1ib29cLXJvZFwtdXNlZFwtZm9yXC1iZWF0aW5nczsKK+mYlyA+IGFcLXBsYWNlXC1pblwteGluamlhbmdcLXByb3ZpbmNlOwor6ZOJID4gZGV2aWNlXC1mb3JcLWNhcnJ5aW5nXC1hXC10cmlwb2Q7Civop6UgPiBhXC1jdXBcLW1hZGVcLW9mXC1ob3JuXC1vYnN0aW5hdGU7Civoo6MgPiBkcmF3XC1vbmUnJ3NcLWhhbmRzXC1pbnRvXC1zbGVldmU7CivltIMgPiBtb3VudGFpblwtaW5cLXNpY2h1YW5cLXByb3ZpbmNlOwor572YID4gc2NyZWVuXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7CivmsIcgPiB0aGlja1wtcm91Z2hcLXNlcmdlXC1mcm9tXC10aWJldDsKK+WftCA+IHNvaWxcLXdpdGhcLWxhcmdlXC1jbGF5XC1jb250ZW50Owor5pi0ID4gb25lXC1vZlwtdGhlXC0yOFwtY29uc3RlbGxhdGlvbnM7Civoj7kgPiBzYWx0ZWRcLW9yXC1waWNrbGVkXC12ZWdldGFibGVzOwor6bq8ID4gaW50ZXJyb2dhdGl2ZVwtZmluYWxcLXBhcnRpY2xlOwor6bWtID4gYVwtc21hbGxcLWJpcmRcLXdpdGhcLWJsYWNrXC1uZWNrOwor6aWfID4gcmF0aW9uc1wtYW5kXC1wYXlcLWZvclwtc29sZGllcnM7CivppIkgPiByYXRpb25zXC1hbmRcLXBheVwtZm9yXC1zb2xkaWVyczsKK+makiA+IHRoZVwtYXBwZWFyYW5jZVwtb2ZcLWFcLW1vdW50YWluOwor6ZeQID4gYVwtcGxhY2VcLWluXC14aW5qaWFuZ1wtcHJvdmluY2U7CivpiYkgPiBkZXZpY2VcLWZvclwtY2FycnlpbmdcLWFcLXRyaXBvZDsKK+mGgSA+IGFcLWtpbmRcLW9mXC1ncmVlblwtY29sb3JlZFwtd2luZTsKK+mCvyA+IGFcLXN0YXRlXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor6L2WID4gZnJhbWV3b3JrXC1vZlwtbGF0dGljZVwtb25cLWNhcnQ7Civop7UgPiBhXC1jdXBcLW1hZGVcLW9mXC1jb3JuXC1vYnN0aW5hdGU7CivopZ0gPiBkcmF3XC1vbmUnJ3NcLWhhbmRzXC1pbnRvXC1zbGVldmU7CivogIcgPiB3cmlua2xlZFwtZmFjZVwtb2ZcLXRoZVwtZWxkZXJseTsKK+e+tCA+IHJhbmtcLW9kb3VyXC1vZlwtc2hlZXBcLW9yXC1nb2F0czsKK+e1gyA+IHN0cmluZ1wtb25cLW11c2ljYWxcLWluc3RydW1lbnQ7CivnrbsgPiBwbGFjZVwtbmFtZVwtaW5cLWh1bmFuXC1wcm92aW5jZTsKK+ermiA+IHN0YW5kXC1hbmRcLXdhaXRcLWZvclwtbG9uZ1wtdGltZTsKK+edmSA+IHRvXC1yb2xsXC10aGVcLWV5ZWJhbGxzXC10b1wtbG9vazsKK+eRgiA+IFwoc3RvbmVcLXdoaWNoXC1yZXNlbWJsZXNcLWphZGVcKTsKK+eHuiA+IHRoZVwtZHJ5XC1hdFwtdGhlXC1maXJlXC10b1wtcm9hc3Q7CivngYkgPiBhXC1yaXZlclwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+eAlCA+IHJpdmVyXC1uYW1lXC1pblwtaGVuYW5cLXByb3ZpbmNlOwor5rGnID4gbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtc2hhbmdkb25nOwor5rCMID4gdGhpY2tcLXJvdWdoXC1zZXJnZVwtZnJvbVwtdGliZXQ7CivmqbUgPiB3b29kXC1wbGFjZWRcLXVuZGVyXC1yb29mXC10aWxlczsKK+akjyA+IHRoZVwtZm9ya2luZ1wtYnJhbmNoXC1vZlwtYVwtdHJlZTsKK+abiCA+IHR3aWxpZ2h0XC1qdXN0XC1iZWZvcmVcLXN1bnJpc2U7Civml58gPiBhblwtbWlsaXRhcnlcLWZsYWdcLW9hXC1zdGFuZGFyZDsKK+aJqCA+IHBpY2tcLXVwXC13aXRoXC1mb3JrXC1vclwtcGluY2VyczsKK+aJoCA+IHBpY2tcLXVwXC13aXRoXC1mb3JrXC1vclwtcGluY2VyczsKK+W5sCA+IGN1cnRhaW5cLWF0XC1mcm9udFwtb2ZcLWNhcnJpYWdlOwor5bSNID4gbW91bnRhaW5cLWluXC1zaWNodWFuXC1wcm92aW5jZTsKK+W0gCA+IHBsYWNlXC1uYW1lXC1pblwtaHVuYW5cLXByb3ZpbmNlOwor5aiAID4gbmFtZVwtb2ZcLWFcLWNvbmN1YmluZVwtb2ZcLWRpXC1rdTsKK+WfhCA+IHdoaXJsaW5nXC1vZlwtZHVzdFwtaW5cLXRoZVwtd2luZDsKK+WXjiA+IGZpbmFsXC1pbnRlcnJvZ2F0aXZlXC1wYXJ0aWNsZTsKK+S1oCA+IHJ1c2hlc1wtdXNlZFwtZm9ybVwtbWFraW5nXC1tYXRzOwor5LONID4gYVwta2luZFwtb2ZcLXBoZWFzYW50XC1saWtlXC1iaXJkOwor5LGxID4gYVwta2luZFwtb2ZcLXNsaXBwZXJ5XC1sb25nXC1maXNoOwor5K6HID4gYmxhY2tcLWhvcnNlXC13aXRoXC13aGl0ZVwtdGhpZ2g7CivkrKAgPiB0aGVcLWZhbGxpbmdcLW9mXC1zbm93XC1hbmRcLXJhaW47Civkqq0gPiBhXC1raW5kXC1vZlwtbXVzaWNhbFwtaW5zdHJ1bWVudDsKK+SqiSA+IG1ldGFsXC1kZWNvcmF0aW9uXC1vblwtYVwtaGFsdGVyOwor5KmhID4gYVwta2luZFwtb2ZcLWJvb3RzXC1pblwtb2xkXC10aW1lczsKK+SmnCA+IG5hbWVcLW9mXC1hXC1zdGF0ZVwtaW5cLW9sZFwtdGltZXM7CivkpbogPiBuYW1lXC1vZlwtYVwtZG91YmxlXC1lZGdlZFwtc3dvcmQ7CivkpZUgPiB0aGVcLWJsYWRlXC1vclwtZWRnZVwtb2ZcLWFcLXNwYWRlOwor5KSJID4gZW1wdGllZFwtdGhlXC1kcmlua1wtY29tcGxldGVseTsKK+SjoSA+IG5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLW9sZFwtdGltZXM7Civko48gPiBuYW1lXC1vZlwtYVwtc3RhdGVcLWluXC1vbGRcLXRpbWVzOwor5KK8ID4gbmFtZVwtb2ZcLWFcLXN0YXRlXC1pblwtb2xkXC10aW1lczsKK+ShkSA+IHRoZVwtcmltXC1vclwtZmVsbG9lXC1vZlwtYVwtd2hlZWw7CivkoLQgPiB3aXRoXC1hXC1zeW1tZXRyaWNcLXdlbGxcLWZvcm1lZDsKK+SdtSA+IHRvXC10aGFua1wtd2l0aFwtbW9uZXlcLW9yXC1naWZ0czsKK+SZlyA+IGFcLXN3YWRkbGluZ1wtY2xvdGhcLWZvclwtaW5mYW50Owor5Ji7ID4gY3VydGFpblwtb25cLWFcLWNhcnJpYWdlXC1vclwtY2FyOwor5Ji6ID4gYVwtc2VhbVwtd2hpY2hcLWhhc1wtY29tZVwtdW5zZXduOwor5Ji1ID4gaGlzc2luZ1wtc291bmRcLW9mXC10aGVcLWNsb3RoZXM7CivklJsgPiBmaWJyb3VzXC1wbGFudFwtb2ZcLXdoaWNoXC1jbG90aDsKK+STnCA+IHNhbHRlZFwtb3JcLXBpY2tsZWRcLXZlZ2V0YWJsZXM7CivkkbkgPiBhXC1udW1lcmFyeVwtYWRqdW5jdFwtZm9yXC1zaGlwczsKK+SNoCA+IHR1cmJhblwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5IyLID4gYVwtaGVyY2hpZWZcLWh1bmdcLWF0XC10aGVcLXdhaXN0Owor5IupID4gcHJldHR5XC1hbmRcLWZpbmVcLXNpbGtcLWZhYnJpY3M7Civki48gPiB0aGlja1wtYW5kXC1iaWdcLXJvcGVzXC1vclwtY29yZHM7Civki4sgPiBhXC1raW5kXC1vZlwtc3ByaW5nXC1maXNoaW5nXC1uZXQ7CivkhrYgPiBub2lzZVwtb2ZcLWFcLW1vdXNlXC1pblwtdGhlXC1jYXZlOwor5IWzID4gc3RhbGtcLW9mXC10aGVcLXBhbmljbGVkXC1taWxsZXQ7Civkha0gPiBhXC12YXJpZXR5XC1vZlwtcGFuaWNsZWRcLW1pbGxldDsKK+SFoyA+IGFcLXZhcmlldHlcLW9mXC1wYW5pY2xlZFwtbWlsbGV0Owor5IWMID4gc3RhbGtcLW9mXC13aGVhdFwtb3JcLXJpY2VcLXBsYW50Owor5IOLID4gYVwtZmluZVwtc3RvbmVcLXJlc2VtYmxpbmdcLWphZGU7CivkgrUgPiBzb3VuZFwtb2ZcLWJ1bXBpbmdcLW9yXC1zdHJpa2luZzsKK+SCryA+IGFcLWZpbmVcLXN0b25lXC1yZXNlbWJsaW5nXC1qYWRlOwor5IKrID4gbm9pc2VcLW9mXC1zdG9uZXNcLXJvbGxpbmdcLWRvd247CivkgqUgPiBhXC1maW5lXC1zdG9uZVwtcmVzZW1ibGluZ1wtamFkZTsKK+SAsyA+IG5vdFwtdG9cLWxvb2tcLXN0cmFpZ2h0XC1mb3J3YXJkOwor4760ID4gdGhlXC1lcnl0aGVtYVwtb2ZcLWFjbmVcLXJvc2FjZWE7CivjuaUgPiBhXC15ZWxsb3dcLWRvZ1wtd2l0aFwtYmxhY2tcLWhlYWQ7CivjuYEgPiBnZW5lcmFsbHlcLWNhbGxlZFwtdGhlXC1hbmltYWxzOwor47W1ID4gc3dpZnRcLWN1cnJlbnRzXC1vZlwtdGhlXC1zdHJlYW07CivjtY4gPiBhXC1tb3VudGFpblwtc3RyZWFtXC1vclwtdG9ycmVudDsKK+O0miA+IHRoZVwtc21hbGxcLWRpdGNoXC1pblwtdGhlXC1maWVsZDsKK+OwhiA+IGFuXC1pbnN0cnVtZW50XC10b1wtYmxvd1wtYVwtZmlyZTsKK+OwgSA+IGFcLXRyZWVcLXdpdGhcLXNsYW50ZWRcLWJyYW5jaGVzOwor46+zID4gYVwta2luZFwtb2ZcLXRvb2xcLXRvXC1hZGp1c3RcLWJvdzsKK+OutCA+IGFcLW51bWVyYXJ5XC1hZGp1bmN0XC1mb3JcLXNoaXBzOwor46WcID4gdW5zdWNjZXNzZnVsXC1pblwtb25lJydzXC1jYXJlZXI7CivjobEgPiB0b1wtY2F1dGVyaXplXC1ieVwtYnVybmluZ1wtbW94YTsKK+OgsSA+IHRvXC1zZXRcLXdpdGhcLXRoZVwtbGVnc1wtY2xvc3NlZDsKK+OcjCA+IGFcLWRpZmZlcmVudFwtbmFtZVwtZm9yXC1icmVhc3RzOwor45m+ID4gaGlsbHNcLXdpdGhcLWxvdHNcLW9mXC1iaWdcLXJvY2tzOwor45mbID4gYVwtcGVyc29uJydzXC1uYW1lXC1pblwtb2xkXC10aW1lczsKK+OXviA+IHRvXC1naXZlXC12ZW50XC10b1wtdGhlXC1mZWVsaW5nczsKK+OXhiA+IHNvdW5kXC1vZlwtdGhlXC1yaW5nZWRcLXBoZWFzYW50Owor45OzID4gdXNlXC1rbmlmZVwtdG9cLXNwbGl0XC1zb21ldGhpbmc7CivjkZ8gPiBpbnNpbmNlcmVcLWFuZFwtY3VubmluZ1wtcGVyc29uOwor5ZWmID4gZmluYWxcLXBhcnRpY2xlXC1vZlwtYXNzZXJ0aW9uOwor57u8ID4gYXJyYW5nZVwtdGhyZWFkc1wtZm9yXC13ZWF2aW5nOwor5outID4gd2lwZVwtYXdheVwtc3RhaW5zXC13aXRoXC1jbG90aDsKK+WPriA+IGV4aG9ydFwtb3JcLWVuam9pblwtcmVwZWF0ZWRseTsKK+aInyA+IGhhbGJlcmRcLXdpdGhcLWNyZXNjZW50XC1ibGFkZTsKK+WHmyA+IHRvXC1zaGl2ZXJcLXdpdGhcLWNvbGRcLW9yXC1mZWFyOwor5qCLID4gbWFpblwtYmVhbXNcLXN1cHBvcnRpbmdcLWhvdXNlOwor6aumID4gZmxvd2luZ1wtaGFpclwtb2ZcLXlvdW5nXC1jaGlsZDsKK+etnSA+IHN0cmluZ2VkXC1tdXNpY2FsXC1pbnN0cnVtZW50Owor5LiZID4gdGhpcmRcLW9mXC10aGVcLWhlYXZlbmx5XC1zdGVtczsKK+aygiA+IHJpdmVyXC1pblwtc291dGhlYXN0XC1zaGFuZG9uZzsKK+esiCA+IGJhbWJvb1wtYm94XC11c2VkXC1jYXJyeVwtYm9va3M7Civnk6IgPiBsYWRsZVwtbWFkZVwtZnJvbVwtZHJpZWRcLWdvdXJkOwor5ZGXID4gZmluYWxcLXBhcnRpY2xlXC1vZlwtYXNzZXJ0aW9uOwor57CnID4gcmVlZFwtb2ZcLXdvb2R3aW5kXC1pbnN0cnVtZW50Owor6JufID4gc2NhbHlcLWRyYWdvblwtd2l0aFwtZm91clwtbGVnczsKK+aVlSA+IGFuXC1pbXBlcmlhbFwtb3JkZXJcLW9yXC1kZWNyZWU7Civoo58gPiBhXC1jYXNzb2NrXC1vclwtcm9iZVwtb2ZcLWFcLW1vbms7CivnorQgPiBjaGlwcGVkXC1lZGdlXC1vZlwtYVwtY29udGFpbmVyOwor55i0ID4gbWFsYXJpYVwtcGVzdGlsZW50aWFsXC12YXBvcnM7CivnurYgPiBncmVlblwtc2lsa1wtdGhyZWFkXC1vclwtdGFzc2VsOwor572hID4gdGhlXC1uYW1lXC1vZlwtYVwtY2VydGFpblwtc3RhcnM7CivnmbggPiBsYXN0XC1vZlwtdGVuXC1jZWxlc3RpYWxcLXN0ZW1zOwor5qmHID4gYVwtc2xlZGdlXC1mb3JcLXRyYW5zcG9ydGF0aW9uOwor55qLID4gdGhlXC1oaWdoXC1sYW5kXC1hbG9uZ1wtYVwtcml2ZXI7CivmvY0gPiBjb3VudHlcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivmtJkgPiBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1zaGFuZG9uZzsKK+eNoCA+IHRvXC1odW50XC1hdFwtbmlnaHRcLWJ5XC10b3JjaGVzOwor6bqSID4gbGVnZW5kYXJ5XC1hdXNwaWNpb3VzXC1hbmltYWw7Civnj6kgPiB0aGVcLXRvcFwtZ2VtXC1vZlwtdGhlXC1wZW5kYW50czsKK+iwpSA+IHRvXC1jb25mZXJcLXBvc3RodW1vdXNcLXRpdGxlczsKK+enqyA+IGdsdXRpbm91c1wtdmFyaWV0eVwtb2ZcLW1pbGxldDsKK+ervSA+IGFuY2llbnRcLXdvb2R3aW5kXC1pbnN0cnVtZW50Owor5bSuID4gXChlbGVtZW50XC1pblwtbW91bnRhaW5cLW5hbWVzXCk7CivmhIAgPiB0b1wtY2hhbmdlXC1vbmUnJ3NcLWNvdW50ZW5hbmNlOwor6YSiID4gbmFtZVwtb2ZcLWFcLWRpc3RyaWN0XC1pblwtaG9uYW47CivnmY0gPiB1bmhlYWx0aHlcLW1hcmtzXC1vblwtdGhlXC1za2luOwor6YSeID4gY291bnR5XC1pblwtemhlamlhbmdcLXByb3ZpbmNlOwor6ZuSID4gYmxhY2tcLWhvcnNlXC13aXRoXC13aGl0ZVwtbWFuZTsKK+aXkiA+IGZyaW5nZXNcLW9mXC1wZWFybHNcLW9uXC1jcm93bnM7CivnkIogPiBhXC1wbGFjZVwtaW5cLWVhc3Rlcm5cLXNoYW5kb25nOwor6JqoID4gYVwta2luZFwtb2ZcLXdhdGVyXC1iZWV0bGVcLWNhc2g7Civmr7MgPiBmaW5lXC1oYWlyXC1vclwtZnVyXC1vblwtYW5pbWFsczsKK+eYpSA+IHRvXC1yZWNvdmVyXC1mcm9tXC1hbnlcLWRpc2Vhc2U7CivmuJEgPiBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1zaGFuZG9uZzsKK+a1iCA+IHJpdmVyXC1pblwtZ3Vhbmdkb25nXC1wcm92aW5jZTsKK+WYpyA+IFwocGhvbmV0aWNcKVwtYXNcLWluXC1weXJpbWlkaW5lOwor6bW+ID4gYVwtYmlyZFwtcmVzZW1ibGluZ1wtdGhlXC1jcmFuZTsKK+muqCA+IGVwaW5lcGhlbHVzXC1zZXB0ZW1mYXNjaWF0dXM7Civpo6YgPiB3ZWxsXC1ib2lsZWRcLWNvbmdlZVwtb3JcLWdydWVsOwor6ZuKID4gdGhlXC1jcm93XC1vZlwtYVwtbWFsZVwtcGhlYXNhbnQ7CivpmrogPiBhXC1iaXJkXC1mbHlpbmdcLWhpZ2hcLWFtYml0aW9uOwor6YaxID4gdG9cLWJyZXdcLWZvclwtdGhlXC1zZWNvbmRcLXRpbWU7CivphpcgPiB0b1wtYnJld1wtZm9yXC10aGVcLXNlY29uZFwtdGltZTsKK+mFliA+IHdpbmVcLXdpdGhcLWJpcmRcLXBvaXNvblwtYWRkZWQ7CivphL8gPiBjb3VudHlcLWluXC14aW5qaWFuZ1wtcHJvdmluY2U7CivphKkgPiBjb3VudHlcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivphI0gPiBhXC10b3duXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor6LmaID4gdHJlYWRcLXRocm91Z2hcLW11ZFwtYW5kXC13YXRlcjsKK+ismiA+IHRvXC1jb25mZXJcLXBvc3RodW1vdXNcLXRpdGxlczsKK+ikmCA+IGNlcmVtb25pYWxcLWdvd25zXC1vZlwtYVwtcXVlZW47Civon7AgPiBzbWFsbFwtc3BpZGVyXC13aXRoXC1sb25nXC1sZWdzOwor6JuVID4gdGhlXC1jb21tb25cLWludGVzdGluYWxcLXdvcm1zOwor6IK3ID4gYXJlYVwtYmV0d2Vlblwtd2Fpc3RcLWFuZFwtaGlwczsKK+e2uCA+IGdyZWVuXC1zaWxrXC10aHJlYWRcLW9yXC10YXNzZWw7CivntpwgPiBhcnJhbmdlXC10aHJlYWRzXC1mb3JcLXdlYXZpbmc7CivnsYQgPiBhXC1iYXNrZXRcLWZvclwtY2FycnlpbmdcLWVhcnRoOwor566PID4gc3RyaW5nZWRcLW11c2ljYWxcLWluc3RydW1lbnQ7Civnro4gPiBhbmNpZW50XC13b29kd2luZFwtaW5zdHJ1bWVudDsKK+etjiA+IHRoaW5cLW91dHNpZGVcLXNraW5cLW9mXC1iYW1ib287CivnnqQgPiB0b1wtYmxpbmtcLW9yXC10d2l0Y2hcLXRoZVwtZXllczsKK+eakCA+IHRoZVwtaGlnaFwtbGFuZFwtYWxvbmdcLWFcLXJpdmVyOwor5r+wID4gY291bnR5XC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor5r6gID4gbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtc2hhbmRvbmc7CivmuZ4gPiByaXZlclwtaW5cLWd1YW5nZG9uZ1wtcHJvdmluY2U7Civmt6AgPiBsdXh1cmlhbnRcLVwob2ZcLXdhdGVyXC1wbGFudHNcKTsKK+a1sCA+IGF0dGVuZFwtXChvZmZpY2lhbFwtZnVuY3Rpb25zXCk7Civms5EgPiB0aGVcLXZpdHJlb3VzXC1nbGF6ZVwtb25cLWNoaW5hOwor5q6oID4gdG9cLW9wZW5cLWFzXC1hblwtdWxjZXJcLW9yXC1zb3JlOwor5p6PID4gYVwtdmFyaWV0eVwtb2ZcLWV2ZXJncmVlblwtdHJlZTsKK+aXiCA+IGZyaW5nZXNcLW9mXC1wZWFybHNcLW9uXC1jcm93bnM7CivmkIcgPiB0b1wtcHJlc3NcLWRvd25cLXdpdGhcLXRoZVwtaGFuZDsKK+W8uCA+IGFcLWJvd1wtc3RyZXRjaGVkXC10b1wtdGhlXC1mdWxsOwor5begID4gc3RyZWFtc1wtcnVubmluZ1wtdW5kZXJncm91bmQ7CivltZsgPiBjb3VudHlcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivltLMgPiBjb3VudHlcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivltJkgPiBrdW5sdW5cLW1vdW50YWluc1wtaW5cLWppYW5nc3U7CivltJggPiBrdW5sdW5cLW1vdW50YWluc1wtaW5cLWppYW5nc3U7CivltJAgPiBrdW5sdW5cLW1vdW50YWluc1wtaW5cLWppYW5nc3U7CivloLMgPiBsYW5kXC1hbGxvdG1lbnRcLWZldWRhbFwtbm9ibGU7CivlmZUgPiB0b1wtc3BlYWtcLWZhbHNlbHlcLW9yXC13cm9uZ2x5Owor5ZmFID4gdG9cLXNwZWFrXC1mYWxzZWx5XC1vclwtd3JvbmdseTsKK+S4qSA+IHRvXC1qb2luXC1vclwtY29ubmVjdFwtdGhlXC12aW5lOwor5LiSID4gdGhlXC1wZXJpb2RcLWZyb21cLTFcLXRvXC0zXC1hXC5tXC47CivktYUgPiB0b1wtZXh0cmFjdFwtYnlcLWFwcGx5aW5nXC1oZWF0Owor5LSzID4gZGlzdGlsbGVyJydzXC1ncmFpbnNcLW9yXC15ZWFzdDsKK+S0rSA+IGRpc3RpbGxlcicnc1wtZ3JhaW5zXC1vclwteWVhc3Q7Civks54gPiBiaXJkc1wtZmx5aW5nXC1hbGxcLWRpcmVjdGlvbnM7Civks4ogPiBhXC13aWxkXC1kdWNrXC1saWtlXC13YXRlclwtYmlyZDsKK+SzgyA+IGFcLWtpbmRcLW9mXC1waG9lbml4XC1saWtlXC1iaXJkOwor5LOBID4gYVwtd2lsZFwtZHVja1wtbGlrZVwtd2F0ZXJcLWJpcmQ7CivkqrcgPiB0b1wtdG9pbFwtb3JcLWxhYm9yXC1zZWR1bG91c2x5Owor5KqHID4gY3VzaGlvbmVkXC1zZWF0XC1vblwtYVwtdmVoaWNsZTsKK+SpvyA+IGFcLWJpZ1wtZHJ1bVwtdXNlZFwtaW5cLXRoZVwtYXJteTsKK+SnmCA+IGFcLWxvd1wtd2FsbFwtb25cLXRoZVwtcm9hZFwtc2lkZTsKK+SmsiA+IGVhdmVzXC1vZlwtYVwtYW5jZXN0cmFsXC10ZW1wbGU7CivkpLsgPiBoZWF2eVwtaXJvblwtcGFydFwtb2ZcLWFcLXBsb3VnaDsKK+SjsiA+IHRvXC1oZWF0XC10aGVcLXdpbmVcLW92ZXJcLW5pZ2h0Owor5KKvID4gdG9cLWNob29zZVwtb3JcLXNlbGVjdFwtY2FyZWZ1bDsKK+SgiyA+IGJlbGxcLXNoYXBlZFwtd2l0aFwtbGFyZ2VcLWJhc2U7Civkn64gPiB0b1wtY3Jhd2xcLW9uXC1oYW5kc1wtYW5kXC1rbmVlczsKK+ScuCA+IHNtYWxsXC1waWVjZXNcLW9mXC1iZWFuXC1zdGFsa3M7CivknIcgPiB0b1wtc3BlYWtcLW5vdFwtaW5cLWFcLWNsZWFyXC13YXk7CivkmqMgPiBjcm9va2VkXC1ob3Juc1wtb2ZcLXRoZVwtYW5pbWFsOwor5JqcID4gY2F0dGxlXC13aXRoXC1jcm9zc3dpc2VcLWhvcm5zOwor5JmjID4gcmFnZ2VkXC1nYXJtZW50c1wtb3JcLWNsb3RoaW5nOwor5JmVID4gY2xvdGhlc1wtdGhhdFwtaGF2ZVwtbm9cLWxpbmluZzsKK+SZlCA+IGNsb3RoZXNcLW1hZGVcLW9mXC1wb29yXC1mYWJyaWM7CivkmZMgPiB0aGVcLWxvd2VyXC1wYXJ0XC1vZlwtYVwtZ2FybWVudDsKK+SYuSA+IGNsb3RoZXNcLXRoYXRcLWhhdmVcLW5vXC1saW5pbmc7CivkmKUgPiB0aGVcLWZyb250XC1vZlwtYVwtY2hpbmVzZVwtZ293bjsKK+SYoyA+IGNsb3RoZXNcLXRoYXRcLWhhdmVcLW5vXC1saW5pbmc7CivkmIEgPiBhXC1ibHVlXC1ncmVlblwtY29sb3JlZFwtY2ljYWRhOwor5Je1ID4gYVwtZGlzZWFzZVwtYXR0YWNrZWRcLXNpbGt3b3JtOwor5JWuID4gZmxvd2VyXC1vZlwtdGhlXC1jaHJ5c2FudGhlbXVtOwor5JWmID4gZmxvd2VyXC1vZlwtdGhlXC1jaHJ5c2FudGhlbXVtOwor5JSlID4gY29tbW9uXC12YXJpZXR5XC1vZlwtYXJ0ZW1pc2lhOwor5JSfID4gc2hha2VcLWFuZFwtd2F2ZVwtb2ZcLXRoZVwtZ3Jhc3M7CivkkLwgPiB0aGluXC1tZW1icmFuZVwtb2ZcLXRoZVwtdGhyb2F0Owor5JCvID4gdWdseVwtYXBwZWFyYW5jZVwtb2ZcLWFcLXBlcnNvbjsKK+SQkSA+IHRoaW5cLWN1dFwtb2ZcLXRoZVwtc2xpY2VkXC1tZWF0Owor5I26ID4gYVwtbGVnZW5kYXJ5XC1nb2F0XC1saWtlXC1iZWFzdDsKK+SMvCA+IGFcLWtpbmRcLW9mXC1maW5lXC1zaWxrXC1mYWJyaWNzOwor5IyEID4gYVwtcm9wZVwtZm9yXC1kcmF3aW5nXC11cFwtd2F0ZXI7Civki4EgPiBhXC1yb3BlXC1mb3JcLWRyYXdpbmdcLXVwXC13YXRlcjsKK+SKniA+IHRvXC1yb2xsXC1yb3VuZFwtd2l0aFwtdGhlXC1oYW5kOwor5IqVID4gd2VsbFwtYm9pbGVkXC1jb25nZWVcLW9yXC1ncnVlbDsKK+SKiCA+IGRpc3RpbGxlcicnc1wtZ3JhaW5zXC1vclwteWVhc3Q7CivkibogPiBkZXRlcmlvcmF0ZWRcLWFuZFwtYmVjb21lXC1yZWQ7CivkibkgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SJuCA+IHNsaXBzXC1vZlwtYmFtYm9vXC1mb3JcLXdyaXRpbmc7CivkibMgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SJrSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5ImrID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkiaYgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SJoSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5ImgID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkiZogPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SJmSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5ImPID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkiYYgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SJhCA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5ImBID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkiL0gPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SIvCA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5IiyID4gYVwtYmFtYm9vXC1iYXNrZXRcLWZvclwtZmlzaGluZzsKK+SIryA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5IitID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkiKMgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SIoiA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5IihID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkiJ0gPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SImCA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5IiXID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkiJYgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SIjyA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5IiNID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkiIwgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SIiyA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5IiKID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287Civkh7ogPiBiZWFuc1wtYW5kXC1wZWFzXC1jb2xsZWN0aXZlbHk7Civkh7UgPiBvbmVcLW9mXC10aGVcLXdpbmRcLWluc3RydW1lbnRzOwor5IeqID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287Civkh54gPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SHmyA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5IeZID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkhaogPiBkaXNlYXNlXC1vZlwtdGhlXC1wcml2YXRlXC1wYXJ0Owor5ISwID4gZm9ydHlcLWJ1bmRsZXNcLW9mXC1yaWNlXC1wbGFudDsKK+SDhyA+IGlua1wtZm9yXC1pbXByaW50aW5nXC1vZlwtc2VhbHM7CivkgJEgPiB0b1wtZ291Z2VcLW91dFwtYW5cLWV5ZVwtb3JcLWV5ZXM7Civjv4AgPiB1bmhlYWx0aHlcLW1hcmtzXC1vblwtdGhlXC1za2luOwor472OID4gdGhlXC1wcm9mdW5kaXR5XC1vZlwtdGhlXC1oYXJlbTsKK+O8oCA+IGFcLWNyb2NrXC13aXRoXC1uYXJyb3dcLW9wZW5pbmc7CivjuqwgPiBhXC1sYXJnZVwtcGllY2VcLW9mXC1qYWRlXC1zdG9uZTsKK+O6kiA+IGJhcmtpbmdcLW9mXC1hXC1mcmlnaHRlbmVkXC1kb2c7CivjuZYgPiB0b1wtZmVlZFwtYW5pbWFsc1wtd2l0aFwtZ3JhaW5zOwor47iSID4gdG9cLWFic3VyZFwtcHVyc3VpdFwtb3JcLWRlc2lyZTsKK+OugCA+IHRvb2xcLXRvXC1jbGVhclwtb3V0XC10aGVcLXdhdGVyOwor462VID4gYVwtYm9hcmRcLWZvclwtY2FycnlpbmdcLXRoaW5nczsKK+OpmyA+IHRvXC1yb2xsXC1yb3VuZFwtd2l0aFwtdGhlXC1oYW5kOwor46mGID4gdG9cLWJlXC1pblwtZnVsbFwtcG9zc2Vzc2lvblwtb2Y7CivjqKsgPiB0b1wtYmVcLWluXC1mdWxsXC1wb3NzZXNzaW9uXC1vZjsKK++nlSA+IGt1bmx1blwtbW91bnRhaW5zXC1pblwtamlhbmdzdTsKK+OnlSA+IHRvXC1mZWVsXC1vclwtdG91Y2hcLXdpdGhcLWhhbmRzOwor46eCID4gYVwtY2F2ZVwtYVwtaG9sZFwtaW5cLXRoZVwtZ3JvdW5kOwor46aQID4gYVwtc3RyYWlnaHRmb3J3YXJkXC1jaGFyYWN0ZXI7CivjpbQgPiBkb1wtbm90XC1jYXJlXC1hYm91dFwtc29tZXRoaW5nOwor76SaID4gd2hpdGVcLWhvcnNlXC13aXRoXC1ibGFja1wtbWFuZTsKK+OirCA+IGFcLWJvd1wtc3RyZXRjaGVkXC10b1wtdGhlXC1mdWxsOwor46G1ID4gcm9vZlwtb2ZcLXRoZVwtaG91c2VcLWNvbm5lY3RlZDsKK+OgnyA+IGFcLW1vdW50YWluXC1pblwtYW5jaWVudFwtdGltZXM7Civjm70gPiB0b1wtd2Fsa1wtc2xvd2x5XC1saWtlXC1hXC13b21hbjsKK+ObriA+IHdpZmVcLW9mXC1vbmUnJ3NcLWVsZGVyXC1icm90aGVyOwor45OIID4gc291bmRcLW9mXC1mbHlpbmdcLW9yXC1zcGVlZGluZzsKK+OSqyA+IGNob2tlZFwtYW5kXC11bmFibGVcLXRvXC1icmVhdGg7CivjkpYgPiB0aGVcLXJvb3RcLXN0b2NrXC1vZlwtdGhlXC1sb3R1czsKK+eVpiA+IHNlY3Rpb25zXC1pblwtdmVnZXRhYmxlXC1mYXJtOwor55S6ID4gcmFpc2VkXC1wYXRoXC1iZXR3ZWVuXC1maWVsZHM7Civlm4EgPiBtb3ZlXC1saXBzXC1hc1wtd2hlblwtc3BlYWtpbmc7CivkvKYgPiBub3JtYWxcLWh1bWFuXC1yZWxhdGlvbnNoaXBzOwor5ZibID4gZmluYWxcLWV4Y2xhbWF0b3J5XC1wYXJ0aWNsZTsKK+iQqCA+IGJ1ZGRoaXN0XC1nb2RzXC1vclwtaW1tb3J0YWxzOwor5qGQID4gbmFtZVwtYXBwbGllZFwtdmFyaW91c1wtdHJlZXM7CivokoIgPiBwZWR1bmNsZVwtb3JcLXN0ZW1cLW9mXC1wbGFudHM7CivntLogPiBkYXJrXC1ibHVlXC1vclwtcmVkZGlzaFwtY29sb3I7Civmo7UgPiBudW1lcmFyeVwtYWRqdW5jdFwtZm9yXC10cmVlczsKK+agqiA+IG51bWVyYXJ5XC1hZGp1bmN0XC1mb3JcLXRyZWVzOwor5ZOJID4gZmluYWxcLWV4Y2xhbWF0b3J5XC1wYXJ0aWNsZTsKK+aGiyA+IHRvXC1zdXBwcmVzc1wtaW5uZXJcLWZlZWxpbmdzOwor5a2cID4gYmVcLWFzXC1kaWxpZ2VudFwtYXNcLXBvc3NpYmxlOwor57KxID4gYmV0dGVyXC12YXJpZXRpZXNcLW9mXC1taWxsZXQ7Civls5IgPiBtb3VudGFpblwtaW5cLWdhbnN1XC1wcm92aW5jZTsKK+amqCA+IHRvXC1wcmVzc1wtb3JcLWV4dHJhY3RcLWp1aWNlczsKK+WXqyA+IG1vdmVcLWxpcHNcLWFzXC13aGVuXC1zcGVha2luZzsKK+mEsSA+IGNvdW50eVwtYW5kXC1sYWtlXC1pblwtamlhbmd4aTsKK+iPoCA+IHNwaW5hY2hcLWFuZFwtc2ltaWxhclwtZ3JlZW5zOwor5reeID4gbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtamlhbmdzdTsKK+a3hCA+IHJpdmVyXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor6I+PID4gcml2ZXJcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivmgrEgPiB0b1wtYmVcLWRlc2lyb3VzXC1vZlwtc3BlYWtpbmc7CivmvK8gPiByaXZlclwtaW5cLW5vcnRoZXJuXC1zaGFuZG9uZzsKK+iVmSA+IHNwZWNpZXNcLW9mXC1mcmFncmFudFwtb3JjaGlkOwor5ruBID4gZGlzdHJpY3RcLWluXC1hbmh1aVwtcHJvdmluY2U7Civni4EgPiBhXC10cmliZVwtb2ZcLXNjeXRoaWFuXC1ub21hZHM7CivphaIgPiB0b2FzdFwtb25lJydzXC1ob3N0XC13aXRoXC13aW5lOwor6KG/ID4gY29sbGFyXC1vclwtbGFwZWxcLW9mXC1nYXJtZW50Owor5badID4gcGF0aFwtbGVhZGluZ1wtdXBcLWFcLW1vdW50YWluOwor5peDID4gc2lsa1wtYmFubmVyXC13aXRoXC1iZW50XC1wb2xlOwor6b2RID4gYnJlYWtcLW9yXC1zbWFzaFwtaW50b1wtcGllY2VzOwor57uAID4gZGFya1wtYmx1ZVwtb3JcLXJlZGRpc2hcLWNvbG9yOwor6ISYID4gaW50ZXJuYWxcLWNhdml0eVwtb2ZcLXN0b21hY2g7CivplZIgPiBtZWFzdXJlXC1vZlwtd2VpZ2h0XC1mb3JcLWdvbGQ7CivnnK0gPiBldmlsXC1sb29rXC1vZlwtZGVlcFwtc2V0XC1leWVzOwor6ZSWID4gdGhlXC1jb2xvclwtb2ZcLXRoZVwtYVwtbWluZXJhbDsKK+mCmSA+IG1vdW50YWluXC1pblwtaGVuYW5cLXByb3ZpbmNlOwor5aGNID4gcmFpc2VkXC1wYXRoXC1iZXR3ZWVuXC1maWVsZHM7CivmlasgPiBhbmNpZW50XC1tdXNpY2FsXC1pbnN0cnVtZW50Owor5rO6ID4gcml2ZXJcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivokJEgPiBncmFzc1wtdXNlZFwtZm9yXC1tYWtpbmdcLW1hdHM7Civop68gPiB3aW5lXC1nb2JsZXRcLW1hZGVcLWZyb21cLWhvcm47CivoiKMgPiB0b1wtbW9vclwtYVwtYm9hdFwtdG9cLXRoZVwtYmFuazsKK+m9jyA+IGJyZWFrXC1vclwtc21hc2hcLWludG9cLXBpZWNlczsKK+mmtSA+IGhvcnNlXC13aXRoXC13aGl0ZVwtYmFja1wtbGVnczsKK+mjoyA+IGRpc3BsYXlcLWZvb2RcLWZvclwtc2hvd1wtb25seTsKK+mfsiA+IGJyZWFrXC1vclwtc21hc2hcLWludG9cLXBpZWNlczsKK+mXkiA+IHVwcGVyXC1zdG9yeVwtZG9vclwtb3JcLXdpbmRvdzsKK+mOsCA+IG1lYXN1cmVcLW9mXC13ZWlnaHRcLWZvclwtZ29sZDsKK+mKgSA+IGFcLXdlaWdodFwtb2ZcLXRoaXJ0eVwtY2F0dGljczsKK+mGiiA+IHRvXC1wb3VyXC13aW5lXC1pblwtYVwtbGliYXRpb247Civpg78gPiBjb3VudHlcLWluXC1zaGFhbnhpXC1wcm92aW5jZTsKK+mDsyA+IHN0YXRlXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor6YOgID4gcGxhY2VcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7Civpg5ogPiB0b3duc1wtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+mDlSA+IHN0YXRlXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor6YOIID4gcGxhY2VcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivpgqAgPiBjb3VudHlcLWluXC1zaGFhbnhpXC1wcm92aW5jZTsKK+i8pCA+IGFcLXBhbGxcLXRvXC1jb3ZlclwtdGhlXC1oZWFyc2U7CivouJIgPiB0b1wtc2xpcFwtYW5kXC1zcHJhaW5cLWFcLWJsaW1iOwor6Ke2ID4gd2luZVwtZ29ibGV0XC1tYWRlXC1mcm9tXC1ob3JuOwor6KaQID4gYVwtc2xlZXBcLXRvXC1yZWFsaXplXC10b1wtZmVlbDsKK+iZoSA+IHN1cHBvcnRcLXN0cnVjdHVyZVwtZm9yXC1iZWxsOwor6Ja+ID4gbHV4dXJpYW50XC1ncm93dGhcLW9mXC1mbG93ZXI7CivolJUgPiBwZWR1bmNsZVwtb3JcLXN0ZW1cLW9mXC1wbGFudHM7CivojIggPiBhXC1wbGFudFwteWllbGRpbmdcLWFcLXJlZFwtZHllOwor6ImkID4gdG9cLW1vb3JcLWFcLWJvYXRcLXRvXC10aGVcLWJhbms7CivohoYgPiB0aGVcLWNvcnBcLW9mXC1hXC1iaXJkXC1vclwtZm93bDsKK+e9rSA+IGRyYWdcLW5ldFwtbWFkZVwtb2ZcLWZpbmVcLW1lc2g7CivnvY8gPiBlYXJ0aGVuXC1zdGFuZFwtZm9yXC13aW5lXC1qdWc7CivnvY0gPiBsYXJnZVwtZWFydGhlbndhcmVcLXdpbmVcLWphcjsKK+e5uCA+IGhlbVwtb3JcLWJvcmRlclwtb2ZcLWFcLWdhcm1lbnQ7Civnr58gPiBsdXh1cmlhbnRcLWdyb3d0aFwtb2ZcLWJhbWJvbzsKK+eqhiA+IHRvXC1wdXRcLWFcLWNvZmZpblwtaW5cLWFcLWdyYXZlOwor56WyID4gb21pbm91c1wtb3JcLXNpbmlzdGVyXC1zcGlyaXQ7CivnmZUgPiBsb3NzXC1vZlwtdGhlXC1zZW5zZVwtb2ZcLXNtZWxsOwor55W3ID4gcmFpc2VkXC1wYXRoXC1iZXR3ZWVuXC1maWVsZHM7CivnlLwgPiByYWlzZWRcLXBhdGhcLWJldHdlZW5cLWZpZWxkczsKK+eSiCA+IGFuY2llbnRcLW11c2ljYWxcLWluc3RydW1lbnQ7Civnj5sgPiBxdWlja2x5XC1kZXRlcmlvcmF0aW5nXC1qYWRlOwor5r+8ID4gcml2ZXJcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivmvrcgPiB3YXRlclwtb3ZlcmZsb3dpbmdcLWRpZmZ1c2VkOwor5riuID4gcml2ZXJcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7Civmr6kgPiBhXC1sZWF0aGVyXC1iYWxsXC1mb3JcLWtpY2tpbmc7CivmpoMgPiByYWlzZWRcLXBhdGhcLWJldHdlZW5cLWZpZWxkczsKK+aPuSA+IGNhcnJ5XC10aGluZ3NcLW9uXC1vbmUnJ3NcLWJhY2s7Civmj4EgPiBzb3VuZFwtb2ZcLXNldHRpbmdcLXVwXC1hXC1rb3RvOwor5bOdID4gbW91bnRhaW5cLWluXC1nYW5zdVwtcHJvdmluY2U7CivlqqcgPiBteXRob2xvZ2ljYWxcLXNuYWlsXC1nb2RkZXNzOwor5ZuJID4gZXhjbGFtYXRvcnlcLWZpbmFsXC1wYXJ0aWNsZTsKK+WYtyA+IHRoZVwtcm9hcmluZ1wtb2ZcLXdpbGRcLWJlYXN0czsKK+WYkCA+IGZpbmFsXC1leGNsYW1hdG9yeVwtcGFydGljbGU7CivliZ4gPiBjYXJ2aW5nXC1vclwtZW5ncmF2aW5nXC1rbmlmZTsKK+WGjyA+IGFidXRpbG9uXC1hdmljZW5uYWVcLVwocGxhbnRcKTsKK+WAqyA+IG5vcm1hbFwtaHVtYW5cLXJlbGF0aW9uc2hpcHM7CivkuasgPiB1c2VkXC1pblwta29yZWFuXC1wbGFjZVwtbmFtZXM7CivktYYgPiBncmFpbnNcLWZyb21cLXRoZVwtZGlzdGlsbGVyeTsKK+S0vyA+IGdyYWluc1wtZnJvbVwtdGhlXC1kaXN0aWxsZXJ5Owor5LKvID4gYVwta2luZFwtb2ZcLWJsYWNrXC1zbWFsbFwtYmlyZDsKK+SvkyA+IHRoZVwtaGVhZFwtYm9uZVwtb2ZcLWxpdmVzdG9jazsKK+SutiA+IGZsb2NrXC1vZlwtaG9yc2VzXC1zdGFtcGVkaW5nOwor5K6jID4gYVwteWVsbG93XC13aXRoXC1hXC13aGl0ZVwtdGFpbDsKK+SssSA+IGNvYXJzZVwtZ3JhaW5zXC1zdWNoXC1hc1wtY29ybjsKK+SpsiA+IGFcLXRvb2xcLXVzZWRcLXRvXC1jdXRcLWxlYXRoZXI7CivkqZogPiB0b1wtbWVuZFwtdGhlXC1zb2xlc1wtb2ZcLXNob2VzOwor5KmYID4gdG9cLW1lbmRcLXRoZVwtc29sZXNcLW9mXC1zaG9lczsKK+ShpiA+IHRoZVwtZW1wdHlcLXNwYWNlXC1vZlwtYVwtd2hlZWw7CivkoIkgPiB0b1wtcnVuXC1hd2F5XC1vclwtZXNjYXBlXC1mcm9tOwor5J6RID4gYVwtcmVkXC1zd2VsbGluZ1wtb2ZcLXRoZVwtc2tpbjsKK+SbryA+IHRoZVwtcmVhc29uYWJsZVwtb2ZcLXNwZWVraW5nOwor5JaFID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SVvyA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklbwgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JW2ID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SVtSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklbMgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JWxID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SVrSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklZsgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JWXID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SVlSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklZQgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JWTID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SVkiA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklY0gPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JWKID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SViCA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklYcgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JWFID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SVgCA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklLsgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JS4ID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SUtiA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklLQgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JSyID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SUsSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklLAgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JSuID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SUrSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklKogPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JShID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SUnSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklJkgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JSUID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SUkiA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklI4gPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JSMID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SUhSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtdHJlZXM7CivklIQgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JSBID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+STvSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7Civkk7wgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JO6ID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+STsyA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7Civkk6MgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JOiID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+STnyA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7Civkk5MgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JOQID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+STjiA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7Civkk4ogPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JOJID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+STgiA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivkkrUgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JK0ID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SSsSA+IHR3aWdzXC1vZlwtaGVtcFwtdXNlZFwtZm9cLWZ1ZWw7CivkkqogPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JKpID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SSpCA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivkkqEgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JKfID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SSniA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivkkpwgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JKbID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SSmiA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivkkpQgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5I63ID4gYW5cLW9sZFwtbWFuXC13aXRoXC13aGl0ZVwtaGFpcjsKK+SMoCA+IGhvbGRcLW9uXC10b1wtb25lJydzXC1vd25cLXZpZXdzOwor5IuAID4gc2hvZXNcLW1hZGVcLW9mXC1oZW1wXC1vclwtaGFpcjsKK+SKriA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3JhaW47CivkiqwgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYWluOwor5ImCID4gYVwtYmFza2V0XC1mb3JcLWVhcnRoXC1vclwtc29pbDsKK+SHliA+IHJvcGVcLW1hZGVcLW9mXC1iYW1ib29cLXN0cmlwczsKK+SGgCA+IHRvXC1jb3JydXB0XC1vclwtYmVcLWNvcnJ1cHRlZDsKK+SFviA+IHN0YXJ0aW5nXC10b1wtcHV0XC1mb3J0aFwtZWFyczsKK+SFrCA+IHNtYWxsXC1idW5kbGVcLW9mXC1yaWNlXC1wbGFudDsKK+SBjiA+IHRvXC1tYWtlXC1hXC1jbG9zZVwtaW5zcGVjdGlvbjsKK+SAiiA+IGFcLWtpbmRcLW9mXC13YXRlclwtY29udGFpbmVyczsKK+O8qSA+IGNvbmNhdmVcLWNoYW5uZWxzXC1vZlwtdGlsaW5nOwor47qgID4gYVwtYmxhY2tcLWFwZVwtd2l0aFwtbG9uZ1wtdGFpbDsKK+O6lSA+IHRoZVwtZmlnaHRpbmdcLXNvdW5kXC1vZlwtZG9nczsKK+O5miA+IHNvdW5kXC1vZlwtY2FsbGluZ1wtdG9cLWFcLWNhbGY7CivjuZkgPiBzb3VuZFwtb2ZcLWNhbGxpbmdcLXRvXC1hXC1jYWxmOwor47e2ID4gdG9cLWRyeVwtb3JcLXdhcm1cLW5lYXJcLWFcLWZpcmU7Civjt4MgPiBmaXJlXC1idXJuc1wtZm9yXC1hXC1sb25nXC10aW1lOwor47SUID4gdGhlXC1ub2lzZVwtb2ZcLWZsb3dpbmdcLXdhdGVyOwor47SLID4gZGVlcFwtYW5kXC1jbGVhclwtXC10b1wtdXJpbmF0ZTsKK+OzpyA+IHRoZVwtd2F0ZXJcLWZsb3dpbmdcLWZyb21cLVwuXC5cLjsKK+OxvSA+IHRvXC1oaXRcLW9yXC10b1wtc3RyaWtlaGVhdmlseTsKK+OxuyA+IGRpc2Vhc2VzXC1vZlwtZHVtYlwtY3JlYXR1cmVzOwor47GhID4gdGhlXC1zb3VsXC1vdXRcLW9mXC1vbmUnJ3NcLWJvZHk7CivjsZQgPiBhXC1zbWFsbFwtcXVhbnRpdHlcLW9yXC1udW1iZXI7Civjr58gPiBmb290XC1vZlwtYVwtaGlsbFwtb3JcLW1vdW50YWluOwor462uID4gYVwta2luZFwtb2ZcLWxpcXVvclwtY29udGFpbmVyOwor76iMID4gZHVwbGljYXRlXC1vZlwtYmlnXC1maXZlXC1hNDYxOwor76eUID4gbm9ybWFsXC1odW1hblwtcmVsYXRpb25zaGlwczsKK++nhiA+IGFuY2llbnRcLW11c2ljYWxcLWluc3RydW1lbnQ7CivjpoMgPiBwZXJmZWN0XC1wZXJzb25hbFwtY2hhcmFjdGVyOwor46WxID4gdG9cLWJlXC1kZXNpcm91c1wtb2ZcLXNwZWFraW5nOwor46WNID4gdG9cLWJlYXJcLWplYWxvdXNcLWhhdHJlZFwtZm9yOwor46SsID4gZnVsbFwtb2ZcLWFuZ2VyXC1hbmRcLXZleGF0aW9uOwor46SOID4gYVwtbW9kZWxcLW9yXC10eXBpY2FsXC1leGFtcGxlOwor46SEID4gcmFnaW5nXC1hbmltb3NpdHlcLW9yXC1oYXRyZWQ7Civjo6cgPiB0aGVcLXN1Y2Nlc3Npb25cLWluXC1hXC1mYW1pbHk7Civjo6MgPiB0b1wtd2Fsa1wtaW5cLWFuXC11bnN0ZWFkeVwtd2F5Owor46K4ID4gZGV2aWNlXC1mb3JcLXJlZ3VsYXRpbmdcLWJvd3M7CivjorYgPiBkZXZpY2VcLWZvclwtcmVndWxhdGluZ1wtYm93czsKK+OikiA+IGFuXC1hbG1vc3RcLWNvbGxhcHNpbmdcLWhvdXNlOwor45yqID4gbmFtZVwtb2ZcLWFcLWZhbWlseVwtb3JcLWFcLWNsYW47CivjnJUgPiByZWxhdGl2ZXNcLXRocm91Z2hcLW1hcnJpYWdlOwor45uyID4gdGhlXC1oYWlyXC1vblwtdGhlXC1odW1hblwtaGVhZDsKK+OavyA+IGFcLWdvZGRlc3MnJ3NcLW5hbWVcLWluXC1sZWdlbmQ7CivjmaEgPiBhXC1raW5kXC1vZlwtZWF0YWJsZVwtbXVzaHJvb207CivjmLkgPiB0b1wtc3ByZWFkXC1zb2lsXC1vblwtdGhlXC1yb2FkOwor45ikID4gY2lyY2xlXC1vZlwtdGhlXC1tb3ZpbmdcLXdhdGVyOwor45aoID4gaW5kaXN0aW5jdFwtbmFzYWxcLXV0dGVyYW5jZTsKK+OSvSA+IGFcLWtpbmRcLW9mXC1jYXBcLWZvclwtY2hpbGRyZW47CivjkJYgPiBhXC10cmFuc2xhdGVkXC1uYW1lXC1vZlwtaW5kaWE7CivlsYogPiBudW1lcmFyeVwtYWRqdW5jdFwtZm9yXC10aW1lOwor5bGGID4gbnVtZXJhcnlcLWFkanVuY3RcLWZvclwtdGltZTsKK+iwgSA+IHdob1w/XC13aG9tXD9cLXdob3NlXD9cLWFueW9uZVw/Owor6KqwID4gd2hvXD9cLXdob21cP1wtd2hvc2VcP1wtYW55b25lXD87CivpmL8gPiBwcmVmaXhcLWZvclwtcGVvcGxlJydzXC1uYW1lczsKK+iOoiA+IHBvZHNcLW9mXC1sZWd1bWlub3VzXC1wbGFudHM7Civni4QgPiB0cmliZVwtZnJvbVwtbm9ydGhlcm5cLWNoaW5hOwor57mwID4gdG9cLXJlZWxcLXNpbGtcLWZyb21cLWNvY29vbnM7CivmvJMgPiByaXZlclwtaW5cLWd1YW5neGlcLXByb3ZpbmNlOwor5ZKLID4gcXVlc3Rpb25cLWZvcm1pbmdcLXBhcnRpY2xlOwor6bqfID4gZmVtYWxlXC1vZlwtY2hpbmVzZVwtdW5pY29ybjsKK+a4rSA+IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLXNoYW54aTsKK+iKnCA+IGx1eHVyaW91c1wtZ3Jvd3RoXC1vZlwtd2VlZHM7Civnu44gPiB0b1wtdW5yYXZlbFwtb3JcLXVucmVlbFwtc2lsazsKK+eSkCA+IGJlYXV0aWZ1bFwtdmFyaWV0eVwtb2ZcLWphZGU7Civpn7YgPiBtdXNpY1wtb2ZcLXRoZVwtZW1wZXJvclwtc2h1bjsKK+msnyA+IGRyZXNzXC1oYWlyXC1pblwtY29pbGVkXC1rbm90Owor572CID4gbG9uZ1wtbmVja2VkXC1qYXJcLW9yXC1ib3R0bGU7CivpnbMgPiBzdHJhcFwtb25cLWFcLWhvcnNlJydzXC1icmVhc3Q7Civmt6YgPiByaXZlclwtaW5cLWppYW5neGlcLXByb3ZpbmNlOwor5pChID4gdG9cLXB1c2hcLW92ZXJcLW9yXC1wdXNoXC1iYWNrOwor6ImuID4gc2V2ZW50aFwtb2ZcLWVpZ2h0XC1kaWFncmFtczsKK+a5nyA+IHJpdmVyXC1pblwtcWluZ2hhaVwtcHJvdmluY2U7Civms7ggPiByaXZlclwtaW5cLWppYW5neGlcLXByb3ZpbmNlOwor6I2aID4gcG9kc1wtb2ZcLWxlZ3VtaW5vdXNcLXBsYW50czsKK+eMsSA+IGFcLW1vbmtleVwtd2l0aFwteWVsbG93XC1oYWlyOwor5raqID4gcml2ZXJcLWluXC1zaWNodWFuXC1wcm92aW5jZTsKK+S6syA+IG5hbWVcLW9mXC1kaXN0cmljdFwtaW5cLWFuaHVpOwor6JS6ID4gcnVzaFwtdXNlZFwtZm9yXC1tYWtpbmdcLW1hdHM7CivnkKwgPiB0aGVcLXZpcnR1ZVwtb2ZcLWFcLWdlbnRsZW1hbjsKK+ayqSA+IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLXNoYW54aTsKK+eMlyA+IGV4Y2xhbWF0aW9uXC1vZlwtYWRtaXJhdGlvbjsKK+m8mSA+IGRydW1cLWNhcnJpZWRcLW9uXC1ob3JzZWJhY2s7CivolbIgPiB2YXJpZXR5XC1vZlwtYXJ0ZW1pc2lhXC1zZWVrOwor55OeID4geW91bmdcLW1lbG9uc1wtanVzdFwtZm9ybWluZzsKK+i+gSA+IGNhcnRcLXdoZWVsXC13aXRoXC1ub1wtc3Bva2VzOwor6YWGID4gbmFtZVwtb2ZcLXpob3VcLXBlcmlvZFwtc3RhdGU7CivpupAgPiBmZW1hbGVcLW9mXC1jaGluZXNlXC11bmljb3JuOwor6bC8ID4gdGhlXC13ZWF0aGVyXC1vclwtZG9qb1wtbG9hY2g7Civpn5QgPiBhXC13cmFwcGVyXC1vclwtY2FzZVwtZm9yXC1ib3c7CivpmZcgPiBhXC1zdGVlcFwtaGlsbFwuXC1wcmVjaXBpdG91czsKK+mPviA+IHRoZVwtdHJpZ2dlclwtb2ZcLWFcLWNyb3NzYm93Owor6YSgID4gY291bnR5XC1pblwtc2hhbnhpXC1wcm92aW5jZTsKK+mEnCA+IGNvdW50eVwtaW5cLXNoYW54aVwtcHJvdmluY2U7CivphI4gPiBhXC1wbGFjZVwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+mDgyA+IGNvdW50eVwtaW5cLXNoYW54aVwtcHJvdmluY2U7CivovIcgPiBjYXJ0XC13aGVlbFwtd2l0aFwtbm9cLXNwb2tlczsKK+intyA+IHRvXC1wcm9jZXNzXC1vclwtY2FydmVcLWhvcm5zOwor6J2wID4gdmlwZXJhXC1ydXNzZWxpaVwtc2lhbWVuc2lzOwor6JiEID4gdmFyaWV0eVwtb2ZcLWFydGVtaXNpYVwtc2VlazsKK+iVqiA+IGx1eHVyaW91c1wtZ3Jvd3RoXC1vZlwtd2VlZHM7CivokbYgPiBkcmFiYVwtbmVtZXJvc2FcLWJlYmVcLWNhcnBhOwor6IqUID4gYVwtZ2VuZXJhbFwtdGVybVwtZm9yXC1wbGFudHM7CivohqUgPiBlZ2dzXC1vZlwtYmlyZHNcLW9yXC1yZXB0aWxlczsKK+e9jCA+IGxvbmdcLW5lY2tlZFwtamFyXC1vclwtYm90dGxlOwor572DID4gbG9uZ1wtbmVja2VkXC1qYXJcLW9yXC1ib3R0bGU7CivnupEgPiB0b1wtc29mdGVuXC1oZW1wXC1ieVwtYm9pbGluZzsKK+e5uSA+IHRvXC11bnJhdmVsXC1vclwtdW5yZWVsXC1zaWxrOwor57GpID4gYmFtYm9vXC1jb250YWluZXJcLWZvclwtZm9vZDsKK+exnSA+IGFcLXR1YmVcLXRvXC1ob2xkXC1jaG9wc3RpY2tzOwor56y+ID4gYmFtYm9vXC1jb250YWluZXJcLWZvclwtZm9vZDsKK+esjiA+IGJhbWJvb1wtd2l0aFwtYmxhY2tcLXBhdGNoZXM7CivnppggPiBpbXBlcmlhbFwtYW5jZXN0b3JcLXdvcnNoaXA7CivnpIQgPiBwbGFjZVwtaW5cLXNpY2h1YW5cLXByb3ZpbmNlOwor55KqID4gcGVhcmxcLXBlbmRhbnRzXC1vblwtY29yb25ldDsKK+eRvSA+IHRpbmtsaW5nXC1vZlwtamFkZVwtcGVuZGFudHM7CivnjLIgPiBzbW9rZVwtb3JcLWZsYW1lc1wtZnJvbVwtZmlyZTsKK+eAmCA+IHJpdmVyXC1pblwtamlhbmd4aVwtcHJvdmluY2U7Civmuo4gPiByaXZlclwtaW5cLWd1YW5neGlcLXByb3ZpbmNlOwor5rqIID4gbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtc2hhbnhpOwor5rOcID4gYVwtcml2ZXJcLWluXC1oZWJlaVwtcHJvdmluY2U7Civms5IgPiBhXC1yaXZlclwtaW5cLWh1YmVpXC1wcm92aW5jZTsKK+axrSA+IGNvbmZsdWVuY2VcLW9mXC10d29cLXN0cmVhbXM7Civmq70gPiBzaGFwZVwtd29vZFwtYnlcLXVzZVwtb2ZcLWhlYXQ7CivmmawgPiBmaXJzdFwtYmlydGhkYXlcLW9mXC1hXC1jaGlsZDsKK+aCiiA+IHdpc2VcLlwtdG9cLWtub3dcLWludHVpdGl2ZWx5Owor5b2NID4gdG9cLWRyYXdcLWFcLWJvd1wtdG9cLXRoZVwtZnVsbDsKK+W6hSA+IGFuXC1pbnRlcnJvZ2F0aXZlXC1wYXJ0aWNsZTsKK+WsgCA+IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLXNoYW54aTsKK+S1tSA+IHllbGxvd2lzaFwtYmxhY2tcLWFuZFwtd2hpdGU7CivktasgPiBsaWdodFwtcmVkXC15ZWxsb3dpc2hcLWJsYWNrOwor5LSbID4gdG9cLW1ha2VcLWRlY29jdGlvblwtb2ZcLXNhbHQ7Civks7cgPiBhXC1zZWNvbmRcLW5hbWVcLWZvclwtY2hpY2tlbjsKK+SzhiA+IGFcLWtpbmRcLW9mXC1zcGVjaWVzXC1vZlwtbXluYTsKK+SwgiA+IGFcLWNvaWZmdXJlXC13aXRoXC1hXC10b3Brbm90Owor5K+/ID4gYVwtY29pZmZ1cmVcLXdpdGhcLWFcLXRvcGtub3Q7Civkr7wgPiBhXC1jb2lmZnVyZVwtd2l0aFwtYVwtdG9wa25vdDsKK+SvtCA+IGFcLWNvaWZmdXJlXC13aXRoXC1hXC10b3Brbm90Owor5K+yID4gYVwtY29pZmZ1cmVcLXdpdGhcLWFcLXRvcGtub3Q7CivkrpUgPiBob3JzZVwtd2l0aFwtd2hpdGVcLWZvcmVoZWFkOwor5K2oID4gd2luZVwtcG91cmVkXC1pblwtYVwtbGliYXRpb247CivkrL0gPiB3aW5lXC1wb3VyZWRcLWluXC1hXC1saWJhdGlvbjsKK+SrgCA+IHRoZVwtbG93ZXJcLWVuZFwtb2ZcLXRoZVwtamF3czsKK+SpqCA+IGFcLXdyYXBwZXJcLW9yXC1jYXNlXC1mb3JcLWJvdzsKK+SpnSA+IHRvXC10YW5cLWFuZFwtc29mdGVuXC1sZWF0aGVyOwor5KSCID4gYVwtc2Vjb25kXC1uYW1lXC1mb3JcLXZpbmVnYXI7Civko7QgPiB0b1wtbG9zZVwtdGVtcGVyXC13aGVuXC1kcnVuazsKK+SjhiA+IG5hbWVcLW9mXC1hXC1jb3VudHlcLWluXC1nYW9taTsKK+SisiA+IHRvXC1nb1wtYWxsXC10aGVcLXdheVwtZm9yd2FyZDsKK+SiriA+IHJhcGlkXC1tYXJjaGluZ1wtb3JcLXJ1bm5pbmc7CivkoqEgPiB0b1wtc3RhbXBcLXRoZVwtZm9vdFwtZm9yd2FyZDsKK+ShuSA+IHRoZVwtbG93XC1yZWFyXC1vZlwtYVwtY2hhcmlvdDsKK+ShryA+IHNvdW5kXC1vZlwtbW92aW5nXC1jYXJyaWFnZXM7CivkoasgPiBzb3VuZFwtb2ZcLW1vdmluZ1wtY2FycmlhZ2VzOwor5KGhID4gdG9cLWdldFwtdXBcLWludG9cLWFcLWNhcnJpYWdlOwor5KGYID4gc291bmRcLW9mXC1tb3ZpbmdcLWNhcnJpYWdlczsKK+ShkiA+IHNvdW5kXC1vZlwtbW92aW5nXC1jYXJyaWFnZXM7CivkoJUgPiByYXBpZFwtbWFyY2hpbmdcLW9yXC1ydW5uaW5nOwor5Ji4ID4gdGhlXC1sb3dlclwtZnJvbnRcLW9mXC1hXC1yb2JlOwor5JiSID4gYm95JydzXC1yZXByb2R1Y3RpdmVcLW9yZ2FuczsKK+SVhCA+IG1lYXRcLWluXC10aGVcLWZvcm1cLW9mXC1wYXN0ZTsKK+STiyA+IGVsbVwtc2VlZHNcLVwtXC1cLXVzZWRcLWFzXC1mb29kOwor5JGiID4gYVwta25pZmVcLXNoYXBlZFwtc21hbGxcLWJvYXQ7CivkkYggPiBtZWF0XC10b1wtb2ZmZXJcLWZvclwtd29yc2hpcDsKK+SNryA+IGdhb3RcLXdpdGhcLWRpZmZlcmVudFwtaG9ybnM7CivkjaIgPiBuZXR0ZWRcLXZlaW5lZFwtd2luZG93XC1zaWxsOwor5IufID4gdGhlXC13ZWlnaHRcLW9uXC1hXC1zdGVlbHlhcmQ7CivkirYgPiBhXC1yb3BlXC1mb3JcLWxlYWRpbmdcLWNhdHRsZTsKK+SJlyA+IGFcLXJlY2VwdGFjbGVcLW9yXC1jb250YWluZXI7CivkhLggPiBncmFpbnNcLXByb2R1Y2luZ1wtbm9cLWZydWl0Owor5ISSID4gcmlwZW5pbmdcLW9mXC1wYWRkeVwtb3JcLXJpY2U7Civkg4EgPiB1bmV2ZW5cLW9yXC1ydWdnZWRcLXRlcnJhaW5zOwor5IGUID4gYmlnXC1leWVzXC1wcm90dWJlcmFudFwtZXllczsKK+O/sCA+IGR1cmFibGVcLWFuZFwtc29saWRcLWxlYXRoZXI7Civjv4IgPiBvYnN0cmFjdGlvblwtb2ZcLXRoZVwtYm93ZWxzOwor4761ID4gYVwtZGFya1wtY29sb3JlZFwtYmlydGhcLW1hcms7CivjvpwgPiB3ZWFrXC1icmVhdGhcLW9mXC1hXC1zaWNrXC1tYW47Civjvb4gPiBhXC1raW5kXC1vZlwtd29tYW4nJ3NcLWRpc2Vhc2U7Civju48gPiB0aW5rbGluZ1wtb2ZcLWphZGVcLXBlbmRhbnRzOwor47qAID4gYVwtbW9ua2V5XC13aXRoXC15ZWxsb3dcLWhhaXI7CivjuLIgPiBhXC1raW5kXC1vZlwtbW91bnRhaW5cLWNhdHRsZTsKK+O3ryA+IHNtb2tlXC1hbmRcLWR1c3RcLWV2ZXJ5d2hlcmU7CivjtrogPiB0aGVcLWxpZ2h0XC1vclwtZ2xvd1wtb2ZcLWZpcmU7CivjtpogPiBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1zaGFueGk7Civjtb0gPiB0aGVcLXN0cmVuZ3RoXC1vZlwtYVwtY3VycmVudDsKK+OxpSA+IHRoZVwtZXZpbFwtc3Bpcml0c1wtY29tZVwtb3V0Owor47CmID4gdG9cLWJyZWF0aFwtd2l0aFwtbW91dGhcLW9wZW47CivjsJQgPiBhXC1raW5kXC1vZlwtZWRpYmxlXC1tdXNocm9vbTsKK+OwjiA+IGFcLXdvb2RlblwtcGVzdGxlXC1vclwtcmFtbWVyOwor462bID4gYVwta2luZFwtb2ZcLWNsaW1iaW5nXC1wbGFudHM7CivjqaAgPiBhXC1maWVyY2VcLW9yXC1ibG9vZHlcLWJhdHRsZTsKK++nsyA+IGZlbWFsZVwtb2ZcLWNoaW5lc2VcLXVuaWNvcm47CivjppsgPiB0b1wtd2Fsa1wtaW5cLWFcLWNvbXBvc2VkXC13YXk7CivjoJ0gPiBsb2Z0eVwtYW5kXC1zdGVlcFwtbW91bnRhaW5zOwor46CQID4gaGlnaFwtYW5kXC1wb2ludGVkXC1tb3VudGFpbjsKK+OemiA+IHRvXC1waWxlXC11cFwtbGF5ZXJcLWJ5XC1sYXllcjsKK+OcryA+IGFcLXdvcmRcLXRvXC1kZXNpZ25hdGVcLXdvbWFuOwor45yuID4gdG9cLWdvXC1iZXlvbmRcLW5vcm1hbFwtbGltaXQ7CivjmpMgPiB0aWVcLWJlYW1zXC1vZlwtYVwtc21hbGxcLWJvYXQ7CivjmIwgPiB0b1wtbGF1Z2hcLXdpdGhvdXRcLXN0b3BwaW5nOwor45emID4gYVwtbG91ZFwtYW5kXC1jb25mdXNlZFwtbm9pc2U7Civjl5ogPiB2ZXhpbmdseVwtdmVyYm9zZVwtb3JcLXdvcmR5Owor45eVID4gdGhlXC1jcm93aW5nXC1vZlwtYVwtcGhlYXNhbnQ7CivjloQgPiBzb3VuZFwtb2ZcLWNhbGxpbmdcLWNoaWNrZW5zOwor45WaID4gY2xhd3NcLW9mXC1iaXJkc1wtb3JcLWFuaW1hbHM7CivjkLMgPiBoaWdoXC1hbmRcLWxldmVsXC1vblwtdGhlXC10b3A7CivonIAgPiBuYW1lXC1vZlwtYW5cLWFuY2llbnRcLXN0YXRlOwor5rSbID4gcml2ZXJcLWluXC1zaGFueGlcLXByb3ZpbmNlOwor5Y+UID4gZmF0aGVyJydzXC15b3VuZ2VyXC1icm90aGVyOwor57W5ID4ga2luZFwtb2ZcLXRoaWNrXC1zdGlmZlwtc2lsazsKK+e9qSA+IGJhc2tldFwtZm9yXC1jYXRjaGluZ1wtZmlzaDsKK+WktyA+IGFuY2llbnRcLWJhcmJhcmlhblwtdHJpYmVzOwor56CwID4gc291bmRcLW9mXC1jcmFzaGluZ1wtc3RvbmVzOwor5ZOOID4gaW50ZXJqZWN0aW9uXC1vZlwtc3VycHJpc2U7CivmnJQgPiBmaXJzdFwtZGF5XC1vZlwtbHVuYXJcLW1vbnRoOwor5o+jID4gcHV0XC10aGluZ3NcLXVuZGVyXC1jbG90aGVzOwor5bWLID4gb21laVwtbW91bnRhaW5cLWluXC1zaWNodWFuOwor6YK5ID4gbmFtZVwtb2ZcLWFuXC1hbmNpZW50XC1zdGF0ZTsKK+e8iSA+IHRvXC1zZXdcLWluXC1jbG9zZVwtc3RpdGNoZXM7Civnu6IgPiBraW5kXC1vZlwtdGhpY2tcLXN0aWZmXC1zaWxrOwor5Zm2ID4gdXNlZFwtaW5cLXRyYW5zbGl0ZXJhdGlvbnM7CivmsZUgPiBiYXNrZXRcLWZvclwtY2F0Y2hpbmdcLWZpc2g7CivmjrAgPiB0b1wtYnJlYWtcLXdpdGhcLWJvdGhcLWhhbmRzOwor6ZyGID4gYVwtc3VkZGVuXC1wZWFsXC1vZlwtdGh1bmRlcjsKK+a8syA+IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLWhlbmFuOwor5rG+ID4gcml2ZXJcLWluXC1zaGFueGlcLXByb3ZpbmNlOwor5bezID4gc2l4dGhcLW9mXC10d2VsdmVcLWJyYW5jaGVzOwor5rG0ID4gbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtaGVuYW47Civll50gPiBjYWNrbGluZ1wtb2ZcLWZvd2xzXC10b1wtZ2FnOwor5aeYID4gaWxsaWNpdFwtc2V4dWFsXC1yZWxhdGlvbnM7CivpnI8gPiBmYWxsaW5nXC1vZlwtc25vd1wtYW5kXC1yYWluOwor6YO4ID4gY291bnR5XC1pblwtaGViZWlcLXByb3ZpbmNlOwor5ZGmID4gdGhlXC1ibGVhdGluZ1wtb2ZcLXRoZVwtZGVlcjsKK+aOriA+IHRvXC1iZWFyXC1vblwtdGhlXC1zaG91bGRlcnM7CivojoYgPiBhXC1raW5kXC1vZlwtbGVnZW5kYXJ5XC10cmVlOwor6ZihID4gZm9vdHBhdGhzXC1iZXR3ZWVuXC1maWVsZHM7CivpuKogPiBzcGVjaWVzXC1vZlwtdGFpd2FuXC1waWdlb247Civlk5QgPiB1c2VkXC1pblwtdHJhbnNsaXRlcmF0aW9uczsKK+awkCA+IG5hbWVcLW9mXC1hblwtYW5jaWVudFwtdHJpYmU7CivlkaQgPiBwdXJpbmVcLWluXC1jaGVtXC5cLWNvbXBvdW5kOwor5ayXID4gc3VjY2Vzc2lvblwtdG9cLXRoZVwtdGhyb25lOwor5rKjID4gcml2ZXJcLWluXC1zaGFueGlcLXByb3ZpbmNlOwor6KePID4gbWVldFwtb3JcLXNlZVwtdW5leHBlY3RlZGx5Owor5r+uID4gY291bnR5XC1pblwtaGVuYW5cLXByb3ZpbmNlOwor6YO0ID4gY291bnR5XC1pblwtaHVuYW5cLXByb3ZpbmNlOwor6L2+ID4gbG93XC1yZWFyXC1wb3J0aW9uXC1vZlwtY2FydDsKK+eoniA+IGdyYWluXC1yZWFkeVwtZm9yXC1ncmluZGluZzsKK+eBniA+IHJpdmVyXC1pblwtc2hhbnhpXC1wcm92aW5jZTsKK+mDpyA+IGNvdW50eVwtaW5cLWh1YmVpXC1wcm92aW5jZTsKK+i5vCA+IHdlYmJlZFwtZmVldFwtb2ZcLXdhdGVyZm93bDsKK+eUkSA+IGJvaWxlclwtZm9yXC1zdGVhbWluZ1wtcmljZTsKK+WmlyA+IHdpZmVcLW9mXC1tb3RoZXInJ3NcLWJyb3RoZXI7CivmtaAgPiBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1odWJlaTsKK+mzlCA+IHN3aW1taW5nXC1ibGFkZGVyXC1vZlwtZmlzaDsKK+evjCA+IGFuY2llbnRcLW11c2ljXC1pbnN0cnVtZW50Owor56eVID4gZW1wdHlcLWdyYWluXC1vclwtcmljZVwtaHVzazsKK+eQmiA+IG9ybmFtZW50YWxcLWdlbXNcLWZvclwtYmVsdDsKK+mytSA+IGNyeXB0b2JyYW5jaHVzXC1qYXBvbmljdXM7CivoiaggPiBsb25nXC1hbmRcLW5hcnJvd1wtd2FyXC1ib2F0Owor5raRID4gcml2ZXJcLWluXC1zaGFuc2lcLXByb3ZpbmNlOwor6YOPID4gY291bnR5XC1pblwtaGVuYW5cLXByb3ZpbmNlOwor6ZupID4gb2ZmZXJcLXNhY3JpZmljZVwtZm9yXC1yYWluOwor5L2+ID4gYVwtcm93XC1vclwtZmlsZVwtb2ZcLWRhbmNlcnM7CivnvIIgPiB0aGVcLXdvb2ZcLW9mXC1hXC13b3ZlblwtaXRlbTsKK+iJtCA+IHRoZVwtY291bnRlbmFuY2VcLWNoYW5naW5nOwor5ruPID4gbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtaGViZWk7Civpg74gPiBjb3VudHlcLWluXC1oZW5hblwtcHJvdmluY2U7Civpt54gPiB0aGVcLXR1cnF1b2lzZVwta2luZ2Zpc2hlcjsKK+m1gSA+IG15Y3RpY29yYXhcLXByYXNpbm9zY2VsZXM7CivptKMgPiBzcGVjaWVzXC1vZlwtdGFpd2FuXC1waWdlb247CivpsL4gPiBzd2ltbWluZ1wtYmxhZGRlclwtb2ZcLWZpc2g7Civpr6IgPiBjcnlwdG9icmFuY2h1c1wtamFwb25pY3VzOwor6a6wID4gYVwtc21hbGxcLWtpbmRcLW9mXC1zdHVyZ2VvbjsKK+mroCA+IHNoYXZlXC1oZWFkXC1hc1wtcHVuaXNobWVudDsKK+molSA+IG5hbWVcLW9mXC1hXC1mYWJ1bG91c1wtaG9yc2U7Civpn4IgPiBhXC1zYWRkbGVcLWZsYXBcLlwtdHJhcHBpbmdzOwor6Zm0ID4gYVwtcGFyYXBldFwtb25cLWFcLWNpdHlcLXdhbGw7Civpl6QgPiB3YWxsXC1hcm91bmRcLW1hcmtldFwtcGxhY2U7CivphLIgPiBjb3VudHlcLWluXC1oZWJlaVwtcHJvdmluY2U7CivphJcgPiBjb3VudHlcLWluXC1oZWJlaVwtcHJvdmluY2U7CivphJYgPiBjb3VudHlcLWluXC1odWJlaVwtcHJvdmluY2U7CivphJIgPiBuYW1lXC1vZlwtYW5cLWFuY2llbnRcLXN0YXRlOwor6YOfID4gY291bnR5XC1pblwtaGVuYW5cLXByb3ZpbmNlOwor6LyKID4gbG93XC1yZWFyXC1wb3J0aW9uXC1vZlwtY2FydDsKK+i0kSA+IFw8YWJicnZcPlwtamlhbmd4aVwtcHJvdmluY2U7CivoqKEgPiB0b1wtY2hhbnRcLXRvXC1tb2FuXC10b1wtc2lnaDsKK+imryA+IG1lZXRcLW9yXC1zZWVcLXVuZXhwZWN0ZWRseTsKK+ibgSA+IHBvbXBvbmlhXC1tYWN1bGF0aW9jb2xsaXM7CivomIAgPiBmYWxsaW5nXC1sZWF2ZXNcLWFuZFwtYmFya3M7Civol7ogPiBydXNoXC11c2VkXC1pblwtbWFraW5nXC1tYXRzOwor6I+0ID4gc21hbGxcLWJ1ZGRoaXN0XC1tb25hc3Rlcnk7CivojpQgPiBmcml0aWxsYXJpYVwtdmVydGljaWxsYXRhOwor6Iy8ID4gY2hyeXNhbnRoZW11bVwtY29yb25hcml1bTsKK+iJpSA+IGFuXC1vYXJcLW9yXC1wYWRkbGVcLlwtdG9cLXJvdzsKK+iGmSA+IGNhbGxvdXNcLXNraW5cLW9uXC10aGVcLWZlZXQ7CivohZwgPiBxdWlja2VuaW5nXC1vZlwtdGhlXC1mb2V0dXM7CivogrMgPiB0aGVcLWNvcm5lcnNcLW9mXC10aGVcLW1vdXRoOwor57+bID4gbG9va1wtb2ZcLXJ1bXBsZWRcLWZlYXRoZXJzOwor572dID4gbmV0XC1mb3JcLWNhdGNoaW5nXC1yYWJiaXRzOwor57edID4gdG9cLXNld1wtaW5cLWNsb3NlXC1zdGl0Y2hlczsKK+e3mSA+IHRoZVwtd29vZlwtb2ZcLWFcLXdvdmVuXC1pdGVtOwor57eMID4gdGFzc2Vsc1wtaGFuZ2luZ1wtZnJvbVwtaGF0Owor5624ID4gbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtaG9uYW47CivnqJkgPiBncmFpblwtcmVhZHlcLWZvclwtZ3JpbmRpbmc7CivnkqAgPiBhXC1waWVjZVwtb2ZcLXByZWNpb3VzXC1qYWRlOwor5462ID4gbmFtZVwtb2ZcLW9uZVwta2luZFwtb2ZcLWphZGU7CivnjZ4gPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWRvZzsKK+eMlCA+IG5hbWVcLW9mXC1hblwtYW5jaWVudFwtdHJpYmU7CivngaggPiB0aGVcLXJpdmVyXC1nYW5cLWluXC1qaWFuZ3hpOwor54GDID4gcml2ZXJcLWluXC1zaGFueGlcLXByb3ZpbmNlOwor5r+yID4gbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtaHVuYW47CivmuYsgPiByaXZlclwtaW5cLXNoYW54aVwtcHJvdmluY2U7CivmtKcgPiBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1ob25hbjsKK+aopyA+IHphbnRob3h5bHVtXC1haWxhbnRob2lkZXM7CivmpqQgPiBwZXJjaFwtZm9yXC1mb3dsc1wtcm9vc3RcLW9uOwor5qCCID4gYVwta2luZFwtb2ZcLWV2ZXJncmVlblwtdHJlZTsKK+aXoSA+IGNob2tlXC1vblwtc29tZXRoaW5nXC1lYXRlbjsKK+aSiyA+IHRvXC1ydWJcLWJldHdlZW5cLXRoZVwtaGFuZHM7Civmg4wgPiB0b1wtYmVhclwtYVwtZ3J1ZGdlXC1hZ2FpbnN0Owor5bS2ID4gbmFtZVwtb2ZcLWFcLWxlZ2VuZGFyeVwtaGlsbDsKK+W0gSA+IGFcLXBsYWNlXC1pblwtdGFpd2FuXC10YWluYW47CivlsJ4gPiBmdWVsXC11c2VkXC1mb3JcLXNhY3JpZmljZXM7Civlp7ogPiBuYW1lXC1vZlwtYW5cLWFuY2llbnRcLXN0YXRlOwor5aWeID4gdGhlXC1zdHJpZGVcLW1hZGVcLWJ5XC1hXC1tYW47CivlpJcgPiB0b1wtdHVyblwtb3Zlclwtd2hlblwtYXNsZWVwOwor5Ze2ID4gdXNlZFwtaW5cLXRyYW5zbGl0ZXJhdGlvbnM7Civlh5wgPiBzaGl2ZXJcLXdpdGhcLWNvbGRcLW9yXC1mZWFyOwor5YOwID4gYW5jaWVudFwtYWJvcmlnaW5hbFwtdHJpYmU7CivkuoMgPiBuYW1lXC1vZlwtYVwta2luZFwtb2ZcLWFuaW1hbDsKK+S5uiA+IHBhaW50aW5nXC10b29sXC1wbGFjZVwtbmFtZTsKK+S5tiA+IGtvcmVhblwtcGxhY2VcLW5hbWVcLXBob2xoYTsKK+S1giA+IHRvXC1ncmluZFwtd2hlYXRcLXRvXC1wb3dkZXI7CivksrMgPiBiaXJkc1wtZmx5aW5nXC11cFwtYW5kXC1kb3duOwor5LKbID4gYW5cLWFuY2llbnRcLW5hbWVcLWZvclwtdHVuYTsKK+SyhCA+IGFcLWtpbmRcLW9mXC1maWlzaFwtaW5cLW9jZWFuOwor5LCNID4gYVwta2luZFwtb2ZcLWRhcmtcLXJlZFwtcGFpbnQ7CivksIYgPiBiZWF1dGlmdWxcLWFuZFwtaGFpcnlcLW1hbmU7Civkr5YgPiB0aGVcLW11c2NsZXNcLW9mXC10aGVcLXRoaWdoOwor5KyzID4gY2FrZXNcLW1hZGVcLW9mXC1yaWNlXC1mbG91cjsKK+SrryA+IHRvXC10YWtlXC1hXC1jYXN1YWxcLWxvb2tcLWF0Owor5KqAID4ga25vd25cLXRvZ2V0aGVyXC1hc1wtc2FkZGxlOwor5KmqID4ga25vd25cLXRvZ2V0aGVyXC1hc1wtc2FkZGxlOwor5KiSID4gc291bmRcLW9mXC10aGVcLXdhdGVyXC1kcm9wczsKK+SmqCA+IGFcLWRvb3JcLWN1cnRhaW5cLW9yXC1zY3JlZW47CivkpK8gPiBjb250YWluZXJcLWZvclwtdGhpY2tcLXNvdXA7Civko40gPiBuYW1lXC1vZlwtYW5cLWFuY2llbnRcLXN0YXRlOwor5KOFID4gbmFtZVwtb2ZcLWFuXC1hbmNpZW50XC1zdGF0ZTsKK+ShjSA+IHRoZVwtbGluY2hcLXBpblwtb2ZcLWFcLXNoZWVsOwor5J+XID4gdG9cLXN0YW5kXC1mb3JcLWFcLWxvbmdcLXRpbWU7Civkn4MgPiB0b1wtbW92ZVwtb3JcLW1hcmNoXC1zd2lmdGx5Owor5Jq2ID4gdG9cLXNjb2xkXC1pblwtYVwtbG91ZFwtdm9pY2U7CivkmZwgPiBsZWdlbmRhcnlcLW1vdW50YWluXC1kZWl0eTsKK+SZiCA+IGFcLWxvb3NlXC1nYXJtZW50XC1vclwtY2xvYWs7CivkmYcgPiBjbG90aGVzXC1vZlwtY29hcnNlXC1mYWJyaWM7Civkl4IgPiBkaWVteWN0eWx1c1wtcHlycmhvZ2FzdGVyOwor5JSjID4gYVwtdHJpYmVcLWluXC1hbmNpZW50XC10aW1lczsKK+STtCA+IGVkaWJsZVwtZnVuZ3VzXC1mcm9tXC10cmVlczsKK+SRjiA+IHNvdXBcLW9mXC1waWcnJ3NcLWludGVzdGluZXM7CivkkLsgPiBiaWdcLXBpZWNlc1wtb2ZcLWRyaWVkXC1tZWF0Owor5JC5ID4gcGVyc2VydmVkXC1hbmRcLWRyaWVkXC1tZWF0Owor5JCwID4gdG9cLW9mZmVyXC1mb29kXC1hc1wtdHJpYnV0ZTsKK+SQgiA+IGZhdFwtb2ZcLWFuaW1hbHNcLW9yXC1wbGFudHM7Civkj6YgPiBmYXRcLW9mXC1hbmltYWxzXC1vclwtcGxhbnRzOwor5I61ID4gdG9cLWxvb2tcLXN0cmFpZ2h0XC1mb3J3YXJkOwor5IqxID4gY2FrZXNcLW1hZGVcLW9mXC1yaWNlXC1mbG91cjsKK+SKkCA+IGZsdWZmeVwtc3R1ZmZlZFwtZHVtcGxpbmdzOwor5IqNID4gdGhpY2tcLWNvbmdlZVwtb3JcLXBvcnJpZGdlOwor5IePID4gdG9cLXBpbGVcLW9uZVwtdXBvblwtYW5vdGhlcjsKK+SEnCA+IGhhcHBpbmVzc1wtYW5kXC13ZWxsXC1iZWluZzsKK+SEliA+IHVzZWRcLWluXC1uYW1lXC1vZlwtYVwtcGVyc29uOwor5IOiID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluXC1sb2Z0eTsKK+SBhyA+IHRvXC1sb29rXC1mb3JcLWFcLXNob3J0XC10aW1lOwor5IC0ID4gdG9cLWxvb2tcLXN0cmFpZ2h0XC1mb3J3YXJkOwor5ICrID4gbmFycm93XC1hbmRcLWRpbVwtZXllXC1zaWdodDsKK+SAqiA+IGJpcmRzXC1mbHlpbmdcLXVwXC1hbmRcLWRvd247Civjv7ogPiBqdXR0aW5nXC1vblwtdGhlXC1lcGlkZXJtaXM7CivjvZIgPiB0aGVcLWNoaWxkcmVuXC1vZlwtYVwtc2lzdGVyOwor47y/ID4gdGhlXC1icmlja1wtd2FsbFwtb2ZcLWFcLXdlbGw7CivjvJsgPiBsb25nXC1uZWNrZWRcLXdpbmVcLXZlc3NlbHM7Civju6ogPiBhXC1raW5kXC1vZlwtamFkZVwtZmluZVwtamFkZTsKK+O2hSA+IGRyaWVkXC11cFwtbW91bnRhaW5cLWNyZWVrczsKK+O1oiA+IGFcLW1hcnNoXC1pblwtYW5jaWVudFwtdGltZXM7CivjtLAgPiBhXC1yaXZlclwtaW5cLWFuY2llbnRcLXRpbWVzOwor47SsID4gYVwtcml2ZXJcLWluXC1hbmNpZW50XC10aW1lczsKK+OzpSA+IGFcLXJpdmVyXC1pblwtYW5jaWVudFwtdGltZXM7Civjs50gPiBhXC1yaXZlclwtaW5cLWFuY2llbnRcLXRpbWVzOwor47OPID4gYVwtcml2ZXJcLWluXC1hbmNpZW50XC10aW1lczsKK+OzjSA+IGFcLXBsYWNlXC1pblwtYW5jaWVudFwtdGltZXM7Civjs4sgPiBhXC1yaXZlclwtaW5cLWFuY2llbnRcLXRpbWVzOwor47OKID4gdGhlXC1mbG93aW5nXC1vZlwtdGhlXC13YXRlcjsKK+OzgCA+IGFcLXJpdmVyXC1pblwtYW5jaWVudFwtdGltZXM7CivjsoogPiB0b1wtdW5kZXJzdGFuZFwtdGhvcm91Z2hseTsKK+OwviA+IHNvbmdzXC1vZlwtdGhlXC1wZW9wbGVcLW9mXC3mpZo7CivjsL0gPiB0b1wtZXhlcnRcLW9uZXNlbGZcLXRvXC15ZWxsOwor46+rID4gYVwtd2F0dGxlXC1vclwtYmFtYm9vXC1mZW5jZTsKK+OupiA+IGJyYW5jaGVzXC1ncm93aW5nXC11cHdhcmRzOwor46qbID4gdG9cLXBvdW5kXC1yb2Nrc1wtdG9cLXBpZWNlczsKK+OqmSA+IHRvXC1nb1wtdG9cLXRoZVwtdmVyeVwtc291cmNlOwor46mtID4gdG9cLWRpc3R1cmJcLW9yXC10b1wtYWdpdGF0ZTsKK++nsCA+IHJ1c2hcLXVzZWRcLWluXC1tYWtpbmdcLW1hdHM7CivvpZQgPiBzaGl2ZXJcLXdpdGhcLWNvbGRcLW9yXC1mZWFyOwor76SVID4gcml2ZXJcLWluXC1zaGFueGlcLXByb3ZpbmNlOwor46GqID4gdGhlXC12YXJuaXNoXC1vblwtdGhlXC1mbG9vcjsKK+OhpyA+IHRvXC1zdHJldGNoXC1vcGVuXC1wYWludGluZzsKK+OghyA+IG5hbWVcLW9mXC1hXC1tb3VudGFpblwtcmlkZ2U7CivjnL8gPiBuYW1lXC1vZlwtYVwtZmlzaFwtaW5cLWxlZ2VuZDsKK+OanSA+IHRoZVwtc3RyaWRlXC1tYWRlXC1ieVwtYVwtbWFuOwor45epID4gc291bmRcLW9mXC1lbmR1cmVcLWNvbGRuZXNzOwor45enID4gdG9cLXNjb2xkXC13aXRoXC1sb3VkXC12b2ljZTsKK+OXjCA+IHRvXC1zY29sZFwtd2l0aFwtbG91ZFwtdm9pY2U7Civjl4AgPiB0aGVcLWJsZWF0aW5nXC1vZlwtdGhlXC1kZWVyOwor45OhID4gdGhlXC1taWRkbGVcLXBhcnRcLW9mXC1hXC1ib3c7CivjkKggPiBhXC1raW5kXC1vZlwtZmlzaFwtaW5cLWxlZ2VuZDsKK+eepSA+IHRha2VcLWZsZWV0aW5nXC1nbGFuY2VcLWF0Owor5beeID4gYWRtaW5pc3RyYXRpdmVcLWRpdmlzaW9uOwor5ZCnID4gZW1waGF0aWNcLWZpbmFsXC1wYXJ0aWNsZTsKK+afkCA+IGNlcnRhaW5cLXRoaW5nXC1vclwtcGVyc29uOwor56WoID4gc2xpcFwtb2ZcLXBhcGVyXC1vclwtYmFtYm9vOwor6IC2ID4gdXNlZFwtaW5cLXRyYW5zbGl0ZXJhdGlvbjsKK+WOmCA+IHRob3VzYW5kdGhcLXBhcnRcLW9mXC10YWVsOwor5b2tID4gbmFtZVwtb2ZcLWFuY2llbnRcLWNvdW50cnk7CivogrQgPiBjb29rZWRcLW9yXC1wcmVwYXJlZFwtbWVhdDsKK+S/jiA+IGNob3BwaW5nXC1ib2FyZFwtb3JcLWJsb2NrOwor5reuID4gcml2ZXJcLWluXC1hbmh1aVwtcHJvdmluY2U7Civpg6EgPiBhZG1pbmlzdHJhdGl2ZVwtZGl2aXNpb247Civlk6YgPiBvaFw/XC1yZWFsbHlcP1wtaXNcLXRoYXRcLXNvXD87CivplKQgPiBiYWxhbmNlXC13ZWlnaHRcLW9uXC1zY2FsZTsKK+S7niA+IGFuY2llbnRcLXVuaXRcLW9mXC1tZWFzdXJlOwor6IqtID4gcGxhbnRhaW5cLW9yXC1iYW5hbmFcLXBhbG07Civno4ogPiBwaWxlXC1vZlwtcm9ja3NcLW9yXC1zdG9uZXM7CivlkbggPiBleHByZXNzaW9uXC1vZlwtcmVwcmltYW5kOwor5ou3ID4gdG9ydHVyZVwtYW5kXC1pbnRlcnJvZ2F0ZTsKK+aKvyA+IHB1Y2tlclwtdXBcLWxpcHNcLWluXC1zbWlsZTsKK+WNiSA+IGdlbmVyYWxcLXRlcm1cLWZvclwtcGxhbnRzOwor6au7ID4gaGFpclwtcm9sbGVkXC11cFwtaW5cLWFcLWJ1bjsKK+ijhiA+IGNyb3RjaFwtb3JcLXNlYXRcLW9mXC1wYW50czsKK+iYkSA+IHR5cGVcLW9mXC1lZGlibGVcLW11c2hyb29tOwor5ZK/ID4gZGVzY3JpcHRpdmVcLW9mXC1jcmVha2luZzsKK+evviA+IGJhbWJvb1wtc3BsaW50c1wtb3JcLXNsYXRzOwor5reHID4gcml2ZXJcLWluXC1oZW5hblwtcHJvdmluY2U7Civok5EgPiByYWluXC1jb2F0XC1tYWRlXC1vZlwtc3RyYXc7CivmqqwgPiB0eXBlXC1vZlwtbG9jdXN0XC1vcmFjYWNpYTsKK+a3mSA+IGd1cmdsaW5nXC1zb3VuZFwtb2ZcLXdhdGVyOwor5q6TID4gZHJlc3NcLWNvcnBzZVwtZm9yXC1idXJpYWw7CivnkKUgPiBqZXdlbFwtaW5cLXNoYXBlXC1vZlwtdGlnZXI7CivmvZ4gPiByaXZlclwtaW5cLW5vcnRoZXJuXC1jaGluYTsKK+mGjSA+IGVzc2VudGlhbFwtb2lsXC1vZlwtYnV0dGVyOwor5aavID4gd2l2ZXNcLW9mXC1vbmUnJ3NcLWJyb3RoZXJzOwor5biPID4gY3VydGFpblwtdGhhdFwtZm9ybXNcLXdhbGw7Civnk5IgPiBjZXJlbW9uaWFsXC1saWJhdGlvblwtY3VwOwor5rS5ID4gcml2ZXJcLWluXC1oZW5hblwtcHJvdmluY2U7CivnkZcgPiBsYXJnZVwtcmluZ1wtb2ZcLWZpbmVcLWphZGU7Civmtp4gPiByaXZlclwtaW5cLWhlYmVpXC1wcm92aW5jZTsKK+eIuyA+IGRpYWdyYW1zXC1mb3JcLWRpdmluYXRpb247CivplJ8gPiBhbmNpZW50XC10cmVhc3VyZWRcLXN3b3JkOwor6IqXID4gZnJhZ3JhbnRcLXNtZWxsXC1vZlwtZ3JhaW47CivmpaYgPiBhXC1sYXN0XC1mb3JcLW1ha2luZ1wtc2hvZXM7CivoiIEgPiBjYXJyeVwtb25cLW9uZScnc1wtc2hvdWxkZXI7Civmu6AgPiByaXZlclwtaW5cLWh1YmVpXC1wcm92aW5jZTsKK+m8jyA+IGNvdmVyXC1vZlwtdHJpcG9kXC1jYWxkcm9uOwor6buwID4geW91bmdcLWdpcmwnJ3NcLWhhaXJcLXN0eWxlOwor6ayCID4gdGhlXC1oYWlyXC1vblwtdGhlXC10ZW1wbGVzOwor6aeuID4gYVwta2luZFwtb2ZcLWZpZXJjZVwtYW5pbWFsOwor6YyYID4gYmFsYW5jZVwtd2VpZ2h0XC1vblwtc2NhbGU7CivpjJUgPiBhbmNpZW50XC10cmVhc3VyZWRcLXN3b3JkOwor6YS+ID4gcGxhY2VcLWluXC1odWJlaVwtcHJvdmluY2U7CivphKwgPiBwbGFjZVwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+mEpCA+IHBsYWNlXC1pblwtaGVuYW5cLXByb3ZpbmNlOwor6YSYID4gc3RhdGVcLWluXC1oZW5hblwtcHJvdmluY2U7CivphI8gPiBwbGFjZVwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+mEgCA+IHN0YXRlXC1pblwtaGVuYW5cLXByb3ZpbmNlOwor6YOwID4gYmlydGhwbGFjZVwtb2ZcLWNvbmZ1Y2l1czsKK+mCpyA+IHRvd25cLWluXC1zaGFueGlcLXByb3ZpbmNlOwor6YKYID4gc3RhdGVcLWluXC1oZW5hblwtcHJvdmluY2U7CivopaAgPiBjcm90Y2hcLW9yXC1zZWF0XC1vZlwtcGFudHM7CivomrsgPiBzbWFsbFwtc3BlY2llc1wtb2ZcLWNpY2FkYTsKK+iWjCA+IGZyYWdyYW50XC1zbWVsbFwtb2ZcLWdyYWluOwor6JKxID4gZ2FtYmxpbmdcLWdhbWVcLXdpdGhcLWRpY2U7CivokacgPiBoZWxlb2NoYXJpc1wtcGxhbnRhZ2luZWE7CivoiLIgPiBzbWFsbFwtYm9hdFwtd2l0aFwtd2luZG93czsKK+e+qyA+IHRoZVwtc2tlbGV0b25cLW9mXC1hXC1zaGVlcDsKK+e9vSA+IGFcLWtpbmRcLW9mXC13b29sZW5cLWZhYnJpYzsKK+eyuiA+IHBvbGlzaGVkXC1yaWNlXC1vclwtbWlsbGV0Owor56+nID4gY3JlZWxcLWZvclwtdHJhcHBpbmdcLWZpc2g7Civnr5sgPiBjdXRpY2xlXC1vZlwtYmFtYm9vXC1wbGFudDsKK+ellCA+IHdvcnNoaXBcLW9uZScnc1wtYW5jZXN0b3JzOwor552WID4gdG9cLXN0YXJlXC1zdHJhaWdodFwtYWhlYWQ7CivnnKIgPiBleWVzXC13aXRob3V0XC1icmlnaHRuZXNzOwor55W+ID4gZmllbGRzXC1kaXZpZGVkXC1ieVwtZGlrZXM7Civnk5ogPiBjZXJlbW9uaWFsXC1saWJhdGlvblwtY3VwOwor55KyID4gcGVuZGFudFwtZ2lyZGxlXC1vcm5hbWVudDsKK+eRvyA+IGFcLWJsYWNrXC1zdG9uZVwtbGlrZVwtamFkZTsKK+eRryA+IGtpbmRcLW9mXC13aGl0ZVwtY29ybmVsaWFuOwor55GiID4gZ2VtXC1vcm5hbWVudHNcLWZvclwtYmVsdHM7Civnj7YgPiB3aGl0ZVwtamFkZVwtd29yblwtb25cLWJlbHQ7CivnjpUgPiBpbmZlcmlvclwtdmFyaWV0eVwtb2ZcLWdlbTsKK+eMiCA+IGRvZ1wtd2l0aFwtc2hvcnRcLXNoaW5ib25lOwor54GEID4gcml2ZXJcLWluXC1odWJlaVwtcHJvdmluY2U7CivngLwgPiByaXZlclwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+eAjSA+IHJpdmVyXC1pblwtaGVuYW5cLXByb3ZpbmNlOwor5r+cID4gcml2ZXJcLWluXC1odWJlaVwtcHJvdmluY2U7CivmvrQgPiByaXZlclwtaW5cLWh1YmVpXC1wcm92aW5jZTsKK+a+iSA+IHRvXC13YXNoXC1uYW1lXC1vZlwtYVwtcGxhY2U7CivmvZYgPiBuYW1lXC1vZlwtYVwtY2VydGFpblwtcml2ZXI7CivmvLcgPiByaXZlclwtaW5cLWhlYmVpXC1wcm92aW5jZTsKK+a8iiA+IHJpdmVyXC1pblwtaHViZWlcLXByb3ZpbmNlOwor5rquID4gcml2ZXJcLWluXC1oZW5hblwtcHJvdmluY2U7CivmuqAgPiByaXZlclwtaW5cLWh1YmVpXC1wcm92aW5jZTsKK+a3tiA+IHJpdmVyXC1pblwtaGViZWlcLXByb3ZpbmNlOwor5raWID4gcml2ZXJcLWluXC1oZWJlaVwtcHJvdmluY2U7Civmta0gPiByaXZlclwtaW5cLWhlYmVpXC1wcm92aW5jZTsKK+a0uiA+IHJpdmVyXC1pblwtaGViZWlcLXByb3ZpbmNlOwor5rSoID4gcml2ZXJcLWluXC1oZWJlaVwtcHJvdmluY2U7Civmrq4gPiBkcmVzc1wtY29ycHNlXC1mb3JcLWJ1cmlhbDsKK+aumSA+IHRvXC1kaWVcLWJ5XC10YWtpbmdcLXBvaXNvbjsKK+atgSA+IHVuc2F0aXNmaWVkXC1cKG9mXC1lYXRpbmdcKTsKK+asqCA+IHRvXC1ibG93XC1vclwtYnJlYXRoZVwtdXBvbjsKK+asjyA+IHRyZWVcLXRoZVwtaG9yc2VcLWNoZXN0bnV0Owor5qqHID4gd29vZGVuXC1yYW1tZXJcLW9yXC1wZXN0bGU7CivmqZQgPiBhXC13b29kZW5cLWNob3BwaW5nXC1ibG9jazsKK+alpSA+IGFcLWxhc3RcLWZvclwtbWFraW5nXC1zaG9lczsKK+aavCA+IHRha2VcLWZsZWV0aW5nXC1nbGFuY2VcLWF0Owor5oC4ID4gY25zXC0yXC0yYTQwXC1pc1wtZGlmZmVyZW50Owor5bmDID4gY3VydGFpblwtdGhhdFwtZm9ybXNcLXdhbGw7CivlooQgPiB0aGVcLXN0ZXBzXC1vZlwtYVwtc3RhaXJ3YXk7CivllasgPiBpbnRlcmplY3Rpb25cLW9mXC13YXJuaW5nOwor5ZCaID4gdXNlZFwtdG9cLXJlcHJlc2VudFwtc291bmQ7CivljIEgPiBqYXBhbmVzZVwtdW5pdFwtb2ZcLXdlaWdodDsKK+S7viA+IHRvXC1oYW5nXC1vclwtYm93XC10aGVcLWhlYWQ7Civku60gPiBhbmNpZW50XC11bml0XC1vZlwtbWVhc3VyZTsKK+S2nSA+IGdyb3dpbmdcLWlycmVndWxhclwtdGVldGg7CivktYggPiB1bnNtZWx0ZWRcLWhlbXBcLWFuZFwtc2lsazsKK+S1gCA+IGNvYXJzZVwtY3J1bWJzXC1vZlwtYmFybGV5Owor5LSRID4gYVwtbGVnZW5kYXJ5XC13ZWlyZWRcLWJpcmQ7CivktIcgPiBhXC1zZWNvbmRcLW5hbWVcLWZvclwtY3JhbmU7CivktIEgPiBhXC1raW5kXC1vZlwtcmF0XC1saWtlXC1iaXJkOwor5LOyID4gYVwtc3dhcm1cLW9mXC1mbHlpbmdcLWJpcmRzOwor5LK0ID4gYVwta2luZFwtb2ZcLXZlbm9tb3VzXC1iaXJkOwor5LG+ID4gYVwtY2FycFwtbGlrZVwtc2F2b3J5XC1maXNoOwor5LCrID4gbmltYmxlXC1hbmRcLWFjdGl2ZVwtZ2hvc3Q7CivkrYcgPiB0b1wtYmVcLWNob2NrZWRcLXdpdGhcLWZvb2Q7CivkrYYgPiBzbWFsbFwtY2hpbGRyZW5cLWVhdFwtbGVzczsKK+SssiA+IHRvXC1lYXRcLXRvXC10aGVcLWhhbGZcLWZ1bGw7CivkrKogPiBhXC1raW5kXC1vZlwtY29va2VkXC1ub29kbGU7CivkrJsgPiB0aGVcLXJvYXJpbmdcLW9mXC10aGVcLXdpbmQ7CivkqJcgPiBleGNlc3NpdmVcLXJhaW5cLWFuZFwtc25vdzsKK+SohSA+IHNtYWxsXC1iaXJkc1wtXC1cLVwtdGhlXC13cmVuOwor5KWWID4gc2lsdmVyXC1vZlwtZ29sZFwtZmlsYWdyZWU7CivkpY8gPiB1bmZpdHRlZFwtZm9yXC1lYWNoXC1vdGhlcjsKK+SkpSA+IGFncmljdWx0dXJhbFwtaW1wbGVtZW50czsKK+SinCA+IHRoZVwtbWFycmlhZ2VcLW9mXC1hXC13b21hbjsKK+ShvSA+IHRoZVwtc2hhZnRzXC1vZlwtYVwtdmVoaWNsZTsKK+ShuiA+IHRoZVwtZW5kXC1vZlwtYW5cLWF4bGVcLXRyZWU7CivkoaMgPiBhXC1waWVjZVwtb2ZcLWN1cnZlZFwtYm9hcmQ7CivkoKMgPiBuZXRcLXRvXC10cmFwXC10aGVcLWFuaW1hbHM7CivknYggPiBhXC1iaWdcLWFuZFwtc3RyZW51b3VzXC1waWc7CivkmpAgPiBnZXR0aW5nXC1yZWRcLWluXC10aGVcLWV5ZXM7CivkmoogPiB0b1wtbG9va1wtZnJvbVwtYVwtZGlzdGFuY2U7CivkmZAgPiBmdXJzXC1hbmRcLWxpbmVuXC1nYXJtZW50czsKK+SYhiA+IGFcLXNlY29uZFwtZm9ybVwtZWFydGh3b3JtOwor5JegID4gdGhlXC1sYXJ2YVwtb2ZcLW1vc3F1aXRvZXM7Civkl5QgPiBhXC1ob3VzZVwtbGl6YXJkXC1vclwtZ2Vja287CivklrEgPiBsYXJnZVwtc2hyaW1wXC1pblwtdGhlXC1zZWE7CivklL4gPiBhXC1raW5kXC1vZlwtZnJhZ3JhbnRcLWhlcmI7Civkk7EgPiBhXC1raW5kXC1vZlwtaGVyYlwtbWVkaWNpbmU7CivkkpYgPiBhXC1raW5kXC1vZlwtaGVyYlwtbWVkaWNpbmU7CivkkpUgPiBhXC1raW5kXC1vZlwtaGVyYlwtbWVkaWNpbmU7CivkkKQgPiBkcmllZFwtYW5kXC1zZWFzb25lZFwtbWVhdDsKK+SQkCA+IGN1cnZlZFwtcGFydFwtb2ZcLXRoZVwta25lZTsKK+SPmSA+IGJyaW5lXC1mcm9tXC1waWNrbGVkXC1tZWF0Owor5I+VID4gdG9cLWNvb2tcLWZvb2RcLXRob3JvdWdobHk7CivkjqcgPiBhZ3JpY3VsdHVyYWxcLWltcGxlbWVudHM7CivkjbkgPiBvZG9yXC1vZlwtYVwtc2hlZXBcLW9yXC1nb2F0Owor5I2ZID4gbmV0c1wtZm9yXC1jYXRjaGluZ1wtYmlyZHM7CivkjZggPiBhXC1nZW5lcmFsXC10ZXJtXC1mb3JcLW5ldHM7CivkjZMgPiBuZXRcLWZvclwtY2F0Y2hpbmdcLXJhYmJpdDsKK+SLqyA+IHRvXC13aW5kXC1yb3VuZFwtdGhlXC1yb3BlczsKK+SLqCA+IHRvXC1zZXRcLWluXC1vcmRlclwtdGhlXC1vbGQ7CivkirQgPiBmb29kXC1tYWRlXC1vZlwtcmljZVwtZmxvdXI7CivkiqogPiBjb2Fyc2VcLXJpY2VcLVwtXC1cLXVuaHVsbGVkOwor5ImcID4geW91bmdcLWFuZFwtdGVuZGVyXC1iYW1ib287CivkiZYgPiBmcmFtZXdvcmtcLW9mXC1hXC1jYXJyaWFnZTsKK+SHlyA+IGJhbWJvb1wtd2l0aFwtbG9uZ1wtam9pbnRzOwor5IeRID4gYVwtc3RhbmRpbmdcLXNob3J0XC1wZXJzb247CivkhoogPiB1bmh1c2tlZFwtZ2x1dGlub3VzXC1yaWNlOwor5IaJID4gdGhlXC1zd2luZ1wtb2ZcLXJpY2VcLXBsYW50Owor5IOJID4gYVwtc3RvbmVcLXJlc2VtYmxpbmdcLWphZGU7CivkgYwgPiB0b1wtc2VlXC1mb3JcLWFcLXNob3J0XC10aW1lOwor476AID4gdG9cLWJlXC13ZWFrZWRcLWJ5XC1kaXNlYXNlOwor4726ID4gdG9cLWJlXC13ZWFrZWRcLWJ5XC1kaXNlYXNlOwor4724ID4gZGlzZWFzZXNcLW9mXC10aGVcLWFiZG9tZW47CivjvZogPiBhZ3JpY3VsdHVyYWxcLWltcGxlbWVudHM7CivjvKcgPiB0aWxlc1wtaW5cLWN5bGluZGVyXC1zaGFwZTsKK+O5siA+IGFcLWZyaWdodGVuZWRcLXBpZ1wtb3JcLWRvZzsKK+O5riA+IGFcLWtpbmRcLW9mXC1hbmltYWxcLVwtdGFwaXI7CivjuZ0gPiBhXC1sZWdlbmRhcnlcLXdpbGRcLWFuaW1hbDsKK+O5kSA+IGFcLWZvdXJcLXllYXJzXC1vbGRcLWNhdHRsZTsKK+O5iiA+IGFcLWNhdHRsZVwtb2ZcLXdoaXRlXC1jb2xvcjsKK+O5hiA+IHRoZVwtY291bHRlclwtb2ZcLWFcLXBsb3VnaDsKK+O4iyA+IG1lYXRzXC11c2VkXC1pblwtc2FjcmlmaWNlOwor47euID4gc2NvcmNoZWRcLW9yXC1idXJuZWRcLXdvb2Q7Civjt6sgPiBmaXJlXC1jYXVzaW5nXC1ieVwtZHJ5bmVzczsKK+O2tSA+IHRvXC1jb29rXC1mb29kXC10aG9yb3VnaGx5Owor47aSID4gdGhlXC1jdXJyZW50XC1vZlwtYVwtc3RyZWFtOwor47SyID4gYVwtcml2ZXJcLWluXC1hbmNpZW50XC10aW1lOwor47SRID4gdG9cLXRyYWNlXC11cFwtdG9cLWFcLXNvdXJjZTsKK+O0jyA+IHRoZVwtcG9uZFwtd2F0ZXJcLWlzXC1zdGlsbDsKK+OyvyA+IGV4dGVuc2l2ZVwtYm9keVwtb2ZcLXdhdGVyOwor47KEID4gdW5idXJudFwtYnJpY2tzXC1vclwtdGlsZXM7CivjsawgPiBjYW5ub3RcLXJlY29nbml6ZVwtcGVvcGxlOwor47GVID4gdGhlXC1tYXJyaWFnZVwtb2ZcLWFcLXdvbWFuOwor46+ZID4gdGhlXC1idWNrdGhvcm5cLW9yXC1qdWp1YmU7Civjrb4gPiB0b1wtY3V0XC10aGVcLXRpbWJlclwtYXBhcnQ7CivjrYMgPiB0aGVcLWxhcmdlXC1yb3BlXC1vZlwtYVwtbmV0Owor462CID4gaGVpZ2h0XC1vZlwtdGhlXC1lbmRcLXBvaW50Owor46y7ID4gaW5cLWJldHdlZW5cLW9mXC10aGVcLWZsZXNoOwor46evID4gYVwtYnVja2V0XC1tYWRlXC1vZlwtd2lsbG93Owor46elID4gdG9cLW5pcFwtd2l0aFwtdGhlXC1maW5nZXJzOwor46a9ID4gd2l0aFwtZWxlZ2FudFwtYXBwZWFyYW5jZTsKK+OmuiA+IGFcLWxhbmNlXC13aXRoXC10d29cLXBvaW50czsKK+OmuCA+IGFcLWxhbmNlXC13aXRoXC10d29cLXBvaW50czsKK++mpSA+IGRyZXNzXC1jb3Jwc2VcLWZvclwtYnVyaWFsOwor46aHID4gYVwtcGVhY2VmdWxcLW9yXC1lYXN5XC1tb29kOwor76WHID4gcGlsZVwtb2ZcLXJvY2tzXC1vclwtc3RvbmVzOwor46WFID4gdXNlZFwtaW5cLWFcLXBlcnNvbicnc1wtbmFtZTsKK+OkjCA+IHRvXC1oYXZlXC1vbmUnJ3NcLWhlYXJ0XC1vd247Civjo7sgPiB0b1wtcmVtZWR5XC1ieVwtcHVuaXNobWVudDsKK+OjqiA+IHRvXC13YWxrXC13aXRoXC1zbG93XC1zdGVwczsKK+OjhiA+IHRvXC1sb29zZVwtdGhlXC1ib3dcLXN0cmluZzsKK+OiviA+IHRoZVwtY3VydmVkXC1lbmRcLW9mXC1hXC1ib3c7CivjorUgPiBwb3dlcmZ1bFwtYW5kXC1zdHJvbmdcLWJvdzsKK+OhuSA+IHRvXC1yZWx5XC11cG9uXC1lYWNoXC1vdGhlcjsKK+OhkiA+IGFcLWNhbGljb1wtc2Fja1wtZm9yXC1ncmFpbjsKK+OhjyA+IHRvXC1jdXRcLWFcLXN0cmlwXC1vZlwtY2xvdGg7CivjnrwgPiB0b1wtcmVzcGVjdGZ1bGx5XC1yZWNlaXZlOwor45qsID4gYVwtbGFkeVwtc3RhcnRcLXRvXC1kb2xsXC11cDsKK+OaliA+IHRvXC1jb21lXC1vdXRcLXRvXC10aGVcLW9wZW47CivjmYogPiBhblwtYXJlYVwtb2ZcLWxldmVsXC1ncm91bmQ7CivjlbggPiBzb3VuZFwtb2ZcLXJvbGxpbmdcLWFcLWJvYXQ7CivjlacgPiB1c2VkXC10b1wtcmVwcmVzZW50XC1zb3VuZDsKK+OUpCA+IHRvXC1leGVydFwtb25lJydzXC1zdHJlbmd0aDsKK+OTpyA+IGFncmljdWx0dXJhbFwtaW1wbGVtZW50czsKK+OSpCA+IHRvXC1oYXZlXC1vbmUnJ3NcLWhlYXJ0XC13b247CivjkpkgPiB0b1wtaGFuZFwtb3JcLWJvd1wtdGhlXC1oZWFkOwor5LmIID4gaW50ZXJyb2dhdGl2ZVwtcGFydGljbGU7CivooqsgPiBwYXNzaXZlXC1pbmRpY2F0b3JcLScnYnknJzsKK+eUsyA+IHRvXC1zdGF0ZVwtdG9cLWFcLXN1cGVyaW9yOwor5bKhID4gcmlkZ2VcLW9yXC1jcmVzdFwtb2ZcLWhpbGw7CivnkLQgPiBjaGluZXNlXC1sdXRlXC1vclwtZ3VpdGFyOwor5ayMID4gc2VkdWN0aXZlXC1hbmRcLWxvdmVhYmxlOwor572XID4gbmV0XC1mb3JcLWNhdGNoaW5nXC1iaXJkczsKK+aRuCA+IGdlbnRseVwtdG91Y2hcLXdpdGhcLWhhbmQ7Civku7AgPiByYWlzZVwtdGhlXC1oZWFkXC10b1wtbG9vazsKK+iHjSA+IGFiZG9taW5hbFwtYXJlYVwtb2ZcLWNyYWI7Civpg5EgPiBzdGF0ZVwtaW5cLXRvZGF5JydzXC1oZW5hbjsKK+e+hSA+IG5ldFwtZm9yXC1jYXRjaGluZ1wtYmlyZHM7CivotK8gPiBhXC1zdHJpbmdcLW9mXC0xMDAwXC1jb2luczsKK+WohyA+IHNlZHVjdGl2ZVwtYW5kXC1sb3ZlYWJsZTsKK+errSA+IHB1dFwtZm9ydGhcLWdyZWF0XC1lZmZvcnQ7Civnp5IgPiBiZWFyZFwtb2ZcLWdyYWluXC1vclwtY29ybjsKK+WlmiA+IHdoZXJlXD9cLXdoYXRcP1wtaG93XD9cLXdoeVw/Owor5YaIID4gcmlkZ2VcLW9yXC1jcmVzdFwtb2ZcLWhpbGw7Civnm48gPiBzbWFsbFwtY3VwXC1vclwtY29udGFpbmVyOwor6JCdID4gdHlwZVwtb2ZcLWNyZWVwaW5nXC1wbGFudDsKK+aipyA+IHN0ZXJjdWxpYVwtcGxhdGFuaWZvbGlhOwor5ZKmID4gZXhwcmVzc2lvblwtb2ZcLXN1cnByaXNlOwor562QID4gYmFtYm9vXC1iYXNrZXRcLW9yXC1jaGVzdDsKK+iwjSA+IGFuXC1pbnRlbGxpZ2VuY2VcLXJlcG9ydDsKK+evsSA+IGJhbWJvb1wtb3JcLXdvb2RlblwtZmVuY2U7CivnkLYgPiBndWl0YXJcLWxpa2VcLWluc3RydW1lbnQ7CivnkLUgPiBndWl0YXJcLWxpa2VcLWluc3RydW1lbnQ7CivmvbogPiBzb3VuZFwtb2ZcLWZsb3dpbmdcLXdhdGVyOwor5Z2zID4gYVwtaG9sbG93XC1pblwtdGhlXC1ncm91bmQ7CivohJAgPiBhYmRvbWluYWxcLWFyZWFcLW9mXC1jcmFiOwor5Z+CID4gZGl0Y2hlc1wtZm9yXC1pcnJpZ2F0aW9uOwor5YCMID4gYXNzaXN0YW50XC1pblwtd2luZVwtc2hvcDsKK+mcgSA+IHRvXC1jbGVhclwtdXBcLWFmdGVyXC1yYWluOwor6YKvID4gY2l0eVwtaW5cLWhlYmVpXC1wcm92aW5jZTsKK+eykSA+IHRzYW1iYVwtXChmb29kXC1pblwtdGliZXRcKTsKK+ibgCA+IGluc2VjdHNcLXRoYXRcLWVhdFwtYm9va3M7Civlq6YgPiBuYW1lXC1vZlwtYVwtbW9vblwtZ29kZGVzczsKK+i1iiA+IGJ1eVwtYW5kXC1zZWxsXC1vblwtY3JlZGl0Owor5byRID4gdG9cLWtpbGxcLW9uZScnc1wtc3VwZXJpb3I7CivmkYEgPiB0b1wtcHJlc3NcLXdpdGhcLXRoZVwtaGFuZDsKK+eVuSA+IGFcLWZpZWxkXC1vZlwtMjBcLW9yXC0zMFwtbXU7Civop5AgPiBoYXZlXC1pbXBlcmlhbFwtYXVkaWVuY2U7CivorqYgPiBleHBvc2VcLW90aGVyJydzXC1zZWNyZXRzOwor5peEID4gYVwta2luZFwtb2ZcLWFuY2llbnRcLWZsYWc7CivotrUgPiBub2lzZVwtb2ZcLXRyYW1waW5nXC1mZWV0Owor6YW5ID4gdG9cLXBvdXJcLW91dFwtYVwtbGliYXRpb247CivlrbMgPiBicmVlZFwtaW5cLWxhcmdlXC1udW1iZXJzOwor5aGEID4gZWxldmF0ZWRcLWJhbmtcLWluXC1maWVsZDsKK+ieiCA+IGRpZW15ZWxpbHVzXC1weXJvZ2FzdGVyOwor56qsID4gYVwtc21hbGxcLWRvb3JcLW9yXC13aW5kb3c7CivnrLEgPiBhXC1iYXNrZXRcLXRyYXBcLWZvclwtZmlzaDsKK+eJvyA+IHNoZWRcLW9yXC1wZW5cLWZvclwtY2F0dGxlOwor6JuYID4gYVwtd2VldmlsXC1mb3VuZFwtaW5cLXJpY2U7CivnlY4gPiBhXC1kcmFpblwtYmV0d2VlblwtZmllbGRzOwor6b2vID4gdGVldGhcLWdyb3duXC1pblwtb2xkXC1hZ2U7CivpuaMgPiBmYWJ1bG91c1wtbXl0aGljYWxcLWJpcmQ7CivptrwgPiBmYWJ1bG91c1wtbXl0aGljYWxcLWJpcmQ7CivpsIYgPiBzY29tYmVyb21vcnVzXC1zaW5lbnNpczsKK+mvmSA+IHNjb21iZXJvbW9ydXNcLXNpbmVuc2lzOwor6a6TID4gbWluY2VkXC1hbmRcLXNhbHRlZFwtZmlzaDsKK+mpjCA+IG5hbWVcLW9mXC1hXC1mYW1vdXNcLWhvcnNlOwor6Z+5ID4gbXVzaWNcLW9mXC1iZWxsXC1hbmRcLWRydW07CivpnL0gPiB0b1wtY2xlYXJcLXVwXC1hZnRlclwtcmFpbjsKK+mbmCA+IGR5ZVwtbWFkZVwtZnJvbVwtcmVkXC1zb2lsOwor6ZiHID4gYVwtYnVkZGhpc3RcLWhpZ2hcLXByaWVzdDsKK+mRkCA+IGJvbHRcLW9mXC1hXC1jaGluZXNlXC1sb2NrOwor6YyGID4gdGhlXC1jb2xvclwtb2ZcLWFcLW1pbmVyYWw7CivphK0gPiBzdGF0ZVwtaW5cLXRvZGF5JydzXC1oZW5hbjsKK+mEkCA+IHRvd25cLWluXC1oZW5hblwtcHJvdmluY2U7CivpgbAgPiBncnVudGluZ1wtc291bmRcLW9mXC1waWdzOwor6L6lID4gdmFyaWV0eVwtb2ZcLW1hcnNoXC1ncmFzczsKK+izkiA+IGJ1eVwtYW5kXC1zZWxsXC1vblwtY3JlZGl0Owor6LKrID4gYVwtc3RyaW5nXC1vZlwtMTAwMFwtY29pbnM7CivosIIgPiBjb25zdWx0XC1jYXJlZnVsbHlcLXdpdGg7Civoq5wgPiBhblwtaW50ZWxsaWdlbmNlXC1yZXBvcnQ7Civoq5cgPiBjb25zdWx0XC1jYXJlZnVsbHlcLXdpdGg7CivoqaogPiBkaWZmaWN1bHR5XC1pblwtc3BlYWtpbmc7CivoqJAgPiBleHBvc2VcLW90aGVyJydzXC1zZWNyZXRzOwor6Ke/ID4gYVwtYm9ka2luXC1tYWRlXC1vZlwtaXZvcnk7CivoprIgPiBoYXZlXC1pbXBlcmlhbFwtYXVkaWVuY2U7CivopoAgPiB2YXJpYW50XC1vZlwtcmFkaWNhbFwtMTQ2Owor6KSfID4gaW5uZXJcLXNoaXJ0XC1vclwtc2luZ2xldDsKK+ihrSA+IHRoZVwtbGFwZWxcLW9mXC1hXC1nYXJtZW50Owor6KGmID4gc21vb3RoXC1vdXRcLXRoZVwtY2xvdGhlczsKK+iYvyA+IHR5cGVcLW9mXC1jcmVlcGluZ1wtcGxhbnQ7CivolZUgPiBjYXJ5b3B0ZXJpc1wtZGl2YXJpY2F0YTsKK+iUryA+IGFcLXZhcmlldHlcLW9mXC1hcnRlbWlzaWE7CivokLQgPiBtZWRpY2luYWxcLXBvaXNvblwtcGxhbnQ7Civoj7YgPiBzcGVjaWVzXC1vZlwtd2F0ZXJcLXBsYW50Owor6I64ID4gY2FyeW9wdGVyaXNcLWRpdmFyaWNhdGE7CivojpkgPiBzcGVjaWVzXC1vZlwtd2F0ZXJcLXBsYW50Owor6ISkID4gcmF3XC1tZWF0XC1mb3JcLXNhY3JpZmljZTsKK+iArCA+IGRyaWxsXC1mb3JcLXNvd2luZ1wtZ3JhaW47CivogKcgPiBkcmlsbFwtZm9yXC1zb3dpbmdcLWdyYWluOwor6ICCID4gdmFyaWFudFwtb2ZcLXJhZGljYWxcLTEyNTsKK+e5piA+IHN0cmluZ1wtb2ZcLWNvcHBlclwtY29pbnM7CivnuYggPiBzdHJpbmdcLW9mXC1jb3BwZXJcLWNvaW5zOwor57eFID4gc2lsa1wtb2ZcLXB1cnBsaXNoXC1jb2xvcjsKK+exrCA+IGJhbWJvb1wtb3JcLXdvb2RlblwtZmVuY2U7Civnr6IgPiB0aGVcLW5hbWVcLW9mXC1iYW1ib29cLWhhdDsKK+etuiA+IGJhbWJvb1wtYmFza2V0XC1vclwtY2hlc3Q7Civnm54gPiBzbWFsbFwtY3VwXC1vclwtY29udGFpbmVyOwor55mKID4gYVwtZGlzZWFzZVwtb2ZcLXRoZVwtaGVhcnQ7CivnkbEgPiBhXC1nZW1cLXVzZWRcLWFzXC1lYXJcLXBsdWc7CivnkKAgPiBhXC1nZW1cLXVzZWRcLWFzXC1lYXJcLXBsdWc7Civnj6MgPiBuYW1lXC1vZlwtYVwta2luZFwtb2ZcLWphZGU7CivnjrwgPiBiZWF1dGlmdWxcLWNvbG9yXC1vZlwtZ2VtOwor54m3ID4gY293XC1vclwtb3hcLW9mXC1vbmVcLWNvbG9yOwor54SEID4gcmlzaW5nXC1mbGFtZXNcLW9yXC1mdW1lczsKK+eDliA+IGNhbGFtaXRpZXNcLWZyb21cLWhlYXZlbjsKK+auoiA+IGJlXC1pblwtZ3JlYXRcLWRpZmZpY3VsdHk7Civmp7EgPiBmaXJld29vZFwtZm9yXC1zYWNyaWZpY2U7CivmnI8gPiBsaWdodFwtb2ZcLWNyZXNjZW50XC1tb29uOwor5peQID4gYW5cLWVtYnJvaWRlcmVkXC1wZW5uYW50Owor5pSZID4gdG9cLWdpdmVcLWFcLWhlbHBpbmdcLWhhbmQ7CivmkbAgPiB0b1wtc2VpemVcLXdpdGhcLXRoZVwtaGFuZDsKK+aRgCA+IHRvXC1jb3Zlclwtd2l0aFwtdGhlXC1oYW5kOwor5pC+ID4gdG9cLWNydXNoXC13aXRoXC10aGVcLWhhbmQ7CivmgLkgPiBhXC1wb2xpdGVcLXZlcnNpb25cLW9mXC1oZTsKK+W8kiA+IHRvXC1raWxsXC1vbmUnJ3NcLXN1cGVyaW9yOwor5bqIID4gdXNlZFwtaW5cLXBlcnNvbicnc1wtbmFtZXM7CivltbYgPiBsb3dcLXBhcnRcLW9mXC1hXC1tb3VudGFpbjsKK+WtkiA+IGxhcnZhZVwtb2ZcLXRoZVwtbW9zcXVpdG87Civlo5YgPiBvcGVuXC1zcGFjZVwtYWxvbmdcLXdhdGVyOwor5ZmAID4gc3BpcnRcLW91dFwtb2ZcLXRoZVwtbW91dGg7Civlj50gPiB0b1wtcmVzcGVjdGZ1bGx5XC1pbmZvcm07CivkvK4gPiB0b1wtbWFrZVwtYVwtZ3JlYXRcLWVmZm9ydDsKK+S2pSA+IHVuZXZlbmx5XC1maXR0aW5nXC10ZWV0aDsKK+S2pCA+IHNvdW5kXC1vZlwtY2hld2luZ1wtYm9uZXM7CivktoIgPiBhXC1zcXVpcnJlbFwtbGlrZVwtYW5pbWFsOwor5LOuID4gdG9cLWxvb2tcLWF0XC1pblwtc3VycHJpc2U7CivkspogPiBhXC1zZWNvbmRcLW5hbWVcLWZvclwtc2hhZDsKK+SwtSA+IGxvb2tzXC1saWtlXC1jb21tb25cLWNhcnA7CivksLAgPiBkcmVhcnlcLWNyaWVzXC1vZlwtZ2hvc3RzOwor5LCtID4gZHJlYXJ5XC1jcmllc1wtb2ZcLWdob3N0czsKK+SuuiA+IGx1eHVyaWFudFwtb2ZcLXRoZVwtZ3Jhc3M7Civkrq0gPiB0b1wtbG9va1wtYXRcLWluXC1zdXJwcmlzZTsKK+SuqiA+IHRvXC1nZWxkXC1hXC1ob3JzZVwtb3JcLWFzczsKK+SpvCA+IHN0aXRjaGVzXC1vblwtYVwtY292ZXJsZXQ7CivkqY0gPiB0b1wtbG9va1wtcGFsZVwtb3JcLXBhbGxpZDsKK+SotSA+IHJhaW5lZFwtZm9yXC1hXC1sb25nXC10aW1lOwor5KisID4gcmFpbmVkXC1mb3JcLWFcLWxvbmdcLXRpbWU7CivkqKEgPiByYWluZWRcLWZvclwtYVwtbG9uZ1wtdGltZTsKK+SmiCA+IHRvXC1zaWdoXC1pblwtbGFtZW50YXRpb247CivkpZ8gPiBhXC1tZXRhbFwtbWFya2luZ1wtXC1zdGFrZTsKK+SijiA+IGluZGljYXRpbmdcLWV4Y2xhbWF0aW9uOwor5KG1ID4gZGVjb3JhdGlvblwtb25cLWNhcnJpYWdlOwor5KGwID4gc3Ryb25nXC1hbmRcLWR1cmFibGVcLWh1YjsKK+ShrCA+IGNvdmVyaW5nXC1vZlwtYVwtY2FycmlhZ2U7CivkoYEgPiBub3RcLXdlbGxcLWZvcm1lZFwtZmlndXJlOwor5J+9ID4gc2NhdHRlcmVkXC1vclwtZGlzcGVyc2VkOwor5J6YID4gdG9cLWdvXC1zdHJhaWdodFwtZm9yd2FyZDsKK+SdoiA+IGFuXC1hbmltYWxcLWluXC1vbGRcLXRpbWVzOwor5J2hID4gYW5cLWFuaW1hbFwtaW5cLW9sZFwtdGltZXM7CivknZMgPiBsb25nXC1iZWFyZFwtb3JcLXdoaXNrZXJzOwor5Jy6ID4gaHVza2luZ1wtYmVhbnNcLWZvclwtY2FrZTsKK+ScoSA+IHRvXC1zbWVsbFwtdGhlXC1mcmFncmFudHM7Civkm5kgPiB0b1wtc21lbGxcLXRoZVwtZnJhZ3JhbmNlOwor5JqeID4gdGhlXC1taWRkbGVcLW9mXC10aGVcLWhvcm47CivkmYQgPiBjbG90aGVzXC13aXRoXC10aGlja1wtaGVtOwor5Ji9ID4gY2xvdGhpbmdcLWFuZFwtb3JuYW1lbnRzOwor5JeQID4gYVwtd2VldmlsXC1mb3VuZFwtaW5cLXJpY2U7CivklbQgPiBhXC1zZWNvbmRcLWZvclwtbW9ua3Nob29kOwor5JSgID4gdGhpblwtcm9vdFwtb2ZcLXRoZVwtbG90dXM7Civkj6kgPiB0b1wtc2hydWdcLXRoZVwtc2hvdWxkZXJzOwor5I2xID4gdGhlXC13aWxkXC1nb2F0XC1vclwtc2hlZXA7Civki6ogPiBmaW5lXC1hbmRcLWRlbGljYXRlXC1zaWxrOwor5IuNID4gZmluZVwtYW5kXC1kZWxpY2F0ZVwtc2lsazsKK+SKjyA+IG1peGluZ1wtcmljZVwtd2l0aFwtYnJvdGg7CivkioMgPiBtaXhpbmdcLXJpY2VcLXdpdGhcLWJyb3RoOwor5IiEID4gYVwta2luZFwtb2ZcLXNvbGlkXC1iYW1ib287Civkh6MgPiBiYW1ib29cLXdpdGhcLXdoaXRlXC1iYXJrOwor5ISgID4gdG9cLXNhY3JpZmljZVwtdG9cLWhlYXZlbjsKK+SDpyA+IHNvdW5kXC1vZlwtZmFsbGluZ1wtcm9ja3M7Civkg5QgPiBzb3VuZFwtb2ZcLWZhbGxpbmdcLXJvY2tzOwor5IKiID4gc291bmRcLW9mXC1mYWxsaW5nXC1yb2NrczsKK+SCoCA+IHNvdW5kXC1vZlwtZmFsbGluZ1wtcm9ja3M7CivkgIQgPiBjb250YWluZXJcLWZ1bGxcLW9mXC1mb29kOwor47+LID4gYVwta2luZFwtb2ZcLXNraW5cLWRpc2Vhc2U7CivjvJ4gPiBqYXJcLXdpdGhcLWFcLXNtYWxsXC1tb3V0aDsKK+O6niA+IHRvXC1zaWduXC1pblwtbGFtZW50YXRpb247CivjuK8gPiBhXC1maW5lXC1icmVlZFwtb2ZcLWNhdHRsZTsKK+O1ryA+IHNvdW5kXC1vZlwtd2F0ZXJcLWZsb3dpbmc7Civjs68gPiBnb2RkZXNzXC1vZlwtYW5cLWlua1wtc2xhYjsKK+OysSA+IGxvbmdcLWJlYXJkXC1vclwtd2hpc2tlcnM7CivjsYYgPiB0b1wtc21pbGVcLWF0XC1lYWNoXC1vdGhlcjsKK+OwvyA+IHRvXC1zaWdoXC1pblwtbGFtZW50YXRpb247CivjsKggPiB0b1wtdGFrZVwtYnJlYXRoXC1vclwtcmVzdDsKK+OukSA+IHNvdW5kXC1vZlwtYnJva2VuXC1zdGlja3M7Civjra8gPiB0cmVlXC13aXRoXC1zbWFsbFwtbGVhdmVzOwor46uKID4gZmx1dHRlcmluZ1wtb2ZcLXRoZVwtZmxhZzsKK+OqoyA+IGFcLXBsYWNlXC1pblwtaGFuXC1keW5hc3R5Owor46qfID4gdG9cLXJlZ2FyZFwtYXNcLWltcG9ydGFudDsKK+OqniA+IHRvXC1iZVwtaGVsZFwtYnlcLXRoZVwtaGFuZDsKK+OpuiA+IGFcLWNyYWNrXC1vblwtdGhlXC11dGVuc2lsOwor46mcID4gdG9cLWJlXC1pblwtcG9zc2Vzc2lvblwtb2Y7CivjqY4gPiB0b1wtcHJlc3NcLXdpdGhcLWFcLWZpbmdlcjsKK+OntiA+IHRoZVwtamluZ2xpbmdcLW9mXC1tZXRhbHM7Civjp5kgPiB0b1wtZ2l2ZVwtYVwtcGxheWZ1bFwtYmxvdzsKK+OngyA+IHRvXC1yZWNlaXZlXC13aGF0XC1pc1wtZHVlOwor46ajID4gdG9cLXRhbGtcLWluXC1vbmUnJ3NcLXNsZWVwOwor46aEID4gaGFyZFwtdG9cLXNheVwtb3JcLXByZWRpY3Q7CivvpJAgPiB0eXBlXC1vZlwtY3JlZXBpbmdcLXBsYW50Owor76SPID4gbmV0XC1mb3JcLWNhdGNoaW5nXC1iaXJkczsKK+OkiiA+IGNoZWVyZnVsXC1hbmRcLWV4dWJlcmFudDsKK+OjmiA+IHRvXC1nb1wtc3RyYWlnaHRcLWZvcndhcmQ7CivjookgPiBhXC1yb29tXC13aXRoXC1vcGVuXC1zcGFjZTsKK+OglCA+IHNoYXBlc1wtb2ZcLXRoZVwtbW91bnRhaW47Civjn7sgPiB0aGVcLW1vYXRcLWFyb3VuZFwtYVwtY2l0eTsKK+ObsyA+IGFuXC1hYm5vbWFsXC11bmJvcm5cLWJhYnk7CivjmrcgPiB0aGVcLWJyZWFzdHNcLW9mXC1hXC13b21hbjsKK+OZsyA+IHJ1Z2dlZG5lc3NcLW9mXC10aGVcLXJvYWQ7CivjmaQgPiBhXC1jcmFja1wtaW5cLWVhcnRoZW53YXJlOwor45mYID4gdXNlZFwtaW5cLW5hbWluZ1wtYVwtcGxhY2U7CivjmK0gPiBhXC1ob2xsb3dcLWluXC10aGVcLWdyb3VuZDsKK+OYrCA+IGFcLWhvbGxvd1wtaW5cLXRoZVwtZ3JvdW5kOwor45eCID4gdG9cLWtlZXBcLXRoZVwtbW91dGhcLXNodXQ7CivjlpAgPiBzb3VuZFwtb2ZcLWNhbGxpbmdcLWR1Y2tzOwor45S0ID4gYWdyaWN1bHR1cmFsXC1pbXBsZW1lbnQ7Civjk7kgPiBhXC1zaGFycFwtcG9pbnRlZFwtd2VhcG9uOwor45OmID4gdG9cLWRlbGliZXJhdGVcLWFuZFwtcGxhbjsKK+OTmCA+IGphZGVcLXdpdGhcLXNvbWVcLWRlZmVjdHM7Civop4kgPiB0b1wtd2FrZVwtdXBcLWZyb21cLXNsZWVwOwor55KwID4gamFkZVwtcmluZ1wtb3JcLWJyYWNlbGV0Owor6Ka6ID4gdG9cLXdha2VcLXVwXC1mcm9tXC1zbGVlcDsKK+immiA+IHRvXC13YWtlXC11cFwtZnJvbVwtc2xlZXA7CivliJIgPiB0b1wtcm93XC1vclwtcGFkZGxlXC1ib2F0Owor5aCqID4gYWRlcXVhdGVseVwtY2FwYWJsZVwtb2Y7Civnjq8gPiBqYWRlXC1yaW5nXC1vclwtYnJhY2VsZXQ7CivlkLQgPiBuYW1lXC1vZlwtd2FycmluZ1wtc3RhdGU7Civps7QgPiBjcnlcLW9mXC1iaXJkXC1vclwtYW5pbWFsOwor5ZGJID4gb25lXC1vZlwtd2FycmluZ1wtc3RhdGVzOwor6aazID4gZ29cLXF1aWNrbHlcLW9yXC1zd2lmdGx5Owor5qaOID4gc21hbGxcLWV2ZXJncmVlblwtc2hydWI7CivpuKMgPiBjcnlcLW9mXC1iaXJkXC1vclwtYW5pbWFsOwor6amwID4gZ29cLXF1aWNrbHlcLW9yXC1zd2lmdGx5Owor5ae7ID4gcmVsYXRpdmVzXC1ieVwtbWFycmlhZ2U7CivnrZIgPiB0aGlja1wtcGllY2VcLW9mXC1iYW1ib287CivluJggPiBmbGFnXC1zaWduXC1vZlwtYVwtdGF2ZXJuOwor56i7ID4gcmljZVwtZ3Jvd2luZ1wtaW5cLWZpZWxkOwor56iyID4gcmljZVwtZ3Jvd2luZ1wtaW5cLWZpZWxkOwor56awID4gb25lJydzXC1kZWNlYXNlZFwtZmF0aGVyOwor5YmCID4gbWVkaWNpbmFsXC1wcmVwYXJhdGlvbjsKK+ePgiA+IGluZmVyaW9yXC1raW5kXC1vZlwtamFkZTsKK+WYnyA+IHNvdW5kXC1vZlwtaG9yblwtdG9vdGluZzsKK+eRnCA+IGZsYXdsZXNzXC1nZW1cLW9yXC1qZXdlbDsKK+ePkSA+IGFcLWdlbVwtY3V0XC1saWtlXC1kcmFnb247Civor6wgPiBtYWtlXC1mYWxzZVwtYWNjdXNhdGlvbjsKK+WrliA+IHBhdHJvbml6ZVwtcHJvc3RpdHV0ZXM7Civpo5IgPiB0aGVcLXNvdW5kXC1vZlwtdGhlXC13aW5kOwor6ZSiID4gcnVuXC1tZXRhbFwtaW50b1wtY3JhY2tzOwor5o6WID4gc3VwcG9ydFwtd2l0aFwtdGhlXC1hcm1zOwor5qOjID4ga2VycmlhXC1qYXBvbmljYVwtcGxhbnQ7Civoj4EgPiBmbG93ZXJcLW9mXC1sZWVrXC1mYW1pbHk7CivlkqkgPiB0aGVcLWJsZWF0aW5nXC1vZlwtc2hlZXA7Civnj4kgPiBzdG9uZVwtcmVzZW1ibGluZ1wtamFkZTsKK+mSjiA+IHRvb2xcLWZvclwtYm9yaW5nXC1ob2xlczsKK+aKnyA+IHJvbGxcLWFyb3VuZFwtd2l0aFwtaGFuZDsKK+i2uCA+IHNlbGxcLW9yXC1idXlcLXdob2xlc2FsZTsKK+WmoyA+IG9uZScnc1wtZGVjZWFzZWRcLW1vdGhlcjsKK+W1iiA+IGRpc3RyaWN0XC1pblwtc2hhb2hzaW5nOwor56y4ID4gZmxhdFwtYmFza2V0XC1mb3JcLWdyYWluOwor56WiID4gb25lJydzXC1kZWNlYXNlZFwtZmF0aGVyOwor6IKrID4gdGhlXC1naXp6YXJkXC1vZlwtYVwtZm93bDsKK+iLqyA+IHJ1c2hcLW9yXC1zdHJhd1wtbWF0dGluZzsKK+WzpCA+IGhpZ2hcLXBvaW50ZWRcLW1vdW50YWluOwor56etID4gb25lXC10aG91c2FuZFwtbWlsbGlvbnM7Civlp5IgPiB3aWZlXC1vZlwtZWxkZXJcLWJyb3RoZXI7Civok7AgPiB0b1wtaW5jcmVhc2VcLWZpdmVcLWZvbGQ7CivokowgPiBhcnRlbWlzaWFcLXN0ZWxsZXJpYW5hOwor6YWDID4gdGhlXC1zcGlyaXRcLW9mXC1hXC1iZWluZzsKK+ezlyA+IHBhcmNoZWRcLXdoZWF0XC1vclwtcmljZTsKK+i+iyA+IGV4dGVyaW9yXC1yaW1cLW9mXC13aGVlbDsKK+mrqyA+IGNoaWxkcmVuJydzXC1oYWlyXC1zdHlsZTsKK+iZuiA+IGxhcmdlXC1wb2lzb25vdXNcLXNuYWtlOwor6Ya1ID4gY29udHJpYnV0ZVwtZm9yXC1kcmlua3M7CivomqwgPiBhXC12YXJpZXR5XC1vZlwtYml2YWx2ZXM7Civoo7wgPiB0b1wtdGFrZVwtb2ZmXC1vbmUnJ3NcLXRvcDsKK+ectSA+IGV5ZXNcLWRpc2Vhc2VkXC1hbmRcLWRpbTsKK+aetSA+IGhvbGxvXC1zdHVtcFwtb2ZcLWFcLXRyZWU7CivomKkgPiBhcnRlbWlzaWFcLXN0ZWxsYXJpYW5hOwor6byDID4gdGhlXC1lZGlibGVcLXdhdGVyXC1mcm9nOwor6beAID4gdGhlXC1maXNoaW5nXC1jb3Jtb3JhbnQ7CivptKAgPiBhXC1raW5kXC1vZlwtbmlnaHRpbmdhbGU7CivpsKQgPiBzZXJpb2xhXC1xaW5xdWVyYWRpYXRhOwor6a+EID4gbGVwaWRvdHJpZ2xhXC1zdHJhdWNoaTsKK+mriCA+IGRlZmluZWRcLWFzXC10aGVcLXBlbHZpczsKK+miuCA+IGNvb2xcLWJyZWV6ZVwtb2ZcLWF1dHVtbjsKK+miryA+IHRoZVwtc291bmRcLW9mXC10aGVcLXdpbmQ7CivpjK4gPiBydW5cLW1ldGFsXC1pbnRvXC1jcmFja3M7Civph7ogPiB0b29sXC1mb3JcLWJvcmluZ1wtaG9sZXM7CivphY4gPiBkb3VibGVcLWZlcm1lbnRlZFwtd2luZTsKK+i8riA+IGV4dGVyaW9yXC1yaW1cLW9mXC13aGVlbDsKK+i8niA+IGV4dGVyaW9yXC1yaW1cLW9mXC13aGVlbDsKK+i6iSA+IHNlbGxcLW9yXC1idXlcLXdob2xlc2FsZTsKK+iwuiA+IHRoZVwtbW91dGhcLW9mXC1hXC12YWxsZXk7CivoqqMgPiBtYWtlXC1mYWxzZVwtYWNjdXNhdGlvbjsKK+iguCA+IGF1bGFjb3Bob3JhXC1mZW1vcmFsaXM7CivonpIgPiBhdWxhY29waG9yYVwtZmVtb3JhbGlzOwor6Jy6ID4gcmVmbGVjdGlvblwtb2ZcLXJhaW5ib3c7CivonIYgPiBhXC12YXJpZXR5XC1vZlwtYml2YWx2ZXM7CivomJggPiBhXC1raW5kXC1vZlwtd2lsZFwtZ2luZ2VyOwor6JWaID4gdGhlXC1jYWx5eFwtb2ZcLWFcLWZsb3dlcjsKK+iUniA+IGFydGVtaXNpYVwtc3RlbGxlcmlhbmE7CivokbkgPiBraW5kXC1vZlwtY2hyeXNhbnRoZW11bTsKK+iQuyA+IHNtYWxsXC1idWRkaGlzdFwtdGVtcGxlOwor6IiaID4gdG9cLXB1dFwtb3V0XC10aGVcLXRvbmd1ZTsKK+e/jyA+IHRoZVwtc291bmRcLW9mXC10aGVcLXdpbmQ7CivnubQgPiBhXC1raW5kXC1vZlwtZmlzaGluZ1wtbmV0Owor56u8ID4gYmFtYm9vXC1jb3ZlclwtZm9yXC1ib2F0Owor56aoID4gcHJheVwtZm9yXC1nb29kXC1mb3J0dW5lOwor55mlID4gb2JzdHJ1Y3Rpb25cLW9mXC1ib3dlbHM7Civnl48gPiBhXC1icnVpc2VcLW9yXC1jb250dXNpb247Civnk48gPiBhXC1nZW1cLWN1dFwtbGlrZVwtZHJhZ29uOwor55KhID4gamFkZVwtbG9va1wtYWxpa2VcLXN0b25lOwor55GoID4gamFkZVwtbG9va1wtYWxpa2VcLXN0b25lOwor55GAID4gc3RvbmVcLXJlc2VtYmxpbmdcLWphZGU7CivmvoIgPiBjbGVhclwtYW5kXC1zdGlsbFwtd2F0ZXI7Civmt5wgPiByb2FyXC1vZlwtZGFzaGluZ1wtd2F2ZXM7CivmsocgPiBmbG93aW5nXC1hbmRcLWVuZ3VsZmluZzsKK+aqnyA+IHNtYWxsXC1ldmVyZ3JlZW5cLXNocnViOwor5pqOID4gc3VuXC1iZWdpbm5pbmdcLWRlY2xpbmU7CivmkbYgPiByb2xsXC1hcm91bmRcLXdpdGhcLWhhbmQ7CivltqAgPiBoaWdoXC1wb2ludGVkXC1tb3VudGFpbjsKK+W1vCA+IHdpbmRpbmdcLW1vdW50YWluXC1wYXRoOwor5Z+1ID4gaGFyZGVuZWRcLWRpcnRcLW9yXC1jbGF5Owor5Ze7ID4gdG9cLXNjcmVlblwuXC1sb3F1YWNpb3VzOwor5ZCzID4gb25lXC1vZlwtd2FycmluZ1wtc3RhdGVzOwor5YyfID4gZGl2YW5cLWZvclwtdHdvXC1wZXJzb25zOwor5YqRID4gbWVkaWNpbmFsXC1wcmVwYXJhdGlvbjsKK+WJviA+IHRvXC1waWNrXC11cFwtd2l0aFwta25pZmU7CivliaQgPiBtZWRpY2luYWxcLXByZXBhcmF0aW9uOwor5LWXID4gdG9cLWNsZWFuXC10aGVcLXdpdGhlcmVkOwor5LWEID4gdG9cLWJvaWxcLW9yXC1zdGV3XC13aGVhdDsKK+S0tiA+IHRvXC1ib2lsXC1vclwtc3Rld1wtd2hlYXQ7CivktJQgPiB0aGVcLWZpc2hpbmdcLWNvcm1vcmFudDsKK+SzuSA+IGFcLWtpbmRcLWRvdmVcLWxpa2VcLWJpcmQ7Civks50gPiBhXC1raW5kXC1vZlwtc21hbGxcLWJpcmRzOwor5LGfID4gYVwta2luZFwtb2ZcLXNpbHZlclwtZmlzaDsKK+SvryA+IGhhbmdcLWRvd25cLW9mXC10aGVcLWhhaXI7Civkr60gPiBvZlwtbmljZVwtYW5kXC1nb29kXC1oYWlyOwor5K6EID4gYW5cLW9uZVwteWVhclwtb2xkXC1ob3JzZTsKK+SttCA+IGFuXC1vbmVcLXllYXJcLW9sZFwtaG9yc2U7Civkq7kgPiB0aGVcLXNvdW5kXC1vZlwtdGhlXC13aW5kOwor5KqlID4gc2hhbGxvdHNcLW9yXC1zY2FsbGlvbnM7CivkqakgPiBhXC1tZWFzdXJlXC1vZlwtY2FwYWNpdHk7Civkpr0gPiBhblwtZWFzdFwtYW5kXC13ZXN0XC13YWxsOwor5KaaID4gd2lkZVwtb3Blblwtb2ZcLXRoZVwtZG9vcjsKK+SmjCA+IHRoZVwtZG9vclwtaXNcLXdpZGVcLW9wZW47CivkpYggPiB0aGVcLXN5bWJvbFwtZm9yXC1jb2JhbHQ7CivkpJcgPiB0YXN0ZVwtb2ZcLXN0cm9uZ1wtZHJpbms7CivkoqkgPiB0b1wtZm9yYmlkXC10b1wtcHJvaGliaXQ7CivkobYgPiB2ZWhpY2xlc1wtYW5kXC1nYXJtZW50czsKK+SemiA+IHRvXC1oYW5nXC1vblwtYVwtYmlnXC10cmVlOwor5J2WID4gcmVwdGlsZXNcLXdpdGhvdXRcLWZlZXQ7Civkm7EgPiB0b1wtdGFsa1wtdW5yZW1pdHRpbmdseTsKK+SbiiA+IGNoZWVyZnVsXC1hbGxcLXRoZVwtdGltZTsKK+SbgyA+IHVzZWRcLWluXC1wZXJzb24nJ3NcLW5hbWU7CivkmJAgPiB0aGVcLWJsZWVkXC1hdFwtdGhlXC1ub3NlOwor5JeKID4gdG9cLXB1dFwtb3V0XC10aGVcLXRvbmd1ZTsKK+SXiSA+IGFcLXNtYWxsXC1zb2xpdGFyeVwtd2FzcDsKK+SWlCA+IGFcLWtpbmRcLW9mXC13aGl0ZVwtdGlnZXI7Civklo0gPiB0b1wtYWN0XC13aXRoXC1yZXZlcmVuY2U7CivklLUgPiBmcmFncmFudFwtdGhvcm91Z2h3b3J0Owor5JSKID4gZGVuc2VcLWdyb3d0aFwtb2ZcLWdyYXNzOwor5JOSID4gc2NpcnB1c1wtY3lwZXJpbnVzXC12YXI7CivkkqYgPiBncmFzc1wtZmxvYXRzXC1vblwtd2F0ZXI7CivkkoQgPiBmdWxseVwtbGFkZW5cLW9mXC1hXC1ib2F0Owor5JGdID4gYVwtc21hbGxcLWN1cFwtd2l0aFwtZWFyczsKK+SPpCA+IHRvcFwtb2ZcLXRoZVwtaHVtYW5cLWhlYWQ7CivkjrYgPiBvZmZlcmluZ1wtYmxvb2RcLXRvXC1nb2Q7CivkjpogPiB0aGVcLWVuZFwtb2ZcLWJpcmRcLXdpbmdzOwor5I6WID4gc29hcmluZ1wtdXBcLWluXC10aGVcLXNreTsKK+SOgSA+IHVzZWRcLWluXC1wZXJzb24nJ3NcLW5hbWU7CivkjKcgPiBhXC1raW5kXC1vZlwtc2lsa1wtZmFicmljOwor5IyfID4gdG9cLXdlYXZlXC1zaWxrXC1yaWJib25zOwor5IuCID4gZHJlc3Nlc1wtZm9yXC10aGVcLWJyaWRlOwor5IinID4gc2tpblwtb2ZcLWJhbWJvb1wtc2hvb3RzOwor5IieID4gYW5jaWVudFwtbmFtZVwtb2ZcLWluZGlhOwor5Ie+ID4gYVwtZmx1dGVcLXdpdGhcLTIzXC10dWJlczsKK+SHsCA+IGFcLWJhbWJvb1wtYmluZGVkXC10b3JjaDsKK+SHoSA+IHRoZVwtc2h1dHRsZVwtb2ZcLWFcLWxvb207CivkhqAgPiBhXC1nb3Zlcm5tZW50XC1vZmZpY2lhbDsKK+SGmyA+IHNvbWV0aGluZ1wtaW5cLXRoZVwtY2F2ZTsKK+SFlyA+IGZvdXJcLWJ1bmRsZVwtb2ZcLWdyYWluczsKK+SFkSA+IGZvdXJcLWJ1bmRsZVwtb2ZcLWdyYWluczsKK+SBrSA+IHRvXC1naXZlXC1hblwtYW5ncnlcLWxvb2s7CivkgZogPiBhXC1raW5kXC1vZlwtZXllXC1kaXNlYXNlOwor5IC9ID4gdG9cLWxvb2tcLWF0XC1lYWNoXC1vdGhlcjsKK+SAoCA+IGFcLWNoaW5lc2VcLWZhbWlseVwtbmFtZTsKK+SAkyA+IHRvXC10dXJuXC1vbmUnJ3NcLWV5ZXNcLXRvOwor47+0ID4gd2lkZVwtcGllY2VcLW9mXC1sZWF0aGVyOwor47+vID4gd2lkZVwtcGllY2VcLW9mXC1sZWF0aGVyOwor47+rID4gdG9cLXNwbGl0XC10YW5nbGVkXC1oZW1wOwor47+PID4gcGFyYWx5c2lzXC1vZlwtdGhlXC1ib2R5Owor476+ID4gZGlzZWFzZVwtb2ZcLXRoZVwtdGhyb2F0Owor476kID4gZGlzZWFzZVwtb2ZcLXRoZVwtdGhyb2F0Owor47yyID4gc291bmRcLW9mXC1icm9rZW5cLXRpbGVzOwor47yQID4gYVwta2luZFwtb2ZcLXdoaXRlXC1tZWxvbjsKK+O5tiA+IGFcLWtpbmRcLW9mXC13aWxkXC1hbmltYWw7CivjuaYgPiBkb2dcLXdpdGhcLWFcLXNob3J0XC10YWlsOwor47mUID4gY2F0dGxlXC13aXRoXC1sb25nXC1iYWNrOwor47eXID4gdXNlZFwtaW5cLXBlcnNvbicnc1wtbmFtZTsKK+O3jyA+IHVzZWRcLWluXC1wZXJzb24nJ3NcLW5hbWU7CivjtawgPiB1c2VkXC1pblwtcGVyc29uJydzXC1uYW1lOwor47WoID4gYVwtZHJ5XC1sYW5kXC1pblwtYVwtcml2ZXI7Civjs4ggPiBhXC1ncmVhdFwtZmxvd1wtb2ZcLXdhdGVyOwor47GfID4gdG9cLXJpcFwtb3BlblwtdGhlXC1mbGVzaDsKK+OwhCA+IGFcLXNtYWxsXC1jaGVzdG51dFwtdHJlZTsKK+OvpSA+IGFcLWNoaW5lc2VcLWZhbWlseVwtbmFtZTsKK+OulyA+IHRoZVwtaGFuZGxlXC1vZlwtYVwtc3BlYXI7CivjrY0gPiBjYXBpdGFsXC1mb3JtXC1vZlwtc2V2ZW47CivjrKAgPiB0b1wtZXhwb3NlXC10b1wtc3VubGlnaHQ7CivjrJMgPiB0b1wtZXhwb3NlXC10b1wtc3VubGlnaHQ7CivjrIIgPiB1c2VkXC1pblwtcGVyc29uJydzXC1uYW1lOwor46mfID4gdG9cLXNld1wtc29tZVwtb3JuYW1lbnRzOwor46iMID4gdG9cLW1pbGtcLWFcLWNvd1wtb3JcLWdvYXQ7Civjo50gPiBhXC1jaGluZXNlXC1mYW1pbHlcLW5hbWU7CivjoIsgPiBhXC1sb2Z0eVwtbW91bnRhaW5cLXBlYWs7Civjn54gPiBwcmVjaXBpdG91c1wtYW5kXC1sb2Z0eTsKK+OfnSA+IHRvXC1iYW5rXC11cFwtd2l0aFwtZWFydGg7Civjn5wgPiBzaGFwZVwtb2ZcLXRoZVwtbW91bnRhaW47Civjn5kgPiBzaGFwZVwtb2ZcLXRoZVwtbW91bnRhaW47Civjn5YgPiBhXC1kaWFsZWN0XC1vZlwtbWlub3JpdHk7Civjn44gPiBhXC1sb25nXC1tb3VudGFpblwtcmlkZ2U7CivjnoEgPiBjYW5cLW5vdFwtd2Fsa1wtbm9ybWFsbHk7Civjnb4gPiBjYW5cLW5vdFwtd2Fsa1wtbm9ybWFsbHk7CivjmLAgPiBuYW1lXC1vZlwtYVwtb2xkXC1jb3VudHJ5Owor45ihID4gYVwtcGVuXC1mb3JcLXdpbGRcLWJlYXN0czsKK+OYliA+IHRvXC1tYWtlXC1hXC1kaXN0dXJiYW5jZTsKK+OXgSA+IHRoZVwtcm9vZlwtb2ZcLXRoZVwtbW91dGg7CivjlpcgPiBoaWdoXC1yaWRnZXNcLW9mXC1jbGlmZnM7CivjlaIgPiBwcm9mb3VuZFwtc2lnbmlmaWNhbmNlOwor45KGID4gdG9cLWdhdGhlclwtdGhlXC1oYXJ2ZXN0Owor5LuAID4gZmlsZVwtb2ZcLXRlblwtc29sZGllcnM7CivosqwgPiBvbmUnJ3NcLXJlc3BvbnNpYmlsaXR5Owor54i1ID4gZmV1ZGFsXC10aXRsZVwtb3JcLXJhbms7CivotKMgPiBvbmUnJ3NcLXJlc3BvbnNpYmlsaXR5Owor5ZWKID4gZXhjbGFtYXRvcnlcLXBhcnRpY2xlOwor5qWaID4gbmFtZVwtb2ZcLWZldWRhbFwtc3RhdGU7CivmiZggPiB0b1wtaG9sZFwtdXBcLXdpdGhcLXBhbG07CivmsbIgPiBkcmF3XC13YXRlclwtZnJvbVwtd2VsbDsKK+mthSA+IGtpbmRcLW9mXC1mb3Jlc3RcLWRlbW9uOwor5LyKID4gdGhpcmRcLXBlcnNvblwtcHJvbm91bjsKK+m4vyA+IHNwZWNpZXNcLW9mXC13aWxkXC1zd2FuOwor5aelID4gbWF0ZXJuYWxcLWdyYW5kbW90aGVyOwor5o2nID4gaG9sZFwtdXBcLWluXC10d29cLWhhbmRzOwor5LmZID4gc2Vjb25kXC1oZWF2ZW4nJ3NcLXN0ZW07CivlkIEgPiBpbnRlcmplY3Rpb25cLScnYWxhc1whJyc7Civlp6ggPiBtb3RoZXJcL3dpZmUnJ3NcLXNpc3RlcjsKK+S6qSA+IGNoaW5lc2VcLWxhbmRcLW1lYXN1cmU7Civlg7UgPiBzdGlmZlwtYW5kXC1tb3Rpb25sZXNzOwor5ouxID4gZm9sZFwtaGFuZHNcLW9uXC1icmVhc3Q7Civnpr4gPiBncmFpblwtc3RpbGxcLW9uXC1zdGFsazsKK+WXoSA+IHNvdW5kXC1vZlwtZmx5aW5nXC1iZWVzOwor5YWuID4gZXhjbGFtYXRvcnlcLXBhcnRpY2xlOwor54ypID4gc3BlY2llc1wtb2ZcLW9yYW5ndXRhbjsKK+eLniA+IGZlcm9jaW91c1wtYXBwZWFyYW5jZTsKK+aLiCA+IHBpY2tcLXVwXC13aXRoXC1maW5nZXJzOwor6ZmbID4gc3RlcHNcLWxlYWRpbmdcLXRocm9uZTsKK+m4ryA+IGZlbWFsZVwtbWFuZGFyaW5cLWR1Y2s7Civlja8gPiB0aFwtb2ZcLWVhcnRoXC1icmFuY2hlczsKK+eGoCA+IGJyaWdodFwtYW5kXC1zcGFya2xpbmc7CivpmIIgPiBibG9ja2VkXC1vclwtc2VwYXJhdGVkOwor5reFID4gd2F0ZXJcLXVzZWRcLXdhc2hcLXJpY2U7CivkvZogPiBpbmR1bGdlXC1pblwtcGxlYXN1cmVzOwor6L6aID4gcnVtYmxpbmdcLW9mXC12ZWhpY2xlczsKK+W3vSA+IHRoXC1vZlwtdGhlXC04XC10cmlncmFtczsKK+iohyA+IHRoZVwtc291bmRcLW9mXC1hXC1jcmFzaDsKK+eLuiA+IHRoZVwtc25hcmxpbmdcLW9mXC1kb2dzOwor5rWUID4gc3RlZXBcLWJhbmtcLWJ5XC1zdHJlYW07Civok4ogPiBsdXh1cmlhbnRcLXZlZ2V0YXRpb247Civok6AgPiBncmFjaWxhcmlhXC12ZXJydWNvc2E7Civoj4AgPiBsdXh1cmlhbmNlXC1vZlwtZ3Jvd3RoOwor6IOXID4gcHVzdHVsZXNcLW9mXC1hbnlcLWtpbmQ7CivpooMgPiBmbHlcLWRvd25cLW9yXC1kb3dud2FyZDsKK+WehiA+IGJsYWNrXC1jbG9kc1wtb2ZcLWVhcnRoOwor5qiXID4gYWlsYW50aHVzXC1nbGFuZHVsb3NhOwor6JqnID4gYVwtcmVkXC1zcG90dGVkXC1saXphcmQ7CivnvLYgPiBlYXJ0aGVuXC1jcm9ja1wtb3JcLWphcjsKK+ixsyA+IGFcLXpob3VcLWR5bmFzdHlcLXN0YXRlOwor6L26ID4gc21hbGxcLWxpZ2h0XC1jYXJyaWFnZTsKK+mAryA+IGxlYXZlXC13aXRob3V0XC1yZWFzb247CivpvZ4gPiB0b1wtZGlzcGxheVwtdGhlXC10ZWV0aDsKK+m8iCA+IGFcLWZyZXNoXC13YXRlclwtdHVydGxlOwor6byCID4gYVwta2luZFwtb2ZcLXNlYVwtdHVydGxlOwor6biHID4ga2luZFwtb2ZcLWJpcmRcLW9mXC1wcmV5Owor6biCID4gYVwta2luZFwtb2ZcLXdhdGVyXC1iaXJkOwor6berID4gdHVycXVvaXNlXC1raW5nZmlzaGVyOwor6beBID4gZmlzaGhhd2tcLWJvd1wtb3JcLXByb3c7CivptLsgPiBzcGVjaWVzXC1vZlwtd2lsZFwtc3dhbjsKK+m0piA+IGZlbWFsZVwtbWFuZGFyaW5cLWR1Y2s7CivpsJwgPiBiaWdcLW1vdXRoZWRcLWZsb3VuZGVyOwor6au6ID4gdGhlXC1oYWlyXC1kaXNoZXZlbGxlZDsKK+mqoyA+IGhvcnNlXC13aXRob3V0XC1zYWRkbGU7CivpqY8gPiBob3JzZVwtd2l0aG91dFwtc2FkZGxlOwor6aS9ID4gbWFrZVwtcHJlc2VudFwtb2ZcLWZvb2Q7CivpoI8gPiBmbHlcLWRvd25cLW9yXC1kb3dud2FyZDsKK+mfsSA+IHdpbGRcLW9uaW9uc1wtb3JcLWxlZWtzOwor6Z+vID4gd2lsZFwtb25pb25zXC1vclwtbGVla3M7CivpnIMgPiBsb25nXC1jb250aW51ZWRcLXJhaW5zOwor6ZeNID4gdG93ZXJcLW92ZXJcLWNpdHlcLWdhdGU7CivplqEgPiBibG9ja2VkXC1vclwtc2VwYXJhdGVkOwor6Y2xID4gdGhpblwtcGxhdGVzXC1vZlwtbWV0YWw7CivpibYgPiBzYWNyaWZpY2lhbFwtY2F1bGRyb247CivphrAgPiBiaXR0ZXJcLXRhc3RlXC1pblwtd2luZTsKK+i9lCA+IHJ1bWJsaW5nXC1vZlwtdmVoaWNsZXM7Civou7ogPiBzbWFsbFwtbGlnaHRcLWNhcnJpYWdlOwor6LaCID4gdG9cLXRha2VcLWFkdmFudGFnZVwtb2Y7CivopawgPiBsb3dlclwtcGFydFwtb2ZcLWFcLXJvYmU7CivoorMgPiBzcHJlYWRcLW9uZScnc1wtY2xvdGhlczsKK+icmyA+IGh5ZHJvcGhpbHVzXC1jb2duYXR1czsKK+ibmiA+IGN5cnRveGlwaHVzXC1yaXRzZW1hZTsKK+iYuiA+IGdyYWNpbGFyaWFcLXZlcnJ1Y29zYTsKK+iWoiA+IHdvb2R5XC1jbGltYmluZ1wtcGxhbnQ7CivojIAgPiBvdmVyZ3Jvd25cLXdpdGhcLWdyYXNzOwor6IqEID4gbWV0YXBsZXhpc1wtc3RhdW50b25pOwor6Ii6ID4gcGxhY2VcLW5hbWVcLWluXC10YWl3YW47CivohKEgPiBzdHJpcHNcLW9mXC1kcmllZFwtbWVhdDsKK+eygyA+IGVtcHR5XC1odXNrc1wtb2ZcLWdyYWluOwor56qjID4gdG9cLXJ1c2hcLW91dFwtb2ZcLWFcLWRlbjsKK+ephyA+IHBhbmljdW1cLWZydW1lbnRhY2V1bTsKK+ejkiA+IHRvXC1mYWxsXC1mcm9tXC1vclwtaW50bzsKK+efkSA+IHRoZVwtcHVwaWxcLW9mXC10aGVcLWV5ZTsKK+edjSA+IHRvXC1sb29rXC1hdFwtZmVhcmZ1bGx5Owor55WdID4gY2hpbmVzZVwtbGFuZFwtbWVhc3VyZTsKK+eVkiA+IGNoaW5lc2VcLWxhbmRcLW1lYXN1cmU7CivnlYYgPiBjaGluZXNlXC1sYW5kXC1tZWFzdXJlOwor55S9ID4gZHJhaW5cLWJldHdlZW5cLWZpZWxkczsKK+eUgyA+IGJyaWNrXC13YWxsXC1vZlwtYVwtd2VsbDsKK+eQliA+IGNhcnZlZFwtamFkZVwtd2luZVwtY3VwOwor546mID4gYnJva2VuXC1waWVjZVwtb2ZcLWphZGU7CivnjbAgPiBmZXJvY2lvdXNcLWFwcGVhcmFuY2U7CivngLMgPiB0b1wtYXJyaXZlXC1cKG9mXC13YXRlclwpOwor5r6sID4gdG9cLXJhaW5cLWNvbnRpbnVvdXNseTsKK+a9ryA+IHN0ZWVwXC1iYW5rXC1ieVwtc3RyZWFtOwor5rSkID4gYVwtZm91bnRhaW5cLW9yXC1zcHJpbmc7Civmp74gPiBwYXN0ZVwtd2FsbFwtd2l0aFwtZGlydDsKK+ajqCA+IHRhbGx5XC1vclwtd29vZGVuXC1wYXNzOwor5qGsID4gcGVhclwtYW5kXC1vdGhlclwtdHJlZXM7CivmlbMgPiB0b1wtZ292ZXJuXC1mb3JjZWZ1bGx5Owor5pWBID4gdG9cLXdlaWdoXC1pblwtdGhlXC1oYW5kOwor5pCOID4gdG9cLXJ1Ylwtd2l0aFwtdGhlXC1oYW5kOwor5oi8ID4gdGhcLW9mXC1lYXJ0aFwtYnJhbmNoZXM7Civlt7ogPiB0aFwtb2ZcLXRoZVwtOFwtdHJpZ3JhbXM7CivltY8gPiBhXC1tb3VudGFpblwtaW5cLXNoZW54aTsKK+WtrSA+IHRvXC1jYXJyeVwtb25cLXRoZVwtYmFjazsKK+WriyA+IHNsZW5kZXJcLWFuZFwtZGVsaWNhdGU7CivlqaMgPiBtYXJyaWFnZVwtY29ubmVjdGlvbnM7CivlpJggPiB0aFwtb2ZcLWVhcnRoXC1icmFuY2hlczsKK+WjmiA+IGJsYWNrXC1jbG9kc1wtb2ZcLWVhcnRoOwor5ZusID4gdG9cLXJldHVyblwtdG9cLW9yXC1mcm9tOwor5YqCID4gY2hpc2VsXC1mb3JcLWVuZ3JhdmluZzsKK+S2mSA+IHN3ZWxsaW5nXC1vZlwtdGhlXC1ndW1zOwor5LaKID4gdG9cLWJsZWVkXC1hdFwtdGhlXC1ub3NlOwor5LSfID4gYW5cLW9uZVwteWVhclwtb2xkXC1kZWVyOwor5LSWID4gYVwta2luZFwtb2ZcLXdhdGVyXC1iaXJkOwor5LSMID4gYVwta2luZFwtb2ZcLXdhdGVyXC1iaXJkOwor5LSLID4gYVwta2luZFwtb2ZcLXdhdGVyXC1iaXJkOwor5LSIID4gYVwta2luZFwtb2ZcLXdhdGVyXC1iaXJkOwor5LSCID4gYVwta2luZFwtb2ZcLXdhdGVyXC1iaXJkOwor5LSAID4gYVwta2luZFwtb2ZcLXdhdGVyXC1iaXJkOwor5LO2ID4gYVwta2luZFwtb2ZcLXdhdGVyXC1iaXJkOwor5LOzID4gYVwta2luZFwtb2ZcLXNtYWxsXC1iaXJkOwor5LOTID4gYVwta2luZFwtb2ZcLXdhdGVyXC1iaXJkOwor5LORID4gYVwtcGhlYXNhbnRcLWxpa2VcLWJpcmQ7Civks4sgPiBhXC1waGVhc2FudFwtbGlrZVwtYmlyZDsKK+SziSA+IGFcLWtpbmRcLW9mXC13YXRlclwtYmlyZDsKK+SzhCA+IGFcLWtpbmRcLW9mXC13YXRlclwtYmlyZDsKK+SzgiA+IGFcLWtpbmRcLW9mXC1zbWFsbFwtYmlyZDsKK+SysSA+IGFcLWtpbmRcLW9mXC1ibGFja1wtYmlyZDsKK+SylSA+IHRoZVwteWFuZ3R6ZVwtcG9ycG9pc2U7CivksZAgPiBhXC1raW5kXC1vZlwtYmxhY2tcLWZpc2g7CivksYAgPiBhXC1raW5kXC1vZlwtc21hbGxcLWZpc2g7Civkr7ogPiB0aGVcLWhhaXJcLWRpc2hldmVsbGVkOwor5K6hID4gYVwtc3VwZXJuYXR1cmFsXC1ob3JzZTsKK+SugiA+IGhvcnNlXC13aXRoXC1sb25nXC1oYWlyOwor5K2+ID4gdG9cLWNhcnJ5XC1vblwtdGhlXC1iYWNrOwor5K23ID4gaG9yc2VcLXdpdGhcLWxvbmdcLW1hbmU7CivkrKkgPiB0b1wtYWJzdGFpblwtZnJvbVwtbWVhdDsKK+SsoyA+IGFcLXNhY3JpZmljaWFsXC12aWN0aW07Civkq6AgPiBzaG9ydFwtaGFpclwtYW5kXC1iZWFyZDsKK+SpvSA+IGFcLXF1aXZlclwtb25lXC1hXC1ob3JzZTsKK+SpgiA+IHRvXC1jb21lXC10b1wtdGhlXC1mcm9udDsKK+SnlyA+IG1vdW50YWluc1wtY29sbGFwc2luZzsKK+SmpiA+IGFcLW11c2ljYWxcLWluc3RydW1lbnQ7CivkpaQgPiB0aGVcLW5lY2tcLW9mXC1hXC1wZXN0bGU7CivkpaEgPiB0aGluXC1wbGF0ZXNcLW9mXC1tZXRhbDsKK+SlhiA+IGFcLW11c2ljYWxcLWluc3RydW1lbnQ7CivkpYUgPiBhXC1tdXNpY2FsXC1pbnN0cnVtZW50Owor5KWEID4gdG9cLXBsYXN0ZXJcLXdpdGhcLWdvbGQ7CivkpLggPiBzaG9ydFwtc3BlYXJcLW9yXC1sYW5jZTsKK+SgkSA+IGJldHdlZW5cLXRoZVwtYnV0dG9ja3M7CivkoIggPiBoYXJkXC10b1wtbW92ZVwtZm9yd2FyZDsKK+SfqSA+IGhhcmRcLW9mXC13YWxrXC1mb3J3YXJkOwor5J6ZID4gdG9cLXdhbGtcLWluXC1odXJyaWVkbHk7CivknZEgPiBhXC1sb2NhbFwtcHJvZHVjZWRcLXBpZzsKK+ScpyA+IHRvXC1pbnN1bHRcLXdpdGhcLXdvcmRzOwor5JyTID4gYVwtc2xpcFwtb2ZcLXRoZVwtdG9uZ3VlOwor5JyAID4gdG9cLWluc3VsdFwtd2l0aFwtd29yZHM7Civkm4wgPiB0b1wtcHJvdm9rZVwtb3JcLWFyb3VzZTsKK+SZriA+IHN0cmlwXC1vZlwtdGhlXC1jbG90aGVzOwor5Ji+ID4gbGVnc1wtb2ZcLXRoZVwtdHJvdXNlcnM7CivklasgPiBhXC1vbmVcLWxlZ2dlZFwtbW9uc3RlcjsKK+SUiCA+IGx1c2hcLWdyb3d0aFwtb2ZcLWdyYXNzOwor5JGgID4gbG9uZ1wtYW5kXC1uYXJyb3dcLWJvYXQ7CivkkLggPiB0aGVcLWJhY2tcLW9mXC10aGVcLWtuZWU7Civkj78gPiB0aGVcLWNhbGZcLW9mXC10aGVcLWxlZ3M7Civkj6EgPiB1bmNvb2tlZFwtb3JcLXJhd1wtbWVhdDsKK+SKsyA+IHRvXC1icmVha1wtaW50b1wtcGllY2VzOwor5IqyID4gdG9cLWh1bGxcLXJpY2VcLXJvdWdobHk7CivkioIgPiBwb29yXC1xdWFsaXR5XC1vZlwtcmljZTsKK+SJkSA+IGJsYWNrXC1za2lubmVkXC1iYW1ib287CivkiKYgPiBhXC1jdXJ2ZWRcLWJhbWJvb1wtd2hpcDsKK+SIkSA+IHRvb2xzXC10b1wtdW5yZWVsXC1zaWxrOwor5IiFID4gdG9vbHNcLXRvXC11bnJlZWxcLXNpbGs7CivkiIEgPiB0b29sc1wtdXNlZFwtb25cLWFcLWJvYXQ7Civkh5ggPiB0b29sXC10b1wtY29sbGVjdFwtcm9wZTsKK+SGoyA+IGFib2RlXC1vZlwtdGhlXC1lbXBlcm9yOwor5IaPID4gYVwta2luZFwtb2ZcLXJpY2VcLXBsYW50Owor5IaDID4gYVwta2luZFwtb2ZcLXJpY2VcLXBsYW50Owor5IWuID4gYVwtZnVsbFwtaGVhZFwtb2ZcLWdyYWluOwor5IWTID4gY3VydmVkXC1waWVjZVwtb2ZcLXdvb2Q7CivkhY8gPiByaWNlXC1ib2lsZWRcLXRvXC1ncnVlbDsKK+SFiSA+IGFcLWtpbmRcLW9mXC1yaWNlXC1wbGFudDsKK+SEvyA+IGFcLWtpbmRcLW9mXC1yaWNlXC1wbGFudDsKK+SEryA+IHRlblwtaGFuZGxlXC1vZlwtZ3JhaW5zOwor5ISCID4gdG9cLXByYXlcLWFuZFwtdG9cLWN1cnNlOwor5IOwID4gYnJpY2tcLW9yXC1zdG9uZVwtc3RlcHM7CivkgpIgPiBzaG9ydFwtdG9cLWN1cnJ5XC1mYXZvcjsKK+SCgiA+IHRvXC1nYXplXC1hdFwtaW5cLXRlcnJvcjsKK+SBrCA+IHRvXC1hY3RcLXByZXRlbnRpb3VzbHk7CivkgLcgPiB0b1wtaGF2ZVwtcXVpY2tcLWdsYW5jZTsKK+SAsiA+IGRpc2Vhc2VzXC1pblwtdGhlXC1leWVzOwor47+4ID4gdG9cLWNhc3RcLW9mZlwtdGhlXC1za2luOwor47+eID4gYW5cLW9sZFwtbWFuXC1vZlwtZWlnaHR5Owor472kID4gYVwtc21hbGxcLXBsb3RcLW9mXC1sYW5kOwor472iID4gdG9cLXBsb3VnaFwtdGhlXC1maWVsZHM7CivjvZUgPiBuZXdcLWJyYW5jaGVzXC1ncm93aW5nOwor472DID4gYVwtYmlnXC1waWVjZVwtb2ZcLWJyaWNrOwor47yiID4gYnJpY2tzXC1hblwtZWF0aGVuXC1qYXI7CivjvIkgPiBncmVlblwtY29sb3JlZFwtbWVsb25zOwor47uuID4gYnJpZ2h0XC1hbmRcLWJyaWxsaWFudDsKK+O6riA+IGZpbmVcLXN0b25lXC1saWtlXC1qYWRlOwor47qoID4gZmluZVwtc3RvbmVcLWxpa2VcLWphZGU7CivjuoIgPiBiaWdcLWFuZFwtc3Ryb25nXC1zaGVlcDsKK+O5mCA+IHNoaW5ib25lXC1vZlwtYVwtY2F0dGxlOwor47iqID4gYW5cLW94XC13YWxraW5nXC1zbG93bHk7Civjt5kgPiB0b1wtZnJ5XC1pblwtZmF0XC1vclwtb2lsOwor47aUID4gc3dpZnRcLWFuZFwtdG9ycmVudGlhbDsKK+O2jiA+IHN3aWZ0XC1hbmRcLXRvcnJlbnRpYWw7CivjtaEgPiBzd2lmdFwtYW5kXC10b3JyZW50aWFsOwor47WeID4gYmVsbGllZFwtaW5cLXdhdGVyXC1nYXM7Civjs7wgPiBidWJibGluZ1wtb2ZcLWZvdW50YWluOwor47OaID4gZmxvd2luZ1wtb2ZcLXRoZVwtd2F0ZXI7Civjs5QgPiB0b1wtc29ha1wtb3JcLWJlXC1zb2FrZWQ7Civjs5AgPiBmbG93aW5nXC1vZlwtdGhlXC13YXRlcjsKK+OyqyA+IGhhaXJcLWtub3RzXC1pblwtYVwtbWVzczsKK+OyoiA+IGhhaXJcLWtub3RzXC1pblwtYVwtbWVzczsKK+OwiyA+IGFcLWtpbmRcLW9mXC1mcnVpdFwtdHJlZTsKK+OvjCA+IHRvXC1vcGVyYXRlXC1vclwtbWFuYWdlOwor462eID4gYVwta2luZFwtaW5mZXJpb3JcLXdvb2Q7CivjrZIgPiBhXC1mYXJtaW5nXC1pbnN0cnVtZW50Owor46qwID4gdG9cLWFic3RhaW5cLWZyb21cLW1lYXQ7CivjqbsgPiBydWdnZWRcLW1vdW50YWluXC1wYXRoOwor46mUID4gYVwtdG9vbFwtdG9cLW1ha2VcLWFcLWJvdzsKK++nvSA+IGZpbGVcLW9mXC10ZW5cLXNvbGRpZXJzOwor46e5ID4gdG9cLXN0cmlrZVwtd2l0aFwtZmlzdHM7CivjoZkgPiBjdXJ0YWluXC1mb3JcLWNhcnJpYWdlOwor46CXID4gZGVlcFwtaW5cLXRoZVwtbW91bnRhaW47CivjnqUgPiBkZWVwXC1pblwtdGhlXC1tb3VudGFpbjsKK+OenyA+IHNhdmluZ3NcLWFuZFwtcmVzZXJ2ZXM7CivjnJIgPiBtYXRlcm5hbFwtZ3JhbmRtb3RoZXI7CivjmaMgPiB0b1wtcGlsZVwtYVwtc2FuZFwtaGlsbHM7CivjmZEgPiB0aGVcLWNhbm9weVwtb2ZcLWhlYXZlbjsKK+OYjiA+IHRoZVwtcm9hcnNcLW9mXC1hXC10aWdlcjsKK+OYhSA+IHRvXC1ob2xkXC1pblwtdGhlXC1tb3V0aDsKK+OVoSA+IHRoZVwtYmVkXC1vZlwtYVwtdG9ycmVudDsKK+OVjCA+IHRvXC1yYWlzZVwtdGhlXC1jdXJ0YWluOwor45SLID4gY3V0XC1pbnRvXC10aGluXC1zbGljZXM7CivjkoUgPiB0b1wtdW5iaW5kXC10aGVcLWNvbGxhcjsKK+ORiSA+IGNhbm5vdFwtc3RyYWlnaHRlblwtdXA7Civlub4gPiBob3dcLW1hbnlcP1wtaG93XC1tdWNoXD87CivlpY8gPiBtZW1vcmlhbGl6ZVwtZW1wZXJvcjsKK+aCqCA+IGhvbm9yaWZpY1wtZm9yXC0nJ3lvdScnOwor5ZCPID4gZ292ZXJubWVudFwtb2ZmaWNpYWw7CivlhYAgPiB0b1wtY3V0XC1vZmZcLXRoZVwtZmVldDsKK+iDtCA+IHRoZVwtbGFyZ2VcLWludGVzdGluZTsKK+enpiA+IGZldWRhbFwtc3RhdGVcLW9mXC1xaW47CivmoYEgPiBjcm9zc1wtYmVhbXNcLW9mXC1yb29mOwor6I6OID4ga2luZFwtb2ZcLXNlZGdlXC1ncmFzczsKK+iWmyA+IGtpbmRcLW9mXC1tYXJzaFwtZ3Jhc3M7CivntaMgPiB0b1wtYmFzdGVcLWZvclwtc2V3aW5nOwor5oKWID4gYmVcLWNvbnRyYWRpY3RvcnlcLXRvOwor6IqSID4gbWlzY2FudGh1c1wtc2luZW5zaXM7CivlmLYgPiBuZWlnaGluZ1wtb2ZcLWFcLWhvcnNlOwor5Y+9ID4gc2lnaFwtaW5cLWRpc2FwcHJvdmFsOwor5Y6lID4gcGVyc29uYWxcLXByb25vdW5cLWhlOwor5ZytID4gamFkZVwtcG9pbnRlZFwtYXRcLXRvcDsKK+W+mCA+IHdhbGtcLWJhY2tcLWFuZFwtZm9ydGg7CivmmaQgPiBoYXZlXC1pbnRlcnZpZXdcLXdpdGg7CivoiLcgPiB0aGVcLXNpZGVzXC1vZlwtYVwtYm9hdDsKK+mCrCA+IHZhcmlvdXNcLXBsYWNlXC1uYW1lczsKK+ikkCA+IGNvYXJzZVwtd29vbGVuXC1jbG90aDsKK+mmiCA+IG9mZmVyXC1mb29kXC1zdXBlcmlvcjsKK+WUpyA+IGNoaXJwaW5nXC1vZlwtaW5zZWN0czsKK+WSlCA+IHVzZWRcLWluXC10cmFuc2xhdGlvbjsKK+eBuCA+IGNhdXRlcml6ZVwtd2l0aFwtbW94YTsKK+mptyA+IHRlYW1cLW9mXC1mb3VyXC1ob3JzZXM7CivnsrwgPiBjbGVhclwtXChhc1wtb2ZcLXdhdGVyXCk7CivnvpogPiBzcGVjaWVzXC1vZlwtYW50ZWxvcGU7CivlkZMgPiB0YWxrXC1pblwtb25lJydzXC1zbGVlcDsKK+evmSA+IHBvbGVcLXVzZWRcLXB1bnRcLWJvYXQ7CivmuY0gPiByYXBpZFwtd2F0ZXJcLWN1cnJlbnQ7CivohI0gPiBtaW5jZWRcLW1lYXRcLW9yXC1maXNoOwor6Y+WID4gdG9cLWZpZ2h0XC10b1wtdGhlXC1lbmQ7Civogr0gPiBhXC1jaGVtaWNhbFwtY29tcG91bmQ7CivljZ8gPiBhXC1jaGVtaWNhbFwtY29tcG91bmQ7Civpiq4gPiBiZWxsc1wtaHVuZ1wtb25cLWhvcnNlOwor56yzID4gYVwtcmVlZFwtbGVhZlwtd2hpc3RsZTsKK+iWjyA+IHNlZWRcLW9mXC1qb2InJ3NcLXRlYXJzOwor5oKdID4gdG9cLWxhdWdoXC1hdFwtdG9cLXBpdHk7CivosYcgPiBhXC1zbWFsbFwta2lkbmV5XC1iZWFuOwor5qGJID4gZXVjYWx5cHR1c1wtZ2xvYnVsdXM7CivouYEgPiB0b1wtd2Fsa1wtd2l0aFwtYVwtbGltcDsKK+iFiCA+IGFuXC1vcmdhbmljXC1jb21wb3VuZDsKK+ienyA+IGtpbmRcLW9mXC1jYXRlcnBpbGxhcjsKK+azriA+IHpob3VcLWR5bmFzdHlcLXNjaG9vbDsKK+mysyA+IHRoZVwtc2lsdmVyeVwtcG9tZnJldDsKK+mcqiA+IGxvbmdcLWFuZFwtaGVhdnlcLXJhaW47CivmnpggPiB0aGVcLWhhbmRsZVwtb2ZcLXRvb2xzOwor5ru5ID4gdGhlXC1iYW5rXC1vZlwtYVwtc3RlYW07CivlvbMgPiBzdGVwXC13aXRoXC1sZWZ0XC1mb290Owor5LqNID4gdG9cLXRha2VcLXNtYWxsXC1zdGVwczsKK+egmCA+IGFcLWtpbmRcLW9mXC1mYXJtXC10b29sOwor5qCOID4gY2hlc3RudXRcLWxlYXZlZFwtb2FrOwor6bmHID4gdGhlXC1zaWx2ZXJcLXBoZWFzYW50Owor6IuMID4gYXZlcnJob3JhXC1jYXJhbWJvbGE7Civpg5sgPiBvdXRlclwtd2FsbHNcLW9mXC1jaXR5Owor6YaiID4gbWluY2VkXC1waWNrbGVkXC1tZWF0Owor55yaID4gZGlzZWFzZVwtb2ZcLXRoZVwtZXllczsKK+iAsSA+IGFcLWtpbmRcLW9mXC1mYXJtXC10b29sOwor6KOJID4gc1wtc2VhbVwtaW5cLWFcLWdhcm1lbnQ7CivltKYgPiBhXC1tb3VudGFpblwtaW5cLWthbnN1Owor5YWVID4gYVwtZmVtYWxlXC1yaGlub2Nlcm9zOwor6biSID4gdGhlXC1lYXN0ZXJuXC1qYWNrZGF3Owor6bezID4gdGhlXC1zaWx2ZXJcLXBoZWFzYW50Owor6bayID4gc2liZXJpYW5cLWZseWNhdGNoZXI7CivpsLYgPiBrb25vc2lydXNcLXB1bmN0YXR1czsKK+mvpyA+IHRoZVwtc2lsdmVyeVwtcG9tZnJldDsKK+mvpSA+IHBvbWF0b211c1wtc2FsdGF0cml4Owor6a+VID4gY29yeXBoYWVuYVwtaGlwcHVydXM7CivprrYgPiBzZWJhc3RvZGVzXC1ndW50aGVyaTsKK+mnnyA+IHRlYW1cLW9mXC1mb3VyXC1ob3JzZXM7CivppYsgPiBvZmZlclwtZm9vZFwtc3VwZXJpb3I7Civpo4IgPiB3aW5kXC1pblwtaGlnaFwtcGxhY2VzOwor6aK+ID4gYmxvd2luZ1wtb2ZcLXRoZVwtd2luZDsKK+mgliA+IHpob3VcLWR5bmFzdHlcLXNjaG9vbDsKK+mgjSA+IHRvXC1yYWlzZVwtb25lJydzXC1oZWFkOwor6Z+YID4gYXJjaGVyJydzXC10aHVtYlwtcmluZzsKK+merCA+IGFcLXF1aXZlclwtb25cLWFcLWhvcnNlOwor6Zy2ID4gZG93bnBvdXJpbmdcLW9mXC1yYWluOwor6ZyuID4gZGVuc2VuZXNzXC1vZlwtY2xvdWRzOwor6ZG+ID4gYmVsbHNcLWh1bmdcLW9uXC1ob3JzZTsKK+mRtCA+IHRvXC1lbmdyYXZlXC1vclwtY2FydmU7CivpjoQgPiBpcmlkaXVtXC1laW5zdGVpbml1bTsKK+mLkSA+IHRvXC1lbmdyYXZlXC1vclwtY2FydmU7CivpiIMgPiBhbmNpZW50XC13aW5lXC12ZXNzZWw7CivphacgPiB0b1wtcGxlZGdlXC13aXRoXC13aW5lOwor6YSUID4gdmFyaW91c1wtcGxhY2VcLW5hbWVzOwor6KW0ID4gYVwtb25lXC1waWVjZVwtZ2FybWVudDsKK+ikgyA+IGFcLXNlYW1cLWluXC1hXC1nYXJtZW50Owor6KCwID4gY2VyYW1ieXhcLXJ1Z2ljb2xsaXM7Civon6ggPiB0aGVcLXNpYmVyaWFuXC1qZXJib2E7CivonZ0gPiB0aGVcLWxhcnZhXC1vZlwtbG9jdXN0Owor6JSKID4gbmFzdHVydGl1bVwtbW9udGFudW07Civok4cgPiBmb2xsaWNsZXNcLW9mXC1wbGFudHM7CivokoggPiBhblwtb3JnYW5pY1wtY29tcG91bmQ7CivokYcgPiBlbHNob2x0cmlhXC1wYWx0cmluaTsKK+iQhyA+IGF2ZXJyaG9yYVwtY2FyYW1ib2xhOwor6I6VID4gbnltcGhvaWRlc1wtcGVsdGF0dW07CivojLMgPiBjeXBlcnVzXC1tYWxhY2NlbnNpczsKK+iMmiA+IGFuXC1vcmdhbmljXC1jb21wb3VuZDsKK+iLsyA+IHBldGFzaXRlc1wtamFwb25pY3VzOwor6IuKID4gYW5cLW9yZ2FuaWNcLWNvbXBvdW5kOwor6ImrID4gYm93XC1vclwtcHJvd1wtb2ZcLWJvYXQ7CivoiLsgPiBib3dcLW9yXC1wcm93XC1vZlwtYm9hdDsKK+iIriA+IGJvd1wtb3JcLXByb3dcLW9mXC1ib2F0Owor6Ia+ID4gbWluY2VkXC1tZWF0XC1vclwtZmlzaDsKK+iFmSA+IGFuXC1vcmdhbmljXC1jb21wb3VuZDsKK+iEjiA+IGFuXC1vcmdhbmljXC1jb21wb3VuZDsKK+iDqSA+IGFuXC1vcmdhbmljXC1jb21wb3VuZDsKK+iCvCA+IGFuXC1vcmdhbmljXC1jb21wb3VuZDsKK+iCnyA+IGFuXC1vcmdhbmljXC1jb21wb3VuZDsKK+iAoiA+IGFcLWtpbmRcLW9mXC1mYXJtXC10b29sOwor576iID4gZmluZVwtd29vbGVuXC1mYWJyaWNzOwor576RID4gYVwtZ3VpZGVcLXRvXC1nb29kbmVzczsKK+e5siA+IHRvXC13b3JrXC1hc1wtYVwtdGFpbG9yOwor57aAID4gYVwta2luZFwtb2ZcLXNhY2tjbG90aDsKK+erkSA+IGJlXC12YXN0XC1hbmRcLWVuZGxlc3M7CivnppMgPiB0b1wtZHJpdmVcLW91dFwtZGVtb25zOwor56WQID4gZGl2aW5lXC1pbnRlcnZlbnRpb247CivnoJwgPiBhblwtb3JnYW5pY1wtY29tcG91bmQ7Civnn5QgPiBicmlsbGlhbnRcLVwob2ZcLWV5ZXNcKTsKK+eelSA+IGNhdGFyYWN0XC1pblwtdGhlXC1leWU7Civmq58gPiBjaGVzdG51dFwtbGVhdmVkXC1vYWs7CivmqqogPiBjaGVzdG51dFwtbGVhdmVkXC1vYWs7CivmoaogPiBteXRoaWNhbFwtZ2lhbnRcLXRyZWU7Civmn64gPiBmbGF0XC1waWVjZXNcLW9mXC13b29kOwor5pq1ID4gZHJ5XC1ieVwtZXhwb3NpbmdcLXN1bjsKK+aWnSA+IHNtYWxsXC1qYWRlXC13aW5lXC1jdXA7CivmlYQgPiB0b1wtcHV0XC1mb3J0aFwtZWZmb3J0Owor5pKNID4gdG9cLWhvbGRcLWluXC10aGVcLWhhbmQ7Civmj50gPiB0b1wtaG9sZFwtaW5cLXRoZVwtaGFuZDsKK+aPlSA+IHJvbGxcLXVwXC10aGVcLXNsZWV2ZXM7CivlsJcgPiB5b3VuZ2VyXC1vZlwtYnJvdGhlcnM7Civlo5AgPiB0aGVcLWltcGVyaWFsXC1zaWduZXQ7CivlnpUgPiB1c2VkXC1pblwtcGxhY2VcLW5hbWVzOwor5ZybID4gdXNlZFwtaW5cLXBsYWNlXC1uYW1lczsKK+WbiCA+IHRhbGtcLWluXC1vbmUnJ3NcLXNsZWVwOwor5ZiwID4gc2lnaFwtaW5cLWRpc2FwcHJvdmFsOwor5ZaeID4gY2hpcnBpbmdcLW9mXC1pbnNlY3RzOwor5ZSaID4gdm9taXRpbmdcLW9mXC1hbmltYWxzOwor5ZOMID4gdXNlZFwtaW5cLXRyYW5zbGF0aW9uOwor5ZG6ID4gdm9pY2VcLW9mXC1hbmdlclwtdmFzdDsKK+WQliA+IHVzZWRcLWluXC10cmFuc2xhdGlvbjsKK+WBmCA+IGFuY2llbnRcLWZhbWlseVwtbmFtZTsKK+S2ryA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor5LaSID4gb3V0c3RhbmRpbmdcLWFiaWxpdHk7CivktowgPiBhXC1wdXN0dWxlXC1vclwtcGltcGxlOwor5LaEID4gc3RyaXBlZFwtbW90dGxlZFwtcmF0Owor5LWxID4gcmVkXC1hbmRcLWJsYWNrXC1jb2xvcjsKK+S1riA+IHJlZFwtYW5kXC1ibGFja1wtY29sb3I7CivktZQgPiB0b1wtdHVyblwtb25cLXRoZVwtaGVlbDsKK+S0qiA+IGFcLWZhYnVsb3VzXC1jcmVhdHVyZTsKK+S0oCA+IGFcLXlvdW5nXC10YWlsZWRcLWRlZXI7CivksacgPiBhXC1raW5kXC1vZlwtZmlzaFwtZWVsczsKK+SwnCA+IGFcLWxhcmdlXC1lYXJ0aGVuXC1wb3Q7CivksJsgPiBhXC1sYXJnZVwtZWFydGhlblwtcG90Owor5K63ID4gbW92ZW1lbnRcLW9mXC1hXC1ob3JzZTsKK+SugyA+IHRvXC1nb1wtYmVmb3JlXC1vdGhlcnM7CivkrbkgPiBtb3ZlbWVudFwtb2ZcLWFcLWhvcnNlOwor5KuxID4gYVwtcGFydFwtb2ZcLXRoZVwtc2t1bGw7Civkq6kgPiB0b1wtc2hha2VcLW9uZScnc1wtaGVhZDsKK+SrhSA+IHRvXC1zaGFrZVwtb25lJydzXC1oZWFkOwor5Kq/ID4gdGhlXC10b3BcLW9mXC10aGVcLWhlYWQ7Civkqr0gPiBob2FyeVwtaGFpcmVkXC1wZXJzb247CivkqbcgPiB0aGVcLXNpZGVzXC1vZlwtYVwtc2hvZTsKK+SppyA+IHRvXC10aWVcLXVwXC1odXJyaWVkbHk7CivkqYwgPiB0b1wtaGF2ZVwtYVwtd29yblwtbG9vazsKK+SnlCA+IHRvXC1tZWV0XC1hdFwtdGhlXC1iYW5rOwor5KaZID4gYVwtZ292ZXJubWVudFwtYWdlbmN5Owor5KW0ID4gdG9cLWVuZ3JhdmVcLW9yXC1jYXJ2ZTsKK+SlpyA+IGFcLWZpbmVcLWtpbmRcLW9mXC1qYWRlOwor5KSGID4gYVwta2luZFwtb2ZcLXJpY2VcLXdpbmU7CivkpIEgPiBjb29rZWRcLW9yXC13ZWxsXC1kb25lOwor5KOtID4gYW5cLW9yZ2FuaWNcLWNvbXBvdW5kOwor5KKLID4gYVwtbWFyc2hhbFwtb3JcLWhlcmFsZDsKK+SgiiA+IHRvXC1jdXRcLW9mZlwtdGhlXC1mZWV0Owor5J+jID4gYW5cLWFuaW1hbFwtaW5cLWxlZ2VuZDsKK+SesyA+IHRvXC1zdHVtYmxlXC1hbmRcLWZhbGw7CivknaAgPiBhXC1raW5kXC1vZlwtd2lsZFwtYm9hcjsKK+SctiA+IGFcLXNtYWxsXC1raWRuZXlcLWJlYW47CivknIEgPiB0b1wtYWJ1c2VcLWFuZFwtaW5zdWx0Owor5JmSID4gdG9cLXN0b3JlXC1vclwtc2F2ZVwtdXA7CivkmY8gPiBzaG9ydFwtc2xlZXZlc1wtc2hpcnQ7CivkmYEgPiBjaGlsZHJlbicnc1wtZ2FybWVudHM7CivkmKogPiBjbG90aGVzXC13aXRob3V0XC1oZW07CivklqIgPiBmaXJzdFwtYm9yblwtc2lsa3dvcm07CivklpYgPiB0b1wtc2hvd1wtZmFtaWxpYXJpdHk7Civklb4gPiBhXC1raW5kXC1vZlwtdmVnZXRhYmxlOwor5JWfID4gYVwta2luZFwtb2ZcLXZlZ2V0YWJsZTsKK+SVmCA+IGFcLXZhcmlldHlcLW9mXC1mdW5ndXM7CivklYMgPiB0aGVcLXNoYWRlXC1vZlwtYVwtdHJlZTsKK+SUlyA+IGFcLWtpbmRcLW9mXC12ZWdldGFibGU7Civkk7cgPiBueW1waG9pZGVzXC1wZWx0YWx1bTsKK+STmiA+IGFcLWtpbmRcLW9mXC12ZWdldGFibGU7Civkk40gPiBjcnVjaWZlcm91c1wtZmxvd2VyczsKK+SSqCA+IGFcLWtpbmRcLW9mXC12ZWdldGFibGU7CivkkoggPiBzaWRlXC1iZWFtXC1vZlwtYVwtYm9hdDsKK+SSgCA+IHNob3J0XC1hbmRcLWRlZXBcLWJvYXQ7CivkkYcgPiBtZWRpY2luZVwtZm9yXC1hXC1zb3JlOwor5JCtID4gYVwtZGlzY2hhcmdlXC1vclwtZmx1eDsKK+SPuSA+IHRvXC13YXRjaFwtc3RlYWx0aGlseTsKK+SPtyA+IG1lZGljaW5lXC1mb3JcLWFcLXNvcmU7Civkj6ggPiB0b1wtc3dlbGxcLXVwXC1ncmVhdGx5Owor5I+GID4gYnV6emluZ1wtaW5cLXRoZVwtZWFyczsKK+SOvyA+IGJ1enppbmdcLWluXC10aGVcLWVhcnM7CivkjbcgPiB0b1wtY2hhc2VcLWVhY2hcLW90aGVyOwor5I2AID4gY2xvdGhlc1wtd2l0aG91dFwtaGVtOwor5IyOID4gdG9cLWJhc3RlXC1mb3JcLXNld2luZzsKK+SLuSA+IGJyZWFkdGhcLW9mXC1tYXRlcmlhbDsKK+SLsCA+IHRvXC1iaW5kXC1vclwtcmVzdHJhaW47CivkipkgPiBjb29rZWRcLW9yXC13ZWxsXC1kb25lOwor5Ie9ID4gYVwtY29hcnNlXC1iYW1ib29cLW1hdDsKK+SGryA+IGFcLXNob3J0XC1zaGFwZWRcLWZhY2U7Civkha8gPiBhXC12YXJpZXR5XC1vZlwtbWlsbGV0Owor5IWfID4gdmFyaWV0aWVzXC1vZlwtbWlsbGV0Owor5IWVID4gYVwtdmFyaWV0eVwtb2ZcLW1pbGxldDsKK+SFkiA+IGFcLXNoYXJwXC1lZGdlZFwtZ3Jhc3M7CivkgYsgPiB3aXRoXC1vbmVcLWV5ZVwtY2xvc2VkOwor5IGDID4gdG9cLWxvb2tcLWF0dGVudGl2ZWx5Owor5ICkID4gaW5zaWdodFwtb2ZcLWplYWxvdXN5Owor5ICjID4gdG9cLWxvb2tcLXN0ZWFkaWx5XC1hdDsKK+O/kyA+IGRpc2Vhc2VcLW9mXC10aGVcLWhvb2Y7CivjvrsgPiBub3RcLWFueVwtcHJvZ3Jlc3NpdmU7CivjvrYgPiBkaXNlYXNlXC1vZlwtdGhlXC1rbmVlOwor476iID4gYVwtbWFsaWduYW50XC1kaXNlYXNlOwor472tID4gdmFjYW50XC1sb3RcLW9yXC1zcGFjZTsKK+O9jCA+IHRoZVwtcmlkZ2VcLW9mXC1hXC1yb29mOwor472CID4gYVwtY3JhY2tlZFwtY29udGFpbmVyOwor472BID4gYVwtbGFyZ2VcLWVhcnRoZW5cLXBvdDsKK+O8mSA+IGJyaWNrd29ya1wtb2ZcLWFcLXdlbGw7CivjvJIgPiBhXC1raW5kXC1vZlwtYmlnXC1tZWxvbjsKK+O4tiA+IGNvbG9yXC1vZlwtdGhlXC1veHRhaWw7CivjuLUgPiB0aGVcLWxvd2luZ1wtb2ZcLWFuXC1veDsKK+O4pSA+IGhvdXNlaG9sZFwtcmVnaXN0ZXJzOwor47iiID4gY3Jvc3NcLWJlYW1cLW9mXC1hXC1iZWQ7CivjuJ4gPiBibG9ja3NcLWZvclwtcHJpbnRpbmc7CivjuJMgPiB0b1wtaGF2ZVwtZGlzYXBwZWFyZWQ7CivjuI8gPiBjb29rZWRcLW9yXC13ZWxsXC1kb25lOwor47iAID4gYmxhY2tlbmVkXC13aXRoXC1zb290Owor47ekID4gcm9zeVwtY2xvdWRzXC1vZlwtZGF3bjsKK+OyhyA+IHRoZVwtcmF0dGxlXC1vZlwtZHJ1bXM7Civjsb4gPiBhXC1raW5kXC1vZlwtb3JuYW1lbnRzOwor47G8ID4gYVwta2luZFwtb2ZcLW9ybmFtZW50czsKK+OxuSA+IHRvXC1kaWVcLWZyb21cLWRpc2Vhc2U7CivjsasgPiBkZXN0cm95ZWRcLW9yXC1ydWluZWQ7CivjsaogPiBzdHVwaWRcLWFuZFwtY29uZnVzZWQ7CivjsYogPiBhc3RobWF0aWNcLWJyZWF0aGluZzsKK+OxiSA+IG1vdmluZ1wtb2ZcLXRoZVwtbW91dGg7CivjsLQgPiB0b1wtZ3JhdGVcLW9uXC10aGVcLWVhcjsKK+OwsCA+IGFzdGhtYXRpY1wtYnJlYXRoaW5nOwor47CvID4gdGhlXC13YXlcLW9mXC1zcGVha2luZzsKK+OvgSA+IGhvdXNlaG9sZFwtcmVnaXN0ZXJzOwor46uvID4gaW5cLWNvbnRyYXZlbnRpb25cLW9mOwor46mmID4gdG9cLWxlYWRcLWJ5XC10aGVcLWhhbmQ7CivjqZggPiB0b1wtbW9vclwtdG9cLXRoZVwtYmFuazsKK+OplyA+IHRvXC1sZWFkXC1ieVwtdGhlXC1oYW5kOwor46idID4gdGhlXC12ZXJ5XC1oYXJkXC1zdHVmZjsKK+OogCA+IHRvXC1ob2xkXC1pblwtdGhlXC1oYW5kOwor76eeID4gZ292ZXJubWVudFwtb2ZmaWNpYWw7Civjp4UgPiB0b1wtdHVyblwtdXBzaWRlXC1kb3duOwor76avID4gc3BlY2llc1wtb2ZcLWFudGVsb3BlOwor46aTID4gZGlmZmljdWx0XC1pbnRlbnRpb247CivjpZ0gPiB0b1wtYXJvdXNlXC10b1wtYWN0aW9uOwor46KKID4gdG9cLXNldFwtc2lkZVwtYnlcLXNpZGU7CivjooIgPiBvZlwtaGlnaGx5XC1zdHJhdGVnaWM7Civjn7EgPiBzaGFwZVwtb2ZcLWFcLW1vdW50YWluOwor45+TID4gbG9mdHlcLWFuZFwtZGFuZ2Vyb3VzOwor45+SID4gbW91bnRhaW5zXC1hZGpvaW5pbmc7CivjnZ8gPiBpblwtY29udHJhdmVudGlvblwtb2Y7CivjnLEgPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+OcpiA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45yhID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7CivjnKAgPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+OcmSA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45yQID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7CivjnI0gPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+OciyA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45yCID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7Civjm7ggPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+ObtyA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45u1ID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7Civjm60gPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+ObrCA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45urID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7Civjm54gPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+ObnSA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45ucID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7Civjm5kgPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+ObmCA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45uWID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7Civjm5MgPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+ObjyA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45uFID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7Civjm4QgPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+OavSA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45q4ID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7CivjmrUgPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+OasSA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45qtID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7CivjmqsgPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+OaqCA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45irID4gdG9cLWZhbGxcLWludG9cLWFcLXdlbGw7Civjl7YgPiB0b1wtZXhwZWxcLXRoZVwtYnJlYXRoOwor45aqID4gc291bmRcLW9mXC1zdXJwcmlzaW5nOwor45S5ID4gYVwtc3VycGx1c1wtb3JcLWV4Y2VzczsKK+OUhyA+IGFcLWtpbmRcLW9mXC1mYXJtXC10b29sOwor45O9ID4gYVwta2luZFwtb2ZcLWZhcm1cLXRvb2w7Civjk7cgPiB0b1wtY3V0XC1vZmZcLXRoZVwtbm9zZTsKK+OSlCA+IHRvXC1zaGFrZVwtb25lJydzXC1oZWFkOwor45KEID4gYnJpdHRsZVwtYW5kXC1mcmlhYmxlOwor45KDID4gY2FwaXRhbFwtZm9ybVwtb2ZcLXR3bzsKK+ORmyA+IHRvXC1zaGFrZVwtb25lJydzXC1oZWFkOwor546WID4gYmxhY2tcLWNvbG9yZWRcLWphZGU7Civlk6ogPiB3aGljaFw/XC13aGVyZVw/XC1ob3dcPzsKK+eJsiA+IHNhY3JpZmljaWFsXC1hbmltYWw7CivmvKIgPiB0aGVcLWNoaW5lc2VcLXBlb3BsZTsKK+a8lSA+IHRyYW5zcG9ydFwtYnlcLXdhdGVyOwor6Zi0ID4gJydmZW1hbGUnJ1wtcHJpbmNpcGxlOwor5LuZID4gdGFvaXN0XC1zdXBlclwtYmVpbmc7CivpqbsgPiB0b1wtYmVcLXN0YXRpb25lZFwtYXQ7Civpp5AgPiB0b1wtYmVcLXN0YXRpb25lZFwtYXQ7Civoha4gPiBsb3dlclwtcGFydFwtb2ZcLWZhY2U7Civmi5IgPiB3YXJkXC1vZmZcLXdpdGhcLWhhbmQ7CivmoYIgPiBjYXNzaWFcLW9yXC1jaW5uYW1vbjsKK+actSA+IGNsdXN0ZXJcLW9mXC1mbG93ZXJzOwor5pu5ID4gbWluaXN0cnlcLW9mZmljaWFsczsKK+e9jiA+IGFuXC1lYXJ0aGVud2FyZVwtamFyOwor6ZmwID4gJydmZW1hbGUnJ1wtcHJpbmNpcGxlOwor5Li4ID4gc21hbGxcLXJvdW5kXC1vYmplY3Q7Civnn6kgPiBjYXJwZW50ZXInJ3NcLXNxdWFyZTsKK+iFiiA+IHllYXJcLWVuZFwtc2FjcmlmaWNlOwor6b6fID4gdHVydGxlXC1vclwtdG9ydG9pc2U7CivpgrggPiBvZmZpY2lhbFwtcmVzaWRlbmNlOwor5L6DID4gdXByaWdodFwtYW5kXC1zdHJvbmc7CivpgoIgPiB1bmV4cGVjdGVkXC1tZWV0aW5nOwor5oCvID4gbGFja2luZ1wtaW5cLWNvdXJhZ2U7CivnlLggPiBzdWJ1cmJzXC1vZlwtY2FwaXRhbDsKK+aNniA+IHNjb29wXC1vdXRcLW9mXC13YXRlcjsKK+aJmyA+IGNhcnJ5XC1vblwtc2hvdWxkZXJzOwor6JmUID4gYWN0XC13aXRoXC1yZXZlcmVuY2U7CivpnJYgPiBsb25nXC1zcGVsbFwtb2ZcLXJhaW47Civpn6cgPiBzdHJvbmdcLWFuZFwtcGxpYWJsZTsKK+eRviA+IGJyaWxsaWFuY2VcLW9mXC1nZW1zOwor5qGUID4gY2hpbmVzZVwtYmVsbGZsb3dlcjsKK+m4syA+IG1hbGVcLW1hbmRhcmluXC1kdWNrOwor6ZKXID4gb3JuYW1lbnRhbFwtaGFpcnBpbjsKK+W3hSA+IHN1bW1pdFwtb2ZcLW1vdW50YWluOwor5qioID4gb3NtYW50aHVzXC1mcmFncmFuczsKK+igoSA+IHdvb2RcLWJvcmluZ1wtaW5zZWN0Owor6LmCID4gdHJhbXBsZVwtdW5kZXJcLWZvb3Q7CivpqqUgPiB0aG9yb3VnaGJyZWRcLWhvcnNlOwor5ZSBID4gZXhwcmVzc1wtY29uZG9sZW5jZTsKK+mqhSA+IGFuXC1leGNlbGxlbnRcLWhvcnNlOwor56KJID4gcm9vbVwtbWFkZVwtb2ZcLXN0b25lOwor55afID4gaW50ZXJtaXR0ZW50XC1mZXZlcjsKK+e6oyA+IG5hbWVcLW9mXC1hblwtZW1wZXJvcjsKK+ejrCA+IG11c2ljYWxcLWluc3RydW1lbnQ7CivniL8gPiBoYWxmXC1vZlwtdHJlZVwtdHJ1bms7Civml44gPiBmbHV0dGVyaW5nXC1vZlwtZmxhZzsKK+WklCA+IG9uZVwtbGVnZ2VkXC1tb25zdGVyOwor5q6NID4gdG9cLXN0YXJ2ZVwtdG9cLWRlYXRoOwor6aqKID4gYVwtcHVyZVwtYmxhY2tcLWhvcnNlOwor5rmOID4gZmx1c2hlZFwtd2l0aFwtZHJpbms7CivllrUgPiB0aGVcLW1ld1wtb2ZcLXRoZVwtY2F0Owor54SZID4gZHJ5XC1vdmVyXC1zbG93XC1maXJlOwor57u+ID4gdG9cLXN0cmluZ1wtdG9nZXRoZXI7CivnnKYgPiBjb3JuZXJcLW9mXC10aGVcLWV5ZXM7CivnkYEgPiBmaW5lXC1waWVjZVwtb2ZcLWphZGU7CivmppggPiBjYXJwZW50ZXInJ3NcLXNxdWFyZTsKK+eysyA+IG5vblwtZ2x1dGlub3VzXC1yaWNlOwor6aSuID4gYVwtbGVnZW5kYXJ5XC1hbmltYWw7CivmsYogPiBhXC1icmFuY2hpbmdcLXN0cmVhbTsKK+e8gyA+IGxpZ2h0XC15ZWxsb3dcLWNvbG9yOwor5qqpID4gdGhlXC1ib2xlXC1vZlwtYVwtdHJlZTsKK+WlgSA+IGxhZHknJ3NcLXZhbml0eVwtY2FzZTsKK+aluCA+IG1hbGxvdHVzXC1qYXBvbmljdXM7CivpqrogPiB0aXBcLW9mXC1hXC1sb25nXC1ib25lOwor6Je/ID4gbG9waGFudGh1c1wtcnVnb3N1czsKK+aoviA+IHRoZVwtc2hhZGVcLW9mXC10cmVlczsKK+mFpCA+IHRvXC1kZWFsXC1pblwtc3Bpcml0czsKK+iHjCA+IGRyb3BzaWNhbFwtc3dlbGxpbmc7Civot6sgPiBzb3VuZFwtb2ZcLWZvb3RzdGVwczsKK+e2riA+IGVtYnJvaWRlcmVkXC1iYW5uZXI7Civop7MgPiBhblwtYW5jaWVudFwtbWVhc3VyZTsKK+adjCA+IHRoZVwtc3R1bXBcLWZcLWFcLXRyZWU7CivltasgPiBhXC1oaWxsXC1pblwtc2hhbnR1bmc7Civmk5cgPiB0b1wtYmVhdFwtdGhlXC1icmVhc3Q7CivohJQgPiBzbWFsbFwtbHVtcFwtb2ZcLW1lYXQ7CivphoUgPiB1bnN0cmFpbmVkXC1zcGlyaXRzOwor576wID4gY2FyYm9ueWxcLVwocmFkaWNhbFwpOwor6Ju4ID4gbG9uZ1wtbGVnZ2VkXC1zcGlkZXI7CivnnoAgPiB0b1wtbG9va1wtYXRcLWNsb3NlbHk7CivmrrMgPiBuYW1lXC1vZlwtb2xkXC13ZWFwb247CivltJ4gPiBtb3VudGFpblwtaW5cLXNoYW54aTsKK+WesiA+IGhpZ2hcLWFuZFwtZHJ5XC1wbGFjZTsKK+iZvyA+IGFcLWtpbmRcLW9mXC1zY29ycGlvbjsKK+eWsyA+IGNoaWxkaG9vZFwtZGlzZWFzZXM7Civnvb4gPiBhXC1sYXJnZVwtc3F1YXJlXC1uZXQ7CivnjawgPiBhXC1mYWJ1bG91c1wtbW9uc3RlcjsKK+m+nCA+IHR1cnRsZVwtb3JcLXRvcnRvaXNlOwor6b6WID4gZmxpZ2h0XC1vZlwtYVwtZHJhZ29uOwor6bicID4gYVwtc3BlY2llc1wtb2ZcLW15bmFoOwor6be9ID4gb3JpZW50YWxcLWJ1bGxmaW5jaDsKK+m0myA+IG1hbGVcLW1hbmRhcmluXC1kdWNrOwor6bSXID4gYWxjZWRvXC1iZW5nYWxlbnNpczsKK+mxtSA+IGh5cG9yaGFtcHVzXC1zYWp1cmk7CivprKAgPiB0b1wtbWFrZVwtYVwtdG9wXC1rbm90Owor6amqID4gYVwtcHVyZVwtYmxhY2tcLWhvcnNlOwor6amlID4gdGhvcm91Z2hicmVkXC1ob3JzZTsKK+mpiiA+IGFuXC1leGNlbGxlbnRcLWhvcnNlOwor6aS8ID4gc2FjcmlmaWNpYWxcLXZpY3RpbTsKK+mhiyA+IGxvd2VyXC1wYXJ0XC1vZlwtZmFjZTsKK+mglCA+IGdvb2RcLWFuZFwtYmVhdXRpZnVsOwor6Z+MID4gc3Ryb25nXC1hbmRcLXBsaWFibGU7CivpnbEgPiBzdHJvbmdcLWFuZFwtcGxpYWJsZTsKK+mdrSA+IHN0cm9uZ1wtYW5kXC1wbGlhYmxlOwor6Z2rID4gc3Ryb25nXC1hbmRcLXBsaWFibGU7Civph7UgPiBvcm5hbWVudGFsXC1oYWlycGluOwor6YeSID4ga2FuZ3hpXC1yYWRpY2FsXC0xNjc7CivphK4gPiBhbmNpZW50XC1wbGFjZVwtbmFtZTsKK+i9mSA+IHJpbmdzXC1vblwtdGhlXC15b2tlczsKK+i7sCA+IGFcLXJvd1wtb2ZcLWNhcnJpYWdlczsKK+iwvSA+IGFcLW1vdXRoXC1vclwtb3BlbmluZzsKK+iogSA+IGthbmd4aVwtcmFkaWNhbFwtMTQ5Owor6KW1ID4gYVwtcGxlYXRcLWluXC1hXC1za2lydDsKK+iksCA+IGxpZnRcLXVwXC10aGVcLXNraXJ0czsKK+ighiA+IGFcLWtpbmRcLW9mXC1zY29ycGlvbjsKK+iauSA+IGV1bG90YVwtcGVsaW9tcGhhbGE7CivomLcgPiBvbmVcLWxlZ2dlZFwtbW9uc3RlcjsKK+iWtyA+IGVsc2hvdHJpYVwtcGFsdHJpbmk7CivolbogPiBob3V0dHV5bmlhXC1jb3JkYXRhOwor6JO0ID4gZWRpYmxlXC13YXRlclwtcGxhbnQ7CivokbQgPiBwaHlzYWxpc1wtYWxrZWtlbmdpOwor6I2FID4gYW5zd2VyXDpcLXNtYWxsXC1iZWFuOwor6IyWID4gYWxsaXVtXC12aWN0b3JpYWxpczsKK+iKoyA+IG1lZGljaW5hbFwtcGxhbnRhZ287Civoh6AgPiBzbWFsbFwtbHVtcFwtb2ZcLW1lYXQ7Civoh5ggPiB5ZWFyXC1lbmRcLXNhY3JpZmljZTsKK+iHiCA+IHllYXJcLWVuZFwtc2FjcmlmaWNlOwor57+vID4gZ2xpc3RlbmluZ1wtcGx1bWFnZTsKK+e/liA+IGtzY1wtZXh0ZW5zaW9uXC0zMTA4Owor576nID4gY2FyYm94eWxcLVwocmFkaWNhbFwpOwor572IID4gYW5cLWVhcnRoZW53YXJlXC1qYXI7Civnt5cgPiBsaWdodFwteWVsbG93XC1jb2xvcjsKK+e2sCA+IHRvXC1zdHJpbmdcLXRvZ2V0aGVyOwor57SCID4gbmFtZVwtb2ZcLWFuXC1lbXBlcm9yOwor57OSID4gZm9vZFwtZm9yXC1hXC1qb3VybmV5Owor56iJID4gbm9uXC1nbHV0aW5vdXNcLXJpY2U7Civnp5QgPiBub25cLWdsdXRpbm91c1wtcmljZTsKK+einiA+IHJvb21cLW1hZGVcLW9mXC1zdG9uZTsKK+eaqiA+IGx1c3RlclwtXChvZlwtcGVhcmxzXCk7CivnmKcgPiBpbnRlcm1pdHRlbnRcLWZldmVyOwor55ecID4gYVwtc2NhYmJ5XC1iYWxkXC1oZWFkOwor55S/ID4gZmFybWluZ1wtcG9wdWxhdGlvbjsKK+eUiyA+IGFcLWphclwtd2l0aG91dFwtZWFyczsKK+eQpCA+IGphZGVcLW9mXC1qYWRlXC1iZWluZzsKK+eOmCA+IGNvdXJ0XC1kcmVzc1wtamV3ZWxzOwor542zID4gZmllcmNlXC1kb2dcLWxvb2tpbmc7CivnhY0gPiB0b1wtY29sb3VyXC1ieVwtc21va2U7CivngaUgPiBhXC1ncm91cFwtb2ZcLXNwcmluZ3M7Civms7IgPiBraW5kXC1vZlwtd2hpdGVcLXdpbmU7CivmsI0gPiBmaW5lXC13b29sbGVuXC1jbG90aDsKK+aqgSA+IHRoZVwtYm9sZVwtb2ZcLWFcLXRyZWU7Civmn7ogPiBhblwtb2xkXC1tYW4nJ3NcLXN0YWZmOwor5p27ID4gbGlndXN0cnVtXC1zaW5lbmVzZTsKK+admSA+IGFcLXRpbnlcLXdvb2RlblwtcG9zdDsKK+actiA+IGNsdXN0ZXJcLW9mXC1mbG93ZXJzOwor5pi3ID4gdG9cLWZlZWRcLWFcLXByaXNvbmVyOwor5pe8ID4gZ2VudGxlXC1hbmRcLWFmZmFibGU7Civmk60gPiB0cmFwXC1jYXRjaFwtYW5pbWFsczsKK+aSiCA+IHNjb29wXC1vdXRcLW9mXC13YXRlcjsKK+W9hCA+IG5vY2tcLWF0XC1lbmRcLW9mXC1ib3c7Civlt5QgPiBzdW1taXRcLW9mXC1tb3VudGFpbjsKK+W3kyA+IHN1bW1pdFwtb2ZcLW1vdW50YWluOwor5baoID4gYmlnXC1yb2NreVwtbW91bnRhaW47CivltZYgPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47Civls7kgPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47Civls7EgPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47CivlsqIgPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47Civlso0gPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47CivlpakgPiBsYWR5JydzXC12YW5pdHlcLWNhc2U7Civlo5wgPiBlYXJ0aGVuXC1qYXJcLW9yXC1qdWc7CivlorAgPiBhblwtZWFydGhlbndhcmVcLWphcjsKK+WikCA+IHRvXC1idWlsZFwtd2l0aFwtc29pbDsKK+WhjyA+IGhpZ2hcLWFuZFwtZHJ5XC1wbGFjZTsKK+WZiyA+IHRvXC1zd2FsbG93XC1oYXN0aWx5Owor5ZOwID4gaW5jb2hlcmVudFwtY2hhdHRlcjsKK+WDiiA+IHRhb2lzdFwtc3VwZXJcLWJlaW5nOwor5L23ID4gdG9cLWFjdFwtY29udHJhcnlcLXRvOwor5LqAID4gdHVydGxlXC1vclwtdG9ydG9pc2U7CivkuZEgPiBzdGFuZFwtc2lkZVwtYnlcLXNpZGU7CivkuKwgPiBoYWxmXC1vZlwtdHJlZVwtdHJ1bms7CivktqMgPiB0b1wtZ3JpbmRcLXRoZVwtdGVldGg7Civktp8gPiB0b1wtZ25hc2hcLXRoZVwtdGVldGg7CivktZUgPiBhXC12YXJpZXR5b2ZcLW1pbGxldDsKK+S0sSA+IGNha2VzXC1hbmRcLWJpc2N1aXRzOwor5LSmID4gYVwtbGVnZW5kYXJ5XC1hbmltYWw7Civks6ggPiB0aGVcLWZlbWFsZVwtcGhvZW5peDsKK+SzlCA+IGFcLXBpZ2VvblwtbGlrZVwtYmlyZDsKK+SzjiA+IGFcLXBpZ2VvblwtbGlrZVwtYmlyZDsKK+SxsyA+IGFcLWtpbmRcLW9mXC1zdHVyZ2VvbjsKK+SxoyA+IGFcLWxvbmdcLW5hcnJvd1wtZmlzaDsKK+SwqiA+IG1pc2NoaWV2b3VzXC1zcGlyaXQ7CivksKggPiBtaXNjaGlldm91c1wtc3Bpcml0Owor5K+xID4gdGhlXC1oYWlyXC1zdGFuZHNcLXVwOwor5K+PID4gdGhlXC1zaG91bGRlclwtYmxhZGU7Civkr4sgPiB0aGVcLXNob3VsZGVyXC1ibGFkZTsKK+SupSA+IGNvbG9yXC1vZlwtdGhlXC1ob3JzZTsKK+SunSA+IGFcLWxlZ2VuZGFyeVwtYW5pbWFsOwor5K2wID4gc3Ryb25nXC1zd2VldFwtc21lbGw7Civkra8gPiBzdHJvbmdcLXN3ZWV0XC1zbWVsbDsKK+StiyA+IHRvXC1lYXRcLXRvXC10aGVcLWZ1bGw7CivkrYMgPiB0b1wtZWF0XC10b1wtdGhlXC1mb29sOwor5Ky+ID4gY2FrZXNcLWFuZFwtYmlzY3VpdHM7CivkrLQgPiBmb2RkZXJcLWZvclwtYW5pbWFsczsKK+SsrCA+IHRvXC1lYXRcLXRvXC10aGVcLWZ1bGw7CivkrKggPiB0b1wtZWF0XC10b1wtdGhlXC1mdWxsOwor5KynID4gcm91bmRcLXNoYXBlZFwtY2FrZXM7Civkq5AgPiB0b1wtYmVuZFwtb25lJydzXC1oZWFkOwor5KqMID4gY3VzaGlvblwtZm9yXC1zYWRkbGU7CivkqIYgPiBhXC1raW5kXC1vZlwtcGhlYXNhbnQ7Civkp7wgPiB0aGVcLXRoZVwtc25vd1wtZ29vc2U7Civkp6YgPiBuYW1lXC1vZlwtYVwtaGlsbHNpZGU7Civkp4cgPiBuYW1lXC1vZlwtYVwtaGlsbHNpZGU7Civkpq4gPiBkb29yXC1vZlwtdGhlXC1jZW50ZXI7CivkppIgPiB0aGVcLWRvb3JcLWlzXC1jbG9zZWQ7CivkppAgPiB0aGVcLWJvbHRcLW9mXC1hXC1kb29yOwor5KWzID4gYVwtY2hlbWljYWxcLWVsZW1lbnQ7CivkpbIgPiBhXC1jaGVtaWNhbFwtZWxlbWVudDsKK+SlniA+IHRvXC1jdXRcLXdpdGhcLXNoZWFyczsKK+SlnSA+IGRlc3BlcmF0ZVwtZmlnaHRpbmc7CivkpIQgPiBmbHVzaGVkXC13aXRoXC1kcmluazsKK+SjuiA+IGZpbHRyYXRlZFwtdGhlXC13aW5lOwor5KOAID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor5KGgID4gc3Ryb25nXC1hbmRcLWR1cmFibGU7CivkoZsgPiBuYW1lXC1vZlwtYVwtY2FycmlhZ2U7CivkoKcgPiBoYXJkXC10b1wtZ29cLWZvcndhcmQ7CivkoKEgPiBzb3VuZFwtb2ZcLWZvb3RzdGVwczsKK+SfnSA+IHRvXC13YWxrXC1yaWdodFwtaW50bzsKK+SdniA+IG5hbWVcLW9mXC1hXC1pbW1vcnRhbDsKK+SbiSA+IHRvXC1pbmR1Y2VcLWJ5XC13b3JkczsKK+SapyA+IGN1cnZlZFwtd2l0aFwtYW5nbGVzOwor5JmDID4gc2xlZXZlbGVzc1wtY2xvdGhlczsKK+SYjSA+IGFcLWtpbmRcLW9mXC1zY29ycGlvbjsKK+SXuyA+IGFcLWtpbmRcLW9mXC1zZWFcLWNyYWI7Civkl6ggPiBsZXBzaW1hXC1zYWNjaGFyaW5hOwor5JejID4gaW5zZWN0XC1vZlwtbXVsYmVycnk7Civkl40gPiB3b29kXC1ib3JpbmdcLWluc2VjdDsKK+SWpyA+IGFcLXBvaXNvbm91c1wtaW5zZWN0Owor5JaTID4gb2ZcLWFcLXdhbGtpbmdcLXRpZ2VyOwor5JWqID4gdGhlXC13YXRlclwtcGxhbnRhaW47CivklLwgPiBzb3VuZFwtb2ZcLXRoZVwtZ3Jhc3M7CivklIMgPiBjb3JkYXRlXC1ob3V0dHV5bmlhOwor5JOrID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor5JOoID4gbG9uZ1wtbmVja2VkXC1ib3R0bGU7Civkk6AgPiB0aGVcLXdhdGVyXC1wbGFudGFpbjsKK+STliA+IGNuaWRpdW1cLW9mZmljaW5hbGU7Civkk4MgPiBtZWxhbmNob2x5XC1hbmRcLXNhZDsKK+SSnSA+IHJvb3RcLW9mXC10aGVcLXRoYXRjaDsKK+SRmSA+IHB1dFwtb3V0XC10aGVcLXRvbmd1ZTsKK+SRhiA+IGZlZWxcLWxpa2VcLXZvbWl0aW5nOwor5JCUID4gbXVzY2xlXC1vZlwtdGhlXC1jYWxmOwor5I6+ID4gYmlnXC1hbmRcLXJvdW5kXC1leWVzOwor5I60ID4gYVwtbGVnZW5kYXJ5XC1zcGlyaXQ7CivkjqogPiB0aGVcLXN0YWxrXC1vZlwtZ3JhaW47CivkjpQgPiBmaW5lXC1hbmRcLXNvZnRcLWhhaXI7Civkjo8gPiB5b3VuZ1wtYmlyZHNcLWZseWluZzsKK+SOjSA+IGZpbmVcLWFuZFwtc29mdFwtaGFpcjsKK+SNqSA+IHRvXC1vZmZlclwtcHJvdmlzaW9uOwor5I2jID4gYVwta2luZFwtb2ZcLWZpc2hcLW5ldDsKK+SMjSA+IGZpbmVcLXdvdmVuXC1wYXR0ZXJuOwor5IyJID4gdGhlXC1sYXJnZVwtb2ZcLWFcLW5ldDsKK+SLlyA+IHN0cm9uZ1wtYW5kXC1kdXJhYmxlOwor5IuIID4gdG9cLWJpbmRcLWxvb3NlXC1oZW1wOwor5ImsID4gY29hcnNlXC1iYW1ib29cLW1hdHM7CivkiK4gPiBhXC13b3ZlblwtaW5zdHJ1bWVudDsKK+SHsyA+IGFcLW1lbW9yYWR1bVwtdGFibGV0Owor5IaqID4gY29sb3JcLW9mXC10aGVcLWxpZ2h0Owor5IalID4gdG9cLXBpZXJjZVwtdGhyb3VnaGo7CivkhqQgPiB0b1wtcGllcmNlXC10aHJvdWdoajsKK+SGkSA+IGFcLWxpdHRsZVwtcHJvdHJ1ZGVkOwor5IW9ID4gZnJhZ3JhbmNlXC1vclwtYXJvbWE7CivkhbEgPiB0b1wtZWF0XC10b1wtdGhlXC1mdWxsOwor5IWnID4gZmluZVwtcmljZVwtc2VlZGxpbmc7CivkhZ0gPiB0aGVcLXN0YWxrXC1vZlwtZ3JhaW47CivkhZwgPiB0b1wtc3RvcmVcLXVwXC1ncmFpbnM7CivkhYAgPiB0aGVcLXN0YWxrXC1vZlwtZ3JhaW47CivkhJogPiB0b1wtd29yc2hpcFwtdGhlXC1nb2Q7Civkg70gPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47Civkg5wgPiBhXC1maW5lXC1ibGFja1wtc3RvbmU7CivkgYogPiBkYXJrXC1hbmRcLWRlZXBcLWV5ZWQ7CivkgJ4gPiB3aXRoXC1oZWF2eVwtZXllbGlkczsKK+SAlyA+IHRvXC1sb29rXC1hc2thbmNlXC1hdDsKK+O/jCA+IGx1bXBcLWluXC10aGVcLXRocm9hdDsKK+O8oyA+IGJyaWNrc1wtb2ZcLXRoZVwtd2VsbDsKK+O8hyA+IGZpbmVcLWphZGVcLW9yXC1hZ2F0ZTsKK+O7lyA+IGFcLXN0cmluZ1wtb2ZcLXBlYXJsczsKK+O7iiA+IGFcLXJlZFwtY29sb3JlZFwtamFkZTsKK+O7hSA+IGphZGVcLWRlY29yYXRlZFwtY2FwOwor47qnID4gYVwtd2hpdGVcLXllbGxvd1wtZG9nOwor47mkID4gbGFja2luZ1wtaW5cLWNvdXJhZ2U7CivjuL0gPiBhXC10d29cLXllYXJzXC1vbGRcLW94Owor47isID4gYVwtdHdvXC15ZWFyc1wtb2xkXC1veDsKK+O4iCA+IHNjb3JjaGVkXC1vclwtYnVybmVkOwor47ezID4gY29sb3JcLW9mXC10aGVcLWZsYW1lOwor47eiID4gYnVuZGxlXC1vZlwtY2hhcmNvYWw7Civjt6AgPiBhXC13aWxsXC1vJydcLXRoZVwtd2lzcDsKK+O2tiA+IHNjb3JjaGVkXC1vclwtYnVybmVkOwor47WTID4gdGhlXC13YXRlclwtaXNcLWNsZWFyOwor47S+ID4gc3dlbGxpbmdcLW9yXC1yaXNpbmc7Civjs4IgPiB0b1wtZm9sbG93XC1hXC1jb3Vyc2U7CivjsqEgPiB0aGlja1wtY29hdFwtb2ZcLWhhaXI7CivjspcgPiB0b1wtc21vb3RoXC10aGVcLWhhaXI7Civjr7YgPiB0aGVcLWNvaXJcLXBhbG1cLXRyZWU7Civjr7IgPiBhXC13b29kZW5cLWZyYW1ld29yazsKK+OvmyA+IGdvdXJkXC1zaGFwZWRcLWRhdGVzOwor4667ID4gdG9cLXNjcmF0Y2hcLWxpZ2h0bHk7Civjro0gPiBhbWVtb3JhbmR1bVwtdGFibGV0Owor462oID4gdGhlXC1jb2NvYVwtbnV0XC1wYWxtOwor462hID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor462dID4gbmFtZVwtb2ZcLWFcLXBhdmlsaW9uOwor46y0ID4gdGhlXC1tb29uXC1pc1wtZGltbWVkOwor46ySID4gdGhlXC1zdW5cLWFyZVwtZGltbWVkOwor46yOID4gbW90ZXNcLWluXC1hXC1zdW5iZWFtOwor46umID4gb2ZcLWxvb2tcLW9mXC10aGVcLXN1bjsKK+OrniA+IG9mXC1sb29rXC1vZlwtdGhlXC1zdW47CivjqrggPiB0b1wtZmlsbFwtYVwtY3VwXC13aXRoOwor46mDID4gdG9cLXRha2VcLW9yXC1jYXB0dXJlOwor46i9ID4gdG9cLWN1dFwtb3JcLXJpcFwtb3BlbjsKK+OooSA+IHRvXC1wdXNoXC13aXRoXC1oYW5kczsKK+OonCA+IHRvXC1oZWxwXC1lYWNoXC1vdGhlcjsKK++niCA+IGxpZ3VzdHJ1bVwtc2luZW5lc2U7Civjp4AgPiB0aGVcLWJvbHRcLW9mXC1hXC1kb29yOwor46a+ID4gdGhlXC1ib2x0XC1vZlwtYVwtZG9vcjsKK++mhyA+IGFcLXB1cmVcLWJsYWNrXC1ob3JzZTsKK+OluCA+IHRvXC1zeW1wYXRoaXplXC13aXRoOwor46WoID4gdW5oYXBweVwtZGlzcGxlYXNlZDsKK+OkqiA+IHRvXC1maW5kXC1mYXVsdFwtd2l0aDsKK++kpiA+IHllYXJcLWVuZFwtc2FjcmlmaWNlOwor76SIID4gdHVydGxlXC1vclwtdG9ydG9pc2U7CivvpIcgPiB0dXJ0bGVcLW9yXC10b3J0b2lzZTsKK+OjjCA+IHRvXC1qb2luXC10d29cLXRoaW5nczsKK+OhryA+IHdhbGxcLW9mXC1hXC1idWlsZGluZzsKK+OgpiA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OgoCA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OgkyA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OgjyA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OghiA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OfsyA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OfsCA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OfqiA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OfpiA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OfmCA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OfjSA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OfiiA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OfiCA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OfhiA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OfhCA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OfgCA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OeuyA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OetCA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OesyA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OesiA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OesCA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OeqCA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OepiA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OYsyA+IGFcLWhpbGxvY2tcLW9yXC1tb3VuZDsKK+OYsSA+IHRvXC1mYWxsXC1pbnRvXC1ydWluczsKK+OYnCA+IGFcLWtpbmRcLW9mXC1zaWxrd29ybTsKK+OWhSA+IHNvdW5kXC1vZlwtYVwtd2hpc3RsZTsKK+OWgyA+IHRvXC1yb2FyXC1vZlwtYW5pbWFsczsKK+OUoiA+IHRvXC1icmVha1wtc29tZXRoaW5nOwor55q/ID4gc2hhbGxvd1wtY29udGFpbmVyOwor5bGTID4gZ2lnYW50aWNcLXN0cmVuZ3RoOwor5rS+ID4gc2Nob29sXC1vZlwtdGhvdWdodDsKK+WnkyA+IG9uZScnc1wtZmFtaWx5XC1uYW1lOwor54WOID4gZnJ5XC1pblwtZmF0XC1vclwtb2lsOwor6KWBID4gc3dhZGRsaW5nXC1jbG90aGVzOwor5ZOIID4gc291bmRcLW9mXC1sYXVnaHRlcjsKK+m4miA+IHNwZWNpZXNcLW9mXC1wYXJyb3Q7CivmrKcgPiB0cmFuc2xpdFwuXDpcLWV1cm9wZTsKK+m1oSA+IHNwZWNpZXNcLW9mXC1wYXJyb3Q7CivorqIgPiBkcmF3XC11cFwtYWdyZWVtZW50Owor5YGPID4gaW5jbGluZWRcLW9uZVwtc2lkZTsKK+atlCA+IGJsb3dcLXRocm91Z2hcLW5vc2U7Civln7kgPiBiYW5rXC11cFwtd2l0aFwtZGlydDsKK+a8qyA+IG92ZXJmbG93XC1vZlwtd2F0ZXI7CivkvqAgPiBjaGl2YWxyb3VzXC1wZXJzb247Civlp4YgPiBjaGlsZCcnc1wtZ292ZXJuZXNzOwor55uSID4gc21hbGxcLWJveFwtb3JcLWNhc2U7CivlhJIgPiBjb25mdWNpYW5cLXNjaG9sYXI7CivpmKogPiBoaWxsc2lkZVwtZmFybWxhbmQ7Civov4ggPiB0YWtlXC1hXC1iaWdcLXN0cmlkZTsKK+aNjyA+IHBpY2tcLXdpdGhcLWZpbmdlcnM7CivmtZkgPiB6aGVqaWFuZ1wtcHJvdmluY2U7CivnracgPiBiYW1ib29cLXdhdGVyXC1waXBlOwor6ImYID4gY291bnRlclwtZm9yXC1zaGlwczsKK+i2gSA+IHRha2VcLWFkdmFudGFnZVwtb2Y7CivpiaIgPiBlYXJ0aGVud2FyZVwtYmFzaW47Civok6wgPiB0eXBlXC1vZlwtcmFzcGJlcnJ5Owor6L6WID4gbGluY2hwaW5cLW9mXC13aGVlbDsKK+mAhSA+IG1lZXRcLXVuZXhwZWN0ZWRseTsKK+WYjiA+IHNvdW5kXC1vZlwtbGF1Z2h0ZXI7CivphaMgPiBlbmpveVwtaW50b3hpY2FudHM7CivppbogPiBzdHVmZmVkXC1kdW1wbGluZ3M7Civlko8gPiBzaW5nXC1zb25nXC1vclwtcG9lbTsKK+mStSA+IGVhcnRoZW53YXJlXC1iYXNpbjsKK+aQgCA+IGdpdmVcLWhlbHBpbmdcLWhhbmQ7CivmjbYgPiBzdHJpa2VcLXdpdGhcLXN0aWNrOwor5YioID4gY2FycGVudGVyJydzXC1wbGFuZTsKK+iglSA+IGV1bWVuZXNcLXBvbGlmb21pczsKK+mlqCA+IHN0dWZmZWRcLWR1bXBsaW5nczsKK+W0hiA+IGtvbmd0b25nXC1tb3VudGFpbjsKK+ebhSA+IHNtYWxsXC1jdXBcLW9yXC1ib3dsOwor5qKGID4gd2F0Y2htYW4nJ3NcLXJhdHRsZTsKK+W1hyA+IG1vdW50YWluXC1pblwtaGVuYW47CivogLcgPiBlYXJzXC1oYW5naW5nXC1kb3duOwor576MID4gcWlhbmdcLW5hdGlvbmFsaXR5Owor6IueID4gYVwtdmFyaWV0eVwtb2ZcLXJ1c2g7CivpuaYgPiBzcGVjaWVzXC1vZlwtcGFycm90Owor6JecID4gY2hlbm9wb2RpdW1cLWFsYnVtOwor6ImEID4gc3Rlcm5cLW9mXC1hXC12ZXNzZWw7CivpuYkgPiBzcGVjaWVzXC1vZlwtcGFycm90Owor5bOBID4geWVsbG93XC1kaXJ0XC1tb3VudDsKK+mVlCA+IGhpZ2hcLXF1YWxpdHlcLWlyb247CivpsqsgPiBjYXJhc3NpdXNcLWF1cmF0dXM7CivpvocgPiB0b1wtc2hvd1wtdGhlXC10ZWV0aDsKK+ayrSA+IHJpdmVyXC1pblwtc2hhbnR1bmc7CivmpqsgPiBtb3J0aXNlXC1hbmRcLXRlbm9uOwor6JCLID4gbHV4dXJpYW50XC1mb2xpYWdlOwor6YauID4gcmVsaWdpb3VzXC1zZXJ2aWNlOwor54mdID4gZmVtYWxlXC1vZlwtc3BlY2llczsKK+abtyA+IHdoeVw/XC13aGF0XD9cLXdoZXJlXD87CivnkbcgPiBmaW5lXC1xdWFsaXR5XC1qYWRlOwor6ICmID4gcGxvd1wtc2lkZVwtYnlcLXNpZGU7CivpuLYgPiB0aGVcLWVhc3Rlcm5cLWVncmV0Owor56+mID4gZmluZVwtdG9vdGhlZFwtY29tYjsKK+WmgSA+IGFjdFwtYXNcLWdvXC1iZXR3ZWVuOwor6I2lID4gYVwtY291bnR5XC1pblwtaGVuYW47CivmiL0gPiB0b1wtYmFsZVwtb3V0XC13YXRlcjsKK+aesyA+IHRyaWZvbGlhdGVcLW9yYW5nZTsKK+akkCA+IHplbGtvd2FcLWFjdW1pbmF0YTsKK+W0pCA+IG1vdW50YWluXC1pblwtaGVuYW47CivprYkgPiBhXC1raW5kXC1vZlwtbW9uc3RlcjsKK+miniA+IHRoZVwtdGVtcG9yYWxcLWJvbmU7CivplLQgPiBoaWdoXC1xdWFsaXR5XC1pcm9uOwor56yVID4gYmFtYm9vXC13YXRlclwtcGlwZTsKK+iAqSA+IHRvXC1wbG91Z2hcLlwtdG9cLXNvdzsKK+W7qCA+IGdvdmVybm1lbnRcLW9mZmljZTsKK+ifriA+IHR5cGVcLW9mXC1lYXJ0aHdvcm07Civom7EgPiBraW5kXC1vZlwtYnV0dGVyZmx5Owor56azID4gcHJheVwtb3JcLXNhY3JpZmljZTsKK+eeoiA+IGV5ZXNpZ2h0XC1vYnNjdXJlZDsKK+iUuCA+IGNvdW50ZXJcLWZvclwtcGxhbnQ7CivonoUgPiBcKGludGVzdGluYWxcLXdvcm1cKTsKK+elpyA+IGFuXC1hbmNlc3RyYWxcLWhhbGw7Civmn50gPiB3YXRjaG1hbicnc1wtcmF0dGxlOwor6KCDID4gdGhlXC1zb2xpdGFyeVwtd2FzcDsKK+icviA+IHRoZVwtc29saXRhcnlcLXdhc3A7CivogYMgPiBlYXJzXC13aXRob3V0XC1yaW1zOwor6ICcID4gc3BhZGVcLXNoYXBlZFwtdG9vbDsKK+aFnSA+IGRvXC1ldmlsXC1pblwtc2VjcmV0Owor5bqzID4gYVwtbG93XC1idWlsdFwtaG91c2U7CivpvKIgPiBhXC12YXJpZXR5XC1vZlwtbW9sZTsKK+iauiA+IGFcLWJvYVwtY29uc3RyaWN0b3I7CivpoqUgPiB0aGVcLXRlbXBvcmFsXC1ib25lOwor56GHID4gYVwta2luZFwtb2ZcLW1pbmVyYWw7Civnoa0gPiBhXC1jcnVkZVwtc2FsdHBldHJlOwor6IOoID4gYVwta2luZFwtb2ZcLXByb3RlaW47CivpvZwgPiB0b1wtc2hvd1wtdGhlXC10ZWV0aDsKK+m9hCA+IHJlZFwtc29yZXNcLW9uXC1ub3NlOwor6bufID4gYmxhY2tcLWFuZFwtc2hpbmluZzsKK+m5gSA+IHNwZWNpZXNcLW9mXC1waWdlb247CivptbUgPiBzY29wc1wtc2VtaXRvcnF1ZXM7CivptZMgPiBzcGVjaWVzXC1vZlwtcGlnZW9uOwor6a+9ID4gY2FyYXNzaXVzXC1hdXJhdHVzOwor6a64ID4gc2NpYWVuYVwtYWxiaWZsb3JhOwor6a2rID4gdGhlXC15b3VuZ1wtb2ZcLWZpc2g7CivprY4gPiBhXC1raW5kXC1vZlwtbW9uc3RlcjsKK+mrvSA+IHRvXC1kcmVzc1wtdGhlXC1oYWlyOwor6aWpID4gc2FjcmZpY2lhbFwtdmljdGltOwor6aSDID4gc3R1ZmZlZFwtZHVtcGxpbmdzOwor6aSCID4gdG9cLW9idGFpblwtYnlcLWhvb2s7Civpo6kgPiBzdHVmZmVkXC1kdW1wbGluZ3M7CivpobMgPiB0aGVcLXRlbXBvcmFsXC1ib25lOwor6aGsID4gdGhlXC10ZW1wb3JhbFwtYm9uZTsKK+meuCA+IGxlYXRoZXJcLWFybVwtZ3VhcmQ7CivpnrIgPiBsZWF0aGVyXC1hcm1cLWd1YXJkOwor6Z2/ID4gdGhlXC1sZWdcLW9mXC1hXC1ib290Owor6Zq4ID4gYmVcLXN1YnNlcnZpZW50XC10bzsKK+matyA+IGJlXC1zdWJzZXJ2aWVudFwtdG87CivplqogPiB0b1wtbG9zZVwtbG9zdFwtaXRlbTsKK+mRpCA+IGNhcnBlbnRlcicnc1wtcGxhbmU7CivpkYwgPiBoaWdoXC1xdWFsaXR5XC1pcm9uOwor6Y2HID4gaGlnaFwtcXVhbGl0eVwtaXJvbjsKK+mKoCA+IHJob2RpdW1cLXJ1dGhlbml1bTsKK+mJlSA+IHByb21ldGhpdW1cLWJyb256ZTsKK+mJiyA+IGNhcnBlbnRlcicnc1wtcGxhbmU7CivpiLMgPiBjb2x1bWJpdW1cLW5pb2JpdW07Civphq0gPiBtb3VsZHNcLW9uXC1saXF1aWRzOwor6YaRID4gdG9cLXN0cmFpblwtc3Bpcml0czsKK+mFuiA+IGRyaW5rXC13aXRoXC1vdGhlcnM7CivpgoEgPiB0YWtlXC1hXC1iaWdcLXN0cmlkZTsKK+i9hCA+IGxpbmNocGluXC1vZlwtd2hlZWw7Civoso0gPiBhXC1mb3hcLWxpa2VcLWFuaW1hbDsKK+ixiyA+IGNlcmVtb25pYWxcLXZlc3NlbDsKK+iogiA+IGRyYXdcLXVwXC1hZ3JlZW1lbnQ7CivoprwgPiBleHBsYWluXC1pblwtZGV0YWlsOwor6KaZID4gZXhwbGFpblwtaW5cLWRldGFpbDsKK+idoSA+IGV1bWVuZXNcLXBvbGlmb21pczsKK+iclCA+IGlubGFpZFwtc2hlbGxcLXdvcms7Civom7ogPiBraW5kXC1vZlwtYnV0dGVyZmx5Owor6JqmID4gYVwtYm9hXC1jb25zdHJpY3RvcjsKK+iYtSA+IHBoeXNhbGlzXC1hbmd1bGF0YTsKK+iXqCA+IGtpbmRcLW9mXC1yYXNwYmVycnk7CivolbggPiB3YXRlclwtbGlseScnc1wtbGVhZjsKK+iVkSA+IHZhbGVyaWFuYVwtdmlsbG9zYTsKK+iRjiA+IGh1bXVsdXNcLWphcG9uaWN1czsKK+iPoyA+IGFydGVtaXNpYVwtYXBpYWNlYTsKK+iOmyA+IHN0YWxrc1wtb2ZcLWdyYXNzZXM7CivojI0gPiB0b1wtYmVcLWNpcmN1bXNwZWN0Owor572bID4gbGFyZ2VcLWZpc2hpbmdcLW5ldDsKK+e8vSA+IGVhcnRoZW53YXJlXC1iYXNpbjsKK+e4sCA+IGJhbmRcLWZvclwtdGhlXC1oYWlyOwor57aOID4gc2lsa1wtYnJhaWRlZFwtY29yZDsKK+e0rCA+IGtpbmRcLW9mXC10aGluXC1zaWxrOwor57G4ID4gcG93ZGVyeVwtc3Vic3RhbmNlOwor57GTID4gYmlnXC13aW5ub3dcLWJhc2tldDsKK+evqCA+IGNvYXJzZVwtYmFtYm9vXC1tYXQ7CivnroYgPiBmaW5lXC10b290aGVkXC1jb21iOwor56WKID4gcml2ZXJcLWluXC1zaGFuZG9uZzsKK+eYtSA+IGFcLXdhc3RpbmdcLWRpc2Vhc2U7CivnkqsgPiBwZW5kYW50XC1vcm5hbWVudHM7CivnkqYgPiBmaW5lXC1xdWFsaXR5XC1qYWRlOwor546eID4gYW5cLWluZmVyaW9yXC1hZ2F0ZTsKK+eGgCA+IHRoZVwtYmxhemVcLW9mXC1maXJlOwor54GOID4gbW92ZW1lbnRcLW9mXC13YXRlcjsKK+a5kSA+IHRvXC1zdHJhaW5cLXNwaXJpdHM7CivmuLAgPiBmb3JtaW5nXC1vclwtcmlzaW5nOwor5rS2ID4gdGhlXC1ydXNoXC1vZlwtd2F0ZXI7CivmnKAgPiBjb2xvclwtb2ZcLXRoZVwtbW9vbjsKK+aalCA+IG5hbWVcLW9mXC1hXC1jb3VudHJ5Owor5pSwID4gdG90YWxseVwtZXhoYXVzdGVkOwor5o6rID4gYmVcLW9uXC1uaWdodFwtd2F0Y2g7CivmjaUgPiB0b1wtYmVuZFwtdGhlXC13cmlzdDsKK+aKjCA+IHRvXC1iYWxlXC1vdXRcLXdhdGVyOwor5oSwID4gY2xlYXJuZXNzXC1vZlwtbWluZDsKK+W8liA+IHBob25ldGljXC1mb3JcLScndGUnJzsKK+W1hiA+IG1vdW50YWluXC1pblwtaGVuYW47Civlsa0gPiBnaWdhbnRpY1wtc3RyZW5ndGg7CivlsKggPiBzaGFnZ3lcLWhhaXJlZFwtZG9nOwor5aSKID4ga2FuZ3hpXC1yYWRpY2FsXC0zNTsKK+WWvyA+IGNoaXJwaW5nXC1vZlwtYmlyZHM7CivllrwgPiB1c2VkXC1waG9uZXRpY2FsbHk7CivllrkgPiBjaGVtaWNhbFwtY29tcG91bmQ7Civlk7UgPiB0aGVcLWNyeVwtb2ZcLWFcLWJpcmQ7Civlk7QgPiBjcnlpbmdcLW9mXC1pbmZhbnRzOwor5ZCiID4gdm9taXRpbmdcLW9mXC1hXC1kb2c7CivlgIggPiB0b1wtaW5kdWNlXC10b1wtY29tZTsKK+S/oCA+IGNoaXZhbHJvdXNcLXBlcnNvbjsKK+S/iCA+IHRvXC1pbmZvcm1cLXF1aWNrbHk7Civku4IgPiBzdXJwbHVzXC1vclwtZXhjZXNzOwor5LmqID4gYVwtYmVuZFwtaW5cLWFcLXJpdmVyOwor5LawID4gZmVhdGhlclwtb3JuYW1lbnRzOwor5LaWID4gZGlzZWFzZVwtb2ZcLXRvbmd1ZTsKK+S1nCA+IHRvXC1wbG91Z2hcLWFuZFwtc293Owor5LSKID4gdGhlXC1jcm93XC1waGVhc2FudDsKK+SzpCA+IGFcLWtpbmRcLW9mXC1zdHJhbmdlOwor5LOZID4gYVwtZWdyZXRcLWxpa2VcLWJpcmQ7Civkr6UgPiB3aXRoXC1hXC1oaWdoXC1za3VsbDsKK+SvoiA+IHBhcnRpYWxcLXBhcmFseXNpczsKK+SuqyA+IGFcLWJpZ1wtbXVsZVwtYW5cLWFzczsKK+SumiA+IGRpc2Vhc2VzXC1vZlwtaG9yc2U7CivkrpAgPiBpblwtZ29vZFwtY29uZGl0aW9uOwor5K2UID4gc3RlYW1lZFwtZHVtcGxpbmdzOwor5KywID4gbGlnaHRcLXJlZnJlc2htZW50Owor5KyVID4gc291bmRcLW9mXC10aGVcLXdpbmQ7CivkrI0gPiB0aGVcLXNvdW5kXC1vZlwtd2luZDsKK+SshiA+IGFcLWJsdXN0ZXJpbmdcLWdhbGU7CivkrIMgPiB0aGVcLXNvdW5kXC1vZlwtd2luZDsKK+SsgCA+IHNvdW5kXC1vZlwtdGhlXC13aW5kOwor5KumID4gdGhlXC1sb3dlclwtamF3Ym9uZTsKK+SrnyA+IGZhY2lhbFwtY29tcGxleGlvbjsKK+SrjSA+IHRvXC1ib3dcLW9uZScnc1wtaGVhZDsKK+SriSA+IGZhY2lhbFwtYXBwZWFyYW5jZTsKK+SolSA+IHBvdXJpbmdcLXdpdGhcLXJhaW47Civkp7ogPiB0aGVcLW1hbGVcLW9mXC1iaXJkczsKK+SmqiA+IHNvdW5kXC1vZlwtdGhlXC1kb29yOwor5KadID4gc291bmRcLW9mXC10aGVcLWRvb3I7CivkppYgPiBzb3VuZFwtb2ZcLXRoZVwtZG9vcjsKK+SmgyA+IHRvXC1kaWdcLXdpdGhcLWFcLWhvZTsKK+SjuyA+IGNvbG9yXC1vZlwtdGhlXC13aW5lOwor5KOqID4gY29sb3JcLW9mXC10aGVcLXdpbmU7Civkop0gPiB0aGVcLW5leHRcLWluXC1vcmRlcjsKK+ShtyA+IG5vaXNlXC1vZlwtdmVoaWNsZXM7CivkoaogPiBmYW5cLW9mXC1hXC1jYXJyaWFnZTsKK+ShmSA+IGFuXC1hcm1lZFwtY2FycmlhZ2U7CivknpUgPiBjb2xvclwtb2ZcLXRoZVwtZmlyZTsKK+SegiA+IGZhaXJseVwtcHJvc3Blcm91czsKK+SduiA+IHRvXC1waWVyY2VcLXRocm91Z2g7CivknbkgPiBmYWlybHlcLXByb3NwZXJvdXM7CivknbMgPiB0b1wta2lsbFwtZm9yXC1tb25leTsKK+SdsiA+IGZhcmV3ZWxsXC1wcmVzZW50czsKK+ScoiA+IGNydWVsXC1hbmRcLXZpb2xlbnQ7CivkmqAgPiB1bmJyb2tlblwtZmlyZXdvb2Q7Civkmp0gPiBuZXdcLWdyb3dpbmdcLWhvcm5zOwor5JqaID4gaG9yblwtb2ZcLWFuXC1hbmltYWw7CivkmpEgPiB0b1wtc3RlYWxcLWFcLWdsYW5jZTsKK+SagCA+IHRvXC1zZWVcLXN0ZWFsdGhpbHk7CivkmbQgPiB0b1wtc29hclwtYXNcLWFcLWJpcmQ7CivkmaogPiBhXC1sb29wXC1mb3JcLWJ1dHRvbjsKK+SYjiA+IG5hbWVcLW9mXC1hblwtaW5zZWN0Owor5Je5ID4gaGFpcnlcLWNhdGVycGlsbGFyOwor5JelID4gdGhlXC1zb2xpdGFyeVwtd2FzcDsKK+SVpyA+IHppemFuaWFcLWxhdGlmb2xpYTsKK+SVoCA+IGNvYXJzZVwtYmFtYm9vXC1tYXQ7CivklYYgPiByb3VuZFwtc3RyYXdcLXF1aWx0Owor5JObID4gbW9sZWN1bGFyXC1mb3JtdWxhOwor5JK9ID4gaWxsaWNpdW1cLWFuaXNhdHVtOwor5JKQID4gZGlzdHVyYmVkXC1pblwtbWluZDsKK+SSjyA+IGRpc3R1cmJlZFwtaW5cLW1pbmQ7CivkkbwgPiBvY2VhblwtZ29pbmdcLWxpbmVyOwor5JCgID4gYmV0d2VlblwtdGhlXC1mbGVzaDsKK+SQmCA+IHRvXC1sYXVnaFwtaGVhcnRpbHk7CivkkJYgPiB0b1wtbGF1Z2hcLWhlYXJ0aWx5Owor5I+wID4gYVwta2luZFwtb2ZcLWluc2VjdHM7Civkj5sgPiBhXC1raW5kXC1vZlwtaW5zZWN0czsKK+SOqCA+IHRvXC1wbG91Z2hcLWFuZFwtc293Owor5I2tID4gYVwtZXdlXC1vclwtc2hlXC1nb2F0Owor5I2nID4gYVwtZXdlXC1vclwtc2hlXC1nb2F0Owor5I2HID4gZmxhdFwtYm90dG9tXC1jcm9jazsKK+SMqCA+IHRoaW5cLXNpbGtcLWZhYnJpY3M7Civki7sgPiB0b1wtc3BpblwtYW5kXC13ZWF2ZTsKK+SLuiA+IGFcLXN3aW5nXC1hXC1jcnVwcGVyOwor5IuYID4gdG9cLWhhbmRcLWJ5XC1hXC1yb3BlOwor5IqvID4gZ3JhaW5zXC13aXRoXC1iZWFyZDsKK+SKmiA+IHN0ZWFtZWRcLWR1bXBsaW5nczsKK+SJjCA+IGNydWRlXC1iYW1ib29cLW1hdHM7CivkiKAgPiBib29rc1wtYW5kXC12b2x1bWVzOwor5IaVID4gdG9cLXBpZXJjZVwtdGhyb3VnaDsKK+SGlCA+IHRvXC1waWVyY2VcLXRocm91Z2g7CivkhIkgPiBhXC1yaXRlXC1vclwtc2VydmljZTsKK+SDvyA+IGFcLXJpdGVcLW9yXC1zZXJ2aWNlOwor5IKjID4gYVwta2luZFwtb2ZcLW1pbmVyYWw7Civkgb0gPiBleWVzaWdodFwtb2JzY3VyZWQ7CivkgbggPiBleWVzaWdodFwtb2JzY3VyZWQ7CivkgYQgPiB0b1wtY2xvc2VcLXRoZVwtZXllczsKK+SAuSA+IHRvXC13aW5rXC1leWVsYXNoZXM7Civjv4MgPiBhblwtb3hcLWhlYWRlZFwtYm9pbDsKK+O+sSA+IGluY3VyYWJsZVwtZGlzZWFzZTsKK+O9jSA+IGFuXC1lYXJ0aGVuXC12ZXNzZWw7CivjvLQgPiBhblwtZWFydGhlblwtdmVzc2VsOwor47q/ID4gYVwtamFkZVwtbGlrZVwtc3RvbmU7Civjtr8gPiB0aGVcLXNtb2tlXC13ZW50XC11cDsKK+O2tCA+IGFcLXZlcnlcLWdyZWF0XC1maXJlOwor47WrID4gd2F0ZXJcLWd1c2hpbmdcLW91dDsKK+O1jSA+IGZpbGxlZFwtd2l0aFwtd2F0ZXI7CivjtYQgPiBuYW1lXC1vZlwtYVwtZHluYXN0eTsKK+OznCA+IHRoZVwtZmxvd2luZ1wtd2F0ZXI7CivjsrIgPiBmaW5lXC1jb3R0b25cLWNsb3RoOwor47KYID4gZmluZVwtd29vbGVuXC1jbG90aDsKK+OyiyA+IGFcLWtpbmRcLW9mXC1hbmltYWxzOwor47KDID4gc21vb3RoXC1hbmRcLWN1cnZlZDsKK+OwqSA+IHNvdW5kXC1vZlwtbGF1Z2h0ZXI7Civjr78gPiBoYW5kbGVcLW9mXC1hXC1sYWRsZTsKK+OvpiA+IHRoZVwtZ2FtZVwtb2ZcLWNoZXNzOwor4661ID4gY29tbW9uXC1zYW5kYWx3b29kOwor466oID4gY29kaXVtXC1tYWNyb25hdHVtOwor466aID4gdGhlXC1jaGVzdG51dFwtdHJlZTsKK+OsmyA+IHRvXC1kcnlcLWluXC10aGVcLXN1bjsKK+OpriA+IHRvXC1saWZ0XC11cFwtb3JcLW9mZjsKK+OpqSA+IHRvXC1jb21lXC10b1wtYW5cLWVuZDsKK+OpmSA+IGFcLWNvcmtcLW9yXC1zdG9wcGVyOwor46iiID4gdG9cLXJpcFwtb3BlblwtZmxlc2g7CivvprggPiBiZVwtc3Vic2VydmllbnRcLXRvOwor46OiID4gdG9cLXJlc3RcLWZyb21cLXdvcms7Civjo5MgPiBsaXRlcmFyeVwtaW5cLXRhc3RlOwor46ONID4gYVwtcmFpc2VkXC1wbGF0Zm9ybTsKK+OiriA+IHRvXC11bnN0cmluZ1wtYVwtYm93Owor46KRID4gYVwtY29sbGFwc2VkXC1ob3VzZTsKK+OiiCA+IGFcLWNvbGxhcHNlZFwtaG91c2U7CivjooQgPiBhXC1raW5kXC1vZlwtdXRlbnNpbDsKK+OhnyA+IGJlZFwtbWF0c1wtZm9yXC1iYWJ5Owor46C3ID4gYVwtdmVzc2VsXC1mb3JcLXJpY2U7CivjoKUgPiBydWdnZWRcLWFuZFwtdW5ldmVuOwor46CiID4gcnVnZ2VkXC1hbmRcLXVuZXZlbjsKK+OftCA+IGx1bXBcLW9uXC10aGVcLWhpbGxzOwor45+kID4gemh1YW5nXC1pblwtZ3Vhbmd4aTsKK+OfgyA+IHRvXC1oYXZlXC1jaGFyZ2VcLW9mOwor456tID4gbmFtZVwtb2ZcLWFuXC1pc2xhbmQ7CivjnYwgPiBwcm9sb25nZWRcLWlsbG5lc3M7Civjm7QgPiB0b1wtYW5nZXJcLXRvXC1hbm5veTsKK+OahSA+IHRvXC13b3JzaGlwXC1vZlwtZ29kOwor45mpID4gYW5cLWVuY2xvc2luZ1wtd2FsbDsKK+OYpiA+IHdhbGxcLW1hZGVcLW9mXC1zb2lsOwor45iaID4gYW5ncnlcLWFpclwtb2ZcLWxvb2s7Civjl7wgPiBlYXRpbmdcLW9yXC10YWxraW5nOwor45elID4gc291bmRcLW9mXC1zdHJpa2luZzsKK+OWuCA+IHRvXC1sYXVnaFwtaGVhcnRpbHk7CivjlqcgPiBjYW5cLW5vdFwtc2VlXC1jbGVhcjsKK+OUnSA+IHN0cm9uZ1wtcmVzaXN0YW5jZTsKK+OTviA+IHRvXC13b3VuZFwtdGhlXC1za2luOwor45GdID4gdG9cLW1ha2VcLWFcLWZvb2xcLW9mOwor45GPID4gdG9cLXN0YW5kXC1hbmRcLXdhaXQ7CivjkYogPiBhXC1raW5kXC1vZlwtZGlzZWFzZTsKK+OQsiA+IG5hbWVcLW9mXC1hblwtaXNsYW5kOwor5LiqID4gbnVtZXJhcnlcLWFkanVuY3Q7Civph4wgPiB1bml0XC1vZlwtZGlzdGFuY2U7CivpmLMgPiAnJ21hbGUnJ1wtcHJpbmNpcGxlOwor6KidID4gZXhwcmVzc1wtc3VycHJpc2U7Civpu40gPiBnbHV0aW5vdXNcLW1pbGxldDsKK+WJpyA+IHRoZWF0cmljYWxcLXBsYXlzOwor6JiCID4gc3RhbWVuXC1vclwtcGlzdGlsOwor5oy6ID4gdG9cLXN0YW5kXC11cHJpZ2h0Owor56GAID4gZm91bmRhdGlvblwtc3RvbmU7CivliocgPiB0aGVhdHJpY2FsXC1wbGF5czsKK+iIhSA+IG1vdGhlcicnc1wtYnJvdGhlcjsKK+iQpyA+IGNvbW1vblwtYXJ0ZW1pc2lhOwor5YCLID4gbnVtZXJhcnlcLWFkanVuY3Q7Civkv7ogPiBwZXJzb25hbFwtcHJvbm91bjsKK+eOsiA+IHRpbmtsaW5nXC1vZlwtamFkZTsKK+mZvSA+ICcnbWFsZScnXC1wcmluY2lwbGU7CivnrocgPiBudW1lcmFyeVwtYWRqdW5jdDsKK+aNqSA+IHR3aXN0XC13aXRoXC1oYW5kczsKK+iutiA+IGV4cHJlc3NcLXN1cnByaXNlOwor6bubID4gYmxhY2tlblwtZXllYnJvd3M7CivlpoYgPiB0b1wtYWRvcm5cLW9uZXNlbGY7CivluaIgPiBjYXJyaWFnZVwtY3VydGFpbjsKK+airSA+IHdlYXZlcicnc1wtc2h1dHRsZTsKK+a8qiA+IHJpcHBsZXNcLW9uXC13YXRlcjsKK+ectyA+IHRha2VcLWludGVyZXN0XC1pbjsKK+WLiyA+IG1lcml0b3Jpb3VzXC1kZWVkOwor55StID4gdGhlcmVcLWlzXC1ub1wtbmVlZDsKK+eloCA+IGFuY2VzdHJhbFwtdGVtcGxlOwor6IiUID4gbGlja1wtd2l0aFwtdG9uZ3VlOwor6JWKID4gdW5vcGVuZWRcLWZsb3dlcnM7CivotaMgPiBqaWFuZ3hpXC1wcm92aW5jZTsKK+i3tyA+IHJhaXNlXC1vbmUnJ3NcLWZvb3Q7CivliYEgPiBjaG9wXC1ieVwtcG91bmRpbmc7CivolrAgPiBhXC1tZWRpY2luYWxcLWhlcmI7Civlj7wgPiBob2xkaW5nXC1pblwtbW91dGg7CivojbwgPiBiaXR0ZXJcLXZlZ2V0YWJsZTsKK+W+mSA+IG1vdmVcLW9uZScnc1wtYWJvZGU7CivmtpQgPiByaXZlclwtaW5cLXNoYWFueGk7CivmvaIgPiBleHBhbnNlXC1vZlwtd2F0ZXI7Civnp7ggPiBzdGFsa3NcLW9mXC1taWxsZXQ7CivoooggPiBidWRkaGlzdFwtY2Fzc29jazsKK+ePniA+IGtpbmRcLW9mXC1uZWNrbGFjZTsKK+WVviA+IHdhaWxpbmdcLW9mXC1jaGlsZDsKK+S6uyA+IHJhZGljYWxcLW51bWJlclwtOTsKK+iIkCA+IGxpY2tcLXdpdGhcLXRvbmd1ZTsKK+WkmSA+IGVhcmx5XC1pblwtbW9ybmluZzsKK+m5mCA+IGFcLWtpbmRcLW9mXC1waWdlb247CivlqKkgPiBnaXZlXC1iaXJ0aFwtY2hpbGQ7Civlp50gPiBhXC1iZWF1dGlmdWxcLWdpcmw7Civmh5EgPiBiZVwtc2lja1wtYXRcLWhlYXJ0Owor6ZSJID4gY2FycGVudGVyJydzXC1maWxlOwor5rSxID4gYVwtbGFrZVwtaW5cLXl1bm5hbjsKK+idiCA+IHNtYWxsXC1ncmVlblwtZnJvZzsKK+W4vCA+IHdvbWVuJydzXC1oZWFkZ2VhcjsKK+eLjiA+IGJlXC1mYW1pbGlhclwtd2l0aDsKK+iDqiA+IGFycmFuZ2VcLWluXC1vcmRlcjsKK+ixoiA+IGRvbWVzdGljXC1hbmltYWxzOwor55yHID4gYmxpbmRcLWluXC1vbmVcLWV5ZTsKK+e+vyA+IGxlZ2VuZGFyeVwtYXJjaGVyOwor6IqpID4gc2FsdFwtbWFyc2hcLXBsYW50Owor6IytID4gYW5cLWFxdWF0aWNcLWdyYXNzOwor6JOWID4gY2FzdG9yXC1vaWxcLXBsYW50Owor5YKnID4gZW50ZXJ0YWluXC1ndWVzdHM7CivolpwgPiBldmVyZ3JlZW5cLXNocnViczsKK+i2uiA+IHNpdFwtY3Jvc3NcLWxlZ2dlZDsKK+akuSA+IGFcLWNob3BwaW5nXC1ib2FyZDsKK+mciCA+IHRvcnJlbnRpYWxcLXJhaW5zOwor6LePID4gc2l0XC1jcm9zc1wtbGVnZ2VkOwor5pupID4gaW5cLWFuY2llbnRcLXRpbWVzOwor5qCMID4gc3VwcG9ydGluZ1wtYmxvY2s7Civlk5ogPiBjaGVtaWNhbFwtZWxlbWVudDsKK+etjCA+IGJhbWJvb1wtZmlzaFwtdHJhcDsKK+a1jSA+IGlycmlnYXRpb25cLWRpdGNoOwor54yBID4gYVwta2luZFwtb2ZcLW1vbmtleTsKK+WVtiA+IFwtZFwtXCtcLWluZVwtXChjaGVtXC5cKTsKK+msryA+IHNhY3JpZmljaWFsXC13aW5lOwor6bK3ID4gcGFncm9zb211c1wtbWFqb3I7CivogbEgPiBiZW50XC1hbmRcLXR3aXN0ZWQ7CivliqIgPiBwdXRcLWZvcnRoXC1lZmZvcnQ7Civon6ogPiBhXC1raW5kXC1vZlwtY2ljYWRhOwor6J6XID4gYVwta2luZFwtb2ZcLWNpY2FkYTsKK+i1hiA+IGZhcmV3ZWxsXC1wcmVzZW50Owor5Z+vID4gY292ZXJcLXdpdGhcLWVhcnRoOwor6bKUID4ga2luZFwtb2ZcLXN0dXJnZW9uOwor572oID4gbWVkaWNhbFwtY29tcHJlc3M7Civlq5wgPiBodXNiYW5kJydzXC1wYXJlbnQ7CivmvKQgPiBtYXJpbmF0ZVwtaW5cLXNhbHQ7CivlmoYgPiBnaXZlXC1mb3J0aFwtc291bmQ7CivolrkgPiBjeXBlcnVzXC1yb3R1bmR1czsKK+iMhiA+IHNwZWNpZXNcLW9mXC1ncmFzczsKK+m9mSA+IHByb2plY3RpbmdcLXRlZXRoOwor6bm2ID4gc2FsdHlcLWFuZFwtYml0dGVyOwor6ba7ID4gYVwta2luZFwtb2ZcLXBpZ2VvbjsKK+mvmyA+IHBhZ3Jvc29tdXNcLW1ham9yOwor6a+GID4gdGhlXC1za2F0ZVwtb3JcLXJheTsKK+muqiA+IGtpbmRcLW9mXC1zdHVyZ2VvbjsKK+mtrCA+IHNvbGVcLW9yXC1mbG91bmRlcjsKK+mqtCA+IGFcLXB1dHJpZFwtY2FyY2FzZTsKK+mmmCA+IGN1dFwtb2ZmXC1sZWZ0XC1lYXI7Civpo4AgPiBzb3VnaGluZ1wtb2ZcLXdpbmQ7Civpn50gPiBsZWF0aGVyXC1hcm1cLWJhbmQ7Civpn4ogPiBhXC1jYXNlXC1mb3JcLWFcLWJvdzsKK+metiA+IGJpZ1wtbGVhdGhlclwtYmVsdDsKK+mblyA+IGFcLXdoaXRlXC1waGVhc2FudDsKK+mapCA+IHRvXC1mYWxsXC1pblwtcnVpbnM7Civpl6AgPiBnYXRlXC1vZlwtYVwtbWFya2V0Owor6Yq8ID4gY2FycGVudGVyJydzXC1maWxlOwor6Yq7ID4gYW50aW1vbnlcLXN0aWJpdW07CivpiqcgPiBwb2ludFwtb2ZcLWFcLXN3b3JkOwor6YmAID4gcG90YXNzaXVtXC1rYWxpdW07CivourcgPiBvZlwtc2hvcnRcLXN0YXR1cmU7CivoubogPiByYWlzZVwtb25lJydzXC1mb290Owor6LmxID4gdG9cLXN0YWdnZXJcLWFsb25nOwor6LmQID4gdGFrZVwtc2hvcnRcLXN0ZXBzOwor6LSbID4gamlhbmd4aVwtcHJvdmluY2U7CivotJAgPiBmYXJld2VsbFwtcHJlc2VudDsKK+izmSA+IGdpdmVcLWZvclwtY2hhcml0eTsKK+ixjyA+IGhhbGZcLWdyb3duXC1iZWFuczsKK+iqlSA+IHRvXC1iZWFyXC1jaGlsZHJlbjsKK+imgiA+IHRvXC10aHJvd1wtYVwtcmlkZXI7CivopbEgPiBsZWdzXC1vZlwtdHJvdXNlcnM7Civoo5sgPiB0b1wtd3JhcFwtYW5kXC1iaW5kOwor6KKXID4gdW5saW5lZFwtZ2FybWVudHM7CivooY4gPiB0b1wtZ2l2ZVwtcGxlYXN1cmU7Civon78gPiBhY3JpZGFcLWNoaW5lbnNpczsKK+ifiCA+IHNtYWxsXC1ncmVlblwtZnJvZzsKK+ieiyA+IHNwaWRlclwtbWlsbGlwZWRlOwor6J27ID4gaW1tYXR1cmVcLWxvY3VzdHM7CivomaUgPiBzdHJpcGVkXC13aWxkXC1jYXQ7Civol6YgPiBlZGlibGVcLW11c2hyb29tczsKK+iXiyA+IHNhbWJ1Y3VcLWphdmluaWNhOwor6JarID4gYVwtbWVkaWNpbmFsXC1oZXJiOwor6JaDID4gY3lwZXJ1c1wtYW11cmljdXM7Civola0gPiBjb21tb25cLWFydGVtaXNpYTsKK+iViyA+IHVub3BlbmVkXC1mbG93ZXJzOwor6JSHID4gbHV4dXJpYW50XC1ncm93dGg7CivokZkgPiBjZWxvc2lhXC1hcmdlbnRlYTsKK+iPiSA+IHRoZVwtZ3JlZW5cLWJhbWJvbzsKK+iKmCA+IG1hbHZhXC1zeWx2ZXN0cmlzOwor6IqDID4gbHV4dXJpYW50XC1ncm93dGg7Civoh5ogPiBhcnJhbmdlXC1pblwtb3JkZXI7CivogLwgPiBlYXJzXC13aXRob3V0XC1yaW07CivntrUgPiB2YXJpY29sb3JlZFwtc2lsazsKK+e0vSA+IGFcLXN0cmFuZFwtb2ZcLXNpbGs7Civns7UgPiBmZXJtZW50aW5nXC1ncmFpbjsKK+ezsSA+IGZlcm1lbnRpbmdcLWdyYWluOwor57OIID4gc2FjcmlmaWNpYWxcLXJpY2U7CivnsacgPiBjcnVkZVwtYmFtYm9vXC1tYXQ7Civnrq8gPiBiYW1ib29cLXBhbGFucXVpbjsKK+euiiA+IGJhbWJvb1wtd2l0aFwtdGhpbjsKK+entyA+IHNvdW5kXC1vZlwtcmVhcGluZzsKK+ekjiA+IGZvdW5kYXRpb25cLXN0b25lOwor56OlID4gYVwtaGVhcFwtb2ZcLXN0b25lczsKK+egqyA+IGFuY2VzdHJhbFwtdGFibGV0Owor556YID4gZGVlcGx5XC1zdW5rXC1leWVzOwor556LID4gZ2xhcmVcLXdpdGhcLWFuZ2VyOwor552cID4gdG9cLW9wZW5cLXRoZVwtZXllczsKK+ebpiA+IGxpZFwtb2ZcLWFcLWNhbGRyb247CivnmYkgPiB0b1wtaGF0ZVwtYml0dGVybHk7CivnmIUgPiB0b1wtaGF0ZVwtYml0dGVybHk7Civnk58gPiB0aGVcLWJvdHRsZVwtZ291cmQ7CivnjLggPiBhXC1raW5kXC1vZlwtYW5pbWFsOwor54u7ID4gYVwtZmFidWxvdXNcLWJlYXN0Owor54OcID4gbGlnaHRcLW9mXC10aGVcLXN1bjsKK+eBoCA+IG1hcmluYXRlXC1pblwtc2FsdDsKK+a+riA+IGlycmlnYXRpb25cLWRpdGNoOwor5r6mID4gcGxhY2VcLWluXC1zaWNodWFuOwor5r6lID4gYVwtYmxvY2tlZFwtc3RyZWFtOwor5r6UID4gcmFkaWFuY2VcLW9mXC1nZW1zOwor5rirID4gYmVhdGluZ1wtb2ZcLW9jZWFuOwor5rWkID4gYmVhdGluZ1wtb2ZcLW9jZWFuOwor5q+uID4gdG9cLXB1bGxcLW91dFwtaGFpcjsKK+avqiA+IHNlcmdlXC1mcm9tXC10aWJldDsKK+arqCA+IHN1cHBvcnRpbmdcLWJsb2NrOwor5qibID4gYmVuZGluZ1wtYnJhbmNoZXM7CivmnrIgPiBtYWxlXC1uZXR0bGVcLWhlbXA7CivmnpIgPiB0aGVcLWNvY29udXRcLXRyZWU7CivmmYUgPiBsaWdodFwtb2ZcLXRoZVwtc3VuOwor5pa1ID4gdG9cLWN1dFwtdG9cLXBpZWNlczsKK+aWniA+IGFcLXN0YWNrXC1vZlwtZ3JhaW47CivmkpogPiB0d2lybFwtaW5cLWZpbmdlcnM7CivmjLcgPiB0b1wtcHJvcGVsXC1hXC1ib2F0Owor5oejID4gYmVcLXNpY2tcLWF0XC1oZWFydDsKK+W8syA+IGNpcmN1bGFyXC1tZWFzdXJlOwor5byqID4gY2lyY3VsYXJcLW1lYXN1cmU7Civlu7UgPiB0b1wtZ29cLW9uXC1jaXJjdWl0Owor5bmXID4gd29tZW4nJ3NcLWhlYWRnZWFyOwor5ayOID4gdG9cLWJlYXJcLW11bHRpcGxlOwor5aqkID4gaHVzYmFuZCcnc1wtZmFtaWx5Owor5aadID4gdG9cLWFkb3JuXC1vbmVzZWxmOwor5aKkID4gdG9cLWZhbGxcLWluXC1ydWluczsKK+WbjSA+IGRvdWJsZVwtaGFwcGluZXNzOwor5ZqzID4gbXl0aGljYWxcLWVtcGVyb3I7CivlmIUgPiBzb3VuZFwtb2ZcLXNpZ2hpbmc7Civll54gPiB0b1wtY29uc3VsdFwtYWJvdXQ7Civll4EgPiBnaXZlXC1mb3J0aFwtc291bmQ7CivllrogPiB0b1wtYmVcLWxvY2F0ZWRcLWF0Owor5YuzID4gbWVyaXRvcmlvdXNcLWRlZWQ7Civli7IgPiBtZXJpdG9yaW91c1wtZGVlZDsKK+WLsSA+IHB1dFwtZm9ydGhcLWVmZm9ydDsKK+WLmyA+IG1lcml0b3Jpb3VzXC1kZWVkOwor5Yi0ID4gY2hvcFwtYnlcLXBvdW5kaW5nOwor5YaTID4gYVwtc2VjbHVkZWRcLXBsYWNlOwor5YSQID4gZW50ZXJ0YWluXC1ndWVzdHM7CivlhIogPiByb3VnaFwtYW5kXC1ydWdnZWQ7CivlgpwgPiBhXC1taW5vcml0eVwtdHJpYmU7CivktrEgPiBhXC1raW5kXC1vZlwtdHVydGxlOwor5LWkID4gdG9cLWNyYWNrXC1vclwtY2hhcDsKK+S1oyA+IHdoaXRlXC13aXRoXC1ibGFjazsKK+S1oSA+IHRvXC1jcmFja1wtb3JcLWNoYXA7CivktYMgPiBhXC1raW5kXC1vZlwtYmFybGV5Owor5LSsID4gY3J1bWJzXC1vZlwtYmFybGV5Owor5LSkID4gYVwta2luZFwtb2ZcLWFuaW1hbDsKK+S0oyA+IGFcLWtpbmRcLW9mXC1hbmltYWw7CivktIUgPiBhXC1sZWdlbmRhcnlcLWJpcmQ7Civks6IgPiBzbWFsbFwtd2lsZFwtZ29vc2U7Civks58gPiBhXC1sZWdlbmRhcnlcLWJpcmQ7Civks5AgPiBhblwtb3dsXC1saWtlXC1iaXJkOwor5LKyID4gYVwtaGF3a1wtbGlrZVwtYmlyZDsKK+SypiA+IGFcLWxlZ2VuZGFyeVwtYmlyZDsKK+SwgyA+IGRpc2hldmVsbGVkXC1oYWlyOwor5K+zID4gbG9vc2VseVwtYXJyYW5nZWQ7Civkr64gPiBkaXNoZXZlbGxlZFwtaGFpcjsKK+SvhyA+IHRvXC1leGVydFwtb25lc2VsZjsKK+SutCA+IHVuc3RhYmxlXC13YWxraW5nOwor5K6zID4gdG9cLWdpdmVcLWJpcnRoXC10bzsKK+SuqSA+IGFcLWtpbmRcLW9mXC1hbmltYWw7CivkrqAgPiBhXC1raW5kXC1vZlwtYW5pbWFsOwor5K6BID4gYVwtcGFpclwtb2ZcLWhvcnNlczsKK+SugCA+IGFcLWtpbmRcLW9mXC1hbmltYWw7Civkq4wgPiBib3dlZFwtb25lJydzXC1oZWFkOwor5KqOID4gc3RyaW5nc1wtb2ZcLWFcLWNhcDsKK+SppSA+IGFcLWJlbHRcLWZvclwtaG9yc2U7CivkqLsgPiByb2FyXC1vZlwtdGh1bmRlcnM7CivkqLQgPiBnYXRoZXJpbmdcLWNsb3VkczsKK+SosyA+IHRoZVwtcmFpblwtc3RvcHBlZDsKK+SojyA+IHNvdW5kXC1vZlwtcmFpbmluZzsKK+SoiiA+IGFcLWZsb2NrXC1vZlwtYmlyZHM7Civkp7ggPiBhXC1raW5kXC1vZlwtcGlnZW9uOwor5KehID4gYVwtZm9ydGlmaWVkXC13YWxsOwor5KeEID4gbmFtZVwtb2ZcLWFcLXBlcnNvbjsKK+SmlSA+IGJhbmdcLW9mXC10aGVcLWRvb3I7CivkpoIgPiBjaGVtaWNhbFwtZWxlbWVudDsKK+SlmyA+IGFcLWtpbmRcLW9mXC1zaWNrbGU7CivkpYcgPiBjaGVtaWNhbFwtZWxlbWVudDsKK+SksiA+IGNoZW1pY2FsXC1lbGVtZW50Owor5KSgID4gY2hlbWljYWxcLWVsZW1lbnQ7Civko64gPiBzbWVsbFwtb2ZcLWFsY29ob2w7Civko6sgPiBzb3VyZWRcLWJlYW5cLWN1cmQ7Civkop4gPiByb3dzXC1hbmRcLWNvbHVtbnM7Civkoa4gPiB0cmFjZVwtb2ZcLWFcLXdoZWVsOwor5KGiID4gYVwtc21hbGxcLWNhcnJpYWdlOwor5KC/ID4gbmFtZVwtb2ZcLWFcLXBlcnNvbjsKK+SguyA+IHRvXC1iZW5kXC10aGVcLWJvZHk7Civkn4sgPiB0b1wtcHJlc3NcLWZvcndhcmQ7CivknpYgPiBuYW1lXC1vZlwtYVwtcGVyc29uOwor5J6MID4gdG9cLWxvc2VcLWluXC10cmFkZTsKK+SdoyA+IGFcLWtpbmRcLW9mXC1hbmltYWw7CivknZogPiBhXC1raW5kXC1vZlwtYW5pbWFsOwor5J2LID4gYVwtbGl0dGxlXC1vZlwtcGlnczsKK+SdhyA+IGdydW50aW5nXC1vZlwtcGlnczsKK+SbjyA+IHRvXC1jYWxsXC1zb21lYm9keTsKK+SbjiA+IHRvXC1zaG91dFwtaW5cLXJhZ2U7Civkm4IgPiB0b1wtc2VwYXJhdGVcLWZyb207Civkmr8gPiB0b1wtc2hvdXRcLWluXC1yYWdlOwor5JqUID4gdG9cLWxvb2tcLXN1ZGRlbmx5Owor5JqSID4gZXllc2lnaHRcLWJsdXJyZWQ7Civkmo4gPiBleWVzaWdodFwtYmx1cnJlZDsKK+SaiyA+IGV5ZXNpZ2h0XC1ibHVycmVkOwor5JqDID4gdG9cLXJlYWxpemVcLWZ1bGx5Owor5JmtID4gdG9cLWxpZnRcLW9yXC1yYWlzZTsKK+SYiyA+IGFcLWtpbmRcLW9mXC1pbnNlY3Q7CivkmIIgPiBhXC1raW5kXC1vZlwtaW5zZWN0Owor5Je/ID4gYVwta2luZFwtb2ZcLWluc2VjdDsKK+SXvCA+IGFcLWtpbmRcLW9mXC1pbnNlY3Q7Civkl7ggPiBhXC1raW5kXC1vZlwtaW5zZWN0Owor5JexID4gYVwta2luZFwtb2ZcLWluc2VjdDsKK+SXryA+IGFcLWtpbmRcLW9mXC1pbnNlY3Q7Civkl64gPiBhXC1raW5kXC1vZlwtaW5zZWN0Owor5JehID4gYVwta2luZFwtb2ZcLWluc2VjdDsKK+SXnyA+IGFcLWtpbmRcLW9mXC1pbnNlY3Q7Civkl5sgPiBhXC1raW5kXC1vZlwtaW5zZWN0Owor5JePID4gbmFtZVwtb2ZcLWFcLWluc2VjdDsKK+SXjiA+IGFcLWtpbmRcLW9mXC1pbnNlY3Q7Civkl4YgPiBhXC1raW5kXC1vZlwtaW5zZWN0Owor5JeEID4gYVwta2luZFwtb2ZcLWluc2VjdDsKK+SXgSA+IGFcLWtpbmRcLW9mXC1jaWNhZGE7CivklrcgPiBhXC1raW5kXC1vZlwtaW5zZWN0Owor5Ja0ID4gYVwta2luZFwtb2ZcLWluc2VjdDsKK+SWsiA+IGFcLWtpbmRcLW9mXC1pbnNlY3Q7Civklq8gPiBwb2lzb25vdXNcLWluc2VjdDsKK+SWkCA+IHNvdW5kXC1vZlwtYVwtdGlnZXI7CivklLcgPiBjeXBlcnVzXC1yb3R1bmR1czsKK+SSoyA+IGx1c2hcLW9yXC1kZWxpY2F0ZTsKK+SRuCA+IGFcLWdyb3VwXC1vZlwtYm9hdHM7CivkkYUgPiBkaXp6eVwtYW5kXC1zbGVlcHk7CivkkKggPiBiYWNrXC1vZlwtdGhlXC1mb290Owor5I+SID4gaGFsZlwtb2ZcLXRoZVwtYm9keTsKK+SPjyA+IHNpZ25zXC1hbmRcLWdyb2FuczsKK+SOvCA+IGFcLWtpbmRcLW9mXC1pbnNlY3Q7Civkjq8gPiB3aW50ZXJcLXBsb3VnaGluZzsKK+SOgiA+IGNvbG9yZnVsXC1mZWF0aGVyOwor5Iy9ID4gdmFyaWNvbG9yZWRcLXNpbGs7CivkjIIgPiBpblwtYW5jaWVudFwtdGltZXM7Civki6QgPiBwbGFpblwtd2hpdGVcLXNpbGs7Civki5QgPiB0b1wtYmFuZFwtdG9nZXRoZXI7CivkiosgPiB0b1wtYWRvcm5cLW9uZXNlbGY7CivkibcgPiBhXC1mZWF0aGVyXC1zY3JlZW47CivkiYkgPiBhXC13cml0aW5nXC10YWJsZXQ7CivkiJkgPiBiYW1ib29cLXRvXC13aXRoZXI7CivkiIggPiBhXC1raW5kXC1vZlwtYmFtYm9vOwor5IiDID4gYVwta2luZFwtb2ZcLWJhbWJvbzsKK+SIgiA+IGFcLWtpbmRcLW9mXC1iYW1ib287Civkh7sgPiBhXC1raW5kXC1vZlwtYmFtYm9vOwor5Ie5ID4gYVwta2luZFwtb2ZcLWJhbWJvbzsKK+SHtyA+IGluXC1hbmNpZW50XC10aW1lczsKK+SHpiA+IGFcLWtpbmRcLW9mXC1iYW1ib287Civkhr8gPiB0b1wtdGFsa1wtaW5cLXNsZWVwOwor5IayID4gYVwtc3BhY2lvdXNcLWhvdXNlOwor5IaIID4geW91bmdcLWFuZFwtdGVuZGVyOwor5IW8ID4gYVwta2luZFwtb2ZcLWdyYWluczsKK+SFuiA+IGdyYWluXC1pblwtdGhlXC1lYXI7CivkhYogPiBhXC1zcGFjaW91c1wtaG91c2U7CivkhLogPiB5b3VuZ1wtYW5kXC10ZW5kZXI7CivkgqogPiBoYXJkXC1iYXJyZW5cLWxhbmQ7CivkgIMgPiBhXC1raW5kXC1vZlwtdmVzc2VsOwor476mID4gc2NhYlwtb3ZlclwtYVwtc29yZTsKK+O+gSA+IHdhbGtpbmdcLWxpa2VcLW1hZDsKK+O9riA+IGFcLXBvaW50XC1vZlwtbGlnaHQ7CivjvYogPiBjcmFja2luZ1wtb2ZcLXRpbGU7Civju5IgPiByZWRcLWNvbG9yZWRcLWphZGU7Civju4EgPiBhXC1raW5kXC1vZlwtamFzcGVyOwor47q1ID4gYmxhY2tcLWphZGVcLXN0b25lOwor47q0ID4gbmFtZVwtb2ZcLWFcLXNwaXJpdDsKK+O6piA+IGFcLXJ1bm5pbmdcLWFuaW1hbDsKK+O6oyA+IGFcLWtpbmRcLW9mXC1hbmltYWw7CivjuqIgPiBhXC1raW5kXC1vZlwtYW5pbWFsOwor47qdID4gc291bmRcLW9mXC1hXC10aWdlcjsKK+O6mCA+IGFcLWtpbmRcLW9mXC1hbmltYWw7CivjubwgPiBhXC1raW5kXC1vZlwtYW5pbWFsOwor47m6ID4gZG9nXC10b1wtdGFrZVwtZm9vZDsKK+O5tCA+IGFcLWtpbmRcLW9mXC1hbmltYWw7Civjua0gPiBhXC1raW5kXC1vZlwtbW9ua2V5Owor47msID4gYVwta2luZFwtb2ZcLWFuaW1hbDsKK+O5qCA+IGFcLWtpbmRcLW9mXC1hbmltYWw7CivjuZ8gPiBhXC1raW5kXC1vZlwtYW5pbWFsOwor47mTID4gYVwta2luZFwtb2ZcLWFuaW1hbDsKK+O5hyA+IGFcLWtpbmRcLW9mXC1jYXR0bGU7CivjuYQgPiBhXC1raW5kXC1vZlwtY2F0dGxlOwor47i7ID4gYVwta2luZFwtb2ZcLWNhdHRsZTsKK+O4syA+IGFcLWtpbmRcLW9mXC1jYXR0bGU7CivjuKMgPiBpblwtYW5jaWVudFwtY2hpbmE7Civjtr4gPiB0b3VnaFwtYW5kXC1ob25lc3Q7Civjto0gPiBuYW1lXC1vZlwtYVwtc3RyZWFtOwor47aMID4gbmFtZVwtb2ZcLWFcLXN0cmVhbTsKK+O1sCA+IG5hbWVcLW9mXC1hXC1zdHJlYW07CivjtYYgPiByYWRpYW5jZVwtb2ZcLWdlbXM7CivjtYMgPiBuYW1lXC1vZlwtYVwtc3RyZWFtOwor47SnID4gb2ZcLWZsb3dpbmdcLXdhdGVyOwor47O9ID4gYVwtd2F0ZXJ5XC1leHBhbnNlOwor47G2ID4gYVwtc3dlbGxlblwtY29ycHNlOwor47GtID4gYW5cLWluZmVydGlsZVwtZWdnOwor47GIID4gbmFtZVwtb2ZcLWFcLXBlcnNvbjsKK+OwpCA+IHRvXC1sYXVnaFwtaGVydGlseTsKK+OwmyA+IG5hbWVcLW9mXC1hXC1jb3VudHk7CivjsIUgPiBlYXZlc1wtb2ZcLWFcLWhvdXNlOwor46+VID4gc3RpY2tzXC1vclwtZnJhbWVzOwor46+DID4gdGhlXC12YXJuaXNoXC10cmVlOwor466TID4gYW5cLWV4dHJlbWVcLWxpbWl0Owor4626ID4gdGhlXC1jaGVycnlcLWFwcGxlOwor46qtID4gdG9cLWRyYXdcLXRvZ2V0aGVyOwor46qYID4gdG9cLWRyYXdcLXRvZ2V0aGVyOwor46qWID4gc291bmRcLW9mXC1iZWF0aW5nOwor46i8ID4gdG9cLXRha2VcLWJ5XC1mb3JjZTsKK+OnuiA+IGFcLWZpbmdlclwtd3JhcHBlcjsKK++nqSA+IHVuaXRcLW9mXC1kaXN0YW5jZTsKK++mrSA+IHRpbmtsaW5nXC1vZlwtamFkZTsKK+OmnCA+IHRvXC1tb3ZlXC10aGVcLW1pbmQ7CivvppEgPiB0d2lybFwtaW5cLWZpbmdlcnM7CivjpZQgPiB0b1wtbW92ZVwtdGhlXC1taW5kOwor76S+ID4gdGhlXC1ncmVlblwtYmFtYm9vOwor46S0ID4gdG9cLW1vdmVcLXRoZVwtbWluZDsKK+OkoiA+IHRvXC1tb3ZlXC10aGVcLW1pbmQ7CivvpJcgPiBraW5kXC1vZlwtbmVja2xhY2U7Civjo4ggPiBhXC1raW5kXC1vZlwtYW5pbWFsOwor46KwID4gdG9cLXN0cmV0Y2hcLWFcLWJvdzsKK+OhvSA+IGRlcHJhdmVkXC10YWxraW5nOwor46GJID4gYVwta2luZFwtb2ZcLWZhYnJpYzsKK+OgpyA+IGFcLWxpdHRsZVwtc2xhbnRlZDsKK+OgjiA+IGFcLWxvZnR5XC1tb3VudGFpbjsKK+OdqyA+IHNoYXBlXC1vZlwtdGhlXC1za3k7CivjnaogPiBhXC1zbGFudGluZ1wtaG91c2U7CivjnakgPiBzcGFjaW91c2x5XC1yb29tczsKK+OdlyA+IHNwYWNpb3VzbHlcLXJvb21zOwor45y0ID4gZGFya1wtYW5kXC1vYnNjdXJlOwor45ydID4gdG9cLWNoZXJpc2hcLWFuZ2VyOwor45yIID4gYVwtYmVhdWdpZnVsXC1mYWNlOwor45qfID4gYVwta2luZFwtb2ZcLWFuaW1hbDsKK+OanCA+IHdpdGhcLWdyZWF0XC1wb3dlcjsKK+OalyA+IHdpdGhcLWFcLWJpZ1wtbW91dGg7CivjmocgPiBkcmF3XC10aGVcLWZlZXRcLXVwOwor45meID4gYVwtc21hbGxcLW1vdW50YWluOwor45mOID4gYnJlYWNoXC1vZlwtYVwtdGFuazsKK+OZhSA+IGFcLXdhbGxlZFwtdmlsaWFnZTsKK+OZgCA+IGFcLXZlZ2V0YWJsZVwtcGxvdDsKK+OXuyA+IGJhYnknJ3NcLWFuc3dlcmluZzsKK+OXmSA+IHRvXC1zaG91dFwtb3JcLWJhd2w7Civjla0gPiB0b1wtYmFya1wtYXNcLWFcLWRvZzsKK+OVqSA+IHNvdW5kXC1vZlwtdGFwcGluZzsKK+OVhyA+IHJvY2tzXC1jb2xsYXBzaW5nOwor45S1ID4gYVwta2luZFwtb2ZcLXZlc3NlbDsKK+OUsSA+IGFcLXN0YWNrXC1vZlwtZ3JhaW47CivjlKggPiBuYW1lXC1vZlwtYVwtcGVyc29uOwor45SaID4gdG9cLWV4ZXJ0XC1vbmVzZWxmOwor45SRID4gYW5cLWluY2lzZWRcLXdvdW5kOwor45O8ID4gYW5cLWluY2lzZWRcLXdvdW5kOwor45O4ID4gdG9cLWN1dFwtdG9cLXBpZWNlczsKK+OSrSA+IGFuXC1lbGRlclwtYnJvdGhlcjsKK+OSoSA+IG5hbWVcLW9mXC1hXC1wZXJzb247CivjkoEgPiBvZlwtZ3JlYXRcLXN0YXR1cmU7CivjkbEgPiBhXC1raW5kXC1vZlwtbW9ua2V5Owor45C7ID4gbmFtZVwtb2ZcLWFcLXBlcnNvbjsKK+OQgCA+IGhpbGxvY2tcLW9yXC1tb3VuZDsKK+edqCA+IGxvb2tcLWFza2FuY2VcLWF0Owor5oCOID4gd2hhdFw/XC13aHlcP1wtaG93XD87CivmlLYgPiBnYXRoZXJcLXRvZ2V0aGVyOwor5YWaID4gcG9saXRpY2FsXC1wYXJ0eTsKK+eJiCA+IHByaW50aW5nXC1ibG9ja3M7CivlraMgPiBxdWFydGVyXC1vZlwteWVhcjsKK+eJoSA+IG1hbGVcLW9mXC1hbmltYWxzOwor6Ki6ID4gZXhhbWluZVwtcGF0aWVudDsKK+WnkSA+IGZhdGhlcicnc1wtc2lzdGVyOwor6KSTID4gc3dhZGRsaW5nXC1jbG90aDsKK+mmhiA+IHB1YmxpY1wtYnVpbGRpbmc7CivmvL8gPiBhbnlcLXRoaWNrXC1mbHVpZDsKK+mbhCA+IG1hbGVcLW9mXC1zcGVjaWVzOwor5Lq/ID4gaHVuZHJlZFwtbWlsbGlvbjsKK+WbuiA+IHRvXC1iZWNvbWVcLXNvbGlkOwor6buoID4gcG9saXRpY2FsXC1wYXJ0eTsKK+a6qiA+IG1vdW50YWluXC1zdHJlYW07CivomZ4gPiBjb25jZXJuZWRcLWFib3V0Owor5ZeaID4gc291bmRcLW9mXC1jcnlpbmc7CivolocgPiBvc211bmRhXC1yZWdhbGlzOwor5oiPID4gdGhlYXRyaWNhbFwtcGxheTsKK+WPrCA+IGltcGVyaWFsXC1kZWNyZWU7Civlj44gPiBnYXRoZXJcLXRvZ2V0aGVyOwor55GeID4gZmVsaWNpdG91c1wtb21lbjsKK+msoiA+IGhhaXJcLW9uXC10ZW1wbGVzOwor5YOnID4gYnVkZGhpc3RcLXByaWVzdDsKK+aqnCA+IGNoaW5lc2VcLWN5cHJlc3M7Civmqo4gPiBzbWFsbFwtcmVkXC1hcHBsZTsKK+mphSA+IHNwdXJcLWFcLWhvcnNlXC1vbjsKK+iHnyA+IGludGVybmFsXC1vcmdhbnM7Civpp4ggPiBzcHVyXC1hXC1ob3JzZVwtb247Civpp4YgPiBzcHVyXC1hXC1ob3JzZVwtb247CivppKggPiBwdWJsaWNcLWJ1aWxkaW5nOwor5YSEID4gaHVuZHJlZFwtbWlsbGlvbjsKK+ahpyA+IGNoaW5lc2VcLWN5cHJlc3M7CivohI8gPiBpbnRlcm5hbFwtb3JnYW5zOwor6amxID4gc3B1clwtYVwtaG9yc2VcLW9uOwor5ZyzID4gZnVycm93XC1pblwtZmllbGQ7CivnubsgPiBmaW5lXC1zaWxrXC1ndWF6ZTsKK+WtnyA+IGZpcnN0XC1pblwtc2VyaWVzOwor57iLID4gY2xpbWJcLWRvd25cLXJvcGU7CivplqQgPiBzbWFsbFwtc2lkZVwtZG9vcjsKK+aWjiA+IHZlZ2V0YXJpYW5cLWRpZXQ7Civnm68gPiByaXZldFwtZ2F6ZVwtdXBvbjsKK+eynyA+IHVuaHVza2VkXC1taWxsZXQ7CivnsZAgPiBjbGltYmluZ1wtcGxhbnRzOwor5o67ID4gc2NyYXRjaFwtbGlnaHRseTsKK+S/mCA+IHByaXNvbmVyXC1vZlwtd2FyOwor5oy+ID4gY2xhc3BcLXVuZGVyXC1hcm07Civor4ogPiBleGFtaW5lXC1wYXRpZW50Owor5aqzID4gZGF1Z2h0ZXJcLWluXC1sYXc7CivlrpkgPiB0aW1lXC1hc1wtY29uY2VwdDsKK+WRnCA+IHNvdW5kXC1vZlwtY3J5aW5nOwor5Y2cID4gZm9ydHVuZVwtdGVsbGluZzsKK+aIsiA+IHRoZWF0cmljYWxcLXBsYXk7CivmiK8gPiB0aGVhdHJpY2FsXC1wbGF5Owor5biWID4gaW52aXRhdGlvblwtY2FyZDsKK+mAniA+IGluZHVsZ2VcLW9uZXNlbGY7Civmj6ogPiBncmFzcFwtd2l0aFwtaGFuZDsKK+S7kSA+IGxvZ2ljYWxcLXJlYXNvbnM7CivmtYYgPiBhbnlcLXRoaWNrXC1mbHVpZDsKK+aMnyA+IGNsYXNwXC11bmRlclwtYXJtOwor54WeID4gbWFsaWduYW50XC1kZWl0eTsKK+aWiyA+IHZlZ2V0YXJpYW5cLWRpZXQ7Civps4wgPiBodWdlXC1zZWFcLXR1cnRsZTsKK+WNpiA+IGZvcnR1bmVcLXRlbGxpbmc7CivnnqkgPiB3YXRjaFwtY2FyZWZ1bGx5Owor55aaID4gY2hyb25pY1wtZGlzZWFzZTsKK+iUkyA+IGNyZWVwaW5nXC1wbGFudHM7Civpqo8gPiBleGNlbGxlbnRcLWhvcnNlOwor6Ze9ID4gZnVqaWFuXC1wcm92aW5jZTsKK+iihSA+IGN1cmxpbmdcLXVwd2FyZHM7CivovpAgPiBzcG9rZXNcLW9mXC13aGVlbDsKK+eQiSA+IHNwYXJrbGluZ1wtc3RvbmU7CivoiJwgPiBsZWdlbmRhcnlcLXJ1bGVyOwor6L2nID4gY3J1c2hcLWJ5XC13ZWlnaHQ7Civmu4cgPiB5dW5uYW5cLXByb3ZpbmNlOwor6ayTID4gaGFpclwtb25cLXRlbXBsZXM7CivmoZMgPiB2YXJpZXR5XC1vZlwtdHJlZTsKK+ajoCA+IGNyYWJcLWFwcGxlXC10cmVlOwor5ZCuID4gc3Vja1wtd2l0aFwtbW91dGg7CivonLcgPiBjcmVlcFwtbGlrZVwtd29ybTsKK+aetyA+IGNhbmd1ZVwtc2NhZmZvbGQ7CivnvrIgPiBhbmNpZW50XC1lbXBlcm9yOwor5a2aID4gYnJvb2RcLW92ZXJcLWVnZ3M7CivpqoEgPiBleGNlbGxlbnRcLWhvcnNlOwor55qRID4gYnJpbGxpYW50XC13aGl0ZTsKK+e8pSA+IGxpZ2h0XC1ibHVlXC1zaWxrOwor6K+MID4gcGxheVwtd2l0aFwtd29yZHM7Civms74gPiBuYW1lXC1vZlwtYVwtcml2ZXI7CivmgaMgPiBpbmR1bGdlXC1vbmVzZWxmOwor6KeOID4gZGVzaXJlXC1zdHJvbmdseTsKK+eOuiA+IGltcGVyaWFsXC1zaWduZXQ7CivljZ4gPiB0b1wtYmVcLWltcGF0aWVudDsKK+i+lCA+IGJyaWRsZVwtb2ZcLWhvcnNlOwor6LaUID4gbm90XC1wcm9ncmVzc2luZzsKK+W+nCA+IHdhbGtpbmdcLWFuZFwtZnJvOwor6I2gID4gd2F0ZXJcLWNoZXN0bnV0czsKK+axniA+IGVsZW1lbnRcLW1lcmN1cnk7Civnlb8gPiBpbXBlcmlhbFwtZG9tYWluOwor6IiCID4gZ3JpbmRcLWluXC1tb3J0YXI7CivnsbQgPiBwdXJjaGFzZVwtZ3JhaW5zOwor56mwID4gc3RhbGtzXC1vZlwtZ3JhaW47CivnvJIgPiBjbGltYlwtZG93blwtcm9wZTsKK+WXhCA+IGhvYXJzZVwtb2ZcLXZvaWNlOwor552lID4gbG9va1wtYXNrYW5jZVwtYXQ7CivmuJogPiBzbWFsbFwtc2FuZFwtYmFuazsKK+egnSA+IGJhbGFuY2VcLXdlaWdodHM7CivmnbwgPiBzaHV0dGxlXC1vZlwtbG9vbTsKK+m+gyA+IGlycmVndWxhclwtdGVldGg7Civli5AgPiBpbXBlcmlhbFwtZGVncmVlOwor55+4ID4gYVwtcm9ja1wtb3JcLWNsaWZmOwor55e8ID4gY2hyb25pY1wtZGlzZWFzZTsKK+iVqCA+IHB0ZXJpc1wtYXF1aWxpbmE7CivosYkgPiBmZXJtZW50ZWRcLWJlYW5zOwor5b6tID4gY29uc2NyaXB0XC1sYWJvcjsKK+m6iCA+IHNwZWNpZXNcLW9mXC1kZWVyOwor6JWkID4gZHJvb3BpbmdcLWxlYXZlczsKK+m6giA+IHNwZWNpZXNcLW9mXC1kZWVyOwor57uhID4gcmF3XC1zaWxrXC1mYWJyaWM7CivoiqggPiBuYW1lXC1vZlwtYVwtcGxhbnQ7Civoi6MgPiBraW5kXC1vZlwtbGV0dHVjZTsKK+eimyA+IHNhbmRcLWFuZFwtZ3JhdmVsOwor6I6SID4gaGVtcFwtbGlrZVwtcGxhbnQ7Civmv4kgPiBuYW1lXC1vZlwtYVwtcml2ZXI7CivokIEgPiBraW5kXC1vZlwtZ3Jhc3NlczsKK+echCA+IHRvXC1sb29rXC1hc2thbmNlOwor5ZufID4gdG9wXC1vZlwtdGhlXC1oZWFkOwor5bKjID4gYVwtaGlsbFwtaW5cLWh1bmFuOwor5Ze+ID4gdG9cLXNldFwtYVwtZG9nXC1vbjsKK+iNnCA+IHNwZWNpZXNcLW9mXC1iZWFuOwor57OBID4gYVwtZ3JhaW5cLW9mXC1yaWNlOwor57KdID4gdW5wb2xpc2hlZFwtcmljZTsKK+ijsCA+IHRvXC1tZW5kXC1jbG90aGVzOwor5p+wID4gY3JhYlwtYXBwbGVcLXRyZWU7CivolqggPiBkZWF0aFwtb2ZcLXByaW5jZTsKK+iMkSA+IHRoZVwtY29udm92dWx2dXM7Civnv64gPiBzdGVtXC1vZlwtZmVhdGhlcjsKK+iJnyA+IGFuY2llbnRcLXdhcnNoaXA7CivpvK8gPiBmbHlpbmdcLXNxdWlycmVsOwor56CpID4gbmFtZVwtb2ZcLWFcLXN0b25lOwor54K7ID4gYVwta2luZFwtb2ZcLWNoaW5hOwor5qqrID4gc2Fzc2FmcmFzXC10enVtdTsKK+eLtCA+IGFcLWtpbmRcLW9mXC10YXBpcjsKK+m+kSA+IGhpZ2hcLWFuZFwtYnJpZ2h0Owor6b2fID4gaXJyZWd1bGFyXC10ZWV0aDsKK+m9iyA+IHZlZ2V0YXJpYW5cLWRpZXQ7CivpvJUgPiByYXR0bGVcLW9mXC1kcnVtczsKK+m8hyA+IGh1Z2VcLXNlYVwtdHVydGxlOwor6biTID4gZmx5aW5nXC1zcXVpcnJlbDsKK+m0kiA+IHNwZWNpZXNcLW9mXC1sYXJrOwor6bSCID4gdGhlXC10YWlsb3JcLWJpcmQ7Civps7sgPiB0aGVcLXdpbGRcLXBpZ2VvbjsKK+mzkyA+IGNoaW5lc2VcLWhlcnJpbmc7CivpsaEgPiB0aGVcLWN1dHRsZVwtZmlzaDsKK+mxhSA+IGFcLWtpbmRcLW9mXC10ZW5jaDsKK+mwsyA+IGNoaW5lc2VcLWhlcnJpbmc7CivpsLIgPiBodWdlXC1zZWFcLXR1cnRsZTsKK+mtsCA+IHRoZVwtZmx5aW5nXC1maXNoOwor6au+ID4gdGFpbFwtb2ZcLWFcLWNvbWV0Owor6au0ID4gZGlzaGV2ZWxlZFwtaGFpcjsKK+mptSA+IGV4Y2VsbGVudFwtaG9yc2U7CivpqY0gPiBleGNlbGxlbnRcLWhvcnNlOwor6aiYID4gYVwtcGllYmFsZFwtaG9yc2U7Civpp78gPiBleGNlbGxlbnRcLWhvcnNlOwor6aeUID4gZXhjZWxsZW50XC1ob3JzZTsKK+mlhyA+IHRvXC1lYXRcLXRvb1wtbXVjaDsKK+miuyA+IGZsb2F0aW5nXC1pblwtYWlyOwor6aKuID4gc3Rvcm1cLXdoaXJsd2luZDsKK+mhliA+IHRvcFwtb2ZcLXRoZVwtaGVhZDsKK+mfniA+IGFuXC1vcmFuZ2VcLWNvbG9yOwor6Z60ID4gc2FkZGxlXC11cFwtaG9yc2U7CivpnbggPiBhXC1jaGlsZCcnc1wtc2hvZXM7Civpm7EgPiBzbm93aW5nXC1oZWF2aWx5Owor6ZapID4gZnVqaWFuXC1wcm92aW5jZTsKK+mOpCA+IHNvdW5kXC1vZlwtYVwtYmVsbDsKK+mKviA+IGVsZW1lbnRcLW1lcmN1cnk7Civphr4gPiB1bmZpbHRlcmVkXC13aW5lOwor6YS5ID4gbmFtZVwtb2ZcLWFcLXN0YXRlOwor6L2hID4gYnJpZGxlXC1vZlwtaG9yc2U7CivovLsgPiBzcG9rZXNcLW9mXC13aGVlbDsKK+i7iyA+IGNydXNoXC1ieVwtd2VpZ2h0Owor6LqAID4gdG9cLXN0dW1ibGVcLW92ZXI7Civotq4gPiBlYXNpbHlcLXByb3Zva2VkOwor6KyFID4gcGxheVwtd2l0aFwtd29yZHM7Civoq6EgPiBwb3N0aHVtb3VzXC1uYW1lOwor6KiSID4gaGVzaXRhdGVcLXRvXC1zYXk7CivopqYgPiBkZXNpcmVcLXN0cm9uZ2x5Owor6KW8ID4gJydraW1vbm8nJ1wtc2xlZXZlOwor6KWMID4gdW5saW5lZFwtZ2FybWVudDsKK+ikpyA+IHVubGluZWRcLWNsb3RoZXM7CivopJ0gPiB1bmxpbmVkXC1nYXJtZW50Owor6KOKID4gY3VybGluZ1wtdXB3YXJkczsKK+iemiA+IGVyaXN0YWxpc1wtdGVuYXg7Civol7YgPiBhXC1raW5kXC1vZlwtcGxhbnQ7CivolrogPiB3YXRlclwtY2hlc3RudXRzOwor6JWiID4gZWRpYmxlXC1hbWFyYW50aDsKK+iVjSA+IGFsaXNtYVwtcGxhbnRhZ3M7CivolL4gPiBraW5kXC1vZlwtYnJhbWJsZTsKK+iUpiA+IHRoZVwtY29udm92dWx2dXM7Civok70gPiBzcGVjaWVzXC1vZlwtYmVhbjsKK+iSqCA+IGx1c2hcLXZlZ2V0YXRpb247CivokpMgPiBhblwtZWRpYmxlXC13YXRlcjsKK+iSiSA+IGVkaWJsZVwtYW1hcmFudGg7CivokZEgPiB0aGVcLXJhcGVcLXR1cm5pcDsKK+iQlSA+IHdhdGVyXC1jaGVzdG51dHM7Civoi4ggPiBhXC1raW5kXC1vZlwtcGxhbnQ7CivoiYUgPiBhXC1kZXNwYXRjaFwtYm9hdDsKK+iHkyA+IGludGVybmFsXC1vcmdhbnM7CivohaIgPiB0aGVcLWNvbGxhclwtYm9uZTsKK+e9vyA+IG5ldFwtY2F0Y2hcLWJpcmRzOwor57i5ID4gbGlnaHRcLWJsdWVcLXNpbGs7CivntoMgPiByYXdcLXNpbGtcLWZhYnJpYzsKK+e1jSA+IHRvXC1sYXlcLXRoZVwtd2FycDsKK+e1hSA+IHVubGluZWRcLWdhcm1lbnQ7Civns7QgPiBwdXJjaGFzZVwtZ3JhaW5zOwor57OyID4gdW5wb2xpc2hlZFwtcmljZTsKK+exmCA+IGNsaW1iaW5nXC1wbGFudHM7CivnsJQgPiBhXC1jb2F0XC1yYWluY29hdDsKK+ewkSA+IGFcLWNvYXRcLXJhaW5jb2F0Owor56+wID4gYVwtYmFtYm9vXC1iYXNrZXQ7CivnqaMgPiBzdGFsa3NcLW9mXC1ncmFpbjsKK+ephCA+IHBhbmljbGVkXC1taWxsZXQ7CivnposgPiBvZmZlclwtc2FjcmlmaWNlOwor56OqID4gYVwtaGlnaFwtbW91bnRhaW47Civno6cgPiBzYW5kXC1hbmRcLWdyYXZlbDsKK+ejjiA+IG1vdW50YWluXC1zdHJlYW07Civnn5ogPiB3YXRjaFwtY2FyZWZ1bGx5Owor55qaID4gYnJpbGxpYW50XC13aGl0ZTsKK+eYiCA+IHByb2xvbmdlZFwtZmV2ZXI7CivnmIMgPiBzb3Jlc1wtZnJvbVwtY29sZDsKK+eXviA+IGNocm9uaWNcLWlsbG5lc3M7Civnl7UgPiBhXC1oZWFydFwtc3ltcHRvbTsKK+eXriA+IGFcLXN3ZWxsZWRcLWJlbGx5Owor55egID4gYWNoaW5nXC1vZlwtbGltYnM7Civnl4EgPiBjaHJvbmljXC1tYWxhcmlhOwor55aiID4gYWNoaW5nXC1vZlwtbGltYnM7CivnlawgPiByZWNsYWltZWRcLWZpZWxkOwor55SkID4gZHJvb3BpbmdcLWxlYXZlczsKK+eSvSA+IGltcGVyaWFsXC1zaWduZXQ7CivnkK0gPiBqYWRlXC1saWtlXC1zdG9uZTsKK+ePpyA+IG1vdGhlclwtb2ZcLXBlYXJsOwor54+HID4gY2FydmluZ1wtb25cLWphZGU7Civnjp8gPiBzdHJlYWtzXC1pblwtamFkZTsKK+eNsSA+IGFcLWtpbmRcLW9mXC1vdHRlcjsKK+eLqyA+IG5hbWVcLW9mXC1hXC10cmliZTsKK+eJhCA+IHRvXC13YWxrXC1yYXBpZGx5Owor54aTID4gdGhlXC1iYW5rXC1hXC1maXJlOwor54S1ID4gdG9cLXRlbXBlclwtc3RlZWw7CivngLUgPiBuYW1lXC1vZlwtYVwtcml2ZXI7CivngJ4gPiBwb29sXC1pblwtYVwtcml2ZXI7CivmvZkgPiByaXZlclwtaW5cLXNoYW54aTsKK+a8tSA+IG5hbWVcLW9mXC1hXC1yaXZlcjsKK+a7jiA+IGNvdW50eVwtaW5cLWhlbmFuOwor5rqkID4gbmFtZVwtb2ZcLWFcLXJpdmVyOwor5riTID4gbW91bnRhaW5cLXN0cmVhbTsKK+a3kyA+IG5hbWVcLW9mXC1hXC1yaXZlcjsKK+a2hyA+IG5hbWVcLW9mXC1hXC1yaXZlcjsKK+azqSA+IHJpc2luZ1wtb2ZcLXdhdGVyOwor5rKaID4gaXNsZXRcLWluXC1zdHJlYW07CivmspggPiBuYW1lXC1vZlwtYVwtcml2ZXI7CivmpqEgPiBxdWVyY3VzXC1kZW50YXRhOwor5qS6ID4gYmVhbVwtb2ZcLWFcLWhvdXNlOwor5p+OID4gY2FseXhcLW9mXC1mbG93ZXI7Civmn4EgPiBsYXJnZVwtdGllXC1iZWFtczsKK+aerCA+IGFuXC1ldmVuXC1ncmFpbmVkOwor5pyjID4gdGhlXC1yaXNpbmdcLW1vb247CivmkbsgPiBhXC1kZWxpY2F0ZVwtaGFuZDsKK+aPqyA+IGdyYXNwXC13aXRoXC1oYW5kOwor5oixID4gdGhlYXRyaWNhbFwtcGxheTsKK+aIhCA+IHRvXC1iZVwtaW5cLWF3ZVwtb2Y7Civlv5MgPiBjb25jZXJuZWRcLWFib3V0Owor5b6sID4gdG9cLXdhbmRlclwtYWJvdXQ7CivlvLQgPiByZWRcLWxhY3F1ZXJcLWJvdzsKK+W3uSA+IG51cHRpYWxcLXdpbmVjdXA7CivltY4gPiBtb3VudGFpblwtcmVjZXNzOwor5bOeID4gaGlnaFwtYW5kXC11bmV2ZW47CivlpLIgPiBhZHZhbmNlXC1xdWlja2x5Owor5Z20ID4gYVwtY2xvZFwtb2ZcLWVhcnRoOwor5ZajID4gdG9cLWJyZWF0aGVcLXVwb247CivllLIgPiBmb3JjZWRcLWxhdWdodGVyOwor5Y6cID4gYVwtbW91bnRhaW5cLXBlYWs7CivljIkgPiBub2lzZVwtb2ZcLXdhdGVyczsKK+WMhCA+IHRvXC1iZWdcLWZvclwtYWxtczsKK+WLhSA+IGltcGVyaWFsXC1kZWdyZWU7CivlipggPiBtYWtlXC1pbnRvXC1taW5jZTsKK+WKliA+IG1ha2VcLWludG9cLW1pbmNlOwor5YK9ID4gdGVycm9yXC1zdHJpY2tlbjsKK+S+liA+IGxvZ2ljYWxcLXJlYXNvbnM7CivkvZQgPiBvY2N1cHlcLWJ5XC1mb3JjZTsKK+S5uCA+IGZlbWluaW5lXC1zdWZmaXg7CivktqEgPiBzb3VuZFwtb2ZcLWJpdGluZzsKK+S2jiA+IHNvdW5kXC1vZlwtYnJlYXRoOwor5LWbID4gcGFuaWNsZWRcLW1pbGxldDsKK+S1liA+IHBhbmljbGVkXC1taWxsZXQ7CivktL4gPiB0b1wtZ3JpbmRcLWJhcmxleTsKK+S0riA+IGNha2VzXC1wZlwtbGVhdmVuOwor5LSOID4gZmx5aW5nXC1zcXVpcnJlbDsKK+SyviA+IHRoZVwtdGFpbG9yXC1iaXJkOwor5K+EID4gYVwtcGllYmFsa1wtaG9yc2U7Civkrr0gPiBiaXRcLWZvclwtYVwtaG9yc2U7CivkrrUgPiBuYW1lXC1vZlwtYVwtaG9yc2U7CivkrrEgPiBhXC1raW5kXC1vZlwtYmVhc3Q7CivkrrAgPiBhXC1raW5kXC1vZlwtYmVhc3Q7CivkrqwgPiBuYW1lXC1vZlwtYVwtaG9yc2U7CivkrqggPiBhXC1waWViYWxkXC1ob3JzZTsKK+SupyA+IGxvbmdcLWhhaXJcLWhvcnNlOwor5K6iID4gYVwtd2Fsa2luZ1wtaG9yc2U7Civkrp4gPiBhXC1waWViYWxkXC1ob3JzZTsKK+SumSA+IG5hbWVcLW9mXC1hXC1ob3JzZTsKK+SuliA+IG5hbWVcLW9mXC1hXC1ob3JzZTsKK+SukyA+IGFcLXdhbGtpbmdcLWhvcnNlOwor5K6SID4gbmFtZVwtb2ZcLWFcLWhvcnNlOwor5K6PID4gbmFtZVwtb2ZcLWFcLWhvcnNlOwor5K6OID4gYVwtcnVubmluZ1wtaG9yc2U7CivkrosgPiBuYW1lXC1vZlwtYVwtaG9yc2U7CivkroogPiBuYW1lXC1vZlwtYVwtaG9yc2U7CivkrbwgPiBkYXJrXC1ibHVlXC1ob3JzZTsKK+SttiA+IGRhcmtcLWJsdWVcLWhvcnNlOwor5KyrID4gY2xhcmZpZWRcLWJ1dHRlcjsKK+SsgSA+IGFcLWxpZ2h0XC1jeWNsb25lOwor5KquID4gYmVhdXRpZnVsXC1zb3VuZDsKK+SqlSA+IHRvXC13cmFwXC1vclwtYmFuZDsKK+SpuSA+IHRvXC1yZXBhaXJcLXNob2VzOwor5KmSID4gZHJlc3NlZFwtbGVhdGhlcjsKK+SphCA+IHRvXC1mYWNlXC10b1wtZmFjZTsKK+SopiA+IHNub3dpbmdcLWhlYXZpbHk7CivkqKIgPiBhXC1wYXNzaW5nXC1jbG91ZDsKK+SoliA+IHRvXC1zdG9wXC1yYWluaW5nOwor5KiRID4gdG9cLXN0b3BcLXJhaW5pbmc7CivkqIAgPiB0b1wtbGF5XC1pblwtZ3JhaW47Civkp68gPiBuYW1lXC1vZlwtYVwtcGxhY2U7Civkp64gPiBuYW1lXC1vZlwtYVwtcGxhY2U7Civkp50gPiBuYW1lXC1vZlwtYVwtcGxhY2U7Civkp4wgPiBuYW1lXC1vZlwtYVwtcGxhY2U7Civkp4sgPiBuYW1lXC1vZlwtYVwtcGxhY2U7Civkp4MgPiBuYW1lXC1vZlwtYVwtcGxhY2U7CivkprsgPiBuYW1lXC1vZlwtYVwtcGxhY2U7CivkpqsgPiBpbnNpZGVcLXRoZVwtZG9vcjsKK+SmoCA+IG5hbWVcLW9mXC1hXC1yaXZlcjsKK+SllyA+IGFcLWJyYW5kaW5nXC1pcm9uOwor5KSxID4gYVwtc29sZW1uXC1wbGVkZ2U7Civko7YgPiB1bnN0cmFpbmVkXC13aW5lOwor5KOzID4gdW5zdHJhaW5lZFwtd2luZTsKK+SjkyA+IG5hbWVcLW9mXC1hXC1zdGF0ZTsKK+SjkCA+IG5hbWVcLW9mXC1hXC1wbGFjZTsKK+SjiyA+IG5hbWVcLW9mXC1hXC1wbGFjZTsKK+SjiiA+IG5hbWVcLW9mXC1hXC1wbGFjZTsKK+SjhyA+IG5hbWVcLW9mXC1hXC1wbGFjZTsKK+SiuyA+IG5hbWVcLW9mXC1hXC1wbGFjZTsKK+SitCA+IG5hbWVcLW9mXC1hXC1wbGFjZTsKK+SisyA+IG5hbWVcLW9mXC1hXC1wbGFjZTsKK+SipiA+IHRvXC1sZWFkXC10aGVcLXdheTsKK+SiliA+IHRvXC1iZVwtc2NhdHRlcmVkOwor5KKBID4gdGlyZVwtb2ZcLWFcLXdoZWVsOwor5KG7ID4gc2hha2VcLW9mXC1hXC1jYXJ0Owor5KGoID4gY29ubmVjdGVkXC1jYXJ0czsKK+ShkyA+IHNoYWtlXC1vZlwtYVwtY2FydDsKK+ShkCA+IHRvXC1tb3ZlXC1zd2lmdGx5Owor5KC1ID4gdG9cLXdlYXJcLWNsb3RoZXM7CivkoKggPiB3YWxraW5nXC1yYXBpZGx5Owor5J+bID4gd2Fsa2luZ1wtcmFwaWRseTsKK+SfkSA+IHdhbGtpbmdcLXJhcGlkbHk7CivknrcgPiB3YWxraW5nXC1yYXBpZGx5Owor5J62ID4gd2Fsa2luZ1wtcmFwaWRseTsKK+SesCA+IHdhbGtpbmdcLXJhcGlkbHk7Civknq0gPiB3YWxraW5nXC1yYXBpZGx5Owor5J6sID4gdG9cLXBhc3NcLXRocm91Z2g7CivknqogPiB3YWxraW5nXC1yYXBpZGx5Owor5J2vID4gdG9cLWNoYW5nZVwtaGFuZHM7CivknZAgPiBhXC1jYXN0cmF0ZWRcLWhvZzsKK+ScviA+IGZlcm1lbnRlZFwtYmVhbnM7CivknLsgPiBmZXJtZW50ZWRcLWJlYW5zOwor5Jy1ID4gZmVybWVudGVkXC1iZWFuczsKK+SchCA+IHNsb3dcLW9uXC10YWxraW5nOwor5Ju1ID4gdG9cLXRlYWNoXC1vcmFsbHk7Civkm58gPiB3aWxkXC1zdGF0ZW1lbnRzOwor5JuUID4gdG9cLWhvbGRcLWluXC1oYW5kOwor5JqmID4gc2xhbnRlZFwtY29ybmVyczsKK+SapSA+IHRvXC1hZGp1c3RcLWFcLWJvdzsKK+SZuyA+IHRvXC1zdGVhbFwtYVwtbG9vazsKK+SZqCA+IHRvXC13cmFwXC1vclwtYmluZDsKK+SZnSA+IHVuZGVyXC1nYXJybWVudHM7Civkl74gPiBjb3JiaWN1bGFcLWxlYW5hOwor5Ja8ID4gdGhlXC1kdW5nXC1iZWV0bGU7CivklpkgPiBhXC1yZXN0aW5nXC10aWdlcjsKK+SWiSA+IHRvXC1yb2FyXC1vclwtaG93bDsKK+SVtyA+IGFcLWtpbmRcLW9mXC1wbGFudDsKK+SVmSA+IHRvXC1zZXRcLWluXC1vcmRlcjsKK+SViSA+IGFcLWtpbmRcLW9mXC1wbGFudDsKK+SUpyA+IGFcLWtpbmRcLW9mXC1wbGFudDsKK+SUhyA+IGFcLWtpbmRcLW9mXC1wbGFudDsKK+STtiA+IGFcLWtpbmRcLW9mXC1wbGFudDsKK+STniA+IGFcLWtpbmRcLW9mXC1wbGFudDsKK+STmCA+IGFcLWtpbmRcLW9mXC1wbGFudDsKK+STiCA+IGFcLWtpbmRcLW9mXC1wbGFudDsKK+SStyA+IGFcLWtpbmRcLW9mXC1wbGFudDsKK+SSkiA+IG5hbWVcLW9mXC1hXC1wbGFudDsKK+SSjCA+IGRhcmtcLWJsdWVcLWNvbG9yOwor5JCcID4gYVwtc3dlbGxlZFwtYmVsbHk7Civkj7IgPiBwcm90cnVkZWRcLWJvbmVzOwor5I6zID4gbG9zZVwtb2ZcLXRoZVwtZWFyOwor5I6JID4gdG9cLXdhbGtcLXN3aWZ0bHk7CivkjL4gPiB0b1wtbGF5XC10aGVcLXdhcnA7Civki7cgPiBhXC1raW5kXC1vZlwtdGhpY2s7Civki5UgPiB0b1wtbGF5XC10aGVcLXdhcnA7CivkirUgPiB5b3VuZ1wtYW5kXC1zbWFsbDsKK+SKlyA+IGFcLWtpbmRcLW9mXC1ncmFpbjsKK+SKiSA+IHByZXNlcnZlZFwtZnJ1aXQ7CivkiacgPiBzb3VuZFwtb2ZcLWJhbWJvbzsKK+SGgiA+IGFcLWtpbmRcLW9mXC1ncmFpbjsKK+SFtyA+IGFuXC1lYXJcLW9mXC1ncmFpbjsKK+SFsCA+IGFcLWtpbmRcLW9mXC1ncmFzczsKK+SFoSA+IGFcLWtpbmRcLW9mXC1ncmFzczsKK+SFoCA+IGFcLWtpbmRcLW9mXC1ncmFzczsKK+SFniA+IHN0YWxrc1wtb2ZcLWdyYWluOwor5IWLID4gYVwta2luZFwtb2ZcLWdyYWluOwor5IWCID4gYVwta2luZFwtb2ZcLWdyYWluOwor5ISxID4gYVwta2luZFwtb2ZcLWdyYWluOwor5ISuID4gZGFya1wtcmljZVwtcGxhbnQ7CivkhKcgPiBhXC1raW5kXC1vZlwtZ3JhaW47CivkhJUgPiBnb2RcLW9mXC10aGVcLWxhbmQ7Civkg7cgPiBhXC1raW5kXC1vZlwtc3RvbmU7Civkg7UgPiBhXC1raW5kXC1vZlwtc3RvbmU7Civkg54gPiBhXC1raW5kXC1vZlwtc3RvbmU7Civkg5IgPiBwb29yXC1hbmRcLWJhcnJlbjsKK+SCrSA+IG5hbWVcLW9mXC1hXC1wbGFjZTsKK+SCmiA+IGFcLWtpbmRcLW9mXC1zdG9uZTsKK+SBtCA+IGtlZXBcLW9uXC1sb29raW5nOwor5IGzID4gdG9cLWxvc2VcLW9uZVwtZXllOwor5ICpID4gdG9cLWxvb2tcLWFza2FuY2U7CivkgI4gPiB0b1wtbG9va1wtYXNrYW5jZTsKK+SAiSA+IGZvb2RcLWNvbnRhaW5lcnM7Civjv7EgPiBkcnlcLWFuZFwtZGVjYXllZDsKK+O+qSA+IG1hbGlnbmFudFwtYm9pbHM7Civjvb0gPiBjaHJvbmljXC1kaXNlYXNlOwor472nID4gbmFtZVwtb2ZcLWFcLXBsYWNlOwor47yVID4gcHVscFwtb2ZcLWFcLW1lbG9uOwor47yUID4gYVwta2luZFwtb2ZcLW1lbG9uOwor47yRID4gcHVscFwtb2ZcLWFcLW1lbG9uOwor47yNID4gcHVscFwtb2ZcLWFcLW1lbG9uOwor47yKID4gYVwta2luZFwtb2ZcLW1lbG9uOwor47yCID4gYVwtY3JhY2tcLWluXC1qYWRlOwor47u4ID4gamFkZVwtbGlrZVwtc3RvbmU7Civju7cgPiBuYW1lXC1vZlwtYVwtcGxhY2U7Civju40gPiBuYW1lXC1vZlwtYVwtc3dvcmQ7CivjuqQgPiBhXC1raW5kXC1vZlwtYmVhc3Q7CivjuqEgPiBhXC1raW5kXC1vZlwtYmVhc3Q7Civjup8gPiBhXC1raW5kXC1vZlwtYmVhc3Q7CivjupQgPiBhXC1raW5kXC1vZlwtYmVhc3Q7Civjuo0gPiBhXC1raW5kXC1vZlwtb3R0ZXI7CivjuowgPiBlbmRsZXNzXC1iYXJraW5nOwor47qEID4gYVwta2luZFwtb2ZcLWJlYXN0Owor47qBID4gYVwta2luZFwtb2ZcLWJlYXN0Owor47mnID4gZm94XC1saWtlXC1hbmltYWw7CivjuLEgPiBob3JubGVzc1wtY2F0dGxlOwor47iwID4gaG9ybmxlc3NcLWNhdHRsZTsKK+O4qSA+IHRvXC1kZXNpc3RcLWFuXC1veDsKK+O4kSA+IGFcLWNvb2tpbmdcLXN0b3ZlOwor47eNID4gYVwtY2hlbWljYWxcLXRlcm07CivjtpsgPiBuYW1lXC1vZlwtYVwtcml2ZXI7CivjtbIgPiBuYW1lXC1vZlwtYVwtcml2ZXI7CivjtacgPiBuYW1lXC1vZlwtYVwtcml2ZXI7CivjtZEgPiBuYW1lXC1vZlwtYVwtcml2ZXI7CivjtYIgPiBuYW1lXC1vZlwtYVwtcml2ZXI7CivjtKogPiBuYW1lXC1vZlwtYVwtcml2ZXI7Civjs78gPiByb2xsaW5nXC1iaWxsb3dzOwor47O+ID4gbmFtZVwtb2ZcLWFcLXJpdmVyOwor47O4ID4gbmFtZVwtb2ZcLWFcLXJpdmVyOwor47O3ID4gZGFya1wtYmx1ZVwtY29sb3I7Civjs7YgPiBuYW1lXC1vZlwtYVwtcml2ZXI7Civjs7UgPiBuYW1lXC1vZlwtYVwtcml2ZXI7Civjs6EgPiBuYW1lXC1vZlwtYVwtcml2ZXI7Civjs5cgPiBiYW5rXC1vZlwtYVwtcml2ZXI7Civjs5YgPiBuYW1lXC1vZlwtYVwtcml2ZXI7CivjsrwgPiBuYW1lXC1vZlwtYVwtcml2ZXI7CivjspQgPiB3b29sZW5cLXRleHRpbGVzOwor47KOID4gd29vbGVuXC10ZXh0aWxlczsKK+OyjSA+IHdvb2xlblwtdGV4dGlsZXM7CivjsY4gPiBjYW5ub3RcLWJlXC1rbm93bjsKK+OwrCA+IHNob3J0d2luZGVkbmVzczsKK+OwlyA+IGFcLWtpbmRcLW9mXC1tYXBsZTsKK+OwiCA+IG5pY2VcLWFuZFwtcHJldHR5Owor46+xID4gYW5cLWVubGFyZ2VkXC1iYWc7Civjr6QgPiB0aGVcLWp1anViZVwtdHJlZTsKK+OvlCA+IHRvXC1odWxsXC1oZWF2aWx5Owor466hID4gdG9cLWxpZ2h0XC1hXC1maXJlOwor462kID4gdGhlXC1jb252b2x2dWx1czsKK+OroCA+IGFcLWtpbmRcLW9mXC13YXRlcjsKK+OqqyA+IHdpc2VcLWFuZFwtY2xldmVyOwor76isID4gcHVibGljXC1idWlsZGluZzsKK++ohyA+IHNwb2tlc1wtb2ZcLXdoZWVsOwor46eOID4gZm9ya2VkXC1icmFuY2hlczsKK++njCA+IHNwYXJrbGluZ1wtc3RvbmU7CivjpZ4gPiB0b1wtdGhpbmtcLWRlZXBseTsKK+OlmyA+IHdpdGhcLWV4cGVkaXRpb247Civjop4gPiByb29tc1wtY29ubmVjdGVkOwor46KNID4gYVwtbG9uZ1wtdmVyYWJkYWg7CivjobIgPiB0aWxlc1wtb25cLWFcLXJvb2Y7CivjoYAgPiByYWdnZWRcLWNsb3RoaW5nOwor46CIID4gbmFtZVwtb2ZcLWFcLXBsYWNlOwor46CCID4gbmFtZVwtb2ZcLWFcLXBsYWNlOwor45+UID4gc3RlZXBcLWFuZFwtbG9mdHk7Civjn48gPiBzdGVlcFwtYW5kXC1sb2Z0eTsKK+OdpSA+IGhhdmVcLWFcLW5pZ2htYXJlOwor452FID4gdG9cLWdpdmVcLXN1Y2tcLXRvOwor45yyID4gdG9cLWhhdmVcLXN1cnBsdXM7Civjm7AgPiB0b1wtbWFycnlcLWFcLXdpZmU7CivjmqYgPiBhXC1jaGFybWluZ1wtZ2lybDsKK+OZvCA+IGFcLW1pbGl0YXJ5XC13YWxsOwor45m4ID4gYVwtY2xvZFwtb2ZcLWVhcnRoOwor45mXID4gYVwtbHVtcFwtb2ZcLWVhcnRoOwor45i6ID4gY3VsdGl2YXRlZFwtbGFuZDsKK+OYtSA+IG5hbWVcLW9mXC1hXC1wbGFjZTsKK+OXvyA+IHRvXC1sYXVnaFwtbG91ZGx5Owor45WyID4gdG9cLWdhZ1wtb3JcLWJyaWJlOwor45WYID4gdG9cLXRha2VcLXBhcnRcLWluOwor45KfID4gd2l0aFwtYVwtY2hhcm1pbmc7CivjkL0gPiBuYW1lXC1vZlwtYVwtcGxhY2U7CivouoUgPiB3YWxrXC1jYXJlZnVsbHk7Civlt7QgPiBncmVhdGx5XC1kZXNpcmU7CivmnJ8gPiBwZXJpb2RcLW9mXC10aW1lOwor5Y+4ID4gdGFrZVwtY2hhcmdlXC1vZjsKK+eUpSA+IHNpc3Rlcicnc1wtY2hpbGQ7CivlsY8gPiBmb2xkaW5nXC1zY3JlZW47Civni5AgPiBzcGVjaWVzXC1vZlwtZm94Owor5rGJID4gY2hpbmVzZVwtcGVvcGxlOwor5aa5ID4geW91bmdlclwtc2lzdGVyOwor5LyBID4gcGxhblwtYVwtcHJvamVjdDsKK+illiA+IG91dGVyXC1nYXJtZW50czsKK+WjgSA+IHBhcnRpdGlvblwtd2FsbDsKK+mfpiA+IHRhbm5lZFwtbGVhdGhlcjsKK+a9sCA+IGZsb29kaW5nXC1yaXZlcjsKK+ePoCA+IHByZWNpb3VzXC1zdG9uZTsKK+mUiyA+IHBvaW50XC1vZlwtc3BlYXI7Civkv5cgPiBzb2NpYWxcLWN1c3RvbXM7CivmqpAgPiBlYXZlc1wtb2ZcLWhvdXNlOwor6aqRID4gcmlkZVwtaG9yc2ViYWNrOwor5Ye9ID4gY29ycmVzcG9uZGVuY2U7CivprY8gPiBraW5nZG9tXC1vZlwtd2VpOwor5p6aID4gc3RhbGtcLW9mXC1zaHJ1YjsKK+S7siA+IG1pZGRsZVwtYnJvdGhlcjsKK+eQsyA+IGJlYXV0aWZ1bFwtamFkZTsKK+WHkSA+IHBpZWNlXC10b2dldGhlcjsKK+mDgSA+IHN3ZWV0XC1zbWVsbGluZzsKK+iKryA+IHBpdGhcLWZyb21cLXJ1c2g7CivnuJ4gPiB3aGl0ZVwtcmF3XC1zaWxrOwor5pesID4gdGVuXC1kYXlcLXBlcmlvZDsKK+e2uiA+IGZpbmVcLXRoaW5cLXNpbGs7CivlpqggPiBpbnRlcmZlcmVcLXdpdGg7CivpqoQgPiBzcGlyaXRlZFwtaG9yc2U7CivnsLcgPiBlYXZlc1wtb2ZcLWhvdXNlOwor5o60ID4gYm94XC1vbmUnJ3NcLWVhcnM7Civll68gPiBmaW5hbFwtcGFydGljbGU7Civlsq0gPiBtb3VudGFpblwtcmlkZ2U7CivmuZggPiBodW5hblwtcHJvdmluY2U7CivpioMgPiBhbmNpZW50XC13ZWFwb247CivmuoMgPiBmbG9vZGluZ1wtcml2ZXI7Civpk64gPiBjbGFuZ2luZ1wtc291bmQ7CivojrkgPiBsdXN0ZXJcLW9mXC1nZW1zOwor5YO7ID4gb3V0XC1vZlwtdGhlXC13YXk7Civnu64gPiBmaW5lXC10aGluXC1zaWxrOwor5ri6ID4gZW5kbGVzc2x5XC1sb25nOwor5L2jID4gY29tbWlzc2lvblwtZmVlOwor5ZKvID4gZmluYWxcLXBhcnRpY2xlOwor5ZGbID4gY2hva2VcLWJ5XC1zbW9rZTsKK+WHsCA+IGZlbWFsZVwtcGhvZW5peDsKK+mXuiA+IHNtYWxsXC1lbnRyYW5jZTsKK+e8gCA+IHBhdGNoXC10b2dldGhlcjsKK+iihCA+IG91dGVyXC1nYXJtZW50czsKK+eSiyA+IGphZGVcLXBsYXl0aGluZzsKK+aLtCA+IGJpbmRcLXdpdGhcLXJvcGU7Civnp6cgPiByaWNlXC1zZWVkbGluZ3M7CivolYMgPiBmb3JlaWduXC10aGluZ3M7CivphIIgPiBodWJlaVwtcHJvdmluY2U7Civmo7EgPiBzcXVhcmVkXC10aW1iZXI7CivmopcgPiBzdGVtXC1vZlwtZmxvd2VyOwor6I+xID4gd2F0ZXJcLWNoZXN0bnV0Owor6ZWRID4gcG91bmRcLXN0ZXJsaW5nOwor5qCpID4gc3BlY2llc1wtb2ZcLW9hazsKK+WUtyA+IGZpbmFsXC1wYXJ0aWNsZTsKK+eSniA+IHVucG9saXNoZWRcLWdlbTsKK+mbryA+IGNsb3VkXC1wYXR0ZXJuczsKK+iutyA+IHNsb3dcLW9mXC1zcGVlY2g7CivnkocgPiBiZWF1dGlmdWxcLWphZGU7Civni7AgPiBmaWVyY2VcLWxvb2tpbmc7Civls6YgPiBtb3VudGFpblwtcmFuZ2U7CivmuYMgPiBzb3VuZFwtb2ZcLXdhdmVzOwor5aijID4geW91bmdlclwtc2lzdGVyOwor6J2XID4ga2luZFwtb2ZcLWxvY3VzdDsKK+ealiA+IGFuaHVpXC1wcm92aW5jZTsKK+mFiyA+IGNoaWVmXC1vZlwtdHJpYmU7Civlo5EgPiBiZWRcLW9mXC10b3JyZW50Owor57OvID4gZ2x1dGlub3VzXC1yaWNlOwor56i3ID4gZ29kXC1vZlwtY2VyZWFsczsKK+WhviA+IHZpbGxhZ2VcLXNjaG9vbDsKK+eLqSA+IHdpbnRlclwtaHVudGluZzsKK+aIjSA+IGRlZmVuZFwtYm9yZGVyczsKK+eSgCA+IGx1c3RyZVwtb2ZcLWdlbXM7CivniY0gPiB3cml0aW5nXC10YWJsZXQ7CivplYwgPiBlbmdyYXZpbmdcLXRvb2w7Civppa8gPiBmYXJld2VsbFwtcGFydHk7CivpuYIgPiBjaGluZXNlXC1vcmlvbGU7Civlm6EgPiBvbmUnJ3NcLWRhdWdodGVyOwor5rqfID4gZHJpenpsaW5nXC1yYWluOwor6ZSPID4ga2luZFwtb2ZcLXJhcGllcjsKK+WxmSA+IHRvXC1lYXNlXC1uYXR1cmU7CivnkKggPiBiZWF1dGlmdWxcLWphZGU7CivnjrMgPiB0b3J0b2lzZVwtc2hlbGw7Civnka0gPiBhXC1raW5kXC1vZlwtamFkZTsKK+adiCA+IGZvcmtcLW9mXC1hXC10cmVlOwor5YyQID4gZmFsbFwtcHJvc3RyYXRlOwor56CjID4gYVwtc3RvbmVcLXJvbGxlcjsKK+mToiA+IHVuaXRcLW9mXC13ZWlnaHQ7CivpqoggPiB0ZWFtXC1vZlwtaG9yc2VzOwor5ZmxID4gbGF1Z2hcLWhlYXJ0aWx5Owor6ZOzID4gYW5jaWVudFwtd2VhcG9uOwor55uxID4gd2lkZVwtb3BlblwtZXllczsKK+iAhCA+IGVsZGVybHlcLXBlcnNvbjsKK+amlCA+IGJldGVsXC1udXRcLXRyZWU7Civor6QgPiB0b1wtZXhwb3N0dWxhdGU7Civona4gPiB2ZW5vbW91c1wtc25ha2U7Civpoo0gPiByaXZlclwtaW5cLWFuaHVpOwor5qWdID4gbWVsaWFcLWphcG9uaWNhOwor6J28ID4gYVwtbW9sZVwtY3JpY2tldDsKK+iNqiA+IGFyb21hdGljXC1ncmFzczsKK+WojCA+IGJyb3RoZXInJ3NcLXdpZmU7CivnvJ8gPiB3aGl0ZVwtcmF3XC1zaWxrOwor5pm3ID4gc2hhZG93c1wtb2ZcLXN1bjsKK+WXtSA+IHVzZWRcLWZvclwtc291bmQ7CivouIUgPiB0b1wtd2Fsa1wtYXJvdW5kOwor5o+GID4gcHJpbWVcLW1pbmlzdGVyOwor54yVID4gbWFjYWN1c1wtbW9ua2V5Owor5Y6dID4gY3V0XC1vclwtZW5ncmF2ZTsKK+iRmiA+IG11bGJlcnJ5XC1mcnVpdDsKK+iAkiA+IGhhbmRsZVwtb2ZcLXBsb3c7CivlmJ4gPiBmaW5hbFwtcGFydGljbGU7CivpjL4gPiBlbmdyYXZpbmdcLXRvb2w7Civnj5kgPiBwcmVjaW91c1wtc3RvbmU7CivojbggPiB3YXRlclwtY2hlc3RudXQ7Civkv4UgPiBvcm5hbWVudGFsXC1jYXA7Civoj70gPiBiZWFuc1wtYW5kXC1wZWFzOwor6Z6vID4gc2FkZGxlXC1ibGFua2V0Owor6byQID4gaW5jZW5zZVwtdHJpcG9kOwor6LCwID4gYWNjdXNlXC1mYWxzZWx5Owor6aqxID4gam9pbnRcLW9mXC1ib25lczsKK+ispiA+IHRcLXNwZWFrXC1zb2Z0bHk7Civno7QgPiBzdGVwc1wtb25cLWxlZGdlOwor5am6ID4gbmFtZVwtb2ZcLWFcLXN0YXI7CivloI0gPiBzaWRlXC1vZlwtYnJpZGdlOwor5qGrID4gaG9yc2VcLWNoZXN0bnV0Owor5ry2ID4gaW5kZWNpcGhlcmFibGU7CivlraUgPiBvbmUnJ3NcLWNoaWxkcmVuOwor5rqxID4gcml2ZXJcLWluXC1oZW5hbjsKK+W6oCA+IHZpbGxhZ2VcLXNjaG9vbDsKK+m7pSA+IHRhdHRvb2luZ1wtZmFjZTsKK+i6kCA+IHRvXC1zdHJpZGVcLW92ZXI7Civoua8gPiBwYXdzXC1vZlwtYW5pbWFsOwor55uNID4gd2hhdFw/XC13aHlcLW5vdFw/Owor5rqGID4gcml2ZXJcLWluXC1odW5hbjsKK+ejsiA+IHRyaWRhY25hXC1naWdhczsKK+aYnSA+IGFcLWR1YWxcLXByb25vdW47Civmn70gPiB0eXBlXC1vZlwtd2lsbG93Owor57ysID4gcGF0dGVybmVkXC1zaWxrOwor6am6ID4gbW91bnRlZFwtZXNjb3J0Owor6ZiKID4gZ2F0ZVwtb2ZcLWhlYXZlbjsKK+iNqSA+IGFcLWtpbmRcLW9mXC13ZWVkOwor6IqOID4gYVwta2luZFwtb2ZcLWhlcmI7Civpi4ggPiBzaWx2ZXJcLXBsYXRpbmc7CivpvoUgPiB0ZWV0aFwtcHJvdHJ1ZGU7CivmmaEgPiBsYXRlXC1hZnRlcm5vb247CivmqqAgPiBzdGFuZFwtZm9yXC1sYW1wOwor6YCtID4gdG9cLWVzY2FwZVwtZnJvbTsKK+m4nSA+IGNoaW5lc2VcLW9yaW9sZTsKK+m4jiA+IHRoZVwtbWFuZ29cLWJpcmQ7CivptpcgPiBhXC1raW5kXC1vZlwtaGF3azsKK+mupyA+IHRoZVwtc2hlYXRcLWZpc2g7CivprJggPiBiZWF1dGlmdWxcLWhhaXI7CivprJcgPiBoZWFkXC1vcm5hbWVudHM7Civpq4YgPiBzaG91bGRlclwtYmxhZGU7CivpqZUgPiBzcGlyaXRlZFwtaG9yc2U7CivpqLYgPiBtb3VudGVkXC1lc2NvcnQ7CivpqI4gPiByaWRlXC1ob3JzZWJhY2s7CivpqIwgPiBhXC1ob3JzZScnc1wtbWFuZTsKK+moiCA+IHRlYW1cLW9mXC1ob3JzZXM7Civpp6IgPiB0ZWFtXC1vZlwtaG9yc2VzOwor6aShID4gcGFzdHJ5XC1maWxsaW5nOwor6aSeID4gZmFyZXdlbGxcLXBhcnR5Owor6aSXID4gZm9vZFwtaW5cLXRyaXBvZDsKK+mfiyA+IHRhbm5lZFwtbGVhdGhlcjsKK+mfiSA+IHNhZGRsZVwtYmxhbmtldDsKK+mcoSA+IGRyaXp6bGluZ1wtcmFpbjsKK+mWtiA+IGdhdGVcLW9mXC1oZWF2ZW47CivplqggPiBzbWFsbFwtZW50cmFuY2U7CivplKogPiBhXC1raW5kXC1vZlwtdG9vbDsKK+mQqyA+IGVuZ3JhdmluZ1wtdG9vbDsKK+mQpyA+IGtpbmRcLW9mXC1yYXBpZXI7Civpj7QgPiB0b1wtcGx1Z1wtYVwtaG9sZTsKK+mPqCA+IGVuZ3JhdmluZ1wtdG9vbDsKK+mOqSA+IG1vdWx0XC1zYW1hcml1bTsKK+mOiiA+IHBvdW5kXC1zdGVybGluZzsKK+mNhiA+IG1kXC1tZW5kZWxldml1bTsKK+mMmiA+IGNsYW5naW5nXC1zb3VuZDsKK+mLqSA+IHBvaW50XC1vZlwtc3dvcmQ7Civpi5IgPiBwb2ludFwtb2ZcLXNwZWFyOwor6YuDID4gbG9ja1wtbGFudGhhbnVtOwor6YqWID4gdW5pdFwtb2ZcLXdlaWdodDsKK+mHryA+IHBvaW50XC1vZlwtc3dvcmQ7CivpgKkgPiB0b1wtcnVuXC1xdWlja2x5Owor6Ly2ID4gbGlnaHRcLWNhcnJpYWdlOwor6LmcID4gd2Fsa1wtY2FyZWZ1bGx5Owor6La5ID4ga2lja1wtd2l0aFwtaG9vZjsKK+ixoyA+IHBpZ1wtb2ZcLTNcLXllYXJzOwor6LGcID4gcGlnXC1vZlwtM1wteWVhcnM7CivosZYgPiBhXC1zaGFja2xlZFwtcGlnOwor6K6VID4gYWNjdXNlXC1mYWxzZWx5Owor6K6FID4ga25vd1wtaW5cLWRldGFpbDsKK+irjSA+IHRvXC1leHBvc3R1bGF0ZTsKK+ipqCA+IGtpbmRcLW9mXC1jaWNhZGE7CivoqKUgPiBzbG93XC1vZlwtc3BlZWNoOwor6KSJID4gc2hvcnRcLWdhcm1lbnRzOwor6KGCID4gdG9cLWJlXC1kZWZlYXRlZDsKK+iggiA+IHBvZGlzbWFcLW1pa2FkbzsKK+ifsyA+IGFcLWtpbmRcLW9mXC1jcmFiOwor6J+tID4gdmVyeVwtc21hbGxcLWJ1ZzsKK+ievyA+IGtpbmRcLW9mXC1jaWNhZGE7CivonrsgPiBhXC1tb2xlXC1jcmlja2V0Owor6J6sID4gZ3J1YnNcLWluXC1mcnVpdDsKK+icjiA+IG1vc3F1aXRvXC1sYXJ2YTsKK+iZgCA+IG1pbmNlZFwtcGlja2xlczsKK+iXjiA+IGFcLWtpbmRcLW9mXC13ZWVkOwor6JazID4gbmFtZVwtb2ZcLWFcLWhlcmI7CivolpggPiBwbGFudGFnb1wtbWFqb3I7CivolIYgPiB3YXRlclwtY2hlc3RudXQ7Civok68gPiBtZWRpY2luYWxcLWhlcmI7Civok48gPiBmcnVpdFwtb2ZcLXBsYW50Owor6JOAID4gYXJvbWF0aWNcLWdyYXNzOwor6JGlID4gcnVidXNcLXBhbG1hdHVzOwor6I+OID4gYmVhdXRpZnVsXC1qYWRlOwor6IyeID4gZnJhZ3JhbnRcLXBsYW50Owor6IuBID4gbWVkaWNpbmFsXC1oZXJiOwor6IqIID4gYmxlYXRcLW9mXC1zaGVlcDsKK+iEpiA+IHVzZWRcLWluXC0nJ2xlZGUnJzsKK+e+iyA+IGJsZWF0XC1vZlwtc2hlZXA7CivnuoggPiBwYXR0ZXJuZWRcLXNpbGs7CivntrQgPiBwYXRjaFwtdG9nZXRoZXI7CivntZwgPiBhXC1tYXJraW5nXC1saW5lOwor57S+ID4gdHVybnNcLW9yXC10d2lzdDsKK+ezuiA+IHRvXC1jb2xsYWJvcmF0ZTsKK+exqyA+IGJhbWJvb1wtdXRlbnNpbDsKK+etrCA+IHJlZWRcLW9mXC1hXC1sb29tOwor56itID4gc3RhbGtcLW9mXC1ncmFpbjsKK+eojCA+IGdsdXRpbm91c1wtcmljZTsKK+eoiCA+IHN0YWxrXC1vZlwtZ3JhaW47CivnoKIgPiBwaWxlXC1vZlwtc3RvbmVzOwor55+JID4gYW5cLWFuZ3J5XC1nbGFyZTsKK+edsSA+IHRvXC1nYXplXC1zbG93bHk7Civnna8gPiB0b1wtYmVcLWFnb25pemVkOwor55yjID4gcHJvbWluZW50XC1leWVzOwor55K4ID4gamFkZScnc1wtc3RyZWFrczsKK+eStSA+IGJlYXV0aWZ1bFwtamFkZTsKK+eSpSA+IGFcLWtpbmRcLW9mXC1qYWRlOwor55KiID4gcHJlY2lvdXNcLXN0b25lOwor55KYID4gbHVzdGVyXC1vZlwtamFkZTsKK+eShiA+IGJlYXV0aWZ1bFwtamFkZTsKK+eRqSA+IGx1c3RyZVwtb2ZcLWdlbXM7CivnkaAgPiBwcmVjaW91c1wtc3RvbmU7CivnkYcgPiB0b3J0b2lzZVwtc2hlbGw7CivnkIEgPiBiZWF1dGlmdWxcLWphZGU7Civnj7ogPiBiZWF1dGlmdWxcLWphZGU7Civnj6YgPiBhXC1raW5kXC1vZlwtamFkZTsKK+ePoiA+IHByZWNpb3VzXC1zdG9uZTsKK+eOpSA+IG15c3RlcmlvdXNcLWdlbTsKK+eNvCA+IG1hY2FjdXNcLW1vbmtleTsKK+eMmSA+IGZpZXJjZVwtbG9va2luZzsKK+eLqCA+IGhhcGFsZVwtamFjY2h1czsKK+eKqCA+IHBhbnRpbmdcLW9mXC1jb3c7CivniZggPiB3cml0aW5nXC10YWJsZXQ7Civnh4kgPiBoZWF0XC13aXRoXC1maXJlOwor54eAID4gdG9cLW1ha2VcLWFcLWZpcmU7CivnhokgPiBcKHllbGxvd1wtY29sb3JcKTsKK+a9lSA+IHJpdmVyXC1pblwtaGVuYW47CivmvYEgPiByaXZlclwtaW5cLWFuaHVpOwor5rqbID4gdG9cLWZvcm1cLWhvbGxvdzsKK+a5sSA+IHNvdW5kXC1vZlwtd2F0ZXI7CivmuYogPiBwaWVjZVwtdG9nZXRoZXI7CivmuKIgPiBwbGVhc2FudFwtc291bmQ7CivmtqwgPiB3YXRlcnlcLWV4cGFuc2U7CivmtL8gPiBzdGFnbmFudFwtd2F0ZXI7Civms4MgPiByaXZlclwtaW5cLWhlbmFuOwor5rOCID4gY2xlYXJcLWFuZFwtZGVlcDsKK+aytyA+IHRvXC1yZW1vdmVcLWV2aWw7Civmrq0gPiBhXC1zdGlmZlwtY29ycHNlOwor5qqWID4gd2lsZFwtcGVhclwtdHJlZTsKK+aqiSA+IHR5cGVcLW9mXC13aWxsb3c7Civmqb8gPiBxdWVyY3VzXC1nbGF1Y2E7Civmpr4gPiBwaWVjZXNcLW9mXC13b29kOwor5qagID4gY2hpbmVzZVwtcXVpbmNlOwor5qaWID4gcGFwZXJcLW11bGJlcnJ5Owor5qSqID4gbWFjaGlsdXNcLW5hbm11Owor5qOQID4gc3BlY2llc1wtb2ZcLXlldzsKK+aiiiA+IHNxdWVlemVcLW91dFwtb2Y7Civmn74gPiBzdHJhaWdodFwtZ3JhaW47Civmn58gPiBtYWNoaWx1c1wtbmFubXU7Civmn4MgPiBldXJ5YVwtamFwb25pY2E7Civmm48gPiBvbmNlXC11cG9uXC10aW1lOwor5pmlID4gYW5odWlcLXByb3ZpbmNlOwor5pmiID4gbGlnaHRcLW9mXC1zdGFyczsKK+aYsCA+IHZhclwtb2ZcLScndG9cLWJlJyc7CivmlIIgPiB0b1wtYmVhdFwtYVwtZHJ1bTsKK+aRtCA+IHRvXC1zdHJldGNoXC1vdXQ7CivmkZEgPiBib3hcLW9uZScnc1wtZWFyczsKK+W5sSA+IG9mZmljaWFsXC1kcmVzczsKK+W3nyA+IGFcLXdhdGVyeVwtd2FzdGU7Civlt5IgPiBtb3VudGFpblwtcmFuZ2U7CivltrogPiBtb3VudGFpblwtcmlkZ2U7CivltbQgPiBtb3VudGFpblwtcmlkZ2U7CivlsrogPiBtb3VudGFpblwtcmlkZ2U7CivlsZsgPiBmb2xkaW5nXC1zY3JlZW47CivlopogPiBtb3VudGFpblwtcmFuZ2U7CivloZUgPiBhXC1ndXN0XC1vZlwtd2luZDsKK+WfhyA+IG5hbWVcLW9mXC1icmlkZ2U7CivlnIUgPiBjb3JyZXNwb25kZW5jZTsKK+WZuSA+IHNvdW5kXC1vZlwtYmVsbHM7CivlmJMgPiBndXJnbGluZ1wtc291bmQ7Civll4YgPiBjaG9rZVwtYnlcLXNtb2tlOwor5ZaSID4gYVwtZHVhbFwtcHJvbm91bjsKK+WVjCA+IGFuaW1hbFwtZGlzZWFzZTsKK+WOgyA+IHRvXC1sb29rXC11cHdhcmQ7Civlja0gPiBoaWdoXC5cLXRvXC1yYWlzZTsKK+WNgiA+IHRvXC1mbHlcLXJhcGlkbHk7Civlh74gPiBjb3JyZXNwb25kZW5jZTsKK+S8lSA+IGNvbW1vblwtbGFib3JlcjsKK+S6hyA+IGt3dWt5ZWxcLWhhbW1lcjsKK+S2lCA+IHByb21pbmVudFwtZ3VtczsKK+S2kCA+IHRvXC10YWtlXC1icmVhdGg7CivktoAgPiBzb3VuZFwtb2ZcLWRydW1zOwor5LW+ID4gc291bmRcLW9mXC1kcnVtczsKK+S1vSA+IHNvdW5kXC1vZlwtZHJ1bXM7CivktbYgPiBhXC1raW5kXC1vZlwtZnJvZzsKK+S1jCA+IHJlZGRpc2hcLXllbGxvdzsKK+S0tCA+IGFcLWtpbmRcLW9mXC1jYWtlOwor5LSvID4gYVwta2luZFwtb2ZcLWNha2U7CivktKkgPiBhXC1raW5kXC1vZlwtZGVlcjsKK+S0oiA+IGFcLWtpbmRcLW9mXC1kZWVyOwor5LSYID4gYVwta2luZFwtb2ZcLWJpcmQ7CivktJAgPiBhXC1raW5kXC1vZlwtYmlyZDsKK+S0hiA+IGFcLWtpbmRcLW9mXC1iaXJkOwor5LSEID4gYVwta2luZFwtb2ZcLWJpcmQ7Civks78gPiBhXC1raW5kXC1vZlwtYmlyZDsKK+SzuCA+IHRoZVwtd2lsZFwtZ29vc2U7Civks7QgPiBhXC1raW5kXC1vZlwtYmlyZDsKK+SzryA+IGFcLWtpbmRcLW9mXC1iaXJkOwor5LOsID4gYVwta2luZFwtb2ZcLWJpcmQ7Civks6sgPiBhXC1zbWFsbFwtcGlnZW9uOwor5LOqID4gYVwta2luZFwtb2ZcLWJpcmQ7Civks6kgPiBhXC1raW5kXC1vZlwtYmlyZDsKK+SzkiA+IGFcLWtpbmRcLW9mXC1iaXJkOwor5LK9ID4gYVwta2luZFwtb2ZcLWJpcmQ7CivksrwgPiBhXC1raW5kXC1vZlwtYmlyZDsKK+SyuCA+IGFcLWtpbmRcLW9mXC1iaXJkOwor5LKuID4gYVwta2luZFwtb2ZcLWJpcmQ7CivksqogPiBhXC1raW5kXC1vZlwtYmlyZDsKK+SyoiA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LKgID4gYVwta2luZFwtb2ZcLWZpc2g7Civksp8gPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SymSA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LKYID4gYVwta2luZFwtb2ZcLWZpc2g7CivkspcgPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SykyA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LKQID4gYVwta2luZFwtb2ZcLWZpc2g7Civkso8gPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SyiyA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LKJID4gYVwta2luZFwtb2ZcLWZpc2g7CivksoIgPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SygCA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LG/ID4gYVwta2luZFwtb2ZcLWZpc2g7CivksbwgPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SxuyA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LG1ID4gYVwta2luZFwtb2ZcLWZpc2g7CivksbIgPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SxsCA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LGvID4gYVwta2luZFwtb2ZcLWZpc2g7Civksa4gPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SxrCA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LGrID4gYVwta2luZFwtb2ZcLWZpc2g7CivksaggPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SxpSA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LGkID4gYVwta2luZFwtb2ZcLWZpc2g7CivksaIgPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SxoCA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LGeID4gYVwta2luZFwtb2ZcLWZpc2g7CivksZsgPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SxmiA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LGTID4gYVwta2luZFwtb2ZcLWZpc2g7CivksL4gPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SwuSA+IHRoZVwtY3V0dGxlZmlzaDsKK+SwtCA+IGFcLXdhZnRpbmdcLWZpc2g7CivksLIgPiB0aGVcLXNoZWF0XC1maXNoOwor5LChID4gYVwtZmllcmNlXC1naG9zdDsKK+SvmyA+IHRoZVwta25lZVwtYm9uZXM7CivkrrkgPiBhblwtYW5ncnlcLWhvcnNlOwor5K6uID4gYVwta2luZFwtb2ZcLW11bGU7CivkrbsgPiBhXC1zd2lmdHlcLWhvcnNlOwor5K2zID4gYVwta2luZFwtb2ZcLWhlcmI7CivkrbIgPiBzd2VldFwtc21lbGxpbmc7Civkra0gPiB0aGVcLWVsZGVzdFwtc29uOwor5K2pID4gdG9cLWZlZWRcLWFcLWJhYnk7CivkracgPiB0b1wtZmVlZFwtYVwtYmFieTsKK+StgSA+IHN0aW5raW5nXC1zbWVsbDsKK+SsuiA+IHNhbWVcLWFzXC11XCs0YjUwOwor5KyYID4gdGhlXC13aW5kXC1ibG93czsKK+SskiA+IHRvXC1ibG93XC1jaGlsbHk7CivkrIwgPiB0aGVcLXdpbmRcLWJsb3dzOwor5KurID4gaHVtYW5cLXNrZWxldG9uOwor5Kq8ID4gdGhlXC1jaGVla1wtYm9uZTsKK+SqiCA+IGFcLWxlYXRoZXJcLWJlbHQ7CivkqZAgPiB0aWVcLWl0XC10aWdodGx5Owor5KirID4gZHJpenpsaW5nXC1yYWluOwor5KilID4gYVwtcG91cmluZ1wtcmFpbjsKK+SonCA+IGFcLXBvdXJpbmdcLXJhaW47Civkp74gPiBhXC1raW5kXC1vZlwtYmlyZDsKK+SntyA+IGFcLWtpbmRcLW9mXC1iaXJkOwor5KenID4gaGlnaFwtbW91bnRhaW5zOwor5Ka6ID4gbmFtZVwtb2ZcLWFcLWhpbGw7CivkpqQgPiBzZWVkXC1vZlwtZ3JhaW5zOwor5KaRID4gd2l0aG91dFwtYVwtZG9vcjsKK+SmjyA+IHdpbmdcLW9mXC1hXC1kb29yOwor5KWiID4gc291bmRcLW9mXC1kcnVtczsKK+SkliA+IGFcLWtpbmRcLW9mXC13aW5lOwor5KOlID4gYVwta2luZFwtb2ZcLXdpbmU7Civko44gPiBuYW1lXC1vZlwtY291bnR5Owor5KKoID4gdG9cLXdhbGtcLXNsb3dseTsKK+ShviA+IGhpZ2hcLWNhcnRsb2FkczsKK+ShsiA+IHJpbVwtb2ZcLWFcLXdoZWVsOwor5KGXID4gcmltXC1vZlwtYVwtd2hlZWw7CivkoYkgPiBhXC1raW5kXC1vZlwtY2FydDsKK+SfkyA+IHRvXC13YWxrXC1zbG93bHk7CivknbggPiBhXC1raW5kXC1vZlwtdG9vbDsKK+ScvSA+IGFcLWtpbmRcLW9mXC1iZWFuOwor5Jy8ID4gYVwta2luZFwtb2ZcLWJlYW47CivknJwgPiB3b3Jkc1wtb2ZcLWFuZ2VyOwor5JugID4gdW5hYmxlXC10b1wtdGFsazsKK+SaliA+IG1vdW50YWluXC1kZWl0eTsKK+SahCA+IHRvXC1tYWtlXC1mdW5cLW9mOwor5JmzID4gc3BpdGluZ1wtZmxhbWVzOwor5JmmID4gdXBwZXJcLWdhcm1lbnRzOwor5JiiID4gb2xkXC1hbmRcLXNoYWJieTsKK+SYgyA+IGFcLWtpbmRcLW9mXC1jcmFiOwor5Je3ID4gYVwta2luZFwtb2ZcLXdhc3A7Civkl6ogPiBhXC1raW5kXC1vZlwtd29ybTsKK+SXnCA+IGFcLW1vbGVcLWNyaWNrZXQ7Civkl5ogPiBlZ2dzXC1vZlwtbWFudGlzOwor5JeSID4gYVwta2luZFwtb2ZcLWNsYW07Civkl4AgPiBhXC1raW5kXC1vZlwtY2xhbTsKK+SWsCA+IGFcLWtpbmRcLW9mXC1nbmF0Owor5JaGID4gbWVkaWNpbmFsXC1oZXJiOwor5JWaID4gYVwtc3RyYXdcLWJhc2tldDsKK+SUlSA+IGNoaWNrZW5cLWJyZWFzdDsKK+SUiyA+IGFcLWtpbmRcLW9mXC10cmVlOwor5JSGID4gYVwta2luZFwtb2ZcLWJlYW47CivklIIgPiB2ZWdldGFibGVcLXNvdXA7Civkk6EgPiBhXC1tZWRpY2FsXC1oZXJiOwor5JK7ID4gYVwtbWVkaWNhbFwtaGVyYjsKK+SSsiA+IGFcLW1lZGljYWxcLWhlcmI7CivkkpMgPiB0b1wtZG9cLXZpb2xlbmNlOwor5JKHID4gbmFtZVwtb2ZcLWFcLXNoaXA7CivkkoYgPiBuYW1lXC1vZlwtYVwtc2hpcDsKK+SShSA+IGJlYXV0aWZ1bFwtZXllczsKK+SRtiA+IHNwcmlnaHRseVwtYm9hdDsKK+SRqyA+IHRvb2xzXC1mb3JcLWJvYXQ7CivkkaMgPiBhXC1zYWlsaW5nXC1ib2F0Owor5JGcID4gdG9cLWVhdFwtaGVhdmlseTsKK+SQlSA+IG9pbFwtYW5kXC1ncmVhc2U7CivkkI0gPiBleGNlbGxlbnRcLWZvb2Q7CivkjaEgPiBzbWFsbFwtZmlzaFwtbmV0Owor5I2RID4gYVwtbmV0XC1vclwtc25hcmU7CivkjZAgPiBhXC1uZXRcLW9yXC1zbmFyZTsKK+SNjSA+IHVuYnVybnRcLWJyaWNrczsKK+SMtSA+IGxhcGVsXC1hbmRcLWJlbHQ7CivkjLAgPiBjb25uZWN0ZWRcLXNpbGs7CivkjKUgPiB0b1wtc2V3XC1jbG90aGVzOwor5IyhID4gdG9cLXdpbmRcLWFyb3VuZDsKK+SLvSA+IGhlbXBlblwtc2FuZGFsczsKK+SLryA+IGNydWNpYWxcLXBvaW50czsKK+SLoiA+IHRvXC10d2lzdFwtcm9wZXM7Civki5wgPiBjcnVjaWFsXC1wb2ludHM7CivkirwgPiBtZWFzdXJpbmdcLXVuaXQ7CivkiqggPiBzdG9yaW5nXC1ncmFpbnM7CivkiLcgPiBhXC1iYW1ib29cLWZlbmNlOwor5IiaID4gYVwtYmFtYm9vXC1zaG9vdDsKK+SHqyA+IGJhbWJvb1wtc3BsaW50czsKK+SHhSA+IHRvXC1zdGFuZFwtc3RpbGw7CivkhaUgPiByaXBlbmluZ1wtY3JvcHM7CivkhZYgPiBzd2VldFwtc21lbGxpbmc7Civkg7kgPiBqYWRlXC1hbmRcLXN0b25lOwor5IO4ID4gZWxlY3RyaWNcLWxpZ2h0Owor5IOxID4gZWxlY3RyaWNcLWxpZ2h0Owor5IOhID4gYVwtc21hbGxcLXBlYmJsZTsKK+SDjyA+IGFcLWtpbmRcLW9mXC1yb2NrOwor5IOMID4gcm9ja3lcLW1vdW50YWluOwor5IKbID4gYVwta2luZFwtb2ZcLXJvY2s7CivkgowgPiBhXC1zaG9ydFwtd2VhcG9uOwor5IGkID4gbW9pc3RlbmVkXC1leWVzOwor5IGPID4gZmFyc2lnaHRlZG5lc3M7CivkgLogPiBzcXVpbnRpbmdcLWV5ZXM7CivkgKUgPiBiZWF1dGlmdWxcLWV5ZXM7CivjvaYgPiByZWNsYWltZWRcLWxhbmQ7CivjvaUgPiBmZXJ0aWxlXC1maWVsZHM7CivjvYsgPiBhXC1raW5kXC1vZlwtdGlsZTsKK+O9hCA+IGFuXC1lYXJ0aGVuXC1qYXI7Civju78gPiBhXC1raW5kXC1vZlwtamFkZTsKK+O7uiA+IGFcLWtpbmRcLW9mXC1qYWRlOwor47u1ID4gYVwta2luZFwtb2ZcLWphZGU7Civju68gPiBhXC1raW5kXC1vZlwtamFkZTsKK+O7rCA+IGFcLWtpbmRcLW9mXC1qYWRlOwor47unID4gYVwta2luZFwtb2ZcLWphZGU7Civju58gPiBhXC1raW5kXC1vZlwtamFkZTsKK+O7nSA+IGFcLWtpbmRcLW9mXC1qYWRlOwor47uWID4gYVwta2luZFwtb2ZcLWphZGU7Civju5UgPiBhXC1raW5kXC1vZlwtamFkZTsKK+O7lCA+IGFcLWtpbmRcLW9mXC1qYWRlOwor47uRID4gYVwta2luZFwtb2ZcLWphZGU7Civju4sgPiBhXC1raW5kXC1vZlwtamFkZTsKK+O7giA+IGFcLWtpbmRcLW9mXC1qYWRlOwor47q5ID4gYVwta2luZFwtb2ZcLWphZGU7CivjurggPiBhXC1raW5kXC1vZlwtamFkZTsKK+O6tyA+IGFcLWtpbmRcLW9mXC1qYWRlOwor47qxID4gYVwta2luZFwtb2ZcLWphZGU7CivjurAgPiBhXC1raW5kXC1vZlwtamFkZTsKK+O6rSA+IGFcLWtpbmRcLW9mXC1qYWRlOwor47qrID4gYVwta2luZFwtb2ZcLWphZGU7CivjuKsgPiBjYXN0cmF0ZWRcLWJ1bGw7CivjuKQgPiBicm9rZW5cLWxlYXRoZXI7CivjuIogPiBmaWVyY2VcLW9mXC1maXJlOwor47agID4gd2F0ZXJcLWN1cnJlbnRzOwor47aeID4gd2F0ZXJcLWN1cnJlbnRzOwor47WlID4gd2F0ZXJcLWN1cnJlbnRzOwor47WYID4gZ3JlYXRcLWN1cnJlbnRzOwor47S4ID4gc3dpZnRcLWN1cnJlbnRzOwor47SZID4gd2F0ZXJcLWRyaXBwaW5nOwor47ODID4gdG9cLXRlbXBlclwtaXJvbjsKK+OyjyA+IGZseWluZ1wtZmVhdGhlcjsKK+OxpyA+IHN0aW5raW5nXC1zbWVsbDsKK+OxjyA+IHRoZVwtcmlnaHRcLXNpZGU7CivjsJogPiBhXC1iYW1ib29cLWZlbmNlOwor47CYID4gYVwta2luZFwtb2ZcLXRyZWU7CivjsIogPiBhXC1raW5kXC1vZlwtdHJlZTsKK+OwgiA+IGFcLWtpbmRcLW9mXC10cmVlOwor47CAID4gYVwta2luZFwtb2ZcLXRyZWU7Civjr54gPiBhXC1raW5kXC1vZlwtdHJlZTsKK+OvmiA+IGFcLWtpbmRcLW9mXC10cmVlOwor46+XID4gYVwta2luZFwtb2ZcLXRyZWU7CivjrosgPiBhXC1raW5kXC1vZlwtdHJlZTsKK+OuhSA+IGFcLWtpbmRcLW9mXC10cmVlOwor4627ID4gdGhlXC1jcmFiXC1hcHBsZTsKK+OtrSA+IGFcLWtpbmRcLW9mXC10cmVlOwor462cID4gYVwta2luZFwtb2ZcLXRyZWU7CivjrZogPiBhXC1raW5kXC1vZlwtdHJlZTsKK+OtlCA+IGFcLWtpbmRcLW9mXC10cmVlOwor462RID4gYVwta2luZFwtb2ZcLXRyZWU7CivjrY8gPiBhXC1raW5kXC1vZlwtd29vZDsKK+OthyA+IGFcLWtpbmRcLW9mXC10cmVlOwor462EID4gYVwta2luZ1wtb2ZcLXRyZWU7CivjrYEgPiBhXC1raW5kXC1vZlwtdHJlZTsKK+OsiyA+IG5hbWVcLW9mXC1hXC1zdGFyOwor46uPID4gYVwta2luZFwtb2ZcLWZsYWc7Civjq4IgPiB0b1wtY2hvcFwtb3JcLWN1dDsKK+OqhyA+IHRvXC1kaXNzZW1pbmF0ZTsKK+OohyA+IHRvXC1zd2VlcFwtY2xlYW47Civvp68gPiBsdXN0ZXJcLW9mXC1qYWRlOwor76auID4gbHVzdHJlXC1vZlwtZ2VtczsKK++mqyA+IG1vdW50YWluXC1yaWRnZTsKK+OmjSA+IHRvXC1iZVwtc3RhcnRsZWQ7CivjpbogPiB0b1wtYmxvd1wtYVwtZmlyZTsKK++lmCA+IHdhdGVyXC1jaGVzdG51dDsKK+OliSA+IGFcLWxpdHRsZVwtYW5ncnk7CivjpYcgPiB0b1wtYmVcLXBlcnZlcnNlOwor46S+ID4gbm90XC1kb2luZ1wtd2VsbDsKK+OkliA+IHRvXC1oYXZlXC13aXNkb207Civjo6YgPiBhXC13aW5kaW5nXC1wYXRoOwor46KfID4gdG9cLXdhbGtcLXNsb3dseTsKK+OhnCA+IHJhZ2dlZFwtY2xvdGhlczsKK+OgqCA+IG1pc3R5XC1tb3VudGFpbjsKK+OgoSA+IGhpZ2hcLWFuZFwtbG9mdHk7CivjoJogPiBoaWdoXC1hbmRcLWxvZnR5Owor45+/ID4gaGlnaFwtYW5kXC1zdGVlcDsKK+OfmyA+IGhpZ2hcLWFuZFwtc3RlZXA7CivjnqkgPiBtb3VudGFpblwtdmFwb3I7CivjnpwgPiBoZW1wZW5cLXNhbmRhbHM7CivjnpcgPiB0aGVcLW1hbGVcLW9yZ2FuOwor456MID4gdG9cLWJlXC1wcmVnbmFudDsKK+OeiiA+IHVuYWJsZVwtdG9cLXdhbGs7CivjnbAgPiB1bmFibGVcLXRvXC1tZWV0Owor452bID4gYWhhbHRpbmdcLXBsYWNlOwor45ykID4gZm9vbGluZ1wtYXJvdW5kOwor45yRID4gYW5cLW9sZGVyXC13b21hbjsKK+ObqSA+IHNpc3RlcnNcLWluXC1sYXc7Civjm4IgPiB3ZWFrXC1hbmRcLXNtYWxsOwor45q6ID4gdG9cLWJlXC1wcmVnbmFudDsKK+OasiA+IHNtYWxsXC1hbmRcLXdlYWs7CivjmoMgPiB0b1wtdGFrZVwtYVwtaGludDsKK+OZtyA+IGxvd1wtbHlpbmdcLWFyZWE7Civjl4ogPiBwdWJsaWNcLW9waW5pb247Civjlr4gPiB0b1wtYmVhdFwtYVwtZHJ1bTsKK+OWoiA+IHRvXC1yZWplY3RcLWZvb2Q7CivjlawgPiBwdWJsaWNcLW9waW5pb247CivjlaQgPiBhXC1wcm91ZFwtdGVtcGVyOwor45SZID4gZ3JlYXRcLXN0cmVuZ3RoOwor45SBID4gYVwta2luZFwtb2ZcLXRvb2w7CivjkpsgPiB0b1wtc3RhbmRcLWFsb25lOwor45KAID4gZG9cLW5vdFwtZmVhclwtdG87Civnu48gPiBjbGFzc2ljXC13b3JrczsKK+W8nyA+IHlvdW5nXC1icm90aGVyOwor5bu7ID4gY2lyY2xlXC1hcm91bmQ7CivlhbMgPiBmcm9udGllclwtcGFzczsKK+W4nSA+IHN1cHJlbWVcLXJ1bGVyOwor55WqID4gdG9cLXRha2VcLXR1cm5zOwor55WlID4gYXBwcm94aW1hdGVseTsKK+WFsSA+IHRvZ2V0aGVyXC13aXRoOwor5LmJID4gcmlnaHRcLWNvbmR1Y3Q7Civlq4IgPiBzaXN0ZXJcLWluXC1sYXc7Civlk6UgPiBlbGRlclwtYnJvdGhlcjsKK+WppiA+IG1hcnJpZWRcLXdvbWVuOwor6KijID4gdGFrZVwtbGVhdmVcLW9mOwor5pePID4gYVwtZmFtaWx5XC1jbGFuOwor5aWqID4gdGFrZVwtYnlcLWZvcmNlOwor5YWEID4gZWxkZXJcLWJyb3RoZXI7CivnrJQgPiB3cml0aW5nXC1icnVzaDsKK+iityA+IGxpbmVkXC1nYXJtZW50Owor54CsID4gc3dpZnRcLWN1cnJlbnQ7CivlpocgPiBtYXJyaWVkXC13b21lbjsKK+S8ryA+IG9sZGVyXC1icm90aGVyOwor5ryyID4gcmlzZVwtaW5cLXByaWNlOwor56S8ID4gc29jaWFsXC1jdXN0b207CivlmKkgPiBydXNoaW5nXC1zb3VuZDsKK+WVoyA+IGhvbGRcLWluXC1tb3V0aDsKK+aziiA+IGFuY2hvclwtdmVzc2VsOwor5rK/ID4gZm9sbG93XC1jb3Vyc2U7CivlkoQgPiBub2lzZVwtb2ZcLXJhZ2U7CivlkKsgPiBob2xkXC1pblwtbW91dGg7CivlpLogPiB0YWtlXC1ieVwtZm9yY2U7Civoj4ogPiBjaHJ5c2FudGhlbXVtOwor5bKzID4gbW91bnRhaW5cLXBlYWs7CivljLkgPiBib2x0XC1vZlwtY2xvdGg7CivpoocgPiBsZWFuXC1vbmVcLXNpZGU7CivliqsgPiB0YWtlXC1ieVwtZm9yY2U7CivmmaggPiBlYXJseVwtbW9ybmluZzsKK+aSniA+IGtub2NrXC1hZ2FpbnN0Owor5oSIID4gbW9yZVwtYW5kXC1tb3JlOwor5qeHID4gdGlwXC1vZlwtYVwtdHJlZTsKK+mnhSA+IHJlbGF5XC1zdGF0aW9uOwor6aWFID4gc3RlYW1lZFwtYnJlYWQ7CivngrggPiB0b1wtZnJ5XC1pblwtb2lsOwor6ISIID4gYmxvb2RcLXZlc3NlbHM7Civnu6ogPiBlbmRcLW9mXC10aHJlYWQ7Civpo7wgPiByYWlzZVwtYW5pbWFsczsKK+aikyA+IGNhdGFscGFcLW92YXRhOwor6IKMID4gbXVzY2xlXC10aXNzdWU7CivkvakgPiBiZWx0XC1vcm5hbWVudDsKK+e9siA+IHB1YmxpY1wtb2ZmaWNlOwor5pCtID4gam9pblwtdG9nZXRoZXI7CivpoJcgPiBsZWFuXC1vbmVcLXNpZGU7CivmoJcgPiBjaGVzdG51dFwtdHJlZTsKK+ahkSA+IG11bGJlcnJ5XC10cmVlOwor6ISJID4gYmxvb2RcLXZlc3NlbHM7CivnvqkgPiByaWdodFwtY29uZHVjdDsKK+mehCA+IHRvXC13b3JrXC1oaWRlczsKK+adkyA+IGhhbmRsZVwtb2ZcLWN1cDsKK+S9gyA+IHRlbmFudFwtZmFybWVyOwor5piGID4gZWxkZXJcLWJyb3RoZXI7CivotKEgPiBvZmZlclwtdHJpYnV0ZTsKK+aLvCA+IGpvaW5cLXRvZ2V0aGVyOwor5puHID4gYmVjb21lXC1jbG91ZHk7CivkupkgPiBleHRlbmRcLWFjcm9zczsKK+S6mCA+IGV4dGVuZFwtYWNyb3NzOwor6K+eID4gYmVhclwtY2hpbGRyZW47CivmmbQgPiBjbGVhclwtd2VhdGhlcjsKK+a2qCA+IHJpc2VcLWluXC1wcmljZTsKK+mXnCA+IGZyb250aWVyXC1wYXNzOwor57eSID4gZW5kXC1vZlwtdGhyZWFkOwor6ZaiID4gZnJvbnRpZXJcLXBhc3M7CivloZEgPiBtb2RlbFwtaW5cLWNsYXk7CivntpMgPiBjbGFzc2ljXC13b3JrczsKK+e1jCA+IGNsYXNzaWNcLXdvcmtzOwor5rWmID4gYmFua1wtb2ZcLXJpdmVyOwor57+wID4gd3JpdGluZ1wtYnJ1c2g7CivnsZQgPiBiYW1ib29cLWJhc2tldDsKK+i+sCA+IGVhcmx5XC1tb3JuaW5nOwor5oWOID4gYWN0XC13aXRoXC1jYXJlOwor6I6JID4gd2hpdGVcLWphc21pbmU7CivmjZcgPiBtYWtlXC1wcm9ncmVzczsKK+ethiA+IHdyaXRpbmdcLWJydXNoOwor5ZOXID4gcnVzaGluZ1wtc291bmQ7CivloYwgPiBmYWxsXC1pblwtcnVpbnM7Civnq5YgPiBwZXJwZW5kaWN1bGFyOwor56auID4gc29jaWFsXC1jdXN0b207CivpmZUgPiBtb3VudGFpblwtcGFzczsKK+aDmiA+IGFic2VudFwtbWluZGVkOwor6K+AID4gdGFrZVwtbGVhdmVcLW9mOwor5reAID4gc2hhbGxvd1wtd2F0ZXI7Civmt5ggPiB3YXNoXC1pblwtc2lldmU7CivnkbAgPiBleHRyYW9yZGluYXJ5Owor5Z6rID4gYWR2YW5jZVwtbW9uZXk7CivngbYgPiBraXRjaGVuXC1yYW5nZTsKK+avkyA+IGdpdmVcLWJpcnRoXC10bzsKK+WSpyA+IHN0cmV0Y2hcLW1vdXRoOwor5aWOID4gc3RyaWRlXC1vZlwtbWFuOwor5rS9ID4gdG9cLWJsZW5kXC13aXRoOwor55G2ID4gcHJlY2lvdXNcLWphZGU7CivpkrAgPiByYXJlXC10cmVhc3VyZTsKK+eRmyA+IGx1c3Rlclwtb2ZcLWdlbTsKK+mmkiA+IHN0ZWFtZWRcLWJyZWFkOwor6aWyID4gcmFpc2VcLWFuaW1hbHM7CivmrokgPiBkaWVcLWZvclwtY2F1c2U7CivooZkgPiBwdWJsaWNcLW9mZmljZTsKK+WUrCA+IHRvXC1pbnRpbWlkYXRlOwor55iqID4gc2hyaXZlbGxlZFwtdXA7CivllIYgPiBtYWtlXC1taXNjaGllZjsKK+WymiA+IG1vdW50YWluXC1taXN0Owor5qGmID4gdHlwZVwtb2ZcLWJpcmNoOwor5rafID4gZmxvd2luZ1wtd2F0ZXI7CivllJQgPiBob2xkXC1pblwtbW91dGg7Civpo5UgPiBzb3VuZFwtb2ZcLXdpbmQ7CivlnbcgPiBjbG9kXC1vZlwtZWFydGg7CivpkasgPiB1c2VkXC1pblwtbmFtZXM7CivnrIsgPiBiYW1ib29cLXNob290czsKK+iNgyA+IGFyb21hdGljXC1oZXJiOwor56+TID4gYmFtYm9vXC1iYXNrZXQ7CivppoQgPiBkdW1wbGluZ1wtc291cDsKK+epuSA+IGhpZ2hcLWFuZFwtdmFzdDsKK+W8iCA+IGNoaW5lc2VcLWNoZXNzOwor6IG/ID4gd3JpdGluZ1wtYnJ1c2g7Civpqa4gPiBjYXJyeVwtb25cLWJhY2s7CivnrqkgPiBiYW1ib29cLWJhc2tldDsKK+iKpSA+IG11c3RhcmRcLXBsYW50Owor6am/ID4gcmVsYXlcLXN0YXRpb247CivngpwgPiBicmlsbGlhbnRcLXJlZDsKK+WynCA+IHJvY2tcLW1vdW50YWluOwor57qrID4gdGhyZWFkXC1uZWVkbGU7CivmoYAgPiBjaGlja2VuXC1yb29zdDsKK+WZmSA+IGhvbGRcLWluXC1tb3V0aDsKK+evnSA+IGJhbWJvb1wtYmFza2V0Owor5ouuID4gbGFib3JpbmdcLWhhcmQ7CivojIkgPiB3aGl0ZVwtamFzbWluZTsKK+e6pSA+IGluZmVyaW9yXC1zaWxrOwor5piZID4gYmVjb21lXC1jbG91ZHk7Civlv6QgPiBpbnN1Ym9yZGluYXRlOwor6bi+ID4gZmFidWxvdXNcLWJpcmQ7CivlmIEgPiB0b1wtYmVcLWdyaWV2ZWQ7Civovo4gPiBhXC1zdXBwbHlcLWNhcnQ7CivoiqsgPiBkYXBobmVcLWdlbmt3YTsKK+S8pyA+IHZ1bGdhclwtcGVyc29uOwor5rOgID4gbmljZVwtYW5kXC1jb29sOwor57i7ID4gaGFsdGVyXC1mb3JcLW94Owor6Li9ID4gdG9cLXdhbGtcLWFsb25lOwor6LWtID4gcmVkZGlzaFwtYnJvd247CivpooAgPiB0YWxsXC1hbmRcLXNsaW07Civmn5ggPiBhXC10aG9ybnlcLXRyZWU7CivosJQgPiBob25lc3RcLXNwZWVjaDsKK+mqkyA+IHBpZWJhbGRcLWhvcnNlOwor5bKrID4gbW91bnRhaW5cLXBlYWs7CivltKcgPiBoaWdoXC1tb3VudGFpbjsKK+mFmiA+IGNhcmJvbGljXC1hY2lkOwor5aSkID4gZGlzdGFudFwtcGxhY2U7CivmmowgPiBpblwtb3Bwb3NpdGlvbjsKK+a/kSA+IHN3aWZ0XC1jdXJyZW50Owor5oCNID4gdG9cLWJlXC1hc2hhbWVkOwor6LS9ID4gZ2lmdFwtc3VwZXJpb3I7Civmr5YgPiBndWFyZFwtYWdhaW5zdDsKK+i/kyA+IHRvXC1nb1wtdG9cLW1lZXQ7Civmr7UgPiBsb25nXC1mZWF0aGVyczsKK+edmiA+IGNvcm5lclwtb2ZcLWV5ZTsKK+avvSA+IGFcLXNodXR0bGVjb2NrOwor5YOzID4gbWlub3JpdHlcLW5hbWU7CivpqpAgPiBwaWViYWxkXC1ob3JzZTsKK+i+jyA+IGh1YnNcLW9mXC13aGVlbDsKK+aXhiA+IGZsYWdcLW9ybmFtZW50Owor6I2HID4gYVwtd2F0ZXJcLXBsYW50Owor5Y2uID4gbWVhc3VyaW5nXC1jdXA7Civpq6EgPiB0b1wtc2hlYXJcLXRyZWU7Civps5wgPiBtYW5kYXJpblwtZmlzaDsKK+m8jSA+IGxhcmdlXC1yZXB0aWxlOwor56yrID4gcGxhbmtzXC1vZlwtYmVkOwor57yhID4gYVwtYnJpZGFsXC12ZWlsOwor57uoID4gY29hcnNlXC1wb25nZWU7CivoirAgPiB3YXRlclwtY2FsdHJvcDsKK+mtgyA+IGRyb3VnaHRcLWRlbW9uOwor6IizID4gc3Rlcm5cLW9mXC1zaGlwOwor5bGmID4gc3RyYXdcLXNhbmRhbHM7Civok5AgPiBzdHJhd1wtYmVkXC1tYXQ7Civpio4gPiBleWVcLW9mXC1hblwtYXhlOwor6YajID4gY2FyYm9oeWRyYXRlczsKK+ibkSA+IGFcLW1hcmluZVwtY3JhYjsKK+akoCA+IHdvb2RlblwtdGFibGV0Owor5aq4ID4gYW5cLXVnbHlcLXdvbWFuOwor6aaHID4gc3RpclwtYW5kXC1jb29rOwor55SZID4gc3VnYXJcLXByb2R1Y3Q7CivolqQgPiBhbGxpdW1cLWJha2VyaTsKK+WhpSA+IGRyeVwtY2xheVwtbHVtcDsKK+m8iSA+IGxhcmdlXC1yZXB0aWxlOwor6bieID4gZmFidWxvdXNcLWJpcmQ7CivptakgPiBvd2xcLWxpa2VcLWJpcmQ7CivpsZYgPiBtYW5kYXJpblwtZmlzaDsKK+mrgyA+IHNob3VsZGVyXC1ib25lOwor6aqqID4gY3Jvb2tlZFwtYm9uZXM7CivpqZsgPiByZWxheVwtc3RhdGlvbjsKK+mojyA+IHBpZWJhbGRcLWhvcnNlOwor6aiFID4gcGllYmFsZFwtaG9yc2U7CivpprEgPiBjYXJyeVwtb25cLWJhY2s7CivppqMgPiBmcmFncmFudFwtb2RvcjsKK+mkpyA+IHN0ZWFtZWRcLWJyZWFkOwor6aSbID4gZHVtcGxpbmdcLXNvdXA7CivppJogPiBwcmVwYXJlZFwtbWVhdDsKK+mivCA+IHNvdW5kXC1vZlwtd2luZDsKK+mgjiA+IHRhbGxcLWFuZFwtc2xpbTsKK+meriA+IGxlYXRoZXJcLXNob2VzOwor6ZydID4gZHJvcHNcLW9mXC1yYWluOwor6ZmdID4gbW91bnRhaW5cLXBhc3M7Civpk5YgPiBwZXJzb24nJ3NcLW5hbWU7CivpjKEgPiBhXC1raW5kXC1vZlwtcGVuOwor6YuuID4gcGVyc29uJydzXC1uYW1lOwor6Yi6ID4gcmFyZVwtdHJlYXN1cmU7CivpiIQgPiBhXC13aW5lXC1mbGFnb247Civph60gPiB0aXJlXC1vZlwtd2hlZWw7CivphqggPiBkcmVnc1wtb2ZcLXdpbmU7CivovqEgPiByZWNyaW1pbmF0aW9uOwor6L2PID4gc2xlZXBpbmdcLWNhcnQ7CivovLMgPiBodWJzXC1vZlwtd2hlZWw7CivovJwgPiBhXC1zdXBwbHlcLWNhcnQ7Civot64gPiBoYXN0eVwtd2Fsa2luZzsKK+i0iSA+IGVhcm5lc3RcLW1vbmV5Owor6LSEID4gZ2lmdFwtc3VwZXJpb3I7Civos64gPiBmYXJld2VsbFwtZ2lmdDsKK+iyoiA+IG9mZmVyXC10cmlidXRlOwor6K6NID4gaG9uZXN0XC1zcGVlY2g7CivoroYgPiB0b1wtZXhhZ2dlcmF0ZTsKK+isjSA+IGh1bW1pbmdcLXNvdW5kOwor6KukID4gaG9uZXN0XC1zcGVlY2g7Civoq5UgPiB0b1wtaW50aW1pZGF0ZTsKK+imtiA+IHRvXC1sb29rXC1hYm91dDsKK+imlCA+IHRvXC1zZWFyY2hcLWZvcjsKK+ilmiA+IGdyYXZlXC1jbG90aGVzOwor6KOMID4gbGluZWRcLWdhcm1lbnQ7CivooYcgPiBibG9vZFwtdmVzc2VsczsKK+igtSA+IGxhcmdlXC10dXJ0bGVzOwor6J6+ID4gdGhlXC1lYXJ0aHdvcm07CivonqUgPiB0aGVcLWhvdXNlXC1mbHk7CivonpkgPiBncnVic1wtaW5cLXdvb2Q7Civom4UgPiBhXC1jYXRlcnBpbGxhcjsKK+iaoCA+IHBlcnNvbicnc1wtbmFtZTsKK+iYryA+IHRvXC10b3NzXC1hYm91dDsKK+iUjiA+IHRoZWFcLXNpbmVuc2lzOwor6JOnID4gYmFtYm9vXC1iYXNrZXQ7Civokb0gPiB0eXBlXC1vZlwtZ3JhaW47Civoj7wgPiBydXNoXC1vclwtc2VkZ2U7Civoj7ogPiBhbHRoYWVhXC1yb3NlYTsKK+iPkSA+IHRvXC13ZWVkXC1ncmFzczsKK+iOpyA+IGVkaWJsZVwtZ3JlZW5zOwor6I2IID4gdGhlYVwtc2luZW5zaXM7CivojKUgPiBydWJ1c1wtdG9ra3VyYTsKK+iLmCA+IGluZGlhblwtbWFsbG93Owor6ISlID4gcGVsdmljXC1jYXZpdHk7Civog7IgPiBoeWRyb3h5bGFtaW5lOwor572zID4gd29vZGVuXC1zY3JlZW47CivnvIcgPiByZWRkaXNoXC1jb2xvcjsKK+e4rSA+IGFcLWJyaWRhbFwtdmVpbDsKK+e3uSA+IHJlZGRpc2hcLWNvbG9yOwor57eWID4gZW5kXC1vZlwtdGhyZWFkOwor57aIID4gY29hcnNlXC1wb25nZWU7CivntIkgPiB0aHJlYWRcLW5lZWRsZTsKK+e0hyA+IGluZmVyaW9yXC1zaWxrOwor57OtID4gcmljZVwtZHVtcGxpbmc7Civnsb4gPiB1bmh1bGxlZFwtcmljZTsKK+exriA+IGJhbWJvb1wtYmFza2V0Owor57GcID4gYmFtYm9vXC1zaGVhdGg7CivnsI0gPiBiYW1ib29cLWJhc2tldDsKK+euqCA+IGJhbWJvb1wtc2hlYXRoOwor56y1ID4gYVwtYmFtYm9vXC1mb3JtOwor56ytID4gYmFtYm9vXC1zY3JlZW47Civnq6ogPiBwZXJwZW5kaWN1bGFyOwor56CeID4gdG9cLXNtYXNoXC1yb2NrOwor55+eID4gYm9yZVwtd2l0aFwtYXdsOwor55uqID4gdG9cLXRvc3NcLWFib3V0Owor55mfID4gc2hyaXZlbGxlZFwtdXA7CivnlacgPiBhcHByb3hpbWF0ZWx5Owor55OMID4gZXh0cmFvcmRpbmFyeTsKK+eSnyA+IGx1c3Rlclwtb2ZcLWdlbTsKK+eSgiA+IGphZGVcLW9ybmFtZW50Owor55GzID4gbHVzdGVyXC1vZlwtZ2VtOwor55GkID4gcHJlY2lvdXNcLWphZGU7CivnkJUgPiB0eXBlXC1vZlwtcGVhcmw7Civnj64gPiBqYWRlXC1vcm5hbWVudDsKK+eNmSA+IGRpZVwtdmlvbGVudGx5Owor54mBID4gbW9vcmluZ1wtc3Rha2U7CivnhrAgPiBncmVhdFwtZHJvdWdodDsKK+eFkiA+IGJyaWxsaWFudFwtcmVkOwor54CoID4gc3dpZnRcLWN1cnJlbnQ7CivmvKMgPiBmbG93aW5nXC13YXRlcjsKK+a1rCA+IG5hdXRpY2FsXC1taWxlOwor5rSKID4gZmxvd2luZ1wtd2F0ZXI7Civmr78gPiBsb25nXC1mZWF0aGVyczsKK+astSA+IHRvXC10cmVhdFwtd2VsbDsKK+askyA+IGFcLWNyb3NzXC1waWVjZTsKK+arjCA+IGFcLWtpbmRcLW9mXC1ob2U7Civmqq4gPiBibG9ja1wtb2ZcLXdvb2Q7CivmqLogPiB0eXBlXC1vZlwtYmlyY2g7Civmp6cgPiB3b29kZW5cLXRhYmxldDsKK+amjCA+IHdvb2RlblwtbGFkZGVyOwor5qWZID4gbmFtZVwtb2ZcLXBsYW50Owor5qSbID4gdHlwZVwtb2ZcLWJpcmNoOwor5qK8ID4gYmxvY2tcLW9mXC13b29kOwor5qK5ID4gdGhlXC1hcmVjYVwtbnV0Owor5qKOID4gc2lja2xlXC1oYW5kbGU7CivmoLAgPiBhXC1iYW1ib29cLXJhZnQ7Civmna4gPiB3b29kXC1zaGF2aW5nczsKK+acqSA+IGt3dWt5ZWxcOlwtcmFuazsKK+aQoiA+IHRvXC1zdGlja1wtaW50bzsKK+aOrSA+IHRvXC1tYW5pcHVsYXRlOwor5oy2ID4gaG9sZFwtaW5cLWhhbmRzOwor5ouVID4gdG9cLWRyYWdcLWFmdGVyOwor5oqDID4gdG9cLWNsYXBcLWhhbmRzOwor5oi6ID4gc3RvbmVcLWJvYXJkZXI7CivmiLkgPiBpblwtZGlmZmljdWx0eTsKK+aEvCA+IGFjdFwtd2l0aFwtY2FyZTsKK+aEqiA+IHRvXC1iZVwtZ3JpZXZlZDsKK+aEoSA+IGFic2VudFwtbWluZGVkOwor5oC+ID4gbW91bnRhaW5cLW5hbWU7Civlvb0gPiBnb1wtdG9cLWFuZFwtZnJvOwor5b2yID4geWVsbG93XC1kcmFnb247CivlvZQgPiB0b1wtY2FydmVcLXdvb2Q7Civlt7UgPiBtZWFzdXJpbmdcLWN1cDsKK+W3sCA+IGFuXC1hdG9tXC1ncm91cDsKK+W3ryA+IGFuXC1hdG9tXC1ncm91cDsKK+W3qiA+IHBlcnNvbicnc1wtbmFtZTsKK+W2vSA+IG1vdW50YWluXC1wZWFrOwor5bWQID4gbW91bnRhaW5cLW1pc3Q7CivltIwgPiBtb3VudGFpblwtbmFtZTsKK+WzoCA+IG1vdW50YWluXC1wYXNzOwor5bOCID4gbmFtZVwtb2ZcLXBsYWNlOwor5bOAID4gbW91bnRhaW5cLXBlYWs7Civlsr4gPiBtb3VudGFpblwtcGFzczsKK+WxqSA+IHN0cmF3XC1zYW5kYWxzOwor5bGoID4gc3RyYXdcLXNhbmRhbHM7Civlr4AgPiBmZXVkYWxcLWVzdGF0ZTsKK+WqoiA+IGJlXC1qZWFsb3VzXC1vZjsKK+WiiiA+IGFkdmFuY2VcLW1vbmV5Owor5aGQID4gbW9kZWxcLWluXC1jbGF5Owor5aC6ID4gcGVyc29uJydzXC1uYW1lOwor5Z67ID4gYW5cLWVtYmFua21lbnQ7CivlmpogPiBhcmd1bWVudGF0aXZlOwor5ZKhID4gc2lkZVwtb2ZcLW1vdXRoOwor5YefID4gdG9cLWJlXC1ydWRlXC10bzsKK+WEuSA+IHRvXC1hY2N1bXVsYXRlOwor5YSyID4gdG9cLXNhdmVcLW1vbmV5Owor5YSbID4gdG9cLXNraXBcLWFib3V0Owor5YKWID4gdnVsZ2FyXC1wZXJzb247CivlgpIgPiBwZXJzb25hbFwtbmFtZTsKK+WBiiA+IHRvXC13YWxrXC1hbG9uZTsKK+S+giA+IHRvXC1jb21taXNzaW9uOwor5LmoID4gdGhlXC1iZWdpbm5pbmc7CivktpogPiBkZWNheWVkXC10b290aDsKK+S2iCA+IGFcLWtpbmRcLW9mXC1yYXQ7CivktoMgPiBhXC1raW5kXC1vZlwtcmF0Owor5LW/ID4gYVwtc2lsZW50XC1kcnVtOwor5LWBID4gZGVjYXllZFwtZG91Z2g7CivktLAgPiBhXC1mYW1pbHlcLW5hbWU7CivksrogPiBiaXJkc1wtc2luZ2luZzsKK+SyhSA+IHRoZVwtZ2xvYmVmaXNoOwor5LG4ID4gYVwtZmFtaWx5XC1uYW1lOwor5LGmID4gdGhlXC1nbG9iZWZpc2g7CivksaEgPiB0aGVcLWdsb2JlZmlzaDsKK+SwvSA+IHRoZVwtZ2xvYmVmaXNoOwor5LC7ID4gdG9cLWNhdGNoXC1maXNoOwor5LCxID4gbmFtZVwtb2ZcLWFcLWdvZDsKK+SvhSA+IGFcLXN3aWZ0XC1ob3JzZTsKK+SvgCA+IGFcLXN3aWZ0XC1ob3JzZTsKK+SuiCA+IHRvXC1nb1wtc3dpZnRseTsKK+StvyA+IGFcLXN3aWZ0XC1ob3JzZTsKK+SttSA+IGFcLXN3aWZ0XC1ob3JzZTsKK+SsnyA+IHNvdW5kXC1vZlwtd2luZDsKK+SrvyA+IGFcLWNvb2xcLWJyZWV6ZTsKK+SrtCA+IHdlYWtcLWFuZFwtZHVsbDsKK+SrgSA+IHRoZVwtZmlyc3RcLXNvbjsKK+SqqyA+IGFuY2llbnRcLW11c2ljOwor5KqnID4gYW5jaWVudFwtbXVzaWM7CivkqpIgPiBsZWF0aGVyXC1wYW50czsKK+SpviA+IGhlcmJcLW1lZGljaW5lOwor5KmkID4gdG9cLWxlYWRcLWFuXC1veDsKK+SpoyA+IHNob2VcLWN1c2hpb25zOwor5KmeID4gYVwtc2FkZGxlXC1mbGFwOwor5KiOID4gZGVlcFwtYW5kXC1kYXJrOwor5KecID4gYW5cLWVtYmFua21lbnQ7Civkp5YgPiBhXC1zbWFsbFwtbW91bmQ7CivkprQgPiBvcGVuXC10aGVcLWRvb3I7CivkprMgPiBiZXR3ZWVuXC1zdGVwczsKK+SmsSA+IG9wZW5cLXRoZVwtZG9vcjsKK+SmoyA+IG9wZW5cLXRoZVwtZG9vcjsKK+SmoSA+IGFcLWRvb3JcLWtlZXBlcjsKK+SlqSA+IGhvb2tzXC10b1wtaGFuZzsKK+SlmiA+IHRoZVwtYmVnaW5uaW5nOwor5KS1ID4gYVwtdGlueVwtbmVlZGxlOwor5KSUID4gZHJlZ3NcLW9mXC13aW5lOwor5KSOID4gc295YmVhblwtc2F1Y2U7CivkpIMgPiBkcnVua2VuXC1zb3VuZDsKK+SjsCA+IHRvXC1wb29sXC1tb25leTsKK+SipyA+IHRvXC1nb1wtZm9yd2FyZDsKK+SimiA+IGFcLW5hcnJvd1wtcGF0aDsKK+SigyA+IHRvXC1hZG1pbmlzdGVyOwor5KGlID4gYVwtbW92aW5nXC1jYXJ0Owor5KGGID4gYVwtbW92aW5nXC1jYXJ0Owor5J+YID4gdG9cLXN0cmFpZ2h0ZW47Civkn4ogPiBzaG9ydFwtc3RyaWRlczsKK+SegSA+IGNvcnJlc3BvbmRpbmc7CivknbYgPiB0b1wtbGV2eVwtdGF4ZXM7CivknawgPiBhXC13ZWFsdGh5XC1tYW47CivknJUgPiB0b1wtZXhhZ2dlcmF0ZTsKK+SbviA+IGZhbWlsaWFyXC13aXRoOwor5JuQID4gYW5cLWV4cHJlc3Npb247CivkmpUgPiB0b1wtc2VhcmNoXC1vdXQ7CivkmbkgPiB0b1wtdm9taXRcLW1pbGs7CivkmaUgPiBzaGlueVwtZHJlc3NlczsKK+SZoiA+IHNob3J0XC10XC1zaGlydDsKK+SZoCA+IHNob3J0XC1jbG90aGVzOwor5JmfID4gaGVhdnlcLWNsb3RoZXM7CivkmZ4gPiB3b29sZW5cLXN0cmluZzsKK+SZhSA+IHRoZVwtd2Fpc3RsaW5lOwor5JeXID4gdGhlXC1taWxsaXBlZGU7Civkl4sgPiBhXC1tYXJpbmVcLWNyYWI7Civkl4MgPiB0aGVcLW1pbGxpcGVkZTsKK+SWqSA+IGFcLWtpbmRcLW9mXC1iZWU7CivklpEgPiBhXC13aGl0ZVwtdGlnZXI7CivklocgPiBmcmFncmFudFwtaGVyYjsKK+SVpSA+IGhlcmJcLW1lZGljaW5lOwor5JWWID4gZnJhZ3JhbnRcLWhlcmI7CivklJ4gPiB0aGVcLWJlZ2lubmluZzsKK+SUnCA+IGhlcmJcLW1lZGljaW5lOwor5JSaID4gaGVyYlwtbWVkaWNpbmU7CivklJYgPiB3YXRlclwtY2FsdHJvcDsKK+SUkyA+IGhlcmJcLW1lZGljaW5lOwor5JKlID4gY29ycmVzcG9uZGluZzsKK+SSlyA+IGZyYWdyYW50XC1oZXJiOwor5JKOID4gd2l0aG91dFwtY29sb3I7Civkko0gPiB3aXRob3V0XC1jb2xvcjsKK+SRsiA+IHRvXC1yb3dcLWFcLWJvYXQ7CivkkaUgPiBhXC1tb3ZpbmdcLWJvYXQ7CivkkLIgPiBoYWxmXC1yYXdcLW1lYXQ7CivkkJkgPiB0aGVcLWRpYXBocmFnbTsKK+SPmCA+IGFcLWJpZ1wtYWJkb21lbjsKK+SPhCA+IG5vdFwtdG9cLWxpc3RlbjsKK+SNvSA+IGFcLWZpZXJjZVwtZ29hdDsKK+SNvCA+IHNhbHRlZFwtbXV0dG9uOwor5I2qID4gY2FzdHJhdGVkXC1yYW07CivkjaQgPiB0b1wtc3RyYWluXC1vdXQ7CivkjKMgPiB0b1wtYWNjdW11bGF0ZTsKK+SMmSA+IGhhbmtcLW9mXC1yb3BlczsKK+SMhSA+IGFcLXRoaWNrXC1yb3BlczsKK+SLpiA+IHJhdmVsbGVkXC1zaWxrOwor5IudID4gYVwtdGhyb2F0XC1iYW5kOwor5Iq9ID4gYVwtZmluZVwtdGhyZWFkOwor5IqhID4gc3RlYW1lZFwtYnJlYWQ7CivkipQgPiBwb2xpc2hlZFwtcmljZTsKK+SKhCA+IHBvbGlzaGVkXC1yaWNlOwor5ImwID4gYmFtYm9vXC1zaG9vdHM7CivkiakgPiBhXC1iYW1ib29cLXdhcmU7CivkiaggPiBiYW1ib29cLWpvaW50czsKK+SIviA+IG1vdmVcLWFcLWxpdHRsZTsKK+SIsyA+IGFcLXdpbmRvd1wtbGVhZjsKK+SHiyA+IG5hbWVcLW9mXC1hXC1nb2Q7Civkhp4gPiBkZWVwXC1hbmRcLWRhcms7CivkhpogPiB0b1wtZ29cLXRocm91Z2g7CivkhpcgPiBkZWVwXC1hbmRcLWRhcms7CivkhZsgPiBodXNrc1wtb2ZcLXJpY2U7CivkhJQgPiBhXC1mYW1pbHlcLW5hbWU7CivkhIcgPiBhXC1mYW1pbHlcLW5hbWU7Civkg7sgPiBhblwtZW1iYW5rbWVudDsKK+SDsyA+IGZhbGxpbmdcLXN0b25lOwor5IK2ID4gdGhlXC1jcnVzdGFjZWE7CivkgpcgPiB0b1wtYmVcLWNhcmVmdWw7Civkgo4gPiBhXC1zaG9ydFwtc3BlYXI7CivkgoEgPiBhblwtYW5ncnlcLWxvb2s7CivkgZkgPiBlbG9xdWVudFwtZXllczsKK+SAriA+IHNpZ2h0XC1ibHVycmVkOwor5ICtID4gd2l0aFwtYmlnXC1leWVzOwor5ICnID4gc2lnaHRcLWJsdXJyZWQ7CivkgJ8gPiBzaWdodFwtYmx1cnJlZDsKK+SAliA+IHRvXC1sb29rXC11cFwtdG87CivkgJUgPiBhbmdyeVwtZ2xhbmNlczsKK+O/rCA+IG5hc2FsXC1kaXNlYXNlOwor47+cID4gc2hyaXZlbGxlZFwtdXA7Civjvr0gPiBzd2VsbGluZ1wtZmVldDsKK+O9siA+IGdyaXBpbmdcLWNvbGljOwor472xID4gZ3JpcGluZ1wtY29saWM7CivjvYcgPiB1bmJ1cm50XC10aWxlczsKK+O8tSA+IGFcLXNtYWxsXC1iYXNpbjsKK+O8nyA+IGFcLXRpbGVkXC1ob3VzZTsKK+O8jiA+IGFcLXNtYWxsXC1tZWxvbjsKK+O7viA+IGphZGVcLWFydGljbGVzOwor47qpID4gamFkZVwtYXJ0aWNsZXM7CivjuoggPiB0b1wtZ29cLWh1bnRpbmc7CivjubkgPiBhXC1raW5kXC1vZlwtZG9nOwor47m1ID4gYVwtaHVudGluZ1wtZG9nOwor47mzID4gYVwta2luZFwtb2ZcLWFwZTsKK+O5oyA+IGFcLWtpbmRcLW9mXC1kb2c7CivjuIQgPiBhXC1yYWdpbmdcLWZpcmU7Civjt74gPiBibGF6ZVwtb2ZcLWZpcmU7Civjt7ggPiBibGF6ZVwtb2ZcLWZpcmU7Civjt5YgPiB0b1wtc2hpbmVcLXVwb247Civjt5UgPiBoZWFyaW5nXC1zb3VuZDsKK+O3kiA+IHRvXC1jb29rXC1tZWFsczsKK+O2mCA+IGZ1bGxcLW9mXC13YXRlcjsKK+O1syA+IGNyeXN0YWxcLWNsZWFyOwor47WxID4gZmxvd2luZ1wtd2F0ZXI7CivjtaAgPiB0b1wtZ3VzaFwtZm9ydGg7CivjtL0gPiB3YXRlclwtY3VycmVudDsKK+O0tSA+IHdhdGVyXC1jdXJyZW50Owor47SvID4gd2F0ZXJcLWN1cnJlbnQ7CivjtK4gPiB3YXRlclwtY3VycmVudDsKK+O0qyA+IGdyZWF0XC1mbG93aW5nOwor47SoID4gd2F0ZXJcLWN1cnJlbnQ7CivjtKYgPiB0b1wtd2FzaFwtaGFuZHM7CivjtKUgPiBncmVhdFwtYmlsbG93czsKK+O0kiA+IHdhdGVyXC1jdXJyZW50Owor47SQID4gZ3JlYXRcLWN1cnJlbnQ7CivjtIIgPiBncmVhdFwtYmlsbG93czsKK+OzqSA+IGdyZWF0XC1iaWxsb3dzOwor47KbID4gaGFpcnlcLWFuaW1hbHM7CivjsLsgPiBhc3Nlc1wtYnJheWluZzsKK+OwsyA+IGFzc2VzXC1icmF5aW5nOwor47CPID4gYVwtYmFtYm9vXC1wb2xlOwor47CMID4gdG9cLW1vbm9wb2xpemU7Civjr70gPiB0aGVcLWFyZWNhXC1udXQ7Civjrb8gPiBvYmxpcXVlXC1hbmdsZTsKK+OtkyA+IGFcLXBpbGxhclwtYXJjaDsKK+OsrCA+IGFcLWZhbWlseVwtbmFtZTsKK+OspSA+IHRvXC1zdW5cLXRvXC1haXI7CivjrIQgPiB3YXJtXC1hbmRcLWRhbXA7Civjq58gPiBkYXlcLWFmdGVyXC1kYXk7Civjq5ogPiBlYXJseVwtbW9ybmluZzsKK+OppSA+IGRlbGljYXRlXC1oYW5kOwor76irID4gcmFpc2VcLWFuaW1hbHM7CivjqJ4gPiB0b1wtZmVlbFwtYWJvdXQ7CivvqJggPiBzb2NpYWxcLWN1c3RvbTsKK++okiA+IGNsZWFyXC13ZWF0aGVyOwor46e8ID4gdG9cLWRpc3RyaWJ1dGU7Civjp7cgPiB0b1wtd2lwZVwtdGVhcnM7Civvp5ogPiBjaGVzdG51dFwtdHJlZTsKK+OnmCA+IHRvXC1hY2N1bXVsYXRlOwor76a2ID4gc29jaWFsXC1jdXN0b207CivjpqsgPiBsYXhcLWFuZFwtY3J1ZGU7CivvppIgPiBmbG93aW5nXC13YXRlcjsKK+OmjCA+IGtlZW5cLW9yXC1zaGFycDsKK+OmhiA+IHRvXC1leGFnZ2VyYXRlOwor46W8ID4gdG9cLWJlXC1uZWFyXC10bzsKK++ltiA+IGFwcHJveGltYXRlbHk7CivvpbEgPiBlYXJseVwtbW9ybmluZzsKK+OlpSA+IGFic2VudFwtbWluZGVkOwor46SwID4gdG9cLWJlXC1hc2hhbWVkOwor76ShID4gbW91bnRhaW5cLW1pc3Q7CivvpKAgPiBmYWJ1bG91c1wtYmlyZDsKK+OjvyA+IHBhaW5mdWxseVwtc2FkOwor46OxID4gY29tbW9uXC1wZW9wbGU7Civjo6QgPiB0b1wtdHJlYWRcLXVwb247Civjo5QgPiB0b1wtd2Fsa1wtYWxvbmU7CivjorsgPiB0b1wtZHJhd1wtYVwtYm93Owor46KWID4gYVwtc3RvcmVcLWhvdXNlOwor46G3ID4gYVwtZmFtaWx5XC1uYW1lOwor46C6ID4gYVwtZmluZVwtdGhyZWFkOwor46C0ID4gYVwtcGlsbG93XC1jYXNlOwor46CbID4gbmFtZVwtYVwtY291bnR5Owor45+2ID4gbW91bnRhaW5cLXBlYWs7Civjn7IgPiBtb3VudGFpblwtcGVhazsKK+OfrSA+IHRoZVwtbWluXC1yaXZlcjsKK+OfqSA+IHRoZVwtbWluXC1yaXZlcjsKK+OetiA+IHRoZVwtbWluXC1yaXZlcjsKK+OerCA+IGNsb3NlXC1vclwtbmVhcjsKK+OeiyA+IHNvZnRcLWFuZFwtbWVlazsKK+OduyA+IGJhcmVseVwtZW5vdWdoOwor452mID4gdG9cLWFjY3VtdWxhdGU7CivjnZMgPiBjb3JyZXNwb25kaW5nOwor452DID4gdG9cLWJlYXJcLWFcLXNvbjsKK+ObkiA+IGNhblwtbm90XC1zcGVhazsKK+ObjiA+IGFuXC11Z2x5XC13b21hbjsKK+OatCA+IGFcLXByZXR0eVwtZ2lybDsKK+OYmyA+IGFcLWRlZXBcLXZhbGxleTsKK+OYkyA+IHByb2xpeFwtc3BlZWNoOwor45iJID4gdG9cLW1ha2VcLXNvdW5kOwor45e0ID4gZG9nc1wtZmlnaHRpbmc7CivjlbAgPiBzb3VuZFwtYW5ncmlseTsKK+OVqiA+IGJpcmRzJydcLWNoaXJwczsKK+OVmSA+IGFcLXdpbHlcLXJhYmJpdDsKK+OViSA+IHRvXC1kaWdcLWFcLWhvbGU7CivjlKUgPiBmdWxsXC1vZlwtYW5nZXI7Civjk7QgPiB0b1wtY3V0XC1pblwtdHdvOwor45OWID4gYml0dGVybHlcLWNvbGQ7Civjk48gPiBiaXR0ZXJseVwtY29sZDsKK+OTjCA+IGJpdHRlcmx5XC1jb2xkOwor45KHID4gdG9cLXNraXBcLWFib3V0Owor45G8ID4gbmFtZVwtb2ZcLWFcLWdvZDsKK+ORpSA+IGRpc3Jlc3BlY3RmdWw7CivjkLAgPiB0b1wtYmVsaWV2ZVwtaW47CivnnrMgPiBwdXBpbFwtb2ZcLWV5ZTsKK+S4hyA+IHRlblwtdGhvdXNhbmQ7CivluIMgPiBjb3R0b25cLWNsb3RoOwor6YCaID4gcGFzc1wtdGhyb3VnaDsKK+aPkCA+IGhvbGRcLWluXC1oYW5kOwor5LqsID4gY2FwaXRhbFwtY2l0eTsKK+eUmiA+IGdyZWF0XC1leHRlbnQ7CivlkaggPiB6aG91XC1keW5hc3R5Owor5bC7ID4gZW5kXC1vZlwtc3BpbmU7CivlrrQgPiB0b1wtZW50ZXJ0YWluOwor5a6wID4gdG9cLXNsYXVnaHRlcjsKK+eKryA+IGNvbW1pdFwtY3JpbWU7CivlqaIgPiBzZXJ2YW50XC1naXJsOwor5Y+CID4gdGFrZVwtcGFydFwtaW47CivmjowgPiBwYWxtXC1vZlwtaGFuZDsKK+WnvyA+IG9uZScnc1wtbWFubmVyOwor5aeJID4gZWxkZXJcLXNpc3RlcjsKK+aWlyA+IGNoaW5lc2VcLXBlY2s7CivlkbwgPiBicmVhdGhlXC1zaWdoOwor5aeQID4gZWxkZXJcLXNpc3RlcjsKK+ihnSA+IHJ1c2hcLWFnYWluc3Q7Civln7cgPiBob2xkXC1pblwtaGFuZDsKK+ieuiA+IHNwaXJhbFwtc2hlbGw7CivlnYogPiBuZWlnaGJvcmhvb2Q7CivlsLwgPiBidWRkaGlzdFwtbnVuOwor6by+ID4gc25vcmVcLWxvdWRseTsKK+WPtiA+IHRvXC1oYXJtb25pemU7Civph44gPiBvcGVuXC1jb3VudHJ5Owor56e7ID4gY2hhbmdlXC1wbGFjZTsKK+WUkCA+IHRhbmdcLWR5bmFzdHk7Civnp4AgPiBlYXJcLW9mXC1ncmFpbjsKK+aJpyA+IGhvbGRcLWluXC1oYW5kOwor6JKyID4gdHlwZVwtb2ZcLXJ1c2g7CivluoYgPiBjb25ncmF0dWxhdGU7Civokp8gPiBiZXRlbFwtcGVwcGVyOwor5rGXID4gcGVyc3BpcmF0aW9uOwor6JCsID4gdGVuXC10aG91c2FuZDsKK+aLnCA+IGRvXC1vYmVpc2FuY2U7Civlj4MgPiB0YWtlXC1wYXJ0XC1pbjsKK+iZkSA+IGJlXC1jb25jZXJuZWQ7CivlrosgPiBzb25nXC1keW5hc3R5Owor6IOGID4gZ2FsbFwtYmxhZGRlcjsKK+WJliA+IHNwbGl0XC1pblwtdHdvOwor5YekID4gbWFsZVwtcGhvZW5peDsKK+ivoiA+IGlucXVpcmVcLWludG87Civohr0gPiBnYWxsXC1ibGFkZGVyOwor562RID4gYW5jaWVudFwtbHV0ZTsKK+WBtiA+IGFjY2lkZW50YWxseTsKK+mjvSA+IGVhdFwtaGVhcnRpbHk7Civog44gPiB1bmJvcm5cLWNoaWxkOwor5oKfID4gdG9cLWFwcHJlaGVuZDsKK+iChSA+IHBheVwtcmVzcGVjdHM7CivogoMgPiBwYXlcLXJlc3BlY3RzOwor5aeKID4gZWxkZXJcLXNpc3RlcjsKK+S+mCA+IGRpc2FwcG9pbnRlZDsKK+elrSA+IHNhY3JpZmljZVwtdG87CivotLogPiBjb25ncmF0dWxhdGU7CivppbEgPiBlYXRcLWhlYXJ0aWx5Owor5a6qID4gY29uc3RpdHV0aW9uOwor56KRID4gc3RvbmVcLXRhYmxldDsKK+aYjCA+IGxpZ2h0XC1vZlwtc3VuOwor5pC6ID4gbGVhZFwtYnlcLWhhbmQ7CivljqYgPiBiaWdcLWJ1aWxkaW5nOwor5LuGID4gZmFsbFwtZm9yd2FyZDsKK+WmpSA+IHNhdGlzZmFjdG9yeTsKK+adrSA+IGNyb3NzXC1zdHJlYW07CivotaAgPiBnaXZlXC1wcmVzZW50Owor6IWUID4gY2hlc3RcLWNhdml0eTsKK+WtnSA+IGZpbGlhbFwtcGlldHk7CivnrLkgPiBzbWFsbFwtYmFtYm9vOwor56ybID4gYmFtYm9vXC1mbHV0ZTsKK+atpyA+IGZvcmtcLW9mXC1yb2FkOwor5oudID4gZG9cLW9iZWlzYW5jZTsKK+mJmyA+IGxlYWRcLXBsdW1idW07CivnqZcgPiBlYXJcLW9mXC1ncmFpbjsKK+epgiA+IGVhclwtb2ZcLWdyYWluOwor5ZaDID4ga2VlcFwtdGFsa2luZzsKK+iIsSA+IGhvbGRcLW9mXC1zaGlwOwor6YacID4gdWdseVwtbG9va2luZzsKK+aFriA+IGJlXC1jb25jZXJuZWQ7Civoo5ggPiBmdXJcLWdhcm1lbnRzOwor5qC9ID4gdG9cLWN1bHRpdmF0ZTsKK+ivpyA+IGJlXC1zdXJwcmlzZWQ7CivpmI4gPiB2aWxsYWdlXC1nYXRlOwor5oSjID4gYmVcLWluXC1hXC1kYXplOwor55CqID4gdHlwZVwtb2ZcLWphZGU7CivnrqsgPiBiYW1ib29cLWZsdXRlOwor5ailID4gYmVcLWJlYXV0aWZ1bDsKK+WSqiA+IHNvdW5kXC1vZlwtY2F0Owor5riXID4gc29ha1wtdGhyb3VnaDsKK+iRqyA+IGJvdHRsZVwtZ291cmQ7CivlnaogPiBsZXZlbFwtZ3JvdW5kOwor5Z2eID4gZW50cmVuY2htZW50Owor5oCFID4gZGlzYXBwb2ludGVkOwor5qmhID4gY2hlc3RudXRcLW9hazsKK+e1riA+IHdhc3RlXC1jb3R0b247Civot4QgPiB3YWxrXC1yYXBpZGx5Owor5bG5ID4gdG9cLXJpc2VcLWhpZ2g7Civmg5ggPiBkaXNjb25jZXJ0ZWQ7CivnnLggPiBwdXBpbFwtb2ZcLWV5ZTsKK+aPqSA+IHJ1YlwtYW5kXC13aXBlOwor5qWgID4gbmFtZVwtb2ZcLXRyZWU7CivpupMgPiBmb290XC1vZlwtaGlsbDsKK+eOriA+IHR5cGVcLW9mXC1qYWRlOwor5oG7ID4gZmVlbFwtYW5ndWlzaDsKK+ahhSA+IG1hc3RcLW9mXC1zaGlwOwor6aqLID4gZ2FsbG9wXC1ob3JzZTsKK+mXqyA+IHZpbGxhZ2VcLWdhdGU7CivouZIgPiB0b1wtanVtcFwtb3ZlcjsKK+elgCA+IHRvXC1zYWNyaWZpY2U7CivnsYEgPiBiYW1ib29cLWZsdXRlOwor5a+wID4gZ3JlYXRcLWRvbWFpbjsKK+aWkyA+IG11bHRpY29sb3JlZDsKK+S8qyA+IGxvb2tcLXRvd2FyZHM7Civouo8gPiB0cmFtcGxlXC1kb3duOwor5rK9ID4gYnV5XC1hbmRcLXNlbGw7Civnj6UgPiBlYXJcLW9ybmFtZW50Owor56yGID4gYmFtYm9vXC1mZW5jZTsKK+iZrCA+IHlvdW5nXC1kcmFnb247Civmg6wgPiBiZVwtc2F0aXNmaWVkOwor57yoID4gYVwtY2hpblwtc3RyYXA7Civlir4gPiBleGFtaW5lXC1pbnRvOwor5ZikID4gc2Vla1wtZnJpZW5kczsKK+ivgyA+IHNjb2xkXC1sb3VkbHk7Civlhr0gPiBjb2xkXC1hbmRcLXJhdzsKK+mjqCA+IGhvc3RcLWJhbnF1ZXQ7CivmgI8gPiBkaXNjb250ZW50ZWQ7CivlhqIgPiBidXJpYWxcLW1vdW5kOwor5amAID4gYmVcLWJlYXV0aWZ1bDsKK+WXsyA+IGludGVyamVjdGlvbjsKK+eioyA+IHN0b25lXC10YWJsZXQ7CivlrpUgPiBzdG9uZVwtcXVhcnJ5Owor6ICGID4gbWFuXC1vZlwtc2l4dHk7CivpnZMgPiBtYWtlXC11cFwtZmFjZTsKK+ibsCA+IHRvXC1oaWJlcm5hdGU7CivmjrwgPiB0aHJvd1wtZ3JvdW5kOwor5ZukID4gZ3JhaW5cLWJhc2tldDsKK+etsSA+IGR3YXJmXC1iYW1ib287CivmqJ8gPiBjYW1waG9yXC10cmVlOwor6bKlID4gcmVldmVzJydcLXNoYWQ7CivpgLUgPiB0aG9yb3VnaGZhcmU7CivlsrcgPiBtaW5cLW1vdW50YWluOwor5p6wID4gc21vb3RoXC1ib2FyZDsKK+WxkCA+IHdvb2Rlblwtc2hvZXM7Civog5sgPiB0aGVcLXNob3VsZGVyOwor6bmeID4gc3BhcnJvd1wtaGF3azsKK+eKhCA+IGFuaW1hbFwtaG9ybnM7Civot7kgPiB3YW5kZXJcLWFib3V0Owor5pixID4gYnJpZ2h0XC1saWdodDsKK+agviA+IG5hbWVcLW9mXC10cmVlOwor5rmEID4gd2F0ZXInJ3NcLWVkZ2U7Civoj4UgPiBjb2Fyc2VcLWdyYXNzOwor57u7ID4gYWZmZWN0aW9uYXRlOwor56+BID4gYmFtYm9vXC1ncm92ZTsKK+i1hSA+IHByZXBhcmVkXC1mb3I7CivmpIEgPiBvdXRlclwtY29mZmluOwor57qwID4gc3BvaWxlZFwtc2lsazsKK+m8iyA+IGxhcmdlXC10dXJ0bGU7CivphpAgPiBwdXJlc3RcLWNyZWFtOwor6b6JID4gdW5ldmVuXC10ZWV0aDsKK+iLuyA+IGtpbmRcLW9mXC1oZXJiOwor6ayjID4gaG9yc2UnJ3NcLW1hbmU7CivnvJcgPiBmaXNoaW5nXC1saW5lOwor5rmrID4gYVwtc21hbGxcLXBvbmQ7Civku58gPiBvbmVcLXRob3VzYW5kOwor6Jq2ID4ga2luZFwtb2ZcLWNsYW07Civnk6AgPiBib3R0bGVcLWdvdXJkOwor6JuEID4gbW9sZVwtY3JpY2tldDsKK+avgiA+IGh1Ylwtb2ZcLXdoZWVsOwor55WaID4gc3RyYXdcLWJhc2tldDsKK+a0hCA+IGFcLWJhY2tcLXdhdGVyOwor6aOnID4gZXZlbmluZ1wtbWVhbDsKK+mGqiA+IHVuY2xlYXJcLXdpbmU7Civpqp0gPiBmYW1vdXNcLWhvcnNlOwor6aqSID4gbW90aGVyXC1ob3JzZTsKK+aHlCA+IGJlXC1hZnJhaWRcLW9mOwor5YqTID4gY3V0XC1vZmZcLW5vc2U7CivouJQgPiB0b1wtZ2V0XC1haGVhZDsKK+mioSA+IHRoZVwtZm9yZWhlYWQ7CivmvbIgPiBkcml2aW5nXC1yYWluOwor57yvID4gc2lsa1wtZmFicmljczsKK+aDnSA+IGRpc2FwcG9pbnRlZDsKK+eUkyA+IGdsYXplZFwtdGlsZXM7CivojawgPiBhXC1wbGFudFwtbmFtZTsKK+afkiA+IG51bWJlclwtc2V2ZW47CivnmLMgPiB0b1wtYmVcLWhlYWxlZDsKK+iwhyA+IHNwZWFrXC1pbGxcLW9mOwor5LmHID4gdG9cLWRlcGVuZFwtb247CivpvqQgPiB0b1wtaGFybW9uaXplOwor6b2sID4gdW5ldmVuXC10ZWV0aDsKK+m9hiA+IHN0dWZmZWRcLW5vemU7CivpvYEgPiBzbm9yZVwtbG91ZGx5Owor6by9ID4gY2xvZ2dlZFwtbm9zZTsKK+m7vyA+IGxhcmdlXC10dXJ0bGU7CivpupUgPiBtdW50amFjXC1kZWVyOwor6beCID4gc3BhcnJvd1wtaGF3azsKK+mzsyA+IG1hbGVcLXBob2VuaXg7Civps68gPiBtYWxlXC1waG9lbml4Owor6bOQID4gdGhlXC1uYXV0aWx1czsKK+mxkSA+IHRoZVwtc3R1cmdlb247CivpsYIgPiBuYW1lXC1vZlwtZmlzaDsKK+mwqSA+IHRoZVwtbmF1dGlsdXM7CivpsKMgPiByZWV2ZXMnJ1wtc2hhZDsKK+mwgyA+IG5hbWVcLW9mXC1maXNoOwor6bCBID4gbmFtZVwtb2ZcLWZpc2g7CivpraYgPiBzaGFya1wtZmFtaWx5Owor6a2iID4gbmFtZVwtb2ZcLWZpc2g7CivprZ8gPiB0aGVcLW5hdXRpbHVzOwor6ay1ID4gYmlnXC1pcm9uXC1wb3Q7CivprJAgPiBob3JzZScnc1wtbWFuZTsKK+mshSA+IHVua2VtcHRcLWhhaXI7CivpqYggPiBibGFja1wtaG9yc2VzOwor6aiuID4gZmFtb3VzXC1ob3JzZTsKK+mojSA+IG1vdGhlclwtaG9yc2U7CivpqIYgPiBkaXZpbmVcLWhvcnNlOwor6aiBID4gZ2FsbG9wXC1ob3JzZTsKK+mnnCA+IHN0cm9uZ1wtaG9yc2U7Civpp5cgPiBjaGF0dGVyXC1tYXJrOwor6aWXID4gaG9zdFwtYmFucXVldDsKK+mkgCA+IHRhaW50ZWRcLWZvb2Q7Civpo7EgPiBldmVuaW5nXC1tZWFsOwor6aKtID4gc3dheVwtaW5cLXdpbmQ7CivpoZkgPiB0aGVcLWZvcmVoZWFkOwor6aCfID4gdGhlXC1mb3JlaGVhZDsKK+mepiA+IGxlYXRoZXJcLXN0YXA7CivpnZogPiBtYWtlXC11cFwtZmFjZTsKK+mckSA+IGJlXC1tb2lzdGVuZWQ7CivpmpYgPiBlbnRyZW5jaG1lbnQ7CivpmYEgPiBhXC1zdGVlcFwtYmFuazsKK+mXkSA+IHRoZVwtZG9vcnNpbGw7CivplrsgPiB2aWxsYWdlXC1nYXRlOwor6ZaGID4gdmlsbGFnZVwtZ2F0ZTsKK+mVqCA+IHByYXNlb2R5bWl1bTsKK+mQoCA+IHByYXNlb2R5bWl1bTsKK+mPtyA+IHByb3RhY3Rpbml1bTsKK+mNiiA+IHNtZWx0XC1tZXRhbHM7CivpjKwgPiBzbWVsdFwtbWV0YWxzOwor6YyIID4gdG9cLWJlbmRcLWlyb247Civph6ogPiBhblwtYWxtc1wtYm93bDsKK+mGvSA+IGtpbmRcLW9mXC13aW5lOwor6YOZID4gdG9cLWJlXC1leGlsZWQ7CivpgrIgPiBnb29kXC1sb29raW5nOwor6L+jID4gdG9cLWxlYXBcLW92ZXI7CivovYIgPiBodWJcLW9mXC13aGVlbDsKK+i6qiA+IHRyYW1wbGVcLWRvd247CivoupogPiB3YW5kZXJcLWFib3V0Owor6LqZID4gdHJhbXBsZVwtZG93bjsKK+i5oyA+IHRvXC1qdW1wXC1vdmVyOwor6LmMID4gd2Fsa1wtcmFwaWRseTsKK+i4vCA+IHRvXC1mYWxsXC1mbGF0Owor6LikID4gYnV0dFwtYWdhaW5zdDsKK+i0iCA+IGdpdmVcLXByZXNlbnQ7Civos4kgPiB0b1wtZ2l2ZVwtYWxtczsKK+izhSA+IHByZXBhcmVkXC1mb3I7Civos4AgPiBjb25ncmF0dWxhdGU7CivosoYgPiBzbWFsbFwtYmFkZ2VyOwor6LG2ID4gY2FzdHJhdGVcLXBpZzsKK+iqviA+IHNwZWFrXC1nZW50bHk7CivoqrYgPiBzcGVha1wtaWxsXC1vZjsKK+ipoiA+IGlucXVpcmVcLWludG87CivoqLYgPiBzY29sZFwtbG91ZGx5Owor6KWbID4gZmluZVwtY2xvdGhlczsKK+ilhiA+IGhvb2RcLW9yXC1jb3dsOwor6J+EID4gdG9cLWhpYmVybmF0ZTsKK+iZryA+IHlvdW5nXC1kcmFnb247CivokZwgPiBzbWlsYXhcLWNoaW5hOwor6JCpID4gc2NhbmRlbnRcLWhvcDsKK+iQmCA+IG5hcGh0aGFubGVuZTsKK+iPnSA+IHNtaWxheFwtY2hpbmE7CivojqYgPiBqdW5nbGVcLWdyYXNzOwor6IqnID4gY2hlc3RudXRcLW9hazsKK+iKmiA+IGdyZWVuXC1zcHJvdXQ7CivoipEgPiB3aGl0ZVwtbWlsbGV0Owor6ImZID4gaG9sZFwtb2ZcLXNoaXA7CivohpcgPiB1Z2x5XC1hbmRcLWZhdDsKK+iCmSA+IGFcLXNtYWxsXC13b3JtOwor576AID4gZmlzaGluZ1wtdHJhcDsKK+e9tiA+IGZpc2hpbmdcLXRyYXA7CivnupMgPiBhXC1jaGluXC1zdHJhcDsKK+e6gSA+IHNoYWRlXC1vZlwtcmVkOwor57mZID4gdG9cLWludGVycHJldDsKK+e5kiA+IHNpbGtcLWZhYnJpY3M7CivnuJUgPiB0YW5nbGVkXC1oZW1wOwor57ehID4gZmlzaGluZ1wtbGluZTsKK+e2oyA+IGFmZmVjdGlvbmF0ZTsKK+e0lSA+IHNwb2lsZWRcLXNpbGs7CivnspsgPiBwYXlcLXJlc3BlY3RzOwor57GvID4gYmFtYm9vXC1jaGVzdDsKK+exnyA+IGJhbWJvb1wtZmx1dGU7Civnr7QgPiBiYW1ib29cLWZsdXRlOwor56+gID4gZHdhcmZcLWJhbWJvbzsKK+etpCA+IHlvdW5nXC1iYW1ib287CivnrY0gPiBiYW1ib29cLXNob290Owor562FID4gYmFtYm9vXC1icnVzaDsKK+epnyA+IGVhclwtb2ZcLWdyYWluOwor56esID4gYmxhY2tcLW1pbGxldDsKK+elmCA+IHRvXC1jYWxjdWxhdGU7Civno6AgPiBzYWxcLWFtbW9uaWFjOwor56K2ID4gYVwtZmxvb2RcLWdhdGU7CivnoJ8gPiBzdG9uZVwtdGFibGV0Owor55+8ID4gc3RvbmVcLWJyaWRnZTsKK+edkiA+IHRvXC1nbGFuY2VcLWF0Owor55qmID4gYnJpZ2h0XC13aGl0ZTsKK+eYuiA+IGFuYWxcLWZpc3R1bGE7Civnlr8gPiBwcmlja2x5XC1oZWF0Owor55GLID4gdHlwZVwtb2ZcLWphZGU7Civnj7kgPiB0eXBlXC1vZlwtamFkZTsKK+eOjSA+IGlsbFwtdGVtcGVyZWQ7Civni4YgPiBwZWtpbmVzZVwtZG9nOwor54mCID4gZmVtYWxlXC1zaGVlcDsKK+eHtyA+IGRpc2FwcG9pbnRlZDsKK+eHoyA+IGRpc2FwcG9pbnRlZDsKK+a7siA+IHNvYWtcLXRocm91Z2g7Civmu4ogPiBhXC1yaXZlclwtbmFtZTsKK+azliA+IHN0aWxsXC13YXRlcnM7Civmr4ggPiBmZXJ0aWxlXC1lZ2dzOwor5q6cID4gaGFsZlwtc2l0dGluZzsKK+asvyA+IGRpc2NvbnRlbnRlZDsKK+askiA+IG5hbWVcLW9mXC10cmVlOwor5qmSID4gd29vZFwtc3RyZWFrczsKK+anuyA+IHplbGtvdmFcLXRyZWU7Civmp6ggPiBvdXRlclwtY29mZmluOwor5qeUID4gd2F0ZXJcLXB1bGxleTsKK+algCA+IG5hbWVcLW9mXC10cmVlOwor5p6fID4gd29vZFwtc3RyZWFrczsKK+aWlSA+IG11bHRpY29sb3JlZDsKK+aUnCA+IGxlYWRcLWJ5XC1oYW5kOwor5pGcID4gdGhyb3dcLWdyb3VuZDsKK+aRmSA+IHRvXC10cmFuc3BvcnQ7Civmj5EgPiB0b1wtZmFicmljYXRlOwor5oiJID4gYVwtYmF0dGxlXC1heGU7Civmh40gPiBiZVwtYWZyYWlkXC1vZjsKK+aGsiA+IGNvbnN0aXR1dGlvbjsKK+aFtiA+IGNvbmdyYXR1bGF0ZTsKK+aEnCA+IGJlXC1zYXRpc2ZpZWQ7Civmg7sgPiBmZWVsXC1hbmd1aXNoOwor5oK1ID4gZGlzYXBwb2ludGVkOwor5bu5ID4gdG9cLXBlcnNlY3V0ZTsKK+W7iCA+IGJpZ1wtYnVpbGRpbmc7CivluKggPiBoYW5ka2VyY2hpZWY7CivltqIgPiBoaWdoXC1vclwtdGFsbDsKK+WxpyA+IHdvb2Rlblwtc2hvZXM7CivlsZggPiB0aGVcLXlvdW5nZXN0Owor5auyID4gZ3JhbmRcLW1vdGhlcjsKK+WjiCA+IGRpc2FwcG9pbnRlZDsKK+WhoiA+IGVudHJlbmNobWVudDsKK+WfnCA+IG9wZW5cLWNvdW50cnk7CivlmrYgPiBzZWVrXC1mcmllbmRzOwor5ZmvID4gaW50ZXJqZWN0aW9uOwor5ZatID4gY29uZG9sZVwtd2l0aDsKK+WSpSA+IHNvdW5kXC1vZlwtY2F0Owor5ZG5ID4gdG9cLWVhdFwtZ3Jhc3M7Civlj4QgPiB0YWtlXC1wYXJ0XC1pbjsKK+WOtyA+IHRoZVwtZm9yZVwtYXJtOwor5Y6kID4gdG9cLWNhbGN1bGF0ZTsKK+WLoyA+IGFjaGlldmVtZW50czsKK+WJtyA+IHRvXC1sZXZlbFwtb2ZmOwor5YmXID4gdG9cLWxldmVsXC1vZmY7CivlhJcgPiBjb21wYXJlXC13aXRoOwor5L2tID4gdW5zdWJtaXNzaXZlOwor5LqwID4gY2FwaXRhbFwtY2l0eTsKK+S4vCA+IGJvd2xcLW9mXC1mb29kOwor5LS8ID4gdG9cLWV4dGlycGF0ZTsKK+S0lSA+IGFcLXdvb2RwZWNrZXI7Civks5YgPiBmbHlpbmdcLWJpcmRzOwor5LKcID4gbG90c1wtb2ZcLWZpc2g7CivksYogPiByb2VcLW9yXC1zcGF3bjsKK+SwuCA+IHRoZVwtbmF1dGlsdXM7Civkr7YgPiBmYWlyXC1vZlwtaGFpcjsKK+SvrCA+IHRvXC1oYW5nXC1kb3duOwor5K+nID4gYVwtc21hbGxcLWhhbGw7Civkrp8gPiBiaWdcLWFuZFwtdGFsbDsKK+SukSA+IGFcLWdyYXlcLWhvcnNlOwor5K2YID4gd2VsbFwtc3RhY2tlZDsKK+StlyA+IHdlbGxcLXN0YWNrZWQ7CivkrZYgPiBhbmltYWxcLWZlZWRzOwor5K2KID4gd2VsbFwtc3RhY2tlZDsKK+StiSA+IG1hc2hlZFwtYmVhbnM7CivkrJwgPiBldmlsXC1zcGlyaXRzOwor5KyaID4gdG9cLW1vdmVcLWZhc3Q7CivkrIsgPiB2aW9sZW50XC13aW5kOwor5KuoID4gdGFsbFwtYW5kXC1iaWc7Civkq5ogPiBzaG9ydFwtaGVhZGVkOwor5KuZID4gdGhlXC1mb3JlaGVhZDsKK+SrlSA+IHNtYWxsXC1oZWFkZWQ7Civkq4cgPiB0aGVcLXdoaXNrZXJzOwor5Kq5ID4gYVwtbGFyZ2VcLWZhY2U7CivkqrAgPiBpbnRlcmplY3Rpb247CivkqqEgPiB0b1wtZmFsbFwtZG93bjsKK+SqiyA+IHNpbGtcLWNvcmRhZ2U7CivkqY8gPiBhXC1zbWFsbFwtZmFjZTsKK+SpiyA+IGFcLWdyZWVuXC1mYWNlOwor5KmKID4gZ29vZFwtbG9va2luZzsKK+SphyA+IGFcLXNtYWxsXC1oZWFkOwor5Ki2ID4gdGh1bmRlcnN0b3JtOwor5KiyID4gYVwtc21hbGxcLWhhcmU7CivkqKogPiBhXC1kdXN0XC1zdG9ybTsKK+SonSA+IGFcLXB1cmVcLXdvbWFuOwor5KiIID4gYVwtc21hbGxcLWJpcmQ7Civkp6wgPiB3YXRlcicnc1wtZWRnZTsKK+SnoiA+IGFcLXJvdWdoXC1yb2FkOwor5KeZID4gYVwtaGlnaFwtbW91bmQ7CivkpYMgPiBhXC1iaWdcLWhhbW1lcjsKK+SkrCA+IGFcLXNtYWxsXC1nb25nOwor5KSmID4gYVwtYmF0dGxlXC1heGU7CivkpKMgPiBhXC1tZXRhbFwtcmluZzsKK+SkiyA+IHllbGxvd1wtZmFjZWQ7Civko78gPiB0b1wtZW50ZXJ0YWluOwor5KO+ID4gY2hlZXNlXC1kcmVnczsKK+SjvCA+IG1peGVkXC1zdGFyY2g7CivkoJQgPiBmYXJcLWFuZFwtZGVlcDsKK+SfvyA+IHRvXC1yZXZlcmVuY2U7Civkn7kgPiB0b1wtaG9wXC1hYm91dDsKK+SflSA+IHRvXC1zdGVwXC11cG9uOwor5J6xID4gdG9cLWZhbGxcLW92ZXI7CivknqcgPiBoYXJkXC10b1wtd2FsazsKK+ScqSA+IHRvXC1lbnRlcnRhaW47CivkmqogPiBjdXJ2ZWRcLWhvcm5zOwor5JiEID4gY2ljYWRhXC1mYW1peTsKK+SYgCA+IGdyYXNzaG9wcGVyczsKK+SXsCA+IHNwaXJhbFwtc2hlbGw7Civkl6cgPiBsaWJlbGx1bGlkYWU7Civklp4gPiBhXC1zZWFcLWluc2VjdDsKK+SVuyA+IHRvXC1hZGhlcmVcLXRvOwor5JW6ID4gZGVuc2VcLWdyb3d0aDsKK+SVnSA+IG1lZGljYWxcLWhlcmI7CivklYsgPiBvZlwtZWxtXC1ncm91cDsKK+STryA+IHdhdGVyXC1wZXBwZXI7Civkkb0gPiBhXC1sYXJnZVwtYm9hdDsKK+SRtSA+IGFcLXNtYWxsXC1ib2F0Owor5JCFID4gdGhlXC1idXR0b2NrczsKK+SQgSA+IHRoZVwtYnV0dG9ja3M7Civkj5cgPiB1bmV4cGVjdGVkbHk7Civkj5AgPiB0aGVcLWJ1dHRvY2tzOwor5I+NID4gYVwtc21hbGxcLXdvcm07Civkj4AgPiBpbmhhcm1vbmlvdXM7CivkjpggPiBiaXJkc1wtZmx5aW5nOwor5I6VID4gZmx5aW5nXC1iaXJkczsKK+SNhCA+IGFuXC1pbmRlbnR1cmU7CivkjLYgPiBcKVwtYmxhY2tcLXNpbGs7CivkjIcgPiBhXC10aGlja1wtcm9wZTsKK+SMhiA+IHNpbGtcLWZhYnJpY3M7CivkioUgPiB0b1wtc29ha1wtcmljZTsKK+SJryA+IGRyaWVkXC1iYW1ib287CivkiZUgPiBhXC1iYW1ib29cLWhhdDsKK+SJlCA+IGJhbWJvb1wtc2xpcHM7CivkiJ8gPiBicm9rZW5cLXNvdW5kOwor5Ie4ID4gYVwtYmFtYm9vXC1tYXQ7Civkh50gPiB0b1wtYnJlYWtcLW9mZjsKK+SHnCA+IHNtYWxsXC1iYW1ib287CivkhqwgPiB0b1wtZmFsbFwtZG93bjsKK+SGoiA+IHRvXC1wZW5ldHJhdGU7Civkhp8gPiBjb3Jlc3BvbmRpbmc7Civkho0gPiBjdXR0ZWRcLWNyb3BzOwor5IWBID4gdG9cLWh1c2tcLXJpY2U7Civkg7IgPiBhXC1ncmVhdFwtcm9jazsKK+SDryA+IHNtYWxsXC1zdG9uZXM7Civkg50gPiBydWdnZWRcLXJvY2tzOwor5IONID4gdG9cLWZhbGxcLWRvd247CivkgpAgPiBzaG9ydFwtc3R1cGlkOwor5IGnID4gdG9cLW9wZW5cLXdpZGU7CivkgaAgPiB0b1wtaGFuZ1wtZG93bjsKK+SAgSA+IGFcLXNtYWxsXC1ib3dsOwor47+9ID4gYVwtc21hbGxcLWJvd2w7Civjv7UgPiBzb2Z0XC1sZWF0aGVyOwor47+yID4gYVwtZmllcmNlXC1kb2c7Civjv6ogPiBza2luXC1kaXNlYXNlOwor47+oID4gc21hbGxcLXN0b25lczsKK+O/iiA+IHZlcnlcLXBhaW5mdWw7CivjvpQgPiBsb25nXC1pbGxuZXNzOwor47yLID4gdGhlXC1jdWN1bWJlcjsKK+O6liA+IGRvZ3NcLWJhcmtpbmc7Civjuo4gPiBmaWVyY2VcLWJlYXN0Owor47m/ID4gYVwtZmllcmNlXC1kb2c7CivjuaogPiBhXC1maWVyY2VcLWRvZzsKK+O4viA+IHRvXC1maWxsZWRcLXVwOwor47itID4gdGhlXC1vcHBvc2l0ZTsKK+O4mCA+IHRlblwtdGhvdXNhbmQ7Civjt7kgPiBpbnRlbnNlXC1oZWF0Owor47aVID4gdG9cLXdhc2hcLXJpY2U7CivjtYogPiBtb3ZpbmdcLWltYWdlOwor47SVID4gdG9cLWJvaWxcLWF3YXk7CivjtJMgPiB0b1wtd2FzaFwtcmljZTsKK+OzniA+IGRlZXBcLWFuZFwtZmFyOwor47ORID4gdG9cLWZsb3dcLW92ZXI7CivjsLcgPiByZXN1cnJlY3Rpb247Civjr6wgPiBhY2hpZXZlbWVudHM7Civjr6AgPiBhXC1jcm9zc1wtYmVhbTsKK+OvnCA+IGRlY2F5ZWRcLXdvb2Q7Civjrq4gPiBhXC13ZWxsXC1zd2VlcDsKK+OurCA+IGFcLWZydWl0XC10cmVlOwor466qID4gYVwtc21hbGxcLWJvYXQ7Civjro8gPiBhXC1mcnVpdFwtdHJlZTsKK+OtqyA+IGFcLWZydWl0XC10cmVlOwor46y1ID4gdGhlXC1zaGluYm9uZTsKK+OrkiA+IGhhbmRzXC1qb2luZWQ7Civjq4MgPiBmbGFnc1wtZmx5aW5nOwor46uBID4gdG9cLWN1dFwtYXBhcnQ7CivjqK0gPiB1bnJlYXNvbmFibGU7Civjp7QgPiB0b1wtcnViXC1oYW5kczsKK+OnoiA+IHRvXC1kZXBlbmRcLW9uOwor46awID4gdG9cLWJyZWFrXC1vZmY7CivjpqYgPiBhcHByZWhlbnNpdmU7CivvppsgPiBzbWVsdFwtbWV0YWxzOwor46aOID4gY2FudGFua2Vyb3VzOwor46W1ID4gdG9cLWRpc2hvbm91cjsKK++lqyA+IHRha2VcLXBhcnRcLWluOwor46WgID4gaW50ZWxsaWdlbmNlOwor46SzID4gdG9cLWRlcGVuZFwtb247CivjpKcgPiBjb25jaWxpYXRpb247CivjpJ4gPiBkaXNhcHBvaW50ZWQ7CivvpJEgPiBzcGlyYWxcLXNoZWxsOwor46OSID4gaGFpclwtcmFpc2luZzsKK+OjkSA+IGRvdWJsZVwtaW1hZ2U7CivjopcgPiBhXC1oaWdoXC1ob3VzZTsKK+OhlCA+IG9pbGVkXC1jYWxpY287CivjoYUgPiBzdG9yYWdlXC1yb29tOwor46C+ID4gYVwtZGlzaFwtY2xvdGg7CivjoL0gPiBhXC1kaXNoXC1jbG90aDsKK+OgkiA+IG1vdW50YWluXC10b3A7Civjn70gPiBtb3VudGFpblwtdG9wOwor45+6ID4gbW91bnRhaW5cLXRvcDsKK+OfkCA+IGJpZ1wtYW5kXC1oaWdoOwor45+HID4gYVwtbGFuZFwtc2xpZGU7CivjnqIgPiB0b1wtYXJyaXZlXC1hdDsKK+OemyA+IHJlZFwtc2xpcHBlcnM7CivjnpMgPiB0aGVcLWJ1dHRvY2tzOwor456FID4gbm90XC1zdHJhaWdodDsKK+OclyA+IGNvdmV0b3VzbmVzczsKK+ObvCA+IHRvXC1pbnRlcnJ1cHQ7Civjm6UgPiB0b1wtcHJvc3RyYXRlOwor45uKID4gdG9cLXNwZWN1bGF0ZTsKK+ObhiA+IHRvXC1zcGVjdWxhdGU7CivjmKIgPiBhXC1yb3VuZFwtY2F2ZTsKK+OYjSA+IHNvdW5kXC1vZlwtcmF0Owor45eSID4gaW50ZXJqZWN0aW9uOwor45a3ID4gYmlyZFwtc2luZ2luZzsKK+OWoCA+IGFuXC1hdXhpbGlhcnk7Civjla8gPiBzbG93XC10b25ndWVkOwor45WSID4gYVwtbG9mdHlcLXBlYWs7CivjlYMgPiB0b1wtZmFsbFwtb3ZlcjsKK+OUrCA+IHRvXC1lc3RhYmxpc2g7CivjlKYgPiB0b1wtZW5jb3VyYWdlOwor45SVID4gd2l0aFwtcHVycG9zZTsKK+OUjiA+IHRvXC1jdXRcLWFwYXJ0Owor45SDID4gdG9cLWN1dFwtc2hvcnQ7Civjk6MgPiB0b1wtc2lua1wtaW50bzsKK+ORqiA+IGFcLWdlbmVyYXRpb247CivjkaQgPiBnb29kXC1sb29raW5nOwor45GUID4gYWxsXC10b2dldGhlcjsKK+OQuCA+IHRvXC1vd25cLW1vbmV5Owor45C0ID4gdG9cLWRyYWdcLWRvd247Civku6UgPiBieVwtbWVhbnNcLW9mOwor6L6yID4gYWdyaWN1bHR1cmU7CivlvoQgPiBuYXJyb3dcLXBhdGg7Civlh6AgPiBzbWFsbFwtdGFibGU7Civkvr8gPiBjb252ZW5pZW5jZTsKK+eUtSA+IGVsZWN0cmljaXR5Owor55m+ID4gb25lXC1odW5kcmVkOwor6LejID4gYmFyZVwtZm9vdGVkOwor6LSFID4gdW5uZWNlc3Nhcnk7Civlip8gPiBhY2hpZXZlbWVudDsKK+axnyA+IGxhcmdlXC1yaXZlcjsKK+azqCA+IGNvbmNlbnRyYXRlOwor54mnID4gdGVuZFwtY2F0dGxlOwor5amaID4gZ2V0XC1tYXJyaWVkOwor5YiKID4gcHVibGljYXRpb247CivlhpwgPiBhZ3JpY3VsdHVyZTsKK+eGnyA+IHdlbGxcLWNvb2tlZDsKK+mlrSA+IGNvb2tlZFwtcmljZTsKK+WloiA+IGV4dHJhdmFnYW50Owor5p+lID4gaW52ZXN0aWdhdGU7Civnq6AgPiBjb21wb3NpdGlvbjsKK+aMiSA+IHB1dFwtaGFuZFwtb247CivonaAgPiBraW5kXC1vZlwtYmF0Owor6J2VID4gbmliYmxlXC1hd2F5Owor5ZuwID4gdG9cLXN1cnJvdW5kOwor6ZmpID4gbmFycm93XC1wYXNzOwor57uDID4gdG9cLXByYWN0aWNlOwor5rqvID4gZ29cLXVwc3RyZWFtOwor5riJID4gZm9yZFwtc3RyZWFtOwor6LSlID4gYmVcLWRlZmVhdGVkOwor57q3ID4gaW5cLWRpc29yZGVyOwor57y6ID4gYmVcLXNob3J0XC1vZjsKK+mBrSA+IGNvbWVcLWFjcm9zczsKK+aItCA+IHdlYXJcLW9uXC10b3A7Civli6QgPiBpbmR1c3RyaW91czsKK+WLmCA+IGludmVzdGlnYXRlOwor6auEID4gYm9uZVwtbWFycm93Owor5Yq5ID4gZWZmaWNhY2lvdXM7CivosowgPiBjb3VudGVuYW5jZTsKK+e5gSA+IGNvbXBsaWNhdGVkOwor5p+zID4gd2lsbG93XC10cmVlOwor5YeEID4gYml0dGVyXC1jb2xkOwor5raJID4gZm9yZFwtc3RyZWFtOwor6ZyeID4gcm9zeVwtY2xvdWRzOwor6aO0ID4gc3dlZXRcLW1lYXRzOwor6aOvID4gY29va2VkXC1yaWNlOwor6IGqID4gaW50ZWxsaWdlbnQ7CivlgKYgPiBiZVwtdGlyZWRcLW9mOwor5pGUID4gZmFsbFwtZ3JvdW5kOwor6YaJID4gaW50b3hpY2F0ZWQ7Civmn7sgPiBpbnZlc3RpZ2F0ZTsKK+a2myA+IGxhcmdlXC13YXZlczsKK+mUhSA+IGNvb2tpbmdcLXBvdDsKK+S7lCA+IHNtYWxsXC10aGluZzsKK+acgyA+IHRvXC1hc3NlbWJsZTsKK+mbuyA+IGVsZWN0cmljaXR5Owor5ouGID4gdG9cLWJyZWFrXC11cDsKK+e/oCA+IGNvbG9yXC1ncmVlbjsKK+maqiA+IG5hcnJvd1wtcGFzczsKK+aZlSA+IGhhbG9cLWluXC1za3k7CivpmbogPiBuYXJyb3dcLXBhc3M7CivnuqAgPiBpbnZlc3RpZ2F0ZTsKK+WkuCA+IGV4dHJhdmFnYW50Owor6L6oID4gZGlzdGluZ3Vpc2g7CivokZsgPiBlZGlibGVcLWJlYW47Civovb8gPiBzZWRhblwtY2hhaXI7CivmlZcgPiBiZVwtZGVmZWF0ZWQ7CivmlKsgPiBzbmF0Y2hcLWF3YXk7CivntJsgPiBpblwtZGlzb3JkZXI7CivpjZsgPiBmb3JnZVwtbWV0YWw7CivljpUgPiBtaW5nbGVcLXdpdGg7CivpjYsgPiBjb29raW5nXC1wb3Q7Civnq78gPiBiYW1ib29cLXBvbGU7CivliLggPiBjZXJ0aWZpY2F0ZTsKK+epiSA+IHlvdW5nXC1ncmFpbjsKK+mpsyA+IHZhcmljb2xvcmVkOwor5oaUID4gYmVcLXdvcm5cLW91dDsKK+eyniA+IGdyb3VuZFwtcmljZTsKK+mFlCA+IGludG94aWNhdGVkOwor6YGCID4gY29tcGx5XC13aXRoOwor6Zq2ID4gc3Vic2VydmllbnQ7CivnvLggPiBlYXJ0aGVuXC1qdWc7CivogqIgPiBodW1hblwtbGltYnM7CivlsLQgPiBlbWJhcnJhc3NlZDsKK+WRkCA+IHJhaXNlXC12b2ljZTsKK+miliA+IHJpY2VcLXRhc3NlbDsKK+egpSA+IGFcLXdoZXRzdG9uZTsKK+WtlSA+IGJlXC1wcmVnbmFudDsKK+mSniA+IHBhcGVyXC1tb25leTsKK+WeriA+IGJlXC1kZWZlYXRlZDsKK+eQoiA+IHBvbGlzaFwtamFkZTsKK+e7vSA+IHJpcHBlZFwtc2VhbTsKK+WloCA+IHBheVwtcmVzcGVjdDsKK+a+nCA+IG92ZXJmbG93aW5nOwor5oOVID4gYmVcLWNhdXRpb3VzOwor6ZS7ID4gZm9yZ2VcLW1ldGFsOwor6JqAID4gbmliYmxlXC1hd2F5Owor6La0ID4gbHlpbmdcLXByb25lOwor56qYID4gZW1iYXJyYXNzZWQ7CivpmosgPiBzdWlcLWR5bmFzdHk7CivnnoQgPiB0YWtlXC1haW1cLWF0Owor56WfID4gZXZpbFwtc3Bpcml0Owor5ZeUID4gYmVcLWFuZ3J5XC1hdDsKK+WllSA+IGluXC1zZXF1ZW5jZTsKK+amtCA+IHBvbWVncmFuYXRlOwor5qOYID4ganVqdWJlXC10cmVlOwor5bOZID4gc3RhbmRcLWVyZWN0Owor56CMID4gc3RvbmVcLXN0ZXBzOwor5qeQID4gbG9jdXN0XC10cmVlOwor6bOeID4gZmlzaFwtc2NhbGVzOwor5oO6ID4gaW50ZWxsaWdlbnQ7Civpq5MgPiBib25lXC1tYXJyb3c7Civngr0gPiBidXJuaW5nXC1ob3Q7Civov4IgPiBkb2N0cmluYWlyZTsKK+e8qiA+IHdpbmRcLWFyb3VuZDsKK+WHiyA+IGJlXC13aXRoZXJlZDsKK+e8pCA+IGZsb3VyaXNoaW5nOwor6ZuzID4gdGh1bmRlcmNsYXA7CivotZggPiB1bm5lY2Vzc2FyeTsKK+mpuCA+IGV4dHJhXC1ob3JzZTsKK+WXtyA+IGxvdWRcLWNsYW1vcjsKK+eCliA+IHN0ZXdcLXNsb3dseTsKK+iwjyA+IHJlbW9uc3RyYXRlOwor56+GID4gc2VhbFwtc2NyaXB0Owor5a6mID4gb2ZmaWNpYWxkb207Civnk64gPiBlYXJ0aGVuXC1qYXI7CivmnJUgPiBwcm9ub3VuXC0nJ2knJzsKK+mYkSA+IGRvb3JcLXNjcmVlbjsKK+WNpCA+IHNhbGluZVwtc29pbDsKK+WUjyA+IHdlZXBcLW9yXC1zb2I7CivmsakgPiBydW5cLXN3aWZ0bHk7CivmppUgPiBiYW55YW5cLXRyZWU7Civpl7AgPiBpbnRlcmNhbGFyeTsKK+aYiiA+IHN1bW1lclwtdGltZTsKK+eOtyA+IGZsYXdcLWluXC1nZW07CivpmJkgPiB3YXRjaFwtdG93ZXI7CivnkZUgPiBmbGF3XC1pblwtZ2VtOwor5rOMID4gdG9cLXNlZXBcLW91dDsKK+eDvSA+IHNpZ25hbFwtZmlyZTsKK+WttSA+IHNpdFwtb25cLWVnZ3M7CivmpK0gPiBvdmFsXC1zaGFwZWQ7Civnl4kgPiBjb252dWxzaW9uczsKK+WMnSA+IGZ1bGxcLWNpcmNsZTsKK+mlqiA+IGNvb2tlZFwtZm9vZDsKK+W2mSA+IHByZWNpcGl0b3VzOwor6aKnID4gY2hlZWtcLWJvbmVzOwor6ZWXID4gYm9yaW5nXC10b29sOwor5o+2ID4gbWFrZVwtZnVuXC1vZjsKK+eCtyA+IGNhbmRsZVwtd2ljazsKK+i0siA+IGZvcmdlXC1haGVhZDsKK+iasSA+IGdyYXNzaG9wcGVyOwor55eoID4gY29uc3VtcHRpb247Civmv4IgPiBhXC13YXRlcmZhbGw7CivmsZAgPiBuaWdodFwtdGlkZXM7CivnraAgPiBiYW1ib29cLXNraW47CivmsKQgPiBoYW5naW5nXC1mb2c7Civnl5QgPiBoZW1vcnJob2lkczsKK+i2vyA+IHRvXC10cmVhZFwtb247Civop54gPiB3aW5lXC12ZXNzZWw7CivmjLkgPiB0b1wtYmFsZVwtb3V0Owor6IaRID4gdGhlXC1rbmVlY2FwOwor5b6HID4gY29tcGx5XC13aXRoOwor5ZSzID4gY3J5XC1vZlwtYmlyZDsKK+ekhSA+IHN0b25lXC1ibG9jazsKK+eulCA+IHJlZWRcLXNjcmVlbjsKK+ixuCA+IHJhZGljYWxcLTE1MzsKK+a7nyA+IG92ZXJmbG93aW5nOwor54ODID4gaHlkcm9jYXJib247CivnoK0gPiBzdG9uZVwtcHJvYmU7Civmvo0gPiB0aW1lbHlcLXJhaW47CivpvosgPiB0b290aFwtZGVjYXk7CivnvLEgPiBhdHRhY2hlZFwtdG87CivlpYIgPiBiZVwtbnVtZXJvdXM7Civpu6kgPiB0b1wtZGlzaG9ub3I7CivppbQgPiBzd2VldFwtbWVhdHM7Civlo4UgPiB0b1wtb2JzdHJ1Y3Q7CivmvrYgPiBzdGlsbFwtd2F0ZXI7CivppI0gPiBiZVwtc2F0aWF0ZWQ7CivmnqUgPiB0eXBlXC1vZlwtb2FrOwor6JyiID4gZ3Jhc3Nob3BwZXI7CivnhYUgPiBmb3JnZVwtbWV0YWw7CivmoZUgPiB0YWxsb3dcLXRyZWU7CivpsqIgPiBzaWx2ZXJcLWNhcnA7CivotrEgPiBnb1wtaW5cLWh1cnJ5Owor5aarID4gZmFtaWx5XC1uYW1lOwor5pq+ID4gbW9ybmluZ1wtc3VuOwor6I2mID4gYnJpbmRsZWRcLW94Owor6YKbID4gaW5cLWRpc3RyZXNzOwor5oiiID4gdG9cLXB1dFwtYXdheTsKK+ampyA+IHR5cGVcLW9mXC15ZXc7CivloIcgPiB5ZWxsb3dcLWxvYW07CivliqwgPiBiZVwtZGlsaWdlbnQ7CivprYggPiBtaXNjaGV2aW91czsKK+mNqiA+IGFuXC1pcm9uXC1wYW47CivonKMgPiBkdW5nXC1iZWV0bGU7Civnl6YgPiBcKGZsYXRcKVwtbW9sZTsKK+aIrCA+IGV4dGVybWluYXRlOwor5ZeJID4gYmlyZCcnc1wtY3JvcDsKK+WEiyA+IGFcLXNtYWxsXC1qYXI7CivompwgPiBwbGFudFwtbG91c2U7CivnspwgPiBzZWxsXC1ncmFpbnM7CivmlK4gPiB0b1wtZmVuZFwtb2ZmOwor6IuOID4gY2hpbmFcLWdyYXNzOwor5Z+VID4gZWFydGhlblwtamFyOwor5Z2pID4gZWFydGhlbndhcmU7CivmpokgPiB0eXBlXC1vZlwtZWxtOwor546iID4gcG9ycGh5cml0ZXM7Civnu4EgPiB0b1wtY29udHJhY3Q7CivmvYYgPiB0aW55XC1zdHJlYW07Civpq7kgPiByZWRcLWxhY3F1ZXI7Civop5YgPiB0b1wtbG9uZ1wtZm9yOwor6J61ID4gYVwtY2hyeXNhbGlzOwor5p2qID4gdGlwXC1vZlwtdHdpZzsKK+W5giA+IGNvdmVyXC1jbG90aDsKK+ehlyA+IGJhcnJlblwtbGFuZDsKK+iEniA+IG1pbmNlZFwtbWVhdDsKK+i9tSA+IGVuZFwtb2ZcLWF4bGU7CivmpZcgPiBiYXJcLW9mXC1kb29yOwor5qGEID4gYVwtY29pclwtcGFsbTsKK+WgoCA+IGJhdHRsZW1lbnRzOwor5L+cID4gdG9cLXRydXN0XC10bzsKK+m9siA+IHRvb3RoXC1kZWNheTsKK+m7tyA+IHRvXC1kaXNob25vcjsKK+m6gCA+IGZlbWFsZVwtZGVlcjsKK+m5tSA+IHNhbGluZVwtc29pbDsKK+m4jyA+IHRyb3BpY1wtYmlyZDsKK+m0uiA+IHRoZVwtcGVsaWNhbjsKK+mxoCA+IG1pbmNlZFwtZmlzaDsKK+mxlyA+IGZpc2hcLXNjYWxlczsKK+mwsSA+IHNpbHZlclwtY2FycDsKK+msmSA+IG1hdHRlZFwtaGFpcjsKK+mplCA+IGJsYWNrXC1ob3JzZTsKK+mphyA+IGhlYXZ5XC1ob3JzZTsKK+mouiA+IGhlYXZ5XC1ob3JzZTsKK+mnmSA+IGV4dHJhXC1ob3JzZTsKK+mngSA+IHZhcmljb2xvcmVkOwor6aWcID4gYmVcLXNhdGlhdGVkOwor6aSBID4gY29va2VkXC1mb29kOwor6aOqID4gY29va2VkXC1mb29kOwor6aG0ID4gY2hlZWtcLWJvbmVzOwor6aGmID4gYmVcLXdvcm5cLW91dDsKK+mhhyA+IGJlXC13b3JuXC1vdXQ7CivpoLQgPiByaWNlXC10YXNzZWw7CivpoIsgPiB0b1wtY2FyZVwtZm9yOwor6Z6rID4gaW50ZXJyb2dhdGU7CivpnYIgPiB0aHVuZGVyY2xhcDsKK+maiSA+IGluXC1kaXNvcmRlcjsKK+mYqCA+IGluXC1kaXN0cmVzczsKK+mXlSA+IHdhdGNoXC10b3dlcjsKK+mXjCA+IGRvb3JcLXNjcmVlbjsKK+mWoCA+IGludGVyY2FsYXJ5Owor6ZaPID4gaW50ZXJjYWxhcnk7CivpkKYgPiBjYWxpZm9ybml1bTsKK+mPuyA+IHBob3NwaG9uaXVtOwor6Y+cID4gYm9yaW5nXC10b29sOwor6Y6QID4gZmFtaWx5XC1uYW1lOwor6Y2QID4gYVwtaGVhZHN0YWxsOwor6YiUID4gcGFwZXJcLW1vbmV5Owor6YeGID4gZGlzdGluZ3Vpc2g7CivphrkgPiBzdHJvbmdcLXdpbmU7CivphrIgPiBzdHJvbmdcLXdpbmU7CivphpMgPiBzYWx0ZWRcLW1lYXQ7CivphY8gPiBtaWxsZXRcLXdpbmU7CivpgbkgPiBjb21wbHlcLXdpdGg7CivpgaEgPiBnb1wtdXBzdHJlYW07Civov4ogPiB0b1wtZ29cLXJvdW5kOwor6L2OID4gc2VkYW5cLWNoYWlyOwor6L2HID4gY29tcGxpY2F0ZWQ7CivovKYgPiBhXC1oYW5kXC1jYXJ0Owor6Lu5ID4gZW5kXC1vZlwtYXhsZTsKK+i5uSA+IHRvXC10cmVhZFwtb247CivoubUgPiB0b1wtdHJlYWRcLW9uOwor6LayID4gZ29cLWluXC1odXJyeTsKK+i0lyA+IGNvdW50ZXJmZWl0Owor6LOBID4gZm9yZ2VcLWFoZWFkOwor6LKYID4gdGhlXC1wYW50aGVyOwor6LGmID4gYVwtd2lsZFwtYm9hcjsKK+ixmCA+IGFcLXNtYWxsXC1waWc7Civoq6sgPiByZW1vbnN0cmF0ZTsKK+irjCA+IHJlbW9uc3RyYXRlOwor6Ke0ID4gd2luZVwtdmVzc2VsOwor6KexID4gdGFydGFyXC1ob3JuOwor6KaIID4gaW52ZXN0aWdhdGU7CivopLUgPiBicmlkYWxcLXZlaWw7CivooJwgPiBncmFzc2hvcHBlcjsKK+igiyA+IGNhdGVycGlsbGFyOwor6J+bID4gYVwtbGFuZFwtY3JhYjsKK+idmyA+IHRoZVwtc293XC1idWc7CivonY0gPiBhXC1jZW50aXBlZGU7Civom5MgPiBjYXRlcnBpbGxhcjsKK+iXmiA+IHdhdGVyXC1wbGFudDsKK+iXhCA+IGVkaWJsZVwtZmVybjsKK+iTqiA+IHBhcGVyXC1wbGFudDsKK+iTgiA+IGx1Y2t5XC1wbGFjZTsKK+iSrSA+IHRvXC1jdXRncmFzczsKK+iQkCA+IGx1Y2t5XC1wbGFudDsKK+iPoiA+IHRvXC1pbmN1YmF0ZTsKK+iLpyA+IGNoaW5hXC1ncmFzczsKK+iJlyA+IGJvd1wtb2ZcLWp1bms7Civoh48gPiB0aGVcLWtuZWVjYXA7Civog74gPiBtaW5jZWRcLW1lYXQ7Civog5QgPiByb3R0ZW5cLW1lYXQ7CivogoggPiB0b1wtY29tbWVuY2U7CivogbAgPiBpbnRlbGxpZ2VudDsKK+iBpiA+IHRoZVwtaGVhcmluZzsKK+iBoSA+IGludGVsbGlnZW50Owor6ICRID4gc3BlY2lhbGl6ZWQ7Civnv4YgPiBjb2xvclwtZ3JlZW47CivnvpYgPiBhXC1ibGFja1wtcmFtOwor576DID4gY292ZXJcLWNsb3RoOwor572xID4gZmlzaGluZ1wtbmV0Owor572gID4gYW5pbWFsXC10cmFwOwor572SID4gcmFkaWNhbFwtMTIyOwor572LID4gZWFydGhlblwtamFyOwor57m+ID4gYXR0YWNoZWRcLXRvOwor57m9ID4gZmxvdXJpc2hpbmc7CivnuYYgPiB3aW5kXC1hcm91bmQ7CivntrsgPiByaXBwZWRcLXNlYW07Civns74gPiBpbnZlc3RpZ2F0ZTsKK+eztiA+IHNlbGxcLWdyYWluczsKK+ezoiA+IHJpY2VcLXNuYWNrczsKK+ewuSA+IHRhbGxcLWJhbWJvbzsKK+ewtSA+IGZpbmVcLWJhbWJvbzsKK+ewsCA+IGJhbWJvb1wtcmFmdDsKK+evlCA+IHRhbGxcLWJhbWJvbzsKK+eumCA+IGZpbmVcLWJhbWJvbzsKK+etqSA+IGJhbWJvb1wtcGlwZTsKK+etiiA+IGJhbWJvb1wtcm9wZTsKK+ethyA+IGJhbWJvb1wtbmFtZTsKK+esryA+IGFcLWJpcmRcLWNhZ2U7CivnqrggPiBmYWludFwtc291bmQ7CivnqbUgPiBkZWVwXC1ob2xsb3c7CivnqY4gPiByaWNlXC10YXNzZWw7Civno70gPiBiYXJyZW5cLWxhbmQ7Civno7kgPiBzdG9uZVwtd2VkZ2U7CivnopQgPiBcLzJcLXByXC1zdG9uZTsKK+eghiA+IFwvMlwtcHJcLXN0b25lOwor56CDID4gd2hpdGVcLXN0b25lOwor5561ID4gdG9cLXN0YXJlXC1hdDsKK+edoCA+IHRvXC1jYXJlXC1mb3I7CivnnY4gPiB0b1wtbG9uZ1wtZm9yOwor55ylID4gZXllXC1zb2NrZXRzOwor55yRID4gc3Vua2VuXC1leWVzOwor55yKID4gZGltXC1zaWdodGVkOwor55qDID4gY291bnRlbmFuY2U7CivnmYYgPiBjb25zdW1wdGlvbjsKK+eYmiA+IHRvXC1oaWNjb3VnaDsKK+eXsyA+IHBvY2tcLW1hcmtlZDsKK+eXsiA+IHBvY2tcLW1hcmtlZDsKK+eXrSA+IG1lbm9ycmhhZ2lhOwor55eZID4gY29udnVsc2lvbnM7Civnl4MgPiBpbmRpZ2VzdGlvbjsKK+eUlSA+IGVhcnRoZW5cLWphcjsKK+ePvSA+IGphZGVcLXRhYmxldDsKK+eOlyA+IFwvMlwtcHJcLXN0b25lOwor542PID4gdGhlXC1wYW50aGVyOwor54uiID4gYW5pbWFsXC1uYW1lOwor54qWID4gYnJpbmRsZWRcLW94Owor54eWID4gcmVoZWF0XC1mb29kOwor54a+ID4gYnVybmluZ1wtaG90Owor54WfID4gYnJpZ2h0XC1yb29tOwor54WPID4gZHJ5XC1ieVwtZmlyZTsKK+eFhiA+IHJhZ2luZ1wtZmlyZTsKK+eDtCA+IGh5ZHJvY2FyYm9uOwor54GpID4gb3ZlcmZsb3dpbmc7CivngacgPiBvdmVyZmxvd2luZzsKK+eAviA+IG92ZXJmbG93aW5nOwor54CgID4gdGlueVwtc3RyZWFtOwor5r+kID4gbGFyZ2VcLXdhdmVzOwor5r6wID4gb3ZlcmZsb3dpbmc7Civmvb8gPiBzdGlsbFwtd2F0ZXI7Civmvb4gPiBjbGVhclwtd2F0ZXI7CivmvaAgPiB0b1wtYmxvd1wtb3V0Owor5ru3ID4gdGhpY2tcLWdyYXZ5Owor5rmcID4gdHJhbnNwYXJlbnQ7CivmuJ8gPiBub3RcLWZsb3dpbmc7Civmt5IgPiBiaXR0ZXJcLWNvbGQ7CivmtqAgPiBzdGlsbFwtd2F0ZXI7CivmtaEgPiBidXJzdFwtZm9ydGg7Civms50gPiBnb1wtdXBzdHJlYW07CivmsrAgPiB0b1wtbGV0XC1kcm9wOwor5q6wID4gYW5cLWFib3J0aW9uOwor5qyuID4gdG9cLWhpY2NvdWdoOwor5qu4ID4gdHlwZVwtb2ZcLWVsbTsKK+arqiA+IHR5cGVcLW9mXC1vYWs7CivmqaIgPiBvdmFsXC1zaGFwZWQ7Civmp7IgPiB0eXBlXC1vZlwtb2FrOwor5qeiID4gYVwtaGFyZFwtd29vZDsKK+allSA+IG92YWxcLXNoYXBlZDsKK+ajryA+IGp1anViZVwtdHJlZTsKK+aimCA+IGJhbWJvb1wtdHViZTsKK+ailiA+IGFcLXBhbG1cLXRyZWU7CivmooQgPiBhXC1zb2Z0XC13b29kOwor5qCeID4gcHVibGljYXRpb247CivmoIMgPiB0eXBlXC1vZlwtb2FrOwor5p6nID4gYmFtYm9vXC10dWJlOwor5p2kID4gdHlwZVwtb2ZcLW9hazsKK+aaiCA+IGhhbG9cLWluXC1za3k7CivmmJwgPiB0b1wtb3Blblwtb3V0Owor5piJID4gYnJpZ2h0XC1kYXduOwor5pe9ID4gbW9ybmluZ1wtc3VuOwor5peJID4gdG9cLXN0YXRlXC10bzsKK+aRoSA+IHRvXC1pcnJpZ2F0ZTsKK+aRjiA+IHRvXC1zdHJhbmdsZTsKK+aMkyA+IHRvXC1vcGVuXC1vdXQ7CivmiKkgPiBleHRlcm1pbmF0ZTsKK+aFiSA+IHRvXC1icmluZ1wtdXA7CivmhJQgPiBjb21mb3J0YWJsZTsKK+W/siA+IGV4dHJhdmFnYW50Owor5b67ID4gYVwtd2lkZVwtcm9vbTsKK+W+kSA+IG5hcnJvd1wtcGF0aDsKK+W8sCA+IGVuZHNcLW9mXC1ib3c7CivluY4gPiBjb3ZlclwtY2xvdGg7CivluIAgPiB0b1wtZ29cLXJvdW5kOwor5bSqID4gcm9ja3lcLXBlYWtzOwor5bSSID4gcm9ja3lcLXBlYWtzOwor5bGwID4gZGlzb2JlZGllbnQ7CivlsZ0gPiBzdHJhd1wtc2hvZXM7CivlsLcgPiBlbWJhcnJhc3NlZDsKK+WwtiA+IGVtYmFycmFzc2VkOwor5bCcID4gYVwtY2hpbGRcLXRveTsKK+WwgyA+IHRvXC1zdGF0ZVwtdG87CivlrJQgPiBiYWJ5XC1yYWJiaXQ7Civlqq8gPiBmYW1pbHlcLW5hbWU7CivlpZMgPiBleHRyYXZhZ2FudDsKK+WlkCA+IGJlXC1udW1lcm91czsKK+WhvyA+IHNtYWxsXC1tb3VuZDsKK+WgiiA+IHdoaXRlXC1lYXJ0aDsKK+WgiCA+IGVhcnRoZW5cLWp1ZzsKK+WeniA+IHNtYWxsXC1tb3VuZDsKK+WenSA+IGRpbGFwaWRhdGVkOwor5Z6UID4gdG9cLXJlc3RyYWluOwor5Z21ID4gZWFydGhlbndhcmU7Civll7EgPiBleGNsYW1hdGlvbjsKK+WWjiA+IGFcLXdyeVwtbW91dGg7CivllLkgPiB0b1wtc21pbGVcLWF0Owor5ZKFID4gdG9cLXNwaXRcLW91dDsKK+WQtiA+IHJhaXNlXC12b2ljZTsKK+WPuyA+IHBsYWNlXC1uYW1lczsKK+WOviA+IGxpZ2h0bHlcLXRhcDsKK+WOoCA+IG1pbmdsZVwtd2l0aDsKK+WMryA+IGFcLWNvbmNvdXJzZTsKK+WLvSA+IHRvXC1pbmN1YmF0ZTsKK+WLoCA+IGpvaW5cLWZvcmNlczsKK+WKvCA+IGJlXC1kaXNjcmVldDsKK+WKtSA+IGNlcnRpZmljYXRlOwor5YmmID4gdG9cLWNhc3RyYXRlOwor5YiLID4gcHVibGljYXRpb247Civlh6kgPiB3aW50cnlcLXdpbmQ7CivlhqogPiBjb3ZlclwtY2xvdGg7CivlhaYgPiBkZXN0cnVjdGlvbjsKK+WEgSA+IG91dHN0YW5kaW5nOwor5YKPID4gdG9cLXdhcmRcLW9mZjsKK+WBoiA+IHRvXC1zdGFyZVwtYXQ7Civkv5sgPiBtYWtlXC1lZmZvcnQ7CivkvbkgPiBkZXBlbmRcLXVwb247CivkvaEgPiBtYWtlXC1lZmZvcnQ7CivktqogPiBzaGFycFwtdGVldGg7CivktbQgPiBibGFja1wtY29sb3I7CivktbMgPiBsaWdodFwtYmxhY2s7CivktbAgPiBibGFja1wtY29sb3I7CivktakgPiBkYXJrXC15ZWxsb3c7CivktaIgPiBsaWdodFwtYmxhY2s7CivktY4gPiBkYXJrXC15ZWxsb3c7CivksrsgPiB0aGVcLXN3YWxsb3c7Civksb0gPiB0aGVcLXBvbWZyZXQ7CivksbogPiBhXC1tYWxlXC1jcmFiOwor5LG2ID4gYVwtbWFsZVwtY3JhYjsKK+SxkiA+IHNhbHRlZFwtZmlzaDsKK+SvoyA+IHRoZVwta25lZWNhcDsKK+SvmCA+IHRoZVwta25lZWNhcDsKK+SumCA+IHlvdW5nXC1ob3JzZTsKK+SrsyA+IGh1bWFuXC1za3VsbDsKK+SrsCA+IHNwYXJzZVwtaGFpcjsKK+SrrSA+IGJhbGRcLWhlYWRlZDsKK+SrnCA+IHN1bmtlblwtZXllczsKK+SrhCA+IGJldHRlclwtdGhhbjsKK+SqtCA+IHRoZVwtb2NjaXB1dDsKK+SqhCA+IGdyZWF0XC1ibGF6ZTsKK+SpuyA+IHRvXC1iZVwtY2hpZWY7CivkqZwgPiBkZXNjZW5kYW50czsKK+SosSA+IHNwaWx0XC13YXRlcjsKK+SntiA+IHRvXC1jYXJlXC1mb3I7Civkp6ggPiBwcmVjaXBpdG91czsKK+SnniA+IHRvXC1pbmNyZWFzZTsKK+SnkyA+IGFcLWJpZ1wtbW91bmQ7Civkp4ogPiBhXC1iaWdcLW1vdW5kOwor5Ka3ID4gdG9cLXN0cnVnZ2xlOwor5Ka2ID4gdG9cLXN0cnVnZ2xlOwor5KafID4gdG9cLXN0cnVnZ2xlOwor5KabID4gdG9cLXN0cnVnZ2xlOwor5KaYID4gYVwtdGhyZXNob2xkOwor5KWAID4gdG9cLXB1bGxcLW91dDsKK+SkrSA+IHRvXC1vcm5hbWVudDsKK+SkhSA+IHNvdXRoZXJ3b29kOwor5KKJID4gYWdyaWN1bHR1cmU7CivkoJ0gPiB0b1wtc3RhbmRcLXVwOwor5KCNID4gYXRcLXRoZVwtZmVldDsKK+SftSA+IHRvXC10cmVhZFwtb247Civkn68gPiB0b1wtdHJlYWRcLW9uOwor5J+FID4gdG9cLWdvXC1haGVhZDsKK+SfgSA+IGFcLWZvb3RcLXJhY2U7Civknr0gPiB0b1wtbGllXC1mbGF0Owor5J6oID4gaGFsZlwtYVwtcGFjZTsKK+SepiA+IHRvXC1saWVcLWZsYXQ7CivknoogPiB0b1wtaW5jcmVhc2U7CivknoQgPiB0b1wtZGlzcGVyc2U7CivknY0gPiBhXC13aWxkXC1ib2FyOwor5J2AID4gZ2FyZGVuXC1wZWFzOwor5JywID4gZGVlcFwtdmFsbGV5Owor5JyuID4gZGVlcFwtdmFsbGV5Owor5JyXID4gYW5ncnlcLXdvcmRzOwor5JyPID4gdG9cLXdpdGhkcmF3Owor5JyGID4gaGFzdHlcLXdvcmRzOwor5JuYID4gdG9cLXRoaW5rXC1vZjsKK+SaviA+IHRvXC10aGlua1wtb2Y7CivkmrMgPiBkb1wtbm90XC1rbm93Owor5JqyID4gdG9cLWxhdWdoXC1hdDsKK+SZviA+IHRvXC13YWl0XC1mb3I7CivkmbEgPiBhXC1sb25nXC1jb2F0Owor5JmwID4gbmV3XC1mZWF0aGVyOwor5JmCID4gc2hvcnRcLXBhbnRzOwor5Ji0ID4gc2hvcnRcLXBhbnRzOwor5JeWID4gdGhlXC1yYWluYm93Owor5JW4ID4gd2hlYXRcLXN0cmF3Owor5JWjID4gd2F0ZXJcLXBsYW50Owor5JWMID4geW91bmdcLWdyYWluOwor5JS/ID4gbHVzaFwtZ3Jvd3RoOwor5JOuID4gbHVzaFwtZ3Jvd3RoOwor5JOPID4gZmxvdXJpc2hpbmc7CivkkosgPiBhaXJcLWN1cnJlbnQ7CivkkJogPiBnb29kXC1ncmFjZXM7Civkj7YgPiB0aGVcLXN0b21hY2g7Civkj5QgPiB0b1wtZWF0XC1tZWF0Owor5I+TID4gdGhlXC1zdG9tYWNoOwor5I2oID4gdG9cLWNhc3RyYXRlOwor5Iy6ID4gZmxvdXJpc2hpbmc7CivkjKogPiB0b1wtY29udGludWU7CivkjKYgPiBncmVlblwtY29sb3I7Civkiq0gPiB0b1wtb3ZlcnR1cm47CivkiqsgPiBjb2Fyc2VcLXJpY2U7CivkiqIgPiB0aGlja1wtZmx1aWQ7CivkipMgPiB0b1wtcGFzdGVcLXVwOwor5ImdID4gYmFtYm9vXC13YXJlOwor5ImKID4gYmFtYm9vXC13YXJlOwor5Ii4ID4gYVwtYmlnXC1jaGVzdDsKK+SIgCA+IGJhbWJvb1wtd2FyZTsKK+SHlSA+IHRvXC13YWl0XC1mb3I7Civkh5MgPiB0b1wtd2FpdFwtZm9yOwor5IeDID4gdG9cLXdhaXRcLWZvcjsKK+SGsyA+IGZhclwtZGlzdGFudDsKK+SGmCA+IGFjdXB1bmN0dXJlOwor5IaWID4gYVwtYmlnXC1ob3VzZTsKK+SFuyA+IG1lYXN1cmVtZW50Owor5IWEID4gbG9uZ1wtZ3JhaW5zOwor5IS9ID4gY29tbW9uXC1yaWNlOwor5ISEID4gYWNoaWV2ZW1lbnQ7Civkg60gPiBhXC1zdG9uZVwtYm94Owor5IKxID4gdG9cLXdlYXJcLW91dDsKK+SCpCA+IHdoaXRlXC1zdG9uZTsKK+SCoSA+IGFcLXdoZXRzdG9uZTsKK+SCkyA+IHJlZ3VsYXRpb25zOwor5IG7ID4gcHJldHR5XC1leWVzOwor5IG3ID4gYnJpZ2h0XC1leWVzOwor5IGxID4gaG9sbG93XC1leWVkOwor5IGRID4gcHJldHR5XC1leWVzOwor5ICmID4gdG9cLXN0YXJlXC1hdDsKK+SAgiA+IGFcLWJpZ1wtYmFzaW47Civjv6MgPiB3aGl0ZVwtY29sb3I7Civjv5ggPiB0b1wtZ2V0XC1zaWNrOwor4766ID4gZXllXC1kaXNlYXNlOwor476dID4gdG9cLWxlYWtcLW91dDsKK+O+lyA+IGV5ZVwtZGlzZWFzZTsKK+O+iCA+IGh1bmNoYmFja2VkOwor476DID4gaHVtcFwtYmFja2VkOwor472qID4gcGFkZHlcLWZpZWxkOwor472GID4gZWFydGhlbndhcmU7CivjvYAgPiBlYXJ0aGVud2FyZTsKK+O8uyA+IGVhcnRoZW53YXJlOwor47y4ID4gZWFydGhlbndhcmU7CivjvLYgPiBlYXJ0aGVud2FyZTsKK+O8syA+IGVhcnRoZW53YXJlOwor47yvID4gZWFydGhlbndhcmU7CivjvKwgPiBlYXJ0aGVud2FyZTsKK+O8piA+IGVhcnRoZW53YXJlOwor47ykID4gZWFydGhlbndhcmU7CivjvJggPiBvZlwtbW91bnRhaW47CivjvJMgPiBtZWxvblwtc2VlZHM7Civju5MgPiBhXC1maW5lXC1qYWRlOwor47mgID4gYVwtc21hbGxcLWJpZzsKK+O4oCA+IHRoaWNrXC1zdGljazsKK+O2kSA+IG92ZXJmbG93aW5nOwor47WuID4gY2xlYXJcLXdhdGVyOwor47WkID4gdG9cLW92ZXJmbG93Owor47WVID4gdG9cLXBlcm1lYXRlOwor47SYID4gdG9cLW9vemVcLW91dDsKK+OysCA+IGFcLWhhaXJ5XC1kb2c7CivjspIgPiB0b1wtaW5jdWJhdGU7CivjsakgPiBhblwtYWJvcnRpb247CivjsLIgPiB0b1wtYmxvd1wtb2ZmOwor47CuID4gdG9cLWxhdWdoXC1hdDsKK+OwniA+IHRvXC1sYXVnaFwtYXQ7Civjr4ggPiBzbWFsbFwtdHJlZXM7Civjrp8gPiBhXC13aGV0c3RvbmU7Civjrp0gPiBhbmdsZVwtc3RlZWw7CivjrbQgPiB0aGVcLW9zY2luZXM7CivjrY4gPiBhXC10YWxsXC10cmVlOwor46yyID4gdG9cLWluY3JlYXNlOwor46ypID4gYVwtdGlueVwtc3RhcjsKK+OrtSA+IHdoaXRlXC1jb2xvcjsKK+OrmCA+IGRpc2FwcGVhcmVkOwor46q6ID4gdG9cLWJhbGVcLW91dDsKK+OpiCA+IHRvXC1yZXN0cmFpbjsKK+OphSA+IHRvXC1kcmF3XC1vdXQ7CivjqLogPiB0b1wtb3JuYW1lbnQ7CivjqLUgPiB0b1wtY3V0XC1hd2F5Owor46i0ID4gdG9cLXR1cm5vdmVyOwor76iqID4gY29va2VkXC1yaWNlOwor46iVID4gdG9cLXNob3VsZGVyOwor76eyID4gZmlzaFwtc2NhbGVzOwor46eUID4gdG9cLWRpc3R1cmJlOwor76eJID4gd2lsbG93XC10cmVlOwor76eFID4gaGFsb1wtaW5cLXNreTsKK+OmnyA+IGludGVsbGlnZW50Owor76aYID4gYVwtaGFuZFwtY2FydDsKK+OmkiA+IHRvXC1kZWNlaXZlZDsKK++lqCA+IHRvXC1zZWVwXC1vdXQ7CivvpaUgPiBjb252ZW5pZW5jZTsKK+OkoSA+IHRvXC1zdXJwcmlzZTsKK+OkmyA+IHRvXC1yZW1lbWJlcjsKK+OklSA+IG1lbGFuY2hvbG95Owor46SBID4gdG9cLWRpc2dyYWNlOwor46O+ID4gZG9cLW5vdFwtY2FyZTsKK+OjtSA+IHRvXC1ydW5cLWF3YXk7Civjo6UgPiB0b1wtc3RvcmVcLXVwOwor46KzID4gYmxhY2tcLWNvbG9yOwor46KTID4gdG9cLXNlcGFyYXRlOwor46G+ID4gYVwtdGhyZXNob2xkOwor46CWID4gcHJlY2lwaXRvdXM7CivjnpggPiBhXC1zbWFsbFwtcGlnOwor4520ID4gYVwtcm91bmRcLW9mZjsKK+OdlCA+IGRlZXBcLWJvdHRvbTsKK+OcoyA+IGFcLWxhc3RcLW5hbWU7CivjnI4gPiBzbGF2ZVwtZ2lybHM7Civjm5EgPiB0aHJlZVwtd29tZW47Civjmr4gPiB0b1wtaGF2ZVwtZnVuOwor45mnID4gZWFydGhlbndhcmU7CivjmLYgPiBhXC1oZW5cLXJvb3N0Owor45ilID4gdG9cLWludmVpZ2xlOwor45iGID4gdG9cLWxhdWdoXC1hdDsKK+OXlyA+IHRvXC1zZXBhcmF0ZTsKK+OWvSA+IHRvXC1jYWxsXC1vdXQ7CivjlqMgPiB0b1wtc3BpdFwtb3V0Owor45aeID4gYVwtd3J5XC1tb3V0aDsKK+OWliA+IHRvXC1zcGl0XC1vdXQ7CivjlpUgPiB0b1wtc3BpdFwtb3V0Owor45aRID4gdG9cLXNob3V0XC1hdDsKK+OUvCA+IHRvXC1maXRcLWludG87CivjlLYgPiBhXC1zbWFsbFwtY3VwOwor45SPID4gdG9cLWN1dFwtb3BlbjsKK+OTrCA+IHRvXC1jdXRcLW9wZW47Civjk6kgPiBob3JuZWRcLWhhaXI7CivjkqggPiBhblwtaW1tb3J0YWw7CivjkqUgPiBhblwtaW1tb3J0YWw7Civjkb0gPiB0b1wtd2FyZFwtb2ZmOwor55qEID4gcG9zc2Vzc2l2ZTsKK+i+vCA+IGNyb3dkXC1pbnRvOwor6L67ID4gY3Jvc3Nyb2FkczsKK+iDvSA+IHRvXC1iZVwtYWJsZTsKK+mDvSA+IG1ldHJvcG9saXM7CivmlocgPiBsaXRlcmF0dXJlOwor6L2NID4gd2Fnb25cLXJ1dHM7CivovKkgPiBnZW5lcmF0aW9uOwor55ypID4gdG9cLWNvbmZ1c2U7CivnnKAgPiBjbG9zZVwtZXllczsKK+i8nSA+IGJyaWdodG5lc3M7CivlvJAgPiBudW1iZXJcLXR3bzsKK+iAhSA+IHRoYXRcLXdoaWNoOwor5LiaID4gcHJvZmVzc2lvbjsKK+W6nCA+IHByZWZlY3R1cmU7CivmlL8gPiBnb3Zlcm5tZW50Owor5LiWID4gZ2VuZXJhdGlvbjsKK+S6pyA+IGdpdmVcLWJpcnRoOwor5Zy6ID4gb3Blblwtc3BhY2U7Civmr5QgPiB0b1wtY29tcGFyZTsKK+eWsiA+IGZlZWxcLXRpcmVkOwor55S7ID4gYVwtcGFpbnRpbmc7CivnlKMgPiBnaXZlXC1iaXJ0aDsKK+acmyA+IHRvXC1sb29rXC1hdDsKK+izuiA+IG1ha2VcLW1vbmV5Owor5YWtID4gbnVtYmVyXC1zaXg7CivlsaEgPiBmcmVxdWVudGx5Owor5bCkID4gZXNwZWNpYWxseTsKK+WwiCA+IG1vbm9wb2xpemU7Civln7ogPiBmb3VuZGF0aW9uOwor5Y+MID4gc2V0XC1vZlwtdHdvOwor5a2rID4gZ3JhbmRjaGlsZDsKK+S4kyA+IG1vbm9wb2xpemU7CivlrKogPiBjb3VydFwtbGFkeTsKK+emuyA+IHJhcmVcLWJlYXN0Owor5aqSID4gZ29cLWJldHdlZW47CivoqowgPiB3cml0ZVwtZG93bjsKK+iqhyA+IGV4YWdnZXJhdGU7Civlk40gPiBtYWtlXC1zb3VuZDsKK+WpvyA+IHNvblwtaW5cLWxhdzsKK+eIrSA+IHRvXC1kaXNwdXRlOwor5ZmoID4gcmVjZXB0YWNsZTsKK+eHnyA+IGVuY2FtcG1lbnQ7CivlppkgPiBteXN0ZXJpb3VzOwor6IOhID4gcmVja2xlc3NseTsKK+WmkyA+IHByb3N0aXR1dGU7CivopaYgPiBzaG9ydFwtY29hdDsKK+WlpyA+IG15c3RlcmlvdXM7CivlpaUgPiBteXN0ZXJpb3VzOwor5aO7ID4gc29uXC1pblwtbGF3Owor5aOxID4gbnVtYmVyXC1vbmU7CivlrZkgPiBncmFuZGNoaWxkOwor6JClID4gZW5jYW1wbWVudDsKK+WgtCA+IG9wZW5cLXNwYWNlOwor6YOtID4gb3V0ZXJcLXBhcnQ7CivorqggPiB0b1wtZGlzY3VzczsKK+a7hSA+IGV4dGluZ3Vpc2g7CivomZwgPiB0b1wtY2FwdHVyZTsKK+enryA+IGFjY3VtdWxhdGU7Civoj5wgPiB2ZWdldGFibGVzOwor5ZejID4gdG9cLWNvbm5lY3Q7Civll5wgPiBiZVwtZm9uZFwtb2Y7Civku4sgPiBmb3JlcnVubmVyOwor57SiID4gbGFyZ2VcLXJvcGU7CivkuIEgPiBtYWxlXC1hZHVsdDsKK+mBjSA+IGV2ZXJ5d2hlcmU7CivovoggPiBnZW5lcmF0aW9uOwor6JKUID4gdHJhbnNwbGFudDsKK+aHgiA+IHVuZGVyc3RhbmQ7Civph4ogPiBpbnRlcnByZXRlOwor57q1ID4gaW5kdWxnZVwtaW47Civnga0gPiBleHRpbmd1aXNoOwor5q20ID4gdGFrZVwtcGxhY2U7Civku4EgPiBodW1hbmVuZXNzOwor5qqAID4gc2FuZGFsd29vZDsKK+WJiiA+IHNjcmFwZVwtb2ZmOwor5YiRID4gcHVuaXNobWVudDsKK+WygiA+IGhvd1w/XC13aGF0XD87CivpmoYgPiBwcm9zcGVyb3VzOwor6L6JID4gYnJpZ2h0bmVzczsKK+WIgyA+IGVkZ2VkXC10b29sOwor5p6QID4gc3BsaXRcLXdvb2Q7CivohbggPiBpbnRlc3RpbmVzOwor5qWtID4gcHJvZmVzc2lvbjsKK+alkyA+IG1hcGxlXC10cmVlOwor6aSFID4gcmljZVwtY2FrZXM7CivmnqsgPiBtYXBsZVwtdHJlZTsKK+WCjSA+IGJ5XC1zaWRlXC1vZjsKK+iAvSA+IGluZHVsZ2VcLWluOwor6aC7ID4gZnJlcXVlbnRseTsKK+agkyA+IHdvb2RlblwtcGVnOwor6Z+/ID4gbWFrZVwtc291bmQ7Civlh68gPiB0cml1bXBoYW50Owor5oGtID4gcmVzcGVjdGZ1bDsKK+eluCA+IG1pc2ZvcnR1bmU7CivpopEgPiBmcmVxdWVudGx5Owor56aFID4gbWVkaXRhdGlvbjsKK+afryA+IGF4ZVwtaGFuZGxlOwor5o2QID4gY29udHJpYnV0ZTsKK+i4qiA+IGZvb3RwcmludHM7CivlsYEgPiBicmVha1wtd2luZDsKK+iwiiA+IGZyaWVuZHNoaXA7CivlgqggPiBzYXZlXC1tb25leTsKK+mbgSA+IHdpbGRcLWdvb3NlOwor5pGKID4gc3ByZWFkXC1vdXQ7CivlkKggPiBtZXRyaWNcLXRvbjsKK+S5jSA+IGZpcnN0XC10aW1lOwor6ZmAID4gc3RlZXBcLWJhbms7CivnuLEgPiBpbmR1bGdlXC1pbjsKK+e4piA+IGluZHVsZ2VcLWluOwor6IKgID4gaW50ZXN0aW5lczsKK+i1miA+IG1ha2VcLW1vbmV5Owor57a/ID4gY290dG9uXC13YWQ7CivntrEgPiBoZWF2eVwtcm9wZTsKK+e7tSA+IGNvdHRvblwtd2FkOwor5oqRID4gcHJlc3NcLWRvd247CivppbwgPiByaWNlXC1jYWtlczsKK+W9rCA+IGN1bHRpdmF0ZWQ7Civmkq4gPiBsaXR0bGVcLWJpdDsKK+eypSA+IHJpY2VcLWdydWVsOwor6JuuID4gYmFyYmFyaWFuczsKK+euuCA+IGNob3BzdGlja3M7CivnrbUgPiBiYW1ib29cLW1hdDsKK+iJhyA+IHNtYWxsXC1ib2F0Owor5o2MID4gYnJlYWtcLW9wZW47CivnrKAgPiBiYW1ib29cLWhhdDsKK+W6niA+IGRpc29yZGVybHk7Civpi6ogPiBzcHJlYWRcLW91dDsKK+ernSA+IHRvXC1jb21iaW5lOwor56mNID4gYWNjdW11bGF0ZTsKK+aJiSA+IGRvb3JcLXBhbmVsOwor57qyID4gaGVhdnlcLXJvcGU7Civph4sgPiBpbnRlcnByZXRlOwor6YeIID4gaW50ZXJwcmV0ZTsKK+WdnSA+IGVtYmFua21lbnQ7CivmhqcgPiBpcnJlc29sdXRlOwor55SpID4gdGhyb3dcLWF3YXk7CivnpZUgPiBteXN0ZXJpb3VzOwor6YWMID4gc2VydmVcLXdpbmU7Civno5AgPiBsYXJnZVwtcm9jazsKK+i+hSA+IGNoZWVrXC1ib25lOwor5o2hID4gdG9cLXBpY2tcLXVwOwor5623ID4gY2hvcHN0aWNrczsKK+i5iCA+IHN0YW1wXC1mZWV0Owor5pmSID4gZHJ5XC1pblwtc3VuOwor5q28ID4gYW5uaWhpbGF0ZTsKK+a2qSA+IGFzdHJpbmdlbnQ7CivpnI4gPiBsaWdodFwtcmFpbjsKK+aThSA+IG1vbm9wb2xpemU7CivolKwgPiB2ZWdldGFibGVzOwor57u4ID4gc2lsa1wtY2xvdGg7CivnnK8gPiBiZVwtYmxpbmRlZDsKK+WvhSA+IHRvXC1yZXNwZWN0Owor6JmPID4gdG9cLWNhcHR1cmU7CivnnLYgPiBleWVcLXNvY2tldDsKK+einyA+IHNtYWxsXC1kaXNoOwor6JW0ID4gdG9cLWNvbGxlY3Q7Civov60gPiByZXBlYXRlZGx5Owor5petID4gcmlzaW5nXC1zdW47Civmgo0gPiBjb3VyYWdlb3VzOwor5p6iID4gZG9vclwtaGluZ2U7Civot4sgPiBnb1wtYnlcLWZvb3Q7CivlnKogPiBcKHBob25ldGljXCk7CivmkJQgPiB0b1wtc2NyYXRjaDsKK+WajiA+IGNyeVwtbG91ZGx5Owor6L6ZID4gd2Fnb25cLXJ1dHM7CivmsZsgPiBoaWdoXC13YXRlcjsKK+iEryA+IGRyaWVkXC1tZWF0Owor5ZeSID4gdG9cLWRlc3BhaXI7Civlop8gPiBoaWdoXC1tb3VuZDsKK+mmiyA+IGdsdXR0b25vdXM7CivlqLwgPiBwcm9zdGl0dXRlOwor6LmtID4gdG9cLXNodWZmbGU7CivmvoggPiB0aG9yb3VnaGx5Owor57ytID4gd2luZFwtcm91bmQ7CivllrMgPiB3aGlzcGVyaW5nOwor5bynID4gd29vZGVuXC1ib3c7Civot7ogPiBzdGFtcFwtZmVldDsKK+aDhiA+IGRpc3RyZXNzZWQ7CivmkrUgPiBkcml2ZVwtYXdheTsKK+augyA+IG1pc2ZvcnR1bmU7CivmgaogPiByZXNwZWN0ZnVsOwor6L22ID4gcnVzaFwtZm9ydGg7CivohYYgPiBwcm9zcGVyb3VzOwor56q/ID4gbWluZVwtc2hhZnQ7CivmqLUgPiB3b29kY3V0dGVyOwor54qAID4gcmhpbm9jZXJvczsKK+e7miA+IHZhcmllZ2F0ZWQ7Civol5UgPiBsb3R1c1wtcm9vdDsKK+aRniA+IHRvXC1waWxlXC11cDsKK+a7pCA+IHN0cmFpblwtb3V0Owor57yIID4gaW5kaXN0aW5jdDsKK+iCqiA+IGFuaW1hbFwtZmF0Owor55SEID4gdG9cLWV4YW1pbmU7Civpk5sgPiBmcnlpbmdcLXBhbjsKK+WroSA+IGxlZ2FsXC13aWZlOwor55iBID4gZmVlbFwtdGlyZWQ7Civno7cgPiBwaG9zcGhvcnVzOwor57+hID4ga2luZ2Zpc2hlcjsKK+eekSA+IGNsb3NlXC1leWVzOwor6ZytID4gY2xvdWR5XC1za3k7CivoiKsgPiBmYW5jeVwtYm9hdDsKK+e6qCA+IHdoaXRlXC1zaWxrOwor5qa3ID4gZm9vdGJyaWRnZTsKK+eznCA+IHJpY2VcLWdydWVsOwor5aO5ID4gbnVtYmVyXC1vbmU7CivolJcgPiBzdWdhclwtY2FuZTsKK+W9lyA+IGJyb29tc3RpY2s7Civllp8gPiBoZWF2ZVwtc2lnaDsKK+WWkSA+IHRvXC1iZVwtZHVtYjsKK+mxvyA+IGN1dHRsZWZpc2g7CivlgJwgPiByYWlzZVwtaGlnaDsKK+S+qSA+IGdvXC1iZXR3ZWVuOwor5ruCID4gdG9ycmVudGlhbDsKK+i0sCA+IG51bWJlclwtdHdvOwor5b+7ID4gZGVsaWdodGZ1bDsKK+eHpyA+IGZsaW50c3RvbmU7CivnqJQgPiByaXBlXC1ncmFpbjsKK+WrlCA+IGNvdXJ0XC1sYWR5Owor6aKJID4gZmx5XC11cHdhcmQ7CivoiLggPiBsYXJnZVwtYm9hdDsKK+ecmSA+IHRvXC1nYXplXC1hdDsKK+eYgCA+IGFcLWhlbWF0b21hOwor5aSvID4gaGVhdnlcLWxvYWQ7CivppZUgPiBnbHV0dG9ub3VzOwor6bKgID4gZmlzaFwtYm9uZXM7CivojI8gPiB0YWxsXC1ncmFzczsKK+iMryA+IGNoaW5hXC1yb290Owor6bKnID4gZ2lhbnRcLWZpc2g7CivpgKYgPiBtZWFuZGVyaW5nOwor6aqcID4gd2lsZFwtaG9yc2U7CivmrLkgPiBmaWVyY2VcLWRvZzsKK+e8myA+IGRlY29yYXRpdmU7Civoi5UgPiBydXNoXC1wbGFudDsKK+mhuCA+IGxhcmdlXC1mYWNlOwor5bCVID4gXChwaG9uZXRpY1wpOwor57ymID4gcGxhaW5cLXNpbGs7CivluJkgPiBib29rXC1jb3ZlcjsKK+mzgyA+IGZpc2hcLWdpbGxzOwor6Ya0ID4gc3dlZXRcLXdpbmU7CivovoogPiB0dXJuXC1yb3VuZDsKK+WymCA+IHN0ZWVwXC1oaWxsOwor5YCsID4gbm90aWNlYWJsZTsKK+myniA+IGRyaWVkXC1maXNoOwor57CfID4gYmFtYm9vXC1tYXQ7CivnqLkgPiBhY2N1bXVsYXRlOwor57yBID4gYmxhY2tcLXNpbGs7CivnrqcgPiByYXR0YW5cLWJveDsKK+WigSA+IHRvXC1wbGFzdGVyOwor5720ID4gYnJvd25cLWJlYXI7CivniLAgPiBsZWFkXC1vblwtdG87CivmnbIgPiBicmlnaHRcLXN1bjsKK+eZlCA+IGh5c3RlcmljYWw7CivmnosgPiBzYW5kYWx3b29kOwor6I6cID4gYXZlbmFcLW51ZGE7Civln5kgPiBpbnN0cnVtZW50Owor542+ID4gdGhlXC1iYWRnZXI7CivojrMgPiB0cmFuc3BsYW50Owor6YOrID4gcGxhY2VcLW5hbWU7Civom48gPiByYXpvclwtY2xhbTsKK+appSA+IHdvb2RlblwtcGVnOwor5biRID4gYVwtdHJlYXN1cnk7Civmj6AgPiB0b1wtcHVsbFwtdXA7CivotpEgPiBjYW4nJ3RcLW1vdmU7CivpmI0gPiBnYXRla2VlcGVyOwor5o6KID4gdG9cLWV4dHJhY3Q7CivplZ0gPiBkeXNwcm9zaXVtOwor56CXID4gZ2lhbnRcLWNsYW07Civlq6sgPiB1Z2x5XC13b21hbjsKK+iUjCA+IHZlZ2V0YWJsZXM7Civot5cgPiB0aGVcLWluc3RlcDsKK+a1vCA+IHRvXC1yZXF1ZXN0Owor5ZeMID4gdGhlXC10aHJvYXQ7CivllJEgPiBcKHBob25ldGljXCk7CivmsYYgPiB0b1wtcGFyYm9pbDsKK+WIrSA+IGN1dFwtdGhyb2F0Owor6auCID4gdGhlXC1wZWx2aXM7CivoiYsgPiBzbWFsbFwtYm9hdDsKK+mSvCA+IG1vbHliZGVudW07Civmhp0gPiB0b1wtZGlzbGlrZTsKK+eChSA+IGJyaWxsaWFuY2U7CivpmrMgPiB0b1wtZGVzdHJveTsKK+iMmyA+IHJhbnVuY3VsdXM7Civns4cgPiBkcmllZFwtcmljZTsKK+mShiA+IGdhZG9saW5pdW07CivmvowgPiB0b1wtZXhoYXVzdDsKK+W6gCA+IHRvXC1wcmVwYXJlOwor54q0ID4gYVwtd2lsZFwtZG9nOwor5Z+PID4gYVwtYm91bmRhcnk7Civlh7UgPiByZWNlcHRhY2xlOwor6LCuID4gdG9cLXNsYW5kZXI7CivpvqIgPiBpblwtaGFybW9ueTsKK+m+kCA+IGRpc29yZGVybHk7Civpvo4gPiBkaXNvcmRlcmx5Owor6bynID4gdGhlXC1tYXJtb3Q7CivpvIQgPiB0aGVcLXNwaWRlcjsKK+m7uSA+IGVtYnJvaWRlcnk7Civpu7IgPiBncmV5XC1ibGFjazsKK+m7qiA+IGdyZXlcLWJsYWNrOwor6bukID4gYmx1ZVwtYmxhY2s7CivpuLogPiBob3JuZWRcLW93bDsKK+m1kiA+IG15bmFoXC1iaXJkOwor6bWCID4gaG9ybmVkXC1vd2w7CivptLcgPiB3b29kcGVja2VyOwor6bSIID4gd2lsZFwtZ29vc2U7Civps7IgPiB0dXJ0bGVkb3ZlOwor6bOrID4gd2lsZFwtZ29vc2U7CivpsrAgPiBzbWFsbFwtZmlzaDsKK+mxkCA+IGRyaWVkXC1maXNoOwor6bGHID4gYW5nbGVyZmlzaDsKK+mwkyA+IGZpc2hcLWdpbGxzOwor6bCCID4gY3V0dGxlZmlzaDsKK+mvqyA+IHNtYWxsXC1maXNoOwor6a+XID4gZHJpZWRcLWZpc2g7Civpr4EgPiBmaXNoXC1ib25lczsKK+mvgCA+IGdpYW50XC1maXNoOwor6a6/ID4gZHJpZWRcLWZpc2g7Civprp8gPiBhbmdsZXJmaXNoOwor6a6dID4gZHJpZWRcLWZpc2g7CivproEgPiB0aGVcLWJvbml0bzsKK+mttyA+IGN1dHRsZWZpc2g7CivprZsgPiB0aGVcLW11bGxldDsKK+msqCA+IGJvaXN0ZXJvdXM7CivprJwgPiB0b1wtZ29cLWJhbGQ7Civpq6MgPiBzaW1pbGFyXC10bzsKK+mrgSA+IHRoaWdoXC1ib25lOwor6amBID4gd2lsZFwtaG9yc2U7CivpqJcgPiB0b1wtc3dpbmRsZTsKK+moiyA+IHRhbGxcLWhvcnNlOwor6aiJID4gZmluZVwtaG9yc2U7Civpp7AgPiBncmV5XC1ob3JzZTsKK+mmuSA+IHBvc3RcLWhvcnNlOwor6aWeID4gZ2x1dHRvbm91czsKK+mkoCA+IHJpY2VcLWNha2VzOwor6aChID4gZmx5XC11cHdhcmQ7CivpoIcgPiBsYXJnZVwtZmFjZTsKK+meoSA+IGxlZ1wtd2FybWVyOwor6Z2wID4gbGVnXC13YXJtZXI7CivpnZ0gPiB0aGVcLWhlYXZlbjsKK+mdiSA+IGNsb3VkeVwtc2t5Owor6Z2GID4gY2xvdWR5XC1za3k7CivpnYQgPiBjbG91ZHlcLXNreTsKK+mbsCA+IGF0bW9zcGhlcmU7Civpm5kgPiBzZXRcLW9mXC10d287Civpmq4gPiB0aVwtcmlzZVwtdXA7CivpmbsgPiBzbWFsbFwtaGlsbDsKK+mZkSA+IHBsYWNlXC1uYW1lOwor6ZivID4gZm91bmRhdGlvbjsKK+mXnyA+IHBlYWNlZnVsbHk7Civplr0gPiBnYXRla2VlcGVyOwor6ZanID4gYm9pc3Rlcm91czsKK+mVmiA+IHNtYWxsXC1jb2luOwor6ZSsID4gbG9uZ1wtc3BlYXI7CivpkrcgPiBwcm9tZXRoaXVtOwor6ZC6ID4gZnJ5aW5nXC1wYW47CivpkLYgPiBtZXRhbFwtcmluZzsKK+mQmiA+IHNvZnRcLXN0ZWVsOwor6ZCSID4gbGF3cmVuY2l1bTsKK+mQgCA+IGFcLWN1cGJvYXJkOwor6Y+RID4gZHlzcHJvc2l1bTsKK+mOqiA+IHRvXC1lbmdyYXZlOwor6Y6bID4gbGFyZ2VcLWJlbGw7CivpjYAgPiB0ZWNobmV0aXVtOwor6YyfID4gbG9uZ1wtc3BlYXI7CivpjJ4gPiBpbnN0cnVtZW50Owor6YyPID4gc29mdFwtc3RlZWw7CivpiawgPiBtb2x5YmRlbnVtOwor6YiKID4gY2Fkb2xpbml1bTsKK+mHkyA+IGdhZG9saW5pdW07CivphqEgPiB3aW5lXC1wcmVzczsKK+mGnSA+IHdoaXRlXC13aW5lOwor6YWFID4gcmFpc2VcLWZlZXQ7Civpg7kgPiBwbGFjZVwtbmFtZTsKK+mCkCA+IG1lYW5kZXJpbmc7CivpgKwgPiB0b1wtc2NhdHRlcjsKK+i8pSA+IHR1cm5cLXJvdW5kOwor6LyUID4gY2hlZWtcLWJvbmU7Civou7wgPiBydXNoXC1mb3J0aDsKK+i6qSA+IHRha2VcLXF1aWNrOwor6LqbID4gZXhhZ2dlcmF0ZTsKK+i6lyA+IGV4YWdnZXJhdGU7CivouaQgPiBmb290cHJpbnRzOwor6LinID4gdW5lYXNpbmVzczsKK+i4nCA+IHRvXC1zdHVtYmxlOwor6LiWID4gdHJhbXBsZVwtb247Civot6UgPiBzdGFtcFwtZmVldDsKK+i3kCA+IHRvXC10cmFtcGxlOwor6LeBID4gdHJhbXBsZVwtb247CivotqYgPiBjYW4nJ3RcLW1vdmU7CivosrMgPiBudW1iZXJcLXR3bzsKK+iyriA+IG51bWJlclwtdHdvOwor6LGIID4gaG93XD9cLXdoYXRcPzsKK+ixgCA+IHRvXC1xdWFycmVsOwor6K2tID4gdG9cLXNsYW5kZXI7CivorZsgPiB0b1wtc2xhbmRlcjsKK+itliA+IHRvXC1zbGFuZGVyOwor6K2SID4gcHJvbXVsZ2F0ZTsKK+isqiA+IHRvXC1jb25zdWx0Owor6Ku0ID4gaW5cLWhhcm1vbnk7Civoq58gPiB0b1wtZXhhbWluZTsKK+iqvCA+IGZyaWVuZHNoaXA7CivoqqkgPiB0b1wtcXVhcnJlbDsKK+iojiA+IHRvXC1kaXNjdXNzOwor6KeDID4gcGxhY2VcLW5hbWU7CivoprggPiBzdGVhbFwtbG9vazsKK+imtSA+IHN0ZWFsXC1sb29rOwor6KWhID4gc2hvcnRcLWNvYXQ7Civoo6ogPiB0aGVcLXNsZWV2ZTsKK+iisiA+IHBsYWNlXC1uYW1lOwor6KKgID4gYm9va1wtY292ZXI7Civoop8gPiBib29rXC1jb3ZlcjsKK+iguyA+IGJhcmJhcmlhbnM7Civon7YgPiByYXpvclwtY2xhbTsKK+ifqyA+IHNpbHZlcmZpc2g7Civon6MgPiBsb3VzZVwtZWdnczsKK+ifgSA+IGFcLW1vc3F1aXRvOwor6JucID4gd29vZFwtbG91c2U7CivomKIgPiB0YWxsXC1ncmFzczsKK+iWpyA+IGRyaWVkXC1mb29kOwor6JWhID4gaGVtcFwtc2VlZHM7Civok7cgPiBtb3RoZXJ3b3J0Owor6JK9ID4gYW50aHJhY2VuZTsKK+iSpiA+IHRvXC1tZWFzdXJlOwor6JKWID4gcGxhbnRcLW5hbWU7Civoka8gPiBvcnJpc1wtcm9vdDsKK+iOmiA+IGJhbWJvb1wtbWF0Owor6I21ID4gcG9sZW1vbml1bTsKK+iJrCA+IGxhcmdlXC1zaGlwOwor6ImRID4gc21hbGxcLWJvYXQ7CivoiLQgPiBzbWFsbFwtYm9hdDsKK+iGkyA+IGludGVzdGluZXM7CivohKogPiBlcnlzaXBlbGFzOwor6ISpID4gZHJpZWRcLW1lYXQ7CivohJcgPiBjb2luY2lkaW5nOwor6IK4ID4gc3ByZWFkXC1vdXQ7CivogqYgPiBsYXJnZVwtaGVhZDsKK+iBnyA+IHNvblwtaW5cLWxhdzsKK+e/gCA+IGZseVwtdXB3YXJkOwor576GID4gYnJvd25cLWJlYXI7Civnu4sgPiBsYXJnZVwtcm9wZTsKK+e5miA+IHdpbmRcLXJvdW5kOwor57mQID4gZmluZVwtY2xvdGg7CivnuLUgPiBwbGFpblwtc2lsazsKK+e4nyA+IGRlY29yYXRpdmU7CivnuIcgPiBkZWNvcmF0aW9uOwor57eyID4gaW5kaXN0aW5jdDsKK+e3nCA+IGNvdHRvblwtd2FkOwor57eHID4gYmxhY2tcLXNpbGs7CivntqIgPiBzaWxrXC1jbG90aDsKK+e1uiA+IGZpbmVcLWxpbmVuOwor57WiID4gdmFyaWVnYXRlZDsKK+e1myA+IHNpbGtcLWJyYWlkOwor57WWID4gZmluZVwtc2lsa3M7CivntZMgPiBvYnN0cnVjdGVkOwor57S8ID4gbGFyZ2VcLXJvcGU7CivntIggPiB3aGl0ZVwtc2lsazsKK+eyuyA+IHByb3Zpc2lvbnM7CivnsqYgPiBwaG9zcGhvcnVzOwor57ClID4gbGFyZ2VcLXBpcGU7Civnr7kgPiB0b1wtY29sbGVjdDsKK+evsiA+IGJyb29tc3RpY2s7Civnr4sgPiByYXR0b25cLWJveDsKK+euoCA+IGhvcnNlXC13aGlwOwor566aID4gYnJpZWZcLW5vdGU7Civnra8gPiBjaG9wc3RpY2tzOwor56uwID4gY2VudGlsaXRlcjsKK+eroSA+IGhlY3RvbGl0ZXI7Civnq5MgPiBtaWxsaWxpdGVyOwor56qwID4gYnJpY2tcLWtpbG47Civnqa0gPiB3aWxkXC1ncmFpbjsKK+eohiA+IHdpbGRcLWdyYWluOwor56aqID4gbWVkaXRhdGlvbjsKK+emmiA+IHBsYWNlXC1uYW1lOwor56aNID4gbWlzZm9ydHVuZTsKK+elhSA+IGNhbGFtaXRpZXM7Civno5EgPiBzdG9uZVwtbWlsbDsKK+ehqCA+IGdpYW50XC1jbGFtOwor56GZID4gc3RvbmVcLW1pbGw7CivnoYMgPiBhXC1yZWRcLW1vbGU7Civnn4EgPiB0b1wtbG9va1wtYXQ7CivnnZ8gPiBjbGVhclwtZXllZDsKK+echiA+IGluZGlzdGluY3Q7CivnlpUgPiBoZWFkXC1zb3JlczsKK+eVkyA+IHJpY2VcLWZpZWxkOwor55WBID4gdG9cLWdpdmVcLXRvOwor55SiID4gZ2l2ZVwtYmlydGg7CivnjpQgPiBncmVlblwtamFkZTsKK+eOhSA+IG15c3RlcmlvdXM7CivnjJggPiBmaWVyY2VcLWRvZzsKK+eKmyA+IGFcLWJsYWNrXC1veDsKK+eJjyA+IHByaXZ5XC1ob2xlOwor54mLID4gbWVtb3JhbmR1bTsKK+eIqyA+IHJhZGljYWxcLTg3Owor54eQID4gcGhvc3Bob3J1czsKK+eGhSA+IHNtb290aFwtb3V0Owor54OVID4gdG9cLWRlc3Ryb3k7CivngbogPiBjYW5kbGVcLWVuZDsKK+eBkiA+IHRvXC1zcGF0dGVyOwor5r++ID4gc3RyYWluXC1vdXQ7Civmv5kgPiB0b1wtcmV2b2x2ZTsKK+a/hyA+IGFzdHJpbmdlbnQ7Civmv4YgPiByaXZlclwtYmFuazsKK+a+gSA+IGFzdHJpbmdlbnQ7CivmvoAgPiBhc3RyaW5nZW50Owor5rq+ID4gbGlnaHRcLXJhaW47CivmuIsgPiBhc3RyaW5nZW50Owor5raYID4gcml2ZXJcLWJhbms7Civms4YgPiBsaWNlbnRpb3VzOwor5q6yID4gYW5uaWhpbGF0ZTsKK+ausSA+IGFubmloaWxhdGU7CivmrbcgPiB0YWtlXC1wbGFjZTsKK+asgyA+IHNhbmRhbHdvb2Q7Civmq74gPiB0aGVcLXBvbWVsbzsKK+arqyA+IHdvb2RlblwtcGVnOwor5qq8ID4gcmlkZ2VcLXBvbGU7CivmqbQgPiBwbGFjZVwtbmFtZTsKK+aoniA+IGRvb3JcLWhpbmdlOwor5qa8ID4gd2luZVwtZ2xhc3M7CivmpqYgPiB0cmVlXC10cnVuazsKK+alqiA+IHNtYWxsXC1kaXNoOwor5qS1ID4gcG9tcGVsbW91czsKK+aksyA+IHRoZVwtcGl2b3RzOwor5qSMID4gaW5zdHJ1bWVudDsKK+agtCA+IHNhbmRhbHdvb2Q7CivmoJsgPiB0aGVcLWxpY2hlZTsKK+agmCA+IGZydWl0XC10cmVlOwor5p+3ID4gaW5zdHJ1bWVudDsKK+adoiA+IHdvb2R3b3JrZXI7CivmnIwgPiBkaXN0cmlidXRlOwor5pusID4gZHJ5XC1pblwtc3VuOwor5pqYID4gcmlzaW5nXC1zdW47Civml5UgPiBwbGFjZVwtbmFtZTsKK+aXgCA+IHBsYWNlXC1uYW1lOwor5paiID4gdG9cLXBsdW5kZXI7CivmlpIgPiB2YXJpZWdhdGVkOwor5pSkID4gc3ByZWFkXC1vdXQ7CivmlIYgPiBkcml2ZVwtYXdheTsKK+aTqiA+IHRvXC10dWNrXC1pbjsKK+aTpSA+IGRyaXZlXC1hd2F5Owor5pK/ID4gdG9cLXBpY2tcLXVwOwor5pKxID4gdG9cLXNob3J0ZW47CivmjrEgPiBwaWNrcG9ja2V0Owor5o6OID4gZHJhZ1wtYXNpZGU7CivmjK0gPiBmaXNoXC1ib25lczsKK+aKhSA+IHRvXC1jb2xsZWN0Owor5omhID4gZHJhZ1wtYWxvbmc7CivmhrggPiB0b1wtZmxhdHRlcjsKK+aGjSA+IGJlXC1oYXVnaHR5Owor5oaAID4gdG9cLXJlbHlcLW9uOwor5oSuID4gZGlzdHJlc3NlZDsKK+aEkyA+IHByb2ZsaWdhdGU7Civmg48gPiBhdmFyaWNpb3VzOwor5oGbID4gZGlzb3JkZXJlZDsKK+aAsiA+IGJlXC1hbnhpb3VzOwor5b+LID4gdG9cLXJlbHlcLW9uOwor5b6nID4gZXZlcnl3aGVyZTsKK+W9vyA+IHJlc2VtYmxpbmc7CivlvI0gPiBudW1iZXJcLXR3bzsKK+W8jCA+IG51bWJlclwtb25lOwor5byHID4gY292ZXJcLW92ZXI7Civlu7EgPiBoYXJtb25pb3VzOwor5buAID4gdG9cLWNvbmNlYWw7CivlurQgPiBwbGFjZVwtbmFtZTsKK+W3vCA+IHBsYWNlXC1uYW1lOwor5beCID4gcGxhY2VcLW5hbWU7CivltZkgPiBwbGFjZVwtbmFtZTsKK+WztCA+IHN0ZWVwXC1oaWxsOwor5bOTID4gcGxhY2VcLW5hbWU7CivlsaIgPiBmcmVxdWVudGx5Owor5bGEID4gdGhlXC12YWdpbmE7CivlsIIgPiBtb25vcG9saXplOwor5a68ID4gdHlyYW5uaWNhbDsKK+WtvCA+IG1pc2ZvcnR1bmU7Civlqp8gPiBsdXN0XC1hZnRlcjsKK+WkhSA+IHRvXC1kZXNjZW5kOwor5aOpID4gZW1iYW5rbWVudDsKK+WjjiA+IGluc3RydW1lbnQ7CivlobIgPiBvcGVuXC1zcGFjZTsKK+WhpCA+IGluc3RydW1lbnQ7CivloK4gPiBhXC1ib3VuZGFyeTsKK+WggyA+IGNvbXBsaWFuY2U7CivlnZIgPiB0b1wtY29tcGFyZTsKK+WcpiA+IHdhdGVyXC1nYXRlOwor5ZuMID4gbG9xdWFjaW91czsKK+WatSA+IGdsdXR0b25vdXM7CivlmrIgPiByZWFkXC1hbG91ZDsKK+WZuCA+IG1ldHJpY1wtdG9uOwor5ZmQID4gcmVjZXB0YWNsZTsKK+WYgiA+IGNyeVwtbG91ZGx5Owor5ZetID4gcGxhY2VcLW5hbWU7CivllrggPiBwbGFjZVwtbmFtZTsKK+WWtiA+IGVuY2FtcG1lbnQ7CivllL0gPiB0b1wtdHdpdHRlcjsKK+WUnyA+IHBsYWNlXC1uYW1lOwor5ZG0ID4gYnJlYXRoZVwtb247Civlj4YgPiBjbG91ZHlcLXNreTsKK+WNnSA+IGhhaXJcLXN0eWxlOwor5YqPID4gdG9cLWJ1dGNoZXI7CivlioQgPiBicmllZlwtbm90ZTsKK+WJsyA+IGJyaWVmXC1ub3RlOwor5YmEID4gY3V0XC10aHJvYXQ7CivliLwgPiB0b1wtcGx1bmRlcjsKK+WIhCA+IGVkZ2VkXC10b29sOwor5Ye0ID4gdG9cLXJlbHlcLW9uOwor5YexID4gdHJpdW1waGFudDsKK+WHgiA+IHRvXC1yZXF1ZXN0Owor5YaYID4gdG9cLW1vdmVcLW9uOwor5YWfID4gdG9cLWFkdmFuY2U7CivlhIggPiBnb1wtYmV0d2VlbjsKK+WDqSA+IGNvdXJhZ2VvdXM7Civlga0gPiB0cmFuc2dyZXNzOwor5YGdID4gbm90XC1mYWNpbmc7CivlgIAgPiBiZXdpbGRlcmVkOwor5L+7ID4gdG9cLXByZXBhcmU7CivkvLcgPiBkZXNjZW5kZW50Owor5LubID4geW91bmdcLWdpcmw7Civkuq8gPiB0b1wtcmVjZWl2ZTsKK+S4qCA+IG51bWJlclwtb25lOwor5LarID4gZmluZVwtdGVldGg7CivktokgPiBndWluZWFcLXBpZzsKK+S1qiA+IHB1cmVcLWJsYWNrOwor5LWdID4gZGFya1wtYmxhY2s7CivktYcgPiB0b1wtZGlzbGlrZTsKK+SzlSA+IHRoZVwtcGlnZW9uOwor5LOMID4gdGhlXC1jdWNrb287Civks4AgPiB0aGVcLWN1Y2tvbzsKK+SyqyA+IHRoZVwtcGlnZW9uOwor5LKpID4gdGhlXC1jdWNrb287CivksqUgPiB0aGVcLXBpZ2VvbjsKK+SxnSA+IGJsYWNrXC1jYXJwOwor5LGGID4gc21hbGxcLWZpc2g7CivksYUgPiB0aGVcLW11bGxldDsKK+SxhCA+IGFcLWZsYXRmaXNoOwor5LC6ID4gYVwtZmxhdGZpc2g7CivksKwgPiB3aWxkXC1naG9zdDsKK+SwhCA+IHNob3J0XC1oYWlyOwor5K+UID4gdG9cLWluY2xpbmU7Civkr5EgPiB0aGVcLXBlbHZpczsKK+SvjCA+IHRoZVwtc2FjcnVtOwor5K+KID4gdGhlXC1wZWx2aXM7Civkr4ggPiB0aGVcLXBlbHZpczsKK+SuryA+IGZpbmVcLWhvcnNlOwor5K6NID4gY3VybGluZ1wtdXA7CivkrowgPiBmaW5lXC1ob3JzZTsKK+StuCA+IGFcLXN0YWxsaW9uOwor5K2jID4gcmljZVwtY2FrZXM7CivkrYQgPiBnbHV0dG9ub3VzOwor5Ky3ID4gd2VsbFwtZmVlZFwuOwor5KyiID4gZ2x1dHRvbm91czsKK+SrpSA+IGFcLXdyeVwtbmVjazsKK+SroyA+IGFcLXdyeVwtbmVjazsKK+SrniA+IGxhcmdlXC1oZWFkOwor5KuTID4gbGFyZ2VcLWhlYWQ7CivkqrogPiB0ZWV0aHJpZGdlOwor5KqgID4gcHVsdmVyaXplZDsKK+SpsSA+IGFcLXNjYWJiYXJkOwor5KmwID4gYVwtc2NhYmJhcmQ7CivkqaIgPiBhXC1zY2FiYmFyZDsKK+SpmSA+IGFcLXNjYWJiYXJkOwor5KmDID4gYXBwZWFyYW5jZTsKK+SpgSA+IHRoaW5cLWhhaXJzOwor5Ki9ID4gdG9cLXJlc29sdmU7CivkqKkgPiB0aGVcLXNwaXJpdDsKK+SooCA+IGNsb3VkeVwtc2t5Owor5Ke/ID4gdGhlXC1tYWdwaWU7Civkp7IgPiB0aGVcLW1hZ3BpZTsKK+SnsSA+IHRoZVwtcGlnZW9uOwor5KejID4gdG9cLXN0b3BcLXVwOwor5KavID4gdmVyeVwtZGVuc2U7CivkpqcgPiB0b1wtcXVhcnJlbDsKK+SmjSA+IHRvXC1pbmNsdWRlOwor5KWOID4gaW5zdHJ1bWVudDsKK+SkviA+IHRvXC1jb250YWluOwor5KS9ID4gZmFybVwtdG9vbHM7CivkpLwgPiBtZXRhbFwtd2lyZTsKK+SkuSA+IHRvXC1lbmdyYXZlOwor5KSHID4gd2hpdGVcLXdpbmU7CivkoqUgPiBpblwtaGFybW9ueTsKK+ShpyA+IGFcLWNhcnJpYWdlOwor5KGkID4gYVwtY2FycmlhZ2U7CivkoZogPiBpbXBsZW1lbnRzOwor5KGOID4gYVwtd2luZGxhc3M7CivkoLggPiBvYnNlcXVpb3VzOwor5KC2ID4gdG9cLXByb2plY3Q7CivkoKogPiBmb290cHJpbnRzOwor5KCpID4gdG9cLXVyaW5hdGU7CivkoKYgPiB0b1wtc3R1bWJsZTsKK+SgnyA+IHRvXC10cmlwXC11cDsKK+SgmCA+IG9uZVwtbGVnZ2VkOwor5J+8ID4gZm9vdHByaW50czsKK+SfqiA+IHJlcGVhdGVkbHk7Civkn6EgPiB0b1wtdHJhbXBsZTsKK+SfmSA+IHRvXC1zdGFnZ2VyOwor5J+EID4gaW5cLWFcLWh1cnJ5Owor5J6FID4gdG9cLWdpdmVcLXRvOwor5J2/ID4gaG9ub3VyYWJlbDsKK+SdtyA+IHNlY3VyaXRpZXM7CivknbQgPiB0b1wtcHJlc2VudDsKK+SdsSA+IHRvXC10cm91YmxlOwor5J2UID4gdGhlXC1iYWRnZXI7CivknJsgPiB0b1wtc2xhbmRlcjsKK+ScmSA+IG5vdFwtY2xldmVyOwor5JySID4gZXhwcmVzc2lvbjsKK+SckSA+IHRvXC1zbGFuZGVyOwor5JyLID4gdG9cLXN1c3BlbmQ7Civkm70gPiBsb3F1YWNpb3VzOwor5Ju8ID4gdG9cLXNsYW5kZXI7Civkm7IgPiB0b1wtZGVjZWl2ZTsKK+SbriA+IHRvXC1kZXN0cm95Owor5JurID4gdG9cLWRlY2VpdmU7Civkm6kgPiB0b1wtc2xhbmRlcjsKK+SbpiA+IGxpdGlnYXRpb247Civkm5YgPiBsb3F1YWNpb3VzOwor5JuVID4gdG9cLWZsYXR0ZXI7Civkm40gPiBsb3F1YWNpb3VzOwor5JuFID4gbG9xdWFjaW91czsKK+SbhCA+IHRvXC1jb25zb2xlOwor5Jq5ID4gdG9cLXByZXBhcmU7CivkmrAgPiB0b1wtcHJlcGFyZTsKK+SakyA+IHRvXC1vYnNlcnZlOwor5JqNID4gdG9cLWxvb2tcLWF0Owor5JqHID4gdG9cLW9ic2VydmU7CivkmbogPiB0b1wtb2JzZXJ2ZTsKK+SZmiA+IGN1cmxpbmdcLXVwOwor5JihID4gdGhlXC1zbGVldmU7CivkmJUgPiBwcm9zdGl0dXRlOwor5JazID4gamVsbHlcLWZpc2g7CivklaEgPiBjb21wb3NpdGFlOwor5JSYID4gZmlzaFwtcGFzdGU7Civkk7UgPiB0b1wtYmxvc3NvbTsKK+STpCA+IHZlZ2V0YXRpb247Civkk4YgPiB0b1wtY3V0XC10aGU7CivkkqIgPiBzd2VldFwtZmxhZzsKK+SRvyA+IHNtYWxsXC1ib2F0Owor5JGwID4gc21hbGxcLWJvYXQ7Civkka0gPiB3YXJcLXZlc3NlbDsKK+SRoSA+IHNtYWxsXC1ib2F0Owor5JGNID4gdG9cLXN3YWxsb3c7CivkkKIgPiB0b1wtd3JpbmtsZTsKK+SPrSA+IHRoZVwtY2hlZWtzOwor5I+MID4gdG9cLXZpYnJhdGU7Civkj4sgPiByZXNwZWN0ZnVsOwor5I6fID4gdG9cLWZhd25cLW9uOwor5I21ID4geW91bmdcLWdvYXQ7CivkjZ4gPiBhXC1kcmFnXC1uZXQ7CivkjZcgPiB0b1wtaGFuZ1wtdXA7CivkjZQgPiBhXC1mdWxsXC1uZXQ7CivkjIAgPiB0b1wtYXJyYW5nZTsKK+SLtiA+IHRvXC1zdHVtYmxlOwor5IuxID4gYVwtd2lsZFwteWFrOwor5Iq3ID4gYmxhY2tcLXNpbGs7CivkiqkgPiByaWNlXC1ncmF2eTsKK+SJjSA+IHRvXC1vYnNlcnZlOwor5IeOID4gdG9cLXN0YXJ0bGU7Civkh4cgPiB0aGVcLXBlb3BsZTsKK+SGkiA+IHRvXC1leGFtaW5lOwor5IaLID4gdGhlXC1hdXR1bW47CivkhZQgPiBkZWFkXC1jcm9wczsKK+SEnyA+IHRvXC13b3JzaGlwOwor5ISTID4gdG9cLXdvcnNoaXA7CivkhJEgPiB0b1wtd29yc2hpcDsKK+SEkCA+IHRvXC13b3JzaGlwOwor5ISGID4gdG9cLXdvcnNoaXA7CivkhIUgPiB0b1wtd29yc2hpcDsKK+SEgyA+IG1pc2ZvcnR1bmU7CivkhIEgPiB0b1wtd29yc2hpcDsKK+SChCA+IHRvXC1zdGFydGxlOwor5IG6ID4gdG9cLWxvb2tcLWF0Owor5IGvID4gdG9cLWxvb2tcLWF0Owor5IGeID4gYVwtcHJvdmluY2U7CivkgZggPiB0b1wtbG9va1wtYXQ7CivkgZUgPiB0b1wtbG9va1wtYXQ7CivkgZMgPiB0b1wtbG9va1wtYXQ7CivkgYkgPiB0b1wtZXhhbWluZTsKK+SBiCA+IHRvXC1leGFtaW5lOwor5IGBID4gc3RyYWJpc211czsKK+SAtiA+IHN0cmFiaXNtdXM7CivkgLEgPiB0b1wtZXhhbWluZTsKK+SAryA+IHRvXC1sb29rXC1hdDsKK+SAmSA+IHRvXC1sb29rXC1hdDsKK+SAhiA+IHRvXC1leGhhdXN0Owor476ZID4gZXJ5c2lwZWxhczsKK+O9qCA+IGZyYWdtZW50ZWQ7CivjvaMgPiBhXC1mcm9udGllcjsKK+O9mCA+IGJvcmRlcmxhbmQ7CivjvLkgPiBlYXJ0ZW53YXJlOwor47qzID4gYmxhY2tcLW1pY2E7CivjupMgPiBmb290cHJpbnRzOwor47qPID4gdGhlXC1iYWRnZXI7CivjuoUgPiB0aGVcLW1vbmtleTsKK+O5iCA+IGFcLWJsYWNrXC1veDsKK+O4qCA+IGFcLWJpZ1wtYnVsbDsKK+O4jCA+IHRvXC10d2lua2xlOwor47e3ID4gdGhpY2tcLXNvdXA7Civjt6EgPiB0b1wtc3RhcnRsZTsKK+O2rSA+IGFsbW9zdFwtZHJ5Owor47acID4gZGVlcFwtd2F0ZXI7CivjtZ8gPiBsaWdodFwtcmFpbjsKK+O1gCA+IHdhdGVyXC1mbG93Owor47ScID4gZXZlcnl3aGVyZTsKK+OzgSA+IHdhdGVyXC1mbG93Owor47KvID4gbG9uZ1wtaGFpcnk7Civjsp4gPiBzaG9ydFwtaGFpcjsKK+OylSA+IHZhcmllZ2F0ZWQ7CivjsowgPiBkb2cnJ3NcLWhhaXI7CivjsokgPiBlZ2dcLXNoZWxsczsKK+OxuCA+IHRvXC1leGhhdXN0Owor47GwID4gdG9cLWRlc3Ryb3k7CivjsaYgPiB0b1wtZGlzY2FyZDsKK+OxpCA+IHRvXC1leGhhdXN0Owor47GcID4gcGVzdGlsZW5jZTsKK+OxmyA+IHRvXC1kZXN0cm95Owor47GaID4gdG9cLWRlc3Ryb3k7CivjsLggPiB0b1wtY29sbGVjdDsKK+OwkSA+IGZydWl0XC10cmVlOwor46+HID4gYVwtc3RvY2thZGU7CivjrZggPiBhXC1zY2FiYmFyZDsKK+OtiSA+IGZhcm1cLXRvb2xzOwor46yxID4gdG9cLXJlcGxhY2U7CivjrKogPiB0b1wtZm9sZFwtdXA7CivjrJwgPiB0b1wtYWR2YW5jZTsKK+OrpCA+IGFcLWxvbmdcLWRheTsKK+OqtCA+IHRvXC1tZWFzdXJlOwor46qcID4gdG9cLW1lYXN1cmU7CivjqpogPiB0b1wtc2NhdHRlcjsKK+OqlCA+IHRvXC1zY2F0dGVyOwor46qMID4gdG9cLWxlYWRcLW9uOwor46qJID4gdG9cLWNvbWJpbmU7CivjqbkgPiB0b1wtcGlsZVwtb247CivjqbggPiB0b1wtcGlsZVwtb247CivjqaogPiB0b1wtY29sbGVjdDsKK+OpniA+IHRvXC1iYWNrXC11cDsKK+OpnSA+IHRvXC1jb21wYXJlOwor46maID4gdG9cLWNvbGxlY3Q7CivjqZYgPiB0b1wtYmFja1wtdXA7CivjqY0gPiB0b1wtYmFja1wtdXA7CivjqYAgPiB0b1wtcmVjZWl2ZTsKK+OovyA+IHRvXC1yZWNlaXZlOwor46izID4gYVwtY3VwYm9hcmQ7CivjqLIgPiB0b1wtYmFja1wtdXA7CivjqK8gPiB0b1wtZW5sYXJnZTsKK+OoriA+IHRvXC1saWZ0XC11cDsKK++opiA+IG1ldHJvcG9saXM7CivjqIogPiB0b1wtZGlzY2FyZDsKK++nuCA+IGJhbWJvb1wtaGF0Owor76euID4gcGhvc3Bob3J1czsKK++nnCA+IHByb3NwZXJvdXM7Civvp5EgPiBudW1iZXJcLXNpeDsKK++mtyA+IHN3ZWV0XC13aW5lOwor46a2ID4gcmVwZWF0ZWRseTsKK+OmqSA+IG1lbGFuY2hvbHk7CivjppogPiBtZWxhbmNob2x5Owor76aMID4gdGFrZVwtcGxhY2U7CivvpoQgPiBzdHJhaW5cLW91dDsKK+OmgiA+IGNvbnN0YW50bHk7CivjpbYgPiB0b1wtZmlsbFwtdXA7CivvpaogPiBsYXJnZVwtcm9wZTsKK+OloyA+IHRvXC1iZW5lZml0Owor46WaID4gbWVsYW5jaG9seTsKK++liyA+IGZyZXF1ZW50bHk7CivjpLcgPiB0b1wtZGViYXVjaDsKK+OkqSA+IHRvXC1yZXNwZWN0Owor46SQID4gZGlzaGFybW9ueTsKK++kgCA+IGhvd1w/XC13aGF0XD87Civjo70gPiB0b1wtZm9yZ2l2ZTsKK+OjhSA+IGJvd1wtc3RyaW5nOwor46OAID4gdG9cLXJlYm91bmQ7Civjoq0gPiBhXC1ib3dcLWNhc2U7CivjopogPiBhXC1jb3JyaWRvcjsKK+OijyA+IGFcLWNlc3Nwb29sOwor46GlID4gdG9cLWN1cmxcLXVwOwor456gID4gbWFsZVwtb3JnYW47Civjno4gPiBib2R5XC13YXN0ZTsKK+OehiA+IG9uZVwtbGVnZ2VkOwor452vID4gdG9cLXNvam91cm47CivjnIUgPiB0b1wtZmF3blwtb247Civjm6ogPiB0b1wtc2xhbmRlcjsKK+OaoCA+IGZ1bGxcLWdyb3duOwor45qPID4gdG9cLXNjYXR0ZXI7CivjmbogPiBjcm9zc1wtcm9hZDsKK+OZtCA+IHRvXC1jb25jZWFsOwor45myID4gdG9cLXN0b3BcLXVwOwor45mJID4gcHJvc3Blcm91czsKK+OYvyA+IHRvXC1maWxsXC11cDsKK+OYuyA+IHRvXC1zdG9wXC11cDsKK+OYpyA+IHByZWNlZGVuY2U7CivjmJ0gPiB0b1wtdGFrZVwtaW47Civjl6wgPiB0aGlja1wtbGlwczsKK+OXqyA+IHRvXC13aGlzcGVyOwor45eiID4gbG9xdWFjaW91czsKK+OXiyA+IHRoZVwtdGhyb2F0Owor45eHID4gdG9cLXN3YWxsb3c7Civjl4QgPiB0b1wtZGVjZWl2ZTsKK+OWtiA+IHRvXC1zd2FsbG93Owor45aYID4gdG9cLXN0YXJ0bGU7CivjloYgPiB0b1wtY29uZGVtbjsKK+OVqyA+IHRvXC1pbWl0YXRlOwor45WNID4gdG9cLWhlYXBcLXVwOwor45WGID4gZmluZVwtc3RvbmU7CivjlLcgPiB0b1wtc2VjcmV0ZTsKK+OUmCA+IHRvXC1kZWdyYWRlOwor45STID4gdG9cLXN0YW1tZXI7CivjlIwgPiB0b1wtY3V0XC1vZmY7Civjk7ogPiBjYXN0cmF0aW9uOwor45OuID4gdG9cLWVuZ3JhdmU7Civjk54gPiB0b1wtZW5ncmF2ZTsKK+OTgiA+IHR5cmFubmljYWw7CivjkrcgPiB0b1wtcHJvc3BlcjsKK+OSnSA+IHRvXC1kZWNlaXZlOwor45KcID4gcmVzcGVjdGZ1bDsKK+OSiiA+IGxvcXVhY2lvdXM7CivjkZwgPiB0b1wtZW5ncmF2ZTsKK+ORgiA+IHRvXC1pbWl0YXRlOwor45CkID4gdG9cLWltcGxvcmU7CivkuoYgPiB0b1wtZmluaXNoOwor5a2QID4gb2Zmc3ByaW5nOwor5b65ID4gcGVuZXRyYXRlOwor6KaBID4gbmVjZXNzYXJ5Owor6L6xID4gaHVtaWxpYXRlOwor552AID4gbWFrZVwtbW92ZTsKK+aIkCA+IGNvbXBsZXRlZDsKK+edoyA+IHN1cGVydmlzZTsKK+i8ryA+IGdhdGhlclwtdXA7CivlvKUgPiBleHRlbnNpdmU7Civnm6MgPiBzdXBlcnZpc2U7Civnvo4gPiBiZWF1dGlmdWw7Civlu4IgPiBzaWRlXC1yb29tOwor6ZeuID4gYXNrXC1hYm91dDsKK+W6rSA+IGNvdXJ0eWFyZDsKK+eZgiA+IGJlXC1oZWFsZWQ7Civnl7ogPiBwYXJhbHlzaXM7Civlt64gPiB0b1wtZGlmZmVyOwor6Zq+ID4gZGlmZmljdWx0Owor6LaFID4ganVtcFwtb3ZlcjsKK+eVsCA+IGRpZmZlcmVudDsKK+S6siA+IHJlbGF0aXZlczsKK+eVqyA+IGRlbGluZWF0ZTsKK+eVnCA+IGxpdmVzdG9jazsKK+eVkSA+IGRyeVwtZmllbGQ7CivnlJggPiBzd2VldG5lc3M7CivorqQgPiByZWNvZ25pemU7CivosrQgPiBleHBlbnNpdmU7Civosp0gPiBzZWFcLXNoZWxsOwor6ZmiID4gY291cnR5YXJkOwor6L6+ID4gYXJyaXZlXC1hdDsKK+S8lyA+IG11bHRpdHVkZTsKK+ivhiA+IHJlY29nbml6ZTsKK+WAkiA+IGZhbGxcLW92ZXI7CivnjqkgPiBwbGF5XC13aXRoOwor5YOPID4gYVwtcGljdHVyZTsKK+WuhSA+IHJlc2lkZW5jZTsKK+aNriA+IHRvXC1vY2N1cHk7Civora8gPiB0cmFuc2xhdGU7CivorasgPiB0YWxrYXRpdmU7CivorZggPiByZWNvZ25pemU7CivpgKAgPiBjb25zdHJ1Y3Q7CivlqrwgPiBvbGRcLXdvbWFuOwor54qgID4gc2FjcmlmaWNlOwor6KqNID4gcmVjb2duaXplOwor54mSID4gZG9jdW1lbnRzOwor54mMID4gc2lnbmJvYXJkOwor5amGID4gb2xkXC13b21hbjsKK+iosyA+IHRyYW5zbGF0ZTsKK+eIkCA+IGZpcmVwbGFjZTsKK+S5hSA+IGxvbmdcLXRpbWU7Civlpr4gPiBjb25jdWJpbmU7CivliJ0gPiBiZWdpbm5pbmc7CivopqogPiByZWxhdGl2ZXM7CivpmaQgPiBlbGltaW5hdGU7CivlhrUgPiBjb25kaXRpb247CivkubEgPiBjb25mdXNpb247CivliJsgPiBlc3RhYmxpc2g7Civnpo8gPiBoYXBwaW5lc3M7CivovpEgPiBnYXRoZXJcLXVwOwor5YGHID4gZmFsc2Vob29kOwor56m/ID4gcGVuZXRyYXRlOwor6KGGID4gbXVsdGl0dWRlOwor6aG+ID4gbG9va1wtYmFjazsKK+igtiA+IHNpbGt3b3JtczsKK+S4vSA+IGJlYXV0aWZ1bDsKK+a4kCA+IGdyYWR1YWxseTsKK+W8giA+IGRpZmZlcmVudDsKK+eepyA+IGdsYW5jZVwtYXQ7Civln5IgPiBlbmNsb3N1cmU7Civln4MgPiBmaW5lXC1kdXN0Owor6J6iID4gZ2xvd1wtd29ybTsKK+mAgCA+IHN0ZXBcLWJhY2s7CivonLsgPiBkcmFnb25mbHk7CivmvLggPiBncmFkdWFsbHk7Civnv7sgPiBmbGlwXC1vdmVyOwor5ZyPID4gdG9cLWNpcmNsZTsKK+aZriA+IHVuaXZlcnNhbDsKK+ibuSA+IGNocnlzYWxpczsKK+S4tCA+IGRyYXdcLW5lYXI7Civom4kgPiBkcmFnb25mbHk7CivljY8gPiBiZVwtdW5pdGVkOwor6bqXID4gYmVhdXRpZnVsOwor6JqVID4gc2lsa3dvcm1zOwor5rmvID4gaG90XC13YXRlcjsKK+S+iyA+IHByZWNlZGVudDsKK+i0tSA+IGV4cGVuc2l2ZTsKK+a0siA+IGNvbnRpbmVudDsKK+adviA+IHBpbmVcLXRyZWU7CivkvJkgPiBjb21wYW5pb247Civmr6sgPiBmaW5lXC1oYWlyOwor6JWOID4gYnVja3doZWF0Owor6L6TID4gdHJhbnNwb3J0Owor5rOBID4gY29uZGl0aW9uOwor55uRID4gc3VwZXJ2aXNlOwor5oqYID4gYnJlYWtcLW9mZjsKK+axsCA+IGV4Y2Vzc2l2ZTsKK+WQmyA+IHNvdmVyZWlnbjsKK+WNsSA+IGRhbmdlcm91czsKK+amgiA+IGdlbmVyYWxseTsKK+mAjyA+IHBlbmV0cmF0ZTsKK+WciCA+IHRvXC1jaXJjbGU7CivmroogPiBkaWZmZXJlbnQ7CivmroYgPiBkYW5nZXJvdXM7CivljoQgPiBhZHZlcnNpdHk7CivmsYcgPiBjb25jb3Vyc2U7CivljokgPiB3aGV0c3RvbmU7CivpmYQgPiBhZGhlcmVcLXRvOwor6IKpID4gc2hvdWxkZXJzOwor6a2YID4gbmlnaHRtYXJlOwor5Y2UID4gYmVcLXVuaXRlZDsKK+iNkiA+IHdhc3RlbGFuZDsKK+mssSA+IGx1eHVyaWFudDsKK+ivkSA+IHRyYW5zbGF0ZTsKK+WMoCA+IGNyYWZ0c21hbjsKK+asnSA+IGx1eHVyaWFudDsKK+S8tCA+IGNvbXBhbmlvbjsKK+WMgiA+IGZyYWdyYW5jZTsKK+WLuCA+IHJlY29tbWVuZDsKK+WLpyA+IHJlY29tbWVuZDsKK+mjmCA+IHdoaXJsd2luZDsKK+iJtiA+IGJlYXV0aWZ1bDsKK+WJtSA+IGVzdGFibGlzaDsKK+eCriA+IGxhcmdlXC1ndW47CivotJ0gPiBzZWFcLXNoZWxsOwor6YOOID4gZ2VudGxlbWFuOwor6ZmqID4gYWNjb21wYW55Owor6IeoID4gZHJhd1wtbmVhcjsKK+WHnSA+IGNvYWd1bGF0ZTsKK+WGlyA+IGV4Y2Vzc2l2ZTsKK+WKnSA+IHJlY29tbWVuZDsKK+WJqSA+IGxlZnRvdmVyczsKK+mlkiA+IGJvdW50aWZ1bDsKK+eWlyA+IGJlXC1oZWFsZWQ7CivmsaQgPiBob3RcLXdhdGVyOwor5b27ID4gcGVuZXRyYXRlOwor6aOcID4gZmxpcFwtb3ZlcjsKK+WDmiA+IGNvbXBhbmlvbjsKK+iCmCA+IHRoZVwtZWxib3c7CivogpYgPiBsb29rXC1saWtlOwor5pioID4geWVzdGVyZGF5Owor5pqCID4gdGVtcG9yYXJ5Owor6YCSID4gaGFuZFwtb3ZlcjsKK+mhpyA+IGxvb2tcLWJhY2s7CivnpaUgPiBnb29kXC1sdWNrOwor5YC5ID4gdGVtcGVyYXRlOwor6ImwID4gZGlmZmljdWx0Owor5LuXID4gcmVseVwtdXBvbjsKK+afvyA+IHBlcnNpbW1vbjsKK+mUriA+IGRvb3JcLWJvbHQ7Civmnq8gPiBkcmllZFwtb3V0Owor6I6xID4gZ29vc2Vmb290Owor6LWUID4gaW5kZW1uaWZ5Owor6YCiID4gY29tZVwtdXBvbjsKK+edgSA+IG9wZW5cLWV5ZXM7CivlmL8gPiBiZVwtc2lsZW50Owor5LuuID4gZmFsc2Vob29kOwor6ZujID4gZGlmZmljdWx0Owor6LSqID4gYmVcLWdyZWVkeTsKK+aaqyA+IHRlbXBvcmFyeTsKK+mAnSA+IHBhc3NcLWF3YXk7CivkuoIgPiBjb25mdXNpb247Civoib4gPiBhcnRlbWlzaWE7CivoiqwgPiBmcmFncmFuY2U7Civooo0gPiBsb25nXC1nb3duOwor5YakID4gZ3JpZXZhbmNlOwor6aW2ID4gYm91bnRpZnVsOwor54KJID4gZmlyZXBsYWNlOwor6L+qID4gZW5saWdodGVuOwor5ZiJID4gZXhjZWxsZW50Owor6Za+ID4gdGhyZXNob2xkOwor57a+ID4gdGhpblwtc2lsazsKK+iJsyA+IGJlYXV0aWZ1bDsKK+iGgCA+IHVwcGVyXC1hcm07CivnibogPiBzYWNyaWZpY2U7Civpob0gPiBvYnN0aW5hdGU7CivmrYkgPiBkZWZpY2llbnQ7CivluIUgPiBjb21tYW5kZXI7Civmhr4gPiB0b1wtcmVncmV0Owor5YqIID4gY3V0XC1hcGFydDsKK+aLgiA+IHNoYWtlXC1vZmY7CivpjbUgPiBkb29yXC1ib2x0Owor562IID4gYXJyb3dcLWVuZDsKK+aLoCA+IHRvXC1vY2N1cHk7CivljqIgPiBzaWRlXC1yb29tOwor54asID4gY29va1wtZG93bjsKK+aJlSA+IHNoYWtlXC1vZmY7Civlr5MgPiByZXNpZGVuY2U7CivnqLwgPiBzb3dcLWdyYWluOwor5oGNID4gc2VlbWluZ2x5Owor57ujID4gZW1icm9pZGVyOwor5oeDID4gY291cnRlb3VzOwor6KGsID4gdW5kZXJ3ZWFyOwor5oWKID4gdG9cLXJlc2VudDsKK+iGiiA+IHNob3VsZGVyczsKK+a9rSA+IGRlZXBcLXBvb2w7Civml7cgPiBleHRlbnNpdmU7CivnoZ0gPiBzYWx0cGV0ZXI7CivpgZQgPiBhcnJpdmVcLWF0Owor6YC5ID4gYXJyaXZlXC1hdDsKK+mqpCA+IHByb2NlZHVyZTsKK+iLuSA+IGFydGVtaXNpYTsKK+W/vyA+IGdldFwtYW5ncnk7CivlnaAgPiBmYWxsXC1kb3duOwor6J22ID4gYnV0dGVyZmx5Owor54SJID4gdGhlcmV1cG9uOwor56aAID4gcmVwb3J0XC10bzsKK+aMqyA+IHB1c2hcLWRvd247Civps4QgPiBhbGxpZ2F0b3I7CivosJAgPiBoYXJtb25pemU7CivlsY4gPiBleGNyZW1lbnQ7Civlj6ggPiB0YWxrYXRpdmU7CivokbEgPiBzY2FsbGlvbnM7CivmnqMgPiBkYXRlXC10cmVlOwor5L6jID4gY29tcGFuaW9uOwor6LC0ID4gcmVwcmltYW5kOwor5rG5ID4gdHVyYnVsZW50Owor55irID4gcGFyYWx5c2lzOwor6JSaID4gbHV4dXJpYW50Owor5rO7ID4gZHJhaW5cLW9mZjsKK+S/rSA+IHRlbXBlcmF0ZTsKK+eAkSA+IHdhdGVyZmFsbDsKK+idtCA+IGJ1dHRlcmZseTsKK+aoiiA+IGFcLXJhaWxpbmc7CivmlZsgPiBkcmF3XC1iYWNrOwor56anID4gaGFwcGluZXNzOwor6Iy1ID4gYVwtY3VzaGlvbjsKK+ajlSA+IGhlbXBcLXBhbG07CivlqJ8gPiBiZWF1dGlmdWw7CivlgKkgPiBiZWF1dGlmdWw7CivovpcgPiB0dXJuXC1vdmVyOwor5oGkID4gc2hvd1wtcGl0eTsKK+S+iCA+IGx1eHVyaW91czsKK+WkpSA+IGNvbXBhbmlvbjsKK+aygSA+IHNvYWtcLWludG87Civmp5sgPiB0aHJlc2hvbGQ7CivljKMgPiBzbWFsbFwtYm94Owor5o2OID4gdG9cLXNlbGVjdDsKK+eXqiA+IHBhcmFseXNpczsKK+eXniA+IGR5c3BlcHNpYTsKK+edkCA+IHNxdWludFwtYXQ7CivlnqYgPiBjdWx0aXZhdGU7CivmtZIgPiByaXZlcmJhbms7CivokbUgPiBzdW5mbG93ZXI7CivnnasgPiBleWVsYXNoZXM7Civnl4ogPiBiZVwtaGVhbGVkOwor5ZO6ID4gY2hld1wtZm9vZDsKK+eroyA+IHRlcm1pbmF0ZTsKK+WblCA+IG11dHRlcmluZzsKK+iXkCA+IGRpc3JlZ2FyZDsKK+W/kiA+IGV4Y2Vzc2l2ZTsKK+WfoCA+IHBvcnRcLWNpdHk7CivojaQgPiBtZWF0XC1kaWV0Owor56W6ID4gZ29vZFwtbHVjazsKK+ickiA+IG1pbGxpcGVkZTsKK+iPhyA+IG11c2hyb29tczsKK+ixmiA+IHNtYWxsXC1waWc7CivmspMgPiBjb25uZWN0ZWQ7CivlvKkgPiBjcm9zc1wtYm93Owor5q6HID4gZGllXC15b3VuZzsKK+iQpCA+IGdsb3dcLXdvcm07CivmoIggPiB3YXJlaG91c2U7CivphrogPiBnZXRcLWRydW5rOwor6JyIID4gY2VudGlwZWRlOwor5L28ID4gYmVhdXRpZnVsOwor6JqjID4gY2VudGlwZWRlOwor5oSrID4gZ3VpbGVsZXNzOwor6LCZID4gdmVyc2VkXC1pbjsKK+eGuSA+IGRpbVwtbGlnaHQ7CivmgIIgPiBpbnN0aWdhdGU7CivppqUgPiBmcmFncmFuY2U7Civmgb8gPiBpbnN0aWdhdGU7CivpgZsgPiB0YWtlXC13YWxrOwor55e5ID4gcGFyYWx5c2lzOwor6bq+ID4gYVwtcGVubmFudDsKK+WqsiA+IG1hcnJ5XC1vZmY7CivonJMgPiBkcmFnb25mbHk7CivplYEgPiBtYWduZXNpdW07CivmpLAgPiBwYWxtXC10cmVlOwor56C6ID4gd2hldHN0b25lOwor55eiID4gZHlzZW50ZXJ5Owor5ZeRID4gZWF0XC1zZWVkczsKK+iaryA+IGVhcnRod29ybTsKK+icmiA+IGNvY2tyb2FjaDsKK+iakyA+IGVhcnRod29ybTsKK+mthyA+IG5pZ2h0bWFyZTsKK+mYhiA+IGhpZ2hcLWRvb3I7CivlpqogPiBvbGRcLXdvbWFuOwor5pOAID4gcm9sbFwtZmxhdDsKK+WmjSA+IGJlYXV0aWZ1bDsKK+WnoyA+IGJlYXV0aWZ1bDsKK+iipCA+IGxvbmdpdHVkZTsKK+m6nSA+IG11c2tcLWRlZXI7CivojZ8gPiBsdXh1cmlhbnQ7CivkvbsgPiBmcml2b2xvdXM7Civpkr4gPiBwb3Rhc3NpdW07Civpo5kgPiB3aGlybHdpbmQ7CivlrZEgPiByZW1haW5pbmc7CivmqoQgPiBjYWxsXC1hcm1zOwor6ZqNID4gZHJ5XC1kaXRjaDsKK+ivvyA+IHBhc3NcLWJ1Y2s7Civnu6sgPiB0aGluXC1zaWxrOwor6YCEID4gYVwtc3VybmFtZTsKK+aijyA+IGhhbmRjdWZmczsKK+eliSA+IGhhcHBpbmVzczsKK+ifkSA+IGNvY2tyb2FjaDsKK+mSuiA+IGJyb2FkXC1heGU7CivojZ4gPiBidWNrd2hlYXQ7Civmn5EgPiB0YW5nZXJpbmU7CivlqbUgPiBiZWF1dGlmdWw7CivlqIkgPiBiZWF1dGlmdWw7CivorqcgPiBjb25mdXNpb247CivkuZwgPiB0b1wtc3F1aW50Owor5L+mID4gY29tcGFuaW9uOwor54euID4gaGFybW9uaXplOwor6aOaID4gd2hpcmx3aW5kOwor5ae5ID4gYmVhdXRpZnVsOwor5oSOID4gb2JzdGluYXRlOwor5aiyID4gYVwtZ29kZGVzczsKK+W/nSA+IGRpc2dyYWNlZDsKK+iRsyA+IGx1eHVyaWFudDsKK+ivriA+IGNyaXRpY2l6ZTsKK+mzjyA+IGh1Z2VcLWZpc2g7CivonIcgPiBqZWxseWZpc2g7Civliq0gPiBlbmNvdXJhZ2U7CivlhZYgPiBlc3RhYmxpc2g7CivlkbYgPiB0YWxrYXRpdmU7CivnmaMgPiByaW5nd29ybXM7Civnu6YgPiBzaWxrXC1jb3JkOwor6ZK4ID4gcGx1dG9uaXVtOwor6aaXID4gY2hlZWtib25lOwor6ZSwID4gbWFuZ2FuZXNlOwor5L6qID4gYVwtY29tcGFueTsKK+WHqyA+IHdpbGRcLWR1Y2s7Civnl7EgPiBoZWF0XC1yYXNoOwor55eIID4gY2FyYnVuY2xlOwor5oKMID4gYnJvdGhlcmx5Owor5Ya8ID4gXChzdXJuYW1lXCk7CivpuacgPiBwYXJ0cmlkZ2U7CivmgpIgPiBzb3Jyb3dmdWw7CivmgIMgPiByZWdyZXRmdWw7CivlopIgPiB3ZXRcLXRpbHRoOwor6Ki+ID4gYmFkXC1tb3V0aDsKK+WcriA+IGRlc3Ryb3llZDsKK+myiCA+IHNlYVwtcGVyY2g7CivpkpogPiBwbHV0b25pdW07Civnl78gPiBwYXJhbHlzaXM7CivmlIkgPiB0b1wtYmVja29uOwor6bKHID4gc2hlYXRmaXNoOwor6IaIID4gZGlhcGhyYWdtOwor54qNID4gYVwtYnVsbG9jazsKK+WmpCA+IGJlYXV0aWZ1bDsKK+mUlyA+IGdlcm1hbml1bTsKK+mOjyA+IHB1cmVcLWdvbGQ7CivplYUgPiBhbWVyaWNpdW07CivovoIgPiBhXC1jaGFyaW90Owor5aqqID4gb2xkXC13b21hbjsKK+WtkyA+IGJlYXV0aWZ1bDsKK+i3uCA+IGNsZWFyXC13YXk7CivnlpQgPiBjYXJidW5jbGU7CivnhbMgPiBiZVwtYnVybmVkOwor54m+ID4gdG9cLW9wcG9zZTsKK+aYgCA+IHN1blwtbGlnaHQ7CivkuakgPiB0b1wtZGl2aW5lOwor576fID4gaHlkcm94aWRlOwor6I29ID4gY29yaWFuZGVyOwor6LC1ID4gdGFsa2F0aXZlOwor57ugID4gd2VsbFwtcm9wZTsKK+WTkyA+IGdhcnJ1bG91czsKK+iErCA+IGFcLWJsYWRkZXI7CivmiKEgPiBzdWJqdWdhdGU7CivovocgPiBoYW5kXC1jYXJ0Owor6ZiIID4gdGhyZXNob2xkOwor6bmaID4gY29ybW9yYW50Owor6ZWeID4gYXJyb3doZWFkOwor6I+wID4gd2lsZFwtcmljZTsKK+igliA+IGluY2hcLXdvcm07Civpk6sgPiBsYXJnZVwtaG9lOwor5rCYID4gZGV1dGVyaXVtOwor6bu+ID4gdG9cLXN0cml2ZTsKK+mVpyA+IGxhbnRoYW51bTsKK+WeoSA+IHBsb3dcLXNvaWw7CivngpQgPiBhY2V0eWxlbmU7CivpuKwgPiBjb3Jtb3JhbnQ7CivplbEgPiB5dHRlcmJpdW07CivpkpUgPiBuZW9keW1pdW07Civlv60gPiBkZWxpZ2h0ZWQ7CivojqogPiBhcnRlbWlzaWE7Civoi7QgPiBzYWNrY2xvdGg7CivosLMgPiB0b1wtZGVjaWRlOwor6ZKvID4gcGFsbGFkaXVtOwor56KyID4gdGVsbHVyaXVtOwor55KpID4gamFkZVwtcmluZzsKK+mYgyA+IHRocmVzaG9sZDsKK+mlqyA+IHN1cmZlaXRlZDsKK+aSmSA+IGVjb25vbWl6ZTsKK+iTvCA+IHNtYXJ0d2VlZDsKK+mllCA+IGJyZWFrZmFzdDsKK+mUtiA+IHN0cm9udGl1bTsKK+ehjiA+IHdoZXRzdG9uZTsKK+aYgyA+IGFmdGVybm9vbjsKK+WUqiA+IHRvXC1yZWNpdGU7CivolYggPiBtdXNocm9vbXM7CivlhIcgPiBpbmdlbmlvdXM7CivpsrQgPiBmaXNoXC1ndXRzOwor6bKFID4gZmlzaFwtbmFtZTsKK+igiiA+IGNvY2tyb2FjaDsKK+iasCA+IG1pbGxpcGVkZTsKK+mTjSA+IGJlcnlsbGl1bTsKK+eGsyA+IHRvXC1zcHJlYWQ7Civog40gPiBndWFuaWRpbmU7Civov5UgPiBvYnN0aW5hdGU7CivpspAgPiBnbG9iZWZpc2g7CivphZAgPiBhbmh5ZHJpZGU7CivooYQgPiBlcGlzdGF4aXM7Civnn6cgPiBtdWNoXC1tb3JlOwor5oKrID4gc2luY2VyaXR5Owor6IamID4gcGhvc3BoaW5lOwor57yjID4gZmluZVwtc2lsazsKK+WuhCA+IGFcLXRyYWl0b3I7CivpmIwgPiB3ZW5cLXhpYW5nOwor5ZO/ID4gZXhjZWxsZW50Owor6Zi9ID4gZGFuZ2Vyb3VzOwor5YymID4gc21hbGxcLWJveDsKK+mFniA+IHBodGhhbGVpbjsKK+m9syA+IHRvb3RobGVzczsKK+m9rSA+IHRvb3RoYWNoZTsKK+m7vSA+IHRvXC1zdHJpdmU7CivpuJUgPiBjb3Jtb3JhbnQ7Civpt74gPiBhXC1zd2FsbG93Owor6betID4gd2F0ZXJcLWhlbjsKK+m3pyA+IGNvcm1vcmFudDsKK+m3pSA+IHRoZVwtZWdyZXQ7Civpt5MgPiBwYXJ0cmlkZ2U7Civpt48gPiBiaXJkXC1uYW1lOwor6beGID4gYmlyZFwtbmFtZTsKK+m2vyA+IGNvcm1vcmFudDsKK+m2oSA+IGNyb3NzYmlsbDsKK+m1tyA+IGNvXC13b3JrZXI7Civps6wgPiB3aWxkXC1kdWNrOwor6bOnID4gd2lsZFwtZHVjazsKK+mzoiA+IHNuYWtlaGVhZDsKK+myjiA+IGtpbmdcLWNyYWI7CivpsbggPiBzZWFcLXBlcmNoOwor6bG3ID4gY3JvY29kaWxlOwor6bGnID4gc25ha2VoZWFkOwor6bGfID4ga2luZ1wtY3JhYjsKK+mxmyA+IGZpc2hcLW5hbWU7CivpsKUgPiBodWdlXC1maXNoOwor6bCQID4gYWxsaWdhdG9yOwor6a+gID4gdG9cLWNvbmZlcjsKK+mvnSA+IGZpc2hcLWd1dHM7CivprqYgPiBzbmFrZWZpc2g7Civpro4gPiBzaGVhdGZpc2g7CivproAgPiBzbmFrZWZpc2g7CivprbIgPiBmaXNoXC1uYW1lOwor6a2eID4gZmlzaFwtdHJhcDsKK+mssCA+IGx1eHVyaWFudDsKK+msliA+IHdpbGRcLWhhaXI7Civpq6cgPiBsb25nXC1oYWlyOwor6auXID4gdGhlXC1za3VsbDsKK+mqrSA+IHNoaW5cLWJvbmU7CivpqZ8gPiBwcm9jZWR1cmU7CivpqKcgPiB0YW5cLWhvcnNlOwor6aiQID4gdG9cLXZlcml0eTsKK+mnuCA+IGdhbGxvcGluZzsKK+mmnSA+IGZyYWdyYW5jZTsKK+mmmyA+IGZyYWdyYW5jZTsKK+mmgiA+IGxlZnRvdmVyczsKK+mloCA+IHJpY2VcLWNha2U7CivppLogPiByaWNlXC1jYWtlOwor6aSxID4gZHJ5XC1nb29kczsKK+mklSA+IGxlZnRvdmVyczsKK+mkiCA+IHJpY2VcLWNha2U7Civpo6sgPiBzdXJmZWl0ZWQ7Civpo6UgPiByaWNlXC1jYWtlOwor6aOIID4gd2hpcmx3aW5kOwor6aOHID4gd2hpcmx3aW5kOwor6aOGID4gd2hpcmx3aW5kOwor6aOEID4gd2hpcmx3aW5kOwor6aODID4gd2hpcmx3aW5kOwor6aK3ID4gd2hpcmx3aW5kOwor6aK0ID4gd2hpcmx3aW5kOwor6aCvID4gY2hlZWtib25lOwor6aCRID4gb2JzdGluYXRlOwor6aCEID4gY2hlZWtib25lOwor6Z2qID4gdG9cLWNvYmJsZTsKK+mdpyA+IHdhc2hcLWZhY2U7CivpnYAgPiBkcml6emxpbmc7CivpnIIgPiBmaW5lXC1yYWluOwor6ZqDID4gdG9cLWV4Y2VlZDsKK+mWvyA+IHdlblwteGlhbmc7CivplrogPiBsb29rXC1kb3duOwor6ZasID4gaGlnaFwtZG9vcjsKK+mWqyA+IHRocmVzaG9sZDsKK+mUqyA+IGJlcmtlbGl1bTsKK+mUhiA+IHppcmNvbml1bTsKK+mStiA+IGNvbHVtYml1bTsKK+mSjCA+IHJ1dGhlbml1bTsKK+mSgSA+IGFcLW1hdHRvY2s7Civpka0gPiBsYW50aGFudW07CivpkaogPiBmaXJlcGxhY2U7CivpkL8gPiB5dHRlcmJpdW07CivpkLsgPiBkcnVtc3RpY2s7Civpj5sgPiB0b1wtcG9saXNoOwor6Y+QID4gcHVyZVwtZ29sZDsKK+mPgyA+IGFycm93aGVhZDsKK+mOvyA+IG5lcHR1bml1bTsKK+mOniA+IHBsb3dzaGFyZTsKK+mOhyA+IGFtZXJpY2l1bTsKK+mOgiA+IG1hZ25lc2l1bTsKK+mNuiA+IGdlcm1hbml1bTsKK+mNtiA+IHN0cm9udGl1bTsKK+mMsyA+IG1hbmdhbmVzZTsKK+mMhyA+IGJlcmtlbGl1bTsKK+mLryA+IHppcmNvbml1bTsKK+mLjSA+IGJlcnlsbGl1bTsKK+mKpCA+IGFtZXJpY2l1bTsKK+mKmiA+IGxhcmdlXC1ob2U7CivpiZ4gPiBicm9hZFwtYXhlOwor6Yi9ID4gcGx1dG9uaXVtOwor6Yi5ID4gYmVyeWxsaXVtOwor6YipID4gZmlyZXBsYWNlOwor6YiMID4gdG9cLXBpZXJjZTsKK+mIiCA+IHBsdXRvbml1bTsKK+mIgCA+IHBhbGxhZGl1bTsKK+mHuSA+IG5lb2R5bWl1bTsKK+mHlSA+IHJ1dGhlbml1bTsKK+mDniA+IGdlbnRsZW1hbjsKK+mBniA+IGhhbmRcLW92ZXI7CivpgJMgPiBoYW5kXC1vdmVyOwor6Ly+ID4gdHVyblwtb3ZlcjsKK+i8uCA+IHRyYW5zcG9ydDsKK+i8mCA+IGFcLWNhclwtcnV0Owor6LyFID4gYVwtY2hhcmlvdDsKK+i7tyA+IHNhY3JpZmljZTsKK+i7hCA+IHRvXC1nb3Zlcm47CivoupQgPiBmb2xsb3dcLWluOwor6LmVID4gY2xlYXJcLXdheTsKK+i5lCA+IHRlbXBvcmFyeTsKK+i3qSA+IHRvXC13YWRkbGU7Civotp0gPiB0b1wtcHVyc3VlOwor6LW/ID4gbGF0ZVwtc2xvdzsKK+izuCA+IGxlZnRvdmVyczsKK+izoCA+IGluZGVtbmlmeTsKK+ixtSA+IHlvdW5nXC1waWc7CivosZMgPiBiZWF1dGlmdWw7Civorp4gPiB0b1wtZGVjaWRlOwor6K20ID4gcmVwcmltYW5kOwor6K2KID4gd3JhbmdsaW5nOwor6K2FID4gd3JpZ2dsaW5nOwor6KuzID4gdmVyc2VkXC1pbjsKK+irpyA+IGhhcm1vbml6ZTsKK+irnSA+IGtub3dsZWRnZTsKK+iriSA+IHBhc3NcLWJ1Y2s7CivoqpogPiBjcml0aWNpemU7CivoqpYgPiBvYnN0aW5hdGU7CivoqKAgPiBtdWNoXC1tb3JlOwor6KiMID4gY29uZnVzaW9uOwor6KWvID4gdW5kZXJ3ZWFyOwor6KOyID4gd2Fpc3Rjb2F0Owor6J+6ID4gZWFydGh3b3JtOwor6J6MID4gYVwtc3RyaXBlZDsKK+icqCA+IGJ1dHRlcmZseTsKK+ibtSA+IGRyYWdvbmZseTsKK+ibjSA+IGdsb3dcLXdvcm07Civomr8gPiBtaWxsaXBlZGU7CivomJ4gPiB3aWxkXC12aW5lOwor6JaIID4gbHV4dXJpYW50Owor6JWXID4gbGV1Y2FjZW5lOwor6JS5ID4gd2lsZFwtdmluZTsKK+iUpSA+IHNjYWxsaW9uczsKK+iThiA+IHN0cmF3XC1tYXQ7CivokqIgPiBoZWR5c2FydW07CivokbcgPiBtZWF0XC1kaWV0Owor6JGTID4gdmVnZXRhYmxlOwor6JCKID4gZ29vc2Vmb290Owor6I+7ID4gYXJ0ZW1pc2lhOwor6I2NID4gYnVja3doZWF0Owor6IugID4gbXVsdGl0dWRlOwor6IuZID4gYVwtcGlnXC1zdHk7CivoirwgPiB0b1wtY2hvb3NlOwor6Im3ID4gYmVhdXRpZnVsOwor6ImxID4gZGlmZmljdWx0Owor6ImjID4gc3Rlcm5cLW9hcjsKK+iJjiA+IGZhc3RcLWJvYXQ7CivoiJ0gPiBsaW5jaFwtcGluOwor6IiYID4gYVwtbWFuc2lvbjsKK+iHryA+IHRvXC1wcmFpc2U7Civog6YgPiB0aGVcLW5hdmVsOwor6IClID4gZmFybVwtdG9vbDsKK+e+tiA+IHJhbmtcLW9kb3I7CivnvqUgPiBoeWRyb3hpZGU7CivnvYEgPiBhXC1jaXN0ZXJuOwor57mjID4gb2JzdGluYXRlOwor57mhID4gZW1icm9pZGVyOwor57mNID4gZW1icm9pZGVyOwor57iRID4gZmluZVwtc2lsazsKK+e4gyA+IGZpbmVcLXNpbGs7Civnt6UgPiBzd2FkZGxpbmc7CivntokgPiBlbWJyb2lkZXI7CivntoYgPiB3ZWxsXC1yb3BlOwor57OwID4gcmljZVwtYmFsbDsKK+eznSA+IHNjYXR0ZXJlZDsKK+eyvyA+IHJpY2VcLWNha2U7CivnsaggPiB0cm91c3NlYXU7CivnsIMgPiBzaWRlXC1yb29tOwor56uVID4gZGVjaWxpdGVyOwor56uPID4ga2lsb2xpdGVyOwor56uNID4gZGVjYWxpdGVyOwor56uGID4gZXhoYXVzdGVkOwor56q0ID4gZ2xhbmNlXC1hdDsKK+eqiyA+IGluXC1hXC1ob2xlOwor56mqID4gdG9cLXByYWlzZTsKK+eorCA+IGdsdXRpbm91czsKK+eonyA+IHJlcG9ydFwtdG87CivnprQgPiBzYWNyaWZpY2U7CivnpqQgPiBcKHN1cm5hbWVcKTsKK+emnCA+IHNhY3JpZmljZTsKK+emliA+IHNhY3JpZmljZTsKK+emlSA+IGV4Y2VsbGVudDsKK+emlCA+IGhhcHBpbmVzczsKK+elpiA+IGhhcHBpbmVzczsKK+eljiA+IGV4Y2VsbGVudDsKK+ekvyA+IHNhY3JpZmljZTsKK+ekvSA+IGJsZXNzaW5nczsKK+ekqiA+IHdoZXRzdG9uZTsKK+ekniA+IFwobWluZXJhbFwpOwor56KsID4gd2hldHN0b25lOwor56KGID4gYXJyb3dcLXRpcDsKK+ehuyA+IG9ic3RpbmF0ZTsKK+egriA+IGFycm93XC10aXA7CivnoKwgPiBiaWdcLXN0b25lOwor552eID4gc3F1aW50XC1hdDsKK+eclSA+IHJlc3RyYWludDsKK+ebtSA+IFwoc3VybmFtZVwpOwor55uaID4gXChzdXJuYW1lXCk7CivnmbEgPiBwYXJhbHlzaXM7CivnmbAgPiBjYXJidW5jbGU7CivnmawgPiByaW5nd29ybXM7CivnmK0gPiBhXC13aGl0bG93Owor55icID4gYVwtcG9seXB1czsKK+eYkyA+IHBhcmFseXNpczsKK+eXoSA+IGFcLWRpc2Vhc2U7Civnl5AgPiB3aGlybHdpbmQ7CivnlrYgPiBkeXNlbnRlcnk7CivnlbUgPiBkZWxpbmVhdGU7CivnlbEgPiB0b1wtZGV0YWluOwor55WLID4gdGlsbFwtbGFuZDsKK+eUtCA+IGNvY2tyb2FjaDsKK+eUqiA+IFwoc3VybmFtZVwpOwor55SmID4gYmVcLXJlYm9ybjsKK+eUhSA+IGNlbnRpZ3JhbTsKK+eTuCA+IGhlY3RvZ3JhbTsKK+eTsSA+IG1pbGxpZ3JhbTsKK+eSvyA+IGZpbmVcLWphZGU7CivnkbQgPiB0d2luXC1nZW1zOwor55GjID4gZnJhZ21lbnRzOwor542AID4gdG9cLWdhdGhlcjsKK+eLsyA+IGFybWFkaWxsbzsKK+eKsCA+IGFybWFkaWxsbzsKK+eKpyA+IHNhY3JpZmljZTsKK+eHtiA+IHRvXC1zY29yY2g7Civnh6wgPiBidXJuXC1kb3duOwor54eKID4gbHV4dXJpYW50Owor54a/ID4gYnJpbGxpYW50Owor54a6ID4gZGltXC1saWdodDsKK+eCmCA+IGJyaWxsaWFudDsKK+eAiSA+IGRyYWluXC1vZmY7Civmv6kgPiBwb3VyXC1kb3duOwor5r+bID4gZHJpenpsaW5nOwor5ru4ID4gcml2ZXJiYW5rOwor5rm8ID4gYmxhY2tcLW11ZDsKK+a5jyA+IHdhc2hcLWZhY2U7CivmuYUgPiBib2lsXC1zaWxrOwor5repID4gcGFzc1wtb3ZlcjsKK+a2tyA+IHJhaW5zdG9ybTsKK+a0kSA+IHdoaXJscG9vbDsKK+ayuiA+IHR1cmJ1bGVudDsKK+aupCA+IGRpZVwteW91bmc7CivmroggPiBpbmZlcnRpbGU7CivmroAgPiBkaWVcLXlvdW5nOwor5q2bID4gZHJhd1wtYmFjazsKK+aslSA+IHRyZWVcLW5hbWU7CivmqrsgPiB0aHJlc2hvbGQ7CivmqZogPiB0YWxsXC10cmVlOwor5qizID4gdGFsbFwtdHJlZTsKK+aoiyA+IHRyZWVcLW5hbWU7Civmp6ogPiBnZW5lcmFsbHk7Civmp6kgPiBnZW5lcmFsbHk7CivmpqogPiBoZWFkYm9hcmQ7CivmpLYgPiBwYWxtXC10cmVlOwor5qOnID4gd2FyZWhvdXNlOwor5qOlID4gYVwtcmFpbGluZzsKK+ajlyA+IGRhdGVcLXRyZWU7Civmo5YgPiBkb29yXC1zdG9wOwor5qKcID4gY2hvcHN0aWNrOwor5qKNID4gdHJlZVwtbmFtZTsKK+agsSA+IGxhcmdlXC1wZWc7CivmoK0gPiBraW5nXC1wb3N0Owor5qCfID4gaGVtcFwtcGFsbTsKK+agkiA+IGNyb3NzXC1iYXI7Civmn7kgPiBwZXJzaW1tb247Civmn4ggPiBjb250YWluZXI7Civmnr4gPiBwZXJzaW1tb247CivmnrkgPiBkcnVtc3RpY2s7CivmnqkgPiBwaW5lXC10cmVlOwor5p6oID4gZG9vclwtc3RvcDsKK+aemSA+IHRyZWVcLWtub3Q7CivmnakgPiBoZWFkYm9hcmQ7CivmnJ4gPiBmdWxsXC15ZWFyOwor5pyTID4gc2FjcmlmaWNlOwor5puxID4gY29ja3JvYWNoOwor5pugID4gZXh0ZW5zaXZlOwor5pqNID4gc3Vuc3Ryb2tlOwor5pi/ID4gZXh0ZW5zaXZlOwor5piqID4gZGVsaWdodGVkOwor5peqID4gdW5pdGVkXC1pbjsKK+aXmyA+IGFcLXBlbm5hbnQ7Civml5kgPiBhXC1wZW5uYW50Owor5paCID4gZHJhd1wtYmFjazsKK+aViyA+IHRvXC1zdHJpa2U7CivmlIsgPiB0b1wtY2x1dGNoOwor5pSDID4gcHJlY2VkaW5nOwor5pO/ID4gdG9cLXNlbGVjdDsKK+aTmiA+IHRvXC1vY2N1cHk7Civmk5AgPiB0b1wtcHV0XC1vbjsKK+aTiSA+IHRvXC1waWVyY2U7Civmkb0gPiB0aHJvd1wtb3V0Owor5pGuID4gdG9cLXJhdHRsZTsKK+aRmyA+IHRvXC1zcHJlYWQ7CivmkJkgPiB0b1wtaGFuZGxlOwor5pCVID4gdG9cLXN0cmlrZTsKK+aPpiA+IHRvXC1jbHV0Y2g7Civmj6UgPiBzY3JhdGNoZXI7CivmjpkgPiB0b1wtc3RyaXZlOwor5om7ID4gdG9cLXN0cmlrZTsKK+aJpCA+IHRvXC10aHJ1c3Q7CivmiJwgPiB0b1wtc2NyYXBlOwor5oavID4gc29ycm93ZnVsOwor5oauID4gcmVncmV0ZnVsOwor5oW9ID4gc29ycm93ZnVsOwor5oW8ID4gc29ycm93ZnVsOwor5oWkID4gc2luY2VyaXR5Owor5oWGID4gZXhjZXNzaXZlOwor5oSoID4gc2luY2VyaXR5Owor5oK9ID4gc29ycm93ZnVsOwor5oKBID4gaXJyaXRhYmxlOwor5oGRID4gdG9cLWNoYW5nZTsKK+aBiiA+IGJlXC11bml0ZWQ7CivmgLogPiB0b1wtZW5kdXJlOwor5oCeID4gdG9cLWdyaWV2ZTsKK+aAlyA+IG9ic2VydmFudDsKK+W/gCA+IHRvXC1zdHJvbGw7CivlvYwgPiBleHRlbnNpdmU7Civlu74gPiB0d29cLWhhbmRzOwor5bu4ID4gZW5saWdodGVuOwor5bqJID4gYVwtdmlsbGFnZTsKK+W5qSA+IHRyYXBwaW5nczsKK+W5mSA+IGFcLWN1cnRhaW47CivluKUgPiBjb21tYW5kZXI7Civlto4gPiBsdXh1cmlhbnQ7Civlr70gPiBhXC1oYW5kZnVsOwor5a+YID4gcHV0XC1hc2lkZTsKK+WvlyA+IGFcLXN1cm5hbWU7Civlr5YgPiBncmFkdWFsbHk7Civlr4MgPiBncmlldmFuY2U7CivlroIgPiBzY2F0dGVyZWQ7CivlrIsgPiBiZWF1dGlmdWw7Civlq70gPiBwbGF5XC13aXRoOwor5aubID4gY29tcGxpYW50Owor5auXID4gb2xkXC13b21hbjsKK+WrlSA+IGNvbXBsaWFudDsKK+WquiA+IGJlYXV0aWZ1bDsKK+WqrCA+IGdvdmVybmVzczsKK+WqlSA+IHVuZGVjaWRlZDsKK+WqhCA+IGJlYXV0aWZ1bDsKK+WppSA+IGJlYXV0aWZ1bDsKK+WnuCA+IGJlYXV0aWZ1bDsKK+WnsSA+IGJlYXV0aWZ1bDsKK+WnoiA+IGJlYXV0aWZ1bDsKK+WnniA+IGNvbmN1YmluZTsKK+WkuyA+IGZpc2hcLW5hbWU7CivlpIwgPiB0b1wtZGF3ZGxlOwor5aK+ID4gY3VsdGl2YXRlOwor5aKcID4gZmFsbFwtZG93bjsKK+WhnSA+IGZsYXRcLWJhbms7Civln5MgPiBlbmNsb3N1cmU7CivlnpcgPiBzYWNyaWZpY2U7CivlnIogPiByZXN0XC1yb29tOwor5ZqcID4gYmVcLXNpbGVudDsKK+WZgSA+IG5hc3RpbmVzczsKK+WYtSA+IGdhcnJ1bG91czsKK+WYkSA+IHRvXC1tZW5hY2U7CivllqYgPiB0YWxrYXRpdmU7CivllY4gPiBvYnN0aW5hdGU7Civlk6sgPiB0b1wtY2Fqb2xlOwor5ZK1ID4gdG9cLXJldmlsZTsKK+WRpyA+IHRvXC1yZWJ1a2U7Civlj4UgPiB0b1wtY291bmVsOwor5Y6yID4gd2hldHN0b25lOwor5Y6TID4gcHJlY2lwaWNlOwor5YytID4gc21hbGxcLWJveDsKK+WMmCA+IHRoZVwtYnJhaW47Civli68gPiBleGhhdXN0ZWQ7Civli6kgPiB3b3JrXC1oYXJkOwor5YmwID4gbGVmdG92ZXJzOwor5YmZID4gZXN0YWJsaXNoOwor5YmPID4gZXN0YWJsaXNoOwor5YixID4gZXN0YWJsaXNoOwor5YihID4gdG9cLXNjcmFwZTsKK+WIlCA+IHNjb29wXC1vdXQ7CivliIUgPiB0b1wtY3JlYXRlOwor5Ye3ID4gZGlydFwtY2xvZDsKK+WHmSA+IGFuXC1pY2ljbGU7CivlhZcgPiBlc3RhYmxpc2g7CivlhYcgPiBhdHJvY2lvdXM7CivlhLMgPiBvYnN0aW5hdGU7CivlhK0gPiB0b1wtYXNzaXN0Owor5YSVID4gYVwtY29tcGFueTsKK+WElCA+IGNvbXBhbmlvbjsKK+WEiSA+IHRlbXBlcmF0ZTsKK+WDnSA+IHRvXC1yZXZpbGU7Civlg4cgPiBodW1pbGlhdGU7CivlgrogPiB0b1wtaGluZGVyOwor5YCiID4gYmVhdXRpZnVsOwor5L62ID4gY29tcGFuaW9uOwor5L6OID4gdG9cLXNvb3RoZTsKK+S9qyA+IFwoc3VybmFtZVwpOwor5Ly7ID4gbWVzc2VuZ2VyOwor5LyLID4gZGVjZXB0aXZlOwor5LuIID4gXChzdXJuYW1lXCk7CivkuYYgPiBsb25nXC10aW1lOwor5LazID4gdG9cLWxvb2t1cDsKK+S2kSA+IHRvXC1zbmVlemU7Civkto0gPiB0b1wtc25lZXplOwor5LWvID4gYVwtdmlsbGFnZTsKK+S0oSA+IGJlYXV0aWZ1bDsKK+S0jyA+IGFcLXN3YWxsb3c7Civks7ogPiB0aGVcLXF1YWlsOwor5LK/ID4gY29ybW9yYW50Owor5LKoID4gd2lsZFwtc3dhbjsKK+SxiCA+IGZpc2hcLXB1bHA7CivksKUgPiBhXC1jeWNsb25lOwor5LCWID4gZmluZVwtaGFpcjsKK+SwkCA+IGxvbmdcLWhhaXI7CivksIggPiBmaW5lXC1oYWlyOwor5K+9ID4gZmluZVwtaGFpcjsKK+SvtyA+IGZpbmVcLWhhaXI7Civkr6YgPiB0aW55XC1ib25lOwor5K6cID4gdG9cLWdhbGxvcDsKK+StrCA+IHRvXC1rb3d0b3c7CivkrasgPiB0b1wta293dG93Owor5K2bID4gdGFzdGVsZXNzOwor5K2ZID4gZXhxdWlzaXRlOwor5K2VID4gdGFzdGVsZXNzOwor5K2RID4gaW5jb3JydXB0Owor5Ky2ID4gdG9cLXN0cmF2ZTsKK+SslCA+IGh1cnJpY2FuZTsKK+SskyA+IGh1cnJpY2FuZTsKK+SruyA+IGFcLXR5cGhvb247Civkq7ogPiBhXC10eXBob29uOwor5KudID4gZnJhZ3JhbmNlOwor5KuUID4gYVwtc2VydmFudDsKK+SppiA+IHRoZVwtcmVpbnM7CivkqK0gPiB0aGVcLXNraWVzOwor5KiQID4gdG9cLXNwcmVhZDsKK+SojSA+IGRlZXBcLXBvbmQ7Civkp4UgPiBkYW5nZXJvdXM7CivkprUgPiBpbmNhcGFibGU7CivkpqwgPiBhXC12YWNhbmN5Owor5KaGID4gYVwtYmlnXC1ob2U7Civkpb0gPiBmYXJtXC10b29sOwor5KSkID4gaW1wbGVtZW50Owor5KSPID4gZGVzdHJveWVkOwor5KO4ID4gdGFzdGVsZXNzOwor5KOpID4gYmVhdXRpZnVsOwor5KKxID4gdG9cLXNsaWdodDsKK+SiqyA+IHRvXC1mb2xsb3c7Civkop8gPiB0b1wtdHJhdmVsOwor5KKNID4gdG9cLWhhc3RlbjsKK+SiiiA+IHRvXC10cmF2ZWw7CivkoZQgPiB0b1wtaGluZGVyOwor5KCyID4gdG9cLWxpc3RlbjsKK+SgryA+IHRvXC1hc2NlbmQ7CivkoK4gPiB0b1wtcHJhbmNlOwor5KCGID4gdG9cLWtvd3RvdzsKK+SfuyA+IGJhcmVcLWZlZXQ7Civkn6UgPiBsdXh1cmlhbnQ7Civkn54gPiB0b1wtZmFsdGVyOwor5J+MID4gZGl2ZXJnaW5nOwor5J6+ID4gZnJpdm9sb3VzOwor5J68ID4gdG9cLWVzY2FwZTsKK+SeoyA+IHRvXC1yZXNpc3Q7CivknpcgPiBzdXNwaWNpb247CivknpIgPiByZWRcLWNvbG9yOwor5J6QID4gcGxlbnRpZnVsOwor5J6NID4gdG9cLWJlc3RvdzsKK+SeiSA+IGFcLXN1cnBsdXM7Civknb4gPiB0b1wtYmVzdG93Owor5J28ID4gdG9cLWJlc3RvdzsKK+ScrSA+IHRvXC1kcmVkZ2U7CivknJ8gPiB0b1wtdmVyaWZ5Owor5JydID4gdW5jZXJ0YWluOwor5JyFID4gdG9cLWZvbGxvdzsKK+SbuyA+IHRvXC1pbmR1Y2U7Civkm7kgPiB0b1wtYWNjdXNlOwor5Ju4ID4gZ2FycnVsb3VzOwor5JuzID4gdG9cLW1hbGlnbjsKK+SbrCA+IGJhYnlcLXRhbGs7Civkm6ogPiBsb3F1YWNpdHk7Civkm54gPiBsb3F1YWNpdHk7Civkm5ogPiB0b1wtcHJhaXNlOwor5JuLID4gdG9cLXNjaGVtZTsKK+SbgSA+IHRvXC1tdXJtdXI7CivkmrUgPiB0b1wtaW5kdWNlOwor5Jm4ID4gdG9cLW9idGFpbjsKK+SZtyA+IHRvXC1vYnRhaW47Civkma8gPiBleHF1aXNpdGU7CivkmacgPiByZWRcLWNvbG9yOwor5JmYID4gZXhxdWlzaXRlOwor5Ji8ID4gc3RvY2tpbmdzOwor5JiaID4gYVwtc2VydmFudDsKK+SYlyA+IGJlYXV0aWZ1bDsKK+SYkSA+IHRoZVwtcHVsc2U7Civkl5kgPiBlYXJ0aHdvcm07Civkl5MgPiBkcmFnb25mbHk7Civkl4wgPiBkcmFnb25mbHk7Civkl4UgPiBtaWxsaXBlZGU7CivklqEgPiBtaWxsaXBlZGU7CivklbkgPiBhXC1jdXJ0YWluOwor5JWyID4gYXJ0ZW1pc2lhOwor5JWpID4gZHJ5XC1mcnVpdDsKK+SVjyA+IGFydGVtaXNpYTsKK+SUsyA+IGNoaWNrbGluZzsKK+STsCA+IGFic2ludGhpbjsKK+STlyA+IHNjYWxsaW9uczsKK+SThyA+IGx1eHVyaWFudDsKK+SSsCA+IHRvXC1mb2xsb3c7CivkkqAgPiBsdXh1cmlhbnQ7CivkkoogPiBhXC1wYXRpZW50Owor5JGqID4gYVwtc2FpbGluZzsKK+SRnyA+IGx1eHVyaWFudDsKK+SRkyA+IGFcLWxvb2tvdXQ7CivkkZEgPiBhXC1zZXJ2YW50Owor5JGJID4gZXhjcmVtZW50Owor5JGAID4gdGhlXC1uYXZlbDsKK+SQuiA+IGRlbGljaW91czsKK+SQoSA+IHRoZVwtbmF2ZWw7CivkkJsgPiB0b1wtbG9vc2VuOwor5JCMID4gbHV4dXJpYW50Owor5JCGID4gYmlnXC1iZWxseTsKK+SPvSA+IG1lYXRcLXB1bHA7Civkj6wgPiB0aGVcLXNwaW5lOwor5I+gID4gbWVhdFwtc291cDsKK+SPniA+IHRoZVwtYmVsbHk7CivkjqEgPiB0b1wtc2hyaW5rOwor5I6DID4gZmluZVwtZG93bjsKK+SNjiA+IGFcLXNwaW5kbGU7CivkjLIgPiBsaWdodFwtcmVkOwor5IybID4gZW50b3VyYWdlOwor5IyWID4gdG9cLWdhdGhlcjsKK+SMiiA+IGVudG91cmFnZTsKK+SLoCA+IHRvXC1yZXBhaXI7CivkirAgPiBmb29kc3R1ZmY7CivkipwgPiBkdW1wbGluZ3M7Civkib0gPiByaWNlXC1jYWtlOwor5Im8ID4gbWF0ZXJpYWxzOwor5ImYID4gdG9cLXBpZXJjZTsKK+SItSA+IGx1eHVyaWFudDsKK+SHkCA+IHRvXC1hcnJpdmU7CivkhpAgPiBhXC1jb3VudHJ5Owor5IWOID4gZGlmZmVyZW50Owor5IWFID4gZmFybVwtdG9vbDsKK+SFgyA+IGxhdGVcLWNyb3A7CivkhKwgPiB0b1wtY2hhbmdlOwor5ISZID4gaGFwcGluZXNzOwor5IOpID4gYVwtbWluZXJhbDsKK+SDlSA+IHN0b25ld2FyZTsKK+SDkyA+IHRvXC1wdW5pc2g7Civkg4AgPiBtaWxsc3RvbmU7Civkgr4gPiB0b1wtcG9saXNoOwor5IKIID4gdG9cLXBpZXJjZTsKK+SChyA+IHRvXC1waWVyY2U7CivkgaIgPiBleHF1aXNpdGU7CivkgZAgPiBkZWVwXC1leWVkOwor5ICwID4gb3BlblwtZXllczsKK+SArCA+IHRvXC1nbGFuY2U7CivkgKIgPiB0b1wtZ2xhbmNlOwor5IChID4gdG9cLXNweVwtb247CivkgJAgPiB0b1wtcmVnYXJkOwor47+/ID4gd2luZVwtY3VwczsKK+O/nyA+IGhlXC1icmlnaHQ7Civjv5sgPiBjYXJidW5jbGU7Civjv4cgPiBwYXJhbHlzaXM7Civjvq0gPiB0b1wtc2hyaW5rOwor476lID4gYmVsbHlhY2hlOwor476jID4gdG9cLXNoaXZlcjsKK+O+iyA+IGR5c2VudGVyeTsKK+O9rCA+IHRvXC1hc3Npc3Q7CivjvZ4gPiB0b1wtcmVtYWluOwor472RID4gZGVsaWNpb3VzOwor472JID4gYVwtYmlnXC1qYXI7CivjvLogPiBwb3JjZWxhaW47CivjvJogPiBlYXJ0aHdhcmU7Civju70gPiBmaW5lXC1qYWRlOwor47uxID4gdG9cLWNpcmNsZTsKK+O7jCA+IGZpbmVcLWphZGU7Civju4kgPiBmaW5lXC1qYWRlOwor47e8ID4gYVwtc3dhbGxvdzsKK+O3jiA+IHN1bnN0cm9rZTsKK+O1lyA+IHR1cmJ1bGVudDsKK+O1lCA+IG5vdFwtY2xlYXI7CivjtIEgPiB0b1wtYWRkXC10bzsKK+OzqCA+IHRvXC1zcGxhc2g7CivjsrUgPiB0aGVcLXNraWVzOwor47KmID4gbG9uZ1wtaGFpcjsKK+OypCA+IGxvbmdcLWhhaXI7CivjspogPiBsb25nXC1oYWlyOwor47GYID4gbmlnaHRtYXJlOwor47CWID4gdGhlXC1vbGl2ZTsKK+OvuiA+IGFcLWNhYmluZXQ7Civjr68gPiBzbWFsbFwtY3VwOwor46+dID4gcGF1bG93bmlhOwor46+EID4gbHV4dXJpYW50Owor466ZID4gYVwtcGl0ZmFsbDsKK+OulCA+IHZlZ2V0YWJsZTsKK+OugyA+IGZhcm1cLXRvb2w7CivjraIgPiBtZWNoYW5pY3M7CivjrL8gPiBtb29ubGlnaHQ7CivjrKsgPiBjbGVhclwtc2t5Owor46yjID4gbHV4dXJpYW50Owor46yeID4gc3Vuc3Ryb2tlOwor46qsID4gdG9cLXBpZXJjZTsKK+OqqSA+IHRvXC1zdHJpa2U7CivjqqQgPiB0b1wtZmluaXNoOwor46qRID4gdG9cLWZvbGxvdzsKK+OqjiA+IHVuY2VydGFpbjsKK+OqiyA+IHRvXC1yZXNpc3Q7CivjqoggPiB0b1wtbGV0XC1nbzsKK+OqhSA+IHRvXC1jaGFuZ2U7CivjqbEgPiB0b1wtc2VsZWN0Owor46mnID4gdG9cLXN0cmlrZTsKK+OpkiA+IHRvXC1hcnJlc3Q7CivjqYwgPiB0b1wtc3RyaWtlOwor46mHID4gdGhlXC10aHVtYjsKK+OphCA+IHRvXC1zdHJpa2U7CivjqLYgPiB0b1wtdGhyZXNoOwor76ibID4gaGFwcGluZXNzOwor76iaID4gZ29vZFwtbHVjazsKK+OomiA+IHRvXC1zZWxlY3Q7CivjqI0gPiB0b1wtZGVmZW5kOwor46iJID4gdG9cLXNtb290aDsKK++ohCA+IHJlc2lkZW5jZTsKK+OohCA+IHRvXC1waWVyY2U7Civjp74gPiB0b1wtc3RyaWtlOwor76e8ID4gcmVjb2duaXplOwor76e2ID4gZHJhd1wtbmVhcjsKK+OnsCA+IHRvXC1zdHJpa2U7Civjp6kgPiB0b1wtZGlzcGVsOwor76elID4gZHlzZW50ZXJ5Owor46emID4gdG9cLXN0cmlrZTsKK+OnlyA+IHRvXC1jbGF0Y2g7Civjp5YgPiB0b1wtY2x1dGNoOwor46eMID4gdG9cLXNlbGVjdDsKK++ngiA+IHNtYXJ0d2VlZDsKK++ngSA+IGJlXC1oZWFsZWQ7CivvprsgPiBvZmZpY2lhbHM7CivvprogPiB0b1wtZmluaXNoOwor46a7ID4gdG9cLXB1dFwtb247CivvprUgPiBwcmVjZWRlbnQ7CivjprQgPiB0b1wtYXJyZXN0Owor46avID4gYVwtY2VydGFpbjsKK+OmqiA+IGNvbXBsYWludDsKK+OmnSA+IGJlYXV0aWZ1bDsKK+OmliA+IHJlc2VudGZ1bDsKK++miCA+IGJlYXV0aWZ1bDsKK++mhSA+IHdoZXRzdG9uZTsKK+OlviA+IG1vcnRpZmllZDsKK+OlsyA+IHRvXC1zdXJ2ZXk7Civjpa4gPiBvYnN0aW5hdGU7CivjpacgPiB0b1wtZm9sbG93Owor46WmID4gc2F0aXNmaWVkOwor76WiID4gZGlmZmVyZW50Owor76WXID4gdGhpblwtc2lsazsKK+OlliA+IHJlZFwtY29sb3I7CivjpY4gPiB0b1wtcmVzZW50Owor46WAID4gZXhjbHVzaXZlOwor46S1ID4gY29wYXNzaW9uOwor76SyID4gZmlyZXBsYWNlOwor76SsID4gZ2VudGxlbWFuOwor46SlID4gc29ycm93ZnVsOwor76SbID4gY29uZnVzaW9uOwor46SYID4gb2JzdGluYXRlOwor46SSID4ga25vd2xlZGdlOwor46SLID4gY29uZnVzaW9uOwor46SHID4gdGVycmlmaWVkOwor46SGID4gbmF1c2VhdGVkOwor46O8ID4gdG9cLWVuZHVyZTsKK+OjuiA+IHRoZVwtaGVhcnQ7Civjo5AgPiB0b1wtY2hhbmdlOwor46KoID4gdG9cLWRlZmVuZDsKK+OioSA+IHRvXC1leGhvcnQ7CivjooAgPiBzaWRlXC1yb29tOwor46G/ID4gdG9cLWFjY3VzZTsKK+OhvCA+IGFcLWdyYW5hcnk7CivjobogPiBhXC1jb3R0YWdlOwor46GiID4gYVwtY3VydGFpbjsKK+OhoCA+IGFcLXBpY3R1cmU7CivjoZcgPiByZWRcLXBhcGVyOwor46CuID4gdG9cLWV4cGFuZDsKK+OgmCA+IGFuXC1pc2xhbmQ7CivjnrUgPiBmcml2b2xvdXM7CivjnqMgPiBmcmFncmFuY2U7CivjnY4gPiB0b1wtZGVjaWRlOwor45y7ID4gdG9cLWFkbWlyZTsKK+OcsCA+IGV4cXVpc2l0ZTsKK+OcqCA+IGJlYXV0aWZ1bDsKK+OcniA+IGJlYXV0aWZ1bDsKK+OcmCA+IGRlbGljYXRlZDsKK+OcliA+IGV4cXVpc2l0ZTsKK+OcjyA+IGxhc3RcLW5hbWU7CivjnIogPiBleHF1aXNpdGU7CivjnIQgPiBsYXN0XC1uYW1lOwor45u+ID4gbm90XC1jbGVhbjsKK+ObuiA+IG5vdFwtY2xlYW47Civjm7EgPiBleHF1aXNpdGU7Civjm5cgPiBmcml2b2xvdXM7Civjm5QgPiBleHF1aXNpdGU7CivjmrAgPiBhblwtZW1icnlvOwor45qvID4gbGFzdFwtbmFtZTsKK+OamyA+IGNvcnB1bGVudDsKK+OamCA+IGFcLXBhcnRuZXI7CivjmbUgPiBhXC1sb29rb3V0Owor45mcID4gYVwtbG9va291dDsKK+OYoyA+IGNvbXBhc3NlczsKK+OXsyA+IGZvcmdldGZ1bDsKK+OXoyA+IHRvXC1zbmVlemU7CivjlrwgPiB0b1wtc2NoZW1lOwor45amID4gbG9xdWFjaXR5Owor45aCID4gbG9xdWFjaXR5Owor45W7ID4gdG9cLXJlZnVzZTsKK+OVuSA+IGFcLWJ1Y2tsZXI7CivjlZcgPiB0b1wtaW5kdWNlOwor45WVID4gZGVjZXB0aW9uOwor45WRID4gYVwta2l0Y2hlbjsKK+OVjyA+IGFcLWtpdGNoZW47CivjlYsgPiByb2NrXC1sYW5kOwor45WIID4gdG9cLWxpbmdlcjsKK+OUviA+IGxhc3RcLW5hbWU7CivjlKcgPiB0b1wtaW5jaXRlOwor45OvID4gdG9cLWRpdmlkZTsKK+OTqCA+IHRvXC1waWVyY2U7Civjk4sgPiB0b1wtZnJlZXplOwor45OEID4gdG9cLXBsb3VnaDsKK+OSlyA+IGFcLXNlcnZhbnQ7CivjkpMgPiB0b1wtZXNjYXBlOwor45KLID4gYVwtc2VydmFudDsKK+OSiCA+IGRhbmdlcm91czsKK+OSgiA+IHRvXC1iZXN0b3c7Civjka8gPiBsYXN0XC1uYW1lOwor45GuID4gbGFzdFwtbmFtZTsKK+ORpyA+IHBlcnR1cmJlZDsKK+ORmSA+IGZyaXZvbG91czsKK+ORmCA+IGFcLXNlcnZhbnQ7CivjkY4gPiBsYXN0XC1uYW1lOwor45GEID4gdG9cLWluc3VsdDsKK+OQryA+IHRvXC1lbXBsb3k7CivjkK0gPiBhXC1ncmFuYXJ5Owor45CpID4gd2luZVwtY3VwczsKK+OQhiA+IHRvXC1mb2xsb3c7Civlv7UgPiB0aGlua1wtb2Y7CivkvJogPiBhc3NlbWJsZTsKK+WtpiA+IGxlYXJuaW5nOwor5b6SID4gZGlzY2lwbGU7CivnnaYgPiBmcmllbmRseTsKK+aXoCA+IG5lZ2F0aXZlOwor5pa5ID4gYVwtc3F1YXJlOwor5YmNID4gaW5cLWZyb250Owor55yJID4gZXllYnJvd3M7CivnnIEgPiBwcm92aW5jZTsKK+ebtCA+IHN0cmFpZ2h0Owor5buiID4gYWJyb2dhdGU7Civnm5sgPiBhYnVuZGFudDsKK+i7kiA+IGNhcnJpYWdlOwor5YWoID4gbWFpbnRhaW47Civlu4ogPiBjb3JyaWRvcjsKK+W7gyA+IGFicm9nYXRlOwor55q6ID4gd3JpbmtsZXM7CivlurcgPiBwZWFjZWZ1bDsKK+mXtCA+IG1pZHBvaW50Owor6LqKID4gaGVzaXRhdGU7CivouocgPiBoZXNpdGF0ZTsKK+esrCA+IHNlcXVlbmNlOwor5bm7ID4gaWxsdXNpb247CivnmYcgPiBlcGlsZXBzeTsKK+WxsSA+IG1vdW50YWluOwor6LifID4gaGVzaXRhdGU7Civlt74gPiBrZXJjaGllZjsKK+W3pyA+IHNraWxsZnVsOwor5a6JID4gcGVhY2VmdWw7Civot50gPiBkaXN0YW5jZTsKK+eVjCA+IGJvdW5kYXJ5Owor5Lu7ID4gdHJ1c3RcLXRvOwor5Y+wID4gcGxhdGZvcm07CivosaEgPiBlbGVwaGFudDsKK+mimCA+IGZvcmVoZWFkOwor6LOiID4gdmlydHVvdXM7Civos4cgPiBwcm9wZXJ0eTsKK+iyvCA+IHBhc3RlXC10bzsKK+iyuyA+IGV4cGVuc2VzOwor6LKeID4gdmlydHVvdXM7CivotYQgPiBwcm9wZXJ0eTsKK+WxpSA+IGZvb3R3ZWFyOwor6LGQID4gYWJ1bmRhbnQ7CivosYogPiBhYnVuZGFudDsKK+atpiA+IG1pbGl0YXJ5Owor55CyID4gbmVja2xhY2U7CivlsKAgPiB2ZXJ5XC1mZXc7CivlrowgPiBjb21wbGV0ZTsKK+WNsyA+IHByb21wdGx5Owor5a+1ID4gZmF2b3JpdGU7Civor60gPiBsYW5ndWFnZTsKK+ePjSA+IHByZWNpb3VzOwor5a+MID4gYWJ1bmRhbnQ7CivllYYgPiBjb21tZXJjZTsKK+WunSA+IHRyZWFzdXJlOwor5Y2DID4gdGhvdXNhbmQ7CivlrpwgPiBzdWl0YWJsZTsKK+WumCA+IG9mZmljaWFsOwor56uZID4gc3RhbmRcLXVwOwor5a24ID4gbGVhcm5pbmc7CivorawgPiBtZXRhcGhvcjsKK+mmmSA+IGZyYWdyYW50Owor5Ly8ID4gcmVzZW1ibGU7CivlrKIgPiB0cm91YmxlZDsKK+iZvSA+IGFsdGhvdWdoOwor6ZuGID4gYXNzZW1ibGU7CivkuJQgPiBtb3Jlb3ZlcjsKK+iwgyA+IHRyYW5zZmVyOwor5auJID4gamVhbG91c3k7Civni4MgPiB0b1wtY292ZXQ7Civlq4EgPiB0b1wtbWFycnk7Civoqr8gPiB0cmFuc2ZlcjsKK+iqniA+IGxhbmd1YWdlOwor5aqaID4gY2hhcm1pbmc7CivoqpggPiBwZXJzdWFkZTsKK+i0uSA+IGV4cGVuc2VzOwor6KqEID4gZXVsb2dpemU7CivoqbMgPiBkZXRhaWxlZDsKK+ipsCA+IHF1ZXN0aW9uOwor5oOKID4gZnJpZ2h0ZW47CivmlK8gPiBkaXNwZXJzZTsKK+eqgSA+IHN1ZGRlbmx5Owor6KmVID4gYXBwcmFpc2U7CivlqKAgPiBwcmVnbmFudDsKK+WPpSA+IHNlbnRlbmNlOwor5pi+ID4gbWFuaWZlc3Q7Civlop4gPiBpbmNyZWFzZTsKK+aWmSA+IGNvbnNpZGVyOwor6JGXID4gbWFuaWZlc3Q7CivlpoogPiBjb25jZWl2ZTsKK+WigyA+IGJvdW5kYXJ5Owor57utID4gY29udGludWU7CivnhKEgPiBuZWdhdGl2ZTsKK+ijlSA+IGFidW5kYW50Owor54KtID4gY2hhcmNvYWw7Civlm7QgPiBzdXJyb3VuZDsKK+WilyA+IGluY3JlYXNlOwor54G9ID4gY2FsYW1pdHk7CivloZogPiBjZW1ldGVyeTsKK+W/vSA+IHN1ZGRlbmx5Owor54CVID4gYXBwcm9hY2g7Civnu7QgPiBtYWludGFpbjsKK+a/uiA+IHNwcmlua2xlOwor5r+vID4gd2FzaFwtb3V0Owor5Z6jID4gbG93XC13YWxsOwor5LmgID4gcHJhY3RpY2U7CivlnoIgPiBsZXRcLWRvd247CivlnYIgPiBoaWxsc2lkZTsKK+elliA+IGFuY2VzdG9yOwor6K+EID4gYXBwcmFpc2U7CivlnI0gPiBzdXJyb3VuZDsKK+e7pyA+IGNvbnRpbnVlOwor5ZuyID4gc3Vycm91bmQ7CivkvJggPiBzdXBlcmlvcjsKK+a7ryA+IGJsb2NrXC11cDsKK+mZkCA+IGJvdW5kYXJ5Owor5rqiID4gb3ZlcmZsb3c7CivmuKkgPiBsdWtld2FybTsKK+iaiiA+IG1vc3F1aXRvOwor6bm4ID4gYWxrYWxpbmU7CivlmaogPiBiZVwtbm9pc3k7CivlmLIgPiByaWRpY3VsZTsKK+a4myA+IGRlY3JlYXNlOwor5ZiUID4gdG9cLXZvbWl0Owor5oGpID4ga2luZG5lc3M7CivohLEgPiB0YWtlXC1vZmY7CivmtrggPiBkcmllZFwtdXA7CivllqogPiBtb3VybmluZzsKK+WllCA+IHJ1blwtZmFzdDsKK+a2jCA+IHN1cmdlXC11cDsKK+emgSA+IHJlc3RyaWN0Owor5rWuID4gdG9cLWZsb2F0Owor5LqSID4gbXV0dWFsbHk7CivmtJIgPiBzcHJpbmtsZTsKK+aQniA+IHRvXC1jbGVhcjsKK+acsSA+IGNpbm5hYmFyOwor5Z+fID4gZGlzdHJpY3Q7CivmnZAgPiBtYXRlcmlhbDsKK+minSA+IGZvcmVoZWFkOwor5YG3ID4gdG9cLXN0ZWFsOwor5Li5ID4gY2lubmFiYXI7Civok4kgPiBoaWJpc2N1czsKK+aKvSA+IGRyYXdcLW91dDsKK+S7qiA+IGNlcmVtb255Owor57uNID4gY29udGludWU7CivkuLAgPiBhYnVuZGFudDsKK+WNuCA+IGxheVwtZG93bjsKK+W/hiA+IHJlbWVtYmVyOwor6ZqUID4gc2VwYXJhdGU7Civlh48gPiBkZWNyZWFzZTsKK+WNkyA+IHByb2ZvdW5kOwor54G+ID4gY2FsYW1pdHk7CivogZogPiBhc3NlbWJsZTsKK+aNnyA+IGRpbWluaXNoOwor6IyEID4gZWdncGxhbnQ7Civli78gPiBtdXN0XC1ub3Q7Civpq60gPiBtdXN0YWNoZTsKK+mBpSA+IGZhclwtYXdheTsKK+armyA+IGNvbWJcLW91dDsKK+W4gSA+IGN1cnJlbmN5Owor5YuJID4gZW5kZWF2b3I7CivpqrggPiBza2VsZXRvbjsKK+iKsyA+IGZyYWdyYW50Owor5YqqID4gdG9cLWV4ZXJ0Owor6LS0ID4gcGFzdGVcLXRvOwor6amaID4gZnJpZ2h0ZW47CivliKUgPiBzZXBhcmF0ZTsKK+iQjSA+IGR1Y2t3ZWVkOwor5qiFID4gZmlyXC10cmVlOwor57ypID4gY29udHJhY3Q7Civoh6UgPiBsaWVcLWRvd247CivmhZUgPiBsb25nXC1mb3I7Civoh6MgPiBtaW5pc3RlcjsKK+aMoSA+IG9ic3RydWN0Owor6IacID4gbWVtYnJhbmU7CivmppsgPiBoYXplbG51dDsKK+S/iiA+IHRhbGVudGVkOwor5p6dID4gYnJhbmNoZXM7CivpmbcgPiBzdWJtZXJnZTsKK+S4pyA+IG1vdXJuaW5nOwor5YuSID4gc3RyYW5nbGU7CivourogPiBsaWVcLWRvd247CivlhKogPiBzdXBlcmlvcjsKK+iBiiA+IHNvbWV3aGF0Owor6aO+ID4gZGVjb3JhdGU7CivlhIAgPiBjZXJlbW9ueTsKK+aWnCA+IHNsYW50aW5nOwor5paQID4gZ3JhY2VmdWw7Civlup8gPiBhYnJvZ2F0ZTsKK+ivpiA+IGRldGFpbGVkOwor5pCsID4gdHJhbnNmZXI7Civmop8gPiBvd2xcLXRodXM7CivlgpggPiB1bWJyZWxsYTsKK+mhryA+IG1hbmlmZXN0Owor5LqtID4gcGF2aWxpb247CivpoZUgPiBtYW5pZmVzdDsKK+azmyA+IHRvXC1kcmlmdDsKK+mhjSA+IGZvcmVoZWFkOwor6aGMID4gZm9yZWhlYWQ7CivnrKYgPiBpXC5kXC5cLXRhZzsKK+WFgSA+IHRvXC1ncmFudDsKK+iPsiA+IGZyYWdyYW50Owor6LeoID4gc3RyYWRkbGU7CivmjqkgPiB0b1wtY292ZXI7CivpoIMgPiBhXC1tb21lbnQ7CivpmpwgPiBzZXBhcmF0ZTsKK+aftCA+IGZpcmV3b29kOwor5L+vID4gYm93XC1kb3duOwor5L+lID4gcmlja3NoYXc7CivpgrsgPiBuZWlnaGJvcjsKK+e/kiA+IHByYWN0aWNlOwor6am+ID4gdG9cLWRyaXZlOwor5L6tID4gY29tcGxldGU7Civnvp4gPiBkaXNncmFjZTsKK+ijpCA+IHRyb3VzZXJzOwor5LywID4gbWVyY2hhbnQ7CivpnpggPiBzY2FiYmFyZDsKK+WLgyA+IHN1ZGRlbmx5Owor5ZKQID4gaW5zdHJ1Y3Q7CivmgZIgPiBjb25zdGFudDsKK+eznyA+IHNlZGltZW50Owor5omuID4gZHJlc3NcLXVwOwor6LSkID4gdmlydHVvdXM7CivppbAgPiBkZWNvcmF0ZTsKK+abnCA+IGdsb3Jpb3VzOwor6ZuWID4gYWx0aG91Z2g7Civku5UgPiBvZmZpY2lhbDsKK+WNpyA+IGxpZVwtZG93bjsKK+S7hCA+IHNsYW50aW5nOwor6ZqjID4gbmVpZ2hib3I7Civnoo0gPiBvYnN0cnVjdDsKK+aaoiA+IHNtb290aGx5Owor5oumID4gb2JzdHJ1Y3Q7CivmirwgPiBtb3J0Z2FnZTsKK+aImiA+IHJlbGF0aXZlOwor57qMID4gY29udGludWU7CivnubwgPiBjb250aW51ZTsKK+ephiA+IG1hamVzdGljOwor55aGID4gYm91bmRhcnk7CivpmaUgPiBzdWJtZXJnZTsKK+easSA+IHdyaW5rbGVzOwor55WFID4gc21vb3RobHk7CivlmLsgPiBtaXJ0aGZ1bDsKK+e4riA+IGNvbnRyYWN0Owor5LimID4gZXF1YWxcLXRvOwor5piUID4gZm9ybWVybHk7Civnt7QgPiBwcmFjdGljZTsKK+mXmCA+IHN0cnVnZ2xlOwor556qID4gc3RhcmVcLWF0Owor5palID4gdG9cLXNjb2xkOwor5YmqID4gc2Npc3NvcnM7Civlp5ogPiBoYW5kc29tZTsKK+aOjyA+IHRha2VcLW91dDsKK+e2rSA+IG1haW50YWluOwor6K+xID4gcGVyc3VhZGU7CivntpogPiBjb250aW51ZTsKK+e2mSA+IGNvbnRpbnVlOwor6ZaTID4gaW50ZXJ2YWw7CivntLkgPiBjb250aW51ZTsKK+iKmSA+IGhpYmlzY3VzOwor5oO5ID4gaXJyaXRhdGU7CivnsL8gPiByZWdpc3RlcjsKK+aQjSA+IGRpbWluaXNoOwor6Iq3ID4gYW5nZWxpY2E7Civno4EgPiBtYWduZXRpYzsKK+avhSA+IHJlc29sdXRlOwor56ylID4gYVwtaGFtcGVyOwor5ouYID4gcmVzdHJhaW47CivkvJAgPiBjdXRcLWRvd247Civnq4ogPiBzZWNyZXRseTsKK+mKmCA+IGluc2NyaWJlOwor5oSJID4gcGxlYXNhbnQ7CivnqpwgPiBydW5cLWF3YXk7Civlr6ggPiBzdG9ja2FkZTsKK+aIuyA+IHBlcnZlcnNlOwor5rKqID4gc2hhbmdoYWk7Civph5wgPiBjYXVsZHJvbjsKK+WXpCA+IGxhdWdoXC1hdDsKK+WosSA+IHBsZWFzdXJlOwor5aujID4gY2hhcm1pbmc7CivlrqAgPiBmYXZvcml0ZTsKK+aGtiA+IHJlbWVtYmVyOwor6ZOtID4gaW5zY3JpYmU7CivppqggPiBmcmFncmFudDsKK+a4iiA+IHN1cmdlXC11cDsKK+emhCA+IGJsZXNzaW5nOwor56qDID4gc2VjcmV0bHk7CivpobcgPiBhXC1tb21lbnQ7CivnpJkgPiBvYnN0cnVjdDsKK+aElSA+IHN0YXJ0bGVkOwor5ZWhID4gbW9ycGhpbmU7CivotJ4gPiB2aXJ0dW91czsKK+WbmiA+IHByaXNvbmVyOwor6LSmID4gYWNjb3VudHM7CivpgZkgPiBmYXJcLWF3YXk7CivllrsgPiBtZXRhcGhvcjsKK+eTtyA+IGNyb2NrZXJ5Owor6JOmID4gc3VkZGVubHk7Civmu54gPiBibG9ja1wtdXA7CivotKwgPiBkZWNyZWFzZTsKK+S8niA+IHVtYnJlbGxhOwor6IWlID4gcmF3XC1tZWF0Owor5ruUID4gb3ZlcmZsb3c7CivmuoUgPiBzcHJpbmtsZTsKK+WSuCA+IHRvZ2V0aGVyOwor55arID4gZXBpZGVtaWM7CivllaogPiBzeWxsYWJsZTsKK+aymyA+IGFidW5kYW50Owor6IaoID4gdG9cLXN3ZWxsOwor5ZCxID4gY2hpcnBpbmc7CivovakgPiBjYXJyaWFnZTsKK+iupSA+IHJpZGljdWxlOwor6I+MID4gbXVzaHJvb207CivooY0gPiBvdmVyZmxvdzsKK+S6qCA+IHNtb290aGx5Owor55CQID4gdHJpZmxpbmc7Civnu7AgPiBncmFjZWZ1bDsKK+iLnyA+IGNhcmVsZXNzOwor5bSbID4gdG93ZXJpbmc7Civlh7ggPiBwcm90cnVkZTsKK+WaoyA+IGJlXC1ub2lzeTsKK+eQmyA+IHRyZWFzdXJlOwor5ZiAID4gYmFja2JpdGU7Civpk5AgPiBzaGFja2xlczsKK+i4jCA+IGhlc2l0YXRlOwor6LCVID4gcHJvY2xhaW07Civov7ggPiBndXNoXC1vdXQ7CivliZQgPiBwaWNrXC1vdXQ7CivlhoAgPiBob3BlXC1mb3I7CivnoJogPiBpbmtzdG9uZTsKK+aNjSA+IHdhcmRcLW9mZjsKK+iHgCA+IGJ1dHRvY2tzOwor5YCUID4gc3R1YmJvcm47CivlpYQgPiBlcmVcLWxvbmc7CivkvqUgPiBiZVwtbHVja3k7CivmorUgPiBidWRkaGlzdDsKK+ikpSA+IG1hdHRyZXNzOwor5pmWID4gc3Vuc2hpbmU7CivmvL4gPiBvdmVyZmxvdzsKK+eVtCA+IGZhcm1sYW5kOwor556fID4gZ2xhcmVcLWF0Owor55i4ID4gbGFtZW5lc3M7Civmvo4gPiBzcGxhdHRlcjsKK+a9piA+IHRvXC1mbG9vZDsKK+a/kiA+IGFwcHJvYWNoOwor5YGOID4gY2xpbmdcLXRvOwor6J2OID4gc2NvcnBpb247CivnsLggPiB3aW5ub3dlcjsKK+eYnyA+IGVwaWRlbWljOwor5bq2ID4gbnVtZXJvdXM7Civmg6YgPiB0aGlua1wtb2Y7CivmkoIgPiBwdXRcLWRvd247Civor5ggPiBxdWVzdGlvbjsKK+aZlyA+IHByZVwtZGF3bjsKK+i5iiA+IGZvb3RwYXRoOwor56KxID4gYWxrYWxpbmU7CivpmIkgPiBjYXN0cmF0ZTsKK+a3hiA+IGNvbmZ1c2VkOwor6JCmID4gZW50YW5nbGU7CivmpoYgPiBlbG1cLXRyZWU7CivnjJ0gPiBhYnJ1cHRseTsKK+i1kyA+IGNvbnRpbnVlOwor5p6tID4gb3dsXC10aHVzOwor5pumID4gc3VubGlnaHQ7CivpkoogPiBlbmRlYXZvcjsKK+aShSA+IHByb3RydWRlOwor5rikID4gc3dlbGxpbmc7CivovpggPiB3aW5kbGFzczsKK+mTnSA+IGFsdW1pbnVtOwor5o2LID4gdG9cLXBsdWNrOwor55+XID4gc3RyYWlnaHQ7CivombsgPiBob3JzZWZseTsKK+eejCA+IGRvemVcLW9mZjsKK+S6nyA+IHVyZ2VudGx5Owor5pCqID4gd2FyZFwtb2ZmOwor5b6oID4gZG91YnRmdWw7CivllZAgPiB0b1wtdGFzdGU7Civpla8gPiBicmFjZWxldDsKK+WIvSA+IGFtcHV0YXRlOwor6Je7ID4gc3BsZW5kaWQ7Civmg7AgPiBpbmRvbGVudDsKK+eHlCA+IHRvXC1yb2FzdDsKK+a2nSA+IGludW5kYXRlOwor5YGVID4gdG9nZXRoZXI7CivpqrcgPiBza2VsZXRvbjsKK+e7myA+IGRlZXBcLXJlZDsKK+e0iiA+IGNvbmZ1c2VkOwor6YKDID4gcHJvZm91bmQ7CivmsK8gPiBjaGxvcmluZTsKK+WdjSA+IGNvbGxhcHNlOwor5aapID4gY2hhcm1pbmc7CivlmK0gPiBzeWxsYWJsZTsKK+W/kCA+IHRpbW9yb3VzOwor5q6hID4gZW5jb2ZmaW47CivmmLUgPiBpbnRpbWF0ZTsKK+e6rSA+IGNvbmZ1c2VkOwor5L+fID4gd2FpdFwtZm9yOwor5qGiID4gaGFyZHdvb2Q7Civpu48gPiBzdGlja1wtdG87CivmmY8gPiBwZWFjZWZ1bDsKK+mavSA+IHN1cGVyaW9yOwor56a6ID4gZGlzdHJpY3Q7Civnl5ggPiBzbWFsbHBveDsKK+annyA+IGJldGVsbnV0Owor6Z+tID4gc2NhbGxpb247CivmiL4gPiBwZXJ2ZXJzZTsKK+iUqyA+IHdpdGhlcmVkOwor6IaCID4gYmFja2JvbmU7CivlnqAgPiBib3VuZGFyeTsKK+mVrCA+IGNhdWxkcm9uOwor6IOrID4gc2hpbmJvbmU7Civlk5AgPiBzeWxsYWJsZTsKK+ehtyA+IGFsa2FsaW5lOwor6IeDID4gc3dlbGxcLXVwOwor5bKMID4gcGVyaWxvdXM7Civnip8gPiBzdHViYm9ybjsKK+eOjiA+IGppbmdsaW5nOwor6YGiID4gY2FyZWxlc3M7CivlmZQgPiBzeWxsYWJsZTsKK+a7kyA+IHNlZGltZW50Owor6Zq8ID4gYXF1aWxpbmU7Civnv6YgPiBzY2lzc29yczsKK+mZsiA+IGZyb250aWVyOwor6LC2ID4gcHJvcGhlY3k7CivlgbsgPiBodW1wYmFjazsKK+mTgiA+IHBsYXRpbnVtOwor57qbID4gYVwtYmFubmVyOwor5oe/ID4gdmlydHVvdXM7Civpk6wgPiBjaHJvbWl1bTsKK+WohiA+IGdyYWNlZnVsOwor5oW1ID4gaW5kb2xlbnQ7Civog7AgPiBwYW5jcmVhczsKK+imgyA+IHJlYWNoXC10bzsKK+mBvSA+IHN1ZGRlbmx5Owor552+ID4gdGVzdGljbGU7CivnvJwgPiBkZXRhaWxlZDsKK+WAqCA+IGFycm9nYW50Owor6K6jID4gb2JpdHVhcnk7CivpkpsgPiB0aXRhbml1bTsKK+a1gyA+IHNhdHVyYXRlOwor5peWID4gcm9tYW50aWM7CivnvJkgPiByZWRcLXNpbGs7CivlmKMgPiBzeWxsYWJsZTsKK+aHiyA+IHNwbGVuZGlkOwor6KG+ID4gY292ZXJsZXQ7CivlrrggPiBpbXBlcmlhbDsKK+S9niA+IGZsYXR0ZXJ5Owor6JuUID4gdGFwZXdvcm07CivnpZwgPiBibGVzc2luZzsKK+awhSA+IG92ZXJjb2F0Owor5rCfID4gZmx1b3JpbmU7CivmsLAgPiBjeWFub2dlbjsKK+mynyA+IHN0dXJnZW9uOwor5amVID4gaGFuZHNvbWU7CivnoZIgPiBzZWxlbml1bTsKK+iIqCA+IGFcLXNhbXBhbjsKK+eDiiA+IHRvXC1zbWVsdDsKK+iQsSA+IGRheVwtbGlseTsKK+eWuCA+IGphdW5kaWNlOwor6ZOKID4gdGhhbGxpdW07Civor4IgPiBleGVnZXNpczsKK+mbiSA+IHBoZWFzYW50Owor6aKiID4gbHVtaW5vdXM7Civpko8gPiBicmFjZWxldDsKK+aggCA+IGdhcmRlbmlhOwor57uUID4gdHJvdXNlcnM7CivnvLUgPiBjb250aW51ZTsKK+a6mCA+IGFicnVwdGx5Owor6K+SID4gYmVxdWVhdGg7CivmsKYgPiBmbHVvcmluZTsKK+minyA+IGRhd2RsaW5nOwor55erID4gZXBpbGVwc3k7Civoi4sgPiBhbWFyYW50aDsKK+eAoyA+IHNlYVwtbWlzdDsKK+eunSA+IHR3ZWV6ZXJzOwor6LmwID4gaGVzaXRhdGU7CivotYAgPiBwcm9wZXJ0eTsKK+alriA+IG11bGJlcnJ5Owor6ZWKID4gdHdlZXplcnM7CivpgYQgPiB0b1wtaHVycnk7CivpkpIgPiB2YW5hZGl1bTsKK+iLtyA+IGxpY29yaWNlOwor5YuwID4gcGVhY2VmdWw7CivmsL0gPiB0b1wtZmxvYXQ7CivpkqggPiB0dW5nc3RlbjsKK+aEpiA+IGNvbmZ1c2VkOwor5Z+4ID4gYVwtYm9yZGVyOwor6auAID4gYnV0dG9ja3M7Civlq5IgPiBkYXVnaHRlcjsKK+S8myA+IGh1bXBiYWNrOwor55mcID4gZXJ5dGhlbWE7CivnoKYgPiBzdG9ja2FkZTsKK+m4uSA+IHRoZVwtY3JvdzsKK+abmyA+IHR3aWxpZ2h0Owor5qe/ID4gaGliaXNjdXM7CivpqpggPiBzdGFsbGlvbjsKK+W6kSA+IGNvcnJpZG9yOwor5Z27ID4gYW5cLWlzbGV0Owor6KerID4gdG9cLXN0YXJ0Owor6ZO1ID4gYW1tb25pdW07CivmsKkgPiBhcmdvbml1bTsKK+WsliA+IGZhdm9yaXRlOwor5Y2jID4gd2luZVwtcG90Owor6ZSRID4gYW50aW1vbnk7CivphpsgPiBhbGRlaHlkZTsKK+mSvSA+IHRhbnRhbHVtOwor56C8ID4gY29uY3JldGU7CivnhpggPiB0b1wtc3RlYW07Civok4EgPiBhYnVuZGFudDsKK+ivlCA+IGV1bG9naXplOwor56qoID4gYVwtY2VsbGFyOwor5qCyID4gbWFuZ3JvdmU7Civku7MgPiBzZXBhcmF0ZTsKK+myoyA+IHNraXBqYWNrOwor55i/ID4gc3dlbGxpbmc7Civpk7cgPiBydWJpZGl1bTsKK+mTlSA+IGV1cm9waXVtOwor6ZKLID4gcG9sb25pdW07CivnoJEgPiB0b1wtZ3JpbmQ7Civmnp4gPiBmaXJcLXRyZWU7CivmtKsgPiB0b1wtZGl0Y2g7Civmj54gPiB0b1wtY292ZXI7Civln5ogPiBjcnVjaWJsZTsKK+WepCA+IGFudFwtaGlsbDsKK+WNuiA+IHdpbmVjdXBzOwor5ZiPID4gZmVsaWNpdHk7Civpsr0gPiBmbGF0ZmlzaDsKK+myrSA+IG1hY2tlcmVsOwor6ZKqID4gc2NhbmRpdW07CivpkqsgPiBmcmFuY2l1bTsKK+mSkCA+IHNhbWFyaXVtOwor56WTID4gZXhvcmNpc2U7CivmoLMgPiBhXC1iYXNrZXQ7CivlvrwgPiBmcm9udGllcjsKK+WQsiA+IHNtaWxlXC1hdDsKK+iOsCA+IGNhbXBoYW5lOwor6Iq0ID4gZmx1b3JlbmU7Civku50gPiB0b2dldGhlcjsKK+i1nCA+IGFic3RydXNlOwor6b6TID4gYVwtaGFsdGVyOwor6byaID4gZHJ1bW1pbmc7Civpuq4gPiBwb3JyaWRnZTsKK+m5vCA+IGFsa2FsaW5lOwor6bepID4gcGhlYXNhbnQ7Civpt4ogPiBwaGVhc2FudDsKK+m1qyA+IHBoZWFzYW50Owor6bWZID4gYVwtc2hyaWtlOwor6bSwID4gdGhlXC1jcm93Owor6bOuID4gY2hpY2tlbnM7Civps4cgPiBzdHVyZ2VvbjsKK+myuiA+IGNhdFwtZmlzaDsKK+mxoyA+IHN0dXJnZW9uOwor6bGYID4gc3R1cmdlb247CivpsLkgPiBza2lwamFjazsKK+mwiSA+IHN0dXJnZW9uOwor6bCIID4gZmxhdGZpc2g7Civpr7ogPiBibG93ZmlzaDsKK+mvuCA+IGJsb3dmaXNoOwor6a+WID4gbWFja2VyZWw7CivprpAgPiBibG93ZmlzaDsKK+mtqCA+IGJsb3dmaXNoOwor6aytID4gc3RydWdnbGU7CivprKwgPiBzdHJ1Z2dsZTsKK+msqiA+IHN0cnVnZ2xlOwor6aymID4gc3RydWdnbGU7CivprKUgPiBzdHJ1Z2dsZTsKK+msiyA+IGZvcmVsb2NrOwor6ayAID4gdG9cLXNoYXZlOwor6au1ID4gd2hpc2tlcnM7Civpq44gPiBoaXBcLWJvbmU7CivpqYAgPiBzdWRkZW5seTsKK+morSA+IHN0YWxsaW9uOwor6ae+ID4gcnVuXC1hd2F5Owor6aemID4gdG9cLW1vdW50Owor6aeVID4gdG9cLWRyaXZlOwor6aapID4gYXJvbWF0aWM7Civppp8gPiBmcmFncmFudDsKK+mmmiA+IGFyb21hdGljOwor6aSsID4gcG9ycmlkZ2U7CivppKsgPiBkdW1wbGluZzsKK+mkqSA+IGhpY2NvdWdoOwor6aSfID4gbGliYXRpb247CivppJkgPiB0b1wtYWRvcm47CivporEgPiB0YWlwaG9vbjsKK+mhpSA+IGx1bWlub3VzOwor6aGiID4gZGF3ZGxpbmc7CivpoLIgPiBzdHJhaWdodDsKK+mfriA+IHNjYWxsaW9uOwor6Z+hID4gZ29yZ2VvdXM7Civpn6AgPiBrbmVlXC1wYWQ7CivpnbogPiBzdG9ja2luZzsKK+mcqCA+IGNsb3VkaW5nOwor6ZueID4gY2hpY2tlbnM7Civpm4sgPiBzdXBlcmlvcjsKK+masiA+IHN0YWxsaW9uOwor6ZqpID4gcHJvZm91bmQ7CivpmLggPiBkaXN0cmVzczsKK+mWuSA+IGNhc3RyYXRlOwor6ZaSID4gcGVhY2VmdWw7CivplaUgPiBsdXRldGl1bTsKK+mRtyA+IHR3ZWV6ZXJzOwor6ZGlID4gbHV0ZXRpdW07CivpkZUgPiB0dW5nc3RlbjsKK+mRiiA+IGNhdWxkcm9uOwor6ZCyID4gYnJhY2VsZXQ7CivpkIcgPiB2YW5hZGl1bTsKK+mOoiA+IHR1bmdzdGVuOwor6Y6JID4gdGhhbGxpdW07CivpjakgPiBub2JlbGl1bTsKK+mNmiA+IGZyb250bGV0Owor6YySID4gYWN0aW5pdW07Civpi4EgPiBhbHVtaW51bTsKK+mKrCA+IHNoYWNrbGVzOwor6YqqID4gZXVyb3BpdW07CivpiqggPiBhbW1vbml1bTsKK+mKoyA+IHJ1YmlkaXVtOwor6YqNID4gYVwtc2lja2xlOwor6Ym7ID4gY2hyb21pdW07Civpia0gPiB0YW50YWx1bTsKK+mJkSA+IHBsYXRpbnVtOwor6YmIID4gdGhhbGxpdW07CivpiYYgPiB0cmVhc3VyZTsKK+mIqiA+IGJyYWNlbGV0Owor6YinID4gc2NhbmRpdW07CivpiKYgPiB0aXRhbml1bTsKK+mIgSA+IGZyYW5jaXVtOwor6YepID4gdmFuYWRpdW07Civph6cgPiBicmFjZWxldDsKK+mHpCA+IHNhbWFyaXVtOwor6YehID4gY2F1bGRyb247Civph5kgPiBwb2xvbml1bTsKK+mHlyA+IGVuZGVhdm9yOwor6YapID4gc2VkaW1lbnQ7CivphoYgPiB3aW5lXC1jdXA7CivphoMgPiBtYXJpbmF0ZTsKK+mFsiA+IGhhbmdvdmVyOwor6YSwID4gbmVpZ2hib3I7CivphIggPiBzbGlwcGVyczsKK+mChSA+IGhlc2l0YW50Owor6L+7ID4gdG9cLXNoaWZ0Owor6L2KID4gYXhsZVwtdGlwOwor6L2GID4gd2luZGxhc3M7CivovK0gPiBmbGV4aWJsZTsKK+i8rCA+IGFcLWhlYXJzZTsKK+i7nSA+IGF4bGVcLXRpcDsKK+i6rSA+IHRvXC1kZWxheTsKK+i6lSA+IGhlc2l0YXRlOwor6Lm+ID4gdG9cLXNxdWF0Owor6LmnID4gdG9cLXNwb2lsOwor6LimID4gdGhlXC1zaGluOwor6LeFID4gY2FyZWxlc3M7Civot4IgPiBjcmVlcGluZzsKK+i1rCA+IGRlZXBcLXJlZDsKK+i0kiA+IHZpcnR1b3VzOwor6LO+ID4gYWJzdHJ1c2U7Civos6wgPiBhY2NvdW50czsKK+izoSA+IGNvbnRpbnVlOwor6LK2ID4gZGVjcmVhc2U7CivosrIgPiBwcm9wZXJ0eTsKK+ixjiA+IHZlcnRpY2FsOwor6K6WID4gcHJvcGhlY3k7CivorbkgPiB0b1wtc2hvdXQ7CivorZwgPiByZWdpc3RlcjsKK+itlCA+IGV1bG9naXplOwor6K2PID4gcmlkaWN1bGU7CivorL8gPiByaWRpY3VsZTsKK+isvCA+IHRvXC1zaG91dDsKK+irrSA+IHByb2NsYWltOwor6KuGID4gdG9cLWNoZWF0Owor6KmSID4gYmVxdWVhdGg7CivoqYsgPiB0b1wtY3Vyc2U7CivoqYogPiBwbGVhc2luZzsKK+ipgSA+IGV4ZWdlc2lzOwor6KiDID4gb2JpdHVhcnk7CivopbYgPiBpZ25vcmFudDsKK+ilqyA+IHJhaW5jb2F0Owor6KWPID4gcmFpbmNvYXQ7CivopLIgPiB0cm91c2VyczsKK+ikjCA+IHRyb3VzZXJzOwor6KOvID4gY292ZXJsZXQ7CivooI0gPiBzY29ycGlvbjsKK+idsSA+IGhvcnNlZmx5Owor6J2fID4gaGVkZ2Vob2c7CivonY8gPiBcKGluc2VjdFwpOwor6JyxID4gXChpbnNlY3RcKTsKK+icliA+IHRhcGV3b3JtOwor6JqzID4gYW50XC1lZ2dzOwor6JqYID4gdGFwZXdvcm07CivompQgPiBhbnRcLWVnZ3M7CivolrggPiBkdWNrd2VlZDsKK+iWhiA+IHRvXC1jb3ZlcjsKK+iVoyA+IGhpYmlzY3VzOwor6JSJID4gZWFydGhcLXVwOwor6JGWID4gZm9sbGljbGU7Civoi5AgPiBzZXF1ZW5jZTsKK+iJqSA+IHRob2xlcGluOwor6ImMID4gdG9cLWNhdWxrOwor6Ia1ID4gcGFuY3JlYXM7CivohLAgPiB0aGVcLW5lY2s7CivohKsgPiB0YWtlXC1vZmY7CivohJsgPiBzaGluYm9uZTsKK+iDriA+IHRvXC1zd2VsbDsKK+iCqCA+IHRvXC1zd2VsbDsKK+iCjyA+IGNvcHVsYXRlOwor6ICPID4gd2hpc2tlcnM7Civnv6wgPiBwaGVhc2FudDsKK+e/qyA+IGNhcmVsZXNzOwor572HID4gYVwtZ29ibGV0Owor57y3ID4gbGF5XC1kb3duOwor57qYID4gY29udGludWU7CivnuZYgPiB1bWJyZWxsYTsKK+e4vyA+IHN0cmVhbWVyOwor57i0ID4gdG93XC1saW5lOwor57idID4gZGV0YWlsZWQ7CivnuIkgPiByZWRcLXNpbGs7CivnuIggPiBlbnRhbmdsZTsKK+e3uyA+IGRlbGljYXRlOwor57a9ID4gZ3JhY2VmdWw7Civntq8gPiB0b1wtYnJhaWQ7CivntqogPiBkYXJrXC1yZWQ7CivntbsgPiBtb3VybmluZzsKK+e1syA+IGRlZXBcLXJlZDsKK+e1nSA+IHRyb3VzZXJzOwor57SeID4gYVwtZnJpbmdlOwor57ScID4gY29uZnVzZWQ7CivnsaMgPiBib3dcLWNhc2U7CivnsKwgPiBcKGJhbWJvb1wpOwor566CID4gXChiYW1ib29cKTsKK+eroiA+IHdhaXRcLWZvcjsKK+erhCA+IHJ1blwtYXdheTsKK+enjyA+IHRvXC13YXN0ZTsKK+elvyA+IGJsZXNzaW5nOwor56W8ID4gbGliYXRpb247Civno58gPiBtZWRpb2NyZTsKK+eijyA+IGNvbG91cmVkOwor56GvID4gaW5rc3RvbmU7CivnoLkgPiBhc3RhdGluZTsKK+egtSA+IHN5bGxhYmxlOwor55+LID4gdG9cLXN0YXJlOwor556TID4gdG9cLXNsZWVwOwor552PID4gYmVcLXRpcmVkOwor552FID4gYmlnXC1leWVkOwor55usID4gc2FsdFwtcGl0Owor55uZID4gYVwtYmFza2V0Owor55qdID4gbHVtaW5vdXM7Civnma0gPiBzd2VsbGluZzsKK+eZkiA+IGdldFwtd2VsbDsKK+eZjiA+IGVwaWxlcHN5Owor55mIID4gYWJyb2dhdGU7CivnmYMgPiB3ZWFrbmVzczsKK+eZgCA+IGphdW5kaWNlOwor55i8ID4gc2lja25lc3M7CivnmLYgPiB0b1wtY291Z2g7CivnmLAgPiBzY3JvZnVsYTsKK+eYiSA+IGdldFwtd2VsbDsKK+eWhyA+IGZhcm1sYW5kOwor55W6ID4gYm91bmRhcnk7CivnlK8gPiBwZWFjZWZ1bDsKK+eUoSA+IGFidW5kYW50Owor55OpID4ga2lsb3dhdHQ7Civnk6cgPiBkZWNhZ3JhbTsKK+eSmiA+IHNwbGVuZGlkOwor55CrID4gb3JuYW1lbnQ7Civnj7cgPiBcLzJcLXByXC1zdDsKK+ePpCA+IHRyZWFzdXJlOwor54+OID4gcHJlY2lvdXM7Civnj4wgPiBvcm5hbWVudDsKK+eNmCA+IGNvbGxhcHNlOwor54q1ID4gcmVzb2x1dGU7CivniqsgPiBwcm90cnVkZTsKK+eKjiA+IHRoZVwtemVidTsKK+eKhyA+IHJ1blwtZmFzdDsKK+eJsyA+IFwoYm92aW5lXCk7CivnhqQgPiBcKHBlcnNvblwpOwor54WQID4gXChwZXJzb25cKTsKK+eEjCA+IHRvXC1saWdodDsKK+eCpCA+IGlsbHVtaW5lOwor54GRID4gc3ByaW5rbGU7CivngLAgPiBvdmVyZmxvdzsKK+eAoSA+IHNsaXBwZXJ5Owor5r6+ID4gc2xpcHBlcnk7CivmvrEgPiBzZWRpbWVudDsKK+a+hyA+IGludW5kYXRlOwor5r2XID4gZnJpZW5kbHk7CivmvY4gPiByaXBwbGluZzsKK+a7rCA+IHNoYW5naGFpOwor5ruDID4gc3dlbGxpbmc7CivmuqsgPiBsdWtld2FybTsKK+a5oiA+IGJhdGhyb29tOwor5riVID4gc3VyZ2VcLXVwOwor5rW5ID4gc2F0dXJhdGU7Civms5AgPiB0b1wtd3JpdGU7Civmso0gPiBmcmVlemluZzsKK+awviA+IG92ZXJmbG93Owor5rCsID4gYXJnb25pdW07CivmsIkgPiByZXN0bGVzczsKK+avviA+IGFcLWNvYXJzZTsKK+avuyA+IHRvXC1tb3VsdDsKK+avtyA+IHJlc3RsZXNzOwor5q69ID4gbWl4ZWRcLXVwOwor5q6vID4gZW5jb2ZmaW47CivmrpcgPiBzaWNrbmVzczsKK+asmyA+IGFcLWhhbmRsZTsKK+argyA+IGN1cGJvYXJkOwor5qq/ID4gbXVsYmVycnk7CivmqrMgPiBiZXRlbG51dDsKK+aomiA+IGFcLXB1bGxleTsKK+alqCA+IGhhcmR3b29kOwor5qWhID4gZWxtXC10cmVlOwor5qSEID4gdG9cLWdyYWZ0Owor5qKxID4gZG9vcnNpbGw7CivmopQgPiBnYXJkZW5pYTsKK+afpCA+IGhhd3Rob3JuOwor5p+FID4gZmxvdXJpc2g7CivmnrsgPiBsb25nXC1vYXI7Civmm4YgPiBjYWxlbmRhcjsKK+aasSA+IGludGltYXRlOwor5pqmID4gY2FsZW5kYXI7CivmmqAgPiBkYXlicmVhazsKK+aaiSA+IHN1bnNoaW5lOwor5pmnID4gZGF5YnJlYWs7CivmmZsgPiBzdW5saWdodDsKK+aYpCA+IHN1bnNoaW5lOwor5pihID4gbG9uZ1wtZGF5Owor5peYID4gYVwtcGVubm9uOwor5pa+ID4gYVwtcGVubm9uOwor5paIID4gbGVhcm5pbmc7CivmlaogPiB0b1wtd2VpZ2g7CivmlaAgPiB0b1wtd2VpZ2g7CivmlKkgPiBvYnN0cnVjdDsKK+aUniA+IHRvXC1zcGxpdDsKK+aUlCA+IG9ic3RydWN0Owor5pOpID4gdG9cLXN0YWluOwor5pOLID4gb2JzdHJ1Y3Q7Civmko8gPiBwdWxsXC1vdXQ7CivmkbcgPiB0b1wta25vY2s7CivmkLUgPiB3aXBlXC1vZmY7CivmkLIgPiB0b1wtc2VpemU7CivmkK8gPiB0YWtlXC1vdXQ7CivmkIsgPiB0b1wtdGh1bXA7Civmj74gPiB3aXBlXC1vZmY7Civmj7AgPiBwb2tlXC1vdXQ7Civmj6IgPiB0b1wtc2VpemU7Civmj5wgPiBjb3ZlclwtdXA7Civmj4wgPiB0b1wtc2hha2U7CivmjrkgPiB0b1wtcGx1Y2s7CivmjaYgPiB0b1wtc2VpemU7Civmi5EgPiB0b1wtY2xhbXA7CivmiZ4gPiB3YXJkXC1vZmY7CivmiYUgPiBnYXRlXC1iYXI7Civmh5UgPiBzYXRpYXRlZDsKK+aGqiA+IGNvbXBvc2VkOwor5oaWID4gY2F1dGlvdXM7CivmhpIgPiBjb25mdXNlZDsKK+aFrSA+IGNhdXRpb3VzOwor5oWrID4gdG9cLWFsYXJtOwor5oWFID4gYWdpdGF0ZWQ7CivmhYEgPiBkaXNob25vcjsKK+aDvSA+IGNvbmZ1c2VkOwor5oO4ID4gdHJvdWJsZWQ7Civmg5sgPiBjb25mdXNlZDsKK+aDlCA+IGNoZWVyZnVsOwor5oOEID4gbG9uZ1wtZm9yOwor5oKkID4gYWdpdGF0ZWQ7CivmgZ0gPiBjYXJlZnJlZTsKK+aBlCA+IGNoZWVyZnVsOwor5oGMID4gdG9cLXdvcnJ5Owor5oGGID4gY29uc3RhbnQ7Civlv64gPiBzdHViYm9ybjsKK+W+ryA+IHdhaXRcLWZvcjsKK+W9uCA+IHJlc3RsZXNzOwor5b2KID4gc3R1YmJvcm47CivlvKIgPiBib3dcLWNhc2U7Civlu6QgPiB0b1wtcGxhY2U7Civlu6EgPiBjb3JyaWRvcjsKK+W6uyA+IG51bWVyb3VzOwor5bqsID4gYWJ1bmRhbnQ7CivluawgPiBjb3ZlclwtdXA7CivluaMgPiBjdXJyZW5jeTsKK+W4tSA+IHJlbW5hbnRzOwor5bixID4gY292ZXJcLXVwOwor5batID4gZWxldmF0ZWQ7CivltpIgPiB0b3dlcmluZzsKK+WzvyA+IG1vdW50YWluOwor5bKKID4gZm9vdGhpbGw7CivlsbwgPiBtb3VudGFpbjsKK+WvtiA+IHRyZWFzdXJlOwor5a+zID4gdHJlYXN1cmU7Civlr5ogPiBwcmVjaW91czsKK+WurCA+IGFyY2hpdmVzOwor5a2DID4gdHJvdWJsZWQ7CivlrKwgPiBtaXN0cmVzczsKK+WsoSA+IGRhdWdodGVyOwor5aydID4gZGVsaWNhdGU7CivlrIggPiBncmFjZWZ1bDsKK+WrvyA+IHRyYW5xdWlsOwor5au1ID4gY2hhcm1pbmc7Civlqq4gPiBoYW5kc29tZTsKK+WpviA+IGhhbmRzb21lOwor5aivID4gcGxlYXN1cmU7CivlqJsgPiBwbGVhc3VyZTsKK+WnpiA+IGFkdWx0ZXJ5Owor5aeZID4gY29uY2VpdmU7CivlpaEgPiBhcnJvZ2FudDsKK+WgnSA+IGNydWNpYmxlOwor5Z+8ID4gaGVhZGxhbmQ7Civln4AgPiBsZXRcLWRvd247Civlna4gPiBwbGF0Zm9ybTsKK+WcpSA+IG11c2hyb29tOwor5ZuuID4gaW52ZWlnbGU7Civlm4IgPiBiZVwtbm9pc3k7CivlmrsgPiBiZVwtbm9pc3k7CivlmKUgPiB0b1wtd2FzdGU7Civll4MgPiB0b1wtZmx1dGU7CivllqkgPiBtZXRhcGhvcjsKK+WWkyA+IGNoaXJwaW5nOwor5ZaMID4gc3lsbGFibGU7Civllb0gPiB0b1wtc3BlYWs7CivllYcgPiB0b1wtc3RhbGs7CivllKUgPiBhXC1idW5kbGU7Civlk6IgPiBzeWxsYWJsZTsKK+WSuiA+IG1hamVzdGljOwor5ZKcID4gdG9cLXNjb2xkOwor5ZKHID4gZnJhZ3JhbnQ7CivlkaAgPiB0b1wtc3B1cnQ7Civlj5IgPiBvYmVkaWVudDsKK+WOtSA+IGFcLXNwcmluZzsKK+WNvSA+IHByb21wdGx5Owor5Y28ID4gdW5zdGVhZHk7CivljbkgPiBzeW1wYXRoeTsKK+WLlCA+IGVuZGVhdm9yOwor5YuMID4gdG9cLWxhYm9yOwor5Yq7ID4gZmx1cnJpZWQ7CivlipkgPiBhXC1kaXZpZGU7CivlioogPiBhbXB1dGF0ZTsKK+WJnyA+IHRvXC1wcmljazsKK+WIpyA+IGRpc2FzdGVyOwor5YelID4gdG9cLWR3ZWxsOwor5YeFID4gZHJpZWRcLXVwOwor5Ya0ID4gZnJlZXppbmc7CivlhrEgPiBmcmVlemluZzsKK+WGqCA+IGFidW5kYW50Owor5YadID4gc3VpdGFibGU7CivlhocgPiBoYXZlXC1ub3Q7CivlhaMgPiBkZWNpZ3JhbTsKK+WFmyA+IGtpbG9ncmFtOwor5YWZID4gZGVjYWdyYW07CivlhKkgPiBjb21wbGV0ZTsKK+WDpSA+IGJlXC1sdWNreTsKK+WDgyA+IHByZXBhcmVkOwor5YOCID4gaHVtcGJhY2s7CivlgrQgPiBodW1wYmFjazsKK+WCoiA+IHN0dWJib3JuOwor5YKeID4gdW5zdGVhZHk7CivlgowgPiB0b1wtY3Vyc2U7CivlgbggPiB0b1wtc3RlYWw7CivlgbIgPiB0YWxlbnRlZDsKK+WBqyA+IHdhaXRcLWZvcjsKK+WBnyA+IGFnaXRhdGVkOwor5L+TID4gc3RyYWlnaHQ7CivkvqsgPiBmbGF0dGVyeTsKK+S9tCA+IGFcLXNlY29uZDsKK+S9qiA+IGhlc2l0YXRlOwor5L2LID4gY29udGludWU7CivkvYAgPiByZXNlbWJsZTsKK+S8gyA+IGhhbmRzb21lOwor5Lq5ID4gcHJvZ3Jlc3M7CivkubUgPiB0b1wtZW50ZXI7CivktrIgPiB0aGVcLWVkZ2U7CivktbIgPiByYXdcLWhlbXA7CivktaYgPiB0b1wtc3RhaW47CivktZogPiBrYW9saWFuZzsKK+S1kyA+IHRoZVwtbW9sZTsKK+S1iSA+IGFidXRpbG9uOwor5LS7ID4gZHJ5XC1mb29kOwor5LSrID4gYW50ZWxvcGU7CivktJogPiBzYWx0cG9uZDsKK+S0lyA+IGFcLXNocmlrZTsKK+SzuyA+IGFuXC1lYWdsZTsKK+SzpyA+IGFuXC1lYWdsZTsKK+SyliA+IGJpZ1wtZmlzaDsKK+SyjiA+IHRvXC1zcG9pbDsKK+SwpyA+IHNpbmlzdGVyOwor5LCfID4gdGhlXC1zb3VsOwor5K+qID4gYmlnXC1oZWFkOwor5K+aID4gdGhlXC1yaWJzOwor5K+XID4gYnV0dG9ja3M7Civkr5AgPiBzaGluYm9uZTsKK+SvjiA+IHNoaW5ib25lOwor5K+JID4gdG9cLWNob2tlOwor5K+CID4gbnVtZXJvdXM7CivkrbEgPiBhXC1saXR0bGU7CivkrLwgPiBzYXRpYXRlZDsKK+SsuSA+IGFcLXNpY2tsZTsKK+SsiSA+IGhvdFwtd2luZDsKK+SrtyA+IHRoZVwtam93bDsKK+SrmyA+IHJlY2tsZXNzOwor5KuXID4gcmVja2xlc3M7Civkq4MgPiB0aGVcLWxpcHM7CivkqrYgPiB0aGVcLWNoaW47CivkqqkgPiB0b1wtY2hhbnQ7CivkqpwgPiBhXC1zaGllbGQ7CivkqpEgPiB0b1wtc3RpY2s7CivkqoogPiBhXC1oYWx0ZXI7CivkqoUgPiBhXC1xdWl2ZXI7CivkqoEgPiBhXC1oYWx0ZXI7CivkqbQgPiBhXC1xdWl2ZXI7Civkqa4gPiBhXC1xdWl2ZXI7CivkqaAgPiBhXC1naXJkbGU7CivkqYkgPiB0aGVcLWZhY2U7CivkqYggPiBhXC1wbHVtcHk7CivkqLwgPiBkeWVzdHVmZjsKK+SnqyA+IGFcLXRyZW5jaDsKK+SnlSA+IGJvdW5kYXJ5Owor5KeBID4gdG9cLWxlYXZlOwor5KalID4gdG9cLWxlYXJuOwor5KW4ID4gYVwtc2lja2xlOwor5KWtID4gZXZpZGVuY2U7CivkpaUgPiBhXC1zaWNrbGU7CivkpYwgPiBldmlkZW5jZTsKK+SliyA+IHRvXC1zbWVsdDsKK+SkvyA+IHRvXC1jYXJ2ZTsKK+SktiA+IGFcLWhhbW1lcjsKK+SksyA+IGFcLW1pcnJvdzsKK+SksCA+IHRvXC1zbWVsdDsKK+SkqyA+IGFcLWNoaXNlbDsKK+SkqCA+IHRvXC1zcGxpdDsKK+SknSA+IGJyYWNlbGV0Owor5KSQID4gdG9cLWRyaW5rOwor5KKtID4gdG9cLWNvdmVyOwor5KKQID4gdG9cLWdvXC10bzsKK+SihSA+IGRheWJyZWFrOwor5KGtID4gYVwtaGVhcnNlOwor5KC+ID4gdG9cLWRvZGdlOwor5KC5ID4gc2hpbmJvbmU7CivkoKwgPiBpbnNvbW5pYTsKK+SgniA+IHdyaW5rbGVkOwor5KCQID4gdG9cLXNxdWF0Owor5KCDID4gdG9cLXNxdWF0Owor5KCBID4gdG9cLWdvXC11cDsKK+SfuCA+IHRoZVwtY2FsZjsKK+SftiA+IHRvXC1zcXVhdDsKK+SftCA+IHRvXC1zaGFrZTsKK+SflCA+IHRvXC1nb1wtdG87CivknrggPiB0b1wtcmVhY2g7Civknq4gPiB0b1wtY3Jhd2w7Civknp8gPiB0b1wtcHJlc3M7CivknpwgPiB0b1wtcmVhY2g7CivknpQgPiBkZWVwXC1yZWQ7CivknpMgPiBkZWVwXC1yZWQ7CivknaggPiB2aXJ0dW91czsKK+SdgiA+IHRvXC1lcmVjdDsKK+ScrCA+IGFcLWNhdmVybjsKK+ScmCA+IHRvXC1ndWFyZDsKK+SckCA+IHRvXC1saWJlbDsKK+ScgyA+IHRvXC1ibGFtZTsKK+SbpCA+IHVyZ2VudGx5Owor5JuSID4gdG9cLWFyZ3VlOwor5JuHID4gdG9cLWxhdWdoOwor5JuGID4gdG9cLWN1cnNlOwor5Jq3ID4gdG9cLXRyZWF0Owor5JqvID4gdG9cLXF1ZWxsOwor5JqbID4gcmVndWxhdGU7CivkmKsgPiBvbGRcLXJhZ3M7CivkmJwgPiBhXC1uYXBraW47CivkmJkgPiB0b1wtZ3VhcmQ7CivkmJggPiB0b1wtZHJpdmU7CivkmJQgPiB0b1wtdm9taXQ7CivkmI8gPiBzeW1wYXRoeTsKK+SYiSA+IHNpbGt3b3JtOwor5JiHID4gbW9zcXVpdG87Civkl7ogPiBjcmVlcGluZzsKK+SXniA+IHNpbGt3b3JtOwor5JedID4gc2lsa3dvcm07Civkl5ggPiBhXC13ZWV2aWw7Civkl4ggPiBhXC1nYWRmbHk7Civkl4cgPiB0aGVcLXRvYWQ7CivklrsgPiBlcGhlbWVyYTsKK+SWpiA+IHNjb3JwaW9uOwor5JakID4gdG9cLWNyZWVwOwor5JafID4gYVwtZ2FkZmx5Owor5JabID4gb2ZcLXRpZ2VyOwor5JaPID4gdG9cLWR3ZWxsOwor5JaMID4gb2ZcLXRpZ2VyOwor5JaKID4gb2ZcLXRpZ2VyOwor5JaAID4gYW5nZWxpY2E7Civkla8gPiBkdWNrd2VlZDsKK+SVgSA+IHN1ZGRlbmx5Owor5JS9ID4gdG9cLWNvdmVyOwor5JSQID4gZGVsaWNhdGU7Civkk5kgPiBzbGFudGluZzsKK+STlSA+IHBvbHlnYWxhOwor5JOMID4gcG9seWdhbGE7CivkkrMgPiBhXC1mbG93ZXI7CivkkoMgPiB0b1wtYnVpbGQ7CivkkbsgPiBjb3ZlcmluZzsKK+SRmCA+IHRvXC1wb3VuZDsKK+SRgyA+IGRpbVwtbW9vbjsKK+SQkiA+IG5vdFwtZmluZTsKK+SPviA+IHRvXC1zd2VsbDsKK+SPuiA+IHRvXC1zd2VsbDsKK+SPnyA+IGZhdFwtbWVhdDsKK+SPiSA+IHRvXC13YXZlcjsKK+SPiCA+IHRvXC11bml0ZTsKK+SOuiA+IHRvXC1sZWFybjsKK+SOsiA+IGVhclwtbG9iZTsKK+SOriA+IHRvXC1wbGFudDsKK+SOqyA+IHRvXC1wbGFudDsKK+SOoyA+IGFcLXBsb3VnaDsKK+SMtyA+IGFcLXRocmVhZDsKK+SMryA+IGFcLXRydWJhbjsKK+SMrSA+IHJhd1wtaGVtcDsKK+SMrCA+IHN0cmFpZ2h0Owor5IyrID4gYVwtaGF3c2VyOwor5IyaID4gd3JpbmtsZXM7CivkjIMgPiByYXdcLXNpbGs7Civki6EgPiB0b1wtcmVsYXg7Civki5MgPiB3cmlua2xlZDsKK+SLkiA+IHRvXC1yZWxheDsKK+SLgyA+IHN0aW5naW5nOwor5Iq4ID4gdG9cLXR3aXN0Owor5IqdID4gdG9cLWV4aWxlOwor5IqBID4gbGVhdmluZ3M7CivkibsgPiByZWRcLXJpY2U7CivkibEgPiBhXC1jcmFkbGU7Civkia4gPiB0b1wtcGxhbnQ7CivkiaogPiB0b1wtZ3JpbmQ7CivkiZIgPiBhXC13aW5ub3c7CivkiLYgPiBhblwtYXJyb3c7CivkiKsgPiBhXC1oYXdzZXI7Civkh7EgPiBhXC1oYXdzZXI7Civkh4wgPiB0b1wtc3RhbmQ7CivkhrggPiBzcGFjaW91czsKK+SGhCA+IGFcLWJ1bmRsZTsKK+SFsiA+IHRvXC1wbGFudDsKK+SFqCA+IGZyYWdyYW50Owor5IWkID4gdG9cLXBsYW50Owor5IWQID4gYVwtYnVuZGxlOwor5ISAID4gY2FsYW1pdHk7Civkg7ogPiB0b1wtZ3JpbmQ7Civkg5EgPiBzcGVja2xlczsKK+SDhSA+IGR5ZXN0dWZmOwor5IK7ID4gdG9cLWJsb2NrOwor5IGlID4gdG9cLWJsaW5rOwor5IGcID4gYmlnXC1leWVzOwor5IGCID4gYmlnXC1leWVzOwor5IC1ID4gdG9cLWJsaW5rOwor5ICIID4gYVwtdmVzc2VsOwor47+iID4gdG9cLXNoaW5lOwor47+hID4gYVwtaGVsbWV0Owor47+aID4gc2lja25lc3M7Civjv4ggPiBhblwtdWxjZXI7Civjv4UgPiByaW5nd29ybTsKK+O+uCA+IGFcLXNjYWJieTsKK+O+riA+IGphdW5kaWNlOwor476OID4gc2lja25lc3M7Civjvo0gPiBkaXNlYXNlczsKK+O+jCA+IHJpbmd3b3JtOwor476EID4gdG9cLWxpYmVsOwor4727ID4gZGlzZWFzZXM7CivjvbkgPiB0b1wtZmFpbnQ7CivjvZAgPiBmcmFncmFudDsKK+O7hCA+IHRyZWFzdXJlOwor47qaID4gYW5cLW90dGVyOwor47qHID4gYVwtd2FyZGVuOwor47m4ID4gdGhlXC1saW9uOwor47mVID4gaW5mZXJpb3I7CivjuLwgPiB0aGVcLXplYnU7CivjuKYgPiBtdXR1YWxseTsKK+O4nyA+IHRvXC1jb3ZlcjsKK+O4nSA+IGFcLXNob3ZlbDsKK+O4lSA+IHRvXC1zZWl6ZTsKK+O4iSA+IHRvXC1hZGFwdDsKK+O3hiA+IHRocml2aW5nOwor47eAID4gc29saXRhcnk7CivjtrwgPiB2ZXJ5XC1ob3Q7CivjtoQgPiB0b1wtc3RhaW47Civjta0gPiBhblwtaXNsZXQ7CivjtaYgPiBzbGlwcGVyeTsKK+O0tiA+IHRvXC13YXRlcjsKK+O0syA+IHRvXC1zbWVhcjsKK+O0iiA+IGFuXC1hYnlzczsKK+O0iCA+IHNlZGltZW50Owor47OrID4gcmVwZWF0ZWQ7Civjs6AgPiBzbGlwcGVyeTsKK+OzkiA+IHN0YXR1dGVzOwor47K4ID4gZHJpZWRcLXVwOwor47K3ID4gbml0cm9nZW47CivjsrYgPiBjaGxvcmluZTsKK+OysyA+IHRvXC10b3VjaDsKK+OxvyA+IHRoZVwtaHVzazsKK+OxuiA+IHRoZVwtc2tpbjsKK+OxsiA+IHdpdGhlcmVkOwor47GiID4gdGhlXC1kZWFkOwor47GgID4gd2l0aGVyZWQ7CivjsZcgPiBhXC1icmVhdGg7CivjsYUgPiB2aXJ0dW91czsKK+OxgyA+IHRvXC1kcmluazsKK+OwuiA+IHRvXC1kcmluazsKK+OwuSA+IHRvXC1sYXVnaDsKK+OwrSA+IHBsZWFzdXJlOwor47CnID4gdG9cLWRyaW5rOwor47CjID4gdG9cLXZvbWl0Owor47CgID4gdG9cLWNvdmV0Owor47CdID4gdG9cLWNvdWdoOwor46+wID4gdG9cLXBsYW50Owor466tID4gYVwtY2Fza2V0Owor466BID4gZ2FyZGVuaWE7CivjrZkgPiBhXC1oYW1tZXI7CivjrYogPiB0b1wtc3BsaXQ7CivjrLAgPiBhXC1tb21lbnQ7CivjrKcgPiBhXC1jb2xsYXI7CivjrKIgPiBzdW5zaGluZTsKK+OsoSA+IHN1bnNoaW5lOwor46yZID4gc3Vuc2hpbmU7CivjrJcgPiBzdW5zaGluZTsKK+OsjCA+IHN1bnNoaW5lOwor46u9ID4gZGFya25lc3M7Civjq7sgPiBzdW5saWdodDsKK+OqvyA+IHRvXC1icmVhazsKK+OqoSA+IHRvXC1xdWVsbDsKK+OqkyA+IGRpc2FzdGVyOwor46qQID4gdW5zdGFibGU7Civjqo0gPiBzdWRkZW5seTsKK+OqgyA+IHRvXC10aHVtcDsKK+OqgiA+IHVuc3RhYmxlOwor46qAID4gdG9cLWVudGVyOwor46m/ID4gdW5zdGFibGU7CivjqbQgPiB0b1wtc2VpemU7CivjqaggPiB0b1wtY3JhY2s7CivjqZMgPiB0b1wtd291bmQ7CivjqYEgPiB0b1wta25vY2s7CivjqLkgPiB0b1wtY3JhY2s7CivjqLEgPiB0b1wtc2hha2U7CivjqKogPiB0b1wtc2hha2U7CivjqKAgPiB0b1wtc21lYXI7CivjqJ8gPiB0b1wtdG91Y2g7CivjqJQgPiB0b1wtc2hha2U7CivjqJMgPiB0b1wtY2xvc2U7CivvqJAgPiBjZW1ldGVyeTsKK+OokSA+IHRvXC1jb3VudDsKK+OoiCA+IHRvXC1jcm93ZDsKK+OogSA+IHRvXC10aHJvdzsKK+OntSA+IHRvXC1leGFjdDsKK++nsSA+IG5laWdoYm9yOwor46eyID4gdG9cLXNoYWtlOwor46exID4gdG9cLWJyaW5nOwor46esID4gdG9cLXJhaXNlOwor76efID4gZm9vdHdlYXI7Civjp4EgPiB0b1wtY2xvc2U7Civvpr4gPiBjb25zaWRlcjsKK+OmvyA+IGFcLXdpbmRvdzsKK++mpCA+IHRvXC10d2lzdDsKK+OmpSA+IHRhbGVudGVkOwor76ajID4gdGhpbmtcLW9mOwor46akID4gdmlydHVvdXM7CivvppYgPiBwcmFjdGljZTsKK+OmlyA+IGRpbGlnZW50Owor76aLID4gY2FsZW5kYXI7CivjpokgPiB2aXJ0dW91czsKK+OlsCA+IG1vdXJuZnVsOwor76WtID4gcHJvdmluY2U7CivjpaogPiBkaWxpZ2VudDsKK++lniA+IGNpbm5hYmFyOwor76WSID4gc3RyYW5nbGU7CivjpYMgPiBtb3VybmZ1bDsKK+OlgSA+IG1vcmFsaXR5Owor76S8ID4gYmxlc3Npbmc7CivjpLIgPiB0b1wtdGhpbms7CivjpK4gPiBhblwtZXJyb3I7CivvpKggPiBjb3JyaWRvcjsKK+OkpiA+IG1vdXJuZnVsOwor46SkID4gbW91cm5mdWw7CivjpI8gPiBncmlldm91czsKK++khiA+IHNlbnRlbmNlOwor46OwID4gdG9cLXNoYWtlOwor46OrID4gdGhlXC1oZWVsOwor46OeID4gdG9cLXdhbGtpOwor46OLID4gY2lubmFiYXI7Civjo4QgPiBwb3dlcmZ1bDsKK+OitCA+IHRoZVwtd2VzdDsKK+OiqSA+IHRvXC1zaG9vdDsKK+OihSA+IGFcLXNoaWVsZDsKK+OhsyA+IG1vdW50YWluOwor46GpID4gYVwtZ2lyZGxlOwor46GdID4gYVwtbmFwa2luOwor46GWID4gdG9cLWNvdmVyOwor46C5ID4gYVwtdHVyYmFuOwor46C1ID4gYVwtdHVyYmFuOwor46CKID4gYVwtcnVnZ2VkOwor46CJID4gbW91bnRhaW47CivjoIUgPiB0b1wtY292ZXI7Civjn5EgPiBtb3VudGFpbjsKK+OevSA+IG1vdW50YWluOwor4563ID4gbHV4dWlhbnQ7CivjnpEgPiB0aGVcLXRhaWw7CivjnokgPiBiaWdcLWZvb3Q7CivjnoggPiBiaWdcLWZvb3Q7CivjnbIgPiB0b1wtc2xlZXA7Civjna4gPiB0b1wtZXhpbGU7Civjna0gPiB0b1wtYXdha2U7CivjnZggPiBoYXJtb25veTsKK+OdkiA+IHRvXC1kd2VsbDsKK+OdjSA+IHRvXC13cml0ZTsKK+OdiiA+IHRvXC1ndWlkZTsKK+OctiA+IGFcLWNvdXBsZTsKK+OcsyA+IHBlYWNlZnVsOwor45ubID4gcHJlZ25hbnQ7CivjmqMgPiBoYW5kc29tZTsKK+OZoiA+IGFcLXRyb3dlbDsKK+OZmSA+IHRvXC1zbWVhcjsKK+OZgyA+IGFcLWNhdml0eTsKK+OYqiA+IHRvXC13YXN0ZTsKK+OYoCA+IHRvXC1jbG9zZTsKK+OYmSA+IHRvXC1ncm9hbjsKK+OYkSA+IHRvXC1jdXJzZTsKK+OYgCA+IHRvXC1zb3VuZDsKK+OXqiA+IG1vdXRoZnVsOwor45eoID4gdG9cLWxhdWdoOwor45ecID4gdG9cLXNtZWxsOwor45ebID4gdG9cLWxhdWdoOwor45eTID4gbW91dGhmdWw7Civjl4kgPiBpbmNpc2l2ZTsKK+OWuSA+IHRvXC1zcHVydDsKK+OWqSA+IG5vdFwtcHVyZTsKK+OWkyA+IHRvXC1zaG91dDsKK+OWhyA+IHRoZVwtbGlwczsKK+OVvCA+IHRvXC1icmF3bDsKK+OVmyA+IGFcLWZyaWVuZDsKK+OVkCA+IGluY2xpbmVkOwor45WKID4gdG9cLXNsYW50Owor45SwID4gY29uc3RhbnQ7CivjlKogPiB0b1wtY3Jhd2w7CivjlKAgPiBpbmR1c3RyeTsKK+OUniA+IHZpZ29yb3VzOwor45O2ID4gdG9cLWNhcnZlOwor45OaID4gYVwtc2lja2xlOwor45OTID4gdGhpblwtaWNlOwor45K5ID4gdG9cLXVwc2V0Owor45G6ID4gc3VwZXJpb3I7CivjkbQgPiB0b1wtdXN1cnA7CivjkbAgPiBkaXN0cmVzczsKK+ORjSA+IGluZmVyaW9yOwor45CcID4gYW5cLWVuZW15Owor6L+3ID4gYmV3aXRjaDsKK+i/sCA+IG5hcnJhdGU7Civov6UgPiBkaXN0YW50Owor5LitID4gY2VudHJhbDsKK+W/lyA+IHB1cnBvc2U7Civov44gPiByZWNlaXZlOwor5b+MID4gamVhbG91czsKK+WSjCA+IGhhcm1vbnk7Civovq8gPiBkaXNwdXRlOwor5Y67ID4gZ29cLWF3YXk7Civlr7kgPiBjb3JyZWN0Owor556gID4gbG9va1wtYXQ7CivlvosgPiBzdGF0dXRlOwor5b25ID4gc2VydmljZTsKK+ecuiA+IGxvb2tcLWF0Owor5by1ID4gc3RyZXRjaDsKK+W3siA+IGFscmVhZHk7CivlvJggPiBlbmxhcmdlOwor5byVID4gdG9cLXB1bGw7CivlvJQgPiBjb25kb2xlOwor6LyDID4gY29tcGFyZTsKK+aEjyA+IHRob3VnaHQ7Civov5sgPiBhZHZhbmNlOwor55uhID4gZXhoYXVzdDsKK+W7iSA+IHVwcmlnaHQ7Civmg4UgPiBmZWVsaW5nOwor55qwID4gcGltcGxlczsKK+W6liA+IGtpdGNoZW47CivoupMgPiBzdHVtYmxlOwor5bqEID4gdmlsbGFnZTsKK+W5tiA+IGNvbWJpbmU7CivouaAgPiBzdGVwXC1vbjsKK+eZliA+IGNyYXZpbmc7CivluZUgPiBjdXJ0YWluOwor5LujID4gcmVwbGFjZTsKK+W4qyA+IHRlYWNoZXI7CivmgLsgPiBjb2xsZWN0Owor6LiPID4gc3RlcFwtb247CivluIggPiB0ZWFjaGVyOwor55e0ID4gZm9vbGlzaDsKK+WNjiA+IGZsb3dlcnk7CivlvKAgPiBzdHJldGNoOwor55eHID4gZGlzZWFzZTsKK+eXhSA+IGlsbG5lc3M7Civnlr4gPiBpbGxuZXNzOwor5Y+NID4gcmV2ZXJzZTsKK+WQiCA+IGNvbWJpbmU7Civnlo4gPiBuZWdsZWN0Owor5Y+XID4gcmVjZWl2ZTsKK+WKoSA+IGFmZmFpcnM7CivmjqUgPiByZWNlaXZlOwor5bSpID4gcnVwdHVyZTsKK+eJuSA+IHNwZWNpYWw7CivmnI0gPiBjbG90aGVzOwor6LO9ID4gY29tcGV0ZTsKK+izkSA+IHJlbGlldmU7Civnp5EgPiBzZWN0aW9uOwor6L+cID4gZGlzdGFudDsKK+ixqyA+IHJlbGF4ZWQ7CivogZQgPiBjb25uZWN0Owor5L+dID4gcHJvdGVjdDsKK+WwvSA+IGV4aGF1c3Q7CivpnakgPiBsZWF0aGVyOwor5bCNID4gY29ycmVjdDsKK+WwiiA+IHJlc3BlY3Q7Civlk4EgPiBhcnRpY2xlOwor5bCJID4gb2ZmaWNlcjsKK+WjqyA+IHNjaG9sYXI7Civph48gPiBtZWFzdXJlOwor5a++ID4gY29ycmVjdDsKK+eoiyA+IGpvdXJuZXk7Civlr6kgPiBleGFtaW5lOwor5a+fID4gZXhhbWluZTsKK+aegSA+IGV4dHJlbWU7Civku6QgPiBjb21tYW5kOwor5pyqID4gbm90XC15ZXQ7CivmjIEgPiBzdXN0YWluOwor5Y6GID4gaGlzdG9yeTsKK+WuoyA+IGRlY2xhcmU7Civlj7IgPiBoaXN0b3J5Owor5a6XID4gbGluZWFnZTsKK+iuriA+IGNvbnN1bHQ7CivnjocgPiB0b1wtbGVhZDsKK+WnlCA+IGFwcG9pbnQ7CivorbcgPiBwcm90ZWN0Owor6K2wID4gY29uc3VsdDsKK+WFtSA+IHNvbGRpZXI7CivlrZQgPiBvcGVuaW5nOwor5LqJID4gZGlzcHV0ZTsKK+eptiA+IGV4YW1pbmU7CivorLkgPiBwcnVkZW50Owor6KeGID4gbG9va1wtYXQ7CivorJsgPiBleHBsYWluOwor5qC8ID4gcGF0dGVybjsKK+iruCA+IHNldmVyYWw7CivorrIgPiBleHBsYWluOwor6KumID4gY2FyZWZ1bDsKK+aAlSA+IHRvXC1mZWFyOwor54uhID4gY3VubmluZzsKK+abviA+IGFscmVhZHk7Civlh4YgPiBhcHByb3ZlOwor5q61ID4gc2VjdGlvbjsKK+eyviA+IGVzc2VuY2U7Civnq58gPiBmaW5hbGx5Owor6KqgID4gc2luY2VyZTsKK+ipriA+IGV4cGxhaW47CivmlbQgPiBvcmRlcmx5Owor5amJID4gYW1pYWJsZTsKK+WkhyA+IHByZXBhcmU7Civlj6YgPiBhbm90aGVyOwor6ZmIID4gZXhoaWJpdDsKK+aVhSA+IGFuY2llbnQ7CivoqJsgPiBzd2luZGxlOwor6KiXID4gZW50cnVzdDsKK+ihoyA+IGNsb3RoZXM7CivoqIogPiBpbnF1aXJlOwor54iGID4gY3JhY2tsZTsKK+aJuSA+IGNvbW1lbnQ7CivpgIEgPiBzZWVcLW9mZjsKK+aEvyA+IHNpbmNlcmU7CivlpYcgPiBzdHJhbmdlOwor54eVID4gc3dhbGxvdzsKK+eHiCA+IGxhbnRlcm47Civopr0gPiBsb29rXC1hdDsKK+WmrCA+IGplYWxvdXM7CivmuLggPiB0b1wtc3dpbTsKK+impyA+IGxvb2tcLWF0Owor5Lu9ID4gcG9ydGlvbjsKK+aVoiA+IHRvXC1kYXJlOwor6KaWID4gbG9va1wtYXQ7CivlppYgPiBzdHJhbmdlOwor54W9ID4gc3RpclwtdXA7CivogIMgPiBleGFtaW5lOwor5p2RID4gdmlsbGFnZTsKK+acnSA+IGR5bmFzdHk7CivogrIgPiBwcm9kdWNlOwor5oqkID4gcHJvdGVjdDsKK+WbviA+IGRpYWdyYW07CivliJggPiBzdXJuYW1lOwor5aSVID4gZXZlbmluZzsKK+aJvyA+IGluaGVyaXQ7Civoo7MgPiBjbG90aGVzOwor5LmhID4gY291bnRyeTsKK+ijgSA+IGN1dFwtb3V0Owor5peiID4gYWxyZWFkeTsKK+a8lCA+IHBlcmZvcm07CivmgKogPiBzdHJhbmdlOwor6KKCID4gc2xlZXZlczsKK+mHhyA+IGNvbGxlY3Q7CivoobAgPiBkZWNsaW5lOwor6LWbID4gY29tcGV0ZTsKK+eBryA+IGxhbnRlcm47CivovoMgPiBjb21wYXJlOwor6KGhID4gbWVhc3VyZTsKK+WhniA+IHN0b3BcLXVwOwor5pmvID4gc2NlbmVyeTsKK+igoiA+IHdyaWdnbGU7Civkvp0gPiByZWx5XC1vbjsKK+eAnSA+IHRyaWNrbGU7Civog5wgPiB2aWN0b3J5Owor5r+hID4gaW1tZXJzZTsKK+a/nyA+IHRvXC1oZWxwOwor6J+LID4gY3JpY2tldDsKK+ifgCA+IGNyaWNrZXQ7CivlnosgPiBwYXR0ZXJuOwor5ZyWID4gZGlhZ3JhbTsKK+a8hiA+IHZhcm5pc2g7CivmvIEgPiB0b1wtZmlzaDsKK+WbsyA+IGRpYWdyYW07CivmlaMgPiBzY2F0dGVyOwor6JuGID4gbWFnZ290czsKK+absiA+IGNyb29rZWQ7CivmurYgPiB0b1wtbWVsdDsKK+WOgiA+IGZhY3Rvcnk7Civogq8gPiB3aWxsaW5nOwor5oqTID4gc2NyYXRjaDsKK+iZqyA+IGluc2VjdHM7CivmuacgPiB3ZWxsXC11cDsKK+iMgyA+IHN1cm5hbWU7CivpnaAgPiBsZWFuXC1vbjsKK+a4rCA+IG1lYXN1cmU7CivmjoggPiBnaXZlXC10bzsKK+a4hyA+IHRoaXJzdHk7CivmiawgPiBzY2F0dGVyOwor5re6ID4gc2hhbGxvdzsKK+a3qyA+IG9ic2NlbmU7CivpgpMgPiBzdXJuYW1lOwor6beEID4gY2hpY2tlbjsKK+WXhyA+IG1pc2VybHk7CivmirEgPiBlbWJyYWNlOwor6aKEID4gcHJlcGFyZTsKK+edmyA+IGV5ZWJhbGw7Civmi6wgPiBpbmNsdWRlOwor6ZmNID4gZGVzY2VuZDsKK+m2jyA+IGNoaWNrZW47Civorq8gPiBpbnF1aXJlOwor6LW1ID4gc3VybmFtZTsKK+a1hSA+IHNoYWxsb3c7Civnp4EgPiBwcml2YXRlOwor6JSRID4gZGlzZGFpbjsKK+WuoSA+IGV4YW1pbmU7Civms6EgPiBidWJibGVzOwor6Ze5ID4gcXVhcnJlbDsKK+aVrCA+IHJlc3BlY3Q7CivphpIgPiB3YWtlXC11cDsKK+ayjCA+IGNoYW90aWM7CivmmrQgPiB2aW9sZW50Owor6bKBID4gZm9vbGlzaDsKK+aKoiA+IHBsdW5kZXI7CivlkZEgPiBzd2FsbG93Owor56+HID4gY2hhcHRlcjsKK+mxiCA+IGNvZGZpc2g7CivlkYIgPiBzdXJuYW1lOwor5oulID4gZW1icmFjZTsKK+WQiiA+IGNvbmRvbGU7Civor7ggPiB2YXJpb3VzOwor6I+vID4gZmxvd2VyeTsKK+WPrSA+IHRydW1wZXQ7CivmtYsgPiBtZWFzdXJlOwor6ZiFID4gZXhhbWluZTsKK+WPmSA+IGV4cHJlc3M7CivnjJsgPiB2aW9sZW50Owor5Y6tID4gZGlzbGlrZTsKK+WOqCA+IGtpdGNoZW47Civpm4UgPiBlbGVnYW50Owor6Zu3ID4gdGh1bmRlcjsKK+mtryA+IGZvb2xpc2g7CivpuKEgPiBjaGlja2VuOwor6K+aID4gc2luY2VyZTsKK+erniA+IGNvbnRlbmQ7Civmk40gPiBjb25kdWN0Owor5Y2SID4gc29sZGllcjsKK+ivuiA+IHByb21pc2U7CivljIYgPiBoYXN0aWx5Owor5qyFID4gemVsa292YTsKK+iLuiA+IGJlcnJpZXM7Civli50gPiB2aWN0b3J5Owor5YetID4gbGVhblwtb247Civli5kgPiBhZmZhaXJzOwor6IuXID4gc3Byb3V0czsKK+eisCA+IGNvbGxpZGU7Civoi5EgPiBwYXN0dXJlOwor5Lu/ID4gaW1pdGF0ZTsKK+apnyA+IG1hY2hpbmU7CivmoI8gPiByYWlsaW5nOwor6aiZID4gc3dpbmRsZTsKK+WIiCA+IGN1dFwtb2ZmOwor54ugID4gdmljaW91czsKK+aYoCA+IHByb2plY3Q7CivmiKogPiBjdXRcLW9mZjsKK+W/oCA+IGxveWFsdHk7CivmiY4gPiBwdWxsXC11cDsKK+iFuSA+IHN0b21hY2g7CivmpbUgPiBleHRyZW1lOwor6IiSID4gb3BlblwtdXA7CivpqpcgPiBzd2luZGxlOwor5Ye2ID4gY3VscHJpdDsKK+aFsCA+IGNvbWZvcnQ7CivppJggPiBzdXJwbHVzOwor5pKSID4gcmVsZWFzZTsKK+aEgSA+IGFueGlldHk7CivmlqQgPiBhXC1jYXR0eTsKK+WDkSA+IHNvam91cm47CivmibYgPiBzdXBwb3J0Owor5q+BID4gZGVzdHJveTsKK+i+qSA+IGRpc3B1dGU7Civog4MgPiBzdG9tYWNoOwor5qKwID4gd2VhcG9uczsKK+iSiyA+IHN1cm5hbWU7CivlgpkgPiBwcmVwYXJlOwor6L+dID4gZGlzb2JleTsKK+S4oiA+IGRpc2NhcmQ7CivogoYgPiBpbmR1bGdlOwor5YK7ID4gZm9vbGlzaDsKK+e7lSA+IGVudHdpbmU7CivogbMgPiB1cmdlXC1vbjsKK+a2giA+IHN1cm5hbWU7CivoiLAgPiB3YXJzaGlwOwor5oG8ID4gYW5nZXJlZDsKK+i+oyA+IHBlcHBlcnk7CivlgJogPiByZWx5XC1vbjsKK+mgkCA+IHByZXBhcmU7Civml4sgPiByZXZvbHZlOwor5YCJID4gZ3JhbmFyeTsKK+i+vSA+IGRpc3RhbnQ7CivnvZogPiBwZW5hbHR5Owor5ou+ID4gcGlja1wtdXA7CivmgaIgPiByZXN0b3JlOwor57+BID4gb2xkXC1tYW47Civnvr0gPiBmZWF0aGVyOwor5oqWID4gdHJlbWJsZTsKK+iniCA+IGxvb2tcLWF0Owor5L6vID4gbWFycXVpczsKK+aDkSA+IGNvbmZ1c2U7CivkvbUgPiBjb21iaW5lOwor572wID4gcGVuYWx0eTsKK+mblSA+IGVuZ3JhdmU7CivljowgPiBkaXNsaWtlOwor5a+/ID4gb2xkXC1hZ2U7Civot4wgPiBzdHVtYmxlOwor6ZSmID4gYnJvY2FkZTsKK+adjyA+IGFwcmljb3Q7Civpu44gPiBzdXJuYW1lOwor5oWMID4gbmVydm91czsKK+WxoCA+IGJ1dGNoZXI7Civmn48gPiBjeXByZXNzOwor6ZyNID4gcXVpY2tseTsKK+mZtiA+IHBvdHRlcnk7CivmkYQgPiB0YWtlXC1pbjsKK+aXqCA+IHB1cnBvc2U7Civpl68gPiBydXNoXC1pbjsKK+WGryA+IHN1cm5hbWU7CivmibAgPiBkaXN0dXJiOwor6ZuAID4gc3BhcnJvdzsKK+WonCA+IGVsZWdhbnQ7Civmmq4gPiBldmVuaW5nOwor6ZiBID4gY2hhbWJlcjsKK+WNoiA+IGNvdHRhZ2U7CivlkJ4gPiBzd2FsbG93Owor5p+cID4gY2FiaW5ldDsKK+aahyA+IGxlaXN1cmU7CivmhKcgPiBhc2hhbWVkOwor5pm2ID4gY3J5c3RhbDsKK+e5niA+IGVudHdpbmU7CivmmZ0gPiBkYXl0aW1lOwor562LID4gbXVzY2xlczsKK+e4vSA+IGNvbGxlY3Q7CivmmLwgPiBkYXl0aW1lOwor5ZKoID4gaW5xdWlyZTsKK+aSkSA+IHByb3BcLXVwOwor6YCGID4gZGlzb2JleTsKK+WhqyA+IGZpbGxcLWluOwor5pe6ID4gcHJvc3BlcjsKK+e3rCA+IGRpc3RhbnQ7CivosKggPiBwcnVkZW50Owor5ri0ID4gdGhpcnN0eTsKK+eWjyA+IG5lZ2xlY3Q7CivogJcgPiBjb25zdW1lOwor57ePID4gY29sbGVjdDsKK+mWsiA+IGV4YW1pbmU7CivpkqYgPiByZXNwZWN0Owor6ZajID4gY2hhbWJlcjsKK+aZiyA+IGFkdmFuY2U7CivmgqYgPiBwbGVhc2VkOwor5paRID4gbW90dGxlZDsKK+i3tSA+IHRyYW1wbGU7CivotL4gPiBzdXJuYW1lOwor5riUID4gdG9cLWZpc2g7CivolKEgPiBzdXJuYW1lOwor5oO2ID4gZmVhcmZ1bDsKK+ewviA+IGFcLWJsaW5kOwor6LSpID4gcGVkZGxlcjsKK+aIiCA+IGhhbGJlcmQ7CivpkJAgPiBmZXR0ZXJzOwor5o+aID4gc2NhdHRlcjsKK+iZuSA+IHJhaW5ib3c7Civnr4QgPiBwYXR0ZXJuOwor5a+hID4gd2lkb3dlZDsKK+WQlSA+IHN1cm5hbWU7Civpg4ogPiBzdWJ1cmJzOwor5b69ID4gYVwtYmFkZ2U7CivosK0gPiBzdXJuYW1lOwor5o2oID4gZGlzY2FyZDsKK+myjSA+IGFiYWxvbmU7Civku5MgPiBncmFuYXJ5Owor6YymID4gYnJvY2FkZTsKK+eshCA+IGhhaXJwaW47Civmsr4gPiBtb2lzdGVuOwor56u2ID4gY29udGVuZDsKK+S/niA+IHN1cm5hbWU7CivnnpIgPiBkZWNlaXZlOwor56uDID4gZnVybmFjZTsKK+S+qCA+IHNvam91cm47CivmgbMgPiBzaW5jZXJlOwor5oqSID4gZXhwcmVzczsKK+WnnCA+IHN1cm5hbWU7CivmibEgPiBjb2xsZWN0Owor56i9ID4gZXhhbWluZTsKK+ijlCA+IHByb2dlbnk7CivnnbkgPiBsb29rXC1hdDsKK+WMqiA+IGJhbmRpdHM7CivmvZggPiBzdXJuYW1lOwor5oaRID4gbGVhblwtb247CivmppwgPiBwbGFjYXJkOwor5p6JID4gdXNlbGVzczsKK+e8hSA+IGRpc3RhbnQ7CivmhaUgPiBzaW5jZXJlOwor6aqHID4gdGVycmlmeTsKK+aFhyA+IGNhcmVmdWw7CivnrKggPiBmb29saXNoOwor6IC4ID4gdXJnZVwtb247CivouKkgPiBzdGVwXC1vbjsKK+mDtyA+IGNvdW50cnk7Civmg7EgPiBhbmdlcmVkOwor5oK4ID4gZmVhcmZ1bDsKK+aSsCA+IGNvbXBvc2U7Civmg60gPiBhc2hhbWVkOwor5Z6DID4gZ2FyYmFnZTsKK+mpvCA+IGFcLWNhbWVsOwor6YGgID4gZGlzdGFudDsKK+mBlSA+IGRpc29iZXk7CivpgZEgPiBsZWlzdXJlOwor5Zy+ID4gZ2FyYmFnZTsKK+ixuSA+IGxlb3BhcmQ7CivnvLQgPiBkZWxpdmVyOwor5ZOoID4gd2hpc3RsZTsKK+mAsiA+IGFkdmFuY2U7CivlmrwgPiBwcmF0dGxlOwor5pinID4gb2JzY3VyZTsKK+aLoiA+IGNvbGxlY3Q7Civml7EgPiBkcm91Z2h0Owor6K+hID4gZGVjZWl2ZTsKK+aQhSA+IGRpc3R1cmI7CivogYIgPiB3aGlzcGVyOwor6I69ID4gdGhpY2tldDsKK+mmgCA+IHN1cnBsdXM7CivmgKEgPiBoYXJtb255Owor5Y6uID4gc2VydmFudDsKK+iMqCA+IGNhbHRyb3A7CivnspggPiB2aXNjb3VzOwor5pGnID4gZGVzdHJveTsKK+acvSA+IGRlY2F5ZWQ7CivlqLQgPiBlbGVnYW50Owor54SVID4gc2hpbmluZzsKK+ixgSA+IG9wZW5cLXVwOwor6Km5ID4gc3VybmFtZTsKK+eGhCA+IHB1dFwtb3V0Owor6YC+ID4gZ29cLW92ZXI7CivlppIgPiBqZWFsb3VzOwor6YKxID4gc3VybmFtZTsKK+mGiyA+IHZpbmVnYXI7CivmlowgPiByZWZpbmVkOwor5a+HID4gYmFuZGl0czsKK+WxryA+IHZpbGxhZ2U7CivmgZUgPiBmb3JnaXZlOwor5rKmID4gYmVcLWxvc3Q7CivlsrEgPiBkYWlzaGFuOwor5pKHID4gZGlzY2FyZDsKK+iusyA+IGNvbmNlYWw7Civmt4wgPiB0cmlja2xlOwor5bKUID4gZGl2ZXJnZTsKK+WAjyA+IGhhc3RpbHk7CivpnJMgPiByYWluYm93Owor5Z6SID4gcmFtcGFydDsKK+mCtSA+IHN1cm5hbWU7CivlhaIgPiBmZWFyZnVsOwor6LWmID4gZm9yZ2l2ZTsKK+W9piA+IGVsZWdhbnQ7Civnv5ggPiB0dXJuXC11cDsKK+aMmiA+IHNpbmNlcmU7Civpg50gPiBzdXJuYW1lOwor6KeRID4gcGVlcFwtYXQ7Civmi44gPiB0b1wtaGF1bDsKK+WZnCA+IHZlcmJvc2U7CivpmJAgPiBleHBsYWluOwor5omSID4gc2NyYXRjaDsKK+WHuSA+IGNvbmNhdmU7CivmkqkgPiBsaWZ0XC11cDsKK+aMoCA+IHNjcmF0Y2g7CivltL0gPiBhXC1jaGlsZDsKK+W7liA+IHN1cm5hbWU7Civnn6sgPiBjb3JyZWN0Owor5raFID4gYmxhY2tlbjsKK+apsSA+IGNhYmluZXQ7Civlk4YgPiB0cmVtYmxlOwor6LmsID4gc3RlcFwtb247CivmgYMgPiByZWx5XC1vbjsKK+aLlyA+IHRvXC1wdWxsOwor5Ym/ID4gZGVzdHJveTsKK+ewjCA+IGZhbGxpbmc7Civor5sgPiBleGVjdXRlOwor5o6zID4gY2FwdHVyZTsKK+W5jCA+IGN1cnRhaW47CivnqpIgPiBzdG9wXC11cDsKK+mbjSA+IGhhcm1vbnk7CivppoUgPiBmaWxsaW5nOwor556/ID4gc3VybmFtZTsKK+ehhSA+IHNpbGljb247CivnmKkgPiBwaW1wbGVzOwor5rilID4gbW9pc3RlbjsKK+mCoiA+IHN1cm5hbWU7CivouYsgPiBzdGVwXC1vbjsKK+aKqCA+IGltcGVhY2g7Civmk44gPiBsaWZ0XC11cDsKK+aGqCA+IGZvb2xpc2g7Civogr4gPiBraWRuZXlzOwor6ZStID4gc3BpbmRsZTsKK+eqpiA+IHN1cm5hbWU7CivosJsgPiBjYXJlZnVsOwor5oGZID4gaWxsbmVzczsKK+iMrCA+IGhhcnZlc3Q7Civom5AgPiBjcmlja2V0Owor6ZWjID4gZmV0dGVyczsKK+aypSA+IHRyaWNrbGU7CivosKQgPiBzbGFuZGVyOwor6ZKzID4gcGluY2VyczsKK+edvSA+IHN0YXJpbmc7CivpmLEgPiBwaXRmYWxsOwor5aeXID4gc2xhbmRlcjsKK+i3pCA+IHN0dW1ibGU7CivmsYAgPiBzYW5kYmFyOwor56ekID4gYmFsYW5jZTsKK+aZviA+IGFpclwtZHJ5Owor6Zy5ID4gdGh1bmRlcjsKK+i3miA+IHN0YWdnZXI7CivouLkgPiB0cmFtcGxlOwor6I6eID4gc21pbGluZzsKK+m4pSA+IHNlYWd1bGw7CivokYYgPiByZXNlcnZlOwor5rCiID4gYW1tb25pYTsKK+W4pyA+IHBpY3R1cmU7Civms68gPiBkZXN0cm95Owor5YyhID4gY29ycmVjdDsKK+S9ryA+IHByZXRlbmQ7CivmmqcgPiBvYnNjdXJlOwor54OsID4gY2luZGVyczsKK+iajCA+IG95c3RlcnM7CivotLsgPiBnaXZlXC10bzsKK+iwhiA+IHBhdGllbnQ7Civlk50gPiB3aGlzcGVyOwor6KO0ID4gc3VybmFtZTsKK+ivvSA+IHNsYW5kZXI7CivnmZ4gPiBsZXByb3N5Owor5ZWEID4gdG9cLXBlY2s7Civmi4QgPiBsZWFuXC1vbjsKK+e/jiA+IGZlYXRoZXI7Civnh44gPiB0b1wtYnVybjsKK+i/syA+IHBhc3NcLWJ5Owor5pahID4gcmV2b2x2ZTsKK+aBuCA+IHNhZG5lc3M7CivllawgPiBtaXNlcmx5Owor5b+RID4gZmVhcmZ1bDsKK+WSgiA+IHRvXC1zdWNrOwor55u5ID4gdG9cLWRvemU7Civkv74gPiBzb1wtdGhhdDsKK+ewqiA+IGhhaXJwaW47CivotYggPiByZWxpZXZlOwor6K+gID4gZXhwbGFpbjsKK+iwmiA+IHByb3ZlcmI7CivmjrggPiB0b1wtZHVzdDsKK+WMriA+IHRvXC1sYWNrOwor5bmhID4gcGVubmFudDsKK+iuuSA+IHN3aW5kbGU7Civlm7EgPiBjaGltbmV5Owor5bSCID4gbGFvc2hhbjsKK+WohCA+IHN1cm5hbWU7Civlj58gPiBvbGRcLW1hbjsKK+idjCA+IHRhZHBvbGU7CivomqogPiB0YWRwb2xlOwor5rCoID4gYW1tb25pYTsKK+mTgCA+IHVyYW5pdW07CivmjJsgPiB0YW5nbGVkOwor6K+LID4gc2xhbmRlcjsKK+e7ryA+IHNjYXJsZXQ7CivmlLggPiBkaXN0YW50Owor6bioID4gYnVzdGFyZDsKK+iclyA+IGFcLXNuYWlsOwor6LCpID4gZGVjZWl2ZTsKK+aBqyA+IGluXC1wYWluOwor6LCAID4gZmxhdHRlcjsKK+i4riA+IHRpcFwtdG9lOwor6aaKID4gc3BvaWxlZDsKK+edhyA+IGxvb2tcLWF0Owor6ZKZID4gY2FsY2l1bTsKK+aNsSA+IHB1dFwtb2ZmOwor6JK/ID4gbXVnd29ydDsKK+mFtiA+IGVuenltZXM7CivmtqMgPiBzY2F0dGVyOwor5p2zID4gb2JzY3VyZTsKK+ihoiA+IGhpZ2h3YXk7CivotaEgPiBzdXBwb3J0Owor56O6ID4gc3VscGh1cjsKK+i5tiA+IHN0dW1ibGU7CivosIQgPiBmbGF0dGVyOwor6LmpID4gdG9cLWxpbXA7Civnv58gPiBzdXJuYW1lOwor5rWjID4gdG9cLXdhc2g7CivnlrkgPiBtZWFzbGVzOwor56qIID4gb2JzY3VyZTsKK+W5lCA+IGN1cnRhaW47CivpnaUgPiBkaW1wbGVzOwor5o6HID4gY29sbGVjdDsKK+aEhiA+IGFcLWZhdWx0Owor6bi1ID4gb3N0cmljaDsKK+ellyA+IHJlc3BlY3Q7CivkvZggPiBzdXJuYW1lOwor56qVID4gc2xlbmRlcjsKK+i/qSA+IGJlXC1uZWFyOwor5L2wID4gaHVuZHJlZDsKK+mCsCA+IHN1cm5hbWU7Civpgp0gPiBzdXJuYW1lOwor6ZK5ID4gY3ltYmFsczsKK+S8iSA+IGNvbXBhcmU7CivpnbwgPiB0YXJ0YXJzOwor54WyID4gdG9cLWhlYXQ7CivnjZAgPiByb2VidWNrOwor5L2dID4gcmlja2V0czsKK+iTnyA+IGNpcmNpdW07Civpu5wgPiBkaXNtaXNzOwor6LCyID4gY3VubmluZzsKK+aRiCA+IGV4Y2x1ZGU7Civpo5MgPiBjeWNsb25lOwor6LCXID4gc2xhbmRlcjsKK+iDsSA+IGJsYWRkZXI7Civppb0gPiBmZXJydWxlOwor6K+zID4gZGVjZWl2ZTsKK+mmjyA+IGRpc3RpbGw7Civoi68gPiBiZW56ZW5lOwor5re8ID4gYVwtZmxvb2Q7CivmoY4gPiBmZXR0ZXJzOwor572EID4gZXhoYXVzdDsKK+iNgCA+IHN1cm5hbWU7Civpk7EgPiBpcmlkaXVtOwor6JGpID4gZmxvd2VyczsKK+mAoSA+IHJldHJlYXQ7CivpgLYgPiB3aW5kaW5nOwor5a6lID4gZm9yZ2l2ZTsKK+iQuCA+IGRvZ3dvb2Q7CivmjJ0gPiB0b1wtYmVhdDsKK+mSvyA+IGhhaXJwaW47CivnhrUgPiBlbnRyb3B5Owor54WoID4gdG9cLXN0ZXc7CivnoJIgPiBhcnNlbmljOwor5pmBID4gbW9ybmluZzsKK+iwmCA+IGNvbnN1bHQ7Civlh4cgPiBkZXdkcm9wOwor5ZmYID4gcG91dGluZzsKK+WUoyA+IGNoYXR0ZXI7CivpqqAgPiBjaGFyZ2VyOwor5pK3ID4gcGlja1wtdXA7CivmgIQgPiBhbm5veWVkOwor6ZSCID4gbGl0aGl1bTsKK+eWpSA+IHNjYWJpZXM7CivnqJcgPiBkYXJuZWxzOwor5rSuID4gY2xlYW5zZTsKK+aCrSA+IG1pc2VybHk7Civpha4gPiBrZXRvbmVzOwor6IWaID4gYnV0dG9jazsKK+mAkSA+IGNvbGxlY3Q7CivohbEgPiB0ZW5kb25zOwor6aaUID4gdG9cLWZlZWQ7CivmkKAgPiB0b1wtZGF1YjsKK+iMsSA+IGRvZ3dvb2Q7CivnoLcgPiBhcnNlbmljOwor6YWhID4gZmx1c2hlZDsKK+eWtCA+IGlsbG5lc3M7CivmiJcgPiBzdXBwb3J0Owor5ZGSID4gdW5jbGVhcjsKK+iwjCA+IHNpbmNlcmU7Civnl6cgPiBjaG9sZXJhOwor5oGCID4gY2FyZWZ1bDsKK+espCA+IGFcLWJyb29tOwor6Z+rID4gc2VjcmV0ZTsKK+aAmyA+IGdyaWV2ZWQ7CivmgJkgPiByZWx5XC1vbjsKK+eatCA+IGNoYXBwZWQ7CivooaQgPiBjbG90aGVzOwor5buqID4gZ3JhbmFyeTsKK+W6viA+IGdyYW5hcnk7CivmjKIgPiBjb3JyZWN0Owor552iID4gZ2F6ZVwtYXQ7CivloawgPiBwbGF0ZWF1Owor6J6vID4gbmlwcGVyczsKK+eNkiA+IG1hc3RpZmY7CivmsoYgPiBhXC1mZXJyeTsKK+W4lCA+IGFcLXNraXJ0Owor5pOiID4gcHVsbFwtdXA7CivoloUgPiB0b1wtd2VlZDsKK+iOtCA+IGxldHR1Y2U7CivnvrwgPiBjb25mdXNlOwor5o2tID4gdG9cLW9wZW47Civoka0gPiBidWxydXNoOwor5YClID4gYm9vcmlzaDsKK+a6tCA+IGJyb21pbmU7Civlu5sgPiBhXC1zdG9yZTsKK+aPuCA+IGhhbmRmdWw7Civku7UgPiBzaW1pbGFyOwor6auLID4gaGlwYm9uZTsKK+iCsSA+IGZvcmVhcm07CivljrYgPiBwcml2YXRlOwor6JqNID4gbXVzc2VsczsKK+WTmSA+IHN3YWxsb3c7CivplZMgPiBnYWxsaXVtOwor6ZOLID4gYmlzbXV0aDsKK+iDnSA+IGNhbGxvdXM7CivmgoMgPiBzaW5jZXJlOwor55+9ID4gc2lsaWNvbjsKK+i1jSA+IHByZXNlbnQ7Civnv6UgPiB0b1wtc29hcjsKK+icniA+IGdyYXBzdXM7Civom6kgPiBjcmlja2V0Owor6LCgID4gY291bnNlbDsKK+mzlSA+IGNvZGZpc2g7Civot4YgPiB0cmFtcGxlOwor55+sID4gYVwtZHdhcmY7CivmrZkgPiB0b1wtc3VjazsKK+mhvCA+IGdyaWV2ZWQ7CivmurIgPiB1cmluYXRlOwor6JW7ID4gYnVkZGluZzsKK+WIsyA+IGN1dFwtb3V0Owor6bmIID4gcGVsaWNhbjsKK+mTmSA+IGN5bWJhbHM7CivmpJ8gPiBjYWJpbmV0Owor6ZWJID4gY2FkbWl1bTsKK+WrmCA+IHN1cm5hbWU7CivorIcgPiBzdHV0dGVyOwor5oa3ID4gcGFpbmZ1bDsKK+aRrSA+IHBpY2tcLXVwOwor6LChID4gcmlzZVwtdXA7CivopIogPiBjcmFtcGVkOwor6bmVID4gcGVsaWNhbjsKK+mVsiA+IGN5bWJhbHM7Civpko0gPiB0aG9yaXVtOwor5rCqID4ga3J5cHRvbjsKK+i/riA+IHRvXC1yaXNlOwor5b+JID4gZ3JpZXZlZDsKK+iTjSA+IG1pbGZvaWw7CivouKwgPiBzdHVtYmxlOwor6YavID4gdmluZWdhcjsKK+ievSA+IGthdHlkaWQ7CivojZEgPiBzcHJvdXRzOwor6YOTID4gc3VybmFtZTsKK+WJgCA+IHNoYXJwZW47CivouYAgPiB0b1wtc2tpcDsKK+mUjiA+IGNhZXNpdW07CivpkocgPiB5dHRyaXVtOwor5rCaID4gdHJpdGl1bTsKK+eKuCA+IG1hbW1vdGg7Civoj7ggPiB0b1wtZmFkZTsKK+WOjSA+IHN1cm5hbWU7CivpsrEgPiBoZXJyaW5nOwor6LKKID4gbGVvcGFyZDsKK+i6niA+IHRvXC13YWxrOwor6Ju0ID4gbWFnZ290czsKK+mUviA+IG1lYXN1cmU7Civpk4wgPiBuaW9iaXVtOwor55WAID4gdG9cLWdpdmU7CivpgZggPiB0b1wtbWVldDsKK+aztyA+IHJhaW5pbmc7CivokqEgPiBidXJkb2NrOwor6K+8ID4gc2xhbmRlcjsKK+mrjCA+IGtuZWVjYXA7Civps5kgPiBiaWdoZWFkOwor6bOYID4gY29kZmlzaDsKK+mzhiA+IGFiYWxvbmU7CivntbcgPiBjb25maW5lOwor566mID4gYmVkXC1tYXQ7CivnmJggPiBmaXN0dWxhOwor6bi4ID4gc3dhbGxvdzsKK+mVhCA+IGZlcm1pdW07CivmgacgPiBhc2hhbWVkOwor56WGID4gb3JtYXpkYTsKK+WroCA+IGFcLXdpZG93Owor5pC0ID4gZXh0cmFjdDsKK+W7kiA+IGdyYW5hcnk7Civpg4QgPiBzdXJuYW1lOwor6K+cID4gaW5xdWlyZTsKK+WDpiA+IHRvXC1oZWlyOwor6b6hID4gdG9cLWJsb3c7CivpvbAgPiB0b1wtYml0ZTsKK+m9qSA+IHRvXC1jaGV3Owor6b2aID4gdG9cLWNoZXc7CivpvLcgPiBhXC1tb3VzZTsKK+m6niA+IHJvZWJ1Y2s7CivpuJEgPiBhXC1sYXJnZTsKK+m3nyA+IHBob2VuaXg7Civpt5cgPiBzZWFndWxsOwor6beWID4gc2VhZ3VsbDsKK+m2uiA+IHdhZ3RhaWw7CivptrkgPiB0aGVcLW93bDsKK+m2piA+IHBlbGljYW47CivptpggPiBwZWxpY2FuOwor6bWuID4gdG9cLXBlY2s7CivptZwgPiBwZWxpY2FuOwor6bSvID4gc3dhbGxvdzsKK+m0qyA+IGFcLXNuaXBlOwor6bSVID4gb3N0cmljaDsKK+m0jiA+IHNlYWd1bGw7CivptIcgPiBidXN0YXJkOwor6bOmID4gc3dhbGxvdzsKK+mymiA+IGFuY2hvdnk7Civpsa0gPiBhbmNob3Z5Owor6bGoID4gY29kZmlzaDsKK+mxhCA+IGFuY2hvdnk7CivpsL0gPiBoZXJyaW5nOwor6bC1ID4gY29kZmlzaDsKK+mwriA+IHNhcmRpbmU7CivpsJsgPiBzYXJkaW5lOwor6bCSID4gYWJhbG9uZTsKK+mvtyA+IGFuY2hvdnk7Civpr6EgPiBoZXJyaW5nOwor6a6RID4gYWJhbG9uZTsKK+mtnCA+IG1lcm1haWQ7CivprKcgPiBxdWFycmVsOwor6auWID4gaGlwYm9uZTsKK+mrlSA+IGtuZWVjYXA7CivpqqsgPiBiZVwtYmVudDsKK+mqiSA+IHJ1bm5pbmc7CivpqZkgPiBcKGhvcnNlXCk7CivpqZIgPiBkYXBwbGVkOwor6amDID4gY2hhcmdlcjsKK+moqCA+IGRhcHBsZWQ7Civpp60gPiB0ZXJyaWZ5Owor6aedID4gYVwtY2FtZWw7Civpp4sgPiBcKGhvcnNlXCk7Civppq4gPiBzdXJuYW1lOwor6aWQID4gc3BvaWxlZDsKK+mkvyA+IHNwb2lsZWQ7CivppL4gPiBkaXN0aWxsOwor6aS1ID4gdG9cLWZlZWQ7CivppLIgPiBzcG9pbGVkOwor6aSRID4gZmVycnVsZTsKK+mjpCA+IHRvXC1mZWVkOwor6aK2ID4gY3ljbG9uZTsKK+misyA+IHRvXC1ibG93Owor6aKrID4gYVwtc3Rvcm07CivpoJkgPiBjb3JyZWN0Owor6aCKID4gZ3JpZXZlZDsKK+mfoyA+IGJvd1wtYmFnOwor6Z+FID4gaGFybmVzczsKK+mdqCA+IGRpbXBsZXM7CivpnIUgPiB0aHVuZGVyOwor6ZufID4gc3BhcnJvdzsKK+mbmiA+IGFcLWhlcm9uOwor6Zm+ID4gaW5cLWZpbGU7CivpmbMgPiBleGhpYml0Owor6ZmeID4gcHJvbW90ZTsKK+mYpyA+IHNsb3Bpbmc7Civpl6EgPiBleHBsYWluOwor6ZeWID4gcnVzaFwtaW47CivplrEgPiBleGFtaW5lOwor6ZaZID4gcXVhcnJlbDsKK+mWiCA+IHZpbGxhZ2U7CivplaYgPiBmZXJydWxlOwor6ZO9ID4gdGVyYml1bTsKK+mTvCA+IHJoZW5pdW07Civpk6ogPiBoYWZuaXVtOwor6ZOlID4gdGh1bGl1bTsKK+mTkSA+IHJob2RpdW07CivpkqwgPiBob2xtaXVtOwor6ZCoID4gZmVybWl1bTsKK+mQkyA+IGZlcnJ1bGU7CivpkIMgPiBjeW1iYWxzOwor6Y61ID4gZ2FsbGl1bTsKK+mOmCA+IGNhZG1pdW07CivpjbAgPiBtZWFzdXJlOwor6Yy4ID4gcmhlbml1bTsKK+mMtiA+IGFcLXdhdGNoOwor6YygID4gc3BpbmRsZTsKK+mMgCA+IFwobWV0YWxcKTsKK+mLsSA+IHRlcmJpdW07Civpi7AgPiBsaXRoaXVtOwor6YuVID4gZW5ncmF2ZTsKK+mLiiA+IGFcLXBva2VyOwor6YuCID4gYml0XC1jdXA7CivpiqkgPiB0aHVsaXVtOwor6YqlID4gaXJpZGl1bTsKK+mJvyA+IGhhZm5pdW07CivpibcgPiB0cmlnZ2VyOwor6YmyID4gY2FkbWl1bTsKK+mJlyA+IHBpbmNlcnM7CivpiY0gPiBiaXNtdXRoOwor6Yi/ID4gaGFpcnBpbjsKK+mIviA+IHVyYW5pdW07CivpiLggPiBjeW1iYWxzOwor6YiuID4gbmlvYml1bTsKK+mIpSA+IGhvbG1pdW07CivpiKMgPiBjYWxjaXVtOwor6Ye4ID4gc2lsaWNvbjsKK+mHtyA+IHRob3JpdW07Civph7EgPiBmZXR0ZXJzOwor6YeUID4geXR0cml1bTsKK+mFhyA+IGNvbGxlY3Q7CivphLogPiBzdXJuYW1lOwor6YSnID4gc3VybmFtZTsKK+mElSA+IGNvdW50cnk7CivphIkgPiBjb3VudHJ5Owor6YSGID4gc3VybmFtZTsKK+mDiSA+IHN1cm5hbWU7CivpgqggPiB2aWxsYWdlOwor6YKHID4gYmVcLW5lYXI7CivpgbwgPiBkaXN0YW50Owor6YG2ID4gZW50d2luZTsKK+mBryA+IGRlY2VpdmU7CivpgLogPiBkaXN0YW50Owor6YC3ID4gZGlzdGFudDsKK+mAlSA+IHBhc3NcLWJ5Owor6YCIID4gZGlzdGFudDsKK+i/tCA+IHJldm9sdmU7CivovbcgPiBzdXJuYW1lOwor6L2SID4gY2hhcmlvdDsKK+i8vSA+IHZlaGljbGU7Civou7IgPiBhXC13aGVlbDsKK+i7mCA+IHdhclwtY2FyOwor6LqmID4gdG9cLWp1bXA7CivouqAgPiB0b1wtbGltcDsKK+i6nSA+IHRvXC1wYXNzOwor6LqYID4gdG9cLXdhbGs7CivouoQgPiBjcmlwcGxlOwor6LqCID4gc3R1bWJsZTsKK+i5oSA+IHRvXC1saW1wOwor6LirID4gY29sbGlkZTsKK+i4kCA+IHRyYW1wbGU7CivouIggPiBuZWdsZWN0Owor6Le0ID4gc3RlcFwtb247Civot6wgPiB0b1wtc3RlcDsKK+i3lSA+IHNodWZmbGU7CivotrcgPiB0b1wtam9sdDsKK+i2mSA+IHN1cm5hbWU7CivotpIgPiB0b1wtanVtcDsKK+i0jSA+IHN1cHBvcnQ7CivotIcgPiBhZmZhYmxlOwor6LSDID4gdG9cLWVhcm47Civos6sgPiBwcmVzZW50Owor6LOdID4gcHJlaW91czsKK+iziCA+IHN1cm5hbWU7Civosr0gPiBnaXZlXC10bzsKK+iyqSA+IHBlZGRsZXI7CivosZcgPiBjbGFtb3VyOwor6LCrID4gc2hhbGxvdzsKK+ivuSA+IGNvbnN1bHQ7Civorp8gPiBzbGFuZGVyOwor6K6cID4gY291bnNlbDsKK+iukiA+IHNsYW5kZXI7CivorowgPiBhXC1mZWFzdDsKK+iuhyA+IGZsYXR0ZXI7Civorb4gPiBzaGFsbG93Owor6K24ID4gZGVjZWl2ZTsKK+itmiA+IHN1cm5hbWU7CivorY4gPiBjdW5uaW5nOwor6K2IID4gZGlzbGlrZTsKK+isviA+IGRlY2VpdmU7CivorLcgPiBzbGFuZGVyOwor6KyzID4gdG9cLXNpbmc7CivorK0gPiBzaGFsbG93Owor6KyfID4gZmxhdHRlcjsKK+islyA+IHNsYW5kZXI7CivorJYgPiByaXNlXC11cDsKK+isjCA+IHNsYW5kZXI7CivorIYgPiBiZWd1aWxlOwor6Ku+ID4gcHJvbWlzZTsKK+iruiA+IHByb3ZlcmI7Civoq7YgPiBzaW5jZXJlOwor6KuxID4gY29uY2VhbDsKK+irriA+IGNvbnN1bHQ7Civoq5sgPiBmbGF0dGVyOwor6KuaID4gY29tbWFuZDsKK+irkSA+IHNsYW5kZXI7Civoq48gPiBjb25zdWx0Owor6KuEID4gcGF0aWVudDsKK+irgiA+IGZsYXR0ZXI7CivoqrkgPiBzbGFuZGVyOwor6KqRID4gZGVjZWl2ZTsKK+iqhSA+IGV4ZWN1dGU7Civoqb4gPiBub2lzaWx5Owor6Km1ID4gaW5xdWlyZTsKK+iprSA+IGRlY2VpdmU7CivoqasgPiB0b1wtYnJhZzsKK+iphiA+IHNsYW5kZXI7CivoqYUgPiB0b1wtc2VsbDsKK+iouyA+IGV4cGxhaW47CivoqKwgPiBjbGFtb3VyOwor6KipID4gbm9pc2lseTsKK+iopiA+IHNpbmNlcmU7CivoqKIgPiBwbGVhc2VkOwor6KiRID4gZGVjZWl2ZTsKK+inoSA+IGFudGxlcnM7CivoprcgPiBwZWVwXC1hdDsKK+impSA+IGFzaGFtZWQ7CivoppwgPiBtaXNzaW9uOwor6KWcID4gZmx1dHRlcjsKK+ilgyA+IGNvbW1lbmQ7CivopL0gPiBjdXNoaW9uOwor6KSUID4gY29tcGxleDsKK+ijtSA+IHN1cm5hbWU7Civoo5IgPiBjb2xsZWN0Owor6KK9ID4gY2xvdGhlczsKK+iiuiA+IGhvbGRcLXVwOwor6KKqID4gc2xlZXZlczsKK+ihtSA+IGNoZW1pc2U7CivooJAgPiBtYWdnb3RzOwor6J6uID4gcmFpbmJvdzsKK+iduCA+IGFcLXNuYWlsOwor6J2DID4gcmFpbmJvdzsKK+idgCA+IHJhaW5ib3c7CivonKsgPiBpbnNlY3RzOwor6JqrID4gYWJhbG9uZTsKK+iakSA+IHRpcFwtdG9lOwor6JmGID4gZW50d2luZTsKK+iYiiA+IGNvbGxlY3Q7Civol7QgPiBjb2xsZWN0Owor6JeZID4gZG9nd29vZDsKK+iWvSA+IFwoZ3Jhc3NcKTsKK+iWtiA+IHRvXC1idXJ5Owor6JaTID4gZ2luc2VuZzsKK+iWkCA+IHNwaW5hY2g7CivoloogPiBjaXJjaXVtOwor6JWdID4gaGFuZGZ1bDsKK+iUvyA+IHN1cm5hbWU7CivolKMgPiBzdXJuYW1lOwor6JSYID4gZ2luc2VuZzsKK+iTjCA+IHByZXRlbmQ7CivokpAgPiBjb2xsZWN0Owor6JGgID4gZ2luc2VuZzsKK+iRiiA+IGNvdHRhZ2U7CivokLUgPiBsZXR0dWNlOwor6I+qID4gaGVuYmFuZTsKK+iPpyA+IHN0aWJlbmU7CivojoogPiB2aWxsYWdlOwor6I6AID4gdG9cLWZhcm07CivojZggPiB2aWxsYWdlOwor6Iy3ID4gZmx1dHRlcjsKK+iMoCA+IHRvXC13ZWVkOwor6Iu9ID4gYnVscnVzaDsKK+iLhSA+IGN1dFwtb2ZmOwor6ImmID4gd2Fyc2hpcDsKK+iIkyA+IHRvXC1saWNrOwor6IedID4gYmVcLWJhcmU7CivohZYgPiBwZXB0b25lOwor6IWOID4ga2lkbmV5czsKK+iEnSA+IGRpc3RlbmQ7CivogbYgPiB3aGlzcGVyOwor6IGvID4gY29ubmVjdDsKK+iBriA+IGNvbm5lY3Q7CivogasgPiBjb25uZWN0Owor6IGoID4gY29ubmVjdDsKK+iAiSA+IG9sZFwtYWdlOwor6ICIID4gb2xkXC1hZ2U7Civnv7kgPiB0dXJuXC11cDsKK+e/qiA+IGZsdXR0ZXI7CivnvpAgPiB0b1wtbGVhZDsKK+e9uCA+IHBlbmFsdHk7CivnvZYgPiBrd3VreWVsOwor57y7ID4gcG90dGVyeTsKK+e8siA+IHRvXC1yZWVsOwor57mzID4gZGVsaXZlcjsKK+e4tiA+IGNvbmZpbmU7CivnuIIgPiBjb2xsZWN0Owor57eLID4gc2NhcmxldDsKK+e3gSA+IHRvXC1qb2luOwor57WqID4gbWF0dGluZzsKK+eygiA+IHN1cm5hbWU7CivnsZsgPiBzdXJuYW1lOwor57GRID4gdG9cLWZlZWQ7CivnsIAgPiBiZWRcLW1hdDsKK+essCA+IGN1cnRhaW47CivnrJMgPiB0b1wtY29tYjsKK+eruCA+IGNvbnRlbmQ7Civnq5IgPiBzdHJhbmdlOwor56uIID4gZnVybmFjZTsKK+erhyA+IHN1cm5hbWU7CivnqoAgPiB0b1wtYnVyeTsKK+epqyA+IGhhcnZlc3Q7CivnqIogPiBkYXJuZWxzOwor56iHID4gdG9cLWJpbmQ7Civnp5AgPiB0b1wtd2VlZDsKK+emoiA+IHN1cm5hbWU7CivnpoIgPiB0b1wtcHJheTsKK+ektSA+IGFyc2VuaWM7Civno4cgPiBhcnNlbmljOwor56KDID4gXChzdG9uZVwpOwor55+xID4gbWVhc3VyZTsKK+efryA+IGNvcnJlY3Q7Civnn58gPiAnJ1wtbGFuY2U7Civnnq8gPiB0b1wtcGVlcDsKK+eeniA+IGRlY2VpdmU7CivnnL0gPiB0b1wtZ2F6ZTsKK+ectCA+IGRhenpsZWQ7CivnnI4gPiBsb29rXC1hdDsKK+ebpyA+IGNvdHRhZ2U7CivnmakgPiBsZXByb3N5Owor55moID4gcXVpY2tseTsKK+eYuyA+IGZpc3R1bGE7CivnmJ0gPiBpbGxuZXNzOwor55WQID4gdG9cLWZpbGw7CivnlJQgPiBiaWdcLWphcjsKK+eTmyA+IHNjYXB0cmU7CivnkrogPiBhXC1jcmFjazsKK+eSiiA+IHJlZGRpc2g7CivnkLEgPiBlbmdyYXZlOwor546nID4gcmVkZGlzaDsKK+eNuSA+IGFcLWhvdW5kOwor542aID4gc3BhbmllbDsKK+eLiSA+IGZveFwtY3ViOwor54qGID4gc3BlY2lhbDsKK+eJriA+IHByb3BcLXVwOwor54e8ID4gY2luZGVyczsKK+eGuyA+IHRvXC1oZWF0Owor54a4ID4gcHV0XC1vdXQ7Civnhq8gPiBieVwtZmlyZTsKK+eFuyA+IHRvXC13YXJtOwor54WlID4gc2hpbmluZzsKK+eDiSA+IHNoaW5pbmc7CivngbQgPiB0b1wtYmFrZTsKK+eAuSA+IHRvXC1ib2lsOwor54CnID4gcmFpbmluZzsKK+a+oyA+IGNsZWFuc2U7CivmvpAgPiBiaWxsb3dzOwor5r2sID4gYVwtcmFwaWQ7CivmuqYgPiBkcml6emxlOwor5ri8ID4gcmlwcGxlczsKK+a4pyA+IHRvXC1kcm9wOwor5riZID4gc2NhdHRlcjsKK+a3qiA+IGJlXC1sb3N0Owor5ra2ID4gdG9cLXNwaXQ7CivmtpIgPiBtZWFuZGVyOwor5rS4ID4gc3BhcmtsZTsKK+ayhCA+IGJpbGxvd3M7CivmsYsgPiB0b1wtcG91cjsKK+awvCA+IHRvXC1zaW5rOwor5rCVID4gcHJvdGl1bTsKK+avmiA+IGN1bm5pbmc7Civmr4AgPiBkZXN0cm95Owor5q26ID4gdmljaW91czsKK+atnCA+IGZ1cmlvdXM7CivmrL0gPiByZXNwZWN0Owor5qyEID4gcmFpbGluZzsKK+arpSA+IGNhYmluZXQ7Civmq50gPiBjYWJpbmV0Owor5qmGID4gd2l0aG91dDsKK+amoiA+IGFcLWZyYW1lOwor5qSXID4gXChwbGFudFwpOwor5qO4ID4gc3VybmFtZTsKK+agoiA+IGN5cHJlc3M7CivmnrwgPiBhXC10YWJsZTsKK+aekyA+IGNhcGl0YWw7CivmnbggPiB0b1wta2lsbDsKK+adtiA+IHZhcm5pc2g7CivmnL4gPiB0b1wtYnVtcDsKK+acsCA+IGt3dWt5ZWw7CivmnKIgPiBsb29rXC1hdDsKK+aciiA+IHByb3RlaW47Civmm70gPiBhbHJlYWR5Owor5puWID4gb2JzY3VyZTsKK+aZiSA+IGFkdmFuY2U7Civml6MgPiBhbHJlYWR5Owor5pa/ID4gdG9cLXN3aW07Civmlq4gPiBjdXRcLW9mZjsKK+aWoCA+IG1lYXN1cmU7CivmloEgPiBkaXNsaWtlOwor5pW+ID4gdG9cLXJ1bGU7Civmla8gPiB0b1wtZGVmeTsKK+aVrSA+IHNjYXR0ZXI7CivmlZwgPiBmaWxsXC11cDsKK+aVmCA+IGV4cHJlc3M7CivmlY0gPiBleHByZXNzOwor5pS3ID4gZXhhbWluZTsKK+aUqiA+IGRpc3R1cmI7CivmlKMgPiB0YW5nbGVkOwor5pSdID4gdGFrZVwtaW47CivmlI8gPiBjb2xsZWN0Owor5pO+ID4gZGlzdHVyYjsKK+aTuCA+IHRvXC1ob2xkOwor5pO3ID4gcGlja1wtdXA7Civmk68gPiBleGNsdWRlOwor5pOdID4gdG9cLXB1bGw7Civmk4QgPiBjYXB0dXJlOwor5pOBID4gZW1icmFjZTsKK+aSviA+IHRvXC1iZWF0Owor5pK5ID4gZGlzdHVyYjsKK+aStCA+IHRvXC1qb2x0Owor5pKjID4gdG9cLWR1c3Q7CivmkqIgPiB0b1wtZHVzdDsKK+aSnyA+IGNvcnJlY3Q7CivmkpMgPiBzY3JhdGNoOwor5pKQID4gcHJvcFwtdXA7Civmka8gPiBzaW5jZXJlOwor5pGgID4gZ2VuZXJhbDsKK+aRgiA+IHRha2VcLWluOwor5pC3ID4gdG9cLWJlYXQ7CivmkLYgPiBwbHVuZGVyOwor5o69ID4gY29sbGlkZTsKK+aOryA+IG9wcHJlc3M7CivmjI0gPiBjb2xsYXRlOwor5ourID4gdG9cLXB1bGw7CivmioggPiB0b1wtYmVuZDsKK+aJvSA+IHRvXC1tb3ZlOwor5oinID4gc3VwcG9ydDsKK+aHsCA+IGJlXC1nbGFkOwor5oerID4gZW5yYWdlZDsKK+aHpCA+IGdyaWV2ZWQ7Civmh5sgPiBhbGFybWVkOwor5oeHID4gc2luY2VyZTsKK+aHhiA+IGFueGlvdXM7Civmh4UgPiBiYXNoZnVsOwor5oaDID4gZm9vbGlzaDsKK+aFsyA+IG1pc2VybHk7CivmhaogPiBhbm5veWVkOwor5oWfID4gc2FkbmVzczsKK+aFmiA+IGFzaGFtZWQ7CivmhZkgPiBhc2hhbWVkOwor5oSQID4gYmFzaGZ1bDsKK+aEiiA+IHNpbmNlcmU7Civmg7cgPiB3cmlnZ2xlOwor5oOjID4gb3ZlcmFsbDsKK+aDliA+IHJlc3BlY3Q7Civmg5MgPiBjYXJlZnVsOwor5oOHID4gYmVcLWtpbmQ7CivmgqkgPiBhbmdlcmVkOwor5oKcID4gb2JzY3VyZTsKK+aCkCA+IHJlc3BlY3Q7CivmgoUgPiBwbGVhc2VkOwor5oGgID4gc3RyYW5nZTsKK+aBiSA+IG1lYW5pbmc7CivmgLEgPiBoYXN0aWx5Owor5b2nID4gcmVmaW5lZDsKK+W9pSA+IGVsZWdhbnQ7CivlvZogPiBjb2xsZWN0Owor5b2ZID4gY29sbGVjdDsKK+W9hiA+IGF3a3dhcmQ7Civlu6kgPiBncmFuYXJ5Owor5bugID4gZmFjdG9yeTsKK+W7nSA+IHNlcnZhbnQ7Civlu5ogPiBraXRjaGVuOwor5buMID4gdW5pY29ybjsKK+W7iyA+IGNvbmNlYWw7CivluqQgPiBwcmVwYXJlOwor5bm3ID4gY29tYmluZTsKK+W5qyA+IHRvXC1oZWxwOwor5bmoID4gY3VydGFpbjsKK+W5gCA+IHBpY3R1cmU7CivluL8gPiBtYXJxdWlzOwor5biyID4gc2hlbHRlcjsKK+W4oSA+IHNoZWx0ZXI7Civlt78gPiByZXZvbHZlOwor5beHID4gYVwtY3JhY2s7CivltpcgPiBsYW9zaGFuOwor5bSLID4gZmxvd2VyeTsKK+WwnyA+IHN1cm5hbWU7Civlr6ogPiBzdXJuYW1lOwor5a2FID4gc2xlbmRlcjsKK+WruyA+IGVsZWdhbnQ7Civlq7ogPiByZWZpbmVkOwor5aq/ID4gYXNoYW1lZDsKK+WquyA+IHRvXC1tb3ZlOwor5aqeID4gYXRcLWVhc2U7CivlqawgPiBvYnNjZW5lOwor5amBID4gc3VybmFtZTsKK+WnjSA+IHNsYW5kZXI7CivlpZsgPiBvcGVuaW5nOwor5aSjID4gYVwtZHJlYW07Civlo70gPiBvbGRcLWFnZTsKK+WjrSA+IGt3dWt5ZWw7Civlo50gPiBhXC1tb3VuZDsKK+WjmCA+IHJhbXBhcnQ7Civlo5QgPiBhXC1tb3VuZDsKK+WhvSA+IHBsYXRlYXU7CivloaEgPiBmaWxsXC1pbjsKK+WhkyA+IHBsYXN0ZXI7CivloYEgPiByYW1wYXJ0Owor5aCEID4gcGFyYXBldDsKK+WflyA+IGFcLXdoYXJmOwor5ZyXID4gZGlhZ3JhbTsKK+WclSA+IGxpYnJhcnk7CivlnIIgPiBwaWdcLXN0eTsKK+WbqiA+IGNoaW1uZXk7CivlmqUgPiBzd2FsbG93Owor5ZqVID4gdmVyYm9zZTsKK+WaiiA+IHRvXC1wYW50Owor5ZmyID4gc3dhbGxvdzsKK+WZpSA+IHdoaXNwZXI7CivlmLggPiB1bmNsZWFyOwor5Ze5ID4gY2hhdHRlcjsKK+WWviA+IGVtcGVyb3I7CivllqUgPiBhXC1wbGFjZTsKK+WVsSA+IGNvcnJlY3Q7CivllJ4gPiB0b1wtZ2FzcDsKK+WUhSA+IGFcLXNvdW5kOwor5ZK+ID4gYVwtbm9pc2U7CivlkoogPiBoYXJtb255Owor5ZKJID4gYW5cLWVjaG87Civlkb8gPiB0b1wteWF3bjsKK+WRrCA+IHRvXC1yZXN0Owor5ZGrID4gd2hpc3BlcjsKK+WRjCA+IHRvXC1jYWxsOwor5Y+cID4gb2xkXC1tYW47CivljrwgPiBrd3VreWVsOwor5Y6wID4gZmFjdG9yeTsKK+WOqyA+IGdyYW5hcnk7CivljpkgPiBzdXJuYW1lOwor5Y2yID4gZW1pbmVudDsKK+WNqiA+IGt3dWt5ZWw7CivljYYgPiBzb2xkaWVyOwor5Yy9ID4gdG9cLWhpZGU7CivljLEgPiB0b1wtbGFjazsKK+WMpyA+IGFcLXRydW5rOwor5YyLID4gcG90dGVyeTsKK+WMiiA+IGhhbmRmdWw7Civli6YgPiBkZXN0cm95Owor5YqQID4gZGVzdHJveTsKK+WKiSA+IHN1cm5hbWU7CivlibQgPiBzaGFycGVuOwor5YeKID4gc3VybmFtZTsKK+WGpiA+IGJhbmRpdHM7Civlha8gPiBrd3VreWVsOwor5YWqID4gc3VybmFtZTsKK+WFgiA+IGhhaXJwaW47CivlhLYgPiB2YWxpYW50Owor5YSmID4gbWlsbGluZzsKK+WEpCA+IG9uXC1kdXR5Owor5YSTID4gc2VydmFudDsKK+WEjSA+IGZvb2xpc2g7Civlg68gPiBhc2hhbWVkOwor5YOkID4gc2luY2VyZTsKK+WDjiA+IGNvbGxlY3Q7CivlgrwgPiBzdXJuYW1lOwor5YKaID4gaW1pdGF0ZTsKK+WClCA+IHNlcnZhbnQ7CivlgoEgPiBvbGRcLW1hbjsKK+WBuSA+IHByZXBhcmU7CivlgKMgPiBpbWl0YXRlOwor5YCdID4gc3VucmlzZTsKK+WAkCA+IGhhc3RpbHk7CivlgIIgPiBjb21iaW5lOwor5L60ID4gc3VybmFtZTsKK+S+hyA+IGFcLWNsYXNzOwor5L6FID4gdG9cLWdpdmU7CivkvYkgPiBzdXJuYW1lOwor5LyIID4gbmVydm91czsKK+S8gCA+IGV4Y2l0ZWQ7Civku5IgPiBrd3VreWVsOwor5Lq9ID4ga3d1a3llbDsKK+S6tyA+IHVwcmlnaHQ7CivkurYgPiBzaW5jZXJlOwor5LqqID4ga3d1a3llbDsKK+S6lyA+IGhhcnZlc3Q7Civkub8gPiB0b1wtY3VyZTsKK+S5rCA+IHRvXC1oYW5nOwor5LmlID4ga3d1a3llbDsKK+S5myA+IGt3dWt5ZWw7CivkuYogPiBrd3VreWVsOwor5LmAID4gc3RyZXRjaDsKK+S4tyA+IGt3dWt5ZWw7CivkuJ8gPiBkaXNjYXJkOwor5LiPID4gcGFyYXBldDsKK+S4hiA+IGt3dWt5ZWw7CivktrQgPiB0b1wtYmxvdzsKK+S2qSA+IHRvXC1nbmF3Owor5LanID4gdG9cLWduYXc7CivktqIgPiB0b1wtZ25hdzsKK+S2oCA+IHRvXC1nbmF3Owor5LaeID4gdG9cLWduYXc7CivktpcgPiB0b1wtYml0ZTsKK+S1vCA+IHRvXC1ib2lsOwor5LSnID4gdmVuaXNvbjsKK+S0kiA+IHdhZ3RhaWw7Civks60gPiB3YWd0YWlsOwor5LKsID4gY2hpY2tlbjsKK+SyoyA+IHRvXC1maXNoOwor5LKdID4gcG9tZnJldDsKK+SylCA+IGFcLXdoYWxlOwor5LG3ID4gdG9cLWZpc2g7CivksYkgPiB0aGVcLWVlbDsKK+SxhyA+IHRoZVwtZWVsOwor5LCvID4gdG9cLWZlYXI7CivksJ4gPiB0b1wtY29vazsKK+SwgSA+IHRvXC1tZWV0Owor5K68ID4gcGllYmFsZDsKK+SuuyA+IHRvXC1wcmF5Owor5K6mID4gdW50YW1lZDsKK+StriA+IGpld2Vscnk7CivkraQgPiB0b1wtY2hldzsKK+StoCA+IGFcLXNuYWNrOwor5KyhID4gdG9cLXNvYXI7CivkrJ0gPiBhXC1zdG9ybTsKK+SsliA+IGFcLXN0b3JtOwor5KyOID4gaG90XC1haXI7Civkq7ggPiB0b1wtYmxvdzsKK+SrmCA+IGhlYWx0aHk7Civkq5IgPiBkaXNlYXNlOwor5KqjID4gc21hc2hlZDsKK+SqoiA+IHNtYXNoZWQ7CivkqbMgPiB0YW5uaW5nOwor5KmfID4gbGVhdGhlcjsKK+SplCA+IHRoZVwtaGVtOwor5KioID4gdGh1bmRlcjsKK+SoniA+IHRvXC1yYWluOwor5KibID4gdG9cLXJhaW47CivkqJogPiB0b1wtcmFpbjsKK+SokyA+IHRodW5kZXI7CivkqIIgPiBhXC1jaGljazsKK+SnsCA+IGFcLW1vdW5kOwor5KefID4gdG9cLXNraW47Civkp40gPiBhXC1jcmFjazsKK+SmrSA+IHRvXC1vcGVuOwor5KaLID4gdG9cLWdyb3c7CivkpbAgPiB0b1wtbWVsdDsKK+SlriA+IHRvXC1iZWF0Owor5KWKID4gcmVmaW5lZDsKK+SknyA+IGFcLXNwYWRlOwor5KSYID4gdmluZWdhcjsKK+SklSA+IHZpbmVnYXI7CivkpIggPiB2aW5lZ2FyOwor5KO3ID4gdG9cLXBvdXI7CivkorYgPiBhXC1zdGF0ZTsKK+SisCA+IHRvXC1qdW1wOwor5KKsID4gdG9cLW1vdmU7CivkoqMgPiBkaXN0YW50Owor5KKiID4gdG9cLXBhc3M7CivkoqAgPiB0b1wtc2VuZDsKK+SimSA+IHRvXC1ydWluOwor5KKSID4gdG9cLW1lZXQ7CivkoowgPiB0b1wtd2FsazsKK+SgvCA+IHRvXC13ZWFyOwor5KCzID4gdG9cLXdhbGs7CivkoKUgPiB0b1wtbGltcDsKK+SgnCA+IHRvXC13YWxrOwor5KCbID4gdG9cLWp1bXA7CivkoJMgPiB0b1wtd2FsazsKK+SghCA+IHRvXC13YWxrOwor5J++ID4gdG9cLWp1bXA7Civkn7cgPiB0b1wtanVtcDsKK+SfsCA+IHRvXC13YWxrOwor5J+tID4gdG9cLWp1bXA7Civkn6wgPiB0b1wtd2FsazsKK+SfpiA+IHRvXC13YWxrOwor5J+QID4gdG9cLXdhbGs7Civkn48gPiB0b1wtanVtcDsKK+SfjSA+IHRvXC13YWxrOwor5J+JID4gdG9cLXdhbGs7Civkn4ggPiB0b1wtd2FsazsKK+SfhyA+IHRvXC13YWxrOwor5J+AID4gdG9cLXdhbGs7CivknrsgPiB0b1wtd2FsazsKK+SeuiA+IHRvXC13YWxrOwor5J65ID4gdG9cLXdhbGs7CivknrUgPiB0b1wtanVtcDsKK+SetCA+IHRvXC1qdW1wOwor5J6vID4gdG9cLXdhbGs7CivknqsgPiB0b1wtd2FsazsKK+SepSA+IHRvXC13YWxrOwor5J6kID4gdG9cLXdhbGs7CivknqIgPiB0b1wtd2FsazsKK+SeoSA+IHRvXC13YWxrOwor5J6gID4gdG9cLXdhbGs7Civknp4gPiB0b1wtd2FsazsKK+SduyA+IHRvXC1zZWxsOwor5J2uID4gdG9cLWJyYWc7CivknacgPiBjYXBpdGFsOwor5JyWID4gdG9cLXRhbGs7CivknIkgPiB0b1wtamVzdDsKK+SbvyA+IGN1bm5pbmc7Civkm7ogPiB0b1wtd2FybjsKK+SbtyA+IHRvXC1vYmV5Owor5JuwID4gc2tldGNoeTsKK+SboiA+IGN1bm5pbmc7Civkm50gPiB0b1wtbGlrZTsKK+SbmyA+IGNvdXJhZ2U7CivkmrwgPiBhc2hhbWVkOwor5Jq7ID4gdG9cLXNpbmc7CivkmrEgPiBob25lc3R5Owor5JquID4gdGhpY2tlcjsKK+SalyA+IHRvXC1saWZ0Owor5JqPID4gdG9cLWxvdmU7CivkmbIgPiB0b1wtbW92ZTsKK+SZqSA+IGNsb3RoZXM7CivkmZkgPiBjbG90aGVzOwor5JmOID4gc2xlZXZlczsKK+SZiSA+IGNsb3RoZXM7CivkmLcgPiBzbGVldmVzOwor5Ji2ID4gc2xlZXZlczsKK+SYsSA+IHdlYWx0aHk7CivkmK4gPiB0b1wtbG9zZTsKK+SYoCA+IGdyZWF2ZXM7CivkmJ0gPiBhXC1zaGlydDsKK+SXsiA+IGZpcmVmbHk7Civkl5EgPiBmaXJlZmx5Owor5Ja1ID4gaW5zZWN0czsKK+SWnSA+IGluc2VjdHM7CivklpogPiBhXC10aWdlcjsKK+SWmCA+IGFcLXRpZ2VyOwor5JaVID4gYVwtdGlnZXI7CivkloQgPiB0b1wtYnVybjsKK+SVniA+IGhlbmJhbmU7CivklZEgPiBwYXJzbGV5Owor5JS6ID4gaGVhZGluZzsKK+SUgCA+IHBhcnNsZXk7CivkkrYgPiB0aGVcLXNreTsKK+SSmCA+IHBhcnNsZXk7CivkkacgPiBhXC1zaG9ydDsKK+SRmyA+IHRvXC1saWNrOwor5JC/ID4gZ2l6emFyZDsKK+SQtyA+IHBhdW5jaHk7CivkkLYgPiB0b1wtY29vazsKK+SQtCA+IGx1bWJhZ287CivkkKsgPiBvYmVzaXR5Owor5JCKID4gaW5zZWN0czsKK+SPnSA+IHNpbmNlcmU7Civkj5YgPiBhXC13b3VuZDsKK+SPkSA+IHRvXC1idXJuOwor5I+HID4gdG9cLWhlYXI7Civkj4UgPiB0b1wtaGVhcjsKK+SPgyA+IHRvXC1oZWFyOwor5I69ID4gdG9cLWhlYXI7CivkjrsgPiB0b1wtaGVhcjsKK+SOuSA+IHRvXC1oZWFyOwor5I64ID4gdG9cLWhlYXI7CivkjqkgPiB0b1wtdGlsbDsKK+SOpiA+IHRvXC10aWxsOwor5I6kID4gdG9cLXRpbGw7Civkjp0gPiB0b1wtc29hcjsKK+SOjCA+IGZlYXRoZXI7CivkjbYgPiB1bmljb3JuOwor5I2zID4gZGlzZWFzZTsKK+SMmCA+IHRvXC1rbml0Owor5IyUID4gdG9cLXNvYWs7CivkjIEgPiBhXC1wbGVhdDsKK+SLjiA+IHRvXC1tZW5kOwor5IqfID4gYWRvcm5lZDsKK+SKmCA+IGFcLWdyYWluOwor5IqSID4gcmVmaW5lZDsKK+SKhyA+IHRvXC1mZWVkOwor5Im1ID4gdG9cLWZlZWQ7CivkiaIgPiBhXC1zaWV2ZTsKK+SJjiA+IGFcLWNvdmVyOwor5IisID4gYVwtc21hbGw7CivkiKogPiBhXC1zbWFsbDsKK+SIpSA+IHRlbmRvbnM7CivkiKQgPiBwaW5jZXJzOwor5IiSID4gZnJhZ2lsZTsKK+SIhyA+IGFcLWNvdmVyOwor5IeUID4gYXRyb3BoeTsKK+SHjSA+IHRvXC13YWl0Owor5Ia1ID4gYW5cLWVjaG87CivkhqggPiB0aGVcLXNreTsKK+SFuCA+IGFcLWdyYWluOwor5ISkID4gdG9cLXNpbms7CivkhI8gPiBiaXphcnJlOwor5IOjID4gdG9cLXJ1aW47CivkgoogPiB3ZWFwb25zOwor5IKJID4gd2VhcG9uczsKK+SChiA+IHdlYXBvbnM7CivkgoAgPiB0b1wtd2luazsKK+SBsiA+IHRvXC1wZWVwOwor5IGqID4gdG9cLXdpbms7CivkgaMgPiB0b1wtd2luazsKK+SBmyA+IHRvXC1sb29rOwor5IGSID4gdG9cLXdpbms7CivkgLsgPiB0b1wtbG9vazsKK+SAqCA+IHRvXC1sb29rOwor5ICUID4gdG9cLWxvb2s7Civjv6YgPiB0b1wtdGVsbDsKK+O/kiA+IGlsbG5lc3M7Civjv5EgPiBpbGxuZXNzOwor47+NID4gc2NhYmllczsKK+O+tyA+IHRvXC1hY2hlOwor476sID4gbWFsYXJpYTsKK+O+oCA+IGFcLWZldmVyOwor476fID4gcmVsYXBzZTsKK+O+niA+IGlsbG5lc3M7CivjvpggPiBhaWxtZW50Owor476WID4gZ3JpZXZlZDsKK+O+lSA+IGFcLWNoaWxsOwor476TID4gZmF0aWd1ZTsKK+O+kiA+IGlsbG5lc3M7Civjvo8gPiBpbGxuZXNzOwor476HID4gaWxsbmVzczsKK+O+hiA+IGVjZHlzaXM7CivjvoUgPiBkZWZlY3RzOwor476CID4gaWxsbmVzczsKK+O9tCA+IGlsbG5lc3M7CivjvbMgPiBpbGxuZXNzOwor472dID4gdG9cLXNpbms7CivjvZYgPiBhXC1odW1hbjsKK+O8vCA+IGFcLWxhZGxlOwor47y3ID4gYVwtYmFzaW47CivjvJwgPiBhXC1iYXNpbjsKK+O8lyA+IGFcLWJyaWNrOwor47u5ID4gYVwtY3JhY2s7Civju4MgPiBjcm9va2VkOwor47qyID4gYnV0dG9uczsKK+O6lyA+IHRvXC1iaXRlOwor47qKID4gYVwtYmVhc3Q7Civjub4gPiBjdW5uaW5nOwor47m9ID4gdG9cLWJpdGU7CivjuZ4gPiB0b1wtYmFyazsKK+O5myA+IGFcLXRhbWVkOwor47inID4gdG9cLWJpdGU7CivjuJAgPiB0b1wtYnVybjsKK+O4jSA+IHRvXC1idXJuOwor47e7ID4gd2l0aG91dDsKK+O3kyA+IGFcLXRvcmNoOwor47eKID4gdG9cLWJ1cm47Civjt4kgPiB0b1wtaXJvbjsKK+O3hSA+IHRvXC1jb29rOwor47auID4gdG9cLWJ1cm47CivjtqsgPiB0b1wtYnVybjsKK+O2oyA+IHRvXC1idXJuOwor47aXID4gd2VsbFwtdXA7CivjtpMgPiB0b1wtc2luazsKK+O2hyA+IGFcLWZlcnJ5Owor47W4ID4gdG9cLWJvaWw7CivjtbQgPiB0b1wtc2luazsKK+O1oyA+IHRoaXJzdHk7CivjtZIgPiBib2lsaW5nOwor47WMID4gdG9cLWZsb3c7CivjtYUgPiBhXC1yaXZlcjsKK+O0vyA+IGJvaWxpbmc7CivjtIkgPiB2YXJpb3VzOwor47SHID4gdG9cLXdhZGU7CivjtIUgPiB0b1wtbWVsdDsKK+OzuiA+IHRvXC1zd2ltOwor47OtID4gc3BpdHRsZTsKK+OzrCA+IGFuXC1lZGR5Owor47OqID4gYVwtcml2ZXI7Civjs6YgPiBhXC1yaXZlcjsKK+OzmSA+IGFcLWJyb29rOwor47OFID4gdG9cLWZsb3c7Civjs4QgPiBzcGl0dGxlOwor47K6ID4gdG9cLXdhc2g7CivjsoUgPiB0b1wtYmluZDsKK+OygiA+IHRvXC1wdXNoOwor47KBID4gdG9cLWJlYXQ7CivjsoAgPiB0b1wtYmVhdDsKK+OxriA+IHRvXC1vcGVuOwor47GWID4gdG9cLXN0YXk7CivjsYwgPiB0b1wtdGFrZTsKK+OxhCA+IHRvXC1zcGl0Owor47GAID4gdG9cLWJpdGU7CivjsLUgPiB0b1wtc3VjazsKK+OwlSA+IGFcLWxhZGxlOwor46+7ID4gdG9cLWJpbmQ7Civjr7kgPiB0b1wtc2hvdzsKK+OvuCA+IGFcLWJhc2luOwor46+TID4gYVwtY291Y2g7Civjr5AgPiB0dWJ1bGFyOwor46+LID4gYVwtY2hlc3Q7CivjrrggPiB0b1wtc2VuZDsKK+OumyA+IGFcLXNwb29uOwor462wID4gdG9cLWtub3c7CivjrawgPiB0b1wtYmVhdDsKK+OtqiA+IGFcLXNocnViOwor462MID4gYVwtYmFzaW47CivjrYggPiBhXC1iYXNpbjsKK+OsvCA+IHRvXC1oYXZlOwor46ydID4gb2JzY3VyZTsKK+OslCA+IHRvXC1kZWZ5Owor46yDID4gc3VucmlzZTsKK+OrtCA+IHRvXC1yb2FyOwor46uzID4gbW9ybmluZzsKK+OrpyA+IHZpb2xlbnQ7Civjq50gPiB0aGVcLXN1bjsKK+OrmSA+IHRoZVwtc3VuOwor46uRID4gcHVycG9zZTsKK+OqvCA+IHRvXC1wdWxsOwor46qxID4gZWxlZ2FudDsKK+OqryA+IHRvXC1saWZ0Owor46quID4gdG9cLWJlYXQ7CivjqqggPiB0b1wtbWVuZDsKK+OqpyA+IHRvXC1iZWF0Owor46qmID4gdG9cLWJlYXQ7CivjqqUgPiB0b1wtdGFrZTsKK+OqoiA+IHRvXC1iZWF0Owor46qgID4gdG9cLXBlY2s7Civjqp0gPiB0b1wtYmVhdDsKK+OqlyA+IHRvXC1vcGVuOwor46qVID4gdG9cLWJlYXQ7CivjqpIgPiB0b1wtcnVpbjsKK+OqjyA+IHRvXC1ydWluOwor46qBID4gdG9cLWhvbGQ7CivjqbYgPiB0b1wtaG9sZDsKK+OptSA+IHRvXC1iZWF0Owor46mzID4gdG9cLWhvbGQ7CivjqbAgPiB0b1wtc3RhYjsKK+OpryA+IHRvXC1tb3ZlOwor46msID4gdG9cLWJlYXQ7CivjqaQgPiB0b1wtb3BlbjsKK+OpoyA+IHRvXC1tb3ZlOwor46miID4gdG9cLWJlYXQ7CivjqZUgPiB0b1wtaGF1bDsKK+OpiyA+IHRvXC1iZWF0Owor46i3ID4gdG9cLXdpcGU7CivjqLAgPiB0b1wtdHVybjsKK+OopiA+IHRvXC1ob2xkOwor46ikID4gdG9cLXdpcGU7CivvqKIgPiBzZXZlcmFsOwor76ieID4gZmVhdGhlcjsKK++onSA+IGVzc2VuY2U7CivjqJYgPiB0b1wtc3RhYjsKK+OojyA+IHRvXC1iZWF0Owor46iLID4gdG9cLWJlYXQ7CivvqIkgPiBkZXNjZW5kOwor76iGID4gdmlvbGVudDsKK+OohiA+IHRvXC1raWxsOwor46iCID4gdG9cLWJlYXQ7Civjp78gPiB0b1wtYnVtcDsKK+OnuyA+IGFcLXRob3JuOwor46erID4gdG9cLWhvbGQ7Civjp6ogPiB0b1wtcnVpbjsKK+OnpCA+IHRvXC1qdW1wOwor46ejID4gdG9cLXN0b3A7Civjp6EgPiB0b1wtbW92ZTsKK+OnnyA+IHRvXC13aXBlOwor46edID4gdG9cLXRha2U7Civvp5sgPiB0b1wtbGVhZDsKK+OnnCA+IHRvXC1ob2xkOwor76eYID4gc3RhdHV0ZTsKK++nliA+IGJlXC1sb3N0Owor46eTID4gdG9cLWxlYWQ7Civjp5IgPiB0b1wtYmVhdDsKK+OnkSA+IHRvXC13YXZlOwor46eQID4gdG9cLWhvbGQ7Civjp4ogPiB0b1wtcHVzaDsKK++nhyA+IHN1cm5hbWU7Civjp4ggPiB0b1wtcHVsbDsKK+OnhyA+IHRvXC1ob2xkOwor76eDID4gZGlzdGFudDsKK+OnhCA+IHRvXC10YWtlOwor76eAID4gdG9cLWJ1cm47CivjprkgPiBhXC1zcGVhcjsKK+OmtSA+IHRvXC1raWxsOwor46atID4gdG9cLXBpdHk7CivjpqwgPiBhc2hhbWVkOwor76aoID4gY29tbWFuZDsKK++mpiA+IGFcLWJsaW5kOwor76aiID4gdXByaWdodDsKK+OmniA+IGdyaWV2ZWQ7CivvppcgPiBjb25uZWN0Owor46aVID4gdGhvdWdodDsKK++miSA+IHN1cm5hbWU7CivvpoAgPiBzdXJuYW1lOwor76W+ID4gbWVhc3VyZTsKK+OlvSA+IGZlZWxpbmc7CivjpbkgPiB0b1wtbW92ZTsKK++lsyA+IHBpY2tcLXVwOwor46WvID4gY2FyZWZ1bDsKK++lrCA+IHN0b3BcLXVwOwor46WkID4gdG9cLXBpdHk7CivvpaEgPiB0b1wtbGVhZDsKK++lnSA+IHByb21pc2U7CivjpZUgPiB0b1wtcGl0eTsKK+OlkiA+IGNvcnJ1cHQ7CivjpY8gPiBiYXNoZnVsOwor46WMID4gcHJ1ZGVudDsKK++liiA+IHJhbXBhcnQ7CivvpYkgPiB0aHVuZGVyOwor46WEID4gdG9cLXBpdHk7CivjpL8gPiB0b1wtbG92ZTsKK+OkvSA+IGdyaWV2ZWQ7CivvpLkgPiBmb29saXNoOwor46S6ID4gYmx1cnJlZDsKK++ktiA+IGNhcHR1cmU7CivjpLYgPiBjb25mdXNlOwor76SzID4gY290dGFnZTsKK++ksCA+IGNhcHR1cmU7CivjpK0gPiB1bnRhbWVkOwor46SgID4gZ3JpZXZlZDsKK++knSA+IHJhaWxpbmc7CivvpI4gPiBsZXByb3N5Owor46SFID4gdG9cLWxvdmU7CivvpIMgPiBzdXJuYW1lOwor46SDID4gamVhbG91czsKK+OkgiA+IGFueGlvdXM7Civjo7cgPiB3YWxraW5nOwor46O2ID4gdG9cLXdhbGs7Civjo6wgPiB0b1wtd2FsazsKK+OjnCA+IHRvXC13YWxrOwor46ObID4gd2Fsa2luZzsKK+OjgyA+IHRvXC1zZWxsOwor46OCID4gdG9cLWJpbmQ7CivjorwgPiBhd2t3YXJkOwor46KjID4gdG9cLWxpZnQ7Civjop0gPiBjb3R0YWdlOwor46KVID4gaGFybW9ueTsKK+OhuCA+IGFcLWhvdXNlOwor46GwID4gYVwtaG91c2U7CivjoasgPiBhbnhpb3VzOwor46GoID4gYVwtbGFiZWw7CivjoZggPiBzY3JlZW5zOwor46GTID4gZHJhd2VyczsKK+OhgiA+IHJlbWFpbnM7CivjoK0gPiB0b1wtb3BlbjsKK+OfpyA+IGFcLWNsaWZmOwor4566ID4gYVwtdHJpYmU7CivjnqsgPiB0b1wtd2FsazsKK+OepyA+IHRvXC1tZWV0Owor456kID4gdG9cLWhlbHA7CivjnqEgPiB0b1wtb3BlbjsKK+OegCA+IHRvXC1idW1wOwor4528ID4gY3Jvb2tlZDsKK+OdsSA+IGFcLWRyZWFtOwor452iID4gYVwtaG91c2U7CivjnYAgPiB0b1wtbGlrZTsKK+OcviA+IGFcLWNoaWxkOwor45ypID4gamVhbG91czsKK+OckyA+IHdvbWFubHk7CivjnIkgPiB3b21hbmx5Owor45yHID4gdW5oYXBweTsKK+ObvyA+IGN1bm5pbmc7Civjm7sgPiB3b21hbmx5Owor45uvID4gdG9cLXNvYXI7Civjm5UgPiB3b21hbmx5Owor45qiID4gYVwtc2xhdmU7CivjmZQgPiBhXC1mZW5jZTsKK+OZkCA+IHRvXC1tb3ZlOwor45mPID4gY2F2ZXJuczsKK+OYuCA+IHRvXC1idXJ5Owor45i3ID4gbXVnd29ydDsKK+OYqSA+IHRvXC1tYXRlOwor45iXID4gd2hpc3BlcjsKK+OYlSA+IHRvXC1jYWxsOwor45iCID4gYXNoYW1lZDsKK+OYgSA+IHRvXC1jYWxsOwor45e9ID4gYW5cLWVjaG87Civjl7IgPiB0b1wtY2FsbDsKK+OXsSA+IHRvXC1zdWNrOwor45etID4gYVwtc291bmQ7Civjl6QgPiBhc2hhbWVkOwor45eNID4gdG9cLWduYXc7Civjl4MgPiB0aGVcLWxpcDsKK+OWvyA+IGFcLXNvdW5kOwor45a7ID4gd2hpc3BlcjsKK+OWuiA+IHRvXC1ibG93Owor45atID4gdG9cLWxpY2s7CivjlqUgPiB0b1wtc3BpdDsKK+OVtyA+IHRvXC1jYWxsOwor45WxID4gdG9cLWJhcms7Civjla4gPiB0b1wtY2hldzsKK+OVnyA+IHRvXC1zaWduOwor45WeID4gYVwtYnJ1c2g7CivjlZwgPiBoaXN0b3J5Owor45S/ID4gYVwtdGFsbHk7CivjlK0gPiBhXC1zcG9vbjsKK+OUoSA+IGdyZWF0bHk7CivjlIIgPiB0b1wtcGFyZTsKK+OTsiA+IHRvXC1wYXJlOwor45OwID4gdG9cLXJpdmU7Civjk6UgPiB0b1wta2lsbDsKK+OTnyA+IHRvXC1wZWVsOwor45OQID4gdG9cLXJhaW47CivjkrwgPiBhdmVyYWdlOwor45K4ID4gdG9cLW9iZXk7CivjkrQgPiB0b1wtY29tZTsKK+OSpiA+IHB1cHBldHM7Civjkp4gPiB2YWxpYW50Owor45KVID4gdW55aWVsZDsKK+OSkiA+IGFcLXNsYXZlOwor45KRID4gZ3Jvd1wtdXA7CivjkokgPiBhbGFybWVkOwor45G5ID4gdG9cLW1lZXQ7CivjkZAgPiB0b1wtbW92ZTsKK+ORhSA+IHRvXC1tYWtlOwor45GDID4gdG9cLXB1bGw7CivjkLwgPiB0b1wtc2F2ZTsKK+OQriA+IHRvXC1oZWxwOwor45CBID4gdG9cLWxpY2s7CivmmK8gPiBpbmRlZWQ7Civov6sgPiBjb2VyY2U7Civlv5wgPiBzaG91bGQ7Civlv5ggPiBmb3JnZXQ7Civlm70gPiBuYXRpb247Civov5QgPiByZXR1cm47Civlv40gPiBlbmR1cmU7Civov4QgPiBleHRlbmQ7Civlv4UgPiBzdXJlbHk7Civlh7ogPiBnb1wtb3V0Owor6L6/ID4gZm9sbG93Owor5568ID4gZXllbGlkOwor5b6XID4gb2J0YWluOwor6L63ID4gc21vb3RoOwor5b60ID4gc3VtbW9uOwor5b6zID4gdmlydHVlOwor556tID4gYnJpZ2h0Owor5b6pID4gcmV0dXJuOwor6L6bID4gYml0dGVyOwor5b6QID4gc2xvd2x5Owor5b6MID4gYmVoaW5kOwor5b6KID4gbGluZ2VyOwor5b2xID4gc2hhZG93Owor5LqLID4gYWZmYWlyOwor6L2fID4gcnVtYmxlOwor5b2IID4gcGVsbGV0Owor5Li7ID4gbWFzdGVyOwor5by3ID4gc3Ryb25nOwor5bybID4gbG9vc2VuOwor5rCRID4gcGVvcGxlOwor55yMID4gY291bnR5Owor546wID4gYXBwZWFyOwor5YiGID4gZGl2aWRlOwor5LqbID4gbGl0dGxlOwor55u4ID4gbXV0dWFsOwor5ZueID4gcmV0dXJuOwor55CGID4gcmVhc29uOwor5piOID4gYnJpZ2h0Owor55uKID4gcHJvZml0Owor6K+dID4gc3BlZWNoOwor5ZCRID4gdG93YXJkOwor5a6aID4gZGVjaWRlOwor5bqrID4gYXJtb3J5Owor5bqmID4gZGVncmVlOwor5bqVID4gYm90dG9tOwor5omTID4gc3RyaWtlOwor5L2NID4gdGhyb25lOwor5bqPID4gc2VyaWVzOwor5bm8ID4gaW5mYW50Owor5bmyID4gb3Bwb3NlOwor5YaFID4gaW5zaWRlOwor55mqID4gc3Bhc21zOwor5YqgID4gYWRkXC10bzsKK+WMliA+IGNoYW5nZTsKK+eZjCA+IGNhbmNlcjsKK+W4uCA+IGNvbW1vbjsKK+i4sCA+IGV4Y2VlZDsKK+W4giA+IG1hcmtldDsKK+W4sCA+IHJldHVybjsKK+aJjSA+IHRhbGVudDsKK+S9jyA+IHJlc2lkZTsKK+WRmCA+IG1lbWJlcjsKK+W3uyA+IHNjcm9sbDsKK+aApyA+IG5hdHVyZTsKK+aKpSA+IHJlcG9ydDsKK+elniA+IHNwaXJpdDsKK+aVsCA+IG51bWJlcjsKK+i3oSA+IHNlYXJjaDsKK+WOnyA+IHNvdXJjZTsKK+W3oSA+IHBhdHJvbDsKK+W3nSA+IHN0cmVhbTsKK+W6lCA+IHNob3VsZDsKK+i2iiA+IGV4Y2VlZDsKK+eWiiA+IHJlcGVhdDsKK+ezuyA+IHN5c3RlbTsKK+eVsyA+IHJlcGVhdDsKK+i1qyA+IGJyaWdodDsKK+WPiiA+IGV4dGVuZDsKK+WItiA+IHN5c3RlbTsKK+eVoCA+IGdhcmRlbjsKK+inoyA+IGxvb3NlbjsKK+iusCA+IHJlY29yZDsKK+aelyA+IGZvcmVzdDsKK+i0lCA+IHN0cm9uZzsKK+e7nyA+IGdvdmVybjsKK+WtlyA+IGxldHRlcjsKK+WztiA+IGlzbGFuZDsKK+izqiA+IG1hdHRlcjsKK+iuuiA+IGRlYmF0ZTsKK+iysCA+IGJvcnJvdzsKK+aMhyA+IGZpbmdlcjsKK+iyoSA+IHdlYWx0aDsKK+iKsSA+IGZsb3dlcjsKK+WxpCA+IHN0b3JleTsKK+adoSA+IGNsYXVzZTsKK+WPmCA+IGNoYW5nZTsKK+ivpSA+IHNob3VsZDsKK+WxjSA+IGNvcnBzZTsKK+S8oCA+IHN1bW1vbjsKK+ayuyA+IGdvdmVybjsKK+WGsyA+IGRlY2lkZTsKK+WxgCA+IGJ1cmVhdTsKK+WKniA+IG1hbmFnZTsKK+iwtyA+IHZhbGxleTsKK+WfjiA+IGNhc3RsZTsKK+eItiA+IGZhdGhlcjsKK+W8uiA+IHN0cm9uZzsKK+WwjiA+IGRpcmVjdDsKK+WwgSA+IGxldHRlcjsKK+ePviA+IGFwcGVhcjsKK+WvpyA+IHJlcG9zZTsKK+m7hCA+IHllbGxvdzsKK+W+tyA+IGV0aGljczsKK+WusyA+IGluanVyZTsKK+WuriA+IHBhbGFjZTsKK+aJviA+IHNlYXJjaDsKK+WPiyA+IGZyaWVuZDsKK+iuiiA+IGNoYW5nZTsKK+aUuSA+IGNoYW5nZTsKK+WuiCA+IGRlZmVuZDsKK+iugyA+IHByYWlzZTsKK+mZhSA+IGJvcmRlcjsKK+WNlSA+IHNpbmdsZTsKK+WvvCA+IGRpcmVjdDsKK+eNsiA+IG9idGFpbjsKK+WtpCA+IG9ycGhhbjsKK+agoSA+IHNjaG9vbDsKK+eNhCA+IHByaXNvbjsKK+eMviA+IGNyYWZ0eTsKK+ismSA+IGh1bWJsZTsKK+isjiA+IHJpZGRsZTsKK+majyA+IGZvbGxvdzsKK+eLuSA+IG5hcnJvdzsKK+eLrSA+IG5hcnJvdzsKK+avjSA+IG1vdGhlcjsKK+eLmSA+IGFuXC1hcGU7Civoq5YgPiBkZWJhdGU7Civlm6IgPiBzcGhlcmU7Civni4IgPiBpbnNhbmU7CivoqrIgPiBsZXNzb247Civoi6YgPiBiaXR0ZXI7Civmi5sgPiBiZWNrb247CivlhbQgPiB0aHJpdmU7CivoqbIgPiBzaG91bGQ7CivnuqYgPiB0cmVhdHk7CivoqbEgPiBzcGVlY2g7CivoqakgPiBwb2V0cnk7CivniaIgPiBwcmlzb247Civnu50gPiB0b1wtY3V0Owor6YCJID4gY2hvb3NlOwor5aSNID4gcmV0dXJuOwor5pifID4gYVwtc3RhcjsKK+eIuiA+IGZhdGhlcjsKK+iotCA+IGFjY3VzZTsKK+ionyA+IGFjY3VzZTsKK+WmiCA+IG1vdGhlcjsKK+eImyA+IHJvdHRlbjsKK+iomCA+IHJlY29yZDsKK+a2iCA+IHZhbmlzaDsKK+WomCA+IG1vdGhlcjsKK+eHrSA+IGNhbmRsZTsKK+WnqyA+IGJlYXV0eTsKK+adqCA+IHdpbGxvdzsKK+aYkyA+IGNoYW5nZTsKK+S4pSA+IHN0cmljdDsKK+eGiiA+IGFcLWJlYXI7CivlpoQgPiBhYnN1cmQ7CivnuqogPiByZWNvcmQ7Civoi48gPiByZXZpdmU7CivnrZQgPiBhbnN3ZXI7Civlpa4gPiBzdHJpdmU7CivnhakgPiBib3RoZXI7CivopaQgPiByYWdnZWQ7Civlh7sgPiBzdHJpa2U7CivmnIsgPiBmcmllbmQ7CivkvpsgPiBzdXBwbHk7CivlpK4gPiBjZW50ZXI7CivliJcgPiBhXC1saW5lOwor54SmID4gYnVybmVkOwor54i3ID4gZmF0aGVyOwor6b6ZID4gZHJhZ29uOwor6KSSID4gcHJhaXNlOwor5aSPID4gc3VtbWVyOwor5aSJID4gY2hhbmdlOwor5pilID4gc3ByaW5nOwor6KSHID4gcmVwZWF0Owor54G1ID4gc3Bpcml0Owor6KOhID4gaW5zaWRlOwor6K+JID4gYWNjdXNlOwor5oCBID4gbWFubmVyOwor6KOPID4gaW5zaWRlOwor6LSoID4gbWF0dGVyOwor6KKWID4gc2xlZXZlOwor5ZutID4gZ2FyZGVuOwor6KKLID4gcG9ja2V0Owor5YmvID4gYXNzaXN0Owor5aSfID4gZW5vdWdoOwor6I63ID4gb2J0YWluOwor6K+XID4gcG9ldHJ5Owor6KGXID4gc3RyZWV0Owor5aCxID4gcmVwb3J0Owor5r+AID4gYXJvdXNlOwor6ZO2ID4gc2lsdmVyOwor6Zi1ID4gY29sdW1uOwor5bGCID4gc3RvcmV5Owor5LquID4gYnJpZ2h0Owor566AID4gc2ltcGxlOwor5q+SID4gcG9pc29uOwor5b2SID4gcmV0dXJuOwor5o2iID4gY2hhbmdlOwor5rmWID4gYVwtbGFrZTsKK+idiSA+IGNpY2FkYTsKK+i/vSA+IHB1cnN1ZTsKK+m8rCA+IHdlYXNlbDsKK+e7nCA+IGVubWVzaDsKK+a8oCA+IGRlc2VydDsKK+icmCA+IHNwaWRlcjsKK+WcmCA+IHNwaGVyZTsKK+WNoCA+IGRpdmluZTsKK+WckyA+IGNpcmNsZTsKK+WckiA+IGdhcmRlbjsKK+i1tiA+IHB1cnN1ZTsKK+WFsCA+IG9yY2hpZDsKK+WciyA+IG5hdGlvbjsKK+WcgyA+IGdhcmRlbjsKK+a6kCA+IHNwcmluZzsKK+WboyA+IHNwaGVyZTsKK+mYtiA+IHN0YWlyczsKK+ibmyA+IHNwaWRlcjsKK+m7mSA+IHNpbGVudDsKK+S8uCA+IGV4dGVuZDsKK+m7mCA+IHNpbGVudDsKK+S9myA+IGJ1ZGRoYTsKK+WatCA+IHN0cmljdDsKK+aMpSA+IGRpcmVjdDsKK+aViCA+IHJlc3VsdDsKK+aUuyA+IGF0dGFjazsKK+etliA+IHNjaGVtZTsKK+mYsiA+IGRlZmVuZDsKK+iCoSA+IHRoaWdoczsKK+iYrSA+IG9yY2hpZDsKK+iOqyA+IGRvXC1ub3Q7CivlmJggPiBleGhhbGU7Civljr8gPiBjb3VudHk7CivomIcgPiByZXZpdmU7CivnqpcgPiB3aW5kb3c7Civmt7sgPiBhcHBlbmQ7Civmt7cgPiB0b1wtbWl4Owor6beyID4gY29uZG9yOwor5Y2aID4gZ2FtYmxlOwor5by5ID4gcGVsbGV0Owor6JekID4gcmF0dGFuOwor5Z2PID4gcm90dGVuOwor5pm6ID4gd2lzZG9tOwor5bKbID4gaXNsYW5kOwor5oqXID4gcmVzaXN0Owor5ZawID4gdG9cLWVhdDsKK+WWriA+IHNpbmdsZTsKK+eIuSA+IGZhdGhlcjsKK+WWpyA+IGxpdmVseTsKK+WWiSA+IHRocm9hdDsKK+eIuCA+IGZhdGhlcjsKK+a1miA+IGRyZWRnZTsKK+mAgyA+IGVzY2FwZTsKK+mqgiA+IGFjY3VzZTsKK+WUuCA+IHJlY2l0ZTsKK+mdliA+IHBhY2lmeTsKK+enmCA+IHNlY3JldDsKK+i0oiA+IHdlYWx0aDsKK+assiA+IGRlc2lyZTsKK+W+gSA+IGludmFkZTsKK+eniyA+IGF1dHVtbjsKK+WQuCA+IGluaGFsZTsKK+mzqSA+IHBpZ2VvbjsKK+WToSA+IG1lbWJlcjsKK+aCsiA+IHNvcnJvdzsKK+aziSA+IHNwcmluZzsKK+ahpSA+IGJyaWRnZTsKK+WKsiA+IHN0cm9uZzsKK+WSvSA+IHRocm9hdDsKK+iSuyA+IHJ1c2hlczsKK+W6kyA+IGFybW9yeTsKK+WAnyA+IGJvcnJvdzsKK+axuiA+IGRlY2lkZTsKK+iRoyA+IGRpcmVjdDsKK+iRoSA+IGdyYXBlczsKK+axmiA+IGZpbHRoeTsKK+aOpyA+IGFjY3VzZTsKK+iDuCA+IGJyZWFzdDsKK+ivviA+IGxlc3NvbjsKK+mCriA+IHBvc3RhbDsKK+WQnSA+IHN0aW5neTsKK+aoqiA+IGFjcm9zczsKK+WBpSA+IHN0cm9uZzsKK+iQjiA+IHdpdGhlcjsKK+iQhCA+IGdyYXBlczsKK+WchiA+IGNpcmNsZTsKK+WNtyA+IHNjcm9sbDsKK+iPqyA+IGNlbGVyeTsKK+aLqSA+IHNlbGVjdDsKK+aBqCA+IGhhdHJlZDsKK+eruSA+IGJhbWJvbzsKK+iPkyA+IGZydWl0czsKK+WuqyA+IHBhbGFjZTsKK+aXlyA+IGJhbm5lcjsKK+auuyA+IGNhc2luZzsKK+WOsyA+IHN0cmljdDsKK+aumCA+IGluanVyZTsKK+auiyA+IGluanVyZTsKK+atuCA+IHJldHVybjsKK+eosyA+IHN0YWJsZTsKK+i/uSA+IHRyYWNlczsKK+mSiCA+IG5lZWRsZTsKK+abvyA+IGNoYW5nZTsKK+WNkSA+IGh1bWJsZTsKK+aChCA+IHNpbGVudDsKK+WliyA+IHN0cml2ZTsKK+aruyA+IGNoZXJyeTsKK+W8gyA+IHJlamVjdDsKK+eDpiA+IGJvdGhlcjsKK+aKtSA+IHJlc2lzdDsKK+eggSA+IG51bWJlcjsKK+WKsSA+IHN0cml2ZTsKK+e0qyA+IHB1cnBsZTsKK+aLlCA+IHVwcm9vdDsKK+iKnSA+IHNlc2FtZTsKK+aigSA+IGJyaWRnZTsKK+i1jyA+IHJld2FyZDsKK+WKgyA+IGRpdmlkZTsKK+aPkiA+IGluc2VydDsKK+mpoiA+IGRvbmtleTsKK+WGrCA+IHdpbnRlcjsKK+aJqSA+IGV4cGFuZDsKK+apmCA+IG9yYW5nZTsKK+apiyA+IGJyaWRnZTsKK+mAvCA+IGNvbXBlbDsKK+motyA+IGhhcmFzczsKK+WIuSA+IHRlbXBsZTsKK+mVnCA+IG1pcnJvcjsKK+axoSA+IGZpbHRoeTsKK+aomSA+IGFcLW1hcms7Civni7EgPiBwcmlzb247CivpqJIgPiBoYXJhc3M7CivoiIwgPiB0b25ndWU7Civmo64gPiBmb3Jlc3Q7CivoiIggPiB0aHJpdmU7Civmp70gPiB0cm91Z2g7CivmgKggPiBoYXRyZWQ7Civoh7wgPiBtb3J0YXI7CivkvI8gPiBjcm91Y2g7CivmhKQgPiByZXNlbnQ7Civkv4QgPiBzdWRkZW47Civlh40gPiBmcmVlemU7Civmp4wgPiBoYW1tZXI7CivnqI0gPiBsaXR0bGU7CivnsY0gPiByZWNvcmQ7CivkvrUgPiBpbnZhZGU7CivpmLsgPiBpbXBlZGU7CivmhacgPiBicmlnaHQ7CivppZEgPiBzdGFydmU7CivmmYMgPiBicmlnaHQ7CivohZEgPiBib3dlbHM7Civng4IgPiByb3R0ZW47CivlhY4gPiByYWJiaXQ7CivohYsgPiBhcm1waXQ7CivlsLggPiBjb3Jwc2U7CivmpL8gPiBmYXRoZXI7CivlhJggPiB1dG1vc3Q7CivltIcgPiBlc3RlZW07CivppJMgPiBodW5ncnk7CivmpI4gPiBoYW1tZXI7Civmo7ogPiBjb2ZmaW47CivnsokgPiBwb3dkZXI7Civnm74gPiBzaGllbGQ7Civpo6IgPiBodW5nZXI7CivovbAgPiBydW1ibGU7CivlpbggPiBjcmFmdHk7CivpgqYgPiBuYXRpb247Civmo4QgPiByZWplY3Q7Civppb8gPiBodW5ncnk7CivmjZUgPiBhcnJlc3Q7CivlgrMgPiBzdW1tb247Civmoq8gPiBsYWRkZXI7CivmjKMgPiBzdHJpdmU7CivogZggPiBlbmdhZ2U7Civmop0gPiBjbGF1c2U7CivogJAgPiBlbmR1cmU7CivmooMgPiBhXC1jbHViOwor6aGrID4gc2hpdmVyOwor5qGcID4gY2hlcnJ5Owor6Ze3ID4gZ2xvb215Owor6aGYID4gZGVzaXJlOwor5oKUID4gcmVwZW50Owor6YKAID4gaW52aXRlOwor6aKkID4gc2hpdmVyOwor6aCsID4gY2hlZWtzOwor6aCkID4gY2hlZWtzOwor5oKjID4gc3VmZmVyOwor5LiQID4gYmVnZ2FyOwor5p+xID4gcGlsbGFyOwor5p+aID4gcG9tZWxvOwor57+MID4gYnJpZ2h0Owor5p+EID4gaGFuZGxlOwor5L6uID4gaW5zdWx0Owor6ZOcID4gY29wcGVyOwor5p6VID4gcGlsbG93Owor5725ID4gc29ycm93Owor5721ID4gYWNjdXNlOwor5p21ID4gcGVzdGxlOwor5pWyID4gc3RyaWtlOwor6Z2hID4gZGl2aWRlOwor5omvID4gcmlwXC11cDsKK+mJtCA+IG1pcnJvcjsKK+i2iyA+IGhhc3RlbjsKK+S9kCA+IGFzc2lzdDsKK+mAiiA+IGh1bWJsZTsKK+mdiCA+IHNwaXJpdDsKK+actCA+IHNpbXBsZTsKK+acrSA+IGxldHRlcjsKK+S8nSA+IHN1bW1vbjsKK+S8jiA+IHRhbGVudDsKK+S4siA+IHN0cmluZzsKK+mciiA+IHNwaXJpdDsKK+mbsiA+IGNsb3VkczsKK+eGmSA+IGJyaWdodDsKK+W6mSA+IHRlbXBsZTsKK+S7jyA+IGJ1ZGRoYTsKK+mbjCA+IGZlbWFsZTsKK+mbhyA+IGVtcGxveTsKK+maqCA+IGZvbGxvdzsKK+mamyA+IGJvcmRlcjsKK+majiA+IHN0YWlyczsKK+mahSA+IGNvcm5lcjsKK+mFtyA+IHN0cm9uZzsKK+S5syA+IGJyZWFzdDsKK+eooyA+IHJldml2ZTsKK+mZoyA+IGNvbHVtbjsKK+e5lSA+IHJlcGFpcjsKK+aYrSA+IGJyaWdodDsKK+ajiSA+IGNvdHRvbjsKK+aQnCA+IHNlYXJjaDsKK+e4myA+IHRvXC10aWU7CivosIUgPiBleGN1c2U7Civng5sgPiBjYW5kbGU7CivlkYggPiBzdWJtaXQ7Civnt5ogPiB0aHJlYWQ7Civmi5MgPiBleHBhbmQ7CivmlaYgPiBlc3RlZW07CivmlbggPiBudW1iZXI7CivmlbcgPiBzcHJlYWQ7CivntbEgPiBnb3Zlcm47CivohL4gPiBzcGxlZW47CivntaEgPiBlbm1lc2g7CivntLMgPiBnaXJkbGU7CivpubAgPiBmYWxjb247CivntIQgPiB0cmVhdHk7CivntIAgPiByZWNvcmQ7CivmhJogPiBzdHVwaWQ7Civns54gPiBtYW51cmU7CivnsqcgPiB0b2lsZXQ7CivmkoMgPiBzdHJpa2U7CivppaUgPiBodW5nZXI7CivpkZIgPiBtaXJyb3I7CivpgLsgPiBwYXRyb2w7CivnsKEgPiBzaW1wbGU7Civpj6EgPiBtaXJyb3I7Civmj5sgPiBjaGFuZ2U7CivmjqEgPiBnYXRoZXI7CivluJUgPiB0dXJiYW47CivlhrsgPiBmcmVlemU7CivosKYgPiBodW1ibGU7CivmjZwgPiBzZWFyY2g7CivkuKsgPiBmb3JrZWQ7CivnhYwgPiBicmlnaHQ7CivmjL8gPiBpbnNlcnQ7Civmi5AgPiBraWRuYXA7CivojZAgPiByZXBlYXQ7CivlgKogPiBmZWVibGU7CivpjJAgPiBnaW1sZXQ7CivpqpogPiBoYXJhc3M7Civlr54gPiBzaWxlbnQ7Civnr64gPiBiYXNrZXQ7CivkvoQgPiBuZXBoZXc7Civmi5kgPiBzdHVwaWQ7Civlj4kgPiBjcm90Y2g7CivmgJYgPiB0ZXJyb3I7CivmipwgPiB1cHJvb3Q7CivnqpMgPiB3aW5kb3c7CivmiokgPiBjaG9vc2U7CivpioUgPiBjb3BwZXI7CivpioAgPiBzaWx2ZXI7CivosJwgPiByaWRkbGU7CivpooEgPiBjb25mZXI7CivpooogPiBjaGVla3M7CivlkpUgPiBtdW1ibGU7CivoiLUgPiBydWRkZXI7Civmg6kgPiBwdW5pc2g7CivlkpYgPiBjb2ZmZWU7Civph50gPiBuZWVkbGU7Civmh4kgPiBzaG91bGQ7CivlsLkgPiBnb3Zlcm47CivmhqQgPiByZXNlbnQ7Civmt7MgPiBob25lc3Q7CivnjLQgPiBtb25rZXk7CivlvKYgPiBzdHJpbmc7CivnvJogPiB0b1wtdGllOwor5oWLID4gbWFubmVyOwor5oWEID4gc2hpdmVyOwor6ZmLID4gbmFycm93Owor6YO1ID4gcG9zdGFsOwor56qEID4gbmFycm93Owor6am0ID4gZG9ua2V5Owor5aOzID4gY2FzaW5nOwor6ZyJID4gbWlsZGV3Owor6IqmID4gcnVzaGVzOwor6IOzID4gYXJtcGl0Owor5oK8ID4gZ3JpZXZlOwor5oK2ID4gZ2xvb215Owor6YCNID4gcmFtYmxlOwor5oK0ID4gc3VmZmVyOwor6ICNID4gZnJvbGljOwor57KqID4gbWFudXJlOwor5o2GID4gdGllXC11cDsKK+mBuCA+IGNob29zZTsKK+mBnCA+IGh1bWJsZTsKK+WFlCA+IHJhYmJpdDsKK+mBiiA+IHdhbmRlcjsKK+mAmyA+IHJhbWJsZTsKK+WMiCA+IGJyZWFzdDsKK+iuvSA+IHJlY2l0ZTsKK+aLoyA+IGNob29zZTsKK+iAvyA+IGJyaWdodDsKK+W7vyA+IHR3ZW50eTsKK+ivtSA+IHJlY2l0ZTsKK+iFuyA+IGdyZWFzeTsKK+e8hiA+IGhhd3NlcjsKK+mekSA+IHRhdGFyczsKK+awkyA+IHBlb3BsZTsKK+aFtyA+IGFyZGVudDsKK+evtyA+IGF3bmluZzsKK+iNhiA+IHRob3JuczsKK+iGjyA+IGdyZWFzZTsKK+mejSA+IHNhZGRsZTsKK+m4oCA+IHBpZ2VvbjsKK+e8lSA+IHRocmVhZDsKK+edrCA+IG5vdGljZTsKK+e7pSA+IHNvb3RoZTsKK+awpyA+IG94eWdlbjsKK+WptyA+IHByZXR0eTsKK+WnrCA+IGJlYXV0eTsKK+WQrSA+IHRocm9hdDsKK+WHvyA+IGNoaXNlbDsKK+aNgiA+IHJlc2lzdDsKK+W3qyA+IHdpemFyZDsKK+iZviA+IHNocmltcDsKK+e7hSA+IGdpcmRsZTsKK+mVtiA+IGluc2VydDsKK+mikCA+IGNoZWVrczsKK+WIoCA+IHRvXC1jdXQ7CivorrwgPiBhY2N1c2U7CivkvLYgPiBsb25lbHk7Civngq8gPiBicmlnaHQ7CivpuL0gPiBwaWdlb247CivmuJ0gPiBjaGFuZ2U7CivmpJIgPiBwZXBwZXI7Civmj5YgPiBzYWx1dGU7CivlhokgPiB0ZW5kZXI7CivlkpkgPiB0aHJvYXQ7CivouLEgPiBzdHJvbGw7CivnjKwgPiB2dWxnYXI7Civlsb8gPiBpc2xhbmQ7Civkv5AgPiBzbW9vdGg7CivopIIgPiBqYWNrZXQ7Civns5kgPiBjb2Fyc2U7Civpl7ggPiBzbHVpY2U7CivpopMgPiBydWluZWQ7CivlsYkgPiBkcmF3ZXI7CivoirkgPiBjZWxlcnk7CivplKUgPiBnaW1sZXQ7CivliIEgPiB0cmlja3k7Civmm5kgPiBicmlnaHQ7CivmtLwgPiBob2xsb3c7CivnmpMgPiBicmlnaHQ7CivokpwgPiBnYXJsaWM7CivngrMgPiBicmlnaHQ7CivmuKMgPiByZWZ1c2U7CivmhZEgPiBhZnJhaWQ7CivmqLEgPiBjaGVycnk7Civlv48gPiByZWdyZXQ7Civnor4gPiByb2xsZXI7CivnlpkgPiBwaW1wbGU7CivmvIkgPiBmaWx0ZXI7CivpmqcgPiB0dW5uZWw7CivphaUgPiBidXR0ZXI7Civpkq4gPiBidXR0b247CivpmpggPiBuYXJyb3c7CivmvLEgPiBnYXJnbGU7Civnm5QgPiBoZWxtZXQ7Civno4sgPiBwb2xpc2g7Civmg7QgPiBhZnJhaWQ7CivolYkgPiBiYW5hbmE7Civmg4sgPiByZWdyZXQ7Civnl7AgPiBwaGxlZ207CivnvoEgPiBoYWx0ZXI7Civor48gPiBkZWNyZWU7CivpnbYgPiB0YXJnZXQ7CivphZ0gPiBsaXF1b3I7Civmn6wgPiBsZXR0ZXI7CivkurUgPiBzbGlnaHQ7CivosoIgPiBtYXJ0ZW47CivogYYgPiBsaXN0ZW47Civmr4sgPiBkb1wtbm90Owor6Z+sID4gc2hlYXRoOwor6bmKID4gbWFncGllOwor5pWWID4gcmFtYmxlOwor6Ia6ID4gYnJlYXN0Owor5oKaID4gYWZyYWlkOwor5Y2FID4gdGhpcnR5Owor5b61ID4gc3VtbW9uOwor56KzID4gY2FyYm9uOwor5oe1ID4gc3R1cGlkOwor6bmrID4gY29uZG9yOwor56GrID4gc3VsZnVyOwor6LieID4gY3JvdWNoOwor6ZWwID4gc2lja2xlOwor5raOID4gc2FsaXZhOwor5aOVID4gdHJlbmNoOwor6ZSaID4gYW5jaG9yOwor6ZKgID4gc29kaXVtOwor552/ID4gc2hyZXdkOwor6I66ID4gb3Jpb2xlOwor6JuKID4gcG9pc29uOwor54OoID4gYnJpZ2h0Owor6IOvID4gcGVsdmlzOwor6Le7ID4gYXNjZW5kOwor6bOWID4gdHVydGxlOwor6IW8ID4gbW9kZXN0Owor5qmZID4gb3JhbmdlOwor5LieID4gYXNzaXN0Owor5aiTID4gY29tcGx5Owor5YiOID4gYmVoZWFkOwor6LmZID4gdXJnZW50Owor6IOaID4gZW1icnlvOwor6I2UID4gbGljaGVlOwor6ZO/ID4gc3RyaWtlOwor6ZS1ID4gdGlua2xlOwor6IynID4gY29jb29uOwor6J+SID4gcHl0aG9uOwor6KS0ID4gcmFnZ2VkOwor6bmDID4gY3Vja29vOwor54ylID4gdnVsZ2FyOwor542XID4gdW5ydWx5Owor6JKvID4gYVwtcnVzaDsKK+ayjyA+IGluZnVzZTsKK+WzqiA+IHZhbGxleTsKK+WajyA+IHNuZWV6ZTsKK+egviA+IGdyYXZlbDsKK+mmgSA+IGh1bmdyeTsKK+S9nyA+IGFcLW5hbWU7CivojJwgPiBtYWRkZXI7CivmiYggPiBlc2NvcnQ7CivlkpsgPiBlbmpvaW47Civms5cgPiBtdWNvdXM7Civog4QgPiBoZWxtZXQ7CivplLkgPiBzaG92ZWw7CivpuZcgPiBvc3ByZXk7CivlhKEgPiBwdXBwZXQ7CivnmoggPiBmb2xsb3c7CivonoIgPiBtYW50aXM7Civoi5MgPiBmdW5ndXM7CivlqpsgPiBiZWF1dHk7CivnrrQgPiBuZWVkbGU7Civlj7UgPiBjYW5ub3Q7Civku4MgPiBsb25lbHk7CivmnZ4gPiB3aWxsb3c7Civlr64gPiBzaGFudHk7CivnvK4gPiByZXBhaXI7CivnircgPiBmaWVyY2U7CivmsrEgPiByaXZlcnM7CivljqkgPiBzdGFibGU7CivnlqEgPiB1bGNlcnM7CivlnpMgPiBib3JkZXI7CivlvpUgPiBpbmR1Y2U7Civmp4EgPiB3aXRoZXI7CivpgbQgPiBzZWxlY3Q7CivlnLsgPiBib3JkZXI7CivpvoogPiBuYXJyb3c7CivpvowgPiBuYXJyb3c7CivpgaggPiByYW1ibGU7CivpqpsgPiBnYWxsb3A7CivlvokgPiB3b25kZXI7CivosKogPiBjaGFyZ2U7Civkv5ogPiBydXN0aWM7CivplKggPiBzaG92ZWw7CivplIMgPiBwb2xpc2g7Civkv6ogPiBzcG91c2U7CivplLIgPiBzaWNrbGU7CivnpZogPiB0aHJvbmU7Civoh74gPiBtb21lbnQ7CivpgZIgPiBzdHJvbmc7Civlm7kgPiBwcmlzb247CivlrLQgPiB0b1wtd2luOwor54OpID4gcmFnb3V0Owor5ZyEID4gcHJpc29uOwor6J6rID4gcG9pc29uOwor6ZOkID4gaW5nb3RzOwor6J6zID4gbWFudGlzOwor6IyBID4gc3Byb3V0Owor6IiiID4gc2FtcGFuOwor6Iq+ID4gZmxvd2VyOwor54uyID4gbW9ua2V5Owor56KcID4gZ3JpdHR5Owor5YOtID4gYXNzdW1lOwor56KYID4gaW9kaW5lOwor54OvID4gYWxrZW5lOwor5Zu/ID4gcGVuXC11cDsKK+WbqyA+IGVudGlyZTsKK+ikoSA+IGdpcmRsZTsKK+mVjSA+IG5pY2tlbDsKK+eFnCA+IGJyaWdodDsKK+apkCA+IGFcLXNhY2s7CivmnbcgPiBsb3F1YXQ7CivmgbkgPiBmZWVibGU7CivlvYAgPiBlbm91Z2g7CivogZIgPiBjbGFtb3I7Civnvq8gPiB3ZXRoZXI7CivnsrIgPiBwb2xpc2g7CivmnocgPiBsb3F1YXQ7Civnp6MgPiBmb2RkZXI7CivmqL0gPiBnb2JsZXQ7CivmpbkgPiBjb2x1bW47CivnhJYgPiBzaW1tZXI7CivnnZEgPiBleWVsaWQ7CivovbMgPiBwdWxsZXk7CivmrpogPiB1dG1vc3Q7Civpla0gPiByYWRpdW07CivmroQgPiB0b1wtZW5kOwor6K+wID4gaW5mb3JtOwor6bmEID4gdGFyZ2V0Owor6I6FID4gYXR0ZW5kOwor6LCfID4gc2NoZW1lOwor6K6rID4gZmluaXNoOwor54+yID4gYnJpZ2h0Owor5resID4gdGVtcGVyOwor5ZisID4gdG9cLWxhcDsKK+S9tiA+IHN0cm9uZzsKK+aZlCA+IGJyaWdodDsKK+iImyA+IG9wcG9zZTsKK+eDtyA+IGFsa2FuZTsKK+ibjiA+IG95c3RlcjsKK+eEsSA+IGZsYW1lczsKK+icpSA+IGxpemFyZDsKK+WcnCA+IGNpcmNsZTsKK+ictCA+IGxpemFyZDsKK+iRuiA+IHRoYXRjaDsKK+aIhiA+IHN0dXBpZDsKK+WstyA+IG1vdGhlcjsKK+aBvSA+IGRldmlzZTsKK+iTvyA+IGNsb3ZlcjsKK+eYjCA+IHNldmVyZTsKK+WWsSA+IGdyYW1tZTsKK+mStCA+IGNvYmFsdDsKK+WymSA+IGlzbGFuZDsKK+iyiSA+IGJhZGdlcjsKK+e5hyA+IHJlYXNvbjsKK+iciSA+IG1heWZseTsKK+eWliA+IHBpbXBsZTsKK+e6viA+IGxvb3NlbjsKK+mykSA+IHNhbG1vbjsKK+WoiCA+IGxvdmVseTsKK+iNqCA+IG5ldHRsZTsKK+erpiA+IHJldmVyZTsKK+eLkiA+IGJhYm9vbjsKK+aShCA+IG9wcG9zZTsKK+iYvCA+IG1pbGxldDsKK+iMtCA+IGZlbm5lbDsKK+mypiA+IG1pbm5vdzsKK+a4jCA+IHN0cmFpbjsKK+mYmiA+IGdsYW5jZTsKK+iLnCA+IGNsb3ZlcjsKK+WBrCA+IHVyZ2VudDsKK+ePkCA+IGVuYW1lbDsKK+mdmyA+IGluZGlnbzsKK+m7pyA+IGFcLWRhcms7CivnoocgPiBhbmNob3I7CivooJMgPiBtaWRnZXM7CivmqbwgPiBjaXRydXM7CivolZ4gPiBsaXR0bGU7CivlnK8gPiBicmlkZ2U7CivprY0gPiBkZW1vbnM7Civnv4ogPiBmbHlpbmc7CivplY8gPiBkaXN0aWw7CivnopMgPiBwZXN0bGU7Civog7wgPiBjYWxsdXM7CivmjIggPiBhc3Npc3Q7Civnio8gPiB5YWtcLW94Owor5oKbID4gcmVwZW50Owor5YuWID4gZW5qb2luOwor57GAID4gcmVjaXRlOwor56KaID4gc3VidXJiOwor6IWtID4gcGFsYXRlOwor6bOfID4gYmFyYmVsOwor6ZuOID4gb3NwcmV5Owor5q6CID4gdG9cLWRpZTsKK+etmiA+IHdpY2tlcjsKK+eWnSA+IGhlcm5pYTsKK+mqgCA+IGFuXC1vbGQ7CivokpcgPiBcKGhlcmJcKTsKK+iRuCA+IGFmcmFpZDsKK+iPnyA+IGRvZGRlcjsKK+mZiSA+IGRlZmlsZTsKK+etsiA+IGJhc2tldDsKK+eWoCA+IGFcLXNvcmU7CivnlZsgPiBib3JkZXI7Civml7AgPiBzdW5zZXQ7CivoiqogPiBjZWxlcnk7CivosJYgPiBmb3JnZXQ7CivmlYkgPiBwYWNpZnk7CivogY0gPiBlYXJ3YXg7CivplIcgPiBvc21pdW07Civng4AgPiBzaW1tZXI7CivlqacgPiBtb2Rlc3Q7Civoj5ggPiBjZWxlcnk7CivpkqEgPiBiYXJpdW07CivonaMgPiBtYXlmbHk7CivomrUgPiBveXN0ZXI7CivopbsgPiBhXC1sb29wOwor6ZOSID4gZXJiaXVtOwor6ZOIID4gY2VyaXVtOwor5qS0ID4gcG9wbGFyOwor5ayyID4gZnJvbGljOwor6IuhID4gYmFybGV5Owor6IiEID4gYVwtc2hvZTsKK+idviA+IGxpemFyZDsKK+icqSA+IGNpY2FkYTsKK+m4qyA+IHRocnVzaDsKK+mUlCA+IGN1cml1bTsKK+mTnyA+IGluZGl1bTsKK+ecjSA+IHN1bmtlbjsKK+eJliA+IHdpbmRvdzsKK+amhyA+IGNvZmZpbjsKK+ahtyA+IHJhZnRlcjsKK+W5niA+IHR1cmJhbjsKK+W4uyA+IHR1cmJhbjsKK+WciSA+IHN0YWJsZTsKK+aRhSA+IHNwcmVhZDsKK+iLhCA+IGJlbnp5bDsKK+mZlCA+IGFcLXN0ZXA7CivliL8gPiB0b1wtY3V0Owor6aq2ID4gY29jY3l4Owor6bK7ID4gbXVsbGV0Owor6J6oID4gaW5zZWN0Owor6Jm8ID4gYVwtZmxlYTsKK+eYlSA+IGFzdGhtYTsKK+mVmCA+IHRyb3dlbDsKK+ejmSA+IHJvbGxlcjsKK+iDgiA+IGFyc2luZTsKK+iniyA+IHdpemFyZDsKK+iTpSA+IHBvbGlzaDsKK+iPlCA+IHR1cm5pcDsKK+S7oSA+IHN0cm9uZzsKK+m+niA+IHR1cnRsZTsKK+m+nSA+IGF1dHVtbjsKK+m+jSA+IGRyYWdvbjsKK+m9tyA+IG5hcnJvdzsKK+m9tiA+IHBhbGF0ZTsKK+m9tSA+IHVuZXZlbjsKK+m9qiA+IG5hcnJvdzsKK+m8qyA+IG1hcm1vdDsKK+m8qiA+IHdlYXNlbDsKK+m8lCA+IGFcLWRydW07CivpvIUgPiBzcGlkZXI7Civpu4wgPiBzY2hvb2w7Civpu4kgPiBzY2hvb2w7Civpu4ggPiB5ZWxsb3c7Civpu4MgPiB5ZWxsb3c7CivpurAgPiBiYXJsZXk7CivpuoQgPiBjb2Fyc2U7CivpuaggPiBhbnRodXM7Civpt5ogPiBhbnRodXM7Civpt4cgPiBjaGlja3M7Civptr0gPiBhXC1oYXdrOwor6ba4ID4gc2lza2luOwor6bavID4gb3Jpb2xlOwor6basID4gb3Jpb2xlOwor6barID4gdGhydXNoOwor6baaID4gb3NwcmV5Owor6baKID4gb3Jpb2xlOwor6baHID4gdGhydXNoOwor6bW7ID4gcGlnZW9uOwor6bWyID4gbWFncGllOwor6bWgID4gdGFyZ2V0Owor6bWRID4gY3Vja29vOwor6bWAID4gaG9vcG9lOwor6bS/ID4gcGlnZW9uOwor6bSsID4gb3Jpb2xlOwor6bSiID4gXChkdWNrXCk7CivptIMgPiBzaHJpa2U7CivpsZIgPiBiYXJiZWw7CivpsY4gPiBcKGZpc2hcKTsKK+mxiSA+IHR1cnRsZTsKK+mxhiA+IHBvdWxwZTsKK+mwtyA+IG1pbm5vdzsKK+mwlSA+IHNocmltcDsKK+mvlCA+IG11bGxldDsKK+murSA+IHNhbG1vbjsKK+mttSA+IHNocmltcDsKK+mpqyA+IGhvcnNlczsKK+mopCA+IGxpdmVseTsKK+moliA+IGdhbGxvcDsKK+mogyA+IHN0dXBpZDsKK+mnoSA+IGFjY3VzZTsKK+mnmCA+IGFuXC1vbGQ7Civpp5MgPiBnYWxsb3A7Civpp4MgPiBnYWxsb3A7Civppr8gPiBhblwtYXNzOwor6aSkID4gaW5jaXRlOwor6aSSID4gaHVuZ3J5Owor6aGcID4gaG9uZXN0Owor6aGSID4gc29sZW1uOwor6aGRID4geWVsbG93Owor6aC9ID4gcnVpbmVkOwor6aC5ID4gcnVpbmVkOwor6aCwID4gY2hlZWtzOwor6aCeID4gYnJpZGdlOwor6aCSID4gY29uZmVyOwor6aCJID4gY2hlZWtzOwor6Z+cID4gc2hlYXRoOwor6Z+DID4gdGF0YXJzOwor6Z6eID4gc2hlYXRoOwor6Z6aID4gYnJpZGxlOwor6Z2uID4gYnJpZGxlOwor6ZuCID4gXChiaXJkXCk7CivpmrsgPiBzaW5nbGU7CivpmawgPiBjb3JuZXI7CivpmZwgPiBuYXJyb3c7CivpmZggPiBkZWZpbGU7Civpl54gPiBnbGFuY2U7Civpl4kgPiBjdXJ2ZWQ7CivplpggPiBzbHVpY2U7CivplaEgPiBkYWdnZXI7Civpk68gPiBjZXNpdW07Civpkb8gPiBjaGlzZWw7CivpkbIgPiBpbnNlcnQ7CivpkZ4gPiBzb2xkZXI7CivpkZEgPiBtaXJyb3I7CivpkYAgPiBpb25pdW07CivpkLMgPiByYWRpdW07CivpkK4gPiBzaWNrbGU7CivpkJ0gPiBhXC1waWNrOwor6ZCUID4gZGFnZ2VyOwor6Y+dID4gdHJvd2VsOwor6Y+YID4gdGlua2xlOwor6Y+XID4gc3RyaWtlOwor6Y6zID4gbmlja2VsOwor6Y6mID4gZGlzdGlsOwor6Y6jID4gcG9saXNoOwor6Y6aID4gaGFtbWVyOwor6Y6SID4gdG9cLWhvZTsKK+mOjCA+IHNpY2tsZTsKK+mOhSA+IHRvXC1zYXc7CivpjbwgPiBuZWVkbGU7CivpjawgPiBzaG92ZWw7CivpjasgPiBzaG92ZWw7CivpjaUgPiBzaWNrbGU7CivpjaAgPiB3ZWFwb247CivpjKkgPiB2ZXNzZWw7CivpjKggPiBhbmNob3I7Civpi6ggPiBvc21pdW07Civpi6YgPiBjdXJpdW07Civpi5kgPiBtaXNmaXQ7Civpi4wgPiBpbmdvdHM7Civpi4cgPiBiYXJpdW07Civpi4UgPiB6aW5jdW07CivpirYgPiBjaGlzZWw7CivpirIgPiBzb2xkZXI7CivpiqsgPiBjZXNpdW07CivpiqYgPiBpbmRpdW07CivpibogPiBlcmJpdW07CivpiaUgPiBuZWVkbGU7CivpiLcgPiBjb2JhbHQ7CivpiLAgPiBjZXJpdW07CivpiJUgPiBidXR0b247CivpiIkgPiBzb2RpdW07Civph6wgPiBzb2xkZXI7Civph6YgPiBidXR0b247Civph5AgPiBtYW5hZ2U7Civph4MgPiBzdHJhaW47Civphp4gPiBsaXF1b3I7CivphpYgPiBsaXF1b3I7Civphb4gPiBzdHJhaW47CivphbQgPiBsZWF2ZW47CivphIsgPiBjb3VudHk7Civpgo8gPiBwYXRyb2w7CivpgLAgPiB3YW5kZXI7CivpgKUgPiByZXR1cm47CivpgI4gPiBzdHJvbmc7CivpgIwgPiBwbGVhc2U7Civov68gPiBlc2NhcGU7Civov40gPiBmYWx0ZXI7Civov4sgPiB0cmF2ZWw7CivovqcgPiBtYW5hZ2U7CivovqYgPiBtYW5hZ2U7CivovqIgPiBiaXR0ZXI7CivovaQgPiBwdWxsZXk7CivovZwgPiBoZWFyc2U7CivovYAgPiBoZWFyc2U7CivovIAgPiBoZWFyc2U7Civou6MgPiBydW1ibGU7CivouqcgPiBzYW5kYWw7CivouosgPiBhc2NlbmQ7CivoubsgPiBzdHJvbmc7CivouZ0gPiBzYW5kYWw7CivouZMgPiBzdHJvbGw7CivouKEgPiBjdXJsZWQ7Civot6cgPiBjcm91Y2g7CivotqsgPiBuaW1ibGU7CivotqggPiBoYXN0ZW47CivotpUgPiBwdXJzdWU7CivotLMgPiBib3Jyb3c7Civos54gPiByZXdhcmQ7Civosq0gPiBtYXR0ZXI7CivosqogPiBncmVlZHk7Civosp8gPiBtZW1iZXI7CivospsgPiBiYWRnZXI7CivosbsgPiBwcmlzb247CivosL8gPiB2YWxsZXk7CivorpogPiBwcmFpc2U7CivoroEgPiBwdW5pc2g7CivorZ8gPiBjbGFtb3I7CivorY0gPiBhbnN3ZXI7CivorYYgPiBzY3JlYW07CivorKsgPiBjaGFyZ2U7CivorKggPiBzY2hlbWU7Civoq7wgPiBmb3JnZXQ7Civoq7cgPiByZWNpdGU7Civoq7UgPiBtdXR0ZXI7Civoq5IgPiBleGN1c2U7CivoqqYgPiByZWNpdGU7CivoqqUgPiBpbmZvcm07CivoqbsgPiBvcmRlcnM7CivoqZcgPiB0b1wtc3B5Owor6KmUID4gZGVjcmVlOwor6KiWID4gZmluaXNoOwor6Ke8ID4gYnVja2xlOwor6KepID4gc3Ryb25nOwor6KenID4gbG9vc2VuOwor6KeVID4gY29hcnNlOwor6KawID4gdG9cLXNweTsKK+imoSA+IHdpemFyZDsKK+imiiA+IGhhbHRlcjsKK+ilriA+IGNvbGxhcjsKK+iliyA+IGNvbGxhcjsKK+ikpiA+IHN0dXBpZDsKK+ikjyA+IHNsZWV2ZTsKK+ikjiA+IHNsZWV2ZTsKK+iimiA+IGdyZWF2ZTsKK+igsSA+IHBvaXNvbjsKK+igqSA+IGFcLXRvYWQ7CivooKMgPiBveXN0ZXI7CivooJkgPiBveXN0ZXI7CivooJQgPiBveXN0ZXI7CivooJEgPiBsaXphcmQ7CivooI4gPiBweXRob247CivooIEgPiBsYXJ2YWU7Civon7cgPiBtYW50aXM7Civon6wgPiBjaWNhZGE7Civon5wgPiBpbnNlY3Q7CivonaYgPiBzaHJpbXA7CivonIsgPiBtYW50aXM7Civom68gPiBzaHJpbXA7Civom6MgPiBiZWV0bGU7Civom4wgPiBjcmlja2U7CivomakgPiBmcmlnaHQ7CivomZYgPiB0b1wtY3J5Owor6JikID4gZmxvd2VyOwor6JiGID4gcnVzaGVzOwor6JeYID4gbWFkZGVyOwor6Ja/ID4gZmxvd2VyOwor6JaXID4gZ2FyZGVuOwor6JaRID4gZ2luZ2VyOwor6JWGID4gZmluaXNoOwor6JWCID4gc2VzYW1lOwor6JWBID4gbmV0dGxlOwor6JSZID4gXChoZXJiXCk7CivolJQgPiByYWRpc2g7CivolIIgPiBiYXNrZXQ7CivolIAgPiBzY3JlZW47Civok5ogPiBveGFsaWM7Civoko4gPiBwaW5hbmU7CivokocgPiBmaW5pc2g7CivokYEgPiBnaW5nZXI7CivokIUgPiBzcHJpbmc7Civoj4YgPiBqdW5nbGU7CivojrUgPiBkb2RkZXI7CivojYogPiB0aG9ybnM7CivojYEgPiBjZWxlcnk7CivojKYgPiB0aG9ybnM7CivojKIgPiBzZWRnZXM7Civoi6ogPiBicmlnaHQ7Civoi6IgPiBiYXJsZXk7CivoiqQgPiBob2xsb3c7CivoiaIgPiBhXC1tYXN0Owor6IimID4gcnVkZGVyOwor6IiDID4gYVwtc2hvZTsKK+iHhCA+IHBhbGF0ZTsKK+iGqSA+IGdyZWFzeTsKK+iGoyA+IHZhZ2luYTsKK+iGlSA+IGhvbGxvdzsKK+iFryA+IHN0cm9uZzsKK+iFnyA+IHZhZ2luYTsKK+iFgSA+IGNhbGx1czsKK+iEtyA+IHRvbmd1ZTsKK+iEtSA+IHRoaWdoczsKK+iEpyA+IHJlZHVjZTsKK+iDuSA+IGNvb2tlZDsKK+iDtyA+IGJyZWFzdDsKK+iCpyA+IGVtYnJ5bzsKK+iCkCA+IGFybXBpdDsKK+iBuSA+IGVhcndheDsKK+iApCA+IHBsb3VnaDsKK+e+tSA+IHNwaXJpdDsKK+e+iCA+IGhhbHRlcjsKK+e9qyA+IGhpbmRlcjsKK+e9pSA+IGltcGV0ZTsKK+e9oyA+IGhpbmRlcjsKK+e6qSA+IGNvdHRvbjsKK+e6nCA+IGhhd3NlcjsKK+e6lCA+IHRhbGVudDsKK+e6iiA+IGNvdHRvbjsKK+e5rSA+IGNvY29vbjsKK+e5qyA+IGF0dGFjaDsKK+e5qCA+IGFcLWtub3Q7CivnuYsgPiBhdHRhY2g7CivnuLcgPiB0aHJlYWQ7CivnuKMgPiBjb3VudHk7CivnuKEgPiBtYXR0ZXI7CivnuIYgPiBhXC1yb3BlOwor57eqID4gYVwtcm9wZTsKK+e2jyA+IHNvb3RoZTsKK+e2hSA+IHRocmVhZDsKK+e1vyA+IHVyZ2VudDsKK+e1miA+IGFcLXJvcGU7CivntLIgPiBicmlkbGU7CivntKkgPiB0b1wtc2V3Owor57SfID4gYVwtc2FzaDsKK+e0mCA+IHN0cmluZzsKK+e0kyA+IGxvb3NlbjsKK+e0gyA+IGFcLWNvcmQ7Civns6ggPiBzdGFyY2g7Civns6EgPiBzdGFyY2g7CivnsbIgPiBhcHBlYWw7CivnsZogPiBiYW1ib287CivnsYMgPiBiYXNrZXQ7CivnsJwgPiBiYW1ib287CivnsIkgPiBkZXB1dHk7Civnr7MgPiB3aWNrZXI7Civnr6UgPiBidWxnbGU7Civnr5wgPiBiYW1ib287CivnrpkgPiBxdWl2ZXI7CivnrLIgPiBiYXNrZXQ7Civnq5wgPiBkcmFnb247Civnq4kgPiBhXC1ob2xlOwor56qqID4gaG9sbG93Owor56qUID4gY29ybmVyOwor56mpID4gc3RhYmxlOwor56moID4gcnVpbmVkOwor56mMID4gcmV2aXZlOwor56mIID4gbWlsbGV0Owor56icID4gY29ybmVyOwor56egID4gbWlsbGV0Owor56amID4gZGVmZW5kOwor56WPID4gc2hyaW5lOwor56SrID4gZ3JhdmVsOwor56OjID4gZ3JpdHR5Owor56K8ID4gbnVtYmVyOwor56G+ID4gd2VpZ2h0Owor56GNID4gc3RyaWtlOwor55+0ID4gYW5jaG9yOwor55+HID4gc3R1cGlkOwor5563ID4gdG9cLXNweTsKK+edqiA+IHNweVwtb247CivnnYYgPiBicmlnaHQ7CivnnL4gPiBtYXNzZXM7Civnm6kgPiBjYWxsdXM7CivnmqUgPiBicmlnaHQ7CivnmqEgPiBicmlnaHQ7Civnmp4gPiBicmlnaHQ7CivnmoAgPiBrZXJuZWw7CivnmaQgPiBwaW1wbGU7CivnmZggPiBhXC1zb3JlOwor55iNID4gdWxjZXJzOwor55e7ID4gc3VmZmVyOwor55eaID4gYXN0aG1hOwor55aJID4gcmVwZWF0Owor55aDID4gaGFtbGV0Owor55aCID4gcmVwZWF0Owor55W9ID4gZ3JvdW5kOwor55WvID4gcnVzdGljOwor55WfID4gcGxvdWdoOwor55C/ID4gYnJpZ2h0Owor55C6ID4gZW5hbWVsOwor54+UID4gXChqYWRlXCk7CivnjpMgPiBwZWFybHk7CivnjbcgPiBmaWVyY2U7CivnjYkgPiBqdW5nbGU7CivnjLsgPiBtb25rZXk7CivnjLogPiBqYWNrYWw7CivnjJMgPiBtb25rZXk7Civni6UgPiBmb2xsb3c7CivnirogPiBhbmltYWw7CivniZUgPiB3aW5kb3c7CivniZMgPiB0YWJsZXQ7CivniZAgPiBzbHVpY2U7CivniKUgPiBzaW1tZXI7CivniJogPiBicmlnaHQ7Civnh7QgPiByYWdvdXQ7Civnh6EgPiBicmlnaHQ7Civnh5wgPiBzaW1tZXI7Civnh4sgPiBzY29yY2g7Civnh4EgPiBicmlnaHQ7CivnhrIgPiBicmlnaHQ7CivnhoggPiBicmlnaHQ7CivnhZUgPiBicmlnaHQ7CivnhYMgPiByZW1vdmU7CivnhYEgPiBoZWFydGg7CivnhLsgPiBicmVhdGg7CivnhLQgPiBicmlnaHQ7CivnhKAgPiB0ZW1wZXI7Civng7ogPiBicmlnaHQ7Civng7EgPiBicmlnaHQ7CivngoEgPiBicmVhdGg7CivngJIgPiBjb2Fyc2U7CivngIwgPiBwbGVudHk7Civmv7UgPiBhXC1iYW5rOwor5r+sID4gZHJlZGdlOwor5r68ID4gYmxlYWNoOwor5r2oID4gZ2F0aGVyOwor5r2AID4gZ2F0aGVyOwor5rymID4gc2FsaXZhOwor5rioID4gYVwtY292ZTsKK+a3pSA+IHN0cmFpbjsKK+a3nyA+IHR1cmJpZDsKK+a0nyA+IHNuaXZlbDsKK+azrSA+IGFcLXJhZnQ7CivmsZkgPiBmaWx0aHk7CivmsL8gPiBzcHJpbmc7CivmsKsgPiBhbW9uaWE7CivmrrwgPiBjYXNpbmc7CivmrqsgPiB1dG1vc3Q7CivmrLsgPiBzdWRkZW47CivmrJEgPiBnYXRoZXI7Civmq6wgPiBjb2ZmaW47Civmq54gPiBjaXRydXM7Civmq5wgPiBxdWl2ZXI7CivmqbAgPiBhXC1zcGFyOwor5qmrID4gYWNyb3NzOwor5qmkID4gc3RhbWVuOwor5qmcID4gYVwtcG9zdDsKK+aplSA+IGFcLXByb3A7CivmqL8gPiBjb2ZmaW47CivmqLggPiBzaW1wbGU7CivmqLIgPiBqdWp1YmU7CivmqJEgPiBicmlkZ2U7Civmp6UgPiBjb2ZmaW47CivmprIgPiBwaWxsYXI7CivmprEgPiByYWZ0ZXI7CivmpqUgPiBzY3JlZW47CivmpoUgPiBwaWxsYXI7Civmpa8gPiBzaGllbGQ7CivmpawgPiB0YWJsZXQ7CivmpaIgPiB0aW5kZXI7CivmpZsgPiBjb2Fyc2U7CivmpYogPiB3aWxsb3c7CivmpKcgPiBndXR0ZXI7CivmpJMgPiBzdHJpa2U7Civmo5wgPiBicmFuY2g7Civmo4UgPiBoYW5kbGU7Civmo4MgPiBhXC1wZWFyOwor5qGyID4gcXVpbmNlOwor5p+yID4gaGFuZGxlOwor5p20ID4gc2hvdmVsOwor5p2HID4gbG9xdWF0Owor5pyZID4gYnJpZ2h0Owor5puhID4gcmVwZWF0Owor5puNID4gYnJpZ2h0Owor5puFID4gYnJpZ2h0Owor5puEID4gYnJpZ2h0Owor5puAID4gc3Rvcm15Owor5pq7ID4gYnJpZ2h0Owor5pq4ID4gYnJpZ2h0Owor5pqyID4gYnJpZ2h0Owor5pqLID4gc3Ryb25nOwor5pmcID4gaW5zZWN0Owor5pmEID4gYnJpZ2h0Owor5pi6ID4gYnJpZ2h0Owor5pieID4gYnJpZ2h0Owor5piRID4gYnJpZ2h0Owor5pe7ID4gaGVhdmVuOwor5pedID4gYmFubmVyOwor5pW5ID4gdG9cLXNldzsKK+aVoSA+IHJlYnVrZTsKK+aVgyA+IHN0cm9uZzsKK+aVgiA+IGRlZHVjdDsKK+aUliA+IG9wcG9zZTsKK+aUhCA+IHNwcmVhZDsKK+aTvSA+IHRpY2tsZTsKK+aTtCA+IGV4cGFuZDsKK+aTliA+IHNjcmFwZTsKK+aTkyA+IHRvXC1ydWI7Civmk4ogPiBzdHJpa2U7Civmk4cgPiBzZWxlY3Q7CivmkqYgPiByaXBcLXVwOwor5pKKID4gZmllcmNlOwor5pC/ID4gdG9cLWh1ZzsKK+aPtyA+IGluc2VydDsKK+aPriA+IGRpcmVjdDsKK+aPlyA+IHN0cmlrZTsKK+aPgCA+IGNob29zZTsKK+aOpCA+IHF1aXZlcjsKK+aOlCA+IHN0dXJkeTsKK+aNvSA+IGNsdXRjaDsKK+aNvCA+IHRvXC1ydWI7CivmjZMgPiBzdHJpdmU7CivmjYMgPiBnYXRoZXI7Civmi6EgPiBleHBhbmQ7Civmip4gPiBzZWxlY3Q7CivmiZAgPiBkaXZpbmU7CivmiYYgPiBzY3JlZW47CivmiJ0gPiBwaXJhdGU7CivmiIcgPiBzdHVwaWQ7Civmh74gPiBhZnJhaWQ7Civmh7ogPiByZWdyZXQ7Civmh7QgPiByZWdyZXQ7Civmh7IgPiBwdW5pc2g7Civmh6ggPiBmZWVibGU7CivmhqYgPiByZWdyZXQ7CivmhL0gPiBnYW1ibGU7CivmhKwgPiBhY2N1c2U7Civmg7IgPiBkZXZpc2U7Civmg6ogPiBldGhpY3M7Civmg44gPiBpbmp1cmU7CivmgrMgPiBldGhpY3M7CivmgqcgPiBzbW9vdGg7Civmgp4gPiBpbXBlZGU7CivmgosgPiBzdGluZ3k7CivmgaEgPiBzdGluZ3k7CivmgZ8gPiBzY2FyZWQ7Civlv7AgPiBzdWZmZXI7CivlvqAgPiBpbmR1Y2U7CivlvbQgPiBicmlkZ2U7CivlvKMgPiBtaWRkbGU7Civlu70gPiByZXR1cm47Civlu58gPiB0ZW1wbGU7Civlu5AgPiBzdGFibGU7Civlu48gPiBzdGFibGU7Civlu4YgPiBhXC1yb29tOwor5buEID4gc3RhYmxlOwor5buBID4gdG9pbGV0Owor5bmYID4gdHVyYmFuOwor5bekID4gYVwtbWFuZTsKK+W3mCA+IHN1bW1pdDsKK+W2vCA+IGlzbGFuZDsKK+W2tCA+IGlzbGFuZDsKK+W2kyA+IGJvc2hhbjsKK+W2jCA+IGlzbGFuZDsKK+W2iyA+IGlzbGFuZDsKK+W1viA+IHVuZXZlbjsKK+W0vyA+IGNsaWZmczsKK+W0nyA+IGNsaWZmczsKK+WyqCA+IHVuZXZlbjsKK+WygCA+IGdvXC1vdXQ7Civlsa4gPiBzcHJvdXQ7CivlsZwgPiBkcmF3ZXI7CivlsIUgPiBzdWJkdWU7CivlsIAgPiBjYW5ub3Q7Civlr5wgPiByZXBvc2U7Civlr5UgPiByZXBvc2U7Civlr44gPiBkcm93c3k7CivlrqcgPiBjb3JuZXI7Civlrb4gPiBhXC1iYWJ5Owor5a2MID4gbG92ZWx5Owor5ay/ID4gbG92ZWx5Owor5aykID4gbW90aGVyOwor5ayDID4gc2lzdGVyOwor5auqID4gaGFua2VyOwor5auQID4gZnJvbGljOwor5aq9ID4gbW90aGVyOwor5aqWID4gYmVhdXR5Owor5am8ID4gcGVyc29uOwor5amkID4gbG92ZWx5Owor5aisID4gbG92ZWx5Owor5aiSID4gbWF0cm9uOwor5aeBID4gYmVhdXR5Owor5aa4ID4gcGVyc29uOwor5aSsID4gcGFydGVkOwor5aSgID4gZW5vdWdoOwor5aSGID4gcmVzaXN0Owor5aO/ID4gZ29ibGV0Owor5aKgID4gc21vb3RoOwor5aCnID4gYWRqb2luOwor5aCmID4gc3RhaXJzOwor5aCJID4gZ3JvdW5kOwor5ZyeID4gZW50aXJlOwor5ZydID4gZW50aXJlOwor5ZyOID4gY2lyY2xlOwor5ZyAID4gbmF0aW9uOwor5ZuYID4gcmV0dXJuOwor5Zq/ID4gYVwtbHVtcDsKK+WaqCA+IHRocm9hdDsKK+WalCA+IHNuZWV6ZTsKK+WagyA+IGdvYmJsZTsKK+WagCA+IGVuam9pbjsKK+WZmiA+IGZhdGhvbTsKK+WZkyA+IGV4aGFsZTsKK+WZjyA+IGluaGFsZTsKK+WXvyA+IGdvYmJsZTsKK+WWhiA+IGFcLXNhZ2U7CivllYkgPiBzdHVwaWQ7CivllKsgPiB0b1wtaHVtOwor5ZSIID4gdG9cLXNvYjsKK+WTpCA+IGphcmdvbjsKK+WTiyA+IHBsdXJhbDsKK+WSiCA+IG9wcG9zZTsKK+WRriA+IHRvXC1zaXQ7CivlkY8gPiBnYWxsb247Civlj6EgPiBhc3R1dGU7Civlj5MgPiBhZmZhaXI7Civljo4gPiBzZXR0bGU7CivljYQgPiB0d2VudHk7CivljIMgPiBiZWdnYXI7Civli7cgPiB1cmdlbnQ7Civli7UgPiBzdHJpdmU7Civli5cgPiBlbmpvaW47Civli5EgPiByZXdhcmQ7Civli40gPiBzdHJvbmc7Civli4QgPiBhY3RpdmU7Civli4EgPiBzdHJvbmc7CivliqQgPiBzdHJvbmc7CivliowgPiB0b1wtY3V0Owor5YqGID4gc2lja2xlOwor5YmOID4gdGVtcGxlOwor5YmLID4gc3ViZHVlOwor5YiqID4gdG9cLWN1dDsKK+WHniA+IGJyaWdodDsKK+WHkyA+IHNoaXZlcjsKK+WGkSA+IGhlbG1ldDsKK+WGhCA+IHRlbmRlcjsKK+WFsiA+IGhlYXZlbjsKK+WFpyA+IGluc2lkZTsKK+WEuCA+IGJhbmRpdDsKK+WEtyA+IHNwb3VzZTsKK+WDsSA+IGVtcGxveTsKK+WDrCA+IGNsZXZlcjsKK+WDoyA+IGFzc3VtZTsKK+WCryA+IHVyZ2VudDsKK+WCriA+IGZpbmlzaDsKK+WCjiA+IHRvcHBsZTsKK+WBqiA+IGNvbXBlbDsKK+WBqSA+IGZvbGxvdzsKK+WBqCA+IHVuZXZlbjsKK+WBliA+IHJpcFwtdXA7CivlgIYgPiBjbGV2ZXI7CivlgIUgPiBkZXB1dHk7CivlgIMgPiBkYW1hZ2U7Civkv7UgPiBkaXZpZGU7CivkvrcgPiBuYXJyb3c7CivkvYggPiBzcHJlYWQ7CivkvL4gPiBtaWdodHk7CivkvJwgPiBkZXB1dHk7Civku5ogPiB0b1wtZmx5Owor5LqKID4gYWZmYWlyOwor5LqEID4gZ3JlZWR5Owor5LmaID4gaGlkZGVuOwor5LmCID4gZ292ZXJuOwor5LiXID4gdGhpcnR5Owor5LauID4gY2xldmVyOwor5LaBID4gbm9pc2VzOwor5LWnID4gdG9cLWR5ZTsKK+S1mSA+IHN0aWNreTsKK+S1kCA+IHllbGxvdzsKK+S1jyA+IHllbGxvdzsKK+S1jSA+IHllbGxvdzsKK+S1iyA+IHllbGxvdzsKK+S1iiA+IHllbGxvdzsKK+S0pSA+IGFcLXN0YWc7Civks74gPiBhblwtb3dsOwor5LOPID4gY3Vja29vOwor5LOHID4gcGFycm90Owor5LK5ID4gb3NwZXJ5Owor5LKnID4gY3Vja29vOwor5LKMID4gYVwtZmlzaDsKK+SxlSA+IGxhYnJ1czsKK+SxkSA+IGFcLWZpc2g7CivksY8gPiBhXC1maXNoOwor5LGDID4gYVwtZmlzaDsKK+SxgiA+IGFcLWZpc2g7CivksLcgPiBhXC1maXNoOwor5LCjID4gYW5cLWVsZjsKK+SvqyA+IGJyaWdodDsKK+SvqCA+IHRvXC1yYXA7Civkr50gPiBtYXJyb3c7Civkr5wgPiBtYXJyb3c7Civkr4MgPiBzYWRkbGU7Civkr4EgPiBhXC1tdWxlOwor5K2qID4gZ3JhaW5zOwor5K2lID4gYVwtYmFpdDsKK+StnSA+IHRvXC1lYXQ7CivkrZogPiB0b1wtZWF0Owor5K2SID4gYnJlYXRoOwor5K2MID4gY29uZ2VlOwor5K2IID4gY29uZ2VlOwor5Ky4ID4gYVwtbWVhbDsKK+SskSA+IGFcLWdhbGU7CivkrJAgPiBicmVlemU7CivkrIogPiBhXC1nYWxlOwor5KyIID4gYnJlZXplOwor5KyHID4gYnJlZXplOwor5KyFID4gYVwtZ2FsZTsKK+SshCA+IGJyZWV6ZTsKK+SsgiA+IGJyZWV6ZTsKK+SrviA+IGJyZWV6ZTsKK+SrvSA+IGJyZWV6ZTsKK+SrvCA+IGJyZWV6ZTsKK+SrrCA+IHRvXC1ib3c7CivkqrggPiBzdHJvbmc7CivkqqQgPiBnYXJsaWM7Civkqa8gPiB1cmdlbnQ7Civkqa0gPiBoYWx0ZXI7CivkqL4gPiBoaWRkZW47CivkqLogPiBjbG91ZHk7CivkqLggPiBjbG91ZHk7CivkqK8gPiBjbG91ZHk7CivkqJ8gPiBwdWRkbGU7CivkqIkgPiBwYXJyb3Q7CivkqIcgPiBhXC1wYWlyOwor5Ke0ID4gYVwtYmlyZDsKK+SnsyA+IGZlbWFsZTsKK+SnpSA+IGJvcmRlcjsKK+SnmyA+IGJlc2lkZTsKK+SnkSA+IGFcLWRpa2U7CivkpaogPiB0b1wtY3VwOwor5KWoID4gYVwtZmlsZTsKK+SloCA+IG5lZWRsZTsKK+SljSA+IGFcLXdoaXA7Civko6YgPiB0b1wtY3V0Owor5KOYID4gYVwtaGFsbDsKK+SjiCA+IGFcLWxhbmU7Civkor0gPiBhXC1sYW5lOwor5KCwID4gY29pbGVkOwor5KCkID4gdG9kZGxlOwor5KCZID4gdXJnZW50Owor5KCOID4gbmFycm93Owor5KCHID4gc3Ryb25nOwor5J+xID4gdHJhY2VzOwor5J+fID4gdXJnZW50Owor5J+SID4gY29pbGVkOwor5J2cID4gYVwtbGlvbjsKK+SdhCA+IGNvd3BlYTsKK+ScniA+IGFcLWRvc2U7Civkm6cgPiByaWRkbGU7Civkm6UgPiBzcGVlY2g7Civkm6MgPiBzcGVlY2g7Civkm5wgPiB0b1wtYXNrOwor5JuRID4gc2lsZW50Owor5JuIID4gdG9cLXZvdzsKK+SauiA+IGJhbGxhZDsKK+SaiCA+IHRvXC1zZWU7CivkmoYgPiB0b1wtc2VlOwor5JqCID4gdG9cLXNlZTsKK+SagSA+IHRvXC1zZWU7Civkmb8gPiB0b1wtc2VlOwor5Jm9ID4gdG9cLXNlZTsKK+SZvCA+IHRvXC1zZWU7CivkmbUgPiBydXN0aWM7CivkmaEgPiBhXC1rbm90Owor5JmMID4gYVwta25vdDsKK+SYsCA+IGFcLWhvb2Q7CivkmKwgPiBhcm1vdXI7CivkmKkgPiBjb2xsYXI7CivkmIwgPiBnYWRmbHk7CivkmIggPiBveXN0ZXI7Civkl6sgPiBhXC1mcm9nOwor5Ja5ID4gd2VldmlsOwor5JauID4gbGFydmFlOwor5JarID4gb3lzdGVyOwor5JaoID4gbWFudGlzOwor5JaXID4gc3Ryb25nOwor5JaBID4gbnVtYmVyOwor5JWsID4gZ2luZ2VyOwor5JWoID4gcmF0dGFuOwor5JSvID4gc2FsdGVkOwor5JSiID4gY2F0aGF5Owor5JSPID4gYVwtbHVzaDsKK+STpyA+IHVyZ2VudDsKK+STpiA+IGFcLXJ1bGU7Civkk4UgPiBjZWxlcnk7Civkk4QgPiBncmFzc3k7CivkkrkgPiBncmFzc3k7CivkkqsgPiBncmFzc3k7CivkkokgPiBhXC1sb25nOwor5JKCID4gYW5cLW9hcjsKK+SRuiA+IGFcLXNhaWw7CivkkbQgPiBhXC1ib2F0Owor5JGxID4gYVwtYm9hdDsKK+SRryA+IGFcLWJvYXQ7CivkkaggPiBydWRkZXI7CivkkaYgPiBhXC1ib2F0Owor5JGkID4gYVwtYm9hdDsKK+SRkCA+IGJyaWdodDsKK+SQpiA+IHNsZWVweTsKK+SQpSA+IHN0aW5reTsKK+SPqiA+IHRlbmRvbjsKK+SPoyA+IG1hZ2dvdDsKK+SPgiA+IGNsZXZlcjsKK+SOsSA+IGFcLWRyYWc7CivkjqwgPiBhXC1kcmFnOwor5I6ZID4gZmx5aW5nOwor5I6XID4gZmx5aW5nOwor5I6TID4gZmx5aW5nOwor5I6KID4gZmx5aW5nOwor5I6IID4gZmx5aW5nOwor5I6GID4gZmx5aW5nOwor5I6FID4gZmx5aW5nOwor5I6AID4gZmx5aW5nOwor5I2+ID4gZmx5aW5nOwor5I2sID4gdG9cLXVzZTsKK+SNiyA+IGJvdHRsZTsKK+SNiCA+IGJvdHRsZTsKK+SNgyA+IGFcLXZhc2U7CivkjLQgPiB1bmV2ZW47CivkjLEgPiB1bmV2ZW47CivkjJwgPiB0b1wtc2V3Owor5IyVID4gdG9cLXRpZTsKK+SLsiA+IGFcLXJvcGU7Civki5EgPiB0b1wtdGllOwor5IuQID4gZmFicmljOwor5IuMID4gc3Ryb25nOwor5IqnID4gYVwtZmFydDsKK+SKpSA+IGNvbmdlZTsKK+SKmyA+IHNocmVkczsKK+SKjiA+IHBvd2RlcjsKK+SKhiA+IGNvb2tlZDsKK+SJtiA+IGFcLXNhaWw7CivkiLogPiBiYW1ib287CivkiLQgPiBhXC1jYWdlOwor5IiOID4gYVwtbGVhZjsKK+SHpSA+IG5hcnJvdzsKK+SHoiA+IGJhbWJvbzsKK+SHnyA+IHRlbmRvbjsKK+SHmiA+IHRvXC10YXA7Civkh4EgPiBhXC1jYXZlOwor5Ia9ID4gYVwtaG9sZTsKK+SGvCA+IGFcLW5lc3Q7CivkhrsgPiBhXC1ob2xlOwor5Ia3ID4gYVwtaG9sZTsKK+SGsCA+IGFcLWNhdmU7Civkhq4gPiB0b1wtZGlwOwor5IarID4gd2luZG93Owor5IanID4gYVwtY2F2ZTsKK+SGoSA+IGFcLWNhdmU7Civkhp0gPiBhXC1jYXZlOwor5IaZID4gYVwta2lsbjsKK+SGkyA+IGFcLWhvbGU7CivkhbYgPiB0b1wtaG9lOwor5IW0ID4gZ3JhaW5zOwor5IWmID4gZmVlYmxlOwor5IWHID4gZ3JhaW5zOwor5IS5ID4gYVwteWVhcjsKK+SEsiA+IGluc2lkZTsKK+SErSA+IGFcLXllYXI7CivkhJggPiBhXC1yaXRlOwor5ISOID4gcHJldHR5Owor5IOlID4gc3RvbmVzOwor5IOWID4gYVwtYmFuazsKK+SDiiA+IHRvXC1ydWI7CivkgrcgPiBicm9rZW47CivkgrQgPiB0b1wtcnViOwor5IKzID4gZ3JhdmVsOwor5IKdID4gdG9cLXJhcDsKK+SCmCA+IHBlYmJsZTsKK+SBvyA+IHNsZWVweTsKK+SBpiA+IHRvXC1zZWU7CivkgZYgPiB0b1wtc2VlOwor5ICSID4gZ2xvb215Owor5ICNID4gdmVzc2VsOwor5ICFID4gdmVzc2VsOwor47++ID4gdmVzc2VsOwor47+8ID4gYVwtYm93bDsKK+O/uyA+IGFcLXRyYXk7Civjv60gPiBjcmFja3M7Civjv6cgPiBmaWVsZHM7Civjv5QgPiBhXC13YXJ0Owor4723ID4gZHJvcHN5Owor4721ID4gc29sZW1uOwor47y+ID4gYnJpY2tzOwor47ylID4gYm90dGxlOwor47ydID4gYVwtYm93bDsKK+O8hCA+IHBlYXJsczsKK+O5jCA+IGNhdHRsZTsKK+O4vyA+IGFcLWNhbGY7CivjuJkgPiBmYXRoZXI7Civjt7AgPiBmbGFtZXM7Civjt6kgPiBicmlnaHQ7Civjt4sgPiBlbWJlcnM7Civjt4IgPiBicmlnaHQ7CivjtqQgPiB0b1wtZnJ5Owor47aIID4gY3JlZWtzOwor47WqID4gc2FsaXZhOwor47WdID4gbW92aW5nOwor47SeID4gZmx1ZW50Owor47SGID4gdG9cLWRpcDsKK+OzjCA+IG1hcnNoeTsKK+OxtSA+IHRvXC1kaWU7CivjsbMgPiBsb25lbHk7CivjsbEgPiB1bmV2ZW47CivjsaMgPiB1bmV2ZW47CivjsZ4gPiBkYW5nZXI7CivjsZkgPiByb3R0ZW47CivjsY0gPiB0b1wtb3dlOwor47GCID4gaHVuZ3J5Owor47GBID4gdG9cLWFzazsKK+OwjSA+IGFcLWNhZ2U7CivjsIMgPiBhXC10cmVlOwor46++ID4gYVwtdHJlZTsKK+OvliA+IGFcLXRyZWU7Civjr48gPiBncmFpbnM7Civjr44gPiBzdHVwaWQ7Civjr40gPiBhblwtb2FyOwor46+JID4gYVwtdHJlZTsKK+OvhiA+IGFcLXRyZWU7Civjrr8gPiBhXC10cmVlOwor4665ID4gYVwtdHJlZTsKK+OutyA+IGFcLXRyZWU7CivjrrYgPiBhXC10cmVlOwor466zID4gYVwtdHJlZTsKK+OuqSA+IGFcLXRyZWU7CivjrqcgPiBhXC10cmVlOwor466YID4gYVwtdHJlZTsKK+OuliA+IHRvXC1sYXk7CivjrowgPiBjb3R0b247CivjrbEgPiBhXC1jYXNlOwor462LID4gYVwtY2x1YjsKK+OsryA+IHN1bnNldDsKK+OsriA+IGdlbnRsZTsKK+OsjSA+IGZpZXJjZTsKK+OruiA+IGJ5Z29uZTsKK+OruCA+IHN1bnNldDsKK+OrtyA+IGJlaGluZDsKK+OroSA+IHdpbnRlcjsKK+OrhSA+IGFcLWZsYWc7CivjqrkgPiB0b1wtcm9iOwor46qGID4gaGlkZGVuOwor46qEID4gYnJva2VuOwor46m+ID4gdW5ldmVuOwor46myID4gYVwtZmlzdDsKK+OoviA+IGFcLXR5cGU7CivjqLsgPiB0b1wtY3V0Owor46i4ID4gdG9cLWhpdDsKK+OoqSA+IHRvXC13aW47CivjqKUgPiB0b1wtaGl0Owor76icID4gcGFjaWZ5Owor76iZID4gc3Bpcml0Owor76iXID4gcHJvZml0Owor76iVID4gYnJpZ2h0Owor46iOID4gdG9cLWR5ZTsKK+OohSA+IGluc2lkZTsKK++ogiA+IGV4cGFuZDsKK++ogSA+IGRlZ3JlZTsKK+OnuCA+IHRvXC1oaXQ7Civvp7QgPiBmb3Jlc3Q7Civjp7MgPiB0b1wtbWl4Owor76etID4gc3Rpbmd5Owor76eoID4gaW5zaWRlOwor76enID4gaW5zaWRlOwor76emID4gc29ycm93Owor46enID4gYVwtY29tYjsKK++npCA+IHJlYXNvbjsKK++noCA+IGNoYW5nZTsKK++nmSA+IHNoaXZlcjsKK++njiA+IHN1bGZ1cjsKK+OniSA+IHRvXC1ydWI7Civvp4QgPiBkcmFnb247CivvprwgPiBzaGFudHk7CivvprMgPiBzcGlyaXQ7CivvprAgPiBsaXN0ZW47CivvpqogPiByZXBvc2U7CivvpqkgPiBwcmlzb247Civvpp4gPiB0aHJvYXQ7CivvppwgPiBhXC1saW5lOwor46aUID4gc2lsa2x5Owor46aLID4gYWJzdXJkOwor46aKID4gbGF2aXNoOwor46aFID4gdW5lYXN5Owor46aBID4gdG9cLXNvYjsKK++lvyA+IHN0cml2ZTsKK++lvSA+IGV4Y3VzZTsKK++luiA+IGJyaWRnZTsKK++ltyA+IGJyaWdodDsKK+OlrSA+IGx1eHVyeTsKK+OlqyA+IGhvbmVzdDsKK++lqSA+IG51bWJlcjsKK++lpiA+IHJldHVybjsKK++lnyA+IHJlcG9zZTsKK+OlnyA+IGVubWl0eTsKK++lliA+IGNvcm5lcjsKK++lkSA+IG5hcnJvdzsKK++lkCA+IHRocmVhZDsKK+OlkCA+IGhhdHJlZDsKK+OliCA+IGFmcmFpZDsKK++lhiA+IHByaXNvbjsKK++lgSA+IGRlYmF0ZTsKK+OkuyA+IHN0dXBpZDsKK+OkuSA+IGhhdHJlZDsKK+OkuCA+IHVuZWFzeTsKK++ktSA+IHJ1c2hlczsKK+OkqCA+IHNjYXJlZDsKK++kpCA+IHJhZ2dlZDsKK++knyA+IG9yY2hpZDsKK++kniA+IHJvdHRlbjsKK++kkyA+IHBhdHJvbDsKK+OkkyA+IHN0dXBpZDsKK++khSA+IHN0cmluZzsKK+OjrSA+IG51bWJlcjsKK+OjmCA+IHNwYXNtczsKK+OivSA+IGFcLWJhaXQ7CivjorogPiBzdHJpbmc7Civjoa4gPiBkYW5nZXI7CivjoaMgPiBkcmFnb247CivjoZogPiBhcm1vdXI7CivjoYEgPiBhXC1yb2JlOwor46C2ID4gYVwtc2FpbDsKK+OgsiA+IHJpcHBlZDsKK+OggCA+IGlzbGFuZDsKK+OftyA+IGFcLXdhcnQ7Civjn6sgPiBzcHJpbmc7Civjn6UgPiB1bmV2ZW47Civjn58gPiBhXC1sYW5lOwor4564ID4gYVwteWVhcjsKK+OehyA+IHVsY2VyczsKK+OegiA+IHVsY2VyczsKK+OduSA+IGFcLWhhcmU7CivjnbYgPiB0b1wtZ2V0Owor4521ID4gdG9cLWdldDsKK+OdpyA+IHN0YWJsZTsKK+OdgiA+IGxvY3VzdDsKK+OdgSA+IGxvbmVseTsKK+OcqyA+IHByZXR0eTsKK+OcpSA+IGNyYWZ0eTsKK+ObuSA+IHByZXR0eTsKK+OavCA+IGFcLWdpcmw7CivjmrsgPiBzb2RvbXk7CivjmrkgPiBwcmV0dHk7Civjmp4gPiB0ZXJyb3I7CivjmpAgPiBhXC1jYXNlOwor45qMID4gYVwtYmFuZDsKK+OZuSA+IGFcLWRhbXA7CivjmbYgPiBhXC1oYWxsOwor45msID4gYVwtYmFuazsKK+OZnSA+IGFcLWRpa2U7CivjmZUgPiBhXC1sdW1wOwor45i0ID4gdG9cLXNpdDsKK+OYsiA+IGFcLWNvdmU7Civjl7cgPiB0b1wtZWF0Owor45e1ID4gYnJlYXRoOwor45eWID4gdG9cLWVhdDsKK+OWkiA+IHRvXC1jcnk7CivjloEgPiBzdGluZ3k7CivjlaAgPiBhXC1wYWlyOwor45WUID4gYVwtaGFsbDsKK+OVgiA+IHRvXC1odW07CivjlLogPiBhblwtYWdlOwor45S4ID4gYVwtdHJheTsKK+OUnCA+IHN1ZGRlbjsKK+OUlyA+IHN0cm9uZzsKK+OUkiA+IHRvXC1jdXQ7CivjlJAgPiB0b1wtY3V0Owor45SKID4gdG9cLWN1dDsKK+OUiSA+IHRvXC1kaWc7CivjlIYgPiB0b1wtY3V0Owor45SFID4gdG9cLWN1dDsKK+OTtSA+IHN3b3JkczsKK+OTsSA+IHRvXC1jdXQ7Civjk6ogPiBicmlnaHQ7Civjk6AgPiBhXC1mbGF3Owor45OFID4gZnJvemVuOwor45K2ID4gcHVibGljOwor45K1ID4gbWFubmVyOwor45KyID4gd2VhbHRoOwor45KnID4gYVwtcGFpcjsKK+OSoCA+IG5hcnJvdzsKK+ORuyA+IHN0cm9uZzsKK+ORtyA+IG1hbm5lcjsKK+ORsyA+IGNsZXZlcjsKK+ORoyA+IHN0dXBpZDsKK+ORhyA+IGNsZXZlcjsKK+OQuSA+IHN0cm9uZzsKK+efsyA+IHN0b25lOwor55+tID4gc2hvcnQ7Civlv6sgPiByYXBpZDsKK+WcqCA+IGJlXC1hdDsKK+S7liA+IG90aGVyOwor55+iID4gYXJyb3c7CivliLAgPiBnb1wtdG87Civor7QgPiBzcGVhazsKK+i/hSA+IHF1aWNrOwor5ZywID4gZWFydGg7Civlv4MgPiBoZWFydDsKK+S4iyA+IHVuZGVyOwor6L6tID4gd29yZHM7Civlvq4gPiBzbWFsbDsKK+WutiA+IGhvdXNlOwor5b6hID4gZHJpdmU7Civovp4gPiB3b3JkczsKK+WQjiA+IHF1ZWVuOwor5bCPID4gc21hbGw7CivlvoUgPiB0cmVhdDsKK+i/mCA+IHN0aWxsOwor5Y+RID4gaXNzdWU7CivlvasgPiBjYXJ2ZTsKK+aDsyA+IHRoaW5rOwor552hID4gc2xlZXA7CivovYkgPiBzaGlmdDsKK+aJgCA+IHBsYWNlOwor6LyqID4gd2hlZWw7CivkuIkgPiB0aHJlZTsKK+i8lSA+IGxpZ2h0Owor5byPID4gc3R5bGU7CivmoLcgPiBzaGFwZTsKK+i7vSA+IGxpZ2h0Owor5bu6ID4gYnVpbGQ7Civlu7YgPiBkZWxheTsKK+ebsiA+IGJsaW5kOwor6LuiID4gc2hpZnQ7Civlu6MgPiBicm9hZDsKK+WjsCA+IHNvdW5kOwor5belID4gbGFib3I7Civnm4YgPiBiYXNpbjsKK+ebgyA+IGdsYXNzOwor5q2jID4gcmlnaHQ7CivlurggPiB1c3VhbDsKK+WlsyA+IHdvbWFuOwor5YqbID4gcG93ZXI7CivoupEgPiB3YXZlcjsKK+WboCA+IGNhdXNlOwor6YeNID4gaGVhdnk7CivnmocgPiByb3lhbDsKK+W6hyA+IGNvdmVyOwor5qyhID4gb3JkZXI7CivluoMgPiBicm9hZDsKK+WPoyA+IG1vdXRoOwor5L2/ID4gY2F1c2U7Civnmb0gPiB3aGl0ZTsKK+W5vSA+IHF1aWV0Owor5pWZID4gdGVhY2g7CivnmbwgPiBpc3N1ZTsKK+WGjSA+IGFnYWluOwor55m6ID4gaXNzdWU7CivmsJQgPiBzdGVhbTsKK+S/oSA+IHRydXN0Owor5YyXID4gbm9ydGg7CivoubIgPiBzcXVhdDsKK+i5nyA+IHRyYWNlOwor55SxID4gY2F1c2U7CivljbQgPiBzdGlsbDsKK+W5hSA+IHBpZWNlOwor5YWlID4gZW50ZXI7CivlhYggPiBmaXJzdDsKK+awtCA+IHdhdGVyOwor5aSEID4gcGxhY2U7Civlt7cgPiBhbGxleTsKK+eskSA+IHNtaWxlOwor56uLID4gc3RhbmQ7Civot6ogPiBrbmVlbDsKK+mprCA+IGhvcnNlOwor5beoID4gbGFyZ2U7CivnlpEgPiBkb3VidDsKK+WIqSA+IGdhaW5zOwor6LW0ID4gZ29cLXRvOwor5YWJID4gbGlnaHQ7CivmnpwgPiBmcnVpdDsKK+i1pyA+IGJsdXNoOwor6IezID4gcmVhY2g7CivmuIUgPiBjbGVhcjsKK+eJqSA+IHRoaW5nOwor5bWMID4gaW5sYXk7CivnlLIgPiBhcm1vcjsKK+eUsCA+IGZpZWxkOwor6K64ID4gYWxsb3c7CivlhasgPiBlaWdodDsKK+W0liA+IGNsaWZmOwor5bSOID4gcm91Z2g7CivljZcgPiBzb3V0aDsKK+iJsiA+IGNvbG9yOwor6K6pID4gYWxsb3c7Civnk5wgPiBtZWxvbjsKK+eulyA+IGNvdW50Owor6LOKID4gdGhpZWY7CivlhYMgPiBmaXJzdDsKK+iyryA+IHN0b3JlOwor5oCdID4gdGhpbms7CivosqggPiBnb29kczsKK+WyqSA+IGNsaWZmOwor5q+PID4gZXZlcnk7CivlsawgPiBjbGFzczsKK+ixqiA+IGJyYXZlOwor5bGeID4gY2xhc3M7CivoqIAgPiB3b3JkczsKK+adgyA+IHBvd2VyOwor5bGLID4gaG91c2U7CivosYYgPiBiZWFuczsKK+S4gyA+IHNldmVuOwor5bCaID4gc3RpbGw7CivlsJYgPiBzaGFycDsKK+i9rCA+IHNoaWZ0Owor5bCEID4gc2hvb3Q7CivnqbogPiBlbXB0eTsKK+aKgCA+IHNraWxsOwor6L27ID4gbGlnaHQ7Civlr7ogPiBjb3VydDsKK+WvqyA+IHdyaXRlOwor6IuxID4gcGV0YWw7Civlr6IgPiBzbGVlcDsKK+WGmSA+IHdyaXRlOwor5a+dID4gc2xlZXA7Civlr5AgPiBzbGVlcDsKK+WvhiA+IGRlbnNlOwor5a+CID4gc3RpbGw7CivpkrEgPiBtb25leTsKK+WuuSA+IGxvb2tzOwor5a61ID4gbmlnaHQ7Civorr4gPiBidWlsZDsKK+WniyA+IGJlZ2luOwor5a6iID4gZ3Vlc3Q7CivniYcgPiBzbGljZTsKK+eglCA+IGdyaW5kOwor5a6HID4gaG91c2U7Civml6kgPiBlYXJseTsKK+aIvyA+IGhvdXNlOwor6Z+zID4gc291bmQ7CivnjbsgPiBvZmZlcjsKK+eNuiA+IG90dGVyOwor5424ID4gYmVhc3Q7CivorbIgPiBhbGxvdzsKK+eNqCA+IGFsb25lOwor6K2mID4gZ3VhcmQ7CivnjaMgPiBiZWFzdDsKK+WtmCA+IGV4aXN0Owor6K2JID4gcHJvb2Y7Civnu4QgPiBjbGFzczsKK+isnSA+IHRoYW5rOwor54ycID4gZ3Vlc3M7CivlrIkgPiBlbmpveTsKK+m7kSA+IGJsYWNrOwor6KyBID4gdmlzaXQ7CivliZEgPiBzd29yZDsKK+eLrCA+IGFsb25lOwor5LmQID4gaGFwcHk7CivnuqcgPiBsZXZlbDsKK+iqrCA+IHNwZWFrOwor5Li+ID4gcmFpc2U7Civor4EgPiBwcm92ZTsKK+eFpyA+IHNoaW5lOwor6KqTID4gc3dlYXI7CivnvqQgPiBncm91cDsKK+aZmiA+IG5pZ2h0Owor6KqCID4gdGVtcHQ7CivoqZ4gPiB3b3JkczsKK+S8pCA+IHdvdW5kOwor57G7ID4gY2xhc3M7CivmrKIgPiBoYXBweTsKK+eIvSA+IGhhcHB5Owor5Yq/ID4gcG93ZXI7CivoqLwgPiBwcm92ZTsKK+WIuyA+IGNhcnZlOwor5patID4gc2V2ZXI7CivlpJwgPiBuaWdodDsKK+iosSA+IGFsbG93Owor6KitID4gYnVpbGQ7Civku7cgPiBwcmljZTsKK+iEkSA+IGJyYWluOwor6KiqID4gdmlzaXQ7Civop4QgPiBydWxlczsKK+WokSA+IGRhbmNlOwor56C0ID4gYnJlYWs7Civms70gPiBtYXJzaDsKK+eHuyA+IHNtb2tlOwor57SnID4gdGVuc2U7Civop7ggPiB0b3VjaDsKK+ijhSA+IGRyZXNzOwor5oClID4gcXVpY2s7CivmsrMgPiByaXZlcjsKK+ihgCA+IGJsb29kOwor5oqVID4gdGhyb3c7CivopoYgPiBjb3ZlcjsKK+WPsyA+IHJpZ2h0Owor5aW0ID4gc2xhdmU7CivliIAgPiBrbmlmZTsKK+ilnyA+IGxhcGVsOwor54WZID4gc21va2U7CivlpYkgPiBvZmZlcjsKK+WWnSA+IGRyaW5rOwor6KS4ID4gbGFwZWw7CivopKogPiBzdHJpcDsKK+WNqyA+IGd1YXJkOwor5aSiID4gZHJlYW07CivplJkgPiBlcnJvcjsKK+ijviA+IGxhcGVsOwor5qGIID4gdGFibGU7Civng58gPiBzbW9rZTsKK+ijnSA+IGRyZXNzOwor5Y2wID4gcHJpbnQ7Civlo5MgPiBwcmVzczsKK+eDiCA+IGZpZXJ5Owor5aOHID4gYWx0YXI7CivlnZcgPiBwaWVjZTsKK+ijgiA+IHNwbGl0Owor6KK0ID4gcGFudHM7CivlopMgPiBncmF2ZTsKK+mdmSA+IHF1aWV0Owor54KOID4gZmxhbWU7CivoobcgPiBoZWFydDsKK+eBsCA+IGFzaGVzOwor6KGeID4gZ3VhcmQ7CivooZsgPiBndWFyZDsKK+mAnyA+IHF1aWNrOwor5aGXID4gc21lYXI7CivmlYwgPiBlbmVteTsKK+WhlCA+IHRvd2VyOwor6LCiID4gdGhhbms7CivloYogPiBwaWVjZTsKK+aAgCA+IGJvc29tOwor5YW7ID4gcmFpc2U7CivnvaogPiBjcmltZTsKK+a/tiA+IGJyb2FkOwor6J+yID4gd29ybXM7Civmv7EgPiBiZWFjaDsKK+aRmCA+IHBsdWNrOwor5pa9ID4gZ3JhbnQ7CivmqKEgPiBtb2RlbDsKK+iNiSA+IGdyYXNzOwor5r+DID4gdGhpY2s7CivlgLwgPiBwcmljZTsKK+a/gSA+IG11ZGR5Owor54+tID4gY2xhc3M7Civkv64gPiBzdHVkeTsKK+WRsyA+IHRhc3RlOwor5r6kID4gbWFyc2g7Civnu4cgPiB3ZWF2ZTsKK+m+lSA+IG5pY2hlOwor6J2/ID4gZmxpZXM7CivlhY0gPiBzcGFyZTsKK+azoiA+IHdhdmVzOwor5r2UID4gY2xlYW47CivmtIsgPiBvY2VhbjsKK+WKsyA+IGxhYm9yOwor5Z2HID4gZXF1YWw7CivljosgPiBwcmVzczsKK+WlliA+IHByaXplOwor6aG/ID4gcGF1c2U7CivmvIIgPiBmbG9hdDsKK+WIpCA+IGp1ZGdlOwor57SgID4gd2hpdGU7CivlmLQgPiBtb3V0aDsKK+aLhSA+IGNhcnJ5Owor5p2/ID4gcGxhbms7Civpkp8gPiBjbG9jazsKK+iuvyA+IHZpc2l0Owor6buSID4gYmxhY2s7Civpu5AgPiBzdGljazsKK+ibhyA+IHNuYWtlOwor5p6EID4gZnJhbWU7CivmurogPiBkcm93bjsKK+m6piA+IHdoZWF0Owor6bqlID4gd2hlYXQ7Civmup0gPiBkaXRjaDsKK+a6nCA+IHNsaWRlOwor6IKJID4gZmxlc2g7CivnurggPiBwYXBlcjsKK+aipiA+IGRyZWFtOwor6JmaID4gZmFsc2U7CivokpkgPiBjb3ZlcjsKK+iZlSA+IHBsYWNlOwor6JmOID4gdGlnZXI7CivlmYwgPiBzY29sZDsKK+adgiA+IG1peGVkOwor5oCSID4gYW5nZXI7CivnqL8gPiBkcmFmdDsKK+a4piA+IHN3aXJsOwor5rihID4gY3Jvc3M7CivmuKAgPiBkaXRjaDsKK+WYlyA+IHRhc3RlOwor572iID4gY2Vhc2U7Civpt7ogPiBoZXJvbjsKK+m3uSA+IGVhZ2xlOwor5re5ID4gZHJvd247Civol6kgPiBmZW5jZTsKK+iXpSA+IGRydWdzOwor6bKcID4gZnJlc2g7Civnva4gPiBwbGFjZTsKK+WXhSA+IHNtZWxsOwor6JeBID4gc3RyYXc7CivptrQgPiBjcmFuZTsKK+aeqiA+IHNwZWFyOwor5ravID4gc2hvcmU7Civolq4gPiBtYXJzaDsKK+iWrCA+IGRydWdzOwor6JamID4gb2ZmZXI7CivmtpwgPiBkaXRjaDsKK+a2mSA+IHRlYXJzOwor6YWNID4gbWF0Y2g7CivmtbQgPiBiYXRoZTsKK+WNhyA+IGFyaXNlOwor5rWcID4gY3JlZWs7CivolL0gPiBjb3ZlcjsKK+ivjSA+IHdvcmRzOwor5rOqID4gdGVhcnM7CivolK0gPiBzaGFkZTsKK+a0pSA+IGZlcnJ5Owor6ay8ID4gZ2hvc3Q7CivoiJ4gPiBkYW5jZTsKK+iTriA+IGxvdHVzOwor6YG/ID4gYXZvaWQ7CivmoYwgPiB0YWJsZTsKK+iTiyA+IGNvdmVyOwor5LqhID4gZGVhdGg7Civok4QgPiBzdG9yZTsKK+mXqiA+IGZsYXNoOwor6JK4ID4gc3RlYW07CivpnIcgPiBzaGFrZTsKK+WSsyA+IGNvdWdoOwor5ZKyID4gc21pbGU7CivmsqIgPiBtYXJzaDsKK+e7vyA+IGdyZWVuOwor5ZKOID4gZmF1bHQ7CivnurMgPiBhZG1pdDsKK+axvSA+IHN0ZWFtOwor6LSnID4gZ29vZHM7CivlkaogPiBjdXJzZTsKK+erpSA+IGNoaWxkOwor5LyfID4gZ3JlYXQ7CivmsYEgPiBqdWljZTsKK+iNoyA+IGdsb3J5Owor54yuID4gb2ZmZXI7CivlkJAgPiB2b21pdDsKK+WOmiA+IHRoaWNrOwor6bCMID4gbG9hY2g7CivlloogPiBzaG91dDsKK+i9riA+IHdoZWVsOwor5ZCJID4gbHVja3k7Civorq0gPiB0ZWFjaDsKK+WPsSA+IHNjb2xkOwor6YCQID4gY2hhc2U7Civnm5YgPiBjb3ZlcjsKK+WPqSA+IGtub2NrOwor6IiNID4gaG91c2U7Civmr44gPiBldmVyeTsKK+ajgCA+IGNoZWNrOwor5o+hID4gZ3Jhc3A7CivniZkgPiB0b290aDsKK+muriA+IGZyZXNoOwor5a69ID4gYnJvYWQ7CivmrpYgPiBicmVlZDsKK+WNvyA+IG5vYmxlOwor6I23ID4gbG90dXM7Civmra8gPiB0ZWV0aDsKK+atqiA+IHNsYW50Owor5q2hID4gaGFwcHk7Civmo4sgPiBjaGVzczsKK+mtlCA+IGRlbW9uOwor6IWwID4gd2Fpc3Q7CivmooUgPiBwbHVtczsKK+mSoiA+IHN0ZWVsOwor6Iy5ID4gcm9vdHM7Civku4cgPiBlbmVteTsKK+asuiA+IGNoZWF0Owor6ayaID4gYmVhcmQ7CivljJkgPiBzcG9vbjsKK+WHgCA+IGNsZWFuOwor5YyNID4gY3Jhd2w7CivmrIogPiBwb3dlcjsKK+iMhSA+IHJlZWRzOwor57SvID4gdGlyZWQ7CivkuqsgPiBlbmpveTsKK+iMgiA+IHRoaWNrOwor5YuHID4gYnJhdmU7CivmnKsgPiBmaW5hbDsKK+eziiA+IHBhc3RlOwor56iOID4gdGF4ZXM7Civli6IgPiBwb3dlcjsKK+WLniA+IGxhYm9yOwor6IubID4gc21hbGw7Civmg68gPiBoYWJpdDsKK+WAviA+IHVwc2V0Owor5Yq0ID4gbGFib3I7Civpn6kgPiBmZW5jZTsKK+i0uCA+IHRyYWRlOwor5qqiID4gY2hlY2s7Civlio0gPiBzd29yZDsKK+aJqyA+IHN3ZWVwOwor6Im4ID4gZ3Jhc3M7CivliaMgPiBzd29yZDsKK+WQkyA+IHNjYXJlOwor5YmDID4gc2hhdmU7Civpl7IgPiBmZW5jZTsKK+iItiA+IGxhcmdlOwor5Yi3ID4gYnJ1c2g7CivnvoogPiBzaGVlcDsKK+aoqSA+IHBvd2VyOwor5qijID4gc2hhcGU7CivmiZEgPiBwb3VuZDsKK+iIjiA+IGhvdXNlOwor56KOID4gYnJlYWs7CivmqIIgPiBoYXBweTsKK+ejqCA+IGdyaW5kOwor6Ie6ID4gdG93ZXI7Civoh60gPiBzbWVsbDsKK+WHpiA+IHBsYWNlOwor5qeYID4gc2hhcGU7CivlgI0gPiB0aW1lczsKK+eylyA+IHJvdWdoOwor5qeLID4gZnJhbWU7CivlhrYgPiBzbWVsdDsKK+iGsyA+IG1lYWxzOwor6aatID4gZHJpdmU7CivmnJcgPiBjbGVhcjsKK+mmrCA+IGhvcnNlOwor5YW8ID4gdW5pdGU7CivpnosgPiBzaG9lczsKK+asoyA+IGhhcHB5Owor5oykID4gY3Jvd2Q7Civmpb0gPiBoYXBweTsKK+a0gSA+IGNsZWFuOwor6aKXID4gZ3JhaW47Civmg6AgPiBmYXZvcjsKK+aMryA+IHJhaXNlOwor6IWmID4gYnJhaW47CivniKwgPiBjcmF3bDsKK+iFlSA+IHdyaXN0Owor5qGDID4gcGVhY2g7CivmjqogPiBwbGFjZTsKK+azsCA+IGdyZWF0Owor5Z2hID4gc2xvcGU7CivohLMgPiBicmFpbjsKK+WdmyA+IGFsdGFyOwor5YSfID4gcmVwYXk7CivmpJwgPiBjaGVjazsKK+W9qiA+IHRpZ2VyOwor6aWuID4gZHJpbms7CivmpI0gPiBwbGFudDsKK+mkiiA+IHJhaXNlOwor6ISKID4gc3BpbmU7CivmpIUgPiBjaGFpcjsKK+efmyA+IHNwZWFyOwor5a6+ID4gZ3Vlc3Q7CivogpogPiBiZWxseTsKK+WDuSA+IHByaWNlOwor6LS8ID4gdGhpZWY7Civpo7IgPiBkcmluazsKK+ajsiA+IHBlcmNoOwor6aOuID4gZHJpbms7Civlg54gPiBmYWxzZTsKK+WDlSA+IHNsYXZlOwor5qOSID4gc3RpY2s7Civlg40gPiBsYWJvcjsKK+WCviA+IHVwc2V0Owor5YK3ID4gd291bmQ7CivlgqwgPiBwcmVzczsKK+iCnSA+IGxpdmVyOwor55ufID4gc3dlYXI7Civlgb0gPiBmYWxzZTsKK+eurSA+IGFycm93Owor6IGyID4gc291bmQ7CivpoZ4gPiBjbGFzczsKK+iAgCA+IHNoaW5lOwor6aGGID4gZ3JhaW47CivlgYkgPiBncmVhdDsKK+eWryA+IGNyYXp5Owor6IC7ID4gc2hhbWU7Civkvo0gPiBzZXJ2ZTsKK+WApCA+IHByaWNlOwor6KGrID4gc2hpcnQ7CivpoJMgPiBwYXVzZTsKK+aPrSA+IHJhaXNlOwor6I6yID4gbG90dXM7CivpkrsgPiBkcmlsbDsKK+aghCA+IGdsb3J5Owor5bOhID4gZ29yZ2U7Civpn7sgPiByaHltZTsKK+aftSA+IGZlbmNlOwor5LiRID4gY2xvd247Civnv7MgPiBzaGFkZTsKK+a1kyA+IHRoaWNrOwor5o2JID4gZ3Jhc3A7CivmvrMgPiBpbmxldDsKK+eWvCA+IGFjaGVzOwor5qGjID4gc2hlbGY7CivmipsgPiB0aHJvdzsKK+S+oSA+IHByaWNlOwor6ZiUID4gYnJvYWQ7CivnjpsgPiBhZ2F0ZTsKK+mdtCA+IGJvb3RzOwor5bCdID4gdGFzdGU7CivmiaMgPiBrbm9jazsKK+mdnCA+IHF1aWV0Owor5YKyID4gcHJvdWQ7CivkvLogPiBzZXJ2ZTsKK+mUkCA+IHNoYXJwOwor6ZycID4gZnJvc3Q7CivlkLUgPiBhcmd1ZTsKK+aynyA+IGRpdGNoOwor5rWRID4gbXVkZHk7CivpgqogPiB3cm9uZzsKK+iEhiA+IGNyaXNwOwor5YG/ID4gcmVwYXk7Civmi58gPiBkcmFmdDsKK+absyA+IHRyYWlsOwor6ZuiID4gbGVhdmU7Civpm5wgPiBtaXhlZDsKK+WPmyA+IHJlYmVsOwor54K8ID4gc21lbHQ7Civpm5EgPiBtaXhlZDsKK+e/vCA+IHdpbmdzOwor5ZG1ID4gc2NvbGQ7CivnlJwgPiBzd2VldDsKK+aKuSA+IHNtZWFyOwor6ZqZID4gY3JhY2s7CivmiZQgPiB0aHJvdzsKK+W7tyA+IGNvdXJ0Owor5o63ID4gdGhyb3c7CivlgoUgPiB0dXRvcjsKK+aZqSA+IG5pZ2h0Owor57mUID4gd2VhdmU7CivllrcgPiBzcHVydDsKK+a1qSA+IGdyZWF0Owor5ZCpID4gb3JkZXI7CivkvKogPiBmYWxzZTsKK+eejiA+IGJsaW5kOwor55+uID4gc2hvcnQ7Civpvb8gPiB0ZWV0aDsKK+e3kSA+IGdyZWVuOwor5ai2ID4gbWFycnk7Civnt4ogPiB0ZW5zZTsKK+mXhyA+IGNsb3NlOwor55KDID4gZ2xhc3M7CivmlrcgPiBzZXZlcjsKK+ezliA+IHN1Z2FyOwor54+KID4gY29yYWw7Civmo40gPiBzdGljazsKK+mWkSA+IGZlbmNlOwor5467ID4gZ2xhc3M7CivnoLggPiBzbWFzaDsKK+WatyA+IHNob3V0Owor6ZaDID4gZmxhc2g7CivmlbUgPiBlbmVteTsKK+e1niA+IHR3aXN0Owor5Z2fID4gZ3JhdmU7CivpuaQgPiBjcmFuZTsKK+e1hCA+IGNsYXNzOwor5LmWID4gcmViZWw7CivntJogPiBsZXZlbDsKK+e0mSA+IHBhcGVyOwor57SNID4gYWRtaXQ7CivovaggPiB0cmFjazsKK+aTsSA+IHBsYWNlOwor5pOsID4gZHJhZnQ7CivnoZUgPiBncmVhdDsKK+aTpyA+IHJhaXNlOwor5pOhID4gY2Fycnk7Civmk5QgPiBjYXJyeTsKK+aSsiA+IHBvdW5kOwor5YW9ID4gYmVhc3Q7CivnsZYgPiB0YWxseTsKK+mQmCA+IGNsb2NrOwor6YGuID4gY292ZXI7Civmk5IgPiBjYXRjaDsKK+eviSA+IGJ1aWxkOwor5o+DID4gc2hlYXI7CivnrpIgPiBicm9vbTsKK+m8jiA+IGxhcmdlOwor5o6DID4gc3dlZXA7Civpja4gPiBicmFzczsKK+WXkyA+IHZvaWNlOwor57KSID4gZ3JhaW47CivpjK8gPiBlcnJvcjsKK+WVpSA+IHdoYXRcPzsKK+mMoiA+IG1vbmV5Owor6JycID4gaG9uZXk7CivmjJkgPiByYWlzZTsKK+mLvCA+IHN0ZWVsOwor5ou2ID4gcHJlc3M7Civpi60gPiBzaGFycDsKK+aQgSA+IHBsYWNlOwor6YuPID4gdG9uZ3M7Civogr8gPiBzd2VsbDsKK+mKrSA+IG1vbmV5Owor6KOZID4gc2tpcnQ7Civog4AgPiBzd2VsbDsKK+i+nCA+IGNyaW1lOwor5ZOHID4gdm9taXQ7CivlsL8gPiB1cmluZTsKK+mAriA+IHNlaXplOwor5YiuID4gc2hhdmU7CivlmLEgPiBvcmRlcjsKK+WAoSA+IGd1aWRlOwor5pCPID4gc2VpemU7CivlhZwgPiBwb3VjaDsKK+mthCA+IHZpZ29yOwor5pmwID4gY2xlYXI7Civns5UgPiBjYWtlczsKK+enqSA+IG9yZGVyOwor56iaID4geW91bmc7CivpiI0gPiBibHVudDsKK+aHtyA+IGJvc29tOwor5ruoID4gYmVhY2g7Civmh5AgPiBib3NvbTsKK+i6gSA+IHRlbnNlOwor55SrID4gYmVnaW47Civnpr0gPiBiaXJkczsKK+aGuiA+IHBlYWNlOwor6ZO+ID4gY2hhaW47CivmhqwgPiByb3VzZTsKK+aykCA+IGJhdGhlOwor5YezID4gYmVuY2g7CivphawgPiB0b2FzdDsKK+aFoyA+IGhhYml0Owor54G/ID4gdml2aWQ7Civpn7UgPiByaHltZTsKK+aUgCA+IGNsaW1iOwor5ZKSID4gY3Vyc2U7CivmsqsgPiBmcm90aDsKK+eijCA+IHJvdWdoOwor5Z2kID4gZWFydGg7CivnhLAgPiBmbGFtZTsKK+mAlyA+IHRlbXB0Owor6YKEID4gc3RpbGw7CivprYEgPiBjaGllZjsKK+a7pSA+IGZsb29kOwor6YGpID4gbWF0Y2g7CivmgaUgPiBzaGFtZTsKK+ahhiA+IGZyYW1lOwor5ZaAID4gdm9taXQ7CivnoJUgPiBicmVhazsKK+e/hSA+IHdpbmdzOwor5oizID4gcHJpY2s7CivmoakgPiBzdGFrZTsKK+iCuiA+IGx1bmdzOwor57qxID4gZ2F1emU7CivpmaEgPiBzdGVlcDsKK+eDqyA+IHNjYWxkOwor5YyVID4gc3Bvb247CivpuYUgPiBnb29zZTsKK+aVniA+IHJvb215Owor5rWPID4gY2xlYXI7Civng4EgPiBzaGluZTsKK+iviCA+IGNoZWF0Owor5bOoID4gbG9mdHk7CivomZAgPiBjcnVlbDsKK+i+qyA+IGJyYWlkOwor5Ze9ID4gY291Z2g7CivmgKYgPiBlYWdlcjsKK+a1hyA+IHNwcmF5Owor6IabID4gY2hlc3Q7Civpl7UgPiBtb3VybjsKK+iQgyA+IGRlbnNlOwor6KKcID4gc29ja3M7Civmj70gPiBncmFzcDsKK+iNqyA+IHNoYWRlOwor6LS/ID4gYnJpYmU7CivmlZ0gPiBicmVhazsKK+eGjyA+IHNtb2tlOwor5YyAID4gZXF1YWw7CivmsoMgPiB3YXRlcjsKK+idhyA+IGZsaWVzOwor57ueID4gdHdpc3Q7CivlkZUgPiB2b21pdDsKK+WihSA+IHZpbGxhOwor56e9ID4gZGlydHk7CivosKwgPiBlcnJvcjsKK+WehCA+IGdyYXZlOwor5ZG7ID4gZ3JvYW47Civmi6cgPiBwaW5jaDsKK+W9sCA+IGNsZWFyOwor5qCWID4gcGVyY2g7CivmibwgPiBncmFzcDsKK+a1iiA+IG11ZGR5Owor5p2gID4gbGV2ZXI7Civmg6sgPiB0aXJlZDsKK+aUmCA+IHNlaXplOwor57yOID4gc2F0aW47Civmg64gPiBkcmVhZDsKK+WZlyA+IGJ1cnN0Owor55+2ID4gamV0dHk7Civnk6MgPiBwZXRhbDsKK+m7nSA+IGJsYWNrOwor57CHID4gc3dhcm07Civmh4ogPiB2ZXhlZDsKK+WLuiA+IHNwb29uOwor5aStID4geW91bmc7Civmi4cgPiB0aHVtYjsKK+mTsiA+IHNwYWRlOwor6IKuID4gZGlydHk7Civlk70gPiBjaG9rZTsKK+ivoyA+IHJlYWNoOwor54KrID4gc2hpbmU7Civpkp0gPiBibHVudDsKK+aghSA+IGZlbmNlOwor5YaVID4gY3Jvd247Civlu5MgPiBicm9hZDsKK+WzrSA+IHN0ZWVwOwor56OFID4gcG91bmQ7Civnlq4gPiB0dW1vcjsKK+i1gyA+IGJvb3R5Owor55ikID4gdHVtb3I7CivlqYogPiB3aG9yZTsKK+mUryA+IGFcLXNhdzsKK+eniSA+IGdyYXNwOwor6Ie7ID4gcmVhY2g7CivlmIggPiBub2lzeTsKK+ivhSA+IGN1cnNlOwor57ywID4gcmVpbnM7CivorqogPiBhYnVzZTsKK+W/oSA+IGFcLXNhZDsKK+a2oSA+IHN3aXJsOwor6aaNID4gYnJlYWQ7CivpooUgPiBza3VsbDsKK+elryA+IGx1Y2t5Owor5b+WID4gZ3Vlc3M7Civng5kgPiBicmFuZDsKK+WflCA+IHBsYWluOwor5rOTID4gY2xlYXI7CivlmY4gPiBjaG9rZTsKK+mYnCA+IG1vdW5kOwor5L+oID4gZ3JhdmU7CivngqwgPiB0b3JjaDsKK+i0riA+IHN0b3JlOwor5riOID4gZGl0Y2g7CivnmasgPiBjcmF6eTsKK+eCmSA+IHJvYXN0Owor6IKHID4gYmVnaW47CivluJogPiBicm9vbTsKK+aBrCA+IHF1aWV0Owor5amqID4gY292ZXQ7CivouZEgPiB0cmVhZDsKK+eruiA+IGluZGlhOwor5YmMID4gc2xhc2g7CivojacgPiBzaGluZTsKK+i1giA+IGJyaWJlOwor6K+yID4gdGVhY2g7CivnrZsgPiBzaWV2ZTsKK+evoSA+IHVzdXJwOwor6bK4ID4gd2hhbGU7CivmiqEgPiBzd2luZzsKK+a2riA+IHJpbnNlOwor5oyOID4gY2Fycnk7CivphbUgPiB5ZWFzdDsKK+aphCA+IG9saXZlOwor5qaEID4gb2xpdmU7CivnqKAgPiBkZW5zZTsKK+aCuyA+IGFuZ2VyOwor6ZuPID4gY2hpY2s7CivmkbkgPiB0cmFjZTsKK+a2pyA+IGJyb29rOwor6IW6ID4gZ2xhbmQ7Civlk64gPiBjb3VnaDsKK+iikiA+IHN0cmlwOwor5oqgID4gcmFpc2U7Civlv7EgPiB0cnV0aDsKK+WZpCA+IGNsb3NlOwor6auvID4gYmVhcmQ7CivonL8gPiBjcmVlcDsKK+mVgCA+IHBsYXRlOwor6IOtID4gcm91Z2U7Civpq4UgPiBza3VsbDsKK+eEmCA+IHNoaW5lOwor5L2XID4gb3RoZXI7CivotbMgPiBncmFuZDsKK+ezoCA+IGNoYWZmOwor5bibID4gc2lsa3M7Civkvo8gPiBzbWFsbDsKK+S4lSA+IGdyZWF0Owor6bKoID4gc2hhcms7CivouJ0gPiBhbmtsZTsKK+mprSA+IGRyaXZlOwor55yIID4gZ2xvYXQ7CivlgK0gPiBkd2FyZjsKK+mVkCA+IHN0b3ZlOwor6IeGID4gY2hlc3Q7CivlrbogPiBjaGlsZDsKK+iZsSA+IGxvdXNlOwor55GZID4gYWdhdGU7CivopJsgPiBsYXBlbDsKK+aBuiA+IGVuam95Owor5pOeID4gc2hha2U7CivnrpUgPiBzaWV2ZTsKK+a2kyA+IGJyb29rOwor5Zm8ID4gc291bmQ7CivmkJAgPiBjcmFtcDsKK+aImyA+IGxhbmNlOwor6buUID4gYmxhY2s7CivpmJYgPiBjbG9zZTsKK+WRgyA+IGJlbGNoOwor5rqJID4gd2F0ZXI7CivngoAgPiByb2FzdDsKK+eajiA+IHdoaXRlOwor5qatID4ga2lvc2s7CivphaogPiBjcmVhbTsKK+WCgCA+IGdyZWF0Owor5a2AID4gd2lkb3c7CivlraogPiB0d2luczsKK+azsSA+IGdyZWF0Owor5bKWID4gc3RlZXA7Civlv7ggPiBibHVzaDsKK+eesCA+IHdhdGNoOwor6LCSID4gdmlzaXQ7Civop4ogPiBjb3ZldDsKK+awriA+IHhlbm9uOwor55ejID4gc3BvdHM7CivmkZIgPiBleHBlbDsKK+S/uCA+IHdhZ2VzOwor5oSgID4gYW5ncnk7CivlspEgPiBzdGVlcDsKK+aQvSA+IHNtZWFyOwor5omqID4gc3Rva2U7CivnkZogPiBjb3JhbDsKK+eamSA+IHdoaXRlOwor57uJID4gY3JlcGU7Civlv74gPiBhbmdlcjsKK+ebgiA+IGJhc2luOwor54+AID4gYW1iZXI7CivlgYggPiBicmF2ZTsKK+aylCA+IGZsb29kOwor6K+pID4gYm9hc3Q7Civoio0gPiBwZW9ueTsKK+iktiA+IHBsZWF0Owor6YWXID4gZHJ1bms7CivlkqQgPiBzY29sZDsKK+afoCA+IGxlbW9uOwor6K+ZID4gdGVhc2U7CivlgYMgPiBjZWFzZTsKK+e7uiA+IHNrZWluOwor5o+/ID4gcHJlc3M7Civph4kgPiBnbGF6ZTsKK+m5rSA+IGhlcm9uOwor5a6TID4gcXVpZXQ7CivlrZsgPiBjb21ldDsKK+WZqyA+IGJlbGNoOwor5byLID4gY2F0Y2g7CivpvpsgPiBuaWNoZTsKK+W/qiA+IHF1aWV0Owor6ZWCID4gY2FydmU7Civpqp4gPiByYWlzZTsKK+mijCA+IG1vdXRoOwor6ZOgID4gYXJtb3I7Civps4UgPiBsb2FjaDsKK+enhiA+IHN0cmF3Owor5baCID4gY2xpZmY7CivmpL0gPiBiZWFtczsKK+mipiA+IGZyb3duOwor5reWID4gc2x1c2g7CivmgZogPiBhbmdlcjsKK+iOoCA+IHdlZWRzOwor5qmbID4gYVwtcGVnOwor6ZiVID4gY2xvc2U7CivlkrsgPiBzaG91dDsKK+elmyA+IGV4cGVsOwor6JK6ID4gZnVyemU7Civoob0gPiBsYXBlbDsKK+e/lSA+IGFncmVlOwor6Zy+ID4gbWlzdHk7CivnoKcgPiBhbnZpbDsKK+i5iSA+IGVycm9yOwor5ZOCID4gc21pbGU7Civog7ogPiBhbWluZTsKK+ibrSA+IGxlZWNoOwor6Z+qID4gcmlnaHQ7Civor6ggPiBqb2tlczsKK+i1nSA+IGZhbHNlOwor5bK/ID4gZ3JhbmQ7CivmgKsgPiBzb3JyeTsKK+iNjyA+IGJlYW5zOwor5qWUID4gd2VkZ2U7Civmk5ggPiB0aHVtYjsKK+i9sSA+IHdoZWVsOwor5aq+ID4gbWFycnk7Civnl40gPiB3b3VuZDsKK+eNrSA+IG90dGVyOwor6buiID4gYmxhY2s7Civpk6cgPiBzcGFkZTsKK+WQkiA+IHNob3V0Owor55a9ID4gdWxjZXI7Civor58gPiBhYnVzZTsKK+iMlCA+IGdyYXZlOwor5qGkID4gYWxkZXI7Civpk4YgPiByaXZldDsKK+mFqSA+IGRydW5rOwor5rC1ID4gd2F0ZXI7CivmkrogPiBodXJyeTsKK+WlmCA+IGxhcmdlOwor6IKEID4gbGVhcm47CivouK8gPiB3YXZlcjsKK+WtoiA+IHNwb3JlOwor6bKyID4gc3Bhd247CivphYogPiBkcnVuazsKK+mTqCA+IHdlaWdoOwor6YW9ID4gdGhpY2s7CivpmJIgPiBhbG9uZTsKK+mlrCA+IG9yZGVyOwor6LGVID4gYVwtcGlnOwor56yKID4gbGFkbGU7CivnvYUgPiBjcmFjazsKK+mSnCA+IHN0ZWVsOwor55WIID4gZmllbGQ7Civlm5cgPiBlcmVjdDsKK+W6pSA+IHNoYWRlOwor55OkID4gZmxlc2g7Civpk6kgPiBtb3VsdDsKK+a4liA+IGp1aWNlOwor5b+EID4gaGVhcnQ7Civor5MgPiBjaGVhdDsKK+m5kSA+IHF1YWlsOwor6IyVID4gYWxvbmU7CivlnoUgPiBtb3VuZDsKK+ifpSA+IGxlZWNoOwor6bmzID4gY3JhbmU7CivpuYwgPiBxdWFpbDsKK+aZnyA+IGNsZWFyOwor5ZWBID4gY2hpcnA7CivphpogPiBldGhlcjsKK+eQsCA+IGpld2VsOwor6L+oID4gdW50aWw7CivopKsgPiBzdHJpcDsKK+m5rCA+IHNuaXBlOwor5569ID4gYmxpbmQ7CivlgoggPiB0cmliZTsKK+mpvSA+IHRpcmVkOwor6LCvID4gdG93ZXI7Civpk7AgPiBoaW5nZTsKK+a0jCA+IGNsZWFyOwor5aCeID4gcGxhdGU7CivnobwgPiBib3JheDsKK+ipiCA+IHNjb2xkOwor6YWvID4gZXN0ZXI7CivplaogPiBjb2luczsKK+mUuCA+IHNwYWRlOwor5oiLID4gc21hbGw7CivmiaYgPiBwcm9iZTsKK+a6tyA+IHByaXZ5Owor5L+zID4gYWN0b3I7Civpm6AgPiBlbmVteTsKK+eguyA+IGdyaW5kOwor6JiWID4gc3R1bXA7CivlooAgPiBwb3JjaDsKK+m6tCA+IHllYXN0Owor56qzID4gZGlydHk7CivmvYsgPiB3YXZlczsKK+a0jiA+IHVudGlsOwor6aWnID4gc3VnYXI7CivlloggPiBtdXNpYzsKK+WQoSA+IGJsYW1lOwor6ZmfID4gY2xpbWI7CivpspsgPiBzaGFyazsKK+easiA+IGNyYWNrOwor55iKID4gd2FydHM7CivpppUgPiBicmVhZDsKK+aQpiA+IGdyYXNwOwor5Z60ID4gc21hbGw7CivpmJ0gPiBwbGFjZTsKK+WOoyA+IHNoZWxsOwor57OFID4gYmxlbmQ7Civpk5cgPiB0b25nczsKK+mYjyA+IGJsb2NrOwor5YmhID4gc2hhcnA7CivpsoIgPiBicmVhbTsKK+a6vSA+IG1vaXN0Owor5oC/ID4gZW5qb3k7CivoibkgPiBncmFzczsKK+mrkSA+IHNrdWxsOwor6Le9ID4ga25lZWw7CivnsI8gPiBhXC1ib3g7Civoo6UgPiBmb2xkczsKK+mSoyA+IHBsYXRlOwor5qeKID4gc3BlYXI7CivmpIsgPiBmcnVpdDsKK+e8syA+IG5vb3NlOwor57uQID4gY2hlYXQ7Civmu6IgPiBjbGVhcjsKK+m+oCA+IGZsdXRlOwor6J2kID4gbGFydmE7CivmsIYgPiB0aGljazsKK+WfrSA+IGFcLWRhbTsKK+WfvSA+IGJyb29tOwor5Z28ID4gc3BsaXQ7Civor5YgPiBlcnJvcjsKK+mytiA+IHNoZWF0Owor6LKFID4gYnJhdmU7CivnmqQgPiB3aGl0ZTsKK+eogiA+IGdyYXNzOwor6ZWGID4gc3dvcmQ7CivplJ4gPiBpbmdvdDsKK+eInSA+IHRvcmNoOwor5rChID4gcmFkb247Civmp60gPiBtYXBsZTsKK+W9mCA+IHN3aW5lOwor5b2WID4gYVwtaG9nOwor5ruXID4gZHJhaW47Civlu5EgPiBhXC1odXQ7CivljI8gPiBnb3VyZDsKK+iVliA+IGxvdHVzOwor5L6UID4gZXF1YWw7Civps4ogPiBicmVhbTsKK+evvCA+IHNlZGFuOwor6JueID4gc25haWw7Civom7IgPiB3b3JtczsKK+iZjSA+IHRpZ2VyOwor5rCZID4geGVub247CivotYcgPiBicmliZTsKK+eSgSA+IFwoZ2VtXCk7Civnu5cgPiBiYXN0ZTsKK+iQjyA+IGxvdHVzOwor5Z+YID4gcm9vc3Q7CivpvZIgPiB0ZWV0aDsKK+m9hSA+IHNtZWxsOwor6buuID4gYmxhY2s7Civpu5MgPiBibGFjazsKK+m6uiA+IGZsb3VyOwor6bq5ID4geWVhc3Q7CivpurUgPiBmbG91cjsKK+m6ryA+IHllYXN0Owor6bqrID4gZmxvdXI7CivpuqogPiBmbG91cjsKK+m6pCA+IHJvdWdoOwor6bqYID4gc2NlbnQ7CivpuoEgPiByb3VnaDsKK+m5viA+IHNhbHR5Owor6bm6ID4gc2FsdHk7CivpubkgPiBzYWx0eTsKK+m4siA+IG15bmFoOwor6bibID4gY3JhbmU7CivpuJggPiBlYWdsZTsKK+m3uCA+IHNuaXBlOwor6beDID4gcXVhaWw7CivptrUgPiBjaGljazsKK+m2iSA+IHF1YWlsOwor6bWwID4gZWFnbGU7CivptaogPiBxdWFpbDsKK+m1niA+IGdvb3NlOwor6bWdID4gZ29vc2U7CivptLMgPiBxdWFpbDsKK+m0qiA+IHN3b29wOwor6bSlID4gc3dvb3A7CivptJ0gPiBteW5haDsKK+mxuyA+IGZyZXNoOwor6bGuID4gYnJlYW07CivpsJ4gPiBzcXVpZDsKK+mwjSA+IGxvYWNoOwor6bCLID4gc2hlYXQ7Civpr78gPiBicmVhbTsKK+mvsCA+IHNoZWF0Owor6a+oID4gd2hhbGU7Civpr6QgPiBzcGF3bjsKK+mviyA+IHNoYXJrOwor6a+KID4gc2hhcms7CivprqsgPiBzaGFyazsKK+muiSA+IGJyZWFtOwor6a20ID4gYnJlYW07CivprYYgPiBibGFjazsKK+mskiA+IGJsYWNrOwor6ayOID4gZmF2dXM7CivprI0gPiBiZWFyZDsKK+msgSA+IGZhdnVzOwor6auzID4gc3RhdGU7Civpq7IgPiBhXC13aWc7Civpq6UgPiBiZWFyZDsKK+mrkiA+IGRpcnR5Owor6auPID4gc2t1bGw7Civpqq8gPiBkaXJ0eTsKK+mpqSA+IGhhcHB5Owor6ammID4gaG9yc2U7CivpqZYgPiBibGFjazsKK+mouyA+IGhvcnNlOwor6airID4gcmFpc2U7CivpqKAgPiBob3JzZTsKK+mokSA+IGhvcnNlOwor6aeqID4gY3Jvd2Q7Civpp54gPiBjYW1lbDsKK+mnkSA+IHRpcmVkOwor6aahID4gc2NlbnQ7CivppaIgPiBicmVhZDsKK+mlmCA+IGdydWVsOwor6aWNID4gbWVhbHM7CivppYMgPiBicmVhZDsKK+mkuyA+IGNha2VzOwor6aS5ID4gc3VnYXI7CivppLMgPiBzdWdhcjsKK+mkqiA+IGZlYXN0Owor6aSmID4gY2FuZHk7CivppJwgPiBjYWtlczsKK+mjtiA+IG9kb3VyOwor6aOtID4gb3JkZXI7Civpo5EgPiBzdG9ybTsKK+mivSA+IGJhbG15Owor6aGxID4gc2t1bGw7CivpobAgPiBmcm93bjsKK+mhoyA+IGZyb3duOwor6aGXID4gcXVpZXQ7CivpoL4gPiBiZWFyZDsKK+mgoCA+IHF1aWV0Owor6aCcID4gbW91dGg7CivpoIAgPiBtdXNpYzsKK+mfuiA+IG11c2ljOwor6Z+kID4gc29ja3M7Civpn5kgPiByaWdodDsKK+mfkyA+IGZlbmNlOwor6Z+IID4gc29ja3M7Civpn4YgPiBzd2luZzsKK+mfgSA+IHJlaW5zOwor6Z6+ID4gYm9vdHM7CivpnrUgPiBzaG9lczsKK+meqCA+IHRyaWJlOwor6Z6XID4gcmVpbnM7CivpnoMgPiBib2FyZDsKK+mdpiA+IHRpbWlkOwor6Z2BID4gdGhpY2s7CivpnLEgPiBjbG91ZDsKK+mcmSA+IHNsZWV0Owor6ZudID4gbWFyc2g7Civpm5sgPiBjaGljazsKK+magiA+IHNoYWR5Owor6Zm8ID4gaXNsZXQ7CivpmLkgPiBhXC1wZW47Civpl5ogPiBmbGFzaDsKK+mXlCA+IGNsb3NlOwor6ZeLID4gY2xvc2U7Civpl4ogPiBicm9hZDsKK+mXgyA+IGFsb25lOwor6Za8ID4gYmxvY2s7CivplrQgPiBxdWlldDsKK+mWpiA+IGNyb3dkOwor6ZaUID4gbW91cm47CivplZ8gPiBsYXRoZTsKK+mUvCA+IGNhcnZlOwor6ZSTID4gY2FydmU7Civpk5ggPiBzd29yZDsKK+mSgyA+IG1ldGFsOwor6ZG9ID4gZHJpbGw7CivpkbEgPiBzcGFkZTsKK+mRmiA+IGRyaWxsOwor6ZGTID4gc3BlYXI7Civpj7kgPiBjb2luczsKK+mPtSA+IHNwYWRlOwor6Y+mID4gc3BlYXI7Civpj6QgPiBjYXJ2ZTsKK+mPnyA+IHNwYWRlOwor6Y+MID4gc3dvcmQ7Civpj4ggPiBjaGFpbjsKK+mPhyA+IGxhdGhlOwor6Y6sID4gc3RvdmU7CivpjqcgPiBhcm1vcjsKK+mOlyA+IHJpZmxlOwor6Y6NID4gY2hhaW47CivpjbkgPiBzcGFkZTsKK+mNrSA+IGFycm93Owor6Y2kID4gc3BhZGU7CivpjY8gPiBzcGFkZTsKK+mNjSA+IHBsYXRlOwor6Y2JID4gc3Bvb247CivpjIEgPiBpbmdvdDsKK+mLuSA+IHNoYXJwOwor6Yu4ID4gYVwtc2F3Owor6YuyID4gcml2ZXQ7Civpi58gPiBjYXJ2ZTsKK+mLmCA+IHN3b3JkOwor6YqzID4gc2hhcnA7CivpipsgPiBzaGFycDsKK+mKkyA+IHdlaWdoOwor6Ym+ID4gc3BlYXI7CivpibwgPiBwbGF0ZTsKK+mJuCA+IGhpbmdlOwor6YmaID4gcml2ZXQ7CivpiYUgPiBzdGVlbDsKK+mIkiA+IHNwZWFyOwor6YiRID4gcGxhdGU7CivpiIcgPiBhblwtYXg7Civph7wgPiBzd29yZDsKK+mHliA+IGtuaWZlOwor6YeFID4gdGhpY2s7Civph4IgPiBkcmFpbjsKK+mEuyA+IHNwb2lsOwor6YOkID4gY3JhY2s7CivpgasgPiBzcGVlZDsKK+mBnSA+IG1peGVkOwor6YC0ID4gYXJndWU7Civovq4gPiBicmFpZDsKK+i+pCA+IHdvcmRzOwor6L6gID4gY3JpbWU7CivovJMgPiBtb3VybjsKK+i8jyA+IGxpZ2h0Owor6LyIID4gc2hhZnQ7Civou7EgPiB3aGVlbDsKK+i7nCA+IHJlaW5zOwor6LuMID4gdHJhY2s7CivouqEgPiB0cmVhZDsKK+i4hiA+IHNxdWF0Owor6LahID4gcGxhY2U7CivotJwgPiBib290eTsKK+i0kyA+IGJvb3R5Owor6LSLID4gZmFsc2U7Civos5UgPiBicmliZTsKK+izlCA+IGd1ZXN0Owor6LOTID4gZ3Vlc3Q7Civos40gPiBib290eTsKK+izhCA+IGJyaWJlOwor6LOCID4gYnJpYmU7Civosr8gPiB0cmFkZTsKK+iypCA+IHN0ZXBzOwor6LGUID4gcGx1bXA7CivorpkgPiBjaGVlcjsKK+iukyA+IGFsbG93Owor6K6QID4gZW5lbXk7Civoro4gPiBlbmVteTsKK+itmSA+IHRvd2VyOwor6K2MID4gZmFsc2U7CivorYEgPiBub2lzZTsKK+isrCA+IGVycm9yOwor6KyRID4gc2hhbWU7CivorI8gPiBzY29sZDsKK+iroiA+IGpva2VzOwor6KugID4gbm9pc3k7Civoq5AgPiBmYXVsdDsKK+iqqiA+IHNwZWFrOwor6KqoID4gdGVhY2g7CivoqoYgPiBjaGVhdDsKK+ipvyA+IGVycm9yOwor6Km8ID4gdGVhc2U7CivoqawgPiBhYnVzZTsKK+ipoyA+IHJlYWNoOwor6KmhID4gYm9hc3Q7CivoqZsgPiBjdXJzZTsKK+ipliA+IGFyZ3VlOwor6KmRID4gY2hlYXQ7CivoqZAgPiBjaGVhdDsKK+iovSA+IGJsYW1lOwor6KinID4gZmF1bHQ7CivoqJUgPiBhYnVzZTsKK+iokyA+IHRlYWNoOwor6KiPID4gYm9hc3Q7Civop5QgPiBjYXR0eTsKK+imrCA+IGNvdmV0Owor6KaPID4gcnVsZXM7Civopb4gPiBjb3ZlcjsKK+ilqiA+IHNvY2tzOwor6KWiID4gc3RyaXA7CivopY0gPiBtaXhlZDsKK+ikuyA+IGRpcnR5Owor6KS6ID4gZGlydHk7CivopJUgPiBzaGlydDsKK+iitSA+IGxhcGVsOwor6KGVID4gYWxsZXk7CivooYogPiBzbWVhcjsKK+ihgSA+IGJsb29kOwor6KCbID4gZmxpZXM7CivooJcgPiBcKGFwZVwpOwor6KCFID4gZmxpZXM7Civon68gPiB3b3JtczsKK+ifoiA+IGNhdWxrOwor6J2oID4gbG91c2U7CivonZggPiBnZWNrbzsKK+idkyA+IHNuYWlsOwor6Jq0ID4gbGFydmE7CivomaMgPiBjcnVlbDsKK+iZmyA+IGZhbHNlOwor6JiXID4gc3R1bXA7CivomJMgPiB0aHltZTsKK+iYiyA+IGFwcGxlOwor6Je+ID4gc2hhZGU7Civol6ogPiBtYXJzaDsKK+iWliA+IGVtcHR5Owor6JaJID4gZGlydHk7Civokp4gPiByZWFjaDsKK+iRoiA+IGNvdmVyOwor6JGNID4gcGxhbnQ7CivokLkgPiBncmFzczsKK+iOvyA+IHRob3JuOwor6I2zID4gYmVhbnM7Civoja4gPiBncmFzczsKK+iNhCA+IHJvb3RzOwor6IyHID4gZ3Jhc3M7Civoi74gPiBzbWVsbDsKK+iLtiA+IHdlYXJ5Owor6IiXID4gc3RvcmU7CivoiJYgPiBzdG9yZTsKK+iIiyA+IHNwbGl0Owor6IiJID4gcmFpc2U7Civoh70gPiBhXC1waXQ7Civoh7IgPiBqdW1weTsKK+iHoiA+IGRpcnR5Owor6IebID4gYnJvdGg7Civoh5kgPiByb3VnZTsKK+iHkCA+IGJyb3RoOwor6Ia2ID4gbGl2ZXI7CivohocgPiBzd2VsbDsKK+iFqyA+IHN3ZWxsOwor6IWhID4gbGluZXM7CivohLkgPiBzd2VsbDsKK+iEtiA+IGxpbmVzOwor6ISiID4gZmxlc2g7CivohIMgPiBnbGFuZDsKK+iCtSA+IHRhYmxlOwor6IKVID4gdG91Z2g7CivogJ4gPiBmbGFpbDsKK+e/vSA+IHdoaXJyOwor57+EID4gd2luZHM7CivnvrEgPiBzaGVlcDsKK+e+oyA+IGdyb3VwOwor5723ID4gY2Vhc2U7CivnvYkgPiBhXC1wb3Q7CivnursgPiByYW1pZTsKK+e5ryA+IG5vb3NlOwor57muID4gcmVpbnM7CivnuKAgPiBjcmVwZTsKK+e4kCA+IGNyZXBlOwor57iPID4gcHVyc2U7Civnt54gPiBzYXRpbjsKK+e2uSA+IHNrZWluOwor57agID4gZ3JlZW47CivntowgPiBjbG90aDsKK+e1jiA+IGJhc3RlOwor57WBID4gcm91Z2g7CivntL8gPiBjaGVhdDsKK+e0tSA+IHJhbWllOwor57SdID4gd2VhdmU7CivntJcgPiBnYXV6ZTsKK+e0kSA+IGZyZXNoOwor57OUID4ganVpY2U7Civns5MgPiBncmFpbjsKK+eyjiA+IG1ldHJlOwor57GkID4gdGFsbHk7CivnsLsgPiBlbXB0eTsKK+ewmyA+IHNpZXZlOwor57CSID4gdXN1cnA7CivnsIEgPiBzaWV2ZTsKK+evqSA+IHNpZXZlOwor56+PID4gaW5sYXk7CivnrpsgPiBidWdsZTsKK+etsyA+IGZlYXN0Owor562wID4gY2FibGU7CivnraYgPiBhXC1rZXk7Civnq74gPiBmbHV0ZTsKK+erlCA+IGxpdHJlOwor56q9ID4gZW1wdHk7CivnqacgPiBzaGVhZjsKK+epoiA+IGRpcnR5Owor56mgID4gdGhpY2s7CivnqYUgPiBjaGFmZjsKK+eoviA+IGRyYWZ0Owor56iFID4gdGF4ZXM7Civnp4cgPiBza2lsbDsKK+emoCA+IGhhcHB5Owor56aOID4gbHVja3k7CivnpZkgPiBkZW1vbjsKK+ektiA+IGFcLWp1ZzsKK+eksSA+IGdyaW5kOwor56O1ID4gYnJvb2s7Civno68gPiBqZXR0eTsKK+ejoSA+IGNsaWZmOwor56ObID4gY2xpZmY7Civno4ggPiByb2NreTsKK+eiuyA+IHNvbGlkOwor56KvID4gYWdhdGU7CivnoqkgPiBncmVhdDsKK+eigSA+IGNoZXNzOwor56GPID4gZ3JpbmQ7CivnoLMgPiByb2NreTsKK+egoCA+IHJvY2t5Owor55+TID4gZmFpbnQ7Civnn4ggPiBkZW5zZTsKK+eejyA+IHJvdW5kOwor556NID4gYmxpbmQ7CivnnocgPiBjbG9zZTsKK+edmCA+IHJvdW5kOwor55y5ID4gcHVwaWw7CivnnIUgPiBpbmxheTsKK+ebuyA+IGdsYXJlOwor55utID4gY3J1ZWw7Civnmr0gPiBzY3VyZjsKK+eauSA+IGNyYWNrOwor55q4ID4gY3JhY2s7Civnmq0gPiB3aGl0ZTsKK+eaqyA+IHdoaXRlOwor55qcID4gd2hpdGU7CivnmoEgPiBibGFjazsKK+eZsiA+IGNyYXp5Owor55mhID4gc2lsbHk7CivnmKEgPiB0dW1vcjsKK+eYiyA+IGNyYXp5Owor55SeID4gdGFzdGU7CivnlJsgPiBzd2VldDsKK+eUliA+IGFcLXBvdDsKK+eUjiA+IGJyaWNrOwor55OWID4gaW5sYXk7Civnk4ggPiBnbGFzczsKK+eRqiA+IGFnYXRlOwor55GUID4gXChqYWRlOwor55GRID4gY2FydmU7Civnj5YgPiBjYXJhdDsKK+eOiCA+IGJsYWNrOwor542dID4gZGV2aWw7CivnjY4gPiBwcml6ZTsKK+eLtSA+IGJsZW5kOwor54mcID4gYW5cLW94Owor54mUID4gZ2FibGU7CivniJMgPiBmbGFtZTsKK+eIjSA+IHNoaW5lOwor54e/ID4gc2hpbmU7Civnh74gPiBzaGluZTsKK+eHpiA+IHZpdmlkOwor54eZID4gc2NhbGQ7Civnh48gPiBibGF6ZTsKK+eHhCA+IGZsYW1lOwor54eCID4gc21va2U7CivnhpsgPiBibGF6ZTsKK+eGkiA+IHNoaW5lOwor54WsID4gcm9hc3Q7CivnhaIgPiBhbG9uZTsKK+eFiSA+IHNtZWx0Owor54SUID4gZmxhbWU7Civng5MgPiBzdG92ZTsKK+eDiyA+IGJvYXN0Owor54KwID4gcm9hc3Q7CivngqcgPiBhc2hlczsKK+eBoyA+IGFcLWJheTsKK+eBoiA+IG11ZGR5Owor54GUID4gd2F2ZXM7CivngLogPiBzb3VuZDsKK+eAsiA+IHdhdmVzOwor54CPID4gY2xlYXI7CivngIsgPiBqdWljZTsKK+eAhiA+IGRpdGNoOwor54CFID4gY2xlYXI7CivngIEgPiB3YXZlczsKK+a/qyA+IGZsb29kOwor5r6oID4gc2hvcmU7CivmvpcgPiBicm9vazsKK+a+kSA+IHNsaWRlOwor5r6GID4gc3ByYXk7CivmvbcgPiBkcmFpbjsKK+a9nSA+IGFncmVlOwor5ryRID4gd2F0ZXI7CivmvIggPiBzaG9yZTsKK+a5qSA+IG11ZGR5Owor5rmjID4gbWl4ZWQ7CivmuL4gPiBtdWRkeTsKK+a3uCA+IGNsZWFyOwor5reiID4gZGl0Y2g7Civmt5ogPiB0ZWFyczsKK+a3iiA+IGRyb3duOwor5rWlID4gbW9pc3Q7CivmtLQgPiBzb3VuZDsKK+a0miA+IGZsb29kOwor5rSPID4gdGVhcnM7Civms5ogPiBjbGVhcjsKK+aysiA+IGZsb2F0Owor5rGzID4gaGVuYW47CivmsY4gPiBmbG9hdDsKK+awuSA+IGRpdGNoOwor5rClID4geGVub247CivmsJwgPiBjbGVhcjsKK+aukSA+IHN3b29uOwor5q2+ID4gZHJvd247CivmrZUgPiBzcHVydDsKK+atkyA+IGhhcHB5Owor5q2IID4gc29uZ3M7CivmrLwgPiBkcmluazsKK+asuCA+IHNpZ2hzOwor5qysID4gY291Z2g7CivmrJkgPiBzZWRhbjsKK+asliA+IG9saXZlOwor5quxID4geWVhc3Q7Civmq4ggPiBiZW5jaDsKK+aquCA+IGxlbW9uOwor5qqvID4gdGFibGU7CivmqqggPiBtYW5nbzsKK+aqlCA+IHNoZWxmOwor5qi0ID4gc3Rha2U7CivmqJUgPiBzaHJ1YjsKK+aojyA+IHNlZGFuOwor5qiBID4gc3Rha2U7Civmp7wgPiBydWxlczsKK+ankyA+IGxldmVyOwor5qeNID4gc3BlYXI7Civmpr8gPiBhbGRlcjsKK+amriA+IGdsb3J5Owor5qWzID4gcGx1bXM7CivmpYUgPiBidWFyZDsKK+alhCA+IGJsb2NrOwor5qSIID4gY2VkYXI7Civmo4ogPiBjaGVzczsKK+ajgSA+IGpvaXN0Owor5qKyID4gam9pc3Q7CivmopAgPiBmZW5jZTsKK+ahryA+IHRhYmxlOwor5qGtID4gZWF2ZXM7CivmoZogPiBwcmVzczsKK+agtSA+IGhlZGdlOwor5qCrID4gZmVuY2U7CivmoJQgPiBjYXJ2ZTsKK+agjSA+IGFcLWxvdDsKK+aftiA+IGxhZGxlOwor5p2nID4gbWFuZ287CivmnZUgPiBhbG9uZTsKK+acriA+IHNraWxsOwor5pyWID4gY2xlYXI7CivmnIUgPiBicmF2ZTsKK+abtSA+IHRyYWlsOwor5puoID4gdmFndWU7CivmloYgPiB0ZWFjaDsKK+aWhSA+IHRlYWNoOwor5pW6ID4gZXhwZWw7CivmlZQgPiBnYXZlbDsKK+aVjiA+IHRlYWNoOwor5pSsID4gZ3Jhc3A7CivmlJsgPiBodXJyeTsKK+aTuyA+IHNoYWtlOwor5pOyID4gdGhyb3c7Civmk7AgPiBwaW5jaDsKK+aToCA+IGNyb3dkOwor5pKzID4gcHJlc3M7CivmkbMgPiByYWlzZTsKK+aRjyA+IHBvdW5kOwor5pCkID4gc2VpemU7CivmkIogPiBwbHVjazsKK+aQiSA+IGtub2NrOwor5o+1ID4gY2Fycnk7Civmj4UgPiBncmluZDsKK+aOhCA+IHN3aW5nOwor5o2/ID4gcGVyY2g7CivmjasgPiBzdG9rZTsKK+aMjCA+IGZpZ2h0Owor5ouLID4gdGhyb3c7Civmi4MgPiBncm9wZTsKK+aJoiA+IGNhcGVyOwor5oitID4gc3BlYXI7CivmiKMgPiBsYW5jZTsKK+aIniA+IGxhbmNlOwor5oiUID4gc21hbGw7Civmh70gPiBoYXBweTsKK+aHpSA+IGFuZ3J5Owor5oegID4gYW5ncnk7Civmh4wgPiBlbmpveTsKK+aGrSA+IGNsZWFyOwor5oaaID4gZHJlYWQ7CivmhoogPiB0aXJlZDsKK+aFrCA+IGJyYXZlOwor5oWNID4gYW5ncnk7CivmhL4gPiBhbmdlcjsKK+aEtyA+IGVuam95Owor5oSeID4gdGltaWQ7CivmhIMgPiByZWxheDsKK+aCviA+IG5haXZlOwor5oKwID4gZW5qb3k7CivmgoYgPiBoYXBweTsKK+aBtSA+IGZhdm9yOwor5oGTID4gdmV4ZWQ7CivlvZEgPiBzbm91dDsKK+W9kCA+IHNub3V0Owor5b2CID4gaXNzdWU7CivlvIkgPiBsYXJnZTsKK+W7lSA+IHNoYWRlOwor5bmtID4gY292ZXI7CivluaogPiBjb3ZlcjsKK+W5piA+IGNvdmVyOwor5bmgID4gY292ZXI7CivluJIgPiBhXC1iYWc7CivluIsgPiBwYXBlcjsKK+W3rSA+IHN0dWR5Owor5bebID4gcml2ZXI7Civlt5YgPiBjbGlmZjsKK+W3jCA+IGNsaWZmOwor5beLID4gZ3JhbmQ7Civlt4kgPiBzdGVlcDsKK+W3gyA+IGxvZnR5Owor5bawID4gZ29yZ2U7CivltqEgPiB0YWJsZTsKK+W2niA+IHJpZGdlOwor5baUID4gbG9mdHk7CivltocgPiBzdGVlcDsKK+W1nCA+IHJvdWdoOwor5bWSID4gY2xpZmY7CivltYIgPiBsb2Z0eTsKK+W0sSA+IGxvZnR5Owor5bSaID4gaGlsbHk7CivltJUgPiBjbGlmZjsKK+WzvSA+IGdvcmdlOwor5bOpID4gbG9mdHk7CivlsbYgPiBsb2Z0eTsKK+WxtCA+IGxvZnR5Owor5bGqID4gcGVuaXM7CivlsYwgPiBwZW5pczsKK+WwsCA+IHN3ZWxsOwor5bCZID4gc3RpbGw7Civlr6wgPiBicm9hZDsKK+WvmyA+IGJyb2FkOwor5a+BID4gcXVpY2s7CivlrrsgPiBkZW5zZTsKK+WujSA+IGZsZXNoOwor5a2/ID4gdHdpbnM7CivlrZYgPiB0d2luczsKK+WrmiA+IHNjb3JuOwor5aeqID4gbmllY2U7CivlpbAgPiBhbmdlcjsKK+WlrCA+IHByaXplOwor5aWoID4gcHJpemU7CivlpZ0gPiBsYXJnZTsKK+WjoCA+IG1vdW5kOwor5aOfID4gZ3JhdmU7Civlo4YgPiBzdGlmZjsKK+WiuiA+IHdhbGxzOwor5aKzID4gZ3JhdmU7Civlop0gPiBzdG9ueTsKK+WijSA+IHBhaW50Owor5aKIID4gY2xpZmY7CivlobwgPiBicmljazsKK+WhnCA+IGR1c3R5Owor5aGZID4gdHJ1bHk7CivloZIgPiByb29zdDsKK+WhiyA+IGdyYXZlOwor5aGIID4gcGFpbnQ7CivloL8gPiBzYWx0eTsKK+WgvSA+IG1vdW5kOwor5aCWID4gc21hbGw7Civln7MgPiBhXC1waXQ7Civln4wgPiB3YXN0ZTsKK+WfhiA+IHN0b255Owor5Z6aID4gbW91bmQ7Civlnb8gPiBtb3VuZDsKK+WdsCA+IHdpbGRzOwor5ZyMID4gZmVuY2U7Civlm5EgPiBvcmRlcjsKK+WbhSA+IHNtaWxlOwor5ZquID4gZ3VpZGU7Civlmq0gPiBtb3VuZDsKK+WarCA+IGZyb3duOwor5ZqhID4gcm91Z2g7CivlmpAgPiB0YXN0ZTsKK+WahyA+IHNjYXJlOwor5Zm6ID4gc3Rvcnk7CivlmbQgPiBzcHVydDsKK+WZrSA+IHNob3V0Owor5ZmmID4gYmVsY2g7CivlmKIgPiB0aGluZzsKK+WYkiA+IHNoYXJwOwor5ZebID4gcG91Y2g7Civll5kgPiBib2FzdDsKK+WXkCA+IGFsYXNcITsKK+WWtCA+IGhlbGxvOwor5ZWyID4gYVwtZmV3Owor5ZWiID4gb3VuY2U7CivllY0gPiBjcmVhazsKK+WUoSA+IG91bmNlOwor5ZSOID4gc291bmQ7Civlk7YgPiBibGVhdDsKK+WTlSA+IGJlbGNoOwor5ZKiID4gc291bmQ7Civlko0gPiBsYXVnaDsKK+WQsCA+IGNsYW5nOwor5ZCjID4gdm9taXQ7Civlj5ogPiBmYWxzZTsKK+WOuiA+IHRvXC1nbzsKK+WOuSA+IHNwZWFyOwor5Y60ID4gc2hlbGw7CivljqogPiBhXC1odXQ7CivljpYgPiBidWxreTsKK+WNuyA+IHN0aWxsOwor5Y2sID4gbG9mdHk7CivljJwgPiBiYXNpbjsKK+WLuyA+IGVxdWFsOwor5YqUID4gc3dvcmQ7CivlipIgPiBzd29yZDsKK+WKjiA+IHN3b3JkOwor5YmxID4gc3dvcmQ7CivliaAgPiBicmFuZDsKK+WIgiA+IGtuaWZlOwor5Ye8ID4gZGl0Y2g7Civlh4ggPiBjbGVhbjsKK+WGqSA+IHdyaXRlOwor5YanID4gYVwtYnVkOwor5YaaID4gY292ZXI7CivlhpYgPiBjb3ZlcjsKK+WGgSA+IHNtaWxlOwor5YS8ID4gZ3JhdmU7CivlhI4gPiBjYXJyeTsKK+WEjCA+IGx1Y2t5Owor5YO/ID4gc21hbGw7Civlg4QgPiBsaWdodDsKK+WCqyA+IHRpcmVkOwor5YGQID4gZmFsc2U7CivlgYEgPiBzdGF0ZTsKK+WAliA+IGx1Y2t5Owor5L+2ID4gc3RhcnQ7CivkvpAgPiBxdWlldDsKK+S+gSA+IGNyb3dkOwor5L26ID4gZmFpcnk7CivkvYwgPiBzbWFsbDsKK+S8qSA+IHRydXN0Owor5LurID4gdHJpYmU7Civkur4gPiBkZWF0aDsKK+S6sSA+IG5pZ2h0Owor5LmVID4gdGlnZXI7CivkuLUgPiB0aGljazsKK+S4ryA+IGRlbnNlOwor5LiuID4gY2F0Y2g7CivkuIwgPiB0YWJsZTsKK+S4hSA+IHVuZGVyOwor5LiEID4gYWJvdmU7CivktpMgPiByYW1pZTsKK+S2jyA+IHRlYXJzOwor5LaLID4gc291bmQ7CivktocgPiBhXC1yYXQ7CivktoYgPiBhXC1yYXQ7Civkta0gPiBibGFjazsKK+S1pSA+IGJsYWNrOwor5LWfID4gYmxhY2s7CivktLogPiBjYWtlczsKK+S0uSA+IGNha2VzOwor5LS1ID4gY2FrZXM7CivktLIgPiBmbG91cjsKK+S0niA+IHNhbHR5Owor5LO9ID4gY3JhbmU7Civks7EgPiBkdWNrczsKK+SzmCA+IGdvb3NlOwor5LOXID4gZ29vc2U7CivksqEgPiBsb2FjaDsKK+SykSA+IHNwYXduOwor5LGcID4gc2hhcms7CivksZYgPiBzaGFyazsKK+SxiyA+IHNwYXduOwor5LCiID4gZ2hvc3Q7CivksJcgPiBhXC1sb3Q7CivksJIgPiB2YWd1ZTsKK+SwkSA+IGJlYXJkOwor5LCFID4gYmVhcmQ7Civkr74gPiBoYWlyeTsKK+SvuCA+IGFcLXdpZzsKK+SvjSA+IGJvbmVzOwor5K29ID4gZ3JvdXA7CivkraYgPiBjYWtlczsKK+StnyA+IGNha2VzOwor5K2QID4gY2FrZXM7CivkrY4gPiBjYWtlczsKK+SthSA+IGNha2VzOwor5Ky/ID4gc21hbGw7CivkrLUgPiBzeXJ1cDsKK+SsriA+IHN5cnVwOwor5Ku1ID4gdHdpbnM7Civkq5YgPiB0aW1pZDsKK+SrjiA+IHNob3J0Owor5Kq7ID4gYVwtY2FwOwor5KqxID4gY2hlZWs7Civkqq8gPiBzb3VuZDsKK+SqmyA+IGdyb3VwOwor5KqYID4gcmlnaHQ7CivkqpcgPiBzaG9lczsKK+SqgiA+IHJlaW5zOwor5Km6ID4gYm9vdHM7CivkqZYgPiBzaG9lczsKK+SplSA+IGNsb2dzOwor5KmTID4gYm9vdHM7CivkqYUgPiBicm9hZDsKK+SouSA+IHN3aWZ0Owor5Ki3ID4gc2xlZXQ7CivkqJggPiBzbGVldDsKK+SoiyA+IGNydWVsOwor5KiEID4gcXVhaWw7CivkqIEgPiBkdWNrczsKK+SnvSA+IHNtYWxsOwor5KeqID4gc2lzc3k7Civkp44gPiBhXC1waXQ7Civkp4YgPiBhXC1waXQ7Civkpr4gPiBsb2Z0eTsKK+SmoiA+IGJyb2FkOwor5KaeID4gZXh0cmE7CivkppcgPiBxdWlldDsKK+SmlCA+IGFcLXBlZzsKK+SltSA+IGxpbmVzOwor5KWYID4gd3Jvbmc7CivkpZMgPiBhXC1ob2U7CivkpYEgPiBhcm1vcjsKK+SkuiA+IGFuXC1heDsKK+SktCA+IGFybW9yOwor5KSqID4gc2hvcnQ7CivkpKIgPiBtZXRhbDsKK+SknCA+IGJsdW50Owor5KSaID4gcGx1bXM7CivkpJkgPiBkcmVnczsKK+SjsSA+IGRydW5rOwor5KOnID4gYmxhY2s7CivkopQgPiBtaXhlZDsKK+SikSA+IGFuZ3J5Owor5KGWID4gc3RpbGw7CivkoKIgPiB3ZWFyeTsKK+SgoCA+IHRvXC1nbzsKK+SfoCA+IHN3aWZ0Owor5J+cID4gYnJlYWs7CivknoggPiBtb25leTsKK+SdrSA+IHdhZ2VzOwor5J2rID4gbW9uZXk7CivknZIgPiBhXC1zb3c7CivknY8gPiBhXC1zb3c7CivknY4gPiBhXC1waWc7CivknYogPiBhXC1zb3c7CivknYUgPiBhXC1waWc7CivknYMgPiBiZWFuczsKK+SctCA+IGJyYXZlOwor5JyOID4gc291bmQ7CivknI0gPiBzd2VldDsKK+ScjCA+IGNoYW9zOwor5JyKID4gbm9pc2U7Civkm60gPiBhbmdyeTsKK+SboSA+IHdvcmRzOwor5Jq0ID4gYW5nZXI7Civkmp8gPiBob3JuczsKK+SaiSA+IG9cLXNlZTsKK+SYiiA+IGZsaWVzOwor5JeVID4gYmVuZHM7Civklo4gPiB0aWdlcjsKK+SWiyA+IGNydWVsOwor5JaIID4gY3J1ZWw7CivkkrggPiBncmFzczsKK+SSkSA+IGdyYXNzOwor5JGaID4gc3dlZXQ7CivkkZUgPiBhXC1yYXQ7CivkkYEgPiBmYXR0eTsKK+SQrCA+IGNyaXNwOwor5JCdID4gdGhpY2s7CivkkJcgPiBhXC1waWc7CivkkIcgPiBjbGVhcjsKK+SPtSA+IHBsdW1wOwor5I+zID4gb2xlaW47Civkj68gPiBtb2xlczsKK+SPpyA+IGZhdHR5Owor5I+aID4gc21hbGw7CivkjpAgPiBoYWlyeTsKK+SOhyA+IHF1aWNrOwor5I6EID4gaGFpcnk7CivkjaUgPiBzbW9reTsKK+SNjCA+IGFcLWphcjsKK+SMuyA+IHdpbmdzOwor5IyRID4gdGlnaHQ7CivkjJAgPiByb3BlczsKK+SLtSA+IHF1aWNrOwor5IulID4gbGluZXM7Civki5ogPiB3aW5nczsKK+SLmSA+IHJlaW5zOwor5Iq+ID4gcm9wZXM7CivkirsgPiBzaWxreTsKK+SKuSA+IHNtYWxsOwor5IqAID4gcGFzdGU7Civkib8gPiBwYXN0ZTsKK+SJniA+IGFcLWJveDsKK+SIiSA+IGFcLWZhbjsKK+SHsiA+IHRvbmdzOwor5IekID4gc2hhcnA7Civkh4IgPiBmYXVsdDsKK+SGuSA+IGVtcHR5Owor5IacID4gZW1wdHk7CivkhoEgPiBzeXJ1cDsKK+SFtSA+IGNoYWZmOwor5IWZID4gZ3Jhc3M7CivkhZggPiB3aGVhdDsKK+SFhiA+IGRlbnNlOwor5IS+ID4gdGhpY2s7CivkhKUgPiBhXC1nb2Q7CivkhKIgPiBwaW91czsKK+SDrCA+IHJvY2t5Owor5IObID4gY2hhaW47Civkg5kgPiByb2NrczsKK+SDlyA+IHJvY2tzOwor5IK9ID4gcm9ja3M7CivkgrwgPiByb2NrczsKK+SCuiA+IHJvY2tzOwor5IKwID4gcm9ja3M7Civkgq4gPiBzdG9uZTsKK+SCpiA+IHRpcmVkOwor5IKfID4gcm9ja3M7CivkgpYgPiByb2NrczsKK+SClSA+IHNob3J0Owor5IKUID4gc2hvcnQ7CivkgpEgPiBzaG9ydDsKK+SCjyA+IHNob3J0Owor5IGrID4gbXVkZHk7CivkgZ8gPiB3cm9uZzsKK+SBlyA+IGxpZ2h0Owor5IGNID4gYmxpbmQ7CivkgLwgPiBhbmdyeTsKK+SAhyA+IGFcLXBvdDsKK+O/tyA+IHJvdWdoOwor47+uID4gZ3JlZW47Civjv6kgPiBsaWdodDsKK+O/pSA+IHNoaW5lOwor47+kID4gd2hpdGU7Civjv50gPiBzd2VldDsKK+O/lSA+IHVsY2VyOwor476wID4gY2hva2U7CivjvqcgPiBmYXZ1czsKK+O+oSA+IHVsY2VyOwor476aID4gaXRjaHk7CivjvpAgPiB1bGNlcjsKK+O9vyA+IHVsY2VyOwor472hID4gZmllbGQ7CivjvI8gPiBhXC1iYWQ7Civju60gPiBjbGVhcjsKK+O6gyA+IGFcLWRvZzsKK+O5uyA+IHB1cHB5Owor47m3ID4gc3dpbmU7CivjuYsgPiBhXC1jb3c7CivjuYAgPiBhXC1jb3c7CivjuLogPiBhXC1jb3c7CivjuIUgPiBhc2hlczsKK+O4gyA+IGFcLWRvdDsKK+O3vyA+IGZsYW1lOwor47elID4gc3RlYW07Civjt5QgPiBmbGFtZTsKK+O3kSA+IHNtb2tlOwor47eHID4gZ3JlYXQ7CivjtrMgPiBhc2hlczsKK+O2sCA+IGZsYW1lOwor47amID4gYXNoZXM7CivjtpYgPiByYXBpZDsKK+O1uSA+IHdhdmVzOwor47SDID4gdGVhcnM7Civjs7kgPiBmbG9vZDsKK+OzsCA+IGRpdGNoOwor47OuID4gdXJpbmU7Civjs5sgPiBkaXJ0eTsKK+OypyA+IGhhaXJ5Owor47KGID4gbm9pc2U7CivjsLwgPiBncmVlZDsKK+OwqiA+IHNvdW5kOwor47ClID4gbGF1Z2g7CivjsKIgPiBjb3VnaDsKK+OvtyA+IGRhdGVzOwor466lID4gc2FpbHM7CivjrqIgPiBmcnVpdDsKK+OulSA+IGZydWl0Owor46y2ID4gZmxlc2g7CivjrLMgPiBsaWdodDsKK+OspiA+IGJyYXZlOwor46yaID4gbGlnaHQ7CivjrJUgPiBsaWdodDsKK+OsjyA+IGxpZ2h0Owor46yKID4gbGlnaHQ7Civjq7wgPiBjbGVhcjsKK+OruSA+IGxpZ2h0Owor46u2ID4gbGlnaHQ7Civjq7AgPiBsaWdodDsKK+OrqyA+IGNsZWFyOwor46ucID4gbGlnaHQ7Civjq5sgPiBsaWdodDsKK+OrlyA+IHRoaWNrOwor46uVID4gbGlnaHQ7CivjqaEgPiBzaGFrZTsKK++orSA+IGNyYW5lOwor46ibID4gc3dpZnQ7CivjqJcgPiBhbGVydDsKK++ojSA+IHZvbWl0Owor76iLID4gYnJvYWQ7CivvqIMgPiBzdWdhcjsKK+OogyA+IGFcLXJvdzsKK++nuyA+IHJvYXN0Owor76e5ID4gZ3JhaW47Civvp7cgPiBzdGFuZDsKK++nrCA+IGRyb3duOwor76eqID4gbGVhdmU7Civvp50gPiBnYWluczsKK+OnmyA+IHRoaWNrOwor76eXID4gd2hlZWw7Civvp5AgPiBjbGFzczsKK+OnjSA+IGFsaWtlOwor76eLID4gc2xpZGU7Civvpr8gPiBoYXBweTsKK++mvSA+IHVyaW5lOwor46a3ID4gYnJhdmU7Civjpq4gPiBtb25leTsKK++moSA+IHNwZWFrOwor76agID4gc3BsaXQ7CivjpqEgPiBoYXBweTsKK++mnyA+IGZpZXJ5Owor76aZID4gbG90dXM7CivjppggPiBzd2lmdDsKK++mkyA+IHNtZWx0Owor46aRID4gYW5nZXI7CivvpoogPiBwb3dlcjsKK++mgSA+IHdvbWFuOwor46W/ID4gcHJvdWQ7CivjpbcgPiBxdWlldDsKK+OlsiA+IGFuZ2VyOwor76WvID4gc3BlYWs7CivvpaMgPiBub3J0aDsKK++loCA+IGFuZ2VyOwor76WcID4gaGFwcHk7CivjpZMgPiBoYXBweTsKK++ljyA+IHRpcmVkOwor76WNID4gdGVhcnM7CivjpYogPiBhbmdyeTsKK++liCA+IGJyaWJlOwor76WCID4gZ3JhdmU7CivjpYIgPiBxdWljazsKK++kvSA+IGdyZWVuOwor76S7ID4gcm91Z2g7CivvpLogPiBoZXJvbjsKK+OksSA+IGFuZ2VyOwor76SvID4gbGFib3I7CivvpKkgPiBjbGVhcjsKK++koiA+IGZsb29kOwor46SjID4gbm9ibGU7CivjpJwgPiBjcmF6eTsKK++kmSA+IGNyZWFtOwor46SZID4gZ3JhY2U7CivvpJYgPiBicmFuZDsKK++klCA+IGhhcHB5Owor46OyID4gc21hbGw7Civjo58gPiB0b1wtZ287Civjo48gPiBzdGlsbDsKK+OjiSA+IGxhYm9yOwor46KbID4gc21hbGw7CivjopkgPiBhXC1odXQ7CivjobYgPiBkd2VsbDsKK+OhtCA+IHNvdW5kOwor46GVID4gc2hhcnA7CivjoZAgPiBmbGFnczsKK+OhjCA+IGFcLWhhdDsKK+OhhyA+IGNvbGFyOwor46GEID4gY29sYXI7CivjoKogPiBncmVhdDsKK+OglSA+IGxvZnR5Owor46CNID4gbG9mdHk7Civjn7UgPiByaWRnZTsKK+OfriA+IGxvZnR5Owor45+gID4gcmlkZ2U7Civjn4UgPiBsb2Z0eTsKK+OfgSA+IHNob3JlOwor456+ID4gYVwtbnVuOwor456ZID4gdXJpbmU7CivjnpUgPiBjaGlwczsKK+OekiA+IGx1c3R5Owor456PID4gc21hbGw7CivjnoMgPiB0aXJlZDsKK+OdvSA+IHNob3J0Owor4526ID4gc21hbGw7CivjnaQgPiBuaWdodDsKK+OdoyA+IHN0aWxsOwor452cID4gbmlnaHQ7CivjnZYgPiByaWdodDsKK+OdlSA+IHBlYWNlOwor452PID4gYWxvbmU7CivjnYcgPiBxdWFpbDsKK+OcvSA+IGNoaWxkOwor45ynID4gcGx1bXA7CivjnJwgPiBwcm91ZDsKK+ObqCA+IGNoYW9zOwor45uaID4gZXF1YWw7Civjm4MgPiBjbGVhbjsKK+ObgSA+IHF1aWNrOwor45quID4gaGFwcHk7CivjmpUgPiBncmVhdDsKK+OagCA+IGxvZnR5Owor45mvID4gc2tpbGw7CivjmaUgPiBtdWRkeTsKK+OZkyA+IGVhcnRoOwor45mEID4gYmVsb3c7CivjmIsgPiBzb3VuZDsKK+OXhSA+IGFuZ3J5Owor45akID4gd3JhdGg7CivjlpQgPiBzaWxseTsKK+OWjyA+IGFuZ3J5Owor45aAID4gc291bmQ7CivjlbMgPiBub2lzeTsKK+OVliA+IHBsYWluOwor45WOID4gY2F2ZXM7CivjlYEgPiBzdGlsbDsKK+OUuyA+IGdyZWF0Owor45O7ID4gdG91Z2g7Civjk50gPiBhXC1sYXc7Civjk5wgPiB5b3VuZzsKK+OTmyA+IG1lcml0Owor45OZID4gY3J1ZWw7Civjk5cgPiBjbGVhbjsKK+OTgSA+IGFcLW5ldDsKK+OSqSA+IG5ha2VkOwor45KMID4gYWxvbmc7CivjkbYgPiBhbmdlcjsKK+ORqSA+IHNtYXJ0Owor45GoID4gZ3JlYXQ7CivjkaYgPiBhbmdlcjsKK+ORlyA+IGFcLWdvZDsKK+ORiyA+IHNtYWxsOwor45GBID4gc2hvcnQ7CivjkLEgPiBidXNoeTsKK+OQqyA+IGNydWVsOwor5pyJID4gaGF2ZTsKK+efpSA+IGtub3c7Civov5kgPiB0aGlzOwor55+cID4gcGl0eTsKK+W/mSA+IGJ1c3k7CivmnaUgPiBjb21lOwor6L+RID4gbmVhcjsKK+mBkyA+IHBhdGg7CivkuZ8gPiBhbHNvOwor5pe2ID4gdGltZTsKK+W5tCA+IHllYXI7CivnnrsgPiBsb29rOwor6L66ID4gZWRnZTsKK+WwsSA+IGp1c3Q7CivpgqMgPiB0aGF0Owor55SfID4gbGlmZTsKK+iHqiA+IHNlbGY7CivnnqwgPiB3aW5rOwor6L+HID4gcGFzczsKK+W+qiA+IG9iZXk7Civlvp4gPiBmcm9tOwor5b6TID4gZnJvbTsKK+WkmiA+IG11Y2g7Civlpb0gPiBnb29kOwor5b28ID4gdGhhdDsKK+i1tyA+IHJpc2U7Civlj6ogPiBvbmx5Owor5L2cID4gbWFrZTsKK+W9kyA+IGJlYXI7CivlvaIgPiBmb3JtOwor55yLID4gbG9vazsKK+W8gCA+IG9wZW47CivmiYsgPiBoYW5kOwor5byxID4gd2VhazsKK+acrCA+IHJvb3Q7CivlpLQgPiBoZWFkOwor55yfID4gcmVhbDsKK+mdoiA+IGZhY2U7CivlhawgPiBmYWlyOwor5ZCMID4gc2FtZTsKK+ecniA+IHJlYWw7Civku44gPiBmcm9tOwor5YqoID4gbW92ZTsKK+mVvyA+IGxvbmc7CivovIkgPiBsb2FkOwor5bCGID4gd2lsbDsKK+S9hiA+IG9ubHk7CivouqsgPiBib2R5Owor6auYID4gaGlnaDsKK+aKiiA+IGhvbGQ7CivmraQgPiB0aGlzOwor5a6eID4gcmVhbDsKK+ebpSA+IHdhc2g7CivmnIggPiBtb29uOwor56eNID4gc2VlZDsKK+i7jSA+IGFybXk7Civou4ogPiBjYXJ0Owor5bexID4gc2VsZjsKK+mDqCA+IHBhcnQ7CivlkI0gPiBuYW1lOwor55quID4gc2tpbjsKK+acuiA+IGRlc2s7Civnu5kgPiBnaXZlOwor562JID4gcmFuazsKK+W6pyA+IHNlYXQ7CivlvoggPiB2ZXJ5Owor5pyAID4gbW9zdDsKK+W6lyA+IHNob3A7Civouo0gPiBza2lwOwor6LWwID4gd2FsazsKK+WbmyA+IGZvdXI7Civpl6ggPiBnYXRlOwor5LicID4gZWFzdDsKK+W6gSA+IGhhbGw7Civopb8gPiB3ZXN0Owor5bmzID4gZmxhdDsKK+eZuyA+IHJpc2U7CivlkKwgPiBoZWFyOwor5bm4ID4gbHVjazsKK+i5tCA+IGtpY2s7CivlhpsgPiBhcm15Owor5LqUID4gZml2ZTsKK+W4tyA+IHRlbnQ7CivlpKogPiB2ZXJ5Owor5bi2ID4gYmVsdDsKK+W4syA+IHRlbnQ7CivluK8gPiBiZWx0Owor5L2TID4gYm9keTsKK+W4rSA+IHNlYXQ7CivluIwgPiByYXJlOwor6LiKID4gbGVhcDsKK+S5piA+IGJvb2s7CivkuZ0gPiBuaW5lOwor6LezID4ganVtcDsKK+i3ryA+IHJvYWQ7Civlkb0gPiBsaWZlOwor55epID4gdGhpbjsKK+a0uyA+IGxpdmU7Civlt6YgPiBsZWZ0Owor5bejID4gbmVzdDsKK+ihqCA+IHNob3c7Civot58gPiBoZWVsOwor6L2mID4gY2FydDsKK+eXmyA+IHBhaW47Civnl5UgPiBzY2FyOwor55eSID4gaXRjaDsKK+aEnyA+IGZlZWw7CivotrMgPiBmb290Owor6YeRID4gZ29sZDsKK+S9lSA+IHdoYXQ7Civltq4gPiBoaWdoOwor5pu0ID4gbW9yZTsKK+eWiyA+IHJvbGw7CivlgZogPiB3b3JrOwor6K6hID4gcGxhbjsKK+eVtiA+IGJlYXI7CivnjosgPiBraW5nOwor5ZCEID4gZWFjaDsKK+eVmSA+IHN0b3A7CivnlY8gPiBmZWFyOwor6L65ID4gZWRnZTsKK+eUtyA+IG1hbGU7Civpo44gPiB3aW5kOwor5bSXID4gcG9zdDsKK+avmyA+IGhhaXI7Civls7AgPiBwZWFrOwor54ixID4gbG92ZTsKK+eTpiA+IHRpbGU7Civos6MgPiBzZWxsOwor6LODID4gcmVudDsKK+iyuCA+IGxlbmQ7CivlsrggPiBiYW5rOwor57uTID4ga25vdDsKK+WyrCA+IGNhcGU7CivmtYEgPiBmbG93Owor6LKnID4gcG9vcjsKK+mdkiA+IGJsdWU7CivnrqEgPiBwaXBlOwor6LKgID4gbG9hZDsKK+i/niA+IGpvaW47CivpmJ8gPiB0ZWFtOwor5bimID4gYmVsdDsKK+WxlSA+IG9wZW47CivlsZEgPiBiaXRzOwor6aKGID4gbmVjazsKK+WxiCA+IGJlbmQ7CivlsYUgPiBsaXZlOwor5bC+ID4gdGFpbDsKK+WNiiA+IGhhbGY7CivlgJkgPiB3YWl0Owor5q2lID4gc3RlcDsKK+a3sSA+IGRlZXA7CivljLogPiBhcmVhOwor5bCLID4gc2VlazsKK+axgiA+IHNlZWs7CivnkIMgPiBiYWxsOwor5ZGKID4gdGVsbDsKK+WvuCA+IGluY2g7Civlr6YgPiByZWFsOwor5ruhID4gZmlsbDsKK+adjiA+IHBsdW07Civmga8gPiByZXN0Owor5a+SID4gY29sZDsKK+WvhCA+IHNlbmQ7CivohLggPiBmYWNlOwor5a6/ID4gc3RvcDsKK+WPliA+IHRha2U7CivlrqQgPiByb29tOwor5a6fID4gcmVhbDsKK+WumyA+IHNlZW07CivlrakgPiBiYWJ5Owor5bm/ID4gd2lkZTsKK+eOiSA+IGphZGU7CivnjoQgPiBkZWVwOwor54GrID4gZmlyZTsKK+iugCA+IHJlYWQ7Civorb0gPiBmYW1lOwor5YiZID4gcnVsZTsKK+mmliA+IGhlYWQ7CivlpLEgPiBsb3NlOwor5ou/ID4gdGFrZTsKK+aWryA+IHRoaXM7Civor7sgPiByZWFkOwor5YyFID4gd3JhcDsKK+eMtiA+IGxpa2U7CivokL0gPiBmYWxsOwor5rWOID4gaGVscDsKK+WWnCA+IGxpa2U7CivorKEgPiBzaW5nOwor57yWID4ga25pdDsKK+iwiCA+IHRhbGs7Civmi4kgPiBwdWxsOwor6KyAID4gcGxhbjsKK+eLvCA+IHdvbGY7CivmnYAgPiBraWxsOwor5qC5ID4gcm9vdDsKK+WrjCA+IGhhdGU7Civoq4cgPiB0YWxrOwor5YWLID4gZ3JhbTsKK+eKtiA+IGZvcm07CivnpLogPiBzaG93Owor5YayID4gc29hcjsKK+iqrSA+IHJlYWQ7CivoqokgPiBmYW1lOwor5o6oID4gcHVzaDsKK+ensCA+IGNhbGw7CivoqaYgPiB0ZXN0Owor5Y+3ID4gbWFyazsKK+S6miA+IGFzaWE7CivmuK8gPiBwb3J0Owor6IisID4gc29ydDsKK+eIqiA+IGNsYXc7CivliJogPiBoYXJkOwor6ZmGID4gbGFuZDsKK+ehriA+IHN1cmU7CivoqIggPiBwbGFuOwor5YW3ID4gdG9vbDsKK+WogSA+IHBvbXA7CivluK4gPiBoZWxwOwor57q/ID4gbGluZTsKK+inpiA+IGJ1dHQ7Civop5IgPiBob3JuOwor54eSID4gYnVybjsKK+iKgiA+IGtub3Q7Civnh4MgPiBidXJuOwor5bKBID4geWVhcjsKK+WmuyA+IHdpZmU7CivpnIAgPiBuZWVkOwor6YWSID4gd2luZTsKK+mTgSA+IGlyb247CivoppcgPiBwZWVrOwor6Ze7ID4gaGVhcjsKK+aghyA+IG1hcms7CivljLsgPiBjdXJlOwor6KWyID4gcmFpZDsKK+eFriA+IGNvb2s7CivlnJ8gPiBzb2lsOwor6L2vID4gc29mdDsKK+eFpCA+IGNvYWw7Civku4UgPiBvbmx5Owor5aWXID4gY2FzZTsKK+aItyA+IGRvb3I7CivnhLwgPiBidXJuOwor6aG5ID4gbmVjazsKK+iDjCA+IGJhY2s7CivnhJogPiBidXJuOwor5pqXID4gZGFyazsKK+mhuyA+IG11c3Q7Civoo70gPiBtYWtlOwor6KO4ID4gYmFyZTsKK+WjsiA+IHNlbGw7CivmoJEgPiB0cmVlOwor5rKJID4gc2luazsKK+iBjCA+IGR1dHk7Civnu4YgPiBmaW5lOwor6KOcID4gbWVuZDsKK+WBnCA+IHN0b3A7CivliqkgPiBoZWxwOwor5Ya3ID4gY29sZDsKK+WiriA+IGZhbGw7Civoh7QgPiBzZW5kOwor5pyoID4gdHJlZTsKK+iioiA+IHJvYmU7Civml4EgPiBzaWRlOwor54KKID4gY29vazsKK+eBvCA+IGJ1cm47CivlobUgPiBkdXN0Owor5aGpID4gc2FsdDsKK+atjCA+IHNvbmc7CivloIIgPiBoYWxsOwor6K+VID4gdGVzdDsKK+eBjCA+IHBvdXI7CivpqowgPiB0ZXN0Owor5aGAID4gd2FsbDsKK+atoiA+IHN0b3A7CivloLUgPiB3YWxsOwor5aCkID4gZGlrZTsKK+WglSA+IGZhbGw7CivmgbYgPiBldmlsOwor5aCGID4gaGVhcDsKK+aFoiA+IHNsb3c7CivloIUgPiBoYXJkOwor5aCAID4gY2F2ZTsKK+ifuyA+IGFudHM7Civol48gPiBoaWRlOwor6LSfID4gbG9hZDsKK+WfiyA+IGJ1cnk7CivmvrkgPiBjYWxtOwor5Z6iID4gZGlydDsKK+iejSA+IG1lbHQ7Civmva4gPiB0aWRlOwor5Z2mID4gZmxhdDsKK+a9nCA+IGhpZGU7CivmlZEgPiBzYXZlOwor5LidID4gc2lsazsKK+m9iiA+IGV2ZW47CivpvLsgPiBub3NlOwor5rysID4gc29hazsKK+m8kyA+IGRydW07CivmsLggPiBsb25nOwor5ryPID4gbGVhazsKK+W9lSA+IGNvcHk7CivpgYcgPiBtZWV0Owor5ru/ID4gZmlsbDsKK+iIuSA+IHNoaXA7Civpu7QgPiBtb2xkOwor5ru0ID4gZHJpcDsKK+mbqCA+IHJhaW47Civom5kgPiBmcm9nOwor5ruRID4gc2xpcDsKK+m6uyA+IGhlbXA7CivomqQgPiBmbGVhOwor6b2QID4gZXZlbjsKK+a6liA+IHJ1bGU7CivmuowgPiBwb3VyOwor5YWFID4gZmlsbDsKK+m5vyA+IGRlZXI7Civlr7sgPiBzZWVrOwor5a6BID4gY2FsbTsKK+m5vSA+IHNhbHQ7CivmspkgPiBzYW5kOwor5Y2WID4gc2VsbDsKK+mhuiA+IG9iZXk7CivomZ8gPiBtYXJrOwor5ZaEID4gZ29vZDsKK+WZmyA+IGJpdGU7Civoia8gPiBnb29kOwor5Z2aID4gaGFyZDsKK+WZgiA+IG1lZXQ7Civmi40gPiBjbGFwOwor5o6JID4gdHVybjsKK+a4iCA+IGhlbHA7Civlk60gPiB3ZWVwOwor5ZiGID4gc2lnaDsKK+WNiCA+IG5vb247CivljaEgPiBjYXJkOwor6ZuqID4gc25vdzsKK+a3tSA+IGd1bGY7Civmt6EgPiB3ZWFrOwor5ZefID4gc2lnaDsKK+a3kSA+IGdvb2Q7Civol40gPiBibHVlOwor5reLID4gZHJpcDsKK+a2vCA+IGNvb2w7Civovb0gPiBsb2FkOwor5Yi6ID4gc3RhYjsKK+iWqiA+IGZ1ZWw7CivplIAgPiBtZWx0Owor6bG8ID4gZmlzaDsKK+WWmiA+IGNhbGw7CivllpggPiBwYW50Owor55uYID4gdHJheTsKK+iWlCA+IHJvc2U7CivllocgPiBob3JuOwor6JaEID4gdGhpbjsKK+WVvCA+IHdlZXA7CivmnrYgPiByYWNrOwor5rW4ID4gc29hazsKK+asviA+IGl0ZW07CivmtaogPiB3YXZlOwor6JWpID4gcG9uZDsKK+a0qiA+IHZhc3Q7CivplYcgPiB0b3duOwor5rWEID4gcHVyZTsKK+aXhSA+IHRyaXA7CivllL4gPiBzcGl0Owor5ZSxID4gc2luZzsKK+iUtSA+IGhpZGU7CivllK8gPiBvbmx5Owor5rSpID4gbGVhazsKK+a0niA+IGNhdmU7CivpqqggPiBib25lOwor5rSXID4gd2FzaDsKK+WUliA+IGR1bWI7CivptIkgPiBjcm93Owor5ZSHID4gbGlwczsKK+azsyA+IGRpdmU7Civlk7IgPiB3aXNlOwor5ZOpID4gbWlsZTsKK+WimSA+IHdhbGw7CivlnKMgPiBob2x5Owor6bOlID4gYmlyZDsKK+i3gyA+IHNraXA7CivmmZMgPiBkYXduOwor5rOEID4gbGVhazsKK+makCA+IGhpZGU7CivokrwgPiBibHVlOwor5oGQID4gZmVhcjsKK+ayvCA+IGxha2U7Civku5ggPiBnaXZlOwor5Y6FID4gaGFsbDsKK+WSrCA+IGJpdGU7Civohb8gPiBsZWdzOwor5rKWID4gcG91cjsKK+ehrCA+IGhhcmQ7CivmsoggPiBzaW5rOwor5ZSuID4gc2VsbDsKK+mBlyA+IGxvc2U7CivmjqIgPiBmaW5kOwor6JGsID4gYnVyeTsKK+e8kyA+IHNsb3c7CivokaYgPiByZWVkOwor5rGgID4gcG9vbDsKK+eDpyA+IGJ1cm47CivokYkgPiBsZWFmOwor5p2fID4gYmluZDsKK+WRhiA+IGR1bGw7CivlkLsgPiBraXNzOwor5ZC5ID4gYmxvdzsKK+S8kSA+IHJlc3Q7Civlj7kgPiBzaWdoOwor5rCPID4gY2xhbjsKK+etviA+IHNpZ247CivmsIggPiBmZWx0Owor5aW2ID4gbWlsazsKK+avrCA+IGJhbGw7Civoj6kgPiBoZXJiOwor5Y+iID4gYnVzaDsKK+aMgiA+IGhhbmc7CivoiKogPiBzYWlsOwor5q+YID4gaGVscDsKK+aLsyA+IGZpc3Q7CivkuZggPiByaWRlOwor6KKBID4gcm9iZTsKK+WdgCA+IHNpdGU7Civmr4YgPiBiZWF0Owor5q6/ID4gaGFsbDsKK+auuiA+IGtpbGw7CivmoLggPiBzZWVkOwor6KGlID4gbWVuZDsKK+i1niA+IGhlbHA7CivkuqYgPiBhbHNvOwor5q2zID4geWVhcjsKK+aflCA+IHNvZnQ7CivmrakgPiBzdGVwOwor5oOcID4gcGl0eTsKK+mtmiA+IGZpc2g7CivmrY4gPiBzaWdoOwor6a2CID4gc291bDsKK+S5lCA+IHRhbGw7Civnsq4gPiBmb29kOwor6IyrID4gdmFzdDsKK+iwiyA+IHBsYW47CivmlY8gPiBmYXN0Owor6IyOID4gc3RlbTsKK+mbtiA+IHplcm87CivojaEgPiBwb25kOwor5Yu+ID4gaG9vazsKK+eKuSA+IGxpa2U7Civpq64gPiBoYWlyOwor6auqID4gaGFpcjsKK+S5gyA+IHRoZW47CivmiqwgPiBsaWZ0Owor6auUID4gYm9keTsKK+iLlCA+IG1vc3M7Civli5UgPiBtb3ZlOwor5ZCvID4gb3BlbjsKK+WGkiA+IHJpc2s7CivnqbcgPiBwb29yOwor5qqjID4gbWFzdDsKK+S+pyA+IHNpZGU7Civml6YgPiBkYXduOwor57qvID4gcHVyZTsKK+mXrSA+IHNodXQ7Civlh4kgPiBjb29sOwor56KXID4gYm93bDsKK+WJpSA+IHBlZWw7Civmu5ogPiB0dXJuOwor5ramID4gc29mdDsKK+WJmyA+IGhhcmQ7CivpqZcgPiB0ZXN0Owor5YmHID4gcnVsZTsKK+iTnSA+IGJsdWU7CivmqLkgPiB0cmVlOwor6JuLID4gZWdnczsKK+S/gyA+IHVyZ2U7CivpopwgPiBmYWNlOwor6LSrID4gcG9vcjsKK+adsCA+IGhlcm87CivoiJ8gPiBib2F0Owor6aiTID4gdGVzdDsKK+aBiyA+IGxvdmU7Civov58gPiBsYXRlOwor56m0ID4gY2F2ZTsKK+i1liA+IHJlbHk7Civpp5sgPiBzYWlsOwor6aeSID4gY29sdDsKK+WHjCA+IHB1cmU7CivkuYwgPiBjcm93Owor5bKXID4gcG9zdDsKK+mTuiA+IHNob3A7CivpprQgPiB0YW1lOwor5LyNID4gZml2ZTsKK+i6siA+IGhpZGU7CivnrrEgPiBjYXNlOwor5biQID4gdGVudDsKK+iGnSA+IGtuZWU7CivohpogPiBza2luOwor5oKJID4ga25vdzsKK+WGjCA+IGJvb2s7CivlhoogPiBib29rOwor55uIID4gZmlsbDsKK+aLliA+IGRyYWc7CivmmI8gPiBkdXNrOwor5oiSID4gd2FybjsKK+mhtSA+IHBhZ2U7CivlsJggPiBkdXN0Owor6ISjID4gbGlwczsKK+S6lSA+IHdlbGw7CivmsaogPiB2YXN0Owor6ISHID4gcmliczsKK+iEhSA+IHJpYnM7CivmgbAgPiBqdXN0Owor5qSAID4gYm93bDsKK+aPjyA+IGNvcHk7CivkuY8gPiBsYWNrOwor6IOeID4gd29tYjsKK+ajmiA+IHRlbnQ7CivmgJwgPiBwaXR5Owor5L2zID4gZ29vZDsKK+m4nyA+IGJpcmQ7Civlg4UgPiBvbmx5Owor6aKoID4gd2luZDsKK+aiqCA+IHBlYXI7CivlvK8gPiBiZW5kOwor5LqPID4gbG9zZTsKK+WCkSA+IGhlcm87CivphbggPiB0YXJ0Owor6IG9ID4gaGVhcjsKK+iBtyA+IGR1dHk7CivmobYgPiBwYWlsOwor6IG0ID4gaGVhcjsKK+eYpiA+IHRoaW47CivlgbQgPiBzaWRlOwor57upID4gc3BpbjsKK+iBniA+IGhlYXI7CivogZYgPiBob2x5Owor6aGUID4gZmFjZTsKK+mhjyA+IGZhY2U7CivnibUgPiBkcmFnOwor6aC8ID4gcmVseTsKK+ennyA+IHJlbnQ7CivpoLggPiBuZWNrOwor5omtID4gdHVybjsKK+mgrSA+IGhlYWQ7Civmk6YgPiB3aXBlOwor5q63ID4gbWFueTsKK+mgmiA+IG5lY2s7CivpoJggPiBuZWNrOwor55u8ID4gbG9vazsKK+WQnyA+IHNpbmc7CivogJUgPiBwbG93Owor6IuNID4gYmx1ZTsKK+mghiA+IG9iZXk7CivpoIUgPiBuZWNrOwor5a6PID4gd2lkZTsKK+mggSA+IHBhZ2U7CivlqIMgPiBiYWJ5Owor5pqWID4gd2FybTsKK+mUgSA+IGxvY2s7CivnoI0gPiBoYWNrOwor5L+CID4gYmluZDsKK+aMqCA+IG5lYXI7CivmhYggPiBraW5kOwor5765ID4gc291cDsKK+e+riA+IHNvdXA7Civpnq0gPiB3aGlwOwor576oID4gZW52eTsKK+eqnSA+IG5lc3Q7CivmnZwgPiBzdG9wOwor5pKkID4gb21pdDsKK+S+hiA+IGNvbWU7CivmnbEgPiBlYXN0Owor5625ID4gY2hpcDsKK+eogCA+IHJhcmU7CivmnZYgPiBjYW5lOwor5ouoID4gbW92ZTsKK+i4oiA+IGtpY2s7Civov4EgPiBtb3ZlOwor5L2HID4gd2FpdDsKK+iirSA+IHJhaWQ7CivpqbYgPiBzYWlsOwor6ZywID4gaGFpbDsKK+aDpyA+IGZlYXI7Civnur0gPiBrbm90Owor5LibID4gYnVzaDsKK+aCoCA+IGxvbmc7Civmm7wgPiBsb25nOwor5pu4ID4gYm9vazsKK+e8oCA+IHdyYXA7Civmu4sgPiBncm93Owor56KnID4gamFkZTsKK+WUpCA+IGNhbGw7Civog4EgPiByaWJzOwor6LCxID4gbGlzdDsKK+masSA+IGhpZGU7CivkuJggPiBoaWxsOwor5LqeID4gYXNpYTsKK+e6kiA+IHdyYXA7CivmnYYgPiBwb2xlOwor57qPID4gd3JhcDsKK+maiiA+IHRlYW07CivmgqwgPiBoYW5nOwor6ZqIID4gY292ZTsKK+W0lCA+IGhpZ2g7CivnuoIgPiBlZGl0Owor5ZSJID4gYWxhczsKK+aagSA+IGRhd247CivnrLwgPiBjYWdlOwor6Zm4ID4gbGFuZDsKK+e5qiA+IGRyYXc7CivnuakgPiByb3BlOwor5oWoID4gc2lnaDsKK+S5lyA+IHJpZGU7Civnu7MgPiByb3BlOwor5pmCID4gdGltZTsKK+efvyA+IG1pbmU7CivpgaMgPiBzZW5kOwor6ZWWID4gZGFydDsKK+mBtSA+IG9iZXk7CivlhYYgPiBvbWVuOwor6ZKTID4gZmlzaDsKK+aKqyA+IHdlYXI7CivmmIcgPiByaXNlOwor57iEID4gcm9wZTsKK+aYgiA+IHJpc2U7Civnt6kgPiBzbG93Owor57eoID4ga25pdDsKK+aKhCA+IGNvcHk7CivlgLogPiBkZWJ0Owor6IKkID4gc2tpbjsKK+athyA+IHJlc3Q7CivplosgPiBvcGVuOwor6ZaJID4gc2h1dDsKK+aWiSA+IGV2ZW47CivmloMgPiBraWxsOwor572VID4gcmFyZTsKK+mWgCA+IGdhdGU7CivplbcgPiBsb25nOwor6LS3ID4gbGVuZDsKK+e1tSA+IGRyYXc7CivpooggPiBuZWNrOwor57WyID4gc2lsazsKK+iEliA+IG5lY2s7CivloKEgPiBmb3J0Owor57WoID4gc2lsazsKK+e1piA+IGdpdmU7CivotZAgPiBnaXZlOwor6aKCID4gbGF1ZDsKK+e1kCA+IGtub3Q7CivnoJYgPiB0aWxlOwor57WGID4gbG9vcDsKK+WTkSA+IGR1bWI7CivntLAgPiBmaW5lOwor5rupID4gYmFuazsKK+mSiSA+IG5haWw7Civlk4QgPiBjb2F4Owor6ZODID4gYmVsbDsKK+e0lCA+IHB1cmU7CivntJAgPiBrbm90Owor57SLID4gbGluZTsKK+aLmiA+IHJpc2s7Civns7ggPiBzaWxrOwor57OnID4gZm9vZDsKK+WlkSA+IGRlZWQ7Civmh5IgPiBsYXp5Owor54yOID4gaHVudDsKK+W1qSA+IGhpZ2g7Civnm5AgPiBzYWx0Owor5pG6ID4gZm9sZDsKK+exoCA+IGNhZ2U7CivpmbUgPiBoaWxsOwor6KO5ID4gd3JhcDsKK+e7mCA+IGRyYXc7CivpkLUgPiBpcm9uOwor6ZChID4gaXJvbjsKK+evrSA+IGNhZ2U7Civnr6QgPiBkZWVwOwor5oy9ID4gcHVsbDsKK+eyuSA+IHB1cmU7Civnr4AgPiBrbm90Owor5o6jID4gZHJhZzsKK+aOmyA+IGhhbmc7CivpjpYgPiBsb2NrOwor566LID4gbm90ZTsKK+aNsiA+IGN1cmw7Civms7wgPiBwb3VyOwor56eDID4gYmFsZDsKK+mMsiA+IGNvcHk7Civnu5EgPiBiaW5kOwor6bitID4gZHVjazsKK+aOgCA+IGxpZnQ7CivnurkgPiBsaW5lOwor6LafID4gdGltZTsKK+WQvCA+IHJvYXI7CivnqrogPiBwZWVwOwor56q2ID4gcG9vcjsKK+WPoCA+IHBpbGU7CivllbggPiByb2FyOwor56quID4gcG9vcjsKK+mKkSA+IG1pbGw7CivlqbQgPiBiYWJ5Owor6LqsID4gYm9keTsKK+avmSA+IGtpbGw7CivpgLggPiBmbGVlOwor55C8ID4gamFkZTsKK+mJhCA+IGlyb247CivmjKogPiBtb3ZlOwor5pmMID4gbm9vbjsKK+aIuCA+IGRvb3I7CivpiLQgPiBiZWxsOwor56ixID4gY2FsbDsKK+i0sSA+IG1lYW47CivnqK4gPiBzZWVkOwor6ZKpID4gaG9vazsKK+aIgCA+IGxvdmU7Civmh7wgPiBmZWFyOwor5oe4ID4gaGFuZzsKK+mHoyA+IGZpc2g7Civph5ggPiBuYWlsOwor6bimID4gY3JvdzsKK+eLriA+IGxpb247Civlpq4gPiBtYWlkOwor56a/ID4gYmFsZDsKK+eqkSA+IGtpbG47CivloZggPiBwb25kOwor57qkID4gZmluZTsKK+mGqyA+IGN1cmU7CivmhqkgPiByZXN0Owor5oaQID4gcGl0eTsKK+aGjiA+IGhhdGU7CivnvqEgPiBlbnZ5Owor5oW+ID4gbHVzdDsKK+eltyA+IHByYXk7CivoiIYgPiBjYXJ0Owor56WIID4gcHJheTsKK+WrqSA+IHNvZnQ7CivouYQgPiBob29mOwor5oSbID4gbG92ZTsKK+mEmSA+IG1lYW47Civmg6EgPiBldmlsOwor5rKnID4gYmx1ZTsKK+eiuiA+IHN1cmU7CivmgqogPiBldmlsOwor5biGID4gc2FpbDsKK+a2tSA+IHNvYWs7CivpgoogPiBlZGdlOwor5r6hID4gd2FzaDsKK+mBuiA+IGxvc2U7CivpgbIgPiBsYXRlOwor54OkID4gYmFrZTsKK+WzuyA+IGhpZ2g7CivpgY4gPiBwYXNzOwor6YGLID4gbHVjazsKK+WwrCA+IGxpbXA7CivpgYUgPiBsYXRlOwor6YGBID4gaGlkZTsKK+mAsSA+IHdlZWs7CivkvZEgPiBoZWxwOwor6YCjID4gam9pbjsKK+aAoCA+IGlkbGU7CivpgJkgPiB0aGlzOwor56CCID4gc2FuZDsKK+iDtiA+IGdsdWU7CivosKMgPiBzaW5nOwor5qKzID4gY29tYjsKK+elgSA+IHByYXk7CivllaQgPiBiZWVyOwor6ZO4ID4gbWVsdDsKK+i6ryA+IGJvZHk7Civphb8gPiBicmV3Owor5o2jID4gaHVsbDsKK+eOqyA+IHJvc2U7CivlmaIgPiBtb2FuOwor57q6ID4gc3BpbjsKK+eqnyA+IGhvbGU7CivlhZEgPiBjYXNoOwor5YalID4gZGFyazsKK+inhSA+IHNlZWs7CivmsrggPiBib2lsOwor5omBID4gZmxhdDsKK+ecqCA+IHdpbms7CivnmL4gPiByYXNoOwor6buvID4gZGFyazsKK+WmniA+IGdpcmw7Civkv48gPiBsaWtlOwor5a29ID4gZXZpbDsKK+W8iiA+IGV2aWw7CivlpoMgPiB3aWZlOwor5aOkID4gc29pbDsKK+e/lCA+IHNvYXI7Civlt6kgPiBiaW5kOwor5bicID4gZmxhZzsKK+iVviA+IGJ1ZHM7Civpk4UgPiBsZWFkOwor57uSID4gc2lsazsKK+eqpSA+IHBlZXA7CivplKMgPiBnb25nOwor5pK8ID4gbW92ZTsKK+WXpiA+IHN1Y2s7CivovbQgPiBheGxlOwor5raVID4gdGVhcjsKK+esgyA+IGRlZXA7Civnqo0gPiBob2xlOwor5omzID4gcHVsbDsKK+mBjyA+IHN0b3A7CivlkIYgPiBiYXdsOwor54aUID4gbWVsdDsKK+iBiyA+IGRlYWY7Civli58gPiBsZXZ5Owor55akID4gc2NhcjsKK+iagSA+IGFudHM7Civmgq8gPiBwaXR5Owor54OYID4gYmFrZTsKK+eJnyA+IG1ha2U7CivltK0gPiBoaWdoOwor5beiID4gbmVzdDsKK+ayriA+IHN0b3A7CivmuZsgPiBkZWVwOwor5pmmID4gZGFyazsKK+mpuSA+IGNvbHQ7Civor6sgPiB3YXJuOwor5aKpID4gaGVhcDsKK+W3jSA+IGhpZ2g7CivmlJIgPiBzYXZlOwor57uKID4gbG9vcDsKK+aHiCA+IGlkbGU7CivmrrQgPiBiZWF0Owor55qCID4gc29hcDsKK+ifuSA+IGNyYWI7Civnu7cgPiBiaW5kOwor5Yy/ID4gaGlkZTsKK+WUoCA+IGNoYXQ7Civoi4cgPiByZWVkOwor5ou9ID4gZHJhZzsKK+eDuSA+IGJvaWw7CivllYMgPiBnbmF3Owor576UID4gbGFtYjsKK+mUiCA+IHJ1c3Q7CivkuqIgPiBoaWdoOwor6IKLID4gcmliczsKK+ihsiA+IG1lbmQ7CivmjpAgPiBob2xkOwor5oemID4gd2VhazsKK+iFkyA+IGNhbGY7CivlvbcgPiBsaWtlOwor6aqhID4gbXVsZTsKK+mGhyA+IHJpY2g7Civpqa8gPiB0YW1lOwor57qsID4gd29vZjsKK+eKgSA+IHBsb3c7Civmi68gPiBoZWxwOwor6b6aID4gZ2l2ZTsKK+ibpCA+IGNsYW07CivmiK4gPiBraWxsOwor5q+hID4gZmVsdDsKK+WSgCA+IHN1Y2s7CivlkbEgPiB3YWlsOwor5oiOID4gYXJtczsKK+iUvCA+IGx1c2g7CivojLggPiBzb2Z0Owor56SBID4gcmVlZjsKK+mXqSA+IGJvbHQ7CivmtqQgPiB3YXNoOwor5riNID4gc29hazsKK+i3myA+IGxhbWU7Civon4YgPiBmcm9nOwor5YGMID4gdGh1czsKK+mCkSA+IGFyZWE7CivljL4gPiBmbGF0Owor56y6ID4gbm90ZTsKK+eujSA+IGhvb3A7CivlmawgPiBiaXRlOwor6J+gID4gY29pbDsKK+i1gSA+IHJlbnQ7CivohYwgPiBzYWx0Owor5o6CID4gaGVmdDsKK+mBkCA+IGFmYXI7CivnlKwgPiBwYXRoOwor5YOuID4gcGFnZTsKK+WemyA+IGhlYXA7CivlkKAgPiBiYXJrOwor6Li1ID4gaGVlbDsKK+ibviA+IG1vdGg7CivogJggPiB3ZWVkOwor5pqEID4gd2FybTsKK+iegyA+IGNyYWI7CivllZUgPiB3YWlsOwor6J++ID4gdG9hZDsKK+etjyA+IHJhZnQ7Civnsb0gPiBzZWVkOwor54qKID4gY2FsZjsKK+eFpiA+IGtpbmQ7Civoh4ogPiByYW5rOwor5pKsID4gbGlmdDsKK+avlyA+IGhlbHA7Civoub8gPiBsZWFwOwor5ZKGID4gcm9hcjsKK+mypCA+IGNhcnA7CivovpUgPiBheGxlOwor54CaID4gdmFzdDsKK+iKiyA+IHRhcm87Civpm7kgPiBoYWlsOwor6bmqID4gd3JlbjsKK+mqvCA+IGJvbmU7CivojpggPiBsb25nOwor6LCnID4gY2FsbTsKK+iclSA+IG1vbHQ7CivnhIogPiB3ZWxkOwor6ICZID4gcmFrZTsKK+e8hCA+IHNlYWw7CivmvKkgPiBlZGR5Owor6aW1ID4gYmFpdDsKK+i+jSA+IHN0b3A7CivosJEgPiBqZWVyOwor5oGBID4gdGhhdDsKK+WCqSA+IHJpY2g7CivnmKAgPiB0aGluOwor5bWYID4gaGlnaDsKK+WzpSA+IGhpZ2g7CivpkoUgPiBnb2xkOwor5rmuID4gYnVyeTsKK+mijyA+IGNoaW47Civpk44gPiBiZWxsOwor6JS3ID4gcm9zZTsKK+ixuiA+IHdvbGY7CivnhqggPiBpcm9uOwor5ZG3ID4gc3VjazsKK+mXsyA+IGdhdGU7Civoiq4gPiB0aW55Owor6ZmoID4gZmFsbDsKK+eSqCA+IGdlbXM7Civms7UgPiBwdW1wOwor57+xID4gc29hcjsKK+aIlSA+IGtpbGw7CivojpMgPiBtb3NzOwor6LGMID4gcGVhczsKK+WgkSA+IG1vYXQ7CivmvbwgPiBoaWdoOwor55a1ID4gZmxhdzsKK+i/pCA+IHdpbmQ7CivmgLUgPiBmZWFyOwor5qaIID4gcGFsbTsKK+WEhiA+IHdhcm47Civll6UgPiByb2FyOwor56S0ID4gZmlsbDsKK+msgyA+IG1hbmU7CivlspAgPiBoaWdoOwor5ZW7ID4gb25seTsKK+WSnSA+IGhpc3M7Civmj4QgPiBsaWZ0Owor5r24ID4gd2VlcDsKK+iutCA+IHNpbmc7CivotoQgPiB3ZWFrOwor6YKLID4gcmFnczsKK+iDpCA+IGhlaXI7CivmoIkgPiBjb21iOwor57KVID4gbGVlczsKK+milCA+IGNoaW47Civlla4gPiBiaXRlOwor6L2yID4gYXhsZTsKK+WtsSA+IHdlYWs7CivmjJ4gPiBmbG9nOwor6ZWrID4gbGFtcDsKK+iHpyA+IGdvb2Q7CivpuZwgPiBkdWNrOwor5piVID4gZGF3bjsKK+mUtyA+IGhpZ2g7Civpk4QgPiBtZWx0Owor6L62ID4gd2FsazsKK+mYhCA+IGxvdHM7CivplIwgPiB6aW5jOwor6I27ID4gcmVlZDsKK+WWmSA+IGJlYWs7CivonI0gPiB0b2FkOwor57yiID4gaGFuZzsKK+afoiA+IHJvb3Q7CivnqqAgPiBuZXN0Owor6IKbID4gYW51czsKK+iqiiA+IGNvcHk7Civot44gPiBzbGlwOwor6IGpID4gZGVhZjsKK+eXgiA+IHNjYWI7CivpuKIgPiBraXRlOwor5oq7ID4gcHVsbDsKK+aypCA+IHNvYWs7Civmtr8gPiBkcmlwOwor54mmID4gdGFpbDsKK+eMtyA+IHBsYW47CivlookgPiB3YWxsOwor5pq5ID4gcmlzZTsKK+mXsSA+IGdhdGU7Civova0gPiB5b2tlOwor5bytID4gc3RvcDsKK+a0tSA+IHRydWU7Civnk68gPiBib3dsOwor5r+gID4gbW9hdDsKK+WcqSA+IGRpa2U7CivnvrggPiB3ZWFrOwor55mvID4gdGhpbjsKK+eYoiA+IHNjYXI7CivluYQgPiB0ZW50Owor5rOFID4gc3dpbTsKK+efviA+IGFsdW07CivomqkgPiB3b3JtOwor6bi3ID4gaGF3azsKK+i5hyA+IGxhbWU7CivogIsgPiBhZ2VkOwor6IuSID4gbHVzaDsKK+mAiyA+IGZsZWU7Civol5MgPiBtb3NzOwor6ay7ID4gc2VsbDsKK+azqyA+IHdlZXA7Civlla0gPiBzaW5nOwor5Z2oID4gbHVtcDsKK+iguSA+IG1vdGg7CivnlrEgPiBhY25lOwor6ZSSID4gbG9jazsKK+aanSA+IGRhcms7CivnhYogPiB3YXJtOwor54ioID4gb3ZlbjsKK+WbnSA+IGJhYnk7CivlnqkgPiBob2x5Owor5oC8ID4gaGF0ZTsKK+W0tCA+IGhpZ2g7Civmi4ogPiBzbGFwOwor5omMID4gaGFuZDsKK+mSpCA+IGxvY2s7CivmqK8gPiBtYXN0Owor6aqfID4gZ2VsZDsKK+eHuSA+IGZpcmU7CivpppAgPiBmb29kOwor5Zy5ID4gdG9tYjsKK+m+iCA+IGd1bXM7CivonIogPiBjbGFtOwor55eWID4gZHVtYjsKK+athiA+IGxpa2U7CivotYkgPiBnaXZlOwor6ZOjID4gbWlsbDsKK+eBjyA+IHZhc3Q7CivnmJkgPiBpdGNoOwor6Ze8ID4gZG9vcjsKK+WdjCA+IGR1c3Q7CivmpKQgPiB0cmVlOwor6ZiLID4gZmV1ZDsKK+W1ryA+IGhpZ2g7CivphbAgPiBhY3lsOwor55iXID4gYnVyeTsKK+eWoyA+IHdhcnQ7CivnqZEgPiBmYXJtOwor5qeOID4gcmFmdDsKK+ahtCA+IHJhZnQ7Civmuo8gPiBwb29sOwor56S7ID4gY3VsdDsKK+ajsCA+IGZsb2c7Civni7cgPiByYXNoOwor6JK5ID4gcmVlZDsKK+S9pCA+IGthd2E7CivpurggPiBicmFuOwor6bixID4ga2l0ZTsKK+e8qyA+IGRyYXc7CivnuqEgPiBiZW5kOwor5bWsID4gaGlnaDsKK+iPliA+IGlyaXM7CivmhI0gPiBwaXR5Owor5auxID4gbGFkeTsKK+iOqCA+IGhlcmI7CivosJ0gPiBicmFnOwor5rCWID4gbmVvbjsKK+mimyA+IGdvb2Q7Civnh6AgPiB3YXJtOwor5r20ID4gcG9uZDsKK+WgmSA+IGJ1cnk7CivpmpcgPiBoaWdoOwor5Li/ID4gbGluZTsKK+myriA+IGNhcnA7Civot5YgPiBzb2xlOwor6JqLID4gZ25hdDsKK+axlCA+IG5lYXI7Civnl6QgPiBhY25lOwor6LS2ID4gZ2l2ZTsKK+e6nyA+IHNpbGs7CivkvpEgPiBoZWxwOwor6ICqID4gcGxvdzsKK+innCA+IGJlYWs7CivnraIgPiByYWtlOwor5pyQID4gd2FybTsKK+inhyA+IHBlZWs7CivmqpcgPiB0cmVlOwor6I+hID4gYnVkczsKK+WBviA+IHJ1aW47CivpmrkgPiBiaXJkOwor6IihID4gYm9hdDsKK+eWkiA+IHNpY2s7CivlmY0gPiBjaGV3Owor5Z+dID4gYmFuazsKK+myqSA+IGNhcnA7CivpspIgPiBjbGFtOwor6KWeID4gZm9sZDsKK+eBrCA+IGZpcmU7CivohJIgPiBvcGVuOwor5p+ZID4gY2FnZTsKK+a5lCA+IHdhc2g7CivmtLMgPiBkYW1wOwor5bCiID4gd2VhazsKK+mrnyA+IGhhaXI7Civps44gPiBzb2xlOwor6ImaID4gc2hpcDsKK+m5qSA+IHdyZW47CivngrEgPiBzb290Owor6IaqID4gcG9yazsKK+agiiA+IGNhZ2U7Civnu7IgPiBjb3JkOwor5a6AID4gcm9vZjsKK+mXtiA+IGRvb3I7CivnjIogPiBsaW9uOwor5bK1ID4gaGlsbDsKK+WNqSA+IHNlYWw7Civor44gPiBiZW5kOwor5YCuID4gYmFyZTsKK+m+lCA+IGdpdmU7Civpva4gPiBiaXRlOwor6b2nID4gYml0ZTsKK+m9piA+IGd1bXM7CivpvZcgPiBndW1zOwor6b2VID4gZ25hdzsKK+m8myA+IGRydW07CivpvJYgPiBkcnVtOwor6bu2ID4gbW9sZTsKK+m6qSA+IGJyYW47CivpupsgPiBmYXduOwor6bqaID4gYnVjazsKK+m6kSA+IGZhd247CivpuowgPiBzdGFnOwor6bqDID4gdGlsbDsKK+m5jiA+IGJpcmQ7CivpuYYgPiBteW5hOwor6bevID4gd3JlbjsKK+m3piA+IHdyZW47Civpt5kgPiBoYXdrOwor6beVID4gY2FsbDsKK+m2sSA+IHNvYXI7CivptqkgPiBkdWNrOwor6baDID4gaGF3azsKK+m2giA+IGhhd2s7Civpta8gPiBiaXJkOwor6bWEID4ga2l0ZTsKK+m0qCA+IGR1Y2s7CivptJ8gPiBraXRlOwor6bSEID4gZHVjazsKK+mztyA+IGJpcmQ7Civps7YgPiBraXRlOwor6bOLID4gY2FycDsKK+myvCA+IGZpc2g7CivpsosgPiBjYXJwOwor6bKGID4gc29sZTsKK+mwqCA+IHNvbGU7Civpr6ogPiBjYXJwOwor6a+JID4gY2FycDsKK+mviCA+IGZpc2g7Civpr4cgPiBjYXJwOwor6a6aID4gY2xhbTsKK+mukiA+IGNhcnA7CivproYgPiBmaXNoOwor6a2LID4gYmVhcjsKK+msriA+IGxvdHM7CivprKkgPiBmZXVkOwor6ayRID4gbG9uZzsKK+mrniA+IGhpZ2g7CivpqZggPiBtdWxlOwor6ai+ID4gbXVsZTsKK+mouCA+IGdlbGQ7CivpqK8gPiBsb3VkOwor6aijID4gbWFuZTsKK+mnvSA+IGdyZXk7Civpp7QgPiBkcnVtOwor6aWMID4gZmVlZDsKK+mliCA+IGZvb2Q7CivppIwgPiBiYWl0Owor6aSHID4gZm9vZDsKK+mjoSA+IG1lYWw7Civpo4wgPiB3aW5kOwor6aK/ID4gc2FpbDsKK+miuiA+IHNvYXI7CivpoZMgPiBnb29kOwor6aC3ID4gY2hpbjsKK+mgriA+IHdhc2g7CivpoKYgPiBjaGluOwor6aCMID4gbGF1ZDsKK+mgiCA+IG11c3Q7CivpnrkgPiBza2luOwor6Z6fID4gc2tpbjsKK+memSA+IGZpbmU7Civpno8gPiBiaW5kOwor6Z6JID4gZHJ1bTsKK+megCA+IGRydW07CivpnZEgPiBibHVlOwor6ZykID4gZHJpcDsKK+mcoyA+IGZhbGw7CivpnKIgPiBkdXN0Owor6ZqVID4gZmFsbDsKK+mahCA+IGRpa2U7CivpmKQgPiBoaWxsOwor6ZieID4gdmVpbjsKK+mXpSA+IGRvb3I7Civpl6IgPiBvcGVuOwor6ZeTID4gb3BlbjsKK+mXiCA+IGdhdGU7Civpl4YgPiBib3NzOwor6ZafID4gaGlkZTsKK+mWjiA+IGdhdGU7CivplowgPiBkb29yOwor6ZaHID4gc2h1dDsKK+mWgiA+IGJvbHQ7CivplbggPiBsb25nOwor6ZWpID4gcGljazsKK+mVlSA+IGZ1c2U7Civpk7QgPiBnb25nOwor6ZG8ID4gZ29uZzsKK+mRoiA+IGZpbGU7CivpkaAgPiBtZWx0Owor6ZGbID4gbWluZTsKK+mRhCA+IG1lbHQ7CivpkLggPiBiZWxsOwor6ZCpID4gbGVuczsKK+mQmSA+IGxhbXA7CivpkIsgPiBnb25nOwor6ZCEID4gYmVsbDsKK+mPvSA+IHJ1c3Q7Civpj7AgPiBjb2luOwor6Y+lID4gcnVzdDsKK+mPoiA+IGRhcnQ7CivpjrsgPiBsb2NrOwor6Y6uID4gdG93bjsKK+mOrSA+IHRvd247CivpjpQgPiBmdXNlOwor6Y2UID4gaGlnaDsKK+mMhCA+IGNvcHk7Civpi7MgPiBtZWx0Owor6YuaID4gaXJvbjsKK+mLhiA+IGdvbGQ7CivpirkgPiBydXN0Owor6Yq3ID4gbWVsdDsKK+mKlSA+IGlyb247CivpibEgPiBtaW5lOwor6YmkID4gaG9vazsKK+mIrCA+IGJlbGw7CivpiJAgPiBsb2NrOwor6YiOID4gaG9vazsKK+mIhiA+IGxlYWQ7Civph4AgPiBicmV3Owor6Ya4ID4gYnJldzsKK+mEkSA+IGtpY2s7CivpgokgPiBlZGdlOwor6YG7ID4gbWVldDsKK+mBtyA+IG1vdmU7CivpgZ8gPiBsYXRlOwor6L+6ID4gdGhlbjsKK+i/miA+IHZlcnk7Civov4YgPiB3aW5kOwor6L61ID4gd2FsazsKK+i9nSA+IGVudnk7CivovZcgPiBmYWlsOwor6L2MID4gc2xlZDsKK+i9hSA+IGF4bGU7CivovL8gPiBjYXJ0Owor6Ly0ID4gc2xlZDsKK+i8nyA+IHN0b3A7Civou7sgPiBheGxlOwor6Lu4ID4gYXhsZTsKK+i7pSA+IHlva2U7Civou58gPiBzb2Z0Owor6LubID4geW9rZTsKK+i7hiA+IGJvZHk7Civou4AgPiBib2R5Owor6Lq/ID4gdGFsbDsKK+i6tiA+IGJhcmU7CivourQgPiB0YWxsOwor6LqzID4gYm9keTsKK+i6sSA+IGhpZGU7CivourAgPiBib2R5Owor6LqlID4gbGVhcDsKK+i6kiA+IHdhbGs7CivouaIgPiBob29mOwor6LmPID4gaG9vZjsKK+i4tCA+IGxlYXA7CivouK0gPiBoZWVsOwor6LiYID4gYmFsbDsKK+i3vCA+IGJlbnQ7Civot7IgPiBob29kOwor6LexID4gc3RvcDsKK+i3niA+IHdhbGs7Civot5kgPiB3ZWFrOwor6LavID4ganVtcDsKK+i1sSA+IHdhbGs7CivotZUgPiBmaW5lOwor6LSKID4gaGVscDsKK+iztSA+IGdpZnQ7Civos7QgPiByZWx5Owor6LOnID4gZmluZTsKK+izpCA+IG1lYW47Civos5wgPiBnaXZlOwor6LObID4gaGVscDsKK+izmiA+IGdpdmU7Civos44gPiBtZWFuOwor6LK6ID4gZ2l2ZTsKK+iyjiA+IGxpb247Civosa0gPiBib2FyOwor6K6LID4gZmVhcjsKK+isoCA+IHNpbmc7CivorJQgPiBqZWVyOwor6KyQID4gY2FsbTsKK+ishCA+IGNvcHk7Civoq54gPiBicmFnOwor6KqnID4gaHVnZTsKK+iqoSA+IHdhcm47CivoqoMgPiBwYXJ0Owor6KmgID4gc2luZzsKK+ipnyA+IGZlYXI7CivoqZggPiBiZW5kOwor6KedID4gZ29yZTsKK+immCA+IHBlZWs7CivoppMgPiBzZWVrOwor6KK/ID4gZ293bjsKK+ihuSA+IG9ubHk7CivooZogPiBsYW5lOwor6KGWID4gbGFuZTsKK+ihkiA+IGJyYWc7CivooK0gPiBiZWVzOwor6KCnID4gbW90aDsKK+igjyA+IGNyYWI7Civon4cgPiBmcm9nOwor6J6JID4gd2FzcDsKK+icuSA+IGduYXQ7CivonIUgPiBjcmFiOwor6Ju7ID4gbW9sdDsKK+iaoSA+IG1vbGU7CivombcgPiB3b3JtOwor6JmnID4gbG9zZTsKK+iZkyA+IHJvYXI7CivomJogPiBtb3NzOwor6JiSID4gXDoxNDM7Civol7kgPiBsdXNoOwor6JefID4gdmluZTsKK+iXhyA+IGZpbmU7Civolp8gPiB2aW5lOwor6JaZID4gd2VlZDsKK+iWgSA+IHZpbmU7CivolZggPiBmdWVsOwor6JS0ID4gaGVtcDsKK+iTqyA+IGRvY2s7CivokZIgPiBoZXJiOwor6JCcID4gYzVoODsKK+iPviA+IGJlZXQ7CivojrsgPiBsYXRlOwor6I62ID4gdmluZTsKK+iOliA+IHN0ZW07Civoja0gPiBoZXJiOwor6I2bID4gZnVlbDsKK+iJrSA+IHNoaXA7CivoiZYgPiByYWZ0Owor6IipID4gYm9hdDsKK+iHkSA+IHNvZnQ7Civoh4kgPiBmYWNlOwor6IeBID4gY2FsZjsKK+iGtyA+IHNvdXA7CivohrQgPiBmaW5lOwor6IagID4gZ2x1ZTsKK+iFtiA+IG1lYXQ7CivohbMgPiBmb290Owor6IWSID4gZ2FtZTsKK+iFjSA+IHNvZnQ7CivohLIgPiB1cmVhOwor6IOgID4gb3BlbjsKK+iDjyA+IG1lYXQ7Civog4ogPiB5b2tlOwor6IKsID4gd2FydDsKK+iBviA+IGRlYWY7CivogbwgPiBoZWFyOwor6IG1ID4gZGVhZjsKK+iArSA+IHBsb3c7CivogKAgPiB0aWxsOwor6ICOID4gd2VhazsKK+e/uiA+IHNvYXI7Civnvq0gPiBnb29kOwor576cID4gbGFtYjsKK+e8iyA+IGRyYXc7CivnupogPiBsb25nOwor57qWID4gZmluZTsKK+e6lSA+IGJlbHQ7Civnuo4gPiBmaW5lOwor57qNID4gYmluZDsKK+e6hyA+IGtub3Q7CivnuoYgPiBjb3JkOwor57mkID4gZWRpdDsKK+e5oiA+IGRyYXc7CivnuaAgPiBoYW5nOwor57mYID4gcm9wZTsKK+e5iiA+IGZpbmU7CivnuYUgPiBkcmF3Owor57mDID4gYmluZDsKK+e4viA+IHNwaW47CivnuLMgPiB3cmFwOwor57ivID4gbG9uZzsKK+e4oiA+IGJpbmQ7CivnuJogPiBiYW5kOwor57iKID4gaGFuZzsKK+e3ryA+IHdvb2Y7Civnt6QgPiBjb3JkOwor57eYID4gc2VhbDsKK+e3jiA+IHNlYW07Civnt4QgPiBjb3JkOwor57arID4gbGluZTsKK+e2kSA+IGNvaWw7Civnto0gPiByb3BlOwor57aBID4gYmluZDsKK+e1jyA+IHJvcGU7CivntKEgPiBzcGluOwor57SGID4gYmVuZDsKK+ezuSA+IHNpbGs7CivnsosgPiBwdXJlOwor57G5ID4gY2FrZTsKK+exmSA+IGJvb2s7CivnsY8gPiBmbGFnOwor57GMID4gY2hpcDsKK+exiiA+IGxvbmc7CivnsL0gPiBzaWduOwor57CGID4gcmVlZDsKK+erhSA+IGhvbGU7Civnq4EgPiBib3JlOwor56q+ID4gaG9sZTsKK+eqtSA+IGRlZXA7Civnqq8gPiBraWxuOwor56qtID4gcG9vcjsKK+eqqSA+IG5lc3Q7Civnqb0gPiBob2xlOwor56muID4gd2VlZDsKK+epoSA+IGZhcm07CivnqZwgPiByaWNlOwor56mQID4gZmFsbDsKK+epiyA+IHJpY2U7CivnqYAgPiBjb3JuOwor56ibID4gYmluZDsKK+eokSA+IHJpY2U7Civnp6ogPiBvbmx5Owor56eKID4geWVhcjsKK+emuCA+IHJ1bXA7CivnprEgPiBwcmF5Owor56WHID4gb25seTsKK+ekrCA+IGFsdW07CivnpKcgPiByb2xsOwor56SmID4gbWluZTsKK+ekoSA+IGZpbGw7Civno5ogPiB0aWxlOwor56C/ID4gbWluZTsKK+efuyA+IHRvaWw7Civnn5kgPiB2aWV3Owor556rID4gbG9vazsKK+ebpCA+IHRyYXk7Civnm50gPiBkcmlwOwor55uMID4gYm93bDsKK+eatyA+IGRydW07CivnmbYgPiBsZWdzOwor55muID4gcmFzaDsKK+eZoiA+IGl0Y2g7CivnmaAgPiBzaWNrOwor55ivID4gaXRjaDsKK+eYniA+IGJ1cnk7CivnmJYgPiBkdW1iOwor55iCID4gZHVtYjsKK+eXryA+IHNpY2s7Civnl4wgPiBhY2hlOwor55anID4gc2ljazsKK+eWmCA+IGFudXM7CivnlpAgPiBmYWxsOwor55WKID4gcGxvdzsKK+eVhyA+IGxhbmQ7CivnlYQgPiBzdG9wOwor55SMID4gYm93bDsKK+eTmCA+IGphZGU7Civnk4ogPiBqYWRlOwor5421ID4gaHVudDsKK+eNriA+IGh1bnQ7CivnjacgPiByYXNoOwor542LID4gcm9hcjsKK+eNhSA+IGxpb247CivnjYMgPiBkdWxsOwor54yfID4gaHVudDsKK+eMiyA+IHdpbmQ7Civni5ggPiBqdW1wOwor54uAID4gZm9ybTsKK+eKsiA+IHdvbGY7CivniqIgPiBjYWxmOwor54qCID4gcGxvdzsKK+eJvSA+IGRyYWc7CivnibQgPiBnb3JlOwor54mjID4gZmlsbDsKK+eJhiA+IHdhbGw7CivniJ8gPiBmaXJlOwor54iWID4gZmlyZTsKK+eIhyA+IGJ1cm47Civnh6ggPiBmaXJlOwor54aHID4gYmFrZTsKK+eFmiA+IGZpcmU7CivnhZYgPiB3YXJtOwor54WRID4gY29vazsKK+eFhyA+IHdlbGQ7CivnhK4gPiBoZWF0Owor54ScID4gZmlyZTsKK+eDnSA+IHJpc2U7Civng5QgPiBoZWF0Owor54OPID4gY3JvdzsKK+eBnSA+IHZhc3Q7CivngZggPiBiYW5rOwor54CmID4gcG9uZDsKK+a/syA+IGhpZGU7Civmv5QgPiBtYW55Owor5r+KID4gdmFzdDsKK+a/iCA+IG1hbnk7CivmvpIgPiB2YXN0Owor5r2kID4gc29mdDsKK+a9myA+IGhpZGU7CivmvZEgPiBwb3VyOwor5r2FID4gcG91cjsKK+a8sCA+IHJvYXI7CivmvK0gPiB2YXN0Owor5ryaID4gc29hazsKK+a8mSA+IGRld3k7CivmvJggPiBiYW5rOwor5ru+ID4gdHVybjsKK+a7uiA+IGZsb3c7Civmu64gPiBmbG93Owor5ruMID4gd2FzaDsKK+a7iSA+IGRlZXA7Civmu4QgPiBibHVlOwor5rq8ID4gZGFtcDsKK+a5uyA+IHB1cmU7CivmubIgPiBmbG93Owor5rmdID4gZmxvdzsKK+a3sCA+IGZpc2g7Civmt6ggPiBwdXJlOwor5ra0ID4gZGF1YjsKK+a2iiA+IGRpcnQ7Civms5kgPiByb2FyOwor5rKsID4gZHVzazsKK+aylSA+IGRlZXA7CivmsY0gPiB3ZWVwOwor5rCdID4gbmVvbjsKK+awiiA+IGZlbHQ7CivmsIQgPiBkb3duOwor5rCCID4gdGFpbDsKK+atsiA+IHllYXI7CivmrZcgPiByb2FyOwor5q2KID4gc2lnaDsKK+askCA+IGJlYW07Civmq7MgPiBjYWdlOwor5quaID4gcGFsbTsKK+aqtCA+IHRyZWU7Civmqo0gPiBpbGV4Owor5qmmID4gdHJlZTsKK+apgSA+IHRyZWU7Civmp7kgPiBzcGFyOwor5qeDID4gdHJheTsKK+alsCA+IHRyZWU7CivmpakgPiB0cmVlOwor5qWfID4gdHJlZTsKK+almCA+IGJhbmQ7CivmpLggPiByYWNrOwor5qSRID4gb3ZhbDsKK+ajrCA+IGJvd2w7Civmo6ogPiB0cmVlOwor5qORID4gcmFmdDsKK+aitCA+IGxvbmc7Civmob8gPiBwb2xlOwor5qG5ID4gcGFsbTsKK+ahiyA+IHRyZWU7CivmoLsgPiB0cmVlOwor5p+jID4gc2lsbDsKK+afgiA+IGhlbG07CivmnrQgPiBjYW5lOwor5p2dID4gdHJlZTsKK+adlyA+IGJlYW07CivmnL8gPiBzdGFiOwor5pyzID4gdHJlZTsKK+acmCA+IHdhbmU7Civmm4kgPiBkYXduOwor5pmzID4gZmFpcjsKK+aYuyA+IHJpc2U7CivmmKwgPiBkdXNrOwor5pirID4gd2FybTsKK+aXuSA+IHRpbWU7Civml7QgPiBkYXduOwor5pecID4gZmxhZzsKK+aXgiA+IGZsYWc7Civmlb8gPiBiaW5kOwor5pW9ID4gYmluZDsKK+aVuyA+IGxvbmc7CivmlKIgPiBzYXZlOwor5pSFID4gc2F2ZTsKK+aTqyA+IHR1Y2s7Civmk6MgPiBodWxsOwor5pK7ID4gZmxvZzsKK+aSpSA+IG1vdmU7Civmkp0gPiB3YXZlOwor5pGyID4gcmF6ZTsKK+aRpiA+IHdpZGU7CivmkKUgPiBiZWF0Owor5pCYID4gcHJvcDsKK+aQlyA+IGh1bGw7CivmkJIgPiBwb2xlOwor5pCMID4gYmluZDsKK+aQhiA+IHB1bGw7Civmjp4gPiBlYXN5Owor5o6XID4gdGFrZTsKK+aNmCA+IHB1c2g7CivmjYQgPiBsb25nOwor5oyQID4gZHJhZzsKK+aLjyA+IHRha2U7CivmirYgPiBiZWF0Owor5oqGID4gd2lwZTsKK+aItiA+IGRvb3I7CivmiIEgPiBmZWFyOwor5oe2ID4gbGF6eTsKK+aHriA+IGNhbG07Civmh58gPiBoYXRlOwor5oecID4gZHVsbDsKK+aGsCA+IHdpbHk7CivmhqsgPiBwaXR5Owor5oaZID4gbGlrZTsKK+aGmCA+IGxpa2U7CivmhocgPiByZXN0Owor5oW0ID4gZmVhcjsKK+aFgiA+IHVyZ2U7CivmhJIgPiByZXN0Owor5oGHID4gZmVhcjsKK+aAsyA+IHdpbGQ7CivmgK0gPiBydWRlOwor5oCaID4gZHVsbDsKK+W9oSA+IGhhaXI7CivlvY4gPiBiZW5kOwor5bu8ID4gdGhlbjsKK+W7syA+IGhhbGw7Civlu7AgPiBoYWxsOwor5bunID4gd2FsbDsKK+W7jiA+IHJvb207Civlua8gPiB3aXBlOwor5bmkID4gZXZpbDsKK+W5nyA+IGZsYWc7CivluZogPiBoZWxwOwor5bmLID4gYmVsdDsKK+W5hyA+IGhlbHA7CivluJ8gPiB0ZW50Owor5ba4ID4gaGlnaDsKK+W2hCA+IGhpZ2g7CivltbMgPiBoaWdoOwor5bSiID4gaGlnaDsKK+WzryA+IHBlYWs7Civls4cgPiBjYXZlOwor5bKnID4gcGVhazsKK+WxhyA+IGNhdmU7CivlsLIgPiBsaW1wOwor5bCrID4gbGFtZTsKK+WwqiA+IGxhbWU7CivlsKkgPiB3ZWFrOwor5bCjID4gbGFtZTsKK+WwhyA+IHdpbGw7Civlr6AgPiBwb29yOwor5a+UID4gcmVhbDsKK+WtuyA+IGxhc3Q7CivlrL4gPiBsYXp5Owor5aywID4gYmFieTsKK+WsrSA+IG1pbGs7CivlrJkgPiBsYWR5Owor5auIID4gbGFkeTsKK+WqiiA+IHN0YXI7CivlqZ4gPiBoYXRlOwor5amQID4gbWFpZDsKK+WouCA+IHVnbHk7CivlqLUgPiBzdGFyOwor5ae9ID4gZ29vZDsKK+WnriA+IGxhZHk7Civlp6QgPiBtYXRlOwor5aSbID4gbXVjaDsKK+WkkCA+IGxvbmc7Civlo5kgPiB0b21iOwor5aOSID4gZHVzdDsKK+WjjCA+IHNvaWw7CivlorsgPiB3YWxsOwor5aKmID4gdG9tYjsKK+WhuSA+IG1vYXQ7CivloLIgPiBoYXRlOwor5aCoID4gZGF1YjsKK+WgiyA+IGJ1cnk7Civln7AgPiBmaWVmOwor5Z+IID4gaGlnaDsKK+WenCA+IGhlYXA7CivlnbEgPiBkdXN0Owor5Z2LID4gZHVzdDsKK+WbpSA+IGhpZGU7Civlm5MgPiBnbmF3Owor5ZuAID4gc2luZzsKK+WapCA+IHNsb3c7CivlmpkgPiBiaXRlOwor5ZqEID4gcm9hcjsKK+WZsyA+IG1hbnk7CivlmZ0gPiBoaXNzOwor5ZmJID4gYml0ZTsKK+WYvSA+IHBhbnQ7CivlmK8gPiByb2FyOwor5ZiuID4gY2hhdDsKK+WYqCA+IHJvYXI7CivlmJwgPiBtYXJrOwor5ZewID4gdGhhdDsKK+WXiiA+IHNpbmc7CivllqwgPiB0YWxsOwor5ZaoID4gd2FpbDsKK+WVnyA+IG9wZW47CivllZ4gPiBkdW1iOwor5ZWZID4gcG9vcjsKK+WVkyA+IG9wZW47CivllYAgPiBnbmF3Owor5ZS2ID4gc2lnaDsKK+WUmyA+IG1hcms7CivlkrwgPiBjaGF0Owor5ZK3ID4gaG93bDsKK+WSriA+IGJlYWs7CivlkZkgPiBjaGF0Owor5ZGOID4gZm9vdDsKK+WRhyA+IHN0YXI7CivlkL8gPiB0ZWxsOwor5ZC9ID4gJydvbScnOwor5ZCqID4gbW92ZTsKK+WQiyA+IGluY2g7CivljpQgPiBzdG9wOwor5Y2AID4gYXJlYTsKK+WMtSA+IGNhc2U7Civli7kgPiB3cmFwOwor5Ym6ID4gbWFyazsKK+WJnSA+IHBlZWw7CivliZogPiBzdGFiOwor5Yi+ID4gc3RhYjsKK+WInCA+IGNob3A7CivliJMgPiB0cmltOwor5YeuID4gd2luZDsKK+WHqiA+IGNhbG07Civlh6ggPiB3aW5kOwor5YenID4ga2l0ZTsKK+WHmiA+IGNvbGQ7Civlh5YgPiBydWxlOwor5YeUID4gY29sZDsKK+WGkCA+IHJpc2s7CivlhoIgPiB3aWRlOwor5YWMID4gY2FzaDsKK+WEviA+IHNsb3c7CivlhL0gPiBsYXp5Owor5YS6ID4gcmljaDsKK+WEsSA+IHJ1ZGU7CivlhJwgPiB3ZWFrOwor5YSFID4gc3RvcDsKK+WDviA+IGxpa2U7Civlg6ggPiBydWluOwor5YK1ID4gZGVidDsKK+WCrSA+IGhpcmU7CivlgYQgPiB3ZWFrOwor5YC9ID4gd2hhdDsKK+S/tCA+IHRoaW47Civkv5QgPiBsaWtlOwor5L6iID4gbG9hZDsKK+S+nCA+IGxpZXM7CivkvpogPiBmYXN0Owor5L6AID4gZm9ybTsKK+S9uCA+IG1lZXQ7CivkvLkgPiBkdWxsOwor5LyxID4gdGhvdTsKK+S7uCA+IGJlbnQ7CivkuqAgPiBoZWFkOwor5LqdID4gZXZlbjsKK+S6nCA+IGFzaWE7CivkupYgPiBmb3VyOwor5LqFID4gaG9vazsKK+S5vCA+IHJvcGU7Civkua0gPiByb2NrOwor5LizID4gc3BpdDsKK+S4oCA+IGhpbGw7CivktbcgPiBmcm9nOwor5LWoID4gZGFyazsKK+S1kiA+IGdsdWU7CivktZEgPiBnbHVlOwor5LS4ID4gYnJhbjsKK+S0nSA+IHNhbHQ7CivktJwgPiBzYWx0Owor5LSDID4gd3JlbjsKK+SzvCA+IGd1bGw7Civks6YgPiB3cmVuOwor5LOjID4ga2l0ZTsKK+SyrSA+IGtpdGU7CivkspIgPiBjcmFiOwor5LG0ID4gdHVuYTsKK+SxrSA+IHR1bmE7CivksY4gPiB0dW5hOwor5LGNID4gdHVuYTsKK+SwqSA+IHVnbHk7CivksKYgPiB1Z2x5Owor5LCkID4gdWdseTsKK+SwlSA+IG1hbmU7CivksJMgPiBoYWlyOwor5LCLID4gaGFpcjsKK+SwiiA+IGhhaXI7CivksIcgPiBtYW5lOwor5K+5ID4gaGFpcjsKK+SvnyA+IGJvbmU7Civkr54gPiBib25lOwor5K+VID4gYm9ueTsKK+SuvyA+IGxhbWU7Civkrr4gPiBodWdlOwor5K2iID4gcmljaDsKK+StoSA+IGZvb2Q7CivkrZMgPiBmb29kOwor5K2CID4gZGFtcDsKK+StgCA+IGZvb2Q7CivkrJ4gPiB3aW5kOwor5KyPID4gd2luZDsKK+SrtiA+IHVnbHk7Civkq6ogPiB1Z2x5Owor5KuiID4gZ29vZDsKK+SrkSA+IGdvb2Q7Civkq48gPiB1Z2x5Owor5KuKID4gY2hpbjsKK+SriCA+IHVnbHk7Civkq4IgPiB1Z2x5Owor5KqmID4gbG91ZDsKK+SqjyA+IHdlYWs7CivkqoYgPiBzb2Z0Owor5KiwID4gcmFpbjsKK+SoriA+IHNub3c7CivkqKQgPiByYWluOwor5KiUID4gaGFpbDsKK+SojCA+IGhhaWw7Civkp7sgPiBkb3ZlOwor5Ke5ID4gaGF3azsKK+SmsCA+IGxvdHM7CivkpasgPiBpcm9uOwor5KWUID4gZ29sZDsKK+SlkiA+IGxlYWQ7CivkpK4gPiBpcm9uOwor5KShID4gaXJvbjsKK+SkkSA+IHdpbmU7CivkpIogPiB3aW5lOwor5KO9ID4gd2luZTsKK+SjqCA+IHJpY2g7CivkobMgPiBjYXJ0Owor5KGAID4gbnVkZTsKK+SgrSA+IGxhbWU7CivkoJcgPiBsYW1lOwor5KCPID4gZmVldDsKK+SfqCA+IGxhbWU7Civkn4IgPiBzbG93Owor5J6/ID4gbGFtZTsKK+SeqSA+IGxhbWU7Civknp0gPiBsYW1lOwor5J6GID4gYm9uZTsKK+SdmCA+IGZpcm07CivknZUgPiBnb29kOwor5Ju0ID4gam9rZTsKK+SavSA+IG5ld3M7CivkmrggPiBnb29kOwor5JqpID4gaGlnaDsKK+SaoiA+IGhvcm47CivkmaQgPiBnb29kOwor5JmKID4gYXJpZDsKK+SXqSA+IHRvYWQ7Civkl6IgPiBmbGVhOwor5Ja4ID4gbW90aDsKK+SWrSA+IGdydWI7CivklqogPiBncnViOwor5JajID4gZmxlYTsKK+SVoiA+IHdlYWs7CivklKwgPiBoZW1wOwor5JO+ID4gbHVzaDsKK+STuCA+IHdlZWQ7Civkk7IgPiBmaW5lOwor5JK6ID4gY2xheTsKK+SSrSA+IHJhbms7CivkkawgPiBib2F0Owor5JGeID4gc2h1bjsKK+SRjyA+IHVnbHk7CivkkYQgPiByaWNoOwor5JCzID4gZmlzaDsKK+SQriA+IHNraW47CivkkJMgPiBzb2Z0Owor5JCLID4gc2ljazsKK+SPuCA+IGZpc2g7Civkj7EgPiBib2R5Owor5I+iID4gbWVhdDsKK+SPjiA+IG1pbGs7Civkj4ogPiBkZWFmOwor5I6cID4gYWdlZDsKK+SNmiA+IHZhc3Q7CivkjKkgPiBmaW5lOwor5IydID4gc2lsazsKK+SMkyA+IG1hbnk7CivkjJIgPiBwdXJlOwor5IyMID4gbGFjZTsKK+SLvCA+IHNsb3c7Civki5YgPiBsb25nOwor5IqmID4gZm9vZDsKK+SHqSA+IGxvbmc7Civkhq0gPiBjYXZlOwor5IapID4gZGFyazsKK+SGpiA+IGRlZXA7CivkhKkgPiBicmFuOwor5IKDID4gZGFyazsKK+SBqSA+IGZpc2g7CivkgYYgPiBleWVzOwor5IGFID4gcmFnZTsKK+SAviA+IG1hbnk7CivkgJwgPiBkb3duOwor5ICLID4gc2FsdDsKK+SAgCA+IGN1cHM7Civjv5kgPiBmdWxsOwor47+OID4gc2ljazsKK+O+uSA+IGxlYW47CivjvqogPiBsZWFuOwor476oID4gd2VhazsKK+O+myA+IHVnbHk7CivjvoogPiB0aGluOwor476JID4gdGhpbjsKK+O6pSA+IGJhcms7CivjuZIgPiBidWxsOwor47mPID4gZ29vZDsKK+O5jiA+IGJ1bGw7CivjuY0gPiBidWxsOwor47i4ID4gY2FsZjsKK+O4riA+IGJ1bGw7CivjuI4gPiB3YXJtOwor47e1ID4gZmlyZTsKK+O3tCA+IGZpcmU7Civjt6wgPiBmaXJlOwor47eYID4gY29hbDsKK+O3kCA+IGZpcmU7Civjt4QgPiBmaXJlOwor47a5ID4gZmlyZTsKK+O2ryA+IGZpcmU7CivjtqggPiBmaXJlOwor47anID4gd2FybTsKK+O1viA+IGNvbGQ7CivjtbYgPiBmdWxsOwor47WpID4gbWFueTsKK+O1mSA+IHB1cmU7CivjtZYgPiBkYW1wOwor47S0ID4gc2luazsKK+O0sSA+IGRlZXA7CivjtJ0gPiBtYW55Owor47SbID4gZGFtcDsKK+O0lyA+IGRlZXA7CivjtIAgPiBkZWVwOwor47OkID4gZ29vZDsKK+OyviA+IHJhaW47CivjsrsgPiBzdW5rOwor47K0ID4gbWluZDsKK+OynyA+IGhhaXI7CivjspwgPiBydWdzOwor47KTID4gZmluZTsKK+OxtCA+IHNpY2s7CivjsYsgPiBoaWdoOwor47GHID4gZmVhcjsKK+OwqyA+IGdsYWQ7CivjsKEgPiByYXNoOwor47CfID4gaG9wZTsKK+OwmSA+IHdlYWs7CivjsJAgPiBvdmFsOwor4666ID4gc3RlbTsKK+OupCA+IHBpbmU7CivjrpIgPiB3b29kOwor4629ID4gcm9vdDsKK+OsmCA+IGFyaWQ7CivjrIkgPiB3YXJtOwor46yFID4gbG9uZzsKK+OrsiA+IGRhcms7Civjq7EgPiBtaWxkOwor46ulID4gZGFyazsKK+OrjiA+IG1hcms7Civjq4QgPiBzaWRlOwor46m8ID4gbWFueTsKK++opSA+IGZsZWU7CivvqIUgPiBjYXZlOwor76e/ID4gc3RhYjsKK++nuiA+IGZvcm07Civvp7UgPiBkcmlwOwor46euID4gaGlnaDsKK++nqyA+IGhpZGU7Civjp6ggPiBzbG93Owor76eiID4gcGVhcjsKK++noSA+IHBsdW07Civvp5MgPiBsYW5kOwor76eSID4ga2lsbDsKK++njyA+IGtub3Q7Civvp40gPiBzdG9wOwor76eKID4gZmxvdzsKK++muSA+IGV2aWw7CivvprQgPiBuZWNrOwor76ayID4gemVybzsKK++msSA+IGJlbGw7CivvpqwgPiBwaXR5Owor76anID4gaHVudDsKK+OmqCA+IGxhenk7CivjpqIgPiBwdXJlOwor76aaID4gam9pbjsKK++mlSA+IHllYXI7CivvppAgPiBsb3ZlOwor76aPID4gcGl0eTsKK++mjiA+IHllYXI7Civjpo8gPiB3ZWFrOwor76aDID4gdHJpcDsKK++lvCA+IGdvb2Q7CivvpbsgPiBmb29kOwor76W5ID4gY29vbDsKK++lsiA+IHNpbms7CivvpbAgPiBraWxsOwor76WuID4gbGVhZjsKK+OlrCA+IGZlYXI7CivjpakgPiBpZGxlOwor46WhID4gaWRsZTsKK++lmyA+IHRha2U7CivvpZogPiByZWFkOwor76WZID4gaGlsbDsKK++llSA+IHB1cmU7CivvpZMgPiByaWJzOwor76WOID4gbGVhazsKK++lhSA+IGRlYWY7CivvpYQgPiBjYWdlOwor76WAID4gZGVlcjsKK++kvyA+IGNvcHk7CivvpLcgPiByb2FkOwor76SuID4gY29sZDsKK++krSA+IGNvbWU7CivvpKsgPiB3b2xmOwor76SqID4gd2F2ZTsKK++kpSA+IHB1bGw7CivvpKMgPiBibHVlOwor46SfID4gZmVhcjsKK++kmCA+IGZhbGw7CivvpJIgPiBiYXJlOwor76SNID4gbGF6eTsKK++kiyA+IGhvcm47CivvpIogPiBnb2xkOwor76SJID4gZGVlZDsKK+OkiSA+IGZlYXI7CivvpIQgPiBzbGlwOwor76SCID4gY2FydDsKK++kgSA+IG1vcmU7Civjo44gPiBmaW5lOwor46KcID4gdmFzdDsKK+OimCA+IHB1cmU7CivjopQgPiBtYW55Owor46KOID4gaGlkZTsKK+OiiyA+IHZhc3Q7CivjooMgPiBoaWdoOwor46KBID4gdmFzdDsKK+OhpiA+IG1lc3M7CivjoLsgPiByYXJlOwor46CpID4gdmFzdDsKK+OgjCA+IGhpZ2g7CivjnrEgPiBkdXNrOwor456WID4gdGhpczsKK+OehCA+IGxhbWU7Civjnb8gPiBsYW1lOwor452hID4gdmVyeTsKK+OdoCA+IGRhcms7CivjnZ0gPiBkZWVwOwor452RID4gc2lkZTsKK+OdkCA+IGZhY2U7CivjnYggPiB0d2luOwor452EID4gcHVyZTsKK+OctyA+IG1pbGs7CivjnJsgPiBzb2Z0Owor45yDID4gZnJvbTsKK+ObpiA+IGdvb2Q7CivjmqcgPiBhZ2lsOwor45qNID4gbXVjaDsKK+OaiyA+IG11Y2g7CivjmoogPiBtdWNoOwor45qCID4gZHVzdDsKK+OZqiA+IGRhcms7CivjmaAgPiBkdXN0Owor45mSID4gd2lsZDsKK+OZgiA+IHdhbGw7CivjmYEgPiBkdXN0Owor45ioID4gZGVlcDsKK+OYkCA+IGxvdWQ7Civjl4ggPiBsb25nOwor45WmID4gbG91ZDsKK+OUhCA+IHRoaW47Civjk5EgPiBjb2xkOwor45OOID4gY29sZDsKK+OTiiA+IGNvbGQ7CivjkpogPiBmaXJtOwor45KOID4gZXZpbDsKK+ORvyA+IGxvbmc7CivjkbUgPiBlbnZ5Owor45GaID4gdGhhdDsKK+ORjCA+IHdlYWs7CivjkYggPiBydWRlOwor45ChID4gd2VhazsKK+OQhSA+IGZpdmU7CivkuIAgPiBvbmU7CivkurogPiBtYW47CivmiJEgPiBvdXI7CivlpKcgPiBiaWc7CivkuIogPiB0b3A7CivkvaAgPiB5b3U7Civlj68gPiBtYXk7CivlpbkgPiBzaGU7CivlpKkgPiBza3k7CivogIwgPiBhbmQ7CivnhLYgPiB5ZXM7CivmsqEgPiBub3Q7Civml6UgPiBzdW47CivlvakgPiBodWU7CivljYEgPiB0ZW47CivnlKggPiB1c2U7CivnnLwgPiBleWU7Civlj4ggPiBhbmQ7Civop4EgPiBzZWU7CivogIEgPiBvbGQ7CivkuKQgPiB0d287CivlpJYgPiBvdXQ7CivkuI4gPiBhbmQ7Civms5UgPiBsYXc7Civnm64gPiBleWU7CivkuowgPiB0d287CivngrkgPiBkb3Q7Civnm5wgPiByb2I7CivlhbYgPiBoaXM7Civnm5cgPiByb2I7CivlhL8gPiBzb247CivmlrAgPiBuZXc7CivluoogPiBiZWQ7CivnmoYgPiBhbGw7CivmtbcgPiBzZWE7CivlsJEgPiBmZXc7CivluL0gPiBoYXQ7Civlj6sgPiBjcnk7CivmrbsgPiBkaWU7CivmlL4gPiBwdXQ7Civku4ogPiBub3c7CivotaQgPiByZWQ7CivnlaIgPiBlbmQ7CivmiJggPiB3YXI7Civos7wgPiBidXk7Civnk7YgPiBqdWc7Civor7cgPiBhc2s7CivkuqQgPiBtaXg7CivlkIMgPiBlYXQ7CivosrcgPiBidXk7CivpnZ4gPiBub3Q7CivlpKsgPiBtYW47CivnuqIgPiByZWQ7Civov5AgPiBydW47Civlr6UgPiBmZXc7CivnvZEgPiBuZXQ7Civpo54gPiBmbHk7Civop4IgPiBzZWU7CivnjL8gPiBhcGU7CivnjKsgPiBjYXQ7CivnjKogPiBwaWc7CivlnZAgPiBzaXQ7CivorIIgPiBzYXk7Civni5cgPiBkb2c7Civoq4sgPiBhc2s7Civnu4ggPiBlbmQ7CivliIcgPiBjdXQ7CivniqwgPiBkb2c7CivoqqQgPiBlcnI7CivlsJQgPiB5b3U7Civng60gPiBob3Q7Civlj6QgPiBvbGQ7CivniZsgPiBjb3c7CivniYAgPiBiZWQ7Civop4AgPiBzZWU7CivkvY4gPiBsb3c7CivoprMgPiBzZWU7CivnhrEgPiBob3Q7Civku40gPiB5ZXQ7CivoposgPiBzZWU7CivohJogPiBsZWc7CivkupEgPiBzYXk7CivkubAgPiBidXk7CivlpYggPiBidXQ7CivmjpIgPiByb3c7Civlo68gPiBiaWc7Civlo54gPiBiYWQ7Civlo4ogPiBiYWQ7Civmub4gPiBiYXk7CivloqggPiBpbms7CivlkKYgPiBub3Q7Civpo58gPiBlYXQ7CivooZMgPiBhcnQ7Civmv5ggPiBtdWQ7Civmv5UgPiB3ZXQ7CivpnLIgPiBkZXc7CivpvaIgPiBhZ2U7CivpvaEgPiBhZ2U7CivonZkgPiBiYXQ7CivonYsgPiB3YXg7CivpvKAgPiByYXQ7Civot5EgPiBydW47CivonIIgPiBiZWU7CivoibogPiBhcnQ7Civpu54gPiBkb3Q7CivmkYcgPiB3YWc7CivpobYgPiB0b3A7Civmub8gPiB3ZXQ7Civnq68gPiBlbmQ7Civml6cgPiBvbGQ7CivmsrkgPiBvaWw7Civol50gPiBhcnQ7Civmr5UgPiBlbmQ7Civol4kgPiBtYXQ7CivmtrIgPiBzYXA7Civolq8gPiB5YW07CivogLMgPiBlYXI7CivllosgPiBuYWc7CivllZwgPiBzaXA7CivllY8gPiBhc2s7Civms6UgPiBtdWQ7Civms6MgPiBjcnk7Civlk4AgPiBzYWQ7CivlhrAgPiBpY2U7Civor68gPiBlcnI7Civlh6EgPiBhbGw7CivmsZ0gPiB5b3U7CivosJMgPiBzYXk7Civmna8gPiBjdXA7CivmsLcgPiBpY2U7CivmsKMgPiBhaXI7CivmsJcgPiBhaXI7CivokIwgPiBidWQ7CivotK0gPiBidXk7CivpgJQgPiB3YXk7CivmkYYgPiBwdXQ7CivlhbggPiBsYXc7CivojLYgPiB0ZWE7CivljbUgPiBlZ2c7Civmkq0gPiBzb3c7Civoh4IgPiBhcm07CivmrLcgPiBzb2I7CivljJogPiBib3g7CivmkakgPiBydWI7CivppJAgPiBlYXQ7CivlhqAgPiBjYXA7Civoir0gPiBidWQ7CivoirggPiBydWU7CivliqMgPiBiYWQ7Civlib0gPiByb2I7CivlibIgPiBjdXQ7CivnvJggPiBoZW07Civkv6kgPiB0d287Civlo64gPiBiaWc7Civlv6cgPiBzYWQ7CivoiIogPiBvbGQ7CivoiIcgPiBhbmQ7CivpvoQgPiBhZ2U7Civmg6ggPiBzYWQ7Civohb4gPiBmbHk7Civmn5MgPiBkeWU7Civohr8gPiBwdXM7CivmprsgPiBjb3Q7CivlhoYgPiB5ZW47CivlhakgPiB0d287CivlhZIgPiBzb247CivohZAgPiByb3Q7CivlhZAgPiBzb247CivohIIgPiBmYXQ7Civpo5sgPiBmbHk7CivogqUgPiBmYXQ7Civmj7QgPiBhaWQ7Civog5YgPiBmYXQ7Civlk7wgPiBodW07CivlgbUgPiBzcHk7CivpoZsgPiB0b3A7CivpoY4gPiBqYXc7CivlgLYgPiBhbGw7CivpoIIgPiB0b3A7CivnvZAgPiBqYXI7CivmjbcgPiB3aW47CivpnKcgPiBmb2c7Civkub4gPiBkcnk7Civkv7EgPiBhbGw7CivotaIgPiB3aW47CivnvJ0gPiBzZXc7CivmipogPiBwYXQ7CivmjJYgPiBkaWc7Civmm50gPiBzdW47Civpm74gPiBmb2c7CivmmpEgPiBob3Q7CivpoqAgPiB0b3A7CivmiYcgPiBmYW47Civmm7AgPiBzYXk7CivkuZ4gPiBiZWc7CivotYwgPiBiZXQ7CivnuKsgPiBzZXc7CivkuKEgPiB0d287CivmrKAgPiBvd2U7CivmsJsgPiBnYXM7CivnuIEgPiBoZW07Civnt6AgPiB0aWU7CivlvJcgPiBub3Q7CivntrIgPiBuZXQ7CivmlqwgPiBjdXQ7CivntbYgPiBjdXQ7Civovp8gPiBsYXc7CivntYIgPiBlbmQ7CivopYQgPiBhaWQ7CivngpIgPiBmcnk7CivplKEgPiB0aW47CivntIUgPiByZWQ7CivmkqsgPiBwYXQ7CivpkbUgPiBqYXI7CivlnZEgPiBwaXQ7CivmkJYgPiB3YWc7Civmj7ogPiB3YWc7CivmkpUgPiByaXA7Civmj4kgPiBydWI7Civno5UgPiBoaXQ7CivmlqkgPiBjdXQ7CivmjqAgPiByb2I7CivmjpggPiBkaWc7CivosI4gPiBsaWU7CivpipwgPiBiaXQ7CivotYsgPiB0YXg7Civlm4ogPiBiYWc7CivmiLAgPiB3YXI7CivmiKYgPiB3YXI7CivmhoIgPiBzYWQ7CivmkIIgPiBodWc7CivmhZggPiBzYWQ7CivkvqYgPiBzcHk7Civlo7YgPiBqYXI7CivlvJMgPiBib3c7CivonKEgPiB3YXg7CivlupAgPiBodXQ7CivmrbkgPiBiYWQ7Civmg58gPiBidXQ7CivooZQgPiBiaXQ7CivlnY4gPiBwaXQ7CivlhbkgPiBub3c7Civmr68gPiBydWc7CivpkqUgPiBrZXk7CivmlqcgPiBheGU7CivotY4gPiBidXk7CivlvaQgPiByZWQ7Civnh6UgPiBkcnk7CivkvawgPiBtYW47CivnnoUgPiBzZWU7CivouaYgPiBob3A7CivpnIQgPiBza3k7Civnv6kgPiBmbHk7CivmmqggPiBhbmQ7Civov6IgPiBmYXI7CivnvJQgPiB0aWU7CivopJogPiBiYWc7CivomoIgPiBhbnQ7Civmj40gPiBoaXQ7Civmk4IgPiBydWI7CivplIQgPiBob2U7CivmjYUgPiBqYWI7CivpnqAgPiBib3c7CivpqrAgPiBkaWU7CivouIkgPiBob3A7CivmoaggPiBvYXI7Civmi4wgPiBtaXg7Civni7ggPiBmb3g7CivngJsgPiBzZWE7CivlmakgPiBiYWQ7Civok5MgPiBidWQ7CivnqpYgPiBwaXQ7CivmjrogPiBtaXg7CivnjJYgPiBtYWQ7Civotr4gPiB0b2U7CivomLggPiBkaXA7Civmt6QgPiBtdWQ7CivnkKYgPiBnZW07CivohJMgPiBwdXM7CivnlbggPiBvZGQ7Civnm44gPiBjdXA7CivojJcgPiB0ZWE7Civog6UgPiBhbGw7CivmgIYgPiBzYWQ7Civms54gPiBtdWQ7CivliZAgPiBjdXQ7CivoiIAgPiBkaXA7Civlna8gPiBkYW07CivloLAgPiBkYW07CivlubogPiBvbmU7Civnia8gPiBjb3c7CivlvLwgPiBhaWQ7Civps50gPiBlZWw7CivmlqsgPiBjdXQ7CivmgKkgPiBzaHk7CivmuqUgPiBiaWc7CivmqbkgPiBvYXI7Civpu6AgPiBzbHk7Civnu4wgPiBzZXc7CivliZwgPiBjdXQ7CivnvZQgPiBuZXQ7CivpopogPiBqYXc7CivllL8gPiBzYWQ7CivogKggPiBob2U7CivohpggPiBmYXQ7CivplbMgPiBiaXQ7CivohbQgPiBmYXQ7Civni68gPiBzbHk7CivplaIgPiBob2U7Civoo6ggPiBhaWQ7CivplJsgPiBhZHo7Civlm7UgPiBhbGw7CivpgoggPiBmYXI7CivmrpIgPiBkaWU7CivllZYgPiBlYXQ7CivpuosgPiBlbGs7Civps40gPiBmaW47CivliI0gPiBtb3c7CivkvpcgPiBiaWc7CivmpasgPiBvYXI7CivnjKEgPiBwaWc7Civmn54gPiBvYWs7CivkvaUgPiBhbGw7Civps5cgPiBlZWw7CivpnqMgPiB0YW47Civmo7kgPiBvYXI7CivpmYIgPiBkYW07CivmroEgPiBkaWU7Civop5ogPiBqdWc7Civoh6wgPiBsYXc7CivnjIMgPiBkb2c7Civlr6QgPiBmZXc7Civlg5YgPiBqb3k7Civniq0gPiBkb2c7Civnvp0gPiByYW07CivospQgPiBmb3g7Civop4wgPiBzZWU7Civmp6AgPiBvYWs7CivmursgPiB3ZXQ7Civoip8gPiBtb3c7Civkv6MgPiBiaWc7Civnk78gPiBqYXI7CivpgJYgPiBmYXI7Civlk5wgPiBzaXA7CivpmrAgPiBsb3c7CivpsqEgPiBlZWw7Civmr7kgPiBydWc7CivmrqogPiBkaWU7CivnvI8gPiBoZW07CivppaMgPiBlYXQ7Civln6QgPiBhZGQ7Civlna0gPiBtdWQ7CivpvqUgPiBiZWc7CivpvaMgPiBhY3Q7CivpvKEgPiByYXQ7Civpu5UgPiByZWQ7CivpuYsgPiBlbXU7CivptJ4gPiBvd2w7CivpspUgPiByb2U7CivpsbogPiBlZWw7CivpsZQgPiBlZWw7CivpsZMgPiBlZWw7CivpsLsgPiBlZWw7CivpsK0gPiBmaW47Civprp4gPiByb2U7CivprLcgPiBwb3Q7CivprLQgPiBwb3Q7CivprIYgPiBsYXg7Civpq6IgPiB3aWc7Civpqr0gPiBsZWc7CivpqLUgPiBiYXk7CivpqLMgPiBydW47CivpqLAgPiBmbHk7CivpqKIgPiBiYXk7CivpqIIgPiByZWQ7Civpp4kgPiBiaWc7CivppJQgPiBlYXQ7Civpo6AgPiBlYXQ7CivpoZogPiB0b3A7CivpoLMgPiByZWQ7CivpoKsgPiBib3c7Civpn5YgPiB0YW47Civpn44gPiByZWQ7CivpmKwgPiBwaXQ7CivpkbAgPiBrZXk7Civpka8gPiBhd2w7CivpkaMgPiBiaXQ7CivpkI8gPiBjYXA7Civpj5ogPiBheGU7CivpjqEgPiBob2U7Civpjb4gPiBjdXA7CivpjKsgPiB0aW47CivpjKQgPiBob2U7CivpjJsgPiBhZHo7CivpjJQgPiBjYXA7Civpi6QgPiBob2U7CivpiY8gPiBob2U7CivpgYkgPiBzcHk7CivovZEgPiBydXQ7CivouLYgPiBwYXc7Civot6YgPiBob3A7CivotJYgPiBidXk7CivotI8gPiB3aW47Civos60gPiBiZXQ7Civos6YgPiB0YXg7CivospwgPiBhcGU7CivospMgPiBjYXQ7CivosbwgPiBmb3g7CivosbcgPiBtYW47CivosawgPiBwaWc7CivosaggPiBwaWc7CivosZ0gPiBzb3c7CivorIogPiBsaWU7Civopr8gPiBzZWU7CivopqkgPiBzZWU7CivopowgPiBzZWU7Civoo4AgPiBtYXQ7CivooZwgPiB3YXk7CivooK4gPiBiZWU7CivooJ8gPiB3YXg7Civonp4gPiBhbnQ7CivonpggPiBhbnQ7Civona8gPiBhcGU7CivonJEgPiBlZ2c7Civol7cgPiB5YW07CivolbcgPiB5YW07CivolZMgPiBydWU7CivolIsgPiBkcnk7Civok7ogPiBhcnQ7Civok6MgPiB5YW07CivokrQgPiBwb2Q7CivokYQgPiBtYXQ7CivokKAgPiBidWQ7CivojLIgPiBub3c7CivoirsgPiBtb3c7CivoiaogPiBvYXI7Civoh5UgPiBmYXQ7Civoh4cgPiBmYXQ7Civohp8gPiBmYXQ7CivohosgPiBmYXQ7CivohoMgPiBmYXQ7Civogq0gPiBmYXQ7CivogoAgPiBwZW47CivogKEgPiBob2U7Civnv74gPiBmbHk7Civnv4MgPiBmbHk7CivnvpggPiByYW07CivnvocgPiBpbm47CivnvbsgPiBuZXQ7CivnvaYgPiBuZXQ7CivnvZ8gPiBuZXQ7CivnvYYgPiBqYXI7CivnvL4gPiBqYXI7Civnt7YgPiBoZW07Civnt7UgPiBuZXQ7Civnt7AgPiBuZXQ7Civnt6MgPiBoZW07CivntZUgPiBjdXQ7CivntYAgPiBzZXc7CivntK4gPiB0aWU7CivnsaUgPiBrZXk7CivnrpEgPiBmYW47Civnqp4gPiBwaXQ7CivnqowgPiBwaXQ7CivnqoogPiBwaXQ7CivnqoUgPiBmYXI7CivnoLIgPiBndW47CivnnrYgPiBkaW07CivnnYogPiBzZWU7CivnnJsgPiBkaW07CivnmZkgPiBpbGw7CivnmKggPiBtYWQ7CivnmI8gPiBpbGw7Civnl5cgPiBpbGw7CivnlJIgPiBqYXI7CivnlIcgPiBqYXI7CivnlIEgPiBqdWc7CivnlIAgPiBqYXI7Civnk7sgPiBqYXI7Civnk4AgPiBnZW07CivnkoUgPiBnZW07CivnjoYgPiBub3c7CivnjoAgPiBwaWc7CivnjasgPiBkb2c7CivnjaogPiBzbHk7CivnjaIgPiBkb2c7CivnjK0gPiBhcGU7CivnjKggPiBhcGU7CivnibwgPiBtYW47CivniL4gPiB5b3U7CivnhJ4gPiBkaW07CivngYsgPiBsYXc7Civmvp0gPiBtdWQ7CivmvZogPiBnYXk7CivmspIgPiBub3Q7Civmr6cgPiBmdXI7CivmrqMgPiBkaWU7Civmrp4gPiBkaWU7Civmrb8gPiBkaWU7CivmraAgPiBzaXA7Civmq6cgPiBvYWs7Civmq5MgPiBvYXI7Civmq4IgPiBvYXI7Civmqp0gPiBvYXI7CivmqacgPiBodXQ7CivmqKAgPiBlbG07Civmp7MgPiBvYXI7CivmpY4gPiBwZWc7CivmpLcgPiBib3g7Civmo5MgPiBoaXQ7CivmorYgPiBvYXI7CivmoqkgPiBob2Q7Civmoa4gPiBjdXA7Civmn7ggPiBjdXA7CivmnYUgPiB0dWI7Civmm4EgPiBhbmQ7CivmmZ4gPiBkcnk7CivmmIQgPiBiaWc7CivmlrggPiBjdXQ7CivmlrIgPiBjdXQ7CivmlqggPiBheGU7CivmlLUgPiByYXA7CivmlLQgPiByYXA7Civmk7ogPiBwdXQ7CivmkZ8gPiBodWc7CivmkLAgPiBkaWc7CivmkKggPiBydWI7CivmkKcgPiBmYW47CivmkIMgPiBhbGw7CivmjLwgPiBydWI7CivmhbEgPiBzYWQ7CivmhLQgPiBzYWQ7Civmg5kgPiBzYWQ7CivlvKggPiBib3c7CivlvKQgPiBib3c7Civlu6wgPiBodXQ7CivluKMgPiBiYWc7CivlsJMgPiB5b3U7CivlsJIgPiB5b3U7Civlr5kgPiBiYWQ7CivlrJsgPiBhcHQ7CivlprUgPiBtYW47CivlprMgPiB5b3U7Civlpa0gPiByZWQ7CivlpZwgPiBiaWc7CivlpYwgPiBkb3Q7Civlo7ogPiBqYXI7Civlo7cgPiBqYXI7CivloqsgPiBjdXA7CivloIwgPiBkYW07Civln7YgPiBhcnQ7Civln6cgPiBkYW07CivlnIcgPiBhbGw7CivlmqIgPiBiYWc7CivlmowgPiBzaXA7CivllqsgPiBlYXQ7CivllZcgPiBlYXQ7CivljLggPiBib3g7CivlipogPiBjdXQ7CivlibggPiBjdXQ7Civlia4gPiBjdXQ7CivliYkgPiBjdXQ7CivliLIgPiBjdXQ7Civlh6MgPiBhbGw7Civlh6IgPiBhbGw7Civlh4MgPiBtdWQ7CivlhqsgPiBpY2U7Civlhp4gPiBmYXI7Civlg4kgPiBhbGw7Civlga8gPiBzb2I7CivlgJ4gPiBmYXI7Civkv4EgPiBiaWc7CivkvoogPiBiaWc7Civkvb0gPiBhaWQ7CivkupMgPiBoaXM7CivkuoEgPiBkcnk7CivkuaIgPiBsaWQ7CivkuLYgPiBkb3Q7Civks6AgPiBvd2w7CivksoogPiBmcnk7CivksKAgPiBnb2Q7Civkqp4gPiBiYWQ7CivkqpogPiBob3Q7CivkqYYgPiBvbGQ7CivkqL8gPiBiYWQ7CivkopsgPiBmYXI7CivkopMgPiBiZWQ7CivkoZwgPiBjYXI7CivknYYgPiBob2c7CivknKMgPiBqb3k7Civkl7YgPiB3YXg7Civkl6wgPiBiZWU7Civkl6YgPiBiZWU7CivkkqwgPiBub3Q7CivkkYsgPiBmYXQ7CivkkYogPiBmYXQ7CivkkYIgPiBmYXQ7CivkkL4gPiBmYXQ7CivkkLUgPiBmYXQ7CivkkKogPiBmYXQ7CivkkKkgPiBmYXQ7CivkkJ8gPiBmYXQ7CivkkI8gPiBmYXQ7CivkkI4gPiBmYXQ7CivkkIkgPiBmYXQ7Civkj7sgPiBjYW47Civkj7QgPiBkaW07Civkj6UgPiBkcnk7Civkj5wgPiBmYXQ7CivkjosgPiBmbHk7CivkjZ0gPiBuZXQ7CivkjZUgPiBuZXQ7CivkjZIgPiBuZXQ7CivkjKIgPiByYXc7Civki6wgPiBydWc7Civki54gPiB3ZWI7Civki4QgPiB3ZWI7CivkipEgPiBwYXk7Civkib4gPiBiYWQ7Civkhr4gPiBiaWc7CivkhrEgPiBiaWc7Civkga4gPiBzYWQ7CivjvpEgPiBmYXQ7CivjuosgPiBwaWc7CivjuYUgPiBhbGw7CivjuIEgPiBkcnk7Civjt6ogPiBmYXQ7Civjt6MgPiByZWQ7CivjtLwgPiB3ZXQ7CivjtLcgPiB3ZXQ7Civjs7QgPiBtdWQ7Civjsq0gPiBydWc7CivjspYgPiBmdXI7Civjro4gPiBjdXA7CivjroggPiBidXQ7Civjq5MgPiBhaXI7CivvqJYgPiBwaWc7CivvqIogPiBzZWU7CivvqIAgPiBjdXQ7Civvp74gPiB0ZWE7Civvp6MgPiBtdWQ7CivjpqcgPiBzYWQ7Civvpp0gPiBiYWQ7CivvpoIgPiBodXQ7CivjpoAgPiBqb3k7CivvpbggPiB0d287CivvpbUgPiByb2I7CivjpaIgPiBiYWQ7CivjpZEgPiBzYWQ7CivvpLggPiBkZXc7CivvpLQgPiBvbGQ7CivvpLEgPiBvYXI7CivvpKcgPiB3YXg7CivvpJwgPiBlZ2c7CivjpJogPiBqb3k7CivvpIwgPiBidXQ7CivjpIggPiBzYWQ7CivjoqAgPiBmYXI7CivjnLggPiBzaW47CivjmpogPiBiaWc7CivjmJQgPiBlYXQ7Civjl5QgPiBqb3k7CivjlYUgPiBiaWc7Civjk4kgPiBpY2U7CivjkrMgPiB0d287CivjkqogPiB0aW47Civjkb4gPiBqb3k7CivjkLogPiBhbGw7CivkuI0gPiBubzsKK+S4uiA+IGRvOwor5LmLID4gJydzOwor5b6DID4gZ287CivlvoAgPiBnbzsKK+S6jiA+IGluOwor6KGMID4gZ287CivlpoIgPiBpZjsKK+W8hCA+IGRvOwor5oiWID4gb3I7CivlroMgPiBpdDsKK+iLpSA+IGlmOwor54iyID4gZG87CivlkrEgPiB1czsKK+eCuiA+IGRvOwor6YCCID4gZ287CivlgJggPiBpZjsKK+aWvCA+IGluOwor5ZOfID4gYWg7Civll6ggPiBoaTsKK+W9nSA+IHlpOwor5YKlID4gaWY7CivplLEgPiBvejsKK+W+giA+IGdvOwor6ZKUID4gbWQ7CivkvLIgPiB3ZTsKK+mVpCA+IHBhOwor6ZWOID4gbnA7Civpk7kgPiBscjsKK+WkgiA+IGdvOwor6ZS/ID4gZXM7CivplJ0gPiB0YzsKK+mUmCA+IG5vOwor6ZSVID4gYWM7CivplIogPiBvejsKK+mOnSA+IHRjOwor6Yy8ID4gbnA7CivpjJkgPiBvejsKK+mLnSA+IG96Owor6L+sID4gZ287CivnuYQgPiBiZTsKK+ezjiA+IG1tOwor57KoID4gaG07Civnso0gPiBtbTsKK+eygSA+IGttOwor57G1ID4gZG07CivnpYIgPiBoZTsKK+eJoCA+IGl0Owor5pyBID4gaWY7CivmlLIgPiB1cDsKK+aJtSA+IGluOwor5b2eID4geWk7CivlvZwgPiB5aTsKK+W9myA+IHlpOwor5bu0ID4gZ287Civll4ggPiBvaDsKK+WWsiA+IGFoOwor5ZakID4gYWg7CivlkoEgPiBzbzsKK+WFoSA+IGhnOwor5YWeID4gbWc7CivlhZ0gPiBkZzsKK+WEuyA+IGlmOwor5YG6ID4gdXM7CivkvaIgPiBoZTsKK++oiCA+IGdvOwor76W0ID4gaWY7CivvpacgPiBubzsKK++lgyA+IGRvOwor5L2ZID4gaTsKK+WQviA+IGk7CivkuoggPiBpOwor5L6sID4gaTsKK+m6vyA+IGk7CivmqLYgPiBjOwor5YSCID4gaTsKK+OAgiA8PiAnLic7Cis6OiBmdWxsd2lkdGgtaGFsZndpZHRoICgpOwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9IYW5fTGF0aW5fRURJQ1QudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9IYW5fTGF0aW5fRURJQ1QudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmMmZmNGQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0hhbl9MYXRpbl9FRElDVC50eHQKQEAgLTAsMCArMSwxMTYwMjAgQEAKK++7vyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb3B5cmlnaHQgKGMpIDE5OTktMjAwMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworIyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfSGFuX0xhdGluX0VESUNULnR4dCx2ICQKKyMgJERhdGU6IDIwMDIvMDcvMjEgMDg6MjY6NDAgJAorIyAkUmV2aXNpb246IDEuMSAkCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBDb252ZXJ0IENKSyBjaGFyYWN0ZXJzCisjIE5vdGU6IGFkZHMgc3BhY2UgYmV0d2VlbiB0aGVtIGFuZCBsZXR0ZXJzLgorOjogKGhhbGZ3aWR0aC1mdWxsd2lkdGgpOworOjogKGthdGFrYW5hLWxhdGluKTsKKzo6IChoaXJhZ2FuYS1sYXRpbik7CisKKyR0ZXJtaW5hbFB1bmN0ID0gW1wuXCxcOlw7XD9cIe+8ju+8jO+8mu+8n++8geOAguOAge+8m1s6UGU6XVs6UGY6XV07CiskdGVybWluYWxQdW5jdCB7IH0gWzpMOl0gPiAnICc7CitbOkw6XSB7IH0gW1s6SGFuOl1bOlBzOl1bOlBpOl1dPiAnICc7CisKKyRrYXRhID0gW1vvvp7vvp/vvbDjg7xdWzprYXRha2FuYTpdXTsKKyRrYXRhIHsgfSBbWzpMOl0tJGthdGFdPiAnICc7CitbWzpMOl0tJGthdGFdIHsgfSAka2F0YSA+ICcgJzsKKworWzpoaXJhZ2FuYTpdIHsgfSBbWzpMOl0tWzpoaXJhZ2FuYTpdXSA+ICcgJzsKK1tbOkw6XS1bOmhpcmFnYW5hOl1dIHsgfSBbOmhpcmFnYW5hOl0+ICcgJzsKKworIyBTdGFydCBSQVcgZGF0YSBmb3IgY29udmVydGluZyBDSksgY2hhcmFjdGVycwor5rOV5a2m57O75aSn5a2m6Zmi5YWx6YCa5YWl5a2m6Kmm6aiTIDwgaG91Z2FrdWtlaWRhaWdha3Vpbmt5b3V0c3V1bnl1dWdha3VzaGlrZW5cIDsKK+exs+WbveWkp+WtpuWFpeWtpuWFsemAmuippumokyA8IGJlaWtva3VkYWlnYWt1bnl1dWdha3VreW91dHN1dXNoaWtlblwgOwor5pyd6a6u5rCR5Li75Li7576p5Lq65rCR5YWx5ZKM5Zu9IDwgY2hvdXNlbm1pbnNodXNodWdpamlubWlua3lvdXdha29rdVwgOwor6Ieq5YuV6LuK5pCN5a6z6LOg5YSf6LKs5Lu75L+d6Zm6IDwgamlkb3VzaGFzb25nYWliYWlzaG91c2VraW5pbmhva2VuXCA7Civoh6jlhbXpl5jogIXnmobpmaPoo4LlnKjliY0gPCByaW5weW91dG91c2hha2FpamlucmV0c3V6YWl6ZW5cIDsKK+aXpeacrOWKtOWDjee1hOWQiOe3j+ipleitsOS8miA8IG5paG9ucm91ZG91a3VtaWFpc291aHlvdWdpa2FpXCA7CivlpKrlubPmtIvmqZ/morDnv7voqLPljZTkvJogPCB0YWloZWl5b3VraWthaWhvbicneWFrdWt5b3VrYWlcIDsKK+WLpOWKtOiAheiyoeeUo+W9ouaIkOS/g+mAsiA8IGtpbnJvdXNoYXphaXNhbmtlaXNlaXNva3VzaGluXCA7CivotoXotoXlpKfopo/mqKHpm4bnqY3lm57ot68gPCBjaG91Y2hvdWRhaWtpYm9zaHV1c2VraWthaXJvXCA7CivntYzmuIjljZTlipvplovnmbrmqZ/mp4sgPCBrZWl6YWlreW91cnlva3VrYWloYXRzdWtpa291XCA7CivljJfmtbfpgZPplovnmbrluoHplbflrpggPCBob2trYWlkb3VrYWloYXRzdWNob3VjaG91a2FuXCA7Civmi5jmnZ/lkI3nsL/lvI/mr5Tkvovku6PooajliLYgPCBrb3Vzb2t1bWVpYm9oaXJlaWRhaWh5b3VzZWlcIDsKK+efpeitmOmbhue0hOWei+eUo+alrSA8IGNoaXNoaWtpc2h1dXlha3VnYXRhc2FuZ3lvdVwgOwor5aSW5Zu95Lq655m76Yyy6Ki85piO5pu4IDwgZ2Fpa29rdWppbnRvdXJva3VzaG91bWVpc2hvXCA7CivlpKrlubPmtIvlronlhajkv53pmpzmnaHntIQgPCB0YWloZWl5b3Vhbnplbmhvc2hvdWpvdXlha3VcIDsKK+aTjee4puW4remfs+WjsOiomOmMsuijhee9riA8IHNvdWp1dXNla2lvbnNlaWtpcm9rdXNvdWNoaVwgOwor5oim55Wl5YW15Zmo5YmK5rib5p2h57SEIDwgc2Vucnlha3VoZWlraXNha3VnZW5qb3V5YWt1XCA7CivoiKrnqbrlroflrpnmioDooZPnoJTnqbbmiYAgPCBrb3VrdXV1Y2h1dWdpanV0c3VrZW5reXV1am9cIDsKK+Wbvemam+apn+aisOe/u+ios+WNlOS8miA8IGtva3VzYWlraWthaWhvbicneWFrdWt5b3VrYWlcIDsKK+iHquW+i+elnue1jOWkseiqv+eXhyA8IGppcml0c3VzaGlua2Vpc2hpdGNob3VzaG91XCA7Civlm73pmpvpm7vmsJfpgJrkv6HpgKPlkIggPCBrb2t1c2FpZGVua2l0c3V1c2hpbnJlbmdvdVwgOwor5rKW57iE6ZaL55m65bqB6ZW35a6YIDwgb2tpbmF3YWthaWhhdHN1Y2hvdWNob3VrYW5cIDsKK+a1t+Wklue1jOa4iOWNlOWKm+WfuumHkSA8IGthaWdhaWtlaXphaWt5b3VyeW9rdWtpa2luXCA7Civml6XnsbPlronlhajkv53pmpzmnaHntIQgPCBuaWNoaWJlaWFuemVuaG9zaG91am91eWFrdVwgOwor5rWu5YuV5bCP5pWw54K55ryU566X5qmf5qeLIDwgZnVkb3VzaG91c3V1dGVuJydlbnphbmtpa291XCA7Civnj77ph5Hoh6rli5XpoJDph5HmlK/miZXmqZ8gPCBnZW5raW5qaWRvdXlva2luc2hpaGFyYWlraVwgOwor5byB6Ki85rOV55qE5ZSv54mp6KuWIDwgYmVuc2hvdWhvdXRla2l5dWlidXRzdXJvblwgOwor5oim5rKh6ICF6L+95oK86KiY5b+15pelIDwgc2VuYm90c3VzaGF0c3VpdG91a2luZW5iaVwgOwor5Zu96Zqb5Y2U5Yqb5LqL5qWt5ZujIDwga29rdXNhaWt5b3VyeW9rdWppZ3lvdWRhblwgOwor5oim6KGT6Iiq56m657Wx5Yi25pys6YOoIDwgc2VuanV0c3Vrb3VrdXV0b3VzZWlob25idVwgOwor5bel5qWt6auY562J5bCC6ZaA5a2m5qChIDwga291Z3lvdWtvdXRvdXNlbm1vbmdha2tvdVwgOwor5YyX5aSn6KW/5rSL5p2h57SE5qmf5qeLIDwga2l0YXRhaXNlaXlvdWpvdXlha3VraWtvdVwgOwor6LaF5aSn6KaP5qih6ZuG56mN5Zue6LevIDwgY2hvdWRhaWtpYm9zaHV1c2VraWthaXJvXCA7CivlrpfmlZnnmoTni6znq4vmgKcgPCBzaHV1a3lvdXRla2lkb2t1cml0c3VzZWlcIDsKK+WMluWtpuWFteWZqOemgeatouadoee0hCA8IGthZ2FrdWhlaWtpa2luc2hpam91eWFrdVwgOwor6Zai56iO6LK/5piT5LiA6Iis5Y2U5a6aIDwga2FuemVpYm91ZWtpaXBwYW5reW91dGVpXCA7CivkuLvovp7pp4bli5Xlj6Xmp4vpgKDmlofms5UgPCBzaHVqaWt1ZG91a3Vrb3V6b3VidW5wb3VcIDsKK+ebtOaOpeeFp+a6luWwhOaSgyA8IGNob2t1c2V0c3VzaG91anVuc2hhZ2VraVwgOwor57eP5ZCI55qE5ZOB6LOq566h55CGIDwgc291Z291dGVraWhpbnNoaXRzdWthbnJpXCA7CivnlpHkvLznm7TmjqXnm67nmoToqp4gPCBnaWppY2hva3VzZXRzdW1va3V0ZWtpZ29cIDsKK+WcqOeVmeacn+mWk+abtOaWsOioseWPryA8IHphaXJ5dXVraWthbmtvdXNoaW5reW9rYVwgOwor54m55q6K5Y+W5omx6YO15L6/IDwgdG9rdXNodXRvcmlhdHN1a2FpeXV1YmluXCA7Civkub7mub/nkIPmub/luqboqIggPCBrYW5zaGl0c3VreXV1c2hpdHN1ZG9rZWlcIDsKK+S4h+WbveiRl+S9nOaoqeadoee0hCA8IGJhbmtva3VjaG9zYWt1a2Vuam91eWFrdVwgOwor5LiH5Zu95Zu96Zqb6Z+z5qiZ5paH5a2XIDwgYmFua29rdWtva3VzYWlvbnB5b3Vtb2ppXCA7CivoqIDoqp7lrabnmoTlrp/lnKjoq5YgPCBnZW5nb2dha3V0ZWtpaml0c3V6YWlyb25cIDsKK+WGoOeKtuWLleiEiOihgOagk+eXhyA8IGthbmpvdWRvdW15YWt1a2Vzc2Vuc2hvdVwgOwor56eR5a2m5oqA6KGT5bqB6ZW35a6YIDwga2FnYWt1Z2lqdXRzdWNob3VjaG91a2FuXCA7CivmtbfmtIvmipXmo4Topo/liLbmnaHntIQgPCBrYWl5b3V0b3VraWtpc2Vpam91eWFrdVwgOwor5Zyn5a+G6ZmN5LyP5b+c5YqbIDwgYXRzdW1pdHN1a291ZnVrdW91cnlva3VcIDsKK+WFrOiqjeWNuOWjsualreiAhSA8IGtvdW5pbicnb3Jvc2hpdXJpZ3lvdXNoYVwgOwor6LWk6KGA55CD5rKI6ZmN6YCf5bqmIDwgc2Vra2Vra3l1dWNoaW5rb3Vzb2t1ZG9cIDsKK+efs+ayuei8uOWHuuWbveapn+aniyA8IHNla2l5dXl1c2h1dHN1a29rdWtpa291XCA7CivlhazlhbHogbfmpa3lronlrprmiYAgPCBrb3VreW91c2hva3VneW91YW50ZWlqb1wgOwor5oim6KGT6Iiq56m657Wx5Yi254+tIDwgc2VuanV0c3Vrb3VrdXV0b3VzZWloYW5cIDsKK+mHjueUn+WLleeJqeS/neitt+Wbo+S9kyA8IHlhc2VpZG91YnV0c3Vob2dvZGFudGFpXCA7Civoh6rli5XliJfou4rliLblvqHoo4Xnva4gPCBqaWRvdXJlc3NoYXNlaWd5b3NvdWNoaVwgOwor6Ieq5YuV6YeR6Yqt5Ye65YWl5qmfIDwgamlkb3VraW5zZW5zaHV0c3VueXV1a2lcIDsKK+WkqeeEtuizh+a6kOS/neitt+irluiAhSA8IHRlbicnbmVuc2hpZ2VuaG9nb3JvbnNoYVwgOwor5Zyw6ZyH6Zu354Gr5LqL6Kaq54i2IDwgamlzaGlua2FtaW5hcmlrYWppb3lhamlcIDsKK+mdnuW4uOS6i+aFi+WvvuWHpuioiOeUuyA8IGhpam91aml0YWl0YWlzaG9rZWlrYWt1XCA7CivmoLjliIboo4LnlJ/miJDniakgPCBrYWt1YnVucmV0c3VzZWlzZWlidXRzdVwgOwor5aSa6IKi6YG45oqe5byP6Kmm5ZWPIDwgdGFzaGlzZW50YWt1c2hpa2lzaGltb25cIDsKK+aWsOmWouilv+Wbvemam+epuua4ryA8IHNoaW5rYW5zYWlrb2t1c2Fpa3V1a291XCA7Civogbfmpa3liKXpm7voqbHluLMgPCBzaG9rdWd5b3ViZXRzdWRlbndhY2hvdVwgOwor6Ieq5YuV5YiX6LuK5YGc5q2i6KOF572uIDwgamlkb3VyZXNzaGF0ZWlzaGlzb3VjaGlcIDsKK+iogOiqnuWtpueahOims+W/teirliA8IGdlbmdvZ2FrdXRla2lrYW4nJ25lbnJvblwgOwor5b6M55m655m65bGV6YCU5LiK5Zu9IDwga291aGF0c3VoYXR0ZW50b2pvdWtva3VcIDsKK+aKuea2iOeZu+mMsuiovOaYjuabuCA8IG1hc2hvdXRvdXJva3VzaG91bWVpc2hvXCA7CivntYzmuIjkvIHnlLvluoHplbflrpggPCBrZWl6YWlraWtha3VjaG91Y2hvdWthblwgOwor5YaN55Sf5LiN6Imv5oCn6LKn6KGAIDwgc2Fpc2VpZnVyeW91c2VpaGlua2V0c3VcIDsKK+eBq+WKm+aUr+aPtOiqv+aVtOe3miA8IGthcnlva3VzaGllbmNob3VzZWlzZW5cIDsKK+WFpeWtpuWFsemAmuippumokyA8IG55dXVnYWt1a3lvdXRzdXVzaGlrZW5cIDsKK+egtOWjiua0u+WLlemYsuatouazlSA8IGhha2Fpa2F0c3Vkb3Vib3VzaGlob3VcIDsKK+WupOWGheeuoeW8pualveWboyA8IHNoaXRzdW5haWthbmdlbmdha3VkYW5cIDsKK+adseS6rOagquW8j+W4guWgtCA8IHRvdWt5b3VrYWJ1c2hpa2lzaGlqb3VcIDsKK+eiuueOh+WvhuW6pumWouaVsCA8IGtha3VyaXRzdW1pdHN1ZG9rYW5zdXVcIDsKK+WOn+WtkOWKm+eZuumbu+aJgCA8IGdlbnNoaXJ5b2t1aGF0c3VkZW5zaG9cIDsKK+S7o+ihqOWPlue3oOW9uSA8IGRhaWh5b3V0b3Jpc2hpbWFyaXlha3VcIDsKK+WPluaJseiqrOaYjuabuCA8IHRvcmlhdHN1a2Fpc2V0c3VtZWlzaG9cIDsKK+i1pOWNgeWtl+Wbvemam+WnlOWToeS8miA8IHNla2lqdXVqaWtva3VzYWlpaW5rYWlcIDsKK+WLp+WWhOaHsuaCquWwj+iqrCA8IGthbnplbmNob3Vha3VzaG91c2V0c3VcIDsKK+Wbvemam+i/lOS/oeWIh+aJi+WIuCA8IGtva3VzYWloZW5zaGlua2l0dGVrZW5cIDsKK+irh+ipseihqOekuuani+mAoOeQhuirliA8IGRhbndhaHlvdWppa291em91cmlyb25cIDsKK+WFseeUo+WFmuS4reWkruWnlOWToeS8miA8IGt5b3VzYW50b3VjaHV1b3VpaW5rYWlcIDsKK+adreWRqOmdouaRqeaTpuWKmyA8IGt1aXNodXVtZW5tYXNhdHN1cnlva3VcIDsKK+S4reiPr+S6uuawkeWFseWSjOWbvSA8IGNodXVrYWppbm1pbmt5b3V3YWtva3VcIDsKK+adsea1t+mBk+S6lOWNgeS4ieasoSA8IHRvdWthaWRvdWdvanV1c2FudHN1Z2lcIDsKK+Wuh+WumemWi+eZuuS6i+alreWboyA8IHVjaHV1a2FpaGF0c3VqaWd5b3VkYW5cIDsKK+awkeS4u+WFmuWFqOWbveWnlOWToeS8miA8IG1pbnNodXRvdXplbmtva3VpaW5rYWlcIDsKK+iLseiqnuWfuuekjuiDveWKm+ippumokyA8IGVpZ29raXNvbm91cnlva3VzaGlrZW5cIDsKK+mWk+aOpeeFp+a6luWwhOaSgyA8IGthbnNldHN1c2hvdWp1bnNoYWdla2lcIDsKK+S4iei7uOWcp+e4ruippumok+apnyA8IHNhbmppa3Vhc3NodWt1c2hpa2Vua2lcIDsKK+imluiBtOiAheWPguWKoOeVque1hCA8IHNoaWNob3VzaGFzYW5rYWJhbmd1bWlcIDsKK+W3numam+mAmuWVhuWnlOWToeS8miA8IHNodXVzYWl0c3V1c2hvdWlpbmthaVwgOwor5paw6KaP5qCq5byP5YWs6ZaLIDwgc2hpbmtpa2FidXNoaWtpa291a2FpXCA7Civlkajms6LmlbDlpInmj5voo4Xnva4gPCBzaHV1aGFzdXVoZW5rYW5zb3VjaGlcIDsKK+Wtpue/kuaMh+WwjuimgemgmCA8IGdha3VzaHV1c2hpZG91eW91cnlvdVwgOwor5oWi5oCn55ay5Yq055eH5YCZ576kIDwgbWFuc2VpaGlyb3VzaG91a291Z3VuXCA7CivlhazlrrPlr77nrZbln7rmnKzms5UgPCBrb3VnYWl0YWlzYWt1a2lob25ob3VcIDsKK+aXqeeZuuaAp+eXtOWRhueXhyA8IHNvdWhhdHN1c2VpY2hpaG91c2hvdVwgOwor57WM5riI5Zuj5L2T6YCj5ZCI5LyaIDwga2VpemFpZGFudGFpcmVuZ291a2FpXCA7CivmiKbpl5jpm7vlrZDmiKbmg4XloLEgPCBzZW50b3VkZW5zaGlzZW5qb3Vob3VcIDsKK+S/oeeUqOWNlOWQjOe1hOWQiCA8IHNoaW4nJ3lvdWt5b3Vkb3VrdW1pYWlcIDsKK+ePvumHkeiHquWLleaUr+aJleapnyA8IGdlbmtpbmppZG91c2hpaGFyYWlraVwgOwor5bym5qW95Zub6YeN5aWP5puyIDwgZ2VuZ2FrdXNoaWp1dXNvdWt5b2t1XCA7CivmvJTnubnnmoToqqzmmI7ms5UgPCBlbicnZWtpdGVraXNldHN1bWVpaG91XCA7CivmnIDpq5jntYzllrbosqzku7vogIUgPCBzYWlrb3VrZWllaXNla2luaW5zaGFcIDsKK+a3seWcqOaAp+ecn+iPjOeXhyA8IHNoaW56YWlzZWlzaGlua2luc2hvdVwgOwor6KOF55Sy5Lq65ZOh6YGL5pCs6LuKIDwgc291a291amluJydpbicndW5wYW5zaGFcIDsKK+S4gOiIrOWRveS7pOa8lOeul+apn+aniyA8IGlwcGFubWVpcmVpZW56YW5raWtvdVwgOwor57Wx546H5p2f57ib55CG6KuWIDwgdG91c290c3Vzb2t1YmFrdXJpcm9uXCA7CivmnKzmhYvmgKfpq5jooYDlnKcgPCBob250YWlzZWlrb3VrZXRzdWF0c3VcIDsKK+aXpeacrOiqnuiDveWKm+ippumokyA8IG5paG9uZ29ub3VyeW9rdXNoaWtlblwgOwor6Zm45LiK56uv5bGA6KOF572uIDwgcmlrdWpvdXRhbmt5b2t1c291Y2hpXCA7Civpn7Pnr4DkuLvpn7PnmoTlrZDpn7MgPCBvbnNldHN1c2h1b250ZWtpc2hpaW5cIDsKK+aXpeexs+iyv+aYk+aRqeaTpiA8IG5pY2hpYmVpYm91ZWtpbWFzYXRzdVwgOwor6Ki85Yi45Y+W5byV5aeU5ZOh5LyaIDwgc2hvdWtlbnRvcmloaWtpaWlua2FpXCA7CivpgJrllYbnlKPmpa3lpKfoh6MgPCB0c3V1c2hvdXNhbmd5b3VkYWlqaW5cIDsKK+acgOmrmOiyoeWLmeiyrOS7u+iAhSA8IHNhaWtvdXphaW11c2VraW5pbnNoYVwgOwor55+t6Led6Zui6Zui552A6Zm45qmfIDwgdGFua3lvcmlyaWNoYWt1cmlrdWtpXCA7CivpgJrllYboiKrmtbfmnaHntIQgPCB0c3V1c2hvdWtvdWthaWpvdXlha3VcIDsKK+apn+iDveWNmOS4gOWMluaWh+azlSA8IGtpbm91dGFuJydpdHN1a2FidW5wb3VcIDsKK+efpeiDveaDheWgseeglOeptumDqCA8IGNoaW5vdWpvdWhvdWtlbmt5dXVidVwgOwor5Yqg5Zyn5rC05Z6L5Y6f5a2Q54KJIDwga2FhdHN1c3VpZ2F0YWdlbnNoaXJvXCA7CivnkrDlpKrlubPmtIvlnLDpnIfluK8gPCBrYW50YWloZWl5b3VqaXNoaW50YWlcIDsKK+i7n+WIpOWumuitmOWIpeWZqCA8IG5hbmhhbnRlaXNoaWtpYmV0c3VraVwgOwor5Zu956uL5Y2a54mp6aSoIDwga29rdXJpdHN1aGFrdWJ1dHN1a2FuXCA7Civnqbrmg7Pnp5HlrablsI/oqqwgPCBrdXVzb3VrYWdha3VzaG91c2V0c3VcIDsKK+S6uueoruW3ruWIpeS4u+e+qeiAhSA8IGppbnNodXNhYmV0c3VzaHVnaXNoYVwgOwor5paw5YWl56S+5ZOh5pWZ6IKyIDwgc2hpbicnbnl1dXNoYWlua3lvdWlrdVwgOwor5o6o5aWo5paH54yu55uu6YyyIDwgc3Vpc2hvdWJ1bmtlbm1va3Vyb2t1XCA7Civpm4bkuK3msrvnmYLlrqQgPCBzaHV1Y2h1dWNoaXJ5b3VzaGl0c3VcIDsKK+W+s+W3neS4ieS7o+WutuWFiSA8IHRva3VnYXdhc2FuZGFpaWVtaXRzdVwgOwor6Ieq54S255Kw5aKD5L+d5YWo5rOVIDwgc2hpemVua2Fua3lvdWhvemVuaG91XCA7CivnlJ/mtLvljZTlkIzntYTlkIggPCBzZWlrYXRzdWt5b3Vkb3VrdW1pYWlcIDsKK+eSsOWkquW5s+a0i+mAoOWxseW4ryA8IGthbnRhaWhlaXlvdXpvdXphbnRhaVwgOwor6KGM5YuV5Li7576p5b+D55CG5a2mIDwga291ZG91c2h1Z2lzaGlucmlnYWt1XCA7Civmlpnph5HliKXntI3pg7Xkvr8gPCByeW91a2luYmV0c3Vub3V5dXViaW5cIDsKK+S4rei3nembouaguOaIpuWKmyA8IGNodXVreW9yaWtha3VzZW5yeW9rdVwgOwor56ys5LiA5qyh5LiW55WM5aSn5oimIDwgZGFpaWNoaWppc2VrYWl0YWlzZW5cIDsKK+i+sualreWNlOWQjOe1hOWQiCA8IG5vdWd5b3VreW91ZG91a3VtaWFpXCA7CivlpKfpmbjmqKrmlq3piYTpgZMgPCB0YWlyaWt1b3VkYW50ZXRzdWRvdVwgOwor55u06L2E5qSN5rCR5ZywIDwgY2hva2thdHN1c2hva3VtaW5jaGlcIDsKK+WkieWLleeCuuabv+ebuOWgtOWItiA8IGhlbmRvdWthd2FzZXNvdWJhc2VpXCA7CivmnKjpgKDlu7rnr4nniakgPCBtb2t1em91a2VuY2hpa3VidXRzdVwgOwor6auY5YiG5a2Q5ZC45Y+O5L2TIDwga291YnVuc2hpa3l1dXNodXV0YWlcIDsKK+atr+WGheeZguazleWwgumWgOWMuyA8IHNoaWthcnlvdWhvdXNlbm1vbicnaVwgOwor5pel57Gz5qeL6YCg5Y2U6K2wIDwgbmljaGliZWlrb3V6b3VreW91Z2lcIDsKK+apn+aisOe/u+ios+WNlOS8miA8IGtpa2FpaG9uJyd5YWt1a3lvdWthaVwgOwor5qSN54mp5oCn6JuL55m9IDwgc2hva3VidXRzdXNlaXRhbnBha3VcIDsKK+S/oeeUqOWPluW8leWFiCA8IHNoaW4nJ3lvdXRvcmloaWtpc2FraVwgOwor5Lit5aSu6KGM5pS/5a6Y5bqBIDwgY2h1dW91Z3lvdXNlaWthbmNob3VcIDsKK+WMl+Wkp+ilv+a0i+adoee0hCA8IGtpdGF0YWlzZWl5b3Vqb3V5YWt1XCA7CivluLjli5nlj5bnt6DlvbkgPCBqb3VtdXRvcmlzaGltYXJpeWFrdVwgOwor55Kw5aSq5bmz5rSL54Gr5bGx5bivIDwga2FudGFpaGVpeW91a2F6YW50YWlcIDsKK+mbu+awl+mAmuS/oeWkp+WtpiA8IGRlbmtpdHN1dXNoaW5kYWlnYWt1XCA7CivoirPpppnml4/ljJblkIjniakgPCBob3Vrb3V6b2t1a2Fnb3VidXRzdVwgOwor5LiD5pif5aSp6YGT6JmrIDwgbmFuYWhvc2hpdGVudG91bXVzaGlcIDsKK+WGhemWo+WumOaIv+mVt+WumCA8IG5haWtha3VrYW5ib3VjaG91a2FuXCA7Civlrp/mg4Xoqr/mn7vlp5Tlk6HkvJogPCBqaXRzdWpvdWNob3VzYWlpbmthaVwgOwor5bym5qW95LqU6YeN5aWP5puyIDwgZ2VuZ2FrdWdvanV1c291a3lva3VcIDsKK+awkeaXj+Wkp+iZkOauuiA8IG1pbnpva3VkYWlneWFrdXNhdHN1XCA7Civnp5Hlrabln7rnpI7noJTnqbbmiYAgPCBrYWdha3VraXNva2Vua3l1dXNob1wgOwor6LaK5bm055Sf5qSN54mpIDwgZXRzdW5lbnNlaXNob2t1YnV0c3VcIDsKK+WkieW9oueUn+aIkOe1seiqnuirliA8IGhlbmtlaXNlaXNlaXRvdWdvcm9uXCA7Civmp4vmiJDntKDntbHlvqEgPCBrb3VzZWlzb2tvdXpvdXRvdWd5b1wgOwor5a6H5a6Z6ZaL55m66KiI55S7IDwgdWNodXVrYWloYXRzdWtlaWtha3VcIDsKK+exs+mAo+mCpuiIquepuuWxgCA8IGJlaXJlbnBvdWt1dWtvdWt5b2t1XCA7CivlpKfopo/mqKHpm4bnqY3lm57ot68gPCBkYWlraWJvc2h1dXNla2lrYWlyb1wgOwor5Y2X54Sh5aaZ5rOV6JOu6I+v57WMIDwgbmFtdW15b3Vob3VyZW5nZWt5b3VcIDsKK+WkluWbveS6uueZu+mMsuazlSA8IGdhaWtva3VqaW50b3Vyb2t1aG91XCA7CivlhbHnlKPlhZrmlL/msrvlsYAgPCBreW91c2FudG91c2VpamlreW9rdVwgOwor5pyq56K66KqN6aOb6KGM54mp5L2TIDwgbWlrYWt1bmluaGlrb3VidXR0YWlcIDsKK+S4gOmFuOWMlueCree0oOS4reavkiA8IGlzc2Fua2F0YW5zb2NodXVkb2t1XCA7CivmnZ/nuJvntpnmib/ljp/nkIYgPCBzb2t1YmFrdWtlaXNob3VnZW5yaVwgOwor55u05o6l55uu55qE6KqeIDwgY2hva3VzZXRzdW1va3V0ZWtpZ29cIDsKK+WwguWLmeWPlue3oOW9uSA8IHNlbm11dG9yaXNoaW1hcml5YWt1XCA7CivkuIDlubTnlJ/mpI3niakgPCBpY2hpbmVuc2Vpc2hva3VidXRzdVwgOwor6bq76Jas5Y+W57eg54+tIDwgbWF5YWt1dG9yaXNoaW1hcmloYW5cIDsKK+S4iei7uOWcp+e4ruippumokyA8IHNhbmppa3Vhc3NodWt1c2hpa2VuXCA7Civpurvolqzlj5bnt6Dms5UgPCBtYXlha3V0b3Jpc2hpbWFyaWhvdVwgOwor56m66LuN6YCj57Wh5bCG5qChIDwga3V1Z3VucmVucmFrdXNob3Vrb3VcIDsKK+WNuOWjsueJqeS+oeaMh+aVsCA8IG9yb3NoaXVyaWJ1a2thc2hpc3V1XCA7CivlhpnnnJ/liKTlrprmsbrli50gPCBzaGFzaGluaGFudGVpa2Vzc2hvdVwgOwor5YmN56uL6IW66IKl5aSn55eHIDwgemVucml0c3VzZW5oaWRhaXNob3VcIDsKK+WFrOato+WPluW8leWnlOWToeS8miA8IGtvdXNlaXRvcmloaWtpaWlua2FpXCA7CivoqqzmmI7nmoTlpqXlvZPmgKcgPCBzZXRzdW1laXRla2lkYXRvdXNlaVwgOwor5Lit5b+D55qE5b255YmyIDwgY2h1dXNoaW50ZWtpeWFrdXdhcmlcIDsKK+eojuW8leWJjeW9k+acn+WIqeebiiA8IHplaWJpa2ltYWV0b3VraXJpZWtpXCA7CivpgKPpgqblj5blvJXlp5Tlk6HkvJogPCByZW5wb3V0b3JpaGlraWlpbmthaVwgOwor5YWx6YCa5LiA5qyh6Kmm6aiTIDwga3lvdXRzdXVpY2hpamlzaGlrZW5cIDsKK+esrOS4ieeorumDteS+v+eJqSA8IGRhaXNhbnNodXl1dWJpbmJ1dHN1XCA7Civlj4vlpb3pgJrllYboiKrmtbcgPCB5dXVrb3V0c3V1c2hvdWtvdWthaVwgOwor54Sh5ouF5L+d6LK45LuY6YeRIDwgbXV0YW5wb2thc2hpdHN1a2VraW5cIDsKK+a1geihjOaAp+iAs+S4i+iFuueCjiA8IHJ5dXVrb3VzZWlqaWthc2VuJydlblwgOwor5b+F6KaB5Y2B5YiG5p2h5Lu2IDwgaGl0c3V5b3VqdXVidW5qb3VrZW5cIDsKK+eyvuelnueahOaMh+WwjuiAhSA8IHNlaXNoaW50ZWtpc2hpZG91c2hhXCA7Civljp/lrZDniannkIblrabogIUgPCBnZW5zaGlidXRzdXJpZ2FrdXNoYVwgOwor57K+5a+G5qmf5qKw5bel5qWtIDwgc2VpbWl0c3VraWthaWtvdWd5b3VcIDsKK+WGjeWFpeWbveioseWPr+abuCA8IHNhaW55dXVrb2t1a3lvdWthc2hvXCA7CivlrprlvaLlpJbpg7Xkvr/niakgPCB0ZWlrZWlnYWl5dXViaW5idXRzdVwgOwor6LaF5Lim5YiX6KiI566X5qmfIDwgY2hvdWhlaXJldHN1a2Vpc2Fua2lcIDsKK+S4reaeouelnue1jOezu+e1sSA8IGNodXVzdXVzaGlua2Vpa2VpdG91XCA7CivkvJ3pgIHliLblvqHmi6HlvLUgPCBkZW5zb3VzZWlneW9rYWt1Y2hvdVwgOwor5Y+O57iu5pyf6KGA5ZynIDwgc2h1dXNodWt1a2lrZXRzdWF0c3VcIDsKK+aXpeS4reWPi+WlveWNlOS8miA8IG5pdGNodXV5dXVrb3VreW91a2FpXCA7Civnt4/nkIblupznt4/li5nplbflrpggPCBzb3VyaWZ1c291bXVjaG91a2FuXCA7Civlm73msJHph5Hono3lhazluqsgPCBrb2t1bWlua2luJyd5dXVrb3Vrb1wgOwor5Y2Y5a2Q6JGJ5qSN54mpIDwgdGFuc2hpeW91c2hva3VidXRzdVwgOwor5Y+j6L665Y2Y57SU55ax55a5IDwga291aGVudGFuanVuaG91c2hpblwgOwor6YCj56uL5pa556iL5byPIDwgcmVucml0c3Vob3V0ZWlzaGlraVwgOwor6ZuG5Zuj5a6J5YWo5L+d6ZqcIDwgc2h1dWRhbicnYW56ZW5ob3Nob3VcIDsKK+WQjeelnumrmOmAn+mBk+i3ryA8IG1laXNoaW5rb3Vzb2t1ZG91cm9cIDsKK+aUvuWwhOaAp+mZjeS4i+eJqSA8IGhvdXNoYXNlaWtvdWthYnV0c3VcIDsKK+eSsOWig+S/neitt+S4u+e+qeiAhSA8IGthbmt5b3Vob2dvc2h1Z2lzaGFcIDsKK+WKo+aAp+mBuuS8neW9ouizqiA8IHJlc3NlaWlkZW5rZWlzaGl0c3VcIDsKK+aXpeacrOmZuOS4iuiHquihm+maiiA8IG5paG9ucmlrdWpvdWppZWl0YWlcIDsKK+mAmuWVhueUo+alreecgSA8IHRzdXVzaG91c2FuZ3lvdXNob3VcIDsKK+WIneacn+mBuOaKnumgheebriA8IHNob2tpc2VudGFrdWtvdW1va3VcIDsKK+WFqOWbvea0pea0pea1pua1piA8IHplbmtva3V0c3V0c3V1cmF1cmFcIDsKK+S/oeS7u+e1seayu+WItuW6piA8IHNoaW4nJ25pbnRvdWNoaXNlaWRvXCA7CivkuLvopoHpg6jntYLnq6/lnosgPCBzaHV5b3VidXNodXV0YW5nYXRhXCA7CivlkIjmiJDljJblrablt6Xmpa0gPCBnb3VzZWlrYWdha3Vrb3VneW91XCA7Civljp/lrZDlipvnmbrpm7sgPCBnZW5zaGlyeW9rdWhhdHN1ZGVuXCA7Civlm73msJHkvZPogrLlpKfkvJogPCBrb2t1bWludGFpaWt1dGFpa2FpXCA7Civlm73pmpvpm7vkv6Hpm7voqbEgPCBrb2t1c2FpZGVuc2hpbmRlbndhXCA7Civpm7vlrZDos4fph5HmjK/mm78gPCBkZW5zaGlzaGlraW5mdXJpa2FlXCA7Civnm7TmjqXmsJHkuLvliLYgPCBjaG9rdXNldHN1bWluc2h1c2VpXCA7CivpgLLlh7rliLbpmZDnt5ogPCBzaGluc2h1dHN1c2VpZ2Vuc2VuXCA7CivmoKrlvI/lj5blvJXmiYAgPCBrYWJ1c2hpa2l0b3JpaGlraWpvXCA7CivlvKbmpb3lm5vph43lpY/lm6MgPCBnZW5nYWt1c2hpanV1c291ZGFuXCA7CivoiKrnqbrkuqTpgJrnrqHliLYgPCBrb3VrdXVrb3V0c3V1a2Fuc2VpXCA7CivosqHmlL/lnYfooaHoqIjnlLsgPCB6YWlzZWlraW5rb3VrZWlrYWt1XCA7Civnm7TmjqXmlZnmjojms5UgPCBjaG9rdXNldHN1a3lvdWp1aG91XCA7Civml6XmnKzopo/moLzljZTkvJogPCBuaXBwb25raWtha3VreW91a2FpXCA7Civli5XnianmhJvorbfljZTkvJogPCBkb3VidXRzdWFpZ29reW91a2FpXCA7Civlj4zlrZDokYnmpI3niakgPCBzb3VzaGl5b3VzaG9rdWJ1dHN1XCA7CivnsbPoiKrnqbrlroflrpnlsYAgPCBiZWlrb3VrdXV1Y2h1dWt5b2t1XCA7Civml6XmnKzlrabooZPkvJrorbAgPCBuaWhvbmdha3VqdXRzdWthaWdpXCA7CivoiqXlt53pvo3kuYvku4sgPCBha3V0YWdhd2FyeXV1bm9zdWtlXCA7CivosrjlgJ/lr77nhafooaggPCB0YWlzaGFrdXRhaXNob3VoeW91XCA7CivlhazlrprlibLlvJXnjocgPCBrb3V0ZWl3YXJpYmlraXJpdHN1XCA7CivkurrplpPnkrDlooPlrqPoqIAgPCBuaW5nZW5rYW5reW91c2VuZ2VuXCA7CivlvLfov6vnpZ7ntYznl4cgPCBreW91aGFrdXNoaW5rZWlzaG91XCA7CivlrrblroXmjZzntKLku6TnirYgPCBrYXRha3Vzb3VzYWt1cmVpam91XCA7CivllYbmpa3kv6HnlKjnirYgPCBzaG91Z3lvdXNoaW4nJ3lvdWpvdVwgOwor5a6J5Zyf5qGD5bGx5pmC5LujIDwgYXp1Y2hpbW9tb3lhbWFqaWRhaVwgOwor55Sf55CG55qE6aOf5aGp5rC0IDwgc2Vpcml0ZWtpc2hva3VlbnN1aVwgOwor55Kw5aSq5bmz5rSL6Ku45Zu9IDwga2FudGFpaGVpeW91c2hva29rdVwgOwor54Gr5Yqb5pSv5o+06KiI55S7IDwga2FyeW9rdXNoaWVua2Vpa2FrdVwgOwor6Ly45Ye65L+h55So54q2IDwgeXVzaHV0c3VzaGluJyd5b3Vqb3VcIDsKK+mHkeWcsOmHkeacrOS9jeWItuW6piA8IGtpbmppZ2FuZWhvbicnaXNlaWRvXCA7CivokZfkvZzmqKnmiYDmnInogIUgPCBjaG9zYWt1a2Vuc2hveXV1c2hhXCA7CivmlbDlrabnmoTluLDntI3ms5UgPCBzdXVnYWt1dGVraWtpbm91aG91XCA7Civml6fmlrDntITlhajmm7ggPCBreXV1c2hpbicneWFrdXplbnNob1wgOwor5pel5pys5Zu954m56Kix5bqBIDwgbmlob25rb2t1dG9ra3lvY2hvdVwgOwor5Ye65YWl5Zu9566h55CGIDwgc2h1dHN1bnl1dWtva3VrYW5yaVwgOwor6aOf57On566h55CG5Yi25bqmIDwgc2hva3VyeW91a2FucmlzZWlkb1wgOwor55Sf54mp5YyW5a2m5YW15ZmoIDwgc2VpYnV0c3VrYWdha3VoZWlraVwgOwor6Zqc5a6z54mp56u26LWwIDwgc2hvdWdhaWJ1dHN1a3lvdXNvdVwgOwor5pi85YWJ6Imy6Zu755CDIDwgY2h1dWtvdXNob2t1ZGVua3l1dVwgOwor6ZW35pel5qSN54mpIDwgY2hvdWppdHN1c2hva3VidXRzdVwgOwor5aWz5qip5ouh5by16KuW6ICFIDwgam9rZW5rYWt1Y2hvdXJvbnNoYVwgOwor6YeN6KaB54Sh5b2i5paH5YyW6LKhIDwganV1eW91bXVrZWlidW5rYXphaVwgOwor57WM5riI56S+5Lya55CG5LqL5LyaIDwga2VpemFpc2hha2FpcmlqaWthaVwgOwor57Wx5ZCI5bmV5YOa5Lya6K2wIDwgdG91Z291YmFrdXJ5b3VrYWlnaVwgOwor5b6L5Luk5qC85byPIDwgcml0c3VyeW91a3lha3VzaGlraVwgOwor5aSp54S26Imy5YaZ55yfIDwgdGVuJyduZW5zaG9rdXNoYXNoaW5cIDsKK+WwhOaSg+emgeatouWcsOWfnyA8IHNoYWdla2lraW5zaGljaGlpa2lcIDsKK+mjn+iCieakjeeJqSA8IHNob2t1bmlrdXNob2t1YnV0c3VcIDsKK+S4u+iqnuWKqeWLleipnuWAkue9riA8IHNodWdvam9kb3VzaGl0b3VjaGlcIDsKK+eJueWRveWFqOaoqeWFrOS9vyA8IHRva3VtZWl6ZW5rZW5rb3VzaGlcIDsKK+awtOWKm+eZuumbu+aJgCA8IHN1aXJ5b2t1aGF0c3VkZW5zaG9cIDsKK+e0oOWHuuWKm+adoeS7tiA8IHNvc2h1dHN1cnlva3Vqb3VrZW5cIDsKK+Wbveawkee3j+aUr+WHuiA8IGtva3VtaW5zb3VzaGlzaHV0c3VcIDsKK+akjeeJqeaAp+iEguiCqiA8IHNob2t1YnV0c3VzZWlzaGlib3VcIDsKK+aWsOiBnuWAq+eQhue2semgmCA8IHNoaW5idW5yaW5yaWtvdXJ5b3VcIDsKK+iomOi/sOeahOWmpeW9k+aApyA8IGtpanV0c3V0ZWtpZGF0b3VzZWlcIDsKK+aXp+aWsOe0hOiBluabuCA8IGt5dXVzaGluJyd5YWt1c2Vpc2hvXCA7CivkuIflm73pg7Xkvr/pgKPlkIggPCBiYW5rb2t1eXV1YmlucmVuZ291XCA7CivplbfmnJ/osrjku5jph5EgPCBjaG91a2lrYXNoaXRzdWtla2luXCA7Civnm7TmjqXmjqXntpogPCBjaG9rdXNldHN1c2V0c3V6b2t1XCA7CivkvY/lroXph5Hono3lhazluqsgPCBqdXV0YWt1a2luJyd5dXVrb3Vrb1wgOwor5Y2Y5L2N5L2T56mN6YeN6YePIDwgdGFuJydpdGFpc2VraWp1dXJ5b3VcIDsKK+e1seS4gOWcsOaWuemBuOaMmSA8IHRvdWl0c3VjaGlob3VzZW5reW9cIDsKK+WFrOmWi+W4guWgtOaUv+etliA8IGtvdWthaXNoaWpvdXNlaXNha3VcIDsKK+WcsOeQg+ims+a4rOihm+aYnyA8IGNoaWt5dXVrYW5zb2t1ZWlzZWlcIDsKK+eUn+eJqeeJqeeQhuWtpiA8IHNlaWJ1dHN1YnV0c3VyaWdha3VcIDsKK+W5s+WutueJqeiqnuaKhCA8IGhlaWtlbW9ub2dhdGFyaXNob3VcIDsKK+WQiOWQjOaKgOihk+WnlOWToeS8miA8IGdvdWRvdWdpanV0c3VpaW5rYWlcIDsKK+mHjemHj+aLs+mXmOmBuOaJiyA8IGp1dXJ5b3VrZW50b3VzZW5zaHVcIDsKK+S6uuW3peawl+iDuOeZguazlSA8IGppbmtvdWtpa3lvdXJ5b3Vob3VcIDsKK+WcsOaWueWFrOWFseWbo+S9kyA8IGNoaWhvdWtvdWt5b3VkYW50YWlcIDsKK+aJi+agueeuoeeXh+WAmee+pCA8IHNodWtvbmthbnNob3Vrb3VndW5cIDsKK+mrmOWIhuWtkOWMluWQiOeJqSA8IGtvdWJ1bnNoaWthZ291YnV0c3VcIDsKK+mjn+iZq+akjeeJqSA8IHNob2t1Y2h1dXNob2t1YnV0c3VcIDsKK+mZuOS4iuS9nOaIpuacrOmDqCA8IHJpa3Vqb3VzYWt1c2VuaG9uYnVcIDsKK+ims+Wvn+eahOeglOeptiA8IGthbnNhdHN1dGVraWtlbmt5dXVcIDsKK+aUvuWwhOaAp+W7g+ajhOeJqSA8IGhvdXNoYXNlaWhhaWtpYnV0c3VcIDsKK+mAhui7ouWIhuW4g+S/guaVsCA8IGd5YWt1dGVuYnVucHVrZWlzdXVcIDsKK+icmOibm+iGnOS4i+WHuuihgCA8IGt1bW9tYWt1a2FzaHVra2V0c3VcIDsKK+iHquWLleaWueWQkeaOouefpeapnyA8IGppZG91aG91a291dGFuY2hpa2lcIDsKK+WFseWQjOaVkea4iOWfuumHkSA8IGt5b3Vkb3VreXV1c2Fpa2lraW5cIDsKK+izg+iyuOWAn+Wlkee0hCA8IGNoaW50YWlzaGFrdWtlaXlha3VcIDsKK+W+s+W3neWFrOeItemCuCA8IHRva3VnYXdha291c2hha3V0ZWlcIDsKK+W4sOmChOS4jeiDvemZkOeVjOeCuSA8IGtpa2FuZnVub3VnZW5rYWl0ZW5cIDsKK+S/nemZuumHkeWPl+WPluS6uiA8IGhva2Vua2luJyd1a2V0b3JpbmluXCA7Civpmbjou43lo6vlrpjlrabmoKEgPCByaWt1Z3Vuc2hpa2FuZ2Fra291XCA7CivmvIHmpa3lsILnrqHmsLTln58gPCBneW9neW91c2Vua2Fuc3VpaWtpXCA7Civnsr7npZ7liIboo4Lnl4cgPCBzZWlzaGluYnVucmV0c3VzaG91XCA7CivoirjooZPoh7PkuIrkuLvnvqkgPCBnZWlqdXRzdXNoaWpvdXNodWdpXCA7Civnibnlkb3lhajmqKnlpKfkvb8gPCB0b2t1bWVpemVua2VudGFpc2hpXCA7Civov5HmjqXoiKrnqbrmlK/mj7QgPCBraW5zZXRzdWtvdWt1dXNoaWVuXCA7CivlpKrpmb3nhrHnmbrpm7sgPCB0YWl5b3VuZXRzdWhhdHN1ZGVuXCA7CivmtbflpJbnlZnlrabnhrEgPCBrYWlnYWlyeXV1Z2FrdW5ldHN1XCA7CivmnInmqZ/msLTpioDkuK3mr5IgPCB5dXVraXN1aWdpbmNodXVkb2t1XCA7CivlporlqKDkuK3mr5Lnl4cgPCBuaW5zaGluY2h1dWRva3VzaG91XCA7CivnkrDlpKrlubPmtIvmp4vmg7MgPCBrYW50YWloZWl5b3Vrb3Vzb3VcIDsKK+eLrOeri+aOoeeul+WItiA8IGRva3VyaXRzdXNhaXNhbnNlaVwgOwor5biC5aC05Y2g5pyJ546HIDwgc2hpam91c2VuJyd5dXVyaXRzdVwgOwor5YWs55qE5LiN5rOV5aao5a6zIDwga291dGVraWZ1aG91Ym91Z2FpXCA7CivoppbogbTopprmlZnmnZAgPCBzaGljaG91a2FrdWt5b3V6YWlcIDsKK+WGhemWo+azleWItuWxgCA8IG5haWtha3Vob3VzZWlreW9rdVwgOwor5Zu95a625YWs5a6J5aeU5ZOh6ZW3IDwga29ra2Frb3VhbicnaWluY2hvdVwgOwor5oim6ZeY5pSv5o+06KiI55S7IDwgc2VudG91c2hpZW5rZWlrYWt1XCA7CivkuK3lsI/kvIHmpa3luoEgPCBjaHV1c2hvdWtpZ3lvdWNob3VcIDsKK+Wbnue3muWItuW+oeimj+WJhyA8IGthaXNlbnNlaWd5b2tpc29rdVwgOwor5pu457Ch5L2T5bCP6KqsIDwgc2hva2FudGFpc2hvdXNldHN1XCA7CivnpL7kvJrnlJ/nianlraYgPCBzaGFrYWlzZWlidXRzdWdha3VcIDsKK+S4gOaXpeS4gOaXpSA8IGljaGluaWNoaWljaGluaWNoaVwgOwor6LuN6ZqK6KGM6YCy5puyIDwgZ3VudGFpa291c2hpbmt5b2t1XCA7CivokazpgIHooYzpgLLmm7IgPCBzb3Vzb3Vrb3VzaGlua3lva3VcIDsKK+a4r+a5vumBi+mAgeS6i+alrSA8IGtvdXdhbicndW5zb3VqaWd5b3VcIDsKK+eJqeeQhueahOePvuixoSA8IGJ1dHN1cml0ZWtpZ2Vuc2hvdVwgOwor5b+D6IeT5byB6Iac55eHIDwgc2hpbnpvdWJlbm1ha3VzaG91XCA7Civohp3ok4vohbHlj43lsIQgPCBzaGl0c3VnYWlrZW5oYW5zaGFcIDsKK+mWgOaIuOmWi+aUvuaUv+etliA8IG1vbmtva2FpaG91c2Vpc2FrdVwgOwor5L+457Wm55Sf5rS76ICFIDwgaG91a3l1dXNlaWthdHN1c2hhXCA7CivmnbHlkI3pq5jpgJ/pgZPot68gPCB0b3VtZWlrb3Vzb2t1ZG91cm9cIDsKK+WGhemWo+e3j+eQhuWkp+iHoyA8IG5haWtha3Vzb3VyaWRhaWppblwgOwor5pel5pys5pS+6YCB5Y2U5LyaIDwgbmlob25ob3Vzb3VreW91a2FpXCA7CivoiKrnqbrlroflrpnlt6Xmpa0gPCBrb3VrdXV1Y2h1dWtvdWd5b3VcIDsKK+eUn+eJqeaDheWgseWtpiA8IHNlaWJ1dHN1am91aG91Z2FrdVwgOwor5aSa5bm055Sf5qSN54mpIDwgdGFuZW5zZWlzaG9rdWJ1dHN1XCA7Civph4/lrZDniannkIblraYgPCByeW91c2hpYnV0c3VyaWdha3VcIDsKK+WMl+exs+WQiOihhuWbvSA8IGhva3ViZWlnYXNzaHV1a29rdVwgOwor5p2l5a6i6Iqz5ZCN6YyyIDwgcmFpa3lha3Vob3VtZWlyb2t1XCA7CivlnLDmlrnmpJzlr5/luoEgPCBjaGlob3VrZW5zYXRzdWNob3VcIDsKK+efreaXpeakjeeJqSA8IHRhbmppdHN1c2hva3VidXRzdVwgOwor5qiZ5rqW5Ye65YqbIDwgaHlvdWp1bnNodXRzdXJ5b2t1XCA7CivlsILploDnmoTnn6XorZggPCBzZW5tb250ZWtpY2hpc2hpa2lcIDsKK+e1kOWpmuihjOmAsuabsiA8IGtla2tvbmtvdXNoaW5reW9rdVwgOwor5a6J5YWo5L+d6Zqc5p2h57SEIDwgYW56ZW5ob3Nob3Vqb3V5YWt1XCA7CivmoKrlvI/phY3lvZPph5EgPCBrYWJ1c2hpa2loYWl0b3VraW5cIDsKK+eJueWIpemFjeW9k+mHkSA8IHRva3ViZXRzdWhhaXRvdWtpblwgOwor5Li75YON5Zyf5Zyn5L+C5pWwIDwgc2h1ZG91ZG9hdHN1a2Vpc3V1XCA7Civlj43lsITnmoTljYrpoIbluo8gPCBoYW5zaGF0ZWtpaGFuanVuam9cIDsKK+e1jOa4iOaIkOmVt+eOhyA8IGtlaXphaXNlaWNob3VyaXRzdVwgOwor55Sj5qWt5Yil57WE5ZCIIDwgc2FuZ3lvdWJldHN1a3VtaWFpXCA7Civlm73pmpvpgJrosqjln7rph5EgPCBrb2t1c2FpdHN1dWtha2lraW5cIDsKK+WEquetieWNkualreeUnyA8IHl1dXRvdXNvdHN1Z3lvdXNlaVwgOwor55+t5pyf6ZuG5Lit6Kyb5bqnIDwgdGFua2lzaHV1Y2h1dWtvdXphXCA7CivlhaXlm73nrqHnkIblsYAgPCBueXV1a29rdWthbnJpa3lva3VcIDsKK+S/oeiznuW/hee9sCA8IHNoaW5zaG91aGl0c3ViYXRzdVwgOwor5pel5pys6L6y5p6X6KaP5qC8IDwgbmlob24nJ25vdXJpbmtpa2FrdVwgOwor6Iiq56m65a6H5a6Z55Sj5qWtIDwga291a3V1dWNodXVzYW5neW91XCA7Civlk4Hos6rkv53mjIHmnJ/pmZAgPCBoaW5zaGl0c3Vob2ppa2lnZW5cIDsKK+aXpeacrOW3pealreimj+agvCA8IG5paG9ua291Z3lvdWtpa2FrdVwgOwor6ZaT5o6l5pKu5b2x5rOVIDwga2Fuc2V0c3VzYXRzdWVpaG91XCA7Civlrp/nianlpKfmqKHlnosgPCBqaXRzdWJ1dHN1ZGFpbW9rZWlcIDsKK+i7jeS6i+eahOS+teeVpSA8IGd1bmppdGVraXNoaW5yeWFrdVwgOwor5Lit6Led6Zui5qC45YW15ZmoIDwgY2h1dWt5b3Jpa2FrdWhlaWtpXCA7CivphbjljJbpgoTlhYPlj43lv5wgPCBzYW5rYWthbmdlbmhhbicnbm91XCA7CivnibnlvrTmir3lh7ogPCB0b2t1Y2hvdWNodXVzaHV0c3VcIDsKK+Wvv+aVmeWupCA8IGtvdG9idWtpa3lvdXNoaXRzdVwgOwor5YWs5YuZ5Z+36KGM5aao5a6zIDwga291bXVzaGlra291Ym91Z2FpXCA7CivnqY3liIbmlrnnqIvlvI8gPCBzZWtpYnVuaG91dGVpc2hpa2lcIDsKK+mrmOetieWwgumWgOWtpuagoSA8IGtvdXRvdXNlbm1vbmdha2tvdVwgOwor56mN566X6Zu75Yqb6KiIIDwgc2VraXNhbmRlbnJ5b2t1a2VpXCA7CivkuozlubTnlJ/mpI3niakgPCBuaW5lbnNlaXNob2t1YnV0c3VcIDsKK+WbveS8muWvvuetluWnlOWToeS8miA8IGtva2thaXRhaXNha3VpbmthaVwgOwor56ys5LqM5qyh5LiW55WM5aSn5oimIDwgZGFpbmlqaXNla2FpdGFpc2VuXCA7CivmranlhbXmiKbpl5jou4rkuKEgPCBob2hlaXNlbnRvdXNoYXJ5b3VcIDsKK+WNg+S5neeZvuW5tOS7oyA8IHNlbmt5dXVoeWFrdW5lbmRhaVwgOwor5YWx5ZCM6KiY6ICF5Lya6KaLIDwga3lvdWRvdWtpc2hha2Fpa2VuXCA7Civnp5HlrabljZrnianppKggPCBrYWdha3VoYWt1YnV0c3VrYW5cIDsKK+S4reWbveWFseeUo+WFmiA8IGNodXVnb2t1a3lvdXNhbnRvdVwgOwor6auY5YiG5a2Q54mp6LOqIDwga291YnVuc2hpYnVzc2hpdHN1XCA7CivnmbrpgZTlv4PnkIblraYgPCBoYXR0YXRzdXNoaW5yaWdha3VcIDsKK+eyvuelnuiWhOW8seiAhSA8IHNlaXNoaW5oYWt1amFrdXNoYVwgOwor5aSq6Zm954ax5rip5rC05ZmoIDwgdGFpeW91bmV0c3VvbnN1aWtpXCA7CivnibnliKXooYzmlL/ljLogPCB0b2t1YmV0c3VneW91c2Vpa3VcIDsKK+mdmeatouWcn+Wcp+S/guaVsCA8IHNlaXNoaWRvYXRzdWtlaXN1dVwgOwor5LiJ6Imy5Y2w5Yi35rOVIDwgc2Fuc2hva3VpbnNhdHN1aG91XCA7CivmjpLljbXoqpjnmbrliaQgPCBoYWlyYW4nJ3l1dWhhdHN1emFpXCA7CivnlJ/mtLvlv4XpnIDlk4EgPCBzZWlrYXRzdWhpdHN1anVoaW5cIDsKK+WwkeW5tOmRkeWIpeaJgCA8IHNob3VuZW5rYW5iZXRzdXNob1wgOwor5Lq65Y+j5YuV5oWL57Wx6KiIIDwgamlua291ZG91dGFpdG91a2VpXCA7CivluqfpqqjnpZ7ntYznl5sgPCB6YWtvdHN1c2hpbmtlaXRzdXVcIDsKK+akjeawkeWcsOaUv+etliA8IHNob2t1bWluY2hpc2Vpc2FrdVwgOwor6Ki85Yi45Y+W5byV5rOVIDwgc2hvdWtlbnRvcmloaWtpaG91XCA7Civnp4HlsI/oqqwgPCB3YXRha3VzaGlzaG91c2V0c3VcIDsKK+WVhuWTgeWbnui7oueOhyA8IHNob3VoaW5rYWl0ZW5yaXRzdVwgOwor5Zu96YCj5LqL5YuZ57eP6ZW3IDwga29rdXJlbmppbXVzb3VjaG91XCA7Civnr4DotrPli5XnianploAgPCBzZXNzb2t1ZG91YnV0c3Vtb25cIDsKK+edgOeUn+akjeeJqSA8IGNoYWt1c2Vpc2hva3VidXRzdVwgOwor5LiN5YuV55Sj5Y+W5b6X56iOIDwgZnVkb3VzYW5zaHV0b2t1emVpXCA7CivlubTmrKHmnInntabkvJHmmocgPCBuZW5qaXl1dWt5dXVreXV1a2FcIDsKK+Wun+eJqeWPluW8lSA8IGppdHN1YnV0c3V0b3JpaGlraVwgOwor5Y2B5LqM5oyH6IW45r2w55iNIDwganV1bmlzaGljaG91a2FpeW91XCA7CivoqIjnrpfnlJ/nianlraYgPCBrZWlzYW5zZWlidXRzdWdha3VcIDsKK+WwseiBt+aDheWgseiqjCA8IHNodXVzaG9rdWpvdWhvdXNoaVwgOwor5bu66Kit55qE6Zai5L+CIDwga2Vuc2V0c3V0ZWtpa2Fua2VpXCA7CivlrqLlrqTkuZfli5nlk6EgPCBreWFrdXNoaXRzdWpvdW11aW5cIDsKK+aUr+aMgeWKm+WumuW8jyA8IHNoaWppcnlva3V0ZWlzaGlraVwgOwor5YuV54mp6KGM5YuV5a2mIDwgZG91YnV0c3Vrb3Vkb3VnYWt1XCA7CivmiKbkuonniq/nvarms5Xlu7cgPCBzZW5zb3VoYW56YWlob3V0ZWlcIDsKK+iBt+iDveS7o+ihqOWItiA8IHNob2t1bm91ZGFpaHlvdXNlaVwgOwor5pyA6auY5qSc5a+f5bqBIDwgc2Fpa291a2Vuc2F0c3VjaG91XCA7Civlv4PnpZ7ogJflvLHogIUgPCBzaGluc2hpbm1vdWpha3VzaGFcIDsKK+W5tOWKn+W6j+WIl+WItuW6piA8IG5lbmtvdWpvcmV0c3VzZWlkb1wgOwor5Lqc57Gz5Yip5Yqg5ZCI6KGG5Zu9IDwgYW1lcmlrYWdhc3NodXVrb2t1XCA7CivnhKHohIrmpI7li5XniakgPCBtdXNla2l0c3VpZG91YnV0c3VcIDsKK+i+suael+awtOeUo+Wkp+iHoyA8IG5vdXJpbnN1aXNhbmRhaWppblwgOwor55u05o6l5o6l6KemIDwgY2hva3VzZXRzdXNlc3Nob2t1XCA7CivlrrblroXkvrXlhaXnvaogPCBrYXRha3VzaGluJydueXV1emFpXCA7CivliIblrZDnlJ/nianlraYgPCBidW5zaGlzZWlidXRzdWdha3VcIDsKK+S4u+imgemDqOWFiOWwjuWeiyA8IHNodXlvdWJ1c2VuZG91Z2F0YVwgOwor5aSp5L2T5YaZ55yf6KGTIDwgdGVudGFpc2hhc2hpbmp1dHN1XCA7Civnp5jlr4bmvI/mtKnnvaogPCBoaW1pdHN1cm91c2V0c3V6YWlcIDsKK+iyuOS7mOS/oeiolyA8IGthc2hpdHN1a2VzaGludGFrdVwgOwor6ZaT5o6l55uu55qE6KqeIDwga2Fuc2V0c3Vtb2t1dGVraWdvXCA7CivnspjmtrLliIbms4zohbogPCBuZW4nJ2VraWJ1bnBpdHN1c2VuXCA7CivnnqzplpPmjqXnnYDliaQgPCBzaHVua2Fuc2V0Y2hha3V6YWlcIDsKK+S6uuWPo+WvhumbhueOhyA8IGppbmtvdW1pc3NodXVyaXRzdVwgOwor5Zu95rCR5YGl5bq35L+d6Zm6IDwga29rdW1pbmtlbmtvdWhva2VuXCA7Civljp/oibLlhpnnnJ/niYggPCBnZW5zaG9rdXNoYXNoaW5iYW5cIDsKK+S4jeWumuioiOmHj+epuumWkyA8IGZ1dGVpa2VpcnlvdWt1dWthblwgOwor6YeP5a2Q6Imy5Yqb5a2mIDwgcnlvdXNoaWlyb3Jpa2lnYWt1XCA7CivlnKjml6XnsbPpmbjou40gPCB6YWluaWNoaWJlaXJpa3VndW5cIDsKK+mjn+WTgea3u+WKoOeJqSA8IHNob2t1aGludGVua2FidXRzdVwgOwor5Y+N5bid5Zu95Li7576p6ICFIDwgaGFudGVpa29rdXNodWdpc2hhXCA7Civli5XnianmgKfom4vnmb0gPCBkb3VidXRzdXNlaXRhbnBha3VcIDsKK+eJueWumumDteS+v+WxgCA8IHRva3V0ZWl5dXViaW5reW9rdVwgOwor5pel5pys6Iiq56m66Ieq6KGb6ZqKIDwgbmlob25rb3VrdXVqaWVpdGFpXCA7Civngavlipvnmbrpm7vmiYAgPCBrYXJ5b2t1aGF0c3VkZW5zaG9cIDsKK+WkmuinkuW8j+i+sualrSA8IHRha2FrdXNoaWtpbm91Z3lvdVwgOwor6Zu76I2357WQ5ZCI57Sg5a2QIDwgZGVua2FrZXRzdWdvdXNvc2hpXCA7CivmsLjkuJbkuK3nq4vlm70gPCBlaXNlaWNodXVyaXRzdWtva3VcIDsKK+espuWPt+WMluaWh+Wtl+mbhuWQiCA8IGZ1Z291a2Ftb2ppc2h1dWdvdVwgOwor5ZSv54mp5byB6Ki85rOVIDwgeXVpYnV0c3ViZW5zaG91aG91XCA7Civml6XmnKzmtbfkuIroh6rooZvpmoogPCBuaWhvbmthaWpvdWppZWl0YWlcIDsKK+WPsueahOWUr+eJqeirliA8IHNoaXRla2l5dWlidXRzdXJvblwgOwor5a6j6KqT5L6b6L+w5pu4IDwgc2Vuc2Vpa3lvdWp1dHN1c2hvXCA7CivnhrHohqjlvLXkv4LmlbAgPCBuZXRzdWJvdWNob3VrZWlzdXVcIDsKK+aciemZkOeKtuaFi+aWh+azlSA8IHl1dWdlbmpvdXRhaWJ1bnBvdVwgOwor5Y2z5pel6YCf6YGUIDwgc29rdWppdHN1c29rdXRhdHN1XCA7CivmpI3nianmgKfnuYrntq0gPCBzaG9rdWJ1dHN1c2Vpc2VuJydpXCA7CivpgY7lpLHlgrflrrPnvaogPCBrYXNoaXRzdXNob3VnYWl6YWlcIDsKK+S/ruato+izh+acrOS4u+e+qSA8IHNodXVzZWlzaGlob25zaHVnaVwgOwor5LiA5Y215oCn5Y+M55Sf5YWQIDwgaWNoaXJhbnNlaXNvdXNlaWppXCA7CivlhbHlkIzlibXoqK3ogIUgPCBreW91ZG91c291c2V0c3VzaGFcIDsKK+WcsOS4rea1t+aAp+awl+WAmSA8IGNoaWNodXVrYWlzZWlraWtvdVwgOwor5oqV6LOH5pyJ5L6h6Ki85Yi4IDwgdG91c2hpeXV1a2FzaG91a2VuXCA7CivkuIrntJrlia/npL7plbcgPCBqb3VreXV1ZnVrdXNoYWNob3VcIDsKK+aIpueVpeeahOaPkOaQuiA8IHNlbnJ5YWt1dGVraXRlaWtlaVwgOwor5YmN5pa55YaN6KOc57Wm54K5IDwgemVucG91c2FpaG9reXV1dGVuXCA7Civnmb7nmbrnmb7kuK0gPCBoeWFwcGF0c3VoeWFrdWNodXVcIDsKK+eSsOWig+W6gemVt+WumCA8IGthbmt5b3VjaG91Y2hvdWthblwgOwor5Y+W57eg5b255LyaIDwgdG9yaXNoaW1hcml5YWt1a2FpXCA7CivlnKflipvoqr/mlbTlmaggPCBhdHN1cnlva3VjaG91c2Vpa2lcIDsKK+eUn+murumjn+aWmeWTgSA8IHNlaXNlbnNob2t1cnlvdWhpblwgOwor5pS+5bCE5oCn54mp6LOqIDwgaG91c2hhc2VpYnVzc2hpdHN1XCA7CivlnLDnkIPniannkIblraYgPCBjaGlreXV1YnV0c3VyaWdha3VcIDsKK+WPjeWul+aVmeaUuemdqSA8IGhhbnNodXVreW91a2Fpa2FrdVwgOwor5a2m6K2Y57WM6aiT6ICFIDwgZ2FrdXNoaWtpa2Vpa2Vuc2hhXCA7Civnq4vmhrLlkJvkuLvmlL/kvZMgPCByaWtrZW5rdW5zaHVzZWl0YWlcIDsKK+aUvumAgeemgeatoueUqOiqniA8IGhvdXNvdWtpbnNoaXlvdWdvXCA7CivotaTpnaLmgZDmgJbnl4cgPCBzZWtpbWVua3lvdWZ1c2hvdVwgOwor6aOf5ZOB6KGb55Sf5rOVIDwgc2hva3VoaW4nJ2Vpc2VpaG91XCA7CivmlZnogbflk6HntYTlkIggPCBreW91c2hva3Vpbmt1bWlhaVwgOwor5Y2B5LiA6Z2i6Kaz5LiW6Z+zIDwganV1aWNoaW1lbmthbnplb25cIDsKK+avm+ayouadseS4u+W4rSA8IG1vdXRha3V0b3VzaHVzZWtpXCA7CivliKXpgJTnqY3nq4vph5EgPCBiZXR0b3RzdW1pdGF0ZWtpblwgOwor6L+U5L+h5paZ6JGJ5pu4IDwgaGVuc2hpbnJ5b3VoYWdha2lcIDsKK+iruOi7iumAmuihjOatoiA8IHNob3NoYXRzdXVrb3Vkb21lXCA7CivlvaLnirboqJjmhrblkIjph5EgPCBrZWlqb3VraW9rdWdvdWtpblwgOwor5Zu95Zyf5bqB6ZW35a6YIDwga29rdWRvY2hvdWNob3VrYW5cIDsKK+WHuuWKm+ijhee9riA8IHNodXRzdXJ5b2t1c291Y2hpXCA7CivopIfpm5HpqqjmipggPCBmdWt1emF0c3Vrb3NzZXRzdVwgOwor5LiL5L2N56+E55aH5YyW57Sg5oCnIDwga2FpaGFuY2h1dWthc29zZWlcIDsKK+WLp+WWhOaHsuaCquWKhyA8IGthbnplbmNob3Vha3VnZWtpXCA7CivljLvlrabnlJ/nianlraYgPCBpZ2FrdXNlaWJ1dHN1Z2FrdVwgOwor6Z2e5qiZ5rqW5ouh5by1IDwgaGloeW91anVua2FrdWNob3VcIDsKK+ihjOWLleeZuui1t+aZguWIuyA8IGtvdWRvdWhha2tpamlrb2t1XCA7CivljYHpg6jploDliIbpoZ7ms5UgPCBqdXVidW1vbmJ1bnJ1aWhvdVwgOwor5aSq6Zm95YWJ55m66Zu7IDwgdGFpeW91a291aGF0c3VkZW5cIDsKK+S4lueVjOS4gOWRqOaXheihjCA8IHNla2FpaXNzaHV1cnlva291XCA7Civov5Tkv6HnlKjokYnmm7ggPCBoZW5zaGluJyd5b3VoYWdha2lcIDsKK+S4lueVjOS6uuaoqeWuo+iogCA8IHNla2Fpamlua2Vuc2VuZ2VuXCA7CivlhaznmoTljLvnmYLmqZ/plqIgPCBrb3V0ZWtpaXJ5b3VraWthblwgOwor54mp55qE5rWB6YCaIDwgYnV0c3V0ZWtpcnl1dXRzdXVcIDsKK+WNgeW5tOS4gOaYlCA8IGp1dW5lbmhpdG9tdWthc2hpXCA7CivnpaXmnIjlkb3ml6UgPCBzaG91dHN1a2ltZWluaWNoaVwgOwor55yf54+g6aSK5q6W5aC0IDwgc2hpbmp1eW91c2hva3Vqb3VcIDsKK+aIpueVpeeJqeizqiA8IHNlbnJ5YWt1YnVzc2hpdHN1XCA7CivogovplpPnpZ7ntYznl5sgPCByb2trYW5zaGlua2VpdHN1dVwgOwor5rW35rSL54mp55CG5a2mIDwga2FpeW91YnV0c3VyaWdha3VcIDsKK+eyvuelnueahOiLpueXmyA8IHNlaXNoaW50ZWtpa3V0c3V1XCA7CivkuqTmtYHnmbrpm7vmqZ8gPCBrb3VyeXV1aGF0c3VkZW5raVwgOwor5bCx6IG35rS75YuVIDwgc2h1dXNob2t1a2F0c3Vkb3VcIDsKK+WPl+WDjeWcn+Wcp+S/guaVsCA8IGp1ZG91ZG9hdHN1a2Vpc3V1XCA7Civni6nnjJ/mjqHpm4bmsJEgPCBzaHVyeW91c2Fpc2h1dW1pblwgOwor5LiN56K65a6a5oCn5Y6f55CGIDwgZnVrYWt1dGVpc2VpZ2VucmlcIDsKK+aIpumXmOato+mdouW5hSA8IHNlbnRvdXNob3VtZW5oYWJhXCA7CivkuI3kv6Hku7vmipXnpaggPCBmdXNoaW4nJ25pbnRvdWh5b3VcIDsKK+mAgemHkeWPl+WPluS6uiA8IHNvdWtpbicndWtldG9yaW5pblwgOwor5byx6IKJ5by36aOfIDwgamFrdW5pa3VreW91c2hva3VcIDsKK+S8uOe4rueojueOhyA8IHNoaW5zaHVrdXplaXJpdHN1XCA7CivkuoznrYnovrrkuInop5LlvaIgPCBuaXRvdWhlbnNhbmtha2tlaVwgOwor77yk77yy77yz55CG6KuWIDwgZGlcIMyEYVwgzIRydWVzdXJpcm9uXCA7Civpo5/ns6fnrqHnkIbms5UgPCBzaG9rdXJ5b3VrYW5yaWhvdVwgOwor55uy6IW454KO5omL6KGTIDwgbW91Y2hvdWVuc2h1anV0c3VcIDsKK+elnuWHuumsvOayoSA8IHNoaW5zaHV0c3VraWJvdHN1XCA7CivnrKzkuIDntJrmrrrkurogPCBkYWlpa2t5dXVzYXRzdWppblwgOwor5oim55Wl5qC45YW15ZmoIDwgc2Vucnlha3VrYWt1aGVpa2lcIDsKK+S4g+S4g+aXpSA8IHNoaWNoaXNoaWNoaW5pY2hpXCA7CivntKvpnLLojYkgPCBtdXJhc2FraXRzdXl1a3VzYVwgOwor5YeN57WQ6Ziy5q2i5YmkIDwgdG91a2V0c3Vib3VzaGl6YWlcIDsKK+S4remWk+mFjeW9k+mhjSA8IGNodXVrYW5oYWl0b3VnYWt1XCA7CivmlL/ku6TmjIflrprpg73luIIgPCBzZWlyZWlzaGl0ZWl0b3NoaVwgOwor5ZC46KGA5YuV54mpIDwga3l1dWtldHN1ZG91YnV0c3VcIDsKK+mrmOmAn+Wil+aulueCiSA8IGtvdXNva3V6b3VzaG9rdXJvXCA7Civov5Tkv6HmlpnlsIHnrZIgPCBoZW5zaGlucnlvdWZ1dXRvdVwgOwor6KGb5pif5Zyw55CD5bGAIDwgZWlzZWljaGlreXV1a3lva3VcIDsKK+WcqOeVmeWkluWbveS6uiA8IHphaXJ5dXVnYWlrb2t1amluXCA7CivnhrHlipvlrabnmoQgPCBuZXRzdXJpa2lnYWt1dGVraVwgOwor5qSN54mp5o6h6ZuGIDwgc2hva3VidXRzdXNhaXNodXVcIDsKK+WHuuWKm+err+WtkCA8IHNodXRzdXJ5b2t1dGFuc2hpXCA7CivmqJnmupblhaXlipsgPCBoeW91anVuJydueXV1cnlva3VcIDsKK+eUo+alreW7g+ajhOeJqSA8IHNhbmd5b3VoYWlraWJ1dHN1XCA7CivnhKHmi4Xkv53lgJ/lhaXph5EgPCBtdXRhbnBva2FyaWlyZWtpblwgOwor6Kaz6JGJ5qSN54mpIDwga2FuJyd5b3VzaG9rdWJ1dHN1XCA7CivlpKnnhLboqJjlv7XniakgPCB0ZW4nJ25lbmtpbmVuYnV0c3VcIDsKK+WNmOS9jeWKtOWDjee1hOWQiCA8IHRhbicnaXJvdWRvdWt1bWlhaVwgOwor5Lit5aSu5Yem55CG6KOF572uIDwgY2h1dW91c2hvcmlzb3VjaGlcIDsKK+WHuueUn+iovOaYjuabuCA8IHNodXNzZWlzaG91bWVpc2hvXCA7CivpgbjmjJnnrqHnkIblp5Tlk6HkvJogPCBzZW5reW9rYW5yaWlpbmthaVwgOwor5LiK57Sa566h55CG6IG3IDwgam91a3l1dWthbnJpc2hva3VcIDsKK+eojumWoueUs+WRiuabuCA8IHplaWthbnNoaW5rb2t1c2hvXCA7CivkuIPnlJ/loLHlm70gPCBzaGljaGlzaG91aG91a29rdVwgOwor6L+U5L+h55So5bCB562SIDwgaGVuc2hpbicneW91ZnV1dG91XCA7CivnhrHni4LnmoTkv6HogIUgPCBuZWtreW91dGVraXNoaW5qYVwgOwor5LyB5qWt6ZaT5L+h55SoIDwga2lneW91a2Fuc2hpbicneW91XCA7CivmrKflt57pgJrosqjljZjkvY0gPCBvdXNodXV0c3V1a2F0YW4nJ2lcIDsKK+mWi+aLk+iAheeyvuelniA8IGthaXRha3VzaGFzZWlzaGluXCA7Civlrp/nianmj4/lhpkgPCBqaXRzdWJ1dHN1YnlvdXNoYVwgOwor5rex5Zyo5oCn55yf6I+MIDwgc2hpbnphaXNlaXNoaW5raW5cIDsKK+iHqueUseiyv+aYk+W4r+WfnyA8IGppeXV1Ym91ZWtpdGFpaWtpXCA7CivmnZHokL3lhbHlkIzkvZMgPCBzb25yYWt1a3lvdWRvdXRhaVwgOwor5LiK6Zm455So6Iif6ImHIDwgam91cmlrdXlvdXNodXV0ZWlcIDsKK+WPpOeUn+eJqeWtpuiAhSA8IGtvc2VpYnV0c3VnYWt1c2hhXCA7CivmrrrnnJ/oj4zolqwgPCBzYXRzdXNoaW5raW4nJ3lha3VcIDsKK+mWi+eZuumAlOS4iuWbvSA8IGthaWhhdHN1dG9qb3Vrb2t1XCA7CivooYDlnKfpmY3kuIvliaQgPCBrZXRzdWF0c3Vrb3VrYXphaVwgOwor54Sh5beu5Yil54iG5pKDIDwgbXVzYWJldHN1YmFrdWdla2lcIDsKK+W5s+WSjOeahOino+axuiA8IGhlaXdhdGVraWthaXNldHN1XCA7CivkuIvkvY3nr4TnlofljJbljp/nkIYgPCBrYWloYW5jaHV1a2FnZW5yaVwgOwor6aOf5ZOB5Yqg5bel5qWtIDwgc2hva3VoaW5rYWtvdWd5b3VcIDsKK+aBi+aEm+iHs+S4iuS4u+e+qSA8IHJlbicnYWlzaGlqb3VzaHVnaVwgOwor6auY57Sa5L2P5a6F5ZywIDwga291a3l1dWp1dXRha3VjaGlcIDsKK+iHquWLlei7iuS/nemZuuaWmSA8IGppZG91c2hhaG9rZW5yeW91XCA7CivpgY7lpLHoh7TmrbvnvaogPCBrYXNoaXRzdWNoaXNoaXphaVwgOwor6auY6aGN5omA5b6X6ICFIDwga291Z2FrdXNob3Rva3VzaGFcIDsKK+WNgeS4gOmdouims+mfsyA8IGp1dWljaGltZW5rYW4nJ25vblwgOwor6ICz6by75ZK95ZaJ5bCC6ZaA5Yy7IDwgamliaWlua291c2VubW9uJydpXCA7CivmnIjntYzlm7Dpm6Pnl4cgPCBnZWtrZWlrb24nJ25hbnNob3VcIDsKK+Wbvemam+imi+acrOW4giA8IGtva3VzYWltaWhvbicnaWNoaVwgOwor57eR5Zyw5YyW6KiI55S7IDwgcnlva3VjaGlrYWtlaWtha3VcIDsKK+aomeacrOaKveWHuiA8IGh5b3Vob25jaHV1c2h1dHN1XCA7CivmiKbloLToiKrnqbrpmLvmraIgPCBzZW5qb3Vrb3VrdXVzb3NoaVwgOwor5Lit5p6i56We57WM57O7IDwgY2h1dXN1dXNoaW5rZWlrZWlcIDsKK+e1seWQiOWPguisgOacrOmDqCA8IHRvdWdvdXNhbmJvdWhvbmJ1XCA7Civnt4/mi6zos6rllY8gPCBzb3VrYXRzdXNoaXRzdW1vblwgOwor5a6f6aiT55qE56CU56m2IDwgamlra2VudGVraWtlbmt5dXVcIDsKK+WwgueUqOmnkOi7iuWgtCA8IHNlbicneW91Y2h1dXNoYWpvdVwgOwor5r2u5Yqb55m66Zu7IDwgY2hvdXJ5b2t1aGF0c3VkZW5cIDsKK+eEoemBjuWkseiyrOS7uyA8IG11a2FzaGl0c3VzZWtpbmluXCA7CivkuIDmrKHmlrnnqIvlvI8gPCBpY2hpamlob3V0ZWlzaGlraVwgOwor5bCx5qWt5pmC6ZaT5LitIDwgc2h1dWd5b3VqaWthbmNodXVcIDsKK+WbveawkeS8keaah+adkSA8IGtva3VtaW5reXV1a2FtdXJhXCA7CivlrZDlrq7lpJblporlqKAgPCBzaGlreXV1Z2Fpbmluc2hpblwgOwor54Sh5ouF5L+d6LK45LuYIDwgbXV0YW5wb2thc2hpdHN1a2VcIDsKK+S4gOeykuWtkOaXoue0hCA8IGljaGlyeXV1c2hpa2l5YWt1XCA7CivkvIHmpa3liKXntYTlkIggPCBraWd5b3ViZXRzdWt1bWlhaVwgOwor5LiN5rOV5L615YWl6ICFIDwgZnVob3VzaGluJydueXV1c2hhXCA7Civnm7TmjqXos7zlhaUgPCBjaG9rdXNldHN1a291bnl1dVwgOwor5Y+O56mr5oSf6Kyd56WtIDwgc2h1dWtha3VrYW5zaGFzYWlcIDsKK+aMh+WQkeaAp+eIhuiWrCA8IHNoaWtvdXNlaWJha3V5YWt1XCA7Civlv4Plm6DmgKflj43lv5wgPCBzaGluJydpbnNlaWhhbicnbm91XCA7CivmnIDplbfkuI3lgJLot53pm6IgPCBzYWljaG91ZnV0b3VreW9yaVwgOwor5Lqc54ax5biv5qSN54mpIDwgYW5ldHRhaXNob2t1YnV0c3VcIDsKK+eqrualteebrueahCA8IGt5dXVreW9rdW1va3V0ZWtpXCA7CivlhoXplqPnt4/ovp7ogbcgPCBuYWlrYWt1c291amlzaG9rdVwgOwor5aSp54Wn5aSn56WeIDwgYW1hdGVyYXN1b29taWthbWlcIDsKK+WNsOixoeS4u+e+qemfs+alvSA8IGluc2hvdXNodWdpb25nYWt1XCA7Civov5Hku6PkupTnqK7nq7bmioAgPCBraW5kYWlnb3NodWt5b3VnaVwgOwor6LOq5a6f5Ymb5YGlIDwgc2hpdHN1aml0c3Vnb3VrZW5cIDsKK+iovOWIuOWPluW8leaJgCA8IHNob3VrZW50b3JpaGlraWpvXCA7CivlsYjmipjmnJvpgaDpj6EgPCBrdXNzZXRzdWJvdWVua3lvdVwgOwor5bGA5aSW5Lit56uLIDwga3lva3VnYWljaHV1cml0c3VcIDsKK+W+jOaWueWcsOWfn+itpuWCmSA8IGtvdWhvdWNoaWlraWtlaWJpXCA7Civmra/niZnnn6/mraPooZMgPCBzaGlnYWt5b3VzZWlqdXRzdVwgOwor5Y2Y57Sw6IOe55Sf54mpIDwgdGFuc2FpYm91c2VpYnV0c3VcIDsKK+aXpeacrOiWrOWxgOaWuSA8IG5paG9uJyd5YWtreW9rdWhvdVwgOwor6Ieq5YuV5pON57im6KOF572uIDwgamlkb3Vzb3VqdXVzb3VjaGlcIDsKK+a3seWxpOW/g+eQhuWtpiA8IHNoaW5zb3VzaGlucmlnYWt1XCA7Civpg73luILlr77mipfph47nkIMgPCB0b3NoaXRhaWtvdXlha3l1dVwgOwor6YeR5Ymb5aSc5Y+J5aaZ546LIDwga29uZ291eWFzaGFteW91b3VcIDsKK+eyvuelnuiWhOW8seWFkCA8IHNlaXNoaW5oYWt1amFrdWppXCA7CivoibLlvanoqr/nr4AgPCBzaGlraXNhaWNob3VzZXRzdVwgOwor6Jas55So5qSN54mpIDwgeWFrdXlvdXNob2t1YnV0c3VcIDsKK+WMluWtpuaWueeoi+W8jyA8IGthZ2FrdWhvdXRlaXNoaWtpXCA7CivmgKXpmY3kuIvniIbmkoMgPCBreXV1a291a2FiYWt1Z2VraVwgOwor5rC05LiK55Sf5rS76ICFIDwgc3Vpam91c2Vpa2F0c3VzaGFcIDsKK+WcqOWtpuiovOaYjuabuCA8IHphaWdha3VzaG91bWVpc2hvXCA7CivmpI3msJHlnLDntbHmsrsgPCBzaG9rdW1pbmNoaXRvdWNoaVwgOwor6Zai5pWw5pa556iL5byPIDwga2Fuc3V1aG91dGVpc2hpa2lcIDsKK+eni+mcnOeDiOaXpSA8IHNodXVzb3VyZXRzdWppdHN1XCA7Civnm7TmjqXoq4vmsYIgPCBjaG9rdXNldHN1c2Vpa3l1dVwgOwor5o6o6YCy56CU56m25omAIDwgc3Vpc2hpbmtlbmt5dXVzaG9cIDsKK+Wul+aVmeWTsuWtpiA8IHNodXVreW91dGV0c3VnYWt1XCA7CivmiKbooZPmoLjlhbXlmaggPCBzZW5qdXRzdWtha3VoZWlraVwgOwor6auY6YCf5ryU566X5qmf5qeLIDwga291c29rdWVuemFua2lrb3VcIDsKK+eZuuWxleeahOino+a2iCA8IGhhdHRlbnRla2lrYWlzaG91XCA7Civpo5vooYznpoHmraLnqbrln58gPCBoaWtvdWtpbnNoaWt1dWlraVwgOwor5Zu956uL5Zuz5pu46aSoIDwga29rdXJpdHN1dG9zaG9rYW5cIDsKK+S4ieihjOW6g+WRiuashCA8IHNhbmd5b3Vrb3Vrb2t1cmFuXCA7Civli6fmpa3ljZropqfkvJogPCBrYW5neW91aGFrdXJhbmthaVwgOwor6Jas54mp5Lit5q+SIDwgeWFrdWJ1dHN1Y2h1dWRva3VcIDsKK+WIhuaekOW/g+eQhuWtpiA8IGJ1bnNla2lzaGlucmlnYWt1XCA7CivmlZnogrLlv4PnkIblraYgPCBreW91aWt1c2hpbnJpZ2FrdVwgOwor5qWt5YuZ5LiK6YGO5aSxIDwgZ3lvdW11am91a2FzaGl0c3VcIDsKK+eSsOWig+S/neitt+irluiAhSA8IGthbmt5b3Vob2dvcm9uc2hhXCA7CivmiJDnuL7oqLzmmI7mm7ggPCBzZWlzZWtpc2hvdW1laXNob1wgOwor6YCx6ZaT5aSp5rCX5LqI5aCxIDwgc2h1dWthbnRlbmtpeW9ob3VcIDsKK+aUvuWwhOe3muaEn+WPl+aApyA8IGhvdXNoYXNlbmthbmp1c2VpXCA7CivnpL7kvJrmsJHkuLvkuLvnvqkgPCBzaGFrYWltaW5zaHVzaHVnaVwgOwor5bCP5b+D57+857+8IDwgc2hvdXNoaW4nJ3lva3V5b2t1XCA7CivnibnliKXluZXlg5ogPCB0b2t1YmV0c3ViYWt1cnlvdVwgOwor5YWl5a2m5b+X6aGY6ICFIDwgbnl1dWdha3VzaGlnYW5zaGFcIDsKK+mDqOWIhuaDheWgseani+mAoCA8IGJ1YnVuam91aG91a291em91XCA7CivkuIDmjJnmiYvkuIDmipXotrMgPCBpa2t5b3NodWl0dG91c29rdVwgOwor5YiG6KOC54mp6LOqIDwgYnVucmV0c3VidXNzaGl0c3VcIDsKK+acieW9ouWbuuWumuizh+eUoyA8IHl1dWtlaWtvdGVpc2hpc2FuXCA7CivkuK3lpK7mlL7pgIHlsYAgPCBjaHV1b3Vob3Vzb3VreW9rdVwgOwor55u05o6l54Wn5piOIDwgY2hva3VzZXRzdXNob3VtZWlcIDsKK+mjm+ihjOiomOmMsuijhee9riA8IGhpa291a2lyb2t1c291Y2hpXCA7Civooqvmi4Xkv53lgrXmqKnpoY0gPCBoaXRhbnBvc2Fpa2VuZ2FrdVwgOwor5YWx5ZCM55u457aa5Lq6IDwga3lvdWRvdXNvdXpva3VuaW5cIDsKK+WYseiol+auuuS6uiA8IHNob2t1dGFrdXNhdHN1amluXCA7CivnoJTnqbbnmbrooajkvJogPCBrZW5reXV1aGFwcHlvdWthaVwgOwor5LqM5Lqk5pu/5Yi25Yq05YONIDwgbmlrb3V0YWlzZWlyb3Vkb3VcIDsKK+a5v+eUn+akjeeJqSA8IHNoaXNzZWlzaG9rdWJ1dHN1XCA7CivkuIPljYHkurroqLMgPCBzaGljaGlqdXVuaW4nJ3lha3VcIDsKK+S/neWuiOezu+eEoeaJgOWxniA8IGhvc2h1a2VpbXVzaG96b2t1XCA7CivlpKnkvZPliIblhYnooZMgPCB0ZW50YWlidW5rb3VqdXRzdVwgOwor55CD6Z2i5LiJ6KeS5rOVIDwga3l1dW1lbnNhbmtha3Vob3VcIDsKK+ioiOmHj+e1jOa4iOWtpiA8IGtlaXJ5b3VrZWl6YWlnYWt1XCA7Civlj43ou6LliIbluIPkv4LmlbAgPCBoYW50ZW5idW5wdWtlaXN1dVwgOwor6JGX5L2c5qip5L615a6zIDwgY2hvc2FrdWtlbnNoaW5nYWlcIDsKK+eJueWIpeW8geitt+S6uiA8IHRva3ViZXRzdWJlbmdvbmluXCA7Civlr4zlm73lvLflhbXnrZYgPCBmdWtva3VreW91aGVpc2FrdVwgOwor56m65oy66ZmN5LiL5Zyw5Z+fIDwga3V1dGVpa291a2FjaGlpa2lcIDsKK+S6iOaDs+WPjuepq+mrmCA8IHlvc291c2h1dWtha3VkYWthXCA7CivngavlipvmlK/mj7Tpg6jpmoogPCBrYXJ5b2t1c2hpZW5idXRhaVwgOwor6KGA5Y+L55eF5oKj6ICFIDwga2V0c3V5dXVieW91a2FuamFcIDsKK+eZuueZjOeJqeizqiA8IGhhdHN1Z2FuYnVzc2hpdHN1XCA7Civnm7Top5LkuInop5LlvaIgPCBjaG9ra2FrdXNhbmtha2tlaVwgOwor55m96ZW36aCI6a+oIDwgc2hpcm9uYWdhc3VrdWppcmFcIDsKK+mXh+S+oeagvOWNlOWumiA8IHlhbWlrYWtha3VreW91dGVpXCA7CivoprPos57mpI3niakgPCBrYW5zaG91c2hva3VidXRzdVwgOwor6LWk5aSW57ea5YaZ55yfIDwgc2VraWdhaXNlbnNoYXNoaW5cIDsKK+W/g+elnuWWquWksSA8IHNoaW5zaGluc291c2hpdHN1XCA7CivpgJrkv5flsI/oqqwgPCB0c3V1em9rdXNob3VzZXRzdVwgOwor5q2M6Iie5LyO5Y2B5YWr55WqIDwga2FidWtpanV1aGFjaGliYW5cIDsKK+eZvuaIpueZvuWLnSA8IGh5YWt1c2VuaHlha3VzaG91XCA7CivlpKnnmofmqZ/plqLoqqwgPCB0ZW4nJ25vdWtpa2Fuc2V0c3VcIDsKK+WFrOiovOS6uuW9ueWgtCA8IGtvdXNob3VuaW4nJ3lha3ViYVwgOwor6LaF54++5a6f5Li7576pIDwgY2hvdWdlbmppdHN1c2h1Z2lcIDsKK+S6jOalteecn+epuueuoSA8IG5pa3lva3VzaGlua3V1a2FuXCA7Civmj5Dnga/ooYzliJcgPCBjaG91Y2hpbmd5b3VyZXRzdVwgOwor6Ziq56We5aSn6ZyH54G9IDwgaGFuc2hpbmRhaXNoaW5zYWlcIDsKK+WksealreWvvuetliA8IHNoaXRzdWd5b3V0YWlzYWt1XCA7Civms5XlrprlvpfnpajmlbAgPCBob3V0ZWl0b2t1aHlvdXN1dVwgOwor6Kit56uL6Laj5oSP5pu4IDwgc2V0c3VyaXRzdXNodWlzaG9cIDsKK+WkluWbveS6uueZu+mMsiA8IGdhaWtva3VqaW50b3Vyb2t1XCA7CivouqvkvZPpmpzlrrPogIUgPCBzaGludGFpc2hvdWdhaXNoYVwgOwor5aSn6YeP56C05aOK5YW15ZmoIDwgdGFpcnlvdWhha2FpaGVpa2lcIDsKK+a2iOiyu+iAheS/oeeUqCA8IHNob3VoaXNoYXNoaW4nJ3lvdVwgOwor5Y+N5bCE5L+C5pWw57ea5ZuzIDwgaGFuc2hha2Vpc3V1c2VuenVcIDsKK+mIjeinkuS4ieinkuW9oiA8IGRvbmtha3VzYW5rYWt1a2VpXCA7Civmtbfpm6Plr6nliKTluoEgPCBrYWluYW5zaGlucGFuY2hvdVwgOwor54qv572q55m655Sf546HIDwgaGFuemFpaGFzc2Vpcml0c3VcIDsKK+W+rueUn+eJqeWtpuiAhSA8IGJpc2VpYnV0c3VnYWt1c2hhXCA7CivkuIPoibLllJDovpvlrZAgPCBuYW5haXJvdG91Z2FyYXNoaVwgOwor57Sg57KS5a2Q5Yqg6YCf5ZmoIDwgc29yeXV1c2hpa2Fzb2t1a2lcIDsKK+WFrOiBt+mBuOaMmeazlSA8IGtvdXNob2t1c2Vua3lvaG91XCA7CivlrprlvaLpg7Xkvr/niakgPCB0ZWlrZWl5dXViaW5idXRzdVwgOwor6Ieq55Sx6LK/5piT5Zyw5Z+fIDwgaml5dXVib3Vla2ljaGlpa2lcIDsKK+WvvuS4reWbvemWouS/giA8IHRhaWNodXVnb2t1a2Fua2VpXCA7CivlhazplovluILloLTmk43kvZwgPCBrb3VrYWlzaGlqb3Vzb3VzYVwgOwor56eR5a2m5oqA6KGT5bqBIDwga2FnYWt1Z2lqdXRzdWNob3VcIDsKK+W3puWBtOmAmuihjCA8IGhpZGFyaWdhd2F0c3V1a291XCA7CivlpKfoi7HljZrnianppKggPCBkYWllaWhha3VidXRzdWthblwgOwor5YuV6ISI56Gs5YyW55eHIDwgZG91bXlha3Vrb3VrYXNob3VcIDsKK+W4neeOi+elnuaoqeiqrCA8IHRlaW91c2hpbmtlbnNldHN1XCA7CivmlZHlh7rkvZzmiKYgPCBreXV1c2h1dHN1c2FrdXNlblwgOwor5a6H5a6Z5aSn54iG55m6IDwgdWNodXVkYWliYWt1aGF0c3VcIDsKK+mmluebuOWFvOWkluebuCA8IHNodXNob3VrZW5nYWlzaG91XCA7CivnlJ/nianlnLDnkIblraYgPCBzZWlidXRzdWNoaXJpZ2FrdVwgOwor5Lq66Lqr5L+d6K235Luk54q2IDwgamluc2hpbmhvZ29yZWlqb3VcIDsKK+WOn+WtkOeJqeeQhuWtpiA8IGdlbnNoaWJ1dHN1cmlnYWt1XCA7Civmr43lrZDlgaXlurfmiYvluLMgPCBib3NoaWtlbmtvdXRlY2hvdVwgOwor55Wl5Y+W6KqY5ouQ572qIDwgcnlha3VzaHV5dXVrYWl6YWlcIDsKK+WupOWGheijhemjviA8IHNoaXRzdW5haXNvdXNob2t1XCA7CivljprnlJ/lubTph5Hkv53pmbogPCBrb3VzZWluZW5raW5ob2tlblwgOwor55u05o6l56u25LqJIDwgY2hva3VzZXRzdWt5b3Vzb3VcIDsKK+WkqeS9k+eJqeeQhuWtpiA8IHRlbnRhaWJ1dHN1cmlnYWt1XCA7CivpmY3lnKflpInlnKflmaggPCBrb3VhdHN1aGVuJydhdHN1a2lcIDsKK+adseWNsOW6puS8muekviA8IGhpZ2FzaGlpbmRvZ2Fpc2hhXCA7Civnianos6rkuLvnvqnogIUgPCBidXNzaGl0c3VzaHVnaXNoYVwgOwor5Zu96Zqb55qE6LK/5piTIDwga29rdXNhaXRla2lib3Vla2lcIDsKK+S4reaAp+WtkOeIhuW8viA8IGNodXVzZWlzaGliYWt1ZGFuXCA7Civku6PmlbDmlrnnqIvlvI8gPCBkYWlzdXVob3V0ZWlzaGlraVwgOwor5bmz5Z2H5aSq6Zm95pelIDwgaGVpa2ludGFpeW91aml0c3VcIDsKK+aAp+ihjOeCuuaEn+afk+eXhyA8IHNlaWtvdWlrYW5zZW5zaG91XCA7Civml63ml6XmmIflpKkgPCBreW9rdWppdHN1c2hvdXRlblwgOwor5Lmz5YWQ5q275Lqh546HIDwgbnl1dWppc2hpYm91cml0c3VcIDsKK+S4h+WbveWNmuimp+S8miA8IGJhbmtva3VoYWt1cmFua2FpXCA7CivpmLLooZvmlr3oqK3luoEgPCBib3VlaXNoaXNldHN1Y2hvdVwgOwor5pyJ5paZ6aeQ6LuK5aC0IDwgeXV1cnlvdWNodXVzaGFqb3VcIDsKK+iHqOW6iuW/g+eQhuWtpiA8IHJpbnNob3VzaGlucmlnYWt1XCA7CivnlJ/lkb3kv53pmbrkvJrnpL4gPCBzZWltZWlob2tlbmdhaXNoYVwgOwor5YaZ55yf6YCx5YiK6KqMIDwgc2hhc2hpbnNodXVrYW5zaGlcIDsKK+engeacieiyoeeUo+WItuW6piA8IHNoaXl1dXphaXNhbnNlaWRvXCA7Civlt6jnn7PoqJjlv7XniakgPCBreW9zZWtpa2luZW5idXRzdVwgOwor5LqM5YWD5pa556iL5byPIDwgbmlnZW5ob3V0ZWlzaGlraVwgOwor6Jia6IuU5qSN54mpIDwgc2VudGFpc2hva3VidXRzdVwgOwor6YGT576p55qE6LKs5Lu7IDwgZG91Z2l0ZWtpc2VraW5pblwgOwor542F5a2Q5ZSQ6L6b5a2QIDwgc2hpc2hpdG91Z2FyYXNoaVwgOwor56CU56m25a6k5qOfIDwga2Vua3l1dXNoaXRzdXRvdVwgOwor5rCX6LGh6Kaz5ris6Ii5IDwga2lzaG91a2Fuc29rdXNlblwgOwor6Lu95Y+j6KmxIDwga2FydWt1Y2hpYmFuYXNoaVwgOwor5Lq654y/5ZCM56WW6KqsIDwgamluJydlbmRvdXNvc2V0c3VcIDsKK+Wbo+S9k+S6pOa4ieaoqSA8IGRhbnRhaWtvdXNob3VrZW5cIDsKK+WvvuS6uuaBkOaAlueXhyA8IHRhaWppbmt5b3VmdXNob3VcIDsKK+iEs+iEiumrhOiGnOeCjiA8IG5vdXNla2l6dWltYWt1ZW5cIDsKK+imgeazqOaEj+S6uueJqSA8IHlvdWNodXVpamluYnV0c3VcIDsKK+WtpuagoeaVmeiCsuazlSA8IGdha2tvdWt5b3Vpa3Vob3VcIDsKK+ilv+WBtOiruOWbvSA8IG5pc2hpZ2F3YXNob2tva3VcIDsKK+eOi+aoqeelnuaOiOiqrCA8IG91a2Vuc2hpbmp1c2V0c3VcIDsKK+ecn+mDqOWIhumbhuWQiCA8IHNoaW5idWJ1bnNodXVnb3VcIDsKK+eLrOWNoOemgeatouazlSA8IGRva3VzZW5raW5zaGlob3VcIDsKK+iEiuakjuWLleeJqSA8IHNla2l0c3VpZG91YnV0c3VcIDsKK+WxhemWk+WFvOWvneWupCA8IGltYWtlbnNoaW5zaGl0c3VcIDsKK+ahkeWOn+ahkeWOnyA8IGt1d2FiYXJha3V3YWJhcmFcIDsKK+WFrOensOizh+acrOmHkSA8IGtvdXNob3VzaGlob25raW5cIDsKK+mbu+WLleeZuuWLleapnyA8IGRlbmRvdWhhdHN1ZG91a2lcIDsKK+W/nOeUqOeJqeeQhuWtpiA8IG91eW91YnV0c3VyaWdha3VcIDsKK+S6q+alveeUn+a0uyA8IGt5b3VyYWt1c2Vpa2F0c3VcIDsKK+WFpeWKm+mbu+a1gSA8IG55dXVyeW9rdWRlbnJ5dXVcIDsKK+S4ieWNgeWFq+W6pue3miA8IHNhbmp1dWhhY2hpZG9zZW5cIDsKK+WNgeW5tOS4gOaXpSA8IGp1dW5lbicnaWNoaWppdHN1XCA7Civoqo3nn6Xlv4PnkIblraYgPCBuaW5jaGlzaGlucmlnYWt1XCA7Civpoqjkv5flsI/oqqwgPCBmdXV6b2t1c2hvdXNldHN1XCA7CivkvY7ooYDlnKfnl4cgPCB0ZWlrZXRzdWF0c3VzaG91XCA7Civlt6Xmpa3miYDmnInmqKkgPCBrb3VneW91c2hveXV1a2VuXCA7CivlpJrlpInph4/op6PmnpAgPCB0YWhlbnJ5b3VrYWlzZWtpXCA7CivomZrjgIXlrp/jgIUgPCBreW9reW9qaXRzdWppdHN1XCA7CivmuIXmtrzpo7LmlpnmsLQgPCBzZWlyeW91aW5yeW91c3VpXCA7CivmioDooZPljZTlipsgPCBnaWp1dHN1a3lvdXJ5b2t1XCA7CivnqbrkuK3ooZ3nqoEgPCBrdXVjaHV1c2hvdXRvdHN1XCA7CivkuIDlm73kuIDlhZrkuLvnvqkgPCBpa2tva3VpdHRvdXNodWdpXCA7Civml6XmnKzpgZPot6/lhazlm6MgPCBuaWhvbmRvdXJva291ZGFuXCA7Civph5HliKnnlJ/mtLvogIUgPCBraW5yaXNlaWthdHN1c2hhXCA7CivljYPnr4fkuIDlvosgPCBzZW5wZW4nJ2ljaGlyaXRzdVwgOwor5paZ55CG5pWZ5a6kIDwgcnlvdXJpa3lvdXNoaXRzdVwgOwor6YG66KiA5Z+36KGM6ICFIDwgeXVpZ29uc2hpa2tvdXNoYVwgOwor5pys5qC85bCP6KqsIDwgaG9ua2FrdXNob3VzZXRzdVwgOwor6LK/5piT5aSW5Y+O5pSvIDwgYm91ZWtpZ2Fpc2h1dXNoaVwgOwor5Zu956uL5YqH5aC0IDwga29rdXJpdHN1Z2VraWpvdVwgOwor5a6f6Le155CG5oCn5om55YikIDwgamlzc2VucmlzZWloaWhhblwgOwor5p+T6Imy5L2T5Zyw5ZuzIDwgc2Vuc2hva3V0YWljaGl6dVwgOwor5Li75bit56CU56m25ZOhIDwgc2h1c2VraWtlbmt5dXVpblwgOwor6auY6YCf5bqm5YaZ55yfIDwga291c29rdWRvc2hhc2hpblwgOwor6I2J6aOf5YuV54mpIDwgc291c2hva3Vkb3VidXRzdVwgOwor6auY5qyh5pa556iL5byPIDwga291amlob3V0ZWlzaGlraVwgOwor5b6u5YiG5pa556iL5byPIDwgYmlidW5ob3V0ZWlzaGlraVwgOwor55u05o6l6YG45oyZIDwgY2hva3VzZXRzdXNlbmt5b1wgOwor6YO15L6/56eB5pu4566xIDwgeXV1Ymluc2hpc2hvYmFrb1wgOwor5pac5qC85oCn57Wx5b6hIDwgc2hha2FrdXNlaXRvdWd5b1wgOwor57WM5Y+j6YG/5aaK6JasIDwga2Vpa291aGluaW4nJ3lha3VcIDsKK+S6uuadkOmWi+eZuumDqCA8IGppbnphaWthaWhhdHN1YnVcIDsKK+WkmumHjeWQjeWJjeepuumWkyA8IHRhanV1bmFtYWVrdXVrYW5cIDsKK+eUn+iAheW/hea7hSA8IHNob3VqYWhpdHN1bWV0c3VcIDsKK+eGseW4r+akjeeJqSA8IG5ldHRhaXNob2t1YnV0c3VcIDsKK+S4h+Wbveaomea6luaZgiA8IGJhbmtva3VoeW91anVuamlcIDsKK+advuS4i+mbu+W3pSA8IG1hdHN1c2hpdGFkZW5rb3VcIDsKK+mYsuihm+W6gemVt+WumCA8IGJvdWVpY2hvdWNob3VrYW5cIDsKK+WQq+awtOWMluWQiOeJqSA8IGdhbnN1aWthZ291YnV0c3VcIDsKK+mWouadseWkp+mch+eBvSA8IGthbnRvdWRhaXNoaW5zYWlcIDsKK+WVhualreeul+ihkyA8IHNob3VneW91c2FuanV0c3VcIDsKK+ijheeUsuWbnuWPjui7iiA8IHNvdWtvdWthaXNodXVzaGFcIDsKK+WcsOaWueihjOiyoeaUvyA8IGNoaWhvdWd5b3V6YWlzZWlcIDsKK+aAp+ihqOePvuaDheWgsSA8IHNlaWh5b3VnZW5qb3Vob3VcIDsKK+aIpuaIpuagl+aglyA8IHNlbnNlbnJpdHN1cml0c3VcIDsKK+W4jOacm+eahOims+a4rCA8IGtpYm91dGVraWthbnNva3VcIDsKK+WPjeWwhOa4m+ihsOmHjyA8IGhhbnNoYWdlbnN1aXJ5b3VcIDsKK+aPrueZuueJqeizqiA8IGtpaGF0c3VidXNzaGl0c3VcIDsKK+WkieaFi+W/g+eQhuWtpiA8IGhlbnRhaXNoaW5yaWdha3VcIDsKK+eZuuWFieakjeeJqSA8IGhha2tvdXNob2t1YnV0c3VcIDsKK+asp+W3nuWFseWQjOS9kyA8IG91c2h1dWt5b3Vkb3V0YWlcIDsKK+e0q+Wklue3mueZguazlSA8IHNoaWdhaXNlbnJ5b3Vob3VcIDsKK+mdnuatpuijheS4reeriyA8IGhpYnVzb3VjaHV1cml0c3VcIDsKK+S4u+W4reWkluS6pOWumCA8IHNodXNla2lnYWlrb3VrYW5cIDsKK+e0sOiDnuizqumBuuS8nSA8IHNhaWJvdXNoaXRzdWlkZW5cIDsKK+WFseeUo+WFmuWuo+iogCA8IGt5b3VzYW50b3VzZW5nZW5cIDsKK+mbu+WKm+S+m+e1piA8IGRlbnJ5b2t1a3lvdWt5dXVcIDsKK+W3oeWbnuiouueZguaJgCA8IGp1bmthaXNoaW5yeW91am9cIDsKK+a6kOazieaJgOW+l+eojiA8IGdlbnNlbnNob3Rva3V6ZWlcIDsKK+e1hOiBt+WKtOWDjeiAhSA8IHNvc2hva3Vyb3Vkb3VzaGFcIDsKK+WKtOWDjeiAhemajue0miA8IHJvdWRvdXNoYWthaWt5dXVcIDsKK+aIpueVpeeIhuaSgyA8IHNlbnJ5YWt1YmFrdWdla2lcIDsKK+WmiuWooOS4ree1tiA8IG5pbnNoaW5jaHV1emV0c3VcIDsKK+aLoeWkp+WGjeeUn+eUoyA8IGtha3VkYWlzYWlzZWlzYW5cIDsKK+W5s+WSjOe2reaMgea0u+WLlSA8IGhlaXdhaWppa2F0c3Vkb3VcIDsKK+S4iue0muijgeWIpOaJgCA8IGpvdWt5dXVzYWliYW5zaG9cIDsKK+emgeassuS4u+e+qeiAhSA8IGtpbicneW9rdXNodWdpc2hhXCA7CivnibnmrormvZzoiKroiYcgPCB0b2t1c2h1c2Vua291dGVpXCA7CivmnIDmgbXlm73lvoXpgYcgPCBzYWlrZWlrb2t1dGFpZ3V1XCA7CivlhbHnlKPkuLvnvqnlm70gPCBreW91c2Fuc2h1Z2lrb2t1XCA7Civljp/lkYrlr77ooqvlkYogPCBnZW5rb2t1dGFpaGlrb2t1XCA7Civlj5foqJflj47os4TnvaogPCBqdXRha3VzaHV1d2FpemFpXCA7CivmtYHooYzmgKfmhJ/lhpIgPCByeXV1a291c2Vpa2FuYm91XCA7Civlm73msJHnt4/nlJ/nlKMgPCBrb2t1bWluc291c2Vpc2FuXCA7CivkuK3ot53pm6Lnq7botbAgPCBjaHV1a3lvcmlreW91c291XCA7Civlhajlm73nmoTnr4Tlm7IgPCB6ZW5rb2t1dGVraWhhbicnaVwgOwor6YCj6YKm5YWx5ZKM5Zu9IDwgcmVucG91a3lvdXdha29rdVwgOwor5pmu6YGN55qE5rOV5YmHIDwgZnVoZW50ZWtpaG91c29rdVwgOwor5aSn57Wx6aCY6YG45oyZIDwgZGFpdG91cnlvdXNlbmt5b1wgOwor5LqM5Y215oCn5Y+M55Sf5YWQIDwgbmlyYW5zZWlzb3VzZWlqaVwgOwor5pel54y25ZCM56WW6KuWIDwgbmljaGl5dXVkb3Vzb3JvblwgOwor5Lih5pu/5omL5pWw5paZIDwgcnlvdWdhZXRlc3V1cnlvdVwgOwor6LOH5pys5Yip55uK546HIDwgc2hpaG9ucmlla2lyaXRzdVwgOwor6K2w6Zmi6YGL5Za25aeU5ZOh5LyaIDwgZ2lpbicndW4nJ2VpaWlua2FpXCA7CivmiKbou4rmj5rpmbjoiaYgPCBzZW5zaGF5b3VyaWt1a2FuXCA7CivkuLvovp7ntKDmgKfopo/ntIQgPCBzaHVqaXNvc2Vpa2l5YWt1XCA7CivlpbPmgKfop6PmlL7pgYvli5UgPCBqb3NlaWthaWhvdXVuZG91XCA7Civlo7LmmKXpmLLmraLms5UgPCBiYWlzaHVuYm91c2hpaG91XCA7CivlhYnljJblrablj43lv5wgPCBrb3VrYWdha3VoYW4nJ25vdVwgOwor55u05o6l5Lya6KuHIDwgY2hva3VzZXRzdWthaWRhblwgOwor5Ymy5aKX6LOD6YeRIDwgd2FyaW1hc2hpY2hpbmdpblwgOwor6LuN5LqL5b2T5bGA6ICFIDwgZ3Vuaml0b3VreW9rdXNoYVwgOwor6IKJ5L2T5Yq05YON6ICFIDwgbmlrdXRhaXJvdWRvdXNoYVwgOwor6Ieq5Li75rWB6YCa57GzIDwgamlzaHVyeXV1dHN1dW1haVwgOwor5L2c5LuY6Z2i56mNIDwgc2FrdWR6dWtlbWVuc2VraVwgOwor5pel54us5Y2U5LyaIDwgbmljaGlkb2t1a3lvdWthaVwgOwor5pel5bi455Sf5rS7IDwgbmljaGlqb3VzZWlrYXRzdVwgOwor56ys5LiA5qyh55Sj5qWtIDwgZGFpaWNoaWppc2FuZ3lvdVwgOwor5a6f5a2Y5Li7576p6ICFIDwgaml0c3V6b25zaHVnaXNoYVwgOwor5q2z5YWl5q2z5Ye6IDwgc2Fpbnl1dXNhaXNodXRzdVwgOwor54m55Yil5oCl6KGMIDwgdG9rdWJldHN1a3l1dWtvdVwgOwor54++5a6f5Li7576p6ICFIDwgZ2Vuaml0c3VzaHVnaXNoYVwgOwor5Y+N5pS/5bqc5Yui5YqbIDwgaGFuc2VpZnVzZWlyeW9rdVwgOwor5YWN55ar5LiN5YWo55eHIDwgbWVuJydla2lmdXplbnNob3VcIDsKK+i7ouWHuuiovOaYjiA8IHRlbnNodXRzdXNob3VtZWlcIDsKK+WNgemAsuWIhumhnuazlSA8IGppc3NoaW5idW5ydWlob3VcIDsKK+WBtuWDj+aVmeW+kueahCA8IGd1dXpvdWt5b3V0b3Rla2lcIDsKK+e0heeZveatjOWQiOaIpiA8IGtvdWhha3V1dGFnYXNzZW5cIDsKK+e1jOa4iOeglOeptuaJgCA8IGtlaXphaWtlbmt5dXVzaG9cIDsKK+i7jeS6i+mAmuS/oeWToSA8IGd1bmppdHN1dXNoaW4nJ2luXCA7Civln7rmupblhoXos4Pph5EgPCBraWp1bicnbmFpY2hpbmdpblwgOwor55yM5bqB5omA5Zyo5ZywIDwga2VuY2hvdXNob3phaWNoaVwgOwor5pWR6I2S5L2c54mpIDwga3l1dWtvdXNha3Vtb3RzdVwgOwor55yf5a6X5aSn6LC35rS+IDwgc2hpbnNodXVvb3RhbmloYVwgOwor5Zyw54ax55m66Zu7IDwgY2hpbmV0c3VoYXRzdWRlblwgOwor6Jas54mp55mC5rOVIDwgeWFrdWJ1dHN1cnlvdWhvdVwgOwor5YaN5YWl5Zu96Kix5Y+vIDwgc2Fpbnl1dWtva3VreW9rYVwgOwor6Iux5Zu95Zu95pWZ5LyaIDwgZWlrb2t1a29ra3lvdWthaVwgOwor6aOf57On6YWN57WmIDwgc2hva3VyeW91aGFpa3l1dVwgOwor54Kt6YW45ZCM5YyW5L2c55SoIDwgdGFuc2FuZG91a2FzYXlvdVwgOwor5riF5pWZ5b6S6Z2p5ZG9IDwgc2Vpa3lvdXRva2FrdW1laVwgOwor5aSq6Zm956We57WM5Y+iIDwgdGFpeW91c2hpbmtlaXNvdVwgOwor55u057O76KGA5pePIDwgY2hva2tlaWtldHN1em9rdVwgOwor6LOq5ZWP55So57SZIDwgc2hpdHN1bW9uJyd5b3VzaGlcIDsKK+e1jOWWtuWtpuS/ruWjqyA8IGtlaWVpZ2FrdXNodXVzaGlcIDsKK+WBpeW6t+iovOaYjuabuCA8IGtlbmtvdXNob3VtZWlzaG9cIDsKK+ekvuS8muW/g+eQhuWtpiA8IHNoYWthaXNoaW5yaWdha3VcIDsKK+S6jOWkp+aUv+WFmuS4u+e+qSA8IG5pZGFpc2VpdG91c2h1Z2lcIDsKK+eLrOi6q+eUn+a0uyA8IGRva3VzaGluc2Vpa2F0c3VcIDsKK+itpuWvn+W9k+WxgCA8IGtlaXNhdHN1dG91a3lva3VcIDsKK+WFrOWFseS8gealreS9kyA8IGtvdWt5b3VraWd5b3V0YWlcIDsKK+ebtOaOpeS8neafkyA8IGNob2t1c2V0c3VkZW5zZW5cIDsKK+mDveW4guWGjemWi+eZuiA8IHRvc2hpc2Fpa2FpaGF0c3VcIDsKK+mdkuepuuaVmeWupCA8IGFvem9yYWt5b3VzaGl0c3VcIDsKK+aUvuWwhOe3mueZguazlSA8IGhvdXNoYXNlbnJ5b3Vob3VcIDsKK+WbvemAo+WIhuaLhemHkSA8IGtva3VyZW5idW50YW5raW5cIDsKK+mdnuWroeWHuuWtkCA8IGhpY2hha3VzaHV0c3VzaGlcIDsKK+eUn+a0u+anmOW8jyA8IHNlaWthdHN1eW91c2hpa2lcIDsKK+Wumuacn+WIiuihjOeJqSA8IHRlaWtpa2Fua291YnV0c3VcIDsKK+aUu+aSg+mWi+Wni+e3miA8IGtvdWdla2lrYWlzaGlzZW5cIDsKK+W5s+mdouS4ieinkuazlSA8IGhlaW1lbnNhbmtha3Vob3VcIDsKK+azleWumuS8neafk+eXhSA8IGhvdXRlaWRlbnNlbmJ5b3VcIDsKK+eJh+mBk+aWmemHkSA8IGthdGFtaWNoaXJ5b3VraW5cIDsKK+WOn+ayuea1geWHuiA8IGdlbicneXVyeXV1c2h1dHN1XCA7CivnlaXlvI/lkb3ku6QgPCByeWFrdXNoaWtpbWVpcmVpXCA7CivoirjooZPmtLvli5UgPCBnZWlqdXRzdWthdHN1ZG91XCA7CivkuInlj4nnpZ7ntYznl5sgPCBzYW5zYXNoaW5rZWl0c3V1XCA7CivmrbTlj7Llk7LlraYgPCByZWtpc2hpdGV0c3VnYWt1XCA7CivlhKrli53msbrlrprmiKYgPCB5dXVzaG91a2V0dGVpc2VuXCA7CivkuIvnlLroqIDokYkgPCBzaGl0YW1hY2hpa290b2JhXCA7CivmnIDkvY7nlJ/mtLvosrsgPCBzYWl0ZWlzZWlrYXRzdWhpXCA7CivkuI3ntJTnlbDmgKfkuqTpgYogPCBmdWp1bicnaXNlaWtvdXl1dVwgOwor6aqo55qu562L5Y+z6KGb6ZaAIDwgaG9uZWthd2FzdWppZW1vblwgOwor5bqc55yM5Yil5Lq65Y+jIDwgZnVrZW5iZXRzdWppbmtvdVwgOwor57eK5oCl552A6Zm4IDwga2lua3l1dWNoYWt1cmlrdVwgOwor5o6o5a6a55u457aa5Lq6IDwgc3VpdGVpc291em9rdW5pblwgOwor5Ya36KGA5YuV54mpIDwgcmVpa2V0c3Vkb3VidXRzdVwgOwor5aSa5Zu957GN5LyB5qWtIDwgdGFrb2t1c2VraWtpZ3lvdVwgOwor5Y+W5omx5rOo5oSPIDwgdG9yaWF0c3VrYWljaHV1aVwgOwor5rWF6ZaT5bGx6I2Y5LqL5Lu2IDwgYXNhbWFzYW5zb3VqaWtlblwgOwor5pm05LiA5pmC5bCP6ZuoIDwgaGFyZWljaGlqaWtvc2FtZVwgOwor5Ymy5aKX5paZ6YeRIDwgd2FyaW1hc2hpcnlvdWtpblwgOwor5a2j56+A5Yq05YON6ICFIDwga2lzZXRzdXJvdWRvdXNoYVwgOwor5Lit5bCP6Ku45Zu95a62IDwgY2hvdXNob3VzaG9rb2trYVwgOwor5LiN5bmz562J5p2h57SEIDwgZnVieW91ZG91am91eWFrdVwgOwor55u05oiq57Ch5piOIDwgY2hva3VzZXRzdWthbm1laVwgOwor6buE6YGT5ZCJ5pelIDwga291ZG91a2ljaGluaWNoaVwgOwor5pyA5L2O6LOD6YeR5Yi2IDwgc2FpdGVpY2hpbmdpbnNlaVwgOwor5bid5Zu95Li7576p55qEIDwgdGVpa29rdXNodWdpdGVraVwgOwor5LiA6Kem5Y2z55m6IDwgaXNzaG9rdXNva3VoYXRzdVwgOwor5Y2z5pel6ZaL56WoIDwgc29rdWppdHN1a2FpaHlvdVwgOwor5qSN54mp6LOqIDwgc2hva3VidXRzdXNoaXRzdVwgOwor57SN56iO6YCa55+l5pu4IDwgbm91emVpdHN1dWNoaXNob1wgOwor6Zai56iO5Ymy5b2T5Yi2IDwga2FuemVpd2FyaWF0ZXNlaVwgOwor5a6f6LOq6LOD6YeRIDwgamlzc2hpdHN1Y2hpbmdpblwgOwor5bGF5L2P6Ki85piO5pu4IDwga3lvanV1c2hvdW1laXNob1wgOwor5aSn5L2/57Sa5Lya6KuHIDwgdGFpc2hpa3l1dWthaWRhblwgOwor5pWZ6aSK5bCP6KqsIDwga3lvdXlvdXNob3VzZXRzdVwgOwor5rCR5Li75rS75YuV5a62IDwgbWluc2h1a2F0c3Vkb3VrYVwgOwor5a6i5ZOh56CU56m25ZOhIDwga3lha3Vpbmtlbmt5dXVpblwgOwor5oq96LGh6Iq46KGTIDwgY2h1dXNob3VnZWlqdXRzdVwgOwor55u05o6l5pSv6YWNIDwgY2hva3VzZXRzdXNoaWhhaVwgOwor55Kw5aKD5L+d6K235Li7576pIDwga2Fua3lvdWhvZ29zaHVnaVwgOwor5LiW55WM6LK/5piT5qmf6ZaiIDwgc2VrYWlib3Vla2lraWthblwgOwor5pSv5oyB5Yqb5L+C5pWwIDwgc2hpamlyeW9rdWtlaXN1dVwgOwor55u05LiL5Z6L5Zyw6ZyHIDwgY2hva2thZ2F0YWppc2hpblwgOwor5pyq6Kej5rG65ZWP6aGMIDwgbWlrYWlrZXRzdW1vbmRhaVwgOwor5bu656+J5Z+65rqW5rOVIDwga2VuY2hpa3VraWp1bmhvdVwgOwor54Sh5b2i5Zu65a6a6LOH55SjIDwgbXVrZWlrb3RlaXNoaXNhblwgOwor55+l55qE5omA5pyJ5qipIDwgY2hpdGVraXNob3l1dWtlblwgOwor6IG35qWt5a6J5a6a5omAIDwgc2hva3VneW91YW50ZWlqb1wgOwor5YWx55Sj5YWa57Sw6IOeIDwga3lvdXNhbnRvdXNhaWJvdVwgOwor5LiA5bm055Sf6I2J5pysIDwgaWNoaW5lbnNlaXNvdWhvblwgOwor5p2h57SE5Yqg55uf5Zu9IDwgam91eWFrdWthbWVpa29rdVwgOwor56uL5q2j5L285oiQ5LyaIDwgcmlzc2hvdWtvdXNlaWthaVwgOwor6ZuG5Zuj5bCx6IG3IDwgc2h1dWRhbnNodXVzaG9rdVwgOwor5YWx6Kaz56aP6Z+z5pu4IDwga3lvdWthbmZ1a3VpbnNob1wgOwor5rC055Sf5qSN54mpIDwgc3Vpc2Vpc2hva3VidXRzdVwgOwor5a6/55u05a6kIDwgc2h1a3VjaG9rdXNoaXRzdVwgOwor6auY5omA5oGQ5oCW55eHIDwga291c2hva3lvdWZ1c2hvdVwgOwor5paw6IGe6LKp5aOy5bqXIDwgc2hpbmJ1bmhhbmJhaXRlblwgOwor6L6y5p6X5rC055Sj55yBIDwgbm91cmluc3Vpc2Fuc2hvdVwgOwor5LqM6ICF6YG45LiA5rOVIDwgbmlzaGFzZW4nJ2l0c3Vob3VcIDsKK+Wig+eVjOWApOWVj+mhjCA8IGt5b3VrYWljaGltb25kYWlcIDsKK+ekvuS8muS6uumHjueQgyA8IHNoYWthaWppbicneWFreXV1XCA7Civogbfli5nos6rllY8gPCBzaG9rdW11c2hpdHN1bW9uXCA7Civkub7nlJ/mpI3niakgPCBrYW5zZWlzaG9rdWJ1dHN1XCA7Civoj5zpo5/kuLvnvqnogIUgPCBzYWlzaG9rdXNodWdpc2hhXCA7Civlrr/ms4roqK3lgpkgPCBzaHVrdWhha3VzZXRzdWJpXCA7Civlm73nq4vlpKflraYgPCBrb2t1cml0c3VkYWlnYWt1XCA7CivkuIDoqIDkuozoqIAgPCBoaXRva290b2Z1dGFrb3RvXCA7Civou43nlKPopIflkIjkvZMgPCBndW5zYW5mdWt1Z291dGFpXCA7Civnsr7npZ7ljLvlrabogIUgPCBzZWlzaGluJydpZ2FrdXNoYVwgOwor57WM5riI5LyB55S75bqBIDwga2VpemFpa2lrYWt1Y2hvdVwgOwor5YWI56uv5pSv5oyB5YqbIDwgc2VudGFuc2hpamlyeW9rdVwgOwor5L+d5YGl54mp55CG5a2mIDwgaG9rZW5idXRzdXJpZ2FrdVwgOwor5q2j6Z2i6KGd56qBIDwgc2hvdW1lbnNob3V0b3RzdVwgOwor5YiG6Kej6JK45rqc5rOVIDwgYnVua2Fpam91cnl1dWhvdVwgOwor6KiI6YeP6KiA6Kqe5a2mIDwga2VpcnlvdWdlbmdvZ2FrdVwgOwor5Zyw5Z+f5oyv6IiI5Yi4IDwgY2hpaWtpc2hpbmtvdWtlblwgOwor5oCl6YCy5Li7576p6ICFIDwga3l1dXNoaW5zaHVnaXNoYVwgOwor5LiA5pel5Y2D56eLIDwgaWNoaW5pY2hpc2Vuc2h1dVwgOwor5Lqk6YCa6YGL6Ly45qWtIDwga291dHN1dXVuJyd5dWd5b3VcIDsKK+WVhualreebrueahCA8IHNob3VneW91bW9rdXRla2lcIDsKK+eEoeWItumZkOS+m+e1piA8IG11c2VpZ2Vua3lvdWt5dXVcIDsKK+e1puS4juaJgOW+l+iAhSA8IGt5dXV5b3Nob3Rva3VzaGFcIDsKK+aIpumXmOeIhuaSg+apnyA8IHNlbnRvdWJha3VnZWtpa2lcIDsKK+ikh+W8j+Wtpue0miA8IGZ1a3VzaGlraWdha2t5dXVcIDsKK+ael+alreippumok+WgtCA8IHJpbmd5b3VzaGlrZW5qb3VcIDsKK+WNkualreiovOabuCA8IHNvdHN1Z3lvdXNob3VzaG9cIDsKK+aTsuW8vueZuuWwhOetkiA8IHRla2lkYW5oYXNzaGF0b3VcIDsKK+eUo+i7jeikh+WQiOS9kyA8IHNhbmd1bmZ1a3Vnb3V0YWlcIDsKK+acgOWkp+WFrOe0hOaVsCA8IHNhaWRhaWtvdXlha3VzdXVcIDsKK+WbveWGhea2iOiyu+eojiA8IGtva3VuYWlzaG91aGl6ZWlcIDsKK+WwkeW5tOWvqeWIpOaJgCA8IHNob3VuZW5zaGlucGFuam9cIDsKK+eEvOiCieWumumjnyA8IHlha2luaWt1dGVpc2hva3VcIDsKK+a1geihjOaAp+iCneeCjiA8IHJ5dXVrb3VzZWlrYW4nJ2VuXCA7CivooajpnaLlvLXlipsgPCBoeW91bWVuY2hvdXJ5b2t1XCA7Civmupbmupbmsbrli53miKYgPCBqdW5qdW5rZXNzaG91c2VuXCA7CivkuI3lrozlhajnh4PnhLwgPCBmdWthbnplbicnbmVuc2hvdVwgOwor5Y6f5a2Q5Yqb5pmC5LujIDwgZ2Vuc2hpcnlva3VqaWRhaVwgOwor6L6y5qWt6Kmm6aiT5aC0IDwgbm91Z3lvdXNoaWtlbmpvdVwgOwor6auY6YCf5bqm5pKu5b2xIDwga291c29rdWRvc2F0c3VlaVwgOwor54m55Yil55Wq57WEIDwgdG9rdWJldHN1YmFuZ3VtaVwgOwor5a2m57+S6IO95YqbIDwgZ2FrdXNodXVub3VyeW9rdVwgOwor5aW95rCX5oCn55Sf54mpIDwga291a2lzZWlzZWlidXRzdVwgOwor5a625bqt5YaF5pq05YqbIDwga2F0ZWluYWlib3VyeW9rdVwgOwor5L+h55So5Y+W5byVIDwgc2hpbicneW91dG9yaWhpa2lcIDsKK+mfs+WjsOWkmumHjeaUvumAgSA8IG9uc2VpdGFqdXVob3Vzb3VcIDsKK+mrmOihgOWcp+eXhyA8IGtvdWtldHN1YXRzdXNob3VcIDsKK+WcqOexjeWwguW+k+iAhSA8IHphaXNla2lzZW5qdXVzaGFcIDsKK+S4gOWPo+ipsSA8IGhpdG9rdWNoaWJhbmFzaGlcIDsKK+WumOiyu+eVmeWtpueUnyA8IGthbnBpcnl1dWdha3VzZWlcIDsKK+WNl+WMl+acneaZguS7oyA8IG5hbmJva3VjaG91amlkYWlcIDsKK+atu+S6oeiouuaWreabuCA8IHNoaWJvdXNoaW5kYW5zaG9cIDsKK+W8pualveWbm+mHjeWljyA8IGdlbmdha3VzaGlqdXVzb3VcIDsKK+S7suijgeijgeWIpOaJgCA8IGNodXVzYWlzYWliYW5zaG9cIDsKK+eQhuirlueJqeeQhuWtpiA8IHJpcm9uYnV0c3VyaWdha3VcIDsKK+WFqOiIrOWJjeWTqOe3miA8IHplbnBhbnplbnNob3VzZW5cIDsKK+etjeeUn+a0uyA8IHRha2Vub2tvc2Vpa2F0c3VcIDsKK+WNgeS6jOaMh+iFuOiZqyA8IGp1dW5pc2hpY2hvdWNodXVcIDsKK+S4reW/g+S6uueJqSA8IGNodXVzaGluamluYnV0c3VcIDsKK+Wcn+acqOW3peWtpuiAhSA8IGRvYm9rdWtvdWdha3VzaGFcIDsKK+mjn+aWmeWTgeWVhiA8IHNob2t1cnlvdWhpbnNob3VcIDsKK+aXpeS4remfk+e1seWQiCA8IG5pdGNodXVrYW50b3Vnb3VcIDsKK+aLoeW8teWAjeeyvuW6piA8IGtha3VjaG91YmFpc2VpZG9cIDsKK+WKtOWDjeWPjuWuueaJgCA8IHJvdWRvdXNodXV5b3VzaG9cIDsKK+i2heePvuWun+eahCA8IGNob3VnZW5qaXRzdXRla2lcIDsKK+WNs+i6q+aIkOS7jyA8IHNva3VzaGluam91YnV0c3VcIDsKK+WbveWkluiEseWHuiA8IGtva3VnYWlkYXNzaHV0c3VcIDsKK+eEoeedgOmZuOmjm+ihjCA8IG11Y2hha3VyaWt1aGlrb3VcIDsKK+aXpeS7mOWkieabtOe3miA8IGhpZHp1a2VoZW5rb3VzZW5cIDsKK+ebtOaOpeWbnuetlCA8IGNob2t1c2V0c3VrYWl0b3VcIDsKK+W9k+S6i+iAheiDveWKmyA8IHRvdWppc2hhbm91cnlva3VcIDsKK+iEs+aAp+Wwj+WFkOm6u+eXuiA8IG5vdXNlaXNob3VuaW1haGlcIDsKK+WFiOeJqeWPluW8lSA8IHNha2ltb25vdG9yaWhpa2lcIDsKK+Wkp+adseS6nOWFseaghOWcjyA8IGRhaXRvdWFreW91ZWlrZW5cIDsKK+attOWPsuWwj+iqrCA8IHJla2lzaGlzaG91c2V0c3VcIDsKK+eFruayuOa2iOavkiA8IHNoYWZ1dHN1c2hvdWRva3VcIDsKK+a1t+WklumAsuWHuiA8IGthaWdhaXNoaW5zaHV0c3VcIDsKK+awtOWKm+eZuumbuyA8IHN1aXJ5b2t1aGF0c3VkZW5cIDsKK+aQjeebiuioiOeul+abuCA8IHNvbicnZWtpa2Vpc2Fuc2hvXCA7CivlsI/lo7LniankvqHmjIfmlbAgPCBrb3VyaWJ1a2thc2hpc3V1XCA7CivmgKXooYzlgZzou4rpp4UgPCBreXV1a291dGVpc2hhZWtpXCA7Civlj43mpI3msJHkuLvnvqkgPCBoYW5zaG9rdW1pbnNodWdpXCA7CivmpbXkvY7muKnnp5HlraYgPCBreW9rdXRlaW9ua2FnYWt1XCA7Civoh6rnlLHkuLvnvqnntYzmuIggPCBqaXl1dXNodWdpa2VpemFpXCA7CivlhpnnnJ/mnJvpgaDpj6EgPCBzaGFzaGluYm91ZW5reW91XCA7CivlvaLos6rlsI7lhaUgPCBrZWlzaGl0c3Vkb3VueXV1XCA7Civlppnms5Xok67oj6/ntYwgPCBteW91aG91cmVuZ2VreW91XCA7Civlrp/nlKjkuLvnvqnogIUgPCBqaXRzdXlvdXNodWdpc2hhXCA7CivlvozmlrnpgKPntaHnt5ogPCBrb3Vob3VyZW5yYWt1c2VuXCA7Civlrp/pqJPlv4PnkIblraYgPCBqaWtrZW5zaGlucmlnYWt1XCA7CivlpJzplpPpoJDph5HjgIXluqsgPCB5YWthbicneW9raW5raW5rb1wgOwor55u05o6l6Zai5L+CIDwgY2hva3VzZXRzdWthbmtlaVwgOwor5oyv5pu/5LyR5pelIDwgZnVyaWthZWt5dXVqaXRzdVwgOwor6YCj6YKm5rqW5YKZ5Yi25bqmIDwgcmVucG91anVuYmlzZWlkb1wgOwor6YO15L6/5bCP5YyFIDwgeXV1Ymlua29kenV0c3VtaVwgOwor5LiN5rOV5YWl5Zu96ICFIDwgZnVob3VueXV1a29rdXNoYVwgOwor5Y2Y5LiA56We5pWZIDwgdGFuJydpdHN1c2hpbmt5b3VcIDsKK+iZmuW8seS9k+izqiA8IGt5b2pha3V0YWlzaGl0c3VcIDsKK+WkmuWFg+aWueeoi+W8jyA8IHRhZ2VuaG91dGVpc2hpa2lcIDsKK+WbveWGhee3j+eUn+eUoyA8IGtva3VuYWlzb3VzZWlzYW5cIDsKK+iEiue0ouWLleeJqSA8IHNla2lzYWt1ZG91YnV0c3VcIDsKK+atpuWKm+ihneeqgSA8IGJ1cnlva3VzaG91dG90c3VcIDsKK+eGseaguOWPjeW/nCA8IG5ldHN1a2FrdWhhbicnbm91XCA7CivpiYTpgZPlhazlronlrpggPCB0ZXRzdWRvdWtvdWFua2FuXCA7CivnqK7lrZDmpI3niakgPCBzaHVzaGlzaG9rdWJ1dHN1XCA7CivlubPlj7Dlnovosqjou4ogPCBoaXJhZGFpZ2F0YWthc2hhXCA7Civkurrnp7Dku6PlkI3oqZ4gPCBuaW5zaG91ZGFpbWVpc2hpXCA7Civlrp/mpa3kuYvml6XmnKwgPCBqaXRzdWd5b3Vub25paG9uXCA7CivnqY3lsaTkub7pm7vmsaAgPCBzZWtpc291a2FuZGVuY2hpXCA7CivooYzmlL/nrqHnkIbluoEgPCBneW91c2Vpa2FucmljaG91XCA7CivotaTljYHlrZfmnaHntIQgPCBzZWtpanV1amlqb3V5YWt1XCA7CivlhYnlrabpoZXlvq7pj6EgPCBrb3VnYWt1a2VuYmlreW91XCA7CivotoXpgY7li6Tli5nmiYvlvZMgPCBjaG91a2FraW5tdXRlYXRlXCA7Civkuojlgpnlo6vlrpjlrabmoKEgPCB5b2Jpc2hpa2FuZ2Fra291XCA7CivlvLfliLblj47lrrnmiYAgPCBreW91c2Vpc2h1dXlvdWpvXCA7Civniq/nvarlv4PnkIblraYgPCBoYW56YWlzaGlucmlnYWt1XCA7CivpgKPpgqbmjZzmn7vlsYAgPCByZW5wb3Vzb3VzYWt5b2t1XCA7CivlpKfpmbjnp7vli5XoqqwgPCB0YWlyaWt1aWRvdXNldHN1XCA7Civnm7TmjqXooYzli5UgPCBjaG9rdXNldHN1a291ZG91XCA7CivkvIHmpa3lhoXmlZnogrIgPCBraWd5b3VuYWlreW91aWt1XCA7CivmsYLogbfluoPlkYogPCBreXV1c2hva3Vrb3Vrb2t1XCA7Civlrp/oqLzlk7LlraYgPCBqaXNzaG91dGV0c3VnYWt1XCA7CivoirHlq4HoirHlqb8gPCBoYW5heW9tZWhhbmFtdWtvXCA7CivnlLvlg4/lh6bnkIboo4Xnva4gPCBnYXpvdXNob3Jpc291Y2hpXCA7CivnqpLntKDphbjljJbniakgPCBjaGlzc29zYW5rYWJ1dHN1XCA7CivluJ3njovliIfplovooZMgPCB0ZWlvdXNla2thaWp1dHN1XCA7Civlha3ljYHlm5vliIbpn7PnrKYgPCByb2t1anV1c2hpYnVvbnB1XCA7CivmmKXmqZ/nmbrli5XmnJ8gPCBzaHVua2loYXRzdWRvdWtpXCA7CivlpKflkI3ooYzliJcgPCBkYWlteW91Z3lvdXJldHN1XCA7Civpq5jlsbHmpI3niakgPCBrb3V6YW5zaG9rdWJ1dHN1XCA7CivmlL7lsITmgKflkIzkvY3kvZMgPCBob3VzaGFzZWlkb3VpdGFpXCA7CivlpKnluZXoo73pgKDkurogPCB0ZW5tYWt1c2Vpem91bmluXCA7CivmnIDlhKrnp4DpgbjmiYsgPCBzYWl5dXVzaHV1c2Vuc2h1XCA7CivnibnliKXmlpnph5EgPCB0b2t1YmV0c3VyeW91a2luXCA7Civli53liKnlj4jli53liKkgPCBzaG91cmltYXRhc2hvdXJpXCA7CivlpbPmtYHmloflrabogIUgPCBqb3J5dXVidW5nYWt1c2hhXCA7CivkuK3plpPlsI/oqqwgPCBjaHV1a2Fuc2hvdXNldHN1XCA7CivogJDkuYXmtojosrvosqEgPCB0YWlreXV1c2hvdWhpemFpXCA7CivpnZ7lhazlvI/ljZTorbAgPCBoaWtvdXNoaWtpa3lvdWdpXCA7CivnlJ/nianmv4PnuK4gPCBzZWlidXRzdW5vdXNodWt1XCA7CivlhaXlipvkv6Hlj7cgPCBueXV1cnlva3VzaGluZ291XCA7CivnqbrmuK/kvb/nlKjmlpkgPCBrdXVrb3VzaGl5b3VyeW91XCA7CivlvavliLvlrqTluqcgPCBjaG91a29rdXNoaXRzdXphXCA7CivnorrnjofmqJnmnKwgPCBrYWt1cml0c3VoeW91aG9uXCA7CivnhKHph43lipvnirbmhYsgPCBtdWp1dXJ5b2t1am91dGFpXCA7CivlpKnnhafnmoflpKfnpZ4gPCB0ZW5zaG91a291ZGFpamluXCA7Civlt57nq4vlpKflraYgPCBzaHV1cml0c3VkYWlnYWt1XCA7Civnsr7npZ7lronlrprliaQgPCBzZWlzaGluJydhbnRlaXphaVwgOwor6YW45oCn6YW45YyW54mpIDwgc2Fuc2Vpc2Fua2FidXRzdVwgOwor5YaZ5a6f5Li7576p6ICFIDwgc2hhaml0c3VzaHVnaXNoYVwgOwor5Ya35oim5Z6L5oCd6ICDIDwgcmVpc2VuZ2F0YXNoaWtvdVwgOwor5Lqc54ax5biv6auY5rCX5ZynIDwgYW5ldHRhaWtvdWtpYXRzdVwgOwor5aSa6IKJ5qSN54mpIDwgdGFuaWt1c2hva3VidXRzdVwgOwor6Zu75a2Q5bel5qWt5LyaIDwgZGVuc2hpa291Z3lvdWthaVwgOwor6Zu75a2Q5bel5a2m6ICFIDwgZGVuc2hpa291Z2FrdXNoYVwgOwor6K2y5rih5Lq6IDwgeXV6dXJpd2F0YXNoaW5pblwgOwor54ax5Lyd5bCO546HIDwgbmV0c3VkZW5kb3VyaXRzdVwgOwor5rCR5Li75YWx5ZKM5Zu9IDwgbWluc2h1a3lvdXdha29rdVwgOwor56OB5rCX5YWx6bO055S75YOPIDwgamlraWt5b3VtZWlnYXpvdVwgOwor54us56uL6KiY5b+15pelIDwgZG9rdXJpdHN1a2luZW5iaVwgOwor5YyW5a2m6Kq/5ZGz5paZIDwga2FnYWt1Y2hvdW1pcnlvdVwgOwor5qSN54mp5Lq66ZaTIDwgc2hva3VidXRzdW5pbmdlblwgOwor6bOl542j5L+d6K235Yy65Z+fIDwgY2hvdWp1dWhvZ29rdWlraVwgOwor57WC6Lqr6ZuH55So5Yi2IDwgc2h1dXNoaW5rb3lvdXNlaVwgOwor5LiN5a6a5pa556iL5byPIDwgZnV0ZWlob3V0ZWlzaGlraVwgOwor54mp54mp5Lqk5o+bIDwgYnV0c3VidXRzdWtvdWthblwgOwor5a6f5Yqb6KGM5L2/IDwgaml0c3VyeW9rdWtvdXNoaVwgOwor5Z6L5byP6Ki85piOIDwga2F0YXNoaWtpc2hvdW1laVwgOwor6YCj5Yud6KSH5byPIDwgcmVuc2hvdWZ1a3VzaGlraVwgOwor5aSn5L+u6YGT6Zmi6ZW3IDwgZGFpc2h1dWRvdWluY2hvdVwgOwor55u05o6l5Y2U6K2wIDwgY2hva3VzZXRzdWt5b3VnaVwgOwor572q6Zqc5raI5ruFIDwgemFpc2hvdXNob3VtZXRzdVwgOwor5pmp55Sf5qSN54mpIDwgYmFuc2Vpc2hva3VidXRzdVwgOwor5r2c5Zyo5aSx5qWtIDwgc2VuemFpc2hpdHN1Z3lvdVwgOwor5riv5rm+6YGL6YCB5qWtIDwga291d2FuJyd1bnNvdWd5b3VcIDsKK+WRqOazouaVsOWkieiqvyA8IHNodXVoYXN1dWhlbmNob3VcIDsKK+S5vueHpeWcsOi+sualrSA8IGthbnNvdWNoaW5vdWd5b3VcIDsKK+eSsOWig+mFjeaFruabuCA8IGthbmt5b3VoYWlyeW9zaG9cIDsKK+ebtOaOpeavlOi8gyA8IGNob2t1c2V0c3VoaWtha3VcIDsKK+WbuuS9k+eJqeeQhuWtpiA8IGtvdGFpYnV0c3VyaWdha3VcIDsKK+aguOaKkeatouWKmyA8IGtha3V5b2t1c2hpcnlva3VcIDsKK+Wbvemam+aPtOWKqeapn+mWoiA8IGtva3VzYWllbmpva2lrYW5cIDsKK+e1hOe5lOWKtOWDjeiAhSA8IHNvc2hpa2lyb3Vkb3VzaGFcIDsKK+WWtualreWgseWRiuabuCA8IGVpZ3lvdWhvdWtva3VzaG9cIDsKK+S4h+eJqea1gei7oiA8IGJhbmJ1dHN1cnl1dXRlblwgOwor6Luf5byP5bqt55CDIDwgbmFuc2hpa2l0ZWlreXV1XCA7CivluoPlkYrku6PnkIblupcgPCBrb3Vrb2t1ZGFpcml0ZW5cIDsKK+S/rumBk+eUn+a0uyA8IHNodXVkb3VzZWlrYXRzdVwgOwor5oim5pmC5Zu96Zqb5rOVIDwgc2Vuamlrb2t1c2FpaG91XCA7Civnp5jlr4borablr58gPCBoaW1pdHN1a2Vpc2F0c3VcIDsKK+azleS6uuagquS4uyA8IGhvdWppbmthYnVudXNoaVwgOwor5YaF5bmV6KmxIDwgdWNoaW1ha3ViYW5hc2hpXCA7CivplpPmjqXnhafmmI4gPCBrYW5zZXRzdXNob3VtZWlcIDsKK+e0m+mqqOeglei6qyA8IGZ1bmtvdHN1c2Fpc2hpblwgOwor5Lih5qOy5YuV54mpIDwgcnlvdXNlaWRvdWJ1dHN1XCA7CivlpJrpoY3ntI3nqI7ogIUgPCB0YWdha3Vub3V6ZWlzaGFcIDsKK+WkquWFg+W4peWmmeeOiyA8IGRhaWdlbnN1aW15b3VvdVwgOwor6ZuG57SE6L6y5qWtIDwgc2h1dXlha3Vub3VneW91XCA7Civlu4Pnlr7mnaHku7YgPCBoYWlzaGl0c3Vqb3VrZW5cIDsKK+iDveeOh+izg+mHkSA8IG5vdXJpdHN1Y2hpbmdpblwgOwor5Lit6YOo5aSq5bmz5rSLIDwgY2h1dWJ1dGFpaGVpeW91XCA7CivkvIHmpa3lhoXntYTlkIggPCBraWd5b3VuYWlrdW1pYWlcIDsKK+WNmOWIgOebtOWFpSA8IHRhbnRvdWNob2t1bnl1dVwgOwor5aSq5bmz5rSL5oim5LqJIDwgdGFpaGVpeW91c2Vuc291XCA7CivkuInmloflsI/oqqwgPCBzYW5tb25zaG91c2V0c3VcIDsKK+eti+iCieazqOWwhCA8IGtpbicnbmlrdWNodXVzaGFcIDsKK+Wbm+mAmuWFq+mBlCA8IHNoaXRzdXVoYXR0YXRzdVwgOwor6YCj5biv5L+d6Ki85Lq6IDwgcmVudGFpaG9zaG91bmluXCA7Civou43lm73kuLvnvqnogIUgPCBndW5rb2t1c2h1Z2lzaGFcIDsKK+WJsuWil+mBi+izgyA8IHdhcmltYXNoaXVuY2hpblwgOwor5Y2X5qW16Kaz5risIDwgbmFua3lva3VrYW5zb2t1XCA7CivkuIDnm67nnq3nhLYgPCBpY2hpbW9rdXJ5b3V6ZW5cIDsKK+e0oOS6uuS4i+WuvyA8IHNoaXJvdXRvZ2VzaHVrdVwgOwor5a2m5qCh57Wm6aOfIDwgZ2Fra291a3l1dXNob2t1XCA7Civlj43luJ3lm73kuLvnvqkgPCBoYW50ZWlrb2t1c2h1Z2lcIDsKK+mWk+aOpeaSruW9sSA8IGthbnNldHN1c2F0c3VlaVwgOwor5Lya56S+5pu055Sf5rOVIDwga2Fpc2hha291c2VpaG91XCA7Civlm73pgbjlvIHorbfkurogPCBrb2t1c2VuYmVuZ29uaW5cIDsKK+eZveW3neWknOiIuSA8IHNoaXJha2F3YXlvZnVuZVwgOwor6Ieq54S25Zyw55CG5a2mIDwgc2hpemVuY2hpcmlnYWt1XCA7CivlnLDln5/nmoTliIbluIMgPCBjaGlpa2l0ZWtpYnVucHVcIDsKK+eEoeaUv+W6nOS4u+e+qeiAhSA8IG11c2VpZnVzaHVnaXNoYVwgOwor5Ymq5pat5a6J5a6a5oCnIDwgc2VuZGFuJydhbnRlaXNlaVwgOwor54m5562G5aSn5pu4IDwgdG9rdWhpdHN1dGFpc2hvXCA7Civpq5jliIblrZDljJblraYgPCBrb3VidW5zaGlrYWdha3VcIDsKK+aDheWgseWFrOmWi+azlSA8IGpvdWhvdWtvdWthaWhvdVwgOwor5Y+N5bCE5pyb6YGg6Y+hIDwgaGFuc2hhYm91ZW5reW91XCA7Civpo5/lk4Hlt6Xmpa0gPCBzaG9rdWhpbmtvdWd5b3VcIDsKK+ajmOearuWLleeJqSA8IGt5b2t1aGlkb3VidXRzdVwgOwor5oCq5Yqb5Lmx56WeIDwga2Fpcnlva3VyYW5zaGluXCA7CivkurrnlJ/lk7LlraYgPCBqaW5zZWl0ZXRzdWdha3VcIDsKK+eJueWIpeWnlOWToeS8miA8IHRva3ViZXRzdWlpbmthaVwgOwor5YaF6ZyA5Li75bCO5Z6LIDwgbmFpanVzaHVkb3VnYXRhXCA7CivmmbTlpKnkubHmsJfmtYEgPCBzZWl0ZW5yYW5raXJ5dXVcIDsKK+aWsOWpmueUn+a0uyA8IHNoaW5rb25zZWlrYXRzdVwgOwor77yS77yQ77yQ77yQ5bm05ZWP6aGMIDwgbmlzZW4nJ25lbm1vbmRhaVwgOwor5YWs6ZaL5YWl5pytIDwga291a2Fpbnl1dXNhdHN1XCA7Civln7rmnKznmoTkurrmqKkgPCBraWhvbnRla2lqaW5rZW5cIDsKK+agquW8j+W4guWgtCA8IGthYnVzaGlraXNoaWpvdVwgOwor5a2m5qWt5oiQ57i+IDwgZ2FrdWd5b3VzZWlzZWtpXCA7CivmiKbkuonniq/nvarkurogPCBzZW5zb3VoYW56YWluaW5cIDsKK+eJqeizquWQjeipniA8IGJ1c3NoaXRzdW1laXNoaVwgOwor5Y+N5a++6LK/5piT6aKoIDwgaGFudGFpYm91ZWtpZnV1XCA7Civnn63nt6jlsI/oqqwgPCB0YW5wZW5zaG91c2V0c3VcIDsKK+mBk+i3r+S6pOmAmuazlSA8IGRvdXJva291dHN1dWhvdVwgOwor5YWx55Sj5Zu95a626YOhIDwga3lvdXNhbmtva2thZ3VuXCA7CivllYbmpa3mlbDlraYgPCBzaG91Z3lvdXN1dWdha3VcIDsKK+S7ruijheW3oea0i+iJpiA8IGthc291anVuJyd5b3VrYW5cIDsKK+aVmeiCsuWfuuacrOazlSA8IGt5b3Vpa3VraWhvbmhvdVwgOwor55Sf55Sj6ICF5L6h5qC8IDwgc2Vpc2Fuc2hha2FrYWt1XCA7CivmnIDlsI/kuozkuZfms5UgPCBzYWlzaG91bmlqb3Vob3VcIDsKK+iEseWHuumAn+W6piA8IGRhc3NodXRzdXNva3Vkb1wgOwor54m55Yil57eP5LyaIDwgdG9rdWJldHN1c291a2FpXCA7CivnrKzkuIDmpb3nq6AgPCBkYWlpY2hpZ2FrdXNob3VcIDsKK+S4u+W5ueeglOeptuWToSA8IHNodWthbmtlbmt5dXVpblwgOwor5a6Y5YOa5Li7576p6ICFIDwga2FucnlvdXNodWdpc2hhXCA7CivlsI/pgbjmjJnljLrliLYgPCBzaG91c2Vua3lva3VzZWlcIDsKK+e0ouadoemJhOmBkyA8IHNha3Vqb3V0ZXRzdWRvdVwgOwor6LuN6KiY54mp6KqeIDwgZ3Vua2ltb25vZ2F0YXJpXCA7CivljrPmraPkuK3nq4sgPCBnZW5zZWljaHV1cml0c3VcIDsKK+S4gOaXpeS4gOWknCA8IGljaGluaWNoaWljaGl5YVwgOwor6Zmw6Zmw5ruF5ruFIDwgaW4nJ2lubWV0c3VtZXRzdVwgOwor5bCx6IG35rWq5Lq6IDwgc2h1dXNob2t1cm91bmluXCA7Civoh6rou6Lou4rmk43mpa0gPCBqaXRlbnNoYXNvdWd5b3VcIDsKK+e0lOa9lOaVmeiCsiA8IGp1bmtldHN1a3lvdWlrdVwgOwor5LiW55WM5paw6KiY6YyyIDwgc2VrYWlzaGlua2lyb2t1XCA7CivlrpfmlZnmlLnpnakgPCBzaHV1a3lvdWthaWtha3VcIDsKK+WVhuW3peS8muitsOaJgCA8IHNob3Vrb3VrYWlnaXNob1wgOwor5by+5Yq+6KOB5Yik5omAIDwgZGFuZ2Fpc2FpYmFuc2hvXCA7CivmlK/pm6Lmu4Xoo4IgPCBzaGlyaW1ldHN1cmV0c3VcIDsKK+WbveawkeWuv+iIjiA8IGtva3VtaW5zaHVrdXNoYVwgOwor5L+d6K236Zai56iO546HIDwgaG9nb2thbnplaXJpdHN1XCA7Civni6znq4vlrqPoqIAgPCBkb2t1cml0c3VzZW5nZW5cIDsKK+WJr+iFjuearuizqiA8IGZ1a3VqaW5oaXNoaXRzdVwgOwor5Zu95rCR55Sf5rS7IDwga29rdW1pbnNlaWthdHN1XCA7CivnqY3ovInog73lipsgPCBzZWtpc2Fpbm91cnlva3VcIDsKK+WPjuWuueiDveWKmyA8IHNodXV5b3Vub3VyeW9rdVwgOwor6IWw6auY6Zqc5a2QIDwga29zaGlkYWthc2hvdWppXCA7CivlubTpoIPml6XpoIMgPCB0b3NoaWdvcm9oaWdvcm9cIDsKK+mbhuacreS/giA8IHNodXVzYXRzdWdha2FyaVwgOwor5rqW56aB5rK755Sj6ICFIDwganVua2luY2hpc2Fuc2hhXCA7CivorbDpmaLlhoXplqPliLYgPCBnaWluJyduYWlrYWt1c2VpXCA7CivpgJrkv5fmloflraYgPCB0c3V1em9rdWJ1bmdha3VcIDsKK+mHkeanjOmgrSA8IGthbmFkenVjaGlhdGFtYVwgOwor5YSq5YWI5qCq5Li7IDwgeXV1c2Vua2FidW51c2hpXCA7CivlhpnnnJ/muKzph48gPCBzaGFzaGluc29rdXJ5b3VcIDsKK+S8gealreS9k+izqiA8IGtpZ3lvdXRhaXNoaXRzdVwgOwor55Sf5rS75L+d6K235rOVIDwgc2Vpa2F0c3Vob2dvaG91XCA7CivnjKrnqoHnjJvpgLIgPCBjaG90b3RzdW1vdXNoaW5cIDsKK+WFseeUo+S4u+e+qeiAhSA8IGt5b3VzYW5zaHVnaXNoYVwgOwor5q2j5a6J5oGv6aaZ6YW4IDwgc2VpYW5zb2t1a291c2FuXCA7CivlhazlrrPnl4XmgqPogIUgPCBrb3VnYWlieW91a2FuamFcIDsKK+S4lueVjOS/neWBpeapn+mWoiA8IHNla2FpaG9rZW5raWthblwgOwor5a2m55Sf5Ymy5byVIDwgZ2FrdXNlaXdhcmliaWtpXCA7CivosqHmlL/mipXono3os4cgPCB6YWlzZWl0b3V5dXVzaGlcIDsKK+S+oeagvOWcp+WKmyA8IGtha2FrdWF0c3VyeW9rdVwgOwor5riv5rm+5Yq05YON6ICFIDwga291d2Fucm91ZG91c2hhXCA7CivlhoXpmbjmgKfmsJflgJkgPCBuYWlyaWt1c2Vpa2lrb3VcIDsKK+S4reWkruaomea6luaZgiA8IGNodXVvdWh5b3VqdW5qaVwgOwor6KGo54++5b2i5byPIDwgaHlvdWdlbmtlaXNoaWtpXCA7CivmipXlhYnnhafmmI7lmaggPCB0b3Vrb3VzaG91bWVpa2lcIDsKK+WHuumhmOabuOmhniA8IHNodXRzdWdhbnNob3J1aVwgOwor57eP5ZCM55uf57235qWtIDwgc291ZG91bWVpaGlneW91XCA7CivlrpfmlZnmlZnogrIgPCBzaHV1a3lvdWt5b3Vpa3VcIDsKK+S9meijlee2vee2vSA8IHlveXV1c2hha3VzaGFrdVwgOwor55+l55qE6IO95YqbIDwgY2hpdGVraW5vdXJ5b2t1XCA7Civlj43pqqjnsr7npZ4gPCBoYW5rb3RzdXNlaXNoaW5cIDsKK+ato+eiuueIhuaSgyA8IHNlaWtha3ViYWt1Z2VraVwgOwor5pel6Iux6YCa6KizIDwgbmljaGllaXRzdXV5YWt1XCA7CivmnIDpq5joo4HliKTmiYAgPCBzYWlrb3VzYWliYW5zaG9cIDsKK+mjn+eJqee5iue2rSA8IHNob2t1bW90c3VzZW4nJ2lcIDsKK+eul+ihk+e0muaVsCA8IHNhbmp1dHN1a3l1dXN1dVwgOwor5YWl5Yqb6KOF572uIDwgbnl1dXJ5b2t1c291Y2hpXCA7Civogbfmpa3oqJPnt7QgPCBzaG9rdWd5b3VrdW5yZW5cIDsKK+aOouWBteWwj+iqrCA8IHRhbnRlaXNob3VzZXRzdVwgOwor55Sf5rS75Y+N5b+cIDwgc2Vpa2F0c3VoYW4nJ25vdVwgOwor5Za25Zuj5Zyw5LiL6YmEIDwgZWlkYW5jaGlrYXRldHN1XCA7Civmnb7kuIvpm7vlmaggPCBtYXRzdXNoaXRhZGVua2lcIDsKK+efpeitmOmajue0miA8IGNoaXNoaWtpa2Fpa3l1dVwgOwor5qCq5byP5Lya56S+IDwga2FidXNoaWtpZ2Fpc2hhXCA7CivkuIDmmYLpoJDmiYAgPCBpY2hpamlhenVrYXJpam9cIDsKK+mjveWSjOWMluWQiOeJqSA8IGhvdXdha2Fnb3VidXRzdVwgOwor5ouh5aSn6Kej6YeIIDwga2FrdWRhaWthaXNoYWt1XCA7Civph5HlsZ7mjqLnn6XmqZ8gPCBraW56b2t1dGFuY2hpa2lcIDsKK+a1ruWLleWwj+aVsOeCuSA8IGZ1ZG91c2hvdXN1dXRlblwgOwor5ZOB6LOq5L+d6Ki8IDwgaGluc2hpdHN1aG9zaG91XCA7CivoqIDoqp7lv4PnkIblraYgPCBnZW5nb3NoaW5yaWdha3VcIDsKK+S/oeS7sOWRiueZvSA8IHNoaW5rb3Vrb2t1aGFrdVwgOwor5qC854mp6Ie055+lIDwga2FrdWJ1dHN1Y2hpY2hpXCA7CivkuIDlp6vkuozlpKrpg44gPCBpY2hpaGltZW5pdGFyb3VcIDsKK+eVjOmdoua0u+aAp+WJpCA8IGthaW1lbmthc3NlaXphaVwgOwor57Gz56mA6YCa5bizIDwgYmVpa29rdXRzdXVjaG91XCA7CivkurrnlJ/moYjlhoXmrIQgPCBqaW5zZWlhbicnbmFpcmFuXCA7Civlrp/nlKjmlrDmoYggPCBqaXRzdXlvdXNoaW4nJ2FuXCA7Civlv4PouqvpmpzlrrMgPCBzaGluc2hpbnNob3VnYWlcIDsKK+S4gOWIhuS6jOWNgeenkiA8IGlwcHVuJyduaWp1dWJ5b3VcIDsKK+mAn+aIpuWNs+axuiA8IHNva3VzZW5zb2trZXRzdVwgOwor5YyW5a2m5ZC4552AIDwga2FnYWt1a3l1dWNoYWt1XCA7Civlm5vmlrnlsbHoqbEgPCB5b21veWFtYWJhbmFzaGlcIDsKK+eah+WupOWFuOevhCA8IGtvdXNoaXRzdXRlbnBhblwgOwor5Y2X6Zi/5YWx5ZKM5Zu9IDwgbmFuJydha3lvdXdha29rdVwgOwor5LqM5Y2B5Zub5pmC6ZaT5Yi2IDwgbmlqdXV5b2ppa2Fuc2VpXCA7CivnibnliKXlm73kvJogPCB0b2t1YmV0c3Vrb2trYWlcIDsKK+S4gOWdquacrOekviA8IGhpdG90c3Vib2hvbnNoYVwgOwor5pep5Y+j6KiA6JGJIDwgaGF5YWt1Y2hpa290b2JhXCA7Civmt7HlsbHlub3osLcgPCBzaGluemFuJyd5dXVrb2t1XCA7CivpgJrllYbnlKPmpa0gPCB0c3V1c2hvdXNhbmd5b3VcIDsKK+S4u+aIpumXmOaIpui7iiA8IHNodXNlbnRvdXNlbnNoYVwgOwor5bu656+J6Z2i56mNIDwga2VuY2hpa3VtZW5zZWtpXCA7Civmr5TovIPoqIDoqp7lraYgPCBoaWtha3VnZW5nb2dha3VcIDsKK+ebpOaguemMr+evgCA8IGJhbmtvbnNha3VzZXRzdVwgOwor5YaF55qE55Sf5rS7IDwgbmFpdGVraXNlaWthdHN1XCA7CivlhoXmlL/kuI3lubLmuIkgPCBuYWlzZWlmdWthbnNob3VcIDsKK+enmOWvhua8j+a0qSA8IGhpbWl0c3Vyb3VzZXRzdVwgOwor6auY562J6KOB5Yik5omAIDwga291dG91c2FpYmFuc2hvXCA7Civlh7rmnK3mjpsgPCBzaHVzc2F0c3VnYWthcmlcIDsKK+eOieefs+a3t+a3hiA8IGd5b2t1c2VraWtvbmtvdVwgOwor6Zub6ZGR5Yil6ICFIDwgaGluYWthbmJldHN1c2hhXCA7CivntYLouqvlubTph5EgPCBzaHV1c2hpbicnbmVua2luXCA7Civkurrnianlr7jmj48gPCBqaW5idXRzdXN1bmJ5b3VcIDsKK+WVhuWTgeebrumMsiA8IHNob3VoaW5tb2t1cm9rdVwgOwor5aSW6aOf55Sj5qWtIDwgZ2Fpc2hva3VzYW5neW91XCA7Civos4fmupDnr4DntIQgPCBzaGlnZW5zZXRzdXlha3VcIDsKK+eQg+mdouW5vuS9leWtpiA8IGt5dXVtZW5raWthZ2FrdVwgOwor6Z2Z6ISI5rOo5bCEIDwgam91bXlha3VjaHV1c2hhXCA7CivlhpLpmbrlsI/oqqwgPCBib3VrZW5zaG91c2V0c3VcIDsKK+eGseehrOWMlueJqSA8IG5ldHN1a291a2FidXRzdVwgOwor6Zu75a2Q6aGV5b6u6Y+hIDwgZGVuc2hpa2VuYmlreW91XCA7Civlm73mnInpiYTpgZMgPCBrb2t1eXV1dGV0c3Vkb3VcIDsKK+eiuueOh+WkieaVsCA8IGtha3VyaXRzdWhlbnN1dVwgOwor6ZaL55m66KiI55S7IDwga2FpaGF0c3VrZWlrYWt1XCA7CivlirTlg43nlJ/nlKPmgKcgPCByb3Vkb3VzZWlzYW5zZWlcIDsKK+acieWus+eJqeizqiA8IHl1dWdhaWJ1c3NoaXRzdVwgOwor5oOF54q26YWM6YePIDwgam91am91c2hha3VyeW91XCA7CivkvrXnlaXmiKbkuokgPCBzaGlucnlha3VzZW5zb3VcIDsKK+W5s+ihjOWbm+i+uuW9oiA8IGhlaWtvdXNoaWhlbmtlaVwgOwor5YaS6aCt6Zmz6L+wIDwgYm91dG91Y2hpbmp1dHN1XCA7CivnhLzouqvoh6rmrrogPCBzaG91c2hpbmppc2F0c3VcIDsKK+aEn+WCt+S4u+e+qeiAhSA8IGthbnNob3VzaHVnaXNoYVwgOwor5a2m55Sf6Ieq5rK75LyaIDwgZ2FrdXNlaWppY2hpa2FpXCA7CivlpKflronlkInml6UgPCB0YWlhbmtpY2hpbmljaGlcIDsKK+efr+ato+imluWKmyA8IGt5b3VzZWlzaGlyeW9rdVwgOwor5bm06YeR5Y+X57Wm6ICFIDwgbmVua2luanVreXV1c2hhXCA7CivnoJTnqbbplovnmbogPCBrZW5reXV1a2FpaGF0c3VcIDsKK+S4ieaMh+m0jiA8IG1pdHN1eXViaWthbW9tZVwgOwor6KuH5ZCI5YWl5pytIDwgZGFuZ291bnl1dXNhdHN1XCA7CivpnZ7lkIzmnJ/pgJrkv6EgPCBoaWRvdWtpdHN1dXNoaW5cIDsKK+S4ieWNgeW5tOaIpuS6iSA8IHNhbmp1dW5lbnNlbnNvdVwgOwor6ZaJ5omA5oGQ5oCW55eHIDwgaGVpam9reW91ZnVzaG91XCA7Civlj7jms5XnoJTkv67miYAgPCBzaGlob3VrZW5zaHV1am9cIDsKK+mZuOeUn+WLleeJqSA8IHJpa3VzZWlkb3VidXRzdVwgOwor5L2O6YeR5Yip5pS/562WIDwgdGVpa2lucmlzZWlzYWt1XCA7CivnnIvorbflqabppIrmiJDmiYAgPCBrYW5nb2Z1eW91c2Vpam9cIDsKK+WNl+WkquW5s+a0iyA8IG1pbmFtaXRhaWhlaXlvdVwgOwor6bq76Jas5bi455So6ICFIDwgbWF5YWt1am91eW91c2hhXCA7CivlrabnlJ/nlJ/mtLsgPCBnYWt1c2Vpc2Vpa2F0c3VcIDsKK+mVt+i3nembouWIl+i7iiA8IGNob3VreW9yaXJlc3NoYVwgOwor5oey572w5aeU5ZOh5LyaIDwgY2hvdWJhdHN1aWlua2FpXCA7CivvvJHvvJHvvJnnlaogPCBoeWFrdWp1dWt5dXViYW5cIDsKK+acieapn+WMluWQiOeJqSA8IHl1dWtpa2Fnb3VidXRzdVwgOwor57WQ5ZCI57WE57mUIDwga2V0c3Vnb3Vzb3NoaWtpXCA7CivkuI3lvZPlirTlg43ooYzngrogPCBmdXRvdXJvdWRvdWtvdWlcIDsKK+W9q+W/g+mPpOmqqCA8IGNob3VzaGlucnVrb3RzdVwgOwor57iB5pel5ZWG5Lq6IDwgZW4nJ25pY2hpc2hvdW5pblwgOwor5b+D56We6ICX5byxIDwgc2hpbnNoaW5tb3VqYWt1XCA7Civnn63mnJ/osrjku5ggPCB0YW5raWthc2hpdHN1a2VcIDsKK+alveWkqeS4u+e+qeiAhSA8IHJha3V0ZW5zaHVnaXNoYVwgOwor5bem5Lit5ous5bynIDwgaGlkYXJpY2h1dWtha2tvXCA7CivnhKHmnaHku7bpmY3kvI8gPCBtdWpvdWtlbmtvdWZ1a3VcIDsKK+mBi+i7ouWFjeioseiovCA8IHVudGVubWVua3lvc2hvdVwgOwor5qC86ZeY5oim6YOo6ZqKIDwga2FrdXRvdXNlbmJ1dGFpXCA7Civpu5LoibLkurrnqK4gPCBrb2t1c2hva3VqaW5zaHVcIDsKK+WFrOW8j+eZuuihqCA8IGtvdXNoaWtpaGFwcHlvdVwgOwor5bGV56S65Y2z5aOy5LyaIDwgdGVuamlzb2t1YmFpa2FpXCA7Civou43kuovlooPnlYznt5ogPCBndW5qaWt5b3VrYWlzZW5cIDsKK+i7n+mqqOe1hOe5lCA8IG5hbmtvdHN1c29zaGlraVwgOwor6IWw6LWk54eVIDwga29zaGlha2F0c3ViYW1lXCA7CivmtojosrvogIXlm6PkvZMgPCBzaG91aGlzaGFkYW50YWlcIDsKK+WFqOS9k+S4u+e+qeWbvSA8IHplbnRhaXNodWdpa29rdVwgOwor5pif6ZaT54mp6LOqIDwgc2Vpa2FuYnVzc2hpdHN1XCA7CivkuI3lj6/kvrXmnaHntIQgPCBmdWthc2hpbmpvdXlha3VcIDsKK+eUn+a2r+Wtpue/kiA8IHNob3VnYWlnYWt1c2h1dVwgOwor55+l6K2Y6KGo54++IDwgY2hpc2hpa2loeW91Z2VuXCA7CivmupDmsI/nianoqp4gPCBnZW5qaW1vbm9nYXRhcmlcIDsKK+S4g+i7ouWFq+WAkiA8IHNoaWNoaXRlbmJhdHRvdVwgOwor5bqn5bit5oyH5a6a5Yi4IDwgemFzZWtpc2hpdGVpa2VuXCA7Civnmb3oibLkurrnqK4gPCBoYWt1c2hva3VqaW5zaHVcIDsKK+W5s+WutueJqeiqniA8IGhlaWtlbW9ub2dhdGFyaVwgOwor5ouS57W25Y+N5b+cIDwga3lvemV0c3VoYW4nJ25vdVwgOwor5biw5Zu95a2Q5aWz5p6gIDwga2lrb2t1c2hpam93YWt1XCA7CivnibnliKXlvoXpgYcgPCB0b2t1YmV0c3V0YWlndXVcIDsKK+mdkuWkqeeZveaXpSA8IHNlaXRlbmhha3VqaXRzdVwgOwor5aSp572w6Ka/6Z2iIDwgdGVuYmF0c3V0ZWtpbWVuXCA7CivooYDml4/ntZDlqZogPCBrZXRzdXpva3VrZWtrb25cIDsKK+eZuuiJsuePvuWDjyA8IGhhc3Nob2t1Z2Vuc2hvdVwgOwor5YWl5pyt5L6h5qC8IDwgbnl1dXNhdHN1a2FrYWt1XCA7CivpgKPnq4vlhoXplqMgPCByZW5yaXRzdW5haWtha3VcIDsKK+iFueW8j+WRvOWQuCA8IGZ1a3VzaGlraWtva3l1dVwgOwor6YG66KiA6KOc6Laz5pu4IDwgeXVpZ29uaG9zb2t1c2hvXCA7CivkvY7plovnmbrlm70gPCB0ZWlrYWloYXRzdWtva3VcIDsKK+i7veWmmea0kuiEsSA8IGtlaW15b3VzaGFkYXRzdVwgOwor6Yu857Si6YmE6YGTIDwga291c2FrdXRldHN1ZG91XCA7Civngq3pibHlirTlg43ogIUgPCB0YW5rb3Vyb3Vkb3VzaGFcIDsKK+ino+aekOW5vuS9leWtpiA8IGthaXNla2lraWthZ2FrdVwgOwor54++5pyJ5Yui5YqbIDwgZ2VuJyd5dXVzZWlyeW9rdVwgOwor57WM5riI5oCn5ZCR5LiKIDwga2VpemFpc2Vpa291am91XCA7CivpgYrkvJHmlr3oqK0gPCB5dXVreXV1c2hpc2V0c3VcIDsKK+i3s+i6jeaMr+WLlSA8IGNob3V5YWt1c2hpbmRvdVwgOwor5Zyw5LiL5qC45a6f6aiTIDwgY2hpa2FrYWt1amlra2VuXCA7Civmr5Tkvovku6PooajliLYgPCBoaXJlaWRhaWh5b3VzZWlcIDsKK+eri+aGsuWQm+S4u+aUvyA8IHJpa2tlbmt1bnNodXNlaVwgOwor6a2a6Zu355m65bCE566hIDwgZ3lvcmFpaGFzc2hha2FuXCA7CivmkI3nm4rliIblspDngrkgPCBzb24nJ2VraWJ1bmtpdGVuXCA7CivnpL7kvJrkv53pmbrluoEgPCBzaGFrYWlob2tlbmNob3VcIDsKK+i2heeEtuWGhemWoyA8IGNob3V6ZW4nJ25haWtha3VcIDsKK+atqeihjOiAheWkqeWbvSA8IGhva291c2hhdGVuZ29rdVwgOwor5a6f5qWt5a2m5qChIDwgaml0c3VneW91Z2Fra291XCA7Civnp4Hnq4vlpKflraYgPCBzaGlyaXRzdWRhaWdha3VcIDsKK+acgOS9juihgOWcpyA8IHNhaXRlaWtldHN1YXRzdVwgOwor5bCK5bGe5q665Lq6IDwgc29uem9rdXNhdHN1amluXCA7Civlm73msJHnmobkv53pmbogPCBrb2t1bWlua2FpaG9rZW5cIDsKK+iouuWvn+WupCA8IHNoaW5zYXRzdXNoaXRzdVwgOwor5Lit56uL5Zyw5bivIDwgY2h1dXJpdHN1Y2hpdGFpXCA7CivkuKHmpbXlnLDmlrkgPCByeW91a3lva3VjaGlob3VcIDsKK+mAo+e2muauuuS6uiA8IHJlbnpva3VzYXRzdWppblwgOwor5Z6C55u05YiG5qWtIDwgc3VpY2hva3VidW5neW91XCA7CivmtJfmv6/nn7PpubggPCBzZW50YWt1c2V0c3VrZW5cIDsKK+mXmOeXheeUn+a0uyA8IHRvdWJ5b3VzZWlrYXRzdVwgOwor5ZCM5paH6YCa6YGUIDwgZG91YnVudHN1dXRhdHN1XCA7Civlhobou6Lmu5HohLEgPCBlbnRlbmthdHN1ZGF0c3VcIDsKK+WNmOe0lOWGjeeUn+eUoyA8IHRhbmp1bnNhaXNlaXNhblwgOwor6KKr6YG45oyZ6LOH5qC8IDwgaGlzZW5reW9zaGlrYWt1XCA7CivnlJ/nianlt6XlraYgPCBzZWlidXRzdWtvdWdha3VcIDsKK+Wfuua6luWkluizg+mHkSA8IGtpanVuZ2FpY2hpbmdpblwgOwor5LiA5b6L5rib5Y+NIDwgaWNoaXJpdHN1Z2VudGFuXCA7Civkurrlk6HnuK7lsJEgPCBqaW4nJ2luc2h1a3VzaG91XCA7CivorZjliKXlipsgPCBzaGlraWJldHN1cnlva3VcIDsKK+eGseW4r+S9juawl+WcpyA8IG5ldHRhaXRlaWtpYXRzdVwgOwor54us56uL5aSJ5pWwIDwgZG9rdXJpdHN1aGVuc3V1XCA7Civkurrlrpros6rllY8gPCBqaW50ZWlzaGl0c3Vtb25cIDsKK+aWsOe0hOiBluabuCA8IHNoaW4nJ3lha3VzZWlzaG9cIDsKK+eUn+auuuS4juWlqiA8IHNlaXNhdHN1eW9kYXRzdVwgOwor56eB6Ieq6LqrIDwgd2F0YWt1c2hpamlzaGluXCA7CivlubPmuIXnm5sgPCB0YWlyYW5va2l5b21vcmlcIDsKK+auv+anmOS7leS6iyA8IHRvbm9zYW1hc2hpZ290b1wgOwor5Y+w5omA55So5ZOBIDwgZGFpZG9rb3JveW91aGluXCA7CivosrTph5HlsZ7ljbggPCBraWtpbnpva3Vvcm9zaGlcIDsKK+S4iuaWuei0heWFrSA8IGthbWlnYXRhemVpcm9rdVwgOwor6KGA5peP6Zai5L+CIDwga2V0c3V6b2t1a2Fua2VpXCA7CivlrZDlrq7lvozlsYggPCBzaGlreXV1a291a3V0c3VcIDsKK+WNl+W+geWMl+S8kCA8IG5hbnNlaWhva3ViYXRzdVwgOwor54++5Zyo5a6M5LqG5pmCIDwgZ2VuemFpa2FucnlvdWppXCA7CivnnJ/lrp/kuIDot68gPCBzaGluaml0c3VpY2hpcm9cIDsKK+eJueWIpemBi+izgyA8IHRva3ViZXRzdXVuY2hpblwgOwor562J6L665LiJ6KeS5b2iIDwgdG91aGVuc2Fua2Fra2VpXCA7Civml6XluLjojLbpo6/kuosgPCBuaWNoaWpvdXNhaGFuamlcIDsKK+mAmuW4uOaIpuWKmyA8IHRzdXVqb3VzZW5yeW9rdVwgOwor6YCj6Y6W54q255CD6I+MIDwgcmVuc2Fqb3VreXV1a2luXCA7CivliKnlrrPlvpflpLEgPCByaWdhaXRva3VzaGl0c3VcIDsKK+a1hemFjOS9juWUsSA8IHNlbnNoYWt1dGVpc2hvdVwgOwor6KO45a2Q5qSN54mpIDwgcmFzaGlzaG9rdWJ1dHN1XCA7CivlgJ/nlKjoqLzmm7ggPCBzaGFrdXlvdXNob3VzaG9cIDsKK+WFseaciee1kOWQiCA8IGt5b3V5dXVrZXRzdWdvdVwgOwor5Y6f54iG54qg54my6ICFIDwgZ2VuYmFrdWdpc2Vpc2hhXCA7Civlm57mipjpoJjln58gPCBrYWlzZXRzdXJ5b3Vpa2lcIDsKK+iBt+alreaEj+itmCA8IHNob2t1Z3lvdWlzaGlraVwgOwor5aSW5Zu95oqV6LOH5a62IDwgZ2Fpa29rdXRvdXNoaWthXCA7CivljZjlvI/lrabntJogPCB0YW5zaGlraWdha2t5dXVcIDsKK+Wtpuihk+mbkeiqjCA8IGdha3VqdXRzdXphc3NoaVwgOwor5YWl5Ye65YqbIDwgbnl1dXNodXRzdXJ5b2t1XCA7CivntJvlpLHlsYogPCBmdW5zaGl0c3V0b2Rva2VcIDsKK+mbu+azouWkqeaWh+WtpiA8IGRlbnBhdGVubW9uZ2FrdVwgOwor5Y2S5qWt6Kmm6aiTIDwgc290c3VneW91c2hpa2VuXCA7CivlhKrmgKflvaLos6ogPCB5dXVzZWlrZWlzaGl0c3VcIDsKK+aIkOmVt+absue3miA8IHNlaWNob3VreW9rdXNlblwgOwor55m+5YWr5Y2B5bqmIDwgaHlha3VoYWNoaWp1dWRvXCA7CivlpKflkozmkqvlrZAgPCB5YW1hdG9uYWRlc2hpa29cIDsKK+WlveiJsuaWh+WtpiA8IGtvdXNob2t1YnVuZ2FrdVwgOwor6ZyK6a2C5raI5ruFIDwgcmVpa29uc2hvdW1ldHN1XCA7CivnibnliKXphY3lvZMgPCB0b2t1YmV0c3VoYWl0b3VcIDsKK+ani+mAoOiogOiqnuWtpiA8IGtvdXpvdWdlbmdvZ2FrdVwgOwor6aKo5Yqb6ZqO57SaIDwgZnV1cnlva3VrYWlreXV1XCA7CivlnLDln5/lhrfmmpbmiL8gPCBjaGlpa2lyZWlkYW5ib3VcIDsKK+a1geS9k+WKm+WtpiA8IHJ5dXV0YWlyaWtpZ2FrdVwgOwor5Lq65bel5ZG85ZC45rOVIDwgamlua291a29reXV1aG91XCA7CivliqPlvLHmhI/orZggPCByZXRzdWpha3Vpc2hpa2lcIDsKK+Wun+iovOS4u+e+qeiAhSA8IGppc3Nob3VzaHVnaXNoYVwgOwor5rGC6IG35L+CIDwga3l1dXNob2t1Z2FrYXJpXCA7CivkuozogqHoho/olqwgPCBmdXRhbWF0YWtvdXlha3VcIDsKK+aUr+aMgeWKm+eQhuirliA8IHNoaWppcnlva3VyaXJvblwgOwor54mp6LOq5Luj6KydIDwgYnVzc2hpdHN1dGFpc2hhXCA7CivnrqHovYTlrpjluoEgPCBrYW5rYXRzdWthbmNob3VcIDsKK+WFrOmWi+iojuirluS8miA8IGtvdWthaXRvdXJvbmthaVwgOwor5L+u5q2j55Sz5ZGKIDwgc2h1dXNlaXNoaW5rb2t1XCA7Civlv4PnkIblsI/oqqwgPCBzaGlucmlzaG91c2V0c3VcIDsKK+edgOmZuOWcsOeCuSA8IGNoYWt1cmlrdWNoaXRlblwgOwor5paH6YOo56eR5a2m55yBIDwgbW9uYnVrYWdha3VzaG91XCA7CivnibnoqLHmmI7ntLDmm7ggPCB0b2treW9tZWlzYWlzaG9cIDsKK+Wun+mok+Wwj+iqrCA8IGppa2tlbnNob3VzZXRzdVwgOwor5Y6f5a2Q54iG55m6IDwgZ2Vuc2hpYmFrdWhhdHN1XCA7CivnqI7liLboqr/mn7vkvJogPCB6ZWlzZWljaG91c2FrYWlcIDsKK+WFpeWKm+aDheWgsSA8IG55dXVyeW9rdWpvdWhvdVwgOwor6YeP5a2Q5Yqb5a2mIDwgcnlvdXNoaXJpa2lnYWt1XCA7CivlparkuInmjK/njosgPCBkYXRzdXNhbnNoaW4nJ291XCA7CivnmbrlsZXpgJTkuIrlm70gPCBoYXR0ZW50b2pvdWtva3VcIDsKK+WFrOWFseWbs+abuOmkqCA8IGtvdWt5b3V0b3Nob2thblwgOwor5bm05pyr6Kq/5pW0IDwgbmVubWF0c3VjaG91c2VpXCA7CivlrabooZPoq5bmlocgPCBnYWt1anV0c3Vyb25idW5cIDsKK+eUn+eJqeWtpuiAhSA8IHNlaWJ1dHN1Z2FrdXNoYVwgOwor5YWt55m+5YWt5Y+3IDwgcm9wcHlha3Vyb2t1Z291XCA7CivmgJ3lvIHlk7LlraYgPCBzaGliZW50ZXRzdWdha3VcIDsKK+WbveWGheimj+agvOWMliA8IGtva3VuYWlraWtha3VrYVwgOwor5Ym156uL6KiY5b+15pelIDwgc291cml0c3VraW5lbmJpXCA7Civph5Hpiq3nmbvpjLLlmaggPCBraW5zZW50b3Vyb2t1a2lcIDsKK+aKl+eUn+eJqeizqiA8IGtvdXNlaWJ1c3NoaXRzdVwgOwor5Yq05YON57WE5ZCI5rOVIDwgcm91ZG91a3VtaWFpaG91XCA7CivntKDlvaLmnZDnlKPmpa0gPCBzb2tlaXphaXNhbmd5b3VcIDsKK+a0u+WLleWGmeecnyA8IGthdHN1ZG91c2hhc2hpblwgOwor5Lqk5o+b6LK/5piT5Yi2IDwga291a2FuYm91ZWtpc2VpXCA7Civnj77lnLDpp5DlnKjlk6EgPCBnZW5jaGljaHV1emFpaW5cIDsKK+acgOWwj+iHquS5l+azlSA8IHNhaXNob3VqaWpvdWhvdVwgOwor5bCP5Z6L5LmX55So6LuKIDwga29nYXRham91eW91c2hhXCA7CivlsZ7mgKflgKTooYzliJcgPCB6b2t1c2VneW91cmV0c3VcIDsKK+a1t+i7jeWFteWtpuagoSA8IGthaWd1bmhlaWdha2tvdVwgOwor57K+56We6JaE5byxIDwgc2Vpc2hpbmhha3VqYWt1XCA7CivlvLfov6voprPlv7UgPCBreW91aGFrdWthbicnbmVuXCA7Civpu4TpgZPljYHkuozlrq4gPCBrb3Vkb3VqdXVuaWt5dXVcIDsKK+iLpuaDheWHpueQhuapn+mWoiA8IGt1am91c2hvcmlraWthblwgOwor6LuN57iu5Y2U5a6aIDwgZ3Vuc2h1a3VreW91dGVpXCA7CivnnYDpmbjlnLDluK8gPCBjaGFrdXJpa3VjaGl0YWlcIDsKK+eCreWhteeIhueZuiA8IHRhbmppbmJha3VoYXRzdVwgOwor6KOc5Yqp6KiY5oa26KOF572uIDwgaG9qb2tpb2t1c291Y2hpXCA7CivnlJ/mtLvnkrDlooMgPCBzZWlrYXRzdWthbmt5b3VcIDsKK+WHuuadpemrmOS7leS6iyA8IGRla2lkYWthc2hpZ290b1wgOwor5oqA6KGT6Z2p5pawIDwgZ2lqdXRzdWtha3VzaGluXCA7Civos4fnlKPosqDlgrXooaggPCBzaGlzYW5mdXNhaWh5b3VcIDsKK+eyn+eykue1kOaguCA8IHpva3VyeXV1a2Vra2FrdVwgOwor54mI5qip5omA5pyJ6ICFIDwgaGFua2Vuc2hveXV1c2hhXCA7Civkv6HlvpLkvJ3li5XogIUgPCBzaGludG9kZW5kb3VzaGFcIDsKK+S7ruWPl+WPluiovCA8IGthcml1a2V0b3Jpc2hvdVwgOwor5paw6IGe6YWN6YGUIDwgc2hpbmJ1bmhhaXRhdHN1XCA7CivljZLmpa3oq5bmlocgPCBzb3RzdWd5b3Vyb25idW5cIDsKK+eZu+mMsuWVhuaomSA8IHRvdXJva3VzaG91aHlvdVwgOwor5L+h55So6YqY5p+EIDwgc2hpbicneW91bWVpZ2FyYVwgOwor5pON5rWE55Gg55KDIDwgYXlhdHN1cmlqb3VydXJpXCA7CivlhbHlkIznlJ/mtLsgPCBreW91ZG91c2Vpa2F0c3VcIDsKK+WumOiDveS4u+e+qeiAhSA8IGthbicnbm91c2h1Z2lzaGFcIDsKK+S8nemBlOeJueaApyA8IGRlbnRhdHN1dG9rdXNlaVwgOwor6YeR5aO655y8IDwga2FuYXRzdWJvbWFuYWtvXCA7Civkv6Hku7DnlJ/mtLsgPCBzaGlua291c2Vpa2F0c3VcIDsKK+mDt+Wcn+Wwj+iqrCA8IGt5b3Vkb3Nob3VzZXRzdVwgOwor6ZuG5Zuj55Sf5rS7IDwgc2h1dWRhbnNlaWthdHN1XCA7CivogZbpnIrpmY3oh6jnpa0gPCBzZWlyZWlrb3VyaW5zYWlcIDsKK+mnkOaXpeWkp+S9vyA8IGNodXVuaWNoaXRhaXNoaVwgOwor5bO25Zu95qC55oCnIDwgc2hpbWFndW5pa29uam91XCA7CivmtYHooYzmgKfohLPngo4gPCByeXV1a291c2Vpbm91ZW5cIDsKK+iomOW/teirluaWh+mbhiA8IGtpbmVucm9uYnVuc2h1dVwgOwor6Ieq5YuV6YCj57WQ5qmfIDwgamlkb3VyZW5rZXRzdWtpXCA7CivlpKfpmbjmgKfmsJflgJkgPCB0YWlyaWt1c2Vpa2lrb3VcIDsKK+W3puWwj+aLrOW8pyA8IGhpZGFyaXNob3VrYWtrb1wgOwor5qC45YW15Zmo5a6f6aiTIDwga2FrdWhlaWtpamlra2VuXCA7CivmsJHml4/lrpfmlZkgPCBtaW56b2t1c2h1dWt5b3VcIDsKK+aXpeS4remfk+i2iiA8IG5pdGNodXVrYW4nJ2V0c3VcIDsKK+iqh+Wkp+WmhOaDs+eLgiA8IGtvZGFpbW91c291a3lvdVwgOwor6buS6Imy54Gr6JasIDwga29rdXNob2t1a2F5YWt1XCA7CivkuIfmnInnpZ7mlZkgPCBiYW4nJ3l1dXNoaW5reW91XCA7CivpoK3ohLPmtYHlh7ogPCB6dW5vdXJ5dXVzaHV0c3VcIDsKK+ebtOaOpeipseazlSA8IGNob2t1c2V0c3V3YWhvdVwgOwor6Lqr5YiG6Ki85piO5pu4IDwgbWlidW5zaG91bWVpc2hvXCA7CivmloflrZflpJrph43mlL7pgIEgPCBtb2ppdGFqdXVob3Vzb3VcIDsKK+WMu+W4q+WbveWutuippumokyA8IGlzaGlrb2trYXNoaWtlblwgOwor5paH5YyW5Lq66aGe5a2mIDwgYnVua2FqaW5ydWlnYWt1XCA7CivlvaLos6rou6Lmj5sgPCBrZWlzaGl0c3V0ZW5rYW5cIDsKK+esrOS4ieasoeeUo+alrSA8IGRhaXNhbmppc2FuZ3lvdVwgOwor5q2j55yf5q2j6YqYIDwgc2hvdXNoaW5zaG91bWVpXCA7CivniIblvL7nmbroqIAgPCBiYWt1ZGFuaGF0c3VnZW5cIDsKK+aWh+WMluWkp+mdqeWRvSA8IGJ1bmthZGFpa2FrdW1laVwgOwor55u056uL5LiN5YuVIDwgY2hva3VyaXRzdWZ1ZG91XCA7CivllYbmpa3pgZPlvrMgPCBzaG91Z3lvdWRvdXRva3VcIDsKK+mZs+WIl+WupCA8IGNoaW5yZXRzdXNoaXRzdVwgOwor54m56Kit5Lya5aC0IDwgdG9rdXNldHN1a2Fpam91XCA7CivpnZ7lsYDmiYDliIblspAgPCBoaWt5b2t1c2hvYnVua2lcIDsKK+aguOeJqeeQhuWtpiA8IGtha3VidXRzdXJpZ2FrdVwgOwor6IKi5L2T5LiN6Ieq55Sx5YWQIDwgc2hpdGFpZnVqaXl1dWppXCA7Civku67lkI3mvKLlrZflpInmj5sgPCBrYW5ha2FuamloZW5rYW5cIDsKK+ebtOeri+eMv+S6uiA8IGNob2t1cml0c3VlbmppblwgOwor6Zai5L+C5Luj5ZCN6KmeIDwga2Fua2VpZGFpbWVpc2hpXCA7CivlpJrlm73nsY3oqIDoqp4gPCB0YWtva3VzZWtpZ2VuZ29cIDsKK+i2hemAo+e1kOWtkCA8IGNob3VyZW5rZXRzdXNoaVwgOwor5rC06YqA5rCX5Zyn6KiIIDwgc3VpZ2lua2lhdHN1a2VpXCA7CivnlLLoq5bkuZnpp4EgPCBrb3Vyb24nJ290c3ViYWt1XCA7CivlhZDnq6Xlv4PnkIblraYgPCBqaWRvdXNoaW5yaWdha3VcIDsKK+eJqeeahOizh+a6kCA8IGJ1dHN1dGVraXNoaWdlblwgOwor55u05o6l5pSv5o+0IDwgY2hva3VzZXRzdXNoaWVuXCA7CivnqbrmtJ7ljJbnj77osaEgPCBrdXVkb3VrYWdlbnNob3VcIDsKK+eEoeeQhuaWueeoi+W8jyA8IG11cmlob3V0ZWlzaGlraVwgOwor5paw5Yi25Lit5a2mIDwgc2hpbnNlaWNodXVnYWt1XCA7CivlnKflipvlm6PkvZMgPCBhdHN1cnlva3VkYW50YWlcIDsKK+a4qeihgOWLleeJqSA8IG9ua2V0c3Vkb3VidXRzdVwgOwor5Lqk5beu5a++56ew5oCnIDwga291c2F0YWlzaG91c2VpXCA7CivkuK3nq4vlirTpgKMgPCBjaHV1cml0c3Vyb3VyZW5cIDsKK+eJueWIpeWupCA8IHRva3ViZXRzdXNoaXRzdVwgOwor56CU56m25rS75YuVIDwga2Vua3l1dWthdHN1ZG91XCA7Civoh6rnhLblk7LlraYgPCBzaGl6ZW50ZXRzdWdha3VcIDsKK+agquS4u+e3j+S8miA8IGthYnVudXNoaXNvdWthaVwgOwor5oCn5qC85Yik5YilIDwgc2Vpa2FrdWhhbmJldHN1XCA7CivllqflmKnkuKHmiJDmlZcgPCBrZW5rYXJ5b3VzZWliYWlcIDsKK+mBjuWkseWCt+WusyA8IGthc2hpdHN1c2hvdWdhaVwgOwor6YCa5L+h5bel5a2mIDwgdHN1dXNoaW5rb3VnYWt1XCA7CivlkIzkuIDkurrniakgPCBkb3VpdHN1amluYnV0c3VcIDsKK+WbveWutuWFrOWLmeWToeazlSA8IGtva2tha291bXVpbmhvdVwgOwor5ZWG5a2m5Y2a5aOrIDwgc2hvdWdha3VoYWt1c2hpXCA7Civlv4PpoK3mu4XljbQgPCBzaGludG91bWVra3lha3VcIDsKK+W8t+ihjOaOoeaxuiA8IGt5b3Vrb3VzYWlrZXRzdVwgOwor6KaW6IG06Kaa5qmf5ZmoIDwgc2hpY2hvdWtha3VraWtpXCA7CivlsLHku7vmvJToqqwgPCBzaHV1bmluJydlbnpldHN1XCA7Civmn5PoibLkvZPnlbDluLggPCBzZW5zaG9rdXRhaWlqb3VcIDsKK+WQjeirluWNk+iqrCA8IG1laXJvbnRha3VzZXRzdVwgOwor5rOo5YWl5pWZ6IKyIDwgY2h1dW55dXVreW91aWt1XCA7CivlkJHnsr7npZ7olqwgPCBrb3VzZWlzaGluJyd5YWt1XCA7CivntZDlqZrpganpvaLmnJ8gPCBrZWtrb250ZWtpcmVpa2lcIDsKK+a8uOi/keeahOiHqueUsSA8IHplbmtpbnRla2lqaXl1dVwgOwor5YiG5YiX6KGM6YCyIDwgYnVucmV0c3Vrb3VzaGluXCA7Civpo5/mlpnlk4HlupcgPCBzaG9rdXJ5b3VoaW50ZW5cIDsKK+aEj+W/l+axuuWumuapn+mWoiA8IGlzaGlrZXR0ZWlraWthblwgOwor5Li76L6e57Sg5oCn5Y6f55CGIDwgc2h1amlzb3NlaWdlbnJpXCA7Civmva7msZDmkanmk6YgPCBjaG91c2VraW1hc2F0c3VcIDsKK+evgOi2s+WLleeJqSA8IHNlc3Nva3Vkb3VidXRzdVwgOwor6aOf54mp6YCj6Y6WIDwgc2hva3Vtb3RzdXJlbnNhXCA7CivkuK3ogonkuK3og4wgPCBjaHV1bmlrdWNodXV6ZWlcIDsKK+ekvuS8muawkeS4u+WFmiA8IHNoYWthaW1pbnNodXRvdVwgOwor6ZuG5Lit5pS75pKDIDwgc2h1dWNodXVrb3VnZWtpXCA7CivnorrlrprliKTmsbogPCBrYWt1dGVpaGFua2V0c3VcIDsKK+WwkeWls+Wwj+iqrCA8IHNob3Vqb3Nob3VzZXRzdVwgOwor56eB6Kit5b+c5o+05ZujIDwgc2hpc2V0c3VvdWVuZGFuXCA7CivljZrlrablipvooYwgPCBoYWt1Z2FrdXJ5b2trb3VcIDsKK+e1jOa4iOWQjOWPi+S8miA8IGtlaXphaWRvdXl1dWthaVwgOwor5Y+N6Ki85Y+v6IO95oCnIDwgaGFuc2hvdWthbm91c2VpXCA7Civlgo3ns7vooYDml48gPCBib3VrZWlrZXRzdXpva3VcIDsKK+S4remWk+WGhemWoyA8IGNodXVrYW4nJ25haWtha3VcIDsKK+WNmOeLrOS+m+e1piA8IHRhbmRva3VreW91a3l1dVwgOwor5pCs6YCB5ZGo5rOi5pWwIDwgaGFuc291c2h1dWhhc3V1XCA7CivlpLHmpa3kv53pmbogPCBzaGl0c3VneW91aG9rZW5cIDsKK+eJueWIpeS8muioiCA8IHRva3ViZXRzdWthaWtlaVwgOwor5oyv5bmF5aSJ6Kq/IDwgc2hpbnB1a3VoZW5jaG91XCA7CivluoPlkYrlj47lhaUgPCBrb3Vrb2t1c2h1dW55dXVcIDsKK+S4reWbveWkp+mZuCA8IGNodXVnb2t1dGFpcmlrdVwgOwor5pyA6auY5oyH5bCO6ICFIDwgc2Fpa291c2hpZG91c2hhXCA7CivmlL7lh7rnianos4cgPCBob3VzaHV0c3VidXNzaGlcIDsKK+mFjemBlOiovOaYjiA8IGhhaXRhdHN1c2hvdW1laVwgOwor5pyA57WC55uu55qEIDwgc2Fpc2h1dW1va3V0ZWtpXCA7CivokaHokITnirbnkIPoj4wgPCBidWRvdWpvdWt5dXVraW5cIDsKK+WFqOe/vOmjm+ihjOapnyA8IHplbicneW9rdWhpa291a2lcIDsKK+S4gOiTruaJmOeUnyA8IGljaGlyZW50YWt1c2hvdVwgOwor6YCf5Yq55oCn6IKl5paZIDwgc29ra291c2VpaGlyeW91XCA7CivkuInop5LmuKzph48gPCBzYW5rYWt1c29rdXJ5b3VcIDsKK+WLleeJqeWtpuiAhSA8IGRvdWJ1dHN1Z2FrdXNoYVwgOwor5YyW5a2m54mp6LOqIDwga2FnYWt1YnVzc2hpdHN1XCA7CivpgYXlirnmgKfogqXmlpkgPCBjaGlrb3VzZWloaXJ5b3VcIDsKK+Wbveeyi+S4u+e+qeiAhSA8IGtva3VzdWlzaHVnaXNoYVwgOwor54ax5Y6f5a2Q5qC4IDwgbmV0c3VnZW5zaGlrYWt1XCA7CivlnLDos6roqr/mn7sgPCBjaGlzaGl0c3VjaG91c2FcIDsKK+aWreW8vuaAp+S/guaVsCA8IGRhbmRhbnNlaWtlaXN1dVwgOwor5q2v5YiX55+v5q2jIDwgc2hpcmV0c3VreW91c2VpXCA7Civlm5vljYHkuIPlo6sgPCBzaGlqdXVzaGljaGlzaGlcIDsKK+S6jOasoeaWueeoi+W8jyA8IG5pamlob3V0ZWlzaGlraVwgOwor5Y2B5pyI6Z2p5ZG9IDwganV1Z2F0c3VrYWt1bWVpXCA7Civlv5znlKjlv4PnkIblraYgPCBvdXlvdXNoaW5yaWdha3VcIDsKK+aWh+izquW9rOW9rCA8IGJ1bnNoaXRzdWhpbnBpblwgOwor57K+56We55Ww5bi46ICFIDwgc2Vpc2hpbicnaWpvdXNoYVwgOwor57Sr5rC05pm2IDwgbXVyYXNha2l6dWlzaG91XCA7Civkv6HoqJflpZHntIQgPCBzaGludGFrdWtlaXlha3VcIDsKK+WHuueUn+W5tOaciOaXpSA8IHNodXNzZWluZW5nYXBwaVwgOwor54us56uL5oim5LqJIDwgZG9rdXJpdHN1c2Vuc291XCA7Civngavlipvnmbrpm7sgPCBrYXJ5b2t1aGF0c3VkZW5cIDsKK+mAn+mBlOmDteS+vyA8IHNva3V0YXRzdXl1dWJpblwgOwor5byB6K235aOr5LqL5YuZ5omAIDwgYmVuZ29zaGlqaW11c2hvXCA7Civlm5vnmb7lm5vnl4UgPCBzaGloeWFrdXNoaWJ5b3VcIDsKK+WLleipnueKtuWQjeipniA8IGRvdXNoaWpvdW1laXNoaVwgOwor5YWD5biz5q6L6auYIDwgbW90b2Nob3V6YW5kYWthXCA7Civoh6rnlLHoo4Hph4/mqKkgPCBqaXl1dXNhaXJ5b3VrZW5cIDsKK+S4reWkrumbhuaoqeWMliA8IGNodXVvdXNodXVrZW5rYVwgOwor54Sh5Yip5oGv6Ki85Yi4IDwgbXVyaXNva3VzaG91a2VuXCA7Civmir3osaHnvo7ooZMgPCBjaHV1c2hvdWJpanV0c3VcIDsKK+eJqeizquaWh+aYjiA8IGJ1c3NoaXRzdWJ1bm1laVwgOwor6LaF54mp55CG5a2mIDwgY2hvdWJ1dHN1cmlnYWt1XCA7Civku4HnvqnnpLzmmbrkv6EgPCBqaW5naXJlaWNoaXNoaW5cIDsKK+abtOW5tOacn+manOWusyA8IGtvdW5lbmtpc2hvdWdhaVwgOwor5Zu96Kqe5a+p6K2w5LyaIDwga29rdWdvc2hpbmdpa2FpXCA7CivlnLDmlrnoo4HliKTmiYAgPCBjaGlob3VzYWliYW5zaG9cIDsKK+mjn+ezp+S4jei2syA8IHNob2t1cnlvdWJ1c29rdVwgOwor5YWs5YWx5pa96KitIDwga291a3lvdXNoaXNldHN1XCA7Civoh6rli5XmlLnmnK3mqZ8gPCBqaWRvdWthaXNhdHN1a2lcIDsKK+WNl+alteadoee0hCA8IG5hbmt5b2t1am91eWFrdVwgOwor5pyq5bCx5a2m5YWQ56ulIDwgbWlzaHV1Z2FrdWppZG91XCA7CivlhbXlipvliYrmuJsgPCBoZWlyeW9rdXNha3VnZW5cIDsKK+WPlue3oOW9uSA8IHRvcmlzaGltYXJpeWFrdVwgOwor5YWs6IG36L+95pS+IDwga291c2hva3V0c3VpaG91XCA7CivlrabooZPlm6PkvZMgPCBnYWt1anV0c3VkYW50YWlcIDsKK+Wun+aZgumWk+WHpueQhiA8IGppdHN1amlrYW5zaG9yaVwgOwor5YWx55Sf55Sf54mpIDwga3lvdXNlaXNlaWJ1dHN1XCA7CivooqvlrZDmpI3niakgPCBoaXNoaXNob2t1YnV0c3VcIDsKK+acieeVnOi+sualrSA8IHl1dWNoaWt1bm91Z3lvdVwgOwor5a+E55Sf5qSN54mpIDwga2lzZWlzaG9rdWJ1dHN1XCA7CivpoJDph5HmupblgpnnjocgPCB5b2tpbmp1bmJpcml0c3VcIDsKK+WkqeS9k+acm+mBoOmPoSA8IHRlbnRhaWJvdWVua3lvdVwgOwor56S+5Lya6Ku456eR5a2mIDwgc2hha2Fpc2hva2FnYWt1XCA7CivmrabkvqDlsI/oqqwgPCBidWt5b3VzaG91c2V0c3VcIDsKK+acqOizque5iue2rSA8IG1va3VzaGl0c3VzZW4nJ2lcIDsKK+ebtOmAmuWIl+i7iiA8IGNob2t1dHN1dXJlc3NoYVwgOwor6Lui572u6KGM5YiXIDwgdGVuY2hpZ3lvdXJldHN1XCA7Civms5Xlvovkuovli5nmiYAgPCBob3VyaXRzdWppbXVzaG9cIDsKK+WHuuWLleWRveS7pCA8IHNodXRzdWRvdW1laXJlaVwgOwor6IiM5YWI5LiJ5a+4IDwgc2hpdGFzYWtpc2FuenVuXCA7CivlpKfooYbpo5/loIIgPCB0YWlzaHV1c2hva3Vkb3VcIDsKK+Wun+WIqeS4u+e+qeiAhSA8IGppdHN1cmlzaHVnaXNoYVwgOwor5YaF6Zaj6Zaj5YOaIDwgbmFpa2FrdWtha3VyeW91XCA7CivmnKrnorroqo3mg4XloLEgPCBtaWtha3VuaW5qb3Vob3VcIDsKK+iAgeS6uuaAp+eXtOWRhiA8IHJvdWppbnNlaWNoaWhvdVwgOwor5Zyo5aSW56CU56m25ZOhIDwgemFpZ2Fpa2Vua3l1dWluXCA7Civkurrlj6PniIbnmbogPCBqaW5rb3ViYWt1aGF0c3VcIDsKK+Wuouims+S4u+e+qeiAhSA8IGt5YWtrYW5zaHVnaXNoYVwgOwor54mH5Y+j6bCvIDwga2F0YWt1Y2hpaXdhc2hpXCA7CivlnKfnuK7lirnnjocgPCBhc3NodWt1a291cml0c3VcIDsKK+Wbveeri+mKgOihjCA8IGtva3VyaXRzdWdpbmtvdVwgOwor5LiA55eF5oGv54G9IDwgaWNoaWJ5b3Vzb2t1c2FpXCA7CivpgbjmiYvmqKnlpKfkvJogPCBzZW5zaHVrZW50YWlrYWlcIDsKK+ato+mHkeWPluW8lSA8IHNob3VraW50b3JpaGlraVwgOwor5rWB6YCa6Z2p5ZG9IDwgcnl1dXRzdXVrYWt1bWVpXCA7CivoirjooZPkvZzlk4EgPCBnZWlqdXRzdXNha3VoaW5cIDsKK+S4i+e0muijgeWIpOaJgCA8IGtha3l1dXNhaWJhbnNob1wgOwor6YCT6ZmN5aSJ5Zyn5ZmoIDwgdGVpa291aGVuYXRzdWtpXCA7CivpmZDnlYzpoZXlvq7pj6EgPCBnZW5rYWlrZW5iaWt5b3VcIDsKK+aWsOiIiOWul+aVmSA8IHNoaW5rb3VzaHV1a3lvdVwgOwor55+l6K2Y5bel5a2mIDwgY2hpc2hpa2lrb3VnYWt1XCA7CivkvZPos6rmlLnlloQgPCB0YWlzaGl0c3VrYWl6ZW5cIDsKK+eJh+WBtOmAmuihjCA8IGthdGFnYXdhdHN1dWtvdVwgOwor5Y2X5qW15aSn6Zm4IDwgbmFua3lva3V0YWlyaWt1XCA7CivoibbnrJHlsI/oqbEgPCBlbnNob3Vrb2JhbmFzaGlcIDsKK+imgeaSg+aIpumXmOapnyA8IHlvdWdla2lzZW50b3VraVwgOwor5ZWG5qWt576O6KGTIDwgc2hvdWd5b3ViaWp1dHN1XCA7CivnpZ7oibLoh6roi6UgPCBzaGluc2hva3VqaWpha3VcIDsKK+awtOmam+S9nOaIpiA8IG1penVnaXdhc2FrdXNlblwgOwor5LiN5YWs5bmz56u25LqJIDwgZnVrb3VoZWlreW91c291XCA7CivniannmoToqLzmi6AgPCBidXRzdXRla2lzaG91a29cIDsKK+WFrOiqjeS8muioiOWjqyA8IGtvdW5pbmthaWtlaXNoaVwgOwor5pON5qWt55+t57iuIDwgc291Z3lvdXRhbnNodWt1XCA7CivkuI3lgJLnv4EgPCBva2lhZ2FyaWtvYm9zaGlcIDsKK+WGheiCoeiGj+iWrCA8IHVjaGltYXRhZ291eWFrdVwgOwor54qv6KGM5aOw5piO5paHIDwgaGFua291c2VpbWVpYnVuXCA7CivmtojosrvogIXkvqHmoLwgPCBzaG91aGlzaGFrYWtha3VcIDsKK+mfs+alveipleirluWutiA8IG9uZ2FrdWh5b3Vyb25rYVwgOwor6Imy5b2p5oSf6KaaIDwgc2hpa2lzYWlrYW5rYWt1XCA7Civlhazlronoqr/mn7vluoEgPCBrb3VhbmNob3VzYWNob3VcIDsKK+S5l+mZjei7iuWEquWFiCA8IGpvdWtvdXNoYXl1dXNlblwgOwor5Lq65bel55SY5ZGz5paZIDwgamlua291a2FubWlyeW91XCA7CivlnKjpg7fou43kurrkvJogPCB6YWlnb3VndW5qaW5rYWlcIDsKK+iHquiomOa5v+W6puioiCA8IGppa2lzaGl0c3Vkb2tlaVwgOwor5aSn57Wx5LiA55CG6KuWIDwgZGFpdG91aXRzdXJpcm9uXCA7CivotoXog73lipvogIUgPCBjaG91bm91cnlva3VzaGFcIDsKK+aknOWumuaVmeenkeabuCA8IGtlbnRlaWt5b3VrYXNob1wgOwor5Yy75a2m5oqA6KGT5aOrIDwgaWdha3VnaWp1dHN1c2hpXCA7CivlpKnnmofoqpXnlJ/ml6UgPCB0ZW4nJ25vdXRhbmpvdWJpXCA7CivlpKrlubPmtIvlnLDln58gPCB0YWloZWl5b3VjaGlpa2lcIDsKK+acqOmjn+S4iuS6uiA8IG1va3VqaWtpc2hvdW5pblwgOwor6Ieq55Sx5Li7576p5Zu95a62IDwgaml5dXVzaHVnaWtva2thXCA7CivpgKPovInlsI/oqqwgPCByZW5zYWlzaG91c2V0c3VcIDsKK+izh+eUo+WGjeipleS+oSA8IHNoaXNhbnNhaWh5b3VrYVwgOwor5oOF57eS6Zqc5a6z5YWQIDwgam91Y2hvc2hvdWdhaWppXCA7Civml6XmnKzlm73mhrLms5UgPCBuaWhvbmtva3VrZW5wb3VcIDsKK+S6uuawkeino+aUvui7jSA8IGppbm1pbmthaWhvdWd1blwgOwor54Sm54ax5Zyw542EIDwgc2hvdW5ldHN1amlnb2t1XCA7CivpqqjnspfprIbnl4cgPCBrb3RzdXNvc2hvdXNob3VcIDsKK+a1gemAmuiovOWIuCA8IHJ5dXV0c3V1c2hvdWtlblwgOwor5beu5byV5YuY5a6aIDwgc2FzaGloaWtpa2Fuam91XCA7CivplovohbnmiYvooZMgPCBrYWlmdWt1c2h1anV0c3VcIDsKK+WNs+aXpeWHuuiNtyA8IHNva3VqaXRzdXNodWtrYVwgOwor57W25a++5ZCb5Li75Yi2IDwgemV0dGFpa3Vuc2h1c2VpXCA7CivmoKrlvI/phY3lvZMgPCBrYWJ1c2hpa2loYWl0b3VcIDsKK+ibjeWFieeJqeizqiA8IGtlaWtvdWJ1c3NoaXRzdVwgOwor6IG06Kaa56We57WMIDwgY2hvdWtha3VzaGlua2VpXCA7Civmh7LmiJLlhY3ogbcgPCBjaG91a2FpbWVuc2hva3VcIDsKK+iKuOihk+aEm+WlveWutiA8IGdlaWp1dHN1YWlrb3VrYVwgOwor56K65a6a55Sz5ZGKIDwga2FrdXRlaXNoaW5rb2t1XCA7Civogbfmpa3ou43kurogPCBzaG9rdWd5b3VndW5qaW5cIDsKK+engeeUn+WFkOWHuueUoyA8IHNoaXNlaWppc2h1c3NhblwgOwor55Sf5ZG957at5oyB6KOF572uIDwgc2VpbWVpaWppc291Y2hpXCA7CivmoKrlvI/lhazplosgPCBrYWJ1c2hpa2lrb3VrYWlcIDsKK+W7g+S7j+avgOmHiCA8IGhhaWJ1dHN1a2lzaGFrdVwgOwor5Lih6Zmi5Y2U6K2w5LyaIDwgcnlvdWlua3lvdWdpa2FpXCA7CivlsI/nlLDljp/mj5Dnga8gPCBvZGF3YXJhZGpvdWNoaW5cIDsKK+ecvOW6leWHuuihgCA8IGdhbnRlaXNodWtrZXRzdVwgOwor5L+h5Lu75oqV56WoIDwgc2hpbicnbmludG91aHlvdVwgOwor6Zai6YCj6LOq5ZWPIDwga2FucmVuc2hpdHN1bW9uXCA7Civlu7rnr4nmpa3ogIUgPCBrZW5jaGlrdWd5b3VzaGFcIDsKK+WTsuWtpuWPsuimgSA8IHRldHN1Z2FrdXNoaXlvdVwgOwor55+l6K2Y55Sj5qWtIDwgY2hpc2hpa2lzYW5neW91XCA7Civosqjnianoh6rli5Xou4ogPCBrYW1vdHN1amlkb3VzaGFcIDsKK+eJh+aJi+mWk+S7leS6iyA8IGthdGF0ZW1hc2hpZ290b1wgOwor56We57WM5Zue6Lev57ayIDwgc2hpbmtlaWthaXJvbW91XCA7CivmtZrmuKvkvZzmpa0gPCBzaHVuc2V0c3VzYWd5b3VcIDsKK+WNuOWjsuW4guWgtCA8IG9yb3NoaXVyaXNoaWpvdVwgOwor6YCa5L+h5pWZ6IKyIDwgdHN1dXNoaW5reW91aWt1XCA7CivljJfmlpfkuIPmmJ8gPCBob2t1dG9zaGljaGlzZWlcIDsKK+ato+W8j+eZuuihqCA8IHNlaXNoaWtpaGFwcHlvdVwgOwor54Kt57Sg5YyW5ZCI54mpIDwgdGFuc29rYWdvdWJ1dHN1XCA7CivmmrTlipvpnanlkb0gPCBib3VyeW9rdWtha3VtZWlcIDsKK+awl+euoeaUr+WWmOaBryA8IGtpa2Fuc2hpemVuc29rdVwgOwor5YWx55Sj5Lit5Zu9IDwga3lvdXNhbmNodXVnb2t1XCA7Civmo67mnpfpiYTpgZMgPCBzaGlucmludGV0c3Vkb3VcIDsKK+e1jOa4iOWNlOWKmyA8IGtlaXphaWt5b3VyeW9rdVwgOwor54mp55qE5pCN5a6zIDwgYnV0c3V0ZWtpc29uZ2FpXCA7CivkuI3ogpbnp4EgPCBmdXNob3V3YXRha3VzaGlcIDsKK+epuuS4reeIhuaSgyA8IGt1dWNodXViYWt1Z2VraVwgOwor5LiN5YuV55Sj5qWt6ICFIDwgZnVkb3VzYW5neW91c2hhXCA7CivmtbfmtIvmsJfosaHlj7AgPCBrYWl5b3VraXNob3VkYWlcIDsKK+WksealreeOhyA8IHNoaXRzdWd5b3VyaXRzdVwgOwor5bm05Lit5aSx6KiAIDwgbmVuanV1c2hpdHN1Z2VuXCA7Civmir3lh7rniakgPCBjaHV1c2h1dHN1YnV0c3VcIDsKK+ato+aWueihjOWIlyA8IHNlaWhvdWd5b3VyZXRzdVwgOwor6Ieq5YuV57+76Kiz5qmfIDwgamlkb3Vob24nJ3lha3VraVwgOwor6ICB6Iul55S35aWzIDwgcm91bnlha3VuYW4nJ255b1wgOwor57iE5paH5byP5Zyf5ZmoIDwgam91bW9uc2hpa2lkb2tpXCA7Civkv67kuoboqLzmm7ggPCBzaHV1cnlvdXNob3VzaG9cIDsKK+S4i+etieakjeeJqSA8IGthdG91c2hva3VidXRzdVwgOwor6Ly45YWl6Kqy5b606YeRIDwgeXVueXV1a2FjaG91a2luXCA7CivpoZXoirHmpI3niakgPCBrZW5rYXNob2t1YnV0c3VcIDsKK+mHjeWVhuS4u+e+qeiAhSA8IGp1dXNob3VzaHVnaXNoYVwgOwor5Zyw5YWD6K2m5a+fIDwgamltb3Rva2Vpc2F0c3VcIDsKK+S4reWbveWcsOaWuSA8IGNodXVnb2t1Y2hpaG91XCA7CivlpbPlj4vpgZQgPCBvbicnbmF0b21vZGFjaGlcIDsKK+S4ieagoee1guS6hiA8IHNhbmtvdXNodXVyeW91XCA7Civkurrlt6XooYDmtrIgPCBqaW5rb3VrZXRzdWVraVwgOwor5pyJ5oCn55Sf5q6WIDwgeXV1c2Vpc2Vpc2hva3VcIDsKK+mMrOmHkeihk+W4qyA8IHJlbmtpbmp1dHN1c2hpXCA7CivpgbrnlKPnm7jntprnqI4gPCBpc2Fuc291em9rdXplaVwgOwor5a++5pel5oSf5oOFIDwgdGFpbmljaGlrYW5qb3VcIDsKK+avmOW7rOmBrumCo+S7jyA8IGJpcnVzaGFuYWJ1dHN1XCA7CivnjKXopLvmlofmm7ggPCB3YWlzZXRzdWJ1bnNob1wgOwor55m+5pel5ZKzIDwgaHlha3VuaWNoaXpla2lcIDsKK+S7ruijheihjOWIlyA8IGthc291Z3lvdXJldHN1XCA7CivmraPlvKbmm7Lnt5ogPCBzZWlnZW5reW9rdXNlblwgOwor5rKh5YCL5oCn55qEIDwgYm90c3Vrb3NlaXRla2lcIDsKK+eLrOeri+mBi+WLlSA8IGRva3VyaXRzdXVuZG91XCA7CivplqLnqI7oh6rkuLvmqKkgPCBrYW56ZWlqaXNodWtlblwgOwor6ISx6ISC57KJ5LmzIDwgZGFzc2hpZnVuJydueXV1XCA7Civln7rmnKzlkajms6LmlbAgPCBraWhvbnNodXVoYXN1dVwgOwor5Y6f5a2Q5Yqb6Ii5IDwgZ2Vuc2hpcnlva3VzZW5cIDsKK+Wbm+i8qumnhuWLlei7iiA8IHlvbnJpbmt1ZG91c2hhXCA7CivkuInnkIPkuInmjK8gPCBzYW5reXV1c2Fuc2hpblwgOwor6Z2i55m95Y2K5YiGIDwgb21vc2hpcm9oYW5idW5cIDsKK+WVhuiIueWkp+WtpiA8IHNob3VzZW5kYWlnYWt1XCA7CivlpKnlnLDkuIfniakgPCB0ZW5jaGliYW5idXRzdVwgOwor6KGM5YiX5byPIDwgZ3lvdXJldHN1c2hpa2lcIDsKK+iAkOeGseWQiOmHkSA8IHRhaW5ldHN1Z291a2luXCA7CivpnZnpm7vmsJfpmLLmraIgPCBzZWlkZW5raWJvdXNoaVwgOwor5pS/55Wl57WQ5amaIDwgc2Vpcnlha3VrZWtrb25cIDsKK+eJuemrmOitpuWvnyA8IHRva2tvdWtlaXNhdHN1XCA7CivnhZnnqoHmjoPpmaTlpKsgPCBlbnRvdHN1c291amlmdVwgOwor5ZWG5oWj57+S5rOVIDwgc2hvdWthbnNodXVob3VcIDsKK+aYhuiZq+aOoembhiA8IGtvbmNodXVzYWlzaHV1XCA7CivkuK3lm73mi7Pms5UgPCBjaHV1Z29rdWtlbnBvdVwgOwor576O6KGT55uj552jIDwgYmlqdXRzdWthbnRva3VcIDsKK+WPluaJseS6uiA8IHRvcmlhdHN1a2FpbmluXCA7Civlia/lpKfntbHpoJggPCBmdWt1ZGFpdG91cnlvdVwgOwor5LyR5oim6KiY5b+15pelIDwga3l1dXNlbmtpbmVuYmlcIDsKK+eEpuaAp+ehq+mFuCA8IHNob3VzZWlyeXV1c2FuXCA7CivlrabmoKHnvqTliLbluqYgPCBnYWtrb3VndW5zZWlkb1wgOwor5ZGo5peL5qWt6ICFIDwgc2h1dXNlbmd5b3VzaGFcIDsKK+WNl+WbnuW4sOe3miA8IG1pbmFtaWthaWtpc2VuXCA7CivmlL7lsITnt5rmioDluKsgPCBob3VzaGFzZW5naXNoaVwgOwor6IOO55Sf5YuV54mpIDwgdGFpc2VpZG91YnV0c3VcIDsKK+WFqOWbveS4ree2mSA8IHplbmtva3VjaHV1a2VpXCA7CivniZvmranmiKbooZMgPCBneXV1aG9zZW5qdXRzdVwgOwor56qB5pKD6ZqK5ZOhIDwgdG90c3VnZWtpdGFpaW5cIDsKK+e0hOeZvuS4h+WGhiA8IHlha3VoeWFrdW1hbmVuXCA7CivkurrmtbfmiKbooZMgPCBqaW5rYWlzZW5qdXRzdVwgOwor5Ye65YWl5Zu9IDwgc2h1dHN1bnl1dWtva3VcIDsKK+WutuW6reijgeWIpOaJgCA8IGthdGVpc2FpYmFuc2hvXCA7CivlpKnmloflrabnmoQgPCB0ZW5tb25nYWt1dGVraVwgOwor5oCd5qGI5oqV6aaWIDwgc2hpYW4nJ25hZ2VrdWJpXCA7Civplbfot53pm6LmiZPogIUgPCBjaG91a3lvcmlkYXNoYVwgOwor6KOP5Y+j5Za25qWtIDwgdXJhZ3VjaGllaWd5b3VcIDsKK+S8neWlh+Wwj+iqrCA8IGRlbmtpc2hvdXNldHN1XCA7CivkuK3nq4vkuLvnvqkgPCBjaHV1cml0c3VzaHVnaVwgOwor5omN5qeM6aCtIDwgc2FpZHp1Y2hpYXRhbWFcIDsKK+eglOeptuizh+aWmSA8IGtlbmt5dXVzaGlyeW91XCA7Civlj6TnlJ/nianlraYgPCBrb3NlaWJ1dHN1Z2FrdVwgOwor5pu055Sf5pa96KitIDwga291c2Vpc2hpc2V0c3VcIDsKK+eJh+mBk+WIh+espiA8IGthdGFtaWNoaWtpcHB1XCA7Civml6XmnKzmqJnmupbmmYIgPCBuaWhvbmh5b3VqdW5qaVwgOwor5o6l57aa5Yqp6KmeIDwgc2V0c3V6b2t1am9zaGlcIDsKK+iqmOWwjumbu+WLleapnyA8IHl1dWRvdWRlbmRvdWtpXCA7CivpgIboqqznmoQgPCBneWFrdXNldHN1dGVraVwgOwor6Iux5LuP5rW35bOhIDwgZWlmdXRzdWthaWt5b3VcIDsKK+eolOWun+S4jeiJryA8IG5lbmppdHN1ZnVyeW91XCA7Civlu7rlm73oqJjlv7Xml6UgPCBrZW5rb2t1a2luZW5iaVwgOwor5YWs6KGG5rW05aC0IDwga291c2h1dXlva3Vqb3VcIDsKK+WJr+mjn+eJqSA8IGZ1a3VzaG9rdWJ1dHN1XCA7Civnq6/mnKvoo4Xnva4gPCB0YW5tYXRzdXNvdWNoaVwgOwor5paH5a2X56ym5Y+35YyW5rOVIDwgbW9qaWZ1Z291a2Fob3VcIDsKK+S8nee1seS4u+e+qeiAhSA8IGRlbnRvdXNodWdpc2hhXCA7Civpp5Dou4rmlpnph5EgPCBjaHV1c2hhcnlvdWtpblwgOwor6LOH5pys5Y+W5byVIDwgc2hpaG9udG9yaWhpa2lcIDsKK+agquW8j+ebuOWgtCA8IGthYnVzaGlraXNvdWJhXCA7CivnmbvoqJjnlarlj7fmrIQgPCB0b3VraWJhbmdvdXJhblwgOwor5q2p6KGM6ICF5YSq5YWIIDwgaG9rb3VzaGF5dXVzZW5cIDsKK+eEoeS6uuWuh+WumeiIuSA8IG11amluJyd1Y2h1dXNlblwgOwor5YWN55ar5Y+N5b+cIDwgbWVuJydla2loYW4nJ25vdVwgOwor5bu66Kit5Lya56S+IDwga2Vuc2V0c3VnYWlzaGFcIDsKK+acrOacq+mhm+WAkiA8IGhvbm1hdHN1dGVudG91XCA7CivliJ3lv5fosqvlvrkgPCBzaG9zaGlrYW50ZXRzdVwgOwor576F6JCE5pel6L6e5YW4IDwgcmFwb25pY2hpaml0ZW5cIDsKK+eUo+alremdqeWRvSA8IHNhbmd5b3VrYWt1bWVpXCA7CivlrprlubTpgIDogbcgPCB0ZWluZW50YWlzaG9rdVwgOwor5Zu96Zqb6Kaq5ZaEIDwga29rdXNhaXNoaW56ZW5cIDsKK+aAp+agvOiouuaWrSA8IHNlaWtha3VzaGluZGFuXCA7CivlhajouqvoobDlvLEgPCB6ZW5zaGluc3VpamFrdVwgOwor5ZWP6aGM6Kej5rG6IDwgbW9uZGFpa2Fpa2V0c3VcIDsKK+a4qeaaluWMluePvuixoSA8IG9uZGFua2FnZW5zaG91XCA7Civlk7rkubPli5XniakgPCBob255dXVkb3VidXRzdVwgOwor6LOH5pys5rOo5YWlIDwgc2hpaG9uY2h1dW55dXVcIDsKK+S/rualreW5tOmZkCA8IHNodXVneW91bmVuZ2VuXCA7Civlqabkurrlj4LmlL/mqKkgPCBmdWppbnNhbnNlaWtlblwgOwor6Ieq55Sx5rCR5Li75YWaIDwgaml5dXVtaW5zaHV0b3VcIDsKK+e3kee2rOikkueroCA8IHJ5b2t1anVob3VzaG91XCA7CivnoJTnqbbpoYznm64gPCBrZW5reXV1ZGFpbW9rdVwgOwor55eF5bqK5pel6KqMIDwgYnlvdXNob3VuaXNzaGlcIDsKK+eul+ihk+ioiOeulyA8IHNhbmp1dHN1a2Vpc2FuXCA7CivluLDljJbmpI3niakgPCBraWthc2hva3VidXRzdVwgOwor6YeR6J6N5oGQ5oWMIDwga2luJyd5dXVreW91a291XCA7CivlgIvkvZPnmbrnlJ/oq5YgPCBrb3RhaWhhc3NlaXJvblwgOwor5aSn5aiB5b6z5aaZ546LIDwgZGFpaXRva3VteW91b3VcIDsKK+eJueWIpeaOque9riA8IHRva3ViZXRzdXNvY2hpXCA7CivlvJvlvLXmjK/li5UgPCBzaGljaG91c2hpbmRvdVwgOwor5oim5oim5YWi5YWiIDwgc2Vuc2Vua3lvdWt5b3VcIDsKK+Wkp+mfk+iIquepuuapnyA8IHRhaWthbmtvdWt1dWtpXCA7CivoprPlhYnmlr3oqK0gPCBrYW5rb3VzaGlzZXRzdVwgOwor5ZaE55S35ZaE5aWzIDwgemVuJyduYW56ZW4nJ255b1wgOwor5L+h55So6LKp5aOyIDwgc2hpbicneW91aGFuYmFpXCA7CivmnKvmoqLnpZ7ntYwgPCBtYXNzaG91c2hpbmtlaVwgOwor6aqo6auE56e75qSNIDwga290c3V6dWlpc2hva3VcIDsKK+mBk+W+s+aVmeiCsiA8IGRvdXRva3VreW91aWt1XCA7Civph5Hmrr/njonmpbwgPCBraW5kZW5neW9rdXJvdVwgOwor5LiN54m55a6a5aSa5pWwIDwgZnV0b2t1dGVpdGFzdXVcIDsKK+eToueuqumvsCA8IGh5b3V0YW4nJ25hbWF6dVwgOwor5p2x5Y2K55CDIDwgaGlnYXNoaWhhbmt5dXVcIDsKK+WLleeJqeizqiA8IGRvdWJ1dHN1c2hpdHN1XCA7Civngrnmu7Tms6jlsIQgPCB0ZW50ZWtpY2h1dXNoYVwgOwor5bel5a2m5L+u5aOrIDwga291Z2FrdXNodXVzaGlcIDsKK+mWgOWkluS4jeWHuiA8IG1vbmdhaWZ1c2h1dHN1XCA7CivkuLvmg4XkuLvnvqnogIUgPCBzaHVqb3VzaHVnaXNoYVwgOwor5rOV5a6a5Luj55CG5Lq6IDwgaG91dGVpZGFpcmluaW5cIDsKK+mAmuS/oeijhee9riA8IHRzdXVzaGluc291Y2hpXCA7CivkvZzmiKboqIjnlLsgPCBzYWt1c2Vua2Vpa2FrdVwgOwor5YWs6ZaL5Zuz5pu46aSoIDwga291a2FpdG9zaG9rYW5cIDsKK+WgtOWkluWPluW8lSA8IGpvdWdhaXRvcmloaWtpXCA7Civkv6HoqJfpioDooYwgPCBzaGludGFrdWdpbmtvdVwgOwor5LiA5pmC6ZaT5Lul5YaFIDwgaWNoaWppa2FuJydpbmFpXCA7CivlooPnlYzoqr/mlbQgPCBreW91a2FpY2hvdXNlaVwgOwor5Li75Yqb6Imm6ZqKIDwgc2h1cnlva3VrYW50YWlcIDsKK+aVsOeQhuiogOiqnuWtpiA8IHN1dXJpZ2VuZ29nYWt1XCA7CivogbfloLTnkrDlooMgPCBzaG9rdWJha2Fua3lvdVwgOwor6LaK5Lit6KSMIDwgZXRjaHV1ZnVuZG9zaGlcIDsKK+WJsuW8leS+oeagvCA8IHdhcmliaWtpa2FrYWt1XCA7CivmlbTlvaLmiYvooZMgPCBzZWlrZWlzaHVqdXRzdVwgOwor6YW45oCn6aOf5ZOBIDwgc2Fuc2Vpc2hva3VoaW5cIDsKK+WOn+WtkOWKm+WtpiA8IGdlbnNoaXJpa2lnYWt1XCA7CivmsLTkuK3nv7zoiLkgPCBzdWljaHV1eW9rdXNlblwgOwor6YG655Sj55u457aa5Lq6IDwgaXNhbnNvdXpva3VuaW5cIDsKK+eZuumBlOautemajiA8IGhhdHRhdHN1ZGFua2FpXCA7CivmlrnlkJHmjqLnn6XlmaggPCBob3Vrb3V0YW5jaGlraVwgOwor6Ku46Kqs57Sb57SbIDwgc2hvc2V0c3VmdW5wdW5cIDsKK+S5s+mFuOmjsuaWmSA8IG55dXVzYW4nJ2lucnlvdVwgOwor5YCL44CF5Yil5YilIDwga29rb2JldHN1YmV0c3VcIDsKK+WPo+S4jeiqv+azlSA8IGt1Y2hpYnVjaG91aG91XCA7CivotoXoh6rnhLbnmoQgPCBjaG91c2hpemVudGVraVwgOwor54ax5Y+v5aGR5qi56ISCIDwgbmV0c3VrYXNvanVzaGlcIDsKK+WbvemYsumVt+WumCA8IGtva3Vib3VjaG91a2FuXCA7CivmraPntbHkv6HmlZkgPCBzZWl0b3VzaGlua3lvdVwgOwor5by35YyW5ZCI5a6/IDwga3lvdWthZ2Fzc2h1a3VcIDsKK+acnemuruS6uuWPgiA8IGNob3VzZW4nJ25pbmppblwgOwor5Y2w5Y2K57qPIDwgc2hpcnVzaGliYW50ZW5cIDsKK+adn+e4m+WkiemghSA8IHNva3ViYWt1aGVua291XCA7CivnpZ7ntYzntYTnuZQgPCBzaGlua2Vpc29zaGlraVwgOwor6LaF6LaK6Zai5pWwIDwgY2hvdWV0c3VrYW5zdXVcIDsKK+WKueeOh+WQkeS4iiA8IGtvdXJpdHN1a291am91XCA7CivnhKHmqZ/ljJblkIjniakgPCBtdWtpa2Fnb3VidXRzdVwgOwor5LuV5pa56KmxIDwgc2hpa2F0YWJhbmFzaGlcIDsKK+Wkp+iEs+earuizqiA8IGRhaW5vdWhpc2hpdHN1XCA7CivmlLnmnK3kv4IgPCBrYWlzYXRzdWdha2FyaVwgOwor55Sf5L2T5Yqb5a2mIDwgc2VpdGFpcmlraWdha3VcIDsKK+mHjeimgeaWh+WMluiyoSA8IGp1dXlvdWJ1bmthemFpXCA7CivlsbHkuIvlhazlnJIgPCB5YW1hc2hpdGFrb3VlblwgOwor5bGF6ZaT5YW86aOf5aCCIDwgaW1ha2Vuc2hva3Vkb3VcIDsKK+WPo+i/sOippumokyA8IGtvdWp1dHN1c2hpa2VuXCA7CivkuIDml6XniYfmmYIgPCBpY2hpbmljaGloZW5qaVwgOwor56S+5Lya55Sf5rS7IDwgc2hha2Fpc2Vpa2F0c3VcIDsKK+WHuueJiOebrumMsiA8IHNodXBhbm1va3Vyb2t1XCA7CivliKXpgJTmlK/lh7ogPCBiZXR0b3NoaXNodXRzdVwgOwor55Sz5ZGK57SN56iOIDwgc2hpbmtva3Vub3V6ZWlcIDsKK+WJg+WIgOinpiA8IGthbWlzb3Jpa2FidXJlXCA7Civlo7LmuKHoqLwgPCB1cml3YXRhc2hpc2hvdVwgOwor5Y2z5rG66KOB5YikIDwgc29ra2V0c3VzYWliYW5cIDsKK+eVsOaWueWwjumbu+iGnCA8IGlob3Vkb3VkZW5tYWt1XCA7Civni6znq4voh6rlsIogPCBkb2t1cml0c3VqaXNvblwgOwor5ama57SE5oyH6LyqIDwga29uJyd5YWt1eXViaXdhXCA7CivooYDmtrLlh53lm7ogPCBrZXRzdWVraWd5b3Vrb1wgOwor5Ye65Yem6YCy6YCAIDwgc2h1c3Nob3NoaW50YWlcIDsKK+W8k+efouWFq+W5oSA8IHl1bWl5YWhhY2hpbWFuXCA7Civorablr5/miYvluLMgPCBrZWlzYXRzdXRlY2hvdVwgOwor6IG35qWt5amm5Lq6IDwgc2hva3VneW91ZnVqaW5cIDsKK+aMh+ekuuS7o+WQjeipniA8IHNoaWppZGFpbWVpc2hpXCA7Civlm57lvqnkuI3lj6/og70gPCBrYWlmdWt1ZnVrYW5vdVwgOwor6Iez56aP5Y2D5bm0IDwgc2hpZnVrdXNlbicnbmVuXCA7CivlpKnlnLDplovpl6IgPCB0ZW5jaGlrYWlieWFrdVwgOwor5Ya35YeN6aOf5ZOBIDwgcmVpdG91c2hva3VoaW5cIDsKK+ijnOi2s+iqrOaYjiA8IGhvc29rdXNldHN1bWVpXCA7Civkv6HnlKjnirbmhYsgPCBzaGluJyd5b3Vqb3V0YWlcIDsKK+e1tuWvvua5v+W6piA8IHpldHRhaXNoaXRzdWRvXCA7CivmmI7mmI7nmb3nmb0gPCBtZWltZWloYWt1aGFrdVwgOwor5oud6YeR5Li7576p6ICFIDwgaGFpa2luc2h1Z2lzaGFcIDsKK+i7jeWCmee4ruWwjyA8IGd1bmJpc2h1a3VzaG91XCA7CivljZfnhKHpmL/lvKXpmYDku48gPCBuYW11YW1pZGFidXRzdVwgOwor5pq05Yqb5Zuj5ZOhIDwgYm91cnlva3VkYW4nJ2luXCA7CivlpKflrabmlZnogrIgPCBkYWlnYWt1a3lvdWlrdVwgOwor56ys5LiJ5Lq656ewIDwgZGFpc2FuJyduaW5zaG91XCA7CivkurrpgZPkuLvnvqnogIUgPCBqaW5kb3VzaHVnaXNoYVwgOwor5rC45LiW5Lit56uLIDwgZWlzZWljaHV1cml0c3VcIDsKK+eglOeptumgmOWfnyA8IGtlbmt5dXVyeW91aWtpXCA7CivmlZnogrLli4Xoqp4gPCBreW91aWt1Y2hva3Vnb1wgOwor5ZGK5Yil5byPIDwga29rdWJldHN1c2hpa2lcIDsKK+eyvuelnumanOWusyA8IHNlaXNoaW5zaG91Z2FpXCA7CivlpKnnqbrmtbfmv7YgPCB0ZW5rdXVrYWlrYXRzdVwgOwor6aOf6aSM55mC5rOVIDwgc2hva3VqaXJ5b3Vob3VcIDsKK+S4reWkruWIhumbouW4ryA8IGNodXVvdWJ1bnJpdGFpXCA7CivmuKnluK/kvY7msJflnKcgPCBvbnRhaXRlaWtpYXRzdVwgOwor6LaF5Zu95a625Li7576pIDwgY2hvdWtva2thc2h1Z2lcIDsKK+S9nOiAheS4jeefpSA8IHNha3VzaGFzaGlyYXp1XCA7CivnlJ/mtLvmsLTmupYgPCBzZWlrYXRzdXN1aWp1blwgOwor5Y2155Sf5YuV54mpIDwgcmFuc2VpZG91YnV0c3VcIDsKK+eti+iCieWKtOWDjSA8IGtpbicnbmlrdXJvdWRvdVwgOwor5Y2X5pSv6YKj5rW3IDwgbWluYW1pc2hpbmFrYWlcIDsKK+Wtpuihk+eUqOiqniA8IGdha3VqdXRzdXlvdWdvXCA7Civoh6rnhLbpo5/lk4EgPCBzaGl6ZW5zaG9rdWhpblwgOwor5ZWG5qWt57WE5ZCIIDwgc2hvdWd5b3VrdW1pYWlcIDsKK+iqnuW9meapn+iDveaWh+azlSA8IGdvaWtpbm91YnVucG91XCA7CivogbfmqKnkubHnlKggPCBzaG9ra2VucmFuJyd5b3VcIDsKK+S8tOmjn+Wkp+iHoyA8IGJhbnNob2t1ZGFpamluXCA7CivlpL7pm5HniakgPCBreW91emF0c3VidXRzdVwgOwor5Yip5a6z6Zai5L+C6ICFIDwgcmlnYWlrYW5rZWlzaGFcIDsKK+ihhuitsOWToeitsOmVtyA8IHNodXVnaWluZ2ljaG91XCA7CivlsqHnm67lhavnm64gPCBva2FtZWhhY2hpbW9rdVwgOwor5bCO5rOi566h5a6a5pWwIDwgZG91aGFrYW50ZWlzdXVcIDsKK+aWrOaWsOWlh+aKnCA8IHphbnNoaW5raWJhdHN1XCA7Civnm7Tmg4XlvoTooYwgPCBjaG9rdWpvdWtlaWtvdVwgOwor56eB56uL5a2m5qChIDwgc2hpcml0c3VnYWtrb3VcIDsKK+S4reaXpei+nuWFuCA8IGNodXVuaWNoaWppdGVuXCA7CivkuIHlrZflvaLlrpropo8gPCB0ZWlqaWdhdGFqb3VnaVwgOwor57Ch5piT6KOB5Yik5omAIDwga2FuJydpc2FpYmFuc2hvXCA7CivliIbpoZ7nm67pjLIgPCBidW5ydWltb2t1cm9rdVwgOwor5YaF5YiG5rOM6IW6IDwgbmFpYnVucGl0c3VzZW5cIDsKK+WPjeWLleS4u+e+qeiAhSA8IGhhbmRvdXNodWdpc2hhXCA7CivmtLvot6/plovmi5MgPCBrYXRzdXJva2FpdGFrdVwgOwor5bmz5p2/5ris6YePIDwgaGVpYmFuc29rdXJ5b3VcIDsKK+a6kOazieW+tOWPjiA8IGdlbnNlbmNob3VzaHV1XCA7CivpgJrkv6HooZvmmJ8gPCB0c3V1c2hpbicnZWlzZWlcIDsKK+a4heeul+WPluW8lSA8IHNlaXNhbnRvcmloaWtpXCA7CivnibnmrorlrabntJogPCB0b2t1c2h1Z2Fra3l1dVwgOwor5L+h55So6Kq/5p+7IDwgc2hpbicneW91Y2hvdXNhXCA7CivlhYjnianlo7LosrcgPCBzYWtpbW9ub2JhaWJhaVwgOwor5LiD6Zuj5YWr6IumIDwgc2hpY2hpbmFuaGFra3VcIDsKK+inkuiGnOenu+akjSA8IGtha3VtYWt1aXNob2t1XCA7Civpn7Pmpb3lm7Pmm7jppKggPCBvbmdha3V0b3Nob2thblwgOwor5pWR5oCl55eF6ZmiIDwga3l1dWt5dXVieW91aW5cIDsKK+aOpeinpuaEn+afkyA8IHNlc3Nob2t1a2Fuc2VuXCA7CivnqI7ph5HnlLPlkYogPCB6ZWlraW5zaGlua29rdVwgOwor57Wo5q+v54iG5pKDIDwganV1dGFuYmFrdWdla2lcIDsKK+S4g+i7ouWFq+i1tyA8IHNoaWNoaXRlbmhha2tpXCA7CivkuZfnlKjoh6rli5Xou4ogPCBqb3V5b3VqaWRvdXNoYVwgOwor5rC06YqA5Lit5q+SIDwgc3VpZ2luY2h1dWRva3VcIDsKK+mcsuWHuuS4jei2syA8IHJvc2h1dHN1YnVzb2t1XCA7CivlubPkuIrljrvlhaUgPCBoeW91am91a3lvbnl1dVwgOwor5Zu956uL5YWs5ZySIDwga29rdXJpdHN1a291ZW5cIDsKK+WFrOeri+WtpuagoSA8IGtvdXJpdHN1Z2Fra291XCA7CivpgJrkv6HlnI/lpJYgPCB0c3V1c2hpbmtlbmdhaVwgOwor57SE5p2f5omL5b2iIDwgeWFrdXNva3V0ZWdhdGFcIDsKK+WPrOmbhuS7pOeKtiA8IHNob3VzaHV1cmVpam91XCA7CivlnKflgJLnmoTlpJrmlbAgPCBhdHRvdXRla2l0YXN1dVwgOwor5paw5YWl56S+5ZOhIDwgc2hpbicnbnl1dXNoYWluXCA7Civml6XljZfmtbflsrggPCBuaWNoaW5hbmthaWdhblwgOwor6Z2e5pS/5bqc57WE57mUIDwgaGlzZWlmdXNvc2hpa2lcIDsKK+axjuaVtOaVsOW8jyA8IGhhbnNlaXN1dXNoaWtpXCA7Civoh6rnlLHlirTlg43ogIUgPCBqaXl1dXJvdWRvdXNoYVwgOwor5Y+k54mp5ZWG5Lq6IDwga29idXRzdXNob3VuaW5cIDsKK+e3keeZveiJsiA8IHJ5b2t1aGFrdXNob2t1XCA7Civohp3plqLnr4AgPCBzaGl0c3VrYW5zZXRzdVwgOwor5q2m5Yqb5bmy5riJIDwgYnVyeW9rdWthbnNob3VcIDsKK+WFrOihhumBk+W+syA8IGtvdXNodXVkb3V0b2t1XCA7CivmgKrlpYflsI/oqqwgPCBrYWlraXNob3VzZXRzdVwgOwor5Y2a5oSb5Li7576p6ICFIDwgaGFrdWFpc2h1Z2lzaGFcIDsKK+enmOWvhuaKleelqCA8IGhpbWl0c3V0b3VoeW91XCA7CivlnKflipvlrrnlmaggPCBhdHN1cnlva3V5b3VraVwgOwor5rGC5ama5bqD5ZGKIDwga3l1dWtvbmtvdWtva3VcIDsKK+W/g+WboOWPjeW/nCA8IHNoaW4nJ2luaGFuJydub3VcIDsKK+Wumuacn+S5l+i7iuWIuCA8IHRlaWtpam91c2hha2VuXCA7Civpm7vmsJfmtJfmv6/mqZ8gPCBkZW5raXNlbnRha3VraVwgOwor6bqm6JeB5bi95a2QIDwgbXVnaXdhcmFib3VzaGlcIDsKK+e0jeeojueUs+WRiiA8IG5vdXplaXNoaW5rb2t1XCA7Civlj43lr77np7DnmoQgPCBoYW50YWlzaG91dGVraVwgOwor57WC5oim6KiY5b+15pelIDwgc2h1dXNlbmtpbmVuYmlcIDsKK+S9j+WPi+mKgOihjCA8IHN1bWl0b21vZ2lua291XCA7CivlsLHmpa3kurrlj6MgPCBzaHV1Z3lvdWppbmtvdVwgOwor5YWo5Yud5YSq5YudIDwgemVuc2hvdXl1dXNob3VcIDsKK+W7uuioreWkp+iHoyA8IGtlbnNldHN1ZGFpamluXCA7CivpnZ7oia/lv4PnmoQgPCBoaXJ5b3VzaGludGVraVwgOwor57W25a++5b+F6KaBIDwgemV0dGFpaGl0c3V5b3VcIDsKK+ekvuS8muS4u+e+qeiAhSA8IHNoYWthaXNodWdpc2hhXCA7Civom7jotrPphY3nt5ogPCB0YWtvYXNoaWhhaXNlblwgOwor5bel5qWt5aSn5a2mIDwga291Z3lvdWRhaWdha3VcIDsKK+mHkeWjseS4h+WGhiA8IGtpbicnaWNoaW1hbicnZW5cIDsKK+aXheWuouWIl+i7iiA8IHJ5b2t5YWt1cmVzc2hhXCA7CivlsI/lnovoh6rli5Xou4ogPCBrb2dhdGFqaWRvdXNoYVwgOwor56uL5Lya5ryU6KqsIDwgdGFjaGlhaWVuemV0c3VcIDsKK+WlqOWtpuizh+mHkSA8IHNob3VnYWt1c2hpa2luXCA7CivmsJHkuovoqLToqJ/ms5UgPCBtaW5qaXNvc2hvdWhvdVwgOwor54++6YeR5Y+O5YWlIDwgZ2Vua2luc2h1dW55dXVcIDsKK+esrOS6jOmHj+WtkOWMliA8IGRhaW5pcnlvdXNoaWthXCA7Civkuozljp/lrZDliIblrZAgPCBuaWdlbnNoaWJ1bnNoaVwgOwor5a2m6KGT5Lya6K2wIDwgZ2FrdWp1dHN1a2FpZ2lcIDsKK+azleW+i+WVj+mhjCA8IGhvdXJpdHN1bW9uZGFpXCA7Civnm7TpgJrpm7voqbEgPCBjaG9rdXRzdXVkZW53YVwgOwor5Y+w5omA6YGT5YW3IDwgZGFpZG9rb3JvZG91Z3VcIDsKK+mbu+a6kOS+m+e1piA8IGRlbmdlbmt5b3VreXV1XCA7CivluLjku7vmjIfmj67ogIUgPCBqb3VuaW5zaGlraXNoYVwgOwor5rC06Zm45Lih55SoIDwgc3VpcmlrdXJ5b3V5b3VcIDsKK+mAmuS/oeaJi+autSA8IHRzdXVzaGluc2h1ZGFuXCA7CivkuIvoq4vkvJrnpL4gPCBzaGl0YXVrZWdhaXNoYVwgOwor56ys5LiA5Lq656ewIDwgZGFpaWNoaW5pbnNob3VcIDsKK+WtpuattOekvuS8miA8IGdha3VyZWtpc2hha2FpXCA7CivovrLkuovoqabpqJPloLQgPCBub3VqaXNoaWtlbmpvdVwgOwor5oOF5aCx5YyW56S+5LyaIDwgam91aG91a2FzaGFrYWlcIDsKK+a8lOWlj+absuebriA8IGVuc291a3lva3Vtb2t1XCA7CivmgJ3mg7Porablr58gPCBzaGlzb3VrZWlzYXRzdVwgOwor5YWs55uK6LOq5bGLIDwga291ZWtpc2hpY2hpeWFcIDsKK+aOpee2muWPoyA8IHNldHN1em9rdWd1Y2hpXCA7CivlgZXogIHlkIznqbQgPCBrYWlyb3Vkb3VrZXRzdVwgOwor5Li76Kaz5Li7576p6ICFIDwgc2h1a2Fuc2h1Z2lzaGFcIDsKK+eEoeaVmeS8muS4u+e+qSA8IG11a3lvdWthaXNodWdpXCA7CivnsbPkvqHlr6norbDkvJogPCBiZWlrYXNoaW5naWthaVwgOwor5YGl5bq36aOf5ZOBIDwga2Vua291c2hva3VoaW5cIDsKK+aKveixoeWQjeipniA8IGNodXVzaG91bWVpc2hpXCA7CivlsI/kuZfku4/mlZkgPCBzaG91am91YnVra3lvdVwgOwor5pmC6ZaT5aSW5Yq05YONIDwgamlrYW5nYWlyb3Vkb3VcIDsKK+WQiOebrueahOaApyA8IGdvdW1va3V0ZWtpc2VpXCA7Civpm7vlipvkvJrnpL4gPCBkZW5yeW9rdWdhaXNoYVwgOwor55m+56eR5YWo5pu45rS+IDwgaHlha2themVuc2hvaGFcIDsKK+S6jOeZvuS6jOWNgeaXpSA8IG5paHlha3VoYXRzdWthXCA7CivmtbfmtIvplovnmbogPCBrYWl5b3VrYWloYXRzdVwgOwor57Sw6IOe5YiG6KOCIDwgc2FpYm91YnVucmV0c3VcIDsKK+aApeihjOaWmemHkSA8IGt5dXVrb3VyeW91a2luXCA7CivkuIHkuIHnmbrmraIgPCBjaG91Y2hvdWhhc3NoaVwgOwor5pWZ6IG36Kqy56iLIDwga3lvdXNob2t1a2F0ZWlcIDsKK+S6jOmHjeS+oeagvOWItiA8IG5panV1a2FrYWt1c2VpXCA7CivliJHkuovoqLToqJ/ms5UgPCBrZWlqaXNvc2hvdWhvdVwgOwor5Yed552A5YqbIDwgZ3lvdWNoYWt1cnlva3VcIDsKK+aHkOWLmOWumiA8IGZ1dG9rb3Jva2Fuam91XCA7Civlh7rniYjmpa3ogIUgPCBzaHVwcGFuZ3lvdXNoYVwgOwor5bCx6IG36YGL5YuVIDwgc2h1dXNob2t1dW5kb3VcIDsKK+eVpeWlquihjOeCuiA8IHJ5YWt1ZGF0c3Vrb3VpXCA7CivnkIbpnZ7mm7Lnm7QgPCByaWhpa3lva3VjaG9rdVwgOwor5o+Q5Ye654mpIDwgdGVpc2h1dHN1YnV0c3VcIDsKK+WIpeWGiuS7mOmMsiA8IGJlc3NhdHN1ZnVyb2t1XCA7CivkuInmqKnliIbnq4sgPCBzYW5rZW5idW5yaXRzdVwgOwor5Ye65pyt5Y+jIDwgc2h1c3NhdHN1Z3VjaGlcIDsKK+iyqeWjsuS7o+eQhuW6lyA8IGhhbmJhaWRhaXJpdGVuXCA7CivlhbHlkIznoJTnqbYgPCBreW91ZG91a2Vua3l1dVwgOwor5paw5YiK57S55LuLIDwgc2hpbmthbnNob3VrYWlcIDsKK+ajn+WJsumVt+WxiyA8IG11bmV3YXJpbmFnYXlhXCA7Civkv67lpb3mnaHntIQgPCBzaHV1a291am91eWFrdVwgOwor5Yag54q25YuV6ISIIDwga2Fuam91ZG91bXlha3VcIDsKK+epuuepuua8oOa8oCA8IGt1dWt1dWJha3ViYWt1XCA7CivmgqrmgKfosqfooYAgPCBha3VzZWloaW5rZXRzdVwgOwor5LyR5oim5Y2U5a6aIDwga3l1dXNlbmt5b3V0ZWlcIDsKK+elnue1jOihsOW8sSA8IHNoaW5rZWlzdWlqYWt1XCA7Civlm57mipjmoLzlrZAgPCBrYWlzZXRzdWtvdXNoaVwgOwor5YWI5rG65ZWP6aGMIDwgc2Vua2V0c3Vtb25kYWlcIDsKK+adseS6nOiruOawkeaXjyA8IHRvdWFzaG9taW56b2t1XCA7CivlsLHmpa3ml6XmlbAgPCBzaHV1Z3lvdW5pc3N1dVwgOwor5a6f6aiT5YuV54mpIDwgamlra2VuZG91YnV0c3VcIDsKK+WNmOiRiemjm+ihjOapnyA8IHRhbicneW91aGlrb3VraVwgOwor5b+g5ZCb5oSb5Zu9IDwgY2h1dWt1bicnYWlrb2t1XCA7CivmsYLkurrluoPlkYogPCBreXV1amlua291a29rdVwgOwor54us56uL54us5q2pIDwgZG9rdXJpdHN1ZG9wcG9cIDsKK+acieWus+mjn+WTgSA8IHl1dWdhaXNob2t1aGluXCA7Civlm73kvJrorbDkuovpjLIgPCBrb2trYWlnaWppcm9rdVwgOwor6bq76Jas5Lit5q+SIDwgbWF5YWt1Y2h1dWRva3VcIDsKK+mHkeWxnuW3pealrSA8IGtpbnpva3Vrb3VneW91XCA7Civljbjlo7LniankvqEgPCBvcm9zaGl1cmlidWtrYVwgOwor5YWx5ZCM5Ye66LOHIDwga3lvdWRvdXNodXNzaGlcIDsKK+eLrei7jOmJhOmBkyA8IGt5b3VraXRldHN1ZG91XCA7CivllYbmpa3miYvlvaIgPCBzaG91Z3lvdXRlZ2F0YVwgOwor6YO15L6/6YWN6YGUIDwgeXV1YmluaGFpdGF0c3VcIDsKK+a4r+a5vuW9k+WxgCA8IGtvdXdhbnRvdWt5b2t1XCA7CivllYbmpa3pioDooYwgPCBzaG91Z3lvdWdpbmtvdVwgOwor55yB55Wl6KiY5Y+3IDwgc2hvdXJ5YWt1a2lnb3VcIDsKK+WkqeaXpeeTpiA8IHRlbmppdHN1Z2F3YXJhXCA7CivkuK3plpPloLHlkYogPCBjaHV1a2FuaG91a29rdVwgOwor5aSi54mp6KqeIDwgeXVtZW1vbm9nYXRhcmlcIDsKK+S4reW/g+aAneaDsyA8IGNodXVzaGluc2hpc291XCA7CivkupTmnIjkurrlvaIgPCBnb2dhdHN1bmluZ3lvdVwgOwor5Lyd5om/5paH5a2mIDwgZGVuc2hvdWJ1bmdha3VcIDsKK+aUv+W6nOS/neiovOWCtSA8IHNlaWZ1aG9zaG91c2FpXCA7Civou5/kvZPli5XniakgPCBuYW50YWlkb3VidXRzdVwgOwor5LiA5piU5YmNIDwgaGl0b211a2FzaGltYWVcIDsKK+W8t+WItuWPjuWuuSA8IGt5b3VzZWlzaHV1eW91XCA7Civkvr/kuZfkuLvnvqnogIUgPCBiaW5qb3VzaHVnaXNoYVwgOwor5LiA6Zm95p2l6IW5IDwgaWNoaXlvdXJhaWZ1a3VcIDsKK+a8gealreWNlOWumiA8IGd5b2d5b3VreW91dGVpXCA7CivmsLTnlJ/li5XniakgPCBzdWlzZWlkb3VidXRzdVwgOwor5qWU5b2i5paH5a2XIDwga3VzYWJpZ2F0YW1vamlcIDsKK+eZvuWNkumVtyA8IGh5YWt1c290c3VjaG91XCA7Civkv6HnlKjntYTlkIggPCBzaGluJyd5b3VrdW1pYWlcIDsKK+eglOeptuWgseWRiiA8IGtlbmt5dXVob3Vrb2t1XCA7CivpgIbooYzliJcgPCBneWFrdWd5b3VyZXRzdVwgOwor5LqM5aSn5pS/5YWa5Yi2IDwgbmlkYWlzZWl0b3VzZWlcIDsKK+awtOWkqeW9t+W9vyA8IHN1aXRlbmhvdWZ1dHN1XCA7CivkvY/lroXnlKPmpa0gPCBqdXV0YWt1c2FuZ3lvdVwgOwor5rOh5rKr5Lya56S+IDwgaG91bWF0c3VnYWlzaGFcIDsKK+eEoeWIqeaBr+WFrOWCtSA8IG11cmlzb2t1a291c2FpXCA7Civoq4foq5bpoqjnmbogPCBkYW5yb25mdXVoYXRzdVwgOwor6Laz57Sg5oCn5Y6f55CGIDwgYXNoaXN1am91Z2VucmlcIDsKK+izh+acrOS4u+e+qeiAhSA8IHNoaWhvbnNodWdpc2hhXCA7CivlhYjnmbrmipXmiYsgPCBzZW5wYXRzdXRvdXNodVwgOwor5o6o55CG5bCP6KqsIDwgc3VpcmlzaG91c2V0c3VcIDsKK+e0s+Wjq+WNlOWumiA8IHNoaW5zaGlreW91dGVpXCA7CivlpKflkI3lsYvmlbcgPCBkYWlteW91eWFzaGlraVwgOwor54m555Ww5L2T6LOqIDwgdG9rdWl0YWlzaGl0c3VcIDsKK+S4remWk+aQvuWPliA8IGNodXVrYW5zYWt1c2h1XCA7CivmlofljJblnLDnkIblraYgPCBidW5rYWNoaXJpZ2FrdVwgOwor5Y2U6Kq/5L2c5qWtIDwga3lvdWNob3VzYWd5b3VcIDsKK+aMh+Wcp+eZguazlSA8IHNoaWF0c3VyeW91aG91XCA7Civlhazoqo3lgJnoo5zogIUgPCBrb3VuaW5rb3Vob3NoYVwgOwor5bel5qWt5oqA6KGTIDwga291Z3lvdWdpanV0c3VcIDsKK+e3j+WQiOiKuOihkyA8IHNvdWdvdWdlaWp1dHN1XCA7Civml63ml6Xnq6AgPCBreW9rdWppdHN1c2hvdVwgOwor5LiW55WM6YG45omL5qipIDwgc2VrYWlzZW5zaHVrZW5cIDsKK+S4reeUo+majue0miA8IGNodXVzYW5rYWlreXV1XCA7CivljZfljYHlrZfmmJ8gPCBtaW5hbWlqdXVqaXNlaVwgOwor5paw55+z5Zmo5pmC5LujIDwgc2hpbnNla2tpamlkYWlcIDsKK+W/g+mciuaJi+ihkyA8IHNoaW5yZWl0ZWp1dHN1XCA7CivmiJDplbfnlKPmpa0gPCBzZWljaG91c2FuZ3lvdVwgOwor5Y+X6aiT5Y+C6ICD5pu4IDwganVrZW5zYW5rb3VzaG9cIDsKK+Wbvemam+WPjuaUryA8IGtva3VzYWlzaHV1c2hpXCA7CivpnZnmraLnlLvmlL7pgIEgPCBzZWlzaGlnYWhvdXNvdVwgOwor5LiK6Zm45L2c5oimIDwgam91cmlrdXNha3VzZW5cIDsKK+WLleWKm+izh+a6kCA8IGRvdXJ5b2t1c2hpZ2VuXCA7Civlv4XopoHmnaHku7YgPCBoaXRzdXlvdWpvdWtlblwgOwor5bCR5bm05oSf5YyW6ZmiIDwgc2hvdW5lbmthbmthaW5cIDsKK+S4rea1geaEj+itmCA8IGNodXVyeXV1aXNoaWtpXCA7Civplbfot53pm6LovLjpgIEgPCBjaG91a3lvcml5dXNvdVwgOwor5YaN5biw5Luj5ZCN6KmeIDwgc2Fpa2lkYWltZWlzaGlcIDsKK+WHuua8geWMuuWfnyA8IHNodXRzdWd5b2t1aWtpXCA7CivosqHlvaLosq/ok4QgPCB6YWlrZWljaG9jaGlrdVwgOwor6IG35Lq65rCX6LOqIDwgc2hva3VuaW5rYXRhZ2lcIDsKK+aOp+iotOijgeWIpOaJgCA8IGtvdXNvaGFpYmFuc2hvXCA7CivljZjkvY3ooYzliJcgPCB0YW4nJ2lneW91cmV0c3VcIDsKK+aWh+WMluWKn+WKtOiAhSA8IGJ1bmtha291cm91c2hhXCA7Civlm73pgKPmhrLnq6AgPCBrb2t1cmVua2Vuc2hvdVwgOwor5rC05YWI5qGI5YaFIDwgbWl6dXNha2lhbicnbmFpXCA7CivnnJ/nqbrmjoPpmaTmqZ8gPCBzaGlua3V1c291amlraVwgOwor5Y+O5a656Kit5YKZIDwgc2h1dXlvdXNldHN1YmlcIDsKK+a3sea1t+a8gealrSA8IHNoaW5rYWlneW9neW91XCA7CivkurrlvaLmtYTnkaDnkoMgPCBuaW5neW91am91cnVyaVwgOwor55u05b6A6YKB6YCyIDwgY2hva3VvdW1haXNoaW5cIDsKK+WkqeS9k+WKm+WtpiA8IHRlbnRhaXJpa2lnYWt1XCA7CivmmJToqbEgPCBtdWthc2hpYmFuYXNoaVwgOwor5pS/5rK76KmV6KuW5a62IDwgc2VpamloeW91cm9ua2FcIDsKK+S8neaJv+WPmeS6i+ipqSA8IGRlbnNob3Vqb2ppc2hpXCA7CivmnInoppbnlYzpo5vooYwgPCB5dXVzaGlrYWloaWtvdVwgOwor5bm85Y+L6YGUIDwgb3NhbmF0b21vZGFjaGlcIDsKK+ecn+epuumbu+eQgyA8IHNoaW5rdXVkZW5reXV1XCA7CivpmY3kuInkuJblppnnjosgPCBnb3V6YW56ZW15b3VvdVwgOwor562J6auY57ea5Zyw5ZuzIDwgdG91a291c2VuY2hpenVcIDsKK+S4iuWxpOW7uueviSA8IGpvdXNvdWtlbmNoaWt1XCA7CivlvbnogbfmiYvlvZMgPCB5YWt1c2hva3V0ZWF0ZVwgOwor6auY5Zyn6Zu75rWBIDwga291YXRzdWRlbnJ5dXVcIDsKK+Wwu+i7veWlsyA8IHNoaXJpZ2FydW9uJyduYVwgOwor5Lql5bm0IDwgaW5vc2hpc2hpZG9zaGlcIDsKK+eZvemJouW3uyA8IHNoaXJvaGFjaGltYWtpXCA7CivkuqTpgJrpgZPlvrMgPCBrb3V0c3V1ZG91dG9rdVwgOwor5rC05rqW5ris6YePIDwgc3VpanVuc29rdXJ5b3VcIDsKK+ijvemAoOW5tOaciOaXpSA8IHNlaXpvdW5lbmdhcHBpXCA7CivlvIHoqLzms5XnmoQgPCBiZW5zaG91aG91dGVraVwgOwor5p2+6Iy45b6h6aOvIDwgbWF0c3V0YWtlZ29oYW5cIDsKK+mWoueojumanOWjgSA8IGthbnplaXNob3VoZWtpXCA7CivntbHmi6zpg6jplbcgPCB0b3VrYXRzdWJ1Y2hvdVwgOwor5Zyw5pa55Lqk5LuY56iOIDwgY2hpaG91a291ZnV6ZWlcIDsKK+iWhOe0q+iJsiA8IHVzdW11cmFzYWtpaXJvXCA7CivmkI3lpLHoo5zloasgPCBzb25zaGl0c3Vob3RlblwgOwor5pel5pys6Kqe5pWZ5pysIDwgbmlob25nb2t5b3Vob25cIDsKK+WHuuWhgeeOhyA8IHNodXRzdXJ1aXJpdHN1XCA7CivkuovkuovnianniakgPCBqaWppYnV0c3VidXRzdVwgOwor6YCj57aa5YaZ55yfIDwgcmVuem9rdXNoYXNoaW5cIDsKK+S/mOiZnOWPjuWuueaJgCA8IGZ1cnlvc2h1dXlvdWpvXCA7CivnqbrmsJflnKfnuK7mqZ8gPCBrdXVraWFzc2h1a3VraVwgOwor5Zub55m+5L2Z5beeIDwgc2hpaHlha3V5b3NodXVcIDsKK+WbvemAo+iomOW/teaXpSA8IGtva3VyZW5raW5lbmJpXCA7Civlv4PnrYvmopfloZ4gPCBzaGlua2lua291c29rdVwgOwor5a6X5pWZ6KOB5YikIDwgc2h1dWt5b3VzYWliYW5cIDsKK+mbu+S/oeafsSA8IGRlbnNoaW5iYXNoaXJhXCA7CivlhpnnnJ/nn7PniYggPCBzaGFzaGluc2VraWJhblwgOwor6Zqg6Iqx5qSN54mpIDwgaW5rYXNob2t1YnV0c3VcIDsKK+eEoeiomOWQjeaKleelqCA8IG11a2ltZWl0b3VoeW91XCA7Civlvq7nlJ/nianlraYgPCBiaXNlaWJ1dHN1Z2FrdVwgOwor5oim55Wl56m66LuNIDwgc2Vucnlha3VrdXVndW5cIDsKK+aBreizgOaWsOW5tCA8IGt5b3VnYXNoaW4nJ25lblwgOwor5Zu96Zqb5Y2U5a6aIDwga29rdXNhaWt5b3V0ZWlcIDsKK+iHqueEtuS4u+e+qeiAhSA8IHNoaXplbnNodWdpc2hhXCA7CivoibLljbPmmK/nqbogPCBzaGlraXNva3V6ZWt1dVwgOwor6aCt5a+S6Laz54axIDwgenVrYW5zb2t1bmV0c3VcIDsKK+WMuuaknOWvn+W6gSA8IGt1a2Vuc2F0c3VjaG91XCA7CivmoLjpmLLooZvlipsgPCBrYWt1Ym91ZWlyeW9rdVwgOwor5a6M5YWo54eD54S8IDwga2FuemVuJyduZW5zaG91XCA7Civph43ph4/mhJ/oppogPCBqdXVyeW91a2Fua2FrdVwgOwor6ZuM6ZuE6ZGR5YilIDwgc2hpeXV1a2FuYmV0c3VcIDsKK+euoeWMuuawl+ixoeWPsCA8IGthbmt1a2lzaG91ZGFpXCA7Civljp/nlJ/li5XniakgPCBnZW5zZWlkb3VidXRzdVwgOwor55uu55qE5oSP6K2YIDwgbW9rdXRla2lpc2hpa2lcIDsKK+azleWumua6luWCmemHkSA8IGhvdXRlaWp1bmJpa2luXCA7CivmtbfnlJ/li5XniakgPCBrYWlzZWlkb3VidXRzdVwgOwor5pS75pKD57K+56WeIDwga291Z2VraXNlaXNoaW5cIDsKK+S9nOaIkOaKgOihkyA8IHNha3VzZWlnaWp1dHN1XCA7Civph5Hpiq3kv6HoqJcgPCBraW5zZW5zaGludGFrdVwgOwor5ZC45Y+O5ZCI5L21IDwga3l1dXNodXVnYXBwZWlcIDsKK+aPm+mqqOWlquiDjiA8IGthbmtvdHN1ZGF0dGFpXCA7Civnoazos6rpmbblmaggPCBrb3VzaGl0c3V0b3VraVwgOwor5a+d5Y+w5paZ6YeRIDwgc2hpbmRhaXJ5b3VraW5cIDsKK+izvOWFpeazqOaWhyA8IGtvdW55dXVjaHV1bW9uXCA7CivnhKblnJ/miKbooZMgPCBzaG91ZG9zZW5qdXRzdVwgOwor5pyJ6IG35pWF5a6fIDwgeXV1c29rdWtvaml0c3VcIDsKK+ipseipsSA8IGhhbmFzaGliYW5hc2hpXCA7CivnhKHlhJ/kv6HoqJcgPCBtdXNob3VzaGludGFrdVwgOwor5raI6LK755Sf5rS7IDwgc2hvdWhpc2Vpa2F0c3VcIDsKK+WupOWGhemBiuaIryA8IHNoaXRzdW5haXl1dWdpXCA7CivlrpfmlZnlm6PkvZMgPCBzaHV1a3lvdWRhbnRhaVwgOwor6YCy6KGM54q25rOBIDwgc2hpbmtvdWpvdWt5b3VcIDsKK+mrmOetieWLleeJqSA8IGtvdXRvdWRvdWJ1dHN1XCA7CivkuIDohrPpo6/lsYsgPCBpY2hpemVubWVzaGl5YVwgOwor5pmC5Luj5bCP6KqsIDwgamlkYWlzaG91c2V0c3VcIDsKK+WGheiovOipsSA8IG5haXNob3ViYW5hc2hpXCA7CivmtbfmtIvmgKfmsJflgJkgPCBrYWl5b3VzZWlraWtvdVwgOwor5puy57ea5bqn5qiZIDwga3lva3VzZW56YWh5b3VcIDsKK+W9k+ipsuS6uueJqSA8IHRvdWdhaWppbmJ1dHN1XCA7CivlpJbosqjmupblgpnpq5ggPCBnYWlrYWp1bmJpZGFrYVwgOwor6KaB5rGC6YCB5L+hIDwgeW91a3l1dXNvdXNoaW5cIDsKK+eZvuS6uuS4gOmmliA8IGh5YWt1bmluJydpc3NodVwgOwor6ZuG5Zuj5qSc6Ki6IDwgc2h1dWRhbmtlbnNoaW5cIDsKK+aXheihjOS7o+eQhuW6lyA8IHJ5b2tvdWRhaXJpdGVuXCA7Civlronlr6fnp6nluo8gPCBhbicnbmVpY2hpdHN1am9cIDsKK+S4i+WUhyA8IHNoaXRha3VjaGliaXJ1XCA7CivmpbXmpb3ps6XoirEgPCBnb2t1cmFrdWNob3VrYVwgOwor5Lit6LaK57Sb5LqJIDwgY2h1dWV0c3VmdW5zb3VcIDsKK+S4gOaLrOizvOWFpSA8IGlra2F0c3Vrb3VueXV1XCA7CivmsJHml4/oh6rmsbogPCBtaW56b2t1amlrZXRzdVwgOwor5YC25qKo5Ly9576F57SL57SLIDwga3VyaWthcmFtb25tb25cIDsKK+ato+mdouaUu+aSgyA8IHNob3VtZW5rb3VnZWtpXCA7CivmlZnogrLnlKPmpa0gPCBreW91aWt1c2FuZ3lvdVwgOwor56m66Kq/6Kit5YKZIDwga3V1Y2hvdXNldHN1YmlcIDsKK+WNmOeLrOWGhemWoyA8IHRhbmRva3VuYWlrYWt1XCA7Civnt5Hnjonnn7MgPCByeW9rdWd5b2t1c2VraVwgOwor5pWZ6IKy5a6f57+SIDwga3lvdWlrdWppc3NodXVcIDsKK+Wwsealreimj+WJhyA8IHNodXVneW91a2lzb2t1XCA7CivmlZnppIrnlarntYQgPCBreW91eW91YmFuZ3VtaVwgOwor5YeN57WQ6LOH55SjIDwgdG91a2V0c3VzaGlzYW5cIDsKK+mbhuWbo+i+suWgtCA8IHNodXVkYW4nJ25vdWpvdVwgOwor5piU5piUIDwgbXVrYXNoaW11a2FzaGlcIDsKK+WRqOi+uuiruOWbvSA8IHNodXVoZW5zaG9rb2t1XCA7Civlm73nsY3mnaHpoIUgPCBrb2t1c2VraWpvdWtvdVwgOwor54++54mp57Wm5LiOIDwgZ2VuYnV0c3VreXV1eW9cIDsKK+S6iOmBuOmAmumBjuiAhSA8IHlvc2VudHN1dWthc2hhXCA7Civosarpm6rlnLDluK8gPCBnb3VzZXRzdWNoaXRhaVwgOwor5rW35Y2D5bGx5Y2DIDwgdW1pc2VuJyd5YW1hc2VuXCA7CivpnanmlrDmlL/lhZogPCBrYWt1c2hpbnNlaXRvdVwgOwor5bCR5pWw5rCR5pePIDwgc2hvdXN1dW1pbnpva3VcIDsKK+WKtOWDjeWNlOe0hCA8IHJvdWRvdWt5b3V5YWt1XCA7Civpm7vmkoPkvZzmiKYgPCBkZW5nZWtpc2FrdXNlblwgOwor6Iad6JOL6aqoIDwgc2hpdHN1Z2Fpa290c3VcIDsKK+Wls+aAp+ino+aUvuirliA8IGpvc2Vpa2FpaG91cm9uXCA7CivohIrpq4TnpZ7ntYwgPCBzZWtpenVpc2hpbmtlaVwgOwor576O6KGT5aSn5a2mIDwgYmlqdXRzdWRhaWdha3VcIDsKK+mBuuS8neWtkOayu+eZgiA8IGlkZW5zaGljaGlyeW91XCA7Civpgbjmip7poIXnm64gPCBzZW50YWt1a291bW9rdVwgOwor6ZaT5o6l6YG45oyZIDwga2Fuc2V0c3VzZW5reW9cIDsKK+iyneauu+i/veaUviA8IGthaWdhcmF0c3VpaG91XCA7CivnvqTnmbrlnLDpnIcgPCBndW5wYXRzdWppc2hpblwgOwor57W25a++5Li7576p6ICFIDwgemV0dGFpc2h1Z2lzaGFcIDsKK+e3iuikjOS4gOeVqiA8IGtpbmtvbicnaWNoaWJhblwgOwor5YWx5ZCM54KK5LqL5aC0IDwga3lvdWRvdXN1aWppYmFcIDsKK+eLrOi6q+iytOaXjyA8IGRva3VzaGlua2l6b2t1XCA7Civnpo/npYnkuovli5nmiYAgPCBmdWt1c2hpamltdXNob1wgOwor56eR5a2m55+l6K2YIDwga2FnYWt1Y2hpc2hpa2lcIDsKK+efs+mDqOmHkeWQiSA8IGlzaGliZWtpbmtpY2hpXCA7CivoirHps6XpoqjmnIggPCBrYWNob3VmdXVnZXRzdVwgOwor5o+Q5Ye65pyf6ZmQIDwgdGVpc2h1dHN1a2lnZW5cIDsKK+S4ieinkuezu+eVsOW4uCA8IHNhbmtha3VrZWlpam91XCA7CivlpKnplbflnLDkuYUgPCB0ZW5jaG91Y2hpa3l1dVwgOwor55m+5LiH6ZW36ICFIDwgaHlha3VtYW5jaG91amFcIDsKK+WvvueXh+eZguazlSA8IHRhaXNob3VyeW91aG91XCA7CivmsLTnlKPoqabpqJPmiYAgPCBzdWlzYW5zaGlrZW5qb1wgOwor5Lit5p6i56We57WMIDwgY2h1dXN1dXNoaW5rZWlcIDsKK+WVhuW3pealreiAhSA8IHNob3Vrb3VneW91c2hhXCA7CivplovnpajpgJ/loLEgPCBrYWloeW91c29rdWhvdVwgOwor5oCn55qE6KGd5YuVIDwgc2VpdGVraXNob3Vkb3VcIDsKK+i7jeS6i+ijgeWIpOaJgCA8IGd1bmppc2FpYmFuc2hvXCA7Civnibnmrormkq7lvbEgPCB0b2t1c2h1c2F0c3VlaVwgOwor6Ly45Ye65omL5b2iIDwgeXVzaHV0c3V0ZWdhdGFcIDsKK+WPsuaWmemkqOWtpiA8IHNoaXJ5b3VrYW5nYWt1XCA7CivnqbrkuK3mpbzplqMgPCBrdXVjaHV1cm91a2FrdVwgOwor6Zqg6YCA6JS154mp6LOHIDwgaW50YWl6b3VidXNzaGlcIDsKK+WwkeW5tOaWh+WtpiA8IHNob3VuZW5idW5nYWt1XCA7Civoqr/mlbTmlLvmkoMgPCBjaG91c2Vpa291Z2VraVwgOwor57K+56We5bm06b2iIDwgc2Vpc2hpbicnbmVucmVpXCA7CivlsYXkuK3oqr/lgZwgPCBreW9jaHV1Y2hvdXRlaVwgOwor56iO5Yil5L6h5qC8IDwgemVpYmV0c3VrYWtha3VcIDsKK+i7jeS6uueUn+a0uyA8IGd1bmppbnNlaWthdHN1XCA7Civnmoflrq7orablr58gPCBrb3VndXVrZWlzYXRzdVwgOwor57KS44CF6L6b6IumIDwgcnl1dXJ5dXVzaGlua3VcIDsKK+adseS6rOWkp+WtpiA8IHRvdWt5b3VkYWlnYWt1XCA7Civlj4LogIPlm7Pmm7jppKggPCBzYW5rb3V0b3Nob2thblwgOwor6IiI5ZGz5rSl5rSlIDwga3lvdW1pc2hpbnNoaW5cIDsKK+eEoee3muWRqOazouaVsCA8IG11c2Vuc2h1dWhhc3V1XCA7CivljYPlrqLkuIfmnaUgPCBzZW5reWFrdWJhbnJhaVwgOwor6YG45oqc6Kmm6aiTIDwgc2VuYmF0c3VzaGlrZW5cIDsKK+iIqui3r+aomeitmCA8IGtvdXJvaHlvdXNoaWtpXCA7Civnt4rmgKXnmbrpgLIgPCBraW5reXV1aGFzc2hpblwgOwor56m65Lit5YaZ55yfIDwga3V1Y2h1dXNoYXNoaW5cIDsKK+WWtualrea0u+WLlSA8IGVpZ3lvdWthdHN1ZG91XCA7CivmlZHmj7TmtLvli5UgPCBreXV1ZW5rYXRzdWRvdVwgOwor5aSp54S256Gd5a2QIDwgdGVuJyduZW5zaG91c2hpXCA7Civkv6HoqJfos4fph5EgPCBzaGludGFrdXNoaWtpblwgOwor5biC5rCR55Sf5rS7IDwgc2hpbWluc2Vpa2F0c3VcIDsKK+mHjei+suS4u+e+qeiAhSA8IGp1dW5vdXNodWdpc2hhXCA7CivkuZflkIjoh6rli5Xou4ogPCBub3JpYWlqaWRvdXNoYVwgOwor57W25a++5qip5YqbIDwgemV0dGFpa2Vucnlva3VcIDsKK+WRqOeroOeLvOeLvSA8IHNodXVzaG91cm91YmFpXCA7CivmsJHml4/lrabogIUgPCBtaW56b2t1Z2FrdXNoYVwgOwor6Iag552A54q25oWLIDwga291Y2hha3Vqb3V0YWlcIDsKK+e0sOiDnumBuuS8neWtpiA8IHNhaWJvdWlkZW5nYWt1XCA7CivpnaLmjqXoqabpqJMgPCBtZW5zZXRzdXNoaWtlblwgOwor5pS/562W5Y2U5a6aIDwgc2Vpc2FrdWt5b3V0ZWlcIDsKK+iyqeWjsuaIpueVpSA8IGhhbmJhaXNlbnJ5YWt1XCA7CivlhazoqK3luILloLQgPCBrb3VzZXRzdWljaGliYVwgOwor5Lq654mp57WM5riIIDwgamluYnV0c3VrZWl6YWlcIDsKK+W/g+eahOeKtuaFiyA8IHNoaW50ZWtpam91dGFpXCA7CivkuJjpmbXlnLDluK8gPCBreXV1cnlvdWNoaXRhaVwgOwor6LaF6Z+z5rOi5rSX5rWEIDwgY2hvdW9ucGFzZW5qb3VcIDsKK+WIkeS6i+iiq+WRiuS6uiA8IGtlaWppaGlrb2t1bmluXCA7Civku67lh7rnjYQgPCBrYXJpc2h1dHN1Z29rdVwgOwor54m55Yil6IG3IDwgdG9rdWJldHN1c2hva3VcIDsKK+e+pOS8neaQrOaZgumWkyA8IGd1bmRlbnBhbmppa2FuXCA7CivnlJ/mtq/mlZnogrIgPCBzaG91Z2Fpa3lvdWlrdVwgOwor5pen57SE5YWo5pu4IDwga3l1dXlha3V6ZW5zaG9cIDsKK+Wkp+agueW9ueiAhSA8IGRhaWtvbicneWFrdXNoYVwgOwor5LiH5bm05paw6YCgIDwgbWFuJyduZW5zaGluem91XCA7CivlgaXlurfkv53pmbrms5UgPCBrZW5rb3Vob2tlbmhvdVwgOwor5bi45Lu755CG5LqL5Zu9IDwgam91bmlucmlqaWtva3VcIDsKK+W6p+mqqOelnue1jCA8IHpha290c3VzaGlua2VpXCA7CivpnZ7ph5HlsZ7lhYPntKAgPCBoaWtpbnpva3VnZW5zb1wgOwor6ZW36ICB5pWZ5LyaIDwgY2hvdXJvdWt5b3VrYWlcIDsKK+mZuOS4iuiHquihm+maiiA8IHJpa3Vqb3VqaWVpdGFpXCA7Civosq/ok4TlgrXliLggPCBjaG9jaGlrdXNhaWtlblwgOwor5q2m5Yqb5LuL5YWlIDwgYnVyeW9rdWthaW55dXVcIDsKK+S/nemZuuWLp+iqmOWToSA8IGhva2Vua2FuJyd5dXVpblwgOwor57K+5a+G56eR5a2mIDwgc2VpbWl0c3VrYWdha3VcIDsKK+engemJhOe3j+mAoyA8IHNoaXRldHN1c291cmVuXCA7CivkvJ3pgIHntYLkuoYgPCBkZW5zb3VzaHV1cnlvdVwgOwor56qS57Sg5Zu65a6a5rOVIDwgY2hpc3Nva290ZWlob3VcIDsKK+iWq+iSuOa2iOavkiA8IGt1bmpvdXNob3Vkb2t1XCA7Civms5Xlvovnm7joq4cgPCBob3VyaXRzdXNvdWRhblwgOwor5Zyw5Z+f6ZaL55m6IDwgY2hpaWtpa2FpaGF0c3VcIDsKK+WbveWGheeUo+alrSA8IGtva3VuYWlzYW5neW91XCA7CivkuIDmiZPpgIbou6IgPCBpY2hpZGFneWFrdXRlblwgOwor5rC055Sf55Sf54mpIDwgc3Vpc2Vpc2VpYnV0c3VcIDsKK+aciee3mumAmuS/oSA8IHl1dXNlbnRzdXVzaGluXCA7Civnm7jlr77mgKfljp/nkIYgPCBzb3V0YWlzZWlnZW5yaVwgOwor576O6KGT5oSb5aW95a62IDwgYmlqdXRzdWFpa291a2FcIDsKK+i1t+aJv+i7oue1kCA8IGtpc2hvdXRlbmtldHN1XCA7Civnianos6rkuLvnvqkgPCBidXNzaGl0c3VzaHVnaVwgOwor5L+h6KiX5Lya56S+IDwgc2hpbnRha3VnYWlzaGFcIDsKK+S4reefs+WZqOaZguS7oyA8IGNodXVzZWtraWppZGFpXCA7CivkuLvnn6XkuLvnvqnogIUgPCBzaHVjaGlzaHVnaXNoYVwgOwor6JqV57O46Kmm6aiT5omAIDwgc2Fuc2hpc2hpa2Vuam9cIDsKK+S4remWk+WVhuS6uiA8IGNodXVrYW5zaG91bmluXCA7CivpnZnpm7vlrrnph48gPCBzZWlkZW4nJ3lvdXJ5b3VcIDsKK+S4rea1geekvuS8miA8IGNodXVyeXV1c2hha2FpXCA7Civnp4Hnq4vmjqLlgbUgPCBzaGlyaXRzdXRhbnRlaVwgOwor5ZG96L6b6L6bIDwgaW5vY2hpZ2FyYWdhcmFcIDsKK+WbveawkeaKleelqCA8IGtva3VtaW50b3VoeW91XCA7CivmnInnvarliKTmsbogPCB5dXV6YWloYW5rZXRzdVwgOwor5by35YyW6aOf5ZOBIDwga3lvdWthc2hva3VoaW5cIDsKK+S8uOe4ruiHquWcqCA8IHNoaW5zaHVrdWppemFpXCA7Civpmbjou43lpKflraYgPCByaWt1Z3VuZGFpZ2FrdVwgOwor6YCa5L+h6YCf5bqmIDwgdHN1dXNoaW5zb2t1ZG9cIDsKK+m7kumHkeWJm+efsyA8IGt1cm9rb25nb3VzZWtpXCA7Civnq4vkvZPlub7kvZXlraYgPCByaXR0YWlraWthZ2FrdVwgOwor5Lit5Zu95Lq66KGXIDwgY2h1dWdva3VqaW5nYWlcIDsKK+WtpuiKuOWkp+WtpiA8IGdha3VnZWlkYWlnYWt1XCA7CivlpKfmsrPlsI/oqqwgPCB0YWlnYXNob3VzZXRzdVwgOwor6YmE6YGT5Lya56S+IDwgdGV0c3Vkb3VnYWlzaGFcIDsKK+mfs+alveW9ouW8jyA8IG9uZ2FrdWtlaXNoaWtpXCA7CivmgKfmoLzliIbmnpAgPCBzZWlrYWt1YnVuc2VraVwgOwor6Lui5YWl5bGKIDwgdGVuJydueXV1dG9kb2tlXCA7CivkuI3li5XnlKPpkZHlrpogPCBmdWRvdXNhbmthbnRlaVwgOwor5Y+X5LuY5L+CIDwgdWtldHN1a2VnYWthcmlcIDsKK+WwseiBt+eOhyA8IHNodXVzaG9rdXJpdHN1XCA7Civnj77ph5Hmm7jnlZkgPCBnZW5raW5rYWtpdG9tZVwgOwor5LyR5oim5p2h57SEIDwga3l1dXNlbmpvdXlha3VcIDsKK+S6jOi2s+WLleeJqSA8IG5pc29rdWRvdWJ1dHN1XCA7Civlv4PnkIblrabnmoQgPCBzaGlucmlnYWt1dGVraVwgOwor5L6D44CF6Kuk6KukIDwga2Fua2FuZ2FrdWdha3VcIDsKK+ebtOe3mumBi+WLlSA8IGNob2t1c2VuJyd1bmRvdVwgOwor5oKq5b6z5paw6IGeIDwgYWt1dG9rdXNoaW5idW5cIDsKK+acquaxuuaLmOeVmSA8IG1pa2V0c3Vrb3VyeXV1XCA7Civlrprph4/liIbmnpAgPCB0ZWlyeW91YnVuc2VraVwgOwor57Wm5paZ6KKLIDwga3l1dXJ5b3VidWt1cm9cIDsKK+e0meWxkeWQjOeEtiA8IGthbWlrdXp1ZG91emVuXCA7CivmuKnlrqTmoL3ln7kgPCBvbnNoaXRzdXNhaWJhaVwgOwor6Yed5bCP5qOS5aSnIDwgc2hpbnNob3Vib3VkYWlcIDsKK+akjeeJqeWtpiA8IHNob2t1YnV0c3VnYWt1XCA7CivlpKrliIDkuozohbAgPCB0YWNoaWZ1dGFrb3NoaVwgOwor6KqN6K2Y5LiN6LazIDwgbmluc2hpa2lidXNva3VcIDsKK+Wbo+S9k+WNlOe0hCA8IGRhbnRhaWt5b3V5YWt1XCA7Civkv6HpoLzlm57lvqkgPCBzaGlucmFpa2FpZnVrdVwgOwor5L+u5a2m5peF6KGMIDwgc2h1dWdha3VyeW9rb3VcIDsKK+mVt+i3nemboumjm+ihjCA8IGNob3VreW9yaWhpa291XCA7CivnrKzkuozmrKHmgKflvrQgPCBkYWluaWppc2VpY2hvdVwgOwor6Zu75rqQ6ZaL55m6IDwgZGVuZ2Vua2FpaGF0c3VcIDsKK+aooeW8j+aomeacrCA8IG1vc2hpa2loeW91aG9uXCA7Civov73ot6Hoqr/mn7sgPCB0c3Vpc2VraWNob3VzYVwgOwor5Ymy5byV5omL5b2iIDwgd2FyaWJpa2l0ZWdhdGFcIDsKK+WPpeani+mAoOaWh+azlSA8IGt1a291em91YnVucG91XCA7Civnm7TmtYHlm57ot68gPCBjaG9rdXJ5dXVrYWlyb1wgOwor6IiI6KGM5oiQ57i+IDwga291Z3lvdXNlaXNla2lcIDsKK+WMl+a0i+a8gealrSA8IGhva3V5b3VneW9neW91XCA7Civlm73mloflrablj7IgPCBrb2t1YnVuZ2FrdXNoaVwgOwor5rC45LmF6ISx5q+bIDwgZWlreXV1ZGF0c3Vtb3VcIDsKK+aOkuWHuuWfuua6liA8IGhhaXNodXRzdWtpanVuXCA7CivntYTogbfmlLnpnakgPCBzb3Nob2t1a2Fpa2FrdVwgOwor6YGO5aSx6Ie05q27IDwga2FzaGl0c3VjaGlzaGlcIDsKK+S6pOmAmuS/oeWPtyA8IGtvdXRzdXVzaGluZ291XCA7Civli5Xnianlrp/pqJMgPCBkb3VidXRzdWppa2tlblwgOwor5rC05LiK6K2m5a+fIDwgc3Vpam91a2Vpc2F0c3VcIDsKK+WKtOS9nOaVmeiCsiA8IHJvdXNha3VreW91aWt1XCA7CivmoLjlu4Pmo4TniakgPCBrYWt1aGFpa2lidXRzdVwgOwor6Y6u6a2C5puy5q2MIDwgY2hpbmtvbmt5b2t1a2FcIDsKK+mdnumJhOmHkeWxniA8IGhpdGV0c3VraW56b2t1XCA7Civlo6vlrpjlgJnoo5znlJ8gPCBzaGlrYW5rb3Vob3NlaVwgOwor5beh5Zue5Zuz5pu46aSoIDwganVua2FpdG9zaG9rYW5cIDsKK+S4ieeZvuS7o+iogCA8IHNhbmJ5YWt1ZGFpZ2VuXCA7CivlvrTlhbXlv4zpgb/ogIUgPCBjaG91aGVpa2loaXNoYVwgOwor5Ye66Ki05pyf6ZmQ5rOVIDwgc2h1c3Nva2lnZW5ob3VcIDsKK+S4reWbveS8neadpSA8IGNodXVnb2t1ZGVucmFpXCA7CivnrYvnhKHlipvnl4cgPCBraW5tdXJ5b2t1c2hvdVwgOwor5rWB6YCa6LOH5pysIDwgcnl1dXRzdXVzaGlob25cIDsKK+epuuWNs+aYr+iJsiA8IGt1dXNva3V6ZXNoaWtpXCA7CivmlZnogrLmlLnpnakgPCBreW91aWt1a2Fpa2FrdVwgOwor5YiH6ZaL5omL6KGTIDwgc2Vra2Fpc2h1anV0c3VcIDsKK+Wkp+WSjOmtgiA8IHlhbWF0b2RhbWFzaGlpXCA7CivkuIvlj7DmiYAgPCBzaGltb2RhaWRva29yb1wgOwor5pWR6K235rS75YuVIDwga3l1dWdva2F0c3Vkb3VcIDsKK+i7jeeUqOi8uOmAgeapnyA8IGd1bicneW91eXVzb3VraVwgOwor5a6j5Lyd5rS75YuVIDwgc2VuZGVua2F0c3Vkb3VcIDsKK+iyoeeUo+ebrumMsiA8IHphaXNhbm1va3Vyb2t1XCA7CivoqIDoqp7lnLDnkIblraYgPCBnZW5nb2NoaXJpZ2FrdVwgOwor5q2j5bi457WC5LqGIDwgc2Vpam91c2h1dXJ5b3VcIDsKK+WJjeaWueW+jOWGhuWisyA8IHplbnBvdWtvdWVuZnVuXCA7Civomavmp5jnqoHotbfngo4gPCBjaHV1eW91dG9ra2llblwgOwor5Lqh5ZG955Sf5rS7IDwgYm91bWVpc2Vpa2F0c3VcIDsKK+WEqui2iuikh+WQiCA8IHl1dWV0c3VmdWt1Z291XCA7CivntJTml6XmnKzlvI8gPCBqdW4nJ25paG9uc2hpa2lcIDsKK+acieW9ouaWh+WMluiyoSA8IHl1dWtlaWJ1bmthemFpXCA7Civml6fnn7PlmajmmYLku6MgPCBreXV1c2Vra2lqaWRhaVwgOwor5omL5b2i5Ymy5byVIDwgdGVnYXRhd2FyaWJpa2lcIDsKK+WLleeJqeW0h+aLnSA8IGRvdWJ1dHN1c3V1aGFpXCA7Civoh6rnlLHmsJHmqKnoq5YgPCBqaXl1dW1pbmtlbnJvblwgOwor5YWx5ZCM5L2P5a6FIDwga3lvdWRvdWp1dXRha3VcIDsKK+acieiii+WLleeJqSA8IHl1dXRhaWRvdWJ1dHN1XCA7CivkuInljYHkuozliIbpn7PnrKYgPCBzYW5qdXVuaWJ1b25wdVwgOwor56C055Sj6KOB5Yik5omAIDwgaGFzYW5zYWliYW5zaG9cIDsKK+S6uui6q+S/neitt+azlSA8IGppbnNoaW5ob2dvaG91XCA7CivooovlsI/ot6/mlocgPCBmdWt1cm9rb3VqaWJ1blwgOwor5pS+5bCE5oCn5YWD57SgIDwgaG91c2hhc2VpZ2Vuc29cIDsKK+eZveeggumdkuadviA8IGhha3VzaGFzZWlzaG91XCA7CivoirHlq4HlvqHlr64gPCBoYW5heW9tZWdvcnlvdVwgOwor5paw6Zmz5Luj6KydIDwgc2hpbmNoaW50YWlzaGFcIDsKK+S4gOWFremKgOihjCA8IGljaGlyb2t1Z2lua291XCA7CivlsLHogbfmlqHml4sgPCBzaHV1c2hva3Vhc3NlblwgOwor6Z6t5q+b6Jmr55eHIDwgYmVubW91Y2h1dXNob3VcIDsKK+e1tuS9k+e1tuWRvSA8IHpldHRhaXpldHN1bWVpXCA7Civnsr7npZ7liIbmnpAgPCBzZWlzaGluYnVuc2VraVwgOwor57O75YiX5Lya56S+IDwga2VpcmV0c3VnYWlzaGFcIDsKK+WIhuWtkOmWk+WKmyA8IGJ1bnNoaWthbnJ5b2t1XCA7CivkvIHmpa3miKbnlaUgPCBraWd5b3VzZW5yeWFrdVwgOwor5Zu95rCR5omA5b6XIDwga29rdW1pbnNob3Rva3VcIDsKK+i8uOWHuuWItumZkCA8IHl1c2h1dHN1c2VpZ2VuXCA7Civnibnlrprpipjmn4QgPCB0b2t1dGVpbWVpZ2FyYVwgOwor6LKh5YuZ5L2T6LOqIDwgemFpbXV0YWlzaGl0c3VcIDsKK+itpuWvn+WtpuagoSA8IGtlaXNhdHN1Z2Fra291XCA7CivkuI3ms5XkvrXlhaUgPCBmdWhvdXNoaW4nJ255dXVcIDsKK+WwseiBt+WPoyA8IHNodXVzaG9rdWd1Y2hpXCA7CivnlJ/mtLvoqK3oqIggPCBzZWlrYXRzdXNla2tlaVwgOwor5o2V6Jmc5Y+O5a655omAIDwgaG9yeW9zaHV1eW91am9cIDsKK+i7veiWhOefreWwjyA8IGtlaWhha3V0YW5zaG91XCA7CivnrpfooZPlubPlnYcgPCBzYW5qdXRzdWhlaWtpblwgOwor5Y2z5bit5paZ55CGIDwgc29rdXNla2lyeW91cmlcIDsKK+eJqeeQhueZguazlSA8IGJ1dHN1cmlyeW91aG91XCA7CivnlJ/oqIjosrvmjIfmlbAgPCBzZWlrZWloaXNoaXN1dVwgOwor6Z2S6YW45Lit5q+SIDwgc2Vpc2FuY2h1dWRva3VcIDsKK+Wul+aVmeazleS6uiA8IHNodXVreW91aG91amluXCA7CivlhpnnnJ/mpI3lrZcgPCBzaGFzaGluc2hva3VqaVwgOwor57eK57iu6LKh5pS/IDwga2luc2h1a3V6YWlzZWlcIDsKK+WNmOaAp+eUn+auliA8IHRhbnNlaXNlaXNob2t1XCA7Civlm73kvJrlm7Pmm7jppKggPCBrb2trYWl0b3Nob2thblwgOwor6auY562J55Sf54mpIDwga291dG91c2VpYnV0c3VcIDsKK+mrmOetieW8geWLmeWumCA8IGtvdXRvdWJlbm11a2FuXCA7CivmmYLplpPpoIbluo/nqY0gPCBqaWthbmp1bmpvc2VraVwgOwor5L+d6Ki854mb5LmzIDwgaG9zaG91Z3l1dW55dXVcIDsKK+eti+iCieizqiA8IGtpbicnbmlrdXNoaXRzdVwgOwor5Yqb5LuV5LqLIDwgY2hpa2FyYXNoaWdvdG9cIDsKK+WPl+iDjuiqv+evgCA8IGp1dGFpY2hvdXNldHN1XCA7CivlnLDnkIPmuKnmmpbljJYgPCBjaGlreXV1b25kYW5rYVwgOwor6YCP5p6Q55mC5rOVIDwgdG91c2VraXJ5b3Vob3VcIDsKK+mdnuW4uOWLpOism+W4qyA8IGhpam91a2lua291c2hpXCA7Civlq6Hlh7rlrZAgPCBjaGFrdXNodXRzdXNoaVwgOwor5oSf6Kaa56We57WMIDwga2Fua2FrdXNoaW5rZWlcIDsKK+iHquWLlei7iuWtpuagoSA8IGppZG91c2hhZ2Fra291XCA7CivnqI7ph5Hpgb/pm6PlnLAgPCB6ZWlraW5oaW5hbmNoaVwgOwor5Lq66YGT55qE5o+05YqpIDwgamluZG91dGVraWVuam9cIDsKK+WwgumWgOefpeitmCA8IHNlbm1vbmNoaXNoaWtpXCA7Civou43mi6Hnq7bkuokgPCBndW5rYWt1a3lvdXNvdVwgOwor54mH6KKW5py6IDwga2F0YXNvZGVkenVrdWVcIDsKK+eZu+WgtOS6uueJqSA8IHRvdWpvdWppbmJ1dHN1XCA7CivmtojosrvogIXpgYvli5UgPCBzaG91aGlzaGF1bmRvdVwgOwor6Z2e54++5a6f55qEIDwgaGlnZW5qaXRzdXRla2lcIDsKK+mAhuaAp+efs+m5uCA8IGd5YWt1c2Vpc2Vra2VuXCA7CivlirTlg43ln7rmupbms5UgPCByb3Vkb3VraWp1bmhvdVwgOwor5bm96ZaA54ut56qEIDwgeXV1bW9ua3lvdXNha3VcIDsKK+mAo+mCpuW9k+WxgCA8IHJlbnBvdXRvdWt5b2t1XCA7Civnm7TlsITml6XlhYkgPCBjaG9rdXNoYW5pa2tvdVwgOwor5YWI5Lu75bCG5qChIDwgc2VuJyduaW5zaG91a291XCA7CivorLnljrPlrp/nm7QgPCBraW5nZW5qaXRjaG9rdVwgOwor5ryi5a2X5Yi26ZmQ6KuWIDwga2FuamlzZWlnZW5yb25cIDsKK+W6l+mgreWPluW8lSA8IHRlbnRvdXRvcmloaWtpXCA7CivljZLmpa3lvI8gPCBzb3RzdWd5b3VzaGlraVwgOwor55m65aOy56aB5q2iIDwgaGF0c3ViYWlraW5zaGlcIDsKK+WTgeizqueuoeeQhiA8IGhpbnNoaXRzdWthbnJpXCA7Civnt6jlhaXoqabpqJMgPCBoZW4nJ255dXVzaGlrZW5cIDsKK+S8nemBlOmWouaVsCA8IGRlbnRhdHN1a2Fuc3V1XCA7CivlsL3lv6DloLHlm70gPCBqaW5jaHV1aG91a29rdVwgOwor5Yq05L2/5Y2U6Kq/IDwgcm91c2hpa3lvdWNob3VcIDsKK+WRqOazouaVsOWBj+enuyA8IHNodXVoYXN1dWhlbicnaVwgOwor55m+6Imy55y86Y+hIDwgaHlha3Vpcm9tZWdhbmVcIDsKK+S4reaAp+WtkOadnyA8IGNodXVzZWlzaGlzb2t1XCA7CivnhKHliLbpmZDosr/mmJMgPCBtdXNlaWdlbmJvdWVraVwgOwor57eK5oCl5a++562WIDwga2lua3l1dXRhaXNha3VcIDsKK+WNsOWIt+aKgOihkyA8IGluc2F0c3VnaWp1dHN1XCA7CivmrKHlhYPmraPliYfljJYgPCBqaWdlbnNlaXNva3VrYVwgOwor5b+D55qE6KGo56S6IDwgc2hpbnRla2loeW91amlcIDsKK+WFiemAmuS/oSA8IGhpa2FyaXRzdXVzaGluXCA7CivlkI3miYDml6fot6EgPCBtZWlzaG9reXV1c2VraVwgOwor5oqV6LOH5L+h6KiXIDwgdG91c2hpc2hpbnRha3VcIDsKK+S6uuWQjeeUqOa8ouWtlyA8IGppbm1laXlvdWthbmppXCA7CivmlrDpn5Plm73lhZogPCBzaGlua2Fua29rdXRvdVwgOwor5Zu96Zqb5p2h57SEIDwga29rdXNhaWpvdXlha3VcIDsKK+S4g+WgguS8veiXjSA8IHNoaWNoaWRvdWdhcmFuXCA7Civopqrml4/plqLkv4IgPCBzaGluem9rdWthbmtlaVwgOwor5b6B5aS35aSn5bCG6LuNIDwgc2VpaXRhaXNob3VndW5cIDsKK+WCmOW9oueijeWtkCA8IGthc2FnYXRhZ2Fpc2hpXCA7CivnlKPmpa3kuojlgpnou40gPCBzYW5neW91eW9iaWd1blwgOwor5oKq5ryi5bCP6KqsIDwgYWtrYW5zaG91c2V0c3VcIDsKK+WIqeWtkOW5s+ihoeeojiA8IHJpc2hpaGVpa291emVpXCA7CivnhKHku7vmiYDlpKfoh6MgPCBtdW5pbnNob2RhaWppblwgOwor5YWs5pW15LiA5Y+3IDwga291dGVraWljaGlnb3VcIDsKK+awtOizquaxmua/gSA8IHN1aXNoaXRzdW9kYWt1XCA7Civnsr7npZ7nmYLms5UgPCBzZWlzaGlucnlvdWhvdVwgOwor5Y+W57eg5rOVIDwgdG9yaXNoaW1hcmlob3VcIDsKK+iMq+eEtuiHquWksSA8IGJvdXplbmppc2hpdHN1XCA7CivlnLDos6rmmYLku6MgPCBjaGlzaGl0c3VqaWRhaVwgOwor56uL5YWl56aB5q2iIDwgdGFjaGlpcmlraW5zaGlcIDsKK+Wkp+WQjOWbo+e1kCA8IGRhaWRvdWRhbmtldHN1XCA7Civkuozph43nm7LmpJzms5UgPCBuaWp1dW1vdWtlbmhvdVwgOwor6LKv6YeR6YCa5bizIDwgY2hva2ludHN1dWNob3VcIDsKK+aWjuaIkuaykOa1tCA8IHNhaWthaW1va3V5b2t1XCA7CivmlrDliLblpKflraYgPCBzaGluc2VpZGFpZ2FrdVwgOwor5YWx5ZCM6LKs5Lu7IDwga3lvdWRvdXNla2luaW5cIDsKK+aWsOiBnueZuuihqCA8IHNoaW5idW5oYXBweW91XCA7Civou4rlhoXmlLnmnK0gPCBzaGFuYWlrYWlzYXRzdVwgOwor6Ieq6LOg6LKs5L+d6Zm6IDwgamliYWlzZWtpaG9rZW5cIDsKK+aYhuiZq+WtpuiAhSA8IGtvbmNodXVnYWt1c2hhXCA7CivpgIDogbflubTph5EgPCB0YWlzaG9rdW5lbmtpblwgOwor5YiG5Ymy57Wx5rK7IDwgYnVua2F0c3V0b3VjaGlcIDsKK+eiuueOh+mBjueoiyA8IGtha3VyaXRzdWthdGVpXCA7Civph43ngq3phbjmm7npgZQgPCBqdXV0YW5zYW5zb3VkYVwgOwor56CU56m255m66KGoIDwga2Vua3l1dWhhcHB5b3VcIDsKK+aXp+e0hOiBluabuCA8IGt5dXV5YWt1c2Vpc2hvXCA7CivmiYvooZPlrqQgPCBzaHVqdXRzdXNoaXRzdVwgOwor6JKy6Ym+5YW16IiOIDwga2FtYWJva29oZWlzaGFcIDsKK+e1jOiyu+evgOe0hCA8IGtlaWhpc2V0c3V5YWt1XCA7CivnrYvokI7nuK7nl4cgPCBraW4nJ2lzaHVrdXNob3VcIDsKK+WEqueUn+aJi+ihkyA8IHl1dXNlaXNodWp1dHN1XCA7CivlhazlhbHmlpnph5EgPCBrb3VreW91cnlvdWtpblwgOwor5by35Yi25Lit5patIDwga3lvdXNlaWNodXVkYW5cIDsKK+S4h+acieW8leWKmyA8IGJhbicneXV1aW5yeW9rdVwgOwor56uL5aSq5a2Q5byPIDwgcml0dGFpc2hpc2hpa2lcIDsKK+aXpeWGheWRqOacnyA8IG5pY2hpbmFpc2h1dWtpXCA7CivmhrLms5Xop6Pph4ggPCBrZW5wb3VrYWlzaGFrdVwgOwor6ZW36Led6Zui6Zu76KmxIDwgY2hvdWt5b3JpZGVud2FcIDsKK+e+jueahOeUn+a0uyA8IGJpdGVraXNlaWthdHN1XCA7Civlm6PkvZPlibLlvJUgPCBkYW50YWl3YXJpYmlraVwgOwor5Zu96Zqb5Lqk5rWBIDwga29rdXNhaWtvdXJ5dXVcIDsKK+ippuedgOWupCA8IHNoaWNoYWt1c2hpdHN1XCA7CivlhqDnirbpnZnohIggPCBrYW5qb3Vqb3VteWFrdVwgOwor6YCG5LiJ6KeS5b2iIDwgZ3lha3VzYW5rYWtrZWlcIDsKK+ikh+mbkeaAquWlhyA8IGZ1a3V6YXRzdWthaWtpXCA7CivpgbrkvJ3lrZDlt6XlraYgPCBpZGVuc2hpa291Z2FrdVwgOwor6auY5bGk5bu656+JIDwga291c291Z2VuY2hpa3VcIDsKK+S4jeWPr+iDvemBuOaKniA8IGZ1a2Fub3VzZW50YWt1XCA7CivnnJ/nj6DppIrmrpYgPCBzaGluanV5b3VzaG9rdVwgOwor55Sz5ZGK55So57SZIDwgc2hpbmtva3V5b3VzaGlcIDsKK+WxgOWcsOaIpuS6iSA8IGt5b2t1Y2hpc2Vuc291XCA7CivniIbnmbrniakgPCBiYWt1aGF0c3VidXRzdVwgOwor6YeN6KaB5Lq654mpIDwganV1eW91amluYnV0c3VcIDsKK+a0u+eJiOWNsOWItyA8IGthcHBhbicnaW5zYXRzdVwgOwor6YCj5pel6YCj5aScIDwgcmVuaml0c3VyZW4nJ3lhXCA7CivkuInogIXlr77nq4sgPCBzYW5zaGF0YWlyaXRzdVwgOwor5rGC5aa75bqD5ZGKIDwga3l1dXNhaWtvdWtva3VcIDsKK+eLguiogOiHquauuiA8IGt5b3VnZW5qaXNhdHN1XCA7CivnjKrmrabogIUgPCBpbm9zaGlzaGltdXNoYVwgOwor5oCn5p+T6Imy5L2TIDwgc2Vpc2Vuc2hva3V0YWlcIDsKK+WHuOeJiOWNsOWItyA8IHRvcHBhbicnaW5zYXRzdVwgOwor5Yi66Lqr5YyF5LiBIDwgc2FzaGltaWJvdWNob3VcIDsKK+aXpeexs+iyv+aYkyA8IG5pY2hpYmVpYm91ZWtpXCA7Civlj6Xmp4vpgKDopo/liYcgPCBrdWtvdXpvdWtpc29rdVwgOwor5omL5b2i5Lqk5o+b5omAIDwgdGVnYXRha291a2Fuam9cIDsKK+i7jeS6i+WNlOWKmyA8IGd1bmppa3lvdXJ5b2t1XCA7CivlpKfpu5Lmn7EgPCBkYWlrb2t1YmFzaGlyYVwgOwor5qW16ZmQ54q25oWLIDwga3lva3VnZW5qb3V0YWlcIDsKK+eJqeeQhuePvuixoSA8IGJ1dHN1cmlnZW5zaG91XCA7CivlnLDmlrnoh6rmsrvkvZMgPCBjaGlob3VqaWNoaXRhaVwgOwor5Lq66Lqr5pS75pKDIDwgamluc2hpbmtvdWdla2lcIDsKK+iomOaGtuWWquWksSA8IGtpb2t1c291c2hpdHN1XCA7CivkuI3opo/liYfli5XoqZ4gPCBmdWtpc29rdWRvdXNoaVwgOwor56S+5Lya56ep5bqPIDwgc2hha2FpY2hpdHN1am9cIDsKK+WujOWFqOS4u+e+qeiAhSA8IGthbnplbnNodWdpc2hhXCA7CivmuJvkvqHlhJ/ljbQgPCBnZW5rYXNob3VreWFrdVwgOwor6Y6W5bi35a2QIDwga3VzYXJpa2F0YWJpcmFcIDsKK+epuuS4reafu+WvnyA8IGt1dWNodXVzYXNhdHN1XCA7CivntKDkurroip3lsYUgPCBzaGlyb3V0b3NoaWJhaVwgOwor5LiA5YWt5Yud6LKgIDwgaWNoaXJva3VzaG91YnVcIDsKK+S6pOmfv+alveWboyA8IGtvdWt5b3VnYWt1ZGFuXCA7CivooYDmtrLpioDooYwgPCBrZXRzdWVraWdpbmtvdVwgOwor5ZWG5ZOB5Zyo6auYIDwgc2hvdWhpbnphaWRha2FcIDsKK+eJqeeQhuWtpuiAhSA8IGJ1dHN1cmlnYWt1c2hhXCA7CivkuI3our7ogIUgPCBidXNoaXRzdWtlbW9ub1wgOwor5bm055m+5bm05LitIDwgbmVuYnlha3VuZW5qdXVcIDsKK+aeneiRieacq+evgCA8IHNoaXlvdW1hc3NldHN1XCA7Civou43pmornlJ/mtLsgPCBndW50YWlzZWlrYXRzdVwgOwor5q+U6LyD55qE5bCPIDwgaGlrYWt1dGVraXNob3VcIDsKK+ani+aIkOe0oOani+mAoCA8IGtvdXNlaXNva291em91XCA7CivmvZzlnKjog73lipsgPCBzZW56YWlub3VyeW9rdVwgOwor5bel5a2m5Y2a5aOrIDwga291Z2FrdWhha3VzaGlcIDsKK+acieWEn+Wlkee0hCA8IHl1dXNob3VrZWl5YWt1XCA7CivmlrDogZ7luoPlkYogPCBzaGluYnVua291a29rdVwgOwor5LiK57Sa5pu56ZW3IDwgam91a3l1dXNvdWNob3VcIDsKK+S5seiouuS5seeZgiA8IHJhbnNoaW5yYW5yeW91XCA7CivovInosqjlkIPmsLTnt5ogPCBzYWlrYWtpc3N1aXNlblwgOwor6ZuG5ZCI5L2P5a6FIDwgc2h1dWdvdWp1dXRha3VcIDsKK+W+oemjn+S6i+WHpiA8IG9zaG9rdWppZG9rb3JvXCA7CivppIrmrpbnnJ/nj6AgPCB5b3VzaG9rdXNoaW5qdVwgOwor5YaF6YOo5ZGK55m6IDwgbmFpYnVrb2t1aGF0c3VcIDsKK+WQjeebruizg+mHkSA8IG1laW1va3VjaGluZ2luXCA7CivkuInoibLoj6sgPCBzYW5zaG9rdXN1bWlyZVwgOwor55u45a++5rm/5bqmIDwgc291dGFpc2hpdHN1ZG9cIDsKK+WtpuagoeeUn+a0uyA8IGdha2tvdXNlaWthdHN1XCA7CivlhaXlm73mn7voqLwgPCBueXV1a29rdXNhc2hvdVwgOwor6Ieq5b6L56We57WMIDwgamlyaXRzdXNoaW5rZWlcIDsKK+awtOmKgOa4qeW6puioiCA8IHN1aWdpbicnb25kb2tlaVwgOwor5aeJ5qeY5Lq65b2iIDwgYW5lc2FtYW5pbmd5b3VcIDsKK+ihneaSg+mWouaVsCA8IHNob3VnZWtpa2Fuc3V1XCA7Civlt6foqIDku6ToibIgPCBrb3VnZW5yZWlzaG9rdVwgOwor5aSJ5rip5YuV54mpIDwgaGVuJydvbmRvdWJ1dHN1XCA7CivmlbDnkIboq5bnkIblraYgPCBzdXVyaXJvbnJpZ2FrdVwgOwor5Y6f5aeL5YuV54mpIDwgZ2Vuc2hpZG91YnV0c3VcIDsKK+epuumWk+iKuOihkyA8IGt1dWthbmdlaWp1dHN1XCA7CivnmoflpKrlrZDmrr/kuIsgPCBrb3V0YWlzaGlkZW5rYVwgOwor5Ye65Yqb57eaIDwgc2h1dHN1cnlva3VzZW5cIDsKK+mWi+W6l+S8kealrSA8IGthaXRlbmt5dXVneW91XCA7CivlqK/mpb3mlr3oqK0gPCBnb3Jha3VzaGlzZXRzdVwgOwor5Y2K5rC45LmF55qEIDwgaGFuJydlaWt5dXV0ZWtpXCA7Civnp4Hnq4sgPCB3YXRha3VzaGlyaXRzdVwgOwor5oim5LqJ5pyq5Lqh5Lq6IDwgc2Vuc291bWlib3VqaW5cIDsKK+mjn+ezp+S6i+aDhSA8IHNob2t1cnlvdWppam91XCA7Civlj6/pgIblj43lv5wgPCBrYWd5YWt1aGFuJydub3VcIDsKK+egtOeUo+euoeiyoeS6uiA8IGhhc2Fua2FuemFpbmluXCA7CivnibnliKXkvJrlk6EgPCB0b2t1YmV0c3VrYWlpblwgOwor5q275rS75ZWP6aGMIDwgc2hpa2F0c3Vtb25kYWlcIDsKK+ezu+e1seelnuWtpiA8IGtlaXRvdXNoaW5nYWt1XCA7Civou5/pqqjprZrpoZ4gPCBuYW5rb3RzdWd5b3J1aVwgOwor5ZCE5Lq65ZCE5qeYIDwga2FrdWppbmtha3V5b3VcIDsKK+mAmuS/oeS6i+alrSA8IHRzdXVzaGluamlneW91XCA7CivljZTlrprkuJbnlYzmmYIgPCBreW91dGVpc2VrYWlqaVwgOwor6LK/5piT6Zqc5aOBIDwgYm91ZWtpc2hvdWhla2lcIDsKK+WNmOS4gOmAmuiyqCA8IHRhbicnaXRzdXRzdXVrYVwgOwor5Y2D5Lih5b256ICFIDwgc2VucnlvdXlha3VzaGFcIDsKK+WIsOedgOaZguWIuyA8IHRvdWNoYWt1amlrb2t1XCA7CivmtbfkuIrkv53lronluoEgPCBrYWlqb3Vob2FuY2hvdVwgOwor5qaC566X6KaB5rGCIDwgZ2Fpc2FuJyd5b3VreXV1XCA7CivniIbnmbrlipsgPCBiYWt1aGF0c3VyeW9rdVwgOwor5Zu95rCR5bm06YeRIDwga29rdW1pbicnbmVua2luXCA7Civms6XmsLTnqLzmpa0gPCBkb3JvbWl6dWthZ3lvdVwgOwor54m555Ww5YCk5YiG6KejIDwgdG9rdWljaGlidW5rYWlcIDsKK+WcqOaXpeexs+i7jSA8IHphaW5pY2hpYmVpZ3VuXCA7CivotorlooPlhaXlraYgPCBla2t5b3VueXV1Z2FrdVwgOwor5rCR5Za25YyW5LyB5qWtIDwgbWluJydlaWtha2lneW91XCA7CivmlbDnkIblk7LlraYgPCBzdXVyaXRldHN1Z2FrdVwgOwor5ZSv54mp5Y+y6KazIDwgeXVpYnV0c3VzaGlrYW5cIDsKK+WVhualreWtpuagoSA8IHNob3VneW91Z2Fra291XCA7Civlt6blpKfmi6zlvKcgPCBoaWRhcmlkYWlrYWtrb1wgOwor5rCR5peP57K+56WeIDwgbWluem9rdXNlaXNoaW5cIDsKK+Wun+WKm+ihjOeCuiA8IGppdHN1cnlva3Vrb3VpXCA7CivlpKfopb/mtIvmqKrmlq0gPCB0YWlzZWl5b3VvdWRhblwgOwor5rW357a/5YuV54mpIDwga2FpbWVuZG91YnV0c3VcIDsKK+exs+i7jeWFteWKmyA8IGJlaWd1bmhlaXJ5b2t1XCA7CivnnYDkv6HlsYAgPCBjaGFrdXNoaW5reW9rdVwgOwor5Lq65bel6YG/5aaK5rOVIDwgamlua291aGluaW5ob3VcIDsKK+WwseWtpuW5tOm9oiA8IHNodXVnYWt1bmVucmVpXCA7CivpibHnianos4fmupAgPCBrb3VidXRzdXNoaWdlblwgOwor6Luf5byP6YeO55CDIDwgbmFuc2hpa2l5YWt5dXVcIDsKK+S/oeiol+e1seayuyA8IHNoaW50YWt1dG91Y2hpXCA7CivntYzmuIjmtLvli5UgPCBrZWl6YWlrYXRzdWRvdVwgOwor5YW15byP5L2T5pONIDwgaGVpc2hpa2l0YWlzb3VcIDsKK+mtmue+pOaOouefpeapnyA8IGd5b2d1bnRhbmNoaWtpXCA7CivnlJ/mrpbntLDog54gPCBzZWlzaG9rdXNhaWJvdVwgOwor5Zyw5b2i5ris6YePIDwgY2hpa2Vpc29rdXJ5b3VcIDsKK+WVhualreizh+acrCA8IHNob3VneW91c2hpaG9uXCA7CivpgYrpm6Lln7rlj43lv5wgPCB5dXVyaWtpaGFuJydub3VcIDsKK+Wwj+eUsOWOn+ipleWumiA8IG9kYXdhcmFoeW91am91XCA7CivmlbDlgKTnm67mqJkgPCBzdXVjaGltb2t1aHlvdVwgOwor6aiS6Z+z6Ziy5q2i5rOVIDwgc291b25ib3VzaGlob3VcIDsKK+S4gOW+l+S4gOWksSA8IGl0dG9rdWlzc2hpdHN1XCA7CivpgJrkv6Hosqnlo7IgPCB0c3V1c2hpbmhhbmJhaVwgOwor5by35Yi25Z+36KGMIDwga3lvdXNlaXNoaWtrb3VcIDsKK+W5u+immueXh+eKtiA8IGdlbmtha3VzaG91am91XCA7Civmh5DliIAgPCBmdXRva29yb2dhdGFuYVwgOwor55aR5ZWP5Luj5ZCN6KmeIDwgZ2ltb25kYWltZWlzaGlcIDsKK+WMl+mZuOWcsOaWuSA8IGhva3VyaWt1Y2hpaG91XCA7CivlibLlvJXnmbrooYwgPCB3YXJpYmlraWhha2tvdVwgOwor5bqD5aCx5rS75YuVIDwga291aG91a2F0c3Vkb3VcIDsKK+WxsemrmOW4veWtkCA8IHlhbWF0YWthYm91c2hpXCA7Civmn5PoibLlt6XloLQgPCBzZW5zaG9rdWtvdWpvdVwgOwor5YWs5byP6Kiq5ZWPIDwga291c2hpa2lob3Vtb25cIDsKK+aOkuWHuueJqSA8IGhhaXNodXRzdWJ1dHN1XCA7Civnt4/lkIjplovnmbogPCBzb3Vnb3VrYWloYXRzdVwgOwor6YCj56uL5pS/5qipIDwgcmVucml0c3VzZWlrZW5cIDsKK+W3ruWIpeihqOePviA8IHNhYmV0c3VoeW91Z2VuXCA7CivmqKnlipvpl5jkuokgPCBrZW5yeW9rdXRvdXNvdVwgOwor55u45a++5oCn55CG6KuWIDwgc291dGFpc2Vpcmlyb25cIDsKK+ijveWTgeaIpueVpSA8IHNlaWhpbnNlbnJ5YWt1XCA7CivliIbmsLTlsbHohIggPCBidW5zdWlzYW5teWFrdVwgOwor6YW45YyW6Ziy5q2i5YmkIDwgc2Fua2Fib3VzaGl6YWlcIDsKK+esrOS6jOasoeeUo+alrSA8IGRhaW5pamlzYW5neW91XCA7CivpibHnianos6ogPCBrb3VidXRzdXNoaXRzdVwgOwor5pyJ5qmf5aGp5rq25aqSIDwgeXV1a2llbicneW91YmFpXCA7Civoqpjpm7vmraPmjqUgPCB5dXVkZW5zZWlzZXRzdVwgOwor55+l6Kaa56We57WMIDwgY2hpa2FrdXNoaW5rZWlcIDsKK+mAkOadoeWvqeitsCA8IGNoaWt1am91c2hpbmdpXCA7CivljYPls7bliJfls7YgPCBjaGlzaGltYXJldHRvdVwgOwor6Ly45Ye66LaF6YGOIDwgeXVzaHV0c3VjaG91a2FcIDsKK+mbu+WtkOioiOeul+apnyA8IGRlbnNoaWtlaXNhbmtpXCA7CivlsIrnjovoqI7luZUgPCBzb24nJ25vdXRvdWJha3VcIDsKK+aIpumXmOeKoOeJsuiAhSA8IHNlbnRvdWdpc2Vpc2hhXCA7Civmg4XloLHpgJrkv6EgPCBqb3Vob3V0c3V1c2hpblwgOwor5oyv5Ye65bGAIDwgZnVyaWRhc2hpa3lva3VcIDsKK+awkemWk+iIquepuuapnyA8IG1pbmthbmtvdWt1dWtpXCA7CivotoXotorkuqTku6MgPCBjaG91ZXRzdWtvdXRhaVwgOwor5Y+N5oim5Li7576p6ICFIDwgaGFuc2Vuc2h1Z2lzaGFcIDsKK+eUn+a0u+epuumWkyA8IHNlaWthdHN1a3V1a2FuXCA7CivliY3nq4vohbrngo4gPCB6ZW5yaXRzdXNlbicnZW5cIDsKK+Wft+WLmeWupCA8IHNoaXRzdW11c2hpdHN1XCA7CivooYzmlL/mlLnpnakgPCBneW91c2Vpa2Fpa2FrdVwgOwor5b6L5Luk5Zu95a62IDwgcml0c3VyeW91a29ra2FcIDsKK+W/g+mciuePvuixoSA8IHNoaW5yZWlnZW5zaG91XCA7CivnlJ/oqpXnmb7lubQgPCBzZWl0YW5oeWFrdW5lblwgOwor6Ieq5YuV552A5L+hIDwgamlkb3VjaGFrdXNoaW5cIDsKK+eZuueGsemHjyA8IGhhdHN1bmV0c3VyeW91XCA7CivnrKzkuInli6LlipsgPCBkYWlzYW5zZWlyeW9rdVwgOwor5aSn5YWr6LuKIDwgZGFpaGFjaGlndXJ1bWFcIDsKK+abuOeVmemDteS+vyA8IGtha2l0b21leXV1YmluXCA7CivoprPlhYnmoYjlhoXmiYAgPCBrYW5rb3VhbicnbmFpam9cIDsKK+efpeitmOS9k+ezuyA8IGNoaXNoaWtpdGFpa2VpXCA7Civpm4blkIjoqJjov7AgPCBzaHV1Z291a2lqdXRzdVwgOwor5LiJ55m+6Ku45L6vIDwgc2FuYnlha3VzaG9rb3VcIDsKK+mrmOm9ouWMluekvuS8miA8IGtvdXJlaWthc2hha2FpXCA7CivoqJjlj7foq5bnkIblraYgPCBraWdvdXJvbnJpZ2FrdVwgOwor5aSn6KGG5paH5a2mIDwgdGFpc2h1dWJ1bmdha3VcIDsKK+S4reetieaVmeiCsiA8IGNodXV0b3VreW91aWt1XCA7CivmlZnogrLooYzmlL8gPCBreW91aWt1Z3lvdXNlaVwgOwor55u05o6l55qEIDwgY2hva3VzZXRzdXRla2lcIDsKK+atpuijheS4reeriyA8IGJ1c291Y2h1dXJpdHN1XCA7CivlubPlkozljZTlipsgPCBoZWl3YWt5b3VyeW9rdVwgOwor5oyH5ZCN5omL6YWN5Lq6IDwgc2hpbWVpdGVoYWlqaW5cIDsKK+mbu+mJhOS8muekviA8IGRlbnRldHN1Z2Fpc2hhXCA7Civoh6rou6Lou4rml4XooYwgPCBqaXRlbnNoYXJ5b2tvdVwgOwor5Ye65bit5pel5pWwIDwgc2h1c3Nla2luaXNzdXVcIDsKK+ecjOeri+eXhemZoiA8IGtlbnJpdHN1YnlvdWluXCA7CivlubPlnYflpKrpmb3mmYIgPCBoZWlraW50YWl5b3VqaVwgOwor5YGP5peB5Yag6ISaIDwgaGVuYm91a2Fua3lha3VcIDsKK+Wlveawl+aAp+e0sOiPjCA8IGtvdWtpc2Vpc2Fpa2luXCA7Civosqnlo7Lkv4PpgLIgPCBoYW5iYWlzb2t1c2hpblwgOwor5L+h6KiX5oqV6LOHIDwgc2hpbnRha3V0b3VzaGlcIDsKK+mbu+azouacm+mBoOmPoSA8IGRlbnBhYm91ZW5reW91XCA7CivkuK3lsI/kvIHmpa0gPCBjaHV1c2hvdWtpZ3lvdVwgOwor5LiJ6KGM5bqD5ZGKIDwgc2FuZ3lvdWtvdWtva3VcIDsKK+ihgOa2suW+queSsCA8IGtldHN1ZWtpanVua2FuXCA7CivpgKPntZDmsbrnrpcgPCByZW5rZXRzdWtlc3NhblwgOworzrjnkIboq5YgPCBzaGlcIMyEdGFcIMyEcmlyb25cIDsKK+aUueacremLjyA8IGthaXNhdHN1aGFzYW1pXCA7Civpqqjou5/ljJbnl4cgPCBrb3RzdW5hbmthc2hvdVwgOwor5Yq05YON6YGL5YuV6ICFIDwgcm91ZG91dW5kb3VzaGFcIDsKK+aUv+ayu+WTsuWtpiA8IHNlaWppdGV0c3VnYWt1XCA7CivllYbmpa3mlL7pgIEgPCBzaG91Z3lvdWhvdXNvdVwgOwor5Zu96Ziy57eP55yBIDwga29rdWJvdXNvdXNob3VcIDsKK+eUn+a0u+aMh+WwjiA8IHNlaWthdHN1c2hpZG91XCA7Civngo7nhrHlnLDnjYQgPCBlbicnbmV0c3VqaWdva3VcIDsKK+WFq+mdoueOsueTjyA8IGhhY2hpbWVucmVpcm91XCA7CivpnaLkvJrorJ3ntbYgPCBtZW5rYWlzaGF6ZXRzdVwgOwor6YGT6Lev5qiZ6K2YIDwgZG91cm9oeW91c2hpa2lcIDsKK+WbveWWtumAmuS/oSA8IGtva3VlaXRzdXVzaGluXCA7CivpnIfngb3oqJjlv7Xml6UgPCBzaGluc2Fpa2luZW5iaVwgOwor6YGp5p2Q6YGp5omAIDwgdGVraXphaXRla2lzaG9cIDsKK+WKh+eXh+iCneeCjiA8IGdla2lzaG91a2FuJydlblwgOwor54mp5oOF6aiS54S2IDwgYnV0c3Vqb3Vzb3V6ZW5cIDsKK+W/nea2mSA8IGthdGFqaWtlbmFtaWRhXCA7CivlhazmsJHnlJ/mtLsgPCBrb3VtaW5zZWlrYXRzdVwgOwor5YWl5a2m6Kmm6aiTIDwgbnl1dWdha3VzaGlrZW5cIDsKK+aCquW+s+aUv+ayu+WutiA8IGFrdXRva3VzZWlqaWthXCA7Civmg4XloLHkuLvopoHntKAgPCBqb3Vob3VzaHV5b3Vzb1wgOwor5ZCI5ZSx6ZqK6ZW3IDwgZ2Fzc2hvdXRhaWNob3VcIDsKK+S5vueHpeeJm+S5syA8IGthbnNvdWd5dXVueXV1XCA7Civnm7Tns7vlsIrlsZ4gPCBjaG9ra2Vpc29uem9rdVwgOwor5YWl5a2m6aGY5pu4IDwgbnl1dWdha3VnYW5zaG9cIDsKK+WHuueZuuaZgumWkyA8IHNodXBwYXRzdWppa2FuXCA7CivkuLvopoHkurrniakgPCBzaHV5b3VqaW5idXRzdVwgOwor5YWs5q2m5ZCI5L2T6KuWIDwga291YnVnYXR0YWlyb25cIDsKK+S4jeadn+iAhSA8IGZ1dHN1dHN1a2Ftb25vXCA7Civnh5XljYPps6UgPCB0c3ViYW1lY2hpZG9yaVwgOwor5paH5a2m5L2c5ZOBIDwgYnVuZ2FrdXNha3VoaW5cIDsKK+mbu+WFieaOsuekuuadvyA8IGRlbmtvdWtlaWppYmFuXCA7Civou73kvr/piYTpgZMgPCBrZWliZW50ZXRzdWRvdVwgOwor5Ymy5byV5biC5aC0IDwgd2FyaWJpa2lzaGlqb3VcIDsKK+Wksei4quWuo+WRiiA8IHNoaXNzb3VzZW5rb2t1XCA7CivljJblrabntZDlkIggPCBrYWdha3VrZXRzdWdvdVwgOwor5L+d6Zm65paZ546HIDwgaG9rZW5yeW91cml0c3VcIDsKK+S+oembu+WtkOeKtuaFiyA8IGthZGVuc2hpam91dGFpXCA7Civkv6HotormnKznt5ogPCBzaGluZXRzdWhvbnNlblwgOwor56We57WM5Lit5p6iIDwgc2hpbmtlaWNodXVzdXVcIDsKK+eZuuWFieWLleeJqSA8IGhha2tvdWRvdWJ1dHN1XCA7CivmsLTnlKPliqDlt6Xlk4EgPCBzdWlzYW5rYWtvdWhpblwgOwor5bmz6Z2i5bm+5L2V5a2mIDwgaGVpbWVua2lrYWdha3VcIDsKK+ikh+W8j+eBq+WxsSA8IGZ1a3VzaGlraWthemFuXCA7CivloIXlv43kuI3mipwgPCBrZW4nJ25pbmZ1YmF0c3VcIDsKK+iAkOS5j+eUn+a0uyA8IHRhaWJvdXNlaWthdHN1XCA7CivnpL7kvJrpgJrlv7UgPCBzaGFrYWl0c3V1bmVuXCA7CivmjqXlrqLmhYvluqYgPCBzZWtreWFrdXRhaWRvXCA7Civou73niIbmkoPmqZ8gPCBrZWliYWt1Z2VraWtpXCA7CivljZfmnbEgPCBtaW5hbWloaWdhc2hpXCA7CivnvbLlkI3mjbrljbAgPCBzaG9tZWluYXRzdWluXCA7CivkvJHmhqnlrqQgPCBreXV1a2Vpc2hpdHN1XCA7Civog7jpg6jnlr7mgqMgPCBreW91YnVzaGlra2FuXCA7CivosaHniZnlj5blvJUgPCB6b3VnZXRvcmloaWtpXCA7Civml6Xmm5zlpKflt6UgPCBuaWNoaXlvdWRhaWt1XCA7Civnm67njonllYblk4EgPCBtZWRhbWFzaG91aGluXCA7Civoo73olqzkvJrnpL4gPCBzZWl5YWt1Z2Fpc2hhXCA7CivmipXlhYnnhafmmI4gPCB0b3Vrb3VzaG91bWVpXCA7CivmuIXlu4nmvZTnmb0gPCBzZWlyZW5rZXBwYWt1XCA7Civoh6rou6Lou4rnva7loLQgPCBqaXRlbnNoYW9raWJhXCA7CivmlbXliY3pgIPkuqEgPCB0ZWtpemVudG91Ym91XCA7Civml6XliIrmlrDogZ4gPCBuaWtrYW5zaGluYnVuXCA7CivmirHohbnntbblgJIgPCBob3VmdWt1emV0dG91XCA7Civml6XmsqHliY0gPCBuaWNoaWJvdHN1emVuXCA7CivmlZnogrLlp5Tlk6HkvJogPCBreW91aWt1aWlua2FpXCA7CivmgqromZDnhKHpgZMgPCBha3VneWFrdW11ZG91XCA7CivmsLTkuIrpo5vooYzmqZ8gPCBzdWlqb3VoaWtvdWtpXCA7Civljq3kuJbmgrLoprPogIUgPCBlbnNlaWhpa2Fuc2hhXCA7Civlm73lrrbmqKnlipsgPCBrb2trYWtlbnJ5b2t1XCA7CivljZfmtIvoq7jls7YgPCBuYW4nJ3lvdXNob3RvdVwgOwor5b6M5pyf5Y2w6LGh5rS+IDwga291a2lpbnNob3VoYVwgOwor5Zua5Lq65Yq05YONIDwgc2h1dWppbnJvdWRvdVwgOwor54uQ5qC85a2QIDwga2l0c3VuZWdvdXNoaVwgOwor5Yqj562J6Kaz5b+1IDwgcmV0dG91a2FuJyduZW5cIDsKK+mWouS/guWumOW6gSA8IGthbmtlaWthbmNob3VcIDsKK+i+suawkeaWh+WtpiA8IG5vdW1pbmJ1bmdha3VcIDsKK+iHqueEtuePvuixoSA8IHNoaXplbmdlbnNob3VcIDsKK+iFjuiHk+e1kOefsyA8IGppbnpvdWtlc3Nla2lcIDsKK+WPpOWFtSA8IGZ1cnV0c3V3YW1vbm9cIDsKK+aWveaUv+aWuemHnSA8IHNoaXNlaWhvdXNoaW5cIDsKK+mWsuimp+WupCA8IGV0c3VyYW5zaGl0c3VcIDsKK+Wkqeeruua1quS6uiA8IHRlbmppa3Vyb3VuaW5cIDsKK+W7uuevieeJqSA8IGtlbmNoaWt1YnV0c3VcIDsKK+mciumtguS4jea7hSA8IHJlaWtvbmZ1bWV0c3VcIDsKK+WFrOWFsee1hOWQiCA8IGtvdWt5b3VrdW1pYWlcIDsKK+aciee3mumbu+S/oSA8IHl1dXNlbmRlbnNoaW5cIDsKK+ihgOihjOmanOWusyA8IGtla2tvdXNob3VnYWlcIDsKK+S6uueahOizh+a6kCA8IGppbnRla2lzaGlnZW5cIDsKK+WcsOaWueihjOaUvyA8IGNoaWhvdWd5b3VzZWlcIDsKK+mch+WkqeWLleWcsCA8IHNoaW50ZW5kb3VjaGlcIDsKK+esrOS4ieW4neWbvSA8IGRhaXNhbnRlaWtva3VcIDsKK+Wkp+imj+aooeaIpuS6iSA8IGRhaWtpYm9zZW5zb3VcIDsKK+Wun+izqueahCA8IGppc3NoaXRzdXRla2lcIDsKK+WkqeaWh+WtpuiAhSA8IHRlbm1vbmdha3VzaGFcIDsKK+a3seWknOaUvumAgSA8IHNoaW4nJ3lhaG91c291XCA7Civpn7Plo7DlvaLlvI8gPCBvbnNlaWtlaXNoaWtpXCA7CivkuqTpgJrllY/poYwgPCBrb3V0c3V1bW9uZGFpXCA7CivlhazlhbHmipXos4cgPCBrb3VreW91dG91c2hpXCA7CivlioPmmYLku6PnmoQgPCBrYWt1amlkYWl0ZWtpXCA7CivlkIzml4/kvJrnpL4gPCBkb3V6b2t1Z2Fpc2hhXCA7Civlv4PnkIbmj4/lhpkgPCBzaGlucmlieW91c2hhXCA7CivmioDooZPmsLTmupYgPCBnaWp1dHN1c3VpanVuXCA7CivnhKHmi4Xkv53npL7lgrUgPCBtdXRhbnBvc2hhc2FpXCA7CivnkIblrabljZrlo6sgPCByaWdha3VoYWt1c2hpXCA7CivlsYDmiYDpurvphZQgPCBreW9rdXNob21hc3VpXCA7CivnlKPliKXkvJrorbAgPCBzYW5iZXRzdWthaWdpXCA7Civnv4zjgIXml6UgPCB5b2t1eW9rdWppdHN1XCA7CivlsLHlrablhZDnq6UgPCBzaHV1Z2FrdWppZG91XCA7CivnqbrkuK3ntabmsrkgPCBrdXVjaHV1a3l1dXl1XCA7Civlm73pmpvopo/moLwgPCBrb2t1c2Fpa2lrYWt1XCA7CivlrabmoKHmlrDogZ4gPCBnYWtrb3VzaGluYnVuXCA7CivoqabogbTlrqQgPCBzaGljaG91c2hpdHN1XCA7Civmg4XloLHnlKPmpa0gPCBqb3Vob3VzYW5neW91XCA7CivnmbvpjLLnlarlj7cgPCB0b3Vyb2t1YmFuZ291XCA7CivlnJ/mnKjlt6XlraYgPCBkb2Jva3Vrb3VnYWt1XCA7CivnlJ/kvZPlj43lv5wgPCBzZWl0YWloYW4nJ25vdVwgOwor54u45ZuD5a2QIDwgdGFudWtpYmF5YXNoaVwgOwor6LGh5b605Li7576pIDwgc2hvdWNob3VzaHVnaVwgOwor6Z+z5qW95pWZ6IKyIDwgb25nYWt1a3lvdWlrdVwgOwor6Kaz5ris5Zyw54K5IDwga2Fuc29rdWNoaXRlblwgOwor6YGg5b+D5YiG6Zui5qmfIDwgZW5zaGluYnVucmlraVwgOwor5qSN5q+b6KGTIDwgc2hva3Vtb3VqdXRzdVwgOwor5oqA6KGT5ZCM5aOrIDwgZ2lqdXRzdWRvdXNoaVwgOwor5b+c5oCl5pS75pKDIDwgb3VreXV1a291Z2VraVwgOwor5ZCM5LuB5pWZ5LyaIDwgZG91amlua3lvdWthaVwgOwor5a6f5YON5pmC6ZaTIDwgaml0c3Vkb3VqaWthblwgOwor6Z2S56m66aeQ6LuKIDwgYW96b3JhY2h1dXNoYVwgOwor6Zu75Yqb6Ly46YCBIDwgZGVucnlva3V5dXNvdVwgOwor6LuN6ZqK5pWZ6IKyIDwgZ3VudGFpa3lvdWlrdVwgOwor6YGg5rSL5ryB5qWtIDwgZW4nJ3lvdWd5b2d5b3VcIDsKK+aXp+ato+aciCA8IGt5dXVzaG91Z2F0c3VcIDsKK+S/nemanOWNoOmgmCA8IGhvc2hvdXNlbnJ5b3VcIDsKK+S6pOaPm+azleWJhyA8IGtvdWthbmhvdXNva3VcIDsKK+eJveW8leeZguazlSA8IGtlbicnaW5yeW91aG91XCA7Civpp4XkvJ3nq7botbAgPCBla2lkZW5reW91c291XCA7CivliIfmra/mibzohZUgPCBzZXNzaGl5YWt1d2FuXCA7CivkuLjpvLvonIIgPCBtYXJ1aGFuYWJhY2hpXCA7Civlm6PkvZPkuqTmuIkgPCBkYW50YWlrb3VzaG91XCA7CivohJroibLogIUgPCBreWFrdXNob2t1c2hhXCA7Civkuq3kuLvplqLnmb0gPCB0ZWlzaHVrYW5wYWt1XCA7CivkuIDmrrXli5XoqZ4gPCBpY2hpZGFuZG91c2hpXCA7CivkuIDoiKzluZXlg5ogPCBpcHBhbmJha3VyeW91XCA7Civlr53lj7DliJfou4ogPCBzaGluZGFpcmVzc2hhXCA7CivmipXmk7Lnq7bmioAgPCB0b3V0ZWtpa3lvdWdpXCA7CivmnbHmtbflsrggPCBoaWdhc2hpa2FpZ2FuXCA7CivmsJfosaHpgJrloLEgPCBraXNob3V0c3V1aG91XCA7CivplovmnpDlj7DlnLAgPCBrYWlzZWtpZGFpY2hpXCA7CivlhoXouJ0gPCB1Y2hpa3VydWJ1c2hpXCA7Civlrp/nlKjkuLvnvqkgPCBqaXRzdXlvdXNodWdpXCA7Civnm7Tnq4vojI4gPCBjaG9rdXJpdHN1a2VpXCA7Civnmb3pm6rlp6sgPCBzaGlyYXl1a2loaW1lXCA7Civlt6XloLTlrp/nv5IgPCBrb3Vqb3VqaXNzaHV1XCA7CivkuK3ntpnosr/mmJMgPCBjaHV1a2VpYm91ZWtpXCA7CivmgKfog73nibnmgKcgPCBzZWlub3V0b2t1c2VpXCA7Civpm7vmsJflhrfolLXluqsgPCBkZW5raXJlaXpvdWtvXCA7CivmnIDlvozpgJrniZIgPCBzYWlnb3RzdXVjaG91XCA7CivmnIDkvY7muKnluqboqIggPCBzYWl0ZWlvbmRva2VpXCA7Civlm73pmpvntZDlqZogPCBrb2t1c2Fpa2Vra29uXCA7CivpgKDmnKzmioDooZMgPCB6b3Vob25naWp1dHN1XCA7CivlpqjlrrPlt6XkvZwgPCBib3VnYWlrb3VzYWt1XCA7Civmlq3nhrHnmoQgPCBkYW4nJ25ldHN1dGVraVwgOwor5rCR5peP5oSP6K2YIDwgbWluem9rdWlzaGlraVwgOwor5rOl57iE5byPIDwgZG9yb25hd2FzaGlraVwgOwor6LSF5rKi5LiJ5pinIDwgemVpdGFrdXphbm1haVwgOwor5YaZ55yf6KO954mIIDwgc2hhc2hpbnNlaWhhblwgOwor6Kaz6Zay5byPIDwga2FuJydldHN1c2hpa2lcIDsKK+WtpuagoeaVmeiCsiA8IGdha2tvdWt5b3Vpa3VcIDsKK+mcp+S4reS/oeWPtyA8IG11Y2h1dXNoaW5nb3VcIDsKK+eyvuelnueKtuaFiyA8IHNlaXNoaW5qb3V0YWlcIDsKK+WVhuenkeWkp+WtpiA8IHNob3VrYWRhaWdha3VcIDsKK+WQuOa5v+aApyA8IGt5dXVzaGl0c3VzZWlcIDsKK+a2iOalteeahCA8IHNob3VreW9rdXRla2lcIDsKK+mhp+WVj+W8geitt+WjqyA8IGtvbW9uYmVuZ29zaGlcIDsKK+WGmeecn+e1kOWpmiA8IHNoYXNoaW5rZWtrb25cIDsKK+WFseWQjOaIpue3miA8IGt5b3Vkb3VzZW5zZW5cIDsKK+eBq+Wxsea0u+WLlSA8IGthemFua2F0c3Vkb3VcIDsKK+m6pueoiOe0sOW3pSA8IG11Z2l3YXJhemFpa3VcIDsKK+aIkeWIqeaIkeWIqeS6oeiAhSA8IGdhcmlnYXJpbW91amFcIDsKK+WLpOWKtOaJgOW+lyA8IGtpbnJvdXNob3Rva3VcIDsKK+mmluebuOWumOmCuCA8IHNodXNob3VrYW50ZWlcIDsKK+iqreabuOS4ieaYpyA8IGRva3VzaG96YW5tYWlcIDsKK+S4reetieaVmeWToSA8IGNodXV0b3VreW91aW5cIDsKK+S4gOasoembu+a1gSA8IGljaGlqaWRlbnJ5dXVcIDsKK+WPsOS4remWouS/giA8IHRhaWNodXVrYW5rZWlcIDsKK+enmOWvhue1kOekviA8IGhpbWl0c3VrZXNzaGFcIDsKK+adseaWueaLoeWkpyA8IHRvdWhvdWtha3VkYWlcIDsKK+a8gua1geeJqSA8IGh5b3VyeXV1YnV0c3VcIDsKK+i/kemao+iruOWbvSA8IGtpbnJpbnNob2tva3VcIDsKK+WKtOWDjemajue0miA8IHJvdWRvdWthaWt5dXVcIDsKK+iynuaTjeims+W/tSA8IHRlaXNvdWthbicnbmVuXCA7CivmsJHplpPkvJ3mib8gPCBtaW5rYW5kZW5zaG91XCA7CivohoDog7HntZDnn7MgPCBib3Vrb3VrZXNzZWtpXCA7Civou6LlsYXpgJrnn6UgPCB0ZW5reW90c3V1Y2hpXCA7CivntJTmraPmlbDlraYgPCBqdW5zZWlzdXVnYWt1XCA7CivnlLfniLXlpKvkurogPCBkYW5zaGFrdWZ1amluXCA7CivkuIvkuozmoYEgPCBzaGltb2Z1dGFrZXRhXCA7CivkuoznoavljJbngq3ntKAgPCBuaXJ5dXVrYXRhbnNvXCA7CivloanolLXpo5/lk4EgPCBlbnpvdXNob2t1aGluXCA7CivkuIDoh7Tlm6PntZAgPCBpdGNoaWRhbmtldHN1XCA7Civorablr5/lm73lrrYgPCBrZWlzYXRzdWtva2thXCA7CivntYzmuIjnmb3mm7ggPCBrZWl6YWloYWt1c2hvXCA7CivnqYDlgInlnLDluK8gPCBrb2t1c291Y2hpdGFpXCA7CivmhoLprLHos6ogPCB5dXV1dHN1c2hpdHN1XCA7Civml6nmnJ/orabmiJLmqZ8gPCBzb3VraWtlaWthaWtpXCA7CivnkrDlooPkuovmpa0gPCBrYW5reW91amlneW91XCA7Civnt4/lkIjllYbnpL4gPCBzb3Vnb3VzaG91c2hhXCA7Civkv4TmiJDph5EgPCBuaXdha2FuYXJpa2luXCA7CivlsJHlubTlirTlg40gPCBzaG91bmVucm91ZG91XCA7CivkuIDmjJnkuKHlvpcgPCBpa2t5b3J5b3V0b2t1XCA7CivmuKzlrproo4Xnva4gPCBzb2t1dGVpc291Y2hpXCA7CivliY3ooZvnvo7ooZMgPCB6ZW4nJ2VpYmlqdXRzdVwgOwor5qeL6YCg6YG65Lyd5a2QIDwga291em91aWRlbnNoaVwgOwor55qG5pei5pyI6aOfIDwga2Fpa2lnZXNzaG9rdVwgOwor5YWs5Zuj5L2P5a6FIDwga291ZGFuanV1dGFrdVwgOwor6Kit5YKZ5oqV6LOHIDwgc2V0c3ViaXRvdXNoaVwgOwor5pel5bi46Iy26aOvIDwgbmljaGlqb3VzYWhhblwgOwor576k6ZuG5b+D55CGIDwgZ3Vuc2h1dXNoaW5yaVwgOwor55m+5oim57e056OoIDwgaHlha3VzZW5yZW5tYVwgOwor5Y2z6IiI6Kmp5Lq6IDwgc29ra3lvdXNoaWppblwgOwor5ZaE6Zqj5pS/562WIDwgemVucmluc2Vpc2FrdVwgOwor5YmN5Y+X5Y+O55uKIDwgbWFldWtlc2h1dWVraVwgOwor6Z2S6YqF5Zmo5pmC5LujIDwgc2VpZG91a2lqaWRhaVwgOwor5Zu95rCR55qG5YW1IDwga29rdW1pbmthaWhlaVwgOwor6aqo55u45a2m6ICFIDwga29zc291Z2FrdXNoYVwgOwor5oi45Yil6Kiq5ZWPIDwga29iZXRzdWhvdW1vblwgOwor54iG5by+5aOw5piOIDwgYmFrdWRhbnNlaW1laVwgOwor6YGT5qW95oGv5a2QIDwgZG91cmFrdW11c3Vrb1wgOwor6IiM6byTIDwgc2hpdGF0c3VkenVtaVwgOwor5Y+O56mr54mpIDwgc2h1dWtha3VidXRzdVwgOwor6LK45LuY6YeRIDwga2FzaGl0c3VrZWtpblwgOwor55mS5YK357WE57mUIDwgeXVzaG91c29zaGlraVwgOwor55S35a2Q5a2m55SfIDwgZGFuc2hpZ2FrdXNlaVwgOwor5YuV54mp6YGUIDwgZG91YnV0c3V0YWNoaVwgOwor6LKr6YCa6YqD5Ym1IDwga2FudHN1dWp1dXNvdVwgOwor6aOf57On5bqBIDwgc2hva3VyeW91Y2hvdVwgOwor5Lya6KiI5qSc5p+76ZmiIDwga2Fpa2Vpa2Vuc2FpblwgOwor5paw6YOO5paw5ammIDwgc2hpbnJvdXNoaW5wdVwgOwor56m65oy65L2c5oimIDwga3V1dGVpc2FrdXNlblwgOwor6YWN566h5bel5qWtIDwgaGFpa2Fua291Z3lvdVwgOwor5a6H5a6Z6YCa5L+hIDwgdWNodXV0c3V1c2hpblwgOwor6IW655eF6LOqIDwgc2VuYnlvdXNoaXRzdVwgOwor562J5q+U5pWw5YiXIDwgdG91aGlzdXVyZXRzdVwgOwor5bqK5LiK5rW45rC0IDwgeXVrYXVlc2hpbnN1aVwgOwor6Ieq54S255Kw5aKDIDwgc2hpemVua2Fua3lvdVwgOwor5pel5Lit5oim5LqJIDwgbml0Y2h1dXNlbnNvdVwgOwor5rCR57SE6KqsIDwgbWluJyd5YWt1c2V0c3VcIDsKK+WQuOa5v+WJpCA8IGt5dXVzaGl0c3V6YWlcIDsKK+S6jOeti+mBkyA8IGZ1dGFzdWppbWljaGlcIDsKK+WNiumVt+mdtCA8IGhhbicnbmFnYWd1dHN1XCA7CivmqJnpoYzpn7Pmpb0gPCBoeW91ZGFpb25nYWt1XCA7CivmoKHplbflrqQgPCBrb3VjaG91c2hpdHN1XCA7CivliqPnrYnopIflkIggPCByZXR0b3VmdWt1Z291XCA7CivnnLznkIPpioDooYwgPCBnYW5reXV1Z2lua291XCA7Civmsbrmlq3lipsgPCBrZXRzdWRhbnJ5b2t1XCA7CivluILloLTliIbmnpAgPCBzaGlqb3VidW5zZWtpXCA7CivkuK3plpPoqabpqJMgPCBjaHV1a2Fuc2hpa2VuXCA7CivoqLzliLjkvJrnpL4gPCBzaG91a2VuZ2Fpc2hhXCA7CivmvI/oqbHntZDlkIggPCByb3V3YWdldHN1Z291XCA7Civlm73pmpvntJvkuokgPCBrb2t1c2FpZnVuc291XCA7Civpm4blm6PooYzli5UgPCBzaHV1ZGFua291ZG91XCA7Civou4rkuKHnuKbpmoogPCBzaGFyeW91anV1dGFpXCA7CivkuqTku6Pmk43mpa0gPCBrb3V0YWlzb3VneW91XCA7CivkvZzogIXmnKroqbMgPCBzYWt1c2hhbWlzaG91XCA7Civopb/mnKzpoZjlr7ogPCBuaXNoaWhvbmdhbmppXCA7CivmsLjku6PlgJ/lnLAgPCBlaXRhaXNoYWt1Y2hpXCA7Civlt67lh7rkurogPCBzYXNoaWRhc2hpbmluXCA7CivkuIPmm5zooaggPCBzaGljaGl5b3VoeW91XCA7CivlrZDlrq7nrYvohasgPCBzaGlreXV1a2luc2h1XCA7CivliIfmiYvokpDpm4YgPCBraXR0ZXNodXVzaHV1XCA7CivpppbkvY3mlLvpmLLmiKYgPCBzaHVpa291Ym91c2VuXCA7CivlhajmlrnkvY3lpJbkuqQgPCB6ZW5ob3VpZ2Fpa291XCA7CivlrpjosrvnlZnlraYgPCBrYW5waXJ5dXVnYWt1XCA7Civnt6jpm4bkuLvlubkgPCBoZW5zaHV1c2h1a2FuXCA7CivnlJ/nlKPmioDooZMgPCBzZWlzYW5naWp1dHN1XCA7CivmsLTlubPlv5zlipsgPCBzdWloZWlvdXJ5b2t1XCA7CivlhYjnq6/mioDooZMgPCBzZW50YW5naWp1dHN1XCA7CivnpZ7lrq7nkIPloLQgPCBqaW5ndXVreXV1am91XCA7CivngbDnt5HoibIgPCBrYWlyeW9rdXNob2t1XCA7CivmnKzos6rnmoQgPCBob25zaGl0c3V0ZWtpXCA7CivnhKHkurrljJblt6XloLQgPCBtdWppbmtha291am91XCA7Civpn7Pmpb3lpKflraYgPCBvbmdha3VkYWlnYWt1XCA7CivkvrXnlaXooYzngrogPCBzaGlucnlha3Vrb3VpXCA7CivlhaXlsITlhYnnt5ogPCBueXV1c2hha291c2VuXCA7CivkuInop5Llh73mlbAgPCBzYW5rYWt1a2Fuc3V1XCA7Civnq4vkvZPlhpnnnJ8gPCByaXR0YWlzaGFzaGluXCA7Civlm73pmpvplqLkv4IgPCBrb2t1c2Fpa2Fua2VpXCA7CivmtYTlnJ/nnJ/lrpcgPCBqb3Vkb3NoaW5zaHV1XCA7CivkuInlm73lkIznm58gPCBzYW5nb2t1ZG91bWVpXCA7CivngavkuovloLTms6Xmo5IgPCBrYWppYmFkb3JvYm91XCA7CivpqZrlpKnli5XlnLAgPCBreW91dGVuZG91Y2hpXCA7CivnqbrkuK3mu5HotbAgPCBrdXVjaHV1a2Fzc291XCA7Civlm73pmpvllY/poYwgPCBrb2t1c2FpbW9uZGFpXCA7CivmsYLlv4PlipsgPCBreXV1c2hpbnJ5b2t1XCA7CivnpL7lpJbnmbrkv6EgPCBzaGFnYWloYXNzaGluXCA7Civot7PmooHot4vmiYggPCBjaG91cnlvdWJha2tvXCA7Civpm4bkuK3noLLngasgPCBzaHV1Y2h1dWhvdWthXCA7Civkurrlt6XmoITppIrlhZAgPCBqaW5rb3VlaXlvdWppXCA7CivkurrplpPlt6XlraYgPCBuaW5nZW5rb3VnYWt1XCA7CivouqvlhYPnorroqo0gPCBtaW1vdG9rYWt1bmluXCA7CivntZDlm6PlvI8gPCBrZXRzdWRhbnNoaWtpXCA7Civlt67liKXlvoXpgYcgPCBzYWJldHN1dGFpZ3V1XCA7CivljYPps6XmoLzlrZAgPCBjaGlkb3JpZ291c2hpXCA7Civku4/lg4/kuozkvZMgPCBidXRzdXpvdW5pdGFpXCA7Civlhajmma/lhpnnnJ8gPCB6ZW5rZWlzaGFzaGluXCA7CivlhazlhbHlm6PkvZMgPCBrb3VreW91ZGFudGFpXCA7CivmlLnmnK3lj6MgPCBrYWlzYXRzdWd1Y2hpXCA7CivloIbnqY3ovKrlu7sgPCB0YWlzZWtpcmluJyduZVwgOwor5LiA6Iis55Sf5rS7IDwgaXBwYW5zZWlrYXRzdVwgOwor5qyn57Gz6Ku46KiA6KqeIDwgb3ViZWlzaG9nZW5nb1wgOwor5qiq5rKz6Zu75qmfIDwgeW9rb2dhd2FkZW5raVwgOwor5Lit57aZ5pS+6YCBIDwgY2h1dWtlaWhvdXNvdVwgOwor56aB5q2i5p2h57SEIDwga2luc2hpam91eWFrdVwgOwor5YWo5Zu95pS+6YCBIDwgemVua29rdWhvdXNvdVwgOwor5Lq65bel5a215YyW5rOVIDwgamlua291ZnVrYWhvdVwgOwor5YWa5Yip5YWa55WlIDwgdG91cml0b3VyeWFrdVwgOwor57mB5q6W5YqbIDwgaGFuc2hva3VyeW9rdVwgOwor5aSW5Lqk5Lqk5riJIDwgZ2Fpa291a291c2hvdVwgOwor5a2m5aOr6Zmi6LOeIDwgZ2FrdXNoaWluc2hvdVwgOwor6KGM5YuV6KiI55S7IDwga291ZG91a2Vpa2FrdVwgOwor5YWx5pyJ6LKh55SjIDwga3lvdXl1dXphaXNhblwgOwor6YC45aSx5Yip55uKIDwgaXNzaGl0c3VyaWVraVwgOwor6L6y5Zyw5pS56Z2pIDwgbm91Y2hpa2Fpa2FrdVwgOwor5ZuD5a2Q6KmeIDwgaGF5YXNoaWtvdG9iYVwgOwor5Lqk6YCa5riL5rueIDwga291dHN1dWp1dXRhaVwgOwor56We57WM57Sw6IOeIDwgc2hpbmtlaXNhaWJvdVwgOwor5Lq65beu5oyHIDwgaGl0b3Nhc2hpeXViaVwgOwor5LiD6Z2i6bOlIDwgc2hpY2hpbWVuY2hvdVwgOwor5qWt55WM5Zuj5L2TIDwgZ3lvdWthaWRhbnRhaVwgOwor5Yun5ZaE5oey5oKqIDwga2FuemVuY2hvdWFrdVwgOwor5YWx55Sj6Zmj5Za2IDwga3lvdXNhbmppbicnZWlcIDsKK+asoOW4reijgeWIpCA8IGtlc3Nla2lzYWliYW5cIDsKK+WNiumdqeijheS4gSA8IGhhbmthd2Fzb3V0ZWlcIDsKK+ertuS6ieW4guWgtCA8IGt5b3Vzb3VzaGlqb3VcIDsKK+eZuuiogOWKmyA8IGhhdHN1Z2Vucnlva3VcIDsKK+efpeeahOiyoeeUoyA8IGNoaXRla2l6YWlzYW5cIDsKK+WNl+WMl+WVj+mhjCA8IG5hbmJva3Vtb25kYWlcIDsKK+i7jeS6i+mhp+WVj+WboyA8IGd1bmppa29tb25kYW5cIDsKK+mrmOWxpOWkqeawl+WbsyA8IGtvdXNvdXRlbmtpenVcIDsKK+eqgeeEtuWkieeVsCA8IHRvdHN1emVuaGVuJydpXCA7Civpganlv5zpmpzlrrMgPCB0ZWtpb3VzaG91Z2FpXCA7Civlh7rkuJbpoK0gPCBzaHVzc2VnYXNoaXJhXCA7Civmt7fovInosqjniakgPCBrb25zYWlrYW1vdHN1XCA7Civpm4bkuK3lipsgPCBzaHV1Y2h1dXJ5b2t1XCA7CivogJDpmpzlrrPmgKcgPCB0YWlzaG91Z2Fpc2VpXCA7Civov5Hopqrnm7jlp6YgPCBraW5zaGluc291a2FuXCA7CivlsYjovrHnmoQgPCBrdXRzdWpva3V0ZWtpXCA7CivlpKfpgZPllYbkurogPCBkYWlkb3VzaG91bmluXCA7CivkuI3kv6Hku7vmoYggPCBmdXNoaW4nJ25pbicnYW5cIDsKK+S7rumdouiInui4j+S8miA8IGthbWVuYnV0b3VrYWlcIDsKK+WuruW7t+mfs+alvSA8IGt5dXV0ZWlvbmdha3VcIDsKK+WVhuWjsuaVtSA8IHNob3ViYWlnYXRha2lcIDsKK+WHuueUn+WxiiA8IHNodXNzZWl0b2Rva2VcIDsKK+e3qeihneWcsOW4ryA8IGthbnNob3VjaGl0YWlcIDsKK+ihgOa4heazqOWwhCA8IGtlc3NlaWNodXVzaGFcIDsKK+iEseeNhOWbmiA8IGRhdHN1Z29rdXNodXVcIDsKK+WKoOezlueyieS5syA8IGthdG91ZnVuJydueXV1XCA7CivlnJ/nlKPoqbEgPCBtaXlhZ2ViYW5hc2hpXCA7Civkv6HosqnkvJrnpL4gPCBzaGlucGFuZ2Fpc2hhXCA7CivljYHkuIDnjK7ph5EgPCBqdXVpY2hpa2Vua2luXCA7Civnpo/npYnkuovmpa0gPCBmdWt1c2hpamlneW91XCA7CivmmpbooaPpo73po58gPCBkYW4nJ2lob3VzaG9rdVwgOwor5rqW5rG65Yud5oimIDwganVua2Vzc2hvdXNlblwgOwor6YeO55Sf5YuV54mpIDwgeWFzZWlkb3VidXRzdVwgOwor56S+5Lya54++6LGhIDwgc2hha2FpZ2Vuc2hvdVwgOwor5YyX5qyn6Ku45Zu9IDwgaG9rdW91c2hva29rdVwgOwor6Ieq54S25LyR5LyaIDwgc2hpemVua3l1dWthaVwgOwor6Imv5LqM5Y2D55+zIDwgcnlvdW5pc2Vuc2VraVwgOwor5paH5a2m6Z2S5bm0IDwgYnVuZ2FrdXNlaW5lblwgOwor55m96KOF5p2fIDwgc2hpcm9zaG91em9rdVwgOwor5L2c5qWt6YOo5Lya5qGIIDwgc2FneW91YnVrYWlhblwgOwor5L+u6YGT6KqT6aGYIDwgc2h1dWRvdXNlaWdhblwgOwor6aOf57On5o+05YqpIDwgc2hva3VyeW91ZW5qb1wgOwor6KGG6K2w5LiA5rG6IDwgc2h1dWdpaWtrZXRzdVwgOwor6YW457Sg5ZC45YWlIDwgc2Fuc29reXV1bnl1dVwgOwor55Sf6Iet5Z2K5Li7IDwgbmFtYWd1c2Fib3V6dVwgOwor6LuN5LqL5pa96KitIDwgZ3VuamlzaGlzZXRzdVwgOwor5pig55S76KmV6KuW5a62IDwgZWlnYWh5b3Vyb25rYVwgOwor6YO15L6/5oyv5pu/IDwgeXV1YmluZnVyaWthZVwgOwor5pa56Yed5rG65a6aIDwgaG91c2hpbmtldHRlaVwgOwor5bCx5qWt5pmC6ZaTIDwgc2h1dWd5b3VqaWthblwgOwor5Lq65Y+j5oqR5Yi2IDwgamlua291eW9rdXNlaVwgOwor6LuN5Lq65oGp57WmIDwgZ3VuamluJydvbmt5dXVcIDsKK+S6uuW3pea1geeUoyA8IGppbmtvdXJ5dXV6YW5cIDsKK+ecn+WJo+WLneiyoCA8IHNoaW5rZW5zaG91YnVcIDsKK+maoOmAgOeUn+a0uyA8IGludGFpc2Vpa2F0c3VcIDsKK+WuiOenmOe+qeWLmemBleWPjSA8IHNodWhpZ2ltdWloYW5cIDsKK+iFsOW3vuedgCA8IGtvc2hpZ2luY2hha3VcIDsKK+W9ueWToeWgsemFrCA8IHlha3VpbmhvdXNodXVcIDsKK+WJsuW8leaZgumWkyA8IHdhcmliaWtpamlrYW5cIDsKK+eZveiRoeiQhOmFkiA8IHNoaXJvYnVkb3VzaHVcIDsKK+WNiueGn+WNtSA8IGhhbmp1a3V0YW1hZ29cIDsKK+WItuacjeWItuW4vSA8IHNlaWZ1a3VzZWlib3VcIDsKK+WPpOiJsuiSvOeEtiA8IGtvc2hva3Vzb3V6ZW5cIDsKK+eVmee9rumDteS+vyA8IHRvbWVva2l5dXViaW5cIDsKK+ioiOeUu+WAkueUoyA8IGtlaWtha3V0b3VzYW5cIDsKK+eahuaXouaXpemjnyA8IGthaWtpbmlzc2hva3VcIDsKK+ayoeW4uOitmCA8IGJvdHN1am91c2hpa2lcIDsKK+mbhuWhteiiiyA8IHNodXVqaW5idWt1cm9cIDsKK+mAo+aIpumAo+WLnSA8IHJlbnNlbnJlbnNob3VcIDsKK+S6q+alveS4u+e+qSA8IGt5b3VyYWt1c2h1Z2lcIDsKK+S4ieS4i+WltCA8IHNhbnNoaXRheWFra29cIDsKK+W6g+WRiuWqkuS9kyA8IGtvdWtva3ViYWl0YWlcIDsKK+WbveawkeWvqeafuyA8IGtva3VtaW5zaGluc2FcIDsKK+WBpeiAhSA8IHNoaXRhdGFrYW1vbm9cIDsKK+a3t+WjsOWQiOWUsSA8IGtvbnNlaWdhc3Nob3VcIDsKK+elnumBk+S/oeiAhSA8IHNoaW50b3VzaGluamFcIDsKK+Wun+azgeaUvumAgSA8IGppa2t5b3Vob3Vzb3VcIDsKK+WIhuWFieWIhuaekCA8IGJ1bmtvdWJ1bnNla2lcIDsKK+eUo+alree1hOWQiCA8IHNhbmd5b3VrdW1pYWlcIDsKK+WPluaNqOmBuOaKniA8IHNodXNoYXNlbnRha3VcIDsKK+WcsOmch+WtpuiAhSA8IGppc2hpbmdha3VzaGFcIDsKK+Wkp+mYquWkp+WtpiA8IG9vc2FrYWRhaWdha3VcIDsKK+esrOS6jOasoeWkp+aIpiA8IGRhaW5paml0YWlzZW5cIDsKK+eglOeptuaWueazlSA8IGtlbmt5dXVob3Vob3VcIDsKK+WcsOizquWtpiA8IGNoaXNoaXRzdWdha3VcIDsKK+aWremDiuertui1sCA8IGRhbmtvdWt5b3Vzb3VcIDsKK+alveWxi+ipsSA8IGdha3V5YWJhbmFzaGlcIDsKK+avlOi8g+aWh+WtpiA8IGhpa2FrdWJ1bmdha3VcIDsKK+Wjq+i+suW3peWVhiA8IHNoaW5vdWtvdXNob3VcIDsKK+S5vuWdpOS4gOaTsiA8IGtlbmtvbicnaXR0ZWtpXCA7CivlgZzmraLkv6Hlj7cgPCB0ZWlzaGlzaGluZ291XCA7Civlu7rnr4nnj77loLQgPCBrZW5jaGlrdWdlbmJhXCA7Civlm73pgKPlpKfkvb8gPCBrb2t1cmVudGFpc2hpXCA7CivnnInnm67np4DpupcgPCBiaW1va3VzaHV1cmVpXCA7Civmg4Xnt5LpmpzlrrMgPCBqb3VzaG9zaG91Z2FpXCA7CivorLnos4DmlrDlubQgPCBraW5nYXNoaW4nJ25lblwgOwor57e057+S5ZWP6aGMIDwgcmVuc2h1dW1vbmRhaVwgOwor5Lq655Wc54Sh5a6zIDwgamluY2hpa3VtdWdhaVwgOwor5LiK5rWB56S+5LyaIDwgam91cnl1dXNoYWthaVwgOwor5by35aWq54mpIDwgZ291ZGF0c3VidXRzdVwgOwor6ZaR5pel5pyIIDwga2Fuaml0c3VnZXRzdVwgOwor6Zm45rW356m66LuNIDwgcmlrdWthaWt1dWd1blwgOwor6YeO5qyh6aas5qC55oCnIDwgeWFqaXVtYWtvbmpvdVwgOwor55yf55u46Kq/5p+7IDwgc2hpbnNvdWNob3VzYVwgOwor6KGo5pWs6Kiq5ZWPIDwgaHlvdWtlaWhvdW1vblwgOwor5pmu6YCa5pWZ6IKyIDwgZnV0c3V1a3lvdWlrdVwgOwor5YWs5rCR5pWZ6IKyIDwga291bWlua3lvdWlrdVwgOwor5oyR55m655qEIDwgY2hvdWhhdHN1dGVraVwgOwor5rC05a6z5a++562WIDwgc3VpZ2FpdGFpc2FrdVwgOwor5bCG5p2l5bGV5pybIDwgc2hvdXJhaXRlbmJvdVwgOwor5bCL5ZWP6Kq/5pu4IDwgamlubW9uY2hvdXNob1wgOwor552A5by+6Led6ZuiIDwgY2hha3VkYW5reW9yaVwgOwor5aSp55yf54ib5ryrIDwgdGVuc2hpbnJhbm1hblwgOwor5Y+N5bCE56We57WMIDwgaGFuc2hhc2hpbmtlaVwgOwor6Z2S6Imy55Sz5ZGKIDwgYW9pcm9zaGlua29rdVwgOwor6YCg5b2i576O6KGTIDwgem91a2VpYmlqdXRzdVwgOwor5Y+y55qE54++5ZyoIDwgc2hpdGVraWdlbnphaVwgOwor56Wd56Wt5pelIDwgc2h1a3VzYWlqaXRzdVwgOwor5YaF6YOo55Sf5rS7IDwgbmFpYnVzZWlrYXRzdVwgOwor5qeL6YCg6KiY6L+wIDwga291em91a2lqdXRzdVwgOwor5YWx5a2Y5YWx5qCEIDwga3lvdXpvbmt5b3VlaVwgOwor5biv54q255ax55a5IDwgdGFpam91aG91c2hpblwgOwor54++5a6f5Li7576pIDwgZ2Vuaml0c3VzaHVnaVwgOwor5bm044CF5q2z44CFIDwgbmVuJyduZW5zYWlzYWlcIDsKK+eglOeptuirluaWhyA8IGtlbmt5dXVyb25idW5cIDsKK+acgOe1gue3qOaIkCA8IHNhaXNodXVoZW5zZWlcIDsKK+WwguS/ruWtpuagoSA8IHNlbnNodXVnYWtrb3VcIDsKK+W9q+WIu+ihkyA8IGNob3Vrb2t1anV0c3VcIDsKK+WPs+S4reaLrOW8pyA8IG1pZ2ljaHV1a2Fra29cIDsKK+S/rumBk+mZoumVtyA8IHNodXVkb3VpbmNob3VcIDsKK+Wutuedo+ebuOe2miA8IGthdG9rdXNvdXpva3VcIDsKK+Wuv+WRveirluiAhSA8IHNodWt1bWVpcm9uamFcIDsKK+a4qeW6puiqv+evgCA8IG9uZG9jaG91c2V0c3VcIDsKK+iLseS8muipseWtpuagoSA8IGVpa2Fpd2FnYWtrb3VcIDsKK+iogOiqnuiDveWKmyA8IGdlbmdvbm91cnlva3VcIDsKK+WIqea9pOi/veaxgiA8IHJpanVudHN1aWt5dXVcIDsKK+e1seeOh+eQhuirliA8IHRvdXNvdHN1cmlyb25cIDsKK+S4reeri+WbvSA8IGNodXVyaXRzdWtva3VcIDsKK+WWq+eFmeWupCA8IGtpdHN1ZW5zaGl0c3VcIDsKK+iJr+miqOe+juS/lyA8IHJ5b3VmdXViaXpva3VcIDsKK+WbveawkeWtpuagoSA8IGtva3VtaW5nYWtrb3VcIDsKK+WNmOeCuueUn+auliA8IHRhbicnaXNlaXNob2t1XCA7CivliY3mlrnkuI3ms6jmhI8gPCB6ZW5wb3VmdWNodXVpXCA7CivkuozljYHml6XpvKAgPCBoYXRzdWthbmV6dW1pXCA7Civosr/mmJPlj47mlK8gPCBib3Vla2lzaHV1c2hpXCA7Civkurrlt6Xlv4Poh5MgPCBqaW5rb3VzaGluem91XCA7CivlpKnmtKXml6Xll6MgPCBhbWF0c3VoaXRzdWdpXCA7CivkuIDkuKHml6UgPCBpY2hpcnlvdWppdHN1XCA7CivnvqTpm4TlibLmi6AgPCBndW4nJ3l1dWtha2t5b1wgOwor5YWI5aSp5qKF5q+SIDwgc2VudGVuYmFpZG9rdVwgOwor5Lq65bel5b+D6IK6IDwgamlua291c2hpbmJhaVwgOwor5ZG85ZC45Lit5p6iIDwga29reXV1Y2h1dXN1dVwgOwor6aeQ55WZ6YOo6ZqKIDwgY2h1dXJ5dXVidXRhaVwgOwor5q6655Sf56aB5patIDwgc2Vzc2hvdWtpbmRhblwgOwor54Sh6Yqt6YGK6IiIIDwgbXVzZW4nJ3l1dWt5b3VcIDsKK+S4u+W4reWFqOaoqSA8IHNodXNla2l6ZW5rZW5cIDsKK+WcsOaWueWFrOWLmeWToSA8IGNoaWhvdWtvdW11aW5cIDsKK+eUsuS5meS4meS4gSA8IGtvdW90c3VoZWl0ZWlcIDsKK+ijnOasoOmBuOaMmSA8IGhva2V0c3VzZW5reW9cIDsKK+api+iEmuiInyA8IGt5b3VreWFrdXNodXVcIDsKK+W+rumHj+WIhuaekCA8IGJpcnlvdWJ1bnNla2lcIDsKK+iHquWLleiyqeWjsuapnyA8IGppZG91aGFuYmFpa2lcIDsKK+WcsOWfn+S7o+ihqCA8IGNoaWlraWRhaWh5b3VcIDsKK+eUu+S4gOS4u+e+qSA8IGtha3VpdHN1c2h1Z2lcIDsKK+S6rOmDveWkp+WtpiA8IGt5b3V0b2RhaWdha3VcIDsKK+a8rOeJqeefsyA8IHRzdWtlbW9ub2lzaGlcIDsKK+WkluWHuuS4rSA8IGdhaXNodXRzdWNodXVcIDsKK+mJhOafk+iJsiA8IHRldHN1c2Vuc2hva3VcIDsKK+eUn+S9k+W3peWtpiA8IHNlaXRhaWtvdWdha3VcIDsKK+eLrOeri+W/gyA8IGRva3VyaXRzdXNoaW5cIDsKK+azoeayq+WAmeijnCA8IGhvdW1hdHN1a291aG9cIDsKK+ebuOe2muiyoeeUoyA8IHNvdXpva3V6YWlzYW5cIDsKK+WvvuaIpuaIkOe4viA8IHRhaXNlbnNlaXNla2lcIDsKK+Wbvemam+epuua4ryA8IGtva3VzYWlrdXVrb3VcIDsKK+WbvemAo+e3j+S8miA8IGtva3VyZW5zb3VrYWlcIDsKK+S7iuaciOacqyA8IGtvbmdldHN1bWF0c3VcIDsKK+WwgumWgOaVmeiCsiA8IHNlbm1vbmt5b3Vpa3VcIDsKK+WWtualreWgseWRiiA8IGVpZ3lvdWhvdWtva3VcIDsKK+ihgOa2suaknOafuyA8IGtldHN1ZWtpa2Vuc2FcIDsKK+mdqeaWsOS4u+e+qSA8IGtha3VzaGluc2h1Z2lcIDsKK+mcsuWHuuaZgumWkyA8IHJvc2h1dHN1amlrYW5cIDsKK+mbu+ejgeiqv+eQhuWZqCA8IGRlbmppY2hvdXJpa2lcIDsKK+aKleelqOeUqOe0mSA8IHRvdWh5b3V5b3VzaGlcIDsKK+Wun+eJqeWkpyA8IGppdHN1YnV0c3VkYWlcIDsKK+iWrOeUqOefs+m5uCA8IHlha3V5b3VzZWtrZW5cIDsKK+WNmOeLrOihjOWLlSA8IHRhbmRva3Vrb3Vkb3VcIDsKK+iIquepuuiHquihm+maiiA8IGtvdWt1dWppZWl0YWlcIDsKK+Wkq+WppueUn+a0uyA8IGZ1dWZ1c2Vpa2F0c3VcIDsKK+iCieS9k+mWouS/giA8IG5pa3V0YWlrYW5rZWlcIDsKK+i7jeS6i+itpuWvnyA8IGd1bmppa2Vpc2F0c3VcIDsKK+aWsOWpmuaXheihjCA8IHNoaW5rb25yeW9rb3VcIDsKK+mZveaAp+WPjeW/nCA8IHlvdXNlaWhhbicnbm91XCA7Civou7jlt67lv5zlipsgPCBqaWt1c2FvdXJ5b2t1XCA7CivkurrpoZ7lrabogIUgPCBqaW5ydWlnYWt1c2hhXCA7Civmi77lvpfniakgPCBzaHV1dG9rdWJ1dHN1XCA7Civmrablo6vmsJfos6ogPCBidXNoaWtpc2hpdHN1XCA7CivnrKzkuIDkurrogIUgPCBkYWlpY2hpbmluc2hhXCA7CivlgInmlbfmlpkgPCBrdXJhc2hpa2lyeW91XCA7Civos4fmlpnlrqQgPCBzaGlyeW91c2hpdHN1XCA7CivmqZ/plqLmipXos4flrrYgPCBraWthbnRvdXNoaWthXCA7Civlrrbluq3nlJ/mtLsgPCBrYXRlaXNlaWthdHN1XCA7CivljbHpmbrkurrniakgPCBraWtlbmppbmJ1dHN1XCA7CivlpKflrabmlZnmjoggPCBkYWlnYWt1a3lvdWp1XCA7CivliY3pgLLpgYvli5UgPCB6ZW5zaGluJyd1bmRvdVwgOwor5rS75YuV5oiQ5p6cIDwga2F0c3Vkb3VzZWlrYVwgOwor57eP5ZCI5Y+O5pSvIDwgc291Z291c2h1dXNoaVwgOwor6LK354mp6KKLIDwga2FpbW9ub2J1a3Vyb1wgOwor5ZC45Y+O5YqbIDwga3l1dXNodXVyeW9rdVwgOwor5ZCE6aeF5YGc6LuKIDwga2FrdWVraXRlaXNoYVwgOwor54us56uL5Zu9IDwgZG9rdXJpdHN1a29rdVwgOwor6Kem5aqS5L2c55SoIDwgc2hva3ViYWlzYXlvdVwgOwor56eR5a2m5oqA6KGTIDwga2FnYWt1Z2lqdXRzdVwgOwor5Y2w5Yi355So57SZIDwgaW5zYXRzdXlvdXNoaVwgOwor5Zue6Lev6YGu5pat5qmfIDwga2Fpcm9zaGFkYW5raVwgOwor5Lq655qE6Ki85ougIDwgamludGVraXNob3Vrb1wgOwor5oqX6K2w5rS75YuVIDwga291Z2lrYXRzdWRvdVwgOwor5YWI5Y+W5b6X54K5IDwgc2Vuc2h1dG9rdXRlblwgOwor5qGc56WtIDwgc2FrdXJhbWF0c3VyaVwgOwor6KSH5ZCI5LyB5qWtIDwgZnVrdWdvdWtpZ3lvdVwgOwor54Sh5beu5Yil57SaIDwgbXVzYWJldHN1a3l1dVwgOwor5aSa5Zu957GN6LuNIDwgdGFrb2t1c2VraWd1blwgOwor56u25LqJ5L6h5qC8IDwga3lvdXNvdWtha2FrdVwgOwor56S+5Lya5Lq65p6gIDwgc2hha2Fpamlud2FrdVwgOwor5ZWG5qWt5Zyw5Yy6IDwgc2hvdWd5b3VjaGlrdVwgOwor6KGo5bGk5qeL6YCgIDwgaHlvdXNvdWtvdXpvdVwgOwor57K+56We6KGb55SfIDwgc2Vpc2hpbicnZWlzZWlcIDsKK+ihgOWwv+eXhyA8IGtldHN1bnlvdXNob3VcIDsKK+iIquepuuWGmeecnyA8IGtvdWt1dXNoYXNoaW5cIDsKK+S4iuaYh+awl+a1gSA8IGpvdXNob3VraXJ5dXVcIDsKK+WMl+Wkp+ilv+a0iyA8IGtpdGF0YWlzZWl5b3VcIDsKK+ihjOaUv+aMh+WwjiA8IGd5b3VzZWlzaGlkb3VcIDsKK+Wumue9rua8gealrSA8IHRlaWNoaWd5b2d5b3VcIDsKK+acgOmrmOe0muWTgSA8IHNhaWtvdWt5dXVoaW5cIDsKK+W9q+WIu+eJqSA8IGNob3Vrb2t1YnV0c3VcIDsKK+WHuumgreWRveS7pCA8IHNodXR0b3VtZWlyZWlcIDsKK+WgquW/jeiiiyA8IGthbicnbmluYnVrdXJvXCA7Civlh7rooYDpgY7lpJogPCBzaHVra2V0c3VrYXRhXCA7Civpm7vlrZDlh7rniYggPCBkZW5zaGlzaHVwcGFuXCA7CivnpL7plbflrqQgPCBzaGFjaG91c2hpdHN1XCA7CivoibLntKDntLDog54gPCBzaGlraXNvc2FpYm91XCA7CivogZbot6/liqDnl4XpmaIgPCBzZWlyb2thYnlvdWluXCA7CivoirHlq4HooaPoo7MgPCBoYW5heW9tZWlzaG91XCA7CivlsI/lj6Pnj77ph5EgPCBrb2d1Y2hpZ2Vua2luXCA7CivliIbpm6LkuLvnvqnogIUgPCBidW5yaXNodWdpc2hhXCA7CivljZrlrablpJrmiY0gPCBoYWt1Z2FrdXRhc2FpXCA7CivlpJbmp5jlpKflkI0gPCB0b3phbWFkYWlteW91XCA7Civlm73msJHkuLvmqKkgPCBrb2t1bWluc2h1a2VuXCA7Civlhazph5HmqKrpoJggPCBrb3VraW4nJ291cnlvdVwgOwor5oay5rOV6KiY5b+15pelIDwga2VucG91a2luZW5iaVwgOwor6L+R6YOK6L6y5qWtIDwga2lua291bm91Z3lvdVwgOwor5YWo5Zu95aSn5LyaIDwgemVua29rdXRhaWthaVwgOwor5ZCf6YGK6Kmp5Lq6IDwgZ2luJyd5dXVzaGlqaW5cIDsKK+WGt+awtOaRqeaTpiA8IHJlaXN1aW1hc2F0c3VcIDsKK+absuWtpumYv+S4liA8IGt5b2t1Z2FrdWFzZWlcIDsKK+S+oeagvOertuS6iSA8IGtha2FrdWt5b3Vzb3VcIDsKK+WKoOa4m+aKteaKl+WZqCA8IGthZ2VudGVpa291a2lcIDsKK+emgeaWreeXh+eKtiA8IGtpbmRhbnNob3Vqb3VcIDsKK+ernOaUmOiZjuaQjyA8IHJ5dXVqb3Vrb2hha3VcIDsKK+ato+WRs+mHjemHjyA8IHNob3VtaWp1dXJ5b3VcIDsKK+WFrOiovOW9ueWgtCA8IGtvdXNob3V5YWt1YmFcIDsKK+a4hea2vOmjsuaWmSA8IHNlaXJ5b3VpbnJ5b3VcIDsKK+S4vOWLmOWumiA8IGRvbmJ1cmlrYW5qb3VcIDsKK+avm+euoeePvuixoSA8IG1vdWthbmdlbnNob3VcIDsKK+S9nOaIpuWcsOWfnyA8IHNha3VzZW5jaGlpa2lcIDsKK+eOieWtkOS4vCA8IHRhbWFnb2RvbmJ1cmlcIDsKK+WHuuW8teaXheiyuyA8IHNodXRjaG91cnlvaGlcIDsKK+aUvumAgeeVque1hCA8IGhvdXNvdWJhbmd1bWlcIDsKK+eEoeWFjeiosemBi+i7oiA8IG11bWVua3lvdW50ZW5cIDsKK+e4ruWIt+eJiCA8IHNodWt1c2F0c3ViYW5cIDsKK+awuOS5heejgeefsyA8IGVpa3l1dWppc2hha3VcIDsKK+WjsuaOm+WLmOWumiA8IHVyaWtha2VrYW5qb3VcIDsKK+S7iuaXpeeahCA8IGtvbicnbmljaGl0ZWtpXCA7CivplpPlrq7mtbfls6EgPCBtYW1peWFrYWlreW91XCA7CivnjYTkuK3ml6XoqJggPCBnb2t1Y2h1dW5pa2tpXCA7CivmsojmgJ3pu5nogIMgPCBjaGluc2hpbW9ra291XCA7CivotoXlm73lrrbnmoQgPCBjaG91a29ra2F0ZWtpXCA7CivmtJ7lr5/lipsgPCBkb3VzYXRzdXJ5b2t1XCA7CivpmLLngavlu7rnr4kgPCBib3VrYWtlbmNoaWt1XCA7Civph5Hono3luILloLQgPCBraW4nJ3l1dXNoaWpvdVwgOwor6ZuG5Zuj5b+D55CGIDwgc2h1dWRhbnNoaW5yaVwgOwor5YWl56S+6Kmm6aiTIDwgbnl1dXNoYXNoaWtlblwgOwor6YG45oqe5YCk576kIDwgc2VudGFrdWNoaWd1blwgOwor5LiN5Y+v6KaW5YWJ57eaIDwgZnVrYXNoaWtvdXNlblwgOwor56K6546H6Kqk5beuIDwga2FrdXJpdHN1Z29zYVwgOwor6LK/5piT6Ieq55Sx5YyWIDwgYm91ZWtpaml5dXVrYVwgOwor56ys5Zub6ZqO57SaIDwgZGFpeW9ua2Fpa3l1dVwgOwor56m65rCX5Yi25YuV5qmfIDwga3V1a2lzZWlkb3VraVwgOwor6YCN6YGl5a2m5rS+IDwgc2hvdXlvdWdha3VoYVwgOwor6buS54K55ZGo5pyfIDwga29rdXRlbnNodXVraVwgOwor576O6KGT5a2m5qChIDwgYmlqdXRzdWdha2tvdVwgOwor5Y2K5q275Y2K55SfIDwgaGFuc2hpaGFuc2hvdVwgOwor5b+r6YCf6Zu76LuKIDwga2Fpc29rdWRlbnNoYVwgOwor5Y2X5YyX5oim5LqJIDwgbmFuYm9rdXNlbnNvdVwgOwor5bCP5YWQ5ZaY5oGvIDwgc2hvdW5pemVuc29rdVwgOwor5YaF5pS/5bmy5riJIDwgbmFpc2Vpa2Fuc2hvdVwgOwor5YWs5bmz5pS/562WIDwga291aGVpc2Vpc2FrdVwgOwor5bel5qWt6KaP5qC8IDwga291Z3lvdWtpa2FrdVwgOwor5Zub6KeS5Zub6Z2iIDwgc2hpa2FrdXNoaW1lblwgOwor5bCR5bm05bCR5aWzIDwgc2hvdW5lbnNob3Vqb1wgOwor5YaN6LKp5qWt6ICFIDwgc2FpaGFuZ3lvdXNoYVwgOwor6LaF6auY6YCf5bqmIDwgY2hvdWtvdXNva3Vkb1wgOwor6Kq/5p+75aCx5ZGKIDwgY2hvdXNhaG91a29rdVwgOwor5rW36Zuj5a+p5YikIDwga2FpbmFuc2hpbnBhblwgOwor55CG5a2m5L+u5aOrIDwgcmlnYWt1c2h1dXNoaVwgOwor5aSW55qE5qC55ougIDwgZ2FpdGVraWtvbmt5b1wgOwor5p2+6aOf6JmrIDwgbWF0c3VrdWltdXNoaVwgOwor55Sf5ZG95bel5a2mIDwgc2VpbWVpa291Z2FrdVwgOwor5aSp5L2R56We5YqpIDwgdGVuJyd5dXVzaGluam9cIDsKK+WkluWbveaXheihjCA8IGdhaWtva3VyeW9rb3VcIDsKK+WFseWQjOawtOagkyA8IGt5b3Vkb3VzdWlzZW5cIDsKK+aLoeWkp+Wdh+ihoSA8IGtha3VkYWlraW5rb3VcIDsKK+iKi+iUk+W8jyA8IGltb2R6dXJ1c2hpa2lcIDsKK+S6lOWNgeatqeeZvuatqSA8IGdvanVwcG9oeWFwcG9cIDsKK+izqumHj+aVsCA8IHNoaXRzdXJ5b3VzdXVcIDsKK+WHseaXi+Wwhui7jSA8IGdhaXNlbnNob3VndW5cIDsKK+WOn+eQhuS4u+e+qeiAhSA8IGdlbnJpc2h1Z2lzaGFcIDsKK+mbhuepjeWbnui3ryA8IHNodXVzZWtpa2Fpcm9cIDsKK+ijvumHjueUo+alrSA8IHN1c29ub3Nhbmd5b3VcIDsKK+mOrumtguW4sOelniA8IGNoaW5rb25raXNoaW5cIDsKK+WQiOagvOiAheWQjSA8IGdvdWtha3VzaGFtZWlcIDsKK+acieizh+agvOiAhSA8IHl1dXNoaWtha3VzaGFcIDsKK+WMluWtpuWPjeW/nCA8IGthZ2FrdWhhbicnbm91XCA7CivpnIDopoHkvpvntaYgPCBqdXlvdWt5b3VreXV1XCA7CivliKXphY3pgZQgPCBiZXRzdWhhaXRhdHN1XCA7Civlj6zllprku6TnirYgPCBzaG91a2FucmVpam91XCA7CivoqabpqJPli4nlvLcgPCBzaGlrZW5iZW5reW91XCA7CivmuKnlrqTlirnmnpwgPCBvbnNoaXRzdWtvdWthXCA7Civku4rml6Xmp5ggPCBrb24nJ25pY2hpc2FtYVwgOwor5pyJ6Ymk5p2h6JmrIDwgeXV1a291am91Y2h1dVwgOwor5YaF55qE5qC55ougIDwgbmFpdGVraWtvbmt5b1wgOwor6L+R5rW35ryB5qWtIDwga2lua2FpZ3lvZ3lvdVwgOwor5Yag5aSn5LyaIDwga2FubXVyaXRhaWthaVwgOwor5rG65oim5oqV56WoIDwga2Vzc2VudG91aHlvdVwgOwor5YWx5ZCM56S+5LyaIDwga3lvdWRvdXNoYWthaVwgOwor6L+96KSH5puyIDwgdHN1aWZ1a3VreW9rdVwgOwor5ZSQ6I2J5qih5qeYIDwga2FyYWt1c2Ftb3lvdVwgOwor5YyF55qu5YiH5patIDwgaG91aGlzZXRzdWRhblwgOwor5a6a5pyf5Y+W5byVIDwgdGVpa2l0b3JpaGlraVwgOwor5Lm+54el5rSX5r+vIDwga2Fuc291c2VudGFrdVwgOwor6ZuG5ZCI5ZCN6KmeIDwgc2h1dWdvdW1laXNoaVwgOwor5bCP5Z6L5paw6IGeIDwga29nYXRhc2hpbmJ1blwgOwor5aSa5YWD5paH5YyW6KuWIDwgdGFnZW5idW5rYXJvblwgOwor6K2y5rih5oCn6aCQ6YeRIDwgam91dG9zZWl5b2tpblwgOwor5Yy755mC5pa96KitIDwgaXJ5b3VzaGlzZXRzdVwgOwor5YuV54mp5rK56ISCIDwgZG91YnV0c3V5dXNoaVwgOwor5Y+N6Z2i5pWZ5birIDwgaGFubWVua3lvdXNoaVwgOwor57WE5ZCI6aCtIDwga3VtaWFpZ2FzaGlyYVwgOwor5pel5bi45Lya6KmxIDwgbmljaGlqb3VrYWl3YVwgOwor6Ly45YWl5qWt6ICFIDwgeXVueXV1Z3lvdXNoYVwgOwor5qiZ5rqW5L6h5qC8IDwgaHlvdWp1bmtha2FrdVwgOwor5LiN5aaK5omL6KGTIDwgZnVuaW5zaHVqdXRzdVwgOwor5bGx54yr5LqJ6K2wIDwgeWFtYW5la29zb3VnaVwgOwor5Ye65LiW6ZaT55qEIDwgc2h1c3Nla2VudGVraVwgOwor5bm05Lit6KGM5LqLIDwgbmVuY2h1dWd5b3VqaVwgOwor6Y6M5YCJ5pmC5LujIDwga2FtYWt1cmFqaWRhaVwgOwor5pWj5q2p5peBIDwgc2FucG9rYXRhZ2F0YVwgOwor5L6b6KiX54mpIDwga3lvdXRha3VidXRzdVwgOwor54KO55eH55eF5bejIDwgZW5zaG91YnlvdXNvdVwgOwor5rOo5oSP5Lq654mpIDwgY2h1dWlqaW5idXRzdVwgOwor5Zu95a625Li7576p6ICFIDwga29ra2FzaHVnaXNoYVwgOwor5pel5rSq6Kaq5ZaEIDwgbmlra291c2hpbnplblwgOwor6L+95Yqg5rOo5paHIDwgdHN1aWthY2h1dW1vblwgOwor562G5YaZ55Wl5a2XIDwgaGlzc2hhcnlha3VqaVwgOwor54yu6KGA6YGL5YuVIDwga2Vua2V0c3V1bmRvdVwgOwor6Iie5Y+w6Iq46KGTIDwgYnV0YWlnZWlqdXRzdVwgOwor5Ye66aGY5Lq6IDwgc2h1dHN1Z2FuJyduaW5cIDsKK+ippumok+ebo+edoyA8IHNoaWtlbmthbnRva3VcIDsKK+aSpOmgreW+ueWwviA8IHRldHRvdXRldHN1YmlcIDsKK+eWvumiqOi/hembtyA8IHNoaXBwdXVqaW5yYWlcIDsKK+W4guWgtOeSsOWigyA8IHNoaWpvdWthbmt5b3VcIDsKK+WOn+aIkOWyqeefsyA8IGdlbnNlaWdhbnNla2lcIDsKK+WJjeWkp+e1semgmCA8IHplbmRhaXRvdXJ5b3VcIDsKK+W8t+WItumAgemChCA8IGt5b3VzZWlzb3VrYW5cIDsKK+WQjOalree1hOWQiCA8IGRvdWd5b3VrdW1pYWlcIDsKK+mbu+awl+WJg+WIgCA8IGRlbmtpa2FtaXNvcmlcIDsKK+S6i+WLmeWxgOmVtyA8IGppbXVreW9rdWNob3VcIDsKK+e1jOa4iOaUuemdqSA8IGtlaXphaWthaWtha3VcIDsKK+ayv+WyuOitpuWCmemaiiA8IGVuZ2Fua2VpYml0YWlcIDsKK+awkeS/l+iKuOiDvSA8IG1pbnpva3VnZWlub3VcIDsKK+eymOedgOWKmyA8IG5lbmNoYWt1cnlva3VcIDsKK+WAi+S6uuS4u+e+qeiAhSA8IGtvamluc2h1Z2lzaGFcIDsKK+WPjuepq+S6iOaDsyA8IHNodXVrYWt1eW9zb3VcIDsKK+Whqei+m+icu+ibiSA8IHNoaW9rYXJhdG9uYm9cIDsKK+Wuv+aziuaWmSA8IHNodWt1aGFrdXJ5b3VcIDsKK+e0huS9meabsuaKmCA8IHV5b2t5b2t1c2V0c3VcIDsKK+altei2heefreazoiA8IGdva3VjaG91dGFucGFcIDsKK+S5s+eqhCA8IGNoaWNoaXNoaWJvcmlcIDsKK+S4u+aoqeS+teeKryA8IHNodWtlbnNoaW5wYW5cIDsKK+S4reaAp+a0l+WJpCA8IGNodXVzZWlzZW56YWlcIDsKK+iyqOeJqeWIl+i7iiA8IGthbW90c3VyZXNzaGFcIDsKK+ihgOa4heeZguazlSA8IGtlc3NlaXJ5b3Vob3VcIDsKK+aWsOahiOeJueiosSA8IHNoaW4nJ2FudG9ra3lvXCA7CivmmK/mmK/pnZ7pnZ7kuLvnvqkgPCB6ZXplaGloaXNodWdpXCA7Civmrbvlvoznoaznm7QgPCBzaGlnb2tvdWNob2t1XCA7CivllK/niankuLvnvqkgPCB5dWlidXRzdXNodWdpXCA7Civml6XpnLLmiKbkuokgPCBuaWNoaXJvc2Vuc291XCA7CivlkIznm5/mnaHntIQgPCBkb3VtZWlqb3V5YWt1XCA7CivkuIDmlKvljYPph5EgPCBpa2tha2t1c2Vua2luXCA7Civpmo7ntJrpl5jkuokgPCBrYWlreXV1dG91c291XCA7CivnhrHnoazljJbliaQgPCBuZXRzdWtvdWthemFpXCA7CivlsILnlKjlm57nt5ogPCBzZW4nJ3lvdWthaXNlblwgOwor5Lqk5o+b5a2m55SfIDwga291a2FuZ2FrdXNlaVwgOwor5YuV57ea6KiI55S7IDwgZG91c2Vua2Vpa2FrdVwgOwor5aSW5Lqk5aeU5ZOh6ZW3IDwgZ2Fpa291aWluY2hvdVwgOwor5rCR5pS/6ZW35a6YIDwgbWluc2VpY2hvdWthblwgOwor5Yik5pat5Lit5q2iIDwgaGFuZGFuY2h1dXNoaVwgOwor5p6d5Z6C5qGcIDwgc2hpZGFyZXpha3VyYVwgOwor5Y+k5Luj57SrIDwga29kYWltdXJhc2FraVwgOwor5bGA5omA5YiG5bKQIDwga3lva3VzaG9idW5raVwgOwor6YCa5bi45Zu95LyaIDwgdHN1dWpvdWtva2thaVwgOwor5p6d5Z6C5p+zIDwgc2hpZGFyZXlhbmFnaVwgOwor5rex57eR6ImyIDwgZnVrYW1pZG9yaWlyb1wgOwor5pWw5YCk6Kej5p6QIDwgc3V1Y2hpa2Fpc2VraVwgOwor54Sh5oq15oqX5Li7576pIDwgbXV0ZWlrb3VzaHVnaVwgOwor6LuN5YKZ5ouh5by1IDwgZ3VuYmlrYWt1Y2hvdVwgOwor6YGp6ICF55Sf5a2YIDwgdGVraXNoYXNlaXpvblwgOwor57K+56We6ZGR5a6aIDwgc2Vpc2hpbmthbnRlaVwgOwor56mN6Zuq6YePIDwgc2VraXNldHN1cnlvdVwgOwor6YmE6YGT6Ly46YCBIDwgdGV0c3Vkb3V5dXNvdVwgOwor56CU56m25a6kIDwga2Vua3l1dXNoaXRzdVwgOwor56ys5LiJ6ZqO57SaIDwgZGFpc2Fua2Fpa3l1dVwgOwor5Y2D5oWL5LiH5qeYIDwgc2VudGFpYmFuJyd5b3VcIDsKK+mbu+WtkOW3peWtpiA8IGRlbnNoaWtvdWdha3VcIDsKK+e1jOa4iOeKtuazgSA8IGtlaXphaWpvdWt5b3VcIDsKK+ekvuS8muaVmeiCsiA8IHNoYWthaWt5b3Vpa3VcIDsKK+i+suiAleawkeaXjyA8IG5vdWtvdW1pbnpva3VcIDsKK+WFqOi6q+WFqOmciiA8IHplbnNoaW56ZW5yZWlcIDsKK+WFrOensOizh+acrCA8IGtvdXNob3VzaGlob25cIDsKK+Wkp+Wtl+eJh+WxsSA8IG9vYXpha2F0YXlhbWFcIDsKK+iWrOW4q+WmguadpSA8IHlha3VzaGlueW9yYWlcIDsKK+aUvuWwhOiDveaxmuafkyA8IGhvdXNoYW5vdW9zZW5cIDsKK+mbu+awl+iHquWLlei7iiA8IGRlbmtpamlkb3VzaGFcIDsKK+izouaJgCA8IGthc2hpa29kb2tvcm9cIDsKK+WQjOebn+S8keagoSA8IGRvdW1laWt5dXVrb3VcIDsKK+W3peS9nOWupCA8IGtvdXNha3VzaGl0c3VcIDsKK+S4reWkruioiOeUuyA8IGNodXVvdWtlaWtha3VcIDsKK+S4reWkrumbhuaoqSA8IGNodXVvdXNodXVrZW5cIDsKK+S4ieinkuiyv+aYkyA8IHNhbmtha3Vib3Vla2lcIDsKK+WIhuaekOWMluWtpiA8IGJ1bnNla2lrYWdha3VcIDsKK+WwkeWjruWjq+WumCA8IHNob3Vzb3VzaGlrYW5cIDsKK+azleeahOagueaLoCA8IGhvdXRla2lrb25reW9cIDsKK+auuuWus+S6i+S7tiA8IHNhdHN1Z2FpamlrZW5cIDsKK+mdoumtgiA8IHRzdXJhZGFtYXNoaWlcIDsKK+iHqueEtuWil+WPjiA8IHNoaXplbnpvdXNodXVcIDsKK+iJr+aAp+iFq+eYjSA8IHJ5b3VzZWlzaHV5b3VcIDsKK+S9nOWKh+ihkyA8IHNha3VnZWtpanV0c3VcIDsKK+efreaXpeaciCA8IHRhbmppdHN1Z2V0c3VcIDsKK+i7iuaOjOWupCA8IHNoYXNob3VzaGl0c3VcIDsKK+mAmuWLpOmbu+i7iiA8IHRzdXVraW5kZW5zaGFcIDsKK+WwkeW5tOeKr+e9qiA8IHNob3VuZW5oYW56YWlcIDsKK+awtOmFuOWMlueJqSA8IHN1aXNhbmthYnV0c3VcIDsKK+imquaImuefpeW3sSA8IHNoaW5zZWtpY2hpa2lcIDsKK+WNmOeLrOaxuueulyA8IHRhbmRva3VrZXNzYW5cIDsKK+Wbvemam+aDheWLoiA8IGtva3VzYWlqb3VzZWlcIDsKK+ihl+mgrea8lOiqrCA8IGdhaXRvdWVuemV0c3VcIDsKK+aso+WWnOmbgOi6jSA8IGtpbmtpamFrdXlha3VcIDsKK+WTgeeoruaUueiJryA8IGhpbnNodWthaXJ5b3VcIDsKK+WFrOensOmmrOWKmyA8IGtvdXNob3ViYXJpa2lcIDsKK+Wbm+WFreaZguS4rSA8IHNoaXJva3VqaWNodXVcIDsKK+S6pOmAmumBruaWrSA8IGtvdXRzdXVzaGFkYW5cIDsKK+Wkp+Wtpue0m+S6iSA8IGRhaWdha3VmdW5zb3VcIDsKK+iyoeaUv+WPjuaUryA8IHphaXNlaXNodXVzaGlcIDsKK+ihhuWPguS4oemZoiA8IHNodXVzYW5yeW91aW5cIDsKK+iAkOeBq+W7uueviSA8IHRhaWtha2VuY2hpa3VcIDsKK+imluWKm+aknOafuyA8IHNoaXJ5b2t1a2Vuc2FcIDsKK+Wwj+WIgOe0sOW3pSA8IGtvZ2F0YW5hemFpa3VcIDsKK+izqueWkeW/nOetlCA8IHNoaXRzdWdpb3V0b3VcIDsKK+aNnOafu+W9k+WxgCA8IHNvdXNhdG91a3lva3VcIDsKK+iouuWvn+aWmSA8IHNoaW5zYXRzdXJ5b3VcIDsKK+S/uOe1puiiiyA8IGhvdWt5dXVidWt1cm9cIDsKK+eFp+iRieeLguiogCA8IHRlcmloYWt5b3VnZW5cIDsKK+WHuuW+gei7jeS6uiA8IHNodXNzZWlndW5qaW5cIDsKK+WEqueUn+S/neitt+azlSA8IHl1dXNlaWhvZ29ob3VcIDsKK+a2iOWkseeCuSA8IHNob3VzaGl0c3V0ZW5cIDsKK+aUvuWwhOiDvembsiA8IGhvdXNoYW5vdWd1bW9cIDsKK+ekvuS8muaUv+etliA8IHNoYWthaXNlaXNha3VcIDsKK+mbu+altembu+S9jSA8IGRlbmt5b2t1ZGVuJydpXCA7Civkurrlt6XpgI/mnpAgPCBqaW5rb3V0b3VzZWtpXCA7CivopIflkIjlqpLkvZMgPCBmdWt1Z291YmFpdGFpXCA7CivkvY/msJHmipXnpaggPCBqdXVtaW50b3VoeW91XCA7Civlt6Xmpa3lnLDluK8gPCBrb3VneW91Y2hpdGFpXCA7CivlkbzlkLjlm7Dpm6MgPCBrb2t5dXVrb24nJ25hblwgOwor6Kqt5pu45a6kIDwgZG9rdXNob3NoaXRzdVwgOwor6aSK6K235pa96KitIDwgeW91Z29zaGlzZXRzdVwgOwor6Ly45Ye66KaP5Yi2IDwgeXVzaHV0c3VraXNlaVwgOwor5Zyw5pa55LqL5YuZ5omAIDwgY2hpaG91amltdXNob1wgOwor5oim5Yqb57WE5oiQIDwgc2Vucnlva3Vzb3NlaVwgOwor57Wx5LiA6KaL6KejIDwgdG91aXRzdWtlbmthaVwgOwor5YKs55yg55mC5rOVIDwgc2FpbWlucnlvdWhvdVwgOwor5bel5qWt6KO95ZOBIDwga291Z3lvdXNlaWhpblwgOwor5b255Lq65qC55oCnIDwgeWFrdW5pbmtvbmpvdVwgOwor54us5oi/55uj56aBIDwgZG9rdWJvdWthbmtpblwgOwor5a6/5rOK5YWIIDwgc2h1a3VoYWt1c2FraVwgOwor5bCO6YCa5oq15oqXIDwgZG91dHN1dXRlaWtvdVwgOwor5Y2U6Kq/5Li7576pIDwga3lvdWNob3VzaHVnaVwgOwor5Lya6KiI5aCx5ZGKIDwga2Fpa2VpaG91a29rdVwgOwor5Y+w5rm+5rW35bOhIDwgdGFpd2Fua2Fpa3lvdVwgOwor5pel5riF5oim5LqJIDwgbmlzc2hpbnNlbnNvdVwgOwor5a6j6KiA55m66KGoIDwgc2VuZ2VuaGFwcHlvdVwgOwor5aSp5L2T5YaZ55yfIDwgdGVudGFpc2hhc2hpblwgOwor6Ly45YWl6Ieq55Sx5YyWIDwgeXVueXV1aml5dXVrYVwgOwor6YeN6YeP5Zm45pWwIDwganV1cnlvdXRvbnN1dVwgOwor6K2Y5Yil5a2QIDwgc2hpa2liZXRzdXNoaVwgOwor5Y2X5Y2K55CDIDwgbWluYW1paGFua3l1dVwgOwor5piO6Y+h5q2i5rC0IDwgbWVpa3lvdXNoaXN1aVwgOwor5bm06ZaT6KiI55S7IDwgbmVua2Fua2Vpa2FrdVwgOwor54Sh5Yip5oGv5YK15YuZIDwgbXVyaXNva3VzYWltdVwgOwor5Y+j6L+w562G6KiYIDwga291anV0c3VoaWtraVwgOwor5Zu96Zqb6YCa6LKoIDwga29rdXNhaXRzdXVrYVwgOwor6IG35ZOh5a6kIDwgc2hva3VpbnNoaXRzdVwgOwor56Gr6buE6YW45YyW54mpIDwgaW91c2Fua2FidXRzdVwgOwor5YGl5bq36Ki65patIDwga2Vua291c2hpbmRhblwgOwor5qGD5bGx5pmC5LujIDwgbW9tb3lhbWFqaWRhaVwgOwor6IG35aC057WQ5amaIDwgc2hva3ViYWtla2tvblwgOwor55Kw5aKD5ZWP6aGMIDwga2Fua3lvdW1vbmRhaVwgOwor6Ki85Lq65Zaa5ZWPIDwgc2hvdW5pbmthbm1vblwgOwor5L+h546E6KKLIDwgc2hpbmdlbmJ1a3Vyb1wgOwor5pS75pKD5pa55ZCRIDwga291Z2VraWhvdWtvdVwgOwor56u25LqJ5aOy6LK3IDwga3lvdXNvdWJhaWJhaVwgOwor6JGX5L2c5qip5rOVIDwgY2hvc2FrdWtlbmhvdVwgOwor5Zu96Zqb56S+5LyaIDwga29rdXNhaXNoYWthaVwgOwor5paw5Yi26auY5qChIDwgc2hpbnNlaWtvdWtvdVwgOwor5a+E55Sf6Jmr55eHIDwga2lzZWljaHV1c2hvdVwgOwor5Lit5oqY5bi95a2QIDwgbmFrYW9yZWJvdXNoaVwgOwor5YWs6ZaL57e057+SIDwga291a2FpcmVuc2h1dVwgOwor57WM5riI5pS/562WIDwga2VpemFpc2Vpc2FrdVwgOwor5ZCI5oiQ5YaZ55yfIDwgZ291c2Vpc2hhc2hpblwgOwor5paw6YCy5L2c5a62IDwgc2hpbnNoaW5zYWtrYVwgOwor5oGL54mp6KqeIDwga29pbW9ub2dhdGFyaVwgOwor6YW457Sg5L6b57WmIDwgc2Fuc29reW91a3l1dVwgOwor5Lqk6YCa5YWs56S+IDwga291dHN1dWtvdXNoYVwgOwor5rS75q666Ieq5ZyoIDwga2Fzc2F0c3VqaXphaVwgOwor6Zu76YCB5YaZ55yfIDwgZGVuc291c2hhc2hpblwgOwor5YWo55+l5YWo6IO9IDwgemVuY2hpemVuJydub3VcIDsKK+S4gOeykueoriA8IGhpdG90c3VidWRhbmVcIDsKK+WbveWLouiqv+afuyA8IGtva3VzZWljaG91c2FcIDsKK+a1gemAmuapn+aniyA8IHJ5dXV0c3V1a2lrb3VcIDsKK+WFteWZqOi8uOWHuiA8IGhlaWtpeXVzaHV0c3VcIDsKK+Wkqeeah+W0h+aLnSA8IHRlbicnbm91c3V1aGFpXCA7Civkv53oqLzkurropoEgPCBob3Nob3VuaW4nJ3lvdVwgOwor5rWu6YGK55Sf54mpIDwgZnV5dXVzZWlidXRzdVwgOwor57WC6Lqr5L+d6Zm6IDwgc2h1dXNoaW5ob2tlblwgOwor57eR5p+x55+zIDwgcnlva3VjaHV1c2VraVwgOwor5oe46LOe6KuW5paHIDwga2Vuc2hvdXJvbmJ1blwgOwor6YGT6Lev5o6D6Zmk5Lq6IDwgZG91cm9zb3VqaWppblwgOwor5biC5aC05pS56Z2pIDwgc2hpam91a2Fpa2FrdVwgOwor6Zu75Yqb6ZyA6KaBIDwgZGVucnlva3VqdXlvdVwgOwor6Ieo5bqK5bCL5ZWPIDwgcmluc2hvdWppbm1vblwgOwor6Zmw5qW157ea566hIDwgaW5reW9rdXNlbmthblwgOwor5peL5YWJ5YiG5p6QIDwgc2Vua291YnVuc2VraVwgOwor5YyW55+z54eD5paZIDwga2FzZWtpbmVucnlvdVwgOwor6Zu75L+h54K65pu/IDwgZGVuc2hpbmthd2FzZVwgOwor5LuP5L2cIDwgaG90b2tlZHp1a3VydVwgOwor5oeQ5Lit6Zu754GvIDwga2FpY2h1dWRlbnRvdVwgOwor5omN6Imy5YW85YKZIDwgc2Fpc2hva3VrZW5iaVwgOwor5p2x5Y2XIDwgaGlnYXNoaW1pbmFtaVwgOwor5oyH5bCO6KaB6aCYIDwgc2hpZG91eW91cnlvdVwgOwor6YO15L6/5bm06YeRIDwgeXV1YmluJyduZW5raW5cIDsKK+mWoumAo+WVhuWTgSA8IGthbnJlbnNob3VoaW5cIDsKK+mZkOeVjOeKtuazgSA8IGdlbmthaWpvdWt5b3VcIDsKK+S7gei8quWKoOeLguiogCA8IG5pd2FrYWt5b3VnZW5cIDsKK+ePvuWcqOWujOS6hiA8IGdlbnphaWthbnJ5b3VcIDsKK+WItue0hOS8neaQrCA8IHNlaXlha3VkZW5wYW5cIDsKK+S4uOS4gOmAsemWkyA8IG1hcnVpc3NodXVrYW5cIDsKK+W3pealreWbo+WcsCA8IGtvdWd5b3VkYW5jaGlcIDsKK+altealvea1hOWcnyA8IGdva3VyYWt1am91ZG9cIDsKK+iHquiHquWFrO+8k+WFmiA8IGppamlrb3VzYW50b3VcIDsKK+awl+euoeaUr+iCuueCjiA8IGtpa2Fuc2hpaGFpZW5cIDsKK+WkmumHjeWCteWLmeiAhSA8IHRhanV1c2FpbXVzaGFcIDsKK+WMluWtpuWIhuaekCA8IGthZ2FrdWJ1bnNla2lcIDsKK+irruWVj+WnlOWToeS8miA8IHNoaW1vbicnaWlua2FpXCA7CivlkIzngrnmsbrli50gPCBkb3V0ZW5rZXNzaG91XCA7CivkvZPlpJbpm6LohLEgPCB0YWlnYWlyaWRhdHN1XCA7CivnlJ/nianlhbXlmaggPCBzZWlidXRzdWhlaWtpXCA7CivljZjpn7Pnr4Doqp4gPCB0YW4nJ29uc2V0c3Vnb1wgOwor5pS75pKD6ZqK5b2iIDwga291Z2VraXRhaWtlaVwgOwor5rOV5Lq65omA5b6XIDwgaG91amluc2hvdG9rdVwgOwor5aSn6YCG5LqL5Lu2IDwgdGFpZ3lha3VqaWtlblwgOwor5Y6f5aeL5pWZ5LyaIDwgZ2Vuc2hpa3lvdWthaVwgOwor5L6h5qC85Y2U5a6aIDwga2FrYWt1a3lvdXRlaVwgOwor5a+T5oSP5bCP6KqsIDwgZ3V1aXNob3VzZXRzdVwgOwor5piU5rCX6LOqIDwgbXVrYXNoaWthdGFnaVwgOwor5bCC6ZaA5oqA6KGTIDwgc2VubW9uZ2lqdXRzdVwgOwor5ouh5by15Y+v6IO9IDwga2FrdWNob3VrYW5vdVwgOwor5L+E5YuJ5by3IDwgbml3YWthYmVua3lvdVwgOwor5oCl6YCy5Li7576pIDwga3l1dXNoaW5zaHVnaVwgOwor6KiY5b+15byP5YW4IDwga2luZW5zaGlraXRlblwgOwor56u25ZCI6ISx57eaIDwga3lvdWdvdWRhc3NlblwgOwor5pqR5Lit5LyR5pqHIDwgc2hvY2h1dWt5dXVrYVwgOwor57mB5paH57if56S8IDwgaGFuYnVuam9rdXJlaVwgOwor55uu5qiZ566h55CGIDwgbW9rdWh5b3VrYW5yaVwgOwor5pa55ZCR6Kaz5b+1IDwgaG91a291a2FuJyduZW5cIDsKK+a1t+W6lembu+S/oSA8IGthaXRlaWRlbnNoaW5cIDsKK+alreeVjOWLleWQkSA8IGd5b3VrYWlkb3Vrb3VcIDsKK+W/heimgee1jOiyuyA8IGhpdHN1eW91a2VpaGlcIDsKK+awtOeOieaooeanmCA8IG1penV0YW1hbW95b3VcIDsKK+mAsuWtpueOhyA8IHNoaW5nYWt1cml0c3VcIDsKK+WHuuW+geWutuaXjyA8IHNodXNzZWlrYXpva3VcIDsKK+e1jOW4uOWPjuaUryA8IGtlaWpvdXNodXVzaGlcIDsKK+WcsOeQg+enkeWtpiA8IGNoaWt5dXVrYWdha3VcIDsKK+aDheWgseaKgOihkyA8IGpvdWhvdWdpanV0c3VcIDsKK+auv+anmOibmSA8IHRvbm9zYW1hZ2FlcnVcIDsKK+mrmOmrmOW6pumjm+ihjCA8IGtvdWtvdWRvaGlrb3VcIDsKK+epuuS4reWIhuinoyA8IGt1dWNodXVidW5rYWlcIDsKK+W8t+WItuWKtOWDjSA8IGt5b3VzZWlyb3Vkb3VcIDsKK+majue0muaEj+itmCA8IGthaWt5dXVpc2hpa2lcIDsKK+WNmuWjq+irluaWhyA8IGhha3VzaGlyb25idW5cIDsKK+S6uuagvOW9ouaIkCA8IGppbmtha3VrZWlzZWlcIDsKK+e1ueezuOe0oee4viA8IGtlbnNoaWJvdXNla2lcIDsKK+iBt+WgtOmXmOS6iSA8IHNob2t1YmF0b3Vzb3VcIDsKK+mdmeiEiOihgCA8IGpvdW15YWt1a2V0c3VcIDsKK+aVmeiCsuWtpumDqCA8IGt5b3Vpa3VnYWt1YnVcIDsKK+WkiemAn+ijhee9riA8IGhlbnNva3Vzb3VjaGlcIDsKK+ecn+WGhuecn+ePoCA8IHNoaW4nJ2Vuc2hpbmp1XCA7Civlm73msJHntYzmuIggPCBrb2t1bWlua2VpemFpXCA7CivkuIDnrYvpgZMgPCBoaXRvc3VqaW1pY2hpXCA7CivlhoXpnaLmj4/lhpkgPCBuYWltZW5ieW91c2hhXCA7CivlqpLkvZPntYLnq68gPCBiYWl0YWlzaHV1dGFuXCA7Civlv4PnkIbnmYLms5UgPCBzaGlucmlyeW91aG91XCA7CivmgKfnmoTplqLkv4IgPCBzZWl0ZWtpa2Fua2VpXCA7CivnhKHpiq3po7Lpo58gPCBtdXNlbicnaW5zaG9rdVwgOwor5bCx5qWt546HIDwgc2h1dWd5b3VyaXRzdVwgOwor56+E55aH5paH5rOVIDwgaGFuY2h1dWJ1bnBvdVwgOwor5YaF57eS6KmxIDwgbmFpc2hvYmFuYXNoaVwgOwor6ZW35pyf5YCf5qy+IDwgY2hvdWtpc2hha2thblwgOwor5YWo5L2T6ZuG5ZCIIDwgemVudGFpc2h1dWdvdVwgOwor5Y+z5bCP5ous5bynIDwgbWlnaXNob3VrYWtrb1wgOwor5Luu5oOz5pW15Zu9IDwga2Fzb3V0ZWtpa29rdVwgOwor6LqB6ayx6LOqIDwgc291dXRzdXNoaXRzdVwgOwor5qW15qW95b6A55SfIDwgZ29rdXJha3VvdWpvdVwgOwor5Yid562J5pWZ6IKyIDwgc2hvdG91a3lvdWlrdVwgOwor6KGM5pS/5ZG95LukIDwgZ3lvdXNlaW1laXJlaVwgOwor5a++5Zyw5pS75pKDIDwgdGFpY2hpa291Z2VraVwgOwor6Ieq54S25o+P5YaZIDwgc2hpemVuYnlvdXNoYVwgOwor6YeR6J6N6LOH5pysIDwga2luJyd5dXVzaGlob25cIDsKK+eEoeiDveWKm+iAhSA8IG11bm91cnlva3VzaGFcIDsKK+WMluWtpuW3pealrSA8IGthZ2FrdWtvdWd5b3VcIDsKK+ihjOaUv+WMuueUuyA8IGd5b3VzZWlrdWtha3VcIDsKK+Wtpue/kui+nuWFuCA8IGdha3VzaHV1aml0ZW5cIDsKK+WbveS8muitsOS6i+WggiA8IGtva2thaWdpamlkb3VcIDsKK+mWqOmWpeaUv+ayuyA8IGtlaWJhdHN1c2VpamlcIDsKK+S6jOWNgeWbm+evgOawlyA8IG5panV1c2hpc2Vra2lcIDsKK+S6i+alreaLoeWFhSA8IGppZ3lvdWtha3VqdXVcIDsKK+i+suadkeW3pealrSA8IG5vdXNvbmtvdWd5b3VcIDsKK+eni+mbqOWJjee3miA8IGFraXNhbWV6ZW5zZW5cIDsKK+eEoeW9ouaWh+WMluiyoSA8IG11a2VpYnVua2F6YWlcIDsKK+WFseWQjOi+suWgtCA8IGt5b3Vkb3Vub3Vqb3VcIDsKK+Wls+aoqeaLoeW8tSA8IGpva2Vua2FrdWNob3VcIDsKK+ism+e/kuS8muWgtCA8IGtvdXNodXVrYWlqb3VcIDsKK+axmuafk+eJqeizqiA8IG9zZW5idXNzaGl0c3VcIDsKK+eKtuazgeWIpOaWrSA8IGpvdWt5b3VoYW5kYW5cIDsKK+W9k+ipsuWumOW6gSA8IHRvdWdhaWthbmNob3VcIDsKK+S7suS7i+iyv+aYkyA8IGNodXVrYWlib3Vla2lcIDsKK+WbveWGheW4guWgtCA8IGtva3VuYWlzaGlqb3VcIDsKK+S4gOaemueci+advyA8IGljaGltYWlrYW5iYW5cIDsKK+W4guWgtOiHqueUseWMliA8IHNoaWpvdWppeXV1a2FcIDsKK+e1jOWWtuWkmuinkuWMliA8IGtlaWVpdGFrYWt1a2FcIDsKK+eEoee3mumAmuS/oSA8IG11c2VudHN1dXNoaW5cIDsKK+e1jOa4iOWkp+WbvSA8IGtlaXphaXRhaWtva3VcIDsKK+S4u+aIkeS4u+e+qeiAhSA8IHNodWdhc2h1Z2lzaGFcIDsKK+aal+WPt+WMluaJi+azlSA8IGFuZ291a2FzaHVob3VcIDsKK+WPjeekvuS8mueahCA8IGhhbnNoYWthaXRla2lcIDsKK+S4gOWIqeS4gOWusyA8IGljaGlyaWljaGlnYWlcIDsKK+S6jOW+i+iDjOWPjSA8IG5pcml0c3VoYWloYW5cIDsKK+W+qeWFg+S9nOalrSA8IGZ1a3VnZW5zYWd5b3VcIDsKK+S6uumWk+eIhuW8viA8IG5pbmdlbmJha3VkYW5cIDsKK+Wto+evgOWKtOWDjSA8IGtpc2V0c3Vyb3Vkb3VcIDsKK+mZuOi7jeWkp+iHoyA8IHJpa3VndW5kYWlqaW5cIDsKK+aWreaKteaKl+inkiA8IGRhbnRlaWtvdWtha3VcIDsKK+eGseWKueeOhyA8IG5ldHN1a291cml0c3VcIDsKK+S4jeimi+i7ouiKuOiAhSA8IG1penV0ZW5nZWlzaGFcIDsKK+ebrueahOeJqSA8IG1va3V0ZWtpYnV0c3VcIDsKK+mAmuS/oeapn+mWoiA8IHRzdXVzaGlua2lrYW5cIDsKK+WPjeeZuuWKmyA8IGhhbnBhdHN1cnlva3VcIDsKK+WGmeecn+WHuOeJiCA8IHNoYXNoaW50b3BwYW5cIDsKK+akjeeJqeiqjCA8IHNob2t1YnV0c3VzaGlcIDsKK+WMluWtpueZguazlSA8IGthZ2FrdXJ5b3Vob3VcIDsKK+WKn+WIqeS4u+e+qeiAhSA8IGtvdXJpc2h1Z2lzaGFcIDsKK+e2see0gOeym+atoyA8IGtvdWtpc2h1a3VzZWlcIDsKK+eojuWItuaUuemdqSA8IHplaXNlaWthaWtha3VcIDsKK+iqv+WBnOijgeWIpCA8IGNob3V0ZWlzYWliYW5cIDsKK+eEoee9quWIpOaxuiA8IG11emFpaGFua2V0c3VcIDsKK+WkqeeJmyA8IGthbWlraXJpbXVzaGlcIDsKK+i7jeS6i+aIpueVpSA8IGd1bmppc2Vucnlha3VcIDsKK+itpuWvn+WKmyA8IGtlaXNhdHN1cnlva3VcIDsKK+iHqOW6iuippumokyA8IHJpbnNob3VzaGlrZW5cIDsKK+mYsuatouaMh+mHnSA8IGJvdXNoaXNoaXNoaW5cIDsKK+awl+ixoeims+a4rCA8IGtpc2hvdWthbnNva3VcIDsKK+iInuWPsOeUn+a0uyA8IGJ1dGFpc2Vpa2F0c3VcIDsKK+Wkp+WQjeaXheihjCA8IGRhaW15b3VyeW9rb3VcIDsKK+S9nOalreeZguazlSA8IHNhZ3lvdXJ5b3Vob3VcIDsKK+WkluWbveeCuuabvyA8IGdhaWtva3VrYXdhc2VcIDsKK+mDveeri+mrmOagoSA8IHRvcml0c3Vrb3Vrb3VcIDsKK+W9ouW8j+S4u+e+qSA8IGtlaXNoaWtpc2h1Z2lcIDsKK+WMluWtpuW3peWtpiA8IGthZ2FrdWtvdWdha3VcIDsKK+inkumBi+WLlemHjyA8IGtha3V1bmRvdXJ5b3VcIDsKK+WujOWFqOeEoeasoCA8IGthbnplbm11a2V0c3VcIDsKK+aUv+etluaxuuWumiA8IHNlaXNha3VrZXR0ZWlcIDsKK+iyqOeJqeWupCA8IGthbW90c3VzaGl0c3VcIDsKK+W+queSsOWwj+aVsCA8IGp1bmthbnNob3VzdXVcIDsKK+Wkp+mfk+awkeWbvSA8IGRhaWthbm1pbmtva3VcIDsKK+aHkOS4remPoSA8IGthaWNodXVrYWdhbWlcIDsKK+mBqeeUqOalreWLmSA8IHRla2l5b3VneW91bXVcIDsKK+aIpuS6ieaWh+WtpiA8IHNlbnNvdWJ1bmdha3VcIDsKK+S5neWkqeebtOS4iyA8IGt5dXV0ZW5jaG9ra2FcIDsKK+a3oee3keiJsiA8IHRhbnJ5b2t1c2hva3VcIDsKK+mdouW+k+iFueiDjCA8IG1lbmp1dWZ1a3VoYWlcIDsKK+eiuuS/neWkseaVlyA8IGtha3Vob3NoaXBwYWlcIDsKK+WFsemAmuiogOiqniA8IGt5b3V0c3V1Z2VuZ29cIDsKK+iHquWLlei7iuS/nemZuiA8IGppZG91c2hhaG9rZW5cIDsKK+W8t+WItuWHpuWIhiA8IGt5b3VzZWlzaG9idW5cIDsKK+aWreW0lue1tuWjgSA8IGRhbmdhaXplcHBla2lcIDsKK+eUo+alreekvuS8miA8IHNhbmd5b3VzaGFrYWlcIDsKK+WQhOeoruWtpuagoSA8IGtha3VzaHVnYWtrb3VcIDsKK+WIhuino+WGmeecnyA8IGJ1bmthaXNoYXNoaW5cIDsKK+WNsOWIt+WqkuS9kyA8IGluc2F0c3ViYWl0YWlcIDsKK+eglOeptuaJgOWgsSA8IGtlbmt5dXVzaG9ob3VcIDsKK+S5seWwhOS5seaSgyA8IHJhbnNoYXJhbmdla2lcIDsKK+eJueioseS+teWusyA8IHRva2t5b3NoaW5nYWlcIDsKK+Wumumhjeiyr+mHkSA8IHRlaWdha3VjaG9raW5cIDsKK+WFrOihhuS8neWLlSA8IGtvdXNodXVkZW5kb3VcIDsKK+Wkqeeruum8oCA8IHRlbmppa3VuZXp1bWlcIDsKK+mJhOmBk+mmrOi7iiA8IHRldHN1ZG91YmFzaGFcIDsKK+WGheWbveeCuuabvyA8IG5haWtva3VrYXdhc2VcIDsKK+eorueoruanmOanmCA8IHNodWp1c2FtYXphbWFcIDsKK+WWnOiJsua6gOmdoiA8IGtpc2hva3VtYW5tZW5cIDsKK+W8geWIpee0oOaApyA8IGJlbmJldHN1c29zZWlcIDsKK+S9nOaIpuWRveS7pCA8IHNha3VzZW5tZWlyZWlcIDsKK+itsOmVt+iBt+aoqSA8IGdpY2hvdXNob2trZW5cIDsKK+e1seeOh+WKmyA8IHRvdXJpdHN1cnlva3VcIDsKK+Wun+mMsueJqSA8IGppdHN1cm9rdW1vbm9cIDsKK+WVk+iSmeaAnea9riA8IGtlaW1vdXNoaWNob3VcIDsKK+WFrOWovOWFqOW7gyA8IGtvdXNob3V6ZW5wYWlcIDsKK+WvvumdouS6pOmAmiA8IHRhaW1lbmtvdXRzdXVcIDsKK+iHquW3semhleekuuassiA8IGppa29rZW5qaXlva3VcIDsKK+WvhuWFpeWbvSA8IG1pdHN1bnl1dWdva3VcIDsKK+S4gOWVj+S4gOetlCA8IGljaGltb24nJ2l0dG91XCA7Civnm7TovLjlh7ogPCBjaG9rdXl1c2h1dHN1XCA7CivnhKHphY3lvZPkv53pmbogPCBtdWhhaXRvdWhva2VuXCA7Civpm7vlrZDlr4bluqYgPCBkZW5zaGltaXRzdWRvXCA7CivotoXkvY7kvqHmoLwgPCBjaG91dGVpa2FrYWt1XCA7CivkuIDmi6zlo7LosrcgPCBpa2thdHN1YmFpYmFpXCA7Civmg5rmsJfoqbEgPCBub3Jva2ViYW5hc2hpXCA7CivliLbntITmnaHku7YgPCBzZWl5YWt1am91a2VuXCA7CivkvJHmiKbkvJroq4cgPCBreXV1c2Vua2FpZGFuXCA7CivkvJHppIrlrqQgPCBreXV1eW91c2hpdHN1XCA7CivniYjmqKnkvrXlrrMgPCBoYW5rZW5zaGluZ2FpXCA7CivpmbPliJfnqpMgPCBjaGlucmV0c3VtYWRvXCA7Civnmb7liIbnjocgPCBoeWFrdWJ1bnJpdHN1XCA7CivpmpTpm6Lnl4Xmo58gPCBrYWt1cmlieW91dG91XCA7CivnlJ/prq7mlpnlk4EgPCBzZWlzZW5yeW91aGluXCA7Civlh7rooYDnl4cgPCBzaHVra2V0c3VzaG91XCA7CivkuIrmmIflgr7lkJEgPCBqb3VzaG91a2Vpa291XCA7CivkuI3ms5XlhaXlm70gPCBmdWhvdW55dXVnb2t1XCA7CivmlZnppIrlrabpg6ggPCBreW91eW91Z2FrdWJ1XCA7Civpq5jkv6HpoLzmgKcgPCBrb3VzaGlucmFpc2VpXCA7CivmnpzmqLnmoL3ln7nogIUgPCBrYWp1c2FpYmFpc2hhXCA7CivlrrblroXmjZzntKIgPCBrYXRha3Vzb3VzYWt1XCA7CivoqIjnlLvntYzmuIggPCBrZWlrYWt1a2VpemFpXCA7CivkuInou7joqabpqJMgPCBzYW5qaWt1c2hpa2VuXCA7CivmnIDntYLmrrXpmo4gPCBzYWlzaHV1ZGFua2FpXCA7Civlj47lhaXljbDntJkgPCBzaHV1bnl1dWluc2hpXCA7CivljYrnhp/nt7Tlt6UgPCBoYW5qdWt1cmVua291XCA7CivlhpnnnJ/liKTlrpogPCBzaGFzaGluaGFudGVpXCA7CivntYzmuIjoprPlv7UgPCBrZWl6YWlrYW4nJ25lblwgOwor6LOD6YeR5rC05rqWIDwgY2hpbmdpbnN1aWp1blwgOwor5Za25qWt5Y+O5pSvIDwgZWlneW91c2h1dXNoaVwgOwor5LiJ55u45Lqk5rWBIDwgc2Fuc291a291cnl1dVwgOwor57WM5Za25oim55WlIDwga2VpZWlzZW5yeWFrdVwgOwor5pil5aSP56eL5YasIDwgc2h1bmthc2h1dXRvdVwgOwor54Sm54K55rex5bqmIDwgc2hvdXRlbnNoaW5kb1wgOwor5LiA5pmC5omA5b6XIDwgaWNoaWppc2hvdG9rdVwgOwor5p2J6Iqx57KJ55eHIDwgc3VnaWthZnVuc2hvdVwgOwor5Lq65rCR5oqV56WoIDwgamlubWludG91aHlvdVwgOwor5a+G6Ly45Ye6IDwgbWl0c3V5dXNodXRzdVwgOwor5ZCI5b6T6YCj6KGhIDwgZ2Fzc2hvdXJlbmtvdVwgOwor54OP6YeO6LGM6LGGIDwga2FyYXN1bm9lbmRvdVwgOwor54Sh6Iq45aSn6aOfIDwgbXVnZWl0YWlzaG9rdVwgOwor5Zu96Zqb6YCj5ZCIIDwga29rdXNhaXJlbmdvdVwgOwor5Yik5Yil5byPIDwgaGFuYmV0c3VzaGlraVwgOwor54ax5Lqk5o+b5ZmoIDwgbmV0c3Vrb3VrYW5raVwgOwor5a6H5a6Z6ZaL55m6IDwgdWNodXVrYWloYXRzdVwgOwor5ryi5paH6KiT6KqtIDwga2FuYnVua3VuZG9rdVwgOwor56m66ZaT5oSf6KaaIDwga3V1a2Fua2Fua2FrdVwgOwor5LqM5Lq65LiJ6ISaIDwgbmluaW5zYW5reWFrdVwgOwor5qip5Yqb5Li7576pIDwga2Vucnlva3VzaHVnaVwgOwor5qSN54mp55WMIDwgc2hva3VidXRzdWthaVwgOwor5Yuf6ZuG5bqD5ZGKIDwgYm9zaHV1a291a29rdVwgOwor5a2m57+S55CG6KuWIDwgZ2FrdXNodXVyaXJvblwgOwor6aeQ6LuK56aB5q2iIDwgY2h1dXNoYWtpbnNoaVwgOwor5YWx5ZCM5a6j6KiAIDwga3lvdWRvdXNlbmdlblwgOwor6KOB5Yik5a6Y5b+M6YG/IDwgc2FpYmFua2Fua2loaVwgOwor5aSp5Zyw56We5piOIDwgdGVuY2hpc2hpbm1laVwgOwor5aSi5bm7IDwgeXVtZW1hYm9yb3NoaVwgOwor6Kmz57Sw5oOF5aCxIDwgc2hvdXNhaWpvdWhvdVwgOwor54mb6aOy6aas6aOfIDwgZ3l1dWluYmFzaG9rdVwgOwor6Z2e5q2m6KOF5Zyw5bivIDwgaGlidXNvdWNoaXRhaVwgOwor6YeR5Z+O6YmE5aOBIDwga2luam91dGVwcGVraVwgOwor6ZuG5Lit6Kyb576pIDwgc2h1dWNodXVrb3VnaVwgOwor5aSJ5b2i6Jmr6aGeIDwgaGVua2VpY2h1dXJ1aVwgOwor5YWs55qE5bm06YeRIDwga291dGVraW5lbmtpblwgOwor6YCx5YiK6ZuR6KqMIDwgc2h1dWthbnphc3NoaVwgOwor57Sh57i+5bel5aC0IDwgYm91c2VraWtvdWpvdVwgOwor5Yid562J5pWw5a2mIDwgc2hvdG91c3V1Z2FrdVwgOwor5q6L5a2Y5pel5pWwIDwgemFuc29uJyduaXNzdXVcIDsKK+epuuawl+a4hea1hOapnyA8IGt1dWtpc2Vpam91a2lcIDsKK+Wbvemam+WxlemWiyA8IGtva3VzYWl0ZW5rYWlcIDsKK+W5tOWKn+W6j+WIlyA8IG5lbmtvdWpvcmV0c3VcIDsKK+eGseWKm+WtpiA8IG5ldHN1cmlraWdha3VcIDsKK+WVhualremDveW4giA8IHNob3VneW91dG9zaGlcIDsKK+S4remAlOmAgOWtpiA8IGNodXV0b3RhaWdha3VcIDsKK+WFseWQjOS8muimiyA8IGt5b3Vkb3VrYWlrZW5cIDsKK+aGsuazleWtpuiAhSA8IGtlbnBvdWdha3VzaGFcIDsKK+S4gOS6i+S4jeWGjeitsCA8IGljaGlqaWZ1c2FpZ2lcIDsKK+WJteW7uuiomOW/teaXpSA8IHNvdWtlbmtpbmVuYmlcIDsKK+aZrumBjeWmpeW9k+aApyA8IGZ1aGVuZGF0b3VzZWlcIDsKK+WOn+WtkOeIhuW8viA8IGdlbnNoaWJha3VkYW5cIDsKK+WOn+WtkOegtOWjiuapnyA8IGdlbnNoaWhha2Fpa2lcIDsKK+eZu+WxsemJhOmBkyA8IHRvemFudGV0c3Vkb3VcIDsKK+aWsOato+aciCA8IHNoaW5zaG91Z2F0c3VcIDsKK+eJqeeQhuWMluWtpiA8IGJ1dHN1cmlrYWdha3VcIDsKK+e1puawtOWItumZkCA8IGt5dXVzdWlzZWlnZW5cIDsKK+acnemuruaIpuS6iSA8IGNob3VzZW5zZW5zb3VcIDsKK+WrjOawl+eUn+eJqSA8IGtlbmtpc2VpYnV0c3VcIDsKK+mBuOaKnueKtuaFiyA8IHNlbnRha3Vqb3V0YWlcIDsKK+S4u+mjn+eJqSA8IHNodXNob2t1YnV0c3VcIDsKK+mrmOWzsOWFq+W6pyA8IGtvdWhvdWhhY2hpemFcIDsKK+S4jea2iOWMlueJqSA8IGZ1c2hvdWthYnV0c3VcIDsKK+azleeahOaWh+abuCA8IGhvdXRla2lidW5zaG9cIDsKK+enmOWvhumBuOaMmSA8IGhpbWl0c3VzZW5reW9cIDsKK+mZs+WIl+ajmiA8IGNoaW5yZXRzdWRhbmFcIDsKK+aWsOeGseW4r+WMuiA8IHNoaW4nJ25ldHRhaWt1XCA7CivntZDlqZrmjIfovKogPCBrZWtrb24nJ3l1Yml3YVwgOwor5ZaE6Zqj5Y+L5aW9IDwgemVucmluJyd5dXVrb3VcIDsKK+WPl+WPluaJi+W9oiA8IHVrZXRvcml0ZWdhdGFcIDsKK+axuueul+WgseWRiiA8IGtlc3NhbmhvdWtva3VcIDsKK+W/g+eQhuWtpuiAhSA8IHNoaW5yaWdha3VzaGFcIDsKK+mbkeWPjuWFpSA8IHphdHN1c2h1dW55dXVcIDsKK+irlueQhuW9ouW8jyA8IHJvbnJpa2Vpc2hpa2lcIDsKK+S9jumgreW5s+i6qyA8IHRlaXRvdWhlaXNoaW5cIDsKK+a3t+WQiOi+sualrSA8IGtvbmdvdW5vdWd5b3VcIDsKK+aWh+iKuOS9nOWTgSA8IGJ1bmdlaXNha3VoaW5cIDsKK+aciemWkemajue0miA8IHl1dWthbmthaWt5dXVcIDsKK+WPi+Wlveadoee0hCA8IHl1dWtvdWpvdXlha3VcIDsKK+WJh+WkqeWOu+engSA8IHNva3V0ZW5reW9zaGlcIDsKK+WGmeWun+S4u+e+qSA8IHNoYWppdHN1c2h1Z2lcIDsKK+Wbvemam+W4guWgtCA8IGtva3VzYWlzaGlqb3VcIDsKK+S6jOmHjeeUn+a0uyA8IG5panV1c2Vpa2F0c3VcIDsKK+iHqOapn+ebruaomSA8IHJpbmtpbW9rdWh5b3VcIDsKK+WVhualreeZu+iomCA8IHNob3VneW91dG91a2lcIDsKK+m7hOiJsuS6uueoriA8IG91c2hva3VqaW5zaHVcIDsKK+WRqOazouWkieiqvyA8IHNodXVoYWhlbmNob3VcIDsKK+asoOmZpeWVhuWTgSA8IGtla2thbnNob3VoaW5cIDsKK+W+k+WxnuWkieaVsCA8IGp1dXpva3VoZW5zdXVcIDsKK+aXoue0hOihqOePviA8IGtpeWFrdWh5b3VnZW5cIDsKK+ipseWNiuWIhiA8IGhhbmFzaGloYW5idW5cIDsKK+S4jeiJr+WwkeW5tCA8IGZ1cnlvdXNob3VuZW5cIDsKK+a4rOmHj+aKgOW4qyA8IHNva3VyeW91Z2lzaGlcIDsKK+ajrue+heS4h+ixoSA8IHNoaW5yYWJhbnNob3VcIDsKK+eUo+alreani+mAoCA8IHNhbmd5b3Vrb3V6b3VcIDsKK+asp+W3nuiruOWbvSA8IG91c2h1dXNob2tva3VcIDsKK+mAmuWLpOWcsOeNhCA8IHRzdXVraW5qaWdva3VcIDsKK+aYvOmWk+S6uuWPoyA8IGNodXVrYW5qaW5rb3VcIDsKK+WKm+S4jei2syA8IGNoaWthcmFidXNva3VcIDsKK+aAp+agvOWIpOaWrSA8IHNlaWtha3VoYW5kYW5cIDsKK+S/oemgvOmWouS/giA8IHNoaW5yYWlrYW5rZWlcIDsKK+WwseWtpueOhyA8IHNodXVnYWt1cml0c3VcIDsKK+WQjOacn+mAmuS/oSA8IGRvdWtpdHN1dXNoaW5cIDsKK+S4iemHjeeEpueCuSA8IHNhbmp1dXNob3V0ZW5cIDsKK+aKleelqOe3j+aVsCA8IHRvdWh5b3Vzb3VzdXVcIDsKK+Wkp+W5heWIt+aWsCA8IG9vaGFiYXNhc3NoaW5cIDsKK+awtOS4iueUuiA8IG1pbmFrYW1pbWFjaGlcIDsKK+e1kOWpmuiomOW/teaXpSA8IGtla2tvbmtpbmVuYmlcIDsKK+Wkp+mbqOazqOaEj+WgsSA8IG9vYW1lY2h1dWlob3VcIDsKK+WIh+aWreaCo+iAhSA8IHNldHN1ZGFua2FuamFcIDsKK+iiluaJi+WCjeimsyA8IHNodXVzaHVib3VrYW5cIDsKK+aLjeaJi+WWnemHhyA8IGhha3VzaHVrYXNzYWlcIDsKK+S9nOalreS7ruiqrCA8IHNhZ3lvdWthc2V0c3VcIDsKK+e1jOa4iOaIkOmVtyA8IGtlaXphaXNlaWNob3VcIDsKK+exs+adsemDqOaZgumWkyA8IGJlaXRvdWJ1amlrYW5cIDsKK+WQiOaIkOWuneefsyA8IGdvdXNlaWhvdXNla2lcIDsKK+e1kOe3oOe1hOe5lCA8IGtldHRlaXNvc2hpa2lcIDsKK+imquWIh+W/gyA8IHNoaW5zZXRzdXNoaW5cIDsKK+WGhumMkOabsue3miA8IGVuc3Vpa3lva3VzZW5cIDsKK+iBluS9k+aLnemgmCA8IHNlaXRhaWhhaXJ5b3VcIDsKK+W6tuawkemHkeiejSA8IHNob21pbmtpbicneXV1XCA7CivkvZPnqY3mirXmipcgPCB0YWlzZWtpdGVpa291XCA7CivljZTlkIzntYTlkIggPCBreW91ZG91a3VtaWFpXCA7CivlhYjkvY/msJHml48gPCBzZW5qdXVtaW56b2t1XCA7CivntbHkuIDmiKbnt5ogPCB0b3VpdHN1c2Vuc2VuXCA7CivlkIzmmYLpgJroqLMgPCBkb3VqaXRzdXV5YWt1XCA7Civlkajnn6XlvrnlupUgPCBzaHV1Y2hpdGV0dGVpXCA7CivoibHpm6Povpvoi6YgPCBrYW4nJ25hbnNoaW5rdVwgOwor5pS/5YWa5YaF6ZajIDwgc2VpdG91bmFpa2FrdVwgOwor5Yi25L2c5a6kIDwgc2Vpc2FrdXNoaXRzdVwgOwor5Y2z54mp55qEIDwgc29rdWJ1dHN1dGVraVwgOwor54++5Zyw5aCx5ZGKIDwgZ2VuY2hpaG91a29rdVwgOwor5oe46LOe5ZWP6aGMIDwga2Vuc2hvdW1vbmRhaVwgOwor5Yqj5oCn6YG65Lyd5a2QIDwgcmVzc2VpaWRlbnNoaVwgOwor5rGy5Y+W5Y+jIDwga3VtaXRvcmlndWNoaVwgOwor5YKt6Ii55aWR57SEIDwgeW91c2Vua2VpeWFrdVwgOwor5LuK5LiK5aSp55qHIDwga2luam91dGVuJydub3VcIDsKK+S7luimmueXh+eKtiA8IHRha2FrdXNob3Vqb3VcIDsKK+asoOmjn+WFkOerpSA8IGtlc3Nob2t1amlkb3VcIDsKK+Wor+alveeVque1hCA8IGdvcmFrdWJhbmd1bWlcIDsKK+eyvuelnuWMu+WtpiA8IHNlaXNoaW4nJ2lnYWt1XCA7CivlhoXlrrnoqLzmmI4gPCBuYWl5b3VzaG91bWVpXCA7Civlh7rmuK/lgZzmraIgPCBzaHVra291dGVpc2hpXCA7CivlpKvlqabntITmnZ8gPCBmdXVmdXlha3Vzb2t1XCA7Civml4XooYzmpa3ogIUgPCByeW9rb3VneW91c2hhXCA7Civkvb/lvpLkv6HntYwgPCBzaGl0b3NoaW5reW91XCA7CivlpJbos4flsI7lhaUgPCBnYWlzaGlkb3VueXV1XCA7CivnhKHkvqHlgKTos4fnlKMgPCBtdWthY2hpc2hpc2FuXCA7CivlgaXlurfkv53pmbrljLsgPCBrZW5rb3Vob2tlbicnaVwgOwor5bi45Lu75aeU5ZOh5LyaIDwgam91bmluJydpaW5rYWlcIDsKK+aIkOS6uuaVmeiCsiA8IHNlaWppbmt5b3Vpa3VcIDsKK+WFrOW8j+S4u+e+qSA8IGtvdXNoaWtpc2h1Z2lcIDsKK+ikh+aVsOalreWLmSA8IGZ1a3VzdXVneW91bXVcIDsKK+emgeassuS4u+e+qSA8IGtpbicneW9rdXNodWdpXCA7CivnqbropbLorabloLEgPCBrdXVzaHV1a2VpaG91XCA7CivnlKPmpa3lho3nlJ8gPCBzYW5neW91c2Fpc2VpXCA7Civos4PosrjkvqHmoLwgPCBjaGludGFpa2FrYWt1XCA7CivmiKbpl5jliY3lk6ggPCBzZW50b3V6ZW5zaG91XCA7CivkuIDoqIDkuIDooYwgPCBpY2hpZ2VuJydpa2tvdVwgOwor6LuWIDwgdHN1bXVnaWt1cnVtYVwgOwor5ZC55aWP5qW95ZujIDwgc3Vpc291Z2FrdWRhblwgOwor55u057ea6Led6ZuiIDwgY2hva3VzZW5reW9yaVwgOwor6L+R6Kaq57WQ5amaIDwga2luc2hpbmtla2tvblwgOwor57Gz6Iux5LuP6JitIDwgYmVpZWlidXRzdXJhblwgOwor6Ieq55Sx5Li7576p6ICFIDwgaml5dXVzaHVnaXNoYVwgOwor55+t5rOi5Y+X5L+h5qmfIDwgdGFucGFqdXNoaW5raVwgOwor5YWx5ZCM5L2c5qWtIDwga3lvdWRvdXNhZ3lvdVwgOwor5rib5Y+N5pS/562WIDwgZ2VudGFuc2Vpc2FrdVwgOwor5b+D55CG5L2c5oimIDwgc2hpbnJpc2FrdXNlblwgOwor57eP6aCY5aiYIDwgc291cnlvdW11c3VtZVwgOwor5LiD56aP56WeIDwgc2hpY2hpZnVrdWppblwgOwor5b+D6IeT56e75qSNIDwgc2hpbnpvdWlzaG9rdVwgOwor5pyJ6ZmQ6LKs5Lu7IDwgeXV1Z2Vuc2VraW5pblwgOwor57WE57mU5YaN57eoIDwgc29zaGlraXNhaWhlblwgOwor56aP6Z+z5pWZ5LyaIDwgZnVrdWlua3lvdWthaVwgOwor6Zai5L+C5Ymv6KmeIDwga2Fua2VpZnVrdXNoaVwgOwor5Y+y5paZ57eo57qCIDwgc2hpcnlvdWhlbnNhblwgOwor54m55Yil5bitIDwgdG9rdWJldHN1c2VraVwgOwor54yf5a6Y6YGL5YuVIDwgcnlvdWthbicndW5kb3VcIDsKK+iCieS9k+WKtOWDjSA8IG5pa3V0YWlyb3Vkb3VcIDsKK+egtOWjiuS4u+e+qeiAhSA8IGhha2Fpc2h1Z2lzaGFcIDsKK+WPgueFp+aWh+eMriA8IHNhbnNob3VidW5rZW5cIDsKK+mfs+alveebo+edoyA8IG9uZ2FrdWthbnRva3VcIDsKK+W5s+i6q+S9jumgrSA8IGhlaXNoaW50ZWl0b3VcIDsKK+WFseeUo+WIhuWtkCA8IGt5b3VzYW5idW5zaGlcIDsKK+S6iOe0hOWHuueJiCA8IHlveWFrdXNodXBwYW5cIDsKK+eCreawtOWMlueJqSA8IHRhbnN1aWthYnV0c3VcIDsKK+W+oemDveWQiOS4u+e+qSA8IGdvdHN1Z291c2h1Z2lcIDsKK+WkmuihgOizqiA8IHRha2V0c3VzaGl0c3VcIDsKK+i/keS7o+aWh+WtpiA8IGtpbmRhaWJ1bmdha3VcIDsKK+S6jOWNgeaXpeWkp+aguSA8IGhhdHN1a2FkYWlrb25cIDsKK+WcsOaWueWumOW6gSA8IGNoaWhvdWthbmNob3VcIDsKK+Wbm+WIhuS6lOijgiA8IHNoaWJ1bmdvcmV0c3VcIDsKK+e1jOa4iOWbnuW+qSA8IGtlaXphaWthaWZ1a3VcIDsKK+Wun+WtmOS4u+e+qSA8IGppdHN1em9uc2h1Z2lcIDsKK+aBkua4qeWLleeJqSA8IGtvdW9uZG91YnV0c3VcIDsKK+mHjuiPnOS4gOeavyA8IHlhc2FpaGl0b3NhcmFcIDsKK+W9ouW8j+irlueQhiA8IGtlaXNoaWtpcm9ucmlcIDsKK+Wkp+Wtpua1quS6uiA8IGRhaWdha3Vyb3VuaW5cIDsKK+aaq+WumuWNlOWumiA8IHphbnRlaWt5b3V0ZWlcIDsKK+iQveS4i+WCmOmDqOmaiiA8IHJha2thc2FuYnV0YWlcIDsKK+aUvumAgeWkp+WtpiA8IGhvdXNvdWRhaWdha3VcIDsKK+azleW+i+WItuW6piA8IGhvdXJpdHN1c2VpZG9cIDsKK+mVt+i3nembouS+neWtmCA8IGNob3VreW9yaWl6b25cIDsKK+S/oeeUqOmHkeW6qyA8IHNoaW4nJ3lvdWtpbmtvXCA7CivmnInlkI3nhKHlrp8gPCB5dXVtZWltdWppdHN1XCA7CivntYLouqvkvJrlk6EgPCBzaHV1c2hpbmthaWluXCA7CivnrJHmraLljYPkuIcgPCBzaG91c2hpc2VuYmFuXCA7CivmloflrabljZrlo6sgPCBidW5nYWt1aGFrYXNlXCA7Civluq3lhYjnm7jloLQgPCBuaXdhc2FraXNvdWJhXCA7CivmtojosrvogIXlgbQgPCBzaG91aGlzaGFnYXdhXCA7Civnsr7npZ7mp4vpgKAgPCBzZWlzaGlua291em91XCA7CivpiYTpqqjlt6XkuosgPCB0ZWtrb3RzdWtvdWppXCA7Civlm73liKnmsJHnpo8gPCBrb2t1cmltaW5wdWt1XCA7Civou73kvbvmta7oloQgPCBrZWljaG91ZnVoYWt1XCA7CivmspbnqY3lubPph44gPCBjaHV1c2VraWhlaXlhXCA7CivpharovrLoo73lk4EgPCByYWt1bm91c2VpaGluXCA7CivorJ3nvarluoPlkYogPCBzaGF6YWlrb3Vrb2t1XCA7Civlr4zlm73lvLflhbUgPCBmdWtva3VreW91aGVpXCA7CivlpJbpg63lm6PkvZMgPCBnYWlrYWt1ZGFudGFpXCA7CivlhbHlkIzkvIHmpa0gPCBreW91ZG91a2lneW91XCA7Civpmo7ntJrnpL7kvJogPCBrYWlreXV1c2hha2FpXCA7Civlr77lpJbmlL/nrZYgPCB0YWlnYWlzZWlzYWt1XCA7Civnsr7pnIrkv6Hku7AgPCBzZWlyZWlzaGlua291XCA7CivvvKfvvKLnkIboq5YgPCBqaVwgzIRiaVwgzIRyaXJvblwgOwor5pil6aKo6aeY6JWpIDwgc2h1bnB1dXRhaXRvdVwgOwor5q275YiR5Z+36KGMIDwgc2hpa2Vpc2hpa2tvdVwgOwor5LqM6ICF5oqe5LiAIDwgbmlzaGF0YWt1aXRzdVwgOwor6YW45oCn5Y+N5b+cIDwgc2Fuc2VpaGFuJydub3VcIDsKK+aguOeIhueZuiA8IGtha3ViYWt1aGF0c3VcIDsKK+awtOmBk+aWmemHkSA8IHN1aWRvdXJ5b3VraW5cIDsKK+epuuawl+WKm+WtpiA8IGt1dWtpcmlraWdha3VcIDsKK+WVhuWjsuawl+izqiA8IHNob3ViYWlrYXRhZ2lcIDsKK+iomOmMsuaWh+WtpiA8IGtpcm9rdWJ1bmdha3VcIDsKK+espuWPt+WkieaPm+WZqCA8IGZ1Z291aGVua2Fua2lcIDsKK+W9vOaWueatpOaWuSA8IGFjaGlyYWtvY2hpcmFcIDsKK+eri+i6q+WHuuS4liA8IHJpc3NoaW5zaHVzc2VcIDsKK+ato+mHkemKgOihjCA8IHNob3VraW5naW5rb3VcIDsKK+WFsea4iOS6i+alrSA8IGt5b3VzYWlqaWd5b3VcIDsKK+WFiOihjOaKgOihkyA8IHNlbmtvdWdpanV0c3VcIDsKK+Wbs+abuOebrumMsiA8IHRvc2hvbW9rdXJva3VcIDsKK+iovOaLoOmaoOa7hSA8IHNob3Vrb2lubWV0c3VcIDsKK+mAgemHkeWwj+WIh+aJiyA8IHNvdWtpbmtvZ2l0dGVcIDsKK+ertuS6iemWouS/giA8IGt5b3Vzb3VrYW5rZWlcIDsKK+W+l+elqOeOhyA8IHRva3VoeW91cml0c3VcIDsKK+ihqOW9sOW8jyA8IGh5b3VzaG91c2hpa2lcIDsKK+WFpeWtpuW8jyA8IG55dXVnYWt1c2hpa2lcIDsKK+S6i+WJjeaknOmWsiA8IGppemVua2VuJydldHN1XCA7CivooYzmlL/lh6bliIYgPCBneW91c2Vpc2hvYnVuXCA7CivlhajpnaLluoPlkYogPCB6ZW5tZW5rb3Vrb2t1XCA7Civns44gPCBzZW5jaGltZWl0b3J1XCA7Civlm73li5nplbflrpggPCBrb2t1bXVjaG91a2FuXCA7CivnsqggPCBoZWt1dG9tZWV0b3J1XCA7Civnsr7npZ7nl4XpmaIgPCBzZWlzaGluYnlvdWluXCA7Civlm5vljYHkuZ3ml6UgPCBzaGlqdXVrdW5pY2hpXCA7CivmnZPlrZDlrpropo8gPCBzaGFrdXNoaWpvdWdpXCA7Civlj6/loZHnianos6ogPCBrYXNvYnVzc2hpdHN1XCA7CivngbDnmb3os6ogPCBrYWloYWt1c2hpdHN1XCA7CivljYrovrLljYrmvIEgPCBoYW4nJ25vdWhhbmd5b1wgOwor6aOf55So5rK5IDwgc2hva3V5b3VhYnVyYVwgOwor6IG35qWt55qEIDwgc2hva3VneW91dGVraVwgOwor6aOf55Sf5rS7IDwgc2hva3VzZWlrYXRzdVwgOwor5pq06aOy5pq06aOfIDwgYm91aW5ib3VzaG9rdVwgOwor56CU56m25YiG6YeOIDwga2Vua3l1dWJ1bicneWFcIDsKK+S6uuWPo+WvhuW6piA8IGppbmtvdW1pdHN1ZG9cIDsKK+S6uui6q+WjsuiytyA8IGppbnNoaW5iYWliYWlcIDsKK+auuuS6uuacqumBgiA8IHNhdHN1amlubWlzdWlcIDsKK+S4uOS4gOaciCA8IG1hcnVoaXRvdHN1a2lcIDsKK+i2s+WIqeaZguS7oyA8IGFzaGlrYWdhamlkYWlcIDsKK+W8vuedgOi3nemboiA8IGRhbmNoYWt1a3lvcmlcIDsKK+iBt+alreeXhSA8IHNob2t1Z3lvdWJ5b3VcIDsKK+WLleeJqeaknOafuyA8IGRvdWJ1dHN1a2Vuc2FcIDsKK+iWrOmkjOeZguazlSA8IHlha3VqaXJ5b3Vob3VcIDsKK+S6uumWk+WbveWunSA8IG5pbmdlbmtva3Vob3VcIDsKK+S4uOS4gOaXpSA8IG1hcnVpY2hpbmljaGlcIDsKK+e3iuimgeWcsOW9oiA8IGtpbicneW91Y2hpa2VpXCA7CivluILloLTmiJDplbcgPCBzaGlqb3VzZWljaG91XCA7CivmjIflkI3mipXnpaggPCBzaGltZWl0b3VoeW91XCA7CivlkYnotorlkIzoiJ8gPCBnb2V0c3Vkb3VzaHV1XCA7CivlroXlnLDpgKDmiJAgPCB0YWt1Y2hpem91c2VpXCA7Civnsr7npZ7lirTlg40gPCBzZWlzaGlucm91ZG91XCA7Civlrrbml4/oqIjnlLsgPCBrYXpva3VrZWlrYWt1XCA7Civplovlj6PkuIDnlaogPCBrYWlrb3VpY2hpYmFuXCA7Civnm7Tns7vljZHlsZ4gPCBjaG9ra2VpaGl6b2t1XCA7CivlibLos6bmlrnlvI8gPCBrYXBwdWhvdXNoaWtpXCA7Civmr5LnianlraYgPCBkb2t1YnV0c3VnYWt1XCA7Civli6TlirTlpKfooYYgPCBraW5yb3V0YWlzaHV1XCA7CivmnKrlj47lhaXph5EgPCBtaXNodXVueXV1a2luXCA7Civpoqjkv5fllrbmpa0gPCBmdXV6b2t1ZWlneW91XCA7CivmsJHkv5fpn7Pmpb0gPCBtaW56b2t1b25nYWt1XCA7CivmtbfmsLTmtbTloLQgPCBrYWlzdWl5b2t1am91XCA7CivpgKPlkIjkvZzmiKYgPCByZW5nb3VzYWt1c2VuXCA7CivkuKHok4vmmYLoqIggPCByeW91YnV0YWRva2VpXCA7CivkuLvlrqLou6LlgJIgPCBzaHVrYWt1dGVudG91XCA7CivlsLHogbflhYggPCBzaHV1c2hva3VzYWtpXCA7CivmkI3nm4rli5jlrpogPCBzb24nJ2VraWthbmpvdVwgOwor5YuV5Yqb6ZmN5LiLIDwgZG91cnlva3Vrb3VrYVwgOwor5LiJ6KeS6ZeY5LqJIDwgc2Fua2FrdXRvdXNvdVwgOwor6YCA5a2m5Yem5YiGIDwgdGFpZ2FrdXNob2J1blwgOwor5a6f6aiT5p2Q5paZIDwgamlra2VuemFpcnlvdVwgOwor5Y+j57SE5p2fIDwga3VjaGl5YWt1c29rdVwgOwor5a++5oim6LuK54Gr5ZmoIDwgdGFpc2Vuc2hha2FraVwgOwor5byX5YyW5rC057Sg6YW4IDwgZnVra2FzdWlzb3NhblwgOwor6YeN6KaB55Sj5qWtIDwganV1eW91c2FuZ3lvdVwgOwor5ray5L2T54eD5paZIDwgZWtpdGFpbmVucnlvdVwgOwor5Lyd6YGT6ZuG5LyaIDwgZGVuZG91c2h1dWthaVwgOwor5YWr6Z2i5YWt6IeCIDwgaGFjaGltZW5yb3BwaVwgOwor5a6f5Yqb6ICFIDwgaml0c3VyeW9rdXNoYVwgOwor5omN5rCX54Wl55m6IDwgc2Fpa2lrYW5wYXRzdVwgOwor5oSf5oOF6KGo54++IDwga2Fuam91aHlvdWdlblwgOwor5rmn5Ye66YePIDwgeXV1c2h1dHN1cnlvdVwgOwor5Lq656iu5beu5YilIDwgamluc2h1c2FiZXRzdVwgOwor6Iux5Zu955m66Z+zIDwgZWlrb2t1aGF0c3VvblwgOwor54Sh6ZmQ5pWw5YiXIDwgbXVnZW5zdXVyZXRzdVwgOwor54af5oWu5pat6KGMIDwganVrdXJ5b2RhbmtvdVwgOwor562S5LqV562SIDwgdHN1dHN1aWR6dXRzdVwgOwor55u05Lqk5bqn5qiZIDwgY2hva2tvdXphaHlvdVwgOwor5YyX5aSq5bmz5rSLIDwga2l0YXRhaWhlaXlvdVwgOwor55S35aOw5ZCI5ZSxIDwgZGFuc2VpZ2Fzc2hvdVwgOwor6IOD6IW455eF5a2mIDwgaWNob3VieW91Z2FrdVwgOwor5LiJ6KeS6Zai5L+CIDwgc2Fua2FrdWthbmtlaVwgOwor55u46KOc5oCn5Y6f55CGIDwgc291aG9zZWlnZW5yaVwgOwor6JK45rCX5qmf6Zai6LuKIDwgam91a2lraWthbnNoYVwgOwor5Y2Y54us5Lya6KaLIDwgdGFuZG9rdWthaWtlblwgOwor5Lya5aCC5Y+4IDwga2FpZG91ZHp1a2FzYVwgOwor6ZaT5q2H54axIDwga2Fua2V0c3VuZXRzdVwgOwor6LKh55Sj55u457aaIDwgemFpc2Fuc291em9rdVwgOwor5LiK5pm65aSn5a2mIDwgam91Y2hpZGFpZ2FrdVwgOwor5paH5YyW5LqL5qWt6YOoIDwgYnVua2FqaWd5b3VidVwgOwor54Sh6KiY5ZCN56S+5YK1IDwgbXVraW1laXNoYXNhaVwgOwor5YOn5bq155Sf5rS7IDwgc291YW5zZWlrYXRzdVwgOwor5rOV5b6L55So6KqeIDwgaG91cml0c3V5b3Vnb1wgOwor6ZuM6ZuE6YG45oqeIDwgc2hpeXV1c2VudGFrdVwgOwor55m+6Iqx57ma5LmxIDwgaHlha2thcnlvdXJhblwgOwor6Z+z5qW955mC5rOVIDwgb25nYWt1cnlvdWhvdVwgOwor5L2P5rCR55m76YyyIDwganV1bWludG91cm9rdVwgOwor5pat5bGk5YaZ55yfIDwgZGFuc291c2hhc2hpblwgOwor5Y2g6aCY5Zyw5bivIDwgc2VucnlvdWNoaXRhaVwgOwor6Jas5ZOB5Lya56S+IDwgeWFrdWhpbmdhaXNoYVwgOwor5Ye65Y+j6Kq/5p+7IDwgZGVndWNoaWNob3VzYVwgOwor5ZCI5ZCM5oWw6ZyK56WtIDwgZ291ZG91aXJlaXNhaVwgOwor6IO95YuV5YWN55arIDwgbm91ZG91bWVuJydla2lcIDsKK+WcqOeVmemCpuS6uiA8IHphaXJ5dXVob3VqaW5cIDsKK+m6puiXgee0sOW3pSA8IG11Z2l3YXJhc2Fpa3VcIDsKK+WTsuWtpueahCA8IHRldHN1Z2FrdXRla2lcIDsKK+W3peiKuOe+juihkyA8IGtvdWdlaWJpanV0c3VcIDsKK+iqreWUh+ihkyA8IGRva3VzaGluanV0c3VcIDsKK+iIquepuuaUu+aSgyA8IGtvdWt1dWtvdWdla2lcIDsKK+ijuOmbu+eQgyA8IGhhZGFrYWRlbmt5dXVcIDsKK+mHjemHj+mBuOaJiyA8IGp1dXJ5b3VzZW5zaHVcIDsKK+i1pOeri+e+veidtiA8IGFrYXRhdGVoYWNob3VcIDsKK+eBq+eBveWgseefpeapnyA8IGthc2FpaG91Y2hpa2lcIDsKK+ibi+eZveizqiA8IHRhbnBha3VzaGl0c3VcIDsKK+aEm+mzpemAsemWkyA8IGFpY2hvdXNodXVrYW5cIDsKK+W3pealreWMluWtpiA8IGtvdWd5b3VrYWdha3VcIDsKK+aKgOihk+aPkOaQuiA8IGdpanV0c3V0ZWlrZWlcIDsKK+S4reaAp+WtkOaYnyA8IGNodXVzZWlzaGlzZWlcIDsKK+aOkuazhOeJqSA8IGhhaXNldHN1YnV0c3VcIDsKK+mjn+iCieebriA8IHNob2t1bmlrdW1va3VcIDsKK+WFrOWFseS6i+alrSA8IGtvdWt5b3VqaWd5b3VcIDsKK+S4iui2iuacrOe3miA8IGpvdWV0c3Vob25zZW5cIDsKK+a0u+WLleWKmyA8IGthdHN1ZG91cnlva3VcIDsKK+eEoeWEn+Wlkee0hCA8IG11c2hvdWtlaXlha3VcIDsKK+mbu+azouaOouefpeapnyA8IGRlbnBhdGFuY2hpa2lcIDsKK+mWg+WFiembu+eQgyA8IHNlbmtvdWRlbmt5dXVcIDsKK+WbveexjeiogOiqniA8IGtva3VzZWtpZ2VuZ29cIDsKK+Wumua4qeWLleeJqSA8IHRlaW9uZG91YnV0c3VcIDsKK+epuuWJjee1tuW+jCA8IGt1dXplbnpldHN1Z29cIDsKK+S+teeVpeeahCA8IHNoaW5yeWFrdXRla2lcIDsKK+atpuWKm+WkluS6pCA8IGJ1cnlva3VnYWlrb3VcIDsKK+WHnembhuWKmyA8IGd5b3VzaHV1cnlva3VcIDsKK+aIuOexjeaKhOacrCA8IGtvc2VraXNob3Vob25cIDsKK+acnemuruWNiuWztiA8IGNob3VzZW5oYW50b3VcIDsKK+WPr+WkieaKteaKl+WZqCA8IGthaGVudGVpa291a2lcIDsKK+mdnuW4uOWPrOmbhiA8IGhpam91c2hvdXNodXVcIDsKK+WFqOiIrOWJjeWTqCA8IHplbnBhbnplbnNob3VcIDsKK+Wkp+S5l+S7j+aVmSA8IGRhaWpvdWJ1a2t5b3VcIDsKK+WIhuaekOippumokyA8IGJ1bnNla2lzaGlrZW5cIDsKK+WFrOWLmeWToeippumokyA8IGtvdW11aW5zaGlrZW5cIDsKK+W5vemciuWxi+aVtyA8IHl1dXJlaXlhc2hpa2lcIDsKK+acieeUo+majue0miA8IHl1dXNhbmthaWt5dXVcIDsKK+aoqeWKm+aUv+ayuyA8IGtlbnJ5b2t1c2VpamlcIDsKK+iEhei/q+mbu+ipsSA8IGt5b3VoYWt1ZGVud2FcIDsKK+iIueiNt+iovOWIuCA8IGZ1bmFuaXNob3VrZW5cIDsKK+aJi+aXl+S/oeWPtyA8IHRlYmF0YXNoaW5nb3VcIDsKK+aghOmkiuWkseiqvyA8IGVpeW91c2hpdGNob3VcIDsKK+S9nOazgeaMh+aVsCA8IHNha2t5b3VzaGlzdXVcIDsKK+ebuOS6kumAmuS/oSA8IHNvdWdvdHN1dXNoaW5cIDsKK+ihqOWxpOmbquW0qSA8IGh5b3Vzb3VuYWRhcmVcIDsKK+eBveWus+WvvuetliA8IHNhaWdhaXRhaXNha3VcIDsKK+S6i+Wun+iqv+afuyA8IGppaml0c3VjaG91c2FcIDsKK+aXpee1jOaWsOiBniA8IG5pa2tlaXNoaW5idW5cIDsKK+S4remWk+mBuOaMmSA8IGNodXVrYW5zZW5reW9cIDsKK+W4gumVt+mBuOaMmSA8IHNoaWNob3VzZW5reW9cIDsKK+ayiOmZjea1t+WyuCA8IGNoaW5rb3VrYWlnYW5cIDsKK+eNheWtkOmgrSA8IHNoaXNoaWdhc2hpcmFcIDsKK+Wuh+Wumemjm+ihjOWjqyA8IHVjaHV1aGlrb3VzaGlcIDsKK+ekvuS8muemj+eliSA8IHNoYWthaWZ1a3VzaGlcIDsKK+irluWKn+ihjOizniA8IHJvbmtvdWtvdXNob3VcIDsKK+Wun+i3tei6rOihjCA8IGppc3Nlbmt5dXVrb3VcIDsKK+ims+Wvn+WKmyA8IGthbnNhdHN1cnlva3VcIDsKK+ato+WJr+S6jOmAmiA8IHNlaWZ1a3VuaXRzdXVcIDsKK+S6pOaEn+elnue1jCA8IGtvdWthbnNoaW5rZWlcIDsKK+a2iOiyu+mdqeWRvSA8IHNob3VoaWtha3VtZWlcIDsKK+iEseWKm+aEnyA8IGRhdHN1cnlva3VrYW5cIDsKK+WwguS7u+ism+W4qyA8IHNlbicnbmlua291c2hpXCA7CivmlK/lh7rpoY0gPCBzaGlzaHV0c3VnYWt1XCA7CivlpKfph4/nlJ/nlKMgPCB0YWlyeW91c2Vpc2FuXCA7CivmnIDpq5jmqZ/lr4YgPCBzYWlrb3VraW1pdHN1XCA7CivnrqHlvKbmpb3ms5UgPCBrYW5nZW5nYWt1aG91XCA7CivmlrDlk4HlkIzmp5ggPCBzaGlucGluZG91eW91XCA7CivlpKfomZDmrrogPCBkYWlneWFrdXNhdHN1XCA7CivliY3muKHph5EgPCBtYWV3YXRhc2hpa2luXCA7CivnnIvorbflqablrabpmaIgPCBrYW5nb2Z1Z2FrdWluXCA7CivlgpnojZLosq/ok4QgPCBiaWtvdWNob2NoaWt1XCA7CivoloTlv5flvLHooYwgPCBoYWt1c2hpamFra291XCA7Civli6TlirTpmo7ntJogPCBraW5yb3VrYWlreXV1XCA7CivkubPnmb3oibIgPCBueXV1aGFrdXNob2t1XCA7Civml6XljbDplqLkv4IgPCBuaWNoaWlua2Fua2VpXCA7CivntYLmpa3lvI8gPCBzaHV1Z3lvdXNoaWtpXCA7CivplbfmnJ/oqIjnlLsgPCBjaG91a2lrZWlrYWt1XCA7CivniIbnmbrnmoQgPCBiYWt1aGF0c3V0ZWtpXCA7CivkuI3mmYLnnYDpmbggPCBmdWppY2hha3VyaWt1XCA7CivmjpLms4TlmajlrpggPCBoYWlzZXRzdWtpa2FuXCA7Civoi7Hmlofop6Pph4ggPCBlaWJ1bmthaXNoYWt1XCA7CivlhY3osqzmnaHpoIUgPCBtZW5zZWtpam91a291XCA7CivpiYTpgZPnt5rot68gPCB0ZXRzdWRvdXNlbnJvXCA7CivljYHlrZfou43pqI7lo6sgPCBqdXVqaWd1bmtpc2hpXCA7CivmlLvmkoPmhYvli6IgPCBrb3VnZWtpdGFpc2VpXCA7CivlrprmnJ/mmIfntaYgPCB0ZWlraXNob3VreXV1XCA7CivoqJjov7Dmlofms5UgPCBraWp1dHN1YnVucG91XCA7Civoh6PnsY3pmY3kuIsgPCBzaGluc2VraWtvdWthXCA7Civngq3phbjpo7LmlpkgPCB0YW5zYW4nJ2lucnlvdVwgOwor5biC5aC05ouh5aSnIDwgc2hpam91a2FrdWRhaVwgOwor57K+5a+G5qmf5qKwIDwgc2VpbWl0c3VraWthaVwgOwor54Sh5qmf6auY5YiG5a2QIDwgbXVraWtvdWJ1bnNoaVwgOwor5qmf5YuV6K2m5a+fIDwga2lkb3VrZWlzYXRzdVwgOwor5riF5YWD56+AIDwga2l5b21vdG9idXNoaVwgOwor5bm06ZaT5Y+O55uKIDwgbmVua2Fuc2h1dWVraVwgOwor5Luy6KOB6KOB5a6aIDwgY2h1dXNhaXNhaXRlaVwgOwor6Zu36Kaq54i2IDwga2FtaW5hcmlveWFqaVwgOwor5YG15a+f6KaB5ZOhIDwgdGVpc2F0c3V5b3VpblwgOwor56We57WM6LOqIDwgc2hpbmtlaXNoaXRzdVwgOwor5paH6Jed5pil56eLIDwgYnVuZ2Vpc2h1bmp1dVwgOwor5Lq65b2i6Iqd5bGFIDwgbmluZ3lvdXNoaWJhaVwgOwor5rC05Lit55y86Y+hIDwgc3VpY2h1dW1lZ2FuZVwgOwor5YWs5bqP6Imv5L+XIDwga291am9yeW91em9rdVwgOwor5o6l552A5YqbIDwgc2V0Y2hha3VyeW9rdVwgOwor5LqU5pyI5bmfIDwgc2F0c3VraW5vYm9yaVwgOwor5ama5YmN5Lqk5riJIDwga29uemVua291c2hvdVwgOwor5aSq6Zm96buS54K5IDwgdGFpeW91a29rdXRlblwgOwor5LiK5b6h5LiA5Lq6IDwga2FtaWdvaWNoaW5pblwgOwor5Li76KaB5bel5qWtIDwgc2h1eW91a291Z3lvdVwgOwor5LiL562J5YuV54mpIDwga2F0b3Vkb3VidXRzdVwgOwor6YCG6Ly45Ye6IDwgZ3lha3V5dXNodXRzdVwgOwor55qE5Lit546HIDwgdGVraWNodXVyaXRzdVwgOwor5bu66Kit6LK7IDwga2Vuc2V0c3VoaXlvdVwgOwor6Iel6Jaq5ZiX6IOGIDwgZ2FzaGluc2hvdXRhblwgOwor5oyH5o+u5omA5ryU57+SIDwgc2hpa2lqb2Vuc2h1dVwgOwor6Ki655mC5pSv5o+0IDwgc2hpbnJ5b3VzaGllblwgOwor6Lui5Zyw55mC6aSKIDwgdGVuY2hpcnlvdXlvdVwgOwor5LiH6IO96YG45omLIDwgYmFuJydub3VzZW5zaHVcIDsKK+aVmeS8mumfs+alvSA8IGt5b3VrYWlvbmdha3VcIDsKK+WNg+i8ieS4gOmBhyA8IHNlbnphaWljaGlndXVcIDsKK+WxiOaKmOeOhyA8IGt1c3NldHN1cml0c3VcIDsKK+Wjsuiyt+Wlkee0hCA8IGJhaWJhaWtlaXlha3VcIDsKK+S9j+WuheWcsOW4ryA8IGp1dXRha3VjaGl0YWlcIDsKK+a4m+mAn+ijhee9riA8IGdlbnNva3Vzb3VjaGlcIDsKK+S9j+WuheWVj+mhjCA8IGp1dXRha3Vtb25kYWlcIDsKK+iIuemVt+WupCA8IHNlbmNob3VzaGl0c3VcIDsKK+WFjeeWq+ihgOa4hSA8IG1lbicnZWtpa2Vzc2VpXCA7CivmoLjlj43lv5zngokgPCBrYWt1aGFuJydub3Vyb1wgOwor5Li75pWZ5a6kIDwgc2h1a3lvdXNoaXRzdVwgOwor5pS+5bCE57ea5a2mIDwgaG91c2hhc2VuZ2FrdVwgOwor5rWB6YCa57WM6LevIDwgcnl1dXRzdXVrZWlyb1wgOwor5LqM6YW45YyW56qS57SgIDwgbmlzYW5rYWNoaXNzb1wgOwor5bCL5bi45LiA5qeYIDwgamluam91aWNoaXlvdVwgOwor5Zu95pyJ6LKh55SjIDwga29rdXl1dXphaXNhblwgOwor5biC5rCR6ZqO57SaIDwgc2hpbWlua2Fpa3l1dVwgOwor6KiA6Kqe55+l6K2YIDwgZ2VuZ29jaGlzaGlraVwgOwor5YWs5YWx5pS+6YCBIDwga291a3lvdWhvdXNvdVwgOwor5a6k5YaF5qW9IDwgc2hpdHN1bmFpZ2FrdVwgOwor5paR54q257WE57mUIDwgaGFuam91c29zaGlraVwgOwor5Lq65oOF6KmxIDwgbmluam91YmFuYXNoaVwgOwor6YeN54iG5pKD5qmfIDwganV1YmFrdWdla2lraVwgOwor5ama5aSW5Lqk5riJIDwga29uZ2Fpa291c2hvdVwgOwor5Luy6KOB6KOB5YikIDwgY2h1dXNhaXNhaWJhblwgOwor5L6v54i15aSr5Lq6IDwga291c2hha3VmdWppblwgOwor5r+D57eR6ImyIDwgbm91cnlva3VzaG9rdVwgOwor5pyJ6Imy6YeO6I+cIDwgeXV1c2hva3V5YXNhaVwgOwor6ZuG5Zuj6Ki06KifIDwgc2h1dWRhbnNvc2hvdVwgOwor5LiA5qyh55Sj5qWtIDwgaWNoaWppc2FuZ3lvdVwgOwor57e057+S5LiN6LazIDwgcmVuc2h1dWJ1c29rdVwgOwor5ZWG6Ii55a2m5qChIDwgc2hvdXNlbmdha2tvdVwgOwor6bqm6JeB6Jy76JuJIDwgbXVnaXdhcmF0b25ib1wgOwor6Ieq5YuV6LuK6Zu76KmxIDwgamlkb3VzaGFkZW53YVwgOwor5pyJ6ZmQ6ZuG5ZCIIDwgeXV1Z2Vuc2h1dWdvdVwgOwor6L+95Yqg5paZ6YeRIDwgdHN1aWthcnlvdWtpblwgOworzqDkuK3plpPlrZAgPCBwYWljaHV1a2Fuc2hpXCA7CivpgaDpmpTmlZnogrIgPCBlbmtha3VreW91aWt1XCA7CivohLPohIrpq4TmtrIgPCBub3VzZWtpenVpZWtpXCA7Civmg4XloLHlj6/oppbljJYgPCBqb3Vob3VrYXNoaWthXCA7CivmnbHopb/ljZfljJcgPCB0b3V6YWluYW5ib2t1XCA7CivoqLHlrrnnt5rph48gPCBreW95b3VzZW5yeW91XCA7CivmraPmnK3lgKTmrrUgPCBzaG91ZnVkYW5lZGFuXCA7Civlv5zmjqXlrqQgPCBvdXNldHN1c2hpdHN1XCA7Civlt67liKXplqLnqI4gPCBzYWJldHN1a2FuemVpXCA7CivkuK3nrYnlrabmoKEgPCBjaHV1dG91Z2Fra291XCA7CivnrqHlvKbmpb3lm6MgPCBrYW5nZW5nYWt1ZGFuXCA7CivkvrXnlaXlm70gPCBzaGlucnlha3Vrb2t1XCA7Civlr4TnlJ/nlJ/niakgPCBraXNlaXNlaWJ1dHN1XCA7CivkuLvmqKnlm57lvqkgPCBzaHVrZW5rYWlmdWt1XCA7CivkuKHpg6jnpZ7pgZMgPCByeW91YnVzaGludG91XCA7Civkvo3msJfos6ogPCBzYW11cmFpa2F0YWdpXCA7CivnlLPovrzmm7ggPCBtb3VzaGlrb21pc2hvXCA7CivntbnluIPkuIDlt7sgPCBrZW5wdWhpdG9tYWtpXCA7CivpgY7lnKflr4bmr5QgPCBrYWF0c3VtaXRzdWhpXCA7CivmkYLmsI/vvJLvvJDluqYgPCBzZXNzaGluaWp1dWRvXCA7Civoh6rnhLbpgbjmip4gPCBzaGl6ZW5zZW50YWt1XCA7Civnm7Toqqzms5UgPCBjaG9rdXNldHN1aG91XCA7CivkuIvnlLrpoqggPCBzaGl0YW1hY2hpZnV1XCA7Civlj43lv5zpgJ/luqYgPCBoYW4nJ25vdXNva3Vkb1wgOwor5bCP5Z6L6LWk5a626JqKIDwga29nYXRhYWthaWVrYVwgOwor5YG15a+f6KGb5pifIDwgdGVpc2F0c3VlaXNlaVwgOwor6aOf5Lit5q+SIDwgc2hva3VjaHV1ZG9rdVwgOwor5q2j5Ymv6K2w6ZW3IDwgc2VpZnVrdWdpY2hvdVwgOwor55Sj5Ye66auYIDwgc2Fuc2h1dHN1ZGFrYVwgOwor56We5YmN57WQ5amaIDwgc2hpbnplbmtla2tvblwgOwor5rOV55qE5omL5q61IDwgaG91dGVraXNodWRhblwgOwor5L2c5qWt6aCY5Z+fIDwgc2FneW91cnlvdWlraVwgOwor5bm06YeR6Ki85pu4IDwgbmVua2luc2hvdXNob1wgOwor5Lqk6YCa5aao5a6zIDwga291dHN1dWJvdWdhaVwgOwor55S65p2R5ZCI5L21IDwgY2hvdXNvbmdhcHBlaVwgOwor5pWZ5Lya5peL5rOVIDwga3lvdWthaXNlbnBvdVwgOwor5bmV6Jep5L2T5Yi2IDwgYmFrdWhhbnRhaXNlaVwgOwor56ys5LiA5Y2w6LGhIDwgZGFpaWNoaWluc2hvdVwgOwor55yf56m65YyF6KOFIDwgc2hpbmt1dWhvdXNvdVwgOwor55uj5p+76Ki86LehIDwga2Fuc2FzaG91c2VraVwgOwor6KqY5bCO6Zu75rWBIDwgeXV1ZG91ZGVucnl1dVwgOwor5b6p5pen5L2c5qWtIDwgZnVra3l1dXNhZ3lvdVwgOwor5L6b5Ye657GzIDwga3lvdXNodXRzdW1haVwgOwor5pCN5a6z6LOg5YSfIDwgc29uZ2FpYmFpc2hvdVwgOwor5oOz5YOP5aaK5aigIDwgc291em91bmluc2hpblwgOwor6Jma5b+D5Z2m5oeQIDwga3lvc2hpbnRhbmthaVwgOwor6ICQ6ZyH5qeL6YCgIDwgdGFpc2hpbmtvdXpvdVwgOwor5pyJ6ZmQ57Sa5pWwIDwgeXV1Z2Vua3l1dXN1dVwgOwor5aKX6Kit546HIDwgem91c2V0c3VyaXRzdVwgOwor5Zu95Zyf6KiI55S7IDwga29rdWRva2Vpa2FrdVwgOwor55Sf5a2Y56u25LqJIDwgc2Vpem9ua3lvdXNvdVwgOwor57WQ5ama5oqr6Zyy5a60IDwga2Vra29uaGlyb3VlblwgOwor5biC5rCR6Z2p5ZG9IDwgc2hpbWlua2FrdW1laVwgOwor5Zyn5Yqb6Y2LIDwgYXRzdXJ5b2t1bmFiZVwgOwor5aSn57Wx6aCY6YG4IDwgZGFpdG91cnlvdXNlblwgOwor6KOc57+S5pWZ6IKyIDwgaG9zaHV1a3lvdWlrdVwgOwor5Y+45Luk6ZW35a6YIDwgc2hpcmVpY2hvdWthblwgOwor6LOD6YeR5L2T57O7IDwgY2hpbmdpbnRhaWtlaVwgOwor5rW35LiK6Ieq6KGb6ZqKIDwga2Fpam91amllaXRhaVwgOwor5YWo5Lq65pWZ6IKyIDwgemVuamlua3lvdWlrdVwgOwor5a6Y5oi/6ZW35a6YIDwga2FuYm91Y2hvdWthblwgOwor5LyB5qWt56eY5a+GIDwga2lneW91aGltaXRzdVwgOwor5q665Lq65LqL5Lu2IDwgc2F0c3VqaW5qaWtlblwgOwor5Zuj5qCX55y8IDwgZG9uZ3VyaW1hbmFrb1wgOwor5Zyn5Yqb6YecIDwgYXRzdXJ5b2t1Z2FtYVwgOwor5Ye25oKq54qv572qIDwga3lvdWFrdWhhbnphaVwgOwor5aSp54S26LOH5rqQIDwgdGVuJyduZW5zaGlnZW5cIDsKK+eZvuWnk+S4gOaPhiA8IGh5YWt1c2hvdWlra2lcIDsKK+WOn+ahiOWnlOWToeS8miA8IGdlbicnYW4nJ2lpbmthaVwgOwor5rCX5a+G5a6kIDwga2ltaXRzdXNoaXRzdVwgOwor57eP5ZCI5aSn5a2mIDwgc291Z291ZGFpZ2FrdVwgOwor5LuP6aCC5bCK5YudIDwgYnVjaG91c29uc2hvdVwgOwor5Y2D5beu5LiH5YilIDwgc2Vuc2FiYW5iZXRzdVwgOwor6YG45omL5qip6Kmm5ZCIIDwgc2Vuc2h1a2VuamlhaVwgOwor57ay54q257WE57mUIDwgbW91am91c29zaGlraVwgOwor56ys5LiA6YOo6ZW3IDwgZGFpaWNoaWJ1Y2hvdVwgOwor5rqW5rqW5rG65YudIDwganVuanVua2Vzc2hvdVwgOwor5aSn5ZKM5rCR5pePIDwgeWFtYXRvbWluem9rdVwgOwor5b+c5o6l5L+CIDwgb3VzZXRzdWdha2FyaVwgOwor5Zyw5q675aSJ5YuVIDwgY2hpa2FrdWhlbmRvdVwgOwor6LKh5pS/5pS56Z2pIDwgemFpc2Vpa2Fpa2FrdVwgOwor5YWx5ZCM6KiI566XIDwga3lvdWRvdWtlaXNhblwgOwor5aWz5oi/6KmeIDwgbnlvdWJvdWtvdG9iYVwgOwor5YaZ55yf6Zu76YCBIDwgc2hhc2hpbmRlbnNvdVwgOwor5YiG5YiX5byPIDwgYnVucmV0c3VzaGlraVwgOwor5LiN6Imv6Ki65patIDwgZnVyeW91c2hpbmRhblwgOwor5rC055Sj5aSn5a2mIDwgc3Vpc2FuZGFpZ2FrdVwgOwor5Y2Y5byP54Gr5bGxIDwgdGFuc2hpa2lrYXphblwgOwor5LiA5YiG5LiA5Y6YIDwgaWNoaWJ1aWNoaXJpblwgOwor5a6f5Zyw5qSc6Ki8IDwgaml0Y2hpa2Vuc2hvdVwgOwor5YyX5riF5LqL5aSJIDwgaG9rdXNoaW5qaWhlblwgOwor5Lq66Z2i542j5b+DIDwgbmlubWVuanV1c2hpblwgOwor6Kaq5Lu75byPIDwgc2hpbicnbmluc2hpa2lcIDsKK+ioiOeUu+autemajiA8IGtlaWtha3VkYW5rYWlcIDsKK+eUn+a0u+WKmyA8IHNlaWthdHN1cnlva3VcIDsKK+ekvuWToemjn+WggiA8IHNoYWluc2hva3Vkb3VcIDsKK+mDteS+v+aWmemHkSA8IHl1dWJpbnJ5b3VraW5cIDsKK+S6lOWNgeS4ieasoSA8IGdvanV1c2FudHN1Z2lcIDsKK+WEquWLneWKo+aVlyA8IHl1dXNob3VyZXBwYWlcIDsKK+W/q+mAn+WIl+i7iiA8IGthaXNva3VyZXNzaGFcIDsKK+mbo+awkeadoee0hCA8IG5hbm1pbmpvdXlha3VcIDsKK+Wbvemam+aUvumAgSA8IGtva3VzYWlob3Vzb3VcIDsKK+WFreWNgeS9meW3niA8IHJva3VqdXV5b3NodXVcIDsKK+aApeihjOWIl+i7iiA8IGt5dXVrb3VyZXNzaGFcIDsKK+aXpeWSjOimi+S4u+e+qSA8IGhpeW9yaW1pc2h1Z2lcIDsKK+ajruael+WcsOW4ryA8IHNoaW5yaW5jaGl0YWlcIDsKK+mOluWbveaUv+etliA8IHNha29rdXNlaXNha3VcIDsKK+WFt+ixoee+juihkyA8IGd1c2hvdWJpanV0c3VcIDsKK+aHkOefs+aWmeeQhiA8IGthaXNla2lyeW91cmlcIDsKK+ewoeaYk+mjn+WggiA8IGthbicnaXNob2t1ZG91XCA7Civmmpfpu5LlpKfpmbggPCBhbmtva3V0YWlyaWt1XCA7Civpp4XplbflrqQgPCBla2ljaG91c2hpdHN1XCA7Civlj43li5Xpnanlkb0gPCBoYW5kb3VrYWt1bWVpXCA7Civlha3moLnmuIXmtYQgPCByb2trb25zaG91am91XCA7CivllYbmpa3kuLvnvqkgPCBzaG91Z3lvdXNodWdpXCA7Civku67oo4XoiJ7ouI/kvJogPCBrYXNvdWJ1dG91a2FpXCA7Civkv6HpoLzphrjmiJAgPCBzaGlucmFpam91c2VpXCA7CivlhbHlkIzlo7DmmI4gPCBreW91ZG91c2VpbWVpXCA7Civpga7lhYnlmajlnJ/lgbYgPCBzaGFrb3VraWRvZ3V1XCA7CivlibLlvJXliIfnrKYgPCB3YXJpYmlraWtpcHB1XCA7CivkuIvmsLTlh6bnkIbloLQgPCBnZXN1aXNob3Jpam91XCA7CivlhrfljbTmnJ/plpMgPCByZWlreWFrdWtpa2FuXCA7CivmgZnomasgPCB0c3V0c3VnYW11c2hpXCA7CivkuZ3mrbvkuIDnlJ8gPCBreXV1c2hpaXNzaG91XCA7CivkuK3oj6/msJHlm70gPCBjaHV1a2FtaW5rb2t1XCA7CivlkIjnkIbkuLvnvqnogIUgPCBnb3VyaXNodWdpc2hhXCA7Civmi6Hlo7Doo4Xnva4gPCBrYWt1c2Vpc291Y2hpXCA7CivpgZPot6/lu7roqK0gPCBkb3Vyb2tlbnNldHN1XCA7CivkurrpgKDlrp3nn7MgPCBqaW56b3Vob3VzZWtpXCA7CivovLjlh7rkv53pmbogPCB5dXNodXRzdWhva2VuXCA7Civlv4Xkv67np5Hnm64gPCBoaXNzaHV1a2Ftb2t1XCA7CivntabkuI7miYDlvpcgPCBreXV1eW9zaG90b2t1XCA7CivmrbTlj7LlrabmtL4gPCByZWtpc2hpZ2FrdWhhXCA7CivnrYnlt67mlbDliJcgPCB0b3VzYXN1dXJldHN1XCA7CivlkJvlrZDosbnlpIkgPCBrdW5zaGloeW91aGVuXCA7CivkuIvooajlj4LnhacgPCBrYWh5b3VzYW5zaG91XCA7Civli6Llipvnr4Tlm7IgPCBzZWlyeW9rdWhhbicnaVwgOwor6YCa6LKo5pS/562WIDwgdHN1dWthc2Vpc2FrdVwgOwor54us5Y2g5LyB5qWtIDwgZG9rdXNlbmtpZ3lvdVwgOwor54m55qip6ZqO57SaIDwgdG9ra2Vua2Fpa3l1dVwgOwor5q2j6KaP5puy57eaIDwgc2Vpa2lreW9rdXNlblwgOwor5YKN6IG054Sh5paZIDwgYm91Y2hvdW11cnlvdVwgOwor55Sj5qWt6LOH5pysIDwgc2FuZ3lvdXNoaWhvblwgOwor5qW95Zmo5ryU5aWP6ICFIDwgZ2Fra2llbnNvdXNoYVwgOwor56uL55+z6Zu75qmfIDwgdGF0ZWlzaGlkZW5raVwgOwor5aSc6ZaT5Lit5a2mIDwgeWFrYW5jaHV1Z2FrdVwgOwor6LK/5piT5pGp5pOmIDwgYm91ZWtpbWFzYXRzdVwgOwor5bm06Lyq5Y+y5a2mIDwgbmVucmluc2hpZ2FrdVwgOwor5a625LuY5aiYIDwgaWV0c3VraW11c3VtZVwgOwor5qmf5qKw57+76KizIDwga2lrYWlob24nJ3lha3VcIDsKK+mHkeenkeeOieadoSA8IGtpbmthZ3lva3Vqb3VcIDsKK+awkemWk+eZguazlSA8IG1pbmthbnJ5b3Vob3VcIDsKK+aDheazgeiovOaLoCA8IGpvdWt5b3VzaG91a29cIDsKK+WPpOWFuOS4u+e+qeiAhSA8IGtvdGVuc2h1Z2lzaGFcIDsKK+W/g+aCuOS6oumAsiA8IHNoaW5raWtvdXNoaW5cIDsKK+WbveWcn+WcsOeQhumZoiA8IGtva3Vkb2NoaXJpaW5cIDsKK+WumuaAp+WIhuaekCA8IHRlaXNlaWJ1bnNla2lcIDsKK+W4guihl+WMluWMuuWfnyA8IHNoaWdhaWtha3Vpa2lcIDsKK+eJueioseaKgOihkyA8IHRva2t5b2dpanV0c3VcIDsKK+WgsemBk+WGmeecnyA8IGhvdWRvdXNoYXNoaW5cIDsKK+acgOS9juizg+mHkSA8IHNhaXRlaWNoaW5naW5cIDsKK+eZvuaXpeiNiSA8IGh5YWt1bmljaGlzb3VcIDsKK+eerOmWk+mbu+aWrSA8IHNodW5rYW5kZW5kYW5cIDsKK+W5tOmgreaVmeabuCA8IG5lbnRvdWt5b3VzaG9cIDsKK+adsea0i+autemAmiA8IHRvdXlvdWRhbnRzdXVcIDsKK+eLrOWNoOizh+acrCA8IGRva3VzZW5zaGlob25cIDsKK+adseaWueaVmeS8miA8IHRvdWhvdWt5b3VrYWlcIDsKK+mbu+awl+apn+mWoui7iiA8IGRlbmtpa2lrYW5zaGFcIDsKK+iHquimmueXh+eKtiA8IGppa2FrdXNob3Vqb3VcIDsKK+WkqeS9k+ims+a4rCA8IHRlbnRhaWthbnNva3VcIDsKK+e+pOmbhuihjOWLlSA8IGd1bnNodXVrb3Vkb3VcIDsKK+ihhuS6uueSsOimliA8IHNodXVqaW5rYW5zaGlcIDsKK+i/t+i1sOelnue1jCA8IG1laXNvdXNoaW5rZWlcIDsKK+aIpueVpeWFteWZqCA8IHNlbnJ5YWt1aGVpa2lcIDsKK+WFiOWItuaUu+aSgyA8IHNlbnNlaWtvdWdla2lcIDsKK+aciee1puS8keaahyA8IHl1dWt5dXVreXV1a2FcIDsKK+imi+WtpuaXheihjCA8IGtlbmdha3VyeW9rb3VcIDsKK+WbveWGhee1jOa4iCA8IGtva3VuYWlrZWl6YWlcIDsKK+WvvuepuuWwhOaSgyA8IHRhaWt1dXNoYWdla2lcIDsKK+avlOi8g+WvvueFpyA8IGhpa2FrdXRhaXNob3VcIDsKK+W4guS4remKgOihjCA8IHNoaWNodXVnaW5rb3VcIDsKK+WumueCueims+a4rCA8IHRlaXRlbmthbnNva3VcIDsKK+S/g+aIkOagveWfuSA8IHNva3VzZWlzYWliYWlcIDsKK+S4oeS4ieaXpSA8IHJ5b3VzYW4nJ25pY2hpXCA7Civos4Pph5HmoLzlt64gPCBjaGluZ2lua2FrdXNhXCA7CivmlK/phY3pmo7ntJogPCBzaGloYWlrYWlreXV1XCA7Civkuozph43pnLLlh7ogPCBuaWp1dXJvc2h1dHN1XCA7Civli5XohIjnoazljJYgPCBkb3VteWFrdWtvdWthXCA7CivpmqPmjqXpg6jpmoogPCByaW5zZXRzdWJ1dGFpXCA7Civlu7roqK3mqZ/morAgPCBrZW5zZXRzdWtpa2FpXCA7CivkuIrlsaTpmo7ntJogPCBqb3Vzb3VrYWlreXV1XCA7CivkuInmi53kuZ3mi50gPCBzYW5wYWlreXV1aGFpXCA7CivplovmoKHoqJjlv7Xml6UgPCBrYWlrb3VraW5lbmJpXCA7CivkuI3lj6/nn6Xoq5bogIUgPCBmdWthY2hpcm9uc2hhXCA7Civml5fooYzliJcgPCBoYXRhZ3lvdXJldHN1XCA7Civnibnmrorms5XkurogPCB0b2t1c2h1aG91amluXCA7Civlo6vprYLllYbmiY0gPCBzaGlrb25zaG91c2FpXCA7Civlgrfnl4XmjZXomZwgPCBzaG91YnlvdWhvcnlvXCA7CivnhKHmgKfnlJ/mrpYgPCBtdXNlaXNlaXNob2t1XCA7CivnnInllL7niakgPCBtYXl1dHN1YmFtb25vXCA7CivosqHmlL/mlL/nrZYgPCB6YWlzZWlzZWlzYWt1XCA7CivpmbjkuIrnq7bmioAgPCByaWt1am91a3lvdWdpXCA7CivljZropqflvLfoqJggPCBoYWt1cmFua3lvdWtpXCA7CivkurrmqKnkvrXlrrMgPCBqaW5rZW5zaGluZ2FpXCA7Civnt4/poJjmga/lrZAgPCBzb3VyeW91bXVzdWtvXCA7CivpgLLooYzkv4IgPCBzaGlua291Z2FrYXJpXCA7Civoj5zpo5/kuLvnvqkgPCBzYWlzaG9rdXNodWdpXCA7CivnhKHoqJjlkI3lgrXmqKkgPCBtdWtpbWVpc2Fpa2VuXCA7CivotaTlpJbnmbrmlaMgPCBzZWtpZ2FpaGFzc2FuXCA7CivooZvmmJ/pgJrkv6EgPCBlaXNlaXRzdXVzaGluXCA7Civkurrlk6HliYrmuJsgPCBqaW4nJ2luc2FrdWdlblwgOwor5YuV5qSN54mpIDwgZG91c2hva3VidXRzdVwgOwor546H5YWI6Lqs6KGMIDwgc29zc2Vua3l1dWtvdVwgOwor5YWN56iO5omA5b6XIDwgbWVuemVpc2hvdG9rdVwgOwor6Ziy57iu5Yqg5belIDwgYm91c2h1a3VrYWtvdVwgOwor6KSH5byP57C/6KiYIDwgZnVrdXNoaWtpYm9raVwgOwor6LKs5Lu75YiG5ouFIDwgc2VraW5pbmJ1bnRhblwgOwor5q2m5Yqb6KGM5L2/IDwgYnVyeW9rdWtvdXNoaVwgOwor55Wq57WE57eo5oiQIDwgYmFuZ3VtaWhlbnNlaVwgOwor5YWo5rOi5Y+X5L+h5qmfIDwgemVucGFqdXNoaW5raVwgOwor5b+F6KaB54mpIDwgaGl0c3V5b3VidXRzdVwgOwor5LyR5oGv5pmC6ZaTIDwga3l1dXNva3VqaWthblwgOwor5LiJ6Lu45a6kIDwgc2FuamlrdXNoaXRzdVwgOwor5LqM6YeN6Zai56+AIDwgbmlqdXVrYW5zZXRzdVwgOwor5b6F5ZCI5a6kIDwgbWFjaGlhaXNoaXRzdVwgOwor5Y2a54mp5a2mIDwgaGFrdWJ1dHN1Z2FrdVwgOwor6Kaz5YWJ55Sj5qWtIDwga2Fua291c2FuZ3lvdVwgOwor57WQ57Su6KGTIDwga2Vzc2F0c3VqdXRzdVwgOwor5Y2a5byV5peB6Ki8IDwgaGFrdWluYm91c2hvdVwgOwor5re35YWl54mpIDwga29uJydueXV1YnV0c3VcIDsKK+WFseiyqeS8muekviA8IGt5b3VoYW5nYWlzaGFcIDsKK+aPmumZuOiJpuiJhyA8IHlvdXJpa3VrYW50ZWlcIDsKK+WFrOWus+WvvuetliA8IGtvdWdhaXRhaXNha3VcIDsKK+mZveWLleS9nOaIpiA8IHlvdWRvdXNha3VzZW5cIDsKK+W5s+WSjOS4u+e+qeiAhSA8IGhlaXdhc2h1Z2lzaGFcIDsKK+iqmOaLkOeKr+S6uiA8IHl1dWthaWhhbicnbmluXCA7CivlhoXoh5Pnlr7mgqMgPCBuYWl6b3VzaGlra2FuXCA7Civkv67lo6voq5bmlocgPCBzaHV1c2hpcm9uYnVuXCA7Civpq5jnrYnmlZnogrIgPCBrb3V0b3VreW91aWt1XCA7CivmuKzph4/mqZ/morAgPCBzb2t1cnlvdWtpa2FpXCA7CivpnIrmhJ/llYbms5UgPCByZWlrYW5zaG91aG91XCA7CivlkarnianltIfmi50gPCBqdWJ1dHN1c3V1aGFpXCA7CivmlofkurrloqjlrqIgPCBidW5qaW5ib2trYWt1XCA7Civmib/nn6XkuYvliqkgPCBzaG91Y2hpbm9zdWtlXCA7CivotorlubTojYnmnKwgPCBldHN1bmVuc291aG9uXCA7CivpnZLlpKnkupXkuojnrpcgPCBhb3RlbmpvdXlvc2FuXCA7Civnirbms4HmhI/lkbPoq5YgPCBqb3VreW91aW1pcm9uXCA7CivpgJrli6TliJfou4ogPCB0c3V1a2lucmVzc2hhXCA7Civlh7rluK3njocgPCBzaHVzc2VraXJpdHN1XCA7Civnsr7pgLLmlpnnkIYgPCBzaG91amlucnlvdXJpXCA7CivkuLvlipvpg6jpmoogPCBzaHVyeW9rdWJ1dGFpXCA7CivmvKLlrZfmlofljJblnI8gPCBrYW5qaWJ1bmtha2VuXCA7Civpg7flnJ/mloflraYgPCBreW91ZG9idW5nYWt1XCA7Civnm7TmjqXnqI4gPCBjaG9rdXNldHN1emVpXCA7CivlpLHmpa3ogIUgPCBzaGl0c3VneW91c2hhXCA7Civmra/np5HmioDlt6Xlo6sgPCBzaGlrYWdpa291c2hpXCA7CivmnJ/mnKvoqabpqJMgPCBraW1hdHN1c2hpa2VuXCA7CivpgKPpgqbpppbnm7ggPCByZW5wb3VzaHVzaG91XCA7Civmg4XloLHlt6XlraYgPCBqb3Vob3Vrb3VnYWt1XCA7CivniafnlZzmpa0gPCBib2t1Y2hpa3VneW91XCA7CivkuIPliIbkuInliIYgPCBzaGljaGlidXNhbmJ1XCA7Civlj4LogIPos4fmlpkgPCBzYW5rb3VzaGlyeW91XCA7CivmtbfkuIrovLjpgIHot68gPCBrYWlqb3V5dXNvdXJvXCA7Civni6zmlq3lsILooYwgPCBkb2t1ZGFuc2Vua291XCA7CivlhaXlrabogIPmn7sgPCBueXV1Z2FrdWtvdXNhXCA7Civpga3pm6Pkv6Hlj7cgPCBzb3VuYW5zaGluZ291XCA7CivmtYHli5Xos4fnlKMgPCByeXV1ZG91c2hpc2FuXCA7Civmp4vnr4nniakgPCBrb3VjaGlrdWJ1dHN1XCA7CivkuIvlm5vljYrmnJ8gPCBzaGltb3NoaWhhbmtpXCA7Civpgbjmip7np5Hnm64gPCBzZW50YWt1a2Ftb2t1XCA7CivoqK3nq4vogIUgPCBzZXRzdXJpdHN1c2hhXCA7Civmg4XloLHmpJzntKIgPCBqb3Vob3VrZW5zYWt1XCA7CivpoILkuIrkvJroq4cgPCBjaG91am91a2FpZGFuXCA7CivlhbHmuIjntYTlkIggPCBreW91c2Fpa3VtaWFpXCA7Civlj4LogIPmm7jnm64gPCBzYW5rb3VzaG9tb2t1XCA7Civmsrvlronorablr58gPCBjaGlhbmtlaXNhdHN1XCA7CivoiIjmpa3pioDooYwgPCBrb3VneW91Z2lua291XCA7Civoqr/lgZzlp5Tlk6HkvJogPCBjaG91dGVpaWlua2FpXCA7CivooYzmlL/mm7jlo6sgPCBneW91c2Vpc2hvc2hpXCA7CivplqLpgKPpoIXnm64gPCBrYW5yZW5rb3Vtb2t1XCA7Civpm6PooYzoi6booYwgPCBuYW5neW91a3VneW91XCA7CivooYzmlrnkuI3mmI7ogIUgPCB5dWt1ZWZ1bWVpc2hhXCA7CivpoJDph5HpgJrluLMgPCB5b2tpbnRzdXVjaG91XCA7CivntrLohpzliaXpm6IgPCBtb3VtYWt1aGFrdXJpXCA7CivovLjlh7rmpJzmn7sgPCB5dXNodXRzdWtlbnNhXCA7Civnp4HlhbEgPCB3YXRha3VzaGlkb21vXCA7CivmjIflrprpipjmn4QgPCBzaGl0ZWltZWlnYXJhXCA7CivphZLmsaDogonmnpcgPCBzaHVjaGluaWt1cmluXCA7CivlhKrnrYnos57nirYgPCB5dXV0b3VzaG91am91XCA7Civpu4Tph5HliIblibIgPCBvdWdvbmJ1bmthdHN1XCA7Civkv67nuZXlt6XloLQgPCBzaHV1emVua291am91XCA7CivotrPplbfonIIgPCBhc2hpbmFnYWJhY2hpXCA7CivkuozogIXpgbjkuIAgPCBuaXNoYXNlbicnaXRzdVwgOwor57KY5ray6LOqIDwgbmVuJydla2lzaGl0c3VcIDsKK+engeS6iyA8IHdhdGFrdXNoaWdvdG9cIDsKK+iPjOmhnuWtpuiAhSA8IGtpbnJ1aWdha3VzaGFcIDsKK+WkluWbvemDteS+vyA8IGdhaWtva3V5dXViaW5cIDsKK+S6pOmAmuWcsOeNhCA8IGtvdXRzdXVqaWdva3VcIDsKK+mbhuWbo+e1kOWpmiA8IHNodXVkYW5rZWtrb25cIDsKK+aEm+eOqeWLleeJqSA8IGFpZ2FuZG91YnV0c3VcIDsKK+mWk+aOpeipseazlSA8IGthbnNldHN1d2Fob3VcIDsKK+WtpueUn+mDqOmVtyA8IGdha3VzZWlidWNob3VcIDsKK+mbsuW9ouWumuimjyA8IGt1bW9nYXRham91Z2lcIDsKK+WAi+S6uueahOaEj+imiyA8IGtvamludGVraWlrZW5cIDsKK+Wxi+WkluW6g+WRiiA8IG9rdWdhaWtvdWtva3VcIDsKK+S6oeWRveaWh+WtpiA8IGJvdW1laWJ1bmdha3VcIDsKK+WMl+Wbvei1pOa1t+iAgSA8IGhva2tva3Vha2FlYmlcIDsKK+mAo+e2mumWouaVsCA8IHJlbnpva3VrYW5zdXVcIDsKK+W5vemciuipsSA8IHl1dXJlaWJhbmFzaGlcIDsKK+ethui3oemRkeWumiA8IGhpc3Nla2lrYW50ZWlcIDsKK+WQjOizqueahCA8IGRvdXNoaXRzdXRla2lcIDsKK+W7g+eJqeWIqeeUqCA8IGhhaWJ1dHN1cml5b3VcIDsKK+i7iuS4oeS8muekviA8IHNoYXJ5b3VnYWlzaGFcIDsKK+m6u+iWrOW4uOe/kiA8IG1heWFrdWpvdXNodXVcIDsKK+S4jeW+l+imgemgmCA8IGZ1dG9rdXlvdXJ5b3VcIDsKK+WxseWys+WcsOW4ryA8IHNhbmdha3VjaGl0YWlcIDsKK+WVj+mhjOmgmOWfnyA8IG1vbmRhaXJ5b3Vpa2lcIDsKK+Wft+edgOW/gyA8IHNodXVjaGFrdXNoaW5cIDsKK+WAi+WIpeiyqeWjsiA8IGtvYmV0c3VoYW5iYWlcIDsKK+W5s+ihoeaEn+immiA8IGhlaWtvdWthbmtha3VcIDsKK+WGheWbvemDteS+vyA8IG5haWtva3V5dXViaW5cIDsKK+WKm+mWouS/giA8IGNoaWthcmFrYW5rZWlcIDsKK+WgsemBk+eVque1hCA8IGhvdWRvdWJhbmd1bWlcIDsKK+e0meS4iuioiOeUuyA8IHNoaWpvdWtlaWtha3VcIDsKK+S6jOmHjeWbveexjSA8IG5panV1a29rdXNla2lcIDsKK+ihjOaUv+iotOionyA8IGd5b3VzZWlzb3Nob3VcIDsKK+e1tue4geaKteaKlyA8IHpldHN1ZW50ZWlrb3VcIDsKK+WMv+WQjeaJueiplSA8IHRva3VtZWloaWh5b3VcIDsKK+mVt+acn+WbveWCtSA8IGNob3VraWtva3VzYWlcIDsKK+WFiee3mueZguazlSA8IGtvdXNlbnJ5b3Vob3VcIDsKK+a1geWLleizh+acrCA8IHJ5dXVkb3VzaGlob25cIDsKK+iovOWIuOW4guWgtCA8IHNob3VrZW5zaGlqb3VcIDsKK+eDj+iKu+aymeaRqeWmmeeOiyA8IHVzdXNhbWFteW91b3VcIDsKK+W7uuioreW3peS6iyA8IGtlbnNldHN1a291amlcIDsKK+WkieaFi+aAp+assiA8IGhlbnRhaXNlaXlva3VcIDsKK+epuuS4ree0sOiPjCA8IGt1dWNodXVzYWlraW5cIDsKK+S7o+mHkeW8leaPmyA8IGRhaWtpbmhpa2lrYWVcIDsKK+iMtueVqueLguiogCA8IGNoYWJhbmt5b3VnZW5cIDsKK+S6pOmAmuimj+WJhyA8IGtvdXRzdXVraXNva3VcIDsKK+eJqeizqueahCA8IGJ1c3NoaXRzdXRla2lcIDsKK+ePvueJqeebuOWgtCA8IGdlbmJ1dHN1c291YmFcIDsKK+adn+e4m+eQhuirliA8IHNva3ViYWt1cmlyb25cIDsKK+WFrOato+iovOabuCA8IGtvdXNlaXNob3VzaG9cIDsKK+WQjOebn+aAoOalrSA8IGRvdW1laXRhaWd5b3VcIDsKK+ihjOWLleaWuemHnSA8IGtvdWRvdWhvdXNoaW5cIDsKK+mBqeato+S+oeagvCA8IHRla2lzZWlrYWtha3VcIDsKK+S6uueoruaUueiJryA8IGppbnNodWthaXJ5b3VcIDsKK+S9v+mAlOS4jeaYjumHkSA8IHNoaXRvZnVtZWlraW5cIDsKK+WNiua1geWLleS9kyA8IGhhbnJ5dXVkb3V0YWlcIDsKK+aZruS7j+aIpuS6iSA8IGZ1ZnV0c3VzZW5zb3VcIDsKK+iSuOeZuueGsSA8IGpvdWhhdHN1bmV0c3VcIDsKK+S6jOmHjee1kOWQiCA8IG5panV1a2V0c3Vnb3VcIDsKK+WFjeiyrOeJueaoqSA8IG1lbnNla2l0b2trZW5cIDsKK+aHsuaIkuWHpuWIhiA8IGNob3VrYWlzaG9idW5cIDsKK+S4jeW/g+W+l+iAhSA8IGZ1a29rb3JvZW1vbm9cIDsKK+ixquaUvuejiuiQvSA8IGdvdWhvdXJhaXJha3VcIDsKK+iJpuegsuWwhOaSgyA8IGthbnBvdXNoYWdla2lcIDsKK+mWouaVsOino+aekCA8IGthbnN1dWthaXNla2lcIDsKK+awkeS4u+WMlumBi+WLlSA8IG1pbnNodWthdW5kb3VcIDsKK+Wkqeawl+ebuOirh+aJgCA8IHRlbmtpc291ZGFuam9cIDsKK+mAmuS/oeism+W6pyA8IHRzdXVzaGlua291emFcIDsKK+WkluiyqOeNsuW+lyA8IGdhaWtha2FrdXRva3VcIDsKK+WPguWKoOW4jOacm+iAhSA8IHNhbmtha2lib3VzaGFcIDsKK+aHkOeWkeS4u+e+qeiAhSA8IGthaWdpc2h1Z2lzaGFcIDsKK+mbu+awl+a6tuaOpSA8IGRlbmtpeW91c2V0c3VcIDsKK+WQrueZsOiIkOeXlCA8IHNlbicneW91c2hpamlcIDsKK+WKtOWDjeadoeS7tiA8IHJvdWRvdWpvdWtlblwgOwor5aSW5Zu96Iiq6LevIDwgZ2Fpa29rdWtvdXJvXCA7CivkvJ3pgIHpgJ/luqYgPCBkZW5zb3Vzb2t1ZG9cIDsKK+S4gOacrOiqv+WtkCA8IGlwcG9uZGpvdXNoaVwgOwor5aKc6JC95LqL5pWFIDwgdHN1aXJha3VqaWtvXCA7CivolqnmkanplqUgPCBzYXRzdW1hYmF0c3VcIDsKK+imluiBtOeOhyA8IHNoaWNob3VyaXRzdVwgOwor57ea6aaZ6Iqx54GrIDwgc2Vua291aGFuYWJpXCA7CivmnbHkuqzpg73mlL8gPCB0b3VreW91dG9zZWlcIDsKK+i7jeS6i+eUo+alrSA8IGd1bmppc2FuZ3lvdVwgOwor5Luj55CG54mn5birIDwgZGFpcmlib2t1c2hpXCA7CivkuInljYHkuInmiYAgPCBzYW5qdXVzYW5zaG9cIDsKK+S4gOasoee3mui8qiA8IGljaGlqaXNlbnJpblwgOwor55Wz5rC057e0IDwgdGF0YW1pc3VpcmVuXCA7CivkvqHmoLzlpInli5UgPCBrYWtha3VoZW5kb3VcIDsKK+aCoOaCoOiHqumBqSA8IHl1dXl1dWppdGVraVwgOwor5bGx57Sr5rC05piOIDwgc2Fuc2hpc3VpbWVpXCA7CivluZXlg5rplbcgPCBiYWt1cnlvdWNob3VcIDsKK+epuui8uOiyqOeJqSA8IGt1dXl1a2Ftb3RzdVwgOwor6Kaz5YWJ6LOH5rqQIDwga2Fua291c2hpZ2VuXCA7CivoppbopproqIDoqp4gPCBzaGlrYWt1Z2VuZ29cIDsKK+m6u+iWrOW4uOeUqCA8IG1heWFrdWpvdXlvdVwgOwor5pel5pyd6L6e5YW4IDwgbml0Y2hvdWppdGVuXCA7CivlupfpoK3lgrXliLggPCB0ZW50b3VzYWlrZW5cIDsKK+eJiOaoqeaJgOaciSA8IGhhbmtlbnNob3l1dVwgOwor5LiA5rOK6KGM6LuNIDwgaXBwYWt1a291Z3VuXCA7CivpnZLnqbrluILloLQgPCBhb3pvcmFzaGlqb3VcIDsKK+mWi+elqOe1kOaenCA8IGthaWh5b3VrZWtrYVwgOwor5Y2Y54us6Kyb5ZKMIDwgdGFuZG9rdWtvdXdhXCA7Civov5Hku6Pnp5HlraYgPCBraW5kYWlrYWdha3VcIDsKK+eEoeelnuirluiAhSA8IG11c2hpbnJvbnNoYVwgOwor5biC6K2w5Lya6K2w5ZOhIDwgc2hpZ2lrYWlnaWluXCA7Civnj77lrp/nmoQgPCBnZW5qaXRzdXRla2lcIDsKK+eUu+S4gOeahCA8IGtha3VpdHN1dGVraVwgOwor5pyJ5b2i6LKh55SjIDwgeXV1a2VpemFpc2FuXCA7CivmsrPlsrjmrrXkuJggPCBrYWdhbmRhbmt5dXVcIDsKK+WkqumZveWFiee3miA8IHRhaXlvdWtvdXNlblwgOwor5Y246YWS6LKpIDwgb3Jvc2hpc2h1aGFuXCA7CivlhITkuIfplbfogIUgPCBva3VtYW5jaG91amFcIDsKK+WMlueyp+efs+m5uCA8IGtlc2hvdXNla2tlblwgOwor6KiA6Kqe55mC5rOVIDwgZ2VuZ29yeW91aG91XCA7CivlronlrprmiJDplbcgPCBhbnRlaXNlaWNob3VcIDsKK+elnuaoqeaUv+ayuyA8IHNoaW5rZW5zZWlqaVwgOwor6Kaq5pel5a62IDwgc2hpbicnbmljaGlrYVwgOwor6Iez5LiK5ZG95LukIDwgc2hpam91bWVpcmVpXCA7CivlhoXlh7rooYAgPCBuYWlzaHVra2V0c3VcIDsKK+S4reWkruWnlOWToeS8miA8IGNodXVvdWlpbmthaVwgOwor5r2k562G5paZIDwganVucGl0c3VyeW91XCA7Civpn7Pmpb3nvo7lraYgPCBvbmdha3ViaWdha3VcIDsKK+WKtOWDjeWkp+iHoyA8IHJvdWRvdWRhaWppblwgOwor55Sw6IiO5L6NIDwgaW5ha2F6YW11cmFpXCA7CivpmY3moLzkurrkuosgPCBrb3VrYWt1amluamlcIDsKK+mHkemHmOa1gSA8IGthbmFrdWdpcnl1dVwgOwor56qS57Sg6IKl5paZIDwgY2hpc3NvaGlyeW91XCA7Civou43pg6jni6zoo4EgPCBndW5idWRva3VzYWlcIDsKK+WFrOWLmeeWvueXhSA8IGtvdW11c2hpcHBlaVwgOwor6Iqx54Gr5aSn5LyaIDwgaGFuYWJpdGFpa2FpXCA7CivlibXkvZzlipsgPCBzb3VzYWt1cnlva3VcIDsKK+WNs+aIpuWKmyA8IHNva3VzZW5yeW9rdVwgOwor6KGM6Zuy5rWB5rC0IDwga291dW5yeXV1c3VpXCA7Civlj43lr77oqIrllY8gPCBoYW50YWlqaW5tb25cIDsKK+aWueWQkei7ouaPmyA8IGhvdWtvdXRlbmthblwgOwor54Sh57ea5oqA6KGTIDwgbXVzZW5naWp1dHN1XCA7Civoia7kuIvoia7kuIogPCBnb25rYWdvbnNob3VcIDsKK+aLrOe0hOetiyA8IGthdHN1eWFrdWtpblwgOwor5pyq5p2l5a6M5LqGIDwgbWlyYWlrYW5yeW91XCA7CivliY3pgLLpg6jpmoogPCB6ZW5zaGluYnV0YWlcIDsKK+aXoue0hOWIhuaVsCA8IGtpeWFrdWJ1bnN1dVwgOwor6Kqs5b6X5YqbIDwgc2V0dG9rdXJ5b2t1XCA7CivlhazllrbkvY/lroUgPCBrb3VlaWp1dXRha3VcIDsKK+ebo+afu+WgseWRiiA8IGthbnNhaG91a29rdVwgOwor6ZCY5pKe5aCCIDwga2FuZXRzdWtpZG91XCA7CivmnIjntYzlkajmnJ8gPCBnZWtrZWlzaHV1a2lcIDsKK+enkeWtpumbkeiqjCA8IGthZ2FrdXphc3NoaVwgOwor6YCa6LKo57Wx5ZCIIDwgdHN1dWthdG91Z291XCA7Civlr77lnLDpgJ/luqYgPCB0YWljaGlzb2t1ZG9cIDsKK+WumOWDmuS4u+e+qSA8IGthbnJ5b3VzaHVnaVwgOwor5pen5b2i5byPIDwga3l1dWtlaXNoaWtpXCA7Civpu4Tnjonnn7MgPCBrb3VneW9rdXNla2lcIDsKK+W+oeiqv+WtkOiAhSA8IG9jaG91c2hpbW9ub1wgOwor5a6f6aiT5a6kIDwgamlra2Vuc2hpdHN1XCA7CivkuozotrPkuInmlocgPCBuaXNva3VzYW5tb25cIDsKK+mFuOaAp+iCpeaWmSA8IHNhbnNlaWhpcnlvdVwgOwor6KiA5paH5LiA6Ie0IDwgZ2VuYnVuJydpdGNoaVwgOwor5a+G5ryB6ICFIDwgbWl0c3VyeW91c2hhXCA7CivlhbHlkIznrqHnkIYgPCBreW91ZG91a2FucmlcIDsKK+iDg+mFuOmBjuWkmueXhyA8IGlzYW5rYXRhc2hvdVwgOwor5rW35aSW5peF6KGMIDwga2FpZ2Fpcnlva291XCA7CivkuI3lr6nlsIvllY8gPCBmdXNoaW5qaW5tb25cIDsKK+iyrOS7u+i7ouWrgSA8IHNla2luaW50ZW5rYVwgOwor6ZW35pyf5omL5b2iIDwgY2hvdWtpdGVnYXRhXCA7Civmva7msZDooaggPCBjaG91c2VraWh5b3VcIDsKK+e1puS4juawtOa6liA8IGt5dXV5b3N1aWp1blwgOwor55m954ax5oimIDwgaGFrdW5ldHN1c2VuXCA7CivlvpPlsZ7nr4AgPCBqdXV6b2t1c2V0c3VcIDsKK+WwkeaVsOeyvumLrSA8IHNob3VzdXVzZWllaVwgOwor6Lui5o+b56S+5YK1IDwgdGVua2Fuc2hhc2FpXCA7Civmsr/lsrjmvIHmpa0gPCBlbmdhbmd5b2d5b3VcIDsKK+aKvOWIh+W4syA8IG9zaGlraXJpY2hvdVwgOwor6Ymx54mp5a2mIDwga291YnV0c3VnYWt1XCA7CivkuqTpmpvnpL7kvJogPCBrb3VzYWlzaGFrYWlcIDsKK+WItumZkOS6i+mghSA8IHNlaWdlbmppa29rdVwgOwor5bem5b+D5a6kIDwgc2FzaGluc2hpdHN1XCA7CivliJHkuovosqzku7sgPCBrZWlqaXNla2luaW5cIDsKK+a3t+WQiOeBq+iWrCA8IGtvbmdvdWtheWFrdVwgOwor5qW15b2p6ImyIDwgZ29rdXNhaXNoaWtpXCA7Civlj4zli5nlpZHntIQgPCBzb3VtdWtlaXlha3VcIDsKK+iCneW/g+imgSA8IGthbmppbmthbmFtZVwgOwor5Y+k5YW45a2m6ICFIDwga290ZW5nYWt1c2hhXCA7CivnlJ/mtLvmibbliqkgPCBzZWlrYXRzdWZ1am9cIDsKK+W7uueviealrSA8IGtlbmNoaWt1Z3lvdVwgOwor5ouS6aOf55eHIDwga3lvc2hva3VzaG91XCA7CivnlKjnm4rnianmqKkgPCB5b3Vla2lidWtrZW5cIDsKK+eGsembu+WvviA8IG5ldHN1ZGVudHN1aVwgOwor5Ye65Yuk5pmC6ZaTIDwgc2h1a2tpbmppa2FuXCA7CivpjpbkvJ3li5UgPCBrdXNhcmlkZW5kb3VcIDsKK+aLoeWkp+eOhyA8IGtha3VkYWlyaXRzdVwgOwor55u46Zai5L+C5pWwIDwgc291a2Fua2Vpc3V1XCA7Civpg73lv5ggPCBtaXlha293YXN1cmVcIDsKK+ekvuS8muS/nemanCA8IHNoYWthaWhvc2hvdVwgOwor5Y2U5ZCM5YuV5L2cIDwga3lvdWRvdWRvdXNhXCA7Civmg4Xnt5LnupLntr8gPCBqb3VjaG90ZW5tZW5cIDsKK+eri+aGsuWQm+S4uyA8IHJpa2tlbmt1bnNodVwgOwor54uC5L+h55qEIDwga3lvdXNoaW50ZWtpXCA7Civooajnj77lipsgPCBoeW91Z2Vucnlva3VcIDsKK+S4reeri+mdoiA8IGNodXVyaXRzdW1lblwgOwor5peF5Yi45p+76Ki8IDwgcnlva2Vuc2FzaG91XCA7Civosp3mrrvomasgPCBrYWlnYXJhbXVzaGlcIDsKK+iQveiKseeLvOiXiSA8IHJha2thcm91emVraVwgOwor5LiA55Wq5pifIDwgaWNoaWJhbmJvc2hpXCA7CivljJblraboo73lk4EgPCBrYWdha3VzZWloaW5cIDsKK+mBqeaAp+aknOafuyA8IHRla2lzZWlrZW5zYVwgOwor6LOD5YCf5Lq6IDwgY2hpbnNoYWt1bmluXCA7CivnlJ/lkb3np5HlraYgPCBzZWltZWlrYWdha3VcIDsKK+W3peS9nOapn+aisCA8IGtvdXNha3VraWthaVwgOwor5Zuz5pu46aSo5a2mIDwgdG9zaG9rYW5nYWt1XCA7Civkurrlj6PllY/poYwgPCBqaW5rb3Vtb25kYWlcIDsKK+W+oeeUqOWtpuiAhSA8IGdveW91Z2FrdXNoYVwgOwor5rCX5Zyn6YWN572uIDwga2lhdHN1aGFpY2hpXCA7CivmmYLpmZDniIblvL4gPCBqaWdlbmJha3VkYW5cIDsKK+iHqueEtuWvvuaVsCA8IHNoaXplbnRhaXN1dVwgOwor5aSc6ZaT5pKu5b2xIDwgeWFrYW5zYXRzdWVpXCA7CivnpZ7ntYznuYrntq0gPCBzaGlua2Vpc2VuJydpXCA7CivmtYHli5XosqDlgrUgPCByeXV1ZG91ZnVzYWlcIDsKK+acgOmrmOiomOmMsiA8IHNhaWtvdWtpcm9rdVwgOwor5paw6KaP5LqL5qWtIDwgc2hpbmtpamlneW91XCA7Civlp5PlkI3liKTmlq0gPCBzZWltZWloYW5kYW5cIDsKK+ijhemjvueahCA8IHNvdXNob2t1dGVraVwgOwor5Y+N5a++57Wm5LuYIDwgaGFudGFpa3l1dWZ1XCA7CivmvrHnsonos6ogPCBkZW5wdW5zaGl0c3VcIDsKK+aVl+aIpuaKleaJiyA8IGhhaXNlbnRvdXNodVwgOwor5q2m5ryi5LiJ6Y6uIDwgYnVrYW5zYW5jaGluXCA7Civpm7vmsJfpmbDmgKfluqYgPCBkZW5raWluc2VpZG9cIDsKK+S4gOacneS4gOWklSA8IGl0Y2hvdWlzc2VraVwgOwor54Sh6KiY5ZCN6aCQ6YeRIDwgbXVraW1laXlva2luXCA7CivlrrblhoXlt6Xmpa0gPCBrYW5haWtvdWd5b3VcIDsKK+WNg+aXpeiNiSA8IHNlbicnbmljaGlzb3VcIDsKK+a1heWtpuiPsuaJjSA8IHNlbmdha3VoaXNhaVwgOwor5re35ZCI57WM5riIIDwga29uZ291a2VpemFpXCA7CivluILmsJHlm6PkvZMgPCBzaGltaW5kYW50YWlcIDsKK+S8gealremAo+WQiCA8IGtpZ3lvdXJlbmdvdVwgOwor5pmC5Luj5oSf6KaaIDwgamlkYWlrYW5rYWt1XCA7CivkuIPkupToqr8gPCBzaGljaGlnb2Nob3VcIDsKK+WIqeW3seS4u+e+qeiAhSA8IHJpa29zaHVnaXNoYVwgOwor5YWx5ZCM5Zug5a2QIDwga3lvdWRvdWluc2hpXCA7CivkuIDmhI/lsILlv4MgPCBpY2hpaXNlbnNoaW5cIDsKK+asp+exs+iruOWbvSA8IG91YmVpc2hva29rdVwgOwor6Z2p5ZG96YGL5YuVIDwga2FrdW1laXVuZG91XCA7CivntJTnsovln7nppIogPCBqdW5zdWliYWl5b3VcIDsKK+WGjeS4ieWGjeWbmyA8IHNhaXNhbnNhaXNoaVwgOwor5Lit5Zu95pyNIDwgY2h1dWdva3VmdWt1XCA7CivlvaLogIzkuIrlraYgPCBrZWlqaWpvdWdha3VcIDsKK+WcsOaWueWbo+S9kyA8IGNoaWhvdWRhbnRhaVwgOwor5YWs5rCR5a2m5qChIDwga291bWluZ2Fra291XCA7CivkvqHmoLzntbHliLYgPCBrYWtha3V0b3VzZWlcIDsKK+aEj+WMoOeZu+mMsiA8IGlzaG91dG91cm9rdVwgOwor6auY5aSp5Y6fIDwgdGFrYW1hZ2FoYXJhXCA7Civlj5fli5XllqvnhZkgPCBqdWRvdWtpdHN1ZW5cIDsKK+ijvee8tuW3peWgtCA8IHNlaWthbmtvdWpvdVwgOwor5Zu65b2i54eD5paZIDwga29rZWluZW5yeW91XCA7Civpg7Xkvr/ngrrmm78gPCB5dXViaW5rYXdhc2VcIDsKK+WLmOWumuS/giA8IGthbmpvdWdha2FyaVwgOwor5Y+j6aCt5byB6KuWIDwga291dG91YmVucm9uXCA7Civnq4vkvZPljJblraYgPCByaXR0YWlrYWdha3VcIDsKK+aLmOadn+WKmyA8IGtvdXNva3VyeW9rdVwgOwor5ZOB6KGM5pa55q2jIDwgaGlua291aG91c2VpXCA7CivmsojmvrHniakgPCBjaGluZGVuYnV0c3VcIDsKK+mBk+aomSA8IG1pY2hpc2hpcnViZVwgOwor5Zmo6LOq55qEIDwga2lzaGl0c3V0ZWtpXCA7Civosqnlo7LkvqHmoLwgPCBoYW5iYWlrYWtha3VcIDsKK+aBi+aEm+e1kOWpmiA8IHJlbicnYWlrZWtrb25cIDsKK+WMl+exs+Wcn+S6uiA8IGhva3ViZWlkb2ppblwgOwor5Y2D5pel57SFIDwgc2VuJyduaWNoaWtvdVwgOwor6Ieo5rW35a2m5qChIDwgcmlua2FpZ2Fra291XCA7CivkuIDoqp7kuIDoqp4gPCBpY2hpZ29pY2hpZ29cIDsKK+WbveWutuWFrOWLmeWToSA8IGtva2tha291bXVpblwgOwor5Y2K5a6Y5Y2K5rCRIDwgaGFua2FuaGFubWluXCA7Civlu7rnr4nlraYgPCBrZW5jaGlrdWdha3VcIDsKK+aVl+ihgOeXhyA8IGhhaWtldHN1c2hvdVwgOwor5aSn5Zu95Li7576pIDwgdGFpa29rdXNodWdpXCA7CivmtIvmnI3nrqrnrKUgPCB5b3VmdWt1ZGFuc3VcIDsKK+S4gOaWuemAmuihjCA8IGlwcG91dHN1dWtvdVwgOwor5Y+C6ICD5paH54yuIDwgc2Fua291YnVua2VuXCA7Civkv6Hku7DnrofmnaEgPCBzaGlua291a2Fqb3VcIDsKK+i+u+ekviA8IHRzdWppeWFzaGlyb1wgOwor5Y2B5LiA5pyIIDwganV1aWNoaWdhdHN1XCA7CivooovmiLjmo5ogPCBmdWt1cm90b2RhbmFcIDsKK+aLneeJqeaVmSA8IGhhaWJ1dHN1a3lvdVwgOwor5rCR6ZaT6LOH5pysIDwgbWlua2Fuc2hpaG9uXCA7CivlvqnorpDlv4MgPCBmdWt1c2h1dXNoaW5cIDsKK+S4gOaxgeS4gOiPnCA8IGljaGlqdXVpc3NhaVwgOwor5Y2B56iu56u25oqAIDwgamlzc2h1a3lvdWdpXCA7Civml6flubTmnKsgPCBreXV1bmVubWF0c3VcIDsKK+WkseiBt+iAhSA8IHNoaXNzaG9rdXNoYVwgOwor5YaF5Ymy5byVIDwgdWNoaXdhcmliaWtpXCA7CivluIzlnJ/poZ7lhYPntKAgPCBraWRvcnVpZ2Vuc29cIDsKK+W5s+WSjOWFseWtmCA8IGhlaXdha3lvdXpvblwgOwor5Y2Y57ea6YGL6LuiIDwgdGFuc2VuJyd1bnRlblwgOwor5LqL5b6M5om/6Ku+IDwgamlnb3Nob3VkYWt1XCA7Civlh7rnlKPnjocgPCBzaHVzc2Fucml0c3VcIDsKK+WGmeWun+eahCA8IHNoYWppdHN1dGVraVwgOwor5pig5YOP5L+h5Y+3IDwgZWl6b3VzaGluZ291XCA7Civlronlhajlr77nrZYgPCBhbnplbnRhaXNha3VcIDsKK+eUn+eUo+e1hOWQiCA8IHNlaXNhbmt1bWlhaVwgOwor5o6l57aa6aeFIDwgc2V0c3V6b2t1ZWtpXCA7CivlsYXkvY/msLTmupYgPCBreW9qdXVzdWlqdW5cIDsKK+ijvemJhOalrSA8IHNlaXRldHN1Z3lvdVwgOwor566X55So5pWw5a2XIDwgc2FuJyd5b3VzdXVqaVwgOwor5Ye655Sf546HIDwgc2h1c3NlaXJpdHN1XCA7Civlp4nlprnkvJrnpL4gPCBzaGltYWlnYWlzaGFcIDsKK+mBuOaMmeWFrOWgsSA8IHNlbmt5b2tvdWhvdVwgOwor5LuP5YOP5LqM5bqnIDwgYnV0c3V6b3VuaXphXCA7CivoprPlhYnml4XooYwgPCBrYW5rb3VyeW9rb3VcIDsKK+eglOeptuiqsumhjCA8IGtlbmt5dXVrYWRhaVwgOwor6YeR5ou+5LiH5YaGIDwga2luanV1bWFuJydlblwgOwor5bGO5bC/5Yem55CGIDwgc2hpbnlvdXNob3JpXCA7CivnnYDnianlp78gPCBraW1vbm9zdWdhdGFcIDsKK+WVhuS6i+S8muekviA8IHNob3VqaWdhaXNoYVwgOwor56mN5qW1562WIDwgc2Vra3lva3VzYWt1XCA7Civpm4blkIjloLTmiYAgPCBzaHV1Z291YmFzaG9cIDsKK+W9ouWuueipnuW5uSA8IGtlaXlvdXNoaWthblwgOwor5p2h5Lu25Y+N5bCEIDwgam91a2VuaGFuc2hhXCA7CivlsI/mlofnr4AgPCBzaG91YnVuc2V0c3VcIDsKK+e1hOe5lOWKmyA8IHNvc2hpa2lyeW9rdVwgOwor5L+h5b6S5Lyd5YuVIDwgc2hpbnRvZGVuZG91XCA7CivmnInmlpnpgZPot68gPCB5dXVyeW91ZG91cm9cIDsKK+alreWLmeWmqOWusyA8IGd5b3VtdWJvdWdhaVwgOwor6Zi/54mH5Lit5q+SIDwgYWhlbmNodXVkb2t1XCA7CivntLDog57ono3lkIggPCBzYWlib3V5dXVnb3VcIDsKK+aWreeGseadkCA8IGRhbicnbmV0c3V6YWlcIDsKK+WQjeS6uuawl+izqiA8IG1laWppbmthdGFnaVwgOwor6YO15pS/5aSn6IejIDwgeXV1c2VpZGFpamluXCA7Civpm7vmsJfmjoPpmaTmqZ8gPCBkZW5raXNvdWppa2lcIDsKK+S6uuaoqeaTgeittyA8IGppbmtlbicneW91Z29cIDsKK+WFhOW8n+WWp+WYqSA8IGt5b3VkYWlnZW5rYVwgOwor6JGX5L2c54mpIDwgY2hvc2FrdWJ1dHN1XCA7Civnm7Lmu4Xms5UgPCBtZWt1cmFtZXBwb3VcIDsKK+W3oeiIqumAn+W6piA8IGp1bmtvdXNva3Vkb1wgOwor5LiA5aSc5aSn6IejIDwgaWNoaXlhZGFpamluXCA7CivpmYTnnYDlipsgPCBmdWNoYWt1cnlva3VcIDsKK+eNheWtkOWlrui/hSA8IHNoaXNoaWZ1bmppblwgOwor5ryC5rWB5pyoIDwgaHlvdXJ5dXVib2t1XCA7CivntLPlo6vpnbQgPCBzaGluc2hpZ3V0c3VcIDsKK+mWqOengOS9nOWutiA8IGtlaXNodXVzYWtrYVwgOwor5rWa5rir6Ii5IDwgc2h1bnNldHN1c2VuXCA7Civmt7HlsbHng48gPCBtaXlhbWFnYXJhc3VcIDsKK+WwgumWgOWtpuagoSA8IHNlbm1vbmdha2tvdVwgOwor5pS56Z2p6YGO56iLIDwga2Fpa2FrdWthdGVpXCA7Civnt4rmgKXmjqrnva4gPCBraW5reXV1c29jaGlcIDsKK+eUu+ernOWkqeedmyA8IGdhcnlvdXRlbnNlaVwgOwor5LiA6YCy5LiA6YCAIDwgaXNzaGluJydpdHRhaVwgOwor55Sf6Iet54mpIDwgbmFtYWd1c2Ftb25vXCA7CivlrprluLjnirbmhYsgPCB0ZWlqb3Vqb3V0YWlcIDsKK+WvqeWIpOW9uSA8IHNoaW5wYW4nJ3lha3VcIDsKK+aMh+aVsOmWouaVsCA8IHNoaXN1dWthbnN1dVwgOwor56mN5qW155qEIDwgc2Vra3lva3V0ZWtpXCA7CivoqabpqJPnp5Hnm64gPCBzaGlrZW5rYW1va3VcIDsKK+eBveWus+aVkeWKqSA8IHNhaWdhaWt5dXVqb1wgOwor55m65aOy5YWDIDwgaGF0c3ViYWltb3RvXCA7Civlhrbph5HlrabogIUgPCB5YWtpbmdha3VzaGFcIDsKK+WcsOaWuemKgOihjCA8IGNoaWhvdWdpbmtvdVwgOwor5LuP6aCC6Z2iIDwgYnV0Y2hvdWR6dXJhXCA7CivntYzmuIjnmbrlsZUgPCBrZWl6YWloYXR0ZW5cIDsKK+eJueauiuWFteWZqCA8IHRva3VzaHVoZWlraVwgOwor5rW35Lit5YWs5ZySIDwga2FpY2h1dWtvdWVuXCA7Civlm6PkvZPml4XooYwgPCBkYW50YWlyeW9rb3VcIDsKK+S4ieWPieelnue1jCA8IHNhbnNhc2hpbmtlaVwgOwor5qyy5rGC5LiN5rqAIDwgeW9ra3l1dWZ1bWFuXCA7Civoi6XntKsgPCB3YWthbXVyYXNha2lcIDsKK+e1guWknOWWtualrSA8IHNodXV5YWVpZ3lvdVwgOwor5Zyw5LiL57WE57mUIDwgY2hpa2Fzb3NoaWtpXCA7CivogJDpnIflrrblsYsgPCB0YWlzaGlua2Fva3VcIDsKK+ato+S4ieinkuW9oiA8IHNlaXNhbmtha2tlaVwgOwor6LWw6KGM6LuK57eaIDwgc291a291c2hhc2VuXCA7CivnqbrmsJfoqr/mlbQgPCBrdXVraWNob3VzZWlcIDsKK+mBi+WLleelnue1jCA8IHVuZG91c2hpbmtlaVwgOwor5Y+X6IOO5ZGK55+lIDwganV0YWlrb2t1Y2hpXCA7Civlj5blvJXpq5ggPCB0b3JpaGlraWRha2FcIDsKK+ino+etlOeUqOe0mSA8IGthaXRvdXlvdXNoaVwgOwor5LiN5omA5a2Y6ICFIDwgZnVzaG96b25tb25vXCA7CivnlbPpsK8gPCB0YXRhbWlpd2FzaGlcIDsKK+mXluWFpeiAhSA8IGNoaW4nJ255dXVzaGFcIDsKK+avrOagl+mgrSA8IGlnYWd1cmlhdGFtYVwgOwor5bu656+J5LitIDwga2VuY2hpa3VjaHV1XCA7CivlvLHlsI/lm70gPCBqYWt1c2hvdWtva3VcIDsKK+WKoOW3peeUo+alrSA8IGtha291c2FuZ3lvdVwgOwor55m65aOy5LitIDwgaGF0c3ViYWljaHV1XCA7Civopo/moLzljp/moYggPCBraWtha3VnZW4nJ2FuXCA7CivlkozprYLmtIvmiY0gPCB3YWtvbicneW91c2FpXCA7Civlj43miKbpgYvli5UgPCBoYW5zZW4nJ3VuZG91XCA7Civoq7jooYznhKHluLggPCBzaG9neW91bXVqb3VcIDsKK+Wlkee0hOacn+mWkyA8IGtlaXlha3VraWthblwgOwor5Lq65paH56eR5a2mIDwgamluYnVua2FnYWt1XCA7CivkuIDkurrkuIDkurogPCBoaXRvcmliaXRvcmlcIDsKK+WKseaMr+e0oOWtkCA8IHJlaXNoaW5zb3NoaVwgOwor5b6p6K6Q5YqHIDwgZnVrdXNodXVnZWtpXCA7Civlroflrpnlt6XlraYgPCB1Y2h1dWtvdWdha3VcIDsKK+S6i+WJjeaXpeS7mCA8IGppemVuaGlkenVrZVwgOwor6Ieq5a625pKe552AIDwgamlrYWRvdWNoYWt1XCA7Civnn7PngbDogqXmlpkgPCBzZWtrYWloaXJ5b3VcIDsKK+WFrOebiuWEquWFiCA8IGtvdWVraXl1dXNlblwgOwor5LiL5LuV5LqLIDwgc2hpdGFzaGlnb3RvXCA7CivolpTolofljYHlrZflm6MgPCBiYXJhanV1amlkYW5cIDsKK+aXpeixiuacrOe3miA8IG5pcHBvdWhvbnNlblwgOwor55+z5rK55YyW5a2mIDwgc2VraXl1a2FnYWt1XCA7CivmtojmpbXmgKcgPCBzaG91a3lva3VzZWlcIDsKK+ebuOWvvumAn+W6piA8IHNvdXRhaXNva3Vkb1wgOwor6buS5a2X5YCS55SjIDwga3Vyb2ppdG91c2FuXCA7Civph5HmrKDnl4UgPCBraW5rZXRzdWJ5b3VcIDsKK+iBtOimlueOhyA8IGNob3VzaGlyaXRzdVwgOwor5YaF5oaC5aSW5oKjIDwgbmFpeXV1Z2Fpa2FuXCA7CivplqLmlbDnqbrplpMgPCBrYW5zdXVrdXVrYW5cIDsKK+S7mOWxnueXhemZoiA8IGZ1em9rdWJ5b3VpblwgOwor6Ieo5bqK5Yy75a2mIDwgcmluc2hvdWlnYWt1XCA7CivnsbPmtbflhbXpmoogPCBiZWlrYWloZWl0YWlcIDsKK+a3seWxseahnCA8IG1peWFtYXpha3VyYVwgOwor5oux5omL5YKN6KazIDwga291c2h1Ym91a2FuXCA7CivpoIbms5Xpl5jkuokgPCBqdW5wb3V0b3Vzb3VcIDsKK+izquWVj+iAhSA8IHNoaXRzdW1vbnNoYVwgOwor5oim6ZeY6Zmj5ZywIDwgc2VudG91amluY2hpXCA7CivkuIDmjJnkuIDli5UgPCBpa2t5b2ljaGlkb3VcIDsKK+WogeWah+WwhOaSgyA8IGlrYWt1c2hhZ2VraVwgOwor5a6f5Zyw6Kmm6aiTIDwgaml0Y2hpc2hpa2VuXCA7CivkuK3plpPmma/msJcgPCBjaHV1a2Fua2Vpa2lcIDsKK+WPuOaVmeaoqeW6pyA8IHNoaWt5b3VrZW56YVwgOwor56m657SE5p2fIDwga2FyYXlha3Vzb2t1XCA7CivlpInmm7TlsaXmrbQgPCBoZW5rb3VyaXJla2lcIDsKK+mAo+aIpumAo+aVlyA8IHJlbnNlbnJlbnBhaVwgOwor5q2v5qe96Ia/5ryPIDwgc2hpc291bm91cm91XCA7CivntKDnspLlrZDoq5YgPCBzb3J5dXVzaGlyb25cIDsKK+ihm+aYn+S4ree2mSA8IGVpc2VpY2h1dWtlaVwgOwor5o6l57aa6KmeIDwgc2V0c3V6b2t1c2hpXCA7CivlnKflu7blt6XloLQgPCBhdHN1ZW5rb3Vqb3VcIDsKK+WIhuWoqeiHpeW6iiA8IGJ1bmJlbmdhc2hvdVwgOwor5Lq66YCg57W557O4IDwgamluem91a2Vuc2hpXCA7Civnl5Xot6HlmajlrpggPCBrb25zZWtpa2lrYW5cIDsKK+aKuemmmemvqCA8IG1ha2tvdWt1amlyYVwgOwor6JuN5YWJ5aGX5paZIDwga2Vpa291dG9yeW91XCA7CivlhazliKToqr/mn7sgPCBrb3VoYW5jaG91c2FcIDsKK+mAo+e1oeS8muitsCA8IHJlbnJha3VrYWlnaVwgOwor5YWs5pWZ6KaB55CGIDwga291a3lvdXlvdXJpXCA7CivoirHnm5fkurogPCBoYW5hbnVzdWJpdG9cIDsKK+S5vueHpeWupCA8IGthbnNvdXNoaXRzdVwgOwor6aqo6JGj5ZOB5bqXIDwga290dG91aGludGVuXCA7CivljYHkuozmjIfohbggPCBqdXVuaXNoaWNob3VcIDsKK+ebsuaapiA8IG1la3VyYWdveW9taVwgOwor6LKh5pS/5ZWP6aGMIDwgemFpc2VpbW9uZGFpXCA7CivoqIDoqp7lrabogIUgPCBnZW5nb2dha3VzaGFcIDsKK+Wwv+avkueXhyA8IG55b3Vkb2t1c2hvdVwgOwor6YeR6J6N5qmf6ZaiIDwga2luJyd5dXVraWthblwgOwor55Sw5ZyS6Kmp5Lq6IDwgZGVuJydlbnNoaWppblwgOwor562J5q+U57Sa5pWwIDwgdG91aGlreXV1c3V1XCA7CivohbnpvJMgPCBoYXJhdHN1ZHp1bWlcIDsKK+mBk+WMluW9ueiAhSA8IGRvdWtleWFrdXNoYVwgOwor55mH55mq546JIDwga2Fuc2hha3VkYW1hXCA7CivmtKXmtKXmtabmtaYgPCB0c3VkenV1cmF1cmFcIDsKK+S5vueHpeWcsOW4ryA8IGthbnNvdWNoaXRhaVwgOwor6Z+z56+A5Li76Z+zIDwgb25zZXRzdXNodW9uXCA7CivoiKrmtbfml6XoqowgPCBrb3VrYWluaXNzaGlcIDsKK+WNiuWwgeW7uuaApyA8IGhhbmhvdWtlbnNlaVwgOwor5oGL5oSb6Zai5L+CIDwgcmVuJydhaWthbmtlaVwgOwor5oiQ6ZW36YGO56iLIDwgc2VpY2hvdWthdGVpXCA7CivpgKPluK/kv53oqLwgPCByZW50YWlob3Nob3VcIDsKK+W/g+iHk+iCpeWkpyA8IHNoaW56b3VoaWRhaVwgOwor5LiA5Lq654mpIDwgaWNoaWppbmJ1dHN1XCA7CivljZTntITlm70gPCBreW91eWFrdWtva3VcIDsKK+WkqeWjjOeEoeeqriA8IHRlbmpvdW11a3l1dVwgOwor5YWo6Lqr6bq76YWUIDwgemVuc2hpbm1hc3VpXCA7CivmnKvku6PniakgPCBtYXRzdWRhaW1vbm9cIDsKK+Wbnue3muS6pOaPmyA8IGthaXNlbmtvdWthblwgOwor6Ly45YWl5Yi26ZmQIDwgeXVueXV1c2VpZ2VuXCA7CivliYPliIDosqAgPCBrYW1pc29yaW1ha2VcIDsKK+S4gOi2s+WFiCA8IGhpdG9hc2hpc2FraVwgOwor5p6c54mp57GgIDwga3VkYW1vbm9rYWdvXCA7CivkuJbplpPoqbEgPCBzZWtlbmJhbmFzaGlcIDsKK+ihjOalveWuoiA8IGtvdXJha3VreWFrdVwgOwor5qeL6YCg5LiN5rOBIDwga291em91ZnVreW91XCA7CivntIvnmb3onbYgPCBtb25zaGlyb2Nob3VcIDsKK+WFpea5r+WuoiA8IG55dXV0b3VreWFrdVwgOwor6Ieq5bex5YWx5b25IDwgamlrb2t5b3V5YWt1XCA7Civlr4zlo6vngavlsbHluK8gPCBmdWppa2F6YW50YWlcIDsKK+mXh+WPluW8lSA8IHlhbWl0b3JpaGlraVwgOwor5qeL5oiQ5YiG5a2QIDwga291c2VpYnVuc2hpXCA7CivmmJ/luqfmipXlvbHmqZ8gPCBzZWl6YXRvdWVpa2lcIDsKK+W4guWgtOWxlemWiyA8IHNoaWpvdXRlbmthaVwgOwor5bqX6aCt6LKp5aOyIDwgdGVudG91aGFuYmFpXCA7CivpgLLmsLTlvI8gPCBzaGluc3Vpc2hpa2lcIDsKK+S7ruaJlemHkSA8IGthcmliYXJhaWtpblwgOwor57SZ5bGR57GgIDwga2FtaWt1enVrYWdvXCA7Civkub7nh6XljbUgPCBrYW5zb3V0YW1hZ29cIDsKK+WQiOWUsemaiuWToSA8IGdhc3Nob3V0YWlpblwgOwor57WM6LK75YmK5ribIDwga2VpaGlzYWt1Z2VuXCA7CivmlofoirjlvqnoiIggPCBidW5nZWlmdWtrb3VcIDsKK+eSsOWkquW5s+a0iyA8IGthbnRhaWhlaXlvdVwgOwor5ZCN576p5pu45o+bIDwgbWVpZ2lrYWtpa2FlXCA7Civnt5HlhoXpmpwgPCByeW9rdW5haXNob3VcIDsKK+mHjeWkp+WVj+mhjCA8IGp1dWRhaW1vbmRhaVwgOwor6Z2e56eR5a2m55qEIDwgaGlrYWdha3V0ZWtpXCA7CivpmZDlrprmiKbkuokgPCBnZW50ZWlzZW5zb3VcIDsKK+altealvemzpSA8IGdva3VyYWt1Y2hvdVwgOwor5qyn5bee5aeU5ZOh5LyaIDwgb3VzaHV1aWlua2FpXCA7CivkuI3lnKjoqLzmmI4gPCBmdXphaXNob3VtZWlcIDsKK+izg+iyuOWAnyA8IGNoaW50YWlzaGFrdVwgOwor5Yy75a2m5Y2a5aOrIDwgaWdha3VoYWt1c2hpXCA7CivmoYjlhoXmm7jlkYggPCBhbicnbmFpc2hvdGVpXCA7CivlsILliLblkJvkuLsgPCBzZW5zZWlrdW5zaHVcIDsKK+WLpOWLmeWun+e4viA8IGtpbm11amlzc2VraVwgOwor5qmf5a+G5LqL6aCFIDwga2ltaXRzdWppa291XCA7Civml6nmnJ/oqLrmlq0gPCBzb3VraXNoaW5kYW5cIDsKK+WRiueZuuiAhSA8IGtva3VoYXRzdXNoYVwgOwor5YGc5q2i5L6h5qC8IDwgdGVpc2hpa2FrYWt1XCA7CivoqJjmhrblrrnph48gPCBraW9rdXlvdXJ5b3VcIDsKK+WHuueUn+mBjuWJsCA8IHNodXNzZWlrYWpvdVwgOwor5byV6YCA6IiI6KGMIDwgaW50YWlrb3VneW91XCA7CivkuInlkbPnt5rlvL4gPCBzaGFtaXNlbmhpa2lcIDsKK+ippumok+autemajiA8IHNoaWtlbmRhbmthaVwgOwor55m96KGA55eFIDwgaGFra2V0c3VieW91XCA7Civou43kuovku4vlhaUgPCBndW5qaWthaW55dXVcIDsKK+aUv+ayu+mBk+W+syA8IHNlaWppZG91dG9rdVwgOwor5Zu95Za25LyB5qWtIDwga29rdWVpa2lneW91XCA7CivluLDlt6PmnKzog70gPCBraXNvdWhvbicnbm91XCA7CivkuKHmgKflhbfmnIkgPCByeW91c2VpZ3V5dXVcIDsKK+m7hOmHkeS4h+iDvSA8IG91Z29uYmFuJydub3VcIDsKK+ecn+ePoOizqiA8IHNoaW5qdXNoaXRzdVwgOwor5ouF5b2T6Kqy6ZW3IDwgdGFudG91a2FjaG91XCA7Civmt7fmiJDnq7bmioAgPCBrb25zZWlreW91Z2lcIDsKK+WKtOWDjeaUu+WLoiA8IHJvdWRvdWtvdXNlaVwgOwor54mH5bGx6YeMIDwga2F0YXlhbWF6YXRvXCA7Civni6znq4vnpa0gPCBkb2t1cml0c3VzYWlcIDsKK+mWkeipseS8kemhjCA8IGthbndha3l1dWRhaVwgOwor5YaF5oeQIDwgdWNoaWJ1dG9rb3JvXCA7CivkuojntITkv4IgPCB5b3lha3VnYWthcmlcIDsKK+W9ueWLmeizoOWEnyA8IGVraW11YmFpc2hvdVwgOwor5bmz5ZKM55Sj5qWtIDwgaGVpd2FzYW5neW91XCA7CivljbDosaHmibnoqZUgPCBpbnNob3VoaWh5b3VcIDsKK+WBnOa7nuWJjee3miA8IHRlaXRhaXplbnNlblwgOwor5rCR6ZaT5pS+6YCBIDwgbWlua2FuaG91c291XCA7CivlsZ7lnLDkuLvnvqkgPCB6b2t1Y2hpc2h1Z2lcIDsKK+S4iuS9jeS6kuaPm+aApyA8IGpvdWlnb2thbnNlaVwgOwor5Ye654mI6YOo5pWwIDwgc2h1cHBhbmJ1c3V1XCA7Civoh6rli5XkurrlvaIgPCBqaWRvdW5pbmd5b3VcIDsKK+aEj+W/l+iWhOW8sSA8IGlzaGloYWt1amFrdVwgOwor5b+D55CG5oim5LqJIDwgc2hpbnJpc2Vuc291XCA7CivoqrLnqI7miYDlvpcgPCBrYXplaXNob3Rva3VcIDsKK+a1geihjOS9nOWutiA8IHJ5dXVrb3VzYWtrYVwgOwor5qC55rCX5LuV5LqLIDwga29ua2lzaGlnb3RvXCA7Civpu4Tnt5HoibIgPCBvdXJ5b2t1c2hva3VcIDsKK+i7veeKr+e9quazlSA8IGtlaWhhbnphaWhvdVwgOwor5o+j5pGp5oa25risIDwgc2hpbWFva3Vzb2t1XCA7CivmlLnkv67lt6XkuosgPCBrYWlzaHV1a291amlcIDsKK+WvvuaKl+aEj+itmCA8IHRhaWtvdWlzaGlraVwgOwor5YmN6YCy5YqbIDwgemVuc2hpbnJ5b2t1XCA7CivpgZPot6/kuqTpgJogPCBkb3Vyb2tvdXRzdXVcIDsKK+azleW7t+S+rui+sSA8IGhvdXRlaWJ1am9rdVwgOwor5YWJ5a2m5qmf5qKwIDwga291Z2FrdWtpa2FpXCA7CivohLHlrZfoqJjlj7cgPCBkYXRzdWppa2lnb3VcIDsKK+eiuueOh+irliA8IGtha3VyaXRzdXJvblwgOwor54us56uL54+tIDwgZG9rdXJpdHN1aGFuXCA7CivlhazmnInmsLTpnaIgPCBrb3V5dXVzdWltZW5cIDsKK+etieWcp+W8jyA8IHRvdWF0c3VzaGlraVwgOwor6Zmw5oCn5Y+N5b+cIDwgaW5zZWloYW4nJ25vdVwgOwor57Sg5Lq6562LIDwgc2hpcm91dG9zdWppXCA7Civnvo7kurrlsYAgPCB0c3V0c3Vtb3Rhc2VcIDsKK+WAn+WcsOaWmSA8IHNoYWt1Y2hpcnlvdVwgOwor6buE54ax55eFIDwga291bmV0c3VieW91XCA7CivlnYfooaHntYzmuIggPCBraW5rb3VrZWl6YWlcIDsKK+aKleelqOeOhyA8IHRvdWh5b3VyaXRzdVwgOwor6bC75Li8IDwgdW5hZ2lkb25idXJpXCA7CivomK3moL3ln7nms5UgPCByYW5zYWliYWlob3VcIDsKK+atpuijhembhuWboyA8IGJ1c291c2h1dWRhblwgOwor6ISF6L+r55qEIDwga3lvdWhha3V0ZWtpXCA7CivljbDpkZHoqLzmmI4gPCBpbmthbnNob3VtZWlcIDsKK+Wfn+WGheiyv+aYkyA8IGlraW5haWJvdWVraVwgOwor5L2/5b6S6KGM5LydIDwgc2hpdG9neW91ZGVuXCA7CivkvbPkurroloTlkb0gPCBrYWppbmhha3VtZWlcIDsKK+aUvuWwhOe3muenkeWMuyA8IGhvdXNoYXNlbmthaVwgOwor5pyJ5L2T6LOH55SjIDwgeXV1dGFpc2hpc2FuXCA7Civlr77ms7DplqLkv4IgPCB0YWl0YWlrYW5rZWlcIDsKK+asp+W3numAo+WQiCA8IG91c2h1dXJlbmdvdVwgOwor5aWz5a2Q5a2m55SfIDwgam9zaGlnYWt1c2VpXCA7Civlm6PntZDlv4MgPCBkYW5rZXRzdXNoaW5cIDsKK+WNmOe0lOW5s+WdhyA8IHRhbmp1bmhlaWtpblwgOwor6LOq5ZWP5pu4IDwgc2hpdHN1bW9uc2hvXCA7Civlho3luqbnorroqo0gPCBzYWlkb2tha3VuaW5cIDsKK+msvOmdouS8neW/gyA8IGtpbWVuZGVuc2hpblwgOwor6LK/5piT6buS5a2XIDwgYm91ZWtpa3Vyb2ppXCA7CivntYTlkIjlk6HoqLwgPCBrdW1pYWlpbnNob3VcIDsKK+eGn+afv+S4u+e+qSA8IGp1a3VzaGlzaHVnaVwgOwor5Lit56uL5oCnIDwgY2h1dXJpdHN1c2VpXCA7CivlhrfmiL/oo4Xnva4gPCByZWlib3Vzb3VjaGlcIDsKK+ePvuWcsOeUn+eUoyA8IGdlbmNoaXNlaXNhblwgOwor5paw6IGe6KiY6ICFIDwgc2hpbmJ1bmtpc2hhXCA7CivlkYrnmbrnirYgPCBrb2t1aGF0c3Vqb3VcIDsKK+Wkp+WxsemztOWLlSA8IHRhaXphbm1laWRvdVwgOwor5rOi54q25pS75pKDIDwgaGFqb3Vrb3VnZWtpXCA7CivljZjoqJjmipXnpaggPCB0YW5raXRvdWh5b3VcIDsKK+S4gOasoemWouaVsCA8IGljaGlqaWthbnN1dVwgOwor5bm85b2i6YCy5YyWIDwgeW91a2Vpc2hpbmthXCA7Civlj43lvqnoqqwgPCBoYW5wdWt1c2V0c3VcIDsKK+WNsOWIt+ihkyA8IGluc2F0c3VqdXRzdVwgOwor6IO95Yqb57WmIDwgbm91cnlva3VreXV1XCA7CivpnZLnianluILloLQgPCBhb21vbm9pY2hpYmFcIDsKK+WtpueUn+mBi+WLlSA8IGdha3VzZWl1bmRvdVwgOwor5aCx5b6p5o6q572uIDwgaG91ZnVrdXNvY2hpXCA7Civlm57lvqnlj6/og70gPCBrYWlmdWt1a2Fub3VcIDsKK+ato+inkuWumuacqCA8IHNlaWtha3Vqb3VnaVwgOwor5q205Y+y5Zyw55CGIDwgcmVraXNoaWNoaXJpXCA7Civnt7Tnv5Lmm7IgPCByZW5zaHV1a3lva3VcIDsKK+W5tOS4reeEoeS8kSA8IG5lbmp1dW11a3l1dVwgOwor5Luj5pWw55qE5ZKMIDwgZGFpc3V1dGVraXdhXCA7CivotoXog73lipsgPCBjaG91bm91cnlva3VcIDsKK+W3puWPs+ebuOensCA8IHNheXV1c291c2hvdVwgOwor5qC45YiG6KOCIDwga2FrdWJ1bnJldHN1XCA7CivluJ3lm73kuLvnvqkgPCB0ZWlrb2t1c2h1Z2lcIDsKK+ilv+a0i+advumcsiA8IHNlaXlvdXNob3Vyb1wgOwor5Zue6Lui5YuY5a6aIDwga2FpdGVua2Fuam91XCA7Civkvp3oqJflsITmkoMgPCBpdGFrdXNoYWdla2lcIDsKK+ato+imj+ihqOePviA8IHNlaWtpaHlvdWdlblwgOwor54us56uL5qipIDwgZG9rdXJpdHN1a2VuXCA7Civnt4/poJjkuovppKggPCBzb3VyeW91amlrYW5cIDsKK+W+heWuteiNiSA8IG1hdHN1eW9pZ3VzYVwgOwor5LiA5Lq65aiYIDwgaGl0b3JpbXVzdW1lXCA7Civnm5fpm6PpmLLmraIgPCB0b3VuYW5ib3VzaGlcIDsKK+a7heengeWlieWFrCA8IG1lc3NoaWhvdWtvdVwgOwor5Zu956iO5bGAIDwga29rdXplaWt5b2t1XCA7Civnt4/lkIjnp5HlraYgPCBzb3Vnb3VrYWdha3VcIDsKK+aLmOadn+aZgumWkyA8IGtvdXNva3VqaWthblwgOwor5Zub5pa55YWr5pa5IDwgc2hpaG91aGFwcG91XCA7CivkuLvopoHoq7jlhYMgPCBzaHV5b3VzaG9nZW5cIDsKK+WNgeWIhuadoeS7tiA8IGp1dWJ1bmpvdWtlblwgOwor5pmC5Luj5oCd5r2uIDwgamlkYWlzaGljaG91XCA7Civku6PnkIbmipXnpaggPCBkYWlyaXRvdWh5b3VcIDsKK+WPpOWFuOmfs+alvSA8IGtvdGVuJydvbmdha3VcIDsKK+mKgOihjOW8t+eblyA8IGdpbmtvdWdvdXRvdVwgOwor5LiA6Z2i6K2YIDwgaWNoaW1lbnNoaWtpXCA7Civlh7rpoZjogIUgPCBzaHV0c3VnYW5zaGFcIDsKK+i1t+eIhuijhee9riA8IGtpYmFrdXNvdWNoaVwgOwor6YCu5o2V6Kix6Ku+IDwgdGFpaG9reW9kYWt1XCA7Civour7mlrkgPCBzaGl0c3VrZWthdGFcIDsKK+atr+eJmeeWvuaCoyA8IHNoaWdhc2hpa2thblwgOwor5Yu/5b+Y6I2JIDwgd2FzdXJlbmFndXNhXCA7CivlvLfntr/olqwgPCBreW91bWVuJyd5YWt1XCA7CivlhbHlkIznpZbnlYwgPCBreW91ZG91c29rYWlcIDsKK+ayueaWreWkp+aVtSA8IHl1ZGFudGFpdGVraVwgOwor5YO75b+DIDwgaGlnYW1pZ29rb3JvXCA7CivlsILmpa3ovrLlrrYgPCBzZW5neW91bm91a2FcIDsKK+eGseWPr+WhkeaApyA8IG5ldHN1a2Fzb3NlaVwgOwor5qK25pyo6a6qIDwga2FqaWtpbWFndXJvXCA7CivluILmnInosqHnlKMgPCBzaGl5dXV6YWlzYW5cIDsKK+WbveWutuizoOWEnyA8IGtva2thYmFpc2hvdVwgOwor5aSx5piO6ICFIDwgc2hpdHN1bWVpc2hhXCA7CivpnZnmhYvnt4/oqIggPCBzZWl0YWlzb3VrZWlcIDsKK+WwgumWgOmbkeiqjCA8IHNlbm1vbnphc3NoaVwgOwor5by+5Li45YiX6LuKIDwgZGFuZ2FucmVzc2hhXCA7CivlpbPpgZPmpb0gPCBvbicnbmFkb3VyYWt1XCA7CivlpKfmraPmmYLku6MgPCB0YWlzaG91amlkYWlcIDsKK+ioreioiOWkieabtCA8IHNla2tlaWhlbmtvdVwgOwor5LqG6Kej5LqL6aCFIDwgcnlvdWthaWppa291XCA7Civlrp/pqJPmrrXpmo4gPCBqaWtrZW5kYW5rYWlcIDsKK+aIkOmVt+eOhyA8IHNlaWNob3VyaXRzdVwgOwor56K65a6f5oCnIDwga2FrdWppdHN1c2VpXCA7Civlrpjlg5rmlL/msrsgPCBrYW5yeW91c2VpamlcIDsKK+S6uueoruWVj+mhjCA8IGppbnNodW1vbmRhaVwgOwor5ryU57+S5ZWP6aGMIDwgZW5zaHV1bW9uZGFpXCA7CivlirTlg43ntYTlkIggPCByb3Vkb3VrdW1pYWlcIDsKK+eBq+eCjuaUvuWwhOWZqCA8IGthZW5ob3VzaGFraVwgOwor5ZCI5ZCM5aeU5ZOh5LyaIDwgZ291ZG91aWlua2FpXCA7Civphofpoqjnvo7kv5cgPCBqdW5wdXViaXpva3VcIDsKK+akv+ayuSA8IHRzdWJha2lhYnVyYVwgOwor6buS6KOF5p2fIDwga3Vyb3Nob3V6b2t1XCA7Civmn4/ppIUgPCBrYXNoaXdhbW9jaGlcIDsKK+mAoOWPjeacieeQhiA8IHpvdWhhbicneXV1cmlcIDsKK+a2iOiyu+aAp+WQkSA8IHNob3VoaXNlaWtvdVwgOwor5b6h55So5paw6IGeIDwgZ295b3VzaGluYnVuXCA7CivlhazlrprkvqHmoLwgPCBrb3V0ZWlrYWtha3VcIDsKK+WghuepjeS9nOeUqCA8IHRhaXNla2lzYXlvdVwgOwor5pS75a6I5ZCM55ufIDwga291c2h1ZG91bWVpXCA7Civlt6Xnp5HlpKflraYgPCBrb3VrYWRhaWdha3VcIDsKK+ekvuWFrOmAo+WQiCA8IHNoYWtvdXJlbmdvdVwgOwor6LuN5LqL5pWZ57e0IDwgZ3VuamlreW91cmVuXCA7CivlubPlkozmnaHntIQgPCBoZWl3YWpvdXlha3VcIDsKK+eEoeizh+agvOiAhSA8IG11c2hpa2FrdXNoYVwgOwor54ax5ouh5pWjIDwgbmV0c3VrYWt1c2FuXCA7Civnm7jmrrrplqLnqI4gPCBzb3VzYWlrYW56ZWlcIDsKK+WNs+aZguWBnOaIpiA8IHNva3VqaXRlaXNlblwgOwor5p+E6aCtIDwgdHN1a2FnYXNoaXJhXCA7CivmuKzlnLDooZvmmJ8gPCBzb2t1Y2hpZWlzZWlcIDsKK+epuuS4rea1rumBiiA8IGt1dWNodXVmdXl1dVwgOwor5b+g6Iej6JS1IDwgY2h1dXNoaW5ndXJhXCA7Civli5XnianlraYgPCBkb3VidXRzdWdha3VcIDsKK+S4gOaemuS4iyA8IGljaGltYWlzaGl0YVwgOwor5L+h55So6KmQ5qy6IDwgc2hpbicneW91c2FnaVwgOwor6Iez5p2x5LqsIDwgaXRhcnV0b3VreW91XCA7Civni6znq4vmgKcgPCBkb2t1cml0c3VzZWlcIDsKK+aYjuecuOeak+atryA8IG1laWJvdWtvdXNoaVwgOwor5LiK562J5YW15pu5IDwgam91dG91aGVpc291XCA7Civph5HliKnmlL/nrZYgPCBraW5yaXNlaXNha3VcIDsKK+iNieagueacqOeariA8IHNvdWtvbm1va3VoaVwgOwor6Zuo5b6M6ZuqIDwgYW1lbm9jaGl5dWtpXCA7CivlirTlg43ngb3lrrMgPCByb3Vkb3VzYWlnYWlcIDsKK+aOqOWumuW5tOm9oiA8IHN1aXRlaW5lbnJlaVwgOwor6YG655Sj566h55CG5Lq6IDwgaXNhbmthbnJpbmluXCA7Civosr/mmJPkvp3lrZjluqYgPCBib3Vla2lpem9uZG9cIDsKK+aXpeacrOaWh+WtpiA8IG5paG9uYnVuZ2FrdVwgOwor5YWr55uu6bC7IDwgeWF0c3VtZXVuYWdpXCA7Civlrp/pqJPnp5HlraYgPCBqaWtrZW5rYWdha3VcIDsKK+WKtOWDjeWnlOWToeS8miA8IHJvdWRvdWlpbmthaVwgOwor5aSp54uX6KmxIDwgdGVuZ3ViYW5hc2hpXCA7CivmoYjlhoXkv4IgPCBhbicnbmFpZ2FrYXJpXCA7CivljbHpmbrkv6Hlj7cgPCBraWtlbnNoaW5nb3VcIDsKK+a1geihjOiJsiA8IHJ5dXVrb3VzaG9rdVwgOwor6Y2+5Lmz55+zIDwgc2hvdW55dXVzZWtpXCA7Civopb/mrKfoq7jlm70gPCBzZWlvdXNob2tva3VcIDsKK+aOpee2muaApyA8IHNldHN1em9rdXNlaVwgOwor5aSc6ZaT5Za25qWtIDwgeWFrYW4nJ2VpZ3lvdVwgOwor5qih5Z6L6aOb6KGM5qmfIDwgbW9rZWloaWtvdWtpXCA7CivnnJ/lrp/mgKcgPCBzaGluaml0c3VzZWlcIDsKK+S9v+W+kuaJv+S8nSA8IHNoaXRvc2hvdWRlblwgOwor5Zu95a625Li75bitIDwga29ra2FzaHVzZWtpXCA7Civpm6ropovnga/nsaAgPCB5dWtpbWlkb3Vyb3VcIDsKK+S4u+W4reWIpOS6iyA8IHNodXNla2loYW5qaVwgOwor6aqo6IKJ6IWrIDwga290c3VuaWt1c2h1XCA7CivniqznlZznlJ8gPCBpbnVjaGlrdXNob3VcIDsKK+WumOijveiRieabuCA8IGthbnNlaWhhZ2FraVwgOwor5Lyd6KiY5paH5a2mIDwgZGVua2lidW5nYWt1XCA7CivliLbli5XmlL7lsIQgPCBzZWlkb3Vob3VzaGFcIDsKK+mgmOWPjuiovCA8IHJ5b3VzaHV1c2hvdVwgOwor5rOV5b6L6KGM54K6IDwgaG91cml0c3Vrb3VpXCA7CivlhbHnlKPlm73lrrYgPCBreW91c2Fua29ra2FcIDsKK+aVmeiCsuapn+mWoiA8IGt5b3Vpa3VraWthblwgOwor6Z2e5bi45L+h5Y+3IDwgaGlqb3VzaGluZ291XCA7Civpm6ropovpmpzlrZAgPCB5dWtpbWlzaG91amlcIDsKK+apn+ani+aUuemdqSA8IGtpa291a2Fpa2FrdVwgOwor5pi85YWJ6ImyIDwgY2h1dWtvdXNob2t1XCA7CivlvqHnjonmnZPlrZAgPCBvdGFtYWpha3VzaGlcIDsKK+acgOe1gue1kOaenCA8IHNhaXNodXVrZWtrYVwgOwor54m55oG16Zai56iOIDwgdG9ra2Vpa2FuemVpXCA7CivlnLDpnIfkuojnn6UgPCBqaXNoaW4nJ3lvY2hpXCA7CivlhbHlkIzli5/ph5EgPCBreW91ZG91Ym9raW5cIDsKK+S6i+WLmeW9k+WxgCA8IGppbXV0b3VreW9rdVwgOwor5LiJ5Y+36ZuR6KqMIDwgc2FuZ291emFzc2hpXCA7CivmvI/mtKnpm7vmtYEgPCByb3VlaWRlbnJ5dXVcIDsKK+Wuo+aIpuW4g+WRiiA8IHNlbnNlbmZ1a29rdVwgOwor5YWx55Sj5Zyw5Yy6IDwga3lvdXNhbmNoaWt1XCA7Civku6PnlKjmlZnlk6EgPCBkYWl5b3VreW91aW5cIDsKK+WMl+alteeGiiA8IGhva2t5b2t1Z3VtYVwgOwor5LiJ6KeS5a6a6KaPIDwgc2Fua2FrdWpvdWdpXCA7Civopb/mtIvlsIbmo4sgPCBzZWl5b3VzaG91Z2lcIDsKK+S/oeWPt+eEoeimliA8IHNoaW5nb3VtdXNoaVwgOwor5Zyf5Zyw5pS56Z2pIDwgdG9jaGlrYWlrYWt1XCA7CivngKzmiLjnianluIIgPCBzZXRvbW9ub2ljaGlcIDsKK+WPuOS7pOWupCA8IHNoaXJlaXNoaXRzdVwgOwor5a6J5YCN5bed6aSFIDwgYWJla2F3YW1vY2hpXCA7CivmnbHmrKfoq7jlm70gPCB0b3VvdXNob2tva3VcIDsKK+i3oeebruebuOe2miA8IGF0b21lc291em9rdVwgOwor5Lq65bel5ZG85ZC4IDwgamlua291a29reXV1XCA7Civkv4Tnm7IgPCBuaXdha2FtZWt1cmFcIDsKK+iIquepuumDteS+vyA8IGtvdWt1dXl1dWJpblwgOwor5Lim6KGM6Ly45YWlIDwgaGVpa291eXVueXV1XCA7CivntYzmuIjmoLzlt64gPCBrZWl6YWlrYWt1c2FcIDsKK+ekvuS8muizh+acrCA8IHNoYWthaXNoaWhvblwgOwor5aSW5Lqk54m55qipIDwgZ2Fpa291dG9ra2VuXCA7CivljbDliLfniakgPCBpbnNhdHN1YnV0c3VcIDsKK+alreWLmeaPkOaQuiA8IGd5b3VtdXRlaWtlaVwgOwor5r2c5Zyo5oSP6K2YIDwgc2VuemFpaXNoaWtpXCA7Civmir3osaHnmoQgPCBjaHV1c2hvdXRla2lcIDsKK+WItuW+oeijhee9riA8IHNlaWd5b3NvdWNoaVwgOwor55m95ouN5a2QIDwgc2hpcmFieW91c2hpXCA7Civmj5Dlh7rogIUgPCB0ZWlzaHV0c3VzaGFcIDsKK+aJgOaJgOaWueaWuSA8IHNob3Nob2hvdWJvdVwgOwor6ICQ5Zyn5YqbIDwgdGFpYXRzdXJ5b2t1XCA7Civlh7jpnaLpj6EgPCB0b3RzdW1lbmt5b3VcIDsKK+mrmOihgOWcpyA8IGtvdWtldHN1YXRzdVwgOwor5p+x5pmC6KiIIDwgaGFzaGlyYWRva2VpXCA7Civlm7rkvZPnh4PmlpkgPCBrb3RhaW5lbnJ5b3VcIDsKK+WCmOatr+i7iiA8IGthc2FoYWd1cnVtYVwgOwor6by75YWD5oCd5qGIIDwgaGFuYW1vdG9qaWFuXCA7Civlj7PmipjnpoHmraIgPCB1c2V0c3VraW5zaGlcIDsKK+i7jeWbveiJsiA8IGd1bmtva3VzaG9rdVwgOwor5YWr6YOO5r2fIDwgaGFjaGlyb3VnYXRhXCA7CivljYPmgJ3kuIfogIMgPCBzZW5zaGliYW5rb3VcIDsKK+S+nemhmOmAgOiBtyA8IGlnYW50YWlzaG9rdVwgOwor5LiJ6YOo5ZCI5ZSxIDwgc2FuYnVnYXNzaG91XCA7CivoqIDoqp7kuK3mnqIgPCBnZW5nb2NodXVzdXVcIDsKK+ePvuS7o+aWh+aYjiA8IGdlbmRhaWJ1bm1laVwgOwor6aSK6K235a2m57SaIDwgeW91Z29nYWtreXV1XCA7Civlrr/lkb3nmoQgPCBzaHVrdW1laXRla2lcIDsKK+Wbnui7oumBi+WLlSA8IGthaXRlbicndW5kb3VcIDsKK+mBi+i8uOalreiAhSA8IHVuJyd5dWd5b3VzaGFcIDsKK+S4reW/g+inkiA8IGNodXVzaGlua2FrdVwgOwor6ZW36aCI6a+oIDwgbmFnYXN1a3VqaXJhXCA7Civnn7Pmsrnlhazlm6MgPCBzZWtpeXVrb3VkYW5cIDsKK+WxgOmDqOm6u+mFlCA8IGt5b2t1YnVtYXN1aVwgOwor576p5aSq5aSr56+AIDwgZ2lkYXl1dWJ1c2hpXCA7Civph5HlsZ7liqDlt6UgPCBraW56b2t1a2Frb3VcIDsKK+aCquaAp+iFq+eYjSA8IGFrdXNlaXNodXlvdVwgOwor5L+u5LqG6Ki8IDwgc2h1dXJ5b3VzaG91XCA7Civppqzpub/mraPnm7QgPCBiYWthc2hvdWppa2lcIDsKK+WQiOW8geS8muekviA8IGdvdWJlbmdhaXNoYVwgOwor5q6144CF55WgIDwgZGFuZGFuYmF0YWtlXCA7Civlhaznm4rkuovmpa0gPCBrb3Vla2lqaWd5b3VcIDsKK+S/oeWPt+mbu+azoiA8IHNoaW5nb3VkZW5wYVwgOwor5aSa6IKJ6LOqIDwgdGFuaWt1c2hpdHN1XCA7CivpgLLlhaXnga8gPCBzaGluJydueXV1dG91XCA7Civpm4bntITnmoQgPCBzaHV1eWFrdXRla2lcIDsKK+WFteWFreeOiSA8IGh5b3Vyb2t1ZGFtYVwgOwor5pGp5pOm54axIDwgbWFzYXRzdW5ldHN1XCA7CivlhoXovKrlkIzlv5cgPCB1Y2hpd2Fkb3VzaGlcIDsKK+ekvuS8muS6i+alrSA8IHNoYWthaWppZ3lvdVwgOwor5oqA6KGT5YqbIDwgZ2lqdXRzdXJ5b2t1XCA7Civpm7bntLDkvIHmpa0gPCByZWlzYWlraWd5b3VcIDsKK+S7rua6tuaOpSA8IGthcml5b3VzZXRzdVwgOwor5Zu95a6a5YWs5ZySIDwga29rdXRlaWtvdWVuXCA7Civlv5zlipvlvoTot68gPCBvdXJ5b2t1a2Vpcm9cIDsKK+S4i+S9jeevhOeWh+WMliA8IGthaWhhbmNodXVrYVwgOwor5o6n6Ki05qOE5Y20IDwga291c29raWt5YWt1XCA7CivpgJrli6TlrprmnJ8gPCB0c3V1a2ludGVpa2lcIDsKK+mrmOWTgeizqiA8IGtvdWhpbnNoaXRzdVwgOwor5q205Y+y5Zyw5ZuzIDwgcmVraXNoaWNoaXp1XCA7Civpm7vlrZDpg7Xkvr8gPCBkZW5zaGl5dXViaW5cIDsKK+aZkuacqOe2vyA8IHNhcmFzaGltb21lblwgOwor5Ly457iu5rOVIDwgc2hpbnNodWt1aG91XCA7Civkurrlt6Xnn6Xog70gPCBqaW5rb3VjaGlub3VcIDsKK+epuuS4reaKleS4iyA8IGt1dWNodXV0b3VrYVwgOwor5qW95aSp5Li7576pIDwgcmFrdXRlbnNodWdpXCA7Civlha3pgKPnmbogPCByb2t1cmVucGF0c3VcIDsKK+a1t+WkluaKleizhyA8IGthaWdhaXRvdXNoaVwgOwor5L2155m655eHIDwgaGVpaGF0c3VzaG91XCA7CivmmpfoqLznlarlj7cgPCBhbnNob3ViYW5nb3VcIDsKK+asoOS5j+eXhyA8IGtldHN1Ym91c2hvdVwgOwor5p6V6KmeIDwgbWFrdXJha290b2JhXCA7CivplqLnr4DmioAgPCBrYW5zZXRzdXdhemFcIDsKK+ayiOayoeiIuSA8IGNoaW5ib3RzdXNlblwgOwor5YCZ5omAIDwgc291cm91dG9rb3JvXCA7CivlrrnnqY3njocgPCB5b3VzZWtpcml0c3VcIDsKK+ahgueUtyA8IGthdHN1cmFvdG9rb1wgOwor5Li75Yqb5qCqIDwgc2h1cnlva3VrYWJ1XCA7CivlubTpvaLliLbpmZAgPCBuZW5yZWlzZWlnZW5cIDsKK+S+oeagvOaIpuS6iSA8IGtha2FrdXNlbnNvdVwgOwor6auY6YCf5bqm6Yu8IDwga291c29rdWRva291XCA7CivlsbHmh5AgPCB5YW1hZnV0b2tvcm9cIDsKK+S5vua5v+ioiCA8IGthbnNoaXRzdWtlaVwgOwor6Z2e5Za25Yip5Zuj5L2TIDwgaGllaXJpZGFudGFpXCA7CivngavlipvmlK/mj7QgPCBrYXJ5b2t1c2hpZW5cIDsKK+mrmOmAn+mBk+i3ryA8IGtvdXNva3Vkb3Vyb1wgOwor5L2/55So56aB5q2iIDwgc2hpeW91a2luc2hpXCA7CivlhqDlqZrokaznpa0gPCBrYW5rb25zb3VzYWlcIDsKK+awtOW5s+Wwvue/vCA8IHN1aWhlaWJpeW9rdVwgOwor5Li86aOvIDwgZG9uYnVyaW1lc2hpXCA7CivmsbrorbDmqZ/plqIgPCBrZXRzdWdpa2lrYW5cIDsKK+S5neaYn+ihkyA8IGt5dXVzZWlqdXRzdVwgOwor5Y+j5YWr5LiBIDwga3VjaGloYXRjaG91XCA7CivpgKPpjpblj43lv5wgPCByZW5zYWhhbicnbm91XCA7CivluILmsJHnpL7kvJogPCBzaGltaW5zaGFrYWlcIDsKK+aknOWvn+W6gSA8IGtlbnNhdHN1Y2hvdVwgOwor6KGo6KGo57SZIDwgb21vdGVieW91c2hpXCA7Civpg6jliIbpm4blkIggPCBidWJ1bnNodXVnb3VcIDsKK+Wbm+aNqOS6lOWFpSA8IHNoaXNoYWdvbnl1dVwgOwor5Y+X6KiX5Lya56S+IDwganV0YWt1Z2Fpc2hhXCA7CivllY/poYzmhI/orZggPCBtb25kYWlpc2hpa2lcIDsKK+mHkeiejeWFrOW6qyA8IGtpbicneXV1a291a29cIDsKK+ebtOWPluW8lSA8IGppa2l0b3JpaGlraVwgOwor5Y+L6YGU55Sy5paQIDwgdG9tb2RhY2hpZ2FpXCA7CivlpKflrabljZIgPCBkYWlnYWt1c290c3VcIDsKK+S4gOiIrOaVmemkiiA8IGlwcGFua3lvdXlvdVwgOwor5aSx6Kqe55eHIDwgc2hpdHN1Z29zaG91XCA7CivpmY3pm6rph48gPCBrb3VzZXRzdXJ5b3VcIDsKK+WuieWumuaBkOaFjCA8IGFudGVpa3lvdWtvdVwgOwor5rC057Sg5YyW54mpIDwgc3Vpc29rYWJ1dHN1XCA7CivnkrDlooPlpInljJYgPCBrYW5reW91aGVua2FcIDsKK+S9k+agvOaknOafuyA8IHRhaWtha3VrZW5zYVwgOwor5ryB5bir55S6IDwgcnlvdXNoaW1hY2hpXCA7CivljJblrablkIjmiJAgPCBrYWdha3Vnb3VzZWlcIDsKK+W5s+W5s+WHoeWHoSA8IGhlaWhlaWJvbmJvblwgOwor5biC5aC05L6h5qC8IDwgc2hpam91a2FrYWt1XCA7Civnianopovmq5MgPCBtb25vbWl5YWd1cmFcIDsKK+WWhOmao+mWouS/giA8IHplbnJpbmthbmtlaVwgOwor5ZCI5oiQ5rSX5YmkIDwgZ291c2Vpc2VuemFpXCA7CivoprPlv7XkuLvnvqkgPCBrYW4nJ25lbnNodWdpXCA7CivpgJrli6TmmYLplpMgPCB0c3V1a2luamlrYW5cIDsKK+e1jOa4iOS9k+WItiA8IGtlaXphaXRhaXNlaVwgOwor5L2P5omA5rCP5ZCNIDwganV1c2hvc2hpbWVpXCA7Civnlr7poqjmgJLmv6QgPCBzaGlwcHV1ZG90b3VcIDsKK+WMu+eZguadkOaWmSA8IGlyeW91emFpcnlvdVwgOwor5pyJ5qmf6L6y5qWtIDwgeXV1a2lub3VneW91XCA7CivlpqjlrrPmlL7pgIEgPCBib3VnYWlob3Vzb3VcIDsKK+mHkeWxnuWFg+e0oCA8IGtpbnpva3VnZW5zb1wgOwor5Y+W5qyh5bqXIDwgdG9yaXRzdWdpdGVuXCA7Civmra/lhoXnmYLms5UgPCBzaGlrYXJ5b3Vob3VcIDsKK+aCquaIr+Wwj+WDpyA8IGl0YXp1cmFrb3pvdVwgOwor5YWo5qip5aSn5L2/IDwgemVua2VudGFpc2hpXCA7CivljbHmgKXlrZjkuqEgPCBraWt5dXVzb25ib3VcIDsKK+Wuh+WumeS4ree2mSA8IHVjaHV1Y2h1dWtlaVwgOwor6Z2e5Lq66ZaT55qEIDwgaGluaW5nZW50ZWtpXCA7Civlj5fkv6Hoo4Xnva4gPCBqdXNoaW5zb3VjaGlcIDsKK+aVsOWApOioiOeulyA8IHN1dWNoaWtlaXNhblwgOwor54mH6KiA6Zq76KqeIDwgaGVuZ2Vuc2VraWdvXCA7Civmh5DkuK3mmYLoqIggPCBrYWljaHV1ZG9rZWlcIDsKK+acp+aciOWknCA8IG9ib3JvZHp1a2l5b1wgOwor56u26Lyq6YG45omLIDwga2Vpcmluc2Vuc2h1XCA7Civkuqvmpb3nmoQgPCBreW91cmFrdXRla2lcIDsKK+aal+WPt+ino+iqrSA8IGFuZ291a2FpZG9rdVwgOwor5Y+N5YuV5oCd5oOzIDwgaGFuZG91c2hpc291XCA7Civlrp/oqLzkuLvnvqkgPCBqaXNzaG91c2h1Z2lcIDsKK+aomea6luWBj+W3riA8IGh5b3VqdW5oZW5zYVwgOwor6LOH5rqQ5ZWP6aGMIDwgc2hpZ2VubW9uZGFpXCA7CivpgYvpgIHmpa3ogIUgPCB1bnNvdWd5b3VzaGFcIDsKK+ihjOWLleWcsOW4ryA8IGtvdWRvdWNoaXRhaVwgOwor5rC05Yqb5a2mIDwgc3Vpcnlva3VnYWt1XCA7CivlubPnrYnkuLvnvqkgPCBieW91ZG91c2h1Z2lcIDsKK+WPluW8leWFiCA8IHRvcmloaWtpc2FraVwgOwor5Lqk5Luj5oqV5omLIDwga291dGFpdG91c2h1XCA7CivkuLzpiaIgPCBkb25idXJpYmFjaGlcIDsKK+WFpeWKm+e3miA8IG55dXVyeW9rdXNlblwgOwor5L2O6KGA5ZynIDwgdGVpa2V0c3VhdHN1XCA7Civlm73lrrbni6zljaAgPCBrb2trYWRva3VzZW5cIDsKK+Wcn+WcsOaUueiJryA8IHRvY2hpa2FpcnlvdVwgOwor55Kw5aKD5Z+65rqWIDwga2Fua3lvdWtpanVuXCA7CivlpJbkuqTmlofmm7ggPCBnYWlrb3VidW5zaG9cIDsKK+i7veaMmeWmhOWLlSA8IGtlaWt5b21vdWRvdVwgOwor6Ziy6Jmr5Yqg5belIDwgYm91Y2h1dWtha291XCA7CivkuI3lnKjmipXnpaggPCBmdXphaXRvdWh5b3VcIDsKK+S8uOe4ruaApyA8IHNoaW5zaHVrdXNlaVwgOwor5b6L5Luk5Yi2IDwgcml0c3VyeW91c2VpXCA7Civlq4znhZnpgYvli5UgPCBrZW4nJ2VuJyd1bmRvdVwgOwor5bCB57eY6JGJ5pu4IDwgZnV1a2FuaGFnYWtpXCA7CivlvaLlvI/nmoQgPCBrZWlzaGlraXRla2lcIDsKK+azsOeEtuiHquiLpSA8IHRhaXplbmppamFrdVwgOwor5pWX5YyX5Li7576pIDwgaGFpYm9rdXNodWdpXCA7CivkvqHmoLzmgKfog70gPCBrYWtha3VzZWlub3VcIDsKK+abuOmhnumAgeaknCA8IHNob3J1aXNvdWtlblwgOwor5Lq65qip5ZWP6aGMIDwgamlua2VubW9uZGFpXCA7Civku7Lnq4vkurogPCBuYWthZGFjaGluaW5cIDsKK+aYh+mZjeWPoyA8IHNob3Vrb3VndWNoaVwgOwor5LiA5q275aCx5Zu9IDwgaXNzaGlob3Vrb2t1XCA7CivoqJjpjLLkv4IgPCBraXJva3VnYWthcmlcIDsKK+W3peS9nOeJqSA8IGtvdXNha3VidXRzdVwgOwor57e06aas5aSn5qC5IDwgbmVyaW1hZGFpa29uXCA7CivkuIDns7jkuIDmr6sgPCBpc3NoaWljaGlnb3VcIDsKK+eJueauiuS6i+aDhSA8IHRva3VzaHVqaWpvdVwgOwor5q2j55u06ICFIDwgc2hvdWppa2ltb25vXCA7CivogIHlsJHkuI3lrpogPCByb3VzaG91ZnV0ZWlcIDsKK+S4reW/g+eahCA8IGNodXVzaGludGVraVwgOwor6Ieq57+S5a6kIDwgamlzaHV1c2hpdHN1XCA7Civku4rmmI7ml6UgPCBrb25teW91bmljaGlcIDsKK+ebuOS5l+W5s+WdhyA8IHNvdWpvdWhlaWtpblwgOwor5LiH5bm05YCZ6KOcIDwgbWFuJyduZW5rb3Vob1wgOwor5a6J5YWo5pWZ6IKyIDwgYW56ZW5reW91aWt1XCA7CivnhKHos4PkuZfou4ogPCBtdWNoaW5qb3VzaGFcIDsKK+eJh+WLmeWlkee0hCA8IGhlbm11a2VpeWFrdVwgOwor5LiA6Iis5aSn6KGGIDwgaXBwYW50YWlzaHV1XCA7Civlj6TlhbjmloflraYgPCBrb3RlbmJ1bmdha3VcIDsKK+mrmOagoemHjueQgyA8IGtvdWtvdXlha3l1dVwgOwor6ZaT5o6l55qEIDwga2Fuc2V0c3V0ZWtpXCA7CivkuK3oj6/mlpnnkIYgPCBjaHV1a2FyeW91cmlcIDsKK+WHuueJiOeJqSA8IHNodXBwYW5idXRzdVwgOwor5YGl5bq354q25oWLIDwga2Vua291am91dGFpXCA7CivmoLjou43nuK4gPCBrYWt1Z3Vuc2h1a3VcIDsKK+m5v+WFkOWztuecjCA8IGthZ29zaGltYWtlblwgOwor5rqW5YKZ54q25rOBIDwganVuYmlqb3VreW91XCA7CivpgbjlpJbkvbPkvZwgPCBzZW5nYWlrYXNha3VcIDsKK+iogOiqnuaVmeiCsiA8IGdlbmdva3lvdWlrdVwgOwor5ZCM5paH5ZCM56iuIDwgZG91YnVuZG91c2h1XCA7CivntabkuI7kvZPns7sgPCBreXV1eW90YWlrZWlcIDsKK+m6u+iWrOeKr+e9qiA8IG1heWFrdWhhbnphaVwgOwor5pyd5Luk5pqu5pS5IDwgY2hvdXJlaWJva2FpXCA7CivkuIDopovorZggPCBpY2hpa2Vuc2hpa2lcIDsKK+aUu+aSg+WKmyA8IGtvdWdla2lyeW9rdVwgOwor5LqS5oG15p2h57SEIDwgZ29rZWlqb3V5YWt1XCA7CivkuIDlm73kuIDnpaggPCBpa2tva3VpcHB5b3VcIDsKK+egsuiJpuWkluS6pCA8IGhvdWthbmdhaWtvdVwgOwor5pW06auq5paZIDwgc2VpaGF0c3VyeW91XCA7CivmtYHooYzoqIDokYkgPCBoYXlhcmlrb3RvYmFcIDsKK+S6pOmAmuapn+mWoiA8IGtvdXRzdXVraWthblwgOwor5rC06YqA6Zu75rGgIDwgc3VpZ2luZGVuY2hpXCA7CivlgJLkuosgPCBzYWthc2FtYWdvdG9cIDsKK+i/veWWhOS+m+mkiiA8IHRzdWl6ZW5rdXlvdVwgOwor5LuW5Yqb5pys6aGYIDwgdGFyaWtpaG9uZ2FuXCA7CivnrKblj7fop6Poqq0gPCBmdWdvdWthaWRva3VcIDsKK+efpeiDveaMh+aVsCA8IGNoaW5vdXNoaXN1dVwgOwor5Lqc54ax5biv5rCX5YCZIDwgYW5ldHRhaWtpa291XCA7CivlvZPllrbmpa3miYAgPCB0b3VlaWd5b3VzaG9cIDsKK+iBt+WToeS8muitsCA8IHNob2t1aW5rYWlnaVwgOwor6KiA6Kqe54m55pyJIDwgZ2VuZ290b2t1eXV1XCA7CivmnIDlsI/pmZDluqYgPCBzYWlzaG91Z2VuZG9cIDsKK+afk+S6leWQiemHjiA8IHNvbWVpeW9zaGlub1wgOwor5a6M5YWo54qv572qIDwga2FuemVuaGFuemFpXCA7CivmmoHpl4cgPCBha2F0c3VraXlhbWlcIDsKK+aVmeiCsuWItuW6piA8IGt5b3Vpa3VzZWlkb1wgOwor5oim5Zu95pmC5LujIDwgc2VuZ29rdWppZGFpXCA7CivliY3pp4bnl4fnirYgPCB6ZW5rdXNob3Vqb3VcIDsKK+S4g+mdouWAkiA8IHNoaWNoaW1lbmRvdVwgOwor6ICQ5rm/5oCnIDwgdGFpc2hpdHN1c2VpXCA7CivntKvntqzopJLos54gPCBzaGlqdWhvdXNob3VcIDsKK+S4gOiogOWNiuWPpSA8IGljaGlnb25oYW5rdVwgOwor5LiN5rOV5Y2g5pyJIDwgZnVob3VzZW4nJ3l1dVwgOwor5LuP5paH5a2mIDwgZnV0c3VidW5nYWt1XCA7Civlrrbluq3nkrDlooMgPCBrYXRlaWthbmt5b3VcIDsKK+eVkeawtOe3tCA8IGhhdGFrZXN1aXJlblwgOwor5YuF5pKw6ZuGIDwgY2hva3VzZW5zaHV1XCA7CivkuIPpnaLkvZMgPCBzaGljaGltZW50YWlcIDsKK+iInuWPsOebo+edoyA8IGJ1dGFpa2FudG9rdVwgOwor5ZCI5oiQ55qu6Z2pIDwgZ291c2VpaGlrYWt1XCA7CivlnKjlroXli6Tli5kgPCB6YWl0YWt1a2lubXVcIDsKK+eEoeaUv+W6nOS4u+e+qSA8IG11c2VpZnVzaHVnaVwgOwor5LiN5Zyo5Zyw5Li7IDwgZnV6YWlqaW51c2hpXCA7CivkuIDlrr/kuIDpo68gPCBpc3NodWt1aXBwYW5cIDsKK+iAgeS6uueXhemZoiA8IHJvdWppbmJ5b3VpblwgOwor54mH6IK66aOb6KGMIDwga2F0YWhhaWhpa291XCA7Civlr77mvZzmsLToiaYgPCB0YWlzZW5zdWlrYW5cIDsKK+itpuaIkuitpuWgsSA8IGtlaWthaWtlaWhvdVwgOwor5Yq5546H55qEIDwga291cml0c3V0ZWtpXCA7CivntK/nqY3otaTlrZcgPCBydWlzZWtpYWthamlcIDsKK+WutuaXj+ani+aIkCA8IGthem9rdWtvdXNlaVwgOwor5YaF5p+U5aSW5YmbIDwgbmFpanV1Z2FpZ291XCA7CivlsZ7kurrkuLvnvqkgPCB6b2t1amluc2h1Z2lcIDsKK+eGsemHj+ioiCA8IG5ldHN1cnlvdWtlaVwgOwor56Gs6Luf5Lih5rS+IDwga291bmFucnlvdWhhXCA7CivluqfluK3nlarlj7cgPCB6YXNla2liYW5nb3VcIDsKK+epuuS4rea1ruaPmiA8IGt1dWNodXVmdXlvdVwgOwor5LiB56ia5aWJ5YWsIDwgZGV0Y2hpYm91a291XCA7CivkuIDmlrnkuqTpgJogPCBpcHBvdWtvdXRzdXVcIDsKK+S4ieaXpeaciOW9oiA8IG1pa2FkenVraWtlaVwgOwor56e75YuV5Zuz5pu46aSoIDwgaWRvdXRvc2hva2FuXCA7CivmpJzkuovnt4/plbcgPCBrZW5qaXNvdWNob3VcIDsKK+azqOmHiOiAhSA8IGNodXVzaGFrdXNoYVwgOwor54ut5b+D55eHIDwga3lvdXNoaW5zaG91XCA7CivmlrDopo/mipXos4cgPCBzaGlua2l0b3VzaGlcIDsKK+WNmOiqnuaknOe0oiA8IHRhbmdva2Vuc2FrdVwgOwor5byl54yb5b+DIDwgeWF0YWtlZ29rb3JvXCA7CivpmqDljL/nianos4cgPCBpbnRva3VidXNzaGlcIDsKK+Wls+S6uuemgeWItiA8IG55b25pbmtpbnNlaVwgOwor5aSn5L+u6YGT6ZmiIDwgZGFpc2h1dWRvdWluXCA7Civmo67mnpflhazlnJIgPCBzaGlucmlua291ZW5cIDsKK+e3j+iKseW8jyA8IHNvdWJhbmFzaGlraVwgOwor5Y2U5ZWG5Zu9IDwga3lvdXNob3Vrb2t1XCA7Civlj5fpqJPos4fmoLwgPCBqdWtlbnNoaWtha3VcIDsKK+S4g+e1g+eQtCA8IHNoaWNoaWdlbmtpblwgOwor5aSn5ZKM6KiA6JGJIDwgeWFtYXRva290b2JhXCA7CivlhIDlvI/kuLvnvqkgPCBnaXNoaWtpc2h1Z2lcIDsKK+mAoOWxsemBi+WLlSA8IHpvdXphbicndW5kb3VcIDsKK+S4gOiIrOaVmeiCsiA8IGlwcGFua3lvdWlrdVwgOwor54iG6KOC5by+IDwgYmFrdXJldHN1ZGFuXCA7Civnq4vkvZPpn7Ppn78gPCByaXR0YWlvbmt5b3VcIDsKK+Wul+aVmeW/gyA8IHNodXVreW91c2hpblwgOwor54m56ZuG6KiY5LqLIDwgdG9rdXNodXVraWppXCA7Civku5jluK/msbrorbAgPCBmdXRhaWtldHN1Z2lcIDsKK+ijvee0meW3peWgtCA8IHNlaXNoaWtvdWpvdVwgOwor5YWs5YWx54mpIDwga291a3lvdWJ1dHN1XCA7CivmlZHmgKXnrrEgPCBreXV1a3l1dWJha29cIDsKK+aVkeaPtOaKleaJiyA8IGt5dXVlbnRvdXNodVwgOwor6LKh5Zuj5rOV5Lq6IDwgemFpZGFuaG91amluXCA7CivmsJHkv5foiJ7ouIogPCBtaW56b2t1YnV5b3VcIDsKK+aIpuS6ieeKr+e9qiA8IHNlbnNvdWhhbnphaVwgOwor6Zuj54eD5Yqg5belIDwgbmFuJyduZW5rYWtvdVwgOwor5Y2X6Ii55YyX6aasIDwgbmFuc2VuaG9rdWJhXCA7CivmqZ/og73pmpzlrrMgPCBraW5vdXNob3VnYWlcIDsKK+Wun+ihjOWnlOWToeS8miA8IGppa2tvdWlpbmthaVwgOwor54uC6Kmp5puyIDwga3lvdXNoaWt5b2t1XCA7Civml6XmnKzlm73msJEgPCBuaWhvbmtva3VtaW5cIDsKK+S/hOWIhumZkCA8IG5pd2FrYWJ1bmdlblwgOwor6Iie6LiP5pWZ5birIDwgYnV0b3VreW91c2hpXCA7CivmnpfplpPlrabmoKEgPCByaW5rYW5nYWtrb3VcIDsKK+advuavrCA8IG1hdHN1cG9ra3VyaVwgOwor6Iqx6a2B6YGT5LitIDwgb2lyYW5kb3VjaHV1XCA7Civmu5HpmY3nq7bmioAgPCBrYWtrb3VreW91Z2lcIDsKK+WcqOWkluWFrOmkqCA8IHphaWdhaWtvdWthblwgOwor5a6X5pWZ5a2mIDwgc2h1dWt5b3VnYWt1XCA7CivpoK3ombEgPCBhdGFtYXNoaXJhbWlcIDsKK+S4gOaXpeS4rSA8IGljaGluaWNoaWp1dVwgOwor5Zyw5pa56YG45oyZIDwgY2hpaG91c2Vua3lvXCA7CivmsYLogbfogIUgPCBreXV1c2hva3VzaGFcIDsKK+eVnOauuuWgtCA8IGNoaWt1c2F0c3ViYVwgOwor5ZCI5oiQ5YyW5a2mIDwgZ291c2Vpa2FnYWt1XCA7Civnp4Hoo73okYnmm7ggPCBzaGlzZWloYWdha2lcIDsKK+WtpuW5tOacqyA8IGdha3VuZW5tYXRzdVwgOwor5LiN5a6a56mN5YiGIDwgZnV0ZWlzZWtpYnVuXCA7CivmraPjgIXloILjgIUgPCBzZWlzZWlkb3Vkb3VcIDsKK+WNiuS/oeWNiueWkSA8IGhhbnNoaW5oYW5naVwgOwor56mA6LGh6JmrIDwga29rdXpvdW11c2hpXCA7CivovLjlhaXotoXpgY4gPCB5dW55dXVjaG91a2FcIDsKK+eEoemfv+WupCA8IG11a3lvdXNoaXRzdVwgOwor562N5Yy76ICFIDwgdGFrZW5va29pc2hhXCA7Civlm5vlhYPpgJ/luqYgPCBzaGlnZW5zb2t1ZG9cIDsKK+S7mOWxnuWtpuagoSA8IGZ1em9rdWdha2tvdVwgOwor5Lq65bel55yf54+gIDwgamlua291c2hpbmp1XCA7CivmvZvlv4PlipsgPCBzZW5zaGlucnlva3VcIDsKK+iIiOihjOS4uyA8IGtvdWd5b3VudXNoaVwgOwor5Lq65qip5Zuj5L2TIDwgamlua2VuZGFudGFpXCA7CivmnKzmlofmibnoqZUgPCBob25tb25oaWh5b3VcIDsKK+S5vuWcsOi+suazlSA8IGthbmNoaW5vdWhvdVwgOwor5Zan5Zan5ZuC5ZuCIDwga2Vua2VuZ291Z291XCA7Civmnb7mnpcgPCBtYXRzdWJheWFzaGlcIDsKK+S6uuWumuWwi+WVjyA8IGppbnRlaWppbm1vblwgOwor5Lu75pyf5rqA5LqGIDwgbmlua2ltYW5yeW91XCA7Civnq7bppqzmlrDogZ4gPCBrZWliYXNoaW5idW5cIDsKK+S/rumjvuWtkCA8IHNodXVzaG9rdXNoaVwgOwor5Y+O55uK546HIDwgc2h1dWVraXJpdHN1XCA7CivnpZ3lhIDooosgPCBzaHV1Z2lidWt1cm9cIDsKK+mbu+awl+W3peWtpiA8IGRlbmtpa291Z2FrdVwgOwor5ama5ae75bGKIDwga29uJydpbnRvZG9rZVwgOwor5L6b57Wm6YGO5aSaIDwga3lvdWt5dXVrYXRhXCA7Civlj6PpoK3lr6nnkIYgPCBrb3V0b3VzaGlucmlcIDsKK+manOWus+eJqSA8IHNob3VnYWlidXRzdVwgOwor5bmz5ZKM5pWZ6IKyIDwgaGVpd2FreW91aWt1XCA7Civpu5Lpirnnl4UgPCBrdXJvc2FiaWJ5b3VcIDsKK+S6uueJqeiplSA8IGppbmJ1dHN1aHlvdVwgOwor57eP5ZCI55eF6ZmiIDwgc291Z291YnlvdWluXCA7CivkuIrlsaTmsJfmtYEgPCBqb3Vzb3VraXJ5dXVcIDsKK+iAgem9ouW5tOmHkSA8IHJvdXJlaW5lbmtpblwgOwor6ZuR5omA5b6XIDwgemF0c3VzaG90b2t1XCA7CivliaXoo73ooZMgPCBoYWt1c2VpanV0c3VcIDsKK+a8lOWlj+e3tOe/kiA8IGVuc291cmVuc2h1dVwgOwor54us5Y2g5qyyIDwgZG9rdXNlbicneW9rdVwgOwor5LuV5o6b5Zyw6Zu3IDwgc2hpa2FrZWppcmFpXCA7CivmnZ/mn7EgPCB0c3VrYWJhc2hpcmFcIDsKK+Wbnui7ouizh+mHkSA8IGthaXRlbnNoaWtpblwgOwor57W25pyb55qEIDwgemV0c3Vib3V0ZWtpXCA7CivmmpfkuK3mqKHntKIgPCBhbmNodXVtb3Nha3VcIDsKK+WkqeeEtuiJsiA8IHRlbicnbmVuc2hva3VcIDsKK+WUr+aIkeeLrOWwiiA8IHl1aWdhZG9rdXNvblwgOwor6ZuG5pWj5Li7576pIDwgc2h1dXNhbnNodWdpXCA7CivlnJ/nlKPnianlsYsgPCBtaXlhZ2Vtb25veWFcIDsKK+iHque1puiHqui2syA8IGppa3l1dWppc29rdVwgOwor6ISC6IKq6LOqIDwgc2hpYm91c2hpdHN1XCA7CivlrpfmlZnliocgPCBzaHV1a3lvdWdla2lcIDsKK+WSjOW5s+WNlOWumiA8IHdhaGVpa3lvdXRlaVwgOwor5LuP5b+DIDwgaG90b2tlZ29rb3JvXCA7Civlh7rloLTogIUgPCBzaHV0c3Vqb3VzaGFcIDsKK+WcsOaWueWIhuaoqSA8IGNoaWhvdWJ1bmtlblwgOwor5Lm+5ryG5YOPIDwga2Fuc2hpdHN1em91XCA7CivluILlhoXoprPlhYkgPCBzaGluYWlrYW5rb3VcIDsKK+aUvuWwhOiDvembqCA8IGhvdXNoYW5vdWFtZVwgOwor5YaF572w55qEIDwgbmFpYmF0c3V0ZWtpXCA7CivkuIPop5LlvaIgPCBzaGljaGlrYWtrZWlcIDsKK+irnOWgseapn+mWoiA8IGNob3Vob3VraWthblwgOwor5Y2z6IiI5puyIDwgc29ra3lvdWt5b2t1XCA7CivlsLHlrabnvqnli5kgPCBzaHV1Z2FrdWdpbXVcIDsKK+iIquepuuWEquWLoiA8IGtvdWt1dXl1dXNlaVwgOwor5Lq65omN55m755SoIDwgamluemFpdG91eW91XCA7CivmlaPnmbrnmoQgPCBzYW5wYXRzdXRla2lcIDsKK+ikh+acrOS9jeWItiA8IGZ1a3Vob24nJ2lzZWlcIDsKK+eUn+a0u+S/neittyA8IHNlaWthdHN1aG9nb1wgOwor6ZuG5Lit6LGq6ZuoIDwgc2h1dWNodXVnb3V1XCA7CivlvrTlhbXlhY3pmaQgPCBjaG91aGVpbWVuam9cIDsKK+WFrOWus+WVj+mhjCA8IGtvdWdhaW1vbmRhaVwgOwor5Y2Y6Lqr6LW05Lu7IDwgdGFuc2hpbmZ1bmluXCA7CivluoPlj6Pnk7YgPCBoaXJva3VjaGliaW5cIDsKK+W3ruWIpeeUqOiqniA8IHNhYmV0c3V5b3Vnb1wgOwor5Lq65Y+j5YuV5oWLIDwgamlua291ZG91dGFpXCA7CivlroflrpnniannkIYgPCB1Y2h1dWJ1dHN1cmlcIDsKK+WFqOmdouaIpuS6iSA8IHplbm1lbnNlbnNvdVwgOwor57WM5riI54q25oWLIDwga2VpemFpam91dGFpXCA7Civlp5ToqJfnoJTnqbYgPCBpdGFrdWtlbmt5dXVcIDsKK+WNg+i+m+S4h+iLpiA8IHNlbnNoaW5iYW5rdVwgOwor5Yy755mC5aCx6YWsIDwgaXJ5b3Vob3VzaHV1XCA7CivmsLTmmbbmmYLoqIggPCBzdWlzaG91ZG9rZWlcIDsKK+S4ieaWh+aWh+WjqyA8IHNhbm1vbmJ1bnNoaVwgOwor5Zue6Lui5pyo6aasIDwga2FpdGVubW9rdWJhXCA7CivkuI3miKbmnaHntIQgPCBmdXNlbmpvdXlha3VcIDsKK+S4gOeUn+aHuOWRvSA8IGlzc2hvdWtlbm1laVwgOwor5Zyn57iu546HIDwgYXNzaHVrdXJpdHN1XCA7Civml6XpgLLmnIjmrakgPCBuaXNzaGluZ2VwcG9cIDsKK+WPl+iol+iyqeWjsiA8IGp1dGFrdWhhbmJhaVwgOwor5paH5YyW5Yuy56ugIDwgYnVua2FrdW5zaG91XCA7CivmgqDmgqDplpHplpEgPCB5dXV5dXVrYW5rYW5cIDsKK+S7j+iLsei+nuWFuCA8IGZ1dHN1ZWlqaXRlblwgOwor5a6/5rOK5Lq6IDwgc2h1a3VoYWt1bmluXCA7CivnlZnlrojnlarpm7voqbEgPCBydXN1YmFuZGVud2FcIDsKK+ihm+eUn+W3peWtpiA8IGVpc2Vpa291Z2FrdVwgOwor5pS/6KaL5pS+6YCBIDwgc2Vpa2VuaG91c291XCA7CivmsLTmgKfloZfmlpkgPCBzdWlzZWl0b3J5b3VcIDsKK+eMqee0heeGsSA8IHNob3Vrb3VuZXRzdVwgOwor5YWI6YCy5YW15ZmoIDwgc2Vuc2hpbmhlaWtpXCA7Civoh6rlt7HkuK3lv4MgPCBqaWtvY2h1dXNoaW5cIDsKK+WNlOWKm+mLvCA8IGt5b3VyeW9rdWtvdVwgOwor5ZCM5ZKM5pWZ6IKyIDwgZG91d2FreW91aWt1XCA7CivlrabpvaLlhZDnq6UgPCBnYWt1cmVpamlkb3VcIDsKK+iBluWcsOW3oeekvCA8IHNlaWNoaWp1bnJlaVwgOwor56S+5Zuj5rOV5Lq6IDwgc2hhZGFuaG91amluXCA7CivmiYDnlarlnLAgPCB0b2tvcm9iYW5jaGlcIDsKK+azqOmHiOabuCA8IGNodXVzaGFrdXNob1wgOwor6LKo54mp6Ly46YCBIDwga2Ftb3RzdXl1c291XCA7CivnibnlvrTph48gPCB0b2t1Y2hvdXJ5b3VcIDsKK+ato+WkmuinkuW9oiA8IHNlaXRha2FrdWtlaVwgOwor5oeQ5bel5ZCIIDwgZnV0b2tvcm9ndWFpXCA7Civpm7vmsJflrrnph48gPCBkZW5raXlvdXJ5b3VcIDsKK+a6luemgeayu+eUoyA8IGp1bmtpbmNoaXNhblwgOwor5o+P5YaZ5YqbIDwgYnlvdXNoYXJ5b2t1XCA7CivljJblrabmp4vpgKAgPCBrYWdha3Vrb3V6b3VcIDsKK+eUn+eJqeWtpiA8IHNlaWJ1dHN1Z2FrdVwgOwor5LiA5YWa54us6KOBIDwgaXR0b3Vkb2t1c2FpXCA7CivnhKHpmZDlsI/mlbAgPCBtdWdlbnNob3VzdXVcIDsKK+a4vueEtuS4gOS9kyA8IGtvbnplbicnaXR0YWlcIDsKK+a1t+W6leWcsOmchyA8IGthaXRlaWppc2hpblwgOwor5Y2a5aOr6Kqy56iLIDwgaGFrdXNoaWthdGVpXCA7CivlubPlnYflr7/lkb0gPCBoZWlraW5qdW15b3VcIDsKK+W4guawkemBi+WLlSA8IHNoaW1pbicndW5kb3VcIDsKK+iomOW/teWHuueJiCA8IGtpbmVuc2h1cHBhblwgOwor6KOF572u5Yi25b6hIDwgc291Y2hpc2VpZ3lvXCA7Civljp/oo4HliKTmiYAgPCBnZW5zYWliYW5zaG9cIDsKK+aknOiojuWnlOWToeS8miA8IGtlbnRvdWlpbmthaVwgOwor5Y6a55Sf5aSn6IejIDwga291c2VpZGFpamluXCA7CivmsrnohILlt6Xmpa0gPCB5dXNoaWtvdWd5b3VcIDsKK+e3j+aUr+mFjeS6uiA8IHNvdXNoaWhhaW5pblwgOwor6Kqt5pu45YqbIDwgZG9rdXNob3J5b2t1XCA7Civml6XnhafmmYLplpMgPCBuaXNzaG91amlrYW5cIDsKK+S4gOiIrOaVmeabuCA8IGlwcGFua3lvdXNob1wgOwor5LiA6YOo5aeL57WCIDwgaWNoaWJ1c2hpanV1XCA7CivplqLmlbDljp/lnosgPCBrYW5zdXVnZW5rZWlcIDsKK+efpeitmOassiA8IGNoaXNoaWtpeW9rdVwgOwor5LiJ6YeN5a6d5YagIDwgc2FuanV1aG91a2FuXCA7CivlhajpgJ/lipsgPCB6ZW5zb2t1cnlva3VcIDsKK+atk+mAgei/juS8miA8IGthbnNvdWdlaWthaVwgOwor57eK5oCl6YG/6ZujIDwga2lua3l1dWhpbmFuXCA7CivliLnpgqPkuLvnvqkgPCBzZXRzdW5hc2h1Z2lcIDsKK+W3pealreWcsOWMuiA8IGtvdWd5b3VjaGlrdVwgOwor5oiR5qW95aSa5biCIDwgZ2FyYWt1dGFpY2hpXCA7CivooYborbDpmaLorbDlk6EgPCBzaHV1Z2lpbmdpaW5cIDsKK+i7ouWGmeaNuuafkyA8IHRlbnNoYW5hc3NlblwgOwor6Ieq54S254G95a6zIDwgc2hpemVuc2FpZ2FpXCA7Civmt7HntIXoibIgPCBzaGlua291c2hva3VcIDsKK+WkqeS6leajp+aVtyA8IHRlbmpvdXNhamlraVwgOwor5YWI6KGM5p2h5Lu2IDwgc2Vua291am91a2VuXCA7CivmnIjkuIvmsLfkurogPCBnZWtrYWh5b3VqaW5cIDsKK+acquW5tCA8IGhpdHN1amlkb3NoaVwgOwor6LC35oeQIDwgdGFuaWJ1dG9rb3JvXCA7CivpgbjogIPlp5Tlk6HkvJogPCBzZW5rb3VpaW5rYWlcIDsKK+WMu+iWrOWIhualrSA8IGl5YWt1YnVuZ3lvdVwgOwor6ZuB6aqoIDwga2FyaWdhbmVib25lXCA7CivouqvlhYPkv53oqLwgPCBtaW1vdG9ob3Nob3VcIDsKK+i7n+edgOmZuCA8IG5hbmNoYWt1cmlrdVwgOwor57SU5q2j56eR5a2mIDwganVuc2Vpa2FnYWt1XCA7Civkuozph43pgZPlvrMgPCBuaWp1dWRvdXRva3VcIDsKK+aCsuWWnOS6pOS6pCA8IGhpa2lrb21vZ29tb1wgOwor57eK5oCl5YuV6K2wIDwga2lua3l1dWRvdWdpXCA7CivlpKrpmb3pm7vmsaAgPCB0YWl5b3VkZW5jaGlcIDsKK+ihl+mgremMsumfsyA8IGdhaXRvdXJva3VvblwgOwor5Zu96Zqb5qmf6ZaiIDwga29rdXNhaWtpa2FuXCA7CivmnbHlj6MgPCBoaWdhc2hpZ3VjaGlcIDsKK+WJjeWCvuWnv+WLoiA8IHplbmtlaXNoaXNlaVwgOwor5biw5bGe5oSP6K2YIDwga2l6b2t1aXNoaWtpXCA7CivlhazooYbkvr/miYAgPCBrb3VzaHV1YmVuam9cIDsKK+aXpeacrOWbveWGhSA8IG5paG9ua29rdW5haVwgOwor6Imy5oOF54uCIDwgc2hpa2lqb3VreW91XCA7Civpg7Xkvr/ooosgPCB5dXViaW5idWt1cm9cIDsKK+mBuOawkeaAneaDsyA8IHNlbm1pbnNoaXNvdVwgOwor5ZKA5Zq86YGL5YuVIDwgc29zaGFrdXVuZG91XCA7CivoqJjlv7XlhpnnnJ8gPCBraW5lbnNoYXNoaW5cIDsKK+iouuWvn+WPsCA8IHNoaW5zYXRzdWRhaVwgOwor5rOh5rKr55qEIDwgaG91bWF0c3V0ZWtpXCA7Civngavnh7XluIPlm6MgPCBrb3RhdHN1YnV0b25cIDsKK+S7rumHiOaUviA8IGthcmlzaGFrdWhvdVwgOwor5YWo6Z2i56aB5q2iIDwgemVubWVua2luc2hpXCA7CivljJflm57luLDnt5ogPCBraXRha2Fpa2lzZW5cIDsKK+mAo+WQiOiJpumaiiA8IHJlbmdvdWthbnRhaVwgOwor5oCl6YCy55qEIDwga3l1dXNoaW50ZWtpXCA7Civkurrlkb3mlZHliqkgPCBqaW5tZWlreXV1am9cIDsKK+aIpuS6ieeKtuaFiyA8IHNlbnNvdWpvdXRhaVwgOwor5aWz5a2Q5aSn5a2mIDwgam9zaGlkYWlnYWt1XCA7Civlm73lo6vnhKHlj4wgPCBrb2t1c2hpbXVzb3VcIDsKK+W5s+Wdh+S9meWRvSA8IGhlaWtpbicneW9tZWlcIDsKK+S6i+S+i+eglOeptiA8IGppcmVpa2Vua3l1dVwgOwor5YiG5pWj5oqV6LOHIDwgYnVuc2FudG91c2hpXCA7CivoqLrlr5/liLggPCBzaGluc2F0c3VrZW5cIDsKK+alteWwj+WApCA8IGt5b2t1c2hvdWNoaVwgOwor5YG25YOP56S85oudIDwgZ3V1em91cmVpaGFpXCA7Civlirnmnpzopr/pnaIgPCBrb3VrYXRla2ltZW5cIDsKK+e3iuW8tee3qeWSjCA8IGtpbmNob3VrYW53YVwgOwor5LiN6Kix6KSH6KO9IDwgZnVreW9mdWt1c2VpXCA7CivljJfmrKfnpZ7oqbEgPCBob2t1b3VzaGlud2FcIDsKK+S6uuS6i+ihjOaUvyA8IGppbmppZ3lvdXNlaVwgOwor5pit5ZKM5bm06ZaTIDwgc2hvdXdhbmVua2FuXCA7Civlm73lrZfllY/poYwgPCBrb2t1amltb25kYWlcIDsKK+S+m+ihgOiAhSA8IGt5b3VrZXRzdXNoYVwgOwor5Zu95YuZ5aSn6IejIDwga29rdW11ZGFpamluXCA7Civmna/kuosgPCBzYWthenVraWdvdG9cIDsKK+iogOiqnumanOWusyA8IGdlbmdvc2hvdWdhaVwgOwor5YaN6LKp5L6h5qC8IDwgc2FpaGFua2FrYWt1XCA7CivlubPlnYfmoKrkvqEgPCBoZWlraW5rYWJ1a2FcIDsKK+WuieaBr+mmmemFuCA8IGFuc29rdWtvdXNhblwgOwor6K2c5Luj5aSn5ZCNIDwgZnVkYWlkYWlteW91XCA7Civlj47lhaXlvbkgPCBzaHV1bnl1dXlha3VcIDsKK+evgOeUqOmbhiA8IHNldHN1eW91c2h1dVwgOwor6YWN6YGU5paZIDwgaGFpdGF0c3VyeW91XCA7CivpoZ7nvqnoqp7ovp7lhbggPCBydWlnaWdvaml0ZW5cIDsKK+mBk+i3r+ioiOeUuyA8IGRvdXJva2Vpa2FrdVwgOwor5Y+k6Ieq5YuV6LuKIDwgZnVydWppZG91c2hhXCA7Civni6zmnpUgPCBoaXRvcmltYWt1cmFcIDsKK+WuueWnv+err+m6lyA8IHlvdXNoaXRhbnJlaVwgOwor5paw5Y2S6ICFIDwgc2hpbnNvdHN1c2hhXCA7Civoq4vosqDmpa3ogIUgPCB1a2VvaWd5b3VzaGFcIDsKK+mAmuW4uOWPo+iqniA8IHRzdXVqb3Vrb3Vnb1wgOwor5Zyo5aSW6YKm5Lq6IDwgemFpZ2FpaG91amluXCA7Civlj47nm6PlipsgPCBzaHV1a2Fucnlva3VcIDsKK+mWi+aUvue1jOa4iCA8IGthaWhvdWtlaXphaVwgOwor55m+6JGJ566xIDwgaHlha3V5b3ViYWtvXCA7CivkvZPmk43nq7bmioAgPCB0YWlzb3VreW91Z2lcIDsKK+WKtOWDjeWQjOebnyA8IHJvdWRvdWRvdW1laVwgOwor5Zu96Zqb6YO95biCIDwga29rdXNhaXRvc2hpXCA7CivmnInliLrpiYTnt5ogPCB5dXVzaGl0ZXNzZW5cIDsKK+Wbo+S9k+ihjOWLlSA8IGRhbnRhaWtvdWRvdVwgOwor5b+c55So5pWw5a2mIDwgb3V5b3VzdXVnYWt1XCA7CivljZTlipvogIUgPCBreW91cnlva3VzaGFcIDsKK+S6pOmAmuW3oeafuyA8IGtvdXRzdXVqdW5zYVwgOwor6YCf6YGU5L6/IDwgc29rdXRhdHN1YmluXCA7CivnhKHmlbXoiabpmoogPCBtdXRla2lrYW50YWlcIDsKK+iIquepuuS8muekviA8IGtvdWt1dWdhaXNoYVwgOwor6YqA55m96ImyIDwgZ2luaGFrdXNob2t1XCA7CivlpKfmlL/lpYnpgoQgPCB0YWlzZWlob3VrYW5cIDsKK+S4jeaSk+S4jeWxiCA8IGZ1dG91ZnVrdXRzdVwgOwor55u46Zai6Zai5L+CIDwgc291a2Fua2Fua2VpXCA7CivlkIznm5/nvbfmpa0gPCBkb3VtZWloaWd5b3VcIDsKK+WkvuerueahgyA8IGt5b3VjaGlrdXRvdVwgOwor6LuN5YKZ56u25LqJIDwgZ3VuYmlreW91c291XCA7CivlvaLlrrnli5XoqZ4gPCBrZWl5b3Vkb3VzaGlcIDsKK+ijnOe1puW5uee3miA8IGhva3l1dWthbnNlblwgOwor55Wc55Sf6YGTIDwgY2hpa3VzaG91ZG91XCA7Civpm6rovrHmiKYgPCBzZXRzdWpva3VzZW5cIDsKK+eCuuabv+ijgeWumiA8IGthd2FzZXNhaXRlaVwgOwor6KGo54++5Li7576pIDwgaHlvdWdlbnNodWdpXCA7CivmnbHkuqznnYAgPCB0b3VreW91Y2hha3VcIDsKK+mbu+S/oeWxgCA8IGRlbnNoaW5reW9rdVwgOwor5paH5pWZ5Zyw5Yy6IDwgYnVua3lvdWNoaWt1XCA7CivpnZLoibLnl4cgPCBzZWlzaG9rdXNob3VcIDsKK+W6g+WRiuS4uyA8IGtvdWtva3VudXNoaVwgOwor6YeR5bGe55ay5Yq0IDwga2luem9rdWhpcm91XCA7Civlj7Pmlrnpq5jpupfmpb0gPCB1aG91a29tYWdha3VcIDsKK+W8t+WItueWjumWiyA8IGt5b3VzZWlzb2thaVwgOwor5p2x5Lqs55m6IDwgdG91a3lvdWhhdHN1XCA7Civoraboppbnt4/nm6MgPCBrZWlzaGlzb3VrYW5cIDsKK+S7o+ihqOekvuWToSA8IGRhaWh5b3VzaGFpblwgOwor5YCf5bGL5L2P5bGFIDwgc2hha3V5YXp1bWFpXCA7CivlvrTlhbXliLbluqYgPCBjaG91aGVpc2VpZG9cIDsKK+efreacn+Wkp+WtpiA8IHRhbmtpZGFpZ2FrdVwgOwor56uL5L2T5pS+6YCBIDwgcml0dGFpaG91c291XCA7CivlhajouqvmtbQgPCB6ZW5zaGluJyd5b2t1XCA7CivlnKfov6vljIXluK8gPCBhcHBha3Vob3V0YWlcIDsKK+WkieizquiAhSA8IGhlbnNoaXRzdXNoYVwgOwor6YCa55So5pyf6ZaTIDwgdHN1dXlvdWtpa2FuXCA7Civli4nlvLfmmYLplpMgPCBiZW5reW91amlrYW5cIDsKK+aIuOexjeishOacrCA8IGtvc2VraXRvdWhvblwgOwor5a625bqt5pWZ6IKyIDwga2F0ZWlreW91aWt1XCA7CivlnLDpnIfmjqLpibEgPCBqaXNoaW50YW5rb3VcIDsKK+mBv+mbo+air+WtkCA8IGhpbmFuYmFzaGlnb1wgOwor5aSP5pyo56uLIDwgbmF0c3Vrb2RhY2hpXCA7CivnpL7kvJrlpYnku5UgPCBzaGFrYWlob3VzaGlcIDsKK+WpmuWkluaAp+S6pCA8IGtvbmdhaXNlaWtvdVwgOwor5LiN5Y+v5oqX5YqbIDwgZnVrYWtvdXJ5b2t1XCA7CivkuIDloYogPCBoaXRva2F0YW1hcmlcIDsKK+itpuWvn+W6gSA8IGtlaXNhdHN1Y2hvdVwgOwor5qWt55WM5YidIDwgZ3lvdWthaWhhdHN1XCA7Civln7fooYzmqZ/plqIgPCBzaGlra291a2lrYW5cIDsKK+WLpOWLmeipleWumiA8IGtpbm11aHlvdXRlaVwgOwor5aSp6ZW356+AIDwgdGVuY2hvdXNldHN1XCA7CivluLjnlKjlr77mlbAgPCBqb3V5b3V0YWlzdXVcIDsKK+WomOW/gyA8IG11c3VtZWdva29yb1wgOwor5aSn6YGT6Iq45Lq6IDwgZGFpZG91Z2VpbmluXCA7Civpu5Lpoqjnmb3pm6ggPCBrb2t1ZnV1aGFrdXVcIDsKK+iCpeWOmuaAp+m8u+eCjiA8IGhpa291c2VpYmllblwgOwor6YqA6KGM5qWt5YuZIDwgZ2lua291Z3lvdW11XCA7Civnj77lnLDoqr/mn7sgPCBnZW5jaGljaG91c2FcIDsKK+mBoOa0i+iIqua1tyA8IGVuJyd5b3Vrb3VrYWlcIDsKK+WkluS6pOmWouS/giA8IGdhaWtvdWthbmtlaVwgOwor56eB5a2m5Yqp5oiQIDwgc2hpZ2FrdWpvc2VpXCA7CivnlKPopKXnhrEgPCBzYW5qb2t1bmV0c3VcIDsKK+eEoeeXm+WIhuWoqSA8IG11dHN1dWJ1bmJlblwgOwor5LiN6Imv5YK15qipIDwgZnVyeW91c2Fpa2VuXCA7CivlnLDln5/mmYLliLsgPCBjaGlpa2lqaWtva3VcIDsKK+WHueeJiOWNsOWItyA8IG91aGFuaW5zYXRzdVwgOwor5Z+65bm555Sj5qWtIDwga2lrYW5zYW5neW91XCA7Civot6/kuIrpp5Dou4ogPCByb2pvdWNodXVzaGFcIDsKK+WNmOWLneW8jyA8IHRhbnNob3VzaGlraVwgOwor5Lqc6YW45YyW56qS57SgIDwgYXNhbmthY2hpc3NvXCA7CivpppbohLPkvJroq4cgPCBzaHVub3VrYWlkYW5cIDsKK+eLrOijgeaUv+ayuyA8IGRva3VzYWlzZWlqaVwgOwor5aSW5Lqk5ZWP6aGMIDwgZ2Fpa291bW9uZGFpXCA7CivpoK3poILpqqggPCB0b3VjaG91a290c3VcIDsKK+egtOeUo+eUs+iriyA8IGhhc2Fuc2hpbnNlaVwgOwor6YO35Zyf6Iq46IO9IDwga3lvdWRvZ2Vpbm91XCA7CivlvozmlrnlnLDln58gPCBrb3Vob3VjaGlpa2lcIDsKK+WkqumZveaUvuWwhCA8IHRhaXlvdWhvdXNoYVwgOwor5aOK6KGA55eFIDwga2Fpa2V0c3VieW91XCA7Civopb/mtIvmlofmmI4gPCBzZWl5b3VidW5tZWlcIDsKK+aMr+abv+i8uOmAgSA8IGZ1cmlrYWV5dXNvdVwgOwor5Lqk5o+b5p2h5Lu2IDwga291a2Fuam91a2VuXCA7CivnmbrooYzluILloLQgPCBoYWtrb3VzaGlqb3VcIDsKK+S4gOaYqOaYqOW5tCA8IHNha2lvdG90b3NoaVwgOwor6KO96I+T5qWt6ICFIDwgc2Vpa2FneW91c2hhXCA7CivnnIvmnb/lqJggPCBrYW5iYW5tdXN1bWVcIDsKK+aEm+WbveWbo+S9kyA8IGFpa29rdWRhbnRhaVwgOwor5aSJ5b2i6KaP5YmHIDwgaGVua2Vpa2lzb2t1XCA7CivkurrmsJfmipXnpaggPCBuaW5raXRvdWh5b3VcIDsKK+eUt+Wls+W5s+etiSA8IGRhbmpvYnlvdWRvdVwgOwor6YO15L6/6JGJ5pu4IDwgeXV1YmluaGFnYWtpXCA7Civnt6jpm4blsYAgPCBoZW5zaHV1a3lva3VcIDsKK+aZtOW+jOmbqCA8IGhhcmVub2NoaWFtZVwgOwor5biC5aC05pKk6YCAIDwgc2hpam91dGV0dGFpXCA7CivlronlrprlkIzkvY3kvZMgPCBhbnRlaWRvdWl0YWlcIDsKK+Wumuacn+aknOiouiA8IHRlaWtpa2Vuc2hpblwgOwor5rWB5YuV6aOfIDwgcnl1dWRvdXNob2t1XCA7CivlpI/npa0gPCBuYXRzdW1hdHN1cmlcIDsKK+Wbo+S9k+ertuaKgCA8IGRhbnRhaWt5b3VnaVwgOwor6aOf6YGT5qW9IDwgc2hva3Vkb3VyYWt1XCA7CivmsJHplpPlm6PkvZMgPCBtaW5rYW5kYW50YWlcIDsKK+WwgeW7uuaAneaDsyA8IGhvdWtlbnNoaXNvdVwgOwor6Iiq57aa6Led6ZuiIDwga291em9rdWt5b3JpXCA7Civlj4zls7Dpp7Hpp50gPCBzb3Vob3VyYWt1ZGFcIDsKK+eZvuenkeWFqOabuCA8IGh5YWtrYXplbnNob1wgOwor6Kmm6KGM6Yyv6KqkIDwgc2hpa291c2FrdWdvXCA7Civlt6XloLTlnLDluK8gPCBrb3Vqb3VjaGl0YWlcIDsKK+avm+e5lOmMpiA8IGtlb3JpbmlzaGlraVwgOwor5pS/5rK75pS56Z2pIDwgc2VpamlrYWlrYWt1XCA7CivluILmsJHkvJrppKggPCBzaGltaW5rYWlrYW5cIDsKK+axguS6uuWPoyA8IGt5dXVqaW5ndWNoaVwgOwor5pyJ6ZmQ5Lya56S+IDwgeXV1Z2VuZ2Fpc2hhXCA7Civph43llYbkuLvnvqkgPCBqdXVzaG91c2h1Z2lcIDsKK+mnheWJjeW6g+WgtCA8IGVraW1hZWhpcm9iYVwgOwor57WC552A6aeFIDwgc2h1dWNoYWt1ZWtpXCA7CivmlL/msrvosqzku7sgPCBzZWlqaXNla2luaW5cIDsKK+m7kuawtOeGsSA8IGtva3VzdWluZXRzdVwgOwor5Luu6YCy57SaIDwga2FyaXNoaW5reXV1XCA7CivlsILmpa3kuLvlqaYgPCBzZW5neW91c2h1ZnVcIDsKK+ePvuWgtOebo+edoyA8IGdlbmJha2FudG9rdVwgOwor5YWs6Lui5ZGo5pyfIDwga291dGVuc2h1dWtpXCA7Civlj6PkuInlkbPnt5ogPCBrdWNoaWphbWlzZW5cIDsKK+mFjemBlOWFiCA8IGhhaXRhdHN1c2FraVwgOwor5a+d54mp6KqeIDwgbmVtb25vZ2F0YXJpXCA7CivkuIDmmKjmmKjlpJwgPCBpc3Nha3VzYWt1eWFcIDsKK+iLpeauv+WOnyA8IHdha2F0b25vYmFyYVwgOwor6KGA5riF6IKd54KOIDwga2Vzc2Vpa2FuJydlblwgOwor5Lq66Leh5pyq6LiPIDwgamluc2VraW1pdG91XCA7CivlvLfliLbkv53pmbogPCBreW91c2VpaG9rZW5cIDsKK+S4gOacm+WNg+mHjCA8IGljaGlib3VzZW5yaVwgOwor5Ya36JS15a6kIDwgcmVpem91c2hpdHN1XCA7CivliJHli5nmiYDplbcgPCBrZWltdXNob2Nob3VcIDsKK+WgtOWGheaUvumAgSA8IGpvdW5haWhvdXNvdVwgOwor5pyd5LiJ5pqu5ZubIDwgY2hvdXNhbmJvc2hpXCA7Civnpo/npYnlm73lrrYgPCBmdWt1c2hpa29ra2FcIDsKK+ayoeS6pOa4iSA8IGJvdHN1a291c2hvdVwgOwor6ZW35YiA5LiA5p6dIDwgY2hvdXRvdWlzc2hpXCA7CivpnZnohIjnmKQgPCBqb3VteWFrdXJ5dXVcIDsKK+eEoee3muW3peWtpiA8IG11c2Vua291Z2FrdVwgOwor5Yud5Yip5oqV5omLIDwgc2hvdXJpdG91c2h1XCA7CivlpKnmsJfmpoLms4EgPCB0ZW5raWdhaWt5b3VcIDsKK+mqqOe1hOe5lCA8IGtvdHN1c29zaGlraVwgOwor5Y2D5Y2S6ZW3IDwgc2Vuc290c3VjaG91XCA7CivnhKHluLjov4XpgJ8gPCBtdWpvdWppbnNva3VcIDsKK+ihjOWLleenkeWtpiA8IGtvdWRvdWthZ2FrdVwgOwor55u06L2E5ZywIDwgY2hva2thdHN1Y2hpXCA7CivkuojpmLLms6jlsIQgPCB5b2JvdWNodXVzaGFcIDsKK+aYlOW8jyA8IG11a2FzaGlzaGlraVwgOwor5qW156eY5oOF5aCxIDwgZ29rdWhpam91aG91XCA7CivlsIHlu7rnpL7kvJogPCBob3VrZW5zaGFrYWlcIDsKK+S4gOeti+e5qSA8IGhpdG9zdWppbmF3YVwgOwor5Yq05L2/57Sb5LqJIDwgcm91c2hpZnVuc291XCA7Civoh6rlraboh6rnv5IgPCBqaWdha3VqaXNodXVcIDsKK+S4jemAo+e2mue3miA8IGZ1cmVuem9rdXNlblwgOwor5rK75aSW5rOV5qipIDwgY2hpZ2FpaG91a2VuXCA7CivntYzmuIjlpJbkuqQgPCBrZWl6YWlnYWlrb3VcIDsKK+WIg+eJqeS4ieaYpyA8IGhhbW9ub3phbm1haVwgOwor5YWJ5a2m57mK57atIDwga291Z2FrdXNlbicnaVwgOwor5bCx6IG36ZujIDwgc2h1dXNob2t1bmFuXCA7CivlhajkvJHmraLnrKYgPCB6ZW5reXV1c2hpZnVcIDsKK+WSjOa0i+aKmOihtyA8IHdheW91c2V0Y2h1dVwgOwor5riF566X5Lya56S+IDwgc2Vpc2FuZ2Fpc2hhXCA7Civlu4Pol6nnva7nnIwgPCBoYWloYW5jaGlrZW5cIDsKK+iHqOW6iuism+e+qSA8IHJpbnNob3Vrb3VnaVwgOwor6Kqs57WM56+AIDwgc2Vra3lvdWJ1c2hpXCA7CivntJTml6XmnKzpoqggPCBqdW4nJ25paG9uZnV1XCA7CivmloflrZfnrKblj7fns7sgPCBtb2ppZnVnb3VrZWlcIDsKK+aMmeWbveS4gOiHtCA8IGt5b2tva3VpdGNoaVwgOwor5aSn6KGG6YGL5YuVIDwgdGFpc2h1dXVuZG91XCA7Civlv4Pouqvnl4cgPCBzaGluc2hpbnNob3VcIDsKK+W4guWgtOiqv+afuyA8IHNoaWpvdWNob3VzYVwgOwor5YWs6ZaL5aSW5LqkIDwga291a2FpZ2Fpa291XCA7CivpnaLkvJrlrqQgPCBtZW5rYWlzaGl0c3VcIDsKK+eLrOWJteWKmyA8IGRva3Vzb3VyeW9rdVwgOwor5aa55aiYIDwgaW1vdXRvbXVzdW1lXCA7CivlpKfolLXlpKfoh6MgPCBvb2t1cmFkYWlqaW5cIDsKK+S/ruato+S6iOeulyA8IHNodXVzZWl5b3NhblwgOwor5aeL5qWt5byPIDwgc2hpZ3lvdXNoaWtpXCA7CivooYzmlL/mqZ/plqIgPCBneW91c2Vpa2lrYW5cIDsKK+WMu+eZgui8uOmAgeapnyA8IGlyeW91eXVzb3VraVwgOwor5p2l5a6i562LIDwgcmFpa3lha3VzdWppXCA7CivpgLLlrablob4gPCBzaGluZ2FrdWp1a3VcIDsKK+ebrueahOagvCA8IG1va3V0ZWtpa2FrdVwgOwor5pS/5pWZ5YiG6ZuiIDwgc2Vpa3lvdWJ1bnJpXCA7CivmkK3kuZfmoYjlhoUgPCB0b3Vqb3VhbicnbmFpXCA7CivkupTkurrlm4PlrZAgPCBnb25pbmJheWFzaGlcIDsKK+eLrOWWhOS4u+e+qSA8IGRva3V6ZW5zaHVnaVwgOwor6Iiq56m65pu457ChIDwga291a3V1c2hva2FuXCA7Civos5vlkKblkIznpaggPCBzYW5waWRvdWh5b3VcIDsKK+S6uuaWh+Wtpua0viA8IGppbmJ1bmdha3VoYVwgOwor5o+055So55Sf55SjIDwgZW4nJ3lvdXNlaXNhblwgOwor5LiN6ICV5L2c5ZywIDwgZnVrb3VzYWt1Y2hpXCA7CivlpKfkvb/lhazpgrggPCB0YWlzaGlrb3V0ZWlcIDsKK+axuuitsOS6i+mghSA8IGtldHN1Z2lqaWtvdVwgOwor5qCh5q2j5L+CIDwga291c2VpZ2FrYXJpXCA7Civlipvoh6rmhaIgPCBjaGlrYXJhamltYW5cIDsKK+mBjumFuOWMluawtOe0oCA8IGthc2Fua2FzdWlzb1wgOwor5bGL5pW355S6IDwgeWFzaGlraW1hY2hpXCA7CivmuKnms4nnmYLms5UgPCBvbnNlbnJ5b3Vob3VcIDsKK+S4gOmhsOS4gOeskSA8IGlwcGluJydpc3Nob3VcIDsKK+mbu+awl+S/oeWPtyA8IGRlbmtpc2hpbmdvdVwgOwor6Zyc5p+xIDwgc2hpbW9iYXNoaXJhXCA7CivmnI3po77lk4EgPCBmdWt1c2hva3VoaW5cIDsKK+iGqOW8teeOhyA8IGJvdWNob3VyaXRzdVwgOwor5bCC566h5rC05Z+fIDwgc2Vua2Fuc3VpaWtpXCA7CivlpKnkvZPltIfmi50gPCB0ZW50YWlzdXVoYWlcIDsKK+iJr+W/g+eahCA8IHJ5b3VzaGludGVraVwgOwor55u45LqS5Y+C54WnIDwgc291Z29zYW5zaG91XCA7CivlibLng7nmlpnnkIYgPCBrYXBwb3VyeW91cmlcIDsKK+epuuW/teS7jyA8IHNvcmFuZW5idXRzdVwgOwor6YOK5aSW6Zu76LuKIDwga291Z2FpZGVuc2hhXCA7Civnmobnmobmp5ggPCBtaW5hbWluYXNhbWFcIDsKK+S/ruato+S4u+e+qSA8IHNodXVzZWlzaHVnaVwgOwor6IO9546H57WmIDwgbm91cml0c3VreXV1XCA7Civoo5zlvLfoqLzmi6AgPCBob2t5b3VzaG91a29cIDsKK+aYn+WNsCA8IGhvc2hpamlydXNoaVwgOwor5aCG56mN54mpIDwgdGFpc2VraWJ1dHN1XCA7CivkurrmnZDpioDooYwgPCBqaW56YWlnaW5rb3VcIDsKK+i/keS7o+mfs+alvSA8IGtpbmRhaW9uZ2FrdVwgOwor6KOP6Z2i5bel5L2cIDwgcmltZW5rb3VzYWt1XCA7Civms5XmsrvnpL7kvJogPCBob3VjaGlzaGFrYWlcIDsKK+WHuue0jeS/giA8IHN1aXRvdWdha2FyaVwgOwor5aSn55uk5oyv6IieIDwgb29iYW5idXJ1bWFpXCA7CivkuInlspDku6PooaggPCBzYW5naWRhaWh5b3VcIDsKK+iThOepjeeuoSA8IGNoaWt1c2VraWthblwgOwor54us6Lqr6ICFIDwgZG9rdXNoaW5tb25vXCA7CivmlZnlk6HntYTlkIggPCBreW91aW5rdW1pYWlcIDsKK+a1t+mbo+aVkeWKqSA8IGthaW5hbmt5dXVqb1wgOwor6Yyy6Z+z5pS+6YCBIDwgcm9rdW9uaG91c291XCA7CivkuInogIXlh6HpgIAgPCBzYW5zaGFib250YWlcIDsKK+efs+erueiJsiA8IHNla2ljaGlrdWlyb1wgOwor55u06IW455mMIDwgY2hva3VjaG91Z2FuXCA7CivnqoHnmbrnmoQgPCB0b3BwYXRzdXRla2lcIDsKK+aXpeacrOa1t+a1gSA8IG5paG9ua2Fpcnl1dVwgOwor5Y+y5LiK5pyA5aSnIDwgc2hpam91c2FpZGFpXCA7CivoirjooZPnmoQgPCBnZWlqdXRzdXRla2lcIDsKK+mdnuaZtuizqiA8IGhpc2hvdXNoaXRzdVwgOwor6KiY5oa26Zqc5a6zIDwga2lva3VzaG91Z2FpXCA7CivkuI3lirTmiYDlvpcgPCBmdXJvdXNob3Rva3VcIDsKK+iAgeiNmOaAneaDsyA8IHJvdXNvdXNoaXNvdVwgOwor546J6JyA6buNIDwgdG91bW9yb2tvc2hpXCA7Civou43pnIDlt6Xmpa0gPCBndW5qdWtvdWd5b3VcIDsKK+Wwj+W/g+iAhSA8IHNob3VzaGlubW9ub1wgOwor6Zui5ZCI6ZuG5pWjIDwgcmlnb3VzaHV1c2FuXCA7Civoia/lprvos6Lmr40gPCByeW91c2Fpa2VuYm9cIDsKK+i7jeWPuOS7pOWumCA8IGd1bnNoaXJlaWthblwgOwor6buS5rC05byVIDwga3Vyb21penVoaWtpXCA7Civosr/mmJPkvJrnpL4gPCBib3Vla2lnYWlzaGFcIDsKK+eHkOmFuOiCpeaWmSA8IHJpbnNhbmhpcnlvdVwgOwor5oSf54ax5YmkIDwga2FuJyduZXRzdXphaVwgOwor54Sh6ZmQ6LKs5Lu7IDwgbXVnZW5zZWtpbmluXCA7CivlqK/mpb3lrqQgPCBnb3Jha3VzaGl0c3VcIDsKK+mOrueXm+iWrCA8IGNoaW50c3V1eWFrdVwgOwor56eR5a2m5oCd5oOzIDwga2FnYWt1c2hpc291XCA7Civlm5vmtbflkIzog54gPCBzaGlrYWlkb3Vob3VcIDsKK+S7o+eQhuWnlOS7u+eKtiA8IGRhaXJpaW5pbmpvdVwgOwor5YGl5bq35ZWP6aGMIDwga2Vua291bW9uZGFpXCA7CivmhJ/lgrfkuLvnvqkgPCBrYW5zaG91c2h1Z2lcIDsKK+mmrOmgreims+mfsyA8IGJhdG91a2FuJydub25cIDsKK+Wkqemggui3nemboiA8IHRlbmNob3VreW9yaVwgOwor6IO9546H55qEIDwgbm91cml0c3V0ZWtpXCA7Civoqr/mn7vpg6jplbcgPCBjaG91c2FidWNob3VcIDsKK+WQiOWUseabsiA8IGdhc3Nob3VreW9rdVwgOwor5Li56aCC6ba0IDwgdGFuY2hvdWR6dXJ1XCA7CivooYzli5Xlkb3ku6QgPCBrb3Vkb3VtZWlyZWlcIDsKK+eCuuabv+aJi+W9oiA8IGthd2FzZXRlZ2F0YVwgOwor6LWk6YGT5rCX5ZujIDwgc2VraWRvdWtpZGFuXCA7CivnqbrkuK3okL3kuIsgPCBrdXVjaHV1cmFra2FcIDsKK+mdqeaWsOeahCA8IGtha3VzaGludGVraVwgOwor5a6a5qC86I236YeNIDwgdGVpa2FrdWthanV1XCA7Civngrrmm7/pioDooYwgPCBrYXdhc2VnaW5rb3VcIDsKK+WumOiDveS4u+e+qSA8IGthbicnbm91c2h1Z2lcIDsKK+WutuW6reaVmeW4qyA8IGthdGVpa3lvdXNoaVwgOwor5pi85aSc5YW86KGMIDwgY2h1dXlha2Vua291XCA7CivlrqLllYblo7IgPCBreWFrdXNob3ViYWlcIDsKK+S4gOaLrOW8jyA8IGlra2F0c3VzaGlraVwgOwor55Wc55Sj5qWtIDwgY2hpa3VzYW5neW91XCA7CivkvJrnpL7llrbmpa0gPCBrYWlzaGFlaWd5b3VcIDsKK+iii+m8oCA8IGZ1a3Vyb25lenVtaVwgOwor5ZWT6JKZ5oCd5oOzIDwga2VpbW91c2hpc291XCA7CivpnZ7lvqrnkrDnmoQgPCBoaWp1bmthbnRla2lcIDsKK+aWh+awkee1seWItiA8IGJ1bm1pbnRvdXNlaVwgOwor6YGO6YW45YyW54mpIDwga2FzYW5rYWJ1dHN1XCA7CivkuIDlv7XnmbrotbcgPCBpY2hpbmVuaG9ra2lcIDsKK+WHuuihgOatuyA8IHNodWtrZXRzdXNoaVwgOwor6IKy5oiQ5qC95Z+5IDwgaWt1c2Vpc2FpYmFpXCA7Civnj77loLTmpJzoqLwgPCBnZW5iYWtlbnNob3VcIDsKK+aZguS7o+iAg+iovCA8IGppZGFpa291c2hvdVwgOwor5oSf5bqm6Imv5aW9IDwga2FuZG9yeW91a291XCA7Civnmb3pq6rpoK0gPCBzaGlyYWdhYXRhbWFcIDsKK+mAj+aYjuS6uumWkyA8IHRvdW1laW5pbmdlblwgOwor5paw5b2i5byPIDwgc2hpbmtlaXNoaWtpXCA7CivluLjlpZfmiYvmrrUgPCBqb3V0b3VzaHVkYW5cIDsKK+WFseacieeJqSA8IGt5b3V5dXVidXRzdVwgOwor5ZKM5bmz5bel5L2cIDwgd2FoZWlrb3VzYWt1XCA7CivnlLPlkYrnrrEgPCBzaGlua29rdWJha29cIDsKK+aal+S4remjm+i6jSA8IGFuY2h1dWhpeWFrdVwgOwor5Lqc5a+S5biv5rCX5YCZIDwgYWthbnRhaWtpa291XCA7Civmm7jnlZnmlpkgPCBrYWtpdG9tZXJ5b3VcIDsKK+mrmOmfs+mDqOiomOWPtyA8IGtvdW9uYnVraWdvdVwgOwor5Lq65rCR6KOB5YikIDwgamlubWluc2FpYmFuXCA7Civmlr3ooYzopo/liYcgPCBzaGlrb3VraXNva3VcIDsKK+WNiui6q+S4jemajyA8IGhhbnNoaW5mdXp1aVwgOwor5biM6YeI54axIDwga2lzaGFrdW5ldHN1XCA7Civmma7pgJrlkI3oqZ4gPCBmdXRzdXVtZWlzaGlcIDsKK+WxseWPo+ecjCA8IHlhbWFndWNoaWtlblwgOwor5Z+3562G6ICFIDwgc2hpcHBpdHN1c2hhXCA7Civlr77osaHnr4Tlm7IgPCB0YWlzaG91aGFuJydpXCA7CivkurrmsJHmiKbnt5ogPCBqaW5taW5zZW5zZW5cIDsKK+ewoeaYjuW8t+WbuiA8IGthbm1laWt5b3Vrb1wgOwor5Y+v6IO96YG45oqeIDwga2Fub3VzZW50YWt1XCA7CivlsYvlhoXnq7bmioAgPCBva3VuYWlreW91Z2lcIDsKK+WkmuaDheS7j+W/gyA8IHRham91YnVzc2hpblwgOwor5Y2Y57SU6KiI566XIDwgdGFuanVua2Vpc2FuXCA7CivlhazooYbpm7voqbEgPCBrb3VzaHV1ZGVud2FcIDsKK+WVhuWPluW8lSA8IHNob3V0b3JpaGlraVwgOwor6Iqx6Ieq5YuV6LuKIDwgaGFuYWppZG91c2hhXCA7CivkvY3nm7jlub7kvZXlraYgPCBpc291a2lrYWdha3VcIDsKK+akjeeJqeayuSA8IHNob2t1YnV0c3V5dVwgOwor5pS+6JWp5oGv5a2QIDwgaG91dG91bXVzdWtvXCA7Civlh7rooYDmlpEgPCBzaHVra2V0c3VoYW5cIDsKK+S8geeUu+WupCA8IGtpa2FrdXNoaXRzdVwgOwor5L615YWl6LuNIDwgc2hpbicnbnl1dWd1blwgOwor5YaZ55yf5qmf5bqXIDwgc2hhc2hpbmtpdGVuXCA7CivmvIHnjbLniakgPCBneW9rYWt1YnV0c3VcIDsKK+S4ieetiei7jeabuSA8IHNhbnRvdWd1bnNvdVwgOwor57eK5oCl6YCu5o2VIDwga2lua3l1dXRhaWhvXCA7CivlipvlrabnmoQgPCByaWtpZ2FrdXRla2lcIDsKK+iynuaTjei5gui6qiA8IHRlaXNvdWp1dXJpblwgOwor5b+D6IK65qmf6IO9IDwgc2hpbnBhaWtpbm91XCA7CivntITmnZ/kuosgPCB5YWt1c29rdWdvdG9cIDsKK+mbjOmbhOWQjOagqiA8IHNoaXl1dWRvdXNodVwgOwor6aCG6aKo5rqA5biGIDwganVucHV1bWFucGFuXCA7CivlrabmoKHms5XkurogPCBnYWtrb3Vob3VqaW5cIDsKK+WkieS9jembu+a1gSA8IGhlbicnaWRlbnJ5dXVcIDsKK+WJjeWTqOWLpOWLmSA8IHplbnNob3VraW5tdVwgOwor57WM5bi35a2QIDwga3lvdWthdGFiaXJhXCA7CivmtbfmtIvnp5HlraYgPCBrYWl5b3VrYWdha3VcIDsKK+i+suawkemBi+WLlSA8IG5vdW1pbicndW5kb3VcIDsKK+eBq+a2iOWjtyA8IGhpa2VzaGl0c3Vib1wgOwor6LKs5Lu756+E5ZuyIDwgc2VraW5pbmhhbicnaVwgOwor55m65YWJ5aGX5paZIDwgaGFra291dG9yeW91XCA7CivmhJ/lv5zkvZznlKggPCBrYW4nJ25vdXNheW91XCA7CivliKnkvJHpvKAgPCByaWt5dXVuZXp1bWlcIDsKK+WtkOaMgeaYhuW4gyA8IGtvbW9jaGlrb25idVwgOwor5biC5Za25L2P5a6FIDwgc2hpZWlqdXV0YWt1XCA7CivpoIblv5zlipsgPCBqdW4nJ25vdXJ5b2t1XCA7Civkuovmpa3pg6jplbcgPCBqaWd5b3VidWNob3VcIDsKK+Wkp+iDhuS4jeaVtSA8IGRhaXRhbmZ1dGVraVwgOwor5LyK5Yui5aSn56We5a6uIDwgaXNlZGFpamluZ3V1XCA7CivlpKnlnLDlibXpgKAgPCB0ZW5jaGlzb3V6b3VcIDsKK+W4guWgtOe1jOa4iCA8IHNoaWpvdWtlaXphaVwgOwor57aa5p+EIDwgdHN1ZHp1a2lnYXJhXCA7CivkuojlrprmnJ/ml6UgPCB5b3RlaWtpaml0c3VcIDsKK+WMu+eZguaKgOihkyA8IGlyeW91Z2lqdXRzdVwgOwor5LiL5Y2K6LqrIDwgc2hpbW9oYW5zaGluXCA7CivooajmsbrmqKkgPCBoeW91a2V0c3VrZW5cIDsKK+aKnuS4gOeahCA8IHRha3VpdHN1dGVraVwgOwor5L2/5b255YuV6KmeIDwgc2hpZWtpZG91c2hpXCA7CivmtYHli5XniakgPCByeXV1ZG91YnV0c3VcIDsKK+mZs+i/sOabuCA8IGNoaW5qdXRzdXNob1wgOwor5b605YW15qSc5p+7IDwgY2hvdWhlaWtlbnNhXCA7Civoh6rlrrbnmbrpm7sgPCBqaWthaGF0c3VkZW5cIDsKK+i/veaCvOW8jyA8IHRzdWl0b3VzaGlraVwgOwor5ZCM6Kqe5Y+N5b6pIDwgZG91Z29oYW5wdWt1XCA7CivlvIHoq5blpKfkvJogPCBiZW5yb250YWlrYWlcIDsKK+S4gOiIrOaKleelqCA8IGlwcGFudG91aHlvdVwgOwor5LiA5Lq65oGv5a2QIDwgaGl0b3JpbXVzdWtvXCA7Civpo7Lpo5/niakgPCBpbnNob2t1YnV0c3VcIDsKK+mAgOW9uei7jeS6uiA8IHRhaWVraWd1bmppblwgOwor5Lq655Sf5pyA5oKqIDwgamluc2Vpc2FpYWt1XCA7CivljbDliqDpm7vlnKcgPCBpbmthZGVuJydhdHN1XCA7CivmtrLmgKfpmZDnlYwgPCBla2lzZWlnZW5rYWlcIDsKK+S6jOmFuOWMlueCree0oCA8IG5pc2Fua2F0YW5zb1wgOwor5qCE6aSK5a2m6ICFIDwgZWl5b3VnYWt1c2hhXCA7CivmmLzpo5/kvJogPCBjaHV1c2hva3VrYWlcIDsKK+mDveW4guS6pOmAmiA8IHRvc2hpa291dHN1dVwgOwor55Wc55Sj5a2mIDwgY2hpa3VzYW5nYWt1XCA7CivkuqTmj5vmlZnmjoggPCBrb3VrYW5reW91anVcIDsKK+WtpueUn+aZguS7oyA8IGdha3VzZWlqaWRhaVwgOwor6K2Y5a2X546HIDwgc2hpa2lqaXJpdHN1XCA7CivmhJvnpL7nsr7npZ4gPCBhaXNoYXNlaXNoaW5cIDsKK+iAgeWMluePvuixoSA8IHJvdWthZ2Vuc2hvdVwgOwor6by76auY6auYIDwgaGFuYXRha2FkYWthXCA7CivnpL7kvJrllY/poYwgPCBzaGFrYWltb25kYWlcIDsKK+ebsueuoemKg+WJtSA8IG1vdWthbmp1dXNvdVwgOwor54m55Yil5rOVIDwgdG9rdWJldHN1aG91XCA7CivmnbHmtbflnLDmlrkgPCB0b3VrYWljaGlob3VcIDsKK+WHuua8geaoqSA8IHNodXRzdWd5b2tlblwgOwor55m66KGM5Lya56S+IDwgaGFra291Z2Fpc2hhXCA7Civov5HmiYDlkIjlo4EgPCBraW5qb2dhcHBla2lcIDsKK+mfs+WjsOWcp+e4riA8IG9uc2VpYXNzaHVrdVwgOwor5rCR5peP5Li7576pIDwgbWluem9rdXNodWdpXCA7CivlsILploDnp5Hnm64gPCBzZW5tb25rYW1va3VcIDsKK+a4m+mHj+e1jOWWtiA8IGdlbnJ5b3VrZWllaVwgOwor552h55yg5LiN6LazIDwgc3VpbWluYnVzb2t1XCA7CivpgYvpgIHlpZHntIQgPCB1bnNvdWtlaXlha3VcIDsKK+iInuWPsOS4ree2mSA8IGJ1dGFpY2h1dWtlaVwgOwor5LiL5bGk6ZqO57SaIDwga2Fzb3VrYWlreXV1XCA7Civps7bogbfkurogPCB0b2Jpc2hva3VuaW5cIDsKK+e1jOa4iOmXmOS6iSA8IGtlaXphaXRvdXNvdVwgOwor5LiN6Imv5bCR5aWzIDwgZnVyeW91c2hvdWpvXCA7Civlv5zmj7TmvJToqqwgPCBvdWVuJydlbnpldHN1XCA7Civpjq7prYLmm7IgPCBjaGlua29ua3lva3VcIDsKK+ihjOWLleWNiuW+hCA8IGtvdWRvdWhhbmtlaVwgOwor5Ye65ryU5paZIDwgc2h1dHN1ZW5yeW91XCA7CivlnLDpnIflnLDluK8gPCBqaXNoaW5jaGl0YWlcIDsKK+mAmumBjuiyv+aYkyA8IHRzdXVrYWJvdWVraVwgOwor57Wx6KiI5bm06ZGRIDwgdG91a2VpbmVua2FuXCA7CivkurrmiYvkuI3otrMgPCBoaXRvZGVidXNva3VcIDsKK+mAmuS/l+eahCA8IHRzdXV6b2t1dGVraVwgOwor5Y2B5Lit5YWr5LmdIDwgaml0Y2h1dWhha2t1XCA7Civmu4vlvLfpo7LmlpkgPCBqaWt5b3VpbnJ5b3VcIDsKK+Wbm+inkuWPt+eivCA8IHNoaWtha3Vnb3VtYVwgOwor5Zu65a6a6Kaz5b+1IDwga290ZWlrYW4nJ25lblwgOwor5L2O6Z+z6YOo6KiY5Y+3IDwgdGVpb25idWtpZ291XCA7CivntYzpqJPnp5HlraYgPCBrZWlrZW5rYWdhZ3VcIDsKK+iNt+mbu+eykuWtkCA8IGthZGVucnl1dXNoaVwgOwor5Lq65bel55Sf5ZG9IDwgamlua291c2VpbWVpXCA7Civpm7vmsJfmlpnph5EgPCBkZW5raXJ5b3VraW5cIDsKK+W+gOW+qeiRieabuCA8IG91ZnVrdWhhZ2FraVwgOwor5Lq66YCg55+z5rK5IDwgamluem91c2VraXl1XCA7CivlnJ/om40gPCB0c3VjaGlib3RhcnVcIDsKK+WkqeeruueJoeS4uSA8IHRlbmppa3Vib3RhblwgOwor5b6h6aaz6LWw5qeYIDwgZ29jaGlzb3VzYW1hXCA7CivkvrXlhaXogIUgPCBzaGluJydueXV1c2hhXCA7CivlpKnot6/mrbTnqIsgPCB0ZW5yb3Jla2l0ZWlcIDsKK+WFseWQjOS+v+aJgCA8IGt5b3Vkb3ViZW5qb1wgOwor5pqX5q665pyq6YGCIDwgYW5zYXRzdW1pc3VpXCA7CivmnKrmiZXosrvnlKggPCBtaWhhcmFpaGl5b3VcIDsKK+epuuWHuuW8tSA8IGthcmFzaHV0Y2hvdVwgOwor55u45LqS6YWN5bGeIDwgc291Z29oYWl6b2t1XCA7CivnoLTpoZTkuIDnrJEgPCBoYWdhbicnaXNzaG91XCA7CivooYDlnKfoqIggPCBrZXRzdWF0c3VrZWlcIDsKK+iDhuaxgeizqiA8IHRhbmp1dXNoaXRzdVwgOwor5rK755mC5Yq55p6cIDwgY2hpcnlvdWtvdWthXCA7CivnjJ/lrpjliLbluqYgPCByeW91a2Fuc2VpZG9cIDsKK+WPjuWuueaCo+iAhSA8IHNodXV5b3VrYW5qYVwgOwor5q2m6Zm15qGD5rqQIDwgYnVyeW91dG91Z2VuXCA7CivkurrmsJHmiYDmnIkgPCBqaW5taW5zaG95dXVcIDsKK+WPjeWwhOS/guaVsCA8IGhhbnNoYWtlaXN1dVwgOwor5bel5qWt5oSP5YygIDwga291Z3lvdWlzaG91XCA7Civnm7jlr77oqZXkvqEgPCBzb3V0YWloeW91a2FcIDsKK+e1jOa4iOWVj+mhjCA8IGtlaXphaW1vbmRhaVwgOwor6buE56Kn546JIDwga291aGVraWd5b2t1XCA7CivpmpTmnIjliIogPCBrYWt1Z2V0c3VrYW5cIDsKK+S4ieWNgeWFreioiCA8IHNhbmp1dXJva2tlaVwgOwor5q6L5qWt5omL5b2TIDwgemFuZ3lvdXRlYXRlXCA7CivmipXnkIPli5XkvZwgPCB0b3VreXV1ZG91c2FcIDsKK+mYsueBveiok+e3tCA8IGJvdXNhaWt1bnJlblwgOwor6ICQ55So5bm05pWwIDwgdGFpeW91bmVuc3V1XCA7CivmsJHlrprmhrLms5UgPCBtaW50ZWlrZW5wb3VcIDsKK+emj+WIqeWOmueUnyA8IGZ1a3VyaWtvdXNlaVwgOwor5raI6ICX5ZOB6LK7IDwgc2hvdW1vdWhpbmhpXCA7CivlrabntJrplonpjpYgPCBnYWtreXV1aGVpc2FcIDsKK+S6uueUn+iomOmMsiA8IGppbnNlaWtpcm9rdVwgOwor5a6f5Yip5Li7576pIDwgaml0c3VyaXNodWdpXCA7Civlvqnljp/lipsgPCBmdWt1Z2Vucnlva3VcIDsKK+ero+W3peW8jyA8IHNodW5rb3VzaGlraVwgOwor5YWs5L2/6aSo5ZOhIDwga291c2hpa2FuJydpblwgOwor56u25LqJ546HIDwga3lvdXNvdXJpdHN1XCA7CivnqY3nq4vph5EgPCB0c3VtaXRhdGVraW5cIDsKK+akjeeJqeWckiA8IHNob2t1YnV0c3VlblwgOwor6YCy5YyW6KuW6ICFIDwgc2hpbmthcm9uc2hhXCA7CivnqbrkuK3mqZ/li5UgPCBrdXVjaHV1a2lkb3VcIDsKK+aKleelqOe1kOaenCA8IHRvdWh5b3VrZWtrYVwgOwor5YmN5o+Q5p2h5Lu2IDwgemVudGVpam91a2VuXCA7CivlpJbkurrpgbjmiYsgPCBnYWlqaW5zZW5zaHVcIDsKK+W3qOWkp+WIhuWtkCA8IGt5b2RhaWJ1bnNoaVwgOwor6LSL6YCg57SZ5bmjIDwgZ2Fuem91c2hpaGVpXCA7Civni6zouqvlr64gPCBkb2t1c2hpbnJ5b3VcIDsKK+aknOWumuippumokyA8IGtlbnRlaXNoaWtlblwgOwor6JeN57as6KSS56ugIDwgcmFuanVob3VzaG91XCA7Civlj7jms5XoqabpqJMgPCBzaGlob3VzaGlrZW5cIDsKK+aflOi7n+S9k+aTjSA8IGp1dW5hbnRhaXNvdVwgOwor5LiN6Imv5bCO5L2TIDwgZnVyeW91ZG91dGFpXCA7Civlr77miKbou4rnoLIgPCB0YWlzZW5zaGFob3VcIDsKK+WFpeacreiAhSA8IG55dXVzYXRzdXNoYVwgOwor5q275L2T6Kej5YmWIDwgc2hpdGFpa2FpYm91XCA7Civlhbzmpa3ovrLlrrYgPCBrZW5neW91bm91a2FcIDsKK+aWsOWFpeeUnyA8IHNoaW4nJ255dXVzZWlcIDsKK+WFrOmWi+mMsumfsyA8IGtvdWthaXJva3VvblwgOwor5rW36LuN5aSn6IejIDwga2FpZ3VuZGFpamluXCA7CivljZfkuqzoirHngasgPCBuYW5raW5oYW5hYmlcIDsKK+elnuisoembhiA8IHNoaW4nJ3lvdXNodXVcIDsKK+aJgeahg+iFuueCjiA8IGhlbnRvdXNlbicnZW5cIDsKK+S4reWkrumKgOihjCA8IGNodXVvdWdpbmtvdVwgOwor5Lih5qW156uvIDwgcnlvdWt5b2t1dGFuXCA7CivlnKfnuK7nqbrmsJcgPCBhc3NodWt1a3V1a2lcIDsKK+W4s+mdoumdoiA8IGNob3VtZW5kenVyYVwgOwor6KaL56mN5pu4IDwgbWl0c3Vtb3Jpc2hvXCA7CivnoJTliYrku6MgPCBrZW5zYWt1c2hpcm9cIDsKK+axuua4iOaJi+autSA8IGtlc3NhaXNodWRhblwgOwor5Luj55CG5qWt6ICFIDwgZGFpcmlneW91c2hhXCA7CivphY3nva7ou6Lmj5sgPCBoYWljaGl0ZW5rYW5cIDsKK+emgeayu+eUo+iAhSA8IGtpbmNoaXNhbnNoYVwgOwor5rS75YuV55qEIDwga2F0c3Vkb3V0ZWtpXCA7CivlhajouqvkuI3pmo8gPCB6ZW5zaGluZnV6dWlcIDsKK+aEm+S7luS4u+e+qeiAhSA8IGFpdGFzaHVnaXNoYVwgOwor5YWo6IO95YqbIDwgemVuJydub3VyeW9rdVwgOwor6YGL6Lui5oqA6KGTIDwgdW50ZW5naWp1dHN1XCA7Civpm7vlrZDpn7Pmpb0gPCBkZW5zaGlvbmdha3VcIDsKK+WNg+S4h+eEoemHjyA8IHNlbm1hbm11cnlvdVwgOwor6Ieq5q665bmH5YqpIDwgamlzYXRzdWhvdWpvXCA7Civku6PmlbDplqLmlbAgPCBkYWlzdXVrYW5zdXVcIDsKK+mfs+mfv+ioreioiCA8IG9ua3lvdXNla2tlaVwgOwor5Lmz5qeY56qB6LW3IDwgbnl1dXlvdXRva2tpXCA7CivkuovliY3libLlvZMgPCBqaXplbndhcmlhdGVcIDsKK+WFteW9ueWFjeeKtiA8IGhlaWVraW1lbmpvdVwgOwor5aSp5rav5a2k54usIDwgdGVuZ2Fpa29kb2t1XCA7CivkuI3mib/kuI3mib8gPCBmdXNob3VidXNob3VcIDsKK+eEoeaJgOWxnuePviA8IG11c2hvem9rdWdlblwgOwor5pyo6YCg5a625bGLIDwgbW9rdXpvdWthb2t1XCA7CivppIrogIHlubTph5EgPCB5b3Vyb3VuZW5raW5cIDsKK+S6i+WJjeeglOS/riA8IGppemVua2Vuc2h1dVwgOwor6aOf6IKJ6aGeIDwgc2hva3VuaWt1cnVpXCA7CivkvZPns7vmlofms5UgPCB0YWlrZWlidW5wb3VcIDsKK+iCuua0u+mHjyA8IGhhaWthdHN1cnlvdVwgOwor6ZuM6ZuE5ZCM5L2TIDwgc2hpeXV1ZG91dGFpXCA7CivplovnpajnjocgPCBrYWloeW91cml0c3VcIDsKK+W4uOitmOeahCA8IGpvdXNoaWtpdGVraVwgOwor5qeL6YCg5rGa6IG3IDwga291em91b3Nob2t1XCA7Civln7rnpI7nn6XorZggPCBraXNvY2hpc2hpa2lcIDsKK+WPjuWuueWKmyA8IHNodXV5b3VyeW9rdVwgOwor5Zyw5Z+f57Sb5LqJIDwgY2hpaWtpZnVuc291XCA7CivljZjls7Dpp7Hpp50gPCB0YW5wb3VyYWt1ZGFcIDsKK+ixoeW+tOeahCA8IHNob3VjaG91dGVraVwgOwor5Lq65rCX5ZWG5aOyIDwgbmlua2lzaG91YmFpXCA7CivljYPlp7/kuIfmhYsgPCBzZW5zaGliYW50YWlcIDsKK+WFrOacieiyoeeUoyA8IGtvdXl1dXphaXNhblwgOwor6Ieq5oWi6KmxIDwgamltYW5iYW5hc2hpXCA7Civmi5vlvoXlrqIgPCBzaG91dGFpa3lha3VcIDsKK+WFiOihjOaKleizhyA8IHNlbmtvdXRvdXNoaVwgOwor6KO96YCg5bel56iLIDwgc2Vpem91a291dGVpXCA7Civoh6rnlLHnq7bkuokgPCBqaXl1dWt5b3Vzb3VcIDsKK+W3nemtmuaWmeeQhiA8IGthd2F1b3J5b3VyaVwgOwor5Lqk6Z+/5puyIDwga291a3lvdWt5b2t1XCA7Civpm7vop6Pos6ogPCBkZW5rYWlzaGl0c3VcIDsKK+ePvuS7o+enkeWtpiA8IGdlbmRhaWthZ2FrdVwgOwor5bmz5bqV6Ii5IDwgaGlyYXNva29idW5lXCA7CivnlKPmpa3mqZ/morAgPCBzYW5neW91a2lrYWlcIDsKK+S4jeWQiOagvOiAhSA8IGZ1Z291a2FrdXNoYVwgOwor5pqR5Lit6KaL6IieIDwgc2hvY2h1dW1pbWFpXCA7CivoqpjlsI7lsIvllY8gPCB5dXVkb3VqaW5tb25cIDsKK+WwseS7u+W8jyA8IHNodXVuaW5zaGlraVwgOwor5Ya35YeN5a6kIDwgcmVpdG91c2hpdHN1XCA7CivnkaDnkoPllJDojYkgPCBydXJpa2FyYWt1c2FcIDsKK+WumuW9ouWLleipniA8IHRlaWtlaWRvdXNoaVwgOwor6YWN6Iaz5a6kIDwgaGFpemVuc2hpdHN1XCA7CivkurrplpPplqLkv4IgPCBuaW5nZW5rYW5rZWlcIDsKK+i1pOWNgeWtl+ekviA8IHNla2lqdXVqaXNoYVwgOwor5bqD5bO255yMIDwgaGlyb3NoaW1ha2VuXCA7CivmmqbmlLnmraMgPCBrb3lvbWlrYWlzZWlcIDsKK+eEoeeUo+majue0miA8IG11c2Fua2Fpa3l1dVwgOwor5b6z5bed5pa5IDwgdG9rdWdhd2FnYXRhXCA7Civlha3ms5Xlhajmm7ggPCByb3Bwb3V6ZW5zaG9cIDsKK+mbhuaoqeaOkumZpCA8IHNodXVrZW5oYWlqb1wgOwor5Zu96Zqb5Lya6K2wIDwga29rdXNhaWthaWdpXCA7CivlhZDnq6XmloflraYgPCBqaWRvdWJ1bmdha3VcIDsKK+i7jeS6i+enmOWvhiA8IGd1bmppaGltaXRzdVwgOwor5Luu5YWl5a2mIDwga2FyaW55dXVnYWt1XCA7Civku7vmhI/lh7rpoK0gPCBuaW4nJ2lzaHV0dG91XCA7Civku5jpmo/nj77osaEgPCBmdXp1aWdlbnNob3VcIDsKK+WOn+W9ouizqiA8IGdlbmtlaXNoaXRzdVwgOwor5ZSH5q2v6LyU6LuKIDwgc2hpbnNoaWhvc2hhXCA7Civljp/lm6Doqr/mn7sgPCBnZW4nJ2luY2hvdXNhXCA7Civmi4XlvZPpg6jplbcgPCB0YW50b3VidWNob3VcIDsKK+S4u+S7u+aVmeaOiCA8IHNodW5pbmt5b3VqdVwgOwor6LuN5YKZ5YmK5ribIDwgZ3VuYmlzYWt1Z2VuXCA7Civlhazplovoo4HliKQgPCBrb3VrYWlzYWliYW5cIDsKK+WIhuino+S/rueQhiA8IGJ1bmthaXNodXVyaVwgOwor55m+6Iqx5paJ5pS+IDwgaHlha2thc2VpaG91XCA7Civpu5LoibLohasgPCBrb2t1c2hva3VzaHVcIDsKK+S6uumAoOecn+ePoCA8IGppbnpvdXNoaW5qdVwgOwor5Y2S5qWt55SfIDwgc290c3VneW91c2VpXCA7CivnpZ7ntYzpgY7mlY8gPCBzaGlua2Vpa2FiaW5cIDsKK+mAgemHkeeCuuabvyA8IHNvdWtpbmthd2FzZVwgOwor5Zue5b6p5YqbIDwga2FpZnVrdXJ5b2t1XCA7CivljrPmraPnp5HlraYgPCBnZW5zZWlrYWdha3VcIDsKK+WFpeS8muW8jyA8IG55dXVrYWlzaGlraVwgOwor5Y+45rOV5pu45aOrIDwgc2hpaG91c2hvc2hpXCA7CivlnKjlpJbos4fnlKMgPCB6YWlnYWlzaGlzYW5cIDsKK+azleW+i+mBleWPjSA8IGhvdXJpdHN1aWhhblwgOwor5ZCR5b+D5YqbIDwga291c2hpbnJ5b2t1XCA7CivnjonomavoibIgPCB0YW1hbXVzaGlpcm9cIDsKK+eJueWIpeWPtyA8IHRva3ViZXRzdWdvdVwgOwor6YCy6Lev5oyH5bCOIDwgc2hpbnJvc2hpZG91XCA7CivkuojlgpnljZTntIQgPCB5b2Jpa3lvdXlha3VcIDsKK+iEseavm+eXhyA8IGRhdHN1bW91c2hvdVwgOwor5aeL55CD5byPIDwgc2hpa3l1dXNoaWtpXCA7CivmlZnogrLnjqnlhbcgPCBreW91aWt1Z2FuZ3VcIDsKK+aWh+azleimj+WJhyA8IGJ1bnBvdWtpc29rdVwgOwor5L2V6Imy5pCoIDwgbmFuc2hva3V6dXJpXCA7CivlrozkuobmmYLliLYgPCBrYW5yeW91amlzZWlcIDsKK+S/oeiol+alrSA8IHNoaW50YWt1Z3lvdVwgOwor5LqL5a6f6Kqk6KqNIDwgamlqaXRzdWdvbmluXCA7Civou43pnIDnlKPmpa0gPCBndW5qdXNhbmd5b3VcIDsKK+Wcn+eFmSA8IHRzdWNoaWtlbXVyaVwgOwor5YO75qC55oCnIDwgaGlnYW1pa29uam91XCA7CivlparkuInmjK8gPCBkYXRzdXNhbnNoaW5cIDsKK+mJhOeBq+S4vCA8IHRla2thZG9uYnVyaVwgOwor6Ieq54S256eR5a2mIDwgc2hpemVua2FnYWt1XCA7CivlpKfnpo/ppIUgPCBkYWlmdWt1bW9jaGlcIDsKK+atpuiAheS/ruihjCA8IG11c2hhc2h1Z3lvdVwgOwor5L6155Wl6LuNIDwgc2hpbnJ5YWt1Z3VuXCA7CivnlJ/miJDmlofms5UgPCBzZWlzZWlidW5wb3VcIDsKK+WPjeeJqeizqiA8IGhhbmJ1c3NoaXRzdVwgOwor5Y+45rOV5aSn6IejIDwgc2hpaG91ZGFpamluXCA7CivkuLvmhI/kuLvnvqnogIUgPCBzaHVpc2h1Z2lzaGFcIDsKK+WItueQg+WKmyA8IHNlaWt5dXVyeW9rdVwgOwor5b6h55So5ZWG5Lq6IDwgZ295b3VzaG91bmluXCA7Civkvb/lvpLkv6HmnaEgPCBzaGl0b3NoaW5qb3VcIDsKK+iovOaLoOeJqeS7tiA8IHNob3Vrb2J1a2tlblwgOwor6Zm455Sj54mpIDwgcmlrdXNhbmJ1dHN1XCA7Civkuojlgpnnn6XorZggPCB5b2JpY2hpc2hpa2lcIDsKK+WQiOWQjeS8muekviA8IGdvdW1laWdhaXNoYVwgOwor5YWx5ZCM5LiA6Ie0IDwga3lvdWRvdWl0Y2hpXCA7CivmrablipvmlL/msrsgPCBidXJ5b2t1c2VpamlcIDsKK+i7jOmBk+S/ruatoyA8IGtpZG91c2h1dXNlaVwgOwor6L6y5L2c54mpIDwgbm91c2FrdWJ1dHN1XCA7Civmub7lsrjmiKbkuokgPCB3YW5nYW5zZW5zb3VcIDsKK+WQiOagvOeliOmhmCA8IGdvdWtha3VraWdhblwgOwor5YyW5a2m6IKl5paZIDwga2FnYWt1aGlyeW91XCA7Civnq5zoiIzomK0gPCByeXV1emV0c3VyYW5cIDsKK+eLrOijgeWbveWutiA8IGRva3VzYWlrb2trYVwgOwor5L2O5Yip6YeR6J6NIDwgdGVpcmlraW4nJ3l1dVwgOwor5Za25qWt55WRIDwgZWlneW91YmF0YWtlXCA7CivlnJ/poZ7ph5HlsZ4gPCBkb3J1aWtpbnpva3VcIDsKK+iCiemjn+eNoyA8IG5pa3VzaG9rdWp1dVwgOwor5YWx5ZKM5pS/5L2TIDwga3lvdXdhc2VpdGFpXCA7Civms5XlvovlraYgPCBob3VyaXRzdWdha3VcIDsKK+azleW7t+mXmOS6iSA8IGhvdXRlaXRvdXNvdVwgOwor5YaN55Sf6KOF572uIDwgc2Fpc2Vpc291Y2hpXCA7CivmlrDnmbrmmI4gPCBzaGluaGF0c3VtZWlcIDsKK+WMl+aWuemgmOWcnyA8IGhvcHBvdXJ5b3Vkb1wgOwor6YCX55WZ5a6iIDwgdG91cnl1dWt5YWt1XCA7Civlhajlu4Poq5bogIUgPCB6ZW5wYWlyb25zaGFcIDsKK+e0r+mAsuiqsueojiA8IHJ1aXNoaW5rYXplaVwgOwor5Zu96Ziy5Lya6K2wIDwga29rdWJvdWthaWdpXCA7CivlvrPls7bnnIwgPCB0b2t1c2hpbWFrZW5cIDsKK+S6jOeZvuWNgeaXpSA8IG5paHlha3V0b29rYVwgOwor5LqL5YmN6YCa5aCxIDwgaml6ZW50c3V1aG91XCA7CivnpL7kvJrmhI/orZggPCBzaGFrYWlpc2hpa2lcIDsKK+aPtOWKqeWHjee1kCA8IGVuam90b3VrZXRzdVwgOwor5riF5rC05a+6IDwga2l5b21penVkZXJhXCA7CivlronlhajnrKzkuIAgPCBhbnplbmRhaWljaGlcIDsKK+WAi+S6uuaUu+aSgyA8IGtvamlua291Z2VraVwgOwor5oKq5oiv5Z2K5Li7IDwgaXRhenVyYWJvdXp1XCA7CivpgYrli5XlhobmnKggPCB5dXVkb3VlbmJva3VcIDsKK+WGhuW9ouWKh+WgtCA8IGVua2VpZ2VraWpvdVwgOwor54ax5a656YePIDwgbmV0c3V5b3VyeW91XCA7CivmlofnrYbmpa0gPCBidW5waXRzdWd5b3VcIDsKK+iKreiVieaituacqCA8IGJhc2hvdWthamlraVwgOwor6ISz5Ye66KGAIDwgbm91c2h1a2tldHN1XCA7CivpnLLlh7rnl4cgPCByb3NodXRzdXNob3VcIDsKK+mrmOi2s+ifuSA8IHRha2Fhc2hpZ2FuaVwgOwor5oOF5aCx56eR5a2mIDwgam91aG91a2FnYWt1XCA7Civnp4HlqLznqp8gPCBzaGlzaG91a3V0c3VcIDsKK+WCt+Wus+S/nemZuiA8IHNob3VnYWlob2tlblwgOwor56C055Sj5a6j5ZGKIDwgaGFzYW5zZW5rb2t1XCA7Civnmannl4XmgqPogIUgPCByYWlieW91a2FuamFcIDsKK+m7kuiJsueZjCA8IGtva3VzaG9rdWdhblwgOwor5Zug5a2Q5YiG5p6QIDwgaW5zaGlidW5zZWtpXCA7CivosqfooYDnl4cgPCBoaW5rZXRzdXNob3VcIDsKK+iqjeitmOelqCA8IG5pbnNoaWtpaHlvdVwgOwor5b6F5ZCI5pS/5rK7IDwgbWFjaGlhaXNlaWppXCA7CivmnKvms5XmgJ3mg7MgPCBtYXBwb3VzaGlzb3VcIDsKK+iIque2muaZgumWkyA8IGtvdXpva3VqaWthblwgOwor5bCC5aOy54m56KixIDwgc2VuYmFpdG9ra3lvXCA7CivlkIznqK7lkIzmlocgPCBkb3VzaHVkb3VidW5cIDsKK+mJhOmBk+S6i+aVhSA8IHRldHN1ZG91amlrb1wgOwor55yf55CG6Zai5pWwIDwgc2hpbnJpa2Fuc3V1XCA7Civnlqvnl4XnpZ4gPCB5YWt1YnlvdWdhbWlcIDsKK+mcsuWHuueLgiA8IHJvc2h1dHN1a3lvdVwgOwor5a2Q5a2Q5a2r5a2rIDwgc2hpc2hpc29uc29uXCA7CivlhavkuIjls7YgPCBoYWNoaWpvdWppbWFcIDsKK+mZjeelnuihkyA8IGtvdXNoaW5qdXRzdVwgOwor6Iux5Zu955+z5rK5IDwgZWlrb2t1c2VraXl1XCA7Civkv53orbfoprPlr58gPCBob2dva2Fuc2F0c3VcIDsKK+enmOWvhuWFteWZqCA8IGhpbWl0c3VoZWlraVwgOwor6YO15L6/6LKv6YeRIDwgeXV1YmluY2hva2luXCA7Civlk7LlrabogIUgPCB0ZXRzdWdha3VzaGFcIDsKK+S6jOmHjeS6uuagvCA8IG5panV1amlua2FrdVwgOwor55m96KGj5piO5aaDIDwgYnlha3VlbXlvdWhpXCA7CivnlJ/kvZPop6PliZYgPCBzZWl0YWlrYWlib3VcIDsKK+eIqyA8IHRzdW1la2FubXVyaVwgOwor5Yqb5LiA5p2vIDwgY2hpa2FyYWlwcGFpXCA7Civlh7rlk4HniakgPCBzaHVwcGluYnV0c3VcIDsKK+eri+WkquWtkOekvCA8IHJpdHRhaXNoaXJlaVwgOwor5a6f6Zqb5ZWP6aGMIDwgamlzc2FpbW9uZGFpXCA7Civlhazou6LpgJ/luqYgPCBrb3V0ZW5zb2t1ZG9cIDsKK+S4gOefs+S6jOmzpSA8IGlzc2VraW5pY2hvdVwgOwor5pWZ6IKy6Kqy56iLIDwga3lvdWlrdWthdGVpXCA7Civkurrku6PlkI3oqZ4gPCBqaW5kYWltZWlzaGlcIDsKK+asoemFuOWMlueCree0oCA8IGppc2Fua2F0YW5zb1wgOwor54Gw55m96ImyIDwga2FpaGFrdXNob2t1XCA7Civni6zlsYXlrqQgPCBkb2treW9zaGl0c3VcIDsKK+WEqueUn+e1kOWpmiA8IHl1dXNlaWtla2tvblwgOwor5Y+j6aCt6Kmm5ZWPIDwga291dG91c2hpbW9uXCA7CivkuqTpgJrlronlhaggPCBrb3V0c3V1YW56ZW5cIDsKK+aOpeW+heS/giA8IHNldHRhaWdha2FyaVwgOwor5LiH5bm06ZuqIDwgbWFuJyduZW4nJ3l1a2lcIDsKK+eLguaDs+absiA8IGt5b3Vzb3VreW9rdVwgOwor5ZKM5paH6Iux6KizIDwgd2FidW4nJ2VpeWFrdVwgOwor5pys5a625pys5YWDIDwgaG9ua2Vob25tb3RvXCA7Civnm7Lnm67po5vooYwgPCBtb3Vtb2t1aGlrb3VcIDsKK+a7nuepuuiomOmMsiA8IHRhaWt1dWtpcm9rdVwgOwor56uL5L2T6KOB5patIDwgcml0dGFpc2FpZGFuXCA7Civlm73lhoXkuovmg4UgPCBrb2t1bmFpamlqb3VcIDsKK+S+teeVpeiAhSA8IHNoaW5yeWFrdXNoYVwgOwor5o6l6Kem5LqL5pWFIDwgc2Vzc2hva3VqaWtvXCA7CivnlLrlvbnkurogPCBtYWNoaXlha3VuaW5cIDsKK+S5vueHpeiFkOacvSA8IGthbnNvdWZ1a3l1dVwgOwor6Jqw6JyS55yJIDwgZ2VqaWdlamltYXl1XCA7CivlkIjos4fkvJrnpL4gPCBnb3VzaGlnYWlzaGFcIDsKK+W9q+WIu+WFt+W6pyA8IGNob3Vrb2t1Z3V6YVwgOwor5rK75a6J57at5oyB5rOVIDwgY2hpYW4nJ2lqaWhvdVwgOwor5a2m57+S5aG+IDwgZ2FrdXNodXVqdWt1XCA7CivmiLjlpJbmkq7lvbEgPCBrb2dhaXNhdHN1ZWlcIDsKK+W/nOaApeS/rueQhiA8IG91a3l1dXNodXVyaVwgOwor6bq76YWU5rOo5bCEIDwgbWFzdWljaHV1c2hhXCA7CivmnKvnq6/kvqHmoLwgPCBtYXR0YW5rYWtha3VcIDsKK+WBtuWDj+W0h+aLnSA8IGd1dXpvdXN1dWhhaVwgOwor5pmu6YCa5YiX6LuKIDwgZnV0c3V1cmVzc2hhXCA7CivmlrDnmbrlo7IgPCBzaGluaGF0c3ViYWlcIDsKK+WSjOW5s+S6pOa4iSA8IHdhaGVpa291c2hvdVwgOwor56u25LqJ5YqbIDwga3lvdXNvdXJ5b2t1XCA7CivlvqrnkrDoq5bms5UgPCBqdW5rYW5yb25wb3VcIDsKK+WkseWQjeawjyA8IHNoaXRzdW1laXNoaVwgOwor6KGo5bqn5pW3IDwgb21vdGV6YXNoaWtpXCA7Civpo73po5/mmpbooaMgPCBob3VzaG9rdWRhbmlcIDsKK+apn+aisOW3pealrSA8IGtpa2Fpa291Z3lvdVwgOwor54Sh6ZmQ6ZuG5ZCIIDwgbXVnZW5zaHV1Z291XCA7CivlvrTnmbrku6QgPCBjaG91aGF0c3VyZWlcIDsKK+acieS+oeiovOWIuCA8IHl1dWthc2hvdWtlblwgOwor5oeQ6YqtIDwgZnV0b2tvcm96ZW5pXCA7CivkupXmiLjnq6/kvJrorbAgPCBpZG9iYXRha2FpZ2lcIDsKK+WJr+WPjuWFpSA8IGZ1a3VzaHV1bnl1dVwgOwor5oGQ5Zad572qIDwga3lvdWthdHN1emFpXCA7CivlsYjmipjou7ggPCBrdXNzZXRzdWppa3VcIDsKK+WQiOWIh+iiiyA8IGdhc3NhaWJ1a3Vyb1wgOwor5raI5oGv6YCaIDwgc2hvdXNva3V0c3V1XCA7Civnt4/ntbHpgbjmjJkgPCBzb3V0b3VzZW5reW9cIDsKK+agquS4u+aoqSA8IGthYnVudXNoaWtlblwgOwor5Lq65rCX5b256ICFIDwgbmlua2l5YWt1c2hhXCA7CivluILlhoXpgJroqbEgPCBzaGluYWl0c3V1d2FcIDsKK+WNoOacieeOhyA8IHNlbicneXV1cml0c3VcIDsKK+WNl+S6rOiiiyA8IG5hbmtpbmJ1a3Vyb1wgOwor6auY6auY5oyHIDwgdGFrYXRha2F5dWJpXCA7Civnmb3oibLlhYkgPCBoYWt1c2hva3Vrb3VcIDsKK+S4gOetiemZuOWjqyA8IGl0dG91cmlrdXNoaVwgOwor6Kyb5ZKM5p2h57SEIDwga291d2Fqb3V5YWt1XCA7Civlt6Xmpa3pg73luIIgPCBrb3VneW91dG9zaGlcIDsKK+WNk+S4iumbu+ipsSA8IHRha3Vqb3VkZW53YVwgOwor5a6i6Kaz5Li7576pIDwga3lha2thbnNodWdpXCA7CivlhbHlkIzorIDorbAgPCBreW91ZG91Ym91Z2lcIDsKK+izvOiyt+e1hOWQiCA8IGtvdWJhaWt1bWlhaVwgOwor6KuL6LKg5LuV5LqLIDwgdWtlb2lzaGlnb3RvXCA7Civpi7jprqsgPCBub2tvZ2lyaXphbWVcIDsKK+mbh+eUqOWlkee0hCA8IGtveW91a2VpeWFrdVwgOwor5b2T5oSP5Y2z5aaZIDwgdG91aXNva3VteW91XCA7Civml6XnsbPljZQgPCBuaWNoaWJlaWt5b3VcIDsKK+WKtOWDjeW4guWgtCA8IHJvdWRvdXNoaWpvdVwgOwor5aOr5a6Y5a2m5qChIDwgc2hpa2FuZ2Fra291XCA7CivlkI3oqonkvJrplbcgPCBtZWl5b2thaWNob3VcIDsKK+W6puaVsOWIhuW4g+WbsyA8IGRvc3V1YnVucHV6dVwgOwor5bGI5oqY6KeSIDwga3Vzc2V0c3VrYWt1XCA7CivmrrrkurrnmoQgPCBzYXRzdWppbnRla2lcIDsKK+W5s+Wdh+e1puS4jiA8IGhlaWtpbmt5dXV5b1wgOwor5bem5Zuj5omHIDwgaGlkYXJpdWNoaXdhXCA7CivpmLLlobXlrqQgPCBib3VqaW5zaGl0c3VcIDsKK+Wwj+S+v+Wwj+WDpyA8IHNob3ViZW5rb3pvdVwgOwor5Zyf5Z+DIDwgdHN1Y2hpYm9rb3JpXCA7CivkurrmqKnouYLouqogPCBqaW5rZW5qdXVyaW5cIDsKK+Wcp+e4rumFuOe0oCA8IGFzc2h1a3VzYW5zb1wgOwor5ZCr5pyJ546HIDwgZ2FuJyd5dXVyaXRzdVwgOwor5bm05qyh5aCx5ZGKIDwgbmVuamlob3Vrb2t1XCA7CivohIjmkI/mlbAgPCBteWFrdWhha3VzdXVcIDsKK+mDteS+v+eVquWPtyA8IHl1dWJpbmJhbmdvdVwgOwor5o6o6YCy5YqbIDwgc3Vpc2hpbnJ5b2t1XCA7Civogb7moZ/mlbcgPCB0c3VuYm9zYWppa2lcIDsKK+ioiOeul+WVj+mhjCA8IGtlaXNhbm1vbmRhaVwgOwor57eP5ZCI6ZuR6KqMIDwgc291Z291emFzc2hpXCA7CivnuK7nt6znmrogPCBjaGlyaW1lbmppd2FcIDsKK+Wcn+WcsOWPjueUqCA8IHRvY2hpc2h1dXlvdVwgOwor5bqD5ZGK5Yq55p6cIDwga291a29rdWtvdWthXCA7Civmrrrkurrni4IgPCBzYXRzdWppbmt5b3VcIDsKK+i8uOWHuuWFpSA8IHl1c2h1dHN1bnl1dVwgOwor5bm85YWQ5pWZ6IKyIDwgeW91amlreW91aWt1XCA7Civov5HmiYDov7fmg5EgPCBraW5qb21laXdha3VcIDsKK+ims+WuouW4rSA8IGthbmt5YWt1c2VraVwgOwor54Sh6ZmQ57Sa5pWwIDwgbXVnZW5reXV1c3V1XCA7CivkuIDliLvljYPph5EgPCBpa2tva3VzZW5raW5cIDsKK+mZquWvqeWItuW6piA8IGJhaXNoaW5zZWlkb1wgOwor57eo6ZuG5qmf6IO9IDwgaGVuc2h1dWtpbm91XCA7CivlhYjlj5bnibnmqKkgPCBzZW5zaHV0b2trZW5cIDsKK+WwgumWgOWIhumHjiA8IHNlbm1vbmJ1bicneWFcIDsKK+W/hCA8IHJpdHN1c2hpbmJlblwgOwor5ZG95Yal5YqgIDwgaW5vY2hpbXlvdWdhXCA7Civmi4XlrZDoj4zpoZ4gPCB0YW5zaGlraW5ydWlcIDsKK+mWouS/guW8t+WMliA8IGthbmtlaWt5b3VrYVwgOwor5qOu5p6X5rW0IDwgc2hpbnJpbicneW9rdVwgOwor5pS75pKD6YOo6ZqKIDwga291Z2VraWJ1dGFpXCA7Civnp5jlr4bkvJrorbAgPCBoaW1pdHN1a2FpZ2lcIDsKK+iHquWLlei7iuS6i+aVhSA8IGppZG91c2hhamlrb1wgOwor5raI6Z+z6KOF572uIDwgc2hvdW9uc291Y2hpXCA7CivmuoDlt57kuovlpIkgPCBtYW5zaHV1amloZW5cIDsKK+eIhueZuueuoSA8IGJha3VoYXRzdWthblwgOwor6LOH55Sj6KmV5L6hIDwgc2hpc2FuaHlvdWthXCA7Civlh7rniYjoqLHlj68gPCBzaHVwcGFua3lva2FcIDsKK+m7kuWFq+S4iCA8IGt1cm9oYWNoaWpvdVwgOwor5Zu95YaF6ZyA6KaBIDwga29rdW5haWp1eW91XCA7CivljYrouqvmtbQgPCBoYW5zaGluJyd5b2t1XCA7CivljYPkuIfplbfogIUgPCBzZW5iYW5jaG91amFcIDsKK+WMluWtpuippumokyA8IGthZ2FrdXNoaWtlblwgOwor57Sw6IOe5Z+56aSKIDwgc2FpYm91YmFpeW91XCA7Civpn7Ppn7vntYTnuZQgPCBvbicnaW5zb3NoaWtpXCA7CivluqfmqJnlpInmj5sgPCB6YWh5b3VoZW5rYW5cIDsKK+apn+aisOW3peWtpiA8IGtpa2Fpa291Z2FrdVwgOwor56ys5LiJ6YOo6ZW3IDwgZGFpc2FuYnVjaG91XCA7CivlpYflsqnmgKrnn7MgPCBraWdhbmthaXNla2lcIDsKK+iAkOmiqOani+mAoCA8IHRhaWZ1dWtvdXpvdVwgOwor5pqX57eR6ImyIDwgYW5yeW9rdXNob2t1XCA7Civnn7Ppubjlt6XloLQgPCBzZWtrZW5rb3Vqb3VcIDsKK+WcqOmDt+i7jeS6uiA8IHphaWdvdWd1bmppblwgOwor5bm96ZyK5Lya56S+IDwgeXV1cmVpZ2Fpc2hhXCA7CivnkrDlooPnoLTlo4ogPCBrYW5reW91aGFrYWlcIDsKK+Wbvemam+S4u+e+qSA8IGtva3VzYWlzaHVnaVwgOwor5b6h56+A5paZ55CGIDwgb3NlY2hpcnlvdXJpXCA7CivnrYvogonnl5sgPCBraW4nJ25pa3V0c3V1XCA7Civkv67nkIblt6XloLQgPCBzaHV1cmlrb3Vqb3VcIDsKK+iBt+iDvee1piA8IHNob2t1bm91a3l1dVwgOwor5paw55Sf54mpIDwgc2hpbnNlaWJ1dHN1XCA7Civlh4zpnIToirEgPCBub3V6ZW5rYXp1cmFcIDsKK+m7kuiJsuWwiSA8IGtva3VzaGlraWpvdVwgOwor6JuN6KKLIDwgaG90YXJ1YnVrdXJvXCA7CivlgbbnmbrnmoQgPCBndXVoYXRzdXRla2lcIDsKK+aLkuWQpuWPjeW/nCA8IGt5b2hpaGFuJydub3VcIDsKK+eJueeUo+eJqSA8IHRva3VzYW5idXRzdVwgOwor5LiA6KiA5LiA5Y+lIDwgaWNoaWdvbicnaWtrdVwgOwor5Y2Y54us6aOb6KGMIDwgdGFuZG9rdWhpa291XCA7CivkuLvmqKnlnKjmsJEgPCBzaHVrZW56YWltaW5cIDsKK+WMlueyp+WupCA8IGtlc2hvdXNoaXRzdVwgOwor57eP5pSv5Ye6IDwgc291c2hpc2h1dHN1XCA7CivkurrmoLzkuLvnvqkgPCBqaW5rYWt1c2h1Z2lcIDsKK+iHquauuuacqumBgiA8IGppc2F0c3VtaXN1aVwgOwor5Ye65a626YGB5LiWIDwgc2h1a2tldG9uc2VpXCA7Civlk7Llrabmm7ggPCB0ZXRzdWdha3VzaG9cIDsKK+WNmueJqemkqCA8IGhha3VidXRzdWthblwgOwor57SQ6Z2p6aWC6aOpIDwgaGltb2thd2F1ZG9uXCA7CivmhJrmsJHmlL/nrZYgPCBndW1pbnNlaXNha3VcIDsKK+WNmOenkeWkp+WtpiA8IHRhbmthZGFpZ2FrdVwgOwor6YGp5q2j5Yip5r2kIDwgdGVraXNlaXJpanVuXCA7Civnmbrpn7PoqJjlj7cgPCBoYXRzdW9ua2lnb3VcIDsKK+i7jeS6i+WNlOWumiA8IGd1bmppa3lvdXRlaVwgOwor6L6y5Zyw5aeU5ZOh5LyaIDwgbm91Y2hpaWlua2FpXCA7Civku7Lku4vniakgPCBjaHV1a2FpYnV0c3VcIDsKK+ilv+mrmOadseS9jiA8IHNlaWtvdXRvdXRlaVwgOwor5pCN6ICX5Lq65ZOhIDwgc29ubW91amluJydpblwgOwor55m96aCt6beyIDwgaGFrdXRvdXdhc2hpXCA7Civlrp/li6LkvqHmoLwgPCBqaXNzZWlrYWtha3VcIDsKK+aPtOeUqOioreioiCA8IGVuJyd5b3VzZWtrZWlcIDsKK+ePvuWgtOS4ree2mSA8IGdlbmJhY2h1dWtlaVwgOwor5pyA5paw5byPIDwgc2Fpc2hpbnNoaWtpXCA7CivlsbHoupHouoUgPCB5YW1hdHN1dHN1amlcIDsKK+aEn+efpeijhee9riA8IGthbmNoaXNvdWNoaVwgOwor6K2w5rG65qmf6ZaiIDwgZ2lrZXRzdWtpa2FuXCA7CivnnIHpm7vlipsgPCBzaG91ZGVucnlva3VcIDsKK+WuieW/g+eri+WRvSA8IGFuamlucnlvdW1laVwgOwor5ZCI5ZCM5LqL5qWtIDwgZ291ZG91amlneW91XCA7CivlkIzmnJ/kv6Hlj7cgPCBkb3VraXNoaW5nb3VcIDsKK+S7sumWk+aEj+itmCA8IG5ha2FtYWlzaGlraVwgOwor5aqS5LuL5aSJ5pWwIDwgYmFpa2FpaGVuc3V1XCA7Civlr5LkuK3msLTms7MgPCBrYW5jaHV1c3VpZWlcIDsKK+S4gOWMueeLvCA8IGlwcGlraW9va2FtaVwgOwor6KKr5L+d6Zm654mpIDwgaGlob2tlbmJ1dHN1XCA7Civmtojmga/nrYsgPCBzaG91c29rdXN1amlcIDsKK+aHkOe0mSA8IGZ1dG9rb3JvZ2FtaVwgOwor5pqX5q665LqL5Lu2IDwgYW5zYXRzdWppa2VuXCA7CivmipjoobfkuLvnvqkgPCBzZXRjaHV1c2h1Z2lcIDsKK+WNmOW8j+ewv+iomCA8IHRhbnNoaWtpYm9raVwgOwor5pWZ6aSK6Kqy56iLIDwga3lvdXlvdWthdGVpXCA7CivkuIflubTnrYYgPCBtYW4nJ25lbmhpdHN1XCA7CivkuInogIXkvJroq4cgPCBzYW5zaGFrYWlkYW5cIDsKK+mAo+iomOaKleelqCA8IHJlbmtpdG91aHlvdVwgOwor5b+D55CG54q25oWLIDwgc2hpbnJpam91dGFpXCA7Civku4flkIzmsI8gPCBrYXRha2lkb3VzaGlcIDsKK+a1t+WkluW4guWgtCA8IGthaWdhaXNoaWpvdVwgOwor5pei5oiQ5LqL5a6fIDwga2lzZWlqaWppdHN1XCA7Civkuovli5nnt4/lsYAgPCBqaW11c291a3lva3VcIDsKK+WJjemAsuWfuuWcsCA8IHplbnNoaW5raWNoaVwgOwor5ZCM5bel55Ww5puyIDwgZG91a291aWt5b2t1XCA7Civlkb3poYzplqLmlbAgPCBtZWlkYWlrYW5zdXVcIDsKK+WMl+ilv+iIqui3ryA8IGhva3VzZWlrb3Vyb1wgOwor5bGA5Zyw55qEIDwga3lva3VjaGl0ZWtpXCA7CivlkIjlkIzkvJrlkIggPCBnb3Vkb3VrYWlnb3VcIDsKK+eri+WcsOadoeS7tiA8IHJpdGNoaWpvdWtlblwgOwor6Z2p5omL6KKLIDwga2F3YXRlYnVrdXJvXCA7CivlnLDnkIblrabogIUgPCBjaGlyaWdha3VzaGFcIDsKK+Wkp+aJgOmrmOaJgCA8IHRhaXNob2tvdXNob1wgOwor6YeN6KSH5L+d6Zm6IDwganV1ZnVrdWhva2VuXCA7CivpgJrluLjlhbXlmaggPCB0c3V1am91aGVpa2lcIDsKK+WkluWbvemDqOmaiiA8IGdhaWtva3VidXRhaVwgOwor5paH5YyW5Lqk5rWBIDwgYnVua2Frb3VyeXV1XCA7CivkuIPliIboopYgPCBzaGljaGlidXNvZGVcIDsKK+W4guWklumAmuipsSA8IHNoaWdhaXRzdXV3YVwgOwor5q+b57Sw6KGA566hIDwgbW91c2Fpa2Vra2FuXCA7Civli5XmhYvntbHoqIggPCBkb3V0YWl0b3VrZWlcIDsKK+ekvuWGheaDheWgsSA8IHNoYW5haWpvdWhvdVwgOwor5Lit5YWs5paH5bqrIDwgY2h1dWtvdWJ1bmtvXCA7CivlnKfpm7vlirnmnpwgPCBhdHN1ZGVua291a2FcIDsKK+mtkemthemtjemtjiA8IGNoaW1pbW91cnlvdVwgOwor5b6q55Kw57O757WxIDwganVua2Fua2VpdG91XCA7Civnp4HpgZQgPCB3YXRhc2hpdGFjaGlcIDsKK+WvvuS6uumWouS/giA8IHRhaWppbmthbmtlaVwgOwor5pmu6YCa6YG45oyZIDwgZnV0c3V1c2Vua3lvXCA7Civlv4PpnIrooZMgPCBzaGlucmVpanV0c3VcIDsKK+adoeS7tumXmOS6iSA8IGpvdWtlbnRvdXNvdVwgOwor5p2+56u55qKFIDwgc2hvdWNoaWt1YmFpXCA7CivljYPnirbkuIfmhYsgPCBzZW5qb3ViYW50YWlcIDsKK+aguOmWi+eZuiA8IGtha3VrYWloYXRzdVwgOwor5YyW5oiQ5bel5qWtIDwga2FzZWlrb3VneW91XCA7CivntYzmuIjljp/oq5YgPCBrZWl6YWlnZW5yb25cIDsKK+aoqeisgOihk+aVsCA8IGtlbmJvdWp1c3N1dVwgOwor5LiN5o+u55m65oCnIDwgZnVraWhhdHN1c2VpXCA7Civpq5jnrYnlrabmoKEgPCBrb3V0b3VnYWtrb3VcIDsKK+mAo+WQiOeOi+WbvSA8IHJlbmdvdW91a29rdVwgOwor5Zu96Zqb6ImyIDwga29rdXNhaXNob2t1XCA7Civpg7Xkvr/mm7jnsKEgPCB5dXViaW5zaG9rYW5cIDsKK+WtkOS+m+W/gyA8IGtvZG9tb2dva29yb1wgOwor57K+56We5YqbIDwgc2Vpc2hpbnJ5b2t1XCA7Civmt7HorIDpgaDmha4gPCBzaGluYm91ZW5yeW9cIDsKK+S9j+awkemBi+WLlSA8IGp1dW1pbicndW5kb3VcIDsKK+azleaWh+WtpumDqCA8IGhvdWJ1bmdha3VidVwgOwor5pmu6YCa6YO15L6/IDwgZnV0c3V1eXV1YmluXCA7Civlho3nqoHlhaUgPCBzYWl0b3RzdW55dXVcIDsKK+WQm+S4u+aUv+S9kyA8IGt1bnNodXNlaXRhaVwgOwor55m65L+h5bGAIDwgaGFzc2hpbmt5b2t1XCA7CivlpKflkozlv4MgPCB5YW1hdG9nb2tvcm9cIDsKK+aNsuWcn+mHjeadpSA8IGtlbmRvY2hvdXJhaVwgOwor5aWz5aOw5ZCI5ZSxIDwgam9zZWlnYXNzaG91XCA7CivnsbPopb/miKbkuokgPCBiZWlzZWlzZW5zb3VcIDsKK+mrmOW6puaIkOmVtyA8IGtvdWRvc2VpY2hvdVwgOwor6Kq/5b6L5birIDwgY2hvdXJpdHN1c2hpXCA7Civkub7luIPmkanmk6YgPCBrYW5wdW1hc2F0c3VcIDsKK+S4reiPr+aAneaDsyA8IGNodXVrYXNoaXNvdVwgOwor6L6e6IG36aGYIDwgamlzaG9rdW5lZ2FpXCA7CivotIjkuI7oqLzmm7ggPCB6b3V5b3Nob3VzaG9cIDsKK+WCteWLmeS4jeWxpeihjCA8IHNhaW11ZnVyaWtvdVwgOwor5YWs6KGG6KGb55SfIDwga291c2h1dWVpc2VpXCA7CivmiYDmiYAgPCB0b2tvcm9kb2tvcm9cIDsKK+ekvuS8muenkeWtpiA8IHNoYWthaWthZ2FrdVwgOwor6L6y6Iq45YyW5a2mIDwgbm91Z2Vpa2FnYWt1XCA7CivkuqTpgJrmlbTnkIYgPCBrb3V0c3V1c2VpcmlcIDsKK+imquWvhuaEnyA8IHNoaW5taXRzdWthblwgOwor54m55q6K6YOo6ZqKIDwgdG9rdXNodWJ1dGFpXCA7CivnqpPpmpvml48gPCBtYWRvZ2l3YXpva3VcIDsKK+S6i+Wun+eEoeaguSA8IGppaml0c3VtdWtvblwgOwor5YaZ55yf6KGTIDwgc2hhc2hpbmp1dHN1XCA7CivlrZTpm4DlppnnjosgPCBrdWpha3VteW91b3VcIDsKK+iyoeeUo+WIhuS4jiA8IHphaXNhbmJ1bicneW9cIDsKK+mCpuWtl+aWsOiBniA8IGhvdWppc2hpbmJ1blwgOwor5qmf5YuV6KiI55S7IDwga2lkb3VrZWlrYWt1XCA7CivovLvlsITnhrEgPCBmdWt1c2hhbmV0c3VcIDsKK+WtpOeri+S4u+e+qSA8IGtvcml0c3VzaHVnaVwgOwor5L6b6L+w6ICFIDwga3lvdWp1dHN1c2hhXCA7CivmmI7msrvlpKnnmocgPCBtZWlqaXRlbicnbm91XCA7CivnhKbngrnot53pm6IgPCBzaG91dGVua3lvcmlcIDsKK+mbhuWQiOaZgumWkyA8IHNodXVnb3VqaWthblwgOwor5L2P5a6F5Zyw5Yy6IDwganV1dGFrdWNoaWt1XCA7CivlpJrop5Losr/mmJMgPCB0YWtha3Vib3Vla2lcIDsKK+mdnuWWq+eFmeiAhSA8IGhpa2l0c3VlbnNoYVwgOwor5raI5YyW5LiN6ImvIDwgc2hvdWthZnVyeW91XCA7CivnpZ7ntYznr4AgPCBzaGlua2Vpc2V0c3VcIDsKK+iInuWPsOeFp+aYjiA8IGJ1dGFpc2hvdW1laVwgOwor5LiN55Sf55Sj55qEIDwgZnVzZWlzYW50ZWtpXCA7CivniIbnmbrmgKcgPCBiYWt1aGF0c3VzZWlcIDsKK+mdnueUn+eUo+eahCA8IGhpc2Vpc2FudGVraVwgOwor5Yuf6ZuG5Lq65ZOhIDwgYm9zaHV1amluJydpblwgOwor5Y6f56i/55So57SZIDwgZ2Vua291eW91c2hpXCA7CivnhKHmhI/orZjnmoQgPCBtdWlzaGlraXRla2lcIDsKK+e3j+WPuOS7pOWumCA8IHNvdXNoaXJlaWthblwgOwor6K2y5rih5omA5b6XIDwgam91dG9zaG90b2t1XCA7Civlrabnq6Xkv53ogrIgPCBnYWt1ZG91aG9pa3VcIDsKK+acgOe1guWFteWZqCA8IHNhaXNodXVoZWlraVwgOwor5ruR6LWw6LuK6LyqIDwga2Fzc291c2hhcmluXCA7CivmnIjliIrpm5HoqowgPCBnZWtrYW56YXNzaGlcIDsKK+WCjeiLpeeEoeS6uiA8IGJvdWpha3VidWppblwgOwor5YWo5pel5Yi2IDwgemVuJyduaWNoaXNlaVwgOwor5Yuk5Yq05aWJ5LuVIDwga2lucm91aG91c2hpXCA7CivmgKfohbrmkZjpmaQgPCBzZWlzZW50ZWtpam9cIDsKK+a2iOavkuiWrCA8IHNob3Vkb2t1eWFrdVwgOwor5oay5rOV5pS55q2jIDwga2VucG91a2Fpc2VpXCA7CivooYzot6/nl4XogIUgPCBrb3Vyb2J5b3VzaGFcIDsKK+S4gOS6uuiKneWxhSA8IGhpdG9yaXNoaWJhaVwgOwor5YWx5ZCM6Ziy6KGbIDwga3lvdWRvdWJvdWVpXCA7Civpl5jlv5fmuoDmuoAgPCB0b3VzaGltYW5tYW5cIDsKK+W4guWLouiqv+afuyA8IHNoaXNlaWNob3VzYVwgOwor5Lya5Y6t6Luf6aqoIDwgZWVuJyduYW5rb3RzdVwgOwor6LuN55So5Zyw5ZuzIDwgZ3VuJyd5b3VjaGl6dVwgOwor5p2x5aWU6KW/6LWwIDwgdG91aG9uc2Vpc291XCA7CivpgZPlvrPlvosgPCBkb3V0b2t1cml0c3VcIDsKK+S6pOS7o+S9nOalrSA8IGtvdXRhaXNhZ3lvdVwgOwor5Zu96Ziy6ImyIDwga29rdWJvdXNob2t1XCA7Civml6XoqJjmloflraYgPCBuaWtraWJ1bmdha3VcIDsKK+e1guacq+irliA8IHNodXVtYXRzdXJvblwgOwor5pel57O757Gz5Lq6IDwgbmlra2VpYmVpamluXCA7CivlsIbou43ogbcgPCBzaG91Z3Vuc2hva3VcIDsKK+iHs+WFrOiHs+W5syA8IHNoaWtvdXNoaWhlaVwgOwor6Zai6YCj5Lya56S+IDwga2FucmVuZ2Fpc2hhXCA7CivkurrmqKnlrqPoqIAgPCBqaW5rZW5zZW5nZW5cIDsKK+S6uumAoOS6uumWkyA8IGppbnpvdW5pbmdlblwgOwor5YK+5pac5a626LODIDwga2Vpc2hheWFjaGluXCA7Civoh6rmsJHlhZrliYcgPCBqaW1pbnRvdXNva3VcIDsKK+WPjeW+qeiomOWPtyA8IGhhbnB1a3VraWdvdVwgOwor5pel5pys6Iiq56m6IDwgbmlwcG9ua291a3V1XCA7Civoi7HmiY3mlZnogrIgPCBlaXNhaWt5b3Vpa3VcIDsKK+iNieaciOa1gSA8IHNvdWdldHN1cnl1dVwgOwor5o6S5rC05p2h5Lu2IDwgaGFpc3Vpam91a2VuXCA7Civoi7Hlm73oiKrnqbogPCBlaWtva3Vrb3VrdXVcIDsKK+aYjui1pOiJsiA8IG1laXNla2lzaG9rdVwgOwor6Kej5rG6562WIDwga2Fpa2V0c3VzYWt1XCA7Civlj6PllIfoo4IgPCBrb3VzaGlucmV0c3VcIDsKK+S4g+iNieeypSA8IG5hbmFrdXNhZ2F5dVwgOwor5YmN5ZOo6aiO5YW1IDwgemVuc2hvdWtpaGVpXCA7CivmsLTntKDniIblvL4gPCBzdWlzb2Jha3VkYW5cIDsKK+a9hea8keeUqOawtCA8IGthbmdhaXlvdXN1aVwgOwor5ZWG5qWt5a2mIDwgc2hvdWd5b3VnYWt1XCA7Civlu7roqK3nnIEgPCBrZW5zZXRzdXNob3VcIDsKK+WIhuWIpeW/gyA8IGZ1bmJldHN1c2hpblwgOwor5bu66Kit55qEIDwga2Vuc2V0c3V0ZWtpXCA7Civph5Hpi7ggPCBrYW5lbm9rb2dpcmlcIDsKK+S6jOe/u+W9uSA8IHJ5YW5mYW4nJ3lha3VcIDsKK+S4gOaWieWwhOaSgyA8IGlzc2Vpc2hhZ2VraVwgOwor5LiA6YW45YyW54Kt57SgIDwgaXNzYW5rYXRhbnNvXCA7Civln7rou7jpgJrosqggPCBraWppa3V0c3V1a2FcIDsKK+WCvuaWnOeUn+eUoyA8IGtlaXNoYXNlaXNhblwgOwor5aKD55WM55CG6KuWIDwga3lvdWthaXJpcm9uXCA7CivlpKnnmofpmZvkuIsgPCB0ZW4nJ25vdWhlaWthXCA7CivlpKnnhLbmnpzmsYEgPCB0ZW4nJ25lbmthanV1XCA7Civlj6Pmi43lrZAgPCBrdWNoaWJ5b3VzaGlcIDsKK+mciuiCieS4gOiHtCA8IHJlaW5pa3VpdGNoaVwgOwor5LuY5Yqg5L6h5YCk56iOIDwgZnVrYWthY2hpemVpXCA7CivntYzmuIjlvqnoiIggPCBrZWl6YWlmdWtrb3VcIDsKK+S6uuWPo+e1seioiCA8IGppbmtvdXRvdWtlaVwgOwor5oim5pmC55Sj5qWtIDwgc2VuamlzYW5neW91XCA7Civlj6Tpiq3lrabogIUgPCBrb3Nlbmdha3VzaGFcIDsKK+WvvuW8vumBk+W8viA8IHRhaWRhbmRvdWRhblwgOwor6KqN6Ki85byPIDwgbmluc2hvdXNoaWtpXCA7Civoo73pgKDnlarlj7cgPCBzZWl6b3ViYW5nb3VcIDsKK+e3j+aLrOeahCA8IHNvdWthdHN1dGVraVwgOwor5aSa6YeN5Lq65qC8IDwgdGFqdXVqaW5rYWt1XCA7CivkuIDliIDkuKHmlq0gPCBpdHRvdXJ5b3VkYW5cIDsKK+aJmOmJouWDpyA8IHRha3VoYXRzdXpvdVwgOwor5YWx55Sj5Li7576pIDwga3lvdXNhbnNodWdpXCA7CivoqJjlkI3mipXnpaggPCBraW1laXRvdWh5b3VcIDsKK+WVhualreWbvSA8IHNob3VneW91a29rdVwgOwor5Luy5Lq65Y+jIDwgbmFrb3Vkb2d1Y2hpXCA7CivmoZzliY3nt5ogPCBzYWt1cmF6ZW5zZW5cIDsKK+S8keaGqeaZgumWkyA8IGt5dXVrZWlqaWthblwgOwor5Li45aSq6Laz5aC0IDwgbWFydXRhYXNoaWJhXCA7CivmoYPoibLpgYrmiK8gPCBtb21vaXJveXV1Z2lcIDsKK+atpuWjq+majue0miA8IGJ1c2hpa2Fpa3l1dVwgOwor5bi4572u5aeU5ZOh5LyaIDwgam91Y2hpaWlua2FpXCA7Civlm73pmpvpm7voqbEgPCBrb2t1c2FpZGVud2FcIDsKK+S6uuW3peWcsOmchyA8IGppbmtvdWppc2hpblwgOwor5r2c5Zyo5Li75qipIDwgc2VuemFpc2h1a2VuXCA7CivpgY7lsI/oqZXkvqEgPCBrYXNob3VoeW91a2FcIDsKK+evhOeWh+mDqOmWgCA8IGhhbmNodXVidW1vblwgOwor5L+u6YGT5Yi25bqmIDwgc2h1dWRvdXNlaWRvXCA7CivntbHoqp7nr4TnlocgPCB0b3Vnb2hhbmNodXVcIDsKK+ihm+eUn+ioreWCmSA8IGVpc2Vpc2V0c3ViaVwgOwor5LiA5qyh55Sj5ZOBIDwgaWNoaWppc2FucGluXCA7CivlvLfliLblipsgPCBreW91c2Vpcnlva3VcIDsKK+WFrOaYjuato+WkpyA8IGtvdW1laXNlaWRhaVwgOwor5b+F6Kqt5pu4IDwgaGl0c3Vkb2t1c2hvXCA7CivoirHngavnt5rpppkgPCBoYW5hYmlzZW5rb3VcIDsKK+Wcp+WKm+ioiCA8IGF0c3VyeW9rdWtlaVwgOwor6Ii255So5qmf6ZaiIDwgaGFrdXlvdWtpa2FuXCA7Civpmo/nrYbpm4YgPCB6dWloaXRzdXNodXVcIDsKK+WFrOawkeaoqeazlSA8IGtvdW1pbmtlbmhvdVwgOwor54yr55uu55+zIDwgbmVrb21va3VzZWtpXCA7Civli4nlvLfmnLogPCBiZW5reW91enVrdWVcIDsKK+aYj+edoeeKtuaFiyA8IGtvbnN1aWpvdXRhaVwgOwor5a++5ZCR6LuK57eaIDwgdGFpa291c2hhc2VuXCA7CivpiYTmi7PliLboo4EgPCB0ZWtrZW5zZWlzYWlcIDsKK+ahguWGoOipqeS6uiA8IGtlaWthbnNoaWppblwgOwor5Lq65Y+j6Kq/5p+7IDwgamlua291Y2hvdXNhXCA7Civlj7jms5Xop6PliZYgPCBzaGlob3VrYWlib3VcIDsKK+S6uuWPo+mdmeaFiyA8IGppbmtvdXNlaXRhaVwgOwor5pyJ5L2T5YuV55SjIDwgeXV1dGFpZG91c2FuXCA7CivmjqHnlKjoqabpqJMgPCBzYWl5b3VzaGlrZW5cIDsKK+eZveeOiealvCA8IGhha3VneW9rdXJvdVwgOwor5rCX6LGh5oOF5aCxIDwga2lzaG91am91aG91XCA7CivmnInnt5rmlL7pgIEgPCB5dXVzZW5ob3Vzb3VcIDsKK+mWi+mAmuW8jyA8IGthaXRzdXVzaGlraVwgOwor5oiv5LqLIDwgdGF3YW11cmVnb3RvXCA7CivlloDnl7DmpJzmn7sgPCBrYWt1dGFua2Vuc2FcIDsKK+mDt+Wcn+aWmeeQhiA8IGt5b3Vkb3J5b3VyaVwgOwor5LiJ5q616KuW5rOVIDwgc2FuZGFucm9ucG91XCA7Civopb/ljYrnkIMgPCBuaXNoaWhhbmt5dXVcIDsKK+aZguS7o+eyvuelniA8IGppZGFpc2Vpc2hpblwgOwor6KqH5aSn5bqD5ZGKIDwga29kYWlrb3Vrb2t1XCA7Civpg73luILoqIjnlLsgPCB0b3NoaWtlaWtha3VcIDsKK+mWouadseS4gOWGhiA8IGthbnRvdWljaGllblwgOwor6Ieq54S255m655SfIDwgc2hpemVuaGFzc2VpXCA7CivllYTmnKjps6UgPCB0YWt1Ym9rdWNob3VcIDsKK+WNmOS4gOW9oiA8IHRhbicnaWNoaWdhdGFcIDsKK+asveWumuaGsuazlSA8IGtpbnRlaWtlbnBvdVwgOwor5b+F54S255qEIDwgaGl0c3V6ZW50ZWtpXCA7CivmlbDlgKTliLblvqEgPCBzdXVjaGlzZWlneW9cIDsKK+atpuiAheS6uuW9oiA8IG11c2hhbmluZ3lvdVwgOwor5YiG5ZGo5Zue6LevIDwgYnVuc2h1dWthaXJvXCA7CivluILmsJHlpKfkvJogPCBzaGltaW50YWlrYWlcIDsKK+i1pOWtl+WbveWCtSA8IGFrYWppa29rdXNhaVwgOwor5L2/55So5pa55rOVIDwgc2hpeW91aG91aG91XCA7CivmsLTon7fonoIgPCBtaXp1a2FtYWtpcmlcIDsKK+Wwj+aYpeaXpeWSjCA8IGtvaGFydWJpeW9yaVwgOwor5pif5pyI5aScIDwgaG9zaGlkenVrdXlvXCA7CivnuJ7nuZTniakgPCBzaGltYW9yaW1vbm9cIDsKK+WFrOW8j+ippuWQiCA8IGtvdXNoaWtpamlhaVwgOwor54Wn5bCE5Yem55CGIDwgc2hvdXNoYXNob3JpXCA7Civlu7roqK3mpa0gPCBrZW5zZXRzdWd5b3VcIDsKK+WPguWLpOS6pOabvyA8IHNhbmtpbmtvdXRhaVwgOwor576K6aCt54uX6IKJIDwgeW91dG91a3VuaWt1XCA7CivmlqHml4vmpa3ogIUgPCBhc3Nlbmd5b3VzaGFcIDsKK+S8muekvuamguimgSA8IGthaXNoYWdhaXlvdVwgOwor5ZWG5Lq66KGXIDwgc2hvdW5pbm1hY2hpXCA7CivkuIDluZXniakgPCBoaXRvbWFrdW1vbm9cIDsKK+awkeS4u+aUv+S9kyA8IG1pbnNodXNlaXRhaVwgOwor57KX5pS+6L6y5qWtIDwgc29ob3Vub3VneW91XCA7CivosqHli5noq7jooaggPCB6YWltdXNob2h5b3VcIDsKK+iaiuWPlue3mummmSA8IGthdG9yaXNlbmtvdVwgOwor5bqD5aCx5oOF5aCxIDwga291aG91am91aG91XCA7Civnt4rmgKXkuovmhYsgPCBraW5reXV1aml0YWlcIDsKK+Wdh+ihoeS+oeagvCA8IGtpbmtvdWtha2FrdVwgOwor5YWs5a6J5aeU5ZOh5LyaIDwga291YW4nJ2lpbmthaVwgOwor5a2j56+A5aSJ55WwIDwga2lzZXRzdWhlbicnaVwgOwor5pyJ5oSf5Zyw6ZyHIDwgeXV1a2FuamlzaGluXCA7Civnt6nlkozmjK/li5UgPCBrYW53YXNoaW5kb3VcIDsKK+W5vemciuS6uuWPoyA8IHl1dXJlaWppbmtvdVwgOwor57Wx6Kqe5oyH5qiZIDwgdG91Z29zaGloeW91XCA7CivmnIDpq5jkvqHmoLwgPCBzYWlrb3VrYWtha3VcIDsKK+eZvuS6uuWKmyA8IGh5YWt1bmlucmlraVwgOwor6YW45oCn55m95ZyfIDwgc2Fuc2VpaGFrdWRvXCA7CivmsJHml4/ooaPoo4UgPCBtaW56b2t1aXNob3VcIDsKK+S+m+i/sOabuCA8IGt5b3VqdXRzdXNob1wgOwor6Z2e5Za25Yip5LqL5qWtIDwgaGllaXJpamlneW91XCA7Civlrp/mpa3nlYwgPCBqaXRzdWd5b3VrYWlcIDsKK+S/ruWjq+iqsueoiyA8IHNodXVzaGlrYXRlaVwgOwor6KGM5bmz6Y2LIDwgeXVraWhpcmFuYWJlXCA7Civlhaznm4rms5XkurogPCBrb3Vla2lob3VqaW5cIDsKK+attOWPsuS4u+e+qSA8IHJla2lzaGlzaHVnaVwgOwor5byB5oW25qC85a2QIDwgYmVua2VpZ291c2hpXCA7CivnrKzkuozkurrnp7AgPCBkYWluaW5pbnNob3VcIDsKK+S4i+a1geekvuS8miA8IGthcnl1dXNoYWthaVwgOwor5b+r5qW95Li7576pIDwga2FpcmFrdXNodWdpXCA7CivokL3miJDlvI8gPCByYWt1c2Vpc2hpa2lcIDsKK+afs+W3nemNiyA8IHlhbmFnYXdhbmFiZVwgOwor6Iiq57aa5YqbIDwga291em9rdXJ5b2t1XCA7CivliLbpmZDpgJ/luqYgPCBzZWlnZW5zb2t1ZG9cIDsKK+aWh+atpuS4oemBkyA8IGJ1bmJ1cnlvdWRvdVwgOwor5LiK5piH6ZmQ5bqmIDwgam91c2hvdWdlbmRvXCA7CivkvZznlKjnqY3liIYgPCBzYXlvdXNla2lidW5cIDsKK+ebtOaOpeiyuyA8IGNob2t1c2V0c3VoaVwgOwor6IW5562L6YGL5YuVIDwgZnVra2luJyd1bmRvdVwgOwor5YWs6KqN6KiY6YyyIDwga291bmlua2lyb2t1XCA7CivlsbHmoqjnnIwgPCB5YW1hbmFzaGlrZW5cIDsKK+S4gOe2suaJk+WwvSA8IGljaGltb3VkYWppblwgOwor5qOX5qSw5a2QIDwgbmF0c3VtZXlhc2hpXCA7CivlrabmoKHnlKjlk4EgPCBnYWtrb3V5b3VoaW5cIDsKK+S9j+WuheaJi+W9kyA8IGp1dXRha3V0ZWF0ZVwgOwor6KqN55+l56eR5a2mIDwgbmluY2hpa2FnYWt1XCA7CivllYblo7LpgZPlhbcgPCBzaG91YmFpZG91Z3VcIDsKK+WIuua/gOeJqSA8IHNoaWdla2lidXRzdVwgOwor5Y6f5a2Q5oim5LqJIDwgZ2Vuc2hpc2Vuc291XCA7CivmvKvpgYrlrqIgPCBtYW4nJ3l1dWt5YWt1XCA7Civkuozph43nhKbngrkgPCBuaWp1dXNob3V0ZW5cIDsKK+eTpueFjumkhSA8IGthd2FyYXNlbmJlaVwgOwor5Zuz5pu46aSo6ZW3IDwgdG9zaG9rYW5jaG91XCA7CivlnKjluqvoqr/mlbQgPCB6YWlrb2Nob3VzZWlcIDsKK+WvvuaVsOmWouaVsCA8IHRhaXN1dWthbnN1dVwgOwor6Kaq5a2Q5Li8IDwgb3lha29kb25idXJpXCA7CivmlL/mlZnkuIDoh7QgPCBzZWlreW91aXRjaGlcIDsKK+aWh+iKuOaJueiplSA8IGJ1bmdlaWhpaHlvdVwgOwor57ea5b2i5Luj5pWwIDwgc2Vua2VpZGFpc3V1XCA7CivpgKPlkIjmlL/mqKkgPCByZW5nb3VzZWlrZW5cIDsKK+mgvOavjeWtkOismyA8IHRhbm9tb3NoaWtvdVwgOwor5Zyo6Z+T57Gz6LuNIDwgemFpa2FuYmVpZ3VuXCA7CivokZfov7Dmpa0gPCBjaG9qdXRzdWd5b3VcIDsKK+S4gOWknOS5numjnyA8IGljaGl5YWtvamlraVwgOwor55Ww5bi457WC5LqGIDwgaWpvdXNodXVyeW91XCA7Civlk4HlvaIgPCBzaGluYWthdGFjaGlcIDsKK+ippumok+WcsOeNhCA8IHNoaWtlbmppZ29rdVwgOwor56S+5ZOh5pWZ6IKyIDwgc2hhaW5reW91aWt1XCA7Civokrznmb3oibIgPCBzb3VoYWt1c2hva3VcIDsKK+S8gealreW5tOmHkSA8IGtpZ3lvdW5lbmtpblwgOwor5Lme6aOf5qC55oCnIDwga29qaWtpa29uam91XCA7CivkvIHmpa3lkIjlkIwgPCBraWd5b3Vnb3Vkb3VcIDsKK+iHquS4u+aMh+mHnSA8IGppc2h1c2hpc2hpblwgOwor5oSf5oWo54Sh6YePIDwga2FuZ2FpbXVyeW91XCA7CivkuIPovrrlvaIgPCBzaGljaGloZW5rZWlcIDsKK+aVteaAp+WbveWutiA8IHRla2lzZWlrb2trYVwgOwor562J5beu57Sa5pWwIDwgdG91c2FreXV1c3V1XCA7CivlubTmnKvov4QgPCBuZW5tYXRzdW1hZGVcIDsKK+W4q+evhOWtpuagoSA8IHNoaWhhbmdha2tvdVwgOwor57WM5riI56S+5LyaIDwga2VpemFpc2hha2FpXCA7CivmlLnoia/kuLvnvqkgPCBrYWlyeW91c2h1Z2lcIDsKK+e1jOa4iOWItuijgSA8IGtlaXphaXNlaXNhaVwgOwor5Li75oim5oqV5omLIDwgc2h1c2VudG91c2h1XCA7Civlo7LmmKXlrr8gPCBiYWlzaHVuJyd5YWRvXCA7CivpgYrmkoPpmorlk6EgPCB5dXVnZWtpdGFpaW5cIDsKK+S4gOaZguW4sOS8kSA8IGljaGlqaWtpa3l1dVwgOwor6LOq54K557O7IDwgc2hpdHN1dGVua2VpXCA7Civlj5fnm4roqLzliLggPCBqdWVraXNob3VrZW5cIDsKK+W+oeS8veipsSA8IG90b2dpYmFuYXNoaVwgOwor5ouZ6YCf5Li7576pIDwgc2Vzc29rdXNodWdpXCA7CivmnKrplovmi5PlnLAgPCBtaWthaXRha3VjaGlcIDsKK+WFqOaoqeWFrOS9vyA8IHplbmtlbmtvdXNoaVwgOwor57Wx5Yi257WM5riIIDwgdG91c2Vpa2VpemFpXCA7CivnlLDlnJLpoqjmma8gPCBkZW4nJ2VuZnV1a2VpXCA7Civml4XooYzml6XnqIsgPCByeW9rb3VuaXR0ZWlcIDsKK+aTjealreeOhyA8IHNvdWd5b3VyaXRzdVwgOwor54Sh6YeP5aSn5pWwIDwgbXVyeW91ZGFpc3V1XCA7CivlibLlvJXmranlkIggPCB3YXJpYmlraWJ1YWlcIDsKK+WPjeaguOmBi+WLlSA8IGhhbmtha3V1bmRvdVwgOwor5p6V5bGP6aKoIDwgbWFrdXJhYnlvdWJ1XCA7CivooYDmtrLlraYgPCBrZXRzdWVraWdha3VcIDsKK+mmmea4r+i/lOmChCA8IGhvbmtvbmhlbmthblwgOwor5LyB5qWt5ZCI5L21IDwga2lneW91Z2FwcGVpXCA7CivpnZ7ooYzlsJHlubQgPCBoaWtvdXNob3VuZW5cIDsKK+Wfuuedo+aVmSA8IGtpcmlzdXRva3lvdVwgOwor6YeO5aSW5pKu5b2xIDwgeWFnYWlzYXRzdWVpXCA7CivpvKDoirHngasgPCBuZXp1bWloYW5hYmlcIDsKK+WNg+aJi+ims+mfsyA8IHNlbmp1a2FuJydub25cIDsKK+eyvuelnuS4u+e+qSA8IHNlaXNoaW5zaHVnaVwgOwor57WC5aeL5LiA6LKrIDwgc2h1dXNoaWlra2FuXCA7CivmjZXnianluLMgPCB0b3JpbW9ub2Nob3VcIDsKK+ecjOawkeS8mumkqCA8IGtlbm1pbmthaWthblwgOwor5pWZ5p2h5Li7576pIDwga3lvdWpvdXNodWdpXCA7Civmm7TnlJ/kvJrnpL4gPCBrb3VzZWlnYWlzaGFcIDsKK+e5iue2reW3pealrSA8IHNlbicnaWtvdWd5b3VcIDsKK+S6uumWk+WQjOWjqyA8IG5pbmdlbmRvdXNoaVwgOwor6LKv6JS15a6kIDwgY2hvem91c2hpdHN1XCA7Civli5jlkIjosr/mmJMgPCBrYW5nb3Vib3Vla2lcIDsKK+eZvuWutuS6iemztCA8IGh5YWtrYXNvdW1laVwgOwor5LiW55WM5pS/562WIDwgc2VrYWlzZWlzYWt1XCA7CivlvJTllY/lrqIgPCBjaG91bW9ua3lha3VcIDsKK+WutuWxi+WPsOW4syA8IGthb2t1ZGFpY2hvdVwgOwor5p2x5rW36YGT57eaIDwgdG91a2FpZG91c2VuXCA7CivpgbrlpLHniakgPCBpc2hpdHN1YnV0c3VcIDsKK+WLleiEiOihgCA8IGRvdW15YWtrZXRzdVwgOwor6YGO5b2T56u25LqJIDwga2F0b3VreW91c291XCA7CivmtrLkvZPnqpLntKAgPCBla2l0YWljaGlzc29cIDsKK+W5s+WSjOWNlOWumiA8IGhlaXdha3lvdXRlaVwgOwor54Sh57ea6Zu75L+hIDwgbXVzZW5kZW5zaGluXCA7CivlhaXloLTlvI8gPCBueXV1am91c2hpa2lcIDsKK+e0sOiDnuizqiA8IHNhaWJvdXNoaXRzdVwgOwor5bCC6ZaA55So6KqeIDwgc2VubW9uJyd5b3Vnb1wgOwor5Lq66YCg6IKl5paZIDwgamluem91aGlyeW91XCA7CivlpKfnoLLkuInploAgPCB0YWlob3VzYW5tb25cIDsKK+Wun+mok+ijhee9riA8IGppa2tlbnNvdWNoaVwgOwor6KGA5ray5Z6LIDwga2V0c3Vla2lnYXRhXCA7CivkuK3lpK7lirTlg40gPCBjaHV1b3Vyb3Vkb3VcIDsKK+WGhee3mueVquWPtyA8IG5haXNlbmJhbmdvdVwgOwor5Lyd6KiY5L2c6ICFIDwgZGVua2lzYWt1c2hhXCA7CivkurrmsJHlhaznpL4gPCBqaW5taW5rb3VzaGFcIDsKK+mAo+e1oeWIh+espiA8IHJlbnJha3VraXBwdVwgOwor5qiZ6K2Y54GvIDwgaHlvdXNoaWtpdG91XCA7CivntYzllrblkIjnkIbljJYgPCBrZWllaWdvdXJpa2FcIDsKK+WFseWQjOWik+WcsCA8IGt5b3Vkb3Vib2NoaVwgOwor5a6f5oWL6Kq/5p+7IDwgaml0dGFpY2hvdXNhXCA7Civnt4/li5nplbflrpggPCBzb3VtdWNob3VrYW5cIDsKK+a3t+S5seeKtuaFiyA8IGtvbnJhbmpvdXRhaVwgOwor5Yui6LuKIDwgaGF6dW1pZ3VydW1hXCA7Civlk4Dlk4kgPCBrYW5hc2hpaWthbmFcIDsKK+WMheaLrOeahCA8IGhvdWthdHN1dGVraVwgOwor5YqH5Lit5YqHIDwgZ2VraWNodXVnZWtpXCA7Civlrrbml4/mhI/orZggPCBrYXpva3Vpc2hpa2lcIDsKK+WkluaflOWGheWJmyA8IGdhaWp1dW5haWdvdVwgOwor6Kiq5ZWP6LKp5aOyIDwgaG91bW9uaGFuYmFpXCA7Civlrp/nlKjnmoQgPCBqaXRzdXlvdXRla2lcIDsKK+S+jeWFq+mojiA8IHNhbXVyYWloYWtraVwgOwor5Lit6ZaT6ImyIDwgY2h1dWthbnNob2t1XCA7CivmjpLmlqXpgYvli5UgPCBoYWlzZWtpdW5kb3VcIDsKK+mWi+iFueihkyA8IGthaWZ1a3VqdXRzdVwgOwor5Y6f5a2Q5by+6aCtIDwgZ2Vuc2hpZGFudG91XCA7Civnm7TmkoPlvL4gPCBjaG9rdWdla2lkYW5cIDsKK+WWtualreahiOWGhSA8IGVpZ3lvdWFuJyduYWlcIDsKK+WkqeaWh+iIquazlSA8IHRlbm1vbmtvdWhvdVwgOwor6Z2e5a6f6Zqb55qEIDwgaGlqaXNzYWl0ZWtpXCA7Civoo4/mm7jorbLmuKEgPCB1cmFnYWtpam91dG9cIDsKK+WJr+eUo+eJqSA8IGZ1a3VzYW5idXRzdVwgOwor5ZG95Lit546HIDwgbWVpY2h1dXJpdHN1XCA7CivooYDlj4vnl4UgPCBrZXRzdXl1dWJ5b3VcIDsKK+mWouS/guabuOmhniA8IGthbmtlaXNob3J1aVwgOwor5YWN6Kix55qG5LydIDwgbWVua3lva2FpZGVuXCA7Civlm57ou6Lnq7bmioAgPCBrYWl0ZW5reW91Z2lcIDsKK+e1jOa4iOawtOWfnyA8IGtlaXphaXN1aWlraVwgOwor54Sh5qyy5oGs5rehIDwgbXV5b2t1dGVudGFuXCA7Civoh6rmiJHlrp/nj74gPCBqaWdhaml0c3VnZW5cIDsKK+Wft+ihjOeMtuS6iCA8IHNoaWtrb3V5dXV5b1wgOwor6J6N6YCa5omL5b2iIDwgeXV1enV1dGVnYXRhXCA7CivljprnlJ/lubTph5EgPCBrb3VzZWluZW5raW5cIDsKK+mZouWGheaEn+afkyA8IGluJyduYWlrYW5zZW5cIDsKK+aCquaAp+awtOiFqyA8IGFrdXNlaXN1aXNodVwgOwor5Zuj5Y2B6YOO5LiIIDwgZGFuanV1cm91am91XCA7Civnsr7nmb3njocgPCBzZWloYWt1cml0c3VcIDsKK+S7peW/g+S8neW/gyA8IGlzaGluZGVuc2hpblwgOwor5LiA5a2X5Y2D6YeRIDwgaWNoaWppc2Vua2luXCA7Civmpa3nuL7mgqrljJYgPCBneW91c2VraWFra2FcIDsKK+WFteWZqOaLoeaVoyA8IGhlaWtpa2FrdXNhblwgOwor5Lqk5Y+L6Zai5L+CIDwga291eXV1a2Fua2VpXCA7Civlm73pmpvmlL/msrsgPCBrb2t1c2Fpc2VpamlcIDsKK+Wdh+izquaApyA8IGtpbnNoaXRzdXNlaVwgOwor5pu46Z2i5a+p55CGIDwgc2hvbWVuc2hpbnJpXCA7CivkurrplpPnpL7kvJogPCBuaW5nZW5zaGFrYWlcIDsKK+i7jeWbveS4u+e+qSA8IGd1bmtva3VzaHVnaVwgOwor5rC05LiK56u25oqAIDwgc3Vpam91a3lvdWdpXCA7CivmsrPljp/kuZ7po58gPCBrYXdhcmFrb2ppa2lcIDsKK+aIuOexjeS/giA8IGtvc2VraWdha2FyaVwgOwor5LqM6YeN5pKu5b2xIDwgbmlqdXVzYXRzdWVpXCA7Civntbblr77oqZXkvqEgPCB6ZXR0YWloeW91a2FcIDsKK+WcqOexs+mCpuS6uiA8IHphaWJlaWhvdWppblwgOwor5Zub5pyI6aas6bm/IDwgc2hpZ2F0c3ViYWthXCA7CivmlrDpgLLmsJfpi60gPCBzaGluc2hpbmtpZWlcIDsKK+aJgOW+l+aOp+mZpCA8IHNob3Rva3Vrb3Vqb1wgOwor6Zai5L+C5Lya56S+IDwga2Fua2VpZ2Fpc2hhXCA7Civoh6rkv6HmuoDmuoAgPCBqaXNoaW5tYW5tYW5cIDsKK+aXpeacrOWtpuiAhSA8IG5paG9uZ2FrdXNoYVwgOwor5o6l5a6i5qWtIDwgc2Vra3lha3VneW91XCA7CivmmKXml6XlpKfnpL4gPCBrYXN1Z2F0YWlzaGFcIDsKK+awtOebgyA8IG1penVzYWthenVraVwgOwor5paH5piO56S+5LyaIDwgYnVubWVpc2hha2FpXCA7Civok4Tohr/nl4cgPCBjaGlrdW5vdXNob3VcIDsKK+WQjOS6uumbkeiqjCA8IGRvdWppbnphc3NoaVwgOwor6Iqx5b2i5qCqIDwgaGFuYWdhdGFrYWJ1XCA7Civlj7jms5Xoo4HliKQgPCBzaGlob3VzYWliYW5cIDsKK+S6uuS9k+Wun+mokyA8IGppbnRhaWppa2tlblwgOwor5Lqh5ZG95pS/5qipIDwgYm91bWVpc2Vpa2VuXCA7CivmjK/lh7rkurogPCBmdXJpZGFzaGluaW5cIDsKK+S7sumWk+WQjOWjqyA8IG5ha2FtYWRvdXNoaVwgOwor57WM5Za25bel5a2mIDwga2VpZWlrb3VnYWt1XCA7CivlvIHorbfkvp3poLzkurogPCBiZW5nb2lyYWluaW5cIDsKK+izm+WQpuS4oeirliA8IHNhbnBpcnlvdXJvblwgOwor5LiN5rOV6ZuG5LyaIDwgZnVob3VzaHV1a2FpXCA7CivnnLzpq5jmiYvkvY4gPCBnYW5rb3VzaHV0ZWlcIDsKK+emgeassueahCA8IGtpbicneW9rdXRla2lcIDsKK+iHquWLleWwj+mKgyA8IGppZG91c2hvdWp1dVwgOwor5Zyw5Z+f56S+5LyaIDwgY2hpaWtpc2hha2FpXCA7CivkuqTmtYHkurrkuosgPCBrb3VyeXV1amluamlcIDsKK+eJueauiuWKueaenCA8IHRva3VzaHVrb3VrYVwgOwor5LiA5YiG5YilIDwgaGl0b2Z1bmJldHN1XCA7Civoh6rlrrbkuK3mr5IgPCBqaWthY2h1dWRva3VcIDsKK+S6uuawl+eVque1hCA8IG5pbmtpYmFuZ3VtaVwgOwor5pW15pys5Li7576pIDwgdGVraWhvbnNodWdpXCA7Civlj6PlhoXmgKfkuqQgPCBrb3VuYWlzZWlrb3VcIDsKK+iEs+i7n+WMlueXhyA8IG5vdW5hbmthc2hvdVwgOwor5Y2K54us56uLIDwgaGFuZG9rdXJpdHN1XCA7Civnj77lnLDms5XkurogPCBnZW5jaGlob3VqaW5cIDsKK+iHquWLlei7iuazpSA8IGppZG91c2hhZG9yb1wgOwor5LiA5pmC5YGc5q2iIDwgaWNoaWppdGVpc2hpXCA7CivlrablnJLntJvkuokgPCBnYWt1ZW5mdW5zb3VcIDsKK+acgOmrmOWtpuW6nCA8IHNhaWtvdWdha3VmdVwgOwor5L+d6Zm65aWR57SEIDwgaG9rZW5rZWl5YWt1XCA7CivlpbPmgKflt67liKUgPCBqb3NlaXNhYmV0c3VcIDsKK+WFkOerpeemj+eliSA8IGppZG91ZnVrdXNoaVwgOwor5Z+35YuZ5LitIDwgc2hpdHN1bXVjaHV1XCA7CivoqabpqJPllY/poYwgPCBzaGlrZW5tb25kYWlcIDsKK+a8uOmAsuS4u+e+qSA8IHplbnNoaW5zaHVnaVwgOwor6Z+z5L+h5LiN6YCaIDwgb25zaGluZnV0c3V1XCA7Civli4flvoDpgoHpgLIgPCB5dXVvdW1haXNoaW5cIDsKK+mdmeatoueKtuaFiyA8IHNlaXNoaWpvdXRhaVwgOwor5YyX5pSv5LqL5aSJIDwgaG9rdXNoaWppaGVuXCA7Civlr7jlgJ/oqZDmrLogPCBzdW5zaGFrdXNhZ2lcIDsKK+aMh+WQjemAmuipsSA8IHNoaW1laXRzdXV3YVwgOwor6Ium5b+D5oOo5oa6IDwga3VzaGluc2FudGFuXCA7Civnib3lvLfku5jkvJogPCBrZW5reW91ZnVrYWlcIDsKK+WvkuWGt+WJjee3miA8IGthbnJlaXplbnNlblwgOwor5Yip5LuW5Li7576p6ICFIDwgcml0YXNodWdpc2hhXCA7Civopqrml6XmtL4gPCBzaGluJyduaWNoaWhhXCA7CivpgJ/luqbliLbpmZAgPCBzb2t1ZG9zZWlnZW5cIDsKK+Wbm+mDqOWQiOWUsSA8IHNoaWJ1Z2Fzc2hvdVwgOwor6Zu76Zu75YWs56S+IDwgZGVuZGVua291c2hhXCA7Civnpo/ls7bnnIwgPCBmdWt1c2hpbWFrZW5cIDsKK+iqv+iJsuadvyA8IGNob3VzaG9rdWJhblwgOwor5YSq5Yud5YCZ6KOcIDwgeXV1c2hvdWtvdWhvXCA7Civlj4vlpb3plqLkv4IgPCB5dXVrb3VrYW5rZWlcIDsKK+aVkeaPtOeJqeizhyA8IGt5dXVlbmJ1c3NoaVwgOwor5Ymq5a6a6YuPIDwgc2VudGVpYmFzYW1pXCA7Civnt5Hpu4ToibIgPCByeW9rdW91c2hva3VcIDsKK+WMhee0mSA8IHRzdXRzdW1pZ2FtaVwgOwor5LiL5bGL5pW3IDwgc2hpbW95YXNoaWtpXCA7CivnpZ7npL7ku4/plqMgPCBqaW5qYWJ1a2tha3VcIDsKK+i7iueUqOWTgSA8IGt1cnVtYXlvdWhpblwgOwor6ICQ5LmF5YqbIDwgdGFpa3l1dXJ5b2t1XCA7CivmsLTlubPmgJ3ogIMgPCBzdWloZWlzaGlrb3VcIDsKK+mfs+aEn+aVmeiCsiA8IG9ua2Fua3lvdWlrdVwgOwor5a+d5Y+w6JmrIDwgc2hpbmRhaW11c2hpXCA7Civll5zomZDnmoQgPCBzaGlneWFrdXRla2lcIDsKK+a7nue0jeWHpuWIhiA8IHRhaW5vdXNob2J1blwgOwor5Lit57aZ5bGAIDwgY2h1dWtlaWt5b2t1XCA7CivlhbHlkIzntYzllrYgPCBreW91ZG91a2VpZWlcIDsKK+mVt+W6g+iIjCA8IGNob3Vrb3V6ZXRzdVwgOwor5LqM5YWt5pmC5LitIDwgbmlyb2t1amljaHV1XCA7CivkuIDmmYLos5zph5EgPCBpY2hpamlzaGlraW5cIDsKK+iHqueEtuW0h+aLnSA8IHNoaXplbnN1dWhhaVwgOwor5a+p6K2w5pyq5LqGIDwgc2hpbmdpbWlyeW91XCA7CivppIrlrZDnuIHntYQgPCB5b3VzaGllbmd1bWlcIDsKK+aXpeayoeW+jCA8IG5pY2hpYm90c3Vnb1wgOwor5rCP5peP5Yi25bqmIDwgc2hpem9rdXNlaWRvXCA7Civli5XohIjnmKQgPCBkb3VteWFrdXJ5dXVcIDsKK+S4gOi8quaMvyA8IGljaGlyaW56YXNoaVwgOwor6LuN6Zmj5Yy75a2mIDwgZ3VuamluJydpZ2FrdVwgOwor6JK455m655q/IDwgam91aGF0c3V6YXJhXCA7CivmraPlm5vpnaLkvZMgPCBzZWlzaGltZW50YWlcIDsKK+WumuagvOiri+iyoCA8IHRlaWtha3V1a2VvaVwgOwor6LOD5YCf5qipIDwgY2hpbnNoYWt1a2VuXCA7CivljbjllY/lsYsgPCBvcm9zaGlkb24nJ3lhXCA7CivpmLLmub/liaQgPCBib3VzaGl0c3V6YWlcIDsKK+WPjuepq+mrmCA8IHNodXVrYWt1ZGFrYVwgOwor5YaN5Ye655m6IDwgc2Fpc2h1cHBhdHN1XCA7CivlvoXpgYfmlLnlloQgPCB0YWlndXVrYWl6ZW5cIDsKK+e5iue2reWFieWtpiA8IHNlbicnaWtvdWdha3VcIDsKK+m7kuS6uumciuatjCA8IGtva3VqaW5yZWlrYVwgOwor5ZGo5qW15pifIDwgc2h1dWt5b2t1c2VpXCA7Civpm7booYzliJcgPCByZWlneW91cmV0c3VcIDsKK+eJueauiuapn+iDvSA8IHRva3VzaHVraW5vdVwgOwor57WM6Lev56mN5YiGIDwga2Vpcm9zZWtpYnVuXCA7Civlm73llrbovrLloLQgPCBrb2t1ZWlub3Vqb3VcIDsKK+Wbveeyi+S4u+e+qSA8IGtva3VzdWlzaHVnaVwgOwor5Ye655m654K5IDwgc2h1cHBhdHN1dGVuXCA7CivnlLLnirbohbrngo4gPCBrb3Vqb3VzZW4nJ2VuXCA7CivlkIjmoLznjocgPCBnb3VrYWt1cml0c3VcIDsKK+izh+eUo+WQiOioiCA8IHNoaXNhbmdvdWtlaVwgOwor6a+o6aOy6aas6aOfIDwgZ2VpaW5iYXNob2t1XCA7Civlv4Poh5PnmbrkvZwgPCBzaGluem91aG9zc2FcIDsKK+aWsOS6uuatjOaJiyA8IHNoaW5qaW5rYXNodVwgOwor6Ly45YWl5omL5b2iIDwgeXVueXV1dGVnYXRhXCA7CivlnKfnnYDnq6/lrZAgPCBhdHN1Z2l0YW5zaGlcIDsKK+acquaUueW/g+iAhSA8IG1pa2Fpc2hpbnNoYVwgOwor54Sh5Yq55oqV56WoIDwgbXVrb3V0b3VoeW91XCA7CivooYzpgLLmm7IgPCBrb3VzaGlua3lva3VcIDsKK+mbo+aUu+S4jeiQvSA8IG5hbmtvdWZ1cmFrdVwgOwor5LiA5b+D5ZCM5L2TIDwgaXNzaGluZG91dGFpXCA7CivlrqXlkozmlL/nrZYgPCB5dXV3YXNlaXNha3VcIDsKK+mZkOeVjOWKueeUqCA8IGdlbmthaWtvdXlvdVwgOwor5Y2B5LiH5YSE5ZyfIDwganV1bWFuJydva3Vkb1wgOwor5aSJ5oWL5b+D55CGIDwgaGVudGFpc2hpbnJpXCA7Civnmb3nhrHnga8gPCBoYWt1bmV0c3V0b3VcIDsKK+aLjeWtkOiomOWPtyA8IGh5b3VzaGlraWdvdVwgOwor5YWs5Lya5ZWP562UIDwga291a2FpbW9uZG91XCA7CivogIPlj6TlrabogIUgPCBrb3Vrb2dha3VzaGFcIDsKK+mjn+aWmeWTgSA8IHNob2t1cnlvdWhpblwgOwor6YeO55CD6YG45omLIDwgeWFreXV1c2Vuc2h1XCA7Civmk43ou4rkv4IgPCBzb3VzaGFnYWthcmlcIDsKK+WkoumBiueXheiAhSA8IG11eXV1YnlvdXNoYVwgOwor6KaB5omA6KaB5omAIDwgeW91c2hveW91c2hvXCA7Civmub/pm7vmsaAgPCBzaGl0c3VkZW5jaGlcIDsKK+ims+aOjOihkyA8IGthbnNob3VqdXRzdVwgOwor5L2/5b6S57aZ5om/IDwgc2hpdG9rZWlzaG91XCA7CivlirHno4Hpm7vmtYEgPCByZWlqaWRlbnJ5dXVcIDsKK+W/lyA8IGtva29yb3phc2hpXCA7CivmlL8gPCBtYXRzdXJpZ290b1wgOwor56S+5Lya5Yi25bqmIDwgc2hha2Fpc2VpZG9cIDsKK+S7o+eQhumgmOS6iyA8IGRhaXJpcnlvdWppXCA7CivngrnmlbDliIfnrKYgPCB0ZW5zdXVraXBwdVwgOwor5YyW5oiQ6IKl5paZIDwga2FzZWloaXJ5b3VcIDsKK+acquaIkOW5tOiAhSA8IG1pc2VpbmVuc2hhXCA7CivnnJ/pqqjpoIIgPCBzaGlua290Y2hvdVwgOwor5b+F6KaB5ZOBIDwgaGl0c3V5b3VoaW5cIDsKK+eUu+S4lueahCA8IGtha3VzZWl0ZWtpXCA7CivkuIDlpKnkuIfkuZcgPCBpdHRlbmJhbmpvdVwgOwor54ao5paX6KKLIDwgbm9zaGlidWt1cm9cIDsKK+a4rOWcsOWtpiA8IHNva3VjaGlnYWt1XCA7CivopqrlrZDplqLkv4IgPCBveWFrb2thbmtlaVwgOwor6ZuB5pyo6ZGiIDwgZ2FuZ2l5YXN1cmlcIDsKK+WGjeWJsuW8lSA8IHNhaXdhcmliaWtpXCA7CivmgZDmgJbmlL/msrsgPCBreW91ZnVzZWlqaVwgOwor5aWJ54yu5byPIDwgaG91a2Vuc2hpa2lcIDsKK+iZmuaVsOWNmOS9jSA8IGt5b3N1dXRhbicnaVwgOwor6YG45oyZ5Yi25bqmIDwgc2Vua3lvc2VpZG9cIDsKK+WIneiqleeUnyA8IGhhdHN1dGFuam91XCA7CivkuInmnKzotrMgPCBzYW5ib24nJ2FzaGlcIDsKK+WIpOaWreWKmyA8IGhhbmRhbnJ5b2t1XCA7CivlpKfpoZjmiJDlsLEgPCBkYWlnYW5qb3VqdVwgOwor5Y2U6Kq/5oCnIDwga3lvdWNob3VzZWlcIDsKK+WGhuWNk+S8muitsCA8IGVudGFrdWthaWdpXCA7CivlpKnpgZPkub4gPCB0ZW50b3Vib3NoaVwgOwor5aSn5a6u5b6h5omAIDwgb29taXlhZ29zaG9cIDsKK+eZveaXpeWkoiA8IGhha3VqaXRzdW11XCA7CivliIbmnpDooaggPCBidW5zZWtpaHlvdVwgOwor5LiK5LiL6Zai5L+CIDwgam91Z2VrYW5rZWlcIDsKK+aJv+irvuabuCA8IHNob3VkYWt1c2hvXCA7CivlsJHpo5/lrrYgPCBzaG91c2hva3VrYVwgOwor5Luu5Z+36KGMIDwga2FyaXNoaWtrb3VcIDsKK+aPoeWKm+ioiCA8IGFrdXJ5b2t1a2VpXCA7CivlhazllrbkvIHmpa0gPCBrb3VlaWtpZ3lvdVwgOwor6YeN5ray5YiG6ZuiIDwganV1ZWtpYnVucmlcIDsKK+S4jei2s+WLnSA8IGZ1c29rdWdhY2hpXCA7Civlrp/ot7XnkIbmgKcgPCBqaXNzZW5yaXNlaVwgOwor5biv6Yu4IDwgb2Jpbm9rb2dpcmlcIDsKK+W+jOmAsuWbvSA8IGtvdXNoaW5rb2t1XCA7CivooYzkvY/lnZDoh6UgPCBneW91anV1emFnYVwgOwor6KiA6KGM5LiA6Ie0IDwgZ2Vua291aXRjaGlcIDsKK+a0l+ecvOiWrCA8IHNlbmdhbicneWFrdVwgOwor5b6p57+S5paHIDwgZnVrdXNodXVidW5cIDsKK+W6g+Wkp+eEoei+uiA8IGtvdWRhaW11aGVuXCA7CivlhKrlhYjkuovpoIUgPCB5dXVzZW5qaWtvdVwgOwor5pC65biv6Zu76KmxIDwga2VpdGFpZGVud2FcIDsKK+atouihgOW4ryA8IHNoaWtldHN1dGFpXCA7CivkuIvlrr/mlpkgPCBnZXNodWt1cnlvdVwgOwor5pmC5Luj6Yyv6KqkIDwgamlkYWlzYWt1Z29cIDsKK+S6uuW3peihm+aYnyA8IGppbmtvdWVpc2VpXCA7Civph43ph4/ntJogPCBqdXVyeW91a3l1dVwgOwor57ea5b2i6aCG5bqPIDwgc2Vua2VpanVuam9cIDsKK+WPrOS9vyA8IG1lc2hpdHN1a2FpXCA7CivliY3pgLLou7ggPCB6ZW5zaGluamlrdVwgOwor6YmE55+z5b+DIDwgdGVzc2VraXNoaW5cIDsKK+eUmOiMtuiUkyA8IGFtYWNoYWR6dXJ1XCA7CivlpJbkuqTlrpjoo5wgPCBnYWlrb3VrYW5ob1wgOwor572y5ZCN5byPIDwgc2hvbWVpc2hpa2lcIDsKK+S6uuW/g+WcsCA8IGhpdG9nb2tvY2hpXCA7Civlm5rkurrmnI0gPCBzaHV1amluZnVrdVwgOwor5b6L5YSA6ICFIDwgcmljaGlnaW1vbm9cIDsKK+WKm+efsyA8IGNoaWthcmFpc2hpXCA7CivkvY/lsYXmiYvlvZMgPCBqdXVreW90ZWF0ZVwgOwor6ZuB5pyo6LuKIDwgZ2FuZ2lndXJ1bWFcIDsKK+mBk+i3r+aomeekuiA8IGRvdXJvaHlvdWppXCA7Civnmb3pvKAgPCBzaGlyb25lenVtaVwgOwor5LqI5YKZ5bCG5qChIDwgeW9iaXNob3Vrb3VcIDsKK+aGguasneeXhyA8IHl1dXV0c3VzaG91XCA7CivmsJHplpPpo5vooYwgPCBtaW5rYW5oaWtvdVwgOwor5a6f6aiT5byPIDwgamlra2Vuc2hpa2lcIDsKK+awuOWtkOS9nOaoqSA8IGVpa29zYWt1a2VuXCA7CivnpL7kvJrpgYvli5UgPCBzaGFrYWl1bmRvdVwgOwor56e76KGM6KiI55S7IDwgaWtvdWtlaWtha3VcIDsKK+eLguS/oeiAhSA8IGt5b3VzaGluc2hhXCA7CivmjqXov5HntYzot68gPCBzZWtraW5rZWlyb1wgOwor5LiW55WM57WM5riIIDwgc2VrYWlrZWl6YWlcIDsKK+a1ruS4luiNieWtkCA8IHVraXlvem91c2hpXCA7CivmsJHml4/nmoQgPCBtaW56b2t1dGVraVwgOwor5a6a5pWw5piv5q2jIDwgdGVpc3V1emVzZWlcIDsKK+eZuuiogOiAhSA8IGhhdHN1Z2Vuc2hhXCA7CivlipvnmKQgPCBjaGlrYXJha29idVwgOwor5Y2Y57im5YiXIDwgdGFuanV1cmV0c3VcIDsKK+WuieS/neadoee0hCA8IGFucG9qb3V5YWt1XCA7Civosqnlo7LlgKTmrrUgPCBoYW5iYWluZWRhblwgOwor5Z+65bqV5qeL6YCgIDwga2l0ZWlrb3V6b3VcIDsKK+W/hemgiOadoeS7tiA8IGhpc3N1am91a2VuXCA7CivkuInkurrntYQgPCBzYW4nJ25pbmd1bWlcIDsKK+m7kuaWkeeXhSA8IGtva3VoYW5ieW91XCA7CivljLroo4HliKTmiYAgPCBrdXNhaWJhbnNob1wgOwor5LqI6KGM5ryU57+SIDwgeW9rb3VlbnNodXVcIDsKK+mBuOaMmemBi+WLlSA8IHNlbmt5b3VuZG91XCA7Civlm73pmpvopo/mqKEgPCBrb2t1c2Fpa2lib1wgOwor5oKq5oKq5oivIDwgd2FydWl0YXp1cmFcIDsKK+mBi+i7ouWFjeiosSA8IHVudGVubWVua3lvXCA7Civnt5rlvaLoq5bnkIYgPCBzZW5rZWlyb25yaVwgOwor5a6f55So5ZOBIDwgaml0c3V5b3VoaW5cIDsKK+Wkp+iFv+mqqCA8IGRhaXRhaWtvdHN1XCA7CivlubTos4Dpg7Xkvr8gPCBuZW5nYXl1dWJpblwgOwor5rip6aKo5pqW5oi/IDwgb25wdXVkYW5ib3VcIDsKK+WGhemDqOani+mAoCA8IG5haWJ1a291em91XCA7CivmsLTonJzmoYMgPCBzdWltaXRzdXRvdVwgOwor5LiN5a6a5Z6L6KmpIDwgZnV0ZWlrZWlzaGlcIDsKK+a8gua1geiIuSA8IGh5b3VyeXV1c2VuXCA7Civpu4Tph5HltIfmi50gPCBvdWdvbnN1dWhhaVwgOwor5LiW6Kmx5aWz5oi/IDwgc2V3YW55b3Vib3VcIDsKK+eKrOWEkuWtpua0viA8IGtlbmp1Z2FrdWhhXCA7CivpoLjli5XohIggPCBrZWlkb3VteWFrdVwgOwor5LiA5ZOB5paZ55CGIDwgaXBwaW5yeW91cmlcIDsKK+S6nOehq+mFuOWhqSA8IGFyeXV1c2FuJydlblwgOwor55Sf5YW15rOVIDwgbmFtYWJ5b3Vob3VcIDsKK+eDj+e+veiJsiA8IGthcmFzdWJhaXJvXCA7CivlvJ/lvJ/lrZAgPCBvdG91dG9kZXNoaVwgOwor5YqH5paH5a2mIDwgZ2VraWJ1bmdha3VcIDsKK+WKoOiWrOmjryA8IGtheWFrdW1lc2hpXCA7CivljJfljYrnkIMgPCBraXRhaGFua3l1dVwgOwor6ZuG5Lit57eaIDwgc2h1dWNodXVzZW5cIDsKK+acieWjsOWtkOmfsyA8IHl1dXNlaXNoaWluXCA7Civlvpfmpa3lo6sgPCB0b2t1Z3lvdXNoaVwgOwor55qG5YW15Yi25bqmIDwga2FpaGVpc2VpZG9cIDsKK+WJjemAsuinkiA8IHplbnNoaW5rYWt1XCA7CivmnKrntYzpqJPogIUgPCBtaWtlaWtlbnNoYVwgOwor6aSK5q6W5rGgIDwgeW91c2hva3VjaGlcIDsKK+WXnOiZkOaApyA8IHNoaWd5YWt1c2VpXCA7CivlsIrnmofnjovmlJjlpLcgPCBzb24nJ25vdWpvdWlcIDsKK+S4iuaEj+S4i+mBlCA8IGpvdWlrYXRhdHN1XCA7Civou4rplpPot53pm6IgPCBzaGFrYW5reW9yaVwgOwor5rC35rKz5pmC5LujIDwgaHlvdWdhamlkYWlcIDsKK+S4ieS6uuensCA8IHNhbicnbmluc2hvdVwgOwor5oOF5aCx55CG6KuWIDwgam91aG91cmlyb25cIDsKK+W+oeWkmuW/meS4rSA8IGdvdGFib3VjaHV1XCA7CivkuK3ntJrlk4EgPCBjaHV1a3l1dWhpblwgOwor5ryC5rWB6ICFIDwgaHlvdXJ5dXVzaGFcIDsKK+aEm+afk+aYjueOiyA8IGFpemVubXlvdW91XCA7Civoqpjmg5HniakgPCB5dXV3YWt1bW9ub1wgOwor6aCt6JOL6aqoIDwgdG91Z2Fpa290c3VcIDsKK+eZuuaYjuWTgSA8IGhhdHN1bWVpaGluXCA7CivlubPpnaLkuqTlt64gPCBoZWltZW5rb3VzYVwgOwor5aSx5qC86ICFIDwgc2hpa2tha3VzaGFcIDsKK+aIkOe4vuihqCA8IHNlaXNla2loeW91XCA7CivntYzpqJPkuLvnvqkgPCBrZWlrZW5zaHVnaVwgOwor5byB6K235aOr5LyaIDwgYmVuZ29zaGlrYWlcIDsKK+azqOaWh+WFiCA8IGNodXVtb25zYWtpXCA7CivntJTmg4Xlj6/mhpAgPCBqdW5qb3VrYXJlblwgOwor6LyJ6LKo5ZCD5rC0IDwgc2Fpa2FraXNzdWlcIDsKK+aXouaxuuWbmiA8IGtpa2V0c3VzaHV1XCA7CivljYrmv4Hpn7PnrKYgPCBoYW5kYWt1b25mdVwgOwor6Zao56eA55S75a62IDwga2Vpc2h1dWdha2FcIDsKK+aRguWLleirliA8IHNldHN1ZG91cm9uXCA7CivkvI/mtYHmsLQgPCBmdWt1cnl1dXN1aVwgOwor54us6KOB55qEIDwgZG9rdXNhaXRla2lcIDsKK+mrmOiqv+WtkCA8IHRha2FjaG91c2hpXCA7Civnq4vohJrlnLAgPCByaWtreWFrdWNoaVwgOwor5LiJ5Y2K6KaP566hIDwgc2FuaGFua2lrYW5cIDsKK+WwgeW7uuaZguS7oyA8IGhvdWtlbmppZGFpXCA7Civotorlhqzos4fph5EgPCBldHRvdXNoaWtpblwgOwor5YaN5qeL56+JIDwgc2Fpa291Y2hpa3VcIDsKK+aJgOW4r+mBk+WFtyA8IHNob3RhaWRvdWd1XCA7CivlgrLlsrjnhKHnpLwgPCBnb3VnYW5idXJlaVwgOwor56S+5Lya5L+d6Zm6IDwgc2hha2FpaG9rZW5cIDsKK+ark+Wkqum8kyA8IHlhZ3VyYWRhaWtvXCA7CivmraLooYDliaQgPCBzaGlrZXRzdXphaVwgOwor6LyD5YSq5L2N6KuWIDwga2FrdXl1dWlyb25cIDsKK+S4luirluiqv+afuyA8IHlvcm9uY2hvdXNhXCA7CivlhqzmnJ/kvJHmmocgPCB0b3VraWt5dXVrYVwgOwor5Lih5pa55YWxIDwgcnlvdWhvdXRvbW9cIDsKK+S4iumDqOani+mAoCA8IGpvdWJ1a291em91XCA7Civmnb7okYnmnZYgPCBtYXRzdWJhZHp1ZVwgOwor6LGh5b2i5paH5a2XIDwgc2hvdWtlaW1vamlcIDsKK+WKm+awtCA8IGNoaWthcmFtaXp1XCA7CivmspbnqY3ntbEgPCBjaHV1c2VraXRvdVwgOwor5LuV5LqL566xIDwgc2hpZ290b2Jha29cIDsKK+awt+mGi+mFuCA8IGh5b3VzYWt1c2FuXCA7CivovrLmnKzkuLvnvqkgPCBub3Vob25zaHVnaVwgOwor5pu457GN5ZWGIDwgc2hvc2VraXNob3VcIDsKK+S4gOWIh+ihhueUnyA8IGlzc2Fpc2h1am91XCA7Civml6fmhYvkvp3nhLYgPCBreXV1dGFpaXplblwgOwor5pW055CG55Wq5Y+3IDwgc2VpcmliYW5nb3VcIDsKK+S7rue2tOacrCA8IGthcml0b2ppaG9uXCA7Civnmbrpm7vmiYAgPCBoYXRzdWRlbnNob1wgOwor5b2T5bqn6LOH55SjIDwgdG91emFzaGlzYW5cIDsKK+WumOiDveeahCA8IGthbicnbm91dGVraVwgOwor5q6L5ZOB5pW055CGIDwgemFucGluc2VpcmlcIDsKK+acq+aioueahCA8IG1hc3Nob3V0ZWtpXCA7CivkuK3plpPlm70gPCBjaHV1a2Fua29rdVwgOwor5a6H5a6Z6YCf5bqmIDwgdWNodXVzb2t1ZG9cIDsKK+aAnee0oueahCA8IHNoaXNha3V0ZWtpXCA7CivljZflj6MgPCBtaW5hbWlndWNoaVwgOwor5Yqg5rC05YiG6KejIDwga2FzdWlidW5rYWlcIDsKK+WHuui6q+agoSA8IHNodXNzaGlua291XCA7CivngbDpnZLoibIgPCBoYWlzZWlzaG9rdVwgOwor6Iiq5rW36KGTIDwga291a2FpanV0c3VcIDsKK+Wwj+adseS6rCA8IHNob3V0b3VreW91XCA7CivlrqPkvJ3kvqHlgKQgPCBzZW5kZW5rYWNoaVwgOwor5bm05a2j5aWJ5YWsIDwgbmVua2lib3Vrb3VcIDsKK+WNg+S6uuWKmyA8IHNlbicnbmlucmlraVwgOwor5Lq65bel6IqdIDwgamlua291c2hpYmFcIDsKK+i7vemHj+e0miA8IGtlaXJ5b3VreXV1XCA7Civlipvmpa0gPCBjaGlrYXJhd2F6YVwgOwor6LKo5bmj57WM5riIIDwga2FoZWlrZWl6YWlcIDsKK+eEoeacn+aHsuW9uSA8IG11a2ljaG91ZWtpXCA7Civmi5jmnZ/lnKcgPCBrb3Vzb2t1YXRzdVwgOwor5oim6ZeY5YqbIDwgc2VudG91cnlva3VcIDsKK+W4guWgtOWMuuWIhiA8IHNoaWpvdWt1YnVuXCA7CivnkIPpnaLpj6EgPCBreXV1bWVua3lvdVwgOwor5Yid5pyf6Kit5a6aIDwgc2hva2lzZXR0ZWlcIDsKK+S6uumAoOe5iue2rSA8IGppbnpvdXNlbicnaVwgOwor5pmu6YCa6aCQ6YeRIDwgZnV0c3V1eW9raW5cIDsKK+S9juWIqeizh+mHkSA8IHRlaXJpc2hpa2luXCA7CivkurrlvaLliocgPCBuaW5neW91Z2VraVwgOwor54Sh6aqo6ICFIDwgYnVrb3RzdW1vbm9cIDsKK+ecn+ePoOe0sOW3pSA8IHNoaW5qdXphaWt1XCA7CivkuLvnn6XkuLvnvqkgPCBzaHVjaGlzaHVnaVwgOwor6YCG552rIDwgc2FrYW1hdHN1Z2VcIDsKK+eUuuWlieihjCA8IG1hY2hpYnVneW91XCA7CivnqbroqLzmlocgPCBrYXJhc2hvdW1vblwgOwor5LqM6aCF5L+C5pWwIDwgbmlrb3VrZWlzdXVcIDsKK+e0oOaAp+ani+mAoCA8IHNvc2Vpa291em91XCA7CivmhJvlm73kuLvnvqkgPCBhaWtva3VzaHVnaVwgOwor5oim6ZeY5pSv5o+0IDwgc2VudG91c2hpZW5cIDsKK+S6uuWQjei+nuabuCA8IGppbm1laWppc2hvXCA7CivliY3ovKrpp4bli5UgPCB6ZW5yaW5rdWRvdVwgOwor5L6h5qC85pON5L2cIDwga2FrYWt1c291c2FcIDsKK+aUvueJqee3miA8IGhvdWJ1dHN1c2VuXCA7CivlvaLogIzkuIvlraYgPCBrZWlqaWthZ2FrdVwgOwor5LiA5pyf5LiA5LyaIDwgaWNoaWdvaWNoaWVcIDsKK+iqv+WtkOiAhSA8IGNob3VzaGltb25vXCA7Civnj77lrp/mhJ8gPCBnZW5qaXRzdWthblwgOwor6bC556+AIDwga2F0c3VvYnVzaGlcIDsKK+epjeWIhuWtpiA8IHNla2lidW5nYWt1XCA7CivlnJ/mnKjlt6XkuosgPCBkb2Jva3Vrb3VqaVwgOwor5aWz5a2Q6auY55SfIDwgam9zaGlrb3VzZWlcIDsKK+ePvuWun+aApyA8IGdlbmppdHN1c2VpXCA7Civpq5jpm7vlnKcgPCBrb3VkZW4nJ2F0c3VcIDsKK+WtpuWVj+eahCA8IGdha3Vtb250ZWtpXCA7CivnjovpgZPmpb3lnJ8gPCBvdWRvdXJha3Vkb1wgOwor5oKq5oim6Ium6ZeYIDwgYWt1c2Vua3V0b3VcIDsKK+elnue1jOWkluenkSA8IHNoaW5rZWlnZWthXCA7CivlrabnqbbnmoQgPCBnYWtreXV1dGVraVwgOwor6Z2e6ZaL56S65ZCI5oSPIDwgaGlrYWlqaWdvdWlcIDsKK+WPjuepq+elrSA8IHNodXVrYWt1c2FpXCA7CivniannkIblraYgPCBidXRzdXJpZ2FrdVwgOwor5LiN55yg5LiN5LyRIDwgZnVtaW5mdWt5dXVcIDsKK+WeguebtOe3miA8IHN1aWNob2t1c2VuXCA7CivlkI3oqonmlZnmjoggPCBtZWl5b2t5b3VqdVwgOwor5Zuz5pu46aSo5ZOhIDwgdG9zaG9rYW4nJ2luXCA7CivmrbTlj7LlraYgPCByZWtpc2hpZ2FrdVwgOwor5r2k5ruR5YmkIDwganVua2F0c3V6YWlcIDsKK+e1hOe5lOWtpiA8IHNvc2hpa2lnYWt1XCA7Civpq5jmrYzmlL7lkJ8gPCBrb3VrYWhvdWdpblwgOwor55m66Zu75a2QIDwgaGF0c3VkZW5zaGlcIDsKK+S4ieWwiuS7jyA8IHNhbnpvbmJ1dHN1XCA7CivlvJXlj5bkurogPCBoaWtpdG9yaW5pblwgOwor5qeL5oiQ5Y2Y5L2NIDwga291c2VpdGFuJydpXCA7CivlpJbkurroqJjogIUgPCBnYWlqaW5raXNoYVwgOwor5ryC5rOK6ICFIDwgaHlvdWhha3VzaGFcIDsKK+S+i+WkluWHpueQhiA8IHJlaWdhaXNob3JpXCA7CivlpKvlqabojLbnopcgPCBtZW90b2RqYXdhblwgOwor55yf55Sw6JmrIDwgc2FuYWRhbXVzaGlcIDsKK+mXh+WVhuS6uiA8IHlhbWlzaG91bmluXCA7CivlhaXmvIHmlpkgPCBueXV1Z3lvcnlvdVwgOwor5YWo6Z2i6Kyb5ZKMIDwgemVubWVua291d2FcIDsKK+S4g+WuneeEvCA8IHNoaXBwb3V5YWtpXCA7Civpi7zpiYTmnb8gPCBrb3V0ZXRzdWJhblwgOwor5YSq6Imv5qCqIDwgeXV1cnlvdWthYnVcIDsKK+acrOagvOeahCA8IGhvbmtha3V0ZWtpXCA7CivlvqnorpDmiKYgPCBmdWt1c2h1dXNlblwgOwor5pq05Yqb5ZujIDwgYm91cnlva3VkYW5cIDsKK+WIneiouuaWmSA8IHNob3NoaW5yeW91XCA7Civnvqnli5nmlZnogrIgPCBnaW11a3lvdWlrdVwgOwor5Y+j6YGU6ICFIDwga3VjaGlkYXNzaGFcIDsKK+iAkOeGseaApyA8IHRhaW5ldHN1c2VpXCA7CivlopfooYDliaQgPCB6b3VrZXRzdXphaVwgOwor5oKy6Kaz6KuW6ICFIDwgaGlrYW5yb25zaGFcIDsKK+WAi+S6uuaDheWgsSA8IGtvamluam91aG91XCA7CivljJfljJfmnbEgPCBob2t1aG9rdXRvdVwgOwor55m66KiA5qipIDwgaGF0c3VnZW5rZW5cIDsKK+eUuuauteeVneatqSA8IGNob3V0YW5zZWJ1XCA7CivmgKXmiJDplbcgPCBreXV1c2VpY2hvdVwgOwor5Luj55CG5aSn5L2/IDwgZGFpcml0YWlzaGlcIDsKK+ani+mAoOS4u+e+qSA8IGtvdXpvdXNodWdpXCA7Civlh7ros4fpoY0gPCBzaHVzc2hpZ2FrdVwgOwor5YaF5YiG5rOMIDwgbmFpYnVucGl0c3VcIDsKK+WFnOiZqyA8IGthYnV0b211c2hpXCA7CivlhoXnt5rpm7voqbEgPCBuYWlzZW5kZW53YVwgOwor5YWs56S65L6h5qC8IDwga291amlrYWtha3VcIDsKK+a2suS9k+mFuOe0oCA8IGVraXRhaXNhbnNvXCA7Civlm5vml6znr4AgPCBzaGlqdW5zZXRzdVwgOwor5rKD5bqm5LiB5bm+IDwgeW91ZG9jaGlua2lcIDsKK+S5neWumOmzpSA8IGt5dXVrYW5jaG91XCA7CivliJHkuovoqLToqJ8gPCBrZWlqaXNvc2hvdVwgOwor6ICB5Lq65YqbIDwgcm91amlucnlva3VcIDsKK+eovOWDjeS6uuWPoyA8IGthZG91amlua291XCA7Civou73mqZ/plqLpioMgPCBrZWlraWthbmp1dVwgOwor5qmf5a+G5L+d6K23IDwga2ltaXRzdWhvZ29cIDsKK+W7uuevieWjqyA8IGtlbmNoaWt1c2hpXCA7CivlpKrmpbXmi7MgPCB0YWlreW9rdWtlblwgOwor55Sf55Wq57WEIDwgbmFtYWJhbmd1bWlcIDsKK+mkiuauluWgtCA8IHlvdXNob2t1am91XCA7CivkuojlgpnkuqTmuIkgPCB5b2Jpa291c2hvdVwgOwor6Jma6ISx5oSfIDwga3lvZGF0c3VrYW5cIDsKK+ixoeeJmeizqiA8IHpvdWdlc2hpdHN1XCA7CivpmobpvLvooZMgPCByeXV1YmlqdXRzdVwgOwor6KGo6Z2i56mNIDwgaHlvdW1lbnNla2lcIDsKK+mAj+imluWbs+azlSA8IHRvdXNoaXp1aG91XCA7Civnt7Tnv5LoqablkIggPCByZW5zaHV1amlhaVwgOwor5Yqq5Yqb6LOeIDwgZG9yeW9rdXNob3VcIDsKK+WNgeS6uuS4piA8IGp1dW5pbicnbmFtaVwgOwor6Jas6ZG16aCtIDwgeWFrYW4nJ2F0YW1hXCA7Civlj6/oppblhYnnt5ogPCBrYXNoaWtvdXNlblwgOwor562G6KiY6Kmm6aiTIDwgaGlra2lzaGlrZW5cIDsKK+WFrOWumuebuOWgtCA8IGtvdXRlaXNvdWJhXCA7CivkvqHmoLzopo/liLYgPCBrYWtha3VraXNlaVwgOwor5Yqg6YeN5bmz5Z2HIDwga2FqdXVoZWlraW5cIDsKK+atpuijheitpuWumCA8IGJ1c291a2Vpa2FuXCA7CivllYblo7LnrYsgPCBzaG91YmFpc3VqaVwgOwor5rC05a2Q5L6b6aSKIDwgbWl6dWdva3V5b3VcIDsKK+a4r+a5vuWxgCA8IGtvdXdhbmt5b2t1XCA7CivljYPlpInkuIfljJYgPCBzZW5wZW5iYW5rYVwgOwor5rC05ZWG5aOyIDwgbWl6dXNob3ViYWlcIDsKK+mJhOmBk+S+vyA8IHRldHN1ZG91YmluXCA7Civmn7vlrprkvqHmoLwgPCBzYXRlaWtha2FrdVwgOwor5rCR5peP5a2mIDwgbWluem9rdWdha3VcIDsKK+attOWPsuWKhyA8IHJla2lzaGlnZWtpXCA7Civmup3lvaLpi7wgPCBtaXpvZ2F0YWtvdVwgOwor5piO5pmw5aSiIDwgbWVpc2VraXl1bWVcIDsKK+W9ouS9kyA8IG5hcmlrYXRhY2hpXCA7CivkuIvlsaTnpL7kvJogPCBrYXNvdXNoYWthaVwgOwor5pat57aa55qEIDwgZGFuem9rdXRla2lcIDsKK+W8j+mDqOecgSA8IHNoaWtpYnVzaG91XCA7CivmpbXpgZPogIUgPCBnb2t1ZG91bW9ub1wgOwor6ZaL5qCh5byPIDwga2Fpa291c2hpa2lcIDsKK+awkee0hOirliA8IG1pbicneWFrdXJvblwgOwor6Ziy5b6h546HIDwgYm91Z3lvcml0c3VcIDsKK+ihqOmdoueahCA8IGh5b3VtZW50ZWtpXCA7CivoqIjmmYLkv4IgPCBrZWlqaWdha2FyaVwgOwor5b6M55m65ZOBIDwga291aGF0c3VoaW5cIDsKK+iHqueEtuS4u+e+qSA8IHNoaXplbnNodWdpXCA7CivolqnmkannhLwgPCBzYXRzdW1heWFraVwgOwor5bqK5p+xIDwgdG9rb2Jhc2hpcmFcIDsKK+iIiOWRs+acrOS9jSA8IGt5b3VtaWhvbicnaVwgOwor5Ye66Lqr5ZywIDwgc2h1c3NoaW5jaGlcIDsKK+eEoeS9k+izh+eUoyA8IG11dGFpc2hpc2FuXCA7CivorbfouqvooZMgPCBnb3NoaW5qdXRzdVwgOwor57WM5riI5bCB6Y6WIDwga2VpemFpZnV1c2FcIDsKK+ertuS6ieebuOaJiyA8IGt5b3Vzb3VhaXRlXCA7Civlh7rmsqEgPCBzaHV0c3Vib3RzdVwgOwor5LiO5aSq6KmxIDwgeW90YWJhbmFzaGlcIDsKK+W3puerryA8IGhpZGFyaWhhc2hpXCA7Civlho3lhaXlraYgPCBzYWlueXV1Z2FrdVwgOwor5LqU6Lyq5aSn5LyaIDwgZ29yaW50YWlrYWlcIDsKK+WNlOe0hOabuCA8IGt5b3V5YWt1c2hvXCA7Civml6XmnKzkuInmma8gPCBuaWhvbnNhbmtlaVwgOwor5LiJ576954OPIDwgc2FuYmFnYXJhc3VcIDsKK+ioquWVj+WuoiA8IGhvdW1vbmt5YWt1XCA7CivmsrnmgKfloZfmlpkgPCB5dXNlaXRvcnlvdVwgOwor5rK76aiT6JasIDwgY2hpa2VuJyd5YWt1XCA7CivmgKflloToqqwgPCBzZWl6ZW5zZXRzdVwgOwor5LuV5LqL5p+EIDwgc2hpZ290b2dhcmFcIDsKK+Wkp+aguei2syA8IGRhaWtvbicnYXNoaVwgOwor5pS56KiC5aKX6KOcIDwga2FpdGVpem91aG9cIDsKK+S4gOiIrOamguW/tSA8IGlwcGFuZ2FpbmVuXCA7CivlhYnngKzpvo0gPCBtaXRzdXNlcnl1dVwgOwor54u86JeJ6ICFIDwgcm91emVraW1vbm9cIDsKK+W/g+aLjeaVsCA8IHNoaW5wYWt1c3V1XCA7CivlsI/kuIDmmYLplpMgPCBrb2ljaGlqaWthblwgOwor5LiJ6ISa5qSF5a2QIDwgc2Fua3lha3Vpc3VcIDsKK+WLleeJqeiqjCA8IGRvdWJ1dHN1c2hpXCA7Civov5TljbTlgKQgPCBoZW5reWFrdWNoaVwgOwor55qu6Iaa5oSf6KaaIDwgaGlmdWthbmtha3VcIDsKK+eEoemnhOipsSA8IG11ZGFiYW5hc2hpXCA7CivliIblrZDlvI8gPCBidW5zaGlzaGlraVwgOwor6ZmN6LuK5Y+jIDwga291c2hhZ3VjaGlcIDsKK+aknOWHuuWZqCA8IGtlbnNodXRzdWtpXCA7CivmqKnliKnooYzkvb8gPCBrZW5yaWtvdXNoaVwgOwor6JC96JGJ5p2+IDwgcmFrdXlvdXNob3VcIDsKK+alteWJjee3miA8IGt5b2t1emVuc2VuXCA7CivotoXotorngrkgPCBjaG91ZXRzdXRlblwgOwor6buS54yp44CFIDwga3Vyb3Nob3Vqb3VcIDsKK+a8ouWtl+WkieaPmyA8IGthbmppaGVua2FuXCA7Civlm73mhbbnr4AgPCBrb2trZWlzZXRzdVwgOwor54Sh5L2T6LKh55SjIDwgbXV0YWl6YWlzYW5cIDsKK+W3tOeTpiA8IHRvbW9lZ2F3YXJhXCA7CivlpKnnlKPniakgPCB0ZW5zYW5idXRzdVwgOwor57Sz5aOr6YyyIDwgc2hpbnNoaXJva3VcIDsKK+WGjeWFpeWbvSA8IHNhaW55dXVrb2t1XCA7CivlhajkvZPkvJrorbAgPCB6ZW50YWlrYWlnaVwgOwor5LqM6YeN5oq15b2TIDwgbmlqdXV0ZWl0b3VcIDsKK+WIh+aXpSA8IHNoaW1la2lyaWJpXCA7CivmqZ/morDmlofmmI4gPCBraWthaWJ1bm1laVwgOwor57Ch5r2U5oCnIDwga2Fua2V0c3VzZWlcIDsKK+Wkqea0peS5meWlsyA8IGFtYXRzdW90b21lXCA7CivliIfmlq3pnaIgPCBzZXRzdWRhbm1lblwgOwor5byV6L6857eaIDwgaGlraWtvbWlzZW5cIDsKK+WIqeWus+mWouS/giA8IHJpZ2Fpa2Fua2VpXCA7CivlpJrop5LntYzllrYgPCB0YWtha3VrZWllaVwgOwor5aSr5amm5Yil5aeTIDwgZnV1ZnViZXNzZWlcIDsKK+eyl+W/veiAhSA8IHNva290c3Vtb25vXCA7CivplovkvJrlvI8gPCBrYWlrYWlzaGlraVwgOwor5pel5pys6Kqe6KizIDwgbmlob25nb3lha3VcIDsKK+S6pOaPm+apn+iDvSA8IGtvdWthbmtpbm91XCA7CivnlKPljbXloLTmiYAgPCBzYW5yYW5iYXNob1wgOwor5oSf5YK355qEIDwga2Fuc2hvdXRla2lcIDsKK+W4guacieeJqSA8IHNoaXl1dWJ1dHN1XCA7CivotbDooYzot53pm6IgPCBzb3Vrb3VreW9yaVwgOwor54Sh5bC957WE5ZCIIDwgbXVqaW5rdW1pYWlcIDsKK+WGjeeUn+WIqeeUqCA8IHNhaXNlaXJpeW91XCA7CivogZbogbfogIUgPCBzZWlzaG9rdXNoYVwgOwor6Iiq56m65q+N6ImmIDwga291a3V1Ym9rYW5cIDsKK+S4reiho+WaoiA8IG5ha2FnYWt1c2hpXCA7Civni6znq4voqp4gPCBkb2t1cml0c3Vnb1wgOwor5Lq65ZCN6L6e5YW4IDwgamlubWVpaml0ZW5cIDsKK+aYqOmdnuS7iuaYryA8IHNha3VoaWtvbnplXCA7CivogrLlhZDlrqQgPCBpa3VqaXNoaXRzdVwgOwor5paw5Y+k5YW45rS+IDwgc2hpbmtvdGVuaGFcIDsKK+e5geauluWcsCA8IGhhbnNob2t1Y2hpXCA7CivkuIDkurrnp7AgPCBpY2hpbmluc2hvdVwgOwor6ZW35bSO55yMIDwgbmFnYXNha2lrZW5cIDsKK+e1jOWWtuizh+a6kCA8IGtlaWVpc2hpZ2VuXCA7Civlubzlv4MgPCBvc2FuYWdva29yb1wgOwor6KKr5a6z5aaE5oOzIDwgaGlnYWltb3Vzb3VcIDsKK+mbu+WKm+ioiCA8IGRlbnJ5b2t1a2VpXCA7Civoo73msLfnmr8gPCBzZWloeW91emFyYVwgOwor57Sw6I+M5YW15ZmoIDwgc2Fpa2luaGVpa2lcIDsKK+mjveWSjOa6tua2siA8IGhvdXdheW91ZWtpXCA7CivkuIDoiKzkvJroqIggPCBpcHBhbmthaWtlaVwgOwor5rqW5YKZ6LOH6YeRIDwganVuYmlzaGlraW5cIDsKK+S4u+eojuWxgCA8IHNodXplaWt5b2t1XCA7CivmlL/lhZrmlL/msrsgPCBzZWl0b3VzZWlqaVwgOwor5q+N5a2Q5bm06YeRIDwgYm9zaGluZW5raW5cIDsKK+aOpee2muiqniA8IHNldHN1em9rdWdvXCA7Civnibnpm4blj7cgPCB0b2t1c2h1dWdvdVwgOwor6buS6KSQ6ImyIDwga29ra2Fzc2hva3VcIDsKK+e+juWuueaVtOW9oiA8IGJpeW91c2Vpa2VpXCA7CivkuK3lm73kurogPCBjaHV1Z29rdWppblwgOwor6Iqx5621IDwgaGFuYW11c2hpcm9cIDsKK+WIneacn+aKleizhyA8IHNob2tpdG91c2hpXCA7CivmnIDnn63ot53pm6IgPCBzYWl0YW5reW9yaVwgOwor5ZGo6L665qmf5ZmoIDwgc2h1dWhlbmtpa2lcIDsKK+WItumZkOaZgumWkyA8IHNlaWdlbmppa2FuXCA7Civli6TlirTmhI/mrLIgPCBraW5yb3VpeW9rdVwgOwor5b6T5bGe5Zu9IDwganV1em9rdWtva3VcIDsKK+WPo+i/lOetlCA8IGt1Y2hpaGVudG91XCA7CivlgInluqvkvJrnpL4gPCBzb3Vrb2dhaXNoYVwgOwor55S36bClIDwgb3Rva295YW1vbWVcIDsKK+acqumWi+ekvuS8miA8IG1pa2Fpc2hha2FpXCA7CivmuJvoobDnjocgPCBnZW5zdWlyaXRzdVwgOwor5bCO6Zu7546HIDwgZG91ZGVucml0c3VcIDsKK+S4gOS6huewoSA8IGljaGlyeW91a2FuXCA7CivpgY7lpKfoqZXkvqEgPCBrYWRhaWh5b3VrYVwgOwor6Iqx56WtIDwgaGFuYW1hdHN1cmlcIDsKK+WGjei8uOWHuiA8IHNhaXl1c2h1dHN1XCA7CivpnZLpioXoibIgPCBzZWlkb3VzaG9rdVwgOwor56C05buJ5oGl572qIDwgaGFyZW5jaGl6YWlcIDsKK+maiuWVhuWuvyA8IHRhaXNob3V5YWRvXCA7CivmmYLpmZDoo4Xnva4gPCBqaWdlbnNvdWNoaVwgOwor5pmv5rCX5aSJ5YuVIDwga2Vpa2loZW5kb3VcIDsKK+W8j+asoeesrCA8IHNoaWtpc2hpZGFpXCA7CivkuIDmrKHoqJjmhrYgPCBpY2hpamlraW9rdVwgOwor55Sf55Sj54mpIDwgc2Vpc2FuYnV0c3VcIDsKK+ihneWLleihjOeCuiA8IHNob3Vkb3Vrb3VpXCA7CivoqLHlrrnnr4Tlm7IgPCBreW95b3VoYW4nJ2lcIDsKK+W5u+immueXhyA8IGdlbmtha3VzaG91XCA7CivnlJ/nlKPnrqHnkIYgPCBzZWlzYW5rYW5yaVwgOwor5oqV5omL5YqbIDwgdG91c2h1cnlva3VcIDsKK+mWieS8muW8jyA8IGhlaWthaXNoaWtpXCA7CivmspbnqY3lsaQgPCBjaHV1c2VraXNvdVwgOwor5Yy755mC5Lyd6YGTIDwgaXJ5b3VkZW5kb3VcIDsKK+WCrOecoOihkyA8IHNhaW1pbmp1dHN1XCA7CivonZnonaDlgpggPCBrb3Vtb3JpZ2FzYVwgOwor56qB6LKr5bel5LqLIDwgdG9ra2Fua291amlcIDsKK+WQkeaXpeaApyA8IGtvdW5pY2hpc2VpXCA7CivliJ3lp78gPCBoYXRzdXN1Z2F0YVwgOwor5ZC45Y+W57SZIDwgc3VpdG9yaWdhbWlcIDsKK+mBuOiAg+Wfuua6liA8IHNlbmtvdWtpanVuXCA7Civpq5joqbEgPCB0YWthYmFuYXNoaVwgOwor6auY5Zyn55qEIDwga291YXRzdXRla2lcIDsKK+acieWKm+iAhSA8IHl1dXJ5b2t1c2hhXCA7CivliKXllY/poYwgPCBiZXRzdW1vbmRhaVwgOwor5Luj5pWw5byPIDwgZGFpc3V1c2hpa2lcIDsKK+WFpea4r+aWmSA8IG55dXVrb3VyeW91XCA7Civohp3poK0gPCBoaXphZ2FzaGlyYVwgOwor54Sh5a6/6ICFIDwgbXVzaHVrdW1vbm9cIDsKK+mDveW4gumKgOihjCA8IHRvc2hpZ2lua291XCA7Civljp/lrZDlipsgPCBnZW5zaGlyeW9rdVwgOwor5oiQ5paH5b6LIDwgc2VpYnVucml0c3VcIDsKK+eUt+S4gOWMuSA8IG90b2tvaXBwaWtpXCA7CivloZ7moJPnl4cgPCBzb2t1c2Vuc2hvdVwgOwor5ZWG5aOy5p+EIDwgc2hvdWJhaWdhcmFcIDsKK+iFuei2s+mhniA8IGZ1a3Vzb2t1cnVpXCA7CivmnbHljbDluqYgPCBoaWdhc2hpaW5kb1wgOwor6LOH5pys5YqbIDwgc2hpaG9ucnlva3VcIDsKK+W3u+afsSA8IG1ha2liYXNoaXJhXCA7CivnpYflnJLnpa0gPCBnaW9ubWF0c3VyaVwgOwor5LiK5Lqs5LitIDwgam91a3lvdWNodXVcIDsKK+WCrOecoOiWrCA8IHNhaW1pbicneWFrdVwgOwor5a6j5Lyd5pig55S7IDwgc2VuZGVuJydlaWdhXCA7CivmhYjlloTkuovmpa0gPCBqaXplbmppZ3lvdVwgOwor54++6LGh5a2mIDwgZ2Vuc2hvdWdha3VcIDsKK+eni+a0peWztiA8IGFraXRzdXNoaW1hXCA7CivnvorlsI/lsYsgPCBoaXRzdWppZ295YVwgOwor6KOF6aO+5ZOBIDwgc291c2hva3VoaW5cIDsKK+WNg+aXpeaJiyA8IHNlbicnbmljaGl0ZVwgOwor5Yqg6YCf5bqm6KiIIDwga2Fzb2t1ZG9rZWlcIDsKK+WCsuaFouS4jemBnCA8IGdvdW1hbmZ1c29uXCA7CivliJHli5nkvZzmpa0gPCBrZWltdXNhZ3lvdVwgOwor5Zyw55CD6KaP5qihIDwgY2hpa3l1dWtpYm9cIDsKK+akjeawkeWcsCA8IHNob2t1bWluY2hpXCA7CivpgJTkuK3oqIjmmYIgPCB0b2NodXVrZWlqaVwgOwor5aSW5YiG5rOMIDwgZ2FpYnVucGl0c3VcIDsKK+mao+i/keaJgCA8IHRvbmFyaWtpbmpvXCA7Civlr77poILop5IgPCB0YWljaG91a2FrdVwgOwor6auY5bCE54m556eRIDwga291c2hhdG9ra2FcIDsKK+iCqeeUsumqqCA8IGtlbmtvdWtvdHN1XCA7CivkuInpnaLlha3oh4IgPCBzYW5tZW5yb3BwaVwgOwor5b6u5YiG5pat6Z2iIDwgYmlidW5kYW5tZW5cIDsKK+WIhuWoqeS9nOeUqCA8IGJ1bmJlbnNheW91XCA7CivohbDlvIHlvZMgPCBrb3NoaWJlbnRvdVwgOwor5Y+j5ben6ICFIDwga3VjaGlnb3VzaGFcIDsKK+S/neWBpeS9k+iCsiA8IGhva2VudGFpaWt1XCA7CivmmrTotbDpgYvou6IgPCBib3Vzb3V1bnRlblwgOwor5bqV5YqbIDwgc29rb2RqaWthcmFcIDsKK+S4jeS4luWHuiA8IGZ1c2Vpc2h1dHN1XCA7Civoq67llY/mqZ/plqIgPCBzaGltb25raWthblwgOwor5YWI5pel5LuYIDwgc2FraWhpZHp1a2VcIDsKK+mAj+imluWKmyA8IHRvdXNoaXJ5b2t1XCA7CivlibXoqK3ogIUgPCBzb3VzZXRzdXNoYVwgOwor55Sw6IiO6Iqd5bGFIDwgaW5ha2FzaGliYWlcIDsKK+mHkemtmumJoiA8IGtpbmd5b2JhY2hpXCA7CivnmYzpgbrkvJ3lrZAgPCBnYW4nJ2lkZW5zaGlcIDsKK+eZvumsvOWknOihjCA8IGh5YWtraXlha291XCA7CivnhKHmrbvmuoDloYEgPCBtdXNoaW1hbnJ1aVwgOwor5LqM55Wq5oq15b2TIDwgbmliYW50ZWl0b3VcIDsKK+ihkuWtpueahCA8IGdlbmdha3V0ZWtpXCA7Civnt4/li5npg6jplbcgPCBzb3VtdWJ1Y2hvdVwgOwor6YeR55+z5a2mIDwga2luc2VraWdha3VcIDsKK+mHjuiPnOeVkSA8IHlhc2FpYmF0YWtlXCA7Civoh6rnlLHosr/mmJMgPCBqaXl1dWJvdWVraVwgOwor5bmz5ZKM5p2h6aCFIDwgaGVpd2Fqb3Vrb3VcIDsKK+ebtOaEn+eahCA8IGNob2trYW50ZWtpXCA7Civli5Xniannm7ggPCBkb3VidXRzdXNvdVwgOwor5rCX5YiG6Lui5o+bIDwga2lidW50ZW5rYW5cIDsKK+izg+S7leS6iyA8IGNoaW5zaGlnb3RvXCA7CivnibnoqLHkuLsgPCB0b2treW9udXNoaVwgOwor5YSS5pWZ5Li7576pIDwganVreW91c2h1Z2lcIDsKK+Wliee0jeeJqSA8IGhvdW5vdWJ1dHN1XCA7CivlpbPmrYzoiJ7kvI4gPCBvbicnbmFrYWJ1a2lcIDsKK+S/nemHiOS4rSA8IGhvc2hha3VjaHV1XCA7Civpo5vooYzmqZ/pm7IgPCBoaWtvdWtpZ3Vtb1wgOwor6Z2S6JeN6ImyIDwgc2VpcmFuc2hva3VcIDsKK+iEhei/q+iAhSA8IGt5b3VoYWt1c2hhXCA7Civli5XniannlYwgPCBkb3VidXRzdWthaVwgOwor6Lev6Z2i6Zu76LuKIDwgcm9tZW5kZW5zaGFcIDsKK+mAmuihjOS4iiA8IHRzdXVrb3Vkb21lXCA7CivlvLflparogIUgPCBnb3VkYXRzdXNoYVwgOwor6ISF6L+r572qIDwga3lvdWhha3V6YWlcIDsKK+WNmOeLrOihjOeCuiA8IHRhbmRva3Vrb3VpXCA7Civlm6PntZDmqKkgPCBkYW5rZXRzdWtlblwgOwor6Kqg5b+D6Kqg5oSPIDwgc2Vpc2hpbnNlaWlcIDsKK+e0hOWNiuW5tCA8IHlha3VoYW4nJ25lblwgOwor5pel5pys5paZ55CGIDwgbmlob25yeW91cmlcIDsKK+aKleelqOeusSA8IHRvdWh5b3ViYWtvXCA7CivntKDkurroirggPCBzaGlyb3V0b2dlaVwgOwor56mN5qW15oCnIDwgc2Vra3lva3VzZWlcIDsKK+alteW6p+aomSA8IGt5b2t1emFoeW91XCA7Civlr53mraPmnIggPCBuZXNob3VnYXRzdVwgOwor5rWa5rir5qmfIDwgc2h1bnNldHN1a2lcIDsKK+e/vOmdouepjSA8IHlva3VtZW5zZWtpXCA7CivnlbPooaggPCB0YXRhbWlvbW90ZVwgOwor57eP55uu6YyyIDwgc291bW9rdXJva3VcIDsKK+aguOWPjeW/nCA8IGtha3VoYW4nJ25vdVwgOwor5Yi26YW46JasIDwgc2Vpc2FuJyd5YWt1XCA7CivotoXkurrnmoQgPCBjaG91amludGVraVwgOwor56ys5LiA5rWBIDwgZGFpaWNoaXJ5dXVcIDsKK+aVheS6i+adpeattCA8IGtvamlyYWlyZWtpXCA7CivlhoXovKrllqflmKkgPCB1Y2hpd2FnZW5rYVwgOwor6Laz5ouN5a2QIDwgYXNoaWJ5b3VzaGlcIDsKK+W8seadkOaWmSA8IHlvd2F6YWlyeW91XCA7CivmjqXop6bnt5ogPCBzZXNzaG9rdXNlblwgOwor5Lqc56Gd6YW45aGpIDwgYXNob3VzYW4nJ2VuXCA7CivkuIDop5LnjaPluqcgPCBpa2tha3VqdXV6YVwgOwor5Ye65YqbIDwgc2h1dHN1cnlva3VcIDsKK+W9ueWKm+WjqyA8IHlha3VyaWtpc2hpXCA7CivntbHovYTogIUgPCB0b3VrYXRzdXNoYVwgOwor5Y+N5L2T5Yi25rS+IDwgaGFudGFpc2VpaGFcIDsKK+WMuuWKg+aVtOeQhiA8IGt1a2FrdXNlaXJpXCA7Civku5XkuovkuK0gPCBzaGlnb3RvY2h1dVwgOwor5Zyf55m+5aeTIDwgZG9ieWFrdXNob3VcIDsKK+aWh+WtpuizniA8IGJ1bmdha3VzaG91XCA7Civmi5voq4vlm70gPCBzaG91c2Vpa29rdVwgOwor57eP5Y+O5YWlIDwgc291c2h1dW55dXVcIDsKK+a4rOmHj+iIuSA8IHNva3VyeW91c2VuXCA7CivmlL7ku7vkuLvnvqkgPCBob3VuaW5zaHVnaVwgOwor6YG65peP57Wm5LuYIDwgaXpva3VreXV1ZnVcIDsKK+WkieS9jeWItuW+oSA8IGhlbicnaXNlaWd5b1wgOwor5YCf5Zyw5qipIDwgc2hha3VjaGlrZW5cIDsKK+aWh+mDqOWkp+iHoyA8IG1vbmJ1ZGFpamluXCA7CivlpbPmqKnoq5bogIUgPCBqb2tlbnJvbnNoYVwgOwor5LiL5aOr5a6Y5YW1IDwga2FzaGlrYW5oZWlcIDsKK+ayluepjeS4liA8IGNodXVzZWtpc2VpXCA7CivkuK3npoXlr7rmuZYgPCBjaHV1emVuamlrb1wgOwor5Y+j6L+w5pu4IDwga291anV0c3VzaG9cIDsKK+auieiBt+iAhSA8IGp1bnNob2t1c2hhXCA7Civoo73lk4Hljp/kvqEgPCBzZWloaW5nZW5rYVwgOwor5Lq65rCR5Li7576pIDwgamlubWluc2h1Z2lcIDsKK+WLieW8t+mDqOWxiyA8IGJlbmt5b3ViZXlhXCA7Civnl4XomavlrrMgPCBieW91Y2h1dWdhaVwgOwor56We5a6u5aSW6IuRIDwgamluZ3V1Z2FpZW5cIDsKK+ahnOmkhSA8IHNha3VyYW1vY2hpXCA7CivmoZzpo68gPCBzYWt1cmFtZXNoaVwgOwor5oqA6KGT55qEIDwgZ2lqdXRzdXRla2lcIDsKK+Wwj+iqrOWutiA8IHNob3VzZXRzdWthXCA7CivnibnntITlupcgPCB0b2t1eWFrdXRlblwgOwor5Lqk6YCa6YePIDwga291dHN1dXJ5b3VcIDsKK+WFqOiIrOaUr+aPtCA8IHplbnBhbnNoaWVuXCA7CivlsJHlo67mnInngrogPCBzaG91c291eXV1aVwgOwor57WM5Y+j5oqV5LiOIDwga2Vpa291dG91eW9cIDsKK+mBk+ahiOWGhSA8IG1pY2hpYW4nJ25haVwgOwor5o+b5rCX6KOF572uIDwga2Fua2lzb3VjaGlcIDsKK+WFseWSjOWItuW6piA8IGt5b3V3YXNlaWRvXCA7CivpgZPmma7oq4sgPCBtaWNoaWJ1c2hpblwgOwor5aW96Imy6ICFIDwga291c2hva3VzaGFcIDsKK+S6jOiqsuWLieW8tyA8IG5pa2FiZW5reW91XCA7Civmtojoh63liaQgPCBzaG91c2h1dXphaVwgOwor5LqI6Ziy5o6l56iuIDwgeW9ib3VzZXNzaHVcIDsKK+eLrOWWhOeahCA8IGRva3V6ZW50ZWtpXCA7CivnlbDlm73mg4Xnt5IgPCBpa29rdWpvdWNob1wgOwor6Kej5YOP5YqbIDwga2Fpem91cnlva3VcIDsKK+mBi+i7ouWBnOatoiA8IHVudGVudGVpc2hpXCA7Civmgqrlj6Ppm5HoqIAgPCBha2tvdXpvdWdvblwgOwor6LuN5rOV5Lya6K2wIDwgZ3VucG91a2FpZ2lcIDsKK+ebtOWHuiA8IGNob2t1c2h1dHN1XCA7CivmtbjpgI/lnKcgPCBzaGludG91YXRzdVwgOwor54ax6KGA5ryiIDwgbmVra2V0c3VrYW5cIDsKK+WkqeWcsOeEoeeUqCA8IHRlbmNoaW11eW91XCA7CivnlbPogbcgPCB0YXRhbWlzaG9rdVwgOwor55Ww5bi45oCn5qyyIDwgaWpvdXNlaXlva3VcIDsKK+Wyqeefs+WtpiA8IGdhbnNla2lnYWt1XCA7CivonJzmn5HnlZEgPCBtaWthbmJhdGFrZVwgOwor54OP5aSp54uXIDwga2FyYXN1dGVuZ3VcIDsKK+e0s+Wjq+eahCA8IHNoaW5zaGl0ZWtpXCA7Civkurrlt6Xlj5fog44gPCBqaW5rb3VqdXRhaVwgOwor5pel5pys5paH5rOVIDwgbmlob25idW5wb3VcIDsKK+eqkuaBr+atuyA8IGNoaXNzb2t1c2hpXCA7CivkuIrkuIvmsLTpgZMgPCBqb3VnZXN1aWRvdVwgOwor5LiJ5aSn56+AIDwgc2FuZGFpc2V0c3VcIDsKK+a0u+aWreWxpCA8IGthdHN1ZGFuc291XCA7CivpioDooYzlj6PluqcgPCBnaW5rb3Vrb3V6YVwgOwor55uu6by756uLIDwgbWVoYW5hZGFjaGlcIDsKK+WRqOacn+W+iyA8IHNodXVraXJpdHN1XCA7CivojYnlhqAgPCBrdXNha2FubXVyaVwgOwor6YCA57SF6ImyIDwgdGFpa291c2hva3VcIDsKK+Wkj+acn+Wkp+WtpiA8IGtha2lkYWlnYWt1XCA7CivpgKPpgqborbDkvJogPCByZW5wb3VnaWthaVwgOwor5pKu5YOP566hIDwgc2F0c3V6b3VrYW5cIDsKK+iFueWFq+WIhiA8IGhhcmFoYWNoaWJ1XCA7CivmnKvmnJ/nl4fnirYgPCBtYWtraWpvdXRhaVwgOwor5LqU5q615YuV6KmeIDwgZ29kYW5kb3VzaGlcIDsKK+eri+azleapn+mWoiA8IHJpcHBvdWtpa2FuXCA7Civlm6Dlvqrlp5Hmga8gPCBpbmp1bmtvc29rdVwgOwor6YCy5YWl6LevIDwgc2hpbicnbnl1dXJvXCA7CivlpKflsbHmpJLprZogPCBvb3NhbnNob3V1b1wgOwor6JmO6KaW55yI55yIIDwga29zaGl0YW50YW5cIDsKK+iDjOaXpeaApyA8IGhhaWppdHN1c2VpXCA7Civog4zpnaLpo5vooYwgPCBoYWltZW5oaWtvdVwgOwor5by+5Li46YGT6LevIDwgZGFuZ2FuZG91cm9cIDsKK+mWk+Wlj+absiA8IGthbnNvdWt5b2t1XCA7CivlhKrlhYjlpJbosqggPCB5dXVzZW5nYWlrYVwgOwor5b2T55So5ryi5a2XIDwgdG91eW91a2FuamlcIDsKK+aMh+WNl+W9uSA8IHNoaW5hbicneWFrdVwgOwor6ISF6L+r54q2IDwga3lvdWhha3Vqb3VcIDsKK+awkeacrOS4u+e+qSA8IG1pbnBvbnNodWdpXCA7Civlip/lkI3lv4MgPCBrb3VteW91c2hpblwgOwor5Zue5pWZ5Zu9IDwga2Fpa3lvdWtva3VcIDsKK+mqqOiGnOeCjiA8IGtvdHN1bWFrdWVuXCA7Civkurrlt6Xlj5fntJsgPCBqaW5rb3VqdWZ1blwgOwor5Li76KaB54mp5L6hIDwgc2h1eW91YnVra2FcIDsKK+ayouW6tea8rCA8IHRha3VhbmR6dWtlXCA7CivmoLnliIfomasgPCBuZWtpcmltdXNoaVwgOwor5Lq65bel5Y+X57K+IDwgamlua291anVzZWlcIDsKK+mAgeaWmeWFsSA8IHNvdXJ5b3V0b21vXCA7CivlvLXmnKzkurogPCBjaG91aG9uJyduaW5cIDsKK+eZu+Wxsembu+i7iiA8IHRvemFuZGVuc2hhXCA7CivmmqvlrprmlL/lupwgPCB6YW50ZWlzZWlmdVwgOwor5LmX6LuK5Y+jIDwgam91c2hhZ3VjaGlcIDsKK+S5l+WQiOmmrOi7iiA8IG5vcmlhaWJhc2hhXCA7CivkuIDml6Xot68gPCBpY2hpbmljaGlqaVwgOwor5Zyw6LOq5ZuzIDwgY2hpc2hpdHN1enVcIDsKK+acn+aIkOWQjOebnyA8IGtpc2VpZG91bWVpXCA7Civnq4vmmI7miKYgPCByaXRzdW1laXNlblwgOwor5oq96LGh6KuWIDwgY2h1dXNob3Vyb25cIDsKK+aVo+WFieaYn+mbsiA8IHNhbmtvdXNlaXVuXCA7Civku5XoqLPooaggPCBzaGl3YWtlaHlvdVwgOwor6aOi6aST55mC5rOVIDwga2lnYXJ5b3Vob3VcIDsKK+WbveeojuW6gSA8IGtva3V6ZWljaG91XCA7Civns7jlgY/mma/msJcgPCBpdG9oZW5rZWlraVwgOwor54mp5L6h5aSJ5YuVIDwgYnVra2FoZW5kb3VcIDsKK+aAp+aCquiqrCA8IHNlaWFrdXNldHN1XCA7Civov5Hpg4rpg73luIIgPCBraW5rb3V0b3NoaVwgOwor5oeQ6YO355eFIDwga2Fpa3lvdWJ5b3VcIDsKK+WFrOmWi+acn+mWkyA8IGtvdWthaWtpa2FuXCA7CivliY3lvozkuI3oppogPCB6ZW5nb2Z1a2FrdVwgOwor5rqW5YKZ5L2T5pONIDwganVuYml0YWlzb3VcIDsKK+avjeezu+WutuaXjyA8IGJva2Vpa2F6b2t1XCA7Civmra/np5HljLvooZMgPCBzaGlrYWlqdXRzdVwgOwor6YeR566h5qW95ZmoIDwga2lua2FuZ2Fra2lcIDsKK+WIh+eji+eQouejqCA8IHNlc3NhdGFrdW1hXCA7CivkuIDmmYLop6Ppm4cgPCBpY2hpamlrYWlrb1wgOwor5p+R5qmY6aGeIDwga2Fua2l0c3VydWlcIDsKK+mBi+i7ouizh+mHkSA8IHVudGVuc2hpa2luXCA7CivloZHmgKfpmZDnlYwgPCBzb3NlaWdlbmthaVwgOwor6YeR5qip5pS/5rK7IDwga2lua2Vuc2VpamlcIDsKK+mYsuW+oemDqOmaiiA8IGJvdWd5b2J1dGFpXCA7CivpnZnmraLooZvmmJ8gPCBzZWlzaGllaXNlaVwgOwor5LiA6Z+z56+AIDwgaWNoaW9uc2V0c3VcIDsKK+WGjeW6puWNlOitsCA8IHNhaWRva3lvdWdpXCA7CivohLHngq3phbggPCBkYXRzdXRhbnNhblwgOwor5paw5oqA6KGTIDwgc2hpbmdpanV0c3VcIDsKK+mAhuaOouefpSA8IGd5YWt1dGFuY2hpXCA7CivkuIDliIflkIjosqEgPCBpc3NhaWdhc3NhaVwgOwor6YG655Sj55u457aaIDwgaXNhbnNvdXpva3VcIDsKK+aLvuW+l+iAhSA8IHNodXV0b2t1c2hhXCA7Civlrp3nianmrr8gPCBob3Vtb3RzdWRlblwgOwor5Zar54WZ5bitIDwga2l0c3VlbnNla2lcIDsKK+WGt+ihgOa8oiA8IHJlaWtldHN1a2FuXCA7CivloZHmgKflpInlvaIgPCBzb3NlaWhlbmtlaVwgOwor6KaL5qeY6KaL55yf5Ly8IDwgbWl5b3VtaW1hbmVcIDsKK+S4u+WKm+iJpiA8IHNodXJ5b2t1a2FuXCA7CivkuIDlpKnlm5vmtbcgPCBpdHRlbnNoaWthaVwgOwor6LuK5aSn5belIDwga3VydW1hZGFpa3VcIDsKK+mBjumjn+eXhyA8IGthc2hva3VzaG91XCA7Civpn7Ppn7/lirnmnpwgPCBvbmt5b3Vrb3VrYVwgOwor5a6/5ZG96KuWIDwgc2h1a3VtZWlyb25cIDsKK+WFpemHkeelqCA8IG55dXVraW5oeW91XCA7CivljZjmnKzkvY3mgKcgPCB0YW5ob24nJ2lzZWlcIDsKK+mbsuaVo+mcp+a2iCA8IHVuc2FubXVzaG91XCA7CivlhajkvZPkuLvnvqkgPCB6ZW50YWlzaHVnaVwgOwor6Iqx5bGL5pW3IDwgaGFuYXlhc2hpa2lcIDsKK+WFseeZvemrqiA8IHRvbW9zaGlyYWdhXCA7CivlgZzmraLmmYLplpMgPCB0ZWlzaGlqaWthblwgOwor5L2O56m66aOb6KGMIDwgdGVpa3V1aGlrb3VcIDsKK+WPo+W6p+S/giA8IGtvdXpha2FrYXJpXCA7Civnk6LomasgPCB0ZW50b3VtdXNoaVwgOwor55Sf5a2Y546HIDwgc2Vpem9ucml0c3VcIDsKK+aUr+W6pumDqOWxiyA8IHNoaXRha3ViZXlhXCA7CivnhormnKznnIwgPCBrdW1hbW90b2tlblwgOwor55u06Yqt5b2iIDwgY2hva3VzZW5rZWlcIDsKK+WLleeJqeaApyA8IGRvdWJ1dHN1c2VpXCA7Civljp/niIbnl4cgPCBnZW5iYWt1c2hvdVwgOwor5Yqg5bel6LK/5piTIDwga2Frb3Vib3Vla2lcIDsKK+ihm+aYn+aUvumAgSA8IGVpc2VpaG91c291XCA7Civpm7vmsJfliIbop6MgPCBkZW5raWJ1bmthaVwgOwor5bem5LiLIDwgaGlkYXJpc2hpdGFcIDsKK+miqOiHtOWcsOWMuiA8IGZ1dWNoaWNoaWt1XCA7Civlr4bplonlrrnlmaggPCBtaXBwZWl5b3VraVwgOwor6YCj5biv5YK15YuZIDwgcmVudGFpc2FpbXVcIDsKK+mHkeWJm+iWqeWglSA8IGtvbmdvdXNhdHRhXCA7CivkuIDkurrlpKnkuIsgPCBoaXRvcmlkZW5rYVwgOwor6Zu75YuV5byPIDwgZGVuZG91c2hpa2lcIDsKK+aZgumWk+WPjei7oiA8IGppa2FuaGFudGVuXCA7CivnlJ/nlKPlipsgPCBzZWlzYW5yeW9rdVwgOwor5Ymv54mn5birIDwgZnVrdWJva3VzaGlcIDsKK+iBlumkkOW8jyA8IHNlaXNhbnNoaWtpXCA7CivpgIbplqLmlbAgPCBneWFrdWthbnN1dVwgOwor5LiD5LqU5LiJIDwgc2hpY2hpZ29zYW5cIDsKK+mnkOeVmei7jSA8IGNodXVyeXV1Z3VuXCA7CivllK/nianoq5YgPCB5dWlidXRzdXJvblwgOwor5peF5ZWG5Lq6IDwgdGFiaXNob3VuaW5cIDsKK+ilv+asp+aWh+aYjiA8IHNlaW91YnVubWVpXCA7CivkuIvpg6jntYTnuZQgPCBrYWJ1c29zaGlraVwgOwor55u45LmX5Yq55p6cIDwgc291am91a291a2FcIDsKK+awtOW5s+i3nemboiA8IHN1aWhlaWt5b3JpXCA7Civnmb7lh7ogPCBoeWFrdXNodXRzdVwgOwor5oqA6KGT5paZIDwgZ2lqdXRzdXJ5b3VcIDsKK+i7jeWCmeaSpOW7gyA8IGd1bmJpdGVwcGFpXCA7Civlm7rmnInlkI3oqZ4gPCBrb3l1dW1laXNoaVwgOwor57e057+S5bizIDwgcmVuc2h1dWNob3VcIDsKK+mAoOefs+mrmCA8IHpvdWtva3VkYWthXCA7Civou43pmorlvI8gPCBndW50YWlzaGlraVwgOwor57+76Kiz6ICFIDwgaG9uJyd5YWt1c2hhXCA7CivmvaTnm67psK8gPCB1cnVtZWl3YXNoaVwgOwor5Lq66ZaT55aO5aSWIDwgbmluZ2Vuc29nYWlcIDsKK+iMtuikkOiJsiA8IGNoYWthc3Nob2t1XCA7Civnorrlrp/luqYgPCBrYWt1aml0c3Vkb1wgOwor5pyJ5qmf5YyW5a2mIDwgeXV1a2lrYWdha3VcIDsKK+e3j+WKm+aIpiA8IHNvdXJ5b2t1c2VuXCA7Civku7LplpPlgKTmrrUgPCBuYWthbWFuZWRhblwgOwor5aW96Imy5ryiIDwga291c2hva3VrYW5cIDsKK+a4qeaVheefpeaWsCA8IG9ua29jaGlzaGluXCA7CivliJ3mipXnqL8gPCBoYXRzdXRvdWtvdVwgOwor5LiH5LiH5LiAIDwgbWFubWFuJydpY2hpXCA7Civmmpfoppboo4Xnva4gPCBhbnNoaXNvdWNoaVwgOwor5Zu95a626Kmm6aiTIDwga29ra2FzaGlrZW5cIDsKK+mdkuaenOW4guWgtCA8IHNlaWthaWNoaWJhXCA7Civoi6Xkvo0gPCB3YWthemFtdXJhaVwgOwor57Sz5aOr5pyNIDwgc2hpbnNoaWZ1a3VcIDsKK+awkeS6i+ijgeWIpCA8IG1pbmppc2FpYmFuXCA7Civljp/lrZDlhbXlmaggPCBnZW5zaGloZWlraVwgOwor5LiA5LuV5LqLIDwgaGl0b3NoaWdvdG9cIDsKK+WXheelnue1jCA8IGt5dXVzaGlua2VpXCA7Civogq/lrprlv5znrZQgPCBrb3V0ZWlvdXRvdVwgOwor5aSJ5pu05LiN6IO9IDwgaGVua291ZnVub3VcIDsKK+e2mee2mueahCA8IGtlaXpva3V0ZWtpXCA7CivmloflrabnmoQgPCBidW5nYWt1dGVraVwgOwor57SA5Yui5pys57eaIDwga2lzZWlob25zZW5cIDsKK+WAmeeUsSA8IHNvdXJvdXlvc2hpXCA7Civpurvoo4/ojYnlsaUgPCBhc2F1cmF6b3VyaVwgOwor5YWt6YeN5ZSxIDwgcm9rdWp1dXNob3VcIDsKK+WPsOa5vuWdiuS4uyA8IHRhaXdhbmJvdXp1XCA7CivlraPliIrpm5HoqowgPCBraWthbnphc3NoaVwgOwor5Y2X6Zi/5oim5LqJIDwgbmFuJydhc2Vuc291XCA7CivnhKHnt5rlkajms6IgPCBtdXNlbnNodXVoYVwgOwor546E5Lq6562LIDwga3Vyb3V0b3N1amlcIDsKK+mVt+acn+mHkeWIqSA8IGNob3VraWtpbnJpXCA7Civlm4PlrZDmlrkgPCBoYXlhc2hpa2F0YVwgOwor5aSn5Lq654mpIDwgZGFpamluYnV0c3VcIDsKK+mjm+ihjOapn+etiSA8IGhpa291a2luYWRvXCA7CivlgoDlhKHmlL/lupwgPCBrYWlyYWlzZWlmdVwgOwor5ZCM57O76ImyIDwgZG91a2Vpc2hva3VcIDsKK+e0heeZveeyiSA8IGJlbmlvc2hpcm9pXCA7CivlrqPoqpPlvI8gPCBzZW5zZWlzaGlraVwgOwor5biC5aSW6Zu76KmxIDwgc2hpZ2FpZGVud2FcIDsKK+mAo+mCpuaUv+W6nCA8IHJlbnBvdXNlaWZ1XCA7CivmlL7mrYzpq5jlkJ8gPCBob3VrYWtvdWdpblwgOwor5Lit5ZKM54axIDwgY2h1dXdhbmV0c3VcIDsKK+W+rumHj+WFg+e0oCA8IGJpcnlvdWdlbnNvXCA7Civoi7HlrZfmlrDogZ4gPCBlaWppc2hpbmJ1blwgOwor5rqA6Lqr5Ym155eNIDwgbWFuc2hpbnNvdWlcIDsKK+esrOS6jOe1hOWQiCA8IGRhaW5pa3VtaWFpXCA7CivmtojogJfnmoQgPCBzaG91a291dGVraVwgOwor5pS75pKD55qEIDwga291Z2VraXRla2lcIDsKK+Wfi+iUteeJqSA8IG1haXpvdWJ1dHN1XCA7Civlia/oqq3mnKwgPCBmdWt1ZG9rdWhvblwgOwor6bqd6aaZ6bygIDwgamFrb3VuZXp1bWlcIDsKK+acqOizg+WuvyA8IGtpY2hpbicneWFkb1wgOwor5Zub6KeS5p+xIDwgc2hpa2FrdWNodXVcIDsKK+S4reepuuWjgSA8IGNodXVrdXVrYWJlXCA7CivlqabkurrorablrpggPCBmdWppbmtlaWthblwgOwor6ICD6Ki85a2mIDwga291c2hvdWdha3VcIDsKK+esrOS4ieS4lueVjCA8IGRhaXNhbnNla2FpXCA7Civmr5jmspnploDlpKkgPCBiaXNoYW1vbnRlblwgOwor56S+5Lya5Li7576pIDwgc2hha2Fpc2h1Z2lcIDsKK+WtpuS9jeirluaWhyA8IGdha3Vpcm9uYnVuXCA7Civlrp/oqLznmoQgPCBqaXNzaG91dGVraVwgOwor5pWR5riI562WIDwga3l1dXNhaXNha3VcIDsKK+i7jeWbveiqvyA8IGd1bmtva3VjaG91XCA7Civnmb3onYvnl4UgPCBoYWt1cm91YnlvdVwgOwor56S+5Lqk6L6e5LukIDwgc2hha291amlyZWlcIDsKK+W+tOWFteW/jOmBvyA8IGNob3VoZWlraWhpXCA7Civni4Lniqznl4UgPCBreW91a2VuYnlvdVwgOwor5rCR6KGG55qEIDwgbWluc2h1dXRla2lcIDsKK+apn+S8muWdh+etiSA8IGtpa2Fpa2ludG91XCA7Civmmqvlrprmjqrnva4gPCB6YW50ZWlzb2NoaVwgOwor5pa55ZCR6Z+z55e0IDwgaG91a291b25jaGlcIDsKK+S4gOS4oeW5tCA8IGljaGlyeW91bmVuXCA7CivkuJbnlYzpioDooYwgPCBzZWthaWdpbmtvdVwgOwor5aSn5LuP5q6/IDwgZGFpYnV0c3VkZW5cIDsKK+WIuemCo+eahCA8IHNldHN1bmF0ZWtpXCA7CivlhajmqKnlp5Tku7sgPCB6ZW5rZW4nJ2luaW5cIDsKK+S8veipsSA8IHRvZ2liYW5hc2hpXCA7Civoh6rnhLboqIDoqp4gPCBzaGl6ZW5nZW5nb1wgOwor5YuF5Lu75a6YIDwgY2hva3VuaW5rYW5cIDsKK+iqh+Wkp+WmhOaDsyA8IGtvZGFpbW91c291XCA7Civlj4zljYHnr4AgPCBzb3VqdXVzZXRzdVwgOwor5aW96Imy5pysIDwga291c2hva3Vib25cIDsKK+WMlueyp+mBk+WFtyA8IGtlc2hvdWRvdWd1XCA7CivkuI3lpInos4fmnKwgPCBmdWhlbnNoaWhvblwgOwor56qS5YyW54mpIDwgY2hpa2thYnV0c3VcIDsKK+advumjviA8IG1hdHN1a2F6YXJpXCA7CivkuInop5Lnv7wgPCBzYW5rYWt1eW9rdVwgOwor6LOe5ZGz5pyf6ZmQIDwgc2hvdW1pa2lnZW5cIDsKK+aIkOmVt+agqiA8IHNlaWNob3VrYWJ1XCA7Civnn7PmnZDllYYgPCBzZWtpemFpc2hvdVwgOwor5L6b6KiX6YeRIDwga3lvdXRha3VraW5cIDsKK+W/g+iHk+WkluenkSA8IHNoaW56b3VnZWthXCA7CivnjKvpoY3lpKcgPCBieW91Z2FrdWRhaVwgOwor5Zyw5pa56ImyIDwgY2hpaG91c2hva3VcIDsKK+W5vuS9lee0muaVsCA8IGtpa2FreXV1c3V1XCA7CivkuInpg6jlkIjlpY8gPCBzYW5idWdhc3NvdVwgOwor55Sf5Lit57aZIDwgbmFtYWNodXVrZWlcIDsKK+WQuOWPjuWJpCA8IGt5dXVzaHV1emFpXCA7Civokpnlj6TkurrnqK4gPCBtb3Vrb2ppbnNodVwgOwor6Zu75rCX5YyW5a2mIDwgZGVua2lrYWdha3VcIDsKK+adsemiqCA8IGhpZ2FzaGlrYXplXCA7Civlu7rolL3njocgPCBrZW5wZWlyaXRzdVwgOwor5a6i6Kaz55qEIDwga3lha2thbnRla2lcIDsKK+ixhuiFkOS4gOS4gSA8IHRvdWZ1aXRjaG91XCA7Civmtojosrvpg73luIIgPCBzaG91aGl0b3NoaVwgOwor5LiL57Sa6IG3IDwga2FreXV1c2hva3VcIDsKK+S4gOS4gOOAh+eVqiA8IGh5YWt1dG9vYmFuXCA7Civkv67po77oqp4gPCBzaHV1c2hva3Vnb1wgOwor5a625peP5Yi25bqmIDwga2F6b2t1c2VpZG9cIDsKK+eUn+WtmOacn+mWkyA8IHNlaXpvbmtpa2FuXCA7CivlpKfpo5/mvKIgPCB0YWlzaG9rdWthblwgOwor5Ya356yR55qEIDwgcmVpc2hvdXRla2lcIDsKK+aUr+e1pumhjSA8IHNoaWt5dXVnYWt1XCA7CivkuI3lnYfos6ogPCBmdWtpbnNoaXRzdVwgOwor5Luj6KGo55qEIDwgZGFpaHlvdXRla2lcIDsKK+WFpemBk+mbsiA8IG55dXVkb3VndW1vXCA7Civph47oia/ku5XkuosgPCBub3Jhc2hpZ290b1wgOwor5YWx6YCa54K5IDwga3lvdXRzdXV0ZW5cIDsKK+aXpeS8iui+nuWFuCA8IG5pY2hpaWppdGVuXCA7CivlhazlvrPlv4MgPCBrb3V0b2t1c2hpblwgOwor5LiN5q2j5LmX6LuKIDwgZnVzZWlqb3VzaGFcIDsKK+iqv+afu+e1kOaenCA8IGNob3VzYWtla2thXCA7CivlvaLlvI/oq5YgPCBrZWlzaGlraXJvblwgOwor5LiN5b2T5buJ5aOyIDwgZnV0b3VyZW5iYWlcIDsKK+mHkeeSsOmjnyA8IGtpbmthbnNob2t1XCA7Civlh7rmnK3miYAgPCBzaHVzc2F0c3Vqb1wgOwor5ruF5aSa55+i6bGIIDwgbWV0dGF5YXRhcmFcIDsKK+WMl+altea1tyA8IGhva2t5b2t1a2FpXCA7CivliY3kurrmnKrouI8gPCB6ZW5qaW5taXRvdVwgOwor6KGM5a6Y5bqBIDwgZ3lvdWthbmNob3VcIDsKK+S4jeW9k+WIqeW+lyA8IGZ1dG91cml0b2t1XCA7Civlm57mlZnlr7rpmaIgPCBrYWlreW91amlpblwgOwor5L+d6Lqr6KGTIDwgaG9zaGluanV0c3VcIDsKK+mRkeitmOecvCA8IGthbnNoaWtpZ2FuXCA7CivljJfmpbXmtIsgPCBob2treW9rdXlvdVwgOwor6LWk57SrIDwgYWthbXVyYXNha2lcIDsKK+i7jeS6i+iok+e3tCA8IGd1bmppa3VucmVuXCA7CivlvavliLvnlYwgPCBjaG91a29rdWthaVwgOwor6aas6bm/6KmxIDwgYmFrYWJhbmFzaGlcIDsKK+e3j+WQiOWPo+W6pyA8IHNvdWdvdWtvdXphXCA7CivnianntI3nqI4gPCBidXRzdW5vdXplaVwgOwor6YOh55yM5Yi25bqmIDwgZ3Vua2Vuc2VpZG9cIDsKK+S9v+eUqOWPr+iDvSA8IHNoaXlvdWthbm91XCA7CivkuIvlpbPkuK0gPCBzaGltb2pvY2h1dVwgOwor5YaF6YOo55WZ5L+dIDwgbmFpYnVyeXV1aG9cIDsKK+WcsOS4i+WupCA8IGNoaWthc2hpdHN1XCA7Civlho3osqnliLbluqYgPCBzYWloYW5zZWlkb1wgOwor6KKr6YG45oyZ5qipIDwgaGlzZW5reW9rZW5cIDsKK+iyuOacrOWxiyA8IGthc2hpaG9uJyd5YVwgOwor54mp5L6h57Wx5Yi2IDwgYnVra2F0b3VzZWlcIDsKK+mYv+WRhumZgOe+hee1jCA8IGFob2RhcmFreW91XCA7Civlm6DmlbDliIbop6MgPCBpbnN1dWJ1bmthaVwgOwor6Y2+5Lmz5rSeIDwgc2hvdW55dXVkb3VcIDsKK+iBt+WToemMsiA8IHNob2t1aW5yb2t1XCA7CivnlJ/nlJ/mtYHou6IgPCBzZWlzZWlydXRlblwgOwor54Sh55+l6JKZ5pinIDwgbXVjaGltb3VtYWlcIDsKK+air+WtkOmFkiA8IGhhc2hpZ296YWtlXCA7Civmu57lnKjlrqIgPCB0YWl6YWlreWFrdVwgOwor6JOE6Zu75rGgIDwgY2hpa3VkZW5jaGlcIDsKK+ippuaOmOiAhSA8IHNoaWt1dHN1c2hhXCA7CivlpKflrablr64gPCBkYWlnYWt1cnlvdVwgOwor5aer5bCP5p2+IDwgaGltZWtvbWF0c3VcIDsKK+ecn+Wun+WRsyA8IHNoaW5qaXRzdW1pXCA7Civml4XlvbnogIUgPCB0YWJpeWFrdXNoYVwgOwor5Zu95rCR55qEIDwga29rdW1pbnRla2lcIDsKK+aIpuayoeiAhSA8IHNlbmJvdHN1c2hhXCA7CivmtYHooYznl4UgPCByeXV1a291YnlvdVwgOwor5b2r5Yi754mIIDwgY2hvdWtva3ViYW5cIDsKK+WgleiQveWdiuS4uyA8IGRhcmFrdWJvdXp1XCA7CivoiJ7lj7Dluqbog7ggPCBidXRhaWRva3lvdVwgOwor5ZGo5peL5qWtIDwgc2h1dXNlbmd5b3VcIDsKK+Wbo+aJh+iZqyA8IHVjaGl3YW11c2hpXCA7Civms7Dopb/lkI3nlLsgPCB0YWlzZWltZWlnYVwgOwor5p+z6IWwIDwgeWFuYWdpZ29zaGlcIDsKK+WPo+Wwj+iogCA8IGt1Y2hpa29nb3RvXCA7Civms5Xmsrvlm73lrrYgPCBob3VjaGlrb2trYVwgOwor5YSq5YWI6aCG5L2NIDwgeXV1c2VuanVuJydpXCA7Civku7vlkb3lvI8gPCBuaW5tZWlzaGlraVwgOwor6Zu75Yqb5YK1IDwgZGVucnlva3VzYWlcIDsKK+WNmOS9jee1hOWQiCA8IHRhbicnaWt1bWlhaVwgOwor5Yqb5YuV55qEIDwgcmlraWRvdXRla2lcIDsKK+Wkj+W4veWtkCA8IG5hdHN1Ym91c2hpXCA7CivnnaHnnKDolqwgPCBzdWltaW4nJ3lha3VcIDsKK+WNuOebuOWgtCA8IG9yb3NoaXNvdWJhXCA7CivljbDliLfmpa0gPCBpbnNhdHN1Z3lvdVwgOwor566h55CG5oOF5aCxIDwga2Fucmlqb3Vob3VcIDsKK+S8neWwjueOhyA8IGRlbmRvdXJpdHN1XCA7Civom7jlhaXpgZMgPCB0YWtvbnl1dWRvdVwgOwor6KuH6Kmx5a6kIDwgZGFud2FzaGl0c3VcIDsKK+WujOWFqOS4u+e+qSA8IGthbnplbnNodWdpXCA7CivlronmnIjntaYgPCB5YXN1Z2Vra3l1dVwgOwor5YyX5qW15pifIDwgaG9ra3lva3VzZWlcIDsKK+W+oemciuS7oyA8IG1pdGFtYXNoaXJvXCA7CivkuIPkuI3mgJ3orbAgPCBuYW5hZnVzaGlnaVwgOwor5ris6YeP5aOrIDwgc29rdXJ5b3VzaGlcIDsKK+WHuumhmOaZgiA8IHNodXRzdWdhbmppXCA7CivloLHlvqnooYzngrogPCBob3VmdWt1a291aVwgOwor5LiJ6KeS55C0IDwgc2Fua2FrdWdvdG9cIDsKK+mJhOadoee2siA8IHRldHN1am91bW91XCA7CivlrqPkvJ3mloflj6UgPCBzZW5kZW5tb25rdVwgOwor5LqM5oiQ5paH57O7IDwgbmlzZWlidW5rZWlcIDsKK+S9k+WGheaZguioiCA8IHRhaW5haWRva2VpXCA7Civnv7voqLPmqKkgPCBob24nJ3lha3VrZW5cIDsKK+eOieadk+WtkCA8IHRhbWFqYWt1c2hpXCA7Civlt6Xmpa3lm70gPCBrb3VneW91a29rdVwgOwor57WC5aSc6YGL6LuiIDwgc2h1dXlhdW50ZW5cIDsKK+WRqOaXi+aWmSA8IHNodXVzZW5yeW91XCA7Civov73mkoPmiKYgPCB0c3VpZ2VraXNlblwgOwor5Yqg6YCf6YGL5YuVIDwga2Fzb2t1dW5kb3VcIDsKK+WCt+eXheWFtSA8IHNob3VieW91aGVpXCA7CivlvbzlsrjmoZwgPCBoaWdhbnpha3VyYVwgOwor5a++5oqX6YOo6ZqKIDwgdGFpa291YnV0YWlcIDsKK+e1kOWpmuiyu+eUqCA8IGtla2tvbmhpeW91XCA7CivkuIDmmYLmiZUgPCBpY2hpamliYXJhaVwgOwor5YaF5a6554mpIDwgbmFpeW91YnV0c3VcIDsKK+i7jeS6i+aUv+aoqSA8IGd1bmppc2Vpa2VuXCA7CivmnInmqZ/ovrLms5UgPCB5dXVraW5vdWhvdVwgOwor6Ziy6KGb6YOo6ZW3IDwgYm91ZWlidWNob3VcIDsKK+mBi+WWtuizh+mHkSA8IHVuJydlaXNoaWtpblwgOwor5pyI6KaL6JWO6bqmIDwgdHN1a2ltaXNvYmFcIDsKK+S6uueUn+iIqui3ryA8IGppbnNlaWtvdXJvXCA7CivnhKHkuIDniakgPCBtdWljaGltb3RzdVwgOwor55Sf5ZG95L+d6Zm6IDwgc2VpbWVpaG9rZW5cIDsKK+WKtOWDjeWKmyA8IHJvdWRvdXJ5b2t1XCA7Civlv5zmgKXmiYvlvZMgPCBvdWt5dXV0ZWF0ZVwgOwor5pyJ5b2i54Sh5b2iIDwgeXV1a2VpbXVrZWlcIDsKK+iLpeerueS6rSA8IHdha2F0YWtldGVpXCA7Civnv7voqLPmm7ggPCBob24nJ3lha3VzaG9cIDsKK+WIsOedgOmnhSA8IHRvdWNoYWt1ZWtpXCA7CivnlLflv4MgPCBvdG9rb2dva29yb1wgOwor5bCR5Zu95rCRIDwgc2hvdWtva3VtaW5cIDsKK+WPl+S/oeWbnui3ryA8IGp1c2hpbmthaXJvXCA7Civlj4LogIPlm7Pmm7ggPCBzYW5rb3V0b3Nob1wgOwor55Sf5a2m5ZWPIDwgbmFtYWdha3Vtb25cIDsKK+iLsembhOW0h+aLnSA8IGVpeXV1c3V1aGFpXCA7Civku4rmnIjliIYgPCBrb25nZXRzdWJ1blwgOwor5YiG5pWw5byPIDwgYnVuc3V1c2hpa2lcIDsKK+WPl+mok+eVquWPtyA8IGp1a2VuYmFuZ291XCA7Civph43ovrLkuLvnvqkgPCBqdXVub3VzaHVnaVwgOwor5o6I6LOe5byPIDwganVzaG91c2hpa2lcIDsKK+aOjOS4reacrCA8IHNob3VjaHV1Ym9uXCA7CivnnIHlipvljJYgPCBzaG91cnlva3VrYVwgOwor5Luj6KGo5qC8IDwgZGFpaHlvdWtha3VcIDsKK+itt+WbveelnuekviA8IGdva29rdWppbmphXCA7CivmmLzoiIjooYwgPCBoaXJ1a291Z3lvdVwgOwor6buZ56S66YyyIDwgbW9rdXNoaXJva3VcIDsKK+aYjuayu+elnuWuriA8IG1laWppamluZ3V1XCA7CivlsJHmlbDmhI/oposgPCBzaG91c3V1aWtlblwgOwor5Lq66JmxIDwgaGl0b3NoaXJhbWlcIDsKK+avlOe/vOmAo+eQhiA8IGhpeW9rdXJlbnJpXCA7CivmpJzlr5/lrpggPCBrZW5zYXRzdWthblwgOwor5L6b6KiX6ICFIDwga3lvdXRha3VzaGFcIDsKK+a1t+eUo+eJqSA8IGthaXNhbmJ1dHN1XCA7CivmnInmnJ/lubTph5EgPCB5dXVraW5lbmtpblwgOwor6L+U5L+h55SoIDwgaGVuc2hpbicneW91XCA7CivkuozlhYPmlL7pgIEgPCBuaWdlbmhvdXNvdVwgOwor6Ieq5L+h6YGO5YmwIDwgamlzaGlua2Fqb3VcIDsKK+mBgei1sOabsiA8IHRvbnNvdWt5b2t1XCA7CivlpYnntI3nm7jmkrIgPCBob3Vub3V6dW1vdVwgOwor6L675by355uXIDwgdHN1amlnb3V0b3VcIDsKK+S6uui6q+W+oeS+myA8IGhpdG9taWdva3V1XCA7CivlhazlvI/miKYgPCBrb3VzaGlraXNlblwgOwor5L+d6K235qSc5p2fIDwgaG9nb2tlbnNva3VcIDsKK+WIhuecjOWcsOWbsyA8IGJ1bmtlbmNoaXp1XCA7CivpnbTkuIDotrMgPCBrdXRzdWlzc29rdVwgOwor6Zi/6Kub6L+95b6TIDwgYXl1dHN1aXNob3VcIDsKK+mbu+WFieefs+eBqyA8IGRlbmtvdXNla2thXCA7Civms6LngL7kuIfkuIggPCBoYXJhbmJhbmpvdVwgOwor55u45LqS6Zai5L+CIDwgc291Z29rYW5rZWlcIDsKK+a1quiKseevgCA8IG5hbml3YWJ1c2hpXCA7CivlhoXpg6jku5Xmp5ggPCBuYWlidXNoaXlvdVwgOwor5ZCE5aSn5a2mIDwga2FrdWRhaWdha3VcIDsKK+e3j+mAgOWNtCA8IHNvdXRhaWt5YWt1XCA7Civnmq7kuIvms6jlsIQgPCBoaWthY2h1dXNoYVwgOwor5Lm+54el6YeO6I+cIDwga2Fuc291eWFzYWlcIDsKK+efreapn+mWoumKgyA8IHRhbmtpa2FuanV1XCA7Civnj77lnLDmmYLplpMgPCBnZW5jaGlqaWthblwgOwor5Zu95rCR5pyNIDwga29rdW1pbmZ1a3VcIDsKK+S4gOetiei7jeabuSA8IGl0dG91Z3Vuc291XCA7Civlrp/lnKjoq5YgPCBqaXRzdXphaXJvblwgOwor5pWR5oCl6LuKIDwga3l1dWt5dXVzaGFcIDsKK+mWk+aOpeeojiA8IGthbnNldHN1emVpXCA7CivnjaPpgZMgPCBrZW1vbm9taWNoaVwgOwor5a625bqt55So5ZOBIDwga2F0ZWl5b3VoaW5cIDsKK+S5semWi+eZuiA8IHJhbmthaWhhdHN1XCA7CivmiYDluK/kuLsgPCBzaG90YWludXNoaVwgOwor6Ymx5bGx5oqA5birIDwga291emFuZ2lzaGlcIDsKK+mYsuWvkumdtCA8IGJvdWthbmd1dHN1XCA7CivkuIDlrZDnm7jkvJ0gPCBpc3NoaXNvdWRlblwgOwor5LiJ6KeS5p+xIDwgc2Fua2FrdWNodXVcIDsKK+S4gOmbqyA8IGhpdG9zaGl6dWt1XCA7Civku5XoqLPluLMgPCBzaGl3YWtlY2hvdVwgOwor57KY552A5oCnIDwgbmVuY2hha3VzZWlcIDsKK+aZgumZkOeri+azlSA8IGppZ2VucmlwcG91XCA7Civnvorpm7IgPCBoaXRzdWppZ3Vtb1wgOwor5oSb5Yil6Zui6IumIDwgYWliZXRzdXJpa3VcIDsKK+WvhumAoOmFkiA8IG1pdHN1em91c2h1XCA7Civlm7rlrpros4fnlKMgPCBrb3RlaXNoaXNhblwgOwor5LiA5aSc5rysIDwgaWNoaXlhZHp1a2VcIDsKK+WSjOeLrOi+nuWFuCA8IHdhZG9rdWppdGVuXCA7CivnmbvmoKHmi5LlkKYgPCB0b3Vrb3VreW9oaVwgOwor5pac6KeS5p+xIDwgc2hha2FrdWNodXVcIDsKK+a8lOWlj+aXheihjCA8IGVuc291cnlva291XCA7Civmm7jnlLvpqqjokaMgPCBzaG9nYWtvdHRvdVwgOwor5a++54Wn55qEIDwgdGFpc2hvdXRla2lcIDsKK+W9ueS6uumiqCA8IHlha3VuaW5rYXplXCA7CivoiLnoiLbmpa0gPCBzZW5wYWt1Z3lvdVwgOwor6YGL5YuV6YG45omLIDwgdW5kb3VzZW5zaHVcIDsKK+WtpuWckumDveW4giA8IGdha3VlbnRvc2hpXCA7CivmsLTpgZPlsYAgPCBzdWlkb3VreW9rdVwgOwor5aeL55m66aeFIDwgc2hpaGF0c3Vla2lcIDsKK+adsea0i+S4u+e+qSA8IHRvdXlvdXNodWdpXCA7CivljJfmpbXlnI8gPCBob2treW9rdWtlblwgOwor5pel55So5ZOBIDwgbmljaGl5b3VoaW5cIDsKK+WPjemAhuiAhSA8IGhhbmd5YWt1c2hhXCA7CivlpKfpoqjlkYLmlbcgPCBvb2J1cm9zaGlraVwgOwor5pyJ6JOL6LKo6LuKIDwgeXV1Z2Fpa2FzaGFcIDsKK+aUv+ayu+izh+mHkSA8IHNlaWppc2hpa2luXCA7CivnmbvpjLLmuIggPCB0b3Vyb2t1enVtaVwgOwor5bCC5aOy5bGAIDwgc2VuYmFpa3lva3VcIDsKK+aoqeWKm+iAhSA8IGtlbnJ5b2t1c2hhXCA7CivoqIDoq5bmqZ/plqIgPCBnZW5yb25raWthblwgOwor6aSK6K235a2m5qChIDwgeW91Z29nYWtrb3VcIDsKK+aBkuS5heeahCA8IGtvdWt5dXV0ZWtpXCA7CivotbDooYzmmYLplpMgPCBzb3Vrb3VqaWthblwgOwor5Y+N6YCG572qIDwgaGFuZ3lha3V6YWlcIDsKK+ipleS+oeWfuua6liA8IGh5b3VrYWtpanVuXCA7CivnibnnrYnluK0gPCB0b2t1dG91c2VraVwgOwor5YaF5pyN6JasIDwgbmFpZnVrdXlha3VcIDsKK+iHhueXhemiqCA8IG9rdWJ5b3VrYXplXCA7CivkvpvntabogIUgPCBreW91a3l1dXNoYVwgOwor5b2r5Yi75birIDwgY2hvdWtva3VzaGlcIDsKK+aWsOiBnuiomOS6iyA8IHNoaW5idW5raWppXCA7CivlpKvllLHlqabpmo8gPCBmdXNob3VmdXp1aVwgOwor6Zu75a2Q6L6e5pu4IDwgZGVuc2hpamlzaG9cIDsKK+axguS6uumboyA8IGt5dXVqaW4nJ25hblwgOwor54y/6L2hIDwgc2FydWd1dHN1d2FcIDsKK+ippuaOmOaoqSA8IHNoaWt1dHN1a2VuXCA7CivlkIzmmYLpjLLpn7MgPCBkb3VqaXJva3VvblwgOwor566h55CG56S+5LyaIDwga2FucmlzaGFrYWlcIDsKK+S4gOimluWQjOS7gSA8IGlzc2hpZG91amluXCA7Civmp4vpgKDlpInljJYgPCBrb3V6b3VoZW5rYVwgOwor5Zyo5Lqs5LitIDwgemFpa3lvdWNodXVcIDsKK+aWueeoi+W8jyA8IGhvdXRlaXNoaWtpXCA7CivpnZnlipvlraYgPCBzZWlyaWtpZ2FrdVwgOwor5aWz5rWB5L2c5a62IDwgam9yeXV1c2Fra2FcIDsKK+S4gOimp+ihqCA8IGljaGlyYW5oeW91XCA7CivljJfmnJ3prq4gPCBraXRhY2hvdXNlblwgOwor5Y+45rOV5Yi25bqmIDwgc2hpaG91c2VpZG9cIDsKK+iEiOaJgCA8IG15YWt1ZG9rb3JvXCA7Civnmb7ljYPps6UgPCBtb21vY2hpZG9yaVwgOwor5Yuk5YuZ5Lqk5LujIDwga2lubXVrb3V0YWlcIDsKK+efree3qOaYoOeUuyA8IHRhbnBlbicnZWlnYVwgOwor6YqD5Ymj6KGTIDwganV1a2VuanV0c3VcIDsKK+S8muWToeimj+e0hCA8IGthaWlua2l5YWt1XCA7CivntI3pqqjloIIgPCBub3Vrb3RzdWRvdVwgOwor6ICz5bCP6aqoIDwgamlzaG91a290c3VcIDsKK+Wkp+mdmeiEiCA8IGRhaWpvdW15YWt1XCA7CivntYzmuIjlipsgPCBrZWl6YWlyeW9rdVwgOwor5a2m5Y2U5LyaIDwgZ2FrdWt5b3VrYWlcIDsKK+S4reW/g+eCuSA8IGNodXVzaGludGVuXCA7CivkuozngrnlhYjlj5YgPCBuaXRlbnNlbnNodVwgOwor5Y+N5oim5Li7576pIDwgaGFuc2Vuc2h1Z2lcIDsKK+aatOiZjummruaysyA8IGJvdWtvaHlvdWdhXCA7CivljJfmpbXlhYkgPCBob2treW9rdWtvdVwgOwor6aOf5ZOB5bqXIDwgc2hva3VoaW50ZW5cIDsKK+mgmOWPjuabuCA8IHJ5b3VzaHV1c2hvXCA7Civlt6bohZXmipXmiYsgPCBzYXdhbnRvdXNodVwgOwor5L2G5pu4IDwgdGFkYXNoaWdha2lcIDsKK+WJjeacn+ippumokyA8IHplbmtpc2hpa2VuXCA7CivpgJrnn6XooaggPCB0c3V1Y2hpaHlvdVwgOwor6YCj55m66YqDIDwgcmVucGF0c3VqdXVcIDsKK+aUu+aSg+WBtCA8IGtvdWdla2lnYXdhXCA7CivlpKfkuK3lsI8gPCBkYWljaHV1c2hvdVwgOwor5bmz5Z2H5b6LIDwgaGVpa2lucml0c3VcIDsKK+i1pOajn+ibhyA8IHlhbWFrYWdhc2hpXCA7CivooqvpgbjmjJnkurogPCBoaXNlbmt5b25pblwgOwor6Kaz5b+155qEIDwga2FuJyduZW50ZWtpXCA7CivlsILploDogbcgPCBzZW5tb25zaG9rdVwgOwor5YWx6YCy5LyaIDwga3lvdXNoaW5rYWlcIDsKK+S/oeeUqOeKtiA8IHNoaW4nJ3lvdWpvdVwgOwor57mU54mp5qWtIDwgb3JpbW9ub2d5b3VcIDsKK+iDjOW+jOmWouS/giA8IGhhaWdva2Fua2VpXCA7CivohbDliIAgPCBrb3NoaWdhdGFuYVwgOwor6LaF54m55oClIDwgY2hvdXRva2t5dXVcIDsKK+i/lOS/oeaWmSA8IGhlbnNoaW5yeW91XCA7Civlo4HmlrDogZ4gPCBrYWJlc2hpbmJ1blwgOwor6aST6ay85aSn5bCGIDwgZ2FraWRhaXNob3VcIDsKK+eVquWPt+iomOWPtyA8IGJhbmdvdWtpZ291XCA7Civono3op6PnhrEgPCB5dXVrYWluZXRzdVwgOwor56+A5Y2a5aOrIDwgZnVzaGloYWthc2VcIDsKK+imi+eJqeS6uiA8IGtlbmJ1dHN1bmluXCA7CivnmbvpjLLmlpkgPCB0b3Vyb2t1cnlvdVwgOwor5ZGo5peL5Lq6IDwgc2h1dXNlbicnbmluXCA7CivliJHkuovoo5zlhJ8gPCBrZWlqaWhvc2hvdVwgOwor6auY6bqX6IqdIDwga291cmFpc2hpYmFcIDsKK+S4jeimquWIhyA8IGZ1c2hpbnNldHN1XCA7CivopqrlkYrnvaogPCBzaGlua29rdXphaVwgOwor6JSm57SF6JGJIDwgdHN1dGFtb21pamlcIDsKK+S6lOebrumuqCA8IGdvbW9rdXp1c2hpXCA7Civnt6jpm4bplbcgPCBoZW5zaHV1Y2hvdVwgOwor5Ye654mI5qWtIDwgc2h1cHBhbmd5b3VcIDsKK+iqv+aVmeW4qyA8IGNob3VreW91c2hpXCA7CivpgLLpp5Dou40gPCBzaGluY2h1dWd1blwgOwor5Yil5YuV6ZqKIDwgYmV0c3Vkb3V0YWlcIDsKK+mAhuWZtOWwhCA8IGd5YWt1ZnVuc2hhXCA7CivkuIDkvZPlhajkvZMgPCBpdHRhaXplbnRhaVwgOwor5LqM5Y+j55uuIDwgZnV0YWt1Y2hpbWVcIDsKK+a1t+mBi+WQjOebnyA8IGthaXVuZG91bWVpXCA7CivlsILlrojpmLLooZsgPCBzZW5zaHVib3VlaVwgOwor5Y2X6Zi/6YCj6YKmIDwgbmFuJydhcmVucG91XCA7CivpgIblkb3poYwgPCBneWFrdW1laWRhaVwgOwor55m66KGM6YOo5pWwIDwgaGFra291YnVzdXVcIDsKK+WIkeS6i+ijgeWIpCA8IGtlaWppc2FpYmFuXCA7CivlhazlubPnhKHnp4EgPCBrb3VoZWltdXNoaVwgOwor54mp5L6h5oyH5pWwIDwgYnVra2FzaGlzdXVcIDsKK+eymOedgOWJpCA8IG5lbmNoYWt1emFpXCA7CivliJHkuovooqvlkYogPCBrZWlqaWhpa29rdVwgOwor55Sf54mp55WMIDwgc2VpYnV0c3VrYWlcIDsKK+iomOiAheS8muimiyA8IGtpc2hha2Fpa2VuXCA7CivlvpPou43oqJjogIUgPCBqdXVndW5raXNoYVwgOwor56m65rCX5oq15oqXIDwga3V1a2l0ZWlrb3VcIDsKK+S6lOebrumjryA8IGdvbW9rdW1lc2hpXCA7CivosqLniakgPCBtaXRzdWdpbW9ub1wgOwor54++6YeR5q2j5L6hIDwgZ2Vua2luc2Vpa2FcIDsKK+aOoeaOmOaoqSA8IHNhaWt1dHN1a2VuXCA7CivlpKflkIzlsI/nlbAgPCBkYWlkb3VzaG91aVwgOwor55Sf5ZG95YCr55CGIDwgc2VpbWVpcmlucmlcIDsKK+WFqOW5heeahCA8IHplbnB1a3V0ZWtpXCA7Civpp4bli5Xoo4Xnva4gPCBrdWRvdXNvdWNoaVwgOwor5b2r5Yi75YiAIDwgY2hvdWtva3V0b3VcIDsKK+WNg+i7jeS4h+mmrCA8IHNlbmd1bmJhbmJhXCA7CivlpInlubvoh6rlnKggPCBoZW5nZW5qaXphaVwgOwor56CU56m25b+DIDwga2Vua3l1dXNoaW5cIDsKK+ebuOWvvuS4u+e+qSA8IHNvdXRhaXNodWdpXCA7Civni6zljaDnmoQgPCBkb2t1c2VudGVraVwgOwor6YW45Lit5q+SIDwgc2FuY2h1dWRva3VcIDsKK+i7jeWMu+WtpuagoSA8IGd1bicnaWdha2tvdVwgOwor6LaF5paw5pifIDwgY2hvdXNoaW5zZWlcIDsKK+mDveawkeS8mumkqCA8IHRvbWlua2Fpa2FuXCA7CivluILloLTkvqHlgKQgPCBzaGlqb3VrYWNoaVwgOwor6aCC5oi054mpIDwgY2hvdWRhaW1vbm9cIDsKK+W5s+WSjOirluiAhSA8IGhlaXdhcm9uc2hhXCA7Civlrr/ms4rmiYAgPCBzaHVrdWhha3Vqb1wgOwor5bC/57Sg5qi56ISCIDwgbnlvdXNvanVzaGlcIDsKK+WjsuWNtOebiiA8IGJhaWt5YWt1ZWtpXCA7CivmjoPpmaTlvZPnlaogPCBzb3VqaXRvdWJhblwgOwor5qeL6YCg5byPIDwga291em91c2hpa2lcIDsKK+S7o+eQhuaIpuS6iSA8IGRhaXJpc2Vuc291XCA7Civku6PooajkvZwgPCBkYWloeW91c2FrdVwgOwor5Zyw55uk5rKI5LiLIDwgamliYW5jaGlua2FcIDsKK+ani+aIkOS4u+e+qSA8IGtvdXNlaXNodWdpXCA7CivmraPlpJrpnaLkvZMgPCBzZWl0YW1lbnRhaVwgOwor6YGO5aSx54qvIDwga2FzaGl0c3VoYW5cIDsKK+e0meS4gOaemiA8IGthbWlpY2hpbWFpXCA7Civkv53nqI7lnLDln58gPCBob3plaWNoaWlraVwgOwor5YaN6KqN6K2YIDwgc2Fpbmluc2hpa2lcIDsKK+S6uuWToeaVtOeQhiA8IGppbicnaW5zZWlyaVwgOwor6aKo54mp6KmpIDwgZnV1YnV0c3VzaGlcIDsKK+S6uumWk+S7peWJjSA8IG5pbmdlbicnaXplblwgOwor5a6f6Zai5pWwIDwgaml0c3VrYW5zdXVcIDsKK+Wkp+WlveeJqSA8IGRhaWtvdWJ1dHN1XCA7CivkubPmv4HmtrIgPCBueXV1ZGFrdWVraVwgOwor5rC05Ya35byPIDwgc3VpcmVpc2hpa2lcIDsKK+W5s+mdouWbs+W9oiA8IGhlaW1lbnp1a2VpXCA7Civlv4PphY3mgKcgPCBzaGlucGFpc2hvdVwgOwor5a6i5a6kIDwga3lha3VzaGl0c3VcIDsKK+Wuh+WumeaXheihjCA8IHVjaHV1cnlva291XCA7Civlvozlp4vmnKsgPCBhdG9zaGltYXRzdVwgOwor5YWo5Yui5YqbIDwgemVuc2Vpcnlva3VcIDsKK+iNmOWckuWItuW6piA8IHNob3VlbnNlaWRvXCA7Civpm6Llv4PnjocgPCByaXNoaW5yaXRzdVwgOwor5L6b57Wm5rqQIDwga3lvdWt5dXVnZW5cIDsKK+iHquekvuijveWTgSA8IGppc2hhc2VpaGluXCA7CivliJ3mnJ/mrrXpmo4gPCBzaG9raWRhbmthaVwgOwor5YmN6YCU6YG86YGgIDwgemVudG9yeW91ZW5cIDsKK+Wkp+aWh+evgCA8IGRhaWJ1bnNldHN1XCA7CivkuIDlpJzlprsgPCBoaXRveW9kenVtYVwgOwor57WQ5ZCI5a2QIDwga2V0c3Vnb3VzaGlcIDsKK+atu+S6oeeOhyA8IHNoaWJvdXJpdHN1XCA7CivmmYLlsYDmn4QgPCBqaWt5b2t1Z2FyYVwgOwor6LWk6JGh6JCE6YWSIDwgYWthYnVkb3VzaHVcIDsKK+WOn+Wni+aZguS7oyA8IGdlbnNoaWppZGFpXCA7CivphY3lvZPnjocgPCBoYWl0b3VyaXRzdVwgOwor5pW06aqo5birIDwgc2Vpa290c3VzaGlcIDsKK+WPguisgOacrOmDqCA8IHNhbmJvdWhvbmJ1XCA7CivlpbPlrZDlpKfnlJ8gPCBqb3NoaWRhaXNlaVwgOwor6Zai56iO546HIDwga2FuemVpcml0c3VcIDsKK+aOkuWklumBi+WLlSA8IGhhaWdhaXVuZG91XCA7CivkuK3mr5LmrbsgPCBjaHV1ZG9rdXNoaVwgOwor5rC05bmz6aOb6KGMIDwgc3VpaGVpaGlrb3VcIDsKK+acgOWJjeWIlyA8IHNhaXplbnJldHN1XCA7CivkvY7lm57otqPlkbMgPCB0ZWlrYWlzaHVtaVwgOwor5LqS5oG16LK/5piTIDwgZ29rZWlib3Vla2lcIDsKK+S6uumWk+S7peS4iiA8IG5pbmdlbicnaWpvdVwgOwor5b6h5omA6LuKIDwgZ29zaG9ndXJ1bWFcIDsKK+WCsuaFoueEoeekvCA8IGdvdW1hbmJ1cmVpXCA7Civkurrmn7EgPCBoaXRvYmFzaGlyYVwgOwor5rOV5YuZ5aeU5ZOh5LyaIDwgaG91bXVpaW5rYWlcIDsKK+WGheabsueQgyA8IG5haWt5b2treXV1XCA7CivlvpLmiYvnqbrmi7MgPCB0b3NodWt1dWtlblwgOwor5Lqc54Kt5YyW54mpIDwgYXRhbmthYnV0c3VcIDsKK+awtOazs+Wkp+S8miA8IHN1aWVpdGFpa2FpXCA7Civop6PmlaPoqqwgPCBrYWlzYW5zZXRzdVwgOwor55S35aWz5ZCM5qipIDwgZGFuam9kb3VrZW5cIDsKK+W5tOmHkeWItuW6piA8IG5lbmtpbnNlaWRvXCA7Civnqbrou43ln7rlnLAgPCBrdXVndW5raWNoaVwgOwor5aSn5ZKM5pmC5LujIDwgeWFtYXRvamlkYWlcIDsKK+W7uumAoOeJqSA8IGtlbnpvdWJ1dHN1XCA7CivluJ3njovliIfplosgPCB0ZWlvdXNla2thaVwgOwor54yu6KGA6LuKIDwga2Vua2V0c3VzaGFcIDsKK+Wwj+WTgembhiA8IHNob3VoaW5zaHV1XCA7CivpnIrlronlrqQgPCByZWlhbnNoaXRzdVwgOwor5Y+N5pS/5bqc5YWaIDwgaGFuc2VpZnV0b3VcIDsKK+mbouedgOmZuCA8IHJpY2hha3VyaWt1XCA7CivohIrpu4TpnZLpuJrlk6UgPCBzZWtpc2VpaW5rb1wgOwor5q2v56eR55eF6ZmiIDwgc2hpa2FieW91aW5cIDsKK+mrmOmHjuiBliA8IGtvdXlhaGlqaXJpXCA7CivovInosqjlsa/mlbAgPCBzYWlrYXRvbnN1dVwgOwor5pW06auq5YmkIDwgc2VpaGF0c3V6YWlcIDsKK+WHpuS4luihkyA8IHNob3NlaWp1dHN1XCA7Civoq5boqqzlp5Tlk6EgPCByb25zZXRzdWlpblwgOwor5Yud5omL5qyh56ysIDwga2F0dGVzaGlkYWlcIDsKK+epuuaMuumaiuWToSA8IGt1dXRlaXRhaWluXCA7Civoh6rnlLHntYzmuIggPCBqaXl1dWtlaXphaVwgOwor5peX6aCtIDwgaGF0YWdhc2hpcmFcIDsKK+WtkOW5tCA8IG5lenVtaWRvc2hpXCA7CivlhavluaHlrq4gPCBoYWNoaW1hbmd1dVwgOwor6LKh5pS/56C057a7IDwgemFpc2VpaGF0YW5cIDsKK+atjOWUseWKmyA8IGthc2hvdXJ5b2t1XCA7Civlm57mipjmkI0gPCBrYWlzZXRzdXNvblwgOwor5pS/5rK754yu6YeRIDwgc2VpamlrZW5raW5cIDsKK+mqqOS7leS6iyA8IGhvbmVzaGlnb3RvXCA7Civoh4bnl4XogIUgPCBva3VieW91bW9ub1wgOwor5peL6aKoIDwgdHN1bXVqaWthemVcIDsKK+aJi+mWk+S7leS6iyA8IHRlbWFzaGlnb3RvXCA7CivkuIDmnKzli53osqAgPCBpcHBvbnNob3VidVwgOwor5pyd6aOv5YmNIDwgYXNhbWVzaGltYWVcIDsKK+izquWunyA8IHNoaXRzdWppdHN1XCA7CivliIrooYzniakgPCBrYW5rb3VidXRzdVwgOwor55y86Y+h5qmLIDwgbWVnYW5lYmFzaGlcIDsKK+izvOWFpeWFiCA8IGtvdW55dXVzYWtpXCA7CivkuK3pgJTljYrnq68gPCBjaHV1dG9oYW5wYVwgOwor6YCa6YGO5YSA56S8IDwgdHN1dWthZ2lyZWlcIDsKK+S4vOeJqSA8IGRvbmJ1cmltb25vXCA7CivlvJjku4HmoLwgPCBrb3VuaW5reWFrdVwgOwor6Iux5a2X6ZuG5ZCIIDwgZWlqaXNodXVnb3VcIDsKK+e9suWQjemBi+WLlSA8IHNob21laXVuZG91XCA7CivloZHmgKfmjIfmlbAgPCBzb3NlaXNoaXN1dVwgOwor5ZCI5ZCM5Yq057WEIDwgZ291ZG91cm91c29cIDsKK+adluafsSA8IHRzdWVoYXNoaXJhXCA7Civml6flpKfpmbggPCBreXV1dGFpcmlrdVwgOwor5Li7566h5qmf6ZaiIDwgc2h1a2Fua2lrYW5cIDsKK+Wkqeawl+mDveWQiCA8IHRlbmtpdHN1Z291XCA7CivlhbXlmajlt6XloLQgPCBoZWlraWtvdWpvdVwgOwor5LiL5568IDwgc2hpdGFtYWJ1dGFcIDsKK+iouuWvn+aXpSA8IHNoaW5zYXRzdWJpXCA7CivlubPmsJHkuLvnvqkgPCBoZWltaW5zaHVnaVwgOwor5a625peP5Lya6K2wIDwga2F6b2t1a2FpZ2lcIDsKK+adseWuruiBtyA8IHRvdWd1dXNob2t1XCA7CivmuJvlgrXln7rph5EgPCBnZW5zYWlraWtpblwgOwor6K2m5a+f572yIDwga2Vpc2F0c3VzaG9cIDsKK+WGl+irh+WPoyA8IGpvdWRhbmd1Y2hpXCA7CivnuZTnianllYYgPCBvcmltb25vc2hvdVwgOwor56WW5YWI5bSH5oudIDwgc29zZW5zdXVoYWlcIDsKK+WFq+i+uuW9oiA8IGhhY2hpaGVua2VpXCA7Civph53ku5XkuosgPCBoYXJpc2hpZ290b1wgOwor5LqL5aSn5oCd5oOzIDwgamlkYWlzaGlzb3VcIDsKK+WlveS6uueJqSA8IGtvdWppbmJ1dHN1XCA7CivlnLDloLTnlKPmpa0gPCBqaWJhc2FuZ3lvdVwgOwor5b6B5pyN5qyyIDwgc2VpZnVrdXlva3VcIDsKK+mAo+mCpuWbveWutiA8IHJlbnBvdWtva2thXCA7Civnq4vmhrLkuLvnvqkgPCByaWtrZW5zaHVnaVwgOwor5p2J5p6XIDwgc3VnaWJheWFzaGlcIDsKK+ino+iqrOiAhSA8IGthaXNldHN1c2hhXCA7CivluoPlkYrmpa0gPCBrb3Vrb2t1Z3lvdVwgOwor5YWr5pa5576O5Lq6IDwgaGFwcG91YmlqaW5cIDsKK+WJteeri+iAhSA8IHNvdXJpdHN1c2hhXCA7Civop6PnhrHolqwgPCBnZW5ldHN1eWFrdVwgOwor5pel5puc54mIIDwgbmljaGl5b3ViYW5cIDsKK+aWsOW/q+mAnyA8IHNoaW5rYWlzb2t1XCA7CivlsYvmoLnoo4/pg6jlsYsgPCB5YW5ldXJhYmV5YVwgOwor5LiW55WM5oOF5YuiIDwgc2VrYWlqb3VzZWlcIDsKK+S4jeW/q+aMh+aVsCA8IGZ1a2Fpc2hpc3V1XCA7CivpgaDmtIvoiKrot68gPCBlbicneW91a291cm9cIDsKK+S4reW5tOiAhSA8IGNodXVuZW5tb25vXCA7Civlm73lrrbntYzmuIggPCBrb2trYWtlaXphaVwgOwor5oi05Yag5byPIDwgdGFpa2Fuc2hpa2lcIDsKK+iHqOaZguWil+WIiiA8IHJpbmppem91a2FuXCA7Civou73mpa3luKsgPCBrYXJ1d2F6YXNoaVwgOwor5Lit5b+D5ZywIDwgY2h1dXNoaW5jaGlcIDsKK+WVhuaFo+e/kiA8IHNob3VrYW5zaHV1XCA7CivnlJ/nianmiKYgPCBzZWlidXRzdXNlblwgOwor5pWR5oCl5rOVIDwga3l1dWt5dXVob3VcIDsKK+mjn+WJjemFkiA8IHNob2t1emVuc2h1XCA7CivlhazmrablkIjkvZMgPCBrb3VidWdhdHRhaVwgOwor5rex5aSc5pePIDwgc2hpbicneWF6b2t1XCA7CivkuojorprmnKznt5ogPCB5b3NhbmhvbnNlblwgOwor5qC55pys5Li7576pIDwga29ucG9uc2h1Z2lcIDsKK+i/q+aSg+egsiA8IGhha3VnZWtpaG91XCA7CivpnZ7luLjorabmiJIgPCBoaWpvdWtlaWthaVwgOwor5Lit5aSu5pS/5bqcIDwgY2h1dW91c2VpZnVcIDsKK+mAsui7jeS4rSA8IHNoaW5ndW5jaHV1XCA7CivlqpLphYzkurogPCBiYWlzaGFrdW5pblwgOwor5Lih5oCn55qEIDwgcnlvdXNlaXRla2lcIDsKK+WIuueKtueqgei1tyA8IHNoaWpvdXRva2tpXCA7CivmvZzli6LlipsgPCBzZW5zZWlyeW9rdVwgOwor5YWs55qE5om25YqpIDwga291dGVraWZ1am9cIDsKK+WQiOaIkOaoueiEgiA8IGdvdXNlaWp1c2hpXCA7CivlibLos6bos7zosrcgPCBrYXBwdWtvdWJhaVwgOwor5L+d5YGl5a6kIDwgaG9rZW5zaGl0c3VcIDsKK+W6g+WRiuaWmSA8IGtvdWtva3VyeW91XCA7CivpgJ/lipvluqYgPCBzb2t1cnlva3Vkb1wgOwor55uG5o+Q54GvIDwgYm9uZGpvdWNoaW5cIDsKK+acquadpeaMh+WQkSA8IG1pcmFpc2hpa291XCA7Civoh6rnlLHmlL7ku7sgPCBqaXl1dWhvdW5pblwgOwor6Ieq6Lui5ZGo5pyfIDwgaml0ZW5zaHV1a2lcIDsKK+iBtOelnue1jCA8IGNob3VzaGlua2VpXCA7CivotoXlpKflm70gPCBjaG91dGFpa29rdVwgOwor5Ye654mI5YWDIDwgc2h1cHBhbm1vdG9cIDsKK+mmrOm5v+WKmyA8IGJha2FkamlrYXJhXCA7Civoh6rlt7HkuLvlvLUgPCBqaWtvc2h1Y2hvdVwgOwor5pmS6ICFIDwgc2FyYXNoaW1vbm9cIDsKK+mZuOWNiueQgyA8IHJpa3VoYW5reXV1XCA7CivljYPoqIDkuIfoqp4gPCBzZW5nZW5iYW5nb1wgOwor57Wx546H6ICFIDwgdG91c290c3VzaGFcIDsKK+WFrOWFseW/gyA8IGtvdWt5b3VzaGluXCA7CivlvpLmrannq7botbAgPCB0b2hva3lvdXNvdVwgOwor6Kaq5ZaE6Kmm5ZCIIDwgc2hpbnplbmppYWlcIDsKK+eqkue0oOWbuuWumiA8IGNoaXNzb2tvdGVpXCA7CivkuK3lhbHou40gPCBjaHV1a3lvdWd1blwgOwor5ryC55m95YmkIDwgaHlvdWhha3V6YWlcIDsKK+WPjuWFpea6kCA8IHNodXVueXV1Z2VuXCA7CivmtbfkuIrkv53pmbogPCBrYWlqb3Vob2tlblwgOwor5q6/5qeY6aKoIDwgdG9ub3NhbWFmdXVcIDsKK+W/g+mFjeS6iyA8IHNoaW5wYWlnb3RvXCA7Civpo5vooYznlLLmnb8gPCBoaWtvdWtvdWJhblwgOwor5oyH5bCO5Li75LqLIDwgc2hpZG91c2h1amlcIDsKK+ebuOS6kumKgOihjCA8IHNvdWdvZ2lua291XCA7Civou43lj7jku6Tpg6ggPCBndW5zaGlyZWlidVwgOwor6Ku45LqL5LiH56uvIDwgc2hvamliYW50YW5cIDsKK+WKtOeBveS/nemZuiA8IHJvdXNhaWhva2VuXCA7CivlpKrpmb3nhrEgPCB0YWl5b3VuZXRzdVwgOwor5Yik5rG65paHIDwgaGFua2V0c3VidW5cIDsKK+aZgui8qumHkeWJmyA8IGppcmlua29uZ291XCA7CivmhI/msJfpirfmsoggPCBpa2lzaG91Y2hpblwgOwor5L+h5Luw55qEIDwgc2hpbmtvdXRla2lcIDsKK+iGneaLjeWtkCA8IGhpemFieW91c2hpXCA7CivplqLnqI7lm57pgb8gPCBrYW56ZWlrYWloaVwgOwor55uy55uu55qEIDwgbW91bW9rdXRla2lcIDsKK+elnumAmuWKmyA8IGppbnRzdXVyaWtpXCA7CivlhbHlkozkuLvnvqkgPCBreW91d2FzaHVnaVwgOwor5oGQ5aa755eFIDwga3lvdXNhaWJ5b3VcIDsKK+mYv+Wkmuemj+miqOmCqiA8IG90YWZ1a3VrYXplXCA7CivkuojpmLLmiKbkuokgPCB5b2JvdXNlbnNvdVwgOwor6YW45oCn5Zyf5aOMIDwgc2Fuc2VpZG9qb3VcIDsKK+W/oOWun+W6piA8IGNodXVqaXRzdWRvXCA7Civkv6Hku7vnirYgPCBzaGluJyduaW5qb3VcIDsKK+S6uui6q+S/neittyA8IGppbnNoaW5ob2dvXCA7CivkuK3mn7EgPCBuYWthYmFzaGlyYVwgOwor5paw5Y+C6ICFIDwgc2hpbnphbm1vbm9cIDsKK+W5tOmHkeS/nemZuiA8IG5lbmtpbmhva2VuXCA7CivmjIflkJHoqIDoqp4gPCBzaGlrb3VnZW5nb1wgOwor5beh5p+76YOo6ZW3IDwganVuc2FidWNob3VcIDsKK+ecn+eKr+S6uiA8IHNoaW5oYW4nJ25pblwgOwor54u454i6IDwgdGFudWtpamlqaWlcIDsKK+S/neiovOacn+mWkyA8IGhvc2hvdWtpa2FuXCA7CivkuI3ms5Xnm6PnpoEgPCBmdWhvdWthbmtpblwgOwor5b6h6Ium5Yq05qeYIDwgZ29rdXJvdXNhbWFcIDsKK+itpuWvn+eKrCA8IGtlaXNhdHN1a2VuXCA7Civoh6rmsrvlpKfoh6MgPCBqaWNoaWRhaWppblwgOwor56uL5L2T5Lqk5beuIDwgcml0dGFpa291c2FcIDsKK+ernOmgreibh+WwviA8IHJ5dXV0b3VkYWJpXCA7CivlhYXpm7vmnJ/plpMgPCBqdXVkZW5raWthblwgOwor5Y+i5pmC6ZuoIDwgbXVyYXNoaWd1cmVcIDsKK+a1t+mjn+a0niA8IGthaXNob2t1ZG91XCA7CivoqJjmhrblqpLkvZMgPCBraW9rdWJhaXRhaVwgOwor5auh5a6kIDwgY2hha3VzaGl0c3VcIDsKK+WPguWIl+iAhSA8IHNhbnJldHN1c2hhXCA7CivppIrorbfmlZnoq60gPCB5b3Vnb2t5b3V5dVwgOwor5Lq65pys5Li7576pIDwgamlucG9uc2h1Z2lcIDsKK+a1t+a0i+aKleajhCA8IGthaXlvdXRvdWtpXCA7CivnlJ/nianlnI8gPCBzZWlidXRzdWtlblwgOwor5L6b57Wm5ZywIDwga3lvdWt5dXVjaGlcIDsKK+W5sua4iee4niA8IGthbnNob3VqaW1hXCA7Civni6zlibXnmoQgPCBkb2t1c291dGVraVwgOwor5LiN6ZqP5oSP6YGL5YuVIDwgZnV6dWlpdW5kb3VcIDsKK+WSjOatjOWxseecjCA8IHdha2F5YW1ha2VuXCA7CivlpKrpmb3pm7vms6IgPCB0YWl5b3VkZW5wYVwgOwor55CG56eR5aSn5a2mIDwgcmlrYWRhaWdha3VcIDsKK+afk+iJsuS9kyA8IHNlbnNob2t1dGFpXCA7CivluqfpoK3pr6ggPCB6YXRvdWt1amlyYVwgOwor6L+R6KGb5bir5ZujIDwga29ub2VzaGlkYW5cIDsKK+S4gOiho+W4r+awtCA8IGljaGlpdGFpc3VpXCA7Civos4fmnKzkuLvnvqkgPCBzaGlob25zaHVnaVwgOwor54uQ54y/IDwga2l0c3VuZXphcnVcIDsKK+iHqueUsee1kOWpmiA8IGppeXV1a2Vra29uXCA7Civlv4XpoIjnp5Hnm64gPCBoaXNzdWthbW9rdVwgOwor6L+R5Luj5Li7576pIDwga2luZGFpc2h1Z2lcIDsKK+adseWMlyA8IGhpZ2FzaGlraXRhXCA7CivlrojorbflpKnkvb8gPCBzaHVnb3RlbnNoaVwgOwor5pel5pys6Kqe5paH5a2XIDwgbmlob25nb21vamlcIDsKK+S9nOalremDqOS8miA8IHNhZ3lvdWJ1a2FpXCA7Civpg73luILlho3nlJ8gPCB0b3NoaXNhaXNlaVwgOwor55uu55qE6KuWIDwgbW9rdXRla2lyb25cIDsKK+ecgeeVpeaZgiA8IHNob3VyeWFrdWppXCA7CivkuIPmnIggPCBzaGljaGlnYXRzdVwgOwor5bm855Sf5Zmo5a6YIDwgeW91c2Vpa2lrYW5cIDsKK+W+oeeUqOe1hOWQiCA8IGdveW91a3VtaWFpXCA7Civou43kuovmvJTnv5IgPCBndW5qaWVuc2h1dVwgOwor55+z54Kt5q67IDwgc2VraXRhbmdhcmFcIDsKK+WIhuijguaApyA8IGJ1bnJldHN1c2VpXCA7Civnn63nuK7lvaIgPCB0YW5zaHVrdWtlaVwgOwor5Lq66YGT5Li7576pIDwgamluZG91c2h1Z2lcIDsKK+WJjeWPsuaZguS7oyA8IHplbnNoaWppZGFpXCA7CivmtbfkuIrlsIHpjpYgPCBrYWlqb3VmdXVzYVwgOwor5pyJ6IG36ICFIDwgeXV1c2hva3VzaGFcIDsKK+aEj+WRs+a3semVtyA8IGltaXNoaW5jaG91XCA7CivkuIDmmJQgPCBoaXRvbXVrYXNoaVwgOwor6Kaq5ZKM5YqbIDwgc2hpbndhcnlva3VcIDsKK+S6pOmAmumBleWPjSA8IGtvdXRzdXVpaGFuXCA7CivlhYjjgIXmnIggPCBzZW5zZW5nZXRzdVwgOwor5Zub5Y2B5YWr5omLIDwgeW9uanV1aGF0dGVcIDsKK+aJi+W3u+Wvv+WPuCA8IHRlbWFraXp1c2hpXCA7CivmnInkvZPniakgPCB5dXV0YWlidXRzdVwgOwor5p2x5YG0IDwgaGlnYXNoaWdhd2FcIDsKK+efree1oeeahCA8IHRhbnJha3V0ZWtpXCA7CivlhazplovorJvluqcgPCBrb3VrYWlrb3V6YVwgOwor54mH6KiA6Zq75Y+lIDwgaGVuZ2Vuc2Vra3VcIDsKK+mtheWKm+eahCA8IG1pcnlva3V0ZWtpXCA7CivljJblrablvI8gPCBrYWdha3VzaGlraVwgOwor5LiA5pKuIDwgaGl0b3RzdW1hbWlcIDsKK+WkqumZveaXpSA8IHRhaXlvdWppdHN1XCA7Civpq5jplqLnqI7ljJYgPCBrb3VrYW56ZWlrYVwgOwor6YGL6YCB5Lya56S+IDwgdW5zb3VnYWlzaGFcIDsKK+adseWuruW+oeaJgCA8IHRvdWd1dWdvc2hvXCA7Civlu7bmu57liKnmga8gPCBlbnRhaXJpc29rdVwgOwor6YeO55CD54axIDwgeWFreXV1bmV0c3VcIDsKK+eBq+eBveitpuWgsSA8IGthc2Fpa2VpaG91XCA7Civpo77ku5ggPCBrYXphcml0c3VrZVwgOwor57eP5oyH5o+u5a6YIDwgc291c2hpa2lrYW5cIDsKK+aUvumAgeaZgumWkyA8IGhvdXNvdWppa2FuXCA7CivnhrHmsJfnkIMgPCBuZXRzdWtpa3l1dVwgOwor56m65oOz5YqbIDwga3V1c291cnlva3VcIDsKK+acieWus+eEoeebiiA8IHl1dWdhaW11ZWtpXCA7CivpnZnlsqHnnIwgPCBzaGl6dW9rYWtlblwgOwor5amm5Lq65ZWP6aGMIDwgZnVqaW5tb25kYWlcIDsKK+aZtOiAlembqOiqrSA8IHNlaWtvdXVkb2t1XCA7Civlj43pgIbkurogPCBoYW5neWFrdW5pblwgOwor5p+T6auq5YmkIDwgc2VucGF0c3V6YWlcIDsKK+WFqOi6q+eXhSA8IHplbnNoaW5ieW91XCA7CivkuI3mlofmhrLms5UgPCBmdWJ1bmtlbnBvdVwgOwor6IW56Kmx6KGTIDwgZnVrdXdhanV0c3VcIDsKK+S4gOWvuOazleW4qyA8IGlzc3VuYm91c2hpXCA7Civlj6/og73li5XoqZ4gPCBrYW5vdWRvdXNoaVwgOwor5rWB6YeP6KiIIDwgcnl1dXJ5b3VrZWlcIDsKK+WujOWFqOmbh+eUqCA8IGthbnplbmtveW91XCA7Civnt5rnuZTpnaIgPCBzZW5zaGlraW1lblwgOwor5a6M57WQ57eoIDwga2Fua2V0c3VoZW5cIDsKK+WJr+m8u+iFlOeCjiA8IGZ1a3ViaWt1dWVuXCA7CivlrabnlJ/oqLwgPCBnYWt1c2Vpc2hvdVwgOwor6YCg5bmj5bGAIDwgem91aGVpa3lva3VcIDsKK+iqrOaYjuabuCA8IHNldHN1bWVpc2hvXCA7Civoh6rntabnjocgPCBqaWt5dXVyaXRzdVwgOwor5aSa5YWD5pS+6YCBIDwgdGFnZW5ob3Vzb3VcIDsKK+aJk+eJqeW4qyA8IHVjaGltb25vc2hpXCA7CivmsJfmga/lpYTlpYQgPCBraXNva3VlbicnZW5cIDsKK+aDqOauuuiAhSA8IHphbnNhdHN1c2hhXCA7Civno6/lt77nnYAgPCBpc29naW5jaGFrdVwgOwor6YeI6L+m5aaC5p2lIDwgc2hha2FueW9yYWlcIDsKK+S6iOe0hOWQjeewvyA8IHlveWFrdW1laWJvXCA7CivoqLzkurrluK0gPCBzaG91bmluc2VraVwgOwor5auh5Ye6IDwgY2hha3VzaHV0c3VcIDsKK+S4jeiyt+WQjOebnyA8IGZ1YmFpZG91bWVpXCA7CivkuIvlv4MgPCBzaGl0YWdva29yb1wgOwor6Iul55m96auqIDwgd2FrYXNoaXJhZ2FcIDsKK+mdnuiyt+WQjOebnyA8IGhpYmFpZG91bWVpXCA7CivmlbDlrabnmoQgPCBzdXVnYWt1dGVraVwgOwor55u05YaG5p+xIDwgY2hva3VlbmNodXVcIDsKK+iqrOaYjuaWhyA8IHNldHN1bWVpYnVuXCA7Civnm7jlr77mlazoqp4gPCBzb3V0YWlrZWlnb1wgOwor57WM5riI54m55Yy6IDwga2VpemFpdG9ra3VcIDsKK+S7u+aEj+Wbo+S9kyA8IG5pbicnaWRhbnRhaVwgOwor5rC055Sj54mpIDwgc3Vpc2FuYnV0c3VcIDsKK+aOpeaVteenu+WLlSA8IHNldHRla2lpZG91XCA7CivmlZnliYfmnKwgPCBreW91c29rdWJvblwgOwor6bCl5a+h5a2k54usIDwga2Fua2Frb2Rva3VcIDsKK+S5meWls+W/gyA8IG90b21lZ29rb3JvXCA7Civnm7jlr77lo7LosrcgPCBhaXRhaWJhaWJhaVwgOwor54Sh5Lq65bel5aC0IDwgbXVqaW5rb3Vqb3VcIDsKK+aIpuWLneWbvSA8IHNlbnNob3Vrb2t1XCA7CivljZfljJfmnJ0gPCBuYW5ib2t1Y2hvdVwgOwor5aSP6KGjIDwgbmF0c3Vnb3JvbW9cIDsKK+W5u+aDs+absiA8IGdlbnNvdWt5b2t1XCA7CivkuI3mj5vntJnluaMgPCBmdWthbnNoaWhlaVwgOwor5peF6IiI6KGMIDwgdGFiaWtvdWd5b3VcIDsKK+ebuOS5l+S9nOeUqCA8IHNvdWpvdXNheW91XCA7CivkuojnrpfkuI3otrMgPCB5b3NhbmZ1c29rdVwgOwor6LGG6Zu755CDIDwgbWFtZWRlbmt5dXVcIDsKK+ino+iqrOabuCA8IGthaXNldHN1c2hvXCA7CivolqznkIbkvZznlKggPCB5YWt1cmlzYXlvdVwgOwor57+85omL55uuIDwgeW9rdXNodW1va3VcIDsKK+Wpmue0hOiAhSA8IGtvbicneWFrdXNoYVwgOwor54K65pu/566h55CGIDwga2F3YXNla2FucmlcIDsKK+mDoeW9ueaJgCA8IGd1bicneWFrdXNob1wgOwor55+l6K2Y5bGkIDwgY2hpc2hpa2lzb3VcIDsKK+S6i+WJjeWNlOitsCA8IGppc2Vua3lvdWdpXCA7CivljprpoZTnhKHmgaUgPCBrb3VnYW5tdWNoaVwgOwor5pKe5pyo6a6rIDwgc2h1bW9rdXphbWVcIDsKK+ehvOmFuOacqyA8IGhvdXNhbm1hdHN1XCA7Civlronlhajoo4Xnva4gPCBhbnplbnNvdWNoaVwgOwor5aaW6KGT6ICFIDwgeW91anV0c3VzaGFcIDsKK+S9meeZvemggSA8IHlvaGFrdXBlZWppXCA7CivntbHkuIDnmoQgPCB0b3VpdHN1dGVraVwgOwor56m65rCX5oSf5p+TIDwga3V1a2lrYW5zZW5cIDsKK+awtOmBk+W3peS6iyA8IHN1aWRvdWtvdWppXCA7CivkuIDntJnljYrpiq0gPCBpc3NoaWhhbnNlblwgOwor5Y+N5bCE6YGL5YuVIDwgaGFuc2hhdW5kb3VcIDsKK+i6q+manOiAhSA8IHNoaW5zaG91c2hhXCA7Civpo5/ljZPloakgPCBzaG9rdXRha3VlblwgOwor5YWr5a2X6autIDwgaGFjaGlqaWhpZ2VcIDsKK+W+qea0u+elrSA8IGZ1a2thdHN1c2FpXCA7CivkuLvnlKPniakgPCBzaHVzYW5idXRzdVwgOwor576O6KGT55qEIDwgYmlqdXRzdXRla2lcIDsKK+Whqemhnua6tua2siA8IGVucnVpeW91ZWtpXCA7Civnj43nj77osaEgPCBjaGluZ2Vuc2hvdVwgOwor5LiJ56ic6Y+hIDwgc2FucnlvdWt5b3VcIDsKK+WkluS6uumDqOmaiiA8IGdhaWppbmJ1dGFpXCA7Civmi53ph5HkuLvnvqkgPCBoYWlraW5zaHVnaVwgOwor5aSn6Zm45qOaIDwgdGFpcmlrdWRhbmFcIDsKK+auv+anmOiKuCA8IHRvbm9zYW1hZ2VpXCA7Civmtbfpo5/ltJYgPCBrYWlzaG9rdWdhaVwgOwor5YWD56aE6KKWIDwgZ2Vucm9rdXNvZGVcIDsKK+eVsOS9k+WQjOW/gyA8IGl0YWlkb3VzaGluXCA7CivkuZfmlbDlirnmnpwgPCBqb3VzdXVrb3VrYVwgOwor5YWo55ub5pmC5LujIDwgemVuc2VpamlkYWlcIDsKK+aWh+aVmeaXjyA8IGJ1bmt5b3V6b2t1XCA7CivpnaLlkJHkuI3og4wgPCBtZW5rb3VmdWhhaVwgOwor5bmz5ZKM57at5oyB6LuNIDwgaGVpd2FpamlndW5cIDsKK+a5v+W6puioiCA8IHNoaXRzdWRva2VpXCA7Civlj6zpm4bogIUgPCBzaG91c2h1dXNoYVwgOwor56m655CG56m66KuWIDwga3V1cmlrdXVyb25cIDsKK+WFq+alteaLsyA8IGhha2t5b2t1a2VuXCA7Civkv6Hku7Dlv4MgPCBzaGlua291c2hpblwgOwor5Lq65LiA5YCNIDwgaGl0b2ljaGliYWlcIDsKK+WQiOihhuWbvSA8IGdhc3NodXVrb2t1XCA7CivmqZ/plqLlrqQgPCBraWthbnNoaXRzdVwgOwor6Z2e5bi46ZqO5q61IDwgaGlqb3VrYWlkYW5cIDsKK+WCt+eXjei7jeS6uiA8IHNob3VpZ3VuamluXCA7CivlhrfljbTmtrIgPCByZWlreWFrdWVraVwgOwor5ryB542y6auYIDwgZ3lva2FrdWRha2FcIDsKK+WFrOeUqOeJqSA8IGtvdXlvdWJ1dHN1XCA7CivljZjnmbrpioMgPCB0YW5wYXRzdWp1dVwgOwor5LiN5ZecIDwgYnV0YXNoaW5hbWlcIDsKK+aciOizpuiyqeWjsiA8IGdlcHB1aGFuYmFpXCA7CivkuIfkuJbkuIDns7sgPCBiYW5zZWlpa2tlaVwgOwor56ys5LqM6YOo6ZW3IDwgZGFpbmlidWNob3VcIDsKK+mbgOicgiA8IHN1enVtZWJhY2hpXCA7CivooYzlhIDkvZzms5UgPCBneW91Z2lzYWhvdVwgOwor6YeN5Yqg566X56iOIDwganV1a2FzYW56ZWlcIDsKK+WGt+WNtOawtCA8IHJlaWt5YWt1c3VpXCA7CivnjK7nq4vooaggPCBrb25kYXRlaHlvdVwgOwor5LiA5b+D5LiN5LmxIDwgaXNzaGluZnVyYW5cIDsKK+i7jeS6i+ijgeWIpCA8IGd1bmppc2FpYmFuXCA7Civoi6XojYnoibIgPCB3YWtha3VzYWlyb1wgOwor54Wn5piO5Zmo5YW3IDwgc2hvdW1laWtpZ3VcIDsKK+S4ieWbveS4gCA8IHNhbmdva3VpY2hpXCA7CivnnaPkv4PnirYgPCB0b2t1c29rdWpvdVwgOwor5bGN6ZmA5p6X546LIDwgc2hpZGFyaW4nJ291XCA7Civku67lj5flj5YgPCBrYXJpdWtldG9yaVwgOwor6YGO5Y675a6M5LqGIDwga2Frb2thbnJ5b3VcIDsKK+aIpuW+jOasp+W3niA8IHNlbmdvb3VzaHV1XCA7CivooovlsI/ot68gPCBmdWt1cm9rb3VqaVwgOwor6K2m5a+f5a6YIDwga2Vpc2F0c3VrYW5cIDsKK+mmluiEs+S8muitsCA8IHNodW5vdWthaWdpXCA7Civlrrbluq3mlpnnkIYgPCBrYXRlaXJ5b3VyaVwgOwor5pel5pys6YqA6KGMIDwgbmlob25naW5rb3VcIDsKK+iHqueEtuW+iyA8IHNoaXplbnJpdHN1XCA7Civogbfli5nntaYgPCBzaG9rdW11a3l1dVwgOwor6YGg5Lqk6L+R5pS7IDwgZW5rb3VraW5rb3VcIDsKK+aXi+WbnumBi+WLlSA8IHNlbmthaXVuZG91XCA7CivnmYLppIrkuK0gPCByeW91eW91Y2h1dVwgOwor5ZCI5oiQ54mpIDwgZ291c2VpYnV0c3VcIDsKK+W4sOWbveWtkOWlsyA8IGtpa29rdXNoaWpvXCA7CivkuInooYzljYogPCBtaWt1ZGFyaWhhblwgOwor6KGM5pS/5a2mIDwgZ3lvdXNlaWdha3VcIDsKK+Wun+ihjOWKmyA8IGppa2tvdXJ5b2t1XCA7CivplbfngavpiaIgPCBuYWdhaGliYWNoaVwgOwor6ZuM6ZuE5reY5rGwIDwgc2hpeXV1dG91dGFcIDsKK+a1t+mjn+WPsCA8IGthaXNob2t1ZGFpXCA7Civpg7Xkvr/niakgPCB5dXViaW5idXRzdVwgOwor6YqA5pys5L2N5Yi2IDwgZ2luaG9uJydpc2VpXCA7CivnqbrmsJfmnpUgPCBrdXVraW1ha3VyYVwgOwor5aWo5a2m6YeRIDwgc2hvdWdha3VraW5cIDsKK+e1hOmgrSA8IGt1bWlnYXNoaXJhXCA7Civoh6rmpa3oh6rlvpcgPCBqaWdvdWppdG9rdVwgOwor5YWs55Sf5rS7IDwga291c2Vpa2F0c3VcIDsKK+mBruiUveeJqSA8IHNoYWhlaWJ1dHN1XCA7CivkuLvmoLzoo5zoqp4gPCBzaHVrYWt1aG9nb1wgOwor57W557mU54mpIDwga2ludW9yaW1vbm9cIDsKK+iKuOihk+irliA8IGdlaWp1dHN1cm9uXCA7CivlgpjlvaLlmajlrpggPCBzYW5rZWlraWthblwgOwor6Jas5Yq554mpIDwgeWFra291YnV0c3VcIDsKK+e3keiZqyA8IG1pZG9yaW11c2hpXCA7Civpm7vljJboo73lk4EgPCBkZW5rYXNlaWhpblwgOwor5bqt5LuV5LqLIDwgbml3YXNoaWdvdG9cIDsKK+izh+eUo+S+oeWApCA8IHNoaXNhbmthY2hpXCA7Civmgqros6rljJYgPCBha3VzaGl0c3VrYVwgOwor5Lit5aSu56u26aasIDwgY2h1dW91a2VpYmFcIDsKK+efpeitmOS6uiA8IGNoaXNoaWtpamluXCA7CivotaTlrZfosqHmlL8gPCBha2FqaXphaXNlaVwgOwor55m95YaF6ZqcIDwgaGFrdW5haXNob3VcIDsKK+aUv+ayu+S6oeWRvSA8IHNlaWppYm91bWVpXCA7CivkupTljYHlubTnpa0gPCBnb2p1dW5lbnNhaVwgOwor6YG65peP5bm06YeRIDwgaXpva3VuZW5raW5cIDsKK+S6uuW3peaghOmkiiA8IGppbmtvdWVpeW91XCA7Civmk6zlj6TlhbjnmoQgPCBnaWtvdGVudGVraVwgOwor5qW95aSp55qEIDwgcmFrdXRlbnRla2lcIDsKK+mbu+awl+S8muekviA8IGRlbmtpZ2Fpc2hhXCA7CivmsJfpmo/msJflhJggPCBraXp1aWtpbWFtYVwgOwor5Yil5YuY5a6aIDwgYmV0c3VrYW5qb3VcIDsKK+mHkeadk+WtkCA8IGthbmFqYWt1c2hpXCA7CivplbflpKfmga8gPCBjaG91dGFpc29rdVwgOwor6IG05Y+W5paZIDwgY2hvdXNodXJ5b3VcIDsKK+eEoeWPjeWLlemKgyA8IG11aGFuZG91anV1XCA7CivpgaDlv4PliIbpm6IgPCBlbnNoaW5idW5yaVwgOwor5aC05aSW6aas5Yi4IDwgam91Z2FpYmFrZW5cIDsKK+mdkuW5tOaZguS7oyA8IHNlaW5lbmppZGFpXCA7CivpoLjpnZnohIggPCBrZWlqb3VteWFrdVwgOwor5ryB542y6YePIDwgZ3lva2FrdXJ5b3VcIDsKK+iqnuWtpuWKmyA8IGdvZ2FrdXJ5b2t1XCA7CivmupblgpnlrqQgPCBqdW5iaXNoaXRzdVwgOwor5Lit5bm05aKXIDwgY2h1dWRvc2hpbWFcIDsKK+iHqueUseWVj+mhjCA8IGppeXV1bW9uZGFpXCA7CivmvKvnlLvpm5HoqowgPCBtYW5nYXphc3NoaVwgOwor5Lqc6Ymb5Lit5q+SIDwgYWVuY2h1dWRva3VcIDsKK+iDjOeti+WKmyA8IGhhaWtpbnJ5b2t1XCA7CivmiYDmnInniakgPCBzaG95dXVidXRzdVwgOwor56WW5YWI5Lyd5p2lIDwgc29zZW5kZW5yYWlcIDsKK+eUo+Wcn+elniA8IHVidXN1bmFnYW1pXCA7Civpm6rnpKsgPCB5dWtpdHN1YnV0ZVwgOwor5pqX6LWk6ImyIDwgYW5zZWtpc2hva3VcIDsKK+S7leeri+eJqSA8IHNoaXRhdGVtb25vXCA7CivkuIDlhZrmlK/phY0gPCBpdHRvdXNoaWhhaVwgOwor5peX5qiZIDwgaGF0YWppcnVzaGlcIDsKK+WkouePviA8IHl1bWV1dHN1dHN1XCA7CivkuIPlm57lv4wgPCBzaGljaGlrYWlraVwgOwor5Li76Kaz5Li7576pIDwgc2h1a2Fuc2h1Z2lcIDsKK+a6tuino+eGsSA8IHlvdWthaW5ldHN1XCA7CivnsbPljYHnspIgPCBrb21lanV1cnl1dVwgOwor5ZG85ZC45Zmo57O7IDwga29reXV1a2lrZWlcIDsKK+eJueazqOWTgSA8IHRva3VjaHV1aGluXCA7Civpm5vnpa0gPCBoaW5hbWF0c3VyaVwgOwor54K65pu/5oqV5qmfIDwga2F3YXNldG91a2lcIDsKK+S4gOefpeWNiuinoyA8IGl0Y2hpaGFua2FpXCA7CivkuI3lrprlhqDoqZ4gPCBmdXRlaWthbnNoaVwgOwor5Luj6K2w5pS/5L2TIDwgZGFpZ2lzZWl0YWlcIDsKK+W5s+WSjOaUu+WLoiA8IGhlaXdha291c2VpXCA7CivkvY7kvqHmoLzljJYgPCB0ZWlrYWtha3VrYVwgOwor5Y+k5paw6IGeIDwgZnVydXNoaW5idW5cIDsKK+mFjemBlOS6uiA8IGhhaXRhdHN1bmluXCA7CivkuqzkurrlvaIgPCBreW91bmluZ3lvdVwgOwor6IKY5o6b5qSF5a2QIDwgaGlqaWtha2Vpc3VcIDsKK+WFrOWLmeeBveWusyA8IGtvdW11c2FpZ2FpXCA7Civmma/msJflvqrnkrAgPCBrZWlraWp1bmthblwgOwor6Zai5L+C5rOV6KaPIDwga2Fua2VpaG91a2lcIDsKK+izgOipnuS6pOaPmyA8IGdhc2hpa291a2FuXCA7CivogJXlnLDmlbTnkIYgPCBrb3VjaGlzZWlyaVwgOwor5a6M57WQ5paHIDwga2Fua2V0c3VidW5cIDsKK+ihqOijj+S4gOS9kyA8IGh5b3VyaWl0dGFpXCA7Civlj43lr77oibIgPCBoYW50YWlzaG9rdVwgOwor5ZWG5ZOB5a2mIDwgc2hvdWhpbmdha3VcIDsKK+WltOmat+ino+aUviA8IGRvcmVpa2FpaG91XCA7CivlhaXlsITop5IgPCBueXV1c2hha2FrdVwgOwor5raI6Ziy5bqBIDwgc2hvdWJvdWNob3VcIDsKK+mYv+Wkmuemj+ixhiA8IG90YWZ1a3VtYW1lXCA7CivlpYfpupfmiYAgPCBraXJlaWRva29yb1wgOwor5aWz5pexIDwgb24nJ25haGlkZXJpXCA7CivlsbHlkLnoibIgPCB5YW1hYnVraWlyb1wgOwor5LyB5qWt5pW05YKZIDwga2lneW91c2VpYmlcIDsKK+i7jeS6i+ihjOWLlSA8IGd1bmppa291ZG91XCA7CivmiZPmkoPnjocgPCBkYWdla2lyaXRzdVwgOwor5Zyw5pa56Ieq5rK7IDwgY2hpaG91amljaGlcIDsKK+iri+axgumhjSA8IHNlaWt5dXVnYWt1XCA7Civnmb7lubTnpa0gPCBoeWFrdW5lbnNhaVwgOwor5LiW5L+X5Li7576pIDwgc2V6b2t1c2h1Z2lcIDsKK+mrmOeCree0oOmLvCA8IGtvdXRhbnNva291XCA7CivmipHnlZnogIUgPCB5b2t1cnl1dXNoYVwgOwor6aOf6YCj5pifIDwgc2hva3VyZW5zZWlcIDsKK+iQveacreWApCA8IHJha3VzYXRzdW5lXCA7Civoh6rnhLblipsgPCBzaGl6ZW5yeW9rdVwgOwor5pyJ5qmf6IKl5paZIDwgeXV1a2loaXJ5b3VcIDsKK+enmOabuOWupCA8IGhpc2hvc2hpdHN1XCA7CivljYPnp4vmpb0gPCBzZW5zaHV1cmFrdVwgOwor5q+U5L6L6YWN5YiGIDwgaGlyZWloYWlidW5cIDsKK+aOoueptuW/gyA8IHRhbmt5dXVzaGluXCA7Civlj43lr77pgYvli5UgPCBoYW50YWl1bmRvdVwgOwor5re75LuY5pu46aGeIDwgdGVucHVzaG9ydWlcIDsKK+aBi+aEm+mBiuaIryA8IHJlbicnYWl5dXVnaVwgOwor5Ymv56S+6ZW3IDwgZnVrdXNoYWNob3VcIDsKK+aKleWwhOWOn+eQhiA8IHRvdXNoYWdlbnJpXCA7CivlpKfoqIDlo67oqp4gPCB0YWlnZW5zb3Vnb1wgOwor5pyI5L6L5LyaIDwgZ2V0c3VyZWlrYWlcIDsKK+aVsOaXpemWkyA8IHN1dWppdHN1a2FuXCA7Civlkb3lkI3lvI8gPCBtZWltZWlzaGlraVwgOwor5oyH5bCO5YqbIDwgc2hpZG91cnlva3VcIDsKK+aEn+immueahCA8IGthbmtha3V0ZWtpXCA7Civph5HmnKzkvY3liLYgPCBraW5ob24nJ2lzZWlcIDsKK+mAoOiqnuaIkOWIhiA8IHpvdWdvc2VpYnVuXCA7Civlho3plovnmbogPCBzYWlrYWloYXRzdVwgOwor5YWl5a2m6ZujIDwgbnl1dWdha3VuYW5cIDsKK+WIhuaKmOWtpiA8IGJ1bnNla2lnYWt1XCA7Civnmb7np5Hovp7lhbggPCBoeWFra2FqaXRlblwgOwor6Iul6Lyp6ICFIDwgamFrdWhhaW1vbm9cIDsKK+S4h+S7o+S4jeaYkyA8IGJhbmRhaWZ1ZWtpXCA7CivluYXlpInoqr8gPCBoYWJhaGVuY2hvdVwgOwor5Y2x6Zm66KeS5bqmIDwga2lrZW5rYWt1ZG9cIDsKK+WMluWtpuWFteWZqCA8IGthZ2FrdWhlaWtpXCA7CivlpbPlv4MgPCBvbicnbmFnb2tvcm9cIDsKK+Wwj+aDkeaYnyA8IHNob3V3YWt1c2VpXCA7CivmvKLlrZfliLbpmZAgPCBrYW5qaXNlaWdlblwgOwor5bm05Yqf5Yi25bqmIDwgbmVua291c2VpZG9cIDsKK+S6uueJqeWDjyA8IGppbmJ1dHN1em91XCA7CivouoHprLHnl4UgPCBzb3V1dHN1YnlvdVwgOwor55u06Ly45YWlIDwgY2hva3V5dW55dXVcIDsKK+S/g+mAsuWJpCA8IHNva3VzaGluemFpXCA7CivmtbflupXngavlsbEgPCBrYWl0ZWlrYXphblwgOwor6ZqU6Z205o6755eSIDwga2Fra2Fzb3V5b3VcIDsKK+aPoemuqCA8IG5pZ2lyaXp1c2hpXCA7CivpvLvlh7rooYAgPCBiaXNodWtrZXRzdVwgOwor6Z2Z5b+DIDwgc2hpenVnb2tvcm9cIDsKK+mdnuaIpuirluiAhSA8IGhpc2Vucm9uc2hhXCA7CivmgKXpgLLlhZogPCBreXV1c2hpbnRvdVwgOwor5LiH5LiW5LiN5piTIDwgYmFuc2VpZnVla2lcIDsKK+WGjeeUn+e5iue2rSA8IHNhaXNlaXNlbicnaVwgOwor6YGL6Lui57O757WxIDwgdW50ZW5rZWl0b3VcIDsKK+S7u+aEj+WQjOihjCA8IG5pbicnaWRvdWtvdVwgOwor6Zqj55S6IDwgdG9uYXJpbWFjaGlcIDsKK+iHqOaZguWbveS8miA8IHJpbmppa29ra2FpXCA7CivoqabpqJPmnJ/plpMgPCBzaGlrZW5raWthblwgOwor6YeR5ama5byPIDwga2lua29uc2hpa2lcIDsKK+a6gOiJpumjviA8IG1hbmthbnNob2t1XCA7CivlubTlip/liqDkv7ggPCBuZW5rb3VrYWhvdVwgOwor5b+c5o+05Zuj6ZW3IDwgb3VlbmRhbmNob3VcIDsKK+Wkp+aZpiA8IG9vdHN1Z29tb3JpXCA7Civlgo3ov7fmg5EgPCBoYXRhbWVpd2FrdVwgOwor6LuN5Yy757eP55ujIDwgZ3VuJydpc291a2FuXCA7CivmmLzpo5/mmYIgPCBjaHV1c2hva3VqaVwgOwor6Iq46KGT56WtIDwgZ2VpanV0c3VzYWlcIDsKK+aFiOWWhOWbo+S9kyA8IGppemVuZGFudGFpXCA7Civoh6rnv5LmmYLplpMgPCBqaXNodXVqaWthblwgOwor5o+h6aOvIDwgbmlnaXJpbWVzaGlcIDsKK+WbveWutuijnOWEnyA8IGtva2thaG9zaG91XCA7Civnm5vogIXlv4XoobAgPCBzZWlqYWhpc3N1aVwgOwor5a2m55Sf5pyNIDwgZ2FrdXNlaWZ1a3VcIDsKK+S6uuaWh+S4u+e+qSA8IGppbmJ1bnNodWdpXCA7Civpm7voqbHnlarlj7cgPCBkZW53YWJhbmdvdVwgOwor5bCx5qWt5ZywIDwgc2h1dWd5b3VjaGlcIDsKK+ihqOekuueJqSA8IGh5b3VqaWJ1dHN1XCA7Civou6LlhaXnlJ8gPCB0ZW4nJ255dXVzZWlcIDsKK+eQhuirluS9k+ezuyA8IHJpcm9udGFpa2VpXCA7CivlhaXlrabph5EgPCBueXV1Z2FrdWtpblwgOwor5pel5pys5rW35rqdIDwgbmlob25rYWlrb3VcIDsKK+e1jOW4uOWIqeebiiA8IGtlaWpvdXJpZWtpXCA7CivpnanmlrDns7sgPCBrYWt1c2hpbmtlaVwgOwor5byV6LKs6L6e5Lu7IDwgaW5zZWtpamluaW5cIDsKK+mZvealtee3miA8IHlvdWt5b2t1c2VuXCA7Civlh7rmvJTogIUgPCBzaHV0c3VlbnNoYVwgOwor5Lya6K2w5a6kIDwga2FpZ2lzaGl0c3VcIDsKK+WHpuWls+iIqua1tyA8IHNob2pva291a2FpXCA7CivpmbjpgYvlsYAgPCByaWt1dW5reW9rdVwgOwor6L+95b606YeRIDwgdHN1aWNob3VraW5cIDsKK+auuuiPjOWKmyA8IHNha2tpbnJ5b2t1XCA7CivmipXlrr/ogIUgPCB0b3VzaHVrdXNoYVwgOwor5paw5bqB6IiOIDwgc2hpbmNob3VzaGFcIDsKK+WGt+WNtOWJpCA8IHJlaWt5YWt1emFpXCA7CivkuIDou5LkuIDou5IgPCBpa2tlbicnaWtrZW5cIDsKK+mBiuimp+WuoiA8IHl1dXJhbmt5YWt1XCA7Civpu4Tph5HomasgPCBrb2dhbmVtdXNoaVwgOwor5ZWP562U54Sh55SoIDwgbW9uZG91bXV5b3VcIDsKK+mBi+WRveirluiAhSA8IHVubWVpcm9uc2hhXCA7Civpu5Lmrbvnl4UgPCBrb2t1c2hpYnlvdVwgOwor6YO15L6/5bGAIDwgeXV1Ymlua3lva3VcIDsKK+iPnOeoruaihembqCA8IG5hdGFuZWR6dXl1XCA7CivoqrLlpJbmjojmpa0gPCBrYWdhaWp1Z3lvdVwgOwor5Y+N5bCE546HIDwgaGFuc2hhcml0c3VcIDsKK+mbo+awkeW4sOmChCA8IG5hbm1pbmtpa2FuXCA7Civlgbblg4/noLTlo4ogPCBndXV6b3VoYWthaVwgOwor5pWZ55qH5bqBIDwga3lvdWtvdWNob3VcIDsKK+iLpemzpeS4vCA8IHdha2Fkb3JpZG9uXCA7CivmjIfnpLroo4Xnva4gPCBzaGlqaXNvdWNoaVwgOwor5a6J5YWo5Zyw5bivIDwgYW56ZW5jaGl0YWlcIDsKK+iHquW3seikh+ijvSA8IGppa29mdWt1c2VpXCA7Civnvo7ooZPllYYgPCBiaWp1dHN1c2hvdVwgOwor5LuW5Lq66KGM5YSAIDwgdGFuaW5neW91Z2lcIDsKK+WIpOWumOi0lOWxkyA8IGhvdWdhbmJpaWtpXCA7Civmu7Tlrprph48gPCB0ZWtpdGVpcnlvdVwgOwor5Zyn5pC+56m65rCXIDwgYXNzYWt1a3V1a2lcIDsKK+elnuWtpuiAhSA8IHNoaW5nYWt1c2hhXCA7Civlr4bovLjlhaUgPCBtaXRzdXl1bnl1dVwgOwor5YGl5bq3566h55CGIDwga2Vua291a2FucmlcIDsKK+i4j+WIh+eVqiA8IGZ1bWlraXJpYmFuXCA7CivoqabpqJPpo5vooYwgPCBzaGlrZW5oaWtvdVwgOwor55Sf55Sj6YGO5YmwIDwgc2Vpc2Fua2Fqb3VcIDsKK+WJjeWlj+absiA8IHplbnNvdWt5b2t1XCA7CivogLPpvLvlkr3llonnp5EgPCBqaWJpaW5rb3VrYVwgOwor55Sf55CG5LyR5pqHIDwgc2VpcmlreXV1a2FcIDsKK+S6pOmam+WgtOijjyA8IGtvdXNhaWpvdXJpXCA7Civoo7jkuIDosqsgPCBoYWRha2Fpa2thblwgOwor5aWP6bO05puyIDwgc291bWVpa3lva3VcIDsKK+ixiuiCpeacrOe3miA8IGhvdWhpaG9uc2VuXCA7Civnp4HnlJ/mtLsgPCBzaGlzZWlrYXRzdVwgOwor57Sr6ImyIDwgbXVyYXNha2lpcm9cIDsKK+WIpOaWreimj+a6liA8IGhhbmRhbmtpanVuXCA7CivnlLLpiYToiaYgPCBrb3V0ZXRzdWthblwgOwor5b+D6IeT55eFIDwgc2hpbnpvdWJ5b3VcIDsKK+mMrOmHkeihkyA8IHJlbmtpbmp1dHN1XCA7Civpu5LlhoXpmpwgPCBrb2t1bmFpc2hvdVwgOwor5pyJ6K2Y6ICFIDwgeXV1c2hpa2lzaGFcIDsKK+Wxsea0peazoiA8IHlhbWF0c3VuYW1pXCA7Civoopbnj43mnKwgPCBzaHV1Y2hpbmJvblwgOwor5aSp6LOH6Iux6YKBIDwgdGVuc2hpZWltYWlcIDsKK+WFiOedgOmghiA8IHNlbmNoYWt1anVuXCA7CivmirXmipfpgYvli5UgPCB0ZWlrb3V1bmRvdVwgOwor6YO15L6/5YiH5omLIDwgeXV1Ymlua2l0dGVcIDsKK+Wun+WQjeipniA8IGppdHN1bWVpc2hpXCA7CivpmLLpo5/liaQgPCBib3VzaG9rdXphaVwgOwor5a++56ew6Lu4IDwgdGFpc2hvdWppa3VcIDsKK+i/keaXpeeCuSA8IGtpbmppdHN1dGVuXCA7CivnlLDlnJLpg73luIIgPCBkZW4nJ2VudG9zaGlcIDsKK+iho+aWmeWTgeW6lyA8IGlyeW91aGludGVuXCA7Civkuozpg6jlkIjllLEgPCBuaWJ1Z2Fzc2hvdVwgOwor6JeN5pm255+zIDwgcmFuc2hvdXNla2lcIDsKK+Wls+WtkOS+myA8IG9uJyduYWtvZG9tb1wgOwor5rKh6aOf5a2QIDwgbW9zc2hva3VzaGlcIDsKK+mbu+WtkOmgreiEsyA8IGRlbnNoaXp1bm91XCA7Civkv67nuZXkuK0gPCBzaHV1emVuY2h1dVwgOwor5Ymy6LOm6LKp5aOyIDwga2FwcHVoYW5iYWlcIDsKK+iAs+WtpuWVjyA8IG1pbWlnYWt1bW9uXCA7CivpqqjokaPotqPlkbMgPCBrb3R0b3VzaHVtaVwgOwor6LuN5YKZ5Yi26ZmQIDwgZ3VuYmlzZWlnZW5cIDsKK+mVt+eykuexsyA8IGNob3VyeXV1bWFpXCA7CivpgYvli5XkuI3otrMgPCB1bmRvdWJ1c29rdVwgOwor5Yi26ZmQ5ryi5a2XIDwgc2VpZ2Vua2FuamlcIDsKK+elnuS/oeW/gyA8IGthbWlzaGluamluXCA7CivnhKHlj43li5XnoLIgPCBtdWhhbmRvdWhvdVwgOwor5aWo5a2m55SfIDwgc2hvdWdha3VzZWlcIDsKK+WOn+WboOS4jeaYjiA8IGdlbicnaW5mdW1laVwgOwor6Kaz5YW15byPIDwga2FucGVpc2hpa2lcIDsKK+iLpeW5tOWeiyA8IGpha3VuZW5nYXRhXCA7Civou73oh6rli5Xou4ogPCBrZWlqaWRvdXNoYVwgOwor6byg5rW36LGaIDwgbmV6dW1paXJ1a2FcIDsKK+eLkOeWkemAoeW3oSA8IGtvZ2lzaHVuanVuXCA7Civpm4bnqY3loLQgPCBzaHV1c2VraWpvdVwgOwor5oyH5Lq65b2iIDwgeXViaW5pbmd5b3VcIDsKK+eoi+W6puWVj+mhjCA8IHRlaWRvbW9uZGFpXCA7Civopo/lrprmiZPluK0gPCBraXRlaWRhc2VraVwgOwor5puy6Iq45birIDwga3lva3VnZWlzaGlcIDsKK+m6pueykuiFqyA8IGJha3VyeXV1c2h1XCA7Civnm67nmoTlnLAgPCBtb2t1dGVraWNoaVwgOwor6aKo57SA57SK5LmxIDwgZnV1a2liaW5yYW5cIDsKK+WtpueUn+WvriA8IGdha3VzZWlyeW91XCA7CivlkIjmiJDlipsgPCBnb3VzZWlyeW9rdVwgOwor5biC5Y+C5LqL5LyaIDwgc2hpc2FuamlrYWlcIDsKK+iomOaGtuijhee9riA8IGtpb2t1c291Y2hpXCA7Civmj5DkvpvlgbQgPCB0ZWlreW91Z2F3YVwgOwor6Zuq5bqHIDwgeXVraWJpc2FzaGlcIDsKK+mbu+awl+S8neWwjiA8IGRlbmtpZGVuZG91XCA7CivmtbflpJbmtL7lhbUgPCBrYWlnYWloYWhlaVwgOwor5aSp6LOm5Lq65qipIDwgdGVucHVqaW5rZW5cIDsKK+aHuOWegumBi+WLlSA8IGtlbnN1aXVuZG91XCA7CivnpZ7np5jkuLvnvqkgPCBzaGlucGlzaHVnaVwgOwor5LmX6ZmN5a6iIDwgam91a291a3lha3VcIDsKK+WGheimqueOiyA8IG5haXNoaW4nJ25vdVwgOwor6YGg5oWu5Lya6YeIIDwgZW5yeW9lc2hha3VcIDsKK+eznuWLieW8tyA8IGt1c29iZW5reW91XCA7Civmmpflj7fmiYvms5UgPCBhbmdvdXNodWhvdVwgOwor55+i57aZ5pepIDwgeWF0c3VnaWJheWFcIDsKK+mVt+ipsSA8IG5hZ2FiYW5hc2hpXCA7CivpgYvovLjlpKfoh6MgPCB1bicneXVkYWlqaW5cIDsKK+mdnuirlueQhueahCA8IGhpcm9ucml0ZWtpXCA7CivlpInmm7LngrkgPCBoZW5reW9rdXRlblwgOwor5Y+z57+85Zuj5L2TIDwgdXlva3VkYW50YWlcIDsKK+mVt+Wbm+inkiA8IG5hZ2FzaGlrYWt1XCA7CivopqrliIfmsJcgPCBzaGluc2V0c3VnaVwgOwor5L+d5YGl6KGb55SfIDwgaG9rZW4nJ2Vpc2VpXCA7Civnm5flk4HmlYXosrcgPCB0b3VoaW5rb2JhaVwgOwor5Ymv56We57WMIDwgZnVrdXNoaW5rZWlcIDsKK+iRiee3keS9kyA8IHlvdXJ5b2t1dGFpXCA7CivpnZnmraLou4zpgZMgPCBzZWlzaGlraWRvdVwgOwor5oW25oeJ576p5aG+IDwga2Vpb3VnaWp1a3VcIDsKK+W/q+WIgOS5sem6uyA8IGthaXRvdXJhbm1hXCA7Civoj4rkurrlvaIgPCBraWt1bmluZ3lvdVwgOwor546p5byE54mpIDwgZ2Fucm91YnV0c3VcIDsKK+WPo+iogOiRiSA8IGt1Y2hpa290b2JhXCA7Civpm4blkIjnmoQgPCBzaHV1Z291dGVraVwgOwor6Iez6L+R6Led6ZuiIDwgc2hpa2lua3lvcmlcIDsKK+WJsuW9k+mhjSA8IHdhcmlhdGVnYWt1XCA7CivluLjnv5LnmoQgPCBqb3VzaHV1dGVraVwgOwor5pCN5a6z5L+d6Zm6IDwgc29uZ2FpaG9rZW5cIDsKK+ani+aIkOimgee0oCA8IGtvdXNlaXlvdXNvXCA7CivmhJ/lnKfntJkgPCBrYW4nJ2F0c3VzaGlcIDsKK+WNlOitsOS6i+mghSA8IGt5b3VnaWppa291XCA7CivntIXnjL/lrZAgPCBiZW5pbWFzaGlrb1wgOwor5by+5oCn546HIDwgZGFuc2Vpcml0c3VcIDsKK+iInuWPsOS/s+WEqiA8IGJ1dGFpaGFpeXV1XCA7CivljbHmqZ/kuIDpq6ogPCBraWtpaXBwYXRzdVwgOwor5Yy75a2m6ZuR6KqMIDwgaWdha3V6YXNzaGlcIDsKK+a3oee0heiJsiA8IHRhbmtvdXNob2t1XCA7Civmn7PooYzmnY4gPCB5YW5hZ2lnb3VyaVwgOwor54mp5L6h5rC05rqWIDwgYnVra2FzdWlqdW5cIDsKK+i1pOWNgeWtl+mZhCA8IHNla2lqdXVqaWZ1XCA7CivmibbppIrlrrbml48gPCBmdXlvdWthem9rdVwgOwor5rWB5YuV55qEIDwgcnl1dWRvdXRla2lcIDsKK+eSsOWig+W6gSA8IGthbmt5b3VjaG91XCA7Civnq4vmhrLmlL/msrsgPCByaWtrZW5zZWlqaVwgOwor5piG6Jmr5a2mIDwga29uY2h1dWdha3VcIDsKK+W4uOaXpemggyA8IHRzdW5laGlnb3JvXCA7Civmr5Tnv7zloZogPCBoaXlva3VkenVrYVwgOwor5re35oiQ54mpIDwga29uc2VpYnV0c3VcIDsKK+S6uuW3peiHk+WZqCA8IGppbmtvdXpvdWtpXCA7Civmurbop6PlipsgPCB5b3VrYWlyeW9rdVwgOwor57SZ56SrIDwga2FtaXRzdWJ1dGVcIDsKK+aVmeiCsumVtyA8IGt5b3Vpa3VjaG91XCA7CivnhLzljbTngokgPCBzaG91a3lha3Vyb1wgOwor56Wt5pS/5LiA6Ie0IDwgc2Fpc2VpaXRjaGlcIDsKK+eZveaqgOayuSA8IGJ5YWt1ZGFuJyd5dVwgOwor54m95byV5YqbIDwga2VuJydpbnJ5b2t1XCA7CivoprPlhYnlsYAgPCBrYW5rb3VreW9rdVwgOwor5LiN6KiA5a6f6KGMIDwgZnVnZW5qaWtrb3VcIDsKK+WFpeWtpuiAhSA8IG55dXVnYWt1c2hhXCA7Civlm73lrabogIUgPCBrb2t1Z2FrdXNoYVwgOwor5LuV5LqL6YOo5bGLIDwgc2hpZ290b2JleWFcIDsKK+a0u+WLleiqjCA8IGthdHN1ZG91c2hpXCA7Civlh7rlnJ/lk4EgPCBzaHV0c3Vkb2hpblwgOwor57SZ6KGo57SZIDwga2FtaWJ5b3VzaGlcIDsKK+ims+WFieWuoiA8IGthbmtvdWt5YWt1XCA7CivmiJDkurrmmKDnlLsgPCBzZWlqaW4nJ2VpZ2FcIDsKK+iHqueUseWWtualrSA8IGppeXV1ZWlneW91XCA7CivlhbHlrabliLYgPCBreW91Z2FrdXNlaVwgOwor6baOIDwga2lrdWl0YWRha2lcIDsKK+aomea6luiqpOW3riA8IGh5b3VqdW5nb3NhXCA7Civnvp7mgaXlv4MgPCBzaHV1Y2hpc2hpblwgOwor5Y+C6K2w6Zmi6K2w5ZOhIDwgc2FuZ2lpbmdpaW5cIDsKK+iZq+ecvOmPoSA8IG11c2hpbWVnYW5lXCA7CivoqIDokYnos6ogPCBrb3RvYmFqaWNoaVwgOwor5a2m6ICF6IaaIDwgZ2FrdXNoYWhhZGFcIDsKK+mAmuS/oee2siA8IHRzdXVzaGlubW91XCA7Civmma7lj4rnjocgPCBmdWt5dXVyaXRzdVwgOwor5Lmz5YWQ6ISa5rCXIDwgbnl1dWppa2Fra2VcIDsKK+WNg+mzpei2syA8IGNoaWRvcmlhc2hpXCA7Civou43pnIDlt6XloLQgPCBndW5qdWtvdWpvdVwgOwor55u45Yqg5bmz5Z2HIDwgc291a2FoZWlraW5cIDsKK+eyl+ijveS5semAoCA8IHNvc2VpcmFuem91XCA7CivlvqHlkI3lvqHnkr0gPCBneW9tZWlneW9qaVwgOwor6KO46JmrIDwgaGFkYWthbXVzaGlcIDsKK+i7oui9jeaJiyA8IHRlbnRldHN1c2h1XCA7Civos7zosrflipsgPCBrb3ViYWlyeW9rdVwgOwor5YWl6LOe6ICFIDwgbnl1dXNob3VzaGFcIDsKK+mZuOi7jeecgSA8IHJpa3VndW5zaG91XCA7Civku67lh7rmiYAgPCBrYXJpc2h1c3Nob1wgOwor5paH5rK75Li7576pIDwgYnVuY2hpc2h1Z2lcIDsKK+WPpOeJqeWVhiA8IGtvYnV0c3VzaG91XCA7Civoh6rnhLbmt5jmsbAgPCBzaGl6ZW50b3V0YVwgOwor5a625a6F5o2c5p+7IDwga2F0YWt1c291c2FcIDsKK+aXouaIkOamguW/tSA8IGtpc2VpZ2FpbmVuXCA7CivmlbTlgpnlt6XloLQgPCBzZWliaWtvdWpvdVwgOwor5a++56m656Cy54GrIDwgdGFpa3V1aG91a2FcIDsKK+a7nuepuuaZgumWkyA8IHRhaWt1dWppa2FuXCA7CivosaHlvrToqakgPCBzaG91Y2hvdXNoaVwgOwor5LiL5Y2U6K2wIDwgc2hpdGFreW91Z2lcIDsKK+WPrOmbhuS7pCA8IHNob3VzaHV1cmVpXCA7Civosr/mmJPotaTlrZcgPCBib3Vla2lha2FqaVwgOwor5LiA6KiA5bGF5aOrIDwgaWNoaWdlbmtvamlcIDsKK+eFp+S8muWFiCA8IHNob3VrYWlzYWtpXCA7CivlsYvkuIrluq3lnJIgPCBva3Vqb3V0ZWllblwgOwor5aCG56mN5a2mIDwgdGFpc2VraWdha3VcIDsKK+iqreino+WKmyA8IGRva2thaXJ5b2t1XCA7Civpn7Plo7DooajoqJggPCBvbnNlaWh5b3VraVwgOwor6IW457WQ5qC4IDwgY2hvdWtla2tha3VcIDsKK+W5tOaBsOWlvSA8IHRvc2hpa2Fra291XCA7Civlr6nnvo7kuLvnvqkgPCBzaGluYmlzaHVnaVwgOwor6YCa55Sj55yBIDwgdHN1dXNhbnNob3VcIDsKK+W/nOeUqOWVj+mhjCA8IG91eW91bW9uZGFpXCA7CivkupLmgbXplqLnqI4gPCBnb2tlaWthbnplaVwgOwor552j5a2m5a6YIDwgdG9rdWdha3VrYW5cIDsKK+aHkOS4reeJqSA8IGthaWNodXVtb25vXCA7CivpgJrkv6HnpL4gPCB0c3V1c2hpbnNoYVwgOwor6Luf5oCn5LiL55azIDwgbmFuc2VpZ2VrYW5cIDsKK+Wbveiqnui+nuWFuCA8IGtva3Vnb2ppdGVuXCA7Civlhazoqo3lgJnoo5wgPCBrb3VuaW5rb3Vob1wgOwor55Sf5bm05pyI5pelIDwgc2VpbmVuZ2FwcGlcIDsKK+Wlh+etlue4puaoqiA8IGtpc2FrdWp1dW91XCA7CivlhYnlrabmloflrZcgPCBrb3VnYWt1bW9qaVwgOwor5Y2D55+z6Ii5IDwgc2VuZ29rdWJ1bmVcIDsKK+WBnOi7iuaZgumWkyA8IHRlaXNoYWppa2FuXCA7Civph5HniZvlrq4gPCBraW5neXV1a3l1dVwgOwor5o6l5ZCI5a2QIDwgc2V0c3Vnb3VzaGlcIDsKK+eah+WupOiyuyA8IGtvdXNoaXRzdWhpXCA7CivlhbHlkozmlL/msrsgPCBreW91d2FzZWlqaVwgOwor5Zu95bqr5YK15qipIDwga29ra29zYWlrZW5cIDsKK+i/veW+tOeojiA8IHRzdWljaG91emVpXCA7Civlo7DluK/mqKHlhpkgPCBzZWl0YWltb3NoYVwgOwor5pyA5aSn6ZmQ5bqmIDwgc2FpZGFpZ2VuZG9cIDsKK+WxgOWkluiAhSA8IGt5b2t1Z2Fpc2hhXCA7CivlhavliIbpn7PnrKYgPCBoYWNoaWJ1b25wdVwgOwor57+M57+M5bm0IDwgeW9rdXlva3VuZW5cIDsKK+eJueWIpeapnyA8IHRva3ViZXRzdWtpXCA7Civmt6HopJDoibIgPCB0YW5rYXNzaG9rdVwgOwor5YGP5Z+355eFIDwgaGVuc2h1dWJ5b3VcIDsKK+S7ruaDs+epuumWkyA8IGthc291a3V1a2FuXCA7Civlrabnv5LogIUgPCBnYWt1c2h1dXNoYVwgOwor6Ziy6Z+z5a6kIDwgYm91b25zaGl0c3VcIDsKK+W5s+aIkOaZguS7oyA8IGhlaXNlaWppZGFpXCA7CivliKnnm4rnpL7kvJogPCByaWVraXNoYWthaVwgOwor6IKJ5L2T55qEIDwgbmlrdXRhaXRla2lcIDsKK+WutuW6reioquWVjyA8IGthdGVpaG91bW9uXCA7Civmlpnph5HooaggPCByeW91a2luaHlvdVwgOwor5YaF6Zm45Zu9IDwgbmFpcmlrdWtva3VcIDsKK+WMheWuueWKmyA8IGhvdXlvdXJ5b2t1XCA7Civlh7rmvIHmnJ8gPCBzaHV0c3VneW9raVwgOwor6JaE5Yip5aSa5aOyIDwgaGFrdXJpdGFiYWlcIDsKK+S4u+S6uuW9uSA8IHNodWppbicneWFrdVwgOwor5rCR5Li75Li7576pIDwgbWluc2h1c2h1Z2lcIDsKK+Wls+aAp+WQjeipniA8IGpvc2VpbWVpc2hpXCA7CivmhJvmho7kvbXlrZggPCBhaXpvdWhlaXNvblwgOwor5oiQ5Yqf546HIDwgc2Vpa291cml0c3VcIDsKK+WFrOacieeJqSA8IGtvdXl1dWJ1dHN1XCA7CivoprPoiablvI8gPCBrYW5rYW5zaGlraVwgOwor5Y+N5bCE5L2c55SoIDwgaGFuc2hhc2F5b3VcIDsKK+aciOWknOiMuCA8IHRzdWtpeW90YWtlXCA7CivmnInkuovnq4vms5UgPCB5dXVqaXJpcHBvdVwgOwor5YWl5a2m55SfIDwgbnl1dWdha3VzZWlcIDsKK+aYjuW+jOaXpSA8IG15b3Vnb25pY2hpXCA7CivmtLvli5XogIUgPCBrYXRzdWRvdXNoYVwgOwor5LiJ5Y6f6ImyIDwgc2FuZ2Vuc2hva3VcIDsKK+eZuuWjsOWZqOWumCA8IGhhc3NlaWtpa2FuXCA7CivlgY/ln7fni4IgPCBoZW5zaHV1a3lvdVwgOwor5ama56S86KGj6KOFIDwga29ucmVpaXNob3VcIDsKK+S4reWkrueqgeegtCA8IGNodXVvdXRvcHBhXCA7CivkuInpoK3mlL/msrsgPCBzYW50b3VzZWlqaVwgOwor5Y2x6Zm65Zyw5bivIDwga2lrZW5jaGl0YWlcIDsKK+WMluWtpuS9nOeUqCA8IGthZ2FrdXNheW91XCA7CivnhKHplpPlnLDnjYQgPCBtdWdlbmppZ29rdVwgOwor6Kmx5LitIDwgaGFuYXNoaWNodXVcIDsKK+W+gOW+qeWIh+espiA8IG91ZnVrdWtpcHB1XCA7Civokovku4vnn7MgPCBzaG91a2Fpc2VraVwgOwor55Sz5ZGK5pu4IDwgc2hpbmtva3VzaG9cIDsKK+WtmOWcqOeQhueUsSA8IHNvbnphaXJpeXV1XCA7Civnt6jnrKDojLggPCBhbWlnYXNhdGFrZVwgOwor5bCP5Y2K5pelIDwga29oYW4nJ25pY2hpXCA7CivpnZ7npL7kuqTnmoQgPCBoaWpha291dGVraVwgOwor6KGo5b2w54q2IDwgaHlvdXNob3Vqb3VcIDsKK+WGheiovOS6iyA8IG5haXNob3Vnb3RvXCA7CivlsIHlu7rliLbluqYgPCBob3VrZW5zZWlkb1wgOwor6Ki65pat5a2mIDwgc2hpbmRhbmdha3VcIDsKK+WNl+alteeCuSA8IG5hbmt5b2t1dGVuXCA7CivkurrouqvkuovmlYUgPCBqaW5zaGluamlrb1wgOwor5puy5bCE56CyIDwga3lva3VzaGFob3VcIDsKK+WFrOmWi+aNnOafuyA8IGtvdWthaXNvdXNhXCA7CivmiJHnlLDlvJXmsLQgPCBnYWRlbicnaW5zdWlcIDsKK+WLleS9nOiomOmMsiA8IGRvdXNha2lyb2t1XCA7CivlhYjnmbrpmoogPCBzZW5wYXRzdXRhaVwgOwor5oiQ5bGk54Gr5bGxIDwgc2Vpc291a2F6YW5cIDsKK+aAp+eUn+a0uyA8IHNlaXNlaWthdHN1XCA7CivmpJzplrLlrpggPCBrZW4nJ2V0c3VrYW5cIDsKK+a1gemAmueojiA8IHJ5dXV0c3V1emVpXCA7CivliKnnm4rphY3lvZMgPCByaWVraWhhaXRvdVwgOwor5rSX5r+v57OKIDwgc2VudGFrdW5vcmlcIDsKK+WNiuebtOe3miA8IGhhbmNob2t1c2VuXCA7CivmtJfmv6/nsaAgPCBzZW50YWt1a2Fnb1wgOwor5o6l5ZCI5YmkIDwgc2V0c3Vnb3V6YWlcIDsKK+S4gOaJgOaHuOWRvSA8IGlzc2hva2VubWVpXCA7CivovrLnlKPniakgPCBub3VzYW5idXRzdVwgOwor5rqQ5rOJ6Kqy56iOIDwgZ2Vuc2Vua2F6ZWlcIDsKK+aUv+ayu+e1kOekviA8IHNlaWppa2Vzc2hhXCA7CivlobXln4MgPCBjaGlyaWhva29yaVwgOwor6aiO6aas5rCR5pePIDwga2liYW1pbnpva3VcIDsKK+malOS4lumBuuS8nSA8IGtha3VzZWlpZGVuXCA7Civlj6TpgZPlhbflsYsgPCBmdXJ1ZG91Z3V5YVwgOwor5ZC55aWP5qW95ZmoIDwgc3Vpc291Z2Fra2lcIDsKK+apn+mKg+aOg+WwhCA8IGtpanV1c291c2hhXCA7CivmjqXlj5flm70gPCBzZXRzdWp1a29rdVwgOwor5q2m5a625bGL5pW3IDwgYnVrZXlhc2hpa2lcIDsKK+WNl+altea1tyA8IG5hbmt5b2t1a2FpXCA7CivnnaHnnKDmmYLplpMgPCBzdWltaW5qaWthblwgOwor57WQ6Iac54KOIDwga2V0c3VtYWt1ZW5cIDsKK+imquedpuS8miA8IHNoaW5ib2t1a2FpXCA7CivnoavljJbniakgPCByeXV1a2FidXRzdVwgOwor5oOz5YOP5YqbIDwgc291em91cnlva3VcIDsKK+iKuOihk+WTgSA8IGdlaWp1dHN1aGluXCA7CivnhKHoqJjlkI3moKogPCBtdWtpbWVpa2FidVwgOwor5Y2X5qW15rSLIDwgbmFua3lva3V5b3VcIDsKK+S6i+WLmee3j+mVtyA8IGppbXVzb3VjaG91XCA7Civlho3muKzph48gPCBzYWlzb2t1cnlvdVwgOwor5Li75rK75Yq56IO9IDwgc2h1amlrb3Vub3VcIDsKK+Wkqea0peW+oeelliA8IGFtYXRzdW1pb3lhXCA7CivmsJfosaHooZvmmJ8gPCBraXNob3VlaXNlaVwgOwor5pyJ5Yq55pyf6ZmQIDwgeXV1a291a2lnZW5cIDsKK+i+suWltOino+aUviA8IG5vdWRva2FpaG91XCA7CivpnLLlh7roqIggPCByb3NodXRzdWtlaVwgOwor5b+D6IeT6bq755e6IDwgc2hpbnpvdW1haGlcIDsKK+mFlOeUn+WkouatuyA8IHN1aXNlaW11c2hpXCA7CivnhKHms5XlnLDluK8gPCBtdWhvdWNoaXRhaVwgOwor6KGX6aCt5Yuf6YeRIDwgZ2FpdG91Ym9raW5cIDsKK+eVmeWtpueUnyA8IHJ5dXVnYWt1c2VpXCA7CivmsLTku5XkuosgPCBtaXp1c2hpZ290b1wgOwor5a2m57+S55SoIDwgZ2FrdXNodXV5b3VcIDsKK+iNkuWUkOeEoeeovSA8IGtvdXRvdW11a2VpXCA7Civms6jlsITph50gPCBjaHV1c2hhYmFyaVwgOwor6Kaz5a+f6ICFIDwga2Fuc2F0c3VzaGFcIDsKK+aghOmkiuS4jei2syA8IGVpeW91ZnVzb2t1XCA7CivpgJrkv6HmrIQgPCB0c3V1c2hpbnJhblwgOwor5ZCN6KqJ5biC5rCRIDwgbWVpeW9zaGltaW5cIDsKK+i7jeS6i+WQjOebnyA8IGd1bmppZG91bWVpXCA7CivmnInlirnkvZznlKggPCB5dXVrb3VzYXlvdVwgOwor5LqU5pyI6ZeHIDwgc2F0c3VraXlhbWlcIDsKK+eZuuedgOWgtCA8IGhhdGNoYWt1am91XCA7CivlhYjpgaPpg6jpmoogPCBzZW5rZW5idXRhaVwgOwor5ZiJ6KiA5ZaE6KGMIDwga2FnZW56ZW5rb3VcIDsKK+i8uOWHuueojiA8IHl1c2h1dHN1emVpXCA7CivlkIjlkIzkvJrorbAgPCBnb3Vkb3VrYWlnaVwgOwor6LW35q275Zue55SfIDwga2lzaGlrYWlzZWlcIDsKK+mAj+imlueUu+azlSA8IHRvdXNoaWdhaG91XCA7CivnhKHpiq3ml4XooYwgPCBtdXNlbnJ5b2tvdVwgOwor5bCx6IG35pmCIDwgc2h1dXNob2t1amlcIDsKK+S/neWuieioreWCmSA8IGhvYW5zZXRzdWJpXCA7CivnnYDnnLzngrkgPCBjaGFrdWdhbnRlblwgOwor56m65Ya35byPIDwga3V1cmVpc2hpa2lcIDsKK+a6tuaOpeW3pSA8IHlvdXNldHN1a291XCA7CivkuLjmnKjmqYsgPCBtYXJ1a2liYXNoaVwgOwor5YaF6YOo6ZeY5LqJIDwgbmFpYnV0b3Vzb3VcIDsKK+S4jeato+iejeizhyA8IGZ1c2VpeXV1c2hpXCA7CivlsbHlvaLnnIwgPCB5YW1hZ2F0YWtlblwgOwor5Lqk6ZyK6KGTIDwga291cmVpanV0c3VcIDsKK+a8ouiLsei+nuWFuCA8IGthbicnZWlqaXRlblwgOwor5Ym16YCg6KqsIDwgc291em91c2V0c3VcIDsKK+mgmOWcn+S/neWFqCA8IHJ5b3Vkb2hvemVuXCA7Civmi5vlvoXluK0gPCBzaG91dGFpc2VraVwgOwor54Sh5LqL5oGv54G9IDwgYnVqaXNva3VzYWlcIDsKK+mbquS4iui7iiA8IHNldHN1am91c2hhXCA7CivkuqTpn7/mpb0gPCBrb3VreW91Z2FrdVwgOwor6L6y5qWt5Zu9IDwgbm91Z3lvdWtva3VcIDsKK+WNk+i2iumiqCA8IHRha3VldHN1ZnV1XCA7CivmjIflkI3miYvphY0gPCBzaGltZWl0ZWhhaVwgOwor6Y6u55eb5oCnIDwgY2hpbnRzdXVzZWlcIDsKK+mBiuimp+mjm+ihjCA8IHl1dXJhbmhpa291XCA7Civoqo3orZjoq5YgPCBuaW5zaGlraXJvblwgOwor5Y+X6aiT5Zyw542EIDwganVrZW5qaWdva3VcIDsKK+itpuWCmeW8t+WMliA8IGtlaWJpa3lvdWthXCA7CivlsLHlr53liY0gPCBzaHV1c2hpbnplblwgOwor5b+D55CG5Li7576pIDwgc2hpbnJpc2h1Z2lcIDsKK+WPjOabsue3miA8IHNvdWt5b2t1c2VuXCA7Civpm6LlqZroqLToqJ8gPCByaWtvbnNvc2hvdVwgOwor5aSP5pmC5Yi7IDwgbmF0c3VqaWtva3VcIDsKK+Wkj+Wkp+aguSA8IG5hdHN1ZGFpa29uXCA7Civpn7PoqJPntKLlvJUgPCBvbmt1bnNha3VpblwgOwor5Y2x6Zm65Zug5a2QIDwga2lrZW4nJ2luc2hpXCA7CivmnZHlhavliIYgPCBtdXJhaGFjaGlidVwgOwor6LaF6YGO5Yuk5YuZIDwgY2hvdWtha2lubXVcIDsKK+WCmOS8kOaelyA8IHNhbmJhdHN1cmluXCA7CivluLjoqK3ppKggPCBqb3VzZXRzdWthblwgOwor5Y2X5qW15pifIDwgbmFua3lva3VzZWlcIDsKK+elnuWtpuWjqyA8IHNoaW5nYWt1c2hpXCA7CivpgLLmrankuLvnvqkgPCBzaGlucG9zaHVnaVwgOwor5LiK5ZGK5a+pIDwgam91a29rdXNoaW5cIDsKK+WFiOWFpeimsyA8IHNlbicnbnl1dWthblwgOwor5YWI5YWl6KaLIDwgc2VuJydueXV1a2VuXCA7Civkv53lhajkvJrnpL4gPCBob3plbmthaXNoYVwgOwor5rSX5r+v54mpIDwgc2VudGFrdW1vbm9cIDsKK+S4h+iRiembhiA8IG1hbicneW91c2h1dVwgOwor6Ieq5bex57S55LuLIDwgamlrb3Nob3VrYWlcIDsKK+S6uumBk+aUr+aPtCA8IGppbmRvdXNoaWVuXCA7CivmuoDlt57lm70gPCBtYW5zaHV1a29rdVwgOwor5biM5bCR5L6h5YCkIDwga2lzaG91a2FjaGlcIDsKK+ihqOW/oOWhlCA8IGh5b3VjaHV1dG91XCA7CivkuInph43mrrogPCBzYW5qdXVzYXRzdVwgOwor5amm5Lq656eR5a2mIDwgZnVqaW5rYWdha3VcIDsKK+aUr+aPtOWbo+S9kyA8IHNoaWVuZGFudGFpXCA7CivliIbms4zmtrIgPCBidW5waXRzdWVraVwgOwor5a6H5a6Z56m66ZaTIDwgdWNodXVrdXVrYW5cIDsKK+mao+aOpeecjCA8IHJpbnNldHN1a2VuXCA7CivlmJjlhavnmb4gPCB1c29oYXBweWFrdVwgOwor6Iie6LiP5a6kIDwgYnV0b3VzaGl0c3VcIDsKK+W9k+WxgOiAhSA8IHRvdWt5b2t1c2hhXCA7CivljJbnsqfnhYnnk6YgPCBrZXNob3VyZW5nYVwgOwor57ep6KGd5Zu9IDwga2Fuc2hvdWtva3VcIDsKK+aXqeacn+eZuuimiyA8IHNvdWtpaGFra2VuXCA7Civoh6rnhLbmsrvnmZIgPCBzaGl6ZW5jaGl5dVwgOwor5LiN5Y+v55+l55qEIDwgZnVrYWNoaXRla2lcIDsKK+iotOion+iyu+eUqCA8IHNvc2hvdWhpeW91XCA7Civol4HkurrlvaIgPCB3YXJhbmluZ3lvdVwgOwor5b2x6Z+/5YqbIDwgZWlreW91cnlva3VcIDsKK+eBveWus+S/nemZuiA8IHNhaWdhaWhva2VuXCA7CivlpKflmajmmanmiJAgPCB0YWlraWJhbnNlaVwgOwor5paH56+A5pWwIDwgYnVuc2V0c3VzdXVcIDsKK+aVsOePoOS4gOmAoyA8IGp1enVpY2hpcmVuXCA7CivmlofmmI7plovljJYgPCBidW5tZWlrYWlrYVwgOwor5oKq5o6o6YePIDwgd2FydXp1aXJ5b3VcIDsKK+WQq+aciemHjyA8IGdhbicneXV1cnlvdVwgOwor6KqY6Zu7546HIDwgeXV1ZGVucml0c3VcIDsKK+WPjeWLleS4u+e+qSA8IGhhbmRvdXNodWdpXCA7CivoprPlr5/nnLwgPCBrYW5zYXRzdWdhblwgOwor5pS/5bqc6auY5a6YIDwgc2VpZnVrb3VrYW5cIDsKK+mPoemkhSA8IGthZ2FtaW1vY2hpXCA7Civoo4/liIfogIUgPCB1cmFnaXJpbW9ub1wgOwor5Lqs6YO95bqc6K2mIDwga3lvdXRvZnVrZWlcIDsKK+mYsumbquaelyA8IGJvdXNldHN1cmluXCA7CivlpKnnpZ7pq60gPCB0ZW5zaGluaGlnZVwgOwor5q665a6z6ICFIDwgc2F0c3VnYWlzaGFcIDsKK+WLpOeOi+aUmOWktyA8IGtpbicnbm91am91aVwgOwor56m65oy66YOo6ZqKIDwga3V1dGVpYnV0YWlcIDsKK+aVmeiCsuecgSA8IGt5b3Vpa3VzaG91XCA7Civpm6LkubPpo58gPCByaW55dXVzaG9rdVwgOwor5pWZ6IKy55qEIDwga3lvdWlrdXRla2lcIDsKK+WkmuWjq+a4iOa4iCA8IHRhc2hpc2Vpc2VpXCA7CivkuI3lmajnlKjogIUgPCBidWtpeW91bW9ub1wgOwor5YW156uZ5Z+65ZywIDwgaGVpdGFua2ljaGlcIDsKK+acieeQhumWouaVsCA8IHl1dXJpa2Fuc3V1XCA7Civkurrlt6XpoK3ohLMgPCBqaW5rb3V6dW5vdVwgOwor54m55Yil5Yy6IDwgdG9rdWJldHN1a3VcIDsKK+iyoeaUv+WKmyA8IHphaXNlaXJ5b2t1XCA7CivljYHlha3pn7PnrKYgPCBqdXVyb2t1b25wdVwgOwor5by356Gs562WIDwga3lvdWtvdXNha3VcIDsKK+aWsOW5tOWPtyA8IHNoaW4nJ25lbmdvdVwgOwor56Ov6aa05p2+IDwgc29uYXJlbWF0c3VcIDsKK+Wlh+aDs+WkqeWkliA8IGtpc291dGVuZ2FpXCA7CivlhoXlrrnopovmnKwgPCBuYWl5b3VtaWhvblwgOwor5YWl6aSo5paZIDwgbnl1dWthbnJ5b3VcIDsKK+eJqeebuOmjryA8IG1vc3NvdW1lc2hpXCA7Civoo73pnanmpa0gPCBzZWlrYWt1Z3lvdVwgOwor5Lit5a2m55SfIDwgY2h1dWdha3VzZWlcIDsKK+i8uOWHuua4ryA8IHl1c2h1dHN1a291XCA7CivljZfmpbXluK8gPCBuYW5reW9rdXRhaVwgOwor5paZ55CG6YGT5YW3IDwgcnlvdXJpZG91Z3VcIDsKK+Wkp+Wcj+iIqui3ryA8IHRhaWtlbmtvdXJvXCA7CivmurbmjqXliaQgPCB5b3VzZXRzdXphaVwgOwor5oCl55eF5Lq6IDwga3l1dWJ5b3VuaW5cIDsKK+WvhOWuv+aWmSA8IGtpc2h1a3VyeW91XCA7Civpq5jls7bnlLAgPCB0YWthc2hpbWFkYVwgOwor5bCP5q2j5pyIIDwga29zaG91Z2F0c3VcIDsKK+WLleWKm+ioiCA8IGRvdXJ5b2t1a2VpXCA7CivmpbXlpKflgKQgPCBreW9rdWRhaWNoaVwgOwor5rqW5YKZ566h5Yi2IDwganVuYmlrYW5zZWlcIDsKK+eDj+WPoyA8IGthcmFzdWd1Y2hpXCA7Civlh7rph5HpoY0gPCBzaHVra2luZ2FrdVwgOwor55Sz5ZGK5Yi2IDwgc2hpbmtva3VzZWlcIDsKK+eyjSA8IG1pcmltZWl0b3J1XCA7CivpmaPpoK3mjIfmj64gPCBqaW50b3VzaGlraVwgOwor57KBIDwga2lyb21laXRvcnVcIDsKK+extSA8IGRla2FtZWV0b3J1XCA7Civoh5Plmajnp7vmpI0gPCB6b3VraWlzaG9rdVwgOwor5Z+65pys5qaC5b+1IDwga2lob25nYWluZW5cIDsKK+WtkOS+m+mBlCA8IGtvZG9tb3RhY2hpXCA7CivkvJrorbDml6XnqIsgPCBrYWlnaW5pdHRlaVwgOwor5YWs5a6a5Zyw5L6hIDwga291dGVpY2hpa2FcIDsKK+WfuuekjueglOeptiA8IGtpc29rZW5reXV1XCA7CivnkrDlooPmsZrmn5MgPCBrYW5reW91b3NlblwgOwor5aqS5LuL54mpIDwgYmFpa2FpYnV0c3VcIDsKK+eWkeW/g+aal+msvCA8IGdpc2hpbicnYW5raVwgOwor6buE6YGT6ImyIDwga291ZG91c2hva3VcIDsKK+S4ieiRieiZqyA8IHNhbicneW91Y2h1dVwgOwor5YWo6LOq5YyWIDwgemVuc2hpdHN1a2FcIDsKK+eUn+a0u+mboyA8IHNlaWthdHN1bmFuXCA7CivntLDli5XohIggPCBzYWlkb3VteWFrdVwgOwor5rGf5oi45YmN5a+/5Y+4IDwgZWRvbWFlenVzaGlcIDsKK+e3j+eQhuWkp+iHoyA8IHNvdXJpZGFpamluXCA7CivopIfpm5HljJYgPCBmdWt1emF0c3VrYVwgOwor6Ieq5bex5rqA6LazIDwgamlrb21hbnpva3VcIDsKK+WLouWKm+WcjyA8IHNlaXJ5b2t1a2VuXCA7Civntbblr77kuLvnvqkgPCB6ZXR0YWlzaHVnaVwgOwor56uwIDwgc2VuY2hpcml0dG9cIDsKK+ato+WRs+WApOautSA8IHNob3VtaW5lZGFuXCA7Civnq6EgPCBoZWt1dG9yaXR0b1wgOwor56uTIDwgbWlyaXJpdHRvcnVcIDsKK+erjyA8IGtpcm9yaXR0b3J1XCA7CivlgIvkurrmlZnmjoggPCBrb2ppbmt5b3VqdVwgOwor6KSH6KSH57eaIDwgZnVrdWZ1a3VzZW5cIDsKK+WwkeWjruawl+mLrSA8IHNob3Vzb3VraWVpXCA7CivmlrDlubTkvJogPCBzaGluJyduZW5rYWlcIDsKK+S4jeeiuuWunyA8IGZ1a2FrdWppdHN1XCA7CivmnbHkupzoq7jlm70gPCB0b3Vhc2hva29rdVwgOwor5ZaH5Y+t5rC05LuZIDwgcmFwcGF6dWlzZW5cIDsKK+mOrueXm+WJpCA8IGNoaW50c3V1emFpXCA7CivmgKrkurrniakgPCBrYWlqaW5idXRzdVwgOwor6YCa5a2m55SfIDwgdHN1dWdha3VzZWlcIDsKK+eIhuW/g+WcsCA8IGJha3VzaGluY2hpXCA7Civlrp/ooYzlj6/og70gPCBqaWtrb3VrYW5vdVwgOwor5LqL5YmN6YGL5YuVIDwgaml6ZW4nJ3VuZG91XCA7Civlp4vmnKvmm7ggPCBzaGltYXRzdXNob1wgOwor5aSW5p2l5oKj6ICFIDwgZ2FpcmFpa2FuamFcIDsKK+ertuS6ieW/gyA8IGt5b3Vzb3VzaGluXCA7Civpgb/pm6PoqJPnt7QgPCBoaW5hbmt1bnJlblwgOwor5Ym96Lu96ICFIDwgaHlvdWtpbm1vbm9cIDsKK+iFuOmWieWhniA8IGNob3VoZWlzb2t1XCA7Civosqnlo7Lpg6jploAgPCBoYW5iYWlidW1vblwgOwor6LuN5b2T5bGAIDwgZ3VudG91a3lva3VcIDsKK+WKtOWDjemBi+WLlSA8IHJvdWRvdXVuZG91XCA7CivmupblgpnpioDooYwgPCBqdW5iaWdpbmtvdVwgOwor5bm557ea6YGT6LevIDwga2Fuc2VuZG91cm9cIDsKK+S4jemAj+aYjuaApyA8IGZ1dG91bWVpc2VpXCA7Civnmb3lrZDps6kgPCBzaGlyYWtvYmF0b1wgOwor55S65b255aC0IDwgbWFjaGl5YWt1YmFcIDsKK+WKoOWcp+awtOeCiSA8IGthYXRzdXN1aXJvXCA7CivkuI3lv6Dlrp8gPCBmdWNodXVqaXRzdVwgOwor6KGo6Z+z5paH5a2XIDwgaHlvdW9ubW9uamlcIDsKK+aMh+WQjeaJk+iAhSA8IHNoaW1laWRhc2hhXCA7Civnt4/lj7jku6Tpg6ggPCBzb3VzaGlyZWlidVwgOwor5Y2a5a2m6ICFIDwgaGFrdWdha3VzaGFcIDsKK+S8nee1seS4u+e+qSA8IGRlbnRvdXNodWdpXCA7CivmiKbnlaXkuIogPCBzZW5yeWFrdWpvdVwgOwor5Li76KaB6YO95biCIDwgc2h1eW91dG9zaGlcIDsKK+WNl+alteWcjyA8IG5hbmt5b2t1a2VuXCA7CivkuKHohJropo8gPCByeW91a3lha3VraVwgOwor5L2O5rip5q666I+MIDwgdGVpb25zYWtraW5cIDsKK+WFseios+iAhSA8IGt5b3V5YWt1c2hhXCA7CivlpKvlqabplqLkv4IgPCBmdXVmdWthbmtlaVwgOwor5b+N6ICQ5YqbIDwgbmludGFpcnlva3VcIDsKK+S9nOalreaZgumWkyA8IHNhZ3lvdWppa2FuXCA7Civpm4bph5HkurogPCBzaHV1a2luJyduaW5cIDsKK+mdnuW4uOaJi+autSA8IGhpam91c2h1ZGFuXCA7CivljYHlhavph5EgPCBqdXVoYWNoaWtpblwgOwor5bCC5Yi25pS/5rK7IDwgc2Vuc2Vpc2VpamlcIDsKK+aYoOeUu+ebo+edoyA8IGVpZ2FrYW50b2t1XCA7CivlgJ/nlKjogIUgPCBzaGFrdXlvdXNoYVwgOwor55OwIDwgZGVzaGlndXJhbXVcIDsKK+a/g+a3oeeUu+WDjyA8IG5vdXRhbmdhem91XCA7Civnq6/ph5EgPCBoYXNoaXRhZ2FuZVwgOwor54Gv54Gr566h5Yi2IDwgdG91a2FrYW5zZWlcIDsKK+mHjeimgeS6i+mghSA8IGp1dXlvdWppa291XCA7CivpnZ7luLjlkbzpm4YgPCBoaWpvdWtvc2h1dVwgOwor5oyB5LmF5YqbIDwgamlreXV1cnlva3VcIDsKK+WxgOWcsOmiqCA8IGt5b2t1Y2hpZnV1XCA7CivnmbrnmYzmgKcgPCBoYXRzdWdhbnNlaVwgOwor5o+a6Zm45paZIDwgeW91cmlrdXJ5b3VcIDsKK+Wvhuiyv+aYkyA8IG1pdHN1Ym91ZWtpXCA7CivpgJrkv6Hlk6EgPCB0c3V1c2hpbicnaW5cIDsKK+eri+WAmeijnOiAhSA8IHJpa2tvdWhvc2hhXCA7CivlhqDli5XohIggPCBrYW5kb3VteWFrdVwgOwor5aSJ5aWP5puyIDwgaGVuc291a3lva3VcIDsKK+a1hOWMluijhee9riA8IGpvdWthc291Y2hpXCA7CivlvqHnlJ/mho7mp5ggPCBvYWluaWt1c2FtYVwgOwor6KGo5b2w5Y+wIDwgaHlvdXNob3VkYWlcIDsKK+S6uuWToea3mOaxsCA8IGppbicnaW50b3V0YVwgOwor6JGs6YCB5puyIDwgc291c291a3lva3VcIDsKK+S6pOmAmuS6i+aVhSA8IGtvdXRzdXVqaWtvXCA7CivljYPliIbnjocgPCBzZW5idW5yaXRzdVwgOwor5Zub6Lyq6aeG5YuVIDwgeW9ucmlua3Vkb3VcIDsKK+S4uOS4gOW5tCA8IG1hcnVpY2hpbmVuXCA7Civku6PnkIblhazkvb8gPCBkYWlyaWtvdXNoaVwgOwor5aSW5YuZ5aSn6IejIDwgZ2FpbXVkYWlqaW5cIDsKK+iAgeW7g+eJqSA8IHJvdWhhaWJ1dHN1XCA7CivljZfmpbXlhYkgPCBuYW5reW9rdWtvdVwgOwor55qu566X55SoIDwga2F3YXphbicneW91XCA7Civph47miKbnoLLlhbUgPCB5YXNlbmhvdWhlaVwgOwor6L+95YiG56+AIDwgb2l3YWtlYnVzaGlcIDsKK+W+s+W3neWLoiA8IHRva3VnYXdhemVpXCA7CivlnLDlkI3ovp7lhbggPCBjaGltZWlqaXRlblwgOwor5LiN5YuV55Sj5bGLIDwgZnVkb3VzYW4nJ3lhXCA7CivlibXpgKDniakgPCBzb3V6b3VidXRzdVwgOwor5Yid6Iiq5rW3IDwgaGF0c3Vrb3VrYWlcIDsKK+izvOiqreaWmSA8IGtvdWRva3VyeW91XCA7CivlvpfnpajmlbAgPCB0b2t1aHlvdXN1dVwgOwor5L2T5oSf5rip5bqmIDwgdGFpa2FuJydvbmRvXCA7Civpm6rmma/oibIgPCB5dWtpZ2VzaGlraVwgOwor6Kaz5YWJ6YO95biCIDwga2Fua291dG9zaGlcIDsKK+WQjOaAp+aEm+iAhSA8IGRvdXNlaWFpc2hhXCA7Civpg6jpmormkqTpgIAgPCBidXRhaXRldHRhaVwgOwor57K+56We55qEIDwgc2Vpc2hpbnRla2lcIDsKK+WNlOitsOS8muWToSA8IGt5b3VnaWthaWluXCA7CivllZPokpnpgYvli5UgPCBrZWltb3V1bmRvdVwgOwor5b6z5bed5YWsIDwgdG9rdWdhd2Frb3VcIDsKK+iHqueri+W/gyA8IGppcml0c3VzaGluXCA7CivkuoDnlLLmqKHmp5ggPCBraWtrb3Vtb3lvdVwgOwor6KGb55Sf54q25oWLIDwgZWlzZWlqb3V0YWlcIDsKK+a8uOmAsueahCA8IHplbnNoaW50ZWtpXCA7CivmlZnkvJrmmqYgPCBreW91a2FpcmVraVwgOwor5q665Lq66ICFIDwgc2F0c3VqaW5zaGFcIDsKK+mOluWbveS4u+e+qSA8IHNha29rdXNodWdpXCA7Civnsr7npZ7nl4UgPCBzZWlzaGluYnlvdVwgOwor5q665Lq6572qIDwgc2F0c3VqaW56YWlcIDsKK+aIkOW5tOW8jyA8IHNlaW5lbnNoaWtpXCA7CivlmajnlKjosqfkuY8gPCBraXlvdWJpbmJvdVwgOwor6ISx55+z5rK5IDwgZGF0c3VzZWtpeXVcIDsKK+WFiOmAsuWbvSA8IHNlbnNoaW5rb2t1XCA7CivnnLznsr7nlrLlirQgPCBnYW5zZWloaXJvdVwgOwor5a6j5Lyd5qmf6ZaiIDwgc2VuZGVua2lrYW5cIDsKK+Wcn+Wbo+WtkCA8IHRzdWNoaWRhbmdvXCA7CivkvZXmmYLkvZXmmYIgPCBpdHN1bmFuZG9raVwgOwor5o6n5a6kIDwgaGlrYWVzaGl0c3VcIDsKK+awkeaoqeS4u+e+qSA8IG1pbmtlbnNodWdpXCA7CivlubTmrKHnt4/kvJogPCBuZW5qaXNvdWthaVwgOwor5re35ZCI54mpIDwga29uZ291YnV0c3VcIDsKK+i7jealvemVtyA8IGd1bmdha3VjaG91XCA7Civms5XlvovkuIogPCBob3VyaXRzdWpvdVwgOwor55Wc54qs56iOIDwgY2hpa3VrZW56ZWlcIDsKK+eEoeWEn+S6pOS7mCA8IG11c2hvdWtvdWZ1XCA7Civnn63mnJ/miYvlvaIgPCB0YW5raXRlZ2F0YVwgOwor5YaF5YuZ5aSn6IejIDwgbmFpbXVkYWlqaW5cIDsKK+S4gOS4luS4gOS7oyA8IGlzc2VpY2hpZGFpXCA7CivkuovpoIXntKLlvJUgPCBqaWtvdXNha3VpblwgOwor5pS+5bCE57ea56eRIDwgaG91c2hhc2Vua2FcIDsKK+eah+WkquWtkOWmgyA8IGtvdXRhaXNoaWhpXCA7CivmooHlsbHms4ogPCByeW91emFucGFrdVwgOwor5b2r5aGR6KGTIDwgY2hvdXNvanV0c3VcIDsKK+S7o+eUqOmjnyA8IGRhaXlvdXNob2t1XCA7CivlppbmgKrlpInljJYgPCB5b3VrYWloZW5nZVwgOwor5Lim5pyo6YGTIDwgbmFtaWtpbWljaGlcIDsKK+Wuneefs+eusSA8IGhvdXNla2liYWtvXCA7CivljZLmpa3lvowgPCBzb3RzdWd5b3Vnb1wgOwor5Y+j6KeS5YqbIDwga3VjaGlkenVtb3VcIDsKK+S6i+alreS4uyA8IGppZ3lvdW51c2hpXCA7Civoh6romZDnmoQgPCBqaWd5YWt1dGVraVwgOwor5LiL55u46KuHIDwgc2hpdGFzb3VkYW5cIDsKK+WkieW9oumDqOmWgCA8IGhlbmtlaWJ1bW9uXCA7Civph47miKbnl4XpmaIgPCB5YXNlbmJ5b3VpblwgOwor56a/6aCt55eFIDwgdG9rdXRvdWJ5b3VcIDsKK+aIpueBveWcsOWMuiA8IHNlbnNhaWNoaWt1XCA7CivlvL7nnYDngrkgPCBkYW5jaGFrdXRlblwgOwor54m55YuZ5qmf6ZaiIDwgdG9rdW11a2lrYW5cIDsKK+S6lOaciOeXhSA8IGdvZ2F0c3VieW91XCA7CivnoILns5blpKfmoLkgPCBzYXRvdWRhaWtvblwgOwor5by+5Yqb5oCnIDwgZGFucnlva3VzZWlcIDsKK+aguOeIhuW8viA8IGtha3ViYWt1ZGFuXCA7CivllYbmpa3ooZcgPCBzaG91Z3lvdWdhaVwgOwor6aCt5paH5a2XIDwga2FzaGlyYW1vamlcIDsKK+WNiuWKoOW3peWTgSA8IGhhbmtha291aGluXCA7Civoh6roqJjmuKnluqboqIggPCBqaWtpb25kb2tlaVwgOwor57iu57es57SZIDwgY2hpcmltZW5zaGlcIDsKK+S6jOetieWIhue3miA8IG5pdG91YnVuc2VuXCA7Civmjojmpa3mmYLplpMgPCBqdWd5b3VqaWthblwgOwor5aSp56We5Zyw56WHIDwgdGVuamluY2hpZ2lcIDsKK+i/veWKoOS6iOeulyA8IHRzdWlrYXlvc2FuXCA7CivpnZ7lkIjnkIbnmoQgPCBoaWdvdXJpdGVraVwgOwor5Yq06L6y5pS/5bqcIDwgcm91bm91c2VpZnVcIDsKK+WNl+S6rOiZqyA8IG5hbmtpbm11c2hpXCA7Civoo4Hmsbrmm7ggPCBzYWlrZXRzdXNob1wgOwor5LiL5oSP5LiK6YGUIDwga2Fpam91dGF0c3VcIDsKK+aguOeHg+aWmSA8IGtha3VuZW5yeW91XCA7CivkuZfou4rmi5LlkKYgPCBqb3VzaGFreW9oaVwgOwor6YCQ5a2X6KizIDwgY2hpa3VqaXlha3VcIDsKK+awtOa0l+S+v+aJgCA8IHN1aXNlbmJlbmpvXCA7Civlj47ntI3lrrblhbcgPCBzaHV1bm91a2FndVwgOwor5pyq6ZaL5aK+5ZywIDwgbWlrYWlrb25jaGlcIDsKK+ato+W9k+mYsuihmyA8IHNlaXRvdWJvdWVpXCA7CivkuIDlvrnogIUgPCBpdHRldHN1bW9ub1wgOwor5b6h5Y2U5YqbIDwgZ29reW91cnlva3VcIDsKK+WtpuenkeippumokyA8IGdha2thc2hpa2VuXCA7Civkv4LlsZ7kuK0gPCBrZWl6b2t1Y2h1dVwgOwor5r2c5rC05q+N6ImmIDwgc2Vuc3VpYm9rYW5cIDsKK+exs+WNsCA8IGtvbWVqaXJ1c2hpXCA7Civnl4XkuK3lkJ8gPCBieW91Y2h1dWdpblwgOwor5L2/55So5L6h5YCkIDwgc2hpeW91a2FjaGlcIDsKK+altemZkOWApCA8IGt5b2t1Z2VuY2hpXCA7CivmlZnogrLlraYgPCBreW91aWt1Z2FrdVwgOwor6Zu76Kmx5a6kIDwgZGVud2FzaGl0c3VcIDsKK+mBoOW/g+WKmyA8IGVuc2hpbnJ5b2t1XCA7CivlrpjlsIrmsJHljZEgPCBrYW5zb25taW5waVwgOwor5a6u5bSO55yMIDwgbWl5YXpha2lrZW5cIDsKK+WVhuW3pealrSA8IHNob3Vrb3VneW91XCA7CivooZ3li5XnmoQgPCBzaG91ZG91dGVraVwgOwor6IOG55+z55eHIDwgdGFuc2VraXNob3VcIDsKK+i8uOWHuuWTgSA8IHl1c2h1dHN1aGluXCA7Civmma7pgY3mlofms5UgPCBmdWhlbmJ1bnBvdVwgOwor6YGO5Ymw5Lq65Y+jIDwga2Fqb3VqaW5rb3VcIDsKK+S4ieecoOialSA8IHNhbm1pbmthaWtvXCA7CivplpPmrKDms4kgPCBrYW5rZXRzdXNlblwgOwor5Ye65YWI5qmf6ZaiIDwgZGVzYWtpa2lrYW5cIDsKK+a6luWCmeWnlOWToeS8miA8IGp1bmJpaWlua2FpXCA7CivlpKnpvo3lt50gPCB0ZW5yeXV1a2F3YVwgOwor5pWZ57+S55SfIDwga3lvdXNodXVzZWlcIDsKK+mao+aOpeWcsCA8IHJpbnNldHN1Y2hpXCA7CivnmbrnlJ/njocgPCBoYXNzZWlyaXRzdVwgOwor6JGh6JCE55WRIDwgYnVkb3ViYXRha2VcIDsKK+Wig+eVjOaomSA8IGt5b3VrYWloeW91XCA7Civnqbrou43lipsgPCBrdXVndW5yeW9rdVwgOwor5Lqk5aOw5puyIDwga291c2Vpa3lva3VcIDsKK+ePvuWGhemWoyA8IGdlbicnbmFpa2FrdVwgOwor5Y2g5pif6KGTIDwgc2Vuc2VpanV0c3VcIDsKK+mmmei+m+aWmSA8IGtvdXNoaW5yeW91XCA7CivnlLrpgZPloLQgPCBtYWNoaWRvdWpvdVwgOwor5a6j5Lyd5Yq55p6cIDwgc2VuZGVua291a2FcIDsKK+aZguOAheWIu+OAhSA8IGppamlrb2trb2t1XCA7Civov5HkvLzoqIjnrpcgPCBraW5qaWtlaXNhblwgOwor5YuV5Yqb5rqQIDwgZG91cnlva3VnZW5cIDsKK+aBkuetieW8jyA8IGtvdXRvdXNoaWtpXCA7CivoqI7kvJDou40gPCB0b3ViYXRzdWd1blwgOwor6KGo55yL5p2/IDwgb21vdGVrYW5iYW5cIDsKK+itt+aGsumBi+WLlSA8IGdva2VuJyd1bmRvdVwgOwor5r+D6Z2S6ImyIDwgbm91c2Vpc2hva3VcIDsKK+auuuS6uueKryA8IHNhdHN1amluaGFuXCA7Civmrovlv7Xos54gPCB6YW4nJ25lbnNob3VcIDsKK+WOn+WboOe1kOaenCA8IGdlbicnaW5rZWtrYVwgOwor5Y+L6LuN6YOo6ZqKIDwgeXV1Z3VuYnV0YWlcIDsKK+iEs+WFheihgCA8IG5vdWp1dWtldHN1XCA7Civpo5/kurrnqK4gPCBzaG9rdWppbnNodVwgOwor6LWk6KSQ6ImyIDwgc2Vra2Fzc2hva3VcIDsKK+eEoeWwveS8muekviA8IG11amluZ2Fpc2hhXCA7CivoiIjkv6HpjLIgPCBrb3VzaGlucm9rdVwgOwor6Zu754ax5ZmoIDwgZGVuJyduZXRzdWtpXCA7CivkvZzmm7LogIUgPCBzYWtreW9rdXNoYVwgOwor5Y+k5LuK5p2x6KW/IDwga29rb250b3V6YWlcIDsKK+WUkOmMpiA8IGthcmFuaXNoaWtpXCA7CivnnIvorbflqabplbcgPCBrYW5nb2Z1Y2hvdVwgOwor5ZWG5qiZ5qipIDwgc2hvdWh5b3VrZW5cIDsKK+aCsuaGpOaFt+aFqCA8IGhpZnVua291Z2FpXCA7CivluLjorZjkurogPCBqb3VzaGlraWppblwgOwor5Y+k5Luj5paH5piOIDwga29kYWlidW5tZWlcIDsKK+ims+WuouWxpCA8IGthbmt5YWt1c291XCA7CivnhKHnlKPmlL/lhZogPCBtdXNhbnNlaXRvdVwgOwor5LiA6YeN5qGcIDwgaGl0b2V6YWt1cmFcIDsKK+mBuOaMmea6luWCmSA8IHNlbmt5b2p1bmJpXCA7CivlnLDli5XoqqwgPCBjaGlkb3VzZXRzdVwgOwor5oSP6K2Y5LiN5piOIDwgaXNoaWtpZnVtZWlcIDsKK+eZveS6nOizqiA8IGhha3Vhc2hpdHN1XCA7CivohqDnnYDliaQgPCBrb3VjaGFrdXphaVwgOwor5LiA5q616JC9IDwgaWNoaWRhbnJha3VcIDsKK+e1hOWQiOS4u+e+qSA8IGt1bWlhaXNodWdpXCA7Civou43nlKjps6kgPCBndW4nJ3lvdWJhdG9cIDsKK+S/l+aWh+WtpiA8IHpva3VidW5nYWt1XCA7CivlgIvkvZPnmbrnlJ8gPCBrb3RhaWhhc3NlaVwgOwor6Zu75Zyn6KiIIDwgZGVuJydhdHN1a2VpXCA7CivolqzlsYDmlrkgPCB5YWtreW9rdWhvdVwgOwor5rOV5Yi25bGAIDwgaG91c2Vpa3lva3VcIDsKK+iWrOWtpuiAhSA8IHlha3VnYWt1c2hhXCA7Civkv4LkuonniakgPCBrZWlzb3VidXRzdVwgOwor5Zub5YiG6Z+z56ymIDwgc2hpYnVuJydvbnB1XCA7Civkvb/lvpLmm7jnsKEgPCBzaGl0b3Nob2thblwgOwor5YSq5p+U5LiN5patIDwgeXV1anV1ZnVkYW5cIDsKK+iEseavm+WJpCA8IGRhdHN1bW91emFpXCA7CivnhY7ppIXokrLlm6MgPCBzZW5iZWlidXRvblwgOwor566h6L2E5qipIDwga2Fua2F0c3VrZW5cIDsKK+WAn+eUqOabuCA8IHNoYWt1eW91c2hvXCA7Civkuojlrproqr/lkowgPCB5b3RlaWNob3V3YVwgOwor5aWJ5YWs5Y+jIDwgaG91a291Z3VjaGlcIDsKK+WFiOelluS8neadpSA8IHNlbnpvZGVucmFpXCA7CivmlL7pgIHlsYAgPCBob3Vzb3VreW9rdVwgOwor5LqL5qWt6YOo5Yi2IDwgamlneW91YnVzZWlcIDsKK+m7hOeZveiJsiA8IGtvaGFrdXNob2t1XCA7Civoh6jmmYLliJfou4ogPCByaW5qaXJlc3NoYVwgOwor5a6a5pyf6Kmm6aiTIDwgdGVpa2lzaGlrZW5cIDsKK+e+vee5lOiitCA8IGhhb3JpaGFrYW1hXCA7Civnt4/lkIjoqrLnqI4gPCBzb3Vnb3VrYXplaVwgOwor6YGg6ZqU6Kyb576pIDwgZW5rYWt1a291Z2lcIDsKK+mZpOW5leW8jyA8IGpvbWFrdXNoaWtpXCA7CivmtbflupXmsrnnlLAgPCBrYWl0ZWl5dWRlblwgOwor55yf5LiA5paH5a2XIDwgbWFpY2hpbW9uamlcIDsKK+iduOeJmyA8IGRlbmRlbm11c2hpXCA7Civpm7voqbHoqr/mn7sgPCBkZW53YWNob3VzYVwgOwor5oqA6KGT5o+05YqpIDwgZ2lqdXRzdWVuam9cIDsKK+W8t+WItueahCA8IGt5b3VzZWl0ZWtpXCA7CivlvLflv4PliaQgPCBreW91c2hpbnphaVwgOwor55Sf5rS755KwIDwgc2Vpa2F0c3VrYW5cIDsKK+aYpeS4gOeVqiA8IGhhcnVpY2hpYmFuXCA7CivljYHlhavnlaogPCBqdXVoYWNoaWJhblwgOwor6buS6barIDwga3Vyb3RzdWd1bWlcIDsKK+WBj+WQkeWbnui3ryA8IGhlbmtvdWthaXJvXCA7CivkuojlrprntI3nqI4gPCB5b3RlaW5vdXplaVwgOwor55qH5ZCO6Zmb5LiLIDwga291Z291aGVpa2FcIDsKK+mAo+mCpuWItuW6piA8IHJlbnBvdXNlaWRvXCA7CivpjKbom4cgPCBuaXNoaWtpaGViaVwgOwor57WC6Lqr5a6YIDwgc2h1dXNoaW5rYW5cIDsKK+WbveS+jSA8IGt1bml6YW11cmFpXCA7Civpm7vmsJfpm7vlrZAgPCBkZW5raWRlbnNoaVwgOwor5Luj6KGM5qmf6ZaiIDwgZGFpa291a2lrYW5cIDsKK+eWsuWKtOWbsOaGiiA8IGhpcm91a29ucGFpXCA7Civnm5fpm6Pkv53pmbogPCB0b3VuYW5ob2tlblwgOwor57SU55yf54Sh5Z6iIDwganVuc2hpbm11a3VcIDsKK+aciOmVt+efsyA8IGdldGNob3VzZWtpXCA7CivmlZnogbflk6EgPCBreW91c2hva3VpblwgOwor5LiL5L2N5LqS5o+b5oCnIDwga2FpZ29rYW5zZWlcIDsKK+azleWLmeWkp+iHoyA8IGhvdW11ZGFpamluXCA7CivpgIHliKXkvJogPCBzb3ViZXRzdWthaVwgOwor5Ye65ZOB5Zu9IDwgc2h1cHBpbmtva3VcIDsKK+WIkeS6i+WHpuWIhiA8IGtlaWppc2hvYnVuXCA7Civpp5Dou4rpgZXlj40gPCBjaHV1c2hhaWhhblwgOwor5Y2X5Lqs55S6IDwgbmFua2lubWFjaGlcIDsKK+aZguapn+WwmuaXqSA8IGppa2lzaG91c291XCA7CivpgZPlvrPnmoQgPCBkb3V0b2t1dGVraVwgOwor5ZWG5qWt55WMIDwgc2hvdWd5b3VrYWlcIDsKK+WPjue0jemhjSA8IHNodXVub3VnYWt1XCA7CivpvI7nq4vmiKYgPCB0ZWlyaXRzdXNlblwgOwor5Y6f5YmH55qEIDwgZ2Vuc29rdXRla2lcIDsKK+W5tOmHkeWfuumHkSA8IG5lbmtpbmtpa2luXCA7Civlgo3ogbTmlpkgPCBib3VjaG91cnlvdVwgOwor5Y2D5YaG5pytIDwgc2VuJydlbnNhdHN1XCA7Civlrprlj47lhaUgPCB0ZWlzaHV1bnl1dVwgOwor6YGp5rOV6KGM54K6IDwgdGVraWhvdWtvdWlcIDsKK+eJqeimi+mBiuWxsSA8IG1vbm9taXl1c2FuXCA7CivlvpfmhI/muoDpnaIgPCB0b2t1aW1hbm1lblwgOwor5pmC5beu5Ye65YukIDwgamlzYXNodWtraW5cIDsKK+aUv+ayu+WVj+mhjCA8IHNlaWppbW9uZGFpXCA7Civntbblr77mlazoqp4gPCB6ZXR0YWlrZWlnb1wgOwor6Y2155uk5qW95ZmoIDwga2VuYmFuZ2Fra2lcIDsKK+iotOion+S6i+S7tiA8IHNvc2hvdWppa2VuXCA7CivmhI/lkbPlvbnlibIgPCBpbWl5YWt1d2FyaVwgOwor5YWt5aSn5beeIDwgcm9rdWRhaXNodXVcIDsKK+WJsuW8leWIuCA8IHdhcmliaWtpa2VuXCA7CivkvY/nlJ/mtLsgPCBqdXVzZWlrYXRzdVwgOwor5L6h5qC85a6J5a6aIDwga2FrYWt1YW50ZWlcIDsKK+S7iuS4iumZm+S4iyA8IGtpbmpvdWhlaWthXCA7Civpm7vmsJfns7vntbEgPCBkZW5raWtlaXRvdVwgOwor5YmN56uL6IW6IDwgemVucml0c3VzZW5cIDsKK+WFjOaPm+mKgOihjCA8IGRha2FuZ2lua291XCA7CivlhpnnnJ/pm4YgPCBzaGFzaGluc2h1dVwgOwor5YWo5Lya5LiA6Ie0IDwgemVua2FpaXRjaGlcIDsKK+eZvuS4h+mBjSA8IGh5YWt1bWFuYmVuXCA7CivonYnmmYLpm6ggPCBzZW1pc2hpZ3VyZVwgOwor6bq76Jas5oKj6ICFIDwgbWF5YWt1a2FuamFcIDsKK+WJsuW8leWCtSA8IHdhcmliaWtpc2FpXCA7Civlv4PmqZ/kuIDou6IgPCBzaGlua2lpdHRlblwgOwor54Sh5ZCN5oim5aOrIDwgbXVtZWlzZW5zaGlcIDsKK+WUr+S4gOeEoeS6jCA8IHl1aWl0c3VtdW5pXCA7CivmjqXnnYDliaQgPCBzZXRjaGFrdXphaVwgOwor5omL6KGT5Y+wIDwgc2h1anV0c3VkYWlcIDsKK+mYsueBq+aJiSA8IGJvdWthdG9iaXJhXCA7CivkubHlhaXogIUgPCByYW4nJ255dXVzaGFcIDsKK+ioiOeUu+eahCA8IGtlaWtha3V0ZWtpXCA7CivosqHmlL/lronlrpogPCB6YWlzZWlhbnRlaVwgOwor6Kq/5Y2w5byPIDwgY2hvdWluc2hpa2lcIDsKK+eci+itt+WtpuagoSA8IGthbmdvZ2Fra291XCA7CivpgIbou6LlsaQgPCBneWFrdXRlbnNvdVwgOwor55Sf5rS75rOVIDwgc2Vpa2F0c3Vob3VcIDsKK+eymOWcn+izqiA8IG5lbmRvc2hpdHN1XCA7CivliIbpoZ7ln7rmupYgPCBidW5ydWlraWp1blwgOwor6YCG6Ly45YWlIDwgZ3lha3V5dW55dXVcIDsKK+aWh+abuOWBvemAoCA8IGJ1bnNob2dpem91XCA7CivlraTou43lpa7pl5ggPCBrb2d1bmZ1bnRvdVwgOwor5paw6IiI5Zu9IDwgc2hpbmtvdWtva3VcIDsKK+aVsOasoeaXheWIuCA8IHN1dWppcnlva2VuXCA7CivlkIjnm67nmoQgPCBnb3Vtb2t1dGVraVwgOwor5ZCI5oiQ57mK57atIDwgZ291c2Vpc2VuJydpXCA7CivmlrDkurros54gPCBzaGluamluc2hvdVwgOwor6Zu75aCx5bGAIDwgZGVucG91a3lva3VcIDsKK+iytOaXj+aUv+ayuyA8IGtpem9rdXNlaWppXCA7CivljZrmhJvkuLvnvqkgPCBoYWt1YWlzaHVnaVwgOwor5LiA5paJ5qSc5oyZIDwgaXNzZWlrZW5reW9cIDsKK+S6nOmJm+iPr+i7n+iGjyA8IGFlbmthbmFua291XCA7CivkuInluZXniakgPCBzYW5tYWt1bW9ub1wgOwor55m95pyo6JOuIDwgaGFrdW1va3VyZW5cIDsKK+WVhualrea4ryA8IHNob3VneW91a291XCA7CivkuIDph4zloZogPCBpY2hpcmlkenVrYVwgOwor57WC6Lqr5YiRIDwgc2h1dXNoaW5rZWlcIDsKK+S9jua4qei8uOmAgSA8IHRlaW9uJyd5dXNvdVwgOwor6aKo5YWJ5piO5aqaIDwgZnV1a291bWVpYmlcIDsKK+W+jOmDqOW6p+W4rSA8IGtvdWJ1emFzZWtpXCA7Civli5XlipvlraYgPCBkb3VyaWtpZ2FrdVwgOwor56+A5paZ55CGIDwgc2VjaGlyeW91cmlcIDsKK+WHuuWTgeS6uiA8IHNodXBwaW4nJ25pblwgOwor5YKN6IG05bitIDwgYm91Y2hvdXNla2lcIDsKK+S4jemBqeWIhyA8IGZ1dGVraXNldHN1XCA7CivlgIvkurrmipXos4cgPCBrb2ppbnRvdXNoaVwgOwor5a2m6Zqb55qEIDwgZ2FrdXNhaXRla2lcIDsKK+ernOmqqOW6pyA8IHJ5dXVrb3RzdXphXCA7Civkv53pmbrkvJrnpL4gPCBob2tlbmdhaXNoYVwgOwor56Gr5YyW5rC057SgIDwgcnl1dWthc3Vpc29cIDsKK+S7ruadoee0hCA8IGthcmlqb3V5YWt1XCA7Civml6XmnKzliJfls7YgPCBuaWhvbnJldHRvdVwgOwor6ZqO57Sa56ugIDwga2Fpa3l1dXNob3VcIDsKK+aIpuaZguWFrOWCtSA8IHNlbmppa291c2FpXCA7CivmirXmipflipsgPCB0ZWlrb3VyeW9rdVwgOwor5qOu5p6X5a2mIDwgc2hpbnJpbmdha3VcIDsKK+a1t+WToee1hOWQiCA8IGthaWlua3VtaWFpXCA7Civnmb7kuIfoqIAgPCBoeWFrdW1hbmdlblwgOwor5L+u6L6e55aR5ZWPIDwgc2h1dWppZ2ltb25cIDsKK+a4r+eUuiA8IG1pbmF0b21hY2hpXCA7Civms5XlrprosqjluaMgPCBob3V0ZWlrYWhlaVwgOwor5L2T5YaF5Y+X57K+IDwgdGFpbmFpanVzZWlcIDsKK+WMlueyp+S4iyA8IGtlc2hvdXNoaXRhXCA7CivomavolqwgPCBtdXNoaWd1c3VyaVwgOwor5qW96Kaz5Li7576pIDwgcmFra2Fuc2h1Z2lcIDsKK+i1pOaPkOeBryA8IGFrYWNob3VjaGluXCA7CivlhaXpmaLmgqPogIUgPCBueXV1aW5rYW5qYVwgOwor5Ym16YCg5Li7IDwgc291em91bnVzaGlcIDsKK+mWoumAo+S6i+mghSA8IGthbnJlbmppa291XCA7Civljp/kvqHoqIjnrpcgPCBnZW5rYWtlaXNhblwgOwor6Zu75a2Q5Zue6LevIDwgZGVuc2hpa2Fpcm9cIDsKK+WAmeWtneizoiA8IGhvdXNoYXVzaGVuXCA7Civph43ngrnkuLvnvqkgPCBqdXV0ZW5zaHVnaVwgOwor5L6h6Zu75a2Q5bivIDwga2FkZW5zaGl0YWlcIDsKK+acieWKuemcgOimgSA8IHl1dWtvdWp1eW91XCA7Civkuovmpa3lubTluqYgPCBqaWd5b3VuZW5kb1wgOwor55u45Y+N5a6a55CGIDwgc291aGFudGVpcmlcIDsKK+WFreWIhuWEgOW6pyA8IHJva3VidW5naXphXCA7CivlhqzlsIbou40gPCBmdXl1c2hvdWd1blwgOwor5a6J5a6a54q25oWLIDwgYW50ZWlqb3V0YWlcIDsKK+awkeS4u+aUv+ayuyA8IG1pbnNodXNlaWppXCA7Civni6znv5Lmm7ggPCBkb2t1c2h1dXNob1wgOwor5YWs6Ki85paZIDwga291c2hvdXJ5b3VcIDsKK+WUkOe0hSA8IGthcmFrdXJlbmFpXCA7Civntr/nuZTniakgPCBtZW4nJ29yaW1vbm9cIDsKK+WMluWtpue5iue2rSA8IGthZ2FrdXNlbicnaVwgOwor57W25a++6Z+z5oSfIDwgemV0dGFpb25rYW5cIDsKK+WFiOWFpeS4uyA8IHNlbicnbnl1dXNodVwgOwor5pyA57WC55qEIDwgc2Fpc2h1dXRla2lcIDsKK+acrOW7uueviSA8IGhvbmtlbmNoaWt1XCA7Civoh6rnhLbnoLTlo4ogPCBzaGl6ZW5oYWthaVwgOwor5aCx6YGT5qmf6ZaiIDwgaG91ZG91a2lrYW5cIDsKK+aNleiZnOS6pOaPmyA8IGhvcnlva291a2FuXCA7Civni5flsL7ojYkgPCBlbm9rb3JvZ3VzYVwgOwor5Lqc57Gz5Yip5Yqg5p2JIDwgYW1lcmlrYXN1Z2lcIDsKK+S+oeWApOWIpOaWrSA8IGthY2hpaGFuZGFuXCA7CivooYzllYbkurogPCBneW91c2hvdW5pblwgOwor5YiH5YiG5rOVIDwgc2V0c3VidW5ob3VcIDsKK+aJi+e3tOaJi+euoSA8IHRlcmVudGVrdWRhXCA7CivlmajmorDkvZPmk40gPCBraWthaXRhaXNvdVwgOwor6aSK6ICB5L+d6Zm6IDwgeW91cm91aG9rZW5cIDsKK+Wwj+eZvuWnkyA8IGtvYnlha3VzaG91XCA7Civlv4PkuIjlpKsgPCBrb2tvcm9qb3VidVwgOwor6bOl6aGe5a2mIDwgY2hvdXJ1aWdha3VcIDsKK+W8seW5tOiAhSA8IGpha3VuZW5tb25vXCA7CivkuK3pmorplbcgPCBjaHV1dGFpY2hvdVwgOwor5LiN5b2T6KGo56S6IDwgZnV0b3VoeW91amlcIDsKK+WuieWFqOmBi+i7oiA8IGFuemVuJyd1bnRlblwgOwor55u46KuH5b25IDwgc291ZGFuJyd5YWt1XCA7CivkuqTpmpvnr4Tlm7IgPCBrb3VzYWloYW4nJ2lcIDsKK+W/nOeUqOenkeWtpiA8IG91eW91a2FnYWt1XCA7Civpo5/kuovmmYIgPCBzaG9rdWppZG9raVwgOwor5YWr6Z2i5L2TIDwgaGFjaGltZW50YWlcIDsKK+S4jeaVtOWQiOS6uiA8IGZ1c2VpZ291amluXCA7Civljp/liKTmsbogPCBnZW5oYW5rZXRzdVwgOwor5Y2Y5YWD5Yi25bqmIDwgdGFuZ2Vuc2VpZG9cIDsKK+S4gOatqeWJjemAsiA8IGlwcG96ZW5zaGluXCA7Civlm73njovpmZvkuIsgPCBrb2t1b3VoZWlrYVwgOwor5qW15Zyw5ZyPIDwga3lva3VjaGlrZW5cIDsKK+aUvumAgeihm+aYnyA8IGhvdXNvdWVpc2VpXCA7Civlr4LlhYnmtYTlnJ8gPCBqYWtrb3Vqb3Vkb1wgOwor55uj5a+f5a6YIDwga2Fuc2F0c3VrYW5cIDsKK+W+jOeUn+Wkp+S6iyA8IGdvc2hvdWRhaWppXCA7CivkuInmsJHkuLvnvqkgPCBzYW5taW5zaHVnaVwgOwor55m9546J57KJIDwgc2hpcmF0YW1ha29cIDsKK+WVhualreaWhyA8IHNob3VneW91YnVuXCA7CivmsJfnrqHliIfplosgPCBraWthbnNla2thaVwgOwor5aSp5YuV6KqsIDwgdGVuZG91c2V0c3VcIDsKK+WCsuWyuOS4jemBnCA8IGdvdWdhbmZ1c29uXCA7Civovrvoqqzms5UgPCB0c3VqaXNlcHBvdVwgOwor5a6254i26ZW35Yi2IDwga2FmdWNob3VzZWlcIDsKK+aal+m7kuaYn+mbsiA8IGFua29rdXNlaXVuXCA7Civov5Hku6Plm73lrrYgPCBraW5kYWlrb2trYVwgOwor54WJ5Li56KGTIDwgcmVudGFuanV0c3VcIDsKK+ilv+a1t+WyuCA8IG5pc2hpa2FpZ2FuXCA7CivliY3pgJTmnInmnJsgPCB6ZW50b3l1dWJvdVwgOwor5oCl5LiK5piHIDwga3l1dWpvdXNob3VcIDsKK+Wuneefs+WVhiA8IGhvdXNla2lzaG91XCA7Civmj5vnrpfnjocgPCBrYW5zYW5yaXRzdVwgOwor5bu66Kit6ICFIDwga2Vuc2V0c3VzaGFcIDsKK+WMl+OAheilvyA8IGhva3Vob2t1c2VpXCA7Civpn7Pmpb3nkIboq5YgPCBvbmdha3VyaXJvblwgOwor5aeU6KiX6LKp5aOyIDwgaXRha3VoYW5iYWlcIDsKK+mKgOWpmuW8jyA8IGdpbmtvbnNoaWtpXCA7CivkuInlr5Llm5vmuKkgPCBzYW5rYW5zaGlvblwgOwor6LKn5LmP5omA5bivIDwgYmluYm91am90YWlcIDsKK+W+oeS8veiNieWtkCA8IG90b2dpem91c2hpXCA7CivnpZ7lpYjlt53nnIwgPCBrYW5hZ2F3YWtlblwgOwor6Zu75rCX6KOF572uIDwgZGVua2lzb3VjaGlcIDsKK+WcsOaWueitsOS8miA8IGNoaWhvdWdpa2FpXCA7Civljp/li5XlipsgPCBnZW5kb3VyeW9rdVwgOwor5L+E5pmv5rCXIDwgbml3YWthZ2Vpa2lcIDsKK+ijheeUsumDqOmaiiA8IHNvdWtvdWJ1dGFpXCA7CivkuI3lj6/lhaXmgKcgPCBmdWthbnl1dXNlaVwgOwor5oKq5oiv6ICFIDwgaXRhenVyYW1vbm9cIDsKK+Wkp+emj+W4syA8IGRhaWZ1a3VjaG91XCA7CivmmYLnr4Dmn4QgPCBqaXNldHN1Z2FyYVwgOwor5Y2X5Lqs5pyo57a/IDwgbmFua2lubW9tZW5cIDsKK+ejr+m1ryA8IGlzb2hpeW9kb3JpXCA7CivljbDosaHkuLvnvqkgPCBpbnNob3VzaHVnaVwgOwor5ZC46KGA6ay8IDwga3l1dWtldHN1a2lcIDsKK+ezluWwv+eXhSA8IHRvdW55b3VieW91XCA7CivkuIDlvLXkuIDlvJsgPCBpdGNob3Vpc3NoaVwgOwor5Yy66ZaT5YiX6LuKIDwga3VrYW5yZXNzaGFcIDsKK+i7ouS7u+WFiCA8IHRlbicnbmluc2FraVwgOwor5pSv6YWN5YqbIDwgc2hpaGFpcnlva3VcIDsKK+ebuOaAneebuOaEmyA8IHNvdXNoaXNvdWFpXCA7CivoiKrnqbrln7rlnLAgPCBrb3VrdXVraWNoaVwgOwor55uj5p+76KiY6YyyIDwga2Fuc2FraXJva3VcIDsKK+aKgOihk+enu+i7oiA8IGdpanV0c3VpdGVuXCA7CivnlKPlhZDliLbpmZAgPCBzYW5qaXNlaWdlblwgOwor5Y2Y6Z+z56+AIDwgdGFuJydvbnNldHN1XCA7CivmlrDogZ7nqK4gPCBzaGluYnVuZGFuZVwgOwor6aO95ZKM54q25oWLIDwgaG91d2Fqb3V0YWlcIDsKK+S9juS4mOmZtSA8IHRlaWt5dXVyeW91XCA7Civlm73pmpvnmoQgPCBrb2t1c2FpdGVraVwgOwor6YO35Zyf6ImyIDwga3lvdWRvc2hva3VcIDsKK+ernOeUsOWnqyA8IHRhdHN1dGFoaW1lXCA7CivlsI/lrabppKggPCBzaG91Z2FrdWthblwgOwor55+l6IO95qSc5p+7IDwgY2hpbm91a2Vuc2FcIDsKK+S9v+evgOWboyA8IHNoaXNldHN1ZGFuXCA7Civmtojmga/mlocgPCBzaG91c29rdWJ1blwgOwor57eL6KGj6I2JIDwgaGlnb3JvbW9zb3VcIDsKK+S4u+ioiOWxgCA8IHNodWtlaWt5b2t1XCA7CivpgZPlvrPlv4MgPCBkb3V0b2t1c2hpblwgOwor5pyq5rG65ZuaIDwgbWlrZXRzdXNodXVcIDsKK+aEm+WUseabsiA8IGFpc2hvdWt5b2t1XCA7CivlraTlvbHmgoTnhLYgPCBrb2Vpc2hvdXplblwgOwor5LqU56iu56u25oqAIDwgZ29zaHVreW91Z2lcIDsKK+WBteWvn+maiiA8IHRlaXNhdHN1dGFpXCA7Civlm6PkvZPkv53pmbogPCBkYW50YWlob2tlblwgOwor55m65L+h5YG0IDwgaGFzc2hpbmdhd2FcIDsKK+WnieWmuemDveW4giA8IHNoaW1haXRvc2hpXCA7CivpgaDlsbHph4wgPCB0b295YW1hemF0b1wgOwor56We57WM55ebIDwgc2hpbmtlaXRzdXVcIDsKK+S4jemAmueuh+aJgCA8IGZ1dHN1dWthc2hvXCA7CivnpZ7ntYznl4cgPCBzaGlua2Vpc2hvdVwgOwor56We57WM55eFIDwgc2hpbmtlaWJ5b3VcIDsKK+egtOmCqumhleatoyA8IGhhamFrZW5zaG91XCA7CivmlL/msrvlm6PkvZMgPCBzZWlqaWRhbnRhaVwgOwor5LiA5Zac5LiA5oaCIDwgaWtraWljaGl5dXVcIDsKK+WumuedgOa2siA8IHRlaWNoYWt1ZWtpXCA7CivlvIHoqLzlraYgPCBiZW5zaG91Z2FrdVwgOwor5rqW5YKZ5ZG95LukIDwganVuYmltZWlyZWlcIDsKK+WPl+mok+enkeebriA8IGp1a2Vua2Ftb2t1XCA7CivmnKjnrqHmpb3lmaggPCBtb2trYW5nYWtraVwgOwor55m65L+h5Lq6IDwgaGFzc2hpbicnbmluXCA7CivkuK3pq5jpn7Ppg6ggPCBjaHV1a291b25idVwgOwor5Y+L5oSb57WQ5amaIDwgeXV1YWlrZWtrb25cIDsKK+e3keWcsOW4ryA8IHJ5b2t1Y2hpdGFpXCA7Civmtbfou43ln7rlnLAgPCBrYWlndW5raWNoaVwgOwor55Sf5rS75ZyPIDwgc2Vpa2F0c3VrZW5cIDsKK+mbu+WtkOe0oOWtkCA8IGRlbnNoaXNvc2hpXCA7CivnhrHkvJ3lsI4gPCBuZXRzdWRlbmRvdVwgOwor6YGT5b6z5a2mIDwgZG91dG9rdWdha3VcIDsKK+aEm+WbvemBi+WLlSA8IGFpa29rdXVuZG91XCA7CivpganmoLzogIUgPCB0ZWtpa2FrdXNoYVwgOwor5Zuz5pu45a6kIDwgdG9zaG9zaGl0c3VcIDsKK+ims+mfs+anmCA8IGthbicnbm9uc2FtYVwgOwor57WQ5ama5byPIDwga2Vra29uc2hpa2lcIDsKK+ilv+a0i+W8jyA8IHNlaXlvdXNoaWtpXCA7CivkurrmloflnLDnkIYgPCBqaW5tb25jaGlyaVwgOwor5Yq05YON5LqJ6K2wIDwgcm91ZG91c291Z2lcIDsKK+aDheWgseWHpueQhiA8IGpvdWhvdXNob3JpXCA7Civlj6/lpInos4fmnKwgPCBrYWhlbnNoaWhvblwgOwor54K65pu/5beu55uKIDwga2F3YXNlc2Fla2lcIDsKK+iqmOaLkOS6i+S7tiA8IHl1dWthaWppa2VuXCA7CivkuInlpKfpg73luIIgPCBzYW5kYWl0b3NoaVwgOwor55S35Yal5YipIDwgb3Rva29teW91cmlcIDsKK+aJgOimgeaZgumWkyA8IHNob3lvdWppa2FuXCA7CivlpbPmqKnpgYvli5UgPCBqb2tlbicndW5kb3VcIDsKK+WIhuaVo+WHpueQhiA8IGJ1bnNhbnNob3JpXCA7CivotbDooYzlj6/og70gPCBzb3Vrb3VrYW5vdVwgOwor5ZG957axIDwgaW5vY2hpZHp1bmFcIDsKK+a1geiogOmjm+iqniA8IHJ5dXVnZW5oaWdvXCA7CivkuIDmlrDntIDlhYMgPCBpc3NoaW5raWdlblwgOwor5b6S5omL5L2T5pONIDwgdG9zaHV0YWlzb3VcIDsKK+S4iuiFlemqqCA8IGpvdXdhbmtvdHN1XCA7CivnlJ/lkb3lipsgPCBzZWltZWlyeW9rdVwgOwor56Gs6aqo5ryiIDwga291a290c3VrYW5cIDsKK+WVhualreWcsCA8IHNob3VneW91Y2hpXCA7Civph5HovaEgPCBrYW5hZ3V0c3V3YVwgOwor5LiH5bm05bqKIDwgbWFuJyduZW5kb2tvXCA7Civlj6Pou4ogPCBrdWNoaWd1cnVtYVwgOwor6Kyb6YeI5birIDwga291c2hha3VzaGlcIDsKK+S4ieW5heWvviA8IHNhbnB1a3V0c3VpXCA7Civom4vnmb3lsL8gPCB0YW5wYWt1bnlvdVwgOwor5Yi65r+A6IetIDwgc2hpZ2VraXNodXVcIDsKK+iNiemei+iZqyA8IHdhcmFqaW11c2hpXCA7Civph5Hono3mpa0gPCBraW4nJ3l1dWd5b3VcIDsKK+WwgeW7uuS4u+e+qSA8IGhvdWtlbnNodWdpXCA7Civoj5znqK7msrkgPCBuYXRhbmVhYnVyYVwgOwor5Y+X6aiT5oim5LqJIDwganVrZW5zZW5zb3VcIDsKK+WHuumbsuWkp+ekviA8IGl6dW1vdGFpc2hhXCA7Civpm5vkurrlvaIgPCBoaW5hbmluZ3lvdVwgOwor5qip6ZaA5Yui5a62IDwga2VubW9uc2Vpa2FcIDsKK+eEoeedgOmZuCA8IG11Y2hha3VyaWt1XCA7CivkuIrliIbliKUgPCBqb3VmdW5iZXRzdVwgOwor5aSn5YuV6ISIIDwgZGFpZG91bXlha3VcIDsKK+eEoee3muaTjee4piA8IG11c2Vuc291anV1XCA7CivnpZ7nhKHmnIggPCBrYW4nJ25hZHp1a2lcIDsKK+W5vOmmtOafkyA8IG9zYW5hbmFqaW1pXCA7CivlhoblkajnjocgPCBlbnNodXVyaXRzdVwgOwor5YCf5a625LqJ6K2wIDwgc2hha2thc291Z2lcIDsKK+Wuh+WumeenkeWtpiA8IHVjaHV1a2FnYWt1XCA7CivllYbmpa3lj7IgPCBzaG91Z3lvdXNoaVwgOwor5Y+k5YW46Iq46IO9IDwga290ZW5nZWlub3VcIDsKK+WxseWys+eXhSA8IHNhbmdha3VieW91XCA7Civopqrku7vlrpggPCBzaGluJyduaW5rYW5cIDsKK+i/vei3oeiAhSA8IHRzdWlzZWtpc2hhXCA7Civosaroj6/ntaLniJsgPCBnb3VrYWtlbnJhblwgOwor55m65Lya5byPIDwgaGFra2Fpc2hpa2lcIDsKK+WppuS6uumBi+WLlSA8IGZ1amluJyd1bmRvdVwgOwor5bqK6Z2i56mNIDwgeXVrYW1lbnNla2lcIDsKK+S4jeWLleaYjueOiyA8IGZ1ZG91bXlvdW91XCA7CivkvZPlpJblj5fnsr4gPCB0YWlnYWlqdXNlaVwgOwor54u46Kaq54i2IDwgdGFudWtpb3lhamlcIDsKK+acqOefs+a8oiA8IGJva3VzZWtpa2FuXCA7Civlm73pmLLnnIEgPCBrb2t1Ym91c2hvdVwgOwor5Yuk5YuZ5bm06ZmQIDwga2lubXVuZW5nZW5cIDsKK+WbveaWh+WtpiA8IGtva3VidW5nYWt1XCA7CivnlJ/mrpbohbogPCBzZWlzaG9rdXNlblwgOwor5rqA5aC05LiA6Ie0IDwgbWFuam91aXRjaGlcIDsKK+WJjeS4lueUn+WtmCA8IHplbnNlc2Vpem9uXCA7Civoh6rmrrrnmoQgPCBqaXNhdHN1dGVraVwgOwor5Lya6KiI5bm05bqmIDwga2Fpa2VpbmVuZG9cIDsKK+mAoOeJqeS4uyA8IHpvdWJ1dHN1c2h1XCA7CivkuIfokYnku67lkI0gPCBtYW4nJ3lvdWdhbmFcIDsKK+WCjeiBtOmaj+aEjyA8IGJvdWNob3V6dWlpXCA7CivnlKjlhbXooZMgPCB5b3VoZWlqdXRzdVwgOwor57W25a++5aSa5pWwIDwgemV0dGFpdGFzdXVcIDsKK+WPluiqvyA8IHRvcmlzaGlyYWJlXCA7CivpgIDogbfph5EgPCB0YWlzaG9rdWtpblwgOwor57SF55m96Kmm5ZCIIDwga291aGFrdWppYWlcIDsKK+S8muioiOebo+afuyA8IGthaWtlaWthbnNhXCA7CivlvY7mnIjnirYgPCB3YW5nZXRzdWpvdVwgOwor5YWr57SY5LiA5a6HIDwgaGFra291aWNoaXVcIDsKK+iInuWPsOijhee9riA8IGJ1dGFpc291Y2hpXCA7CivnlJ/msqHlubQgPCBzZWlib3RzdW5lblwgOwor5Y2Y5LiA5oCnIDwgdGFuJydpdHN1c2VpXCA7CivpvLvmn7EgPCBoYW5hYmFzaGlyYVwgOwor5oyB57aa5YqbIDwgaml6b2t1cnlva3VcIDsKK+S6i+WLmemVt+WumCA8IGppbXVjaG91a2FuXCA7CivkuIDoiKznpL7kvJogPCBpcHBhbnNoYWthaVwgOwor5pel5bid5pmC5LujIDwgbml0dGVpamlkYWlcIDsKK+aWsOiBnualrSA8IHNoaW5idW5neW91XCA7CivnmbvlnYLou4rnt5ogPCB0b2hhbnNoYXNlblwgOwor56We57WM5qC4IDwgc2hpbmtlaWtha3VcIDsKK+S4lueVjOacgOWkpyA8IHNla2Fpc2FpZGFpXCA7CivmjIflsI7ljp/nkIYgPCBzaGlkb3VnZW5yaVwgOwor5p6i6Lu45Zu9IDwgc3V1amlrdWtva3VcIDsKK+mAoOasoemhm+aymyA8IHpvdWppdGVucGFpXCA7CivoiKrnqbrnrqHnkIYgPCBrb3VrdXVrYW5yaVwgOwor5LiJ6Imy54mIIDwgc2Fuc2hva3ViYW5cIDsKK+eqr+WNsCA8IGthbWFqaXJ1c2hpXCA7CivkuK3plpPpp4UgPCBjaHV1a2FuJydla2lcIDsKK+iDveijheadnyA8IG5vdXNob3V6b2t1XCA7CivntZDmmbblraYgPCBrZXNzaG91Z2FrdVwgOwor5oSf5p+T57WM6LevIDwga2Fuc2Vua2Vpcm9cIDsKK+ino+axuuazlSA8IGthaWtldHN1aG91XCA7CivorabmiJLoibIgPCBrZWlrYWlzaG9rdVwgOwor5LqM562J6LuN5pu5IDwgbml0b3VndW5zb3VcIDsKK+S4gOavm+S9nCA8IGljaGltb3VzYWt1XCA7CivmuKnnhrHmgKcgPCBvbicnbmV0c3VzZWlcIDsKK+mYsueBq+Whl+aWmSA8IGJvdWthdG9yeW91XCA7Civoh6rnuIToh6rnuJsgPCBqaWpvdWppYmFrdVwgOwor6YCU5Lit5LiL6LuKIDwgdG9jaHV1Z2VzaGFcIDsKK+eSsOWig+S/neittyA8IGthbmt5b3Vob2dvXCA7CivlmJjnmbropovlmaggPCB1c29oYWtrZW5raVwgOwor6Z2i5Lya5pmC6ZaTIDwgbWVua2FpamlrYW5cIDsKK+mHjeapn+mWoumKgyA8IGp1dWtpa2FuanV1XCA7CivlhoXlj43ohJogPCBuYWloYW5reWFrdVwgOwor5rOV5qGI5a+p6K2wIDwgaG91YW5zaGluZ2lcIDsKK+W7tue4hOa8gSA8IGhhZW5hd2FyeW91XCA7Civnm7TmlrnkvZMgPCBjaG9rdWhvdXRhaVwgOwor6Ieq5YuV5Yi25b6hIDwgamlkb3VzZWlneW9cIDsKK+WutuaXj+mBlCA8IGthem9rdXRhY2hpXCA7CivliLrmv4DnmoQgPCBzaGlnZWtpdGVraVwgOwor5YCL5Lq65oyH5bCOIDwga29qaW5zaGlkb3VcIDsKK+iHqueEtueZuueBqyA8IHNoaXplbmhha2thXCA7CivkuLvli5nlpKfoh6MgPCBzaHVtdWRhaWppblwgOwor55+t5pyf5rG65oimIDwgdGFua2lrZXNzZW5cIDsKK+iogOiqnumBi+eUqCA8IGdlbmdvdW4nJ3lvdVwgOwor5Lqk5o+b5bGAIDwga291a2Fua3lva3VcIDsKK+WNsemZuuaAneaDsyA8IGtpa2Vuc2hpc291XCA7Civnqbrln5/nrqHnkIYgPCBrdXVpa2lrYW5yaVwgOwor5b6h5q6/5aWz5LitIDwgZ290ZW5qb2NodXVcIDsKK+S4g+W5tOW/jCA8IHNoaWNoaW5lbmtpXCA7CivpmqPkv53kuovmpa0gPCByaW5wb2ppZ3lvdVwgOwor5oKq5oiv5pu4IDwgaXRhenVyYWdha2lcIDsKK+WNg+S6uumHnSA8IHNlbicnbmluYmFyaVwgOwor5ZCI5oSP5b+D5LitIDwgZ291aXNoaW5qdXVcIDsKK+S4lueVjOiomOmMsiA8IHNla2Fpa2lyb2t1XCA7Civln7rmnKzmnaHku7YgPCBraWhvbmpvdWtlblwgOwor6L6y5rCR5LiA5o+GIDwgbm91bWluJydpa2tpXCA7CivliY3ku6PmnKrogZ4gPCB6ZW5kYWltaW1vblwgOwor5raI5q+S5rayIDwgc2hvdWRva3Vla2lcIDsKK+ikh+WQiOaxmuafkyA8IGZ1a3Vnb3Vvc2VuXCA7Civntbblr77pm7bluqYgPCB6ZXR0YWlyZWlkb1wgOwor5qeL5oiQ5Y+v6IO9IDwga291c2Vpa2Fub3VcIDsKK+S4gOS6uuiInuWPsCA8IGhpdG9yaWJ1dGFpXCA7Civnmq7kuIvntYTnuZQgPCBoaWthc29zaGlraVwgOwor5rK556Cl55+zIDwgYWJ1cmF0b2lzaGlcIDsKK+WcsOS4i+izh+a6kCA8IGNoaWthc2hpZ2VuXCA7Civni5DppYLpo6kgPCBraXRzdW5ldWRvblwgOwor5r+D6KSQ6ImyIDwgbm91a2Fzc2hva3VcIDsKK+adkOacqOWVhiA8IHphaW1va3VzaG91XCA7Civnmb3ljJblgIvkvZMgPCBoYWt1a2Frb3RhaVwgOwor6Zu76Kmx5Zue57eaIDwgZGVud2FrYWlzZW5cIDsKK+S4jeato+WSrOWQiCA8IGZ1c2Vpa291Z291XCA7CivmkanoqLbkuI3mgJ3orbAgPCBtYWthZnVzaGlnaVwgOwor5Y6f6Imy54mIIDwgZ2Vuc2hva3ViYW5cIDsKK+e+juWuueS9k+aTjSA8IGJpeW91dGFpc291XCA7CivljZTorbDpm6LlqZogPCBreW91Z2lyaWtvblwgOwor6JSm6Ji/IDwgdHN1dGFrYXp1cmFcIDsKK+a4qeaaluWJjee3miA8IG9uZGFuemVuc2VuXCA7CivljZjpoIXlvI8gPCB0YW5rb3VzaGlraVwgOwor5paw6KaP5L+d566hIDwgc2hpbmtpaG9rYW5cIDsKK+Wcn+awl+iJsiA8IHRzdWNoaWtlaXJvXCA7Civlj5bnt6AgPCB0b3Jpc2hpbWFyaVwgOwor5LuY5bGe56+AIDwgZnV6b2t1c2V0c3VcIDsKK+S4gOiyq+eVquWPtyA8IGlra2FuYmFuZ291XCA7Civnj77ooYzms5Xopo8gPCBnZW5rb3Vob3VraVwgOwor5LiA55Wq6baPIDwgaWNoaWJhbmRvcmlcIDsKK+e0i+eroOWtpiA8IG1vbnNob3VnYWt1XCA7CivnnJ/lj6rkuK0gPCBtYXR0YWRhbmFrYVwgOwor56WW5Zu95b6p5biwIDwgc29rb2t1ZnVra2lcIDsKK+WQq+awtOeCree0oCA8IGdhbnN1aXRhbnNvXCA7CivlirTlg43mmYLplpMgPCByb3Vkb3VqaWthblwgOwor5Ye65bit6ICFIDwgc2h1c3Nla2lzaGFcIDsKK+eCuuabv+ebuOWgtCA8IGthd2FzZXNvdWJhXCA7CivkuJbnlYzkuIDlkaggPCBzZWthaWlzc2h1dVwgOwor5Yy755mC5rOV5Lq6IDwgaXJ5b3Vob3VqaW5cIDsKK+mWgOWJjeeUuiA8IG1vbnplbm1hY2hpXCA7CivmsLfooosgPCBrb29yaWJ1a3Vyb1wgOwor6byT6Iie5r+A5YqxIDwga29idWdla2lyZWlcIDsKK+aVmeiok+eahCA8IGt5b3VrdW50ZWtpXCA7Civosq/ph5HlsYAgPCBjaG9raW5reW9rdVwgOwor5a6Y5YOa6IetIDwga2FucnlvdXNodXVcIDsKK+i5hOmJhOW3pSA8IHRlaXRldHN1a291XCA7CivnspLluqbliIbluIMgPCByeXV1ZG9idW5wdVwgOwor56We57WM5a2mIDwgc2hpbmtlaWdha3VcIDsKK+aKleS4i+izh+acrCA8IHRvdWthc2hpaG9uXCA7CivnlKjmhI/lkajliLAgPCB5b3Vpc2h1dXRvdVwgOwor6KGo546E6ZaiIDwgb21vdGVnZW5rYW5cIDsKK+WGheeHg+apn+mWoiA8IG5haW5lbmtpa2FuXCA7Civlh7rlvLXlupcgPCBzaHV0Y2hvdXRlblwgOwor5peF6KGM6Z6EIDwgcnlva291a2FiYW5cIDsKK+a4m+WhqemjnyA8IGdlbicnZW5zaG9rdVwgOwor5Zuj5L2T5a6iIDwgZGFudGFpa3lha3VcIDsKK+mYsuawtOWKoOW3pSA8IGJvdXN1aWtha291XCA7Civlv4PpnIrlraYgPCBzaGlucmVpZ2FrdVwgOwor5YCL5Lq65raI6LK7IDwga29qaW5zaG91aGlcIDsKK+S7ruaAp+i/keimliA8IGthc2Vpa2luc2hpXCA7CivlpKfmraPnkLQgPCB0YWlzaG91Z290b1wgOwor5qyg5Yuk546HIDwga2Vra2lucml0c3VcIDsKK+WumuedgOWJpCA8IHRlaWNoYWt1emFpXCA7CivljZfopb8gPCBtaW5hbWluaXNoaVwgOwor5YWl5aC05paZIDwgbnl1dWpvdXJ5b3VcIDsKK+mAkOiqnuiosyA8IGNoaWt1Z295YWt1XCA7CivmgJ3ogIPlipsgPCBzaGlrb3VyeW9rdVwgOwor5Lmz55So54mbIDwgbnl1dXlvdWd5dXVcIDsKK+ato+immuWdiiA8IHNob3VnYWt1Ym91XCA7Civnt5Hol7vpoZ4gPCByeW9rdXNvdXJ1aVwgOwor55uu5pKD6ICFIDwgbW9rdWdla2lzaGFcIDsKK+m7kuabnOefsyA8IGtva3V5b3VzZWtpXCA7CivnqbrmsJfkvJ3mn5MgPCBrdXVraWRlbnNlblwgOwor5rqA5LiA5bm0IDwgbWFuJydpY2hpbmVuXCA7CivmsqHmiJHnmoQgPCBib3RzdWdhdGVraVwgOwor5ZCr5aG1546HIDwgZ2Fuamlucml0c3VcIDsKK+W5vOW5tOaZguS7oyA8IHlvdW5lbmppZGFpXCA7CivpgIDogbfogIUgPCB0YWlzaG9rdXNoYVwgOwor6JS15bGL5pW3IDwga3VyYXlhc2hpa2lcIDsKK+ekvuS8muW+qeW4sCA8IHNoYWthaWZ1a2tpXCA7Civpm7vmsJfoo73lk4EgPCBkZW5raXNlaWhpblwgOwor5YyF6YeRIDwgdHN1dHN1bWlraW5cIDsKK+WGjeW7uueviSA8IHNhaWtlbmNoaWt1XCA7CivnlKPlqabkurrnp5HljLsgPCBzYW5mdWppbmthaVwgOwor5LiA6LKr5L2c5qWtIDwgaWtrYW5zYWd5b3VcIDsKK+a7nuWcqOacn+mWkyA8IHRhaXphaWtpa2FuXCA7CivnjK7ouqvnmoQgPCBrZW5zaGludGVraVwgOwor54Sh5b2i6LKh55SjIDwgbXVrZWl6YWlzYW5cIDsKK+WmqOWus+eJqSA8IGJvdWdhaWJ1dHN1XCA7CivngrnnnLzolqwgPCB0ZW5nYW4nJ3lha3VcIDsKK+WFg+mmluebuCA8IG1vdG9zaHVzaG91XCA7CivnhKHmlq3ou6LovIkgPCBtdWRhbnRlbnNhaVwgOwor5oGQ5rC055eFIDwga3lvdXN1aWJ5b3VcIDsKK+Wdh+ihoeS6iOeulyA8IGtpbmtvdXlvc2FuXCA7Civlr4blo7Llk4EgPCBtaXRzdWJhaWhpblwgOwor55+z5bed55yMIDwgaXNoaWthd2FrZW5cIDsKK+S7mOW4r+adoeS7tiA8IGZ1dGFpam91a2VuXCA7Civlia/kvJrplbcgPCBmdWt1a2FpY2hvdVwgOwor55m65piO6ICFIDwgaGF0c3VtZWlzaGFcIDsKK+i7jeS6i+W3peWgtCA8IGd1bmppa291am91XCA7CivmnInlirnmlbDlrZcgPCB5dXVrb3VzdXVqaVwgOwor5Ym15L2c55qEIDwgc291c2FrdXRla2lcIDsKK+iHjeS4i+S4ueeUsCA8IHNlaWthdGFuZGVuXCA7CivlpKfpgIbnvaogPCB0YWlneWFrdXphaVwgOwor6Kmm55So5pyf6ZaTIDwgc2hpeW91a2lrYW5cIDsKK+S4gOWFg+eahCA8IGljaGlnZW50ZWtpXCA7CivljJblrablpInljJYgPCBrYWdha3VoZW5rYVwgOwor6Ieq5YuV6LuK56iOIDwgamlkb3VzaGF6ZWlcIDsKK+iogOiqnumBk+aWrSA8IGdvbmdvZG91ZGFuXCA7Civnmb7pnaLnm7ggPCBoeWFrdW1lbnNvdVwgOwor5LiN5L6155WlIDwgZnVzaGlucnlha3VcIDsKK+WPpOeLkCA8IGZ1cnVnaXRzdW5lXCA7Civku5jlsZ7niakgPCBmdXpva3VidXRzdVwgOwor5ouF5L+d54mp5qipIDwgdGFucG9idWtrZW5cIDsKK+WWtualreaZgumWkyA8IGVpZ3lvdWppa2FuXCA7Civli4nlvLfkuK0gPCBiZW5reW91Y2h1dVwgOwor5YaZ55yf5bizIDwgc2hhc2hpbmNob3VcIDsKK+S4gOebruaVoyA8IGljaGltb2t1c2FuXCA7CivpoqjlipvoqIggPCBmdXVyeW9rdWtlaVwgOwor5rS755So5b2iIDwga2F0c3V5b3VrZWlcIDsKK+iHquWLleaJiSA8IGppZG91dG9iaXJhXCA7CivmhJvlprvlvIHlvZMgPCBhaXNhaWJlbnRvdVwgOwor5Lya56S+56uLIDwga2Fpc2hhcml0c3VcIDsKK+e+jueahOWrjOaCqiA8IGJpdGVraWtlbicnb1wgOwor6KaL55uu5b2iIDwgbWltZWthdGFjaGlcIDsKK+S4ieWNg+S4lueVjCA8IHNhbnplbnNla2FpXCA7CivpkZHliKXmiYAgPCBrYW5iZXRzdXNob1wgOwor5aSa6YeN5pS+6YCBIDwgdGFqdXVob3Vzb3VcIDsKK+S6jOmHjeWkluS6pCA8IG5panV1Z2Fpa291XCA7Civku67lpZHntIQgPCBrYXJpa2VpeWFrdVwgOwor5qC45ouh5pWjIDwga2FrdWtha3VzYW5cIDsKK+WRqOi+uuWbvSA8IHNodXVoZW5rb2t1XCA7Civkuojlgpnlt6XkvZwgPCB5b2Jpa291c2FrdVwgOwor55+t5rOi5pS+6YCBIDwgdGFucGFob3Vzb3VcIDsKK+miqOWFiee1tuS9syA8IGZ1dWtvdXpla2thXCA7Civlv4XnhLbmgKcgPCBoaXRzdXplbnNlaVwgOwor5Li75oOF5Li7576pIDwgc2h1am91c2h1Z2lcIDsKK+S4oeabv+WVhiA8IHJ5b3VnYWVzaG91XCA7CivooYzli5XkuLvnvqkgPCBrb3Vkb3VzaHVnaVwgOwor6Ieq5YiG6Ieq6LqrIDwgamlidW5qaXNoaW5cIDsKK+iEseiJsuWJpCA8IGRhc3Nob2t1emFpXCA7CivlpJzlhYnloZfmlpkgPCB5YWtvdXRvcnlvdVwgOwor5Y+z5b+D5a6kIDwgdXNoaW5zaGl0c3VcIDsKK+WKm+mdqSA8IGNoaWthcmFnYXdhXCA7CivkuK3lpK7lj6MgPCBjaHV1b3VndWNoaVwgOwor55yf6I+M55eHIDwgc2hpbmtpbnNob3VcIDsKK+Wcp+WKm+azoiA8IGF0c3VyeW9rdWhhXCA7CivluLDnhKHku67oqqwgPCBraW11a2FzZXRzdVwgOwor5biC5aC05Y6f55CGIDwgc2hpam91Z2VucmlcIDsKK+WFqOWbveeahCA8IHplbmtva3V0ZWtpXCA7Civkuqzmu4vlnLDmlrkgPCBrZWlqaWNoaWhvdVwgOwor57iE5qKv5a2QIDwgbmF3YWJhc2hpZ29cIDsKK+Wkp+e+qeWQjeWIhiA8IHRhaWdpbWVpYnVuXCA7CivlkbzlkLjpgYvli5UgPCBrb2t5dXV1bmRvdVwgOwor6J665peL6ZqO5q61IDwgcmFzZW5rYWlkYW5cIDsKK+iLseiqnuaVmeiCsiA8IGVpZ29reW91aWt1XCA7CivosaHniZnmtbflsrggPCB6b3VnZWthaWdhblwgOwor5oiR54mp6aGUIDwgd2FnYW1vbm9nYW9cIDsKK+aXpeacrOiEs+eCjiA8IG5paG9uJydub3VlblwgOwor6aOf5aCC6LuKIDwgc2hva3Vkb3VzaGFcIDsKK+mBi+WWtuWnlOWToeS8miA8IHVuJydlaWlpbmthaVwgOwor5ZaE55+l6K2YIDwgemVuY2hpc2hpa2lcIDsKK+WSjOmtgua8ouaJjSA8IHdha29ua2Fuc2FpXCA7CivntYzllrblho3lu7ogPCBrZWllaXNhaWtlblwgOwor6ISz5LiL5Z6C5L2TIDwgbm91a2FzdWl0YWlcIDsKK+S4gOWGhuacrSA8IGljaGllbnNhdHN1XCA7CivoppbogbToppogPCBzaGljaG91a2FrdVwgOwor5Yuf6YeR6YGL5YuVIDwgYm9raW4nJ3VuZG91XCA7CivogJDnhrHpi7wgPCB0YWluZXRzdWtvdVwgOwor5Yi76Ium5YuJ5YqxIDwga29ra3ViZW5yZWlcIDsKK+aXouWpmueUt+aApyA8IGtpa29uZGFuc2VpXCA7Civpnanlkb3nmoQgPCBrYWt1bWVpdGVraVwgOwor5rK75rC05bel5LqLIDwgY2hpc3Vpa291amlcIDsKK+Wwj+S8keatoiA8IHNob3VreXV1c2hpXCA7Civml6XmnKzkurroq5YgPCBuaWhvbmppbnJvblwgOwor5aW95Y+W57WEIDwga291dG9yaWt1bWlcIDsKK+WNmuWlleWuvyA8IGJha3VjaGl5YWRvXCA7Civou43kuovlhazlgrUgPCBndW5qaWtvdXNhaVwgOwor5Y2B5Lq65Y2B6ImyIDwganV1bmludG9pcm9cIDsKK+eEoemFjeS8muekviA8IG11aGFpZ2Fpc2hhXCA7CivohLPosqfooYAgPCBub3VoaW5rZXRzdVwgOwor5a625peP5omL5b2TIDwga2F6b2t1dGVhdGVcIDsKK+a0l+ekvOW8jyA8IHNlbnJlaXNoaWtpXCA7CivnlLLpqqjmlocgPCBrb3Vrb3RzdWJ1blwgOwor5pel6YqA5Yi4IDwgbmljaGlnaW5rZW5cIDsKK+e+hemHneebpOW6pyA8IHJhc2hpbmJhbnphXCA7Civnpo/npYnmqZ/lmaggPCBmdWt1c2hpa2lraVwgOwor6LKn5rCR56qfIDwgaGlubWlua3V0c3VcIDsKK+WlieeMrueJqSA8IGhvdWtlbmJ1dHN1XCA7Civlrp/mpa3lrrYgPCBqaXRzdWd5b3VrYVwgOwor6IO4566X55SoIDwgbXVuZXphbicneW91XCA7CivmmqvlrprkuojnrpcgPCB6YW50ZWl5b3NhblwgOwor6Ieq6LK75Ye654mIIDwgamloaXNodXBwYW5cIDsKK+WGrOacqOeriyA8IGZ1eXVrb2RhY2hpXCA7CivluLjnlKjmvKLlrZcgPCBqb3V5b3VrYW5qaVwgOwor57WQ57Su57O4IDwga2Vzc2F0c3VzaGlcIDsKK+eOi+S+r+iytOaXjyA8IG91a291a2l6b2t1XCA7CivpgIblrqPkvJ0gPCBneWFrdXNlbmRlblwgOwor5Lq65L2T5qih5Z6LIDwgamludGFpbW9rZWlcIDsKK+murue0heiJsiA8IHNlbmtvdXNob2t1XCA7CivlhaXlm73nqI4gPCBueXV1a29rdXplaVwgOwor5pel6KW/6L6e5YW4IDwgbmlzc2Vpaml0ZW5cIDsKK+engeWEgCA8IHdhdGFrdXNoaWdpXCA7CivmhJ/mg4Xnp7vlhaUgPCBrYW5qb3Vpbnl1dVwgOwor5ouh5aSn6Y+hIDwga2FrdWRhaWt5b3VcIDsKK+WcsOaWueertummrCA8IGNoaWhvdWtlaWJhXCA7CivpgZPmpb3ogIUgPCBkb3VyYWt1bW9ub1wgOwor5aWz5oi/5b25IDwgbnlvdWJvdXlha3VcIDsKK+adoee0hOWbvSA8IGpvdXlha3Vrb2t1XCA7CivlipvotrMgPCBjaGlrYXJhYXNoaVwgOwor57WM5riI5Yq55p6cIDwga2VpemFpa291a2FcIDsKK+S7o+abv+eJqSA8IGRhaXRhaWJ1dHN1XCA7Civmt7flh53lnJ8gPCBrb25rdXJpemV0b1wgOwor5rCR5LqL6Ki06KifIDwgbWluamlzb3Nob3VcIDsKK+WMluWtpuiomOWPtyA8IGthZ2FrdWtpZ291XCA7Civnp4HkvpsgPCB3YXRhc2hpZG9tb1wgOwor5Y+C5Yqg5oSP6K2YIDwgc2Fua2Fpc2hpa2lcIDsKK+aIpuaZguS9k+WItiA8IHNlbmppdGFpc2VpXCA7Civoh6rnlLHluILloLQgPCBqaXl1dXNoaWpvdVwgOwor5Ya35oi/5a6M5YKZIDwgcmVpYm91a2FuYmlcIDsKK+iHquW3seWPjOWvviA8IGppa29zb3V0c3VpXCA7Civmtojmr5LliaQgPCBzaG91ZG9rdXphaVwgOwor5Yqb6LKgIDwgY2hpa2FyYW1ha2VcIDsKK+eBq+eHteaOm+W4gyA8IGtvdGF0c3VnYWtlXCA7CivkuIfog73olqwgPCBtYW4nJ25vdXlha3VcIDsKK+S/oeaGkeaApyA8IHNoaW5weW91c2VpXCA7CivluIzmnJvkvqHmoLwgPCBraWJvdWtha2FrdVwgOwor5YiX5Lyd5L2TIDwgcmV0c3VkZW50YWlcIDsKK+WPo+WPr+eskSA8IGt1Y2hpb2thc2hpXCA7Civpgbjlr77mnKzpg6ggPCBzZW50YWlob25idVwgOwor5YWI6aCt5omT6ICFIDwgc2VudG91ZGFzaGFcIDsKK+Wun+eUn+a0uyA8IGppc3NlaWthdHN1XCA7CivlkI3liY3nqbrplpMgPCBuYW1hZWt1dWthblwgOwor55m+5aeT5a62IDwgaHlha3VzaG91eWFcIDsKK+a1heiNiea1t+iLlCA8IGFzYWt1c2Fub3JpXCA7Civkuovmpa3mnKzpg6ggPCBqaWd5b3Vob25idVwgOwor55CG6KuW6ZeY5LqJIDwgcmlyb250b3Vzb3VcIDsKK+S6uuWPo+Wil+WKoCA8IGppbmtvdXpvdWthXCA7CivlpJbkuqTovp7ku6QgPCBnYWlrb3VqaXJlaVwgOwor5ZCM6Z+z55Ww576p6KqeIDwgZG91b24nJ2lnaWdvXCA7CivmsI/lp5PliLbluqYgPCBzaGlzZWlzZWlkb1wgOwor5LiA5bGA6YOoIDwgaWNoaWt5b2t1YnVcIDsKK+e4hOaWh+aZguS7oyA8IGpvdW1vbmppZGFpXCA7CivplpPkuIDpq6ogPCBrYW4nJ2lwcGF0c3VcIDsKK+S4lueVjOWkp+aIpiA8IHNla2FpdGFpc2VuXCA7CivmqZ/li5XmvJTnv5IgPCBraWRvdWVuc2h1dVwgOwor6Ieq6K2m5Zuj5ZOhIDwgamlrZWlkYW4nJ2luXCA7Civpm7vmsJfmirXmipcgPCBkZW5raXRlaWtvdVwgOwor6Y6n5LiA5YW3IDwgeW9yb2lpY2hpZ3VcIDsKK+eUuuS6uueJqSA8IGNob3VuaW5tb25vXCA7CivpgJroqLPlrpggPCB0c3V1eWFrdWthblwgOwor5b+F6KaB5oKqIDwgaGl0c3V5b3Vha3VcIDsKK+mJhOmBk+e2siA8IHRldHN1ZG91bW91XCA7Civljp/nlKPniakgPCBnZW5zYW5idXRzdVwgOwor5Zmo5qW95puyIDwga2lnYWt1a3lva3VcIDsKK+W/heimgeaApyA8IGhpdHN1eW91c2VpXCA7CivpmLLpn7Poo4Xnva4gPCBib3VvbnNvdWNoaVwgOwor5Y2K6Z2i6K2YIDwgaGFubWVuc2hpa2lcIDsKK+awtOa+hCA8IG1penVzdW1hc2hpXCA7Civlj5bmibEgPCB0b3JpYXRzdWthaVwgOwor5aSi5b+D5ZywIDwgeXVtZWdva29jaGlcIDsKK+iyoOWCteWQiOioiCA8IGZ1c2FpZ291a2VpXCA7Civku4rpgLHkuK0gPCBrb25zaHV1Y2h1dVwgOwor6Kmx5LiL5omLIDwgaGFuYXNoaWJldGFcIDsKK+mBiui7jeiomOiAhSA8IHl1dWd1bmtpc2hhXCA7CivkvqHlgKTkvZPns7sgPCBrYWNoaXRhaWtlaVwgOwor5LqM6YeN57WQ5amaIDwgbmlqdXVrZWtrb25cIDsKK+S4gOmVt+S4gOefrSA8IGl0Y2hvdWl0dGFuXCA7CivorbfpgIHoiLnlm6MgPCBnb3NvdXNlbmRhblwgOwor54qv6KGM54++5aC0IDwgaGFua291Z2VuYmFcIDsKK+aEj+imi+W6g+WRiiA8IGlrZW5rb3Vrb2t1XCA7CivlsI/kuZfnmoQgPCBzaG91am91dGVraVwgOwor5ZaE5Zug5ZaE5p6cIDwgemVuJydpbnplbmthXCA7Civnq4vohJrngrkgPCByaWtreWFrdXRlblwgOwor6YmE5YWcIDwgdGV0c3VrYWJ1dG9cIDsKK+eEoeS6uuWcsOW4ryA8IG11amluY2hpdGFpXCA7CivntYzllrbou6Lmj5sgPCBrZWllaXRlbmthblwgOwor5LiN5L+h5a6fIDwgZnVzaGluaml0c3VcIDsKK+iyqeWjsuapn+S8miA8IGhhbmJhaWtpa2FpXCA7CivkuonlparmiKYgPCBzb3VkYXRzdXNlblwgOwor5ZWG5a2m5aOrIDwgc2hvdWdha3VzaGlcIDsKK+S4iuWxi+aVtyA8IGthbWl5YXNoaWtpXCA7Civoi6XlpKflsIYgPCB3YWthZGFpc2hvdVwgOwor6YGg6ZqU5pON5L2cIDwgZW5rYWt1c291c2FcIDsKK+aTjeiIteWupCA8IHNvdWRhc2hpdHN1XCA7CivmiJDkurrlvI8gPCBzZWlqaW5zaGlraVwgOwor5oWj55So6Kqe5Y+lIDwga2FuJyd5b3Vnb2t1XCA7CivmtrLkvZPnqbrmsJcgPCBla2l0YWlrdXVraVwgOwor5paw6Z2i55uuIDwgc2hpbm1lbm1va3VcIDsKK+azqOaWh+acjSA8IGNodXVtb25mdWt1XCA7CivkuIrmo5/lvI8gPCBqb3V0b3VzaGlraVwgOwor6LWk6YqF6ImyIDwgc2hha3Vkb3Vpcm9cIDsKK+WHuuWIg+WMheS4gSA8IGRlYmFib3VjaG91XCA7CivlkJHlrablv4MgPCBrb3VnYWt1c2hpblwgOwor5riH5pyb6ICFIDwga2F0c3Vib3VzaGFcIDsKK+Wcn+iumuacrOe3miA8IGRvc2FuaG9uc2VuXCA7CivosqHmlL/mlK/mj7QgPCB6YWlzZWlzaGllblwgOwor5a6u5bu355S75a62IDwga3l1dXRlaWdha2FcIDsKK+Wft+mBlOWQjyA8IHNoaXR0YXRzdXJpXCA7CivmnIDlvozliJfou4ogPCBzYWlnb3Jlc3NoYVwgOwor55CG5bel5a2m6YOoIDwgcmlrb3VnYWt1YnVcIDsKK+S/neeuoeS8muekviA8IGhva2FuZ2Fpc2hhXCA7CivkuZflv4PlnLAgPCBub3JpZ29rb2NoaVwgOwor6YWN5ZCI56aB5b+MIDwgaGFpZ291a2lua2lcIDsKK+W8lOelreaWmSA8IGNob3VzYWlyeW91XCA7CivpgY7libDmipXos4cgPCBrYWpvdXRvdXNoaVwgOwor5a626ZW35Yi25bqmIDwga2FjaG91c2VpZG9cIDsKK+WPr+iBtOi3nemboiA8IGthY2hvdWt5b3JpXCA7CivkuIvmpJzliIYgPCBzaGl0YWtlbmJ1blwgOwor6Kaq6aGe57iB6ICFIDwgc2hpbnJ1aWVuamFcIDsKK+mWi+WCrOW8jyA8IGthaXNhaXNoaWtpXCA7CivnlLDoiI7lqJggPCBpbmFrYW11c3VtZVwgOwor566x54Gr6YmiIDwgaGFrb2hpYmFjaGlcIDsKK+eEoeeQhuW/g+S4rSA8IG11cmlzaGluanV1XCA7Civlia/pppbnm7ggPCBmdWt1c2h1c2hvdVwgOwor5bm06LOA6JGJ5pu4IDwgbmVuZ2FoYWdha2lcIDsKK+aVteaEvuW/gyA8IHRla2lnYWlzaGluXCA7Civph4jnqbrmtbcgPCBzaGFrdWt1dWthaVwgOwor6YCj6YKm5LqI566XIDwgcmVucG91eW9zYW5cIDsKK+e1hOe5lOelqCA8IHNvc2hpa2loeW91XCA7Civlh7rouqvogIUgPCBzaHVzc2hpbnNoYVwgOwor5Ym15L6h5a2m5LyaIDwgc291a2FnYWtrYWlcIDsKK+S7leS6i+mHjyA8IHNoaWdvdG9yeW91XCA7CivljYrmnIjlvaIgPCBoYW5nZXRzdWtlaVwgOwor5YiG5a2Q6KqsIDwgYnVuc2hpc2V0c3VcIDsKK+WNiuaciOW8gSA8IGhhbmdldHN1YmVuXCA7CivmraPnrZTnjocgPCBzZWl0b3VyaXRzdVwgOwor5Yip5a2Q6KOc57WmIDwgcmlzaGlob2t5dXVcIDsKK+Wto+evgOeahCA8IGtpc2V0c3V0ZWtpXCA7CivmsLfmnpUgPCBrb29yaW1ha3VyYVwgOwor5rC05p+xIDwgbWl6dWJhc2hpcmFcIDsKK+agueacrOWOn+eQhiA8IGtvbnBvbmdlbnJpXCA7Civlronlhajkv53pmpwgPCBhbnplbmhvc2hvdVwgOwor5Y6f5a2Q6KqsIDwgZ2Vuc2hpc2V0c3VcIDsKK+WBpeW6t+S/nemZuiA8IGtlbmtvdWhva2VuXCA7Civmmpfpu5LmmYLku6MgPCBhbmtva3VqaWRhaVwgOwor5LiW5Luj5Lqk5LujIDwgc2VkYWlrb3V0YWlcIDsKK+elnuWYl+elrSA8IGthbicnbmFtZXNhaVwgOwor5qGn6Iie5Y+wIDwgaGlub2tpYnV0YWlcIDsKK+i7oumAgembu+ipsSA8IHRlbnNvdWRlbndhXCA7Civlr77lsYDogIUgPCB0YWlreW9rdXNoYVwgOwor6LKd5q676aqoIDwga2FpZ2FyYWJvbmVcIDsKK+WNg+S4oeeusSA8IHNlbnJ5b3ViYWtvXCA7CivmmK3lkozmmYLku6MgPCBzaG91d2FqaWRhaVwgOwor57SU5Y+O5YWlIDwganVuc2h1dW55dXVcIDsKK+eJqeeQhueahCA8IGJ1dHN1cml0ZWtpXCA7CivmnpfnlKPniakgPCByaW5zYW5idXRzdVwgOwor56qB54S25q27IDwgdG90c3V6ZW5zaGlcIDsKK+S9v+eUqOioseWPryA8IHNoaXlvdWt5b2thXCA7CivoqLzlj5bms5UgPCBzaG91dG9yaWhvdVwgOwor5q205Y+y55qEIDwgcmVraXNoaXRla2lcIDsKK+e1hOe5lOeahCA8IHNvc2hpa2l0ZWtpXCA7CivotIjlkYjlvI8gPCB6b3V0ZWlzaGlraVwgOwor56mN6LyJ6YePIDwgc2VraXNhaXJ5b3VcIDsKK+iHqueZuueahCA8IGppaGF0c3V0ZWtpXCA7Civlt7EgPCB0c3VjaGlub3RvXCA7CivlsaEgPCBzaGliYXNoaWJhXCA7CivorIAgPCBoYWthcmlnb3RvXCA7Civnhp8gPCB0c3VrdWR6dWt1XCA7CivlmLQgPCBrdWNoaWJhc2hpXCA7CivjgIUgPCBrdXJpa2Flc2hpXCA7CivlnJ/nn7PmtYEgPCBkb3Nla2lyeXV1XCA7CivluILnlLrmnZEgPCBzaGljaG91c29uXCA7Civpn7Pmpb3mmKDnlLsgPCBvbmdha3VlaWdhXCA7Civpo5/loanmsLQgPCBzaG9rdWVuc3VpXCA7CivmvaTmu5HmsrkgPCBqdW5rYXRzdXl1XCA7CivmtYHmmJ/nvqQgPCByeXV1c2VpZ3VuXCA7CivlpZHntITph5EgPCBrZWl5YWt1a2luXCA7CivmsbrorbDmlocgPCBrZXRzdWdpYnVuXCA7CivokrjnlZnphZIgPCBqb3VyeXV1c2h1XCA7Civph53okYnmqLkgPCBzaGluJyd5b3VqdVwgOwor54yb5YuJ5by3IDwgbW91YmVua3lvdVwgOwor5a6H5a6Z6YGK5rOzIDwgdWNodXV5dXVlaVwgOwor5rex5Yi75YyWIDwgc2hpbmtva3VrYVwgOwor5YiH6YCaIDwga2lyaWRvb3NoaVwgOwor5omA5b6X6aGUIDwgdG9rb3JvZWdhb1wgOwor5b6h5a6i5qeYIDwgb2t5YWt1c2FtYVwgOwor6JS15pu456WoIDwgem91c2hvaHlvdVwgOwor5Lq65bel6ZuqIDwgamlua291eXVraVwgOwor5ZCM6IW55LuUIDwgZG91ZnVrdXNoaVwgOwor5bCE5YCW5b+DIDwgc2hha291c2hpblwgOwor5L+d5YGl5Yi25bqmIDwgaG9rZW5zZWlkb1wgOwor5rqW5YKZ6YGL5YuVIDwganVuYml1bmRvdVwgOwor5Luj6K2w5Yi25bqmIDwgZGFpZ2lzZWlkb1wgOwor5Y2a5aOr5Y+3IDwgaGFrdXNoaWdvdVwgOwor5YWl5ryB6ICFIDwgbnl1dWd5b3NoYVwgOwor5Yil6Zmk5qipIDwgYmV0c3Vqb2tlblwgOwor5oim6ZeY5pyNIDwgc2VudG91ZnVrdVwgOwor5qih5Z6L5Zyw5ZuzIDwgbW9rZWljaGl6dVwgOwor6aSK6baP5qWtIDwgeW91a2VpZ3lvdVwgOwor6K2w5rG65qipIDwgZ2lrZXRzdWtlblwgOwor5YWl5ZyS5paZIDwgbnl1dWVucnlvdVwgOwor5YSq5YWI55qEIDwgeXV1c2VudGVraVwgOwor54Sh6Iy26Ium6Iy2IDwgbXVjaGFrdWNoYVwgOwor5ZCM5LiA6KaWIDwgZG91aXRzdXNoaVwgOwor5Y+k5b6A5LuK5p2lIDwga29vdWtvbnJhaVwgOwor6Zuj6KGM6YGTIDwgbmFuZ3lvdWRvdVwgOwor6YG65aSx5ZOBIDwgaXNoaXRzdWhpblwgOwor6aOf5paH5YyWIDwgc2hva3VidW5rYVwgOwor6a+w6autIDwgbmFtYXp1aGlnZVwgOwor5rCR5Li75Zu9IDwgbWluc2h1a29rdVwgOwor5YaN5biw54axIDwgc2Fpa2luZXRzdVwgOwor54Kt5YyW54mpIDwgdGFua2FidXRzdVwgOwor5pat54mH55qEIDwgZGFucGVudGVraVwgOwor5rq65q275L2TIDwgZGVraXNoaXRhaVwgOwor5rW35rSL5a2mIDwga2FpeW91Z2FrdVwgOwor5q2v56We57WMIDwgc2hpc2hpbmtlaVwgOwor5Y+j5Y+jIDwga3VjaGlndWNoaVwgOwor5Y+N5oqX55qEIDwgaGFua291dGVraVwgOwor6ZaL5YKs5Zu9IDwga2Fpc2Fpa29rdVwgOwor5b6h5Lih6KaqIDwgZ29yeW91c2hpblwgOwor5pGp5Yip5pSv5aSpIDwgbWFyaXNoaXRlblwgOwor5L+u5q2j5rayIDwgc2h1dXNlaWVraVwgOwor5Yid6KmjIDwgaGF0c3Vtb3VkZVwgOwor55+z55WzIDwgaXNoaWRhdGFtaVwgOwor5Lq654K65reY5rGwIDwgamluJydpdG91dGFcIDsKK+WOmueUn+ecgSA8IGtvdXNlaXNob3VcIDsKK+mAhuiqrCA8IGd5YWt1c2V0c3VcIDsKK+mrmOe0mui7iiA8IGtvdWt5dXVzaGFcIDsKK+i7n+aWh+WtpiA8IG5hbmJ1bmdha3VcIDsKK+eovOWDjeaZgumWkyA8IGthZG91amlrYW5cIDsKK+ippuS9nOWTgSA8IHNoaXNha3VoaW5cIDsKK+ims+imp+aWmSA8IGthbnJhbnJ5b3VcIDsKK+S4jeS/oeS7uyA8IGZ1c2hpbicnbmluXCA7CivojLjpm7IgPCBraW5va29ndW1vXCA7Civov5HpgZMgPCBjaGlrYW1pY2hpXCA7CivkuInohJrmnrYgPCBzYW5reWFrdWthXCA7CivlpInmhYvnmoQgPCBoZW50YWl0ZWtpXCA7CivljLvnmYLliLbluqYgPCBpcnlvdXNlaWRvXCA7Civov5Hov5EgPCBjaGlrYWRqaWthXCA7CivkuZ7pq5joqZUgPCBrb3Vrb3VoeW91XCA7CivmsLTlv4MgPCBtaXp1Z29rb3JvXCA7Civmr5vmsIjoi5QgPCBtb3VzZW5nb2tlXCA7CivpnaLnvbXnvbXlgJIgPCBtZW5iYWJhdG91XCA7CivkuInlsLrluK8gPCBzYW5qYWt1b2JpXCA7Civlv5zmgKXnrZYgPCBvdWt5dXVzYWt1XCA7CivnoILnhZkgPCBzdW5ha2VtdXJpXCA7CivkurrpgZPnmoQgPCBqaW5kb3V0ZWtpXCA7CivmtbfphbjmvL8gPCB1bWlob296dWtpXCA7Civmib/oqo3nirYgPCBzaG91bmluam91XCA7Civpmo/nrYblrrYgPCB6dWloaXRzdWthXCA7CivmoLjono3lkIggPCBrYWt1eXV1Z291XCA7Civmir3pgbjliLggPCBjaHV1c2Vua2VuXCA7Civlt53prZogPCBrYXdhemFrYW5hXCA7CivlhY3oqLHoqLwgPCBtZW5reW9zaG91XCA7Civnvo7lrrnooZMgPCBiaXlvdWp1dHN1XCA7Civoo4/osrjlsYsgPCB1cmFnYXNoaXlhXCA7CivpmLLmr5LpnaIgPCBib3Vkb2t1bWVuXCA7CivlvIHmhbbon7kgPCBiZW5rZWlnYW5pXCA7Civlja/lubQgPCB1c2FnaWRvc2hpXCA7Civkuoznt5rlvI8gPCBuaXNlbnNoaWtpXCA7Civlv4XopoHkuosgPCBoaXRzdXlvdWppXCA7CivnmbrmmI7lrrYgPCBoYXRzdW1laWthXCA7Civni6zoo4HogIUgPCBkb2t1c2Fpc2hhXCA7CivnnLrmnJvmqKkgPCBjaG91Ym91a2VuXCA7CivlhoXpgJrogIUgPCBuYWl0c3V1c2hhXCA7CivkuK3plbfmnJ8gPCBjaHV1Y2hvdWtpXCA7CivpgbjmjJnpgZXlj40gPCBzZW5reW9paGFuXCA7Civnj77osaHoq5YgPCBnZW5zaG91cm9uXCA7CivprZTooZPluKsgPCBtYWp1dHN1c2hpXCA7Civlm73lnJ/luoEgPCBrb2t1ZG9jaG91XCA7CivnqY3liIbms5UgPCBzZWtpYnVuaG91XCA7Civkv6Hlj7fnga8gPCBzaGluZ291dG91XCA7CivljYrpmbDpmb0gPCBoYW4nJ2luJyd5b3VcIDsKK+aXpeacrOaZgumWkyA8IG5paG9uamlrYW5cIDsKK+i+u+i+uyA8IHRzdWppdHN1amlcIDsKK+W5s+mdoumPoSA8IGhlaW1lbmt5b3VcIDsKK+WMl+aelSA8IGtpdGFtYWt1cmFcIDsKK+WuhemFjeS+vyA8IHRha3VoYWliaW5cIDsKK+iQjue4rueXhyA8IGlzaHVrdXNob3VcIDsKK+WkqeebruWxsSA8IHRlbm1va3V6YW5cIDsKK+WBj+W5s+i2syA8IGhlbnBlaXNva3VcIDsKK+azleWtpuWjqyA8IGhvdWdha3VzaGlcIDsKK+WltOmat+WItuW6piA8IGRvcmVpc2VpZG9cIDsKK+ani+mAoOS/neaMgSA8IGtvdXpvdWhvamlcIDsKK+eiuuWftyA8IGtha3VzaGl0c3VcIDsKK+awt+WupCA8IGh5b3VzaGl0c3VcIDsKK+eZuueFmeetkiA8IGhhdHN1ZW50b3VcIDsKK+WBtOmgreiRiSA8IHNva3V0b3V5b3VcIDsKK+Wkqeeah+adryA8IHRlbicnbm91aGFpXCA7CivntLDog57moLggPCBzYWlib3VrYWt1XCA7Civoh6rli5Xou4rljJYgPCBqaWRvdXNoYWthXCA7Civni6zmk4XloLQgPCBkb2t1c2Vuam91XCA7Civml6XmnKzmm7jntIAgPCBuaWhvbnNob2tpXCA7Civoo73pi7zmpa0gPCBzZWlrb3VneW91XCA7CivlhYnnhrHosrsgPCBrb3VuZXRzdWhpXCA7CivmhJvpg7flv4MgPCBhaWt5b3VzaGluXCA7CivmsbrliKUgPCBrZXRzdWJldHN1XCA7CivnlJ/nlKPpq5ggPCBzZWlzYW5kYWthXCA7CivmtbfmsLTmtbQgPCBrYWlzdWl5b2t1XCA7Civku67nuYPluK8gPCBrYXJpaG91dGFpXCA7Civlj4rnrKzogIUgPCBreXV1ZGFpc2hhXCA7CivlvozmioAgPCB1c2hpcm93YXphXCA7CivljY3lt7QgPCBtYW5qaWRvbW9lXCA7CivnsbPpmbjou40gPCBiZWlyaWt1Z3VuXCA7Civlv4PlrqQgPCBzaGluc2hpdHN1XCA7Civms6jmloflk4EgPCBjaHV1bW9uaGluXCA7CivmgZLluLjnmoQgPCBrb3Vqb3V0ZWtpXCA7CivkurrlvaLluKsgPCBuaW5neW91c2hpXCA7CivmprTmlaPlvL4gPCByeXV1c2FuZGFuXCA7Civnmbrpm7vmqZ8gPCBoYXRzdWRlbmtpXCA7CivkuI3nqbrmiJDlsLEgPCBmdWt1dWpvdWp1XCA7Civml6fluILooZcgPCBreXV1c2hpZ2FpXCA7CivoprPopqfluK0gPCBrYW5yYW5zZWtpXCA7Civlrp/nlKjljJYgPCBqaXRzdXlvdWthXCA7CivogIPnj77lraYgPCBrb3VnZW5nYWt1XCA7CivlubPlkozpgYvli5UgPCBoZWl3YXVuZG91XCA7CivlhazlrprmranlkIggPCBrb3V0ZWlidWFpXCA7CivlpKnooaPnhKHnuKsgPCB0ZW4nJ2ltdWhvdVwgOwor6ZaL5YKs5LitIDwga2Fpc2FpY2h1dVwgOwor55CG6Lev5pW054S2IDwgcmlyb3NlaXplblwgOwor552A6ImyIDwgY2hha3VzaG9rdVwgOwor5Y2X5Lqs57m75a2QIDwgbmFua2luanVzdVwgOwor5YaG6Y+hIDwgbWFydWthZ2FtaVwgOwor55Sj5qWt55WMIDwgc2FuZ3lvdWthaVwgOwor6YGj55u0IDwgeWFyaW5hb3NoaVwgOwor6Jma54Sh5Li7576pIDwga3lvbXVzaHVnaVwgOwor5bq25rCR5YqHIDwgc2hvbWluZ2VraVwgOwor5LiN5LuV5pyrIDwgZnVzaGltYXRzdVwgOwor5ZGG5rCX6ICFIDwgdXRzdWtlbW9ub1wgOwor6Kej5YmW5a2mIDwga2FpYm91Z2FrdVwgOwor5Luu5Z+L6JGsIDwga2FyaW1haXNvdVwgOwor6Yej6YGT5YW3IDwgdHN1cmlkb3VndVwgOwor55Sf55Sj6aGNIDwgc2Vpc2FuZ2FrdVwgOwor5oKy5YqH55qEIDwgaGlnZWtpdGVraVwgOwor552A6ISxIDwgY2hha3VkYXRzdVwgOwor5YyX5rC35rSLIDwgaG9wcHlvdXlvdVwgOwor5Y2B5LqM5pyIIDwganV1bmlnYXRzdVwgOwor5ZCM5a2m5bm0IDwgZG91Z2FrdW5lblwgOwor5b2X5pifIDwgaG91a2lib3NoaVwgOwor54++5Luj55qEIDwgZ2VuZGFpdGVraVwgOwor5aSi5Yik5patIDwgeXVtZWhhbmRhblwgOwor5bKz5Y+L5LyaIDwgZ2FrdXl1dWthaVwgOwor5YuY5a6a5bC7IDwga2Fuam91amlyaVwgOwor5YaG6YmLIDwgbWFydWdhbicnbmFcIDsKK+W+jOW+jCA8IG5vY2hpbm9jaGlcIDsKK+WQiOWuv+aJgCA8IGdhc3NodWt1am9cIDsKK+igseaDkeeahCA8IGtvd2FrdXRla2lcIDsKK+epuumWk+i7uCA8IGt1dWthbmppa3VcIDsKK+S4remWk+WxpCA8IGNodXVrYW5zb3VcIDsKK+eJuee0mumFkiA8IHRva2t5dXVzaHVcIDsKK+aoqeWogeS4u+e+qSA8IGtlbicnaXNodWdpXCA7CivljbjllYYgPCBvcm9zaGlzaG91XCA7CivnvbLlkI3lm70gPCBzaG9tZWlrb2t1XCA7CivovrvopIQgPCB0c3VqaXRzdW1hXCA7CivmsJfngo7kuIfkuIggPCBraWVuYmFuam91XCA7CivmvJTliofnmoQgPCBlbmdla2l0ZWtpXCA7CivkuqTmiKblm70gPCBrb3VzZW5rb2t1XCA7CivlpJblvaLnmoQgPCBnYWlrZWl0ZWtpXCA7CivkuK3plpPlrZAgPCBjaHV1a2Fuc2hpXCA7CivoirHpsLkgPCBoYW5hZ2F0c3VvXCA7CivmlbTmtYHlrZAgPCBzZWlyeXV1c2hpXCA7CivlhKrlhYjmoKogPCB5dXVzZW5rYWJ1XCA7Civnn63lhbXmgKUgPCB0YW5wZWlreXV1XCA7CivlvIHmhbbnuJ4gPCBiZW5rZWlqaW1hXCA7CivniaHkuLnpm6ogPCBib3RhbicneXVraVwgOwor5pac5qC85oCnIDwgc2hha2FrdXNlaVwgOwor6ba05Zi0IDwgdHN1cnVoYXNoaVwgOwor6auY6KeS56CyIDwga291a2FrdWhvdVwgOwor5q205bm06b2iIDwgcmVraW5lbnJlaVwgOwor54Sh5YiG5YilIDwgbXVmdW5iZXRzdVwgOwor5Yi65oif5oCnIDwgc2hpZ2VraXNlaVwgOwor5YWI6ZqjIDwgc2FraWRvbmFyaVwgOwor6YCa6KGM56iOIDwgdHN1dWtvdXplaVwgOwor6LaF6Ieq54S2IDwgY2hvdXNoaXplblwgOwor5YmK5rC35qmfIDwgc2FrdWh5b3VraVwgOwor5aWR57SE6ICFIDwga2VpeWFrdXNoYVwgOwor5aSc55uX6JmrIDwgeW90b3VtdXNoaVwgOwor5LiJ5LiJ5Lmd5bqmIDwgc2Fuc2Fua3Vkb1wgOwor5a6J5YWo546HIDwgYW56ZW5yaXRzdVwgOwor5Y6f5a2Q55eHIDwgZ2Vuc2hpc2hvdVwgOwor5Y6f5a2Q55eFIDwgZ2Vuc2hpYnlvdVwgOwor6KiI566X5qmf6ZaTIDwga2Vpc2Fua2ltYVwgOwor5a2j56+A5oSfIDwga2lzZXRzdWthblwgOwor5pen5YuY5a6aIDwga3l1dWthbmpvdVwgOwor5Luu6Kq/5Y2wIDwga2FyaWNob3VpblwgOwor56S85YSA5L2c5rOVIDwgcmVpZ2lzYWhvdVwgOwor5ruF6Iy26Ium6Iy2IDwgbWVjaGFrdWNoYVwgOwor5LmX6LuK6LODIDwgam91c2hhY2hpblwgOwor5bem6LazIDwgaGlkYXJpYXNoaVwgOwor6Ziy6Jmr5YmkIDwgYm91Y2h1dXphaVwgOwor5b6X5aSxIDwgdG9rdXNoaXRzdVwgOwor5qC45oim5LqJIDwga2FrdXNlbnNvdVwgOwor55m65aOy5pelIDwgaGF0c3ViYWliaVwgOwor6ICz5LiL6IW654KOIDwgamlrYXNlbicnZW5cIDsKK+Wumui2s+aVsCA8IHRlaXNva3VzdXVcIDsKK+efs+ayueWNseapnyA8IHNla2l5dWtpa2lcIDsKK+mHjOelnualvSA8IHNhdG9rYWd1cmFcIDsKK+WShOOAhSA8IHRvdHN1dG90c3VcIDsKK+iWqeaRqeiKiyA8IHNhdHN1bWFpbW9cIDsKK+WnpumAmue9qiA8IGthbnRzdXV6YWlcIDsKK+Wxseael+WtpiA8IHNhbnJpbmdha3VcIDsKK+WJr+itsOmVtyA8IGZ1a3VnaWNob3VcIDsKK+WIkeS6i+S6i+S7tiA8IGtlaWppamlrZW5cIDsKK+iIquepuueXhSA8IGtvdWt1dWJ5b3VcIDsKK+a8oui2iumfsyA8IGthbicnZXRzdW9uXCA7Civlh7rlhaXlj6MgPCBkZWlyaWd1Y2hpXCA7CivliKnnlKjkvqHlgKQgPCByaXlvdWthY2hpXCA7CivphZLlh6YgPCBzYWtlZG9rb3JvXCA7Civku67ntI3nqI4gPCBrYXJpbm91emVpXCA7Civnt4/lkIjnmoQgPCBzb3Vnb3V0ZWtpXCA7Civku7Loo4HogIUgPCBjaHV1c2Fpc2hhXCA7Civlh7rlsZXogIUgPCBzaHV0dGVuc2hhXCA7CivmtLvlrZfkvZMgPCBrYXRzdWppdGFpXCA7CivogpjpiYTnoLIgPCBoaWppZGVwcG91XCA7Civlr77ouaDlnLAgPCB0YWlzZWtpY2hpXCA7Civlm57nt5rosqDojbcgPCBrYWlzZW5mdWthXCA7Civlu7vmvJXmpa0gPCBrYWlzb3VneW91XCA7CivkvY7pmpznoo0gPCB0ZWlzaG91Z2FpXCA7CivmrbPmnIggPCB0b3NoaXRzdWtpXCA7CivmrovkvZnpoY0gPCB6YW4nJ3lvZ2FrdVwgOwor5qiq6LuKIDwgeW9rb2d1cnVtYVwgOwor5rK755mC5rOVIDwgY2hpcnlvdWhvdVwgOwor5qmf5qKw5rK5IDwga2lrYWlhYnVyYVwgOwor6Ieq55m65oCnIDwgamloYXRzdXNlaVwgOwor5L+h5Y+35omLIDwgc2hpbmdvdXNodVwgOwor6aaW5bC+5LiA6LKrIDwgc2h1Ymlpa2thblwgOwor5Yy755mC5L+d6Zm6IDwgaXJ5b3Vob2tlblwgOwor5qCD5pyo55yMIDwgdG9jaGlnaWtlblwgOwor6Kq/5p+756WoIDwgY2hvdXNhaHlvdVwgOwor5q2m6KOF6Kej6ZmkIDwgYnVzb3VrYWlqb1wgOwor57eo5bm05Y+yIDwgaGVuJyduZW5zaGlcIDsKK+Wcn+edgOawkSA8IGRvY2hha3VtaW5cIDsKK+WNk+WHuiA8IHRha3VzaHV0c3VcIDsKK+mAsuWRiOacrCA8IHNoaW50ZWlib25cIDsKK+eRnuWuneeroCA8IHp1aWhvdXNob3VcIDsKK+ihqOaEj+aWh+WtlyA8IGh5b3VpbW9uamlcIDsKK+iQvemBuOiAhSA8IHJha3VzZW5zaGFcIDsKK+WGheWLmOWumiA8IHVjaGlrYW5qb3VcIDsKK+Wliee0jemhjSA8IGhvdW5vdWdha3VcIDsKK+W8j+aXpSA8IHNoaWtpaml0c3VcIDsKK+e0sOiDnuWtpiA8IHNhaWJvdWdha3VcIDsKK+mDveW4guWbveWutiA8IHRvc2hpa29ra2FcIDsKK+aenOWun+W6lyA8IGthaml0c3V0ZW5cIDsKK+eEoeeCuuW+kumjnyA8IG11aXRvc2hva3VcIDsKK+aYoOeUu+mfs+alvSA8IGVpZ2Fvbmdha3VcIDsKK+Wun+aZgumWkyA8IGppdHN1amlrYW5cIDsKK+WFpea8geaoqSA8IG55dXVneW9rZW5cIDsKK+WFpeizqiA8IG55dXVzaGljaGlcIDsKK+iRl+S9nOiAhSA8IGNob3Nha3VzaGFcIDsKK+edgOedgCA8IGNoYWt1Y2hha3VcIDsKK+WNl+WBtCA8IG1pbmFtaWdhd2FcIDsKK+iEseiEguS5syA8IGRhc3NoaW55dXVcIDsKK+WJjeW+jOW3puWPsyA8IHplbmdvc2F5dXVcIDsKK+elreelgOaWmSA8IHNhaXNoaXJ5b3VcIDsKK+mHjuaIpueJueenkSA8IHlhc2VudG9ra2FcIDsKK+S4jee+iOWllOaUviA8IGZ1a2lob25wb3VcIDsKK+WGheW8geaFtiA8IHVjaGliZW5rZWlcIDsKK+WQkeS4iuW/gyA8IGtvdWpvdXNoaW5cIDsKK+S4gOaJi+iyqeWjsiA8IGl0dGVoYW5iYWlcIDsKK+eJp+e+iuiAhSA8IGJva3V5b3VzaGFcIDsKK+WPguims+S6uiA8IHNhbmthbicnbmluXCA7Civnmq7ooaMgPCBrYXdhZ29yb21vXCA7CivlnYfkuIDljJYgPCBraW4nJ2l0c3VrYVwgOwor5YWx5ZCM6ICFIDwga3lvdWRvdXNoYVwgOwor5piO5pyd5L2TIDwgbWluY2hvdXRhaVwgOwor5aGp6IOh5qSSIDwgc2hpb2tvc2hvdVwgOwor6ICQ6ZyH5oCnIDwgdGFpc2hpbnNlaVwgOwor5paw6KW/6JitIDwgbnnFq2rEq3JhbmRvXCA7CivljLrljLogPCBtYWNoaW1hY2hpXCA7CivnnYDnmbogPCBjaGFrdWhhdHN1XCA7CivkuIDmnprosp0gPCBpY2hpbWFpZ2FpXCA7CivkubHmmrTogIUgPCByYW5ib3Vtb25vXCA7CivlkITkuIDpg6ggPCBrYWt1aWNoaWJ1XCA7CivpmbDml6XlkJEgPCBrYWdlaGluYXRhXCA7CivntKvlrrjmrr8gPCBzaGlzaGluZGVuXCA7Civlub3pnIrmoKogPCB5dXVyZWlrYWJ1XCA7CivmiYDlvpfogIUgPCBzaG90b2t1c2hhXCA7Civou43kuovlipsgPCBndW5qaXJ5b2t1XCA7Civli53osqDkuosgPCBzaG91YnVnb3RvXCA7CivlvZPluqfpoJDph5EgPCB0b3V6YXlva2luXCA7CivoirHpi48gPCBoYW5hYmFzYW1pXCA7CivntabmsLTou4ogPCBreXV1c3Vpc2hhXCA7CivntLDog57lo4EgPCBzYWlib3VoZWtpXCA7Civluq3mvIYgPCBuaXdhdXJ1c2hpXCA7CivmoZzoirHniJvmvKsgPCBvdWthcmFubWFuXCA7Civlj6/pgIbmgKcgPCBrYWd5YWt1c2VpXCA7Civoh6rnlLHoh6rlnKggPCBqaXl1dWppemFpXCA7Civkub7nh6XnhKHlkbMgPCBrYW5zb3VtdW1pXCA7CivkuozpoIXlrprnkIYgPCBuaWtvdXRlaXJpXCA7Civmh7jos57ph5EgPCBrZW5zaG91a2luXCA7CivnoILltZAgPCBzdW5hYXJhc2hpXCA7CivlkKvll73olqwgPCBnYW5zb3V5YWt1XCA7CivopovlrabogIUgPCBrZW5nYWt1c2hhXCA7CivlhKrlhYjluK0gPCB5dXVzZW5zZWtpXCA7CivlsJHmlbDogIUgPCBzaG91c3V1c2hhXCA7CivlhbHlkIznt5ogPCBreW91ZG91c2VuXCA7CivlubTnlLcgPCB0b3NoaW90b2tvXCA7Civlj4rnrKzngrkgPCBreXV1ZGFpdGVuXCA7CivmtLvmgKfmsZrms6UgPCBrYXNzZWlvZGVpXCA7CivliIbpoZ7ooaggPCBidW5ydWloeW91XCA7Civov5HnnLzpj6EgPCBraW5nYW5reW91XCA7CivplqLmlbDml48gPCBrYW5zdXV6b2t1XCA7CivnlLrmnZHliLYgPCBjaG91c29uc2VpXCA7CivmpbXmgqrkurogPCBnb2t1YWt1bmluXCA7CivlvJXlj5fkurogPCBoaWtpdWtlbmluXCA7Civnt6jlubTkvZMgPCBoZW4nJ25lbnRhaVwgOwor5Luj6aGY5Lq6IDwgZGFpZ2FuJyduaW5cIDsKK+acieWKm+mmrCA8IHl1dXJ5b2t1YmFcIDsKK+asoeasoSA8IHRzdWdpdHN1Z2lcIDsKK+S4ieS4ieS6lOS6lCA8IHNhbnNhbmdvZ29cIDsKK+mZpOmbqui7iiA8IGpvc2V0c3VzaGFcIDsKK+Wkp+WvqemZoiA8IGRhaXNoaW4nJ2luXCA7CivnqI7plqLplbcgPCB6ZWlrYW5jaG91XCA7CivkuK3plpPkvZMgPCBjaHV1a2FudGFpXCA7Civmu4vppIrniakgPCBqaXlvdWJ1dHN1XCA7CivkuZ3lt6XlpKcgPCBreXV1a291ZGFpXCA7CivliIDnlrUgPCBrYXRhbmFraXp1XCA7CivliqDmub/lmaggPCBrYXNoaXRzdWtpXCA7CivmlrDoqILniYggPCBzaGludGVpYmFuXCA7CivpgZXmo5ogPCBjaGlnYWlkYW5hXCA7CivljYHkurrlipsgPCBqdXVuaW5yaWtpXCA7CivkuIvlrr/kurogPCBnZXNodWt1bmluXCA7CivlpKfmpa3niakgPCBvb3dhemFtb25vXCA7Civnm7TnrYYgPCBjaG9rdWhpdHN1XCA7CivlgbTpnaLoprMgPCBzb2t1bWVua2FuXCA7CivlvJDlv4MgPCBmdXRhZ29rb3JvXCA7Civnj77osaHnlYwgPCBnZW5zaG91a2FpXCA7Civov73oqabpqJMgPCB0c3Vpc2hpa2VuXCA7CivlhYjlpKnnmoQgPCBzZW50ZW50ZWtpXCA7Civlu7rnr4nlrrYgPCBrZW5jaGlrdWthXCA7CivmsLTph4/oqIggPCBzdWlyeW91a2VpXCA7Civnm7Tnq4sgPCBjaG9rdXJpdHN1XCA7CivlhZzon7kgPCBrYWJ1dG9nYW5pXCA7CivopqrooZvpmoogPCBzaGluJydlaXRhaVwgOwor55uy56qTIDwgbWVrdXJhbWFkb1wgOwor5YWI5aSp55eFIDwgc2VudGVuYnlvdVwgOwor57mB5q6W5pyfIDwgaGFuc2hva3VraVwgOwor6Ii55bm96ZyKIDwgZnVuYXl1dXJlaVwgOwor5rCR5peP5oCnIDwgbWluem9rdXNlaVwgOwor5b6h5LqG5om/IDwgZ29yeW91c2hvdVwgOwor5rC06JuH5bqnIDwgbWl6dWhlYml6YVwgOwor5oud5aSW55qEIDwgaGFpZ2FpdGVraVwgOwor5Yi65oif5YmkIDwgc2hpZ2VraXphaVwgOwor5omA5b6X56iOIDwgc2hvdG9rdXplaVwgOwor5qOJ5a6f5rK5IDwgbWVuaml0c3V5dVwgOwor5Ye6542EIDwgc2h1dHN1Z29rdVwgOwor5Ye654yfIDwgc2h1dHN1cnlvdVwgOwor5Yuk57aa6ICFIDwga2luem9rdXNoYVwgOwor5aSp55qH5Yi2IDwgdGVuJydub3VzZWlcIDsKK+WWq+eFmei7iiA8IGtpdHN1ZW5zaGFcIDsKK+Wun+e/kueUnyA8IGppc3NodXVzZWlcIDsKK+S9k+ezu+eahCA8IHRhaWtlaXRla2lcIDsKK+mBiuiIiOeojiA8IHl1dWt5b3V6ZWlcIDsKK+S/rumBk+WjqyA8IHNodXVkb3VzaGlcIDsKK+aWsOaVmeW+kiA8IHNoaW5reW91dG9cIDsKK+egguWfgyA8IHN1bmFib2tvcmlcIDsKK+WNmuimp+S8miA8IGhha3VyYW5rYWlcIDsKK+WJjeeZu+mMsiA8IHplbnRvdXJva3VcIDsKK+adsea0i+WtpiA8IHRvdXlvdWdha3VcIDsKK+Wkp+Wwhui7jSA8IGRhaXNob3VndW5cIDsKK+WcqOW6q+euoeeQhiA8IHphaWtva2FucmlcIDsKK+WOn+WtkOaguCA8IGdlbnNoaWtha3VcIDsKK+Wkp+WFrOWbvSA8IHRhaWtvdWtva3VcIDsKK+S8keaBr+aJgCA8IGt5dXVzb2t1am9cIDsKK+W3puiAsyA8IGhpZGFyaW1pbWlcIDsKK+mrmOmanOWusyA8IGtvdXNob3VnYWlcIDsKK+WKm+W4ryA8IGNoaWthcmFvYmlcIDsKK+axgumBk+iAhSA8IGt5dXVkb3VzaGFcIDsKK+WkqeWuiOmWoyA8IHRlbnNodWtha3VcIDsKK+egguWaoiA8IHN1bmFidWt1cm9cIDsKK+S5vueJqeWxiyA8IGthbmJ1dHN1eWFcIDsKK+awtOmJhOegsiA8IG1penVkZXBwb3VcIDsKK+WNg+S4ieWxiyA8IHNlbm1pdHN1eWFcIDsKK+WFpea4r+eojiA8IG55dXVrb3V6ZWlcIDsKK+mKgOihjOalrSA8IGdpbmtvdWd5b3VcIDsKK+eBq+eBveS/nemZuiA8IGthc2FpaG9rZW5cIDsKK+S8keaziuaJgCA8IGt5dXVoYWt1am9cIDsKK+S6uuW3peeahCA8IGppbmtvdXRla2lcIDsKK+e9teipiOmbkeiogCA8IGJhcml6b3Vnb25cIDsKK+WFieiYmiA8IGhpa2FyaWdva2VcIDsKK+iBtOimluiAhSA8IGNob3VzaGlzaGFcIDsKK+S4oeWbveiqniA8IHJ5b3Vrb2t1Z29cIDsKK+mBk+i3r+WwgemOliA8IGRvdXJvZnV1c2FcIDsKK+iKseipniA8IGhhbmFrb3RvYmFcIDsKK+mrmOeArOiInyA8IHRha2FzZWJ1bmVcIDsKK+e1hOe5lOWQjSA8IHNvc2hpa2ltZWlcIDsKK+WIneawtyA8IGhhdHN1Z29vcmlcIDsKK+WQjOacn+W8jyA8IGRvdWtpc2hpa2lcIDsKK+Wkp+iFuOiPjCA8IGRhaWNob3VraW5cIDsKK+WNiueLguS5sSA8IGhhbmt5b3VyYW5cIDsKK+i0heayouWTgSA8IHplaXRha3VoaW5cIDsKK+Wwj+WnlOWToeS8miA8IHNob3VpaW5rYWlcIDsKK+S4gOacrOmBkyA8IGlwcG9ubWljaGlcIDsKK+WIqea9pOeOhyA8IHJpanVucml0c3VcIDsKK+i/q+Wus+iAhSA8IGhha3VnYWlzaGFcIDsKK+Wkp+alteauvyA8IGRhaWdva3VkZW5cIDsKK+mHjemHj+aEnyA8IGp1dXJ5b3VrYW5cIDsKK+e+juWtpueahCA8IGJpZ2FrdXRla2lcIDsKK+WGmeeUn+W4syA8IHNoYXNlaWNob3VcIDsKK+S6pOa4ieWnlOWToSA8IGtvdXNob3VpaW5cIDsKK+W7g+ajhOeJqSA8IGhhaWtpYnV0c3VcIDsKK+mbu+ejgeefsyA8IGRlbmppc2hha3VcIDsKK+mAoOWWtueJqSA8IHpvdWVpYnV0c3VcIDsKK+aKgOihk+mdoiA8IGdpanV0c3VtZW5cIDsKK+S7lee9ruiAhSA8IHNoaW9raW1vbm9cIDsKK+iLpuiJviA8IG5pZ2F5b21vZ2lcIDsKK+aZguWIu+ihqCA8IGppa29rdWh5b3VcIDsKK+WQiOWQjOihjOeCuiA8IGdvdWRvdWtvdWlcIDsKK+eCiei+uuirh+ipsSA8IHJvaGVuZGFud2FcIDsKK+avkuenkeWtpiA8IGRva3VrYWdha3VcIDsKK+ebtOihjOS+vyA8IGNob2trb3ViaW5cIDsKK+aJi+WGheiBtyA8IHRlbmFpc2hva3VcIDsKK+aXheihjOWFiCA8IHJ5b2tvdXNha2lcIDsKK+aguOW8vumgrSA8IGtha3VkYW50b3VcIDsKK+mBjuWOu+WIhuipniA8IGtha29idW5zaGlcIDsKK+epuumbhuWQiCA8IGt1dXNodXVnb3VcIDsKK+eav+enpCA8IHNhcmFiYWthcmlcIDsKK+eJueioseaWmSA8IHRva2t5b3J5b3VcIDsKK+S4u+aDheeahCA8IHNodWpvdXRla2lcIDsKK+WWtuWIqeS8muekviA8IGVpcmlnYWlzaGFcIDsKK+abtOiho+WupCA8IGtvdWlzaGl0c3VcIDsKK+auuuS8kCA8IHNhdHN1YmF0c3VcIDsKK+S8muW4reiGsyA8IGthaXNla2l6ZW5cIDsKK+WNg+S4gOWknCA8IHNlbicnaWNoaXlhXCA7CivnnJ/nlLDntJAgPCBzYW5hZGFoaW1vXCA7CivpgZPlrabogIUgPCBkb3VnYWt1c2hhXCA7Civmj67nmbrmgKcgPCBraWhhdHN1c2VpXCA7CivmsrjjgIUgPCBmdXRzdWZ1dHN1XCA7Civlh7ros4fph5EgPCBzaHVzc2hpa2luXCA7CivniafnvorniqwgPCBib2t1eW91a2VuXCA7CivkurrkuovkuI3nnIEgPCBqaW5qaWZ1c2VpXCA7CivokrjnlZnmsLQgPCBqb3VyeXV1c3VpXCA7CivnlbDmgKfplqLkv4IgPCBpc2Vpa2Fua2VpXCA7CivnrYnlnKfnt5ogPCB0b3VhdHN1c2VuXCA7Civmr5LlkbPlvbkgPCBkb2t1bWl5YWt1XCA7CivlhY7ohKMgPCBtaXRzdWt1Y2hpXCA7CivkuovmlYXljp/lm6AgPCBqaWtvZ2VuJydpblwgOwor5YSq6Imv5bqXIDwgeXV1cnlvdXRlblwgOwor5YaF6Iq46ICFIDwgdWNoaWdlaXNoYVwgOwor5oKq6YGU6ICFIDwgd2FydWRhc3NoYVwgOwor5LiJ6Z2i6Y+hIDwgc2FubWVua3lvdVwgOwor54u46JWO6bqmIDwgdGFudWtpc29iYVwgOwor6KOP5pu45Lq6IDwgdXJhZ2FraW5pblwgOwor54m55aSn5Y+3IDwgdG9rdWRhaWdvdVwgOwor57WE57mU5L2TIDwgc29zaGlraXRhaVwgOwor54++5a6f5YyWIDwgZ2Vuaml0c3VrYVwgOwor5aSa55uu55qEIDwgdGFtb2t1dGVraVwgOwor5bCG5p2l5oCnIDwgc2hvdXJhaXNlaVwgOwor5LiA5Lq66IW5IDwgaGl0b3JpYmFyYVwgOwor5bqn5oqAIDwgc3V3YXJpd2F6YVwgOwor55S75LiA5YyWIDwga2FrdWl0c3VrYVwgOwor6YeN6YeR5bGeIDwganV1a2luem9rdVwgOwor6Imv6LOqIDwgcnlvdXNoaXRzdVwgOwor5qeN6KG+IDwgeWFyaWJ1c3VtYVwgOwor5a625Ye65bCR5aWzIDwgaWVkZXNob3Vqb1wgOwor56uL5Lya5Lq6IDwgdGFjaGlhaW5pblwgOwor5Y+k5YW45Li7576pIDwga290ZW5zaHVnaVwgOwor5LiN5rOV5oqV5qOEIDwgZnVob3V0b3VraVwgOwor6YCQ5pelIDwgY2hpa3VqaXRzdVwgOwor5q205Y+y5LiKIDwgcmVraXNoaWpvdVwgOwor6KO96YmE5omAIDwgc2VpdGV0c3Vqb1wgOwor6Iul57eRIDwgd2FrYW1pZG9yaVwgOwor5LiA5Lq66ICFIDwgaGl0b3JpbW9ub1wgOwor6LuK6LODIDwga3VydW1hY2hpblwgOwor5LqM6YeN6J665peLIDwgbmlqdXVyYXNlblwgOwor6YGu5pat5aOBIDwgc2hhZGFucGVraVwgOwor54m55aOy5aC0IDwgdG9rdWJhaWpvdVwgOwor5ZGK55+l5p2/IDwga29rdWNoaWJhblwgOwor5rKW56mN5pyfIDwgY2h1dXNla2lraVwgOwor5Luu6KiY5YWlIDwga2FyaWtpbnl1dVwgOwor5L+u6YGT5LyaIDwgc2h1dWRvdWthaVwgOwor5L2N55u46YCf5bqmIDwgaXNvdXNva3Vkb1wgOwor5qGf5qKv5a2QIDwgc2FuYmFzaGlnb1wgOwor55Wq5Y+35pytIDwgYmFuZ291ZnVkYVwgOwor5bCR5pWw54K5IDwgc2hvdXN1dXRlblwgOwor5bGx54yr5bqnIDwgeWFtYW5la296YVwgOwor5a+d5Y+w5Yi4IDwgc2hpbmRhaWtlblwgOwor5rC06YqA5p+xIDwgc3VpZ2luY2h1dVwgOwor6LWk5rW35LqAIDwgYWthdW1pZ2FtZVwgOwor6aqo55u45a2mIDwga29zc291Z2FrdVwgOwor6Z+z6Z+76YOo6ZaAIDwgb24nJ2luYnVtb25cIDsKK+apn+iDveS4u+e+qSA8IGtpbm91c2h1Z2lcIDsKK+Wkp+iHvOatryA8IGRhaWt5dXVzaGlcIDsKK+apn+aisOitpuWCmSA8IGtpa2Fpa2VpYmlcIDsKK+awkeaXj+WPsiA8IG1pbnpva3VzaGlcIDsKK+S6lOeonOmDrSA8IGdvcnlvdWtha3VcIDsKK+Wlkee0hOabuCA8IGtlaXlha3VzaG9cIDsKK+W9seazleW4qyA8IGthZ2Vib3VzaGlcIDsKK+mHkeWJm+efsyA8IGtvbmdvdXNla2lcIDsKK+eVkem8oCA8IGhhdGFuZXp1bWlcIDsKK+eJueioseW6gSA8IHRva2t5b2Nob3VcIDsKK+WfuuekjuippumokyA8IGtpc29zaGlrZW5cIDsKK+WutuW6reiPnOWckiA8IGthdGVpc2FpZW5cIDsKK+eJueWjsuWTgSA8IHRva3ViYWloaW5cIDsKK+mBk+i3r+W3peS6iyA8IGRvdXJva291amlcIDsKK+S4i+iri+iyoCA8IHNoaXRhdWtlb2lcIDsKK+WPjuepq+acnyA8IHNodXVrYWt1a2lcIDsKK+S6nOeIvueEtuS4gSA8IGFydXplbmNoaW5cIDsKK+Wbm+iLpuWFq+iLpiA8IHNoaWt1aGFra3VcIDsKK+edgOaJlSA8IGNoYWt1YmFyYWlcIDsKK+mZuOaIpumaiiA8IHJpa3VzZW50YWlcIDsKK+e1puawtOeuoSA8IGt5dXVzdWlrYW5cIDsKK+WnlOe0sOmdouirhyA8IGlzYWltZW5kYW5cIDsKK+elnuenmOeahCA8IHNoaW5waXRla2lcIDsKK+mHjemHj+WZuCA8IGp1dXJ5b3V0b25cIDsKK+WvvuagoeippuWQiCA8IHRhaWtvdWppYWlcIDsKK+WPjuepq+aZgiA8IHNodXVrYWt1amlcIDsKK+mrmOWcp+e4riA8IGtvdWFzc2h1a3VcIDsKK+iRl+S9nOaoqSA8IGNob3Nha3VrZW5cIDsKK+S6uuawl+S9nOWutiA8IG5pbmtpc2Fra2FcIDsKK+S7o+Wft+ihjCA8IGRhaXNoaWtrb3VcIDsKK+mZkOWumueahCA8IGdlbnRlaXRla2lcIDsKK+mrmOWcp+e3miA8IGtvdWF0c3VzZW5cIDsKK+S7ruaOoeeUqCA8IGthcmlzYWl5b3VcIDsKK+aaluWGrOeVsOWkiSA8IGRhbnRvdWloZW5cIDsKK+WHuuaSgyA8IHNodXRzdWdla2lcIDsKK+aUuemdqeiAhSA8IGthaWtha3VzaGFcIDsKK+WcsOS4i+mJhCA8IGNoaWthdGV0c3VcIDsKK+WwiueOi+WFmiA8IHNvbicnbm91dG91XCA7CivlnJ/kv7XpmpsgPCBkb2h5b3VnaXdhXCA7CivlpKflsbHnjKsgPCBvb3lhbWFuZWtvXCA7CivoiKrnqbrlraYgPCBrb3VrdXVnYWt1XCA7Civljp/mnZDmlpkgPCBnZW56YWlyeW91XCA7Civlh7rnlKPmlbAgPCBzaHVzc2Fuc3V1XCA7CivmrITlj4LnhacgPCByYW5zYW5zaG91XCA7Civlh7rnlJ/mlbAgPCBzaHVzc2Vpc3V1XCA7CivlrojlgpnnjocgPCBzaHViaXJpdHN1XCA7CivmlofoirjlraYgPCBidW5nZWlnYWt1XCA7CivlpbPmgKfkuIDoiKwgPCBqb3NlaWlwcGFuXCA7CivntIXlhqDps6UgPCBrb3VrYW5jaG91XCA7CivliJ3loLTmiYAgPCBoYXRzdWJhc2hvXCA7CivkubPnirbmtrIgPCBueXV1am91ZWtpXCA7CivljZjlnZDlvI8gPCB0YW56YXNoaWtpXCA7CivlnKjnlZnmsJEgPCB6YWlyeXV1bWluXCA7Civnvo7poZTooZMgPCBiaWdhbmp1dHN1XCA7Civnha7msrjlmaggPCBzaGFmdXRzdWtpXCA7CivlhKroia/lk4EgPCB5dXVyeW91aGluXCA7CivmgKrnjaPmmKDnlLsgPCBrYWlqdXVlaWdhXCA7CivlpJrnqK7lpJrmp5ggPCB0YXNodXRheW91XCA7Civls6DpgZMgPCB0b3VnZW1pY2hpXCA7Civkuozpg6jmlZnmjoggPCBuaWJ1a3lvdWp1XCA7CivmiKbooZPlrrYgPCBzZW5qdXRzdWthXCA7CivpgJ/luqbpgZXlj40gPCBzb2t1ZG9paGFuXCA7Civku5XkuovluKsgPCBzaGlnb3Rvc2hpXCA7CivlubTlvLcgPCB0b3NoaWR6dXlvXCA7CivmqKrmlq3mranpgZMgPCBvdWRhbmhvZG91XCA7CivnhKHnlJ/niakgPCBtdXNlaWJ1dHN1XCA7Civpm5HmloflrrYgPCB6YXRzdWJ1bmthXCA7CivlkIzoqr/ogIUgPCBkb3VjaG91c2hhXCA7CivkuojntITluK0gPCB5b3lha3VzZWtpXCA7Civph5Hnn7PmlocgPCBraW5zZWtpYnVuXCA7Civnt7Tnv5LoiLkgPCByZW5zaHV1c2VuXCA7CivoiJfoo4XpgZPot68gPCBob3NvdWRvdXJvXCA7CivmuKzmt7HmqZ8gPCBzb2t1c2hpbmtpXCA7CivoibboibYgPCB0c3V5YXRzdXlhXCA7CivnmbropovmlpkgPCBoYWtrZW5yeW91XCA7CivooZLlrabogIUgPCBnZW5nYWt1c2hhXCA7CivlvJXlh7rniakgPCBoaWtpZGVtb25vXCA7CivplovmnrblvI8gPCBrYWlrYXNoaWtpXCA7CivljIXlkKvnmoQgPCBob3VnYW50ZWtpXCA7CivlkIjlpY/oqr8gPCBnYXNzb3VjaG91XCA7CivnlLDptZEgPCBob3RvdG9naXN1XCA7CivlhbHlkozlm70gPCBreW91d2Frb2t1XCA7Civlr6nliKTlk6EgPCBzaGlucGFuJydpblwgOwor54Sh57ea5oqA5birIDwgbXVzZW5naXNoaVwgOwor5riF5pyd5L2TIDwgc2VpY2hvdXRhaVwgOwor6aOb6bOl5pmC5LujIDwgYXN1a2FqaWRhaVwgOwor6KGo5pel5pysIDwgb21vdGVuaWhvblwgOwor54++5Luj5YqHIDwgZ2VuZGFpZ2VraVwgOwor5bGx6a+oIDwgeWFtYWt1amlyYVwgOwor5Y2z5Yq56JasIDwgc29ra291eWFrdVwgOwor5pel6YGL5YuVIDwgbmljaGl1bmRvdVwgOwor6I2J5p6VIDwga3VzYW1ha3VyYVwgOwor6IG36ZqO5Yi2IDwgc2hva2thaXNlaVwgOwor5YmN6LuK6Lu4IDwgemVuc2hhamlrdVwgOwor5Zue6Lev5Z+65p2/IDwga2Fpcm9raWJhblwgOwor5LiK5piH57eaIDwgam91c2hvdXNlblwgOwor5qmf5a+G5oCnIDwga2ltaXRzdXNlaVwgOwor5piO57Sw6KGoIDwgbWVpc2FpaHlvdVwgOwor5b2i5oiQ5aSW56eRIDwga2Vpc2VpZ2VrYVwgOwor5L+u6L6e5a2mIDwgc2h1dWppZ2FrdVwgOwor5ZCN6KqJ6IG3IDwgbWVpeW9zaG9rdVwgOwor5a6H5a6Z5YW15ZmoIDwgdWNodXVoZWlraVwgOwor5Zub5aSp546LIDwgc2hpdGVuJydub3VcIDsKK+eVsOW4uOawl+ixoSA8IGlqb3VraXNob3VcIDsKK+S6uuebuOWtpiA8IG5pbnNvdWdha3VcIDsKK+edgOWunyA8IGNoYWt1aml0c3VcIDsKK+aOiOalreaWmSA8IGp1Z3lvdXJ5b3VcIDsKK+mJm+S4reavkiA8IGVuY2h1dWRva3VcIDsKK+eEoeapn+WMluWtpiA8IG11a2lrYWdha3VcIDsKK+iHqueUseS4u+e+qSA8IGppeXV1c2h1Z2lcIDsKK+ayu+eZguS7oyA8IGNoaXJ5b3VkYWlcIDsKK+WCt+iWrCA8IGtpenVndXN1cmlcIDsKK+S9jeiomOi/vei0iCA8IGlraXRzdWlzb3VcIDsKK+W4r+m7hOiJsiA8IHRhaW91c2hva3VcIDsKK+iMtuafsSA8IGNoYWJhc2hpcmFcIDsKK+ebtOaOpSA8IGNob2t1c2V0c3VcIDsKK+W6leWcnyA8IHNva290c3VjaGlcIDsKK+Wun+WGmeaYoOeUuyA8IGppc3NoYWVpZ2FcIDsKK+i1t+W3peW8jyA8IGtpa291c2hpa2lcIDsKK+iHqueUseaZgumWkyA8IGppeXV1amlrYW5cIDsKK+eVs+mHnSA8IHRhdGFtaWhhcmlcIDsKK+eZuueGsSA8IGhhdHN1bmV0c3VcIDsKK+WIh+WunyA8IHNldHN1aml0c3VcIDsKK+WPluW+l+iAhSA8IHNodXRva3VzaGFcIDsKK+W+oeekvOWlieWFrCA8IG9yZWlib3Vrb3VcIDsKK+WxsemiqiA8IHlhbWFvcm9zaGlcIDsKK+aCquW5s+etiSA8IGFrdWJ5b3Vkb3VcIDsKK+WFieeJqSA8IGhpa2FyaW1vbm9cIDsKK+WJlOWHuiA8IHRla2lzaHV0c3VcIDsKK+eUn+mtmiA8IG5hbWF6YWthbmFcIDsKK+acseWtkOWtpiA8IHNodXNoaWdha3VcIDsKK+i7vemHkeWxniA8IGtlaWtpbnpva3VcIDsKK+WBpeiEmuWutiA8IGtlbmt5YWt1a2FcIDsKK+WFiOimmuiAhSA8IHNlbmtha3VzaGFcIDsKK+S4jeaVtOiEiCA8IGZ1c2VpbXlha3VcIDsKK+S7sumWk+WGhSA8IG5ha2FtYXVjaGlcIDsKK+WwhuadpeWDjyA8IHNob3VyYWl6b3VcIDsKK+S9juaVmeS8miA8IHRlaWt5b3VrYWlcIDsKK+aAp+ihneWLlSA8IHNlaXNob3Vkb3VcIDsKK+WckuiKuOeUqOWFtyA8IGVuZ2VpeW91Z3VcIDsKK+e0meiKneWxhSA8IGthbWlzaGliYWlcIDsKK+WBj+i+uiA8IGthdGFob3JvcmlcIDsKK+S9nOaIkOiAhSA8IHNha3VzZWlzaGFcIDsKK+WbnuaYpeWJpCA8IGthaXNodW56YWlcIDsKK+a2iOiyu+mHjyA8IHNob3VoaXJ5b3VcIDsKK+S4puijveWTgSA8IG5hbWlzZWloaW5cIDsKK+iKseeVkSA8IGhhbmFiYXRha2VcIDsKK+egtOiMtuebruiMtiA8IGhhY2hhbWVjaGFcIDsKK+WwguacieaoqSA8IHNlbicneXV1a2VuXCA7CivkuZfppqzpnbQgPCBqb3ViYWd1dHN1XCA7CivlgJnplpMgPCBzb3Vyb3VhaWRhXCA7CivkuI3nqY/mlofmm7ggPCBmdW9uYnVuc2hvXCA7Civlh7ros4fogIUgPCBzaHVzc2hpc2hhXCA7CivljJbnn7PlraYgPCBrYXNla2lnYWt1XCA7CivmvKLlrZfmlofljJYgPCBrYW5qaWJ1bmthXCA7CivogbToqLrlmaggPCBjaG91c2hpbmtpXCA7CivpgLLlh7ogPCBzaGluc2h1dHN1XCA7CivnjKnnjKnooIUgPCBzaG91am91YmFlXCA7CivkubHmlbDooaggPCByYW5zdXVoeW91XCA7CivkuojlgpnoqabpqJMgPCB5b2Jpc2hpa2VuXCA7CivlirTli5nnrqHnkIYgPCByb3VtdWthbnJpXCA7CivlupfljbggPCB0YW5hb3Jvc2hpXCA7Civln4vnq4vlnLAgPCB1bWV0YXRlY2hpXCA7CivlhbHlkIzmgKcgPCBreW91ZG91c2VpXCA7Civnhp/nt7TogIUgPCBqdWt1cmVuc2hhXCA7CivmnbHljJfmnbEgPCB0b3Vob2t1dG91XCA7CivlubPlkozkvJrorbAgPCBoZWl3YWthaWdpXCA7CivnlaXov7AgPCByeWFrdWp1dHN1XCA7CivnlJ/kvZPohpwgPCBzZWl0YWltYWt1XCA7Civku7vli5npg6jpmoogPCBuaW5tdWJ1dGFpXCA7CivmsJHooYbpp4UgPCBtaW5zaHV1ZWtpXCA7Civlroflrpnpo58gPCB1Y2h1dXNob2t1XCA7CivluLjluLggPCB0c3VuZWR6dW5lXCA7Civml6XlhYnmtbQgPCBuaWtrb3V5b2t1XCA7Civku6PmlbDlraYgPCBkYWlzdXVnYWt1XCA7CivlsI/plpPnianlsYsgPCBrb21hbW9ub3lhXCA7Civog73lvbnogIUgPCBub3V5YWt1c2hhXCA7CivmspbnqY3lnJ8gPCBjaHV1c2VraWRvXCA7CivlvJXlipvlnI8gPCBpbnJ5b2t1a2VuXCA7CivliKXlj6MgPCBiZXRzdWt1Y2hpXCA7CivkuK3mipjluL0gPCBuYWthb3JlYm91XCA7CivpnZ7mtLvli5UgPCBoaWthdHN1ZG91XCA7CivnuKbmqKrnhKHlsL0gPCBqdXVvdW11amluXCA7CivlhavmqYsgPCB5YXRzdWhhc2hpXCA7Civlm73lrrbkuLvnvqkgPCBrb2trYXNodWdpXCA7CivpgY7libDmipXkuI4gPCBrYWpvdXRvdXlvXCA7Civoq5bnkIblm57ot68gPCByb25yaWthaXJvXCA7CivmnInlip/nq6AgPCB5dXVrb3VzaG91XCA7CivmipXnpajogIUgPCB0b3VoeW91c2hhXCA7CivmlLvmkoPpmoogPCBrb3VnZWtpdGFpXCA7CivloLHlkYrogIUgPCBob3Vrb2t1c2hhXCA7CivnmbrooajogIUgPCBoYXBweW91c2hhXCA7Civmg6PnrqHpoJggPCBzb3VrYW5yeW91XCA7Civoh6rlo4rkvZznlKggPCBqaWthaXNheW91XCA7Civpgbjmip7ogqIgPCBzZW50YWt1c2hpXCA7CivmioDooZPogIUgPCBnaWp1dHN1c2hhXCA7CivpgLLmrannmoQgPCBzaGlucG90ZWtpXCA7Civln4volLXph48gPCBtYWl6b3VyeW91XCA7Civku5Xkuovlj7AgPCBzaGlnb3RvZGFpXCA7CivmgKfmiJDnhp8gPCBzZWlzZWlqdWt1XCA7CivmsLjlubTplpMgPCBuYWdhbmVua2FuXCA7Civog4zmlZnogIUgPCBoYWlreW91c2hhXCA7CivovrDlubQgPCB0YXRzdWRvc2hpXCA7CivmiYvlt6Xmpa0gPCBzaHVrb3VneW91XCA7CivmupblgpnmnJ/plpMgPCBqdW5iaWtpa2FuXCA7CivliKXliKUgPCBiZXRzdWJldHN1XCA7CivlsLvppKAgPCBzaGlyaW1vY2hpXCA7CivnlLPoq4vogIUgPCBzaGluc2Vpc2hhXCA7CivmvJTlh7rlrrYgPCBlbnNodXRzdWthXCA7CivkuIDlronlv4MgPCBoaXRvYW5zaGluXCA7CivlpKnkuIvnhKHlj4wgPCB0ZW5rYW11c291XCA7CivooYzmpb3lnLAgPCBrb3VyYWt1Y2hpXCA7Civpo5/nrqHms5UgPCBzaG9ra2FuaG91XCA7CivoprPmuKzoiLkgPCBrYW5zb2t1c2VuXCA7Civnq7blkIjogIUgPCBreW91Z291c2hhXCA7CivlgaXohLPliaQgPCBrZW4nJ25vdXphaVwgOwor5LiA54CJ5Y2D6YeMIDwgaXNzaGFzZW5yaVwgOwor55m95qi6IDwgc2hpcmFrYW5iYVwgOwor6YeR5Ymb5p2WIDwga29uZ291ZHp1ZVwgOwor5qiq6KGM6ZeK5q2pIDwgb3Vrb3VrYXBwb1wgOwor6Kyd6IKJ56WtIDwgc2hhbmlrdXNhaVwgOwor6KSH5YaZ57SZIDwgZnVrdXNoYXNoaVwgOwor6YCx5YiK6KqMIDwgc2h1dWthbnNoaVwgOwor5Y+O56iO5omAIDwgc2h1dXplaXNob1wgOwor5Ymw5L2Z5L6h5YCkIDwgam91eW9rYWNoaVwgOwor5YWr5pyIIDwgaGFjaGlnYXRzdVwgOwor6YCa6KGM5Lq6IDwgdHN1dWtvdW5pblwgOwor6ZGR5a6a5paZIDwga2FudGVpcnlvdVwgOwor6LiP6LuKIDwgZnVtaWd1cnVtYVwgOwor5paH5YyW5Zu95a62IDwgYnVua2Frb2trYVwgOwor6Iie5Y+w56i95Y+kIDwgYnV0YWlnZWlrb1wgOwor5ZCM5LiA5Lq6IDwgZG91aXRzdW5pblwgOwor6auY5r2u57eaIDwga291Y2hvdXNlblwgOwor5rW46YCP5oCnIDwgc2hpbnRvdXNlaVwgOwor6KGA6Imy57SgIDwga2Vzc2hpa2lzb1wgOwor6ISz6ZyH55uqIDwgbm91c2hpbnRvdVwgOwor5LyK5Yui5aSn5bufIDwgaXNldGFpYnlvdVwgOwor6LOD6LK45Lq6IDwgY2hpbnRhaW5pblwgOwor5Ye655Sf5ZywIDwgc2h1c3NlaWNoaVwgOwor55Wl6KqsIDwgcnlha3VzZXRzdVwgOwor57e057+S55SfIDwgcmVuc2h1dXNlaVwgOwor5bqn5bit6KGoIDwgemFzZWtpaHlvdVwgOwor6Kaz5ris6ICFIDwga2Fuc29rdXNoYVwgOwor55u45LqS5pSv5o+0IDwgc291Z29zaGllblwgOwor5Zyw542E6ICzIDwgamlnb2t1bWltaVwgOwor6auY57Sa5ZOBIDwga291a3l1dWhpblwgOwor6YGg5pel54K5IDwgZW5qaXRzdXRlblwgOwor5ryi5a2m6ICFIDwga2FuZ2FrdXNoYVwgOwor54mn5aC06bOlIDwgbWFraWJhdG9yaVwgOwor55Sz6L68IDwgbW91c2hpa29taVwgOwor5YiH5YiHIDwgc2V0c3VzZXRzdVwgOwor5q275YiR5ZuaIDwgc2hpa2Vpc2h1dVwgOwor5rC356CC57OWIDwga29vcml6YXRvdVwgOwor5pmu6YGN5Y6f55CGIDwgZnVoZW5nZW5yaVwgOwor5YWx6JGX6ICFIDwga3lvdWNob3NoYVwgOwor6aqo6auE54KOIDwga290c3V6dWllblwgOwor5LiN5Y2z5LiN6ZuiIDwgZnVzb2t1ZnVyaVwgOwor5pS+54mn5ZywIDwgaG91Ym9rdWNoaVwgOwor5oKq5Zug5oKq5p6cIDwgYWt1aW4nJ2Fra2FcIDsKK+eZveihgOeQgyA8IGhha2tla2t5dXVcIDsKK+ebsuWjgSA8IG1la3VyYWthYmVcIDsKK+a6tuWyqea1gSA8IHlvdWdhbnJ5dXVcIDsKK+atu+WCt+iAhSA8IHNoaXNob3VzaGFcIDsKK+W8j+mDqOWumCA8IHNoaWtpYnVrYW5cIDsKK+iEhuW8seaApyA8IHplaWpha3VzZWlcIDsKK+e1puawtOagkyA8IGt5dXVzdWlzZW5cIDsKK+mvqOW5lSA8IGt1amlyYW1ha3VcIDsKK+ims+a4rOe2siA8IGthbnNva3Vtb3VcIDsKK+aApeihjOWIuCA8IGt5dXVrb3VrZW5cIDsKK+eZveaYnyA8IHNoaXJvYm9zaGlcIDsKK+eZvuaXpSA8IGh5YWt1bmljaGlcIDsKK+mZhOWSjOmbt+WQjCA8IGZ1d2FyYWlkb3VcIDsKK+W+oemereaSuyA8IGdvYmVudGF0c3VcIDsKK+e3keWNgeWtlyA8IHJ5b2t1anV1amlcIDsKK+WMlueyp+mDqOWxiyA8IGtlc2hvdWJleWFcIDsKK+a1gee3muW9oiA8IHJ5dXVzZW5rZWlcIDsKK+iGnOizqiA8IG1ha3VzaGl0c3VcIDsKK+WOn+Wni+eahCA8IGdlbnNoaXRla2lcIDsKK+eJp+e+iuWcsCA8IGJva3V5b3VjaGlcIDsKK+WHuuWFpSA8IHNodXRzdW55dXVcIDsKK+ejqOijveefs+WZqCA8IG1hc2Vpc2Vra2lcIDsKK+eItuWtkOWutuW6rSA8IGZ1c2hpa2F0ZWlcIDsKK+WfvOeOieecjCA8IHNhaXRhbWFrZW5cIDsKK+S9memfu+Wri+WriyA8IHlvaW5qb3Vqb3VcIDsKK+aUu+aSg+i7jSA8IGtvdWdla2lndW5cIDsKK+aVteiJpumaiiA8IHRla2lrYW50YWlcIDsKK+W5tOS4iyA8IHRvc2hpc2hpdGFcIDsKK+mjn+WZqOajmiA8IHNob2traWRhbmFcIDsKK+S8nemAgeWFiCA8IGRlbnNvdXNha2lcIDsKK+eosuiNt+muqCA8IGluYXJpenVzaGlcIDsKK+S/gumVtyA8IGtha2FyaWNob3VcIDsKK+W+qeiqv+WZqCA8IGZ1a3VjaG91a2lcIDsKK+Wkp+eXheS6uiA8IGRhaWJ5b3VuaW5cIDsKK+WFseWKtOiAhSA8IGt5b3Vyb3VzaGFcIDsKK+WAmeiqvyA8IHNvdXJvdWNob3VcIDsKK+eXheWOn+iPjCA8IGJ5b3VnZW5raW5cIDsKK+acnemuruS6uiA8IGNob3VzZW5qaW5cIDsKK+e4hOaWh+Wcn+WZqCA8IGpvdW1vbmRva2lcIDsKK+WEqui2iuaoqSA8IHl1dWV0c3VrZW5cIDsKK+mvqOWwuiA8IGt1amlyYWpha3VcIDsKK+S4gOS6uuaXhSA8IGhpdG9yaXRhYmlcIDsKK+aWh+WtpuirliA8IGJ1bmdha3Vyb25cIDsKK+iCieaEn+eahCA8IG5pa2thbnRla2lcIDsKK+aApeihjOS+vyA8IGt5dXVrb3ViaW5cIDsKK+eUsuS5meS4mSA8IGtvdW90c3VoZWlcIDsKK+S4reazoumVtyA8IGNodXVoYWNob3VcIDsKK+eEoeiBt+iAhSA8IG11c2hva3VzaGFcIDsKK+WPjueojuWumCA8IHNodXV6ZWlrYW5cIDsKK+WtpumDqOmVtyA8IGdha3VidWNob3VcIDsKK+iyoeWLmeeuoeeQhiA8IHphaW11a2FucmlcIDsKK+i2heagvOWtkCA8IGNob3Vrb3VzaGlcIDsKK+epgueKtuiKseW6jyA8IHN1aWpvdWtham9cIDsKK+mXiuiRieaouSA8IGthdHN1eW91anVcIDsKK+ebm+WcnyA8IG1vcml0c3VjaGlcIDsKK+WFsemztOiAhSA8IGt5b3VtZWlzaGFcIDsKK+eEoeS9k+eJqSA8IG11dGFpYnV0c3VcIDsKK+a1ruawl+WlsyA8IHV3YWtpb24nJ25hXCA7Civnmbvnq5zploAgPCB0b3VyeXV1bW9uXCA7CivkuIDnvqnnmoQgPCBpY2hpZ2l0ZWtpXCA7CivnrKzkuIDmnaEgPCBkYWlpY2hpam91XCA7Civovp7mm7jpg6jploAgPCBqaXNob2J1bW9uXCA7CivlhoXnlKjolqwgPCBuYWl5b3V5YWt1XCA7CivmqZ/li5Xpg6jpmoogPCBraWRvdWJ1dGFpXCA7Civkv53lronlh6bliIYgPCBob2Fuc2hvYnVuXCA7CivoirHmmqYgPCBoYW5hZ295b21pXCA7CivluqfmqJnou7ggPCB6YWh5b3VqaWt1XCA7CivnrZbmupDlnLAgPCBzYWt1Z2VuY2hpXCA7Civnm7TliJcgPCBjaG9rdXJldHN1XCA7CivlhKrnlJ/lraYgPCB5dXVzZWlnYWt1XCA7CivmhI/mgJ3ooajnpLogPCBpc2hpaHlvdWppXCA7CivliIbpmorplbcgPCBidW50YWljaG91XCA7CivllrbliKnkuovmpa0gPCBlaXJpamlneW91XCA7CivliY3lgJ/ph5EgPCB6ZW5zaGFra2luXCA7Civnmq7ohprnp7vmpI0gPCBoaWZ1aXNob2t1XCA7Civku7Loo4HkurogPCBjaHV1c2FpbmluXCA7CivotaTpgZPnpa0gPCBzZWtpZG91c2FpXCA7CivmnbHljJflpKcgPCB0b3Vob2t1ZGFpXCA7Civlrp/oqLzoq5YgPCBqaXNzaG91cm9uXCA7CivkuI3nh4PniakgPCBmdW5lbmJ1dHN1XCA7CivlhajlvLfpoqggPCB6ZW5reW91ZnV1XCA7CivorbDkuovlpqjlrrMgPCBnaWppYm91Z2FpXCA7CivlsI/lpKnlnLAgPCBzaG91dGVuY2hpXCA7CivphaLphbjloakgPCBzYWt1c2FuJydlblwgOwor6LaF6Z+z6YCfIDwgY2hvdW9uc29rdVwgOwor5a+G5ZGK6ICFIDwgbWlra29rdXNoYVwgOwor5YiG6aGe5a2mIDwgYnVucnVpZ2FrdVwgOwor5b2r6YeR5birIDwgY2hvdWtpbnNoaVwgOwor5LiA6aiO5b2T5Y2DIDwgaWtraXRvdXNlblwgOwor6Zi/6by75Y+r5ZaaIDwgYWJpa3lvdWthblwgOwor57W25a++5rip5bqmIDwgemV0dGFpb25kb1wgOwor6buE6YeR5LiW55WMIDwgb3Vnb25zZWthaVwgOwor5YWx6YCa6KqeIDwga3lvdXRzdXVnb1wgOwor5Ya95Ya9IDwgcmV0c3VyZXRzdVwgOwor56We56eY5a2mIDwgc2hpbmhpZ2FrdVwgOwor5LiA5pys5qmLIDwgaXBwb25iYXNoaVwgOwor56ys5LqU5YiXIDwgZGFpZ29yZXRzdVwgOwor57Sz5aOr55SoIDwgc2hpbnNoaXlvdVwgOwor5LiA5p6a5bKpIDwgaWNoaW1haWl3YVwgOwor5LiA5pys5qeNIDwgaXBwb24nJ3lhcmlcIDsKK+WbsOeqruiAhSA8IGtvbmt5dXVzaGFcIDsKK+WFpeWupCA8IG55dXVzaGl0c3VcIDsKK+ajkua4qeW6puioiCA8IGJvdW9uZG9rZWlcIDsKK+WGrOaUr+W6piA8IGZ1eXVqaXRha3VcIDsKK+WFseWQjOS9kyA8IGt5b3Vkb3V0YWlcIDsKK+WwkeaVsOWFmiA8IHNob3VzdXV0b3VcIDsKK+WFqOawkeihhiA8IHplbm1pbnNodXVcIDsKK+ebuOWPjeeahCA8IHNvdWhhbnRla2lcIDsKK+a1rumBiueJqSA8IGZ1eXV1YnV0c3VcIDsKK+WKtOWDjeecgSA8IHJvdWRvdXNob3VcIDsKK+Wtq+aBr+WtkCA8IG1hZ29tdXN1a29cIDsKK+WPjeWvvuaEj+imiyA8IGhhbnRhaWlrZW5cIDsKK+S+m+mkiuWhmiA8IGt1eW91ZHp1a2FcIDsKK+mnhumAkOiJpiA8IGt1Y2hpa3VrYW5cIDsKK+e0oOS6uuebriA8IHNoaXJvdXRvbWVcIDsKK+eyvuiCieW6lyA8IHNlaW5pa3V0ZW5cIDsKK+WPjOauu+mhniA8IHNvdWtha3VydWlcIDsKK+aso+axgua1hOWcnyA8IGdvbmd1am91ZG9cIDsKK+mHkeiyqOa6luWCmSA8IGtpbmthanVuYmlcIDsKK+WlqOWKsemHkSA8IHNob3VyZWlraW5cIDsKK+S4jeeyvumrrSA8IGJ1c2hvdWhpZ2VcIDsKK+irlueQhue0oOWtkCA8IHJvbnJpc29zaGlcIDsKK+iDveWLleeahCA8IG5vdWRvdXRla2lcIDsKK+e0hOWNiuWIhiA8IHlha3VoYW5idW5cIDsKK+WxseiNkiA8IHlhbWFhcmFzaGlcIDsKK+e2sua8gealrSA8IGFtaWd5b2d5b3VcIDsKK+aOiOalreS4rSA8IGp1Z3lvdWNodXVcIDsKK+Wyqeefs+WcjyA8IGdhbnNla2lrZW5cIDsKK+mcsuWcsOagveWfuSA8IHJvamlzYWliYWlcIDsKK+W9ueebruafhCA8IHlha3VtZWdhcmFcIDsKK+WPpOWis+aZguS7oyA8IGtvZnVuamlkYWlcIDsKK+S4gOacrOadviA8IGlwcG9ubWF0c3VcIDsKK+WhqeeFjumkhSA8IHNoaW9zZW5iZWlcIDsKK+WNl+OAheilvyA8IG5hbicnbmFuc2VpXCA7CivlnKjlrabnlJ8gPCB6YWlnYWt1c2VpXCA7CivliYPliIDnoKUgPCBrYW1pc29yaWRvXCA7CivlpJrnmbrmgKcgPCB0YWhhdHN1c2VpXCA7CivnhKHnhZnngavolqwgPCBtdWVua2F5YWt1XCA7CivlhKrotormhJ8gPCB5dXVldHN1a2FuXCA7CivnibnntJrlk4EgPCB0b2treXV1aGluXCA7CivkuInop5LpjJAgPCBzYW5rYWt1c3VpXCA7CivlgpHniakgPCBrZXRzdWJ1dHN1XCA7Civlv4XmsrvolqwgPCBoaXRjaGl5YWt1XCA7CivljZjmjK/li5UgPCB0YW5zaGluZG91XCA7CivkuLvlvLXogIUgPCBzaHVjaG91c2hhXCA7CivmjpLku5blvosgPCBoYWl0YXJpdHN1XCA7CivmlL/msrvmqZ/mp4sgPCBzZWlqaWtpa291XCA7CivmhI/lv5fmsbrlrpogPCBpc2hpa2V0dGVpXCA7CivlhKrotormgKcgPCB5dXVldHN1c2VpXCA7CivlvaLmhYvlraYgPCBrZWl0YWlnYWt1XCA7Civlt6Xmpa3nlYwgPCBrb3VneW91a2FpXCA7Civlt6Xmpa3nlKggPCBrb3VneW91eW91XCA7CivnqY3kubHpm7IgPCBzZWtpcmFuJyd1blwgOwor5oud6Kaz5paZIDwgaGFpa2FucnlvdVwgOwor6aCY5rW357eaIDwgcnlvdWthaXNlblwgOwor6KeS5YiG5pWjIDwga2FrdWJ1bnNhblwgOwor5LiN6KaL6K2YIDwgZnVrZW5zaGlraVwgOwor5aSn5a2m55SfIDwgZGFpZ2FrdXNlaVwgOwor5pyA5YyX56uvIDwgc2FpaG9rdXRhblwgOwor6KGo6Z2i5LiKIDwgaHlvdW1lbmpvdVwgOwor5r+D56Gr6YW4IDwgbm91cnl1dXNhblwgOwor55Wl562GIDwgcnlha3VoaXRzdVwgOwor5rC05YyW54mpIDwgc3Vpa2FidXRzdVwgOwor6LaF5Lyd5bCOIDwgY2hvdWRlbmRvdVwgOwor5paH5a2m6ICFIDwgYnVuZ2FrdXNoYVwgOwor57KX55uu6ZuqIDwgemFyYW1leXVraVwgOwor5Y+y5a2m6ICFIDwgc2hpZ2FrdXNoYVwgOwor5Zu95rCR6LuNIDwga29rdW1pbmd1blwgOwor5ZKA5Zq8562LIDwgc29zaGFrdWtpblwgOwor5L2P5omA6YyyIDwganV1c2hvcm9rdVwgOwor6aeQ5YGc6LuKIDwgY2h1dXRlaXNoYVwgOwor5qSN5qi556WtIDwgc2hva3VqdXNhaVwgOwor6LKg6I235YiG5pWjIDwgZnVrYWJ1bnNhblwgOwor6KeS6YCf5bqmIDwga2FrdXNva3Vkb1wgOwor5bem5YipIDwgaGlkYXJpa2lraVwgOwor5aSn6LWk5paRIDwgZGFpc2VraWhhblwgOwor5Zyw5Lit5rW3IDwgY2hpY2h1dWthaVwgOwor5Ly46aSFIDwgbm9zaGltb2NoaVwgOwor5LiN5YGP5LiN5YWaIDwgZnVoZW5mdXRvdVwgOwor5YaF5YaRIDwgdWNoaWthYnV0b1wgOwor5ZWG5aOy5Lq6IDwgc2hvdWJhaW5pblwgOwor5ZCM5bqK55Ww5aSiIDwgZG91c2hvdWltdVwgOwor5Y+X5Y+W5Lq6IDwgdWtldG9yaW5pblwgOwor6KaL5pys5biCIDwgbWlob24nJ2ljaGlcIDsKK+eEoemZkOi7jOmBkyA8IG11Z2Vua2lkb3VcIDsKK+aKleelqOaoqSA8IHRvdWh5b3VrZW5cIDsKK+aOoueFp+eBryA8IHRhbnNob3V0b3VcIDsKK+WFqOWLnei7jSA8IHplbnNob3VndW5cIDsKK+e1puawtOWhlCA8IGt5dXVzdWl0b3VcIDsKK+a9ruW5sueLqSA8IHNoaW9oaWdhcmlcIDsKK+i7jeS6i+mhp+WVjyA8IGd1bmppa29tb25cIDsKK+eJoee+iuW6pyA8IG9oaXRzdWppemFcIDsKK+iAvee+juS4u+e+qSA8IHRhbmJpc2h1Z2lcIDsKK+WPjueojuS6uiA8IHNodXV6ZWluaW5cIDsKK+WWnOWKh+aYoOeUuyA8IGtpZ2VraWVpZ2FcIDsKK+W3puWBtCA8IGhpZGFyaWdhd2FcIDsKK+mBuOaKnuaoqSA8IHNlbnRha3VrZW5cIDsKK+aOoeeCueihqCA8IHNhaXRlbmh5b3VcIDsKK+W3peW3peWbmyA8IGt1bmt1bnNoaWlcIDsKK+WFpeWPoyA8IGhhaXJpZ3VjaGlcIDsKK+iomOmMsueahCA8IGtpcm9rdXRla2lcIDsKK+ixhuadv+mKgCA8IG1hbWVpdGFnaW5cIDsKK+e1tuWvvumHjyA8IHpldHRhaXJ5b3VcIDsKK+adseWMl+S6uiA8IHRvdWhva3VqaW5cIDsKK+a1t+i7jeecgSA8IGthaWd1bnNob3VcIDsKK+mHkeWJm+WKmyA8IGtvbmdvdXJpa2lcIDsKK+ecn+aal+mXhyA8IG1ha3VyYXlhbWlcIDsKK+aknOeWq+WumCA8IGtlbicnZWtpa2FuXCA7CivlrqTplbcgPCBzaGl0c3VjaG91XCA7Civlr77osaHlpJYgPCB0YWlzaG91Z2FpXCA7CivmlrDmvZ/nnIwgPCBuaWlnYXRha2VuXCA7Civpl4flho3osqkgPCB5YW1pc2FpaGFuXCA7Civli5XnianmhJsgPCBkb3VidXRzdWFpXCA7Civmm7znj6Dmspnoj68gPCBtYW5qdXNoYWdlXCA7Civkvb/nlKjph48gPCBzaGl5b3VyeW91XCA7CivlhKrlp78gPCB5YXNhc3VnYXRhXCA7Civol4HljYrntJkgPCB3YXJhYmFuc2hpXCA7CivmqKHmk6zoqabpqJMgPCBtb2dpc2hpa2VuXCA7CivmlrDplovlnLAgPCBzaGlua2FpY2hpXCA7CivpnZ7luLjorZggPCBoaWpvdXNoaWtpXCA7CivkuIDpnaLoprMgPCBpY2hpbWVua2FuXCA7CivnrqHntYPmpb0gPCBrYW5nZW5nYWt1XCA7Civopo/liYfpgZXlj40gPCBraXNva3VpaGFuXCA7CivmnIDmgbXlm70gPCBzYWlrZWlrb2t1XCA7CivmhaLmgKfnmoQgPCBtYW5zZWl0ZWtpXCA7CivlpI/ngonlhqzmiYcgPCBrYXJvdG91c2VuXCA7CivmjqjoqIjlraYgPCBzdWlrZWlnYWt1XCA7Civlia/poJjkuosgPCBmdWt1cnlvdWppXCA7CivljbDliLfogIUgPCBpbnNhdHN1c2hhXCA7CivogJDngavlipsgPCB0YWlrYXJ5b2t1XCA7Civlj4vnpoXmn5MgPCB5dXV6ZW56b21lXCA7CivloLHlkYrmm7ggPCBob3Vrb2t1c2hvXCA7CivpqqjmoLznrYsgPCBrb2trYWt1a2luXCA7Civpm6jlpKnmsbrooYwgPCB1dGVua2Vra291XCA7Civol7vloanojYkgPCBtb3NoaW9ndXNhXCA7Civpm4blpKfmiJAgPCBzaHV1dGFpc2VpXCA7CivmhaLmgKfnl4UgPCBtYW5zZWlieW91XCA7CivlrqPoqIDnmoQgPCBzZW5nZW50ZWtpXCA7Civlha3ph43lpY8gPCByb2t1anV1c291XCA7Civpn7Ppn7/lraYgPCBvbmt5b3VnYWt1XCA7CivnlLPnq4sgPCBtb3VzaGl0YXRlXCA7Civlt6Xmpa3muK8gPCBrb3VneW91a291XCA7Civnt4/ovp7ogbcgPCBzb3VqaXNob2t1XCA7Civou43lm6PplbcgPCBndW5kYW5jaG91XCA7CivmhI/opovkuqTmj5sgPCBpa2Vua291a2FuXCA7CivlubTplbfogIUgPCBuZW5jaG91c2hhXCA7Civnt4/li5nlsYAgPCBzb3VtdWt5b2t1XCA7CivkuI3kub7mgKfmsrkgPCBmdWthbnNlaXl1XCA7CivpnaLnm7jnrYYgPCBtZW5zb3VmdWRlXCA7CivmlaPmranpgZMgPCBzYW5wb21pY2hpXCA7CivnpLrlnKfoqIggPCBzaGlhdHN1a2VpXCA7CivkuJbntIDmnKsgPCBzZWlraW1hdHN1XCA7CivnrKzkuInlm70gPCBkYWlzYW5nb2t1XCA7CivmipXnpajmlbAgPCB0b3VoeW91c3V1XCA7CivkvZXnrofmnIggPCBuYW5rYWdldHN1XCA7CivnlLPoq4vmm7ggPCBzaGluc2Vpc2hvXCA7CivmpI3niakgPCBzaG9rdWJ1dHN1XCA7Civohbnohpzngo4gPCBmdWt1bWFrdWVuXCA7CivmuKnms4nnlLogPCBvbnNlbm1hY2hpXCA7CivkuLvli5XnmoQgPCBzaHVkb3V0ZWtpXCA7Civms4zlsL/lmajnp5EgPCBoaW55b3VraWthXCA7CivkuI3mloflvosgPCBmdWJ1bnJpdHN1XCA7CivlvIHlvZPnrrEgPCBiZW50b3ViYWtvXCA7Civlsqnnh5UgPCBpd2F0c3ViYW1lXCA7CivlpKnkvZPlraYgPCB0ZW50YWlnYWt1XCA7CivljbDliLfntJkgPCBpbnNhdHN1c2hpXCA7CivkvY7miJDplbcgPCB0ZWlzZWljaG91XCA7Civkv6/ku7Dop5IgPCBmdWd5b3VrYWt1XCA7CivluLfluYTkuIrlpY8gPCBpYWt1am91c291XCA7CivmlL7nhrHlmaggPCBob3VuZXRzdWtpXCA7CivntJToia/lk4EgPCBqdW5yeW91aGluXCA7CivlgpnlvozooaggPCBiaW5nb29tb3RlXCA7CivmmpfmrrrogIUgPCBhbnNhdHN1c2hhXCA7CivlubPmlZnlk6EgPCBoaXJha3lvdWluXCA7CivkuI3opprogIUgPCBmdWtha3Vtb25vXCA7CivmiJDplbfngrkgPCBzZWljaG91dGVuXCA7CivmnbHmqKrnt5ogPCB0b3V5b2tvc2VuXCA7CivmlZHmuIjogIUgPCBreXV1c2Fpc2hhXCA7Civnn6Xog73nmoQgPCBjaGlub3V0ZWtpXCA7CivlhLLlj6MgPCBtb3VrZWd1Y2hpXCA7CivlhajmqKnlp5Tlk6EgPCB6ZW5rZW4nJ2lpblwgOwor5bm76Kaa5YmkIDwgZ2Vua2FrdXphaVwgOwor5p6c54mp5bGLIDwga3VkYW1vbm95YVwgOwor5ryU566X5qmf5qeLIDwgZW56YW5raWtvdVwgOwor5Lq65qC86ICFIDwgamlua2FrdXNoYVwgOwor54Sh6JOL6LKo6LuKIDwgbXVnYWlrYXNoYVwgOwor6YeR5bGe6ZaTIDwga2luem9rdWthblwgOwor6Iqx5p+z55eFIDwga2FyeXV1YnlvdVwgOwor5qOf55OmIDwgbXVuYWdhd2FyYVwgOwor6auY5p6VIDwgdGFrYW1ha3VyYVwgOwor6ICB5aSn5Zu9IDwgcm91dGFpa29rdVwgOwor5Luj6KiA5Lq6IDwgZGFpZ2VuJyduaW5cIDsKK+W/g+W+l+mhlCA8IGtva29yb2VnYW9cIDsKK+S7o+ihqOiAhSA8IGRhaWh5b3VzaGFcIDsKK+S4u+efpeeahCA8IHNodWNoaXRla2lcIDsKK+aWh+WtpueVjCA8IGJ1bmdha3VrYWlcIDsKK+WIh+aWreapnyA8IHNldHN1ZGFua2lcIDsKK+S4gOaZgueahCA8IGljaGlqaXRla2lcIDsKK+S6pOmAmue2siA8IGtvdXRzdXVtb3VcIDsKK+S6jOWNgeS4lue0gCA8IG5pamlzc2Vpa2lcIDsKK+S/neitt+WHpuWIhiA8IGhvZ29zaG9idW5cIDsKK+WcsOeQg+S6uiA8IGNoaWt5dXVqaW5cIDsKK+iEueiEmyA8IGZ1a3VyYWhhZ2lcIDsKK+mrmOabhyA8IHRha2FndW1vcmlcIDsKK+earuiGmuenkeWtpiA8IGhpZnVrYWdha3VcIDsKK+WcsOeQg+S4iiA8IGNoaWt5dXVqb3VcIDsKK+mAhuaPkOahiCA8IGd5YWt1dGVpYW5cIDsKK+WvvuaVsOihqCA8IHRhaXN1dWh5b3VcIDsKK+ihhuaEmuaUv+ayuyA8IHNodWd1c2VpamlcIDsKK+aVl+aIpuWbvSA8IGhhaXNlbmtva3VcIDsKK+S+jeW+k+atpuWumCA8IGppanV1YnVrYW5cIDsKK+aWsOijveWTgSA8IHNoaW5zZWloaW5cIDsKK+aOp+iotOacn+mWkyA8IGtvdXNva2lrYW5cIDsKK+S4iuS9jeani+mAoCA8IGpvdWlrb3V6b3VcIDsKK+altei3nemboiA8IGt5b2t1a3lvcmlcIDsKK+W4uOS7u+WnlOWToSA8IGpvdW5pbicnaWluXCA7Civoip3lsYXlsI/lsYsgPCBzaGliYWlnb3lhXCA7CivmoZzoirEgPCBzYWt1cmFiYW5hXCA7Civlhaznp5/lhazoqrIgPCBrb3Vzb2tvdWthXCA7Civnhp/nt7Tlt6UgPCBqdWt1cmVua291XCA7CivoibLntKDkvZMgPCBzaGlraXNvdGFpXCA7CivkuLjnoKXnn7MgPCBtYXJ1dG9pc2hpXCA7CivlkIzml4/kvJogPCBkb3V6b2t1a2FpXCA7CivntYzmuIjnmoQgPCBrZWl6YWl0ZWtpXCA7CivmmJPmhJ/mn5PmgKcgPCBpa2Fuc2Vuc2VpXCA7CivniZvkubPlsYsgPCBneXV1bnl1dXlhXCA7Civnt7Tnv5LloLQgPCByZW5zaHV1am91XCA7CivntIDkvIrlnIvlsYsgPCBraW5va3VuaXlhXCA7CivmoZHoi7ogPCBrdXdhaWNoaWdvXCA7CivlpJzpt7nolY7puqYgPCB5b3Rha2Fzb2JhXCA7Civnibnoo73lk4EgPCB0b2t1c2VpaGluXCA7Civli6Tli5nmmYLplpMgPCBraW5tdWppa2FuXCA7Civljq3kuJbkuLvnvqkgPCBlbnNlaXNodWdpXCA7CivljZjkvY3oqJjlj7cgPCB0YW4nJ2lraWdvdVwgOwor6ISa6ImyIDwga3lha3VzaG9rdVwgOwor5LiN6Kqg5a6fIDwgZnVzZWlqaXRzdVwgOwor5b6T5p2l5Z6LIDwganV1cmFpZ2F0YVwgOwor5a++6LGh5L2TIDwgdGFpc2hvdXRhaVwgOwor57KJ55+z6bm4IDwga29uYXNla2tlblwgOwor5aSc5bC/55eHIDwgeWFueW91c2hvdVwgOwor6LaF5paH6Z2iIDwgY2hvdWJ1bm1lblwgOwor5o6S5LuW5Li7576pIDwgaGFpdGFzaHVnaVwgOwor5YuV54mp5ZySIDwgZG91YnV0c3VlblwgOwor57eP55uj552jIDwgc291a2FudG9rdVwgOwor5a6f6Zqb55qEIDwgamlzc2FpdGVraVwgOwor6aC85L+h57SZIDwgcmFpc2hpbnNoaVwgOwor5a6H5a6Z6aOb6KGMIDwgdWNodXVoaWtvdVwgOwor5a6j5pWZ5birIDwgc2Vua3lvdXNoaVwgOwor5qGc6IKJIDwgc2FrdXJhbmlrdVwgOwor6LKs5Lu76ICFIDwgc2VraW5pbnNoYVwgOwor6Zai56+A54KOIDwga2Fuc2V0c3VlblwgOwor6IKp6LuKIDwga2F0YWd1cnVtYVwgOwor5YWx6bO05p2/IDwga3lvdW1laWJhblwgOwor5a6X5Li75Zu9IDwgc291c2h1a29rdVwgOwor5Luu5ZCN6I2J57SZIDwga2FuYXpvdXNoaVwgOwor5pen6LuN5Lq6IDwga3l1dWd1bmppblwgOwor5Y2K5r+B54K5IDwgaGFuZGFrdXRlblwgOwor5Z2R5YaF5LqL5pWFIDwga291bmFpamlrb1wgOwor5Y2K6ZW35b2iIDwgaGFuY2hvdWtlaVwgOwor5Lit5rC06YGTIDwgY2h1dXN1aWRvdVwgOwor6YG45omL5p2RIDwgc2Vuc2h1bXVyYVwgOwor6KuW55CG5ryU566XIDwgcm9ucmllbnphblwgOwor6LOq6YePIDwgc2hpdHN1cnlvdVwgOwor5Y2w5Yi355SoIDwgaW5zYXRzdXlvdVwgOwor6ZyK5p+p6LuKIDwgcmVpa3l1dXNoYVwgOwor5rW35bK456uvIDwga2FpZ2FuYmF0YVwgOwor5aSW55So6JasIDwgZ2FpeW91eWFrdVwgOwor57Sr5paR55eFIDwgc2hpaGFuYnlvdVwgOwor6Ju46YWN5b2TIDwgdGFrb2hhaXRvdVwgOwor6auY5omA55eFIDwga291c2hvYnlvdVwgOwor55Wc5q66IDwgY2hpa3VzYXRzdVwgOwor5aSn5bCP5L6/IDwgZGFpc2hvdWJlblwgOwor6Zu75rCX5q+b5biDIDwgZGVua2ltb3VmdVwgOwor57Gz5Zu95rCRIDwgYmVpa29rdW1pblwgOwor5ZC45rC05oCnIDwga3l1dXN1aXNlaVwgOwor6Zuy6ayi6Iqx6aGUIDwgdW5iaW5rYWdhblwgOwor5b+15LqU5pelIDwgbmVuZ29uaWNoaVwgOwor5Ye65p2l5b+DIDwgZGVraWdva29yb1wgOwor5Lit5b+D6YOoIDwgY2h1dXNoaW5idVwgOwor5b6h5YmN5Lya6K2wIDwgZ296ZW5rYWlnaVwgOwor6ISI6ISIIDwgbXlha3VteWFrdVwgOwor55Sf5L2T5a2mIDwgc2VpdGFpZ2FrdVwgOwor5qWU5b2iIDwga3VzYWJpZ2F0YVwgOwor5LqI5YKZ6Kq/5p+7IDwgeW9iaWNob3VzYVwgOwor5bmz5ZKM5Li7576pIDwgaGVpd2FzaHVnaVwgOwor6IKv5a6a55qEIDwga291dGVpdGVraVwgOwor5qGc57SZIDwgc2FrdXJhZ2FtaVwgOwor5rOo5oSP5LqL6aCFIDwgY2h1dWlqaWtvdVwgOwor5YuV54mp5YyWIDwgZG91YnV0c3VrYVwgOwor5rC05bmz57+8IDwgc3VpaGVpeW9rdVwgOwor6LK/5piT5qWtIDwgYm91ZWtpZ3lvdVwgOwor6IWw5biD5ZujIDwga29zaGlidXRvblwgOwor54iG5pKD5qmfIDwgYmFrdWdla2lraVwgOwor6KiA6KGM6YyyIDwgZ2Vua291cm9rdVwgOwor5Zuj5Zyw5pePIDwgZGFuY2hpem9rdVwgOwor5Lmx6Kq/5a2QIDwgcmFuY2hvdXNoaVwgOwor5YKZ6JOE57GzIDwgYmljaGlrdW1haVwgOwor5aSn5LmX55qEIDwgZGFpam91dGVraVwgOwor54Sh6IO95YqbIDwgbXVub3VyeW9rdVwgOwor6YWq6L6y5aC0IDwgcmFrdW5vdWpvdVwgOwor6IO46YOo5aSW56eRIDwga3lvdWJ1Z2VrYVwgOwor6LKo5a6i6Ii5IDwga2FreWFrdXNlblwgOwor5oSf5p+T55eHIDwga2Fuc2Vuc2hvdVwgOwor55yf55CG5pWZIDwgc2hpbnJpa3lvdVwgOwor5oWI5ZaE6Y2LIDwgaml6ZW4nJ25hYmVcIDsKK+eXheWupCA8IGJ5b3VzaGl0c3VcIDsKK+aKgOihk+WjqyA8IGdpanV0c3VzaGlcIDsKK+iKi+S+jSA8IGltb3phbXVyYWlcIDsKK+WTqOaIkuiJhyA8IHNob3VrYWl0ZWlcIDsKK+mFkuefs+mFuCA8IHNodXNla2lzYW5cIDsKK+aVt+W4g+WboyA8IHNoaWtpYnV0b25cIDsKK+mdnuWPr+aPm+e+pCA8IGhpa2FrYW5ndW5cIDsKK+WPjeWJh+mHkSA8IGhhbnNva3VraW5cIDsKK+mBuuS8neaDheWgsSA8IGlkZW5qb3Vob3VcIDsKK+acieapn+eJqSA8IHl1dWtpYnV0c3VcIDsKK+iCieizqiA8IG5pa3VzaGl0c3VcIDsKK+WvhOeUn+eBq+WxsSA8IGtpc2Vpa2F6YW5cIDsKK+aKveixoeeUuyA8IGNodXVzaG91Z2FcIDsKK+enn+WAn+aoqSA8IHNvc2hha3VrZW5cIDsKK+WGheeUs+abuCA8IG5haXNoaW5zaG9cIDsKK+WQjOe0mueUnyA8IGRvdWt5dXVzZWlcIDsKK+WQkeexs+eahCA8IGtvdWJlaXRla2lcIDsKK+imquihm+WFtSA8IHNoaW4nJ2VpaGVpXCA7Civku4/mlofnp5EgPCBmdXRzdWJ1bmthXCA7Civkuozpg6jmjojmpa0gPCBuaWJ1anVneW91XCA7Civlj5blvJXmiYAgPCB0b3JpaGlraWpvXCA7Civpm7vou4ros4MgPCBkZW5zaGFjaGluXCA7Civpm4bmlaPlnLAgPCBzaHV1c2FuY2hpXCA7Civntrrmg7Pmm7IgPCBraXNvdWt5b2t1XCA7CivkuIroqr/lrZAgPCB1d2FjaG91c2hpXCA7CivlhoXoh5PlvJMgPCBuYWl6b3VreXV1XCA7CivljYrplovlm70gPCBoYW5rYWlrb2t1XCA7Civoo73pgKDmpa0gPCBzZWl6b3VneW91XCA7Civov73mkoPmqZ8gPCB0c3VpZ2VraWtpXCA7CivkuInop5LnrYsgPCBzYW5rYWt1a2luXCA7CivpnZ7llrbliKnnmoQgPCBoaWVpcml0ZWtpXCA7CivnrYnmt7Hnt5ogPCB0b3VzaGluc2VuXCA7Civpp4bli5XlipsgPCBrdWRvdXJ5b2t1XCA7CivmsrPlt53lt6XkuosgPCBrYXNlbmtvdWppXCA7Civph43lt6Xmpa0gPCBqdXVrb3VneW91XCA7CivpurvnuZTniakgPCBhc2Fvcmltb25vXCA7Civml6XlsITnl4UgPCBuaXNzaGFieW91XCA7CivnhrHooYDlhZAgPCBuZWtrZXRzdWppXCA7Civph5HlsZ7oo70gPCBraW56b2t1c2VpXCA7CivmnKzlpZHntIQgPCBob25rZWl5YWt1XCA7Civnm7jmiYvmrKHnrKwgPCBhaXRlc2hpZGFpXCA7Civpu4TopJDoibIgPCBvdWthc3Nob2t1XCA7Civos7zlhaXogIUgPCBrb3VueXV1c2hhXCA7CivkuI3nsr7ogIUgPCBidXNob3Vtb25vXCA7CivkuLvlv5zlipsgPCBzaHVvdXJ5b2t1XCA7Civkvr/lrpzkuLvnvqkgPCBiZW5naXNodWdpXCA7Civln7znjonli6IgPCBzYWl0YW1hemVpXCA7Civlrp3oiLkgPCB0YWthcmFidW5lXCA7Civph43lgrfogIUgPCBqdXVzaG91c2hhXCA7Civnmq7ohprlkbzlkLggPCBoaWZ1a29reXV1XCA7CivlsbHmoZwgPCB5YW1hemFrdXJhXCA7CivkupzmiJDlsaTlnI8gPCBhc2Vpc291a2VuXCA7CivlgrflrrPnvaogPCBzaG91Z2FpemFpXCA7CivkvZzmiKbkuIogPCBzYWt1c2Vuam91XCA7CivlgbTlrqQgPCBzb2t1c2hpdHN1XCA7Civohp3mnpUgPCBoaXphbWFrdXJhXCA7CivmvZzmsLTnl4UgPCBzZW5zdWlieW91XCA7CivkuK3mgKfntJkgPCBjaHV1c2Vpc2hpXCA7CivkubPpppYgPCBjaGljaGlrdWJpXCA7CivoqLrnmYLmiYAgPCBzaGlucnlvdWpvXCA7Civnqbrou43lpKflsIkgPCBrdXVndW50YWlpXCA7Civml6XmnKzpo58gPCBuaWhvbnNob2t1XCA7CivnqLzlg43njocgPCBrYWRvdXJpdHN1XCA7CivpgKPlkIjlm70gPCByZW5nb3Vrb2t1XCA7CivlhazmsJHlraYgPCBrb3VtaW5nYWt1XCA7CivnoJTnqbbogIUgPCBrZW5reXV1c2hhXCA7CivpnZnmsLTlnKcgPCBzZWlzdWlhdHN1XCA7CivnmbvpjLLogIUgPCB0b3Vyb2t1c2hhXCA7Civmupbmsbrli50gPCBqdW5rZXNzaG91XCA7CivmpbXlipsgPCBreW9rdXJ5b2t1XCA7Civmoq/lrZDou4ogPCBoYXNoaWdvc2hhXCA7CivkuInopqrnrYkgPCBzYW5zaGludG91XCA7CivkuI3ntJTniakgPCBmdWp1bmJ1dHN1XCA7CivkuIrlpbPkuK0gPCBrYW1pam9jaHV1XCA7Civps6Xlj5bnnIwgPCB0b3R0b3Jpa2VuXCA7CivmoZHnlZEgPCBrdXdhYmF0YWtlXCA7CivosqfkuY/prK4gPCBiaW5ib3VrdWppXCA7CivllK/kuIDluqYgPCB0YWRhaWNoaWRvXCA7CivmorXlkozovp7lhbggPCBib253YWppdGVuXCA7Civlpb3oibLlrrYgPCBrb3VzaG9rdWthXCA7Civmr5vnmq7llYYgPCBrZWdhd2FzaG91XCA7Civmr5TovIPntJogPCBoaWtha3VreXV1XCA7Civnj77lnKjpq5ggPCBnZW56YWlkYWthXCA7CivnlaXlvI8gPCByeWFrdXNoaWtpXCA7CivpmbjmtbfnqbogPCByaWt1a2Fpa3V1XCA7Civlj4znnLzpj6EgPCBzb3VnYW5reW91XCA7CivmjqfoqLTnkIbnlLEgPCBrb3Vzb3JpeXV1XCA7Civpp5DovKrloLQgPCBjaHV1cmluam91XCA7Civpg6jpmorljLrliIYgPCBidXRhaWt1YnVuXCA7CivmnpXoqLEgPCBtYWt1cmFtb3RvXCA7Civnmb3piYTpibEgPCBoYWt1dGVra291XCA7CivlpKflrq7kurogPCBvb21peWFiaXRvXCA7CivmgqrprZTkuLvnvqkgPCBha3VtYXNodWdpXCA7Civpm6rlkIjmiKYgPCB5dWtpZ2Fzc2VuXCA7CivniYfmoJfnsokgPCBrYXRha3VyaWtvXCA7CivnmbrooajkvJogPCBoYXBweW91a2FpXCA7Civlrp3nsaQgPCB0YWthcmFrdWppXCA7CivlkJDngInniakgPCB0b3NoYWJ1dHN1XCA7Civorbflsrjlt6XkuosgPCBnb2dhbmtvdWppXCA7Civoo4/ooajntJkgPCB1cmFieW91c2hpXCA7CivliIfmlq3lm7MgPCBzZXRzdWRhbnp1XCA7CivmgJ3mg5HosrcgPCBvbW93YWt1Z2FpXCA7CivoprPlv7Xoq5YgPCBrYW4nJ25lbnJvblwgOwor546J6Z+z55ukIDwgZ3lva3VvbmJhblwgOwor5a6d566xIDwgdGFrYXJhYmFrb1wgOwor5Y+N5YuV55qEIDwgaGFuZG91dGVraVwgOwor6LOq6I2JIDwgc2hpY2hpZ3VzYVwgOwor5pWR5ZG96ImHIDwga3l1dW1laXRlaVwgOwor57W25a++55qEIDwgemV0dGFpdGVraVwgOwor6aqo5aO3IDwga290c3V0c3Vib1wgOwor5ris6YeP5ZuzIDwgc29rdXJ5b3V6dVwgOwor5LiJ5aSn5Zu9IDwgc2FuZGFpa29rdVwgOwor5Zyw5pa555eFIDwgY2hpaG91YnlvdVwgOwor5a6/55u0IDwgc2h1a3VjaG9rdVwgOwor5Ye654mI6ICFIDwgc2h1cHBhbnNoYVwgOwor5L6b57Wm6LevIDwga3lvdWt5dXVyb1wgOwor56uc5raO6aaZIDwgcnl1dXplbmtvdVwgOwor5bCE54iG5aC0IDwgc2hhYmFrdWpvdVwgOwor5ris6YeP5ZmoIDwgc29rdXJ5b3VraVwgOwor5Zyf5L+X5a2mIDwgZG96b2t1Z2FrdVwgOwor576O5aWz5qGcIDwgYmlqb3pha3VyYVwgOwor5Y2X44CF5p2xIDwgbmFuJyduYW50b3VcIDsKK+S6uuagvOaoqSA8IGppbmtha3VrZW5cIDsKK+WIhuino+eahCA8IGJ1bmthaXRla2lcIDsKK+eUsOWkq+mHjuS6uiA8IGRlbnB1eWFqaW5cIDsKK+S7luimmueahCA8IHRha2FrdXRla2lcIDsKK+WkqeS4u+aVmSA8IHRlbnNodWt5b3VcIDsKK+mbquWMlueypyA8IHl1a2lnZXNob3VcIDsKK+W9ouW8j+e+jiA8IGtlaXNoaWtpYmlcIDsKK+Wlh+Wlh+aAquaAqiA8IGtpa2lrYWlrYWlcIDsKK+mbu+mAmuWkpyA8IGRlbnRzdXVkYWlcIDsKK+S4ieinkueCuSA8IHNhbmtha3V0ZW5cIDsKK+S8neabuOmzqSA8IGRlbnNob2JhdG9cIDsKK+S7luimmueXhyA8IHRha2FrdXNob3VcIDsKK+a2iOiAl+aIpiA8IHNob3Vtb3VzZW5cIDsKK+S7leios+abuCA8IHNoaXdha2VzaG9cIDsKK+mBiuS8keWcsCA8IHl1dWt5dXVjaGlcIDsKK+WCmeS7mCA8IHNvbmFldHN1a2VcIDsKK+WPjeW/nOaApyA8IGhhbicnbm91c2VpXCA7CivmmrTotbDml48gPCBib3Vzb3V6b2t1XCA7CivntIDlhYPnr4AgPCBraWdlbnNldHN1XCA7CivmuKnms4nlrr8gPCBvbnNlbicneWFkb1wgOwor5ZSQ6L6b5a2QIDwgdG91Z2FyYXNoaVwgOwor5pel5Lit6Z+TIDwgbml0Y2h1dWthblwgOwor55CG6Kej5YqbIDwgcmlrYWlyeW9rdVwgOwor55Wl5aWqIDwgcnlha3VkYXRzdVwgOwor5YWs5YWx6LKhIDwga291a3lvdXphaVwgOwor5qSc5a6a5paZIDwga2VudGVpcnlvdVwgOwor5biC6ZW36YG4IDwgc2hpY2hvdXNlblwgOwor5a6J5pmu6KuLIDwgeWFzdWJ1c2hpblwgOwor56We5Luj5paH5a2XIDwgamluZGFpbW9qaVwgOwor5Y+k5YW45pmC5LujIDwga290ZW5qaWRhaVwgOwor5biC5Lya6K2w5ZOhIDwgc2hpa2FpZ2lpblwgOwor5rC06YGT5paZIDwgc3VpZG91cnlvdVwgOwor5Lih5oiQ5pWXIDwgcnlvdXNlaWJhaVwgOwor5Y2x6Zm66LKg5ouFIDwga2lrZW5mdXRhblwgOwor5Yid56+A5Y+lIDwgaGF0c3V6ZWtrdVwgOwor5q+U6LyD55qEIDwgaGlrYWt1dGVraVwgOwor5Zu96YCj6LuNIDwga29rdXJlbmd1blwgOwor5LiK57Sa55SfIDwgam91a3l1dXNlaVwgOwor54Sh6aCT552AIDwgbXV0b25jaGFrdVwgOwor5YaN5p2l5pyIIDwgc2FyYWlnZXRzdVwgOwor5b6M5pel6KuHIDwgZ29qaXRzdWRhblwgOwor5YKZ6I2S6aOfIDwgYmlrb3VzaG9rdVwgOwor5YGl5bq35LiN5a6JIDwga2Vua291ZnVhblwgOwor5p2+6JmrIDwgbWF0c3VtdXNoaVwgOwor5LiN6KGM6LehIDwgZnVneW91c2VraVwgOwor5pac6Zm95pePIDwgc2hheW91em9rdVwgOwor6Z2S5YyW54mpIDwgc2Vpa2FidXRzdVwgOwor5b+c5oCl5rih5rKzIDwgb3VreXV1dG9rYVwgOwor5aSp546L5bGxIDwgdGVuJydub3V6YW5cIDsKK+S6jOmHjeWQpuWumiA8IG5panV1aGl0ZWlcIDsKK+WOhOS7i+iAhSA8IHlha2thaW1vbm9cIDsKK+WLh+eMm+W/gyA8IHl1dW1vdXNoaW5cIDsKK+atpuWKm+aIpiA8IGJ1cnlva3VzZW5cIDsKK+S4ieinkuazlSA8IHNhbmtha3Vob3VcIDsKK+aEj+awl+ihneWkqSA8IGlraXNob3V0ZW5cIDsKK+Wul+aVmeeUuyA8IHNodXVreW91Z2FcIDsKK+eglOeptueUnyA8IGtlbmt5dXVzZWlcIDsKK+WHuuWllOiAhSA8IHNodXBwb25zaGFcIDsKK+WPjuebiumHkSA8IHNodXVla2lraW5cIDsKK+awt+iPk+WtkCA8IGtvb3JpZ2FzaGlcIDsKK+WMu+WtpueUqOiqniA8IGlnYWt1eW91Z29cIDsKK+iInuWPsOWKueaenCA8IGJ1dGFpa291a2FcIDsKK+i7veW3pealrSA8IGtlaWtvdWd5b3VcIDsKK+iomOaGtuWKmyA8IGtpb2t1cnlva3VcIDsKK+WNs+iIiOipqSA8IHNva2t5b3VzaGlcIDsKK+WPpOeUn+eJqSA8IGtvc2VpYnV0c3VcIDsKK+eGseaEm+iAhSA8IG5ldHN1YWlzaGFcIDsKK+WkqemggueCuSA8IHRlbmNob3V0ZW5cIDsKK+eEoeizh+WKmyA8IG11c2hpcnlva3VcIDsKK+iIiOihjOaoqSA8IGtvdWd5b3VrZW5cIDsKK+advuagueayuSA8IHNob3Vrb24nJ3l1XCA7CivkuKHpmqMgPCByeW91ZG9uYXJpXCA7Civnmb7muIjmpb0gPCBrdWRhcmFnYWt1XCA7CivlnKjku7vkuK0gPCB6YWluaW5jaHV1XCA7Civmu57lnKjkuK0gPCB0YWl6YWljaHV1XCA7Civoo73ojLbmpa0gPCBzZWljaGFneW91XCA7Civosr/mmJPllYYgPCBib3Vla2lzaG91XCA7Civlm73li5nnnIEgPCBrb2t1bXVzaG91XCA7CivkuK3ljZfnsbMgPCBjaHV1bmFuYmVpXCA7CivnvqTpm4AgPCBtdXJhc3V6dW1lXCA7CivmoZDkuIDokYkgPCBraXJpaGl0b2hhXCA7Civpm7vkvY3lt67oqIggPCBkZW4nJ2lzYWtlaVwgOwor5YWl6YG46ICFIDwgbnl1dXNlbnNoYVwgOwor57im56S+5LyaIDwgdGF0ZXNoYWthaVwgOwor5bqm5pWw5YiG5biDIDwgZG9zdXVidW5wdVwgOwor5pON57im5bitIDwgc291anV1c2VraVwgOwor5ZGo5peL5bGLIDwgc2h1dXNlbicneWFcIDsKK+aWh+WtpuWjqyA8IGJ1bmdha3VzaGlcIDsKK+mBi+mAgeS/nemZuiA8IHVuc291aG9rZW5cIDsKK+W3peWtpuiAhSA8IGtvdWdha3VzaGFcIDsKK+WPpOS8neiqrCA8IGtvZGVuc2V0c3VcIDsKK+WNsOWIt+W3pSA8IGluc2F0c3Vrb3VcIDsKK+a9nOawtOacjSA8IHNlbnN1aWZ1a3VcIDsKK+acqOizqiA8IG1va3VzaGl0c3VcIDsKK+Wkp+S4u+aVmSA8IGRhaXNodWt5b3VcIDsKK+S4iuWgtOagqiA8IGpvdWpvdWthYnVcIDsKK+mhnuWei+eahCA8IHJ1aWtlaXRla2lcIDsKK+Wun+eJqSA8IGppdHN1YnV0c3VcIDsKK+S4i+mcsiA8IHNoaXRhdHN1eXVcIDsKK+WQueWHuueJqSA8IGZ1a2lkZW1vbm9cIDsKK+aKl+ecn+iPjCA8IGtvdXNoaW5raW5cIDsKK+mbo+azoua9nyA8IG5hbml3YWdhdGFcIDsKK+enn+WAn+WcsCA8IHNvc2hha3VjaGlcIDsKK+WKoOi+suegsiA8IGthbicnbm9uaG91XCA7CivpgKDnn7PnqI4gPCB6b3Vrb2t1emVpXCA7Civpp5Dou4rloLQgPCBjaHV1c2hham91XCA7CivoqabnrpfooaggPCBzaGlzYW5oeW91XCA7CivntYzmuIjlraYgPCBrZWl6YWlnYWt1XCA7CivmgKXli77phY0gPCBreXV1a291YmFpXCA7CivlhIDlvI/nlKggPCBnaXNoaWtpeW91XCA7Civpq5jmiYvlsI/miYsgPCB0YWthdGVrb3RlXCA7CivooYDmoJPnl4cgPCBrZXNzZW5zaG91XCA7CivkvIrpgZTlp78gPCBkYXRlc3VnYXRhXCA7Civnl4Xljp/kvZMgPCBieW91Z2VudGFpXCA7CivnhKHlkbPkub7nh6UgPCBtdW1pa2Fuc291XCA7CivkuIvpmaLorbDplbcgPCBrYWluZ2ljaG91XCA7CivlhavliIbnm64gPCBoYWNoaWJ1bm1lXCA7Civop6PmnpDmgKcgPCBrYWlzZWtpc2VpXCA7Civou43lgpnnrqHnkIYgPCBndW5iaWthbnJpXCA7CivlrqLoprPmgKcgPCBreWFra2Fuc2VpXCA7CivnlZzlipsgPCBjaGlrdXJ5b2t1XCA7CivotoXlqpLkvZMgPCBjaG91YmFpdGFpXCA7CivmsLToiq3olYkgPCBtaXp1YmFzaG91XCA7CivplbfmnJ/nmoQgPCBjaG91a2l0ZWtpXCA7CivnnLzpj6Hom4cgPCBtZWdhbmVoZWJpXCA7CivmqLnohILliqDlt6UgPCBqdXNoaWtha291XCA7Civlh7rniYjnlYwgPCBzaHVwcGFua2FpXCA7CivlvIHlhJ/ph5EgPCBiZW5zaG91a2luXCA7CivmnKrnhp/ogIUgPCBtaWp1a3Vtb25vXCA7CivliIbmlaPlnosgPCBidW5zYW5nYXRhXCA7Civnn63nt6jpm4YgPCB0YW5wZW5zaHV1XCA7Civlr5LmpL8gPCBrYW50c3ViYWtpXCA7CivliKnmsLTlt6XkuosgPCByaXN1aWtvdWppXCA7Civmt6Hot6/ls7YgPCBhd2FqaXNoaW1hXCA7CivlopfmrpbngokgPCB6b3VzaG9rdXJvXCA7CivkuIvopovmnb8gPCBzaGl0YW1paXRhXCA7CivliIbmlZnloLQgPCBidW5reW91am91XCA7CivpnZ7luLjkuovmhYsgPCBoaWpvdWppdGFpXCA7Civmraboo4XonILotbcgPCBidXNvdWhvdWtpXCA7Civlj7LmlpnppKggPCBzaGlyeW91a2FuXCA7CivmnInlo7Dpn7PljJYgPCB5dXVzZWlvbmthXCA7CivooYDlsI/mnb8gPCBrZXNzaG91YmFuXCA7Civos6rnmoQgPCBzaGl0c3V0ZWtpXCA7Civph5HoibLloIIgPCBrb25qaWtpZG91XCA7CivmvKLmlrnolqwgPCBrYW5wb3V5YWt1XCA7CivkvqHlgKTln7rmupYgPCBrYWNoaWtpanVuXCA7Civoqr/nkIblmajlhbcgPCBjaG91cmlraWd1XCA7CivnoLLnhZnlvL7pm6ggPCBob3VlbmRhbicndVwgOwor57+76Kiz5a62IDwgaG9uJyd5YWt1a2FcIDsKK+W5s+etieimsyA8IGJ5b3Vkb3VrYW5cIDsKK+aknOafu+WumCA8IGtlbnNob3VrYW5cIDsKK+WkieWIhuWtpiA8IGhlbmJ1bmdha3VcIDsKK+WJjeagveeJqSA8IHNlbnphaW1vbm9cIDsKK+W8t+WjruWJpCA8IGt5b3Vzb3V6YWlcIDsKK+a1t+eUo+alrSA8IGthaXNhbmd5b3VcIDsKK+mmrOiAs+adsemiqCA8IGJhaml0b3VmdXVcIDsKK+eMrue0jeiAhSA8IGtlbicnbm91c2hhXCA7Civlha3pgKPmmJ8gPCByb2t1cmVuc2VpXCA7CivmopTlrZAgPCBrdWNoaW5hc2hpXCA7Civli4XpoZjlr7ogPCBjaG9rdWdhbmppXCA7CivkvJ3mn5Pnl4UgPCBkZW5zZW5ieW91XCA7CivpqYDlnLAgPCBtYXNzaGlndXJhXCA7CivkuK3oj6/pjYsgPCBjaHV1a2FuYWJlXCA7CivlpKnkuIrlt50gPCB0ZW5qb3VnYXdhXCA7CivmtIvoiqXlrZAgPCB5b3VnYXJhc2hpXCA7Civnmobli6Tos54gPCBrYWlraW5zaG91XCA7Civph5HlsZ7niYcgPCBraW56b2t1aGVuXCA7CivlpYfooZPluKsgPCBraWp1dHN1c2hpXCA7CivlopfliqDnjocgPCB6b3VrYXJpdHN1XCA7CivmqJnmupblnosgPCBoeW91anVua2VpXCA7Civph5HotaToibIgPCBraW4nJ2FrYWlyb1wgOwor6LKs5Lu75oSfIDwgc2VraW5pbmthblwgOwor5reL5be056+AIDwgcmlucGFzZXRzdVwgOwor5L6b54mp5Y+wIDwga3Vtb3RzdWRhaVwgOwor57Gz5Zu95Lq6IDwgYmVpa29rdWppblwgOwor562J5rip5byPIDwgdG91b25zaGlraVwgOwor5YmN5Lu76ICFIDwgemVuJyduaW5zaGFcIDsKK+ijvemAoOWFgyA8IHNlaXpvdW1vdG9cIDsKK+aDheWgsemHjyA8IGpvdWhvdXJ5b3VcIDsKK+W5s+ihjOenu+WLlSA8IGhlaWtvdWlkb3VcIDsKK+a2iOiAl+WTgSA8IHNob3Vtb3VoaW5cIDsKK+S4oeaJi+WIqSA8IHJ5b3V0ZWtpa2lcIDsKK+iThOmbu+WZqCA8IGNoaWt1ZGVua2lcIDsKK+Wvvuinkue3miA8IHRhaWtha3VzZW5cIDsKK+WxseWIgCA8IHlhbWFnYXRhbmFcIDsKK+S4gOaZqeS4rSA8IGhpdG9iYW5qdXVcIDsKK+S4i+mBkyA8IHNoaXRhbWljaGlcIDsKK+aal+WJo+auuiA8IGFua2Vuc2F0c3VcIDsKK+mgrei2s+mhniA8IHRvdXNva3VydWlcIDsKK+WcqOadseS6rCA8IHphaXRvdWt5b3VcIDsKK+ajhOiogOiRiSA8IHN1dGVrb3RvYmFcIDsKK+WFjeeojuihqCA8IG1lbnplaWh5b3VcIDsKK+WbveawkeaApyA8IGtva3VtaW5zZWlcIDsKK+ijnOWKqeWLleipniA8IGhvam9kb3VzaGlcIDsKK+W9q+WIu+WutiA8IGNob3Vrb2t1a2FcIDsKK+S4jei6viA8IGJ1c2hpdHN1a2VcIDsKK+eUn+WNtSA8IG5hbWF0YW1hZ29cIDsKK+iqreabuOeVjCA8IGRva3VzaG9rYWlcIDsKK+miqOiWrCA8IGthemVndXN1cmlcIDsKK+absuiqrCA8IGt5b2t1c2V0c3VcIDsKK+WxheeVmeawkSA8IGt5b3J5dXVtaW5cIDsKK+S4uOijuCA8IG1hcnVoYWRha2FcIDsKK+aXi+WFieinkiA8IHNlbmtvdWtha3VcIDsKK+mjr+eykiA8IG1lc2hpdHN1YnVcIDsKK+Wwj+mWk+S9vyA8IGtvbWFkenVrYWlcIDsKK+inkuiGnOeCjiA8IGtha3VtYWt1ZW5cIDsKK+eMq+i7iiA8IG5la29ndXJ1bWFcIDsKK+mwreiEmumhniA8IGtpa3lha3VydWlcIDsKK+mRkeitmOWutiA8IGthbnNoaWtpa2FcIDsKK+iIiOihjOW4qyA8IGtvdWd5b3VzaGlcIDsKK+S4iei2iiA8IG1pdHN1a29zaGlcIDsKK+WstuWkqeS4iyA8IGtha2FhZGVua2FcIDsKK+WbuuW9oueJqSA8IGtva2VpYnV0c3VcIDsKK+e0oee4vuezuCA8IGJvdXNla2lpdG9cIDsKK+WQpuWumuW/nOetlCA8IGhpdGVpb3V0b3VcIDsKK+WQneWXh+WutiA8IHJpbnNob2t1a2FcIDsKK+eCuuabv+WwuyA8IGthd2FzZWppcmlcIDsKK+iqreiAheashCA8IGRva3VzaGFyYW5cIDsKK+WHuuS4luS9nCA8IHNodXNzZXNha3VcIDsKK+WLleaRqeaTpiA8IGRvdW1hc2F0c3VcIDsKK+mDqOWIhumjnyA8IGJ1YnVuc2hva3VcIDsKK+WHuueJiOazlSA8IHNodXBwYW5ob3VcIDsKK+iqsumhjOabsiA8IGthZGFpa3lva3VcIDsKK+WuouaciCA8IGt5YWt1Z2V0c3VcIDsKK+auuuiZq+WJpCA8IHNhdGNodXV6YWlcIDsKK+iWhOmbquiNiSA8IHVzdXl1a2lzb3VcIDsKK+S6uuS9k+WtpiA8IGppbnRhaWdha3VcIDsKK+W5s+WfjuS6rCA8IGhlaWpvdWt5b3VcIDsKK+S4ieinkuW4vSA8IHNhbmtha3Vib3VcIDsKK+ihneaSg+azoiA8IHNob3VnZWtpaGFcIDsKK+iHquW3seizh+acrCA8IGppa29zaGlob25cIDsKK+mDtemAgeaWmSA8IHl1dXNvdXJ5b3VcIDsKK+efs+eCremFuCA8IHNla2l0YW5zYW5cIDsKK+W+geacjeiAhSA8IHNlaWZ1a3VzaGFcIDsKK+mhlOiyjCA8IGthb2thdGFjaGlcIDsKK+m7hOmHkeaZguS7oyA8IG91Z29uamlkYWlcIDsKK+WRveS7pOS4gOS4iyA8IG1laXJlaWlra2FcIDsKK+W8t+ihjOi7jSA8IGt5b3Vrb3VndW5cIDsKK+e0jeS7mOacn+mZkCA8IG5vdWZ1a2lnZW5cIDsKK+S7o+ihqOWboyA8IGRhaWh5b3VkYW5cIDsKK+Wwj+WFkOm6u+eXuiA8IHNob3VuaW1haGlcIDsKK+iEmuacrOWutiA8IGt5YWt1aG9ua2FcIDsKK+iPk+WtkOmJoiA8IGthc2hpYmFjaGlcIDsKK+ebtOWGhumMkCA8IGNob2t1ZW5zdWlcIDsKK+Wuo+S8neiomOS6iyA8IHNlbmRlbmtpamlcIDsKK+WHuueJiOaoqSA8IHNodXBwYW5rZW5cIDsKK+WGjeacjeW9uSA8IHNhaWZ1a3Vla2lcIDsKK+eUn+aUvumAgSA8IG5hbWFob3Vzb3VcIDsKK+ioiOeul+WwuiA8IGtlaXNhbmpha3VcIDsKK+Wkj+Wto+S8keaahyA8IGtha2lreXV1a2FcIDsKK+mAmuWLpOiAhSA8IHRzdXVraW5zaGFcIDsKK+S4gOWhgee3miA8IGljaGlydWlzZW5cIDsKK+iHqOaZguaUv+W6nCA8IHJpbmppc2VpZnVcIDsKK+WwuuWFqyA8IHNoYWt1aGFjaGlcIDsKK+a2sumHj+ioiCA8IGVraXJ5b3VrZWlcIDsKK+S4ieaXpeS4ieaZqSA8IG1pa2thbWliYW5cIDsKK+WIh+aUr+S4uSA8IGtpcmlzaGl0YW5cIDsKK+mXh+W4guWgtCA8IHlhbWlzaGlqb3VcIDsKK+adseeUtyA8IGF6dW1hb3Rva29cIDsKK+manOWus+iAhSA8IHNob3VnYWlzaGFcIDsKK+iytOaXj+eahCA8IGtpem9rdXRla2lcIDsKK+WNsOWIt+S6uiA8IGluc2F0c3VuaW5cIDsKK+a1t+iziuiIuSA8IGthaXpva3VzZW5cIDsKK+aKveixoeWMliA8IGNodXVzaG91a2FcIDsKK+ism+e/kuS8miA8IGtvdXNodXVrYWlcIDsKK+aEm+eOqeeJqSA8IGFpZ2FuYnV0c3VcIDsKK+m6u+mbgOWxiyA8IG1hemVqYW4nJ3lhXCA7CivkvJ3mn5Pmr5IgPCBkZW5zZW5kb2t1XCA7CivnhKHnkIbpm6PpoYwgPCBtdXJpbmFuZGFpXCA7Civku5blm73ogIUgPCB0YWtva3Vtb25vXCA7Civkuojlgpnoo4Xnva4gPCB5b2Jpc291Y2hpXCA7CivmnpzmqLnmoL3ln7kgPCBrYWp1c2FpYmFpXCA7Civph43lsaTnmoQgPCBqdXVzb3V0ZWtpXCA7Civos6rmqLggPCBzaGl0c3Vib2t1XCA7CivkupTph43loZQgPCBnb2p1dW5vdG91XCA7CivkuIvntJrlr6kgPCBrYWt5dXVzaGluXCA7CivogpjmnpUgPCBoaWppbWFrdXJhXCA7CivnspfooaPnspfpo58gPCBzb2lzb3Nob2t1XCA7CivkvY7miYDlvpcgPCB0ZWlzaG90b2t1XCA7Civku4/mu4UgPCBidXRzdW1ldHN1XCA7CivlsILploDnq6AgPCBzZW5tb25zaG91XCA7Civpi7PpgKDmiYAgPCBjaHV1em91c2hvXCA7Civnn63mmYLml6UgPCB0YW5qaWppdHN1XCA7CivkvJHmpa3ml6UgPCBreXV1Z3lvdWJpXCA7CivlhYjnq6/nmoQgPCBzZW50YW50ZWtpXCA7CivkurrmsJHlp5Tlk6EgPCBqaW5taW4nJ2lpblwgOwor5Zan5Zip6IWwIDwga2Vua2Fnb3NoaVwgOwor6I2J5Y+M57SZIDwga3VzYXpvdXNoaVwgOwor56m65oOz55qEIDwga3V1c291dGVraVwgOwor6aO95ZKM6JK45rCXIDwgaG91d2Fqb3VraVwgOwor6Zuq6YGU56OoIDwgeXVraWRhcnVtYVwgOwor5Yy55aSr5Yy55ammIDwgaGlwcHVoaXBwdVwgOwor5YaF5Lqk5riJIDwgbmFpa291c2hvdVwgOwor5bqD5ZGK56S+IDwga291a29rdXNoYVwgOwor5bCP5YyFIDwga29kenV0c3VtaVwgOwor5a+G5a+GIDwgbWl0c3VtaXRzdVwgOwor5LqM5YiG6Z+z56ymIDwgbmlidW4nJ29ucHVcIDsKK+iyqOeJqemnhSA8IGthbW90c3Vla2lcIDsKK+WNg+azouS4h+azoiA8IHNlbnBhYmFucGFcIDsKK+iyp+S5j+expCA8IGJpbmJvdWd1amlcIDsKK+WvvuipseW8jyA8IHRhaXdhc2hpa2lcIDsKK+WwseS4rSA8IG5ha2FuZHp1a3VcIDsKK+WFseeUo+i7jSA8IGt5b3VzYW5ndW5cIDsKK+S4iuiThiA8IHV3YW11c2hpcm9cIDsKK+S4jeaJv+irviA8IGZ1c2hvdWRha3VcIDsKK+axguS6uuiqjCA8IGt5dXVqaW5zaGlcIDsKK+mereavm+iZqyA8IGJlbm1vdWNodXVcIDsKK+ewoeWNmOacjSA8IGthbnRhbmZ1a3VcIDsKK+m7kuepgueXhSA8IGt1cm9ob2J5b3VcIDsKK+iEseWKmyA8IGRhdHN1cnlva3VcIDsKK+izquacrSA8IHNoaWNoaWZ1ZGFcIDsKK+WIhuaLhemhjSA8IGJ1bnRhbmdha3VcIDsKK+eVsOW4uOeZuueUnyA8IGlqb3VoYXNzZWlcIDsKK+ayu+WuiemDqOmaiiA8IGNoaWFuYnV0YWlcIDsKK+WkqumZveiZqyA8IHRhaXlvdWNodXVcIDsKK+aaq+WumueahCA8IHphbnRlaXRla2lcIDsKK+S7o+ihqOS+iyA8IGRhaWh5b3VyZWlcIDsKK+S4ieiPsSA8IG1pdHN1YmlzaGlcIDsKK+WIg+WCt+aymeaxsCA8IG5pbmpvdXphdGFcIDsKK+WQjOWbveawkSA8IGRvdWtva3VtaW5cIDsKK+iomOW/teeJqSA8IGtpbmVuYnV0c3VcIDsKK+aXp+S9k+WItiA8IGt5dXV0YWlzZWlcIDsKK+S7ruaelSA8IGthcmltYWt1cmFcIDsKK+WNl+a0i+adkCA8IG5hbicneW91emFpXCA7CivpnZ7luLjlj6MgPCBoaWpvdWd1Y2hpXCA7CivkuIrooajntJkgPCB1d2FieW91c2hpXCA7CivpnaLnmb3lkbMgPCBvbW9zaGlyb21pXCA7Civkv53lrZjpo58gPCBob3pvbnNob2t1XCA7CivkuI3mtLvmgKfljJYgPCBmdWthc3NlaWthXCA7CivljYrmhI/orZggPCBoYW4nJ2lzaGlraVwgOwor5L6b5Ye6IDwga3lvdXNodXRzdVwgOwor5a6u5a6kIDwga3l1dXNoaXRzdVwgOwor5pys6Kq/5a2QIDwgaG9uY2hvdXNoaVwgOwor57mU5aWz5pifIDwgc2hva3Vqb3NlaVwgOwor5pil6ZyeIDwgaGFydWdhc3VtaVwgOwor5bCC6ZaA55qEIDwgc2VubW9udGVraVwgOwor6aOf54mpIDwgc2hva3Vtb3RzdVwgOwor5aCx5YSf6YeRIDwgaG91c2hvdWtpblwgOwor5pOy5by+562SIDwgdGVraWRhbnRvdVwgOwor6LKn5LmP56WeIDwgYmluYm91Z2FtaVwgOwor5piU6aKoIDwgbXVrYXNoaWZ1dVwgOwor5aSn57Wx6aCYIDwgZGFpdG91cnlvdVwgOwor6YeP5a2Q6KuWIDwgcnlvdXNoaXJvblwgOwor5Lit5Yqb57KJIDwgY2h1dXJpa2lrb1wgOwor5a6d5bO2IDwgdGFrYXJhamltYVwgOwor5bel5LqL54++5aC0IDwga291amlnZW5iYVwgOwor55y86Y+h54y/IDwgbWVnYW5lemFydVwgOwor5LuP5qeYIDwgaG90b2tlc2FtYVwgOwor6ISa5YqbIDwga3lha3VyeW9rdVwgOwor5qWt55WM57SZIDwgZ3lvdWthaXNoaVwgOwor6Z2e5YWs5byPIDwgaGlrb3VzaGlraVwgOwor5rC05YW15pyNIDwgc3VpaGVpZnVrdVwgOwor6LKv5pyo5aC0IDwgY2hvYm9rdWpvdVwgOwor5qKv5a2Q5q61IDwgaGFzaGlnb2RhblwgOwor5b2T5q2z6aeSIDwgdG91c2FpZ29tYVwgOwor5a6X5pWZ5a62IDwgc2h1dWt5b3VrYVwgOwor56CU56m25a6YIDwga2Vua3l1dWthblwgOwor5q6J5pWZ6ICFIDwganVua3lvdXNoYVwgOwor5q6J6Zuj6ICFIDwganVuJyduYW5zaGFcIDsKK+WjgeiotOionyA8IGthYmV6b3Nob3VcIDsKK+S4i+iBtyA8IHNoaXRhc2hva3VcIDsKK+iHquW3seWuo+S8nSA8IGppa29zZW5kZW5cIDsKK+eOieaVtOeQhiA8IGd5b2t1c2VpcmlcIDsKK+iMqOWfjuecjCA8IGliYXJha2lrZW5cIDsKK+WxiOabsumDqCA8IGt1a2t5b2t1YnVcIDsKK+a2iOmYsumaiiA8IHNob3Vib3V0YWlcIDsKK+acp+aYhuW4gyA8IG9ib3Jva29uYnVcIDsKK+awl+euoeaUr+eCjiA8IGtpa2Fuc2hpZW5cIDsKK+eci+eXheS6uiA8IGthbmJ5b3VuaW5cIDsKK+iKsembu+i7iiA8IGhhbmFkZW5zaGFcIDsKK+WcsOaWh+WtpiA8IGNoaW1vbmdha3VcIDsKK+WPo+S+m+abuCA8IGtvdWt5b3VzaG9cIDsKK+absuethiA8IGt5b2t1aGl0c3VcIDsKK+aJi+WJjeWLneaJiyA8IHRlbWFlZ2F0dGVcIDsKK+S/neWuiOS4u+e+qSA8IGhvc2h1c2h1Z2lcIDsKK+iNiemHjueQgyA8IGt1c2F5YWt5dXVcIDsKK+aknOS6i+WxgCA8IGtlbmppa3lva3VcIDsKK+acqOerr+W+ruWhtSA8IGtvcHBhbWlqaW5cIDsKK+WFrei+uuW9oiA8IHJva3VoZW5rZWlcIDsKK+atu+S6oeiomOS6iyA8IHNoaWJvdWtpamlcIDsKK+iqreiAheWxpCA8IGRva3VzaGFzb3VcIDsKK+WCrOS/g+eKtiA8IHNhaXNva3Vqb3VcIDsKK+WCvuaWnOinkiA8IGtlaXNoYWtha3VcIDsKK+mBjuWJsOWIqeebiiA8IGtham91cmlla2lcIDsKK+WPjuebo+eKtiA8IHNodXVrYW5qb3VcIDsKK+WcsOmch+WtpiA8IGppc2hpbmdha3VcIDsKK+WcqOS4luS4rSA8IHphaXNlaWNodXVcIDsKK+WlpeW6p+aVtyA8IG9rdXphc2hpa2lcIDsKK+S4gOe6jyA8IGhpdG9tYXRvbWVcIDsKK+e+juihk+mkqCA8IGJpanV0c3VrYW5cIDsKK+ioseWuuemHjyA8IGt5b3lvdXJ5b3VcIDsKK+Wls+WwiueUt+WNkSA8IGpvc29uZGFucGlcIDsKK+WwhOaSg+WgtCA8IHNoYWdla2lqb3VcIDsKK+W+jOWkqeeahCA8IGtvdXRlbnRla2lcIDsKK+mnkOWxr+WcsCA8IGNodXV0b25jaGlcIDsKK+mjr+argyA8IG1lc2hpYml0c3VcIDsKK+iEs+a6ouihgCA8IG5vdWlra2V0c3VcIDsKK+WtmOWRveS4rSA8IHpvbm1laWNodXVcIDsKK+ezu+WIl+WMliA8IGtlaXJldHN1a2FcIDsKK+WHuueJiOWxiyA8IHNodXBwYW4nJ3lhXCA7Civlr6nnvo7nmoQgPCBzaGluYml0ZWtpXCA7CivmgZLkuYXmgKcgPCBrb3VreXV1c2VpXCA7Civosp3mn7EgPCBrYWliYXNoaXJhXCA7CivniYfosr/mmJMgPCBrYXRhYm91ZWtpXCA7CivmlofnjK7lraYgPCBidW5rZW5nYWt1XCA7CivljYHkuozljZjooaMgPCBqdXVuaWhpdG9lXCA7CivmmYLku6PoibIgPCBqaWRhaXNob2t1XCA7CivliIbpm6LoqrLnqI4gPCBidW5yaWthemVpXCA7CivlpKflpKfnmoQgPCBkYWlkYWl0ZWtpXCA7Civkuozph43mqYsgPCBuaWp1dWJhc2hpXCA7CivlnLDoqozlraYgPCBjaGlzaGlnYWt1XCA7CivljJblrabnmoQgPCBrYWdha3V0ZWtpXCA7Civmm7Lnm7QgPCBreW9rdWNob2t1XCA7CivogonlvL7miKYgPCBuaWt1ZGFuc2VuXCA7CivkuIDntYPnkLQgPCBpY2hpZ2Vua2luXCA7CivpgYrniafmsJEgPCB5dXVib2t1bWluXCA7CivkuLjnk6YgPCBtYXJ1Z2F3YXJhXCA7CivmoLjlrp/pqJMgPCBrYWt1amlra2VuXCA7Civosqjnianou4ogPCBrYW1vdHN1c2hhXCA7Civku7vmhI/mjZzmn7sgPCBuaW4nJ2lzb3VzYVwgOwor5rGC5Lq66ICFIDwga3l1dWppbnNoYVwgOwor5LiD56uIIDwgbmFuYWthbWFkb1wgOwor5Zyw6ZyH5Zu9IDwgamlzaGlua29rdVwgOwor5bGF55WZ5ZywIDwga3lvcnl1dWNoaVwgOwor5LiK5L2N5qaC5b+1IDwgam91aWdhaW5lblwgOwor6Zqc5a2Q57SZIDwgc2hvdWppZ2FtaVwgOwor6Iie5Y+w6YGT5YW3IDwgYnV0YWlkb3VndVwgOwor5r2c5Ye955eFIDwgc2Vua2FuYnlvdVwgOwor5LiA56m0IDwgaGl0b3RzdWFuYVwgOwor5byV546H6ICFIDwgaW5zb3RzdXNoYVwgOwor5LiK5pig5pmC6ZaTIDwgam91ZWlqaWthblwgOwor5a2r5aiYIDwgbWFnb211c3VtZVwgOwor5rW36LOK54mIIDwga2Fpem9rdWJhblwgOwor5L+h5Luw6ICFIDwgc2hpbmtvdXNoYVwgOwor5raI6Ziy6LuKIDwgc2hvdWJvdXNoYVwgOwor5LiJ562J6LOeIDwgc2FudG91c2hvdVwgOwor54Sh6K2m5a+fIDwgbXVrZWlzYXRzdVwgOwor5LuP5oCnIDwgaG90b2tlc2hvdVwgOwor6Z2Z6Z2ZIDwgc2hpenVzaGl6dVwgOwor5b2p6Imy55S7IDwgc2Fpc2hva3VnYVwgOwor5Yun5ZGK6ICFIDwga2Fua29rdXNoYVwgOwor6KiI5Zmo6aOb6KGMIDwga2Vpa2loaWtvdVwgOwor5a6f5YqbIDwgaml0c3VyeW9rdVwgOwor5puy546HIDwga3lva3VyaXRzdVwgOwor5aSn6byTIDwgb290c3VkenVtaVwgOwor5bqD5ZGK5qyEIDwga291a29rdXJhblwgOwor6LOe6YeR546LIDwgc2hvdWtpbicnb3VcIDsKK+aIpueBveWtpOWFkCA8IHNlbnNhaWtvamlcIDsKK+mAmuefpeeKtiA8IHRzdXVjaGlqb3VcIDsKK+W3peS9nOWTgSA8IGtvdXNha3VoaW5cIDsKK+WcsOaUv+WtpiA8IGNoaXNlaWdha3VcIDsKK+WkqumZveelniA8IHRhaXlvdXNoaW5cIDsKK+e2meaJv+iAhSA8IGtlaXNob3VzaGFcIDsKK+WfuuacrOWOn+eQhiA8IGtpaG9uZ2VucmlcIDsKK+S5s+ijveWTgSA8IG55dXVzZWloaW5cIDsKK+eLkOiJsiA8IGtpdHN1bmVpcm9cIDsKK+mBiuaSg+maiiA8IHl1dWdla2l0YWlcIDsKK+WNkeaAr+iAhSA8IGhpa3lvdW1vbm9cIDsKK+WGjeaVmeiCsiA8IHNhaWt5b3Vpa3VcIDsKK+WbveWGhee3miA8IGtva3VuYWlzZW5cIDsKK+WZm+eFmeiNiSA8IGthbWl0YWJha29cIDsKK+S4gOedoSA8IGhpdG9uZW11cmlcIDsKK+aFiOWWhOW4giA8IGppemVuJydpY2hpXCA7Civlm57mg7PpjLIgPCBrYWlzb3Vyb2t1XCA7CivlpJbkuqTnmoQgPCBnYWlrb3V0ZWtpXCA7Civmg4XmhI/mipXlkIggPCBqb3VpdG91Z291XCA7CivkuIvnlLogPCBzaGl0YW1hY2hpXCA7CivnrqHnkIbmqZ/og70gPCBrYW5yaWtpbm91XCA7Civkurrlv4MgPCBoaXRvZ29rb3JvXCA7Civkv67nkIbkuK0gPCBzaHV1cmljaHV1XCA7Civoh6jmmYLoqJjlj7cgPCByaW5qaWtpZ291XCA7CivkuInnrYnopqogPCBzYW50b3VzaGluXCA7CivlnLDooajpnaIgPCBjaGloeW91bWVuXCA7CivlubLmuInoqIggPCBrYW5zaG91a2VpXCA7CivnoJTnqbbkvJogPCBrZW5reXV1a2FpXCA7Civogpblg4/mqKkgPCBzaG91em91a2VuXCA7CivkuIPnlJ8gPCBzaGljaGlzaG91XCA7CivlhbXlvbnlv4zpgb8gPCBoZWlla2lraWhpXCA7Civnh5XpuqYgPCBrYXJhc3VtdWdpXCA7CivlvbnkuI3otrMgPCB5YWt1YnVzb2t1XCA7CivkuIDnlaogPCBoaXRvdHN1Z2FpXCA7Civms6jmhI/lipsgPCBjaHV1aXJ5b2t1XCA7CivohbnkuIrmrbsgPCBmdWt1am91c2hpXCA7Civnt6jpm4bogIUgPCBoZW5zaHV1c2hhXCA7CivluoPlkYrmnb8gPCBrb3Vrb2t1YmFuXCA7CivmuInnpr3poZ4gPCBzaG91a2lucnVpXCA7CivlgJLpjK/ogIUgPCB0b3VzYWt1c2hhXCA7CivmsLTnlrHnmKEgPCBtaXp1Ym91c291XCA7CivlubPnrYnmqKkgPCBieW91ZG91a2VuXCA7CivlpKfpnIfngb0gPCBkYWlzaGluc2FpXCA7Civph43nl4fkvosgPCBqdXVzaG91cmVpXCA7CivlnLDln5/nmoQgPCBjaGlpa2l0ZWtpXCA7CivlhbHnlKPns7sgPCBreW91c2Fua2VpXCA7CivplovplonmqYsgPCBrYWloZWlreW91XCA7CivmiKbkuonmmKDnlLsgPCBzZW5zb3VlaWdhXCA7CivpmbPmg4Xmm7ggPCBjaGluam91c2hvXCA7CivosqHmlL/ljbHmqZ8gPCB6YWlzZWlraWtpXCA7CivmipXmqZ/nhrEgPCB0b3VraW5ldHN1XCA7CivmnInpmZDoirHluo8gPCB5dXVnZW5rYWpvXCA7Civnianoqp4gPCBtb25vZ2F0YXJpXCA7Civlhpfoq4fkuosgPCBqb3VkYW5rb3RvXCA7CivmnIDpq5jntJogPCBzYWlrb3VreXV1XCA7CivmgJ3mg5HluKsgPCBvbW93YWt1c2hpXCA7CivlpbPpgZQgPCBvbicnbmF0YWNoaVwgOwor6KW/5pel5pysIDwgbmlzaGluaWhvblwgOwor6L+R5Luj55qEIDwga2luZGFpdGVraVwgOwor6LaF5aSn5Z6LIDwgY2hvdW9vZ2F0YVwgOwor56CV5rC36Ii5IDwgc2FpaHlvdXNlblwgOwor5ryB5qWt5rOVIDwgZ3lvZ3lvdWhvdVwgOwor5pyn5pyIIDwgb2Jvcm9kenVraVwgOwor5pyq6Kej5rG6IDwgbWlrYWlrZXRzdVwgOwor54mH6LebIDwga2F0YWNoaW5iYVwgOwor6LuN5LqL5Z+65ZywIDwgZ3VuamlraWNoaVwgOwor5beo5Lq65Zu9IDwga3lvamlua29rdVwgOwor5pyA5bCP6ZmQIDwgc2Fpc2hvdWdlblwgOwor5pyr5pelIDwgbWF0c3VqaXRzdVwgOwor5YWs5YWx5oCnIDwga291a3lvdXNlaVwgOwor5LiN5q2j5LqL5Lu2IDwgZnVzZWlqaWtlblwgOwor5Ye65p2l5qyh56ysIDwgZGVraXNoaWRhaVwgOwor5bel5a2m5aOrIDwga291Z2FrdXNoaVwgOwor6YWS6YCg5qWtIDwgc2h1em91Z3lvdVwgOwor5aSJ5L2T5Luu5ZCNIDwgaGVudGFpZ2FuYVwgOwor6Imy6Ymb562GIDwgaXJvZW5waXRzdVwgOwor5pyb5pyIIDwgbW9jaGlkenVraVwgOwor6Iux6ZuE5Li7576pIDwgZWl5dXVzaHVnaVwgOwor54Gr5omT55+zIDwgaGl1Y2hpaXNoaVwgOwor6Ya46YCg5qWtIDwgam91em91Z3lvdVwgOwor5aSn6Zq8IDwgb29oYXlhYnVzYVwgOwor5Y2Y55y86Y+hIDwgdGFuZ2Fua3lvdVwgOwor55e06Kmx5Zan5ZipIDwgY2hpd2FnZW5rYVwgOwor5ryB5qWt5qipIDwgZ3lvZ3lvdWtlblwgOwor55+z54Gv57GgIDwgaXNoaWRvdXJvdVwgOwor5Y2X5rC35rSLIDwgbmFucHlvdXlvdVwgOwor6bGI5aC06J+5IDwgdGFyYWJhZ2FuaVwgOwor5bKh5bGx55yMIDwgb2theWFtYWtlblwgOwor54OP5pyJ5YWI55SfIDwgdXl1dXNlbnNlaVwgOwor57Sh57i+5belIDwgYm91c2VraWtvdVwgOwor6LW354iG6JasIDwga2liYWt1eWFrdVwgOwor56K66KqN5pu4IDwga2FrdW5pbnNob1wgOwor5oay5rOV6YGV5Y+NIDwga2VucG91aWhhblwgOwor5Zue6Lui5qSF5a2QIDwga2FpdGVuJydpc3VcIDsKK+iqleeUn+efsyA8IHRhbmpvdXNla2lcIDsKK+mYsuiHreWJpCA8IGJvdXNodXV6YWlcIDsKK+mMq+ijveWTgSA8IHN1enVzZWloaW5cIDsKK+aciOaciCA8IHRzdWtpZHp1a2lcIDsKK+iyqOeJqeiIuSA8IGthbW90c3VzZW5cIDsKK+S4gOWhgeaJiyA8IGljaGlydWlzaHVcIDsKK+iEmue3mue+jiA8IGt5YWt1c2VuYmlcIDsKK+iDveeZu+WNiuWztiA8IG5vdG9oYW50b3VcIDsKK+WKo+aAp+mBuuS8nSA8IHJlc3NlaWlkZW5cIDsKK+acieS+oeeJqSA8IHl1dWthYnV0c3VcIDsKK+iri+iyoOWItuW6piA8IHVrZW9pc2VpZG9cIDsKK+akjeeUn+WbsyA8IHNob2t1c2VpenVcIDsKK+S4gOa4oSA8IGhpdG93YXRhcmlcIDsKK+eZuuaDheacnyA8IGhhdHN1am91a2lcIDsKK+eZveawtOekviA8IGhha3VzdWlzaGFcIDsKK+awtOi7iuWwj+WxiyA8IHN1aXNoYWdveWFcIDsKK+aOoeeul+agqiA8IHNhaXNhbmthYnVcIDsKK+ikkOavm+WSjOeoriA8IGFrYWdld2FzaHVcIDsKK+mVt+S4geWgtCA8IG5hZ2FjaG91YmFcIDsKK+WmvuiFuSA8IG1la2FrZWJhcmFcIDsKK+acieWtlOiZqyA8IHl1dWtvdWNodXVcIDsKK+WbuuWumuiyoOWCtSA8IGtvdGVpZnVzYWlcIDsKK+WkqeeEtueXmCA8IHRlbicnbmVudG91XCA7Civkvp3poZjlhY3lrpggPCBpZ2FubWVua2FuXCA7Civlm5vmi43lrZAgPCB5b25ieW91c2hpXCA7Civlhpfplbfns7sgPCBqb3VjaG91a2VpXCA7Civml6XmnKzlvI8gPCBuaWhvbnNoaWtpXCA7CivmuoDlubTpvaIgPCBtYW4nJ25lbnJlaVwgOwor5raI6Ziy6ImHIDwgc2hvdWJvdXRlaVwgOwor5bCP5ray6IOeIDwgc2hvdWVraWhvdVwgOwor6aaW5ZSx6ICFIDwgc2h1c2hvdXNoYVwgOwor6Zuy6ZyeIDwga3Vtb2thc3VtaVwgOwor5pel5pys5bmzIDwgbmlob25kYWlyYVwgOwor6Z2p6KKLIDwga2F3YWJ1a3Vyb1wgOwor6YmE6Z2i55quIDwgdGV0c3VtZW5waVwgOwor5Li75qip5Zu9IDwgc2h1a2Vua29rdVwgOwor6LK35o6b6YeRIDwga2Fpa2FrZWtpblwgOwor55+z54Gw55+zIDwgc2Vra2Fpc2VraVwgOwor57Gz5ZWP5bGLIDwga29tZWRvbicneWFcIDsKK+aAneaDs+WKhyA8IHNoaXNvdWdla2lcIDsKK+S4h+WbveawkSA8IGJhbmtva3VtaW5cIDsKK+WLp+WRiueKtiA8IGthbmtva3Vqb3VcIDsKK+aVl+WMl+aEnyA8IGhhaWJva3VrYW5cIDsKK+Wvhui8uOiIuSA8IG1pdHN1eXVzZW5cIDsKK+WHuuadpeS4jeWHuuadpSA8IGRla2lmdWRla2lcIDsKK+WPr+Wkiee/vCA8IGthaGVuJyd5b2t1XCA7CivmlL/lupzmqZ/plqIgPCBzZWlmdWtpa2FuXCA7CivlgY/poK3nl5sgPCBoZW50b3V0c3V1XCA7CivlubTpvaLntaYgPCBuZW5yZWlreXV1XCA7CivpgI/no4HnjocgPCB0b3VqaXJpdHN1XCA7Civkuovku7boqJjogIUgPCBqaWtlbmtpc2hhXCA7CivlubPlronlvozmnJ8gPCBoZWlhbmtvdWtpXCA7CivljoTku4vkuosgPCB5YWtrYWlnb3RvXCA7CivkvI/lsITmv6AgPCBmdWt1c2hhZ291XCA7CivmnpDlh7ogPCBzZWtpc2h1dHN1XCA7Civmh7jlo4XlnoIgPCBrZW4nJ3lvdXN1aVwgOwor55WM56OB5qW1IDwga2FpamlreW9rdVwgOwor5b+c55So5YqbIDwgb3V5b3VyeW9rdVwgOwor5pel5puc5pelIDwgbmljaGl5b3ViaVwgOwor5raI6Ziy572yIDwgc2hvdWJvdXNob1wgOwor6ZuH55So5L+d6Zm6IDwga295b3Vob2tlblwgOwor6LKn5LmP5oCnIDwgYmluYm91c2hvdVwgOwor5qC45bSp5aOKIDwga2FrdWhvdWthaVwgOwor5LiN5r2U5oSfIDwgZnVrZXRzdWthblwgOwor5pWw5a2m6ICFIDwgc3V1Z2FrdXNoYVwgOwor6IG05Y+W6ICFIDwgY2hvdXNodXNoYVwgOwor6Kqt5pu45Lq6IDwgZG9rdXNob2ppblwgOwor5L+d6K236LK/5piTIDwgaG9nb2JvdWVraVwgOwor5YmN5Lu75ZywIDwgemVuJyduaW5jaGlcIDsKK+a8geiJsuWutiA8IGd5b3Nob2t1a2FcIDsKK+S4lueVjOWItuimhyA8IHNla2Fpc2VpaGFcIDsKK+ijveS9nOiAhSA8IHNlaXNha3VzaGFcIDsKK+S4jeadnyA8IGZ1dHN1dHN1a2FcIDsKK+ayoeWAi+aApyA8IGJvdHN1a29zZWlcIDsKK+eEoeapn+iCpeaWmSA8IG11a2loaXJ5b3VcIDsKK+WFqOW6l+S4rSA8IHplbnRlbmNodXVcIDsKK+mrmOmHjuixhuiFkCA8IGtvdXlhZG91ZnVcIDsKK+WumOe1puWTgSA8IGthbmt5dXVoaW5cIDsKK+eZvemHkeaXjyA8IGhha2tpbnpva3VcIDsKK+WkqeaWh+WtpiA8IHRlbm1vbmdha3VcIDsKK+WFteWtpuiAhSA8IGhlaWdha3VzaGFcIDsKK+WQiOWUsemaiiA8IGdhc3Nob3V0YWlcIDsKK+S7o+itsOaUv+ayuyA8IGRhaWdpc2VpamlcIDsKK+S4jeaIkOeriyA8IGZ1c2Vpcml0c3VcIDsKK+eMq+afsyA8IG5la295YW5hZ2lcIDsKK+eMrue0jeWTgSA8IGtlbicnbm91aGluXCA7CivntLDnspLliIYgPCBzYWlyeXV1YnVuXCA7CivmhI/ppqzlv4PnjL8gPCBpYmFzaGluJydlblwgOwor54yb57e057+SIDwgbW91cmVuc2h1dVwgOwor5Lqk6YCa6YG65YWQIDwga291dHN1dWlqaVwgOwor5L6L5aSW55qEIDwgcmVpZ2FpdGVraVwgOwor5Yq5546H5YyWIDwga291cml0c3VrYVwgOwor6Zmk6Jmr6I+KIDwgam9jaHV1Z2lrdVwgOwor57SF55Sf5aecIDwgYmVuaXNob3VnYVwgOwor5bmy5ouT5ZywIDwga2FudGFrdWNoaVwgOwor5YeN5YK36ICFIDwgdG91c2hvdXNoYVwgOwor5ZCM5Zu95Lq6IDwgZG91a29rdWppblwgOwor55uu55qE6KqeIDwgbW9rdXRla2lnb1wgOwor6LK45LuYIDwga2FzaGl0c3VrZVwgOwor5LiJ5Zu95b+XIDwgc2FuZ29rdXNoaVwgOwor5Lq654mp55S7IDwgamluYnV0c3VnYVwgOwor5ZC45YWl5ZmoIDwga3l1dW55dXVraVwgOwor6Ziy5a+S5pyNIDwgYm91a2FuZnVrdVwgOwor5L+u6Zmi6ZW3IDwgc2h1dWluY2hvdVwgOwor5Zu95YaF5rOVIDwga29rdW5haWhvdVwgOwor5o6i56m26ICFIDwgdGFua3l1dXNoYVwgOwor5Yid5b+D6ICFIDwgc2hvc2hpbnNoYVwgOwor54u45rGBIDwgdGFudWtpamlydVwgOwor5pyq6ZaL55m6IDwgbWlrYWloYXRzdVwgOwor5bqD5ZGK5aGUIDwga291a29rdXRvdVwgOwor6ZaL5ouT6ICFIDwga2FpdGFrdXNoYVwgOwor5Lq66aGe5a2mIDwgamlucnVpZ2FrdVwgOwor55+l5pel5rS+IDwgY2hpbmljaGloYVwgOwor5pyA6auY5r2uIDwgc2Fpa291Y2hvdVwgOwor5aSp54S25rivIDwgdGVuJyduZW5rb3VcIDsKK+WPjemAhuWFkCA8IGhhbmd5YWt1amlcIDsKK+S4gOWbveiAhSA8IGlra29rdW1vbm9cIDsKK+WlveadkOaWmSA8IGtvdXphaXJ5b3VcIDsKK+WkqumZveaapiA8IHRhaXlvdXJla2lcIDsKK+W4uOeUqOeZliA8IGpvdXlvdWhla2lcIDsKK+aXqeaVmeiCsiA8IHNvdWt5b3Vpa3VcIDsKK+agvOWtkOe4niA8IGtvdXNoaWppbWFcIDsKK+WPjei7jeeahCA8IGhhbmd1bnRla2lcIDsKK+iWrOWMhee0mSA8IHlha3Vob3VzaGlcIDsKK+WFteabuemVtyA8IGhlaXNvdWNob3VcIDsKK+a8ouaWh+WtpiA8IGthbmJ1bmdha3VcIDsKK+aApeWFiOmLkiA8IGt5dXVzZW5wb3VcIDsKK+S4jeaKsSA8IGtha2F3YXJhenVcIDsKK+WPo+Wlh+m6lyA8IGt1Y2hpZ2lyZWlcIDsKK+ihjOaUv+azlSA8IGd5b3VzZWlob3VcIDsKK+mAgemHkemhjSA8IHNvdWtpbmdha3VcIDsKK+axguWpmuiAhSA8IGt5dXVrb25zaGFcIDsKK+WGjeiqv+aVtCA8IHNhaWNob3VzZWlcIDsKK+miqOimi+m2jyA8IGthemFtaWRvcmlcIDsKK+Wft+aUv+WumCA8IHNoaXNzZWlrYW5cIDsKK+iDvealveWggiA8IG5vdWdha3Vkb3VcIDsKK+WlveS4i+eJqSA8IGtvdWthYnV0c3VcIDsKK+WPjOeZuuapnyA8IHNvdWhhdHN1a2lcIDsKK+mBuuajhOiyqOeJqSA8IGlraWthbW90c3VcIDsKK+WFrOWFseWCtSA8IGtvdWt5b3VzYWlcIDsKK+aYqOW5tOadpSA8IHNha3VuZW5yYWlcIDsKK+aPkOS+m+iAhSA8IHRlaWt5b3VzaGFcIDsKK+mGuOmAoOWtpiA8IGpvdXpvdWdha3VcIDsKK+S4gOaJgCA8IGhpdG90b2tvcm9cIDsKK+W+l+eCueWcjyA8IHRva3V0ZW5rZW5cIDsKK+eCreWMluawtOe0oCA8IHRhbmthc3Vpc29cIDsKK+Wvqee+juWtpiA8IHNoaW5iaWdha3VcIDsKK+Wls+S+v+aJgCA8IG9uJyduYWJlbmpvXCA7CivlkYnmnI3niakgPCBnb2Z1a3Vtb25vXCA7Civnl4flgJnnvqQgPCBzaG91a291Z3VuXCA7Civlm7LnooHkuInntJogPCBpZ29zYW5reXV1XCA7CivnlKPlqabkurrnp5EgPCBzYW5mdWppbmthXCA7Civmm7LlsLogPCBreW9rdXNoYWt1XCA7CivmoLzlrZDnqpMgPCBrb3VzaGltYWRvXCA7CivmlofmmI7lm70gPCBidW5tZWlrb2t1XCA7CivooYzmlL/mqKkgPCBneW91c2Vpa2VuXCA7Civph5HmnKjnioAgPCBraW5tb2t1c2VpXCA7CivnkIbmg7PkuLvnvqkgPCByaXNvdXNodWdpXCA7CivljYHlrZfnoLLngasgPCBqdXVqaWhvdWthXCA7Civpm6ros6ogPCB5dWtpc2hpdHN1XCA7Civpg73pgZPlupznnIwgPCB0b2RvdWZ1a2VuXCA7Civpup3pppnosYzosYYgPCBqYWtvdWVuZG91XCA7CivmiYvmnK3lnosgPCB0ZWZ1ZGFnYXRhXCA7CivlhajoiKznmoQgPCB6ZW5wYW50ZWtpXCA7Civnibnmrorpi7wgPCB0b2t1c2h1a291XCA7CivlnKfnuK7mgKcgPCBhc3NodWt1c2VpXCA7Civnm7LllJblrabmoKEgPCBtb3VhZ2Fra291XCA7Civkv53lronmnaHkvosgPCBob2Fuam91cmVpXCA7Civnn7PlmajmmYLku6MgPCBzZWtraWppZGFpXCA7CivkvLzpnZ7nkIblsYggPCBlc2VyaWt1dHN1XCA7CivlrpjmiL/plbcgPCBrYW5ib3VjaG91XCA7CivoqJjlv7XliIfmiYsgPCBraW5lbmtpdHRlXCA7Civnmb3noILns5YgPCBzaGlyb3phdG91XCA7CivlgIvkurrlgIvkurogPCBrb2ppbmtvamluXCA7CivmmKXliIbngrkgPCBzaHVuYnVudGVuXCA7Civml6fkuLvkurogPCBreXV1c2h1amluXCA7CivniofniocgPCBoaXNoaWhpc2hpXCA7Civpm5vosYYgPCBoaXlva29tYW1lXCA7Civlu7bmu57liKnlrZAgPCBlbnRhaXJpc2hpXCA7CivokYnnt5HntKAgPCB5b3VyeW9rdXNvXCA7CivntrLpoK0gPCBhbWlnYXNoaXJhXCA7CivliIbmtL7kuLvnvqkgPCBidW5wYXNodWdpXCA7CivlhoXpnaLnmoQgPCBuYWltZW50ZWtpXCA7Civmr4DoqonopJLosrYgPCBraXlvaG91aGVuXCA7CivogrrntZDmoLggPCBoYWlrZWtrYWt1XCA7CivllK/nvo7kuLvnvqkgPCB5dWliaXNodWdpXCA7CivloanprZogPCBzaGlvemFrYW5hXCA7Civlm57lj47ph5EgPCBrYWlzaHV1a2luXCA7Civntr/luL3lrZAgPCB3YXRhYm91c2hpXCA7CivkuK3ln7cgPCBjaHV1c2hpdHN1XCA7CivlpI/omasgPCBuYXRzdW11c2hpXCA7CivmgKXpgLLmtL4gPCBreXV1c2hpbmhhXCA7Civou43kuovooZvmmJ8gPCBndW5qaWVpc2VpXCA7CivoirjooZPpmaIgPCBnZWlqdXRzdWluXCA7CivmprTlvL7noLIgPCByeXV1ZGFucG91XCA7CivlhpLpmbrlv4MgPCBib3VrZW5zaGluXCA7Civlj6/nh4PniakgPCBrYW5lbmJ1dHN1XCA7Civml6XmnKzkuIAgPCBuaWhvbicnaWNoaVwgOwor5L+u57e06ICFIDwgc2h1dXJlbnNoYVwgOwor5Y+N5bCE6Y+hIDwgaGFuc2hha3lvdVwgOwor5LqM55u06KeSIDwgbmljaG9ra2FrdVwgOwor54Sh5oiR5aSi5LitIDwgbXVnYW11Y2h1dVwgOwor5Z6L5aSJ5o+bIDwga2F0YWhlbmthblwgOwor5Y675Yui54mbIDwga3lvc2VpdXNoaVwgOwor5LqI5a6a5pyf6ZmQIDwgeW90ZWlraWdlblwgOwor54qv572q5a2mIDwgaGFuemFpZ2FrdVwgOwor5Y6f57GN5ZywIDwgZ2Vuc2VraWNoaVwgOwor57a+6YymIDwgYXlhbmlzaGlraVwgOwor5oCn6YGT5b6zIDwgc2VpZG91dG9rdVwgOwor5bmz5ruR5YyWIDwgaGVpa2F0c3VrYVwgOwor56uL5L2T5pig55S7IDwgcml0dGFpZWlnYVwgOwor6YO15L6/566xIDwgeXV1YmluYmFrb1wgOwor5Y+X5L+h5paZIDwganVzaGlucnlvdVwgOwor5YaN57WE57mUIDwgc2Fpc29zaGlraVwgOwor576O6KGT55WMIDwgYmlqdXRzdWthaVwgOwor5aSp5rCX5qih5qeYIDwgdGVua2ltb3lvdVwgOwor5LiN562J5byPIDwgZnVkb3VzaGlraVwgOwor54Gr5Y+j5Y6f5rmWIDwga2Frb3VnZW5rb1wgOwor5pyI5YilIDwgdHN1a2liZXRzdVwgOwor6KGo6Z+z5a2X5q+NIDwgaHlvdW9uamlib1wgOwor57SE5a6a5pu4IDwgeWFrdWpvdXNob1wgOwor5LiJ566H5pelIDwgc2FuZ2FuaWNoaVwgOwor6Z+z5aOw6KiA6KqeIDwgb25zZWlnZW5nb1wgOwor55m656Wl5ZywIDwgaGFzc2hvdWNoaVwgOwor5LiA5pio5pio5pelIDwgc2FraW90b3RvaVwgOwor5Yud5omL5Y+jIDwga2F0dGVndWNoaVwgOwor5aSV6aOf5b6MIDwgeXV1c2hva3Vnb1wgOwor5pCs5YWl5pelIDwgaGFuJydueXV1YmlcIDsKK+ixquWVhuWxpCA8IGdvdXNob3Vzb3VcIDsKK+WltOixhuiFkCA8IHlha2tvZG91ZnVcIDsKK+iEseazleihjOeCuiA8IGRhcHBvdWtvdWlcIDsKK+aEn+immuirliA8IGthbmtha3Vyb25cIDsKK+WbveeUo+i7iiA8IGtva3VzYW5zaGFcIDsKK+S4jea1gemAmiA8IGZ1cnl1dXRzdXVcIDsKK+api+mgreWgoSA8IGt5b3V0b3Vob3VcIDsKK+WAi+S6uuS4u+e+qSA8IGtvamluc2h1Z2lcIDsKK+Wkj+aZgumWkyA8IG5hdHN1amlrYW5cIDsKK+efs+eCreWxpCA8IHNla2l0YW5zb3VcIDsKK+e1ueS4gOWMuSA8IGtpbnVpcHBpa2lcIDsKK+W7uueZveabuCA8IGtlbnBha3VzaG9cIDsKK+a2iOmYsuazlSA8IHNob3Vib3Vob3VcIDsKK+S4rei/keadsSA8IGNodXVraW50b3VcIDsKK+S4jeato+imj+i7jSA8IGZ1c2Vpa2lndW5cIDsKK+WlqueVpSA8IGRhdHN1cnlha3VcIDsKK+iovOS6uuWPsCA8IHNob3VuaW5kYWlcIDsKK+awtOeUo+alrSA8IHN1aXNhbmd5b3VcIDsKK+avlOS+i+W8jyA8IGhpcmVpc2hpa2lcIDsKK+eUt+aJgOW4ryA8IG90b2tvam90YWlcIDsKK+S/ruaVtOeJiCA8IHNodXVzZWloYW5cIDsKK+WHhueci+itt+WppiA8IGp1bmthbmdvZnVcIDsKK+WGt+awtOa1tCA8IHJlaXN1aXlva3VcIDsKK+Wkj+e+vee5lCA8IG5hdHN1YmFvcmlcIDsKK+ikkuiogOiRiSA8IGhvbWVrb3RvYmFcIDsKK+e5gee5gSA8IHNoaWdlc2hpZ2VcIDsKK+S6i+WLmeacuiA8IGppbXVkenVrdWVcIDsKK+S4u+WCrOWbvSA8IHNodXNhaWtva3VcIDsKK+Wkp+WkluWIiCA8IG9vc290b2dhcmlcIDsKK+a4heeul+S6uiA8IHNlaXNhbicnbmluXCA7CivkvY/msJHnpaggPCBqdXVtaW5oeW91XCA7Civmr43lrZDlrrbluq0gPCBib3NoaWthdGVpXCA7CivnhKHnt5rlsYAgPCBtdXNlbmt5b2t1XCA7CivmgqrmnZDmlpkgPCBha3V6YWlyeW91XCA7Civml6XnhafoqIggPCBuaXNzaG91a2VpXCA7CivmlK/mjIHnjocgPCBzaGlqaXJpdHN1XCA7CivkuozpgKPnmbogPCBuaXJlbnBhdHN1XCA7CivlkIzlkI3nlbDkurogPCBkb3VtZWlpamluXCA7CivlhbfosaHnmoQgPCBndXNob3V0ZWtpXCA7Civlia/mirXlvZMgPCBmdWt1dGVpdG91XCA7CivogrLlhZDmmYLplpMgPCBpa3VqaWppa2FuXCA7CivmmYLkvqHnmbrooYwgPCBqaWthaGFra291XCA7Civog7johpzngo4gPCBreW91bWFrdWVuXCA7CivpmaTmub/lmaggPCBqb3NoaXRzdWtpXCA7CivkuZfmj5vpp4UgPCBub3Jpa2FlZWtpXCA7CivkuIDlkaggPCBoaXRvbWVndXJpXCA7Civlj6TmnKzlsYsgPCBmdXJ1aG9uJyd5YVwgOwor5beo5aSn55eHIDwga3lvZGFpc2hvdVwgOwor5Lya6K2w5LqL6aCFIDwga2FpZ2lqaWtvdVwgOwor55+l5pel5a62IDwgY2hpbmljaGlrYVwgOwor55m955y86KaWIDwgaGFrdWdhbnNoaVwgOwor54Wn5bCE5rOVIDwgc2hvdXNoYWhvdVwgOwor5Luu5oOz6KiY5oa2IDwga2Fzb3VraW9rdVwgOwor54OP6bOpIDwga2FyYXN1YmF0b1wgOwor6LWk5L+h5Y+3IDwgYWthc2hpbmdvdVwgOwor6ZW35pa55b2iIDwgY2hvdWhvdWtlaVwgOwor5LiH5Zu95Y+yIDwgYmFua29rdXNoaVwgOwor6YCg5YW15bugIDwgem91aGVpc2hvdVwgOwor5p2x5Lqs5rm+IDwgdG91a3lvdXdhblwgOwor54us5Ym15oCnIDwgZG9rdXNvdXNlaVwgOwor6YOo5YiG6bq76YWUIDwgYnVidW5tYXN1aVwgOwor5qSc5LqL5o6n6Ki0IDwga2Vuamlrb3Vzb1wgOwor5pS+5rWq55mWIDwgaG91cm91aGVraVwgOwor6KGM5pS/5a6YIDwgZ3lvdXNlaWthblwgOwor5rKh6Laj5ZGzIDwgYm90c3VzaHVtaVwgOwor6Zm26YWU5aKDIDwgdG91c3Vpa3lvdVwgOwor5Y+N5bCE6KeSIDwgaGFuc2hha2FrdVwgOwor5peF54OPIDwgdGFiaWdhcmFzdVwgOwor5LiD5YWJIDwgbmFuYWhpa2FyaVwgOwor54m55Yq56JasIDwgdG9ra291eWFrdVwgOwor5aiY5am/IDwgbXVzdW1lbXVrb1wgOwor5pel5rKhIDwgbmljaGlib3RzdVwgOwor5aSa6aCF5byPIDwgdGFrb3VzaGlraVwgOwor6KGo5oOF562LIDwgaHlvdWpvdWtpblwgOwor57WM5Za2566h55CGIDwga2VpZWlrYW5yaVwgOwor5Yip55uK546HIDwgcmlla2lyaXRzdVwgOwor5LiJ5ouN5a2QIDwgc2FuYnlvdXNoaVwgOwor6YeP6LKp5bqXIDwgcnlvdWhhbnRlblwgOwor57eo6ZuG5a2QIDwgaGVuc2h1dXNoaVwgOwor5YaX6ZW35oCnIDwgam91Y2hvdXNlaVwgOwor6by755y86Y+hIDwgaGFuYW1lZ2FuZVwgOwor5YaF6KaW6Y+hIDwgbmFpc2hpa3lvdVwgOwor6LWk57+h57+gIDwgYWthc2hvdWJpblwgOwor6aOb6KGM5pmC6ZaTIDwgaGlrb3VqaWthblwgOwor54ax5qmf6ZaiIDwgbmV0c3VraWthblwgOwor5pGC6K236IW6IDwgc2V0c3Vnb3NlblwgOwor5a++5oqX562WIDwgdGFpa291c2FrdVwgOwor6L+R5Luj5YqHIDwga2luZGFpZ2VraVwgOwor5b655bqV55qEIDwgdGV0dGVpdGVraVwgOwor5Zub5a2X54af6KqeIDwgeW9qaWp1a3Vnb1wgOwor5q205Luj5Y+yIDwgcmVraWRhaXNoaVwgOwor5pep6KaL6KGoIDwgaGF5YW1paHlvdVwgOwor6Ieo5qmf5b+c5aSJIDwgcmlua2lvdWhlblwgOwor5oqV5bCE6KeSIDwgdG91c2hha2FrdVwgOwor5a6a5pyf5L+d6Zm6IDwgdGVpa2lob2tlblwgOwor55uj552j6ICFIDwga2FudG9rdXNoYVwgOwor5YWx55Sj5ZyPIDwga3lvdXNhbmtlblwgOwor5a6f6KGM5LitIDwgamlra291Y2h1dVwgOwor54yb5pS75pKDIDwgbW91a291Z2VraVwgOwor6Zu75a2Q5q67IDwgZGVuc2hpa2FrdVwgOwor6YCg6KiA6aOb6KqeIDwgem91Z2VuaGlnb1wgOwor5p2R5b255aC0IDwgbXVyYXlha3ViYVwgOwor57Sw6ZuqIDwgc2FzYW1leXVraVwgOwor6Zm46Luf6aKoIDwgcmlrdW5hbnB1dVwgOwor5pS/5rK76ImyIDwgc2VpamlzaG9rdVwgOwor5q+N5a2Q6I2JIDwgaGFoYWtvZ3VzYVwgOwor54m55b6F55SfIDwgdG9rdXRhaXNlaVwgOwor6aCt5YiGIDwga2FzaGlyYWJ1blwgOwor5Lit55uk5oimIDwgY2h1dWJhbnNlblwgOwor5LqL5YuZ55So5ZOBIDwgamltdXlvdWhpblwgOwor6Iie6LiP6Z20IDwgYnV0b3VndXRzdVwgOwor6KiA6Kqe5Zyw55CGIDwgZ2VuZ29jaGlyaVwgOwor5aSn6Zmq5a+pIDwgZGFpYmFpc2hpblwgOwor54Sh57iB5LuPIDwgbXVlbmJvdG9rZVwgOwor5paR54mbIDwgbWFkYXJhdXNoaVwgOwor57eR6ImyIDwgcnlva3VzaG9rdVwgOwor6KqN5a6a6Ki8IDwgbmludGVpc2hvdVwgOwor576O6KGT5pu4IDwgYmlqdXRzdXNob1wgOwor6KiI6YeP5rOVIDwga2VpcnlvdWhvdVwgOwor5Y6f5oyv5YuVIDwgZ2Vuc2hpbmRvdVwgOwor5a2m6Iq45LyaIDwgZ2FrdWdlaWthaVwgOwor6ISC6IKq5b+DIDwgc2hpYm91c2hpblwgOwor54u46aWC6aOpIDwgdGFudWtpdWRvblwgOwor5rC055Sj5bqBIDwgc3Vpc2FuY2hvdVwgOwor5ZCI5oay55qEIDwgZ291a2VudGVraVwgOwor5Li75L2T55qEIDwgc2h1dGFpdGVraVwgOwor54qv572q6KGM54K6IDwgaGFuemFpa291aVwgOwor5pel5pyIIDwgbmljaGlnZXRzdVwgOwor56qD55uX54uCIDwgc2V0dG91a3lvdVwgOwor5aWz5LiA6IisIDwgb24nJ25haXBwYW5cIDsKK+axuuWLnee3miA8IGtlc3Nob3VzZW5cIDsKK+aXreaXpSA8IGt5b2t1aml0c3VcIDsKK+i8uOmAgeapn+mWoiA8IHl1c291a2lrYW5cIDsKK+WPo+S4iuaJiyA8IGt1Y2hpam91enVcIDsKK+W3peWgtOmVtyA8IGtvdWpvdWNob3VcIDsKK+aXl+S6jOa1gSA8IGhhdGFuaXJ5dXVcIDsKK+ijnOWKqeiJpuiJhyA8IGhvam9rYW50ZWlcIDsKK+WNs+S9jeW8jyA8IHNva3Vpc2hpa2lcIDsKK+S6lOmHjOmcp+S4rSA8IGdvcmltdWNodXVcIDsKK+aHkOaflOetliA8IGthaWp1dXNha3VcIDsKK+S4ieaXpeWkqeS4iyA8IG1pa2thdGVua2FcIDsKK+W5u+aDs+WKhyA8IGdlbnNvdWdla2lcIDsKK+WfuuacrOWNmOS9jSA8IGtpaG9udGFuJydpXCA7Civkuovli5nlrqQgPCBqaW11c2hpdHN1XCA7CivotoXopo/liYcgPCBjaG91a2lzb2t1XCA7CivmoLjlrrbml48gPCBrYWt1a2F6b2t1XCA7CivlpJXmnIjlpJwgPCB5dXVkenVrZXlvXCA7CivnjLbkuojmnJ/plpMgPCB5dXV5b2tpa2FuXCA7CivlpKfooYbou4ogPCBkYWlzaHV1c2hhXCA7CivnhKHnsY3ogIUgPCBtdXNla2ltb25vXCA7Civml6Xni6zkvIogPCBuaWNoaWRva3VpXCA7CivpmqPntYQgPCB0b25hcmlndW1pXCA7Civmgqrnv5LmhaMgPCBha3VzaHV1a2FuXCA7CivnoavphbjpioUgPCByeXV1c2FuZG91XCA7CivmsLTnlKPlraYgPCBzdWlzYW5nYWt1XCA7Civng4/ph5EgPCBrYXJhc3VnYW5lXCA7Civlubjnpo/mhJ8gPCBrb3VmdWt1a2FuXCA7Civos6DlhJ/ph5EgPCBiYWlzaG91a2luXCA7Civoq4vosqDlt6XkuosgPCB1a2VvaWtvdWppXCA7Civpmrznp5EgPCBoYXlhYnVzYWthXCA7CivlhbHnlKPlhZogPCBreW91c2FudG91XCA7Civnianlv4MgPCBtb25vZ29rb3JvXCA7Civml4XmnpUgPCB0YWJpbWFrdXJhXCA7CivntIXpm4AgPCBiZW5pc3V6dW1lXCA7CivniLbmlrkgPCBjaGljaGlrYXRhXCA7CivlvozpgIDmloflrZcgPCBrb3V0YWltb2ppXCA7CivoiLnmnb/loYAgPCBmdW5haXRhYmVpXCA7CivlhajlrabpgKMgPCB6ZW5nYWt1cmVuXCA7Civnm7TotbDot68gPCBjaG9rdXNvdXJvXCA7CivnlLflsIrlpbPljZEgPCBkYW5zb25qb2hpXCA7CivmsLfosYbohZAgPCBrb29yaWRvdWZ1XCA7CivlhaXlsYXogIUgPCBueXV1a3lvc2hhXCA7Civml6XpmbDogIUgPCBoaWthZ2Vtb25vXCA7CivntbbnuIHnt5ogPCB6ZXRzdWVuc2VuXCA7CivlpKfmhYjlpKfmgrIgPCBkYWlqaWRhaWhpXCA7CivlobXoiqUgPCBjaGlyaWFrdXRhXCA7Civlk4HoqZXkvJogPCBoaW5weW91a2FpXCA7CivmsLTnk7bluqcgPCBtaXp1Z2FtZXphXCA7CivlkITlm6PkvZMgPCBrYWt1ZGFudGFpXCA7CivmnaXmnaXpgLEgPCByYWlyYWlzaHV1XCA7Civlm5vljYHpm4AgPCBzaGlqdXVrYXJhXCA7CivlpoLkvZXmp5jluKsgPCBpa2FzYW1hc2hpXCA7CivpgJrnlKjploAgPCB0c3V1eW91bW9uXCA7CivniKrmpYrmnp0gPCB0c3VtYXlvdWppXCA7CivmlaPpq6rlsYsgPCBzYW5wYXRzdXlhXCA7CivmoKHmraPliLcgPCBrb3VzZWl6dXJpXCA7Civpu5LnnLzpj6EgPCBrdXJvbWVnYW5lXCA7Civoh6jnlYzkuovmlYUgPCByaW5rYWlqaWtvXCA7Civpm6jnh5UgPCBhbWF0c3ViYW1lXCA7Civlprnlqb8gPCBpbW91dG9tdWtvXCA7CivpgKDoiLnmpa0gPCB6b3VzZW5neW91XCA7CivoprPliofkvJogPCBrYW5nZWtpa2FpXCA7Civpm6rnhZkgPCB5dWtpa2VtdXJpXCA7CivlhazlrrPnl4UgPCBrb3VnYWlieW91XCA7Civlj5fkv6HlgbQgPCBqdXNoaW5nYXdhXCA7CivkvIHmpa3lv4MgPCBraWd5b3VzaGluXCA7Civlm6DmnpzplqLkv4IgPCBpbmdha2Fua2VpXCA7Civkv67nuZXlt6UgPCBzaHV1emVua291XCA7CivljZjouqvpioMgPCB0YW5zaGluanV1XCA7Civop5Lom5kgPCB0c3Vub2dhZXJ1XCA7CivnlbDnqK7kuqTphY0gPCBpc2h1a291aGFpXCA7CivlpJzplpPli6Tli5kgPCB5YWthbmtpbm11XCA7Civnmb7lubTnm64gPCBoeWFrdW5lbm1lXCA7CivmsqHnkIbmg7MgPCBib3RzdXJpc291XCA7CivpnZnohIjngo4gPCBqb3VteWFrdWVuXCA7CivlvqHlm73oh6rmhaIgPCBva3VuaWppbWFuXCA7Civlhajog73ogIUgPCB6ZW4nJ25vdXNoYVwgOwor5ZGJ5pyN5ZWGIDwgZ29mdWt1c2hvdVwgOwor55yB6LOH5rqQIDwgc2hvdXNoaWdlblwgOwor6ZuG5ZCI6KuWIDwgc2h1dWdvdXJvblwgOwor56aB54WZ5bitIDwga2luJydlbnNla2lcIDsKK+WksealrSA8IHNoaXRzdWd5b3VcIDsKK+ioreeriyA8IHNldHN1cml0c3VcIDsKK+mVt+aWueS9kyA8IGNob3Vob3V0YWlcIDsKK+WPl+S/oeS6uiA8IGp1c2hpbicnbmluXCA7CivmgKXlgZzou4ogPCBreXV1dGVpc2hhXCA7Civpm5HniakgPCB6YXRzdWJ1dHN1XCA7CivnpZ7ntYznp5HljLsgPCBzaGlua2Vpa2FpXCA7Civns57luqbog7ggPCBrdXNvZG9reW91XCA7CivmtojpmLLlo6sgPCBzaG91Ym91c2hpXCA7CivmnInnkIblvI8gPCB5dXVyaXNoaWtpXCA7CivntYLliJfou4ogPCBzaHV1cmVzc2hhXCA7CivmiYDmnInmoLwgPCBzaG95dXVrYWt1XCA7Civnn6Xopprnn6UgPCBjaGlrYWt1Y2hpXCA7CivpgYrmkoPmiYsgPCB5dXVnZWtpc2h1XCA7Civop6PnhrHliaQgPCBnZW5ldHN1emFpXCA7CivlupflsYvniakgPCB0ZW4nJ3lhbW9ub1wgOwor54ax54OIIDwgbmV0c3VyZXRzdVwgOwor6YGK5pKD5oimIDwgeXV1Z2VraXNlblwgOwor5bGx5rC06ZajIDwgc2Fuc3Vpa2FrdVwgOwor6Kqs5pWZ5birIDwgc2Vra3lvdXNoaVwgOwor5bO25bid5Zu9IDwgdG91dGVpa29rdVwgOwor5Y2R5Yqj5ryiIDwgaGlyZXRzdWthblwgOwor6ZqP56WeIDwga2FuJyduYWdhcmFcIDsKK+ijuOm6piA8IGhhZGFrYW11Z2lcIDsKK+WFqOeUn+a2ryA8IHplbnNob3VnYWlcIDsKK+WFqOS8muihhiA8IHplbmthaXNodXVcIDsKK+WPjuWuueiAhSA8IHNodXV5b3VzaGFcIDsKK+ino+mbhuWQiCA8IGthaXNodXVnb3VcIDsKK+ebuOWvvueahCA8IHNvdXRhaXRla2lcIDsKK+efs+eBsOS5syA8IHNla2thaW55dXVcIDsKK+WFseacieiAhSA8IGt5b3V5dXVzaGFcIDsKK+aMh+WumuW4rSA8IHNoaXRlaXNla2lcIDsKK+WVhuWTgeWQjSA8IHNob3VoaW5tZWlcIDsKK+agueacrOeahCA8IGtvbnBvbnRla2lcIDsKK+e+juihk+WxlSA8IGJpanV0c3V0ZW5cIDsKK+e4nuaooeanmCA8IHNoaW1hbW95b3VcIDsKK+a2iOmYsuWboyA8IHNob3Vib3VkYW5cIDsKK+S5vuiRoeiQhCA8IGhvc2hpYnVkb3VcIDsKK+mcnOaciCA8IHNoaW1vdHN1a2lcIDsKK+e+veaguei7iiA8IGhhbmVndXJ1bWFcIDsKK+WujOWFqOippuWQiCA8IGthbnplbmppYWlcIDsKK+eZuuWLleapnyA8IGhhdHN1ZG91a2lcIDsKK+mXmOeJm+WjqyA8IHRvdWd5dXVzaGlcIDsKK+WQjOaDheelqCA8IGRvdWpvdWh5b3VcIDsKK+WFpeS8mumHkSA8IG55dXVrYWlraW5cIDsKK+eGseehrOWMliA8IG5ldHN1a291a2FcIDsKK+WkouaelSA8IHl1bWVtYWt1cmFcIDsKK+aXheW/gyA8IHRhYmlnb2tvcm9cIDsKK+mXmOeJm+WgtCA8IHRvdWd5dXVqb3VcIDsKK+WPjeWvvuelqCA8IGhhbnRhaWh5b3VcIDsKK+eKrOS+jSA8IGludXphbXVyYWlcIDsKK+WGt+WNtOWZqCA8IHJlaWt5YWt1a2lcIDsKK+WAn+WFpemHkSA8IGthcmlpcmVraW5cIDsKK+WVhuWTgeWIuCA8IHNob3VoaW5rZW5cIDsKK+WFrOekuuWcsOS+oSA8IGtvdWppY2hpa2FcIDsKK+atk+alveihlyA8IGthbnJha3VnYWlcIDsKK+eglOWJiuebpCA8IGtlbnNha3ViYW5cIDsKK+S4gOWtl+S4gOWPpSA8IGljaGlqaWlra3VcIDsKK+itmOWIpSA8IHNoaWtpYmV0c3VcIDsKK+WOn+eQhuS4u+e+qSA8IGdlbnJpc2h1Z2lcIDsKK+acrOexjeWcsCA8IGhvbnNla2ljaGlcIDsKK+awl+asneeXhyA8IGtpdXRzdXNob3VcIDsKK+aBi+Wls+aIvyA8IGtvaW55b3Vib3VcIDsKK+iEs+elnue1jCA8IG5vdXNoaW5rZWlcIDsKK+iGoOWOn+eXhSA8IGtvdWdlbmJ5b3VcIDsKK+eJveWItueQgyA8IGtlbnNlaWt5dXVcIDsKK+aWsOmAoOiIuSA8IHNoaW56b3VzZW5cIDsKK+aEn+immueCuSA8IGthbmtha3V0ZW5cIDsKK+WBveWQm+WtkCA8IG5pc2VrdW5zaGlcIDsKK+axuuWLneeCuSA8IGtlc3Nob3V0ZW5cIDsKK+WkmuaVsOaxuiA8IHRhc3V1a2V0c3VcIDsKK+aEj+itmOeahCA8IGlzaGlraXRla2lcIDsKK+WPjeWwhOeahCA8IGhhbnNoYXRla2lcIDsKK+S4jea0u+eZuiA8IGZ1a2FwcGF0c3VcIDsKK+WPl+mgmOiovCA8IGp1cnlvdXNob3VcIDsKK+e0lOaWh+WtpiA8IGp1bmJ1bmdha3VcIDsKK+eJueaApeWIuCA8IHRva2t5dXVrZW5cIDsKK+WmvuWHuiA8IHNob3VzaHV0c3VcIDsKK+m7hOmHkeihkyA8IG91Z29uanV0c3VcIDsKK+S7ruWLmOWumiA8IGthcmlrYW5qb3VcIDsKK+e3keeOiSA8IHJ5b2t1Z3lva3VcIDsKK+eDj+ibhyA8IGthcmFzdWhlYmlcIDsKK+mciumVt+mhniA8IHJlaWNob3VydWlcIDsKK+WFqOi6q+WDjyA8IHplbnNoaW56b3VcIDsKK+Wvhui8uOWTgSA8IG1pdHN1eXVoaW5cIDsKK+aXouioree3miA8IGtpc2V0c3VzZW5cIDsKK+S6jOmAo+W8jyA8IG5pcmVuc2hpa2lcIDsKK+erpeipseS9nOWutiA8IGRvdXdhc2Fra2FcIDsKK+a4m+mAn+adkCA8IGdlbnNva3V6YWlcIDsKK+WFieejgeawlyA8IGhpa2FyaWppa2lcIDsKK+iovOaYjuabuCA8IHNob3VtZWlzaG9cIDsKK+mWi+aLk+WcsCA8IGthaXRha3VjaGlcIDsKK+S7ruWFjeiosSA8IGthcmltZW5reW9cIDsKK+eJueWHuiA8IHRva3VzaHV0c3VcIDsKK+e0meiiiyA8IGthbWlidWt1cm9cIDsKK+WNsOixoeeahCA8IGluc2hvdXRla2lcIDsKK+aXp+aVmeW+kiA8IGt5dXVreW91dG9cIDsKK+iyqOeJqeS+vyA8IGthbW90c3ViaW5cIDsKK+WmqOWus+ihjOeCuiA8IGJvdWdhaWtvdWlcIDsKK+mbquafsyA8IHl1a2l5YW5hZ2lcIDsKK+acieacm+agqiA8IHl1dWJvdWthYnVcIDsKK+aFo+S+i+eahCA8IGthbnJlaXRla2lcIDsKK+ims+ebuOWtpiA8IGthbnNvdWdha3VcIDsKK+iCieeUqOeoriA8IG5pa3V5b3VzaHVcIDsKK+mBi+WWtue1jOiyuyA8IHVuJydlaWtlaWhpXCA7CivmmKXkvJEgPCBoYXJ1eWFzdW1pXCA7Civln7rlnLDlsYAgPCBraWNoaWt5b2t1XCA7Civpganlv5znl4cgPCB0ZWtpb3VzaG91XCA7CivkuK3pq5jnlJ8gPCBjaHV1a291c2VpXCA7CivkuIvmupblgpkgPCBzaGl0YWp1bmJpXCA7Civkv6HpoLzmhJ8gPCBzaGlucmFpa2FuXCA7CivnmbrphbXkubMgPCBoYWtrb3VueXV1XCA7Civml4XoirjkurogPCB0YWJpZ2VpbmluXCA7Civkurrpm6rltKkgPCBoaXRvbmFkYXJlXCA7CivkuLvkv6Hlj7cgPCBzaHVzaGluZ291XCA7Civkuozpg6jlkIjlpY8gPCBuaWJ1Z2Fzc291XCA7Civkv6HlpYnogIUgPCBzaGlucG91c2hhXCA7CivlkI3oqonmr4DmkI0gPCBtZWl5b2tpc29uXCA7CivlsLrosqvms5UgPCBzaGFra2FuaG91XCA7Civnvo7ooZPlk4EgPCBiaWp1dHN1aGluXCA7CivoqJjpjLLmmKDnlLsgPCBraXJva3VlaWdhXCA7CivpgJrkv6HosrsgPCB0c3V1c2hpbmhpXCA7Civkv6HpoLzmgKcgPCBzaGlucmFpc2VpXCA7CivmhJ/opprmr5sgPCBrYW5rYWt1bW91XCA7CivpoIblv5zmgKcgPCBqdW4nJ25vdXNlaVwgOwor5bi457+S6ICFIDwgam91c2h1dXNoYVwgOwor576O6KGT5Y+yIDwgYmlqdXRzdXNoaVwgOwor5qqA6YKj5a+6IDwgZGFuJyduYWRlcmFcIDsKK+WNg+ats+mjtCA8IGNoaXRvc2VhbWVcIDsKK+ijveadkOalrSA8IHNlaXphaWd5b3VcIDsKK+aWsOapn+i7uCA8IHNoaW5raWppa3VcIDsKK+iCiemlhemgrSA8IG5pa3VtYW5qdXVcIDsKK+awtOizh+a6kCA8IG1penVzaGlnZW5cIDsKK+eZvemzpeW6pyA8IGhha3VjaG91emFcIDsKK+eZvuWIhuavlCA8IGh5YWt1YnVuaGlcIDsKK+ippumHkeefsyA8IHNoaWtpbnNla2lcIDsKK+mBi+aQrOeuoeeQhiA8IHVucGFua2FucmlcIDsKK+WEquetieizniA8IHl1dXRvdXNob3VcIDsKK+WMu+enkeWkp+WtpiA8IGlrYWRhaWdha3VcIDsKK+Wkp+ihhue0mSA8IHRhaXNodXVzaGlcIDsKK+iKseimi+aZgiA8IGhhbmFtaWRva2lcIDsKK+WKoOa4m+S5l+mZpCA8IGthZ2Vuam91am9cIDsKK+Whl+aTpuWJpCA8IHRvc2F0c3V6YWlcIDsKK+mYv+eJh+aIpuS6iSA8IGFoZW5zZW5zb3VcIDsKK+acqOijveWTgSA8IG1va3VzZWloaW5cIDsKK+WGheinkueQgyA8IG5haWtha2t5dXVcIDsKK+mlkuiIjOWutiA8IGpvdXpldHN1a2FcIDsKK+eGseWHpueQhiA8IG5ldHN1c2hvcmlcIDsKK+inpueZuiA8IHNob2t1aGF0c3VcIDsKK+aWsOW5uee3miA8IHNoaW5rYW5zZW5cIDsKK+WLleWQkeihqCA8IGRvdWtvdWh5b3VcIDsKK+S6pOmfv+ipqSA8IGtvdWt5b3VzaGlcIDsKK+aMqOaLtueKtiA8IGFpc2F0c3Vqb3VcIDsKK+mZpeayoea5liA8IGthbmJvdHN1a29cIDsKK+WUr+WUr+irvuirviA8IGlpZGFrdWRha3VcIDsKK+S/oeWkqee/gSA8IHNoaW50ZW4nJ291XCA7Civotbfpm7vlipsgPCBraWRlbnJ5b2t1XCA7Civpjq7prYLnpa0gPCBjaGlua29uc2FpXCA7CivoiLbmnaXlk4EgPCBoYWt1cmFpaGluXCA7CivmiYvloannmr8gPCB0ZXNoaW96YXJhXCA7Civpu5LlupXnv7MgPCBrdXJvc29rb2hpXCA7CivlrabnlJ/luL0gPCBnYWt1c2VpYm91XCA7CivntpnniLYgPCBtYW1hY2hpY2hpXCA7CivmsLTmoL3ln7kgPCBtaXp1c2FpYmFpXCA7CivllrbpgKDniakgPCBlaXpvdWJ1dHN1XCA7Civml6XnhafmqKkgPCBuaXNzaG91a2VuXCA7Civnm7jlr77oqqTlt64gPCBzb3V0YWlnb3NhXCA7CivlhYnph4/lrZAgPCBrb3VyeW91c2hpXCA7CivkuIfmhJrnr4AgPCBiYW5ndXNldHN1XCA7Civog73ni4LoqIAgPCBub3VreW91Z2VuXCA7Civpo7LphZLpgYvou6IgPCBpbnNodXVudGVuXCA7Civng4/ntJkgPCBrYXJhc3VnYW1pXCA7CivmlK/mjIHlipsgPCBzaGlqaXJ5b2t1XCA7CivntbHoqIjooaggPCB0b3VrZWloeW91XCA7CivlhYjlj7LlraYgPCBzZW5zaGlnYWt1XCA7CivmjIflkI3oqablkIggPCBzaGltZWlqaWFpXCA7Civml6Xku48gPCBuaWNoaWZ1dHN1XCA7CivnoavphbjntJkgPCByeXV1c2Fuc2hpXCA7CivmgKflt67liKUgPCBzZWlzYWJldHN1XCA7CivpnbTkuIsgPCBrdXRzdXNoaXRhXCA7CivmnKzlm73kurogPCBob25nb2t1amluXCA7Civlt6joppbnmoQgPCBreW9zaGl0ZWtpXCA7Civou6LovY3mqZ8gPCB0ZW50ZXRzdWtpXCA7Civooajlv6DnopEgPCBoeW91Y2h1dWhpXCA7Civlj47os4TnvaogPCBzaHV1d2FpemFpXCA7CivolqzliaTluKsgPCB5YWt1emFpc2hpXCA7CivlvozopovkurogPCBrb3VrZW4nJ25pblwgOwor6YCj55So5b2iIDwgcmVuJyd5b3VrZWlcIDsKK+S9meeZveazqCA8IHlvaGFrdWNodXVcIDsKK+S8nee1seeahCA8IGRlbnRvdXRla2lcIDsKK+e4ruWwuiA8IHNodWt1c2hha3VcIDsKK+W+kuW8n+WItuW6piA8IHRvdGVpc2VpZG9cIDsKK+imquaoqeiAhSA8IHNoaW5rZW5zaGFcIDsKK+e0i+e+veS6jOmHjSA8IG1vbmhhYnV0YWVcIDsKK+WGhuWkqeS6lSA8IG1hcnV0ZW5qb3VcIDsKK+Wls+S4uyA8IG9uJyduYWFydWppXCA7CivlsJHlubTpmaIgPCBzaG91bmVuJydpblwgOwor5q206Z2S54KtIDwgcmVraXNlaXRhblwgOwor6LKo5bmj5Yi25bqmIDwga2FoZWlzZWlkb1wgOwor6KCP5bel6Ii5IDwga2FuaWtvdXNlblwgOwor55uu5YWr5YiGIDwgbWVoYWNoaWJ1blwgOwor5Zub5Y2B6IKpIDwgc2hpanV1a2F0YVwgOwor5qW96Kaz55qEIDwgcmFra2FudGVraVwgOwor5b+D5YGc5q2iIDwgc2hpbnRlaXNoaVwgOwor6YCf5bCE56CyIDwgc29rdXNoYWhvdVwgOwor5pW15aSxIDwgdGVraXNoaXRzdVwgOwor5pel5ZKM5LiL6aeEIDwgaGl5b3JpZ2V0YVwgOwor5paw5bu65p2QIDwgc2hpbmtlbnphaVwgOwor5LiN5b+F6KaBIDwgZnVoaXRzdXlvdVwgOwor5omB6Z2S55+zIDwgaGVuc2Vpc2VraVwgOwor5Y+M55CD6I+MIDwgc291a3l1dWtpblwgOwor5LiW55WM5bmz5ZKMIDwgc2VrYWloZWl3YVwgOwor5rC0576K576uIDwgbWl6dXlvdWthblwgOwor5oqc5pys55qEIDwgYmFwcG9udGVraVwgOwor5pWZ5a6kIDwga3lvdXNoaXRzdVwgOwor5Y2Y55m65qmfIDwgdGFucGF0c3VraVwgOwor54Sh55CG6Zai5pWwIDwgbXVyaWthbnN1dVwgOwor6Lui6YCB5YWIIDwgdGVuc291c2FraVwgOwor5YWl5Lya6ICFIDwgbnl1dWthaXNoYVwgOwor5Li45pyo6Ii5IDwgbWFydWtpYnVuZVwgOwor6Z+z5ZCQ5pyX5pyXIDwgb250b3JvdXJvdVwgOwor5biM6YeI5rayIDwga2lzaGFrdWVraVwgOwor5qKF6Zuo5YmN57eaIDwgYmFpdXplbnNlblwgOwor5pyI5puc5pelIDwgZ2V0c3V5b3ViaVwgOwor5pyA6LOD5rOVIDwgc2FpY2hpbmhvdVwgOwor6Zu75rCX5pmC6KiIIDwgZGVua2lkb2tlaVwgOwor6Z2p5paw5rS+IDwga2FrdXNoaW5oYVwgOwor57W25ruFIDwgemV0c3VtZXRzdVwgOwor5LqM5Y2B5Zub5pelIDwgbmlqdXV5b2trYVwgOwor5oim55eF5q27IDwgc2VuYnlvdXNoaVwgOwor55S35oCn55qEIDwgZGFuc2VpdGVraVwgOwor5Lmz6YW46I+MIDwgbnl1dXNhbmtpblwgOwor5YmN54Wn54GvIDwgemVuc2hvdXRvdVwgOwor5oKy5q2M5oW35oWoIDwgaGlrYWtvdWdhaVwgOwor6IW45o276LuiIDwgY2hvdW5lbnRlblwgOwor6Kaq5YiG5qCqIDwgb3lhYnVua2FidVwgOwor5a2m55So5ZOBIDwgZ2FrdXlvdWhpblwgOwor54m55q6K5oCnIDwgdG9rdXNodXNlaVwgOwor5Y2Y6Imy55S7IDwgdGFuc2hva3VnYVwgOwor5LuV56uL5Yi4IDwgc2hpdGF0ZWtlblwgOwor5LqI6Ziy5Yy75a2mIDwgeW9ib3VpZ2FrdVwgOwor5b2T5pyf5Yip55uKIDwgdG91a2lyaWVraVwgOwor6KaB55+zIDwga2FuYW1laXNoaVwgOwor55qu5LiL6ISC6IKqIDwgaGlrYXNoaWJvdVwgOwor6Zmw5byB5oW2IDwga2FnZWJlbmtlaVwgOwor5re36KGA5YWQIDwga29ua2V0c3VqaVwgOwor6LKp5aOy5YWDIDwgaGFuYmFpbW90b1wgOwor5bi457+S54qvIDwgam91c2h1dWhhblwgOwor6Zm256OB5Zmo5bqXIDwgdG91amlraXRlblwgOwor5riF5ra85YmkIDwgc2VpcnlvdXphaVwgOwor5pyA5bCP5YCkIDwgc2Fpc2hvdWNoaVwgOwor5YiH56ym5aOy5aC0IDwga2lwcHV1cmliYVwgOwor6KO45L2T5Li7576pIDwgcmF0YWlzaHVnaVwgOwor5rC05peP6aSoIDwgc3Vpem9rdWthblwgOwor5YWx54qv6ICFIDwga3lvdWhhbnNoYVwgOwor5a+/5Y+46aOvIDwgc3VzaGltZXNoaVwgOwor5oCl6Lui5o+bIDwga3l1dXRlbmthblwgOwor5oub5b6F54q2IDwgc2hvdXRhaWpvdVwgOwor5omT5pKy5YK3IDwgZGFib2t1c2hvdVwgOwor6Z+z5qiZ5paH5a2XIDwgb25weW91bW9qaVwgOwor54m55b6F5Yi4IDwgdG9rdXRhaWtlblwgOwor5q+S5Lq65Y+CIDwgZG9rdW5pbmppblwgOwor5LiN5q2j6KaP5oimIDwgZnVzZWlraXNlblwgOwor5aSp56u66JG1IDwgdGVuamlrdWFvaVwgOwor5aWz5LiW5bivIDwgb24nJ25ham90YWlcIDsKK+S6uumWk+eahCA8IG5pbmdlbnRla2lcIDsKK+iouuaWreabuCA8IHNoaW5kYW5zaG9cIDsKK+iYmuiLlOWtpiA8IHNlbnRhaWdha3VcIDsKK+e1tuWvvuS9jee9riA8IHpldHRhaWljaGlcIDsKK+WOn+eov+aWmSA8IGdlbmtvdXJ5b3VcIDsKK+ebo+edo+WumCA8IGthbnRva3VrYW5cIDsKK+WVhuWLmeecgSA8IHNob3VtdXNob3VcIDsKK+Wuo+WRiuabuCA8IHNlbmtva3VzaG9cIDsKK+WknOWknOS4rSA8IHlvcnV5b25ha2FcIDsKK+ijj+ipsSA8IHVyYWJhbmFzaGlcIDsKK+mAmuS/oeewvyA8IHRzdXVzaGluYm9cIDsKK+WghuepjeWyqSA8IHRhaXNla2lnYW5cIDsKK+aKkeeVmeaJgCA8IHlva3VyeXV1am9cIDsKK+aSnuacqOadliA8IHNodW1va3V6dWVcIDsKK+m7hOmHkeeOhyA8IG91Z29ucml0c3VcIDsKK+WghuepjeWxpCA8IHRhaXNla2lzb3VcIDsKK+WQiOWUseWboyA8IGdhc3Nob3VkYW5cIDsKK+WlveaVteaJiyA8IGtvdXRla2lzaHVcIDsKK+ewoeaYk+S/nemZuiA8IGthbicnaWhva2VuXCA7CivnsonolqwgPCBrb25hZ3VzdXJpXCA7Civmlofnq6DpoYwgPCBidW5zaG91ZGFpXCA7Civlr6HpoK3mlL/msrsgPCBrYXRvdXNlaWppXCA7Civph5HnianlsYsgPCBrYW5hbW9ub3lhXCA7Civlm6Poj4rnpa0gPCBkYW5naWt1c2FpXCA7Civnt6nooZ3mtrIgPCBrYW5zaG91ZWtpXCA7Civlr4Tlrr/oiI4gPCBraXNodWt1c2hhXCA7CivnuK7liLcgPCBzaHVrdXNhdHN1XCA7CivmvZzmnJvpj6EgPCBzZW5ib3VreW91XCA7CivmlrDlt6bnv7wgPCBzaGluc2F5b2t1XCA7CivpgaHlj4rnmoQgPCBzb2t5dXV0ZWtpXCA7CivlkIzmg4Xlv4MgPCBkb3Vqb3VzaGluXCA7CivkuIvnqL3lj6QgPCBzaGl0YWdlaWtvXCA7Civnq7bkuonogIUgPCBreW91c291c2hhXCA7CivllYblupfooZcgPCBzaG91dGVuZ2FpXCA7CivnjonmiYvnrrEgPCB0YW1hdGViYWtvXCA7CivlnJ/osZogPCB0c3VjaGlidXRhXCA7CivkuIrljYrouqsgPCBqb3VoYW5zaGluXCA7CivkuIvmsLTlh6bnkIYgPCBnZXN1aXNob3JpXCA7CivmuKzlrprms5UgPCBzb2t1dGVpaG91XCA7CivpmY3lnKfliaQgPCBrb3VhdHN1emFpXCA7CivmgKXlgr7mlpwgPCBreXV1a2Vpc2hhXCA7CivkuKHmo7LpoZ4gPCByeW91c2VpcnVpXCA7CivmnIDkuIrntJogPCBzYWlqb3VreXV1XCA7CivlgYPmnIjliIAgPCBlbmdldHN1dG91XCA7CivnnIvorbfljZIgPCBrYW5nb3NvdHN1XCA7CivoqJjmhrbntKDlrZAgPCBraW9rdXNvc2hpXCA7Civpn7Plo7DoqJjlj7cgPCBvbnNlaWtpZ291XCA7CivlkozlubPkvJrorbAgPCB3YWhlaWthaWdpXCA7Civnvavnt5rooaggPCBrZWlzZW5oeW91XCA7CivnoLTlo4rkuLvnvqkgPCBoYWthaXNodWdpXCA7Civph53lnJ/nq5wgPCBoYXJpbW9ndXJhXCA7Civlroflrpnln7rlnLAgPCB1Y2h1dWtpY2hpXCA7Civnga/lj7DlroggPCB0b3VkYWltb3JpXCA7Civku67lhY3nirYgPCBrYXJpbWVuam91XCA7CivlvL7olqzluqsgPCBkYW4nJ3lha3Vrb1wgOwor5ZCI5rOV55qEIDwgZ291aG91dGVraVwgOwor5LiN5Y+v55+l6KuWIDwgZnVrYWNoaXJvblwgOwor6Ieq6KGb5omL5q61IDwgamllaXNodWRhblwgOwor5oyr5oqY5oSfIDwgemFzZXRzdWthblwgOwor5bCP5aOy5YCk5q61IDwga291cmluZWRhblwgOwor5pWR5Ye6IDwga3l1dXNodXRzdVwgOwor5aOB5ZyfIDwga2FiZXRzdWNoaVwgOwor6LWk5paw6IGeIDwgYWthc2hpbmJ1blwgOwor6Iag552A6KqeIDwga291Y2hha3Vnb1wgOwor57WC5q2i5b2iIDwgc2h1dXNoaWtlaVwgOwor5Ye65riv6Ii5IDwgc2h1a2tvdXNlblwgOwor6Ly45YWl6aGNIDwgeXVueXV1Z2FrdVwgOwor55Sy5q676aGeIDwga291a2FrdXJ1aVwgOwor5biC5aC06KaP5qihIDwgc2hpam91a2lib1wgOwor6K2w5ZOh56uL5rOVIDwgZ2lpbnJpcHBvdVwgOwor6Zqc5aOB55S7IDwgc2hvdWhla2lnYVwgOwor5rq25o6l5qmfIDwgeW91c2V0c3VraVwgOwor5LmX57WE5ZOhIDwgbm9yaWt1bWlpblwgOwor6IWO6IeT55eFIDwgamluem91YnlvdVwgOwor5Y+v5pCs5byPIDwga2FoYW5zaGlraVwgOwor5YGl562G5a62IDwga2VucGl0c3VrYVwgOwor5q2j5Lit57eaIDwgc2VpY2h1dXNlblwgOwor5Y2D5bm06ZaTIDwgc2VuJyduZW5rYW5cIDsKK+ajkuejgeefsyA8IGJvdWppc2hha3VcIDsKK+ims+iznumtmiA8IGthbnNob3VneW9cIDsKK+elnuWtpuagoSA8IHNoaW5nYWtrb3VcIDsKK+S9nOalreacjSA8IHNhZ3lvdWZ1a3VcIDsKK+eZuuedgOaJgCA8IGhhdGNoYWt1am9cIDsKK+imqui/keaEnyA8IHNoaW5raW5rYW5cIDsKK+S5seazpea1gSA8IHJhbmRlaXJ5dXVcIDsKK+W9k+ebtOWToSA8IHRvdWNob2t1aW5cIDsKK+Wtpue0muWnlOWToSA8IGdha2t5dXVpaW5cIDsKK+e1seioiOeahCA8IHRvdWtlaXRla2lcIDsKK+e1kOacqyA8IGtldHN1bWF0c3VcIDsKK+iKuOihk+WutiA8IGdlaWp1dHN1a2FcIDsKK+eOhOmWouWFiCA8IGdlbmthbnNha2lcIDsKK+imquafsSA8IG95YWJhc2hpcmFcIDsKK+a3sea1t+mtmiA8IHNoaW5rYWlneW9cIDsKK+WQjOW/l+eahCA8IGRvdXNoaXRla2lcIDsKK+eym+eymyA8IHNodWt1c2h1a3VcIDsKK+S+oeWNg+mHkSA8IGF0YWlzZW5raW5cIDsKK+itsOS8muS4u+e+qSA8IGdpa2Fpc2h1Z2lcIDsKK+S5neWbnuaIpiA8IGt5dXVrYWlzZW5cIDsKK+WfuuekjuenkeWtpiA8IGtpc29rYWdha3VcIDsKK+WbveiomyA8IGt1bmluYW1hcmlcIDsKK+aNnOafu+acrOmDqCA8IHNvdXNhaG9uYnVcIDsKK+WNiuawuOS5hSA8IGhhbicnZWlreXV1XCA7Civpm5HlvbnlqaYgPCB6YXRzdWVraWZ1XCA7Civlhrflh43mpa0gPCByZWl0b3VneW91XCA7Civntr/ln4MgPCB3YXRhYm9rb3JpXCA7CivlroflrpnmjqLmn7sgPCB1Y2h1dXRhbnNhXCA7CivlhJLmlZnnmoQgPCBqdWt5b3V0ZWtpXCA7Civopqrml6UgPCBzaGluJyduaWNoaVwgOwor6YWbIDwgc2FrZW5vbW90b1wgOwor5o+a6Zm46ImmIDwgeW91cmlrdWthblwgOwor6YeN6Ky55oWOIDwganV1a2luc2hpblwgOwor5YeN6LGG6IWQIDwgc2hpbWlkb3VmdVwgOwor5rC46LC35ZySIDwgbmFnYXRhbmllblwgOwor5LqM5qe95byPIDwgbmlzb3VzaGlraVwgOwor55u45LmX56mNIDwgc291am91c2VraVwgOwor6I+M6aGe5a2mIDwga2lucnVpZ2FrdVwgOwor5paw5YiK5pu4IDwgc2hpbmthbnNob1wgOwor6Z2S5bCR5bm0IDwgc2Vpc2hvdW5lblwgOwor5o6o6YCy6ICFIDwgc3Vpc2hpbnNoYVwgOwor54G854axIDwgc2hha3VuZXRzdVwgOwor5YiX5bit6ICFIDwgcmVzc2VraXNoYVwgOwor5Zu955Sj5ZOBIDwga29rdXNhbmhpblwgOwor5oeQ5pen6KuHIDwga2Fpa3l1dWRhblwgOwor5p6v6I2J54axIDwga29zb3VuZXRzdVwgOwor6ZuH5Li7IDwgeWF0b2ludXNoaVwgOwor5Lit55Sy5p2/IDwgY2h1dWthbnBhblwgOwor5Z+L5LyP5q2vIDwgbWFpZnVrdXNoaVwgOwor5YaF57eS5LqLIDwgbmFpc2hvZ290b1wgOwor5LiA562J5Y2SIDwgaXR0b3Vzb3RzdVwgOwor5Lqc6bq757mU54mpIDwgYW1hb3JpbW9ub1wgOwor56We5Luj5p2JIDwgamluZGFpc3VnaVwgOwor5YCk5bWp5qCqIDwgbmVnYXNha2FidVwgOwor5pS/5rK75YqbIDwgc2VpamlyeW9rdVwgOwor562U55Sz5pu4IDwgdG91c2hpbnNob1wgOwor6aCG5bqP5LiN5ZCMIDwganVuam9mdWRvdVwgOwor57aZ5aiYIDwgbWFtYW11c3VtZVwgOwor5Lmx5b+D6ICFIDwgcmFuc2hpbnNoYVwgOwor57WM5riI5o+05YqpIDwga2VpemFpZW5qb1wgOwor54S85aSxIDwgc2hvdXNoaXRzdVwgOwor5Lq66ZaT5qWtIDwgbmluZ2Vud2F6YVwgOwor57Sv566X5rip5bqmIDwgcnVpc2Fub25kb1wgOwor5YWx6KyA6ICFIDwga3lvdWJvdXNoYVwgOwor5p2l6LOT5bitIDwgcmFpaGluc2VraVwgOwor6Iie6LiP5puyIDwgYnV0b3VreW9rdVwgOwor5L+u6KGM6ICFIDwgc2h1Z3lvdXNoYVwgOwor5bO25qC555yMIDwgc2hpbWFuZWtlblwgOwor5by356Gs6KuWIDwga3lvdWtvdXJvblwgOwor5rOV5rK75Zu9IDwgaG91Y2hpa29rdVwgOwor5LiN5b6X562WIDwgZnV0b2t1c2FrdVwgOwor6Kiz5Ye6IDwgeWFrdXNodXRzdVwgOwor54OI5pelIDwgcmV0c3VqaXRzdVwgOwor5Zyo57Gz5LitIDwgemFpYmVpY2h1dVwgOwor5Yy/5ZCN5oCnIDwgdG9rdW1laXNlaVwgOwor55m75bGx6Z20IDwgdG96YW5ndXRzdVwgOwor5rWq5ryr5Li7576pIDwgcm9tYW5zaHVnaVwgOwor5bqn5pW354miIDwgemFzaGlraXJvdVwgOwor56We5qC85YyWIDwgc2hpbmtha3VrYVwgOwor6LWk5aSW57eaIDwgc2VraWdhaXNlblwgOwor6Jas55So6YWSIDwgeWFrdXlvdXNodVwgOwor57WQ5qC46I+MIDwga2Vra2FrdWtpblwgOwor57eg5LuYIDwgc2hpbWV0c3VrZVwgOwor6I2J5bGl6JmrIDwgem91cmltdXNoaVwgOwor5q2m6KOF6YO95biCIDwgYnVzb3V0b3NoaVwgOwor5aSn6KGG5oCnIDwgdGFpc2h1dXNlaVwgOwor5a+E5a6/55SfIDwga2lzaHVrdXNlaVwgOwor5piH5rGe5rC0IDwgc2hvdWtvdXN1aVwgOwor5q2m6ICF5oWEIDwgbXVzaGFidXJ1aVwgOwor5paH56ug6KuWIDwgYnVuc2hvdXJvblwgOwor54m56YG45ZOBIDwgdG9rdXNlbmhpblwgOwor6L+R6Kaq6ICFIDwga2luc2hpbnNoYVwgOwor6KSH5pWw5b2iIDwgZnVrdXN1dWtlaVwgOwor5bm96YKD5aKDIDwgeXV1c3Vpa3lvdVwgOwor5YaN5oqV56WoIDwgc2FpdG91aHlvdVwgOwor5LiN5rS75YuVIDwgZnVrYXRzdWRvdVwgOwor5YWo5a+u5Yi2IDwgemVucnlvdXNlaVwgOwor5bmz5ZKM5Zu95a62IDwgaGVpd2Frb2trYVwgOwor6L+95oK85LyaIDwgdHN1aXRvdWthaVwgOwor6YGT6Lev5Zyw5ZuzIDwgZG91cm9jaGl6dVwgOwor562S6bOlIDwgdHN1dHN1ZG9yaVwgOwor55m95YW15oimIDwgaGFrdWhlaXNlblwgOwor6KuL5rGC5qipIDwgc2Vpa3l1dWtlblwgOwor5b+g6ZyK5aGUIDwgY2h1dXJlaXRvdVwgOwor6ZqZ6ZaT6aKoIDwgc3VraW1ha2F6ZVwgOwor5YWx5pyJ5ZywIDwga3lvdXl1dWNoaVwgOwor54mH54K65pu/IDwga2F0YWdhd2FzZVwgOwor57ep6KGd5byBIDwga2Fuc2hvdWJlblwgOwor5a6/5qC56I2JIDwgc2h1a2tvbnNvdVwgOwor5aSn56uL6ICFIDwgb29kYXRlbW9ub1wgOwor5rOw5bGx5pyoIDwgdGFpc2FuYm9rdVwgOwor57O454q26JmrIDwgc2hpam91Y2h1dVwgOwor57W257iB5L2TIDwgemV0c3VlbnRhaVwgOwor6YeM6KiA6JGJIDwgc2F0b2tvdG9iYVwgOwor5b6h5pyx5Y2w6Ii5IDwgZ29zaHVpbnNlblwgOwor6LO86Kqt6ICFIDwga291ZG9rdXNoYVwgOwor5aOy6LK36auYIDwgYmFpYmFpZGFrYVwgOwor5oy66YCy6ZqKIDwgdGVpc2hpbnRhaVwgOwor6KmUIDwgbWlrb3Rvbm9yaVwgOwor6ISx5rC055eHIDwgZGFzc3Vpc2hvdVwgOwor5Yun6YCy5bizIDwga2FuamluY2hvdVwgOwor5ouh5by15YyWIDwga2FrdWNob3VrYVwgOwor5q665Lq66ay8IDwgc2F0c3VqaW5raVwgOwor5rWB5YuV5oCnIDwgcnl1dWRvdXNlaVwgOwor5Zub6YeN5ZSxIDwgc2hpanV1c2hvdVwgOwor5pWZ6IKy6ICFIDwga3lvdWlrdXNoYVwgOwor5Y+N5a++5YG0IDwgaGFudGFpZ2F3YVwgOwor55C05LiA5by1IDwga290b2l0Y2hvdVwgOwor5YaF5Zyo55qEIDwgbmFpemFpdGVraVwgOwor5LiJ5q616LezIDwgc2FuZGFudG9iaVwgOwor6aOb6LqN55qEIDwgaGl5YWt1dGVraVwgOwor5omL6ZW354y/IDwgdGVuYWdhemFydVwgOwor6ICB55y86Y+hIDwgcm91Z2Fua3lvdVwgOwor5Luu5Yem5YiGIDwga2FyaXNob2J1blwgOwor6KKL6ICzIDwgZnVrdXJvbWltaVwgOwor5YWo5Lq65qC8IDwgemVuamlua2FrdVwgOwor5YiG5rOM54mpIDwgYnVucGlidXRzdVwgOwor6KuL5rGC5pu4IDwgc2Vpa3l1dXNob1wgOwor57WQ5a6fIDwga2V0c3VqaXRzdVwgOwor5LiN5rG65patIDwgZnVrZXRzdWRhblwgOwor5YWI5YWI6YCxIDwgc2Vuc2Vuc2h1dVwgOwor6Ie05ZG955qEIDwgY2hpbWVpdGVraVwgOwor5Lmz55+z6IuxIDwgbnl1dXNla2llaVwgOwor6LKh5pS/5a2mIDwgemFpc2VpZ2FrdVwgOwor57aa5Ye6IDwgem9rdXNodXRzdVwgOwor5aSc6YOO6Ieq5aSnIDwgeWFyb3VqaWRhaVwgOwor6aOy6aOf5bqXIDwgaW5zaG9rdXRlblwgOwor6YOo5YiG5ZCm5a6aIDwgYnVidW5oaXRlaVwgOwor57SZ6KO95ZOBIDwga2FtaXNlaWhpblwgOwor6J2fIDwgaGFyaW5lenVtaVwgOwor6Kyb5ZKM5Lya6K2wIDwga291d2FrYWlnaVwgOwor57eo57WE5qmf5qKwIDwgaGVuc29raWthaVwgOwor5rOV5b6L5qGIIDwgaG91cml0c3VhblwgOwor5Y2K55uy55eHIDwgaGFubW91c2hvdVwgOwor56Gd6YW46YqAIDwgc2hvdXNhbmdpblwgOwor5Yy755mC5Zmo5qKwIDwgaXJ5b3VraWthaVwgOwor6Ziy57eP55yBIDwgYm91c291c2hvdVwgOwor5q2j6KaP5YiG5biDIDwgc2Vpa2lidW5wdVwgOwor6YCG5q+U5L6LIDwgZ3lha3VoaXJlaVwgOwor5oqV5pu4566xIDwgdG91c2hvYmFrb1wgOwor5Lya5ZOh5ZCN57C/IDwga2FpaW5tZWlib1wgOwor5r+D57SrIDwga29tdXJhc2FraVwgOwor5Z+O5LiL55S6IDwgam91a2FtYWNoaVwgOwor54m55Yil5aeUIDwgdG9rdWJldHN1aVwgOwor5p2R6Iqd5bGFIDwgbXVyYXNoaWJhaVwgOwor57aZ5oGv5a2QIDwgbWFtYW11c3Vrb1wgOwor55m65L+h6Z+zIDwgaGFzc2hpbicnb25cIDsKK+WkqeWkieWcsOeVsCA8IHRlbnBlbmNoaWlcIDsKK+acieWPsuS7peadpSA8IHl1dXNoaWlyYWlcIDsKK+Wbm+atu+eQgyA8IHNoaXNoaWt5dXVcIDsKK+eMrumHkeeusSA8IGtlbmtpbmJha29cIDsKK+aIpueVpeWutiA8IHNlbnJ5YWt1a2FcIDsKK+WFrOiBtOS8miA8IGtvdWNob3VrYWlcIDsKK+a6nem8oCA8IGRvYnVuZXp1bWlcIDsKK+iQmSA8IGt1dGFiaXJlcnVcIDsKK+ikh+aVsOWbniA8IGZ1a3VzdXVrYWlcIDsKK+S8muioiOWtpiA8IGthaWtlaWdha3VcIDsKK+ewoeeVpeWMliA8IGthbnJ5YWt1a2FcIDsKK+e1pumbu+e3miA8IGt5dXVkZW5zZW5cIDsKK+WQieelpeWkqSA8IGtpc3Nob3V0ZW5cIDsKK+S/neitt+mWoueojiA8IGhvZ29rYW56ZWlcIDsKK+acquW4sOmChOiAhSA8IG1pa2lrYW5zaGFcIDsKK+W+oeW9seefsyA8IG1pa2FnZWlzaGlcIDsKK+WGheWbveeUoyA8IG5haWtva3VzYW5cIDsKK+S4ieaXpeWdiuS4uyA8IG1pa2thYm91enVcIDsKK+mbquaciOiKsSA8IHNldHN1Z2Vra2FcIDsKK+engeabuOeusSA8IHNoaXNob2Jha29cIDsKK+ebtOaYoOmkqCA8IGNob2t1ZWlrYW5cIDsKK+eXheeQhuWtpiA8IGJ5b3VyaWdha3VcIDsKK+W+qeWIu+eJiCA8IGZ1a2tva3ViYW5cIDsKK+mAgOW7g+eahCA8IHRhaWhhaXRla2lcIDsKK+eiuuWbuuS4jeWLlSA8IGtha2tvZnVkb3VcIDsKK+S6uumWk+WtpiA8IG5pbmdlbmdha3VcIDsKK+S4i+edgOmhniA8IHNoaXRhZ2lydWlcIDsKK+WUkOWkieacqCA8IHRvdWhlbmJva3VcIDsKK+e3muaSruW9sSA8IHNlbnNhdHN1ZWlcIDsKK+aWh+aIv+WFt+WxiyA8IGJ1bmJvdWd1eWFcIDsKK+aWsOeUn+mdoiA8IHNoaW5zZWltZW5cIDsKK+W6t+eFleWtl+WFuCA8IGtvdWtpaml0ZW5cIDsKK+ihgOiEiCA8IGtldHN1bXlha3VcIDsKK+aVsOaXpeW+jCA8IHN1dWppdHN1Z29cIDsKK+acquadpeawuOWKqyA8IG1pcmFpZWlnb3VcIDsKK+i2heWQiOmHkSA8IGNob3Vnb3VraW5cIDsKK+WkmuWbveexjSA8IHRha29rdXNla2lcIDsKK+epjeeul+azlSA8IHNla2lzYW5ob3VcIDsKK+eEoeeQhueul+autSA8IG11cmlzYW5kYW5cIDsKK+WklueCuuazlSA8IGdhaXRhbWVob3VcIDsKK+WHuuWTgeiAhSA8IHNodXBwaW5zaGFcIDsKK+immumGkuWJpCA8IGtha3VzZWl6YWlcIDsKK+mrmOWxseidtiA8IGtvdXphbmNob3VcIDsKK+i/kee4geWxniA8IGtpbicnZW56b2t1XCA7CivkuIrpgZTpg6ggPCBrYW5kYWNoaW1lXCA7Civlj6/pjZvpiYQgPCBrYXRhbnRldHN1XCA7Civlv4PnkIbnmoQgPCBzaGlucml0ZWtpXCA7CivkuZfmj5vliLggPCBub3Jpa2Fla2VuXCA7CivmlZnogrLnlYwgPCBreW91aWt1a2FpXCA7CivpmbDmpbXnt5ogPCBpbmt5b2t1c2VuXCA7CivljYroiYfouqsgPCBoYW50ZWlzaGluXCA7CivopqrlhYTlvJ8gPCBveWFreW91ZGFpXCA7Civml4XppKjmpa0gPCByeW9rYW5neW91XCA7CivlrabmnJ/mnKsgPCBnYWtraW1hdHN1XCA7CivomZ7nvo7kurrojYkgPCBndWJpamluc291XCA7CivliLDmnaXniakgPCB0b3VyYWltb25vXCA7CivosaHniZnntLDlt6UgPCB6b3VnZXphaWt1XCA7Civmspbku7Lku5UgPCBva2luYWthc2hpXCA7CivlpJblm73oo70gPCBnYWlrb2t1c2VpXCA7CivntYLnm6TmiKYgPCBzaHV1YmFuc2VuXCA7CivpgIblhYnnt5ogPCBneWFra291c2VuXCA7CivosaHlvrTmtL4gPCBzaG91Y2hvdWhhXCA7Civli6fpgLLlhYMgPCBrYW5qaW5tb3RvXCA7CivprZrpoZ7lraYgPCBneW9ydWlnYWt1XCA7CivpjozpvKwgPCBrYW1haXRhY2hpXCA7CivnuJ7nkarnkZkgPCBzaGltYW1lbm91XCA7CivnnJ/nqbrnrqEgPCBzaGlua3V1a2FuXCA7CivoiI7liKnliKUgPCBzaGFyaWJldHN1XCA7CivkuqzpmKrnpZ4gPCBrZWloYW5zaGluXCA7CivmhaPnv5Lms5UgPCBrYW5zaHV1aG91XCA7Civmu4XojLbmu4XojLYgPCBtZWNoYW1lY2hhXCA7CivpoK3pmYDooosgPCB6dWRhYnVrdXJvXCA7CivpmbDmpbXnrqEgPCBpbmt5b2t1a2FuXCA7Civmt7flkozniakgPCBrb253YWJ1dHN1XCA7CivliIDpjZvlhrYgPCBrYXRhbmFrYWppXCA7CivmvZzkvI/mgKcgPCBzZW5wdWt1c2VpXCA7Civpoqjou4rlsI/lsYsgPCBmdXVzaGFnb3lhXCA7Civmi5vlvoXliLggPCBzaG91dGFpa2VuXCA7CivlrZDkvpvpg6jlsYsgPCBrb2RvbW9iZXlhXCA7CivmsYLmhJvoqofnpLogPCBreXV1YWlrb2ppXCA7Civlj5fpm6Pnr4AgPCBqdW5hbnNldHN1XCA7CivmuKzlrprlgKQgPCBzb2t1dGVpY2hpXCA7CivljJbnsqfntJkgPCBrZXNob3VnYW1pXCA7CivlpKfmhrLnq6AgPCBkYWlrZW5zaG91XCA7CivnjovmlL/lvqnlj6QgPCBvdXNlaWZ1a2tvXCA7CivljZjoibLlhYkgPCB0YW5zaG9ra291XCA7CivooovniakgPCBmdWt1cm9tb25vXCA7CivnlLLmrrvntrEgPCBrb3VrYWt1a291XCA7Civpm4blkIjkvZMgPCBzaHV1Z291dGFpXCA7CivkuIDkurrpg6jlsYsgPCBoaXRvcmliZXlhXCA7Civnq4vlvoDnlJ8gPCB0YWNoaW91am91XCA7Civnq5UgPCBkZXNoaXJpdHRvXCA7CivkuI3osrfpgYvli5UgPCBmdWJhaXVuZG91XCA7CivlrZDlrq7poLggPCBzaGlreXV1a2VpXCA7CivlkJ3ll4flkJ3ll4cgPCBrZWNoaWtlY2hpXCA7CivntYzpqJPnmoQgPCBrZWlrZW50ZWtpXCA7CivljJbnsqfnrrEgPCBrZXNob3ViYWtvXCA7CivkuoznlarmmJ8gPCBuaWJhbmJvc2hpXCA7Civopb/lj6MgPCBuaXNoaWd1Y2hpXCA7Civms5XlvovlrrYgPCBob3VyaXRzdWthXCA7CivlrprmnJ/poJDph5EgPCB0ZWlraXlva2luXCA7CivkuIDlrprmnJ/plpMgPCBpdHRlaWtpa2FuXCA7CivmtJfmv6/mnb8gPCBzZW50YWt1aXRhXCA7Civmu5HmsqLliaQgPCBrYXR0YWt1emFpXCA7Civlr77np7DmgKcgPCB0YWlzaG91c2VpXCA7CivlsJHlubTms5UgPCBzaG91bmVuaG91XCA7CivlvrPlt53lrrYgPCB0b2t1Z2F3YWtlXCA7CivlnLDkuIvpgYvli5UgPCBjaGlrYXVuZG91XCA7CivmtYHli5XkvZMgPCByeXV1ZG91dGFpXCA7CivntYLliIrlj7cgPCBzaHV1a2FuZ291XCA7Civnm6Pkv67ogIUgPCBrYW5zaHV1c2hhXCA7CivlhbHnt6jogIUgPCBreW91aGVuc2hhXCA7Civmh5DnlpHkuLvnvqkgPCBrYWlnaXNodWdpXCA7Civono3pgJrnhKHnoo0gPCB5dXV6dXVtdWdlXCA7Civkv53lronopoHlk6EgPCBob2FuJyd5b3VpblwgOwor57Wx6KiI5a2mIDwgdG91a2VpZ2FrdVwgOwor6Lyq6YOt57eaIDwgcmlua2FrdXNlblwgOwor6LuN6Imm6bOlIDwgZ3Vua2FuZG9yaVwgOwor5ZWG6Ii56ZqKIDwgc2hvdXNlbnRhaVwgOwor6LaF5rqA5ZOhIDwgY2hvdW1hbicnaW5cIDsKK+eJh+aJi+mNiyA8IGthdGF0ZW5hYmVcIDsKK+iCoemWouevgCA8IGtva2Fuc2V0c3VcIDsKK+evgOevgCA8IGZ1c2hpYnVzaGlcIDsKK+iqv+WRs+aWmSA8IGNob3VtaXJ5b3VcIDsKK+WPiOWwj+S9nCA8IG1hdGFrb3Nha3VcIDsKK+etkuiiliA8IHRzdXRzdXNvZGVcIDsKK+S4jeato+ebtCA8IGZ1c2hvdWppa2lcIDsKK+a0quepjeWxpCA8IGtvdXNla2lzb3VcIDsKK+aknOWcp+WZqCA8IGtlbicnYXRzdWtpXCA7CivkuLvmiJHkuLvnvqkgPCBzaHVnYXNodWdpXCA7Civmn5PnianlsYsgPCBzb21lbW9ub3lhXCA7CivphY3ohrPkurogPCBoYWl6ZW4nJ25pblwgOwor5aKD55WM57eaIDwga3lvdWthaXNlblwgOwor6Z2Z54mp55S7IDwgc2VpYnV0c3VnYVwgOwor5pWZ6IKy5rOVIDwga3lvdWlrdWhvdVwgOwor5Y+O6ZuG6a2UIDwgc2h1dXNodXVtYVwgOwor6Zui6IG36ICFIDwgcmlzaG9rdXNoYVwgOwor54mn5bir6aSoIDwgYm9rdXNoaWthblwgOwor5Y2g6aCY6LuNIDwgc2VucnlvdWd1blwgOwor57O45Y2wIDwgaXRvamlydXNoaVwgOwor5Lit55Sf5LujIDwgY2h1dXNlaWRhaVwgOwor54K65Lq6IDwgaGl0b3RvbmFyaVwgOwor5LiL5Y2K5pyfIDwgc2hpbW9oYW5raVwgOwor5pWZ5Lya5rOVIDwga3lvdWthaWhvdVwgOwor5Y6f5rC054iGIDwgZ2Vuc3VpYmFrdVwgOwor55SFIDwgc2VuY2hpZ3VyYVwgOwor55O4IDwgaGVrdXRvZ3VyYVwgOwor54Kt5L+1IDwgc3VtaWRhd2FyYVwgOwor55OxIDwgbWlyaWd1cmFtdVwgOwor55OpIDwga2lyb2d1cmFtdVwgOwor55OnIDwgZGVrYWd1cmFtdVwgOwor5Yi657mN57O4IDwgc2hpc2h1dWl0b1wgOwor5LiN5L2c54K654qvIDwgZnVzYWt1aWhhblwgOwor5pCt5LmX5qmLIDwgdG91am91a3lvdVwgOwor55+z6bm4566xIDwgc2Vra2VuYmFrb1wgOwor5Zue6Lui6Lu4IDwga2FpdGVuamlrdVwgOwor5Yi75LiA5Yi7IDwga29rdWlra29rdVwgOwor5Ym16YCg55qEIDwgc291em91dGVraVwgOwor55e05ZGG55eHIDwgY2hpaG91c2hvdVwgOwor57Gz5omAIDwga29tZWRva29yb1wgOwor5o6S5rC06YePIDwgaGFpc3VpcnlvdVwgOwor5ZCE5oOF5aCxIDwga2FrdWpvdWhvdVwgOwor6IiX6KOF54WJ55OmIDwgaG9zb3VyZW5nYVwgOwor5oqV5b2x5Zuz5rOVIDwgdG91ZWl6dWhvdVwgOwor5qC45paH5rOVIDwga2FrdWJ1bnBvdVwgOwor5aOy5LiK6auYIDwgdXJpYWdlZGFrYVwgOwor5rex5oiQ5bKpIDwgc2hpbnNlaWdhblwgOwor6IO45LiJ5a+4IDwgbXVuZXNhbnp1blwgOwor5b6X5oSP5a6iIDwgdG9rdWlreWFrdVwgOwor5b605YW15Yi2IDwgY2hvdWhlaXNlaVwgOwor56uv6L+RIDwgaGFzaGlkamlrYVwgOwor6Y6W6Y6MIDwga3VzYXJpZ2FtYVwgOwor5oCn5pys6IO9IDwgc2VpaG9uJydub3VcIDsKK+a7heijgiA8IG1ldHN1cmV0c3VcIDsKK+S8keiouuaXpSA8IGt5dXVzaGluYmlcIDsKK+Wft+mHkemLvCA8IHNoaWtrb25nb3VcIDsKK+e3j+eKtuiKseW6jyA8IHNvdWpvdWtham9cIDsKK+ernOearuW3uyA8IHJ5dXVoaW1ha2lcIDsKK+WbnuW4sOeGsSA8IGthaWtpbmV0c3VcIDsKK+elneizgOS8miA8IHNodWt1Z2FrYWlcIDsKK+eUn+a0u+iyuyA8IHNlaWthdHN1aGlcIDsKK+azleWLmeWxgCA8IGhvdW11a3lva3VcIDsKK+S4reWtpuagoSA8IGNodXVnYWtrb3VcIDsKK+aciOimi+iNiSA8IHRzdWtpbWlzb3VcIDsKK+a4hea1hOeEoeWeoiA8IHNlaWpvdW11a3VcIDsKK+mAmuS/l+WMliA8IHRzdXV6b2t1a2FcIDsKK+ebtOS6pOaApyA8IGNob2trb3VzZWlcIDsKK+eosueGseeXhSA8IGltb2NoaWJ5b3VcIDsKK+S4iemdouiomOS6iyA8IHNhbm1lbmtpamlcIDsKK+mrmOi4j+eahCA8IGtvdXRvdXRla2lcIDsKK+e1puaWmeaXpSA8IGt5dXVyeW91YmlcIDsKK+aJjeawl+e4puaoqiA8IHNhaWtpanV1b3VcIDsKK+S4h+W5tOmdkiA8IG1hbicnbmVuc2VpXCA7CivlsI/liY3mj5AgPCBzaG91emVudGVpXCA7Civlha3kuInliLYgPCByb2t1c2Fuc2VpXCA7CivpgKDmnpflraYgPCB6b3VyaW5nYWt1XCA7CivmnKzkvY3osqjluaMgPCBob24nJ2lrYWhlaVwgOwor5YWo6LKs5Lu7IDwgemVuc2VraW5pblwgOwor6aas6bm/5LiB5a+nIDwgYmFrYXRlaW5laVwgOwor54Wn5piO5by+IDwgc2hvdW1laWRhblwgOwor5oSb5Zu95b+DIDwgYWlrb2t1c2hpblwgOwor5r2u54WZIDwgc2hpb2tlbXVyaVwgOwor55+z6bm455q/IDwgc2Vra2VuemFyYVwgOwor5LqI5a6a6KqsIDwgeW90ZWlzZXRzdVwgOwor562G6IiMIDwgaGl0c3V6ZXRzdVwgOwor5pel6JGh6L6e5pu4IDwgbmlwcG9qaXNob1wgOwor6ISz56Gs5aGeIDwgbm91a291c29rdVwgOwor57eP5aSn5bCGIDwgc291ZGFpc2hvdVwgOwor5aeL5pyr5bGLIDwgc2hpbWF0c3V5YVwgOwor5Zu95pyJ5p6XIDwga29rdXl1dXJpblwgOwor6Jas5a2m6YOoIDwgeWFrdWdha3VidVwgOwor5om55Yik5YqbIDwgaGloYW5yeW9rdVwgOwor562J6Lqr5aSnIDwgdG91c2hpbmRhaVwgOwor5L2N55u456m66ZaTIDwgaXNvdWt1dWthblwgOwor5rW35LqL6KGb5pifIDwga2FpamllaXNlaVwgOwor56m65rCX5qmf5qKwIDwga3V1a2lraWthaVwgOwor57eP5pS75pKDIDwgc291a291Z2VraVwgOwor6auY5bGx55eFIDwga291emFuYnlvdVwgOwor5LqU5pyI56WtIDwgZ29nYXRzdXNhaVwgOwor5YWx5ZCM5LqV5oi4IDwga3lvdWRvdWlkb1wgOwor6LuN5qW96ZqKIDwgZ3VuZ2FrdXRhaVwgOwor5LiJ6YeN5ZSxIDwgc2FuanV1c2hvdVwgOwor5Y2X5Lqs6LGGIDwgbmFua2lubWFtZVwgOwor5puy6aas5birIDwga3lva3ViYXNoaVwgOwor5Ymv5Y+45LukIDwgZnVrdXNoaXJlaVwgOwor6Yym6a+JIDwgbmlzaGlraWdvaVwgOwor5pi85pel5LitIDwgaGlydWhpbmFrYVwgOwor5ZCI55CG5Li7576pIDwgZ291cmlzaHVnaVwgOwor5bi46K2Y5a62IDwgam91c2hpa2lrYVwgOwor5ruR6ISxIDwga2F0c3VkYXRzdVwgOwor5aSp5rSl5b6h5aeJIDwgYW1hdHN1bWlrb1wgOwor5aSp5omL5Y+k6IieIDwgdGVudGVrb21haVwgOwor6KiA6JGJ5bC7IDwga290b2JhamlyaVwgOwor6IK65rW45r2kIDwgaGFpc2hpbmp1blwgOwor5aSc5YWJ5pmC6KiIIDwgeWFrb3Vkb2tlaVwgOwor6ICV5L2c6ICFIDwga291c2FrdXNoYVwgOwor5ZCM5b+D5YaGIDwgZG91c2hpbicnZW5cIDsKK+iHtOatu+mHjyA8IGNoaXNoaXJ5b3VcIDsKK+W8geiovOirliA8IGJlbnNob3Vyb25cIDsKK+aWsOeZu+WgtCA8IHNoaW50b3Vqb3VcIDsKK+iHqui7oui7iuWxiyA8IGppdGVuc2hheWFcIDsKK+W8t+WKm+eyiSA8IGt5b3VyaWtpa29cIDsKK+S6iOWCmeWupCA8IHlvYmlzaGl0c3VcIDsKK+W6l+mgreagqiA8IHRlbnRvdWthYnVcIDsKK+eZuuWwhOiWrCA8IGhhc3NoYXlha3VcIDsKK+iHquWutueUqOi7iiA8IGppa2F5b3VzaGFcIDsKK+WNmOS9jeWItuW6piA8IHRhbicnaXNlaWRvXCA7CivljJbnsqfmsLQgPCBrZXNob3VtaXp1XCA7CivljYHpgLLms5UgPCBqaXNzaGluaG91XCA7CivmloflrZfmg4XloLEgPCBtb2ppam91aG91XCA7CivmlofnrYblrrYgPCBidW5waXRzdWthXCA7CivlvpPph4/nqI4gPCBqdXVyeW91emVpXCA7Civnk6blsYvmoLkgPCBrYXdhcmF5YW5lXCA7CivplqLkv4Loqr8gPCBrYW5rZWljaG91XCA7CivllK/lv4Poq5YgPCB5dWlzaGlucm9uXCA7CivlirHmjK/nrqEgPCByZWlzaGlua2FuXCA7Civlhajml6XnqbogPCB6ZW4nJ25pa2t1dVwgOwor5LqM5p6a6IWwIDwgbmltYWlnb3NoaVwgOwor5rWB5YiR5ZywIDwgcnl1dWtlaWNoaVwgOwor5rSq56mN5LiWIDwga291c2VraXNlaVwgOwor6ZyH54G95ZywIDwgc2hpbnNhaWNoaVwgOwor562G562SIDwgZnVkZWR6dXRzdVwgOwor6KaP5Yi26Kej6ZmkIDwga2lzZWlrYWlqb1wgOwor5o+P5Ye6IDwgYnlvdXNodXRzdVwgOwor55y86Luf6IaPIDwgZ2FuJyduYW5rb3VcIDsKK+awtOaZtuS9kyA8IHN1aXNob3V0YWlcIDsKK+eCuea7heWZqCA8IHRlbm1ldHN1a2lcIDsKK+WFhOW8n+WIhiA8IGt5b3VkYWlidW5cIDsKK+mHkemWgOapiyA8IGtpbm1vbmt5b3VcIDsKK+aZr+WLneWcsCA8IGtlaXNob3VjaGlcIDsKK+WGheaOpeWGhiA8IG5haXNldHN1ZW5cIDsKK+eUn+a0u+iLpiA8IHNlaWthdHN1a3VcIDsKK+adseeFp+WuriA8IHRvdXNob3VndXVcIDsKK+WPl+mbo+absiA8IGp1bmFua3lva3VcIDsKK+Wvvua1geWcjyA8IHRhaXJ5dXVrZW5cIDsKK+S4i+awtOW3peS6iyA8IGdlc3Vpa291amlcIDsKK+WNsemZuueJqSA8IGtpa2VuYnV0c3VcIDsKK+eglOS/rueUnyA8IGtlbnNodXVzZWlcIDsKK+i/keimquWpmiA8IGtpbnNoaW5rb25cIDsKK+S6pOiqreaWhyA8IGtvdWRva3VidW5cIDsKK+iEs+WNkuS4rSA8IG5vdXNvdGNodXVcIDsKK+eEvOatu+S9kyA8IHNob3VzaGl0YWlcIDsKK+S4gOelnuaVmSA8IGlzc2hpbmt5b3VcIDsKK+a0vuWHuuaJgCA8IGhhc2h1dHN1am9cIDsKK+aMr+WLleioiCA8IHNoaW5kb3VrZWlcIDsKK+WxiOaKmOiqniA8IGt1c3NldHN1Z29cIDsKK+absummrOWboyA8IGt5b2t1YmFkYW5cIDsKK+azqOWwhOa2siA8IGNodXVzaGFla2lcIDsKK+WQiOaEj+aDheatuyA8IGdvdWlqb3VzaGlcIDsKK+emj+emhOWvvyA8IGZ1a3Vyb2t1anVcIDsKK+e0meWQuembqiA8IGthbWlmdWJ1a2lcIDsKK+S7suS7i+iAhSA8IGNodXVrYWlzaGFcIDsKK+mbhumFjeS6uiA8IHNodXVoYWluaW5cIDsKK+WumuekjuW8jyA8IHRlaXNvc2hpa2lcIDsKK+ijgeWIpOmVtyA8IHNhaWJhbmNob3VcIDsKK+mbu+ipseWxgCA8IGRlbndha3lva3VcIDsKK+S/uOelv+exsyA8IGhvdXJva3VtYWlcIDsKK+iKseWQuembqiA8IGhhbmFmdWJ1a2lcIDsKK+Wcn+WjgSA8IHRzdWNoaWthYmVcIDsKK+WFteezp+exsyA8IGh5b3Vyb3VtYWlcIDsKK+inkue0sOW3pSA8IHRzdW5vemFpa3VcIDsKK+i8uOmAgeWKmyA8IHl1c291cnlva3VcIDsKK+ael+mHjuW6gSA8IHJpbicneWFjaG91XCA7CivmlK/phY3nmoQgPCBzaGloYWl0ZWtpXCA7CivlpKrpvJPmqYsgPCB0YWlrb2Jhc2hpXCA7CivnrpTlipvnsokgPCBoYWt1cmlraWtvXCA7CivnjYXlrZDpvLsgPCBzaGlzaGliYW5hXCA7CivpgKPpmorplbcgPCByZW50YWljaG91XCA7Civnq6/mnKvmqZ8gPCB0YW5tYXRzdWtpXCA7CivlkLnlpY/mpb0gPCBzdWlzb3VnYWt1XCA7CivnhrHlsITnl4UgPCBuZXNzaGFieW91XCA7Civmk4UgPCBob3NoaWltYW1hXCA7Civmraboo4XlubPlkowgPCBidXNvdWhlaXdhXCA7CivlvrPnlKjnk7YgPCB0b2t1eW91YmluXCA7CivmiYvntpogPCB0ZXRzdWR6dWtpXCA7CivlpKnmtKXnpZ4gPCBhbWF0c3VrYW1pXCA7CivpmY3msLTph48gPCBrb3VzdWlyeW91XCA7Civlh7rph5HogIUgPCBzaHVra2luc2hhXCA7CivlhbjlnovnmoQgPCB0ZW5rZWl0ZWtpXCA7CivonqLnn7MgPCBob3RhcnVpc2hpXCA7CivkuK3mnqLmgKcgPCBjaHV1c3V1c2VpXCA7Civov7flvanmnI0gPCBtZWlzYWlmdWt1XCA7CivkvY/lroXpm6MgPCBqdXV0YWt1bmFuXCA7Civku5jluK/kuovpoIUgPCBmdXRhaWppa291XCA7CivljJbnsqfmlpkgPCBrZXNob3VyeW91XCA7Civlv4PnkIblraYgPCBzaGlucmlnYWt1XCA7CivoirPlkI3pjLIgPCBob3VtZWlyb2t1XCA7Civli5XlipvngokgPCBkb3VyeW9rdXJvXCA7CivlsI/lhZDnl4UgPCBzaG91bmlieW91XCA7CivlsJHlubTlm6MgPCBzaG91bmVuZGFuXCA7CivlhajpnaLnmoQgPCB6ZW5tZW50ZWtpXCA7CivooYzmlrnkuI3mmI4gPCB5dWt1ZWZ1bWVpXCA7CivlsI/luILmsJEgPCBzaG91c2hpbWluXCA7CivonJzonIIgPCBtaXRzdWJhY2hpXCA7CivlpKnmsJfkuojloLEgPCB0ZW5raXlvaG91XCA7CivkuI3lubPkuI3muoAgPCBmdWhlaWZ1bWFuXCA7Civooqvkv53pmbrogIUgPCBoaWhva2Vuc2hhXCA7Civlia/mrKHnmoQgPCBmdWt1aml0ZWtpXCA7CivmpI7plpPmnb8gPCB0c3Vpa2FuYmFuXCA7CivopqrlrZDpm7voqbEgPCBveWFrb2RlbndhXCA7CivoqrLnqI7njocgPCBrYXplaXJpdHN1XCA7Civpg7XmlL/nnIEgPCB5dXVzZWlzaG91XCA7CivlpI/loLTmiYAgPCBuYXRzdWJhc2hvXCA7CivlpJrmg4XlpJrmgaggPCB0YWpvdXRha29uXCA7CivnrrHmn7MgPCBoYWtveWFuYWdpXCA7CivntYzllrbnoLTntrsgPCBrZWllaWhhdGFuXCA7CivljprljJbnsqcgPCBhdHN1Z2VzaG91XCA7Civos5vliqnkvJrlk6EgPCBzYW5qb2thaWluXCA7CivkuozkurrntYQgPCBmdXRhcmlndW1pXCA7Civoh7Tlkb3lgrcgPCBjaGltZWlzaG91XCA7CivnrrHmnpUgPCBoYWtvbWFrdXJhXCA7Civlia/pg73lv4MgPCBmdWt1dG9zaGluXCA7CivnsbPkv7UgPCBrb21lZGF3YXJhXCA7CivnmbrmoYjogIUgPCBoYXRzdWFuc2hhXCA7CivlvLflipvniq8gPCBnb3VyaWtpaGFuXCA7CivkuIvpg6jmp4vpgKAgPCBrYWJ1a291em91XCA7CivmtJfmv6/ku6MgPCBzZW50YWt1ZGFpXCA7CivpgYrms7PooZMgPCB5dXVlaWp1dHN1XCA7Civmr47lnJ/mm5zml6UgPCBtYWlkb3lvdWJpXCA7Civoo73pmbbmpa0gPCBzZWl0b3VneW91XCA7CivnkIPluqfmqJkgPCBreXV1emFoeW91XCA7CivmsojkuIHoirEgPCBjaGluY2hvdWdlXCA7CivonILonJwgPCBoYWNoaW1pdHN1XCA7Civkuojnrpfmjqrnva4gPCB5b3NhbnNvY2hpXCA7CivokaHokITniZkgPCBwb3J1dG9nYXJ1XCA7CivkuI3nqY/liIblrZAgPCBmdW9uYnVuc2hpXCA7CivmlZnkvJrloIIgPCBreW91a2FpZG91XCA7CivmlK/lupfplbcgPCBzaGl0ZW5jaG91XCA7CivllpzmgJLlk4Dmpb0gPCBraWRvYWlyYWt1XCA7CivlvqHlubTnjokgPCBvdG9zaGlkYW1hXCA7Civopb/mtIvokbEgPCBzZWl5b3VuZWdpXCA7Civnk5zlrp/poZQgPCB1cml6YW5lZ2FvXCA7CivnnJ/nqbrluK8gPCBzaGlua3V1dGFpXCA7Civnq7nnrZIgPCB0YWtlZHp1dHN1XCA7Civov73pgIHmpJwgPCB0c3Vpc291a2VuXCA7CivmnKrmsbrnm6MgPCBtaWtldHN1a2FuXCA7CivmvKLlkozovp7lhbggPCBrYW53YWppdGVuXCA7Civmma7pgJrmoKogPCBmdXRzdXVrYWJ1XCA7Civlj4voqrzlm73lrrYgPCB5dXVnaWtva2thXCA7Civnm7jkupLkv53pmbogPCBzb3Vnb2hva2VuXCA7CivllYblupfkuLsgPCBzaG91dGVuc2h1XCA7CivmjqHnn7PloLQgPCBzYWlzZWtpam91XCA7CivniaLlkI3kuLsgPCByb3VuYW51c2hpXCA7CivntK/pgLLnqI4gPCBydWlzaGluemVpXCA7CivlpKfnq7bkuokgPCBkYWlreW91c291XCA7Civmo67mnpfms5UgPCBzaGlucmluaG91XCA7CivlkIzpg7fkurogPCBkb3VreW91amluXCA7CivmtL7lh7rlqaYgPCBoYXNodXRzdWZ1XCA7CivkuovlpKfkuLvnvqkgPCBqaWRhaXNodWdpXCA7CivlhoXlm73lgrUgPCBuYWlrb2t1c2FpXCA7CivkupTovKrkvJrorbAgPCBnb3JpbmthaWdpXCA7CivmlK/luqbph5EgPCBzaGl0YWt1a2luXCA7Civnq6/nq68gPCBoYXNoaWJhc2hpXCA7Civlho3mtbjnpLwgPCBzYWlzaGlucmVpXCA7Civlm73mnInlnLAgPCBrb2t1eXV1Y2hpXCA7CivopqrlsZXmm7ggPCBzaGludGVuc2hvXCA7Civoqp7lvaLlpInljJYgPCBnb2tlaWhlbmthXCA7Civlu4nmgaXlv4MgPCByZW5jaGlzaGluXCA7Civnmobml6Lpo58gPCBrYWlraXNob2t1XCA7CivpnZ7miKbpl5jlk6EgPCBoaXNlbnRvdWluXCA7Civou6LlsYXlhYggPCB0ZW5reW9zYWtpXCA7CivpgKPntaHpp4UgPCByZW5yYWt1ZWtpXCA7Civpm7voqbHlj6MgPCBkZW53YWd1Y2hpXCA7CivnhKHlv7XnhKHmg7MgPCBtdW5lbm11c291XCA7Civnsr7li6Tos54gPCBzZWlraW5zaG91XCA7CivlgaXlv5jnl4cgPCBrZW5ib3VzaG91XCA7CivonbbnlaogPCBjaG91dHN1Z2FpXCA7CivmvJTnrpfmiYvpoIYgPCBlbnphbnRlanVuXCA7CivmlZnkvJrlj7IgPCBreW91a2Fpc2hpXCA7CivlsJHlubTkvJogPCBzaG91bmVua2FpXCA7CivotIvmiYvntJkgPCBuaXNldGVnYW1pXCA7Civlh7rlvoHou40gPCBzaHVzc2VpZ3VuXCA7Civmrabmlq3kuLvnvqkgPCBidWRhbnNodWdpXCA7CivoqIjnlLvogIUgPCBrZWlrYWt1c2hhXCA7CivmlaPmlofnmoQgPCBzYW5idW50ZWtpXCA7CivkuJboqbHkurrplpMgPCBzZXdhbmluZ2VuXCA7Civlub7kvZXlubPlnYcgPCBraWthaGVpa2luXCA7Civmi6DmiYAgPCB5b3JpZG9rb3JvXCA7Civkurrlt6XpmY3pm6ggPCBqaW5rb3Vrb3V1XCA7Civpu5LpvKAgPCBrdXJvbmV6dW1pXCA7Civlj4vlpb3nmoQgPCB5dXVrb3V0ZWtpXCA7Civoh6rllY/oh6rnrZQgPCBqaW1vbmppdG91XCA7Civlj6zllprnirYgPCBzaG91a2Fuam91XCA7Civoqo3oqLzogIUgPCBuaW5zaG91c2hhXCA7CivlubTnlKPpoY0gPCBuZW5zYW5nYWt1XCA7Civmj5vnrpfooaggPCBrYW56YW5oeW91XCA7CivmspbnuITnnIwgPCBva2luYXdha2VuXCA7CivmlZHkuJbou40gPCBreXV1c2VpZ3VuXCA7CivmuoDotrPmhJ8gPCBtYW56b2t1a2FuXCA7CivlpYnlhazlhYggPCBob3Vrb3VzYWtpXCA7Civpm7vloLHmlpkgPCBkZW5wb3VyeW91XCA7CivojZLkuovluKsgPCBhcmFnb3Rvc2hpXCA7CivmoYPmupDpg7cgPCB0b3VnZW5reW91XCA7Civok67mnIjlsLwgPCByZW5nZXRzdW5pXCA7CivnmofntIDlubTluqYgPCBrb3VraW5lbmRvXCA7Civnvr3mlpHomoogPCBoYW1hZGFyYWthXCA7CivmnLTlv7Xku4EgPCBib2t1bmVuamluXCA7CivlrZDlrq7nmYwgPCBzaGlreXV1Z2FuXCA7Civooajlj6MgPCBvbW90ZWd1Y2hpXCA7Civno4HlipvoqIggPCBqaXJ5b2t1a2VpXCA7CivmoLnnspLoj4wgPCBrb25yeXV1a2luXCA7CivnuKbml4vnm6QgPCB0YXRlc2VuYmFuXCA7CivluILlvbnmiYAgPCBzaGl5YWt1c2hvXCA7CivmpJzmtYHoqIggPCBrZW5yeXV1a2VpXCA7CivljbPlo7LkvJogPCBzb2t1YmFpa2FpXCA7Civlu7bkurrlk6EgPCBub2JlamluJydpblwgOwor5Y+j6IWU5aSW56eRIDwga291a291Z2VrYVwgOwor6Kq/5ZCI5YmkIDwgY2hvdWdvdXphaVwgOwor6KaB56K66KqNIDwgeW91a2FrdW5pblwgOwor5bi457eR5qi5IDwgam91cnlva3VqdVwgOwor56uI56WeIDwga2FtYWRvZ2FtaVwgOwor6YG455CD55y8IDwgc2Vua3l1dWdhblwgOwor55+z5ZCI5oimIDwgaXNoaWdhc3NlblwgOwor5bCB5bu655qEIDwgaG91a2VudGVraVwgOwor6aeQ5Zyo5omAIDwgY2h1dXphaXNob1wgOwor5LiW5biv5Li7IDwgc2V0YWludXNoaVwgOwor5bmz5bi45b+DIDwgaGVpam91c2hpblwgOwor6buS6a6qIDwga3Vyb21hZ3Vyb1wgOwor6ISz5oCn6bq755e6IDwgbm91c2VpbWFoaVwgOwor5LqU5Y2B6Z+z6aCGIDwgZ29qdXVvbmp1blwgOwor6LGG5Y+w6aKoIDwgbWFtZXRhaWZ1dVwgOwor5ryU566X57K+5bqmIDwgZW56YW5zZWlkb1wgOwor6Ymx5bGx5qWtIDwga291emFuZ3lvdVwgOwor5Y2B5a2X5p6254q2IDwganV1amlrYWpvdVwgOwor6KGo5Ye6IDwgaHlvdXNodXRzdVwgOwor5qeL5paH5pyoIDwga291YnVubW9rdVwgOwor5Y+C6KyA6ZW3IDwgc2FuYm91Y2hvdVwgOwor5LiN6ICB5LiN5q27IDwgZnVyb3VmdXNoaVwgOwor5LiW55WM5Li7576pIDwgc2VrYWlzaHVnaVwgOwor5YaZ55yf6aSoIDwgc2hhc2hpbmthblwgOwor5oim5pmC6ImyIDwgc2VuamlzaG9rdVwgOwor6J666Yi/57Sw5belIDwgcmFkZW56YWlrdVwgOwor6KiY6LyJ5LqL6aCFIDwga2lzYWlqaWtvdVwgOwor5L2P5a6F6KGXIDwganV1dGFrdWdhaVwgOwor6aCT54+N5ryiIDwgdG9uY2hpbmthblwgOwor5byx6YW45oCnIDwgamFrdXNhbnNlaVwgOwor5Lit5LuV5YiHIDwgbmFrYWppa2lyaVwgOwor54Kt57Sg57mK57atIDwgdGFuc29zZW4nJ2lcIDsKK+WUkOihoyA8IGthcmFrb3JvbW9cIDsKK+WIneiInuWPsCA8IGhhdHN1YnV0YWlcIDsKK+WGmeecn+mhlCA8IHNoYXNoaW5nYW9cIDsKK+eEoee3mumbu+ipsSA8IG11c2VuZGVud2FcIDsKK+WNl+S6rOeOiSA8IG5hbmtpbmRhbWFcIDsKK+iIueexjea4ryA8IHNlbnNla2lrb3VcIDsKK+eHkOeBsOefsyA8IHJpbmthaXNla2lcIDsKK+S4gOW5tOmWkyA8IGljaGluZW5rYW5cIDsKK+mdnuaOpeinpiA8IGhpc2Vzc2hva3VcIDsKK+aMgee2mueahCA8IGppem9rdXRla2lcIDsKK+a4qeaDheS4u+e+qSA8IG9uam91c2h1Z2lcIDsKK+WWtualreS4rSA8IGVpZ3lvdWNodXVcIDsKK+i2hemBjumhjSA8IGNob3VrYWdha3VcIDsKK+mgkOiyuOeOhyA8IHlvdGFpcml0c3VcIDsKK+S7o+eUqOiCiSA8IGRhaXlvdW5pa3VcIDsKK+WAi+S6uue1jOWWtiA8IGtvamlua2VpZWlcIDsKK+aZguezu+WIlyA8IGppa2VpcmV0c3VcIDsKK+ethuaXgSA8IGZ1ZGV6dWt1cmlcIDsKK+WllOaUvuS4jee+iCA8IGhvbnBvdWZ1a2lcIDsKK+WtkOS+m+acjSA8IGtvZG9tb2Z1a3VcIDsKK+itpuimluW6gSA8IGtlaXNoaWNob3VcIDsKK+WFjeeWq+aApyA8IG1lbicnZWtpc2VpXCA7Civns7vntbHnmoQgPCBrZWl0b3V0ZWtpXCA7Civou43nlKjph5EgPCBndW4nJ3lvdWtpblwgOwor6I2S5LuV5LqLIDwgYXJhc2hpZ290b1wgOwor55m75bGx5a6iIDwgdG96YW5reWFrdVwgOwor5L2O6LOD6YeRIDwgdGVpY2hpbmdpblwgOwor5L615a6z6ICFIDwgc2hpbmdhaXNoYVwgOwor5aOy5LiK56WoIDwgdXJpYWdlcHlvdVwgOwor6YmE5Zmo5pmC5LujIDwgdGVra2lqaWRhaVwgOwor5pS+6YCB5YqHIDwgaG91c291Z2VraVwgOwor5pel56iL6KGoIDwgbml0dGVpaHlvdVwgOwor5Ymv6JGs5ZOBIDwgZnVrdXNvdWhpblwgOwor6b2j6JC9IDwga29tYW90b3NoaVwgOwor5oy/5YWl5paHIDwgc291bnl1dWJ1blwgOwor5Yid5a2m6ICFIDwgc2hvZ2FrdXNoYVwgOwor5pWZ57+S5omAIDwga3lvdXNodXVqb1wgOwor5YWl5aC06ZaAIDwgbnl1dWpvdW1vblwgOwor5a6Y5bqB6KGXIDwga2FuY2hvdWdhaVwgOwor54mp5L6h6aiw6LK0IDwgYnVra2F0b3VraVwgOwor6KaP5YmH55qEIDwga2lzb2t1dGVraVwgOwor5bCP5YaK5a2QIDwgc2hvdXNhc3NoaVwgOwor6Ly75bCE57eaIDwgZnVrdXNoYXNlblwgOwor5YCpIDwgdHN1cmF0c3VyYVwgOwor5Y2B6YCy5Yi2IDwgamlzc2hpbnNlaVwgOwor6KSH6KO95ZOBIDwgZnVrdXNlaWhpblwgOwor5qOu5p6X5bivIDwgc2hpbnJpbnRhaVwgOwor57WQ5pm257O7IDwga2Vzc2hvdWtlaVwgOwor54Sh56ep5bqPIDwgbXVjaGl0c3Vqb1wgOwor5pel5pys6Iie6LiKIDwgbmlob25idXlvdVwgOwor6IG+5ZSW5a2m5qChIDwgcm91YWdha2tvdVwgOwor6Yyo57axIDwgaWthcmlkenVuYVwgOwor5Li76Kaz55qEIDwgc2h1a2FudGVraVwgOwor56C05aOK5YqbIDwgaGFrYWlyeW9rdVwgOwor5LiJ5q+b5L2cIDwgc2FubW91c2FrdVwgOwor5qGn55qu6JG6IDwgaGl3YWRhYnVraVwgOwor5Yqb57mU5qmfIDwgcmlraXNob2traVwgOwor5YWt6Z2i5L2TIDwgcm9rdW1lbnRhaVwgOwor54++5Luj6Iux6KqeIDwgZ2VuZGFpZWlnb1wgOwor55m95Lq656iuIDwgaGFrdWppbnNodVwgOwor5rGO56We6KuWIDwgaGFuc2hpbnJvblwgOwor5Luu5a6a5qy+IDwga2FyaXRlaWthblwgOwor57SN56iO6aGNIDwgbm91emVpZ2FrdVwgOwor6Ku45aSW5Zu9IDwgc2hvZ2Fpa29rdVwgOwor5aSW5o6l5YaGIDwgZ2Fpc2V0c3VlblwgOwor5Y2B5LqM5L2/5b6SIDwganV1bmlzaGl0b1wgOwor6KO957SZ5qWtIDwgc2Vpc2hpZ3lvdVwgOwor6Ymb55u057eaIDwgZW5jaG9rdXNlblwgOwor5b+D6Zu76KiIIDwgc2hpbmRlbmtlaVwgOwor56aP5Yip6KGoIDwgZnVrdXJpaHlvdVwgOwor562S5b2iIDwgdHN1dHN1Z2F0YVwgOwor5b6u55Sf54mpIDwgYmlzZWlidXRzdVwgOwor5a6d55+z5bqXIDwgaG91c2VraXRlblwgOwor5Ym15qWt6ICFIDwgc291Z3lvdXNoYVwgOwor5pel5pys5bqt5ZySIDwgbmlob250ZWllblwgOwor6Z2p6KO95ZOBIDwga2F3YXNlaWhpblwgOwor5bmz5bm05L2cIDwgaGVpbmVuc2FrdVwgOwor5rex57eRIDwgZnVrYW1pZG9yaVwgOwor6YG65Lyd5pqX5Y+3IDwgaWRlbicnYW5nb3VcIDsKK+eMv+iKneWxhSA8IHNhcnVzaGliYWlcIDsKK+WgtOWkluagqiA8IGpvdWdhaWthYnVcIDsKK+m8u+iWrCA8IGhhbmFndXN1cmlcIDsKK+W8geiovOazlSA8IGJlbnNob3Vob3VcIDsKK+WNlOWumuabuCA8IGt5b3V0ZWlzaG9cIDsKK+i7jeS6i+i8uOmAgSA8IGd1bmppeXVzb3VcIDsKK+S6lOaXrOevgCA8IGdvanVuc2V0c3VcIDsKK+S8tOaAp+mBuuS8nSA8IGhhbnNlaWlkZW5cIDsKK+aJgOafhCA8IHRva29yb2dhcmFcIDsKK+WIneS7u+e1piA8IHNob25pbmt5dXVcIDsKK+mZuOabueetiSA8IHJpa3Vzb3V0b3VcIDsKK+e1jOWWtuWPguWKoCA8IGtlaWVpc2Fua2FcIDsKK+WlveaIkOe4viA8IGtvdXNlaXNla2lcIDsKK+mAmuacieaApyA8IHRzdXV5dXVzZWlcIDsKK+iBtOWwjueKrCA8IGNob3Vkb3VrZW5cIDsKK+S6iOWCmemBuOaMmSA8IHlvYmlzZW5reW9cIDsKK+W+oemrmOellumgreW3viA8IG9rb3NvenVraW5cIDsKK+S6iOWCmeiJpumaiiA8IHlvYmlrYW50YWlcIDsKK+ejgeWKm+e3miA8IGppcnlva3VzZW5cIDsKK+mbouWpmueOhyA8IHJpa29ucml0c3VcIDsKK+ehnemFuOWhqSA8IHNob3VzYW4nJ2VuXCA7CivkuojlgpnpgbjmiYsgPCB5b2Jpc2Vuc2h1XCA7Civlho3norroqo0gPCBzYWlrYWt1bmluXCA7CivnmbrmoYjmqKkgPCBoYXRzdWFua2VuXCA7Civpharoo73lk4EgPCByYWt1c2VpaGluXCA7CivlnJ/mgKfpqqggPCBkb3Nob3Vib25lXCA7Civpgb/lporolqwgPCBoaW5pbicneWFrdVwgOwor5LiN5YC25oi05aSpIDwgZnVndXRhaXRlblwgOwor5oyB5Li7IDwgbW9jaGludXNoaVwgOwor55m655Sf5a2mIDwgaGFzc2VpZ2FrdVwgOwor5Lq656iu55qEIDwgamluc2h1dGVraVwgOwor56OB55+z55ukIDwgamlzaGFrdWJhblwgOwor5aSn6JS157WMIDwgZGFpem91a3lvdVwgOwor5rKz5Y6f6ba4IDwga2F3YXJhaGl3YVwgOwor5ouZ5YqjIDwgc2V0c3VyZXRzdVwgOwor55WZ572u5aC0IDwgcnl1dWNoaWpvdVwgOwor6YCa6aKo5a2UIDwgdHN1dWZ1dWtvdVwgOwor6KaB5rGC6ICFIDwgeW91a3l1dXNoYVwgOwor55+l5oG16KKLIDwgY2hpZWJ1a3Vyb1wgOwor57SZ6YmE56CyIDwga2FtaWRlcHBvdVwgOwor5Yid6aOb6KGMIDwgaGF0c3VoaWtvdVwgOwor55m75bGx5Y+jIDwgdG96YW5ndWNoaVwgOwor6LKv5rC06YePIDwgY2hvc3VpcnlvdVwgOwor56S+5Lya6Y2LIDwgc2hha2FpbmFiZVwgOwor5bmz5ZKM6YOo6ZqKIDwgaGVpd2FidXRhaVwgOwor5q6K5Yuy6LOeIDwgc2h1a3Vuc2hvdVwgOwor6YGL5YuV6Z20IDwgdW5kb3VndXRzdVwgOwor5Lqk6Zqb5Zu9IDwga291c2Fpa29rdVwgOwor5YWr5paH5a2XIDwgaGFjaGltb25qaVwgOwor6KOB5Yik5rKZ5rGwIDwgc2FpYmFuemF0YVwgOwor6ZaL55m66YOoIDwga2FpaGF0c3VidVwgOwor6Kq/5Y2w5Zu9IDwgY2hvdWlua29rdVwgOwor55u457aa56iOIDwgc291em9rdXplaVwgOwor6J2L5Lq65b2iIDwgcm91bmluZ3lvdVwgOwor5Lq65ZCN6YyyIDwgamlubWVpcm9rdVwgOwor5Za25Yip5rOV5Lq6IDwgZWlyaWhvdWppblwgOwor6JC956ys55SfIDwgcmFrdWRhaXNlaVwgOwor5Yed54Gw5bKpIDwgZ3lvdWthaWdhblwgOwor5Yip5LuY5YK1IDwgcml0c3VraXNhaVwgOwor6K2w5Lya5pS/5rK7IDwgZ2lrYWlzZWlqaVwgOwor6Zuo5aSp6aCG5bu2IDwgdXRlbmp1bicnZW5cIDsKK+S9k+iFlOWjgSA8IHRhaWtvdWhla2lcIDsKK+aMh+aOjOe0iyA8IHNoaXNob3Vtb25cIDsKK+S7mOW4r+iyu+eUqCA8IGZ1dGFpaGl5b3VcIDsKK+Wlh+i3oeeahCA8IGtpc2VraXRla2lcIDsKK+S7o+itsOWToeWboyA8IGRhaWdpaW5kYW5cIDsKK+ibi+eZvea6kCA8IHRhbnBha3VnZW5cIDsKK+aWreacq+mtlCA8IGRhbm1hdHN1bWFcIDsKK+ips+S8neekviA8IHNob3VkZW5zaGFcIDsKK+iRrOWEgOW8jyA8IHNvdWdpc2hpa2lcIDsKK+aQjeWus+mhjSA8IHNvbmdhaWdha3VcIDsKK+mJhOmLvOalrSA8IHRla2tvdWd5b3VcIDsKK+aal+e0q+iJsiA8IGFuc2hpc2hva3VcIDsKK+WFiOS7u+mghiA8IHNlbicnbmluanVuXCA7Civlpb3miKbnmoQgPCBrb3VzZW50ZWtpXCA7CivpmLLplbflrpggPCBib3VjaG91a2FuXCA7CivmsLTlnKfoqIggPCBzdWlhdHN1a2VpXCA7CivlpJblm73li6IgPCBnYWlrb2t1emVpXCA7Civpn5Plm73kurogPCBrYW5rb2t1amluXCA7CivmlaLpl5jos54gPCBrYW50b3VzaG91XCA7CivmtYHos6ogPCByeXV1c2hpY2hpXCA7CivmqZ/lhoXpo58gPCBraW5haXNob2t1XCA7Civoo4/nlarntYQgPCB1cmFiYW5ndW1pXCA7Civlm73pmLLoq5YgPCBrb2t1Ym91cm9uXCA7Civkuozph43oqrLnqI4gPCBuaWp1dWthemVpXCA7CivmibbppIrmjqfpmaQgPCBmdXlvdWtvdWpvXCA7Civlm73pmpvnt5ogPCBrb2t1c2Fpc2VuXCA7CivooZvmmJ/pg73luIIgPCBlaXNlaXRvc2hpXCA7Civpm7vmsJflm57ot68gPCBkZW5raWthaXJvXCA7Civosrjph5HluqsgPCBrYXNoaWtpbmtvXCA7CivpgJ/oqJjooZMgPCBzb2traWp1dHN1XCA7Civlm73oqIDokYkgPCBrdW5pa290b2JhXCA7Civmir3lh7ogPCBjaHV1c2h1dHN1XCA7CivljJDooYznlrkgPCBmdWtrb3VzaGluXCA7CivnlLrlt6XloLQgPCBtYWNoaWtvdWJhXCA7CivlnLDkuIvkuozpmo4gPCBjaGlrYW5pa2FpXCA7Civoh7PmgKXkvr8gPCBzaGlreXV1YmluXCA7Civlrp3lhqDnq6AgPCBob3VrYW5zaG91XCA7Civoi6Xml6bpgqMgPCB3YWthZGFuJyduYVwgOwor5oyR5oim6ICFIDwgY2hvdXNlbnNoYVwgOwor6YmE6Ymx55+zIDwgdGVra291c2VraVwgOwor5qiq6ZqU6IacIDwgb3VrYWt1bWFrdVwgOwor6aCQ6YeR5Y+j5bqnIDwgeW9raW5rb3V6YVwgOwor5ZCM5qWt6ICFIDwgZG91Z3lvdXNoYVwgOwor5rS755So6KqeIDwga2F0c3V5b3Vnb1wgOwor5rex5ZG85ZC4IDwgc2hpbmtva3l1dVwgOwor5LiJ55Wq6baPIDwgc2FuYmFuZG9yaVwgOwor5Yik5Lu75a6YIDwgaGFuJyduaW5rYW5cIDsKK+WkluWbveWCtSA8IGdhaWtva3VzYWlcIDsKK+mAo+e1oeiIuSA8IHJlbnJha3VzZW5cIDsKK+iQveesrOeCuSA8IHJha3VkYWl0ZW5cIDsKK+mAsuihjOebuCA8IHNoaW5rb3Vzb3VcIDsKK+iJsuaBi+aymeaxsCA8IGlyb2tvaXphdGFcIDsKK+axuuWumueahCA8IGtldHRlaXRla2lcIDsKK+iCieaWmeeQhiA8IG5pa3VyeW91cmlcIDsKK+aWh+azleeahCA8IGJ1bnBvdXRla2lcIDsKK+WbveaWh+azlSA8IGtva3VidW5wb3VcIDsKK+i2heW8qee0miA8IGNob3Vkb2t5dXVcIDsKK+Wkp+iUteecgSA8IG9va3VyYXNob3VcIDsKK+aEn+aDheeahCA8IGthbmpvdXRla2lcIDsKK+S5l+WQiOiIuSA8IG5vcmlhaWJ1bmVcIDsKK+W+s+eUqOWTgSA8IHRva3V5b3VoaW5cIDsKK+eHg+aWmeajkiA8IG5lbnJ5b3Vib3VcIDsKK+S6jOaXpemFlCA8IGZ1dHN1a2F5b2lcIDsKK+elnue1jOezuyA8IHNoaW5rZWlrZWlcIDsKK+S7ruitsOmVtyA8IGthcmlnaWNob3VcIDsKK+iyqOW5o+S+oeWApCA8IGthaGVpa2FjaGlcIDsKK+eLrOaWreirliA8IGRva3VkYW5yb25cIDsKK+WkluWbveS6uiA8IGdhaWtva3VqaW5cIDsKK+ePjeeznua8oiA8IGNoaW5wdW5rYW5cIDsKK+aMr+WLleadvyA8IHNoaW5kb3ViYW5cIDsKK+aui+WLmeaVtOeQhiA8IHphbm11c2VpcmlcIDsKK+S4u+aVmeWGoCA8IHNodWt5b3VrYW5cIDsKK+ato+aVmeW4qyA8IHNlaWt5b3VzaGlcIDsKK+e0sOiPjOWtpiA8IHNhaWtpbmdha3VcIDsKK+icnOaciCA8IG1pdHN1Z2V0c3VcIDsKK+iAleS9nOWcsCA8IGtvdXNha3VjaGlcIDsKK+aUuemAsuWFmiA8IGthaXNoaW50b3VcIDsKK+S4ieWIhuaQlyA8IHNhbmJ1dHN1a2lcIDsKK+S8kemWkeWcsCA8IGt5dXVrYW5jaGlcIDsKK+i7jeeUqOiJpiA8IGd1bicneW91a2FuXCA7CivmlrDogZ7ntJkgPCBzaGluYnVuc2hpXCA7CivovLvlsITngrkgPCBmdWt1c2hhdGVuXCA7Civlhazllrbkv53pmbogPCBrb3VlaWhva2VuXCA7CivkuJbkv5fnmoQgPCBzZXpva3V0ZWtpXCA7Civph43lnKfmhJ8gPCBqdXVhdHN1a2FuXCA7CivosYbpiYTnoLIgPCBtYW1lZGVwcG91XCA7CivlhKrnp4Dlk4EgPCB5dXVzaHV1aGluXCA7CivnqbrmtpkgPCBzb3JhbmFtaWRhXCA7Civph5Hono3nlYwgPCBraW4nJ3l1dWthaVwgOwor5YKN6IG05Yi4IDwgYm91Y2hvdWtlblwgOwor6LKv6YeR566xIDwgY2hva2luYmFrb1wgOwor5Zu95aKD57eaIDwga29ra3lvdXNlblwgOwor6K2y5rih5ouF5L+dIDwgam91dG90YW5wb1wgOwor6JqV57O45qWtIDwgc2Fuc2hpZ3lvdVwgOwor5LiA5bm06I2JIDwgaWNoaW5lbnNvdVwgOwor6auY5a+G5bqmIDwga291bWl0c3Vkb1wgOwor5YWN55ar5L2TIDwgbWVuJydla2l0YWlcIDsKK+ejgeawl+W1kCA8IGppa2lhcmFzaGlcIDsKK+aMr+WLleaVsCA8IHNoaW5kb3VzdXVcIDsKK+Wkp+ekvOacjSA8IHRhaXJlaWZ1a3VcIDsKK+aUueiJr+eoriA8IGthaXJ5b3VzaHVcIDsKK+WMl+WbveS6uiA8IGhva2tva3VqaW5cIDsKK+eJouW9ueS6uiA8IHJvdXlha3VuaW5cIDsKK+a4i+a4iyA8IHNoaWJ1c2hpYnVcIDsKK+WGheelneiogCA8IG5haXNodXVnZW5cIDsKK+S4gOWutuWbo+askiA8IGlra2FkYW5yYW5cIDsKK+S7o+itsOWToeS8miA8IGRhaWdpaW5rYWlcIDsKK+WNiui6q+WDjyA8IGhhbnNoaW56b3VcIDsKK+Wkp+m7kuWkqSA8IGRhaWtva3V0ZW5cIDsKK+emj+iiiyA8IGZ1a3VidWt1cm9cIDsKK+ijnOato+S6iOeulyA8IGhvc2VpeW9zYW5cIDsKK+S4jeWIhuWJsiA8IGZ1YnVua2F0c3VcIDsKK+ilv+WMl+ilvyA8IHNlaWhva3VzZWlcIDsKK+mBjuWJsOmYsuihmyA8IGtham91Ym91ZWlcIDsKK+etkuWFiCA8IHRzdXRzdXNha2lcIDsKK+ethuWKmyA8IGhpdHN1cnlva3VcIDsKK+aAkumrquWkqSA8IGRvaGF0c3V0ZW5cIDsKK+aIkeW/gyA8IHdhZ2Frb2tvcm9cIDsKK+S6iOWCmeW6p+W4rSA8IHlvYml6YXNla2lcIDsKK+WPjemdqeWRvSA8IGhhbmtha3VtZWlcIDsKK+ihm+eUn+Wfuua6liA8IGVpc2Vpa2lqdW5cIDsKK+aWsOiBnuekviA8IHNoaW5idW5zaGFcIDsKK+S4gOapn+i7uCA8IGljaGlraWppa3VcIDsKK+S/neitt+Wbo+S9kyA8IGhvZ29kYW50YWlcIDsKK+mbhumtmueBryA8IHNodXVneW90b3VcIDsKK+mbquimi+mFkiA8IHl1a2ltaXpha2VcIDsKK+WEgOijhemmrOi7iiA8IGdpc291YmFzaGFcIDsKK+WdiuS4u+mgrSA8IGJvdXp1YXRhbWFcIDsKK+WFiOmok+eahCA8IHNlbmtlbnRla2lcIDsKK+mXh+e1puS4jiA8IHlhbWlreXV1eW9cIDsKK+aZguS6i+WVj+mhjCA8IGppamltb25kYWlcIDsKK+WCjeiBtOS6uiA8IGJvdWNob3VuaW5cIDsKK+S6i+Wun+S4iiA8IGppaml0c3Vqb3VcIDsKK+e+qeS+oOW/gyA8IGdpa3lvdXNoaW5cIDsKK+eUqOawtOWggCA8IHlvdXN1aWJvcmlcIDsKK+m7kuiLuiA8IGt1cm9pY2hpZ29cIDsKK+S7ruaZruiriyA8IGthcmlidXNoaW5cIDsKK+WNoOmgmOWcsCA8IHNlbnJ5b3VjaGlcIDsKK+WvneijheWTgSA8IHNoaW5zb3VoaW5cIDsKK+eUuuWGheS8miA8IGNob3VuYWlrYWlcIDsKK+WQjOebn+WbvSA8IGRvdW1laWtva3VcIDsKK+eZuuiCsuacnyA8IGhhdHN1aWt1a2lcIDsKK+iqk+e0hOabuCA8IHNlaXlha3VzaG9cIDsKK+eZuuWxleS4rSA8IGhhdHRlbmNodXVcIDsKK+iMtueVqueahCA8IGNoYWJhbnRla2lcIDsKK+eJueeUo+WTgSA8IHRva3VzYW5oaW5cIDsKK+Wkq+WppuWWp+WYqSA8IGZ1dWZ1Z2Vua2FcIDsKK+ijveeyiealrSA8IHNlaWZ1bmd5b3VcIDsKK+a2iOWOu+azlSA8IHNob3VreW9ob3VcIDsKK+iCm+mWgOWtpiA8IGtvdW1vbmdha3VcIDsKK+enqeemhCA8IGNoaXRzdXJva3VcIDsKK+Wkp+WPuOaVmSA8IGRhaXNoaWt5b3VcIDsKK+WmhOaDs+eXhyA8IG1vdXNvdXNob3VcIDsKK+W+oeeUqOmBlCA8IGdveW91ZGF0c3VcIDsKK+WxleekuueJqSA8IHRlbmppYnV0c3VcIDsKK+iHquauuuiAhSA8IGppc2F0c3VzaGFcIDsKK+S9nOabsuWutiA8IHNha2t5b2t1a2FcIDsKK+WFrOaVmeS8miA8IGtvdWt5b3VrYWlcIDsKK+WPiOmaoyA8IG1hdGFkb25hcmlcIDsKK+ioiOeUu+aApyA8IGtlaWtha3VzZWlcIDsKK+WIh+i/q+aEnyA8IHNlcHBha3VrYW5cIDsKK+aeouWvhumZoiA8IHN1dW1pdHN1aW5cIDsKK+Wbm+WFreWIpCA8IHNoaXJva3ViYW5cIDsKK+i/veS9k+mokyA8IHRzdWl0YWlrZW5cIDsKK+WFpeWgtOiAhSA8IG55dXVqb3VzaGFcIDsKK+WNiueXheS6uiA8IGhhbmJ5b3VuaW5cIDsKK+mHkemLjyA8IGthbmFiYXNhbWlcIDsKK+aWreWbuuaKl+itsCA8IGRhbmtva291Z2lcIDsKK+aNnOe0oumaiiA8IHNvdXNha3V0YWlcIDsKK+WPi+WlveWbvSA8IHl1dWtvdWtva3VcIDsKK+auv+S4iuS6uiA8IHRlbmpvdWJpdG9cIDsKK+eEoeawtOeJqSA8IG11c3VpYnV0c3VcIDsKK+WBpeW6t+eahCA8IGtlbmtvdXRla2lcIDsKK+aWsOS9k+aTjSA8IHNoaW50YWlzb3VcIDsKK+aHkOaJiyA8IGZ1dG9rb3JvZGVcIDsKK+epuuS4ree3miA8IGt1dWNodXVzZW5cIDsKK+eUsOiIjumBkyA8IGluYWthbWljaGlcIDsKK+azouS5g+iKsSA8IG5hbWlub2hhbmFcIDsKK+WBtuWDj+aVmSA8IGd1dXpvdWt5b3VcIDsKK+elnuipseWtpiA8IHNoaW53YWdha3VcIDsKK+ebuOe2muaoqSA8IHNvdXpva3VrZW5cIDsKK+aAp+aVmeiCsiA8IHNlaWt5b3Vpa3VcIDsKK+WJjeWTqOe3miA8IHplbnNob3VzZW5cIDsKK+S6lOi8quiBlueBqyA8IGdvcmluc2Vpa2FcIDsKK+eLrOWlj+iAhSA8IGRva3Vzb3VzaGFcIDsKK+iHquWIhuWLneaJiyA8IGppYnVua2F0dGVcIDsKK+i1pOihgOeQgyA8IHNla2tla2t5dXVcIDsKK+WkqeWPsOWulyA8IHRlbmRhaXNodXVcIDsKK+i7jealveaJiyA8IGd1bmdha3VzaHVcIDsKK+i7jemcgOaZr+awlyA8IGd1bmp1a2Vpa2lcIDsKK+i7jeiJpuW3uyA8IGd1bmthbm1ha2lcIDsKK+m7kue3kSA8IGt1cm9taWRvcmlcIDsKK+aal+ikkOiJsiA8IGFua2Fzc2hva3VcIDsKK+mAhuS9nOeUqCA8IGd5YWt1c2F5b3VcIDsKK+aMkeaIpueKtiA8IGNob3VzZW5qb3VcIDsKK+aknOmHj+e3miA8IGtlbnJ5b3VzZW5cIDsKK+e2suadk+WtkCA8IGFtaWpha3VzaGlcIDsKK+WGjeazqOaWhyA8IHNhaWNodXVtb25cIDsKK+WGheWPjei2syA8IG5haWhhbnNva3VcIDsKK+W5tOWwkeiAhSA8IG5lbnNob3VzaGFcIDsKK+aWsOeUn+S7oyA8IHNoaW5zZWlkYWlcIDsKK+S/neeuoeeJqSA8IGhva2FuYnV0c3VcIDsKK+WfuuW6lemDqOmWgCA8IGtpdGVpYnVtb25cIDsKK+WEquWLneiAhSA8IHl1dXNob3VzaGFcIDsKK+aUueiJr+eCuSA8IGthaXJ5b3V0ZW5cIDsKK+S4uOWkquWwj+WxiyA8IG1hcnV0YWdveWFcIDsKK+aFhOeDiCA8IHJpdHN1cmV0c3VcIDsKK+e1puaOkuawtCA8IGt5dXVoYWlzdWlcIDsKK+WkqeecvOmPoSA8IHRlbmdhbmt5b3VcIDsKK+S4iemAo+WLnSA8IHNhbnJlbnNob3VcIDsKK+S4jeeZuuW8viA8IGZ1aGF0c3VkYW5cIDsKK+WNiuWumOeahCA8IGhhbmthbnRla2lcIDsKK+aMr+WLleWtkCA8IHNoaW5kb3VzaGlcIDsKK+mLuOatryA8IG5va29naXJpYmFcIDsKK+a0u+eZuuWMliA8IGthcHBhdHN1a2FcIDsKK+S6iOaDs+WIqeebiiA8IHlvc291cmlla2lcIDsKK+WPjumbhuWutiA8IHNodXVzaHV1a2FcIDsKK+mFuOWMlumJhCA8IHNhbmthdGV0c3VcIDsKK+aWsOS6uueOiyA8IHNoaW5qaW4nJ291XCA7Civlu7bml6XmlbAgPCBub2Jlbmlzc3V1XCA7CivlpYnnjK7poIwgPCBob3VrZW5zaG91XCA7CivosrjlupfoiJcgPCBrYXNoaXRlbnBvXCA7CivkupTpn7Ppn7Ppmo4gPCBnb29uJydvbmthaVwgOwor5LqM5Lq65YWxIDwgZnV0YXJpdG9tb1wgOwor5Y+O5paC5YmkIDwgc2h1dXJlbnphaVwgOwor5Zu96Zqb5rOVIDwga29rdXNhaWhvdVwgOwor6auY5a2m5bm0IDwga291Z2FrdW5lblwgOwor5qC454G95a6zIDwga2FrdXNhaWdhaVwgOwor5Ly96I2J5a2QIDwgdG9naXpvdXNoaVwgOwor54W95oOF55qEIDwgc2Vuam91dGVraVwgOwor6KqN6Ki85a6YIDwgbmluc2hvdWthblwgOwor6aSK6JqV5qWtIDwgeW91c2FuZ3lvdVwgOwor54Gr5bGx6ISIIDwga2F6YW5teWFrdVwgOwor6I+c56iu5q67IDwgbmF0YW5lZ2FyYVwgOwor6YG/5pqR5a6iIDwgaGlzaG9reWFrdVwgOwor54Gr5rCX5Y6z56aBIDwga2FraWdlbmtpblwgOwor5pu46KmV5qyEIDwgc2hvaHlvdXJhblwgOwor5YWl5aC056iOIDwgbnl1dWpvdXplaVwgOwor5rqM5YmMIDwgaGF0c3VyYXRzdVwgOwor6Kmm5L2c6LuKIDwgc2hpc2FrdXNoYVwgOwor542E5Lit6KiYIDwgZ29rdWNodXVraVwgOwor5Lmz5YWE5byfIDwgY2hpa3lvdWRhaVwgOwor5Y2B5a2X5p625YOPIDwganV1amlrYXpvdVwgOwor5LqM5LiD5pelIDwgZnV0YW5hbm9rYVwgOwor5q2j5pWZ5LyaIDwgc2Vpa3lvdWthaVwgOwor5YWI55Sf5pa5IDwgc2Vuc2VpZ2F0YVwgOwor6I2J6Zuy6ZuAIDwga3VzYWhpYmFyaVwgOwor5L6N5b6T6IG3IDwgamlqdXVzaG9rdVwgOwor5Yem55CG6YGO56iLIDwgc2hvcmlrYXRlaVwgOwor5Zyw5b2i5a2mIDwgY2hpa2VpZ2FrdVwgOwor5LiA5a6a5LiN5aSJIDwgaXR0ZWlmdWhlblwgOwor5pyI5LiL576O5Lq6IDwgZ2Vra2FiaWppblwgOwor5LiA55u057eaIDwgaXRjaG9rdXNlblwgOwor5aSp55y86YCaIDwgdGVuZ2FudHN1dVwgOwor5Luy6LK35Lq6IDwgbmFrYWdhaW5pblwgOwor6Jas55CG5a2mIDwgeWFrdXJpZ2FrdVwgOwor54Cs5oi45YaF5rW3IDwgc2V0b25haWthaVwgOwor6ICB5pS/5rK75a62IDwgcm91c2VpamlrYVwgOwor5Zu95paH5bCCIDwga29rdWJ1bnNlblwgOwor5LiA5bm055SfIDwgaWNoaW5lbnNlaVwgOwor5a6a5byP5YyWIDwgdGVpc2hpa2lrYVwgOwor5ZWG5qWt5YyWIDwgc2hvdWd5b3VrYVwgOwor5LiA6Lyq6LuKIDwgaWNoaXJpbnNoYVwgOwor5Yqf5Yip5Li7576pIDwga291cmlzaHVnaVwgOwor5ruy54Kt6Yu8IDwgc2hpbnRhbmtvdVwgOwor6LuN55So54qsIDwgZ3VuJyd5b3VrZW5cIDsKK+WFreinkuWggiA8IHJva2tha3Vkb3VcIDsKK+W6iuaaluaIvyA8IHl1a2FkYW5ib3VcIDsKK+ethuS4jeeyviA8IGZ1ZGVidXNob3VcIDsKK+a1t+eHlSA8IHVtaXRzdWJhbWVcIDsKK+WFrOiovOS6uiA8IGtvdXNob3VuaW5cIDsKK+imj+WItue3qeWSjCA8IGtpc2Vpa2Fud2FcIDsKK+eJp+iNieWcsCA8IGJva3Vzb3VjaGlcIDsKK+WxnuaAp+WApCA8IHpva3VzZWljaGlcIDsKK+ino+avkuiWrCA8IGdlZG9rdXlha3VcIDsKK+a6gOacn+aXpSA8IG1hbmtpaml0c3VcIDsKK+WQjeS9nOmBuCA8IG1laXNha3VzZW5cIDsKK+WmguaYr+aIkeiBniA8IG55b3plZ2Ftb25cIDsKK+aYjuayu+aZguS7oyA8IG1laWppamlkYWlcIDsKK+WVhueUqOaWhyA8IHNob3V5b3VidW5cIDsKK+WQjOWMluS9nOeUqCA8IGRvdWthc2F5b3VcIDsKK+WbveiqnuWtpiA8IGtva3Vnb2dha3VcIDsKK+WPr+WPiueahCA8IGtha3l1dXRla2lcIDsKK+WIpemAlOmgkOmHkSA8IGJldHRveW9raW5cIDsKK+mHkeiiiyA8IGthbmFidWt1cm9cIDsKK+WGmeecn+ePrSA8IHNoYXNoaW5oYW5cIDsKK+ayueiZqyA8IGFidXJhbXVzaGlcIDsKK+S4gOWFg+irliA8IGljaGlnZW5yb25cIDsKK+S4i+eoruagueaApyA8IGdlc3Vrb25qb3VcIDsKK+iqv+WJpOW4qyA8IGNob3V6YWlzaGlcIDsKK+WNmOS4ieW9oiA8IHRhbnNhbmdhdGFcIDsKK+eUsuWGkeW4qyA8IGthdGNodXVzaGlcIDsKK+WFiOS7u+iAhSA8IHNlbicnbmluc2hhXCA7Civmm7Lnt5rnvo4gPCBreW9rdXNlbmJpXCA7CivpioDni5AgPCBnaW5naXRzdW5lXCA7CivljZfpoqggPCBtaW5hbWlrYXplXCA7CivlhazntITmlbAgPCBrb3V5YWt1c3V1XCA7CivnhrHni4LogIUgPCBuZWtreW91c2hhXCA7CivmsLTntIvlraYgPCBzdWltb25nYWt1XCA7CivkurrnqK7lraYgPCBqaW5zaHVnYWt1XCA7Civmrovlv43mgKcgPCB6YW4nJ25pbnNlaVwgOwor5o+05Yqp5Lqk6ZqbIDwgZW5qb2tvdXNhaVwgOwor6JmQ5q66IDwgZ3lha3VzYXRzdVwgOwor55u46Zai55qEIDwgc291a2FudGVraVwgOwor5YaZ55yf54mIIDwgc2hhc2hpbmJhblwgOwor55Sf5oGv5ZywIDwgc2Vpc29rdWNoaVwgOwor5Zu95Lya6K2w5ZOhIDwga29ra2FpZ2lpblwgOwor5Zyf5Zyw5Yip55SoIDwgdG9jaGlyaXlvdVwgOwor55+l5oCn55qEIDwgY2hpc2VpdGVraVwgOwor5qCE5p6v55ub6KGwIDwgZWlrb3NlaXN1aVwgOwor5pyq55m66YGUIDwgbWloYXR0YXRzdVwgOwor6ZaL5bmV5oimIDwga2FpbWFrdXNlblwgOwor55u45LqS5L2c55SoIDwgc291Z29zYXlvdVwgOwor5rC06Y+hIDwgbWl6dWthZ2FtaVwgOwor6Iie5Y+w6KGj6KOFIDwgYnV0YWlpc2hvdVwgOwor5b6M6YWN5qCqIDwga291aGFpa2FidVwgOwor5YGc5rOK5ZywIDwgdGVpaGFrdWNoaVwgOwor57255oKj546HIDwgcmlrYW5yaXRzdVwgOwor6YCy6KGM5b2iIDwgc2hpbmtvdWtlaVwgOwor6YGT5b6z5LiKIDwgZG91dG9rdWpvdVwgOwor56S+5Lya55qEIDwgc2hha2FpdGVraVwgOwor6ZyH5rqQ5ZywIDwgc2hpbmdlbmNoaVwgOwor5pif6Zuy6KqsIDwgc2VpdW5zZXRzdVwgOwor5rKz5Y6f6ICFIDwga2F3YXJhbW9ub1wgOwor5rq65q276ICFIDwgZGVraXNoaXNoYVwgOwor5rW35ZWG5rOVIDwga2Fpc2hvdWhvdVwgOwor55CG6auq5bqXIDwgcmloYXRzdXRlblwgOwor6Z2p5ZG96LuNIDwga2FrdW1laWd1blwgOwor5rS754mpIDwga2F0c3VidXRzdVwgOwor5Y216YWSIDwgdGFtYWdvemFrZVwgOwor5ZCI6K2w5Yi25bqmIDwgZ291Z2lzZWlkb1wgOwor5pu46KqM5a2mIDwgc2hvc2hpZ2FrdVwgOwor5LqM6YW45YyW56Gr6buEIDwgbmlzYW5rYWlvdVwgOwor55CG6auq5birIDwgcmloYXRzdXNoaVwgOwor5LiW5L+X5b+DIDwgc2V6b2t1c2hpblwgOwor6YGp5Lu76ICFIDwgdGVraW5pbnNoYVwgOwor5aSJ5Zyn5omAIDwgaGVuJydhdHN1am9cIDsKK+a8ouawkeaXjyA8IGthbm1pbnpva3VcIDsKK+mBqeeUqOaApyA8IHRla2l5b3VzZWlcIDsKK+mDvemzpSA8IG1peWFrb2RvcmlcIDsKK+axuuijgiA8IGtldHN1cmV0c3VcIDsKK+iWrOeusSA8IGt1c3VyaWJha29cIDsKK+m6pueVkSA8IG11Z2liYXRha2VcIDsKK+mbjOmbhOeVsOagqiA8IHNoaXl1dWlzaHVcIDsKK+ebtOirh+WIpCA8IGppa2FkYW5wYW5cIDsKK+iDjOS/oeiAhSA8IGhhaXNoaW5zaGFcIDsKK+ethuiAleaWmSA8IGhpa2tvdXJ5b3VcIDsKK+S8neazleiCjCA8IGRlbmJvdWhhZGFcIDsKK+e5iuavm+iZqyA8IHNlbm1vdWNodXVcIDsKK+ertuWjsuS6uiA8IGt5b3ViYWluaW5cIDsKK+S9nOipnuiAhSA8IHNha3VzaGlzaGFcIDsKK+m7kua8hiA8IGtva3VzaGl0c3VcIDsKK+Wuieatu+ihkyA8IGFuc2hpanV0c3VcIDsKK+WWieS7jyA8IG5vZG9ib3Rva2VcIDsKK+WPjeWwhOiqpOW3riA8IGhhbnNoYWdvc2FcIDsKK+Whqee0oOmFuOWhqSA8IGVuc29zYW4nJ2VuXCA7CivmqZ/li5XlipsgPCBraWRvdXJ5b2t1XCA7Civntbblr77oqqTlt64gPCB6ZXR0YWlnb3NhXCA7CivmnIDntYLlm54gPCBzYWlzaHV1a2FpXCA7CivkuLvopoHlm70gPCBzaHV5b3Vrb2t1XCA7Civlj43pmb3lrZAgPCBoYW4nJ3lvdXNoaVwgOwor5YaF5ZCR55qEIDwgbmFpa291dGVraVwgOwor6Ziy5r2u5aCkIDwgYm91Y2hvdXRlaVwgOwor54mp5pCN5LqL5pWFIDwgYnVzc29uamlrb1wgOwor5ray5pm255ukIDwgZWtpc2hvdWJhblwgOwor56We57WM5oimIDwgc2hpbmtlaXNlblwgOwor6buE5YWr5LiIIDwga2loYWNoaWpvdVwgOwor6KGo5LqM6ZqOIDwgb21vdGVuaWthaVwgOwor6Kmm6aiT55qEIDwgc2hpa2VudGVraVwgOwor5bGg5q665aC0IDwgdG9zYXRzdWpvdVwgOwor5peF5pSv5bqmIDwgdGFiaWppdGFrdVwgOwor5YWo6YOo5L+d6Zm6IDwgemVuYnVob2tlblwgOwor6YeR6IG+IDwga2FuYXRzdW5ib1wgOwor5pu457Ch6ZuGIDwgc2hva2Fuc2h1dVwgOwor5Za25p6X5bGAIDwgZWlyaW5reW9rdVwgOwor54Sh6YeN5YqbIDwgbXVqdXVyeW9rdVwgOwor6YG65aSx6ICFIDwgaXNoaXRzdXNoYVwgOwor5oKq5ber5bGx5oivIDwgd2FydWZ1emFrZVwgOwor5pW05b2i5aSW56eRIDwgc2Vpa2VpZ2VrYVwgOwor55Sf5b6X5qipIDwgc2VpdG9rdWtlblwgOwor57Gz6aiS5YuVIDwga29tZXNvdWRvdVwgOwor5paw5L2T5Yi2IDwgc2hpbnRhaXNlaVwgOwor6KGA5riF5a2mIDwga2Vzc2VpZ2FrdVwgOwor6YOo6ZW36ZayIDwgYnVjaG91ZXRzdVwgOwor5aSc5oOz5puyIDwgeWFzb3VreW9rdVwgOwor5q2m5a625pS/5qipIDwgYnVrZXNlaWtlblwgOwor5qaC5b+155qEIDwgZ2FpbmVudGVraVwgOwor56m65Lit5qipIDwga3V1Y2h1dWtlblwgOwor5LqM6aCF5YiG5biDIDwgbmlrb3VidW5wdVwgOwor5ZGo6YGK5Yi4IDwgc2h1dXl1dWtlblwgOwor5Ym15L2c6ICFIDwgc291c2FrdXNoYVwgOwor5ZCr57OW6YePIDwgZ2FudG91cnlvdVwgOwor5YC557SE5a62IDwga2VuJyd5YWt1a2FcIDsKK+WHuuW8teaJgCA8IHNodXRjaG91am9cIDsKK+aYoOeUu+S8muekviA8IGVpZ2FnYWlzaGFcIDsKK+euoeeQhuiBtyA8IGthbnJpc2hva3VcIDsKK+mJhOegsueZvuWQiCA8IHRlcHBvdXl1cmlcIDsKK+aBkOaAlueXhyA8IGt5b3VmdXNob3VcIDsKK+aUv+eVpeWutiA8IHNlaXJ5YWt1a2FcIDsKK+WFrOihhue2siA8IGtvdXNodXVtb3VcIDsKK+WFpeWgtOaoqSA8IG55dXVqb3VrZW5cIDsKK+WQjeiqieS8muWToSA8IG1laXlva2FpaW5cIDsKK+edo+aIpumaiiA8IHRva3VzZW50YWlcIDsKK+WNg+e+vem2tCA8IHNlbmJhZHp1cnVcIDsKK+S9j+WuheWcsCA8IGp1dXRha3VjaGlcIDsKK+W/nOWLn+eUqOe0mSA8IG91Ym95b3VzaGlcIDsKK+WGheaDkeaYnyA8IG5haXdha3VzZWlcIDsKK+ecn+ato+ebtCA8IG1hc2hvdWppa2lcIDsKK+Wto+evgOmiqCA8IGtpc2V0c3VmdXVcIDsKK+S9juWtpuW5tCA8IHRlaWdha3VuZW5cIDsKK+WtpuexjeewvyA8IGdha3VzZWtpYm9cIDsKK+eri+S9k+mPoSA8IHJpdHRhaWt5b3VcIDsKK+S6jOmgheW8jyA8IG5pa291c2hpa2lcIDsKK+eZvuaXpee0hSA8IHNhcnVzdWJlcmlcIDsKK+i7jeeVpeWutiA8IGd1bnJ5YWt1a2FcIDsKK+iHqua1hOS9nOeUqCA8IGppam91c2F5b3VcIDsKK+awkeitmumbhiA8IG1pbmRhbnNodXVcIDsKK+aFsOWVj+iiiyA8IGltb25idWt1cm9cIDsKK+a2iOefs+eBsCA8IHNob3VzZWtrYWlcIDsKK+WNmOS4gOWMliA8IHRhbicnaXRzdWthXCA7CivlsILnlKjou4ogPCBzZW4nJ3lvdXNoYVwgOwor5LuV6Iie54mpIDwgc2hpbWFpbW9ub1wgOwor5aSn55m96bOlIDwgb29oYWt1Y2hvdVwgOwor57ep5b6Q5puyIDwga2Fuam9reW9rdVwgOwor5YiA5Ymj5ZWGIDwgdG91a2Vuc2hvdVwgOwor5Ly96Iqd5bGFIDwgdG9naXNoaWJhaVwgOwor5aSW6LKo6aCQ6YeRIDwgZ2Fpa2F5b2tpblwgOwor5rCX6LGh5bqBIDwga2lzaG91Y2hvdVwgOwor5LiA5YaG546JIDwgaWNoaWVuZGFtYVwgOwor5oGQ5oCW5pig55S7IDwga3lvdWZ1ZWlnYVwgOwor6Kqy56iO5o6n6ZmkIDwga2F6ZWlrb3Vqb1wgOwor5beh5rSL6ImmIDwganVuJyd5b3VrYW5cIDsKK+W/hemcgOWTgSA8IGhpdHN1anVoaW5cIDsKK+S4jeS/oeeUqCA8IGZ1c2hpbicneW91XCA7CivmuKzlnLDnt5ogPCBzb2t1Y2hpc2VuXCA7Civpq5jmnKjlsaQgPCBrb3Vib2t1c291XCA7CivoqLHlrrnoqqTlt64gPCBreW95b3Vnb3NhXCA7CivooajlsaTmgKcgPCBoeW91c291c2VpXCA7CivmsLTolqwgPCBtaXp1Z3VzdXJpXCA7Civlh7rluK3nsL8gPCBzaHVzc2VraWJvXCA7CivopqrnjovlpoMgPCBzaGluJydub3VoaVwgOwor6YWN57Wm57O7IDwgaGFpa3l1dWtlaVwgOwor5aSJ5Zyn5ZmoIDwgaGVuJydhdHN1a2lcIDsKK+Wun+S9k+mPoSA8IGppdHRhaWt5b3VcIDsKK+WEquWLneadryA8IHl1dXNob3VoYWlcIDsKK+mBqeS4jemBqSA8IHRla2lmdXRla2lcIDsKK+S4jeWumuacn+WIkSA8IGZ1dGVpa2lrZWlcIDsKK+ekvuS6pOeahCA8IHNoYWtvdXRla2lcIDsKK+mFjee1puexsyA8IGhhaWt5dXVtYWlcIDsKK+abuOiomOWxgCA8IHNob2tpa3lva3VcIDsKK+i0iOWPjuizhCA8IHpvdXNodXV3YWlcIDsKK+WHuOWHuee0mSA8IHRvdHN1b3VzaGlcIDsKK+ijgeWIpOS6uiA8IHNhaWJhbicnbmluXCA7Civku4rpgZPlv4MgPCBpbWFkb3VzaGluXCA7CivmmI7msrvntq3mlrAgPCBtZWlqaWlzaGluXCA7CivntLnku4vogIUgPCBzaG91a2Fpc2hhXCA7CivoqIDoqp7mqZ/og70gPCBnZW5nb2tpbm91XCA7Civkv53nqI7lgInluqsgPCBob3plaXNvdWtvXCA7CivmsJfosaHlraYgPCBraXNob3VnYWt1XCA7Civnm7jntprkurogPCBzb3V6b2t1bmluXCA7CivooqvlkYrluK0gPCBoaWtva3VzZWtpXCA7CivkubPohILogqogPCBueXV1c2hpYm91XCA7CivovrLniaflnLAgPCBub3Vib2t1Y2hpXCA7CivljLvnmYLmqZ/plqIgPCBpcnlvdWtpa2FuXCA7CivmgqrmiK/lrZAgPCBpdGF6dXJha2tvXCA7CivlsITnmoTloLQgPCBzaGF0ZWtpam91XCA7Civms4nnhrEgPCBpenVtaW5ldHN1XCA7Civms5XlrabogIUgPCBob3VnYWt1c2hhXCA7Civlhajlm73ntJkgPCB6ZW5rb2t1c2hpXCA7CivmlZHpm6PoiLkgPCBreXV1bmFuc2VuXCA7Civph5Hono3lgrUgPCBraW4nJ3l1dXNhaVwgOwor55+z5LqV6IGw5LqSIDwgaXNoaWlzb3Vnb1wgOwor6LuN5LqL5bCB6Y6WIDwgZ3VuamlmdXVzYVwgOwor5LiK6LyJ5ZynIDwgam91c2FpYXRzdVwgOwor5Y+j5Zan5ZipIDwga3VjaGlnZW5rYVwgOwor5oiQ5Lq655eFIDwgc2VpamluYnlvdVwgOwor6Iqx5rC05pyoIDwgaGFuYW1penVraVwgOwor6YCg5ZyS6KGTIDwgem91ZW5qdXRzdVwgOwor5Lmz6IW654KOIDwgbnl1dXNlbicnZW5cIDsKK+S9jemajuWLsuetiSA8IGlrYWlrdW50b3VcIDsKK+a1tOWupCA8IHlva3VzaGl0c3VcIDsKK+a1t+a1geeTtiA8IGthaXJ5dXViaW5cIDsKK+WIhuWFieWtpiA8IGJ1bmtvdWdha3VcIDsKK+awkeS4u+eahCA8IG1pbnNodXRla2lcIDsKK+eyvueZveezliA8IHNlaWhha3V0b3VcIDsKK+eEoeapn+izqiA8IG11a2lzaGl0c3VcIDsKK+aEm+WomCA8IG1hbmFtdXN1bWVcIDsKK+mAmuipseaWmSA8IHRzdXV3YXJ5b3VcIDsKK+iAkOeBq+eFieeTpiA8IHRhaWthcmVuZ2FcIDsKK+aUueiJr+WTgSA8IGthaXJ5b3VoaW5cIDsKK+eyvueZveexsyA8IHNlaWhha3VtYWlcIDsKK+W/q+WJiumLvCA8IGthaXNha3Vrb3VcIDsKK+aXpeWQkeawtCA8IGhpbmF0YW1penVcIDsKK+WPpOeLuCA8IGZ1cnVkYW51a2lcIDsKK+mZquWvqeWToSA8IGJhaXNoaW4nJ2luXCA7Civlj6Tku4rnhKHpoZ4gPCBrb2tvbm11cnVpXCA7CivluKvlm6PplbcgPCBzaGlkYW5jaG91XCA7CivntYTogbfkvZMgPCBzb3Nob2t1dGFpXCA7Civmnpzlrp/phZIgPCBrYWppdHN1c2h1XCA7Civlqb/ppIrlrZAgPCBtdWtveW91c2hpXCA7CivlhpnnnJ/luKsgPCBzaGFzaGluc2hpXCA7Civpm7vms6LnrqHnkIYgPCBkZW5wYWthbnJpXCA7CivmsrPng48gPCBrYXdhZ2FyYXN1XCA7CivkuIvmpJzmn7sgPCBzaGl0YWtlbnNhXCA7CivlhKrli53miKYgPCB5dXVzaG91c2VuXCA7Civnp4HlrpsgPCB3YXRhc2hpYXRlXCA7CivpgKPntprkvZMgPCByZW56b2t1dGFpXCA7CivlpKnliJHnl4UgPCB0ZW5rZWlieW91XCA7CivmsJHkuovkuovku7YgPCBtaW5qaWppa2VuXCA7CivljYrnv4Xnm64gPCBoYW5zaGltb2t1XCA7CivojLbnlarliocgPCBjaGFiYW5nZWtpXCA7Civoh6rnhLbkv53orbcgPCBzaGl6ZW5ob2dvXCA7CivlhpnnnJ/lsYsgPCBzaGFzaGluJyd5YVwgOwor55S75YOP5Yem55CGIDwgZ2F6b3VzaG9yaVwgOwor6Imv5bCO5L2TIDwgcnlvdWRvdXRhaVwgOwor5pWR5LiW5Li7IDwga3l1dXNlaXNodVwgOwor5pyq552A5omLIDwgbWljaGFrdXNodVwgOwor5L2c6Kmp5rOVIDwgc2FrdXNoaWhvdVwgOwor55yf6a2a6bC5IDwgbWFuYWdhdHN1b1wgOwor5Ye65by15ZOhIDwgc2h1dGNob3VpblwgOwor5Lq65Yqb6LuKIDwgamlucmlraXNoYVwgOwor56iu56iu6ZuR5aSaIDwgc2h1anV6YXR0YVwgOwor5b+F572wIDwgaGl0c3ViYXRzdVwgOwor56Wd5pelIDwgc2h1a3VqaXRzdVwgOwor5Zu96Zqb5Lq6IDwga29rdXNhaWppblwgOwor5ris6ZW35qmfIDwgc29rdWNob3VraVwgOwor5bCP5Li76KazIDwgc2hvdXNodWthblwgOwor5pig55S75L+z5YSqIDwgZWlnYWhhaXl1dVwgOwor5a6f6Le155qEIDwgamlzc2VudGVraVwgOwor6YCj57WQ5ZmoIDwgcmVua2V0c3VraVwgOwor6ICQ5LmF5oCnIDwgdGFpa3l1dXNlaVwgOwor5p2J5Lim5pyoIDwgc3VnaW5hbWlraVwgOwor57WC5LqG5b6MIDwgc2h1dXJ5b3Vnb1wgOwor5aSp6YGT5qeYIDwgdGVudG91c2FtYVwgOwor5ZCK5qmLIDwgdHN1cmliYXNoaVwgOwor5pKu5b2x6ZqKIDwgc2F0c3VlaXRhaVwgOwor6Iqx6I+W6JKyIDwgaGFuYXNob3VidVwgOwor5qSc55y86Y+hIDwga2VuZ2Fua3lvdVwgOwor5b2i6KixIDwga2F0YWJha2FyaVwgOwor6YW45YyW54mpIDwgc2Fua2FidXRzdVwgOwor5rOi5p6VIDwgbmFtaW1ha3VyYVwgOwor5bCP5L2c5paZIDwga29zYWt1cnlvdVwgOwor5bq25rCR55qEIDwgc2hvbWludGVraVwgOwor6Lyq6Iie5puyIDwgcmluYnVreW9rdVwgOwor56OB5rCX6Yyy6Z+zIDwgamlraXJva3VvblwgOwor5LiN5Y2U5ZKM6Z+zIDwgZnVreW91d2FvblwgOwor5YeN57WQ5ZmoIDwgdG91a2V0c3VraVwgOwor5aSP6Jyc5p+RIDwgbmF0c3VtaWthblwgOwor5pys5L2N6KiY5Y+3IDwgaG9uJydpa2lnb3VcIDsKK+etieaWueeahCA8IHRvdWhvdXRla2lcIDsKK+ihm+eUn+euoeeQhiA8IGVpc2Vpa2FucmlcIDsKK+Wyqea4heawtCA8IGl3YXNoaW1penVcIDsKK+eri+ahiOiAhSA8IHJpdHN1YW5zaGFcIDsKK+ebuOS6kuS4u+e+qSA8IHNvdWdvc2h1Z2lcIDsKK+iRl+i/sOWutiA8IGNob2p1dHN1a2FcIDsKK+iEs+aiheavkiA8IG5vdWJhaWRva3VcIDsKK+i7jeeUqOWTgSA8IGd1bicneW91aGluXCA7Civlv5zli5/os4fph5EgPCBvdWJvc2hpa2luXCA7Civlg5Xku7LplpMgPCBib2t1bmFrYW1hXCA7Civpm6PoppbogbQgPCBuYW5zaGljaG91XCA7Civlvqnlj6TkuLvnvqkgPCBmdWtrb3NodWdpXCA7CivlvrPnvqnlv4MgPCB0b2t1Z2lzaGluXCA7Civov5HmtbfniakgPCBraW5rYWltb25vXCA7CivmnbHmtIvpgJogPCB0b3V5b3V0c3V1XCA7CivmrKHkupznoavphbggPCBqaWFyeXV1c2FuXCA7CivlubPlronmmYLku6MgPCBoZWlhbmppZGFpXCA7CivpiYTnoLLnjokgPCB0ZXBwb3VkYW1hXCA7CivmsLTnp6QgPCBtaXp1YmFrYXJpXCA7CivmtYHlpLEgPCByeXV1c2hpdHN1XCA7CivkvqHmoLzooaggPCBrYWtha3VoeW91XCA7Civoqr/lgZzogIUgPCBjaG91dGVpc2hhXCA7CivmrbTlj7LoprMgPCByZWtpc2hpa2FuXCA7Civlu7rnr4nosrsgPCBrZW5jaGlrdWhpXCA7CivpiYvlsZEgPCBrYW4nJ25ha3V6dVwgOwor5Lq65oOF5YqHIDwgbmluam91Z2VraVwgOwor6I+x6aSFIDwgaGlzaGltb2NoaVwgOwor5aSa56We5pWZIDwgdGFzaGlua3lvdVwgOwor5oOF5aCx5qmf5ZmoIDwgam91aG91a2lraVwgOwor5YmN5ZOo5ZywIDwgemVuc2hvdWNoaVwgOwor5LiJ5L2N5LiA5L2TIDwgc2FubWlpdHRhaVwgOwor5pS/5YuZ5qyh5a6YIDwgc2VpbXVqaWthblwgOwor5ZCJ5pelIDwga2ljaGluaWNoaVwgOwor5LiA5bqm5LiIIDwgaWNoaWRvZGFrZVwgOwor6Jas5oyHIDwga3VzdXJpeXViaVwgOwor6YCj57Wh5LyaIDwgcmVucmFrdWthaVwgOwor5LiA6Iis6IG3IDwgaXBwYW5zaG9rdVwgOwor6ZuM6ZuE55Ww5L2TIDwgc2hpeXV1aXRhaVwgOwor56S+5Lya5a2mIDwgc2hha2FpZ2FrdVwgOwor5YG15a+f5qmfIDwgdGVpc2F0c3VraVwgOwor5a+d5Y+w6LuKIDwgc2hpbmRhaXNoYVwgOwor5bm05Luj54mpIDwgbmVuZGFpbW9ub1wgOwor5Lih5pu/5Lq6IDwgcnlvdWdhZW5pblwgOwor5ZCE5pa5IDwgb25vb25vZ2F0YVwgOwor5q2m5pat5pS/5rK7IDwgYnVkYW5zZWlqaVwgOwor5ZCI5qC86ICFIDwgZ291a2FrdXNoYVwgOwor6YeR5qeMIDwga2FuYWR6dWNoaVwgOwor5bCC55So57eaIDwgc2VuJyd5b3VzZW5cIDsKK+W4r+Wfn+W5hSA8IHRhaWlraWhhYmFcIDsKK+WIneS4gOW/tSA8IHNob2ljaGluZW5cIDsKK+e0ueS7i+eKtiA8IHNob3VrYWlqb3VcIDsKK+a2iOavkuWZqCA8IHNob3Vkb2t1a2lcIDsKK+aXpumCo+ihhiA8IGRhbicnbmFzaHV1XCA7CivloIXkv6HnpLwgPCBrZW5zaGlucmVpXCA7CivlrpjlhazluoEgPCBrYW5rb3VjaG91XCA7CivogbTogZ7lg6cgPCBjaG91bW9uc291XCA7CivlpKrlubPmpb0gPCB0YWloZWlyYWt1XCA7CivkuKHlpKnnp6QgPCByeW91dGVuYmluXCA7CivlrZTpm4Dnn7MgPCBrdWpha3VzZWtpXCA7CivlibXkvZzmqKkgPCBzb3VzYWt1a2VuXCA7CivoibLkuovluKsgPCBpcm9nb3Rvc2hpXCA7CivphbjljJbngq3ntKAgPCBzYW5rYXRhbnNvXCA7CivmsLTlvannlLvlrrYgPCBzdWlzYWlnYWthXCA7CivpmY3prZTooZMgPCBrb3VtYWp1dHN1XCA7CivlsJHos4fmnKwgPCBzaG91c2hpaG9uXCA7Civos4fnlKPmoKogPCBzaGlzYW5rYWJ1XCA7Civln7rnpI7ku6PorJ0gPCBraXNvdGFpc2hhXCA7CivmgZDmgJblv4MgPCBreW91ZnVzaGluXCA7Civlrp/pqJPnmoQgPCBqaWtrZW50ZWtpXCA7Civkvb/lvpLpgZQgPCBzaGl0b3RhY2hpXCA7CivliY3poK0gPCBtYWVnYXNoaXJhXCA7CivlronphZLloLQgPCB5YXN1c2FrYWJhXCA7CivogbTogZ7kvJogPCBjaG91bW9ua2FpXCA7CivogrLlhZDpo58gPCBpa3VqaXNob2t1XCA7CivnlLfkvr/miYAgPCBvdG9rb2JlbmpvXCA7Civpppblrp/mpJwgPCBrdWJpamlra2VuXCA7CivntLDog57ohpwgPCBzYWlib3VtYWt1XCA7CivlkI3kurrogowgPCBtZWlqaW5oYWRhXCA7CivlsI/lrabmoKEgPCBzaG91Z2Fra291XCA7CivkuIDmna/mqZ/lq4wgPCBpcHBhaWtpZ2VuXCA7Civml6fol6nkuLsgPCBreXV1aGFuc2h1XCA7CivmsJHmnInmnpcgPCBtaW4nJ3l1dXJpblwgOwor6LWk6YmE6YmxIDwgc2VraXRla2tvdVwgOwor5pys6I2J5a2mIDwgaG9uem91Z2FrdVwgOwor5L+u5q2j6ICFIDwgc2h1dXNlaXNoYVwgOwor6aKo6YCf6KiIIDwgZnV1c29rdWtlaVwgOwor6YGT6Lev6Ly46YCBIDwgZG91cm95dXNvdVwgOwor5r2c5Zyo55qEIDwgc2VuemFpdGVraVwgOwor5aSJ5ouN5a2QIDwgaGVuYnlvdXNoaVwgOwor5pen5oCd5oOzIDwga3l1dXNoaXNvdVwgOwor5Lqc54ax5biv5p6XIDwgYW5ldHRhaXJpblwgOwor6ZuR5pyo5p6XIDwgem91Ym9rdXJpblwgOwor5oim6ZeY55qEIDwgc2VudG91dGVraVwgOwor6Z2S5oGv5ZCQ5oGvIDwgYW9pa2l0b2lraVwgOwor57WC6Zu76LuKIDwgc2h1dWRlbnNoYVwgOwor6IOM576O6a+oIDwgc2VtaWt1amlyYVwgOwor5oWH5oeD54Sh56S8IDwgaW5naW5idXJlaVwgOwor56m05p2T5a2QIDwgYW5hamFrdXNoaVwgOwor5LiA5bm05LitIDwgaWNoaW5lbmp1dVwgOwor6YmE56Cy5rC0IDwgdGVwcG91bWl6dVwgOwor5YWo5Zu95rCRIDwgemVua29rdW1pblwgOwor5Lq65Y+j5a2mIDwgamlua291Z2FrdVwgOwor5rWB5Ye6IDwgcnl1dXNodXRzdVwgOwor5rS75YqbIDwga2F0c3VyeW9rdVwgOwor55u05ruR6ZmNIDwgY2hva2tha2tvdVwgOwor57Oe55yf6Z2i55uuIDwga3Vzb21hamltZVwgOwor5LiK55Sz5pu4IDwgam91c2hpbnNob1wgOwor5Y2154S8IDwgdGFtYWdveWFraVwgOwor6Yed5Y2D5pysIDwgaGFyaXNlbmJvblwgOwor6Ieq5Li76KaP5Yi2IDwgamlzaHVraXNlaVwgOwor5LiJ5qWt5ZywIDwgc2FuZ3lvdWNoaVwgOwor5Lim5aSn5oq1IDwgbmFtaXRhaXRlaVwgOwor55m96Zuy55+zIDwgaGFrdXVuc2VraVwgOwor5rC054WZIDwgbWl6dWtlbXVyaVwgOwor5qyg5bit6ICFIDwga2Vzc2VraXNoYVwgOwor5byV5b2T6YeRIDwgaGlraWF0ZWtpblwgOwor6KOF6aO+6Z+zIDwgc291c2hva3VvblwgOwor6KaW6IG06ICFIDwgc2hpY2hvdXNoYVwgOwor5Lmz6Iet5YWQIDwgbnl1dXNodXVqaVwgOwor5omL5rKi5pysIDwgc2h1dGFrdWJvblwgOwor6K2m5oiS5b+DIDwga2Vpa2Fpc2hpblwgOwor5byl55Sf5pmC5LujIDwgeWF5b2lqaWRhaVwgOwor5Lit5Zu96KqeIDwgY2h1dWdva3Vnb1wgOwor5YWl5omL6ZujIDwgbnl1dXNodW5hblwgOwor6Zu75rWB6KiIIDwgZGVucnl1dWtlaVwgOwor6YGT6YGTIDwgbWljaGltaWNoaVwgOwor5LqI5YKZ5Lya6KuHIDwgeW9iaWthaWRhblwgOwor5ZCb5Li75Zu9IDwga3Vuc2h1a29rdVwgOwor6Z+z5qW95a2mIDwgb25nYWt1Z2FrdVwgOwor6Yyv5a2X55eHIDwgc2FrdWppc2hvdVwgOwor562J5L2N5qeL6YCgIDwgdG91aWtvdXpvdVwgOwor5aSn55uk55+zIDwgZGFpYmFuamFrdVwgOwor5YiG5a2Q6YePIDwgYnVuc2hpcnlvdVwgOwor5LiA55Wq6Iy2IDwgaWNoaWJhbmNoYVwgOwor5LuW5rWB6Kmm5ZCIIDwgdGFyeXV1amlhaVwgOwor5a6J5a6a5pON5L2cIDwgYW50ZWlzb3VzYVwgOwor54Sh5YSf6KGM54K6IDwgbXVzaG91a291aVwgOwor6YGF5Yi76ICFIDwgY2hpa29rdXNoYVwgOwor5YaN55m66LazIDwgc2FpaG9zc29rdVwgOwor5a++6Lmg55qEIDwgdGFpc2hvdGVraVwgOwor5aSP5pyf5a2m5qChIDwga2FraWdha2tvdVwgOwor5qeN6KGT5a62IDwgc291anV0c3VrYVwgOwor5q2M6Kyh5puyIDwga2F5b3VreW9rdVwgOwor5rS75Lq655S7IDwga2F0c3VqaW5nYVwgOwor5LqM6KiA55uuIDwgZnV0YWtvdG9tZVwgOwor5Y6f5a2Q6YePIDwgZ2Vuc2hpcnlvdVwgOwor5by36IWwIDwgdHN1eW9nb3NoaVwgOwor5aSn5bmF54mpIDwgb29oYWJhbW9ub1wgOwor54us5aWP5LyaIDwgZG9rdXNvdWthaVwgOwor5Yid6ZycIDwgaGF0c3VzaGltb1wgOwor5a6H5a6Z5Yy75a2mIDwgdWNodXVpZ2FrdVwgOwor5ZCN6KqJ6Zmk6ZqKIDwgbWVpeW9qb3RhaVwgOwor5LqU6IeT5YWt6IWRIDwgZ296b3Vyb3BwdVwgOwor5Y+z5bemIDwgbWlnaWhpZGFyaVwgOwor6ISx6Iet5YmkIDwgZGFzc2h1dXphaVwgOwor5b+r6YCf6Ii5IDwga2Fpc29rdXNlblwgOwor55Sf5q6W5ZmoIDwgc2Vpc2hva3VraVwgOwor6LuK5Lit6KuHIDwgc2hhY2h1dWRhblwgOwor6Y6u6Z2Z5YmkIDwgY2hpbnNlaXphaVwgOwor5ZCI5L2155eHIDwgZ2FwcGVpc2hvdVwgOwor5oeH6Kaq5LyaIDwga29uc2hpbmthaVwgOwor552A6ZuqIDwgY2hha3VzZXRzdVwgOwor5b+F5ruFIDwgaGl0c3VtZXRzdVwgOwor54m954mb5pifIDwga2VuZ3l1dXNlaVwgOwor5Z+36KGM5aeU5ZOhIDwgc2hpa2tvdWlpblwgOwor6YeM5b+DIDwgc2F0b2dva29yb1wgOwor5Zub6Z2i5qWa5q2MIDwgc2hpbWVuc29rYVwgOwor6Iy25p+E5p2TIDwgY2hhYmlzaGFrdVwgOwor5pyJ56We6KuWIDwgeXV1c2hpbnJvblwgOwor5ZG95Lit5pWwIDwgbWVpY2h1dXN1dVwgOwor5pa56Kej55+zIDwgaG91a2Fpc2VraVwgOwor5aOy5o6b6YeRIDwgdXJpa2FrZWtpblwgOwor6LaF5beo5pifIDwgY2hvdWt5b3NlaVwgOwor56uL5L2T55qEIDwgcml0dGFpdGVraVwgOwor55m95pi85aSiIDwgaGFrdWNodXVtdVwgOwor5paw6KiY6YyyIDwgc2hpbmtpcm9rdVwgOwor5L+d6YeI6YeRIDwgaG9zaGFrdWtpblwgOwor5Y+N57KS5a2QIDwgaGFucnl1dXNoaVwgOwor5LiL6Laz5paZIDwgZ2Vzb2t1cnlvdVwgOwor5rOo5paH5pu4IDwgY2h1dW1vbnNob1wgOwor5aiB6aKo5aCC5aCCIDwgaWZ1dWRvdWRvdVwgOwor5YyW5ZCI54mpIDwga2Fnb3VidXRzdVwgOwor5bGL5b2i6Ii5IDwgeWFrYXRhYnVuZVwgOwor6LuN5LqL5Lya6K2wIDwgZ3VuamlrYWlnaVwgOwor6Leb6KGM5pmv5rCXIDwgaGFrb3VrZWlraVwgOwor6YGL5YuV5YqbIDwgdW5kb3VyeW9rdVwgOwor6YqY6YqY55q/IDwgbWVpbWVpemFyYVwgOwor6buS5puc5bKpIDwga29rdXlvdWdhblwgOwor5Y6f5L2c6ICFIDwgZ2Vuc2FrdXNoYVwgOwor5YW156uZ5a2mIDwgaGVpdGFuZ2FrdVwgOwor57Sw5a+G55S7IDwgc2FpbWl0c3VnYVwgOwor6aWC6aOp57KJ55eFIDwgdWRvbmtvYnlvdVwgOwor5LiA55Wq57eaIDwgaWNoaWJhbnNlblwgOwor5Y2K5Lq65YmNIDwgaGFuJyduaW5tYWVcIDsKK+WKh+WgtOihlyA8IGdla2lqb3VnYWlcIDsKK+WkqeS4i+S4gOWTgSA8IHRlbmthaXBwaW5cIDsKK+axuuitsOaoqSA8IGtldHN1Z2lrZW5cIDsKK+WfuuWcsOmWiemOliA8IGtpY2hpaGVpc2FcIDsKK+iRteelrSA8IGFvaW1hdHN1cmlcIDsKK+S4gOanveW8jyA8IGlzc291c2hpa2lcIDsKK+WuheaApeS+vyA8IHRha2t5dXViaW5cIDsKK+ayueWjtyA8IGFidXJhdHN1Ym9cIDsKK+iAgeS6uueXhSA8IHJvdWppbmJ5b3VcIDsKK+ethuiomOeUqOWFtyA8IGhpa2tpeW91Z3VcIDsKK+iSuOawl+apn+mWoiA8IGpvdWtpa2lrYW5cIDsKK+WQiOagvOeCuSA8IGdvdWtha3V0ZW5cIDsKK+WIu+i2syA8IGtpemFtaWFzaGlcIDsKK+ippuS+m+WTgSA8IHNoaWt5b3VoaW5cIDsKK+S4reWgheaJiyA8IGNodXVrZW5zaHVcIDsKK+iRm+mlhemgrSA8IGt1enVtYW5qdXVcIDsKK+aOpeWuouWppiA8IHNla2t5YWt1ZnVcIDsKK+a0u+Wtl+acrCA8IGthdHN1amlob25cIDsKK+WVj+mhjOWKhyA8IG1vbmRhaWdla2lcIDsKK+ejgeawl+aKteaKlyA8IGppa2l0ZWlrb3VcIDsKK+iBtOism+eUnyA8IGNob3Vrb3VzZWlcIDsKK+awtOaelSA8IG1penVtYWt1cmFcIDsKK+izvemKreeusSA8IHNhaXNlbmJha29cIDsKK+aPkOWUseiAhSA8IHRlaXNob3VzaGFcIDsKK+S4geWtl+WumuimjyA8IHRlaWppam91Z2lcIDsKK+WZtOmjr+eJqSA8IGZ1bnBhbm1vbm9cIDsKK+WbuuWumumHkeWIqSA8IGtvdGVpa2lucmlcIDsKK+WIhualteWMliA8IGJ1bmt5b2t1a2FcIDsKK+euoeeQhuWxgCA8IGthbnJpa3lva3VcIDsKK+inkumMkOWPsCA8IGtha3VzdWlkYWlcIDsKK+emj+WyoeecjCA8IGZ1a3Vva2FrZW5cIDsKK+eLrOWjh+WgtCA8IGRva3VkYW5qb3VcIDsKK+S7sumWk+ikkiA8IG5ha2FtYWJvbWVcIDsKK+maj+aDs+mMsiA8IHp1aXNvdXJva3VcIDsKK+aSruW9seiAhSA8IHNhdHN1ZWlzaGFcIDsKK+WmguiPqeiWqSA8IG55b2Jvc2F0c3VcIDsKK+WRveS4reW8viA8IG1laWNodXVkYW5cIDsKK+ecn+WIhuaVsCA8IHNoaW5idW5zdXVcIDsKK+mwr+mbsiA8IGl3YXNoaWd1bW9cIDsKK+mbh+eUqOS4uyA8IGtveW91bnVzaGlcIDsKK+W/g+afhCA8IGtva29yb2dhcmFcIDsKK+i1t+WLleaZgumWkyA8IGtpZG91amlrYW5cIDsKK+W5uyA8IG1hYm9yb3NoaVwgOwor5bGNIDwgc2hpa2FiYW5lXCA7CivlraQgPCBtaW5hc2hpZ29cIDsKK+eMqiA8IGlub3NoaXNoaVwgOwor5ZSHIDwga3VjaGliaXJ1XCA7CivmqqMgPCBob2Jhc2hpcmFcIDsKK+apmCA8IHRhY2hpYmFuYVwgOwor5YW1IDwgdHN1d2Ftb25vXCA7CivpioAgPCBzaGlyb2dhbmVcIDsKK+mCqiA8IHlva29zaGltYVwgOwor5bGv55Sw5YW1IDwgdG9uZGVuaGVpXCA7CivmlbXpg6jpmoogPCB0ZWtpYnV0YWlcIDsKK+aKteW9k+aoqSA8IHRlaXRvdWtlblwgOwor5p2R5aSr5a2QIDwgc29ucHV1c2hpXCA7Civoh6rlt7HmrLrnnp4gPCBqaWtvZ2ltYW5cIDsKK+aFsOWuieaXheihjCA8IGlhbnJ5b2tvdVwgOwor5o+a5rC06LuKIDwgeW91c3Vpc2hhXCA7CivmlZHmj7Tou40gPCBreXV1ZW5ndW5cIDsKK+iCsuavm+WJpCA8IGlrdW1vdXphaVwgOwor552m6KiAIDwgbXV0c3Vnb3RvXCA7Civlj47lpaogPCBzaHV1ZGF0c3VcIDsKK+m7kumgreW3viA8IGt1cm96dWtpblwgOwor6Kej5q+S5YmkIDwgZ2Vkb2t1emFpXCA7CivmgZDllp0gPCBreW91a2F0c3VcIDsKK+mrmOWnv+WLoiA8IGtvdXNoaXNlaVwgOwor5bGL5Y+w5bqXIDwgeWF0YWltaXNlXCA7Civotbfno4HlipsgPCBraWppcnlva3VcIDsKK+WOn+eUn+aelyA8IGdlbnNlaXJpblwgOwor5q205Y+y55S7IDwgcmVraXNoaWdhXCA7Civnm67poK0gPCBtZWdhc2hpcmFcIDsKK+iNiemkoCA8IGt1c2Ftb2NoaVwgOwor5YmN5Y2K55SfIDwgemVuaGFuc2VpXCA7CivlrZjlnKjoq5YgPCBzb256YWlyb25cIDsKK+WKh+iBtyA8IGdla2lzaG9rdVwgOwor5biM5pyb55qEIDwga2lib3V0ZWtpXCA7Civolqzku6MgPCBrdXN1cmlkYWlcIDsKK+S6uuW3pembtyA8IGppbmtvdXJhaVwgOwor5bCC55So5qmfIDwgc2VuJyd5b3VraVwgOwor5by355u0IDwga3lvdWNob2t1XCA7Civluqbph4/ooaEgPCBkb3J5b3Vrb3VcIDsKK+WFmuWkp+S8miA8IHRvdXRhaWthaVwgOwor5ZCM5LmX6ICFIDwgZG91am91c2hhXCA7CivlirTli5XogIUgPCByb3Vkb3VzaGFcIDsKK+WNmOaVsOWeiyA8IHRhbnN1dWtlaVwgOwor5b6T5YWE5byfIDwganV1a2VpdGVpXCA7Civpvafmra/poZ4gPCBnZXNzaGlydWlcIDsKK+WQhOWGiiA8IGtha3VzYXRzdVwgOwor6YCa6KqsIDwgdHN1dXNldHN1XCA7CivlhqDmnKjploAgPCBrYWJ1a2ltb25cIDsKK+S7mOWxnuWTgSA8IGZ1em9rdWhpblwgOwor6Kiq5ZWP6ICFIDwgaG91bW9uc2hhXCA7CivmsrPlj6MgPCBrYXdhZ3VjaGlcIDsKK+mAhuiziiA8IGd5YWt1em9rdVwgOwor6YGT6I2JIDwgbWljaGlrdXNhXCA7CivnmbrpoK3kurogPCBob3R0b3VuaW5cIDsKK+atu+elniA8IHNoaW5pZ2FtaVwgOwor5paH6YG45belIDwgYnVuc2Vua291XCA7CivpganogbcgPCB0ZWtpc2hva3VcIDsKK+asoOiQvSA8IGtldHN1cmFrdVwgOwor5be76a6oIDwgbWFraXp1c2hpXCA7CivlkIzlsYXkurogPCBkb3VreW9uaW5cIDsKK+WPguipo+S6uiA8IHNhbmtlaW5pblwgOwor5b255ZOh5LyaIDwgeWFrdWlua2FpXCA7CivlraTnq4voqp4gPCBrb3JpdHN1Z29cIDsKK+eUn+iPk+WtkCA8IG5hbWFnYXNoaVwgOwor6Zu75rCX5Zmo5YW3IDwgZGVua2lraWd1XCA7Civli53njocgPCBzaG91cml0c3VcIDsKK+WLmOWumuabuCA8IGthbmpvdXNob1wgOwor6ZaL5YKs5ZywIDwga2Fpc2FpY2hpXCA7CivokL3lvozogIUgPCByYWt1Z29zaGFcIDsKK+WHuui7jSA8IHNodXRzdWd1blwgOwor5Y2x5qmf5omT6ICFIDwga2lraWRhc2hhXCA7CivljYrml6UgPCBoYW4nJ25pY2hpXCA7CivloanljJbmsLTntKAgPCBlbmthc3Vpc29cIDsKK+WOhOW5tCA8IHlha3Vkb3NoaVwgOwor55S35a2Q5qChIDwgZGFuc2hpa291XCA7CivliaXohLEgPCBoYWt1ZGF0c3VcIDsKK+S4gOiLpuWKtCA8IGhpdG9rdXJvdVwgOwor5YKs5raZ5by+IDwgc2FpcnVpZGFuXCA7CivntbHmsrvmqKkgPCB0b3VjaGlrZW5cIDsKK+W+kuahnCA8IGFkYXpha3VyYVwgOwor5Y2D5pelIDwgc2VuJyduaWNoaVwgOwor56aB6Lui6LyJIDwga2ludGVuc2FpXCA7CivkurrkuovnlbDli5UgPCBqaW5qaWlkb3VcIDsKK+a4r+a5vueojiA8IGtvdXdhbnplaVwgOwor5LiN5a+b5a65IDwgZnVrYW4nJ3lvdVwgOwor5Yil6KGMIDwgYmV0c3VneW91XCA7CivkuI3kv6Hku7AgPCBmdXNoaW5rb3VcIDsKK+WkquWFrOacmyA8IHRhaWtvdWJvdVwgOwor5Li45ous5bynIDwgbWFydWdha2tvXCA7CivlpJblkJHmgKcgPCBnYWlrb3VzZWlcIDsKK+iQveedgCA8IHJha3VjaGFrdVwgOwor5LiN6Laz5YmNIDwgdGFyYXp1bWFlXCA7Civkuozlm73plpMgPCBuaWtva3VrYW5cIDsKK+S6nOmJm+mJhOadvyA8IGFlbnRlcHBhblwgOwor5Lya6JGs6ICFIDwga2Fpc291c2hhXCA7Civpga7kuoznhKHkuowgPCBzaGFuaW11bmlcIDsKK+mAhuilsiA8IGd5YWt1c2h1dVwgOwor56aP5a+/6I2JIDwgZnVrdWp1c291XCA7Civmr5LmrrogPCBkb2t1c2F0c3VcIDsKK+eiuuWunyA8IGtha3VqaXRzdVwgOwor5rOV5pu555WMIDwgaG91c291a2FpXCA7Civph43lh7ogPCBqdXVzaHV0c3VcIDsKK+WPo+WFiCA8IGt1Y2hpc2FraVwgOwor6YGL6Ly455yBIDwgdW4nJ3l1c2hvdVwgOwor5Y+j5YWDIDwga3VjaGltb3RvXCA7CivlvI/nm64gPCBzaGlraW1va3VcIDsKK+WNk+aKnCA8IHRha3ViYXRzdVwgOwor5LmX6LuK6aeFIDwgam91c2hhZWtpXCA7CivmnJ3prq7oqp4gPCBjaG91c2VuZ29cIDsKK+mdqeWRveWutiA8IGtha3VtZWlrYVwgOwor5qmf5a+G6LK7IDwga2ltaXRzdWhpXCA7CivkurrpgKDnsbMgPCBqaW56b3VtYWlcIDsKK+a0i+WTgeW6lyA8IHlvdWhpbnRlblwgOwor5YCL5Lq655qEIDwga29qaW50ZWtpXCA7CivkuIDlhYPljJYgPCBpY2hpZ2Vua2FcIDsKK+S8nemBk+iIuSA8IGRlbmRvdXNlblwgOwor5rKh5YWlIDwgYm90c3VueXV1XCA7CivlnKfov6vmhJ8gPCBhcHBha3VrYW5cIDsKK+S6iOmYsuetliA8IHlvYm91c2FrdVwgOwor6Iul6Zqg5bGFIDwgd2FrYWlua3lvXCA7CivlrprkvY/ogIUgPCB0ZWlqdXVzaGFcIDsKK+WPs+S4iyA8IG1pZ2lzaGl0YVwgOwor5rC05rq25oCnIDwgc3VpeW91c2VpXCA7CivlvLfng4ggPCBreW91cmV0c3VcIDsKK+mBuuiogOabuCA8IHl1aWdvbnNob1wgOwor5Luj54eD6LuKIDwgZGFpbmVuc2hhXCA7CivlpInmiJDlsqkgPCBoZW5zZWlnYW5cIDsKK+S4gOWumumHjyA8IGl0dGVpcnlvdVwgOwor6Ium54Gw55+zIDwga3VrYWlzZWtpXCA7Civlt6blv4PmiL8gPCBzYXNoaW5ib3VcIDsKK+i8queVquWItiA8IHJpbmJhbnNlaVwgOwor6KuL6aGY6ICFIDwgc2VpZ2Fuc2hhXCA7CivpgLjohLEgPCBpdHN1ZGF0c3VcIDsKK+eZvem7kiA8IHNoaXJva3Vyb1wgOwor55u06YGUIDwgamlraXRhdHN1XCA7CivlnKfov6vmgKcgPCBhcHBha3VzZWlcIDsKK+aBi+S7hyA8IGtvaWdhdGFraVwgOwor576F55Sf6ZaAIDwgcmFzaG91bW9uXCA7Civnm7TpgLIgPCBjaG9rdXNoaW5cIDsKK+WAi+S6uueUqCA8IGtvamluJyd5b3VcIDsKK+S6q+WPl+iAhSA8IGt5b3VqdXNoYVwgOwor5b6h6Laz5Yq0IDwgZ29zb2t1cm91XCA7Civnm7TpgJogPCBjaG9rdXRzdXVcIDsKK+WJveeqgyA8IGh5b3VzZXRzdVwgOwor54is6Jmr6aGeIDwgaGFjaHV1cnVpXCA7Civov7fkv6HlrrYgPCBtZWlzaGlua2FcIDsKK+WJsueuuCA8IHdhcmliYXNoaVwgOwor5pu457Ch5paHIDwgc2hva2FuYnVuXCA7CivoqLHlj6/oqLwgPCBreW9rYXNob3VcIDsKK+awkeS4u+WFmiA8IG1pbnNodXRvdVwgOwor5YWN6bucIDwgbWVuY2h1dHN1XCA7Civph5Hku48gPCBrYW5hYnV0c3VcIDsKK+eZvem3uiA8IHNoaXJhc2FnaVwgOwor6Ya15Ye6IDwga3lvc2h1dHN1XCA7Civnm7TovYQgPCBjaG9ra2F0c3VcIDsKK+WkquWIgOWFiCA8IHRhY2hpc2FraVwgOwor5Y2g5birIDwgdXJhbmFpc2hpXCA7CivkvJ3pgZPogIUgPCBkZW5kb3VzaGFcIDsKK+ebo+imluiIuSA8IGthbnNoaXNlblwgOwor57iE5pqW57C+IDwgbmF3YW5vcmVuXCA7Civntr/oo73lk4EgPCBtZW5zZWloaW5cIDsKK+earumdtCA8IGthd2FndXRzdVwgOwor5Ye66LWw6aasIDwgc2h1c3NvdWJhXCA7CivmgKXliIcgPCBreXV1c2V0c3VcIDsKK+S6jOmajuW7uiA8IG5pa2FpZGF0ZVwgOwor5L+u5q2j5qGIIDwgc2h1dXNlaWFuXCA7CivlrqPkvJ3miKYgPCBzZW5kZW5zZW5cIDsKK+mFieW5tCA8IHRvcmlkb3NoaVwgOwor6KuL6LKg5qWtIDwgdWtlb2lneW91XCA7CivpoZ7kurrnjL8gPCBydWlqaW4nJ2VuXCA7CivlkIjnkIbnmoQgPCBnb3VyaXRla2lcIDsKK+WLneiyoOW4qyA8IHNob3VidXNoaVwgOwor57O46Jqv6JqTIDwgaXRvbWltaXp1XCA7Civlu7bplbfmiKYgPCBlbmNob3VzZW5cIDsKK+Wcn+W7uualrSA8IGRva2VuZ3lvdVwgOwor6LSI5ZGI5ZOBIDwgem91dGVpaGluXCA7Civph5HpibHlnLAgPCBraW5rb3VjaGlcIDsKK+ecn+ijuCA8IG1hcHBhZGFrYVwgOwor5pi85b6h6aOvIDwgaGlydWdvaGFuXCA7Civokpnlj6TopZ4gPCBtb3Vrb2hpZGFcIDsKK+WNiuaciOWIiiA8IGhhbmdla2thblwgOwor5Ye66KGAIDwgc2h1a2tldHN1XCA7Civnmb3psZogPCBzaGlyb2dpc3VcIDsKK+mBk+etiyA8IG1pY2hpc3VqaVwgOwor55yM5rCR56iOIDwga2VubWluemVpXCA7CivmiYfli5XogIUgPCBzZW5kb3VzaGFcIDsKK+mbhuS8muaJgCA8IHNodXVrYWlqb1wgOwor5pyo5bel5aC0IDwgbW9ra291am91XCA7CivmtJLokL3ogIUgPCBzaGFyZW1vbm9cIDsKK+aIpumXmOW4vSA8IHNlbnRvdWJvdVwgOwor5aSV5YyW57KnIDwgeXV1Z2VzaG91XCA7CivpgZPnq68gPCBtaWNoaWJhdGFcIDsKK+WPr+WLleWgsCA8IGthZG91emVraVwgOwor5aSn5bm05aKXIDwgb290b3NoaW1hXCA7Civms5XnkIblraYgPCBob3VyaWdha3VcIDsKK+m7hOmgt+ibhyA8IGFvZGFpc2hvdVwgOwor6YCP5piO5L2TIDwgdG91bWVpdGFpXCA7CivmlYXpmpzou4ogPCBrb3Nob3VzaGFcIDsKK+ebo+imluiAhSA8IGthbnNoaXNoYVwgOwor5Y245aOyIDwgb3Jvc2hpdXJpXCA7Civlv5jlpLEgPCBib3VzaGl0c3VcIDsKK+iUreWPoyA8IGthZ2VndWNoaVwgOwor5Y215aSnIDwgdGFtYWdvZGFpXCA7CivlvIHmhbbojYkgPCBiZW5rZWlzb3VcIDsKK+WIneiKsSA8IGhhdHN1aGFuYVwgOwor6YGT56iLIDwgbWljaGlub3JpXCA7CivlrZjlnKjogIUgPCBzb256YWlzaGFcIDsKK+WFqOWbveWMuiA8IHplbmtva3VrdVwgOwor55m96auqIDwgaGFrdWhhdHN1XCA7CivlpKnnmofml5cgPCB0ZW4nJ25vdWtpXCA7Civlrpjlg5rljJYgPCBrYW5yeW91a2FcIDsKK+aXouW+l+aoqSA8IGtpdG9rdWtlblwgOwor5YWJ57ea6YqDIDwga291c2VuanV1XCA7Civno5TliJEgPCBoYXJpdHN1a2VcIDsKK+S7rumdouWKhyA8IGthbWVuZ2VraVwgOwor5qmf5qKw55qEIDwga2lrYWl0ZWtpXCA7CivlvabmmJ8gPCBoaWtvYm9zaGlcIDsKK+mBuuS8neWcsOWbsyA8IGlkZW5jaGl6dVwgOwor6L6b6L6jIDwgc2hpbnJhdHN1XCA7CivmraPniakgPCBzaG91YnV0c3VcIDsKK+WTgeOAhSA8IHNoaW5hamluYVwgOwor54ao5paX57SZIDwgbm9zaGlnYW1pXCA7CivlhpnmpI3mqZ8gPCBzaGFzaG9ra2lcIDsKK+WHuuiXjSA8IHNodXRzdXJhblwgOwor5pys5L2T6KuWIDwgaG9udGFpcm9uXCA7Civnmbrlo7Dms5UgPCBoYXNzZWlob3VcIDsKK+e1pua5r+WZqCA8IGt5dXV0b3VraVwgOwor5bm06IulIDwgdG9zaGl3YWthXCA7CivpgYroiIjosrsgPCB5dXVreW91aGlcIDsKK+W5s+WuieS6rCA8IGhlaWFua3lvdVwgOwor6YCG6IejIDwgZ3lha3VzaGluXCA7CivnlJ/mrKDkvLggPCBuYW1hYWt1YmlcIDsKK+mAgeS7mOWFiCA8IHNvdWZ1c2FraVwgOwor5aSW6YeO5bitIDwgZ2FpeWFzZWtpXCA7CivlubPoip0gPCBoaXJhc2hpYmFcIDsKK+aoqumdoiA8IHlva290c3VyYVwgOwor56uL5L2T5oimIDwgcml0dGFpc2VuXCA7Civnm7Toqq0gPCBjaG9rdWRva3VcIDsKK+ebo+imlue2siA8IGthbnNoaW1vdVwgOwor5pyI5rC06YeRIDwgZ2Vzc3Vpa2luXCA7CivmraPmipXmiYsgPCBzZWl0b3VzaHVcIDsKK+WHneihgCA8IGd5b3VrZXRzdVwgOwor6YGg6LWk5aSWIDwgZW5zZWtpZ2FpXCA7CivmjIfnpLrolqwgPCBzaGlqaXlha3VcIDsKK+mAg+iFsCA8IG5pZ2Vnb3NoaVwgOwor5b+D5aSqIDwgdG9rb3JvdGVuXCA7Civnm7ToqLMgPCBjaG9rdXlha3VcIDsKK+WIneiAsyA8IGhhdHN1bWltaVwgOwor5L+h5Y+35qmfIDwgc2hpbmdvdWtpXCA7CivkupXmiLjou4ogPCBpZG9ndXJ1bWFcIDsKK+acieWQjeeojiA8IHl1dW1laXplaVwgOwor56uL5L2T5oSfIDwgcml0dGFpa2FuXCA7CivlhKrlhYjmqKkgPCB5dXVzZW5rZW5cIDsKK+Wun+mok+WgtCA8IGppa2tlbmpvdVwgOwor54mh5Li56aSFIDwgYm90YW1vY2hpXCA7CivntYzlm6PpgKMgPCBrZWlkYW5yZW5cIDsKK+S4jeazleihjOeCuiA8IGZ1aG91a291aVwgOwor5pat6aCt5Y+wIDwgZGFudG91ZGFpXCA7CivkuojntITogIUgPCB5b3lha3VzaGFcIDsKK+e1guWknOeBryA8IHNodXV5YXRvdVwgOwor5pqX6buS6Z2iIDwgYW5rb2t1bWVuXCA7CivlrqPkvJ3lsYsgPCBzZW5kZW4nJ3lhXCA7Civku6Pmm7/lk4EgPCBkYWl0YWloaW5cIDsKK+eCremFuOWhqSA8IHRhbnNhbicnZW5cIDsKK+S4i+Wuv+WxiyA8IGdlc2h1a3V5YVwgOwor6KOc57Wm57eaIDwgaG9reXV1c2VuXCA7CivlkI3kurrmiKYgPCBtZWlqaW5zZW5cIDsKK+S4gOiIrOW4rSA8IGlwcGFuc2VraVwgOwor6YGt6Zuj6ICFIDwgc291bmFuc2hhXCA7Civnmb3pm6ogPCBoYWt1c2V0c3VcIDsKK+WHuuiJsiA8IHNodXNzaG9rdVwgOwor5Y6f5a2Q56CyIDwgZ2Vuc2hpaG91XCA7CivlgJLnva7ms5UgPCB0b3VjaGlob3VcIDsKK+W7g+eWviA8IGhhaXNoaXRzdVwgOwor54Wn5rqW5ZmoIDwgc2hvdWp1bmtpXCA7Civljp/kvY/msJEgPCBnZW5qdXVtaW5cIDsKK+iBluWFrOS8miA8IHNlaWtvdWthaVwgOwor5YqH54OIIDwgZ2VraXJldHN1XCA7Civljp/nlKPlnLAgPCBnZW5zYW5jaGlcIDsKK+mdqeWRveWFkCA8IGtha3VtZWlqaVwgOwor6YCf562GIDwgc29rdWhpdHN1XCA7CivlhKrpp7/ppqwgPCB5dXVzaHVuYmFcIDsKK+S4u+aDheirliA8IHNodWpvdXJvblwgOwor6aqo6JGj5ZOBIDwga290dG91aGluXCA7CivnrqHosqHkurogPCBrYW56YWluaW5cIDsKK+a8lOWKh+eVjCA8IGVuZ2VraWthaVwgOwor6YqA6Zaj5a+6IDwgZ2lua2FrdWppXCA7Civpoqjps6XluqcgPCBmdXVjaG91emFcIDsKK+aMn+eevOWZqCA8IGt5b3VrZW5raVwgOwor5pWZ5o6I5rOVIDwga3lvdWp1aG91XCA7Civpm7vmsJfph5wgPCBkZW5raWdhbWFcIDsKK+mbu+awl+mHjyA8IGRlbmtpcnlvdVwgOwor5rC05Y+jIDwgbWl6dWd1Y2hpXCA7CivmrbvkvZPpgbrmo4QgPCBzaGl0YWlpa2lcIDsKK+eCueWFiea6kCA8IHRlbmtvdWdlblwgOwor5pel5YiK57SZIDwgbmlra2Fuc2hpXCA7CivplpPni4LoqIAgPCBhaWt5b3VnZW5cIDsKK+auuuaIriA8IHNhdHN1cmlrdVwgOwor6ICB5Lq65oCnIDwgcm91amluc2VpXCA7CivlvozlrqQgPCBrb3VzaGl0c3VcIDsKK+ioiOaVsOeuoSA8IGtlaXN1dWthblwgOwor6YeR5Yip6Z6YIDwga2lucmlzaG91XCA7Civok4Tlpr4gPCBjaGlrdXNob3VcIDsKK+S7ruaUv+W6nCA8IGthcmlzZWlmdVwgOwor54++5Luj54mIIDwgZ2VuZGFpYmFuXCA7CivkvY7lp7/li6IgPCB0ZWlzaGlzZWlcIDsKK+aApemZjeS4iyA8IGt5dXVrb3VrYVwgOwor56ul6Kmx5YqHIDwgZG91d2FnZWtpXCA7Civlrp/pqJPlj7AgPCBqaWtrZW5kYWlcIDsKK+awtOaIkOWyqSA8IHN1aXNlaWdhblwgOwor5b6h5a+u5Lq6IDwgZ29yeW91bmluXCA7Civoh6rouqvnlaogPCBqaXNoaW5iYW5cIDsKK+egguaZguioiCA8IHN1bmFkb2tlaVwgOwor5YaF6YeO5a6J5omTIDwgbmFpeWFhbmRhXCA7CivooYDpgZTno6ggPCBjaGlkYXJ1bWFcIDsKK+mkium2j+WgtCA8IHlvdWtlaWpvdVwgOwor6YCy55m6IDwgc2hpbnBhdHN1XCA7CivohLHotbDlhbUgPCBkYXNzb3VoZWlcIDsKK+iMtuiiiyA8IGNoYWJ1a3Vyb1wgOwor6I2Y5ZyS5Yi2IDwgc2hvdWVuc2VpXCA7CivliJ3nqbogPCBoYXRzdXpvcmFcIDsKK+WJjeWNiuaIpiA8IHplbnBhbnNlblwgOwor6KiT6KmB5a2mIDwga3Vua29nYWt1XCA7Civou4rkupXmiLggPCBrdXJ1bWFpZG9cIDsKK+WkluWLmeecgSA8IGdhaW11c2hvdVwgOwor5paw5pmC5LujIDwgc2hpbmppZGFpXCA7CivmuInlpJbpg6ggPCBzaG91Z2FpYnVcIDsKK+aoqumBkyA8IHlva29taWNoaVwgOwor5oSf5YWJ57SZIDwga2Fua291c2hpXCA7Civmkq7lvbHmqZ8gPCBzYXRzdWVpa2lcIDsKK+S4gOeUn+a2ryA8IGlzc2hvdWdhaVwgOwor5rC05rqQ5ZywIDwgc3VpZ2VuY2hpXCA7CivmlbTmtYHlmaggPCBzZWlyeXV1a2lcIDsKK+W5s+epj+eEoeS6iyA8IGhlaW9uYnVqaVwgOwor6JC95pytIDwgcmFrdXNhdHN1XCA7CivliK7nm64gPCBrYXRzdW1va3VcIDsKK+eZvemFkiA8IHNoaXJvemFrZVwgOwor6YqA6KGM55WMIDwgZ2lua291a2FpXCA7Civnj77kvY/miYAgPCBnZW5qdXVzaG9cIDsKK+WLmOaJgCA8IGthbmRva29yb1wgOwor5YmN5Y+j5LiKIDwgbWFla291am91XCA7CivlnLDlr77nqbogPCBjaGl0YWlrdXVcIDsKK+i/veeqgSA8IHRzdWl0b3RzdVwgOwor56ys5LiA6ZuGIDwgZGFpaXNzaHV1XCA7CivlvI/mnI0gPCBzaGlraWZ1a3VcIDsKK+Wkqeeah+WutiA8IHRlbicnbm91a2VcIDsKK+WNlOWKmyA8IGt5b3VyeW9rdVwgOwor57Wm5rK56Ii5IDwga3l1dXl1c2VuXCA7Civku6Pmm7jkurogPCBkYWlzaG9uaW5cIDsKK+WJteWni+iAhSA8IHNvdXNoaXNoYVwgOwor5L6h5qC85bivIDwga2FrYWt1dGFpXCA7CivloLTmiYDmn4QgPCBiYXNob2dhcmFcIDsKK+S/oeWPt+aJgCA8IHNoaW5nb3Vqb1wgOwor5piO5piO5b6M5pelIDwgc2hpYXNhdHRlXCA7Civnn7PmjIEgPCBpc2hpbW9jaGlcIDsKK+aCquW+queSsCA8IGFrdWp1bmthblwgOwor6JC95pelIDwgcmFrdWppdHN1XCA7CivkuIDmsJflkbXmiJAgPCBpa2tpa2FzZWlcIDsKK+Wun+mok+WApCA8IGppa2tlbmNoaVwgOwor6YC454mpIDwgaWNoaW1vdHN1XCA7CivkuI3poqjmtYEgPCBidWZ1dXJ5dXVcIDsKK+Wuo+S8neWToSA8IHNlbmRlbicnaW5cIDsKK+mZpOmbu+mHnSA8IGpvZGVuYmFyaVwgOwor6KGb55Sf5a2mIDwgZWlzZWlnYWt1XCA7Civnm7TohbggPCBjaG9rdWNob3VcIDsKK+atpuWZqOiyuOS4jiA8IGJ1a2l0YWl5b1wgOwor55m66KaL6ICFIDwgaGFra2Vuc2hhXCA7Civms5XnjovluoEgPCBob3VvdWNob3VcIDsKK+attOaXpSA8IHJla2lqaXRzdVwgOwor5LiA55Wq5omLIDwgaWNoaWJhbnRlXCA7CivkuIDlpKvlpJrlprsgPCBpcHB1dGFzYWlcIDsKK+mZkOeVjOeCuSA8IGdlbmthaXRlblwgOwor5p2/55uu57SZIDwgaXRhbWVnYW1pXCA7CivmhIHlmIbloLQgPCBzaHV1dGFuYmFcIDsKK+mAsueJqSA8IHNoaW5tb3RzdVwgOwor6Iqx55u45pKyIDwgaGFuYXp1bW91XCA7Civmra/np5HlraYgPCBzaGlrYWdha3VcIDsKK+S7leS6i+edgCA8IHNoaWdvdG9naVwgOwor5YWJ5paH56S+IDwga291YnVuc2hhXCA7Civpq5jnh6XlnLAgPCBrb3Vzb3VjaGlcIDsKK+i+suWcsOazlSA8IG5vdWNoaWhvdVwgOwor6JGb5qC55rmvIDwga2Fra29udG91XCA7Civlh7rnq4sgPCBzaHV0dGF0c3VcIDsKK+ecn+ethiA8IHNoaW5waXRzdVwgOwor5q2j5pyIIDwgc2hvdWdhdHN1XCA7Civlh53nuK4gPCBneW91c2h1a3VcIDsKK+WFiembu+euoSA8IGtvdWRlbmthblwgOwor6Lqr5YiG5p+EIDwgbWlidW5nYXJhXCA7CivoprPopqfliLggPCBrYW5yYW5rZW5cIDsKK+emgeWItuWTgSA8IGtpbnNlaWhpblwgOwor552A55uuIDwgY2hha3Vtb2t1XCA7CivlvZPnsaTogIUgPCB0b3VzZW5zaGFcIDsKK+mAsuWMluirliA8IHNoaW5rYXJvblwgOwor5YaN5qSc6KiOIDwgc2Fpa2VudG91XCA7Civlha3orZggPCByb2t1c2hpa2lcIDsKK+WNiuWkj+eUnyA8IGhhbmdlc2hvdVwgOwor5b6h6aOv5pmCIDwgZ29oYW5kb2tpXCA7CivmhJvlvJ/lrZAgPCBtYW5hZGVzaGlcIDsKK+aJi+W8leabuCA8IHRlYmlraXNob1wgOwor5o+u55m65rK5IDwga2loYXRzdXl1XCA7Civnv7DmnpfpmaIgPCBrYW5yaW4nJ2luXCA7CivmlbTlkIjmgKcgPCBzZWlnb3VzZWlcIDsKK+aWmeeQhueVqiA8IHJ5b3VyaWJhblwgOwor5Y2B5LqM5a6uIDwganV1bmlreXV1XCA7CivnlJ/nlKPosqEgPCBzZWlzYW56YWlcIDsKK+S4gOS7o+iomCA8IGljaGlkYWlraVwgOwor5YWD5aeL56WtIDwgZ2Vuc2hpc2FpXCA7CivkuqHlkb3ogIUgPCBib3VtZWlzaGFcIDsKK+acieeojuWTgSA8IHl1dXplaWhpblwgOwor55y855a+IDwgZ2Fuc2hpdHN1XCA7CivlpKfkvb/ppKggPCB0YWlzaGlrYW5cIDsKK+mZkOWumuipniA8IGdlbnRlaXNoaVwgOwor5q2M5p6VIDwgdXRhbWFrdXJhXCA7CivvvLjnt5ogPCBla2t1c3VzZW5cIDsKK+eEoemnhOmjryA8IG11ZGFtZXNoaVwgOwor57eP5rG6566XIDwgc291a2Vzc2FuXCA7CivmrbTlj7LlrrYgPCByZWtpc2hpa2FcIDsKK+a1t+awtOW4vSA8IGthaXN1aWJvdVwgOwor5o6n6Zmk6aGNIDwga291am9nYWt1XCA7Civnn6XmgokgPCBjaGlzaGl0c3VcIDsKK+WutuaUv+WtpiA8IGthc2VpZ2FrdVwgOwor5YaF5byf5a2QIDwgdWNoaWRlc2hpXCA7CivlpJrlv5nkuK0gPCB0YWJvdWNodXVcIDsKK+WIpeeJqSA8IGJldHN1bW9ub1wgOwor5Y6f5a+45aSnIDwgZ2Vuc3VuZGFpXCA7Civnm7TntZAgPCBjaG9ra2V0c3VcIDsKK+apn+iDveeahCA8IGtpbm91dGVraVwgOwor5aWz5oCn55qEIDwgam9zZWl0ZWtpXCA7Civmu5Hnv5TmqZ8gPCBrYXNzaG91a2lcIDsKK+W5tOWni+eKtiA8IG5lbnNoaWpvdVwgOwor5a2Q54Wp5oKpIDwga29ib24nJ25vdVwgOwor5oyH5Y2X6LuKIDwgc2hpbmFuc2hhXCA7Civlh53nq4sgPCBneW91cml0c3VcIDsKK+W4uOevgCA8IHRva29idXNoaVwgOwor5YaZ55Sf5paHIDwgc2hhc2VpYnVuXCA7CivmqJnorZggPCBoeW91c2hpa2lcIDsKK+WGhemBiuaYnyA8IG5haXl1dXNlaVwgOwor5b6M5Ye6IDwga291c2h1dHN1XCA7CivliJ3niakgPCBoYXRzdW1vbm9cIDsKK+iLpuihjOiAhSA8IGt1Z3lvdXNoYVwgOwor572q5oKq5oSfIDwgemFpYWt1a2FuXCA7CivnhKHnl4fnirYgPCBtdXNob3Vqb3VcIDsKK+iKsemBkyA8IGhhbmFtaWNoaVwgOwor6KeS56CC57OWIDwga2FrdXphdG91XCA7CivnlJ/ov5TkuosgPCBuYW1haGVuamlcIDsKK+WHuueZuiA8IHNodXBwYXRzdVwgOwor5Y2Y57SU5oCnIDwgdGFuanVuc2VpXCA7CivljJflj6MgPCBraXRhZ3VjaGlcIDsKK+Wkp+WDp+atoyA8IGRhaXNvdWpvdVwgOwor5bm0546JIDwgdG9zaGlkYW1hXCA7CivkuIDouqvkuIogPCBpc3NoaW5qb3VcIDsKK+S/rumBk+WwvCA8IHNodXVkb3VuaVwgOwor6LuN5pS+6YCBIDwgZ3VuaG91c291XCA7CivnmbvoqJjmlpkgPCB0b3VraXJ5b3VcIDsKK+iLseWbveS6uiA8IGVpa29rdWppblwgOwor5YG96Ki86ICFIDwgZ2lzaG91c2hhXCA7CivpgZPot6/mqYsgPCBkb3Vyb2t5b3VcIDsKK+apmeiJsiA8IGRhaWRhaWlyb1wgOwor55+p5beuIDwga2FuZXphc2hpXCA7CivljYPkuIcgPCBjaGl5b3JvenVcIDsKK+aSruW9seaJgCA8IHNhdHN1ZWlqb1wgOwor5b2i5oWL6KuWIDwga2VpdGFpcm9uXCA7Civlgb3oqLznvaogPCBnaXNob3V6YWlcIDsKK+mmluisgOiAhSA8IHNodWJvdXNoYVwgOwor6KSH5Y+35YyWIDwgZnVrdWdvdWthXCA7CivlvJPlvKYgPCB5dW1pZHp1cnVcIDsKK+Wni+ellumzpSA8IHNoaXNvY2hvdVwgOwor54m56Kix5rOVIDwgdG9ra3lvaG91XCA7CivppIrmr5vliaQgPCB5b3Vtb3V6YWlcIDsKK+a1ruawl+iAhSA8IHV3YWtpbW9ub1wgOwor55uy56m0IDwgbWVrdXJhYW5hXCA7CivljbHmqZ/nqoHnoLQgPCBraWtpdG9wcGFcIDsKK+aal+m7kuihlyA8IGFua29rdWdhaVwgOwor5aSn5YWD5bilIDwgZGFpZ2Vuc3VpXCA7CivlhY3oqLHnirYgPCBtZW5reW9qb3VcIDsKK+iNieeukiA8IGt1c2Fib3VraVwgOwor5Ye654++IDwgc2h1dHN1Z2VuXCA7CivlpJzlhYnomasgPCB5YWtvdWNodXVcIDsKK+Wlh+WkqeeDiCA8IGtpdGVyZXRzdVwgOwor5YyZ5Yqg5ribIDwgc2FqaWthZ2VuXCA7Civlh53nnYAgPCBneW91Y2hha3VcIDsKK+WKo+W8sSA8IHJldHN1amFrdVwgOwor5oqV5omL5p2/IDwgdG91c2h1YmFuXCA7CivlvpPmpa3lk6EgPCBqdXVneW91aW5cIDsKK+aJueipleecvCA8IGhpaHlvdWdhblwgOwor5L+u6YGT5aWzIDwgc2h1dWRvdWpvXCA7CivlnKfnl5vngrkgPCBhdHRzdXV0ZW5cIDsKK+a1t+WFtemaiiA8IGthaWhlaXRhaVwgOwor6ICD6Kqy6KGoIDwga291a2FoeW91XCA7Civpuqboir3ns5YgPCBiYWt1Z2F0b3VcIDsKK+ecn+eOhyA8IHNoaW5zb3RzdVwgOwor6Ium6JmrIDwgbmlnYW11c2hpXCA7CivmqYvohJogPCBreW91a3lha3VcIDsKK+W3puiFlSA8IGhpZGFyaXVkZVwgOwor5paH6Iq45qyEIDwgYnVuZ2VpcmFuXCA7CivlpJznm7Lnl4cgPCB5YW1vdXNob3VcIDsKK+aKleeov+iAhSA8IHRvdWtvdXNoYVwgOwor54Sh5beu5YilIDwgbXVzYWJldHN1XCA7CivnqbrmjLrpmoogPCBrdXV0ZWl0YWlcIDsKK+W+ruiqv+aVtCA8IGJpY2hvdXNlaVwgOwor5Y+j5b+g5a6fIDwga3VjaGltYW1lXCA7CivoirHmqKHmp5ggPCBoYW5hbW95b3VcIDsKK+acieWQjeagoSA8IHl1dW1laWtvdVwgOwor54m56Kix5qipIDwgdG9ra3lva2VuXCA7Civpq5jpvL4gPCB0YWthaWJpa2lcIDsKK+ani+aIkOWtkCA8IGtvdXNlaXNoaVwgOwor55yf54mpIDwgc2hpbmJ1dHN1XCA7CivlvJTlrqIgPCBjaG91a3lha3VcIDsKK+iri+mhmOabuCA8IHNlaWdhbnNob1wgOwor5ouh5aOw5qmfIDwga2FrdXNlaWtpXCA7CivljLvnmYLmqZ/lmaggPCBpcnlvdWtpa2lcIDsKK+eZvuiWrCA8IGh5YWt1eWFrdVwgOwor6KiO6KuW5LyaIDwgdG91cm9ua2FpXCA7CivojLbnrZIgPCBjaGFkenV0c3VcIDsKK+W8n+WomCA8IG90b211c3VtZVwgOwor55yB55WlIDwgc2hvdXJ5YWt1XCA7Civmi5jnva7miYAgPCBrb3VjaGlzaG9cIDsKK+S6pOa4ieWToSA8IGtvdXNob3VpblwgOwor5Yq05b255aC0IDwgcm91ZWtpam91XCA7CivplbflsL7pto8gPCBuYWdhb2RvcmlcIDsKK+awtOmKgOeBryA8IHN1aWdpbnRvdVwgOwor5Li75oiQ5YiGIDwgc2h1c2VpYnVuXCA7Civkv67ovp7ms5UgPCBzaHV1amlob3VcIDsKK+WNk+ipseS8miA8IHRha3V3YWthaVwgOwor6YCG5rWBIDwgZ3lha3VyeXV1XCA7CivmrYzlv4MgPCB1dGFnb2tvcm9cIDsKK+aJi+W3peiKuCA8IHNodWtvdWdlaVwgOwor5paZ55CG5rOVIDwgcnlvdXJpaG91XCA7Civmib/oqo3lm7MgPCBzaG91bmluenVcIDsKK+acrOWztuS6uiA8IGhvbnRvdWppblwgOwor5oGS5bi45oCnIDwga291am91c2VpXCA7CivpgLHmnKsgPCBzaHV1bWF0c3VcIDsKK+edgOawtyA8IGNoYWt1aHlvdVwgOwor55m96I+KIDwgc2hpcmFnaWt1XCA7CivlubTms6IgPCB0b3NoaW5hbWlcIDsKK+e1hOe5lOWMliA8IHNvc2hpa2lrYVwgOwor5b6h5paw6YCgIDwgZ29zaGluem91XCA7CivmraPlrqQgPCBzZWlzaGl0c3VcIDsKK+S5vumbu+axoCA8IGthbmRlbmNoaVwgOwor6Ieq5L2c6L6yIDwgamlzYWt1bm91XCA7Civoj4rmnIggPCBraWt1ZHp1a2lcIDsKK+WItuepuuaoqSA8IHNlaWt1dWtlblwgOwor6Iqx5qSw6I+cIDwgaGFuYXlhc2FpXCA7Civnq7bmioDloLQgPCBreW91Z2lqb3VcIDsKK+aXp+WItuW6piA8IGt5dXVzZWlkb1wgOwor5YWx5ZKM5pS/IDwga3lvdXdhc2VpXCA7CivlpKnkuIvnhKHmr5QgPCB0ZW5rYW11aGlcIDsKK+WwiueOi+WutiA8IHNvbicnbm91a2FcIDsKK+W5tOavjiA8IHRvc2hpZ290b1wgOwor6YCx5pelIDwgc2h1dWppdHN1XCA7CivpgYXpgLLlhZAgPCBjaGlzaGluamlcIDsKK+iKseihlyA8IGhhbmFtYWNoaVwgOwor5bed57iBIDwga2F3YWJ1Y2hpXCA7CivlvaLku6MgPCBrYXRhc2hpcm9cIDsKK+aghOmkiuWtpiA8IGVpeW91Z2FrdVwgOwor5o6p6K236YOo6ZqKIDwgZW5nb2J1dGFpXCA7Civnmb3oibIgPCBoYWt1c2hva3VcIDsKK+S4jeS7i+WFpSA8IGZ1a2Fpbnl1dVwgOwor5oqV5omL5oimIDwgdG91c2h1c2VuXCA7CivniqzlvLXlrZAgPCBpbnVoYXJpa29cIDsKK+mAgembu+e3miA8IHNvdWRlbnNlblwgOwor5Y216buE5ZqiIDwgcmFuJydvdW5vdVwgOwor5Yil5qOfIDwgYmV0c3VtdW5lXCA7CivmsJflnKfoqIggPCBraWF0c3VrZWlcIDsKK+mnhuiZq+WJpCA8IGt1Y2h1dXphaVwgOwor54qs6L+954mpIDwgaW51b3Vtb25vXCA7CivkuInmlpHptokgPCBtaWZ1dXp1cmFcIDsKK+WGiueriyA8IHNha3VyaXRzdVwgOwor6aas6bm/6YeO6YOOIDwgYmFrYXlhcm91XCA7Civls7bpoqggPCBzaGltYWthemVcIDsKK+aLjeWtkOacqCA8IGh5b3VzaGlnaVwgOwor5aSa5q+b5L2cIDwgdGFtb3VzYWt1XCA7CivmiYvojbfniakgPCB0ZW5pbW90c3VcIDsKK+W8seWNkiA8IGpha3Vzb3RzdVwgOwor5Yeg5biz6Z2iIDwga2ljaG91bWVuXCA7CivmqKHnr4TnmoQgPCBtb2hhbnRla2lcIDsKK+WDlemBlCA8IGJva3V0YWNoaVwgOwor6aut6Z2iIDwgaGlnZWR6dXJhXCA7CivnrYboqJjluLMgPCBoaWtraWNob3VcIDsKK+W8teWKmyA8IGNob3VyeW9rdVwgOwor6Luf6LOqIDwgbmFuc2hpdHN1XCA7Civplbfot53pm6IgPCBjaG91a3lvcmlcIDsKK+e+juWwkeW5tCA8IGJpc2hvdW5lblwgOwor5Lm+54el5p2QIDwga2Fuc291emFpXCA7CivnlJ/nlKPogIUgPCBzZWlzYW5zaGFcIDsKK+S4jeacjeW+kyA8IGZ1ZnVrdWp1dVwgOwor5pys5qC85rS+IDwgaG9ua2FrdWhhXCA7Civoj7HlvaIgPCBoaXNoaWdhdGFcIDsKK+WOn+WtkOaIpiA8IGdlbnNoaXNlblwgOwor5LiN5aSJ6YePIDwgZnVoZW5yeW91XCA7CivpoZTpprTmn5MgPCBrYW9uYWppbWlcIDsKK+mAsuaNlyA8IHNoaW5jaG9rdVwgOwor6JC96JGJ5qi5IDwgcmFrdXlvdWp1XCA7CivkuInpoK3nrYsgPCBzYW50b3VraW5cIDsKK+WDu+iqrCA8IGhla2lzZXRzdVwgOwor5Y+j6Kqe6Iux6KqeIDwga291Z29laWdvXCA7Civku6PoqIDogIUgPCBkYWlnZW5zaGFcIDsKK+iMtueVkSA8IGNoYWJhdGFrZVwgOwor5o+u55m65bqmIDwga2loYXRzdWRvXCA7CivlpKfoh6rnhLYgPCBkYWlzaGl6ZW5cIDsKK+S4jeaZguedgCA8IGZ1amljaGFrdVwgOwor57Wx5Yi257eaIDwgdG91c2Vpc2VuXCA7CivmqKrntrEgPCB5b2tvZHp1bmFcIDsKK+WFjuiAsyA8IHVzYWdpbWltaVwgOwor5YWJ6Zu75rGgIDwga291ZGVuY2hpXCA7CivoirHkvpvppIogPCBoYW5ha3V5b3VcIDsKK+mbo+WVj+mhjCA8IG5hbm1vbmRhaVwgOwor57aZ6Zu76Y21IDwga2VpZGVua2VuXCA7CivmqZ/morDlraYgPCBraWthaWdha3VcIDsKK+WztumZsCA8IHNoaW1ha2FnZVwgOwor5amm5Lq655eFIDwgZnVqaW5ieW91XCA7CivlkIzlpb3ogIUgPCBkb3Vrb3VzaGFcIDsKK+WBveWmiuWooCA8IGdpbmluc2hpblwgOwor55+i5Y2wIDwgeWFqaXJ1c2hpXCA7CivnnYDmnI0gPCBjaGFrdWZ1a3VcIDsKK+eBq+e4hOmKgyA8IGhpbmF3YWp1dVwgOwor5bu65Z2qIDwgdGF0ZXRzdWJvXCA7Civlia/lsLogPCBmdWt1c2hha3VcIDsKK+WIneaYpSA8IGhhdHN1aGFydVwgOwor5YmN5YuY5a6aIDwgbWFla2Fuam91XCA7Civml6LnmbrooaggPCBraWhhcHB5b3VcIDsKK+WFseeriyA8IGt5b3VyaXRzdVwgOwor6Iqx6I+xIDwgaGFuYWJpc2hpXCA7CivnlLLnirbohbogPCBrb3Vqb3VzZW5cIDsKK+eoveWPpOS6iyA8IGtlaWtvZ290b1wgOwor5oiQ5paH5rOVIDwgc2VpYnVuaG91XCA7Civlu7blnaogPCBub2JldHN1Ym9cIDsKK+imj+agvOWTgSA8IGtpa2FrdWhpblwgOwor5LuV5LqL5pelIDwgc2hpZ290b2JpXCA7CivliIbkuI7nqI4gPCBidW4nJ3lvemVpXCA7Civnmb3nhKHlnqIgPCBzaGlyb211a3VcIDsKK+S6jOetieizniA8IG5pdG91c2hvdVwgOwor5qW16YePIDwga3lva3VyeW91XCA7CivlrprkvJHml6UgPCB0ZWlreXV1YmlcIDsKK+iJr+itmCA8IHJ5b3VzaGlraVwgOwor5byf5YiGIDwgb3RvdXRvYnVuXCA7Civnmb3nga/msrkgPCBoYWt1dG91eXVcIDsKK+iJsuiqvyA8IHNoaWtpY2hvdVwgOwor6YmE54Gr5ZGz5ZmMIDwgdGVra2FtaXNvXCA7CivpgYvou6LluK0gPCB1bnRlbnNla2lcIDsKK+WFrOawkemkqCA8IGtvdW1pbmthblwgOwor56+k6L6y5a62IDwgdG9rdW5vdWthXCA7CivojInojonoirEgPCBtYXRzdXJpa2FcIDsKK+S6uuW3pea4ryA8IGppbmtvdWtvdVwgOwor6bO25Y+jIDwgdG9iaWd1Y2hpXCA7Civpq5jpmbXlnJ8gPCBrb3VyeW91ZG9cIDsKK+aEn+WFieadvyA8IGthbmtvdWJhblwgOwor5YWr56aPIDwgaGFjaGlmdWt1XCA7CivoibLoppogPCBzaGlraWtha3VcIDsKK+S4ieS5l+aguSA8IHNhbmpvdWtvblwgOwor55+z5LuPIDwgc2VraWJ1dHN1XCA7CivnlLfpoqjlkYIgPCBvdG9rb2J1cm9cIDsKK+Wls+mDjuiKsSA8IG9taW5hZXNoaVwgOwor5rue57SN6ICFIDwgdGFpbm91c2hhXCA7CivmrbPlh7ogPCBzYWlzaHV0c3VcIDsKK+S8nemBk+W4qyA8IGRlbmRvdXNoaVwgOwor5b+c5Y+s5YW1IDwgb3VzaG91aGVpXCA7CivopIfljYHlrZcgPCBmdWt1anV1amlcIDsKK+ebtOa1gSA8IGNob2t1cnl1dVwgOwor6Zi/5byl6ZmA57WMIDwgYW1pZGFreW91XCA7Civoio3olqwgPCBzaGFrdXlha3VcIDsKK+WGjeani+aIkCA8IHNhaWtvdXNlaVwgOwor5pyJ5q616ICFIDwgeXV1ZGFuc2hhXCA7CivljZjooaPniakgPCBoaXRvZW1vbm9cIDsKK+imj+agvOWIpCA8IGtpa2FrdWJhblwgOwor56ys5LiJ6ICFIDwgZGFpc2Fuc2hhXCA7Civlh7rmnK0gPCBzaHVzc2F0c3VcIDsKK+WJsuWilyA8IHdhcmltYXNoaVwgOwor5L2T5pON5aC0IDwgdGFpc291am91XCA7CivkuLvmtYHmtL4gPCBzaHVyeXV1aGFcIDsKK+iKneiNiSA8IHNoaWJha3VzYVwgOwor5bqD5aCx5a6YIDwga291aG91a2FuXCA7CivnnJ/mnbEgPCBtYWhpZ2FzaGlcIDsKK+S6uuW3peaxoCA8IGppbmtvdWlrZVwgOwor5Y+j6JOL5Z6CIDwga291Z2Fpc3VpXCA7Civph5HliZvnoIIgPCBrb25nb3VzaGFcIDsKK+WNgeS4ieWknCA8IGp1dXNhbicneWFcIDsKK+Wkp+WtpumZoiA8IGRhaWdha3VpblwgOwor5LmX55So6LuKIDwgam91eW91c2hhXCA7CivkuI3mmI7norogPCBmdW1laWtha3VcIDsKK+mYv+W8pemZgOexpCA8IGFtaWRha3VqaVwgOwor6JyD5rCX5qW8IDwgc2hpbmtpcm91XCA7CivopIfokYnmqZ8gPCBmdWt1eW91a2lcIDsKK+S6jOetieimqiA8IG5pdG91c2hpblwgOwor6I2J56u26aasIDwga3VzYWtlaWJhXCA7CivmqLjnm7QgPCBib2t1Y2hva3VcIDsKK+maoOWFg+ixhiA8IGluZ2VubWFtZVwgOwor5bmV5pyrIDwgYmFrdW1hdHN1XCA7CivntK/kuZfmoLkgPCBydWlqb3Vrb25cIDsKK+akjumqqCA8IHRzdWlrb3RzdVwgOwor5p2x5rSL5Lq6IDwgdG91eW91amluXCA7Civnq7bmioDkvJogPCBreW91Z2lrYWlcIDsKK+WLp+iqmOWToSA8IGthbicneXV1aW5cIDsKK+iAgeWphuW/gyA8IHJvdWJhc2hpblwgOwor5YK15qip6ICFIDwgc2Fpa2Vuc2hhXCA7CivnrKzkuIDnvqkgPCBkYWlpY2hpZ2lcIDsKK+ato+WHuiA8IHNlaXNodXRzdVwgOwor5Zyn5YCS55qEIDwgYXR0b3V0ZWtpXCA7CivkuI3mmI7nnq0gPCBmdW1laXJ5b3VcIDsKK+aUvumbu+euoSA8IGhvdWRlbmthblwgOwor5Ye25pelIDwga3lvdWppdHN1XCA7CivliY3ouqvpoIMgPCBtYWVtaWdvcm9cIDsKK+WwkeaVsOa0viA8IHNob3VzdXVoYVwgOwor54m55o2c6YOoIDwgdG9rdXNvdWJ1XCA7Civoqr/ppqzluKsgPCBjaG91YmFzaGlcIDsKK+mBiuWksSA8IHl1dXNoaXRzdVwgOwor55CG6KuW55qEIDwgcmlyb250ZWtpXCA7Civpo7LmsLTph48gPCBpbnN1aXJ5b3VcIDsKK+iqv+eQhuazlSA8IGNob3VyaWhvdVwgOwor57Sv54qv6ICFIDwgcnVpaGFuc2hhXCA7Civou4ronaYgPCBrdXJ1bWFlYmlcIDsKK+WlvemDveWQiCA8IGtvdXRzdWdvdVwgOwor5a6J5YWo5Z+fIDwgYW56ZW4nJ2lraVwgOwor6Jma5qCE5b+DIDwga3lvZWlzaGluXCA7CivlrprmnJ/nmoQgPCB0ZWlraXRla2lcIDsKK+WIneW9uSA8IGhhdHN1eWFrdVwgOwor6KqN5Y+v6Ki8IDwgbmlua2FzaG91XCA7Civkv6Hlv4PlrrYgPCBzaGluamlua2FcIDsKK+W8t+Wnpue9qiA8IGdvdWthbnphaVwgOwor5pWZ5o6I5LyaIDwga3lvdWp1a2FpXCA7CivpgKPlkIjou40gPCByZW5nb3VndW5cIDsKK+mBuOWHuiA8IHNlbnNodXRzdVwgOwor6L+r5oyBIDwgc2VyaW1vY2hpXCA7Civph43lkIjkvZMgPCBqdXVnb3V0YWlcIDsKK+WKoOiZkOaEmyA8IGthZ3lha3VhaVwgOwor5rKz5bed5pW3IDwga2FzZW5qaWtpXCA7Civou43pmorokawgPCBndW50YWlzb3VcIDsKK+aVsOW5tOmWkyA8IHN1dW5lbmthblwgOwor6Lu95rCX55CDIDwga2Vpa2lreXV1XCA7CivpnZLmta7ojYkgPCBhb3VraWt1c2FcIDsKK+WtmOWcqOaEj+e+qSA8IHNvbnphaWlnaVwgOwor5a6J5qW95q27IDwgYW5yYWt1c2hpXCA7Civph5HlubPns5YgPCBrb25wZWl0b3VcIDsKK+WumuS9j+WcsCA8IHRlaWp1dWNoaVwgOwor6YeR6Lyq6ZqbIDwga29ucmluemFpXCA7CivmlpnnkIblupcgPCByeW91cml0ZW5cIDsKK+iyv+aYk+miqCA8IGJvdWVraWZ1dVwgOwor5Lq65bel5p6XIDwgamlua291cmluXCA7CivmtbfpgYvmpa0gPCBrYWl1bmd5b3VcIDsKK+iho+mjn+S9jyA8IGlzaG9rdWp1dVwgOwor552A5bqKIDwgY2hha3VzaG91XCA7Civlr53lhbfpoZ4gPCBzaGluZ3VydWlcIDsKK+W5tOW8sSA8IHRvc2hpeW93YVwgOwor5bGx6baJIDwgeWFtYXV6dXJhXCA7CivmnbHljZfmnbEgPCB0b3VuYW50b3VcIDsKK++8t+adryA8IGRhYnVydWhhaVwgOwor55Sy5p2/5ZOhIDwga291aGFuJydpblwgOwor54++5Luj5Y+yIDwgZ2VuZGFpc2hpXCA7CivmoLnoj5zpoZ4gPCBrb25zYWlydWlcIDsKK+edgOW4rSA8IGNoYWt1c2VraVwgOwor5a6a5L6L5LyaIDwgdGVpcmVpa2FpXCA7Civmsbrpl5jnirYgPCBrZXR0b3Vqb3VcIDsKK+ialeWNtee0mSA8IHNhbnJhbnNoaVwgOwor5aSW6JKZ5Y+kIDwgc290b21vdWtvXCA7CivovrvmnK0gPCB0c3VqaWZ1ZGFcIDsKK+i7iuS4oeWMliA8IHNoYXJ5b3VrYVwgOwor6YGp5YiHIDwgdGVraXNldHN1XCA7Civlj4jlvpPlhYTlvJ8gPCBtYXRhaXRva29cIDsKK+eZuueXhSA8IGhhdHN1YnlvdVwgOwor5oSf5YWJ5oCnIDwga2Fua291c2VpXCA7CivnrKzkuIDnq6AgPCBkYWlpc3Nob3VcIDsKK+eXheitmCA8IGJ5b3VzaGlraVwgOwor5Ym15Ye6IDwgc291c2h1dHN1XCA7CivliKXlrqQgPCBiZXNzaGl0c3VcIDsKK+iHqOeVjOeCuSA8IHJpbmthaXRlblwgOwor5ZWG5aOy5rCXIDwgc2hvdWJhaWdpXCA7Civlm73mhrLms5UgPCBrb2trZW5wb3VcIDsKK+S4oemZm+S4iyA8IHJ5b3VoZWlrYVwgOwor6ZmQ5a6a54mIIDwgZ2VudGVpYmFuXCA7CivliY3ou4rovKogPCB6ZW5zaGFyaW5cIDsKK+W5tOW1qSA8IHRvc2hpa2FzYVwgOwor57695q+b5biD5ZujIDwgdW1vdWZ1dG9uXCA7Civpm4TniZvns54gPCBvdXNoaWt1c29cIDsKK+S4jeWmiueXhyA8IGZ1bmluc2hvdVwgOwor5aSJ5rWB5ZmoIDwgaGVucnl1dWtpXCA7CivliJ3lrasgPCBoYXRzdW1hZ29cIDsKK+WHuuW+oSA8IHNodXRzdWd5b1wgOwor6Yed5L6b6aSKIDwgaGFyaWt1eW91XCA7Civlvq7oppbnmoQgPCBiaXNoaXRla2lcIDsKK+ebo+imluWhlCA8IGthbnNoaXRvdVwgOwor55m9546JIDwgc2hpcmF0YW1hXCA7CivljaDmi6DlnLAgPCBzZW5reW9jaGlcIDsKK+aMh+WQkeaApyA8IHNoaWtvdXNlaVwgOwor5LiA5Lq655SoIDwgaGl0b3JpeW91XCA7Civoqr/ppqzloLQgPCBjaG91YmFqb3VcIDsKK+WGjei8uOWFpSA8IHNhaXl1bnl1dVwgOwor57a/5rSl6KaLIDwgd2F0YXRzdW1pXCA7CivlhKroia/lhZAgPCB5dXVyeW91amlcIDsKK+a1ruWLleelqCA8IGZ1ZG91aHlvdVwgOwor5YWI5aSp5oCnIDwgc2VudGVuc2VpXCA7CivlvaLmiJDlsaQgPCBrZWlzZWlzb3VcIDsKK+ebtOaSgyA8IGNob2t1Z2VraVwgOwor5bir56+E5LujIDwgc2hpaGFuZGFpXCA7CivlubTlr4QgPCB0b3NoaXlvcmlcIDsKK+S8keatouespiA8IGt5dXVzaGlmdVwgOwor5qaO6Iy4IDwgZW5va2l0YWtlXCA7CivkuI3pnaLnm64gPCBmdW1lbm1va3VcIDsKK+iIueiZqyA8IGZ1bmFtdXNoaVwgOwor5bCP57Og6ZuoIDwga29udWthYW1lXCA7CivmnKzkuojnrpcgPCBob24nJ3lvc2FuXCA7CivmjIfljZfnlaogPCBzaGluYW5iYW5cIDsKK+iHqueUsealrSA8IGppeXV1Z3lvdVwgOwor56aB6Ly45ZOBIDwga2luJyd5dWhpblwgOwor5Y+45Lya6ICFIDwgc2hpa2Fpc2hhXCA7CivmipXnqL/mrIQgPCB0b3Vrb3VyYW5cIDsKK+eZveeGsSA8IGhha3VuZXRzdVwgOwor5qW16JaEIDwga3lva3VoYWt1XCA7Civnmb3nhoogPCBzaGlyb2t1bWFcIDsKK+aMv+ipseeahCA8IHNvdXdhdGVraVwgOwor5Ymy5LuYIDwgd2FyaXRzdWtlXCA7CivliJ3lpKIgPCBoYXRzdXl1bWVcIDsKK+mBk+S4reiomCA8IGRvdWNodXVraVwgOwor5Y2K5aGp5rC0IDwgaGFuJydlbnN1aVwgOwor5o6S5LuW55qEIDwgaGFpdGF0ZWtpXCA7CivlpKfohbjngo4gPCBkYWljaG91ZW5cIDsKK+WIhuWupCA8IGJ1bnNoaXRzdVwgOwor5bC85rOV5birIDwgYW1haG91c2hpXCA7Civlrprnva7ntrIgPCB0ZWljaGlhbWlcIDsKK+W6tuWHuiA8IHNob3NodXRzdVwgOwor5YWl5ruFIDwgbnl1dW1ldHN1XCA7Civoirjog73nlYwgPCBnZWlub3VrYWlcIDsKK+WNiua/gemfsyA8IGhhbmRha3VvblwgOwor6YWN566h5belIDwgaGFpa2Fua291XCA7CivlibLkuIsgPCB3YXJpc2hpdGFcIDsKK+ePvuS7o+S6uiA8IGdlbmRhaWppblwgOwor6L6y5ryB5rCRIDwgbm91Z3lvbWluXCA7CivluILmnb4gPCBpY2hpbWF0c3VcIDsKK+Wls+aAp+WtpiA8IGpvc2VpZ2FrdVwgOwor5Lm+54el5ZywIDwga2Fuc291Y2hpXCA7CivliIbpoZ7ms5UgPCBidW5ydWlob3VcIDsKK+WIqeW3seS4u+e+qSA8IHJpa29zaHVnaVwgOwor55+z6IaP5YOPIDwgc2Vra291em91XCA7CivlvbHmrabogIUgPCBrYWdlbXVzaGFcIDsKK+a0u+eJiOacrCA8IGthcHBhbmJvblwgOwor5LuV5LqL5aC0IDwgc2hpZ290b2JhXCA7CivlqabkurrmnI0gPCBmdWppbmZ1a3VcIDsKK+WvneW/g+WcsCA8IG5lZ29rb2NoaVwgOwor5YSq55S3IDwgeWFzYW90b2tvXCA7CivntbXlt7vniakgPCBlbWFraW1vbm9cIDsKK+S4jeaWmeewoSA8IGZ1cnlvdWtlblwgOwor5YyW55+z5bGkIDwga2FzZWtpc291XCA7CivmmanppJDkvJogPCBiYW5zYW5rYWlcIDsKK+S7leaUvumhjCA8IHNoaWhvdWRhaVwgOwor5qGI5YaF54q2IDwgYW4nJ25haWpvdVwgOwor5aSa5YWD55qEIDwgdGFnZW50ZWtpXCA7CivliLbmtbfmqKkgPCBzZWlrYWlrZW5cIDsKK+S6pOmFjeeoriA8IGtvdWhhaXNodVwgOwor6L2i5q66IDwgcmVraXNhdHN1XCA7CivlnKjkvY/ogIUgPCB6YWlqdXVzaGFcIDsKK+aIkOeGn+acnyA8IHNlaWp1a3VraVwgOwor55yf5a6fIDwgc2hpbmppdHN1XCA7CivlhbHlkozlhZogPCBreW91d2F0b3VcIDsKK+W5s+aWueaguSA8IGhlaWhvdWtvblwgOwor6Kuc5aCx5ZOhIDwgY2hvdWhvdWluXCA7CivoiIjlpa7liaQgPCBrb3VmdW56YWlcIDsKK+eZvea7nSA8IHNoaXJhdGFraVwgOwor5YWI6KaL6ICFIDwgc2Vua2Vuc2hhXCA7CivoiKrnqbrliLggPCBrb3VrdXVrZW5cIDsKK+mAn+WPoyA8IGhheWFrdWNoaVwgOwor5YWJ6Zu75a2QIDwga291ZGVuc2hpXCA7CivpgLLlhaUgPCBzaGluJydueXV1XCA7CivlhLLniakgPCBtb3VrZW1vbm9cIDsKK+iFsOmrmCA8IGtvc2hpZGFrYVwgOwor5aOy5Zu95aW0IDwgYmFpa29rdWRvXCA7CivnuYHliIbmlbAgPCBoYW5idW5zdXVcIDsKK+aAp+ihjOWLlSA8IHNlaWtvdWRvdVwgOwor6YqA6KGM5Yi4IDwgZ2lua291a2VuXCA7CivmqYvmoYEgPCBoYXNoaWdldGFcIDsKK+S4h+S4h+atsyA8IGJhbmJhbnphaVwgOwor6aqo6LOqIDwga29zc2hpdHN1XCA7CivlgZzoiLnloLQgPCB0ZWlzZW5qb3VcIDsKK+iFsOmqqCA8IGtvc2hpYm9uZVwgOwor5ZiG6aGY5pu4IDwgdGFuZ2Fuc2hvXCA7Civlho3nlJ/nlKMgPCBzYWlzZWlzYW5cIDsKK+WcsOWvvuWcsCA8IGNoaXRhaWNoaVwgOwor5L+u6aO+IDwgc2h1dXNob2t1XCA7CivmlofkvZPoq5YgPCBidW50YWlyb25cIDsKK+iqv+afu+WboyA8IGNob3VzYWRhblwgOwor55m95rWqIDwgc2hpcmFuYW1pXCA7CivljZjooYzmnKwgPCB0YW5rb3Vib25cIDsKK+Wwj+WknOabsiA8IHNheW9reW9rdVwgOwor5Ye65LiW6ZaTIDwgc2h1c3Nla2VuXCA7Civnmb3mtZwgPCBzaGlyYWhhbWFcIDsKK+iJtueoriA8IHRzdXlhZGFuZVwgOwor6YCf5YqbIDwgc29rdXJ5b2t1XCA7CivljZjooYzmm7ggPCB0YW5rb3VzaG9cIDsKK+S4gOaZgumWkyA8IGljaGlqaWthblwgOwor5rip5rOJ6YO3IDwgb25zZW5reW91XCA7CivovrvlupcgPCB0c3VqaW1pc2VcIDsKK+acieWQjeS6uiA8IHl1dW1laWppblwgOwor5b6M55Sy5p2/IDwga291a2FucGFuXCA7CivllrbliKnkuLvnvqkgPCBlaXJpc2h1Z2lcIDsKK+W8seS9k+WMliA8IGpha3V0YWlrYVwgOwor57WM5riI6Z2iIDwga2VpemFpbWVuXCA7Civkv67pqJPpgZMgPCBzaHVnZW5kb3VcIDsKK+iMtuaJgCA8IGNoYWRva29yb1wgOwor5b6A55Sf6ZqbIDwgb3Vqb3VnaXdhXCA7CivluoPlj6MgPCBoaXJva3VjaGlcIDsKK+WwuumqqCA8IHNoYWtrb3RzdVwgOwor5Ye65aGBIDwgc2h1dHN1cnVpXCA7CivmrovlrZjogIUgPCB6YW56b25zaGFcIDsKK+iIquepuuS+vyA8IGtvdWt1dWJpblwgOwor5qC45q2m6KOFIDwga2FrdWJ1c291XCA7Civnm67luocgPCBtYWJpc2FzaGlcIDsKK+eZveawtCA8IHNoaXJvbWl6dVwgOwor6Imy56WeIDwgc2hpa2lzaGluXCA7Civln4volLXph5EgPCBtYWl6b3VraW5cIDsKK+WtpOeri+WMliA8IGtvcml0c3VrYVwgOwor6IGW5a625pePIDwgc2Vpa2F6b2t1XCA7Civms6Xngq3lnLAgPCBkZWl0YW5jaGlcIDsKK+Wklui8quiIuSA8IGdhaXJpbnNlblwgOwor6KSH5Yip5rOVIDwgZnVrdXJpaG91XCA7CivlhaXmpI0gPCBueXV1c2hva3VcIDsKK+iSuOeVmeWZqCA8IGpvdXJ5dXVraVwgOwor6ZGR5a6a5pu4IDwga2FudGVpc2hvXCA7Civoo73msLfmqZ8gPCBzZWloeW91a2lcIDsKK+ebtOWxniA8IGNob2t1em9rdVwgOwor5raI6LK76LKhIDwgc2hvdWhpemFpXCA7CivokZfkvZzlrrYgPCBjaG9zYWt1a2FcIDsKK+W4guiyqeWTgSA8IHNoaWhhbmhpblwgOwor5be76aCt6KiAIDwga2FudG91Z2VuXCA7Civlh6HlpLEgPCBib25zaGl0c3VcIDsKK+iqv+eQhuW4qyA8IGNob3VyaXNoaVwgOwor5YWt5pyIIDwgcm9rdWdhdHN1XCA7CivnnJ/moZHnk5wgPCBtYWt1d2F1cmlcIDsKK+maj+W+k+iAhSA8IHp1aWp1dXNoYVwgOwor5LiA5a+45YWIIDwgaXNzdW5zYWtpXCA7Civmloflrabpg6ggPCBidW5nYWt1YnVcIDsKK+S6iOe0hOWItiA8IHlveWFrdXNlaVwgOwor57ea6YCf5bqmIDwgc2Vuc29rdWRvXCA7CivlubPpnaLlvaIgPCBoZWltZW5rZWlcIDsKK+ikh+avlOS+iyA8IGZ1a3VoaXJlaVwgOwor5pWj5rC06LuKIDwgc2Fuc3Vpc2hhXCA7CivkuIDmmYLph5EgPCBpY2hpamlraW5cIDsKK+WJjeW5tOW6piA8IHplbicnbmVuZG9cIDsKK+eEoeWjsOaYoOeUuyA8IG11c2VpZWlnYVwgOwor5YWl5pytIDwgbnl1dXNhdHN1XCA7CivnmbrooYzogIUgPCBoYWtrb3VzaGFcIDsKK+WBnOeVmeaJgCA8IHRlaXJ5dXVqb1wgOwor5a6u5Z+O55yMIDwgbWl5YWdpa2VuXCA7CivliY3liY3lm54gPCB6ZW56ZW5rYWlcIDsKK+eHl+W+s+WIqSA8IGthbmRva3VyaVwgOwor5q275YiR5aC0IDwgc2hpa2Vpam91XCA7CivlsbHpgZMgPCB5YW1hbWljaGlcIDsKK+W3u+WtkOacrCA8IGthbnNoaWhvblwgOwor6YCA5Ye6IDwgdGFpc2h1dHN1XCA7Civmpb3nr4AgPCBnYWt1c2V0c3VcIDsKK+W4uOWkjyA8IHRva29uYXRzdVwgOwor55S66K2w5LyaIDwgY2hvdWdpa2FpXCA7CivnlLPpgZQgPCBzaGludGF0c3VcIDsKK+S6uueUn+imsyA8IGppbnNlaWthblwgOwor55yf54+g6LKdIDwgc2hpbmp1Z2FpXCA7Civoi6Xmnb4gPCB3YWthbWF0c3VcIDsKK+WxgOmVtyA8IGt5b2t1Y2hvdVwgOwor6ay855OmIDwgb25pZ2F3YXJhXCA7CivluJ3lrqQgPCB0ZWlzaGl0c3VcIDsKK+S6rOmDveW4giA8IGt5b3V0b3NoaVwgOwor6Zuo5Y+w6aKoIDwgYW1ldGFpZnV1XCA7Civoh6rnlLHlvaIgPCBqaXl1dWdhdGFcIDsKK+WFjeioseWItiA8IG1lbmt5b3NlaVwgOwor6ZuR5aCx5qyEIDwgemFwcG91cmFuXCA7CivmhJvlhZrlv4MgPCBhaXRvdXNoaW5cIDsKK+mYsuatouazlSA8IGJvdXNoaWhvdVwgOwor6KOc5Yqp5ryi5a2XIDwgaG9qb2thbmppXCA7CivluorkuIsgPCB5dWthc2hpdGFcIDsKK+mBuOaMmeazlSA8IHNlbmt5b2hvdVwgOwor5ZKM6Iux6L6e5pu4IDwgd2FlaWppc2hvXCA7CivnnYDkv6EgPCBjaGFrdXNoaW5cIDsKK+WkqeS6leijjyA8IHRlbmpvdXVyYVwgOwor5Y2K6Zmw5b2xIDwgaGFuJydpbicnZWlcIDsKK+acgOmHjeeCuSA8IHNhaWp1dXRlblwgOwor5LiA5a++5LiAIDwgaXR0YWlpY2hpXCA7Civnmb3mnK0gPCBzaGlyb2Z1ZGFcIDsKK+WIh+WFpSA8IHNldHN1bnl1dVwgOwor5qiZ5pytIDwgaHlvdXNhdHN1XCA7Civlh7rli5UgPCBzaHV0c3Vkb3VcIDsKK+i/q+WKmyA8IGhha3VyeW9rdVwgOwor5bGR6YmEIDwga3V6dXRldHN1XCA7Civpq6rntrEgPCBrYW1pZHp1bmFcIDsKK+mBuOaMmeawkSA8IHNlbmt5b21pblwgOwor6YCQ5LiAIDwgY2hpa3VpY2hpXCA7CivmlZnllIbogIUgPCBreW91c2FzaGFcIDsKK+aWmeeQhuS6uiA8IHJ5b3VyaW5pblwgOwor6Ieq55Sx5bitIDwgaml5dXVzZWtpXCA7CivmnIjliIroqowgPCBnZWtrYW5zaGlcIDsKK+S+temjnyA8IHNoaW5zaG9rdVwgOwor5LiN54af57e0IDwgZnVqdWt1cmVuXCA7Civlj6TlhbjnmoQgPCBrb3RlbnRla2lcIDsKK+iKseawtyA8IGhhbmFnb29yaVwgOwor5L+E6ZuoIDwgbml3YWthYW1lXCA7CivlpInmrbvogIUgPCBoZW5zaGlzaGFcIDsKK+acrOagvOWMliA8IGhvbmtha3VrYVwgOwor5LuV5LiK5belIDwgc2hpYWdla291XCA7CivniaHkuLnmnY8gPCBib3Rhbmt5b3VcIDsKK+W5s+aWueW9oiA8IGhlaWhvdWtlaVwgOwor5aSJ5YyW55CDIDwgaGVua2FreXV1XCA7CivpgaDpmpToppYgPCBlbmtha3VzaGlcIDsKK+iMtuWupCA8IGNoYXNoaXRzdVwgOwor6ZuR6KiY5bizIDwgemFra2ljaG91XCA7CivlnKjmoKHnlJ8gPCB6YWlrb3VzZWlcIDsKK+eZveaXpSA8IGhha3VqaXRzdVwgOwor5L6g6aqoIDwga3lvdWtvdHN1XCA7CivlkIzkvY3lhYPntKAgPCBkb3VpZ2Vuc29cIDsKK+aRqeaTpumfsyA8IG1hc2F0c3VvblwgOwor5bCR6aOfIDwgc2hvdXNob2t1XCA7Civlt7PlubQgPCBoZWJpZG9zaGlcIDsKK+ibjeeDj+iziiA8IGhvdGFydWlrYVwgOwor6Im254mpIDwgdHN1eWFtb25vXCA7Civlho3nlJ/ms5UgPCBzYWlzZWlob3VcIDsKK+WkmueZuuapnyA8IHRhaGF0c3VraVwgOwor5Ya35aW0IDwgaGl5YXlha2tvXCA7CivmtLvniYjlsYsgPCBrYXBwYW4nJ3lhXCA7Civph5HliZvmiYsgPCBrb25nb3VzaHVcIDsKK+iiq+Wus+mhjSA8IGhpZ2FpZ2FrdVwgOwor5YaN5b6T5YWE5byfIDwgZnV0YWl0b2tvXCA7CivpgbjmjJnmqKkgPCBzZW5reW9rZW5cIDsKK+WfuuacrOe1piA8IGtpaG9ua3l1dVwgOwor6Z2e6YeR5bGeIDwgaGlraW56b2t1XCA7CivlsI/poK0gPCBrb2dhc2hpcmFcIDsKK+eMqeeMqee3iyA8IHNob3Vqb3VoaVwgOwor5Zue5pWZ5b6SIDwga2Fpa3lvdXRvXCA7CivmjIfnpLrlhYggPCBzaGlqaXNha2lcIDsKK+WCmeW/mOmMsiA8IGJpYm91cm9rdVwgOwor56CC57OW6buNIDwgc2F0b3VraWJpXCA7CivmoYjlhoXmm7ggPCBhbicnbmFpc2hvXCA7Civlip/lirTph5EgPCBrb3Vyb3VraW5cIDsKK+iiq+W3ruWIpSA8IGhpc2FiZXRzdVwgOwor55eY55eV6Z2iIDwgYWJhdGF6dXJhXCA7CivmnLHmlofph5EgPCBzaHVidW5raW5cIDsKK+S4jeisueaFjiA8IGZ1a2luc2hpblwgOwor6IKd56Gs5aSJIDwga2Fua291aGVuXCA7CivmnKvmnJ/nmoQgPCBtYWtraXRla2lcIDsKK+ekvOWlieWFrCA8IHJlaWJvdWtvdVwgOwor5Y2U5oqA6ICFIDwga3lvdWdpc2hhXCA7CivlpJrotrPpoZ4gPCB0YXNva3VydWlcIDsKK+WxiOi+sSA8IGt1dHN1am9rdVwgOwor56We56eY5oCnIDwgc2hpbnBpc2VpXCA7CivmsrjpqLDngrkgPCBmdXR0b3V0ZW5cIDsKK+mkiumtmuaxoCA8IHlvdWd5b2NoaVwgOwor6a2U5rOV55qEIDwgbWFob3V0ZWtpXCA7CivkupzpiZvlh7jniYggPCBhZW50b3BwYW5cIDsKK+ijveawt+aJgCA8IHNlaWh5b3Vqb1wgOwor6Zai6KW/5byBIDwga2Fuc2FpYmVuXCA7CivpqqjohpwgPCBrb3RzdW1ha3VcIDsKK+WFq+WNg+iNiSA8IHlhY2hpZ3VzYVwgOwor55S66KeSIDwgbWFjaGlrYWRvXCA7CivovrvlkJsgPCB0c3VqaWdpbWlcIDsKK+ecgeWKmyA8IHNob3VyeW9rdVwgOwor6a+J5bmfIDwga29pbm9ib3JpXCA7CivpgZPkuqTms5UgPCBkb3Vrb3Vob3VcIDsKK+mHjuiPnOaxgSA8IHlhc2FpamlydVwgOwor5pah5peL5paZIDwgYXNzZW5yeW91XCA7CivotaTpsK8gPCBha2Fpd2FzaGlcIDsKK+iIqua1t+WjqyA8IGtvdWthaXNoaVwgOwor5rWu5YuV5qCqIDwgZnVkb3VrYWJ1XCA7CivpqqjogokgPCBrb3RzdW5pa3VcIDsKK+WGheWupCA8IG5haXNoaXRzdVwgOwor5re35Lqk5p6XIDwga29ua291cmluXCA7CivmqKHnr4Tlm5ogPCBtb2hhbnNodXVcIDsKK+W3neWyuCA8IGthd2FnaXNoaVwgOwor6Kyb576p6YyyIDwga291Z2lyb2t1XCA7CivluZXkuIsgPCBtYWt1c2hpdGFcIDsKK+ebruWNsCA8IG1lamlydXNoaVwgOwor55Sf5a2Y6ICFIDwgc2Vpem9uc2hhXCA7CivlsLvou70gPCBzaGlyaWdhcnVcIDsKK+S4jeisrOaApyA8IGZ1Ynl1dXNlaVwgOwor5bCO6Zu75oCnIDwgZG91ZGVuc2VpXCA7CivmlLnpnanmoYggPCBrYWlrYWt1YW5cIDsKK+ejgeawl+a1ruS4iiA8IGppa2lmdWpvdVwgOwor55S36KGGIDwgb3Rva29zaHV1XCA7Civms5XmlLnmraMgPCBob3VrYWlzZWlcIDsKK+eUn+eUo+aApyA8IHNlaXNhbnNlaVwgOwor6bCQ5Y+jIDwgd2FuaWd1Y2hpXCA7CivkuIrkuK3kuIsgPCBqb3VjaHV1Z2VcIDsKK+S/oei2iiA8IHNoaW4nJ2V0c3VcIDsKK+S/iumAuCA8IHNodW4nJ2l0c3VcIDsKK+e1puawtOaJgCA8IGt5dXVzdWlqb1wgOwor54yc55aR5b+DIDwgc2FpZ2lzaGluXCA7CivkuI3oqr/ms5UgPCBidWNob3Vob3VcIDsKK+WxnuiolyA8IHNob2t1dGFrdVwgOwor55uy5YikIDwgbWVrdXJhYmFuXCA7Civlj5fli5XnmoQgPCBqdWRvdXRla2lcIDsKK+iqv+eQhuWPsCA8IGNob3VyaWRhaVwgOwor56m66ZaR5ZywIDwga3V1a2FuY2hpXCA7CivlirTlg43npa0gPCByb3Vkb3VzYWlcIDsKK+WGjeadpemAsSA8IHNhcmFpc2h1dVwgOwor6Imy5rKiIDwgc2hpa2l0YWt1XCA7Civlha3lsLogPCByb2t1c2hha3VcIDsKK+S7o+ihqOmDqCA8IGRhaWh5b3VidVwgOwor5YOF5bCR5beuIDwga2luc2hvdXNhXCA7CivlkajmnJ/mgKcgPCBzaHV1a2lzZWlcIDsKK+mjm+ihjOacjSA8IGhpa291ZnVrdVwgOwor5LiN54m55a6aIDwgZnV0b2t1dGVpXCA7CivooajpnaLljJYgPCBoeW91bWVua2FcIDsKK+W4guacieWcsCA8IHNoaXl1dWNoaVwgOwor5qiZ5rqW6KqeIDwgaHlvdWp1bmdvXCA7Civovpvlj6MgPCBrYXJha3VjaGlcIDsKK+awtOW5s+mdoiA8IHN1aWhlaW1lblwgOwor5Lqk6YCa6LevIDwga291dHN1dXJvXCA7CivmtojosrvogIUgPCBzaG91aGlzaGFcIDsKK+WPpOmBk+WFtyA8IGZ1cnVkb3VndVwgOwor5Z+65pys55qEIDwga2lob250ZWtpXCA7CivojYnlm6PlrZAgPCBrdXNhZGFuZ29cIDsKK+ecn+ePoOiJsiA8IHNoaW5qdWlyb1wgOwor57Wx5bil5qipIDwgdG91c3Vpa2VuXCA7CivoibLmrLIgPCBzaGlraXlva3VcIDsKK+e3tOe/kuapnyA8IHJlbnNodXVraVwgOwor5qW154axIDwgZ29rdW5ldHN1XCA7Civot7PomasgPCB0b2JpbXVzaGlcIDsKK+aYh+mZjeiItSA8IHNob3Vrb3VkYVwgOwor5YW15bqr55yMIDwgaHlvdWdva2VuXCA7CivlhazmtbfkuIogPCBrb3VrYWlqb3VcIDsKK+a/gOaIpuWMuiA8IGdla2lzZW5rdVwgOwor5YSA56S855qEIDwgZ2lyZWl0ZWtpXCA7CivmnInlubPns5YgPCBhcnVoZWl0b3VcIDsKK+eXm+eDiCA8IHRzdXVyZXRzdVwgOwor5Lqk6YCa6LK7IDwga291dHN1dWhpXCA7Civoh6Pnr4AgPCBzaGluc2V0c3VcIDsKK+mHkemtmuiNiSA8IGtpbmd5b3NvdVwgOwor552A54Gr54K5IDwgY2hha2thdGVuXCA7CivpgbjmjJnmiKYgPCBzZW5reW9zZW5cIDsKK+mqqOeusSA8IGtvdHN1YmFrb1wgOwor5a6X5Li75qipIDwgc291c2h1a2VuXCA7CivmsLTphbjmoLkgPCBzdWlzYW5rb25cIDsKK+i1pOWNgeWtlyA8IHNla2lqdXVqaVwgOwor6JOE6Z+z5qmfIDwgY2hpa3VvbmtpXCA7Civkv5foqqwgPCB6b2t1c2V0c3VcIDsKK+iHquWwiuW/gyA8IGppc29uc2hpblwgOwor6KGo6KiY5rOVIDwgaHlvdWtpaG91XCA7CivpnLLlpKnllYYgPCByb3RlbnNob3VcIDsKK+S8keW7t+aXpSA8IGt5dXV0ZWliaVwgOwor6aOy6YWS55mWIDwgaW5zaHVoZWtpXCA7CivkuIDmlonpq5ggPCBpc3NlaWRha2FcIDsKK+WHpuWIkeWPsCA8IHNob2tlaWRhaVwgOwor5Ya35oi/6LuKIDwgcmVpYm91c2hhXCA7CivmpJznlqvmiYAgPCBrZW4nJ2VraWpvXCA7CivnhafluqboqIggPCBzaG91ZG9rZWlcIDsKK+WPjueojuWQjyA8IHNodXV6ZWlyaVwgOwor5ZaJ6Ieq5oWiIDwgbm9kb2ppbWFuXCA7Civph5HnnIvmnb8gPCBraW5rYW5iYW5cIDsKK+aVo+W8vumKgyA8IHNhbmRhbmp1dVwgOwor5YSy5b25IDwgbW91a2V5YWt1XCA7Civln7nppIrmtrIgPCBiYWl5b3Vla2lcIDsKK+WkqeeLl+miqCA8IHRlbmd1a2F6ZVwgOwor5LiA5pys5p2JIDwgaXBwb25zdWdpXCA7CivmuKzlvq7oqIggPCBzb2t1YmlrZWlcIDsKK+miqOiHtOaelyA8IGZ1dWNoaXJpblwgOwor5Zyw55CG5a2mIDwgY2hpcmlnYWt1XCA7Civnvo7po5/lrrYgPCBiaXNob2t1a2FcIDsKK+Wwv+mBk+eCjiA8IG55b3Vkb3VlblwgOwor6J6z6J6C5ouzIDwgdG91cm91a2VuXCA7Civoqr/nkIbkurogPCBjaG91cmluaW5cIDsKK+WWq+eFmeaJgCA8IGtpdHN1ZW5qb1wgOwor5pmC5YiG5pmCIDwgamlidW5kb2tpXCA7Civkvpvov7AgPCBreW91anV0c3VcIDsKK+WFq+mHjeahnCA8IHlhZXpha3VyYVwgOwor5Y2X6Juu6Ii5IDwgbmFuYmFuc2VuXCA7CivosYzosYbosYYgPCBlbmRvdW1hbWVcIDsKK+Wzu+eDiCA8IHNodW5yZXRzdVwgOwor55S36IW5IDwgb3Rva29iYXJhXCA7Civlm57mlbDliLggPCBrYWlzdXVrZW5cIDsKK+ijvemAoOiAhSA8IHNlaXpvdXNoYVwgOwor6YeN5b255LyaIDwganV1eWFra2FpXCA7CivljJfmrKfkurogPCBob2t1b3VqaW5cIDsKK+S4gOS6uuWtkCA8IGhpdG9yaWtrb1wgOwor5qW15rWBIDwga3lva3VyeXV1XCA7CivmrbvnlJ/oprMgPCBzaGlzZWlrYW5cIDsKK+eCreeWveeXhSA8IHRhbnNvYnlvdVwgOwor55m95Zyw5ZuzIDwgaGFrdWNoaXp1XCA7CivnlaXnq6AgPCByeWFrdXNob3VcIDsKK+m8iOeUsuiJsiA8IGJla2tvdWlyb1wgOwor5LmX6LuK5Yi4IDwgam91c2hha2VuXCA7CivmuKznqIvlmaggPCBzb2t1dGVpa2lcIDsKK+WGhuiInuabsiA8IGVuYnVreW9rdVwgOwor6Imv5pelIDwgcnlvdWppdHN1XCA7CivmtojosrvnqI4gPCBzaG91aGl6ZWlcIDsKK+WjgeS4gOmHjSA8IGthYmVoaXRvZVwgOwor5Zub6Z2i5L2TIDwgc2hpbWVudGFpXCA7Civlt6bliY0gPCBoaWRhcmltYWVcIDsKK+WcqOadpee3miA8IHphaXJhaXNlblwgOwor5aSn55CG55+zIDwgZGFpcmlzZWtpXCA7CivnlJ/nlKPlnLAgPCBzZWlzYW5jaGlcIDsKK+WvvuizqiA8IHRhaXNoaXRzdVwgOwor5LiN5rOV56e75rCRIDwgZnVob3VpbWluXCA7CivniYfnlLDoiI4gPCBrYXRhaW5ha2FcIDsKK+ikh+WGmeapnyA8IGZ1a3VzaGFraVwgOwor5bCP6KqsIDwgc2hvdXNldHN1XCA7Civpoqjkv5fnlLsgPCBmdXV6b2t1Z2FcIDsKK+W3puWFmiA8IGhpZGFyaXRvdVwgOwor6ISH6YGTIDwgd2FraW1pY2hpXCA7CivlgbTpnaLlm7MgPCBzb2t1bWVuenVcIDsKK+ajueenpCA8IHNhb2Jha2FyaVwgOwor6LaK5qip6KGM54K6IDwgZWtrZW5rb3VpXCA7CivoqIDoqp7lraYgPCBnZW5nb2dha3VcIDsKK+W3oeiIquiIuSA8IGp1bmtvdXNlblwgOwor5Y6f5aeL5p6XIDwgZ2Vuc2hpcmluXCA7Civoh7PkuIrmqKkgPCBzaGlqb3VrZW5cIDsKK+Wwj+WjsuWVhiA8IGtvdXJpc2hvdVwgOwor5qGc6LKdIDwgc2FrdXJhZ2FpXCA7CivntbHliLblk4EgPCB0b3VzZWloaW5cIDsKK+eXheayoSA8IGJ5b3Vib3RzdVwgOwor56ys5LiA5a+pIDwgZGFpaXNzaGluXCA7CivntIXmr5vkurogPCBrb3Vtb3VqaW5cIDsKK+iIueapiyA8IGZ1bmFiYXNoaVwgOwor6KyE5YaZ54mIIDwgdG91c2hhYmFuXCA7CivmjqfoqLTlr6kgPCBrb3Vzb3NoaW5cIDsKK+S4reWPpOi7iiA8IGNodXVrb3NoYVwgOwor6auq5rK5IDwga2FtaWFidXJhXCA7CivmlrDntIDlhYMgPCBzaGlua2lnZW5cIDsKK+e3tOe/kuaJgCA8IHJlbnNodXVqb1wgOwor56uL5pa55qC5IDwgcmlwcG91a29uXCA7Civnn63pn7Ppmo4gPCB0YW4nJ29ua2FpXCA7CivkuLvmhI/kuLvnvqkgPCBzaHVpc2h1Z2lcIDsKK+Wuo+iqk+abuCA8IHNlbnNlaXNob1wgOwor5LqM5ouN5a2QIDwgbmlieW91c2hpXCA7CivlirTovrLlhZogPCByb3Vub3V0b3VcIDsKK+W9vOWyuOiKsSA8IGhpZ2FuYmFuYVwgOwor5b+g6a2C56KRIDwgY2h1dWtvbmhpXCA7CivmnInlirnmgKcgPCB5dXVrb3VzZWlcIDsKK+S4ieaXpeaciCA8IG1pa2FkenVraVwgOwor55m65oyv5qmfIDwgaGFzc2hpbmtpXCA7Civoh6rlt7HmpJzmn7sgPCBqaWtva2Vuc2FcIDsKK+e3j+WLmeW6gSA8IHNvdW11Y2hvdVwgOwor55eF5qygIDwgYnlvdWtldHN1XCA7CivlhavliIcgPCB5YXRzdWdpcmlcIDsKK+a1geihjOiqniA8IHJ5dXVrb3Vnb1wgOwor5YaF6a6u5Lq6IDwgbmFpc2VuamluXCA7CivlhaXlipsgPCBueXV1cnlva3VcIDsKK+eUn+eQhueahCA8IHNlaXJpdGVraVwgOwor5ZCN6KqJ5oW+IDwgbWVpeW95b2t1XCA7CivliqrlipvlrrYgPCBkb3J5b2t1a2FcIDsKK+WcqOadpeeoriA8IHphaXJhaXNodVwgOwor55S6562LIDwgbWFjaGlzdWppXCA7CivlpJrkuovlpJrpm6MgPCB0YWppdGFuYW5cIDsKK+WKoOehq+azlSA8IGthcnl1dWhvdVwgOwor5aSn5a625pePIDwgZGFpa2F6b2t1XCA7Civmma/mlZnlvpIgPCBrZWlreW91dG9cIDsKK++8oe+8ou+8o+mghiA8IMSTYsSrc2jEq2p1blwgOwor6ISC6LazIDwgYWJ1cmFhc2hpXCA7CivnlLrnq4sgPCBjaG91cml0c3VcIDsKK+mrmOepjembsiA8IGtvdXNla2l1blwgOwor5oSP5rCX5o+a5o+aIDwgaWtpeW91eW91XCA7CivkuZfoiLnliLggPCBqb3VzZW5rZW5cIDsKK+iEmuiouyA8IGt5YWt1Y2h1dVwgOwor5YaN5a+p5p+7IDwgc2Fpc2hpbnNhXCA7CivnlKjoqp7pm4YgPCB5b3Vnb3NodXVcIDsKK+alteaciCA8IGdva3VnZXRzdVwgOwor6LKg5YK36ICFIDwgZnVzaG91c2hhXCA7CivohILos6ogPCBzaGlzaGl0c3VcIDsKK+WKtOWDjeazlSA8IHJvdWRvdWhvdVwgOwor5rGO55So5qmfIDwgaGFuJyd5b3VraVwgOwor6Iif5qmLIDwgZnVuYWhhc2hpXCA7CivkvpvooYAgPCBreW91a2V0c3VcIDsKK+WQjeiqieW/gyA8IG1laXlvc2hpblwgOwor6ZGR5a6a5Lq6IDwga2FudGVpbmluXCA7Civlt53kuIsgPCBrYXdhc2hpbW9cIDsKK+aKleelqOaXpSA8IHRvdWh5b3ViaVwgOwor5YWI6KGM6KmeIDwgc2Vua291c2hpXCA7Civni6zmvJTkvJogPCBkb2t1ZW5rYWlcIDsKK+mfs+mfu+WtpiA8IG9uJydpbmdha3VcIDsKK+WKn+WKtOiAhSA8IGtvdXJvdXNoYVwgOwor5a6f6YyyIDwgaml0c3Vyb2t1XCA7CivohLPntLDog54gPCBub3VzYWlib3VcIDsKK+e+juaWh+iqvyA8IGJpYnVuY2hvdVwgOwor5piO57Sw5pu4IDwgbWVpc2Fpc2hvXCA7CivnlLfmloflrZcgPCBvdG9rb21vamlcIDsKK+WSjOiLsei+nuWFuCA8IHdhZWlqaXRlblwgOwor57eP5YuY5a6aIDwgc291a2Fuam91XCA7CivoibLlvLEgPCBzaGlraWpha3VcIDsKK+Wbnuimp+advyA8IGthaXJhbmJhblwgOwor5Lu75ZG954q2IDwgbmlubWVpam91XCA7Civnmbrlh7ogPCBoYXNzaHV0c3VcIDsKK+S4iue0jemHkSA8IGpvdW5vdWtpblwgOwor5ou35ZWP5Y+wIDwgZ291bW9uZGFpXCA7CivohbDnuIQgPCBrb3NoaW5hd2FcIDsKK+eUn+evgCA8IG5hbWFidXNoaVwgOwor5LiK5aWP5paHIDwgam91c291YnVuXCA7Civoh6rosqzngrkgPCBqaXNla2l0ZW5cIDsKK+i2s+iFsCA8IGFzaGlrb3NoaVwgOwor5Yqp55uj552jIDwgam9rYW50b2t1XCA7CivlhaXku48gPCBueXV1YnV0c3VcIDsKK+WHpueUn+iokyA8IHNob3NlaWt1blwgOwor5YWl5LqkIDwgaXJpbWFqaXJpXCA7CivohbDntJAgPCBrb3NoaWhpbW9cIDsKK+acrOippumokyA8IGhvbnNoaWtlblwgOwor5aSW5L+h6YOoIDwgZ2Fpc2hpbmJ1XCA7Civkv67nr4kgPCBzaHV1Y2hpa3VcIDsKK+S4gOS6uuWJjSA8IGhpdG9yaW1hZVwgOwor5Yq05YON5qipIDwgcm91ZG91a2VuXCA7Civogonpo58gPCBuaWt1c2hva3VcIDsKK+WcsOeQg+WEgCA8IGNoaWt5dXVnaVwgOwor5Zyw5LiK5qipIDwgY2hpam91a2VuXCA7Civkv6HntIQgPCBzaGluJyd5YWt1XCA7Civph5HlsY/poqggPCBraW5ieW91YnVcIDsKK+Wwjumbu+S9kyA8IGRvdWRlbnRhaVwgOwor5YWx55uK6LK7IDwga3lvdWVraWhpXCA7CivohLHokL0gPCBkYXRzdXJha3VcIDsKK+S4jeaEj+ippumokyA8IGZ1aXNoaWtlblwgOwor6aas6bm/6Z2iIDwgYmFrYWR6dXJhXCA7CivlnJ/nlKjms6IgPCBkb3lvdW5hbWlcIDsKK+e3j+mBuOaMmSA8IHNvdXNlbmt5b1wgOwor5Yi25b6h55ukIDwgc2VpZ3lvYmFuXCA7Civlv4PmhI/msJcgPCBrb2tvcm9pa2lcIDsKK+aooeevhOippuWQiCA8IG1vaGFuamlhaVwgOwor6YeN5Yq05YONIDwganV1cm91ZG91XCA7CivmiYvmprTlvL4gPCB0ZXJ5dXVkYW5cIDsKK+S4gOaemuS4iiA8IGljaGltYWl1ZVwgOwor5aSp5LqV54GvIDwgdGVuam91dG91XCA7CivppIrprZrloLQgPCB5b3VneW9qb3VcIDsKK+aKleelqOaJgCA8IHRvdWh5b3Vqb1wgOwor6Lyp5Ye6IDwgaGFpc2h1dHN1XCA7CivluqfmqJnns7sgPCB6YWh5b3VrZWlcIDsKK+WGhuWAn+asviA8IGVuc2hha2thblwgOwor57W25a++6KuWIDwgemV0dGFpcm9uXCA7CivmjZXomavntrIgPCBob2NodXVhbWlcIDsKK+WHuuadpeaYnyA8IGRla2lib3NoaVwgOwor5LqM6YeN5q+N6Z+zIDwgbmlqdXVib2luXCA7CivoirHmn7PnlYwgPCBrYXJ5dXVrYWlcIDsKK+WFrOawkeaoqSA8IGtvdW1pbmtlblwgOwor5aaC5L2V6KixIDwgaWthYmFrYXJpXCA7CivmuIXmlZnlvpIgPCBzZWlreW91dG9cIDsKK+e0q+Wklue3miA8IHNoaWdhaXNlblwgOwor5L+u56WTIDwgc2h1dWZ1dHN1XCA7CivlkIzlpb3kvJogPCBkb3Vrb3VrYWlcIDsKK+a0l+i7iuWgtCA8IHNlbnNoYWpvdVwgOwor5bGV5pyb6LuKIDwgdGVuYm91c2hhXCA7CivlrabplqUgPCBnYWt1YmF0c3VcIDsKK+aal+WPt+W4syA8IGFuZ291Y2hvdVwgOwor5L2N6LKgIDwga3VyYWltYWtlXCA7Civoi5fku6MgPCBuYXdhc2hpcm9cIDsKK+WxseeUtyA8IHlhbWFvdG9rb1wgOwor5bmM6aas6LuKIDwgaG9yb2Jhc2hhXCA7CivlpKfkvIHmpa0gPCBkYWlraWd5b3VcIDsKK+WjsueskeWppiA8IGJhaXNob3VmdVwgOwor5o6h54K56ICFIDwgc2FpdGVuc2hhXCA7CivmoITogIDmoIToj68gPCBlaXlvdWVpZ2FcIDsKK+mWk+mameavlCA8IGthbmdla2loaVwgOwor5aOu6KGM5LyaIDwgc291a291a2FpXCA7Civlho3nlJ/lk4EgPCBzYWlzZWloaW5cIDsKK+WFrOekvuWCtSA8IGtvdXNoYXNhaVwgOwor5qGc6I2JIDwgc2FrdXJhc291XCA7CivlrqLotrMgPCBreWFrdWFzaGlcIDsKK+WxnuebriA8IHNob2t1bW9rdVwgOwor5pyq5p2l5a2mIDwgbWlyYWlnYWt1XCA7Civkv5fnrYYgPCB6b2t1aGl0c3VcIDsKK+acq+Wni+e1giA8IHN1ZXNoaWp1dVwgOwor5YSf5Y20IDwgc2hvdWt5YWt1XCA7CivmvZzmsLToiaYgPCBzZW5zdWlrYW5cIDsKK+awtOmBk+euoSA8IHN1aWRvdWthblwgOwor5q+N6Kqe6Kmx6ICFIDwgYm9nb3dhc2hhXCA7CivlpKnnkIbmlZkgPCB0ZW5yaWt5b3VcIDsKK+alveW+iyA8IGdha3VyaXRzdVwgOwor5qGc6ImyIDwgc2FrdXJhaXJvXCA7Civkuojmg7Ppq5ggPCB5b3NvdWRha2FcIDsKK+aJi+afhOmhlCA8IHRlZ2FyYWdhb1wgOwor5omL6Iq45ZOBIDwgc2h1Z2VpaGluXCA7CivlubPooaHpjJggPCBoZWlrb3VzdWlcIDsKK+aKl+avkue0oCA8IGtvdWRva3Vzb1wgOwor5bCP576KIDwga29oaXRzdWppXCA7CivlpKfosYbnspUgPCBkYWl6dWthc3VcIDsKK+eglOeptuiyuyA8IGtlbmt5dXVoaVwgOwor5a6f6LOqIDwgamlzc2hpdHN1XCA7Civnn6Xog73niq8gPCBjaGlub3VoYW5cIDsKK+mBuOaJi+aoqSA8IHNlbnNodWtlblwgOwor6bqd6aaZ6bm/IDwgamFrb3VqaWthXCA7Civmtbflsrjnt5ogPCBrYWlnYW5zZW5cIDsKK+iyv+aYk+a4ryA8IGJvdWVraWtvdVwgOwor5pqm5bm05bqmIDwgcmVraW5lbmRvXCA7CivlpKnlrq7lm7MgPCB0ZW5reXV1enVcIDsKK+acieaoqeiAhSA8IHl1dWtlbnNoYVwgOwor5L2T6KOB5LiKIDwgdGVpc2Fpam91XCA7CivkvIrpgZTnlLcgPCBkYXRlb3Rva29cIDsKK+S8keWIiuaXpSA8IGt5dXVrYW5iaVwgOwor6IKY6YmEIDwgaGlqaXRldHN1XCA7Civos4PppIUgPCBjaGlubW9jaGlcIDsKK+WPpOWFuOWtpiA8IGtvdGVuZ2FrdVwgOwor5a6d6LKdIDwgdGFrYXJhZ2FpXCA7Civou73lj6MgPCBrYXJ1a3VjaGlcIDsKK+aUueiogueJiCA8IGthaXRlaWJhblwgOwor55Sf5a2Y5qipIDwgc2Vpem9ua2VuXCA7CivotoXohLEgPCBjaG91ZGF0c3VcIDsKK+ipsuWVj+mhjCA8IGdhaW1vbmRhaVwgOwor5pqX5Y+35a2mIDwgYW5nb3VnYWt1XCA7Civku6PooYzogIUgPCBkYWlrb3VzaGFcIDsKK+eUt+eJqSA8IG90b2tvbW9ub1wgOwor5YWr5Y2D5q2zIDwgeWFjaGl0b3NlXCA7Civlj6PnnJ/kvLwgPCBrdWNoaW1hbmVcIDsKK+WHuueJiOmDqCA8IHNodXBwYW5idVwgOwor6IG36ZW3IDwgc2hva3VjaG91XCA7CivoprPmuKzmiYAgPCBrYW5zb2t1am9cIDsKK+e1jOa4iOeVjCA8IGtlaXphaWthaVwgOwor5LiN54ax5b+DIDwgZnVuZXNzaGluXCA7Civlhazms5XkurogPCBrb3Vob3VqaW5cIDsKK+S8keecoOacnyA8IGt5dXVtaW5raVwgOwor5Ymv57eP55CGIDwgZnVrdXNvdXJpXCA7CivkvLTlpY/ogIUgPCBiYW5zb3VzaGFcIDsKK+Wvvuirh+iAhSA8IHRhaWRhbnNoYVwgOwor6LK/5piT5rOVIDwgYm91ZWtpaG91XCA7CivlnJLpgYrkvJogPCBlbicneXV1a2FpXCA7Civos5vmiJDogIUgPCBzYW5zZWlzaGFcIDsKK+S7j+mhlCA8IGhvdG9rZWdhb1wgOwor6Iq46IO95Lq6IDwgZ2Vpbm91amluXCA7CivliIborbLlnLAgPCBidW5qb3VjaGlcIDsKK+WxiOWFieaApyA8IGt1a2tvdXNlaVwgOwor55yf54+g5rm+IDwgc2hpbmp1d2FuXCA7Civku4/poJggPCBmdXRzdXJ5b3VcIDsKK+S6pOmAmuemjSA8IGtvdXRzdXVrYVwgOwor5oud54Gr5pWZIDwgaGFpa2FreW91XCA7CivnrofmnaHmm7ggPCBrYWpvdWdha2lcIDsKK+eVpeattCA8IHJ5YWt1cmVraVwgOwor6YG45oyZ5Lq6IDwgc2Vua3lvbmluXCA7CivpharovrLlrrYgPCByYWt1bm91a2FcIDsKK+W3peiKuOWTgSA8IGtvdWdlaWhpblwgOwor5pyq5p2l5Z6LIDwgbWlyYWlnYXRhXCA7CivlvIHpsJPpoZ4gPCBiZW5zYWlydWlcIDsKK+eEoeizh+agvCA8IG11c2hpa2FrdVwgOwor5Lu75ZG95qipIDwgbmlubWVpa2VuXCA7CivomavlnoLngo4gPCBjaHV1c3VpZW5cIDsKK+mqqOafhCA8IGtvdHN1Z2FyYVwgOwor5pyo5oi45b6h5YWNIDwga2lkb2dvbWVuXCA7CivnoLTokL3miLggPCBnb3JvdHN1a2lcIDsKK+e3qeS4i+iWrCA8IGthbmdleWFrdVwgOwor5pyJ5qmf55qEIDwgeXV1a2l0ZWtpXCA7CivotaToibIgPCBzZWtpc2hva3VcIDsKK+ato+WPjeWvviA8IHNlaWhhbnRhaVwgOwor5bC755mWIDwgc2hpcmlrdXNlXCA7CivpnZLmtbfljp8gPCBhb3VuYWJhcmFcIDsKK+WHuemdoumPoSA8IG91bWVua3lvdVwgOwor5aCx6YGT6ZmjIDwgaG91ZG91amluXCA7CivmpbXlsI8gPCBreW9rdXNob3VcIDsKK+WKo+WLouaEnyA8IHJlc3NlaWthblwgOwor6Ieq5bex55aO5aSWIDwgamlrb3NvZ2FpXCA7Civkv7XniakgPCBoeW91bW90c3VcIDsKK+W+oeaWmeWcsCA8IGdvcnlvdWNoaVwgOwor55Sf54iqIDwgbmFtYWR6dW1lXCA7Civmnb7poqggPCBtYXRzdWthemVcIDsKK+ioiOeul+iAhSA8IGtlaXNhbnNoYVwgOwor54Sh6aeE5Y+jIDwgbXVkYWd1Y2hpXCA7CivmnY7mib/mmakgPCByaXNob3ViYW5cIDsKK+i2hee1tiA8IGNob3V6ZXRzdVwgOwor6Ii55a6kIDwgc2Vuc2hpdHN1XCA7Civnpo/pn7Pmm7ggPCBmdWt1aW5zaG9cIDsKK+WFq+WNpuaOjCA8IGhha2tlc2hvdVwgOwor6Ieq5Li755qEIDwgamlzaHV0ZWtpXCA7CivpgLLmranlhZogPCBzaGlucG90b3VcIDsKK+ebuOWPjeaApyA8IHNvdWhhbnNlaVwgOwor6IO95YuV5oWLIDwgbm91ZG91dGFpXCA7Civlj7jku6TlrpggPCBzaGlyZWlrYW5cIDsKK+WcsOmch+ioiCA8IGppc2hpbmtlaVwgOwor57SZ5LiA6YeNIDwga2FtaWhpdG9lXCA7CivmsLTliqDmuJsgPCBtaXp1a2FnZW5cIDsKK+WHuueJiOiyuyA8IHNodXBwYW5oaVwgOwor5p6c5aCx6ICFIDwga2Fob3Vtb25vXCA7CivmiJDplbfmnJ8gPCBzZWljaG91a2lcIDsKK+iFuueGsSA8IHNlbicnbmV0c3VcIDsKK+a1hOWcn+aVmSA8IGpvdWRva3lvdVwgOwor5p2f6auqIDwgc29rdWhhdHN1XCA7Civou6Llh7ogPCB0ZW5zaHV0c3VcIDsKK+WkqeS6leadvyA8IHRlbmpvdWl0YVwgOwor6ZuG5aG15qmfIDwgc2h1dWppbmtpXCA7Civlh4zms6LmgKcgPCByeW91aGFzZWlcIDsKK+W/q+eUt+WtkCA8IGthaWRhbnNoaVwgOwor5aSp54uX6Iy4IDwgdGVuZ3V0YWtlXCA7Civni5nmkoPlhbUgPCBzb2dla2loZWlcIDsKK+Wklui8quWxsSA8IGdhaXJpbnphblwgOwor5piH6ZmN5qmfIDwgc2hvdWtvdWtpXCA7Civln7rnpI7mjqfpmaQgPCBraXNva291am9cIDsKK+WztuWztiA8IHNoaW1hamltYVwgOwor5pS+54Gr54uCIDwgaG91a2FreW91XCA7CivpoqjppqzniZsgPCBmdXViYWd5dXVcIDsKK+mZtuWZqOWVhiA8IHRvdWtpc2hvdVwgOwor55Wl5pyNIDwgcnlha3VmdWt1XCA7CivkuInloYHnt5ogPCBzYW5ydWlzZW5cIDsKK+WztuWxsSA8IHNoaW1heWFtYVwgOwor6YGT576p5b+DIDwgZG91Z2lzaGluXCA7CivotoXmmYLnqbogPCBjaG91amlrdXVcIDsKK+W+rueykuWtkCA8IGJpcnl1dXNoaVwgOwor5rC05bmz57eaIDwgc3VpaGVpc2VuXCA7Civlho3lsIvllY8gPCBzYWlqaW5tb25cIDsKK+msseWLgyA8IHV0c3Vib3RzdVwgOwor5p2x6ZuyIDwgc2hpbm9ub21lXCA7CivnlJ/mu4UgPCBzaG91bWV0c3VcIDsKK+a4heaOg+i7iiA8IHNlaXNvdXNoYVwgOwor5L+X54mpIDwgem9rdWJ1dHN1XCA7CivohLHnoasgPCBkYXRzdXJ5dXVcIDsKK+iEiOe1oSA8IG15YWt1cmFrdVwgOwor5LiA5a6a5rip5bqmIDwgaXR0ZWlvbmRvXCA7CivmnIDliY3nt5ogPCBzYWl6ZW5zZW5cIDsKK+e1tuWvvuiAhSA8IHpldHRhaXNoYVwgOwor5q2j56K65bqmIDwgc2Vpa2FrdWRvXCA7CivmsLfliYrmqZ8gPCBoeW91c2Fra2lcIDsKK+WIhuino+iDvSA8IGJ1bmthaW5vdVwgOwor5Zub6KeS5b2iIDwgc2hpa2Fra2VpXCA7CivlrqPoqIDmm7ggPCBzZW5nZW5zaG9cIDsKK+WPuOS7pOWhlCA8IHNoaXJlaXRvdVwgOwor5a2m6K2YIDwgZ2FrdXNoaWtpXCA7Civnq4vlpKrlrZAgPCByaXR0YWlzaGlcIDsKK+aciei5hOmhniA8IHl1dXRlaXJ1aVwgOwor5L2/55So6ICFIDwgc2hpeW91c2hhXCA7CivkvrXnlaUgPCBzaGlucnlha3VcIDsKK+WkqeS4iueVjCA8IHRlbmpvdWthaVwgOwor6Z2S5rW35LqAIDwgYW91bWlnYW1lXCA7CivmnaXpgYrogIUgPCByYWl5dXVzaGFcIDsKK+W3qOS6uui7jSA8IGt5b2ppbmd1blwgOwor5a2m6YOo55SfIDwgZ2FrdWJ1c2VpXCA7Civlt6Xlrabpg6ggPCBrb3VnYWt1YnVcIDsKK+aVmeenkeabuCA8IGt5b3VrYXNob1wgOwor57WM5riI5rOVIDwga2VpemFpaG91XCA7CivnoLTlgrfpoqggPCBoYXNob3VmdXVcIDsKK+iBt+iyrCA8IHNob2t1c2VraVwgOwor5oyB5Y+C5Lq6IDwgamlzYW4nJ25pblwgOwor57eP552j5bqcIDwgc291dG9rdWZ1XCA7Civml6XmnKzpq6ogPCBuaWhvbmdhbWlcIDsKK+iJtuS6iyA8IHRzdXlhZ290b1wgOwor5Yi25b6h5qOSIDwgc2VpZ3lvYm91XCA7CivmpJzmoYjmm7ggPCBrZW4nJ2Fuc2hvXCA7CivnjonptKsgPCB0YW1hc2hpZ2lcIDsKK+atqemBk+apiyA8IGhvZG91a3lvdVwgOwor5Zyw5pa557SZIDwgY2hpaG91c2hpXCA7Civml6Xlgq3lj5YgPCBoaXlvdXRvcmlcIDsKK+WcsOeNhOWkiSA8IGppZ29rdWhlblwgOwor5ZCI5aWP5ZujIDwgZ2Fzc291ZGFuXCA7Civnk6bniYggPCBrYXdhcmFiYW5cIDsKK+WkqeS6leaJhyA8IHRlbmpvdXNlblwgOwor5YK35Y+jIDwga2l6dWd1Y2hpXCA7Civlhajlj43lsIQgPCB6ZW5oYW5zaGFcIDsKK+Wvhue0hCA8IG1pdHN1eWFrdVwgOwor5aSJ6YCf5qmfIDwgaGVuc29rdWtpXCA7CivnhKHnkIblvI8gPCBtdXJpc2hpa2lcIDsKK+i7veWKtOWDjSA8IGtlaXJvdWRvdVwgOwor5a2m6KGTIDwgZ2FrdWp1dHN1XCA7CivmraPlj43lkIggPCBzZWloYW5nb3VcIDsKK+e1jOa4iOashCA8IGtlaXphaXJhblwgOwor6LuS5LiLIDwgbm9raXNoaXRhXCA7Civou4rku6MgPCBrdXJ1bWFkYWlcIDsKK+WAn+aWmSA8IHNoYWt1cnlvdVwgOwor55Sf5a2X5byVIDwgaWtpamliaWtpXCA7CivmipXnpajljLogPCB0b3VoeW91a3VcIDsKK+S6uumBlCA8IGhpdG90YWNoaVwgOwor5pyo5puc5pelIDwgbW9rdXlvdWJpXCA7Civlh7rmnKjlubQgPCBkZWtpZG9zaGlcIDsKK+WAmeaWhyA8IHNvdXJvdWJ1blwgOwor56KT5rC35bOgIDwgdXN1aXRvdWdlXCA7Civlr7rnlLcgPCB0ZXJhb3Rva29cIDsKK+WKoOWFpemHkSA8IGthbnl1dWtpblwgOwor5rCR6ZaT5Lq6IDwgbWlua2FuamluXCA7Civlhazli5/moKogPCBrb3Vib2thYnVcIDsKK+alteWMlyA8IGt5b2t1aG9rdVwgOwor5LmX6aas5pyNIDwgam91YmFmdWt1XCA7CivohLHnjYQgPCBkYXRzdWdva3VcIDsKK+aXpeacrOmgmCA8IG5paG9ucnlvdVwgOwor6JGX5pu45ZCNIDwgY2hvc2hvbWVpXCA7CivntYzllrblraYgPCBrZWllaWdha3VcIDsKK+eZvemJm+mJsSA8IGhha3VlbmtvdVwgOwor55S65pa5IDwgbWFjaGlrYXRhXCA7Civnspfnm67ns5YgPCB6YXJhbWV0b3VcIDsKK+aJi+WJjeWRs+WZjCA8IHRlbWFlbWlzb1wgOwor5YaF546E6ZaiIDwgbmFpZ2Vua2FuXCA7CivlnLDmlrnnqI4gPCBjaGlob3V6ZWlcIDsKK+mrmOWdjyA8IHRha2F0c3VraVwgOwor5beh5p+76ZW3IDwganVuc2FjaG91XCA7CivljbDliLfmqZ8gPCBpbnNhdHN1a2lcIDsKK+WHjeatu+iAhSA8IHRvdXNoaXNoYVwgOwor55m96YqF6LKoIDwgaGFrdWRvdWthXCA7Civosrjos4MgPCBrYXNoaWNoaW5cIDsKK+WOn+Wni+S6uiA8IGdlbnNoaWppblwgOwor5Yqg5bel6LODIDwga2Frb3VjaGluXCA7CivlhYHmloflhYHmraYgPCBpbmJ1bmluYnVcIDsKK+eruei8qum6qSA8IGNoaWt1d2FmdVwgOwor5LiA5pa555qEIDwgaXBwb3V0ZWtpXCA7Civlh7rku5XkuosgPCBkZXNoaWdvdG9cIDsKK+ato+W/teWgtCA8IHNob3VuZW5iYVwgOwor5YCJ5pW3IDwga3VyYXNoaWtpXCA7CivkuZ7po58gPCBrb3RzdWppa2lcIDsKK+aflOmBk+WgtCA8IGp1dWRvdWpvdVwgOwor6ISK6auE54KOIDwgc2VraXp1aWVuXCA7Civkuozph43ph5wgPCBuaWp1dWdhbWFcIDsKK+eri+aWueS9kyA8IHJpcHBvdXRhaVwgOwor5Ly457iuIDwgc2hpbnNodWt1XCA7CivpgaDpmpTmgKcgPCBlbmtha3VzZWlcIDsKK+i7veatjOWKhyA8IGtlaWthZ2VraVwgOwor5Yi25YuV54GvIDwgc2VpZG91dG91XCA7CivlgqznnKDliaQgPCBzYWltaW56YWlcIDsKK+S7iuS4gOW6piA8IGltYWljaGlkb1wgOwor5pS76Ziy5oimIDwga291Ym91c2VuXCA7CivmtYTlnJ/lrpcgPCBqb3Vkb3NodXVcIDsKK+aTjee4puahvyA8IHNvdWp1dWthblwgOwor5paH5piO6aSoIDwgYnVubWVpa2FuXCA7CivlsI7plqLmlbAgPCBkb3VrYW5zdXVcIDsKK+a7nuWcqOWcsCA8IHRhaXphaWNoaVwgOwor5Lq66LOqIDwgaGl0b2ppY2hpXCA7CivmnJ3po58gPCBjaG91c2hva3VcIDsKK+S4iue0jeexsyA8IGpvdW5vdW1haVwgOwor5a6H5a6Z5pyNIDwgdWNodXVmdWt1XCA7CivliKnlj6PogIUgPCByaWtvdW1vbm9cIDsKK+aWueazleirliA8IGhvdWhvdXJvblwgOwor6JOL54S25oCnIDwgZ2FpemVuc2VpXCA7CivljYroo73lk4EgPCBoYW5zZWloaW5cIDsKK+Wzu+WIpSA8IHNodW5iZXRzdVwgOwor5LiA5aC06Z2iIDwgaWNoaWJhbWVuXCA7Civnn7PniYjnlLsgPCBzZWtpYmFuZ2FcIDsKK+eZu+mMsuewvyA8IHRvdXJva3Vib1wgOwor6Ieq5pq06Ieq5qOEIDwgamlib3VqaWtpXCA7CivkuIDmmKjmmakgPCBpc3Nha3ViYW5cIDsKK+WxiuabuCA8IHRvZG9rZXNob1wgOwor5a6i562LIDwga3lha3VzdWppXCA7CivlpJrmpbXljJYgPCB0YWt5b2t1a2FcIDsKK+Wkp+S4gOeVqiA8IG9vaWNoaWJhblwgOwor6KGb5pif5Zu9IDwgZWlzZWlrb2t1XCA7Civnm7jmkrLpg6jlsYsgPCBzdW1vdWJleWFcIDsKK+acjemjviA8IGZ1a3VzaG9rdVwgOwor5YKR5Ye6IDwga2Vzc2h1dHN1XCA7CivkvJHogbcgPCBreXV1c2hva3VcIDsKK+S4i+e0mueUnyA8IGtha3l1dXNlaVwgOwor5qiZ5rqW5pmCIDwgaHlvdWp1bmppXCA7CivkuozpgZMgPCBmdXRhbWljaGlcIDsKK+mrmOm9ouiAhSA8IGtvdXJlaXNoYVwgOwor5LiA5LiB5YmNIDwgaXRjaG91bWFlXCA7CivoiLnkuLsgPCBmdW5hbnVzaGlcIDsKK+mjn+mAmiA8IHNob2t1dHN1dVwgOwor5qiq5oGL5oWVIDwgeW9rb3JlbmJvXCA7CivosqHnlKPnqI4gPCB6YWlzYW56ZWlcIDsKK+iHquW3seS/neWtmCA8IGppa29ob3pvblwgOwor5LqM6YeN6LqrIDwgbmlqdXVzaGluXCA7CivlrqLnqK4gPCBreWFrdWRhbmVcIDsKK+iziuiZkCA8IHpva3VneWFrdVwgOwor55Sf55CG5a2mIDwgc2VpcmlnYWt1XCA7CivnhrHlmajlhbcgPCBuZXRzdWtpZ3VcIDsKK+WvkuWGt+e0lyA8IGthbnJlaXNoYVwgOwor5rC06YGT5qCTIDwgc3VpZG91c2VuXCA7CivmjqLntKLmnKggPCB0YW5zYWt1Z2lcIDsKK+eglOeptuenkSA8IGtlbmt5dXVrYVwgOwor5Lmz6YmiIDwgbnl1dWJhY2hpXCA7CivmnIjpoY0gPCBnZXRzdWdha3VcIDsKK+Wun+aWveS+iyA8IGppc3NoaXJlaVwgOwor6ZW36Z+z6ZqOIDwgY2hvdW9ua2FpXCA7CivkuI3oqZXliKQgPCBmdWh5b3ViYW5cIDsKK+aciOmggyA8IHRzdWtpZ29yb1wgOwor6YG45omL5ZujIDwgc2Vuc2h1ZGFuXCA7CivkvZznlLcgPCBzYWt1b3Rva29cIDsKK+WkmuS6i+WkmuerryA8IHRhaml0YXRhblwgOwor5Yqf5Yip55qEIDwga291cml0ZWtpXCA7CivlpKnnkIPlhIAgPCB0ZW5reXV1Z2lcIDsKK+eUt+W9uSA8IG90b2tveWFrdVwgOwor55yf54+g5bGkIDwgc2hpbmp1c291XCA7CivlubPlnYfngrkgPCBoZWlraW50ZW5cIDsKK+S4ium2siA8IGpvdWJpdGFraVwgOwor6IWV5p6VIDwgdWRlbWFrdXJhXCA7CivpgKPlkIjkvJogPCByZW5nb3VrYWlcIDsKK+W3pealreWMliA8IGtvdWd5b3VrYVwgOwor6LWk6YGT5YSAIDwgc2VraWRvdWdpXCA7CivotaTnhrEgPCBzZWtpbmV0c3VcIDsKK+aWh+WtpuW6pyA8IGJ1bmdha3V6YVwgOwor5puW5pin5qih57OKIDwgYWltYWltb2tvXCA7CivoiIzlhYggPCBzaGl0YXNha2lcIDsKK+WKtOWDjeWFmiA8IHJvdWRvdXRvdVwgOwor6IW55oyBIDwgaGFyYW1vY2hpXCA7CivntYzmuIjmiKYgPCBrZWl6YWlzZW5cIDsKK+ePjeiqrCA8IGNoaW5zZXRzdVwgOwor57Gz56m66LuNIDwgYmVpa3V1Z3VuXCA7CivmlbflsYXnva4gPCBzaGlraWljaGlcIDsKK+S7mOiQvSA8IHRzdWtlb2NoaVwgOwor6YWN5b2T6YeRIDwgaGFpdG91a2luXCA7CivohbDmjpsgPCBrb3NoaWtha2VcIDsKK+S5hemXiiA8IGt5dXVrYXRzdVwgOwor6aOb6JqK55eHIDwgaGlidW5zaG91XCA7Civlr4bnjJ8gPCBtaXRzdXJ5b3VcIDsKK+i1pOeXouiPjCA8IHNla2lyaWtpblwgOwor5LqU5Y2B6IKpIDwgZ29qdXVrYXRhXCA7Civpq5jnrYnlrpggPCBrb3V0b3VrYW5cIDsKK+WcsOaWueeJiCA8IGNoaWhvdWJhblwgOwor55Sz5bm0IDwgc2FydWRvc2hpXCA7CivmnZDos6ogPCB6YWlzaGl0c3VcIDsKK+eJh+iEs+ayuSA8IGhlbicnbm91eXVcIDsKK+advuidiSA8IG1hdHN1emVtaVwgOwor5LqL5YuZ5qyh5a6YIDwgamltdWppa2FuXCA7CivlpYnooYzmiYAgPCBidWd5b3VzaG9cIDsKK+iCr+WumuaWhyA8IGtvdXRlaWJ1blwgOwor5Lqs6KGoIDwga3lvdW9tb3RlXCA7CivoirPpppnliaQgPCBob3Vrb3V6YWlcIDsKK+eBq+eBvea1gSA8IGthc2Fpcnl1dVwgOwor5Y2w5Yi35omAIDwgaW5zYXRzdWpvXCA7CivmooXmmqYgPCB1bWVnb3lvbWlcIDsKK+Wkp+iBluWggiA8IGRhaXNlaWRvdVwgOwor57WM5riI5oCnIDwga2VpemFpc2VpXCA7Civom4fntIvnn7MgPCBqYW1vbnNla2lcIDsKK+a1geihjOatjCA8IHJ5dXVrb3VrYVwgOwor5L2c54mpIDwgc2FrdW1vdHN1XCA7Civos57nvbAgPCBzaG91YmF0c3VcIDsKK+S4ieinkua0siA8IHNhbmtha3VzdVwgOwor5a6k55S6IDwgbXVyb21hY2hpXCA7CivkuInmlofliKQgPCBzYW5tb25iYW5cIDsKK+S4ieinkuazoiA8IHNhbmtha3VoYVwgOwor5a6f6Zqb5oCnIDwgamlzc2Fpc2VpXCA7Civnq7nnn6LmnaUgPCB0YWtleWFyYWlcIDsKK+W5s+ihjOe3miA8IGhlaWtvdXNlblwgOwor6JGx5Z2K5Li7IDwgbmVnaWJvdXp1XCA7CivlravlvJ/lrZAgPCBtYWdvZGVzaGlcIDsKK+WuueepjeavlCA8IHlvdXNla2loaVwgOwor5Li755y854K5IDwgc2h1Z2FudGVuXCA7CivpgaDpmpTlnLAgPCBlbmtha3VjaGlcIDsKK+S4ieinkuavlCA8IHNhbmtha3VoaVwgOwor5bCP5puyIDwgc2hvdWt5b2t1XCA7CivplbfmmYLplpMgPCBjaG91amlrYW5cIDsKK+WNiuerr+iAhSA8IGhhbnBhbW9ub1wgOwor54us56aB5rOVIDwgZG9ra2luaG91XCA7CivluoPlkYrosrsgPCBrb3Vrb2t1aGlcIDsKK+aknOWHuiA8IGtlbnNodXRzdVwgOwor5pyA5YSq6YGHIDwgc2FpeXV1Z3V1XCA7Civlj7DpoqjnnLwgPCB0YWlmdXVnYW5cIDsKK+acquaVmeiCsiA8IG1pa3lvdWlrdVwgOwor5L+K5oqcIDwgc2h1bmJhdHN1XCA7Civoo4Hmlq3luKsgPCBzYWlkYW5zaGlcIDsKK+iCieethiA8IG5pa3VoaXRzdVwgOwor5YWo5Y2Y5bCEIDwgemVudGFuc2hhXCA7CivohbDlvLEgPCBrb3NoaXlvd2FcIDsKK+WKueaenOeahCA8IGtvdWthdGVraVwgOwor56m65omL5b2iIDwga3V1dGVnYXRhXCA7CivljbDliLvluKsgPCBpbmtva3VzaGlcIDsKK+iDhueOiSA8IGtpbW90dGFtYVwgOwor6Z2S5bm06LypIDwgc2VpbmVuaGFpXCA7CivlibLng7nlupcgPCBrYXBwb3V0ZW5cIDsKK+advuiMuCA8IG1hdHN1dGFrZVwgOwor6LK/5piT5ZOBIDwgYm91ZWtpaGluXCA7CivliYrlsqnmqZ8gPCBzYWt1Z2Fua2lcIDsKK+ahnOahgyA8IHNha3VyYW5ib1wgOwor5a+C5ruFIDwgamFrdW1ldHN1XCA7CivmnKzos6ogPCBob25zaGl0c3VcIDsKK+WujOS6huW+jCA8IGthbnJ5b3Vnb1wgOwor5aSn5LiK5q61IDwgZGFpam91ZGFuXCA7CivlnJLoirjlraYgPCBlbmdlaWdha3VcIDsKK+aMh+ebuOaSsiA8IHl1Yml6dW1vdVwgOwor5rCX5a6H5bqD5aSnIDwga2l1a291ZGFpXCA7CivogqnnlLLluK8gPCBrZW5rb3V0YWlcIDsKK+ato+W9k+aApyA8IHNlaXRvdXNlaVwgOwor55Sj5a6kIDwgc2Fuc2hpdHN1XCA7CivnoILns5bmsLQgPCBzYXRvdW1penVcIDsKK+aWuemMkOW9oiA8IGhvdXN1aWtlaVwgOwor55u45b2T5pWwIDwgc291dG91c3V1XCA7CivohbDluIMgPCBrb3NoaW51bm9cIDsKK+iFsOW3uyA8IGtvc2hpbWFraVwgOwor5L2D54WuIDwgdHN1a3VkYW5pXCA7CivphrjpgKDphZIgPCBqb3V6b3VzaHVcIDsKK+W3puS4remWkyA8IHNhY2h1dWthblwgOwor5Lyd5Luk6ICFIDwgZGVucmVpc2hhXCA7CivmnKjntr/ph50gPCBtb21lbmJhcmlcIDsKK+ahgeapiyA8IGtldGFiYXNoaVwgOwor5pyo54mI55S7IDwgbW9rdWhhbmdhXCA7CivmpJzmn7vlvbkgPCBrZW5zYXlha3VcIDsKK+W/mOW5tOS8miA8IGJvdW5lbmthaVwgOwor5a6H5a6Z5a2mIDwgdWNodXVnYWt1XCA7CivmnLToqKUgPCBib2t1dG90c3VcIDsKK+mjn+iZqyA8IHNob2t1Y2h1dVwgOwor55yf55CG5YCkIDwgc2hpbnJpY2hpXCA7CivphY3msLTnrqEgPCBoYWlzdWlrYW5cIDsKK+WkqumZvemiqCA8IHRhaXlvdWZ1dVwgOwor5p2+6ISCIDwgbWF0c3V5YW5pXCA7CivkuIPpm6MgPCBzaGljaGluYW5cIDsKK+S9v+eUqOazlSA8IHNoaXlvdWhvdVwgOwor5Y2w5Yi35bGLIDwgaW5zYXRzdXlhXCA7Civpn7Plo7DlraYgPCBvbnNlaWdha3VcIDsKK+S8iumBlOWlsyA8IGRhdGVvbicnbmFcIDsKK+eUt+WdgiA8IG90b2tvemFrYVwgOwor5a6/5rOKIDwgc2h1a3VoYWt1XCA7CivkvK/niLUgPCBoYWt1c2hha3VcIDsKK+aik+W8kyA8IGF6dXNheXVtaVwgOwor5Ymv6Kme5Y+lIDwgZnVrdXNoaWt1XCA7Civlrp/mlbDkvZMgPCBqaXNzdXV0YWlcIDsKK+WkmuaVsOaEj+imiyA8IHRhc3V1aWtlblwgOwor6aSF6IKMIDwgbW9jaGloYWRhXCA7Civoo4/plbflsYsgPCB1cmFuYWdheWFcIDsKK+adseW3peWkpyA8IHRvdWtvdWRhaVwgOwor5bGF5a6kIDwga3lvc2hpdHN1XCA7CivpoY3pmpsgPCBoaXRhaWdpd2FcIDsKK+eVmeWIpSA8IHJ5dXViZXRzdVwgOwor5q2v56eR5Yy75birIDwgc2hpa2Fpc2hpXCA7CivoirHmmYLoqIggPCBoYW5hZG9rZWlcIDsKK+ijvemAoOWTgSA8IHNlaXpvdWhpblwgOwor6KiI566X5pu4IDwga2Vpc2Fuc2hvXCA7CivliLbli5XmiYsgPCBzZWlkb3VzaHVcIDsKK+S4jeimj+W+iyA8IGZ1a2lyaXRzdVwgOwor5Y+j6IWU55mMIDwga291a291Z2FuXCA7Civlm57nrZTogIUgPCBrYWl0b3VzaGFcIDsKK+WNmOW+k+mZoyA8IHRhbmp1dWppblwgOwor5Y+N6Iux6ZuEIDwgaGFuJydlaXl1dVwgOwor5Li75qip6ICFIDwgc2h1a2Vuc2hhXCA7CivlpKfmnKzlsbEgPCBkYWlob256YW5cIDsKK+S4reWSjOWJpCA8IGNodXV3YXphaVwgOwor5oWI5ZaE566xIDwgaml6ZW5iYWtvXCA7CivmnIDlt6bnv7wgPCBzYWlzYXlva3VcIDsKK+S4ieinkuaXlyA8IHNhbmtha3VraVwgOwor576O5YyW6YGL5YuVIDwgYmlrYXVuZG91XCA7CivliqDlhaXogIUgPCBrYW55dXVzaGFcIDsKK+ijvuaooeanmCA8IHN1c29tb3lvdVwgOwor5LiA6Zq755y8IDwgaXNzZWtpZ2FuXCA7Civkvb/nlKjmqKkgPCBzaGl5b3VrZW5cIDsKK+i/keS9k+ipqSA8IGtpbnRhaXNoaVwgOwor5aSp54u85pifIDwgdGVucm91c2VpXCA7CivotIjniakgPCBva3VyaW1vbm9cIDsKK+WGjeeKr+iAhSA8IHNhaWhhbnNoYVwgOwor5ZOo5oiS5qmfIDwgc2hvdWthaWtpXCA7CivpgJrpgY7pp4UgPCB0c3V1a2Fla2lcIDsKK+Wkp+S6uuWFsSA8IG90b25hZG9tb1wgOwor6aeQ5pelIDwgY2h1dW5pY2hpXCA7Civoi6blv4Poq4cgPCBrdXNoaW5kYW5cIDsKK+aTjee4puWjqyA8IHNvdWp1dXNoaVwgOwor55yf54+g5YWJIDwgc2hpbmp1a291XCA7Civmn7/muIsgPCBrYWtpc2hpYnVcIDsKK+mAn+W6puioiCA8IHNva3Vkb2tlaVwgOwor54Sh6LKs5Lu7IDwgbXVzZWtpbmluXCA7Civmkq3kvYbnt5ogPCBiYW50YW5zZW5cIDsKK+iBluiqleelrSA8IHNlaXRhbnNhaVwgOwor54Sh5LiA5paHIDwgbXVpY2hpbW9uXCA7CivluLjliIbmlbAgPCBqb3VidW5zdXVcIDsKK+S4i+mHkSA8IHNoaXRhZ2FuZVwgOwor5Lit6LaKIDwgY2h1dWdvc2hpXCA7Civlho3ogIPmha4gPCBzYWlrb3VyeW9cIDsKK+WEgOWFuOmVtyA8IGdpdGVuY2hvdVwgOwor5bel5a2m56eRIDwga291Z2FrdWthXCA7Civoh6rlt7HkuLvnvqkgPCBqaWtvc2h1Z2lcIDsKK+WqkuizqiA8IGJhaXNoaXRzdVwgOwor5Lqk5q2T5LyaIDwga291a2Fua2FpXCA7CivlpKnosaHlhIAgPCB0ZW5zaG91Z2lcIDsKK+S5vuiNiSA8IGhvc2hpZ3VzYVwgOwor55C054iqIDwga290b2R6dW1lXCA7CivohbDlnqMgPCBrb3NoaWdha2lcIDsKK+W8leeUqOaWhyA8IGluJyd5b3VidW5cIDsKK+S/guWumCA8IGtha2FyaWthblwgOwor6I2S5rOV5birIDwgYXJhaG91c2hpXCA7CivohIjmkI8gPCBteWFrdWhha3VcIDsKK+eOieiZqyA8IHRhbWFtdXNoaVwgOwor55Sf5ZS+IDwgbmFtYXRzdWJhXCA7Civlrp/ooYzlp5Tlk6EgPCBqaWtrb3VpaW5cIDsKK+eZgumkiuiyuyA8IHJ5b3V5b3VoaVwgOwor5qmf6Zai6ZW3IDwga2lrYW5jaG91XCA7CivlkJHlnLDmgKcgPCBrb3VjaGlzZWlcIDsKK+WHseaXi+mWgCA8IGdhaXNlbm1vblwgOwor6aOf6IKJIDwgc2hva3VuaWt1XCA7CivoqK3lgpnosrsgPCBzZXRzdWJpaGlcIDsKK+advuesoCA8IG1hdHN1a2FzYVwgOwor6KOB57ir5birIDwgc2FpaG91c2hpXCA7CivosqHnlKPmqKkgPCB6YWlzYW5rZW5cIDsKK+aKleefs+apnyA8IHRvdXNla2lraVwgOwor5oSb5qCh5b+DIDwgYWlrb3VzaGluXCA7CivkvI/prZTmrr8gPCBmdWt1bWFkZW5cIDsKK+iMtuWZqOe1hCA8IGNoYWtpZ3VtaVwgOwor5LiJ5aGB5omLIDwgc2FucnVpc2h1XCA7CivkuIPpgZMgPCBzaGljaGlkb3VcIDsKK+iZmueEoeeahCA8IGt5b211dGVraVwgOwor55Sz5YWlIDwgbW91c2hpaXJlXCA7CivkvJ3lsI7mgKcgPCBkZW5kb3VzZWlcIDsKK+WuouanmCA8IGt5YWt1c2FtYVwgOwor5paH5a2X5YiXIDwgbW9qaXJldHN1XCA7Civlj43oirvpoZ4gPCBoYW5zdXVydWlcIDsKK+WumuWei+ipqSA8IHRlaWtlaXNoaVwgOwor5rC06I+T5a2QIDwgbWl6dWdhc2hpXCA7CivlgJ/kuLsgPCBrYXJpbnVzaGlcIDsKK+m7jeWbo+WtkCA8IGtpYmlkYW5nb1wgOwor6Luf5Y+j6JOLIDwgbmFua291Z2FpXCA7Civkub7ogokgPCBob3NoaW5pa3VcIDsKK+mXh+ebuOWgtCA8IHlhbWlzb3ViYVwgOwor5a6/5paZIDwgc2h1a3VyeW91XCA7Civlrp/mpa0gPCBqaXRzdWd5b3VcIDsKK+WQiOawl+mBk+WutiA8IGFpa2lkb3VrYVwgOwor5a6/5pW1IDwgc2h1a3V0ZWtpXCA7CivlroflrpnljZogPCB1Y2h1dWhha3VcIDsKK+S4g+i8qiA8IHNoaWNoaXJpblwgOwor55Sj5Ye6IDwgc2Fuc2h1dHN1XCA7CivoiqXlrZDoj5wgPCBrYXJhc2hpbmFcIDsKK+ePjemBk+WFtyA8IGNoaW5kb3VndVwgOwor5L2V5pelIDwgbmFuJyduaWNoaVwgOwor6LOq54K5IDwgc2hpdHN1dGVuXCA7Civpu4TooajntJkgPCBraWJ5b3VzaGlcIDsKK+iEs+WupCA8IG5vdXNoaXRzdVwgOwor5b6T5aeJ5aa5IDwganV1c2hpbWFpXCA7CivlsbHkvI8gPCB5YW1hYnVzaGlcIDsKK+WtkOemj+iAhSA8IGtvYnVrdXNoYVwgOwor5oCd5oOz55WMIDwgc2hpc291a2FpXCA7CivmsJHooYbljJYgPCBtaW5zaHV1a2FcIDsKK+mIjem7hOiJsiA8IG5pYnVraWlyb1wgOwor5a6f5qCqIDwgaml0c3VrYWJ1XCA7CivkuInop5LlvaIgPCBzYW5rYWtrZWlcIDsKK+S+teWlqiA8IHNoaW5kYXRzdVwgOwor5aSn5pys5Za2IDwgZGFpaG9uJydlaVwgOwor54yb54m56KiTIDwgbW91dG9ra3VuXCA7CivnlLrkuK0gPCBtYWNoaW5ha2FcIDsKK+eUuuS4piA8IG1hY2hpbmFtaVwgOwor5LqI5ZGK57eoIDwgeW9rb2t1aGVuXCA7Civlhrfmub/luIMgPCByZWlzaGlwcHVcIDsKK+aomea6luWMliA8IGh5b3VqdW5rYVwgOwor5LiK6LOqIDwgam91c2hpdHN1XCA7CivkuIvosrwgPCBzaGl0YWJhcmlcIDsKK+mjn+e0hSA8IHNob2t1YmVuaVwgOwor5Y2X6Juu5Lq6IDwgbmFuYmFuamluXCA7Civmm7TooaMgPCBrb3JvbW9nYWVcIDsKK+mjn+ezpyA8IHNob2t1cnlvdVwgOwor55Sw5ZyS6KmpIDwgZGVuJydlbnNoaVwgOwor5Lit6KGoIDwgbmFrYW9tb3RlXCA7CivkuInop5LluqcgPCBzYW5rYWt1emFcIDsKK+Wwj+WnkSA8IGtvanV1dG9tZVwgOwor5YaN6Kmm6aiTIDwgc2Fpc2hpa2VuXCA7CivmoIPmnKggPCB0b2NoaW5va2lcIDsKK+WvkuW4r+aelyA8IGthbnRhaXJpblwgOwor6ISC5oCnIDwgYWJ1cmFzaG91XCA7CivlgInkuLsgPCBrdXJhbnVzaGlcIDsKK+WCvuaWnOmdoiA8IGtlaXNoYW1lblwgOwor5q275Lqh6ICFIDwgc2hpYm91c2hhXCA7CivkuIPos6IgPCBzaGljaGlrZW5cIDsKK+mBuuaXj+aJtuWKqSA8IGl6b2t1ZnVqb1wgOwor5aiR576F5Y+M5qi5IDwgc2FyYXNvdWp1XCA7CivkuInop5LluIYgPCBzYW5rYWt1aG9cIDsKK+Wwu+WPliA8IHNoaXJpdG9yaVwgOwor5ama5ae75rOVIDwga29uJydpbmhvdVwgOwor5LqM6YeN56qTIDwgbmlqdXVtYWRvXCA7Civoh6rnhLbpoZ4gPCBzaGl6ZW5ydWlcIDsKK+WwguWjsuWTgSA8IHNlbmJhaWhpblwgOwor5qC85byPIDwga2FrdXNoaWtpXCA7CivkuI3ntbHkuIAgPCBmdXRvdWl0c3VcIDsKK+aYvOmztiA8IGhpcnV0b25iaVwgOwor5aSc5Lya5pyNIDwgeWFrYWlmdWt1XCA7Civkuq7nm7QgPCByeW91Y2hva3VcIDsKK+aaoumBlCA8IGNob3V0YXRzdVwgOwor5YWa5rS+5b+DIDwgdG91aGFzaGluXCA7CivmgJ3mg7Pniq8gPCBzaGlzb3VoYW5cIDsKK+iFsOWFgyA8IGtvc2hpbW90b1wgOwor6ISH5beuIDwgd2FraXphc2hpXCA7CivlvIHlvZPku6MgPCBiZW50b3VkYWlcIDsKK+adieeuuCA8IHN1Z2liYXNoaVwgOwor6IKd6IeT55mMIDwga2Fuem91Z2FuXCA7Civku5jnhLwgPCB0c3VrZXlha2lcIDsKK+e1jOa4iOS6uiA8IGtlaXphaWppblwgOwor5LuP5pWZ5b6SIDwgYnVra3lvdXRvXCA7CivnsbPmtbfou40gPCBiZWlrYWlndW5cIDsKK+WQq+ayueWxpCA8IGdhbicneXVzb3VcIDsKK+aDheWgseiqjCA8IGpvdWhvdXNoaVwgOwor5a2m5q6WIDwgZ2FrdXNob2t1XCA7Civlh7Hml4vou40gPCBnYWlzZW5ndW5cIDsKK+iejeino+eCuSA8IHl1dWthaXRlblwgOwor5reL5be055CDIDwgcmlucGFreXV1XCA7Civlq4znhZnmqKkgPCBrZW4nJ2Vua2VuXCA7CivlpKvlqabku7IgPCBmdXVmdW5ha2FcIDsKK+aEn+afk+WOnyA8IGthbnNlbmdlblwgOwor6L+O6LOT6aSoIDwgZ2VpaGlua2FuXCA7CivmoKrlvI8gPCBrYWJ1c2hpa2lcIDsKK+ipleitsOS8miA8IGh5b3VnaWthaVwgOwor5aW955S35a2QIDwga291ZGFuc2hpXCA7Civml6nmmKXos6YgPCBzb3VzaHVuZnVcIDsKK+afj+anmSA8IGJ5YWt1c2hpblwgOwor5ZaJ6aCt55mMIDwga291dG91Z2FuXCA7Civni6zphYwgPCBkb2t1c2hha3VcIDsKK+WvnealreW4qyA8IG5ld2F6YXNoaVwgOwor5Lq65qC85YyWIDwgamlua2FrdWthXCA7Civlr4XlubQgPCB0b3JhZG9zaGlcIDsKK+e2uum6l+S6iyA8IGtpcmVpZ290b1wgOwor6KiY5ZCN5qCqIDwga2ltZWlrYWJ1XCA7CivmkLrluK/lk4EgPCBrZWl0YWloaW5cIDsKK+mnkOWxr+aJgCA8IGNodXV0b25qb1wgOwor56CU56m25omAIDwga2Vua3l1dWpvXCA7CivmnIDlhYjnq68gPCBzYWlzZW50YW5cIDsKK+WxheS9j+iAhSA8IGt5b2p1dXNoYVwgOwor6KqH5by15rOVIDwga29jaG91aG91XCA7CivlsI/lkoQgPCBrb2JhbmFzaGlcIDsKK+S4uOiFsCA8IG1hcnVnb3NoaVwgOwor5pi86aOvIDwgaGlydW1lc2hpXCA7CivoppbopprljJYgPCBzaGlrYWt1a2FcIDsKK+S8kOacqCA8IGJhdHN1Ym9rdVwgOwor5L+K5YKRIDwgc2h1bmtldHN1XCA7CivkuK3oj6/ooZcgPCBjaHV1a2FnYWlcIDsKK+iBt+attCA8IHNob2t1cmVraVwgOwor6YCj5Yik54q2IDwgcmVuYmFuam91XCA7Civpup3pppnnjKsgPCBqYWtvdW5la29cIDsKK+WkieWFieaYnyA8IGhlbmtvdXNlaVwgOwor5a+p5p+75a6YIDwgc2hpbnNha2FuXCA7CivlpJrnlKjkuK0gPCB0YXlvdWNodXVcIDsKK+aXqeadseaIpiA8IHNvdXRvdXNlblwgOwor6buZ56eY5qipIDwgbW9rdWhpa2VuXCA7CivlhpLpmbroq4cgPCBib3VrZW5kYW5cIDsKK+W4uOWCmeiWrCA8IGpvdWJpeWFrdVwgOwor5p625qmLIDwga2FrZWhhc2hpXCA7CivlporlqabmnI0gPCBuaW5wdWZ1a3VcIDsKK+afj+acqCA8IGthc2hpd2FnaVwgOwor5L2T6YeN6KiIIDwgdGFpanV1a2VpXCA7CivorablrpjpmoogPCBrZWlrYW50YWlcIDsKK+S7ruapiyA8IGthcmliYXNoaVwgOwor6Kyb6KuH56S+IDwga291ZGFuc2hhXCA7CivosYbnspIgPCBtYW1ldHN1YnVcIDsKK+S8keaXpSA8IGt5dXVqaXRzdVwgOwor5LiK6JasIDwgdXdhZ3VzdXJpXCA7Civov5Hku6PoqakgPCBraW5kYWlzaGlcIDsKK+eFmeiNiemKrSA8IHRhYmFrb3NlblwgOwor6ZaT5oqV6KmeIDwga2FudG91c2hpXCA7CivnrZTlvIHogIUgPCB0b3ViZW5zaGFcIDsKK+W5s+ihjOajkiA8IGhlaWtvdWJvdVwgOwor6J+75Zyw542EIDwgYXJpamlnb2t1XCA7Civlr4blrqQgPCBtaXNzaGl0c3VcIDsKK+aJgeahg+iFuiA8IGhlbnRvdXNlblwgOwor5YWs5Yik5bu3IDwga291aGFudGVpXCA7Civnjonnq6AgPCBneW9rdXNob3VcIDsKK+aVsOWEhOW5tCA8IHN1dW9rdW5lblwgOwor55uG54Gv57GgIDwgYm9uZG91cm91XCA7Civlrr/lsIYgPCBzaHVrdXNob3VcIDsKK+e1guaIpuW+jCA8IHNodXVzZW5nb1wgOwor5bCG5Y2SIDwgc2hvdXNvdHN1XCA7CivkuKHoiIwgPCByeW91emV0c3VcIDsKK+e3qOmbhumDqCA8IGhlbnNodXVidVwgOwor5ZGo5Zuy6ZW3IDwgc2h1dWljaG91XCA7CivlhazpgbjliLYgPCBrb3VzZW5zZWlcIDsKK+iBt+alrSA8IHNob2t1Z3lvdVwgOwor5L+u55CG5belIDwgc2h1dXJpa291XCA7CivmnIDpganljJYgPCBzYWl0ZWtpa2FcIDsKK+WMluWtpuiAhSA8IGthZ2FrdXNoYVwgOwor5bCO5Ye6IDwgZG91c2h1dHN1XCA7CivotIjos4TnvaogPCB6b3V3YWl6YWlcIDsKK+Wuv+WtpiA8IHNodWt1Z2FrdVwgOwor5LiN5om/6KqNIDwgZnVzaG91bmluXCA7CivkupTph43llLEgPCBnb2p1dXNob3VcIDsKK+Wwj+WGiiA8IHNob3VzYXRzdVwgOwor6Ieq5bex6aGV56S6IDwgamlrb2tlbmppXCA7CivlubTpvaLpoIYgPCBuZW5yZWlqdW5cIDsKK+izreWNmuWgtCA8IHRvYmFrdWpvdVwgOwor5Lih6ISaIDwgcnlvdWt5YWt1XCA7CivnnIvlrojogIUgPCBrYW5zaHVzaGFcIDsKK+iEseWHuiA8IGRhc3NodXRzdVwgOwor5a6i5bitIDwga3lha3VzZWtpXCA7CivlvLHpm7vlmaggPCBqYWt1ZGVua2lcIDsKK+S4i+iNiSA8IHNoaXRha3VzYVwgOwor5pel5pys55qEIDwgbmlob250ZWtpXCA7CivlsITlh7ogPCBzaGFzaHV0c3VcIDsKK+mWi+WivuWcsCA8IGthaWtvbmNoaVwgOwor5pqm6KGTIDwgcmVraWp1dHN1XCA7CivnpoHnjJ/mnJ8gPCBraW5yeW91a2lcIDsKK+i1pOWcnyA8IGFrYXRzdWNoaVwgOwor5YmN6aGN6YOoIDwgemVuZ2FrdWJ1XCA7CivoqZXoq5blrrYgPCBoeW91cm9ua2FcIDsKK+iHquW3seiyoOaLhSA8IGppa29mdXRhblwgOwor5LiA5paJ5a6JIDwgaXNzZWl5YXN1XCA7CivpnLLlpKnpoqjlkYIgPCByb3RlbmJ1cm9cIDsKK+S4gOimquetiSA8IGlzc2hpbnRvdVwgOwor5YaN5pS+6YCBIDwgc2FpaG91c291XCA7CivljJblrabnt5ogPCBrYWdha3VzZW5cIDsKK+aIpuatu+iAhSA8IHNlbnNoaXNoYVwgOwor5LiA5paH5a2XIDwgaWNoaW1vbmppXCA7CivmhI/msJfmipXlkIggPCBpa2l0b3Vnb3VcIDsKK+aWh+Wjq+mAoyA8IGJ1bnNoaXJlblwgOwor5pyo57a/57O4IDwgbW9tZW4nJ2l0b1wgOwor54Sm6Zu75rCXIDwgc2hvdWRlbmtpXCA7CivmjojkuI7lvI8gPCBqdXlvc2hpa2lcIDsKK+ebruWIhumHjyA8IG1lYnVucnlvdVwgOwor5aSp5LiL5LiAIDwgdGVua2FpY2hpXCA7CivkuK3lj6Tlk4EgPCBjaHV1a29oaW5cIDsKK+S4ree1tiA8IGNodXV6ZXRzdVwgOwor5biC5aC05oCnIDwgc2hpam91c2VpXCA7CivkuK3mgKfloakgPCBjaHV1c2VpZW5cIDsKK+S4i+iFuSA8IHNoaXRhYmFyYVwgOwor6ISx5L+XIDwgZGF0c3V6b2t1XCA7Civmlofoqp7oqr8gPCBidW5nb2Nob3VcIDsKK+aVo+WFtee3miA8IHNhbnBlaXNlblwgOwor5rWB6KGM5YWQIDwgcnl1dWtvdWppXCA7CivohbnmmYLoqIggPCBoYXJhZG9rZWlcIDsKK+W4g+iii+iFuSA8IGhvdGVpYmFyYVwgOwor54Sh5pWZ6IKyIDwgbXVreW91aWt1XCA7Civmn4/miYsgPCBrYXNoaXdhZGVcIDsKK+aVmeWMuuawkSA8IGt5b3VrdW1pblwgOwor5Zyw6ZyH5bivIDwgamlzaGludGFpXCA7CivplbfmnJ/miKYgPCBjaG91a2lzZW5cIDsKK+mAmuefpeewvyA8IHRzdXVjaGlib1wgOwor5Lm+54mpIDwgaG9zaGltb25vXCA7Civlrp/lraYgPCBqaXRzdWdha3VcIDsKK+WKoOW3pealrSA8IGtha291Z3lvdVwgOwor5LiN6KGM54q2IDwgZnVneW91am91XCA7CivmoZ/kv7UgPCBzYW5kYXdhcmFcIDsKK+iDoem6u+ayuSA8IGdvbWFhYnVyYVwgOwor5pel5pys54y/IDwgbmlob256YXJ1XCA7CivnjJ/oibIgPCByeW91c2hva3VcIDsKK+aXp+S4lueVjCA8IGt5dXVzZWthaVwgOwor5LiA6ISIIDwgaWNoaW15YWt1XCA7CivmsLTlubPli5UgPCBzdWloZWlkb3VcIDsKK+i1pOWPoyA8IHNla2lndWNoaVwgOwor55+t5aSn55SfIDwgdGFuZGFpc2VpXCA7Civogpblg4/nlLsgPCBzaG91em91Z2FcIDsKK+S4gOinkueNoyA8IGlra2FrdWp1dVwgOwor5Y+v5aSJ6ZW3IDwga2FoZW5jaG91XCA7CivkuIDopoHntKAgPCBpY2hpeW91c29cIDsKK+WFkOerpeWKhyA8IGppZG91Z2VraVwgOwor5Lit56uLIDwgY2h1dXJpdHN1XCA7Civln4vokazlnLAgPCBtYWlzb3VjaGlcIDsKK+S4iuijveacrCA8IGpvdXNlaWJvblwgOwor5Lih5oCn6IqxIDwgcnlvdXNlaWthXCA7Civlrp/ooYzogIUgPCBqaWtrb3VzaGFcIDsKK+iBt+aOjCA8IHNob2t1c2hvdVwgOwor5YK+5pac6KiIIDwga2Vpc2hha2VpXCA7CivlrqTlpJYgPCBzaGl0c3VnYWlcIDsKK+eKr+e9quiAhSA8IGhhbnphaXNoYVwgOwor5a+S5Y21IDwga2FudGFtYWdvXCA7CivntbbkuqTnirYgPCB6ZWtrb3Vqb3VcIDsKK+WkluadpeiAhSA8IGdhaXJhaXNoYVwgOwor5Lyd5bCO5L2TIDwgZGVuZG91dGFpXCA7Civos6rmhJ8gPCBzaGl0c3VrYW5cIDsKK+agvOWIpSA8IGtha3ViZXRzdVwgOwor5qC45YqbIDwga2FrdXJ5b2t1XCA7Civmlpzmu5HpmY0gPCBzaGFrYWtrb3VcIDsKK+W4uOW5s+WAiSA8IGpvdWhlaXNvdVwgOwor5Li75YKs6ICFIDwgc2h1c2Fpc2hhXCA7Civmn5Tou5/mgKcgPCBqdXVuYW5zZWlcIDsKK+WIhuaLhemHkSA8IGJ1bnRhbmtpblwgOwor5Ya36JS16LuKIDwgcmVpem91c2hhXCA7CivmnIDpq5joo4EgPCBzYWlrb3VzYWlcIDsKK+S4oeerryA8IHJ5b3VoYXNoaVwgOwor5Yqg5YWl5qipIDwga2FueXV1a2VuXCA7CivkuKHnq4sgPCByeW91cml0c3VcIDsKK+WJjeS9j+aJgCA8IHplbmp1dXNob1wgOwor5bGV5pyb5aGUIDwgdGVuYm91dG91XCA7CivpgY7mlY/nl4cgPCBrYWJpbnNob3VcIDsKK+S6uumgreeojiA8IG5pbnRvdXplaVwgOwor6Iie5Y+w5YqHIDwgYnV0YWlnZWtpXCA7CivkuIvntJAgPCBzaGl0YWhpbW9cIDsKK+W5s+Wdh+WApCA8IGhlaWtpbmNoaVwgOwor5LuK5pelIDwga29uJyduaWNoaVwgOwor5qC85a2Q6Z2iIDwga291c2hpbWVuXCA7Civml6npo68gPCBoYXlhbWVzaGlcIDsKK+awtOiMtuWxiyA8IG1penVjaGF5YVwgOwor5oOF5aCx57ayIDwgam91aG91bW91XCA7Civlt7Tml6bmnY8gPCBoYXRhbmt5b3VcIDsKK+iyuOaWuSA8IGthc2hpa2F0YVwgOwor5a+p576O55y8IDwgc2hpbmJpZ2FuXCA7Civoh6rnhLboprMgPCBzaGl6ZW5rYW5cIDsKK+mBi+WQpuWkqeizpiA8IHVucHV0ZW5wdVwgOwor5a+M5qCE6aSK5YyWIDwgZnVlaXlvdWthXCA7CivohILogqrphbggPCBzaGlib3VzYW5cIDsKK+mWgOWklua8oiA8IG1vbmdhaWthblwgOwor5Lm+5rm/IDwga2Fuc2hpdHN1XCA7Civmipfoj4zmgKcgPCBrb3VraW5zZWlcIDsKK+mhjee4gSA8IGdha3VidWNoaVwgOwor5Lyd5p+T5oCnIDwgZGVuc2Vuc2VpXCA7CivljbDluqbmlK/pgqMgPCBpbmRvc2hpbmFcIDsKK+acque1hOe5lCA8IG1pc29zaGlraVwgOwor5qyn5YyW5Li7576pIDwgb3VrYXNodWdpXCA7CivmsLTmp5jmtrIgPCBzdWl5b3Vla2lcIDsKK+aVkeWKqemaiiA8IGt5dXVqb3RhaVwgOwor54Sh5LqM54Sh5LiJIDwgbXVuaW11emFuXCA7Civkv53lrZjph48gPCBob3pvbnJ5b3VcIDsKK+S4ieaXpeS4ieWknCA8IG1pa2thbWl5b1wgOwor54mh5Li55rW36ICBIDwgYm90YW4nJ2ViaVwgOwor5qC45YW15ZmoIDwga2FrdWhlaWtpXCA7CivkuI3muoDotrMgPCBmdW1hbnpva3VcIDsKK+mVt+irh+itsCA8IG5hZ2FkYW5naVwgOwor5YaS6Zm66ICFIDwgYm91a2Vuc2hhXCA7CivkuIDnspIgPCBoaXRvdHN1YnVcIDsKK+Wroea1gSA8IGNoYWt1cnl1dVwgOwor5puy55uuIDwga3lva3Vtb2t1XCA7Civpo5/mrLIgPCBzaG9rdXlva3VcIDsKK+e+veiSsuWboyA8IGhhbmVidXRvblwgOwor5p+05Z6jIDwgc2hpYmFnYWtpXCA7CivlnLDmlrnlgrUgPCBjaGlob3VzYWlcIDsKK+S6ruaciCA8IHJ5b3VnZXRzdVwgOwor5pys5aC054mpIDwgaG9uYmFtb25vXCA7Civoqp7lrabogIUgPCBnb2dha3VzaGFcIDsKK+S4i+epvyA8IHNoaXRhYmFraVwgOwor5YaN6Kmm6KGMIDwgc2Fpc2hpa291XCA7CivkuIDnr4AgPCBoaXRvZnVzaGlcIDsKK+WxheS4iOmrmCA8IGl0YWtlZGFrYVwgOwor5aSq6Zm957O7IDwgdGFpeW91a2VpXCA7CivnoJTnqbblk6EgPCBrZW5reXV1aW5cIDsKK+W8pee4q+etliA8IGJpaG91c2FrdVwgOwor54Sh5aCx6YWsIDwgbXVob3VzaHV1XCA7CivomIbmup3mqYsgPCByb2tvdWt5b3VcIDsKK+e1tuWvvuWApCA8IHpldHRhaWNoaVwgOwor5aSp6aCC5YSAIDwgdGVuY2hvdWdpXCA7CivkuK3nlaUgPCBjaHV1cnlha3VcIDsKK+a1t+iziueOiyA8IGthaXpva3VvdVwgOwor6LKh55WM5Lq6IDwgemFpa2FpamluXCA7CivpoqjmnaXlnYogPCBmdXVyYWlib3VcIDsKK+eKtuiiiyA8IGpvdWJ1a3Vyb1wgOwor5a+S5Ya35ZywIDwga2FucmVpY2hpXCA7CivliY3nva7oqZ4gPCB6ZW5jaGlzaGlcIDsKK+eJqemHjyA8IGJ1dHN1cnlvdVwgOwor5Yqg5Yik5Lq6IDwga2FoYW4nJ25pblwgOwor5YuV5ruR6LuKIDwgZG91a2Fzc2hhXCA7CivntZDmsLfmnJ8gPCBrZXBweW91a2lcIDsKK+mbu+awl+apn+WZqCA8IGRlbmtpa2lraVwgOwor5bGV5pyb5Y+wIDwgdGVuYm91ZGFpXCA7CivnpLzmi53loIIgPCByZWloYWlkb3VcIDsKK+mrmOaAp+iDvSA8IGtvdXNlaW5vdVwgOwor5Lm+5rW36IuUIDwgaG9zaGlub3JpXCA7Civkvb/nlKjkvosgPCBzaGl5b3VyZWlcIDsKK+acieeUsOeEvCA8IGFyaXRheWFraVwgOwor6auY5ZGo5rOiIDwga291c2h1dWhhXCA7CivlsL/mpJzmn7sgPCBueW91a2Vuc2FcIDsKK+eSsOeKtue3miA8IGthbmpvdXNlblwgOwor5pyr5rWBIDwgbWF0c3VyeXV1XCA7Civnmbrmg7Pms5UgPCBoYXNzb3Vob3VcIDsKK+agquS4uyA8IGthYnVudXNoaVwgOwor5LiL55+zIDwgc2hpdGFpc2hpXCA7CivlhY3nqI7ngrkgPCBtZW56ZWl0ZW5cIDsKK+WApOauteihqCA8IG5lZGFuaHlvdVwgOwor6aOv5pmCIDwgbWVzaGlkb2tpXCA7Civnm7TlvJ/lrZAgPCBqaWtpZGVzaGlcIDsKK+iHquW3seWrjOaCqiA8IGppa29rZW4nJ29cIDsKK+mAo+mCpuWItiA8IHJlbnBvdXNlaVwgOwor5L2/55So5Lq6IDwgc2hpeW91bmluXCA7CivmpI3mnKjpiaIgPCB1ZWtpYmFjaGlcIDsKK+eFp+WwhOmHjiA8IHNob3VzaGF5YVwgOwor5L2c5LuYIDwgc2FrdWR6dWtlXCA7CivmhYjlloTlv4MgPCBqaXplbnNoaW5cIDsKK+S4iueevCA8IHV3YW1hYnV0YVwgOwor5pyo54WJ55OmIDwgbW9rdXJlbmdhXCA7CivmnKjntr/niakgPCBtb21lbm1vbm9cIDsKK+WFreWIhuWEgCA8IHJva3VidW5naVwgOwor6KaW5Zyw5bmzIDwgc2hpY2hpaGVpXCA7Civlt6XkvZzlk6EgPCBrb3VzYWt1aW5cIDsKK+S8r+WPlCA8IGhha3VzaHVrdVwgOwor54iq6Z2pIDwgdHN1bWFrYXdhXCA7CivlrqTlhoUgPCBzaGl0c3VuYWlcIDsKK+Wuv+S4uyA8IHlhZG9udXNoaVwgOwor5Zue5ryV5bqXIDwga2Fpc291dGVuXCA7Civnn7Pngq3ntIAgPCBzZWtpdGFua2lcIDsKK+aKleapn+eahCA8IHRvdWtpdGVraVwgOwor54yf54qs5bqnIDwgcnlvdWtlbnphXCA7CivkuozmnIggPCBmdXRhdHN1a2lcIDsKK+aXpemMsiA8IG5pY2hpcm9rdVwgOwor55qu6LKh5biDIDwga2F3YXphaWZ1XCA7CivkuIDnnqUgPCBpY2hpYmV0c3VcIDsKK+iEs+ihgOagkyA8IG5vdWtlc3NlblwgOwor5q2j5YmH5YyWIDwgc2Vpc29rdWthXCA7CivlpKflpaXmp5ggPCBvb29rdXNhbWFcIDsKK+S7pOWupCA8IHJlaXNoaXRzdVwgOwor5L2T5LitIDwga2FyYWRhanV1XCA7CivmrKDpmaXou4ogPCBrZWtrYW5zaGFcIDsKK+S4gOWkp+S6iyA8IGljaGlkYWlqaVwgOwor6YCj5YiG5pWwIDwgcmVuYnVuc3V1XCA7Civkv67nkIbku6MgPCBzaHV1cmlkYWlcIDsKK+S7suWlvSA8IG5ha2F5b3NoaVwgOwor6JWB6bq755a5IDwgamlubWFzaGluXCA7CivlhbfnlLPmm7ggPCBndXNoaW5zaG9cIDsKK+iqreabuOWutiA8IGRva3VzaG9rYVwgOwor576O6KGT6YOoIDwgYmlqdXRzdWJ1XCA7CivmhJ/orJ3npa0gPCBrYW5zaGFzYWlcIDsKK+iytOaWueaWuSA8IGFuYXRhZ2F0YVwgOwor6Kq/6auqIDwgY2hvdWhhdHN1XCA7CivmnbHkuqzpg70gPCB0b3VreW91dG9cIDsKK+aXp+Wtl+S9kyA8IGt5dXVqaXRhaVwgOwor6KO95L2c6LK7IDwgc2Vpc2FrdWhpXCA7CivkuozpgLHplpMgPCBuaXNodXVrYW5cIDsKK+mDqOiQveawkSA8IGJ1cmFrdW1pblwgOwor54mp6LOqIDwgYnVzc2hpdHN1XCA7Civml6npgZMgPCBoYXlhbWljaGlcIDsKK+WKoOebn+WbvSA8IGthbWVpa29rdVwgOwor5LiA5aSc5LitIDwgaGl0b3lhanV1XCA7Civmp4vpgKDkvZMgPCBrb3V6b3V0YWlcIDsKK+S4reWMu+WtpiA8IGNodXVpZ2FrdVwgOwor5Y+X5L+h6ICFIDwganVzaGluc2hhXCA7CivkvJrorbDpjLIgPCBrYWlnaXJva3VcIDsKK+emgeeFmei7iiA8IGtpbicnZW5zaGFcIDsKK+eJh+mBkyA8IGthdGFtaWNoaVwgOwor6Zu75a2Q6YqDIDwgZGVuc2hpanV1XCA7CivlhbfkvZPnrZYgPCBndXRhaXNha3VcIDsKK+i7iuaOjOWMuiA8IHNoYXNob3VrdVwgOwor54m56KitIDwgdG9rdXNldHN1XCA7Civku5blm73msJEgPCB0YWtva3VtaW5cIDsKK+WEkuWtpuiAhSA8IGp1Z2FrdXNoYVwgOwor5ZCN5o6i5YG1IDwgbWVpdGFudGVpXCA7Civlm73pgKPml5cgPCBrb2t1cmVua2lcIDsKK+mvo+eDj+iziiA8IHN1cnVtZWlrYVwgOwor5YWo5biC5rCRIDwgemVuc2hpbWluXCA7CivloLHpgZPlrpggPCBob3Vkb3VrYW5cIDsKK+S7j+WtpiA8IGJ1dHN1Z2FrdVwgOwor5pel5pys5pm0IDwgbmlob25iYXJlXCA7CivluIPlm6Pnmq4gPCBmdXRvbmdhd2FcIDsKK+S/rue5leiyuyA8IHNodXV6ZW5oaVwgOwor6Zyy6ZycIDwgdHN1eXVqaW1vXCA7CivlsILploDmm7ggPCBzZW5tb25zaG9cIDsKK+WFrOeUqOi7iiA8IGtvdXlvdXNoYVwgOwor6ICQ5oCn6I+MIDwgdGFpc2Vpa2luXCA7CivmnK3mnZ8gPCBzYXRzdXRhYmFcIDsKK+WQjOeorumhniA8IGRvdXNodXJ1aVwgOwor6Z+z5Z+f5aSWIDwgb24nJ2lraWdhaVwgOwor5aSP6bOlIDwgbmF0c3Vkb3JpXCA7Civos6rllY8gPCBzaGl0c3Vtb25cIDsKK+imquWSjOaApyA8IHNoaW53YXNlaVwgOwor5YmN6aCt6JGJIDwgemVudG91eW91XCA7Civnj6DmmpbnsL4gPCB0YW1hbm9yZW5cIDsKK+eLrOeriyA8IGRva3VyaXRzdVwgOwor5Lmd5pif5a62IDwga3l1dXNlaWthXCA7CivpgJrmsJflrZQgPCB0c3V1a2lrb3VcIDsKK+aciOasoSA8IHRzdWtpbmFtaVwgOwor6Kys6KqsIDwgYnl1dXNldHN1XCA7CivpmqPkurrmhJsgPCByaW5qaW4nJ2FpXCA7CivkuI3mib/nn6UgPCBmdXNob3VjaGlcIDsKK+atu+S6oeaVsCA8IHNoaWJvdXN1dVwgOwor5a2m5Y2SIDwgZ2FrdXNvdHN1XCA7CivlsYXkvY/mqKkgPCBreW9qdXVrZW5cIDsKK+mJpOaLrOW8pyA8IGthZ2lrYWtrb1wgOwor5YCm5oCg5oSfIDwga2VudGFpa2FuXCA7CivlhrfolLXoiLkgPCByZWl6b3VzZW5cIDsKK+WltOi8qSA8IHlhdHN1YmFyYVwgOwor5ZCI5oiQ6YWSIDwgZ291c2Vpc2h1XCA7CivlkbPlmYzmsYEgPCBtaXNvc2hpcnVcIDsKK+aMh+WwjuiAhSA8IHNoaWRvdXNoYVwgOwor5a2m5YqbIDwgZ2FrdXJ5b2t1XCA7CivljYrlj6/pgJogPCBoYW5rYXRzdXVcIDsKK+eEoeitpuWRiiA8IG11a2Vpa29rdVwgOwor5Z+65pys5ZCI5oSPIDwga2lob25nb3VpXCA7CivlpKfopb/pg7cgPCBkYWlzYWlnb3VcIDsKK+edoeecoOWJpCA8IHN1aW1pbnphaVwgOwor5peL55uk5belIDwgc2VuYmFua291XCA7CivluK/liIbmlbAgPCB0YWlidW5zdXVcIDsKK+Wwj+WFkOenkeWMuyA8IHNob3VuaWthaVwgOwor5b6M57aZ6ICFIDwga291a2Vpc2hhXCA7Civkuq7lr58gPCByeW91c2F0c3VcIDsKK+WkqeaXpeWhqSA8IHRlbnBpc2hpb1wgOwor5aiB5Zyn55qEIDwgaWF0c3V0ZWtpXCA7Civkuozph43lupUgPCBuaWp1dXpva29cIDsKK+WPiOW8n+WtkCA8IG1hdGFkZXNoaVwgOwor5pWR5ZG95YW3IDwga3l1dW1laWd1XCA7CivkuK3mrKEgPCBuYWthdHN1Z2lcIDsKK+emgeeMn+WMuiA8IGtpbnJ5b3VrdVwgOwor5byp57Sa6ImmIDwgZG9reXV1a2FuXCA7Civml6forZggPCBreXV1c2hpa2lcIDsKK+S6uuWmuyA8IGhpdG9kenVtYVwgOwor5oGS5LmF5YyWIDwga291a3l1dWthXCA7CivmlrDph4ggPCBzaGluc2hha3VcIDsKK+WFt+S9k+eahCA8IGd1dGFpdGVraVwgOwor6IW55LiA5p2vIDwgaGFyYWlwcGFpXCA7CivmoLznkIboq5YgPCBrYWt1cmlyb25cIDsKK+aXpeirviA8IG5pY2hpZGFrdVwgOwor5oSf6Kyd54q2IDwga2Fuc2hham91XCA7CivogqHkuIsgPCBtYXRhc2hpdGFcIDsKK+ePvuihjOeKryA8IGdlbmtvdWhhblwgOwor54+N5a6iIDwgY2hpbmt5YWt1XCA7Civml6Xku5jljbAgPCBoaWR6dWtlaW5cIDsKK+WkqumZveeBryA8IHRhaXlvdXRvdVwgOwor5oiR5q2m6ICF576FIDwgZ2FtdXNoYXJhXCA7CivlpJbpnaIgPCBzb3RvZHp1cmFcIDsKK+aDheWgsea6kCA8IGpvdWhvdWdlblwgOwor5pil6ImyIDwgc2h1bnNob2t1XCA7Civlhazkvb/ppKggPCBrb3VzaGlrYW5cIDsKK+e/jOaciCA8IHlva3VnZXRzdVwgOwor5biG56uL6LKdIDwgaG90YXRlZ2FpXCA7Civoi6XmrabogIUgPCB3YWthbXVzaGFcIDsKK+S6rOWlsyA8IGt5b3VvbicnbmFcIDsKK+a4heeul+abuCA8IHNlaXNhbnNob1wgOwor5pys6KGX6YGTIDwgaG9ua2FpZG91XCA7CivkuLLmn78gPCBrdXNoaWdha2lcIDsKK+mDteS+v+i7iiA8IHl1dWJpbnNoYVwgOwor6Ieq5bex54qg54myIDwgamlrb2dpc2VpXCA7Civnv4zml6UgPCB5b2t1aml0c3VcIDsKK+S4gOeCueapnyA8IGljaGl0ZW5raVwgOwor5Lih5qW1IDwgcnlvdWt5b2t1XCA7CivlpI/poqjpgqogPCBuYXRzdWthemVcIDsKK+S7j+WQjSA8IGJ1dHN1bXlvdVwgOwor54m56ImyIDwgdG9rdXNob2t1XCA7CivkuK3pgZPmtL4gPCBjaHV1ZG91aGFcIDsKK+aatOmiqOWfnyA8IGJvdWZ1dWlraVwgOwor55m656aB5pysIDwgaGFra2luYm9uXCA7CivlnKfpm7vmsJcgPCBhdHN1ZGVua2lcIDsKK+W3qOS6uuWFmiA8IGt5b2ppbnRvdVwgOwor6aOf5a6iIDwgc2hva2t5YWt1XCA7CivmmYLku6PniakgPCBqaWRhaW1vbm9cIDsKK+Wxj+miqOWyqSA8IGJ5b3VidWl3YVwgOwor5b+r6KiY6YyyIDwga2Fpa2lyb2t1XCA7CivniLbopqogPCBjaGljaGlveWFcIDsKK+aatOmiqOWcjyA8IGJvdWZ1dWtlblwgOwor5Luu5L2PIDwga2FyaXp1bWFpXCA7Civpm6rpnbQgPCB5dWtpZ3V0c3VcIDsKK+S4jeaIkOe4viA8IGZ1c2Vpc2VraVwgOwor54++5Ye6IDwgZ2Vuc2h1dHN1XCA7Civku4/lipsgPCBidXRzdXJpa2lcIDsKK+Wkmumfs+evgCA8IHRhb25zZXRzdVwgOwor6YCj5biv5oSfIDwgcmVudGFpa2FuXCA7Civpg6jliIbnmoQgPCBidWJ1bnRla2lcIDsKK+WwgumWgOW6lyA8IHNlbm1vbnRlblwgOwor5oWj55So6Z+zIDwga2FuJyd5b3VvblwgOwor5aSc5LuV5LqLIDwgeW9zaGlnb3RvXCA7CivmvJTnv5LmnpcgPCBlbnNodXVyaW5cIDsKK+S4i+anmCA8IHNoaW1vemFtYVwgOwor5p+Q6auY5qChIDwgYm91a291a291XCA7CivnubDotoogPCBrdXJpa29zaGlcIDsKK+e2v+iPk+WtkCA8IHdhdGFnYXNoaVwgOwor6Leo57ea5qmLIDwga29zZW5reW91XCA7CivnhZnojYnnm4YgPCB0YWJha29ib25cIDsKK+WPl+mok+elqCA8IGp1a2VuaHlvdVwgOwor5YaF5pac6KaWIDwgbmFpc2hhc2hpXCA7Civpm7vkv6HmqZ8gPCBkZW5zaGlua2lcIDsKK+Wcp+e4ruapnyA8IGFzc2h1a3VraVwgOwor54mp6IWwIDwgbW9ub2dvc2hpXCA7CivkuInmpI8gPCBtaXRzdW1hdGFcIDsKK+Wun+ihjOaoqSA8IGppa2tvdWtlblwgOwor5p2+5Y6fIDwgbWF0c3ViYXJhXCA7Civnm7jkupLmibbliqkgPCBzb3Vnb2Z1am9cIDsKK+izg+WAnyA8IGNoaW5zaGFrdVwgOwor54++6KGM5rOVIDwgZ2Vua291aG91XCA7Civoh6rnhLbnlYwgPCBzaGl6ZW5rYWlcIDsKK+aHuOWegue3miA8IGtlbnN1aXNlblwgOwor5LiK5omL6ICFIDwgam91enVtb25vXCA7Civml6XmnKzlraYgPCBuaWhvbmdha3VcIDsKK+aOkumanOWZqCA8IGhhaXNob3VraVwgOwor55yf5aSP5pelIDwgbWFuYXRzdWJpXCA7Civnhp/po58gPCBqdWt1c2hva3VcIDsKK+aEn+eEoemHjyA8IGthbm11cnlvdVwgOwor57Wm5LuY6YeRIDwga3l1dWZ1a2luXCA7Civku5jkurogPCB0c3VrZWJpdG9cIDsKK+S7o+WQjeipniA8IGRhaW1laXNoaVwgOwor5ZCM6Z+z55Ww576pIDwgZG91b24nJ2lnaVwgOwor5pWR5Yqp6Ii5IDwga3l1dWpvc2VuXCA7Civnib3lvJXou4ogPCBrZW4nJ2luc2hhXCA7CivlsYXkvY/mgKcgPCBreW9qdXVzZWlcIDsKK+aKl+WHneWbuiA8IGtvdWd5b3Vrb1wgOwor55yL6K236ZW3IDwga2FuZ29jaG91XCA7CivkvY7mgKfog70gPCB0ZWlzZWlub3VcIDsKK+eEoeioiOeUuyA8IG11a2Vpa2FrdVwgOwor5aSa6Z2i6KeSIDwgdGFtZW5rYWt1XCA7CivkvY7lkajms6IgPCB0ZWlzaHV1aGFcIDsKK+eQhuaDs+mDtyA8IHJpc291a3lvdVwgOwor6KKr54iG6ICFIDwgaGliYWt1c2hhXCA7Civnsr7oo73ns5YgPCBzZWlzZWl0b3VcIDsKK+acieeUqOaApyA8IHl1dXlvdXNlaVwgOwor5aiv5qW96KGXIDwgZ29yYWt1Z2FpXCA7CivlvozlpKnmgKcgPCBrb3V0ZW5zZWlcIDsKK+agoeWPi+S8miA8IGtvdXl1dWthaVwgOwor5Y2Y5Yip6KGoIDwgdGFucmloeW91XCA7Civoh6rlt7HmnKzkvY0gPCBqaWtvaG9uJydpXCA7CivmnIjlvbEgPCB0c3VraWthZ2VcIDsKK+eZgumkiuaJgCA8IHJ5b3V5b3Vqb1wgOwor5L+d5a6I55qEIDwgaG9zaHV0ZWtpXCA7CivmnIjlvaIgPCB0c3VraWdhdGFcIDsKK+eah+awkeWFmiA8IGtvdW1pbnRvdVwgOwor5LqM6YeN5ZSxIDwgbmlqdXVzaG91XCA7CivkuIPmm5wgPCBzaGljaGl5b3VcIDsKK+WNteiDjueUnyA8IHJhbnRhaXNlaVwgOwor5LiA5pyIIDwgaGl0b3RzdWtpXCA7Civnt5rpppnku6MgPCBzZW5rb3VkYWlcIDsKK+WvvuinkuWMliA8IHRhaWtha3VrYVwgOwor5pyA6auY54K5IDwgc2Fpa291dGVuXCA7CivlpKnos6ogPCB0ZW5zaGl0c3VcIDsKK+S4i+aVtyA8IHNoaXRhamlraVwgOwor5pyA5L2O6ZmQIDwgc2FpdGVpZ2VuXCA7CivkuIPmmJ8gPCBzaGljaGlzZWlcIDsKK+atjOWQiOaIpiA8IHV0YWdhc3NlblwgOwor5bmz5ZKM6LOeIDwgaGVpd2FzaG91XCA7CivmlbDkv4LmlbAgPCBzdXVrZWlzdXVcIDsKK+acqOeCreeUuyA8IG1va3V0YW5nYVwgOwor5YaN6ZmN6IeoIDwgc2Fpa291cmluXCA7CivmmJ/nqbogPCBob3NoaXpvcmFcIDsKK+WGjeiqv+afuyA8IHNhaWNob3VzYVwgOwor6auY6YeO5qeZIDwga291eWFtYWtpXCA7Civlrprmu5Hou4ogPCB0ZWlrYXNzaGFcIDsKK+S8vOaIkeicgiA8IGppZ2FiYWNoaVwgOwor5peL5YWJ5oCnIDwgc2Vua291c2VpXCA7CivlkI3mipXmiYsgPCBtZWl0b3VzaHVcIDsKK+eJueethiA8IHRva3VoaXRzdVwgOwor5LiA5pelIDwgdHN1aXRhY2hpXCA7CivmjqHnrpfmgKcgPCBzYWlzYW5zZWlcIDsKK+S8gealreiAhSA8IGtpZ3lvdXNoYVwgOwor5Lq65LydIDwgaGl0b2R6dXRlXCA7CivnlbDluLjpq5jmuKkgPCBpam91a291b25cIDsKK+eLkOeBqyA8IGtpdHN1bmViaVwgOwor6YqA56CC5a2QIDwgZ2luc3VuYWdvXCA7CivniIboo4IgPCBiYWt1cmV0c3VcIDsKK+eJueeriyA8IHRva3VyaXRzdVwgOwor5Lq65LuYIDwgaGl0b2R6dWtpXCA7Civlm73liIblr7ogPCBrb2t1YnVuamlcIDsKK+mkiuixmuWgtCA8IHlvdXRvbmpvdVwgOwor6Z2e5a++56ewIDwgaGl0YWlzaG91XCA7CivkuI3pirnpi7wgPCBmdXNodXVrb3VcIDsKK+WkseiogCA8IHNoaXRzdWdlblwgOwor5LiA6Zmi5Yi2IDwgaWNoaWluc2VpXCA7CivmiYvku5XkuosgPCB0ZXNoaWdvdG9cIDsKK+iDhuWaoueCjiA8IHRhbicnbm91ZW5cIDsKK+mbqumBkyA8IHl1a2ltaWNoaVwgOwor6ZuR6YyyIDwgemF0c3Vyb2t1XCA7CivlvLfmiZPogIUgPCBreW91ZGFzaGFcIDsKK+imj+evhOeahCA8IGtpaGFudGVraVwgOwor576F57SX57SZIDwgcmFzaGFnYW1pXCA7CivohLHooaPloLQgPCBkYXRzdWlqb3VcIDsKK+Wls+iFuSA8IG9uJyduYWJhcmFcIDsKK+eGsemHjyA8IG5ldHN1cnlvdVwgOwor5pWR5Yqp57ayIDwga3l1dWpvbW91XCA7Civpm6rovrEgPCBzZXRzdWpva3VcIDsKK+WkqumZsOaapiA8IHRhaWlucmVraVwgOwor5o+a57696J22IDwgYWdlaGFjaG91XCA7CivpoK3moKogPCBhdGFtYWthYnVcIDsKK+Wjq+WQm+WtkCA8IHNoaWt1bnNoaVwgOwor6IWw576955uuIDwga29zaGliYW1lXCA7CivniYfkuIDmlrkgPCBrYXRhaXBwb3VcIDsKK+mYv+eJh+eqnyA8IGFoZW5rdXRzdVwgOwor5aSx6KGAIDwgc2hpa2tldHN1XCA7CivmmqbmnIggPCByZWtpZ2V0c3VcIDsKK+WQvuacqOmmmSA8IHdhcmVtb2tvdVwgOwor5aSJ6LOqIDwgaGVuc2hpdHN1XCA7Civpo5/lh7ogPCBoYW1pZGFzaGlcIDsKK+Wkp+Wei+i7iiA8IG9vZ2F0YXNoYVwgOwor5aSP5a2j54axIDwga2FraW5ldHN1XCA7CivlpJzoqbEgPCB5b2JhbmFzaGlcIDsKK+WGhemZuOmcpyA8IG5haXJpa3VtdVwgOwor5qSN5a2X5qmfIDwgc2hva3VqaWtpXCA7CivpgYropqfoiLkgPCB5dXVyYW5zZW5cIDsKK+S5s+aIv+eCjiA8IG55dXVib3VlblwgOwor6ISz5oyr5YK3IDwgbm91emFzaG91XCA7CivlpKnooosgPCB0ZW5idWt1cm9cIDsKK+WtpueUn+iqsiA8IGdha3VzZWlrYVwgOwor6Z2057SQIDwga3V0c3VoaW1vXCA7Civol4HluIPlm6MgPCB3YXJhYnV0b25cIDsKK+ips+i/sCA8IHNob3VqdXRzdVwgOwor5oqV5qmf5b+DIDwgdG91a2lzaGluXCA7Civpg7Xkvr/oiLkgPCB5dXViaW5zZW5cIDsKK+mdkuW5tOWboyA8IHNlaW5lbmRhblwgOwor5Yun5ZGK5qGIIDwga2Fua29rdWFuXCA7CivnibnnmbogPCB0b2t1aGF0c3VcIDsKK+i7jeS6i+aPtOWKqSA8IGd1bmppZW5qb1wgOwor5aSp5paH5Y+wIDwgdGVubW9uZGFpXCA7Civoh6rnhLbms5UgPCBzaGl6ZW5ob3VcIDsKK+efs+eBsOa0niA8IHNla2thaWRvdVwgOwor5byK6KGj56C05bi9IDwgaGVpaWhhYm91XCA7CivpnbTnr6YgPCBrdXRzdWJlcmFcIDsKK+Wil+WIiuWPtyA8IHpvdWthbmdvdVwgOwor5LiL5b25IDwgc2hpdGF5YWt1XCA7CivkuKHlsrggPCByeW91Z2lzaGlcIDsKK+absuWtpiA8IGt5b2t1Z2FrdVwgOwor5YaF5aSn6IejIDwgbmFpZGFpamluXCA7Civnj77lnKjlnLAgPCBnZW56YWljaGlcIDsKK+aIpui7iumaiiA8IHNlbnNoYXRhaVwgOwor54af6YGUIDwganVrdXRhdHN1XCA7CivkuJHlubQgPCB1c2hpZG9zaGlcIDsKK+S6jOmHjeS4uCA8IG5panV1bWFydVwgOwor6Zyy6I2JIDwgdHN1eXVrdXNhXCA7CivphZLpgKDloLQgPCBzaHV6b3Vqb3VcIDsKK+aEm+iqreiAhSA8IGFpZG9rdXNoYVwgOwor5LiD5LqU5LiJ57iEIDwgc2hpbWVuYXdhXCA7CivmlofljJbpgbrnlKMgPCBidW5rYWlzYW5cIDsKK+efs+eBsOawtCA8IHNla2thaXN1aVwgOwor5aSn5Zyw6ZyHIDwgZGFpamlzaGluXCA7CivoqZXph4ggPCBoeW91c2hha3VcIDsKK+S4jeaLoeWkpyA8IGZ1a2FrdWRhaVwgOwor5Li75bCO6ICFIDwgc2h1ZG91c2hhXCA7Civpq5jokpTntbUgPCB0YWthbWFraWVcIDsKK+iHqueEtuatuyA8IHNoaXplbnNoaVwgOwor5bGF5L2P5ZywIDwga3lvanV1Y2hpXCA7CivkuIDlvosgPCBpY2hpcml0c3VcIDsKK+axuuatu+maiiA8IGtlc3NoaXRhaVwgOwor5Li76ISz6ICFIDwgc2h1bm91c2hhXCA7CivoiJ7mpb3pnaIgPCBidWdha3VtZW5cIDsKK+mtmuS7i+mhniA8IGd5b2thaXJ1aVwgOwor5pyA6auY5qScIDwgc2Fpa291a2VuXCA7CivnhrHmsZrmn5MgPCBuZXRzdW9zZW5cIDsKK+aBkuaYn+W5tCA8IGtvdXNlaW5lblwgOwor6Ieq5Zyo6YmkIDwgaml6YWlrYWdpXCA7Civnq7botbDppqwgPCBreW91c291YmFcIDsKK+W+oeaJi+a0lyA8IG1pdGFyYXNoaVwgOwor5aKX5bmF5ZmoIDwgem91ZnVrdWtpXCA7Civml6XmnKzlgbQgPCBuaWhvbmdhd2FcIDsKK+S6uumhnuWPsiA8IGppbnJ1aXNoaVwgOwor6Ium5Yq05qeYIDwga3Vyb3VzYW1hXCA7CivnpoDoq4vmm7ggPCByaW5zZWlzaG9cIDsKK+miqOWPoyA8IGthemFndWNoaVwgOwor5L+z6Kun5birIDwgaGFpa2Fpc2hpXCA7CivlpI/onYkgPCBuYXRzdXplbWlcIDsKK+iHquWutuWPl+eyviA8IGppa2FqdXNlaVwgOwor5oWj55So6KqeIDwga2FuJyd5b3Vnb1wgOwor5aWz5a2m55SfIDwgam9nYWt1c2VpXCA7Civpm7vlrZDnrqEgPCBkZW5zaGlrYW5cIDsKK+aiteWkqeeOiyA8IGJvbnRlbicnb3VcIDsKK+mcnuiNiSA8IGthc3VtaXNvdVwgOwor5ZCI5oiQ57SZIDwgZ291c2Vpc2hpXCA7Civpu4TpioXpibEgPCBrb3Vkb3Vrb3VcIDsKK+iHquWutuWPl+eyiSA8IGppa2FqdWZ1blwgOwor54mn55WcIDwgYm9rdWNoaWt1XCA7Civlj7jmlZnljLogPCBzaGlreW91a3VcIDsKK+ino+aVo+aoqSA8IGthaXNhbmtlblwgOwor6YGp6b2i5pyfIDwgdGVraXJlaWtpXCA7CivlqIHlmofnmoQgPCBpa2FrdXRla2lcIDsKK+mKg+mAo+WwhCA8IGp1dXJlbnNoYVwgOwor5YWN56iO5ZOBIDwgbWVuemVpaGluXCA7CivnhLzppIUgPCB5YWtpbW9jaGlcIDsKK+mrmOawtOa6liA8IGtvdXN1aWp1blwgOwor5aSq6Zm95bm0IDwgdGFpeW91bmVuXCA7CivmsJHnlJ/lp5Tlk6EgPCBtaW5zZWlpaW5cIDsKK+efs+e0sOW3pSA8IGlzaGl6YWlrdVwgOwor5a+d5bCP5L6/IDwgbmVzaG91YmVuXCA7CivmnKvlg5ogPCBiYXRzdXJ5b3VcIDsKK+WGt+iUteazlSA8IHJlaXpvdWhvdVwgOwor6YWN5YiG5rOVIDwgaGFpYnVuaG91XCA7CivogL3nvo7nmoQgPCB0YW5iaXRla2lcIDsKK+iou+mHiCA8IGNodXVzaGFrdVwgOwor5r2c6Iiq6ImHIDwgc2Vua291dGVpXCA7CivlkIznqpPnlJ8gPCBkb3Vzb3VzZWlcIDsKK+aUvua1quiAhSA8IGhvdXJvdXNoYVwgOwor56iu5qaC5b+1IDwgc2h1Z2FpbmVuXCA7Civml6nmmI7miKYgPCBzb3VtZWlzZW5cIDsKK+W+ruepjeWIhiA8IGJpc2VraWJ1blwgOwor6bOl556w5ZuzIDwgY2hvdWthbnp1XCA7CivlpbPnjovonIIgPCBqb291YmFjaGlcIDsKK+aWsOe3kSA8IHNoaW5yeW9rdVwgOwor5aSx6ISaIDwgc2hpa2t5YWt1XCA7CivlpJbkuqTlrpggPCBnYWlrb3VrYW5cIDsKK+atr+iCieeCjiA8IHNoaW5pa3VlblwgOwor6Ieq54S25p6XIDwgc2hpemVucmluXCA7CivmvJTnv5LloLQgPCBlbnNodXVqb3VcIDsKK+Wwj+m6puiJsiA8IGtvbXVnaWlyb1wgOwor5b6p5Y+k6Kq/IDwgZnVra29jaG91XCA7Civlj43nnIHkvJogPCBoYW5zZWlrYWlcIDsKK+eGseW4r+mtmiA8IG5ldHRhaWd5b1wgOwor5aSx6IG3IDwgc2hpc3Nob2t1XCA7CivljZjokYnmqZ8gPCB0YW4nJ3lvdWtpXCA7CivmhJvku5bkuLvnvqkgPCBhaXRhc2h1Z2lcIDsKK+aJgOacieiAhSA8IHNob3l1dXNoYVwgOwor6LKp5aOy6ICFIDwgaGFuYmFpc2hhXCA7CivkuLvkurrpoZQgPCBzaHVqaW5nYW9cIDsKK+a7keeoveiAhSA8IG9kb2tlbW9ub1wgOwor5rC06aOi6aWJIDwgbWl6dWtpa2luXCA7CivmtbfkuIrms5UgPCBrYWlqb3Vob3VcIDsKK+eGseWPr+WhkSA8IG5ldHN1a2Fzb1wgOwor5aSP6I+KIDwgbmF0c3VnaWt1XCA7CivkuIDlhZrkuIDmtL4gPCBpdHRvdWlwcGFcIDsKK+WMluWtpuWTgSA8IGthZ2FrdWhpblwgOwor57ie6JuHIDwgc2hpbWFoZWJpXCA7CivkuK3lk7IgPCBjaHV1dGV0c3VcIDsKK+WtkOayouWxsSA8IGtvZGFrdXNhblwgOwor5L2Z5rC05ZCQIDwgeW9zdWloYWtpXCA7CivmgKrlpYfmmKDnlLsgPCBrYWlraWVpZ2FcIDsKK+ios+i/sCA8IHlha3VqdXRzdVwgOwor5paw56+JIDwgc2hpbmNoaWt1XCA7CivlpI/ojYkgPCBuYXRzdWd1c2FcIDsKK+aYqOW5tOW6piA8IHNha3VuZW5kb1wgOwor546J5LiyIDwgdGFtYWd1c2hpXCA7Civoh6rnhLbmlbAgPCBzaGl6ZW5zdXVcIDsKK+WGjeiogueJiCA8IHNhaXRlaWJhblwgOwor6Z2S5bm05LyaIDwgc2VpbmVua2FpXCA7CivkuK3lj6MgPCBuYWthZ3VjaGlcIDsKK+Wls+eZliA8IG9uJyduYWd1c2VcIDsKK+ePvuWcsOS6uiA8IGdlbmNoaWppblwgOwor5oeQ55aR5b+DIDwga2FpZ2lzaGluXCA7Civlp6XmoZwgPCB1YmF6YWt1cmFcIDsKK+acneaXpeW9sSA8IGFzYWhpa2FnZVwgOwor6YeI6L+m54mf5bC8IDwgc2hha2FtdW5pXCA7CivoqpjlsI7lvL4gPCB5dXVkb3VkYW5cIDsKK+iyqeWjsue2siA8IGhhbmJhaW1vdVwgOwor5Lit5Y2SIDwgY2h1dXNvdHN1XCA7Civlhavnmb7kuIcgPCB5YW95b3JvenVcIDsKK+S4i+WdgiA8IHNoaW1vc2FrYVwgOwor6LKn5LmP5Lq6IDwgYmluYm91bmluXCA7Civlt6XkuovkuK0gPCBrb3VqaWNodXVcIDsKK+eqg+ebl+e9qiA8IHNldHRvdXphaVwgOwor6aKo5LiLIDwga2F6YXNoaW1vXCA7CivpnJ7ntrIgPCBrYXN1bWlhbWlcIDsKK+WOn+ijgeWIpCA8IGdlbnNhaWJhblwgOwor54K554Gr6JasIDwgdGVua2F5YWt1XCA7CivmtbfkuIrmqKkgPCBrYWlqb3VrZW5cIDsKK+WMluWtpuWJpCA8IGthZ2FrdXphaVwgOwor57K+6KO95rOVIDwgc2Vpc2VpaG91XCA7CivkuKHlj6MgPCByeW91Z3VjaGlcIDsKK+aWueecvOe0mSA8IGhvdWdhbnNoaVwgOwor5Y+X6LOe6ICFIDwganVzaG91c2hhXCA7CivmjqjolqbogIUgPCBzdWlzZW5zaGFcIDsKK+mbquaooeanmCA8IHl1a2ltb3lvdVwgOwor54iG56u5IDwgYmFrdWNoaWt1XCA7CivkuIDntJrlk4EgPCBpa2t5dXVoaW5cIDsKK+agvOWtkOeCuSA8IGtvdXNoaXRlblwgOwor5pel54usIDwgbmljaGlkb2t1XCA7Civos7zosrfogIUgPCBrb3ViYWlzaGFcIDsKK+S4gOetieizniA8IGl0dG91c2hvdVwgOwor5LuW5Zu95Lq6IDwgdGFrb2t1amluXCA7CivnqbrmsJfmtbQgPCBrdXVraXlva3VcIDsKK+aXp+eJqSA8IGt5dXVidXRzdVwgOwor542j5YGPIDwga2Vtb25vaGVuXCA7CivlpJbkuqTlm6MgPCBnYWlrb3VkYW5cIDsKK+Wft+ihjOmDqCA8IHNoaWtrb3VidVwgOwor6Zyy56iLIDwgdHN1eXVob2RvXCA7Civoqr/nr4AgPCBjaG91c2V0c3VcIDsKK+eQhuelnuirliA8IHJpc2hpbnJvblwgOwor5Y+X6aiT5paZIDwganVrZW5yeW91XCA7CivpoK3lrZcgPCBrYXNoaXJhamlcIDsKK+WLneaJi+WFgyA8IGthdHRlbW90b1wgOwor55u45a++6KuWIDwgc291dGFpcm9uXCA7CivliIrooYzkvJogPCBrYW5rb3VrYWlcIDsKK+eNhOWNkiA8IGdva3Vzb3RzdVwgOwor5L+d6IKy5paZIDwgaG9pa3VyeW91XCA7Civnt4/os4fnlKMgPCBzb3VzaGlzYW5cIDsKK+S9j+awkeeojiA8IGp1dW1pbnplaVwgOwor5LiU5Y+IIDwga2F0c3VtYXRhXCA7Civkv7jntabml6UgPCBob3VreXV1YmlcIDsKK+eJqea1gSA8IGJ1dHN1cnl1dVwgOwor5Lih5Ye4IDwgcnlvdXRvdHN1XCA7CivpmbPov7AgPCBjaGluanV0c3VcIDsKK+ihjOaUv+W6nCA8IGd5b3VzZWlmdVwgOwor5Yem5aWz6IacIDwgc2hvam9tYWt1XCA7Civpmo/kvLTogIUgPCB6dWloYW5zaGFcIDsKK+aWsOedgCA8IHNoaW5jaGFrdVwgOwor5aWz54mpIDwgb24nJ25hbW9ub1wgOwor5LiN5Y2wIDwgZnVqaXJ1c2hpXCA7CivmgqrlrqPkvJ0gPCBha3VzZW5kZW5cIDsKK+abuOS7mCA8IGtha2l0c3VrZVwgOwor5aSa6Z2i55qEIDwgdGFtZW50ZWtpXCA7CivoqbDojYkgPCB0c3VtZWt1c2FcIDsKK+WvvuaIpui7iiA8IHRhaXNlbnNoYVwgOwor5Lit5L2NIDwgY2h1dWd1cmFpXCA7CivnhoronIIgPCBrdW1hYmFjaGlcIDsKK+iLpuWKtOaApyA8IGt1cm91c2hvdVwgOwor5oGQ5aa75a62IDwga3lvdXNhaWthXCA7CivljYrpubnmsLQgPCBoYW5rYW5zdWlcIDsKK+ekvuS8mue1jOa4iCA8IHNoYWthaWtlaVwgOwor57WQ6LeP6La65bqnIDwga2Vra2FmdXphXCA7Civlr4boiKrogIUgPCBtaWtrb3VzaGFcIDsKK+S4gOetieimqiA8IGl0dG91c2hpblwgOwor5pWZ6IG3IDwga3lvdXNob2t1XCA7CivlpLHnpLwgPCBzaGl0c3VyZWlcIDsKK+ijnOW8t+etiyA8IGhva3lvdWtpblwgOwor55yL5p2/5bGLIDwga2FuYmFuJyd5YVwgOwor56S+5ZOh5a+uIDwgc2hhaW5yeW91XCA7CivlkbzlkLjms5UgPCBrb2t5dXVob3VcIDsKK+eJqeassiA8IGJ1dHN1eW9rdVwgOwor5LiA5Y+jIDwgaGl0b2t1Y2hpXCA7Civmk4LpiaIgPCBzdXJpYmFjaGlcIDsKK+S9k+mHj+WZqCA8IHRhaXJ5b3VraVwgOwor5YyW5a2m5LiKIDwga2FnYWt1am91XCA7CivkvL3ol43ps6UgPCBnYXJhbmNob3VcIDsKK+W/g+iHk+mDqCA8IHNoaW56b3VidVwgOwor54iG55m6IDwgYmFrdWhhdHN1XCA7CivmnIDpq5jls7AgPCBzYWlrb3Vob3VcIDsKK+ertui8quWgtCA8IGtlaXJpbmpvdVwgOwor6YeN5ama6ICFIDwganV1a29uc2hhXCA7CivopoHmkoPmqZ8gPCB5b3VnZWtpa2lcIDsKK+awl+WMlueGsSA8IGtpa2FuZXRzdVwgOwor5pio5pelIDwgc2FrdWppdHN1XCA7Civml6XmlZnntYQgPCBuaWtreW91c29cIDsKK+iTlum6u+WtkOayuSA8IGhpbWFzaGl5dVwgOwor57iu57SEIDwgc2h1a3V5YWt1XCA7CivkuInnrYnmmJ8gPCBzYW50b3VzZWlcIDsKK+WRveWQjeazlSA8IG1laW1laWhvdVwgOwor5Y+C5Yqg5Zu9IDwgc2Fua2Frb2t1XCA7CivmnKrplovmi5MgPCBtaWthaXRha3VcIDsKK+WGjee3qOaIkCA8IHNhaWhlbnNlaVwgOwor5aSx552AIDwgc2hpdGNoYWt1XCA7CivpgI/msLTmgKcgPCB0b3VzdWlzZWlcIDsKK+S4gOWIlyA8IGljaGlyZXRzdVwgOwor5Y+N5a++6KuWIDwgaGFudGFpcm9uXCA7Civlraboirjlk6EgPCBnYWt1Z2VpaW5cIDsKK+WGt+WHjemtmiA8IHJlaXRvdWd5b1wgOwor5pWX5q6L5YW1IDwgaGFpemFuaGVpXCA7CivkuIvlgbQgPCBzaGl0YWdhd2FcIDsKK+mbgOiJsiA8IHN1enVtZWlyb1wgOwor5pu455Sf6KuWIDwgc2hvc2Vpcm9uXCA7CivosqHmlL/pm6MgPCB6YWlzZWluYW5cIDsKK+S4gOWEsiA8IGhpdG9tb3VrZVwgOwor5Yi255mM5YmkIDwgc2VpZ2FuemFpXCA7Civml4/mu4UgPCB6b2t1bWV0c3VcIDsKK+eZuuazoeWJpCA8IGhhcHBvdXphaVwgOwor5Lyd5aWH55qEIDwgZGVua2l0ZWtpXCA7CivntYblibXoho8gPCBiYW5zb3Vrb3VcIDsKK+S4i+S9nCA8IHNoaXRhc2FrdVwgOwor55+z54Gw5bKpIDwgc2Vra2FpZ2FuXCA7Civoqr/nlaUgPCBjaG91cnlha3VcIDsKK+WFteWtpuagoSA8IGhlaWdha2tvdVwgOwor5a+M5bGx55yMIDwgdG95YW1ha2VuXCA7CivoqbLlvZPogIUgPCBnYWl0b3VzaGFcIDsKK+eCueaVsOWItiA8IHRlbnN1dXNlaVwgOwor5piU5pelIDwgc2VraWppdHN1XCA7Civpq5jnn6XnnIwgPCBrb3VjaGlrZW5cIDsKK+WPo+S4iuabuCA8IGtvdWpvdXNob1wgOwor6Kej5pS+5oSfIDwga2FpaG91a2FuXCA7CivlubPlkoznmoQgPCBoZWl3YXRla2lcIDsKK+iHqumWieeXhyA8IGppaGVpc2hvdVwgOwor6aOy55So5rC0IDwgaW4nJ3lvdXN1aVwgOwor5aSq6Zm95YWJIDwgdGFpeW91a291XCA7CivmqYvpoK3kv50gPCBreW91dG91aG9cIDsKK+WPpOabuOW4giA8IGtvc2hvaWNoaVwgOwor5aSp54S25aGpIDwgdGVuJyduZW5lblwgOwor5pat54axIDwgZGFuJyduZXRzdVwgOwor5piO5pelIDwgbXlvdW5pY2hpXCA7CivkuIvkuIsgPCBzaGltb2ppbW9cIDsKK+aVt+efsyA8IHNoaWtpaXNoaVwgOwor54m55pKuIDwgdG9rdXNhdHN1XCA7CivlhazlrrPnvaogPCBrb3VnYWl6YWlcIDsKK+a3q+WjsuWuvyA8IGluYmFpeWFkb1wgOwor6LW36KuL5paHIDwga2lzaG91bW9uXCA7CivpoZjkuosgPCBuZWdhaWdvdG9cIDsKK+eigeebpOe4niA8IGdvYmFuamltYVwgOwor6aC75Ye6IDwgaGluc2h1dHN1XCA7CivntrLooosgPCBhbWlidWt1cm9cIDsKK+S/l+S4lumWkyA8IHpva3VzZWtlblwgOwor55SY57SN6LGGIDwgYW1hbmF0dG91XCA7Civkub7pharntKAgPCBrYW5yYWt1c29cIDsKK+WGtumHkeWtpiA8IHlha2luZ2FrdVwgOwor5YaX6ZW35bqmIDwgam91Y2hvdWRvXCA7Civop5LpgJAgPCBrYWt1Y2hpa3VcIDsKK+engeWutumbhiA8IHNoaWthc2h1dVwgOwor5LiD5LiJIDwgc2hpY2hpc2FuXCA7CivntLDpnaIgPCBob3Nvb21vdGVcIDsKK+W4guihl+WcsCA8IHNoaWdhaWNoaVwgOwor5Y+v6Kqt5oCnIDwga2Fkb2t1c2VpXCA7CivmmI7npLrnmoQgPCBtZWlqaXRla2lcIDsKK+Wkp+Wbnui7oiA8IGRhaWthaXRlblwgOwor5ZGJ5pyN5bqXIDwgZ29mdWt1dGVuXCA7CivkuK3oj6/kuLwgPCBjaHV1a2Fkb25cIDsKK+Wkp+ilv+a0iyA8IHRhaXNlaXlvdVwgOwor55CG5oOz55qEIDwgcmlzb3V0ZWtpXCA7CivlprvluK/ogIUgPCBzYWl0YWlzaGFcIDsKK+WFq+WuneiPnCA8IGhhcHBvdXNhaVwgOwor5Y+M6LmE5424IDwgc291dGVpanV1XCA7Civpm4bntZAgPCBzaHV1a2V0c3VcIDsKK+WbveWFqOWcnyA8IGtva3V6ZW5kb1wgOwor5LqM6YCy5rOVIDwgbmlzaGluaG91XCA7Civopb/poqggPCBuaXNoaWthemVcIDsKK+iHqueEtuWilyA8IHNoaXplbnpvdVwgOwor5pmC5Luj5YqHIDwgamlkYWlnZWtpXCA7CivlpI/nl6kgPCBuYXRzdXlhc2VcIDsKK+a3t+aIkOmFkiA8IGtvbnNlaXNodVwgOwor5YWs5YCN5pWwIDwga291YmFpc3V1XCA7Civlh6bmlrnnrosgPCBzaG9ob3VzZW5cIDsKK+eZjOe0sOiDniA8IGdhbnNhaWJvdVwgOwor57Sv5rib56iOIDwgcnVpZ2VuemVpXCA7CivmiYDkvZzkuosgPCBzaG9zYWdvdG9cIDsKK+eEoemZkOWwjyA8IG11Z2Vuc2hvdVwgOwor54mp5oyHIDwgbW9ub3Nhc2hpXCA7CivnqoPnm5fniq8gPCBzZXR0b3VoYW5cIDsKK+S7leaJi+agqiA8IHNoaXRla2FidVwgOwor5Y+j5LiL5omLIDwga3VjaGliZXRhXCA7Civph5Hmm5zml6UgPCBraW4nJ3lvdWJpXCA7CivkvY7msLTmupYgPCB0ZWlzdWlqdW5cIDsKK+ijveS9nOaJgCA8IHNlaXNha3Vqb1wgOwor5Lyd5aOw566hIDwgZGVuc2Vpa2FuXCA7Civph4/lrZDljJYgPCByeW91c2hpa2FcIDsKK+aYn+W9sSA8IGhvc2hpa2FnZVwgOwor54us5YqbIDwgZG9rdXJ5b2t1XCA7Civlpb3kuIDlr74gPCBrb3VpdHRzdWlcIDsKK+inpuiouiA8IHNob2t1c2hpblwgOwor5LqL5YuZ5bGAIDwgamltdWt5b2t1XCA7Civlo7rnmr8gPCB0c3Vib3phcmFcIDsKK+WJr+m8u+iFlCA8IGZ1a3ViaWt1dVwgOwor5rWq6LK755mWIDwgcm91aGloZWtpXCA7CivntabosrvnlJ8gPCBreXV1aGlzZWlcIDsKK+ecjOS6uuS8miA8IGtlbmppbmthaVwgOwor5Li75Lu76ICFIDwgc2h1bmluc2hhXCA7CivlhaznlKjmlocgPCBrb3V5b3VidW5cIDsKK+e9quS6uiA8IHRzdW1pYml0b1wgOwor6KGM5pS/5Yy6IDwgZ3lvdXNlaWt1XCA7CivmjqjolqbnirYgPCBzdWlzZW5qb3VcIDsKK+S4rei3nemboiA8IGNodXVreW9yaVwgOwor5YWx55Sj5YyWIDwga3lvdXNhbmthXCA7CivkvJrmnJ/kuK0gPCBrYWlraWNodXVcIDsKK+mHjueQg+WgtCA8IHlha3l1dWpvdVwgOwor6ZaR5Y+k6bOlIDwga2Fua29kb3JpXCA7CivnlKPopKXmnJ8gPCBzYW5qb2t1a2lcIDsKK+S4u+WwjuaoqSA8IHNodWRvdWtlblwgOwor5Yuf6YeR566xIDwgYm9raW5iYWtvXCA7Civnoazlj6Pok4sgPCBrb3Vrb3VnYWlcIDsKK+aVt+eJqSA8IHNoaWtpbW9ub1wgOwor5Y+y6KiY5oqEIDwgc2hpa2lzaG91XCA7CivlubTpvaLlsaQgPCBuZW5yZWlzb3VcIDsKK+mgremggumDqCA8IHRvdWNob3VidVwgOwor6Zuq55S3IDwgeXVraW90b2tvXCA7Civml6nloLTnsbMgPCBoYXlhYmFtYWlcIDsKK+WPo+iqnuiosyA8IGtvdWdveWFrdVwgOwor5rK55Zyn6KiIIDwgeXVhdHN1a2VpXCA7CivlpI/niakgPCBuYXRzdW1vbm9cIDsKK+S6jOavm+S9nCA8IG5pbW91c2FrdVwgOwor5qSc57OW6KiIIDwga2VudG91a2VpXCA7CivoqpjlsI7kvZMgPCB5dXVkb3V0YWlcIDsKK+ecn+Wbm+inkiA8IG1hc2hpa2FrdVwgOwor55Sz5ZG96KiYIDwgc2hpbm1laWtpXCA7CivohILogqrlsaQgPCBzaGlib3Vzb3VcIDsKK+e1seioiCA8IGJhcmF0c3VraVwgOwor54mp5ZOB56iOIDwgYnVwcGluemVpXCA7Civps7Pnv4XpkJggPCBob3VzaGl0b3VcIDsKK+Wls+aWuSA8IG9uJyduYWdhdGFcIDsKK+aWsOapiyA8IHNoaW5iYXNoaVwgOwor5bGk56mN6ZuyIDwgc291c2VraXVuXCA7Civnp5LmmYLoqIggPCBieW91ZG9rZWlcIDsKK+ePiueRmuekgSA8IHNhbmdvc2hvdVwgOwor6YCj5L2T6KmeIDwgcmVudGFpc2hpXCA7CivnhrHnl4UgPCBuZXRzdWJ5b3VcIDsKK+mbu+eGsSA8IGRlbicnbmV0c3VcIDsKK+aYn+WxkSA8IGhvc2hpa3V6dVwgOwor5aSp5rCX5YW35ZCIIDwgdGVua2lndWFpXCA7CivlsYHnkIblsYggPCBoZXJpa3V0c3VcIDsKK+W/l+mhmOiAhSA8IHNoaWdhbnNoYVwgOwor5rWq5Lq655SfIDwgcm91bmluc2VpXCA7CivkuI3lj6/pgIYgPCBmdWthZ3lha3VcIDsKK+malOe1tiA8IGtha3V6ZXRzdVwgOwor54us5LuPIDwgZG9rdWZ1dHN1XCA7CivlpKfpmKrluIIgPCBvb3Nha2FzaGlcIDsKK+Wmu+WupCA8IHNhaXNoaXRzdVwgOwor5oSb6Kqt5pu4IDwgYWlkb2t1c2hvXCA7Civlj6/loZHniakgPCBrYXNvYnV0c3VcIDsKK+aWsOmAoOiqniA8IHNoaW56b3Vnb1wgOwor54mp5bmyIDwgbW9ub2hvc2hpXCA7Civlj43lr77ogIUgPCBoYW50YWlzaGFcIDsKK+e0sOmBkyA8IGhvc29taWNoaVwgOwor6buS56CC57OWIDwga3Vyb3phdG91XCA7CivnjoTnsbPojLYgPCBnZW5tYWljaGFcIDsKK+a8lOe5ueazlSA8IGVuJydla2lob3VcIDsKK+iHqOWgtOaEnyA8IHJpbmpvdWthblwgOwor54ax55CDIDwgbmV0c3VreXV1XCA7CivlgY/opb/poqggPCBoZW5zZWlmdXVcIDsKK+mmmeWRs+aWmSA8IGtvdW1pcnlvdVwgOwor5q2j55Sy5p2/IDwgc2Vpa2FucGFuXCA7Civlr6norbDkvJogPCBzaGluZ2lrYWlcIDsKK+mdkuajruecjCA8IGFvbW9yaWtlblwgOwor5LiN5oSf55eHIDwgZnVrYW5zaG91XCA7CivnuJ7niakgPCBzaGltYW1vbm9cIDsKK+emgeihm+maiiA8IGtpbicnZWl0YWlcIDsKK+aWsOaelSA8IG5paW1ha3VyYVwgOwor5pS+5rC06LuKIDwgaG91c3Vpc2hhXCA7CivogJDmsLTmgKcgPCB0YWlzdWlzZWlcIDsKK+eOhOmWoueVqiA8IGdlbmthbmJhblwgOwor5YmN5aSc56WtIDwgemVuJyd5YXNhaVwgOwor5pyI5qGC5YagIDwgZ2Vra2Vpa2FuXCA7CivntabooYAgPCBreXV1a2V0c3VcIDsKK+S6jOWIgOa1gSA8IG5pdG91cnl1dVwgOwor5paw5pytIDwgc2hpbnNhdHN1XCA7CivmiYDmnInmqKkgPCBzaG95dXVrZW5cIDsKK+WGt+WHjei7iiA8IHJlaXRvdXNoYVwgOwor5paw5pyIIDwgc2hpbmdldHN1XCA7CivmnaXkvJrogIUgPCByYWlrYWlzaGFcIDsKK+aWsOabsiA8IHNoaW5reW9rdVwgOwor5LiA5Y+j5ZCM6Z+zIDwgaWtrdWRvdW9uXCA7CivkuIrnrYnlk4EgPCBqb3V0b3VoaW5cIDsKK+iNkueZguayuyA8IGFyYXJ5b3VqaVwgOwor5qW96Kaz6KuWIDwgcmFra2Fucm9uXCA7CivlgLboiI7lrpcgPCBrdXNoYXNodXVcIDsKK+eEoeiogOWKhyA8IG11Z29uZ2VraVwgOwor5YWl6IuR5Yi4IDwgbnl1dWVua2VuXCA7CivohbHpnpjngo4gPCBrZW5zaG91ZW5cIDsKK+S4jeWPr+aAneitsCA8IGZ1a2FzaGlnaVwgOwor6auY5bm06ICFIDwga291bmVuc2hhXCA7CivoqbDniakgPCB0c3VtZW1vbm9cIDsKK+aOoua1t+eBryA8IHRhbmthaXRvdVwgOwor54Sh6KaP5b6LIDwgbXVraXJpdHN1XCA7Civng4/osp0gPCBrYXJhc3VnYWlcIDsKK+mdtOW6lSA8IGt1dHN1em9rb1wgOwor5b2i5a656KmeIDwga2VpeW91c2hpXCA7CivljLvkuovkvJ3pgZMgPCBpamlkZW5kb3VcIDsKK+aXp+W5tCA8IGZ1cnV0b3NoaVwgOwor5bKp6Zuy6ZuAIDwgaXdhaGliYXJpXCA7CivmmJ/lnosgPCBob3NoaWdhdGFcIDsKK+W+kuertui1sCA8IHRva3lvdXNvdVwgOwor5LiN5oim5YudIDwgZnVzZW5zaG91XCA7Civoh6rnhLbkurogPCBzaGl6ZW5qaW5cIDsKK+WutuW6reeahCA8IGthdGVpdGVraVwgOwor6auY5rCX5ZynIDwga291a2lhdHN1XCA7Civmu5HnqL3mnKwgPCBrb2trZWlib25cIDsKK+Wls+WtkOWvriA8IGpvc2hpcnlvdVwgOwor5aSx5pybIDwgc2hpdHN1Ym91XCA7CivmlL/msrvnmoQgPCBzZWlqaXRla2lcIDsKK+S4iuetieWFtSA8IGpvdXRvdWhlaVwgOwor54S857WQIDwgc2hvdWtldHN1XCA7Civljp/nqL/ntJkgPCBnZW5rb3VzaGlcIDsKK+iJsuecvOmPoSA8IGlyb21lZ2FuZVwgOwor5qW96K2c5Y+wIDwgZ2FrdWZ1ZGFpXCA7CivlhrfmsLTloYogPCByZWlzdWlrYWlcIDsKK+S/neitt+iJsiA8IGhvZ29zaG9rdVwgOwor5aG157SZIDwgY2hpcmlnYW1pXCA7CivoibLlj47lt64gPCBpcm9zaHV1c2FcIDsKK+e+juihk+WutiA8IGJpanV0c3VrYVwgOwor5YaN6KmV5L6hIDwgc2FpaHlvdWthXCA7CivlpLHmmI4gPCBzaGl0c3VtZWlcIDsKK+a6luWCmeS4rSA8IGp1bmJpY2h1dVwgOwor5YWJ5ZCI5oiQIDwga291Z291c2VpXCA7CivmgqrmnaHku7YgPCBha3Vqb3VrZW5cIDsKK+S4ieaCqui2oyA8IHNhbmFrdXNodVwgOwor5Li755Sj5ZywIDwgc2h1c2FuY2hpXCA7Civpn7Ppg6joqJjlj7cgPCBvbmJ1a2lnb3VcIDsKK+W3u+epjembsiA8IGtlbnNla2l1blwgOwor5biM56Gr6YW4IDwga2lyeXV1c2FuXCA7CivmlofmnIggPCBmdW1pZHp1a2lcIDsKK+iEseepgOapnyA8IGRha2tva3VraVwgOwor6byO6KuH5LyaIDwgdGVpZGFua2FpXCA7CivopIfmnKzkvY0gPCBmdWt1aG9uJydpXCA7Civkv5fotqPlkbMgPCB6b2t1c2h1bWlcIDsKK+e1guatouespiA8IHNodXVzaGlmdVwgOwor54Kt6LOqIDwgdGFuc2hpdHN1XCA7Civnsr7oo73lk4EgPCBzZWlzZWloaW5cIDsKK+aGsuWFtemaiiA8IGtlbnBlaXRhaVwgOwor6KqF5q66IDwgY2h1dXNhdHN1XCA7CivlpKfmmJQgPCBvb211a2FzaGlcIDsKK+mFjeWBtuiAhSA8IGhhaWd1dXNoYVwgOwor5YWF5b2T6YeRIDwganV1dG91a2luXCA7CivmtojngavmoJMgPCBzaG91a2FzZW5cIDsKK+WliOiJr+aZguS7oyA8IG5hcmFqaWRhaVwgOwor5a+E55WZ6ICFIDwga2lyeXV1c2hhXCA7CivngbDnpZ7mpb0gPCBoYWlrYWd1cmFcIDsKK+mHkeS4gOWwgSA8IGtpbicnaXBwdXVcIDsKK+W6iumBi+WLlSA8IHl1a2F1bmRvdVwgOwor6ZW36Z20IDwgbmFnYWd1dHN1XCA7Civlr4TnlJ/omasgPCBraXNlaWNodXVcIDsKK+ezuOi7iiA8IGl0b2d1cnVtYVwgOwor5aSc5pmSIDwgeW96YXJhc2hpXCA7CivkuInnrYnliIYgPCBzYW50b3VidW5cIDsKK+WWq+awtOe3miA8IGtpc3N1aXNlblwgOwor5aSP5pyNIDwgbmF0c3VmdWt1XCA7CivmgqrnjonljJYgPCBha3VkYW1ha2FcIDsKK+i2heewoeaYkyA8IGNob3VrYW4nJ2lcIDsKK+mdtOWiqCA8IGt1dHN1enVtaVwgOwor6KO46aasIDwgaGFkYWthdW1hXCA7CivmiK/kvZzogIUgPCBnZXNha3VzaGFcIDsKK+WmueWIhiA8IGltb3V0b2J1blwgOwor5pel5aKoIDwgbmljaGlib2t1XCA7CivmlrDlvI8gPCBzaGluc2hpa2lcIDsKK+mdkueToueuqiA8IGFvYnlvdXRhblwgOwor5oKj6ICF5qeYIDwga2FuamFzYW1hXCA7CivkupTlr7jph5ggPCBnb3N1bmt1Z2lcIDsKK+S7rueZu+iomCA8IGthcml0b3VraVwgOwor5ZCI5ZCM6LuNIDwgZ291ZG91Z3VuXCA7CivlpI/mmYIgPCBuYXRzdWRva2lcIDsKK+eCuOijgiA8IHNha3VyZXRzdVwgOwor54m55YilIDwgdG9rdWJldHN1XCA7CivopIfpm5EgPCBmdWt1emF0c3VcIDsKK+mdtOWeiyA8IGt1dHN1Z2F0YVwgOwor57KS6aOfIDwgcnl1dXNob2t1XCA7CivpnZ7nj77mpa0gPCBoaWdlbmd5b3VcIDsKK+WLpOWKtOiAhSA8IGtpbnJvdXNoYVwgOwor5Zu65a6a6ZW3IDwga290ZWljaG91XCA7Civmrrroj4zliaQgPCBzYWtraW56YWlcIDsKK+e1kOiGnCA8IGtldHN1bWFrdVwgOwor5rSL5pyN5bGLIDwgeW91ZnVrdXlhXCA7CivotbfniIbliaQgPCBraWJha3V6YWlcIDsKK+ihqOekuueBryA8IGh5b3VqaXRvdVwgOwor5L6/5Yip5bizIDwgYmVucmljaG91XCA7Civlj5bmnZDnj60gPCBzaHV6YWloYW5cIDsKK+iEguiCquS9kyA8IHNoaWJvdXRhaVwgOwor6YO15L6/5bGLIDwgeXV1YmluJyd5YVwgOwor57ie5p+EIDwgc2hpbWFnYXJhXCA7CivkuK3ovp7lhbggPCBjaHV1aml0ZW5cIDsKK+a0l+mdouWPsCA8IHNlbm1lbmRhaVwgOwor5aSx5oGLIDwgc2hpdHN1cmVuXCA7CivlhoXoo4/pm5sgPCBkYWlyaWJpbmFcIDsKK+WFqOS6jOmHjSA8IHplbicnbmlqdXVcIDsKK+a6tuino+aApyA8IHlvdWthaXNlaVwgOwor5aSx5b+1IDwgc2hpdHN1bmVuXCA7Civpm6jmm4cgPCBhbWFndW1vcmlcIDsKK+aVtOaVsOirliA8IHNlaXN1dXJvblwgOwor6KmV5rG6IDwgaHlvdWtldHN1XCA7CivmsJHnpL7lhZogPCBtaW5zaGF0b3VcIDsKK+S8geeUu+abuCA8IGtpa2FrdXNob1wgOwor55Sf5Zyw542EIDwgaWtpamlnb2t1XCA7CivntJTnsbPphZIgPCBqdW5tYWlzaHVcIDsKK+WbnumBiumtmiA8IGthaXl1dWd5b1wgOwor54Sh6Zai5b+DIDwgbXVrYW5zaGluXCA7CivogLPpvLvlkr3llokgPCBqaWJpaW5rb3VcIDsKK+Wls+WdgiA8IG9uJyduYXpha2FcIDsKK+e2mueZuiA8IHpva3VoYXRzdVwgOwor5Y+L5Lq66ZaTIDwgeXV1amlua2FuXCA7CivmnInmlpDplqMgPCB5dXVoaWtha3VcIDsKK+iyqeWjsuW6lyA8IGhhbmJhaXRlblwgOwor6ZuR5qCqIDwgemF0c3VrYWJ1XCA7Civlv5fmnJvmoKEgPCBzaGlib3Vrb3VcIDsKK+Wliei/jumWgCA8IGhvdWdlaW1vblwgOwor54mb5Yi6IDwgZ3l1dXNhc2hpXCA7Civln7fokZcgPCBzaHV1Y2hha3VcIDsKK+mdouS8muS6uiA8IG1lbmthaW5pblwgOwor5LiA566H5pyIIDwgaWtrYWdldHN1XCA7CivpgIHmsLTnrqEgPCBzb3VzdWlrYW5cIDsKK+ezluizqiA8IHRvdXNoaXRzdVwgOwor5Ya35YeN6Ii5IDwgcmVpdG91c2VuXCA7CivlubTphY3ogIUgPCBuZW5wYWlzaGFcIDsKK+aJi+aVsOaWmSA8IHRlc3V1cnlvdVwgOwor6Zui6a2C55eFIDwgcmlrb25ieW91XCA7CivnqbrmsJfmsZrmn5MgPCBrdXVraW9zZW5cIDsKK+eJh+WPoyA8IGthdGFrdWNoaVwgOwor5rC05Lit6IqxIDwgc3VpY2h1dWthXCA7Civli5XlkI3oqZ4gPCBkb3VtZWlzaGlcIDsKK+e0sOiFsCA8IGhvc29nb3NoaVwgOwor54OP5bi95a2Q6LKdIDwgZWJvc2hpZ2FpXCA7Civpu4Tph5HoibIgPCBrb2dhbmVpcm9cIDsKK+S6jOWFg+eahCA8IG5pZ2VudGVraVwgOwor57ie5qCX6bygIDwgc2hpbWFyaXN1XCA7CivlqK/mpb3loLQgPCBnb3Jha3Vqb3VcIDsKK+mBiuimp+WcsCA8IHl1dXJhbmNoaVwgOwor5pys5Zug5Z2KIDwgaG9uJydpbmJvdVwgOwor5YWx5qCE5ZyPIDwga3lvdWVpa2VuXCA7Civnm7jlr77mrbsgPCBhaXRhaWppbmlcIDsKK+WbveiHquaFoiA8IGt1bmlqaW1hblwgOwor6YeN5aSn6KaWIDwganV1ZGFpc2hpXCA7CivkvIHmpa3lhoUgPCBraWd5b3VuYWlcIDsKK+mbhuacrSA8IHNodXVzYXRzdVwgOwor5ZCM56qT5LyaIDwgZG91c291a2FpXCA7Civms5Xok67ojYkgPCBob3VyZW5zb3VcIDsKK+a1t+WklueJiCA8IGthaWdhaWJhblwgOwor5omH54q25ZywIDwgc2Vuam91Y2hpXCA7Civml6Xlh7ogPCBuaXNzaHV0c3VcIDsKK+aJk+aSg+aIpiA8IGRhZ2VraXNlblwgOwor5pyJ6LGh54Sh6LGhIDwgdXpvdW11em91XCA7CivpgI/lhpnntJkgPCB0b3VzaGFzaGlcIDsKK+S6uuaWh+WPsiA8IGppbmJ1bnNoaVwgOwor5oyH5a6a5Yi4IDwgc2hpdGVpa2VuXCA7CivpppnmsLTnk7YgPCBrb3VzdWliaW5cIDsKK+eGseW4r+eXhSA8IG5ldGFpYnlvdVwgOwor5Lyd6KiY54mpIDwgZGVua2ltb25vXCA7CivoqIjph4/lmaggPCBrZWlyeW91a2lcIDsKK+ijnOWEn+mHkSA8IGhvc2hvdWtpblwgOwor6Lu954qv572qIDwga2VpaGFuemFpXCA7Civlnarph48gPCB0c3Vib3J5b3VcIDsKK+WQiOaGsuaApyA8IGdvdWtlbnNlaVwgOwor5Zyw6Y6u56WtIDwgamljaGluc2FpXCA7CivkuLvkvZPmgKcgPCBzaHV0YWlzZWlcIDsKK+e0oOeykuWtkCA8IHNvcnl1dXNoaVwgOwor6J2/5Zyw542EIDwgaGFlamlnb2t1XCA7CivlpKfngb3lrrMgPCBkYWlzYWlnYWlcIDsKK+WltOWHpyA8IHlha2tvZGFrb1wgOwor5qW95aSp5a62IDwgcmFrdXRlbmthXCA7CivnkIbmgKfnmoQgPCByaXNlaXRla2lcIDsKK+e2v+ayuSA8IHdhdGFhYnVyYVwgOwor54S254S2IDwgc2hpa2FqaWthXCA7CivpvJPnrJvpmoogPCBrb3Rla2l0YWlcIDsKK+i1t+iotOeMtuS6iCA8IGtpc295dXV5b1wgOwor5a+S5pqW6KiIIDwga2FuZGFua2VpXCA7CivoirHnsonnl4cgPCBrYWZ1bnNob3VcIDsKK+S6uueCuueahCA8IGppbicnaXRla2lcIDsKK+S8iuWLouelnuWuriA8IGlzZWppbmd1dVwgOwor5Y+X6aCY6ICFIDwganVyeW91c2hhXCA7CivkvIHnlLvmgKcgPCBraWtha3VzZWlcIDsKK+WGhemcgOWeiyA8IG5haWp1Z2F0YVwgOwor5bC45L2N57Sg6aSQIDwgc2hpaXNvc2FuXCA7CivnhKbnhrEgPCBzaG91bmV0c3VcIDsKK+WOn+aIkOWyqSA8IGdlbnNlaWdhblwgOwor6KGo56S65p2/IDwgaHlvdWppYmFuXCA7CivlpI/lsbEgPCBuYXRzdXlhbWFcIDsKK+eIquWIhyA8IHRzdW1la2lyaVwgOwor5rC45LmF5q2vIDwgZWlreXV1c2hpXCA7CivljYPnpL7mnK0gPCBzZW5qYWZ1ZGFcIDsKK+iPqeaPkOW/gyA8IGJvZGFpc2hpblwgOwor5pS/5omAIDwgbWFuZG9rb3JvXCA7CivmlZnlvI8gPCBreW91c2hpa2lcIDsKK+ihqOekuuabuCA8IGh5b3VqaXNob1wgOwor5pS+5rC0566hIDwgaG91c3Vpa2FuXCA7Civlj4zlrZDokYkgPCBzb3VzaGl5b3VcIDsKK+aAp+i7ouaPmyA8IHNlaXRlbmthblwgOwor6Ly46YCB6YePIDwgeXVzb3VyeW91XCA7CivmiYDmnInlnLAgPCBzaG95dXVjaGlcIDsKK+m8k+aJi+mVtyA8IGtvc2h1Y2hvdVwgOwor54iq5YWIIDwgdHN1bWFzYWtpXCA7Civnt4/mnKzlupcgPCBzb3Vob250ZW5cIDsKK+WFg+awl+iAhSA8IGdlbmtpbW9ub1wgOwor5Luj5byB6ICFIDwgZGFpYmVuc2hhXCA7Civph47lpKnpoqjlkYIgPCBub3RlbmJ1cm9cIDsKK+eUuuWMu+iAhSA8IG1hY2hpaXNoYVwgOwor6KO95p2Q5omAIDwgc2VpemFpc2hvXCA7CivloanmvKwgPCBzaGlvZHp1a2VcIDsKK+WPjeS5sei7jSA8IGhhbnJhbmd1blwgOwor57eP5Lq65Y+jIDwgc291amlua291XCA7Civlupfku5XoiJ4gPCBtaXNlamltYWlcIDsKK+S4reS/neiAhSA8IGNodXVob3NoYVwgOwor5aWU5Ye6IDwgaG9uc2h1dHN1XCA7Civnq4vms5XogIUgPCByaXBwb3VzaGFcIDsKK+iNieebuOaSsiA8IGt1c2F6dW1vdVwgOwor5LqI5YKZ6YyoIDwgeW9iaWlrYXJpXCA7CivpmpTmnIggPCBrYWt1Z2V0c3VcIDsKK+atk+mAgeS8miA8IGthbnNvdWthaVwgOwor5Y+M57+F6aGeIDwgc291c2hpcnVpXCA7CivntJnntLDlt6UgPCBrYW1pemFpa3VcIDsKK+WxseawtOiNmCA8IHNhbnN1aXNvdVwgOwor6KGo5rKZ5rGwIDwgb21vdGV6YXRhXCA7CivllJDnjYXlrZAgPCBrYXJhamlzaGlcIDsKK+W5s+WSjOWbvSA8IGhlaXdha29rdVwgOwor5L2O5rCX5ZynIDwgdGVpa2lhdHN1XCA7CivkvZzmpa3nlKggPCBzYWd5b3V5b3VcIDsKK+aSg+eZuiA8IGdla2loYXRzdVwgOwor5Z+3562GIDwgc2hpcHBpdHN1XCA7CivmsLTlrrPlnLAgPCBzdWlnYWljaGlcIDsKK+e3j+acrOWxsSA8IHNvdWhvbnphblwgOwor5ryU6Kqs5a62IDwgZW56ZXRzdWthXCA7Civnm7Lohbjngo4gPCBtb3VjaG91ZW5cIDsKK+aWpeWKmyA8IHNla2lyeW9rdVwgOwor57WC55m6IDwgc2h1dWhhdHN1XCA7CivpgaPllJDkvb8gPCBrZW50b3VzaGlcIDsKK+WdgumBkyA8IHNha2FtaWNoaVwgOwor5L2c5qWt54+tIDwgc2FneW91aGFuXCA7CivmtLvmgKfngq0gPCBrYXNzZWl0YW5cIDsKK+acgOWwj+WMliA8IHNhaXNob3VrYVwgOwor5LmX6ZmN5aC0IDwgam91a291am91XCA7Civkv5fkuJbnlYwgPCB6b2t1c2VrYWlcIDsKK+avm+e5lOeJqSA8IGtlb3JpbW9ub1wgOwor5b+X6aGY5pu4IDwgc2hpZ2Fuc2hvXCA7CivkuI3mrbvps6UgPCBmdXNoaWNob3VcIDsKK+aCsuims+eahCA8IGhpa2FudGVraVwgOwor5pKy5ruFIDwgYm9rdW1ldHN1XCA7CivmiJDlip/ogIUgPCBzZWlrb3VzaGFcIDsKK+eci+itt+WtpiA8IGthbmdvZ2FrdVwgOwor5LiK5ZCR57eaIDwgam91a291c2VuXCA7Civmtojngo7liaQgPCBzaG91ZW56YWlcIDsKK+WFrOS8keaXpSA8IGtvdWt5dXViaVwgOwor57eP57235qWtIDwgc291aGlneW91XCA7Civlho3mipXos4cgPCBzYWl0b3VzaGlcIDsKK+atjOWKh+WgtCA8IGthZ2VraWpvdVwgOwor5rWE5rC05aC0IDwgam91c3Vpam91XCA7Civpm6rlpbMgPCB5dWtpb24nJ25hXCA7CivoqbPlr4YgPCBzaG91bWl0c3VcIDsKK+awtOiAleazlSA8IHN1aWtvdWhvdVwgOwor5aSn5ryU57+SIDwgZGFpZW5zaHV1XCA7CivnhKHnkIbnhKHkvZMgPCBtdXJpbXV0YWlcIDsKK+Wun+a4rOWbsyA8IGppc3Nva3V6dVwgOwor6Iao5by15bqmIDwgYm91Y2hvdWRvXCA7CivmmKDlhpnluZUgPCBlaXNoYW1ha3VcIDsKK+S4iuawtOmBkyA8IGpvdXN1aWRvdVwgOwor5YWo5L2P5rCRIDwgemVuanV1bWluXCA7CivmtYTmsLTlnLAgPCBqb3VzdWljaGlcIDsKK+mbkeWtpiA8IHphdHN1Z2FrdVwgOwor5Z2H6LOqIDwga2luc2hpdHN1XCA7CivnlLfmgKfnlKggPCBkYW5zZWl5b3VcIDsKK+WlveWlh+W/gyA8IGtvdWtpc2hpblwgOwor6IKJ5L2T576OIDwgbmlrdXRhaWJpXCA7Civlm73lrrbnmoQgPCBrb2trYXRla2lcIDsKK+eKoOeJsueahCA8IGdpc2VpdGVraVwgOwor6YCj5a2Q56qTIDwgcmVuamltYWRvXCA7Civnm7jlr77mgKcgPCBzb3V0YWlzZWlcIDsKK+eDj+eTnCA8IGthcmFzdXVyaVwgOwor6Zai5b+D5LqLIDwga2Fuc2hpbmppXCA7CivljJfmlpfmmJ8gPCBob2t1dG9zZWlcIDsKK+acrOaLoOWcsCA8IGhvbmt5b2NoaVwgOwor6Iie6LiP55eFIDwgYnV0b3VieW91XCA7CivlhoXlpJbkurogPCBuYWlnYWlqaW5cIDsKK+aSsuauuiA8IGJva3VzYXRzdVwgOwor5pGY55m6IDwgdGVraWhhdHN1XCA7CivkuIvnqK7lpbMgPCBnZXN1b24nJ25hXCA7CivotaTpm7vou4ogPCBha2FkZW5zaGFcIDsKK+Wkj+WQkSA8IG5hdHN1bXVraVwgOwor57KY5p2/5bKpIDwgbmVuYmFuZ2FuXCA7Civkuovmpa3ogIUgPCBqaWd5b3VzaGFcIDsKK+atk+i/juS8miA8IGthbmdlaWthaVwgOwor6KiX5YWQ5omAIDwgdGFrdWppc2hvXCA7CivmsLTmmYLoqIggPCBtaXp1ZG9rZWlcIDsKK+aNqOmJoiA8IHN1dGViYWNoaVwgOwor55uy5bCO54qsIDwgbW91ZG91a2VuXCA7Civosqnlo7LkurogPCBoYW5iYWluaW5cIDsKK+mvkCA8IHN1YmFzaGlyaVwgOwor5Lq65Zu96KiYIDwgamlua29rdWtpXCA7Civmma7lj4rniYggPCBmdWt5dXViYW5cIDsKK+mulyA8IGtvbm9zaGlyb1wgOwor5Y2K6YOo5pePIDwgaGFuYnV6b2t1XCA7Civpo5vpgZPlhbcgPCB0b2JpZG91Z3VcIDsKK+S6uumWk+eVjCA8IG5pbmdlbmthaVwgOwor5Lmz5q+N6LuKIDwgdWJhZ3VydW1hXCA7Civmg6jmrbvkvZMgPCB6YW5zaGl0YWlcIDsKK+WgheeJqSA8IGthdGFidXRzdVwgOwor6YGL5pCs5Lq6IDwgdW5wYW4nJ25pblwgOwor5oqX55Sf5YmkIDwga291c2VpemFpXCA7Civlm73piYQgPCBrb2t1dGV0c3VcIDsKK+inkuaovSA8IHRzdW5vZGFydVwgOwor5pKD5ruFIDwgZ2VraW1ldHN1XCA7CivkuJbov7foqIAgPCB5b21haWdvdG9cIDsKK+S8neiogOadvyA8IGRlbmdvbmJhblwgOwor6Ieq56uL6KqeIDwgamlyaXRzdWdvXCA7Civns6fnp6MgPCByeW91bWF0c3VcIDsKK+eGseW4r+aelyA8IG5ldHRhaXJpblwgOwor5rC45LmF5oCnIDwgZWlreXV1c2VpXCA7Civoo73mnKzlsYsgPCBzZWlob24nJ3lhXCA7Civmsb3ou4ros4MgPCBraXNoYWNoaW5cIDsKK+mao+WupCA8IHJpbnNoaXRzdVwgOwor56aB6KOP5qeYIDwga2lucmlzYW1hXCA7CivmhaPnlKjlj6UgPCBrYW4nJ3lvdWt1XCA7CivoprPlhYnlnLAgPCBrYW5rb3VjaGlcIDsKK+S8muimi+iAhSA8IGthaWtlbnNoYVwgOwor5p2x5aSp57SFIDwgdG91dGVua291XCA7CivoprPlhYnlm6MgPCBrYW5rb3VkYW5cIDsKK+aKgOW3p+eahCA8IGdpa291dGVraVwgOwor5qW96Zqg5bGFIDwgcmFrdWlua3lvXCA7Civpq5jpgJ/luqYgPCBrb3Vzb2t1ZG9cIDsKK+engeeUn+WtkCA8IHNoaXNlaXNoaVwgOwor5pel6KiY5bizIDwgbmlra2ljaG91XCA7CivmlL/msrvlraYgPCBzZWlqaWdha3VcIDsKK+WkluS7mCA8IHNvdG9kenVrZVwgOwor5rC055CG5a2mIDwgc3VpcmlnYWt1XCA7Civmr43lrZDlr64gPCBib3NoaXJ5b3VcIDsKK+edgOW/g+WcsCA8IGtpZ29rb2NoaVwgOwor5aSP5L2cIDwgbmF0c3VzYWt1XCA7CivmiJLljrPku6QgPCBrYWlnZW5yZWlcIDsKK+aKleS4jumHjyA8IHRvdXlvcnlvdVwgOwor54Wn5bC6IDwgc2hvdXNoYWt1XCA7CivmhI/msJfou5Lpq5ggPCBpa2lrZW5rb3VcIDsKK+mbquWFjiA8IHl1a2l1c2FnaVwgOwor5ZO65Lmz6aGeIDwgaG9ueXV1cnVpXCA7CivlpKfonZnonaAgPCBvb2tvdW1vcmlcIDsKK+eEoeaKleelqCA8IG11dG91aHlvdVwgOwor5oyH5LqG5ZuzIDwgc2hpcnlvdXp1XCA7Civpganlv5zmgKcgPCB0ZWtpb3VzZWlcIDsKK+ilsueItSA8IHNodXVzaGFrdVwgOwor5ryr5omN5birIDwgbWFuemFpc2hpXCA7Civkuovmpa3nqI4gPCBqaWd5b3V6ZWlcIDsKK+WPjuWuueaJgCA8IHNodXV5b3Vqb1wgOwor5Zu955K95pu4IDwga29rdWppc2hvXCA7CivmhJ/opprlmaggPCBrYW5rYWt1a2lcIDsKK+aVmeiCsuiyuyA8IGt5b3Vpa3VoaVwgOwor5Zu65a6a57WmIDwga290ZWlreXV1XCA7CivlsZXopqfkvJogPCB0ZW5yYW5rYWlcIDsKK+S6pOS7o+WItiA8IGtvdXRhaXNlaVwgOwor6ZidIDwga296YXRvaGVuXCA7Civopobmu4UgPCBmdWt1bWV0c3VcIDsKK+W3oeimluiJhyA8IGp1bnNoaXRlaVwgOwor5beh6KaW6Ii5IDwganVuc2hpc2VuXCA7CivmsY7plqLmlbAgPCBoYW5rYW5zdXVcIDsKK+WFqOS6uueUnyA8IHplbmppbnNlaVwgOwor5pat5by35bqmIDwgZGFua3lvdWRvXCA7Civlh6blpbPkvZwgPCBzaG9qb3Nha3VcIDsKK+WAi+aAp+eahCA8IGtvc2VpdGVraVwgOwor5aKo5aO3IDwgc3VtaXRzdWJvXCA7Civlhajpn7Ppmo4gPCB6ZW4nJ29ua2FpXCA7CivoqoXkvJAgPCBjaHV1YmF0c3VcIDsKK+WPjeS5seiAhSA8IGhhbnJhbnNoYVwgOwor6Lu96Z+z5qW9IDwga2Vpb25nYWt1XCA7Civlm57lvqnmnJ8gPCBrYWlmdWt1a2lcIDsKK+S4jeWQiOagvCA8IGZ1Z291a2FrdVwgOwor5ZGo5rOi6KiIIDwgc2h1dWhha2VpXCA7CivkuI3lj6/mrKAgPCBmdWtha2V0c3VcIDsKK+aUvuWHuiA8IGhvdXNodXRzdVwgOwor57WC5qW1IDwgc2h1dWt5b2t1XCA7CivnoazljJbnl4cgPCBrb3VrYXNob3VcIDsKK+mAhuWKueaenCA8IGd5YWtrb3VrYVwgOwor6KO457eaIDwgaGFkYWthc2VuXCA7CivopobmsqEgPCBmdWt1Ym90c3VcIDsKK+S4gOetieWbvSA8IGl0dG91a29rdVwgOwor5YWo5bCB5ZywIDwgemVuaG91Y2hpXCA7CivliIbphY3ph5EgPCBidW5wYWlraW5cIDsKK+iqnuWwvuWkieWMliA8IGdvYmloZW5rYVwgOwor5Zue6YGK6Ii5IDwga2FpeXV1c2VuXCA7CivlhazkvJrloIIgPCBrb3VrYWlkb3VcIDsKK+eEoeihqOaDhSA8IG11aHlvdWpvdVwgOwor54Wp5Z6LIDwgdXJ1c2FnYXRhXCA7CivmsLTppIPlrZAgPCBzdWlneW91emFcIDsKK+iplOWLhSA8IHNob3VjaG9rdVwgOwor6aKo5Zyf55eFIDwgZnV1ZG9ieW91XCA7CivmlK/lh7ogPCBzaGlzaHV0c3VcIDsKK+mAg+mBv+eahCA8IHRvdWhpdGVraVwgOwor5Y+k5paH5a2mIDwga29idW5nYWt1XCA7CivlhKrnrYnnlJ8gPCB5dXV0b3VzZWlcIDsKK+e2ouWvhiA8IGNodXVtaXRzdVwgOwor5Zu65a6a56WoIDwga290ZWloeW91XCA7Civlr77lkJHou4ogPCB0YWlrb3VzaGFcIDsKK+e1hOabsiA8IGt1bWlreW9rdVwgOwor5LqL5qWt55WMIDwgamlneW91a2FpXCA7CivmibnliKTnmoQgPCBoaWhhbnRla2lcIDsKK+WkqeWcsOS6uiA8IHRlbmNoaWppblwgOwor6KGA57Wx5pu4IDwga2V0dG91c2hvXCA7CivkuK3kuozpmo4gPCBjaHV1bmlrYWlcIDsKK+e2meWupCA8IGtlaXNoaXRzdVwgOwor5Zu96KGoIDwga3VuaW9tb3RlXCA7CivlsbHokaHokIQgPCB5YW1hYnVkb3VcIDsKK+m7hOmBk+mdoiA8IGtvdWRvdW1lblwgOwor5Y+X6Zuj6YCxIDwganVuYW5zaHV1XCA7CivlsIrljrPmrbsgPCBzb25nZW5zaGlcIDsKK+iAg+WPpOWtpiA8IGtvdWtvZ2FrdVwgOwor5L+d6Zm66Ki8IDwgaG9rZW5zaG91XCA7Civpq5jliIblrZAgPCBrb3VidW5zaGlcIDsKK+WGpeWKoOmHkSA8IG15b3VnYWtpblwgOwor5YaF5Zyw57GzIDwgbmFpY2hpbWFpXCA7Civmnq/okYnliaQgPCBrYXJlaGF6YWlcIDsKK+e3oOWIhyA8IHNoaW1la2lyaVwgOwor5oub5b6F5pelIDwgc2hvdXRhaWJpXCA7CivoqpPpoZjmqKkgPCBzZWlnYW5rZW5cIDsKK+aEm+WbveiAhSA8IGFpa29rdXNoYVwgOwor6Ki06aGY5Lq6IDwgc29nYW4nJ25pblwgOwor6aCY5LqL6aSoIDwgcnlvdWppa2FuXCA7CivkuLvniq/ogIUgPCBzaHVoYW5zaGFcIDsKK+mYsuitt+WjgSA8IGJvdWdvaGVraVwgOwor6LOH6YeR5rqQIDwgc2hpa2luZ2VuXCA7CivpvKDlkqznl4cgPCBzb2tvdXNob3VcIDsKK+S4iemHjeeblyA8IHNhbmp1dXRvdVwgOwor6YCj5L2T5b2iIDwgcmVudGFpa2VpXCA7CivlnJ/oibIgPCB0c3VjaGlpcm9cIDsKK+ePvuautemajiA8IGdlbmRhbmthaVwgOwor5oiQ5bm06ICFIDwgc2VpbmVuc2hhXCA7Civph5Hop6PnpoEgPCBraW5rYWlraW5cIDsKK+e+veWtkOeqgSA8IGhhbmV0c3VraVwgOwor5rSX5r+v57KJIDwgc2VudGFrdWtvXCA7CivlhYnljJblraYgPCBrb3VrYWdha3VcIDsKK+i+suWtpumDqCA8IG5vdWdha3VidVwgOwor5Li75Lu75Yi2IDwgc2h1bmluc2VpXCA7CivoiJ7ouI/mnI0gPCBidXRvdWZ1a3VcIDsKK+e1jOmok+irliA8IGtlaWtlbnJvblwgOwor57WM6aiT6KuHIDwga2Vpa2VuZGFuXCA7CivmjqXntpogPCBzZXRzdXpva3VcIDsKK+aTpumBjuWCtyA8IHNha2thc2hvdVwgOwor57Gz57KSIDwga29tZXRzdWJ1XCA7Civns5/mvKwgPCBrYXN1ZHp1a2VcIDsKK+Wbm+mHjeWljyA8IHNoaWp1dXNvdVwgOwor6LidIDwga3VydWJ1c2hpXCA7Civnm7jlr77lgKQgPCBzb3V0YWljaGlcIDsKK+avjeWtkOWFsSA8IGJvc2hpdG9tb1wgOwor6YmE54Gr5be7IDwgdGVra2FtYWtpXCA7Civoi7HkvZzmlocgPCBlaXNha3VidW5cIDsKK+aIpui7iuWFtSA8IHNlbnNoYWhlaVwgOwor5YaN5oqV56i/IDwgc2FpdG91a291XCA7CivmlZnppIrpg6ggPCBreW91eW91YnVcIDsKK+eri+azleaoqSA8IHJpcHBvdWtlblwgOwor5aal5Y2U54K5IDwgZGFreW91dGVuXCA7Civpm7Lku5nlsrMgPCB1bnplbmRha2VcIDsKK+WPl+mgmOabuCA8IGp1cnlvdXNob1wgOwor5LiN5rS75YyWIDwgZnVrYXRzdWthXCA7Civmlofnq6Doqp4gPCBidW5zaG91Z29cIDsKK+mdkuS/oeWPtyA8IGFvc2hpbmdvdVwgOwor5pmC6KiI55q/IDwgdG9rZWl6YXJhXCA7Civlub3lhqXnlYwgPCB5dXVtZWlrYWlcIDsKK+Wft+ihjOWQjyA8IHNoaWtrb3VyaVwgOwor562J6auY57eaIDwgdG91a291c2VuXCA7CivntZ7pppblj7AgPCBrb3VzaHVkYWlcIDsKK+egtOaTpumfsyA8IGhhc2F0c3VvblwgOwor6YCB5Y+X5L+hIDwgc291anVzaGluXCA7CivmkqvlrZAgPCBuYWRlc2hpa29cIDsKK+S4gOelnuirliA8IGlzc2hpbnJvblwgOwor552A6YGT5qW9IDwga2lkb3VyYWt1XCA7CivmmI7lvozlubQgPCBteW91Z29uZW5cIDsKK+azleWLmeecgSA8IGhvdW11c2hvdVwgOwor6YW157Sg5a2mIDwga291c29nYWt1XCA7Civns6DmsrkgPCBudWthYWJ1cmFcIDsKK+mVt+eJqSA8IGNob3VidXRzdVwgOwor5Zuz5YOP5a2mIDwgenV6b3VnYWt1XCA7CivlpYnliqDluLMgPCBob3VnYWNob3VcIDsKK+aEn+WYhuipniA8IGthbnRhbnNoaVwgOwor5YmN5aOy5Yi4IDwgbWFldXJpa2VuXCA7Civopqrlv4MgPCBveWFnb2tvcm9cIDsKK+ihhuiqrCA8IHNodXVzZXRzdVwgOwor5b+X6aGY5YW1IDwgc2hpZ2FuaGVpXCA7Civlj43lsITlhYkgPCBoYW5zaGFrb3VcIDsKK+earue0sOW3pSA8IGthd2F6YWlrdVwgOwor5b6p5rC05ZmoIDwgZnVrdXN1aWtpXCA7CivplqLpgKPmgKcgPCBrYW5yZW5zZWlcIDsKK+e1seiqnuWtpiA8IHRvdWdvZ2FrdVwgOwor57W25aaZIDwgemV0c3VteW91XCA7CivorJvmvJTmlpkgPCBrb3VlbnJ5b3VcIDsKK+aVrOiAgeS8miA8IGtlaXJvdWthaVwgOwor5pmC6ZaT6Lu4IDwgamlrYW5qaWt1XCA7Civlj43lr77lhZogPCBoYW50YWl0b3VcIDsKK+aQreS5l+iAhSA8IHRvdWpvdXNoYVwgOwor5Lmd5YiG5Lmd5Y6YIDwga3VidWt1cmluXCA7Civns7jmoZwgPCBpdG96YWt1cmFcIDsKK+ekvuawkeWFmiA8IHNoYW1pbnRvdVwgOwor57We6aaW5YiRIDwga291c2h1a2VpXCA7CivlibXlu7rogIUgPCBzb3VrZW5zaGFcIDsKK+acgOWkp+mZkCA8IHNhaWRhaWdlblwgOwor6Zmz5YiXIDwgY2hpbnJldHN1XCA7Civns7jmn7MgPCBpdG95YW5hZ2lcIDsKK+alk+WtkOmmmSA8IGZ1dXNoaWtvdVwgOwor5re35oiQ5bKpIDwga29uc2VpZ2FuXCA7Civln7fmi5cgPCBzaGl0c3V5b3VcIDsKK+e0meeymOWcnyA8IGthbWluZW5kb1wgOwor5p2h5Lu25paHIDwgam91a2VuYnVuXCA7CivmhI/orZjkvZMgPCBpc2hpa2l0YWlcIDsKK+engeS8gealrSA8IHNoaWtpZ3lvdVwgOwor56m65qih5qeYIDwgc29yYW1veW91XCA7CivlhazmnInmnpcgPCBrb3V5dXVyaW5cIDsKK+WxseawtOalvCA8IHNhbnN1aXJvdVwgOwor6KODIDwga2FtaXNoaW1vXCA7Civlr4TnlZnlnLAgPCBraXJ5dXVjaGlcIDsKK+aWreWJm+aApyA8IGRhbmdvdXNlaVwgOwor56m65YWD5rCXIDwga2FyYWdlbmtpXCA7CivooaQgPCBrb3JvbW9oZW5cIDsKK+aJk+eul+eahCA8IGRhc2FudGVraVwgOwor6YCA6JS15ZOBIDwgdGFpem91aGluXCA7Civopqrlr4YgPCBzaGlubWl0c3VcIDsKK+W9semfv+WcjyA8IGVpa3lvdWtlblwgOwor55yf5ZaE576OIDwgc2hpbnplbmJpXCA7CivmiYvooZPooaMgPCBzaHVqdXRzdWlcIDsKK+S6uumWk+aEmyA8IG5pbmdlbicnYWlcIDsKK+eQhuefpeeahCA8IHJpY2hpdGVraVwgOwor562S6Z+zIDwgdHN1dHN1b3RvXCA7CivnkKXnj4DoibIgPCBrb2hha3Vpcm9cIDsKK+W+oeiUreanmCA8IG9rYWdlc2FtYVwgOwor5q+b57Sw566hIDwgbW91c2Fpa2FuXCA7CivntIvmiYAgPCBtb25kb2tvcm9cIDsKK+iii+e2siA8IGZ1a3Vyb2FtaVwgOwor55m96IOh6bq7IDwgc2hpcm9nb21hXCA7Civoh6rlt7Hopo/liLYgPCBqaWtva2lzZWlcIDsKK+S4u+S6uuWFrCA8IHNodWppbmtvdVwgOwor5ZCM5aeU5ZOh5LyaIDwgZG91aWlua2FpXCA7CivkurrplpPmgKcgPCBuaW5nZW5zZWlcIDsKK+WNmOWtlOmhniA8IHRhbmtvdXJ1aVwgOwor5ZCM5Yq06ICFIDwgZG91cm91c2hhXCA7CivljbPmmYLmgKcgPCBzb2t1amlzZWlcIDsKK+S5s+WRkeWFkCA8IGNoaW5vbWlnb1wgOwor5LiN5b6z5ryiIDwgZnV0b2t1a2FuXCA7Civpga3pgYfmiKYgPCBzb3VndXVzZW5cIDsKK+iogOS8nSA8IGtvdG9kenV0ZVwgOwor5Y+I5a625p2lIDwgbWF0YWdlcmFpXCA7Civngavmn7EgPCBoaWJhc2hpcmFcIDsKK+S4gOWmu+WkmuWkqyA8IGlzc2FpdGFmdVwgOwor6Zal5pePIDwgYmF0c3V6b2t1XCA7CivmraPmm7jms5UgPCBzZWlzaG9ob3VcIDsKK+eLrOiHquaApyA8IGRva3VqaXNlaVwgOwor5byB6LKh5aSpIDwgYmVuemFpdGVuXCA7Civli6Tli5nlhYggPCBraW5tdXNha2lcIDsKK+inkuWPiSA8IHRzdW5vbWF0YVwgOwor5oyB5LmF5oimIDwgamlreXV1c2VuXCA7Civph43opoHoppYgPCBqdXV5b3VzaGlcIDsKK+epuuaihembqCA8IGthcmF0c3V5dVwgOwor5re35oiQ5ZujIDwga29uc2VpZGFuXCA7CivkuI3mraPooYzngrogPCBmdXNlaWtvdWlcIDsKK+aKnOmMqCA8IGJhdHN1YnlvdVwgOwor54Gr5Y+j5aOBIDwga2Frb3VoZWtpXCA7CivmmYLplpPooaggPCBqaWthbmh5b3VcIDsKK+egguWIqemBkyA8IGphcmltaWNoaVwgOwor5Lya6KiI5a6YIDwga2Fpa2Vpa2FuXCA7Civos6Tmpa3lqaYgPCBzZW5neW91ZnVcIDsKK+e1jOmok+iAhSA8IGtlaWtlbnNoYVwgOwor6Z+T5Zu96KqeIDwgaGFua29rdWdvXCA7CivmlZnmnZDosrsgPCBreW91emFpaGlcIDsKK+WbveeriyA8IGtva3VyaXRzdVwgOwor5Yud5Yip6ICFIDwgc2hvdXJpc2hhXCA7CivmvZzkvI/mnJ8gPCBzZW5wdWt1a2lcIDsKK+Wkp+Wbo+WGhiA8IGRhaWRhbicnZW5cIDsKK+WNiOWJjeanmCA8IGdvemVuc2FtYVwgOwor5rW35r2u6Z+zIDwga2FpY2hvdW9uXCA7CivmraPniq/ogIUgPCBzZWloYW5zaGFcIDsKK+WPr+Wcp+aApyA8IGthYXRzdXNlaVwgOwor6Ii55aSn5belIDwgZnVuYWRhaWt1XCA7CivlnJ/lnLDmn4QgPCB0b2NoaWdhcmFcIDsKK+eZu+iIt+ekvCA8IHRvdWdlbnJlaVwgOwor5r+A56qBIDwgZ2VraXRvdHN1XCA7CivmlL/lupznrYsgPCBzZWlmdXN1amlcIDsKK+a0u+aAp+WJpCA8IGthc3NlaXphaVwgOwor5Y+N5L2T5Yi2IDwgaGFudGFpc2VpXCA7Civol7voj4zpoZ4gPCBzb3VraW5ydWlcIDsKK+a7keefs+eyiSA8IGthc3Nla2lrb1wgOwor57ep6KGd5ZmoIDwga2Fuc2hvdWtpXCA7Civps6nnvr3oibIgPCBoYXRvYmFpcm9cIDsKK+mhleW+rumPoSA8IGtlbmJpa3lvdVwgOwor5ZCN5bqX6KGXIDwgbWVpdGVuZ2FpXCA7CivliKnkvJHoibIgPCByaWt5dXVpcm9cIDsKK+WbveS6i+eKryA8IGtva3VqaWhhblwgOwor6ZaA5p2+IDwga2Fkb21hdHN1XCA7Civmt7fmiJDlk4EgPCBrb25zZWloaW5cIDsKK+WIhumFjeiAhSA8IGJ1bnBhaXNoYVwgOwor5Y2K6YCP5piOIDwgaGFudG91bWVpXCA7CivliIbmsLTnt5ogPCBidW5zdWlzZW5cIDsKK+mBiuaIr+eahCA8IHl1dWdpdGVraVwgOwor6L+R6KaW55y8IDwga2luc2hpZ2FuXCA7CivkvJroqIjlo6sgPCBrYWlrZWlzaGlcIDsKK+aKnOmBkyA8IG51a2VtaWNoaVwgOwor5Yid5bm05YW1IDwgc2hvbmVuaGVpXCA7CivlkIzlubTovKkgPCBkb3VuZW5wYWlcIDsKK+ePjeeEoemhniA8IGNoaW5tdXJ1aVwgOwor566d5Y+j5LukIDwga2Fua291cmVpXCA7CivlkIjms5XmgKcgPCBnb3Vob3VzZWlcIDsKK+e3j+mgmOS6iyA8IHNvdXJ5b3VqaVwgOwor5bee5pS/5bqcIDwgc2h1dXNlaWZ1XCA7CivllYbli5nlrpggPCBzaG91bXVrYW5cIDsKK+mVt+aciCA8IG5hZ2F0c3VraVwgOwor5b+c5o6l6ZaTIDwgb3VzZXRzdW1hXCA7CivooYDogokgPCBrZXRzdW5pa3VcIDsKK+WPguS8muiAhSA8IHNhbmthaXNoYVwgOwor5LqU5Lq657WEIDwgZ29uaW5ndW1pXCA7Civpu4TmsLTmmbYgPCBraXp1aXNob3VcIDsKK+WGheijj+anmCA8IGRhaXJpc2FtYVwgOwor5aSn6KGG5YyWIDwgdGFpc2h1dWthXCA7Civph43lpKfmgKcgPCBqdXVkYWlzZWlcIDsKK+WkluWbveiqniA8IGdhaWtva3Vnb1wgOwor54++54q257at5oyBIDwgZ2Vuam91aWppXCA7Civli6LlipvlrrYgPCBzZWlyeW9ra2FcIDsKK+WjsOalveWutiA8IHNlaWdha3VrYVwgOwor6KO96Z205qWtIDwgc2Vpa2FneW91XCA7CivntJvlpLEgPCBmdW5zaGl0c3VcIDsKK+eusemmrOi7iiA8IGhha29iYXNoYVwgOwor5a6u5YaF55yBIDwga3VuYWlzaG91XCA7CivlnJ/niaIgPCB0c3VjaGlyb3VcIDsKK+S6i+alreaJgCA8IGppZ3lvdXNob1wgOwor56m/5bGx55SyIDwgc2VuemFua291XCA7Civoh6jmuK/nt5ogPCByaW5rb3VzZW5cIDsKK+WUr+WQjeirliA8IHl1aW1laXJvblwgOwor57Gz5rK5IDwga29tZWFidXJhXCA7CivmlLnpgKDou4ogPCBrYWl6b3VzaGFcIDsKK+m7hOmHkeWbvSA8IG91Z29ua29rdVwgOwor6IqL576K5765IDwgaW1veW91a2FuXCA7Civmm7TnlJ/lk4EgPCBrb3VzZWloaW5cIDsKK+W6g+Wwj+i3ryA8IGhpcm9rb3VqaVwgOwor562L6YGTIDwgc3VqaW1pY2hpXCA7Civnqbrov5TkuosgPCBzb3JhaGVuamlcIDsKK+evs+evpSA8IGhpY2hpcmlraVwgOwor6IWQ5qSN5ZyfIDwgZnVzaG9rdWRvXCA7CivmrKHlloTnrZYgPCBqaXplbnNha3VcIDsKK+e+jui+num6l+WPpSA8IGJpamlyZWlrdVwgOwor6YGg55y86Y+hIDwgdG9vbWVnYW5lXCA7CivlibXpgKDogIUgPCBzb3V6b3VzaGFcIDsKK+S8kembu+aXpSA8IGt5dXVkZW5iaVwgOwor5p2/6ZaA5bqXIDwgaGFubW9udGVuXCA7CivooZ3nqoEgPCBzaG91dG90c3VcIDsKK+WwjuWFpemDqCA8IGRvdW55dXVidVwgOwor56aF5ZWP562UIDwgemVubW9uZG91XCA7CivopIfmlbDlgIsgPCBmdWt1c3V1a29cIDsKK+ebsuWtpuagoSA8IG1vdWdha2tvdVwgOwor56CU5L+u6KqyIDwga2Vuc2h1dWthXCA7CivlvL7mgKfkvZMgPCBkYW5zZWl0YWlcIDsKK+exs+argyA8IGtvbWViaXRzdVwgOwor54yu5ZGI5pysIDwga2VudGVpYm9uXCA7CivlsL7plbfpto8gPCBvbmFnYWRvcmlcIDsKK+aUvumAgee2siA8IGhvdXNvdW1vdVwgOwor6bq76YWU6JasIDwgbWFzdWl5YWt1XCA7CivljYPlubTntIAgPCBzZW4nJ25lbmtpXCA7Civlg6fluL3lvIEgPCBzb3Vib3ViZW5cIDsKK+Wkqum8k+iFuSA8IHRhaWtvYmFyYVwgOwor5LiN6KiA5LiN6KqeIDwgZnVnZW5mdWdvXCA7CivliY3oo4XnoLIgPCB6ZW5zb3Vob3VcIDsKK+WIhumBo+maiiA8IGJ1bmtlbnRhaVwgOwor5ZC55aWP6ICFIDwgc3Vpc291c2hhXCA7Civnq5zpqqggPCByeXV1a290c3VcIDsKK+WlveinkuWutiA8IGtvdWtha3VrYVwgOwor57WQ5LqGIDwga2V0c3VyeW91XCA7CivmgqrlpKnlgJkgPCBha3V0ZW5rb3VcIDsKK+aOqOmAsuapnyA8IHN1aXNoaW5raVwgOwor5omY6YmiIDwgdGFrdWhhdHN1XCA7CivpiaTljYHlrZcgPCBrYWdpanV1amlcIDsKK+S5seawl+a1gSA8IHJhbmtpcnl1dVwgOwor5Ya35YeN5YmkIDwgcmVpdG91emFpXCA7CivliJ3lr77pnaIgPCBzaG90YWltZW5cIDsKK+mWj+W5tCA8IHVydXVkb3NoaVwgOwor56uNIDwgZGVrYXJpdHRvXCA7CivmnKrlj47ovIkgPCBtaXNodXVzYWlcIDsKK+WXnOWlveWTgSA8IHNoaWtvdWhpblwgOwor5oKq5aSp5L2/IDwgYWt1dGVuc2hpXCA7CivlvLfljJbnsbMgPCBreW91a2FtYWlcIDsKK+awtOmbt+iJhyA8IHN1aXJhaXRlaVwgOwor6Kaz5qWT5LyaIDwga2FucHV1a2FpXCA7CivkvZPpqJPoq4cgPCB0YWlrZW5kYW5cIDsKK+eEoeaEn+immiA8IG11a2Fua2FrdVwgOwor576k6YCf5bqmIDwgZ3Vuc29rdWRvXCA7Civpm7vnt4/noJQgPCBkZW5zb3VrZW5cIDsKK+S4jeeiuuWumiA8IGZ1a2FrdXRlaVwgOwor55m955m+5ZCIIDwgc2hpcmF5dXJpXCA7CivoiJ7ouIrliocgPCBidXlvdWdla2lcIDsKK+eBq+WPo+S4mCA8IGtha291a3l1dVwgOwor5LiN5q2j56K6IDwgZnVzZWlrYWt1XCA7Civnr4DntIQgPCBzZXRzdXlha3VcIDsKK+mZveWtkOe3miA8IHlvdXNoaXNlblwgOwor5LiL6YOo5qmf6ZaiIDwga2FidWtpa2FuXCA7CivlgIvkurroqqTlt64gPCBrb2ppbmdvc2FcIDsKK+aZgumWk+e1piA8IGppa2Fua3l1dVwgOwor5YiG5rC055WMIDwgYnVuc3Vpa2FpXCA7CivkubHlj43lsIQgPCByYW5oYW5zaGFcIDsKK+ino+etlOashCA8IGthaXRvdXJhblwgOwor6a2a6Zu36ImHIDwgZ3lvcmFpdGVpXCA7CivlhazmnInlnLAgPCBrb3V5dXVjaGlcIDsKK+asuueenueahCA8IGdpbWFudGVraVwgOwor5piO556t5bqmIDwgbWVpcnlvdWRvXCA7CivkvJroqIjkv4IgPCBrYWlrZWlrZWlcIDsKK+ifh+ibmSA8IGhpa2lnYWVydVwgOwor6Ly45YWl56iOIDwgeXVueXV1emVpXCA7CivonIDpu40gPCBtb3Jva29zaGlcIDsKK+S4jeW/g+W+lyA8IGZ1a29rb3JvZVwgOwor5LqM5qWt5ZywIDwgbmlneW91Y2hpXCA7CivljZjlrZDoq5YgPCB0YW5zaGlyb25cIDsKK+iovOaLoOmHkSA8IHNob3Vrb2tpblwgOwor55Sf5ryU5aWPIDwgbmFtYWVuc291XCA7Civlvq7liIblraYgPCBiaWJ1bmdha3VcIDsKK+WwguW+k+iAhSA8IHNlbmp1dXNoYVwgOwor5LuZ5Y+w5L6vIDwgc2VuZGFpa291XCA7CivooYDnnLwgPCBjaGltYW5ha29cIDsKK+euuOeusSA8IGhhc2hpYmFrb1wgOwor6KSH5byPIDwgZnVrdXNoaWtpXCA7CivlhYTlvJ/mhJsgPCBreW91ZGFpYWlcIDsKK+S4h+iPr+mPoSA8IG1hbmdla3lvdVwgOwor6KW/5YG0IDwgbmlzaGlnYXdhXCA7CivmkI3lpLEgPCBzb25zaGl0c3VcIDsKK+S6uumWk+WDjyA8IG5pbmdlbnpvdVwgOwor5Zue5biw55qEIDwga2Fpa2l0ZWtpXCA7CivluILmsJHnqI4gPCBzaGltaW56ZWlcIDsKK+WvjOWjq+mhjSA8IGZ1amliaXRhaVwgOwor6ZeW5YWlIDwgY2hpbicnbnl1dVwgOwor6JyC6bOlIDwgaGFjaGlkb3JpXCA7CivplovnpajmiYAgPCBrYWloeW91am9cIDsKK+S9k+iCsumkqCA8IHRhaWlrdWthblwgOwor54K65L2TIDwgdGVpdGFyYWt1XCA7CivlpInoqr/ms6IgPCBoZW5jaG91aGFcIDsKK+WQjOebn+i7jSA8IGRvdW1laWd1blwgOwor5ZGK6Ki05Lq6IDwga29rdXNvbmluXCA7Civlrablo6vpmaIgPCBnYWt1c2hpaW5cIDsKK+WAq+eQhueahCA8IHJpbnJpdGVraVwgOwor54K56by76JasIDwgdGVuYml5YWt1XCA7CivmipXmm7jmrIQgPCB0b3VzaG9yYW5cIDsKK+iotOion+azlSA8IHNvc2hvdWhvdVwgOwor5rq26LOqIDwgeW91c2hpdHN1XCA7Civlm5vljYrliIYgPCBzaGloYW5idW5cIDsKK+WQuOmfs+adkCA8IGt5dXVvbnphaVwgOwor5Yid5L2T6aiTIDwgc2hvdGFpa2VuXCA7CivovLjlhaXnm6QgPCB5dW55dXViYW5cIDsKK+S4jeefpeeBqyA8IHNoaXJhbnVoaVwgOwor5Y2157Sw6IOeIDwgcmFuc2FpYm91XCA7CivngbDlnJ8gPCBoYWl0c3VjaGlcIDsKK+S6jOalteWMliA8IG5pa3lva3VrYVwgOwor5Y2X5Lqs6YygIDwgbmFua2luam91XCA7Civps6nmmYLoqIggPCBoYXRvZG9rZWlcIDsKK+WTuuS5s+eTtiA8IGhvbnl1dWJpblwgOwor6KW/5rSL6aKoIDwgc2VpeW91ZnV1XCA7Civml6Loo73mnI0gPCBraXNlaWZ1a3VcIDsKK+iHqueUseaEj+W/lyA8IGppeXV1aXNoaVwgOwor6YeO5aSW5YqHIDwgeWFnYWlnZWtpXCA7Civmma7pgY3nmoQgPCBmdWhlbnRla2lcIDsKK+S6i+alreWboyA8IGppZ3lvdWRhblwgOwor5bCP5b255Lq6IDwga295YWt1bmluXCA7Civps6XlqpLoirEgPCBjaG91YmFpa2FcIDsKK+iHquayu+mgmCA8IGppY2hpcnlvdVwgOwor6KOP5omJIDwgdXJhdG9iaXJhXCA7CivnoLTlo4rnmoQgPCBoYWthaXRla2lcIDsKK+aQrOWHuiA8IGhhbnNodXRzdVwgOwor56qu5o6q5aSnIDwga3l1dXNvZGFpXCA7CivpgZTno6joiLkgPCBkYXJ1bWFzZW5cIDsKK+WGheWcqOaApyA8IG5haXphaXNlaVwgOwor5bCP6I2354mpIDwga29uaW1vdHN1XCA7Civml6Xns7vkurogPCBuaWtrZWlqaW5cIDsKK+eyvuelnuenkSA8IHNlaXNoaW5rYVwgOwor5LiA5ZCI55uuIDwgaWNoaWdvdW1lXCA7CivkvY/lsYXot6EgPCBqdXVreW9hdG9cIDsKK+WGjeaKl+W8gSA8IHNhaWtvdWJlblwgOwor6L6y5L2c5qWtIDwgbm91c2FneW91XCA7CivonqLlhYnnh4ggPCBrZWlrb3V0b3VcIDsKK+S7mOW5tOihqCA8IGZ1bmVucHlvdVwgOwor5q2j6Kqk6KGoIDwgc2VpZ29oeW91XCA7Civoo4/mg4UgPCB1cmFuYXNha2VcIDsKK+Wbm+i8qui7iiA8IHlvbnJpbnNoYVwgOwor6J+H6IKhIDwga2FlcnVtYXRhXCA7CivkuInph43lpY8gPCBzYW5qdXVzb3VcIDsKK+S/neiovOabuCA8IGhvc2hvdXNob1wgOwor5ZCm5a6a55qEIDwgaGl0ZWl0ZWtpXCA7CivkuI3pgKPntpogPCBmdXJlbnpva3VcIDsKK+atpuaWreeahCA8IGJ1ZGFudGVraVwgOwor5Ye656mC5pyfIDwgc2h1c3N1aWtpXCA7CivkuIrljYrmnJ8gPCBrYW1paGFua2lcIDsKK+WNmOWtkOiRiSA8IHRhbnNoaXlvdVwgOwor5b6u5YiG5ZWGIDwgYmlidW5zaG91XCA7CivooYDnhZkgPCBjaGlrZW11cmlcIDsKK+e+qeWFhOW8nyA8IGdpa3lvdWRhaVwgOwor6KSH57Sg5pWwIDwgZnVrdXNvc3V1XCA7Civou6LmoKHnlJ8gPCB0ZW5rb3VzZWlcIDsKK+aYvOWknOW4ryA8IGNodXV5YW9iaVwgOwor5LqL5Lu26KGoIDwgamlrZW5oeW91XCA7CivlvLfnoazmtL4gPCBreW91a291aGFcIDsKK+aOkuawl+mHjyA8IGhhaWtpcnlvdVwgOwor5LqM5qyh6KiY5oa2IDwgbmlqaWtpb2t1XCA7CivlpbPmloflrZcgPCBvbicnbmFtb2ppXCA7CivnhKHmiYDlsZ4gPCBtdXNob3pva3VcIDsKK+WRqOazouaVsCA8IHNodXVoYXN1dVwgOwor54yb56a96aGeIDwgbW91a2lucnVpXCA7CivnlJ/mhYvns7sgPCBzZWl0YWlrZWlcIDsKK+a7keiQvSA8IGthdHN1cmFrdVwgOwor5oyB54mpIDwgbW9jaGltb25vXCA7CivmlaPmlofoqakgPCBzYW5idW5zaGlcIDsKK+agveWfueeoriA8IHNhaWJhaXNodVwgOwor5Y6f6JGX6ICFIDwgZ2VuY2hvc2hhXCA7Civpm7voqbHmlpkgPCBkZW53YXJ5b3VcIDsKK+aKgOiDveizniA8IGdpbm91c2hvdVwgOwor5paZ6YeR5omAIDwgcnlvdWtpbmpvXCA7CivmlK/phY3ogIUgPCBzaGloYWlzaGFcIDsKK+a0l+a/r+WxiyA8IHNlbnRha3V5YVwgOwor5YG06L+R6ICFIDwgc29ra2luc2hhXCA7CivploDlj6MgPCBrYWRvZ3VjaGlcIDsKK+Wun+ekvuS8miA8IGppc3NoYWthaVwgOwor5b6h6YCj57WhIDwgZ29yZW5yYWt1XCA7Civpppnlt53nnIwgPCBrYWdhd2FrZW5cIDsKK+eCuea7tOWZqCA8IHRlbnRla2lraVwgOwor5LqI5a6a6KGoIDwgeW90ZWloeW91XCA7CivlvIHorbfmlpkgPCBiZW5nb3J5b3VcIDsKK+S4u+imgemnhSA8IHNodXlvdWVraVwgOwor5Yy65Lya6K2w5ZOhIDwga3VrYWlnaWluXCA7CivmjJ/mrrogPCBreW91c2F0c3VcIDsKK+WvvuW/nOetliA8IHRhaW91c2FrdVwgOwor6Ly45YWl5rivIDwgeXVueXV1a291XCA7CivlkIzlv5fkvJogPCBkb3VzaGlrYWlcIDsKK+i/juaSg+apnyA8IGdlaWdla2lraVwgOwor5Lq65Zyw5ZCNIDwgamluY2hpbWVpXCA7Civkv53pmbrmlpkgPCBob2tlbnJ5b3VcIDsKK+Wkp+WSjOiKiyA8IHlhbWF0b2ltb1wgOwor6auY5YSq5YWIIDwga291eXV1c2VuXCA7CivmlL7pgIHms5UgPCBob3Vzb3Vob3VcIDsKK+ekuuWKm+WbsyA8IGppcnlva3V6dVwgOwor5Y+k5LqL6KiY5LydIDwga29qaWtpZGVuXCA7Civpm6rlpbPpg44gPCB5dWtpam9yb3VcIDsKK+ihqOabuCA8IG9tb3RlZ2FraVwgOwor6Zu257Sw6L6yIDwgcmVpc2Fpbm91XCA7Civns4rku6MgPCBub3Jpc2hpcm9cIDsKK+ecn+a4heawtCA8IG1hc2hpbWl6dVwgOwor5Yqp5aSq5YiAIDwgc3VrZWRhY2hpXCA7CivlhYvlt7Hlv4MgPCBrb2traXNoaW5cIDsKK+ioreioiOiAhSA8IHNla2tlaXNoYVwgOwor54Sh56We6KuWIDwgbXVzaGlucm9uXCA7CivnhKHngrrnhKHnrZYgPCBtdWltdXNha3VcIDsKK+acieiii+mhniA8IHl1dXRhaXJ1aVwgOwor5LiA5q666YKjIDwgaXNzZXRzdW5hXCA7Civlv4PnkIbmiKYgPCBzaGlucmlzZW5cIDsKK+W+oeattOattCA8IG9yZWtpcmVraVwgOwor5LiN5bmz562JIDwgZnVieW91ZG91XCA7CivliKnlsL/liaQgPCByaW55b3V6YWlcIDsKK+eptOmamSA8IGtldHN1Z2VraVwgOwor54mn5q2M55qEIDwgYm9ra2F0ZWtpXCA7CivmvLjov5Hnt5ogPCB6ZW5raW5zZW5cIDsKK+WtkOWuieiynSA8IGtveWFzdWthaVwgOwor5peF5pel6KiYIDwgdGFiaW5pa2tpXCA7Civlo7LkuIrph5EgPCB1cmlhZ2VraW5cIDsKK+WPl+e1puiAhSA8IGp1a3l1dXNoYVwgOwor5piO5bm05bqmIDwgbXlvdW5lbmRvXCA7CivkuozmnproiIwgPCBuaW1haWppdGFcIDsKK+S4iemHjeWGoCA8IHNhbmp1dWthblwgOwor6KqY6Zu75a2QIDwgeXV1ZGVuc2hpXCA7CivpjK/pm5EgPCBzYWt1emF0c3VcIDsKK+Wcp+WvhiA8IGF0c3VtaXRzdVwgOwor6Zai5L+C6KmeIDwga2Fua2Vpc2hpXCA7CivntKHpjJjlvaIgPCBib3VzdWlrZWlcIDsKK+WlieW5o+S9vyA8IGhvdWhlaXNoaVwgOwor5biC5rCR5rOVIDwgc2hpbWluaG91XCA7CivmnIDmlaznpLwgPCBzYWlrZWlyZWlcIDsKK+aktCA8IHRvZG9tYXRzdVwgOwor6Ium5a2m55SfIDwga3VnYWt1c2VpXCA7CivlsI/nlJ/mhI/msJcgPCBrb25hbWFpa2lcIDsKK+W+l+aEj+WFiCA8IHRva3Vpc2FraVwgOwor6Zuo5LuV5bqmIDwgYW1haml0YWt1XCA7Civlkajms6LluK8gPCBzaHV1aGF0YWlcIDsKK+a8rOeJqSA8IHRzdWtlbW9ub1wgOwor566h5Yi25a6YIDwga2Fuc2Vpa2FuXCA7CivonJzosYYgPCBtaXRzdW1hbWVcIDsKK+a8guedgCA8IGh5b3VjaGFrdVwgOwor54eD5paZ6LK7IDwgbmVucnlvdWhpXCA7Civph4/oqJjlj7cgPCByeW91a2lnb3VcIDsKK+eZuuWFieS9kyA8IGhha2tvdXRhaVwgOwor5Y2K5YaG5b2iIDwgaGFuJydlbmtlaVwgOwor5rGa5p+T6Zmk5Y67IDwgb3Nlbmpva3lvXCA7Civmj5Dlh7ogPCB0ZWlzaHV0c3VcIDsKK+WGhuiZq+mhniA8IGVuY2h1dXJ1aVwgOwor5om26aSK576p5YuZIDwgZnV5b3VnaW11XCA7Civmh7jmg7PmlocgPCBrZXNvdWJ1bWlcIDsKK+aknOa9ruWZqCA8IGtlbmNob3VraVwgOwor5aeJ5aa557eoIDwgc2hpbWFpaGVuXCA7CivooYDns5blgKQgPCBrZXR0b3VjaGlcIDsKK+a3semdtCA8IGZ1a2FndXRzdVwgOwor54Sh6YeN6YePIDwgbXVqdXVyeW91XCA7Civpm7voqbHluLMgPCBkZW53YWNob3VcIDsKK+WNiOWJjeS4rSA8IGdvemVuY2h1dVwgOwor5Za25qWt5omAIDwgZWlneW91c2hvXCA7Civnr4DmrLIgPCBzZXRzdXlva3VcIDsKK+exs+W4guWgtCA8IGJlaWljaGliYVwgOwor5LiN5YuV5b+DIDwgZnVkb3VzaGluXCA7CivooovluK8gPCBmdWt1cm9vYmlcIDsKK+Wwj+WIpOW9oiA8IGtvYmFuZ2F0YVwgOwor54Wn5piO5ZmoIDwgc2hvdW1laWtpXCA7CivlvrnnlLLlvL4gPCB0ZWtrb3VkYW5cIDsKK+WuruWGheW6gSA8IGt1bmFpY2hvdVwgOwor5pOs5Y+k5Li7576pIDwgZ2lrb3NodWdpXCA7CivluILmsJHmqKkgPCBzaGltaW5rZW5cIDsKK+epgOmjnyA8IGtva3VzaG9rdVwgOwor5Y2K6Ii356CyIDwgaGFuZ2VuaG91XCA7CivmqKnlqIHnrYsgPCBrZW4nJ2lzdWppXCA7CivlpInpm7vmiYAgPCBoZW5kZW5zaG9cIDsKK+epjembqiA8IHNla2lzZXRzdVwgOwor6Zu76Kej5rayIDwgZGVua2FpZWtpXCA7Civpm7LkuIrkurogPCB1bmpvdWJpdG9cIDsKK+evgOamkSA8IGZ1c2hpa3VyZVwgOwor5LiA5ZGo5bm0IDwgaXNzaHV1bmVuXCA7CivooYDml48gPCBrZXRzdXpva3VcIDsKK+euoeWItuWhlCA8IGthbnNlaXRvdVwgOwor6I+v5Y6z57WMIDwga2Vnb25reW91XCA7Civlr77mg4XloLEgPCB0YWlqb3Vob3VcIDsKK+agvOWkieWMliA8IGtha3VoZW5rYVwgOwor5pWZ6IKy5a62IDwga3lvdWlrdWthXCA7Civlronmga/pppkgPCBhbnNva3Vrb3VcIDsKK+efs+m5uOawtCA8IHNla2tlbnN1aVwgOwor5LiN5YuJ5by3IDwgZnViZW5reW91XCA7CivloanljJbniakgPCBlbmthYnV0c3VcIDsKK+S5neWvuOS6lOWIhiA8IGt1c3VuZ29idVwgOwor5Lih55So5qmfIDwgcnlvdXlvdWtpXCA7CivlvZPkuJbpoqggPCB0b3VzZWlmdXVcIDsKK+etlueVpSA8IHNha3VyeWFrdVwgOwor5qC85aSp5LqVIDwgZ291dGVuam91XCA7CivkuK3ogJXmqZ8gPCBjaHV1a291a2lcIDsKK+S4jemBqeagvCA8IGZ1dGVra2FrdVwgOwor6YGg5b+D5YiGIDwgZW5zaGluYnVuXCA7CivpjbzooZMgPCBzaGluanV0c3VcIDsKK+aZrumAmuazlSA8IGZ1dHN1dWhvdVwgOwor5aqS5p+T5YmkIDwgYmFpc2VuemFpXCA7CivnoLToo4Lpn7MgPCBoYXJldHN1b25cIDsKK+S4u+ims+irliA8IHNodWthbnJvblwgOwor5LqM55Wq5L2cIDwgbmliYW5zYWt1XCA7CivnlJ/lkb3nt5ogPCBzZWltZWlzZW5cIDsKK+epuuWvvuepuiA8IGt1dXRhaWt1dVwgOwor54yb5ZC56ZuqIDwgbW91ZnVidWtpXCA7Civmi5PmrpYgPCB0YWt1c2hva3VcIDsKK+mrmOWwhOegsiA8IGtvdXNoYWhvdVwgOwor5LiA5q2p6YqAIDwgaWNoaWJ1Z2luXCA7CivlpYjoia/mvKwgPCBuYXJhZHp1a2VcIDsKK+W9ouixoeWMliA8IGtlaXNob3VrYVwgOwor5YaF5Zyw5Lq6IDwgbmFpY2hpamluXCA7Civnn7PljZfoirEgPCBzaGFrdW5hZ2VcIDsKK+WCgOWEoeW4qyA8IGthaXJhaXNoaVwgOwor5LiA5q2p6YeRIDwgaWNoaWJ1a2luXCA7CivlpbPpg47onJjom5sgPCBqb3JvdWd1bW9cIDsKK+eXqeaIkeaFoiA8IHlhc2VnYW1hblwgOwor6JuZ6LezIDwga2FlcnV0b2JpXCA7Civmgqrlm6DnuIEgPCBha3VpbicnbmVuXCA7CivkuI3nnKDnl4cgPCBmdW1pbnNob3VcIDsKK+mbu+ino+anvSA8IGRlbmthaXNvdVwgOwor5rOV6I+v5a6XIDwgaG9ra2VzaHV1XCA7CivkuIDnnqzplpMgPCBpc3NodW5rYW5cIDsKK+ato+S4ieS9jSA8IHNob3VzYW5taVwgOwor5by+6YGT5by+IDwgZGFuZG91ZGFuXCA7Civmt7flkIjmnpcgPCBrb25nb3VyaW5cIDsKK+awtOWiqOeUuyA8IHN1aWJva3VnYVwgOwor5Lqk5piT5LyaIDwga291ZWtpa2FpXCA7Civpq5jmpYrlrZAgPCB0YWtheW91amlcIDsKK+aoqeWogeeahCA8IGtlbicnaXRla2lcIDsKK+ekvueUqOi7iiA8IHNoYXlvdXNoYVwgOwor5YiG5rC05ba6IDwgYnVuc3VpcmVpXCA7CivlrZDkvpvnlKggPCBrb2RvbW95b3VcIDsKK+imquWtneihjCA8IG95YWtvdWtvdVwgOwor55m65bCE562SIDwgaGFzc2hhdG91XCA7Civmi77kuIflhoYgPCBqdXVtYW4nJ2VuXCA7Civli6TnmoflrrYgPCBraW4nJ25vdWthXCA7CivkubPljJbliaQgPCBueXV1a2F6YWlcIDsKK+i/keWcsOeCuSA8IGtpbmNoaXRlblwgOwor5Zyn5YqbIDwgYXRzdXJ5b2t1XCA7CivnhKHnq7bkuokgPCBtdWt5b3Vzb3VcIDsKK+S6pOmam+azlSA8IGtvdXNhaWhvdVwgOwor5Y+C5LiO6ICFIDwgc2FuJyd5b3NoYVwgOwor56u5566SIDwgdGFrZWJvdWtpXCA7Civpo7LmlpnmsLQgPCBpbnJ5b3VzdWlcIDsKK+m8u+mdoiA8IGhhbmFkenVyYVwgOwor56eL5pel5ZKMIDwgYWtpYml5b3JpXCA7CivljLrlvbnmiYAgPCBrdXlha3VzaG9cIDsKK+eri+W/l+S8nSA8IHJpc3NoaWRlblwgOwor5aSp56ek5qOSIDwgdGVuYmluYm91XCA7CivlpInoqr/lmaggPCBoZW5jaG91a2lcIDsKK+mWouS/guiAhSA8IGthbmtlaXNoYVwgOwor5LiN6ZqP5oSP562LIDwgZnV6dWlpa2luXCA7CivlpKfmiJDlip8gPCBkYWlzZWlrb3VcIDsKK+S6jOS6uuensCA8IG5pbmluc2hvdVwgOwor5YG25YOP6KaWIDwgZ3V1em91c2hpXCA7CivlgbbouYTpoZ4gPCBndXV0ZWlydWlcIDsKK+adpeioquiAhSA8IHJhaWhvdXNoYVwgOwor6aiS5Lmx572qIDwgc291cmFuemFpXCA7CivlrozmiJDlk4EgPCBrYW5zZWloaW5cIDsKK+enu+ihjOacn+mWkyA8IGlrb3VraWthblwgOwor6KKW5Y+jIDwgc29kZWd1Y2hpXCA7CivlibXpgKDmgKcgPCBzb3V6b3VzZWlcIDsKK+aNu+WHuiA8IG5lbnNodXRzdVwgOwor5Y+I6KuL6LKgIDwgbWF0YXVrZW9pXCA7Civph5HplqPlr7ogPCBraW5rYWt1amlcIDsKK+iqmOmbu+S9kyA8IHl1dWRlbnRhaVwgOwor5Y2X5Lqs57GzIDwgbmFua2lubWFpXCA7CivnhKHnpZ7ntYwgPCBtdXNoaW5rZWlcIDsKK+mKgOS6pOaPmyA8IGdpbmtvdWthblwgOwor5bWZIDwgeWFtYXNoaW5hXCA7Civoo73loanmpa0gPCBzZWllbmd5b3VcIDsKK+aVmeS8muWToSA8IGt5b3VrYWlpblwgOwor5ZWT6J+EIDwga2VpY2hpdHN1XCA7CivmkK3kuZfliLggPCB0b3Vqb3VrZW5cIDsKK+mBjuehq+mFuCA8IGthcnl1dXNhblwgOwor6YGL5ZG955qEIDwgdW5tZWl0ZWtpXCA7CivoprPmoZzkvJogPCBrYW4nJ291a2FpXCA7Civmtpnpm6ggPCBuYW1pZGFhbWVcIDsKK+eEoeekvOiAhSA8IGJ1cmVpbW9ub1wgOwor5qeL5paH5rOVIDwga291YnVucG91XCA7Civnr6Tlrp8gPCB0b2t1aml0c3VcIDsKK+mOluezuCA8IGt1c2FyaWl0b1wgOwor56a/6beyIDwgaGFnZXdhc2hpXCA7CivooYDlsL8gPCBrZXRzdW55b3VcIDsKK+aOpei/keaIpiA8IHNla2tpbnNlblwgOwor54Sh5rOV6ICFIDwgbXVob3Vtb25vXCA7Civmh7LnvbAgPCBjaG91YmF0c3VcIDsKK+S4jemBqeW9kyA8IGZ1dGVraXRvdVwgOwor54Sh5rC06Y2LIDwgbXVzdWluYWJlXCA7CivmnIjntabml6UgPCBnZWtreXV1YmlcIDsKK+WbveWKmyA8IGtva3VyeW9rdVwgOwor5pal5YCZ6ZqKIDwgc2Vra291dGFpXCA7CivlibXmpa3osrsgPCBzb3VneW91aGlcIDsKK+WbveWIpSA8IGt1bmliZXRzdVwgOwor6YeN6KaB5oCnIDwganV1eW91c2VpXCA7Civnt4/lo7LkuIogPCBzb3V1cmlhZ2VcIDsKK+WNgeWGhueOiSA8IGp1dWVuZGFtYVwgOwor5oq95paXIDwgaGlraWRhc2hpXCA7CivlgKvnkIblraYgPCByaW5yaWdha3VcIDsKK+S4gOmAsemWkyA8IGlzc2h1dWthblwgOwor56S+5YaF5aCxIDwgc2hhbmFpaG91XCA7CivkvY/lroXosrsgPCBqdXV0YWt1aGlcIDsKK+WxiOWcsOaApyA8IGt1dGNoaXNlaVwgOwor5LuY5Yqg5L6h5YCkIDwgZnVrYWthY2hpXCA7Civnr4nlsbEgPCB0c3VraXlhbWFcIDsKK+WbveacieWMliA8IGtva3V5dXVrYVwgOwor6YCa6aKo5qmfIDwgdHN1dWZ1dWtpXCA7CivlrrblsYvmlbcgPCBpZXlhc2hpa2lcIDsKK+WxseakkumtmiA8IHNhbnNob3V1b1wgOwor5YWs5paH5pu4IDwga291YnVuc2hvXCA7Civmsbrlrproq5YgPCBrZXR0ZWlyb25cIDsKK+S/neiovOS6uiA8IGhvc2hvdW5pblwgOwor5rK/5rW35beeIDwgZW5rYWlzaHV1XCA7CivkuI3pgZPlvrMgPCBmdWRvdXRva3VcIDsKK+S+v+S5l+iAhSA8IGJpbmpvdXNoYVwgOwor5LiA5Y2H55O2IDwgaXNzaG91YmluXCA7CivnqbrohbnmmYIgPCBrdXVmdWt1amlcIDsKK+WJjeihm+aIpiA8IHplbicnZWlzZW5cIDsKK+iiluS7mCA8IHNvZGV0c3VrZVwgOwor5oSf5oOF6KuWIDwga2Fuam91cm9uXCA7CivmlK/phY3mqKkgPCBzaGloYWlrZW5cIDsKK+Wbo+WtkOm8uyA8IGRhbmdvYmFuYVwgOwor5YWo6KuW54K5IDwgemVucm9udGVuXCA7CivmibzmrrogPCB5YWt1c2F0c3VcIDsKK+mBk+WMluiAhSA8IGRvdWtlbW9ub1wgOwor6KW/5rSL57SZIDwgc2VpeW91c2hpXCA7Civmm7joqJjplbcgPCBzaG9raWNob3VcIDsKK+Wcn+WjjOaxmuafkyA8IGRvam91b3NlblwgOwor6KGA5aGXIDwgY2hpbWlkb3JvXCA7Civlv4zoqIDokYkgPCBpbWlrb3RvYmFcIDsKK+mbo+S6i+alrSA8IG5hbmppZ3lvdVwgOwor5LuY5biv55qEIDwgZnV0YWl0ZWtpXCA7Civpq5jpo5vou4ogPCB0YWthYmlzaGFcIDsKK+mbu+ipseS4rSA8IGRlbndhY2h1dVwgOwor6buE6YGT5bivIDwga291ZG91dGFpXCA7Civpq5jmoKHnlJ8gPCBrb3Vrb3VzZWlcIDsKK+m6uem7tCA8IGtvdWppa2FiaVwgOwor5raZ6YeRIDwgbmFtaWRha2luXCA7CivogrrmsLTohasgPCBoYWlzdWlzaHVcIDsKK+WVhueUqOiqniA8IHNob3V5b3Vnb1wgOwor55Wl6KiY5rOVIDwgcnlha2tpaG91XCA7CivooYDlnKcgPCBrZXRzdWF0c3VcIDsKK+a9ruWigyA8IHNoaW96YWthaVwgOwor6JGh6JCE5qOaIDwgYnVkb3VkYW5hXCA7CivlpYnlhazkurogPCBob3Vrb3VuaW5cIDsKK+eon+izqiA8IGhpbnNoaXRzdVwgOwor5rm/55SwIDwgc2hpdHN1ZGVuXCA7Civku4/ms5Xlg6cgPCBidXBwb3Vzb3VcIDsKK+m7kumrqiA8IGtva3VoYXRzdVwgOwor5L2T6IKy56WtIDwgdGFpaWt1c2FpXCA7Civmma7pgJrlvL4gPCBmdXRzdXVkYW5cIDsKK+aIpuS4rea0viA8IHNlbmNodXVoYVwgOwor6auY5bGx5bivIDwga291emFudGFpXCA7CivmgKfniq/nvaogPCBzZWloYW56YWlcIDsKK+awkeiKuOWTgSA8IG1pbmdlaWhpblwgOwor6Kaq5Lya56S+IDwgb3lhZ2Fpc2hhXCA7CivmiZPmtoggPCB1Y2hpa2VzaGlcIDsKK+WPguizgOW4syA8IHNhbmdhY2hvdVwgOwor5LiJ6Lyq6LuKIDwgc2Fucmluc2hhXCA7CivnlKPnp5HlraYgPCBzYW5rYWdha3VcIDsKK+i7iuWGheeBryA8IHNoYW5haXRvdVwgOwor5Yy75YuZ5a6kIDwgaW11c2hpdHN1XCA7CivmsLjntprmgKcgPCBlaXpva3VzZWlcIDsKK+ihqOWBtCA8IG9tb3RlZ2F3YVwgOwor5o6i5qSc6ZqKIDwgdGFua2VudGFpXCA7Civlrp/li5nlrrYgPCBqaXRzdW11a2FcIDsKK+W/hemgiOagvCA8IGhpc3N1a2FrdVwgOwor5aSn5ZKM5q2MIDwgeWFtYXRvdXRhXCA7CivkuLjlpKrmnZAgPCBtYXJ1dGF6YWlcIDsKK+eglOS/ruaJgCA8IGtlbnNodXVqb1wgOwor5YWs5piO5YWaIDwga291bWVpdG91XCA7CivntbXnqbroqIAgPCBlc29yYWdvdG9cIDsKK+e+hemHneebpCA8IHJhc2hpbmJhblwgOwor5LiK6Zmi6K2w5ZOhIDwgam91aW5naWluXCA7Civlmajph4/kurogPCBraXJ5b3VqaW5cIDsKK+Wbvemam+iqniA8IGtva3VzYWlnb1wgOwor5Zub6L665b2iIDwgc2hpaGVua2VpXCA7CivnmbrkvZznmoQgPCBob3NzYXRla2lcIDsKK+iBvuWtpuagoSA8IHJvdWdha2tvdVwgOwor6ZCY5pKeIDwga2FuZXRzdWtpXCA7CivmjoPmtbfoiYcgPCBzb3VrYWl0ZWlcIDsKK+WPguiAg+abuCA8IHNhbmtvdXNob1wgOwor5YyW57Kn5ZOBIDwga2VzaG91aGluXCA7CivlnLDlubPpnaIgPCBjaGloZWltZW5cIDsKK+ihjOWIlyA8IGd5b3VyZXRzdVwgOwor5L2O6IO96ICFIDwgdGVpbm91c2hhXCA7CivlhYjpqJPoq5YgPCBzZW5rZW5yb25cIDsKK+mbhuiLseekviA8IHNodXVlaXNoYVwgOwor55So5rC05rGgIDwgeW91c3VpY2hpXCA7Civlj5fpm6PliocgPCBqdW5hbmdla2lcIDsKK+WAieW6q+alrSA8IHNvdWtvZ3lvdVwgOwor5Y2D5YWt5pysIDwgc2Vucm9wcG9uXCA7CivovLjlhaXlk4EgPCB5dW55dXVoaW5cIDsKK+WMlueyp+WPsCA8IGtlc2hvdWRhaVwgOwor5aGp5Yqg5ribIDwgc2hpb2thZ2VuXCA7CivlqJjlrZDou40gPCBqb3VzaGlndW5cIDsKK+iHquayu+ecgSA8IGppY2hpc2hvdVwgOwor5bC+6ZW354y/IDwgb25hZ2F6YXJ1XCA7CivorabpmLLlm6MgPCBrZWlib3VkYW5cIDsKK+ato+ino+iAhSA8IHNlaWthaXNoYVwgOwor6ZmQ5bqm6aGNIDwgZ2VuZG9nYWt1XCA7Civlho3mtJfnpLwgPCBzYWlzZW5yZWlcIDsKK+WnieWmueagoSA8IHNoaW1haWtvdVwgOwor5qC86ZeY5oqAIDwga2FrdXRvdWdpXCA7CivpnZLmmKXmnJ8gPCBzZWlzaHVua2lcIDsKK+mAn+iomOmMsiA8IHNva2tpcm9rdVwgOwor5YSq5Yud6aasIDwgeXV1c2hvdWJhXCA7Civlh6kgPCBrb2dhcmFzaGlcIDsKK+awl+WAmeWtpiA8IGtpa291Z2FrdVwgOwor55eF6Zmi6Ii5IDwgYnlvdWluc2VuXCA7Civlm73mlofnp5EgPCBrb2t1YnVua2FcIDsKK+aLheW9k+iAhSA8IHRhbnRvdXNoYVwgOwor5p2l5aC06ICFIDwgcmFpam91c2hhXCA7CivmiY3mp4wgPCBzYWlkenVjaGlcIDsKK+aOkuawtOa6nSA8IGhhaXN1aWtvdVwgOwor5bO75LiL5YmkIDwgc2h1bmdlemFpXCA7CivlpJbllYbpg6ggPCBnYWlzaG91YnVcIDsKK+a5v+a9pCA8IHNoaXRzdWp1blwgOwor6by76KGdIDwgaGFuYXRzdWtpXCA7CivmraPmlrnlvaIgPCBzZWlob3VrZWlcIDsKK+a4i+e0mSA8IHNoaWJ1Z2FtaVwgOwor5pyI57WM5bivIDwgZ2Vra2VpdGFpXCA7Civop5LooYznga8gPCBrYWt1YW5kb25cIDsKK+iqsuW+tOmHkSA8IGthY2hvdWtpblwgOwor5Lqk5o+b6Ii5IDwga291a2Fuc2VuXCA7Civkv53nrqHoqLwgPCBob2thbnNob3VcIDsKK+a3u+WKoOeJqSA8IHRlbmthbW9ub1wgOwor6byg6KybIDwgbmV6dW1pa291XCA7CivmnaXoprPogIUgPCByYWlrYW5zaGFcIDsKK+W+oeWutumokuWLlSA8IG9pZXNvdWRvdVwgOwor6Y+h5p2/IDwga2FnYW1paXRhXCA7CivntrrnvoXmmJ8gPCBraXJhYm9zaGlcIDsKK+WxseWys+mDqCA8IHNhbmdha3VidVwgOwor55m65bGV5oCnIDwgaGF0dGVuc2VpXCA7CivnqbrnqbQgPCBrYXJha2V0c3VcIDsKK+WNlOWumuahiCA8IGt5b3V0ZWlhblwgOwor6bqm6aOvIDwgbXVnaW1lc2hpXCA7Civpi7zoibIgPCBoYWdhbmVpcm9cIDsKK+azqOWwhOWZqCA8IGNodXVzaGFraVwgOwor5omV5pqBIDwgZnV0c3VneW91XCA7Civlj7jms5XmqKkgPCBzaGlob3VrZW5cIDsKK+iZq+ieuyA8IG11c2hpa2VyYVwgOwor5q2j5pS75rOVIDwgc2Vpa291aG91XCA7CivmiYvmi43lrZAgPCB0ZWJ5b3VzaGlcIDsKK+ekvuS8mumdoiA8IHNoYWthaW1lblwgOwor6LGh55qu55eFIDwgem91aGlieW91XCA7CivnpoHlj43oqIAgPCBraW5oYW5nZW5cIDsKK+eEoeWPjOeqkyA8IG11c291bWFkb1wgOwor5pmC6ZaT5YmyIDwgamlrYW53YXJpXCA7CivnlKjlv4Pmo5IgPCB5b3VqaW5ib3VcIDsKK+WGjeaEn+afkyA8IHNhaWthbnNlblwgOwor5q+b6KO95ZOBIDwgbW91c2VpaGluXCA7CivkuozluqbkuInluqYgPCBuaWRvc2FuZG9cIDsKK+mrmOellumgreW3viA8IGtvc296dWtpblwgOwor5qC857SN5bqrIDwga2FrdW5vdWtvXCA7Civnt4/ntKLlvJUgPCBzb3VzYWt1aW5cIDsKK+S6iOWvqeW7tyA8IHlvc2hpbnRlaVwgOwor6Iy25bGL6YWSIDwgY2hheWF6YWtlXCA7Civlm5vliIblhoYgPCBzaGlidW4nJ2VuXCA7CivkvZfkvY/lsYUgPCB3YWJpenVtYWlcIDsKK+eJh+aJi+ahtiA8IGthdGF0ZW9rZVwgOwor5Ym15YiK5Y+3IDwgc291a2FuZ291XCA7Civlm5vliIblha0gPCBzaGlidXJva3VcIDsKK+erpeatjCA8IHdhcmFiZXV0YVwgOwor6Ziy5r2c57ayIDwgYm91c2VubW91XCA7CivmiZPmk7IgPCBjaG91Y2hha3VcIDsKK+WQjeWIuuWIpCA8IG1laXNoaWJhblwgOwor5rKz56ul5be7IDwga2FwcGFtYWtpXCA7Civli7LkuIDnrYkgPCBrdW4nJ2l0dG91XCA7Civlj43nianlsYsgPCB0YW5tb25veWFcIDsKK+S6iOWCmemDqOWTgSA8IHlvYmlidWhpblwgOwor5LqS6K2y55qEIDwgZ29qb3V0ZWtpXCA7CivkuJbnlYznmoQgPCBzZWthaXRla2lcIDsKK+W+oei/t+aDkSA8IGdvbWVpd2FrdVwgOwor5LiJ6YOo5L2cIDwgc2FuYnVzYWt1XCA7CivmtLvph48gPCBrYXRzdXJ5b3VcIDsKK+ato+mdouWbsyA8IHNob3VtZW56dVwgOwor6KGo5YW35birIDwgaHlvdWd1c2hpXCA7CivkuI3pganku7sgPCBmdXRla2luaW5cIDsKK+e1jOS8geW6gSA8IGtlaWtpY2hvdVwgOwor6YGL5YuV6aCYIDwgdW5kb3VyeW91XCA7CivlhYjoiKzmnaUgPCBzZW5wYW5yYWlcIDsKK+WumuWGoOipniA8IHRlaWthbnNoaVwgOwor6Ieq5bex5om55YikIDwgamlrb2hpaGFuXCA7CivmjqXlsL7ovp4gPCBzZXRzdWJpamlcIDsKK+awtOeEoeaciCA8IG1pbmFkenVraVwgOwor6aeQ5Zyo5ZOhIDwgY2h1dXphaWluXCA7CivlmbTlh7ogPCBmdW5zaHV0c3VcIDsKK+a4i+eariA8IHNoaWJ1a2F3YVwgOwor6Ly45bC/566hIDwgeXVueW91a2FuXCA7Civol4HpnbQgPCB3YXJhZ3V0c3VcIDsKK+WbvemYsuiyuyA8IGtva3Vib3VoaVwgOwor5L6N5b6T6ZW3IDwgamlqdXVjaG91XCA7CivpjpbmqIsgPCBrdXNhcml0b2lcIDsKK+a0u+i7uCA8IGthdHN1amlrdVwgOwor5q666aKo5pmvIDwgc2FwcHV1a2VpXCA7CivkuK3mlK/pgqMgPCBuYWthc2hpbmFcIDsKK+iqpOaMv+WFpSA8IGdvc291bnl1dVwgOwor5q2j5pWZ5o6IIDwgc2Vpa3lvdWp1XCA7CivkvJHngavlsbEgPCBreXV1a2F6YW5cIDsKK+WtkOWuiOatjCA8IGtvbW9yaXV0YVwgOwor5rG65a6a56i/IDwga2V0dGVpa291XCA7CivpmLLngavlo4EgPCBib3VrYWhla2lcIDsKK+a5v+advyA8IHNoaXRzdWJhblwgOwor5rWu6KKLIDwgdWtpYnVrdXJvXCA7Civlj7Dmub7kurogPCB0YWl3YW5qaW5cIDsKK+a0u+i6jSA8IGthdHN1eWFrdVwgOwor5pel56ug5peXIDwgbmlzc2hvdWtpXCA7Civpg6jpmorplbcgPCBidXRhaWNob3VcIDsKK+W+oeecn+W9sSA8IGdvc2hpbicnZWlcIDsKK+iZq+iFuSA8IG11c2hpYmFyYVwgOwor5Yed5Zu654K5IDwgZ3lvdWtvdGVuXCA7CivmlK/lupfntrIgPCBzaGl0ZW5tb3VcIDsKK+aVsOihqOekuiA8IHN1dWh5b3VqaVwgOwor6aKo5ZCR6KiIIDwgZnV1a291a2VpXCA7Civom43lhYnmnb8gPCBrZWlrb3ViYW5cIDsKK+aWsOiBnuiIlyA8IHNoaW5idW5ob1wgOwor6KW/5Y2X6KW/IDwgc2VpbmFuc2VpXCA7Civpgb/pm7fph50gPCBoaXJhaXNoaW5cIDsKK+eNheWtkOiIniA8IHNoaXNoaW1haVwgOwor5Lu75pyf5LitIDwgbmlua2ljaHV1XCA7CivmlrnpnaLpmoogPCBob3VtZW50YWlcIDsKK+miqOmItOiNiSA8IGZ1dXJpbnNvdVwgOwor5puy54us5qW9IDwga3lva3Vnb21hXCA7CivnnJ/lkJHms5UgPCBtYWtrb3Vob3VcIDsKK+WVhuiIueaXlyA8IHNob3VzZW5raVwgOwor6byg6ImyIDwgbmV6dW1paXJvXCA7Civms6XpnbQgPCBkb3JvZ3V0c3VcIDsKK+eglOS/ruWToSA8IGtlbnNodXVpblwgOwor6KmV5Yik6KiYIDwgaHlvdWJhbmtpXCA7Civmma7pgJrkvr8gPCBmdXRzdXViaW5cIDsKK+WJr+efpeS6iyA8IGZ1a3VjaGlqaVwgOwor5q+N6ZuG5ZujIDwgYm9zaHV1ZGFuXCA7CivkuInlhqDnjosgPCBzYW5rYW4nJ291XCA7CivmgYvmhJvoprMgPCByZW4nJ2Fpa2FuXCA7CivnrYbloqggPCBoaXRzdWJva3VcIDsKK+mHnemwuyA8IGhhcml1bmFnaVwgOwor6by757axIDwgaGFuYWR6dW5hXCA7CivlnLDlvbnmqKkgPCBjaGlla2lrZW5cIDsKK+ethuWhmiA8IGZ1ZGVkenVrYVwgOwor5pmu6YCa5Lq6IDwgZnV0c3V1amluXCA7Civmu53lo7ogPCB0YWtpdHN1Ym9cIDsKK+WGjeWNlOitsCA8IHNhaWt5b3VraVwgOwor5Luj6LWt6ImyIDwgdGFpc2hhaXJvXCA7CivmjqXlsL7oqp4gPCBzZXRzdWJpZ29cIDsKK+WKh+S9nOWutiA8IGdla2lzYWtrYVwgOwor6YeN5oim6LuKIDwganV1c2Vuc2hhXCA7Civpn7Pmpb3pmoogPCBvbmdha3V0YWlcIDsKK+WRiumBlCA8IGtva3V0YXRzdVwgOwor5YaN56aB5q2iIDwgc2Fpa2luc2hpXCA7Civnh7vokrjliaQgPCBrdW5qb3V6YWlcIDsKK+a0i+ijgeW4qyA8IHlvdXNhaXNoaVwgOwor55yf5q2j6Z2iIDwgbWFzaG91bWVuXCA7CivmvI/lh7ogPCByb3VzaHV0c3VcIDsKK+ethuWcpyA8IGhpdHN1YXRzdVwgOwor5pyI57WM5YmNIDwgZ2Vra2VpbWFlXCA7Civnqq7mpbUgPCBreXV1a3lva3VcIDsKK+S9juWxseW4ryA8IHRlaXphbnRhaVwgOwor5Yqx5oyv5ZmoIDwgcmVpc2hpbmtpXCA7Civph5Hpr7EgPCBraW5zaGFjaGlcIDsKK+iLsembhOeahCA8IGVpeXV1dGVraVwgOwor6KiY6ICF5bitIDwga2lzaGFzZWtpXCA7CivlgaXlurfogIUgPCBrZW5rb3VzaGFcIDsKK+iCpea6gOeXhyA8IGhpbWFuc2hvdVwgOwor5pyA5aSn5YCkIDwgc2FpZGFpY2hpXCA7CivoqIjnlLvmoYggPCBrZWlrYWt1YW5cIDsKK+iPr+WOs+WulyA8IGtlZ29uc2h1dVwgOwor5Li76KaB54K5IDwgc2h1eW91dGVuXCA7Civlj6Ppq60gPCBrdWNoaWhpZ2VcIDsKK+iZq+exoCA8IG11c2hpa2Fnb1wgOwor5rWB6KGAIDwgcnl1dWtldHN1XCA7CivmhpHniakgPCB0c3VraW1vbm9cIDsKK+epjeeOhyA8IHNla2lyaXRzdVwgOwor5Lya5ZOh6Ki8IDwga2FpaW5zaG91XCA7Civnsr7oloTlhZAgPCBzZWloYWt1amlcIDsKK+aMv+WFpeWbsyA8IHNvdW55dXV6dVwgOwor6Yec6aOvIDwga2FtYW1lc2hpXCA7CivkuIHlubTogIUgPCB0ZWluZW5zaGFcIDsKK+a3seeIqiA8IGZ1a2FkenVtZVwgOwor56u55bibIDwgY2hpa3VoYWt1XCA7Civnm6Pmn7vlvbkgPCBrYW5zYXlha3VcIDsKK+iWhOWMlueypyA8IHVzdWdlc2hvdVwgOwor5Ye65Yuk57C/IDwgc2h1a2tpbmJvXCA7CivkuK3lpK7nt5ogPCBjaHV1b3VzZW5cIDsKK+WxpeattOabuCA8IHJpcmVraXNob1wgOwor5rOh6YqtIDwgYWJ1a3V6ZW5pXCA7CivppIrll6PlrZAgPCB5b3VzaGlzaGlcIDsKK+aCquizqiA8IGFrdXNoaXRzdVwgOwor5aSn5rW35Y6fIDwgb291bmFiYXJhXCA7CivkvY7kvqHmoLwgPCB0ZWlrYWtha3VcIDsKK+S6pOmam+S4iiA8IGtvdXNhaWpvdVwgOwor6bq76KKLIDwgYXNhYnVrdXJvXCA7Civlj4LogIPlk4EgPCBzYW5rb3VoaW5cIDsKK+elnue1jOenkSA8IHNoaW5rZWlrYVwgOwor5bCP5L2c6L6yIDwga29zYWt1bm91XCA7Civoh6rnlLvoh6ros5sgPCBqaWdhamlzYW5cIDsKK+engeaWh+abuCA8IHNoaWJ1bnNob1wgOwor5rG65a6a54mIIDwga2V0dGVpYmFuXCA7Civlv4PkuI3lhaggPCBzaGluZnV6ZW5cIDsKK+S5s+W5vOWFkCA8IG55dXV5b3VqaVwgOwor6KaP5YmH5pu4IDwga2lzb2t1c2hvXCA7Civmu53lj6MgPCB0YWtpZ3VjaGlcIDsKK+WKoOmZpOW8jyA8IGtham9zaGlraVwgOwor6byg566XIDwgbmV6dW1pemFuXCA7Civmub/lvI8gPCBzaGlzc2hpa2lcIDsKK+WPuOazleWumCA8IHNoaWhvdWthblwgOwor56mA54mpIDwga29rdW1vdHN1XCA7Civnqbrlr77lnLAgPCBrdXV0YWljaGlcIDsKK+ato+imluecvCA8IHNlaXNoaWdhblwgOwor5pep5oW25oimIDwgc291a2Vpc2VuXCA7Civms6XpgZMgPCBkb3JvbWljaGlcIDsKK+WPpOmdtCA8IGZ1cnVndXRzdVwgOwor5o6Y5YmK5qmfIDwga3Vzc2FrdWtpXCA7CivmnKrnorrlrpogPCBtaWtha3V0ZWlcIDsKK+mrmOaetuapiyA8IGtvdWtha3lvdVwgOwor5rKI6ayxIDwgY2hpbicndXRzdVwgOwor5YCL5Yil5YyWIDwga29iZXRzdWthXCA7CivlkJvpgZQgPCBraW1pdGFjaGlcIDsKK+aMv+WFpeWPpSA8IHNvdW55dXVrdVwgOwor6bey6by7IDwgd2FzaGliYW5hXCA7CivmipjkvI8gPCBzaGFrdWJ1a3VcIDsKK+m8oOeptCA8IG5lenVtaWFuYVwgOwor5ruR5Y+wIDwgc3ViZXJpZGFpXCA7CivmlL/mqKnlhZogPCBzZWlrZW50b3VcIDsKK+WwhOWIqeW/gyA8IHNoYXJpc2hpblwgOwor56uc5be7IDwgdGF0c3VtYWtpXCA7Civph6PpkJggPCB0c3VyaWdhbmVcIDsKK+ebo+Wvn+WMuyA8IGthbnNhdHN1aVwgOwor6YGT5YyW5pa5IDwgZG91a2VnYXRhXCA7CivljYrkuozph40gPCBoYW4nJ25panV1XCA7CivnpoHmsrvnlKMgPCBraW5jaGlzYW5cIDsKK+mmluS9jeaJk+iAhSA8IHNodWlkYXNoYVwgOwor5Y2Y6Kqe6ZuGIDwgdGFuZ29zaHV1XCA7CivnlKjmsLTlnLAgPCB5b3VzdWlpa2VcIDsKK+i7iumrmOefrSA8IHNoYWtvdXRhblwgOwor6L+R5rW36a2aIDwga2lua2FpZ3lvXCA7CivmnKjph5HlnJ8gPCBtb2t1a2luZG9cIDsKK+aMgee2muaApyA8IGppem9rdXNlaVwgOwor5ZCN5bel5aSnIDwgbWVpa291ZGFpXCA7CivmlK/phY3kurogPCBzaGloYWluaW5cIDsKK+W5ueS6i+mVtyA8IGthbmppY2hvdVwgOwor6ZW35rC06LevIDwgY2hvdXN1aXJvXCA7CivlubPlhZrlk6EgPCBoaXJhdG91aW5cIDsKK+W+queSsOe3miA8IGp1bmthbnNlblwgOwor5LiL5YmL5LiKIDwgZ2Vrb2t1am91XCA7CivmuoDlrqQgPCBtYW5zaGl0c3VcIDsKK+S4iuWxpOmiqCA8IGpvdXNvdWZ1dVwgOwor5Zyn5bu26Yu8IDwgYXRzdWVua291XCA7Civlm6Dmnpzlv5zloLEgPCBpbmdhb3Vob3VcIDsKK+a6luaVmeWToSA8IGp1bmt5b3VpblwgOwor6bem6bevIDwgbWlzb3NhemFpXCA7Civlh7nnnLzpj6EgPCBvdWdhbmt5b3VcIDsKK+eJqeS+oemrmCA8IGJ1a2thZGFrYVwgOwor6KqY5ouQ572qIDwgeXV1a2FpemFpXCA7Civnq6/lpbMgPCBoYXNoaXRhbWVcIDsKK+W+queSsOezuyA8IGp1bmthbmtlaVwgOwor6Yej6YedIDwgdHN1cmliYXJpXCA7CivmtL7nlJ/nmoQgPCBoYXNlaXRla2lcIDsKK+e0oOWPjeW/nCA8IHNvaGFuJydub3VcIDsKK+WcqOmDt+iAhSA8IHphaWdvdXNoYVwgOwor6YeR6Y6WIDwga2luZ3VzYXJpXCA7CivljJfmtbfpgZMgPCBob2trYWlkb3VcIDsKK+S4i+Wls+S4i+eUtyA8IGdlam9nZW5hblwgOwor5p6X5qqO55eFIDwgcmluZ29ieW91XCA7Civol6TolJMgPCBmdWppZHp1cnVcIDsKK+iWrOS6i+azlSA8IHlha3VqaWhvdVwgOwor55+t5q+b56iuIDwgdGFubW91c2h1XCA7CivmpoLlv7Xoq5YgPCBnYWluZW5yb25cIDsKK+mJm+iJsiA8IG5hbWFyaWlyb1wgOwor6YGT5b6z5a62IDwgZG91dG9rdWthXCA7Civlj4LkuI7lrpggPCBzYW4nJ3lva2FuXCA7CivmuIvmn78gPCBzaGlidWdha2lcIDsKK+acgOe1guahiCA8IHNhaXNodXVhblwgOwor5LiW55WM5pawIDwgc2VrYWlzaGluXCA7Civlj4LogIPkurogPCBzYW5rb3VuaW5cIDsKK+Wxi+WPsOmqqCA8IHlhdGFpYm9uZVwgOwor5aSn5q2T6L+OIDwgZGFpa2FuZ2VpXCA7CivkuIrlsaTpmo4gPCBqb3Vzb3VrYWlcIDsKK+S4gOWIh+e1jCA8IGlzc2Fpa3lvdVwgOwor5Y+k6YmEIDwgZnVydXRldHN1XCA7Civlho3phY3nva4gPCBzYWloYWljaGlcIDsKK+iCjOilpuiioiA8IGhhZGFqdWJhblwgOwor5YWt6KeS5b2iIDwgcm9ra2Fra2VpXCA7CivmlrDnlJ/lhZAgPCBzaGluc2VpamlcIDsKK+mItOiZqyA8IHN1enVtdXNoaVwgOwor6Yac5qWt5ammIDwgc2h1Z3lvdWZ1XCA7CivlkIzos6ogPCBkb3VzaGl0c3VcIDsKK+ijgeWIpOaoqSA8IHNhaWJhbmtlblwgOwor5aSn56We5a6uIDwgZGFpamluZ3V1XCA7CivmraPmlZnlk6EgPCBzZWlreW91aW5cIDsKK+WPo+mHkSA8IGt1Y2hpZ2FuZVwgOwor56qB5pKDIDwgdG90c3VnZWtpXCA7CivmgqrmiK/nnYAgPCBpdGF6dXJhZ2lcIDsKK+aYvOihjOeBryA8IGhpcnVhbmRvblwgOwor5Zyw5bmz57eaIDwgY2hpaGVpc2VuXCA7Civlronmpb3mpIXlrZAgPCBhbnJha3Vpc3VcIDsKK+mFjembu+e3miA8IGhhaWRlbnNlblwgOwor55m96aCt57+BIDwgaGFrdXRvdW91XCA7CivnmbrlsITlj7AgPCBoYXNzaGFkYWlcIDsKK+m7kue4gSA8IGt1cm9idWNoaVwgOwor5Li76Zmj5ZywIDwgc2h1amluY2hpXCA7CivmhJ/mg7PmlocgPCBrYW5zb3VidW5cIDsKK+a2iOWMluezuyA8IHNob3VrYWtlaVwgOwor6Y6u5ZynIDwgY2hpbicnYXRzdVwgOwor5Li76Kaz5oCnIDwgc2h1a2Fuc2VpXCA7CivlpKfms5Xlu7cgPCBkYWlob3V0ZWlcIDsKK+acgOe1guaXpSA8IHNhaXNodXViaVwgOwor5rG65a6a5qipIDwga2V0dGVpa2VuXCA7CivllqrlpLEgPCBzb3VzaGl0c3VcIDsKK+WFjuWwj+WxiyA8IHVzYWdpZ295YVwgOwor5aSa56We6KuWIDwgdGFzaGlucm9uXCA7Civlp5Tlk6Hku5joqJcgPCBpaW5mdXRha3VcIDsKK+W+jOWNiueUnyA8IGtvdWhhbnNlaVwgOwor56iu5rK5IDwgdGFuZWFidXJhXCA7CivlopfoqILniYggPCB6b3V0ZWliYW5cIDsKK+aJgOWcqOWcsCA8IHNob3phaWNoaVwgOwor54G95a6z5ZywIDwgc2FpZ2FpY2hpXCA7CivmtojljJbnrqEgPCBzaG91a2FrYW5cIDsKK+W5tOS7o+mghiA8IG5lbmRhaWp1blwgOwor56We57WM54KOIDwgc2hpbmtlaWVuXCA7CivlpYnku5XogIUgPCBob3VzaGlzaGFcIDsKK+WUkOargyA8IGthcmFiaXRzdVwgOwor5YaN5Y+X5rW4IDwgc2FpanVzaGluXCA7Civlj6Pou70gPCBrdWNoaWdhcnVcIDsKK+eqruWxiCA8IGt5dXVrdXRzdVwgOwor5LqI5YKZ6YGL5YuVIDwgeW9iaXVuZG91XCA7CivkuozkurrliY0gPCBmdXRhcmltYWVcIDsKK+WvjOWjq+WjuiA8IGZ1aml0c3Vib1wgOwor6YG655Sj566h55CGIDwgaXNhbmthbnJpXCA7Civnmb7osqjlupcgPCBoeWFra2F0ZW5cIDsKK+aoquaWreW5lSA8IG91ZGFubWFrdVwgOwor5LqM5Lq65YiGIDwgZnV0YXJpYnVuXCA7CivntI3nqI7ogIUgPCBub3V6ZWlzaGFcIDsKK+mFuOaAp+e0mSA8IHNhbnNlaXNoaVwgOwor5bem5Y+z6Lu4IDwgc2F5dXVqaWt1XCA7CivlpKnmsLTmobYgPCB0ZW5zdWlva2VcIDsKK+m7kueruSA8IGt1cm9jaGlrdVwgOwor5Y+L6YGUIDwgdG9tb2RhY2hpXCA7Civlk4HniakgPCBzaGluYW1vbm9cIDsKK+iytOmHkeWxniA8IGtpa2luem9rdVwgOwor5rOi576F6JycIDwgaGFyYW1pdHN1XCA7Civni6nnjJ/mnJ8gPCBzaHVyeW91a2lcIDsKK+aWh+azleabuCA8IGJ1bnBvdXNob1wgOwor56u55YWJIDwgdGFrZW1pdHN1XCA7Civol4Hoi54gPCB3YXJhZHp1dG9cIDsKK+WNoOmgmOS4iyA8IHNlbnJ5b3VrYVwgOwor54eD54S854KJIDwgbmVuc2hvdXJvXCA7Civlj6TnrYblrrYgPCBrb2hpdHN1a2FcIDsKK+mYsuihm+W6gSA8IGJvdWVpY2hvdVwgOwor5aSn56Wt5Y+4IDwgZGFpc2Fpc2hpXCA7CivllJDmnb4gPCBrYXJhbWF0c3VcIDsKK+mbm+e9jOeynyA8IGhpbmFnZXNoaVwgOwor5YWo5aSp5YCZIDwgemVudGVua291XCA7CivotoXnn63ms6IgPCBjaG91dGFucGFcIDsKK+aUvuWwhOiDvSA8IGhvdXNoYW5vdVwgOwor5YmN56eR6ICFIDwgemVua2Ftb25vXCA7Civplbfph47nnIwgPCBuYWdhbm9rZW5cIDsKK+efpeaBteeGsSA8IGNoaWVuZXRzdVwgOwor5YyF6KOF57SZIDwgaG91c291c2hpXCA7CivkuonorbDooYzngrogPCBzb3VnaWtvdWlcIDsKK+exs+eUo+WcsCA8IGJlaXNhbmNoaVwgOwor5YWr6KeS5b2iIDwgaGFra2Fra2VpXCA7CivkupTlpKfmtLIgPCBnb2RhaXNodXVcIDsKK+aWsOWtpuacnyA8IHNoaW5nYWtraVwgOwor6bq75amG6LGG6IWQIDwgbcSBYm9kb3VmdVwgOwor6YWN6Zu755ukIDwgaGFpZGVuYmFuXCA7Civoi7HmloflraYgPCBlaWJ1bmdha3VcIDsKK+iaiuafsSA8IGthYmFzaGlyYVwgOwor5b6h5YWE5byfIDwgZ29reW91ZGFpXCA7Civoo4HliKTmiYAgPCBzYWliYW5zaG9cIDsKK+WPgumZoumBuCA8IHNhbicnaW5zZW5cIDsKK+erueS4siA8IHRha2VndXNoaVwgOwor6LuN5Lq66aKoIDwgZ3VuamluZnV1XCA7CivnhKHlvpfngrkgPCBtdXRva3V0ZW5cIDsKK+irlueQhueahCA8IHJvbnJpdGVraVwgOwor6buS55m9IDwga29rdWJ5YWt1XCA7CivlioPmnJ/nmoQgPCBrYWtraXRla2lcIDsKK+elnue9sCA8IHNoaW5iYXRzdVwgOwor5rK56J2JIDwgYWJ1cmF6ZW1pXCA7CivkuInnnIHloIIgPCBzYW5zZWlkb3VcIDsKK+WPluiqrCA8IHRvcmlzZXRzdVwgOwor6Jma5byx5YWQIDwga3lvamFrdWppXCA7CivmlofljJbmmKDnlLsgPCBidW5rYWVpZ2FcIDsKK+W9k+S6i+WbvSA8IHRvdWppa29rdVwgOwor6KuW5LqJ6ICFIDwgcm9uc291c2hhXCA7CivmlL7lsITnt5ogPCBob3VzaGFzZW5cIDsKK+ibuOWjvCA8IHRha290c3Vib1wgOwor5bSH5oud6ICFIDwgc3V1aGFpc2hhXCA7CivlgaXlurfms5UgPCBrZW5rb3Vob3VcIDsKK+aAquaWh+abuCA8IGthaWJ1bnNob1wgOwor6YCu5o2V5q20IDwgdGFpaG9yZWtpXCA7CivnrYbpoK3ogIUgPCBoaXR0b3VzaGFcIDsKK+a5p+WHuiA8IHlvdXNodXRzdVwgOwor56m65a6kIDwga3V1c2hpdHN1XCA7Civkub7nlJ/lp5wgPCBrYW5zaG91Z2FcIDsKK+eUn+aui+iAhSA8IHNlaXphbnNoYVwgOwor5reh5rC06a2aIDwgdGFuc3VpZ3lvXCA7CivotIjnrZTlk4EgPCB6b3V0b3VoaW5cIDsKK+S6pOaPm+aJiyA8IGtvdWthbnNodVwgOwor6JuN5YWJ5L2TIDwga2Vpa291dGFpXCA7CivmsLfngrnkuIsgPCBoeW91dGVua2FcIDsKK+iqmOaLkOeKryA8IHl1dWthaWhhblwgOwor54WO546J5a2QIDwgaXJpdGFtYWdvXCA7CivoiIjkv6HmiYAgPCBrb3VzaGluam9cIDsKK+eUmOWRs+aWmSA8IGthbm1pcnlvdVwgOwor6Kmm6aiT57SZIDwgc2hpa2Vuc2hpXCA7CivogonopabooqIgPCBuaWt1anViYW5cIDsKK+ebo+WuiOS6uiA8IGthbnNodW5pblwgOwor5aKX5aSn5Y+3IDwgem91ZGFpZ291XCA7Civmu5HotbDovKogPCBrYXNzb3VyaW5cIDsKK+WGjeWJtemAoCA8IHNhaXNvdXpvdVwgOwor5oi457GN5rOVIDwga29zZWtpaG91XCA7CivpjJjlvaIgPCB0c3VtdWdhdGFcIDsKK+iNkueJqeWxiyA8IGFyYW1vbm95YVwgOwor5Lit6KW/6YOoIDwgY2h1dXNlaWJ1XCA7Civoh6rli5XnmoQgPCBqaWRvdXRla2lcIDsKK+WAn+WutuS6uiA8IHNoYWtrYW5pblwgOwor5rOV5a2m6YOoIDwgaG91Z2FrdWJ1XCA7Civou43os4fph5EgPCBndW5zaGlraW5cIDsKK+aWh+azleaApyA8IGJ1bnBvdXNlaVwgOwor6L6y5aSr55eHIDwgbm91ZnVzaG91XCA7CivmnZDmlpnosrsgPCB6YWlyeW91aGlcIDsKK+WCrOa2memKgyA8IHNhaXJ1aWp1dVwgOwor5aSJ5o+b5a2QIDwgaGVua2Fuc2hpXCA7CivmnZDmnKjlsYsgPCB6YWltb2t1eWFcIDsKK+iyp+eqruWMliA8IGhpbmt5dXVrYVwgOwor5pep5ZCI54K5IDwgaGF5YWdhdGVuXCA7Civou4rppqzos4MgPCBzaGFiYWNoaW5cIDsKK+ernOmojuWFtSA8IHJ5dXVraWhlaVwgOwor5Zyf5Y+w55+zIDwgZG9kYWlpc2hpXCA7CivoqabpqJPnrqEgPCBzaGlrZW5rYW5cIDsKK+Wkp+WPjeWvviA8IGRhaWhhbnRhaVwgOwor6Z2e5Zu95rCRIDwgaGlrb2t1bWluXCA7CivlsI/osYbpsZIgPCBhenVraW1hc3VcIDsKK+iOouixjOixhiA8IHNheWFlbmRvdVwgOwor5Lih5pu/5qmfIDwgcnlvdWdhZWtpXCA7Civntr/ngavolqwgPCBtZW5rYXlha3VcIDsKK+S6uuawkei7jSA8IGppbm1pbmd1blwgOwor5qyg5Yuk6ICFIDwga2Vra2luc2hhXCA7CivlsI/kvZznsbMgPCBrb3Nha3VtYWlcIDsKK+azpeadv+WyqSA8IGRlaWJhbmdhblwgOwor5pOs6Z2p57SZIDwgZ2lrYWt1c2hpXCA7CivosrTph43lk4EgPCBraWNob3VoaW5cIDsKK+eBq+WxseekqyA8IGthemFucmVraVwgOwor6aGU5YaZ55yfIDwga2FvamFzaGluXCA7CivlhbHmvJTogIUgPCBreW91ZW5zaGFcIDsKK+aVkeitt+ePrSA8IGt5dXVnb2hhblwgOwor6YeR6JSTIDwga2FuZWR6dXJ1XCA7Civlho3lvqrnkrAgPCBzYWlqdW5rYW5cIDsKK+aEj+WRs+WGheWuuSA8IGltaW5haXlvdVwgOwor6I275rGf56+AIDwgb2dpZWJ1c2hpXCA7Civpm4blhYnlmaggPCBzaHV1a291a2lcIDsKK+S4gOmDqOWIhiA8IGljaGlidWJ1blwgOwor6Yej6Ii5IDwgdHN1cmlidW5lXCA7Civoo4XnlLLou4ogPCBzb3Vrb3VzaGFcIDsKK+aWsOS4lue0gCA8IHNoaW5zZWlraVwgOwor5LqI5YKZ5Yik5LqLIDwgeW9iaWhhbmppXCA7CivpiaLniakgPCBoYWNoaW1vbm9cIDsKK+a1mua4qyA8IHNodW5zZXRzdVwgOwor5reR5b6zIDwgc2h1a3V0b2t1XCA7CivnpZ3npo8gPCBzaHVrdWZ1a3VcIDsKK+ijgeWIpOWumCA8IHNhaWJhbmthblwgOwor5Ye65Yuk5pelIDwgc2h1a2tpbmJpXCA7CivpgIHkv6HmqZ8gPCBzb3VzaGlua2lcIDsKK+ayoeiQvSA8IGJvdHN1cmFrdVwgOwor56qT5Y+jIDwgbWFkb2d1Y2hpXCA7Civpm5HlsYXlnLAgPCB6YWtreW9jaGlcIDsKK+iLseaVsOWbvSA8IGVpc3V1a29rdVwgOwor5L+d566h5paZIDwgaG9rYW5yeW91XCA7CivmrablrrbmmYLku6MgPCBidWtlamlkYWlcIDsKK+WNiuiytOefsyA8IGhhbmtpc2VraVwgOwor6LuN55So5qmfIDwgZ3VuJyd5b3VraVwgOwor5ZOB5p+EIDwgc2hpbmFnYXJhXCA7CivljLvnmYLpgY7oqqQgPCBpcnlvdWthZ29cIDsKK+iZjuiQveesmyA8IG1vZ2FyaWJ1ZVwgOwor55Sf6YKE6ICFIDwgc2Vpa2Fuc2hhXCA7Civmh4foq4fkvJogPCBrb25kYW5rYWlcIDsKK+acquWFrOihqCA8IG1pa291aHlvdVwgOwor6KW/5rSL5Lq6IDwgc2VpeW91amluXCA7CivnlLDoiI7ogIUgPCBpbmFrYW1vbm9cIDsKK+WQuOedgCA8IGt5dXVjaGFrdVwgOwor5raI5YyW5rayIDwgc2hvdWthZWtpXCA7CivmrablrrbmlL/msrsgPCBidWtlc2VpamlcIDsKK+Wls+eOi+mZm+S4iyA8IGpvb3VoZWlrYVwgOwor56m05bGF5Lq6IDwga2Vra3lvamluXCA7Civlpqjmpa3lk6EgPCBib3VneW91aW5cIDsKK+miqOWRguaVtyA8IGZ1cm9zaGlraVwgOwor5Y+j6ISHIDwga3VjaGl3YWtpXCA7CivkvZXmm5zml6UgPCBuYW4nJ3lvdWJpXCA7CivorabmiJLnt5ogPCBrZWlrYWlzZW5cIDsKK+eiuuiqrCA8IGtha3VzZXRzdVwgOwor5Lqk5o+b5ayiIDwga291a2Fuam91XCA7CivlpKfpgZPoirggPCBkYWlkb3VnZWlcIDsKK+WBnOatoue3miA8IHRlaXNoaXNlblwgOwor6JaE57eRIDwgdXN1bWlkb3JpXCA7Civlk4HmlbAgPCBzaGluYWthenVcIDsKK+WLieW8t+WutiA8IGJlbmt5b3VrYVwgOwor5rWq5ryr55qEIDwgcm9tYW50ZWtpXCA7Civli6fkuJbnuJIgPCBrYW56ZXlvcmlcIDsKK+eruee0sOW3pSA8IHRha2V6YWlrdVwgOwor55Sj5Y215Y+jIDwgc2FucmFua291XCA7CivmhJ/li5XoqZ4gPCBrYW5kb3VzaGlcIDsKK+awtOWcp+apnyA8IHN1aWF0c3VraVwgOwor6Z+z5qW956WtIDwgb25nYWt1c2FpXCA7Civpub/nmq4gPCBzaGlrYWdhd2FcIDsKK+m7meauuiA8IG1va3VzYXRzdVwgOwor5Lq65oOF5pysIDwgbmluam91Ym9uXCA7CivnmofpnIrmrr8gPCBrb3VyZWlkZW5cIDsKK+aBkOe4riA8IGt5b3VzaHVrdVwgOwor5L2/5ZG96ICFIDwgc2hpbWVpc2hhXCA7CivnqoHlh7ogPCB0b3NzaHV0c3VcIDsKK+S7o+eUqOWTgSA8IGRhaXlvdWhpblwgOwor6JGJ6I+c6aGeIDwgeW91c2FpcnVpXCA7Civpg73poqggPCBtaXlha29mdXVcIDsKK+ayueeznyA8IGFidXJha2FzdVwgOwor5YaZ55yf5qmfIDwgc2hhc2hpbmtpXCA7CivmsLTos6ogPCBzdWlzaGl0c3VcIDsKK+eUt+S8iumBlCA8IG90b2tvZGF0ZVwgOwor5YW156uZ57eaIDwgaGVpdGFuc2VuXCA7CivluK/pm7vkvZMgPCB0YWlkZW50YWlcIDsKK+eqgeWFpSA8IHRvdHN1bnl1dVwgOwor5paH5YyW55qEIDwgYnVua2F0ZWtpXCA7CivmnKrnmbrooaggPCBtaWhhcHB5b3VcIDsKK+WFiOS9j+awkSA8IHNlbmp1dW1pblwgOwor6YCU5LiK5Zu9IDwgdG9qb3Vrb2t1XCA7CivlpKfmsJfmsZrmn5MgPCB0YWlraW9zZW5cIDsKK+WNiumfs+majiA8IGhhbicnb25rYWlcIDsKK+eZveacqOWxiyA8IHNoaXJva2l5YVwgOwor5LuV5qeY5pu4IDwgc2hpeW91c2hvXCA7CivmsJHkuovnmoQgPCBtaW5qaXRla2lcIDsKK+aIkOWxpOWcjyA8IHNlaXNvdWtlblwgOwor6JK45rCX5ZynIDwgam91a2lhdHN1XCA7CivkuKHmm7/miYAgPCByeW91Z2Flam9cIDsKK+eooOWvhiA8IGNob3VtaXRzdVwgOwor6buS5qirIDwga3Vyb2dhc2hpXCA7CivmtLvmrbQgPCBrYXRzdXJla2lcIDsKK+W+jOWNiuaIpiA8IGtvdWhhbnNlblwgOwor5Y+j57SFIDwga3VjaGliZW5pXCA7Civlj7Pnq68gPCBtaWdpaGFzaGlcIDsKK+W5veWvguWRsyA8IHl1dWpha3VtaVwgOwor5bid546L5a2mIDwgdGVpb3VnYWt1XCA7Civosq/msLTmsaAgPCBjaG9zdWljaGlcIDsKK+iWrOeTtiA8IGt1c3VyaWJpblwgOwor5ZOy5a2mIDwgdGV0c3VnYWt1XCA7CivmlrDkuJbnlYwgPCBzaGluc2VrYWlcIDsKK+WRveS7pOazlSA8IG1laXJlaWhvdVwgOwor5Z+656SO5bel5LqLIDwga2lzb2tvdWppXCA7Civnj77lg4/mtrIgPCBnZW56b3Vla2lcIDsKK+ims+imp+i7iiA8IGthbnJhbnNoYVwgOwor5Lya56S+6JGsIDwga2Fpc2hhc291XCA7CivpiYTmuIsgPCBrYW5hc2hpYnVcIDsKK+emgemFkuazlSA8IGtpbnNodWhvdVwgOwor6ISz6Iac54KOIDwgbm91bWFrdWVuXCA7Civlj47nuK4gPCBzaHV1c2h1a3VcIDsKK+WPsOenpCA8IGRhaWJha2FyaVwgOwor5paH6YOo55yBIDwgbW9uYnVzaG91XCA7Civou43kuovpgJogPCBndW5qaXRzdXVcIDsKK+iEs+iFq+eYjSA8IG5vdXNodXlvdVwgOwor5LiW55WM5LiAIDwgc2VrYWlpY2hpXCA7Civlv4Xoqq0gPCBoaXRzdWRva3VcIDsKK+WNmuitmCA8IGhha3VzaGlraVwgOwor5YaN5YiG6YWNIDwgc2FpYnVucGFpXCA7CivmjpvluIPlm6MgPCBrYWtlYnV0b25cIDsKK+Wklua0i+iIuSA8IGdhaXlvdXNlblwgOwor6buS5p2+IDwga3Vyb21hdHN1XCA7CivntYTogbflm7MgPCBzb3Nob2t1enVcIDsKK+eEoeeQhuW+gOeUnyA8IG11cmlvdWpvdVwgOwor5Lqk5o+b5ZOBIDwga291a2FuaGluXCA7Civngavpo5/ps6UgPCBoaWt1aWRvcmlcIDsKK+iyr+awtOanvSA8IGNob3N1aXNvdVwgOwor5rW35rC06a2aIDwga2Fpc3VpZ3lvXCA7Civnsr7pgLLml6UgPCBzaG91amluYmlcIDsKK+WNk+itmCA8IHRha3VzaGlraVwgOwor6Jas54mpIDwgeWFrdWJ1dHN1XCA7CivkuInoibLml5cgPCBzYW5zaG9ra2lcIDsKK+mAg+S6oeiAhSA8IHRvdWJvdXNoYVwgOwor6YGT5YW3566xIDwgZG91Z3ViYWtvXCA7Civlh7rlu7fml6UgPCBzaHV0dGVpYmlcIDsKK+eUu+Wtpue0mSA8IGdhZ2FrdXNoaVwgOwor5rC36J2VIDwgaHlvdXNob2t1XCA7Civosq/olLXmiYAgPCBjaG96b3VzaG9cIDsKK+adsea1t+mBkyA8IHRvdWthaWRvdVwgOwor5Lqk5o+b5Y+wIDwga291a2FuZGFpXCA7CivmiKbmmYLkuK0gPCBzZW5qaWNodXVcIDsKK+WNk+iqrCA8IHRha3VzZXRzdVwgOwor6buS5pifIDwga3Vyb2Jvc2hpXCA7Civmt7fliIbmlbAgPCBrb25idW5zdXVcIDsKK+eUn+efs+eBsCA8IHNlaXNla2thaVwgOwor5LiN5qSc5p2fIDwgZnVrZW5zb2t1XCA7CivlsI/mnb7oj5wgPCBrb21hdHN1bmFcIDsKK+i0iOWRiOiAhSA8IHpvdXRlaXNoYVwgOwor6aGe5qaC5b+1IDwgcnVpZ2FpbmVuXCA7Civku7vlpKnloIIgPCBuaW50ZW5kb3VcIDsKK+WNl+aWueeUoyA8IG5hbnBvdXNhblwgOwor57WQ57SN6YeRIDwgeXVpbm91a2luXCA7Civnp4DmipwgPCBzaHV1YmF0c3VcIDsKK+W/g+ihgCA8IHNoaW5rZXRzdVwgOwor5aSq5YiA562LIDwgdGFjaGlzdWppXCA7CivmsLTomasgPCBtaXp1bXVzaGlcIDsKK+iUk+iNiSA8IHRzdXJ1a3VzYVwgOwor5by36aOvIDwga293YW1lc2hpXCA7Civnhp/lrZfoqJMgPCBqdWt1amlrdW5cIDsKK+WjsOaYjuabuCA8IHNlaW1laXNob1wgOwor5ZWP6aGM54K5IDwgbW9uZGFpdGVuXCA7CivliIblt6XloLQgPCBidW5rb3Vqb3VcIDsKK+WumuW5tOWItiA8IHRlaW5lbnNlaVwgOwor5Zyw5YWD57SZIDwgamltb3Rvc2hpXCA7CivpoJDoqJfph5EgPCB5b3Rha3VraW5cIDsKK+mYsuepuuegsiA8IGJvdWt1dWhvdVwgOwor6Z2Z5Zyn5q+UIDwgc2VpYXRzdWhpXCA7CivokZvppIUgPCBrdXp1bW9jaGlcIDsKK+Wbnumhp+mMsiA8IGthaWtvcm9rdVwgOwor6baJ6LGGIDwgdXp1cmFtYW1lXCA7CivkuKHmm7/lsYsgPCByeW91Z2FleWFcIDsKK+S6uuawl+iAhSA8IG5pbmtpbW9ub1wgOwor5LiN6Imv5ZOBIDwgZnVyeW91aGluXCA7CivlsI/kvr/miYAgPCBzaG91YmVuam9cIDsKK+W+queSsOaApyA8IGp1bmthbnNlaVwgOwor5ZWG55So5YyWIDwgc2hvdXlvdWthXCA7CivkuqTmj5vlhoYgPCBrb3VrYW4nJ2VuXCA7CivoqabpqJPms5UgPCBzaGlrZW5ob3VcIDsKK+WtpuWckuelrSA8IGdha3VlbnNhaVwgOwor5L2V5pmC5pmC5YiGIDwgaXRzdWppYnVuXCA7Civph5Hnm6UgPCBrYW5hZGFyYWlcIDsKK+WPo+eZliA8IGt1Y2hpZ3VzZVwgOwor56ys5YWt5oSfIDwgZGFpcm9ra2FuXCA7CivosqfmsJHooZcgPCBoaW5taW5nYWlcIDsKK+WRveS7pOabuCA8IG1laXJlaXNob1wgOwor5Y2K5bCO5L2TIDwgaGFuZG91dGFpXCA7Civnn7PpoK0gPCBpc2hpYXRhbWFcIDsKK+mzpem7kCA8IHRvcmltb2NoaVwgOwor5raZ5aOwIDwgbmFtaWRhZ29lXCA7CivlhbXlmajlu6AgPCBoZWlraXNob3VcIDsKK+iQvemrqiA8IHJha3VoYXRzdVwgOwor6KOB5Yik5LiKIDwgc2FpYmFuam91XCA7Civlo7LmmKXlqaYgPCBiYWlzaHVucHVcIDsKK+WLhemhjSA8IGNob2t1Z2FrdVwgOwor6YWN6Zu75omAIDwgaGFpZGVuc2hvXCA7CivnpL7kuqTnlYwgPCBzaGFrb3VrYWlcIDsKK+WEquWLneaXlyA8IHl1dXNob3VraVwgOwor5omL5ZOB5birIDwgdGVqaW5hc2hpXCA7Civpq4Tohpzngo4gPCB6dWltYWt1ZW5cIDsKK+S/rumBk+mZoiA8IHNodXVkb3VpblwgOwor5Y216ImyIDwgdGFtYWdvaXJvXCA7Civmtbfom4fluqcgPCB1bWloZWJpemFcIDsKK+eosuWFiSA8IGluYWJpa2FyaVwgOwor5ZG95Luk5paHIDwgbWVpcmVpYnVuXCA7CivmnbHmtIvpoqggPCB0b3V5b3VmdXVcIDsKK+W8n+aBr+WtkCA8IG90b211c3Vrb1wgOwor5LqU5aSn5Zu9IDwgZ29kYWlrb2t1XCA7CivmjqXpqqjljLsgPCBzZWtrb3RzdWlcIDsKK+acm+mBoOmPoSA8IGJvdWVua3lvdVwgOwor5qKF6Zuo56m6IDwgdHN1eXV6b3JhXCA7Civlt6Xlk6Hlr64gPCBrb3VpbnJ5b3VcIDsKK+eEoemBiueXhSA8IG11eXV1YnlvdVwgOwor5q6/6YGUIDwgdG9ub3RhY2hpXCA7Civlm73pmpvljJYgPCBrb2t1c2Fpa2FcIDsKK+mpmueVsOeahCA8IGt5b3VpdGVraVwgOwor6JC96aO+IDwgcmFrdXNob2t1XCA7CivplqLmnbHlvIEgPCBrYW50b3ViZW5cIDsKK+ebuOS6kuS+neWtmCA8IHNvdWdvaXpvblwgOwor6KSH5ZCI6KqeIDwgZnVrdWdvdWdvXCA7CivlvJjmuIjkvJogPCBrb3VzYWlrYWlcIDsKK+iHs+i/keW8viA8IHNoaWtpbmRhblwgOwor5pys5bm05bqmIDwgaG9uJyduZW5kb1wgOwor5pWR6K235omAIDwga3l1dWdvc2hvXCA7CivmsojnnYAgPCBjaGluY2hha3VcIDsKK+WRkeawl+iAhSA8IG5vbmtpbW9ub1wgOwor5bCP5L2c5qipIDwga29zYWt1a2VuXCA7Civku6PnkIbmr40gPCBkYWlyaWhhaGFcIDsKK+WIhueVjOe3miA8IGJ1bmthaXNlblwgOwor56uv5aKD5pyfIDwgaGF6YWthaWtpXCA7Civoqp7mupDlraYgPCBnb2dlbmdha3VcIDsKK+W/g+mbu+WbsyA8IHNoaW5kZW56dVwgOwor5YGl5bq35ZywIDwga2Vua291Y2hpXCA7Civoqp7lvZnopo/liYcgPCBnb2lraXNva3VcIDsKK+awj+WtkOacrSA8IHVqaWtvZnVkYVwgOwor6Ku45ZWP6aGMIDwgc2hvbW9uZGFpXCA7Civlj6PllIfmnJ8gPCBrb3VzaGlua2lcIDsKK+Wwhuaji+ebpCA8IHNob3VnaWJhblwgOwor542F5a2Q5ZSQIDwgc2hpc2hpdG91XCA7CivlubPkv6HlvpIgPCBoZWlzaGludG9cIDsKK+elpeaciCA8IHNob3V0c3VraVwgOwor5aSn5rCX5ZynIDwgdGFpa2lhdHN1XCA7CivlsIbou43lrrYgPCBzaG91Z3Vua2VcIDsKK+WNg+S7o+e0mSA8IGNoaXlvZ2FtaVwgOwor5Li75oim6KuWIDwgc2h1c2Vucm9uXCA7CivliqPnrYnnlJ8gPCByZXR0b3VzZWlcIDsKK+aWsOWtl+S9kyA8IHNoaW5qaXRhaVwgOwor5Y+O546HIDwgc2h1dXJpdHN1XCA7CivntI3lk4Hmm7ggPCBub3VoaW5zaG9cIDsKK+eah+WkquWtkCA8IGtvdXRhaXNoaVwgOwor56K656uLIDwga2FrdXJpdHN1XCA7CivpqJLmk77nvaogPCBzb3Vqb3V6YWlcIDsKK+WNiuWumOWgsSA8IGhhbmthbnBvdVwgOwor5ZCM5Ly06ICFIDwgZG91aGFuc2hhXCA7CivmtbfpvKDmnb8gPCBuYW1ha29iYW5cIDsKK+WHhuWjq+WumCA8IGp1bnNoaWthblwgOwor5a6f6aiT6ICFIDwgamlra2Vuc2hhXCA7Civku6PnkIbmpa0gPCBkYWlyaWd5b3VcIDsKK+S4gOasoeWFgyA8IGljaGlqaWdlblwgOwor55So55uK5qipIDwgeW91ZWtpa2VuXCA7CivkuIrohZXnrYsgPCBqb3V3YW5raW5cIDsKK+WPguaUv+aoqSA8IHNhbnNlaWtlblwgOwor5beh56S86ICFIDwganVucmVpc2hhXCA7Civlrp/pqJPnvqQgPCBqaWtrZW5ndW5cIDsKK+epuuaZr+awlyA8IGthcmFnZWlraVwgOwor5Y2g6ICFIDwgdXJhbmFpc2hhXCA7CivlhpnnnJ/lrrYgPCBzaGFzaGlua2FcIDsKK+i7iuakheWtkCA8IGt1cnVtYWlzdVwgOwor5o+u5q+r5paZIDwga2lnb3VyeW91XCA7Civoh6rlt7HlvIHorbcgPCBqaWtvYmVuZ29cIDsKK+itpuWRiumfsyA8IGtlaWtva3VvblwgOwor5pWZ5o6I6ZmjIDwga3lvdWp1amluXCA7CivliJ3kuIPml6UgPCBzaG9uYW5va2FcIDsKK+WuieW/g+aEnyA8IGFuc2hpbmthblwgOwor5b+g56+AIDwgY2h1dXNldHN1XCA7CivpiaLlt7sgPCBoYWNoaW1ha2lcIDsKK+Wkp+WFpemBkyA8IG9vbnl1dWRvdVwgOwor56S+5Lya5oKqIDwgc2hha2FpYWt1XCA7CivlkoTlrrYgPCBoYW5hc2hpa2FcIDsKK+S4u+ijveWTgSA8IHNodXNlaWhpblwgOwor54Sh5rCX5YqbIDwgbXVraXJ5b2t1XCA7CivnpL7kvJrmgKcgPCBzaGFrYWlzZWlcIDsKK+iEseiEgue2vyA8IGRhc3NoaW1lblwgOwor5rCX6LGh5Y+wIDwga2lzaG91ZGFpXCA7Civlkb3ku6TlvaIgPCBtZWlyZWlrZWlcIDsKK+irlueQhuWtpiA8IHJvbnJpZ2FrdVwgOwor5a6f5L2T6KuWIDwgaml0dGFpcm9uXCA7CivlsI/kvJrmtL4gPCBzaG91a2FpaGFcIDsKK+WQjOWApOaApyA8IGRvdWNoaXNlaVwgOwor6YW45oCn5bKpIDwgc2Fuc2VpZ2FuXCA7Civnn43pkaAgPCBrYWt1c2hha3VcIDsKK+S4i+i2s+eVqiA8IGdlc29rdWJhblwgOwor5LqU5Y2B6Z+z5ZuzIDwgZ29qdXVvbnp1XCA7CivmlqXlgJnlhbUgPCBzZWtrb3VoZWlcIDsKK+WlveW9semfvyA8IGtvdWVpa3lvdVwgOwor55Sf5YyW5a2mIDwgc2Vpa2FnYWt1XCA7CivoqabkuZfou4ogPCBzaGlqb3VzaGFcIDsKK+Wcp+WItueahCA8IGFzc2VpdGVraVwgOwor54Kt6YW457SZIDwgdGFuc2Fuc2hpXCA7CivliKnku5bkuLvnvqkgPCByaXRhc2h1Z2lcIDsKK+WGjeW+k+W8nyA8IHNhaWp1dXRlaVwgOwor5L2Z6KiI6ICFIDwgeW9rZWltb25vXCA7Civmr5LomasgPCBkb2t1bXVzaGlcIDsKK+S4jeWvneeVqiA8IGZ1c2hpbmJhblwgOwor55CG5bGI5bGLIDwgcmlrdXRzdXlhXCA7Civkv53nrqHkurogPCBob2thbicnbmluXCA7CivlhKroia/ppqwgPCB5dXVyeW91YmFcIDsKK+mBi+i8uOmHjyA8IHVuJyd5dXJ5b3VcIDsKK+WNk+e1tiA8IHRha3V6ZXRzdVwgOwor5aSq5bmz5rSLIDwgdGFpaGVpeW91XCA7Civosq/olLXlk4EgPCBjaG96b3VoaW5cIDsKK+WNmOezlumhniA8IHRhbnRvdXJ1aVwgOwor5Y+W5raIIDwgdG9yaWtlc2hpXCA7CivogZrmpb3nrKwgPCBqdXJha3VkYWlcIDsKK+eUn+WNiuWPryA8IG5hbWFoYW5rYVwgOwor5ZGo5a+GIDwgc2h1dW1pdHN1XCA7Civokp/okrsgPCBrb24nJ255YWt1XCA7CivljZTorbDmiYAgPCBreW91Z2lzaG9cIDsKK+S7iuW5tOW6piA8IGtvbicnbmVuZG9cIDsKK+WQhOaciCA8IGtha3V0c3VraVwgOwor5q616KKLIDwgZGFuYnVrdXJvXCA7CivnpL7kvJrlsaQgPCBzaGFrYWlzb3VcIDsKK+aAneaYpeacnyA8IHNoaXNodW5raVwgOwor5pS+5bCE5oCnIDwgaG91c2hhc2VpXCA7CivomavlqpLoirEgPCBjaHV1YmFpa2FcIDsKK+WKoOaMgeeliOeltyA8IGthamlraXRvdVwgOwor5YaF5ZCR5oCnIDwgbmFpa291c2VpXCA7CivlhKrlvoXliLggPCB5dXV0YWlrZW5cIDsKK+Wbm+S6uue1hCA8IHlvbmluZ3VtaVwgOwor6YCA5ayw55qEIDwgdGFpZWl0ZWtpXCA7CivlloTlvoznrZYgPCB6ZW5nb3Nha3VcIDsKK+WPjuayoSA8IHNodXVib3RzdVwgOwor6YmE5bGRIDwgdGV0c3VrdXp1XCA7CivliqnmiYvluK0gPCBqb3NodXNla2lcIDsKK+eBq+acqOmHkSA8IGthbW9rdWtpblwgOwor5Y2T562GIDwgdGFrdWhpdHN1XCA7CivmsI/lrZDluLMgPCB1amlrb2Nob3VcIDsKK+eah+WkquWQjiA8IGtvdXRhaWdvdVwgOwor5Y+W5qyhIDwgdG9yaXRzdWdpXCA7CivnibnmlLvpmoogPCB0b2trb3V0YWlcIDsKK+WNk+eriyA8IHRha3VyaXRzdVwgOwor6YG66KiA6ICFIDwgeXVpZ29uc2hhXCA7Civpg7flnJ/lj7IgPCBreW91ZG9zaGlcIDsKK+ato+mBkyA8IG1hc2FtaWNoaVwgOwor5LuY5bGe5qChIDwgZnV6b2t1a291XCA7CivmsojmsqEgPCBjaGluYm90c3VcIDsKK+e1seayu+iAhSA8IHRvdWNoaXNoYVwgOwor5ZCN5Lq66Iq4IDwgbWVpamluZ2VpXCA7Civlh4Tmloflj6UgPCBzdWdvbW9ua3VcIDsKK+aIpueBveiAhSA8IHNlbnNhaXNoYVwgOwor6Kmm5L2c5qmfIDwgc2hpc2FrdWtpXCA7Civpu4Tmnq/ojLYgPCBraWdhcmFjaGFcIDsKK+iDg+iFuOiWrCA8IGljaG91eWFrdVwgOwor5q+S6IiMIDwgZG9rdXpldHN1XCA7Civpmb3pm7vlrZAgPCB5b3VkZW5zaGlcIDsKK+ejqOaxgSA8IHRvZ2lzaGlydVwgOwor5paH5q6K5qeYIDwgbW9uanVzYW1hXCA7CivlvbnogbcgPCB5YWt1c2hva3VcIDsKK+S7mOWxnuabuCA8IGZ1em9rdXNob1wgOwor6KiO6KuW6ICFIDwgdG91cm9uc2hhXCA7CivlpJrmsZfnl4cgPCB0YWthbnNob3VcIDsKK+eip+eOiSA8IGhla2lneW9rdVwgOwor5oqV5omL6ZmjIDwgdG91c2h1amluXCA7CivkuK3ntpnmiYAgPCBjaHV1a2Vpam9cIDsKK+agueaLoOWcsCA8IGtvbmt5b2NoaVwgOwor5rOV5Lq656iOIDwgaG91amluemVpXCA7CivlnLDlhYPmsJEgPCBqaW1vdG9taW5cIDsKK+W5tOacn+iAhSA8IG5lbmtpbW9ub1wgOwor6YW354axIDwga29rdW5ldHN1XCA7CivoirHljYnlnJLoirggPCBrYWtpZW5nZWlcIDsKK+mfs+alveaApyA8IG9uZ2FrdXNlaVwgOwor6KKr5ZGK5Lq6IDwgaGlrb2t1bmluXCA7CivmlofljJbluoEgPCBidW5rYWNob3VcIDsKK+WBj+WQkeadvyA8IGhlbmtvdWJhblwgOwor6IOM5Lu7572qIDwgaGFpbmluemFpXCA7Civlgo3oprPogIUgPCBib3VrYW5zaGFcIDsKK+iUtea1miA8IGt1cmF6YXJhZVwgOwor5pif54q25L2TIDwgc2Vpam91dGFpXCA7CivmtojljJbliaQgPCBzaG91a2F6YWlcIDsKK+asp+W3nueJiCA8IG91c2h1dWJhblwgOwor5ZKM6KO96Iux6KqeIDwgd2FzZWllaWdvXCA7Civlj6Pml6kgPCBrdWNoaWJheWFcIDsKK+Wwj+ixhueypSA8IGF6dWtpZ2F5dVwgOwor5rGB54mpIDwgc2hpcnVtb25vXCA7Civns7vlm7PlraYgPCBrZWl6dWdha3VcIDsKK+mFt+eDiCA8IGtva3VyZXRzdVwgOwor5Luu5ZCN5omL5pysIDwga2FuYWRlaG9uXCA7Civok4TnqY0gPCBjaGlrdXNla2lcIDsKK+abuOewoeeuiyA8IHNob2thbnNlblwgOwor5YaN6YWN5YiGIDwgc2FpaGFpYnVuXCA7CivlvLHomasgPCB5b3dhbXVzaGlcIDsKK+WNlOitsOWumCA8IGt5b3VnaWthblwgOwor5ZCM6aGe6aCFIDwgZG91cnVpa291XCA7Civoh6rou6Lou7ggPCBqaXRlbmppa3VcIDsKK+W/oOeDiCA8IGNodXVyZXRzdVwgOwor5LiK55Sy5p2/IDwgam91a2FucGFuXCA7Civmg5zliKUgPCBzZWtpYmV0c3VcIDsKK+WFqOWcsOaWuSA8IHplbmNoaWhvdVwgOwor5Lya56S+5rOVIDwga2Fpc2hhaG91XCA7CivmtLvliocgPCBrYXRzdWdla2lcIDsKK+WlieS7leWTgSA8IGhvdXNoaWhpblwgOwor5oiq5ouz6YGTIDwgc2Vra2VuZG91XCA7Civlj7DmiYAgPCBkYWlkb2tvcm9cIDsKK+S7leiInuWxiyA8IHNoaW1vdGF5YVwgOwor5oqY6KG35qGIIDwgc2V0Y2h1dWFuXCA7CivoiKrnqbrpmoogPCBrb3VrdXV0YWlcIDsKK+idpuifh+WPoyA8IGdhbWFndWNoaVwgOwor56aB5q2i5rOVIDwga2luc2hpaG91XCA7CivpgZPlhbfmlrkgPCBkb3VndWthdGFcIDsKK+W+jOeoiyA8IG5vY2hpaG9kb1wgOwor5pem6YKj6Iq4IDwgZGFuJyduYWdlaVwgOwor5om26aSK5paZIDwgZnV5b3VyeW91XCA7CivlvJPooZMgPCBreXV1anV0c3VcIDsKK+S4jeS/oeW/gyA8IGZ1c2hpbmppblwgOwor6YGg6L+RIDwgb2NoaWtvY2hpXCA7CivlipvoqqwgPCByaWtpc2V0c3VcIDsKK+W5s+WuieacnSA8IGhlaWFuY2hvdVwgOwor5YaF6YeO5bitIDwgbmFpeWFzZWtpXCA7Civlm6DmnpzlvosgPCBpbmdhcml0c3VcIDsKK+iLseWSjOi+nuWFuCA8IGVpd2FqaXRlblwgOwor6Lu95ryU5YqHIDwga2VpZW5nZWtpXCA7CivkuojlgpnkvJrorbAgPCB5b2Jpa2FpZ2lcIDsKK+adv+mHkeW3pSA8IGJhbmtpbmtvdVwgOwor5a6a5L6h6KGoIDwgdGVpa2FoeW91XCA7Civnr6Tlv5flrrYgPCB0b2t1c2hpa2FcIDsKK+m0rOiJsiA8IHVndWlzdWlyb1wgOwor6Kmm6aiT5aC0IDwgc2hpa2Vuam91XCA7Civml4XooYzogIUgPCByeW9rb3VzaGFcIDsKK+atr+m9pueCjiA8IHNoaWdpbicnZW5cIDsKK+ibuOWdiuS4uyA8IHRha29ib3V6dVwgOwor5Y2a54mpIDwgaGFrdWJ1dHN1XCA7Civlj4LmlL/lrpggPCBzYW5zZWlrYW5cIDsKK+i7jeS6i+eahCA8IGd1bmppdGVraVwgOwor5Y+k6Yqt5a2mIDwga29zZW5nYWt1XCA7Civou43lrpjmhrIgPCBndW5rYW5rZW5cIDsKK+mWouaVsOirliA8IGthbnN1dXJvblwgOwor5rK755mC6LK7IDwgY2hpcnlvdWhpXCA7Civmr5LnrYYgPCBkb2t1aGl0c3VcIDsKK+WRkeWPoyA8IG5vbWlndWNoaVwgOwor5ZG95LmeIDwgaW5vY2hpZ29pXCA7Civmnb/ph5HlsYsgPCBiYW5raW4nJ3lhXCA7Civmk43ou4rloLQgPCBzb3VzaGFqb3VcIDsKK+aKleiejeizhyA8IHRvdXl1dXNoaVwgOwor56S+5Lqk5oCnIDwgc2hha291c2VpXCA7Civmk6zniIblvL4gPCBnaWJha3VkYW5cIDsKK+erueicu+ibiSA8IHRha2V0b25ib1wgOwor5oGL5b+DIDwga29pZ29rb3JvXCA7CivotoXlhZrmtL4gPCBjaG91dG91aGFcIDsKK+WVj+mhjOWkliA8IG1vbmRhaWdhaVwgOwor5LiA6Iis55qEIDwgaXBwYW50ZWtpXCA7Civos4fmnKzph5EgPCBzaGlob25raW5cIDsKK+aCquWPoyA8IHdhcnVndWNoaVwgOwor55S35a2Q55SoIDwgZGFuc2hpeW91XCA7CivliJ3pm6ogPCBoYXRzdXl1a2lcIDsKK+ekvuS8muWFmiA8IHNoYWthaXRvdVwgOwor5Y6t5LiW55qEIDwgZW5zZWl0ZWtpXCA7CivlvLHohbAgPCB5b3dhZ29zaGlcIDsKK+iok+e3tOeUnyA8IGt1bnJlbnNlaVwgOwor6YCG6Z6YIDwgZ3lha3V6YXlhXCA7CivotIjlkYjmnKwgPCB6b3V0ZWlib25cIDsKK+S6jOmZouWItuW6piA8IG5paW5zZWlkb1wgOwor5bm06aCDIDwgdG9zaGlnb3JvXCA7Civlrrbml4/ms5UgPCBrYXpva3Vob3VcIDsKK+S6uuawl+agqiA8IG5pbmtpa2FidVwgOwor6Kqt5b6M5oSfIDwgZG9rdWdva2FuXCA7CivljZjntLDog54gPCB0YW5zYWlib3VcIDsKK+mztOemvemhniA8IG1laWtpbnJ1aVwgOwor5YaF6YOo55qEIDwgbmFpYnV0ZWtpXCA7Civnt7TlhbXloLQgPCByZW5wZWlqb3VcIDsKK+Wkj+acn+aZgumWkyA8IGtha2lqaWthblwgOwor5aSn5YmN5o+QIDwgZGFpemVudGVpXCA7CivnnYDpmbggPCBjaGFrdXJpa3VcIDsKK+WGjeW+k+WFhCA8IHNhaWp1dWtlaVwgOwor5ZGK5YilIDwga29rdWJldHN1XCA7Civlj6/li5XmqYsgPCBrYWRvdWt5b3VcIDsKK+awtOayuSA8IG1penVhYnVyYVwgOwor5rC35rC0IDwga29vcmltaXp1XCA7Civpn7Pmpb3loIIgPCBvbmdha3Vkb3VcIDsKK+iNkumaoOWFgyA8IHNheWFpbmdlblwgOwor5LqV5oi45bGL5b2iIDwgaWRveWFrYXRhXCA7CivmtJfnpLzlkI0gPCBzZW5yZWltZWlcIDsKK+ePvualreWToSA8IGdlbmd5b3VpblwgOwor5LiA5bel5aSrIDwgaGl0b2t1ZnV1XCA7CivliY3ovL8gPCBzYWtpZ29zaGlcIDsKK+WPt+WupCA8IGdvdXNoaXRzdVwgOwor6Iad5bCP5YOnIDwgaGl6YWtvem91XCA7Civoh6rlt7Hnn5vnm74gPCBqaWtvbXVqdW5cIDsKK+S9nOipnuWutiA8IHNha3VzaGlrYVwgOwor5L2c54K655qEIDwgc2FrdWl0ZWtpXCA7CivlsI/lroflrpkgPCBzaG91dWNodXVcIDsKK+miqOawtOWusyA8IGZ1dXN1aWdhaVwgOwor5aSn6LuK6LyqIDwgZGFpc2hhcmluXCA7CivmlLnlrprniYggPCBrYWl0ZWloYW5cIDsKK+ekvuS8muS6uiA8IHNoYWthaWppblwgOwor5oKq5b2x6Z+/IDwgYWt1ZWlreW91XCA7Civopb/pg6jliocgPCBzZWlidWdla2lcIDsKK+mbkeiyqOWVhiA8IHpha2thc2hvdVwgOwor5Yqj562J5oSfIDwgcmV0dG91a2FuXCA7Civlh7rpoZggPCBzaHV0c3VnYW5cIDsKK+mAj+aYjuaApyA8IHRvdW1laXNlaVwgOwor5Ye66aGMIDwgc2h1dHN1ZGFpXCA7Civoi6XlpKvlqaYgPCB3YWthZnV1ZnVcIDsKK+mxl+mbsiA8IHVyb2tvZ3Vtb1wgOwor6bSD6IiMIDwgZ2VraXpldHN1XCA7CivpmbDpmb3pgZMgPCBvbm15b3Vkb3VcIDsKK+S8keaGqeaJgCA8IGt5dXVrZWlqb1wgOwor6YWN57Wm5omAIDwgaGFpa3l1dWpvXCA7Civoo4XouqvlhbcgPCBzb3VzaGluZ3VcIDsKK+eEoeasoOW4rSA8IG11a2Vzc2VraVwgOwor6Ieq5Yi25b+DIDwgamlzZWlzaGluXCA7CivpgJrph4ggPCB0c3V1c2hha3VcIDsKK+eggueykiA8IHN1bmF0c3VidVwgOwor5Ymv5L2c55SoIDwgZnVrdXNheW91XCA7Civlho3pgbjmjJkgPCBzYWlzZW5reW9cIDsKK+maoOWMv+iAhSA8IGludG9rdXNoYVwgOwor5ZCM5Lq656iuIDwgZG91amluc2h1XCA7CivpgYvpgIHmpa0gPCB1bnNvdWd5b3VcIDsKK+WGheWLmeecgSA8IG5haW11c2hvdVwgOwor54Kt6YW45rC0IDwgdGFuc2Fuc3VpXCA7CivooZvnlJ/nmoQgPCBlaXNlaXRla2lcIDsKK+WGjeeZuuihjCA8IHNhaWhha2tvdVwgOwor6YG66KiA54q2IDwgeXVpZ29uam91XCA7CivpgJ/pgZQgPCBzb2t1dGF0c3VcIDsKK+eCueecvOawtCA8IHRlbmdhbnN1aVwgOwor6Lu95ZCI6YeRIDwga2VpZ291a2luXCA7CivkuIDnmbrlsYsgPCBpcHBhdHN1eWFcIDsKK+WHuumZoyA8IHNodXRzdWppblwgOwor5YWo6KO95ZOBIDwgemVuc2VpaGluXCA7CivpgJrpgZQgPCB0c3V1dGF0c3VcIDsKK+W/nOWPrOiAhSA8IG91c2hvdXNoYVwgOwor5Yid6YecIDwgaGF0c3VnYW1hXCA7Civlj6TljbDntJkgPCBmdXJ1aW5zaGlcIDsKK+izh+acrOiyoSA8IHNoaWhvbnphaVwgOwor5Zue6aGn55qEIDwga2Fpa290ZWtpXCA7CivkuozopqrnrYkgPCBuaXNoaW50b3VcIDsKK+S6pOaIpuaoqSA8IGtvdXNlbmtlblwgOwor5bqD5aCx6KqMIDwga291aG91c2hpXCA7CivkvovlubTnpa0gPCByZWluZW5zYWlcIDsKK+S6iOmYsuiWrCA8IHlvYm91eWFrdVwgOwor5ZKM5aOw5a2mIDwgd2FzZWlnYWt1XCA7Civlh7rploAgPCBzaHV0c3Vtb25cIDsKK+mfs+alveWPsiA8IG9uZ2FrdXNoaVwgOwor6JCO57iu6IWOIDwgaXNodWt1amluXCA7Civnm5fogbTlmaggPCB0b3VjaG91a2lcIDsKK+S6iOe0hOmHkSA8IHlveWFrdWtpblwgOwor6Yej5aCAIDwgdHN1cmlib3JpXCA7CivmmKXloLTmiYAgPCBoYXJ1YmFzaG9cIDsKK+enn+W6uOiqvyA8IHNveW91Y2hvdVwgOwor6L+R6aCDIDwgY2hpa2Fnb3JvXCA7Civps7bogbcgPCB0b2Jpc2hva3VcIDsKK+WOn+WtkOirliA8IGdlbnNoaXJvblwgOwor54Sh5qmf54mpIDwgbXVraWJ1dHN1XCA7CivmsbrorbDmoYggPCBrZXRzdWdpYW5cIDsKK+WJteS9nOWutiA8IHNvdXNha3VrYVwgOwor54ib54af5pyfIDwgcmFuanVrdWtpXCA7CivkuK3plpPmtL4gPCBjaHV1a2FuaGFcIDsKK+efs+ethiA8IHNla2loaXRzdVwgOwor6YeM56iL5qiZIDwgcml0ZWloeW91XCA7Civos4fmnKzoq5YgPCBzaGlob25yb25cIDsKK+S7iuanmOatjCA8IGltYXlvdXV0YVwgOwor55+z56u5IDwgc2VraWNoaWt1XCA7CivlvJXntrEgPCBoaWtpZHp1bmFcIDsKK+S8mua0peWhlyA8IGFpZHp1bnVyaVwgOwor5Li45Z2K5Li7IDwgbWFydWJvdXp1XCA7Civnp7vmpI3mgKcgPCBpc2hva3VzZWlcIDsKK+efreetkiA8IHRhbmR6dXRzdVwgOwor5Yil5aSp5ZywIDwgYmV0dGVuY2hpXCA7Civmr5LniakgPCBkb2t1YnV0c3VcIDsKK+WNs+aXpSA8IHNva3VqaXRzdVwgOwor6Ziy56m65aOVIDwgYm91a3V1Z291XCA7CivpgIPpgZMgPCBuaWdlbWljaGlcIDsKK+mBi+mAgeaWmSA8IHVuc291cnlvdVwgOwor56We5Li7IDwga2FuJydudXNoaVwgOwor5bm96ZyK6Ii5IDwgeXV1cmVpc2VuXCA7CivkvK/lgpnnt5ogPCBoYWt1YmlzZW5cIDsKK+iDg+iFuOeXhSA8IGljaG91YnlvdVwgOwor5Y2x5qmf566h55CGIDwga2lraWthbnJpXCA7CivlkIjljbAgPCBhaWppcnVzaGlcIDsKK+WfuuekjuS9k+a4qSA8IGtpc290YWlvblwgOwor5Y2S5qWtIDwgc290c3VneW91XCA7CivlkYrnpLrmnb8gPCBrb2t1amliYW5cIDsKK+Wwj+S9nOS6uiA8IGtvc2FrdW5pblwgOwor6Zui6ZaT562WIDwgcmlrYW5zYWt1XCA7Civli53nnYAgPCBzaG91Y2hha3VcIDsKK+W8sSA8IG5heW9uYXlvXCA7CivoubIgPCB0c3VrdWJhaVwgOwor5aeRIDwgc2h1dXRvbWVcIDsKK+WhiiA8IGthdGFtYXJpXCA7CivloKQgPCB0c3V0c3VtaVwgOwor6byTIDwgdHN1ZHp1bWlcIDsKK+a6kCA8IG1pbmFtb3RvXCA7Civpto8gPCBuaXdhdG9yaVwgOwor5Y+iIDwga3VzYW11cmFcIDsKK+WNsCA8IHNoaXJ1c2hpXCA7CivprYIgPCB0YW1hc2hpaVwgOwor6IW4IDwgaGFyYXdhdGFcIDsKK+adryA8IHNha2F6dWtpXCA7Civpm7cgPCBrYW1pbmFyaVwgOwor6ZuBIDwga2FyaWdhbmVcIDsKK+aagSA8IGFrYXRzdWtpXCA7CivntKsgPCBtdXJhc2FraVwgOwor5o6MIDwgdGVub2hpcmFcIDsKK+aKkSA8IHNvbW9zb21vXCA7Civmh5AgPCBmdXRva29yb1wgOwor5ZCQ5Ye6IDwgdG9zaHV0c3VcIDsKK+mHkeWeiyA8IGthbmFnYXRhXCA7Civnn7PnpZ4gPCBzaGFrdWppblwgOwor5ZCN5Yi5IDwgbWVpc2F0c3VcIDsKK+W8vuedgCA8IGRhbmNoYWt1XCA7CivokL3nsY0gPCByYWt1c2VraVwgOwor55+i562SIDwgeWFkenV0c3VcIDsKK+W/g+acjSA8IHNoaW5wdWt1XCA7CivpgIbou6IgPCBneWFrdXRlblwgOwor5ZCI5YqbIDwgZ291cnlva3VcIDsKK+iWmeWIgCA8IG5hZ2luYXRhXCA7CivlkIzliJcgPCBkb3VyZXRzdVwgOwor5rCR5pWw6KiYIDwgbWluc3V1a2lcIDsKK+mJhOegsuW6pyA8IHRlcHBvdXphXCA7Civnm4LomK3nm4bkvJogPCB1cmFib24nJ2VcIDsKK+aWh+WMluS6uiA8IGJ1bmthamluXCA7CivmnKjlt6XmiYAgPCBtb2trb3Vqb1wgOwor5Yy756eR5q2v56eRIDwgaWthc2hpa2FcIDsKK+ebtOmdoiA8IGNob2t1bWVuXCA7CivkuIDoiKzms5UgPCBpcHBhbmhvdVwgOwor5b6p5qWtIDwgZnVrdWd5b3VcIDsKK+iWhOWPoyA8IHVzdWt1Y2hpXCA7CivlirTli5nogIUgPCByb3VtdXNoYVwgOwor6I2J6aOfIDwgc291c2hva3VcIDsKK+aWh+W6q+acrCA8IGJ1bmtvYm9uXCA7CivluLjpl4cgPCB0b2tveWFtaVwgOwor5ZCI5YaKIDwgZ291c2F0c3VcIDsKK+WJpeiQvSA8IGhha3VyYWt1XCA7CivojLbpq6ogPCBjaGFwYXRzdVwgOwor6YCf6KqtIDwgc29rdWRva3VcIDsKK+WOs+WvhiA8IGdlbm1pdHN1XCA7Civku6PnkIbkurogPCBkYWlyaW5pblwgOwor5rW35rC0552AIDwga2Fpc3VpZ2lcIDsKK+WHuumDtyA8IHNodWtreW91XCA7CivljprlupUgPCBhdHN1em9rb1wgOwor6Ieq5bex5rWBIDwgamlrb3J5dXVcIDsKK+W8leeqkyA8IGhpa2ltYWRvXCA7CivkuIHlr6foqp4gPCB0ZWluZWlnb1wgOwor5YiG6L2EIDwgYnVua2F0c3VcIDsKK+mfs+alveS8miA8IG9uZ2Fra2FpXCA7CivlkIzog57mhJsgPCBkb3Vob3VhaVwgOwor6YCa6KqtIDwgdHN1dWRva3VcIDsKK+avm+WUkOS6uiA8IGtldG91amluXCA7CivmsJHkuovkuIogPCBtaW5qaWpvdVwgOwor5reh5b2p55S7IDwgdGFuc2FpZ2FcIDsKK+acn+W+heWApCA8IGtpdGFpY2hpXCA7CivpgZzoibIgPCBzb25zaG9rdVwgOwor5YWo6KO45L2TIDwgemVucmF0YWlcIDsKK+eri+S9k+a0viA8IHJpdHRhaWhhXCA7Civov73ot6EgPCB0c3Vpc2VraVwgOwor5Yuy54i1IDwga3Vuc2hha3VcIDsKK+itt+mAgeiIuSA8IGdvc291c2VuXCA7CivpgJroqLMgPCB0c3V1eWFrdVwgOwor6YeO6Juu5Lq6IDwgeWFiYW5qaW5cIDsKK+WPquWPqiA8IHRhZGF0YWRhXCA7Civlj4vlnqMgPCB0b21vZ2FraVwgOwor5aWz5oCn6LuNIDwgam9zZWlndW5cIDsKK+WQjOi2o+WRsyA8IGRvdXNodW1pXCA7CivljYrmnIggPCBoYW50c3VraVwgOwor5Y+v5YuV5oCnIDwga2Fkb3VzZWlcIDsKK+S4jemkiueUnyA8IGZ1eW91am91XCA7Civpo73lkozngrkgPCBob3V3YXRlblwgOwor55yf6L+5IDwgc2hpbnNla2lcIDsKK+aXouW+gOeXhyA8IGtpb3VzaG91XCA7CivlkInkvosgPCBraXRzdXJlaVwgOwor6L+R6YmEIDwga2ludGV0c3VcIDsKK+iMtumjryA8IGNoYW1lc2hpXCA7CivliKXoqIAgPCBiZXRzdWdlblwgOwor5q6W55SjIDwgc2hva3VzYW5cIDsKK+mHkeWPoyA8IGtpbmd1Y2hpXCA7CivpgKDooYAgPCB6b3VrZXRzdVwgOwor6bOl57GgIDwgdG9yaWthZ29cIDsKK+WLg+eZuiA8IGJvcHBhdHN1XCA7Civlu7rnr4kgPCBrZW5jaGlrdVwgOwor5LiA6Ie054K5IDwgaXRjaGl0ZW5cIDsKK+WHuui6qyA8IHNodXNzaGluXCA7CivnrYboqJjogIUgPCBoaWtraXNoYVwgOwor5Y2B5pyIIDwganV1Z2F0c3VcIDsKK+mAgemiqOapnyA8IHNvdWZ1dWtpXCA7Civlj6PljaAgPCBrdWNoaXVyYVwgOwor5aer5b6h5a2QIDwgaGltZW1pa29cIDsKK+aJi+mFjeabuCA8IHRlaGFpc2hvXCA7CivmraPnq4sgPCBzZWlyaXRzdVwgOwor6a+o6aqoIDwgZ2Vpa290c3VcIDsKK+axguW/gyA8IGt5dXVzaGluXCA7Civnm7jpjpogPCBhaWR6dWNoaVwgOwor55y86K2YIDwgZ2Fuc2hpa2lcIDsKK+iEs+ePiueRmiA8IG5vdXNhbmdvXCA7CivkuIrlsaTlnJ8gPCBqb3Vzb3Vkb1wgOwor5b+D5ouNIDwgc2hpbnBha3VcIDsKK+S6iOe0hOiqniA8IHlveWFrdWdvXCA7CivlvbzmraQgPCBrYXJla29yZVwgOwor5rK55qe96Ii5IDwgeXVzb3VzZW5cIDsKK+atr+ejqCA8IGhhbWlnYWtpXCA7CivluJ3pl5UgPCB0ZWlrZXRzdVwgOwor5LiA5a+46KaLIDwgY2hvdHRvbWlcIDsKK+S6iOmYsue3miA8IHlvYm91c2VuXCA7Civli5jlrprml6UgPCBrYW5qb3ViaVwgOwor5YaF6bCQIDwgdWNoaXdhbmlcIDsKK+WPpOWJtSA8IGZ1cnVraXp1XCA7CivptKjnjJ8gPCBrYW1vcnlvdVwgOwor5rKh5Y20IDwgYm9ra3lha3VcIDsKK+WGheW4kemHkSA8IG5haWRva2luXCA7Civph5HlipsgPCBraW5yeW9rdVwgOwor5Y+z5YG0IDwgbWlnaWdhd2FcIDsKK+WHuui2hSA8IHNodXRjaG91XCA7Civlj6PliY0gPCBrdWNoaW1hZVwgOwor5Lyd6YCB6LevIDwgZGVuc291cm9cIDsKK+WIu+iWhCA8IGtva3VoYWt1XCA7CivpioDntLDlt6UgPCBnaW56YWlrdVwgOwor5Lq655u46KaLIDwgbmluc291bWlcIDsKK+awtOaApyA8IG1penVzaG91XCA7CivluoPoopYgPCBoaXJvc29kZVwgOwor6YeN5YqbIDwganV1cnlva3VcIDsKK+miqOWIuueUuyA8IGZ1dXNoaWdhXCA7Civnm7jpiYQgPCBzb3V0ZXRzdVwgOwor6I236LuKIDwgbmlndXJ1bWFcIDsKK+WLleeJqSA8IGRvdWJ1dHN1XCA7CivljYjppJDkvJogPCBnb3NhbmthaVwgOwor55+l55WlIDwgY2hpcnlha3VcIDsKK+ebrumMsiA8IG1va3Vyb2t1XCA7CivnhKHmrKDli6QgPCBtdWtla2tpblwgOwor5q+U6YeN6KiIIDwgaGlqdXVrZWlcIDsKK+WIh+irliA8IHNldHN1cm9uXCA7CivpgYvpgIHlupcgPCB1bnNvdXRlblwgOwor5Ye26LOKIDwga3lvdXpva3VcIDsKK+aTjeS9nOebpCA8IHNvdXNhYmFuXCA7CivnnYDoo4UgPCBjaGFrdXNvdVwgOwor5Zyo5bqr5ZOBIDwgemFpa29oaW5cIDsKK+mBheiEiCA8IGNoaW15YWt1XCA7CivmsLTlvJUgPCBtaXp1aGlraVwgOwor5qmI6aqoIDwgdG91a290c3VcIDsKK+ausua7hSA8IHNlbm1ldHN1XCA7CivlhqDpm6ogPCBrYW5zZXRzdVwgOwor5YyX5qW1IDwgaG9ra3lva3VcIDsKK+W5u+ihkyA8IGdlbmp1dHN1XCA7CivmsLfluoogPCBoeW91c2hvdVwgOwor5YqD562WIDwga2FrdXNha3VcIDsKK+awkeS4u+WMliA8IG1pbnNodWthXCA7CivljbPluK0gPCBzb2t1c2VraVwgOwor5bu25rue6YeRIDwgZW50YWlraW5cIDsKK+WPiOWPiCA8IG1hdGFtYXRhXCA7CivmsLTlupUgPCBtaW5hc29rb1wgOwor5ZSQ56C06aKoIDwga2FyYWhhZnVcIDsKK+ebtOmFjSA8IGNob2t1aGFpXCA7CivliIfoqIAgPCBzZXRzdWdlblwgOwor6Ieq5YWs5rCRIDwgamlrb3VtaW5cIDsKK+aApeWRiiA8IGt5dXVrb2t1XCA7Civph4jlhbggPCBzaGFrdXRlblwgOwor6LOi5aSr5Lq6IDwga2VucHVqaW5cIDsKK+avq+acqyA8IGdvdW1hdHN1XCA7CivljYrmipggPCBoYW5zZXRzdVwgOwor5bmz6KKWIDwgaGlyYXNvZGVcIDsKK+S6jOW6puaJi+mWkyA8IG5pZG9kZW1hXCA7Civpr5vpo68gPCB0YWltZXNoaVwgOwor6YGL6Lui6ICFIDwgdW50ZW5zaGFcIDsKK+WIh+imgSA8IHNldHN1eW91XCA7Civlt7vpm7IgPCBtYWtpZ3Vtb1wgOwor5LiN5qC85aW9IDwgYnVrYWtrb3VcIDsKK+WCrOa3q+WJpCA8IHNhaWluemFpXCA7CivmrovniakgPCB6YW5idXRzdVwgOwor5qCE6aSK55+tIDwgZWl5b3V0YW5cIDsKK+aFi+OAhSA8IHdhemF3YXphXCA7CivliqvnlaUgPCBnb3VyeWFrdVwgOwor5Y+N5YilIDwgdGFuYmV0c3VcIDsKK+ato+ebtCA8IHNob3VqaWtpXCA7CivljLvlrabnlYwgPCBpZ2FrdWthaVwgOwor5Yq5546HIDwga291cml0c3VcIDsKK+eEoeW4uOaEnyA8IG11am91a2FuXCA7Civlj6rkuosgPCB0YWRhZ290b1wgOwor56Kp5a2mIDwgc2VraWdha3VcIDsKK+iDjOagvOWlvSA8IHNla2Fra291XCA7CivlsbHmn7vlrZAgPCBzYW56YXNoaVwgOwor5Yy75a2m55SfIDwgaWdha3VzZWlcIDsKK+awtOW1qSA8IG1penVrYXNhXCA7Civplovmpa3ljLsgPCBrYWlneW91aVwgOwor55u06YCBIDwgY2hva3Vzb3VcIDsKK+WIhuijgiA8IGJ1bnJldHN1XCA7Civlvbnmn4QgPCB5YWt1Z2FyYVwgOwor5YeM6L6xIDwgcnlvdWpva3VcIDsKK+W+i+aWhyA8IHJpdHN1YnVuXCA7CivnqIvjgIUgPCBob2RvaG9kb1wgOwor5Y+O5YWlIDwgc2h1dW55dXVcIDsKK+S+v+iho+maiiA8IGJlbicnaXRhaVwgOwor6Iul6baPIDwgd2FrYWRvcmlcIDsKK+ayiOWLhyA8IGNoaW4nJ3l1dVwgOwor5Y+M5YWtIDwgc3Vnb3Jva3VcIDsKK+W7g+e1tiA8IGhhaXpldHN1XCA7CivlubnkuovkvJogPCBrYW5qaWthaVwgOwor6YGT57O4IDwgbWljaGlpdG9cIDsKK+WkmuWOn+WtkCA8IHRhZ2Vuc2hpXCA7CivlibXnq4sgPCBzb3VyaXRzdVwgOwor5Y2U5b+DIDwga3lvdXNoaW5cIDsKK+WMl+acnSA8IGhva3VjaG91XCA7Civli4fng4ggPCB5dXVyZXRzdVwgOwor5oCn5YilIDwgc2VpYmV0c3VcIDsKK+WLg+eEtiA8IGJvdHN1emVuXCA7CivljYHlrZflvaIgPCBqdXVqaWtlaVwgOwor5Y2Y5byPIDwgdGFuc2hpa2lcIDsKK+WklumHjuaJiyA8IGdhaXlhc2h1XCA7CivlgaXog4PpjKAgPCBrZW4nJ2lqb3VcIDsKK+mWouilv+mmrCA8IGthbnNhaWJhXCA7CivmjIfnpLroqZ4gPCBzaGlqaXNoaVwgOwor5Y+C5YiXIDwgc2FucmV0c3VcIDsKK+aYjuaXpeiRiSA8IGFzaGl0YWJhXCA7CivmsJflv4MgPCBraWdva29yb1wgOwor55+t6Led6ZuiIDwgdGFua3lvcmlcIDsKK+S4gOi7kuWxiyA8IGlra2VuJyd5YVwgOwor5bed6aKoIDwga2F3YWthemVcIDsKK+iKuOWCmee3miA8IGdlaWJpc2VuXCA7CivliIDooZMgPCB0b3VqdXRzdVwgOwor5Yyh5pWRIDwga3lvdWt5dXVcIDsKK+atu+eJqSA8IHNoaWJ1dHN1XCA7CivliLPoiJ8gPCBrdXJpYnVuZVwgOwor6Zmj5aSq6byTIDwgamluZGFpa29cIDsKK+ecn+WGrOaXpSA8IG1hZnV5dWJpXCA7Civlm5vlraPloLEgPCBzaGlraWhvdVwgOwor5YiG6J2VIDwgYnVuc2hva3VcIDsKK+eZvemzpSA8IGhha3VjaG91XCA7CivlhbXpo58gPCBoZWlzaG9rdVwgOwor5q6/5qeYIDwgdG9ub3NhbWFcIDsKK+WPguWFpSA8IHNhbicnbnl1dVwgOwor5Y+X5LuYIDwgdWtldHN1a2VcIDsKK+WNmOW4ryA8IGhpdG9lb2JpXCA7Civnn6/mv4AgPCBreW91Z2VraVwgOwor5oCq5YKRIDwga2Fpa2V0c3VcIDsKK+WIuuiCoSA8IHNhc3VtYXRhXCA7CivmsbLlj5YgPCBrdW1pdG9yaVwgOwor56CC5rWcIDwgc3VuYWhhbWFcIDsKK+e5geiPr+ihlyA8IGhhbmthZ2FpXCA7CivoqJPnt7TmiYAgPCBrdW5yZW5qb1wgOwor6YGU562GIDwgdGFwcGl0c3VcIDsKK+a1t+awtOa4qSA8IGthaXN1aW9uXCA7CivnrYvpm7vlm7MgPCBraW5kZW56dVwgOwor5Ymy56S8IDwga2F0c3VyZWlcIDsKK+avjuaciCA8IG1haXRzdWtpXCA7Civms4zlsL/lub4gPCBoaW55b3VraVwgOwor5Y2H5b2iIDwgbWFzdWdhdGFcIDsKK+S4jeWuieW/gyA8IGZ1YW5zaGluXCA7Civlt53pnKcgPCBrYXdhZ2lyaVwgOwor5YqH55qEIDwgZ2VraXRla2lcIDsKK+ioquWVj+edgCA8IGhvdW1vbmdpXCA7CivliIbomJYgPCBidW5rZXRzdVwgOwor5Lya56S+5ZOhIDwga2Fpc2hhaW5cIDsKK+WPlOS4liA8IHNodWt1c2VpXCA7CivlhYDpt7kgPCBoYWdldGFrYVwgOwor5rOV546L5qipIDwgaG91b3VrZW5cIDsKK+WLmOaxuiA8IGthbmtldHN1XCA7CivkuI3lsI7kvZMgPCBmdWRvdXRhaVwgOwor5Y2Y6Kmm5ZCIIDwgdGFuc2hpYWlcIDsKK+WNs+WmmSA8IHNva3VteW91XCA7CivliaPnqoEgPCBrZW50c3VrdVwgOwor5b+F5a6aIDwgaGl0c3Vqb3VcIDsKK+WJjee0hCA8IHplbicneWFrdVwgOwor5YqH55ebIDwgZ2VraXRzdXVcIDsKK+WNiOW5tCA8IHVtYWRvc2hpXCA7CivlubPokL0gPCBoaXJhb2NoaVwgOwor56Gs5byPIDwga291c2hpa2lcIDsKK+WGmeeUn+eUuyA8IHNoYXNlaWdhXCA7CivluLjorZggPCBqb3VzaGlraVwgOwor566h55CG5Lq6IDwga2FucmluaW5cIDsKK+W/g+WtpiA8IHNoaW5nYWt1XCA7Civmr47ml6UgPCBtYWluaWNoaVwgOwor55m96aqoIDwgaGFra290c3VcIDsKK+S4gOWutuiogCA8IGlra2Fnb3RvXCA7CivljYfluK0gPCBtYXN1c2VraVwgOwor5ZCM5pyf55SfIDwgZG91a2lzZWlcIDsKK+aoqumiqCA8IHlva29rYXplXCA7CivkuIHlrpropo8gPCB0ZWlqb3VnaVwgOwor6bCQ6LazIDwgd2FuaWFzaGlcIDsKK+mBheethiA8IGNoaWhpdHN1XCA7Civmr43mlrkgPCBoYWhha2F0YVwgOwor5a6I5YKZ6ZqKIDwgc2h1Yml0YWlcIDsKK+awt+WjgSA8IGh5b3VoZWtpXCA7Civnnp7nnYAgPCBtYW5jaGFrdVwgOwor6L6b6L6bIDwga2FyYWdhcmFcIDsKK+ebuOitmCA8IHNvdXNoaWtpXCA7Civoj5znrrggPCBzYWliYXNoaVwgOwor5L215ZCI572qIDwgaGVpZ296YWlcIDsKK+mAsee1piA8IHNodXVreXV1XCA7CivlhavpnaIgPCBoYWNoaW1lblwgOwor5Y2a5a2mIDwgaGFrdWdha3VcIDsKK+auluawkSA8IHNob2t1bWluXCA7CivpgLLntJogPCBzaGlua3l1dVwgOwor5rCX54Sh57K+IDwga2lidXNob3VcIDsKK+S4ieaemuebriA8IHNhbm1haW1lXCA7CivliY3nr4AgPCB6ZW5zZXRzdVwgOwor5b6X5b+DIDwgdG9rdXNoaW5cIDsKK+aJi+mFjeW4qyA8IHRlaGFpc2hpXCA7CivnnYDoiLkgPCBjaGFrdXNlblwgOwor5byV5r2uIDwgaGlraXNoaW9cIDsKK+W4uOiorSA8IGpvdXNldHN1XCA7CivnhKHoh6roppogPCBtdWppa2FrdVwgOwor5b6X5b6XIDwgdG9rdXRva3VcIDsKK+iQvea9riA8IHJha3VjaG91XCA7CivlvLHmr5IgPCBqYWt1ZG9rdVwgOwor5Y6l5Ya3IDwga2V0c3VyZWlcIDsKK+iUteWFgyA8IGt1cmFtb3RvXCA7Civlu7rniakgPCB0YXRlbW9ub1wgOwor5q275ruFIDwgc2hpbWV0c3VcIDsKK+WLh+axuiA8IHl1dWtldHN1XCA7CivlhYjpq5ggPCBzYWtpZGFrYVwgOwor55m66aeFIDwgaGF0c3Vla2lcIDsKK+eBq+S6i+azpSA8IGthamlkb3JvXCA7CivpgIDoibIgPCB0YWlzaG9rdVwgOwor5rCX5a6kIDwga2lzaGl0c3VcIDsKK+S6uuW3peiqniA8IGppbmtvdWdvXCA7Civml6LlvoDmrbQgPCBraW91cmVraVwgOwor5YaG6YyQIDwgbWFydWdpcmlcIDsKK+S4gOiIrOaApyA8IGlwcGFuc2VpXCA7Civli53mpb0gPCBzaG91cmFrdVwgOwor5bm05pyI5pelIDwgbmVuZ2FwcGlcIDsKK+WFjummrCA8IHVzYWdpdW1hXCA7CivlvZPmnIggPCB0b3VnZXRzdVwgOwor5Y2D5bO2IDwgY2hpc2hpbWFcIDsKK+aoqumbsiA8IHlva29ndW1vXCA7CivlpInmiJDlmaggPCBoZW5zZWlraVwgOwor5b6Q5b6QIDwgc29yb3Nvcm9cIDsKK+WFg+mrmCA8IG1vdG9kYWthXCA7CivmnKrkv6HogIUgPCBtaXNoaW5qYVwgOwor5bir6KqsIDwgc2hpc2V0c3VcIDsKK+WMheaRgiA8IGhvdXNldHN1XCA7Civmrr/mlrkgPCB0b25vZ2F0YVwgOwor5rCR5a6/IDwgbWluc2h1a3VcIDsKK+S4jeahiOWGhSA8IGZ1YW4nJ25haVwgOwor6Ieq5qOE6YWSIDwgeWFrZXpha2VcIDsKK+WhkeW8vuaApyA8IHNvZGFuc2VpXCA7CivmrablmajlgIkgPCBidWtpZ3VyYVwgOwor6YCj57WQIDwgcmVua2V0c3VcIDsKK+iBtOmfs+WZqCA8IGNob3VvbmtpXCA7Civnm7ToqIAgPCBjaG9rdWdlblwgOwor5bmz5Luu5ZCNIDwgaGlyYWdhbmFcIDsKK+W9juaciCA8IHdhbmdldHN1XCA7CivmhJ/nn6XlmaggPCBrYW5jaGlraVwgOwor5beh6YyrIDwganVuc2hha3VcIDsKK+W9juabsiA8IHdhbmt5b2t1XCA7Civnm7Top5IgPCBjaG9ra2FrdVwgOwor5buJ55u0IDwgcmVuY2hva3VcIDsKK+ebtOimliA8IGNob2t1c2hpXCA7CivmrbvmtLsgPCBzaGlrYXRzdVwgOwor5b+D5aKDIDwgc2hpbmt5b3VcIDsKK+W5s+iEiCA8IGhlaW15YWt1XCA7CivlvZPml6UgPCB0b3VqaXRzdVwgOwor5YmN5Y2K5pyfIDwgemVucGFua2lcIDsKK+W+qeWtpiA8IGZ1a3VnYWt1XCA7CivlhaXplqMgPCBueXV1a2FrdVwgOwor56m66KuW5a62IDwga3V1cm9ua2FcIDsKK+aBteavlOWvv+mhlCA8IGViaXN1Z2FvXCA7CivmqKrplbcgPCB5b2tvbmFnYVwgOwor5q275rKhIDwgc2hpYm90c3VcIDsKK+WMheaLrCA8IGhvdWthdHN1XCA7Civlv6DlkYogPCBjaHV1a29rdVwgOwor5be76Lu4IDwgbWFraWppa3VcIDsKK+i+sumWkeacnyA8IG5vdWthbmtpXCA7Civnmb7pm7cgPCBoeWFrdXJhaVwgOwor5LiN6LOb5oiQIDwgZnVzYW5zZWlcIDsKK+eZvumboyA8IGh5YWt1bmFuXCA7CivppIrpto/lrrYgPCB5b3VrZWlrYVwgOwor5Ye66Iq9IDwgc2h1dHN1Z2FcIDsKK+iPheesoCA8IHN1Z2VnYXNhXCA7CivliZvnm7QgPCBnb3VjaG9rdVwgOwor5Y2B5LqM5pSvIDwganV1bmlzaGlcIDsKK+WKoOa5vyA8IGthc2hpdHN1XCA7Civmp4vmiJDmr5QgPCBrb3VzZWloaVwgOwor5ZCR5pel6JG1IDwgaGltYXdhcmlcIDsKK+eZuumbuyA8IGhhdHN1ZGVuXCA7CivliIbohIggPCBidW5teWFrdVwgOwor55uj6KizIDwga2FuJyd5YWt1XCA7CivpgYXnnYAgPCBjaGljaGFrdVwgOwor5qmf5qWt5a62IDwga2lneW91a2FcIDsKK+WFmumWpSA8IHRvdWJhdHN1XCA7CivliKXntI0gPCBiZXRzdW5vdVwgOwor5YiR572wIDwga2VpYmF0c3VcIDsKK+WGhemBlCA8IG5haXRhdHN1XCA7CivmsLTmu7jkvJ0gPCBzdWlrb2RlblwgOwor5b6h5ayi5qeYIDwgb2pvdXNhbWFcIDsKK+W/g+WaoiA8IHNoaW4nJ25vdVwgOwor5b255b6XIDwgeWFrdXRva3VcIDsKK+iHqOW6iuWMuyA8IHJpbnNob3VpXCA7CivpgKPnq4sgPCByZW5yaXRzdVwgOwor6YO35oSBIDwga3lvdXNodXVcIDsKK+W9t+W9vyA8IGhvdWZ1dHN1XCA7Civluq3nn7MgPCBuaXdhaXNoaVwgOwor5YiH6ICFIDwga2lyZW1vbm9cIDsKK+mBheeZuiA8IGNoaWhhdHN1XCA7CivmoITppIrmupAgPCBlaXlvdWdlblwgOwor5aSa5bm06I2JIDwgdGFuZW5zb3VcIDsKK+iNt+WOhOS7iyA8IG5peWFra2FpXCA7CivlhYPpnpggPCBtb3Rvc2F5YVwgOwor5Yqx56OB5pCNIDwgcmVpamlzb25cIDsKK+WuieWFqOeToyA8IGFuemVuYmVuXCA7Civph43phbjntKAgPCBqdXVzYW5zb1wgOwor5b+Y5Y20IDwgYm91a3lha3VcIDsKK+attOattCA8IHJla2lyZWtpXCA7CivkuozloYHmiYsgPCBuaXJ1aXNodVwgOwor56K65L+hIDwga2FrdXNoaW5cIDsKK+efs+afsSA8IHNla2ljaHV1XCA7CivmnKjlt6XlhbcgPCBtb2trb3VndVwgOwor5qyg55WqIDwga2V0c3ViYW5cIDsKK+W9sOW+syA8IHNob3V0b2t1XCA7CivngrnnnLzlmaggPCB0ZW5nYW5raVwgOwor5oSa5Zuz5oSa5ZuzIDwgZ3V6dWd1enVcIDsKK+mxiOiFuSA8IHRhcmFmdWt1XCA7CivlibLniakgPCB3YXJlbW9ub1wgOwor5bmV6IejIDwgYmFrdXNoaW5cIDsKK+WFpemLjyA8IG55dXVreW91XCA7CivojqvlpKflsI8gPCBtZXJpeWFzdVwgOwor6KO96Yu85omAIDwgc2Vpa291am9cIDsKK+i7vem0qCA8IGthcnVnYW1vXCA7CivpmqDolL3lrZAgPCBpbnBlaXNoaVwgOwor5YuY5a6a5aC0IDwga2Fuam91YmFcIDsKK+e+veWbo+aJhyA8IGhhdWNoaXdhXCA7Civlv7Xku48gPCBuZW5idXRzdVwgOwor56C05oiS5YOnIDwgaGFrYWlzb3VcIDsKK+eArOaIuOeJqSA8IHNldG9tb25vXCA7Civoj4rnn7MgPCBraWt1aXNoaVwgOwor5Ya36KGAIDwgcmVpa2V0c3VcIDsKK+W5s+e1uSA8IGhpcmFnaW51XCA7CivphZLlkZEgPCBzYWtlbm9taVwgOwor6JGJ5qGcIDwgaGF6YWt1cmFcIDsKK+edgOexsyA8IGNoYWt1YmVpXCA7CivlpKfoi7Hmlq0gPCBkYWllaWRhblwgOwor5by35pW1IDwga3lvdXRla2lcIDsKK+axguWEnyA8IGt5dXVzaG91XCA7CivpgJrnp7AgPCB0c3V1c2hvdVwgOwor5b+g5YOVIDwgY2h1dWJva3VcIDsKK+awtOWKmyA8IHN1aXJ5b2t1XCA7CivmrovmnIggPCB6YW5nZXRzdVwgOwor5YuF5pu4IDwgY2hva3VzaG9cIDsKK+WFiOitsOaoqSA8IHNlbmdpa2VuXCA7CivlhbHpgJogPCBreW91dHN1dVwgOwor5Y+N5oqX5pyfIDwgaGFua291a2lcIDsKK+acrOS8muitsCA8IGhvbmthaWdpXCA7CivliY3nlaUgPCB6ZW5yeWFrdVwgOwor5q6K5pu0IDwga290b3NhcmFcIDsKK+W8puaciCA8IGdlbmdldHN1XCA7Civoi7HnsbPkurogPCBlaWJlaWppblwgOwor5L2O6aCG5L2NIDwgdGVpanVuJydpXCA7Civnm67olqwgPCBtZWd1c3VyaVwgOwor5LiN6ICB5rOJIDwgZnVyb3VzZW5cIDsKK+WNlOWVhiA8IGt5b3VzaG91XCA7Civnmb7pjKwgPCBoeWFrdXJlblwgOwor5YWs6YGUIDwga291dGF0c3VcIDsKK+W8seaVtSA8IGpha3V0ZWtpXCA7CivpgIbnrpcgPCBneWFrdXNhblwgOwor6buZ44CFIDwgbW9rdW1va3VcIDsKK+WFq+mBlCA8IGhhdHRhdHN1XCA7CivlhavpgZMgPCBoYWNoaWRvdVwgOwor5YyX5bGxIDwga2l0YXlhbWFcIDsKK+WJv+a7hSA8IHNvdW1ldHN1XCA7CivlkI3lrpvkurogPCBuYWF0ZW5pblwgOwor5ZKM5rCX6Je56Je5IDwgd2FraWFpYWlcIDsKK+iHqueUseipqSA8IGppeXV1c2hpXCA7Civlu4PniakgPCBoYWlidXRzdVwgOwor5YWs6L+wIDwga291anV0c3VcIDsKK+W/oOS/oSA8IGNodXVzaGluXCA7Civnmq7os6ogPCBoaXNoaXRzdVwgOwor55+z5paHIDwgaXNoaWJ1bWlcIDsKK+W9ouW8jyA8IGtlaXNoaWtpXCA7Civlh4vokL0gPCBjaG91cmFrdVwgOwor5oSP5b+X55qEIDwgaXNoaXRla2lcIDsKK+WNuOWApCA8IG9yb3NoaW5lXCA7CivmiKbpl5jlk6EgPCBzZW50b3VpblwgOwor5Y6f55S75YOPIDwgZ2VuZ2F6b3VcIDsKK+efreaXpSA8IHRhbmppdHN1XCA7CivmsLTlhYggPCBtaXp1c2FraVwgOwor5be36KqsIDwga291c2V0c3VcIDsKK+Wkp+iFv+mDqCA8IGRhaXRhaWJ1XCA7CivlhbHou5sgPCBreW91eWFrdVwgOwor6buS44CFIDwga3Vyb2d1cm9cIDsKK+WJpeeEvCA8IHN1a2l5YWtpXCA7Civmu4vos4DnnIwgPCBzaGlnYWtlblwgOwor6YeN5rC057SgIDwganV1c3Vpc29cIDsKK+mAouedgCA8IGhvdWNoYWt1XCA7Civlu4PnhrEgPCBoYWluZXRzdVwgOwor5Lq66YCg5rmWIDwgamluem91a29cIDsKK+W9ueWuhSA8IHlha3V0YWt1XCA7CivliLDnnYAgPCB0b3VjaGFrdVwgOwor6KuL6LKg5birIDwgdWtlb2lzaGlcIDsKK+iMueibuCA8IHl1ZGVkYWtvXCA7CivmsLTmupblmaggPCBzdWlqdW5raVwgOwor5ryr55S75pysIDwgbWFuZ2Fob25cIDsKK+S4jeecn+mdouebriA8IGZ1bWFqaW1lXCA7Civlho3oqqwgPCBzYWlzZXRzdVwgOwor6YCj55m6IDwgcmVucGF0c3VcIDsKK+W+qeWUsSA8IGZ1a3VzaG91XCA7Civnn6Xml6UgPCBjaGluaWNoaVwgOwor5b605Y+OIDwgY2hvdXNodXVcIDsKK+WLheaSsCA8IGNob2t1c2VuXCA7CivkupLmj5vmgKcgPCBnb2thbnNlaVwgOwor5YiG56+AIDwgYnVuc2V0c3VcIDsKK+mFjeWIlyA8IGhhaXJldHN1XCA7CivnqK7nqK7nm7ggPCBzaHVqdXNvdVwgOwor5Yem572wIDwgc2hvYmF0c3VcIDsKK+S6iOmYsuazlSA8IHlvYm91aG91XCA7Civlronlhajnga8gPCBhbnplbnRvdVwgOwor5q205pydIDwgcmVraWNob3VcIDsKK+WKh+avkiA8IGdla2lkb2t1XCA7Civov73nqbYgPCB0c3Vpa3l1dVwgOwor5q2z5pyrIDwgc2FpbWF0c3VcIDsKK+aoqui7uCA8IHlva29qaWt1XCA7CivliIbnrYYgPCBidW5waXRzdVwgOwor6Lyv6YyyIDwgc2h1dXJva3VcIDsKK+WNiuWPoyA8IGhhbmt1Y2hpXCA7CivpgYvpgIHkurogPCB1bnNvdW5pblwgOwor5Y2B5ZOyIDwganV0dGV0c3VcIDsKK+eZvumBuCA8IGh5YWt1c2VuXCA7CivkuIrpppblsL4gPCBqb3VzaHViaVwgOwor5LuP6IiO5YipIDwgYnVzc2hhcmlcIDsKK+iIh+WkquiAhSA8IHlvdGFtb25vXCA7CivmuoDlpKnkuIsgPCBtYW50ZW5rYVwgOwor5b6X5omL5Yud5omLIDwgZXRla2F0dGVcIDsKK+WFiOmHkSA8IHNha2lnYW5lXCA7Civou73po58gPCBrZWlzaG9rdVwgOwor5YiG56uLIDwgYnVucml0c3VcIDsKK+S+oeagvOW3riA8IGtha2FrdXNhXCA7CivlhoXoqLMgPCB1Y2hpd2FrZVwgOwor6L+956aPIDwgdHN1aWZ1a3VcIDsKK+eEoeiKseaenCA8IGljaGlqaWt1XCA7CivmrLLmt7EgPCB5b2t1YnVrYVwgOwor5LiN5Lq65oOFIDwgZnVuaW5qb3VcIDsKK+Wcn+W7uuWxiyA8IGRva2VuJyd5YVwgOwor5q2q5puyIDwgd2Fpa3lva3VcIDsKK+WFpei2hSA8IG55dXVjaG91XCA7CivlibLms6ggPCB3YXJpY2h1dVwgOwor5rCR5YqbIDwgbWlucnlva3VcIDsKK+mBruaWreapnyA8IHNoYWRhbmtpXCA7CivkubHmna3mra8gPCByYW5ndWliYVwgOwor6J2L57Sw5belIDwgcm91emFpa3VcIDsKK+WMl+WjgSA8IGhva3VoZWtpXCA7Civns5zniJvmgKcgPCBiaXJhbnNlaVwgOwor6LK05YWs5a2QIDwga2lrb3VzaGlcIDsKK+W7g+a7hSA8IGhhaW1ldHN1XCA7CivmsLTkuIogPCBtaW5ha2FtaVwgOwor5Yid55uGIDwgaGF0c3Vib25cIDsKK+W7ieS+oeeJiCA8IHJlbmthYmFuXCA7CivmraPmnK0gPCBzaG91ZnVkYVwgOwor5YWl6LOeIDwgbnl1dXNob3VcIDsKK+WFiOmBlCA8IHNlbmRhdHN1XCA7CivmraLmnKggPCB0b21hcmlnaVwgOwor552A55y8IDwgY2hha3VnYW5cIDsKK+WIneeZuiA8IHNob2hhdHN1XCA7Civljp/lrZDngokgPCBnZW5zaGlyb1wgOwor6Lui5o+b54KJIDwgdGVua2Fucm9cIDsKK+m7juaYjuacnyA8IHJlaW1laWtpXCA7Civou5/pqqggPCBuYW5rb3RzdVwgOwor6I+W6JKy5rmvIDwgc2hvdWJ1eXVcIDsKK+eEoemnhOmqqCA8IG11ZGFib25lXCA7CivpoZ7kvLzlk4EgPCBydWlqaWhpblwgOwor6aOb6KGM6ZqKIDwgaGlrb3V0YWlcIDsKK+W9k+WxgCA8IHRvdWt5b2t1XCA7CivmrrrlrrMgPCBzYXRzdWdhaVwgOwor6YeR6bOz6IqxIDwga2lucG91Z2VcIDsKK+m7kumbsuavjSA8IGt1cm91bm1vXCA7CivokL3mjowgPCByYWt1c2hvdVwgOwor55u45omL5pa5IDwgYWl0ZWdhdGFcIDsKK+S4jeWujOWFqCA8IGZ1a2FuemVuXCA7CivlvLflvLEgPCBreW91amFrdVwgOwor5b+D5LitIDwgc2hpbmNodXVcIDsKK+elluWbveaEmyA8IHNva29rdWFpXCA7CivlubPnmr8gPCBoaXJhemFyYVwgOwor5Yuf6ZuG6LK7IDwgYm9zaHV1aGlcIDsKK+WIneeUoyA8IGhhdHN1emFuXCA7CivluLjnt5EgPCBqb3VyeW9rdVwgOwor55Sf55Sj6LK7IDwgc2Vpc2FuaGlcIDsKK+e1seWQiOWMliA8IHRvdWdvdWthXCA7Civml4XooYzlrrYgPCByeW9rb3VrYVwgOwor56S+5aSW56eYIDwgc2hhZ2FpaGlcIDsKK+WNl+S7jyA8IG5hbmZ1dHN1XCA7CivlvpPkvqHnqI4gPCBqdXVrYXplaVwgOwor5Y2B5YWrIDwganV1aGFjaGlcIDsKK+S9v+W+kuabuCA8IHNoaXRvc2hvXCA7Civpganmpa0gPCB0ZWtpZ3lvdVwgOwor6ayx6ayxIDwgdXRzdXV0c3VcIDsKK+i/veeZvSA8IHRzdWloYWt1XCA7CivlvpPljZIgPCBqdXVzb3RzdVwgOwor5b6h5YagIDwgb2thbm11cmlcIDsKK+W+i+WRgiA8IHJpdHN1cnlvXCA7CivovqPohZUgPCByYXRzdXdhblwgOwor552A55SoIDwgY2hha3V5b3VcIDsKK+mAhueUqCA8IGd5YWt1eW91XCA7CivpgIbnlKMgPCBneWFrdXphblwgOwor5YWt6KaqIDwgcm9rdXNoaW5cIDsKK+W+jOWPoyA8IGF0b2t1Y2hpXCA7Civlr53ljJbnsqcgPCBuZWdlc2hvdVwgOwor5Ym15LiW5pyfIDwgc291c2Vpa2lcIDsKK+mHkeebrumvmyA8IGtpbm1lZGFpXCA7CivljZjkuIAgPCB0YW4nJ2l0c3VcIDsKK+W4r+e3kSA8IHRhaXJ5b2t1XCA7Civnn7PlvJMgPCBpc2hpeXVtaVwgOwor6YG45puyIDwgc2Vua3lva3VcIDsKK+mAmueJkiA8IHRzdXVjaG91XCA7CivkuIrkuIvnt5ogPCBqb3VnZXNlblwgOwor55CG5LqL5Zu9IDwgcmlqaWtva3VcIDsKK+awtOa6luWEgCA8IHN1aWp1bmdpXCA7Civlho3kv53pmbogPCBzYWlob2tlblwgOwor55yM56uLIDwga2Vucml0c3VcIDsKK+WIpeeKtiA8IGJldHN1am91XCA7CivkuIvppqzlhYggPCBnZWJhc2FraVwgOwor5YeN57WQIDwgdG91a2V0c3VcIDsKK+WvhOS7mOihjOeCuiA8IGtpZnVrb3VpXCA7Civms4nosqjntJkgPCBzZW5rYXNoaVwgOwor5b6h5Luk5ayiIDwgZ29yZWlqb3VcIDsKK+W3neidiSA8IGthd2FzZW1pXCA7Civpg7flm70gPCBreW91a29rdVwgOwor6L+955SzIDwgdHN1aXNoaW5cIDsKK+mbu+awl+ihlyA8IGRlbmtpZ2FpXCA7CivnoILlsbEgPCBzdW5heWFtYVwgOwor5b6L5YuVIDwgcml0c3Vkb3VcIDsKK+ato+aOpSA8IHNlaXNldHN1XCA7Civov6vnnJ8gPCBoYWt1c2hpblwgOwor6LuN5pS/6YOoIDwgZ3Vuc2VpYnVcIDsKK+W+oemhjOebriA8IG9kYWltb2t1XCA7CivnnIHnrYYgPCBzZWloaXRzdVwgOwor5byf5b6hIDwgb3RvdXRvZ29cIDsKK+WHhOe1tiA8IHNlaXpldHN1XCA7CivlvozliJcgPCBrb3VyZXRzdVwgOwor54Sh5L+d6Ki8IDwgbXVob3Nob3VcIDsKK+WPr+WIhuaApyA8IGthYnVuc2VpXCA7CivkupzpiZvpiYQgPCBhZW50ZXRzdVwgOwor5YuV5a6J5a6aIDwgZG91YW50ZWlcIDsKK+W5tOeOhyA8IG5lbnJpdHN1XCA7CivliJHkuovkuIogPCBrZWlqaWpvdVwgOwor5aWz5oCn55SoIDwgam9zZWl5b3VcIDsKK+WGl+iIjCA8IGpvdXpldHN1XCA7CivmqJnoqLsgPCBoeW91Y2h1dVwgOwor55yf55m9IDwgbWFzc2hpcm9cIDsKK+WFuOiWrCA8IHRlbicneWFrdVwgOwor5Lm+54el54KJIDwga2Fuc291cm9cIDsKK+W8seWwkSA8IGpha3VzaG91XCA7CivogrLlhZDms5UgPCBpa3VqaWhvdVwgOwor55u0562UIDwgY2hva3V0b3VcIDsKK+efs+WxsSA8IGlzaGl5YW1hXCA7CivojJzoibIgPCBha2FuZWlyb1wgOwor55m66KiAIDwgaGF0c3VnZW5cIDsKK+aEm+mzpeWutiA8IGFpY2hvdWthXCA7CivmnKzoiJ7lj7AgPCBob25idXRhaVwgOwor5YCL5Lq65oCnIDwga29qaW5zZWlcIDsKK+W8k+W9oiA8IHl1bWluYXJpXCA7Civlia/mnKggPCBmdWt1Ym9rdVwgOwor5L6d5a2Y55eHIDwgaXpvbnNob3VcIDsKK+ecn+eXhyA8IHNoaW5zaG91XCA7CivliqPmg4UgPCByZXRzdWpvdVwgOwor5oKq5oCn5bqmIDwgYWt1c2VpZG9cIDsKK+WGpee9sCA8IG1laWJhdHN1XCA7CivnpZ7jgIUgPCBrYW1pZ2FtaVwgOwor5Yqj5oKqIDwgcmV0c3Vha3VcIDsKK+muruihgCA8IHNlbmtldHN1XCA7Civnvo7nlLflrZAgPCBiaW5hbnNoaVwgOwor5b255YmyIDwgeWFrdXdhcmlcIDsKK+efs+WupCA8IGlzaGltdXJvXCA7Civoi6XooYYgPCB3YWthc2h1dVwgOwor5q+N5ZCbIDwgaGFoYWdpbWlcIDsKK+mbu+azouazlSA8IGRlbnBhaG91XCA7Civou43kuovkuIogPCBndW5qaWpvdVwgOwor5bmz54axIDwgaGVpbmV0c3VcIDsKK+ebtOeojiA8IGNob2t1emVpXCA7Civov5HnnYAgPCBraW5jaGFrdVwgOwor6YGT5p2/IDwgbWljaGlpdGFcIDsKK+eDj+eKgOinkiA8IHVzYWlrYWt1XCA7Civnn6nlsLogPCBrYW5lamFrdVwgOwor5YGP5b6u5YiGIDwgaGVuYmlidW5cIDsKK+e0oOWvkuiypyA8IHN1a2FucGluXCA7CivosZrlsI/lsYsgPCBidXRhZ295YVwgOwor5bu25rue56iOIDwgZW50YWl6ZWlcIDsKK+mBuOaKnCA8IHNlbmJhdHN1XCA7CivlhqXnjovmmJ8gPCBtZWlvdXNlaVwgOwor5YaG55uk54q2IDwgZW5iYW5qb3VcIDsKK+eZveifuyA8IHNoaXJvYXJpXCA7CivlvLflpaogPCBnb3VkYXRzdVwgOwor6JS15pu45a62IDwgem91c2hva2FcIDsKK+mMsumfs+apnyA8IHJva3VvbmtpXCA7CivpgY7oiKzmnaUgPCBrYWhhbnJhaVwgOwor6ZGa5a2U5qmfIDwgc2Fua291a2lcIDsKK+S4gOiIrOS6uiA8IGlwcGFuamluXCA7CivliLrmrrogPCBzaGlzYXRzdVwgOwor5Yeh55m+IDwgYm9ucHlha3VcIDsKK+W+i+S7pCA8IHJpdHN1cmVpXCA7Civnm7jmiYvlvbkgPCBhaXRleWFrdVwgOwor5YaF6IW/IDwgdWNoaW1vbW9cIDsKK+atqeWQiOe1piA8IGJ1YWlreXV1XCA7CivkupXmiLjntrEgPCBpZG9kenVuYVwgOwor5pei55+l5pWwIDwga2ljaGlzdXVcIDsKK+i7jemWpSA8IGd1bmJhdHN1XCA7Civlt6Xli5nlupcgPCBrb3VtdXRlblwgOwor5bmj54mpIDwgaGVpbW90c3VcIDsKK+mAuOalvSA8IGl0c3VyYWt1XCA7CivpgJ/msbogPCBzb2trZXRzdVwgOwor5YyX5YG0IDwgaG9rdXNva3VcIDsKK+S4gOacsemKgCA8IGlzc2h1Z2luXCA7CivlvavliLsgPCBjaG91a29rdVwgOwor6YCG5r2uIDwgc2FrYXNoaW9cIDsKK+egsuWIlyA8IGhvdXJldHN1XCA7CivoiKrnqbrmqZ8gPCBrb3VrdXVraVwgOwor6buS57m75a2QIDwga3Vyb2p1c3VcIDsKK+eZu+iomOaJgCA8IHRvdWtpc2hvXCA7CivmraPlvI8gPCBzZWlzaGlraVwgOwor6YGp5pmC5omTIDwgdGVraWppZGFcIDsKK+WGoOe1tiA8IGthbnpldHN1XCA7Civmrr/ljp8gPCB0b25vYmFyYVwgOwor5Ye454q2IDwgdG90c3Vqb3VcIDsKK+WQiOeQhuaApyA8IGdvdXJpc2VpXCA7CivpgZTmlocgPCB0YXRzdWJ1blwgOwor5b6B5LyQIDwgc2VpYmF0c3VcIDsKK+W5u+a7hSA8IGdlbm1ldHN1XCA7CivlvL7lnKcgPCBkYW4nJ2F0c3VcIDsKK+i7vei7vSA8IGthcnVnYXJ1XCA7CivpmbDpm7vlrZAgPCBpbmRlbnNoaVwgOwor5YWF6KGAIDwganV1a2V0c3VcIDsKK+WGheiBtyA8IG5haXNob2t1XCA7Civliqnli5XoqZ4gPCBqb2RvdXNoaVwgOwor5oWw6JeJ5paZIDwgaXNoYXJ5b3VcIDsKK+i7n+mJhCA8IG5hbnRldHN1XCA7CivooZvnlJ/lhbUgPCBlaXNlaWhlaVwgOwor55+z5aKoIDwgc2VraWJva3VcIDsKK+S9jueJqeS+oSA8IHRlaWJ1a2thXCA7CivlgIvkurrlsZUgPCBrb2ppbnRlblwgOwor5a6f5L2T5YyWIDwgaml0dGFpa2FcIDsKK+WIpOaxuiA8IGhhbmtldHN1XCA7Civnn63lpJwgPCBtaWppa2F5b1wgOwor5by35ZynIDwga3lvdWF0c3VcIDsKK+mCqumtlOiAhSA8IGphbWFtb25vXCA7CivlubPmu5EgPCBoZWlrYXRzdVwgOwor6ayi6ZW3IDwgYmluJyduYWdhXCA7CivnsbPorbDkvJogPCBiZWlnaWthaVwgOwor54Sh5bC96JS1IDwgbXVqaW56b3VcIDsKK+WGhue9kCA8IG1hcnVnYW1hXCA7Civnm7Tnm7QgPCBqaWtpamlraVwgOwor5be757SZIDwgbWFraWdhbWlcIDsKK+WFvOiBtyA8IGtlbnNob2t1XCA7Civou6Lmj5vmnJ8gPCB0ZW5rYW5raVwgOwor5qyg5paHIDwga2V0c3VidW5cIDsKK+S7o+itsOWjqyA8IGRhaWdpc2hpXCA7CivpvLvmv4Hpn7MgPCBiaWRha3VvblwgOwor5Yas56m6IDwgZnV5dXpvcmFcIDsKK+mBheaXpSA8IGNoaWppdHN1XCA7CivliKXmrr8gPCBiZXRzdWRlblwgOwor5Yil5q61IDwgYmV0c3VkYW5cIDsKK+mAhua1qiA8IHNha2FuYW1pXCA7Civnmb3ok64gPCBieWFrdXJlblwgOwor55+z5Z6jIDwgaXNoaWdha2lcIDsKK+mrmOmbu+S9jSA8IGtvdWRlbicnaVwgOwor5oyB5Y+C6YeRIDwgamlzYW5raW5cIDsKK+WUr+eQhuirliA8IHl1aXJpcm9uXCA7Civou7jotrMgPCBqaWt1YXNoaVwgOwor5ZCN5pyb5a62IDwgbWVpYm91a2FcIDsKK+WkmuWFg+irliA8IHRhZ2Vucm9uXCA7Civnm67nmoQgPCBtb2t1dGVraVwgOwor6JCp5bGeIDwgaGFnaXpva3VcIDsKK+iHquajhOezniA8IHlha2VrdXNvXCA7CivmraPnrKblj7cgPCBzZWlmdWdvdVwgOwor54Sh55Sj6ICFIDwgbXVzYW5zaGFcIDsKK+mAn+alrSA8IGhheWF3YXphXCA7CivogrLlhZDmm7ggPCBpa3VqaXNob1wgOwor5biC56uLIDwgc2hpcml0c3VcIDsKK+iLpeiNiSA8IHdha2FrdXNhXCA7CivlrprmnJ/oiLkgPCB0ZWlraXNlblwgOwor552A5rC0IDwgY2hha3VzdWlcIDsKK+aJi+W8geW9kyA8IHRlYmVudG91XCA7Civkub7nh6XmqZ8gPCBrYW5zb3VraVwgOwor5LiJ5pel6ZaTIDwgbWlra2FrYW5cIDsKK+WNgeS6jOWIhiA8IGp1dW5pYnVuXCA7CivnqL3lj6Tlj7AgPCBrZWlrb2RhaVwgOwor6Lui6L2NIDwgdGVudGV0c3VcIDsKK+mwkOeariA8IHdhbmlnYXdhXCA7CivmraLlrr8gPCBzaGlzaHVrdVwgOwor6Iq46KGTIDwgZ2VpanV0c3VcIDsKK+WFiOmgreS8jSA8IHNlbnRvdWdvXCA7CivmraPlrpcgPCBtYXNhbXVuZVwgOwor5qiq6IW5IDwgeW9rb2JhcmFcIDsKK+WGl+ethiA8IGpvdWhpdHN1XCA7CivlhazogbcgPCBrb3VzaG9rdVwgOwor5ZCE44CFIDwgc29yZXpvcmVcIDsKK+WIg+a4oSA8IGhhd2F0YXJpXCA7Civps6nlsL4gPCBtaXpvb2NoaVwgOwor5Ye65p2l6auYIDwgZGVraWRha2FcIDsKK+WHuua8lCA8IHNodXRzdWVuXCA7CivpganlvbkgPCB0ZWtpeWFrdVwgOwor6Lqr6ZW3IDwgc2hpbmNob3VcIDsKK+S4ieS4luebuCA8IHNhbnplc291XCA7CivlipvlraYgPCByaWtpZ2FrdVwgOwor6Imy6YGTIDwgc2hpa2lkb3VcIDsKK+eZvuiKuCA8IGh5YWt1Z2VpXCA7CivkuY7lj6TmraLngrkgPCBva290b3RlblwgOwor5Yui5YqbIDwgc2Vpcnlva3VcIDsKK+iIuemciiA8IGZ1bmFkYW1hXCA7CivpgYvmoLnpiI0gPCB1bmtvbmRvblwgOwor56CC5Y6fIDwgc3VuYWhhcmFcIDsKK+W9juWFpSA8IHdhbicnbnl1dVwgOwor6KGb55Sf5LiKIDwgZWlzZWlqb3VcIDsKK+WItuacrSA8IHNlaXNhdHN1XCA7Civmpb3plbcgPCBnYWt1Y2hvdVwgOwor55u055CDIDwgY2hva2t5dXVcIDsKK+WMu+WtpuWjqyA8IGlnYWt1c2hpXCA7Civoq4vosqDkurogPCB1a2VvaW5pblwgOwor5qW16ZmQIDwga3lva3VnZW5cIDsKK+muq+iGmiA8IHNhbWVoYWRhXCA7Civmlq3pnaLlm7MgPCBkYW5tZW56dVwgOwor55m66ImyIDwgaGFzc2hva3VcIDsKK+iZmuS7rueMvyA8IGtva2V6YXJ1XCA7CivmnKrkvb/nlKggPCBtaXNoaXlvdVwgOwor6Zu75rOi5pifIDwgZGVucGFzZWlcIDsKK+iRrOWIlyA8IHNvdXJldHN1XCA7Civli4XllY8gPCBjaG9rdW1vblwgOwor5by+5YqbIDwgZGFucnlva3VcIDsKK+W8j+WgtCA8IHNoaWtpam91XCA7Civpq5jpq5ggPCB0YWthZGFrYVwgOwor6Z+z6Z+76KuWIDwgb24nJ2lucm9uXCA7CivlibLlvJUgPCB3YXJpYmlraVwgOwor5qmf5qKw5belIDwga2lrYWlrb3VcIDsKK+assuW/gyA8IHlva3VzaGluXCA7Civlho3lsIHpjpYgPCBzYWlmdXVzYVwgOwor5YmU5oqJIDwgdGVra2V0c3VcIDsKK+mYsuazouWgpCA8IGJvdWhhdGVpXCA7CivmrLLlvpcgPCB5b2t1dG9rdVwgOwor6YGL6Lui5omLIDwgdW50ZW5zaHVcIDsKK+muruiCiSA8IHNlbicnbmlrdVwgOwor6YCG5qeYIDwgc2FrYXNhbWFcIDsKK+mAsuaSgyA8IHNoaW5nZWtpXCA7CivkuonopofmiKYgPCBzb3VoYXNlblwgOwor6buS5paH5a2XIDwga3Vyb21vamlcIDsKK+eEoemnhOi2syA8IG11ZGFhc2hpXCA7Civli5XlipsgPCBkb3VyeW9rdVwgOwor5YuF5ZG9IDwgY2hva3VtZWlcIDsKK+edgOeJqeWcsCA8IGtpbW9ub2ppXCA7CivlpJbmsJflnI8gPCBnYWlraWtlblwgOwor5Yeb54OIIDwgcmlucmV0c3VcIDsKK+mWi+S8muaXpSA8IGthaWthaWJpXCA7CivnlLHmnaXmm7ggPCB5dXJhaXNob1wgOwor5q2m5aOrIDwgbW9ub25vZnVcIDsKK+m1neWPo+eYoSA8IGdha291c291XCA7CivmrrrkurogPCBzYXRzdWppblwgOwor5YOt6LaKIDwgc2VuJydldHN1XCA7CivpgKPml6UgPCByZW5qaXRzdVwgOwor5q2j5aSiIDwgbWFzYXl1bWVcIDsKK+S5vueHpeaenCA8IGthbnNvdWthXCA7CivliLfmlbAgPCBzYXRzdXN1dVwgOwor6LuL6L2iIDwgYXRzdXJla2lcIDsKK+WuieWFqOaApyA8IGFuemVuc2VpXCA7CivlhLLok4QgPCBjaG9jaGlrdVwgOwor5a+M5aOr5LqU5rmWIDwgZnVqaWdva29cIDsKK+WGhueqkyA8IG1hcnVtYWRvXCA7Civoi6XogIUgPCB3YWthbW9ub1wgOwor6LuK6L2EIDwgc2hha2F0c3VcIDsKK+aBkOOAhSA8IGtvd2Fnb3dhXCA7CivpgJrmmoEgPCB0c3V1Z3lvdVwgOwor5YmN5omVIDwgbWFlYmFyYWlcIDsKK+eZvuiBniA8IGh5YWt1YnVuXCA7CivmmK/mmK/pnZ7pnZ4gPCB6ZXplaGloaVwgOwor55m66IKyIDwgaGF0c3Vpa3VcIDsKK+mAkOadoSA8IGNoaWt1am91XCA7Civnm4rnm4ogPCBtYXN1bWFzdVwgOwor5qiq57ieIDwgeW9rb2ppbWFcIDsKK+mBlOW8gSA8IHRhdHN1YmVuXCA7CivmoITppIrlo6sgPCBlaXlvdXNoaVwgOwor5Y+w5biD5be+IDwgZGFpYnVraW5cIDsKK+W3o+eqnyA8IHNvdWt1dHN1XCA7Civlt53nrYsgPCBrYXdhc3VqaVwgOwor5qeL5oiQ5ZOhIDwga291c2VpaW5cIDsKK+WFjeiBtyA8IG1lbnNob2t1XCA7CivmqKHnr4TnlJ8gPCBtb2hhbnNlaVwgOwor6aeG5YuV6LyqIDwga3Vkb3VyaW5cIDsKK+WLh+WKmyA8IHl1dXJ5b2t1XCA7Civlt53nq68gPCBrYXdhYmF0YVwgOwor5YuB5Y2SIDwga2Vpc290c3VcIDsKK+adsea0i+WPsiA8IHRveW9mdW1pXCA7CivlhoXnpZ0gPCB1Y2hpaXdhaVwgOwor6I2J54mpIDwga3VzYW1vbm9cIDsKK+Wys+m6kyA8IGdha3Vyb2t1XCA7CivliIbmpbUgPCBidW5reW9rdVwgOwor5qeN6KGTIDwgc291anV0c3VcIDsKK+mAo+aOpSA8IHJlbnNldHN1XCA7CivljZjnsr7luqYgPCB0YW5zZWlkb1wgOwor54Gr5pyo5ZyfIDwga2Ftb2t1ZG9cIDsKK+S7o+itsOWItiA8IGRhaWdpc2VpXCA7CivmnKrlrprnqL8gPCBtaXRlaWtvdVwgOwor5YWl57GNIDwgbnl1dXNla2lcIDsKK+S4luipseeJqSA8IHNld2Ftb25vXCA7Civlia/lr6kgPCBmdWt1c2hpblwgOwor55+l5YqbIDwgY2hpcnlva3VcIDsKK+WJsuWuiSA8IHdhcml5YXN1XCA7Civlh6bmsbogPCBzaG9rZXRzdVwgOwor5bm05pyrIDwgbmVubWF0c3VcIDsKK+W5vuaXpSA8IGlrdW5pY2hpXCA7CivlubTmnIggPCBuZW5nZXRzdVwgOwor5YiH5qCqIDwga2lyaWthYnVcIDsKK+WKueWKmyA8IGtvdXJ5b2t1XCA7CivoprPmiKboqJggPCBrYW5zZW5raVwgOwor5aSp55Oc57KJIDwgdGVua2FmdW5cIDsKK+mquOmqqCA8IGdhaWtvdHN1XCA7CivlvaLmiJDmnJ8gPCBrZWlzZWlraVwgOwor5pS+5pig5qipIDwgaG91ZWlrZW5cIDsKK+W8j+WPsCA8IHNoaWtpZGFpXCA7Civnm6PoppbmiYAgPCBrYW5zaGlqb1wgOwor6aqo6bGXIDwga290c3VyaW5cIDsKK+W+oeacrOWwiiA8IGdvaG9uem9uXCA7CivljZjntJTljJYgPCB0YW5qdW5rYVwgOwor5YCL5Lq65ZCNIDwga29qaW5tZWlcIDsKK+aknOecvOWMuyA8IGtlbmdhbicnaVwgOwor5YaN55m6IDwgc2FpaGF0c3VcIDsKK+atu+WKmyA8IHNoaXJ5b2t1XCA7CivmnKrouI/ls7AgPCBtaXRvdWhvdVwgOwor5Yq05YqbIDwgcm91cnlva3VcIDsKK+aoquetiyA8IHlva29zdWppXCA7Civmlq3mlq3lm7ogPCBkYW5kYW5rb1wgOwor5beM56qfIDwgZ2Fua3V0c3VcIDsKK+WGrOeJqSA8IGZ1eXVtb25vXCA7CivpgIbmlbAgPCBneWFrdXN1dVwgOwor5YWO57ayIDwgdXNhZ2lhbWlcIDsKK+aaluaIv+WZqCA8IGRhbmJvdWtpXCA7Civnmb3ns7ggPCBzaGlyYWl0b1wgOwor5q275YilIDwgc2hpYmV0c3VcIDsKK+WIh+acrSA8IGtpcmlmdWRhXCA7CivmlqHml4vogIUgPCBhc3NlbnNoYVwgOwor5YiH5pybIDwgc2V0c3Vib3VcIDsKK+W5s+aXpSA8IGhlaWppdHN1XCA7Civlt6bnm64gPCBoaWRhcmltZVwgOwor6Lu96JSRIDwga2VpYmV0c3VcIDsKK+S7j+eUn+S8miA8IGJ1c3Nob3VlXCA7CivliaPlrqIgPCBrZW5reWFrdVwgOwor5YaF55m6IDwgbmFpaGF0c3VcIDsKK+imj+agvOWMliA8IGtpa2FrdWthXCA7Civlj7jku6Tpg6ggPCBzaGlyZWlidVwgOwor5oSP5Yyg5qipIDwgaXNob3VrZW5cIDsKK+iKi+iZqyA8IGltb211c2hpXCA7CivmpIvps6UgPCBtdWt1ZG9yaVwgOwor5bmz5pS/IDwgaGlyYW1hc2FcIDsKK+WwiuaVrOiqniA8IHNvbmtlaWdvXCA7Civpqqjpq4QgPCBrb3RzdXp1aVwgOwor5b2i5oWL57SgIDwga2VpdGFpc29cIDsKK+ebrua4rCA8IG1va3Vzb2t1XCA7CivlhYPnt6AgPCBtb3RvamltZVwgOwor5oiR5Yip5oiR5YipIDwgZ2FyaWdhcmlcIDsKK+efs+S6gCA8IGlzaGlnYW1lXCA7CivlhYjntLAgPCBzYWtpYm9zb1wgOwor5YuF5Lu7IDwgY2hva3VuaW5cIDsKK+efm+WFiCA8IGhva29zYWtpXCA7Civnvo7lsJHlpbMgPCBiaXNob3Vqb1wgOwor5bqm5bqmIDwgdGFiaXRhYmlcIDsKK+WGhumBi+WLlSA8IGVuJyd1bmRvdVwgOwor5YuF5LukIDwgY2hva3VyZWlcIDsKK+WFiOe0hCA8IHNlbicneWFrdVwgOwor6LGh54mZ6ImyIDwgem91Z2Vpcm9cIDsKK+iQqeWOnyA8IGhhZ2l3YXJhXCA7CivlhaXnpZ4gPCBueXV1c2hpblwgOwor5q2v5YiXIDwgc2hpcmV0c3VcIDsKK+WIh+aWrSA8IHNldHN1ZGFuXCA7Civlu4Plq6EgPCBoYWljaGFrdVwgOwor5q2q5YqbIDwgd2Fpcnlva3VcIDsKK+W8j+WFuCA8IHNoaWtpdGVuXCA7CivoqLHlj6/mm7ggPCBreW9rYXNob1wgOwor6L+95pKDIDwgdHN1aWdla2lcIDsKK+WVhuitsOWToSA8IHNob3VnaWluXCA7CivlvqHkuIDmlrAgPCBnb2lzc2hpblwgOwor6IqL6JSTIDwgaW1vZHp1cnVcIDsKK+aEieW/q+eKryA8IHl1a2FpaGFuXCA7Civlt7vniakgPCBtYWtpbW9ub1wgOwor5oyH56S65p2/IDwgc2hpamliYW5cIDsKK+ebuOauuiA8IHNvdXNhdHN1XCA7CivlhpfniakgPCBqb3VidXRzdVwgOwor6YmE5bel5omAIDwgdGVra291am9cIDsKK+WJjeWxiCA8IHplbmt1dHN1XCA7CivliLPlvaIgPCBrdXJpa2F0YVwgOwor57WM5Za26ZujIDwga2VpZWluYW5cIDsKK+ato+WJsiA8IHNlaWthdHN1XCA7Civouo3pgLIgPCB5YWt1c2hpblwgOwor5byB5YilIDwgYmVuYmV0c3VcIDsKK+mZsOmZveW4qyA8IG9uJyd5b3VqaVwgOwor5o+b5rCX5omHIDwga2Fua2lzZW5cIDsKK+mdnuWQiOazlSA8IGhpZ291aG91XCA7Civpo5vooYzoiYcgPCBoaWtvdXRlaVwgOwor552A5omLIDwgY2hha3VzaHVcIDsKK+mjm+ihjOiIuSA8IGhpa291c2VuXCA7CivntYzllrbpmaMgPCBrZWllaWppblwgOwor5b6h5p2l5YWJIDwgZ29yYWlrb3VcIDsKK+S4jeaWreiNiSA8IGZ1ZGFuc291XCA7CivojLbmvKwgPCBjaGFkenVrZVwgOwor55WZ6bOlIDwgcnl1dWNob3VcIDsKK+aghOmkiuWJpCA8IGVpeW91emFpXCA7CivoiLnotrMgPCBmdW5hYXNoaVwgOwor6YCj6Y6W5bqXIDwgcmVuc2F0ZW5cIDsKK+WFteeVpSA8IGhlaXJ5YWt1XCA7Civnmb3npaggPCBoYWt1aHlvdVwgOwor5YW15rOV5a62IDwgaGVpaG91a2FcIDsKK+mgu+W6puaVsCA8IGhpbmRvc3V1XCA7Civos4fmnKzlrrYgPCBzaGlob25rYVwgOwor5YGP6aOfIDwgaGVuc2hva3VcIDsKK+acgOWPs+e/vCA8IHNhaXV5b2t1XCA7CivmoITppIrliIYgPCBlaXlvdWJ1blwgOwor5q2M5ZCIIDwgdXRhYXdhc2VcIDsKK+i6kei6hSA8IHRzdXRzdWppXCA7CivmrYzlj6MgPCB1dGFndWNoaVwgOwor6bC55pyoIDwga2F0c3VvZ2lcIDsKK+i/q+aSgyA8IGhha3VnZWtpXCA7Civlj6/lh6bliIYgPCBrYXNob2J1blwgOwor5rGy44CFIDwga3l1dWt5dXVcIDsKK+iSmeWPpOaWkSA8IG1vdWtvaGFuXCA7CivliJ3mgYsgPCBoYXRzdWtvaVwgOwor5YWI56iLIDwgc2FraWhvZG9cIDsKK+iIueizgyA8IGZ1bmFjaGluXCA7CivojLbmuIsgPCBjaGFzaGlidVwgOwor6YCP5b65IDwgdG91dGV0c3VcIDsKK+eXhei6qyA8IGJ5b3VzaGluXCA7Civlr5LnqL3lj6QgPCBrYW5nZWlrb1wgOwor56ys5LiJ57SAIDwgZGFpc2Fua2lcIDsKK+amguiqrCA8IGdhaXNldHN1XCA7CivluorlupcgPCB0b2tvbWlzZVwgOwor56CC6aKo5ZGCIDwgc3VuYWJ1cm9cIDsKK+mBi+i7ouWjqyA8IHVudGVuc2hpXCA7CivnrKzkuIDnt5ogPCBkYWlpc3NlblwgOwor6Imv6JasIDwgcnlvdXlha3VcIDsKK+asoOWgtCA8IGtldHN1am91XCA7CivliIfmiLsgPCBzZXRzdXJhaVwgOwor5qiZ55+zIDwgaHlvdXNla2lcIDsKK+WBvemHkSA8IG5pc2VnYW5lXCA7Civnm67mqJkgPCBtb2t1aHlvdVwgOwor6YqA6KGM5a62IDwgZ2lua291a2FcIDsKK+WKm+WAhiA8IHJpa2lyeW91XCA7CivpgbjliKUgPCBzZW5iZXRzdVwgOwor5Yi65a6iIDwgc2hpa3lha3VcIDsKK+S4ieS7meWPiSA8IHNhbnNlbnNhXCA7CivpgJDlubQgPCBjaGlrdW5lblwgOwor6a6r55quIDwgc2FtZWdhd2FcIDsKK+W6g+W6gyA8IGhpcm9iaXJvXCA7Civlho3lt6XkuosgPCBzYWlrb3VqaVwgOwor5qiq55S6IDwgeW9rb2Nob3VcIDsKK+ijj+aXpeacrCA8IHVyYW5paG9uXCA7Civooqvlgq3ogIUgPCBoaXlvdXNoYVwgOwor6L+R5pelIDwga2luaml0c3VcIDsKK+W6g+W5hSA8IGhpcm9oYWJhXCA7CivlipvkvZwgPCByaWtpc2FrdVwgOwor5qSc6ZayIDwga2VuJydldHN1XCA7CivnnqzliLsgPCBzaHVua29rdVwgOwor55m6552AIDwgaGF0Y2hha3VcIDsKK+alteirliA8IGt5b2t1cm9uXCA7CivnnYDlvL4gPCBjaGFrdWRhblwgOwor6Lu95rC054KJIDwga2Vpc3Vpcm9cIDsKK+WFuOeJqSA8IHRlbmJ1dHN1XCA7Civoh6rnlLHmuK8gPCBqaXl1dWtvdVwgOwor5b6h5pu55a2QIDwgb256b3VzaGlcIDsKK+mYsuawtOaJiSA8IGJvdXN1aWhpXCA7Civnmb3nmpkgPCBoYWt1c2VraVwgOwor5bGF5b+D5ZywIDwgaWdva29jaGlcIDsKK+WcsOS4i+mBkyA8IGNoaWthZG91XCA7Civnmb3nmb0gPCBoYWt1aGFrdVwgOwor5YiH5oOFIDwgc2V0c3Vqb3VcIDsKK+WIkeW+iyA8IGtlaXJpdHN1XCA7CivmqJnnmoQgPCBoeW91dGVraVwgOwor5Ye65omAIDwgZGVkb2tvcm9cIDsKK+eEoemnhOiKsSA8IG11ZGFiYW5hXCA7Civov73lvrQgPCB0c3VpY2hvdVwgOwor552A5bqVIDwgY2hha3V0ZWlcIDsKK+WFmueVpSA8IHRvdXJ5YWt1XCA7CivnhKHlrproposgPCBtdXRlaWtlblwgOwor5bqK5bGxIDwgdG9rb3lhbWFcIDsKK+eXm+immiA8IHRzdXVrYWt1XCA7CivlubTlvI8gPCBuZW5zaGlraVwgOwor55m655mMIDwgaGF0c3VnYW5cIDsKK+edgOW4vSA8IGNoYWt1Ym91XCA7CivlhoXmv6AgPCB1Y2hpYm9yaVwgOwor5YWI552AIDwgc2VuY2hha3VcIDsKK+edgOW4ryA8IGNoYWt1dGFpXCA7CivluLjmmKUgPCB0b2tvaGFydVwgOwor576O5a655birIDwgYml5b3VzaGlcIDsKK+eZuueBq+eCuSA8IGhha2thdGVuXCA7CivojbfmjYwgPCBuaXNhYmFraVwgOwor5bmz5bqtIDwgaGlyYW5pd2FcIDsKK+WxsemzqSA8IHlhbWFiYXRvXCA7CivlsbHps6UgPCB5YW1hZG9yaVwgOwor6YCa5a2mIDwgdHN1dWdha3VcIDsKK+eVnOmhniA8IGNoaWt1cnVpXCA7CivlubPlupUgPCBoaXJhem9rb1wgOwor5YWl542EIDwgbnl1dWdva3VcIDsKK+WFrOeItSA8IGtvdXNoYWt1XCA7CivoibLoibYgPCBpcm90c3V5YVwgOwor5bmz5bmVIDwgaGlyYW1ha3VcIDsKK+ePvuS7o+WMliA8IGdlbmRhaWthXCA7CivlhYjnmbogPCBzZW5wYXRzdVwgOwor56aP5LqV55yMIDwgZnVrdWlrZW5cIDsKK+eZveeTnCA8IHNoaXJvdXJpXCA7CivkuI3mlazomZQgPCBmdWtlaWtlblwgOwor6L+R5o6lIDwga2luc2V0c3VcIDsKK+S4geWtkOayuSA8IGNob3VqaXl1XCA7Civou6LogbcgPCB0ZW5zaG9rdVwgOwor6YCP5a+fIDwgdG91c2F0c3VcIDsKK+WKh+S9nCA8IGdla2lzYWt1XCA7CivosqHli5nlrpggPCB6YWltdWthblwgOwor5paZ55CG5bGLIDwgcnlvdXJpeWFcIDsKK+i7uOe0oiA8IGppa3VzYWt1XCA7CivluK3mlpkgPCBzZWtpcnlvdVwgOwor5qyg5Y+3IDwga2V0c3Vnb3VcIDsKK+WBnOi7iuWgtCA8IHRlaXNoYWJhXCA7CivmhJ/lhYnluqYgPCBrYW5rb3Vkb1wgOwor54Sh6IO96ICFIDwgbXVub3VzaGFcIDsKK+eZvueNoyA8IGh5YWt1anV1XCA7Civlg5roiLkgPCB0b21vYnVuZVwgOwor55yf5b+DIDwgbWFnb2tvcm9cIDsKK+WKh+S4rSA8IGdla2ljaHV1XCA7CivouYTpiYQgPCB0ZWl0ZXRzdVwgOwor5Lqk5Y+J54K5IDwga291c2F0ZW5cIDsKK+awt+ays+acnyA8IGh5b3VnYWtpXCA7CivpgIDlsYggPCB0YWlrdXRzdVwgOwor5L2O6Zu75L2NIDwgdGVpZGVuJydpXCA7Civlh7rkuJbprZogPCBzaHVzc2V1b1wgOwor6YGL6Lui5Y+wIDwgdW50ZW5kYWlcIDsKK+WJjeWTsiA8IHplbnRldHN1XCA7Civlh7rlu6wgPCBzaHV0c3Vyb1wgOwor6YGp5L2cIDwgdGVraXNha3VcIDsKK+mHjuW/g+WutiA8IHlhc2hpbmthXCA7CivlhoXms5UgPCB1Y2hpbm9yaVwgOwor5Ye65bqmIDwgc2h1dHN1ZG9cIDsKK+WKg+S4gCA8IGtha3VpdHN1XCA7Civoh6rnlLHmqKkgPCBqaXl1dWtlblwgOwor6Lu4566xIDwgamlrdWJha29cIDsKK+mYsuawtOW4gyA8IGJvdXN1aWZ1XCA7Civlh7rluK0gPCBzaHVzc2VraVwgOwor5YaN6Ieo5rS+IDwgc2FpcmluaGFcIDsKK+WIpeWjsiA8IGJldHN1YmFpXCA7CivluJ3ml6UgPCB0ZWlqaXRzdVwgOwor5qeL56+JIDwga291Y2hpa3VcIDsKK+ebruaSgyA8IG1va3VnZWtpXCA7Civou43ogbcgPCBndW5zaG9rdVwgOwor5ZCN5aC06Z2iIDwgbWVpYmFtZW5cIDsKK+ethuiomOS9kyA8IGhpa2tpdGFpXCA7CivlvKbmpb3lmaggPCBnZW5nYWtraVwgOwor5rue5Zyo6LK7IDwgdGFpemFpaGlcIDsKK+imj+WumuWApCA8IGtpdGVpY2hpXCA7CivkuIDkvZPmhJ8gPCBpdHRhaWthblwgOwor5Yas5pyNIDwgZnV5dWZ1a3VcIDsKK+iMtuadkyA8IGNoYXNoYWt1XCA7Civprq7ng4ggPCBzZW5yZXRzdVwgOwor6LWk56CC57OWIDwgYWthemF0b3VcIDsKK+eJm+Wwj+WxiyA8IHVzaGlnb3lhXCA7Civlu4nkvqHlk4EgPCByZW5rYWhpblwgOwor5rCR6ZyA5ZOBIDwgbWluanVoaW5cIDsKK+ecn+S6uumWkyA8IG1hbmluZ2VuXCA7CivlhpnmpI0gPCBzaGFzaG9rdVwgOwor6YeR55ue6IqxIDwga2luc2Vua2FcIDsKK+WIpeWggiA8IGJldHN1ZG91XCA7CivliIblrr8gPCBidW5zaHVrdVwgOwor5YWo5ruFIDwgemVubWV0c3VcIDsKK+WxsemiqCA8IHlhbWFrYXplXCA7CivojYnmkbogPCBrdXNhenVyaVwgOwor5rGf5oi45pmC5LujIDwgZWRvamlkYWlcIDsKK+WFiOeJqSA8IHNha2ltb25vXCA7Civlj5bmspnmsbAgPCB0b3JpemF0YVwgOwor6YqA6KGM5ZOhIDwgZ2lua291aW5cIDsKK+WxpOS9jeWtpiA8IHNvdWlnYWt1XCA7Civnmb7ngrkgPCBoeWFrdXRlblwgOwor6YCG5aSiIDwgc2FrYXl1bWVcIDsKK+mAj+imluWbsyA8IHRvdXNoaXp1XCA7CivlkI3nvqnkurogPCBtZWlnaW5pblwgOwor57Wm5rK55omAIDwga3l1dXl1am9cIDsKK+WFieeGsSA8IGtvdW5ldHN1XCA7Civoh6rotbDnoLIgPCBqaXNvdWhvdVwgOwor5YmN5YiXIDwgemVucmV0c3VcIDsKK+WvhOeov+iAhSA8IGtpa291c2hhXCA7CivmipLmg4XoqakgPCBqb2pvdXNoaVwgOwor6YCG5aKDIDwgZ3lha2t5b3VcIDsKK+WGhuWIg+WIgCA8IGVuamludG91XCA7CivnmYfnmaogPCBrYW5zaGFrdVwgOwor6LuN57iuIDwgZ3Vuc2h1a3VcIDsKK+murea8gSA8IHNha2VyeW91XCA7CivpgZTkurogPCB0YXRzdWppblwgOwor6Imy57SZIDwgc2hpa2lzaGlcIDsKK+eZvea/gSA8IGhha3VkYWt1XCA7CivlhIHnp4AgPCBzaHVuc2h1dVwgOwor5bmF5bqDIDwgaGFiYWhpcm9cIDsKK+WxsemcpyA8IHlhbWFnaXJpXCA7CivkuInkuIPml6UgPCBtaW5hbm9rYVwgOwor6YC45Ye6IDwgaXNzaHV0c3VcIDsKK+WFpea1tCA8IG55dXV5b2t1XCA7CivmrKDkvr8gPCBrZXRzdWJpblwgOwor6Lu955+zIDwga2FydWlzaGlcIDsKK+WIh+WmuyA8IGtpcml6dW1hXCA7Civlt7vmnKsgPCBrYW5tYXRzdVwgOwor5a+65bCP5bGLIDwgdGVyYWtveWFcIDsKK+i3nemqqCA8IGt5b2tvdHN1XCA7CivnlLDpm7Lpm4AgPCB0YWhpYmFyaVwgOwor5rip5rm/5biDIDwgb25zaGlwcHVcIDsKK+eUn+mmliA8IG5hbWFrdWJpXCA7CivlhaXmtJsgPCBueXV1cmFrdVwgOwor55u05oOFIDwgY2hva3Vqb3VcIDsKK+WHtuWuhSA8IGt5b3V0YWt1XCA7CivlsbHpmpsgPCB5YW1hZ2l3YVwgOwor5bqt5YWIIDwgbml3YXNha2lcIDsKK+W+oemdouebuCA8IGdvbWVuc291XCA7CivlsbHpmbAgPCB5YW1ha2FnZVwgOwor5YmD5YiAIDwga2FtaXNvcmlcIDsKK+aoquazoiA8IHlva29uYW1pXCA7CivnnYDlnLAgPCBjaGFrdWNoaVwgOwor5LiK5pmv5rCXIDwgam91a2Vpa2lcIDsKK+iCsuiLseS8miA8IGlrdWVpa2FpXCA7CivkuZfppqzpmoogPCBqb3ViYXRhaVwgOwor5Zyw5LiL6KGXIDwgY2hpa2FnYWlcIDsKK+ebl+aOmCA8IHRvdWt1dHN1XCA7CivnnIHluoEgPCBzaG91Y2hvdVwgOwor55WZ6YeRIDwgdG9tZWdhbmVcIDsKK+api+aigSA8IGt5b3VyeW91XCA7CivnlLrplbcgPCBjaG91Y2hvdVwgOwor5bGe6aCYIDwgem9rdXJ5b3VcIDsKK+mAmuWRiiA8IHRzdXVrb2t1XCA7CivliY3lgJ8gPCB6ZW5zaGFrdVwgOwor6Z2S5oe45bejIDwgYW9rYWtlc3VcIDsKK+asoOS5jyA8IGtldHN1Ym91XCA7CivmpbXoh7QgPCBreW9rdWNoaVwgOwor5LiN5pWs572qIDwgZnVrZWl6YWlcIDsKK+WOn+WtkOS+oSA8IGdlbnNoaWthXCA7CivliKXlkb0gPCBiZXRzdW1laVwgOwor6Imv562WIDwgcnlvdXNha3VcIDsKK+eUmOmjnyA8IGFtYXNob2t1XCA7CivlhoXmnqAgPCB1Y2hpd2FrdVwgOwor5qmL5p2tIDwgaGFzaGlndWlcIDsKK+e3j+atpue3miA8IHNvdWJ1c2VuXCA7CivkuI3nuLnnt7sgPCBidWtpcnlvdVwgOwor5Yil5Y+3IDwgYmV0c3Vnb3VcIDsKK+WAn+mKrSA8IHNoYWt1c2VuXCA7CivnnInlsLsgPCBtYXl1amlyaVwgOwor55yf5aaCIDwgc2hpbicnbnlvXCA7Civop6Plg4/luqYgPCBrYWl6b3Vkb1wgOwor6Iul5rC0IDwgd2FrYW1penVcIDsKK+aOp+iotOeKtiA8IGtvdXNvam91XCA7CivpgJrlipsgPCB0c3V1cmlraVwgOwor5bqX5YWIIDwgbWlzZXNha2lcIDsKK+eVlOmBkyA8IGF6ZW1pY2hpXCA7Civoi6Xmrr8gPCB3YWthdG9ub1wgOwor5YaN5qSc5p+7IDwgc2Fpa2Vuc2FcIDsKK+mAmuWJhyA8IHRzdXVzb2t1XCA7CivliJ3lj6MgPCBzaG9rdWNoaVwgOwor5qi95p+/IDwgdGFydWdha2lcIDsKK+iHreimmiA8IHNodXVrYWt1XCA7CivopIfluqfmqZ8gPCBmdWt1emFraVwgOwor5om56KmV5a62IDwgaGloeW91a2FcIDsKK+W+oeS4reWFgyA8IG9jaHV1Z2VuXCA7CivkurrnnJ/kvLwgPCBoaXRvbWFuZVwgOwor5qiq5qeYIDwgeW9rb3phbWFcIDsKK+aoquanjSA8IHlva295YXJpXCA7CivlhrflvrkgPCByZWl0ZXRzdVwgOwor55qE5Zyw5L2NIDwgdGVraWNoaWlcIDsKK+edo+S/gyA8IHRva3Vzb2t1XCA7Civmj5vmsJflj6MgPCBrYW5raWtvdVwgOwor6Kq/5p+75ZOhIDwgY2hvdXNhaW5cIDsKK+S4luipseW9uSA8IHNld2F5YWt1XCA7CivliKTliKUgPCBoYW5iZXRzdVwgOwor5bi45a6iIDwgam91a3lha3VcIDsKK+W4s+WwuyA8IGNob3VqaXJpXCA7Civmgqrnn6XmgbUgPCB3YXJ1ZGppZVwgOwor6IuX5rC0IDwgbmF3YW1penVcIDsKK+efreacn+mWkyA8IHRhbmtpa2FuXCA7CivlvqHkuLvkurogPCBnb3NodWppblwgOwor5bGx6Ym+IDwgeWFtYWJva29cIDsKK+mrhOiZqyA8IHp1aW11c2hpXCA7Civnmobmp5ggPCBtaW5hc2FtYVwgOwor5Yil5YaMIDwgYmVzc2F0c3VcIDsKK+WQjOaZguaApyA8IGRvdWppc2VpXCA7CivluLflrZAgPCBrYXRhYmlyYVwgOwor6I2J5biCIDwga3VzYWljaGlcIDsKK+m7hOWkieexsyA8IG91aGVubWFpXCA7CivkvZnmiYDogIUgPCB5b3NvbW9ub1wgOwor55m95qqAIDwgYnlha3VkYW5cIDsKK+iLpeanmCA8IHdha2FzYW1hXCA7Civnm7TlsIQgPCBjaG9rdXNoYVwgOwor5bGx6YeMIDwgeWFtYXphdG9cIDsKK+mAgOWNtCA8IHRhaWt5YWt1XCA7Civmu4vppIrliIYgPCBqaXlvdWJ1blwgOwor5qeN546JIDwgeWFyaWRhbWFcIDsKK+ajmueJoeS4uSA8IHRhbmFib3RhXCA7CivnlLLpiYQgPCBrb3V0ZXRzdVwgOwor6YqY6YWS5bGLIDwgbWVpc2h1eWFcIDsKK+WhqemhnuaziSA8IGVucnVpc2VuXCA7CivlsYDpnaIgPCBreW9rdW1lblwgOwor5L+d6I+M6ICFIDwgaG9raW5zaGFcIDsKK+mAmuS/oSA8IHRzdXVzaGluXCA7CivmpbXnt5ogPCBreW9rdXNlblwgOwor6Ziy56CC5p6XIDwgYm91c2FyaW5cIDsKK+mAmuS/lyA8IHRzdXV6b2t1XCA7CivoiLnnuIEgPCBmdW5hYmVyaVwgOwor55qT5pyIIDwga291Z2V0c3VcIDsKK+iJsuebuCA8IHNoaWtpc291XCA7CivoibLnm7IgPCBzaGlraW1vdVwgOwor55yJ5aKoIDwgbWF5dXp1bWlcIDsKK+WGheaOpSA8IG5haXNldHN1XCA7CivplonkuJbnlYwgPCBoZWlzZWthaVwgOwor5be05oimIDwgdG9tb2VzZW5cIDsKK+WFqOabsiA8IHplbmt5b2t1XCA7Civou7jniakgPCBqaWt1bW9ub1wgOwor5qWt57i+IDwgZ3lvdXNla2lcIDsKK+WcsOS4i+iMjiA8IGNoaWtha2VpXCA7CivlpJrovrrlvaIgPCB0YWhlbmtlaVwgOwor5YWl5pyoIDwgbnl1dWJva3VcIDsKK+altee0sCA8IGdva3Vib3NvXCA7CivkuI3mmI7mnJcgPCBmdW1laXJvdVwgOwor6YCB5YilIDwgc291YmV0c3VcIDsKK+i2s+mmliA8IGFzaGlrdWJpXCA7CivlhbzmkYIgPCBrZW5zZXRzdVwgOwor5Yil5L6/IDwgYmV0c3ViaW5cIDsKK+W5tOWIpSA8IG5lbmJldHN1XCA7Civms6XngavlsbEgPCBkZWlrYXphblwgOwor55Sf6YyyIDwgbmFtYXJva3VcIDsKK+S6rOmDveW6nCA8IGt5b3V0b2Z1XCA7Civnmb3mooUgPCBzaGlyYXVtZVwgOwor6IeG6KqsIDwgb2t1c2V0c3VcIDsKK+S7pOWkq+S6uiA8IHJlaWZ1amluXCA7CivlhYjmp5ggPCBzYWtpc2FtYVwgOwor5YWo5pelIDwgemVuaml0c3VcIDsKK+W4g+W8lSA8IG51bm9iaWtpXCA7CivnvbflhY3mqKkgPCBoaW1lbmtlblwgOwor5LiB5a2X5b2iIDwgdGVpamlrZWlcIDsKK+ebo+WvnyA8IGthbnNhdHN1XCA7CivliIblipsgPCBidW5yeW9rdVwgOwor5YCZ6KOc6ICFIDwga291aG9zaGFcIDsKK+WCjeiAsyA8IGthdGFtaW1pXCA7CivnlaXoqIAgPCByeWFrdWdlblwgOwor5Yil5Lq6IDwgYmV0c3VuaW5cIDsKK+Wwj+mtmiA8IGtvemFrYW5hXCA7Civlt6bmiYsgPCBoaWRhcml0ZVwgOwor6Imy55S6IDwgaXJvbWFjaGlcIDsKK+iJsueUtyA8IGlyb290b2tvXCA7Civmpb3nq6AgPCBnYWt1c2hvdVwgOwor5YiG5YilIDwgYnVuYmV0c3VcIDsKK+e1teeUu+mkqCA8IGthaWdha2FuXCA7CivprLHnl4UgPCB1dHN1YnlvdVwgOwor5Zu95Za25YyWIDwga29rdWVpa2FcIDsKK+mAhuS/riA8IGd5YWt1c2h1XCA7CivnianmlYXogIUgPCBidWtrb3NoYVwgOwor5YmN55u45pKyIDwgbWFlenVtb3VcIDsKK+eglOexs+apnyA8IGtlbm1haWtpXCA7Civnm7Tlo7IgPCBjaG9rdWJhaVwgOwor5YCf6LK4IDwgc2hha3V0YWlcIDsKK+aal+m7kuacnyA8IGFua29rdWtpXCA7CivlgJ/osqEgPCBzaGFrdXphaVwgOwor54++5pmC54K5IDwgZ2Vuaml0ZW5cIDsKK+mao+S/nemkqCA8IHJpbnBva2FuXCA7CivlhqzlsbEgPCBmdXl1eWFtYVwgOwor5YiG5YaKIDwgYnVuc2F0c3VcIDsKK+eEvOWkt+W8viA8IHNob3VpZGFuXCA7CivkuIHlrZfluK8gPCB0ZWlqaXRhaVwgOwor6LuN55WlIDwgZ3Vucnlha3VcIDsKK+WKoOmFjeexsyA8IGthaGFpbWFpXCA7CivnlKjpgZQgPCB5b3V0YXRzdVwgOwor6I2S5aS3IDwgYXJhZWJpc3VcIDsKK+alteerryA8IGt5b2t1dGFuXCA7CivnnJ/ljZcgPCBtYW1pbmFtaVwgOwor5q2v56eR5Yy76ZmiIDwgc2hpa2FpaW5cIDsKK+mrmOeyvuW6piA8IGtvdXNlaWRvXCA7CivnlaXoo4UgPCByeWFrdXNvdVwgOwor6Zmw6Zai5pWwIDwgaW5rYW5zdXVcIDsKK+awtOazs+W4vSA8IHN1aWVpYm91XCA7CivliJfkvJ0gPCByZXRzdWRlblwgOwor6LK46LK755SfIDwgdGFpaGlzZWlcIDsKK+iIueerryA8IGZ1bmFiYXRhXCA7Civpr6jluqcgPCBrdWppcmF6YVwgOwor552A5Lu7IDwgY2hha3VuaW5cIDsKK+Wil+eojuahiCA8IHpvdXplaWFuXCA7CivovrvloIIgPCB0c3VqaWRvdVwgOwor5L+66YGUIDwgb3JldGFjaGlcIDsKK+mkk+msvOWFsSA8IGdha2lkb21vXCA7CivnnJ/li4cgPCBzaGluJyd5dXVcIDsKK+WCmOe0mSA8IGthc2FnYW1pXCA7CivoqLHlj6/liLYgPCBreW9rYXNlaVwgOwor55m95pi8IDwgaGFrdWNodXVcIDsKK+eXvOeWviA8IGtvc2hpdHN1XCA7Civlgb3ogIUgPCBuaXNlbW9ub1wgOwor5YWL5pyNIDwga29rdWZ1a3VcIDsKK+Wls+aAp+WDjyA8IGpvc2Vpem91XCA7CivnlLvos6ogPCBnYXNoaXRzdVwgOwor6Lez6LqNIDwgY2hvdXlha3VcIDsKK+eBq+aYn+W5tCA8IGthc2VpbmVuXCA7CivnmbrmmI4gPCBoYXRzdW1laVwgOwor5Lqc56Gr6YW4IDwgYXJ5dXVzYW5cIDsKK+mAhuS4iiA8IGd5YWt1am91XCA7CivlhYjmnIggPCBzZW5nZXRzdVwgOwor5bmz5LuEIDwgaHlvdXNva3VcIDsKK+WGhuW9oiA8IG1hcnVnYXRhXCA7Civlho3ou43lgpkgPCBzYWlndW5iaVwgOwor5p2/5bGL6LKdIDwgaXRheWFnYWlcIDsKK+WwkemhjSA8IHNob3VnYWt1XCA7CivmlqHml4vmoYggPCBhc3NlbicnYW5cIDsKK+iKseW0l+WyqSA8IGtha291Z2FuXCA7Civov5TljbQgPCBoZW5reWFrdVwgOwor5Ye25YWGIDwga3lvdWNob3VcIDsKK+alk+ezliA8IGthZWRldG91XCA7CivluZXlhoUgPCBtYWt1dWNoaVwgOwor5pyq5a6M5oiQIDwgbWlrYW5zZWlcIDsKK+W3u+WwuiA8IG1ha2lqYWt1XCA7CivlhYjml6UgPCBzZW5qaXRzdVwgOwor54Sh55So5b+DIDwgYnV5b3VqaW5cIDsKK+aIkOaWh+WMliA8IHNlaWJ1bmthXCA7CivlgJ/opqcgPCBzaGFrdXJhblwgOwor57KX5oKq5ZOBIDwgc29ha3VoaW5cIDsKK+aOp+iotOaoqSA8IGtvdXNva2VuXCA7Civpp5Lps6UgPCBrb21hZG9yaVwgOwor6Kq/55CG5aC0IDwgY2hvdXJpYmFcIDsKK+WcsOS4i+e3miA8IGNoaWthc2VuXCA7CivluZXlg5ogPCBiYWt1cnlvdVwgOwor5YaZ5a6fIDwgc2hhaml0c3VcIDsKK+S6nOehnemFuCA8IGFzaG91c2FuXCA7CivlhYPml6UgPCBnYW5qaXRzdVwgOwor55m95o+PIDwgaGFrdWJ5b3VcIDsKK+Wwu+mHjSA8IHNoaXJpb21vXCA7CivohJvpqqggPCBrZWlrb3RzdVwgOwor5L2T57O75YyWIDwgdGFpa2Vpa2FcIDsKK+WFg+aWuSA8IG1vdG9rYXRhXCA7Civnmbrmj5ogPCBoYXRzdXlvdVwgOwor57WM5Za26ICFIDwga2VpZWlzaGFcIDsKK+iMtuWjuiA8IGNoYXRzdWJvXCA7Civkv67ouqsgPCBzaHV1c2hpblwgOwor55m65o6YIDwgaGFra3V0c3VcIDsKK+W3neW6lSA8IGthd2F6b2tvXCA7Civlt53luoogPCBrYXdhZG9rb1wgOwor5Ye25L2cIDwga3lvdXNha3VcIDsKK+amgueVpSA8IGdhaXJ5YWt1XCA7CivooqvlhpnkvZMgPCBoaXNoYXRhaVwgOwor5bed5bmFIDwga2F3YWhhYmFcIDsKK+WCt+eXhSA8IHNob3VieW91XCA7CivmpI7ojLggPCBzaGlpdGFrZVwgOwor5bee5beeIDwgc2h1dXNodXVcIDsKK+WBnOiBtyA8IHRlaXNob2t1XCA7CivkvpHpo58gPCB5dXVzaG9rdVwgOwor5YiG5aip5pyfIDwgYnVuYmVua2lcIDsKK+W+jOS7leiIniA8IGF0b2ppbWFpXCA7CivlhoXlsYAgPCBuYWlreW9rdVwgOwor55S36KaqIDwgb3Rva29veWFcIDsKK+ijj+mdouWPsiA8IHJpbWVuc2hpXCA7CivoirHmn4QgPCBoYW5hZ2FyYVwgOwor6KaL5LiW54mpIDwgbWlzZW1vbm9cIDsKK+WxseilniA8IHlhbWFoaWRhXCA7CivovrvljaAgPCB0c3VqaXVyYVwgOwor5qeY5qeYIDwgc2FtYXphbWFcIDsKK+ecn+S4rSA8IG1hbicnbmFrYVwgOwor5YaF5a+GIDwgbmFpbWl0c3VcIDsKK+iqnuW9meWKmyA8IGdvaXJ5b2t1XCA7CivoirHmnZ8gPCBoYW5hdGFiYVwgOwor5YaF5a6fIDwgbmFpaml0c3VcIDsKK+WFseW4gyA8IHRvbW9udW5vXCA7CivlsbHoo74gPCB5YW1hc3Vzb1wgOwor6auY56m6IDwgdGFrYXpvcmFcIDsKK+iKseacrSA8IGhhbmFmdWRhXCA7CivprZTms5Xnk7YgPCBtYWhvdWJpblwgOwor55m+5oWLIDwgaHlha3V0YWlcIDsKK+WIhuWoqeaZgiA8IGJ1bmJlbmppXCA7CivkuIrkuIvli5UgPCBqb3VnZWRvdVwgOwor5bmz6Z2i5ZuzIDwgaGVpbWVuenVcIDsKK+iAkOeBq+aApyA8IHRhaWthc2VpXCA7Civnl5Tnlr4gPCBqaXNoaXRzdVwgOwor5YaN5a6a576pIDwgc2FpdGVpZ2lcIDsKK+mbu+awl+W3pSA8IGRlbmtpa291XCA7Civlj43lj6TnsaAgPCBob2d1a2Fnb1wgOwor5YWr5bmhIDwgaGFjaGltYW5cIDsKK+W+oemZjeiqlSA8IGdva291dGFuXCA7Civlt6Hlr58gPCBqdW5zYXRzdVwgOwor6Lu95qWtIDwga2FydXdhemFcIDsKK+W3neWwuyA8IGthd2FqaXJpXCA7CivmmI7mlofljJYgPCBtZWlidW5rYVwgOwor6IW55YW35ZCIIDwgaGFyYWd1YWlcIDsKK+ebtOWJjSA8IGNob2t1emVuXCA7CivpgbjmjJnml6UgPCBzZW5reW9iaVwgOwor5qOS6KGTIDwgYm91anV0c3VcIDsKK+iKseaZgiA8IGhhbmFkb2tpXCA7CivlhaXluZUgPCBueXV1bWFrdVwgOwor55m65oOFIDwgaGF0c3Vqb3VcIDsKK+S/s+islCA8IGhhaWd5YWt1XCA7CivlsqnohIggPCBnYW5teWFrdVwgOwor5biz5YWDIDwgY2hvdW1vdG9cIDsKK+eXheeahCA8IGJ5b3V0ZWtpXCA7CivmqKrluYUgPCB5b2tvaGFiYVwgOwor6Ly457K+566hIDwgeXVzZWlrYW5cIDsKK+eXheeZliA8IGJ5b3VoZWtpXCA7CivlsI/lo7LlupcgPCBrb3VyaXRlblwgOwor5a6H5a6Z6KuWIDwgdWNodXVyb25cIDsKK+iDuOmrmCA8IG11bmFkYWthXCA7CivpkZHlrprlrrYgPCBrYW50ZWlrYVwgOwor5L+D6YCyIDwgc29rdXNoaW5cIDsKK+aomeW+tCA8IGh5b3VjaG91XCA7Civlm7rmurbkvZMgPCBrb3lvdXRhaVwgOwor5qGI5YaF5omAIDwgYW4nJ25haWpvXCA7Civnl4Xnl4cgPCBieW91c2hvdVwgOwor6Ieq5L+h5a62IDwgamlzaGlua2FcIDsKK+WGt+WNtCA8IHJlaWt5YWt1XCA7CivkupzpiZvmnKsgPCBhZW5tYXRzdVwgOwor6IaP6KGAIDwga291a2V0c3VcIDsKK+WCt+eJqSA8IGtpenVtb25vXCA7CivlsI7pm7vluqYgPCBkb3VkZW5kb1wgOwor55yM55+l5LqLIDwga2VuY2hpamlcIDsKK+eZvuW8iiA8IGh5YWt1aGVpXCA7Civlh53kubMgPCBneW91bnl1dVwgOwor55Wc6IiOIDwgY2hpa3VzaGFcIDsKK+aEj+awl+mYu+WWqiA8IGlraXNvc291XCA7CivlhbHlraYgPCBreW91Z2FrdVwgOwor5a6H5a6Z6KazIDwgdWNodXVrYW5cIDsKK+mbu+WLleapnyA8IGRlbmRvdWtpXCA7CivlsJHph48gPCBzaG91cnlvdVwgOwor5LiA5LiB55uuIDwgaXRjaG91bWVcIDsKK+S8iumBlOihhiA8IGRhdGVzaHV1XCA7CivohYvnqqnohbogPCBla2lrYXNlblwgOwor5LiN5paH5rOVIDwgZnVidW5wb3VcIDsKK+eZvuW5tCA8IGh5YWt1bmVuXCA7CivotrPou70gPCBhc2hpZ2FydVwgOwor5LiA6LKr5oCnIDwgaWtrYW5zZWlcIDsKK+WPo+WGheeCjiA8IGtvdW5haWVuXCA7CivlgaXnrYYgPCBrZW5waXRzdVwgOwor6YGO5LiN6LazIDwga2FmdXNva3VcIDsKK+WvkumkhSA8IGthbm1vY2hpXCA7Civlr67plbcgPCByeW91Y2hvdVwgOwor5oSb55So6ICFIDwgYWl5b3VzaGFcIDsKK+S/iui2syA8IHNodW5zb2t1XCA7CivlhazmsJHnp5EgPCBrb3VtaW5rYVwgOwor5YWl5a+CIDwgbnl1dWpha3VcIDsKK+WHuuagvOWtkCA8IGRlZ291c2hpXCA7Civkv6Hoqo0gPCBzaGluJyduaW5cIDsKK+S7iuS4lue0gCA8IGtvbnNlaWtpXCA7CivlhaXlraYgPCBueXV1Z2FrdVwgOwor5qWt54mpIDwgd2F6YW1vbm9cIDsKK+acquWpmuiAhSA8IG1pa29uc2hhXCA7CivotaTpnbQgPCBha2FndXRzdVwgOwor5YCZ6KOc55SfIDwga291aG9zZWlcIDsKK+W3nuWigyA8IHNodXVreW91XCA7CivmnbHljZfkupwgPCB0b3VuYW4nJ2FcIDsKK+S/oeiolyA8IHNoaW50YWt1XCA7CivkvpvppIrloZQgPCBrdXlvdXRvdVwgOwor5YGl6IOD5YmkIDwga2VuJydpemFpXCA7Civlrr/pp4UgPCBzaHVrdWVraVwgOwor5qW154K5IDwga3lva3V0ZW5cIDsKK+S/l+iqvyA8IHpva3VjaG91XCA7CivoiIznmYwgPCB6ZXRzdWdhblwgOwor55u05LitIDwgdGFkYW5ha2FcIDsKK+iKseaIvyA8IGhhbmFmdXNhXCA7Civkv67pqJPogIUgPCBzaHVnZW5qYVwgOwor55ar55eFIDwgeWFrdWJ5b3VcIDsKK+iLpeWuriA8IHdha2FtaXlhXCA7CivlhYPluLMgPCBtb3RvY2hvdVwgOwor5a+b6ZeKIDwga2Fua2F0c3VcIDsKK+WvuOmJhCA8IHN1bnRldHN1XCA7CivpgZXniq/ooYzngrogPCBpaGFua291aVwgOwor5p+U6YGT552AIDwganV1ZG91Z2lcIDsKK+eZvuWusyA8IGh5YWt1Z2FpXCA7Civlvq7ns7vmlbAgPCBiaWtlaXN1dVwgOwor5LuV572u5aC0IDwgc2hpb2tpYmFcIDsKK+WBtueZuiA8IGd1dWhhdHN1XCA7CivlubPmlrnlkowgPCBoZWlob3V3YVwgOwor5bCP6LqrIDwgc2hvdXNoaW5cIDsKK+Wuv+mhmCA8IHNodWt1Z2FuXCA7CivkvLTlpY/pg6ggPCBiYW5zb3VidVwgOwor55Sf6JasIDwgc2hvdXlha3VcIDsKK+Wuv+mhjCA8IHNodWt1ZGFpXCA7Civlj6TlhpnmnKwgPCBrb3NoYWhvblwgOwor55O26KmwIDwgYmluZHp1bWVcIDsKK+WBj+eqnyA8IGhlbmt1dHN1XCA7CivlhYjlsbEgPCBzYWtpeWFtYVwgOwor55S36ImyIDwgbmFuc2hva3VcIDsKK+iEsei8qiA8IGRhdHN1cmluXCA7Civlh7rmnaXniakgPCBkZWtpbW9ub1wgOwor5YC557SEIDwga2VuJyd5YWt1XCA7CivojYnkuIggPCBrdXNhdGFrZVwgOwor5Zyf6aWF6aCtIDwgZG9tYW5qdXVcIDsKK+S4luipseS6uiA8IHNld2FiaXRvXCA7CivlhaXlob4gPCBueXV1anVrdVwgOwor576O6aGU5rC0IDwgYmlnYW5zdWlcIDsKK+iHqueUseWIkSA8IGppeXV1a2VpXCA7CivloanpoqjlkYIgPCBzaGlvYnVyb1wgOwor5YWF6Zu75ZmoIDwganV1ZGVua2lcIDsKK+iiq+mok+iAhSA8IGhpa2Vuc2hhXCA7CivlsI/nhorluqcgPCBrb2d1bWF6YVwgOwor5YSq5b2iIDwgeWFzYWdhdGFcIDsKK+aJi+S/oeiqniA8IHRlc2hpbmdvXCA7CivlhYjlrqIgPCBzZW5reWFrdVwgOwor6LWk5q+b5biDIDwgYWthZ2V0dG9cIDsKK+S/l+ihhiA8IHpva3VzaHV1XCA7CivlsbHohpogPCB5YW1haGFkYVwgOwor5qaV5qi5IDwgZ2FqdW1hcnVcIDsKK+WFiOWuiSA8IHNha2l5YXN1XCA7CivppqzpnaIgPCB1bWFkenVyYVwgOwor5rC05b2p55S7IDwgc3Vpc2FpZ2FcIDsKK+S4gOS6uuWvnSA8IGhpdG9yaW5lXCA7CivpnZLlkbPms6UgPCBhb21pZG9yb1wgOwor55m+5aeTIDwgaHlha3VzZWlcIDsKK+iHqueUseWFmiA8IGppeXV1dG91XCA7CivlhYXlrp8gPCBqdXVqaXRzdVwgOwor6IqZ6JOJ5bOwIDwgZnV5b3Vob3VcIDsKK+iQveiKseeUnyA8IHJha2thc2VpXCA7CivoirHlvaIgPCBoYW5hZ2F0YVwgOwor5bGx6ZaT6YOoIDwgc2Fua2FuYnVcIDsKK+ebl+S6uiA8IG51c3ViaXRvXCA7CivlkIzmmYLku6MgPCBkb3VqaWRhaVwgOwor55m95aaZIDwgc2hpcm90YWVcIDsKK+WxseiEiCA8IHlhbWFuYW1pXCA7CivnhKHlrpfmtL4gPCBtdXNodXVoYVwgOwor6Iqx5byBIDwgaGFuYWJpcmFcIDsKK+WFpeWbvSA8IG55dXVrb2t1XCA7CivmpbXmtIsgPCBreW9rdXlvdVwgOwor6LuN5pS/5bqcIDwgZ3Vuc2VpZnVcIDsKK+eZveWjgSA8IGhha3VoZWtpXCA7Civnmb3loqggPCBoYWt1Ym9rdVwgOwor55m65aOyIDwgaGF0c3ViYWlcIDsKK+WGheWKmyA8IG5haXJ5b2t1XCA7CivotaTpioUgPCBzaGFrdWRvdVwgOwor55qu5YmlIDwga2F3YWhhZ2lcIDsKK+WppuS6uuS8miA8IGZ1amlua2FpXCA7Civljp/nuYrntq0gPCBnZW5zZW4nJ2lcIDsKK+W3qOWIuSA8IGt5b3NhdHN1XCA7Civpqqjnm6QgPCBrb3RzdWJhblwgOwor6a+J5Y+jIDwga29pZ3VjaGlcIDsKK+eUn+iJsiA8IHNlaXNob2t1XCA7Civntpnpm7vmsJcgPCBrZWlkZW5raVwgOwor5LiN5paH5piOIDwgZnVidW5tZWlcIDsKK+W5s+Wcn+mWkyA8IGhpcmFkb21hXCA7CivmrKHnlLflnYogPCBqaW5hbmJvdVwgOwor5YWI5aSqIDwgc2FraWJ1dG9cIDsKK+i2hei2iiA8IGNob3VldHN1XCA7CivohoDog7Hngo4gPCBib3Vrb3VlblwgOwor5pyJ5Yq55omTIDwgeXV1a291ZGFcIDsKK+mbqOmHj+ioiCA8IHVyeW91a2VpXCA7CivlhbXljZIgPCBoZWlzb3RzdVwgOwor5a6H5a6Z6Ii5IDwgdWNodXVzZW5cIDsKK+a4m+ihsOWZqCA8IGdlbnN1aWtpXCA7Civmp5jlvI8gPCB5b3VzaGlraVwgOwor5Ly06aOfIDwgYmFuc2hva3VcIDsKK+WkmuiKuOaApyA8IHRhZ2Vpc2VpXCA7CivlhbXlipsgPCBoZWlyeW9rdVwgOwor6LWk5YiH56ymIDwgYWthZ2lwcHVcIDsKK+alvealvSA8IHJha3VyYWt1XCA7Civpq5jmva4gPCB0YWthc2hpb1wgOwor5YaF5YG0IDwgdWNoaWdhd2FcIDsKK+iEhei/qyA8IGt5b3VoYWt1XCA7CivohbnohpwgPCBmdWt1bWFrdVwgOwor54Gr5pif5Lq6IDwga2FzZWlqaW5cIDsKK+WGheWAiSA8IHVjaGlndXJhXCA7Civml6XoiKrmqZ8gPCBuaWtrb3VraVwgOwor5LuK5LiW55WMIDwga29uc2VrYWlcIDsKK+iKseWuiCA8IGhhbmFtb3JpXCA7Civog7jpg60gPCBreW91a2FrdVwgOwor6LuN6ZyA5ZOBIDwgZ3VuanVoaW5cIDsKK+eXheavkiA8IGJ5b3Vkb2t1XCA7CivmpbXmpb0gPCBnb2t1cmFrdVwgOwor5rC06JK45rCXIDwgc3Vpam91a2lcIDsKK+altealtSA8IGdva3Vnb2t1XCA7CivljZjmvKLlrZcgPCB0YW5rYW5qaVwgOwor5Y2B5paH5a2XIDwganV1bW9uamlcIDsKK+WuiOWCmeWFtSA8IHNodWJpaGVpXCA7Civnl4XmrbQgPCBieW91cmVraVwgOwor5pqX5Y+35paHIDwgYW5nb3VidW5cIDsKK+iKseWrgSA8IGhhbmF5b21lXCA7CivlhajlipsgPCB6ZW5yeW9rdVwgOwor5YWx5YWxIDwgdG9tb2RvbW9cIDsKK+mrmOetieenkSA8IGtvdXRvdWthXCA7CivoirHlqb8gPCBoYW5hbXVrb1wgOwor6LSL6aaWIDwgbmlzZWt1YmlcIDsKK+iLpeWQmyA8IHdha2FnaW1pXCA7CivlsYDoiI4gPCBreW9rdXNoYVwgOwor5bee5L+XIDwgc2h1dXpva3VcIDsKK+a3u+S5l+WToSA8IHRlbmpvdWluXCA7CivmpI3nlJ8gPCBzaG9rdXNlaVwgOwor5qip5YqbIDwga2Vucnlva3VcIDsKK+WEquWlsyA8IHlhc2FvbicnYVwgOwor5a6/6YWUIDwgc2h1a3VzdWlcIDsKK+i1q+i1qyA8IGtha3VrYWt1XCA7CivmoYjlhoXlm7MgPCBhbicnbmFpenVcIDsKK+WQiOiogOiRiSA8IGFpa290b2JhXCA7Civlr4bpgKAgPCBtaXRzdXpvdVwgOwor5qW95puyIDwgZ2Fra3lva3VcIDsKK+mrmOazoiA8IHRha2FuYW1pXCA7CivkvJrpo58gPCBrYWlzaG9rdVwgOwor5a6a5pyf5Yi4IDwgdGVpa2lrZW5cIDsKK+WAkueriyA8IHRvdXJpdHN1XCA7CivoibLmhJ8gPCBzaGlraWthblwgOwor5bem5LiKIDwgaGlkYXJpdWVcIDsKK+S6iOeul+ahiCA8IHlvc2FuJydhblwgOwor5aSa5qeY5oCnIDwgdGF5b3VzZWlcIDsKK+WFiOWTsiA8IHNlbnRldHN1XCA7Civoh6ros6Dms5UgPCBqaWJhaWhvdVwgOwor5qW15p2xIDwga3lva3V0b3VcIDsKK+WHuuS4jeeyviA8IGRlYnVzaG91XCA7CivlronlsbHlsqkgPCBhbnphbmdhblwgOwor6ICB5aSn5a62IDwgcm91dGFpa2FcIDsKK+awj+e0oOaApyA8IHVqaXN1am91XCA7CivkuIrlpKnmsJcgPCBqb3V0ZW5raVwgOwor56ys5LiA5aOwIDwgZGFpaXNzZWlcIDsKK+WwjueBq+e3miA8IGRvdWthc2VuXCA7CivprZrlsYsgPCBzYWthbmF5YVwgOwor5L6d6aC85b+DIDwgaXJhaXNoaW5cIDsKK+i3s+eusSA8IHRvYmliYWtvXCA7Civou5/lvI8gPCBuYW5zaGlraVwgOwor6LKg5YK16ICFIDwgZnVzYWlzaGFcIDsKK+mrmOauvyA8IHRha2Fkb25vXCA7CivlvozpoK3pg6ggPCBrb3V0b3VidVwgOwor5YGP54mHIDwga2F0YWhhcmFcIDsKK+W3neS4iiA8IGthd2FrYW1pXCA7Civnmq7ohprnl4UgPCBoaWZ1YnlvdVwgOwor5bGx56iLIDwgeWFtYWhvZG9cIDsKK+eZuuWLlSA8IGhhdHN1ZG91XCA7CivogIHlpKvlqaYgPCByb3VmdXVmdVwgOwor5YWI5Y+jIDwgc2Vua3VjaGlcIDsKK+WcsOS4i+awtCA8IGNoaWthc3VpXCA7CivogovpqqggPCByb2trb3RzdVwgOwor6Zu75rCX5LujIDwgZGVua2lkYWlcIDsKK+Wumue+qeWfnyA8IHRlaWdpaWtpXCA7CivnlZznlKMgPCBjaGlrdXNhblwgOwor6Imy5b2pIDwgc2hpa2lzYWlcIDsKK+iJr+W/gyA8IHJ5b3VzaGluXCA7CivnlJ/nsbMgPCBuYW1hZ29tZVwgOwor55So562GIDwgeW91aGl0c3VcIDsKK+aUvueBq+e9qiA8IGhvdWthemFpXCA7Civpm6jlkIjnvr0gPCBhbWFnYXBwYVwgOwor5Y+X5YiR6ICFIDwganVrZWlzaGFcIDsKK+iHk+eJqSA8IHpvdW1vdHN1XCA7CivpnZ7lhazplosgPCBoaWtvdWthaVwgOwor6YGZ44CFIDwgaGFydWJhcnVcIDsKK+mqqOeBsCA8IGtvdHN1YmFpXCA7Civmma7oq4vloLQgPCBmdXNoaW5iYVwgOwor5aSa5bO25rW3IDwgdGF0b3VrYWlcIDsKK+iIueaXhSA8IGZ1bmF0YWJpXCA7CivoiLnmlrkgPCBmdW5ha2F0YVwgOwor5Yq05YON5q2MIDwgcm91ZG91a2FcIDsKK+WvhOa4r+WcsCA8IGtpa291Y2hpXCA7CivoirHlnJIgPCBoYW5hem9ub1wgOwor5a6a5pyf5L6/IDwgdGVpa2liaW5cIDsKK+i7jeW+iyA8IGd1bnJpdHN1XCA7Civou43lvbkgPCBndW4nJ3lha3VcIDsKK+acquadpeW9oiA8IG1pcmFpa2VpXCA7Civnmb7lhIQgPCBoeWFrdW9rdVwgOwor5bGR57GgIDwga3V6dWthZ29cIDsKK+eXm+aSgyA8IHRzdXVnZWtpXCA7CivlhajkubMgPCB6ZW4nJ255dXVcIDsKK+agvOiqvyA8IGtha3VjaG91XCA7CivovLjlh7ogPCB5dXNodXRzdVwgOwor6aOb6KGM5aOrIDwgaGlrb3VzaGlcIDsKK+amguaLrCA8IGdhaWthdHN1XCA7CivohqDnnYAgPCBrb3VjaGFrdVwgOwor5aaK55Sj5ammIDwgbmluc2FucHVcIDsKK+efreaZgumWkyA8IHRhbmppa2FuXCA7CivkvbXoqK0gPCBoZWlzZXRzdVwgOwor55m+5YCNIDwgaHlha3ViYWlcIDsKK+WBj+W3ruWApCA8IGhlbnNhY2hpXCA7CivkuIvpmY3nt5ogPCBrYWtvdXNlblwgOwor5rSL6I+T5a2QIDwgeW91Z2FzaGlcIDsKK+aWreijgeapnyA8IGRhbnNhaWtpXCA7Civou4rluqcgPCBrdXJ1bWF6YVwgOwor5YWI5YWlIDwgc2VuJydueXV1XCA7Civpo5vooYzloLQgPCBoaWtvdWpvdVwgOwor5YCf55SoIDwgc2hha3V5b3VcIDsKK+Wuv+izgyA8IHlhZG9jaGluXCA7CivnlZzniqwgPCBjaGlrdWtlblwgOwor5oG15q+U6aCI6KybIDwgZWJpc3Vrb3VcIDsKK+WCjeadliA8IHNvYmFkenVlXCA7CivlhYPlhYMgPCBtb3RvbW90b1wgOwor5bel5YW35YWlIDwga291Z3VpcmVcIDsKK+S9k+a4qeioiCA8IHRhaW9ua2VpXCA7Civlr53ooosgPCBuZWJ1a3Vyb1wgOwor55m66KGM5pelIDwgaGFra291YmlcIDsKK+iKneWcsCA8IHNoaWJhY2hpXCA7Civmi7fllY/lhbcgPCBnb3Vtb25ndVwgOwor55qE5LitIDwgdGVraWNodXVcIDsKK+mZpOWkluS+iyA8IGpvZ2FpcmVpXCA7CivlsLHnuJsgPCBzaHV1YmFrdVwgOwor5a+/6ICB5Lq6IDwganVyb3VqaW5cIDsKK+WvhuisgCA8IG1pdHN1Ym91XCA7Civlhazlj5blp5QgPCBrb3V0b3JpaVwgOwor6Zmi5aSW5ZujIDwgaW5nYWlkYW5cIDsKK+S4jeWkieaApyA8IGZ1aGVuc2VpXCA7Civlr4boq4cgPCBtaXRzdWRhblwgOwor5aSa55Sj57O7IDwgdGFzYW5rZWlcIDsKK+eZuuS7pCA8IGhhdHN1cmVpXCA7CivlsI/opo/mqKEgPCBzaG91a2lib1wgOwor5ZCI6K2w5Yi2IDwgZ291Z2lzZWlcIDsKK+e2reeuoeadnyA8IGlrYW5zb2t1XCA7Civoia/lsIYgPCByeW91c2hvdVwgOwor5a6i6LuKIDwga3lha3VzaGFcIDsKK+iEseiJsiA8IGRhc3Nob2t1XCA7Civpq5jmuKnoqIggPCBrb3VvbmtlaVwgOwor6auY5pytIDwga291c2F0c3VcIDsKK+WIneetieenkSA8IHNob3RvdWthXCA7CivoqJjmhrbms5UgPCBraW9rdWhvdVwgOwor5LuK5pyd5pa5IDwga2VzYWdhdGFcIDsKK+eZvuS4hyA8IGh5YWt1bWFuXCA7CivnoLTnoJXmgKcgPCBoYXNhaXNlaVwgOwor6bm/6YeO6IuRIDwgcm9rdXlhb25cIDsKK+S7memqqCA8IHNlbmtvdHN1XCA7CivlronphZIgPCB5YXN1emFrZVwgOwor5YO75aKDIDwgaGVraWt5b3VcIDsKK+i7iuWxiyA8IGt1cnVtYXlhXCA7CivoiJ7lj7Doo48gPCBidXRhaXVyYVwgOwor57WM5Za25qipIDwga2VpZWlrZW5cIDsKK+i6q+W/gyA8IHNoaW5zaGluXCA7Civnl5vmg5wgPCB0c3V1c2VraVwgOwor5LiN54eD5oCnIDwgZnVuZW5zZWlcIDsKK+WBveacrSA8IG5pc2VmdWRhXCA7CivnpZ7npYflrpggPCBqaW5naWthblwgOwor5YCf54mpIDwga2FyaW1vbm9cIDsKK+i1pOibmSA8IGFrYWdhZXJ1XCA7CivooqvlrrPogIUgPCBoaWdhaXNoYVwgOwor5LuY6aasIDwgdHN1a2V1bWFcIDsKK+awtOmFuOWfuiA8IHN1aXNhbmtpXCA7CivlpKnkvZPlm7MgPCB0ZW50YWl6dVwgOwor6L+R6Led6ZuiIDwga2lua3lvcmlcIDsKK+a6luekvuWToSA8IGp1bnNoYWluXCA7CivotaTomasgPCBha2FtdXNoaVwgOwor5L2X6KiAIDwgd2FiaWdvdG9cIDsKK+S6uuS7tuiyuyA8IGppbmtlbmhpXCA7CivluLjlvpfmhI8gPCBqb3V0b2t1aVwgOwor55Sf55quIDwgbmFtYWthd2FcIDsKK+alteaApyA8IGt5b2t1c2VpXCA7CivoibLlpbMgPCBpcm9vbicnbmFcIDsKK+i8quS8kCA8IHJpbmJhdHN1XCA7CivlgI3njocgPCBiYWlyaXRzdVwgOwor55qu6ISC6IW6IDwgaGlzaGlzZW5cIDsKK+eEoeWumuW9oiA8IG11dGVpa2VpXCA7Civlj6/nlKjmgKcgPCBrYXlvdXNlaVwgOwor5Lq655Sf5rS+IDwgamluc2VpaGFcIDsKK+S/l+ensCA8IHpva3VzaG91XCA7CivlsbHnjL8gPCB5YW1hemFydVwgOwor5bGx54yrIDwgeWFtYW5la29cIDsKK+S8nemBlCA8IGRlbnRhdHN1XCA7CivnmbrooYzmiYAgPCBoYWtrb3Vqb1wgOwor5pGp5aSp5qW8IDwgbWF0ZW5yb3VcIDsKK+WvteiHoyA8IGNob3VzaGluXCA7CivlsI/plpPniakgPCBrb21hbW9ub1wgOwor5qSN5q+bIDwgc2hva3Vtb3VcIDsKK+W+oeWkp+WxpCA8IGdvdGFpc291XCA7CivorablgpnpmoogPCBrZWliaXRhaVwgOwor5Ymy54O5552AIDwga2FwcG91Z2lcIDsKK+WNlOWSjOmfsyA8IGt5b3V3YW9uXCA7Civlj5fli5XmhYsgPCBqdWRvdXRhaVwgOwor57eP5YuV5ZOhIDwgc291ZG91aW5cIDsKK+iCiemNiyA8IG5pa3VuYWJlXCA7CivnlLfniLUgPCBkYW5zaGFrdVwgOwor6Iqx5p6X57OWIDwga2FyaW50b3VcIDsKK+S6uumtgiA8IGhpdG9kYW1hXCA7Civohbnnl5sgPCBmdWt1dHN1dVwgOwor6Ii55bqVIDwgZnVuYXpva29cIDsKK+iIueW6iiA8IGZ1bmFkb2tvXCA7Civpp4bokL0gPCBrYWtlb2NoaVwgOwor5qW15biMIDwgZ29rdW1hcmVcIDsKK+S6uumqqCA8IGppbmtvdHN1XCA7CivlsI/ntZAgPCBrb211c3ViaVwgOwor5q2j56S+5ZOhIDwgc2Vpc2hhaW5cIDsKK+etiea4qee3miA8IHRvdW9uc2VuXCA7Civlrp/oqqwgPCBqaXNzZXRzdVwgOwor5b6h6ZyK5bGLIDwgbWl0YW1heWFcIDsKK+S4gOWkleipsSA8IGlzc2VraXdhXCA7CivlsI/ngrrmm78gPCBrb2dhd2FzZVwgOwor56ys5LiA5L2NIDwgZGFpaWNoaWlcIDsKK+WxpeeJqSA8IGhha2ltb25vXCA7Civnl4XlvrQgPCBieW91Y2hvdVwgOwor56iO6Zai5ZCPIDwgemVpa2FucmlcIDsKK+mkiuiCsuiyuyA8IHlvdWlrdWhpXCA7CivlrproqqwgPCB0ZWlzZXRzdVwgOwor6Ieo5pyIIDwgcmluZ2V0c3VcIDsKK+a1gemPkemmrCA8IHlhYnVzYW1lXCA7Civnl4XlvLEgPCBieW91amFrdVwgOwor5o6n6Ki05Lq6IDwga291c29uaW5cIDsKK+iMtuipseS8miA8IGNoYXdha2FpXCA7Civllqvnt4rkuosgPCBraWtraW5qaVwgOwor5ZC46YeR5YmbIDwga29rb25nb3VcIDsKK+mqqOadkCA8IGtvdHN1emFpXCA7CivnlKPniakgPCBzYW5idXRzdVwgOwor5qSc5pytIDwga2Vuc2F0c3VcIDsKK+iyqumjnyA8IGRvbnNob2t1XCA7Civkv6HnlKggPCBzaGluJyd5b3VcIDsKK+iEh+iFuSA8IHdha2liYXJhXCA7CivogIHnt7TlrrYgPCByb3VyZW5rYVwgOwor5LiN6Kq/5ZKMIDwgZnVjaG91d2FcIDsKK+eUn+eJqSA8IG5hbWFtb25vXCA7CivlsYDnlaogPCBreW9rdWJhblwgOwor5bCP562WIDwgc2hvdXNha3VcIDsKK+anjeWFiCA8IHlhcmlzYWtpXCA7CivmsJfnrqHmlK8gPCBraWthbnNoaVwgOwor55ew5aO6IDwgdGFudHN1Ym9cIDsKK+mrquW6iiA8IGthbWlkb2tvXCA7CivmsLTphbjljJYgPCBzdWlzYW5rYVwgOwor5aSn5Lq65rCXIDwgZGFpbmlua2lcIDsKK+WvkuiJsiA8IGthbnNob2t1XCA7CivpnZLpioXlmaggPCBzZWlkb3VraVwgOwor5qSN5qC9IDwgc2hva3VzYWlcIDsKK+S8kei2syA8IGt5dXVzb2t1XCA7CivoiLnlrr8gPCBmdW5heWFkb1wgOwor5LuP6ZaAIDwgYnV0c3Vtb25cIDsKK+mjm+ihjOS+vyA8IGhpa291YmluXCA7Civlgo3lvbkgPCB3YWtpeWFrdVwgOwor6IKJ6L+rIDwgbmlrdWhha3VcIDsKK+WPr+iDveazlSA8IGthbm91aG91XCA7CivnnJ/nj6Dmr40gPCBzaGluanVib1wgOwor5qC46IacIDwga2FrdW1ha3VcIDsKK+WwguaUu+enkSA8IHNlbmtvdWthXCA7CivljJbohr/oj4wgPCBrYW5vdWtpblwgOwor5Lqh6aq4IDwgbmFraWdhcmFcIDsKK+iHmOaciCA8IHJvdWdldHN1XCA7CivmpI3mnpcgPCBzaG9rdXJpblwgOwor6Z2e5bi457eaIDwgaGlqb3VzZW5cIDsKK+eyvuS4gOadryA8IHNlaWlwcGFpXCA7CivpgYfkuI3pgYcgPCBndXVmdWd1dVwgOwor6IO46IacIDwga3lvdW1ha3VcIDsKK+mjvemjnyA8IGhvdXNob2t1XCA7Civkv67nhp8gPCBzaHV1anVrdVwgOwor5pyq6ICV5ZywIDwgbWlrb3VjaGlcIDsKK+mWgOS4i+eUnyA8IG1vbmthc2VpXCA7CivkuIDpoqjlkYIgPCBoaXRvZnVyb1wgOwor5a6F6Ki6IDwgdGFrdXNoaW5cIDsKK+Wwj+emhCA8IHNob3Vyb2t1XCA7CivkvJ3oqqwgPCBkZW5zZXRzdVwgOwor6Laz55mWIDwgYXNoaWt1c2VcIDsKK+iEseeojiA8IGRhdHN1emVpXCA7Civkuqzpn78gPCBreW91a3lvdVwgOwor5Z+56aSK5Z+6IDwgYmFpeW91a2lcIDsKK+i7ouWFpSA8IHRlbicnbnl1dVwgOwor6LuN6ZqK5YyWIDwgZ3VudGFpa2FcIDsKK+a8lOiKuOS8miA8IGVuZ2Vpa2FpXCA7Civlr77nq4sgPCB0YWlyaXRzdVwgOwor5paH5Lq655S7IDwgYnVuamluZ2FcIDsKK+ePvuaZguS7oyA8IGdlbmppZGFpXCA7CivohavniakgPCBzaHVtb3RzdVwgOwor5bqD56+E5ZuyIDwga291aGFuJydpXCA7CivmpbXlpKcgPCBreW9rdWRhaVwgOwor55Wl5pu4IDwgcnlha3VzaG9cIDsKK+Wuv+iIjiA8IHNodWt1c2hhXCA7Civou43ljZIgPCBndW5zb3RzdVwgOwor5YaG5bGL5qC5IDwgbWFydXlhbmVcIDsKK+WzsOWzsCA8IG1pbmVtaW5lXCA7Civln7nppIrlnJ8gPCBiYWl5b3Vkb1wgOwor5a+S5rCX5ZujIDwga2Fua2lkYW5cIDsKK+WuueiJsiA8IHlvdXNob2t1XCA7CivnspfliKnnm4ogPCBhcmFyaWVraVwgOwor5LuL6YyvIDwga2Fpc2hha3VcIDsKK+S6iOeul+WkliA8IHlvc2FuZ2FpXCA7CivpnZ7msJHkuLsgPCBoaW1pbnNodVwgOwor5bWM5YWlIDwga2FuJydueXV1XCA7Civou5LliKUgPCBrZW5iZXRzdVwgOwor5YG05b25IDwgc29iYXlha3VcIDsKK+i7ouWAnyA8IHRlbnNoYWt1XCA7Civlj5fnm4rogIUgPCBqdWVraXNoYVwgOwor6ISK57SiIDwgc2VraXNha3VcIDsKK+WuieWumuadvyA8IGFudGVpYmFuXCA7CivoqJjlv7XppKggPCBraW5lbmthblwgOwor5LiA5q2p5LiA5q2pIDwgaXBwb2lwcG9cIDsKK+Wkp+Wuh+WumSA8IGRhaXVjaHV1XCA7CivosqHplqUgPCB6YWliYXRzdVwgOwor5Lqc5oCl5oCnIDwgYWt5dXVzZWlcIDsKK+acqOm8oCA8IGtpbmV6dW1pXCA7CivpqqjmipggPCBrb3NzZXRzdVwgOwor6ISa56uLIDwga3lhdGF0c3VcIDsKK+WDu+S6iyA8IGhpZ2Fnb3RvXCA7CivoqIjnrpfnsL8gPCBrZWlzYW5ib1wgOwor55Wl5paHIDwgcnlha3VidW5cIDsKK+i7kuWFiCA8IG5va2lzYWtpXCA7CivpnZnmraLnlLsgPCBzZWlzaGlnYVwgOwor5LiN5pW05ZCIIDwgZnVzZWlnb3VcIDsKK+S6jOmHjemhjiA8IG5panV1YWdvXCA7CivliLblvqHmqZ8gPCBzZWlneW9raVwgOwor5qC557W2IDwga29uemV0c3VcIDsKK+aenemBkyA8IGVkYW1pY2hpXCA7CivkuoznrYnliIYgPCBuaXRvdWJ1blwgOwor5a6/6ICBIDwgc2h1a3Vyb3VcIDsKK+iyuOmHkSA8IGthc2hpa2luXCA7CivlubPngonms5UgPCBoZWlyb2hvdVwgOwor6auY5a+GIDwga291bWl0c3VcIDsKK+S6lOeonOWgoSA8IGdvcnlvdWhvXCA7CivmnKrmnaXlg48gPCBtaXJhaXpvdVwgOwor6Laz5rip5ZmoIDwgc29rdW9ua2lcIDsKK+S6jOetieWFtSA8IG5pdG91aGVpXCA7CivosrTml4/pmaIgPCBraXpva3VpblwgOwor5LuP6YGTIDwgYnV0c3Vkb3VcIDsKK+S9leiAhSA8IG5hbmltb25vXCA7Civoia/kv5cgPCByeW91em9rdVwgOwor6KiY5Y+36KuWIDwga2lnb3Vyb25cIDsKK+S9j+iBtyA8IGp1dXNob2t1XCA7Civmn5TooZMgPCBqdXVqdXRzdVwgOwor55Sf5rC0IDwgbmFtYW1penVcIDsKK+WQjeipnuWPpSA8IG1laXNoaWt1XCA7Civog7jns54gPCBtdW5la3Vzb1wgOwor5a6i6Ii5IDwga3lha3VzZW5cIDsKK+iAgemqqCA8IHJvdWtvdHN1XCA7CivmnpXovrogPCBtYWt1cmFiZVwgOwor5bCk54mpIDwgeXV1YnV0c3VcIDsKK+S8nemmrOiIuSA8IHRlbm1hc2VuXCA7CivkubHpq6ogPCByYW5wYXRzdVwgOwor6YqA5rKz57O7IDwgZ2luZ2FrZWlcIDsKK+S9k+e9sCA8IHRhaWJhdHN1XCA7Civkurrph4wgPCBoaXRvemF0b1wgOwor5a6i6IazIDwga3lha3V6ZW5cIDsKK+Wkp+WuruWPuCA8IGRhaWd1dWppXCA7CivogonopqogPCBuaWt1c2hpblwgOwor5rWB6KGM55uuIDwgaGF5YXJpbWVcIDsKK+mBoOimluecvCA8IGVuc2hpZ2FuXCA7Civlr4znsaQgPCB0b21pa3VqaVwgOwor5Y215bej54KOIDwgcmFuc291ZW5cIDsKK+WBteWvnyA8IHRlaXNhdHN1XCA7Civog73nrYYgPCBub3VoaXRzdVwgOwor5Lm+6aKoIDwga2FyYWthemVcIDsKK+mrquWeiyA8IGthbWlnYXRhXCA7CivmnKrkuqHkurogPCBtaWJvdWppblwgOwor5byV55So56ymIDwgaW4nJ3lvdWZ1XCA7Civoia/kuYUgPCByeW91a3l1dVwgOwor5p2R6ZuoIDwgbXVyYXNhbWVcIDsKK+aflOmBk+WutiA8IGp1dWRvdWthXCA7Civou5LkuKYgPCBub2tpbmFtaVwgOwor5LiN5Z2H6KGhIDwgZnVraW5rb3VcIDsKK+i7kuS4iCA8IG5va2l0YWtlXCA7Civlr5Lnq7kgPCBrYW5jaGlrdVwgOwor5pyI6b2iIDwgZ2V0c3VyZWlcIDsKK+WvvuipseiAhSA8IHRhaXdhc2hhXCA7Civot7PmooEgPCBjaG91cnlvdVwgOwor5a+S56m6IDwgc2FtdXpvcmFcIDsKK+ion+WLmemDqCA8IHNob3VtdWJ1XCA7Civku7Dop5IgPCBneW91a2FrdVwgOwor5b6h6ZyK5YmNIDwgZ29yZWl6ZW5cIDsKK+WFjOaPm+WIuCA8IGRha2Fua2VuXCA7CivkuI3mkYLnlJ8gPCBmdXNlc3NlaVwgOwor5qW95YqHIDwgZ2FrdWdla2lcIDsKK+aXpeacrOmiqCA8IG5paG9uZnV1XCA7Civpo4Tpo4QgPCBoeW91aHlvdVwgOwor5pyo6aqoIDwgbW9ra290c3VcIDsKK+WAmeijnOWcsCA8IGtvdWhvY2hpXCA7Civnjonpq4QgPCBneW9rdXp1aVwgOwor56CC6Ziy5p6XIDwgc2Fib3VyaW5cIDsKK+S/l+a1gSA8IHpva3VyeXV1XCA7CivkuIvlo6vlrpggPCBrYXNoaWthblwgOwor5biC6K2w5LyaIDwgc2hpZ2lrYWlcIDsKK+S4gOaZguacnyA8IGljaGlqaWtpXCA7CivlgaXlrp8gPCBrZW5qaXRzdVwgOwor6Ieq6LKg5b+DIDwgamlmdXNoaW5cIDsKK+ixqumbqiA8IGdvdXNldHN1XCA7Civnm7jlkIjlgpggPCBhaWFpZ2FzYVwgOwor6IG06KaaIDwgY2hvdWtha3VcIDsKK+ismeitsuiqniA8IGtlbmpvdWdvXCA7Civnj43ph40gPCBjaGluY2hvdVwgOwor5om25oyB57GzIDwgZnVjaGltYWlcIDsKK+WGjei1t+WLlSA8IHNhaWtpZG91XCA7CivnjaPljLvlraYgPCBqdXVpZ2FrdVwgOwor6Z2e5bi455SoIDwgaGlqb3V5b3VcIDsKK+egtOW7ieaBpSA8IGhhcmVuY2hpXCA7Civlh7rmlL7poYwgPCBkZWhvdWRhaVwgOwor5a6J5a6a5oSfIDwgYW50ZWlrYW5cIDsKK+WBtOWjgSA8IHNva3VoZWtpXCA7CivmpJzlsL8gPCBrZW4nJ255b3VcIDsKK+mkiuiAgemZoiA8IHlvdXJvdWluXCA7CivkubHpm5EgPCByYW56YXRzdVwgOwor5bGe5pybIDwgc2hva3Vib3VcIDsKK+mHjuiJr+eMqyA8IG5vcmFuZWtvXCA7CivkuK3pu5IgPCBuYWthZ3Vyb1wgOwor5pyq5LiB5bm0IDwgbWl0ZWluZW5cIDsKK+S6uui2syA8IGhpdG9hc2hpXCA7Civlr77niakgPCB0YWlidXRzdVwgOwor5a6J5a6a5oCnIDwgYW50ZWlzZWlcIDsKK+eOiemhlCA8IGd5b2t1Z2FuXCA7Civpoq/poq8gPCBzYXNzYXRzdVwgOwor5LuP6KqsIDwgYnVzc2V0c3VcIDsKK+WztuWPsCA8IHNoaW1hZGFpXCA7Civku4foro4gPCBreXV1c2h1dVwgOwor5L2155m6IDwgaGVpaGF0c3VcIDsKK+mnkOeVmSA8IGNodXVyeXV1XCA7CivnlaXluL0gPCByeWFrdWJvdVwgOwor5rG6566X5pyfIDwga2Vzc2Fua2lcIDsKK+acnemjryA8IGFzYW1lc2hpXCA7Civoh6rkuZfmoLkgPCBqaWpvdWtvblwgOwor5YWo6I236YeNIDwgemVua2FqdXVcIDsKK+S9leeoiyA8IG5hbmlob2RvXCA7CivlpaXlvqHmrr8gPCBva3Vnb3RlblwgOwor6aKo6aOfIDwgZnV1c2hva3VcIDsKK+eVs+WxiyA8IHRhdGFtaXlhXCA7Civoo73pgKDmiYAgPCBzZWl6b3Vqb1wgOwor5YG05ZynIDwgc29rdWF0c3VcIDsKK+i0lue9qiA8IHNob2t1emFpXCA7Civlv6vnlLflhZAgPCBrYWlkYW5qaVwgOwor6IKp6IKYIDwga2F0YWhpamlcIDsKK+aXuuaWh+ekviA8IG91YnVuc2hhXCA7Civmn5PoibIgPCBzZW5zaG9rdVwgOwor6LaF6Z+z5rOiIDwgY2hvdW9ucGFcIDsKK+WuiOitt+mciiA8IHNodWdvcmVpXCA7CivnhKHmnJ/lu7bmnJ8gPCBtdWtpZW5raVwgOwor5pyo5pu+5bedIDwga2lzb2dhd2FcIDsKK+W8semfs+WZqCA8IGpha3VvbmtpXCA7CivmnZHph4wgPCBtdXJhemF0b1wgOwor5LuZ6KGTIDwgc2VuanV0c3VcIDsKK+S/l+alvSA8IHpva3VnYWt1XCA7CivpppbnrYsgPCBrdWJpc3VqaVwgOwor5L2H56uLIDwgY2hvcml0c3VcIDsKK+WvhuedgCA8IG1pdGNoYWt1XCA7Civmsbrnrpfml6UgPCBrZXNzYW5iaVwgOwor6IWw5p2/IDwga29zaGlpdGFcIDsKK+iCoeiCiSA8IG1vbW9uaWt1XCA7CivohLHmvI8gPCBkYXRzdXJvdVwgOwor6Ieq5Li75qipIDwgamlzaHVrZW5cIDsKK+iDveW8geWutiA8IG5vdWJlbmthXCA7Civlj6/og73mgKcgPCBrYW5vdXNlaVwgOwor5aSn5pem6YKjIDwgb29kYW4nJ25hXCA7CivkuLjpq7cgPCBtYXJ1bWFnZVwgOwor5Y2w5bqm5pWZIDwgaW5kb2t5b3VcIDsKK+WxiOabsiA8IGt1a2t5b2t1XCA7CivoiLnkurogPCBmdW5hYml0b1wgOwor6aqo5aSqIDwgaG9uZWJ1dG9cIDsKK+mrmOWNkiA8IGtvdXNvdHN1XCA7CivnhKHkurrls7YgPCBtdWppbnRvdVwgOwor5bCx5qWtIDwgc2h1dWd5b3VcIDsKK+mjn+mBkyA8IHNob2t1ZG91XCA7CivnnJ/kvLzkuosgPCBtYW5lZ290b1wgOwor6LC36aKoIDwgdGFuaWthemVcIDsKK+ishOWGmeWZqCA8IHRvdXNoYWtpXCA7Civku67okbogPCBrYXJpYnVraVwgOwor6aKo6ZuqIDwgZnV1c2V0c3VcIDsKK+aflOiCjCA8IHlhd2FoYWRhXCA7Civpp5Dni6wgPCBjaHV1ZG9rdVwgOwor5biw6YKE6ICFIDwga2lrYW5zaGFcIDsKK+eOiemWgCA8IGd5b2t1bW9uXCA7CivliqnnlKPpmaIgPCBqb3NhbicnaW5cIDsKK+aciOmjnyA8IGdlc3Nob2t1XCA7CivlpbPlupflk6EgPCBqb3RlbicnaW5cIDsKK+agl+efsyA8IGt1cmlpc2hpXCA7CivlsI/ms6IgPCBzYXphbmFtaVwgOwor6Ju46YOo5bGLIDwgdGFrb2JleWFcIDsKK+S6iOeul+S4iiA8IHlvc2Fuam91XCA7Civlrprnq4sgPCB0ZWlyaXRzdVwgOwor5Li46aaWIDwgbWFydWt1YmlcIDsKK+S4remrmCA8IG5ha2FkYWthXCA7CivlrprmmYLliLYgPCB0ZWlqaXNlaVwgOwor5a6Y56uLIDwga2Fucml0c3VcIDsKK+iDveeOhyA8IG5vdXJpdHN1XCA7CivmraPlvKbms6IgPCBzZWlnZW5oYVwgOwor5L2Z5omA5LqLIDwgeW9zb2dvdG9cIDsKK+i2s+alrSA8IGFzaGl3YXphXCA7CivmnKjpkLggPCBib2t1dGFrdVwgOwor5Li76aOfIDwgc2h1c2hva3VcIDsKK+S/l+absiA8IHpva2t5b2t1XCA7CivkvZznl4UgPCBzYWt1YnlvdVwgOwor5L2V55m+IDwgbmFuYnlha3VcIDsKK+S7geihkyA8IGppbmp1dHN1XCA7Civppqzpub/ogIUgPCBiYWthbW9ub1wgOwor5qGc5rmvIDwgc2FrdXJheXVcIDsKK+aknOWcpyA8IGtlbicnYXRzdVwgOwor5YSA56S85YW1IDwgZ2lyZWloZWlcIDsKK+S4gOm9oyA8IGhpdG9rb21hXCA7CivotrPmorAgPCBhc2hpa2FzZVwgOwor5pyI6Z2iIDwgZ2V0c3VtZW5cIDsKK+aXpeacrOmFkiA8IG5paG9uc2h1XCA7CivlsL3ml6UgPCBqaW5qaXRzdVwgOwor5bCR5qyyIDwgc2hvdXlva3VcIDsKK+eUu+W8lSA8IGtha3ViaWtpXCA7Civml6nnlKPlhZAgPCBzb3V6YW5qaVwgOwor55WZ5a2mIDwgcnl1dWdha3VcIDsKK+Wtpue/kiA8IGdha3VzaHV1XCA7Civot4vmlocgPCBiYXRzdWJ1blwgOwor5bGx5b2mIDwgeWFtYWJpa29cIDsKK+WxseW9oiA8IHlhbWFnYXRhXCA7Civnl4XkuK0gPCBieW91Y2h1dVwgOwor5o6h57a/5ZmoIDwgc2FpbWVua2lcIDsKK+WBtuWKmyA8IGd1dXJ5b2t1XCA7Civoi7HpgKPpgqYgPCBlaXJlbnBvdVwgOwor5Lu76IG3IDwgbmluc2hva3VcIDsKK+iEseavmyA8IGRhdHN1bW91XCA7Civml6nnlJ/lhZAgPCBzb3VzZWlqaVwgOwor5pyo6YuPIDwga2liYXNhbWlcIDsKK+iyp+ihgCA8IGhpbmtldHN1XCA7CivliqDnm5/ogIUgPCBrYW1laXNoYVwgOwor6ZmN6Zuo6YePIDwga291dXJ5b3VcIDsKK+iAs+iosSA8IG1pbWltb3RvXCA7CivlgpHkurogPCBrZXRzdWppblwgOwor5a++5rG6IDwgdGFpa2V0c3VcIDsKK+WwhOauuiA8IHNoYXNhdHN1XCA7CivorablgpnoiYcgPCBrZWliaXRlaVwgOwor5Ye65p2l5LqLIDwgZGVraWdvdG9cIDsKK+S7pOiJsiA8IHJlaXNob2t1XCA7CivkvqHpm7vlrZAgPCBrYWRlbnNoaVwgOwor5bCB5q66IDwgZnV1c2F0c3VcIDsKK+WPpOeUn+eVjCA8IGtvc2Vpa2FpXCA7CivlsI/mp4wgPCBrb2R6dWNoaVwgOwor5a2m57i+IDwgZ2FrdXNla2lcIDsKK+WxseW3nSA8IHlhbWFnYXdhXCA7Civpq5jkvY4gPCB0YWthaGlrdVwgOwor5Lit6aCDIDwgbmFrYWdvcm9cIDsKK+iBt+iDvSA8IHNob2t1bm91XCA7CivlsYjmipggPCBrdXNzZXRzdVwgOwor5a6f55u0IDwgaml0Y2hva3VcIDsKK+mHkemtmuWxiyA8IGtpbmd5b3lhXCA7CivohbDmipggPCBrb3NoaW9yZVwgOwor5pyo5aSp6JO8IDwgbWF0YXRhYmlcIDsKK+Wun+ebiiA8IGppdHN1ZWtpXCA7CivljYroo7jkvZMgPCBoYW5yYXRhaVwgOwor5a6a552AIDwgdGVpY2hha3VcIDsKK+aigeacqCA8IHJ5b3Vib2t1XCA7Civml6XmnKzou40gPCBuaWhvbmd1blwgOwor5pel5pys6LuKIDwgbmlob25zaGFcIDsKK+WBtuWBtiA8IHRhbWF0YW1hXCA7Civkv67nvoXpgZMgPCBzaHVyYWRvdVwgOwor6Laz5pepIDwgYXNoaWJheWFcIDsKK+WVhuihjOeCuiA8IHNob3Vrb3VpXCA7CivoiIzku6MgPCB6ZXRzdWRhaVwgOwor5p+x55+zIDwgY2h1dXNla2lcIDsKK+WxseWxsSA8IHlhbWF5YW1hXCA7CivmnaHph4zliLYgPCBqb3VyaXNlaVwgOwor5Lit6ZqUIDwgY2h1dWtha3VcIDsKK+WxgOaJgCA8IGt5b2t1c2hvXCA7Civmn5PnrYYgPCBzZW5waXRzdVwgOwor5oqV5b2x5rOVIDwgdG91ZWlob3VcIDsKK+S/oeaGkSA8IHNoaW5weW91XCA7CivmoZ/mqYsgPCBzYW5iYXNoaVwgOwor6IKJ57SwIDwgbmlrdWJvc29cIDsKK+WuoueUqCA8IGt5YWt1eW91XCA7CivkuK3pmZAgPCBuYWthZ2lyaVwgOwor5pyJ5bC+6aGeIDwgeXV1YmlydWlcIDsKK+WxseWvuiA8IHlhbWFkZXJhXCA7CivmrKfnvoXlt7QgPCB5b3Vyb3BwYVwgOwor5LiH6aqoIDwgYmFua290c3VcIDsKK+S4lumWk+S9kyA8IHNla2VudGVpXCA7CivkvIrpgZTlt7sgPCBkYXRlbWFraVwgOwor5L+u5b6pIDwgc2h1dWZ1a3VcIDsKK+S7j+iJpiA8IGZ1dHN1a2FuXCA7Civlrp/nlKggPCBqaXRzdXlvdVwgOwor5L+u5b6XIDwgc2h1dXRva3VcIDsKK+iDhueVpSA8IHRhbnJ5YWt1XCA7CivmsLTliKnmqKkgPCBzdWlyaWtlblwgOwor5Y+y5a2m5a62IDwgc2hpZ2Fra2FcIDsKK+S4uOmRvyA8IG1hcnVub21pXCA7CivlsbHlroggPCB5YW1hbW9yaVwgOwor6Laz5pG6IDwgYXNoaXp1cmlcIDsKK+mjn+iogCA8IHNob2t1Z2VuXCA7CivntI3ku5jph5EgPCBub3VmdWtpblwgOwor6JWO6bqm5q67IDwgc29iYWdhcmFcIDsKK+S6jOiogCA8IGZ1dGFrb3RvXCA7CivkvZPnhrEgPCB0YWluZXRzdVwgOwor6LWk6bOl6LWk6IW5IDwgYWtha29ra29cIDsKK+aWueWQkeiItSA8IGhvdWtvdWRhXCA7Civku67ntrQgPCBrYXJpdG9qaVwgOwor5aSP6Iez57eaIDwgZ2VzaGlzZW5cIDsKK+S4jeWdh+etiSA8IGZ1a2ludG91XCA7CivlroflrpnluL0gPCB1Y2h1dWJvdVwgOwor54Sh6aC85ryiIDwgYnVyYWlrYW5cIDsKK+WxiOW+kyA8IGt1dHN1anV1XCA7Civlrp/nj74gPCBqaXRzdWdlblwgOwor5r+D5bqm6KiIIDwgbm91ZG9rZWlcIDsKK+ePvuiBtyA8IGdlbnNob2t1XCA7CivosYHpgZQgPCBrYXR0YXRzdVwgOwor5L+h5b+1IDwgc2hpbicnbmVuXCA7CivpoY7pqqggPCBnYWtrb3RzdVwgOwor5LiA5pio5bm0IDwgb3RvdG9zaGlcIDsKK+acque1jOmokyA8IG1pa2Vpa2VuXCA7CivkuInpo58gPCBzYW5zaG9rdVwgOwor5pyd5a+d5Z2KIDwgYXNhbmVib3VcIDsKK+S6huimmiA8IHJ5b3VrYWt1XCA7CivnvqTpm7IgPCBtdXJha3Vtb1wgOwor5pyI6YeRIDwgZ2V0c3VraW5cIDsKK+i1pOayiCA8IHNla2ljaGluXCA7CivkuIvpoY4gPCBzaGl0YWFnb1wgOwor5bGx5aerIDwgeWFtYWhpbWVcIDsKK+iEguaxlyA8IGFidXJhYXNlXCA7CivohbDlvIEgPCBrb3NoaWJlblwgOwor5a6d546JIDwgaG91Z3lva3VcIDsKK+mBjuWkp+imliA8IGthZGFpc2hpXCA7CivlsJHmlbUgPCBzaG91dGVraVwgOwor57+h57+g6ImyIDwgaGlzdWlpcm9cIDsKK+mpjeWwhiA8IGd5b3VzaG91XCA7CivkuJjpmbUgPCBreXV1cnlvdVwgOwor55Wl5ZCNIDwgcnlha3VtZWlcIDsKK+Wcn+agueaApyA8IGRva29uam91XCA7CivnlaXlj7cgPCByeWFrdWdvdVwgOwor55Wl5Y+yIDwgcnlha3VzaGlcIDsKK+eVquWNkiA8IGJhbnNvdHN1XCA7Civnt4/mqKHmp5ggPCBzb3Vtb3lvdVwgOwor55Wl5Y+WIDwgcnlha3VzaHVcIDsKK+ioiOeul+apnyA8IGtlaXNhbmtpXCA7CivlvIHlvZPlsYsgPCBiZW50b3V5YVwgOwor5Luj5omT6ICFIDwgZGFpZGFzaGFcIDsKK+Wun+eKtiA8IGppdHN1am91XCA7CivlgJ/lnLAgPCBzaGFrdWNoaVwgOwor5L215q66IDwgaGVpc2F0c3VcIDsKK+iFsOW4ryA8IGtvc2hpb2JpXCA7CivkuIrpnbQgPCB1d2FndXRzdVwgOwor6Iac5aOBIDwgbWFrdWhla2lcIDsKK+miqOWqkuiKsSA8IGZ1dWJhaWthXCA7CivohLHmlocgPCBkYXRzdWJ1blwgOwor5a2Y56uLIDwgc29ucml0c3VcIDsKK+eEoeippumokyA8IG11c2hpa2VuXCA7Civlrp3niakgPCBob3Vtb3RzdVwgOwor6Ya46YCg6YWiIDwgam91em91c3VcIDsKK+S/l+W9oiA8IHpva3VneW91XCA7Civlj43li5XmtL4gPCBoYW5kb3VoYVwgOwor57WM5riI5a62IDwga2VpemFpa2FcIDsKK+a3i+W3tOiFuiA8IHJpbnBhc2VuXCA7CivkurrohpogPCBoaXRvaGFkYVwgOwor6aKo6LazIDwga2F6YWFzaGlcIDsKK+S5vuijgiA8IGthbnJldHN1XCA7CivmoY7moo8gPCBzaGlra29rdVwgOwor5LiA6aCDIDwgaGl0b2tvcm9cIDsKK+iHquS4u+aApyA8IGppc2h1c2VpXCA7Civnv4zpgLEgPCB5b2t1c2h1dVwgOwor6LaK5aSp5qW9IDwgZXRlbnJha3VcIDsKK+aoqeWIqemHkSA8IGtlbnJpa2luXCA7Civlr77ml6UgPCB0YWluaWNoaVwgOwor5p6g57WEIDwgd2FrdWd1bWlcIDsKK+aFouaAp+WMliA8IG1hbnNlaWthXCA7Civnv7voqLMgPCBob24nJ3lha3VcIDsKK+S6uuiEiCA8IGppbm15YWt1XCA7CivmjojkubPmnJ8gPCBqdW55dXVraVwgOwor5bCC6ZaA6KqeIDwgc2VubW9uZ29cIDsKK+WxseWfjiA8IHlhbWFqaXJvXCA7CivliY3oiJ7lj7AgPCBtYWVidXRhaVwgOwor5aSp54i+5LmO5rOiIDwgdGVuaXdvaGFcIDsKK+iEmuacrCA8IGt5YWt1aG9uXCA7Civpgbjnp5HnlJ8gPCBzZW5rYXNlaVwgOwor5p2x6IqdIDwgdG91c2hpYmFcIDsKK+i1pOaoqyA8IGFrYWdhc2hpXCA7CivohIrmpI4gPCBzZWtpdHN1aVwgOwor5a6f6Zqb5a62IDwgamlzc2Fpa2FcIDsKK+aftOeKrCA8IHNoaWJhaW51XCA7Civkv67lraYgPCBzaHV1Z2FrdVwgOwor5L+K5b6zIDwgc2h1bnRva3VcIDsKK+S4gOaYvOWknCA8IGl0Y2h1dXlhXCA7CivmnIjovKogPCBnZXRzdXJpblwgOwor5Luy56eLIDwgY2h1dXNodXVcIDsKK+S4u+i/sCA8IHNodWp1dHN1XCA7CivooYborbDpmaIgPCBzaHV1Z2lpblwgOwor5Lq66IKJIDwgamluJyduaWt1XCA7CivlqpLphYwgPCBiYWlzaGFrdVwgOwor5pel5pys6KO9IDwgbmlob25zZWlcIDsKK+S+i+aciCA8IHJlaWdldHN1XCA7CivnlJ/lqJggPCBraW11c3VtZVwgOwor5Y2w5Yik5birIDwgaW5iYW5zaGlcIDsKK+S7o+ethiA8IGRhaWhpdHN1XCA7Civlr4bmrrogPCBtaXNzYXRzdVwgOwor5pq06aOfIDwgYm91c2hva3VcIDsKK+WxseWbvSA8IHlhbWFndW5pXCA7CivogbfnqK4gPCBzaG9rdXNodVwgOwor5LiA6ZqbIDwgaGl0b2tpd2FcIDsKK+Wwj+eBq+WZqCA8IHNob3VrYWtpXCA7CivnhKHpoqjluK8gPCBtdWZ1dXRhaVwgOwor5LiA6ZqFIDwgaGl0b3N1bWlcIDsKK+WwseW6iiA8IHNodXVzaG91XCA7CivkuIjplbcgPCB0YWtlbmFnYVwgOwor6aCt6auqIDwgdG91aGF0c3VcIDsKK+eMpembkSA8IHdhaXphdHN1XCA7CivotrPlvaIgPCBhc2hpZ2F0YVwgOwor6LWw5p+757eaIDwgc291c2FzZW5cIDsKK+WuieeJqSA8IHlhc3Vtb25vXCA7CivnqbrmiYvlrrYgPCBrYXJhdGVrYVwgOwor5aSp5LqV5YCkIDwgdGVuam91bmVcIDsKK+WvkualtSA8IGthbmt5b2t1XCA7CivotrPlvLEgPCBhc2hpeW93YVwgOwor6KiI566X5pyoIDwga2Vpc2FuZ2lcIDsKK+WAmeWTiSA8IHNvdXJvdXlhXCA7Civkvovml6UgPCByZWlqaXRzdVwgOwor5Lit6YCfIDwgY2h1dXNva3VcIDsKK+aOoeeCreaJgCA8IHNhaXRhbmpvXCA7CivlvIHli5nlrpggPCBiZW5tdWthblwgOwor5Y+X55uK5qipIDwganVla2lrZW5cIDsKK+eUn+WjgSA8IG5hbWFrYWJlXCA7CivliqDlt6XntJkgPCBrYWtvdXNoaVwgOwor6IKJ55qEIDwgbmlrdXRla2lcIDsKK+iDuOakjiA8IGt5b3V0c3VpXCA7CivmlZnli5noqrIgPCBreW91bXVrYVwgOwor5qGC5pyIIDwga2VpZ2V0c3VcIDsKK+WupOa4qSA8IHNoaXRzdW9uXCA7CivpgKPli5XmqZ8gPCByZW5kb3VraVwgOwor5LuZ56qfIDwgc2Vua3V0c3VcIDsKK+Wvp+aXpSA8IG5laWppdHN1XCA7CivorbDkuovpjLIgPCBnaWppcm9rdVwgOwor5YaN5p2l5bm0IDwgc2FyYWluZW5cIDsKK+S4gOaYqOWknCA8IGlzc2FrdXlhXCA7Civnlarku5ggPCBiYW5kenVrZVwgOwor5a6H5a6Z5aG1IDwgdWNodXVqaW5cIDsKK+awtOmBk+WxiyA8IHN1aWRvdXlhXCA7CivotaTmnb4gPCBha2FtYXRzdVwgOwor55Wl5L2TIDwgcnlha3V0YWlcIDsKK+aiheW5siA8IHVtZWJvc2hpXCA7Civohbnlo4EgPCBmdWt1aGVraVwgOwor5Lit6Lu4IDwgY2h1dWppa3VcIDsKK+eVpeS8nSA8IHJ5YWt1ZGVuXCA7Civohbjlo4EgPCBjaG91aGVraVwgOwor6LGh6JmrIDwgem91bXVzaGlcIDsKK+ael+eriyA8IHJpbnJpdHN1XCA7Civph43ou4zmnaEgPCBqdXVraWpvdVwgOwor6LOq55aRIDwgc2hpdHN1Z2lcIDsKK+WxseWQuSA8IHlhbWFidWtpXCA7CivouI/liIcgPCBmdW1pa2lyaVwgOwor6YGV57SE6YeRIDwgaXlha3VraW5cIDsKK+adj+iMuCA8IGFuenV0YWtlXCA7CivnlJ/lm70gPCBzaG91a29rdVwgOwor6bia6bWh55eFIDwgb3VtdWJ5b3VcIDsKK+adn+iEqSA8IHNva3VzaHV1XCA7CivljZjmgKfoirEgPCB0YW5zZWlrYVwgOwor5a6/5qWtIDwgc2h1a3Vnb3VcIDsKK+azqOaEj+eCuSA8IGNodXVpdGVuXCA7CivluLjlgpnph5EgPCBqb3ViaWtpblwgOwor55Sz5ZGKIDwgc2hpbmtva3VcIDsKK+WvkuaciCA8IGthbmdldHN1XCA7CivmnInorZggPCB5dXVzaGlraVwgOwor6Lui56e75oCnIDwgdGVuJydpc2VpXCA7CivppIXntrIgPCBtb2NoaWFtaVwgOwor5L2V5qeYIDwgbmFuaXNhbWFcIDsKK+e/geiynSA8IG9raW5hZ2FpXCA7CivmtLvngavlsbEgPCBrYWtrYXphblwgOwor5a+M5pytIDwgdG9taWZ1ZGFcIDsKK+WxgOWkliA8IGt5b2t1Z2FpXCA7Civpo5/ohrMgPCBzaG9rdXplblwgOwor5p2J6IuUIDwgc3VnaWdva2VcIDsKK+WvhuaelyA8IG1pdHN1cmluXCA7CivlgInljZIgPCBzb3Vzb3RzdVwgOwor5a6i5q6/IDwga3lha3VkZW5cIDsKK+S4pui2syA8IG5hbWlhc2hpXCA7CivliqDlt6XnqI4gPCBrYWtvdXplaVwgOwor55WR5L2cIDwgaGF0YXNha3VcIDsKK+eTpuWxiyA8IGthd2FyYXlhXCA7CivlrqLmrbsgPCBreWFrdXNoaVwgOwor55S35YmNIDwgb3Rva29tYWVcIDsKK+WxgOWgsSA8IGt5b2t1aG91XCA7CivpobDouZkgPCBoaW5zaHVrdVwgOwor576O57Kn6ZmiIDwgYmlzaG91aW5cIDsKK+WuruanmCA8IG1peWFzYW1hXCA7CivkvZzmn4QgPCBzYWt1Z2FyYVwgOwor54yu6YWMIDwga2Vuc2hha3VcIDsKK+iMtueuquespSA8IGNoYWRhbnN1XCA7Civpo5/ogrIgPCBzaG9rdWlrdVwgOwor5Zm054Gr5bGxIDwgZnVua2F6YW5cIDsKK+WcsOaWueaZgiA8IGNoaWhvdWppXCA7CivkuKHotrMgPCByeW91c29rdVwgOwor5oKq6aST6ay8IDwgd2FydWdha2lcIDsKK+WNmuaEm+WutiA8IGhha3VhaWthXCA7CivkuozogqEgPCBmdXRhbWF0YVwgOwor5LiK6YGUIDwgam91dGF0c3VcIDsKK+aDheWgsemDqCA8IGpvdWhvdWJ1XCA7Civohp3lhYMgPCBoaXphbW90b1wgOwor5a6/5pybIDwgc2h1a3Vib3VcIDsKK+aXpeacrOiMtiA8IG5paG9uY2hhXCA7CivohLHluL0gPCBkYXRzdWJvdVwgOwor55Sz5Ye6IDwgbW91c2hpZGVcIDsKK+afhOeJqSA8IGdhcmFtb25vXCA7CivkuIrov7AgPCBqb3VqdXRzdVwgOwor5L2c5puyIDwgc2Fra3lva3VcIDsKK+iAs+ezniA8IG1pbWlrdXNvXCA7CivogIHoi6UgPCByb3VueWFrdVwgOwor5YWJ6KGM5beuIDwga291a291c2FcIDsKK+WkluiAs+mBkyA8IGdhaWppZG91XCA7CivogonniZsgPCBuaWt1Z3l1dVwgOwor5bGx5YWDIDwgeWFtYW1vdG9cIDsKK+WcsOmch+azoiA8IGppc2hpbmhhXCA7CivkuInloYHmiZMgPCBzYW5ydWlkYVwgOwor5p2f57ibIDwgc29rdWJha3VcIDsKK+WLvuW8leeKtiA8IGtvdWluam91XCA7CivlnLDpm7fmupAgPCBqaXJhaWdlblwgOwor6Zu75qmf5a2QIDwgZGVua2lzaGlcIDsKK+acq+iRiSA8IG1hdHN1eW91XCA7CivluLjlgpnou40gPCBqb3ViaWd1blwgOwor5L2V5pyIIDwgbmFuZ2F0c3VcIDsKK+ixmuiNiSA8IGJ1dGFrdXNhXCA7CivlsJHlsJEgPCBzaG91c2hvdVwgOwor5bCP5Z6L5YyWIDwga29nYXRha2FcIDsKK+WIt+avm+WFiCA8IGhha2VzYWtpXCA7Civmmpfpl4cgPCBrdXJheWFtaVwgOwor546J6JGxIDwgdGFtYW5lZ2lcIDsKK+mdkuWGhemanCA8IGFvc29rb2hpXCA7CivoqZXorbDlk6EgPCBoeW91Z2lpblwgOwor5Lmz6IetIDwgbnl1dXNodXVcIDsKK+eUmOWPoyA8IGFtYWt1Y2hpXCA7CivlhazliIbmr40gPCBrb3VidW5ib1wgOwor5pyo6I+fIDwgbWltaXp1a3VcIDsKK+WPr+iBtOW6piA8IGthY2hvdWRvXCA7CivnhKHmnaHku7YgPCBtdWpvdWtlblwgOwor55+i6aOb55m9IDwgeWFnYXN1cmlcIDsKK+aJi+iFleWutiA8IHNodXdhbmthXCA7CivnlKPliKUgPCBzYW5iZXRzdVwgOwor5qSc5LqL5q2jIDwga2VuamlzZWlcIDsKK+S+v+WjuiA8IGJlbnRzdWJvXCA7CivkuIDovJsgPCBpY2hpcnlvdVwgOwor6LOc54mpIDwgdGFtYW1vbm9cIDsKK+WBveWWhOiAhSA8IGdpemVuc2hhXCA7CivkvJ3lsI7luqYgPCBkZW5kb3Vkb1wgOwor5YWs5Yuf5YK1IDwga291Ym9zYWlcIDsKK+mmluaetyA8IGt1YmlrYXNlXCA7CivlrZDniLUgPCBzaGlzaGFrdVwgOwor5L6L5byPIDwgcmVpc2hpa2lcIDsKK+ePvueUnyA8IGdlbicnbmFtYVwgOwor5pyo6Iu6IDwga2lpY2hpZ29cIDsKK+apn+mWoumKgyA8IGtpa2FuanV1XCA7Civniqzpt7IgPCBpbnV3YXNoaVwgOwor5pys6ImyIDwgaG9uc2hva3VcIDsKK+S5seiEiCA8IHJhbm15YWt1XCA7Civlr4bmjqUgPCBtaXNzZXRzdVwgOwor5LiA6LqNIDwgaWNoaXlha3VcIDsKK+WxseS6uiA8IHlhbWFiaXRvXCA7CivohIfmga8gPCBreW91c29rdVwgOwor57696KGjIDwgaGFnb3JvbW9cIDsKK+acjeiWrCA8IGZ1a3V5YWt1XCA7Civmrabli4fkvJ0gPCBidXl1dWRlblwgOwor5qK15Yi5IDwgYm9uc2V0c3VcIDsKK+S8j+a1gSA8IGZ1a3VyeXV1XCA7CivliLblvqHkuIsgPCBzZWlneW9rYVwgOwor5a++5bGAIDwgdGFpa3lva3VcIDsKK+iTruiPr+iNiSA8IHJlbmdlc291XCA7CivloLHnn6XmqZ8gPCBob3VjaGlraVwgOwor54yr6LazIDwgbmVrb2FzaGlcIDsKK+Wwj+WomCA8IGtvbXVzdW1lXCA7Civku6PniakgPCBkYWlidXRzdVwgOwor5aer6bGSIDwgaGltZW1hc3VcIDsKK+acrOiFsCA8IGhvbmdvc2hpXCA7CivohbnliIcgPCBoYXJha2lyaVwgOwor5pmp6aOvIDwgYmFubWVzaGlcIDsKK+e/vOe/vCA8IHlva3V5b2t1XCA7CivnlJ/lgrcgPCBuYW1ha2l6dVwgOwor6LGa6IKJIDwgYnV0YW5pa3VcIDsKK+Wkj+iHs+eCuSA8IGdlc2hpdGVuXCA7CivpoK3ph5EgPCBhdGFtYWtpblwgOwor5q2m6Iq46ICFIDwgYnVnZWlzaGFcIDsKK+e+juizqiA8IGJpc2hpdHN1XCA7CivotbDppqznga8gPCBzb3VtYXRvdVwgOwor5bGK5Ye6IDwgdG9kb2tlZGVcIDsKK+i1pOW/gyA8IHNla2lzaGluXCA7CivnirbpqqggPCBqb3Vrb3RzdVwgOwor57+g6ImyIDwgc3Vpc2hva3VcIDsKK+S4oeiiliA8IHJ5b3Vzb2RlXCA7CivkuLjolqwgPCBnYW4nJ3lha3VcIDsKK+Wuv+aJgCA8IHNodWt1c2hvXCA7CivmnpzniakgPCBrdWRhbW9ub1wgOwor5LqM6YeN56iOIDwgbmlqdXV6ZWlcIDsKK+ePvueJqSA8IGdlbmJ1dHN1XCA7CivkuIvoq4sgPCBzaGl0YXVrZVwgOwor5pyo6ICzIDwga2lrdXJhZ2VcIDsKK+WwveWKmyA8IGppbnJ5b2t1XCA7CivmraPmr5TkvosgPCBzZWloaXJlaVwgOwor6aCQ6YeR6ICFIDwgeW9raW5zaGFcIDsKK+S6uueVnCA8IGppbmNoaWt1XCA7CivliqDpgJ/luqYgPCBrYXNva3Vkb1wgOwor5q2j5b2T5YyWIDwgc2VpdG91a2FcIDsKK+aJi+S4jei2syA8IHRlYnVzb2t1XCA7CivlgbTngavlsbEgPCBzb2trYXphblwgOwor6YGO5LiN5Y+KIDwga2FmdWt5dXVcIDsKK+auuum8oOWJpCA8IHNhc3NvemFpXCA7CivoqJjlv7Xnpa0gPCBraW5lbnNhaVwgOwor5L+C5ZOhIDwga2FrYXJpaW5cIDsKK+S4jeaJi+mamyA8IGZ1dGVnaXdhXCA7CivkuI3nrYnovrogPCBmdXRvdWhlblwgOwor6KKr5a6z5ZywIDwgaGlnYWljaGlcIDsKK+aXpeacrOe0mSA8IG5paG9uc2hpXCA7CivkuIDoq74gPCBpY2hpZGFrdVwgOwor5r2c5rC05aSrIDwgc2Vuc3VpZnVcIDsKK+W+oemZgOS7jyA8IG9kYWJ1dHN1XCA7CivlrabmrbQgPCBnYWt1cmVraVwgOwor5a6/5oKqIDwgc2h1a3Vha3VcIDsKK+iDuOW6pyA8IG11bmFndXJhXCA7CivkuIDoqq0gPCBpY2hpZG9rdVwgOwor5a+l5a+lIDwgcnlvdXJ5b3VcIDsKK+adpeedgCA8IHJhaWNoYWt1XCA7CivkvJHmpa0gPCBreXV1Z3lvdVwgOwor5aSc5a2m5qChIDwgeWFnYWtrb3VcIDsKK+WGjeS4iuaYoCA8IHNhaWpvdWVpXCA7Civkv67kuoYgPCBzaHV1cnlvdVwgOwor6IO45bmFIDwgbXVuZWhhYmFcIDsKK+WkluadpeiqniA8IGdhaXJhaWdvXCA7Civpm6PnoLToiLkgPCBuYW5wYXNlblwgOwor5LiA6KiAIDwgaGl0b2tvdG9cIDsKK+Wuv+W/lyA8IHNodWt1c2hpXCA7Civpp5LkuIvpp4QgPCBrb21hZ2V0YVwgOwor6IWV5YqbIDwgd2Fucnlva3VcIDsKK+iFueS4rSA8IGZ1a3VjaHV1XCA7CivkuIDop5IgPCBoaXRva2Fkb1wgOwor6IKJ5qyyIDwgbmlrdXlva3VcIDsKK+azqOaEj+abuCA8IGNodXVpc2hvXCA7Civnj6DnjokgPCBzaHVneW9rdVwgOwor5LuA54mpIDwganV1bW90c3VcIDsKK+S6lOmHjeWljyA8IGdvanV1c291XCA7Civogqnmm7ggPCBrYXRhZ2FraVwgOwor5ryr6KuH5a62IDwgbWFuZGFua2FcIDsKK+WAjeeyvuW6piA8IGJhaXNlaWRvXCA7CivntI3ku5jogIUgPCBub3VmdXNoYVwgOwor5a6/5byKIDwgc2h1a3VoZWlcIDsKK+WZtOeBq+WPoyA8IGZ1bmtha291XCA7Civku4vorbfkurogPCBrYWlnb25pblwgOwor5Lmx562GIDwgcmFucGl0c3VcIDsKK+S6uueJqSA8IGppbmJ1dHN1XCA7Civkv5fkv6EgPCB6b2t1c2hpblwgOwor54yu6KGAIDwga2Vua2V0c3VcIDsKK+agvOWuiSA8IGtha3V5YXN1XCA7CivkuKHok4sgPCByeW91YnV0YVwgOwor5a2m5qWtIDwgZ2FrdWd5b3VcIDsKK+S6uueItSA8IGppbnNoYWt1XCA7CivnjKXopLsgPCB3YWlzZXRzdVwgOwor6YGT6K2w5LyaIDwgZG91Z2lrYWlcIDsKK+acieapn+S9kyA8IHl1dWtpdGFpXCA7CivosZrnrrEgPCBidXRhYmFrb1wgOwor5Luu5q6/IDwga2FyaWRvbm9cIDsKK+mjm+efsyA8IHRvYmlpc2hpXCA7CivkubHnq4sgPCByYW5yaXRzdVwgOwor5q2755Sj5YWQIDwgc2hpemFuamlcIDsKK+Wuv+W4syA8IHlhZG9jaG91XCA7Civlr5Llr5IgPCBzYW11emFtdVwgOwor5pyx562GIDwgc2h1aGl0c3VcIDsKK+S4jeimj+WJhyA8IGZ1a2lzb2t1XCA7CivkuLvohIggPCBzaHVteWFrdVwgOwor5r2c5rC05ZmoIDwgc2Vuc3Vpa2lcIDsKK+S7mOa3uyA8IHRzdWtpc29pXCA7CivmnKznr4AgPCBob25idXNoaVwgOwor5puy6Iq4IDwga3lva3VnZWlcIDsKK+acq+evgCA8IG1hc3NldHN1XCA7CivotrPlhYMgPCBhc2hpbW90b1wgOwor6LKh54mpIDwgemFpYnV0c3VcIDsKK+Wwj+WQjSA8IHNob3VteW91XCA7CivmlbTlgpnlt6UgPCBzZWliaWtvdVwgOwor5LmX57WEIDwgbm9yaWt1bWlcIDsKK+WvneWnvyA8IG5lc3VnYXRhXCA7Civmm7PoiLkgPCBoaWtpYnVuZVwgOwor5pyr562GIDwgbWFwcGl0c3VcIDsKK+iNkuatpuiAhSA8IGFyYW11c2hhXCA7CivpgaDlnLDngrkgPCBlbmNoaXRlblwgOwor5pi86aCDIDwgaGlydWdvcm9cIDsKK+eLrOi6qyA8IGRva3VzaGluXCA7CivnkLTmm7IgPCBraW5reW9rdVwgOwor5Lqs54mpIDwga3lvdW1vbm9cIDsKK+afkOaciCA8IGJvdWdldHN1XCA7CivlpJblrZfntJkgPCBnYWlqaXNoaVwgOwor5LuK5pmC5YiGIDwgaW1hamlidW5cIDsKK+ixhueylSA8IG1hbWVrYXN1XCA7CivkuK3ohbkgPCBjaHV1ZnVrdVwgOwor5Y+N5YuV5a62IDwgaGFuZG91a2FcIDsKK+mghumAhiA8IGp1bmd5YWt1XCA7CivlpKfmmabml6UgPCBvb21pc29rYVwgOwor5p2J55quIDwgc3VnaWthd2FcIDsKK+WwhuWPiCA8IGhhdGFtYXRhXCA7CivkuI3nsr7lt6cgPCBmdXNlaWtvdVwgOwor5aSn5LiI5aSrIDwgZGFpam91YnVcIDsKK+iEseWNtCA8IGRha2t5YWt1XCA7Civlr4Llr54gPCBzZWtpYmFrdVwgOwor6aOf55SoIDwgc2hva3V5b3VcIDsKK+afkOaXpSA8IGJvdWppdHN1XCA7Civkv53lhajkvJogPCBob3plbmthaVwgOwor5ZCM57Sg5L2TIDwgZG91c290YWlcIDsKK+aZqemFjCA8IGJhbnNoYWt1XCA7CivkuK3ogokgPCBjaHV1bmlrdVwgOwor5L6d5oCZ6LSU5bGTIDwgZWtvaGlpa2lcIDsKK+iynueDiCA8IHRlaXJldHN1XCA7Civlho3kuqTku5ggPCBzYWlrb3VmdVwgOwor6aOy54mpIDwgbm9taW1vbm9cIDsKK+S4oeiGmiA8IHJ5b3VoYWRhXCA7Civlrp/lvL4gPCBqaXRzdWRhblwgOwor5LiL6JCgIDwgc2hpdGFtb2VcIDsKK+WkqeaXpeazlSA8IHRlbnBpaG91XCA7Civmm7LogIUgPCBrdXNlbW9ub1wgOwor5a6I6K2356WeIDwgc2h1Z29qaW5cIDsKK+ahg+WckiA8IG1vbW96b25vXCA7CivntYTlkIjosrsgPCBrdW1pYWloaVwgOwor6aaW5be7IDwga3ViaW1ha2lcIDsKK+S7j+awlyA8IGhvdG9rZWdpXCA7CivmmKXpoqggPCBoYXJ1a2F6ZVwgOwor6I2S6JWq5ZywIDwga291YnVjaGlcIDsKK+S4puiCiSA8IG5hbWluaWt1XCA7CivmhJvlqpvnnIwgPCBlaGltZWtlblwgOwor5pyq6Z2S5bm0IDwgbWlzZWluZW5cIDsKK+WuouW5tCA8IGt5YWt1bmVuXCA7CivotorljZcgPCBiZXRvbmFtdVwgOwor5Lih6ISHIDwgcnlvdXdha2lcIDsKK+miqOeqkyA8IGthemFtYWRvXCA7CivkurrkuovmrIQgPCBqaW5qaXJhblwgOwor6aKo56m0IDwgZnV1a2V0c3VcIDsKK+S7j+auvyA8IGJ1dHN1ZGVuXCA7Civog7jlo4EgPCBreW91aGVraVwgOwor6ZW36Z+z56ymIDwgY2hvdW9ucHVcIDsKK+WumuW8jyA8IHRlaXNoaWtpXCA7CivkuI3lnYfmlokgPCBmdWtpbnNlaVwgOwor5Lih6IKYIDwgcnlvdWhpamlcIDsKK+a6luWCmemHkSA8IGp1bmJpa2luXCA7Civlq6HnlLcgPCBjaGFrdW5hblwgOwor5Lmz55m9IDwgbnl1dWhha3VcIDsKK+a3i+W3tOa2siA8IHJpbnBhZWtpXCA7Civkuovli5nplbcgPCBqaW11Y2hvdVwgOwor5L+u55CG5bGLIDwgc2h1dXJpeWFcIDsKK+S9juWvhiA8IHRlaW1pdHN1XCA7CivkuKHogLMgPCByeW91bWltaVwgOwor5oeQ55aR6KuWIDwga2FpZ2lyb25cIDsKK+WWiemgreeCjiA8IGtvdXRvdWVuXCA7CivmmrTomZAgPCBib3VneWFrdVwgOwor6IKY5o6bIDwgaGlqaWtha2VcIDsKK+eWjuWkluaEnyA8IHNvZ2Fpa2FuXCA7CivkuKHnv7wgPCByeW91eW9rdVwgOwor5a+G5aOyIDwgbWl0c3ViYWlcIDsKK+acqOefsyA8IGJva3VzZWtpXCA7CivnjonnoJUgPCBneW9rdXNhaVwgOwor5LiD6I2JIDwgbmFuYWt1c2FcIDsKK+WKoOmAn+WZqCA8IGthc29rdWtpXCA7Civlrq7lroggPCBtaXlhbW9yaVwgOwor546J55+zIDwgdGFtYWlzaGlcIDsKK+W6reS4i+mnhCA8IG5pd2FnZXRhXCA7Civku7LmmKUgPCBjaHV1c2h1blwgOwor5qGR5Y6fIDwga3V3YWJhcmFcIDsKK+itmOmWviA8IHNoaWtpaWtpXCA7Civkurrms6IgPCBoaXRvbmFtaVwgOwor5pil6ZuoIDwgaGFydXNhbWVcIDsKK+e/s+ebriA8IGthc3VtaW1lXCA7CivnjL/ogqEgPCBzYXJ1bWF0YVwgOwor5LyR5oiaIDwga3l1dXNla2lcIDsKK+mdnuW4uOWLpCA8IGhpam91a2luXCA7Civph47nkIPpg6ggPCB5YWt5dXVidVwgOwor5a6i5bGkIDwga3lha3Vzb3VcIDsKK+WJjemnhuaIpiA8IHplbmt1c2VuXCA7CivmmKXpmb0gPCBzaHVuJyd5b3VcIDsKK+iynua3kSA8IHRlaXNodWt1XCA7CivlrojlvbkgPCBtb3JpeWFrdVwgOwor5Li756+AIDwgc2h1c2V0c3VcIDsKK+aMh+WwjumDqCA8IHNoaWRvdWJ1XCA7CivosqHnlKPlrrYgPCB6YWlzYW5rYVwgOwor5LiA6IqxIDwgaGl0b2hhbmFcIDsKK+mhlOiJsiA8IGdhbnNob2t1XCA7CivkuK3ntLAgPCBjaHV1Ym9zb1wgOwor5Lit57SaIDwgY2h1dWt5dXVcIDsKK+WxheWCrOS/gyA8IGl6YWlzb2t1XCA7Civnjofnm7QgPCBzb3RjaG9rdVwgOwor54yr6IiMIDwgbmVrb2ppdGFcIDsKK+S4ieiEmiA8IHNhbmt5YWt1XCA7CivmmbrorZggPCBjaGlzaGlraVwgOwor5b2T5q2z6aasIDwgdG91c2FpYmFcIDsKK+S4i+iCpSA8IHNoaW1vZ29lXCA7Civlrp/lrrMgPCBqaXRzdWdhaVwgOwor5bCP5LiAIDwgc2hvdWljaGlcIDsKK+iyquassiA8IGRvbicneW9rdVwgOwor5LuB546L5YqbIDwgbmlvdXJpa2lcIDsKK+S6uuassiA8IGppbicneW9rdVwgOwor5aSa6IKJ5p6cIDwgdGFuaWt1a2FcIDsKK+acgOebm+acnyA8IHNhaXNlaWtpXCA7Civlrp/lrZggPCBqaXRzdXpvblwgOwor5Y+N5q+U5L6LIDwgaGFucGlyZWlcIDsKK+mgmOiiliA8IHJ5b3VzaHV1XCA7Civml7HprYMgPCBrYW5iYXRzdVwgOwor54m56ZuGIDwgdG9rdXNodXVcIDsKK+acq+eUtyA8IGJhdHN1bmFuXCA7Civpn7Pos6ogPCBvbnNoaXRzdVwgOwor5a+45YCfIDwgc3Vuc2hha3VcIDsKK+Wls+WtkOmrmCA8IGpvc2hpa291XCA7Civplovlm57ot68gPCBrYWlrYWlyb1wgOwor6LaF5L+XIDwgY2hvdXpva3VcIDsKK+absueuoSA8IGt5b2t1a2FuXCA7Civlr6nmn7vlk6EgPCBzaGluc2FpblwgOwor6ISI5YuVIDwgbXlha3Vkb3VcIDsKK+iCqeW5hSA8IGthdGFoYWJhXCA7Civkuovli5nmqZ/lmaggPCBqaW11a2lraVwgOwor5qGI5Ye6IDwgYW5zaHV0c3VcIDsKK+m6nemmmeawtCA8IGpha291c3VpXCA7Civml6XmnKzniqwgPCBuaWhvbmtlblwgOwor5LqL5YuZ6YePIDwgamltdXJ5b3VcIDsKK+iCoeW8lSA8IG1vbW9oaWtpXCA7CivkuLjnpr8gPCBtYXJ1aGFnZVwgOwor5byV55So5Y+lIDwgaW4nJ3lvdWt1XCA7CivkvpvkurogPCB0b21vYml0b1wgOwor56eR5a2m6ZmiIDwga2FnYWt1aW5cIDsKK+S6uuanmCA8IGhpdG9zYW1hXCA7CivkubPniZsgPCBueXV1Z3l1dVwgOwor5bCC5LiAIDwgc2VuJydpdHN1XCA7CivliY3poK3pg6ggPCB6ZW50b3VidVwgOwor5Y2B5Zub5pelIDwganV1eW9ra2FcIDsKK+aeleacqCA8IG1ha3VyYWdpXCA7CivogqHluqcgPCBtYXRhZ3VyYVwgOwor54m56ZW3IDwgdG9rdWNob3VcIDsKK+eLuOiXuyA8IHRhbnVraW1vXCA7CivnvLboqbAgPCBrYW5kenVtZVwgOwor5LiA57+8IDwgaWNoaXlva3VcIDsKK+Wun+WmuSA8IGppdHN1bWFpXCA7CivkuK3nqbogPCBuYWthem9yYVwgOwor6aOy5rC0IDwgbm9taW1penVcIDsKK+S4reeoiyA8IG5ha2Fob2RvXCA7Civku4rmnIggPCBrb25nZXRzdVwgOwor6LK45pysIDwga2FzaGlob25cIDsKK+S4pueriyA8IGhlaXJpdHN1XCA7Civlronlrr8gPCB5YXN1eWFkb1wgOwor6Ieq5bex5pqX56S6IDwgamlrb2FuamlcIDsKK+iDveWKmyA8IG5vdXJ5b2t1XCA7CivpgKPmrYzluKsgPCByZW5nYXNoaVwgOwor54mp6ZmwIDwgbW9ub2thZ2VcIDsKK+WuieWuiSA8IHlhc3V5YXN1XCA7CivlrablvrMgPCBnYWt1dG9rdVwgOwor5pSv5o+06ICFIDwgc2hpZW5zaGFcIDsKK+e/kueZliA8IHNodXVoZWtpXCA7CivmorbmnKjluqcgPCBrYWppa2l6YVwgOwor5Li455+zIDwgbWFydWlzaGlcIDsKK+WcsOaWueWMuiA8IGNoaWhvdWt1XCA7CivkuIfnt5EgPCBiYW5yeW9rdVwgOwor5a6/5ZG9IDwgc2h1a3VtZWlcIDsKK+WxseeBq+S6iyA8IHlhbWFrYWppXCA7CivmiY3mnKrmuoAgPCBzYWltaW1hblwgOwor5LuP5paHIDwgZnV0c3VidW5cIDsKK+eJm+mdqSA8IGd5dXVrYXdhXCA7CivogZbml6UgPCBzZWlqaXRzdVwgOwor5Lq65p+EIDwgaGl0b2dhcmFcIDsKK+S6q+alvSA8IGt5b3VyYWt1XCA7Civmnb7mn48gPCBzaG91aGFrdVwgOwor576k56u5IDwgbXVyYXRha2VcIDsKK+itpui5lSA8IGtlaWhpdHN1XCA7CivkubPmv4EgPCBueXV1ZGFrdVwgOwor57+g546JIDwgc3VpZ3lva3VcIDsKK+S6uumhnueMvyA8IGppbnJ1aWVuXCA7Civml6Xpo58gPCBuaXNzaG9rdVwgOwor5LuH5pW1IDwga3l1dXRla2lcIDsKK+mduumeqCA8IG1ha2thdHN1XCA7Civlp7/oposgPCBzdWdhdGFtaVwgOwor6K2w5a6a5pu4IDwgZ2l0ZWlzaG9cIDsKK+Wun+WcqCA8IGppdHN1emFpXCA7CivmnIjnlaogPCB0c3VraWJhblwgOwor55Kw5LiDIDwga2FuJyduYW5hXCA7Civog7jlhYggPCBtdW5hc2FraVwgOwor6IO45YWDIDwgbXVuYW1vdG9cIDsKK+S4gOe1hCA8IGhpdG9rdW1pXCA7CivojLblnYrkuLsgPCBjaGFib3V6dVwgOwor54yr57OeIDwgbmVrb2JhYmFcIDsKK+WKoOebn+W6lyA8IGthbWVpdGVuXCA7CivpnbTpn7MgPCBrdXRzdW90b1wgOwor5LmX54mpIDwgbm9yaW1vbm9cIDsKK+miqOeJqSA8IGZ1dWJ1dHN1XCA7CivkvZzliocgPCBzYWt1Z2VraVwgOwor5pqW6ImyIDwgZGFuc2hva3VcIDsKK+S9leWNkiA8IG5hbml0b3pvXCA7Civnt6nkuIvliaQgPCBrYW5nZXphaVwgOwor546H54S2IDwgc290c3V6ZW5cIDsKK+iQjOm7hOiJsiA8IG1vZWdpaXJvXCA7CivnqbrmsJfpioMgPCBrdXVraWp1dVwgOwor5LyR5a2mIDwga3l1dWdha3VcIDsKK+m5ueawtOa5liA8IGthbnN1aWtvXCA7CivkuInnrYYgPCBzYW5waXRzdVwgOwor5L2P5Y+LIDwgc3VtaXRvbW9cIDsKK+a1t+iAgeiFsCA8IGViaWdvc2hpXCA7Civmnb7mmI4gPCB0YWltYXRzdVwgOwor5Luu5b25IDwga2FyaXlha3VcIDsKK+eUn+ioiOiyuyA8IHNlaWtlaWhpXCA7CivkuK3nmr8gPCBjaHV1emFyYVwgOwor5Lq65pWwIDwgaGl0b2thenVcIDsKK+Wpmue0hCA8IGtvbicneWFrdVwgOwor5LiL56m0IDwgc2hpdGFhbmFcIDsKK+Wuv+WFrSA8IHlhZG9yb2t1XCA7Civlj4LliqDogIUgPCBzYW5rYXNoYVwgOwor5pel5pys5rW3IDwgbmlob25rYWlcIDsKK+iAs+actiA8IG1pbWl0YWJ1XCA7Civmm7jnlZkgPCBrYWtpdG9tZVwgOwor5LiA562LIDwgaGl0b3N1amlcIDsKK+WtpuWvriA8IGdha3VyeW91XCA7CivkuIDnrYYgPCBoaXRvZnVkZVwgOwor6KKr5LmX5pWwIDwgaGlqb3VzdXVcIDsKK+eJh+mahSA8IGthdGFzdW1pXCA7CivosYHnhLYgPCBrYXRzdXplblwgOwor5omL6aKo55C0IDwgdGVmdXVraW5cIDsKK+eJh+mZsCA8IGthdGFrYWdlXCA7CivkuqXmnIggPCBnYWlnZXRzdVwgOwor5rOo5oSP5aCxIDwgY2h1dWlob3VcIDsKK+miqOaZr+eUuyA8IGZ1dWtlaWdhXCA7Civos6rlsYsgPCBzaGljaGl5YVwgOwor54yq56qBIDwgY2hvdG90c3VcIDsKK+S6rOaWuSA8IGt5b3VnYXRhXCA7Civpm7vlrZDpn7MgPCBkZW5zaGlvblwgOwor54mb6Y2LIDwgZ3l1dW5hYmVcIDsKK+Wun+WQjSA8IGppdHN1bWVpXCA7Civou6LljJbns5YgPCB0ZW5rYXRvdVwgOwor5p2l5pyIIDwgcmFpZ2V0c3VcIDsKK+iDuOS4rSA8IGt5b3VjaHV1XCA7CivkuIDnqK4gPCBoaXRva3VzYVwgOwor6ZaJ57WM5pyfIDwgaGVpa2Vpa2lcIDsKK+aYjumBlCA8IG1laXRhdHN1XCA7Civlrr/kvr8gPCBzaHVrdWJlblwgOwor5a+G5LukIDwgbWl0c3VyZWlcIDsKK+S4gOenkiA8IGljaGlieW91XCA7CivkupLliqnnmoQgPCBnb2pvdGVraVwgOwor5Lm+5omA5bivIDwga2Fuam90YWlcIDsKK+Wkp+mfs+WjsCA8IGRhaW9uam91XCA7CivnoLTnlKPogIUgPCBoYXNhbnNoYVwgOwor6ZaJ5Zue6LevIDwgaGVpa2Fpcm9cIDsKK+S4u+eJqSA8IHNodWJ1dHN1XCA7CivnvqTnmbogPCBndW5wYXRzdVwgOwor5puy55CDIDwga3lva2t5dXVcIDsKK+aXqemQmCA8IGhheWFnYW5lXCA7Civog6Hpurvmk4IgPCBnb21hc3VyaVwgOwor5qmf6Zu35Y6fIDwga2lyYWlnZW5cIDsKK+S6jOahgSA8IGZ1dGFrZXRhXCA7CivmnaXml6UgPCByYWluaWNoaVwgOwor54iq6Z+zIDwgdHN1bWFvdG9cIDsKK+aWremrqiA8IGRhbnBhdHN1XCA7Civmm7LnjokgPCBtYWdhdGFtYVwgOwor5aSa5a2U5oCnIDwgdGFrb3VzZWlcIDsKK+WQiOaIkOmfsyA8IGdvdXNlaW9uXCA7CivnoLTprZTlvJMgPCBoYW1heXVtaVwgOwor5a6i5YiGIDwga3lha3VidW5cIDsKK+S9leS9lSA8IG5hbmluYW5pXCA7CivpgKDlvbHliaQgPCB6b3VlaXphaVwgOwor6IOG5YqbIDwgdGFucnlva3VcIDsKK+S6i+afhCA8IGtvdG9nYXJhXCA7Civku67lrq4gPCBrYXJpbWl5YVwgOwor5pu454mpIDwgc2hvbW90c3VcIDsKK+eJm+mFqiA8IGd5dXVyYWt1XCA7CivlgKbmgKDmnJ8gPCBrZW50YWlraVwgOwor54us57+SIDwgZG9rdXNodXVcIDsKK+S7ruWuhSA8IGthcml0YWt1XCA7CivlrZDlrp0gPCBrb2Rha2FyYVwgOwor6Z+u6JGxIDwgbmlyYW5lZ2lcIDsKK+acque0jeiAhSA8IG1pbm91c2hhXCA7Civkuozph43mmJ8gPCBuaWp1dXNlaVwgOwor5L2X5Lq6IDwgd2FiaWJpdG9cIDsKK+S7j+W8jyA8IGJ1c3NoaWtpXCA7CivkuInnm7QgPCBzYW5jaG9rdVwgOwor5L2V5LqLIDwgbmFuaWdvdG9cIDsKK+iCieWkqiA8IG5pa3VidXRvXCA7CivnuYHkvZPlrZcgPCBoYW50YWlqaVwgOwor5LiJ55m+IDwgc2FuYnlha3VcIDsKK+eJueizniA8IHRva3VzaG91XCA7Civmtojpn7PlmaggPCBzaG91b25raVwgOwor6aGU552AIDwgZ2FuY2hha3VcIDsKK+WkmuS6uuaVsCA8IHRhbmluenV1XCA7CivotbTku7vlnLAgPCBmdW5pbmNoaVwgOwor5Y+k55Sf5LujIDwga29zZWlkYWlcIDsKK+S5s+alrSA8IG55dXVneW91XCA7Civml6XpioAgPCBuaWNoaWdpblwgOwor5p6V5bitIDwgY2hpbnNla2lcIDsKK+izk+WuoiA8IGhpbmt5YWt1XCA7Civoip3lsYXmsJcgPCBzaGliYWlnZVwgOwor5a6f5YOPIDwgaml0c3V6b3VcIDsKK+Wun+WDjSA8IGppdHN1ZG91XCA7CivmqKrluqfmqJkgPCBvdXphaHlvdVwgOwor6Ieq6K2m5ZujIDwgamlrZWlkYW5cIDsKK+aaq+WumuahiCA8IHphbnRlaWFuXCA7CivprZrluILloLQgPCB1b2ljaGliYVwgOwor5a6u5Lq6IDwgbWl5YWJpdG9cIDsKK+aXp+mHjCA8IGZ1cnVzYXRvXCA7CivkuIDnmr8gPCBoaXRvc2FyYVwgOwor5LiA55quIDwgaGl0b2thd2FcIDsKK+S6jOaWuSA8IGZ1dGFrYXRhXCA7Civpp4Xppqzou4ogPCBla2liYXNoYVwgOwor5LiK55WlIDwgam91cnlha3VcIDsKK+iyq+W+uSA8IGthbnRldHN1XCA7Civlr77oqbHkvZMgPCB0YWl3YXRhaVwgOwor5p6i5a+GIDwgc3V1bWl0c3VcIDsKK+S4gOeZliA8IGhpdG9rdXNlXCA7Civlrq7kuK0gPCBreXV1Y2h1dVwgOwor6LGG5q67IDwgbWFtZWdhcmFcIDsKK+ePvuWwuiA8IGdlbnNoYWt1XCA7CivkurrlvbEgPCBoaXRva2FnZVwgOwor5a6i5L2TIDwga3lha3V0YWlcIDsKK+a4heaOg+WkqyA8IHNlaXNvdWZ1XCA7Civlrp/kvosgPCBqaXRzdXJlaVwgOwor6auY5oSf5bqmIDwga291a2FuZG9cIDsKK+acqOanjCA8IGtpZHp1Y2hpXCA7CivntIDlhYPliY0gPCBraWdlbnplblwgOwor56Oo56CU57SZIDwgbWFrZW5zaGlcIDsKK+ePvuWunyA8IGdlbmppdHN1XCA7CivlrqLkurogPCBreWFrdWppblwgOwor5pei5ama6ICFIDwga2lrb25zaGFcIDsKK+mcuemdgiA8IGhla2lyZWtpXCA7CivmkKzpgIHms6IgPCBoYW5zb3VoYVwgOwor6K2y6JGJIDwgeXV6dXJpaGFcIDsKK+eWjumWi+iAhSA8IHNva2Fpc2hhXCA7CivmgJ3mg7PlrrYgPCBzaGlzb3VrYVwgOwor6LC35rC0IDwgdGFuaW1penVcIDsKK+ixquaXpSA8IGdvdW5pY2hpXCA7CivmnI3mr5IgPCBmdWt1ZG9rdVwgOwor5bKp55Sw5bivIDwgaXdhdGFvYmlcIDsKK+iBt+WfnyA8IHNob2t1aWtpXCA7CivmmrTnmbogPCBib3VoYXRzdVwgOwor6ZaL6ZaJ5qmfIDwga2FpaGVpa2lcIDsKK+W6j+egtOaApSA8IGpvaGFreXV1XCA7CivotrPlv6Dlrp8gPCBhc2hpbWFtZVwgOwor6aOf5oyHIDwgc2hva3VzaGlcIDsKK+WNiua4m+acnyA8IGhhbmdlbmtpXCA7Civml6XovKogPCBuaWNoaXJpblwgOwor6Ieq54S2576OIDwgc2hpemVuYmlcIDsKK+iCqeWFiCA8IGthdGFzYWtpXCA7CivlpJbpsJAgPCBzb3Rvd2FuaVwgOwor6aC755m6IDwgaGlucGF0c3VcIDsKK+WJjeS4lue0gCA8IHplbnNlaWtpXCA7CivmnKzmnKsgPCBob25tYXRzdVwgOwor56CU56Oo57SZIDwga2VubWFzaGlcIDsKK+S4h+eJqSA8IGJhbm1vdHN1XCA7Civnjonmna8gPCBneW9rdWhhaVwgOwor54yu54mpIDwga2VubW90c3VcIDsKK+S6uuWxsSA8IGhpdG95YW1hXCA7CivpnZLlhpnnnJ8gPCBhb2phc2hpblwgOwor5pep6LazIDwgaGF5YWFzaGlcIDsKK+eliOelt+abuCA8IGtpdG91c2hvXCA7CivpnKfpm6ggPCBraXJpc2FtZVwgOwor5biw6YKE5YW1IDwga2lrYW5oZWlcIDsKK+mWiee1jOW+jCA8IGhlaWtlaWdvXCA7Civos6Llk7IgPCBrZW50ZXRzdVwgOwor54mH6LazIDwga2F0YWFzaGlcIDsKK+S4gOeJhyA8IGhpdG9oaXJhXCA7CivlpJrmlrnpnaIgPCB0YWhvdW1lblwgOwor54eV5bC+5pyNIDwgZW5iaWZ1a3VcIDsKK+emgOitsOabuCA8IHJpbmdpc2hvXCA7CivmnKzml6UgPCBob25qaXRzdVwgOwor5Lm+5outIDwga2FyYWJ1a2lcIDsKK+eItuWFhOS8miA8IGZ1a2Vpa2FpXCA7Civpq5jpupfmpb0gPCBrb21hZ2FrdVwgOwor6aOf5oSfIDwgc2hva3VrYW5cIDsKK+aVtOmrqiA8IHNlaWhhdHN1XCA7Civku4/lo4cgPCBidXRzdWRhblwgOwor5LqI5oOz5aSWIDwgeW9zb3VnYWlcIDsKK+aJgeahg+ayuSA8IGhlbnRvdXl1XCA7CivlrablibIgPCBnYWt1d2FyaVwgOwor5pW06aqoIDwgc2Vpa290c3VcIDsKK+i0i+S9nCA8IG5pc2VzYWt1XCA7CivlrabliYcgPCBnYWt1c29rdVwgOwor5puy5rC0IDwga3lva3VzdWlcIDsKK+mdkuW5tOacnyA8IHNlaW5lbmtpXCA7CivpoqjmnIggPCBmdXVnZXRzdVwgOwor6Zyc6ZuqIDwgc291c2V0c3VcIDsKK+Wdh+etieWMliA8IGtpbnRvdWthXCA7CivkubHmjpggPCByYW5rdXRzdVwgOwor5Y+X6aiT6ICFIDwganVrZW5zaGFcIDsKK+aZguS7o+ebuCA8IGppZGFpc291XCA7CivkuZ3ml6UgPCBrb2tvbm9rYVwgOwor5pel6LGqIDwgbmljaGlnb3VcIDsKK+Wil+WKoOWIhiA8IHpvdWthYnVuXCA7CivkuozpgKPpioMgPCBuaXJlbmp1dVwgOwor5Lmd5pePIDwga3l1dXpva3VcIDsKK+iqremfvyA8IHlvbWlreW91XCA7CivniZvop5IgPCBneXV1a2FrdVwgOwor5aSn6ZuqIDwgdGFpc2V0c3VcIDsKK+WklumjnyA8IGdhaXNob2t1XCA7CivkuIDlm57ou6IgPCBpa2thaXRlblwgOwor5aSV6aOvIDwgeXV1bWVzaGlcIDsKK+iBt+WQjSA8IHNob2t1bWVpXCA7Civmmannr4AgPCBiYW5zZXRzdVwgOwor5LqM5b25IDwgZnV0YXlha3VcIDsKK+S4u+iEs+mDqCA8IHNodW5vdWJ1XCA7CivkuozlvaIgPCBmdXRhbmFyaVwgOwor5pil6I+KIDwgc2h1bmdpa3VcIDsKK+WtpuWDlSA8IGdha3Vib2t1XCA7CivntI3ku5jmm7ggPCBub3VmdXNob1wgOwor6LGG5paZIDwgbWFtZXJ5b3VcIDsKK+acneaVtSA8IGNob3V0ZWtpXCA7CivljZjlvIHoirEgPCB0YW5iZW5rYVwgOwor5rWB5rWq6ICFIDwgcnVyb3VzaGFcIDsKK+aVo+mrqiA8IHNhbnBhdHN1XCA7Civoj5PlrZDnm4YgPCBrYXNoaWJvblwgOwor6KyO6KyOIDwgbmF6b25hem9cIDsKK+WFrOeUqOiqniA8IGtvdXlvdWdvXCA7CivlpoToqqwgPCBtb3VzZXRzdVwgOwor6aCT552AIDwgdG9uY2hha3VcIDsKK+S7j+WZuCA8IGZ1dHN1dG9uXCA7CivlppbooZMgPCB5b3VqdXRzdVwgOwor6Zub6bOlIDwgaGluYWRvcmlcIDsKK+mbu+mjviA8IGRlbnNob2t1XCA7CivlpKrpmb3ngokgPCB0YWl5b3Vyb1wgOwor5pen6KizIDwga3l1dXlha3VcIDsKK+aciOacqyA8IHRzdWtpenVlXCA7Civni6znmb0gPCBkb2t1aGFrdVwgOwor54yb54OIIDwgbW91cmV0c3VcIDsKK+WPl+i6q+W9oiA8IHVrZW1pa2VpXCA7CivmsJHllrbljJYgPCBtaW4nJ2Vpa2FcIDsKK+S6uuacm+WutiA8IGppbmJvdWthXCA7CivniKrot6EgPCB0c3VtZWF0b1wgOwor5Luu5YidIDwga2FyaXNvbWVcIDsKK+adpeWuoiA8IHJhaWt5YWt1XCA7CivmnIjmm5wgPCBnZXRzdXlvdVwgOwor57+M5pydIDwgeW9rdWNob3VcIDsKK+e3j+S6jOmajiA8IHNvdW5pa2FpXCA7CivnuYHpm5EgPCBoYW56YXRzdVwgOwor6Kej6ZuH6ICFIDwga2Fpa29zaGFcIDsKK+a8ouaZguS7oyA8IGthbmppZGFpXCA7CivlhoXlpJbph44gPCBuYWlnYWl5YVwgOwor54mH5Luu5ZCNIDwga2F0YWthbmFcIDsKK+iEseiho+aJgCA8IGRhdHN1aWpvXCA7CivogbfliIYgPCBzaG9rdWJ1blwgOwor5Lm+5byPIDwga2Fuc2hpa2lcIDsKK+mdouitmCA8IG1lbnNoaWtpXCA7CivkurrlnqMgPCBoaXRvZ2FraVwgOwor6LSI5LiO6ICFIDwgem91eW9zaGFcIDsKK+WksemMryA8IHNoaXNzYWt1XCA7CivkuYXmlrkgPCBoaXNha2F0YVwgOwor5pyI5piOIDwgZ2V0c3VtZWlcIDsKK+WjsOmrmCA8IGtvd2FkYWthXCA7Civoq5bov7AgPCByb25qdXRzdVwgOwor57+M5pilIDwgeW9rdXNodW5cIDsKK+S/neWuiOezuyA8IGhvc2h1a2VpXCA7Civoq77oq74gPCBkYWt1ZGFrdVwgOwor6K2Y6ICFIDwgc2hpa2lzaGFcIDsKK+S7leWPoyA8IHNoaWt1Y2hpXCA7Civmtbfppqzlm54gPCBrYWliYWthaVwgOwor6Ieq5aCV6JC9IDwgamlkYXJha3VcIDsKK+ePjeWmmSA8IGNoaW5teW91XCA7Civosp3loZogPCBrYWlkenVrYVwgOwor5pys5aGB5omTIDwgaG9ucnVpZGFcIDsKK+iBluWTsiA8IHNlaXRldHN1XCA7CivmhJvppJDkvJogPCBhaXNhbmthaVwgOwor5a++5oqX6aasIDwgdGFpa291YmFcIDsKK+mdouipsCA8IG1lbmtpdHN1XCA7CivnuJ7ppqwgPCBzaGltYXVtYVwgOwor5Luu5ZCN5paHIDwga2FuYWJ1bWlcIDsKK+mjn+WwvSA8IHNob2t1amluXCA7Civos63kuosgPCBrYWtlZ290b1wgOwor5LiA5rWBIDwgaWNoaXJ5dXVcIDsKK+S4reafhCA8IGNodXVnYXJhXCA7Civmm7jmnK0gPCBzaG9zYXRzdVwgOwor5aaZ6JasIDwgbXlvdXlha3VcIDsKK+S4u+aXpSA8IHNodWppdHN1XCA7Civoq7joq7ggPCBtb3JvbW9yb1wgOwor6IOh6bq75aGpIDwgZ29tYXNoaW9cIDsKK+WKoOW3peWTgSA8IGtha291aGluXCA7CivmqKnliKnmm7ggPCBrZW5yaXNob1wgOwor6Ku46KqsIDwgc2hvc2V0c3VcIDsKK+W7g+imgee0oCA8IGhhaXlvdXNvXCA7CivlpbPopqogPCBvbicnbmFveWFcIDsKK+abtOabtCA8IHNhcmFzYXJhXCA7CivmnZPlrZAgPCBzaGFrdXNoaVwgOwor56m65oOz5a62IDwga3V1c291a2FcIDsKK+absuabsiA8IGt1bWFndW1hXCA7CivmmI7oibIgPCBtZWlzaG9rdVwgOwor6LKp5aOy6YOoIDwgaGFuYmFpYnVcIDsKK+ecvOmPoeWxiyA8IG1lZ2FuZXlhXCA7Civku5blh7ogPCB0YXNodXRzdVwgOwor5YmN5LiW55WMIDwgemVuc2VrYWlcIDsKK+acrOWgtOaJgCA8IGhvbmJhc2hvXCA7Civpm6jpnbQgPCBhbWFndXRzdVwgOwor6Jma54Sh5YWaIDwga3lvbXV0b3VcIDsKK+S6uumhnuaEmyA8IGppbnJ1aWFpXCA7Civkuozph43lpY8gPCBuaWp1dXNvdVwgOwor5oSb5aW96ICFIDwgYWlrb3VzaGFcIDsKK+WQiOaIkOiqniA8IGdvdXNlaWdvXCA7CivmnKzlvI8gPCBob25zaGlraVwgOwor5LuP5YmNIDwgYnV0c3V6ZW5cIDsKK+mbqumbsiA8IHl1a2lndW1vXCA7Civpm6jpnLAgPCBhbWVhcmFyZVwgOwor5pyo5b2rIDwgbW9rdWNob3VcIDsKK+aakeeGsSA8IHNob25ldHN1XCA7Civnn7Pngavnn6IgPCBpc2hpYml5YVwgOwor54mp6ImyIDwgYnVzc2hva3VcIDsKK+iBt+S6uiA8IHNob2t1bmluXCA7Civlh7rntI3nsL8gPCBzdWl0b3Vib1wgOwor6Kun6KyUIDwga2FpZ3lha3VcIDsKK+eLrOeJuSA8IGRva3V0b2t1XCA7CivlpLHpgJ8gPCBzaGlzc29rdVwgOwor5pil57mtIDwgaGFydW1heXVcIDsKK+eGsemhmCA8IG5ldHN1Z2FuXCA7Civou43nrqHljLogPCBndW5rYW5rdVwgOwor5pyr5bm0IDwgbWF0c3VuZW5cIDsKK+WroeWtqyA8IGNoYWt1c29uXCA7Civnianoh60gPCBtb25vZ3VzYVwgOwor5auh5a2QIDwgY2hha3VzaGlcIDsKK+irpOirpCA8IGdha3VnYWt1XCA7Civni6HnjL4gPCBrb3VrYXRzdVwgOwor6ZuR6aOfIDwgemFzc2hva3VcIDsKK+S4u+aMgSA8IHNodW1vY2hpXCA7CivlrLDlhZAgPCBtaWRvcmlnb1wgOwor56eL55Sw55yMIDwgYWtpdGFrZW5cIDsKK+e4pumVtyA8IHRhdGVuYWdhXCA7CivlhJLlrabnlYwgPCBqdWdha2thaVwgOwor5LiL5omL57OeIDwgaGV0YWt1c29cIDsKK+S6ieWlqiA8IHNvdWRhdHN1XCA7Civku4/lg48gPCBidXRzdXpvdVwgOwor5pyq5aK+5ZywIDwgbWlrb25jaGlcIDsKK+Wkp+WkmuaVsCA8IGRhaXRhc3V1XCA7CivlrZDljYjnt5ogPCBzaGlnb3NlblwgOwor6ICB5a6fIDwgcm91aml0c3VcIDsKK+Wkp+mAhiA8IGRhaWd5YWt1XCA7Civml6Xok64gPCBuaWNoaXJlblwgOwor5q2j5bi45YyWIDwgc2Vpam91a2FcIDsKK+eZuumFtee0oCA8IGhha2tvdXNvXCA7Civot53pm6LoqIggPCBreW9yaWtlaVwgOwor54ax6Zu3IDwgbmV0c3VyYWlcIDsKK+iIueWwj+WxiyA8IGZ1bmFnb3lhXCA7CivphrjpgKDmiYAgPCBqb3V6b3Vqb1wgOwor6Kmm6aOfIDwgc2hpc2hva3VcIDsKK+aVt+mHkSA8IHNoaWtpa2luXCA7Civlq6HlprsgPCBjaGFrdXNhaVwgOwor5LiA5qOfIDwgaGl0b211bmVcIDsKK+Wkp+e0jeiogCA8IGRhaW5hZ29uXCA7CivlpKnmloflrrYgPCB0ZW5tb25rYVwgOwor5qih6YCg6ICFIDwgbW96b3VzaGFcIDsKK+Wksei3oSA8IHNoaXNzZWtpXCA7Civlr53kuI3otrMgPCBuZWJ1c29rdVwgOwor5Lq65Yi6IDwgamluc2FzaGlcIDsKK+mbu+mJhCA8IGRlbnRldHN1XCA7CivkurrliKUgPCBuaW5iZXRzdVwgOwor5bCC6ZaA5a62IDwgc2VubW9ua2FcIDsKK+irluiqrCA8IHJvbnNldHN1XCA7CivmnKrnhLblvaIgPCBtaXplbmtlaVwgOwor5pys5bGAIDwgaG9ua3lva3VcIDsKK+WJquijgeapnyA8IHNlbnNhaWtpXCA7CivkuK3mjIcgPCBuYWtheXViaVwgOwor6LO86LK36YOoIDwga291YmFpYnVcIDsKK+iyuOWAnyA8IHRhaXNoYWt1XCA7CivnjbLlvpcgPCBrYWt1dG9rdVwgOwor6KuW6KmwIDwgcm9ua2l0c3VcIDsKK+aFiOWWhOS8miA8IGppemVua2FpXCA7CivmgqrotqPlkbMgPCBha3VzaHVtaVwgOwor5LiA5qGBIDwgaGl0b2tldGFcIDsKK+aWveihkyA8IHNoaWp1dHN1XCA7CivpoZvmnKsgPCB0ZW5tYXRzdVwgOwor6LSI5LiO56iOIDwgem91eW96ZWlcIDsKK+iyoeWKmyA8IHphaXJ5b2t1XCA7Civoqp7pg6ggPCBrYXRhcmliZVwgOwor5L+d5a2Y57O7IDwgaG96b25rZWlcIDsKK+S4ieabsiA8IHNhbmt5b2t1XCA7CivmsJfli5Xou4ogPCBraWRvdXNoYVwgOwor5rC45L2P6ICFIDwgZWlqdXVzaGFcIDsKK+aZr+eJqSA8IGtlaWJ1dHN1XCA7CivmlrnooZMgPCBob3VqdXRzdVwgOwor54m557SEIDwgdG9rdXlha3VcIDsKK+e5sOiogCA8IGt1cmlnb3RvXCA7CivniZvogokgPCBneXV1bmlrdVwgOwor5p2J5Z6jIDwgc3VnaWdha2lcIDsKK+eOi+WupCA8IG91c2hpdHN1XCA7CivkuIDmnZ8gPCBoaXRvdGFiYVwgOwor54mh576KIDwgb2hpdHN1amlcIDsKK+iwt+W6lSA8IHRhbml6b2tvXCA7CivmnKrnhp/lhZAgPCBtaWp1a3VqaVwgOwor5LiA5pyoIDwgaWNoaWJva3VcIDsKK+S6uuWCkSA8IGppbmtldHN1XCA7CivoqJjlv7Xlk4EgPCBraW5lbmhpblwgOwor56C055Oc55eFIDwgaGFrYWJ5b3VcIDsKK+aYqOeniyA8IHNha3VzaHV1XCA7CivosLflt50gPCB0YW5pZ2F3YVwgOwor5LuE5LuEIDwgaG9ub2Jvbm9cIDsKK+egtOeUo+azlSA8IGhhc2FuaG91XCA7CivlgZzpm7vml6UgPCB0ZWlkZW5iaVwgOwor6LK35Li7IDwga2FpbnVzaGlcIDsKK+WPl+mok+eUnyA8IGp1a2Vuc2VpXCA7CivpmbjokrjmsJcgPCBva2Fqb3VraVwgOwor5LiA5pmCIDwgaGl0b3Rva2lcIDsKK+aYh+e1piA8IHNob3VreXV1XCA7Civlrp/ooYzmmYIgPCBqaWtrb3VqaVwgOwor54mH6IadIDwga2F0YWhpemFcIDsKK+mjsuWKqSA8IG5vbWlzdWtlXCA7Civmm7LmgqogPCBreW9rdWFrdVwgOwor5qih6YCg57SZIDwgbW96b3VzaGlcIDsKK+S6jOWOn+WtkCA8IG5pZ2Vuc2hpXCA7CivkuIDml5cgPCBoaXRvaGF0YVwgOwor5LiA5pePIDwgaWNoaXpva3VcIDsKK+mjn+WTgSA8IHNob2t1aGluXCA7CivnianntI0gPCBidXRzdW5vdVwgOwor5aSx6Kq/IDwgc2hpdGNob3VcIDsKK+eFrumtmiA8IG5pemFrYW5hXCA7CivlpLHoqp4gPCBzaGl0c3Vnb1wgOwor5LiH5Zu95peXIDwgYmFua29ra2lcIDsKK+aXqeiAsyA8IGhheWFtaW1pXCA7CivkuLjlupUgPCBtYXJ1em9rb1wgOwor5LqL5YuZ55qEIDwgamltdXRla2lcIDsKK+S6uuS6uiA8IGhpdG9iaXRvXCA7CivmlaPpgLggPCBzYW4nJ2l0c3VcIDsKK+eJh+iCjCA8IGthdGFoYWRhXCA7Civmm7jlvI8gPCBzaG9zaGlraVwgOwor5Lq65LqLIDwgaGl0b2dvdG9cIDsKK+e3j+mrqiA8IHNvdWhhdHN1XCA7CivmnI3lsZ4gPCBmdWt1em9rdVwgOwor54m556iuIDwgdG9rdWRhbmVcIDsKK+S4reW9oiA8IGNodXVnYXRhXCA7CivkurrkuK0gPCBoaXRvbmFrYVwgOwor5o6o56e755qEIDwgc3VpaXRla2lcIDsKK+S4gOaSgyA8IGljaGlnZWtpXCA7CivnqbrmsJfnqbQgPCBrdXVraWFuYVwgOwor5Y+X5a656ICFIDwganV5b3VzaGFcIDsKK+ezoOWRs+WZjCA8IG51a2FtaXNvXCA7CivmlrnlvaLms6IgPCBob3VrZWloYVwgOwor5oim5YmN5rS+IDwgc2VuemVuaGFcIDsKK+WHpueQhuWgtCA8IHNob3Jpam91XCA7CivkuozlvKbnkLQgPCBuaWdlbmtpblwgOwor5Lit5bqtIDwgbmFrYW5pd2FcIDsKK+Wni+eZuiA8IHNoaWhhdHN1XCA7CivorJ3ntbYgPCBzaGF6ZXRzdVwgOwor5Lm+5ZKzIDwga2FyYXpla2lcIDsKK+mFkumAoOWutiA8IHNodXpvdWthXCA7CivkuK3luZUgPCBuYWthbWFrdVwgOwor5Lit5bmFIDwgY2h1dWhhYmFcIDsKK+aOsuekuuadvyA8IGtlaWppYmFuXCA7CivlhoXpoqjlkYIgPCB1Y2hpYnVyb1wgOwor6Ku46IadIDwgbW9yb2hpemFcIDsKK+iruOiGmiA8IG1vcm9oYWRhXCA7CivkuK3luK0gPCBuYWthc2VraVwgOwor5pyd5aSVIDwgY2hvdXNla2lcIDsKK+eJp+esmyA8IGJva3V0ZWtpXCA7CivkuKHlvpcgPCByeW91dG9rdVwgOwor57im6Lu4IDwgdGF0ZWppa3VcIDsKK+S4reWKtOWnlCA8IGNodXVyb3VpXCA7Civlp6bniakgPCBrYW5idXRzdVwgOwor6aOf5Yi7IDwgc2hva2tva3VcIDsKK+eOieWeoyA8IHRhbWFnYWtpXCA7CivmhJvnjKvlrrYgPCBhaWJ5b3VrYVwgOwor5LiJ5Zue5b+MIDwgc2Fua2Fpa2lcIDsKK+e3j+S7leiIniA8IHNvdWppbWFpXCA7Civpm7LotrMgPCBrdW1vYXNoaVwgOwor57eR6aKoIDwgcnlva3VmdXVcIDsKK+eJqeeoriA8IG1vbm9kYW5lXCA7CivkuKbluYUgPCBuYW1paGFiYVwgOwor5aaZ562WIDwgbXlvdXNha3VcIDsKK+mdmeiEiCA8IGpvdW15YWt1XCA7CivniannqI4gPCBidXRzdXplaVwgOwor5Li75a6iIDwgc2h1a3lha3VcIDsKK+mGuOmAoOWutiA8IGpvdXpvdWthXCA7CivkuqTkuqQgPCBrb21vZ29tb1wgOwor54iG6JasIDwgYmFrdXlha3VcIDsKK+S4reWztiA8IG5ha2FqaW1hXCA7CivkuqTku5jph5EgPCBrb3VmdWtpblwgOwor5LqL5YWxIDwga290b2RvbW9cIDsKK+aJh+miqOapnyA8IHNlbnB1dWtpXCA7CivkuI3mgokgPCBmdXNoaXRzdVwgOwor5YWo5YCZ6KOcIDwgemVua291aG9cIDsKK+eQhuaDs+irliA8IHJpc291cm9uXCA7CivniafnpZ4gPCBib2t1c2hpblwgOwor57eR6Z2SIDwgcm9rdXNob3VcIDsKK+a8ouaVsOWtlyA8IGthbnN1dWppXCA7CivovJ3nhYzluJ0gPCBraWtvdXRlaVwgOwor5pSv5oyB6ICFIDwgc2hpamlzaGFcIDsKK+aWueiInyA8IGhha29idW5lXCA7Civpo6/kuosgPCBtYW1hZ290b1wgOwor5Lit5bCPIDwgY2h1dXNob3VcIDsKK+aXpeexsyA8IG5pY2hpYmVpXCA7CivnhLzps6UgPCB5YWtpdG9yaVwgOwor5aSn5paH5a2XIDwgZGFpbW9uamlcIDsKK+isueebtCA8IGtpbmNob2t1XCA7CivkuK3lraYgPCBjaHV1Z2FrdVwgOwor57e06YmEIDwgcmVudGV0c3VcIDsKK+WkieiqrCA8IGhlbnNldHN1XCA7CivmlbXopbIgPCB0ZWtpc2h1dVwgOwor5a2Q5Y2I55KwIDwgc2hpZ29rYW5cIDsKK+aUvumAkCA8IGhvdWNoaWt1XCA7CivkuInlvbkgPCBzYW4nJ3lha3VcIDsKK+iqjeitmCA8IG5pbnNoaWtpXCA7Civoibbnpo/lrrYgPCBlbnB1a3VrYVwgOwor5bCC6ZaA5Yy7IDwgc2VubW9uJydpXCA7Civmm7TlubTmnJ8gPCBrb3VuZW5raVwgOwor5pel5pys5YiAIDwgbmlob250b3VcIDsKK+e3kemWgCA8IHJ5b2t1bW9uXCA7CivkuI3ooYzlhIAgPCBmdWd5b3VnaVwgOwor5biw5bej5oCnIDwga2lzb3VzZWlcIDsKK+S4i+aJi+eJqSA8IGdldGVtb25vXCA7CivmnZHkurogPCBtdXJhYml0b1wgOwor5o+Q5qGI6ICFIDwgdGVpYW5zaGFcIDsKK+WPl+S/oeapnyA8IGp1c2hpbmtpXCA7CivkuIvluK8gPCBzaGl0YW9iaVwgOwor5LiA5b25IDwgaGl0b3lha3VcIDsKK+ixquWCkSA8IGdvdWtldHN1XCA7Civmj5rlrZDmsZ8gPCB5b3VzdWtvdVwgOwor5LqL5LqLIDwga290b2dvdG9cIDsKK+e2v+mbsiA8IHdhdGFndW1vXCA7CivkubHlhaUgPCByYW4nJ255dXVcIDsKK+e2v+mbqiA8IHdhdGF5dWtpXCA7CivntYzluLjosrsgPCBrZWlqb3VoaVwgOwor5LqI5LqIIDwga2FuZWdhbmVcIDsKK+S4luWxgCA8IHNlaWt5b2t1XCA7Civnt7TpgZQgPCByZW50YXRzdVwgOwor5pqH5pqHIDwgaGltYWhpbWFcIDsKK+mahumahiA8IHJ5dXVyeXV1XCA7CivmtbfnjovmmJ8gPCBrYWlvdXNlaVwgOwor5LiA5bqmIDwgaGl0b3RhYmlcIDsKK+mahemahSA8IHN1bWl6dW1pXCA7CivlubznqJrlnJIgPCB5b3VjaGllblwgOwor5LiA5bm0IDwgaGl0b3Rvc2VcIDsKK+mdmeeymyA8IHNlaXNodWt1XCA7Civloanprq0gPCBzaGlvemFrZVwgOwor5peP57GNIDwgem9rdXNla2lcIDsKK+Wkp+iSnCA8IG5pbicnbmlrdVwgOwor5LiA5bmVIDwgaGl0b21ha3VcIDsKK+aciOahguaouSA8IGdla2tlaWp1XCA7CivmnKroqJjlhaUgPCBtaWtpbnl1dVwgOwor5LiA5be7IDwgaGl0b21ha2lcIDsKK+mbo+ipsCA8IG5hbmtpdHN1XCA7Civpm4Douo0gPCBqYWt1eWFrdVwgOwor5Lit5aGXIDwgbmFrYW51cmlcIDsKK+mZqumjnyA8IGJhaXNob2t1XCA7CivnoJTno6jmnZAgPCBrZW5tYXphaVwgOwor5LqM5bm06I2JIDwgbmluZW5zb3VcIDsKK+mgjOaYpSA8IHNob3VzaHVuXCA7Civnvqnli4fou40gPCBnaXl1dWd1blwgOwor5paH6Kqe5paHIDwgYnVuZ29idW5cIDsKK+iqleeUn+aXpSA8IHRhbmpvdWJpXCA7CivkvK/liYzopb/niL4gPCBidXJhamlydVwgOwor5LiH5bGLIDwgeW9yb3p1eWFcIDsKK+S4reWeoyA8IG5ha2FnYWtpXCA7Civph5HmmYLoqIggPCBraW5kb2tlaVwgOwor6aKo5YqbIDwgZnV1cnlva3VcIDsKK+epuua0nuWMliA8IGt1dWRvdWthXCA7Civns57lkbPlmYwgPCBrdXNvbWlzb1wgOwor5Lmx5LyQIDwgcmFuYmF0c3VcIDsKK+aXpeacrOS6uiA8IG5paG9uamluXCA7CivnjKvlsZ4gPCBuZWtvem9rdVwgOwor5oCn6YGK5oivIDwgc2VpeXV1Z2lcIDsKK+S4reWbvSA8IGNodXVnb2t1XCA7CivmrKHngrnogIUgPCBqaXRlbnNoYVwgOwor6aCD5pelIDwga2Vpaml0c3VcIDsKK+mYsuiFkOWJpCA8IGJvdWZ1emFpXCA7CivoqbPoqLsgPCBzaG91Y2h1dVwgOwor5pel5pys5LitIDwgbmlob25qdXVcIDsKK+mbkeirhyA8IHphdHN1ZGFuXCA7CivohZXnm7jmkrIgPCB1ZGV6dW1vdVwgOwor5Zyw5Z+f5beuIDwgY2hpaWtpc2FcIDsKK+S/neitt+mzpSA8IGhvZ29jaG91XCA7Civml6Xnm7QgPCBuaXRjaG9rdVwgOwor57eR6YWSIDwgcnlva3VzaHVcIDsKK+S4gOWupCA8IGlzc2hpdHN1XCA7CivlpKrohb8gPCBmdXRvbW9tb1wgOwor5bCP5omL5YWIIDwga290ZXNha2lcIDsKK+eEoemZjeawtCA8IG11a291c3VpXCA7Civmlq3ntbYgPCBkYW56ZXRzdVwgOwor5LiA5a2QIDwgaGl0b3JpZ29cIDsKK+Wnq+anmCA8IGhpbWVzYW1hXCA7CivpvLvlkbzlkLggPCBiaWtva3l1dVwgOwor6Zu76JOEIDwgZGVuY2hpa3VcIDsKK+mHjemojuWFtSA8IGp1dWtpaGVpXCA7Civlj6Tku6Plj7IgPCBrb2RhaXNoaVwgOwor5pyr5LujIDwgbWF0c3VkYWlcIDsKK+iogOmciiA8IGtvdG9kYW1hXCA7CivkuKHlm70gPCByeW91Z29rdVwgOwor5Li75Y+WIDwgc2h1dWRvcmlcIDsKK+mbqOibmSA8IGFtYWdhZXJ1XCA7Civnhp/oqq0gPCBqdWt1ZG9rdVwgOwor546J5L2TIDwgZ3lva3V0YWlcIDsKK+eJp+eJmyA8IGJva3VneXV1XCA7Civlob7plbcgPCBqdWt1Y2hvdVwgOwor54ax6KGAIDwgbmVra2V0c3VcIDsKK+iDveiInuWPsCA8IG5vdWJ1dGFpXCA7Civnjonku6MgPCBneW9rdWRhaVwgOwor6ZuG6Ki7IDwgc2h1dWNodXVcIDsKK+ertummrOmmrCA8IGtlaWJhdW1hXCA7CivpmpTpgLEgPCBrYWt1c2h1dVwgOwor5YWN56ef5ZywIDwgbWVuc29jaGlcIDsKK+aXpeeUqCA8IG5pY2hpeW91XCA7Civmm7jlj5YgPCBrYWtpdG9yaVwgOwor5LqM5qyh55qEIDwgbmlqaXRla2lcIDsKK+a8lOWlj+iAhSA8IGVuc291c2hhXCA7CivkuLvlipsgPCBzaHVyeW9rdVwgOwor5YW35L2T5oCnIDwgZ3V0YWlzZWlcIDsKK+aciOWGhSA8IGdldHN1bmFpXCA7CivkuZ7kuJAgPCBrb3RzdWdhaVwgOwor5LiD5aSVIDwgdGFuYWJhdGFcIDsKK+isoeeJqSA8IHV0YWltb25vXCA7CivpoLvlsL8gPCBoaW4nJ255b3VcIDsKK+Wkqee9sCA8IHRlbmJhdHN1XCA7CivkuIDnrYnou4ogPCBpdHRvdXNoYVwgOwor6Z2i55m9IDwgb21vc2hpcm9cIDsKK+absuWQjSA8IGt5b2t1bWVpXCA7Civnt4/ovYQgPCBzb3VrYXRzdVwgOwor5Lit5Y+kIDwgY2h1dWJ1cnVcIDsKK+S4jeWTgeihjCA8IGZ1aGlua291XCA7Civni7zluqcgPCBvb2thbWl6YVwgOwor6Ki86LehIDwgc2hvdXNla2lcIDsKK+eJueenkeWFtSA8IHRva2thaGVpXCA7CivohILogqrmsrkgPCBzaGlib3V5dVwgOwor5bem5aSn6IejIDwgc2FkYWlqaW5cIDsKK+mHkeWtl+WhlCA8IGtpbmppdG91XCA7Civlpa7nmbogPCBmdW5wYXRzdVwgOwor6auY6YeO5bGxIDwga291eWFzYW5cIDsKK+Wkp+eGiuW6pyA8IG9vZ3VtYXphXCA7CivmmI7mu4UgPCBtZWltZXRzdVwgOwor6Zm46YejIDwgb2thZHp1cmlcIDsKK+isgOeVpSA8IGJvdXJ5YWt1XCA7CivkuIDloakgPCBoaXRvc2hpb1wgOwor6aKo5LiKIDwga2F6YWthbWlcIDsKK+WGkumZuuWutiA8IGJvdWtlbmthXCA7CivlpJbogqEgPCBzb3RvbWF0YVwgOwor5aGp5r+D5bqmIDwgZW4nJ25vdWRvXCA7Civntbbpo58gPCB6ZXNzaG9rdVwgOwor5pu45YidIDwga2FraXpvbWVcIDsKK+aXpeS5g+S4uCA8IGhpbm9tYXJ1XCA7Civoqqbnv5IgPCBzaG91c2h1dVwgOwor54iG56yRIDwgYmFrdXNob3VcIDsKK+e/kuS9nCA8IHNodXVzYWt1XCA7Civnibnms6ggPCB0b2t1Y2h1dVwgOwor5pqm5a2mIDwgcmVraWdha3VcIDsKK+S4uOWCtyA8IHRhbWFraXp1XCA7CivkvZXlh6bov4QgPCBkb2tvbWFkZVwgOwor6L+R5Ly85YCkIDwga2luamljaGlcIDsKK+mAj+ejgeaApyA8IHRvdWppc2VpXCA7CivlpYnnpZ0gPCBob3VzaHVrdVwgOwor5L+d6K236aCYIDwgaG9nb3J5b3VcIDsKK+S4reWFsSA8IGNodXVreW91XCA7CivnibnmtL7lk6EgPCB0b2t1aGFpblwgOwor5Lim5YiXIDwgaGVpcmV0c3VcIDsKK+S5heS5hSA8IGhpc2FiaXNhXCA7CivllL7mtrLohbogPCBkYWVraXNlblwgOwor57eR6LGGIDwgcnlva3V0b3VcIDsKK+WlveeJqSA8IGtvdWJ1dHN1XCA7CivkuIvpmaLorbDlk6EgPCBrYWluZ2lpblwgOwor5bqt5pyo5oi4IDwgbml3YWtpZG9cIDsKK+mdkueVsyA8IGFvZGF0YW1pXCA7Civpm5voj4ogPCBoaW5hZ2lrdVwgOwor5pmC5pmCIDwgdG9raWRva2lcIDsKK+W+jOaPtOiAhSA8IGtvdWVuc2hhXCA7Civpu4TpiYTpibEgPCBvdXRla2tvdVwgOwor5aSx56yRIDwgc2hpc3Nob3VcIDsKK+aVl+iJsiA8IGhhaXNob2t1XCA7Civpm6rohpogPCB5dWtpaGFkYVwgOwor5pqX5a6kIDwgYW5zaGl0c3VcIDsKK+WPpOS7o+S6uiA8IGtvZGFpamluXCA7Civkuovli5nmnI0gPCBqaW11ZnVrdVwgOwor5bCP6bqm57KJIDwga29tdWdpa29cIDsKK+S4i+WRsyA8IHNoaXRhYWppXCA7CivkuI3murbmgKcgPCBmdXlvdXNlaVwgOwor57WQ6auqIDwga2VwcGF0c3VcIDsKK+mhp+WVj+WboyA8IGtvbW9uZGFuXCA7CivmmLzmmYIgPCBoaXJ1ZG9raVwgOwor5L+d5pyJ6ICFIDwgaG95dXVzaGFcIDsKK+mBv+eXhemZoiA8IGhpYnlvdWluXCA7CivliY3mma/msJcgPCBtYWVnZWlraVwgOwor5Li45LqLIDwgbWFydWdvdG9cIDsKK+mbu+awl+akheWtkCA8IGRlbmtpaXN1XCA7CivlpJbkuqTlk6EgPCBnYWlrb3VpblwgOwor5paH566xIDwgZnVtaWJha29cIDsKK+Wkp+etkiA8IG9vZHp1dHN1XCA7CivkuLjkuLggPCBtYXJ1bWFydVwgOwor6Ziy6ZuqIDwgYm91c2V0c3VcIDsKK+mKheebuOWgtCA8IGRvdXNvdWJhXCA7CivoqLPoqq0gPCB5YWt1ZG9rdVwgOwor5LiD5ZGzIDwgc2hpY2hpbWlcIDsKK+aWueeVpSA8IGhvdXJ5YWt1XCA7CivkuLjkuIAgPCBtYXJ1aWNoaVwgOwor5Lit5L2OIDwgbmFrYWJpa3VcIDsKK+Wni+acqyA8IHNoaW1hdHN1XCA7CivlpKfnq6UgPCBvb3dhcmF3YVwgOwor5YK+5pac5bqmIDwga2Vpc2hhZG9cIDsKK+mrmOW6puioiCA8IGtvdWRva2VpXCA7CivpnZLnjokgPCBzZWlneW9rdVwgOwor6L+R5pyq5p2lIDwga2lubWlyYWlcIDsKK+aNlemvqOiIuSA8IGhvZ2Vpc2VuXCA7CivlpLHnpZ4gPCBzaGlzc2hpblwgOwor6ZuG6JC9IDwgc2h1dXJha3VcIDsKK+mdmeeJqSA8IHNlaWJ1dHN1XCA7CivliqDlrrPogIUgPCBrYWdhaXNoYVwgOwor5pWw54+g546JIDwganV6dWRhbWFcIDsKK+S4gOWQkSA8IGhpdGFzdXJhXCA7Civni6zlraYgPCBkb2t1Z2FrdVwgOwor5pio5pydIDwgc2FrdWNob3VcIDsKK+S4gOWPoiA8IGhpdG9tdXJhXCA7Civmm7LkuosgPCBrdXNlZ290b1wgOwor5omL57695YWIIDwgdGViYXNha2lcIDsKK+ijnOWKqee/vCA8IGhvam95b2t1XCA7CivkuK3kuK0gPCBuYWthbmFrYVwgOwor5oWI5oKy5b+DIDwgamloaXNoaW5cIDsKK+mhnuWIpSA8IHJ1aWJldHN1XCA7CivlpJbosqjlgrUgPCBnYWlrYXNhaVwgOwor57iu57esIDwgY2hpcmltZW5cIDsKK+aDheWgseWMliA8IGpvdWhvdWthXCA7CivmmKjmmoEgPCBzYWt1Z3lvdVwgOwor57eP5LqI566XIDwgc291eW9zYW5cIDsKK+ecn+WknOS4rSA8IG1heW9uYWthXCA7CivntZDpoZggPCBrZWNoaWdhblwgOwor5pio5pilIDwgc2FrdXNodW5cIDsKK+S4h+WIpSA8IGJhbmJldHN1XCA7CivpoIHlsqkgPCBrZXRzdWdhblwgOwor5Lim5LimIDwgbmFtaW5hbWlcIDsKK+e4pue4niA8IHRhdGVqaW1hXCA7CivoppfprZQgPCBub3pva2ltYVwgOwor5aKX6KitIDwgem91c2V0c3VcIDsKK+S4gOWJsiA8IGljaGl3YXJpXCA7CivlpJXnq4sgPCB5dXVkYWNoaVwgOwor5aGp6L6bIDwgc2hpb2thcmFcIDsKK+aXp+a1gSA8IGt5dXVyeXV1XCA7CivkuIvmhI/orZggPCBrYWlzaGlraVwgOwor5Luj56i95Y+kIDwgZGFpZ2Vpa29cIDsKK+awuOS9j+aoqSA8IGVpanV1a2VuXCA7Civkv53mnInnsbMgPCBob3l1dW1haVwgOwor6Ieq5Zu96KqeIDwgamlrb2t1Z29cIDsKK+WPjeWvvuiqniA8IGhhbnRhaWdvXCA7CivlpInnlbDkvZMgPCBoZW4nJ2l0YWlcIDsKK+e1uemHnSA8IGtpbnViYXJpXCA7CivnjYTkuK0gPCBnb2t1Y2h1dVwgOwor5Yip5bex55qEIDwgcmlrb3Rla2lcIDsKK+S4gOWFiCA8IGhpdG9tYXp1XCA7Civlu7rlhbflsYsgPCB0YXRlZ3V5YVwgOwor5piH5qC8IDwgc2hvdWtha3VcIDsKK+mYsuWvkuWFtyA8IGJvdWthbmd1XCA7CivlpbPlrabmoKEgPCBqb2dha2tvdVwgOwor5L+d5a6I5oCnIDwgaG9zaHVzZWlcIDsKK+e5reeOiSA8IG1heXVkYW1hXCA7CivmmI7mnIggPCBtZWlnZXRzdVwgOwor6Z6t5pK7IDwgYmVudGF0c3VcIDsKK+mbqOeykiA8IGFtZXRzdWJ1XCA7Civlpb3mma/msJcgPCBrb3VrZWlraVwgOwor5bmz5ZKM57at5oyBIDwgaGVpd2FpamlcIDsKK+S6pOS7mOiAhSA8IGtvdWZ1c2hhXCA7Civlj6/lpInmlbAgPCBrYWhlbnN1dVwgOwor6Iqx5paH5a2XIDwgaGFuYW1vamlcIDsKK+aatOWKmyA8IGJvdXJ5b2t1XCA7CivpnaLkvJrml6UgPCBtZW5rYWliaVwgOwor6Kaz6ZayIDwga2FuJydldHN1XCA7CivnhZnojYnlsYsgPCB0YWJha295YVwgOwor57eR6Je7IDwgcnlva3Vzb3VcIDsKK+Wjrue1tiA8IHNvdXpldHN1XCA7Civpm6jmqKHmp5ggPCBhbWVtb3lvdVwgOwor5pWZ57GNIDwga3lvdXNla2lcIDsKK+aYjuaYpSA8IG15b3VzaHVuXCA7CivkuIfku6MgPCB5b3JvenV5b1wgOwor5pSv6ISIIDwgc2hpbXlha3VcIDsKK+aPuuexg+acnyA8IHlvdXJhbmtpXCA7CivnqoHnoLTlj6MgPCB0b3BwYWtvdVwgOwor54us5Zu9IDwgZG9rdWtva3VcIDsKK+i/keS7o+WMliA8IGtpbmRhaWthXCA7Civngrnngavns7sgPCB0ZW5rYWtlaVwgOwor5LqM5bm055SfIDwgbmluZW5zZWlcIDsKK+aYn+awl+S9kyA8IHNlaWtpdGFpXCA7CivkuI3nrYnlj7cgPCBmdWRvdWdvdVwgOwor5pyJ54K66Lui5aSJIDwgdWl0ZW5wZW5cIDsKK+S6lOi+uuW9oiA8IGdvaGVua2VpXCA7CivkuozovKrou4ogPCBuaXJpbnNoYVwgOwor5LiJ5LiLIDwgc2Fuc2hpdGFcIDsKK+Wkp+eVpSA8IHRhaXJ5YWt1XCA7CivnlKjnrqrnrKUgPCB5b3VkYW5zdVwgOwor5aWz5rCXIDwgb24nJ25ha2tlXCA7CivloanosYYgPCBzaGlvbWFtZVwgOwor5Ya36JS15bqrIDwgcmVpem91a29cIDsKK+S4h+S4gCA8IG1hbicnaWNoaVwgOwor6Zuq56m6IDwgeXVraXpvcmFcIDsKK+isgOauuiA8IGJvdXNhdHN1XCA7CivntYTplbcgPCBrdW1pY2hvdVwgOwor6KiA6KqsIDwgZ2Vuc2V0c3VcIDsKK+S4jeaJgOWtmCA8IGZ1c2hvem9uXCA7Civop5LpgJogPCBrYWt1dHN1dVwgOwor5oqV5YWJ5ZmoIDwgdG91a291a2lcIDsKK+a1nOiMhOWtkCA8IGhhbWFuYXN1XCA7Civlj6Tmm7jlsZUgPCBrb3Nob3RlblwgOwor5LqM5Y2B5LujIDwgbmlqdXVkYWlcIDsKK+S4gOS4gCA8IGl0c3VpdHN1XCA7CivntbHovYQgPCB0b3VrYXRzdVwgOwor6Kyh5puyIDwgeW91a3lva3VcIDsKK+e0hemxkiA8IGJlbmltYXN1XCA7CivluILooZflm7MgPCBzaGlnYWl6dVwgOwor54us5ZSxIDwgZG9rdXNob3VcIDsKK+aoueaeneeKtiA8IGp1c2hpam91XCA7Civnt5HojLYgPCByeW9rdWNoYVwgOwor5bqP55uk5oimIDwgam9iYW5zZW5cIDsKK+aYvOW4rSA8IGhpcnVzZWtpXCA7CivngavmiJDlsqkgPCBrYXNlaWdhblwgOwor57WE5ZCI5ZOhIDwga3VtaWFpaW5cIDsKK+S6nOiEseiHvCA8IGFkYWtreXV1XCA7CivntIXprq0gPCBiZW5pemFrZVwgOwor57SN6aqoIDwgbm91a290c3VcIDsKK+mssemHkeiJsiA8IHVrb24nJ2lyb1wgOwor5pen5qCqIDwga3l1dWthYnVcIDsKK+Wnq+WuriA8IGhpbWVtaXlhXCA7CivlopzokL0gPCB0c3VpcmFrdVwgOwor6ay85q2m6ICFIDwgb25pbXVzaGFcIDsKK+aWnOaKleW9sSA8IHNoYXRvdWVpXCA7CivmlbDnmb4gPCBzdXVoeWFrdVwgOwor6ZuG57SEIDwgc2h1dXlha3VcIDsKK+iqmOeZuiA8IHl1dWhhdHN1XCA7Civmu5HnqbrmqZ8gPCBrYWtrdXVraVwgOwor54mH5qCXIDwga2F0YWt1cmlcIDsKK+aXrOaciCA8IGp1bmdldHN1XCA7Civou73pqI7lhbUgPCBrZWlraWhlaVwgOwor5LqM5YWD6KuWIDwgbmlnZW5yb25cIDsKK+aJi+aWmeeQhiA8IHRlcnlvdXJpXCA7CivljZjliKnms5UgPCB0YW5yaWhvdVwgOwor5b6h56We6Ly/IDwgb21pa29zaGlcIDsKK+WFiOmLreWMliA8IHNlbicnZWlrYVwgOwor6Zu755WlIDwgZGVucnlha3VcIDsKK+aSkuW4g+WJpCA8IHNhcHB1emFpXCA7CivmlofniakgPCBidW5idXRzdVwgOwor5ZGJ5pyN5bGLIDwgZ29mdWt1eWFcIDsKK+aUueeviSA8IGthaWNoaWt1XCA7CivoqabnrYsgPCB0YW1lc3VqaVwgOwor6Kmm562GIDwgc2hpaGl0c3VcIDsKK+aXp+aapiA8IGt5dXVyZWtpXCA7Civml6zml6UgPCBqdW5qaXRzdVwgOwor6ZuR56iOIDwgemF0c3V6ZWlcIDsKK+iqreeJqSA8IHlvbWltb25vXCA7Civmurbop6PngokgPCB5b3VrYWlyb1wgOwor6Zuq55uyIDwgc2V0c3Vtb3VcIDsKK+WPr+WkieaApyA8IGthaGVuc2VpXCA7Civorablr58gPCBrZWlzYXRzdVwgOwor5bm06b2i5beuIDwgbmVucmVpc2FcIDsKK+ino+iqrCA8IGthaXNldHN1XCA7Civnt6nnt6kgPCB5dXJ1eXVydVwgOwor5pep5pepIDwgaGF5YWJheWFcIDsKK+inkuiynSA8IHRzdW5vZ2FpXCA7CivliIDlnK3lrrYgPCB0b3VrZWlrYVwgOwor5pGC6aOfIDwgc2Vzc2hva3VcIDsKK+ilv+mZoyA8IG5pc2hpamluXCA7Civps7Pku5noirEgPCBob3VzZW5rYVwgOwor6Kem6KeSIDwgc2hva2tha3VcIDsKK+Wjgee0mSA8IGthYmVnYW1pXCA7CivlsI7ms6LnrqEgPCBkb3VoYWthblwgOwor5Y2Y5q+U5L6LIDwgdGFucGlyZWlcIDsKK+aNlemvqOegsiA8IGhvZ2VpaG91XCA7CivntJDpnakgPCBoaW1va2F3YVwgOwor55u06Laz6KKLIDwgamlrYXRhYmlcIDsKK+aXp+aVmSA8IGt5dXVreW91XCA7Civpm4bnqY0gPCBzaHV1c2VraVwgOwor5Z+L6aqoIDwgbWFpa290c3VcIDsKK+aXl+acrCA8IGhhdGFtb3RvXCA7CivlpJbniakgPCBnYWlidXRzdVwgOwor5oKq5aSq6YOOIDwgYWt1dGFyb3VcIDsKK+acieeQhuaVsCA8IHl1dXJpc3V1XCA7Civpg6jliIblk4EgPCBidWJ1bmhpblwgOwor5Y+v54eD5oCnIDwga2FuZW5zZWlcIDsKK+S4jeWWhOaEnyA8IGZ1emVua2FuXCA7CivntJrplbcgPCBreXV1Y2hvdVwgOwor5pas5q66IDwgemFuc2F0c3VcIDsKK+a0l+mdouaJgCA8IHNlbm1lbmpvXCA7Civnianmg4UgPCBidXRzdWpvdVwgOwor6ZuG56WoIDwgc2h1dWh5b3VcIDsKK+mbqOeUtyA8IGFtZW90b2tvXCA7CivniIbmsoggPCBiYWt1Y2hpblwgOwor5aSc54OPIDwgeW9nYXJhc3VcIDsKK+mAgeayueeuoSA8IHNvdXl1a2FuXCA7CivmoLzlrZDmiLggPCBrb3VzaGlkb1wgOwor5YW35L2T5L6LIDwgZ3V0YWlyZWlcIDsKK+Wnq+WeoyA8IGhpbWVnYWtpXCA7CivmlK/mjIHmna0gPCBzaGlqaWtvdVwgOwor54aK56y5IDwga3VtYXphc2FcIDsKK+eGseeZuiA8IG5lcHBhdHN1XCA7CivnhKHpmZDlpKcgPCBtdWdlbmRhaVwgOwor6aCG5YiXIDwganVucmV0c3VcIDsKK+WiqOe5qSA8IHN1bWluYXdhXCA7Civnsr7nsbPmiYAgPCBzZWltYWlqb1wgOwor6KyZ5oqRIDwga2VuJyd5b2t1XCA7Civmkq7opoEgPCBzYXRzdXlvdVwgOwor5aSJ54mpIDwgaGVuYnV0c3VcIDsKK+e1seiqnuirliA8IHRvdWdvcm9uXCA7CivmnKrplovlor4gPCBtaWthaWtvblwgOwor5pil5a61IDwgc2h1bnNob3VcIDsKK+S9nOalreiyuyA8IHNhZ3lvdWhpXCA7Civpl4fpm7IgPCB5YW1pa3Vtb1wgOwor5aSn6Ziq5bqcIDwgb29zYWthZnVcIDsKK+eMiue+jua4kyA8IGdlaWJpa2VpXCA7CivmiZPmkoPnjosgPCBkYWdla2lvdVwgOwor57aa6JC9IDwgem9rdXJha3VcIDsKK+mbqueOiSA8IHl1a2lkYW1hXCA7CivmkZjpjLIgPCB0ZWtpcm9rdVwgOwor5bqD6JGJ5qi5IDwga291eW91anVcIDsKK+e3iue4riA8IGtpbnNodWt1XCA7CivoqabnnYAgPCBzaGljaGFrdVwgOwor6I2J5Ym15pyfIDwgc291c291a2lcIDsKK+S+jeihm+mVtyA8IGppZWljaG91XCA7CivkuozpgLLmnKggPCBuaXNoaW5naVwgOwor5aSW5r+gIDwgc290b2JvcmlcIDsKK+WmvuWuhSA8IHNob3V0YWt1XCA7CivpoZXlnKjljJYgPCBrZW56YWlrYVwgOwor5YaN6Kmm5ZCIIDwgc2Fpc2hpYWlcIDsKK+S8nemfs+WZqCA8IGRlbicnb25raVwgOwor576p5YuZ55qEIDwgZ2ltdXRla2lcIDsKK+i8uOWNteeuoSA8IHl1cmFua2FuXCA7CivkvY7liKnph5EgPCB0ZWlyaWtpblwgOwor5oim5Yip5ZOBIDwgc2VucmloaW5cIDsKK+aWh+iqnuS9kyA8IGJ1bmdvdGFpXCA7Civkub7mgKfmsrkgPCBrYW5zZWl5dVwgOwor6KeS6KKWIDwga2FrdXNvZGVcIDsKK+aTgueyieacqCA8IHN1cmlrb2dpXCA7Civpl4fpl4cgPCB5YW1peWFtaVwgOwor5oyH5bCO5ZOhIDwgc2hpZG91aW5cIDsKK+acqumWi+WcsCA8IG1pa2FpY2hpXCA7Civnp5jmm7jlrpggPCBoaXNob2thblwgOwor5aSa5rm/IDwgdGFzaGl0c3VcIDsKK+mdouaOpSA8IG1lbnNldHN1XCA7Civpm5HnlKggPCB6YXRzdXlvdVwgOwor5paw5qCqIDwgc2hpbmthYnVcIDsKK+aRuui2syA8IHN1cmlhc2hpXCA7CivmrablrrbniakgPCBidWtlbW9ub1wgOwor5pW055CG5Yi4IDwgc2VpcmlrZW5cIDsKK+iCsumbm+WZqCA8IGlrdXN1dWtpXCA7CivlnKfmkL7mqZ8gPCBhc3Nha3VraVwgOwor5peB5peBIDwga2F0YWdhdGFcIDsKK+aWsOafhCA8IHNoaW5nYXJhXCA7CivmlL/nlaUgPCBzZWlyeWFrdVwgOwor6KaL6YCaIDwgbWl0b29zaGlcIDsKK+mbo+eJqSA8IG5hbmJ1dHN1XCA7CivkuozliIbms5UgPCBuaWJ1bmhvdVwgOwor5re35oiQ6KqeIDwga29uc2VpZ29cIDsKK+ePiOeQsuiLkSA8IGtvdWhpaWVuXCA7Civkuozpg6jkvZwgPCBuaWJ1c2FrdVwgOwor57eP5Lya5bGLIDwgc291a2FpeWFcIDsKK+imi+i/lCA8IG1pa2Flc2hpXCA7Civku5XmiYvmiKYgPCBzaGl0ZXNlblwgOwor5aer5ZCbIDwgaGltZWdpbWlcIDsKK+aUu+eVpSA8IGtvdXJ5YWt1XCA7CivntZDoq5YgPCBrZXRzdXJvblwgOwor5aWP5puyIDwgc291a3lva3VcIDsKK+WlveWlveeIuiA8IGtvdWtvdXlhXCA7CivnqI7li5nnvbIgPCB6ZWltdXNob1wgOwor6LKp5aOy5qmfIDwgaGFuYmFpa2lcIDsKK+mcveaciCA8IHNlaWdldHN1XCA7CivnqbrmsJflrZQgPCBrdXVraWtvdVwgOwor55ay5Yq05oSfIDwgaGlyb3VrYW5cIDsKK+aUvuawtOi3ryA8IGhvdXN1aXJvXCA7CivmlrDmmqYgPCBzaGlucmVraVwgOwor54S86IKJIDwgeWFraW5pa3VcIDsKK+e1kOiogCA8IGtldHN1Z2VuXCA7CivoqLznpaggPCBzaG91aHlvdVwgOwor6ZqP562GIDwgenVpaGl0c3VcIDsKK+WkluazlSA8IHNvdG9ub3JpXCA7CivmlrDmmKUgPCBzaGluc2h1blwgOwor5Lya6K2w5omAIDwga2FpZ2lzaG9cIDsKK+mZuOe2miA8IHJpa3V6b2t1XCA7CivnhrHnhrEgPCBhdHN1YXRzdVwgOwor5aKX56+JIDwgem91Y2hpa3VcIDsKK+W9ouWuueiqniA8IGtlaXlvdWdvXCA7CivkuIDlm57miKYgPCBpa2thaXNlblwgOwor57iu5ribIDwgc2h1a3VnZW5cIDsKK+e5geauliA8IGhhbnNob2t1XCA7CivlpKnmpbUgPCB0ZW5reW9rdVwgOwor55aR5ZWP6KmeIDwgZ2ltb25zaGlcIDsKK+aXp+W5lSA8IGt5dXViYWt1XCA7CivntbnojqIgPCBraW51c2F5YVwgOwor6Ium5Yq05Lq6IDwga3Vyb3VuaW5cIDsKK+WkseagvCA8IHNoaWtrYWt1XCA7CivogZbngavlj7AgPCBzZWlrYWRhaVwgOwor5pel5bi4IDwgbmljaGlqb3VcIDsKK+awtOS9jeaomSA8IHN1aWloeW91XCA7CivmgrLoprPoq5YgPCBoaWthbnJvblwgOwor5aaE6Kqe5oiSIDwgbW91Z29rYWlcIDsKK+mbkeeEtiA8IHphdHN1emVuXCA7CivmsLjlsI/kvZwgPCBlaWtvc2FrdVwgOwor54Kt57Sg6Yu8IDwgdGFuc29rb3VcIDsKK+e5iue2readnyA8IHNlbmlzb2t1XCA7Civop6PmlL7ljLogPCBrYWlob3VrdVwgOwor5L+d5a6I5YWaIDwgaG9zaHV0b3VcIDsKK+aUvueGsSA8IGhvdW5ldHN1XCA7CivoqpjmrrogPCB5dXVzYXRzdVwgOwor57Sg6LOqIDwgc29zaGl0c3VcIDsKK+e0heS4gOeCuSA8IGtvdWl0dGVuXCA7CivlnoLpq6ogPCB0YXJlZ2FtaVwgOwor6ZuB54iqIDwgZ2FuZHp1bWVcIDsKK+e4puazoiA8IHRhdGVuYW1pXCA7CivoqLrnmYIgPCBzaGlucnlvdVwgOwor57aa57aaIDwgem9rdXpva3VcIDsKK+eIhuaSgyA8IGJha3VnZWtpXCA7Civlrrbluq3nlKggPCBrYXRlaXlvdVwgOwor6KaL6K2YIDwga2Vuc2hpa2lcIDsKK+iZmuepuuiUtSA8IGtva3V1em91XCA7CivoqrDmn5AgPCBkYXJlc29yZVwgOwor5peL5b6LIDwgc2Vucml0c3VcIDsKK+S8muioiOiqsiA8IGthaWtlaWthXCA7CivnhrHmupAgPCBuZXRzdWdlblwgOwor5Yuk5YuZ6ICFIDwga2lubXVzaGFcIDsKK+WknOahnCA8IHlvemFrdXJhXCA7CivmlofmnKsgPCBidW5tYXRzdVwgOwor6Led6Zui5oSfIDwga3lvcmlrYW5cIDsKK+aXp+WuhSA8IGt5dXV0YWt1XCA7Civoqr/mlZkgPCBjaG91a3lvdVwgOwor5pmC5YG2IDwgdG9raXRhbWFcIDsKK+WmguWunyA8IG55b2ppdHN1XCA7Civmlo7ml6UgPCBzYWlqaXRzdVwgOwor54ax5raZIDwgbmV0c3VydWlcIDsKK+mbu+altSA8IGRlbmt5b2t1XCA7CivlobXnrrEgPCBnb21pYmFrb1wgOwor5pWP5rS7IDwgYmlua2F0c3VcIDsKK+mWi+mXoiA8IGthaWJ5YWt1XCA7CivnhaXnmbogPCBrYW5wYXRzdVwgOwor55yL6K235rOVIDwga2FuZ29ob3VcIDsKK+Wkp+aXpSA8IGRhaW5pY2hpXCA7CivlgqzkuovloLQgPCBzYWlqaWpvdVwgOwor6ay85YW16ZqKIDwga2loZWl0YWlcIDsKK+Wls+WtkOWkpyA8IGpvc2hpZGFpXCA7Civpn5PkurogPCBrYXJhYml0b1wgOwor5aSW5p6gIDwgc290b3dha3VcIDsKK+WUr+aIkeirliA8IHl1aWdhcm9uXCA7CivmnKroo73lk4EgPCBtaXNlaWhpblwgOwor5pW35p2/IDwgc2hpa2lpdGFcIDsKK+iqrOaYjiA8IHNldHN1bWVpXCA7CivnhKHntbHliLYgPCBtdXRvdXNlaVwgOwor57im5qiqIDwgdGF0ZXlva29cIDsKK+imgeiooyA8IHlvdWtldHN1XCA7CivlopfnmbogPCB6b3VoYXRzdVwgOwor6YCg6Ii55omAIDwgem91c2Vuam9cIDsKK+i6q+aUr+W6piA8IG1paml0YWt1XCA7CivmmI7lk7IgPCBtZWl0ZXRzdVwgOwor5aSc5pi8IDwgeW9ydWhpcnVcIDsKK+mHkeacrOS9jSA8IGtpbmhvbicnaVwgOwor5aSV5pyIIDwgeXV1ZHp1a2lcIDsKK+WkmumdouaApyA8IHRhbWVuc2VpXCA7CivlpKflnovmqZ8gPCBvb2dhdGFraVwgOwor5pa55byPIDwgaG91c2hpa2lcIDsKK+acqumWi+S6uiA8IG1pa2FpamluXCA7CivploDplqUgPCBtb25iYXRzdVwgOwor6JeB5bGL5qC5IDwgd2FyYXlhbmVcIDsKK+aciOS4lueVjCA8IGdlc3Nla2FpXCA7CivlvpfmhI/poZQgPCB0b2t1aWdhb1wgOwor5omL6ZaT6ZqZIDwgdGVtYWhpbWFcIDsKK+aUv+ayu+eKryA8IHNlaWppaGFuXCA7CivmmKXlhYggPCBoYXJ1c2FraVwgOwor5aeL5YCkIDwgaGFqaW1lbmVcIDsKK+a0l+mdouWZqCA8IHNlbm1lbmtpXCA7CivmlrDlvaIgPCBzaGluZ2F0YVwgOwor5Lq65paH5a2XIDwgaGl0b21vamlcIDsKK+aooemAoOWTgSA8IG1vem91aGluXCA7Civpmbjnm7ggPCByaWt1c2hvdVwgOwor5ZG85ZC45ZmoIDwga29reXV1a2lcIDsKK+e1uee2vyA8IGtpbnV3YXRhXCA7CivlnJ/lnLDpkZEgPCB0b2NoaWthblwgOwor54mG5aOBIDwgc2hvdWhla2lcIDsKK+Wjiua7hSA8IGthaW1ldHN1XCA7CivpmpvniakgPCBraXdhbW9ub1wgOwor5rCX6YCB566hIDwga2lzb3VrYW5cIDsKK+S9jumHkeWIqSA8IHRlaWtpbnJpXCA7CivlpK3mipggPCB5b3VzZXRzdVwgOwor6Iux5bCP5paH5a2XIDwgZWlrb21vamlcIDsKK+aVteaWuSA8IHRla2lnYXRhXCA7CivplbfplbcgPCBuYWdhbmFnYVwgOwor5bi95a2Q5bGLIDwgYm91c2hpeWFcIDsKK+W+oeaIkOWKnyA8IGdvc2Vpa291XCA7Civnj4rnkZrmtbcgPCBzYW5nb2thaVwgOwor57SE6Ku+IDwgeWFrdWRha3VcIDsKK+aVsOaXpSA8IHN1dWppdHN1XCA7Civmm7PlhYnlvL4gPCBlaWtvdWRhblwgOwor5Y2D6YeM55y8IDwgc2VucmlnYW5cIDsKK+mYsue4riA8IGJvdXNodWt1XCA7CivokL3kuIvlgpggPCByYWtrYXNhblwgOwor5pOB56uLIDwgeW91cml0c3VcIDsKK+a4oeiIquiAhSA8IHRva291c2hhXCA7CivmlbDmlbAgPCBrYXp1a2F6dVwgOwor5aSn5omAIDwgb29kb2tvcm9cIDsKK+WcsOm8oCA8IGppbmV6dW1pXCA7CivkuIvmiYvkurogPCBnZXNodW5pblwgOwor5Yem5aWz5p6XIDwgc2hvam9yaW5cIDsKK+e0lOihgCA8IGp1bmtldHN1XCA7Civkuovmpa3pg6ggPCBqaWd5b3VidVwgOwor5a+M5bGx5oi/IDwgZnV6YW5ib3VcIDsKK+eyiemjviA8IGZ1bnNob2t1XCA7CivnuKbmm7ggPCB0YXRlZ2FraVwgOwor5pOm55a1IDwgc3VyaWtpenVcIDsKK+WhmueptCA8IHRzdWthYW5hXCA7CivmjqXlvoXosrsgPCBzZXR0YWloaVwgOwor57mK57at5oCnIDwgc2VuJydpc2VpXCA7CivmiYvoqbHms5UgPCBzaHV3YWhvdVwgOwor5L2V5Yem5YW25YemIDwgZG9rb3Nva29cIDsKK+S/nemkiuWcsCA8IGhveW91Y2hpXCA7CivnhafnhLwgPCB0ZXJpeWFraVwgOwor5Yip5bex5b+DIDwgcmlrb3NoaW5cIDsKK+eCueeBq+agkyA8IHRlbmthc2VuXCA7CivntbbnrYYgPCB6ZXBwaXRzdVwgOwor6Zuj5puyIDwgbmFua3lva3VcIDsKK+ioiOeVpSA8IGtlaXJ5YWt1XCA7CivpjpTpibHngokgPCB5b3Vrb3Vyb1wgOwor5Y+v5o+b576kIDwga2FrYW5ndW5cIDsKK+S8muitsOWgtCA8IGthaWdpam91XCA7CivkurrpnZ7kurogPCBuaW5waW5pblwgOwor6KaL6JC9IDwgbWlvdG9zaGlcIDsKK+eCuOiWrCA8IHNha3V5YWt1XCA7CivoirHnsonnrqEgPCBrYWZ1bmthblwgOwor5Z+L6KitIDwgbWFpc2V0c3VcIDsKK+mBjua/gOa0viA8IGthZ2VraWhhXCA7CivmjqXpqqggPCBzZWtrb3RzdVwgOwor6Zm954mpIDwgeW91YnV0c3VcIDsKK+irluWuoiA8IHJvbmt5YWt1XCA7Civop5LnrJsgPCB0c3Vub2J1ZVwgOwor54ax5pybIDwgbmV0c3Vib3VcIDsKK+a6tuino+W6piA8IHlvdWthaWRvXCA7CivplrLoqq0gPCBldHN1ZG9rdVwgOwor5Y+l6Kqt54K5IDwga3V0b3V0ZW5cIDsKK+aNnOafu+mZoyA8IHNvdXNhamluXCA7CivoqrDlvbwgPCB0YXJla2FyZVwgOwor57Gz6aOfIDwgYmVpc2hva3VcIDsKK+e0ouiOqyA8IHNha3ViYWt1XCA7CivllrbliKnnmoQgPCBlaXJpdGVraVwgOwor6KKr54G96ICFIDwgaGlzYWlzaGFcIDsKK+S4jeW+k+mghiA8IGZ1anV1anVuXCA7Civlj43lsITngokgPCBoYW5zaGFyb1wgOwor6ZuR5puyIDwgemFra3lva3VcIDsKK+S9neWDgueXhSA8IGt1cnVieW91XCA7CivlpKrlt7sgPCBmdXRvbWFraVwgOwor5paw5aa7IDwgbmlpZHp1bWFcIDsKK+mDveS8muS6uiA8IHRva2FpamluXCA7CivntZDntK4gPCBrZXNzYXRzdVwgOwor5ZGq56aB6YGTIDwganVrb25kb3VcIDsKK+WPpOeJiOacrCA8IGtvaGFuYm9uXCA7CivmuKzlgJnmiYAgPCBzb2trb3Vqb1wgOwor5pen5YqHIDwga3l1dWdla2lcIDsKK+a0vumBo+maiiA8IGhha2VudGFpXCA7CivmkZjoiq8gPCB0ZWtpc2hpblwgOwor5q2T6L+O5a60IDwga2FuZ2VpZW5cIDsKK+eJqeS6iyA8IG1vbm9nb3RvXCA7CivmiJDlip/oo6EgPCBzZWlrb3VyaVwgOwor6Kiz5rOoIDwgeWFrdWNodXVcIDsKK+aUueacrSA8IGthaXNhdHN1XCA7Civlrrbluq3mrIQgPCBrYXRlaXJhblwgOwor54Wu5rK4IDwgc2hhZnV0c3VcIDsKK+Wkp+W1kCA8IG9vYXJhc2hpXCA7CivlpJrlpInmlbAgPCB0YWhlbnN1dVwgOwor55S35oCn576OIDwgZGFuc2VpYmlcIDsKK+mbkeaWhyA8IHphdHN1YnVuXCA7Civpq5jmqZ/og70gPCBrb3VraW5vdVwgOwor57SZ6IqxIDwga2FtaWJhbmFcIDsKK+S6uumWk+iLpiA8IG5pbmdlbmt1XCA7CivnhLzniakgPCB5YWtpbW9ub1wgOwor57WQ56+AIDwga2Vzc2V0c3VcIDsKK+mVt+i7uCA8IGNob3VqaWt1XCA7CivlpJbluq0gPCBzb3Rvbml3YVwgOwor5LiJ5ZGz57eaIDwgc2hhbWlzZW5cIDsKK+e1hOe0kCA8IGt1bWloaW1vXCA7CivnspLpioAgPCB0c3VidWdpblwgOwor6ZaL6LGBIDwga2Fpa2F0c3VcIDsKK+e4geaXpSA8IGVuJyduaWNoaVwgOwor5ZCM56iL5bqmIDwgZG91dGVpZG9cIDsKK+WknOW1kCA8IHlvYXJhc2hpXCA7CivmlbDlvI8gPCBzdXVzaGlraVwgOwor5aW95aGp6I+MIDwga291ZW5raW5cIDsKK+mAgeawl+euoSA8IHNvdWtpa2FuXCA7CivniqDnibLogIUgPCBnaXNlaXNoYVwgOwor6Iqx57SL5p2/IDwga2Ftb25iYW5cIDsKK+mbu+WtkOWMliA8IGRlbnNoaWthXCA7CivniZvkubMgPCBneXV1bnl1dVwgOwor5bC95pyq5p2lIDwgamlubWlyYWlcIDsKK+WPpeiqreazlSA8IGt1dG91aG91XCA7Civlpb3lpKnmsJcgPCBrb3V0ZW5raVwgOwor6ZW36LazIDwgY2hvdXNva3VcIDsKK+WhqeeJqSA8IHNoaW9tb25vXCA7CivniYflgbQgPCBrYXRhZ2F3YVwgOwor5rWE5YyW5qe9IDwgam91a2Fzb3VcIDsKK+mbgOaWkSA8IHNvYmFrYXN1XCA7CivmnInlo7Dpn7MgPCB5dXVzZWlvblwgOwor6Zuy5b2iIDwga3Vtb2dhdGFcIDsKK+e1jOeptCA8IGtlaWtldHN1XCA7Civlj43kvZznlKggPCBoYW5zYXlvdVwgOwor5pKe552AIDwgZG91Y2hha3VcIDsKK+WFqOiHquWLlSA8IHplbmppZG91XCA7Civlj43lr77mtL4gPCBoYW50YWloYVwgOwor5pen5L2cIDwga3l1dXNha3VcIDsKK+e0heiKsSA8IGJlbmliYW5hXCA7Civlh6blpbPmgKcgPCBzaG9qb3NlaVwgOwor5omL6ZaT6LODIDwgdGVtYWNoaW5cIDsKK+mZsOa5vyA8IGluc2hpdHN1XCA7Civnt6jmm7IgPCBoZW5reW9rdVwgOwor57WE56uLIDwga3VtaXRhdGVcIDsKK+e0sOe0sCA8IGhvc29ib3NvXCA7CivoqabmjpggPCBzaGlrdXRzdVwgOwor5aGp54S8IDwgc2hpb3lha2lcIDsKK+WkluWxgCA8IGdhaWt5b2t1XCA7CivlopfmrpYgPCB6b3VzaG9rdVwgOwor5pen5Lq6IDwgZnVydWJpdG9cIDsKK+S4gOWbnuWIhiA8IGlra2FpYnVuXCA7Civnvbnngb3ogIUgPCByaXNhaXNoYVwgOwor6Kiz5qWtIDwgeWFrdWd5b3VcIDsKK+aOkumbqiA8IGhhaXNldHN1XCA7Civnspvou40gPCBzaHVrdWd1blwgOwor54ax5oSfIDwgbmV0c3VrYW5cIDsKK+WkseWinCA8IHNoaXR0c3VpXCA7Civlm73ps6UgPCBrb2t1Y2hvdVwgOwor6LKv54Kt5omAIDwgY2hvdGFuam9cIDsKK+iruOWFsSA8IG1vcm90b21vXCA7CivmnInkurrljJYgPCB5dXVqaW5rYVwgOwor5aSW5a6iIDwgZ2Fpa3lha3VcIDsKK+WNsOixoea0viA8IGluc2hvdWhhXCA7CivnhrHmg4UgPCBuZXRzdWpvdVwgOwor5aSW5a2rIDwgc290b21hZ29cIDsKK+ezluicnCA8IHRvdW1pdHN1XCA7Civpm6PlvbkgPCBuYW4nJ3lha3VcIDsKK+Whl+eJqSA8IG51cmltb25vXCA7CivniYjkuIsgPCBoYW5zaGl0YVwgOwor5qeN6aiO5YW1IDwgc291a2loZWlcIDsKK+mZpOa5vyA8IGpvc2hpdHN1XCA7CivpgIPpgb/ooYwgPCB0b3VoaWtvdVwgOwor5YaF54Gr6ImHIDwgbmFpa2F0ZWlcIDsKK+e1seeOhyA8IHRvdXNvdHN1XCA7Civml4XlhYggPCB0YWJpc2FraVwgOwor57Sw562GIDwgc2FpaGl0c3VcIDsKK+mbquW2uiA8IHNldHN1cmVpXCA7CivntbnniakgPCBraW51bW9ub1wgOwor5Yip5qip5bGLIDwgcmlrZW4nJ3lhXCA7CivoqLPmn4QgPCB3YWtlZ2FyYVwgOwor6KWf6IWwIDwgZXJpa29zaGlcIDsKK+e1kOedgCA8IGtldGNoYWt1XCA7Civnt5HmnpcgPCByeW9rdXJpblwgOwor6Zay5YW15Y+wIDwgZXBwZWlkYWlcIDsKK+e1kOebnyA8IGtldHN1bWVpXCA7Civmt7fnqK7oqp4gPCBrb25zaHVnb1wgOwor54ax5byBIDwgbmV0c3ViZW5cIDsKK+mAj+mBjuaApyA8IHRvdWthc2VpXCA7CivkvJropovoqJggPCBrYWlrZW5raVwgOwor6ZuR5b+1IDwgemF0c3VuZW5cIDsKK+iojuatuyA8IHVjaGlqaW5pXCA7Civnm7jkvLzngrkgPCBzb3VqaXRlblwgOwor6J665a2Q6YeYIDwgbmVqaWt1Z2lcIDsKK+WHpuWls+WzsCA8IHNob2pvaG91XCA7CivnnIvorbfluKsgPCBrYW5nb3NoaVwgOwor5pSv5omVIDwgc2hpaGFyYWlcIDsKK+imquedpiA8IHNoaW5ib2t1XCA7CivloIDnq68gPCBob3JpYmF0YVwgOwor6Zml5rKhIDwga2FuYm90c3VcIDsKK+inkueJmyA8IGtha3VneXV1XCA7Civpm5HlvbkgPCB6YXRzdWVraVwgOwor6Zuq5bGxIDwgeXVraXlhbWFcIDsKK+aciemggueCuSA8IHVjaG91dGVuXCA7Civoq7jkurogPCBtb3JvYml0b1wgOwor5LiA562J5pifIDwgaXR0b3VzZWlcIDsKK+S4i+awtOmBkyA8IGdlc3VpZG91XCA7CivpnZ7kurrmg4UgPCBoaW5pbmpvdVwgOwor6Zmj5rKhIDwgamluYm90c3VcIDsKK+eItuS4iiA8IGNoaWNoaXVlXCA7Civpm6rlrrMgPCBzZXRzdWdhaVwgOwor6ZW36KKWIDwgbmFnYXNvZGVcIDsKK+mYsueGsSA8IGJvdW5ldHN1XCA7CivkuLvnvqnogIUgPCBzaHVnaXNoYVwgOwor57iE5by1IDwgbmF3YWJhcmlcIDsKK+a0vumBo+i7jSA8IGhha2VuZ3VuXCA7Civlho3mj5DmoYggPCBzYWl0ZWlhblwgOwor576O5oSP6K2YIDwgYmlpc2hpa2lcIDsKK+ijj+mBkyA8IHVyYW1pY2hpXCA7CivpmqPmjqUgPCByaW5zZXRzdVwgOwor57aZ5q+NIDwgbWFtYWhhaGFcIDsKK+Wkp+WWnSA8IGRhaWthdHN1XCA7Civnt4/mnKzlrrYgPCBzb3Vob25rZVwgOwor5bqm5aSW6KaWIDwgZG9nYWlzaGlcIDsKK+WHuuadpeWFt+WQiCA8IGRla2lndWFpXCA7CivpnLLlh7ogPCByb3NodXRzdVwgOwor6Kiq5pelIDwgaG91bmljaGlcIDsKK+mBoOW+gemaiiA8IGVuc2VpdGFpXCA7CivloanmsLQgPCBzaGlvbWl6dVwgOwor55CG5oOz5Z6LIDwgcmlzb3VrZWlcIDsKK+aVt+WcsCA8IHNoaWtpY2hpXCA7Civku67liIbmlbAgPCBrYWJ1bnN1dVwgOwor6ZqG5piMIDwgcnl1dXNob3VcIDsKK+aWsOS/riA8IHNoaW5zaHV1XCA7CivliqnmlbDoqZ4gPCBqb3N1dXNoaVwgOwor57K+566X5omAIDwgc2Vpc2Fuam9cIDsKK+Wkp+WQiSA8IGRhaWtpY2hpXCA7CivlpJrpnaLkvZMgPCB0YW1lbnRhaVwgOwor5paw5L2cIDwgc2hpbnNha3VcIDsKK+mWouiEhyA8IHNla2l3YWtlXCA7Civnh63lj7AgPCBzaG9rdWRhaVwgOwor54Kt56qvIDwgc3VtaWdhbWFcIDsKK+mbu+WcpyA8IGRlbicnYXRzdVwgOwor6Zuo5aWzIDwgYW1lb24nJ25hXCA7Civmv4DpnIcgPCBnZWtpc2hpblwgOwor5aSJ5ZynIDwgaGVuJydhdHN1XCA7CivlvaLpqrjljJYgPCBrZWlnYWlrYVwgOwor5qyn57Gz5Lq6IDwgb3ViZWlqaW5cIDsKK+Wkp+WNkiA8IGRhaXNvdHN1XCA7CivntYzluKvlsYsgPCBreW91aml5YVwgOwor6Kqk5aSJ5o+bIDwgZ29oZW5rYW5cIDsKK+mChOS7mOmHkSA8IGthbnB1a2luXCA7Civlo4HlvbkgPCBrYWJleWFrdVwgOwor5o6b6Lu4IDwga2FrZWppa3VcIDsKK+e4hOWwuyA8IG5hd2FqaXJpXCA7Civoo7LopaAgPCB1Y2hpa2FrZVwgOwor5Z+6552jIDwga2lyaXN1dG9cIDsKK+aZqeW+oemjryA8IGJhbmdvaGFuXCA7CivohZXoh6rmhaIgPCB1ZGVqaW1hblwgOwor5rWE5rC05ZmoIDwgam91c3Vpa2lcIDsKK+WKqeaVmeirrSA8IGpva3lvdXl1XCA7CivlpKfliKUgPCB0YWliZXRzdVwgOwor5paJ5YiXIDwgc2VpcmV0c3VcIDsKK+mbquWbvSA8IHl1a2lndW5pXCA7Civlh6blpbPlnLAgPCBzaG9qb2NoaVwgOwor5aSn5YaKIDwgdGFpc2F0c3VcIDsKK+e3u+WvhiA8IGNoaW1pdHN1XCA7CivlpInlk7IgPCBoZW50ZXRzdVwgOwor57O456u5IDwgc2hpY2hpa3VcIDsKK+mWi+iEmiA8IGthaWt5YWt1XCA7CivmlK/lsYAgPCBzaGlreW9rdVwgOwor5aSx5L+dIDwgc2hpdHN1aG9cIDsKK+WIqeeUqOiAhSA8IHJpeW91c2hhXCA7CivntYLnhoQgPCBzaHV1c29rdVwgOwor54Sh57K+5Y21IDwgbXVzZWlyYW5cIDsKK+mxqSA8IGhhdGFoYXRhXCA7CivnhKHplqLkv4IgPCBtdWthbmtlaVwgOwor5aSW5YqbIDwgZ2Fpcnlva3VcIDsKK+iqv+S8jyA8IGNob3VidWt1XCA7Civpm5vlnosgPCBoaW5hZ2F0YVwgOwor5q2j5a2X5rOVIDwgc2Vpamlob3VcIDsKK+imgeeVpSA8IHlvdXJ5YWt1XCA7Civou43ljLvnm6MgPCBndW4nJ2lrYW5cIDsKK+mvkSA8IGthenVub2tvXCA7CivorabkuJblrrYgPCBrZWlzZWlrYVwgOwor5p2l5a2m5pyfIDwgcmFpZ2Fra2lcIDsKK+aYoOeUu+iplSA8IGVpZ2FoeW91XCA7CivmibnliKTogIUgPCBoaWhhbnNoYVwgOwor6ZaA6ISIIDwgbW9ubXlha3VcIDsKK+W5s+WPmeaWhyA8IGhlaWpvYnVuXCA7CivopJDoibIgPCBrYXNzaG9rdVwgOwor5LiJ6YeN6IumIDwgc2FuanV1a3VcIDsKK+mtgSA8IHNha2lnYWtlXCA7CivmqKHlgKPogIUgPCBtb2hvdXNoYVwgOwor6ayjIDwgdGF0ZWdhbWlcIDsKK+mbu+WKmyA8IGRlbnJ5b2t1XCA7CivkuojpgbjkvJogPCB5b3NlbmthaVwgOwor5ryU5aWP5LyaIDwgZW5zb3VrYWlcIDsKK+aVsOWIlyA8IHN1dXJldHN1XCA7CivmlL7ln5IgPCBob3VyYXRzdVwgOwor5aSW5YG0IDwgc290b2dhd2FcIDsKK+ihqOmWgCA8IG9tb3RlbW9uXCA7CivmlbDlhoogPCBzdXVzYXRzdVwgOwor6Zuy5YqpIDwga3Vtb3N1a2VcIDsKK+mbkeWaoiA8IHphdHN1bm91XCA7CivkuI3mtLvmgKcgPCBmdWthc3NlaVwgOwor5r+B6YWSIDwgZG9idXJva3VcIDsKK+Wcn+izqiA8IGRvc2hpdHN1XCA7Civplovlj6Ppg6ggPCBrYWlrb3VidVwgOwor5pW15YG0IDwgdGVraWdhd2FcIDsKK+WPjOiDtOapnyA8IHNvdWRvdWtpXCA7CivoqKXlvIEgPCB0b3RzdWJlblwgOwor6KOP6KGoIDwgdXJhb21vdGVcIDsKK+iqreS6hiA8IGRva3VyeW91XCA7CivngbDnr6kgPCBoYWlmdXJ1aVwgOwor57Kl6IW5IDwga2F5dWJhcmFcIDsKK+mgiOW8peWxsSA8IHNodW1pc2VuXCA7CivngInooYAgPCBzaGFrZXRzdVwgOwor5YG96YCg572qIDwgZ2l6b3V6YWlcIDsKK+WgheeCrSA8IGthdGF6dW1pXCA7Civntr/lvJMgPCB3YXRheXVtaVwgOwor6aSeIDwgaGFuYW11a2VcIDsKK+WeguiAsyA8IHRhcmVtaW1pXCA7CivoqbDllY8gPCBraXRzdW1vblwgOwor56eA55S75a62IDwgc2h1dWdha2FcIDsKK+S6pOS7o+WToSA8IGtvdXRhaWluXCA7Civlo7LljbQgPCBiYWlreWFrdVwgOwor5o6h6KGAIDwgc2Fpa2V0c3VcIDsKK+e4puWIlyA8IGp1dXJldHN1XCA7CivotaTpm7voqbEgPCBha2FkZW53YVwgOwor5pyJ5pyf5YiRIDwgeXV1a2lrZWlcIDsKK+WPo+ipseazlSA8IGtvdXdhaG91XCA7CivmiLjkuLvmqKkgPCBrb3NodWtlblwgOwor57W25pybIDwgemV0c3Vib3VcIDsKK+WFrOWuieWumCA8IGtvdWFua2FuXCA7CivmkoPmsoggPCBnZWtpY2hpblwgOwor6KeS5p+xIDwga2FrdWNodXVcIDsKK+Wbvei+sSA8IGtva3Vqb2t1XCA7Civmra/niZnnirYgPCBzaGlnYWpvdVwgOwor5Lyd5aOw5ZmoIDwgZGVuc2Vpa2lcIDsKK+mgkSA8IGthdGFrdW5hXCA7Civkv53pmbrph5EgPCBob2tlbmtpblwgOwor5aOr5Y2SIDwgc2hpc290c3VcIDsKK+aMh+aVsOmDqCA8IHNoaXN1dWJ1XCA7Civosaroj6/oiLkgPCBnb3VrYXNlblwgOwor5Li45pqX6KiYIDwgbWFydWFua2lcIDsKK+WcsOiiiyA8IGppYnVrdXJvXCA7Civlo7Llh7ogPCB1cmlkYXNoaVwgOwor57eK5a+GIDwga2lubWl0c3VcIDsKK+Wfuua6lueCuSA8IGtpanVudGVuXCA7Civmj7rnr60gPCB5dXJpa2Fnb1wgOwor6Zuq5YOPIDwgc2V0c3V6b3VcIDsKK+e0heeOiSA8IGtvdWd5b2t1XCA7CivnsbPolLUgPCBrb21lZ3VyYVwgOwor5b6M5o+05LyaIDwga291ZW5rYWlcIDsKK+a9rumiqCA8IHNoaW9rYXplXCA7CivlnovntJkgPCBrYXRhZ2FtaVwgOwor55yM6K2w5LyaIDwga2VuZ2lrYWlcIDsKK+ioquWuoiA8IGhvdWt5YWt1XCA7CivooYzlnKjmiYAgPCBhbnphaXNob1wgOwor6Zq8IDwgaGF5YWJ1c2FcIDsKK+ioseWrgSA8IGlpbmF6dWtlXCA7CivmjY/pgKAgPCBuZXRzdXpvdVwgOwor5Y+j6Kqe5paHIDwga291Z29idW5cIDsKK+WvneeFmeiNiSA8IG5ldGFiYWtvXCA7Civmlq3noLTlo4ogPCBkYW5oYWthaVwgOwor6Zm1IDwgbWlzYXNhZ2lcIDsKK+ejgemJhOmJsSA8IGppdGVra291XCA7Civlhobngrrmm78gPCBlbmdhd2FzZVwgOwor55yL6K235YW1IDwga2FuZ29oZWlcIDsKK+WWtualremDqCA8IGVpZ3lvdWJ1XCA7Civplo/np5IgPCB1cnV1YnlvdVwgOwor5LiN5raI5YyWIDwgZnVzaG91a2FcIDsKK+a9pOmjviA8IGp1bnNob2t1XCA7Civmi7PpqqggPCBnZW5rb3RzdVwgOwor57a/5a+GIDwgbWVubWl0c3VcIDsKK+S4jeW+s+e+qSA8IGZ1dG9rdWdpXCA7CivlnLDlkLnpm6ogPCBqaWZ1YnVraVwgOwor5r+A6LaKIDwgZ2VraWV0c3VcIDsKK+mgiOW8peWjhyA8IHNodW1pZGFuXCA7Civntr/lrp8gPCBtZW5qaXRzdVwgOwor5L2Q5bmV5rS+IDwgc2FiYWt1aGFcIDsKK+mWiiA8IHRzdWthZXJ1XCA7CivpoJPnl7TmsJcgPCB0b25jaGlraVwgOwor5Zu96LOKIDwga29rdXpva3VcIDsKK+WkmuaVsOWFmiA8IHRhc3V1dG91XCA7Civngrnmu4UgPCB0ZW5tZXRzdVwgOwor5r+A6LOeIDwgZ2VraXNob3VcIDsKK+aOoeayueaoqSA8IHNhaXl1a2VuXCA7CivmnaXkuJbntIAgPCByYWlzZWlraVwgOwor6ZqU5aOBIDwga2FrdWhla2lcIDsKK+WxseawtOeUuyA8IHNhbnN1aWdhXCA7CivmjoPpmaTkurogPCBzb3VqaW5pblwgOwor5oSP5ZGz6YOo6ZaAIDwgaW1pYnVtb25cIDsKK+S4gOetieWcsCA8IGl0dG91Y2hpXCA7CivnqI7li5nlrpggPCB6ZWltdWthblwgOwor55yL6K235Lq6IDwga2FuZ29uaW5cIDsKK+WNiuWIh+espiA8IGhhbmtpcHB1XCA7CivlnKfngJjlmaggPCBhdHN1cm9raVwgOwor57eR5ZywIDwgcnlva3VjaGlcIDsKK+Wfuua6luazlSA8IGtpanVuaG91XCA7Civnr4Dpm7sgPCBzZXRzdWRlblwgOwor5Y+X6Kyb6ICFIDwganVrb3VzaGFcIDsKK+a4rOi3neWEgCA8IHNva2t5b2dpXCA7CivnspjnspggPCBuZWJhbmViYVwgOwor5Ya35YeN5qmfIDwgcmVpdG91a2lcIDsKK+mLuCA8IG5va29naXJpXCA7CivnrYnot53pm6IgPCB0b3VreW9yaVwgOwor54KO54axIDwgZW4nJ25ldHN1XCA7Civlm73oqLEgPCBrdW5pbW90b1wgOwor5LiN5ZCN5pWwIDwgZnVtZWlzdXVcIDsKK+mWi+eZuiA8IGthaWhhdHN1XCA7CivoqabpgYvou6IgPCBzaGl1bnRlblwgOwor576p5YuH5YW1IDwgZ2l5dXVoZWlcIDsKK+imqueUu+mdoiA8IG95YWdhbWVuXCA7Civmi5LlkKbmqKkgPCBreW9oaWtlblwgOwor5LqM55Wq57eaIDwgbmliYW5zZW5cIDsKK+WWtualreiyuyA8IGVpZ3lvdWhpXCA7Civnm7jkvLzlvaIgPCBzb3VqaWtlaVwgOwor572554G95rCRIDwgcmlzYWltaW5cIDsKK+WvhOeUn+acqCA8IHlhZG9yaWdpXCA7Civopqrml48gPCBzaGluem9rdVwgOwor54Gr6Jas5bqrIDwga2F5YWt1a29cIDsKK+i1pOmgreW3viA8IGFrYXp1a2luXCA7CivonKXonLTluqcgPCB0b2thZ2V6YVwgOwor6K2m5aCx6Z+zIDwga2VpaG91b25cIDsKK+eyieeyiSA8IGtvbmFnb25hXCA7CivlpKfonKXonLQgPCBvb3Rva2FnZVwgOwor6ZuH5Lq6IDwgeWF0b2luaW5cIDsKK+abtOeUn+acnyA8IGtvdXNlaWtpXCA7CivoqK3llY8gPCBzZXRzdW1vblwgOwor5Zyf5bem6KGb6ZaAIDwgZG96YWVtb25cIDsKK+immuabuCA8IG9ib2VnYWtpXCA7CivnlpHllY/mlocgPCBnaW1vbmJ1blwgOwor6I2354K65pu/IDwgbmlnYXdhc2VcIDsKK+e3qOWFpSA8IGhlbicnbnl1dVwgOwor5ouS6aOfIDwga3lvc2hva3VcIDsKK+iFjuiHk+eCjiA8IGppbnpvdWVuXCA7CivntK/mnIggPCBydWlnZXRzdVwgOwor5Z6C55u0IDwgc3VpY2hva3VcIDsKK+WvhOi0iOiAhSA8IGtpem91c2hhXCA7Civlrrbluq3lhoUgPCBrYXRlaW5haVwgOwor57SF5q67IDwgYmVuaWdhcmFcIDsKK+iQveiqnuWutiA8IHJha3Vnb2thXCA7CivnhKHnr4Dmk40gPCBtdXNlc3NvdVwgOwor6KeS5bqXIDwga2Fkb21pc2VcIDsKK+e3tOS5syA8IHJlbicnbnl1dVwgOwor5a6555aR6ICFIDwgeW91Z2lzaGFcIDsKK+exs+ezoCA8IGtvbWVudWthXCA7CivlsZXplovlm7MgPCB0ZW5rYWl6dVwgOwor56eB55Sf5YWQIDwgc2hpc2VpamlcIDsKK+i6viA8IHNoaXRzdWtlXCA7Civnt4/lipsgPCBzb3VyeW9rdVwgOwor5aSn5omL562LIDwgb290ZXN1amlcIDsKK+e0r+aXpSA8IHJ1aWppdHN1XCA7CivlhazlrprkvqEgPCBrb3V0ZWlrYVwgOwor5rCX5YiG5bGLIDwga2lidW4nJ3lhXCA7CivlnKjogbcgPCB6YWlzaG9rdVwgOwor5Z+L5rKhIDwgbWFpYm90c3VcIDsKK+S4gOetieWFtSA8IGl0dG91aGVpXCA7CivkuIvmsLTnrqEgPCBnZXN1aWthblwgOwor5pW05pWw5q+UIDwgc2Vpc3V1aGlcIDsKK+eymOedgCA8IG5lbmNoYWt1XCA7Civns57mupwgPCBrdXNvZGFtZVwgOwor56+J6YCgIDwgY2hpa3V6b3VcIDsKK+ekvuWLmeaJgCA8IHNoYW11c2hvXCA7Civop6blqpIgPCBzaG9rdWJhaVwgOwor6auY5bGk6ZuyIDwga291c291dW5cIDsKK+W4uOWll+iqniA8IGpvdXRvdWdvXCA7CivoiLnlpJbmqZ8gPCBzZW5nYWlraVwgOwor6ZqK5YiXIDwgdGFpcmV0c3VcIDsKK+WPjOaal+i7iiA8IHNvdWFuc2hhXCA7CivntKLmlbUgPCBzYWt1dGVraVwgOwor5peF5a6i5qmfIDwgcnlva2Fra2lcIDsKK+Wil+WItyA8IHpvdXNhdHN1XCA7Civnt5Hkvr8gPCByeW9rdWJlblwgOwor5r2u6LazIDwgc2hpb2FzaGlcIDsKK+mWsuattCA8IGV0c3VyZWtpXCA7CivpgYvllrbogIUgPCB1bicnZWlzaGFcIDsKK+aBo+aEj+eahCA8IHNoaWl0ZWtpXCA7CivntI3mnK0gPCBub3VzYXRzdVwgOwor56C05aSp6I2SIDwgaGF0ZW5rb3VcIDsKK+eGseW4r+WknCA8IG5ldHRhaXlhXCA7CivpgZTmiJDluqYgPCB0YXNzZWlkb1wgOwor5aSa6KeS5b2iIDwgdGFrYWtrZWlcIDsKK+aMr+iiliA8IGZ1cmlzb2RlXCA7Civns5/msYEgPCBrYXN1amlydVwgOwor5YWl5Lya5qipIDwgaXJpYWlrZW5cIDsKK+WNg+iRieecjCA8IGNoaWJha2VuXCA7CivkupTmnIjpm6ggPCBzYW1pZGFyZVwgOwor5rqW5Lya5ZOhIDwganVua2FpaW5cIDsKK+iruiA8IGtvdG93YXphXCA7CivntITmnZ8gPCB5YWt1c29rdVwgOwor5rC05puc5pelIDwgc3VpeW91YmlcIDsKK+a4h+awtOacnyA8IGthc3N1aWtpXCA7CivmipHprLEgPCB5b2t1dXRzdVwgOwor56u26aas5aC0IDwga2VpYmFqb3VcIDsKK+aMh+iyqyA8IHl1YmludWtpXCA7Civps6nlsI/lsYsgPCBoYXRvZ295YVwgOwor5r+A6IetIDwgZ2VraXNodXVcIDsKK+S4jeato+imliA8IGZ1c2Vpc2hpXCA7CivopovmiYAgPCBtaWRva29yb1wgOwor5Zub5Y2K5pyfIDwgc2hpaGFua2lcIDsKK+eyl+eOhyA8IGFyYXJpdHN1XCA7CivkvZznlKjngrkgPCBzYXlvdXRlblwgOwor6YGK5ZyS5ZywIDwgeXV1ZW5jaGlcIDsKK+i7jOmBk+iIuSA8IGtpZG91c2VuXCA7CivlvIHnkIblo6sgPCBiZW5yaXNoaVwgOwor57WC5bmVIDwgc2h1dW1ha3VcIDsKK+ilsuaSgyA8IHNodXVnZWtpXCA7CivpurvphZTpioMgPCBtYXN1aWp1dVwgOwor6KSMIDwgZnVuZG9zaGlcIDsKK+acqOieuuWtkCA8IG1va3VuZWppXCA7CivntZDlsYAgPCBrZWtreW9rdVwgOwor5q2p5pWw6KiIIDwgaG9zdXVrZWlcIDsKK+S4u+mhjOatjCA8IHNodWRhaWthXCA7CivnrYvpqqggPCBzdWppYm9uZVwgOwor5q2j5Lya5ZOhIDwgc2Vpa2FpaW5cIDsKK+W+ruWIhuazlSA8IGJpYnVuaG91XCA7Civli5Xlk6Hku6QgPCBkb3VpbnJlaVwgOwor6Kaz5a6iIDwga2Fua3lha3VcIDsKK+aOpeedgCA8IHNldGNoYWt1XCA7CivpnZLnk6blj7AgPCBzZWlnYWRhaVwgOwor6Zmj5YiXIDwgamlucmV0c3VcIDsKK+a4oeiIueWgtCA8IHRvc2Vuam91XCA7CivlnJ/nrYYgPCB0c3VrdXNoaVwgOwor57Kb54S2IDwgc2h1a3V6ZW5cIDsKK+aEj+itmOS4iyA8IGlzaGlraWthXCA7CivntLDlvJUgPCBob3NvYmlraVwgOwor6Kaq5bGAIDwgb3lha3lva3VcIDsKK+S/neitt+WbvSA8IGhvZ29rb2t1XCA7CivlkIzmgKfmhJsgPCBkb3VzZWlhaVwgOwor5rK55Zyn5ZmoIDwgeXVhdHN1a2lcIDsKK+eHlemdkuaLsyA8IGVuc2Vpa2VuXCA7CivlubzlubTmnJ8gPCB5b3VuZW5raVwgOwor6LGq6I+v54mIIDwgZ291a2FiYW5cIDsKK+ihqOiKuCA8IG9tb3RlZ2VpXCA7CivljLvljp/nl4UgPCBpZ2VuYnlvdVwgOwor6Zu76Kmx57eaIDwgZGVud2FzZW5cIDsKK+WGt+WHjeW6qyA8IHJlaXRvdWtvXCA7CivpgoTku5jnqI4gPCBrYW5wdXplaVwgOwor5byB6K236ICFIDwgYmVuZ29zaGFcIDsKK+ijheedgCA8IHNvdWNoYWt1XCA7Civpm7voqbHntrIgPCBkZW53YW1vdVwgOwor55m75bGx6YGTIDwgdG96YW5kb3VcIDsKK+ibpCA8IGhhbWFndXJpXCA7Civmv4PnuK4gPCBub3VzaHVrdVwgOwor5oSP5ZGz5Y6f55CGIDwgaW1pZ2VucmlcIDsKK+aPkOeBryA8IGNob3VjaGluXCA7CivpmL/miL/ps6UgPCBhaG91ZG9yaVwgOwor5LqI5YKZ55qEIDwgeW9iaXRla2lcIDsKK+ijj+eUuiA8IHVyYW1hY2hpXCA7CivlnJ/npZ4gPCB1Y2hpZ2FtaVwgOwor5om25Yqp5paZIDwgZnVqb3J5b3VcIDsKK+WggOW3nSA8IGhvcmlrYXdhXCA7CivnjL/nn6XmgbUgPCBzYXJ1ZGppZVwgOwor5Zyw6JS16aGUIDwgaml6b3VnYW9cIDsKK+e1tuWRvSA8IHpldHN1bWVpXCA7CivpmYvliqMgPCByb3VyZXRzdVwgOwor5L2c5qWt5aC0IDwgc2FneW91YmFcIDsKK+ethumghiA8IGhpdHN1anVuXCA7Civnqbrnm7jloLQgPCBrdXVzb3ViYVwgOwor6KK0552AIDwgaGFrYW1hZ2lcIDsKK+WbveexjSA8IGtva3VzZWtpXCA7CivmjL3ogokgPCBoaWtpbmlrdVwgOwor5re35ZCI6KqeIDwga29uZ291Z29cIDsKK+WmpeWNlOahiCA8IGRha3lvdWFuXCA7CivntLDlr4YgPCBzYWltaXRzdVwgOwor6ZaT5p+EIDwgYWlkYWdhcmFcIDsKK+eEoeaKteaKlyA8IG11dGVpa291XCA7CivmkoPlopwgPCBnZWtpdHN1aVwgOwor6JGJ56+A54K5IDwgaGFzZXR0ZW5cIDsKK+S7luWLleipniA8IHRhZG91c2hpXCA7CivmmKDnlLvni4IgPCBlaWdha3lvdVwgOwor5Zu9562WIDwga29rdXNha3VcIDsKK+azleiPr+e1jCA8IGhva2VreW91XCA7CivnrYbpmaMgPCBoaXRzdWppblwgOwor6YWi5paZ55CGIDwgc3VyeW91cmlcIDsKK+aUv+W6nOexsyA8IHNlaWZ1bWFpXCA7CivntZDlm6MgPCBrZXRzdWRhblwgOwor6J6i6ZuqIDwga2Vpc2V0c3VcIDsKK+Wlvee1kOaenCA8IGtvdWtla2thXCA7CivmtLvmgKfljJYgPCBrYXNzZWlrYVwgOwor5Yqp6KiA6ICFIDwgam9nb25zaGFcIDsKK+ijj+WNg+WutiA8IHVyYXNlbmtlXCA7CivoiI7liKnloZQgPCBzaGFyaXRvdVwgOwor6J226a6rIDwgY2hvdXphbWVcIDsKK+aQpuaJiyA8IGthcmFtZXRlXCA7CivkuI3npZ3lhIAgPCBidXNodXVnaVwgOwor5Zuj57WQIDwgZGFua2V0c3VcIDsKK+mBjua4oeeahCA8IGthdG90ZWtpXCA7CivpmbboirjlrrYgPCB0b3VnZWlrYVwgOwor57SZ5bGRIDwga2FtaWt1enVcIDsKK+S9nOalreWToSA8IHNhZ3lvdWluXCA7CivooYDoibIgPCBrZXNzaG9rdVwgOwor5aSa5pGp5bedIDwgdGFtYWdhd2FcIDsKK+W+ruiLpueskSA8IGJpa3VzaG91XCA7CivmrLrnnp7ogIUgPCBnaW1hbnNoYVwgOwor6ZaA5pytIDwgbW9uc2F0c3VcIDsKK+eri+azleW6nCA8IHJpcHBvdWZ1XCA7Civooqvngb3lnLAgPCBoaXNhaWNoaVwgOwor54yb5omT6ICFIDwgbW91ZGFzaGFcIDsKK+e1tuWAqyA8IHpldHN1cmluXCA7CivlnovmnqAgPCBrYXRhd2FrdVwgOwor5LiN56Wl5LqLIDwgZnVzaG91amlcIDsKK+e1kOaenOirliA8IGtla2thcm9uXCA7Civpl4fluIIgPCB5YW1paWNoaVwgOwor6J6N6ZuqIDwgeXV1c2V0c3VcIDsKK+ewkueriyA8IHNhbnJpdHN1XCA7CivkuIvmsLTmup0gPCBnZXN1aWtvdVwgOwor5rC06aKo5ZGCIDwgbWl6dWJ1cm9cIDsKK+aWueS9jeinkiA8IGhvdWlrYWt1XCA7CivpmLLlobXnnYAgPCBib3VqaW5naVwgOwor5pei6KaW5oOzIDwga2lzaGlrYW5cIDsKK+WcsOeGsSA8IGNoaW5ldHN1XCA7Civogb4gPCBtaW1pc2hpaVwgOwor5Y+j6Kqe5L2TIDwga291Z290YWlcIDsKK+W5uemDqOS8miA8IGthbmJ1a2FpXCA7CivkuqTpmpvosrsgPCBrb3VzYWloaVwgOwor562L6YeRIDwgc3VqaWdhbmVcIDsKK+atpuWjq+mBkyA8IGJ1c2hpZG91XCA7CivprZTmlrnpmaMgPCBtYWhvdWppblwgOwor566X6KGTIDwgc2FuanV0c3VcIDsKK+iRoeiQhOmFkiA8IGJ1ZG91c2h1XCA7Civplbfml4UgPCBuYWdhdGFiaVwgOwor5Y+M5a2Q5bqnIDwgZnV0YWdvemFcIDsKK+iEseawtOapnyA8IGRhc3N1aWtpXCA7Civngavlj6Pljp8gPCBrYWtvdWdlblwgOwor5L2O5qyh5YWDIDwgdGVpamlnZW5cIDsKK+mYsuS6uiA8IHNha2ltb3JpXCA7CivljrPlhqzmnJ8gPCBnZW50b3VraVwgOwor5LiN6YCA6LuiIDwgZnV0YWl0ZW5cIDsKK+ifu+icgiA8IGFyaWJhY2hpXCA7CivmiYvlnJ/nlKMgPCB0ZW1peWFnZVwgOwor5Y2x6Zm66KaWIDwga2lrZW5zaGlcIDsKK+ihneeriyA8IHRzdWl0YXRlXCA7CivoiJ7ouIrlm6MgPCBidXRvdWRhblwgOwor5LiN5rG65a6aIDwgZnVrZXR0ZWlcIDsKK+WbnuW4sOe3miA8IGthaWtpc2VuXCA7CivntrQgPCB0c3VkenVyaVwgOwor5Yy65rCR56iOIDwga3VtaW56ZWlcIDsKK+S9leeVquebriA8IG5hbmJhbm1lXCA7CivnsKHnlaUgPCBrYW5yeWFrdVwgOwor6ISx5rCX5rC0IDwgZGFra2lzdWlcIDsKK+WIkeWLmeaJgCA8IGtlaW11c2hvXCA7CivlgaXllZblrrYgPCBrZW50YW5rYVwgOwor56C05aOK6ICFIDwgaGFrYWlzaGFcIDsKK+iHquaEj+itmCA8IGppaXNoaWtpXCA7CivkuIPljYHot68gPCBuYW5hc29qaVwgOwor6Kaz6Ieq5ZyoIDwga2Fuaml6YWlcIDsKK+mBoOW/g+apnyA8IGVuc2hpbmtpXCA7CivmjajnjKsgPCBzdXRlbmVrb1wgOwor5pyx5Y2w6Ii5IDwgc2h1aW5zZW5cIDsKK+a0l+a/r+apnyA8IHNlbnRha2tpXCA7CivkuI3li5XnlKMgPCBmdWRvdXNhblwgOwor6J+A6LC3IDwga29tZWthbWlcIDsKK+WZtOawl+WtlCA8IGZ1bmtpa291XCA7Civon6/omasgPCBneW91Y2h1dVwgOwor6J2m5aS35p2+IDwgZXpvbWF0c3VcIDsKK+msvOWIkeS6iyA8IG9uaWtlaWppXCA7CivmhJ/lmIbnrKYgPCBrYW50YW5mdVwgOwor5rOV5Yy75a2mIDwgaG91aWdha3VcIDsKK+eyieacqyA8IGZ1bm1hdHN1XCA7Civnr4EgPCB0YWthbXVyYVwgOwor5Z+S5aSWIDwgcmFjaGlnYWlcIDsKK+mzpeWwj+WxiyA8IHRvcmlnb3lhXCA7CivlnarmlbAgPCB0c3Vib3N1dVwgOwor562NIDwgdGFrZW5va29cIDsKK+iHquWWtualrSA8IGppZWlneW91XCA7Civns57lsL8gPCBmdW4nJ255b3VcIDsKK+ihqOeZvSA8IGh5b3VoYWt1XCA7Civnsr7pjKzmiYAgPCBzZWlyZW5qb1wgOwor5Zub55m+IDwgeW9uaHlha3VcIDsKK+e0sOWIpSA8IHNhaWJldHN1XCA7CivmiYvpj6EgPCB0ZWthZ2FtaVwgOwor6buE6I+W6JKyIDwga2lzaG91YnVcIDsKK+S6nOWkp+mZuCA8IGF0YWlyaWt1XCA7CivlgpnogIPmrIQgPCBiaWtvdXJhblwgOwor6KCP6IKhIDwgZ2FuaW1hdGFcIDsKK+WggOWJsiA8IGhvcml3YXJpXCA7CivniYfmiYvplpMgPCBrYXRhdGVtYVwgOwor5Lq66ZaT5ZGzIDwgbmluZ2VubWlcIDsKK+mWouWuiCA8IHNla2ltb3JpXCA7CivnhKHmhI/orZggPCBtdWlzaGlraVwgOwor5oqV6LOH5a62IDwgdG91c2hpa2FcIDsKK+S4i+awtOadvyA8IGdlc3VpaXRhXCA7CivooYDnqI4gPCBrZXRzdXplaVwgOwor6aas6LmE5b2iIDwgYmF0ZWlrZWlcIDsKK+WFqOmfs+espiA8IHplbicnb25wdVwgOwor5Z+35YuZIDwgc2hpdHN1bXVcIDsKK+aNleeJqSA8IHRvcmltb25vXCA7CivmiJDpppkgPCBuYXJpa3lvdVwgOwor6auY6Lyd5bqmIDwga291a2lkb3VcIDsKK+exs+adviA8IGJlaW1hdHN1XCA7Civnr4Dns7ggPCBmdXNoaWl0b1wgOwor5LiN5Y+v5L61IDwgZnVrYXNoaW5cIDsKK+m7hOWPo+WFkCA8IGtvdWtvdWppXCA7CivliIbnp5HkvJogPCBidW5rYWthaVwgOwor56+A57GzIDwgc2V0c3VtYWlcIDsKK+icmOibm+iGnCA8IGt1bW9tYWt1XCA7Civkuovmpa3lrrYgPCBqaWd5b3VrYVwgOwor5om/6Ku+IDwgc2hvdWRha3VcIDsKK+WFpeS8muWcsCA8IGlyaWFpY2hpXCA7CivnrYboq4cgPCBoaXRzdWRhblwgOwor5Zuz5pu46aSoIDwgdG9zaG9rYW5cIDsKK+mWi+WxgCA8IGthaWt5b2t1XCA7Civoo73niYjmiYAgPCBzZWloYW5qb1wgOwor5p2x5aSn5a+6IDwgdG91ZGFpamlcIDsKK+mOjOmmliA8IGthbWFrdWJpXCA7Civnq4vpo58gPCByaXNzaG9rdVwgOwor5Lit5L2N5pWwIDwgY2h1dWlzdXVcIDsKK+ihhuebriA8IHNodXVtb2t1XCA7CivnrYbop6YgPCBoaXNzaG9rdVwgOwor5Y+C6LOA6ICFIDwgc2FuZ2FzaGFcIDsKK+aJueWHhuabuCA8IGhpanVuc2hvXCA7CivlnoLluZUgPCB0YXJlbWFrdVwgOwor56uL6aGYIDwgcml0c3VnYW5cIDsKK+aRguWLlSA8IHNldHN1ZG91XCA7CivoiJ7ouI/kvJogPCBidXRvdWthaVwgOwor57K+5a+GIDwgc2VpbWl0c3VcIDsKK+eQhuWMluWtpiA8IHJpa2FnYWt1XCA7Civnr4DnqbQgPCBmdXNoaWFuYVwgOwor55m75bGx6ICFIDwgdG96YW5zaGFcIDsKK+WKqeaVmeaOiCA8IGpva3lvdWp1XCA7CivliJHli5nlrpggPCBrZWltdWthblwgOwor55m4IDwgbWl6dW5vdG9cIDsKK+aUv+WLmeWumCA8IHNlaW11a2FuXCA7Civnr4DnqI4gPCBzZXRzdXplaVwgOwor5q2j576p5oSfIDwgc2VpZ2lrYW5cIDsKK+ezuOWPoyA8IGl0b2d1Y2hpXCA7CivljLvolqzlk4EgPCBpeWFrdWhpblwgOwor5YyW57Kn552AIDwga2VzaG91Z2lcIDsKK+aJi+i7iiA8IHRlZ3VydW1hXCA7CivngavpgZTno6ggPCBoaWRhcnVtYVwgOwor6ZW35bC7IDwgbmFnYWppcmlcIDsKK+a/gea1gSA8IGRha3VyeXV1XCA7CivntKDkurogPCBzaGlyb3V0b1wgOwor5LiN5b655bqVIDwgZnV0ZXR0ZWlcIDsKK+a/gOa1gSA8IGdla2lyeXV1XCA7Civln7fkuosgPCBzaGl0c3VqaVwgOwor55WZ5a6I5a6FIDwgcnVzdXRha3VcIDsKK+aJgOi9hCA8IHNob2thdHN1XCA7Civmi5LntbYgPCBreW96ZXRzdVwgOwor5Yeh6Kmm5ZCIIDwgYm9uc2hpYWlcIDsKK+S4h+atqeioiCA8IG1hbnBva2VpXCA7Civkuozmnprosp0gPCBuaW1haWdhaVwgOwor5o6S5pelIDwgaGFpbmljaGlcIDsKK+eUqOawtOi3ryA8IHlvdXN1aXJvXCA7Civns7vliJcgPCBrZWlyZXRzdVwgOwor6KGw5ruFIDwgc3VpbWV0c3VcIDsKK+aZguioiOW6lyA8IHRva2VpdGVuXCA7Civlm7rlrprlrZAgPCBrb3RlaXNoaVwgOwor5pyJ54WZ54KtIDwgeXV1ZW50YW5cIDsKK+ijj+msvOmWgCA8IHVyYWtpbW9uXCA7CivmjqHmjpggPCBzYWlrdXRzdVwgOwor5b6h5q+N5qeYIDwgb2thYXNhbWFcIDsKK+WfkuWGhSA8IHJhY2hpbmFpXCA7CivpgZPnpZbnpZ4gPCBkb3Vzb2ppblwgOwor5Zyo5pelIDwgemFpbmljaGlcIDsKK+WQiOazleWMliA8IGdvdWhvdWthXCA7CivmvIHoibIgPCBneW9zaG9rdVwgOwor5ouZ562GIDwgc2VwcGl0c3VcIDsKK+e0lOS4gCA8IGp1bicnaXRzdVwgOwor6aaW6YO95ZyPIDwgc2h1dG9rZW5cIDsKK+S4ieavm+eMqyA8IG1pa2VuZWtvXCA7CivmjqLnn6XmqZ8gPCB0YW5jaGlraVwgOwor5q2754Gr5bGxIDwgc2hpa2F6YW5cIDsKK+iJsuaooeanmCA8IGlyb21veW91XCA7Civns7jpm7voqbEgPCBpdG9kZW53YVwgOwor6YeN5aSn5YyWIDwganV1ZGFpa2FcIDsKK+aQrOWFpSA8IGhhbicnbnl1dVwgOwor6Zai5Y+WIDwgc2VraXRvcmlcIDsKK+S4ieauteebriA8IHNhbmRhbm1lXCA7Civnpa3lo4fluqcgPCBzYWlkYW56YVwgOwor5pC+5LmzIDwgc2FrdW55dXVcIDsKK+eDj+W4veWtkOWQjSA8IGVib3NoaW5hXCA7CivmvKvnrYYgPCBtYW5waXRzdVwgOwor5YWE5byf5a2QIDwgYW5pZGVzaGlcIDsKK+mBi+WRveirliA8IHVubWVpcm9uXCA7Civmma7pgJrnp5EgPCBmdXRzdXVrYVwgOwor5LiK5Y+k5Y+yIDwgam91a29zaGlcIDsKK+mgkOiyr+mHkSA8IHlvY2hva2luXCA7CivmipznvqQgPCBiYXRzdWd1blwgOwor5aal5b2T5oCnIDwgZGF0b3VzZWlcIDsKK+WbveafhCA8IGt1bmlnYXJhXCA7CivokaHokIToibIgPCBidWRvdWlyb1wgOwor5o6S5rC06LevIDwgaGFpc3Vpcm9cIDsKK+aoquaWremdoiA8IG91ZGFubWVuXCA7CivmlbTntYzmqZ8gPCBzZWlrZWlraVwgOwor5omL6KKLIDwgdGVidWt1cm9cIDsKK+mWo+WDmiA8IGtha3VyeW91XCA7CivnsKHkvZPlrZcgPCBrYW50YWlqaVwgOwor6aKo6YKq5rCX5ZGzIDwga2F6ZWdpbWlcIDsKK+WPr+a6tueJhyA8IGtheW91aGVuXCA7CivlhIDku5flhbUgPCBnaWpvdWhlaVwgOwor6Zm45bGL5qC5IDwgcm9rdXlhbmVcIDsKK+expOW8lSA8IGt1amliaWtpXCA7Civluqfoq4fkvJogPCB6YWRhbmthaVwgOwor5biG5YmN6Ii5IDwgaG9tYWVzZW5cIDsKK+aMh+ipseazlSA8IHNoaXdhaG91XCA7Civlgb3pgKDlk4EgPCBnaXpvdWhpblwgOwor562L6IKJIDwga2luJyduaWt1XCA7CivkuJbluK/mlbAgPCBzZXRhaXN1dVwgOwor5LiA5ZGo5pyfIDwgaXNzaHV1a2lcIDsKK+S4reiAs+eCjiA8IGNodXVqaWVuXCA7CivnqpPpmpsgPCBtYWRvZ2l3YVwgOwor5a+M5aOr6YCaIDwgZnVqaXRzdXVcIDsKK+WutuWxi+eojiA8IGthb2t1emVpXCA7CivplpPlhasgPCBrYW5wYWNoaVwgOwor56y56IifIDwgc2FzYWJ1bmVcIDsKK+apn+WLlemaiiA8IGtpZG91dGFpXCA7CivpmLLngavnt5ogPCBib3VrYXNlblwgOwor5pWZ6K236ZmiIDwga3lvdWdvaW5cIDsKK+aOpeWyuCA8IHNldHN1Z2FuXCA7CivmiK/oqIAgPCB0YXdhZ290b1wgOwor6J665a2Q5bGxIDwgbmVqaXlhbWFcIDsKK+S5s+WFkOmZoiA8IG55dXVqaWluXCA7CivooYDmtrIgPCBrZXRzdWVraVwgOwor6IWV5pmC6KiIIDwgdWRlZG9rZWlcIDsKK+igj+eOiSA8IGthbml0YW1hXCA7CivooYDmtpkgPCBrZXRzdXJ1aVwgOwor5oi46KKLIDwgdG9idWt1cm9cIDsKK+acseWNsOeKtiA8IHNodWluam91XCA7Civmjqjlr58gPCBzdWlzYXRzdVwgOwor55yf5oSP576pIDwgc2hpbicnaWdpXCA7CivpgYrmioDloLQgPCB5dXVnaWpvdVwgOwor5Yun5bel5aC0IDwga2Fua291YmFcIDsKK+aOpeWuoiA8IHNla2t5YWt1XCA7CivkuInlhqDppqwgPCBzYW5rYW5iYVwgOwor5ZeF6KaaIDwga3l1dWtha3VcIDsKK+WkqeaJjeWFkCA8IHRlbnNhaWppXCA7CivpgIbojILmnKggPCBzYWthbW9naVwgOwor5oqY56+AIDwgb3JpZnVzaGlcIDsKK+ijnOWFheWFtSA8IGhvanV1aGVpXCA7Civlu7rorbDogIUgPCBrZW5naXNoYVwgOwor5bi45aSc54GvIDwgam91eWF0b3VcIDsKK+a9pOa7kSA8IGp1bmthdHN1XCA7CivpjozotrMgPCBrYW1hYXNoaVwgOwor6I2J5bGL5qC5IDwga3VzYXlhbmVcIDsKK+a9rua1gSA8IGNob3VyeXV1XCA7Civlm5vmnIggPCBzaGlnYXRzdVwgOwor5Ziy56yRIDwgY2hvdXNob3VcIDsKK+aoqeWogeiAhSA8IGtlbicnaXNoYVwgOwor56qu6L+9IDwga3l1dXRzdWlcIDsKK+eqrui/qyA8IGt5dXVoYWt1XCA7Civmj6HlipsgPCBha3VyeW9rdVwgOwor56CV5bKp5qmfIDwgc2FpZ2Fua2lcIDsKK+iRoeiQhOezliA8IGJ1ZG91dG91XCA7Civnmb3kupzppKggPCBoYWt1YWthblwgOwor5re35ZKM5oCnIDwga29ud2FzZWlcIDsKK+W3pumhp+WPs+echCA8IHNha291YmVuXCA7CivljJbnsqfmrr8gPCBrZXdhaWRlblwgOwor6Y2b6YmEIDwgdGFudGV0c3VcIDsKK+aPmuWKmyA8IHlvdXJ5b2t1XCA7CivljYPliIbmr5QgPCBzZW5idW5oaVwgOwor56u56JauIDwgdGFrZXlhYnVcIDsKK+aJjeiJsiA8IHNhaXNob2t1XCA7CivmmYLoqIjlj7AgPCB0b2tlaWRhaVwgOwor5ZCM5q+N5aeJIDwgZG91Ym9zaGlcIDsKK+eri+irliA8IHJpdHN1cm9uXCA7CivnsbPlnaogPCBiZWl0c3Vib1wgOwor5qWgIDwga3VzdW5va2lcIDsKK+ethueusSA8IGZ1ZGViYWtvXCA7CivmuKzph48gPCBzb2t1cnlvdVwgOwor562J562JIDwgbmFkb25hZG9cIDsKK+eri+iogCA8IHJpdHN1Z2VuXCA7Civpu4TmsLTku5kgPCBraXN1aXNlblwgOwor57Kb5YWaIDwgc2h1a3V0b3VcIDsKK+W8seWRs+WZjCA8IHlvd2FtaXNvXCA7Civoo7jlh7ogPCByYXNodXRzdVwgOwor6Y2L6YecIDwgbmFiZWthbWFcIDsKK+eVmeWuiOS4rSA8IHJ1c3VjaHV1XCA7CivooZ3mkoMgPCBzaG91Z2VraVwgOwor5re36ZuRIDwga29uemF0c3VcIDsKK+Wwj+WFkOenkSA8IHNob3VuaWthXCA7CivplbfkuYUgPCBjaG91a3l1dVwgOwor5LiJ5Y2B5oi4IDwgc2Fuamlra29cIDsKK+mbu+mbouWxpCA8IGRlbnJpc291XCA7Civpq5jouI/mtL4gPCBrb3V0b3VoYVwgOwor55CG5bel57O7IDwgcmlrb3VrZWlcIDsKK+eEoeekvOismyA8IGJ1cmVpa291XCA7CivlnLDlooMgPCBkaml6YWthaVwgOwor5oy/5oqcIDwgc291YmF0c3VcIDsKK+S7ruWQjeaWh+WtlyA8IGthbmFtb2ppXCA7CivkuI3ljYHliIYgPCBmdWp1dWJ1blwgOwor5ZO65Lmz5pyfIDwgaG9ueXV1a2lcIDsKK+efs+ayueeOiyA8IHNla2l5dW91XCA7CivooaPmiYsgPCBrb3JvbW9kZVwgOwor5b6h5Yip55uKIDwgZ29yaXlha3VcIDsKK+aKleabuOWutiA8IHRvdXNob2thXCA7CivpgbrnlZnlk4EgPCBpcnl1dWhpblwgOwor6Ju46LazIDwgdGFrb2FzaGlcIDsKK+mBuuS8neeXhSA8IGlkZW5ieW91XCA7Civmj5rngq3mqZ8gPCB5b3V0YW5raVwgOwor6Z2e5aSJ5o+bIDwgaGloZW5rYW5cIDsKK+aUueato+ahiCA8IGthaXNlaWFuXCA7Civpq5jpq5jluqYgPCBrb3Vrb3Vkb1wgOwor57WM55Sj5ammIDwga2Vpc2FucHVcIDsKK+aOpeWQiCA8IHNldHN1Z291XCA7Civoo4/lj6MgPCB1cmFndWNoaVwgOwor5oqR55WZIDwgeW9rdXJ5dXVcIDsKK+i1pOijuOijuCA8IHNla2lyYXJhXCA7Civmt7flkIjmqZ8gPCBrb25nb3VraVwgOwor5r2u5pmCIDwgc2hpb2Rva2lcIDsKK+WvhOi0iOWTgSA8IGtpem91aGluXCA7Civmv4Plr4YgPCBub3VtaXRzdVwgOwor5aSc6KGM5oCnIDwgeWFrb3VzZWlcIDsKK+WJjeihm+a0viA8IHplbicnZWloYVwgOwor5pyq5rG6566XIDwgbWlrZXNzYW5cIDsKK+WbveWtpiA8IGtva3VnYWt1XCA7CivmvKDmvKAgPCBiYWt1YmFrdVwgOwor5o+J5LqLIDwgbW9tZWdvdG9cIDsKK+S4u+imgemDqCA8IHNodXlvdWJ1XCA7Civpgb/lr5LlnLAgPCBoaWthbmNoaVwgOwor5rC05Z6i6ZuiIDwgbWl6dWdvcmlcIDsKK+WnlOiol+eUnyA8IGl0YWt1c2VpXCA7CivorabloLHmqZ8gPCBrZWlob3VraVwgOwor5rip572o5rOVIDwgb24nJ2FucG91XCA7Civlr77lv5zniYggPCB0YWlvdWJhblwgOwor5ZaH5Zib5pWZIDwgcmFtYWt5b3VcIDsKK+mBuueVmeWIhiA8IGlyeXV1YnVuXCA7CivmmIbluIPojLYgPCBrb25idWNoYVwgOwor6by76autIDwgaGFuYWhpZ2VcIDsKK+S5l+eul+WZqCA8IGpvdXphbmtpXCA7Civnq4vokbUgPCB0YWNoaWFvaVwgOwor57KJ5LmzIDwgZnVuJydueXV1XCA7CivpvLvpq5ggPCBoYW5hdGFrYVwgOwor6JGs5YSA56S+IDwgc291Z2lzaGFcIDsKK+WIpOaknOS6iyA8IGhhbmtlbmppXCA7CivlloDooYAgPCBrYWtrZXRzdVwgOwor54m555Ww54K5IDwgdG9rdWl0ZW5cIDsKK+S/nemZuuWxiyA8IGhva2VuJyd5YVwgOwor5oqV54mpIDwgbmFnZW1vbm9cIDsKK+WcsOWNtSA8IGppdGFtYWdvXCA7CivkuI3pg73lkIggPCBmdXRzdWdvdVwgOwor5omA5oyB6YeRIDwgc2hvamlraW5cIDsKK+iZjuays+ixmiA8IHRvcmFmdWd1XCA7CivmioDog73ogIUgPCBnaW5vdXNoYVwgOwor5oqX6K2w5paHIDwga291Z2lidW5cIDsKK+iiluWeoyA8IHNvZGVnYWtpXCA7Civml6Loo73lk4EgPCBraXNlaWhpblwgOwor5Z+656SO55qEIDwga2lzb3Rla2lcIDsKK+a3semFkiA8IGZ1a2F6YWtlXCA7Civosp3ntLDlt6UgPCBrYWl6YWlrdVwgOwor6buS55m+5ZCIIDwga3Vyb3l1cmlcIDsKK+epuuixhiA8IHNvcmFtYW1lXCA7CivojLboj5PlrZAgPCBjaGFnYXNoaVwgOwor6by76aKoIDwgaGFuYWthemVcIDsKK+exs+S7jyA8IGJlaWZ1dHN1XCA7CivlkKblrprmlocgPCBoaXRlaWJ1blwgOwor5o2V5aSxIDwgaG9zaGl0c3VcIDsKK+aKhOeJqSA8IHNob3Vtb25vXCA7Civnq7nnsKEgPCBjaGlrdWthblwgOwor5oq55q66IDwgbWFzc2F0c3VcIDsKK+W8geitt+WjqyA8IGJlbmdvc2hpXCA7CivmiYvoo4/liaMgPCBzaHVyaWtlblwgOwor6YqA5pmC6KiIIDwgZ2luZG9rZWlcIDsKK+S4iemAo+espiA8IHNhbnJlbnB1XCA7Civoo4/ku5ggPCB1cmFkenVrZVwgOwor5ZSQ6YukIDwga2FyYXN1a2lcIDsKK+Wcp+WHuiA8IGFzc2h1dHN1XCA7Civnq4vohJogPCByaWtreWFrdVwgOwor56u5566GIDwgdGFrZWJlcmFcIDsKK+WbveWbvSA8IGt1bmlndW5pXCA7CivnsJLlpaogPCBzYW5kYXRzdVwgOwor5Z2H5LiAIDwga2luJydpdHN1XCA7CivmvI/ms4QgPCByb3VzZXRzdVwgOwor6by76Z2pIDwgaGFuYWdhd2FcIDsKK+epuuiqrCA8IGt1dXNldHN1XCA7CivlsI/liIflrZAgPCBrb2tpcmlrb1wgOwor5pCt5LmX5ZOhIDwgdG91am91aW5cIDsKK+S4lueVjOimsyA8IHNla2Fpa2FuXCA7CivlnKflhaUgPCBhdHN1bnl1dVwgOwor5oyZ5byPIDwga3lvc2hpa2lcIDsKK+epuuiogCA8IHNvcmFnb3RvXCA7CivllJDph5EgPCBrYXJha2FuZVwgOwor5YCJ5bqr55WqIDwgc291a29iYW5cIDsKK+iZjumsmiA8IHRvcmFoaWdlXCA7CivmurbnmbogPCB5b3VoYXRzdVwgOwor5ru05ru0IDwgdGVraXRla2lcIDsKK+a8gua1gSA8IGh5b3VyeXV1XCA7Civpj5Hnn6IgPCBrYWJ1cmF5YVwgOwor5paH56eR57O7IDwgYnVua2FrZWlcIDsKK+iDveaWh+WutiA8IG5vdWJ1bmthXCA7CivlvIHorbflm6MgPCBiZW5nb2RhblwgOwor5berIDwga2FuJyduYWdpXCA7CivpioDkuJbnlYwgPCBnaW5zZWthaVwgOwor5ouZ5paHIDwgc2V0c3VidW5cIDsKK+ieoueBqyA8IGhvdGFydWJpXCA7CivljIjniZnliKkgPCBoYW5nYXJpaVwgOwor5omN55WlIDwgc2Fpcnlha3VcIDsKK+mKgOm8oCA8IGdpbicnbmV6dVwgOwor54y/55yf5Ly8IDwgc2FydW1hbmVcIDsKK+eMquWPo+aJjSA8IGNob2tvemFpXCA7Civpi7PnianluKsgPCBpbW9ub3NoaVwgOwor54Sh6YmE56CyIDwgbXV0ZXBwb3VcIDsKK+WQjOWIhuavjSA8IGRvdWJ1bmJvXCA7Civlm73ljp8gPCBrdW5pYmFyYVwgOwor5pyq5raI5YyWIDwgbWlzaG91a2FcIDsKK+ibnuidkyA8IG5hbWVrdWppXCA7CivnqbronYkgPCB1dHN1c2VtaVwgOwor56+J5bqtIDwgY2hpa3V0ZWlcIDsKK+evpOWtpiA8IHRva3VnYWt1XCA7CivluoPmnbHoqp4gPCBrYW50b25nb1wgOwor5a+/IDwga290b2J1a2lcIDsKK+S4gOengeS6uiA8IGlzc2hpamluXCA7Civono3nhrEgPCB5dXVuZXRzdVwgOwor5ryi6JS16KqeIDwga2Fuem91Z29cIDsKK+S6jOS6uuebriA8IGZ1dGFyaW1lXCA7Civlr4zlo6vntbkgPCBmdWppZ2ludVwgOwor6IKb6ZaA56eRIDwga291bW9ua2FcIDsKK+mdmembu+awlyA8IHNlaWRlbmtpXCA7CivpjYvok4sgPCBuYWJlYnV0YVwgOwor5Y6f5YuV5qmfIDwgZ2VuZG91a2lcIDsKK+S5vuiIuea4oCA8IGthbmRva2t1XCA7CivpvJPlkLnogIUgPCBrb3N1aXNoYVwgOwor5aSn5ZKM54WuIDwgeWFtYXRvbmlcIDsKK+ethua0lyA8IGZ1ZGVhcmFpXCA7CivojLbpgZPlhbcgPCBjaGFkb3VndVwgOwor5Zuw5Y20IDwga29ua3lha3VcIDsKK+aHuOe1tiA8IGtlbnpldHN1XCA7CivmjpLmsJfnrqEgPCBoYWlraWthblwgOwor6buS6bu0IDwga3Vyb2thYmlcIDsKK+W9k+S6i+iAhSA8IHRvdWppc2hhXCA7CivlopPoqozpipggPCBib3NoaW1laVwgOwor6buS6bqmIDwga3Vyb211Z2lcIDsKK+efreawtOi3ryA8IHRhbnN1aXJvXCA7CivmiJDnqIsgPCBuYXJ1aG9kb1wgOwor5Zar6Iy25bqXIDwga2lzc2F0ZW5cIDsKK+aZgumWk+W4ryA8IGppa2FudGFpXCA7CivnhKHmsLTphbggPCBtdXN1aXNhblwgOwor5omN54mpIDwgc2FpYnV0c3VcIDsKK+m7kum3uiA8IGt1cm9zYWdpXCA7CivpiaTpvLsgPCBrYWdpYmFuYVwgOwor56C06Ziy5rOVIDwgaGFib3Vob3VcIDsKK+a3t+ihgCA8IGtvbmtldHN1XCA7CivnrrHluq0gPCBoYWtvbml3YVwgOwor5ZCI5q2T5pyoIDwgbmVtdW5va2lcIDsKK+aLmeaCqiA8IHNldHN1YWt1XCA7CivogZbmrYzpmoogPCBzZWlrYXRhaVwgOwor6buS6bSoIDwga3Vyb2dhbW9cIDsKK+mKgOmrqiA8IGdpbnBhdHN1XCA7Civom4bomasgPCB1amltdXNoaVwgOwor5Y2w57SZ56iOIDwgaW5zaGl6ZWlcIDsKK+igjeW6pyA8IHNhc29yaXphXCA7CivoopbkuIggPCBzb2RldGFrZVwgOwor5oim55WlIDwgc2Vucnlha3VcIDsKK+aWh+aIv+WFtyA8IGJ1bmJvdWd1XCA7Civkv53nrqHph5EgPCBob2thbmtpblwgOwor5Zue5YuFIDwga2FpY2hva3VcIDsKK+acgOWkmuaVsCA8IHNhaXRhc3V1XCA7CivkuI3pgI/mmI4gPCBmdXRvdW1laVwgOwor5qC95Z+55omAIDwgc2FpYmFpam9cIDsKK+ael+aqjumFkiA8IHJpbmdvc2h1XCA7Civlm73kurogPCBrdW5pYml0b1wgOwor5q+N57Sw6IOeIDwgYm9zYWlib3VcIDsKK+WlveaJk+iAhSA8IGtvdWRhc2hhXCA7CivlhobnrZLlvaIgPCBlbnRvdWtlaVwgOwor5pGC6Zai5a62IDwgc2Vra2Fua2VcIDsKK+ato+imj+i7jSA8IHNlaWtpZ3VuXCA7CivmtZzpoqggPCBoYW1ha2F6ZVwgOwor5bi45aWX5Y+lIDwgam91dG91a3VcIDsKK+erqueQtCA8IHRhdGVnb3RvXCA7CivmuIvojLYgPCBzaGlidWNoYVwgOwor5pyq5rG65riIIDwgbWlrZXNzYWlcIDsKK+iasOickiA8IGdlamlnZWppXCA7CivntI3miLjoibIgPCBuYW5kb2lyb1wgOwor5oqX5pelIDwga291bmljaGlcIDsKK+mdnue3muW9oiA8IGhpc2Vua2VpXCA7CivpoqjlkYLph5wgPCBmdXJvZ2FtYVwgOwor5byB6K235Lq6IDwgYmVuZ29uaW5cIDsKK+a4i+iJsiA8IHNoaWJ1aXJvXCA7Civpjq7lrojlupwgPCBjaGluanVmdVwgOwor5LiA5by1576FIDwgaXRjaG91cmFcIDsKK+WtkOS8muekviA8IGtvZ2Fpc2hhXCA7CivkuI3lh43muK8gPCBmdXRvdWtvdVwgOwor5rS76a2aIDwga2F0c3VneW9cIDsKK+WNteWhlOWgtCA8IHJhbnRvdWJhXCA7CivkuK3lpK7pg6ggPCBjaHV1b3VidVwgOwor5LiN5YeN5rayIDwgZnV0b3Vla2lcIDsKK+WkqeenpOW6pyA8IHRlbmJpbnphXCA7CivnqbrogLMgPCBzb3JhbWltaVwgOwor5Y2x6Zm65oCnIDwga2lrZW5zZWlcIDsKK+S4jeWHjea1tyA8IGZ1dG91a2FpXCA7CivlpKfnnJ/pnaLnm64gPCBvb21hamltZVwgOwor55m75bGx5bi9IDwgdG96YW5ib3VcIDsKK+mKremHkSA8IHplbmlrYW5lXCA7CivnhY7osYbohZAgPCBpcmlkb3VmdVwgOwor5Yi45aOy5qmfIDwga2VuYmFpa2lcIDsKK+aZgumWk+WkliA8IGppa2FuZ2FpXCA7Civmi53lr58gPCBoYWlzYXRzdVwgOwor5rCX5YCZ5bivIDwga2lrb3V0YWlcIDsKK+alveWZqOW6lyA8IGdha2tpdGVuXCA7Civmib/mnI0gPCBzaG91ZnVrdVwgOwor5qSc6Z2e6YGV5L2/IDwga2ViaWlzaGlcIDsKK+aIqueEtiA8IHNldHN1emVuXCA7Civpvo3oiJ8gPCByeXV1c2h1dVwgOwor5pys6YeR5bqrIDwgaG9ua2lua29cIDsKK+mbhOW8geWutiA8IHl1dWJlbmthXCA7Civku5jluK/niq8gPCBmdXRhaWhhblwgOwor6KW/5rSL56KBIDwgc2VpeW91Z29cIDsKK+aIpuS6ieW+jCA8IHNlbnNvdWdvXCA7CivmlY/ohZXlrrYgPCBiaW53YW5rYVwgOwor5Lit5Lul5LiKIDwgY2h1dWlqb3VcIDsKK+mrmOS4i+mnhCA8IHRha2FnZXRhXCA7CivpnZ7lo7Llk4EgPCBoaWJhaWhpblwgOwor5re36ImyIDwga29uc2hva3VcIDsKK+S9leS7o+ebriA8IG5hbmRhaW1lXCA7Civpq5jmnrbnt5ogPCBrb3VrYXNlblwgOwor5rC06Z2i5LiLIDwgc3VpbWVua2FcIDsKK+eyvuayueaJgCA8IHNlaXl1c2hvXCA7CivmnbHopb/lsYsgPCB0b3V6YWl5YVwgOwor5rqi5rWBIDwgaXRzdXJ5dXVcIDsKK+mKheeJiOeUuyA8IGRvdWhhbmdhXCA7CivmipXmioAgPCBuYWdld2F6YVwgOwor54KK6aOv5ZmoIDwgc3VpaGFua2lcIDsKK+aIkeeJqSA8IHdhZ2Ftb25vXCA7CivlhYPluKXlupwgPCBnZW5zdWlmdVwgOwor6by76KixIDwgaGFuYW1vdG9cIDsKK+mzpeS5i+W3oyA8IHRvcmlub3N1XCA7CivljLvnmYLou4ogPCBpcnlvdXNoYVwgOwor54m555Ww5oCnIDwgdG9rdWlzZWlcIDsKK+a6neazpSA8IGRvYnVkb3JvXCA7CivnpoTpq5ggPCByb2t1ZGFrYVwgOwor5Yas6Iez57eaIDwgdG91amlzZW5cIDsKK+epv+WtlOapnyA8IHNlbmtvdWtpXCA7CivnhKHok4vou4ogPCBtdWdhaXNoYVwgOwor5rqd5rC0IDwgZG9idW1penVcIDsKK+epuuexpCA8IGthcmFrdWppXCA7CivmirXmipflmaggPCB0ZWlrb3VraVwgOwor6JK45rCX6Ii5IDwgam91a2lzZW5cIDsKK+mdnuioseWuuSA8IGhpa3lveW91XCA7CivpgaDov5Hms5UgPCBlbmtpbmhvdVwgOwor6YmE6aqoIDwgdGVra290c3VcIDsKK+a5r+eFmSA8IHl1a2VtdXJpXCA7Civmt6HoibIgPCB0YW5zaG9rdVwgOwor5Luu5a6a5rOVIDwga2F0ZWlob3VcIDsKK+ilv+a0i+eUuyA8IHNlaXlvdWdhXCA7Civnp4HpiYQgPCBzaGl0ZXRzdVwgOwor6YGU56Oo5b+MIDwgZGFydW1ha2lcIDsKK+enkumAnyA8IGJ5b3Vzb2t1XCA7CivnqbrnrrEgPCBrYXJhYmFrb1wgOwor56qB56uLIDwgdG90dGF0c3VcIDsKK+eVs+aIkOiqniA8IGpvdXNlaWdvXCA7CivmgKrkuovku7YgPCBrYWlqaWtlblwgOwor5omA5oyB6ICFIDwgc2hvamlzaGFcIDsKK+aTrOS6uuazlSA8IGdpamluaG91XCA7CivllJDojYkgPCBrYXJha3VzYVwgOwor5rqW5aSn5omLIDwganVuJydvb3RlXCA7Civlm57ou6LmqZ8gPCBrYWl0ZW5raVwgOwor6J+75aGaIDwgYXJpZHp1a2FcIDsKK+a9ruWFiCA8IHNoaW9zYWtpXCA7CivomZroqqwgPCBreW9zZXRzdVwgOwor6KGA5L6/IDwga2V0c3ViZW5cIDsKK+aIpuayoSA8IHNlbmJvdHN1XCA7Civlj6/lk4Dnm7ggPCBrYXdhaXNvdVwgOwor5oyH5YWIIDwgeXViaXNha2lcIDsKK+mMpue1tSA8IG5pc2hpa2llXCA7CivkuqTpmpvlrrYgPCBrb3VzYWlrYVwgOwor6Zui5Lmz5pyfIDwgcmlueXV1a2lcIDsKK+ejgeaAp+WxpCA8IGppc2Vpc291XCA7CivotorlhqzpmoogPCBldHRvdXRhaVwgOwor5b6h54Sh5rKZ5rGwIDwgZ29idXNhdGFcIDsKK+aJi+aelSA8IHRlbWFrdXJhXCA7Civlj7Ppoaflt6bnnIQgPCB1a29zYWJlblwgOwor6K2c6Z2i5Y+wIDwgZnVtZW5kYWlcIDsKK+engOmAuCA8IHNodXVpdHN1XCA7Civku67lsI/lsYsgPCBrYXJpZ295YVwgOwor55uu6KuW6KaLIDwgbW9rdXJvbWlcIDsKK+erueanjSA8IHRha2V5YXJpXCA7CivmvJTnrpflrZAgPCBlbnphbnNoaVwgOwor6buS6YmEIDwga3Vyb2dhbmVcIDsKK+aciemZkOWAiyA8IHl1dWdlbmtvXCA7CivmiLjpmpzlrZAgPCB0b3Nob3VqaVwgOwor5Y+v6Y2b5oCnIDwga2F0YW5zZWlcIDsKK+Wkqum8k+WIpCA8IHRhaWtvYmFuXCA7CivmtbflnYrkuLsgPCB1bWlib3V6dVwgOwor562J5byPIDwgdG91c2hpa2lcIDsKK+iXqemWpSA8IGhhbmJhdHN1XCA7CivmtYHph48gPCByeXV1cnlvdVwgOwor6buN6a2a5a2QIDwga2liaW5hZ29cIDsKK+eqgeeZuiA8IHRvcHBhdHN1XCA7CivpiaTph50gPCBrYWdpYmFyaVwgOwor5oqV5a6/IDwgdG91c2h1a3VcIDsKK+WWtuael+e9siA8IGVpcmluc2hvXCA7Civnq7nmnpcgPCBjaGlrdXJpblwgOwor5Zu65pyJ5YCkIDwga295dXVjaGlcIDsKK+WVk+eZuiA8IGtlaWhhdHN1XCA7Civnq7nmnZAgPCBjaGlrdXphaVwgOwor6YG65Lyd5a2mIDwgaWRlbmdha3VcIDsKK+iCsueoruaJgCA8IGlrdXNodWpvXCA7CivnqbrnmbogPCBrdXVoYXRzdVwgOwor5omV5outIDwgZnVzc2hva3VcIDsKK+mHkemNjemHkSA8IGtpbm1la2tpXCA7CivnpZ7poqggPCBrYW1pa2F6ZVwgOwor5rWB6YCfIDwgcnl1dXNva3VcIDsKK+a1gemAmiA8IHJ5dXV0c3V1XCA7Civmu53lt50gPCB0YWtpZ2F3YVwgOwor5Y+C5LqL5a6YIDwgc2FuamlrYW5cIDsKK+ebuOirh+aJgCA8IHNvdWRhbmpvXCA7CivnhKHnqI7lk4EgPCBtdXplaWhpblwgOwor56mA57KSIDwga29rdXJ5dXVcIDsKK+err+acqyA8IHRhbm1hdHN1XCA7CivllJDntJkgPCBrYXJha2FtaVwgOwor5b+c562U6IO9IDwgb3V0b3Vub3VcIDsKK+aknOWVj+aJgCA8IGtlbm1vbmpvXCA7CivlsqHloLTmiYAgPCBva2FiYXNob1wgOwor5Zyw6JS15bCKIDwgaml6b3Vzb25cIDsKK+epuuS4lui+niA8IGthcmFzZWppXCA7CivooajlhbflsYsgPCBoeW91Z3V5YVwgOwor5byU5oWw6YeRIDwgY2hvdWlraW5cIDsKK+WIneeUo+WppiA8IHNob3NhbnB1XCA7Civom7jnhLwgPCB0YWtveWFraVwgOwor56Wd6Zu7IDwgc2h1a3VkZW5cIDsKK+aBkOm+jSA8IGt5b3VyeXV1XCA7CivmmpfoqJjniakgPCBhbmtpbW9ub1wgOwor6bq76YWU5YmkIDwgbWFzdWl6YWlcIDsKK+iXquWMu+iAhSA8IHlhYnVpc2hhXCA7Civlk4HoloQgPCBzaGluYXVzdVwgOwor5oud5YCfIDwgaGFpc2hha3VcIDsKK+S9leaZgumggyA8IGl0c3Vnb3JvXCA7CivnqK7ntJkgPCB0YW5lZ2FtaVwgOwor5rip54axIDwgb24nJ25ldHN1XCA7CivpiYTpiaIgPCB0ZXBwYWNoaVwgOwor5rqA5pyIIDwgbWFuZ2V0c3VcIDsKK+mNi+eJqSA8IG5hYmVtb25vXCA7CivkuoznvqnnmoQgPCBuaWdpdGVraVwgOwor6ZuB55qu57SZIDwgZ2FucGlzaGlcIDsKK+aXpeWSjOimiyA8IGhpeW9yaW1pXCA7Civms6LpoqggPCBuYW1pa2F6ZVwgOwor56S+5Lya6YOoIDwgc2hha2FpYnVcIDsKK+mRkeWIpSA8IGthbmJldHN1XCA7Civpu5LosbkgPCBrdXJvaHlvdVwgOwor5oi/5oi/IDwgZnVzYWZ1c2FcIDsKK+m7kuixhiA8IGt1cm9tYW1lXCA7CivliKXkuJbnlYwgPCBiZXNzZWthaVwgOwor54Sh5ZCN5rCPIDwgbXVtZWlzaGlcIDsKK+mbh+WCreiAhSA8IGtveW91c2hhXCA7CivllJDnqoEgPCB0b3V0b3RzdVwgOwor57Wi57ee5a2QIDwgYXlhZG9uc3VcIDsKK+a4pueKtuaWhyA8IGtham91bW9uXCA7Civpu5noq74gPCBtb2t1ZGFrdVwgOwor6Ieq5YuV6LuKIDwgamlkb3VzaGFcIDsKK+mZpOiNieWJpCA8IGpvc291emFpXCA7Civph47pvKAgPCBub25lenVtaVwgOwor5LiN5YWs5q2jIDwgZnVrb3VzZWlcIDsKK+mXmOaKgOWgtCA8IHRvdWdpam91XCA7CivllqzmnKggPCBreW91Ym9rdVwgOwor6buZ6KqtIDwgbW9rdWRva3VcIDsKK+aBpemqqCA8IGNoaWtvdHN1XCA7CivkuLvoqJjmhrYgPCBzaHVraW9rdVwgOwor5omL5b+DIDwgdGVnb2tvcm9cIDsKK+eqgeeEtiA8IHRvdHN1emVuXCA7CivpvLvkuIvplbcgPCBiaWthY2hvdVwgOwor5pyA5aSn5YyWIDwgc2FpZGFpa2FcIDsKK+aKvOWIhyA8IG9zaGlraXJpXCA7CivpmLLngo7liaQgPCBib3VlbnphaVwgOwor5oqR5ZynIDwgeW9rdWF0c3VcIDsKK+aFtuelnSA8IGtlaXNodWt1XCA7CivnrYblpKogPCBmdWRlYnV0b1wgOwor6YmE6YGTIDwgdGV0c3Vkb3VcIDsKK+S9leaZgumWkyA8IG5hbmppa2FuXCA7Civns7vntbHmqLkgPCBrZWl0b3VqdVwgOwor5b6h6Ieq6LqrIDwgZ29qaXNoaW5cIDsKK+S4iuiPk+WtkCA8IGpvdWdhc2hpXCA7CivomZrohLEgPCBreW9kYXRzdVwgOwor5rKz6bGSIDwga2F3YW1hc3VcIDsKK+iiq+a4m+aVsCA8IGhpZ2Vuc3V1XCA7CivmmJ/mnaHml5cgPCBzZWlqb3VraVwgOwor6Yqt6IuUIDwgemVuaWdva2VcIDsKK+eri+acrSA8IHRhdGVmdWRhXCA7CivlmZvlgrcgPCBrYW1pa2l6dVwgOwor6YeO6bayIDwgbm9iaXRha2lcIDsKK+eWjuawtOaApyA8IHNvc3Vpc2VpXCA7Civoh6rmsrvmqKkgPCBqaWNoaWtlblwgOwor6YCu5o2V6ICFIDwgdGFpaG9zaGFcIDsKK+a8lOWHuiA8IGVuc2h1dHN1XCA7CivpvLvntJkgPCBoYW5hZ2FtaVwgOwor5rip5ripIDwgbnVrdW51a3VcIDsKK+S6jOmgreetiyA8IG5pdG91a2luXCA7CivpvLvns54gPCBoYW5ha3Vzb1wgOwor57Sg5rWq5Lq6IDwgc3Vyb3VuaW5cIDsKK+eni+WgtOaJgCA8IGFraWJhc2hvXCA7CivoiLnngavkuosgPCBmdW5ha2FqaVwgOwor6IKy56iu5a62IDwgaWt1c2h1a2FcIDsKK+aCqumAhiA8IGFrdWd5YWt1XCA7CivmraPoqrLlpJYgPCBzZWlrYWdhaVwgOwor54WJ55Om5aGAIDwgcmVuZ2FiZWlcIDsKK+aCqui+oyA8IGFrdXJhdHN1XCA7Civoi7Hmlofms5UgPCBlaWJ1bnBvdVwgOwor5pyq5rG65a6aIDwgbWlrZXR0ZWlcIDsKK+m7kuihqCA8IGtva3VoeW91XCA7CivlgaXlurfnvo4gPCBrZW5rb3ViaVwgOwor5Lih6K2w6ZmiIDwgcnlvdWdpaW5cIDsKK+aEm+WUseatjCA8IGFpc2hvdWthXCA7CivkuozmnKzmo5IgPCBuaWhvbmJvdVwgOwor6by7562LIDwgaGFuYXN1amlcIDsKK+ayiOm7mSA8IGNoaW5tb2t1XCA7CivpnZLnianlsYsgPCBhb21vbm95YVwgOwor6YeR6auqIDwga2lucGF0c3VcIDsKK+S7ruWumuW9oiA8IGthdGVpa2VpXCA7CivpiYjosYYgPCBuYXRhbWFtZVwgOwor56Ov6be4IDwgaXNvc2hpZ2lcIDsKK+a6neW3nSA8IGRvYnVnYXdhXCA7Civoh6rli5XoqZ4gPCBqaWRvdXNoaVwgOwor5L6/5a6c5LiKIDwgYmVuZ2lqb3VcIDsKK+eUsOiIjumiqCA8IGluYWthZnV1XCA7CivpjbXmnZ8gPCBrYWdpdGFiYVwgOwor56We6YCfIDwgc2hpbnNva3VcIDsKK+acneW+oemjryA8IGFzYWdvaGFuXCA7Civpu5Lom4cgPCBrdXJvaGViaVwgOwor5oyH5o+u5qipIDwgc2hpa2lrZW5cIDsKK+ioreioiOWbsyA8IHNla2tlaXp1XCA7CivmuoDmgqYgPCBtYW4nJ2V0c3VcIDsKK+aIkeaIkSA8IHdhcmV3YXJlXCA7Civpg6jlpJbogIUgPCBidWdhaXNoYVwgOwor5riF5r2UIDwgc2Vpa2V0c3VcIDsKK+iRrOWEgOWgtCA8IHNvdWdpam91XCA7Civno4HmgKfkvZMgPCBqaXNlaXRhaVwgOwor6YqA5pys5L2NIDwgZ2luaG9uJydpXCA7CivnrYblkI0gPCBoaXRzdW1laVwgOwor5pS/5YWa5ZOhIDwgc2VpdG91aW5cIDsKK+WvvuW/nOWApCA8IHRhaW91Y2hpXCA7Civou43oiabml5cgPCBndW5rYW5raVwgOwor5LqM5LmX5qC5IDwgbmlqb3Vrb25cIDsKK+eorueVnCA8IHNodWNoaWt1XCA7CivmjIfmj67mo5IgPCBzaGlraWJvdVwgOwor5q+N5Zu96KqeIDwgYm9rb2t1Z29cIDsKK+eUu+eUqOe0mSA8IGdheW91c2hpXCA7CivpioXoibIgPCBkb3VzaG9rdVwgOwor5qSc5rip5ZmoIDwga2VuJydvbmtpXCA7Civlj43pqqggPCBoYW5rb3RzdVwgOwor5ZWG5rOBIDwgc2hvdWt5b3VcIDsKK+mnhua9nOiJhyA8IGt1c2VudGVpXCA7CivloJXog47nvaogPCBkYXRhaXphaVwgOwor5rm/5bqmIDwgc2hpdHN1ZG9cIDsKK+ejgeawl+WtpiA8IGppa2lnYWt1XCA7Civon4TkvI8gPCBjaGlwcHVrdVwgOwor5rWF6JGxIDwgYXNhdHN1a2lcIDsKK+aHkOeCieeBsCA8IGthaXJvYmFpXCA7CivopoHms6jmhI8gPCB5b3VjaHV1aVwgOwor5Yid55Sf5YWQIDwgc2hvc2VpamlcIDsKK+aIkuW+iyA8IGthaXJpdHN1XCA7CivkuI3prq7mmI4gPCBmdXNlbm1laVwgOwor56u65a2mIDwgamlrdWdha3VcIDsKK+Wkqem1nue1qCA8IGJpcm91ZG91XCA7CivlkLnosqsgPCBmdWtpbnVraVwgOwor56y55Y6fIDwgc2FzYWhhcmFcIDsKK+eqk+aeoCA8IG1hZG93YWt1XCA7CivllJDniakgPCB0b3Vtb3RzdVwgOwor6KO957OW5omAIDwgc2VpdG91am9cIDsKK+err+WxgCA8IHRhbmt5b2t1XCA7Civmip7kuIAgPCB0YWt1aXRzdVwgOwor5YWI6aeG6ICFIDwgc2Vua3VzaGFcIDsKK+WKqeaIkOmHkSA8IGpvc2Vpa2luXCA7CivmuKHmnaXkurogPCB0b3JhaWppblwgOwor562G5YWIIDwgZnVkZXNha2lcIDsKK+mAn+iomOiAhSA8IHNva2tpc2hhXCA7Civpiq3nrrEgPCB6ZW5pYmFrb1wgOwor6Yyo5rOKIDwgYnlvdWhha3VcIDsKK+iJpui8ieapnyA8IGthbnNhaWtpXCA7Civmt7fmtbQgPCBrb24nJ3lva3VcIDsKK+a3sea3sSA8IGZ1a2FidWthXCA7Civol6rom4cgPCB5YWJ1aGViaVwgOwor6KO957KJ5qmfIDwgc2VpZnVua2lcIDsKK+S5seWxpOmbsiA8IHJhbnNvdXVuXCA7Civlj4LkuovkvJogPCBzYW5qaWthaVwgOwor56iu54mpIDwgdGFuZW1vbm9cIDsKK+eorueJmyA8IHRhbmV1c2hpXCA7Civom4fmr5IgPCBoZWJpZG9rdVwgOwor5oiM5bm0IDwgaW51ZG9zaGlcIDsKK+mBleazleihjOeCuiA8IGlob3Vrb3VpXCA7CivmjpLmsJflvIEgPCBoYWlraWJlblwgOwor5ruR5YmkIDwga2F0c3V6YWlcIDsKK+m7kuiIuSA8IGt1cm9mdW5lXCA7CivmraPntbHmtL4gPCBzZWl0b3VoYVwgOwor6YqA57+8IDwgZ2luJyd5b2t1XCA7Civms6XotrMgPCBkb3JvYXNoaVwgOwor6KOc5L2Q5b25IDwgaG9zYXlha3VcIDsKK+mOjOW9oiA8IGthbWFnYXRhXCA7CivmnKrphY3lvZMgPCBtaWhhaXRvdVwgOwor5ruF5Y20IDwgbWVra3lha3VcIDsKK+aYr+mdnuWFsSA8IHplaGl0b21vXCA7Civph6Ppiq0gPCB0c3VyaXNlblwgOwor5pyq5YiK6KGMIDwgbWlrYW5rb3VcIDsKK+aeouapn+WNvyA8IHN1dWtpa2VpXCA7CivmnKrpgYLnvaogPCBtaXN1aXphaVwgOwor5paH5YyW6LKhIDwgYnVua2F6YWlcIDsKK+atpuijheiIuSA8IGJ1c291c2VuXCA7CivoqJjogIXlm6MgPCBraXNoYWRhblwgOwor5ZWG5qWtIDwgc2hvdWd5b3VcIDsKK+W+oeeUqOmCuCA8IGdveW91dGVpXCA7CivlvqHlhYjmo5IgPCBvc2FraWJvdVwgOwor6Ymx6ISIIDwga291bXlha3VcIDsKK+iaiueHuyA8IGthaWJ1c2hpXCA7CivlkIPpgIYgPCBzaGFra3VyaVwgOwor6bq56I+MIDwga291amlraW5cIDsKK+WumuavlOS+iyA8IHRlaWhpcmVpXCA7Civlkb3ohIggPCBtZWlteWFrdVwgOwor5a+M5aOr5bedIDwgZnVqaWthd2FcIDsKK+m7kuiCiSA8IGt1cm9uaWt1XCA7Civpuqbol4EgPCBtdWdpd2FyYVwgOwor55Sj5Y215pyfIDwgc2FucmFua2lcIDsKK+erueWeoyA8IHRha2VnYWtpXCA7CivliIbnm7jmqZ8gPCBidW5zb3VraVwgOwor6Y2b5o6lIDwgdGFuc2V0c3VcIDsKK+mHnemHkSA8IGhhcmlnYW5lXCA7CivkvJrmhI/mloflrZcgPCBrYWlpbW9qaVwgOwor6YqA57iBIDwgZ2luYnVjaGlcIDsKK+S4iuWxpOmbsiA8IGpvdXNvdXVuXCA7Civph5HpjIYgPCBrYW5hc2FiaVwgOwor56iO546HIDwgemVpcml0c3VcIDsKK+eri+WxsSA8IHRhdGV5YW1hXCA7CivkuInmrKHlhYMgPCBzYW5qaWdlblwgOwor576k6aas55yMIDwgZ3VubWFrZW5cIDsKK+m6puiSlCA8IG11Z2ltYWtpXCA7Civlj6Tph5EgPCBmdXJ1Z2FuZVwgOwor5ZWE5pyoIDwgdGFrdWJva3VcIDsKK+WPo+mHjSA8IGt1Y2hpb21vXCA7CivlhbXnq5npg6ggPCBoZWl0YW5idVwgOwor5LiN5YWs5bmzIDwgZnVrb3VoZWlcIDsKK+a4h+acmyA8IGthdHN1Ym91XCA7CivmiY3lipsgPCBzYWlyeW9rdVwgOwor5Y+k6YWSIDwgZnVydXpha2VcIDsKK+WJjem8u+e3kiA8IG1hZWhhbmFvXCA7CivkuI3lh43liaQgPCBmdXRvdXphaVwgOwor6by754aKIDwgaGFuYWd1bWFcIDsKK+mMq+adliA8IHNoYWt1am91XCA7Civnqbrmkq4gPCBrdXVzYXRzdVwgOwor6buZ57SEIDwgbW9rdXlha3VcIDsKK+eJqeecn+S8vCA8IG1vbm9tYW5lXCA7CivpgYrmranpgZMgPCB5dXVob2RvdVwgOwor56S+6KqsIDwgc2hhc2V0c3VcIDsKK+a1hee3kSA8IHNlbnJ5b2t1XCA7CivmiYvliIAgPCB0ZWdhdGFuYVwgOwor5ZCI57iB5aWH57iBIDwgYWllbmtpZW5cIDsKK+eEoeWItumZkCA8IG11c2VpZ2VuXCA7CivnqY3mpbUgPCBzZWtreW9rdVwgOwor5omT5YK3IDwgdWNoaWtpenVcIDsKK+mJhOiJsiA8IHRldHN1aXJvXCA7CivkvZPogrLlrrYgPCB0YWlpa3VrYVwgOwor5YiG5bKQ6aeFIDwgYnVua2lla2lcIDsKK+emj+iAsyA8IGZ1a3VtaW1pXCA7Civmu4XkuqEgPCBtZXRzdWJvdVwgOwor5Yy755mC55SoIDwgaXJ5b3V5b3VcIDsKK+aFhOeEtiA8IHJpdHN1emVuXCA7CivlkIzoqqwgPCBkb3VzZXRzdVwgOwor56qS5oGvIDwgY2hpc3Nva3VcIDsKK+WPs+i2syA8IG1pZ2lhc2hpXCA7CivpgK7mjZXnirYgPCB0YWlob2pvdVwgOwor5rKW6YejIDwgb2tpZHp1cmlcIDsKK+mBjuWOu+W4syA8IGtha29jaG91XCA7Civpu5LnsbMgPCBrdXJvZ29tZVwgOwor5qmf5YuV5oCnIDwga2lkb3VzZWlcIDsKK+mJhOiFlSA8IHRldHN1d2FuXCA7Civlj5vpgIYgPCBoYW5neWFrdVwgOwor54ax6aKo54KJIDwgbmVwcHV1cm9cIDsKK+atqeihjOiAhSA8IGhva291c2hhXCA7Civpu57nqbQgPCB0ZW5rZXRzdVwgOwor5rC06bOlIDwgbWl6dWRvcmlcIDsKK+a6gOWWqyA8IG1hbmtpdHN1XCA7CivlhobpjJDlvaIgPCBlbnN1aWtlaVwgOwor5oiR5Zu9IDwgd2FnYWt1bmlcIDsKK+WuiOmKreWltCA8IHNodXNlbmRvXCA7CivpgZPljJbluKsgPCBkb3VrZXNoaVwgOwor5oKq6IiMIDwgYWt1emV0c3VcIDsKK+iZjueMqyA8IHRvcmFuZWtvXCA7CivkuIvohbnpg6ggPCBrYWZ1a3VidVwgOwor5Y+N5pS/5bqcIDwgaGFuc2VpZnVcIDsKK+Wbnui7ouWEgCA8IGthaXRlbmdpXCA7CivkuIrojYnlsaUgPCB1d2F6b3VyaVwgOwor57Gz5LiK6ZmiIDwgYmVpam91aW5cIDsKK+a0kuiEsSA8IHNoYWRhdHN1XCA7CivpurvntrEgPCBhc2FkenVuYVwgOwor6buQ56u/IDwgbW9jaGl6YW9cIDsKK+acneeoveWPpCA8IGFzYWdlaWtvXCA7CivlkKvok4QgPCBnYW5jaGlrdVwgOwor6KO957KJ5omAIDwgc2VpZnVuam9cIDsKK+iiq+ayu+iAhSA8IGhpY2hpc2hhXCA7Civlj4LphYwgPCBzYW5zaGFrdVwgOwor5a6u55Sw5a62IDwgbWl5YXRha2VcIDsKK+i/keihm+WFtSA8IGtvbm9laGVpXCA7CivlsqnmiYvnnIwgPCBpd2F0ZWtlblwgOwor6YCj6ZqK5peXIDwgcmVudGFpa2lcIDsKK+euoealveWZqCA8IGthbmdha2tpXCA7CivorJ3mgankvJogPCBzaGFvbmthaVwgOwor6aSK6JyC5a62IDwgeW91aG91a2FcIDsKK+S6lOe3mue0mSA8IGdvc2Vuc2hpXCA7CivlkITooYwgPCBrYWt1Z3lvdVwgOwor6Y2L5bqVIDwgbmFiZXpva29cIDsKK+W5s+eUn+edgCA8IGhlaXplaWdpXCA7CivmqZ/luIboiLkgPCBraWhhbnNlblwgOwor5oKq6ICFIDwgd2FydW1vbm9cIDsKK+m8u+awtCA8IGhhbmFtaXp1XCA7CivpnZ7mjpLmsLQgPCBoaWhhaXN1aVwgOwor552A55Wq5Y+3IDwga2liYW5nb3VcIDsKK+S4jeWAq+e9qiA8IGZ1cmluemFpXCA7Civpo7TntLDlt6UgPCBhbWV6YWlrdVwgOwor5YG95Ly855eHIDwgZ2lqaXNob3VcIDsKK+Wkp+W6g+mWkyA8IG9vaGlyb21hXCA7Civpgb/pm6PogIUgPCBoaW5hbnNoYVwgOwor5a6a5bi45rOiIDwgdGVpam91aGFcIDsKK+S7mOWxnuiqniA8IGZ1em9rdWdvXCA7CivmgrbntbYgPCBtb256ZXRzdVwgOwor5bm05Lya6LK7IDwgbmVua2FpaGlcIDsKK+aVheiyt+iAhSA8IGtvYmFpc2hhXCA7CivkupTlpKfmtIsgPCBnb2RhaXlvdVwgOwor56uL5ZG9IDwgcml0c3VtZWlcIDsKK+ePquiXu+WcnyA8IGtlaXNvdWRvXCA7CivljrPpgZQgPCBnZW50YXRzdVwgOwor5Lq65ZCN57C/IDwgamlubWVpYm9cIDsKK+aOkuawl+WPoyA8IGhhaWtpa291XCA7Civpgb/lporms5UgPCBoaW5pbmhvdVwgOwor54m55L6h5ZOBIDwgdG9ra2FoaW5cIDsKK+mHjeiqrCA8IGp1dXNldHN1XCA7Civmj5rmipfmr5QgPCB5b3Vrb3VoaVwgOwor6Y2L5bC7IDwgbmFiZWppcmlcIDsKK+i+nuabuOmhniA8IGppc2hvcnVpXCA7CivlpKflvoDnlJ8gPCBkYWlvdWpvdVwgOwor6L+96LW36Ki0IDwgdHN1aWtpc29cIDsKK+awt+mchyA8IGh5b3VzaGluXCA7CivpgY7ljYrmlbAgPCBrYWhhbnN1dVwgOwor6YmE562GIDwgdGVwcGl0c3VcIDsKK+WuieaBr+aXpSA8IGFuc29rdWJpXCA7Civlho3mta7kuIogPCBzYWlmdWpvdVwgOwor5rS755y8IDwga2F0c3VnYW5cIDsKK+Wbs+abuOWIuCA8IHRvc2hva2VuXCA7CivnmbrotbfkurogPCBob2traW5pblwgOwor5rSe56qfIDwgZG91a3V0c3VcIDsKK+mBk+WFt+irliA8IGRvdWd1cm9uXCA7CivliIbnm7jlv5wgPCBidW5zb3VvdVwgOwor5oiR5YSYIDwgd2FnYW1hbWFcIDsKK+eri+WAmeijnCA8IHJpa2tvdWhvXCA7Civpgb/mmpHlnLAgPCBoaXNob2NoaVwgOwor5rC06ZqbIDwgbWl6dWdpd2FcIDsKK+aOpemqqOacqCA8IG5pd2F0b2tvXCA7CivnpL7kvJrnp5EgPCBzaGFrYWlrYVwgOwor6YeN6KSHIDwgY2hvdWZ1a3VcIDsKK+a0u+eZuiA8IGthcHBhdHN1XCA7CivkuIrmqZ/lq4wgPCBqb3VraWdlblwgOwor5Lqk5o+b5omAIDwga291a2Fuam9cIDsKK+WWnOatjOWKhyA8IGtpa2FnZWtpXCA7Civmt7vliqDliaQgPCB0ZW5rYXphaVwgOwor5pyq5b6p5ZOhIDwgbWlmdWt1aW5cIDsKK+a2iOayiCA8IHNob3VjaGluXCA7CivorJnpgZzoqp4gPCBrZW5zb25nb1wgOwor5pyq5Yem572uIDwgbWlzaG9jaGlcIDsKK+aCquethiA8IGFrdWhpdHN1XCA7CivlnLDlvaLlm7MgPCBjaGlrZWl6dVwgOwor5pyq55+l5pWwIDwgbWljaGlzdXVcIDsKK+ehrOmqqCA8IGtvdWtvdHN1XCA7Civlhavmva7ot68gPCB5YXNoaW9qaVwgOwor5rKi6KCPIDwgc2F3YWdhbmlcIDsKK+S7o+eQhuiAhSA8IGRhaXJpc2hhXCA7Civmhqvlr58gPCBiaW5zYXRzdVwgOwor6bqX562GIDwgcmVpaGl0c3VcIDsKK+iXgee0mSA8IHdhcmFnYW1pXCA7Civou43ku6Tpg6ggPCBndW5yZWlidVwgOwor56uL5YOPIDwgcml0c3V6b3VcIDsKK+aoquaWh+WtlyA8IHlva29tb2ppXCA7CivmtLvnlKggPCBrYXRzdXlvdVwgOwor5raI5q+SIDwgc2hvdWRva3VcIDsKK+WkquWPpOS7oyA8IHRhaWtvZGFpXCA7CivmiJHkurogPCB3YXJlaGl0b1wgOwor6Y2L5aKoIDwgbmFiZXp1bWlcIDsKK+m7kueMqyA8IGt1cm9uZWtvXCA7CivmiJHkuosgPCB3YWdha290b1wgOwor5bm+5L2V5a2mIDwga2lrYWdha3VcIDsKK+ilv+a0i+WMliA8IHNlaXlvdWthXCA7CivliJHkvZnogIUgPCBrZWl5b3NoYVwgOwor5rih5LiW5Lq6IDwgdG9zZWluaW5cIDsKK+WQjOiDniA8IGhhcmFrYXJhXCA7CivnvoXph53lhIAgPCByYXNoaW5naVwgOwor5a2Q6Z+z576kIDwgc2hpaW5ndW5cIDsKK+aal+iovOWMliA8IGFuc2hvdWthXCA7Civmu5HotbDot68gPCBrYXNzb3Vyb1wgOwor6KO95Zuz5p2/IDwgc2VpenViYW5cIDsKK+eah+e1seitnCA8IGtvdXRvdWZ1XCA7CivnkIblrabpg6ggPCByaWdha3VidVwgOwor56m65aSiIDwgc29yYXl1bWVcIDsKK+azpee4hCA8IGRvcm9uYXdhXCA7Civoi7Hoqp7lob4gPCBlaWdvanVrdVwgOwor6YWL6ZW3IDwgc2h1dWNob3VcIDsKK+aCsuWWnOWKhyA8IGhpa2lnZWtpXCA7Civkv53nrqHmnpcgPCBob2thbnJpblwgOwor5Y2K6Z20IDwgaGFuZ3V0c3VcIDsKK+aCtuedgCA8IG1vbmNoYWt1XCA7Civlho3mraboo4UgPCBzYWlidXNvdVwgOwor6buS54aKIDwga3Vyb2d1bWFcIDsKK+iSsumtmiA8IGthbWF0b3RvXCA7CivllonlhYMgPCBub2RvbW90b1wgOwor56m65aCAIDwga2FyYWJvcmlcIDsKK+i1pOicu+ibiSA8IGFrYXRvbmJvXCA7CivoloTohpwgPCBoYWt1bWFrdVwgOwor56qv5YWDIDwga2FtYW1vdG9cIDsKK+a4m+WcpyA8IGdlbicnYXRzdVwgOwor54Sh6L666ZqbIDwgbXVoZW56YWlcIDsKK+S4jeiHqueEtiA8IGZ1c2hpemVuXCA7CivohY7kuI3lhaggPCBqaW5mdXplblwgOwor56ia5ouZIDwgY2hpc2V0c3VcIDsKK+elkOethiA8IHl1dWhpdHN1XCA7CivlrrTkvJrloLQgPCBlbmthaWpvdVwgOwor5Y+k6I2JIDwgZnVydWt1c2FcIDsKK+S4jeS/oeiAhSA8IGZ1c2hpbmphXCA7Civlj6PojZIgPCBrdWNoaWFyYVwgOwor5Y2Y5pys5L2NIDwgdGFuaG9uJydpXCA7CivlhobpjJDlj7AgPCBlbnN1aWRhaVwgOwor56Wd56WtIDwgc2h1a3VzYWlcIDsKK+WboOaenOiAhSA8IGluZ2Ftb25vXCA7CivkuI3kv6HnvqkgPCBmdXNoaW5naVwgOwor5Y2K6ZW3IDwgaGFuJyduYWdhXCA7CivpiYTnk7YgPCB0ZXRzdWJpblwgOwor5rC06YOoIDwgbWl6dW5vYnVcIDsKK+i7jeS6i+mdoiA8IGd1bmppbWVuXCA7CivmgZLmsrPmspkgPCBnb3VnYXNoYVwgOwor5oKq55mWIDwgd2FydWd1c2VcIDsKK+m7kua9riA8IGt1cm9zaGlvXCA7Civok4Tpm7sgPCBjaGlrdWRlblwgOwor5q+N6bOlIDwgaGFoYWRvcmlcIDsKK+iHquayu+S9kyA8IGppY2hpdGFpXCA7CivnnYDlsLrlnLAgPCBraWpha3VqaVwgOwor5b6M5Y2K5pyfIDwga291aGFua2lcIDsKK+WPo+iIjCA8IGtvdXpldHN1XCA7CivnpZ3noLIgPCBzaHVrdWhvdVwgOwor5q+b6auqIDwgbW91aGF0c3VcIDsKK+iHquayu+S8miA8IGppY2hpa2FpXCA7CivkvqHlgKToprMgPCBrYWNoaWthblwgOwor6KW/6YGK6KiYIDwgc2VpeXV1a2lcIDsKK+ebo+afu+WnlOWToSA8IGthbnNhaWluXCA7CivnpLznr4AgPCByZWlzZXRzdVwgOwor5bm05Luj6KiYIDwgbmVuZGFpa2lcIDsKK+aEn+aDheWutiA8IGthbmpvdWthXCA7CivmlofljJbnpa0gPCBidW5rYXNhaVwgOwor5Y+K6JC9IDwga3l1dXJha3VcIDsKK+mKg+auuiA8IGp1dXNhdHN1XCA7CivlpInmj5vlmaggPCBoZW5rYW5raVwgOwor5oOF54axIDwgam91bmV0c3VcIDsKK+S4lueVjOWPsiA8IHNla2Fpc2hpXCA7Civlj5fnsr7ljbUgPCBqdXNlaXJhblwgOwor6YeR6ISIIDwga2lubXlha3VcIDsKK+WPquiAhSA8IHRhZGFtb25vXCA7Civmh4fliIcgPCBrb25zZXRzdVwgOwor56aB54mpIDwga2lubW90c3VcIDsKK+W5tOeUsuaWkCA8IHRvc2hpZ2FpXCA7CivomZDmlL8gPCBneWFrdXNlaVwgOwor5ZCN562GIDwgbWVpaGl0c3VcIDsKK+eiuuiovCA8IGtha3VzaG91XCA7CivlkIznrYYgPCBkb3VoaXRzdVwgOwor6YWN6YGUIDwgaGFpdGF0c3VcIDsKK+azpeS7leWQiCA8IGRvcm9qaWFpXCA7CivmuIXlrZDpn7MgPCBzZWlzaGlpblwgOwor5LqM5pyf5L2cIDwgbmlraXNha3VcIDsKK+mLuOWxkSA8IG5va29rdXp1XCA7CivmqKrntIvnrYsgPCBvdW1vbmtpblwgOwor5reA5bedIDwgeW9kb2dhd2FcIDsKK+mBi+WLleeVjCA8IHVuZG91a2FpXCA7Civmg5HmurogPCB3YWt1ZGVraVwgOwor5pyq55m66KaLIDwgbWloYWtrZW5cIDsKK+a1heaykyA8IGFzYWd1dHN1XCA7CivlkIznqbQgPCBkb3VrZXRzdVwgOwor5YG25YOP5YyWIDwgZ3V1em91a2FcIDsKK+ijnOiBtOWZqCA8IGhvY2hvdWtpXCA7Civoi7Hoqp7liocgPCBlaWdvZ2VraVwgOwor6Yej57O4IDwgdHN1cmlpdG9cIDsKK+mbu+eul+apnyA8IGRlbnNhbmtpXCA7CivmtJfnhoogPCBhcmFpZ3VtYVwgOwor5YaN5ZCf5ZGzIDwgc2FpZ2lubWlcIDsKK+mHjee9sCA8IGp1dWJhdHN1XCA7CivlhobpjJDkvZMgPCBlbnN1aXRhaVwgOwor5rWB5rC3IDwgcnl1dWh5b3VcIDsKK+azqOebriA8IGNodXVtb2t1XCA7CivpnZLlpKnkupUgPCBhb3RlbmpvdVwgOwor5Y+M6ISaIDwgc291a3lha3VcIDsKK+a1quabsiA8IHJvdWt5b2t1XCA7CivpnZ7miKboq5YgPCBoaXNlbnJvblwgOwor5pyq55m66KGMIDwgbWloYWtrb3VcIDsKK+ebuOWgtOW4qyA8IHNvdWJhc2hpXCA7Civlj6TmiKbloLQgPCBrb3NlbmpvdVwgOwor5LiJ55Wz57SAIDwgc2Fuam91a2lcIDsKK+WlveaEj+eahCA8IGtvdWl0ZWtpXCA7CivlvqHpprPotbAgPCBnb2NoaXNvdVwgOwor6YeR57iBIDwga2luYnVjaGlcIDsKK+WNiumBkyA8IGhhbm1pY2hpXCA7CivljJfpmbggPCBob2t1cmlrdVwgOwor5om26aSK6ICFIDwgZnV5b3VzaGFcIDsKK+WNgeWtl+i7jSA8IGp1dWppZ3VuXCA7CivmjInmiYvnpLwgPCBhbnNodXJlaVwgOwor5ZCM5L2N6KeSIDwgZG91aWtha3VcIDsKK+WOn+iWrCA8IGdlbicneWFrdVwgOwor5Y2z6Ku+IDwgc29rdWRha3VcIDsKK+a0u+auuiA8IGthc3NhdHN1XCA7CivlkajmtYEgPCBzaHV1cnl1dVwgOwor6Lyq6Lui5qmfIDwgcmludGVua2lcIDsKK+eosuWmuyA8IGluYWR6dW1hXCA7Civljq3kurrogIUgPCBlbmppbnNoYVwgOwor54Sh6YWN5b2TIDwgbXVoYWl0b3VcIDsKK+WUkOWiqCA8IGthcmFzdW1pXCA7Civlr4zoo5XnqI4gPCBmdXl1dXplaVwgOwor55Ww5Y+j5ZCM6Z+zIDwgaWt1ZG91b25cIDsKK+mHo+ervyA8IHRzdXJpemFvXCA7CivpgY7lirTmrbsgPCBrYXJvdXNoaVwgOwor57SF6KGb5YW1IDwga291ZWloZWlcIDsKK+mHneeusSA8IGhhcmliYWtvXCA7CivnrqHnkIbogIUgPCBrYW5yaXNoYVwgOwor5aSc5ZWG5Lq6IDwgeW9ha2luZG9cIDsKK+iIjOS4i+iFuiA8IHpla2thc2VuXCA7CivmiYDmjIHlk4EgPCBzaG9qaWhpblwgOwor57SA6KGM5paHIDwga2lrb3VidW5cIDsKK+eBq+WxseeBsCA8IGthemFuYmFpXCA7CivpqI7lo6vpgZMgPCBraXNoaWRvdVwgOwor5Ymw5L2Z6YeRIDwgam91eW9raW5cIDsKK+WNk+i2iiA8IHRha3VldHN1XCA7CivosYrmsLTmnJ8gPCBob3VzdWlraVwgOwor5L2O6IO95YWQIDwgdGVpbm91amlcIDsKK+W4sOe0jeazlSA8IGtpbm91aG91XCA7CivnjYXlrZDluqcgPCBzaGlzaGl6YVwgOwor5Lqk5o+b5ZmoIDwga291a2Fua2lcIDsKK+S4lueVjOS6uiA8IHNla2FpamluXCA7CivooZvnlJ/pmoogPCBlaXNlaXRhaVwgOwor5Y+W57WEIDwgdG9yaWt1bWlcIDsKK+iSsumJviA8IGthbWFib2tvXCA7CivmtbfmipwgPCBrYWliYXRzdVwgOwor6YeR566xIDwga2FuZWJha29cIDsKK+eQhuS6i+mVtyA8IHJpamljaG91XCA7CivlubPlsYvmoLkgPCBoaXJheWFuZVwgOwor5raI5oGvIDwgc2hvdXNva3VcIDsKK+WFg+iAgemZoiA8IGdlbnJvdWluXCA7Civmo4TmqKnogIUgPCBraWtlbnNoYVwgOwor5LiW55WM5LitIDwgc2VrYWlqdXVcIDsKK+ays+WPo+a4ryA8IGtha291a291XCA7Civlj6PnrJsgPCBrdWNoaWJ1ZVwgOwor5Y6f6Iy4IDwgaGFyYXRha2VcIDsKK+m0m+m0piA8IG9zaGlkb3JpXCA7CivolqznjokgPCBrdXN1ZGFtYVwgOwor5LiN5L2T6KOBIDwgZnV0ZWlzYWlcIDsKK+iZkOW+hSA8IGd5YWt1dGFpXCA7Civmr5LonJjom5sgPCBkb2t1Z3Vtb1wgOwor5Y2Y6Kqe56+HIDwgdGFuZ29oZW5cIDsKK+m7kuaeoCA8IGt1cm93YWt1XCA7Civph5HnqbQgPCBraW5rZXRzdVwgOwor55Sf5b6S5pWwIDwgc2VpdG9zdXVcIDsKK+m7kuacjSA8IGt1cm9mdWt1XCA7Civnvornmq7ntJkgPCB5b3VoaXNoaVwgOwor5Yud6aasIDwga2FjaGl1bWFcIDsKK+egtOmQmCA8IHdhcmVnYW5lXCA7Civlv4XopoEgPCBoaXRzdXlvdVwgOwor5re35YWlIDwga29uJydueXV1XCA7Civmr43ns7vliLYgPCBib2tlaXNlaVwgOwor5bGV56S65aC0IDwgdGVuamlqb3VcIDsKK+W/jeihkyA8IG5pbmp1dHN1XCA7CivljrPnvbAgPCBnZW5iYXRzdVwgOwor5b6M6YG655eHIDwga291aXNob3VcIDsKK+a1geacqCA8IHJ5dXVib2t1XCA7CivpiI3niakgPCBkb25idXRzdVwgOwor5byV54Gr5rip5bqmIDwgaW5rYW9uZG9cIDsKK+WPuOebtCA8IHNoaWNob2t1XCA7CivnpoHmrLIgPCBraW4nJ3lva3VcIDsKK+a4h+S7sCA8IGthdHN1Z291XCA7Civnp6nluo8gPCBjaGl0c3Vqb1wgOwor5Y2S6KuWIDwgc290c3Vyb25cIDsKK+S4jeWumuipniA8IGZ1dGVpc2hpXCA7CivmsLTonJwgPCBzdWltaXRzdVwgOwor5Yqg5ouF6ICFIDwga2F0YW5zaGFcIDsKK+efs+mrmCA8IGtva3VkYWthXCA7Civpmb3pm7vmsJcgPCB5b3VkZW5raVwgOwor5ZG95pelIDwgbWVpbmljaGlcIDsKK+W+qeiukCA8IGZ1a3VzaHV1XCA7CivlrqPkvJ3osrsgPCBzZW5kZW5oaVwgOwor5ZCM546HIDwgZG91cml0c3VcIDsKK+aDnOaYpSA8IHNla2lzaHVuXCA7CivliofmmKDnlLsgPCBnZWtpZWlnYVwgOwor56S854mpIDwgcmVpbW90c3VcIDsKK+efremrqiA8IHRhbnBhdHN1XCA7CivomZrlrp8gPCBreW9qaXRzdVwgOwor5oGL552AIDwgcmVuY2hha3VcIDsKK+mYv+WPpOWxi+iynSA8IGFrb3lhZ2FpXCA7CivpgYrolanlhZAgPCB5dXV0b3VqaVwgOwor5b6p6Kq/IDwgZnVrdWNob3VcIDsKK+mHkea6gOWutiA8IGtpbm1hbmthXCA7CivpjKDliY3lsYsgPCBqb3VtYWV5YVwgOwor55+l5ZCN5bqmIDwgY2hpbWVpZG9cIDsKK+WQjeeJqSA8IG1laWJ1dHN1XCA7CivljJfpgLIgPCBob2t1c2hpblwgOwor5Ye66bGI55uuIDwgZGV0YXJhbWVcIDsKK+m7hOaYjyA8IHRhc29nYXJlXCA7Civmh4foqbHkvJogPCBrb253YWthaVwgOwor6YG/6Zuj5rCRIDwgaGluYW5taW5cIDsKK+WPsueVpSA8IHNoaXJ5YWt1XCA7CivljYHlrZfooZcgPCBqdXVqaWdhaVwgOwor5Li75ryU6ICFIDwgc2h1ZW5zaGFcIDsKK+azpea/mCA8IG51a2FydW1pXCA7Civol6Tmo5ogPCBmdWppZGFuYVwgOwor5LiW5L+X5YyWIDwgc2V6b2t1a2FcIDsKK+eyl+ijveWTgSA8IHNvc2VpaGluXCA7CivljrPnspsgPCBnZW5zaHVrdVwgOwor6YmE5qOSIDwgdGV0c3Vib3VcIDsKK+mzqem6piA8IGhhdG9tdWdpXCA7Civlj7Plv4PmiL8gPCB1c2hpbmJvdVwgOwor5Zyn5Yi26ICFIDwgYXNzZWlzaGFcIDsKK+WxleekuuWTgSA8IHRlbmppaGluXCA7CivpiYTmooMgPCBrYW5hdGVrb1wgOwor6JC96a2EIDwgcmFrdWhha3VcIDsKK+mHj+eahCA8IHJ5b3V0ZWtpXCA7Civlv6Doia8gPCBjaHV1cnlvdVwgOwor5pu46KiY5a6YIDwgc2hva2lrYW5cIDsKK+mDt+Wcn+aEmyA8IGt5b3Vkb2FpXCA7Civosq/olLXluqsgPCBjaG96b3Vrb1wgOwor6Jep5pytIDwgaGFuc2F0c3VcIDsKK+eUn+ecn+mdouebriA8IGtpbWFqaW1lXCA7CivkuIvppqzoqZUgPCBnZWJhaHlvdVwgOwor5LiN6IO96ICFIDwgZnVub3VzaGFcIDsKK+WLhemhmCA8IGNob2t1Z2FuXCA7CivphZLolLUgPCBzYWthZ3VyYVwgOwor5YuF6aGMIDwgY2hva3VkYWlcIDsKK+S4jeiJr+WMliA8IGZ1cnlvdWthXCA7CivoloTojbfns5YgPCBoYWtrYXRvdVwgOwor6JaE6I2357K+IDwgaGFra2FzZWlcIDsKK+W8semchyA8IGpha3VzaGluXCA7Civmr5TllqnnmoQgPCBoaXl1dGVraVwgOwor56aB5pytIDwga2luc2F0c3VcIDsKK+S6ieitsOaoqSA8IHNvdWdpa2VuXCA7Civph43npoHpjK4gPCBqdXVraW5rb1wgOwor6YGL5YuV5qyEIDwgdW5kb3VyYW5cIDsKK+eoruWIpSA8IHNodWJldHN1XCA7Civpu5LmiL8gPCBrdXJvYnVzYVwgOwor6L6y57mB5pyfIDwgbm91aGFua2lcIDsKK+aCpualvSA8IGV0c3VyYWt1XCA7CivmsLTojYkgPCBtaXp1a3VzYVwgOwor5oSb5a2QIDwgaXRvc2hpZ29cIDsKK+mJhOadkCA8IHRldHN1emFpXCA7CivlvKbpn7MgPCB0c3VydW90b1wgOwor5ZSQ5YKYIDwga2FyYWthc2FcIDsKK+aEn+WPl+aApyA8IGthbmp1c2VpXCA7CivpuqbmnZ8gPCBtdWdpdGFiYVwgOwor5YW15Zmo5belIDwgaGVpa2lrb3VcIDsKK+WAqumbsuaelyA8IGdlaXVucmluXCA7CivmsLTojI4gPCBtaXp1Z3VraVwgOwor6YGL6YCB6Ii5IDwgdW5zb3VzZW5cIDsKK+aGguS6iyA8IHVyZWlnb3RvXCA7Civnn63pnbQgPCB0YW5ndXRzdVwgOwor5rC06IuUIDwgbWl6dWdva2VcIDsKK+mBiuWGtumDjiA8IHl1dXlhcm91XCA7CivnlLvku5nntJkgPCBnYXNlbnNoaVwgOwor5rSL5qKoIDwgeW91bmFzaGlcIDsKK+WkmuautemajiA8IHRhZGFua2FpXCA7CivoqabpqJPmqZ8gPCBzaGlrZW5raVwgOwor5LiA6Iis6KuWIDwgaXBwYW5yb25cIDsKK+WKoOeul+eojiA8IGthc2FuemVpXCA7Civmrovpm6ogPCB6YW5zZXRzdVwgOwor5Y6a57SZIDwgYXRzdWdhbWlcIDsKK+a1tOWuoiA8IHlva2t5YWt1XCA7CivliIblspDnt5ogPCBidW5raXNlblwgOwor5ZaH5Y+t5omLIDwgcmFwcGFzaHVcIDsKK+awtOiIuSA8IG1penVidW5lXCA7Civms6XmsrwgPCBkb3JvbnVtYVwgOwor5Y+N55m6IDwgaGFucGF0c3VcIDsKK+elnuanmCA8IGthbWlzYW1hXCA7Civno6jnn7MgPCB0b2dpaXNoaVwgOwor5byB6auqIDwgYmVucGF0c3VcIDsKK+azpeawtCA8IGRvcm9taXp1XCA7Civms6HmsqsgPCBob3VtYXRzdVwgOwor5YWN572q56ymIDwgbWVuemFpZnVcIDsKK+eKrOm7hOaliiA8IGludXRzdWdlXCA7CivnpZ7mpa0gPCBrYW1pd2F6YVwgOwor5rC06IW5IDwgbWl6dWJhcmFcIDsKK+WPguedgCA8IHNhbmNoYWt1XCA7Civljq3kuJboprMgPCBlbnNlaWthblwgOwor56K657SEIDwga2FrdXlha3VcIDsKK+awtOiEiCA8IHN1aW15YWt1XCA7CivljYrkuJbntIAgPCBoYW5zZWlraVwgOwor6YW15q+N6I+MIDwga291Ym9raW5cIDsKK+elnuajmiA8IGthbWlkYW5hXCA7Civlhrfnvajms5UgPCByZWlhbnBvdVwgOwor5Y+k54mpIDwgZnVydW1vbm9cIDsKK+aEm+iUteeJiCA8IGFpem91YmFuXCA7Civlv6vntbYgPCBrYWl6ZXRzdVwgOwor5b6h5YGJ5pa5IDwgb2VyYWdhdGFcIDsKK+iomOaVsOazlSA8IGtpc3V1aG91XCA7CivnqbrkuIvmiYsgPCBrYXJhaGV0YVwgOwor6YeR54mpIDwga2FuYW1vbm9cIDsKK+elnuagvCA8IHNoaW5rYWt1XCA7Civnpr/lsbEgPCBoYWdleWFtYVwgOwor5Y2B6JasIDwgZG9rdWRhbWlcIDsKK+S4jeWBpeW6tyA8IGZ1a2Vua291XCA7Civmsojnl5sgPCBjaGludHN1dVwgOwor5oCl55eFIDwga3l1dWJ5b3VcIDsKK+aOouaknOWutiA8IHRhbmtlbmthXCA7Civnn7Ppj4MgPCBzZWtpem9rdVwgOwor5aSn5rCX5ZyPIDwgdGFpa2lrZW5cIDsKK+eNheWtkOWQvCA8IHNoaXNoaWt1XCA7CivnqI7liKUgPCB6ZWliZXRzdVwgOwor5Luj55CG5qipIDwgZGFpcmlrZW5cIDsKK+eJqeS7tuiyuyA8IGJ1a2tlbmhpXCA7Civpu5LluZUgPCBrdXJvbWFrdVwgOwor56Wd5p2vIDwgc2h1a3VoYWlcIDsKK+aCquaTpiA8IHdhcnV6dXJlXCA7CivmraPopo/lhbUgPCBzZWlraWhlaVwgOwor5YaN6YWN5biDIDwgc2FpaGFpZnVcIDsKK+m8u+WFiCA8IGhhbmFzYWtpXCA7CivnpZ7mnIggPCBrb3VkenVraVwgOwor5rCR6I2JIDwgdGFtaWd1c2FcIDsKK+Wbm+eVs+WNiiA8IHlvam91aGFuXCA7CivmtLvlvIEgPCBrYXRzdWJlblwgOwor5bGV56S65LyaIDwgdGVuamlrYWlcIDsKK+Wkp+mDveW4giA8IGRhaXRvc2hpXCA7CivlkozlrqQgPCB3YXNoaXRzdVwgOwor5YWI5a2m5pyfIDwgc2VuZ2Fra2lcIDsKK+aCqua0kuiQvSA8IHdhcnVqYXJlXCA7Civph4jnhLYgPCBzaGFrdXplblwgOwor6Ieq5rCR5YWaIDwgamltaW50b3VcIDsKK+WMu+eZguWTgSA8IGlyeW91aGluXCA7CivlhoXmspnmsbAgPCB1Y2hpemF0YVwgOwor5ZOy5Lq6IDwgdGV0c3VqaW5cIDsKK+emj+W+syA8IGZ1a3V0b2t1XCA7Civpu5LlsbEgPCBrdXJveWFtYVwgOwor5Yu/6KuWIDwgbW9jaGlyb25cIDsKK+WIhuWFieWZqCA8IGJ1bmtvdWtpXCA7CivmgKrniakgPCBrYWlidXRzdVwgOwor6Kaq5LiN5a2dIDwgb3lhZnVrb3VcIDsKK+emj+W8lSA8IGZ1a3ViaWtpXCA7CivljZLogIUgPCBzb3RzdXNoYVwgOwor57iB6LW354mpIDwgZW5naW1vbm9cIDsKK+a1geaYn+mbqCA8IHJ5dXVzZWl1XCA7Civljp/nmbogPCBnZW5wYXRzdVwgOwor5Ymy6auYIDwgd2FyaWRha2FcIDsKK+iRl+i/sCA8IGNob2p1dHN1XCA7CivlubTosqLnsbMgPCBuZW5ndW1haVwgOwor5Y6a55quIDwgYXRzdWthd2FcIDsKK+a0l+a1hOWZqCA8IHNlbmpvdWtpXCA7Civmr5vombEgPCBrZWppcmFtaVwgOwor5b6q55Kw5ZmoIDwganVua2Fua2lcIDsKK+mFkueznyA8IHNha2VrYXN1XCA7CivnhKHnkIbnn6LnkIYgPCBtdXJpeWFyaVwgOwor5YGl5bq35YWQIDwga2Vua291amlcIDsKK+eojueQhuWjqyA8IHplaXJpc2hpXCA7CivlvJXph5EgPCBoaWtpZ2FuZVwgOwor5Y+k5rKzIDwgZnVydWthd2FcIDsKK+S6uuaDheWRsyA8IG5pbmpvdW1pXCA7CivnrYnoqp7nt5ogPCB0b3Vnb3NlblwgOwor5q+S6JuHIDwgZG9rdWhlYmlcIDsKK+WNgeWtl+e3miA8IGp1dWppc2VuXCA7CivkuI3kvb/nlKggPCBmdXNoaXlvdVwgOwor5LiA55Sf6Z2iIDwgaXNzZWltZW5cIDsKK+aXheihjOiomCA8IHJ5b2tvdWtpXCA7CivpiYTluoogPCBrYW5hdG9rb1wgOwor5YCL5L2T576kIDwga290YWlndW5cIDsKK+WQjeabsiA8IG1laWt5b2t1XCA7Civlj6Pok4vpn7MgPCBrb3VnYWlvblwgOwor5ZCM5pyIIDwgZG91Z2V0c3VcIDsKK+Wcp+W7tuapnyA8IGF0c3VlbmtpXCA7Civlkozlo7Dms5UgPCB3YXNlaWhvdVwgOwor5Y2g566XIDwgdXJheWFzYW5cIDsKK+mrmOmgu+W6piA8IGtvdWhpbmRvXCA7CivlsI/osYboibIgPCBhenVraWlyb1wgOwor5q+S6JasIDwgZG9rdXlha3VcIDsKK+WOs+e+jua4kyA8IGdlbmJpa2VpXCA7CivmsbrnhLYgPCBrZXRzdXplblwgOwor56S65aiB6YGL5YuVIDwgamlpdW5kb3VcIDsKK+eBq+WxseW8viA8IGthemFuZGFuXCA7CivljYroq6fpn7MgPCBoYW5rYWlvblwgOwor5oOF5a6fIDwgam91aml0c3VcIDsKK+eni+WPoyA8IGFraWd1Y2hpXCA7Civlj5bmsbogPCB0b3Jpa2ltZVwgOwor5ZCM5pelIDwgZG91aml0c3VcIDsKK+elreW8jyA8IHNhaXNoaWtpXCA7CivomZDkvb8gPCBneWFrdXNoaVwgOwor5rKQ5rW0IDwgbW9rdXlva3VcIDsKK+mJhOWxsSA8IHRldHN1emFuXCA7CivmsYLms5XogIUgPCBndWhvdXNoYVwgOwor54Gr5bGx5bivIDwga2F6YW50YWlcIDsKK+a0nuWvnyA8IGRvdXNhdHN1XCA7CivkuIvpp4TnrrEgPCBnZXRhYmFrb1wgOwor6YGT6aCGIDwgbWljaGlqdW5cIDsKK+elnuW+syA8IHNoaW50b2t1XCA7Civoip3mtbfogIEgPCBzaGliYWViaVwgOwor5aSn5YiG55yMIDwgb29pdGFrZW5cIDsKK+W+qeexjSA8IGZ1a3VzZWtpXCA7CivlsbHnvorpq60gPCB5YWdpaGlnZVwgOwor54Cs5oi46ZqbIDwgc2V0b2dpd2FcIDsKK+avkuiMuCA8IGRva3V0YWtlXCA7Civlu7bph5EgPCBub2JlZ2FuZVwgOwor56KM56KMIDwgcm9rdXJva3VcIDsKK+mKreS6gCA8IHplbmlnYW1lXCA7CivngavlsbHls7YgPCBrYXphbnRvdVwgOwor5LiA5aSr5LiA5ammIDwgaXBwdWlwcHVcIDsKK+atr+i7iiA8IGhhZ3VydW1hXCA7CivkuI3lr6nngasgPCBmdXNoaW5iaVwgOwor5aWJ5LuV5aWzIDwgaG91c2hpbWVcIDsKK+eBq+WxseWyqSA8IGthemFuZ2FuXCA7CivlvJXotoogPCBoaWtrb3NoaVwgOwor5YmD6auqIDwgdGVpaGF0c3VcIDsKK+W/veeEtiA8IGtvdHN1emVuXCA7CivnjonnoILliKkgPCB0YW1hamFyaVwgOwor5LiA5YiG5Y2KIDwgaXBwdW5oYW5cIDsKK+WPpOagqiA8IGZ1cnVrYWJ1XCA7CivoirHps6XnlLsgPCBrYWNob3VnYVwgOwor54Sh6I+M5rOVIDwgbXVraW5ob3VcIDsKK+aChOaChCA8IHN1Z29zdWdvXCA7CivnhKHlhY3oqLEgPCBtdW1lbmt5b1wgOwor5b6F6YG/57eaIDwgdGFpaGlzZW5cIDsKK+ehrOethiA8IGtvdWhpdHN1XCA7CivlubTos4DnirYgPCBuZW5nYWpvdVwgOwor5Y+k5Y+C6ICFIDwga29zYW5zaGFcIDsKK+W/heedgCA8IGhpdGNoYWt1XCA7CivkupTliIbkupTliIYgPCBnb2J1Z29idVwgOwor5Y+k5pyNIDwgZnVydWZ1a3VcIDsKK+WIhuWykOeCuSA8IGJ1bmtpdGVuXCA7Civkvo3lvpPlrpggPCBqaWp1dWthblwgOwor5YaF6YeO5omLIDwgbmFpeWFzaHVcIDsKK+ayuemAgeeuoSA8IHl1c291a2FuXCA7CivmsLTnk7YgPCBtaXp1Z2FtZVwgOwor6KqY6Ju+54GvIDwgeXV1Z2F0b3VcIDsKK+W/g+eahCA8IHNoaW50ZWtpXCA7CivoqIjnkIblo6sgPCBrZWlyaXNoaVwgOwor6ZuR6LKo5bqXIDwgemFra2F0ZW5cIDsKK+W6p+WPs+mKmCA8IHpheXV1bWVpXCA7CivlkL7lrZAgPCB3YWdpbW9rb1wgOwor5a2Q6Z+z5oCnIDwgc2hpaW5zZWlcIDsKK+awl+efrSA8IGtpbWlqaWthXCA7CivlvpfnrZYgPCB0b2t1c2FrdVwgOwor5YuF6KOBIDwgY2hva3VzYWlcIDsKK+acn+W+heaEnyA8IGtpdGFpa2FuXCA7Civpganph48gPCB0ZWtpcnlvdVwgOwor5b+D55ebIDwgc2hpbnRzdXVcIDsKK+mBi+WLleWutiA8IHVuZG91c2hhXCA7Civph5HmmJ8gPCBraW5ib3NoaVwgOwor5oSa6YCj6ZqKIDwgZ3VyZW50YWlcIDsKK+WOn+WtkOmbsiA8IGdlbnNoaXVuXCA7Civku6PnkIblupcgPCBkYWlyaXRlblwgOwor5by+6JasIDwgZGFuJyd5YWt1XCA7CivmsLTnjokgPCBtaXp1dGFtYVwgOwor56aB5ZynIDwga2luJydhdHN1XCA7CivlvrPnm64gPCB0b2t1bW9rdVwgOwor6Ku45Zmo5qKwIDwgc2hva2lrYWlcIDsKK+mHjOaWuSA8IHNhdG9rYXRhXCA7Civms5XlvosgPCBob3VyaXRzdVwgOwor6YeI5piOIDwgc2hha3VtZWlcIDsKK+aTjeiIteaJiyA8IHNvdWRhc2h1XCA7Civlh7rmra/kuoAgPCBkZWJha2FtZVwgOwor5LiN5YGl5YWoIDwgZnVrZW56ZW5cIDsKK+a0u+WLlSA8IGthdHN1ZG91XCA7Civpu5LlhoYgPCBrdXJvbWFydVwgOwor55u46KOc5oCnIDwgc291aG9zZWlcIDsKK+awtOeJqSA8IG1penVtb25vXCA7CivlvpfnpaggPCB0b2t1aHlvdVwgOwor5Yid5pyf5YCkIDwgc2hva2ljaGlcIDsKK+a0vuWHuiA8IGhhc2h1dHN1XCA7Civph4jmlL4gPCBzaGFrdWhvdVwgOwor5o6l6aCt6L6eIDwgc2V0dG91amlcIDsKK+eUn+W+kuS8miA8IHNlaXRva2FpXCA7CivmtYHlhaUgPCByeXV1bnl1dVwgOwor5q6L6JmQIDwgemFuZ3lha3VcIDsKK+iWrOWxiyA8IGt1c3VyaXlhXCA7CivolqzlsYAgPCB5YWtreW9rdVwgOwor56Gs55u0IDwga291Y2hva3VcIDsKK+WQiOW8jyA8IGdvdXNoaWtpXCA7CivnpZ7lppkgPCBzaGlubXlvdVwgOwor6YGg6YGTIDwgdG9vbWljaGlcIDsKK+mgkOiogOiAhSA8IHlvZ2Vuc2hhXCA7CivlvZPogbcgPCB0b3VzaG9rdVwgOwor5bqV6Z2pIDwgc29rb2dhd2FcIDsKK+iWrOWtpiA8IHlha3VnYWt1XCA7Civnpo/liqkgPCBmdWt1c3VrZVwgOwor6ZaL5YKs5pelIDwga2Fpc2FpYmlcIDsKK+iDtOmWk+WjsCA8IGRvdW1hZ29lXCA7Civog4znlarlj7cgPCBzZWJhbmdvdVwgOwor5rWu5rWq6ICFIDwgZnVyb3VzaGFcIDsKK+S8muWToeWIuCA8IGthaWlua2VuXCA7CivkvJrlk6HliLYgPCBrYWlpbnNlaVwgOwor5q+b562GIDwgbW91aGl0c3VcIDsKK+iLseexs+azlSA8IGVpYmVpaG91XCA7CivljrvmnIggPCBreW9nZXRzdVwgOwor552A6aeFIDwgY2hha3Vla2lcIDsKK+WQiOeQhuirliA8IGdvdXJpcm9uXCA7CivlpKfpg6jliIYgPCBkYWlidWJ1blwgOwor5oGQ5oKmIDwga3lvdWV0c3VcIDsKK+iUreanmCA8IGthZ2VzYW1hXCA7CivnpZ7ln58gPCBzaGluJydpa2lcIDsKK+WNg+eUnyA8IHNlbicnbmFyaVwgOwor6JaE5byxIDwgaGFrdWpha3VcIDsKK+S6lOinkuW9oiA8IGdva2Fra2VpXCA7CivkuK3opo/mqKEgPCBjaHV1a2lib1wgOwor5b+F54S2IDwgaGl0c3V6ZW5cIDsKK+Wkp+mDveS8miA8IGRhaXRva2FpXCA7CivorbfpgIHou4ogPCBnb3NvdXNoYVwgOwor6YeN5omL5LujIDwgb21vdGVkYWlcIDsKK+WQjOWxgCA8IGRvdWt5b2t1XCA7CivokrjnnYAgPCBqb3VjaGFrdVwgOwor5bqD5aCx6YOoIDwga291aG91YnVcIDsKK+WNiueOiSA8IGhhbmd5b2t1XCA7CivpgIbpoqggPCBneWFrdWZ1dVwgOwor5YiG6aqoIDwgYnVua290c3VcIDsKK+W+jOmzpee+vemZoiA8IGdvdG9iYWluXCA7CivlubzpoZQgPCBvc2FuYWdhb1wgOwor5ZCM5a6/IDwgZG91c2h1a3VcIDsKK+WQjeWunyA8IG1laWppdHN1XCA7CivmraLooYAgPCBzaGlrZXRzdVwgOwor5YuV6ISIIDwgZG91bXlha3VcIDsKK+edgOmghiA8IGNoYWt1anVuXCA7CivokrjnmbogPCBqb3VoYXRzdVwgOwor6YCG6aCGIDwgZ3lha3VqdW5cIDsKK+WQiOWuvyA8IGdhc3NodWt1XCA7CivliofoqZUgPCBnZWtpaHlvdVwgOwor6YW45qygIDwgc2Fua2V0c3VcIDsKK+W+jOeZuiA8IGtvdWhhdHN1XCA7CivkuInmna/phaIgPCBzYW5iYWl6dVwgOwor56+A54Kt5ZmoIDwgc2V0dGFua2lcIDsKK+mJhOWIhiA8IHRldHN1YnVuXCA7CivluIzmnJvogIUgPCBraWJvdXNoYVwgOwor5aSW56eR5a2mIDwgZ2VrYWdha3VcIDsKK+WIkeS6i+eKryA8IGtlaWppaGFuXCA7CivphY3nt5rlm7MgPCBoYWlzZW56dVwgOwor5qmf5qKw6KuWIDwga2lrYWlyb25cIDsKK+edgOmbuyA8IGNoYWt1ZGVuXCA7Civlt53np4vmspkgPCBrYXdhYWlzYVwgOwor5Y+L5oiQIDwgdG9tb25hcmlcIDsKK+aWh+WMluWcjyA8IGJ1bmtha2VuXCA7CivmjqXpoK3oqp4gPCBzZXR0b3Vnb1wgOwor5rC05rSfIDwgbWl6dWJhbmFcIDsKK+S6i+aVheattCA8IGppa29yZWtpXCA7CivliY3ov7AgPCB6ZW5qdXRzdVwgOwor5Ymy6K2yIDwga2F0c3Vqb3VcIDsKK+WxseWwj+WxiyA8IHlhbWFnb3lhXCA7Civljp/mm7IgPCBnZW5reW9rdVwgOwor57O46Jy76JuJIDwgaXRvdG9uYm9cIDsKK+WNgemHjeS6jOWNgemHjSA8IHRvZWhhdGFlXCA7CivlvoznlKMgPCBub2NoaXphblwgOwor56e76Lui5YWIIDwgaXRlbnNha2lcIDsKK+iQveiOqyA8IHJha3ViYWt1XCA7CivpganoqZUgPCB0ZWtpaHlvdVwgOwor6JOL54mpIDwgZnV0YW1vbm9cIDsKK+WHuummrCA8IHNodXRzdWJhXCA7CivmsLTmsqEgPCBzdWlib3RzdVwgOwor5b6h54mpIDwgZ3lvYnV0c3VcIDsKK+Wkp+WLsuS9jSA8IGRhaWt1bicnaVwgOwor5b2T56+AIDwgdG91c2V0c3VcIDsKK+WQuOWPoyA8IHN1aWt1Y2hpXCA7CivlpKfnm67njokgPCBvb21lZGFtYVwgOwor5a6Y5YWs5ZCPIDwga2Fua291cmlcIDsKK+aCi+WXhyA8IHJpbnNob2t1XCA7CivljZTorbDlk6EgPCBreW91Z2lpblwgOwor6LuN5LqL54qvIDwgZ3VuamloYW5cIDsKK+maj+ihjOWToSA8IHp1aWtvdWluXCA7CivkuIDovrrlgJIgPCBpcHBlbnRvdVwgOwor6Yed5bGxIDwgaGFyaXlhbWFcIDsKK+WPluW8lSA8IHRvcmloaWtpXCA7CivmsqHlubQgPCBib3RzdW5lblwgOwor5Y+y5a6fIDwgc2hpaml0c3VcIDsKK+iRieiEiCA8IHlvdW15YWt1XCA7Civlj7Dlr4YgPCB0YWltaXRzdVwgOwor54++5Luj6KqeIDwgZ2VuZGFpZ29cIDsKK+mBlOitmCA8IHRhc3NoaWtpXCA7CivpuqbkvZwgPCBtdWdpc2FrdVwgOwor5LiN5bCO5oCnIDwgZnVkb3VzZWlcIDsKK+aAp+aCqiA8IHNob3V3YXJ1XCA7CivnkIblrrnluKsgPCByaXlvdXNoaVwgOwor5b6T54mpIDwganV1YnV0c3VcIDsKK+S5semrmOS4iyA8IHJhbmtvdWdlXCA7CivlvbnnlZwgPCBla2ljaGlrdVwgOwor5Yeh6aqoIDwgYm9ua290c3VcIDsKK+mHkeWxkSA8IGthbmFrdXp1XCA7Civlv4XmrrogPCBoaXNzYXRzdVwgOwor5Y+k5a+6IDwgZnVydWRlcmFcIDsKK+ekvuS6pOWutiA8IHNoYWtvdWthXCA7CivmtJvkuK0gPCByYWt1Y2h1dVwgOwor5Ye46Z2iIDwgdG90c3VtZW5cIDsKK+aWh+WMluWPsiA8IGJ1bmthc2hpXCA7CivlkLjlhaUgPCBreXV1bnl1dVwgOwor5LiN55So5ZOBIDwgZnV5b3VoaW5cIDsKK+WIsOmBlCA8IHRvdXRhdHN1XCA7Civlj6Plrp8gPCBrb3VqaXRzdVwgOwor6YCP5piO5bqmIDwgdG91bWVpZG9cIDsKK+S4jeWumuazlSA8IGZ1dGVpaG91XCA7CivliofolqwgPCBnZWtpeWFrdVwgOwor55+t57iuIDwgdGFuc2h1a3VcIDsKK+a4qeaOkuawtCA8IG9uaGFpc3VpXCA7CivlhrfpuqYgPCBoaXlhbXVnaVwgOwor56Wd5YW4IDwgc2h1a3V0ZW5cIDsKK+WHuumZsyA8IHNodXRjaGluXCA7CivoiKrnqbrot68gPCBrb3VrdXVyb1wgOwor6JGb57GgIDwgdHN1ZHp1cmFcIDsKK+izh+eUo+WutiA8IHNoaXNhbmthXCA7CivpoZ7kvLzngrkgPCBydWlqaXRlblwgOwor5reh5rC05rmWIDwgdGFuc3Vpa29cIDsKK+W6g+WgseiqsiA8IGtvdWhvdWthXCA7CivlvrPmsqIgPCB0b2t1dGFrdVwgOwor6YeI5bCKIDwgc2hha3Vzb25cIDsKK+W5s+mNiyA8IGhpcmFuYWJlXCA7CivphZLmqL0gPCBzYWthZGFydVwgOwor5byB6IiMIDwgYmVuemV0c3VcIDsKK+Wwj+S6uuaVsCA8IGtvbmluenV1XCA7CivmhJvnn6XnnIwgPCBhaWNoaWtlblwgOwor6L+96YyyIDwgdHN1aXJva3VcIDsKK+aBi+WmuyA8IGtvaWR6dW1hXCA7CivlvqnmtLsgPCBmdWtrYXRzdVwgOwor5Lq66YCg6JeNIDwgamluem91YWlcIDsKK+WMu+WtpuiAhSA8IGlnYWt1c2hhXCA7CivmgqrmhJ/mg4UgPCBha2thbmpvdVwgOwor5oGr5ZadIDwgZG91a2F0c3VcIDsKK+acquWHpuWIhiA8IG1pc2hvYnVuXCA7Civlt67phY3kurogPCBzYWhhaW5pblwgOwor5L2O6aC75bqmIDwgdGVpaGluZG9cIDsKK+S9nOeCuueKryA8IHNha3VpaGFuXCA7CivliaPooZMgPCBrZW5qdXRzdVwgOwor5Y6z5b6LIDwgZ2Vucml0c3VcIDsKK+atr+enkeeUqCA8IHNoaWtheW91XCA7CivliqvnvbAgPCBnb3ViYXRzdVwgOwor5b2r55CiIDwgY2hvdXRha3VcIDsKK+WMlueJqSA8IGJha2Vtb25vXCA7CivolqrlibIgPCBtYWtpd2FyaVwgOwor5b2T55u0IDwgdG91Y2hva3VcIDsKK+WGjeWHpueQhiA8IHNhaXNob3JpXCA7Civlia/ombkgPCBmdWt1bmlqaVwgOwor6Iqx6Iyj6JOZIDwgaGFuYWdvemFcIDsKK+WMl+eIhiA8IGhva3ViYWt1XCA7CivnjoTmrablsqkgPCBnZW5idWdhblwgOwor5bi46aOfIDwgam91c2hva3VcIDsKK+mwkOmuqyA8IHdhbml6YW1lXCA7Civms6jlhaUgPCBjaHV1bnl1dVwgOwor5oCl5bO7IDwga3l1dXNodW5cIDsKK+a2sueKtuWMliA8IGVraWpvdWthXCA7CivnhKHliKnmga8gPCBtdXJpc29rdVwgOwor6Zmj576957mUIDwgamluYmFvcmlcIDsKK+mzqeiDuCA8IGhhdG9tdW5lXCA7CivmiKbpl5jmqZ8gPCBzZW50b3VraVwgOwor5pyJ5oSP55qEIDwgeXV1aXRla2lcIDsKK+W6l+izgyA8IHRhbmFjaGluXCA7CivllY/poYzlhZAgPCBtb25kYWlqaVwgOwor5b+D5qC5IDwga29rb3JvbmVcIDsKK+WGrOmzpSA8IGZ1eXVkb3JpXCA7CivljZTmpa0gPCBreW91Z3lvdVwgOwor5YK15YuZ6ICFIDwgc2FpbXVzaGFcIDsKK+WHnembhiA8IGd5b3VzaHV1XCA7CivkuIDpqI7oqI4gPCBpa2tpdWNoaVwgOwor6KOc57Wm6LevIDwgaG9reXV1cm9cIDsKK+mAgemBlCA8IHNvdXRhdHN1XCA7CivlvavniakgPCBob3JpbW9ub1wgOwor5bqV6LGGIDwgc29rb21hbWVcIDsKK+mzpeiCjCA8IHRvcmloYWRhXCA7Civps6XogokgPCB0b3JpbmlrdVwgOwor5q+N54mpIDwgaGFoYW1vbm9cIDsKK+W9oiA8IGthdGFjaGlcIDsKK+i9jSA8IHdhZGFjaGlcIDsKK+W3tyA8IGNoaW1hdGFcIDsKK+i3oyA8IGhhZGFzaGlcIDsKK+i2oyA8IG9tb211a2lcIDsKK+WxgCA8IHRzdWJvbmVcIDsKK+WvpyA8IG11c2hpcm9cIDsKK+eNuiA8IGthd2F1c29cIDsKK+eLkCA8IGtpdHN1bmVcIDsKK+WrgiA8IGFuaXlvbWVcIDsKK+ipsSA8IGhhbmFzaGlcIDsKK+eHlSA8IHRzdWJhbWVcIDsKK+a7tCA8IHNoaXp1a3VcIDsKK+a5liA8IG1penV1bWlcIDsKK+WJoyA8IHRzdXJ1Z2lcIDsKK+WHnSA8IHNoaWtvcmlcIDsKK+WGoCA8IGthbm11cmlcIDsKK+akvyA8IHRzdWJha2lcIDsKK+ainyA8IGZ1a3Vyb3VcIDsKK+mggiA8IGl0YWRha2lcIDsKK+afsSA8IGhhc2hpcmFcIDsKK+S/jiA8IG1hbmFpdGFcIDsKK+aelyA8IGhheWFzaGlcIDsKK+S+jSA8IHNhbXVyYWlcIDsKK+e+iiA8IGhpdHN1amlcIDsKK+adsSA8IGhpZ2FzaGlcIDsKK+aYlCA8IG11a2FzaGlcIDsKK+e1jCA8IHRhdGVpdG9cIDsKK+mMpiA8IG5pc2hpa2lcIDsKK+engSA8IHdhdGFzaGlcIDsKK+elrSA8IG1hdHN1cmlcIDsKK+ekviA8IHlhc2hpcm9cIDsKK+eiuiA8IHRhc2hpa2FcIDsKK+mCuCA8IHlhc2hpa2lcIDsKK+ekvuWFsSA8IHNoYWt5b3VcIDsKK+W/g+adkCA8IHNoaW56YWlcIDsKK+i/kemWkyA8IGNoaWthbWFcIDsKK+WOu+WwsSA8IGt5b3NodXVcIDsKK+WJjeihqCA8IHplbnB5b3VcIDsKK+WQm+WBtCA8IGt1bnNva3VcIDsKK+i/vemAgSA8IHRzdWlzb3VcIDsKK+WNoOaciSA8IHNlbicneXV1XCA7Civlv4zml6UgPCBraW5pY2hpXCA7CivljaDmm7ggPCB1cmFidW1pXCA7CivluLPpnaIgPCBjaG91bWVuXCA7Civnm7Tpn7MgPCBjaG9rdW9uXCA7Civlip/nuL4gPCBrb3VzZWtpXCA7CivmsJHmpa0gPCBtaW5neW91XCA7CivoloTlkb0gPCBoYWt1bWVpXCA7CivluK3poIYgPCBzZWtpanVuXCA7Civnm4rps6UgPCBla2ljaG91XCA7CivmspblpKkgPCBjaHV1dGVuXCA7CivkuIvlsaTlnJ8gPCBrYXNvdWRvXCA7Civlv5zmjqUgPCBvdXNldHN1XCA7CivnnqDoi6UgPCBkb3VqYWt1XCA7Civotbfli5XmqZ8gPCBraWRvdWtpXCA7CivlvozmtYEgPCBrb3VyeXV1XCA7Civlj6zllpogPCBzaG91a2FuXCA7CivlvJXnrpcgPCBoaWtpemFuXCA7CivluK/pnakgPCBvYmlrYXdhXCA7Civlh7rph5EgPCBzaHVra2luXCA7CivljYHlrZfmnrYgPCBqdXVqaWthXCA7Civlj6vllpogPCBreW91a2FuXCA7CivlkInlh7YgPCBraWtreW91XCA7Civph43lnKcgPCBqdXVhdHN1XCA7Civov7Dpg6ggPCBqdXRzdWJ1XCA7Civpt7LluqcgPCB3YXNoaXphXCA7CivlvJPnrq0gPCBreXV1c2VuXCA7CivliIbpgLIgPCBidW5zaGluXCA7Civoj6nolqkgPCBib3NhdHN1XCA7CivliIbpgJ8gPCBmdW5zb2t1XCA7CivmsLTmkoMgPCBzdWlnZWtpXCA7CivmsqLlnLAgPCBzYXdhY2hpXCA7CivliIfov6sgPCBzZXBwYWt1XCA7CivljZfmnJ0gPCBuYW5jaG91XCA7Civkurrlt6Xpm6ggPCBqaW5rb3V1XCA7Civlv7Xlv7UgPCBuZW4nJ25lblwgOwor77yu6Z+/IDwgZW51a3lvdVwgOwor5q2j57aaIDwgc2Vpem9rdVwgOwor6JC956ysIDwgcmFrdWRhaVwgOwor6Yej5ZCIIDwgdHN1cmlhaVwgOwor5q2j57W5IDwgc2hvdWtlblwgOwor6aST6ay86YGTIDwgZ2FraWRvdVwgOwor5Y6z5a65IDwgZ2VuJyd5b3VcIDsKK+mAsuihjCA8IHNoaW5rb3VcIDsKK+WQieWFhiA8IGtpdGNob3VcIDsKK+S4jeWumuacnyA8IGZ1dGVpa2lcIDsKK+WLleeahCA8IGRvdXRla2lcIDsKK+WQjOWDmiA8IGRvdXJ5b3VcIDsKK+ato+e1jCA8IHNlaWt5b3VcIDsKK+WMl+a6gCA8IGhva3VtYW5cIDsKK+WNiuagvCA8IGhhbmtha3VcIDsKK+mAmuisgCA8IHRzdXVib3VcIDsKK+aooeaTrOW6lyA8IG1vZ2l0ZW5cIDsKK+WPrOWRvSA8IHNob3VtZWlcIDsKK+mAmuirliA8IHRzdXVyb25cIDsKK+W6j+iqrCA8IGpvc2V0c3VcIDsKK+azpeS4rSA8IGRlaWNodXVcIDsKK+W6leinkiA8IHRlaWtha3VcIDsKK+WJsuiIiCA8IHdhcmlrb3VcIDsKK+W+s+acmyA8IHRva3Vib3VcIDsKK+aApeWkiSA8IGt5dXVoZW5cIDsKK+WPo+WUhyA8IGtvdXNoaW5cIDsKK+mzpee2siA8IHRvcmlhbWlcIDsKK+aBreWAuSA8IGt5b3VrZW5cIDsKK+WPq+WPtyA8IGt5b3Vnb3VcIDsKK+WPpOatpumBkyA8IGtvYnVkb3VcIDsKK+aghOmkiue0oCA8IGVpeW91c29cIDsKK+WIuuihnSA8IHNoaXNob3VcIDsKK+W5veiwtyA8IHl1dWtva3VcIDsKK+mEmeatjCA8IGhpbmF1dGFcIDsKK+auteeJqSA8IGRhbm1vbm9cIDsKK+WQjOS/oSA8IGRvdXNoaW5cIDsKK+efs+ebpCA8IHNla2liYW5cIDsKK+atu+elqCA8IHNoaWh5b3VcIDsKK+WJsuiFuSA8IGthcHB1a3VcIDsKK+W7kOiIjiA8IGt5dXVzaGFcIDsKK+mAmuioiCA8IHRzdXVrZWlcIDsKK+WPsOWMlyA8IHRhaWhva3VcIDsKK+WLpOeOiyA8IGtpbicnbm91XCA7Civlv6vlvqkgPCBrYWlmdWt1XCA7CivmsJHmnIkgPCBtaW4nJ3l1dVwgOwor5q2056iLIDwgcmVraXRlaVwgOwor56C05ruFIDwgaGFtZXRzdVwgOwor5oCl5aKXIDwga3l1dXpvdVwgOwor6YCa6KejIDwgdHN1dWthaVwgOwor5Yik6KqtIDwgaGFuZG9rdVwgOwor6YeN5ZSxIDwganV1c2hvdVwgOwor5ZCN5L2cIDwgbWVpc2FrdVwgOwor6YCa6KazIDwgdHN1dWthblwgOwor5byU56WtIDwgY2hvdXNhaVwgOwor5ZCE5YGcIDwga2FrdXRlaVwgOwor5oGp5YCfIDwgb25zaGFrdVwgOwor5Y+y5YqHIDwgc2hpZ2VraVwgOwor5YyX5rSLIDwgaG9rdXlvdVwgOwor6YCa6KanIDwgdHN1dXJhblwgOwor6YGp6ICFIDwgdGVraXNoYVwgOwor5Ymv6IWOIDwgZnVrdWppblwgOwor56S+5LitIDwgc2hhY2h1dVwgOwor6L+96LSIIDwgdHN1aXpvdVwgOwor5oCl5aCxIDwga3l1dWhvdVwgOwor5bir6ZW3IDwgc2hpY2hvdVwgOwor5YiA6LqrIDwgdG91c2hpblwgOwor5Yqg562GIDwga2FoaXRzdVwgOwor5Y675aOwIDwga3lvc2hvdVwgOwor5ZCN5LujIDwgbXlvdWRhaVwgOwor5Yyh5q2jIDwga3lvdXNlaVwgOwor6Lqr5Yud5omLIDwgbWlnYXR0ZVwgOwor5ZCI5L2cIDwgZ2Fzc2FrdVwgOwor54Sh5Yip5a2QIDwgbXVyaXNoaVwgOwor5b6T5qWtIDwganV1Z3lvdVwgOwor5Y2K5pmCIDwgaGFudG9raVwgOwor6JC956OQIDwgcmFrdWJhblwgOwor5Y6f5a+pIDwgZ2Vuc2hpblwgOwor5q+S5rayIDwgZG9rdWVraVwgOwor5b285rCPIDwga2FyZXNoaVwgOwor5bid6Zm1IDwgdGVpcnlvdVwgOwor5b6z5pS/IDwgdG9rdXNlaVwgOwor5rCR5pePIDwgbWluem9rdVwgOwor6YGg6ICzIDwgdG9vbWltaVwgOwor55Gg55KD6ImyIDwgcnVyaWlyb1wgOwor5ZCN5Li7IDwgbmFudXNoaVwgOwor5oCl5Z2CIDwga3l1dWhhblwgOwor5Yid6Ki6IDwgc2hvc2hpblwgOwor5bqD6KeSIDwga291a2FrdVwgOwor5ZCJ5LqLIDwga2l0c3VqaVwgOwor5rCP5pePIDwgc2hpem9rdVwgOwor5byU56CyIDwgY2hvdWhvdVwgOwor5bu6562WIDwga2Vuc2FrdVwgOwor5YmN6JGJIDwgemVuJyd5b3VcIDsKK+mAmuihjCA8IHRzdXVrb3VcIDsKK+WQjOS4gCA8IGRvdWl0c3VcIDsKK+W5vuiosSA8IGlrdWJha3VcIDsKK+mHjeWOmiA8IGNob3Vrb3VcIDsKK+iNt+mAgSA8IG5pb2t1cmlcIDsKK+W+qeaXpyA8IGZ1a2t5dXVcIDsKK+iDg+iFuOeCjiA8IGljaG91ZW5cIDsKK+ayoeWPjiA8IGJvc3NodXVcIDsKK+W7u+eroCA8IGthaXNob3VcIDsKK+WNmuaNnCA8IGhha3Vzb3VcIDsKK+efpeeahCA8IGNoaXRla2lcIDsKK+WQhOS6uiA8IGtha3VqaW5cIDsKK+aui+eVmSA8IHphbnJ5dXVcIDsKK+i1t+WLleaZgiA8IGtpZG91amlcIDsKK+W5lei7jSA8IGJha3VndW5cIDsKK+W7uueriyA8IGtvbnJ5dXVcIDsKK+ayg+WcsCA8IHlva3VjaGlcIDsKK+mBiuiIiCA8IHl1dWt5b3VcIDsKK+W+qeaWhyA8IGZ1a3VidW5cIDsKK+WQiOS4gCA8IGdvdWl0c3VcIDsKK+WIpeihqCA8IGJlcHB5b3VcIDsKK+WJr+e9siA8IGZ1a3VzaG9cIDsKK+WPl+WPliA8IHVrZXRvcmlcIDsKK+W/g+aIvyA8IHNoaW5ib3VcIDsKK+WPpOWIuSA8IGtvc2F0c3VcIDsKK+WKtOebuCA8IHJvdXNob3VcIDsKK+mDrea4hSA8IGtha3VzZWlcIDsKK+WHuui1sCA8IHNodXNzb3VcIDsKK+W5u+immiA8IGdlbmtha3VcIDsKK+WJm+iFuSA8IGdvdWZ1a3VcIDsKK+auuumZo+W4qyA8IHRhdGVzaGlcIDsKK+mhnue+qeiqniA8IHJ1aWdpZ29cIDsKK+atr+efsyA8IHNoaXNla2lcIDsKK+WutuioiOewvyA8IGtha2VpYm9cIDsKK+aBpeS4mCA8IGNoaWt5dXVcIDsKK+WFqOm6piA8IHplbmJha3VcIDsKK+WNmuaJkyA8IGJha3VjaGlcIDsKK+i/veiqjSA8IHRzdWluaW5cIDsKK+mHj+WIkSA8IHJ5b3VrZWlcIDsKK+mHjeWIuyA8IGp1dWtva3VcIDsKK+eiuuWuiCA8IGtha3VzaHVcIDsKK+eZu+iomOewvyA8IHRvdWtpYm9cIDsKK+i/veippiA8IHRzdWlzaGlcIDsKK+WHuuizhyA8IHNodXNzaGlcIDsKK+ecn+i0iyA8IHNoaW5nYW5cIDsKK+awl+aMgSA8IGtpbW9jaGlcIDsKK+mHjeavjemfsyA8IGp1dWJvaW5cIDsKK+W5s+inkiA8IGhlaWtha3VcIDsKK+ato+eiuiA8IHNlaWtha3VcIDsKK+i/veiojiA8IHRzdWl0b3VcIDsKK+avrOaglyA8IGlnYWd1cmlcIDsKK+atu+eXhSA8IHNoaWJ5b3VcIDsKK+WFsemztCA8IGt5b3VtZWlcIDsKK+WPjeWPjiA8IHRhbnNodXVcIDsKK+mBheefpeaBtSA8IG9zb2RqaWVcIDsKK+W/luW6piA8IHNvbnRha3VcIDsKK+W4r+mHkSA8IG9iaWdhbmVcIDsKK+iNmOmHjSA8IHNvdWNob3VcIDsKK+Wkp+mBjuWOuyA8IGRhaWtha29cIDsKK+W/g+aDhSA8IHNoaW5qb3VcIDsKK+WMueaVtSA8IGhpdHRla2lcIDsKK+mDqOa0uyA8IGJ1a2F0c3VcIDsKK+mHjuWFjiA8IG5vdXNhZ2lcIDsKK+awuOW5tCA8IG5hZ2FuZW5cIDsKK+WKoOeul+WZqCA8IGthc2Fua2lcIDsKK+mAhuihjCA8IGd5YWtrb3VcIDsKK+Wkp+ebuOaSsiA8IG9venVtb3VcIDsKK+i/hemAnyA8IGppbnNva3VcIDsKK+apn+iDveiqniA8IGtpbm91Z29cIDsKK+W+jOabuCA8IGF0b2dha2lcIDsKK+WJjeiGiiA8IHplbnBha3VcIDsKK+mHkeWBtCA8IGtpbmdhd2FcIDsKK+W/g+aApyA8IHNoaW5zZWlcIDsKK+i/sOiqniA8IGp1dHN1Z29cIDsKK+eip+WxsSA8IGhla2l6YW5cIDsKK+ayiOWQnyA8IGNoaW5naW5cIDsKK+acieawl+mfsyA8IHl1dWtpb25cIDsKK+WJjeiEsyA8IHplbicnbm91XCA7CivlubTooaggPCBuZW5weW91XCA7CivliY3ohJogPCBtYWVhc2hpXCA7CivmrY7np7AgPCB0YW5zaG91XCA7Civlh7rorJsgPCBzaHVra291XCA7CivkuI3mnaHnkIYgPCBmdWpvdXJpXCA7CivliLrojYkgPCBpcmFrdXNhXCA7CivljYPmjK8gPCBzZW5idXJpXCA7Civlv4PlvpcgPCBrb2tvcm9lXCA7CivmgZLkuYUgPCBrb3VreXV1XCA7Civlj6rku4ogPCB0YWRhaW1hXCA7Civlj43liYcgPCBoYW5zb2t1XCA7Civlj6PkvpsgPCBrb3VreW91XCA7CivlvLfngasgPCB0c3V5b2JpXCA7CivmgYvku7IgPCBrb2luYWthXCA7CivmrbvnkIMgPCBzaGlreXV1XCA7CivliqnnlaogPCBzdWtlYmFuXCA7Civlvozml6UgPCBnb25pY2hpXCA7CivphY3lvbkgPCBoYWl5YWt1XCA7CivmgYvkurogPCBrb2liaXRvXCA7CivlpKfpgZPlhbcgPCBvb2RvdWd1XCA7CivlrprkvY3nva4gPCB0ZWlpY2hpXCA7CivmgKrlipsgPCBrYWlyaWtpXCA7CivlvoHmnI0gPCBzZWlmdWt1XCA7Civmr43mp5ggPCBrYWFzYW1hXCA7CivnnJ/oq6YgPCBzaGludGVpXCA7CivlvLHngrkgPCBqYWt1dGVuXCA7CivpgKPojZggPCByZW5jaGFuXCA7CivlhobpoZQgPCBtYXJ1Z2FvXCA7Civnm7LpgLIgPCBtb3VzaGluXCA7Civlv6DlrZ0gPCBjaHV1a291XCA7Civps6XnnrAgPCBjaG91a2FuXCA7CivlubzomasgPCB5b3VjaHV1XCA7CivokL3nkIMgPCByYWtreXV1XCA7Civlt6jpoY0gPCBreW9nYWt1XCA7CivlibLnrpcgPCB3YXJpemFuXCA7CivpgYvpgIHlsYsgPCB1bnNvdXlhXCA7CivpgKDllrbosrsgPCB6b3VlaWhpXCA7Civlj43lhbEgPCBoYW5reW91XCA7CivmrovnhacgPCB6YW5zaG91XCA7CivljJfmnbEgPCBob2t1dG91XCA7CivpgLjogZ4gPCBpdHN1YnVuXCA7CivphZLluK0gPCBzaHVzZWtpXCA7Civnn7Pngq0gPCBzZWtpdGFuXCA7CivmsLflsbEgPCBoeW91emFuXCA7CivlvJXnjocgPCBpbnNvdHN1XCA7Civlu7bnnYAgPCBlbmNoYWt1XCA7CivmsLflsYsgPCBrb29yaXlhXCA7CivljbHlsYAgPCBraWt5b2t1XCA7Civokpnlj6Toqp4gPCBtb3Vrb2dvXCA7Civlh7jop5IgPCB0b2trYWt1XCA7Civnm67pgIEgPCBtb2t1c291XCA7CivmqZ/morDnp5EgPCBraWthaWthXCA7Civnm7TovLggPCBjaG9rdXl1XCA7CivnoJXmsLcgPCBzYWloeW91XCA7CivnnJ/oqIAgPCBzaGluZ29uXCA7Civlu7rnmb0gPCBrZW5wYWt1XCA7CivmrabnlaUgPCBidXJ5YWt1XCA7CivmgKfliIYgPCBzaG91YnVuXCA7CivlhpfplbcgPCBqb3VjaG91XCA7CivnorrloLEgPCBrYWt1aG91XCA7CivluqfogbcgPCB6YXNob2t1XCA7Civlj6PkuK0gPCBrb3VjaHV1XCA7CivlhrfphbcgPCByZWlrb2t1XCA7CivmrKHlubTluqYgPCBqaW5lbmRvXCA7CivmrrTmrrogPCBvdXNhdHN1XCA7CivlhaXprYIgPCBueXV1a29uXCA7Civlv5flraYgPCBzaGlnYWt1XCA7CivlpJrph43ljJYgPCB0YWp1dWthXCA7CivlvoDml6UgPCBvdWppdHN1XCA7CivmsYLlqZogPCBreXV1a29uXCA7Civlu7bnmbogPCBlbnBhdHN1XCA7CivljYPku6PlpbMgPCBjaGl5b2pvXCA7CivnnJ/opb8gPCBtYW5pc2hpXCA7Civlj6TnpL7lr7ogPCBrb3NoYWppXCA7CivlvJPnirYgPCBreXV1am91XCA7CivphpzlkI0gPCBzaHV1bWVpXCA7CivmsJHlv4MgPCBtaW5zaGluXCA7CivmqKnpq5ggPCBrZW5kYWthXCA7CivkuIDlsaTnm64gPCBpc3NvdW1lXCA7CivmsJHlvrMgPCBtaW50b2t1XCA7Civlj43kv5cgPCBoYW56b2t1XCA7Civmsbrli50gPCBrZXNzaG91XCA7CivlhoXpmbggPCBuYWlyaWt1XCA7Civnm7Tot68gPCBjaG9rdXJvXCA7CivpgannorogPCB0ZWtrYWt1XCA7CivojLbph5wgPCBjaGFnYW1hXCA7CivlqJHlqYbmsJcgPCBzaGFiYWtlXCA7CivovpvphbggPCBzaGluc2FuXCA7CivluIzph4ggPCBraXNoYWt1XCA7Civlh7booYwgPCBreW91a291XCA7Civmr47mnJ0gPCBtYWljaG91XCA7Civnmb3pr6ggPCBoYWt1Z2VpXCA7CivljYrlvJMgPCBoYW5reXV1XCA7CivlirHno4HmqZ8gPCByZWlqaWtpXCA7CivkuI3pppblsL4gPCBmdXNodWJpXCA7CivliJ3ojbcgPCBoYXRzdW5pXCA7CivljJfmlK8gPCBob2t1c2hpXCA7CivmgqrmhJ/ljJYgPCBha2thbmthXCA7CivlvoXpgb/miYAgPCB0YWloaWpvXCA7CivlhoXplrIgPCBuYWlldHN1XCA7CivlhoXplqMgPCBuYWlrYWt1XCA7CivphY3lsZ4gPCBoYWl6b2t1XCA7CivolLXljL8gPCB6b3V0b2t1XCA7CivluKvotbAgPCBzaGl3YXN1XCA7CivmsojlgKsgPCBjaGlucmluXCA7CivphZLlrqIgPCBzaHVrYWt1XCA7Civmr5Tml6UgPCBoaW5pY2hpXCA7Civljp/lkYogPCBnZW5rb2t1XCA7Civlm5vogqHlkI0gPCBzaGlrb25hXCA7Civnmb3prZogPCBzaGlyYXVvXCA7CivljYrlubQgPCBoYW4nJ25lblwgOwor6YGL562GIDwgdW5waXRzdVwgOwor6be55YygIDwgdGFrYWpvdVwgOwor5q2054S2IDwgcmVraXplblwgOwor5LiN5Lq65rCXIDwgZnVuaW5raVwgOwor5YWs6aCYIDwga291cnlvdVwgOwor6L+R6KaqIDwga2luc2hpblwgOwor5oCl5L2/IDwga3l1dXNoaVwgOwor5Ym955uXIDwgaHlvdXRvdVwgOwor5bm86IulIDwgeW91amFrdVwgOwor6KW/5qyn5YyWIDwgc2Vpb3VrYVwgOwor5YWo6aGNIDwgemVuZ2FrdVwgOwor5qiZ6auYIDwgaHlvdWtvdVwgOwor5Y2z5aOyIDwgc29rdWJhaVwgOwor5LqM6ZqO5bGLIDwgbmlrYWl5YVwgOwor5Y2D5bqmIDwgY2hpdGFiaVwgOwor5by35rCXIDwgdHN1eW9raVwgOwor5qOS5pqX6KiYIDwgYm91YW5raVwgOwor5bqB6IiOIDwgY2hvdXNoYVwgOwor5YqH55WMIDwgZ2VraWthaVwgOwor5Y2D5bm0IDwgY2hpdG9zZVwgOwor5LiN5LiA6Ie0IDwgZnVpdGNoaVwgOwor6KGA5Y+N5ZCQIDwgY2hpaGVkb1wgOwor5YqH55SaIDwgZ2VraWppblwgOwor5qiq6aGUIDwgeW9rb2dhb1wgOwor5puz54Gr5by+IDwgZWlrYWRhblwgOwor5Yun5qWtIDwga2FuZ3lvdVwgOwor5Yed6KaWIDwgZ3lvdXNoaVwgOwor5Yi657mNIDwgc2hpc2h1dVwgOwor556g55uuIDwgZG91bW9rdVwgOwor5YaN6YyyIDwgc2Fpcm9rdVwgOwor55yf6JmrIDwgbWFtdXNoaVwgOwor6bOl542jIDwgY2hvdWp1dVwgOwor5b655a61IDwgdGVzc2hvdVwgOwor5Y2R5bGIIDwgaGlrdXRzdVwgOwor5Yqg54axIDwga2FuZXRzdVwgOwor57Ch57Sg5YyWIDwga2Fuc29rYVwgOwor5YCL5L2T5beuIDwga290YWlzYVwgOwor5YaN6YuzIDwgc2FpY2h1dVwgOwor5rC35aGKIDwgaHlvdWthaVwgOwor5ZCM6Z+z6KqeIDwgZG91b25nb1wgOwor5Y2S5a+/IDwgc290c3VqdVwgOwor5by35qyyIDwgZ291eW9rdVwgOwor5Y2U5a6aIDwga3lvdXRlaVwgOwor5YW16ZW3IDwgaGVpY2hvdVwgOwor6YWM5ammIDwgc2hha3VmdVwgOwor56Cy5pKDIDwgaG91Z2VraVwgOwor5rCX5a+GIDwga2ltaXRzdVwgOwor6YG455CDIDwgc2Vua3l1dVwgOwor5Y6f5YmHIDwgZ2Vuc29rdVwgOwor5YWx6ZeYIDwga3lvdXRvdVwgOwor5LmX5YuZ5ZOhIDwgam91bXVpblwgOwor55u06KurIDwgY2hva2thblwgOwor6KOP5pyo5oi4IDwgdXJha2lkb1wgOwor55m66aasIDwgaGF0c3ViYVwgOwor5Yi657WhIDwgc2hpcmFrdVwgOwor5YWo6ZuGIDwgemVuc2h1dVwgOwor5Y2T5a2QIDwgdGVpYnVydVwgOwor55u06KuHIDwgamlraWRhblwgOwor5YWl6Zu7IDwgbnl1dWRlblwgOwor5YmN56ugIDwgemVuc2hvdVwgOwor55+z5q61IDwgaXNoaWRhblwgOwor5q2m54OIIDwgYnVyZXRzdVwgOwor55u06KmxIDwgY2hva3V3YVwgOwor56OB5YqbIDwgamlyeW9rdVwgOwor5rC05Z6iIDwgbWl6dWFrYVwgOwor5bmz6Ie8IDwgaGlyYXVzdVwgOwor5b255omAIDwgeWFrdXNob1wgOwor6YGp55SoIDwgdGVraXlvdVwgOwor6YCj57aaIDwgcmVuem9rdVwgOwor5Y215ZqiIDwgcmFuJydub3VcIDsKK+awj+WvuiA8IHVqaWRlcmFcIDsKK+WFpemaiiA8IG55dXV0YWlcIDsKK+W/g+WkliA8IHNoaW5nYWlcIDsKK+mHkeavmOe+hSA8IGtvbnBpcmFcIDsKK+WNiuWutSA8IGhhbnNob3VcIDsKK+mAo+e1oSA8IHJlbnJha3VcIDsKK+WItue0hCA8IHNlaXlha3VcIDsKK+eekeebriA8IG1laW1va3VcIDsKK+WKm+eCuSA8IHJpa2l0ZW5cIDsKK+awtOWcpyA8IHN1aWF0c3VcIDsKK+W5u+iBtCA8IGdlbmNob3VcIDsKK+aomemhjCA8IGh5b3VkYWlcIDsKK+awt+WaoiA8IGh5b3Vub3VcIDsKK+W/teWKmyA8IG5lbnJpa2lcIDsKK+eEoemAoOS9nCA8IG11em91c2FcIDsKK+ebtOimpyA8IGppa2lyYW5cIDsKK+WNg+WwiyA8IGNoaWhpcm9cIDsKK+WFqOmVtyA8IHplbmNob3VcIDsKK+WNmuWkpyA8IGhha3VkYWlcIDsKK+WNgeS6jOaZgiA8IGp1dW5pamlcIDsKK+iQvea2mSA8IHJha3VydWlcIDsKK+WGhemHkSA8IHVjaGlraW5cIDsKK+eZu+mggiA8IHRvdWNob3VcIDsKK+ebl+iziiA8IHRvdXpva3VcIDsKK+WNmuWjqyA8IGhha3VzaGlcIDsKK+aEj+aDs+WkliA8IGlzb3VnYWlcIDsKK+S4jeWuieWumiA8IGZ1YW50ZWlcIDsKK+eZuumfsyA8IGhhdHN1b25cIDsKK+WFpemWgCA8IG55dXVtb25cIDsKK+avkuaJiyA8IGRva3VzaHVcIDsKK+efs+apiyA8IHNla2t5b3VcIDsKK+ecn+iPjCA8IHNoaW5raW5cIDsKK+eZvemdoiA8IGhha3VtZW5cIDsKK+W+ueWknCA8IHRldHN1eWFcIDsKK+mZsOmbu+awlyA8IGluZGVua2lcIDsKK+efs+anqCA8IHNla2tha3VcIDsKK+WIh+iFuSA8IHNlcHB1a3VcIDsKK+W/oOWQmyA8IGNodXVrdW5cIDsKK+iWhOmmrOm5vyA8IHVzdWJha2FcIDsKK+iUteS6uiA8IGt1cm91ZG9cIDsKK+W5tOiAgSA8IHRvc2hpb2lcIDsKK+iLlOmhniA8IGtva2VydWlcIDsKK+S4geWtl+i3ryA8IHRlaWppcm9cIDsKK+eZuumcsiA8IGhhdHN1cm9cIDsKK+WFh+mhniA8IGt5b3VydWlcIDsKK+mAlOe1tiA8IHRvemV0c3VcIDsKK+ebtOihjCA8IGNob2trb3VcIDsKK+WKm+a8lSA8IHJpa2lzb3VcIDsKK+WNoOWcsCA8IHNoaW1lamlcIDsKK+W/g+WcsCA8IGtva29jaGlcIDsKK+aPkOekuumDqCA8IHRlaWppYnVcIDsKK+WFiOmggyA8IHNlbmtvcm9cIDsKK+atu+avkiA8IHNoaWRva3VcIDsKK+aFsOWVj+WTgSA8IGltb25oaW5cIDsKK+W6nOeriyA8IGZ1cml0c3VcIDsKK+WOn+S9nCA8IGdlbnNha3VcIDsKK+WNsOWTsiA8IGludGV0c3VcIDsKK+WGt+iplSA8IHJlaWh5b3VcIDsKK+W/g+WboCA8IHNoaW4nJ2luXCA7CivpgJ/nrpcgPCBzb2t1c2FuXCA7CivljoTliY0gPCB5YWt1bWFlXCA7Civmrovmpa0gPCB6YW5neW91XCA7CivojZLooYwgPCBhcmFneW91XCA7CivlhoXpgJogPCBuYWl0c3V1XCA7CivopqrmloflrZcgPCBveWFtb2ppXCA7Civli53mma8gPCBzaG91a2VpXCA7Civnnq3nhLYgPCByeW91emVuXCA7CivlvpPlsZ4gPCBqdXV6b2t1XCA7CivlvKbmpb0gPCBnZW5nYWt1XCA7CivlioPnhLYgPCBrYWt1emVuXCA7CivljbPlkJ8gPCBzb2t1Z2luXCA7CivljYPlp6sgPCBzZW5oaW1lXCA7Civlv6Dli6QgPCBjaHV1a2luXCA7Civlv6Dli4cgPCBjaHV1eXV1XCA7CivnkIbosqHlrrYgPCByaXphaWthXCA7CivlhrfoppogPCByZWlrYWt1XCA7CivpgJrnrpcgPCB0c3V1c2FuXCA7CivpgIbnuIEgPCBneWFrdWVuXCA7CivmnInogLbnhKHogLYgPCB1eWFtdXlhXCA7CivnqL3lj6Tml6UgPCBrZWlrb2JpXCA7CivliJ3ntJogPCBzaG9reXV1XCA7Civmr5LmgKcgPCBkb2t1c2VpXCA7Civlt6HpgYogPCBqdW4nJ3l1dVwgOwor5b6T5a65IDwgc2hvdXlvdVwgOwor5Y2X5Zu9IDwgbmFuZ29rdVwgOwor5LqM5aGB5omTIDwgbmlydWlkYVwgOwor5by35pq0IDwga3lvdWJvdVwgOwor5bmV6IiOIDwgYmFrdXNoYVwgOwor5rC35Y6fIDwgaHlvdWdlblwgOwor5bmz57mUIDwgaGlyYW9yaVwgOwor5b+c5YqbIDwgb3VyeW9rdVwgOwor5Yud5pWXIDwgc2hvdWhhaVwgOwor5omL55u46KaLIDwgdGVzb3VtaVwgOwor5rGC5YiRIDwga3l1dWtlaVwgOwor5aSc55uX6Ju+IDwgeW90b3VnYVwgOwor5be76LKdIDwgbWFraWdhaVwgOwor5byP5qyhIDwgc2hpa2lqaVwgOwor5YaZ6LGhIDwgc2hhc2hvdVwgOwor5aWz5oCn576OIDwgam9zZWliaVwgOwor5q6L5p+xIDwgemFuY2h1dVwgOwor55+z5p2QIDwgc2VraXphaVwgOwor6aKo6YKq5aOwIDwga2F6ZWdvZVwgOwor5Y6t5LiW5a62IDwgZW5zZWlrYVwgOwor6YKm5qW9IDwgaG91Z2FrdVwgOwor5Ymj546JIDwga2VuZGFtYVwgOwor5YyX5ba6IDwgaG9rdXJlaVwgOwor5bm057WmIDwgbmVua3l1dVwgOwor5YWo6YePIDwgemVucnlvdVwgOwor5b6M5a2mIDwga291Z2FrdVwgOwor6YKE5rWBIDwga2Fucnl1dVwgOwor5Y2z5Yi7IDwgc29ra29rdVwgOwor5Ye26IGeIDwga3lvdWJ1blwgOwor5rCR5Zu9IDwgbWlua29rdVwgOwor5YWl6YeRIDwgbnl1dWtpblwgOwor5Ymb55CDIDwgZ291a3l1dVwgOwor54ao5paX55uuIDwgbm9zaGltZVwgOwor5Y2K5Zu9IDwgaGFuZ29rdVwgOwor5rC45YilIDwgZWliZXRzdVwgOwor6YW35L2/IDwga29rdXNoaVwgOwor5b+r5L2cIDwga2Fpc2FrdVwgOwor5Y2w5Yi3IDwgaW5zYXRzdVwgOwor6L+957SNIDwgdHN1aW5vdVwgOwor5rC35YiDIDwgaHlvdWppblwgOwor6Zmw6KyA5a62IDwgaW5ib3VrYVwgOwor5YWt6YGTIDwgcm9rdWRvdVwgOwor5YyX5bK4IDwgaG9rdWdhblwgOwor6YCB57GNIDwgc291c2VraVwgOwor5Yil56ewIDwgYmVzc2hvdVwgOwor6ZqP5oSP562LIDwgenVpaWtpblwgOwor5bqt55WqIDwgbml3YWJhblwgOwor6L6y6JasIDwgbm91eWFrdVwgOwor6YGK54yfIDwgeXV1cnlvdVwgOwor55m76YyyIDwgdG91cm9rdVwgOwor5Y2g5Y2cIDwgc2VuYm9rdVwgOwor5omL5Yqg5ribIDwgdGVrYWdlblwgOwor6K6a576O5q2MIDwgc2FuYmlrYVwgOwor6JGJ5pyIIDwgaGFkenVraVwgOwor5beo6LOKIDwga3lvem9rdVwgOwor6I+v54etIDwga2FzaG9rdVwgOwor5b2T5oORIDwgdG91d2FrdVwgOwor5YiG57SNIDwgYnVuJydub3VcIDsKK+WIneepgiA8IGhhdHN1aG9cIDsKK+W/heWLnSA8IGhpc3Nob3VcIDsKK+eZvemKkSA8IGhha3VzZW5cIDsKK+WFqOmAnyA8IHplbnNva3VcIDsKK+WFpemBuCA8IG55dXVzZW5cIDsKK+WFqOmAmiA8IHplbnRzdXVcIDsKK+eZvemKhSA8IGhha3Vkb3VcIDsKK+eZvemKgCA8IGhha3VnaW5cIDsKK+WFpemBkyA8IG55dXVkb3VcIDsKK+mCquabsiA8IGpha3lva3VcIDsKK+WNnOWNoCA8IGJva3VzZW5cIDsKK+WQjOS9jeS9kyA8IGRvdWl0YWlcIDsKK+W3peizgyA8IGtvdWNoaW5cIDsKK+awt+WDjyA8IGh5b3V6b3VcIDsKK+mhnumfs+iqniA8IHJ1aW9uZ29cIDsKK+mBiueJpyA8IHl1dWJva3VcIDsKK+mAseeVqiA8IHNodXViYW5cIDsKK+W/g+WKtCA8IHNoaW5yb3VcIDsKK+WIneeniyA8IHNob3NodXVcIDsKK+W5vueoiyA8IGlrdWhvZG9cIDsKK+aui+aVtSA8IHphbnRla2lcIDsKK+mAmueglCA8IHRzdXVrZW5cIDsKK+WNlOWQjCA8IGt5b3Vkb3VcIDsKK+W5s+etiSA8IGJ5b3Vkb3VcIDsKK+WPieaJi+e2siA8IHNhZGVhbWlcIDsKK+WNs+WApCA8IHNva3VjaGlcIDsKK+mAmuefpSA8IHRzdXVjaGlcIDsKK+eZgumkiiA8IHJ5b3V5b3VcIDsKK+W5tOerryA8IHRvc2hpaGFcIDsKK+W6reeQgyA8IHRlaWt5dXVcIDsKK+auieaVmSA8IGp1bmt5b3VcIDsKK+atjOayoiA8IHV0YXphd2FcIDsKK+WLgeaVtSA8IGtlaXRla2lcIDsKK+WGjeiqvyA8IHNhaWNob3VcIDsKK+WGjeiqrSA8IHNhaWRva3VcIDsKK+axguS6uiA8IGt5dXVqaW5cIDsKK+WKn+alrSA8IGtvdWd5b3VcIDsKK+iJsum7kiA8IGlyb2d1cm9cIDsKK+WNl+WMlyA8IG5hbmJva3VcIDsKK+Wwj+e2rOm2jyA8IGtvanVrZWlcIDsKK+WNmuWKtCA8IGJha3Vyb3VcIDsKK+aZtOmbqOioiCA8IHNlaXVrZWlcIDsKK+aWh+W6q+WMliA8IGJ1bmtva2FcIDsKK+egtOWxgCA8IGhha3lva3VcIDsKK+ato+alrSA8IHNlaWd5b3VcIDsKK+mHjuasoemmrCA8IHlhaml1bWFcIDsKK+W4r+iKryA8IG9iaXNoaW5cIDsKK+WNiuWRqCA8IGhhbnNodXVcIDsKK+mBoea6kCA8IHNha3VnZW5cIDsKK+WFqOi6qyA8IHplbnNoaW5cIDsKK+avkuWusyA8IGRva3VnYWlcIDsKK+ihl+i3r+aouSA8IGdhaXJvanVcIDsKK+WGheirviA8IG5haWRha3VcIDsKK+W5uOemjyA8IGtvdWZ1a3VcIDsKK+WLpOaBqiA8IGtpbmtha3VcIDsKK+WHuueyviA8IHNodXNzZWlcIDsKK+W+qeWRvSA8IGZ1a3VtZWlcIDsKK+iLpemAoCA8IHdha2F6b3VcIDsKK+W6l+eVqiA8IG1pc2ViYW5cIDsKK+mtjemtjiA8IG1vdXJ5b3VcIDsKK+aOp+iotOmZoiA8IGtvdXNvaW5cIDsKK+mBqeazlSA8IHRla2lob3VcIDsKK+WEqumVtyA8IHl1dWNob3VcIDsKK+W/meS4rSA8IGJvdWNodXVcIDsKK+WNkeWKoyA8IGhpcmV0c3VcIDsKK+WIqeeZuiA8IHJpaGF0c3VcIDsKK+S7meS6uuaOjCA8IHNhYm90ZW5cIDsKK+W+qeWPtyA8IGZ1a3Vnb3VcIDsKK+W/g+WDjyA8IHNoaW56b3VcIDsKK+mAo+eUqCA8IHJlbicneW91XCA7CivmsJflipsgPCBraXJ5b2t1XCA7CivmrrXlubMgPCBkYW5iaXJhXCA7CivlhbHosqkgPCBreW91aGFuXCA7CivlhoXoqLwgPCBuYWlzaG91XCA7CivlhoXoqLogPCBuYWlzaGluXCA7CivliYrniYcgPCBzYWt1aGVuXCA7Civlvqnljp8gPCBmdWt1Z2VuXCA7CivnmbrpgLIgPCBoYXNzaGluXCA7CivlvJTmlocgPCBjaG91YnVuXCA7CivljJflpKkgPCBob2t1dGVuXCA7CivljJflpKcgPCBob2t1ZGFpXCA7CivlhYPph5EgPCBtb3Rva2luXCA7Civoi6XovKkgPCBqYWt1aGFpXCA7Civnm4romasgPCBla2ljaHV1XCA7CivlvrPliKkgPCB0b2trdXJpXCA7Civli4HmjbcgPCBrZWlzaG91XCA7Civlv4Xkv64gPCBoaXNzaHV1XCA7Civnm7LohbggPCBtb3VjaG91XCA7CivlvrPliIYgPCB0b2t1YnVuXCA7CivokrjlmaggPCBtdXNoaWtpXCA7Civlvq7lipsgPCBiaXJ5b2t1XCA7CivljL/lkI0gPCB0b2t1bWVpXCA7CivlurXngrkgPCBpb3JpdGVuXCA7Civlu7bmo5IgPCBub2JlYm91XCA7CivluLjnv5IgPCBqb3VzaHV1XCA7CivliLbnkIMgPCBzZWlreXV1XCA7CivliIbnp5IgPCBmdW5ieW91XCA7CivmrZPmpb0gPCBrYW5yYWt1XCA7CivmsLTkuK0gPCBzdWljaHV1XCA7Civpg6jlsYAgPCBidWt5b2t1XCA7Civlh43ogokgPCB0b3VuaWt1XCA7CivpgJrnlKggPCB0c3V1eW91XCA7CivojYnoibIgPCBrdXNhaXJvXCA7CivljJflooMgPCBob2treW91XCA7CivprYLprYQgPCBrb25wYWt1XCA7CivlvrTlhbUgPCBjaG91aGVpXCA7CivphY3kv6EgPCBoYWlzaGluXCA7CivpgJfnlZkgPCB0b3VyeXV1XCA7CivpganmraMgPCB0ZWtpc2VpXCA7CivmraPmnJ0gPCBzZWljaG91XCA7CivmraPmnJQgPCBzZWlzYWt1XCA7Civlh4TohZUgPCBzdWdvdWRlXCA7CivlhYnpgJ8gPCBrb3Vzb2t1XCA7Civli5jlv40gPCBrYW4nJ25pblwgOwor5YWI6YCyIDwgc2Vuc2hpblwgOwor5YWI6YCxIDwgc2Vuc2h1dVwgOwor5YWl6LKiIDwgbnl1dWtvdVwgOwor6YWS5LujIDwgc2FrYWRhaVwgOwor55m96LqrIDwgc2hpcm9taVwgOwor5ber6KGTIDwgZnVqdXRzdVwgOwor6YCf55CDIDwgc29ra3l1dVwgOwor6L+U57SNIDwgaGVuJydub3VcIDsKK+W+qeWIuyA8IGZ1a2tva3VcIDsKK+i7vemchyA8IGtlaXNoaW5cIDsKK+iNkuiCnSA8IGFyYWdpbW9cIDsKK+WHuuepgiA8IHNodXNzdWlcIDsKK+W8leaPmyA8IGhpa2lrYWVcIDsKK+i8u+i8syA8IGZ1a3Vzb3VcIDsKK+assuaxgiA8IHlva2t5dXVcIDsKK+W7tuadvyA8IG5vYmVpdGFcIDsKK+ecn+epuiA8IHNoaW5rdXVcIDsKK+ecvOebriA8IGdhbm1va3VcIDsKK+W8leaOpSA8IGluc2V0c3VcIDsKK+iJsumtlCA8IHNoaWtpbWFcIDsKK+W/heS4rSA8IGhpdGNodXVcIDsKK+i8qumDrSA8IHJpbmtha3VcIDsKK+e+qeaPtOmHkSA8IGdpZW5raW5cIDsKK+WNmOS9nCA8IHRhbnNha3VcIDsKK+ecgee3miA8IHNob3VzZW5cIDsKK+W8vuW5lSA8IGRhbm1ha3VcIDsKK+W5tOebiiA8IG5lbicnZWtpXCA7CivlvqnlhZogPCBmdWt1dG91XCA7CivlhYnou7ggPCBrb3VqaWt1XCA7Civlu7/ml6UgPCBoYXRzdWthXCA7CivlvLHlv5cgPCBqYWt1c2hpXCA7CivljJflm70gPCBob2trb2t1XCA7CivlvLflvIEgPCBreW91YmVuXCA7CivpgoTmmqYgPCBrYW5yZWtpXCA7CivlirHmjK8gPCByZWlzaGluXCA7Civovp7oibIgPCBqaXNob2t1XCA7Civlh7rnpL4gPCBzaHVzc2hhXCA7CivojYnogqUgPCBrdXNhZ29lXCA7CivliKnnjocgPCByaXJpdHN1XCA7CivnmbrotrMgPCBob3Nzb2t1XCA7CivlhazoqZUgPCBrb3VoeW91XCA7CivlhazoqLwgPCBrb3VzaG91XCA7CivljYHlha0gPCBqdXVyb2t1XCA7CivliKXnj40gPCBiZXRjaGluXCA7CivljZTkvJogPCBreW91a2FpXCA7Civkv6/nnrDlm7MgPCBmdWthbnp1XCA7CivlvqHmlrDpppkgPCBvc2hpbmtvXCA7CivkupznsbPliKnliqAgPCBhbWVyaWthXCA7CivljLrliKUgPCBrdWJldHN1XCA7CivljYPlhIQgPCBzZW4nJ29rdVwgOwor5rCX5L2NIDwga2lndXJhaVwgOwor5b6h5a625Lq6IDwgZ29rZW5pblwgOwor5byx5byfIDwgamFrdXRlaVwgOwor5YWx6KWfIDwgdG9tb2VyaVwgOwor55y855eFIDwgZ2FuYnlvdVwgOwor5YWt6KeSIDwgcm9ra2FrdVwgOwor5Y2S5LyNIDwgc290c3Vnb1wgOwor5aSn5a+66ZmiIDwgZGFpamlpblwgOwor5q6v5a6uIDwgaGlua3l1dVwgOwor56CU5a2mIDwga2VuZ2FrdVwgOwor5q6L5b+1IDwgemFuJyduZW5cIDsKK+iNt+epjSA8IG5pZHp1bWlcIDsKK+WNl+S4rSA8IG5hbmNodXVcIDsKK+WGt+iCiSA8IHJlaW5pa3VcIDsKK+iQveaJiyA8IHJha3VzaHVcIDsKK+ebuOe2miA8IHNvdXpva3VcIDsKK+aui+W/jSA8IHphbicnbmluXCA7CivmsJfku5ggPCBraWR6dWtlXCA7CivlhaXoqaYgPCBueXV1c2hpXCA7Civmrovlv4MgPCB6YW5zaGluXCA7Civng4/nvr3njokgPCB1YmF0YW1hXCA7CivlibXmpa0gPCBzb3VneW91XCA7Civlh6HnrZYgPCBib25zYWt1XCA7Civli4nlvLcgPCBiZW5reW91XCA7CivlhbHoo48gPCB0b21vdXJhXCA7CivlvozljoQgPCBhdG95YWt1XCA7CivokL3miJAgPCByYWt1c2VpXCA7Civlhajop5IgPCB6ZW5rYWt1XCA7CivlvLHlubQgPCBqYWt1bmVuXCA7Civli6flraYgPCBrYW5nYWt1XCA7CivljYrkvZwgPCBoYW5zYWt1XCA7CivlurbmtYEgPCBzaG9yeXV1XCA7CivmgKfooYzngrogPCBzZWlrb3VpXCA7CivmrbTmiKYgPCByZWtpc2VuXCA7CivkuIDoiKzljJYgPCBpcHBhbmthXCA7Civlt53onaYgPCBrYXdhZWJpXCA7CivmrYzmm7IgPCBrYWt5b2t1XCA7CivlvoXlkIggPCBtYWNoaWFpXCA7CivluLDntZAgPCBraWtldHN1XCA7Civnn7Pluq0gPCBzZWtpdGVpXCA7CivljZLkuK0gPCBzb3RjaHV1XCA7CivljZPkuIogPCB0YWt1am91XCA7CivlhYXotrMgPCBqdXVzb2t1XCA7CivojLbohbkgPCBjaGFiYXJhXCA7CivlhY3osqwgPCBtZW5zZWtpXCA7CivojZLnuIQgPCBhcmFuYXdhXCA7Civlg7vpmoUgPCBoZWtpZ3V1XCA7CivliofmmpEgPCBnZWtpc2hvXCA7Civnm7TntYwgPCBjaG9ra2VpXCA7CivljYHkupTlpJwgPCBqdXVnb3lhXCA7Civnm67nuIEgPCBtYWJ1Y2hpXCA7Civlg7vpmawgPCBoZWtpc3V1XCA7CivpgY3mrbQgPCBoZW5yZWtpXCA7CivluK/ntJkgPCBvYmlnYW1pXCA7CivlubLnk6IgPCBrYW5weW91XCA7CivlhJ/ph5EgPCBzaG91a2luXCA7CivmsI/kurogPCB1amloaXRvXCA7Civnn6XlvrMgPCBjaGl0b2t1XCA7CivpgYrmrbQgPCB5dXVyZWtpXCA7CivkuozpmaLliLYgPCBuaWluc2VpXCA7CivlhazooYYgPCBrb3VzaHV1XCA7CivlhYjosqAgPCBzZW5tYWtlXCA7CivnnLznkIMgPCBnYW5reXV1XCA7CivluL3nq6AgPCBib3VzaG91XCA7Civov5Hnp7AgPCBraW5zaG91XCA7CivnmbrorbAgPCBoYXRzdWdpXCA7Civlh7rnm6MgPCBzaHVra2FuXCA7CivpgIHnkIMgPCBzb3VreXV1XCA7CivlrrbmlL/lqaYgPCBrYXNlaWZ1XCA7Civoia/poqggPCByeW91ZnV1XCA7CivliIbnlZkgPCBidW5yeXV1XCA7Civli5jlr6kgPCBrYW5zaGluXCA7CivpganmnZAgPCB0ZWtpemFpXCA7CivpgoDmkoMgPCB5b3VnZWtpXCA7CivpgKPmv4EgPCByZW5kYWt1XCA7CivnrKzkuoznvqkgPCBkYWluaWdpXCA7Civmrb/lvowgPCBib3RzdWdvXCA7Civlhobou4zpgZMgPCBlbmtpZG91XCA7CivnnJ/nm7ggPCBzaGluc291XCA7CivnnJ/nm7QgPCBtYXNzdWd1XCA7CivlvbnlkI0gPCB5YWt1bWVpXCA7CivlvpPlg5UgPCBqdXVib2t1XCA7CivpgZPmpb0gPCBkb3VyYWt1XCA7Civnnqzmlq0gPCBzaHVuZGFuXCA7Civph47okaHokIQgPCBub2J1ZG91XCA7Civnmbroqp4gPCBoYXRzdWdvXCA7Civli6flpaggPCBrYW5zaG91XCA7CivlipvmipUgPCByaWtpdG91XCA7CivliJHnjYQgPCBrZWlnb2t1XCA7Civnmb7oqIggPCBoeWFra2VpXCA7CivljYPkuKEgPCBzZW5yeW91XCA7CivlvozlhYggPCBhdG9zYWtpXCA7CivljYHkuZ0gPCBqdXVreXV1XCA7CivnmbroqbEgPCBoYXRzdXdhXCA7CivljJfljYogPCBob2t1aGFuXCA7Civlu4Pmpa0gPCBoYWlneW91XCA7CivnmbroqLsgPCBoYXRjaHV1XCA7CivljYHkuKEgPCBqdXVyeW91XCA7CivlipvmiKYgPCByaWtpc2VuXCA7CivljYHkuIMgPCBqdXVuYW5hXCA7CivljYHkuIAgPCBqdXVpY2hpXCA7CivlvJXlvZMgPCBoaWtpYXRlXCA7CivpgLjmsJEgPCBpdHN1bWluXCA7CivlvovlhIAgPCByaWNoaWdpXCA7Civlv5zli5/ogIUgPCBvdWJvc2hhXCA7CivliY3mrbQgPCB6ZW5yZWtpXCA7Civlia/mnKwgPCBmdWt1aG9uXCA7CivoibHpm6MgPCBrYW4nJ25hblwgOwor6bq75a6f5rK5IDwgYXNhbWl5dVwgOwor6Iy26aOv5LqLIDwgc2FoYW5qaVwgOwor5byP5b6uIDwgc2hpa2liaVwgOwor6YGK5qW9IDwgeXV1cmFrdVwgOwor6Lu96YePIDwga2VpcnlvdVwgOwor6Lu96YeNIDwga2VpY2hvdVwgOwor55uu566XIDwgbW9rdXNhblwgOwor5Ye655SjIDwgc2h1c3NhblwgOwor55m66KaaIDwgaGFra2FrdVwgOwor6YCy5rC0IDwgc2hpbnN1aVwgOwor5YWr6YeN6ZuyIDwgeWFlZ3VtYVwgOwor5qyy5pybIDwgeW9rdWJvdVwgOwor5YuH5bCGIDwgeXV1c2hvdVwgOwor55uf57SEIDwgbWVpeWFrdVwgOwor55u456ewIDwgc291c2hvdVwgOwor5b285YemIDwga2FzaGlrb1wgOwor55+u5bCPIDwgd2Fpc2hvdVwgOwor552r5q+bIDwgbWF0c3VnZVwgOwor6YK45a6FIDwgdGVpdGFrdVwgOwor55uu56uvIDwgbWVoYXNoaVwgOwor5YuJ5a2mIDwgYmVuZ2FrdVwgOwor6a+o6IKJIDwgZ2VpbmlrdVwgOwor5YSq6LaKIDwgeXV1ZXRzdVwgOwor55m+6KGMIDwgaHlha2tvdVwgOwor6L+R55y8IDwgY2hpa2FtZVwgOwor6I+M5q+SIDwga2luZG9rdVwgOwor5q205bm0IDwgcmVraW5lblwgOwor5pyq6LiP5p+7IDwgbWl0b3VzYVwgOwor5byT5birIDwgeXVtaXNoaVwgOwor5YWI6KaaIDwgc2Vua2FrdVwgOwor5b6M5L2cIDwgYXRvc2FrdVwgOwor5beo6Ii2IDwga3lvaGFrdVwgOwor5bqV5rWBIDwgdGVpcnl1dVwgOwor57W16JGJ5pu4IDwgZWhhZ2FraVwgOwor55m66KGoIDwgaGFwcHlvdVwgOwor6YG45oqeIDwgc2VudGFrdVwgOwor5qyg5qC8IDwga2Vra2FrdVwgOwor5YWx6JGXIDwga3lvdWNob1wgOwor56i95Y+k5aC0IDwga2Vpa29iYVwgOwor5bqD5rygIDwga291YmFrdVwgOwor6I2J56ybIDwga3VzYWJ1ZVwgOwor5Yud5aCxIDwgc2hvdWhvdVwgOwor5Yid5r2uIDwgc2hvY2hvdVwgOwor5Yqp5bmzIDwgc3VrZWJlaVwgOwor5a6J5YWo5pyfIDwgYW56ZW5raVwgOwor5by35aSnIDwga3lvdWRhaVwgOwor5Y+N5oSP6KqeIDwgaGFuJydpZ29cIDsKK+i8quiqrSA8IHJpbmRva3VcIDsKK+efpeWwhiA8IGNoaXNob3VcIDsKK+WGheiGnCA8IG5haW1ha3VcIDsKK+W8t+WjriA8IGt5b3Vzb3VcIDsKK+W9ueWDpyA8IHlha3Vzb3VcIDsKK+WAi+S6uuW3riA8IGtvamluc2FcIDsKK+WKh+aIpiA8IGdla2lzZW5cIDsKK+e3j+WLmemDqCA8IHNvdW11YnVcIDsKK+avkuWIgyA8IGRva3VqaW5cIDsKK+eZveidiyA8IGhha3Vyb3VcIDsKK+W4hue2sSA8IGhvZHp1bmFcIDsKK+i7jemVtyA8IGd1bmNob3VcIDsKK+WKm+W9uSA8IHJpa2lla2lcIDsKK+itpumDqOijnCA8IGtlaWJ1aG9cIDsKK+WGt+eskSA8IHJlaXNob3VcIDsKK+S4juWkqumDjiA8IHlvdGFyb3VcIDsKK+iMtueypSA8IGNoYWdheXVcIDsKK+W7u+W/gyA8IGthaXNoaW5cIDsKK+eci+eXhSA8IGthbmJ5b3VcIDsKK+ebruekvCA8IG1va3VyZWlcIDsKK+i8uOihgCA8IHl1a2V0c3VcIDsKK+S9jeeJjOWggiA8IGloYWlkb3VcIDsKK+WLneWcsCA8IHNob3VjaGlcIDsKK+WInea5ryA8IGhhdHN1eXVcIDsKK+e+qeWkquWkqyA8IGdpZGF5dXVcIDsKK+WHtueMmyA8IGt5b3Vtb3VcIDsKK+S4iemeremFkiA8IHNoYW5wZW5cIDsKK+iJpumVtyA8IGthbmNob3VcIDsKK+Wmg+auv+S4iyA8IGhpZGVua2FcIDsKK+WHjeefsyA8IHRvdXNla2lcIDsKK+WItuassiA8IHNlaXlva3VcIDsKK+WHuueJiCA8IHNodXBwYW5cIDsKK+W8n+WrgSA8IG90b3lvbWVcIDsKK+WHtueKtiA8IGt5b3Vqb3VcIDsKK+aouuiJsiA8IGthYmFpcm9cIDsKK+mAgOa9riA8IHRhaWNob3VcIDsKK+egguWcsCA8IHN1bmFjaGlcIDsKK+mBk+aVmSA8IGRvdWt5b3VcIDsKK+a8q+eUu+WutiA8IG1hbmdha2FcIDsKK+mBjuaXpSA8IGthaml0c3VcIDsKK+i7oumHnSA8IHRlbnNoaW5cIDsKK+iMtueusSA8IGNoYWJha29cIDsKK+W4sOedgCA8IGtpY2hha3VcIDsKK+mBqeaJgCA8IHRla2lzaG9cIDsKK+WDu+mCkSA8IGhla2l5dXVcIDsKK+S4jeacrOaEjyA8IGZ1aG9uJydpXCA7CivmrY7mga8gPCB0YW5zb2t1XCA7Civoi5vomZAgPCBrYWd5YWt1XCA7CivmranlkIjnrpcgPCBidWFpemFuXCA7Civlvavlg48gPCBjaG91em91XCA7Civoqp7lvZnnmoQgPCBnb2l0ZWtpXCA7Civnn7PloZQgPCBzZWtpdG91XCA7Civov5TnkIMgPCBoZW5reXV1XCA7Civnn7PloYAgPCBpc2hpYmVpXCA7CivlvJ/lp6sgPCBvdG9oaW1lXCA7CivliKnmrpYgPCByaXNob2t1XCA7CivlvbnkurogPCB5YWt1bmluXCA7CivovrHnn6UgPCBqb2t1Y2hpXCA7Civli6flkYogPCBrYW5rb2t1XCA7Civnm7Lnm64gPCBtb3Vtb2t1XCA7Civnl5vpoqggPCB0c3V1ZnV1XCA7CivpgLjmnZAgPCBpdHN1emFpXCA7CivnrKzkuIDoqrIgPCBkYWlpa2thXCA7Civlh7rngq0gPCBzaHV0dGFuXCA7CivlvLHlm70gPCBqYWtrb2t1XCA7CivojbfniakgPCBuaW1vdHN1XCA7CivljJfkuIogPCBob2t1am91XCA7CivkupXmiLjnq68gPCBpZG9iYXRhXCA7Civlia/miYsgPCBmdWt1c2h1XCA7Civlib3mgo0gPCBoeW91a2FuXCA7CivoibLph4wgPCBpcm96YXRvXCA7CivnkIbkuovkvJogPCByaWppa2FpXCA7Civnm6Tnn7MgPCBiYW5qYWt1XCA7CivovrLnm7ggPCBub3VzaG91XCA7CivpgYrmkoMgPCB5dXVnZWtpXCA7Civngavmm5zml6UgPCBrYXlvdWJpXCA7CivlhaXoiI4gPCBueXV1c2hhXCA7CivlvqHkuI3mtYQgPCBnb2Z1am91XCA7CivpgJDmrKEgPCBjaGlrdWppXCA7CivovrrnloYgPCBoZW5reW91XCA7CivliY3mlrkgPCBtYWVrYXRhXCA7Civnmb3oj5wgPCBoYWt1c2FpXCA7CivmnKrlrprnvqkgPCBtaXRlaWdpXCA7CivlibLmhJsgPCBrYXRzdWFpXCA7Civnm6PnnaMgPCBrYW50b2t1XCA7CivouoHprLEgPCBzb3V1dHN1XCA7Civmpb3pmoogPCBnYWt1dGFpXCA7Civmronlm70gPCBqdW5rb2t1XCA7CivpgIbmr5QgPCBneWFrdWhpXCA7Civlr77kvY3ms5UgPCB0YWlpaG91XCA7CivlhqXnpo8gPCBtZWlmdWt1XCA7CivnnabmnIggPCBtdXRzdWtpXCA7CivliLvmnKwgPCBrb2t1aG9uXCA7CivmraPlrZAgPCBzaG91c2hpXCA7Civlub3mrJ0gPCB5dXV1dHN1XCA7CivmrrrlgrcgPCBzYXNzaG91XCA7Civmta7mtarlhZAgPCBmdXJvdWppXCA7Civlqabkurrnp5EgPCBmdWppbmthXCA7CivlhoXntIQgPCBuYWl5YWt1XCA7CivlvLflkbMgPCB0c3V5b21pXCA7CivliaPmiJ8gPCBrZW5nZWtpXCA7Civov5TnhacgPCBoZW5zaG91XCA7CivoiYfplbcgPCB0ZWljaG91XCA7Civku5bkuJbnlYwgPCB0YXNla2FpXCA7CivpganlvZMgPCB0ZWtpdG91XCA7CivmhbDlirTph5EgPCBpcm91a2luXCA7CivmqKnog70gPCBrZW4nJ25vdVwgOwor5q2j5auhIDwgc2VpdGVraVwgOwor5qyy5oOFIDwgeW9rdWpvdVwgOwor5bqn5pW3IDwgemFzaGlraVwgOwor5qW86ZajIDwgcm91a2FrdVwgOwor5YiG5rOoIDwgYnVuY2h1dVwgOwor5YyF5LiBIDwgaG91Y2hvdVwgOwor55m66Iq9IDwgaGF0c3VnYVwgOwor6YCy5pWwIDwgc2hpbnN1dVwgOwor55CG5LiN5bC9IDwgcmlmdWppblwgOwor55m+6IisIDwgaHlhcHBhblwgOwor5Ye65rigIDwgc2h1a2t5b1wgOwor5Y2Y5Z2Q5qmfIDwgdGFuemFraVwgOwor6JC95Z+OIDwgcmFrdWpvdVwgOwor5Ymy5b2TIDwgd2FyaWF0ZVwgOwor5qyy5b+1IDwgeW9rdW5lblwgOwor5qif6ISzIDwgc2hvdW5vdVwgOwor5LiN6aO95ZKMIDwgZnVob3V3YVwgOwor6L+R54GrIDwgY2hpa2FiaVwgOwor5Yil5qC8IDwgYmVra2FrdVwgOwor55a+6aKoIDwgc2hpcHB1dVwgOwor6JC95ZywIDwgcmFrdWNoaVwgOwor5YWx57eoIDwga3lvdWhlblwgOwor5q2k5aW0IDwga295YXRzdVwgOwor55uX55mWIDwgdG91aGVraVwgOwor6Ii56ZW3IDwgc2VuY2hvdVwgOwor5Luj6K2w5ZOhIDwgZGFpZ2lpblwgOwor56CU5L+uIDwga2Vuc2h1dVwgOwor5Yi35pawIDwgc2Fzc2hpblwgOwor6Z2e5ZCI55CGIDwgaGlnb3VyaVwgOwor5q6/5LitIDwgZGVuY2h1dVwgOwor5by35YqbIDwgZ291cmlraVwgOwor5bqP5puyIDwgam9reW9rdVwgOwor57eP5YuZ6KqyIDwgc291bXVrYVwgOwor5bqK5p2/IDwgeXVrYWl0YVwgOwor6YCa5pyJIDwgdHN1dXl1dVwgOwor5YW157OnIDwgaHlvdXJvdVwgOwor55uG55+zIDwgYm9uc2VraVwgOwor5qyj5oKmIDwga2luZXRzdVwgOwor5YW457GNIDwgdGVuc2VraVwgOwor6YGT5b6zIDwgZG91dG9rdVwgOwor55eF6ZujIDwgYnlvdW5hblwgOwor5Yqb5aOrIDwgcmlraXNoaVwgOwor5qSw5a2Q5rK5IDwgeWFzaGl5dVwgOwor6LuK6LybIDwgc2hhcnlvdVwgOwor5YW157GNIDwgaGVpc2VraVwgOwor6YCf5patIDwgc29rdWRhblwgOwor6LuK6Lu4IDwgc2hhamlrdVwgOwor5YaF56mNIDwgbmFpc2VraVwgOwor5Ymj5b2iIDwga2VuZ2F0YVwgOwor6I2S54mpIDwgYXJhbW9ub1wgOwor55uy54iGIDwgbW91YmFrdVwgOwor5YO76KuWIDwgaGVraXJvblwgOwor5by35YW1IDwga3lvdWhlaVwgOwor5YWs57SEIDwga291eWFrdVwgOwor5q615LiYIDwgZGFua3l1dVwgOwor6L6y54mnIDwgbm91Ym9rdVwgOwor5YWl57a/IDwgaXJld2F0YVwgOwor5rC05rOz552AIDwgc3VpZWlnaVwgOwor5qiq57eaIDwgeW9rb3NlblwgOwor55m95769IDwgc2hpcmFoYVwgOwor5bO76Zm6IDwgc2h1bmtlblwgOwor5ber56WdIDwgZnVzaHVrdVwgOwor6Lu46KOFIDwgamlrdXNvdVwgOwor55uj542EIDwga2FuZ29rdVwgOwor5Yil5pmCIDwgYmV0c3VqaVwgOwor5byU5ZWPIDwgY2hvdW1vblwgOwor5YWo57SaIDwgemVua3l1dVwgOwor5YaF56aPIDwgbmFpZnVrdVwgOwor5YaZ55yfIDwgc2hhc2hpblwgOwor5Yed5rueIDwgZ3lvdXRhaVwgOwor6YGT5bqKIDwgZG91c2hvdVwgOwor5q6K5YudIDwgc2h1c2hvdVwgOwor6LuN6LazIDwgZ3Vuc29rdVwgOwor5YO76KiAIDwgaGVraWdlblwgOwor57W16I2J57SZIDwgZXpvdXNoaVwgOwor5Ymj5bmVIDwga2VubWFrdVwgOwor5Ye25q2zIDwga3lvdXNhaVwgOwor5Ymb5by3IDwgZ291a3lvdVwgOwor5YiG5qWtIDwgYnVuZ3lvdVwgOwor6Lui6Kq/IDwgdGVuY2hvdVwgOwor5q2M5aerIDwgdXRhaGltZVwgOwor6YGg5bGxIDwgdG9veWFtYVwgOwor5qiq57O4IDwgeW9rb2l0b1wgOwor5qyh5byPIDwgamlzaGlraVwgOwor6YGK5byLIDwgeXV1eW9rdVwgOwor6YG65aSxIDwgaXNoaXRzdVwgOwor6YG45aWoIDwgc2Vuc2hvdVwgOwor5YO76KaLIDwgaGVraWtlblwgOwor6Iqx6JG1IDwgaGFuYWFvaVwgOwor6JC95ZG9IDwgcmFrdW1laVwgOwor6YGK5buTIDwgeXV1a2FrdVwgOwor5qi556uLIDwganVyaXRzdVwgOwor6a2U6KGTIDwgbWFqdXRzdVwgOwor5Yeh5rWBIDwgYm9ucnl1dVwgOwor6IiM6Z+zIDwgemV0c3VvblwgOwor5Yid5pelIDwgaGF0c3VoaVwgOwor5byV5Y+XIDwgaGlraXVrZVwgOwor5YqH5aSJIDwgZ2VraWhlblwgOwor5bu65Zu9IDwga2Vua29rdVwgOwor55+t5YaKIDwgdGFuemFrdVwgOwor55+z5YOPIDwgc2VraXpvdVwgOwor552j5oimIDwgdG9rdXNlblwgOwor55y65pybIDwgY2hvdWJvdVwgOwor5YqH5aOHIDwgZ2VraWRhblwgOwor6L+R5rOBIDwga2lua3lvdVwgOwor5qyg5bitIDwga2Vzc2VraVwgOwor5beo55+zIDwga3lvc2VraVwgOwor5q205Y+yIDwgcmVraXNoaVwgOwor5bmz5pyNIDwgaGVpZnVrdVwgOwor6Lui6KaGIDwgdGVucHVrdVwgOwor5qmf55WlIDwga2lyeWFrdVwgOwor5bCP54qs5bqnIDwga29pbnV6YVwgOwor5YqH5aC0IDwgZ2VraWpvdVwgOwor6Lqr6L+RIDwgbWlkamlrYVwgOwor6YCG5peFIDwgZ2VraXJ5b1wgOwor6Lqr6L66IDwgc2hpbnBlblwgOwor5YiG5p6QIDwgYnVuc2VraVwgOwor5byx5L2TIDwgamFrdXRhaVwgOwor5qiq56ybIDwgeW9rb2J1ZVwgOwor55m657WmIDwgaGFra3l1dVwgOwor6Lu96JaEIDwga2VpaGFrdVwgOwor5byV5YqbIDwgaW5yeW9rdVwgOwor5YaG55uGIDwgbWFydWJvblwgOwor6LWk5ZGz5ZmMIDwgYWthbWlzb1wgOwor6JGX5L2cIDwgY2hvc2FrdVwgOwor55ep6LqrIDwgc291c2hpblwgOwor6Iqx6ImyIDwgaGFuYWlyb1wgOwor6YCf5oiQIDwgc29rdXNlaVwgOwor5bem55u0IDwgc2FjaG9rdVwgOwor5YmN5bm0IDwgemVuJyduZW5cIDsKK+mAgeaWmSA8IHNvdXJ5b3VcIDsKK+mxl+acqCA8IHJpbmJva3VcIDsKK+eZveeyiSA8IG9zaGlyb2lcIDsKK+WGheeahCA8IG5haXRla2lcIDsKK+iLpuevgCA8IGt1c2V0c3VcIDsKK+eZveexsyA8IGhha3VtYWlcIDsKK+efreS/oSA8IHRhbnNoaW5cIDsKK+aoqueptCA8IHlva29hbmFcIDsKK+altemBkyA8IGdva3Vkb3VcIDsKK+Wvvue+qeiqniA8IHRhaWdpZ29cIDsKK+ect+aXjyA8IGtlbnpva3VcIDsKK+mBk+WtpiA8IGRvdWdha3VcIDsKK+WBtOmdoiA8IHNva3VtZW5cIDsKK+W5o+adnyA8IGhlaXNva3VcIDsKK+WKqeWLoiA8IHN1a2V6ZWlcIDsKK+WKn+WQjSA8IGtvdW15b3VcIDsKK+iJh+i6qyA8IHRlaXNoaW5cIDsKK+axmuafk+iPjCA8IG9zZW5raW5cIDsKK+mBjuWvhiA8IGthbWl0c3VcIDsKK+S4ieaXpei3ryA8IG1pa2thamlcIDsKK+WKquWKmyA8IGRvcnlva3VcIDsKK+WxhemFkuWxiyA8IGl6YWtheWFcIDsKK+W6reW4qyA8IG5pd2FzaGlcIDsKK+mqqOmqvCA8IGtva2tha3VcIDsKK+WKqeWKmyA8IGpvcnlva3VcIDsKK+i/veaUviA8IHRzdWlob3VcIDsKK+iHquWutuijvSA8IGppa2FzZWlcIDsKK+mBiuWtpiA8IHl1dWdha3VcIDsKK+ats+WFpSA8IHNhaW55dXVcIDsKK+mzqeWQiCA8IGt5dXVnb3VcIDsKK+asoOWtlyA8IGtldHN1amlcIDsKK+Whl+W4g+WJpCA8IHRvZnV6YWlcIDsKK+ato+WMlyA8IHNlaWhva3VcIDsKK+WCt+i3oSA8IGtpenVhdG9cIDsKK+atpuWKmyA8IGJ1cnlva3VcIDsKK+mBqeWcsCA8IHRla2ljaGlcIDsKK+WKn+WKmyA8IGtvdXJpa2lcIDsKK+WPpOWFuOiqniA8IGtvdGVuZ29cIDsKK+iNkuazoiA8IGFyYW5hbWlcIDsKK+i/kealrSA8IGtpbmd5b3VcIDsKK+ecn+abuCA8IHNoaW5zaG9cIDsKK+W6teWupCA8IGFuaml0c3VcIDsKK+WFseebiiA8IGt5b3Vla2lcIDsKK+mAmuaApyA8IHRzdXVzZWlcIDsKK+ato+WJhyA8IHNlaXNva3VcIDsKK+msseihgCA8IHVra2V0c3VcIDsKK+WFvOeUqCA8IGtlbicneW91XCA7CivlirTkvZwgPCByb3VzYWt1XCA7CivpgJrlv7UgPCB0c3V1bmVuXCA7Civlh4vmrosgPCBjaG91emFuXCA7CivkuI3mma/msJcgPCBmdWtlaWtpXCA7CivlhrfmtrwgPCByZWlyeW91XCA7Civou73oiJ8gPCBrZWlzaHV1XCA7CivokL3kvZMgPCByYWt1dGFpXCA7CivpgKPlubQgPCByZW4nJ25lblwgOwor5YiH5o+bIDwga2lyaWthZVwgOwor55eV6LehIDwga29uc2VraVwgOwor5ZCI55CG5YyWIDwgZ291cmlrYVwgOwor5bmy5ouTIDwga2FudGFrdVwgOwor5q275Lq6IDwgc2hpYml0b1wgOwor5YWs55qEIDwga291dGVraVwgOwor5bu65YmNIDwgdGF0ZW1hZVwgOwor5YiH5o6bIDwga2lra2FrZVwgOwor6YCy5bGVIDwgc2hpbnRlblwgOwor5qyg5aaCIDwga2V0c3Vqb1wgOwor6aqo6aCCIDwga290Y2hvdVwgOwor5qiq552AIDwgb3VjaGFrdVwgOwor5YiG5o6MIDwgYnVuc2hvdVwgOwor5byB5YSfIDwgYmVuc2hvdVwgOwor5ouJ5LiB6KqeIDwgcmF0ZW5nb1wgOwor5YiR5oiuIDwga2VpcmlrdVwgOwor6YCa5byKIDwgdHN1dWhlaVwgOwor55m656WlIDwgaGFzc2hvdVwgOwor6YCa5byBIDwgdHN1dWJlblwgOwor5q205LydIDwgcmVraWRlblwgOwor5bm95oSBIDwgeXV1c2h1dVwgOwor6JC95Lq6IDwgb2NodXVkb1wgOwor5YWl55ujIDwgbnl1dWthblwgOwor5q275LitIDwgc2hpY2h1dVwgOwor5q205Lu7IDwgcmVraW5pblwgOwor5Yil5b6MIDwgYmV0c3Vnb1wgOwor6Zu756OB5rOiIDwgZGVuamloYVwgOwor5q205LujIDwgcmVraWRhaVwgOwor5YWx55SoIDwga3lvdXlvdVwgOwor5qW16LKnIDwgZ29rdWhpblwgOwor5YWx55SjIDwga3lvdXNhblwgOwor5qip55uKIDwga2VuJydla2lcIDsKK+W5u+aDkSA8IGdlbndha3VcIDsKK+i7ouiQvSA8IHRlbnJha3VcIDsKK+W5leaUvyA8IGJha3VzZWlcIDsKK+ecjOaciSA8IGtlbicneXV1XCA7Civov73mh5AgPCB0c3Vpa2FpXCA7CivprZrohbkgPCBneW9mdWt1XCA7CivpgJrluLggPCB0c3V1am91XCA7Civov73mhrYgPCB0c3Vpb2t1XCA7CivouorouocgPCBjaHV1Y2hvXCA7CivprLzok64gPCBvbmliYXN1XCA7CivnnJ/mka8gPCBzaGluc2hpXCA7Civpm7vno4HmsJcgPCBkZW5qaWtpXCA7Civnmobnm64gPCBrYWltb2t1XCA7Civnmb3noIIgPCBoYWt1c2hhXCA7CivmpoLoqZUgPCBnYWloeW91XCA7CivlvIvkurogPCB5b2t1amluXCA7Civlh53mnJsgPCBneW91Ym91XCA7Civlgr7op5IgPCBrZWlrYWt1XCA7CivlhbjnjYQgPCB0ZW5nb2t1XCA7Civpr5vnhLwgPCB0YWl5YWtpXCA7CivpganlkIggPCB0ZWtpZ291XCA7CivliofliaQgPCBnZWtpemFpXCA7CivliKXluK0gPCBiZXNzZWtpXCA7CivlhYPnpoQgPCBnZW5yb2t1XCA7Civlgr7opoYgPCBrZWlmdWt1XCA7CivprZrogokgPCBneW9uaWt1XCA7CivlhaXnlKggPCBueXV1eW91XCA7Civnmb3nnLwgPCBoYWt1Z2FuXCA7CivojZLmpa0gPCBhcmF3YXphXCA7CivliLrlrZAgPCBzYXNoaWtvXCA7CivmraPkvZMgPCBzaG91dGFpXCA7CivpgIblvpIgPCBneWFrdXRvXCA7CivlsbHpupMgPCBzYW5yb2t1XCA7Civov47mmKUgPCBnZWlzaHVuXCA7Civnmb3nm64gPCBzaGlyb21lXCA7CivliJflvLcgPCByZWtreW91XCA7CivovrLmpa0gPCBub3VneW91XCA7CivliIfmhJsgPCBzZXRzdWFpXCA7CivlgJnps6UgPCBrb3VjaG91XCA7CivmoITppIrkvqEgPCBlaXlvdWthXCA7CivpgoTkv5cgPCBnZW56b2t1XCA7CivpgJ/lsIQgPCBzb2t1c2hhXCA7Civov7fmg5EgPCBtZWl3YWt1XCA7CivpgLzloZ4gPCBoaXNzb2t1XCA7Civnl5voqIAgPCB0c3V1Z2VuXCA7CivliJ3lt7MgPCBoYXRzdW1pXCA7CivnrKzkuozmrKEgPCBkYWluaWppXCA7Civnlr7otbAgPCBzaGlzc291XCA7CivliJfluqcgPCByZXRzdXphXCA7CivnnYDluqcgPCBjaGFrdXphXCA7CivojLbmrrsgPCBjaGFnYXJhXCA7Civov73lvpMgPCB0c3VpanV1XCA7CivmraPkuK0gPCBzZWljaHV1XCA7CivouqzooYwgPCBreXV1a291XCA7Civnmb3nl7QgPCBoYWt1Y2hpXCA7CivkupXmiLjmsLQgPCBpZG9taXp1XCA7Civlh7bmiYsgPCBreW91c2h1XCA7CivluILms4EgPCBzaGlreW91XCA7CivliJfluK0gPCByZXNzZWtpXCA7CivluJ3mpa0gPCB0ZWlneW91XCA7CivliY3lnoIgPCBtYWVkYXJlXCA7CivkuIDlgIvkurogPCBpa2tvamluXCA7CivkuqHnpZbniLYgPCBib3Vzb2Z1XCA7CivlvqHmnLHljbAgPCBnb3NodWluXCA7CivnnYDlt6UgPCBjaGFra291XCA7CivlibLli5ggPCB3YXJpa2FuXCA7CivnlbDmgKfkvZMgPCBpc2VpdGFpXCA7CivnmbrnlrkgPCBob3NzaGluXCA7Civps6XkurogPCBjaG91amluXCA7Civov47mkoMgPCBnZWlnZWtpXCA7CivpgLLloYEgPCBzaGlucnVpXCA7CivliaPlkZEgPCBrZW4nJ25vblwgOwor5YaS5racIDwgYm91dG9rdVwgOwor5qSc6Y+hIDwga2Vua3lvdVwgOwor5YWI55qHIDwgc2VuJydub3VcIDsKK+mAgOW4rSA8IHRhaXNla2lcIDsKK+WIpeWutCA8IGJldHN1ZW5cIDsKK+mAseWgsSA8IHNodXVob3VcIDsKK+WJsuWJjSA8IHdhcmltYWVcIDsKK+WGhua7kSA8IGVua290c3VcIDsKK+WIpeWuhSA8IGJldHRha3VcIDsKK+WFjeeWqyA8IG1lbicnZWtpXCA7CivlibLliKQgPCB3YXJpaGFuXCA7CivpnZ7lkIzmnJ8gPCBoaWRvdWtpXCA7Civou7jnt5ogPCBqaWt1c2VuXCA7CivljYHpnLLnm6QgPCBzb3JvYmFuXCA7CivlgbTovrogPCBzb2t1aGVuXCA7CivmrKDlk6EgPCBrZXRzdWluXCA7Civmo5LpsYggPCBib3VkYXJhXCA7CivlhaXniakgPCBpcmVtb25vXCA7CivlhaXniaIgPCBueXV1cm91XCA7Civpgbjku7sgPCBzZW4nJ25pblwgOwor5Ye25oKqIDwga3lvdWFrdVwgOwor562G6KiY5YW3IDwgaGlra2lndVwgOwor55Wq6ZW3IDwgYmFuY2hvdVwgOwor56mP5YGl5rS+IDwgb25rZW5oYVwgOwor6IKy5YWQ5ZySIDwgaWt1amllblwgOwor5bm85bCRIDwgeW91c2hvdVwgOwor6Zu75rCX54KJIDwgZGVua2lyb1wgOwor6I2J5pyoIDwgc291bW9rdVwgOwor55uu5pifIDwgbWVib3NoaVwgOwor5L6d5a2Y5oCnIDwgaXpvbnNlaVwgOwor5bm95a+CIDwgeXV1amFrdVwgOwor5YOa6ImmIDwgcnlvdWthblwgOwor5YiG5be7IDwgYnVubWFraVwgOwor5q+U5Y+h5bGxIDwgaGllaXphblwgOwor55mp55eFIDwgcmFpYnlvdVwgOwor6YCa5aWPIDwgdHN1dXNvdVwgOwor55aj6LazIDwgaWJvYXNoaVwgOwor5L6d6aC86ICFIDwgaXJhaXNoYVwgOwor6Imv6IO9IDwgcnlvdW5vdVwgOwor6LyJ56mNIDwgc2Fpc2VraVwgOwor6Iy25qOaIDwgY2hhZGFuYVwgOwor5bm85a2QIDwgb3NhbmFnb1wgOwor6YGp5L6LIDwgdGVraXJlaVwgOwor5qSc6YedIDwga2Vuc2hpblwgOwor5Ye65bu3IDwgc2h1dHRlaVwgOwor5bSp6JC9IDwgaG91cmFrdVwgOwor55yf5b2xIDwgc2hpbicnZWlcIDsKK+W5tOWwkSA8IG5lbnNob3VcIDsKK+W5o+W4myA8IGhlaWhha3VcIDsKK+WHtuW8viA8IGt5b3VkYW5cIDsKK+mAn+WgsSA8IHNva3Vob3VcIDsKK+eUsumrmCA8IGtvdWRha2FcIDsKK+eZveeKtiA8IGhha3Vqb3VcIDsKK+ijveayueaJgCA8IHNlaXl1am9cIDsKK+mBqeS7uyA8IHRla2luaW5cIDsKK+WItuWcpyA8IHNlaWF0c3VcIDsKK+eWvuimliA8IHNoaXNzaGlcIDsKK+iLpueGsSA8IGt1bmV0c3VcIDsKK+eZuueLgiA8IGhha2t5b3VcIDsKK+WJteS9nCA8IHNvdXNha3VcIDsKK+aqhOaWhyA8IGdla2lidW5cIDsKK+WGheaxoCA8IHVjaGlpa2VcIDsKK+ebruaSpSA8IG1lYmFjaGlcIDsKK+WBj+mHnSA8IGhlbnNoaW5cIDsKK+mAgOWtpiA8IHRhaWdha3VcIDsKK+WBj+mHjSA8IGhlbmNob3VcIDsKK+W5tOWtkCA8IHRvc2hpZ29cIDsKK+mAmuWgsSA8IHRzdXVob3VcIDsKK+WfuuacrOiqniA8IGtpaG9uZ29cIDsKK+WJo+WFiCA8IGtlbnNha2lcIDsKK+WHtuW5tCA8IGt5b3VuZW5cIDsKK+ecn+W5syA8IG1hcHBpcmFcIDsKK+eZkuedgCA8IHl1Y2hha3VcIDsKK+W+oeS4ieWutiA8IGdvc2Fua2VcIDsKK+WJr+S9vyA8IGZ1a3VzaGlcIDsKK+iOq+WkpyA8IGJha3VkYWlcIDsKK+WJjeWOhCA8IG1hZXlha3VcIDsKK+mtmuernCA8IGd5b3J5dXVcIDsKK+i/t+WuriA8IG1laWt5dXVcIDsKK+mBheWIuyA8IGNoaWtva3VcIDsKK+W5lOW5lSA8IG1hbm1ha3VcIDsKK+S6lOevgOWPpSA8IGdvc2Vra3VcIDsKK+ajrumWkSA8IHNoaW5rYW5cIDsKK+i+n+aYkyA8IGhla2lla2lcIDsKK+WFpea8gSA8IG55dXVneW9cIDsKK+ebtOaKqyA8IGNob2t1aGlcIDsKK+iqpOWLleS9nCA8IGdvZG91c2FcIDsKK+eZuueFmSA8IGhhdHN1ZW5cIDsKK+iIn+ihjCA8IHNodXVrb3VcIDsKK+WyuOi+uiA8IGtpc2hpYmVcIDsKK+mBk+S/lyA8IGRvdXpva3VcIDsKK+mAsuWPliA8IHNoaW5zaHVcIDsKK+iGqOmahiA8IGJvdXJ5dXVcIDsKK+WAjemhjSA8IGJhaWdha3VcIDsKK+ebruaMhyA8IG1va3VzaGlcIDsKK+W9seWNsOacrCA8IGVpaW5ob25cIDsKK+mtlOeqnyA8IG1ha3V0c3VcIDsKK+WHneW/tSA8IGd5b3VuZW5cIDsKK+W3oeattCA8IGp1bnJla2lcIDsKK+WxsemggiA8IHNhbmNob3VcIDsKK+WFpea5ryA8IG55dXV0b3VcIDsKK+WHuuWxlSA8IHNodXR0ZW5cIDsKK+WFpea4oCA8IG55dXVreW9cIDsKK+iLm+eDiCA8IGthcmV0c3VcIDsKK+e1jOWWtuiyuyA8IGtlaWVpaGlcIDsKK+i/q+WusyA8IGhha3VnYWlcIDsKK+WFq+a0siA8IHlhc2hpbWFcIDsKK+WGhuebuOWgtCA8IGVuc291YmFcIDsKK+i9n+ayiCA8IGdvdWNoaW5cIDsKK+ecjOW6gSA8IGtlbmNob3VcIDsKK+WHoeW6uCA8IGJvbicneW91XCA7CivnmYfnmZYgPCBrYW5wZWtpXCA7CivoibLntKAgPCBzaGlraXNvXCA7Civov5HlubQgPCBraW4nJ25lblwgOwor55uG5pquIDwgYm9ua3VyZVwgOwor6LmJ6LeMIDwgc2F0ZXRzdVwgOwor5bm05aKXIDwgdG9zaGltYVwgOwor6YGT5Li7IDwgZG91c2h1dVwgOwor5YeL5oK0IDwgY2hvdXN1aVwgOwor6YGT5LitIDwgZG91Y2h1dVwgOwor5bGx6Zm9IDwgc2FuJyd5b3VcIDsKK+WxsemZtSA8IHNhbnJ5b3VcIDsKK+mBiuS8kSA8IHl1dWt5dXVcIDsKK+eXmOiLlyA8IHRvdWJ5b3VcIDsKK+mAseWIiiA8IHNodXVrYW5cIDsKK+iiq+eWkeiAhSA8IGhpZ2lzaGFcIDsKK+W6luWOqCA8IGhvdWNodXVcIDsKK+WAkumWoyA8IHRvdWtha3VcIDsKK+WIl+WbvSA8IHJla2tva3VcIDsKK+edo+WKsSA8IHRva3VyZWlcIDsKK+W3oealrSA8IGp1bmd5b3VcIDsKK+aomea6liA8IGh5b3VqdW5cIDsKK+iPiuWIpCA8IGtpa3ViYW5cIDsKK+eUo+mhjSA8IHNhbmdha3VcIDsKK+mAseWGhSA8IHNodXVuYWlcIDsKK+mwu+WxiyA8IHVuYWdpeWFcIDsKK+WFpeawtCA8IG55dXVzdWlcIDsKK+WItuWLnSA8IHNlaXNob3VcIDsKK+WIu+WIuyA8IGtva2tva3VcIDsKK+WCmeiThCA8IGJpY2hpa3VcIDsKK+mAmuWQjSA8IHRvb3JpbmFcIDsKK+i7jeexjSA8IGd1bnNla2lcIDsKK+iIueiItiA8IHNlbnBha3VcIDsKK+mAo+WLnSA8IHJlbnNob3VcIDsKK+mAmuWPsiA8IHRzdXVzaGlcIDsKK+ebtOW+jCA8IGNob2t1Z29cIDsKK+ebtOW+gCA8IGNob2t1b3VcIDsKK+aUvueBq+mtlCA8IGhvdWthbWFcIDsKK+S/rumkiiA8IHNodXV5b3VcIDsKK+S4jeaWreedgCA8IGZ1ZGFuZ2lcIDsKK+iBlui3r+WKoCA8IHNlaXJva2FcIDsKK+eXheiPjCA8IGJ5b3VraW5cIDsKK+WHuuWllCA8IHNodXBwb25cIDsKK+alveiBliA8IGdha3VzZWlcIDsKK+iIueiFuSA8IHNlbnB1a3VcIDsKK+S4i+e3mumDqCA8IGthc2VuYnVcIDsKK+eZvea0siA8IHNoaXJhc3VcIDsKK+WHoeWwjyA8IGJvbnNob3VcIDsKK+WJjeS7uyA8IHplbicnbmluXCA7Civlt6jmnKggPCBreW9ib2t1XCA7CivoiKzoi6UgPCBoYW4nJ255YVwgOwor5YK36ICFIDwgc2hvdXNoYVwgOwor5YaG5puyIDwgZW5reW9rdVwgOwor5bC+6aqoIDwgYmlrb3RzdVwgOwor5bqD5ZGKIDwga291a29rdVwgOwor6Iqd55SfIDwgc2hpYmFmdVwgOwor6YCa5YukIDwgdHN1dWtpblwgOwor6Ieq6KqsIDwgamlzZXRzdVwgOwor5YWF5rqiIDwganV1aXRzdVwgOwor55yL5a6iIDwga2Fua2FrdVwgOwor6Iy25omYIDwgY2hhdGFrdVwgOwor55yf5aSPIDwgbWFuYXRzdVwgOwor6L665bmFIDwgaGVucHVrdVwgOwor5bqX5YaFIDwgdGVuJyduYWlcIDsKK+WkmuasoeWFgyA8IHRhamlnZW5cIDsKK+W3neafsyA8IHNlbnJ5dXVcIDsKK+alreiFuSA8IGdvdWhhcmFcIDsKK+iJr+eoriA8IHJ5b3VzaHVcIDsKK+WAn+mHkSA8IHNoYWtraW5cIDsKK+WJiuS6lSA8IHNha3VzZWlcIDsKK+S8vOmdnuiAhSA8IGVzZW1vbm9cIDsKK+W6j+WIlyA8IGpvcmV0c3VcIDsKK+WAkumMryA8IHRvdXNha3VcIDsKK+W4neW+syA8IHRlaXRva3VcIDsKK+iEs+WkluenkSA8IG5vdWdla2FcIDsKK+mAmuWIhiA8IHRzdXVidW5cIDsKK+i/veWWhCA8IHRzdWl6ZW5cIDsKK+WHtuWgsSA8IGt5b3Vob3VcIDsKK+W+oeS4i+WVjyA8IGdva2Ftb25cIDsKK+aknOiqjSA8IGtlbicnbmluXCA7CivojZLlt7sgPCBhcmFtYWtpXCA7Civnl4XoiI4gPCBieW91c2hhXCA7CivoiJ7ojLggPCBtYWl0YWtlXCA7CivpgLHku6QgPCBzaHV1cmVpXCA7Civlh4blt54gPCBqdW5zaHV1XCA7CivohoPogq3oh40gPCBvdHRvc2VpXCA7CivlhbHmoJMgPCB0b21vc2VuXCA7CivlpbPmgKflmaggPCBqb3NlaWtpXCA7CivlrbXljbXlmaggPCBmdXJhbmtpXCA7CivmpJzoqLwgPCBrZW5zaG91XCA7CivnhKHnkIbop6MgPCBtdXJpa2FpXCA7CivluLjlrr8gPCBqb3V5YWRvXCA7Civkv6HpoLwgPCBzaGlucmFpXCA7CivlhYnmsqIgPCBrb3V0YWt1XCA7CivluJ3lu58gPCB0ZWlieW91XCA7Civlh7nlnLAgPCBrdWJvY2hpXCA7Civlh7jlnYogPCBkZWtvYm91XCA7Civou43npaggPCBndW5weW91XCA7Civnm5vlvrMgPCBzZWl0b2t1XCA7Civmpa3ogIUgPCBneW91c2hhXCA7Civou43npZ4gPCBndW5zaGluXCA7CivouYjopbIgPCB0b3VzaHV1XCA7CivoiJ/oiYcgPCBzaHV1dGVpXCA7CivmqKrmo5IgPCB5b2tvYm91XCA7CivlubTlj44gPCBuZW5zaHV1XCA7CivlhaXmooUgPCBueXV1YmFpXCA7CivohZPpqqggPCBoaWtvdHN1XCA7CivlhbHmnIkgPCBreW91eXV1XCA7CivpsKTlrZAgPCBidXJpa2tvXCA7Civnm7jlrqIgPCBhaWt5YWt1XCA7CivniLbmgKfmhJsgPCBmdXNlaWFpXCA7Civov73lj7cgPCB0c3VpZ291XCA7CivpgKPkvZwgPCByZW5zYWt1XCA7CivlhY7mrKAgPCB0b2tldHN1XCA7CivlhYbmsJEgPCBjaG91bWluXCA7CivliKXlhIAgPCBiZXRzdWdpXCA7CivpnZ7mraboo4UgPCBoaWJ1c291XCA7Civoia/nn6UgPCByeW91Y2hpXCA7CivpgKPkvJEgPCByZW5reXV1XCA7CivliIflkbMgPCBraXJlYWppXCA7CivpgKDkvZwgPCB6b3VzYWt1XCA7Civlha3mm7ggPCByb2t1c2hvXCA7CivnnYDliaMgPCBjaGFra2VuXCA7CivliIblkaggPCBidW5zaHV1XCA7Civlha3mm5wgPCByb2t1eW91XCA7CivlhavmnJQgPCBoYXNzYWt1XCA7CivliKrkv64gPCBzYW5zaHV1XCA7Civlh4blsIYgPCBqdW5zaG91XCA7CivohZXpppYgPCB1ZGVrdWJpXCA7CivnnLzlipsgPCBnYW5yaWtpXCA7CivpgJrkvosgPCB0c3V1cmVpXCA7CivmqJnmppwgPCBoeW91Ym91XCA7CivlhaXmnaUgPCBueXV1cmFpXCA7CivnlaXorZwgPCByeWFrdWZ1XCA7CivovaLmlq0gPCByZWtpZGFuXCA7Civou6LnlKggPCB0ZW4nJ3lvdVwgOwor55qQ5pyIIDwgc2F0c3VraVwgOwor6YCj5LitIDwgcmVuY2h1dVwgOwor5YWD5q2MIDwgbW90b3V0YVwgOwor6Imy55m9IDwgaXJvamlyb1wgOwor5bKp6KeSIDwgaXdha2Fkb1wgOwor5ZCM54i25q+NIDwgZG91ZnVib1wgOwor6Iy25bqXIDwgY2hhbWlzZVwgOwor5Yed5aGKIDwgZ3lvdWthaVwgOwor5Ye65ZOBIDwgc2h1cHBpblwgOwor6L6y5a2mIDwgbm91Z2FrdVwgOwor6YCa5Lq6IDwgdHN1dWppblwgOwor55Wl6KqeIDwgcnlha3Vnb1wgOwor5YOt55SoIDwgc2VuJyd5b3VcIDsKK+i4iui6jSA8IHlvdXlha3VcIDsKK+iMtuW4rSA8IGNoYXNla2lcIDsKK+i/veWIiiA8IHRzdWlrYW5cIDsKK+eUqOmHjyA8IHlvdXJ5b3VcIDsKK+iHquiZkCA8IGppZ3lha3VcIDsKK+msvOeVnCA8IGtpY2hpa3VcIDsKK+iFkOmjnyA8IGZ1c2hva3VcIDsKK+W5tOWGhSA8IG5lbicnbmFpXCA7Civlgo3ogbQgPCBib3VjaG91XCA7Civlt6bmipggPCBzYXNldHN1XCA7Civnmb3moYMgPCBoYWt1dG91XCA7CivlpbPmgKfljJYgPCBqb3NlaWthXCA7Civoi6Xmnp0gPCB3YWthZWRhXCA7Civov5Hlm70gPCBraW5nb2t1XCA7CivoiLnnsY0gPCBzZW5zZWtpXCA7CivlhYPmqJkgPCBnZW5weW91XCA7Civlh7rlj6MgPCBkZWd1Y2hpXCA7CivliIfliYogPCBzZXNzYWt1XCA7CivnlaXop6MgPCByeWFra2FpXCA7CivliIDljKAgPCB0b3VzaG91XCA7CivnmbrmoYggPCBoYXRzdWFuXCA7CivnhKHmnJ/pmZAgPCBtdWtpZ2VuXCA7Civou5/nkIMgPCBuYW5reXV1XCA7Civkv67pjKwgPCBzaHV1cmVuXCA7Civoh6rlrrbnlKggPCBqaWtheW91XCA7Civnm7TlpY8gPCBqaWtpc291XCA7CivoiKrntpogPCBrb3V6b2t1XCA7Civoia/nlLAgPCByeW91ZGVuXCA7CivotrPpn7MgPCBhc2hpb3RvXCA7CivlhYjmo5IgPCBzYWtpYm91XCA7Civlrrbns7vlm7MgPCBrYWtlaXp1XCA7CivkuIDkuJbntIAgPCBpc3NlaWtpXCA7CivliIjlhaUgPCBrYXJpaXJlXCA7Civnmb3mnKggPCBzaGlyYWtpXCA7Civoh6rnlLHluqYgPCBqaXl1dWRvXCA7CivmqJnmnKwgPCBoeW91aG9uXCA7Civnmb3mm7ggPCBoYWt1c2hvXCA7CivmsZrmn5PmupAgPCBvc2VuZ2VuXCA7Civou43nlKggPCBndW4nJ3lvdVwgOwor5Yid5LmzIDwgc2hvbnl1dVwgOwor5bmz5L+hIDwgaGVpc2hpblwgOwor6I2S5aOBIDwgYXJha2FiZVwgOwor5YWr5o6bIDwgaGFra2FrZVwgOwor6Lyq5qWtIDwgcmluZ3lvdVwgOwor6Iy25a+uIDwgY2hhcnlvdVwgOwor5bmz5L2cIDwgaGVpc2FrdVwgOwor55uy5Z+3IDwgbW91c2h1dVwgOwor55SY6YWSIDwgYW1hemFrZVwgOwor5YWD5qCTIDwgbW90b3NlblwgOwor5YWr5oy6IDwgaGF0Y2hvdVwgOwor55yf5YmjIDwgc2hpbmtlblwgOwor5L6d6aC854q2IDwgaXJhaWpvdVwgOwor5Ye55Ye4IDwgb3V0b3RzdVwgOwor6L6b5a2QIDwga2FyYXNoaVwgOwor5Ye45Ye5IDwgdG90c3VvdVwgOwor55m+5pa5IDwgaHlhcHBvdVwgOwor5YG06IOMIDwgc29rdWhhaVwgOwor55mC5rOVIDwgcnlvdWhvdVwgOwor5YWl5o6bIDwgaXJla2FrdVwgOwor6L+35L+hIDwgbWVpc2hpblwgOwor5Ye25YiDIDwga3lvdWppblwgOwor56ys5LiA5q2pIDwgZGFpaXBwb1wgOwor5Ye65YW1IDwgc2h1cHBlaVwgOwor55m95paRIDwgaGFrdWhhblwgOwor6YCA5LqsIDwgdGFpa3lvdVwgOwor55m95paHIDwgaGFrdWJ1blwgOwor5b6u5aG15a2QIDwgbWlqaW5rb1wgOwor5Ye45YaGIDwgdG90c3VlblwgOwor5bGx6LOKIDwgc2Fuem9rdVwgOwor55y85LitIDwgZ2FuY2h1dVwgOwor6LSU5bGT55uuIDwgaGlpa2ltZVwgOwor5YG06IGeIDwgc29rdWJ1blwgOwor5qWt56iuIDwgZ3lvdXNodVwgOwor5YWr5omLIDwgeWF0c3VkZVwgOwor6Imy54mpIDwgaXJvbW9ub1wgOwor55ez55eFIDwgcmluYnlvdVwgOwor5YWD5pyNIDwgZ2VucHVrdVwgOwor5L+u6YGTIDwgc2h1dWRvdVwgOwor5YWL5piOIDwga29rdW1laVwgOwor5bm05LiKIDwgdG9zaGl1ZVwgOwor5L+d6YeIIDwgaG9zaGFrdVwgOwor5YWl5omLIDwgbnl1dXNodVwgOwor5YWl5omAIDwgbnl1dXNob1wgOwor6L+w5L2cIDwganVzc2FrdVwgOwor6Zu756OB5aC0IDwgZGVuamliYVwgOwor55u05Za2IDwgY2hva3VlaVwgOwor5bCP6Z2iIDwgc2hvdW1lblwgOwor5bC/6YW4IDwgbnlvdXNhblwgOwor6L6b5aS3IDwga29idXNoaVwgOwor5YWt5oOFIDwgcm9rdWpvdVwgOwor5LiA5L2T5YyWIDwgaXR0YWlrYVwgOwor5b6h5pel5qeYIDwgb2hpc2FtYVwgOwor6Z+z57695bGLIDwgb3Rvd2F5YVwgOwor6auY57KxIDwga291cnlhblwgOwor5bCP6ZujIDwgc2hvdW5hblwgOwor5bGA6YOoIDwga3lva3VidVwgOwor5Yy76Zmi6ZW3IDwgaWluY2hvdVwgOwor5Y2w5qyn6KqeIDwgaW4nJ291Z29cIDsKK+W4neWbvSA8IHRlaWtva3VcIDsKK+WHuuS8miA8IHNodWtrYWlcIDsKK+msseeEtiA8IHV0c3V6ZW5cIDsKK+WCt+eXlSA8IHNob3Vrb25cIDsKK+WGjeWvqSA8IHNhaXNoaW5cIDsKK+ecjOWGhSA8IGtlbicnbmFpXCA7CivlsL/pgZMgPCBueW91ZG91XCA7CivlgbTnt5ogPCBzb2t1c2VuXCA7CivlhazlvrMgPCBrb3V0b2t1XCA7CivluLjli50gPCBqb3VzaG91XCA7CivlhqXlooMgPCBtZWlreW91XCA7CivnnJ/kurogPCBzaGluamluXCA7CivlhrflmLIgPCByZWljaG91XCA7CivpprTpub8gPCB0b25ha2FpXCA7Civnm7Tlj4IgPCBqaWtpc2FuXCA7Civlh7rmnaXnp4sgPCBkZWtpYWtpXCA7Civpo5vooYzmqZ8gPCBoaWtvdWtpXCA7CivlhaXlv7UgPCBueXV1bmVuXCA7CivohIrpq4QgPCBzZWtpenVpXCA7CivnhKHkvZzngrogPCBtdXNha3VpXCA7CivnnJ/kuIsgPCBtYXNoaXRhXCA7CivlhoblrokgPCBlbicneWFzdVwgOwor5bCK6ZW3IDwgc29uY2hvdVwgOwor5YG9562GIDwgZ2loaXRzdVwgOwor55u45YmLIDwgc291a29rdVwgOwor6Iad6KGMIDwgc2hpa2tvdVwgOwor6YO95biC6YOoIDwgdG9zaGlidVwgOwor6Lui5rOoIDwgdGVuY2h1dVwgOwor5bqn6JKy5ZujIDwgemFidXRvblwgOwor5YWl5bu3IDwgbnl1dXRlaVwgOwor5L+X6LypIDwgem9rdWhhaVwgOwor6ISa6Z+7IDwga3lha3VpblwgOwor5Yeh5L+XIDwgYm9uem9rdVwgOwor5a+S6a6SIDwga2FuYnVuYVwgOwor5qWt55eFIDwgZ291YnlvdVwgOwor6L6y5Y2aIDwgbm91aGFrdVwgOwor6L6y5Y2UIDwgbm91a3lvdVwgOwor5YWo5bmFIDwgemVucHVrdVwgOwor5pS+6Kqy5b6MIDwgaG91a2Fnb1wgOwor5YWo5bitIDwgemVuc2VraVwgOwor6auY56aEIDwga291cm9rdVwgOwor6L+R5L2cIDwga2luc2FrdVwgOwor6I235Li7IDwgbmludXNoaVwgOwor6Imv5rivIDwgcnlvdWtvdVwgOwor5a+46ZqZIDwgc3VuZ2VraVwgOwor5LiA5pys5rCXIDwgaXBwb25naVwgOwor55uu5YmNIDwgbW9rdXplblwgOwor5bKp6IKMIDwgaXdhaGFkYVwgOwor5Yeh5Lq6IDwgYm9uJyduaW5cIDsKK+S/oeiyqSA8IHNoaW5wYW5cIDsKK+mbu+awl+WxiyA8IGRlbmtpeWFcIDsKK+S/l+i2oyA8IHpva3VzaHVcIDsKK+S/ruirliA8IHNodXVyb25cIDsKK+WFteWtpiA8IGhlaWdha3VcIDsKK+eUsOieuiA8IHRhbmlzaGlcIDsKK+eUo+ikpSA8IHNhbmpva3VcIDsKK+Wwj+mKgyA8IHNob3VqdXVcIDsKK+S+v+mAmiA8IGJlbnRzdXVcIDsKK+Wwj+mJoiA8IGtvYmFjaGlcIDsKK+acquadpea0viA8IG1pcmFpaGFcIDsKK+i1pOmjryA8IHNla2loYW5cIDsKK+W4neWKhyA8IHRlaWdla2lcIDsKK+WFseWtmCA8IGt5b3V6b25cIDsKK+ecgeS7pCA8IHNob3VyZWlcIDsKK+iHqueymyA8IGppc2h1a3VcIDsKK+eZvuW6piA8IGh5YWt1ZG9cIDsKK+aghOiqieekvCA8IGVpeW9yZWlcIDsKK+WGheWjgSA8IG5haWhla2lcIDsKK+eWvueXhSA8IHNoaXBwZWlcIDsKK+WFg+aCqiA8IGdlbicnYWt1XCA7Civns5booaPpjKAgPCB0b3Vpam91XCA7Civnlrznl5sgPCB0b3V0c3V1XCA7CivlrrPps6UgPCBnYWljaG91XCA7Civlgo3nmb0gPCBib3VoYWt1XCA7Civoia/msJEgPCByeW91bWluXCA7CivouoHnl4UgPCBzb3VieW91XCA7CivnkIboq5blrrYgPCByaXJvbmthXCA7CivnlLDomasgPCB0YW11c2hpXCA7Civnmb3luIYgPCBzaGlyYWhvXCA7Civpq5jnm7QgPCBrb3VqaWtpXCA7CivmiZPmpb3lmaggPCBkYWdha2tpXCA7CivnlJ/ooYAgPCBuYW1hY2hpXCA7CivnhKHkvZzms5UgPCBidXNhaG91XCA7CivlhaXlrpogPCBueXV1am91XCA7Civou6Lmpa0gPCB0ZW5neW91XCA7CivlsYjoqJcgPCBrdXR0YWt1XCA7Civnm7TkvJ0gPCBqaWtpZGVuXCA7CivojLbljJkgPCBjaGFzYWppXCA7Civoh6rnrYYgPCBqaWhpdHN1XCA7Civku4HnjovploAgPCBuaW91bW9uXCA7Civoi5fluoogPCBuYWVkb2tvXCA7CivotaTpnaIgPCBzZWtpbWVuXCA7Civlj6TlhbjmtL4gPCBrb3RlbmhhXCA7CivlhoXlnKcgPCBuYWlhdHN1XCA7Civnl5vngrkgPCB0c3V1dGVuXCA7CivntKDlsIHlrrYgPCBzb2hvdWthXCA7CivlhYjlubQgPCBzZW4nJ25lblwgOwor55ax55a5IDwgaG91c2hpblwgOwor5L+X6KyhIDwgem9rdXlvdVwgOwor5bCP6YGTIDwga29taWNoaVwgOwor6Ieq56uLIDwgamlyaXRzdVwgOwor5L+u6KGMIDwgc2h1Z3lvdVwgOwor5YaF5Zu9IDwgbmFpa29rdVwgOwor5L+X6Ku6IDwgem9rdWdlblwgOwor6Iez56aPIDwgc2hpZnVrdVwgOwor5a+66YqtIDwgdGVyYXNlblwgOwor6L6y5L2cIDwgbm91c2FrdVwgOwor5L+X6KumIDwgem9rdXRhaVwgOwor5L+K6LGqIDwgc2h1bmdvdVwgOwor5L+X6KuWIDwgem9rdXJvblwgOwor55eH54q2IDwgc2hvdWpvdVwgOwor5L+X6KuHIDwgem9rdWRhblwgOwor5bCO6YCaIDwgZG91dHN1dVwgOwor6a2a5pePIDwgZ3lvem9rdVwgOwor5YWl5am/IDwgaXJpbXVrb1wgOwor5YO75p2RIDwgaGVraXNvblwgOwor6a6o5bGLIDwgc3VzaGl5YVwgOwor5a+E6aOfIDwga2lzaG9rdVwgOwor55m95bGxIDwgaGFrdXNhblwgOwor55eF54q2IDwgYnlvdWpvdVwgOwor5YWD5bm0IDwgZ2FuJyduZW5cIDsKK+W4reS4iiA8IHNla2lqb3VcIDsKK+iNkuS6iyA8IGFyYWdvdG9cIDsKK+ebo+S/riA8IGthbnNodXVcIDsKK+atqeWQiOWItiA8IGJ1YWlzZWlcIDsKK+WBuOeblyA8IGNodXV0b3VcIDsKK+WDu+abuCA8IGhla2lzaG9cIDsKK+eVmee9riA8IHJ5dXVjaGlcIDsKK+i+m+WFmiA8IGthcmF0b3VcIDsKK+agvOmXmCA8IGtha3V0b3VcIDsKK+eVque1hCA8IGJhbmd1bWlcIDsKK+mtguafsSA8IGtvbmNodXVcIDsKK+eZvuWumCA8IGh5YWtrYW5cIDsKK+S9nOmiqCA8IHNha3VmdXVcIDsKK+mtmuays+WyuCA8IHVvZ2FzaGlcIDsKK+mmrOmjnyA8IGJhc2hva3VcIDsKK+iHqueUseWMliA8IGppeXV1a2FcIDsKK+iJpuapiyA8IGthbmt5b3VcIDsKK+aomeWumiA8IGh5b3V0ZWlcIDsKK+aoquWlqiA8IG91ZGF0c3VcIDsKK+eZveWtkCA8IHNoaXJva29cIDsKK+WGjeWRiiA8IHNhaWtva3VcIDsKK+i7jealvSA8IGd1bmdha3VcIDsKK+WxseiKiyA8IHlhbWFpbW9cIDsKK+W4neS6rCA8IHRlaWt5b3VcIDsKK+i8u+WwhCA8IGZ1a3VzaGFcIDsKK+WFpeWjsCA8IG5pc3Nob3VcIDsKK+aOiOeUo+aJgCA8IGp1c2Fuam9cIDsKK+mnhuWLleapnyA8IGt1ZG91a2lcIDsKK+WvhumbsiA8IG1pdHN1dW5cIDsKK+S6jOeuh+aJgCA8IG5pa2FzaG9cIDsKK+WCvuazqCA8IGtlaWNodXVcIDsKK+WFpeWiqCA8IGlyZXp1bWlcIDsKK+WvhumbhiA8IG1pc3NodXVcIDsKK+mBleeKr+iAhSA8IGloYW5zaGFcIDsKK+iHqueUu+WDjyA8IGppZ2F6b3VcIDsKK+iJsuafhCA8IGlyb2dhcmFcIDsKK+W9ouaEj+aLsyA8IGtlaWlrZW5cIDsKK+iDjOmrmCA8IHNlaXRha2FcIDsKK+Wwhui7jSA8IHNob3VndW5cIDsKK+amguazgSA8IGdhaWt5b3VcIDsKK+WFqOWfnyA8IHplbicnaWtpXCA7Civmr43mgKfmhJsgPCBib3NlaWFpXCA7CivkupXmiLjlgbQgPCBpZG9nYXdhXCA7CivlsbHohbkgPCBzYW5wdWt1XCA7CivlhYjlraYgPCBzZW5nYWt1XCA7CivohJrpg6ggPCBreWFrdWJ1XCA7Civog7TplbcgPCBkb3VuYWdhXCA7Civlg6fmnI0gPCBzb3VmdWt1XCA7Civlho3li50gPCBzYWlzaG91XCA7CivohbnolLUgPCBmdWt1em91XCA7Civoia/mnZAgPCByeW91emFpXCA7CivkvY7poY0gPCB0ZWlnYWt1XCA7CivprZrmi5MgPCBneW90YWt1XCA7CivovJTlvLwgPCBob2hpdHN1XCA7Civlhajlm70gPCB6ZW5nb2t1XCA7Civoia/mm7ggPCByeW91c2hvXCA7CivlrrDpoJggPCBzYWlyeW91XCA7Civnmb3lpKogPCBzaGlyYXRhXCA7Civnmb3lpJwgPCBieWFrdXlhXCA7CivoubTniKogPCBrZWR6dW1lXCA7CivotaTpjIYgPCBha2FzYWJpXCA7CivlhaXlm6MgPCBueXV1ZGFuXCA7Civlt6XljZogPCBrb3VoYWt1XCA7Civlt67liKUgPCBzYWJldHN1XCA7CivlhqrkuZcgPCBiZWtpam91XCA7Civou43mnI0gPCBndW5wdWt1XCA7CivnlLLog4QgPCBrYXRjaHV1XCA7Civoh6rnmbogPCBqaWhhdHN1XCA7CivnlaLnq58gPCBoaWtreW91XCA7CivmoKHplrIgPCBrb3VldHN1XCA7Civnlo7nlaUgPCBzb3J5YWt1XCA7CivlsqnnpIEgPCBnYW5zaG91XCA7CivlgrfmrY4gPCBzaG91dGFuXCA7CivoibLmlocgPCBpcm9idW1pXCA7CivnoLTnoJXmqZ8gPCBoYXNhaWtpXCA7CivpppbpoJggPCBzaHVyeW91XCA7CivpgZXorabnvaogPCBpa2VpemFpXCA7CivluIzlnJ/poZ4gPCBraWRvcnVpXCA7CivotaTph5EgPCBha2FnYW5lXCA7CivpqZXogoYgPCBreW91c2hpXCA7CivlrabpvaIgPCBnYWt1cmVpXCA7CivlrrXpl4cgPCB5b2l5YW1pXCA7CivlsI/oq5YgPCBzaG91cm9uXCA7CivkupzpiZvlvJUgPCBhZW5iaWtpXCA7CivlpKrlrrDlupwgPCBkYXphaWZ1XCA7Civlsqnnn7MgPCBnYW5zZWtpXCA7CivohbnoirggPCBoYXJhZ2VpXCA7Civnmb3lnLAgPCBzaGlyb2ppXCA7CivmoLjphbggPCBrYWt1c2FuXCA7Civlha3lkIggPCByaWt1Z291XCA7CivoiLnmrYwgPCBmdW5hdXRhXCA7Civlr77osaEgPCB0YWlzaG91XCA7CivpqLDokL0gPCB0b3VyYWt1XCA7CivlgY/nmZYgPCBoZW5wZWtpXCA7CivlhbjliYcgPCB0ZW5zb2t1XCA7Civmo5LnuJ4gPCBib3VqaW1hXCA7CivkvIrpgZTogIUgPCBkYXRlc2hhXCA7Civlha3ljYEgPCByb2t1anV1XCA7CivotaTpgZMgPCBzZWtpZG91XCA7CivnlJ/ogokgPCBzZWluaWt1XCA7CivpgIHoqbHlmaggPCBzb3V3YWtpXCA7CivmpI3nmq4gPCBzaG9rdWhpXCA7Civlrp/pnIAgPCBqaXRzdWp1XCA7CivlhY3lm5ogPCBtZW5zaHV1XCA7CivkvLTlpKnpgKMgPCBiYXRlcmVuXCA7Civpp4bpgJAgPCBrdWNoaWt1XCA7CivkupzpurvluIMgPCBhbWFudW5vXCA7Civpp5Dou4ogPCBjaHV1c2hhXCA7CivmoKrph5EgPCBrYWJ1a2luXCA7Civoh6rnjokgPCBqaWd5b2t1XCA7CivlpbPpg47lsYsgPCBqb3JvdXlhXCA7Civlrr/piq0gPCB5YWRvc2VuXCA7CivpppbplbcgPCBzaHVjaG91XCA7Civohbnog4wgPCBmdWt1aGFpXCA7CivlmbTpnKflmaggPCBmdW5tdWtpXCA7Civnl4XmrbsgPCBieW91c2hpXCA7CivlsITop5IgPCBzaGFrYWt1XCA7Civoi7HljZjoqp4gPCBlaXRhbmdvXCA7CivlrqLplpMgPCBreWFrdW1hXCA7Civlt6XkvZwgPCBrb3VzYWt1XCA7CivlhIDlvI8gPCBnaXNoaWtpXCA7CivnlLDntLMgPCBkZW5zaGluXCA7Civlr77oqLMgPCB0YWl5YWt1XCA7CivotaTou40gPCBzZWtpZ3VuXCA7CivohILouqsgPCBhYnVyYW1pXCA7Civls6Hmub4gPCBreW91d2FuXCA7Civou43mi6EgPCBndW5rYWt1XCA7Civnmb7lkbMgPCBoeWFrdW1pXCA7Civojbfppqzou4ogPCBuaWJhc2hhXCA7Civmk6zmhYvoqp4gPCBnaXRhaWdvXCA7Civlr77op5IgPCB0YWlrYWt1XCA7Civmn7HpnaIgPCBjaHV1bWVuXCA7Civlt6jkubMgPCBreW9ueXV1XCA7CivnlbDpgqbkurogPCBpaG91amluXCA7CivnlLvnrYYgPCBnYWhpdHN1XCA7CivkvpvopqcgPCBreW91cmFuXCA7CivmgKrmiJHkurogPCBrZWdhbmluXCA7Civlr7joqZUgPCBzdW5weW91XCA7CivlhoXkuK0gPCB1Y2hpanV1XCA7Civlirnmnpzpn7MgPCBrb3VrYW9uXCA7Civlr4bpgJogPCBtaXR0c3V1XCA7CivlgLbnmbogPCBndWhhdHN1XCA7Civlhazlg5UgPCBrb3Vib2t1XCA7CivkvZPph48gPCB0YWlyeW91XCA7CivlopPnopHpipggPCBib2hpbWVpXCA7CivlrpfploAgPCBzaHV1bW9uXCA7Civoh4bnl4UgPCBva3VieW91XCA7CivlhajlhKogPCB6ZW4nJ3l1dVwgOwor6aOb6KGM5a62IDwgaGlrb3VrYVwgOwor55Wl55S7IDwgcnlha3VnYVwgOwor5L+457WmIDwgaG91a3l1dVwgOwor5a6/6YGLIDwgc2h1a3V1blwgOwor6Ii55p2/IDwgZnVuYWl0YVwgOwor5L+K6IuxIDwgc2h1bicnZWlcIDsKK+iKs+WiqCA8IGhvdWJva3VcIDsKK+eZvuWMgSA8IGh5YWt1bWVcIDsKK+eUn+e1uSA8IHN1enVzaGlcIDsKK+i7n+W8sSA8IG5hbmpha3VcIDsKK+S8kemkqCA8IGt5dXVrYW5cIDsKK+Wvhui8uCA8IG1pdHN1eXVcIDsKK+WFmuWJhyA8IHRvdXNva3VcIDsKK+S/rue5lSA8IHNodXV6ZW5cIDsKK+S8kemkiiA8IGt5dXV5b3VcIDsKK+amtOW8viA8IHJ5dXVkYW5cIDsKK+WxseepjSA8IHNhbnNla2lcIDsKK+iItuadpSA8IGhha3VyYWlcIDsKK+i1pOiypyA8IHNla2loaW5cIDsKK+iLseWCkSA8IGVpa2V0c3VcIDsKK+alteaakSA8IGdva3VzaG9cIDsKK+eXheajnyA8IGJ5b3V0b3VcIDsKK+eBq+eGqOaWlyA8IGhpbm9zaGlcIDsKK+iCjOmqqCA8IGtpa290c3VcIDsKK+iJr+aApyA8IHJ5b3VzZWlcIDsKK+i2s+iKuCA8IGFzaGlnZWlcIDsKK+iFuOe3miA8IGNob3VzZW5cIDsKK+i8quWUsSA8IHJpbnNob3VcIDsKK+WBieeJqSA8IGVyYW1vbm9cIDsKK+eZveWIgyA8IGhha3VqaW5cIDsKK+S+ruiUkSA8IGJ1YmV0c3VcIDsKK+iLpeWFmiA8IHdha2F0b3VcIDsKK+eXheaguSA8IGJ5b3Vrb25cIDsKK+S8mumbhiA8IGthaXNodXVcIDsKK+WxkeezuCA8IGt1enVpdG9cIDsKK+ain+e9qiA8IGt5b3V6YWlcIDsKK+eZveWFtSA8IGhha3VoZWlcIDsKK+S9jumAnyA8IHRlaXNva3VcIDsKK+WFpeS8miA8IG55dXVrYWlcIDsKK+WxkeexsyA8IGt1enVtYWlcIDsKK+i7veWmmSA8IGtlaW15b3VcIDsKK+iHqua7hSA8IGppbWV0c3VcIDsKK+S8kembuyA8IGt5dXVkZW5cIDsKK+WztuaguSA8IHNoaW1hbmVcIDsKK+WtpumiqCA8IGdha3VmdXVcIDsKK+WDteWxjSA8IGt5b25zaGlcIDsKK+WFiOWIuyA8IHNlbmtva3VcIDsKK+WEquS9jeaApyA8IHl1dWlzZWlcIDsKK+iCiemlhSA8IG5pa3VtYW5cIDsKK+S9teiqrSA8IGhlaWRva3VcIDsKK+mmrOi3syA8IHVtYXRvYmlcIDsKK+i7ouWxniA8IHRlbnpva3VcIDsKK+i1pOiqoCA8IHNla2lzZWlcIDsKK+iJr+W4qyA8IHJ5b3VzaGlcIDsKK+S8mumVtyA8IGthaWNob3VcIDsKK+agvOiogCA8IGtha3VnZW5cIDsKK+mngeirliA8IGJha3Vyb25cIDsKK+eEoei2o+WRsyA8IG11c2h1bWlcIDsKK+mBjuePvuacqiA8IGthZ2VubWlcIDsKK+WFg+WHtiA8IGdlbmt5b3VcIDsKK+iCiemhniA8IG5pa3VydWlcIDsKK+eWvOacqCA8IGhpaXJhZ2lcIDsKK+i7ouWuhSA8IHRlbnRha3VcIDsKK+aghOmBlCA8IGVpdGF0c3VcIDsKK+i7ouWtpiA8IHRlbmdha3VcIDsKK+iHqua0uyA8IGppa2F0c3VcIDsKK+S/uOemhCA8IGhvdXJva3VcIDsKK+iLpeS6uiA8IHdha291ZG9cIDsKK+alveaJjSA8IGdha3VzYWlcIDsKK+WvhuitsCA8IG1pdHN1Z2lcIDsKK+mmmei7iiA8IGt5b3VzaGFcIDsKK+S/l+e0ryA8IHpva3VydWlcIDsKK+mVt+akheWtkCA8IG5hZ2Fpc3VcIDsKK+iBvuWUluiAhSA8IHJvdWFzaGFcIDsKK+WBnOaziiA8IHRlaWhha3VcIDsKK+aliuafsyA8IHlvdXJ5dXVcIDsKK+Wwj+iIhSA8IGtvanV1dG9cIDsKK+iHquaxuiA8IGppa2V0c3VcIDsKK+eZvuS6iyA8IGh5YWt1amlcIDsKK+WvhuiqniA8IG1pdHN1Z29cIDsKK+iDuOilnyA8IGt5b3VraW5cIDsKK+Wwv+euoSA8IG55b3VrYW5cIDsKK+msseWxiCA8IHVra3V0c3VcIDsKK+i7jeWxniA8IGd1bnpva3VcIDsKK+aWh+Wtl+ebpCA8IG1vamliYW5cIDsKK+eXm+aGpCA8IHRzdXVmdW5cIDsKK+S6lOWNgemfsyA8IGdvanV1b25cIDsKK+WxseeVqiA8IHlhbWFiYW5cIDsKK+alveaDsyA8IGdha3Vzb3VcIDsKK+iHquauuiA8IGppc2F0c3VcIDsKK+iEseiHvCA8IGRha2t5dXVcIDsKK+mmlui2syA8IHNodXNva3VcIDsKK+iEseiHrSA8IGRhc3NodXVcIDsKK+i7jeWwhiA8IGd1bnNob3VcIDsKK+WCt+aCtCA8IHNob3VzdWlcIDsKK+WBj+a1gSA8IGhlbnJ5dXVcIDsKK+iEs+iGnCA8IG5vdW1ha3VcIDsKK+ePvumrmCA8IGdlbmRha2FcIDsKK+iHo+awkSA8IHNoaW5taW5cIDsKK+msvOWphiA8IG9uaWJhYmFcIDsKK+S9nOipqSA8IHNha3VzaGlcIDsKK+iEseiFuCA8IGRhdGNob3VcIDsKK+WuhemFjSA8IHRha3VoYWlcIDsKK+S8kemMmCA8IGt5dXVzdWlcIDsKK+eUsOeVkSA8IGRlbnBhdGFcIDsKK+eXm+aBqCA8IHRzdXVrb25cIDsKK+iHs+altSA8IHNoaWdva3VcIDsKK+alteaCqiA8IGdva3Vha3VcIDsKK+WuiemAuCA8IGFuJydpdHN1XCA7CivlpKnlqabnvoUgPCB0ZW5wdXJhXCA7Civlg7vlnLAgPCBoZWtpY2hpXCA7Civlg7vlnKggPCBoZWtpemFpXCA7Civlrprot6EgPCBqb3VzZWtpXCA7CivovKrkvZwgPCByaW5zYWt1XCA7Civlsqnms6IgPCBpd2FuYW1pXCA7Civls7vmi5IgPCBzaHVua3lvXCA7Civoia/lprsgPCByeW91c2FpXCA7Civoh4bmuKwgPCBva3Vzb2t1XCA7CivnlKPnl5sgPCBzYW50c3V1XCA7Civlr53pgZPlhbcgPCBuZWRvdWd1XCA7Civogbfpmo4gPCBzaG9ra2FpXCA7CivnlZ3mup0gPCB1bmVtaXpvXCA7CivmpbXlvq4gPCBreW9rdWJpXCA7CivnlbDliIblrZAgPCBpYnVuc2hpXCA7CivohpznirYgPCBtYWt1am91XCA7CivnlJjnmq4gPCBhbWFrYXdhXCA7CivotaTolaogPCBha2FrYWJ1XCA7CivlsbHniqwgPCB5YW1haW51XCA7Civkv4rnq6UgPCBzaHVuZG91XCA7Civmpb3luKsgPCBnYWt1c2hpXCA7CivmoZHoibIgPCBrdXdhaXJvXCA7CivohZXnq6AgPCB3YW5zaG91XCA7CivppqzooZMgPCBiYWp1dHN1XCA7Civnl4XmhYsgPCBieW91dGFpXCA7CivohZXnq4sgPCB1ZGV0YXRlXCA7CivohbnnmZIgPCBoYXJhaXNlXCA7CivoiJ7miYcgPCBtYWlvdWdpXCA7Civlr67oiI4gPCByeW91c2hhXCA7CivmpbXluqYgPCBreW9rdWRvXCA7CivlgZXmpb0gPCBrYWlyYWt1XCA7CivnkIPpnaIgPCBreXV1bWVuXCA7CivlsI/nt6ggPCBzaG91aGVuXCA7Civoh6rosqnmqZ8gPCBqaWhhbmtpXCA7Civnl4XmgqMgPCBieW91a2FuXCA7CivlrqLoqp4gPCBreWFrdWdvXCA7CivmnpXpoK0gPCBjaGludG91XCA7CivmpbXlt6YgPCBreW9rdXNhXCA7Civnk6LnrqogPCBoeW91dGFuXCA7Civlhavph43lnqMgPCB5YWVnYWtpXCA7CivoirjkuosgPCBnZWlnb3RvXCA7CivmpI3mqLkgPCBzaG9rdWp1XCA7Civlrp/oqbEgPCBqaXRzdXdhXCA7Civnlr7mgqMgPCBzaGlra2FuXCA7CivnhKHkvqHlgKQgPCBtdWthY2hpXCA7CivmoYPoibIgPCBtb21vaXJvXCA7CivmpJzmoKEgPCBrZW5neW91XCA7Civlrp/oqLwgPCBqaXNzaG91XCA7Civku4rpoIMgPCBpbWFnb3JvXCA7CivohbDnl5sgPCB5b3V0c3V1XCA7CivlsI/nspIgPCBrb3RzdWJ1XCA7Civmpa3luKsgPCB3YXphc2hpXCA7CivoirHku6MgPCBoYW5hZGFpXCA7CivlrqLoprMgPCBreWFra2FuXCA7Civkv5fnnLwgPCB6b2t1Z2FuXCA7Civkvb/oh6MgPCBzaGlzaGluXCA7Civlr5Loj4ogPCBrYW5naWt1XCA7CivkurrkuovpmaIgPCBqaW5qaWluXCA7CivkvJHovIkgPCBreXV1c2FpXCA7CivlsLvnm64gPCBzaGlyaW1lXCA7CivlrproqZUgPCB0ZWloeW91XCA7CivkvJHou6IgPCBreXV1dGVuXCA7Civnl4XlvIogPCBieW91aGVpXCA7CivlgrflrrMgPCBzaG91Z2FpXCA7CivlrproqLMgPCB0ZWl5YWt1XCA7Civou43lm70gPCBndW5rb2t1XCA7CivprZTlipsgPCBtYXJ5b2t1XCA7CivmpJzmnZ8gPCBrZW5zb2t1XCA7CivkuI3lpJzln44gPCBmdXlham91XCA7CivlsYXnlZkgPCBreW9yeXV1XCA7Civnvo7kuIjlpKsgPCBiaWpvdWZ1XCA7CivojY/og6HpurvmsrkgPCBlZ29tYXl1XCA7Civlsqnmo5ogPCBpd2FkYW5hXCA7Civku4/pmYAgPCBidXRzdWRhXCA7CivlrrPomasgPCBnYWljaHV1XCA7CivlsLHnnKAgPCBzaHV1bWluXCA7CivohIfog70gPCB3YWtpbm91XCA7CivlhITlhYYgPCBva3VjaG91XCA7Civnl4Xlt6MgPCBieW91c291XCA7CivotaTohpogPCBha2FoYWRhXCA7CivlsI/nq6UgPCBrb3dhcHBhXCA7Civku4/plqMgPCBidWtrYWt1XCA7CivmmJPmkI3lk4EgPCBpc29uaGluXCA7Civku4/plpMgPCBidXRzdW1hXCA7CivotaTohbkgPCBha2FoYXJhXCA7CivlsLzlg6fpmaIgPCBuaXNvdWluXCA7CivohY7nn7MgPCBqaW5zZWtpXCA7Civoia/lk4EgPCByeW91aGluXCA7Civog4PooosgPCBpYnVrdXJvXCA7CivnhKHnkIbmlbAgPCBtdXJpc3V1XCA7Civls7vltrogPCBzaHVucmVpXCA7CivlhJLku48gPCBqdWJ1dHN1XCA7CivprYXlipsgPCBtaXJ5b2t1XCA7CivosrjplpMgPCBrYXNoaW1hXCA7Civog7joh4YgPCBreW91b2t1XCA7CivnhKHpn7voqakgPCBtdWluc2hpXCA7CivprZrkv6EgPCBneW9zaGluXCA7CivohZXnmb0gPCB3YW5wYWt1XCA7CivlpJrmp5jljJYgPCB0YXlvdWthXCA7Civog7johbogPCBreW91c2VuXCA7CivkuqzpoqggPCBreW91ZnV1XCA7Civmpb3lpKkgPCByYWt1dGVuXCA7Civoia/lj4sgPCByeW91eXV1XCA7CivohLHnqYAgPCBkYWtrb2t1XCA7Civnj63plbcgPCBoYW5jaG91XCA7CivkvJ3oqqYgPCBkZW5zaG91XCA7CivlsIrnp7AgPCBzb25zaG91XCA7CivlgYPmnIggPCBlbmdldHN1XCA7Civlr77nrZYgPCB0YWlzYWt1XCA7CivlgJ/mrL4gPCBzaGFra2FuXCA7Civmpb3lo4cgPCBnYWt1ZGFuXCA7Civkvr/nm4ogPCBiZW4nJ2VraVwgOwor5Lya6KqtIDwga2FpZG9rdVwgOwor5qO65qG2IDwga2FuJydva2VcIDsKK+S9juiQvSA8IHRlaXJha3VcIDsKK+eXheWusyA8IGJ5b3VnYWlcIDsKK+WBieaWuSA8IGVyYWdhdGFcIDsKK+earuiGmuenkeWMuyA8IGhpZnVrYWlcIDsKK+eVjOaomSA8IGthaWh5b3VcIDsKK+izg+mKrSA8IGNoaW5zZW5cIDsKK+S9nuiHoyA8IG5laXNoaW5cIDsKK+S9meiJsiA8IHlvc2hva3VcIDsKK+mjsumjnyA8IGluc2hva3VcIDsKK+Wxi+agueijjyA8IHlhbmV1cmFcIDsKK+WCvuWbvSA8IGtlaWtva3VcIDsKK+aatOmiqOmbqCA8IGJvdWZ1dXVcIDsKK+S/gueVmSA8IGtlaXJ5dXVcIDsKK+eUt+awlyA8IG90b2tvZ2lcIDsKK+alk+WxniA8IGZ1dXpva3VcIDsKK+iDg+iWrCA8IGlndXN1cmlcIDsKK+S7memDtyA8IHNlbmt5b3VcIDsKK+agl+iJsiA8IGt1cmlpcm9cIDsKK+izvOiqrSA8IGtvdWRva3VcIDsKK+eUn+eQhuaXpSA8IHNlaXJpYmlcIDsKK+i7iuWKmyA8IHNoYXJpa2lcIDsKK+WIhumZkOiAhSA8IGJ1Z2VuamFcIDsKK+iHpeaJgCA8IGZ1c2hpZG9cIDsKK+S9k+iHrSA8IHRhaXNodXVcIDsKK+mmrOiEmiA8IGJha3lha3VcIDsKK+WvuOenkiA8IHN1bmJ5b3VcIDsKK+S6uuS6i+mDqCA8IGppbmppYnVcIDsKK+i1t+ethiA8IGtpaGl0c3VcIDsKK+mnkOexsyA8IGNodXViZWlcIDsKK+S5vumtmiA8IGhvc2hpdW9cIDsKK+m4mum1oeiynSA8IG91bXVnYWlcIDsKK+iCneimgSA8IGthbicneW91XCA7Civmo67mnpcgPCBzaGlucmluXCA7CivotaTntYQgPCBha2FndW1pXCA7Civou6Lku7sgPCB0ZW4nJ25pblwgOwor5qC857SNIDwga2FrdW5vdVwgOwor5bCP55mqIDwga29zaGFrdVwgOwor6LWk57SZIDwgYWthZ2FtaVwgOwor6ama5q2OIDwga3lvdXRhblwgOwor6LW356uLIDwga2lyaXRzdVwgOwor5LiA5LiB5a2XIDwgaXR0ZWlqaVwgOwor5L2c6ICFIDwgc2FrdXNoYVwgOwor6aOf6aSMIDwgc2hva3VqaVwgOwor6IW45rqAIDwgY2hvdW1hblwgOwor5Luy6LK3IDwgbmFrYWdhaVwgOwor5YiG6Zui5rS+IDwgYnVucmloYVwgOwor5bCP57Sw5belIDwga296YWlrdVwgOwor55eF5aSJIDwgYnlvdWhlblwgOwor5pqX5Y+35YyWIDwgYW5nb3VrYVwgOwor5YOl5YCWIDwgZ3lvdWtvdVwgOwor6LOg6LKsIDwgYmFpc2VraVwgOwor6LOe6LObIDwgc2hvdXNhblwgOwor5bCK55qHIDwgc29uJydub3VcIDsKK+eOhOm6piA8IGdlbmJha3VcIDsKK+iEiOeuoSA8IG15YWtrYW5cIDsKK+aeoui7uCA8IHN1dWppa3VcIDsKK+iInuWnqyA8IG1haWhpbWVcIDsKK+eXm+WYhiA8IHRzdXV0YW5cIDsKK+WwqOeKrCA8IG11a3VpbnVcIDsKK+ajn+aigSA8IHRvdXJ5b3VcIDsKK+WPs+W+gOW3puW+gCA8IHVvdXNhb3VcIDsKK+WNsOW6pua0iyA8IGluZG95b3VcIDsKK+Whqee0oOmFuCA8IGVuc29zYW5cIDsKK+WxoOauuiA8IHRvc2F0c3VcIDsKK+iziui7jSA8IHpva3VndW5cIDsKK+iFuOa2siA8IGNob3Vla2lcIDsKK+iIjuWuhSA8IHNoYXRha3VcIDsKK+i6q+WRvSA8IHNoaW5tZWlcIDsKK+S+nemgvOS6uiA8IGlyYWluaW5cIDsKK+eWq+WtpiA8IGVraWdha3VcIDsKK+Wwj+eUuiA8IGtvbWFjaGlcIDsKK+Wwj+eUtyA8IGtvb3Rva29cIDsKK+iFsOa5ryA8IGtvc2hpeXVcIDsKK+WwhOeahCA8IHNoYXRla2lcIDsKK+iEs+eXhSA8IG5vdWJ5b3VcIDsKK+Wwj+eUnyA8IHNob3VzZWlcIDsKK+eItuavjeS8miA8IGZ1Ym9rYWlcIDsKK+WxseakkiA8IHNhbnNob3VcIDsKK+S9s+evgCA8IGthc2V0c3VcIDsKK+S7iumAsSA8IGtvbnNodXVcIDsKK+iBlumAsSA8IHNlaXNodXVcIDsKK+mjsumFkuWutiA8IGluc2h1a2FcIDsKK+S4jeiqjeWPryA8IGZ1bmlua2FcIDsKK+S9jue/vCA8IHRlaXlva3VcIDsKK+iJsuS6iyA8IGlyb2dvdG9cIDsKK+afv+iJsiA8IGtha2lpcm9cIDsKK+eUsOalvSA8IGRlbmdha3VcIDsKK+S7iui/hCA8IGltYW1hZGVcIDsKK+S5vumjryA8IGhvc2hpaWlcIDsKK+iJr+S6uiA8IHJ5b3VqaW5cIDsKK+Wuv+e4gSA8IHNodWt1ZW5cIDsKK+iHo+W+kyA8IHNoaW5qdXVcIDsKK+iFueawtCA8IGZ1a3VzdWlcIDsKK+i3i+a4iSA8IGJhc3Nob3VcIDsKK+eUuuadkSA8IGNob3Vzb25cIDsKK+WAkuacqCA8IHRvdWJva3VcIDsKK+aFsOWKtOS8miA8IGlyb3VrYWlcIDsKK+iHqOW4rSA8IHJpbnNla2lcIDsKK+S/ruatoyA8IHNodXVzZWlcIDsKK+acqOmtmiA8IG1va3VneW9cIDsKK+ixhuiFkOWxiyA8IHRvdWZ1eWFcIDsKK+mrmOWjsCA8IHRha2Fnb2VcIDsKK+S9teensCA8IGhlaXNob3VcIDsKK+WIhumbouapnyA8IGJ1bnJpa2lcIDsKK+amguWJhyA8IGdhaXNva3VcIDsKK+iAkOmchyA8IHRhaXNoaW5cIDsKK+aghOiBtyA8IGVpc2hva3VcIDsKK+S7j+i3oSA8IGJ1c3Nla2lcIDsKK+eBq+eCjueTtiA8IGthZW5iaW5cIDsKK+iyq+mAmiA8IGthbnRzdXVcIDsKK+iBlui5nyA8IHNlaXNla2lcIDsKK+WztuWbvSA8IHRvdWdva3VcIDsKK+eUo+alrSA8IHNhbmd5b3VcIDsKK+iFsOawlyA8IGtvc2hpa2VcIDsKK+WCt+WJtSA8IHNob3Vzb3VcIDsKK+mjn+mWkyA8IHNob2trYW5cIDsKK+W+oeWkmuWIhiA8IGdvdGFidW5cIDsKK+S7ruimqiA8IGthcmlveWFcIDsKK+iCsuiLlyA8IGlrdWJ5b3VcIDsKK+WumOiDvSA8IGthbicnbm91XCA7Civos4PosrggPCBjaGludGFpXCA7CivlsqHmg5ogPCBva2Fib3JlXCA7Civmnp3osYYgPCBlZGFtYW1lXCA7CivogbToqLEgPCBjaG91a3lvXCA7CivnlJ/mpa0gPCBuYXJpd2FpXCA7Civku6Poqq0gPCBkYWlkb2t1XCA7Civnj77osaEgPCBnZW5zaG91XCA7Civlrp/nv5IgPCBqaXNzaHV1XCA7Civku7Loo4EgPCBjaHV1c2FpXCA7CivlsI/niKogPCBrb2R6dW1lXCA7Civnlo7lr4YgPCBzb21pdHN1XCA7CivogbTop6MgPCBjaG91a2FpXCA7CivosqfovrIgPCBoaW4nJ25vdVwgOwor6Ieo5pmC6LK7IDwgcmluamloaVwgOwor5Luj6Ki6IDwgZGFpc2hpblwgOwor6IG06KaWIDwgY2hvdXNoaVwgOwor5bGe5qC8IDwgem9ra2FrdVwgOwor5YK35YW1IDwgc2hvdWhlaVwgOwor5qW95YW4IDwgZ2FrdXRlblwgOwor55S75pWwIDwga2FrdXN1dVwgOwor6Ia65oeyIDwgeW91Y2hvdVwgOwor5YCN5penIDwgYmFpa3l1dVwgOwor5aSn5aSq6byTIDwgb29kYWlrb1wgOwor6auY5ZynIDwga291YXRzdVwgOwor55S65pS/IDwgY2hvdXNlaVwgOwor5qW15YiRIDwga3lva2tlaVwgOwor5aaC5L2V56iLIDwgaWthaG9kb1wgOwor54mh54mb5bqnIDwgb3VzaGl6YVwgOwor55eF5ZCNIDwgYnlvdW1laVwgOwor5Yqg5bel6LK7IDwga2Frb3VoaVwgOwor5qK25qOSIDwga2FqaWJvdVwgOwor5qW15YagIDwga3lva2thblwgOwor5qW15YaFIDwgZ29rdW5haVwgOwor55eF5Y+LIDwgYnlvdXl1dVwgOwor6aqw5a2QIDwgc2Fpa29yb1wgOwor5bKh5byVIDwgb2thaGlraVwgOwor5YK05YOCIDwgc2VtdXNoaVwgOwor5pyx6Z6YIDwgc2h1emF5YVwgOwor5Lq65LqL6KqyIDwgamluamlrYVwgOwor5a6f57i+IDwgamlzc2VraVwgOwor55eF5Y6fIDwgYnlvdWdlblwgOwor5qW15YWJIDwga3lva2tvdVwgOwor5Lqo6YCaIDwga291dHN1dVwgOwor5pys6aCYIDwgaG9ucnlvdVwgOwor5Lq66LehIDwgaGl0b2F0b1wgOwor5LuY6KitIDwgZnVzZXRzdVwgOwor6aaW57SaIDwgc2h1a3l1dVwgOwor5L6b54mpIDwga3Vtb3RzdVwgOwor5bO75Y6zIDwgc2h1bmdlblwgOwor6LGh6ZmQIDwgc2hvdWdlblwgOwor6Lqr5L2TIDwgc2hpbnRhaVwgOwor6Iez5aaZIDwgc2hpbXlvdVwgOwor55SY5qCXIDwgYW1hZ3VyaVwgOwor5LuV6KizIDwgc2hpd2FrZVwgOwor6LqN5YuVIDwgeWFrdWRvdVwgOwor5Luj6KGoIDwgZGFpaHlvdVwgOwor6YeO6Imv54qsIDwgbm9yYWludVwgOwor55eF5YuiIDwgYnlvdXNlaVwgOwor5a6556mNIDwgeW91c2VraVwgOwor5LuP6KqeIDwgYnV0c3Vnb1wgOwor6IWw5qSOIDwgeW91dHN1aVwgOwor6Lqr5LujIDwgc2hpbmRhaVwgOwor5pel5pys6ZaTIDwgbmlob25tYVwgOwor546J6Z+zIDwgZ3lva3VvblwgOwor5aSn6LGG5rK5IDwgZGFpenV5dVwgOwor5a+T55uuIDwgZ3V1bW9rdVwgOwor5p2l6YCxIDwgcmFpc2h1dVwgOwor6Ii55YG0IDwgc2Vuc29rdVwgOwor5pys6ZyHIDwgaG9uc2hpblwgOwor5pyo6Z20IDwga2lndXRzdVwgOwor6aaZ566xIDwga291YmFrb1wgOwor5pyd6aKoIDwgYXNha2F6ZVwgOwor5YWQ56ul55S7IDwgamlkb3VnYVwgOwor5ryU6Iie5aC0IDwgZW5idWpvdVwgOwor5bKp5bGxIDwgaXdheWFtYVwgOwor5qW95Lq6IDwgZ2FrdWppblwgOwor6LGG6aGeIDwgbWFtZXJ1aVwgOwor5a6Y57WmIDwga2Fua3l1dVwgOwor546J6ZyyIDwgZ3lva3Vyb1wgOwor6Ii55L6/IDwgZnVuYWJpblwgOwor5YKs5L+DIDwgc2Fpc29rdVwgOwor55Sf5pawIDwgc2Vpc2hpblwgOwor6LaF54S2IDwgY2hvdXplblwgOwor5Lyd57+SIDwgZGVuc2h1dVwgOwor55WZ5bm0IDwgcnl1dW5lblwgOwor6LSF6IKJIDwgemVpbmlrdVwgOwor6auY5Y+wIDwgdGFrYWRhaVwgOwor5bKp5a6kIDwgaXdhbXVyb1wgOwor5L+15pWwIDwgaHlvdXN1dVwgOwor5a2m6Iq4IDwgZ2FrdWdlaVwgOwor55S35omLIDwgb3Rva29kZVwgOwor5Ly86Z2e5LqLIDwgZXNlZ290b1wgOwor5qKF5q+SIDwgYmFpZG9rdVwgOwor5LiN57WQ5p6cIDwgZnVrZWtrYVwgOwor5pyd6Z2EIDwgYXNhbW95YVwgOwor5bGI5pyNIDwga3VwcHVrdVwgOwor5pyd6ZynIDwgYXNhZ2lyaVwgOwor6IKM6ImyIDwgaGFkYWlyb1wgOwor5a2m6IiOIDwgZ2FrdXNoYVwgOwor5qW15LiKIDwgZ29rdWpvdVwgOwor55eH5YCZIDwgc2hvdWtvdVwgOwor6Ii55LitIDwgc2VuY2h1dVwgOwor6IKJ6ImyIDwgbmlrdWlyb1wgOwor5L+u5pS5IDwgc2h1dWthaVwgOwor5bK45aOBIDwgZ2FucGVraVwgOwor5Lq66Ki8IDwgbmluc2hvdVwgOwor55Wl5a2XIDwgcnlha3VqaVwgOwor5L+u5pKwIDwgc2h1dXNlblwgOwor5Zyw5LiL5YyWIDwgY2hpa2FrYVwgOwor5LyP572qIDwgZnVrdXphaVwgOwor5a+G55S7IDwgbWl0c3VnYVwgOwor5YWr55m+6ZW3IDwgeWFvY2hvdVwgOwor6aSh6JycIDwgYW5taXRzdVwgOwor6IC96KqtIDwgdGFuZG9rdVwgOwor6IKJ6IWrIDwgbmlrdXNodVwgOwor5L+X5pu4IDwgem9rdXNob1wgOwor6ICB6YacIDwgcm91c2h1dVwgOwor6amV5oWiIDwga3lvdW1hblwgOwor5YCU5by3IDwga3Vra3lvdVwgOwor55eF5Lq6IDwgYnlvdW5pblwgOwor5YGP5Z+3IDwgaGVuc2h1dVwgOwor6YGO6aO95ZKMIDwga2Fob3V3YVwgOwor5Lmz6YW4IDwgbnl1dXNhblwgOwor5L2v54uCIDwgeW91a3lvdVwgOwor5puz6aasIDwgaGlraXVtYVwgOwor5a++5rWBIDwgdGFpcnl1dVwgOwor6aGU6buSIDwgZ2FuZ3Vyb1wgOwor5LyP57irIDwgZnVzZW51aVwgOwor5puy6aasIDwga3lva3ViYVwgOwor6LWk54eQIDwgc2VraXJpblwgOwor5YKR5L2cIDwga2Vzc2FrdVwgOwor55Ge56WlIDwgenVpc2hvdVwgOwor5LyP57eaIDwgZnVrdXNlblwgOwor5YKA5YShIDwga3VndXRzdVwgOwor54+N6KuHIDwgY2hpbmRhblwgOwor5L+X5paHIDwgem9rdWJ1blwgOwor5YCS5bmVIDwgdG91YmFrdVwgOwor5a6255WcIDwga2FjaGlrdVwgOwor5Lit6aOvIDwgY2h1dWhhblwgOwor55CD6I+MIDwga3l1dWtpblwgOwor5pep5bCR5aWzIDwgc2FvdG9tZVwgOwor5Lit6aKoIDwgY2h1dWJ1dVwgOwor6aKo6Y6uIDwgZnV1Y2hpblwgOwor5YCf5bGLIDwgc2hha3V5YVwgOwor5bO25LitIDwgdG91Y2h1dVwgOwor5a6d55+zIDwgaG91c2VraVwgOwor6IOG55+zIDwgdGFuc2VraVwgOwor5bGx5birIDwgeWFtYXNoaVwgOwor5pyo6YeRIDwgbW9rdWtpblwgOwor5aaC5L2V54mpIDwgaWthbW9ub1wgOwor5bGe5oCnIDwgem9rdXNlaVwgOwor5p2l6Ki6IDwgcmFpc2hpblwgOwor54mI55S75a62IDwgaGFuZ2FrYVwgOwor5L6/5pyNIDwgYmVucHVrdVwgOwor5Lqh6KaqIDwgYm91c2hpblwgOwor5LuV6I2JIDwgc2hpZ3VzYVwgOwor5Lmd6YeNIDwga29rb25vZVwgOwor5L+K5pWPIDwgc2h1bmJpblwgOwor6LiK5a2XIDwgb2RvcmlqaVwgOwor5bGx5bOhIDwgeWFtYWthaVwgOwor6LWk5r2uIDwgYWthc2hpb1wgOwor5a2m57SaIDwgZ2Fra3l1dVwgOwor55Wl5ZuzIDwgcnlha3V6dVwgOwor5Lih6aCtIDwgcnlvdXRvdVwgOwor5bCa5pu0IDwgbmFvc2FyYVwgOwor5Lit6ZqKIDwgY2h1dXRhaVwgOwor5pyo6YCgIDwgbW9rdXpvdVwgOwor5Lyd56WoIDwgZGVucHlvdVwgOwor5pyd6YWSIDwgYXNhemFrZVwgOwor5a+C54S2IDwgc2VraXplblwgOwor5bCC5qWtIDwgc2VuZ3lvdVwgOwor6Leh5b2iIDwgYXRva2F0YVwgOwor5YG25L2cIDwgZ3V1c2FrdVwgOwor5bCP5p+EIDwga29kenVrYVwgOwor6IG0572qIDwgY2hvdXphaVwgOwor5L2Z54axIDwgeW9uZXRzdVwgOwor5Lih6Z2iIDwgcnlvdW1lblwgOwor5L+h5oSbIDwgc2hpbicnYWlcIDsKK+S/l+aJjSA8IHpva3VzYWlcIDsKK+WtmOe2miA8IHNvbnpva3VcIDsKK+acm+mDtyA8IGJvdWt5b3VcIDsKK+WuneeUnyA8IGhvdXNob3VcIDsKK+e+jumrqiA8IGJpaGF0c3VcIDsKK+S4remWkyA8IGNodXVrYW5cIDsKK+S4gOmrqiA8IGlwcGF0c3VcIDsKK+S7sue2mSA8IGNodXVrZWlcIDsKK+WuieedgCA8IGFuY2hha3VcIDsKK+Wto+evgCA8IGtpc2V0c3VcIDsKK+aEm+mjsuiAhSA8IGFpaW5zaGFcIDsKK+S6jOimqiA8IGZ1dGFveWFcIDsKK+ixmui2syA8IHRvbnNva3VcIDsKK+S9meeDiCA8IHlvcmV0c3VcIDsKK+advuiRiSA8IG1hdHN1YmFcIDsKK+WuieebtCA8IGFuY2hva3VcIDsKK+miqOmAnyA8IGZ1dXNva3VcIDsKK+mhjumrrSA8IGFnb2hpZ2VcIDsKK+e/vOizmyA8IHlva3VzYW5cIDsKK+WxnuWztiA8IHpva3V0b3VcIDsKK+iCuueXhSA8IGhhaWJ5b3VcIDsKK+Wun+eQhiA8IGppdHN1cmlcIDsKK+WtpuerpSA8IGdha3Vkb3VcIDsKK+WuieWumuWZqCA8IGFudGVpa2lcIDsKK+aji+WuoiA8IGtpa3lha3VcIDsKK+acq+i3ryA8IG1hdHN1cm9cIDsKK+mnhOiPk+WtkCA8IGRhZ2FzaGlcIDsKK+WwhuadpSA8IHNob3VyYWlcIDsKK+S6huinoyA8IHJ5b3VrYWlcIDsKK+eVkeWcsCA8IGhhdGFjaGlcIDsKK+eUt+WovCA8IGRhbnNob3VcIDsKK+WtpOeriyA8IGtvcml0c3VcIDsKK+WUkOiDoem6uyA8IHRvdWdvbWFcIDsKK+iFueW4ryA8IGZ1a3V0YWlcIDsKK+S/l+aDhSA8IHpva3Vqb3VcIDsKK+S6huimiyA8IHJ5b3VrZW5cIDsKK+S4uOmLvCA8IG1hcnVrb3VcIDsKK+S/iuaJjSA8IHNodW5zYWlcIDsKK+WBnOmfs+espiA8IHRlaW9ucHVcIDsKK+S/l+aCqiA8IHpva3Vha3VcIDsKK+iBt+e1hCA8IHNob2t1c29cIDsKK+e+pOmbhiA8IGd1bnNodXVcIDsKK+e+pOmbhCA8IGd1bicneXV1XCA7CivlsbHlp6UgPCB5YW1hdWJhXCA7CivkuIrpoY4gPCBqb3VnYWt1XCA7Civlr53mrr8gPCBzaGluZGVuXCA7CivlsJHmlbAgPCBzaG91c3V1XCA7CivlnJLoirjlrrYgPCBlbmdlaWthXCA7CivlsI/mlo4gPCBzaG91c2FpXCA7CivmipXlvbHmqZ8gPCB0b3VlaWtpXCA7CivohILmsJcgPCBhYnVyYWtlXCA7CivlsL3lv6AgPCBqaW5jaHV1XCA7Civoi7HlkInliKkgPCBpZ2lyaXN1XCA7CivmnaHomasgPCBqb3VjaHV1XCA7CivnlaXlj5kgPCByeWFrdWpvXCA7Civnvo7po58gPCBiaXNob2t1XCA7CivlsbHlpaUgPCB5YW1hb2t1XCA7Civnj43olLUgPCBjaGluem91XCA7CivnhKHlo7Dpn7MgPCBtdXNlaW9uXCA7Civkv5flv7UgPCB6b2t1bmVuXCA7CivmoLzmrrUgPCBrYWt1ZGFuXCA7CivkuIDpo58gPCBpc3Nob2t1XCA7CivnjYTploAgPCBnb2t1bW9uXCA7CivllJDojITlrZAgPCB0b3VuYXN1XCA7Civml6XmnKzoqp4gPCBuaWhvbmdvXCA7CivkubHoqr8gPCByYW5jaG91XCA7Civkurroh6MgPCBqaW5zaGluXCA7CivkuIDpoZ4gPCBpY2hpcnVpXCA7CivkubHoqq0gPCByYW5kb2t1XCA7CivkuoDoo4IgPCBraXJldHN1XCA7Civog7jmsLQgPCBreW91c3VpXCA7CivmnqDnt5ogPCB3YWt1c2VuXCA7CivkvJHnnKAgPCBreXV1bWluXCA7Civoh6jkvJEgPCByaW5reXV1XCA7CivlvpPkuInkvY0gPCBqdXNhbm1pXCA7CivlqablpbPlrZAgPCBmdWpvc2hpXCA7CivkvI/nm64gPCBmdXNoaW1lXCA7CivkuIfpm6MgPCBiYW4nJ25hblwgOwor5bGO5bC/IDwgc2hpbnlvdVwgOwor5LiK6Zm4IDwgam91cmlrdVwgOwor5bC65bqmIDwgc2hha3Vkb1wgOwor5LiH6ZqcIDwgYmFuc2hvdVwgOwor5pyA6YGpIDwgc2FpdGVraVwgOwor5bCx5b25IDwgc2h1dWVraVwgOwor5LiA6Z2iIDwgaWNoaW1lblwgOwor5a++5pW1IDwgdGFpdGVraVwgOwor5bel5LqL6LK7IDwga291amloaVwgOwor5rip5bqm6KiIIDwgb25kb2tlaVwgOwor5LuP57iBIDwgYnV0c3VlblwgOwor5LuV57WEIDwgc2hpa3VtaVwgOwor5qGQ5p2QIDwga2lyaXphaVwgOwor5bCE5pKDIDwgc2hhZ2VraVwgOwor5a6J5a6a5YyWIDwgYW50ZWlrYVwgOwor5LiA6ZuoIDwgaGl0b2FtZVwgOwor5p+x54q2IDwgY2h1dWpvdVwgOwor5L2c5rOBIDwgc2Fra3lvdVwgOwor5LiA6ZujIDwgaWNoaW5hblwgOwor5bGx5ZywIDwgeWFtYWNoaVwgOwor5rOV6J666LKdIDwgaG9yYWdhaVwgOwor6IO05qyyIDwgZG91eW9rdVwgOwor6aGN6Z2iIDwgZ2FrdW1lblwgOwor54+N6Iq4IDwgY2hpbmdlaVwgOwor5qOu5Y6zIDwgc2hpbmdlblwgOwor55S35ZuaIDwgZGFuc2h1dVwgOwor5qKv5a2QIDwgaGFzaGlnb1wgOwor5p6V57W1IDwgbWFrdXJhZVwgOwor55Wq5YKYIDwgYmFuZ2FzYVwgOwor6Z2e5bi45pmCIDwgaGlqb3VqaVwgOwor5LiA6ZmjIDwgaWNoaWppblwgOwor5LuP57WMIDwgYnVra3lvdVwgOwor6aCs6autIDwgaG9vaGlnZVwgOwor5pyq6KitIDwgbWlzZXRzdVwgOwor55Wl5YSAIDwgcnlha3VnaVwgOwor5Li76Lu4IDwgc2h1amlrdVwgOwor6aCs6aqoIDwgaG9vYm9uZVwgOwor5Lmx6KGMIDwgcmFuZ3lvdVwgOwor6IKJ55y8IDwgbmlrdWdhblwgOwor5Lit6YGTIDwgY2h1dWRvdVwgOwor5a6i5ryUIDwga3lha3VlblwgOwor5a6M54afIDwga2FuanVrdVwgOwor5LiA6ZaAIDwgaWNoaW1vblwgOwor5pqX6ayxIDwgYW4nJ3V0c3VcIDsKK+WFq+WNg+S7oyA8IHlhY2hpeW9cIDsKK+akjeS7mCA8IHVldHN1a2VcIDsKK+eQhueqnyA8IHJpa3V0c3VcIDsKK+Wun+a8lCA8IGppdHN1ZW5cIDsKK+WwvOWvuiA8IGFtYWRlcmFcIDsKK+S4rei+siA8IGNodXVub3VcIDsKK+adkeiQvSA8IHNvbnJha3VcIDsKK+acq+ijlCA8IG1hdHN1ZWlcIDsKK+WwuuWvuCA8IHNla2lzdW5cIDsKK+acqOijvSA8IG1va3VzZWlcIDsKK+S9l+atjCA8IHdhYml1dGFcIDsKK+S/ruWjqyA8IHNodXVzaGlcIDsKK+miqOiplSA8IGZ1dWh5b3VcIDsKK+eVquS6uiA8IGJhbicnbmluXCA7CivlrrPmr5IgPCBnYWlkb2t1XCA7CivmnJfoqq0gPCByb3Vkb2t1XCA7Civlrp/muKwgPCBqaXNzb2t1XCA7CivnlJ/lnqMgPCBpa2VnYWtpXCA7CivlsZ7lm70gPCB6b2trb2t1XCA7CivkupToibIgPCBnb3Nob2t1XCA7CivotaTmnK0gPCBha2FmdWRhXCA7CivkuI3ntLDlt6UgPCBidXNhaWt1XCA7Civmnb/nt6AgPCBpdGFqaW1lXCA7Civnj43ogZ4gPCBjaGluYnVuXCA7CivkvZnmsLTot68gPCB5b3N1aXJvXCA7CivnlLrlkI0gPCBjaG91bWVpXCA7CivmnJ3oposgPCBjaG91a2VuXCA7Civmmq7pm6ogPCBib3NldHN1XCA7CivkvbPmnIggPCBrYWdldHN1XCA7CivogonnlYwgPCBuaWt1a2FpXCA7CivmnaXogbQgPCByYWljaG91XCA7Civku7vnlKggPCBuaW4nJ3lvdVwgOwor6IO45p2/IDwgbXVuYWl0YVwgOwor5L+h5aWJIDwgc2hpbnBvdVwgOwor5p2/57SZIDwgaXRhZ2FtaVwgOwor5LqM6ImyIDwgbmlzaG9rdVwgOwor6aeQ5pSvIDwgY2h1dXNoaVwgOwor5puy6LevIDwga3lva3Vyb1wgOwor5bCR5byfIDwgc2hvdXRlaVwgOwor55u46YGV54K5IDwgc291aXRlblwgOwor5Lih6LyqIDwgcnlvdXJpblwgOwor5pyo6J2LIDwgbW9rdXJvdVwgOwor5LiA6YygIDwgaWNoaWpvdVwgOwor5a6f5rOBIDwgamlra3lvdVwgOwor6LWk5peXIDwgYWthaGF0YVwgOwor5L+C5bGeIDwga2Vpem9rdVwgOwor5Lih6LuNIDwgcnlvdWd1blwgOwor6IOO5q+SIDwgdGFpZG9rdVwgOwor55WZ5Lu7IDwgcnl1dW5pblwgOwor5py96JGJIDwga3VjaGliYVwgOwor5pu86I28576FIDwgbWFuZGFyYVwgOwor5bGx5YuYIDwgeWFtYWthblwgOwor5bCR5bm0IDwgc2hvdW5lblwgOwor5LuK56iLIDwgaW1haG9kb1wgOwor6aeS5pCNIDwga29tYXNvblwgOwor572q6ZqcIDwgemFpc2hvdVwgOwor5bCP5bqXIDwgc2hvdXRlblwgOwor5Zyw6Zu354GrIDwgamlyYWlrYVwgOwor5YWs5YuZ5ZOhIDwga291bXVpblwgOwor5a6/5qC5IDwgc2h1a2tvblwgOwor5pyI6KmVIDwgZ2VwcHlvdVwgOwor5qGI5bGx5a2QIDwga2FrYXNoaVwgOwor5LiL6YOoIDwgc2hpbW9iZVwgOwor5p2f576kIDwgc29rdWd1blwgOwor5a6f5q+NIDwgaml0c3Vib1wgOwor5LiN6YGUIDwgZnV0YXRzdVwgOwor5Y+k5Luj6KqeIDwga29kYWlnb1wgOwor55Sf5LiA5pysIDwga2lpcHBvblwgOwor5LiL6YGUIDwga2F0YXRzdVwgOwor6aOb6ISaIDwgaGlreWFrdVwgOwor55S65YaFIDwgY2hvdW5haVwgOwor5pyI6KaLIDwgdHN1a2ltaVwgOwor5L+X5aG1IDwgem9rdWppblwgOwor5YCL5YilIDwga29iZXRzdVwgOwor5bGe5ZCNIDwgem9rdW1laVwgOwor5LuY552AIDwgZnVjaGFrdVwgOwor5LiK6YCyIDwgam91c2hpblwgOwor54yf6YqDIDwgcnlvdWp1dVwgOwor5Lqk57WhIDwga291cmFrdVwgOwor5L2V5p+QIDwgbmFuaWJvdVwgOwor6Lqr6LSU5bGTIDwgbWliaWlraVwgOwor5LuV552AIDwgc2hpa2lzZVwgOwor5pyo6JSmIDwga2lkenV0YVwgOwor6IKJ54mHIDwgbmlrdWhlblwgOwor55S35YSqIDwgZGFuJyd5dXVcIDsKK+acqOiTriA8IG1va3VyZW5cIDsKK+acquaVtOeQhiA8IG1pc2VpcmlcIDsKK+S6iOenkeeUnyA8IHlva2FzZWlcIDsKK+absuitnCA8IGt5b2t1ZnVcIDsKK+iCpea6nCA8IGtvZWRhbWVcIDsKK+iznueOqSA8IHNob3VnYW5cIDsKK+WAn+S6uiA8IGthcmluaW5cIDsKK+S/iuWjqyA8IHNodW5zaGlcIDsKK+abuOiplSA8IHNob2h5b3VcIDsKK+WvhuaVmSA8IG1pa2t5b3VcIDsKK+S4gOmBkyA8IGljaGlkb3VcIDsKK+S4gOmBhyA8IGljaGlndXVcIDsKK+abuOiovCA8IHNob3Nob3VcIDsKK+iyq+emhCA8IGthbnJva3VcIDsKK+acque1jOmBjiA8IG1pa2Vpa2FcIDsKK+i2iuW5tCA8IGV0c3VuZW5cIDsKK+S4gOmAoyA8IGljaGlyZW5cIDsKK+S4iei7uCA8IHNhbmppa3VcIDsKK+iAgeiHoyA8IHJvdXNoaW5cIDsKK+adoee0hCA8IGpvdXlha3VcIDsKK+ixhuiUtSA8IG1hbWV6b3VcIDsKK+S9meaXpSA8IHlvaml0c3VcIDsKK+eQg+eVjCA8IGt5dXVrYWlcIDsKK+S9nOaWhyA8IHNha3VidW5cIDsKK+a1t+advuiynSA8IG1pcnVnYWlcIDsKK+S9juacqCA8IHRlaWJva3VcIDsKK+mmrOaWuSA8IHVtYWthdGFcIDsKK+S5seiHoyA8IHJhbnNoaW5cIDsKK+S9leaZgiA8IG5hbmRva2lcIDsKK+i1pOaJiyA8IHNla2lzaHVcIDsKK+WAkuS8jyA8IHRvdWZ1a3VcIDsKK+absuinoyA8IGt5b2trYWlcIDsKK+S4gOi8qiA8IGljaGlyaW5cIDsKK+WwiuWuuSA8IHNvbicneW91XCA7CivkuIrotrMgPCBqb3Vzb2t1XCA7CivkuKHoq5YgPCByeW91cm9uXCA7CivkuIDou40gPCBpY2hpZ3VuXCA7CivnlLrkurogPCBjaG91bmluXCA7CivkuIrotoogPCBqb3VldHN1XCA7CivlsYDlk6EgPCBreW9rdWluXCA7CivlsILlsZ4gPCBzZW56b2t1XCA7CivkvZXmlYUgPCBuYW5peXVlXCA7Civku4vnl4UgPCBrYWlieW91XCA7Civku4/nlLsgPCBidXRzdWdhXCA7CivohLHlrZcgPCBkYXRzdWppXCA7CivnjJvov70gPCBtb3V0c3VpXCA7CivotIXmsqIgPCB6ZWl0YWt1XCA7Civkv6Hlj7cgPCBzaGluZ291XCA7CivnlLDkvZwgPCBkZW5zYWt1XCA7CivlhbXlhZDluK8gPCBoZWtvb2JpXCA7CivlsbHkuK0gPCBzYW5jaHV1XCA7CivmnKzohbkgPCBob25wdWt1XCA7CivkupTnr4AgPCBnb3NldHN1XCA7CivkuLvombkgPCBzaHVuaWppXCA7CivkuKboo70gPCBuYW1pc2VpXCA7CivnlJrlha0gPCBqaW5yb2t1XCA7CivotaTmgaUgPCBha2FoYWppXCA7CivouqvlpYfpupcgPCBtaWdpcmVpXCA7CivmnLHogokgPCBzaHVuaWt1XCA7CivkvZnmjqUgPCB5b3NldHN1XCA7CivmpJzmn7vlk6EgPCBrZW5zYWluXCA7CivnlLLkuZkgPCBrb3VvdHN1XCA7CivkupXnrZIgPCBpZHp1dHN1XCA7CivmnKzog70gPCBob24nJ25vdVwgOwor55Gj5pyrIDwgc2FtYXRzdVwgOwor5Lq655qHIDwgbmluJydub3VcIDsKK+S6uueahCA8IGppbnRla2lcIDsKK+iEhuW8sSA8IHplaWpha3VcIDsKK+mlkea4hyA8IGtpa2F0c3VcIDsKK+S4u+iWrCA8IHNodXlha3VcIDsKK+WNseapn+aEnyA8IGtpa2lrYW5cIDsKK+i1pOiMhOWtkCA8IGFrYW5hc3VcIDsKK+WumOaciSA8IGthbicneXV1XCA7Civku5bniakgPCB0YWJ1dHN1XCA7Civnvr3omasgPCBoYW11c2hpXCA7CivnlKPkvJEgPCBzYW5reXV1XCA7CivkvZzmiKYgPCBzYWt1c2VuXCA7CivkvK/mnpcgPCBiZXJ1cmluXCA7Civog4zmlZkgPCBoYWlreW91XCA7CivosYrog7ggPCBob3VreW91XCA7Civmn7PmnaEgPCByeXV1am91XCA7Civnq6/mrabogIUgPCBoYW11c2hhXCA7CivnlJ/kubMgPCBzZWlueXV1XCA7CivljbDluqbkurogPCBpbmRvamluXCA7CivlhoXlronmiZMgPCBuYWlhbmRhXCA7CivogonmsaAgPCBuaWt1Y2hpXCA7CivkuInop5IgPCBzYW5rYWt1XCA7CivkuIvoposgPCBzaGl0YW1pXCA7CivkvI/mqIsgPCBmdXNlZG9pXCA7CivogonmsYEgPCBuaWt1anV1XCA7CivlsYvmoLnmnb8gPCB5YW5laXRhXCA7CivnhKHmnJ/liJEgPCBtdWtpa2VpXCA7CivnjoTnv4EgPCBnZW4nJ25vdVwgOwor6KiY5b+156KRIDwga2luZW5oaVwgOwor5LiA6KqsIDwgaXNzZXRzdVwgOwor6aeQ5bGvIDwgY2h1dXRvblwgOwor5bCx5Yq0IDwgc2h1dXJvdVwgOwor6LK354mpIDwga2FpbW9ub1wgOwor6YO95biC5YyWIDwgdG9zaGlrYVwgOwor5bGF5YCZIDwgaXNvdXJvdVwgOwor5pyN6Ia6IDwgZnVrdXlvdVwgOwor5p6v5riHIDwga29rYXRzdVwgOwor6aKo57+SIDwgZnV1c2h1dVwgOwor5LmX576DIDwgam91YmVraVwgOwor5bGI5Ly4IDwga3Vzc2hpblwgOwor5L+X5YOnIDwgem9rdXNvdVwgOwor5bqc55+l5LqLIDwgZnVjaGlqaVwgOwor5YaF6ICz54KOIDwgbmFpamllblwgOwor5pys57WmIDwgaG9ua3l1dVwgOwor5Lit6JGJIDwgY2h1dXlvdVwgOwor572q6LehIDwgemFpc2VraVwgOwor6aOb56SrIDwgdHN1YnV0ZVwgOwor5p2h55uuIDwgam91bW9rdVwgOwor5LiA6KanIDwgaWNoaXJhblwgOwor5a+G5bqmIDwgbWl0c3Vkb1wgOwor5LiK6KGoIDwgam91aHlvdVwgOwor5YyX5Lqs6KqeIDwgcGVraW5nb1wgOwor5LiL6KGAIDwgZ2VrZXRzdVwgOwor6Laz5Yq0IDwgc29rdXJvdVwgOwor5bCP5ZaEIDwgc2hvdXplblwgOwor5Luu5rG6IDwga2FrZXRzdVwgOwor5LqV55uuIDwgc2VpbW9rdVwgOwor5bCa5Y+IIDwgbmFvbWF0YVwgOwor54qs5bCP5bGLIDwgaW51Z295YVwgOwor5pqX6LqNIDwgYW4nJ3lha3VcIDsKK+W9vOWyuOS8miA8IGhpZ2FuJydlXCA7CivosqjniakgPCBrYW1vdHN1XCA7Civlrp/mioAgPCBqaXRzdWdpXCA7CivmnKznsaQgPCBob25rdWppXCA7CivohLHllrYgPCBkYXRzdWVpXCA7CivkvZPlvpcgPCB0YWl0b2t1XCA7CivmnKznsY0gPCBob25zZWtpXCA7CivlsI/lk4EgPCBzaG91aGluXCA7CivmnInogbcgPCB5dXVzb2t1XCA7CivkvbPlrqIgPCBrYWt5YWt1XCA7Civnvo7ooZMgPCBiaWp1dHN1XCA7CivotaTlrZAgPCBzZWtpc2hpXCA7CivlrrPlv4MgPCBnYWlzaGluXCA7CivmmLzppJAgPCBjaHV1c2FuXCA7CivkuoznnYAgPCBuaWNoYWt1XCA7Civnm7jlvJ/lrZAgPCBhaWRlc2hpXCA7Civkv5fkvJ0gPCB6b2t1ZGVuXCA7CivmoLjlrZAgPCBrYWt1c2hpXCA7CivmnKznrrEgPCBob25iYWtvXCA7Civkuoznm7QgPCBuaWNob2t1XCA7CivppqzluIIgPCB1bWFpY2hpXCA7CivkvZXlubQgPCBuYW4nJ25lblwgOwor5bCP5Y+jIDwga29ndWNoaVwgOwor5p2+54WkIDwgc2hvdWJhaVwgOwor5pys562LIDwgaG9uc3VqaVwgOwor5p2x54usIDwgdG91ZG9rdVwgOwor542j6IKJIDwganV1bmlrdVwgOwor5LqM55m+IDwgbmloeWFrdVwgOwor5puy6IieIDwga3VzZW1haVwgOwor54+N542jIDwgY2hpbmp1dVwgOwor5pys56ugIDwgaG9uc2hvdVwgOwor5Li757+8IDwgc2h1eW9rdVwgOwor576k6JC9IDwgZ3VucmFrdVwgOwor6aO0546JIDwgYW1lZGFtYVwgOwor6ICE56KMIDwgbW91cm9rdVwgOwor5a6u5bu3IDwga3l1dXRlaVwgOwor5bCx5Lu7IDwgc2h1dW5pblwgOwor5aaZ6b2iIDwgbXlvdXJlaVwgOwor5pmC6ZuoIDwgc2hpZ3VyZVwgOwor5pyo56uLIDwga29kYWNoaVwgOwor546L56uLIDwgb3VyaXRzdVwgOwor5bCP5YuHIDwgc2hvdXl1dVwgOwor6IG35qipIDwgc2hva2tlblwgOwor5a+E5a6/IDwga2lzaHVrdVwgOwor6bOz5Yew5bqnIDwgaG91b3V6YVwgOwor6IOM5b6zIDwgaGFpdG9rdVwgOwor5qC85aSWIDwga2FrdWdhaVwgOwor5ZK96aCt54KOIDwgaW50b3VlblwgOwor5LiK6JSfIDwgam91em9rdVwgOwor5Lit6IOMIDwgY2h1dXplaVwgOwor6LWk5aSWIDwgc2VraWdhaVwgOwor5Lih6Ii3IDwgcnlvdWdlblwgOwor5a2j5pyrIDwga2ltYXRzdVwgOwor5p2+5r+kIDwgc2hvdXRvdVwgOwor5p+E5p2TIDwgaGlzaGFrdVwgOwor54us6LWwIDwgZG9rdXNvdVwgOwor5oqV5b2x5ZuzIDwgdG91ZWl6dVwgOwor546J56i/IDwgZ3lva2tvdVwgOwor5L6/5L6rIDwgYmVuJyduZWlcIDsKK+S4jeihm+eUnyA8IGZ1ZWlzZWlcIDsKK+S7luauuiA8IHRhc2F0c3VcIDsKK+S4i+iRiSA8IHNoaXRhYmFcIDsKK+i2s+S7oyA8IGFzaGlkYWlcIDsKK+S4reiAgSA8IGNodXVyb3VcIDsKK+aciOe1piA8IGdla2t5dXVcIDsKK+mnkOWcqCA8IGNodXV6YWlcIDsKK+S4oeiFlSA8IHJ5b3V1ZGVcIDsKK+eNhOiIjiA8IGdva3VzaGFcIDsKK+WwjuWFpSA8IGRvdW55dXVcIDsKK+aVtOeQhumDqCA8IHNlaXJpYnVcIDsKK+WFpeavjeWxiyA8IGlyaW1veWFcIDsKK+S5meeoriA8IG90c3VzaHVcIDsKK+eJnem2jyA8IG1lbmRvcmlcIDsKK+Wkmui2o+WRsyA8IHRhc2h1bWlcIDsKK+Wtn+aYpSA8IG1vdXNodW5cIDsKK+S+m+WLoiA8IHRvbW96ZWlcIDsKK+WvqeWVjyA8IHNoaW5tb25cIDsKK+S7i+auuyA8IGthaWtha3VcIDsKK+S4gOiRiSA8IGljaGl5b3VcIDsKK+acgOe1giA8IHNhaXNodXVcIDsKK+S5s+eZjCA8IG55dXVnYW5cIDsKK+iAvea6uiA8IHRhbmRla2lcIDsKK+S9j+WuhSA8IGp1dXRha3VcIDsKK+i2heWLpCA8IGNob3VraW5cIDsKK+iAgeeXhSA8IHJvdWJ5b3VcIDsKK+izk+agvCA8IGhpbmtha3VcIDsKK+acneekvCA8IGNob3VyZWlcIDsKK+mfs+iomOWPtyA8IG9ua2lnb3VcIDsKK+Wwj+S+vyA8IHNob25iZW5cIDsKK+WwgeWFpSA8IGZ1dW55dXVcIDsKK+aYpembtyA8IHNodW5yYWlcIDsKK+Wwj+WdiuS4uyA8IGtvYm91enVcIDsKK+S4ree3qCA8IGNodXVoZW5cIDsKK+acquedgCA8IG1pY2hha3VcIDsKK+abuOe1jCA8IHNob2t5b3VcIDsKK+WvuOWIuyA8IHN1bmtva3VcIDsKK+S6i+eJqSA8IGppYnV0c3VcIDsKK+S7lealrSA8IHNoaXdhemFcIDsKK+aXpeacrOeUuyA8IG5paG9uZ2FcIDsKK+ePvualrSA8IGdlbmd5b3VcIDsKK+abs+e2siA8IGhpa2lhbWlcIDsKK+WwiuS/oSA8IHNvbnNoaW5cIDsKK+i2heWHoSA8IGNob3Vib25cIDsKK+S7suaWrSA8IGNodXVkYW5cIDsKK+Wwj+S8nSA8IHNob3VkZW5cIDsKK+mepumfhiA8IGJ1cmFua29cIDsKK+e0gOWFg+W+jCA8IGtpZ2VuZ29cIDsKK+S5seeUqCA8IHJhbicneW91XCA7CivkuIPoibIgPCBuYW5haXJvXCA7CivkuIrohoogPCBqb3VoYWt1XCA7CivkvZXlpbQgPCBkb3lhdHN1XCA7CivkvZPmuKnlmaggPCB0YWlvbmtpXCA7CivkuIDoirggPCBpY2hpZ2VpXCA7Civniqzph5ggPCBpbnVrdWdpXCA7CivmnKrnmbogPCBtaWhhdHN1XCA7CivlsI/kurogPCBzaG91bmluXCA7CivkvZflo7AgPCB3YWJpZ29lXCA7CivkuIDoibIgPCBoaXRvaXJvXCA7CivkuLvnrYsgPCBzaHVzdWppXCA7CivkuK3ns7ggPCBjaHV1aXRvXCA7Civos4fmoLwgPCBzaGlrYWt1XCA7Civmm7jnsY0gPCBzaG9zZWtpXCA7Civlrr/loLQgPCBzaHVrdWJhXCA7CivmmKXpl5ggPCBzaHVudG91XCA7CivmmrTokL0gPCBib3VyYWt1XCA7CivkuqzmtJsgPCBrZWlyYWt1XCA7CivkuIfog70gPCBtYW4nJ25vdVwgOwor5LiJ6IKyIDwgc2FuJydpa3VcIDsKK+S4ieiCoSA8IHNhbm1hdGFcIDsKK+S4gOiGsyA8IGljaGl6ZW5cIDsKK+eJuembuyA8IHRva3VkZW5cIDsKK+mghuiqvyA8IGp1bmNob3VcIDsKK+e+veeukiA8IGhhYm91a2lcIDsKK+iEmuWFiSA8IGt5YWtrb3VcIDsKK+eLrOijgSA8IGRva3VzYWlcIDsKK+e+iuiGnCA8IHlvdW1ha3VcIDsKK+acq+eUnyA8IHN1ZW5hcmlcIDsKK+afu+WvnyA8IHNhc2F0c3VcIDsKK+S4iue/vCA8IGpvdXlva3VcIDsKK+S8keaAoCA8IGt5dXV0YWlcIDsKK+S5seeNsiA8IHJhbmtha3VcIDsKK+e+qee1tiA8IGdpemV0c3VcIDsKK+aYh+mghiA8IHNob3VqdW5cIDsKK+ePvuaciSA8IGdlbicneXV1XCA7Civosp3mrrwgPCBrYWlnYXJhXCA7Civnianpn7MgPCBtb25vb3RvXCA7Civlvq7muKnmua8gPCBiaW9udG91XCA7CivkuLvnpZ4gPCBzaHVzaGluXCA7Civnjonnkr0gPCBneW9rdWppXCA7CivkvJrluK0gPCBrYWlzZWtpXCA7Civni7zol4kgPCByb3V6ZWtpXCA7CivnvorogokgPCB5b3VuaWt1XCA7CivpoJDooYAgPCB5b2tldHN1XCA7CivosrTlqabkurogPCBraWZ1amluXCA7CivpoqjnlrkgPCBmdXVzaGluXCA7CivnjonnkZsgPCBneW9rdWVpXCA7Civlrr/llrYgPCBzaHVrdWVpXCA7Civku5bml6UgPCB0YWppdHN1XCA7CivogIHnhp8gPCByb3VqdWt1XCA7Civos4fmlpkgPCBzaGlyeW91XCA7Civpp5DlhbUgPCBjaHV1aGVpXCA7Civlj7PlpKfoh6MgPCB1ZGFpamluXCA7CivkvY7lnKcgPCB0ZWlhdHN1XCA7Civmnb7mpZMgPCBzaG91ZnV1XCA7Civku4rmnJ0gPCBrb25jaG91XCA7CivkuLnnoqcgPCB0YW5wZWtpXCA7Civmmq7oibIgPCBib3Nob2t1XCA7Civku5XmlrkgPCBzaGlrYXRhXCA7CivluLDljJbkurogPCBraWthamluXCA7Civku4rmm7QgPCBpbWFzYXJhXCA7Civlr4blkYogPCBtaWtrb2t1XCA7Civniq/ot6EgPCBoYW5zZWtpXCA7CivosrTmnK0gPCBraXNhdHN1XCA7Civpo4TnhLYgPCBoeW91emVuXCA7Civku4rmmoEgPCBrb25neW91XCA7Civml6nppqwgPCBoYXlhdW1hXCA7CivkvZzlk4EgPCBzYWt1aGluXCA7CivosqDmpbUgPCBmdWt5b2t1XCA7CivmiKblvozmtL4gPCBzZW5nb2hhXCA7CivkurrmoLwgPCBqaW5rYWt1XCA7CivmnKzniakgPCBob25tb25vXCA7Civku4rmmYIgPCBpbWFkb2tpXCA7CivmnaXmrbQgPCByYWlyZWtpXCA7Civpn7PoqLMgPCBvbicneWFrdVwgOwor5LuK5pilIDwga29uc2h1blwgOwor6LKv5pyoIDwgY2hvYm9rdVwgOwor6LK35pilIDwgYmFpc2h1blwgOwor5a+M5YqbIDwgZnVyeW9rdVwgOwor5LiK57SaIDwgam91a3l1dVwgOwor5LiK57SZIDwgdXdhZ2FtaVwgOwor6IGa5pWjIDwgc2h1dXNhblwgOwor5LiK57SQIDwgdXdhaGltb1wgOwor5LuK5pa5IDwgaW1hZ2F0YVwgOwor5pyo54mIIDwgbW9rdWhhblwgOwor5pyo54mHIDwgbW9rdWhlblwgOwor6IOM5ZynIDwgaGFpYXRzdVwgOwor6IKJ5by+IDwgbmlrdWRhblwgOwor542E56qTIDwgZ29rdXNvdVwgOwor5a2m5bm0IDwgZ2FrdW5lblwgOwor5a6i5ZyfIDwga3lha3Vkb1wgOwor6K206LKsIDwga2Vuc2VraVwgOwor5L2O5ZSxIDwgdGVpc2hvdVwgOwor5pen6aKoIDwga3l1dWZ1dVwgOwor5a2Y5b+1IDwgem9uJyduZW5cIDsKK+eOh+eIviA8IHNvdHN1amlcIDsKK+WtpuW4vSA8IGdha3Vib3VcIDsKK+acrOeEtiA8IGhvbicnbmVuXCA7Civni4LoqIAgPCBreW91Z2VuXCA7Civku5XmjpsgPCBzaGlrYWtlXCA7CivmoKrliLggPCBrYWJ1a2VuXCA7Civpo5vmsqsgPCBoaW1hdHN1XCA7Civpoqjni4IgPCBmdXVreW91XCA7CivlrZDmga8gPCBzaGlzb2t1XCA7CivppqzljLkgPCBiYWhpdHN1XCA7Civmm7jnm64gPCBzaG9tb2t1XCA7CivkuIrnrrEgPCB1d2FiYWtvXCA7Civog7jlg48gPCBreW91em91XCA7Civog7TlhYMgPCBkb3Vtb3RvXCA7CivmmpfoibIgPCBhbnNob2t1XCA7Civlrozlo4EgPCBrYW5iZWtpXCA7Civog4blmqIgPCB0YW4nJ25vdVwgOwor6LGK54afIDwgaG91anVrdVwgOwor5LiK562WIDwgam91c2FrdVwgOwor6aGO57SQIDwgYWdvaGltb1wgOwor5pyo54KtIDwgbW9rdXRhblwgOwor5L2Z5YqbIDwgeW9yeW9rdVwgOwor5Y+X5YOP5qmfIDwganV6b3VraVwgOwor5Lit55ukIDwgY2h1dWJhblwgOwor6KiY5b+15qi5IDwga2luZW5qdVwgOwor6ICz5qCTIDwgbWltaXNlblwgOwor5L2Z5YmyIDwgeW9rYXRzdVwgOwor5LiH562WIDwgYmFuc2FrdVwgOwor5Luk5oGvIDwgcmVpc29rdVwgOwor57KJ5b6u5aG1IDwga29taWppblwgOwor54mH6Z2iIDwga2F0YW1lblwgOwor54K65pS/6ICFIDwgaXNlaXNoYVwgOwor54m56YWNIDwgdG9rdWhhaVwgOwor5Lmz5riFIDwgbnl1dXNlaVwgOwor5pel6ZyyIDwgbmljaGlyb1wgOwor5aSn54qs5bqnIDwgb29pbnV6YVwgOwor5pel5pmC6KiIIDwgaGlkb2tlaVwgOwor5Lmz5rayIDwgbnl1dWVraVwgOwor54yu56uLIDwga29uZGF0ZVwgOwor5Lih55y8IDwgcnlvdWdhblwgOwor5L2V5YemIDwgZG9rb2lyYVwgOwor6LGG54KtIDwgbWFtZXRhblwgOwor5a6f5ZOhIDwgaml0c3VpblwgOwor54+N5pysIDwgY2hpbnBvblwgOwor5Luj5b25IDwgZGFpeWFrdVwgOwor5Lmx5rWBIDwgcmFucnl1dVwgOwor5LiA56uvIDwgaXBwYXNoaVwgOwor54+N5pu4IDwgY2hpbnNob1wgOwor5L2V5YWxIDwgbmFudG9tb1wgOwor5a+S5LitIDwga2FuY2h1dVwgOwor5pmC5LqL6KuWIDwgamlqaXJvblwgOwor5Lit55O2IDwgY2h1dWJpblwgOwor5LiH56aPIDwgbWFucHVrdVwgOwor6IG35belIDwgc2hva2tvdVwgOwor5a6F5ZywIDwgdGFrdWNoaVwgOwor5Lmz5rGBIDwgbnl1dWp1dVwgOwor5qCh5YCJIDwgYXpla3VyYVwgOwor57+V54S2IDwga3l1dXplblwgOwor5L+d6aSK6ZmiIDwgaG95b3VpblwgOwor5paw6a6uIDwgc2hpbnNlblwgOwor6LGK5ryBIDwgaG91cnlvdVwgOwor6K2r6KiAIDwgdXdhZ290b1wgOwor5pyd5r2uIDwgYXNhc2hpb1wgOwor6Ieq54S26JavIDwgamluZW5qb1wgOwor5L+d5YGl5omAIDwgaG9rZW5qb1wgOwor6aKo5r2uIDwgZnV1Y2hvdVwgOwor6IO05LitIDwgZG91bmFrYVwgOwor6aCa6IKJIDwga2VpbmlrdVwgOwor5L2c5L6LIDwgc2FrdXJlaVwgOwor6Zui5byB6IqxIDwgcmliZW5rYVwgOwor5pys5rWBIDwgaG9ucnl1dVwgOwor5a+G5LqLIDwgbWl0c3VqaVwgOwor5Luw5bGxIDwgZ3lvdXNhblwgOwor5LuP5oGpIDwgYnV0c3VvblwgOwor5qyh5LiW5LujIDwgamlzZWRhaVwgOwor5LuW5b6LIDwgdGFyaXRzdVwgOwor5p2l5pilIDwgcmFpaGFydVwgOwor5LiN5Zmo55SoIDwgYnVraXlvdVwgOwor54++5b25IDwgZ2VuJydla2lcIDsKK+S4gOekvCA8IGljaGlyZWlcIDsKK+mghuiJryA8IGp1bnJ5b3VcIDsKK+S4iuefsyA8IHV3YWlzaGlcIDsKK+Wun+WLmSA8IGppdHN1bXVcIDsKK+WtkOWxgCA8IGtva3lva3VcIDsKK+aJi+Wlh+m6lyA8IHRlZ2lyZWlcIDsKK+S4i+edgCA8IHNoaXRhZ2lcIDsKK+acquaxuiA8IG1pa2V0c3VcIDsKK+Wkp+m7kiA8IGRhaWtva3VcIDsKK+WhqeWfuuaApyA8IGVua2lzZWlcIDsKK+S7leW6piA8IHNoaXRha3VcIDsKK+WtpuWkliA8IGdha3VnYWlcIDsKK+mgrOe0hSA8IGhvb2JlbmlcIDsKK+mdoumVtyA8IG9tb25hZ2FcIDsKK+itmOiqniA8IHNoaWtpZ29cIDsKK+S9juS/lyA8IHRlaXpva3VcIDsKK+S4i+ebriA8IHNoaXRhbWVcIDsKK+adj+aelyA8IGt5b3VyaW5cIDsKK+WtkeWtkSA8IGJvdWZ1cmlcIDsKK+aal+e3kSA8IGFucnlva3VcIDsKK+mmrOS4uyA8IGJhbnVzaGlcIDsKK+eJuei1piA8IHRva3VzaGFcIDsKK+S4jeeZuiA8IGZ1aGF0c3VcIDsKK+S9leS6uiA8IG5hbnBpdG9cIDsKK+iomOW/teaXpSA8IGtpbmVuYmlcIDsKK+mrmOellueItiA8IGtvdXNvZnVcIDsKK+S7iuaXpeS4rSA8IGt5b3VqdXVcIDsKK+iBt+WuiSA8IHNob2t1YW5cIDsKK+aZr+iJsiA8IGtlc2hpa2lcIDsKK+adkeaciSA8IHNvbicneXV1XCA7CivmnZDmnKggPCB6YWltb2t1XCA7CivmnKfmsJcgPCBvYm9yb2dlXCA7CivkuIfnm64gPCBiYW5tb2t1XCA7CivpnLLpqqggPCByb2tvdHN1XCA7Civku4/luqcgPCBidXRzdXphXCA7Civpo5vmnK0gPCBoaXNhdHN1XCA7CivlpKfpt7ogPCBkYWlzYWdpXCA7Civoq5bpp4EgPCByb25iYWt1XCA7CivpoqjmtYEgPCBmdXVyeXV1XCA7CivlrabloLEgPCBnYWt1aG91XCA7Civogonlo7AgPCBuaWt1c2VpXCA7Civku6PlsIYgPCBkYWlzaG91XCA7CivosYrmsoMgPCBob3V5b2t1XCA7CivokI7pu4Tnl4UgPCBpb3VieW91XCA7CivogZblu58gPCBzZWlieW91XCA7CivlrrbkuLsgPCB5YW51c2hpXCA7CivkuIDnnYAgPCBpdGNoYWt1XCA7CivkuIDnnLwgPCBpY2hpZ2FuXCA7CivkuIDnnLggPCBpY2hpYm91XCA7CivorZjoposgPCBzaGlra2VuXCA7Civmn5Dlm70gPCBib3Vrb2t1XCA7CivmnYnmnZAgPCBzdWdpemFpXCA7CivkuIDnnKAgPCBpY2hpbWluXCA7Civku4HlvrMgPCBqaW50b2t1XCA7CivlrpvlhYggPCBhdGVzYWtpXCA7Civmk6zlj6TmlocgPCBnaWtvYnVuXCA7CivmlrDpoqggPCBzaGlucHV1XCA7CivkuIDnm7QgPCBpdGNob2t1XCA7Civku4rlubQgPCBrb24nJ25lblwgOwor6IOa5LmzIDwgaGFpbnl1dVwgOwor5LqM5pelIDwgZnV0c3VrYVwgOwor5pat6aOfIDwgZGFuamlraVwgOwor5Lmz5qOSIDwgbnl1dWJvdVwgOwor5LiL55WlIDwgZ2VyeWFrdVwgOwor55Ge5YWGIDwgenVpY2hvdVwgOwor5paw6aGUIDwgc2hpbmdhb1wgOwor5LiH55eFIDwgbWFuYnlvdVwgOwor6Z+76ISaIDwgaW5reWFrdVwgOwor5Zyw6KGj6aGeIDwgY2hpaXJ1aVwgOwor57+85qOfIDwgeW9rdXRvdVwgOwor5LiJ55S3IDwgc2FuJyduYW5cIDsKK+adkOaWmSA8IHphaXJ5b3VcIDsKK+Wphue+hemWgCA8IGJhcmFtb25cIDsKK+WumOWDmiA8IGthbnJ5b3VcIDsKK+aWh+mzpSA8IGJ1bmNob3VcIDsKK+S6uuW+syA8IG5pbnRva3VcIDsKK+S7sOWkqSA8IGd5b3V0ZW5cIDsKK+iziuWusyA8IHpva3VnYWlcIDsKK+mhjOebriA8IGRhaW1va3VcIDsKK+S6uuW9oiA8IG5pbmd5b3VcIDsKK+eJm+i7iiA8IGd5dXVzaGFcIDsKK+iziuWtkCA8IHpva3VzaGlcIDsKK+enmOabuOiqsiA8IGhpc2hva2FcIDsKK+acrOalrSA8IGhvbmd5b3VcIDsKK+WNsOeUu+e0mSA8IGluZ2FzaGlcIDsKK+iyp+W8sSA8IGhpbmpha3VcIDsKK+eIhumiqCA8IGJha3VmdXVcIDsKK+iAgeacvSA8IHJvdWt5dXVcIDsKK+aXqemAnyA8IHNhc3Nva3VcIDsKK+aXp+mBkyA8IGt5dXVkb3VcIDsKK+iAgeacqCA8IHJvdWJva3VcIDsKK+eJueiqjSA8IHRva3VuaW5cIDsKK+acrOajmiA8IGhvbmRhbmFcIDsKK+Wmmei2oyA8IG15b3VzaHVcIDsKK+eJqeixoSA8IGJ1c3Nob3VcIDsKK+S7j+WvuiA8IGJ1dHN1amlcIDsKK+S6iOaDs+WxiyA8IHlvc291eWFcIDsKK+aFiOWWhOWutiA8IGppemVua2FcIDsKK+acq+aioiA8IG1hc3Nob3VcIDsKK+irlumboyA8IHJvbicnbmFuXCA7CivlnJ/mm5zml6UgPCBkb3lvdWJpXCA7CivkuIrnjokgPCBqb3VkYW1hXCA7Civoq5bpm4YgPCByb25zaHV1XCA7CivmnpflraYgPCByaW5nYWt1XCA7CivlrabllY8gPCBnYWt1bW9uXCA7Civosarml48gPCBnb3V6b2t1XCA7CivogbfloLQgPCBzaG9rdWJhXCA7CivmnKzmoLwgPCBob25rYWt1XCA7CivkvJrliYcgPCBrYWlzb2t1XCA7CivkuLvmtYEgPCBzaHVyeXV1XCA7Civml6Lov7AgPCBraWp1dHN1XCA7Civnvqnng4ggPCBnaXJldHN1XCA7CivpmY3pm6jmnpcgPCBrb3V1cmluXCA7CivnianorbAgPCBidXRzdWdpXCA7CivosrjlrrYgPCBrYXNoaXlhXCA7CivmnInmr5IgPCB5dXVkb2t1XCA7CivmlrDplosgPCBzaGlua2FpXCA7CivkuIvniakgPCBrYWJ1dHN1XCA7Civku5nlpbMgPCBzZW4nJ255b1wgOwor54iG6Zu3IDwgYmFrdXJhaVwgOwor5LyP5YuiIDwgZnVzZXplaVwgOwor5LiK54mpIDwgam91bW9ub1wgOwor5pyd6aKo5ZGCIDwgYXNhYnVyb1wgOwor5p6g5aSWIDwgd2FrdWdhaVwgOwor5pys5pydIDwgaG9uY2hvdVwgOwor54m56KOFIDwgdG9rdXNvdVwgOwor6aCY56m6IDwgcnlvdWt1dVwgOwor5a2m5ZCNIDwgZ2FrdW1laVwgOwor5pen6LmfIDwgZnVydWF0b1wgOwor5pyr5pyfIDwgbWF0c3Vnb1wgOwor5pyo5p2vIDwgbW9rdWhhaVwgOwor5YaN5LiL5LuYIDwgc2Fpa2FmdVwgOwor5rSL55S75a62IDwgeW91Z2FrYVwgOwor6Kys6KuWIDwgYnl1dXJvblwgOwor5pyo5p2QIDwgbW9rdXphaVwgOwor5a2m5Y+LIDwgZ2FrdXl1dVwgOwor5pyo5pysIDwgbW9rdWhvblwgOwor5LiL54axIDwgZ2VuZXRzdVwgOwor5a6a6KaP5bqnIDwgam91Z2l6YVwgOwor5p2l5b6pIDwgcmFpZnVrdVwgOwor5pyo5pucIDwgbW9rdXlvdVwgOwor5puy5rWmIDwga3lva3Vob1wgOwor6aGe54S8IDwgcnVpc2hvdVwgOwor6aKo5qC8IDwgZnV1a2FrdVwgOwor5p2+5bGLIDwgbWF0c3V5YVwgOwor6aCt55uuIDwgdG91bW9rdVwgOwor5Lmd5pyIIDwga3VnYXRzdVwgOwor5LyP5YW1IDwgZnVrdWhlaVwgOwor54m56J6NIDwgdG9rdXl1dVwgOwor5Lmx5pKDIDwgcmFuZ2VraVwgOwor542j5qyyIDwganV1eW9rdVwgOwor5aSp6aCYIDwgdGVucnlvdVwgOwor6ZyA55So5a62IDwganV5b3VrYVwgOwor5L+d5YGl5ammIDwgaG9rZW5mdVwgOwor6LGG5p2/IDwgbWFtZWl0YVwgOwor6LO85YWlIDwga291bnl1dVwgOwor6aSF5bGLIDwgbW9jaGl5YVwgOwor5auh5oqrIDwgY2hha3VoaVwgOwor5pyd5p2lIDwgY2hvdXJhaVwgOwor6Kys6KaLIDwgYnl1dWtlblwgOwor5LiL54GrIDwgc2hpdGFiaVwgOwor6LGG5pysIDwgbWFtZWhvblwgOwor6auY56WW5q+NIDwga291c29ib1wgOwor5aaZ6KiIIDwgbXlvdWtlaVwgOwor5LuK5aSVIDwga29uJyd5dXVcIDsKK+S5neaYnyA8IGt5dXVzZWlcIDsKK+Wnv+e1tSA8IHN1Z2F0YWVcIDsKK+iBt+WToSA8IHNob2t1aW5cIDsKK+WknOmjnyA8IHlhc2hva3VcIDsKK+eQg+WboyA8IGt5dXVkYW5cIDsKK+WkluiAs+eCjiA8IGdhaWppZW5cIDsKK+WkmumjnyA8IHRhc2hva3VcIDsKK+iCluWDjyA8IHNob3V6b3VcIDsKK+adseWxiyA8IGF6dW1heWFcIDsKK+WkqembsiA8IGFtYWd1bW9cIDsKK+S4jea9lCA8IGZ1a2V0c3VcIDsKK+S4jeijgeWPryA8IGZ1c2Fpa2FcIDsKK+WtpuWGhSA8IGdha3VuYWlcIDsKK+S4reatoyA8IGNodXVzZWlcIDsKK+aWh+mdqSA8IGJ1bmtha3VcIDsKK+adn+W4ryA8IHNva3V0YWlcIDsKK+itpuWCmeWToSA8IGtlaWJpaW5cIDsKK+acn+aXpSA8IGtpaml0c3VcIDsKK+mjn+W+jCA8IHNob2t1Z29cIDsKK+S4jea7hSA8IGZ1bWV0c3VcIDsKK+acneaWuSA8IGFzYWdhdGFcIDsKK+WklemiqCA8IHl1dWthemVcIDsKK+mfs+evgCA8IG9uc2V0c3VcIDsKK+Wkp+mZuCA8IHRhaXJpa3VcIDsKK+iqpOS9nOWLlSA8IGdvc2Fkb3VcIDsKK+iBtOWPliA8IGNob3VzaHVcIDsKK+eLrOecvCA8IGRva3VnYW5cIDsKK+S4i+a5ryA8IHNoaW1veXVcIDsKK+WknOmcsiA8IHlvdHN1eXVcIDsKK+S6uuWjsCA8IGhpdG9nb2VcIDsKK+ePjeWunSA8IGNoaW5wb3VcIDsKK+WmhOiplSA8IG1vdWh5b3VcIDsKK+iBt+WLmSA8IHNob2t1bXVcIDsKK+mjr+WxiyA8IG1lc2hpeWFcIDsKK+adv+WjgSA8IGl0YWthYmVcIDsKK+S6uuWigyA8IGppbmt5b3VcIDsKK+S5vuW+syA8IGtlbnRva3VcIDsKK+S7ruWQjeacrCA8IGthbmFob25cIDsKK+abuOajmiA8IHNob2RhbmFcIDsKK+WklemdhCA8IHl1dW1veWFcIDsKK+adpeWuhSA8IHJhaXRha3VcIDsKK+e9rueJqSA8IG9raW1vbm9cIDsKK+eNhOatuyA8IGdva3VzaGlcIDsKK+acq+aKgCA8IG1hdHN1Z2lcIDsKK+acreaJgCA8IGZ1ZGFzaG9cIDsKK+WklemcpyA8IHl1dWdpcmlcIDsKK+mgkueZvSA8IGhhbnBha3VcIDsKK+S4iua1tyA8IHNoYW5oYWlcIDsKK+aWpOmHjyA8IGtpbnJ5b3VcIDsKK+aWsOmBkyA8IHNoaW5kb3VcIDsKK+aZqeeniyA8IGJhbnNodXVcIDsKK+S4iua1gSA8IGpvdXJ5dXVcIDsKK+S5l+aPmyA8IG5vcmlrYWVcIDsKK+S4iea1gSA8IHNhbnJ5dXVcIDsKK+S4iua0myA8IGpvdXJha3VcIDsKK+acq+aIkCA8IHVyYW5hcmlcIDsKK+eJh+imqiA8IGthdGFveWFcIDsKK+izoOWEnyA8IGJhaXNob3VcIDsKK+e/jOaZqSA8IHlva3ViYW5cIDsKK+S5neaLnSA8IGt5dXVoYWlcIDsKK+S7ruWFjSA8IGthcmltZW5cIDsKK+S4uOadkCA8IG1hcnV6YWlcIDsKK+S7u+S+oCA8IG5pbmt5b3VcIDsKK+iCieS9kyA8IG5pa3V0YWlcIDsKK+aciOaXpSA8IHRzdWtpaGlcIDsKK+aVtemZoyA8IHRla2lqaW5cIDsKK+mgheebriA8IGtvdW1va3VcIDsKK+WkiemdqSA8IGhlbmtha3VcIDsKK+S4gOa1qiA8IGljaGlyb3VcIDsKK+aWmemHkSA8IHJ5b3VraW5cIDsKK+iAgeW8sSA8IHJvdWpha3VcIDsKK+WklemXhyA8IHl1dXlhbWlcIDsKK+aVsOmauyA8IHN1dXNla2lcIDsKK+aWsOi7iiA8IHNoaW5zaGFcIDsKK+S4reaeoiA8IGNodXVzdXVcIDsKK+S6i+WxgCA8IGppa3lva3VcIDsKK+aWh+mOriA8IGJ1bmNoaW5cIDsKK+S7ruWAnyA8IGthc2hha3VcIDsKK+S7o+WFpSA8IGRhaW55dXVcIDsKK+S4gOazoSA8IGhpdG9hd2FcIDsKK+mbqOmiqCA8IGFtZWthemVcIDsKK+ixquW3niA8IGdvdXNodXVcIDsKK+WKqeeUo+aJgCA8IGpvc2Fuam9cIDsKK+mdqeijhSA8IGthd2Fzb3VcIDsKK+S7j+WNsCA8IGZ1dHN1aW5cIDsKK+S4u+aVmSA8IHNodWt5b3VcIDsKK+S4gOaxuiA8IGlra2V0c3VcIDsKK+S6i+WunyA8IGppaml0c3VcIDsKK+S6iOWvnyA8IHlvc2F0c3VcIDsKK+S4gOaxlyA8IGhpdG9hc2VcIDsKK+iruOiosyA8IHNob3dha2VcIDsKK+WnpuetliA8IGthbnNha3VcIDsKK+S7suS7lSA8IG5ha2FzaGlcIDsKK+S7suS7iyA8IGNodXVrYWlcIDsKK+S7suS6uiA8IG5ha291ZG9cIDsKK+S6rOWcsCA8IGt5b3VjaGlcIDsKK+iyt+WPjiA8IGJhaXNodXVcIDsKK+S4gOavqyA8IGljaGlnb3VcIDsKK+aeoOWGhSA8IHdha3VuYWlcIDsKK+S4gOavmyA8IGljaGltb3VcIDsKK+iAs+WeoiA8IG1pbWlha2FcIDsKK+eJp+iNiSA8IGJva3Vzb3VcIDsKK+mkqOWGhSA8IGthbicnbmFpXCA7CivkuK3ml6wgPCBjaHV1anVuXCA7CivnuKbpmpQgPCBqdXVrYWt1XCA7CivlpKfmmYLku6MgPCBvb2ppZGFpXCA7Civmnrjmq57phbggPCBrdWVuc2FuXCA7Civpm5Hpp4EgPCB6YXBwYWt1XCA7CivpoJPni4IgPCB0b25reW91XCA7CivomZrnhKHlg6cgPCBrb211c291XCA7CivlpLHpgI8gPCBzaGl0dG91XCA7CivkuKHmm78gPCByeW91Z2FlXCA7Civpm6rpmqAgPCBzZXRjaGluXCA7CivlrLDoqJjlj7cgPCBlaWtpZ291XCA7CivmnKvluqcgPCBtYXRzdXphXCA7Civpo7TlnYogPCBhbWVuYm91XCA7Civkv53lgaXljLsgPCBob2tlbicnaVwgOwor5Luj5L2cIDwgZGFpc2FrdVwgOwor5Li45pCNIDwgbWFydXpvblwgOwor5p6X5YaFIDwgcmluJyduYWlcIDsKK+acq+W6gyA8IHN1ZWhpcm9cIDsKK+mgreWtl+iqniA8IHRvdWppZ29cIDsKK+S7o+S8kSA8IGRhaWt5dXVcIDsKK+eJp+iIjiA8IGJva3VzaGFcIDsKK+S7j+WFtyA8IGJ1dHN1Z3VcIDsKK+acq+W4rSA8IG1hc3Nla2lcIDsKK+isueiBtCA8IGtpbmNob3VcIDsKK+iruOihjCA8IHNob2d5b3VcIDsKK+acqOWkquWIgCA8IGtpZGFjaGlcIDsKK+eOieW6pyA8IGd5b2t1emFcIDsKK+acrOW3niA8IGhvbnNodXVcIDsKK+eMm+avkiA8IG1vdWRva3VcIDsKK+e3mOm7mSA8IGthbm1va3VcIDsKK+S7i+WFpSA8IGthaW55dXVcIDsKK+abneabuCA8IGJha3VzaG9cIDsKK+ixueWkiSA8IGh5b3VoZW5cIDsKK+aVkemboyA8IGt5dXVuYW5cIDsKK+S4oeaWrSA8IHJ5b3VkYW5cIDsKK+WlpeihjCA8IG9rdXl1a2lcIDsKK+acneW7tyA8IGNob3V0ZWlcIDsKK+aWh+mAmiA8IGJ1bnRzdXVcIDsKK+mjn+WhqSA8IHNob2t1ZW5cIDsKK+eGsembsiA8IG5ldHN1dW5cIDsKK+iTruiPr+W6pyA8IHJlbmdlemFcIDsKK+aVmemWgCA8IGt5b3Vtb25cIDsKK+mbkemfsyA8IHphdHN1b25cIDsKK+eLm+eKrCA8IGtvbWFpbnVcIDsKK+ePjeWVjyA8IGNoaW5tb25cIDsKK+aEm+abuOWutiA8IGFpc2hva2FcIDsKK+mbgemmliA8IGdhbmt1YmlcIDsKK+aapuazlSA8IHJla2lob3VcIDsKK+Wkqei7uCA8IHRlbmppa3VcIDsKK+iqnumHiCA8IGdvc2hha3VcIDsKK+S6uuWJjSA8IGhpdG9tYWVcIDsKK+mmrOWIgOiynSA8IG1hdGVnYWlcIDsKK+ePvuS7uyA8IGdlbicnbmluXCA7CivlpJzpgZMgPCB5b21pY2hpXCA7Civoq5boqr8gPCByb25jaG91XCA7CivkuZnlt6EgPCBvdHN1anVuXCA7CivlpI/ph44gPCBuYXRzdW5vXCA7CivlpJbpg60gPCBnYWlrYWt1XCA7Civnj43lk4EgPCBjaGlucGluXCA7CivmnJ3luIIgPCBhc2FpY2hpXCA7CivlpYnoqq0gPCBob3Vkb2t1XCA7CivmmLznpLwgPCBjaHV1cmVpXCA7CivmnKvlsL4gPCBtYXRzdWJpXCA7CivkuIvmnJ8gPCBzaGltb2tpXCA7CivmlbDph48gPCBzdXVyeW91XCA7Civnh5fphZIgPCBrYW56YWtlXCA7Civku5XkuosgPCBzaGlnb3RvXCA7Civoq5boqZUgPCByb25weW91XCA7CivkuIrmnI0gPCB1d2FmdWt1XCA7CivmnKjlsaUgPCBwb2trdXJpXCA7CivmnKvlr7ogPCBtYXRzdWppXCA7Civoq5boqLwgPCByb25zaG91XCA7Civniannva4gPCBtb25vb2tpXCA7CivmnI3lvpMgPCBmdWt1anV1XCA7CivkuInmnIggPCBtaXRzdWtpXCA7CivotqPmhI/mm7ggPCBzaHVpc2hvXCA7CivmnI3lvbkgPCBmdWt1ZWtpXCA7CivkuKHmkI0gPCByeW91em9uXCA7CivniZvohIIgPCBneXV1c2hpXCA7CivniafnvoogPCBib2t1eW91XCA7CivlpInph48gPCBoZW5yeW91XCA7CivkuIfmnIkgPCBiYW4nJ3l1dVwgOwor5pys5a6FIDwgaG9udGFrdVwgOwor5puy5oqAIDwga3lva3VnaVwgOwor6Z2S6JuZIDwgYW9nYWVydVwgOwor5pyJ5b6zIDwgeXV1dG9rdVwgOwor54m557SaIDwgdG9ra3l1dVwgOwor54yu5pyoIDwga2VuYm9rdVwgOwor6aOb5ZywIDwgdG9iaWNoaVwgOwor54yr5p2/IDwgbmVrb2l0YVwgOwor5pel6IuxIDwgbmljaGllaVwgOwor6KuL6KyBIDwgc2VpZXRzdVwgOwor5piT57WMIDwgZWtpa3lvdVwgOwor6LKd5YmyIDwga2Fpd2FyaVwgOwor5LiN5pelIDwgZnVqaXRzdVwgOwor5pqW5rWBIDwgZGFucnl1dVwgOwor6Z2S6JmrIDwgYW9tdXNoaVwgOwor5LiJ5pilIDwgc2Fuc2h1blwgOwor5LiA5pytIDwgaXNzYXRzdVwgOwor6ICQ5ZynIDwgdGFpYXRzdVwgOwor57ir6YedIDwgbnVpYmFyaVwgOwor6YGL5pCs6LK7IDwgdW5wYW5oaVwgOwor6aCC54K5IDwgY2hvdXRlblwgOwor5LiA5puyIDwgaWtreW9rdVwgOwor5Li55b+1IDwgdGFuJyduZW5cIDsKK+mfs+eJqSA8IGlubW90c3VcIDsKK+aXpeiIniA8IG5pY2hpYnVcIDsKK+aXp+iHmCA8IGt5dXVyb3VcIDsKK+eNo+W/gyA8IGp1dXNoaW5cIDsKK+iri+iolyA8IHNlaXRha3VcIDsKK+iAgeWigyA8IHJvdWt5b3VcIDsKK+aUmOWkt+irliA8IGpvdWlyb25cIDsKK+aHkOeWkea0viA8IGthaWdpaGFcIDsKK+S7iuS4gCA8IGltYWljaGlcIDsKK+S4h+aWmyA8IGJhbmtva3VcIDsKK+eEoeeFmeeCrSA8IG11ZW50YW5cIDsKK+S4ieaVmSA8IHNhbmt5b3VcIDsKK+S4gOaZqSA8IGhpdG9iYW5cIDsKK+WkqeixoSA8IHRlbnNob3VcIDsKK+aZqeeGnyA8IGJhbmp1a3VcIDsKK+Wmpee1kCA8IGRha2V0c3VcIDsKK+aYpeeniyA8IGhhcnVha2lcIDsKK+eJm+e8tiA8IGd5dXVrYW5cIDsKK+WuiemdmeaZgiA8IGFuc2VpamlcIDsKK+acgOW8tyA8IHNhaWt5b3VcIDsKK+WkiemAnyA8IGhlbnNva3VcIDsKK+WkiemAmiA8IGhlbnRzdXVcIDsKK+aal+auuiA8IGFuc2F0c3VcIDsKK+aVtei7jSA8IHRla2lndW5cIDsKK+eJueetiSA8IHRva3V0b3VcIDsKK+eJh+iFlSA8IGthdGF1ZGVcIDsKK+S4gOaXrCA8IGljaGlqdW5cIDsKK+Wls+eUn+W+kiA8IGpvc2VpdG9cIDsKK+S5nuWpvyA8IGtvaW11a29cIDsKK+iZjueHleaLsyA8IGtvZW5rZW5cIDsKK+mguOakjiA8IGtlaXRzdWlcIDsKK+iyrOS7uyA8IHNla2luaW5cIDsKK+mhlOaWmSA8IGdhbnJ5b3VcIDsKK+ato+W4uOS9jSA8IHNlaWpvdWlcIDsKK+acq+WlsyA8IG1hdHN1am9cIDsKK+acseWiqCA8IHNodWJva3VcIDsKK+S4geaVsCA8IGNob3VzdXVcIDsKK+aXl+iJsiA8IGhhdGFpcm9cIDsKK+ijnOWKqemHkSA8IGhvam9raW5cIDsKK+Wls+iJsiA8IGpvc2hva3VcIDsKK+aXp+iBniA8IGt5dXVidW5cIDsKK+mYv+WphuaTpiA8IGFiYXp1cmVcIDsKK+eJh+iCuiA8IGthdGFoYWlcIDsKK+acseWhlyA8IHNodW51cmlcIDsKK+mgmOawtCA8IHJ5b3VzdWlcIDsKK+mdouiItSA8IG9tb2thamlcIDsKK+S4uOW4ryA8IG1hcnVvYmlcIDsKK+eQteeQtuihjCA8IGJpd2Frb3VcIDsKK+e3j+mrmCA8IHNvdWRha2FcIDsKK+WjsOmHjyA8IHNlaXJ5b3VcIDsKK+WKqeeUo+WppiA8IGpvc2FucHVcIDsKK+acp+WknCA8IG9ib3JveW9cIDsKK+WjgemdoiA8IGhla2ltZW5cIDsKK+e/sOWiqCA8IGthbmJva3VcIDsKK+eOhOWmmSA8IGdlbm15b3VcIDsKK+S/rue+heWgtCA8IHNodXJhYmFcIDsKK+e+uOW8sSA8IHJ1aWpha3VcIDsKK+S5neWkpyA8IGt5dXVkYWlcIDsKK+S4ieaMryA8IHNhbnNoaW5cIDsKK+S4jeaKnCA8IGZ1YmF0c3VcIDsKK+Wkp+ipsCA8IG9vZHp1bWVcIDsKK+ixquWVhiA8IGdvdXNob3VcIDsKK+aJi+S4gOadryA8IHRlaXBwYWlcIDsKK+S4reW5tCA8IGNodXVuZW5cIDsKK+S4gOaPoSA8IGljaGlha3VcIDsKK+absuW6hyA8IGt5b2t1aGlcIDsKK+iqrOirrSA8IHNldHN1eXVcIDsKK+eEoee3muapnyA8IG11c2Vua2lcIDsKK+S4reW4vSA8IGNodXVib3VcIDsKK+aYpeecoCA8IHNodW5taW5cIDsKK+mgrOahgSA8IGhvb2dldGFcIDsKK+S4h+eBr+S8miA8IG1hbmRvdWVcIDsKK+eJp+erpSA8IGJva3Vkb3VcIDsKK+adseS6rCA8IHRvdWt5b3VcIDsKK+acrOWbvSA8IGhvbmdva3VcIDsKK+iqrOipsSA8IHNldHN1d2FcIDsKK+S6jOWIlyA8IG5pcmV0c3VcIDsKK+S4gOaLrCA8IGlra2F0c3VcIDsKK+mdnuiBtyA8IGhpc2hva3VcIDsKK+aUuemLsyA8IGthaWNodXVcIDsKK+eMm+aSgyA8IG1vdWdla2lcIDsKK+aVj+mAnyA8IGJpbnNva3VcIDsKK+mgrOadliA8IGhvb2R6dWVcIDsKK+aWsOiRlyA8IHNoaW5jaG9cIDsKK+awtOS9jeioiCA8IHN1aWlrZWlcIDsKK+e+nuaBpSA8IHNodXVjaGlcIDsKK+S5neWcsCA8IGt5dXVjaGlcIDsKK+aYjueiuiA8IG1laWtha3VcIDsKK+e3j+mhjSA8IHNvdWdha3VcIDsKK+S6jOWFqyA8IG5paGFjaGlcIDsKK+a8ouaWueWMuyA8IGthbnBvdWlcIDsKK+aZr+azgSA8IGtlaWt5b3VcIDsKK+aXpee1piA8IG5pa2t5dXVcIDsKK+e+veebruadvyA8IGhhbWVpdGFcIDsKK+WFt+S9k+ahiCA8IGd1dGFpYW5cIDsKK+mbhumHkSA8IHNodXVraW5cIDsKK+mbqOi2syA8IGFtZWFzaGlcIDsKK+aapuaVsCA8IHJla2lzdXVcIDsKK+aWsOiMtiA8IHNoaW5jaGFcIDsKK+miqOWcpyA8IGZ1dWF0c3VcIDsKK+e3j+mdqSA8IHNvdWdhd2FcIDsKK+S4reWwiiA8IGNodXV6b25cIDsKK+aYjueerSA8IG1laXJ5b3VcIDsKK+e4t+iqrCA8IHJ1c2V0c3VcIDsKK+mbhumFjSA8IHNodXVoYWlcIDsKK+aciOWkriA8IGdldHN1b3VcIDsKK+S4reWuriA8IGNodXVndXVcIDsKK+e2v+mjtCA8IHdhdGFhbWVcIDsKK+aciOWknCA8IHRzdWtpeW9cIDsKK+aXpeacrOWMliA8IG5paG9ua2FcIDsKK+S4ieW+syA8IHNhbnRva3VcIDsKK+mZsOmssSA8IGluJyd1dHN1XCA7Civnt5HpmbAgPCByeW9rdWluXCA7CivmlbXoppYgPCB0ZWtpc2hpXCA7CivmlL7pgLggPCBob3VpdHN1XCA7CivnoJTno6jmqZ8gPCBrZW5tYWtpXCA7CivkuIrlvbkgPCB1d2F5YWt1XCA7CivlopfpoY0gPCB6b3VnYWt1XCA7CivkuIDmga8gPCBoaXRvaWtpXCA7CivkubPliaQgPCBueXV1emFpXCA7CivmmI7nmb0gPCBtZWloYWt1XCA7CivlpKfpm5HmioogPCBvb3phcHBhXCA7CivkuIvluqcgPCBzaGltb3phXCA7Civlj6TkupXmiLggPCBmdXJ1aWRvXCA7CivkuIDlv7UgPCBpY2hpbmVuXCA7CivkuIflvJUgPCBtYW5iaWtpXCA7Civog4PmvbDnmI0gPCBpa2FpeW91XCA7CivnibnnlKMgPCB0b2t1c2FuXCA7CivmnKjlj6MgPCBraWd1Y2hpXCA7CivkuIDlvrkgPCBpdHRldHN1XCA7CivpoZTlvbkgPCBrYW95YWt1XCA7Civnv7vliLsgPCBob25rb2t1XCA7CivkuInlubQgPCBzYW4nJ25lblwgOwor5pel56uLIDwgaGl0YWNoaVwgOwor5pWR6LKnIDwga3l1dWhpblwgOwor5pat6IW4IDwgZGFuY2hvdVwgOwor5p2P5LuBIDwga3lvdW5pblwgOwor5LiH5bm0IDwgbWFuJyduZW5cIDsKK+eJqeeahCA8IGJ1dHRla2lcIDsKK+mZuOmiqCA8IHJpa3VmdXVcIDsKK+Wkmue+qeaApyA8IHRhZ2lzZWlcIDsKK+S4gOW8jyA8IGlzc2hpa2lcIDsKK+eKtuazgSA8IGpvdWt5b3VcIDsKK+eUmOmcsueFriA8IGthbnJvbmlcIDsKK+aWsOiBniA8IHNoaW5idW5cIDsKK+acrOWJhyA8IGhvbnNva3VcIDsKK+S4reWkliA8IGNodXVnYWlcIDsKK+S5meWls+W6pyA8IG90b21lemFcIDsKK+WltOetiSA8IHlhdHN1cmFcIDsKK+eLrOaWrSA8IGRva3VkYW5cIDsKK+ipsOiyrCA8IGtpc3Nla2lcIDsKK+iAkOS5hSA8IHRhaWt5dXVcIDsKK+mbo+iqrSA8IG5hbmRva3VcIDsKK+mhp+WuoiA8IGtva3lha3VcIDsKK+eLrOaWhyA8IGRva3VidW5cIDsKK+S/neWuiOa0viA8IGhvc2h1aGFcIDsKK+aXl+ervyA8IGhhdGF6YW9cIDsKK+mciuiWrCA8IHJlaXlha3VcIDsKK+aVmeiokyA8IGt5b3VrdW5cIDsKK+S4jeWxiCA8IGZ1a3V0c3VcIDsKK+acqOWIgCA8IGJva3V0b3VcIDsKK+aWsOe+hSA8IHNoaXJhZ2lcIDsKK+Wil+mVtyA8IHpvdWNob3VcIDsKK+aageaYnyA8IGd5b3VzZWlcIDsKK+mZuumboyA8IGtlbicnbmFuXCA7Civlj5nkuovoqakgPCBqb2ppc2hpXCA7CivkuIrlsaUgPCB1d2FiYWtpXCA7CivmnKzlhYMgPCBob25tb3RvXCA7CivlpKfmjoPpmaQgPCBvb3NvdWppXCA7Civng4/pvo3ojLYgPCDFq3JvbmNoYVwgOwor5Lit5aCFIDwgY2h1dWtlblwgOwor5aSP6JqVIDwgbmF0c3Vnb1wgOwor5aWz546L6J+7IDwgam9vdWFyaVwgOwor5Y2K5q+N6Z+zIDwgaGFuYm9pblwgOwor5LiJ5bC6IDwgc2FuamFrdVwgOwor5aSp6I2JIDwgdGVuZ3VzYVwgOwor5pyI5ZWGIDwgZ2Vzc2hvdVwgOwor54Sh5pS/5bqcIDwgbXVzZWlmdVwgOwor5LiL5a6/IDwgZ2VzaHVrdVwgOwor6K2w5rG6IDwgZ2lrZXRzdVwgOwor5Lmx5L2cIDwgcmFuc2FrdVwgOwor5LiL5a62IDwgc2hpdGF5YVwgOwor54mb55eYIDwgZ3l1dXRvdVwgOwor54mp55CGIDwgYnV0c3VyaVwgOwor5pu05ZywIDwgc2FyYWNoaVwgOwor54mb55arIDwgZ3l1dWVraVwgOwor576p5ZKM5ZujIDwgZ2l3YWRhblwgOwor5pyd5YeqIDwgYXNhbmFnaVwgOwor5LiA5bC6IDwgaXNzaGFrdVwgOwor54us5o6iIDwgZG9rdXRhblwgOwor57eR6YeOIDwgcnlva3V5YVwgOwor5LiD5a6dIDwgc2hpcHBvdVwgOwor5pen55ukIDwga3l1dWJhblwgOwor6Kmz6KejIDwgc2hvdWthaVwgOwor5aWR57SEIDwga2VpeWFrdVwgOwor6Zuj6KGMIDwgbmFuZ3lvdVwgOwor5pyI5Y+OIDwgZ2Vzc2h1dVwgOwor6ZuR6KmxIDwgemF0c3V3YVwgOwor5pen55uGIDwga3l1dWJvblwgOwor5LiA5a6/IDwgaXNzaHVrdVwgOwor54Sh6aqoIDwgYnVrb3RzdVwgOwor5aW95LqL5a62IDwga291enVrYVwgOwor5aOy6KGMIDwgdXJleXVraVwgOwor6aCB5pWwIDwgcMSTamlzdXVcIDsKK+aWree2miA8IGRhbnpva3VcIDsKK+mfs+absiA8IG9uZ3lva3VcIDsKK+S4gOWtmCA8IGljaGl6b25cIDsKK+WkleiPhSA8IHl1dXN1Z2VcIDsKK+aWveetliA8IHNoaXNha3VcIDsKK+aXpeeZvSA8IG5pcHBha3VcIDsKK+Wkp+iFuCA8IGRhaWNob3VcIDsKK+ihjOeCuuiAhSA8IGtvdWlzaGFcIDsKK+eJoueNhCA8IHJvdWdva3VcIDsKK+eKrOaphyA8IGludXpvcmlcIDsKK+S4juWlqiA8IHlvZGF0c3VcIDsKK+acrOS6uiA8IGhvbicnbmluXCA7Civnhp/oq4cgPCBqdWt1ZGFuXCA7CivmqZ/plqLluqsgPCBraWthbmtvXCA7CivmqZ/plqLluqcgPCBraWthbnphXCA7CivniaHnjKsgPCBvc3VuZWtvXCA7CivmmanmmKUgPCBiYW5zaHVuXCA7Civni6zmiL8gPCBkb2t1Ym91XCA7CivmlrDnsbMgPCBzaGlubWFpXCA7CivmlrnnrZYgPCBob3VzYWt1XCA7Civniqzmp5kgPCBpbnVtYWtpXCA7CivmnKjku48gPCBraWJ1dHN1XCA7Civml6nnlaogPCBoYXlhYmFuXCA7CivmnKzkuLggPCBob25tYXJ1XCA7CivmmanmlrkgPCBiYW5nYXRhXCA7Civnua3ntKwgPCBrZW5jaHV1XCA7CivpnZLnpaggPCBzZWloeW91XCA7CivnjJvlsIYgPCBtb3VzaG91XCA7CivlkIzmhI/oposgPCBkb3Vpa2VuXCA7CivkuIjlpKsgPCBtYXN1cmFvXCA7CivmnIjliKkgPCBnZXRzdXJpXCA7CivmlLnoqLMgPCBrYWl5YWt1XCA7Civlopfph48gPCB6b3VyeW91XCA7Civpm7bokL0gPCByZWlyYWt1XCA7CivkuLjljYEgPCBtYXJ1anV1XCA7Civpm4boqIggPCBzaHV1a2VpXCA7CivoqbHooZMgPCB3YWp1dHN1XCA7CivniZ3niqwgPCBtZXN1aW51XCA7Civnhp/opqcgPCBqdWt1cmFuXCA7Civnhp/oppYgPCBqdWt1c2hpXCA7CivpnaLnm64gPCBtZW5tb2t1XCA7CivnhY7pjYsgPCBpcmluYWJlXCA7CivnjoTkurogPCBrdXJvdXRvXCA7Civmlq3nrrEgPCBkYW5iYWtvXCA7CivorbDkuovloIIgPCBnaWppZG91XCA7CivloavpmpkgPCB0ZW5nZWtpXCA7CivkuIrloZcgPCB1d2FudXJpXCA7CivkuIDlpoIgPCBpY2hpbnlvXCA7CivkuI3ln5IgPCBmdXJhY2hpXCA7Civnt4rov6sgPCBraW5wYWt1XCA7CivkuIflooMgPCBiYW5reW91XCA7Civoq5bnrZYgPCByb25zYWt1XCA7CivoqLPovIkgPCB5YWt1c2FpXCA7CivmmI7mvoQgPCBtZWljaG91XCA7CivkuIDlpKcgPCBpY2hpZGFpXCA7CivoqZXoq5YgPCBoeW91cm9uXCA7Civoqr/nt7QgPCBjaG91cmVuXCA7CivkuK3ljp8gPCBjaHV1Z2VuXCA7CivoqqTohLEgPCBnb2RhdHN1XCA7Civoqq3ogIUgPCBkb2t1c2hhXCA7Civlo7LolqwgPCBiYWl5YWt1XCA7CivosYbkubMgPCB0b3VueXV1XCA7CivkuIDlo7AgPCBoaXRva29lXCA7CivlpKnns7jnk5wgPCBoZWNoaW1hXCA7Civkv53lronmnpcgPCBob2FucmluXCA7CivohZDokYnlnJ8gPCBmdXlvdWRvXCA7CivkuIvlnLAgPCBzaGl0YWppXCA7CivlopfpgLIgPCB6b3VzaGluXCA7CivpnaLnlpQgPCBtZW5jaG91XCA7CivpoILmiLQgPCBjaG91ZGFpXCA7Civoq5bnqbYgPCByb25reXV1XCA7CivmlrDnqI4gPCBzaGluemVpXCA7CivmtbfosZrluqcgPCBpcnVrYXphXCA7CivkuIvlm7MgPCBzaGl0YXp1XCA7Civoh6rooZvpmoogPCBqaWVpdGFpXCA7CivmlLnooYwgPCBrYWlneW91XCA7Civoqp7ohIggPCBnb215YWt1XCA7CivnuYrntq3ntKAgPCBzZW4nJ2lzb1wgOwor5LiJ5Zu9IDwgc2FuZ29rdVwgOwor5Lih5ZCNIDwgcnlvdW1laVwgOwor6ZqP6LqrIDwgenVpc2hpblwgOwor54Sh6ZuRIDwgbXV6YXRzdVwgOwor56e76KGM5oCnIDwgaWtvdXNlaVwgOwor5Lit5YmNIDwgY2h1dXplblwgOwor6Kaq6bieIDwgc2hpbnJhblwgOwor6Zu76ISzIDwgZGVuJydub3VcIDsKK+a5r+a5r+WphiA8IHl1dGFucG9cIDsKK+S4reWIhiA8IGNodXVidW5cIDsKK+e1tumggiA8IHpldGNob3VcIDsKK+mgkeW8tyA8IGdhbmt5b3VcIDsKK+e5i+e4myA8IGtlaWJha3VcIDsKK+WkquezuCA8IGZ1dG9pdG9cIDsKK+S6pOWwvuacnyA8IGtvdWJpa2lcIDsKK+Wni+alrSA8IHNoaWd5b3VcIDsKK+S4gOWboyA8IGljaGlkYW5cIDsKK+aXqeeGnyA8IHNvdWp1a3VcIDsKK+iqh+iJsiA8IGtvc2hva3VcIDsKK+iol+mAgSA8IHRha3Vzb3VcIDsKK+mbjOiYgiA8IG1lc2hpYmVcIDsKK+mghuW/nCA8IGp1bicnbm91XCA7CivpmbjpgIEgPCByaWt1c291XCA7CivmnIjkuosgPCBnZXRzdWppXCA7Civopqrps6UgPCBveWFkb3JpXCA7CivnibnmrrUgPCB0b2t1ZGFuXCA7CivkuKHliY0gPCByeW91bWFlXCA7CivlpKfnspIgPCBvb3RzdWJ1XCA7CivoqJPov6ogPCBrdW50ZWtpXCA7Civpmbbno4HlmaggPCB0b3VqaWtpXCA7CivnibnmroogPCB0b2t1c2h1XCA7CivlooPpgYcgPCBreW91Z3V1XCA7CivoqabolqwgPCBzaGl5YWt1XCA7Civph43ppqzloLQgPCBvbW9iYWJhXCA7CivoqZDooZMgPCBzYWp1dHN1XCA7CivkuKHliIYgPCByeW91YnVuXCA7CivmrbPmmYLoqJggPCBzYWlqaWtpXCA7CivpmL/lpJrnpo8gPCBvdGFmdWt1XCA7CivkuI3lkIkgPCBmdWtpdHN1XCA7CivkuIrlkYogPCBqb3Vrb2t1XCA7CivlvqHnr4Dku4sgPCBvc2Vra2FpXCA7Civpmbjou40gPCByaWt1Z3VuXCA7Civkupzpurvku4HmsrkgPCBhbWFuaXl1XCA7CivmlrDnm6QgPCBzaGluYmFuXCA7Civpn7vlvosgPCBpbnJpdHN1XCA7CivmmrTlnKcgPCBib3VhdHN1XCA7CivoqLHoq74gPCBreW9kYWt1XCA7CivniIbnoJUgPCBiYWt1c2FpXCA7CivkuKHlg48gPCByeW91em91XCA7Civni4LmhYsgPCBreW91dGFpXCA7Civlqb/lhaUgPCBtdWtvaXJpXCA7CivoqLPoqakgPCB5YWt1c2hpXCA7Civpm6LohLEgPCByaWRhdHN1XCA7CivmmIfmrrUgPCBzaG91ZGFuXCA7CivniafmsJEgPCBib2t1bWluXCA7CivlpKnnqpMgPCB0ZW5tYWRvXCA7CivkuIDlkb0gPCBpY2hpbWVpXCA7CivmlZnogrIgPCBreW91aWt1XCA7CivkuIDlkbMgPCBoaXRvYWppXCA7CivlpLHnpoEgPCBzaGlra2luXCA7Civnt4/oqZUgPCBzb3VoeW91XCA7Civlppnms5UgPCBteW91aG91XCA7CivopqrpqqggPCBveWFib25lXCA7Civmm7jkuK0gPCBzaG9jaHV1XCA7CivkuIfljZogPCBiYW5wYWt1XCA7CivnlarlsI/lsYsgPCBiYW5nb3lhXCA7Civpn7PlvosgPCBvbnJpdHN1XCA7CivkuIvliqMgPCBnZXJldHN1XCA7CivmhJvniqzlrrYgPCBhaWtlbmthXCA7CivkuInliqkgPCBzYW5zdWtlXCA7CivkuKHkvr8gPCByeW91YmVuXCA7CivogL3nvo7mtL4gPCB0YW5iaWhhXCA7CivmmKXmnKwgPCBzaHVucG9uXCA7CivkuIPljYEgPCBuYW5hanV1XCA7Civopr/pnaIgPCB0ZWtpbWVuXCA7CivkuIflipsgPCBtYW5yaWtpXCA7CivkuIHljYogPCBjaG91aGFuXCA7CivlpKfnpo8gPCBkYWlmdWt1XCA7CivlpKnnpZAgPCB0ZW4nJ3l1dVwgOwor5pio5pmpIDwgc2FrdWJhblwgOwor5L+d6IKy5omAIDwgaG9pa3Vqb1wgOwor5pmp5bm0IDwgYmFuJyduZW5cIDsKK+eFp+impyA8IHNob3VyYW5cIDsKK+e3iuimgSA8IGtpbicneW91XCA7Civlpqjmpa0gPCBib3VneW91XCA7CivkuKHkurogPCByeW91bmluXCA7CivoprPpn7MgPCBrYW4nJ25vblwgOwor5pmC5oqYIDwgdG9raW9yaVwgOwor6YGK6Zui5Z+6IDwgeXV1cmlraVwgOwor5pKw6YyyIDwgc2Vucm9rdVwgOwor5LqS5Yqp5LyaIDwgZ29qb2thaVwgOwor5pS56ImvIDwga2FpcnlvdVwgOwor5pa954mpIDwgc2Vtb3RzdVwgOwor5aWu5r+AIDwgZnVuZ2VraVwgOwor5Lih5LiJIDwgcnlvdXNhblwgOwor6Zu7566XIDwgZGVuc29yb1wgOwor57WQ6ZyyIDwga2V0c3Vyb1wgOwor5pWZ57e0IDwga3lvdXJlblwgOwor5LiK5YG0IDwgdXdhZ2F3YVwgOwor5aem5oKqIDwga2FuJydha3VcIDsKK+ijnOWKqee3miA8IGhvam9zZW5cIDsKK+inkumMkCA8IGtha3VzdWlcIDsKK+e1kOmbhiA8IGtlc3NodXVcIDsKK+S4i+WApCA8IHNoaXRhbmVcIDsKK+Wls+a5ryA8IG9uJyduYXl1XCA7CivkuIDlhYMgPCBpY2hpZ2VuXCA7CivnvoXliJcgPCByYXJldHN1XCA7Civmmpblm70gPCBkYW5rb2t1XCA7Civkuovli5nmiYAgPCBqaW11c2hvXCA7CivpmbPorJ0gPCBjaGluc2hhXCA7CivkuIDlhIQgPCBpY2hpb2t1XCA7CivoqJPoqq0gPCBrdW5kb2t1XCA7CivniJvnhp8gPCByYW5qdWt1XCA7CivmmI7mnJ0gPCBtaW5jaG91XCA7CivoqJfoqIAgPCB0YWt1Z2VuXCA7CivpoJjln58gPCByeW91aWtpXCA7CivoqIDosqwgPCBnZW5zZWtpXCA7Civkv53orbfph5EgPCBob2dva2luXCA7CivlpKrnmb0gPCB0YWloYWt1XCA7Civnibnml6ggPCB0b2t1c2hpXCA7CivlpKnnmocgPCB0ZW4nJ25vdVwgOwor5pWw56eSIDwgc3V1YnlvdVwgOwor5pWj562WIDwgc2Fuc2FrdVwgOwor5LiH5L2cIDwgbWFuc2FrdVwgOwor5piO5pmwIDwgbWVpc2VraVwgOwor5pmp5a2mIDwgYmFuZ2FrdVwgOwor5piO5pmpIDwgbXlvdWJhblwgOwor5LiA5YCNIDwgaWNoaWJhaVwgOwor57WC6Zu7IDwgc2h1dWRlblwgOwor5pel5qynIDwgbmljaGlvdVwgOwor5piO5pifIDwgbXlvdWpvdVwgOwor5LiJ5Lq6IDwgc2FuJyduaW5cIDsKK+e4puesmyA8IHRhdGVidWVcIDsKK+mbhue+pCA8IHNodXVndW5cIDsKK+S4h+S6uiA8IG1hbicnbmluXCA7CivlpKfnl4UgPCB0YWlieW91XCA7Civoj5PlrZDlmaggPCBrYXNoaWtpXCA7CivpoK3lj5YgPCB0b3Vkb3JpXCA7Civpm6jnrKAgPCBhbWFnYXNhXCA7CivnuKbnqbQgPCB0YXRlYW5hXCA7CivkuIDku7sgPCBpY2hpbmluXCA7CivlpKfnlLcgPCBvb290b2tvXCA7CivnvbDliYcgPCBiYXNzb2t1XCA7CivpnIfnm6ogPCBzaGludG91XCA7CivpnIrnmoQgPCByZWl0ZWtpXCA7CivmhJvlprvlrrYgPCBhaXNhaWthXCA7CivlpJbnm7ggPCBnYWlzaG91XCA7CivlpJrnmbogPCB0YWhhdHN1XCA7Civpm6jnqbogPCBhbWF6b3JhXCA7CivnhLboq74gPCB6ZW5kYWt1XCA7Civoqa7ntKIgPCBzZW5zYWt1XCA7CivmlaPnpaggPCBzYW5weW91XCA7CivppIrniLbmr40gPCB5b3VmdWJvXCA7Civnt7Tnv5IgPCByZW5zaHV1XCA7CivoqZXogIUgPCBoeW91c2hhXCA7Civnhp/nt7QgPCBqdWt1cmVuXCA7CivlpJbnmoQgPCBnYWl0ZWtpXCA7Civpmpzms6Xng4/os4ogPCBhb3JpaWthXCA7Civni6zlloQgPCBkb2t1emVuXCA7CivlpI/nnYAgPCBuYXRzdWdpXCA7CivlpKnnkIMgPCB0ZW5reXV1XCA7Civotbfpm7vmqZ8gPCBraWRlbmtpXCA7CivlprvmiLggPCB0c3VtYWRvXCA7CivkuozmrbvlvowgPCBuaXNoaWdvXCA7CivmlpHnjKsgPCBoYW5teW91XCA7CivmmYvlsbEgPCBzaGluemFuXCA7Civml4vmr5sgPCB0c3VtdWppXCA7CivloLHphawgPCBob3VzaHV1XCA7CivokYnniaHkuLkgPCBoYWJvdGFuXCA7Civlt7LnhLblvaIgPCBpemVua2VpXCA7Civng4jpnIcgPCByZXNzaGluXCA7CivmmKXmg4UgPCBzaHVuam91XCA7Civnt6znvoogPCBtZW4nJ3lvdVwgOwor57if56S8IDwgam9rdXJlaVwgOwor5aSn542EIDwgdGFpZ29rdVwgOwor54uC5aWUIDwga3lvdWhvblwgOwor5aKo6ImyIDwgc3VtaWlyb1wgOwor57eP6IqxIDwgc291YmFuYVwgOwor5pWm552mIDwgdG9uYm9rdVwgOwor5aSn6KaP5qihIDwgZGFpa2lib1wgOwor54us5ZCfIDwgZG9rdWdpblwgOwor5YW35L2T5YyWIDwgZ3V0YWlrYVwgOwor6KaG6Z2iIDwgZnVrdW1lblwgOwor57mU54mpIDwgb3JpbW9ub1wgOwor5L+d5a6J5a6YIDwgaG9hbmthblwgOwor5pen5p2lIDwga3l1dXJhaVwgOwor5pen5p2RIDwga3l1dXNvblwgOwor6YeO542j5rS+IDwgeWFqdXVoYVwgOwor54us5Y2gIDwgZG9rdXNlblwgOwor6Zu75L2N5beuIDwgZGVuJydpc2FcIDsKK+aXpeacnSA8IG5pdGNob3VcIDsKK+WmguaciCA8IG5pZ2F0c3VcIDsKK+WkseeCuSA8IHNoaXR0ZW5cIDsKK+mbkeepgCA8IHpha2tva3VcIDsKK+iln+mrqiA8IGVyaWdhbWlcIDsKK+imqumHjCA8IG95YXphdG9cIDsKK+eFp+iHqCA8IHNob3VyaW5cIDsKK+aXqeaYpSA8IHNvdXNodW5cIDsKK+aYqOW5tCA8IHNha3VuZW5cIDsKK+WkqeeEtiA8IHRlbicnbmVuXCA7CivlpaXmp5ggPCBva3VzYW1hXCA7Civml6XmmYIgPCBuaWNoaWppXCA7Civnt5HogqUgPCByeW9rdWhpXCA7CivpnZ7lr77lv5wgPCBoaXRhaW91XCA7Civok5bpurvlrZAgPCBoaW1hc2hpXCA7Civoo7jkvZPnlLsgPCByYXRhaWdhXCA7CivpoJjlhoUgPCByeW91bmFpXCA7Civkuovli5nlrpggPCBqaW11a2FuXCA7Civpm7vnkIMgPCBkZW5reXV1XCA7CivniYfmlrkgPCBrYXRhaG91XCA7CivoqLPogIUgPCB5YWt1c2hhXCA7CivnibnlvoUgPCB0b2t1dGFpXCA7CivotbfoqLTnirYgPCBraXNvam91XCA7CivopZ/pppYgPCBlcmlrdWJpXCA7CivlparmoLwgPCBkYWtrYWt1XCA7Civph47mmq7nlKggPCB5YWJveW91XCA7CivmlbXnirYgPCB0ZWtpam91XCA7CivmkoPpgIAgPCBnZWtpdGFpXCA7CivnhKHnga/ngasgPCBtdXRvdWthXCA7Civpm6PnmZYgPCBuYW5rdXNlXCA7CivmmKXltZAgPCBzaHVucmFuXCA7CivopbLpm7cgPCBzaHV1cmFpXCA7CivlppnmiYAgPCBteW91c2hvXCA7CivmmI7lvrMgPCBtZWl0b2t1XCA7Civpm6Pnl4cgPCBuYW5zaG91XCA7Civpm6Pnl4UgPCBuYW5ieW91XCA7CivnhKHooYAgPCBtdWtldHN1XCA7CivnhKHoqJjlkI0gPCBtdWtpbWVpXCA7CivmmJTlubQgPCBzZWtpbmVuXCA7CivngpLpo68gPCBjaGFhaGFuXCA7CivoqpjniIYgPCB5dXViYWt1XCA7CivlpJbngrogPCBnYWl0YW1lXCA7CivpnIfngb0gPCBzaGluc2FpXCA7CivmmKXlr5IgPCBzaHVua2FuXCA7CivniIbmrbsgPCBiYWt1c2hpXCA7Civpg73orbDpgbggPCB0b2dpc2VuXCA7CivntrLohpwgPCBtb3VtYWt1XCA7Civnhp/nn6UgPCBqdWt1Y2hpXCA7CivmmI7lubQgPCBteW91bmVuXCA7CivlpKnmuJsgPCB0ZW5iaWtpXCA7Civkv53ogrLlnJIgPCBob2lrdWVuXCA7Civlp4nlqb8gPCBhbmVtdWtvXCA7CivntYLou4ogPCBzaHV1c2hhXCA7Civnsr7puqYgPCBzZWliYWt1XCA7Civnhp/nnaEgPCBqdWt1c3VpXCA7CivnuKvniakgPCBudWltb25vXCA7Civnt4rnuJsgPCBraW5iYWt1XCA7Civnhp/nnKAgPCBqdWt1bWluXCA7Civkv53ogrLlmaggPCBob2lrdWtpXCA7Civloqjns7ggPCBzdW1paXRvXCA7CivpmbDohrMgPCBrYWdlemVuXCA7CivoqannmoQgPCBzaGl0ZWtpXCA7CivmmJ/lraYgPCBzZWlnYWt1XCA7CivmhJvlpb3lrrYgPCBhaWtvdWthXCA7CivpnZLmmKUgPCBzZWlzaHVuXCA7CivmmofkurogPCBoaW1hamluXCA7Civpn7PlipsgPCBvbnJ5b2t1XCA7CivngrrpioAgPCB0YW1lZ2luXCA7CivoqJPogrIgPCBrdW4nJ2lrdVwgOwor5aWl5pa5IDwgb2t1Z2F0YVwgOwor54up5Lq6IDwga2FyeXVkb1wgOwor57Sv6YCyIDwgcnVpc2hpblwgOwor54S86IqLIDwgeWFraWltb1wgOwor5aeU5Lu754q2IDwgaW5pbmpvdVwgOwor6Zmq6IejIDwgYmFpc2hpblwgOwor54mn5birIDwgYm9rdXNoaVwgOwor5b6h5oqr6Zyy55uuIDwgb2hpcm9tZVwgOwor5paw5qGIIDwgc2hpbicnYW5cIDsKK+majue0miA8IGthaWt5dXVcIDsKK+eJueWumiA8IHRva3V0ZWlcIDsKK+eUqOWZqOeUuyA8IHlvdWtpZ2FcIDsKK+aYqOWklSA8IHNha3V5dXVcIDsKK+mau+ecvCA8IHNla2lnYW5cIDsKK+S/nemkiuaJgCA8IGhveW91am9cIDsKK+WutuW6reenkSA8IGthdGVpa2FcIDsKK+Wil+e1piA8IHpvdWt5dXVcIDsKK+S4jeWQjeiqiSA8IGZ1bWVpeW9cIDsKK+aXp+aCqiA8IGt5dXVha3VcIDsKK+aVsOa7tCA8IHN1dXRla2lcIDsKK+e2vue1uSA8IGF5YWdpbnVcIDsKK+e0oumBkyA8IHNha3Vkb3VcIDsKK+e1kOiqniA8IGtldHN1Z29cIDsKK+Wls+aJiyA8IG9uJyduYWRlXCA7CivnhrHni4IgPCBuZWtreW91XCA7CivlpbPmiL8gPCBueW91Ym91XCA7CivlpJbmtbcgPCBzb3RvdW1pXCA7CivlpKfmrLIgPCB0YWl5b2t1XCA7CivntZDoqJcgPCBrZXR0YWt1XCA7CivlpJbms4ogPCBnYWloYWt1XCA7CivopobovKogPCBmdWt1cmluXCA7CivmlbTmtYEgPCBzZWlyeXV1XCA7CivpoILkuIogPCBjaG91am91XCA7CivkupTovKrml5cgPCBnb3JpbmtpXCA7CivnhrHnh5cgPCBhdHN1a2FuXCA7Civml6XlvZMgPCBoaWF0YXJpXCA7Civns6Dpm6ggPCBudWthYW1lXCA7Civml6flvIogPCBreXV1aGVpXCA7CivnibnlpKcgPCB0b2t1ZGFpXCA7CivopqroqLEgPCBveWFtb3RvXCA7CivmmKXlnYogPCBoYXJ1Ym91XCA7CivkvZzmpa3ooaMgPCBzYWd5b3VpXCA7CivoqavnirYgPCB3YWJpam91XCA7Civpm7vmtYEgPCBkZW5yeXV1XCA7CivmnKjmiLjpiq0gPCBraWRvc2VuXCA7Civnibnlo7IgPCB0b2t1YmFpXCA7CivogLPkuIvohbogPCBqaWthc2VuXCA7CivnhKHoibIgPCBtdXNob2t1XCA7Civoq5bmlbUgPCByb250ZWtpXCA7Civlrrbluq3nnYAgPCBrYXRlaWdpXCA7Civpm4DnkIMgPCBqYW5reXV1XCA7Civmlofmp5ggPCBtb24nJ3lvdVwgOwor5aSn5qWtIDwgdGFpZ3lvdVwgOwor5peF5omAIDwgdGFiaXNob1wgOwor57O46Yu4IDwgaXRvbm9rb1wgOwor5aSW6Zmw6YOoIDwgZ2FpaW5idVwgOwor54m55aCxIDwgdG9rdWhvdVwgOwor5paH5qW9IDwgYnVucmFrdVwgOwor54Sh6IWwIDwgbXVnb3NoaVwgOwor6Z2i5b2xIDwgb21va2FnZVwgOwor54WZ56qBIDwgZW50b3RzdVwgOwor5aKT56m0IDwgYm9rZXRzdVwgOwor5ZKM6I+T5a2QIDwgd2FnYXNoaVwgOwor6Kq/5pu4IDwgY2hvdXNob1wgOwor6Z2p5bivIDwga2F3YW9iaVwgOwor5peF5oSBIDwgcnlvc2h1dVwgOwor6Ieq5Zyo55S7IDwgaml6YWlnYVwgOwor6Kej6ISxIDwgZ2VkYXRzdVwgOwor5pi85YmNIDwgaGlydW1hZVwgOwor57aa57eoIDwgem9rdWhlblwgOwor6ICV6YGL5qmfIDwga291dW5raVwgOwor54ax5ryUIDwgbmV0c3VlblwgOwor6Zuq5rSeIDwgYm9uYm9yaVwgOwor57eP552jIDwgc291dG9rdVwgOwor5LiA5Zue5b+MIDwgaWtrYWlraVwgOwor6ZaT6ZqZIDwga2FuZ2VraVwgOwor5LiN5Y+v6KejIDwgZnVrYWthaVwgOwor6Z205bGLIDwga3V0c3V5YVwgOwor5paO5pyNIDwgc2FpZnVrdVwgOwor5pen5bGFIDwga3l1dWt5b1wgOwor5LiN5Y+v6KaWIDwgZnVrYXNoaVwgOwor5aSn5pyoIDwgdGFpYm9rdVwgOwor5Z+O6YOtIDwgam91a2FrdVwgOwor6Zm456iyIDwgcmlrdXRvdVwgOwor57eP55CG5bqcIDwgc291cmlmdVwgOwor5aSx5pWsIDwgc2hpa2tlaVwgOwor6ZaL6ZmzIDwga2FpY2hpblwgOwor5aSx5pWXIDwgc2hpcHBhaVwgOwor5aWH5oqcIDwga2liYXRzdVwgOwor5LqM5YiG5pyoIDwgbmlidW5naVwgOwor5aSx5pS/IDwgc2hpc3NlaVwgOwor6KiO56m2IDwgdG91a3l1dVwgOwor6ZyK5p+pIDwgcmVpa3l1dVwgOwor6Kqt5pysIDwgZG9rdWhvblwgOwor6Ziy6IetIDwgYm91c2h1dVwgOwor6Kqt5pu4IDwgZG9rdXNob1wgOwor54qv5Lq6IDwgaGFuJyduaW5cIDsKK+WlpeW6rSA8IG9rdW5pd2FcIDsKK+WmiuWooCA8IG5pbnNoaW5cIDsKK+WlpeW6lSA8IG9rdXpva29cIDsKK+eJp+WcsCA8IGJva3VjaGlcIDsKK+W6g+i+nuiLkSA8IGtvdWppZW5cIDsKK+e3qOeJqSA8IGFtaW1vbm9cIDsKK+WkqeaVtSA8IHRlbnRla2lcIDsKK+mciuacqCA8IHJlaWJva3VcIDsKK+WknOabsiA8IHlha3lva3VcIDsKK+e3j+eUuyA8IHNvdWtha3VcIDsKK+WkmuaVsOa0viA8IHRhc3V1aGFcIDsKK+mZo+esoCA8IGppbmdhc2FcIDsKK+mahuebmyA8IHJ5dXVzZWlcIDsKK+ipleeCuSA8IGh5b3V0ZW5cIDsKK+S/neitt+iAhSA8IGhvZ29zaGFcIDsKK+WknOmWk+mDqCA8IHlha2FuYnVcIDsKK+aWh+aVmSA8IGJ1bmt5b3VcIDsKK+eVmeWuiOmbuyA8IHJ1c3VkZW5cIDsKK+WkieaigyA8IGhlbnRla29cIDsKK+exs+m6piA8IGJlaWJha3VcIDsKK+e0sOieuiA8IGtpc2hhZ29cIDsKK+eGseawlyA8IG5ldHN1a2VcIDsKK+aYqOWGrCA8IHNha3V0b3VcIDsKK+aYpeWIhiA8IHNodW5idW5cIDsKK+mVt+mbqCA8IG5hZ2FhbWVcIDsKK+aXp+WllyA8IGt5dXV0b3VcIDsKK+iqnuacqyA8IGdvbWF0c3VcIDsKK+ezp+mBkyA8IHJ5b3Vkb3VcIDsKK+aOg+mZpOapnyA8IHNvdWppa2lcIDsKK+iln+i2syA8IGVyaWFzaGlcIDsKK+isueWRiiA8IGtpbmtva3VcIDsKK+S6i+WLmeS8miA8IGppbXVrYWlcIDsKK+aWreW/tSA8IGRhbicnbmVuXCA7Civml6XlpJwgPCBuaWNoaXlhXCA7Civml6XlpJUgPCBuaXNzZWtpXCA7CivmmKXlhYkgPCBzaHVua291XCA7CivmlL7mtYEgPCBob3VyeXV1XCA7CivpnIfml6YgPCBzaGludGFuXCA7CivlpaXlsbEgPCBva3V5YW1hXCA7CivpnZnlr4IgPCBzZWlqYWt1XCA7CivkuovliY3lvowgPCBqaXplbmdvXCA7Civoj6nmj5DmqLkgPCBib2RhaWp1XCA7CivngavpiaIgPCBoaWJhY2hpXCA7CivntbbnuIEgPCB6ZXRzdWVuXCA7CivlpJXmlrkgPCB5dXVnYXRhXCA7Civnspfpo58gPCBzb3Nob2t1XCA7Civosp3ni6zmpb0gPCBiYWlnb21hXCA7CivlooPnm64gPCBzYWthaW1lXCA7CivnhKHpmLLlgpkgPCBtdWJvdWJpXCA7CivkuI3mgJ3orbAgPCBmdXNoaWdpXCA7Civml4XlrqIgPCByeW9rYWt1XCA7CivkuI3nqY/lvZMgPCBmdW9udG91XCA7CivmmK3ku6MgPCBzaG91ZGFpXCA7CivnhKHnrYYgPCBtdWhpdHN1XCA7CivlpLHmhYsgPCBzaGl0dGFpXCA7CivntZDohbggPCBrZXRjaG91XCA7CivnibnlhbggPCB0b2t1dGVuXCA7Civlj6/loZHmnZAgPCBrYXNvemFpXCA7CivlpLHmhI8gPCBzaGl0c3VpXCA7CivniIblvL4gPCBiYWt1ZGFuXCA7CivnibnlhY0gPCB0b2t1bWVuXCA7CivmlK/mtYEgPCBzaGlyeXV1XCA7Civmj5rpmbggPCB5b3VyaWt1XCA7CivopqroiLkgPCBveWFidW5lXCA7CivpmbjnlKMgPCByaWt1c2FuXCA7CivpmbjnlJ8gPCByaWt1c2VpXCA7CivpnaLlo4EgPCBtZW5wZWtpXCA7CivmjqLps6UgPCB0YW5jaG91XCA7CivntIToqIAgPCB5YWt1Z2VuXCA7CivmorPntr/mqZ8gPCBzb21lbmtpXCA7Civnspfpm5EgPCBzb3phdHN1XCA7CivnhKHmiYvpoIYgPCBtdXRlanVuXCA7Civpm7vmkoMgPCBkZW5nZWtpXCA7CivmlZnmm7ggPCBreW91c2hvXCA7CivplpPov5EgPCBtYWRqaWthXCA7CivmlrDlsYUgPCBzaGlua3lvXCA7CivntLroibIgPCBrb24nJ2lyb1wgOwor57aZ55uuIDwgdHN1Z2ltZVwgOwor6Zu35pKDIDwgcmFpZ2VraVwgOwor5bC+54q26IqxIDwgYmlqb3VrYVwgOwor5aG+55SfIDwganVrdXNlaVwgOwor6Kq/5bymIDwgY2hvdWdlblwgOwor54eD5paZIDwgbmVucnlvdVwgOwor6Zqg5ruFIDwgaW5tZXRzdVwgOwor5aSn5oGvIDwgdGFpc29rdVwgOwor6ZuG5qipIDwgc2h1dWtlblwgOwor5L6/5Yip5bGLIDwgYmVucml5YVwgOwor6ZaL6YCaIDwga2FpdHN1dVwgOwor6Zmj55ebIDwgamludHN1dVwgOwor5aSW5oiaIDwgZ2Fpc2VraVwgOwor57ay54yfIDwgYW1pcnlvdVwgOwor5pW15omLIDwgdGVraXNodVwgOwor5aSn5b6zIDwgZGFpdG9rdVwgOwor6Zui5pelIDwgcmluaWNoaVwgOwor57K+6YCyIDwgc2hvdWppblwgOwor5LqI55+l5aSiIDwgeW9jaGltdVwgOwor57K+6YCaIDwgc2VpdHN1dVwgOwor54WJ542EIDwgcmVuZ29rdVwgOwor5b6h56We57GkIDwgb21pa3VqaVwgOwor6Ku45Zu9IDwgc2hva29rdVwgOwor5pen5ZCNIDwga3l1dW1laVwgOwor5pig5YaZ5qmfIDwgZWlzaGFraVwgOwor6Zuj5pW1IDwgbmFudGVraVwgOwor5L+d6K2356iOIDwgaG9nb3plaVwgOwor54Cd6Z2SIDwgcmVraXNlaVwgOwor5Y+Z5LqL5paHIDwgam9qaWJ1blwgOwor5pen5Y+LIDwga3l1dXl1dVwgOwor57WQ57iBIDwga2VjaGllblwgOwor6KKe6b6NIDwga29ucnlvdVwgOwor5paw5amaIDwgc2hpbmtvblwgOwor6Iux5Lya6KmxIDwgZWlrYWl3YVwgOwor5paH5byxIDwgYnVuamFrdVwgOwor5pel5Y+OIDwgbmlzc2h1dVwgOwor5LiN5Y+v6IO9IDwgZnVrYW5vdVwgOwor6ZuR5pyoIDwgem91Ym9rdVwgOwor6Kqs5b6XIDwgc2V0dG9rdVwgOwor5pig55S76aSoIDwgZWlnYWthblwgOwor6Z2W5Zu9IDwgc2Vpa29rdVwgOwor5aSp5bmVIDwgdGVubWFrdVwgOwor6Zay6KanIDwgZXRzdXJhblwgOwor6Z2p5ZG9IDwga2FrdW1laVwgOwor57mU5biDIDwgc2hva3VmdVwgOwor5pel5Y2wIDwgbmljaGlpblwgOwor57mK5byxIDwgc2VuamFrdVwgOwor57Sw6IWVIDwgaG9zb3VkZVwgOwor6Zu25oimIDwgemVyb3NlblwgOwor6Kaa6ICFIDwga2FrdXNoYVwgOwor57WE57mUIDwgc29zaGlraVwgOwor6Kys5LydIDwgYnl1dWRlblwgOwor6KqY5oORIDwgeXV1d2FrdVwgOwor54mn5Lq6IDwgYm9rdWppblwgOwor6ZW36L66IDwgY2hvdWhlblwgOwor6ZyK5bufIDwgcmVpYnlvdVwgOwor6Kmu5pa5IDwgc2Vua2F0YVwgOwor54mH5YmNIDwga2F0YW1hZVwgOwor6aKo6Zuy5YWQIDwgZnV1dW5qaVwgOwor5Z6C6L+5IDwgc3VpamFrdVwgOwor5aKo5rGBIDwgYm9rdWp1dVwgOwor5pS55pqmIDwga2FpcmVraVwgOwor6Ziq56WeIDwgaGFuc2hpblwgOwor5pW15by+IDwgdGVraWRhblwgOwor6ZaA6LehIDwgbW9uemVraVwgOwor57KX6YeRIDwgYXJhZ2FuZVwgOwor6Kaq57GzIDwgc2hpbmJlaVwgOwor5pWP5o23IDwgYmluc2hvdVwgOwor54mI5YWDIDwgaGFubW90b1wgOwor5qWV5YaG5b2iIDwgZGFlbmtlaVwgOwor6KaL57+SIDwgbWluYXJhaVwgOwor5paw5ZywIDwgc2hpbmNoaVwgOwor5pS+5pOyIDwgaG91dGVraVwgOwor5ryU5aWP5a62IDwgZW5zb3VrYVwgOwor5pW35biDIDwgc2hpa2lmdVwgOwor54mb5Li8IDwgZ3l1dWRvblwgOwor6KeS55uGIDwga2FrdWJvblwgOwor6KmU5pu4IDwgc2hvdXNob1wgOwor5aSn5a2mIDwgZGFpZ2FrdVwgOwor5Y+v5aGR5oCnIDwga2Fzb3NlaVwgOwor5aOB5p2/IDwga2FiZWl0YVwgOwor6KKr6Zmk5pWwIDwgaGlqb3N1dVwgOwor5paH5a2mIDwgYnVuZ2FrdVwgOwor5pS75pKDIDwga291Z2VraVwgOwor5LqM5qyh5YWDIDwgbmlqaWdlblwgOwor57eR5qi5IDwgcnlva3VqdVwgOwor54iq5Y2wIDwgdHN1bWVpblwgOwor5omL5paH5bqrIDwgdGVidW5rb1wgOwor5pen5L6LIDwga3l1dXJlaVwgOwor57Oe6J2/IDwga3Vzb2JhZVwgOwor5LiA566H5omAIDwgaWtrYXNob1wgOwor5LqI5YKZ6ZqKIDwgeW9iaXRhaVwgOwor55aR5ZWP56ymIDwgZ2ltb25mdVwgOwor57mU5aerIDwgb3JpaGltZVwgOwor57SF6ImyIDwgYmVuaWlyb1wgOwor6Zm45rW3IDwgcmlrdWthaVwgOwor57WC56uvIDwgc2h1dXRhblwgOwor6KeS55WqIDwga2Fkb2JhblwgOwor5Zu65a6a6LK7IDwga290ZWloaVwgOwor57K+6KqtIDwgc2VpZG9rdVwgOwor57mU5aWzIDwgc2hva3Vqb1wgOwor5pel5LuYIDwgaGlkenVrZVwgOwor54ax5oSbIDwgbmV0c3VhaVwgOwor5aKD5ravIDwga3lvdWdhaVwgOwor6Zyc5aScIDwgc2hpbW95b1wgOwor5aWz5YKRIDwgam9rZXRzdVwgOwor5aSp5aWzIDwgdGVuJydueW9cIDsKK+inkueTtiA8IGtha3ViaW5cIDsKK+e0oee4viA8IGJvdXNla2lcIDsKK+aXp+S4uyA8IGt5dXVzaHVcIDsKK+Wkp+WlsyA8IG9vb24nJ25hXCA7CivmlbXlr74gPCB0ZWtpdGFpXCA7CivoqIjmuKwgPCBrZWlzb2t1XCA7CivmlrDlk4EgPCBzaGlucGluXCA7CivmmI7msrvluqcgPCBtZWlqaXphXCA7CivnkIbmg7PlrrYgPCByaXNvdWthXCA7CivnhKHnhrEgPCBtdW5ldHN1XCA7CivlnJ/lo4floLQgPCBkb3RhbmJhXCA7CivkuozmrKHkvJogPCBuaWppa2FpXCA7Civnt4/moZAgPCBzb3VnaXJpXCA7Civoq5blkYogPCByb25rb2t1XCA7CivnhrHlv4MgPCBuZXNzaGluXCA7CivlpYnlkYogPCBob3Vrb2t1XCA7CivlpLHlnLAgPCBzaGl0Y2hpXCA7Civnvqnli5nmhJ8gPCBnaW11a2FuXCA7CivmlbDlraYgPCBzdXVnYWt1XCA7CivmkoPnoJUgPCBnZWtpc2FpXCA7Civoqq3lo7IgPCB5b21pdXJpXCA7Civmjpjpkb8gPCBrdXNzYWt1XCA7Civpm7nlrrMgPCBoeW91Z2FpXCA7Civnt4/mn4QgPCBzb3VnYXJhXCA7CivpnIrlppkgPCByZWlteW91XCA7CivkuInlj4not68gPCBzYW5zYXJvXCA7CivlpInlrrkgPCBoZW4nJ3lvdVwgOwor5peF5YOnIDwgdGFiaXNvdVwgOwor54af5oWuIDwganVrdXJ5b1wgOwor54KO6ImyIDwgZW5zaG9rdVwgOwor6Kiz5pysIDwgeWFrdWhvblwgOwor5aKo5pu4IDwgYm9rdXNob1wgOwor57Sb57O+IDwgZnVua3l1dVwgOwor5o6o6YePIDwgc3VpcnlvdVwgOwor5pKe55CDIDwgZG91a3l1dVwgOwor5aSZ5aScIDwgc2h1a3V5YVwgOwor54ax5bqmIDwgbmV0c3Vkb1wgOwor6ZyH5aSuIDwgc2hpbicnb3VcIDsKK+azouW4g+iMtiA8IGhhYnVjaGFcIDsKK+e0r+epjSA8IHJ1aXNla2lcIDsKK+ijj+mHmCA8IHVyYWt1Z2lcIDsKK+ijj+mHkSA8IHVyYWdhbmVcIDsKK+aUquaLjCA8IGtha3VoYW5cIDsKK+mZuOapiyA8IHJpa2t5b3VcIDsKK+iovOaWhyA8IHNob3Vtb25cIDsKK+i1pOWVhOacqOmzpSA8IGFrYWdlcmFcIDsKK+S4jeaEm+aDsyA8IGJ1YWlzb3VcIDsKK+iouuaWrSA8IHNoaW5kYW5cIDsKK+Wkp+WbvSA8IHRhaWtva3VcIDsKK+iou+aWhyA8IGNodXVtb25cIDsKK+e0uueipyA8IGtvbnBla2lcIDsKK+S4gOeuh+W5tCA8IGlra2FuZW5cIDsKK+aUueaCmyA8IGthaXNodW5cIDsKK+e1tueEoSA8IHpldHN1bXVcIDsKK+WkluWjgSA8IGdhaWhla2lcIDsKK+Whnua6kCA8IHNva3VnZW5cIDsKK+Wkp+WYtCA8IG9vaGFzaGlcIDsKK+aWsOWFtSA8IHNoaW5wZWlcIDsKK+ios+aWhyA8IHlha3VidW5cIDsKK+S6iOWCmemHkSA8IHlvYmlraW5cIDsKK+aOm+mHkSA8IGtha2VraW5cIDsKK+aVl+WwhiA8IGhhaXNob3VcIDsKK+aOqOmAsiA8IHN1aXNoaW5cIDsKK+mbhOW/gyA8IHl1dXNoaW5cIDsKK+aVteWhgSA8IHRla2lydWlcIDsKK+e2suajmiA8IGFtaWRhbmFcIDsKK+mZuOajmiA8IHJpa3Vob3VcIDsKK+S4jeWPr+efpSA8IGZ1a2FjaGlcIDsKK+WbvemiqCA8IGtva3VmdXVcIDsKK+mahuabvyA8IHJ5dXV0YWlcIDsKK+e3muaPjyA8IHNlbmJ5b3VcIDsKK+iqv+WQiCA8IGNob3Vnb3VcIDsKK+iPqeaPkOWvuiA8IGJvZGFpamlcIDsKK+ehq+m7hOWxsSA8IGlvdXlhbWFcIDsKK+mZsOaltSA8IGlua3lva3VcIDsKK+Wkj+WgtCA8IG5hdHN1YmFcIDsKK+e0oOWboOaVsCA8IHNvaW5zdXVcIDsKK+ikh+ijvSA8IGZ1a3VzZWlcIDsKK+WkluWcpyA8IGdhaWF0c3VcIDsKK+S7j+iYreilvyA8IGZ1cmFuc3VcIDsKK+eGn+W5tCA8IGp1a3VuZW5cIDsKK+e1kOeQgyA8IGtla2t5dXVcIDsKK+WkluWbvSA8IGdhaWtva3VcIDsKK+aOpei+niA8IHNldHN1amlcIDsKK+S4jeWQiOeQhiA8IGZ1Z291cmlcIDsKK+eyvuiWhCA8IHNlaWhha3VcIDsKK+aOg+mZpOWppiA8IHNvdWppZnVcIDsKK+aNlemjnyA8IGhvc2hva3VcIDsKK+aVteWbvSA8IHRla2tva3VcIDsKK+mHjuaaruWkqSA8IHlhYm90ZW5cIDsKK+WkieWfnyA8IGhlbicnaWtpXCA7Civkv53orbflp5Tlk6EgPCBob2dvaWluXCA7Civpmb3mmqYgPCB5b3VyZWtpXCA7CivlrrblhbfnrYkgPCBrYWd1dG91XCA7CivlpKflkI0gPCBkYWlteW91XCA7CivolpTolofoibIgPCBiYXJhaXJvXCA7Civlm73pm7sgPCBrb2t1ZGVuXCA7CivlpKflj6MgPCBvb2d1Y2hpXCA7CivkuI3mhInlv6sgPCBmdXl1a2FpXCA7CivovrLmqZ/lhbcgPCBub3VraWd1XCA7Civlm73pm6MgPCBrb2t1bmFuXCA7CivovLjpgIHosrsgPCB5dXNvdWhpXCA7CivpvbIgPCBtdXNoaWJhXCA7Civpmb3mmKUgPCB5b3VzaHVuXCA7CivnnIvorbflqaYgPCBrYW5nb2Z1XCA7Civlm73pmpsgPCBrb2t1c2FpXCA7CivntIvnq6AgPCBtb25zaG91XCA7CivlnLDpgZMgPCBqaW1pY2hpXCA7CivopqrnjokgPCBveWFkYW1hXCA7CivlvqHnpZ7ngasgPCBnb2ppbmthXCA7CivmlYXlrp8gPCBrb2ppdHN1XCA7Civlm73pmLIgPCBrb2t1Ym91XCA7CivmlL7lsL8gPCBob3VueW91XCA7CivmlofljZogPCBidW5oYWt1XCA7Civkuojlgpnou40gPCB5b2JpZ3VuXCA7Civmk6/mlqUgPCBoaW5zZWtpXCA7CivnuK7lm7MgPCBzaHVrdXp1XCA7CivplpPohpwgPCBrYW5tYWt1XCA7CivlpKflipsgPCBkYWlyaWtpXCA7Civmjqjos54gPCBzdWlzaG91XCA7Civmv4Dpl5ggPCBnZWtpdG91XCA7CivlpJblkaggPCBnYWlzaHV1XCA7Civlj6Tmlofmm7ggPCBrb21vbmpvXCA7Civlm7Dpm6MgPCBrb24nJ25hblwgOwor57im5Z2RIDwgdGF0ZWtvdVwgOwor57Wm5rqQIDwga3l1dWdlblwgOwor6Zyy5LuPIDwgcm9mdXRzdVwgOwor6Ieq6KGb5qipIDwgamllaWtlblwgOwor6Kqh5ZGKIDwga2Fpa29rdVwgOwor5Zyw6Lu4IDwgY2hpamlrdVwgOwor5aSn5Ye2IDwgZGFpa3lvdVwgOwor6barIDwgdHN1Z3VtaVwgOwor6KaB55uuIDwgeW91bW9rdVwgOwor57WE54mIIDwga3VtaWhhblwgOwor57mU5YWDIDwgb3JpbW90b1wgOwor6KWf56ugIDwgZXJpc2hvdVwgOwor6bWkIDwgaWthcnVnYVwgOwor6Zub5aOHIDwgaGluYWRhblwgOwor6bWGIDwgY2hpZG9yaVwgOwor57SU55yfIDwganVuc2hpblwgOwor6Zq35bGeIDwgcmVpem9rdVwgOwor5pac5LqkIDwgaGFzdWthaVwgOwor57mB5YqHIDwgaGFuZ2VraVwgOwor54Wp5oKpIDwgYm9uJydub3VcIDsKK+WjsuWbvSA8IGJhaWtva3VcIDsKK+e0lOebiiA8IGp1bicnZWtpXCA7Civmlpnkuq0gPCByeW91dGVpXCA7Civnt57luLMgPCBkb25jaG91XCA7CivpsJggPCBtdXJvYWppXCA7CivmlbXli6IgPCB0ZWtpemVpXCA7CivooajpnaIgPCBoeW91bWVuXCA7CivplbfoiosgPCBuYWdhaW1vXCA7CivntJTnmb0gPCBqdW5wYWt1XCA7Civpr7MgPCBzdWtlc291XCA7CivpmLLmr5IgPCBib3Vkb2t1XCA7CivmlbDljLkgPCBzdXVoaWtpXCA7Civpm7vljZMgPCBkZW50YWt1XCA7CivntYLngrkgPCBzaHV1dGVuXCA7Civnt4rmgKUgPCBraW5reXV1XCA7CivmlbXliY0gPCB0ZWtpemVuXCA7CivlpJXlh6ogPCB5dXVuYWdpXCA7CivlkIjmsKPpgZMgPCBhaWtpZG91XCA7CivnuZrkubEgPCByeW91cmFuXCA7CivnuITloqggPCBqb3Vib2t1XCA7CivprJggPCBrYXRzdXJhXCA7Civopqrmva4gPCBveWFzaGlvXCA7CivngrnngavlmaggPCB0ZW5rYWtpXCA7Civoo5zooYAgPCBob2tldHN1XCA7CivoprPmuKwgPCBrYW5zb2t1XCA7Civnha7lubIgPCBuaWJvc2hpXCA7CivntrHmiYsgPCB0c3VuYWRlXCA7CivpmbjmiKYgPCByaWt1c2VuXCA7Civnvr3kuozph40gPCBoYWJ1dGFlXCA7Civpm4blobUgPCBzaHV1amluXCA7Civopo/mupbljJYgPCBraWp1bmthXCA7CivpmpTlubQgPCBrYWt1bmVuXCA7Civpq5jluqblt64gPCBrb3Vkb3NhXCA7CivnhKHmnK0gPCBtdXNhdHN1XCA7CivnhKHmnIggPCBtdWdldHN1XCA7CivnhrHllLEgPCBuZXNzaG91XCA7Civlr4Tku5jph5EgPCBraWZ1a2luXCA7CivmlonkuIAgPCBzZWlpdHN1XCA7Civngavlj6PmuZYgPCBrYWtvdWtvXCA7CivlopflvLcgPCB6b3VreW91XCA7CivpmbrmgqogPCBrZW4nJ2FrdVwgOwor6ZW36ICBIDwgY2hvdXJvdVwgOwor5pS/5rK75bGLIDwgc2Vpaml5YVwgOwor6KGM6aCtIDwgZ3lvdXRvdVwgOwor5YCL44CF5Lq6IDwga29rb2ppblwgOwor6Zqg5a+GIDwgb25taXRzdVwgOwor6ZyN5LmxIDwga2FrdXJhblwgOwor5Zu96YGTIDwga29rdWRvdVwgOwor57WQ5rC3IDwga2VwcHlvdVwgOwor6ZuG5ZujIDwgc2h1dWRhblwgOwor5pS/5rK75a62IDwgc2VpamlrYVwgOwor5Zu96YCjIDwga29rdXJlblwgOwor6YGL5Za26LK7IDwgdW4nJ2VpaGlcIDsKK+mZs+aDhSA8IGNoaW5qb3VcIDsKK+eBq+euuCA8IGhpYmFzaGlcIDsKK+idpuWkt+iPiiA8IGV6b2dpa3VcIDsKK+WjsuWNnCA8IGJhaWJva3VcIDsKK+aVl+WMlyA8IGhhaWJva3VcIDsKK+Wil+W5hSA8IHpvdWZ1a3VcIDsKK+S/neitt+aelyA8IGhvZ29yaW5cIDsKK+a9rumokiA8IHNoaW9zYWlcIDsKK+acqOaIuOeVqiA8IGtpZG9iYW5cIDsKK+e0oueEtiA8IHNha3V6ZW5cIDsKK+e2vuW4gyA8IGF5YW51bm9cIDsKK+eymOiGnCA8IG5lbm1ha3VcIDsKK+aRgueQhiA8IHNldHN1cmlcIDsKK+mbquWGpCA8IHNldHN1ZW5cIDsKK+WiqOWuiCA8IGJva3VzaHVcIDsKK+eyieiMtiA8IGtvbmFjaGFcIDsKK+inkuadkCA8IGtha3V6YWlcIDsKK+e1jOattCA8IGtlaXJla2lcIDsKK+mbouWIpSA8IHJpYmV0c3VcIDsKK+mXmOeJmyA8IHRvdWd5dXVcIDsKK+aRqea7hSA8IG1hbWV0c3VcIDsKK+Wbvei7jSA8IGtva3VndW5cIDsKK+a/q+intCA8IHJhbnNob3VcIDsKK+aVmeWFuCA8IGt5b3V0ZW5cIDsKK+WcsOihqCA8IGNoaWh5b3VcIDsKK+aOqOiWrCA8IHN1aXlha3VcIDsKK+mZs+W8gSA8IGNoaW5iZW5cIDsKK+eCrOeHtSA8IGtvdGF0c3VcIDsKK+ihjOmWkyA8IGd5b3VrYW5cIDsKK+mWi+eriyA8IGthaXJ5dXVcIDsKK+aSnuacqCA8IHNodW1va3VcIDsKK+a1heefpeaBtSA8IGFzYWRqaWVcIDsKK+mbkeWLmSA8IHphdHN1bXVcIDsKK+e0sOa1gSA8IHNhaXJ5dXVcIDsKK+mbhuWQiCA8IHNodXVnb3VcIDsKK+WcsOicgiA8IGppYmFjaGlcIDsKK+mdkuixjOixhiA8IGFvZW5kb3VcIDsKK+mZuuWzuyA8IGtlbnNodW5cIDsKK+ihl+mMsiA8IGdhaXJva3VcIDsKK+Wls+S4iOWkqyA8IGpvam91YnVcIDsKK+WGhuiomOWPtyA8IGVua2lnb3VcIDsKK+mbkeWJhyA8IHphc3Nva3VcIDsKK+ijheiWrCA8IHNvdXlha3VcIDsKK+WbveizkyA8IGtva3VoaW5cIDsKK+mZuOWyuCA8IHJpa3VnYW5cIDsKK+Whl+aKuSA8IHRvbWF0c3VcIDsKK+mZveWwhCA8IGhpemFzaGlcIDsKK+mWoueZvSA8IGthbnBha3VcIDsKK+eEpuaFriA8IHNob3VyeW9cIDsKK+S6nOWvkuW4ryA8IGFrYW50YWlcIDsKK+aMr+mItCA8IHNoaW5yZWlcIDsKK+mbkeWFtSA8IHpvdWh5b3VcIDsKK+mao+WbvSA8IHJpbmdva3VcIDsKK+mbgOWNkyA8IGphbnRha3VcIDsKK+mbquS4rSA8IHNldGNodXVcIDsKK+WiqOWgpCA8IGJva3V0ZWlcIDsKK+iol+WuoyA8IHRha3VzZW5cIDsKK+aQjeebiiA8IHNvbicnZWtpXCA7CivpmaPluZUgPCBqaW5tYWt1XCA7CivmsZ/miLjlt50gPCBlZG9nYXdhXCA7CivngbDnmr8gPCBoYWl6YXJhXCA7CivntZDmnZ8gPCBrZXNzb2t1XCA7CivngbDnmb0gPCBrYWloYWt1XCA7CivopqrmoKogPCBveWFrYWJ1XCA7CivlubzlhZDoqp4gPCB5b3VqaWdvXCA7CivpjrkgPCBrYXN1Z2FpXCA7Civlm73oq5YgPCBrb2t1cm9uXCA7Civnt5HlnJ8gPCByeW9rdWRvXCA7Civmv4Doq5YgPCBnZWtpcm9uXCA7Civmmpfmmpfoo6EgPCBhbicnYW5yaVwgOwor5LiN5rWE5aC0IDwgZnVqb3ViYVwgOwor6KaB5rGCIDwgeW91a3l1dVwgOwor6YupIDwga2lzc2FraVwgOwor54ax5LitIDwgbmV0Y2h1dVwgOwor5rmv5rK75aC0IDwgdG91amliYVwgOwor6KOP6IW5IDwgdXJhaGFyYVwgOwor6KmV5YikIDwgaHlvdWJhblwgOwor57SN5ra8IDwgbm91cnlvdVwgOwor5Zuz6KqsIDwgenVzZXRzdVwgOwor6ZaT55S3IDwgbWFvdG9rb1wgOwor5pG65pysIDwgc2hvdWhvblwgOwor6ISz5ZGz5ZmMIDwgbm91bWlzb1wgOwor6ZuR5LqLIDwgemF0c3VqaVwgOwor5a2Q55S76Z2iIDwga29nYW1lblwgOwor57W25oGvIDwgemVzc29rdVwgOwor6Zmj5a65IDwgamluJyd5b3VcIDsKK+mZuOWkpyA8IHJpa3VkYWlcIDsKK+ikpeeYoSA8IGpva3Vzb3VcIDsKK+eyl+etiyA8IGFyYXN1amlcIDsKK+mVt+efrSA8IGNob3V0YW5cIDsKK+imquaWuSA8IG95YWthdGFcIDsKK+WPr+imluWMliA8IGthc2hpa2FcIDsKK+ioreWWtiA8IHNldHN1ZWlcIDsKK+e1teW/gyA8IGVnb2tvcm9cIDsKK+aLnemgmCA8IGhhaXJ5b3VcIDsKK+e1tuW+jCA8IHpldHN1Z29cIDsKK+S4jeazqOaEjyA8IGZ1Y2h1dWlcIDsKK+eymOeooCA8IG5lbmNodXVcIDsKK+aSruW9sSA8IHNhdHN1ZWlcIDsKK+itt+ihm+iJpiA8IGdvZWlrYW5cIDsKK+WhqeWusyA8IHNoaW9nYWlcIDsKK+ijnOe2tCA8IGhvdGV0c3VcIDsKK+evpOi+siA8IHRva3Vub3VcIDsKK+aPrueZuiA8IGtpaGF0c3VcIDsKK+eDj+acqCA8IGtva3V0YW5cIDsKK+asoeaJk+iAhSA8IGppZGFzaGFcIDsKK+WghuacsSA8IHRzdWlzaHVcIDsKK+mZuOWcsCA8IHJpa3VjaGlcIDsKK+Wig+WfnyA8IGt5b3Vpa2lcIDsKK+aKq+mcsuWutCA8IGhpcm91ZW5cIDsKK+eFp+WQiCA8IHNob3Vnb3VcIDsKK+ipleS8nSA8IGh5b3VkZW5cIDsKK+iHquihm+WumCA8IGppZWlrYW5cIDsKK+Wei+eVqiA8IGthdGFiYW5cIDsKK+eEvOWjsiA8IHNodXVtYWlcIDsKK+eVmeWuiOeVqiA8IHJ1c3ViYW5cIDsKK+ikh+ecvCA8IGZ1a3VnYW5cIDsKK+S6nOmfs+mAnyA8IGFvbnNva3VcIDsKK+eEoeWuvyA8IG11c2h1a3VcIDsKK+inkuW4vSA8IGtha3Vib3VcIDsKK+mVt+eUtyA8IGNob3VuYW5cIDsKK+imquaMhyA8IG95YXl1YmlcIDsKK+inkuW4ryA8IGtha3VvYmlcIDsKK+eEoeWunyA8IG11aml0c3VcIDsKK+e0ouadoSA8IHNha3Vqb3VcIDsKK+e3j+WJhyA8IHNvdXNva3VcIDsKK+i5hCA8IGhpZHp1bWVcIDsKK+Wil+WPjiA8IHpvdXNodXVcIDsKK+e2vuWPliA8IGF5YXRvcmlcIDsKK+e2muWgsSA8IHpva3Vob3VcIDsKK+WgseW+syA8IGhvdXRva3VcIDsKK+aRqeaTpiA8IG1hc2F0c3VcIDsKK+WgseW+qSA8IGhvdWZ1a3VcIDsKK+W+oeazqOaEjyA8IGdvY2h1dWlcIDsKK+imi+aWmSA8IGtlbnJ5b3VcIDsKK+ihqOijhSA8IGh5b3Vzb3VcIDsKK+WbveiRrCA8IGtva3Vzb3VcIDsKK+ilv+aapiA8IHNlaXJla2lcIDsKK+exoOe1oSA8IHJvdXJha3VcIDsKK+WMu+enkeWtpiA8IGlrYWdha3VcIDsKK+eyl+eariA8IGFyYWthd2FcIDsKK+eCreafsSA8IHRhbmNodXVcIDsKK+ims+W/tSA8IGthbicnbmVuXCA7CivntJTmnLQgPCBqdW5ib2t1XCA7CivoqJPlkYogPCBrdW5rb2t1XCA7Civopb/ml6UgPCBuaXNoaWJpXCA7CivnsbPnqYAgPCBiZWlrb2t1XCA7CivnlbDmlrnmgKcgPCBpaG91c2VpXCA7Civmk4Hlo4EgPCB5b3VoZWtpXCA7CivoqK3lgpkgPCBzZXRzdWJpXCA7CivooYDosYYgPCBjaGltYW1lXCA7CivlnKfnuK4gPCBhc3NodWt1XCA7Civnt5LkvZwgPCBzaG9zYWt1XCA7CivnhKHpkZHmn7sgPCBtdWthbnNhXCA7CivntJrmlbAgPCBreXV1c3V1XCA7CivntIvmnI0gPCBtb25wdWt1XCA7Civoo5Xnpo8gPCB5dXVmdWt1XCA7CivmjpvnrpcgPCBrYWtlemFuXCA7CivntbXlp78gPCBlc3VnYXRhXCA7CivorKwgPCBheWFtYXJpXCA7CivlnLDnsY0gPCBjaGlzZWtpXCA7Civkuoznlarnm64gPCBuaWJhbm1lXCA7CivmjqLnqbYgPCB0YW5reXV1XCA7CivnspLnlYwgPCByeXV1a2FpXCA7CivnoazljJbmsrkgPCBrb3VrYXl1XCA7CivmkI3mtYEgPCBzb25yeXV1XCA7CivoqrwgPCB5b3NoaW1pXCA7CivmmKDnlLvnpa0gPCBlaWdhc2FpXCA7Civoqq4gPCB5YXNhc2hpXCA7CivmvIbpo58gPCBzaGlra3VpXCA7CivmmKDnlLvnpL4gPCBlaWdhc2hhXCA7Civngrnmj48gPCB0ZW5ieW91XCA7CivkuI3mraPopo8gPCBmdXNlaWtpXCA7CivojYrmo5jnt5ogPCBiYXJhc2VuXCA7Civmi5PpioAgPCB0YWt1Z2luXCA7Civntbblo4EgPCB6ZXBwZWtpXCA7CivmhbDpnIrnpa0gPCBpcmVpc2FpXCA7CivlrabmoKHljLsgPCBnYWtrb3VpXCA7CivpmbjlhbUgPCByaWt1aGVpXCA7CivntrHlhbcgPCB0c3VuYWd1XCA7CivnspfnjokgPCBhcmF0YW1hXCA7CivntrLlhYMgPCBhbWltb3RvXCA7CivoqIDlj4ogPCBnZW5reXV1XCA7Civph5HmloflrZcgPCBraW5tb2ppXCA7Civns7jmnqAgPCBpdG93YWt1XCA7CivpmaTljbQgPCBqb2t5YWt1XCA7CivmvKvpjLIgPCBtYW5yb2t1XCA7Civpmo/kuIAgPCB6dWlpY2hpXCA7Civns7jmnYkgPCBpdG9zdWdpXCA7CivngbDmrrsgPCBoYWlnYXJhXCA7CivmkYLmlL8gPCBzZXNzaG91XCA7CivopYUgPCBjaGloYXlhXCA7CivloanlkbMgPCBzaGlvYWppXCA7CivntZDlsL4gPCBrZXRzdWJpXCA7CivntITmlbAgPCB5YWt1c3V1XCA7CivpmLLlo4EgPCBib3VoZWtpXCA7CivlvqHms5XluqYgPCBnb2hhdHRvXCA7CivloYHlo4EgPCBydWloZWtpXCA7CivntZDlr6kgPCBrZXNzaGluXCA7Civmi5npgJ8gPCBzZXNzb2t1XCA7Civmkq7lnJ8gPCBzYXRzdWRvXCA7CivmsJfkv53ppIogPCBraWhveW91XCA7CivooI4gPCB1d2FiYW1pXCA7CivpiYTngavloLQgPCB0ZWtrYWJhXCA7Civli6Tli5nlk6EgPCBraW5tdWluXCA7Civop5LlnLAgPCBrYWRvY2hpXCA7CivntYzlraYgPCBrZWlnYWt1XCA7Civnsovni4IgPCBzdWlreW91XCA7Civoo4/nmb0gPCB1cmFqaXJvXCA7CivlobXlhaUgPCBnb21paXJlXCA7CivnlbDmmJ/kurogPCBpc2VpamluXCA7CivntLDluK8gPCBob3Nvb2JpXCA7CivonIYgPCBzaGlqaW1pXCA7CivnhKHlj6MgPCBtdWt1Y2hpXCA7Civln7flv7UgPCBzaHV1bmVuXCA7CivpmbjkuIogPCByaWt1am91XCA7CivmmKDnlLvnlYwgPCBlaWdha2FpXCA7CivmvKvpgYogPCBtYW4nJ3l1dVwgOwor57W25ZSxIDwgemVzc2hvdVwgOwor6JmxIDwgc2hpcmFtaVwgOwor5LqU55W/5YaFIDwgZ29raW5haVwgOwor5b6h56C0566XIDwgZ29oYXNhblwgOwor5Zyw55uuIDwgY2hpbW9rdVwgOwor5ZCm5a6a6KqeIDwgaGl0ZWlnb1wgOwor54Sh5YqbIDwgbXVyeW9rdVwgOwor6JW+IDwgdHN1Ym9taVwgOwor5oq96YG4IDwgY2h1dXNlblwgOwor57W25Y+rIDwgemVra3lvdVwgOwor6YGV5oay5oCnIDwgaWtlbnNlaVwgOwor5aGp5YyW6YqAIDwgZW5rYWdpblwgOwor5Zu957KLIDwga29rdXN1aVwgOwor6ZaJ5qWtIDwgaGVpZ3lvdVwgOwor57Gz54usIDwgYmVpZG9rdVwgOwor5oyv6IieIDwgZnVydW1haVwgOwor5L+d6K235Y+4IDwgaG9nb3NoaVwgOwor6ZW35q2MIDwgbmFnYXV0YVwgOwor57SN5b6XIDwgbmF0dG9rdVwgOwor5Zyf552AIDwgZG9jaGFrdVwgOwor5Zu9562JIDwga29rdXRvdVwgOwor5aCC5a6IIDwgZG91bW9yaVwgOwor5oud6KyBIDwgaGFpZXRzdVwgOwor5b6X5oSP5rCXIDwgdG9rdWlnZVwgOwor5pKk5Y+OIDwgdGVzc2h1dVwgOwor54Gv5piOIDwgdG91bXlvdVwgOwor5oud6KqtIDwgaGFpZG9rdVwgOwor562J6ZaRIDwgbmFvemFyaVwgOwor6Y+k6aqoIDwgcnVrb3RzdVwgOwor5omL57Sw5belIDwgdGV6YWlrdVwgOwor6IiO5Yip5aGpIDwgc2hhcmllblwgOwor5Zyo55WZIDwgemFpcnl1dVwgOwor5pCN5paZIDwgc29ucnlvdVwgOwor5Zyt55KnIDwga2VpaGVraVwgOwor5o+P5rOVIDwgYnlvdWhvdVwgOwor6Kaq6aas6bm/IDwgb3lhYmFrYVwgOwor6Iie6LiK5a62IDwgYnV0b3VrYVwgOwor5Zu956iOIDwga29rdXplaVwgOwor5aWH5b2i5YWQIDwga2lrZWlqaVwgOwor6ZaA5p+xIDwgbW9uY2h1dVwgOwor5Y2I5b6M5LitIDwgZ29nb2p1dVwgOwor6ImAIDwgaGFzaGlrZVwgOwor5Zuw56quIDwga29ua3l1dVwgOwor6KGo57SZIDwgaHlvdXNoaVwgOwor54OI5aWzIDwgcmV0c3Vqb1wgOwor6Kmt5byB5a62IDwga2liZW5rYVwgOwor6Kaq5ZaEIDwgc2hpbnplblwgOwor5ryr6KqtIDwgbWFuZG9rdVwgOwor6Zai5omAIDwgc2VraXNob1wgOwor57O45bqVIDwgaXRvem9rb1wgOwor5ryr6KmVIDwgbWFucHlvdVwgOwor6KaL5aKDIDwgbWlzYWthaVwgOwor6IGiIDwgc2hpa2F0b1wgOwor6IOD5rSX5rWEIDwgaXNlbmpvdVwgOwor5oqY6L68IDwgb3Jpa29taVwgOwor5LiN5ZCM5YyWIDwgZnVkb3VrYVwgOwor57+8IDwgdHN1YmFzYVwgOwor55Ww5pWZ5b6SIDwgaWt5b3V0b1wgOwor5o6I54i1IDwganVzaGFrdVwgOwor6Y+h6Z2iIDwga3lvdW1lblwgOwor5Zu6552AIDwga29jaGFrdVwgOwor5o6o5risIDwgc3Vpc29rdVwgOwor5Zu955uKIDwga29rdWVraVwgOwor5rmv5Yqg5ribIDwgeXVrYWdlblwgOwor57SE5a6aIDwgeWFrdWpvdVwgOwor6Z2e6Kqy56iOIDwgaGlrYXplaVwgOwor5ZKM5qW95ZmoIDwgd2FnYWtraVwgOwor57Wx5LiAIDwgdG91aXRzdVwgOwor6ZaL5ouTIDwga2FpdGFrdVwgOwor6KOc5q66IDwgaG9zYXRzdVwgOwor57O45bGRIDwgaXRva3V6dVwgOwor6YGV5rOV6ICFIDwgaWhvdXNoYVwgOwor5pKD5YmjIDwgZ2VraWtlblwgOwor5omB6aGNIDwgaGVuZ2FrdVwgOwor5ryU6KqsIDwgZW56ZXRzdVwgOwor5omA6aCYIDwgc2hvcnlvdVwgOwor56u56aasIDwgY2hpa3ViYVwgOwor5Zu955SjIDwga29rdXNhblwgOwor6KGA57iBIDwga2V0c3VlblwgOwor6KSH5pa5IDwgZnVrdWhvdVwgOwor57KX5pyrIDwgc29tYXRzdVwgOwor6Y6u6a2CIDwgY2hpbmdvblwgOwor6KSH5pWwIDwgZnVrdXN1dVwgOwor5pCN5b6XIDwgc29udG9rdVwgOwor5aCV5YqbIDwgZGFyeW9rdVwgOwor6Ly46YCB5qmfIDwgeXVzb3VraVwgOwor5LiO6YeO5YWaIDwgeW95YXRvdVwgOwor6KGA57OKIDwgY2hpbm9yaVwgOwor5byV54Gr54K5IDwgaW5rYXRlblwgOwor5ry46JC9IDwgemVucmFrdVwgOwor57KX5pa5IDwgYXJha2F0YVwgOwor57O45aerIDwgaXRvaGltZVwgOwor56+A576pIDwgc2V0c3VnaVwgOwor57695a2Q5p2/IDwgaGFnb2l0YVwgOwor562G6LmfIDwgaGlzc2VraVwgOwor6Z+z5rKZ5rGwIDwgb3Rvc2F0YVwgOwor56a+5pys56eRIDwga2Fob25rYVwgOwor5LiN5Y+v5YiGIDwgZnVrYWJ1blwgOwor57WC5YCkIDwgb3dhcmluZVwgOwor6KGA562LIDwgY2hpc3VqaVwgOwor5Z+O5aOBIDwgam91aGVraVwgOwor6byg5b6E6YOoIDwgc29rZWlidVwgOwor5Zyw5q67IDwgY2hpa2FrdVwgOwor562W6KyAIDwgc2FrdWJvdVwgOwor6J6N6YCaIDwgeXV1ZHp1dVwgOwor6ZaL5bmVIDwga2FpbWFrdVwgOwor5Zar6amaIDwgYmlra3VyaVwgOwor6ZaJ5bmVIDwgaGVpbWFrdVwgOwor6Y6W6aqoIDwgc2Frb3RzdVwgOwor5rqA6aGNIDwgbWFuZ2FrdVwgOwor6KGX552AIDwgbWFjaGlnaVwgOwor5Zyn5q66IDwgYXNzYXRzdVwgOwor6Y6u6Z2ZIDwgY2hpbnNlaVwgOwor54Sh5oqA5benIDwgbXVnaWtvdVwgOwor6J+L6J+AIDwga29vcm9naVwgOwor5oud6IG0IDwgaGFpY2hvdVwgOwor5r+B54K5IDwgZGFrdXRlblwgOwor6KCP57y2IDwga2FuaWthblwgOwor56SOIDwgaXNoaXp1ZVwgOwor6ZW35b6EIDwgY2hvdWtlaVwgOwor6YO96K2w5LyaIDwgdG9naWthaVwgOwor5o6o5pyNIDwgc3VpZnVrdVwgOwor6ZaR5a+CIDwga2FuamFrdVwgOwor57O+5ZWPIDwga3l1dW1vblwgOwor6KOP5pu4IDwgdXJhZ2FraVwgOwor5LqI5YKZ5qChIDwgeW9iaWtvdVwgOwor6ZW35bm8IDwgY2hvdXlvdVwgOwor5pC+5Y+WIDwgc2FrdXNodVwgOwor5aCF5Lq6IDwga2F0YWppblwgOwor5Zyf5qmLIDwgZG9iYXNoaVwgOwor6Kaz5LiW6Z+zIDwga2FuemVvblwgOwor5omL6L+RIDwgdGVkamlrYVwgOwor6KOP5pa5IDwgdXJha2F0YVwgOwor5Y2K6YGO5Y67IDwgaGFua2Frb1wgOwor5LiN5Y+C5YqgIDwgZnVzYW5rYVwgOwor5r+A5ribIDwgZ2VraWdlblwgOwor57KX5b+9IDwgc29rb3RzdVwgOwor57SN5YWlIDwgbm91bnl1dVwgOwor5oqA6KGTIDwgZ2lqdXRzdVwgOwor5oqV6JasIDwgdG91eWFrdVwgOwor5r+A5rWqIDwgZ2VraXJvdVwgOwor5oGj5oSP5oCnIDwgc2hpaXNlaVwgOwor5Zu95rOVIDwga29rdWhvdVwgOwor57KS5b6EIDwgcnl1dWtlaVwgOwor55SmIDwgeW9taWdhZVwgOwor5LuY5Yqg56iOIDwgZnVrYXplaVwgOwor5Zu95rCRIDwga29rdW1pblwgOwor57K+5aaZIDwgc2VpbXlvdVwgOwor5r+B5rC0IDwgZGFrdXN1aVwgOwor5pmC6KiI5bqnIDwgdG9rZWl6YVwgOwor5o6S5palIDwgaGFpc2VraVwgOwor6YOo5bGL5LujIDwgaGV5YWRhaVwgOwor5q+N6Z+z5oCnIDwgYm9pbnNlaVwgOwor6KGM54q2IDwgZ3lvdWpvdVwgOwor6J226LKdIDwgY2hvdWdhaVwgOwor5LiN5b6X5oSPIDwgZnV0b2t1aVwgOwor6KWf5YWDIDwgZXJpbW90b1wgOwor6Zu76Kmx5qmfIDwgZGVud2FraVwgOwor54Sh5ouF5L+dIDwgbXV0YW5wb1wgOwor5oe46ZqUIDwga2Vua2FrdVwgOwor6KOP5oqAIDwgdXJhd2F6YVwgOwor5Zyo5pa5IDwgemFpa2F0YVwgOwor56u56LyqIDwgY2hpa3V3YVwgOwor5o6S5pKDIDwgaGFpZ2VraVwgOwor5o6q6L6e5rOVIDwgc29qaWhvdVwgOwor5o6h5oqeIDwgc2FpdGFrdVwgOwor5YWr5Lmd5YiGIDwgaGFra3VidVwgOwor6J6f6JmrIDwgbWVpY2h1dVwgOwor54G95Y6EIDwgc2FpeWFrdVwgOwor5Zyf5pelIDwgZG9uaWNoaVwgOwor5qC55aSq5p2/IDwgbmVkYWl0YVwgOwor5oiQ6YqAIDwgbmFyaWdpblwgOwor54mcIDwgdXNoaWhlblwgOwor56+E55aHIDwgaGFuY2h1dVwgOwor54Gr5Yqg5ribIDwgaGlrYWdlblwgOwor5Lqc54eQ6YW4IDwgYXJpbnNhblwgOwor5pmC6KiI5bGLIDwgdG9rZWl5YVwgOwor5o6M5o+hIDwgc2hvdWFrdVwgOwor5oiQ6YeRIDwgbmFyaWtpblwgOwor5r2U55m9IDwga2VwcGFrdVwgOwor6Z2S5LqM5omNIDwgYW9uaXNhaVwgOwor5r2U55mWIDwga2VwcGVraVwgOwor5ryi57GNIDwga2Fuc2VraVwgOwor5Zyn5o6lIDwgYXNzZXRzdVwgOwor6YeO5pS+5ZuzIDwgbm9ob3V6dVwgOwor57KS5a2QIDwgcnl1dXNoaVwgOwor5omN6KaaIDwgc2Fpa2FrdVwgOwor54Gr5Y+jIDwgaGlndWNoaVwgOwor5omA6KyCIDwgaXdheXVydVwgOwor6ZaT5Y+jIDwgbWFndWNoaVwgOwor6Zaj5YaFIDwga2FrdW5haVwgOwor5bm85YWQ5pyfIDwgeW91amlraVwgOwor5rqA6LqrIDwgbWFuc2hpblwgOwor5oyJ5pGp6IaPIDwgYW5tYWtvdVwgOwor5rCX6Ium5Yq0IDwga2lndXJvdVwgOwor6KOP5bqtIDwgdXJhbml3YVwgOwor6KOP5bqXIDwgdXJhZGFuYVwgOwor5Zu95pyJIDwga29rdXl1dVwgOwor5pS/5bqc5qGIIDwgc2VpZnVhblwgOwor5Zu95pu4IDwga29rdXNob1wgOwor54Gr5YqbIDwga2FyeW9rdVwgOwor56uc6LuKIDwgcnl1dXNoYVwgOwor5LqI5YKZ5b25IDwgeW9iaWVraVwgOwor5oiR6LypIDwgd2FnYWhhaVwgOwor5rqA6LazIDwgbWFuem9rdVwgOwor6KGA5r2uIDwgY2hpc2hpb1wgOwor5ryG57W1IDwgdXJ1c2hpZVwgOwor6b236b2qIDwgYWt1c2VrdVwgOwor5Zyw5b+DIDwgY2hpc2hpblwgOwor56m66aasIDwga2FyYXVtYVwgOwor5Zu95paHIDwga29rdWJ1blwgOwor5Zu95pWZIDwga29ra3lvdVwgOwor5Zu95pS/IDwga29rdXNlaVwgOwor57Gz5a+pIDwgYmVpc2hpblwgOwor5Z2p5aCdIDwgcnV0c3Vib1wgOwor5LiN6YGT55CGIDwgZnVkb3VyaVwgOwor6YeR54Sh5Z6iIDwga2lubXVrdVwgOwor5Zuj5qCXIDwgZG9uZ3VyaVwgOwor5Zuz5pifIDwgenVib3NoaVwgOwor6KOP5bGxIDwgdXJheWFtYVwgOwor5oqY57SZIDwgb3JpZ2FtaVwgOwor6KGM5rC0IDwgZ3lvdXp1aVwgOwor57KJ5aOBIDwgZnVucGVraVwgOwor5YG96YCg5Y2wIDwgZ2l6b3VpblwgOwor56uL6LqrIDwgcmlzc2hpblwgOwor56u56KO9IDwgdGFrZXNlaVwgOwor54Sh5om55YikIDwgbXVoaWhhblwgOwor6KGA5rKIIDwga2V0Y2hpblwgOwor5omL6JSTIDwgdGVkenVydVwgOwor5q+uIDwgbXVzaGlydVwgOwor5Zuz5pu46LK7IDwgdG9zaG9oaVwgOwor54Gr5LuYIDwgaGl0c3VrZVwgOwor5bm46YGL5YWQIDwga291dW5qaVwgOwor5ZSQ6buNIDwgdG91a2liaVwgOwor5Zyw5bOhIDwgY2hpa3lvdVwgOwor5aGp5rC05rmWIDwgZW5zdWlrb1wgOwor5rWB5biD5pysIDwgcnVmdWJvblwgOwor56+J5rivIDwgY2hpa2tvdVwgOwor56m66ZqZIDwga3V1Z2VraVwgOwor5oqc56m0IDwgbnVrZWFuYVwgOwor5bGx6Iy26IqxIDwgc2F6YW5rYVwgOwor56e75rCR5rOVIDwgaW1pbmhvdVwgOwor56m66Zm4IDwga3V1cmlrdVwgOwor6ay855m+5ZCIIDwgb25peXVyaVwgOwor6ZaT5LitIDwgYWlkYWp1dVwgOwor5o6S5bC/IDwgaGFpbnlvdVwgOwor5Zu95omLIDwga29rdXNodVwgOwor6KGo5piOIDwgaHlvdW1laVwgOwor5aWI6Imv55yMIDwgbmFyYWtlblwgOwor5LiN5Yud5omLIDwgZnVrYXR0ZVwgOwor5Zue5pWZIDwga2Fpa3lvdVwgOwor5Zyw5a2mIDwgY2hpZ2FrdVwgOwor5ryB56SBIDwgZ3lvc2hvdVwgOwor6KGo5pWsIDwgaHlvdWtlaVwgOwor5r+A5oakIDwgZ2VraWZ1blwgOwor5r2k5rKiIDwganVudGFrdVwgOwor5oyv5pu/IDwgZnVyaWthZVwgOwor56+m5qOSIDwgYmVyYWJvdVwgOwor5oqV56WoIDwgdG91aHlvdVwgOwor5Zu95oOFIDwga29rdWpvdVwgOwor5Zyo5a6FIDwgemFpdGFrdVwgOwor5LiN5Yip55uKIDwgZnVyaWVraVwgOwor5Zyo5a2mIDwgemFpZ2FrdVwgOwor5biC5ZCP5ZOhIDwgc2hpcmlpblwgOwor5oSP6KaL5pu4IDwgaWtlbnNob1wgOwor5oWw6ZyK5aGUIDwgaXJlaXRvdVwgOwor56uL6Ki8IDwgcmlzc2hvdVwgOwor5qOXIDwgbmF0c3VtZVwgOwor5o6b5aOwIDwga2FrZWdvZVwgOwor5qK7IDwgc2hpa2ltaVwgOwor5oiR5Yip5YuJIDwgZ2FyaWJlblwgOwor6KGM5pyrIDwgeXVrdXN1ZVwgOwor6KGM5pu4IDwgZ3lvdXNob1wgOwor5ri+6LqrIDwga29uc2hpblwgOwor5Zuw5oORIDwga29ud2FrdVwgOwor6KGG5pybIDwgc2h1dWJvdVwgOwor5rib6YePIDwgZ2VucnlvdVwgOwor5puZIDwgYWtlYm9ub1wgOwor5pOs5a6d54+gIDwgZ2lib3NoaVwgOwor5aSn5ZKM57W1IDwgeWFtYXRvZVwgOwor6KGM5pWwIDwgZ3lvdXN1dVwgOwor5Zuz5byPIDwgenVzaGlraVwgOwor5bCP5YiH5omLIDwga29naXR0ZVwgOwor5ry/5rayIDwgc2hvdWVraVwgOwor5pmSIDwgc2FyYXNoaVwgOwor6Lui6Lev5ZmoIDwgdGVucm9raVwgOwor56mA6aGeIDwga29rdXJ1aVwgOwor5ryg54S2IDwgYmFrdXplblwgOwor56qB6YCyIDwgdG9zc2hpblwgOwor57Gz5Y+OIDwgYmVpc2h1dVwgOwor5peBIDwgdHN1a3VyaVwgOwor5Yik5LqL6KOcIDwgaGFuamlob1wgOwor5bGg6JiH5pWjIDwgdG9zb3NhblwgOwor56m/6YCaIDwgc2VudHN1dVwgOwor6KGo5oOFIDwgaHlvdWpvdVwgOwor5Zm05rWBIDwgZnVucnl1dVwgOwor56iu6aasIDwgdGFuZXVtYVwgOwor5reh6ZuqIDwgYXdheXVraVwgOwor5Y+C6K2w6ZmiIDwgc2FuZ2lpblwgOwor5o6l5Y+XIDwgc2V0c3VqdVwgOwor5oyo5ou2IDwgYWlzYXRzdVwgOwor5oyr5oqYIDwgemFzZXRzdVwgOwor5o6l5Y+OIDwgc2Vzc2h1dVwgOwor5omL57axIDwgdGFkenVuYVwgOwor5Zu95a++IDwga29rdXRhaVwgOwor5LqI5YKZ5ZOBIDwgeW9iaWhpblwgOwor5ryB542yIDwgZ3lva2FrdVwgOwor5omJ57W1IDwgdG9iaXJhZVwgOwor5ryB54yfIDwgZ3lvcnlvdVwgOwor5Zu95a6aIDwga29rdXRlaVwgOwor55CG5bel56eRIDwgcmlrb3VrYVwgOwor54Gr6JGs5aC0IDwga2Fzb3ViYVwgOwor5ZSH6Z+zIDwgc2hpbicnb25cIDsKK+WvkuWeoumboiA8IGthbmdvcmlcIDsKK+ihjOaIkCA8IGlraW5hcmlcIDsKK+a7keefsyA8IGthc3Nla2lcIDsKK+mYsuihm+iyuyA8IGJvdWVpaGlcIDsKK+WcsOWPoyA8IGppZ3VjaGlcIDsKK+aJi+eukiA8IHRlYm91a2lcIDsKK+WUkOmWgCA8IGthcmFtb25cIDsKK+mmrOWwj+WxiyA8IHVtYWdveWFcIDsKK+ernOiEsyA8IHJ5dXVub3VcIDsKK+WbveWkpyA8IGtva3VkYWlcIDsKK+exs+S/lyA8IGJlaXpva3VcIDsKK+WbveWkliA8IGtva3VnYWlcIDsKK+ijj+WBtCA8IHVyYWdhd2FcIDsKK+a/geWjsCA8IGRhbWlnb2VcIDsKK+exs+S9nCA8IGJlaXNha3VcIDsKK+S6iOWCmeWFtSA8IHlvYmloZWlcIDsKK+WUsemBkyA8IHNob3Vkb3VcIDsKK+WVj+iyrCA8IG1vbnNla2lcIDsKK+epuuiwtyA8IGt1dWtva3VcIDsKK+a/gOWilyA8IGdla2l6b3VcIDsKK+Wwj+mBk+WFtyA8IGtvZG91Z3VcIDsKK+err+e2sSA8IGhhZHp1bmFcIDsKK+a3semBoCA8IHNoaW4nJ2VuXCA7Civoo4/kvZwgPCB1cmFzYWt1XCA7Civoo4LlgrcgPCByZXNzaG91XCA7Civom67opZ8gPCBiYW5rYXJhXCA7CivluIzlhYPntKAgPCBraWdlbnNvXCA7CivmgLogPCBrb3JhZXJ1XCA7CivkuJbnlYzoqp4gPCBzZWthaWdvXCA7CivnsbPkuK0gPCBiZWljaHV1XCA7Civnq4vohbkgPCByaXBwdWt1XCA7CivnqI7poY0gPCB6ZWlnYWt1XCA7Civnq7/nq7kgPCBzYW9kYWtlXCA7Civmt6vpgLggPCBpbicnaXRzdVwgOwor5b6kIDwgdGFrZXNoaVwgOwor6K236KGb5YW1IDwgZ29laWhlaVwgOwor56m66Kq/IDwga3V1Y2hvdVwgOwor6Jmr6aGeIDwgY2h1dXJ1aVwgOwor5b2i6ICM5LiLIDwga2VpamlrYVwgOwor5o265Y2wIDwgbmF0c3VpblwgOwor6KGG5bq2IDwgc2h1dXNob1wgOwor56u556u/IDwgdGFrZXphb1wgOwor6Z2S6Zu76KmxIDwgYW9kZW53YVwgOwor5LqM5p6a55uuIDwgbmltYWltZVwgOwor5ZWP6Ki6IDwgbW9uc2hpblwgOwor5ouT5pysIDwgdGFrdWhvblwgOwor56mN6LyJIDwgc2VraXNhaVwgOwor56m66KWyIDwga3V1c2h1dVwgOwor5LuW5bqc55yMIDwgdGFmdWtlblwgOwor5L+d57ea5Yy6IDwgaG9zZW5rdVwgOwor5be9IDwgdGF0c3VtaVwgOwor5Zyo5L+XIDwgemFpem9rdVwgOwor5Ye656i95Y+kIDwgZGVnZWlrb1wgOwor56m66KGMIDwga3V1Z3lvdVwgOwor5Zyw5Li7IDwgamludXNoaVwgOwor5LiN5YW36ICFIDwgZnVndXNoYVwgOwor5Zyw5LitIDwgY2hpY2h1dVwgOwor5ryU566X5qmfIDwgZW56YW5raVwgOwor6YG65Lyd5rOVIDwgaWRlbmhvdVwgOwor5Zu95Y+3IDwga29rdWdvdVwgOwor6Yyv6KeSIDwgc2Fra2FrdVwgOwor5Zyo5LqsIDwgemFpa3lvdVwgOwor5ouN5pWwIDwgaGFrdXN1dVwgOwor6YG65a625pePIDwgaWthem9rdVwgOwor5bCP5Yip5Y+jIDwga29yaWtvdVwgOwor5Zyo5LitIDwgemFpY2h1dVwgOwor6KGo5ZyoIDwgaHlvdXphaVwgOwor5ru05rC0IDwgdGVraXN1aVwgOwor5omT546HIDwgZGFyaXRzdVwgOwor6Yuz6YCgIDwgY2h1dXpvdVwgOwor5Zub5Zu9IDwgc2hpa29rdVwgOwor5Zu95Yq0IDwga29rdXJvdVwgOwor5r+A5YuVIDwgZ2VraWRvdVwgOwor56uL57GzIDwgcnl1dWJlaVwgOwor562L5rOoIDwga2luY2h1dVwgOwor5r+A5YqxIDwgZ2VraXJlaVwgOwor5oqR5q2iIDwgeW9rdXNoaVwgOwor5ryi5pePIDwga2Fuem9rdVwgOwor56+A5bqmIDwgc2V0c3Vkb1wgOwor5aSp5rCX6YGLIDwgdGVua2l1blwgOwor5ryB5qWtIDwgZ3lvZ3lvdVwgOwor5ray6YePIDwgZWtpcnlvdVwgOwor5bqc6K2w5LyaIDwgZnVnaWthaVwgOwor6JuH6KCNIDwgZGFrYXRzdVwgOwor5Zu95YaFIDwga29rdW5haVwgOwor5Zu95YW4IDwga29rdXRlblwgOwor6J2L55+zIDwgcm91c2VraVwgOwor56uc56WeIDwgcnl1dWppblwgOwor5raI6ZiyIDwgc2hvdWJvdVwgOwor5rWB6bqXIDwgcnl1dXJlaVwgOwor56uv55qEIDwgdGFudGVraVwgOwor5rip6ImyIDwgb25zaG9rdVwgOwor5rqW55SoIDwganVuJyd5b3VcIDsKK+eptOiUtSA8IGFuYWd1cmFcIDsKK+aLjeaJiyA8IGhha3VzaHVcIDsKK+aJi+eHrSA8IHRlc2hva3VcIDsKK+WjrCA8IG1penVub2VcIDsKK+atoumfs+WZqCA8IHNoaW9ua2lcIDsKK+WQiOawl+S8miA8IGFpa2lrYWlcIDsKK+mGjemGkOWRsyA8IGRhaWdvbWlcIDsKK+euseW4qyA8IGhha29zaGlcIDsKK+ihqOWPtyA8IGh5b3Vnb3VcIDsKK+m7hOm6uyA8IHRzdW5hc29cIDsKK+iZq+mFuCA8IG11c2hpenVcIDsKK+a6gOebriA8IG1hbm1va3VcIDsKK+aLneW+qSA8IGhhaWZ1a3VcIDsKK+mQmOalvCA8IHNob3Vyb3VcIDsKK+eri+eniyA8IHJpc3NodXVcIDsKK+eni+miqCA8IHNodXVmdXVcIDsKK+aKvOaNuiA8IG91bmF0c3VcIDsKK+aEj+Wbs+eahCA8IGl0b3Rla2lcIDsKK+a1pumiqCA8IHVyYWthemVcIDsKK+epuuiMtiA8IGthcmFjaGFcIDsKK+ernOecvCA8IHJ5dXVnYW5cIDsKK+a1t+mZuCA8IGthaXJpa3VcIDsKK+WcsOejgeawlyA8IGNoaWppa2lcIDsKK+eojui+vCA8IHplaWtvbWlcIDsKK+eUn+aEj+awlyA8IG5hbWFpa2lcIDsKK+m7kumvmyA8IGt1cm9kYWlcIDsKK+epuuiJsiA8IHNvcmFpcm9cIDsKK+Wbm+asoeWFgyA8IHlvamlnZW5cIDsKK+aMmeWbvSA8IGt5b2tva3VcIDsKK+ihsOWFhiA8IHN1aWNob3VcIDsKK+WbveS4rSA8IGt1bmlqdXVcIDsKK+eni+mcnCA8IHNodXVzb3VcIDsKK+WWieesmyA8IG5vZG9idWVcIDsKK+eni+mcliA8IHNodXVyaW5cIDsKK+W+oeebrueOiSA8IG9tZWRhbWFcIDsKK+ihjOWVkyA8IGd5b3VrZWlcIDsKK+WajyA8IGt1c2hhbWlcIDsKK+eni+mbqCA8IGFraXNhbWVcIDsKK+epuuiFuSA8IGt1dWZ1a3VcIDsKK+aMv+WFpSA8IHNvdW55dXVcIDsKK+WSjOmjnyA8IHdhc2hva3VcIDsKK+aKnOaToiA8IGJhdHRla2lcIDsKK+mNteeptCA8IGthZ2lhbmFcIDsKK+ifu+W3uyA8IGFyaW1ha2lcIDsKK+aMh+WcpyA8IHNoaWF0c3VcIDsKK+aKleaTsiA8IHRvdXRla2lcIDsKK+WFrOaWh+aJgCA8IGt1bW9uam9cIDsKK+aMh+WbsyA8IHNhc2hpenVcIDsKK+W+oeW6p+aJgCA8IGdvemFzaG9cIDsKK+a6uuawtCA8IGRla2lzdWlcIDsKK+Wkp+mLuOWxkSA8IG9nYWt1enVcIDsKK+evieWcsCA8IHRzdWtpamlcIDsKK+eUmOa1t+iLlCA8IGFtYW5vcmlcIDsKK+W7uuitsOahiCA8IGtlbmdpYW5cIDsKK+idi+eHrSA8IHJvdXNva3VcIDsKK+a6uuatuyA8IGRla2lzaGlcIDsKK+eigeS8muaJgCA8IGdva2Fpam9cIDsKK+aLmeWuhSA8IHNldHRha3VcIDsKK+aJi+ayoiA8IHNodXRha3VcIDsKK+aKkeaPmiA8IHlva3V5b3VcIDsKK+esiuazlSA8IHphcnVob3VcIDsKK+aHh+evpCA8IGtvbnRva3VcIDsKK+WUkOiWryA8IGthcmFpbW9cIDsKK+eojuiqvyA8IHplaWNob3VcIDsKK+iYremLsyA8IHJhbmNodXVcIDsKK+aLoeWkpyA8IGtha3VkYWlcIDsKK+mYsueBq+aIuCA8IGJvdWthZG9cIDsKK+mKhemQuCA8IGRvdXRha3VcIDsKK+eZu+WxseWutiA8IHRvemFua2FcIDsKK+eCiuS6i+WgtCA8IHN1aWppYmFcIDsKK+aIkOeGnyA8IHNlaWp1a3VcIDsKK+a6nOaxoCA8IHRhbWVpa2VcIDsKK+a1pumHjCA8IHVyYXphdG9cIDsKK+iLseaWh+enkSA8IGVpYnVua2FcIDsKK+a5r+eGqCA8IHl1bm9zaGlcIDsKK+WWq+eFmSA8IGtpdHN1ZW5cIDsKK+a6gOa9riA8IG1hbmNob3VcIDsKK+Wah+WahyA8IGtha2tha3VcIDsKK+aLk+WkpyA8IHRha3VkYWlcIDsKK+a6kOa1gSA8IGdlbnJ5dXVcIDsKK+epjuiEsSA8IGVpZGF0c3VcIDsKK+eqgeerryA8IHRvcHBhbmFcIDsKK+mFuOaAp+mbqCA8IHNhbnNlaXVcIDsKK+m7hOmbgCA8IGtvdWpha3VcIDsKK+WWgOeXsCA8IGtha3V0YW5cIDsKK+m8u+ihgCA8IGhhbmFkamlcIDsKK+mMr+e2nCA8IHNha3Vzb3VcIDsKK+ihk+S4rSA8IGp1dGNodXVcIDsKK+a0vueUn+iqniA8IGhhc2VpZ29cIDsKK+a0vumWpSA8IGhhYmF0c3VcIDsKK+mBuuS8neaApyA8IGlkZW5zZWlcIDsKK+WMu+eZguiyuyA8IGlyeW91aGlcIDsKK+Wkp+ellueItiA8IGRhaXNvZnVcIDsKK+m6u+mbgCA8IG1hemVqYW5cIDsKK+evhuWIuyA8IHRlbmtva3VcIDsKK+i7jeiNvOWIqSA8IGd1bmRhcmlcIDsKK+aIr+atjCA8IHphcmV1dGFcIDsKK+WUkOiHvCA8IGthcmF1c3VcIDsKK+a6gOa0siA8IG1hbnNodXVcIDsKK+a5vua1gSA8IHdhbnJ5dXVcIDsKK+WWhOeOiSA8IHplbmRhbWFcIDsKK+engemAmiA8IHNoaXRzdXVcIDsKK+eoruiLlyA8IHNodWJ5b3VcIDsKK+eZveS6nOe0gCA8IGhha3Vha2lcIDsKK+S4vCA8IGRvbmJ1cmlcIDsKK+a1t+iziiA8IGthaXpva3VcIDsKK+eoruiKiyA8IHRhbmVpbW9cIDsKK+aIpuattCA8IHNlbnJla2lcIDsKK+mojummrOaIpiA8IGtpYmFzZW5cIDsKK+ebruS4gOadryA8IG1laXBwYWlcIDsKK+aMh+WApCA8IHNhc2hpbmVcIDsKK+iomOS6i+aWhyA8IGtpamlidW5cIDsKK+a1t+ixoSA8IHNlaXVjaGlcIDsKK+aKvOWjsiA8IG9zaGl1cmlcIDsKK+WTgeiplSA8IGhpbnB5b3VcIDsKK+aDqOmFtyA8IHphbmtva3VcIDsKK+WSjOWkqum8kyA8IHdhZGFpa29cIDsKK+aCqumjnyA8IGFrdWppa2lcIDsKK+ibrueahCA8IGJhbnRla2lcIDsKK+S6iOWumuahiCA8IHlvdGVpYW5cIDsKK+elnumrhCA8IHNoaW56dWlcIDsKK+iYh+mJhCA8IHNvdGV0c3VcIDsKK+ifhOWxhSA8IGNoaWtreW9cIDsKK+aEmuiqrCA8IGd1c2V0c3VcIDsKK+aHuOa/gSA8IGtlbmRha3VcIDsKK+a6neadvyA8IGRvYnVpdGFcIDsKK+espuWPt+WZqCA8IGZ1Z291a2lcIDsKK+WaouS4rSA8IG5vdWNodXVcIDsKK+abuOiomOijnCA8IHNob2tpaG9cIDsKK+enmOiooyA8IGhpa2V0c3VcIDsKK+epuueZvSA8IGt1dWhha3VcIDsKK+W/nOaPtOWboyA8IG91ZW5kYW5cIDsKK+mBuuS8neWtkCA8IGlkZW5zaGlcIDsKK+mZpOiNieWZqCA8IGpvc291a2lcIDsKK+iZueiJsiA8IG5pamlpcm9cIDsKK+etluWumiA8IHNha3V0ZWlcIDsKK+a1gemAoyA8IHJ5dXVyZW5cIDsKK+epjeeulyA8IHNla2lzYW5cIDsKK+S6iOWumuaXpSA8IHlvdGVpYmlcIDsKK+aCqumYuyA8IHRzdXdhcmlcIDsKK+aIr+absiA8IGdpa3lva3VcIDsKK+S/neaMgeiAhSA8IGhvamlzaGFcIDsKK+aLoeWFhSA8IGtha3VqdXVcIDsKK+epgOeyiSA8IGtva3VmdW5cIDsKK+WUkOezuCA8IGthcmFpdG9cIDsKK+mJhOmOmiA8IHRldHRzdWlcIDsKK+epuueTtiA8IGthcmFiaW5cIDsKK+WNmOS9jeWFgyA8IHRhbmlnZW5cIDsKK+aEj+WcsOaCqiA8IGlqaXdhcnVcIDsKK+a6gOagqiA8IG1hbmthYnVcIDsKK+enmOihkyA8IGhpanV0c3VcIDsKK+ibi+eZvSA8IHRhbnBha3VcIDsKK+S4iuWHuuadpSA8IGpvdWRla2lcIDsKK+WRqOmBiiA8IHNodXV5dXVcIDsKK+espuWPt+WMliA8IGZ1Z291a2FcIDsKK+a7heW6piA8IG1ldHN1ZG9cIDsKK+a6gOabtCA8IG1hbnphcmFcIDsKK+WRqOi+uiA8IHNodXVoZW5cIDsKK+aIkOahgiA8IG5hcmlrZWlcIDsKK+a1t+ibhyA8IHVtaWhlYmlcIDsKK+a0u+i3ryA8IGthdHN1cm9cIDsKK+m7kuiygiA8IGt1cm90ZW5cIDsKK+S4jeebuOW/nCA8IGZ1c291b3VcIDsKK+mKreiRtSA8IHplbmlhb2lcIDsKK+iLseiqnueJiCA8IGVpZ29iYW5cIDsKK+mHjeeBq+WZqCA8IGp1dWtha2lcIDsKK+azoumfsyA8IG5hbWlvdG9cIDsKK+aRqeWIqeaUryA8IG1hcmlzaGlcIDsKK+eonOe3miA8IHJ5b3VzZW5cIDsKK+eVsOerr+imliA8IGl0YW5zaGlcIDsKK+aJjeW+syA8IHNhaXRva3VcIDsKK+eri+ahiCA8IHJpdHN1YW5cIDsKK+m7meiqjSA8IG1va3VuaW5cIDsKK+epuueIhiA8IGt1dWJha3VcIDsKK+WQhOmnhSA8IGtha3Vla2lcIDsKK+aKvOWFpSA8IG9zaGlpcmVcIDsKK+a3t+eUqCA8IGtvbicneW91XCA7CivmuKbmva4gPCB1enVzaGlvXCA7CivokazlhIDlsYsgPCBzb3VnaXlhXCA7CivpoIXkvY3nva4gPCBrb3VpY2hpXCA7Civph6PprZogPCBjaG91Z3lvXCA7CivmiJHmlrkgPCB3YWdhaG91XCA7CivnqbTnhoogPCBhbmFndW1hXCA7CivmiYDlvpcgPCBzaG90b2t1XCA7CivljLvluKvms5UgPCBpc2hpaG91XCA7Civmupzmga8gPCB0YW1laWtpXCA7Civmga3poIYgPCBreW91anVuXCA7CivmvI/liLsgPCByb3Vrb2t1XCA7CivokaHokITlnJIgPCBidWRvdWVuXCA7CivolqnplbcgPCBzYXRjaG91XCA7CivmtYHoqIAgPCByeXV1Z2VuXCA7Civmi4Xku7sgPCB0YW4nJ25pblwgOwor56uL5pilIDwgcmlzc2h1blwgOwor56qv5qWtIDwgeW91Z3lvdVwgOwor5oqc5Y67IDwgYmFra3lvdVwgOwor5rip5rW0IDwgb24nJ3lva3VcIDsKK+emgei2syA8IGtpbnNva3VcIDsKK+a6luaApSA8IGp1bmt5dXVcIDsKK+WQg+mfsyA8IGtpdHN1b25cIDsKK+mJhOi3ryA8IHRldHN1cm9cIDsKK+S6lOaWl+exsyA8IGdvdG9iZWlcIDsKK+ekvumVtyA8IHNoYWNob3VcIDsKK+WQhOmdoiA8IGtha3VtZW5cIDsKK+m7kuihgCA8IGt1cm9jaGlcIDsKK+a2iOiAlyA8IHNob3Vtb3VcIDsKK+ero+aIkCA8IHNodW5zZWlcIDsKK+m7kuifuyA8IGt1cm9hcmlcIDsKK+WPr+aEm+awlyA8IGthd2FpZ2VcIDsKK+a1geihjCA8IHJ5dXVrb3VcIDsKK+eqkuatuyA8IGNoaXNzaGlcIDsKK+mHkemrmCA8IGtpbmRha2FcIDsKK+S6lOe3muitnCA8IGdvc2VuZnVcIDsKK+WQhOmajiA8IGtha3VrYWlcIDsKK+eni+iNiSA8IGFraWt1c2FcIDsKK+aJjeWtpiA8IHNhaWdha3VcIDsKK+W+oeW6nOWGhSA8IGdvZnVuYWlcIDsKK+WtkOmmrOW6pyA8IGtvdW1hemFcIDsKK+aEieiJsiA8IHl1c2hva3VcIDsKK+Wwj+iKpeWtkCA8IGtva2VzaGlcIDsKK+a4hea/gSA8IHNlaWRha3VcIDsKK+WRqOimpyA8IHNodXVyYW5cIDsKK+aBkua4qeWZqCA8IGtvdW9ua2lcIDsKK+aJgOWxniA8IHNob3pva3VcIDsKK+aIpuW9uSA8IHNlbicnZWtpXCA7Civnn6XmgbXogIUgPCBjaGllc2hhXCA7CivoloTpm7IgPCB1c3VndW1vXCA7CivoloTpm6ogPCB1c3V5dWtpXCA7CivnpZ3ovp4gPCBzaHVrdWppXCA7CivmipHliLYgPCB5b2t1c2VpXCA7CivmgYvpoqggPCBrb2lrYXplXCA7CivnpZ7ovL8gPCBtaWtvc2hpXCA7CivpgbrotIjliIYgPCBpem91YnVuXCA7Civpub/ov70gPCBzaGlrYW9pXCA7CivnpZbov7AgPCBzb2p1dHN1XCA7CivmiIrmiIwgPCBib2p1dHN1XCA7CivolqzphZIgPCB5YWt1c2h1XCA7CivlkarooZMgPCBqdWp1dHN1XCA7Civlj6TpoZQgPCBmdXJ1Z2FvXCA7CivlpKrliIDprZogPCB0YWNoaXVvXCA7CivmiYvlprsgPCB0ZWR6dW1hXCA7Civmt7fmv4EgPCBrb25kYWt1XCA7CivliqnmvJTogIUgPCBqb2Vuc2hhXCA7Civph5HpoY0gPCBraW5nYWt1XCA7Civku6PnkIbpg6ggPCBkYWlyaWJ1XCA7Civmg6jokL0gPCBzYW5yYWt1XCA7CivomIrok4QgPCB1bmNoaWt1XCA7CivpioDoibIgPCBnaW4nJ2lyb1wgOwor6bqm6KeSIDwgYmFra2FrdVwgOwor5Y+w6ZajIDwgZGFpa2FrdVwgOwor5rqA5bitIDwgbWFuc2VraVwgOwor56e75YuV5L2TIDwgaWRvdXRhaVwgOwor6YGL5YuV6LK7IDwgdW5kb3VoaVwgOwor5aSp6bWd57WoIDwgYmlyb3Vkb1wgOwor5LiA6YW45YyWIDwgaXNzYW5rYVwgOwor56Wd6LOAIDwgc2h1a3VnYVwgOwor5oKq6KmVIDwgYWt1aHlvdVwgOwor5oKq6KizIDwgYWt1eWFrdVwgOwor6JWq6ZuRIDwgYnV6YXRzdVwgOwor6buS6Iy2IDwga3Vyb2NoYVwgOwor56iO55uuIDwgemVpbW9rdVwgOwor6YGg6Led6ZuiIDwgZW5reW9yaVwgOwor5L2Q6LOA55yMIDwgc2FnYWtlblwgOwor56S66YGUIDwgaml0YXRzdVwgOwor6JmO56m0IDwga29rZXRzdVwgOwor6auY6Z+z6YOoIDwga291b25idVwgOwor6Y6u5a6aIDwgY2hpbnRlaVwgOwor55Ww56uv6ICFIDwgaXRhbnNoYVwgOwor562S5LqVIDwgdHN1dHN1aVwgOwor5ZOy55CGIDwgdGV0c3VyaVwgOwor6YiN6LazIDwgZG9uc29rdVwgOwor56m65qG2IDwga2FyYW9rZVwgOwor6JaE6YiNIDwgdXN1bm9yb1wgOwor5oey5oKqIDwgY2hvdWFrdVwgOwor56m65qCqIDwga3V1a2FidVwgOwor6Juu5pePIDwgYmFuem9rdVwgOwor56yb5ZC5IDwgZnVlZnVraVwgOwor5oSf5YyW6ZmiIDwga2Fua2FpblwgOwor56uc5a6uIDwgcnl1dWd1dVwgOwor56Wd6KiAIDwgc2h1dWdlblwgOwor5oGl6L6xIDwgY2hpam9rdVwgOwor5LiN5qmf5auMIDwgZnVraWdlblwgOwor6YOo5aSW56eYIDwgYnVnYWloaVwgOwor5ZaE5oKqIDwgemVuJydha3VcIDsKK+mHjemOriA8IGp1dWNoaW5cIDsKK+iWhOmBhyA8IGhha3VndXVcIDsKK+S6nOeGseW4ryA8IGFuZXR0YWlcIDsKK+aJi+WPoyA8IHRlZ3VjaGlcIDsKK+ayiOmZjSA8IGNoaW5rb3VcIDsKK+WWhOW+syA8IHplbnRva3VcIDsKK+a3q+assiA8IGluJyd5b2t1XCA7CivpioDntJkgPCBnaW5nYW1pXCA7Civlr4zlo6vlsbEgPCBmdWppc2FuXCA7CivpiLTomK0gPCBzdXp1cmFuXCA7CivmiKbln58gPCBzZW4nJ2lraVwgOwor5ZCf6KqmIDwgZ2luc2hvdVwgOwor5oyH5o+u5omAIDwgc2hpa2lqb1wgOwor5ZOB55uuIDwgaGlubW9rdVwgOwor6Yac6aGeIDwgc2h1dXJ1aVwgOwor55Sf6Yak5rK5IDwga2lqb3V5dVwgOwor6YqF566UIDwgZG91aGFrdVwgOwor5oim5Zu9IDwgc2VuZ29rdVwgOwor5oSb552AIDwgYWljaGFrdVwgOwor5rWE55Gg55KDIDwgam91cnVyaVwgOwor6KOc5L2Q5a6YIDwgaG9zYWthblwgOwor6YiN6KeSIDwgZG9ua2FrdVwgOwor6bqm6Iy2IDwgbXVnaWNoYVwgOwor6buS57eaIDwga29rdXNlblwgOwor6YGO5Y675b2iIDwga2Frb2tlaVwgOwor6I2J5Luu5ZCNIDwgc291Z2FuYVwgOwor5oSa55u0IDwgZ3VjaG9rdVwgOwor6YqA566UIDwgZ2lucGFrdVwgOwor6Jek6ImyIDwgZnVqaWlyb1wgOwor5oi45Y+jIDwgdG9ndWNoaVwgOwor56m65o+aIDwga2FyYWFnZVwgOwor6YqA56ybIDwgZ2ludGVraVwgOwor5b6h5qmf5auMIDwgZ29raWdlblwgOwor56ys5LiAIDwgZGFpaWNoaVwgOwor6YeO6YGTIDwgbm9taWNoaVwgOwor5ZSQ5q2MIDwga2FyYXV0YVwgOwor5ZCM6Kq/IDwgZG91Y2hvdVwgOwor5LiN5bGl6KGMIDwgZnVyaWtvdVwgOwor5ZCI6Kq/IDwgZ291Y2hvdVwgOwor5Y+j6LyqIDwga3VjaGl3YVwgOwor5b+g6a2CIDwgY2h1dWtvblwgOwor5ZCE6KuWIDwga2FrdXJvblwgOwor5ZCI6KmVIDwgZ2FwcHlvdVwgOwor5Y+Z6L+wIDwgam9qdXRzdVwgOwor56uL5aC0IDwgdGFjaGliYVwgOwor5ZSQ5qeYIDwga2FyYXlvdVwgOwor6Zi/5byX5Yip5YqgIDwgYWZ1cmlrYVwgOwor6bq757iEIDwgYXNhbmF3YVwgOwor6ba66bSSIDwgc2VraXJlaVwgOwor5oKq6IetIDwgYWt1c2h1dVwgOwor5pOs5Lq65YyWIDwgZ2lqaW5rYVwgOwor56mN5pyoIDwgdHN1bWlraVwgOwor5rqW5YmHIDwganVuc29rdVwgOwor6Y6u5Y+wIDwgY2hpbmRhaVwgOwor5YiG5bqm5ZmoIDwgYnVuZG9raVwgOwor5rKI6YWUIDwgY2hpbnN1aVwgOwor6buZ56W3IDwgbW9rdXRvdVwgOwor6YeR6LWkIDwga2luJydha2FcIDsKK+eri+WbvSA8IHJpa2tva3VcIDsKK+aJi+S4rSA8IHNodWNodXVcIDsKK+aJi+S4iyA8IHRlc2hpdGFcIDsKK+WPjui8iSA8IHNodXVzYWlcIDsKK+WHuuebrumHkSA8IGRlbWVraW5cIDsKK+WknOaxvei7iiA8IHlvZ2lzaGFcIDsKK+a6gOWNkyA8IG1hbnRha3VcIDsKK+W3pua0vuezuyA8IHNhaGFrZWlcIDsKK+a4puW3uyA8IHV6dW1ha2lcIDsKK+a1t+eMqyA8IHVtaW5la29cIDsKK+aEmueJqSA8IGd1YnV0c3VcIDsKK+mHjeiyrCA8IGp1dXNla2lcIDsKK+m8u+axlyA8IGhhbmFhc2VcIDsKK+aApemAgSA8IGt5dXVzb3VcIDsKK+WWhOWlsyA8IHplbicnbnlvXCA7CivpiZvnrYYgPCBlbnBpdHN1XCA7CivmiJLlkI0gPCBrYWlteW91XCA7CivljoTpm6MgPCB5YWt1bmFuXCA7CivmtbfniZsgPCBrYWlneXV1XCA7CivolqzojqIgPCB5YWtreW91XCA7CivpvLvmrYwgPCBoYW5hdXRhXCA7CivmhpHmi6AgPCBoeW91a3lvXCA7CivpiYTntKIgPCB0ZXNzYWt1XCA7Civlj43otoogPCBoYW5ldHN1XCA7CivlkLnogbQgPCBmdWljaG91XCA7Civmua/lj6MgPCB5dWd1Y2hpXCA7Civlj6ToqqwgPCBrb3NldHN1XCA7CivmsLTpo7QgPCBtaXp1YW1lXCA7CivljbPpoYwgPCBzb2t1ZGFpXCA7Civlj6PoqqwgPCBrdXpldHN1XCA7CivoqZDmrLrnvaogPCBzYWdpemFpXCA7CivnqK7mnb8gPCB0YW5laXRhXCA7CivomavmsJcgPCBtdXNoaWtlXCA7CivnqbrluK0gPCBrdXVzZWtpXCA7CivmuKzlrpogPCBzb2t1dGVpXCA7CivppYLpo6nlsYsgPCB1ZG9uJyd5YVwgOwor5rm+5YaFIDwgd2FuJyduYWlcIDsKK+aEleeEtiA8IGdha3V6ZW5cIDsKK+eoruacrCA8IHRhbmVob25cIDsKK+WPjuizhCA8IHNodXV3YWlcIDsKK+WkouaDs+WutiA8IG11c291a2FcIDsKK+iomOitnOazlSA8IGtpZnVob3VcIDsKK+S4gOatu+W+jCA8IGlzc2hpZ29cIDsKK+mHjeiosyA8IGp1dXlha3VcIDsKK+mIjeiJsiA8IG5pYmlpcm9cIDsKK+a3seaFriA8IHNoaW5yeW9cIDsKK+mdnuihm+eUnyA8IGhpZWlzZWlcIDsKK+eoruaXjyA8IHNodXpva3VcIDsKK+mHjOimqiA8IHNhdG9veWFcIDsKK+m7kueXoyA8IGt1cm9hemFcIDsKK+mGi+mFuCA8IHNha3VzYW5cIDsKK+m6puesmyA8IG11Z2lidWVcIDsKK+WQm+iHoyA8IGt1bnNoaW5cIDsKK+a0nueptCA8IGhvcmFhbmFcIDsKK+iqpOaKleS4iyA8IGdvdG91a2FcIDsKK+a1uOa9pCA8IHNoaW5qdW5cIDsKK+WPpOihgCA8IGZ1cnVjaGlcIDsKK+aGguaImiA8IHl1dXNla2lcIDsKK+WQq+e+niA8IGdhbnNodXVcIDsKK+epuuWwhiA8IGt1dXNob3VcIDsKK+awtOmZuCA8IHN1aXJpa3VcIDsKK+S4jeiHqueUsSA8IGZ1aml5dXVcIDsKK+a1geeUqCA8IHJ5dXV5b3VcIDsKK+a6gOS6hiA8IG1hbnJ5b3VcIDsKK+a1geeUoyA8IHJ5dXV6YW5cIDsKK+epjeaCqiA8IHNla2lha3VcIDsKK+mJm+ebtCA8IGVuY2hva3VcIDsKK+OAgyA8IG9uYWppa3VcIDsKK+aCquetliA8IGFrdXNha3VcIDsKK+m6pueniyA8IG11Z2lha2lcIDsKK+mHkeiejSA8IGtpbicneXV1XCA7Civoi7HmlbDlrZcgPCBlaXN1dWppXCA7Civlv4XpnIAgPCBoaXRzdWp1XCA7CivnpZ7ntYwgPCBzaGlua2VpXCA7Civlj43opoYgPCBoYW5wdWt1XCA7CivnqoHlpoIgPCB0b3RzdWpvXCA7CivmtrLmmbYgPCBla2lzaG91XCA7CivlkIzohbkgPCBkb3VmdWt1XCA7CivnqY3lvIogPCBzZWtpaGVpXCA7CivomZrmpa0gPCBreW9neW91XCA7Civmsrnoj5wgPCBhYnVyYW5hXCA7CivljYrpoY0gPCBoYW5nYWt1XCA7CivmsbrorbAgPCBrZXRzdWdpXCA7CivpiYTnn7MgPCB0ZXNzZWtpXCA7Civlv6vpgakgPCBrYWl0ZWtpXCA7CivphbfpgYcgPCBrb2t1Z3V1XCA7Civpu5nnhLYgPCBtb2t1bmVuXCA7CivpharphbggPCByYWt1c2FuXCA7Civph4nolqwgPCB5dXV5YWt1XCA7CivlkYrnn6UgPCBrb2t1Y2hpXCA7Civnn6Xmg4XmhI8gPCBjaGlqb3VpXCA7CivpoqjlkYLmobYgPCBmdXJvb2tlXCA7CivmgYvojYkgPCBrb2lndXNhXCA7Civmtabms6IgPCB1cmFuYW1pXCA7CivolqznsaAgPCB5YWt1cm91XCA7Civoi7Hoqp7lnI8gPCBlaWdva2VuXCA7CivnqbrlnKcgPCBrdXVhdHN1XCA7CivkvY7pn7Ppg6ggPCB0ZWlvbmJ1XCA7Civnp4vmsLQgPCBzaHV1c3VpXCA7Civlj7PohZUgPCBtaWdpdWRlXCA7Civlj6PojLYgPCBrdWNoaWphXCA7CivlvpLpo58gPCB0b3Nob2t1XCA7CivpharovrIgPCByYWt1bm91XCA7CivoloTogokgPCB1c3VuaWt1XCA7CivljJfprq4gPCBob2t1c2VuXCA7Civpu4Tnhp8gPCBrb3VqdWt1XCA7CivkuozmnJ/liLYgPCBuaWtpc2VpXCA7Civlj47olLUgPCBzaHV1em91XCA7CivmtbTmp70gPCB5b2t1c291XCA7Civph5HoibIgPCBrb25qaWtpXCA7Civmk6zlo7Doqp4gPCBnaXNlaWdvXCA7Civljp/oqLsgPCBnZW5jaHV1XCA7Civmgqrnl4cgPCBha3VzaG91XCA7Civmgqrnl4UgPCBha3VieW91XCA7CivljJbpqqggPCBrYWtvdHN1XCA7Civph4zoiosgPCBzYXRvaW1vXCA7Civlj43okL0gPCBoYW5yYWt1XCA7Civlv4PphY0gPCBzaGlucGFpXCA7CivmsLfovKogPCBoeW91cmluXCA7CivmhJ/mnI0gPCBrYW5wdWt1XCA7Civmr5LprZogPCBkb2t1Z3lvXCA7Civnp4HmrLIgPCBzaGl5b2t1XCA7Civpub/noKYgPCByb2t1c2FpXCA7CivnlKjli5nlk6EgPCB5b3VtdWluXCA7Civnqq7kuY8gPCBreXV1Ym91XCA7Civmt7HlpJwgPCBzaGluJyd5YVwgOwor56K66KqNIDwga2FrdW5pblwgOwor5rib5Y+OIDwgZ2Vuc2h1dVwgOwor6Jas56S8IDwgeWFrdXJlaVwgOwor6Yyo5ZywIDwgYnlvdWNoaVwgOwor6JaE57iBIDwgdXN1YmVyaVwgOwor5b6h6Ium5Yq0IDwgZ29rdXJvdVwgOwor5pyq55m76KiYIDwgbWl0b3VraVwgOwor57Ch5piT5YyWIDwga2FuJydpa2FcIDsKK+iWhOe1uSA8IHVzdWdpbnVcIDsKK+W/q+irviA8IGthaWRha3VcIDsKK+WMl+miqCA8IGhva3VmdXVcIDsKK+S4gOmBjuaApyA8IGlra2FzZWlcIDsKK+mHjeiBtCA8IGp1dWNob3VcIDsKK+mKmOafhCA8IG1laWdhcmFcIDsKK+aCqueOiSA8IGFrdWRhbWFcIDsKK+enmOabsiA8IGhpa3lva3VcIDsKK+iWhOe0mSA8IHVzdWdhbWlcIDsKK+iWhOe0hSA8IHVzdWJlbmlcIDsKK+mBi+mAgeiyuyA8IHVuc291aGlcIDsKK+a4i+WRsyA8IHNoaWJ1bWlcIDsKK+WNl+mAsiA8IG5hbnNoaW5cIDsKK+WMu+W4q+S8miA8IGlzaGlrYWlcIDsKK+mKmOacqCA8IG1laWJva3VcIDsKK+WQjeensCA8IG1laXNob3VcIDsKK+a1geaxlyA8IHJ5dXVrYW5cIDsKK+WMl+mdoiA8IGhva3VtZW5cIDsKK+aCieeahiA8IHNoaWtrYWlcIDsKK+a1geawtCA8IHJ5dXVzdWlcIDsKK+iHquWPmeS8nSA8IGppam9kZW5cIDsKK+eqgeWFiCA8IHRvc3Nha2lcIDsKK+a0u+azgSA8IGtha2t5b3VcIDsKK+mHiOe+qSA8IHNoYWt1Z2lcIDsKK+Wkqeawl+WxiyA8IHRlbmtpeWFcIDsKK+mbo+aYk+W6piA8IG5hbicnaWRvXCA7CivlkInnpaUgPCBraXNzaG91XCA7CivnoavphbggPCByeXV1c2FuXCA7CivlvLHpvaIgPCBqYWt1cmVpXCA7Civms6Hnm5sgPCBhd2Ftb3JpXCA7CivljJfpmZAgPCBob2t1Z2VuXCA7Civnp4vmmbQgPCBha2liYXJlXCA7CivnqbTlh7kgPCBhbmFib2tvXCA7Civph5HntrIgPCBrYW5hYW1pXCA7Civlj7fnrJsgPCBnb3V0ZWtpXCA7Civom4flj6MgPCBqYWd1Y2hpXCA7Civmt5HlpbMgPCBzaHVrdWpvXCA7Civlj4znv7wgPCBzb3V5b2t1XCA7Civku67mlbDpg6ggPCBrYXN1dWJ1XCA7CivljYrovrIgPCBoYW4nJ25vdVwgOwor6YiN55ebIDwgZG9udHN1dVwgOwor5Y2B5a2X6LevIDwganV1amlyb1wgOwor5YyX6ZaAIDwga2l0YW1vblwgOwor5ZC454mpIDwgc3VpbW9ub1wgOwor5Y2B6YCyIDwgamlzc2hpblwgOwor6Jas55SoIDwgeWFrdXlvdVwgOwor6YqA5p2PIDwgZ2luJyduYW5cIDsKK+a4oeS7jyA8IHRvZnV0c3VcIDsKK+ejiuiQvSA8IHJhaXJha3VcIDsKK+iZmuW/gyA8IGt5b3NoaW5cIDsKK+a0l+a7jCA8IHNlbmRla2lcIDsKK+a0peazoiA8IHRzdW5hbWlcIDsKK+aylue4hCA8IG9raW5hd2FcIDsKK+awkei4iiA8IG1pbicneW91XCA7CivomZrlvLEgPCBreW9qYWt1XCA7Civlj6TnrYYgPCBrb2hpdHN1XCA7Civlvozph5wgPCBhdG9nYW1hXCA7Civph43nr6QgPCBqdXV0b2t1XCA7Civmt7vliYogPCB0ZW5zYWt1XCA7Civph5HnrYsgPCBraW5zdWppXCA7CivlvpfpgZMgPCB0b2t1ZG91XCA7CivosqDnrKblj7cgPCBmdWZ1Z291XCA7Civph43nrrEgPCBqdXViYWtvXCA7CivlkITnnIwgPCBrYWt1a2VuXCA7Civlj6/npZ0gPCBrYXNoaWt1XCA7CivlkIznl4UgPCBkb3VieW91XCA7CivlpKflvqHmiYAgPCBvb2dvc2hvXCA7Civlj47ntI0gPCBzaHV1bm91XCA7CivnqbrkuK0gPCBrdXVjaHV1XCA7Civpu5Lmnb8gPCBrb2t1YmFuXCA7Civol4HngbAgPCB3YXJhYmFpXCA7CivliIbluIPlm7MgPCBidW5wdXp1XCA7CivpioPmkoMgPCBqdXVnZWtpXCA7Civnn7Ppr5sgPCBpc2hpZGFpXCA7CivphpzogZ4gPCBzaHV1YnVuXCA7Civoo73lm7PlrrYgPCBzZWl6dWthXCA7CivlvozpgLggPCBrb3VpdHN1XCA7Civlj7Dnn7MgPCBkYWlpc2hpXCA7CivljZPoq5YgPCB0YWt1cm9uXCA7Civmrr/plqMgPCBkZW5rYWt1XCA7CivoloTnmq4gPCB1c3VrYXdhXCA7CivmiKbmmYLkuIsgPCBzZW5qaWthXCA7Civljproh7wgPCBhdHN1dXN1XCA7CivljZropqcgPCBoYWt1cmFuXCA7CivlpKnmsJflm7MgPCB0ZW5raXp1XCA7CivljZjop5IgPCB0YW5rYWt1XCA7CivomY7lt7sgPCB0b3Jha2FuXCA7CivlvZPpmZAgPCB0b3VnaXJpXCA7CivnqY3liIYgPCBzZWtpYnVuXCA7CivpjK/kubEgPCBzYWt1cmFuXCA7Civpu5LmlpEgPCBrb2t1aGFuXCA7CivmsrvnmYIgPCBjaGlyeW91XCA7CivljZjopIcgPCB0YW5wdWt1XCA7Civmrovpq5ggPCB6YW5kYWthXCA7CivpiYTmqYsgPCB0ZWtreW91XCA7Civou43kuovosrsgPCBndW5qaWhpXCA7Civmt7fkvZwgPCBrb25zYWt1XCA7Civph5Hnn7MgPCBraW5zZWtpXCA7Civngo7lpKnkuIsgPCBlbnRlbmthXCA7Civku4rml6XmmI7ml6UgPCBreW91YXN1XCA7Civlj47nqI4gPCBzaHV1emVpXCA7Civmg5zmlZcgPCBzZWtpaGFpXCA7CivnqLLlj6IgPCBpbmFtdXJhXCA7Civmta7lvasgPCB1a2lib3JpXCA7CivlvozotrMgPCBhdG9hc2hpXCA7CivljJfovrogPCBob2t1aGVuXCA7CivogqXmuoDlhZAgPCBoaW1hbmppXCA7Civph6Pnk7YgPCB0c3VydWJlXCA7CivmtarmvKvmtL4gPCByb21hbmhhXCA7CivmhZ/lk60gPCBkb3Vrb2t1XCA7Civmg5HmmJ8gPCB3YWt1c2VpXCA7CivljYropZ8gPCBoYW4nJ2VyaVwgOwor6LW36YeN5qmfIDwga2lqdXVraVwgOwor5Zyn56CV5qmfIDwgYXNzYWlraVwgOwor5q276a2EIDwgc2hpaGFrdVwgOwor5Zue6Lev5ZuzIDwga2Fpcm96dVwgOwor56K66IGeIDwga2FrdWJ1blwgOwor5oGL55eFIDwga29peWFtaVwgOwor6YeR55qEIDwga2ludGVraVwgOwor5Y2K6KKWIDwgaGFuc29kZVwgOwor5ZC45q67IDwgc3VpZ2FyYVwgOwor6Jmr5Z6CIDwgY2h1dXN1aVwgOwor5rCR6KGGIDwgbWluc2h1dVwgOwor5YW15Zmo5bqrIDwgaGVpa2lrb1wgOwor6YmE5p+xIDwgdGV0Y2h1dVwgOwor5q+O6YCxIDwgbWFpc2h1dVwgOwor5q6L6aGNIDwgemFuZ2FrdVwgOwor5oGv54G9IDwgc29rdXNhaVwgOwor5bKQ6Zic55yMIDwgZ2lmdWtlblwgOwor5byx6Zu7IDwgamFrdWRlblwgOwor6JS157GzIDwga3VyYW1haVwgOwor5rW35bGxIDwgdW1peWFtYVwgOwor5q6L6Z+/IDwgemFua3lvdVwgOwor5rSL5qW9IDwgeW91Z2FrdVwgOwor6YeN55eFIDwganV1YnlvdVwgOwor6Jas5rayIDwgeWFrdWVraVwgOwor6JaE54mpIDwgdXN1bW9ub1wgOwor6JaE54mHIDwgaGFrdWhlblwgOwor5rOl5rW3IDwgZG9yb3VtaVwgOwor5bq25YuZ6KqyIDwgc2hvbXVrYVwgOwor5b6h6KKLIDwgb2Z1a3Vyb1wgOwor5rC06Iq4IDwgbWl6dWdlaVwgOwor5Y2z6IiIIDwgc29ra3lvdVwgOwor56eY5a+GIDwgaGltaXRzdVwgOwor5Y216IacIDwgcmFubWFrdVwgOwor5Y+N55uuIDwgaGFubW9rdVwgOwor5rC06ImyIDwgbWl6dWlyb1wgOwor6Zui57iB54q2IDwgcmllbmpvdVwgOwor6JWD56WeIDwgYmFuc2hpblwgOwor6Yed54q2IDwgaGFyaWpvdVwgOwor5q6J6ZujIDwganVuJyduYW5cIDsKK+W+i+iqniA8IHJpdHN1Z29cIDsKK+aBi+eMqyA8IGtvaW5la29cIDsKK+WSjOW8jyA8IHdhc2hpa2lcIDsKK+WNmOiRiSA8IHRhbicneW91XCA7Civpu5nlvpMgPCBtb2t1anV1XCA7Civph5HnjokgPCBraW50YW1hXCA7CivpioDluZUgPCBnaW5tYWt1XCA7Civnn6LpnaIgPCB5YW9tb3RlXCA7CivnqI7lj44gPCB6ZWlzaHV1XCA7CivnqLLkvZwgPCBpbmFzYWt1XCA7CivmtIvmnI0gPCB5b3VmdWt1XCA7CivmraPopo/ljJYgPCBzZWlraWthXCA7CivljbDogokgPCBpbicnbmlrdVwgOwor5oCn55mWIDwgc2VpaGVraVwgOwor5byB6aeBIDwgYmVucGFrdVwgOwor6Jit5a2mIDwgcmFuZ2FrdVwgOwor5ZCN5rWBIDwgbWVpcnl1dVwgOwor5oG15rKiIDwga2VpdGFrdVwgOwor5b2i6LehIDwga2Vpc2VraVwgOwor5ZCM5rWBIDwgZG91cnl1dVwgOwor5byU6Zu7IDwgY2hvdWRlblwgOwor6JC96Zu3IDwgcmFrdXJhaVwgOwor5Y+M55KnIDwgc291aGVraVwgOwor5oKq5pa5IDwgYWt1Z2F0YVwgOwor5ZCI5rWBIDwgZ291cnl1dVwgOwor6JC96ZuBIDwgcmFrdWdhblwgOwor56S+5q20IDwgc2hhcmVraVwgOwor6JC96Zm9IDwgcmFrdXlvdVwgOwor6YeN54iGIDwganV1YmFrdVwgOwor5LuK5Ye65p2lIDwgaW1hZGVraVwgOwor6buS5bivIDwga3Vyb29iaVwgOwor5Y+Z54i1IDwgam9zaGFrdVwgOwor5YyX6KW/IDwgaG9rdXNlaVwgOwor5qSc5rOi5ZmoIDwga2VucGFraVwgOwor5Y+j54GrIDwga3VjaGliaVwgOwor5Y+U54i2IDwgc2h1a3VmdVwgOwor5rOl5qOSIDwgZG9yb2JvdVwgOwor5rGB57KJIDwgc2hpcnVrb1wgOwor5byx6YW4IDwgamFrdXNhblwgOwor6JS155u4IDwgem91c2hvdVwgOwor5Y2D6I2JIDwgY2hpZ3VzYVwgOwor5ZCr5pyJIDwgZ2FuJyd5dXVcIDsKK+WPjeeJqSA8IHRhbm1vbm9cIDsKK+mzpemhniA8IGNob3VydWlcIDsKK+W8gemboyA8IGJlbicnbmFuXCA7CivljbPntI0gPCBzb2t1bm91XCA7CivnpL7mpa0gPCBzaGFneW91XCA7CivmsJfohIggPCBraW15YWt1XCA7CivnpLzmpb0gPCByZWlnYWt1XCA7Civmr43opqogPCBoYWhhb3lhXCA7Civnp7vlh7ogPCBpc2h1dHN1XCA7CivlvrPogrIgPCB0b2t1aWt1XCA7Civno4Hnn7MgPCBqaXNoYWt1XCA7CivmtojljrsgPCBzaG91a3lvXCA7CivphpznlLcgPCBidW90b2tvXCA7CivnoLToo4IgPCBoYXJldHN1XCA7CivmtojljbAgPCBrZXNoaWluXCA7CivlkIzmpa0gPCBkb3VneW91XCA7Civnp4Hlob4gPCBzaGlqdWt1XCA7CivmgqrmiK8gPCBpdGF6dXJhXCA7Civli5Xou7ggPCBkb3VqaWt1XCA7CivnoqfnqbogPCBoZWtpa3V1XCA7CivliojpoK0gPCBoZWtpdG91XCA7CivomK3lm70gPCByYW5rb2t1XCA7CivljbPnrZQgPCBzb2t1dG91XCA7CivkuIvku5jph5EgPCBrYWZ1a2luXCA7CivpiYTlv4MgPCB0ZXNzaGluXCA7Civmr5vomasgPCBrZW11c2hpXCA7Civpgb/pm6PmiYAgPCBoaW5hbmpvXCA7CivmgYvmsrMgPCBrb2lrYXdhXCA7CivphY3ntaYgPCBoYWlreXV1XCA7CivlkIzmoLwgPCBkb3VrYWt1XCA7CivniYfmhI/lnLAgPCBrYXRhaWppXCA7CivolqzmlrkgPCB5YWt1aG91XCA7CivmtLvlrZcgPCBrYXRzdWppXCA7Civlk4DliKUgPCBhaWJldHN1XCA7CivlvpLoirEgPCBhZGFiYW5hXCA7CivnpLzmnI0gPCByZWlmdWt1XCA7CivmgYvmsLQgPCBrb2ltaXp1XCA7Civlk4DliIcgPCBhaXNldHN1XCA7CivlkIjmoLwgPCBnb3VrYWt1XCA7Civmtbfljp8gPCB1bmFiYXJhXCA7CivpurvlsZEgPCBhc2FrdXp1XCA7Civlj6TmsaAgPCBmdXJ1aWtlXCA7CivmhJrliqMgPCBndXJldHN1XCA7Civnn63ou7ggPCB0YW5qaWt1XCA7CivphpznirYgPCBzaHV1am91XCA7CivlkITmoKEgPCBrYWt1a291XCA7CivmgYvmrbsgPCBrb2lqaW5pXCA7CivmgqrlvrMgPCBha3V0b2t1XCA7CivmsJfntbYgPCBraXpldHN1XCA7CivmsojmvrEgPCBjaGluZGVuXCA7CivliojplosgPCBoZWtpa2FpXCA7Civlj6TmrYwgPCBmdXJ1dXRhXCA7CivokL3pgbggPCByYWt1c2VuXCA7Civlia/poYwgPCBmdWt1ZGFpXCA7CivlvI/pg6ggPCBzaGlraWJ1XCA7CivljZznra4gPCBib2t1emVpXCA7CivljLvlrabpg6ggPCBpZ2FrdWJ1XCA7CivlkYLlvosgPCByb3JldHN1XCA7CivokYnouqsgPCB5b3VzaGluXCA7CivlvpDohIggPCBqb215YWt1XCA7CivnoqfnnLwgPCBoZWtpZ2FuXCA7CivlvozohbkgPCBhdG9iYXJhXCA7CivmrbTpgYogPCByZWtpeXV1XCA7CivkuojloLHpn7MgPCB5b2hvdW9uXCA7CivlvazolJogPCBoaW51dHN1XCA7CivnpoXlr7ogPCB6ZW5kZXJhXCA7CivpoqjlkYLku6MgPCBmdXJvZGFpXCA7Civmrbvou7ggPCBzaGlqaWt1XCA7CivmtYHln58gPCByeXV1aWtpXCA7Civlvoznn6XmgbUgPCBhdG9kamllXCA7CivptrTnp5EgPCB0c3VydWthXCA7Civmga3mlawgPCBreW91a2VpXCA7CivmsY7nlKggPCBoYW4nJ3lvdVwgOwor5beu5qmf6ZaiIDwgc2FraWthblwgOwor5Y+U5q+NIDwgc2h1a3Vib1wgOwor56eA5ZCfIDwgc2h1dWdpblwgOwor5YmN6auqIDwgbWFlZ2FtaVwgOwor5ZKA5Zq8IDwgc29zaGFrdVwgOwor5q666JmrIDwgc2F0Y2h1dVwgOwor5Yuk6KGMIDwgZ29uZ3lvdVwgOwor6KmQ5qy65birIDwgc2FnaXNoaVwgOwor5Y2155m9IDwgcmFucGFrdVwgOwor6YeR5qOSIDwga2FuYWJvdVwgOwor5bqn6aqoIDwgemFrb3RzdVwgOwor5b6056iOIDwgY2hvdXplaVwgOwor5Yq06LODIDwgcm91Y2hpblwgOwor5ZCI5o6MIDwgZ2Fzc2hvdVwgOwor5aSW56WW54i2IDwgZ2Fpc29mdVwgOwor5YuF6KixIDwgY2hva2t5b1wgOwor55+t6KmVIDwgdGFucHlvdVwgOwor6KuW55CG5ZKMIDwgcm9ucml3YVwgOwor56eY5LuPIDwgaGlidXRzdVwgOwor6YeO5Za25ZywIDwgeWFlaWNoaVwgOwor5rW35LqAIDwgdW1pZ2FtZVwgOwor6YKB6YCyIDwgbWFpc2hpblwgOwor6Zuw5Zuy5rCXIDwgZnVuJydpa2lcIDsKK+WboOe+jue3miA8IGluYmlzZW5cIDsKK+WPpOacrCA8IGZ1cnVib25cIDsKK+WPjeanmCA8IGthaXNhbWFcIDsKK+awkeemjyA8IG1pbnB1a3VcIDsKK+awl+S4iOWkqyA8IGtpam91YnVcIDsKK+WIneacn+WMliA8IHNob2tpa2FcIDsKK+mBhemcnCA8IG9zb2ppbW9cIDsKK+a0m+WkliA8IHJha3VnYWlcIDsKK+mFkueZliA8IHNodWhla2lcIDsKK+mCquiqrCA8IGphc2V0c3VcIDsKK+awj+elniA8IHVqaWdhbWlcIDsKK+auteiQvSA8IGRhbnJha3VcIDsKK+WRu+WQnyA8IHNoaW5naW5cIDsKK+mJhOWjgSA8IHRlcHBla2lcIDsKK+eni+S9nCA8IGFraXNha3VcIDsKK+WMuueriyA8IGt1cml0c3VcIDsKK+WQhOaJgCA8IGtha3VzaG9cIDsKK+aDqOWKhyA8IHNhbmdla2lcIDsKK+aBi+aWhyA8IGtvaWJ1bWlcIDsKK+azleaCpiA8IGhvdWV0c3VcIDsKK+mCpuiosyA8IGhvdXlha3VcIDsKK+awtOeQgyA8IHN1aWt5dXVcIDsKK+a1puS6uiA8IHVyYWJpdG9cIDsKK+mKgOWBtCA8IGdpbmdhd2FcIDsKK+WPluabvyA8IHRvcmlrYWVcIDsKK+atqeihjOWZqCA8IGhva291a2lcIDsKK+WJjemZsyA8IHplbmNoaW5cIDsKK+efs+idiyA8IHNla2lyb3VcIDsKK+iTrOeUnyA8IHlvbW9naXVcIDsKK+a1geWLlSA8IHJ5dXVkb3VcIDsKK+a5r+ixhuiFkCA8IHl1ZG91ZnVcIDsKK+ijj+iDjOaIuCA8IHVyYXNlZG9cIDsKK+mAhumxlyA8IGdla2lyaW5cIDsKK+efpeihjCA8IGNoaWd5b3VcIDsKK+WQjOW9uSA8IGRvdXlha3VcIDsKK+mFuOa8vyA8IGhvb3p1a2lcIDsKK+attOimpyA8IHJla2lyYW5cIDsKK+awtOeJoiA8IG1penVyb3VcIDsKK+awtOeJmyA8IHN1aWd5dXVcIDsKK+aUvueUn+S8miA8IGhvdWpvdWVcIDsKK+iCsuWFkOmZoiA8IGlrdWppaW5cIDsKK+S4jeS9nOeCuiA8IGZ1c2FrdWlcIDsKK+mzpeiynSA8IHRvcmlnYWlcIDsKK+awtOeIhiA8IHN1aWJha3VcIDsKK+atpuijheWFtyA8IGJ1c291Z3VcIDsKK+WMl+exsyA8IGhva3ViZWlcIDsKK+S4i+mnhOeVqiA8IGdldGFiYW5cIDsKK+WNk+eUqCA8IHRha3V5b3VcIDsKK+WJvei7vSA8IGh5b3VraW5cIDsKK+WSjuS6uiA8IHRvZ2FuaW5cIDsKK+iRieicgiA8IGhhYmFjaGlcIDsKK+W+s+eUqCA8IHRva3V5b3VcIDsKK+WNgeebriA8IGp1dW1va3VcIDsKK+WQjOW4rSA8IGRvdXNla2lcIDsKK+ecn+m7kiA8IG1ha2t1cm9cIDsKK+iHquWLleWMliA8IGppZG91a2FcIDsKK+WKo+inkiA8IHJla2tha3VcIDsKK+iWrOWusyA8IHlha3VnYWlcIDsKK+emhOWRvSA8IHJva3VtZWlcIDsKK+WIu+mZkCA8IGtva3VnZW5cIDsKK+WQm+WvtSA8IGt1bmNob3VcIDsKK+WQhOW6lyA8IGtha3V0ZW5cIDsKK+WNk+eQgyA8IHRha2t5dXVcIDsKK+eEoemBoOaFriA8IGJ1ZW5yeW9cIDsKK+mBi+WLleWgtCA8IHVuZG91YmFcIDsKK+WutuioiOiyuyA8IGtha2VpaGlcIDsKK+emgOWRiiA8IHJpbmtva3VcIDsKK+WRqOWIsCA8IHNodXV0b3VcIDsKK+axl+awtCA8IGFzZW1penVcIDsKK+WMl+erryA8IGhva3V0YW5cIDsKK+mfs+alveWutiA8IG9uZ2Fra2FcIDsKK+m7kuS6uiA8IGtva3VqaW5cIDsKK+W9vOeoiyA8IGFyZWhvZG9cIDsKK+mBk+i+uiA8IG1pY2hpYmVcIDsKK+atpuihkyA8IGJ1anV0c3VcIDsKK+WkluelluavjSA8IGdhaXNvYm9cIDsKK+aui+iPiiA8IHphbmdpa3VcIDsKK+ayoeaIkSA8IGJvdHN1Z2FcIDsKK+a1geS6oSA8IHJ5dXVib3VcIDsKK+WKtOWLmeiqsiA8IHJvdW11a2FcIDsKK+WInemfsyA8IGhhdHN1bmVcIDsKK+mDveeriyA8IHRvcml0c3VcIDsKK+WIpemboiA8IGJldHN1cmlcIDsKK+W+k+eahCA8IGp1dXRla2lcIDsKK+egtOeruSA8IGhhY2hpa3VcIDsKK+iSvOeZvSA8IHNvdWhha3VcIDsKK+awtOa7tCA8IHN1aXRla2lcIDsKK+WKm+ihjCA8IHJ5b2trb3VcIDsKK+eEoei7jOmBkyA8IG11a2lkb3VcIDsKK+mBuOiplSA8IHNlbnB5b3VcIDsKK+ekq+WyqSA8IHJla2lnYW5cIDsKK+WQhOWxpCA8IGtha3Vzb3VcIDsKK+WIpemZoiA8IGJldHN1aW5cIDsKK+WKh+ipqSA8IGdla2lzaGlcIDsKK+mJhOWJhyA8IHRlc3Nva3VcIDsKK+mBhemAnyA8IGNoaXNva3VcIDsKK+eip+awtCA8IGhla2lzdWlcIDsKK+efs+iHvCA8IGlzaGl1c3VcIDsKK+W5tOmhjSA8IG5lbmdha3VcIDsKK+WIpemWkyA8IGJldHN1bWFcIDsKK+axgeawlyA8IHNoaXJ1a2VcIDsKK+a0m+WGhSA8IHJha3VuYWlcIDsKK+avjuenkiA8IG1haWJ5b3VcIDsKK+W+rueGsSA8IGJpbmV0c3VcIDsKK+awtOa1tCA8IHN1aXlva3VcIDsKK+aDkeS5sSA8IHdha3VyYW5cIDsKK+iDg+eXmeaUoyA8IGlrZWlyZW5cIDsKK+WPpOW8jyA8IGtvc2hpa2lcIDsKK+mBi+WLleWToSA8IHVuZG91aW5cIDsKK+apn+aisOiqniA8IGtpa2FpZ29cIDsKK+WNiueGnyA8IGhhbmp1a3VcIDsKK+awtOa1gSA8IHN1aXJ5dXVcIDsKK+WOn+acqCA8IGdlbmJva3VcIDsKK+WLpOe2miA8IGtpbnpva3VcIDsKK+mAvOi/qyA8IGhpcHBha3VcIDsKK+WOmuadvyA8IGF0c3VpdGFcIDsKK+e+juWuuemZoiA8IGJpeW91aW5cIDsKK+W8seiAhSA8IGpha3VzaGFcIDsKK+mHkeW5syA8IGtpbnBpcmFcIDsKK+WNseawlyA8IGFidW5hZ2VcIDsKK+aApeaJgCA8IGt5dXVzaG9cIDsKK+auu+ervyA8IGthcmFzYW9cIDsKK+S4gOi7ouapnyA8IGl0dGVua2lcIDsKK+WPluW+lyA8IHNodXRva3VcIDsKK+WNs+atuyA8IHNva3VzaGlcIDsKK+m0h+iJsiA8IHRva2lpcm9cIDsKK+WPsOWwuyA8IGRhaWppcmlcIDsKK+adk+aWh+WtlyA8IHNoYW1vamlcIDsKK+i/vemajyA8IHRzdWl6dWlcIDsKK+WLsueroCA8IGt1bnNob3VcIDsKK+mAo+mHjyA8IHJlbnJ5b3VcIDsKK+aOouafu+apnyA8IHRhbnNha2lcIDsKK+eUsOiIjuWutiA8IGluYWtheWFcIDsKK+WQiOWjgSA8IGdhcHBla2lcIDsKK+WHuumhjSA8IGRlYml0YWlcIDsKK+WIuemCoyA8IHNldHN1bmFcIDsKK+W5tOmVtyA8IG5lbmNob3VcIDsKK+WHuumgrSA8IHNodXR0b3VcIDsKK+WIh+mZpCA8IHNldHN1am9cIDsKK+iRreewgCA8IHlvc2hpenVcIDsKK+mBi+i7ouiyuyA8IHVudGVuaGlcIDsKK+apmeearuayuSA8IHRvdWhpeXVcIDsKK+a0i+WCmCA8IHlvdWdhc2FcIDsKK+mBjuW5tOW6piA8IGthbmVuZG9cIDsKK+eglOeptiA8IGtlbmt5dXVcIDsKK+mAsui7jSA8IHNoaW5ndW5cIDsKK+mFkuavkiA8IHNodWRva3VcIDsKK+iWrOWTgSA8IHlha3VoaW5cIDsKK+ayiOaAnSA8IGNoaW5zaGlcIDsKK+WNl+a0iyA8IG5hbicneW91XCA7CivmrbvogokgPCBzaGluaWt1XCA7CivmgJ3mg5EgPCBvbW93YWt1XCA7Civps7boibIgPCB0b2JpaXJvXCA7CivpgYvli5XlhbcgPCB1bmRvdWd1XCA7CivokL3og4YgPCByYWt1dGFuXCA7Civps6XokawgPCBjaG91c291XCA7CivmsqLlsbEgPCB0YWt1c2FuXCA7CivlvqHlrZjnn6UgPCBnb3pvbmppXCA7CivliLrouqsgPCBzYXNoaW1pXCA7CivlkITlnLAgPCBrYWt1Y2hpXCA7CivoloTloqggPCB1c3V6dW1pXCA7CivlrrbmlL/np5EgPCBrYXNlaWthXCA7CivlkITlm70gPCBrYWtrb2t1XCA7CivokabnrJsgPCBhc2hpYnVlXCA7CivlsI/lpYfpupcgPCBrb2dpcmVpXCA7CivluZXpm7sgPCBtYWt1ZGVuXCA7CivliaXoo70gPCBoYWt1c2VpXCA7CivphpzmhYsgPCBzaHV1dGFpXCA7Civnn63ntaEgPCB0YW5yYWt1XCA7Civnp7vkvY/ogIUgPCBpanV1c2hhXCA7CivmsJHms4ogPCBtaW5wYWt1XCA7CivnpL7lkYogPCBzaGFrb2t1XCA7CivlvIHohpwgPCBiZW5tYWt1XCA7CivpgZPlhbflsYsgPCBkb3VndXlhXCA7CivphpzmgqogPCBzaHV1YWt1XCA7CivolqzliaQgPCB5YWt1emFpXCA7Civmr5TnjocgPCBoaXJpdHN1XCA7CivlvIrnv5IgPCBoZWlzaHV1XCA7CivlvbnniZsgPCBla2lneXV1XCA7CivlkIznvqnoqp4gPCBkb3VnaWdvXCA7CivmsrzlnLAgPCBudW1hY2hpXCA7CivojqvpgKMgPCBiYWt1cmVuXCA7Civms5XlkI0gPCBob3VteW91XCA7CivmqKHmk6zmiKYgPCBtb2dpc2VuXCA7CivliJ3pgJ8gPCBzaG9zb2t1XCA7CivlkI3lj7cgPCBteW91Z291XCA7Civms5XljZogPCBob3VoYWt1XCA7CivpgIbpgYsgPCBneWFrdXVuXCA7CivnnInpm6ogPCBiaXNldHN1XCA7Civlh7jpj6EgPCB0b2treW91XCA7CivlkIjlj6MgPCBhaWt1Y2hpXCA7CivnpL7liYcgPCBzaGFzb2t1XCA7CivojZLpp5IgPCBhcmFnb21hXCA7CivmsLjml6UgPCBlaWppdHN1XCA7CivliIbph50gPCBmdW5zaGluXCA7CivliIbph48gPCBidW5yeW91XCA7CivokrLlhazoi7EgPCB0YW5wb3BvXCA7CivliKXot68gPCBiZXRzdXJvXCA7Civms5XlipsgPCBob3VyaWtpXCA7Civmr5TnhrEgPCBoaW5ldHN1XCA7Civms5XliYcgPCBob3Vzb2t1XCA7CivnqL3lj6TnnYAgPCBrZWlrb2dpXCA7CivnnrwgPCBtYWJ1dGFcIDsKK+i+tyA8IHN1YmVydVwgOwor556zIDwgaGl0b21pXCA7CivovKkgPCB5YWthcmFcIDsKK+ebsiA8IG1lc2hpaVwgOwor6LuKIDwga3VydW1hXCA7Civluo8gPCB0c3VpZGVcIDsKK+eahiA8IG1pbicnbmFcIDsKK+W5lSA8IHRvYmFyaVwgOwor5bidIDwgbWlrYWRvXCA7Civlt6YgPCBoaWRhcmlcIDsKK+eWviA8IHNoaXRzdVwgOwor55WzIDwgdGF0YW1pXCA7CivnlaAgPCBoYXRha2VcIDsKK+eTpiA8IGthd2FyYVwgOwor5bKsIDwgbWlzYWtpXCA7CivlsYogPCB0b2Rva2VcIDsKK+WwiiA8IG1pa290b1wgOwor5a6dIDwgdGFrYXJhXCA7CivnjaMgPCBrZW1vbm9cIDsKK+eLvCA8IG9va2FtaVwgOwor54usIDwgZG9pdHN1XCA7CivoqqAgPCBtYWtvdG9cIDsKK+iovCA8IGFrYXNoaVwgOwor54i2IDwgY2hpY2hpXCA7CivoqJsgPCBuYW1hcmlcIDsKK+WomCA8IG11c3VtZVwgOwor5ae/IDwgc3VnYXRhXCA7Civlpr4gPCB3YXJhd2FcIDsKK+WmuSA8IGltb3V0b1wgOwor6KaBIDwga2FuYW1lXCA7CivopbcgPCB0YXN1a2lcIDsKK+eFmSA8IGtlbXVyaVwgOwor6KWWIDwgZnVzdW1hXCA7Civoo7ggPCBoYWRha2FcIDsKK+iitCA8IGhha2FtYVwgOwor6KKLIDwgZnVrdXJvXCA7CivooaMgPCBrb3JvbW9cIDsKK+WfgyA8IGhva29yaVwgOwor6J+AIDwgc2h1dHN1XCA7CivpvKwgPCBpdGFjaGlcIDsKK+m8oCA8IG5lenVtaVwgOwor5ZyfIDwgdHN1Y2hpXCA7CivmvIYgPCB1cnVzaGlcIDsKK+ibuSA8IHNhbmFnaVwgOwor6JuZIDwga2F3YXp1XCA7CivlmaggPCB1dHN1d2FcIDsKK+a4ryA8IG1pbmF0b1wgOwor6JasIDwga3VzdXJpXCA7CivolqogPCB0YWtpZ2lcIDsKK+a2mSA8IG5hbWlkYVwgOwor6JaHIDwgemVubWFpXCA7CivoloQgPCBzdXN1a2lcIDsKK+m0iSA8IGthcmFzdVwgOwor5Y6oIDwga3VyaXlhXCA7CivljbggPCBvcm9zaGlcIDsKK+WNtSA8IHRhbWFnb1wgOwor5q2qIDwgaWJpdHN1XCA7CivprZogPCBzYWthbmFcIDsKK+WNlyA8IG1pbmFtaVwgOwor5YygIDwgdGFrdW1pXCA7Civmq7sgPCBzYWt1cmFcIDsKK+iLuiA8IGljaGlnb1wgOwor5YuiIDwgaGF6dW1pXCA7CivmqpwgPCBoaW5va2lcIDsKK+iIhSA8IHNodXV0b1wgOwor5qaKIDwgc2FrYWtpXCA7CivlhYkgPCBoaWthcmlcIDsKK+mkqCA8IHlha2F0YVwgOwor5YCZIDwgc291cm91XCA7Civpn78gPCBoaWJpa2lcIDsKK+afsyA8IHlhbmFnaVwgOwor5L+EIDwgbml3YWthXCA7Civkv4IgPCBrYWthcmlcIDsKK+S+vyA8IHlvc3VnYVwgOwor5p6VIDwgbWFrdXJhXCA7CivmnLogPCB0c3VrdWVcIDsKK+S7jyA8IGhvdG9rZVwgOwor5puHIDwga3Vtb3JpXCA7Civpm4AgPCBzdXp1bWVcIDsKK+S6rCA8IG1peWFrb1wgOwor6ZqjIDwgdG9uYXJpXCA7CivkuZkgPCBraW5vdG9cIDsKK+S5jSA8IG5hZ2FyYVwgOwor5LiHIDwgeW9yb3p1XCA7CivkuIMgPCBzaGljaGlcIDsKK+S4gSA8IGhpbm90b1wgOwor57eRIDwgbWlkb3JpXCA7CivntaMgPCBrYXN1cmlcIDsKK+e1hiA8IGtpenVuYVwgOwor57C+IDwgc3VkYXJlXCA7Civpj6EgPCBrYWdhbWlcIDsKK+mOliA8IGt1c2FyaVwgOwor562SIDwgdHN1dHN1XCA7CivmjYwgPCBzYWJha2lcIDsKK+mLvCA8IGhhZ2FuZVwgOwor56ulIDwgd2FyYWJlXCA7Civpi48gPCBoYXNhbWlcIDsKK+aJiSA8IHRvYmlyYVwgOwor5omAIDwgdG9rb3JvXCA7Civlu4PomZogPCBoYWlreW9cIDsKK+W/v+aAkiA8IGZ1bicnbnVcIDsKK+mAgei/jiA8IHNvdWdlaVwgOwor6L+F6Zu3IDwgamlucmFpXCA7Civlv5fmk40gPCBzaGlzb3VcIDsKK+mAmuiyqCA8IHRzdXVrYVwgOwor5ZCN5Yi6IDwgbWVpc2hpXCA7CivlkIzliY0gPCBkb3V6ZW5cIDsKK+ekvOWFuCA8IHJlaXRlblwgOwor5YmN6KGbIDwgemVuJydlaVwgOwor55+i562IIDwgeWFoYXp1XCA7Civph5HlnZEgPCBraW5rb3VcIDsKK+WOn+W9oiA8IGdlbmtlaVwgOwor5b6p5qipIDwgZnVra2VuXCA7CivliY3ooYwgPCB6ZW5rb3VcIDsKK+WQjeWIhiA8IG1laWJ1blwgOwor5b2i54q2IDwga2Vpam91XCA7CivliJfou4ogPCByZXNzaGFcIDsKK+WQjeWIgCA8IG1laXRvdVwgOwor5buD6JepIDwgaGFpaGFuXCA7CivphY3mnKwgPCBoYWlob25cIDsKK+WOmuW/lyA8IGtvdXNoaVwgOwor6JaE5ZGzIDwgaGFrdW1pXCA7CivnpL7lg6cgPCBzaGFzb3VcIDsKK+WQiOWJpCA8IGdvdXphaVwgOwor5ZCM5YemIDwgZG91c2hvXCA7Civms5XlhbggPCBob3V0ZW5cIDsKK+ekvuWCtSA8IHNoYXNhaVwgOwor5bm06LyqIDwgbmVucmluXCA7CivlubTovKkgPCBuZW5wYWlcIDsKK+ejgeW/gyA8IGppc2hpblwgOwor5YiG6YGjIDwgYnVua2VuXCA7Civlj4vlpb0gPCB5dXVrb3VcIDsKK+WLpOeVqiA8IGtpbmJhblwgOwor55+z56KRIDwgc2VraWhpXCA7CivlkIjliIcgPCBnYXNzYWlcIDsKK+mAgOi7oiA8IHRhaXRlblwgOwor5q2j57eoIDwgc2VpaGVuXCA7Civlj43lpIkgPCBoYW5wZW5cIDsKK+WPseWSpCA8IHNoaXR0YVwgOwor5ZCM5YWaIDwgZG91dG91XCA7Civlub3otqMgPCB5dXVzaHVcIDsKK+WKoOe1piA8IGtha3l1dVwgOwor5ZCN5YSqIDwgbWVpeXV1XCA7CivljrPlsIEgPCBnZW5wdXVcIDsKK+W4r+mbuyA8IHRhaWRlblwgOwor5b6L5rOVIDwgcmlwcG91XCA7Civlh4zpm7IgPCByeW91dW5cIDsKK+W/q+aEnyA8IGthaWthblwgOwor6YG46ICDIDwgc2Vua291XCA7Civnn6LnqK4gPCB5YWRhbmVcIDsKK+axjuaEmyA8IGhhbicnYWlcIDsKK+W8t+eblyA8IGdvdXRvdVwgOwor5Y6z5a+SIDwgZ2Vua2FuXCA7Civph4/lmaggPCByeW91a2lcIDsKK+WQjeWDpyA8IG1laXNvdVwgOwor5q2j57WxIDwgc2VpdG91XCA7CivpgYrolakgPCB5dXV0b3VcIDsKK+axuuWumiA8IGtldHRlaVwgOwor6JK45rCRIDwgam91bWluXCA7CivlvL7nl5UgPCBkYW5rb25cIDsKK+mHjeWZuCA8IGp1dXRvblwgOwor6L+C6ZeKIDwgdWthdHN1XCA7CivpgKDoqaMgPCB6b3VrZWlcIDsKK+a3oeOAhSA8IHRhbnRhblwgOwor5Y6z5a6IIDwgZ2Vuc2h1XCA7Civlj7DlkI0gPCB0YWltZWlcIDsKK+WOs+WtmCA8IGdlbnNvblwgOwor5q2j57O7IDwgc2Vpa2VpXCA7CivpgqrnpZ4gPCBqYXNoaW5cIDsKK+i+uumZrCA8IGhlbnN1dVwgOwor6YCg6KiAIDwgem91Z2VuXCA7CivpgIPotbAgPCB0b3Vzb3VcIDsKK+mAmuiqniA8IHRzdXVnb1wgOwor5YiG6LyJIDwgYnVuc2FpXCA7CivphbjmgKcgPCBzYW5zZWlcIDsKK+ebuOmWoiA8IHNvdWthblwgOwor5b6M5q61IDwga291ZGFuXCA7CivnpL7kvJogPCBzaGFrYWlcIDsKK+mAmuipsSA8IHRzdXV3YVwgOwor5b6p5qChIDwgZnVra291XCA7CivlkIzlgKQgPCBkb3VjaGlcIDsKK+WIh+i6qyA8IGtpcmltaVwgOwor5ZCb5Li7IDwga3Vuc2h1XCA7CivojYnpnosgPCB3YXJhamlcIDsKK+azleS+iyA8IGhvdXJlaVwgOwor5Yi26KOBIDwgc2Vpc2FpXCA7CivljZfmlrkgPCBuYW5wb3VcIDsKK+WMl+a1tyA8IGhva2thaVwgOwor5b+g5oSbIDwgY2h1dWFpXCA7Civph5Hlk6EgPCBraW4nJ2luXCA7CivljZjmlocgPCB0YW5idW5cIDsKK+eiuuW6piA8IGtha3Vkb1wgOwor5rCR5pybIDwgbWluYm91XCA7CivoloTliKkgPCBoYWt1cmlcIDsKK+ekvuS6pCA8IHNoYWtvdVwgOwor5b6u5pyNIDwgYmlmdWt1XCA7CivmsYLmhJsgPCBreXV1YWlcIDsKK+WNmOaVsCA8IHRhbnN1dVwgOwor5b+F5pC6IDwgaGlra2VpXCA7Civph5Hlk4EgPCBraW5waW5cIDsKK+WKo+etiSA8IHJldHRvdVwgOwor55uk6Z2iIDwgYmFubWVuXCA7CivljKDmsJcgPCBzaG91a2lcIDsKK+WLleeUoyA8IGRvdXNhblwgOwor5bu257SNIDwgZW4nJ25vdVwgOwor56CV54mHIDwgc2FpaGVuXCA7CivnnJ/pgIYgPCBtYXNha2FcIDsKK+WQjOS9kyA8IGRvdXRhaVwgOwor5rKz5YyXIDwga2Fob2t1XCA7CivnpL7kuLsgPCBzaGFzaHVcIDsKK+WNl+aUryA8IG5hbnNoaVwgOwor5Y+j5ZC7IDwga291ZnVuXCA7CivlvL7nkLQgPCBkYW5raW5cIDsKK+W4q+mWgCA8IHNoaW1vblwgOwor5rCX5pepIDwga2liYXlhXCA7CivmgKXloLQgPCBreXV1YmFcIDsKK+WQjOS8tCA8IGRvdWhhblwgOwor6YCj6KGhIDwgcmVua291XCA7Civlj6PlkJ8gPCBrb3VnaW5cIDsKK+azleS6uiA8IGhvdWppblwgOwor5Ya36Z2ZIDwgcmVpc2VpXCA7Civov5Tph5EgPCBoZW5raW5cIDsKK+WPguWggiA8IHNhbmRvdVwgOwor5b+r5byBIDwga2FpYmVuXCA7Civlv6DmgZUgPCBjaHV1am9cIDsKK+WPrOWLnyA8IHNob3Vib1wgOwor5ZCI5L21IDwgZ291aGVpXCA7CivlkJDkubMgPCB0b255dXVcIDsKK+WQjeS6uiA8IG1laWppblwgOwor5ZCI5L2TIDwgZ2F0dGFpXCA7CivoloTlhYkgPCBoYWtrb3VcIDsKK+iUk+W7tiA8IG1hbicnZW5cIDsKK+W9k+eEtiA8IHRvdXplblwgOwor5Y+N5ZmsIDwgaGFuemVpXCA7Civljp/lr7ggPCBnZW5zdW5cIDsKK+WQjOS7gSA8IGRvdWppblwgOwor5ZCM5Lq6IDwgZG91bmluXCA7CivlhbjpupcgPCB0ZW5yZWlcIDsKK+WQkeS4iiA8IGtvdWpvdVwgOwor5bej6baPIDwgc3Vkb3JpXCA7CivljYHmnKwgPCBqdXBwb25cIDsKK+W7g+iJpiA8IGhhaWthblwgOwor5rGf5bGxIDwga291emFuXCA7CivluqfolqwgPCB6YXlha3VcIDsKK+iQjue4riA8IGlzaHVrdVwgOwor6YeN5ZCIIDwganV1Z291XCA7CivluoPoqIAgPCBrb3VnZW5cIDsKK+W7g+iIuSA8IGhhaXNlblwgOwor5buQ6IKlIDwga3l1dWhpXCA7CivlkIzkuZcgPCBkb3Vqb3VcIDsKK+W/nOaApSA8IG91a3l1dVwgOwor6YGK6Iq4IDwgeXV1Z2VpXCA7Civmrovnl5UgPCB6YW5rb25cIDsKK+WJjeiRlyA8IHplbmNob1wgOwor6I+W6JKyIDwgc2hvdWJ1XCA7Civph47ljp8gPCBub2hhcmFcIDsKK+axuuWjiiA8IGtla2thaVwgOwor5Y6f5a2QIDwgZ2Vuc2hpXCA7Civmr5vmsIggPCBtb3VzZW5cIDsKK+WNoOaLoCA8IHNlbmt5b1wgOwor5Yil6KO9IDwgYmVzc2VpXCA7CivlvIrnpL4gPCBoZWlzaGFcIDsKK+avlOazgSA8IGhpa3lvdVwgOwor6YCP6KaWIDwgdG91c2hpXCA7CivljYrmlbAgPCBoYW5zdXVcIDsKK+mGnOWlsyA8IHNodXVqb1wgOwor5Yq555uuIDwga2lraW1lXCA7CivmsJHmlL8gPCBtaW5zZWlcIDsKK+mztOemvSA8IG1laWtpblwgOwor5rCR5pS+IDwgbWlucG91XCA7Civov5Hpg7cgPCBraW5nb3VcIDsKK+mFkuaJiyA8IHNha2F0ZVwgOwor6L+U6YKEIDwgaGVua2FuXCA7CivlvJPnn6IgPCB5dW1peWFcIDsKK+WJjeiPnCA8IHplbnNhaVwgOwor5Y+N5ZWPIDwgaGFubW9uXCA7Civlh6bpgYcgPCBzaG9ndXVcIDsKK+W/g+aKgCA8IHNoaW5naVwgOwor5Yid6KaLIDwgc2hva2VuXCA7CivmrKDoiKogPCBrZWtrb3VcIDsKK+ebl+mbuyA8IHRvdWRlblwgOwor5beo6a+oIDwga3lvZ2VpXCA7CivmsoPlnJ8gPCB5b2t1ZG9cIDsKK+W3u+mmliA8IGthbnNodVwgOwor5Ye66LazIDwgZGVhc2hpXCA7CivmrovnlJ8gPCB6YW5zZWlcIDsKK+WMl+aspyA8IGhva3VvdVwgOwor55uX6ZujIDwgdG91bmFuXCA7CivliqDnpoQgPCBrYXJva3VcIDsKK+WPt+S/uCA8IGdvdWhvdVwgOwor5Y2x5oClIDwga2lreXV1XCA7CivliZvoh4YgPCBnb3Vva3VcIDsKK+W8vueJhyA8IGRhbnBlblwgOwor55yM6YGTIDwga2VuZG91XCA7CivljbPlv5wgPCBzb2t1b3VcIDsKK+atpuelniA8IGJ1c2hpblwgOwor6L+U6YCBIDwgaGVuc291XCA7CivlvqnmlLkgPCBmdWtrYWlcIDsKK+mHkeWJmyA8IGtvbmdvdVwgOwor5bmj6LKiIDwgaGVpa291XCA7CivphY3miYAgPCBoYWlzaG9cIDsKK+WNteW9oiA8IHJhbmtlaVwgOwor6YeR5Yi4IDwga2lua2VuXCA7CivphZTmhYsgPCBzdWl0YWlcIDsKK+W3qOmtgSA8IGt5b2thaVwgOwor6JWD5ZywIDwgYmFuY2hpXCA7CivljYHmlbAgPCBqdXVzdXVcIDsKK+axveWcpyA8IGtpYXRzdVwgOwor5Yeh6YCAIDwgYm9udGFpXCA7CivpgZTogIUgPCB0YXNzaGFcIDsKK+W+k+adpSA8IGp1dXJhaVwgOwor6YG4566hIDwgc2Vua2FuXCA7CivliIborbIgPCBidW5qb3VcIDsKK+WPuOS8miA8IHNoaWthaVwgOwor5b6h5paZIDwgZ29yeW91XCA7Civlhobpq5ggPCBlbmRha2FcIDsKK+i/kei+uiA8IGtpbnBlblwgOwor5Y+j5YaFIDwga291bmFpXCA7Civlh7rosrsgPCBzaHVwcGlcIDsKK+mHkeWGoCA8IGtpbmthblwgOwor5Y2w5b2iIDwgaW5neW91XCA7Civlj7jku6QgPCBzaGlyZWlcIDsKK+mHjeWIkSA8IGp1dWtlaVwgOwor6L+96Ki0IDwgdHN1aXNvXCA7Civlj7fku6QgPCBnb3VyZWlcIDsKK+WKoOehqyA8IGthcnl1dVwgOwor5Ymb6IOGIDwgZ291dGFuXCA7Civph5HlhbcgPCBrYW5hZ3VcIDsKK+WPjuWPlyA8IHNodXVqdVwgOwor6YWN5oWuIDwgaGFpcnlvXCA7Civov7foq5YgPCBtZWlyb25cIDsKK+avjuavjiA8IG1haW1haVwgOwor6L+96KiYIDwgdHN1aWtpXCA7CivnnaHok64gPCBzdWlyZW5cIDsKK+W/g+aEjyA8IHNoaW4nJ2lcIDsKK+WJsue3miA8IGthc3NlblwgOwor5YiH6KuMIDwgc2Vra2FuXCA7Civlv5jlubQgPCBib3VuZW5cIDsKK+WNs+W6pyA8IHNva3V6YVwgOwor5be76aCtIDwga2FudG91XCA7CivlirnnlKggPCBrb3V5b3VcIDsKK+iSsuafsyA8IGhvcnl1dVwgOwor5oGS5L6LIDwga291cmVpXCA7Civlj7LkvJ0gPCBzaGlkZW5cIDsKK+W/jeW+kyA8IG5pbmp1dVwgOwor6YW35a+SIDwga29ra2FuXCA7Civli4fnjJsgPCB5dXVtb3VcIDsKK+avrOaenCA8IGt5dXVrYVwgOwor6I236LazIDwgbmlhc2hpXCA7CivluLjpgZMgPCBqb3Vkb3VcIDsKK+WIhuipniA8IGJ1bnNoaVwgOwor5rK75LmxIDwgY2hpcmFuXCA7CivljbXlt6MgPCByYW5zb3VcIDsKK+atu+eUoyA8IHNoaXphblwgOwor5q2755SfIDwgc2hpc2VpXCA7CivljZrmhJsgPCBoYWt1YWlcIDsKK+W4uOmAoyA8IGpvdXJlblwgOwor5YaS6aCtIDwgYm91dG91XCA7CivmgKflkJEgPCBzZWlrb3VcIDsKK+W4sOmDtyA8IGtpa3lvdVwgOwor5rC05bmzIDwgc3VpaGVpXCA7CivmsrvkuJYgPCBjaGlzZWlcIDsKK+W8leeUqCA8IGluJyd5b3VcIDsKK+murum6lyA8IHNlbnJlaVwgOwor55uu6YeYIDwgbWVrdWdpXCA7Civlj43li5UgPCBoYW5kb3VcIDsKK+WJjeiFlSA8IG1hZXVkZVwgOwor5Y+y5LmXIDwgc2hpam91XCA7CivliIbop6MgPCBidW5rYWlcIDsKK+WPguWQkSA8IHNhbmtvdVwgOwor5Y+z5LiKIDwgbWlnaXVlXCA7CivpgaPnsbMgPCBrZW5iZWlcIDsKK+WPpOS/lyA8IGtvem9rdVwgOwor5b6M5pmvIDwga291a2VpXCA7CivljpblpKcgPCBib3VkYWlcIDsKK+mAgOihjCA8IHRhaWtvdVwgOwor5Y+v5LmfIDwga2FuYXJpXCA7CivluqfoiIggPCB6YWt5b3VcIDsKK+ato+ecvCA8IHNlaWdhblwgOwor5b6F5pybIDwgdGFpYm91XCA7Civno4Hlo4EgPCBqaWhla2lcIDsKK+W3rumhjSA8IHNhZ2FrdVwgOwor5q6L54mHIDwgemFucGVuXCA7Civlj6XkvZwgPCBrdXNha3VcIDsKK+W+jOaYhiA8IGtvdWtvblwgOwor5q2j55uuIDwgbWFzYW1lXCA7Civnn6LnjokgPCB5YWRhbWFcIDsKK+WNgeaMhyA8IGp1c3NoaVwgOwor5Y2Y5oCnIDwgdGFuc2VpXCA7Civmr5vmoLkgPCBtb3Vrb25cIDsKK+iSuOaVoyA8IGpvdXNhblwgOwor5b6M5pa5IDwga291aG91XCA7CivphY3lvZMgPCBoYWl0b3VcIDsKK+WKoOeZgiA8IGthcnlvdVwgOwor5b6L5peLIDwgcmlzc2VuXCA7Civlj6PkvJ0gPCBrb3VkZW5cIDsKK+mFkuW6lyA8IHNodXRlblwgOwor5bir6YGTIDwgc2hpZG91XCA7CivlupXojbcgPCBzb2tvbmlcIDsKK+WIiuihjCA8IGthbmtvdVwgOwor5Ye66Ki0IDwgc2h1c3NvXCA7CivljZrlvpIgPCBiYWt1dG9cIDsKK+eggua8oCA8IHNhYmFrdVwgOwor5oCl5YufIDwga3l1dWJvXCA7CivlvLHngasgPCB5b3dhYmlcIDsKK+WJjeiAhSA8IHplbnNoYVwgOwor5oCl5YuZIDwga3l1dW11XCA7Civlt6jpoK0gPCBreW90b3VcIDsKK+iRieeJqSA8IGhhbW9ub1wgOwor5YiG6KKCIDwgYnVuYmVpXCA7CivlhobpoIIgPCBlbmNob3VcIDsKK+awl+aBryA8IGtpc29rdVwgOwor5b6M5pS7IDwga291a291XCA7Civps6nnm64gPCBoYXRvbWVcIDsKK+mHjeS9kyA8IGp1dXRhaVwgOwor5Y6z5ZG9IDwgZ2VubWVpXCA7CivkuIvkuJboqbEgPCBnZXNld2FcIDsKK+WGkumZuiA8IGJvdWtlblwgOwor5Y6f5ZugIDwgZ2VuJydpblwgOwor5YaF6aCFIDwgbmFpa291XCA7CivliY3nv4UgPCB6ZW5zaGlcIDsKK+W6puiDuCA8IGRva3lvdVwgOwor55yL6LKrIDwga2Fua2FuXCA7CivljZrlvJUgPCBoYWt1aW5cIDsKK+apn+mVtyA8IGtpY2hvdVwgOwor5Ymy56ymIDwgd2FyaWZ1XCA7CivmsJfmgKcgPCBraXNob3VcIDsKK+WNgeaIkiA8IGppa2thaVwgOwor5Y+X5L+hIDwganVzaGluXCA7Civnm67pgJQgPCBtb2t1dG9cIDsKK+i+sumBkyA8IG5vdWRvdVwgOwor55+z54GwIDwgc2Vra2FpXCA7CivmsJHmg4UgPCBtaW5qb3VcIDsKK+WOmuWcsCA8IGF0c3VqaVwgOwor6YeN5Lu7IDwganV1bmluXCA7Civov47os5MgPCBnZWloaW5cIDsKK+WOs+WQmyA8IGdlbmt1blwgOwor5YmN572uIDwgemVuY2hpXCA7Civph43ku6MgPCBqdXVkYWlcIDsKK+WIl+iXqSA8IHJlcHBhblwgOwor6bOl55uuIDwgdG9yaW1lXCA7CivljZjlvIEgPCB0YW5iZW5cIDsKK+auteautSA8IGRhbmRhblwgOwor5rC05bGLIDwgbWl6dXlhXCA7CivlvoDmmJQgPCBvdXNla2lcIDsKK+mHkeS4uyA8IGtpbnNodVwgOwor56C05qC8IDwgaGFrYWt1XCA7CivljYPmha4gPCBzZW5yeW9cIDsKK+WOu+WLoiA8IGt5b3NlaVwgOwor5b2T5q2zIDwgdG91c2FpXCA7Civnmq7pnakgPCBoaWtha3VcIDsKK+WGhemdoiA8IG5haW1lblwgOwor5be36ZaTIDwga291a2FuXCA7CivlhrfphZIgPCByZWlzaHVcIDsKK+WNteWtkCA8IHJhbnNoaVwgOwor5oCq5YWJIDwga2Fpa291XCA7CivlhbzpoYwgPCBrZW5kYWlcIDsKK+aqgOmCoyA8IGRhbicnbmFcIDsKK+mHjuS4rSA8IG5vbmFrYVwgOwor6YCg6Ii5IDwgem91c2VuXCA7Civlj4LlhoUgPCBzYW5kYWlcIDsKK+awtOWusyA8IHN1aWdhaVwgOwor5b655bqVIDwgdGV0dGVpXCA7CivmsJflvLEgPCBraXlvd2FcIDsKK+WPm+S5sSA8IGhhbnJhblwgOwor5b6h5oW2IDwgZ3lva2VpXCA7CivnnIzoraYgPCBrZW5rZWlcIDsKK+W4nemBkyA8IHRlaWRvdVwgOwor5Yil6I2YIDwgYmVzc291XCA7CivnooHluK0gPCBnb3Nla2lcIDsKK+WIneiRiSA8IHNob3lvdVwgOwor5b285pa5IDwga2FuYXRhXCA7Civnm5/pgqYgPCBtZWlob3VcIDsKK+W/q+WgsSA8IGthaWhvdVwgOwor5Y6t5Y6tIDwgaXlhaXlhXCA7CivmsLTlrZAgPCBtaXp1Z29cIDsKK+WGjemWiyA8IHNhaWthaVwgOwor6YGg56ewIDwgZW5zaG91XCA7CivljJfmlrkgPCBob3Bwb3VcIDsKK+WGhemZoyA8IG5haWppblwgOwor5Y2K5b6EIDwgaGFua2VpXCA7CivokZvmua8gPCBrdXp1eXVcIDsKK+murumtmiA8IHNlbmd5b1wgOwor5Ya36YGHIDwgcmVpZ3V1XCA7CivljYrlvbEgPCBoYW4nJ2VpXCA7Civlj43kvosgPCBoYW5yZWlcIDsKK+W3o+mbmyA8IHN1aGluYVwgOwor6L+m5qW8576FIDwga2FydXJhXCA7Civlvq7lvLEgPCBiaWpha3VcIDsKK+mDt+adkSA8IGdvdXNvblwgOwor56Gs5oCnIDwga291c2VpXCA7CivphZLlsYsgPCBzYWtheWFcIDsKK+WJjee3qCA8IHplbnBlblwgOwor6YCA6JS1IDwgdGFpem91XCA7Civlh53orbAgPCBneW91Z2lcIDsKK+WJjee3miA8IHplbnNlblwgOwor5bed6Z2iIDwga2F3YW1vXCA7Civljp/lk4EgPCBnZW5waW5cIDsKK+W8leeFpyA8IGluc2hvdVwgOwor5YWo6aSoIDwgemVua2FuXCA7Civov5HoqaAgPCBraW4nJ2VpXCA7CivokpnmmKcgPCBtb3VtYWlcIDsKK+aui+a7kyA8IHphbnNoaVwgOwor5rKZ5LiYIDwgc2FreXV1XCA7CivmrbvngrkgPCBzaGl0ZW5cIDsKK+ebuOiyjCA8IHNvdWJvdVwgOwor6YCB6JGsIDwgc291c291XCA7Civnmb3prZQgPCBoYWt1bWFcIDsKK+WNnOWxhSA8IGJva2t5b1wgOwor56KN5a2QIDwgZ2Fpc2hpXCA7Civmr47mmakgPCBtYWliYW5cIDsKK+WOs+WGrCA8IGdlbnRvdVwgOwor5Y+L5Lq6IDwgeXV1amluXCA7Civnm4rph5EgPCBla2lraW5cIDsKK+WKtOeBvSA8IHJvdXNhaVwgOwor5Y2X5bK4IDwgbmFuZ2FuXCA7CivmiYvlv6Dlrp8gPCB0ZW1hbWVcIDsKK+edgOiNtyA8IGNoYWtrYVwgOwor6JGm5q+bIDwgYXNoaWdlXCA7CivmrKHnrKwgPCBzaGlkYWlcIDsKK+WOmuWRsyA8IGF0c3VtaVwgOwor5YW16ZujIDwgaGVpbmFuXCA7CivljbPlpJwgPCBzb2t1eWFcIDsKK+W9ouacqCA8IGthdGFnaVwgOwor5bir6LOHIDwgc2hpc2hpXCA7CivljZflsbEgPCBuYW56YW5cIDsKK+eci+imliA8IGthbnNoaVwgOwor6L+R6KaWIDwga2luc2hpXCA7Civlt4zpoK0gPCBnYW50b3VcIDsKK+iMtumBkyA8IGNoYWRvdVwgOwor5qyh56ugIDwgamlzaG91XCA7CivlhbfpmbMgPCBndWNoaW5cIDsKK+aAquS6uiA8IGthaWppblwgOwor55m76auYIDwgdG91a291XCA7Civnm6TouJ4gPCBiYW5reW9cIDsKK+WFtemaiiA8IGhlaXRhaVwgOwor6YCj572yIDwgcmVuc2hvXCA7Civpp4TmtJLokL0gPCBkYWphcmVcIDsKK+ato+eKryA8IHNlaWhhblwgOwor5Y2Y5bCEIDwgdGFuc2hhXCA7Civlj4LkvJogPCBzYW5rYWlcIDsKK+WKh+eUuyA8IGdla2lnYVwgOwor5YWo6Z+zIDwgemVuJydvblwgOwor5Y215aGUIDwgcmFudG91XCA7CivlhZrpppYgPCB0b3VzaHVcIDsKK+mBjuensCA8IGthc2hvdVwgOwor5Y2B5bmyIDwgamlra2FuXCA7Civoi7HpoJggPCBlaXJ5b3VcIDsKK+WNkeWxrCA8IGhpem9rdVwgOwor5beo6ZCYIDwgb29nYW5lXCA7CivmqKrpoJggPCBvdXJ5b3VcIDsKK+efs+ayuSA8IHNla2l5dVwgOwor5bu754q2IDwga2Fpam91XCA7CivkuIvpp4TlsYsgPCBnZXRheWFcIDsKK+mBlOejqCA8IGRhcnVtYVwgOwor5Y6f5YuVIDwgZ2VuZG91XCA7CivljZflrosgPCBuYW5zb3VcIDsKK+W8seawlyA8IHlvd2FraVwgOwor5YWo6Z2iIDwgemVubWVuXCA7CivlvqHlubggPCBtaXl1a2lcIDsKK+W+mOW+iiA8IGhhaWthaVwgOwor6YO15pS/IDwgeXV1c2VpXCA7CivljYrls7YgPCBoYW50b3VcIDsKK+WNkeWwjyA8IGhpc2hvdVwgOwor55m96aasIDwgaGFrdWJhXCA7Civnm7joq4cgPCBzb3VkYW5cIDsKK+asneepjSA8IHVzc2VraVwgOwor5b6B5oimIDwgc2Vpc2VuXCA7CivlibLnm64gPCB3YXJlbWVcIDsKK+WFqOmciiA8IHplbnJlaVwgOwor6YCj57mLIDwgcmVua2VpXCA7CivlvZPmnb8gPCBhdGVpdGFcIDsKK+WPguS4jiA8IHNhbicneW9cIDsKK+W+jOaClCA8IGtvdWthaVwgOwor5Y+C5LiKIDwgc2Fuam91XCA7CivmsojkuIsgPCBjaGlua2FcIDsKK+ecn+iWryA8IHNoaW5qb1wgOwor5Ye96JOLIDwga2FuZ2FpXCA7Civljp/liJ0gPCBnZW5zaG9cIDsKK+WJjeerryA8IHplbnRhblwgOwor5b+r5ZOJIDwga2Fpc2FpXCA7CivmsJflraYgPCBraWdha3VcIDsKK+awtOWfnyA8IHN1aWlraVwgOwor5b6u5bCRIDwgYmlzaG91XCA7CivlhajpmoogPCB6ZW50YWlcIDsKK+mAgeiHtCA8IHNvdWNoaVwgOwor6YCj57a/IDwgcmVubWVuXCA7CivlibXnl5UgPCBzb3Vrb25cIDsKK+assuebriA8IHlva3VtZVwgOwor5b6X5bqmIDwgdG9rdWRvXCA7CivlvpPlvJ8gPCBqdXV0ZWlcIDsKK+mDqOaXjyA8IGJ1em9rdVwgOwor6JWD5Lq6IDwgYmFuamluXCA7Civoj5znqK4gPCBuYXRhbmVcIDsKK+ebtOiotCA8IGppa2lzb1wgOwor5Y6f5YW4IDwgZ2VudGVuXCA7CivpsZfojI4gPCByaW5rZWlcIDsKK+WFpemZoiA8IG55dXVpblwgOwor55+t5q+bIDwgdGFubW91XCA7CivojZLoqpUgPCBrb3V0YW5cIDsKK+WIneiAgSA8IHNob3JvdVwgOwor6YW35ZCPIDwga29rdXJpXCA7CivpgKPntK8gPCByZW5ydWlcIDsKK+iVg+S4uyA8IGJhbnNodVwgOwor5bir6KiTIDwgc2hpa3VuXCA7CivmqKnpmZAgPCBrZW5nZW5cIDsKK+WLmOaknCA8IGthbmtlblwgOwor6YG654mpIDwgaWJ1dHN1XCA7Civlh4boqLEgPCBqdW5reW9cIDsKK+mFkuWgtCA8IHNha2FiYVwgOwor5YWo6ZaLIDwgemVua2FpXCA7CivmronmrbsgPCBqdW5zaGlcIDsKK+WOn+WDjyA8IGdlbnpvdVwgOwor55uu6KixIDwgbWVtb3RvXCA7CivmsLTlmqIgPCBzdWlub3VcIDsKK+W9k+aWuSA8IHRvdWhvdVwgOwor5Ye66I23IDwgc2h1a2thXCA7CivnnJ/oj7AgPCBtYWtvbW9cIDsKK+WNl+WkqSA8IG5hbnRlblwgOwor55uu6KeSIDwgbWVrYWRvXCA7Civlho3pgbggPCBzYWlzZW5cIDsKK+W7g+ebpCA8IGhhaWJhblwgOwor56Gr5a6JIDwgcnl1dWFuXCA7CivmqZ/ou7ggPCBraWppa3VcIDsKK+WLouacmyA8IHNlaWJvdVwgOwor5qip6ZaAIDwga2VubW9uXCA7CivpipjjgIUgPCBtZWltZWlcIDsKK+WLmOahiCA8IGthbicnYW5cIDsKK+W+jOW5tCA8IGtvdW5lblwgOwor5Yy75bGAIDwgaWt5b2t1XCA7Civlho3pgYogPCBzYWl5dXVcIDsKK+egsuaJiyA8IGhvdXNodVwgOwor55m96ZyyIDwgaGFrdXJvXCA7CivoirHps6UgPCBrYWNob3VcIDsKK+i/veiCpSA8IHRzdWloaVwgOwor5b+15YaZIDwgbmVuc2hhXCA7Civnn6Xmra8gPCBjaGlzaGlcIDsKK+W4hui1sCA8IGhhbnNvdVwgOwor5b6A5b6pIDwgb3VmdWt1XCA7Civnn7PmprQgPCB6YWt1cm9cIDsKK+eZvembsiA8IGhha3V1blwgOwor5YaN6YCBIDwgc2Fpc291XCA7CivlhYnpoK0gPCBrb3V0b3VcIDsKK+W+i+W4qyA8IHJpc3NoaVwgOwor5oSI44CFIDwgaXlvaXlvXCA7CivlhbXpi5IgPCBoZWlob3VcIDsKK+WHuuiKsSA8IGRlYmFuYVwgOwor5q2p5risIDwgaG9zb2t1XCA7CivlhYjpoK0gPCBzZW50b3VcIDsKK+W6g+e4gSA8IGhpcm9lblwgOwor5rWq44CFIDwgcm91cm91XCA7CivlipvmvJQgPCByaWtpZW5cIDsKK+mCquassiA8IGpheW9rdVwgOwor6aeE5rOV6J66IDwgZGFib3JhXCA7Civlv4PlnJ8gPCBzaGluZG9cIDsKK+W+ruWmmSA8IGJpbXlvdVwgOwor5b6E5bqtIDwga2VpdGVpXCA7CivliKXntJkgPCBiZXNzaGlcIDsKK+W/nOWPrCA8IG91c2hvdVwgOwor5Ye66Ii5IDwgZGVmdW5lXCA7CivphbfliJEgPCBrb2trZWlcIDsKK+W/q+WIgCA8IGthaXRvdVwgOwor5YWI6Z6tIDwgc2VuYmVuXCA7Civlt6fpgYUgPCBrb3VjaGlcIDsKK+W6p+ekgSA8IHphc2hvdVwgOwor6YG454KtIDwgc2VudGFuXCA7CivlvIHmuIggPCBiZW5zYWlcIDsKK+WNiuWkqSA8IGhhbnRlblwgOwor5b+X5ZCRIDwgc2hpa291XCA7Civlh7roh40gPCBkZWJlc29cIDsKK+W9t+W+qCA8IGhvdWtvdVwgOwor5Y2K5aScIDwgaGFuJyd5YVwgOwor5Yi256m6IDwgc2Vpa3V1XCA7Civljp/kurogPCBnZW5qaW5cIDsKK+WGjei7oiA8IHNhaXRlblwgOwor5b2i5oiQIDwga2Vpc2VpXCA7CivluILosqkgPCBzaGloYW5cIDsKK+ehneWuiSA8IHNob3VhblwgOwor5Yid57WMIDwgc2hva2VpXCA7CivljYrlo4ogPCBoYW5rYWlcIDsKK+W8lOatjCA8IGNob3VrYVwgOwor6L+R6JGXIDwga2luY2hvXCA7CivokL3mrL4gPCByYWtrYW5cIDsKK+WIh+e+vSA8IGtpcmloYVwgOwor56Gd5a2QIDwgZ2FyYXN1XCA7Civlubnnt5ogPCBrYW5zZW5cIDsKK+mDveW/gyA8IHRvc2hpblwgOwor56K65L+dIDwga2FrdWhvXCA7CivmrbPmrbMgPCBzYWlzYWlcIDsKK+WFhembuyA8IGp1dWRlblwgOwor5rGg5LqtIDwgY2hpdGVpXCA7CivlhoXovKogPCB1Y2hpd2FcIDsKK+mBi+eUqCA8IHVuJyd5b3VcIDsKK+ebm+imsyA8IHNlaWthblwgOwor5Y2D5aScIDwgc2VuJyd5YVwgOwor5bqP56ugIDwgam9zaG91XCA7CivliLbnpqYgPCBzZWlneW9cIDsKK+WIhue9siA8IGJ1bnNob1wgOwor5b2i5oWLIDwga2VpdGFpXCA7CivnoazlpIkgPCBrb3VoZW5cIDsKK+WFiOmZoyA8IHNlbmppblwgOwor5YWs6YeRIDwga291a2luXCA7Civps6XmuKEgPCBjaG90dG9cIDsKK+mBheeVqiA8IG9zb2JhblwgOwor5Yqb5rOzIDwgcmlraWVpXCA7CivmraPmsrkgPCBzaG91eXVcIDsKK+WNsOWMoyA8IGluYmFrb1wgOwor5Y2z5Yq5IDwgc29ra291XCA7CivojbfoiLkgPCBuaWJ1bmVcIDsKK+W6g+evhCA8IGtvdWhhblwgOwor55+z5pyoIDwgaXNoaWtpXCA7CivnoqnlhJIgPCBzZWtpanVcIDsKK+iRl+abuCA8IGNob3Nob1wgOwor5bed6L66IDwga2F3YWJlXCA7Civps6nmtL4gPCBoYXRvaGFcIDsKK+avjeW+oSA8IGhhaGFnb1wgOwor6YGO5L+d6K23IDwga2Fob2dvXCA7CivphK3lo7AgPCB0ZWlzZWlcIDsKK+egsuW8viA8IGhvdWRhblwgOwor5b2T5omAIDwgdG91c2hvXCA7Civnm5voo4UgPCBzZWlzb3VcIDsKK+awtOWLoiA8IHN1aXNlaVwgOwor6YO95bqBIDwgdG9jaG91XCA7Civlha3pg6ggPCByb2t1YnVcIDsKK+atouawtCA8IHNoaXN1aVwgOwor6a6u6YutIDwgc2VuJydlaVwgOwor6YWS5ZCNIDwgc2h1bWVpXCA7Civnm5voobAgPCBzZWlzdWlcIDsKK+awkeWboyA8IG1pbmRhblwgOwor6Iq46aKoIDwgZ2VpZnV1XCA7CivlvKbmnZAgPCBnZW56YWlcIDsKK+WIneetiSA8IHNob3RvdVwgOwor5YWs6YK4IDwga291dGVpXCA7CivljbDliLsgPCBpbmtva3VcIDsKK+WJsueDuSA8IGthcHBvdVwgOwor6JOu5Y+wIDwgcmVuZGFpXCA7CivmraPmrr8gPCBzZWlkZW5cIDsKK+WGjeiyqSA8IHNhaWhhblwgOwor5YiH57eaIDwgc2Vzc2VuXCA7CivliaPnirYgPCBrZW5qb3VcIDsKK+WNteWGhiA8IHJhbicnZW5cIDsKK+mFt+S8vCA8IGtva3VqaVwgOwor5Yil56iuIDwgYmVzc2h1XCA7CivnnaXnnaggPCBoZWlnZWlcIDsKK+iRieafhCA8IHlvdWhlaVwgOwor6JGX5piOIDwgY2hvbWVpXCA7CivlvpPlp4kgPCBqdXVzaGlcIDsKK+auuuaEjyA8IHNhdHN1aVwgOwor6L6e6KGoIDwgamloeW91XCA7CivpnZ7llrbliKkgPCBoaWVpcmlcIDsKK+WFrOmBuCA8IGtvdXNlblwgOwor5b6T5aa5IDwganV1bWFpXCA7CivliKnnpo8gPCByaWZ1a3VcIDsKK+e1jOe3r+WEgCA8IGtlaWlnaVwgOwor5Y2g5Y+WIDwgc2Vuc2h1XCA7Civmr47lubQgPCBtYWluZW5cIDsKK+aui+aakSA8IHphbnNob1wgOwor5YWs6YGTIDwga291ZG91XCA7CivmraPmraMgPCBzZWlzZWlcIDsKK+W5s+exsyA8IGhlaWJlaVwgOwor6YWN5ZCIIDwgaGFpZ291XCA7CivmsLTliIYgPCBzdWlidW5cIDsKK+ecn+e+jiA8IHNoaW5iaVwgOwor5bmE6IiOIDwgYWt1c2hhXCA7CivprZrpsZcgPCBneW9yaW5cIDsKK+efouafhCA8IHlhZ2FyYVwgOwor5YWl6YOoIDwgbnl1dWJ1XCA7Civnn7PmlqcgPCBzZWtpZnVcIDsKK+WGl+irhyA8IGpvdWRhblwgOwor5rC05Ya3IDwgc3VpcmVpXCA7Civnn67mmJ8gPCB3YWlzZWlcIDsKK+iSvOWkqSA8IHNvdXRlblwgOwor5YWo6YGTIDwgemVuZG91XCA7Civlubznq6UgPCB5b3Vkb3VcIDsKK+i9n+i9nyA8IGdvdWdvdVwgOwor552h55ygIDwgc3VpbWluXCA7Civlt6jos4cgPCBreW9zaGlcIDsKK+iRieabuCA8IGhhZ2FraVwgOwor5YyF5bivIDwgaG91dGFpXCA7CivljoTku4sgPCB5YWtrYWlcIDsKK+awkeWWtiA8IG1pbicnZWlcIDsKK+WLh+aWrSA8IHl1dWRhblwgOwor5YuV5o+6IDwgZG91eW91XCA7Civmrr/lvqEgPCB0b25vZ29cIDsKK+WNgeWbniA8IGp1a2thaVwgOwor5Y2B5ZubIDwganV1eW9uXCA7Civlt6josqEgPCBreW96YWlcIDsKK+WNlOWSjCA8IGt5b3V3YVwgOwor5bm956qTIDwgeXV1c291XCA7Civlt53ot68gPCBrYXdhamlcIDsKK+WLh+aVoiA8IHl1dWthblwgOwor5beo6LGhIDwga3lvem91XCA7CivlhpfoqIAgPCBqb3VnZW5cIDsKK+asoOeJhyA8IGtha2VyYVwgOwor6YCj55ufIDwgcmVubWVpXCA7CivlubznqJogPCB5b3VjaGlcIDsKK+W+jOWkqSA8IGtvdXRlblwgOwor5YW36LazIDwgZ3Vzb2t1XCA7CivpsZfnsokgPCByaW5wdW5cIDsKK+WMluWtpiA8IGthZ2FrdVwgOwor6YG15rOVIDwganVucG91XCA7Civnmb3ph5EgPCBoYWtraW5cIDsKK+mBqea4qSA8IHRla2lvblwgOwor5Y2X5Y2KIDwgbmFuaGFuXCA7CivpgLjnkIMgPCBpa2t5dXVcIDsKK+mFjeWJpCA8IGhhaXphaVwgOwor5q2v5qC5IDwgc2hpa29uXCA7CivljZLljrsgPCBzb2treW9cIDsKK+WGjeiqlSA8IHNhaXRhblwgOwor6YG45rCRIDwgc2VubWluXCA7CivluILooZcgPCBzaGlnYWlcIDsKK+W1qemrmCA8IHN1dWtvdVwgOwor5YWI6YuSIDwgc2VucG91XCA7CivnnJ/ntr8gPCBtYXdhdGFcIDsKK+aso+eEtiA8IGtpbnplblwgOwor5ZGR5YW16KGbIDwgbm9uYmVlXCA7CivlvozlobUgPCBrb3VqaW5cIDsKK+WFqOi7jSA8IHplbmd1blwgOwor6YCB56i/IDwgc291a291XCA7CivlhrfolLUgPCByZWl6b3VcIDsKK+mFjeWIhiA8IGhhaWJ1blwgOwor5b6p5ZOhIDwgZnVrdWluXCA7Civlh7rntI0gPCBzdWl0b3VcIDsKK+WHpue9riA8IHNob2NoaVwgOwor5YaN6KiqIDwgc2FpaG91XCA7CivojYnokYkgPCBrdXNhYmFcIDsKK+W5tOeojiA8IG5lbnplaVwgOwor5YaN6KiCIDwgc2FpdGVpXCA7Civoi5vphbcgPCBrYWtva3VcIDsKK+W8t+aJkyA8IGt5b3VkYVwgOwor6YKq5pWZIDwgamFreW91XCA7Civnn6LmlocgPCB5YWJ1bWlcIDsKK+WGheirhyA8IG5haWRhblwgOwor5rCP5ZCNIDwgc2hpbWVpXCA7CivlhbfosaEgPCBndXNob3VcIDsKK+ecn+e0hSA8IHNoaW5rdVwgOwor5Y2T5Yq5IDwgdGFra291XCA7CivoiabpvaIgPCBrYW5yZWlcIDsKK+WLpOaAoCA8IGtpbnRhaVwgOwor5Y2z5LuKIDwgc29ra29uXCA7CivpgKPnlaogPCByZW5iYW5cIDsKK+W+tOWLnyA8IGNob3Vib1wgOwor6YKm5paHIDwgaG91YnVuXCA7CivlvZPlupcgPCB0b3V0ZW5cIDsKK+asoOeCuSA8IGtldHRlblwgOwor5byK5p2RIDwgaGVpc29uXCA7CivlvZPlubQgPCB0b3VuZW5cIDsKK+W5tOelrSA8IG5lbnNhaVwgOwor5b285aWzIDwga2Fub2pvXCA7CivojbfnuIQgPCBuaW5hd2FcIDsKK+atu+aWhyA8IHNoaWJ1blwgOwor6I2P6IuSIDwgamluemVuXCA7CivmrbPmmakgPCBzYWliYW5cIDsKK+WMheWuuSA8IGhvdXlvdVwgOwor6L6y6Iq4IDwgbm91Z2VpXCA7CivlubTnpLwgPCBuZW5yZWlcIDsKK+W8lOaXlyA8IGNob3VraVwgOwor6YCA56S+IDwgdGFpc2hhXCA7CivljYrljYogPCBoYW5oYW5cIDsKK+WIpeebgyA8IGJlcHBhaVwgOwor6YGO5r+AIDwga2FnZWtpXCA7CivlhoXoqJMgPCBuYWlrdW5cIDsKK+eah+i7jSA8IGtvdWd1blwgOwor5rC05LuZIDwgc3Vpc2VuXCA7CivljbTkuIsgPCBreWFra2FcIDsKK+S4jee+qeeQhiA8IGZ1Z2lyaVwgOwor5YaN6KO9IDwgc2Fpc2VpXCA7CivlvLfmhaIgPCBnb3VtYW5cIDsKK+W4jOiWhCA8IGtpaGFrdVwgOwor5Y2Y5YWDIDwgdGFuZ2VuXCA7CivpgaDmtYUgPCB0b29hc2FcIDsKK+i9hui9pCA8IHJva3Vyb1wgOwor5q+S5ammIDwgZG9rdWZ1XCA7CivljZflhYkgPCBuYW5rb3VcIDsKK+mFjeWBtiA8IGhhaWd1dVwgOwor5YaF6KazIDwgbmFpa2FuXCA7CivnmbrpgIEgPCBoYXNzb3VcIDsKK+W+oeWRiiA8IG90c3VnZVwgOwor5YaF6KanIDwgbmFpcmFuXCA7CivpgaDmtIsgPCBlbicneW91XCA7CivlvL7mgKcgPCBkYW5zZWlcIDsKK+WGheimiyA8IG5haWtlblwgOwor5b2i5a65IDwga2VpeW91XCA7CivmnInmhI/lt64gPCB5dXVpc2FcIDsKK+W8t+aDhSA8IGdvdWpvdVwgOwor5Y2D5Y2DIDwgY2hpZGppXCA7Civov5HnuIEgPCBraW4nJ2VuXCA7CivnnJ/nrocgPCBzaGlua29cIDsKK+mtmumhniA8IGd5b3J1aVwgOwor5YuH5oimIDwgeXV1c2VuXCA7Civpto/lj6MgPCBrZWlrb3VcIDsKK+W4uOe9riA8IGpvdWNoaVwgOwor5Y2S5YWIIDwgc29zc2VuXCA7CivpgaDmsoggPCBlbmNoaW5cIDsKK+ato+acrCA8IHNlaWhvblwgOwor5q2j5pyoIDwgbWFzYWtpXCA7CivlhajosowgPCB6ZW5ib3VcIDsKK+mDqOWwhiA8IGJ1c2hvdVwgOwor5YWI6YGjIDwgc2Vua2VuXCA7CivnoavljJYgPCByeXV1a2FcIDsKK+mBoeaxgiA8IHNva3l1dVwgOwor55y85568IDwgZ2Fua2VuXCA7CivljYrliIYgPCBoYW5wdW5cIDsKK+WIhuekviA8IGJ1bnNoYVwgOwor5q2j5pu4IDwgc2Vpc2hvXCA7CivlhaXosrsgPCBueXV1aGlcIDsKK+efreaJgCA8IHRhbnNob1wgOwor5Y2I5Yi7IDwgZ29rb2t1XCA7CivljaDkvY8gPCBzZW5qdXVcIDsKK+W3oeimpyA8IGp1bnJhblwgOwor5rCX5YSYIDwga2ltYW1hXCA7Civlv4zkuK0gPCBraWNodXVcIDsKK+WGheijhSA8IG5haXNvdVwgOwor5b255aC0IDwgeWFrdWJhXCA7CivprZTpoqggPCBtYWthemVcIDsKK+WHuueqkyA8IGRlbWFkb1wgOwor55uu6ISCIDwgbWV5YW5pXCA7CivliqnmlZkgPCBqb2t5b3VcIDsKK+mFkuS7mSA8IHNodXNlblwgOwor6baP5Y21IDwga2VpcmFuXCA7CivnnJ/nq7kgPCBtYWRha2VcIDsKK+eci+e1jCA8IGthbmtpblwgOwor5bu65p2QIDwga2VuemFpXCA7Civnmbrou4ogPCBoYXNzaGFcIDsKK+awkeWFtSA8IG1pbnBlaVwgOwor5b6p5YiKIDwgZnVra2FuXCA7CivljYrlhoYgPCBoYW4nJ2VuXCA7Civli5jlvZMgPCBrYW5kb3VcIDsKK+W8iuaUvyA8IGhlaXNlaVwgOwor5YyI5aW0IDwga3lvdWRvXCA7CivphZLkubEgPCBzaHVyYW5cIDsKK+ebsuiAhSA8IG1vdXNoYVwgOwor5buD5rayIDwgaGFpZWtpXCA7Civlt6booaggPCBzYWh5b3VcIDsKK+mBhea7niA8IGNoaXRhaVwgOwor5YiA56S8IDwgdG91cmVpXCA7CivlvIHmmI4gPCBiZW5tZWlcIDsKK+W/g+S6iyA8IHNoaW5qaVwgOwor5YuY5byBIDwga2FuYmVuXCA7CivmrLLmsJcgPCB5b2t1a2VcIDsKK+efreaFriA8IHRhbnJ5b1wgOwor5Y2D5YiGIDwgc2VuYnVuXCA7CivliqPmlZcgPCByZXBwYWlcIDsKK+avjuWklSA8IG1haXl1dVwgOwor56Cy5aOwIDwgaG91c2VpXCA7CivlhYnovKogPCBrb3VyaW5cIDsKK+WNkuWAkiA8IHNvdHRvdVwgOwor5Y2Y5L2TIDwgdGFudGFpXCA7Civnmb7otrMgPCBtdWthZGVcIDsKK+asp+a0siA8IG91c2h1dVwgOwor5YuF5oSPIDwgY2hva3VpXCA7Civlhazoq5YgPCBrb3Vyb25cIDsKK+WNgeWIhiA8IGp1cHB1blwgOwor6a2a6Zu3IDwgZ3lvcmFpXCA7CivlhYjovKkgPCBzZW5wYWlcIDsKK+W5s+ebriA8IGhpcmFtZVwgOwor6YO35aOrIDwgZ291c2hpXCA7CivmraTmlrkgPCBrb25hdGFcIDsKK+WJo+azlSA8IGtlbnBvdVwgOwor6Iy26Iy2IDwgY2hhY2hhXCA7CivmraPmlrkgPCBzZWlob3VcIDsKK+atpuaVmSA8IGJ1a3lvdVwgOwor5Ymq5q+bIDwgc2VubW91XCA7CivphY3kuZcgPCBoYWlqb3VcIDsKK+efnOaMgSA8IGt5b3VqaVwgOwor6L6y6ICVIDwgbm91a291XCA7CivljYPlhoYgPCBzZW4nJ2VuXCA7CivliJ3nlJ8gPCBzaG9zZWlcIDsKK+WFrOiqjSA8IGtvdW5pblwgOwor5beh6KGMIDwganVua291XCA7CivljLrlioMgPCBrdWtha3VcIDsKK+ato+aWhyA8IHNlaWJ1blwgOwor5q2M5qC8IDwga2FrYWt1XCA7Civlub3nlYwgPCB5dXVrYWlcIDsKK+ato+aVsCA8IHNlaXN1dVwgOwor5b6M5ZGzIDwgYXRvYWppXCA7CivnoLLloZQgPCBob3V0b3VcIDsKK+ehneWMliA8IHNob3VrYVwgOwor5YW86KGMIDwga2Vua291XCA7CivlvavloZEgPCBjaG91c29cIDsKK+WNgeWFqCA8IGp1dXplblwgOwor5YWs6KixIDwga291a3lvXCA7CivljZfkuqwgPCBuYW5raW5cIDsKK+efpeaFriA8IGNoaXJ5b1wgOwor5q275omAIDwgc2hpc2hvXCA7CivlubznlJ8gPCB5b3VzZWlcIDsKK+mBk+awkSA8IGRvdW1pblwgOwor5Y2K5YCkIDwgaGFuJyduZVwgOwor5oK244CFIDwgbW9ubW9uXCA7Civov5TnrZQgPCBoZW50b3VcIDsKK+iMtuiJsiA8IGNoYWlyb1wgOwor5qip6KyAIDwga2VuYm91XCA7Civpto/lhqAgPCB0b3Nha2FcIDsKK+eZvuiyqCA8IGh5YWtrYVwgOwor5bu75paHIDwga2FpYnVuXCA7Civli4Hmgo0gPCBrZWlrYW5cIDsKK+WFg+i7jSA8IGdlbmd1blwgOwor5Y2B5YSEIDwganV1b2t1XCA7CivlvJXmiYsgPCBoaWtpdGVcIDsKK+mtlOmanCA8IG1hc2hvdVwgOwor5YiH55uuIDwga2lyZW1lXCA7CivlvJXmiLggPCBoaWtpZG9cIDsKK+i7n+miqCA8IG5hbnB1dVwgOwor55y855WMIDwgZ2Fua2FpXCA7CivojLboh7wgPCBjaGF1c3VcIDsKK+mBuOabuCA8IHNlbnNob1wgOwor6Iux6KizIDwgZWl5YWt1XCA7Civou6Lpn7MgPCB0ZW4nJ29uXCA7CivmrovlvbEgPCB6YW4nJ2VpXCA7CivoirPphocgPCBob3VqdW5cIDsKK+W5tOeUoyA8IG5lbnNhblwgOwor5bm055SfIDwgbmVuc2VpXCA7CivljYPlgI0gPCBzZW5iYWlcIDsKK+W7g+auiyA8IGhhaXphblwgOwor6Imv6aasIDwgcnlvdWJhXCA7CivlubPnlJ8gPCBoZWl6ZWlcIDsKK+mBiuawkSA8IHl1dW1pblwgOwor6JGb5biDIDwga3V6dWZ1XCA7Civlu4PmraIgPCBoYWlzaGlcIDsKK+i8qui7oiA8IHJpbnRlblwgOwor6auY57ev5bqmIDwga291aWRvXCA7CivluIboiLkgPCBob2J1bmVcIDsKK+WNgeWAjSA8IGp1dWJhaVwgOwor5Ymb5q+bIDwgZ291bW91XCA7Civmr47lm54gPCBtYWlrYWlcIDsKK+avjeWbvSA8IGJva29rdVwgOwor5rCR5Lq6IDwgbWluamluXCA7CivnnJ/noIIgPCBtYXNhZ29cIDsKK+WKqeaJiyA8IHN1a2V0ZVwgOwor5q2i5o+aIDwgc2hpeW91XCA7Civlub3njoQgPCB5dXVnZW5cIDsKK+iKuOmBkyA8IGdlaWRvdVwgOwor5Yqg5oyvIDwga2FzaGluXCA7Civnm5vogIUgPCBqb3VzaGFcIDsKK+W9ueWToSA8IHlha3VpblwgOwor5b6u5LmzIDwgYmlueXV1XCA7CivnnIznqI4gPCBrZW56ZWlcIDsKK+WEqumBhyA8IHl1dWd1dVwgOwor55+z5belIDwgc2Vra291XCA7CivlhoXolLUgPCBuYWl6b3VcIDsKK+awkeS4uyA8IG1pbnNodVwgOwor5Yid54qvIDwgc2hvaGFuXCA7Civmrr/loIIgPCBkZW5kb3VcIDsKK+W6tuawkSA8IHNob21pblwgOwor556s5pmCIDwgc2h1bmppXCA7CivlhKrpgIAgPCB5dXV0YWlcIDsKK+WHueebriA8IGt1Ym9tZVwgOwor5Yqj5omNIDwgcmVzc2FpXCA7CivovKrot50gPCByaW5reW9cIDsKK+i/lOekvCA8IGhlbnJlaVwgOwor5YiA55eVIDwgdG91a29uXCA7Civps7TmiLggPCBuYXJ1dG9cIDsKK+WLmOWumiA8IGthbmpvdVwgOwor5YaF6JKZIDwgbmFpbW91XCA7Civnm67ns54gPCBtZWt1c29cIDsKK+W6p+a1tCA8IHpheW9rdVwgOwor5qiZ6KqeIDwgaHlvdWdvXCA7Civnmb3oqbEgPCBoYWt1d2FcIDsKK+WIpOeEtiA8IGhhbnplblwgOwor56CC5a2QIDwgc3VuYWdvXCA7CivmgqDjgIUgPCB5dXV5dXVcIDsKK+WKtOW9uSA8IHJvdWVraVwgOwor6IyX6I23IDwgbXlvdWdhXCA7Civnm67nsaAgPCBtZWthZ29cIDsKK+edgOeJqSA8IGtpbW9ub1wgOwor6LuK6aKoIDwgc2hhZnV1XCA7CivmqJnoqJggPCBoeW91a2lcIDsKK+msmumrryA8IHNodXplblwgOwor5YmN5q61IDwgemVuZGFuXCA7Civpga7mlq0gPCBzaGFkYW5cIDsKK+mBqeaZgiA8IHRla2lqaVwgOwor6I2J57SZIDwgc291c2hpXCA7CivokL3lvowgPCByYWt1Z29cIDsKK+ebsueuoSA8IG1vdWthblwgOwor5Y2B5LiJIDwganV1c2FuXCA7CivljYHkuIcgPCBqdXVtYW5cIDsKK+avkuWRsyA8IGRva3VtaVwgOwor6JGJ5be7IDwgaGFtYWtpXCA7CivlvLXlrZAgPCBoYXJpa29cIDsKK+efs+WxiyA8IGlzaGl5YVwgOwor5b6h5Li7IDwgb251c2hpXCA7Civpg73lkIggPCB0c3Vnb3VcIDsKK+W+oeS4rSA8IG9uY2h1dVwgOwor6Iqx6LyqIDwgaGFuYXdhXCA7CivlvIHmhbYgPCBiZW5rZWlcIDsKK+S4jeiynuWvnSA8IGZ1dGVuZVwgOwor5YWN6KixIDwgbWVua3lvXCA7CivlubLniq8gPCBrYW5wYW5cIDsKK+WJquaenSA8IHNlbnNoaVwgOwor6Iqx6Lu4IDwga2FqaWt1XCA7Civlub3nhLYgPCB5dXV6ZW5cIDsKK+WHueeUsCA8IGt1Ym90YVwgOwor6Ium6KG3IDwga3VjaHV1XCA7CivnmbroposgPCBoYWtrZW5cIDsKK+WFjuinkiA8IHRva2FrdVwgOwor5b2T5ZywIDwgdG91Y2hpXCA7CivlubLniakgPCBoaW1vbm9cIDsKK+W5s+eJiCA8IGhlaWhhblwgOwor6Ium6KGMIDwga3VneW91XCA7Civpr6johIIgPCBnZWlzaGlcIDsKK+WGjeiIiCA8IHNhaWtvdVwgOwor6JC95bqmIDwgb2NoaWRvXCA7CivnoLLlj7AgPCBob3VkYWlcIDsKK+WGjeiHqCA8IHNhaXJpblwgOwor55yf55SwIDwgc2FuYWRhXCA7CivliqnlvbkgPCBqb3lha3VcIDsKK+avjuWPtyA8IG1haWdvdVwgOwor5Yqj5oCnIDwgcmVzc2VpXCA7Civnm67nrIogPCBtZXphcnVcIDsKK+atr+W9oiA8IGhhZ2F0YVwgOwor5by+5aWPIDwgZGFuc291XCA7CivljIXlkKsgPCBob3VnYW5cIDsKK+W7g+agoSA8IGhhaWtvdVwgOwor5b6M5L6/IDwga291YmluXCA7CivljI3ljJAgPCBob2Z1a3VcIDsKK+mDiuWkliA8IGtvdWdhaVwgOwor5by35aemIDwgZ291a2FuXCA7Civnmb3ooaMgPCBieWFrdWVcIDsKK+W3qOiJpiA8IGt5b2thblwgOwor6YCy5q2pIDwgc2hpbnBvXCA7Civlh6HnnLwgPCBib25nYW5cIDsKK+WDp+mWgCA8IHNvdW1vblwgOwor6L+U55uDIDwgaGVucGFpXCA7Civlt6XoirggPCBrb3VnZWlcIDsKK+i7jemaiiA8IGd1bnRhaVwgOwor6JC95beuIDwgcmFrdXNhXCA7Civlt6joiLkgPCBreW9zZW5cIDsKK+mxl+eKtiA8IHJpbmpvdVwgOwor6LuN6ZmjIDwgZ3VuamluXCA7CivovKrorJsgPCByaW5rb3VcIDsKK+aui+WtmCA8IHphbnpvblwgOwor5bmz54S2IDwgaGVpemVuXCA7CivliIfniYcgPCBzZXBwZW5cIDsKK+WMl+WFiSA8IGhva2tvdVwgOwor5q2m5b6zIDwgYnV0b2t1XCA7CivnnInnm64gPCBiaW1va3VcIDsKK+ecvOeCuSA8IGdhbnRlblwgOwor5YuV5aSpIDwgZG91dGVuXCA7Civlip/lvrMgPCBrdWRva3VcIDsKK+W+jOS7tiA8IGtvdWtlblwgOwor6Imm6ZqKIDwga2FudGFpXCA7Civmra/ljLvogIUgPCBoYWlzaGFcIDsKK+iLl+ijlCA8IGJ5b3VlaVwgOwor5Yqg5b25IDwga2F5YWt1XCA7Civlvozku6MgPCBrb3VkYWlcIDsKK+mxl+eJhyA8IHJpbnBlblwgOwor5byK5bqXIDwgaGVpdGVuXCA7CivnnJ/nkIYgPCBzaGlucmlcIDsKK+WElei8qSA8IHNhaWhhaVwgOwor55qu6IacIDwgaGltYWt1XCA7CivkvLzpoZTntbUgPCBuaWdhb2VcIDsKK+W9ueWEgCA8IHlha3VnaVwgOwor55yf54+gIDwgc2hpbmp1XCA7Civliarmlq0gPCBzZW5kYW5cIDsKK+WFrOiRrCA8IGtvdXNvdVwgOwor56CC5aC0IDwgc3VuYWJhXCA7CivlvIHlvZMgPCBiZW50b3VcIDsKK+mAk+a4myA8IHRlaWdlblwgOwor5b6A5L+hIDwgb3VzaGluXCA7Civou43ploAgPCBndW5tb25cIDsKK+W6p+aomSA8IHphaHlvdVwgOwor6a2a6YGTIDwgZ3lvZG91XCA7CivoiYfpppYgPCB0ZWlzaHVcIDsKK+mCquWulyA8IGphc2h1dVwgOwor5q2j5bymIDwgc2VpZ2VuXCA7Civli4flp78gPCB5dXVzaGlcIDsKK+WIhueFmSA8IGJ1bicnZW5cIDsKK+asoOacrCA8IGtlcHBvblwgOwor5q+O5YiGIDwgbWFpZnVuXCA7CivliLbmraIgPCBzZWlzaGlcIDsKK+mDteWIuCA8IHl1dWtlblwgOwor6I2S56OvIDwgYXJhaXNvXCA7Civou73ovKkgPCBrZWloYWlcIDsKK+iPr+aXjyA8IGthem9rdVwgOwor5qeL6YCgIDwga291em91XCA7CivokZflpKcgPCBjaG9kYWlcIDsKK+WHuueJqSA8IGRlbW9ub1wgOwor6IyF6IiOIDwgYm91c2hhXCA7Civluqfmpa0gPCB6YWd5b3VcIDsKK+WLneWboCA8IHNob3VpblwgOwor55qu6IKJIDwgaGluaWt1XCA7CivliY3moL0gPCBzZW56YWlcIDsKK+egsuWFtSA8IGhvdWhlaVwgOwor5YaF6IGeIDwgbmFpYnVuXCA7CivliIbngrkgPCBidW50ZW5cIDsKK+atu+WuiCA8IHNoaXNodVwgOwor5bqV5q2iIDwgdGVpc2hpXCA7CivlhbXoiLkgPCBoZWlzZW5cIDsKK+WIpeazlSA8IGJlcHBvdVwgOwor5Ye454mIIDwgdG9wcGFuXCA7CivpgJrmsJcgPCB0c3V1a2lcIDsKK+WKoOW3niA8IGthc2h1dVwgOwor5q2j5bi4IDwgc2Vpam91XCA7Civlu7vlu4ogPCBrYWlyb3VcIDsKK+mAn+atqSA8IHNva3Vob1wgOwor5bmy5r2fIDwgaGlnYXRhXCA7Civou73ouoEgPCBrZWlzb3VcIDsKK+mBpeaLnSA8IHlvdWhhaVwgOwor6Iq46KuHIDwgZ2VpZGFuXCA7Civlt6fogIUgPCBrb3VzaGFcIDsKK+WEquirmiA8IHl1dWpvdVwgOwor6bOp5bqnIDwgaGF0b3phXCA7Civnn63lpKcgPCB0YW5kYWlcIDsKK+W3pue/vCA8IHNheW9rdVwgOwor6Iy2562FIDwgY2hhc2VuXCA7CivliY3mnb8gPCBtYWVpdGFcIDsKK+WDu+mBoCA8IGhla2llblwgOwor6auY6bqXIDwga291cmFpXCA7CivouqvpoIMgPCBtaWdvcm9cIDsKK+WJjeadoSA8IHplbmpvdVwgOwor5YWl6I23IDwgbnl1dWthXCA7CivlibLmi6AgPCBrYWtreW9cIDsKK+W8t+WbuiA8IGt5b3Vrb1wgOwor5bmz5rqWIDwgaGVpanVuXCA7CivlvJ/lprkgPCB0ZWltYWlcIDsKK+eXm+mjsiA8IHRzdXVpblwgOwor5Yq+5aWPIDwgZ2Fpc291XCA7CivlubLmuoAgPCBrYW5tYW5cIDsKK+WJjeabuCA8IHplbnNob1wgOwor5bu25bm0IDwgZW4nJ25lblwgOwor55eF6a2UIDwgYnlvdW1hXCA7CivliKnmrLIgPCByaXlva3VcIDsKK+mDreWFrCA8IGtha2tvdVwgOwor5bqt5pyoIDwgbml3YWtpXCA7Civmpb3pn7MgPCBnYWt1b25cIDsKK+aui+WhgSA8IHphbnJ1aVwgOwor5YWl6IuRIDwgbnl1dWVuXCA7Civoi6XokYkgPCB3YWthYmFcIDsKK+WHhueciyA8IGp1bmthblwgOwor5bi455SoIDwgam91eW91XCA7Civli7Llip8gPCBrdW5rb3VcIDsKK+W8iuWusyA8IGhlaWdhaVwgOwor5q2k5bK4IDwgc2hpZ2FuXCA7CivlubPmt6EgPCBoZWl0YW5cIDsKK+eBq+S6i+WgtCA8IGthamliYVwgOwor5YWo6IisIDwgemVucGFuXCA7CivliY3mma8gPCB6ZW5rZWlcIDsKK+mBoOaImiA8IGVuc2VraVwgOwor5q665YiwIDwgc2F0dG91XCA7Civnm67nm5sgPCBtZW1vcmlcIDsKK+iLpeiPnCA8IHdha2FuYVwgOwor5biG56uLIDwgaG90YXRlXCA7Civpg6HliLYgPCBndW5zZWlcIDsKK+mDteS+vyA8IHl1dWJpblwgOwor6Lui6YCBIDwgdGVuc291XCA7Civnm67nmb0gPCBtZWppcm9cIDsKK+ebquebqiA8IHRvdXRvdVwgOwor5Yid5q61IDwgc2hvZGFuXCA7CivoiLnpoK0gPCBzZW5kb3VcIDsKK+W9k+WIhiA8IHRvdWJ1blwgOwor6YCx5pyfIDwgc2h1dWtpXCA7Civpg47lkJsgPCByb3VrdW5cIDsKK+i/keeKtiA8IGtpbmpvdVwgOwor5beo57eoIDwga3lvaGVuXCA7CivoirHoposgPCBoYW5hbWlcIDsKK+WGhee3miA8IG5haXNlblwgOwor5qyg5pCNIDwga2Vzc29uXCA7CivlhoXnt5IgPCBuYWlzaG9cIDsKK+WIkeazlSA8IGtlaWhvdVwgOwor6bO05a2QIDwgbmFydWtvXCA7CivliY3mlocgPCB6ZW5idW5cIDsKK+atpuWtpiA8IGJ1Z2FrdVwgOwor5Ye65r2uIDwgZGVzaGlvXCA7CivluK3nlLsgPCBzZWtpZ2FcIDsKK+mAhuavmyA8IHNha2FnZVwgOwor6YGp5b+cIDwgdGVraW91XCA7CivprZrosp0gPCBneW9iYWlcIDsKK+iLpeiKvSA8IHdha2FtZVwgOwor6Lui6LyJIDwgdGVuc2FpXCA7CivlhrfnnLwgPCByZWlnYW5cIDsKK+WLpOWLiSA8IGtpbmJlblwgOwor5qub5q+UIDwgc2hpcHBpXCA7CivpgIHmsLQgPCBzb3VzdWlcIDsKK+WLpOWKtCA8IGtpbnJvdVwgOwor5biC56iOIDwgc2hpemVpXCA7Civmr43kubMgPCBib255dXVcIDsKK+i7oui7oiA8IHRlbnRlblwgOwor6YGU5oiQIDwgdGFzc2VpXCA7CivlhoXntJsgPCBuYWlmdW5cIDsKK+WLv+S9kyA8IG1vdHRhaVwgOwor5YuY5ZCIIDwga2FuZ291XCA7CivojLbnopcgPCBjaGF3YW5cIDsKK+i7jemFjSA8IGd1bmJhaVwgOwor5bmz5rC0IDwgaGVpc3VpXCA7Civps6XlsYsgPCB0b3JpeWFcIDsKK+W5s+awkSA8IGhlaW1pblwgOwor5bmz5rCPIDwgaGVpc2hpXCA7CivpgKPmnp0gPCByZW5zaGlcIDsKK+avjeS4iiA8IGhhaGF1ZVwgOwor5YuV5ZCRIDwgZG91a291XCA7Civnlr7pp4YgPCBzaGlra3VcIDsKK+WHvea4oCA8IGthbmt5b1wgOwor6L6y55SjIDwgbm91c2FuXCA7CivliJHmrbsgPCBrZWlzaGlcIDsKK+alvOmWgCA8IHJvdW1vblwgOwor5YWs572yIDwga291c2hvXCA7CivlubTmra8gPCBuZW5zaGlcIDsKK+mAoOaelyA8IHpvdXJpblwgOwor6Ii56ZqKIDwgc2VudGFpXCA7CivpgaDlv4MgPCBlbnNoaW5cIDsKK+iLm+iLmyA8IGlyYWlyYVwgOwor5byx5ZGzIDwgeW93YW1pXCA7CivpganluqYgPCB0ZWtpZG9cIDsKK+WJiuaRqSA8IHNha3VtYVwgOwor6Lyq6JS1IDwgcmluem91XCA7CivlvL7lir4gPCBkYW5nYWlcIDsKK+mBlOaEjyA8IHRhdHN1aVwgOwor5bqV5pysIDwgdGVpaG9uXCA7CivliLDmnaUgPCB0b3VyYWlcIDsKK+eZuuiJpiA8IGhha2thblwgOwor5YiO5q27IDwgZnVuc2hpXCA7Civou43pgZMgPCBndW5kb3VcIDsKK+WJteW7uiA8IHNvdWtlblwgOwor5YmN5o+QIDwgemVudGVpXCA7CivlhqznnYAgPCBmdXl1Z2lcIDsKK+mAoOacrCA8IHpvdWhvblwgOwor55yL54K5IDwga2FudGVuXCA7CivmrKPmh5AgPCBraW5rYWlcIDsKK+iWhOOAhSA8IHVzdXVzdVwgOwor5Yas55ygIDwgdG91bWluXCA7Civosarpm6jnpo0gPCBnb3V1a2FcIDsKK+WLneWIqSA8IHNob3VyaVwgOwor55m76IeoIDwgdG91cmluXCA7Civou4rpgZMgPCBzaGFkb3VcIDsKK+W8t+WMliA8IGt5b3VrYVwgOwor6L6b55uuIDwga2FyYW1lXCA7Civli5Xli6IgPCBkb3VzZWlcIDsKK+eXtOmIjSA8IGNoaWRvblwgOwor5q6L5ZOBIDwgemFucGluXCA7CivlurjmiY0gPCB5b3VzYWlcIDsKK+WLleWKtCA8IGRvdXJvdVwgOwor6LuS6LyKIDwga2VuY2hpXCA7CivlhYnoipIgPCBrb3Vib3VcIDsKK+W4r+eKtiA8IG9iaWpvdVwgOwor6Ium6IKJIDwga3VuaWt1XCA7CivpgKPmmJ8gPCByZW5zZWlcIDsKK+ebrueOiSA8IG1lZGFtYVwgOwor6Iy255uGIDwgY2hhYm9uXCA7Civpg47lhZogPCByb3Vkb3VcIDsKK+W4g+efsyA8IGZ1c2VraVwgOwor6Iel6b6NIDwgZ2FyeW91XCA7CivlvIHlpKkgPCBiZW50ZW5cIDsKK+WIh+atryA8IHNlc3NoaVwgOwor55+t5ZG9IDwgdGFubWVpXCA7Civlt6PnrrEgPCBzdWJha29cIDsKK+auv+S4iiA8IHRlbmpvdVwgOwor6Ii36ZaAIDwgZ2VubW9uXCA7CivpgbjlrpogPCBzZW50ZWlcIDsKK+WLh+WQjSA8IHl1dW1laVwgOwor5q2j5aSnIDwgc2VpZGFpXCA7Civpq5Hpq48gPCBkb2t1cm9cIDsKK+WIqeacrSA8IHJpZnVkYVwgOwor6YG35a6uIDwgc2VuZ3V1XCA7Civou6LosrggPCB0ZW50YWlcIDsKK+W8geWjqyA8IGJlbnNoaVwgOwor5Lqc6bq76KO9IDwgYW1hc2VpXCA7CivpgZPlv7UgPCBkb3VuZW5cIDsKK+ees+WtkCA8IGRvdXNoaVwgOwor5b2T5LujIDwgdG91ZGFpXCA7CivluormnLogPCBzaG91Z2lcIDsKK+WFiOiIrCA8IHNlbnBhblwgOwor5b2T5Lq6IDwgdG91bmluXCA7CivpgbXlroggPCBqdW5zaHVcIDsKK+i7iui8qiA8IHNoYXJpblwgOwor5Yid5qChIDwgc2hva291XCA7Civou43ou4ogPCBndW5zaGFcIDsKK+mAo+aVlyA8IHJlbnBhaVwgOwor5bqV5pWwIDwgdGVpc3V1XCA7Civlh7rmsLQgPCBkZW1penVcIDsKK+i6q+mKrSA8IG1pemVuaVwgOwor6Imm6LyJIDwga2Fuc2FpXCA7CivluoPmnbEgPCBrYW50b25cIDsKK+W4g+ebriA8IG51bm9tZVwgOwor5YW456+EIDwgdGVucGFuXCA7Civnl4XpmaIgPCBieW91aW5cIDsKK+efpeWRvSA8IGNoaW1laVwgOwor55uX55SoIDwgdG91eW91XCA7CivliZvmgKcgPCBnb3VzZWlcIDsKK+W9k+S4liA8IHRvdXNlaVwgOwor5YuJ5YqxIDwgYmVucmVpXCA7Civlh7rmrrsgPCBkZWdhcmFcIDsKK+WFjuiCiSA8IHRvbmlrdVwgOwor55yg5rCXIDwgbmVtdWtlXCA7CivojLbnlaogPCBjaGFiYW5cIDsKK+ecn+awtCA8IG1hbWl6dVwgOwor5bem56iLIDwgc2Fob2RvXCA7Civpq5jpoqggPCBrb3VmdXVcIDsKK+W5veaelyA8IHl1dXJpblwgOwor6L+U5riIIDwgaGVuc2FpXCA7Civlhqznk5wgPCB0b3VnYW5cIDsKK+auiuWLsiA8IHNodWt1blwgOwor5YWJ6IOMIDwga291aGFpXCA7Civou4zot6EgPCBraXNla2lcIDsKK+W8seWGoCA8IGpha2thblwgOwor55+l5Y+LIDwgY2hpeXV1XCA7CivliqDlnKcgPCBrYWF0c3VcIDsKK+iMtueTtiA8IGNoYWJpblwgOwor5Yip5pW1IDwgcml0ZWtpXCA7CivliKTmmI4gPCBoYW5tZWlcIDsKK+mBqeWunCA8IHRla2lnaVwgOwor5q6K5YqfIDwgc2h1a291XCA7CivlvKXli5IgPCBtaXJva3VcIDsKK+WGpeeVjCA8IG1laWthaVwgOwor6Iqt6JWJIDwgYmFzaG91XCA7CivpgYvlvJMgPCB1bmt5dXVcIDsKK+WJo+W4ryA8IGtlbnRhaVwgOwor6auY6Z+zIDwgdGFrYW5lXCA7Civoia/osqggPCByeW91a2FcIDsKK+efreWJoyA8IHRhbmtlblwgOwor5YWI6IGWIDwgc2Vuc2VpXCA7CivlhajnsbMgPCB6ZW5iZWlcIDsKK+ebsueCuSA8IG1vdXRlblwgOwor5Yik5patIDwgaGFuZGFuXCA7CivmrZPlo7AgPCBrYW5zZWlcIDsKK+asveWumiA8IGtpbnRlaVwgOwor6YCP5piOIDwgdG91bWVpXCA7Civph43jgIUgPCBqdXVqdXVcIDsKK+i7n+irliA8IG5hbnJvblwgOwor6YK45YaFIDwgdGVpbmFpXCA7CivlhY3nvaogPCBtZW56YWlcIDsKK+W7g+W4nSA8IGhhaXRlaVwgOwor55+t5YiAIDwgdGFudG91XCA7CivlhaznrpcgPCBrb3VzYW5cIDsKK+iIjOmgrSA8IHpldHRvdVwgOwor6YG45aSWIDwgc2VuZ2FpXCA7CivmrbvljrsgPCBzaGlreW9cIDsKK+i7jeizhyA8IGd1bnNoaVwgOwor5byV5ZCIIDwgaGlraWFpXCA7Civlub3mma8gPCB5dXVrZWlcIDsKK+mBiuW6lSA8IHl1dXRlaVwgOwor55+p5YmHIDwga3Vzb2t1XCA7Civlt6HnpLwgPCBqdW5yZWlcIDsKK+W5tOadpSA8IG5lbnJhaVwgOwor5Yid5pesIDwgc2hvanVuXCA7CivlubPmnb8gPCBoZWliYW5cIDsKK+WEgOihqCA8IGdpaHlvdVwgOwor5YW156iuIDwgaGVpc2h1XCA7Civlt6jnoLIgPCBreW9ob3VcIDsKK+eahue0jSA8IGthaW5vdVwgOwor5q6L5YWaIDwgemFudG91XCA7CivmrKHluK0gPCBqaXNla2lcIDsKK+atjOWjsCA8IHV0YWdvZVwgOwor5qih57SiIDwgbW9zYWt1XCA7CivmrovlhYkgPCB6YW5rb3VcIDsKK+WFg+iAgSA8IGdlbnJvdVwgOwor6Iqz6I2JIDwgaG91c291XCA7CivnnJ/mqKogPCBtYXlva29cIDsKK+WFq+erryA8IGhhdHRhblwgOwor5YiG5qChIDwgYnVua291XCA7CivpgKPmipUgPCByZW50b3VcIDsKK+ebl+eKryA8IHRvdWhhblwgOwor5by+5Li4IDwgZGFuZ2FuXCA7CivmrYzlooMgPCBrYWt5b3VcIDsKK+WGmeeUnyA8IHNoYXNlaVwgOwor5q6L5YOPIDwgemFuem91XCA7Civmranlk6ggPCBob3Nob3VcIDsKK+ecjOawkSA8IGtlbm1pblwgOwor5Ymj5bGxIDwga2VuemFuXCA7CivlirTlip8gPCByb3Vrb3VcIDsKK+mAo+aIpiA8IHJlbnNlblwgOwor5Ya354S2IDwgcmVpemVuXCA7Civli5XkubEgPCBkb3VyYW5cIDsKK+WItuaGsiA8IHNlaWtlblwgOwor5byT5YuiIDwgeXVuemVpXCA7CivlhoXnnIEgPCBuYWlzZWlcIDsKK+W5s+aYjiA8IGhlaW1laVwgOwor5q275YiRIDwgc2hpa2VpXCA7CivnnInmr5sgPCBtYXl1Z2VcIDsKK+mAoOaIkCA8IHpvdXNlaVwgOwor5buD5bGLIDwgaGFpb2t1XCA7CivliIfmm78gPCBzZXR0YWlcIDsKK+mAg+aVoyA8IHRvdXNhblwgOwor6Lqr6Lu9IDwgbWlnYXJ1XCA7Civnn6LlhYggPCB5YXNha2lcIDsKK+i7jeirhyA8IGd1bmRhblwgOwor5bm05pWwIDwgbmVuc3V1XCA7CivlsbHnvorluqcgPCB5YWdpemFcIDsKK+ato+WRsyA8IHNob3VtaVwgOwor6YCA5pWjIDwgdGFpc2FuXCA7Civoirjog70gPCBnZWlub3VcIDsKK+mAo+aDsyA8IHJlbnNvdVwgOwor5q6L5L2ZIDwgemFuJyd5b1wgOwor6YGj5aSWIDwga2VuZ2FpXCA7CivlvIHlj6MgPCBiZW5rb3VcIDsKK+eak+ekrCA8IGtvdWJhblwgOwor5q2j5Y+3IDwgc2VpZ291XCA7Civoi6bnrJEgPCBrdXNob3VcIDsKK+WIhuaYjiA8IGJ1bm1laVwgOwor5byT5YW3IDwga3l1dWd1XCA7CivnmYzohasgPCBnYW5zaHVcIDsKK+efruS6uiA8IHdhaWppblwgOwor6I2S5rW3IDwgYXJhdW1pXCA7Civps7Tli5UgPCBtZWlkb3VcIDsKK+WGheeVjCA8IG5haWthaVwgOwor5bqn5bitIDwgemFzZWtpXCA7CivmraPljZcgPCBzZWluYW5cIDsKK+iKuOiAhSA8IGdlaXNoYVwgOwor5q2j5Y2IIDwgc2hvdWdvXCA7CivlhoXnlKggPCBuYWl5b3VcIDsKK+WIpeaHhyA8IGJla2tvblwgOwor5YiG5pWwIDwgYnVuc3V1XCA7CivliIbmlaMgPCBidW5zYW5cIDsKK+WEquiAhSA8IHl1dXNoYVwgOwor5Y2S5aGU5amGIDwgc290b2JhXCA7Civmra/lhqAgPCBzaGlrYW5cIDsKK+WGjeePviA8IHNhaWdlblwgOwor5bq35a+nIDwga291bmVpXCA7Civlip/lirQgPCBrb3Vyb3VcIDsKK+ashOW5siA8IHJhbmthblwgOwor5YiX5oyZIDwgcmVra3lvXCA7CivliY3lsbEgPCB6ZW56YW5cIDsKK+W8peS5hSA8IGJpa3l1dVwgOwor55m656uvIDwgaG90dGFuXCA7CivliJ3miKYgPCBzaG9zZW5cIDsKK+i7jeijhSA8IGd1bnNvdVwgOwor5Yil5oSPIDwgYmV0c3VpXCA7Civlh7rmmYIgPCBkZWRva2lcIDsKK+mAo+W8viA8IHJlbmRhblwgOwor5Lqc6bq76ImyIDwgYW1haXJvXCA7Civnn6XkurogPCBjaGlqaW5cIDsKK+iMq+eEtiA8IGJvdXplblwgOwor6LyU57+8IDwgaG95b2t1XCA7CivovrLms5UgPCBub3Vob3VcIDsKK+WIqeaBryA8IHJpc29rdVwgOwor5bqc5bqBIDwgZnVjaG91XCA7CivlurblrZAgPCBzaG9zaGlcIDsKK+iPr+WloiA8IGt5YXNoYVwgOwor6Iez6ZujIDwgc2hpbmFuXCA7CivlirTkvb8gPCByb3VzaGlcIDsKK+W7ieWjsiA8IHJlbmJhaVwgOwor5q275L2TIDwgc2hpdGFpXCA7CivpgKLlvJUgPCBhaWJpa2lcIDsKK+WBnOmgkyA8IHRlaXRvblwgOwor6YG65ZGKIDwgeXVpZ291XCA7Civlh73mlbAgPCBrYW5zdXVcIDsKK+WGt+a3oSA8IHJlaXRhblwgOwor55yf5pi8IDwgbWFoaXJ1XCA7Civlh7rmlrkgPCBkZWthdGFcIDsKK+WJo+WjqyA8IGtlbnNoaVwgOwor5YWs55uKIDwga291ZWtpXCA7CivoiLnot68gPCBmdW5hamlcIDsKK+eWjumalCA8IHNva2FrdVwgOwor5Yqg5YWlIDwga2FueXV1XCA7CivovrLmsJEgPCBub3VtaW5cIDsKK+mBoOWbvSA8IG9uZ29rdVwgOwor5YW355SzIDwgZ3VzaGluXCA7CivojbfmnK0gPCBuaWZ1ZGFcIDsKK+W4reasoSA8IHNla2lqaVwgOwor5Yip5b6XIDwgcml0b2t1XCA7Civlhajnm7IgPCB6ZW5tb3VcIDsKK+atu+S6oSA8IHNoaWJvdVwgOwor5beo542jIDwga3lvanV1XCA7CivmraPlhbUgPCBzZWloZWlcIDsKK+WFqOebmyA8IHplbnNlaVwgOwor6LmI6Z60IDwgdGF0YXJhXCA7CivpgKPluK8gPCByZW50YWlcIDsKK+mAn+W6piA8IHNva3Vkb1wgOwor5Yiw5bqVIDwgdG91dGVpXCA7CivlhY3nqI4gPCBtZW56ZWlcIDsKK+iIjOmLkiA8IHplcHBvdVwgOwor6YCg5bmjIDwgem91aGVpXCA7CivmqJnnpLogPCBoeW91amlcIDsKK+W5s+aJiyA8IGhpcmF0ZVwgOwor5YGc6Zu7IDwgdGVpZGVuXCA7CivlgaXpl5ggPCBrZW50b3VcIDsKK+iIn+mBiyA8IHNodXV1blwgOwor5qiq55uuIDwgeW9rb21lXCA7Civlh7Hml4sgPCBnYWlzZW5cIDsKK+ebruasoSA8IG1va3VqaVwgOwor5Ya35rOJIDwgcmVpc2VuXCA7CivlhajnmZIgPCB6ZW4nJ3l1XCA7Civnmb3no4EgPCBoYWt1amlcIDsKK+i/lOacrCA8IGhlbnBvblwgOwor5Yil5b2iIDwgYmVra2VpXCA7Civlubvmg7MgPCBnZW5zb3VcIDsKK+eci+advyA8IGthbmJhblwgOwor5YaN54eDIDwgc2FpbmVuXCA7CivnnYDmhI8gPCBjaGFrdWlcIDsKK+WGheeKtiA8IG5haWpvdVwgOwor5Yil5b2TIDwgYmV0dG91XCA7Civov5HmnbEgPCBraW50b3VcIDsKK+W7uuWFtyA8IHRhdGVndVwgOwor6L+R5p2lIDwga2lucmFpXCA7Civov5Tmm7ggPCBoZW5zaG9cIDsKK+W6j+W5lSA8IGpvbWFrdVwgOwor5YG06Y6WIDwgc29rdXNhXCA7CivmpoLoq5YgPCBnYWlyb25cIDsKK+eXhei6ryA8IGJ5b3VrdVwgOwor5qW96K2cIDwgZ2FrdWZ1XCA7CivlhrfmsZcgPCByZWlrYW5cIDsKK+WIhuaLhSA8IGJ1bnRhblwgOwor6L6j5rK5IDwgcmF6ZXl1XCA7CivliofljJYgPCBnZWtpa2FcIDsKK+WGt+awtCA8IHJlaXN1aVwgOwor6YKE5YWDIDwga2FuZ2VuXCA7CivliKnluYUgPCByaWhhYmFcIDsKK+WHoeabuCA8IGJvbnNob1wgOwor6YCj5bOwIDwgcmVucG91XCA7Civliofli5kgPCBnZWtpbXVcIDsKK+WIh+aJiyA8IGtpcmV0ZVwgOwor5bm75oCqIDwgZ2Vua2FpXCA7Civov73mhZUgPCB0c3VpYm9cIDsKK+eZuuegsiA8IGhhcHBvdVwgOwor6Lqr6KixIDwgbWltb3RvXCA7CivpganlkKYgPCB0ZWtpaGlcIDsKK+WHuuaOmyA8IGRlZ2FrZVwgOwor5YaG54afIDwgZW5qdWt1XCA7Civov5Hmma8gPCBraW5rZWlcIDsKK+mAo+WxsSA8IHJlbnphblwgOwor6auY6YKBIDwga291bWFpXCA7CivliY3lpY8gPCB6ZW5zb3VcIDsKK+W6l+WxiyA8IG1pc2V5YVwgOwor5Yem5pa5IDwgc2hvaG91XCA7CivpnZLmtbfoi5QgPCBhb25vcmlcIDsKK+mBjeWcqCA8IGhlbnphaVwgOwor5Yil5be7IDwgYmVra2FuXCA7CivlhpfmvKsgPCBqb3VtYW5cIDsKK+amguimsyA8IGdhaWthblwgOwor5YmN5aScIDwgemVuJyd5YVwgOwor5bu65YCkIDwgdGF0ZW5lXCA7CivlubvlvbEgPCBnZW4nJ2VpXCA7CivpgKPlsIQgPCByZW5zaGFcIDsKK+WJjeWjsiA8IG1hZXVyaVwgOwor5qaC6KaBIDwgZ2FpeW91XCA7Civlgo3ovKkgPCBob3ViYWlcIDsKK+eZveeciSA8IGhha3ViaVwgOwor5bOh6YOoIDwga3lvdWJ1XCA7CivliLblrpogPCBzZWl0ZWlcIDsKK+i7vee9qiA8IGtlaXphaVwgOwor55Wq6aCtIDwgYmFudG91XCA7CivliJ3lubQgPCBzaG9uZW5cIDsKK+i+m+awlyA8IHNoaW5raVwgOwor5Ymy5ZCIIDwgd2FyaWFpXCA7CivmpbzoprMgPCByb3VrYW5cIDsKK+iLpueXmyA8IGt1dHN1dVwgOwor5bm+5bm0IDwgaWt1bmVuXCA7Civlhqzmr5sgPCBmdXl1Z2VcIDsKK+WFiOefpSA8IHNlbmNoaVwgOwor5bqX5a2QIDwgdGFuYWtvXCA7CivprZrnvqQgPCBneW9ndW5cIDsKK+mAgOW9uSA8IHRhaWVraVwgOwor5bm85bm0IDwgeW91bmVuXCA7Civov4Lmm7IgPCB1a3lva3VcIDsKK+WJsuWNsCA8IHdhcmlpblwgOwor5Yip5bC/IDwgcmlueW91XCA7CivkvLzpnZ7opqogPCBlc2VveWFcIDsKK+W6iuWxiyA8IHRva295YVwgOwor6YCA5bu3IDwgdGFpdGVpXCA7CivmqKnnj74gPCBnb25nZW5cIDsKK+WBtOmDqCA8IHNva3VidVwgOwor5biw5pyNIDwga2lmdWt1XCA7CivnnLzlupUgPCBnYW50ZWlcIDsKK+mAgOW7gyA8IHRhaWhhaVwgOwor5Yil5bGFIDwgYmVra3lvXCA7CivnlZnpo7IgPCByeXV1aW5cIDsKK+WIquWumiA8IHNhbnRlaVwgOwor5qyE5aSWIDwgcmFuZ2FpXCA7CivlhqDmsLQgPCBrYW5zdWlcIDsKK+WIpeWwgSA8IGJlcHB1dVwgOwor55y85bivIDwgZ2FudGFpXCA7CivlubPlubQgPCBoZWluZW5cIDsKK+W5s+W5syA8IGhlaWhlaVwgOwor6IeG6Z2iIDwgb2t1bWVuXCA7Civlu4Plk4EgPCBoYWloaW5cIDsKK+i/t+W9qSA8IG1laXNhaVwgOwor5biC5rCRIDwgc2hpbWluXCA7CivluoTlsYsgPCBzaG91eWFcIDsKK+iJsuiJsiA8IGlyb2lyb1wgOwor5Yag5q+bIDwga2FubW91XCA7CivluLjmlbAgPCBqb3VzdXVcIDsKK+i+suaelyA8IG5vdXJpblwgOwor5bmz5bi4IDwgaGVpam91XCA7Civoi5TnmawgPCB0YWlzZW5cIDsKK+eZsueZhyA8IHRlbmthblwgOwor5Lqc6bq757O4IDwgYW1haXRvXCA7CivliKTlrpogPCBoYW50ZWlcIDsKK+WIpOWumCA8IGhhbmdhblwgOwor5bed54CsIDwga2F3YXNlXCA7Civlu7fkuIEgPCB0ZWl0ZWlcIDsKK+eZuueUnyA8IGhhc3NlaVwgOwor6L6y5p2RIDwgbm91c29uXCA7CivlgbTov5EgPCBzb2traW5cIDsKK+ebpOaguSA8IGJhbmtvblwgOwor6a2C6IOGIDwga29udGFuXCA7Civlha3ljYHot68gPCBtdXNvamlcIDsKK+i9n+eEtiA8IGdvdXplblwgOwor5Yil5ayqIDwgYmVwcGluXCA7CivmrKDlk4EgPCBrZXBwaW5cIDsKK+mtmue2siA8IGd5b21vdVwgOwor5YaF5rmvIDwgdWNoaXl1XCA7CivkupzmuKnluK8gPCBhb250YWlcIDsKK+eUn+m6qSA8IG5hbWFmdVwgOwor5bm95bGFIDwgeXV1a3lvXCA7CivpgKPlpJwgPCByZW4nJ3lhXCA7Civlt6HmvJQgPCBqdW4nJ2VuXCA7CivmrYzkvJogPCB1dGFrYWlcIDsKK+WFrOeEtiA8IGtvdXplblwgOwor5be75q+bIDwgbWFraWdlXCA7Civou43oiaYgPCBndW5rYW5cIDsKK+mAo+WjsCA8IHJlbmpvdVwgOwor5L2Z5omA6KaLIDwgeW9zb21pXCA7Civoh6rph40gPCBqaWNob3VcIDsKK+WGhea4iCA8IG5haXNhaVwgOwor5YWI55WqIDwgc2VuYmFuXCA7CivpgYrlkJ8gPCB5dXVnaW5cIDsKK+mBiuWQmyA8IHl1dWt1blwgOwor6LuN6Ii5IDwgZ3Vuc2VuXCA7CivojYnmnKwgPCBzb3Vob25cIDsKK+ebsuaWrSA8IG1vdWRhblwgOwor552A5bC6IDwga2lqYWt1XCA7CivoiajoiZ8gPCBtb3Vkb3VcIDsKK+WBvei2syA8IGdpc29rdVwgOwor6I2J5pu4IDwgc291c2hvXCA7CivlhajnhLYgPCB6ZW56ZW5cIDsKK+WIl+WvpyA8IHJlZW5pblwgOwor6a2a57K+IDwgZ3lvc2VpXCA7CivoiaboiYcgPCBrYW50ZWlcIDsKK+ebruaWuSA8IG1la2F0YVwgOwor5Yeh5omNIDwgYm9uc2FpXCA7Civlh6HmiYsgPCBib25zaHVcIDsKK+WFheeUqCA8IGp1dXlvdVwgOwor6a2a57KJIDwgZ3lvZnVuXCA7Civlh6HmiKYgPCBib25zZW5cIDsKK+W6uOWQmyA8IHlvdWt1blwgOwor5YCk6aCDIDwgbmVnb3JvXCA7Civlh7blvpIgPCBreW91dG9cIDsKK+eWjumAmiA8IHNvdHN1dVwgOwor6Iez6L+RIDwgc2hpa2luXCA7CivluaLluaEgPCBkb3ViYW5cIDsKK+W5s+WxiyA8IGhpcmF5YVwgOwor6YGF5Y+CIDwgY2hpc2FuXCA7CivpgIblrZAgPCBzYWthZ29cIDsKK+WnlOWToeS8miA8IGlpbmthaVwgOwor55m954uQIDwgYnlha2tvXCA7CivlgKTpnpggPCBuZXpheWFcIDsKK+WHuuW6qyA8IHNodWtrb1wgOwor6L+95bC+IDwgdHN1aWJpXCA7Civlh7rlupwgPCBzaHVwcHVcIDsKK+WIneWpmiA8IHNob2tvblwgOwor5Ye65bqXIDwgZGVtaXNlXCA7CivlhoXmsrsgPCBuYWljaGlcIDsKK+i+suaUvyA8IG5vdXNlaVwgOwor5Ymb5YuHIDwgZ291eXV1XCA7CivmrKDli6QgPCBrZWtraW5cIDsKK+WFsea8lCA8IGt5b3VlblwgOwor6Ieq6YGpIDwgaml0ZWtpXCA7Civlh6Hmha4gPCBib25yeW9cIDsKK+mAgOWumCA8IHRhaWthblwgOwor55y85a2UIDwgZ2Fua291XCA7CivnlYzpnaIgPCBrYWltZW5cIDsKK+mBr+S4liA8IHRvbnNlaVwgOwor5bmz5a6aIDwgaGVpdGVpXCA7Civoj6/lhpEgPCBrYWNodXVcIDsKK+i8queVqiA8IHJpbmJhblwgOwor5L6d5a2Y5bqmIDwgaXpvbmRvXCA7Civlh7rluKsgPCBzdWlzaGlcIDsKK+WJjeWQjSA8IHplbm1laVwgOwor6YGT5YWDIDwgZG91Z2VuXCA7CivliY3lj7cgPCB6ZW5nb3VcIDsKK+WIpOWjqyA8IGhhbnNoaVwgOwor6Lyq55SfIDwgcmluc2VpXCA7CivlhoXmsJcgPCB1Y2hpa2lcIDsKK+WCjeiokyA8IGJvdWt1blwgOwor55y45a2QIDwgYm91c2hpXCA7CivpgYXlirkgPCBjaGlrb3VcIDsKK+W7g+WFtSA8IGhhaWhlaVwgOwor5YWN54q2IDwgbWVuam91XCA7CivluIbmoYEgPCBob2dldGFcIDsKK+apn+alrSA8IGtpZ3lvdVwgOwor6YCT5aKXIDwgdGVpem91XCA7CivluZXlupwgPCBiYWt1ZnVcIDsKK+W4reaNsiA8IHNla2tlblwgOwor6I235b25IDwgbml5YWt1XCA7CivlhoXmrr8gPCBuYWlkZW5cIDsKK+WCjeimsyA8IGJvdWthblwgOwor55WM6ZqIIDwga2Fpd2FpXCA7CivliIblsIEgPCBidW5wb3VcIDsKK+WFrOa6liA8IGtvdWp1blwgOwor5YKN6KaWIDwgd2FraW1pXCA7Civnmb3nhZkgPCBoYWt1ZW5cIDsKK+iLlOeKtiA8IHRhaWpvdVwgOwor6a2U56ybIDwgbWF0ZWtpXCA7CivlibXkuJYgPCBzb3VzZWlcIDsKK+i3s+mmrCA8IGNob3ViYVwgOwor5bi45oWLIDwgam91dGFpXCA7CivluoPloLQgPCBoaXJvYmFcIDsKK+WxsemhmyA8IHNhbnRlblwgOwor5YGc6LuKIDwgdGVpc2hhXCA7Civpq5jopqcgPCBrb3VyYW5cIDsKK+eUmOmvmyA8IGFtYWRhaVwgOwor5bqD5Z+fIDwga291aWtpXCA7CivmqKrmuqIgPCBvdWl0c3VcIDsKK+WGrOaXpSA8IGZ1eXViaVwgOwor6auY6KaLIDwgdGFrYW1pXCA7Civlg6fntrEgPCBzb3Vnb3VcIDsKK+WJjeWJjSA8IG1hZW1hZVwgOwor5bqn5Y2TIDwgemF0YWt1XCA7CivlhqDmnKggPCBrYWJ1a2lcIDsKK+iJr+e4gSA8IHJ5b3VlblwgOwor5Ymb5YGlIDwgZ291a2VuXCA7Civlgb3oqLwgPCBnaXNob3VcIDsKK+W4guaciSA8IHNoaXl1dVwgOwor5bqt5YmNIDwgdGVpemVuXCA7CivpmL/lg6fnpYcgPCBhc291Z2lcIDsKK+aknOi7iiA8IGtlbnNoYVwgOwor5bqX5ZOhIDwgdGVuJydpblwgOwor6YCy5YyWIDwgc2hpbmthXCA7CivmqLnmsLcgPCBqdWh5b3VcIDsKK+W6hOWckiA8IHNob3VlblwgOwor6Ieq6LazIDwgamlzb2t1XCA7CivpqqjouqsgPCBob25lbWlcIDsKK+WFreazlSA8IHJvcHBvdVwgOwor5Ye65a62IDwgc2h1a2tlXCA7Civpq5joo4EgPCBrb3VzYWlcIDsKK+eUu+mbhiA8IGdhc2h1dVwgOwor5YiG5aipIDwgYnVuYmVuXCA7CivoibLns7ggPCBpcm9pdG9cIDsKK+eUu+manCA8IGdhc2hvdVwgOwor5bGx6ZyKIDwgc2FucmVpXCA7CivlhpnmnKwgPCBzaGFob25cIDsKK+WFpea1tyA8IGlyaXVtaVwgOwor6LmC6LqqIDwganV1cmluXCA7CivluZXlsYsgPCBtYWt1eWFcIDsKK+WIu+WNsCA8IGtva3VpblwgOwor5Yeh5bi4IDwgYm9uam91XCA7Civov7flpoQgPCBtZWltb3VcIDsKK+eXm+iLpiA8IHRzdXVrdVwgOwor55uG5pmvIDwgYm9ua2VpXCA7CivoiLnojbcgPCBmdW5hbmlcIDsKK+mAo+WQnyA8IHJlbmdpblwgOwor5Yid5ZueIDwgc2hva2FpXCA7Civlu4PkurogPCBoYWlqaW5cIDsKK+WJm+S9kyA8IGdvdXRhaVwgOwor6LuK57eaIDwgc2hhc2VuXCA7CivpgKPlkIggPCByZW5nb3VcIDsKK+ebsuaDsyA8IG1vdXNvdVwgOwor5bm05aCxIDwgbmVucG91XCA7Civnm7jmgKcgPCBhaXNob3VcIDsKK+iLpea5ryA8IHdha2F5dVwgOwor5YWs5rCRIDwga291bWluXCA7CivluILml6UgPCBpY2hpYmlcIDsKK+anmOebuCA8IHlvdXNvdVwgOwor6bGI5a2QIDwgdGFyYWtvXCA7CivliIblpJYgPCBidW5nYWlcIDsKK+ebo+aIvyA8IGthbmJvdVwgOwor5biD5pWZIDwgZnVreW91XCA7CivpgKDlj40gPCB6b3VoYW5cIDsKK+WIhuWjsiA8IGJ1bmJhaVwgOwor5YeE5oOoIDwgc2Vpc2FuXCA7Civnm5vmjJkgPCBzZWlreW9cIDsKK+i7veebriA8IGthcnVtZVwgOwor5biw5b+DIDwga2lzaGluXCA7CivojJjmnp0gPCByZWlzaGlcIDsKK+ebuOW9uSA8IGFpeWFrdVwgOwor5bqn5YWDIDwgemFtb3RvXCA7Civlho3mnaUgPCBzYWlyYWlcIDsKK+WFvOalrSA8IGtlbmdvdVwgOwor55u+5bqnIDwgdGF0ZXphXCA7CivlhrfmiL8gPCByZWlib3VcIDsKK+WItuWLlSA8IHNlaWRvdVwgOwor55u45b2TIDwgc291dG91XCA7Civlt6HmpJwgPCBqdW5rZW5cIDsKK+WFteaoqSA8IGhlaWtlblwgOwor55m+5riIIDwga3VkYXJhXCA7Civoh7Poq5YgPCBzaGlyb25cIDsKK+iIueiJmSA8IHNlbnNvdVwgOwor5bGx6ZaTIDwgeWFtYWFpXCA7CivlubPlnYcgPCBoZWlraW5cIDsKK+WxsemWgCA8IHNhbm1vblwgOwor5YKt6Ii5IDwgeW91c2VuXCA7Civlhobmn7EgPCBlbmNodXVcIDsKK+eUn+mhniA8IHNlaXJ1aVwgOwor5bmz5ZywIDwgaGVpY2hpXCA7CivpgKPli5UgPCByZW5kb3VcIDsKK+WJjeS+vyA8IHplbmJpblwgOwor5bq45Lq6IDwgeW91amluXCA7CivlubTlm54gPCBuZW5rYWlcIDsKK+mAgOWboyA8IHRhaWRhblwgOwor55uy5b6TIDwgbW91anV1XCA7CivlhpfmlocgPCBqb3VidW5cIDsKK+WFqOaspyA8IHplbicnb3VcIDsKK+edvuS4uCA8IGtvdWdhblwgOwor6Iez6KiAIDwgc2hpZ2VuXCA7CivpgKPliKQgPCByZW5wYW5cIDsKK+i7kuerryA8IG5va2liYVwgOwor5bir5byfIDwgc2hpdGVpXCA7CivliY3ku7YgPCB6ZW5rZW5cIDsKK+WFq+WNgei3ryA8IHlhc29qaVwgOwor5bGP6aKoIDwgYnlvdWJ1XCA7Civnm7jluK0gPCBhaXNla2lcIDsKK+WJjeS7oyA8IHplbmRhaVwgOwor55Sf6Z2iIDwgc2VpbWVuXCA7Civoi6bmsYEgPCBuaWdhcmlcIDsKK+S8iuWLouidpiA8IGlzZWViaVwgOwor5YmN5Lq6IDwgemVuamluXCA7CivliIflnLAgPCBraXJlamlcIDsKK+WHtuWkoiA8IGt5b3VtdVwgOwor5YiG5ZywIDwgYnVuY2hpXCA7Civoibbnpo8gPCBlbnB1a3VcIDsKK+iLpeawlyA8IHdha2FnZVwgOwor55Sj6ZmiIDwgc2FuJydpblwgOwor5YiG5ZujIDwgYnVuZGFuXCA7Civoh6roqLsgPCBqaWNodXVcIDsKK+WIneWPtyA8IHNob2dvdVwgOwor6YC45LqLIDwgaXRzdWppXCA7Civlg7vnm64gPCBoaWdhbWVcIDsKK+WIgOWcrSA8IHRvdWtlaVwgOwor5YaK5pWwIDwgc2Fzc3V1XCA7CivnlLvpi7IgPCBnYWJ5b3VcIDsKK+WHuuWfjiA8IGRlamlyb1wgOwor5bm85ZCNIDwgeW91bWVpXCA7CivlsI/pvLsgPCBrb2JhbmFcIDsKK+WGheaXqCA8IG5haXNoaVwgOwor55eb5721IDwgdHN1dWJhXCA7Civoh6roppogPCBqaWtha3VcIDsKK+WGheaWuSA8IG5haWhvdVwgOwor5YG96JasIDwgZ2l5YWt1XCA7Civnl4Xoh6UgPCBieW91Z2FcIDsKK+WFseaghCA8IGt5b3VlaVwgOwor5YCk6YGHIDwgY2hpZ3V1XCA7CivlubblkZEgPCBoZWlkb25cIDsKK+W5vuWNgyA8IGlrdXNlblwgOwor6auY6JGXIDwga291Y2hvXCA7CivlsI/puqYgPCBrb211Z2lcIDsKK+WIhuWWtiA8IGJ1bicnZWlcIDsKK+ajkumLvCA8IGJvdWtvdVwgOwor6YCB5ZGIIDwgc291dGVpXCA7CivluqfkuK0gPCB6YWNodXVcIDsKK+W5tuWQiCA8IGhlaWdvdVwgOwor5L+u6ZmiIDwgc2h1dWluXCA7CivlupXlgKQgPCBzb2tvbmVcIDsKK+W4sOWxniA8IGtpem9rdVwgOwor5bel5pWwIDwga291c3V1XCA7CivlhbXmm7kgPCBoZWlzb3VcIDsKK+WFteabuCA8IGhlaXNob1wgOwor5pu+56WW54i2IDwgaGlqaWppXCA7CivliJHlkI0gPCBrZWltZWlcIDsKK+i7jeekvCA8IGd1bnJlaVwgOwor5qi55pyoIDwganVtb2t1XCA7Civpq5joj5wgPCB0YWthbmFcIDsKK+ebuOWvviA8IHNvdXRhaVwgOwor5bm05Y+3IDwgbmVuZ291XCA7CivopovmoITlnYogPCBtaWVib3VcIDsKK+iKseeBqyA8IGhhbmFiaVwgOwor5bGV6ZaLIDwgdGVua2FpXCA7Civnm7jlrr8gPCBhaXlhZG9cIDsKK+mAgOWOuyA8IHRhaWt5b1wgOwor5biv5bCBIDwgb2JpZnV1XCA7CivkupzpiZvniYggPCBhZW5iYW5cIDsKK+WHjeWvkiA8IHRvdWthblwgOwor5bmz5Y6fIDwgaGVpZ2VuXCA7Civlh43lrrMgPCB0b3VnYWlcIDsKK+WxsemHjiA8IHNhbicneWFcIDsKK+mAj+WGmSA8IHRvdXNoYVwgOwor5Yi25LukIDwgc2VpcmVpXCA7Civlha3mnKwgPCByb3Bwb25cIDsKK+iLpualvSA8IGt1cmFrdVwgOwor5biw5a6FIDwga2l0YWt1XCA7Civnlr3ohasgPCBzb3Nob3VcIDsKK+aoquaguSA8IHlva29uZVwgOwor5bm+5YiGIDwgaWt1YnVuXCA7CivnlbDoqqwgPCBpc2V0c3VcIDsKK+mtlOeQgyA8IG1ha3l1dVwgOwor5Ye25ZmoIDwga3lvdWtpXCA7Civkv53pnakgPCBob2tha3VcIDsKK+WGjeaMmSA8IHNhaWt5b1wgOwor5L+K6aasIDwgc2h1bm1lXCA7CivlhavmnKwgPCBoYXBwb25cIDsKK+WFrOaciSA8IGtvdXl1dVwgOwor5YGP6KaLIDwgaGVua2VuXCA7CivlupzkuK0gPCBmdWNodXVcIDsKK+ebruWwuyA8IG1lamlyaVwgOwor5YW25pa5IDwgc29uYXRhXCA7Civnm5vlubQgPCBzZWluZW5cIDsKK+Wwj+m0qCA8IGtvZ2Ftb1wgOwor6YCA5YuiIDwgdGFpc2VpXCA7Civov5TloLEgPCBoZW5wb3VcIDsKK+WGheaOoiA8IG5haXRhblwgOwor5qip5p+EIDwga2VucGVpXCA7CivlsI/ps6UgPCBrb3RvcmlcIDsKK+W5tOWKnyA8IG5lbmtvdVwgOwor55Sw6YeOIDwgZGVuJyd5YVwgOwor5YW15pWwIDwgaGVpc3V1XCA7Civnm6rlsL0gPCB0b3VqaW5cIDsKK+ecvOWJjSA8IGdhbnplblwgOwor6Imm56CyIDwga2FucG91XCA7CivlupfkuLsgPCB0ZW5zaHVcIDsKK+i7oueUnyA8IHRlbnNlaVwgOwor6Laz6aeEIDwgYXNoaWRhXCA7Civlhavmma8gPCBoYWtrZWlcIDsKK+eZu+alvCA8IHRvdXJvdVwgOwor55uu5a6JIDwgbWV5YXN1XCA7CivmpoLnrpcgPCBnYWlzYW5cIDsKK+WIhuWOmCA8IGJ1bnJpblwgOwor5b6h54yq5Y+jIDwgb2Nob2tvXCA7Civov73liqAgPCB0c3Vpa2FcIDsKK+aoquacqCA8IHlva29naVwgOwor5YSq5rilIDwgeXV1YWt1XCA7CivluIblvbEgPCBob2thZ2VcIDsKK+W5tOWInSA8IG5lbnNob1wgOwor6IWw6ZaTIDwgeW91a2FuXCA7CivojYnlsYsgPCBzb3Vva3VcIDsKK+WFrOaYjiA8IGtvdW1laVwgOwor5bm05YiKIDwgbmVua2FuXCA7CivlubTliIYgPCBuZW5idW5cIDsKK+W5leWWtiA8IGJha3VlaVwgOwor5bCP6bCtIDwga29oYWRhXCA7CivlubPliIYgPCBoZWlidW5cIDsKK+W5s+WHoSA8IGhlaWJvblwgOwor55iL55myIDwgZnV1dGVuXCA7Civov73liIYgPCBvaXdha2VcIDsKK+mwpeWkqyA8IHlhbW9tZVwgOwor55So6YeRIDwgeW91a2luXCA7Civpro7kuKblpbMgPCBhaW5hbWVcIDsKK+mtlOeJqSA8IG1hbW9ub1wgOwor5YWs5paHIDwga291YnVuXCA7CivojLblt74gPCBjaGFraW5cIDsKK+WIkeWFuCA8IGtlaXRlblwgOwor6L+R5ZyoIDwga2luemFpXCA7CivliKXku7YgPCBiZWtrZW5cIDsKK+Wxsei+uiA8IHlhbWFiZVwgOwor55Wl6KiYIDwgcnlha2tpXCA7Civlt6fmiYsgPCBrb3VzaHVcIDsKK+ecn+WRsyA8IHNoaW5taVwgOwor6Lqr56m6IDwgbWlzb3JhXCA7CivoiovniYggPCBpbW9iYW5cIDsKK+W3oeaLnSA8IGp1bnBhaVwgOwor55Sj6YeRIDwgc2Fua2luXCA7CivlhajmlbAgPCB6ZW5zdXVcIDsKK+WFqOaVlyA8IHplbnBhaVwgOwor55yf5ZCmIDwgc2hpbnBpXCA7Civoi6XmnKggPCB3YWthZ2lcIDsKK+WIl+WAmSA8IHJla2tvdVwgOwor6L+95YS6IDwgdHN1aW5hXCA7CivlhrflrrMgPCByZWlnYWlcIDsKK+W6iuS4iiA8IHl1a2F1ZVwgOwor5YG96IacIDwgZ2ltYWt1XCA7CivluIbluIMgPCBob251bm9cIDsKK+WHneWbuiA8IGd5b3Vrb1wgOwor6YCU5LitIDwgdG9jaHV1XCA7CivlhoXmhoIgPCBuYWl5dXVcIDsKK+S/l+mWkyA8IHpva2thblwgOwor5L+D6Z+zIDwgc29rdW9uXCA7CivlsI/pqqggPCBrb2JvbmVcIDsKK+WFuOaLoCA8IHRlbmt5b1wgOwor55m75p2/IDwgdG91YmFuXCA7CivliJ3ku6MgPCBzaG9kYWlcIDsKK+WIgOWJoyA8IHRvdWtlblwgOwor5bmV5ZCPIDwgYmFrdXJpXCA7CivprZrnga8gPCBneW90b3VcIDsKK+iGmui6qyA8IGhhZGFtaVwgOwor55mW5q+bIDwga3VzZWdlXCA7Civlg63njosgPCBzZW4nJ291XCA7Civlho3mgJ0gPCBzYWlzaGlcIDsKK+ecjOWWtiA8IGtlbicnZWlcIDsKK+muruaYjiA8IHNlbm1laVwgOwor55Sf6YWSIDwga2l6YWtlXCA7CivliIblhZogPCBidW50b3VcIDsKK+W5vuS6uiA8IGlrdW5pblwgOwor6ISz6auEIDwgbm91enVpXCA7CivnnJ/ljJcgPCBtYWtpdGFcIDsKK+W3qOaCqiA8IGt5b2FrdVwgOwor6I2K5aa7IDwga2Vpc2FpXCA7CivlhajmkI0gPCB6ZW5zb25cIDsKK+WIg+WFiCA8IGhhc2FraVwgOwor5bGx6LevIDwgeWFtYWppXCA7CivluK/ln58gPCB0YWlpa2lcIDsKK+i/lOWTgSA8IGhlbnBpblwgOwor5bCP6aaWIDwga29rdWJpXCA7CivlubTkvZkgPCBuZW4nJ3lvXCA7CivnlJjphbggPCBrYW5zYW5cIDsKK+mokumciiA8IHNvdXJlaVwgOwor6Iez6Iq4IDwgc2hpZ2VpXCA7CivpgIDkvJogPCB0YWlrYWlcIDsKK+Wvoem7mSA8IGthbW9rdVwgOwor5YiD5YK3IDwgbmluam91XCA7Civlho3lu7ogPCBzYWlrb25cIDsKK+alteenmCA8IGdva3VoaVwgOwor6YCD5LqhIDwgdG91Ym91XCA7CivpgIDku7sgPCB0YWluaW5cIDsKK+W5tOS7oyA8IG5lbmRhaVwgOwor5YKN57eaIDwgYm91c2VuXCA7CivnnIHllrYgPCBzaG91ZWlcIDsKK+W4sOWbvSA8IGtpa29rdVwgOwor552A5LiIIDwga2l0YWtlXCA7CivovrLloLQgPCBub3Vqb3VcIDsKK+i7vea4myA8IGtlaWdlblwgOwor6aqo6JGjIDwga290dG91XCA7CivnmYLmsrsgPCByeW91amlcIDsKK+i+uuWcsCA8IGhlbmNoaVwgOwor6aed6bOlIDwgZGFjaG91XCA7CivlhoXlvoQgPCBuYWlrZWlcIDsKK+iFuemDqCA8IGZ1a3VidVwgOwor5Ye65YWIIDwgZGVzYWtpXCA7CivlhYPmnaUgPCBnYW5yYWlcIDsKK+ecn+WGrCA8IG1hZnV5dVwgOwor6Lyq5qC9IDwgcmluc2FpXCA7Civlt6jlvL4gPCBreW9kYW5cIDsKK+WFg+acrCA8IGdlbnBvblwgOwor5Ye25YW3IDwga3lvdWd1XCA7Civoh6roi6UgPCBqaWpha3VcIDsKK+W5tOS4rSA8IG5lbmp1dVwgOwor55m65pWjIDwgaGFzc2FuXCA7CivluKvlm6MgPCBzaGlkYW5cIDsKK+mnsemnnSA8IHJha3VkYVwgOwor5YaF5bu3IDwgbmFpdGVpXCA7Civlgo3ns7sgPCBib3VrZWlcIDsKK+WIhuS9kyA8IGJ1bnRhaVwgOwor5bmz5piT5YyWIDwgaGVpaWthXCA7Civov47lkIggPCBnZWlnb3VcIDsKK+WuieS/neeQhiA8IGFucG9yaVwgOwor5L+u6YCgIDwgc2h1em91XCA7CivojYnloIIgPCBzb3Vkb3VcIDsKK+W5suS4jiA8IGthbicneW9cIDsKK+apn+WxiyA8IGhhdGF5YVwgOwor6L6y5ZywIDwgbm91Y2hpXCA7Civmm77npZbmr40gPCBoaWJhYmFcIDsKK+iIquepuiA8IGtvdWt1dVwgOwor5biC5a2QIDwgaWNoaWtvXCA7CivlsIrpoZQgPCBzb25nYW5cIDsKK+i7jeeKrCA8IGdlbmtlblwgOwor5L+u6L6eIDwgc2h1dWppXCA7CivnlJ/ouqsgPCBuYW1hbWlcIDsKK+aoquaJiyA8IHlva290ZVwgOwor5YGc6Ii5IDwgdGVpc2VuXCA7CivnnIzli6IgPCBrZW5zZWlcIDsKK+WFreaEnyA8IHJva2thblwgOwor5YWD5pemIDwgZ2FudGFuXCA7CivnlLvoqr8gPCBnYWNob3VcIDsKK+WGl+WumCA8IGpvdWthblwgOwor5Yem5YiGIDwgc2hvYnVuXCA7Civou73msLQgPCBrZWlzdWlcIDsKK+iHquiFuSA8IGppYmFyYVwgOwor5YiG5LiOIDwgYnVuJyd5b1wgOwor5Yem5YemIDwgc2hvc2hvXCA7CivoipLmtIsgPCBib3V5b3VcIDsKK+Wwj+mbqiA8IGtveXVraVwgOwor5bCP6ZuoIDwga29zYW1lXCA7CivlsI7pm7sgPCBkb3VkZW5cIDsKK+WFteW9uSA8IGhlaWVraVwgOwor5bCP6ZuAIDwga29nYXJhXCA7CivnsZDmpIXlrZAgPCB0b3Vpc3VcIDsKK+WHveS6uiA8IGthbmppblwgOwor55uX5aGBIDwgdG91cnVpXCA7Civoi6bmiYsgPCBuaWdhdGVcIDsKK+WvvumhlCA8IHRhaWdhblwgOwor6Iul5omLIDwgd2FrYXRlXCA7CivlhqzloLQgPCBmdXl1YmFcIDsKK+WCrOecoCA8IHNhaW1pblwgOwor5YSq5p+UIDwgeXV1anV1XCA7CivlsI/mloflrZcgPCBrb21vamlcIDsKK+iKuOaelyA8IGdlaXJpblwgOwor55u45Y+NIDwgc291aGFuXCA7Civlt6jlsqkgPCBreW9nYW5cIDsKK+W4r+WQjCA8IHRhaWRvdVwgOwor5bi45YukIDwgam91a2luXCA7CivojZjlj7ggPCBzaG91amlcIDsKK+WHjeWOnyA8IHRvdWdlblwgOwor5qW955WMIDwgZ2Fra2FpXCA7CivojZjljrMgPCBzb3Vnb25cIDsKK+WHuuS4liA8IHNodXNzZVwgOwor5YeE5ZGzIDwgc3Vnb21pXCA7Civoh6rnv5IgPCBqaXNodXVcIDsKK+WHoeWDpyA8IGJvbnNvdVwgOwor5a++6Z2iIDwgdGFpbWVuXCA7CivnlarojLYgPCBiYW5jaGFcIDsKK+eVsOiJsiA8IGlzaG9rdVwgOwor5YaG5a+CIDwgZW5qYWt1XCA7Civlt57ltI4gPCBzdXNha2lcIDsKK+i/keWCjSA8IGtpbmJvdVwgOwor5YWl5b6hIDwgbnl1dWdvXCA7CivlhoXlrq4gPCBuYWlndXVcIDsKK+W4guWhtSA8IHNoaWppblwgOwor6Le16KiAIDwgc2VuZ2VuXCA7CivoirPmm7ggPCBob3VzaG9cIDsKK+eUqOirhyA8IHlvdWRhblwgOwor6Iqx5pyoIDwga2Fib2t1XCA7CivkvZnmiYDnm64gPCB5b3NvbWVcIDsKK+WFrOW5syA8IGtvdWhlaVwgOwor5YaF5a2rIDwgbmFpc29uXCA7Civkv53ouqsgPCBob3NoaW5cIDsKK+eZuuaGpCA8IGhhcHB1blwgOwor6IiM56uvIDwgemV0dGFuXCA7CivlhajlupcgPCB6ZW50ZW5cIDsKK+WvvumZoyA8IHRhaWppblwgOwor5L6L6aGMIDwgcmVpZGFpXCA7CivluK/liaMgPCB0YWlrZW5cIDsKK+W4neWRvSA8IHRlaW1laVwgOwor6Luf5rOlIDwgbmFuZGVpXCA7CivojIXlsYsgPCBib3Vva3VcIDsKK+WFpeW6qyA8IG55dXVrb1wgOwor55So6KiAIDwgeW91Z2VuXCA7CivnmbrmhI8gPCBoYXRzdWlcIDsKK+WFpeW6nCA8IG55dXVmdVwgOwor6Iq45paHIDwgZ2VpYnVuXCA7CivlsILploAgPCBzZW5tb25cIDsKK+W4r+WIgCA8IHRhaXRvdVwgOwor6Ium5b+DIDwga3VzaGluXCA7CivmqoDlkJsgPCBkYW5rdW5cIDsKK+WFvOWumCA8IGtlbmthblwgOwor5bC/6LevIDwgbnlvdXJvXCA7CivnnIzkvJogPCBrZW5rYWlcIDsKK+ebpOWPsCA8IGJhbmRhaVwgOwor5biD5ZywIDwgbnVub2ppXCA7Civoh7PntJQgPCBzaGlqdW5cIDsKK+iNieWOnyA8IHNvdWdlblwgOwor6Ieq57ibIDwgamliYWt1XCA7CivmooXphZIgPCB1bWVzaHVcIDsKK+WFg+aJiyA8IG1vdG9kZVwgOwor5LiL6Zmi6K2wIDwga2FpbmdpXCA7CivnnIzku6QgPCBrZW5yZWlcIDsKK+WvnemmliA8IG5la3ViaVwgOwor55Sf6KqVIDwgc2VpdGFuXCA7Civou5/msLQgPCBuYW5zdWlcIDsKK+i/keS7oyA8IGtpbmRhaVwgOwor55yM5Lq6IDwga2VuamluXCA7Civnm4blnLAgPCBib25jaGlcIDsKK+WtteWMluWZqCA8IGZ1a2FraVwgOwor6LuN5rivIDwgZ3Vua291XCA7CivlhZrlvIogPCB0b3VoZWlcIDsKK+WGt+WOsyA8IHJlaWdlblwgOwor6Iet57SgIDwgc2h1dXNvXCA7CivojITlrZAgPCBuYXN1YmlcIDsKK+ebl+WTgSA8IHRvdWhpblwgOwor6IiX55+zIDwgaG9zZWtpXCA7Civoh6rntaYgPCBqaWt5dXVcIDsKK+i/lOS4iiA8IGhlbmpvdVwgOwor6a2a5qKvIDwgZ3lvdGVpXCA7Civnm5vlkI0gPCBzZWltZWlcIDsKK+WFqOWztiA8IHplbnRvdVwgOwor6LWt6aGUIDwgc2hhZ2FuXCA7CivlhbHlr50gPCB0b21vbmVcIDsKK+aJi+ecn+S8vCA8IHRlbWFuZVwgOwor5bCP6YqtIDwga296ZW5pXCA7Civov5HkuJYgPCBraW5zZWlcIDsKK+iHqOe1giA8IHJpbmp1dVwgOwor5bi45L6LIDwgam91cmVpXCA7CivlhajlsrggPCB6ZW5nYW5cIDsKK+W3qOWkpyA8IGt5b2RhaVwgOwor6L6b5ZGzIDwga2FyYW1pXCA7CivlhoXlpJYgPCBuYWlnYWlcIDsKK+ebruWFiCA8IG1lc2FraVwgOwor5bi45L2PIDwgam91anV1XCA7CivovrLlhbUgPCBub3VoZWlcIDsKK+WCjeebriA8IGhhdGFtZVwgOwor5bGV6KanIDwgdGVucmFuXCA7CivluLjkvJogPCBqb3VrYWlcIDsKK+W4uOS7uyA8IGpvdW5pblwgOwor5L+v6KeSIDwgZnVrYWt1XCA7Civnl7TmvKIgPCBjaGlrYW5cIDsKK+i7jeazlSA8IGd1bnBvdVwgOwor5bCP6YeRIDwga29nYW5lXCA7CivlhrfliZsgPCByZWlnb3VcIDsKK+W4uOS6uiA8IGpvdWppblwgOwor6a2a5p2/IDwgZ3lvYmFuXCA7CivltKnmvbAgPCBob3VrYWlcIDsKK+S4jeWmguaEjyA8IGZ1bnlvaVwgOwor5YOn5q2jIDwgc291am91XCA7CivlhYHmga0gPCBpbmt5b3VcIDsKK+i7uOacqCA8IGppa3VnaVwgOwor55u45LydIDwgc291ZGVuXCA7CivluJ3lhqAgPCB0ZWlrYW5cIDsKK+S9temfsyA8IHBpbicnaW5cIDsKK+mrmOebriA8IHRha2FtZVwgOwor5YaG5Z+fIDwgZW4nJ2lraVwgOwor5a+S6aKoIDwga2FucHV1XCA7Civpp4XpoK0gPCBla2l0b3VcIDsKK+WCvueAiSA8IGtlaXNoYVwgOwor5Ya35YeNIDwgcmVpdG91XCA7Civou43msJEgPCBndW5taW5cIDsKK+mqqOeyiSA8IGtvcHB1blwgOwor55eF55CGIDwgYnlvdXJpXCA7CivluLjkuJYgPCB0b2tveW9cIDsKK+iGteiHkyA8IHN1aXpvdVwgOwor5YW25aW0IDwgc29pdHN1XCA7CivlhYXlvZMgPCBqdXV0b3VcIDsKK+S/ruijnCA8IHNodXVob1wgOwor5biD5ZGKIDwgZnVrb2t1XCA7CivoiI7nm6MgPCBzaGFrYW5cIDsKK+WEkuaVmSA8IGp1a3lvdVwgOwor5L+X6K2wIDwgem9rdWdpXCA7Civmua/mloflrZcgPCB5dW1vamlcIDsKK+WGt+WFiSA8IHJlaWtvdVwgOwor5a+d6ZqbIDwgbmVnaXdhXCA7CivnmoTlsYsgPCB0ZWtpeWFcIDsKK+eVsOapn+eoriA8IGlraXNodVwgOwor55uK5Y+LIDwgZWtpeXV1XCA7CivlhoXlnKggPCBuYWl6YWlcIDsKK+WFteWkiSA8IGhlaWhlblwgOwor5bGx6JG1IDwgd2FzYWJpXCA7CivlgbXnn6UgPCB0ZWljaGlcIDsKK+eWq+eZmCA8IGVraXJlaVwgOwor55uy5Lq6IDwgbW91amluXCA7Civnmoflrq4gPCBrb3VndXVcIDsKK+iDvemdoiA8IG5vdW1lblwgOwor55ub5YW4IDwgc2VpdGVuXCA7CivmoLnpm6ogPCBuZXl1a2lcIDsKK+iMheWgtCA8IGtheWFiYVwgOwor5biw5LiAIDwga2lpdHN1XCA7CivnmoflrasgPCBrb3Vzb25cIDsKK+S+rui+sSA8IGJ1am9rdVwgOwor55Wq57eaIDwgYmFuc2VuXCA7CivovrLkvJogPCBub3VrYWlcIDsKK+S/l+iqniA8IHpva3Vnb1wgOwor55uu5LuKIDwgbW9ra29uXCA7Civnm7TkuIsgPCBjaG9ra2FcIDsKK+WxseiPnCA8IHNhbnNhaVwgOwor6Lui5qChIDwgdGVua291XCA7Civkv5foqbEgPCB6b2t1d2FcIDsKK+eWpeeZrCA8IGthaXNlblwgOwor6Ium5a2mIDwga3VnYWt1XCA7CivlhYPluKUgPCBnZW5zdWlcIDsKK+eZveWvvyA8IGhha3VqdVwgOwor5Yal5YipIDwgbXlvdXJpXCA7CivnmbrlsZUgPCBoYXR0ZW5cIDsKK+W3oeWbniA8IGp1bmthaVwgOwor6Lyq5bu7IDwgcmluJyduZVwgOwor5YW45Z6LIDwgdGVua2VpXCA7CivlsbHojZggPCBzYW5zb3VcIDsKK+WFrOWjsiA8IGtvdWJhaVwgOwor6ISx6YCAIDwgZGF0dGFpXCA7Civkv5fop6MgPCB6b2trYWlcIDsKK+iDjOmwrSA8IHNlYmlyZVwgOwor6LWk6ZaAIDwgYWthbW9uXCA7CivlsY3onYsgPCBzaGlyb3VcIDsKK+eVnee5lCA8IHVuZW9yaVwgOwor5L+X6KaLIDwgem9ra2VuXCA7CivlgInojbcgPCBrdXJhbmlcIDsKK+iKs+aDhSA8IGhvdWpvdVwgOwor6aaW6a2BIDwgc2h1a2FpXCA7CivnlJ/olpEgPCBzaG91Z2FcIDsKK+WFteWboyA8IGhlaWRhblwgOwor5a++6YGHIDwgdGFpZ3V1XCA7CivkupznoJLphbggPCBhaGlzYW5cIDsKK+eUn+iVgyA8IHNlaWJhblwgOwor5YWN5a6YIDwgbWVua2FuXCA7CivluILlhoUgPCBzaGluYWlcIDsKK+i7veaMmSA8IGtlaWt5b1wgOwor6Imv5qGIIDwgcnlvdWFuXCA7CivlrrnpoZQgPCB5b3VnYW5cIDsKK+WGhuWRsyA8IG1hcnVtaVwgOwor55ub5LyaIDwgc2Vpa2FpXCA7CivlhoblkaggPCBlbnNodXVcIDsKK+iKuOW9kyA8IGdlaXRvdVwgOwor55SY6JavIDwga2Fuc2hvXCA7CivlhoXlkb0gPCBuYWltZWlcIDsKK+i7iuaknCA8IHNoYWtlblwgOwor6Iqz5b+XIDwgaG91c2hpXCA7CivlsI/otrMgPCBrb2FzaGlcIDsKK+Wvvui+uiA8IHRhaWhlblwgOwor6IuX5a2XIDwgbXlvdWppXCA7Civog4zpqqggPCBzZWJvbmVcIDsKK+WGheWQqyA8IG5haWdhblwgOwor6aas6Z2pIDwgYmFrYWt1XCA7Civnm5/kuLsgPCBtZWlzaHVcIDsKK+WGheWQiCA8IG5haWdvdVwgOwor5beo5Y+jIDwga3lva291XCA7Civlho3li6QgPCBzYWlraW5cIDsKK+W4guWCtSA8IHNoaXNhaVwgOwor5bKp56m0IDwgaXdhYW5hXCA7CivlhYPlr4cgPCBnZW5rb3VcIDsKK+S9memchyA8IHlvc2hpblwgOwor5YaV5YagIDwgYmVua2FuXCA7CivojLbkvJogPCBjaGFrYWlcIDsKK+S9jumgrSA8IHRlaXRvdVwgOwor5YaG5Y2TIDwgZW50YWt1XCA7Civlr4bplokgPCBtaXBwZWlcIDsKK+WxseiDjCA8IHlhbWFzZVwgOwor5qeY5oWLIDwgeW91dGFpXCA7CivojLbku6MgPCBjaGFkYWlcIDsKK+WCrOa2mSA8IHNhaXJ1aVwgOwor6IOM6aazIDwgaGFpY2hpXCA7CivohLHotbAgPCBkYXNzb3VcIDsKK+eZvuWknCA8IG1vbW95b1wgOwor6Ium5aKDIDwga3VreW91XCA7Civlhpnlg48gPCBzaGF6b3VcIDsKK+Wun+mokyA8IGppa2tlblwgOwor6Iy25Lq6IDwgY2hhamluXCA7Civoi7Hlm70gPCBlaWtva3VcIDsKK+WGjeWIiiA8IHNhaWthblwgOwor5YaF5YukIDwgbmFpa2luXCA7CivogrrprZogPCBoYWlneW9cIDsKK+iHqueZvSA8IGppaGFrdVwgOwor6LuN5pu4IDwgZ3Vuc2hvXCA7Civlgo3ngrkgPCBib3V0ZW5cIDsKK+S+v+impyA8IGJlbnJhblwgOwor55m75aOHIDwgdG91ZGFuXCA7CivmpJznnLwgPCBrZW5nYW5cIDsKK+agoemWgCA8IGtvdW1vblwgOwor6aaW6aGMIDwgc2h1ZGFpXCA7CivlhYjlprsgPCBzZW5zYWlcIDsKK+mqqOebuCA8IGtvc3NvdVwgOwor6Zi/5L+u576FIDwgYXNodXJhXCA7CivnlJjojYkgPCBrYW56b3VcIDsKK+eUmOiMtiA8IGFtYWNoYVwgOwor55m75aC0IDwgdG91am91XCA7Civlr53phZIgPCBuZXpha2VcIDsKK+W+oembkeeFriA8IG96b3VuaVwgOwor5YWE5aa5IDwga2VpbWFpXCA7CivlhaXllrYgPCBueXV1ZWlcIDsKK+WFvOWLpCA8IGtlbmtpblwgOwor6LuS5pWwIDwga2Vuc3V1XCA7CivlhYjlpKkgPCBzZW50ZW5cIDsKK+WGhuWGhSA8IGVuJyduYWlcIDsKK+WGheWGhSA8IG5haW5haVwgOwor6LuN5peFIDwgZ3VucnlvXCA7CivlhoXlhbggPCBuYWl0ZW5cIDsKK+i7veW/qyA8IGtlaWthaVwgOwor5YWo5ZOhIDwgemVuJydpblwgOwor6Ieo55WMIDwgcmlua2FpXCA7Civpq5jngKwgPCB0YWthc2VcIDsKK+WFqOWTgSA8IHplbnBpblwgOwor5qSc55ewIDwga2VudGFuXCA7CivlhaXllJAgPCBuaXR0b3VcIDsKK+Wwj+ipsSA8IHNob3V3YVwgOwor6IOM6Z2pIDwgc2VnYXdhXCA7Civlt6jlhIQgPCBreW9va3VcIDsKK+iDjOmdoiA8IGhhaW1lblwgOwor5YK15qipIDwgc2Fpa2VuXCA7CivovKrlp6YgPCByaW5rYW5cIDsKK+eWkeeNhCA8IGdpZ29rdVwgOwor55qu6Iaa56eRIDwgaGlmdWthXCA7CivlsI/oqIAgPCBrb2dvdG9cIDsKK+aknOeVqiA8IGtlbmJhblwgOwor5YWF5aGrIDwganV1dGVuXCA7CivlsaTnvqQgPCBzb3VndW5cIDsKK+iKseWxiyA8IGhhbmF5YVwgOwor6Luf5oqVIDwgbmFudG91XCA7Civou6LmiKYgPCB0ZW5zZW5cIDsKK+WBtueEtiA8IGd1dXplblwgOwor55Sf6IKyIDwgc2VpaWt1XCA7Civlsqnnm6QgPCBnYW5iYW5cIDsKK+WFseWKqSA8IGt5b3Vqb1wgOwor6LyD5beuIDwga2FrdXNhXCA7CivlhbXliIMgPCBoZWlqaW5cIDsKK+iLl+WcgyA8IGJ5b3Vob1wgOwor5YaN5Lu7IDwgc2FpbmluXCA7CivkvZnpjLIgPCB5b3Jva3VcIDsKK+eXheawlyA8IGJ5b3VraVwgOwor6aeF6YCTIDwgZWtpdGVpXCA7Civlrp/pmpsgPCBqaXNzYWlcIDsKK+eUn+iAhSA8IHNob3VqYVwgOwor55Sx57eSIDwgeXVpc2hvXCA7Civkv7PogZYgPCBoYWlzZWlcIDsKK+WxseezuyA8IHNhbmtlaVwgOwor55S357O7IDwgZGFua2VpXCA7Civlr77oq5YgPCB0YWlyb25cIDsKK+WvruiyuyA8IHJ5b3VoaVwgOwor6Lqr5p+EIDwgbWlnYXJhXCA7CivlgKvnpL4gPCByaW5zaGFcIDsKK+W3qOS9kyA8IGt5b3RhaVwgOwor5YaF5L2PIDwgbmFpanV1XCA7CivnmoflkI4gPCBrb3Vnb3VcIDsKK+Wwj+iiliA8IGtvc29kZVwgOwor5a++6KqeIDwgdHN1aWdvXCA7Civog73ovq8gPCBub3ViZW5cIDsKK+iLpuWRsyA8IG5pZ2FtaVwgOwor6a2F5oORIDwgbWl3YWt1XCA7Civlho3kuIkgPCBzYWlzYW5cIDsKK+W3qOS6uiA8IGt5b2ppblwgOwor5bCG6KOcIDwgc2hvdWhvXCA7CivoirjlpKcgPCBnZWlkYWlcIDsKK+iIt+airyA8IGdlbnRlaVwgOwor6ISx6KGjIDwgZGF0c3VpXCA7CivlhobkuJggPCBlbmt5dXVcIDsKK+iKneWxhSA8IHNoaWJhaVwgOwor6Luf5oCnIDwgbmFuc2VpXCA7Civnmobli6QgPCBrYWlraW5cIDsKK+W3qOS4hyA8IGt5b21hblwgOwor5p+76ZayIDwgc2FldHN1XCA7Civlr7joqIAgPCBzdW5nZW5cIDsKK+WvhumAgSA8IG1pc3NvdVwgOwor55So57SZIDwgeW91c2hpXCA7CivkvZPph40gPCB0YWlqdXVcIDsKK+ajhOe0hCA8IGtpeWFrdVwgOwor5L6N6KqtIDwgamlkb2t1XCA7CivpqqjniYwgPCBrYXJ1dGFcIDsKK+mqqOeJhyA8IGtvcHBlblwgOwor5YSS5a2mIDwganVnYWt1XCA7Civoh6rnhLYgPCBzaGl6ZW5cIDsKK+i1pOi1pCA8IGFrYWFrYVwgOwor6Imy5oKqIDwgaXJvYWt1XCA7Civoi6blipsgPCBrdXVyaWlcIDsKK+i6q+aWuSA8IG1pa2F0YVwgOwor5qW35pu4IDwga2Fpc2hvXCA7Civlrp3pkZEgPCBob3VrYW5cIDsKK+W8n+Wwj+eItiA8IG90b29qaVwgOwor5L+h6ICFIDwgc2hpbmphXCA7Civohr/nmI0gPCBub3V5b3VcIDsKK+amguaVsCA8IGdhaXN1dVwgOwor6Iq45Z+fIDwgZ2VpaWtpXCA7CivlsI/omY4gPCBrb2RvcmFcIDsKK+iJsuaBiyA8IGlyb2tvaVwgOwor6IK66ZaAIDwgaGFpbW9uXCA7CivnlaLnlJ8gPCBoaXNzZWlcIDsKK+eUn+e0mSA8IGtpZ2FtaVwgOwor5YWI5ZCbIDwgc2Vua3VuXCA7CivotaTosp0gPCBha2FnYWlcIDsKK+S+i+inoyA8IHJlaWthaVwgOwor55qG5YW1IDwga2FpaGVpXCA7Civou43mg4UgPCBndW5qb3VcIDsKK+mrmOatryA8IHRha2FiYVwgOwor5YW15LmxIDwgaGVpcmFuXCA7CivkvZXpgY0gPCBuYW5iZW5cIDsKK+mnhOizgyA8IGRhY2hpblwgOwor5bC+57+8IDwgYml5b2t1XCA7Civpq4TmtrIgPCB6dWlla2lcIDsKK+WwgeidiyA8IGZ1dXJvdVwgOwor5YWa5YaFIDwgdG91bmFpXCA7CivlhazkvY8gPCBrb3VqdXVcIDsKK+eUn+eyiyA8IGtpc3N1aVwgOwor5L+X6ICzIDwgem9rdWppXCA7CivlrrTpgYogPCBlbicneXV1XCA7CivlhYPlj7cgPCBnZW5nb3VcIDsKK+mqqOeCrSA8IGtvdHRhblwgOwor5YG05rOzIDwgc29iYWVpXCA7Civoi7Hkv4ogPCBlaXNodW5cIDsKK+iEseiXqSA8IGRhcHBhblwgOwor5YSA5a64IDwgZ2lzaGluXCA7Civkv4LoiLkgPCBrZWlzZW5cIDsKK+aflOmghiA8IGp1dWp1blwgOwor55Wq54qsIDwgYmFua2VuXCA7CivppqzouqsgPCBiYXNoaW5cIDsKK+eXmeaUoyA8IGtlaXJlblwgOwor5L6/6Ii5IDwgYmluc2VuXCA7CivohY7oh5MgPCBqaW56b3VcIDsKK+mms+i1sCA8IGNoaXNvdVwgOwor5Li75rK75Yy7IDwgc2h1amlpXCA7CivohYvoh60gPCB3YWtpZ2FcIDsKK+S4jeiqoOaEjyA8IGZ1c2VpaVwgOwor5YGc5rueIDwgdGVpdGFpXCA7Civoi7HkuqwgPCBlaWt5b3VcIDsKK+WvneiogCA8IG5lZ290b1wgOwor5YGJ54OIIDwgaXJldHN1XCA7Civpra/lm70gPCByb2tva3VcIDsKK+WFheWIhiA8IGp1dWJ1blwgOwor55qG5LydIDwga2FpZGVuXCA7Civnl7Tmg4UgPCBjaGlqb3VcIDsKK+W0h+aVrCA8IHN1dWtlaVwgOwor5b6h6Kmg5q2MIDwgZ29laWthXCA7Civou6Llr50gPCBnb3JvbmVcIDsKK+iFkOiCiSA8IGZ1bmlrdVwgOwor6Ly45YWlIDwgeXVueXV1XCA7CivlhYjlhbUgPCBzZW5wZWlcIDsKK+i7jeW4vSA8IGd1bmJvdVwgOwor5L+X57iBIDwgem9rdWVuXCA7CivohbnnrYsgPCBmdWtraW5cIDsKK+iHqua2nCA8IGppdG9rdVwgOwor6Iaa552AIDwgaGFkYWdpXCA7CivlrrnotaYgPCB5b3VzaGFcIDsKK+Wwv+e0oCA8IG55b3Vzb1wgOwor5qCE6YCyIDwgZWlzaGluXCA7CivmpZPmnpcgPCBmdXVyaW5cIDsKK+S9meiziiA8IHlvem9rdVwgOwor5qSc5ripIDwga2VuJydvblwgOwor5a+T6KiAIDwgZ3V1Z2VuXCA7CivpppbovKogPCBrdWJpd2FcIDsKK+iKuOWQjSA8IGdlaW1laVwgOwor5YGl5rCXIDwga2VuYWdlXCA7CivmoITovrEgPCBlaWpva3VcIDsKK+iDg+S4i+WegiA8IGlrYXN1aVwgOwor6LWk6KO4IDwgc2VraXJhXCA7CivlsI/oiLkgPCBrb2J1bmVcIDsKK+S8jemVtyA8IGdvY2hvdVwgOwor5bGI562LIDwga3Vra2luXCA7CivlrrnosowgPCB5b3Vib3VcIDsKK+eZuuS8miA8IGhha2thaVwgOwor6Ieq5rKIIDwgamljaGluXCA7Civnl5vmiZMgPCB0c3V1ZGFcIDsKK+WutuizgyA8IHlhY2hpblwgOwor55m75LuZIDwgdG91c2VuXCA7CivoirPlkI0gPCBob3VtZWlcIDsKK+WtpumZoiA8IGdha3VpblwgOwor5Yi35q+b55uuIDwgaGFrZW1lXCA7CivprZTlooMgPCBtYWt5b3VcIDsKK+eUsueDj+iziiA8IGtvdWlrYVwgOwor6IiM5qC5IDwgemVra29uXCA7CivltKnlvqEgPCBob3VneW9cIDsKK+mlhemgrSA8IG1hbmp1dVwgOwor5L2c6K2cIDwgc2FrdWZ1XCA7CivlhYjkvr8gPCBzZW5iaW5cIDsKK+Wwj+iGnSA8IGtvaGl6YVwgOwor5bKs5rm+IDwga291d2FuXCA7CivlsI/ohbkgPCBrb2JhcmFcIDsKK+WFg+WApCA8IG1vdG9uZVwgOwor6aqo5rOVIDwga29wcG91XCA7Civoia/lrrYgPCByeW91a2VcIDsKK+WFieS9kyA8IGtvdXRhaVwgOwor5a6Y6L66IDwga2FucGVuXCA7Civlrp/ou4ogPCBqaXNzaGFcIDsKK+WvhuioiCA8IG1pa2tlaVwgOwor5Lqc5ouJ5q+Y5LqcIDwgYXJhYmlhXCA7Civku4vpsZcgPCBrYWlyaW5cIDsKK+iDuOijjyA8IGt5b3VyaVwgOwor5bCP6ISHIDwga293YWtpXCA7CivkvIrpgZTnnYAgPCBkYXRlZ2lcIDsKK+W0h+aLnSA8IHN1dWhhaVwgOwor5qaC5b+1IDwgZ2FpbmVuXCA7CivnlKjnm4ogPCB5b3Vla2lcIDsKK+Wxr+eUsCA8IHRvbmRlblwgOwor6Ia+54KZIDwga2Fpc2hhXCA7CivlhYjku6MgPCBzZW5kYWlcIDsKK+Wwj+iCoSA8IGtvbWF0YVwgOwor6Lui5aSJIDwgdGVucGVuXCA7Civou6Llo7IgPCB0ZW5iYWlcIDsKK+W+oeimi+iIniA8IG9taW1haVwgOwor5a6f6Le1IDwgamlzc2VuXCA7Civlrpjou40gPCBrYW5ndW5cIDsKK+iDjOi1sCA8IGhhaXNvdVwgOwor6Lqr5b2iIDwgbWluYXJpXCA7CivmoKHoqJMgPCBrb3VrdW5cIDsKK+Wwj+iAsyA8IGtvbWltaVwgOwor6IG06Z+zIDwgY2hvdW9uXCA7Civlrrnoqo0gPCB5b3VuaW5cIDsKK+iEseiEgiA8IGRhc3NoaVwgOwor5Lya6YeIIDwgZXNoYWt1XCA7CivlrZTpm4AgPCBrdWpha3VcIDsKK+Wwj+iAhSA8IGtvbW9ub1wgOwor5Luj6aGYIDwgZGFpZ2FuXCA7CivppIrpto8gPCB5b3VrZWlcIDsKK+iDjOaWh+WtlyA8IHNlbW9qaVwgOwor5L+C57SvIDwga2VpcnVpXCA7Civogp3pipggPCBrYW5tZWlcIDsKK+S9meinkiA8IHlva2FrdVwgOwor6ISx6IKbIDwgZGFra291XCA7Civlr53ol4EgPCBuZXdhcmFcIDsKK+WEquabh+iPryA8IHVkb25nZVwgOwor5YG25pyJIDwgZ3V1eXV1XCA7Civlr4booYwgPCBtaWtrb3VcIDsKK+WFg+S4iSA8IGdhbnphblwgOwor5L2T6KiAIDwgdGFpZ2VuXCA7CivouqvluYUgPCBtaWhhYmFcIDsKK+S7sumWkyA8IG5ha2FtYVwgOwor5Ly06LWwIDwgYmFuc291XCA7Civou6LlnLAgPCB0ZW5jaGlcIDsKK+iJr+WknCA8IHJ5b3V5YVwgOwor5L2T6KaBIDwgdGFpeW91XCA7CivkvJ3pgIEgPCBkZW5zb3VcIDsKK+i0i+mAoCA8IGdhbnpvdVwgOwor5b6h6KWB6KSTIDwgb211dHN1XCA7Civoh6jmpJwgPCByaW5rZW5cIDsKK+WvvuiBryA8IHRhaXJlblwgOwor6aaW6KyAIDwgc2h1Ym91XCA7Civlg5XlqaIgPCBib2t1aGlcIDsKK+ajkueKtiA8IGJvdWpvdVwgOwor5LuW6aCYIDwgdGFyeW91XCA7Civlr7jog7QgPCB6dW5kb3VcIDsKK+S6uumtmiA8IG5pbmd5b1wgOwor5L2T6KOBIDwgdGVpc2FpXCA7CivlgbbmlbAgPCBndXVzdXVcIDsKK+mkiumtmiA8IHlvdWd5b1wgOwor5bCO57eaIDwgZG91c2VuXCA7CivlrozotbAgPCBrYW5zb3VcIDsKK+mmrOidvyA8IHVtYWJhZVwgOwor5Luk6ZaoIDwgcmVpa2VpXCA7Civlr77nva4gPCB0YWljaGlcIDsKK+mnkOiLsSA8IGNodXVlaVwgOwor6KW/54+t54mZIDwgc3VwZWluXCA7CivogqnouqsgPCBrYXRhbWlcIDsKK+S7iumiqCA8IGltYWZ1dVwgOwor6YCZ44CFIDwgaG91aG91XCA7CivoirjkurogPCBnZWluaW5cIDsKK+aflOmBkyA8IGp1dWRvdVwgOwor6ISx57eaIDwgZGFzc2VuXCA7CivmoLnoj5wgPCBrb25zYWlcIDsKK+iDoeidtiA8IGtvY2hvdVwgOwor5bCP57OgIDwga29udWthXCA7CivmpJzmoYggPCBrZW4nJ2FuXCA7Civlrproq5YgPCB0ZWlyb25cIDsKK+alveWxiyA8IGdha3V5YVwgOwor55eF5b6MIDwgYnlvdWdvXCA7Civohr/msYEgPCBub3VqdXVcIDsKK+WCsuWyuCA8IGdvdWdhblwgOwor5bCP57GzIDwga29nb21lXCA7Civlrabpg6ggPCBnYWt1YnVcIDsKK+iHqOabuCA8IHJpbnNob1wgOwor5p+76KqtIDwgc2Fkb2t1XCA7CivohavnmI0gPCBzaHV5b3VcIDsKK+alveWvnSA8IHJha3VuZVwgOwor5bCB57eYIDwgZnV1a2FuXCA7CivmoLnojI4gPCBrb25rZWlcIDsKK+iGqOa6gCA8IGJvdW1hblwgOwor5L+u55CGIDwgc2h1dXJpXCA7CivohLHns54gPCBkYXBwdW5cIDsKK+iHmOaihSA8IHJvdWJhaVwgOwor5p+76Ki8IDwgc2FzaG91XCA7CivlgJLmvbAgPCB0b3VrYWlcIDsKK+iIjOaIpiA8IHplc3NlblwgOwor6auY5oWiIDwga291bWFuXCA7Civmn5Tou58gPCBqdXVuYW5cIDsKK+Wwj+eusSA8IGtvYmFrb1wgOwor5bC955iBIDwgamluc3VpXCA7CivlsIrnsKEgPCBzb25rYW5cIDsKK+WwjueuoSA8IGRvdWtlblwgOwor5a6a6KaLIDwgdGVpa2VuXCA7Civnk6bnpKsgPCBnYXJla2lcIDsKK+Wun+ijhSA8IGppc3NvdVwgOwor5qW15a+SIDwgZ29ra2FuXCA7Civpp4XoiI4gPCBla2lzaGFcIDsKK+adpemuriA8IHJhaXNlblwgOwor5Lq66aGeIDwgamlucnVpXCA7CivkuqHprYIgPCBib3Vrb25cIDsKK+i0iOizhCA8IHpvdXdhaVwgOwor5L2/6IGYIDwgc2hpaGVpXCA7CivkurrpoK0gPCBqaW50b3VcIDsKK+i1sOiAhSA8IHNvdXNoYVwgOwor5a6f6KGMIDwgamlra291XCA7Civou43llrYgPCBndW4nJ2VpXCA7Civou73kvr8gPCBrZWliZW5cIDsKK+S9v+iAhSA8IHNoaXNoYVwgOwor5YG25oiQIDwgZ3V1c2VpXCA7Civou6Lli6QgPCB0ZW5raW5cIDsKK+S/l+eUuyA8IHpva3VnYVwgOwor5a++57GzIDwgdGFpYmVpXCA7Civot53niKogPCBreW9zb3VcIDsKK+S6uumdoiA8IGppbm1lblwgOwor6ICB6b2iIDwgcm91cmVpXCA7Civoia/lkI8gPCByeW91cmlcIDsKK+advumcsiA8IHNob3Vyb1wgOwor5bCB562SIDwgZnV1dG91XCA7Civpo5vps6UgPCBoaWNob3VcIDsKK+iEmue1hiA8IGt5YWhhblwgOwor5YG25oSfIDwgZ3V1a2FuXCA7Civosp3poZ4gPCBrYWlydWlcIDsKK+S7mOmMsiA8IGZ1cm9rdVwgOwor5YGP5peBIDwgaGVuYm91XCA7Civku6Pph5EgPCBkYWlraW5cIDsKK+WBj+aWnCA8IGhlbnNoYVwgOwor5a+S6IKlIDwga2FuZ29lXCA7Civou6LlhpkgPCB0ZW5zaGFcIDsKK+S8muirhyA8IGthaWRhblwgOwor6IiO5byfIDwgc2hhdGVpXCA7CivpprToh7QgPCBqdW5jaGlcIDsKK+mtmuS7iyA8IGd5b2thaVwgOwor5YKY5bGLIDwga2FzYXlhXCA7CivkvJ3oqIAgPCBkZW5nb25cIDsKK+i7iuWPsCA8IHNoYWRhaVwgOwor5LiN6KaL55uuIDwgbWlqaW1lXCA7Civlr77nqbogPCB0YWlrdXVcIDsKK+S8muioiCA8IGthaWtlaVwgOwor5L2c6IiIIDwgc2Fra291XCA7Civohbjngo4gPCBjaG91ZW5cIDsKK+S6uumWkyA8IG5pbmdlblwgOwor5a2m6LK7IDwgZ2FrdWhpXCA7CivmnbHpnaIgPCB0b3VtZW5cIDsKK+Wwj+egtCA8IHNob3VoYVwgOwor6aOb6a2aIDwgdG9iaXVvXCA7CivlsbHmsLQgPCBzYW5zdWlcIDsKK+S9meiIiCA8IHlva3lvdVwgOwor5bGx5rCXIDwgeWFtYWtlXCA7CivlsI/nn7MgPCBrb2lzaGlcIDsKK+iVjum6pueyiSA8IHNvYmFrb1wgOwor6LuN5YuiIDwgZ3VuemVpXCA7CivkvZnoh60gPCB5b3NodXVcIDsKK+S8muimiyA8IGthaWtlblwgOwor5bCB56aFIDwgaG91emVuXCA7CivotIXoqIAgPCB6ZWlnZW5cIDsKK+ePvumHkSA8IGdlbmtpblwgOwor5bGF54S2IDwga3lvemVuXCA7CivlhITkuIcgPCBva3VtYW5cIDsKK+aknOaMmSA8IGtlbmt5b1wgOwor6Lui5YCSIDwgdGVudG91XCA7CivnlLrmrakgPCBjaG91YnVcIDsKK+WDp+WFtSA8IHNvdWhlaVwgOwor55aR5oORIDwgZ2l3YWt1XCA7Civku6Pov5QgPCBkYWloZW5cIDsKK+alveWcnyA8IHJha3Vkb1wgOwor6Ieo5oimIDwgcmluc2VuXCA7Civlrp3olLUgPCBob3V6b3VcIDsKK+alveWckiA8IHJha3VlblwgOwor5p6X6YeOIDwgcmluJyd5YVwgOwor5Lqs6ZiqIDwga2VpaGFuXCA7CivotaTnt5ogPCBha2FzZW5cIDsKK+S7lumDtyA8IHRha3lvdVwgOwor6LuN5YiAIDwgZ3VudG91XCA7Civnl7TlkYYgPCBjaGlob3VcIDsKK+adoemghSA8IGpvdWtvdVwgOwor5bCP55uuIDwga29tb2t1XCA7CivmoITokL0gPCBlaXJha3VcIDsKK+i7ouS9jyA8IHRlbmp1dVwgOwor55So5rOVIDwgeW91aG91XCA7Civoh4bmlq0gPCBva3VkYW5cIDsKK+i6jeWmgiA8IHlha3Vqb1wgOwor5bCP55q/IDwga296YXJhXCA7CivlsI/nmrogPCBrb2ppd2FcIDsKK+S6oemciiA8IGJvdXJlaVwgOwor5qKt5a2Q6a2aIDwga2FtYXN1XCA7CivoiLnlnosgPCBzZW5rZWlcIDsKK+i1pOe1jCA8IHNla2tlaVwgOwor5L2e6ICFIDwgbmVpc2hhXCA7CivppqzogokgPCBiYW5pa3VcIDsKK+WBleaIkCA8IGthaXNlaVwgOwor6LuN5YW1IDwgZ3VucGVpXCA7CivmnaXpm7sgPCByYWlkZW5cIDsKK+adsemWgCA8IHRvdW1vblwgOwor55So5rC0IDwgeW91c3VpXCA7Civou4rlhoUgPCBzaGFuYWlcIDsKK+mmreiAhSA8IGd5b3NoYVwgOwor5LiN6ZqP5oSPIDwgZnV6dWlpXCA7CivprYXkuoYgPCBtaXJ5b3VcIDsKK+S6jOmjnyA8IG5pamlraVwgOwor6ISC57KJIDwgc2hpZnVuXCA7Civoh7PlvZMgPCBzaGl0b3VcIDsKK+S9k+iCsiA8IHRhaWlrdVwgOwor5bGl5q20IDwgcmlyZWtpXCA7Civlg6fkvrYgPCBzb3VyeW9cIDsKK+ael+mBkyA8IHJpbmRvdVwgOwor5YCk5pytIDwgbmVmdWRhXCA7CivntKvpmb3oirEgPCBhamlzYWlcIDsKK+S9juiDvSA8IHRlaW5vdVwgOwor5p2l6ZiqIDwgcmFpaGFuXCA7Civkvovnpa0gPCByZWlzYWlcIDsKK+iytOmFrCA8IGtpc2h1dVwgOwor6IOa6IOOIDwgaGFpdGFpXCA7Civlg6fkvL0gPCBzb3VneWFcIDsKK+ahp+eariA8IGhpd2FkYVwgOwor5a2Q6LGaIDwga29idXRhXCA7Civosq/ph5EgPCBjaG9raW5cIDsKK+S7o+i1sCA8IGRhaXNvdVwgOwor6IK66JGJIDwgaGFpeW91XCA7Civlg63kuIogPCBzZW5qb3VcIDsKK+iHqOW+oSA8IHJpbmd5b1wgOwor6LKn6YmxIDwgaGlua291XCA7CivlgY/mhJsgPCBoZW4nJ2FpXCA7Civlgb3lraYgPCBnaWdha3VcIDsKK+WCkeWjqyA8IGtlc3NoaVwgOwor6YeO6Imv552AIDwgbm9yYWdpXCA7CivpppbohLMgPCBzaHVub3VcIDsKK+eUn+auiyA8IHNlaXphblwgOwor5p2/6YeRIDwgYmFua2luXCA7Civmo5/mnKggPCBtdW5hZ2lcIDsKK+eVquaJgCA8IGJhbnNob1wgOwor5LqO6Jit55uGIDwgdXJhYm9uXCA7Civot6/mqJkgPCByb2h5b3VcIDsKK+i7iuS9kyA8IHNoYXRhaVwgOwor6Ii55ZOhIDwgc2VuJydpblwgOwor5a2X6KizIDwgaml5YWt1XCA7Civoi6blkbPntKAgPCBrdW1pc29cIDsKK+WBj+aApyA8IGhlbnNlaVwgOwor5qON5qOSIDwga29uYm91XCA7CivlgZzlubQgPCB0ZWluZW5cIDsKK+WCmOWcsCA8IGthc2FqaVwgOwor5a6Y6IiOIDwga2Fuc2hhXCA7CivpqJLnhLYgPCBzb3V6ZW5cIDsKK+WxseaelyA8IHNhbnJpblwgOwor5qW15Y+zIDwga3lva3V1XCA7CivmnKjprYIgPCBrb2RhbWFcIDsKK+iFjueCjiA8IGppbicnZW5cIDsKK+WxseadkSA8IHNhbnNvblwgOwor5Lq66YG4IDwgamluc2VuXCA7CivlsI/njKsgPCBrb25la29cIDsKK+S7ruiolyA8IGthdGFrdVwgOwor5qOS5p2tIDwgYm91Z3VpXCA7CivkurrpgZMgPCBqaW5kb3VcIDsKK+mmrOezpyA8IGJhcnlvdVwgOwor6LOH6LKhIDwgc2hpemFpXCA7Civppqzns54gPCBtYWd1c29cIDsKK+WDheWDhSA8IGtpbmtpblwgOwor5qW15Y2wIDwgZ29rdWluXCA7Civku6PorJsgPCBkYWlrb3VcIDsKK+S8muiRrCA8IGthaXNvdVwgOwor6LuK5LiKIDwgc2hham91XCA7Civoh7PlsIogPCBzaGlzb25cIDsKK+iIheWnkSA8IGt5dXVrb1wgOwor6IK66IeTIDwgaGFpem91XCA7CivouqvlhoUgPCBtaXVjaGlcIDsKK+i6q+WFsSA8IG1pZG9tb1wgOwor6Iez5a6dIDwgc2hpaG91XCA7CivkvZPns7sgPCB0YWlrZWlcIDsKK+WBj+W5syA8IGhlbnBlaVwgOwor5a+f55+lIDwgc2F0Y2hpXCA7CivmnKvpppkgPCBtYWtrb3VcIDsKK+acqOmmrCA8IG1va3ViYVwgOwor5YG05aWzIDwgc29iYW1lXCA7CivmnKzppKggPCBob25rYW5cIDsKK+S7o+iogCA8IGRhaWdlblwgOwor6IK66IOeIDwgaGFpaG91XCA7Civkurrou4ogPCBqaW5zaGFcIDsKK+acsemhlCA8IHNodWdhblwgOwor55So5p2QIDwgeW91emFpXCA7CivotrPmua8gPCBhc2hpeXVcIDsKK+WCvuWAkiA8IGtlaXRvdVwgOwor5qWt5YuZIDwgZ3lvdW11XCA7CivlgI3mlbAgPCBiYWlzdXVcIDsKK+iAgembhCA8IHJvdXl1dVwgOwor6Ii55Ye6IDwgZnVuYWRlXCA7Civoh6rlroUgPCBqaXRha3VcIDsKK+iEh+ebriA8IHdha2ltZVwgOwor5pys6aGYIDwgaG9uZ2FuXCA7CivmnKzpoYwgPCBob25kYWlcIDsKK+S5sembsiA8IHJhbicndW5cIDsKK+eWvuWRvCA8IHNoaWtrb1wgOwor6Ii55YW3IDwgZnVuYWd1XCA7CivlrrbnrYsgPCBpZXN1amlcIDsKK+acrOmfsyA8IGhvbicnbmVcIDsKK+S7mOiolyA8IGZ1dGFrdVwgOwor55Sf5p2lIDwgc2VpcmFpXCA7CivlgKbmhoogPCBrZW5wYWlcIDsKK+aeouimgSA8IHN1dXlvdVwgOwor6aKx6aKoIDwgdGFpZnV1XCA7Civlr53nmZYgPCBuZWd1c2VcIDsKK+eEoeS6i+aVhSA8IG11amlrb1wgOwor6IeN5bivIDwgc2VpdGFpXCA7CivmpJzlrpogPCBrZW50ZWlcIDsKK+adpemCuCA8IHJhaXRlaVwgOwor6IW55qGIIDwgZnVrdWFuXCA7CivnlJ/mnKggPCBuYW1ha2lcIDsKK+S9meeoiyA8IHlvaG9kb1wgOwor5YKy5YCoIDwgZ291a3lvXCA7CivpqqjlrZAgPCBrb3NzaGlcIDsKK+adpemBiiA8IHJhaXl1dVwgOwor5p2x6LuNIDwgdG91Z3VuXCA7CivlsZXmnJsgPCB0ZW5ib3VcIDsKK+iAs+i8qiA8IG1pbWl3YVwgOwor5bCP5r2uIDwga29zaGlvXCA7CivmorbmnKggPCBrYWppa2lcIDsKK+iyp+izpCA8IGhpbnNlblwgOwor5p2l6L+OIDwgcmFpZ291XCA7CivmnInpq6ogPCB1aGF0c3VcIDsKK+i1pOeXoiA8IHNla2lyaVwgOwor5L6/5rOVIDwgYmVucG91XCA7CivkvY7nqbogPCB0ZWlrdXVcIDsKK+S8neiBniA8IGRlbmJ1blwgOwor5pys6ZqKIDwgaG9udGFpXCA7CivlsqnlsaQgPCBnYW5zb3VcIDsKK+acnemhlCA8IGFzYWdhb1wgOwor6Lqr5LiIIDwgbWl0YWtlXCA7CivmnKzpmaMgPCBob25qaW5cIDsKK+acrOmZoiA8IGhvbicnaW5cIDsKK+WwqOavmyA8IG11a3VnZVwgOwor5a6a57SLIDwgam91bW9uXCA7CivppIrosZogPCB5b3V0b25cIDsKK+S7mOihqCA8IGZ1aHlvdVwgOwor5pyx6ZaAIDwgc2h1bW9uXCA7CivkvbXnlKggPCBoZWl5b3VcIDsKK+acqOmZsCA8IGtva2FnZVwgOwor5YK15Li7IDwgc2Fpc2h1XCA7CivmnaXou4ogPCByYWlzaGFcIDsKK+iDjOetiyA8IGhhaWtpblwgOwor5bGx5omLIDwgeWFtYXRlXCA7CivohYvmr5sgPCB3YWtpZ2VcIDsKK+S+v+auvyA8IGJlbmRlblwgOwor6IKd6IOGIDwga2FudGFuXCA7CivmnJ3pnLIgPCBjaG91cm9cIDsKK+Wxr+aJgCA8IHRvbnNob1wgOwor6LOA6KGoIDwgZ2FoeW91XCA7Civlrp3nrpcgPCBob3VzYW5cIDsKK+S4gOaYqOaXpSA8IG90b3RvaVwgOwor6aKo6ZycIDwgZnV1c291XCA7CivotbfniIYgPCBraWJha3VcIDsKK+iIiOWRsyA8IGt5b3VtaVwgOwor6IKJ6Iq9IDwgbmlrdWdhXCA7CivlraToiJ8gPCBrb3NodXVcIDsKK+S6jOmAsiA8IG5pc2hpblwgOwor5p2R6YGTIDwgc29uZG91XCA7CivlgY/lpb0gPCBoZW5rb3VcIDsKK+S6jOmAmiA8IG5pdHN1dVwgOwor5YCk5bmFIDwgbmVoYWJhXCA7CivpoqjpmLIgPCBmdXVib3VcIDsKK+aer+iRiSA8IGthcmVoYVwgOwor5a62552jIDwga2F0b2t1XCA7CivlgbblkJ8gPCBndXVraW5cIDsKK+S8nee3miA8IGRlbnNlblwgOwor6Ieq5Zu9IDwgamlrb2t1XCA7Civoh6jlnKggPCByaW56YWlcIDsKK+S9meeZvSA8IHlvaGFrdVwgOwor5a6/55e+IDwgc2h1a3VhXCA7Civlr4bnlJ8gPCBtaXNzZWlcIDsKK+WvhOeVmSA8IGtpcnl1dVwgOwor5p2l6LOTIDwgcmFpaGluXCA7CivkvJ3ntbEgPCBkZW50b3VcIDsKK+eUu+W/gyA8IGdhc2hpblwgOwor5bCO5rC0IDwgZG91c3VpXCA7CivmnaXosqIgPCByYWlrb3VcIDsKK+iEseazlSA8IGRhcHBvdVwgOwor5YCk5bWpIDwgbmVnYXNhXCA7Civlh7rmnaXlgKQgPCBkZWtpbmVcIDsKK+ixqumCuCA8IGdvdXRlaVwgOwor5L2Z55eFIDwgeW9ieW91XCA7CivogIHphZIgPCByb3VzaHVcIDsKK+S9juebriA8IGhpa3VtZVwgOwor5L2c55S7IDwgc2FrdWdhXCA7CivnjaPpoZ4gPCBqdXVydWlcIDsKK+ixqumCgSA8IGdvdW1haVwgOwor5bCE5rOVIDwgc2hhaG91XCA7Civpp4TniakgPCBkYW1vbm9cIDsKK+iEseawtCA8IGRhc3N1aVwgOwor6aOb6LqNIDwgaGl5YWt1XCA7CivkubHphZQgPCByYW5zdWlcIDsKK+S5semFkiA8IHJhbnNodVwgOwor6IiO5YWEIDwgc2hha2VpXCA7Civku7Doh6UgPCBneW91Z2FcIDsKK+eVquWkliA8IGJhbmdhaVwgOwor5bKp5aGpIDwgZ2FuJydlblwgOwor5L2V55WqIDwgbmFuYmFuXCA7Civmm7jpoqggPCBzaG9mdXVcIDsKK+iEs+atuyA8IG5vdXNoaVwgOwor5LqM6LazIDwgbmlzb2t1XCA7Civnvr3poqggPCBoYWthemVcIDsKK+ixqui+siA8IGdvdW5vdVwgOwor55S75bmFIDwgZ2FmdWt1XCA7Civmm7jpoZ4gPCBzaG9ydWlcIDsKK+eUn+aGjiA8IGFpbmlrdVwgOwor5Lit6aObIDwgY2h1dWhpXCA7CivosLfplpMgPCB0YW5pbWFcIDsKK+adseilvyA8IHRvdXphaVwgOwor6Iet5ZGzIDwgc2h1dW1pXCA7CivnkLTnt5ogPCBraW5zZW5cIDsKK+iDoeeTnCA8IGt5dXVyaVwgOwor6aOb6LaKIDwgaGlldHN1XCA7CivmnaXoq4cgPCByYWlkYW5cIDsKK+WAieW7qSA8IHNvdXJpblwgOwor6IWQ5py9IDwgZnVreXV1XCA7CivlronnqY8gPCBhbicnbm9uXCA7CivlgKTlrokgPCBuZXlhc3VcIDsKK+S7o+iJpiA8IGRhaWthblwgOwor5a+45rOVIDwgc3VucG91XCA7Civog47nm6QgPCB0YWliYW5cIDsKK+iAgei+siA8IHJvdW5vdVwgOwor5Lmx6YCgIDwgcmFuem91XCA7Civlgo3kurogPCBib3VqaW5cIDsKK+WxiOaMhyA8IGt1c3NoaVwgOwor6IKy56iuIDwgaWt1c2h1XCA7CivmooXmnpcgPCBiYWlyaW5cIDsKK+acqOmHmCA8IGtpa3VnaVwgOwor55S35belIDwgZGFua291XCA7CivosbzosoUgPCBoaWt5dXVcIDsKK+aciOmWkyA8IGdla2thblwgOwor5LuP6JGsIDwgYnVzc291XCA7CivlgJ/lrrYgPCBzaGFra2FcIDsKK+abuOmdoiA8IHNob21lblwgOwor5p2l6KiqIDwgcmFpaG91XCA7CivkuK3pn7MgPCBjaHV1b25cIDsKK+i0iOetlCA8IHpvdXRvdVwgOwor6ICB6LypIDwgcm91aGFpXCA7Civogb7ogIUgPCByb3VzaGFcIDsKK+ahkea1tyA8IHNvdWthaVwgOwor5bCP5qWvIDwga29kYXRlXCA7Civmn7HnpI4gPCBjaHV1c29cIDsKK+iBmuiQvSA8IGp1cmFrdVwgOwor5qSc5ZOBIDwga2VucGluXCA7Civlgbblg48gPCBndXV6b3VcIDsKK+WtmOe9riA8IHNvbmNoaVwgOwor5pys6YK4IDwgaG9udGVpXCA7CivmnKzpgqYgPCBob25wb3VcIDsKK+adpeimsyA8IHJhaWthblwgOwor6aSK6JqVIDwgeW91c2FuXCA7CivmnKzpgbggPCBob25zZW5cIDsKK+mgvem9oiA8IHRhaXJlaVwgOwor55Kw5rW3IDwga2Fua2FpXCA7CivmnKjpg6ggPCBtb2t1YnVcIDsKK+acrOmBkyA8IGhvbmRvdVwgOwor5bGF5omAIDwga3lvc2hvXCA7Civot6/luoogPCByb3Nob3VcIDsKK+WBveS9nCA8IGdpc2FrdVwgOwor5Lmx6LuNIDwgcmFuZ3VuXCA7Civos57nvo4gPCBzaG91YmlcIDsKK+iyr+iUtSA8IGNob3pvdVwgOwor5YCh5ammIDwgc2hvdWZ1XCA7CivmnJ3ph44gPCBjaG91eWFcIDsKK+iDmuePoCA8IGhhaXNodVwgOwor5pyq6YCyIDwgbWlzaGluXCA7CivkvJHnrKYgPCBreXV1ZnVcIDsKK+miqOmHhyA8IGZ1dXNhaVwgOwor55Sj5buDIDwgc2FucGFpXCA7Civku6TogZ4gPCByZWlidW5cIDsKK+iHquWKmyA8IGppcmlraVwgOwor5L+C5pWwIDwga2Vpc3V1XCA7CivkuK3pmbAgPCBjaHV1aW5cIDsKK+aknOWNsCA8IGtlbicnaW5cIDsKK+WwkeaelyA8IHNob3JpblwgOwor5YGl5YWoIDwga2VuemVuXCA7Civlr67mr40gPCByeW91Ym9cIDsKK+eUu+WtpiA8IGdhZ2FrdVwgOwor5LqS6KeSIDwgZ29rYWt1XCA7Civos6rntKAgPCBzaGlzc29cIDsKK+aguea6kCA8IGtvbmdlblwgOwor5p+z55yJIDwgcnl1dWJpXCA7Civkuonoq5YgPCBzb3Vyb25cIDsKK+i1sOazlSA8IHNvdWhvdVwgOwor5LiK6aiwIDwgam91dG91XCA7CivlsbHlrrYgPCB5YW1hZ2FcIDsKK+Wun+eUnyA8IG1pc2hvdVwgOwor5pyr6LypIDwgbWFwcGFpXCA7CivlsZ7lt64gPCB6b2t1c2FcIDsKK+S4jemmtCA8IGZ1bmFyZVwgOwor5qS/5LqLIDwgY2hpbmppXCA7Civpppbnj60gPCBzaHVoYW5cIDsKK+WumueVqiA8IHRlaWJhblwgOwor5YG25Lq6IDwgZ3V1amluXCA7CivnlLflrZAgPCBkYW5zaGlcIDsKK+S7o+e9siA8IGRhaXNob1wgOwor5Luj572uIDwgZGFpY2hpXCA7CivkvIrli6LkuLkgPCBpc2V0YW5cIDsKK+iCuueZjCA8IGhhaWdhblwgOwor6aWM57GzIDwgc2VubWFpXCA7CivotqPml6ggPCBzaHVzaGlcIDsKK+S7iuiIrCA8IGtvbnBhblwgOwor5bCK5p2lIDwgc29ucmFpXCA7Civmoq/lvaIgPCB0ZWlrZWlcIDsKK+S6jOimiyA8IGZ1dGFtaVwgOwor6Ieq5YSYIDwgamltYW1hXCA7CivmnpzogokgPCBrYW5pa3VcIDsKK+aknOWIhiA8IGtlbmJ1blwgOwor5Lih6ZmiIDwgcnlvdWluXCA7CivnlLLlrZAgPCBrYXNzaGlcIDsKK+S4gOmpmiA8IGlra3lvdVwgOwor5LqU6KGMIDwgZ29neW91XCA7Civoh7Pkvr8gPCBzaGliZW5cIDsKK+WwiuabuCA8IHNvbnNob1wgOwor5bCP5pi8IDwga29oaXJ1XCA7Civmm53pnLIgPCBiYWt1cm9cIDsKK+Wwj+aYpSA8IGtvaGFydVwgOwor5L2Z54CdIDwgeW9yZWtpXCA7CivnjK7ppYwgPCBrZW5zZW5cIDsKK+S/oeW+kiA8IHNoaW50b1wgOwor55Wq5Y+3IDwgYmFuZ291XCA7CivkuIDpp4QgPCBpY2hpZGFcIDsKK+mhnumhjCA8IHJ1aWRhaVwgOwor5puc6ZyKIDwgeW91cmVpXCA7CivmoLnmsrsgPCBrb25jaGlcIDsKK+WBieWKmyA8IGlyeW9rdVwgOwor5a+h5qyyIDwga2F5b2t1XCA7CivmnInphY0gPCB5dXVoYWlcIDsKK+S7lee9riA8IHNoaW9raVwgOwor6aKo6LuKIDwgZnV1c2hhXCA7Civmmpfpu5kgPCBhbm1va3VcIDsKK+WxseWlsyA8IHlhbWFtZVwgOwor5pqX6buSIDwgYW5rb2t1XCA7CivlsIHmm7ggPCBmdXVzaG9cIDsKK+S7j+iAhSA8IGJ1c3NoYVwgOwor5qOE5a2QIDwgc3V0ZWdvXCA7CivlgLnlkJ0gPCBrZW5yaW5cIDsKK+iHquS+myA8IGppa3lvdVwgOwor5LiJ6Z+TIDwgc2Fua2FuXCA7CivkuojooaggPCB5b2h5b3VcIDsKK+S4h+mggyA8IGJhbmtlaVwgOwor5LiA6aObIDwgaWNoaWhpXCA7CivmoLnmr5sgPCBrb25tb3VcIDsKK+S9mea7tCA8IHlvdGVraVwgOwor5YCN5aSnIDwgYmFpZGFpXCA7Civoh6rkvZwgPCBqaXNha3VcIDsKK+iCsueUnyA8IGlrdXNlaVwgOwor55S75aKDIDwgZ2FreW91XCA7CivmnKjos4ogPCB0b2t1c2FcIDsKK+WwiuaVrCA8IHNvbmtlaVwgOwor5LiK6Z2iIDwgam91bWVuXCA7CivlsYXluLggPCBreW9qb3VcIDsKK+S7o+e0jSA8IGRhaW5vdVwgOwor5a+S5rCXIDwgc2FtdWtlXCA7CivkuInpnaIgPCBzYW5tZW5cIDsKK+WwiuaUmCA8IHNvbmpvdVwgOwor5YGc5LyaIDwgdGVpa2FpXCA7CivlgI3lopcgPCBiYWl6b3VcIDsKK+aknOS+vyA8IGtlbmJlblwgOwor55Sf5a2YIDwgc2Vpem9uXCA7CivlsZHlsYsgPCBrdXp1eWFcIDsKK+mhmOmdoiA8IGdhbm1lblwgOwor6aKo6LajIDwgZnV1c2h1XCA7Civog7jmr5sgPCBtdW5hZ2VcIDsKK+WxseWgtCA8IHlhbWFiYVwgOwor5bGP5bGFIDwgaGVpa3lvXCA7CivkuIfpm7cgPCBiYW5yYWlcIDsKK+S4iemajiA8IHNhbmdhaVwgOwor5a+d5qeYIDwgbmV6YW1hXCA7CivmraTlh6bnrYkgPCBrb2tvcmFcIDsKK+eVquWFtSA8IGJhbnBlaVwgOwor5pyd6LOAIDwgY2hvdWdhXCA7Civlr77mlbAgPCB0YWlzdXVcIDsKK+WvqeafuyA8IHNoaW5zYVwgOwor5a+d5qWtIDwgbmV3YXphXCA7CivpnLLopb/kupwgPCByb3NoaWFcIDsKK+acrOirliA8IGhvbnJvblwgOwor5YCf5ZWPIDwgc2hhbW9uXCA7Civmm77pgYogPCBzb3V5dXVcIDsKK+eQouejqCA8IHRha3VtYVwgOwor6IW55a2QIDwgaGFyYWtvXCA7CivmoZ/mlbcgPCBzYWppa2lcIDsKK+WvvuaUryA8IHRhaXNoaVwgOwor6aSK6IKyIDwgeW91aWt1XCA7CivkvK/niLYgPCBoYWt1ZnVcIDsKK+acrOiqjCA8IGhvbnNoaVwgOwor5a2Q56iuIDwga29kYW5lXCA7CivlsI/mjIcgPCBrb3l1YmlcIDsKK+acquiqrSA8IG1pZG9rdVwgOwor55uu5Yy76ICFIDwgbWVpc2hhXCA7CivkuIDpmrsgPCBpc3Nla2lcIDsKK+WvuOaWrSA8IHN1bmRhblwgOwor6ICB6KGwIDwgcm91c3VpXCA7CivohZDlv4MgPCBmdXNoaW5cIDsKK+aatOmiqCA8IGJvdWZ1dVwgOwor5L2Z5rKiIDwgeW90YWt1XCA7CivlrprngrkgPCB0ZWl0ZW5cIDsKK+abuOmBkyA8IHNob2RvdVwgOwor5Lit6YOoIDwgY2h1dWJ1XCA7CivlgY/kurogPCBoZW5qaW5cIDsKK+WApuWOrSA8IGtlbicnZW5cIDsKK+WtpueboyA8IGdha2thblwgOwor6aSK6ICBIDwgeW91cm91XCA7CivnlKPlo7AgPCB1YnVnb2VcIDsKK+mjtOiJsiA8IGFtZWlyb1wgOwor55Sw5ZywIDwgZGVuY2hpXCA7CivmnJ3orbAgPCBjaG91Z2lcIDsKK+eUsOWckiA8IGRlbicnZW5cIDsKK+mmmea4ryA8IGhvbmtvblwgOwor5qGC5p6XIDwga2VpcmluXCA7CivkuIDplpMgPCBoaXRvbWFcIDsKK+WtmOefpSA8IHpvbmNoaVwgOwor5Lit6YCUIDwgY2h1dXRvXCA7CivnkLrnka8gPCBob3Vyb3VcIDsKK+mgu+mguyA8IGhpbnBpblwgOwor5bC75bC+IDwgc2hpcHBvXCA7CivnlJrlpKcgPCBqaW5kYWlcIDsKK+S+i+aVsCA8IHJlaXN1dVwgOwor5LqM6JGJIDwgZnV0YWJhXCA7Civpo7zogrIgPCBzaGlpa3VcIDsKK+S/s+WjhyA8IGhhaWRhblwgOwor5bGv5Za2IDwgdG9uJydlaVwgOwor5p2l6IeoIDwgcmFpcmluXCA7CivmorXlpKkgPCBib250ZW5cIDsKK+WmguS9leanmCA8IGlrYXlvdVwgOwor5a+S5qKFIDwga2FuYmFpXCA7CivmoLnmn6IgPCBrb250ZWlcIDsKK+S9leatsyA8IG5hbnNhaVwgOwor5qCX5q+bIDwga3VyaWdlXCA7CivlsIrmha4gPCBzb25yeW9cIDsKK+S9j+awkSA8IGp1dW1pblwgOwor5bCR5oGpIDwgc2hvdW9uXCA7CivnlKPlnLAgPCBzYW5jaGlcIDsKK+S8geeUuyA8IGtpa2FrdVwgOwor55SY5aGpIDwgYW1hamlvXCA7CivotaTmnKwgPCBha2Fob25cIDsKK+miqOinoyA8IGZ1dWthaVwgOwor5L215pyJIDwgaGVpeXV1XCA7CivlsYvlpJYgPCBva3VnYWlcIDsKK+mmrOaphyA8IGJhc29yaVwgOwor5Lit6LqrIDwgbmFrYW1pXCA7CivnkIbnpZ4gPCByaXNoaW5cIDsKK+agueacrCA8IG5lbW90b1wgOwor5Lq657W5IDwgamlua2VuXCA7CivkuLvos5MgPCBzaHVoaW5cIDsKK+eUn+WcsCA8IHNlaWNoaVwgOwor6aKo6KaLIDwga2F6YW1pXCA7Civku5bnp7AgPCB0YXNob3VcIDsKK+mmmeawtCA8IGtvdXN1aVwgOwor5a+S5p2RIDwga2Fuc29uXCA7CivmnYnoj5wgPCBzdWdpbmFcIDsKK+eVmeS/nSA8IHJ5dXVob1wgOwor6IO95pu4IDwgbm91c2hvXCA7CivkvZzmpa0gPCBzYWd5b3VcIDsKK+WAqOWCsiA8IGt5b2dvdVwgOwor5qC55pqXIDwgbmVrdXJhXCA7Civot6HlnLAgPCBhdG9jaGlcIDsKK+S6uuezniA8IGppbnB1blwgOwor5a2m55CGIDwgZ2FrdXJpXCA7CivkvZnmpa0gPCB5b2d5b3VcIDsKK+Wwj+W9oiA8IGtvZ2F0YVwgOwor5pyI6KydIDwgZ2Vzc2hhXCA7Civlr4bmoJMgPCBtaXNzZW5cIDsKK+WvkuaaliA8IGthbmRhblwgOwor6aKo6KKLIDwgZnV1dGFpXCA7CivkuInph40gPCBzYW5qdXVcIDsKK+iyoee1jCA8IHphaWtlaVwgOwor5a2Y55SfIDwgem9uam91XCA7CivkuIfph5EgPCBtYW5raW5cIDsKK+WwiuW9sSA8IHNvbicnZWlcIDsKK+agueaWuSA8IG5la2F0YVwgOwor55So5ZOBIDwgeW91aGluXCA7Civku67nl4UgPCBrZWJ5b3VcIDsKK+S4iumFkiA8IGpvdXNodVwgOwor5a6X5rS+IDwgc2h1dWhhXCA7Civlrprms5UgPCBqb3Vob3VcIDsKK+WutualrSA8IGthZ3lvdVwgOwor6IOh5qSSIDwga29zaG91XCA7Civog4bmsYEgPCB0YW5qdXVcIDsKK+eQpeePgCA8IGtvaGFrdVwgOwor6IO95paHIDwgbm91YnVuXCA7CivlsI/luYUgPCBrb2hhYmFcIDsKK+WtpOeLrCA8IGtvZG9rdVwgOwor55Sj5ZOBIDwgc2FucGluXCA7CivkuI3pgakgPCBmdXRla2lcIDsKK+WvhuabuCA8IG1pc3Nob1wgOwor6IKh54GrIDwgbWF0YWJpXCA7Civnvo7phpwgPCBiaXNodXVcIDsKK+S4gOmHjCA8IGljaGlyaVwgOwor5a+15oSbIDwgY2hvdWFpXCA7Civlrp3mrr8gPCBob3VkZW5cIDsKK+Wwj+W3riA8IHNob3VzYVwgOwor54+g566XIDwgc2h1emFuXCA7CivkuI3pgJogPCBmdXRzdXVcIDsKK+iEs+W5uSA8IG5vdWthblwgOwor5L6b5b+cIDwga3lvdW91XCA7Civnjonol7sgPCB0YW1hbW9cIDsKK+iCneeCjiA8IGthbicnZW5cIDsKK+S4iemBuCA8IHNhbnNlblwgOwor5bCL5bi4IDwgamluam91XCA7Civkv67llrYgPCBzaHV1ZWlcIDsKK+iDoeahgyA8IGt1cnVtaVwgOwor5LiH6YKmIDwgYmFucG91XCA7CivogIHojZggPCByb3Vzb3VcIDsKK+WumOawkSA8IGthbm1pblwgOwor56C06a2U55+iIDwgaGFtYXlhXCA7CivlsZ7lkI8gPCB6b2t1cmlcIDsKK+aeoeebriA8IG1hc3VtZVwgOwor5LiB6YWJIDwgdGVpeXV1XCA7CivotorlvowgPCBlY2hpZ29cIDsKK+WwmuWwmiA8IG5hb25hb1wgOwor5LiJ6YCjIDwgc2FucmVuXCA7CivkuLvoqIggPCBzaHVrZWlcIDsKK+agoeacrCA8IGtvdWhvblwgOwor5pqu6ZCYIDwgYm9zaG91XCA7CivlsIHlu7ogPCBob3VrZW5cIDsKK+WAkuWDjyA8IHRvdXpvdVwgOwor576F6YedIDwgcmFzaGluXCA7CivmorXllIQgPCBib25iYWlcIDsKK+S4iui+uiA8IGpvdWhlblwgOwor5LiA6YOtIDwgaWtrYWt1XCA7CivkuIDpg6ggPCBpY2hpYnVcIDsKK+S9leaemiA8IG5hbm1haVwgOwor5a+45b+XIDwgc3Vuc2hpXCA7CivkvZ7mmbogPCBuZWljaGlcIDsKK+S4u+imsyA8IHNodWthblwgOwor5a625p+EIDwgaWVnYXJhXCA7CivlsI/ls7YgPCBrb2ppbWFcIDsKK+acrOiRrCA8IGhvbnNvdVwgOwor55Sj5Y21IDwgc2FucmFuXCA7CivkurrnqK4gPCBqaW5zaHVcIDsKK+WujOayuyA8IGthbmNoaVwgOwor5L2V5p2hIDwgbmFuam91XCA7Civku6PnlKggPCBkYWl5b3VcIDsKK+ebuOmDqOWxiyA8IGFpYmV5YVwgOwor5Lyv5q+NIDwgaGFrdWJvXCA7Civkv7PlkI0gPCBoYWltZWlcIDsKK+WtpOWFkOmZoiA8IGtvamlpblwgOwor576p6LOKIDwgZ2l6b2t1XCA7CivlsI/lsbEgPCBrb3lhbWFcIDsKK+WwiuW0hyA8IHNvbnN1dVwgOwor5L+z5Y+LIDwgaGFpeXV1XCA7CivkuIDpgLEgPCBpc3NodXVcIDsKK+S8kea8lCA8IGt5dXVlblwgOwor5LiA6YCaIDwgaXR0c3V1XCA7CivohIfmiLggPCB3YWtpZG9cIDsKK+Wwv+WZqCA8IG55b3VraVwgOwor5LiJ6LuNIDwgc2FuZ3VuXCA7Civni63pnKcgPCBzYWdpcmlcIDsKK+agueaLoCA8IGtvbmt5b1wgOwor5LqV57axIDwgaWR6dW5hXCA7Civku4rml6Xml6UgPCBreW91YmlcIDsKK+S4h+i7jSA8IGJhbmd1blwgOwor5p2x56uvIDwgdG91dGFuXCA7CivmnKzojYkgPCBob256b3VcIDsKK+iyu+ebriA8IGhpbW9rdVwgOwor5LuZ55WMIDwgc2Vua2FpXCA7CivnlKPliY0gPCBzYW56ZW5cIDsKK+eOieiPnCA8IHRhbWFuYVwgOwor5pyr6Iy2IDwgbWF0Y2hhXCA7Civpo6/nsbMgPCBoYW5tYWlcIDsKK+mghumiqCA8IGp1bnB1dVwgOwor5pyx6ImyIDwgc2h1aXJvXCA7CivkvJ3ms5UgPCBkZW5wb3VcIDsKK+eUu+S8ryA8IGdhaGFrdVwgOwor54ut6ZqYIDwga3lvdWFpXCA7CivnjaPooYwgPCBqdXVrb3VcIDsKK+S4jei2syA8IGZ1c29rdVwgOwor6LOH55SjIDwgc2hpc2FuXCA7Civlq4Hoj5wgPCB5b21lbmFcIDsKK+S6lOe1jCA8IGdva3lvdVwgOwor6aeF5omLIDwgZWtpc2h1XCA7CivnlJ/liY0gPCBzZWl6ZW5cIDsKK+S4i+i2syA8IGdlc29rdVwgOwor5L2V5pa5IDwgZG9uYXRhXCA7CivosZroiI4gPCB0b25zaGFcIDsKK+i2s+WgtCA8IGFzaGliYVwgOwor6aCG6aCGIDwganVuanVuXCA7CivojbzmnrPlsLwgPCBkYWtpbmlcIDsKK+S4gOi6qyA8IGlzc2hpblwgOwor6IKl5rKDIDwgaGl5b2t1XCA7CivmorHljIUgPCBrb25wb3VcIDsKK+ael+eUoyA8IHJpbnNhblwgOwor5Lq655+lIDwgamluY2hpXCA7CivnvbDph5EgPCBiYWtraW5cIDsKK+S7pOeKtiA8IHJlaWpvdVwgOwor5L6L5bm0IDwgcmVpbmVuXCA7Civni63plpMgPCBoYXphbWFcIDsKK+iEm+W3viA8IGhhYmFraVwgOwor5bGl5L+uIDwgcmlzaHV1XCA7Civohp3kuIsgPCBzaGlra2FcIDsKK+S6jOe0miA8IG5pa3l1dVwgOwor5rW36ICB6YygIDwgZWJpam91XCA7CivmnKzohrMgPCBob256ZW5cIDsKK+S4gOi3ryA8IGljaGlyb1wgOwor6ISG5oCnIDwgemVpc2VpXCA7CivkvZPmk40gPCB0YWlzb3VcIDsKK+S9v+W9uSA8IHNoaWVraVwgOwor5pmp6aSQIDwgYmFuc2FuXCA7Civogp3msrkgPCBrYW4nJ3l1XCA7CivnvqToq5YgPCBndW5yb25cIDsKK+eUqOS+vyA8IHlvdWJlblwgOwor5LuK55SfIDwga29uam91XCA7CivlsJHlpbMgPCBzaG91am9cIDsKK+S6uuebuCA8IG5pbnNvdVwgOwor5LqI57SEIDwgeW95YWt1XCA7Civkurrnm64gPCBoaXRvbWVcIDsKK+eUmOWFmiA8IGFtYXRvdVwgOwor6LKn55u4IDwgaGluc291XCA7Civog4zmma8gPCBoYWlrZWlcIDsKK+mnkuW6pyA8IGtvbWF6YVwgOwor5a6J5qW9IDwgYW5yYWt1XCA7CivkuJboqZUgPCBzZWh5b3VcIDsKK+ePreeUsCA8IGhhbmRlblwgOwor5pyJ6JOLIDwgeXV1Z2FpXCA7CivnlKjku7YgPCB5b3VrZW5cIDsKK+S5l+iIuSA8IGpvdXNlblwgOwor5a6f5pmvIDwgamlra2VpXCA7CivlsYvlhoUgPCBva3VuYWlcIDsKK+Wtpua0viA8IGdha3VoYVwgOwor6aKo6Ii5IDwgZnV1c2VuXCA7Civmn5Tmr5sgPCBqdXVtb3VcIDsKK+ePvueKtiA8IGdlbmpvdVwgOwor6Z+z6Z+/IDwgb25reW91XCA7CivmnKjogowgPCBraWhhZGFcIDsKK+WwiuWkpyA8IHNvbmRhaVwgOwor6ISz5aSpIDwgbm91dGVuXCA7CivlqprolqwgPCBiaXlha3VcIDsKK+miqOiHtCA8IGZ1dWNoaVwgOwor5a+d5bqKIDwgbmVkb2tvXCA7CivkuJbopbIgPCBzZXNodXVcIDsKK+iAgee3tCA8IHJvdXJlblwgOwor5LiN6KmzIDwgZnVzaG91XCA7Civlrp/mlr0gPCBqaXNzaGlcIDsKK+S4h+isnSA8IGJhbnNoYVwgOwor5LiJ6KuWIDwgc2Fucm9uXCA7Civkv5fli5kgPCB6b2t1bXVcIDsKK+mnheW8gSA8IGVraWJlblwgOwor5pys572yIDwgaG9uc2hvXCA7Civlr53lt7sgPCBuZW1ha2lcIDsKK+Wun+aVsCA8IGppc3N1dVwgOwor5Lq655SfIDwgamluc2VpXCA7CivlrojmoKogPCBzaHVzaHVcIDsKK+iVjum6puWxiyA8IHNvYmF5YVwgOwor5LqJ56uvIDwgc291dGFuXCA7CivkuIDorbAgPCBpY2hpZ2lcIDsKK+S8tOaYnyA8IGJhbnNlaVwgOwor6aOb56ucIDwgaGlyeXV1XCA7CivmoLnlubkgPCBrb25rYW5cIDsKK+i1pOW4vSA8IGFrYWJvdVwgOwor6aSK55SfIDwgeW91am91XCA7CivmmrTotbAgPCBib3Vzb3VcIDsKK+S4iuioiCA8IGpvdWtlaVwgOwor5a6/5oSPIDwgc2h1a3VpXCA7CivlrozmnKwgPCBrYW5wb25cIDsKK+iAs+ebriA8IGppbW9rdVwgOwor5L2e5oKqIDwgbmVpYWt1XCA7Civkv6/kvI8gPCBmdWZ1a3VcIDsKK+momeWPliA8IGhlbnNodVwgOwor5L+v5LuwIDwgZnVneW91XCA7CivkuIropqcgPCBqb3VyYW5cIDsKK+S4h+iogCA8IG1hbmdlblwgOwor5a++5aSWIDwgdGFpZ2FpXCA7CivkvY/miYAgPCBqdXVzaG9cIDsKK+iyoeeVjCA8IHphaWthaVwgOwor6aKo6IGeIDwgZnV1YnVuXCA7CivkuIropoYgPCB1d2Fvb2lcIDsKK+WuueaFiyA8IHlvdWRhaVwgOwor6LKh55SjIDwgemFpc2FuXCA7Civpm4zmjbvlrZAgPCBtZW5lamlcIDsKK+S4oeiZjiA8IHJ5b3Vrb1wgOwor54yl6KuHIDwgd2FpZGFuXCA7CivotorlooMgPCBla2t5b3VcIDsKK+S4iuijvSA8IGpvdXNlaVwgOwor5L+X5YSSIDwgem9rdWp1XCA7CivkuIroo4EgPCBqb3VzYWlcIDsKK+S8neadpSA8IGRlbnJhaVwgOwor5a+d5bCPIDwgbmVzaG91XCA7CivmnKzntbkgPCBob25rZW5cIDsKK+mjr+ebkiA8IGhhbmdvdVwgOwor5LiL6KGoIDwga2FoeW91XCA7CivohZXliY0gPCB1ZGVtYWVcIDsKK+S7ruaziiA8IGthaGFrdVwgOwor5L2Z5b6zIDwgeW90b2t1XCA7CivkvZ7lvIEgPCBuZWliZW5cIDsKK+S4reiPryA8IGNodXVrYVwgOwor5a6z5oKqIDwgZ2FpYWt1XCA7CivlsIHlnLAgPCBob3VjaGlcIDsKK+WujOaVlyA8IGthbnBhaVwgOwor5L+a5L+XIDwgcml6b2t1XCA7CivlsYvkuIogPCBva3Vqb3VcIDsKK+acqOe1hCA8IGtpZ3VtaVwgOwor5pyJ6IO9IDwgeXV1bm91XCA7CivlsJrlj6QgPCBzaG91a29cIDsKK+iDjOaIuyA8IGhhaXJlaVwgOwor5a6j5oimIDwgc2Vuc2VuXCA7CivkupTnm64gPCBnb21va3VcIDsKK+Wvk+WxhSA8IGd1dWt5b1wgOwor5bCL5ZWPIDwgamlubW9uXCA7CivmmrToq5YgPCBib3Vyb25cIDsKK+adoeeXlSA8IGpvdWtvblwgOwor5L215a2YIDwgaGVpem9uXCA7Civlr4zlsrMgPCBmdWdha3VcIDsKK+iDoeW8kyA8IGtva3l1dVwgOwor5pi86aSJIDwgaGlydWdlXCA7CivnkLTmn7EgPCBrb3RvamlcIDsKK+i2qOWLoiA8IHN1dXNlaVwgOwor6aCR6L+3IDwgZ2FubWVpXCA7CivlrpvmiYAgPCBhdGVzaG9cIDsKK+afkOafkCA8IGJvdWJvdVwgOwor6LKv54KtIDwgY2hvdGFuXCA7Civkuoznm64gPCBmdXRhbWVcIDsKK+aatOiogCA8IGJvdWdlblwgOwor5L+K5YGJIDwgc2h1bicnaVwgOwor5bCK5ZG9IDwgc29ubWVpXCA7CivogqXmlpkgPCBoaXJ5b3VcIDsKK+Wun+aFiyA8IGppdHRhaVwgOwor5pyo566xIDwga2liYWtvXCA7CivmnInnvaogPCB5dXV6YWlcIDsKK+WtpuagoSA8IGdha2tvdVwgOwor5pyo566hIDwgbW9ra2FuXCA7CivnjoTnsbMgPCBnZW5tYWlcIDsKK+ePiOeQsiA8IGtvdWhpaVwgOwor6aKo57SLIDwgZnV1bW9uXCA7CivmoKrlsYsgPCBrYWJ1eWFcIDsKK+WwiuWQmyA8IHNvbmt1blwgOwor5a6f5oSPIDwgaml0c3VpXCA7CivkvY7lu4kgPCB0ZWlyZW5cIDsKK+mjvOeKrCA8IGthaWludVwgOwor5bCK5Y+3IDwgc29uZ291XCA7Civku5bmtYEgPCB0YXJ5dXVcIDsKK+acq+erryA8IG1hdHRhblwgOwor5Lq654G9IDwgamluc2FpXCA7CivkuIvolqwgPCBnZXlha3VcIDsKK+WvhuWwgSA8IG1pcHB1dVwgOwor5bCP5YyZIDwga29zYWppXCA7CivlsIrljrMgPCBzb25nZW5cIDsKK+iCieahgiA8IG5pa2tlaVwgOwor6LWw5aGBIDwgc291cnVpXCA7CivkvJ3mkKwgPCBkZW5wYW5cIDsKK+Wvm+WkpyA8IGthbmRhaVwgOwor5Y+k5LqL6KiYIDwga29qaWtpXCA7CivmnKznqL8gPCBob25rb3VcIDsKK+WtkOanmCA8IGtvc2FtYVwgOwor5a6/5bGLIDwgeWFkb3lhXCA7Civlr7/lkb0gPCBqdW15b3VcIDsKK+ecn+mdouebriA8IG1hamltZVwgOwor5LiJ6JS1IDwgc2Fuem91XCA7Civpn7Pph48gPCBvbnJ5b3VcIDsKK+S5l+eulyA8IGpvdXphblwgOwor5qC55aSqIDwgbmVidXRvXCA7CivorbDplbcgPCBnaWNob3VcIDsKK+abuOe/sCA8IHNob2thblwgOwor5p2l54q2IDwgcmFpam91XCA7Civku4/ms5UgPCBidXBwb3VcIDsKK+WuieaJiyA8IHlhc3VkZVwgOwor5a++5Y+lIDwgdHN1aWt1XCA7CivkuK3ogLMgPCBjaHV1amlcIDsKK+acrOekviA8IGhvbnNoYVwgOwor5LiL6JC9IDwgZ2VyYWt1XCA7CivorabpmLIgPCBrZWlib3VcIDsKK+WvkuWknCA8IGthbicneWFcIDsKK+WuiOaIkCA8IHNodXNlaVwgOwor54m56auYIDwgdG9ra291XCA7CivmnKvnpL4gPCBtYXNzaGFcIDsKK+S9l+WvnSA8IHdhYmluZVwgOwor5a6f5byfIDwgaml0dGVpXCA7CivnjrLnk48gPCByZWlyb3VcIDsKK+iAgeecvCA8IHJvdWdhblwgOwor5qC95Z+5IDwgc2FpYmFpXCA7CivniaHpto8gPCBvbmRvcmlcIDsKK+Wwj+WFtSA8IGtvaHlvdVwgOwor5pyI57WMIDwgZ2Vra2VpXCA7Civog4zluoMgPCBzZWJpcm9cIDsKK+Wto+aYpSA8IGtpc2h1blwgOwor5bCP5YWQIDwgc2hvdW5pXCA7CivosYrnqJQgPCBob3VuZW5cIDsKK+eJnem3hCA8IGhpbmtlaVwgOwor6LGh55y8IDwgem91Z2FuXCA7CivnjrPnkYEgPCB0YWltYWlcIDsKK+aal+iqpiA8IGFuc2hvdVwgOwor6aiS5Lq6IDwgc291amluXCA7CivlrZDmoKogPCBrb2thYnVcIDsKK+aYvOmWkyA8IGhpcnVtYVwgOwor5L2O5bGkIDwgdGVpc291XCA7CivmoLnln44gPCBuZWppcm9cIDsKK+S6gOeUsiA8IGtpa2tvdVwgOwor6aGV6JGXIDwga2VuY2hvXCA7CivpqJLkubEgPCBzb3VyYW5cIDsKK+WwiuWFrCA8IHNvbmtvdVwgOwor5a615a6uIDwgeW9taXlhXCA7CivkvY/lsIIgPCBqdXVzZW5cIDsKK+mfs+mAnyA8IG9uc29rdVwgOwor5LyQ5o6hIDwgYmFzc2FpXCA7Civkvr/kuZcgPCBiaW5qb3VcIDsKK+S5vueUsCA8IGthbmRlblwgOwor6LGG56eRIDwgbWFtZWthXCA7CivohLHlhZogPCBkYXR0b3VcIDsKK+S9nuWnpiA8IG5laWthblwgOwor5L2P5a62IDwgc3VtaWthXCA7CivnjrLnjrIgPCByZWlyZWlcIDsKK+S+tuS8tCA8IHJ5b2hhblwgOwor6LOc5p2vIDwgc2hpaGFpXCA7CivosqHmupAgPCB6YWlnZW5cIDsKK+WuieaBryA8IGFuc29rdVwgOwor5bCK5YOPIDwgc29uem91XCA7CivkuI3oia8gPCBmdXJ5b3VcIDsKK+WumuW4uCA8IHRlaWpvdVwgOwor54yu6Iy2IDwga2VuY2hhXCA7CivkuIDoj4ogPCBpa2tpa3VcIDsKK+WuruWutiA8IG1peWFrZVwgOwor6aKo56WeIDwgZnV1amluXCA7Civlr77lh6YgPCB0YWlzaG9cIDsKK+S4oee+qSA8IHJ5b3VnaVwgOwor5LiH6Iq4IDwgYmFuZ2VpXCA7Civos6LmmI4gPCBrZW5tZWlcIDsKK+iyr+awtCA8IGNob3N1aVwgOwor5p6v5pyoIDwga2FyZWtpXCA7CivkuIDojZggPCBpaWNoYW5cIDsKK+WvuOWJjSA8IHN1bnplblwgOwor5a6P5byBIDwga291YmVuXCA7Civlr77lhoUgPCB0YWluYWlcIDsKK+iAgeeUnyA8IHJvdXNlaVwgOwor542656WtIDwgZGFzc2FpXCA7Civni6zoqp4gPCBkb2t1Z29cIDsKK+S4iuiHvCA8IHV3YXVzdVwgOwor5bCP5L2cIDwga29zYWt1XCA7CivmnKznm5cgPCBob250b3VcIDsKK+mjvea6gCA8IGhvdW1hblwgOwor6YKj55Sx5LuWIDwgbmF5dXRhXCA7Civlr7jliIYgPCBzdW5idW5cIDsKK+eLrOipsSA8IGRva3V3YVwgOwor5LiH6IisIDwgYmFucGFuXCA7CivkuIroh4ggPCBqb3Vyb3VcIDsKK+acqOebriA8IG1va3VtZVwgOwor5a6m5a6YIDwga2FuZ2FuXCA7Civmm7TntJcgPCBzYXJhc2FcIDsKK+S6uuawlyA8IGhpdG9rZVwgOwor5pyo55q/IDwga2l6YXJhXCA7CivkurrmsJEgPCBqaW5taW5cIDsKK+S4iuiFlSA8IGpvdXdhblwgOwor5bCK5L2TIDwgc29udGFpXCA7CivmnKjnmq4gPCBtb2t1aGlcIDsKK+S7o+abvyA8IGRhaXRhaVwgOwor5p+Q5omAIDwgYm91c2hvXCA7CivlrZDmlrkgPCBrb2thdGFcIDsKK+S9nOWgtCA8IHNha3ViYVwgOwor6LKn5rCRIDwgaGlubWluXCA7Civku4rmp5ggPCBpbWF5b3VcIDsKK+S6rOa1nCA8IGtlaWhpblwgOwor5pyJ56iOIDwgeXV1emVpXCA7CivohLHkvJogPCBkYWtrYWlcIDsKK+S4iuiDjCA8IHV3YXplaVwgOwor5a+15YWQIDwgY2hvdWppXCA7CivkuIrogqIgPCBqb3VzaGlcIDsKK+aZuuisgCA8IGNoaWJvdVwgOwor6aGe6IGaIDwgcnVpanV1XCA7CivmnKznlaogPCBob25iYW5cIDsKK+eJuemcgCA8IHRva3VqdVwgOwor6LK05qeYIDwga2lzYW1hXCA7CivogbDmmI4gPCBzb3VtZWlcIDsKK+miqOecvCA8IGZ1dWdhblwgOwor6ICB542qIDwgcm91a2FpXCA7Civlrrblob4gPCBrYWp1a3VcIDsKK+izh+acrCA8IHNoaWhvblwgOwor5L2c5ZyfIDwgc2FrdWRvXCA7CivkvJrlvI8gPCBlc2hpa2lcIDsKK+e+mue+iiA8IHJlaXlvdVwgOwor5LiJ6ICFIDwgc2Fuc2hhXCA7CivosarniL0gPCBnb3Vzb3VcIDsKK+S9nOWbsyA8IHNha3V6dVwgOwor54yr6IOMIDwgbmVrb3plXCA7Civpo5vngasgPCB0b2JpaGlcIDsKK+eJh+mxlyA8IGhlbnJpblwgOwor6aeF5ZCNIDwgZWtpbWVpXCA7Civku6PmlbAgPCBkYWlzdXVcIDsKK+ixkOeUsCA8IHRveW90YVwgOwor54us6KGMIDwgZG9ra291XCA7CivniZvppqwgPCBneXV1YmFcIDsKK+S4uOenmCA8IG1hcnVoaVwgOwor6aOb54CRIDwgaGliYWt1XCA7CivlgLbmpb3pg6ggPCBrdXJhYnVcIDsKK+mgkuihjCA8IGhhbmtvdVwgOwor5p2x5q+OIDwgdG91bWFpXCA7Civog6Hlm70gPCBrb2tva3VcIDsKK+ahiOWGhSA8IGFuJyduYWlcIDsKK+S9leWbniA8IG5hbmthaVwgOwor6K236LqrIDwgZ29zaGluXCA7CivmnKjnkLQgPCBtb2traW5cIDsKK+S7j+abuCA8IGJ1c3Nob1wgOwor6aGe57qCIDwgcnVpc2FuXCA7CivpnZLpu7QgPCBhb2thYmlcIDsKK+acqOeQhiA8IG1va3VyaVwgOwor5L6b5LiOIDwga3lvdXlvXCA7CivorpLorJcgPCB6YW5ib3VcIDsKK+WvneWIgyA8IG5ldGFiYVwgOwor5LiA5769IDwgaWNoaXdhXCA7CivogonmhJ8gPCBuaWtrYW5cIDsKK+izouaJjSA8IGtlbnNhaVwgOwor5bGL5qC55bGLIDwgeWFuZXlhXCA7Civlronlr6cgPCBhbicnbmVpXCA7CivkuLvnoLIgPCBzaHVob3VcIDsKK+WvneWFtyA8IHNoaW5ndVwgOwor6LK/5piTIDwgYm91ZWtpXCA7Civnj77mlbAgPCBnZW5zdXVcIDsKK+mfs+iqvyA8IG9uY2hvdVwgOwor6aeF5YmNIDwgZWtpbWFlXCA7Civlrojlrq4gPCB5YW1vcmlcIDsKK+mfs+iqrSA8IG9uZG9rdVwgOwor5p6a5pWwIDwgbWFpc3V1XCA7CivogaHmlY8gPCBzb3ViaW5cIDsKK+iyp+ajkiA8IGJpbmJvdVwgOwor5pyI55u4IDwgZ2Vzc291XCA7CivpnZLpt7ogPCBhb3NhZ2lcIDsKK+WtpuW+kiA8IGdha3V0b1wgOwor5pyJ55uKIDwgeXV1ZWtpXCA7Civku4rmmakgPCBrb25iYW5cIDsKK+WvkuWJpCA8IGthbnphaVwgOwor6LOi5oWuIDwga2VucnlvXCA7CivkuIvntbUgPCBzaGl0YWVcIDsKK+iukuiogCA8IHphbmdlblwgOwor6LWm5YWNIDwgc2hhbWVuXCA7CivkuojmuKwgPCB5b3Nva3VcIDsKK+miqOeQtCA8IGZ1dWtpblwgOwor5LiJ57WEIDwgbWlrdW1pXCA7CivkuInntYMgPCBzYW5nZW5cIDsKK+S4iue0jSA8IGpvdW5vdVwgOwor546L54mpIDwgb3Vtb25vXCA7CivkuIDnuLcgPCBpY2hpcnVcIDsKK+S6jOa1gSA8IG5pcnl1dVwgOwor5rW36ICB6Iy2IDwgZWJpY2hhXCA7CivogZbmlq0gPCBzZWlkYW5cIDsKK+S9qeWJoyA8IGhhaWtlblwgOwor5Lq65p2QIDwgamluemFpXCA7CivmnKrnhp8gPCBtaWp1a3VcIDsKK+S4iuexsyA8IGpvdW1haVwgOwor5Lit56C0IDwgY2h1dWhhXCA7CivkurrmnJsgPCBqaW5ib3VcIDsKK+WvoeS9nCA8IGthc2FrdVwgOwor5Lit56ClIDwgbmFrYXRvXCA7Civpoq/niL0gPCBzYXNzb3VcIDsKK+Wun+WcsCA8IGppdGNoaVwgOwor6IOM5ZqiIDwgaGFpbm91XCA7Civos6blvbkgPCBidXlha3VcIDsKK+acieeUqCA8IHl1dXlvdVwgOwor5pyJ55SjIDwgeXV1c2FuXCA7CivmnIjnlKMgPCBnZXNzYW5cIDsKK+S8j+WxiyA8IGZ1c2V5YVwgOwor6Zi/5aq95rivIDwgYW1ha291XCA7CivmnZHmsJEgPCBzb25taW5cIDsKK+eQg+aKgCA8IGt5dXVnaVwgOwor5p6a5oyZIDwgbWFpa3lvXCA7Civml6XpoIMgPCBoaWdvcm9cIDsKK+S4i+etliA8IGdlc2FrdVwgOwor6Z2S6a6rIDwgYW96YW1lXCA7CivlrZflvJUgPCBqaWJpa2lcIDsKK+S9juWQnyA8IHRlaWdpblwgOwor5L2V5Y2DIDwgbmFuemVuXCA7CivkvZXljYEgPCBuYW5qdXVcIDsKK+mmrOWKmyA8IGJhcmlraVwgOwor5a2Y5buDIDwgem9ucGFpXCA7Civno4HmlrnkvY0gPCBqaWhvdWlcIDsKK+S4ieetiSA8IHNhbnRvdVwgOwor5LiA57GMIDwgaXRjaHV1XCA7CivlrZDlvbkgPCBrb3lha3VcIDsKK+S8j+WtlyA8IGZ1c2VqaVwgOwor6ICQ5rC0IDwgdGFpc3VpXCA7CivkuIrnq68gPCBqb3V0YW5cIDsKK+mnhOS9nCA8IGRhc2FrdVwgOwor5Li555SwIDwgdGFuZGVuXCA7Civpp4XkvJ0gPCBla2lkZW5cIDsKK+Wtl+W5lSA8IGppbWFrdVwgOwor5LiH56uvIDwgYmFudGFuXCA7CivkuIrnqbogPCBqb3VrdXVcIDsKK+eNsOeMmyA8IG5laW1vdVwgOwor54mH6ZuyIDwgaGVuJyd1blwgOwor54us6IuxIDwgZG9rdWVpXCA7Civml6Xpm4AgPCBoaWdhcmFcIDsKK+mhjOewvSA8IGRhaXNlblwgOwor5a+G5YG1IDwgbWl0dGVpXCA7CivpoLvnuYEgPCBoaW5wYW5cIDsKK+S4gOetliA8IGlzc2FrdVwgOwor5L2V5YiGIDwgbmFucHVuXCA7Civnib3pgKMgPCBrZW5yZW5cIDsKK+Wtq+WtkCA8IG1hZ29rb1wgOwor5LiJ56iuIDwgc2Fuc2h1XCA7CivkuIrnqIsgPCBqb3V0ZWlcIDsKK+aXpemZsCA8IGhpa2FnZVwgOwor6aas5YWLIDwgbWFydWt1XCA7CivlrpjllrYgPCBrYW4nJ2VpXCA7Civnvr3nlLAgPCBoYW5lZGFcIDsKK+S4gOeskSA8IGlzc2hvdVwgOwor6Z2i6aCsIDwgbWVucG9vXCA7Civml6XpmZAgPCBoaWdpcmlcIDsKK+S4oeebriA8IHJ5b3VtZVwgOwor5pys5rqQIDwgaG9uZ2VuXCA7CivogonlsYsgPCBuaWt1eWFcIDsKK+WnpuioiCA8IGthbmtlaVwgOwor6Z2Z6aSKIDwgc2VpeW91XCA7CivosqHmlL8gPCB6YWlzZWlcIDsKK+WtpOWuoiA8IGtva2FrdVwgOwor5Luk5byfIDwgcmVpdGVpXCA7CivmoKrkvqEgPCBrYWJ1a2FcIDsKK+S4reeUnyA8IG5ha2F0ZVwgOwor54us6IeqIDwgZG9rdWppXCA7Civku6PlvIEgPCBkYWliZW5cIDsKK+WvhuS9vyA8IG1pc3NoaVwgOwor5a625YWDIDwgaWVtb3RvXCA7Civniafph44gPCBib2t1eWFcIDsKK+mdoumdoiA8IG1lbm1lblwgOwor5LqL5qWtIDwgamlneW91XCA7CivkuIHnqJogPCBkZXRjaGlcIDsKK+adpeabuCA8IHJhaXNob1wgOwor5pel6ZW3IDwgaGluYWdhXCA7CivkupTmoYEgPCBnb2tldGFcIDsKK+S8muWggiA8IGthaWRvdVwgOwor5a+G5LyaIDwgbWlra2FpXCA7Civos4rlvpIgPCB6b2t1dG9cIDsKK+eMq+enkSA8IG5la29rYVwgOwor5peF6aSoIDwgcnlva2FuXCA7Civku7vlrpggPCBuaW5rYW5cIDsKK+Wtn+WtkCA8IG1vdXNoaVwgOwor576k55uyIDwgZ3VubW91XCA7CivmmI/ov7cgPCBrb25tZWlcIDsKK+S5s+avjSA8IG55dXVib1wgOwor5LuW5b+DIDwgdGFzaGluXCA7CivkvY/lg6cgPCBqdXVzb3VcIDsKK+S4gOelqCA8IGlwcHlvdVwgOwor6Y2b5Ya25bGLIDwga2FqaXlhXCA7Civmn7vlj44gPCBzYXNodXVcIDsKK+S6jOaguCA8IG5pa2FrdVwgOwor5a6f5YuiIDwgamlzc2VpXCA7Civku67lsYsgPCBrYXJpeWFcIDsKK+S9nuS6uiA8IG5laWppblwgOwor5pyr5rOVIDwgbWFwcG91XCA7CivmnaXmlrkgPCBraWthdGFcIDsKK+mjsuaWmSA8IGlucnlvdVwgOwor5a6Y5Y2wIDwga2FuJydpblwgOwor5Lq65omLIDwgaGl0b2RlXCA7Civmm7jnirYgPCBzaG9qb3VcIDsKK+S7ruWvnSA8IGthcmluZVwgOwor5a2U5a2fIDwga291bW91XCA7Civku67lrrYgPCBrYXJpaWVcIDsKK+S7geaEmyA8IGppbicnYWlcIDsKK+Wkp+m6piA8IG9vbXVnaVwgOwor54ut576pIDwga3lvdWdpXCA7CivorJ3ph5EgPCBzaGFraW5cIDsKK+WtkOWuiCA8IGtvbW9yaVwgOwor5a6/5LiWIDwgc3VrdXNlXCA7Civlpa7pl5ggPCBmdW50b3VcIDsKK+Wul+WLmSA8IHNodXVtdVwgOwor5ama56S8IDwga29ucmVpXCA7CivmnKzmrr8gPCBob25kZW5cIDsKK+eMm+emvSA8IG1vdWtpblwgOwor5LuB5oG1IDwgamlua2VpXCA7CivkupTml6UgPCBpdHN1a2FcIDsKK+aZuuiDvSA8IGNoaW5vdVwgOwor5LiA556sIDwgaXNzaHVuXCA7CivpoqjmtJ4gPCBmdXVkb3VcIDsKK+aWrOmmliA8IHphbnNodVwgOwor5pel6YqtIDwgaGl6ZW5pXCA7CivmnKzmrIQgPCBob25yYW5cIDsKK+S7j+W4qyA8IGJ1c3NoaVwgOwor5a625LimIDwgeWFuYW1pXCA7CivosYrmsLQgPCBob3VzdWlcIDsKK+S4geebriA8IGNob3VtZVwgOwor5Luk5a2rIDwgcmVpc29uXCA7Civku4/lt6UgPCBidWtrb3VcIDsKK+WhqeWfuuW6piA8IGVua2lkb1wgOwor6IKJ5aGKIDwgbmlra2FpXCA7Civmmq7np4sgPCBib3NodXVcIDsKK+aZuuiAhSA8IGNoaXNoYVwgOwor5pa56Z2iIDwgaG91bWVuXCA7CivlrZjlpJYgPCB6b25nYWlcIDsKK+e+jueahCA8IGJpdGVraVwgOwor5Ly25YSqIDwgcmVpeXV1XCA7Civnn6Lnvr3moLkgPCB5YWJhbmVcIDsKK+S5l+awlyA8IG5vcmlraVwgOwor5LiK55WqIDwgam91YmFuXCA7CivpoqjmsLQgPCBmdXVzdWlcIDsKK+S7mOWxniA8IGZ1em9rdVwgOwor5LiJ55WqIDwgc2FuYmFuXCA7CivlrablnJIgPCBnYWt1ZW5cIDsKK+ismemBnCA8IGtlbnNvblwgOwor5LiK55SwIDwgam91ZGVuXCA7CivlpJzpt7kgPCB5b3Rha2FcIDsKK+i0iOWRiCA8IHpvdXRlaVwgOwor6KuW6aGMIDwgcm9uZGFpXCA7CivkvJrlkIggPCBrYWlnb3VcIDsKK+eQhuWtpiA8IHJpZ2FrdVwgOwor5pen6YO9IDwga3l1dXRvXCA7CivotIjlj7cgPCB6b3Vnb3VcIDsKK+S4reeBqyA8IGNodXViaVwgOwor5Lyd5Y2YIDwgZGVudGFuXCA7CivlrqPkvJ0gPCBzZW5kZW5cIDsKK+i0i+WNsCA8IG5pc2VpblwgOwor6IOM5Lu7IDwgaGFpbmluXCA7Civnv7vmoYggPCBob24nJ2FuXCA7Civnjovmp5ggPCBvdXNhbWFcIDsKK+S7u+WcsCA8IG5pbmNoaVwgOwor5LiA55aLIDwgaXBwaWtpXCA7CivogIHmnaUgPCByb3VyYWlcIDsKK+S7luWulyA8IHRhc2h1dVwgOwor6ICB5p2JIDwgcm91c2FuXCA7CivlrozlhaggPCBrYW56ZW5cIDsKK+aWremdoiA8IGRhbm1lblwgOwor5Luk5aa5IDwgcmVpbWFpXCA7CivlpJzps6UgPCB5YWNob3VcIDsKK+eMm+ecgSA8IG1vdXNlaVwgOwor5p+U5ZKMIDwgbnl1dXdhXCA7CivlrprkvosgPCB0ZWlyZWlcIDsKK+ePvuWtmCA8IGdlbnpvblwgOwor5Lmx5p2tIDwgcmFuZ3VpXCA7CivkvLTkvrYgPCBoYW5yeW9cIDsKK+WumuS9jyA8IHRlaWp1dVwgOwor5a6I5YW1IDwgc2h1aGVpXCA7Civog4zkuK0gPCBzZW5ha2FcIDsKK+eJueiosSA8IHRva2t5b1wgOwor5a2Y5ZyoIDwgc29uemFpXCA7Civog4zkuIggPCBzZXRha2VcIDsKK+eJueiokyA8IHRva2t1blwgOwor54iG6Z+zIDwgYmFrdW9uXCA7CivkuIvnjYQgPCBnZWdva3VcIDsKK+S7iuWwmiA8IGltYW5hb1wgOwor5Lq65belIDwgamlua291XCA7CivkubHmmrQgPCByYW5ib3VcIDsKK+acm+aokyA8IGJvdXJvdVwgOwor5LiJ54y/IDwgbWl6YXJ1XCA7Civoq5bpmaMgPCByb25qaW5cIDsKK+S8tuS6uiA8IHJlaWppblwgOwor6Ky56KiAIDwga2luZ2VuXCA7CivmnLHmm7ggPCBzaHVzaG9cIDsKK+mkqOWogyA8IGthbicnYWlcIDsKK+eJh+i8qiA8IGthdGF3YVwgOwor5a6J5YCkIDwgeWFzdW5lXCA7CivmnKzmnaUgPCBob25yYWlcIDsKK+aYjuiogCA8IG1laWdlblwgOwor57+w5p6XIDwga2FucmluXCA7Civku6TloIIgPCByZWlkb3VcIDsKK+S4h+eKtiA8IGJhbmpvdVwgOwor5a6X5Li7IDwgc291c2h1XCA7CivpnIrprYIgPCByZWlrb25cIDsKK+acrOacqCA8IG1vdG9raVwgOwor5pys5pybIDwgaG9ubW91XCA7Civnvbnnl4UgPCByaWJ5b3VcIDsKK+mhmOeKtiA8IGdhbmpvdVwgOwor5pyr5pyrIDwgc3VlenVlXCA7Civnmb7lkIjmoLkgPCB5dXJpbmVcIDsKK+WtkOWaoiA8IHNoaW5vdVwgOwor5LqM5omLIDwgZnV0YXRlXCA7CivkubHmlbAgPCByYW5zdXVcIDsKK+aYpeialSA8IGhhcnVnb1wgOwor5pyo5pyrIDwga29udXJlXCA7CivogozlkIggPCBoYWRhYWlcIDsKK+eOi+acnSA8IG91Y2hvdVwgOwor6Zu36bO0IDwgcmFpbWVpXCA7Civku7vlkb0gPCBuaW5tZWlcIDsKK+S7gOWunSA8IGp1dWhvdVwgOwor5Lq65bGLIDwgaGl0b3lhXCA7CivmnKbmnKcgPCBtb3Vyb3VcIDsKK+acpuacpiA8IG1vdW1vdVwgOwor5Lit5rSyIDwgbmFrYXN1XCA7Civos5vlmIYgPCBzYW50YW5cIDsKK+aXpei2syA8IGhpYXNoaVwgOwor5pac6Zm9IDwgc2hheW91XCA7CivlpKfpoqggPCBvb2themVcIDsKK+WlqumChCA8IGRha2thblwgOwor6Z+z57egIDwgbmVqaW1lXCA7CivlpKnpoZQgPCB0ZW5nYW5cIDsKK+eJqeimiyA8IG1vbm9taVwgOwor6Zi/576F5ryiIDwgYXJha2FuXCA7Civlrabli5kgPCBnYWt1bXVcIDsKK+abv+atjCA8IGthZXV0YVwgOwor5a2Y5ZG9IDwgem9ubWVpXCA7Civlpa7ov4UgPCBmdW5qaW5cIDsKK+izreWNmiA8IHRvYmFrdVwgOwor5p2J5oi4IDwgc3VnaWRvXCA7Civosqflr5IgPCBoaW5rYW5cIDsKK+acieanmCA8IGFyaXlvdVwgOwor5pys5paHIDwgaG9ubW9uXCA7CivmnaXlupcgPCByYWl0ZW5cIDsKK+acrOaVsCA8IGhvbnN1dVwgOwor5pan6ZG/IDwgZnVzYWt1XCA7CivmnaXlubQgPCByYWluZW5cIDsKK+aWh+mhjCA8IGJ1bmRhaVwgOwor546L5pePIDwgb3V6b2t1XCA7CivkupTlvrMgPCBnb3Rva3VcIDsKK+S4h+eCuSA8IG1hbnRlblwgOwor5LuK5aScIDwga29uJyd5YVwgOwor5Lit5rCXIDwgY2h1dWtpXCA7CivkvJ3ku6QgPCBkZW5yZWlcIDsKK+S7j+WhlCA8IGJ1dHRvdVwgOwor6Zyc6ZuwIDwgc291ZnVuXCA7CivpoK3nl5sgPCB6dXRzdXVcIDsKK+S4u+aoqSA8IHNodWtlblwgOwor6Zu36a2aIDwgcmFpZ3lvXCA7CivkuIfnga8gPCBtYW5kb3VcIDsKK+iyoeWunSA8IHphaWhvdVwgOwor5aSc6aKoIDwgeW9rYXplXCA7CivosqrlqaogPCBkb25yYW5cIDsKK+S8kOWAkiA8IGJhdHRvdVwgOwor6YeO6Lev5a2QIDwgbm9qaWtvXCA7Civnj77lnLAgPCBnZW5jaGlcIDsKK+eMm+eKrCA8IG1vdWtlblwgOwor5aSp6Zu3IDwgdGVucmFpXCA7CivmnJ3mmakgPCBhc2FiYW5cIDsKK+S7luWbvSA8IHRha29rdVwgOwor5Luu5ZCNIDwga2VteW91XCA7Civpoqjmma8gPCBmdXVrZWlcIDsKK+irlumLkiA8IHJvbnBvdVwgOwor5paH6Z2iIDwgYnVubWVuXCA7CivkvI7lgIYgPCBnaXJ5b3VcIDsKK+mkg+WtkCA8IGd5b3V6YVwgOwor5a2m5YWEIDwgZ2Fra2VpXCA7Civniq/nvaogPCBoYW56YWlcIDsKK+Wkp+mboyA8IHRhaW5hblwgOwor5Lit5qynIDwgY2h1dW91XCA7CivkvJ3kuJYgPCBkZW5zZWlcIDsKK+WkmumhjSA8IHRhZ2FrdVwgOwor5aSp6Zm6IDwgdGVua2VuXCA7CivkvJrkuLsgPCBrYWlzaHVcIDsKK+adseWuriA8IHRvdWd1dVwgOwor6IGW5Z+fIDwgc2VpaWtpXCA7Civku6Plk4EgPCBkYWloaW5cIDsKK+mgk+efpSA8IHRvbmNoaVwgOwor5aSV6aGUIDwgeXV1Z2FvXCA7CivkubHmiKYgPCByYW5zZW5cIDsKK+iAg+aFriA8IGtvdXJ5b1wgOwor5LuL5ZyoIDwga2FpemFpXCA7CivmlbTpoqggPCBzZWlmdXVcIDsKK+S7u+WFjSA8IG5pbm1lblwgOwor5a2Y5YiGIDwgem9uYnVuXCA7Civku6TlkI0gPCByZWltZWlcIDsKK+mjsuWxiyA8IG5vbWl5YVwgOwor5Lq65aSWIDwgbmluZ2FpXCA7CivmlqfpiZ4gPCBmdWV0c3VcIDsKK+WknOmcpyA8IHlvZ2lyaVwgOwor54yb54S2IDwgbW91emVuXCA7Civkurrlo6sgPCBqaW5zaGlcIDsKK+mdouiyjCA8IG1lbmJvdVwgOwor6LKp5aOyIDwgaGFuYmFpXCA7CivkuLvmoLkgPCBzaHVrb25cIDsKK+Wkp+mWoiA8IG9vemVraVwgOwor5pen6KmgIDwga3l1dWVpXCA7Civku4rlm54gPCBrb25rYWlcIDsKK+aXpeiqjCA8IG5pc3NoaVwgOwor5pep6KiIIDwgc291a2VpXCA7Civku6Plj4IgPCBkYWlzYW5cIDsKK+Wkp+mWgCA8IGRhaW1vblwgOwor5pys5ougIDwgaG9ua3lvXCA7CivmnInmnJsgPCB5dXVib3VcIDsKK+aVtOmgkyA8IHNlaXRvblwgOwor5pen6KiYIDwga3l1dWtpXCA7CivlpoToqIAgPCBtb3VnZW5cIDsKK+aXhei3ryA8IHRhYmlqaVwgOwor6LGq5b+rIDwgZ291a2FpXCA7Civml6noposgPCBoYXlhbWlcIDsKK+mbu+mhlSA8IGRlbmtlblwgOwor5aSW6Zu7IDwgZ2FpZGVuXCA7Civmnb/loYAgPCBpdGFiZWlcIDsKK+eJh+iogCA8IGhlbmdlblwgOwor572q54q2IDwgemFpam91XCA7CivnjqnlvIQgPCBnYW5yb3VcIDsKK+WliemBtyA8IGhvdXNlblwgOwor5pys5oeQIDwgaG9ua2FpXCA7CivkuLnmnLEgPCB0YW5zaHVcIDsKK+S4uOacqCA8IG1hcnVraVwgOwor5a2m5LqLIDwgZ2FrdWppXCA7CivmnIjml6YgPCBnZXR0YW5cIDsKK+WknOmVtyA8IHlvbmFnYVwgOwor6Z2i6KuHIDwgbWVuZGFuXCA7CivlpYnov44gPCBob3VnZWlcIDsKK+acieaVsCA8IHl1dXN1dVwgOwor5aqS5p+TIDwgYmFpc2VuXCA7CivnuYHplpEgPCBoYW5rYW5cIDsKK+S7suWApCA8IG5ha2FuZVwgOwor5LiK5rC0IDwgam91c3VpXCA7Civoqpjpm7sgPCB5dXVkZW5cIDsKK+aZtOedgCA8IGhhcmVnaVwgOwor572w54K5IDwgYmF0dGVuXCA7CivlpKfpjowgPCBvb2dhbWFcIDsKK+S6oeWmuyA8IGJvdXNhaVwgOwor6Z2S6LGGIDwgYW9tYW1lXCA7Civosqflm7AgPCBoaW5rb25cIDsKK+S7suS/nSA8IGNodXVob1wgOwor54+N5aWHIDwgY2hpbmtpXCA7CivlpKfpjYsgPCBvb25hYmVcIDsKK+acgOaXqSA8IG1vaGF5YVwgOwor5LiH5rCRIDwgYmFubWluXCA7CivkuZfmiYsgPCBub3JpdGVcIDsKK+S7j+WPgiA8IGJ1c3NhblwgOwor5LiA5rOKIDwgaXBwYWt1XCA7CivkuLvmlocgPCBzaHVidW5cIDsKK+ePvuWLoiA8IGdlbnNlaVwgOwor6ICB5bm8IDwgcm91eW91XCA7CivogIHlubQgPCByb3VuZW5cIDsKK+S4ieatuyA8IHNhbnNoaVwgOwor5LuW5YqbIDwgdGFyaWtpXCA7CivmnKzmgKcgPCBob25zZWlcIDsKK+e/u+W8hCA8IGhvbnJvdVwgOwor6LKh5ZujIDwgemFpZGFuXCA7CivoqozpnaIgPCBzaGltZW5cIDsKK+S4h+atuyA8IGJhbnNoaVwgOwor5LiH5q2zIDwgbWFuemFpXCA7CivlrZDkvpsgPCBrb2RvbW9cIDsKK+WtmOS6oSA8IHNvbmJvdVwgOwor5LqM5a2QIDwgZnV0YWdvXCA7CivlnJ/kuIvluqcgPCBkb2dlemFcIDsKK+mghueVqiA8IGp1bmJhblwgOwor6Zuy6ZuGIDwgdW5zaHV1XCA7Civpm7Lpm4AgPCBoaWJhcmlcIDsKK+ePvuWJjSA8IGdlbnplblwgOwor5LuL5Y21IDwga2FpcmFuXCA7CivlpKfpiYggPCBvb25hdGFcIDsKK+mbo+mhjCA8IG5hbmRhaVwgOwor5pys5b2xIDwgaG9uJydlaVwgOwor5Lim5pyoIDwgbmFtaWtpXCA7CivmlpzovrogPCBzaGFoZW5cIDsKK+izouS4uyA8IGtlbnNodVwgOwor5pu45paOIDwgc2hvc2FpXCA7Civnvormr5sgPCB5b3Vtb3VcIDsKK+Wkp+mHkSA8IHRhaWtpblwgOwor5LuB5ZCbIDwgamlua3VuXCA7CivkuI3mp5ggPCBidXphbWFcIDsKK+S6uuWToSA8IGppbicnaW5cIDsKK+S4reaXpSA8IG5ha2FiaVwgOwor5pyr5byfIDwgbWF0dGVpXCA7Civkurrlk4EgPCBqaW5waW5cIDsKK+S4ieaoqSA8IHNhbmtlblwgOwor5LiA5qyhIDwgaWNoaWppXCA7CivnhrHpoqggPCBuZXBwdXVcIDsKK+S4iuanmCA8IHVlemFtYVwgOwor5aSn6YWSIDwgb296YWtlXCA7Civkurrlkb0gPCBqaW5tZWlcIDsKK+e4pumZoyA8IGp1dWppblwgOwor5auB5b6hIDwgeW9tZWdvXCA7Civos57kuI4gPCBzaG91eW9cIDsKK+acrOW6lyA8IGhvbnRlblwgOwor6Zuy6ZaTIDwga3Vtb21hXCA7Civlp4vntYIgPCBzaGlqdXVcIDsKK+irluizmyA8IHJvbnNhblwgOwor5LuP5YW4IDwgYnV0dGVuXCA7CivkuInmpa0gPCBzYW5nb3VcIDsKK+S7o+S7uyA8IGRhaW5pblwgOwor576o5pybIDwgc2VuYm91XCA7CivoqabpqJMgPCBzaGlrZW5cIDsKK+S4luafhCA8IHlvZ2FyYVwgOwor6Kqe6YyyIDwgZ29yb2t1XCA7CivlpKnpgZMgPCB0ZW5kb3VcIDsKK+S6uuWPgiA8IG5pbmppblwgOwor5aSp6YGLIDwgdGVuJyd1blwgOwor5LiA5qi5IDwgaWNoaWp1XCA7Civku4rlhqwgPCBrb250b3VcIDsKK+Wkp+mBkyA8IGRhaWRvdVwgOwor5oWw5a6J6ICFIDwgaWFuc2hhXCA7Civpm6LpmpQgPCByaWtha3VcIDsKK+aatOawkSA8IGJvdW1pblwgOwor6Zui6Zm4IDwgcmlyaWt1XCA7CivogIHlrrMgPCByb3VnYWlcIDsKK+aWh+mBuCA8IGJ1bnNlblwgOwor5pyo5belIDwgbW9ra291XCA7CivkubHlsIQgPCByYW5zaGFcIDsKK+Wkqei+uiA8IHRlcHBlblwgOwor6LKs5YuZIDwgc2VraW11XCA7CivmlofpgYsgPCBidW4nJ3VuXCA7Civml4Xoo4UgPCByeW9zb3VcIDsKK+aWueiogCA8IGhvdWdlblwgOwor5LiJ5qGBIDwgbWlrZXRhXCA7CivogIHlrKIgPCByb3Vqb3VcIDsKK+iBluWDjyA8IHNlaXpvdVwgOwor5peF6KGMIDwgcnlva291XCA7Civpm6PplqIgPCBuYW5rYW5cIDsKK+aWsOiqniA8IHNoaW5nb1wgOwor5aSn6LyqIDwgdGFpcmluXCA7CivmnKzlsbEgPCBob256YW5cIDsKK+Wkqei7jSA8IHRlbmd1blwgOwor5LiJ5p6aIDwgc2FubWFpXCA7Civmnb/liY0gPCBpdGFtYWVcIDsKK+ePvuS7oyA8IGdlbmRhaVwgOwor6aC75q27IDwgaGluc2hpXCA7CivmnKzlsYsgPCBob24nJ3lhXCA7CivkuInmnb8gPCBzYW5wYW5cIDsKK+mhnuacrCA8IHJ1aWhvblwgOwor5aOw6ZaAIDwgc2VpbW9uXCA7Civnj77ku4ogPCBnZW5rb25cIDsKK+S6q+WPlyA8IGt5b3VqdVwgOwor6aKo5birIDwgZnV1c2hpXCA7CivpoZ7mm7ggPCBydWlzaG9cIDsKK+acrOWwiiA8IGhvbnpvblwgOwor5LiK5pyfIDwga2FtaWtpXCA7CivnhrHpl5ggPCBuZXR0b3VcIDsKK+ePjeWRsyA8IGNoaW5taVwgOwor5pu45oi/IDwgc2hvYm91XCA7CivkuIDmoYggPCBpY2hpYW5cIDsKK+S4ieacrCA8IHNhbmJvblwgOwor6aSK5YiGIDwgeW91YnVuXCA7CivosarlpaIgPCBnb3VzaGFcIDsKK+aUuemhjCA8IGthaWRhaVwgOwor5LiK5pu4IDwgam91c2hvXCA7CivmnKjlsZEgPCBraWt1enVcIDsKK+S7j+S8miA8IGJ1dHN1ZVwgOwor5Lqh5ZG9IDwgYm91bWVpXCA7Civmlq3oqIAgPCBkYW5nZW5cIDsKK+WklumBiiA8IGdhaXl1dVwgOwor546J5bGLIDwgdGFtYXlhXCA7Civku5XkuIogPCBzaGlhZ2VcIDsKK+mhmOacmyA8IGdhbm1vdVwgOwor54is6JmrIDwgaGFjaHV1XCA7CivnjK7mnKwgPCBrZW5wb25cIDsKK+acgOaCqiA8IHNhaWFrdVwgOwor54us5ryUIDwgZG9rdWVuXCA7CivpoZjmm7ggPCBnYW5zaG9cIDsKK+acq+WtqyA8IG1hc3NvblwgOwor5pqX5rWBIDwgYW5yeXV1XCA7CivmnKvlrZAgPCBtYXNzaGlcIDsKK+e/oOW1kCA8IHN1aXJhblwgOwor6aOf5ZmoIDwgc2hva2tpXCA7CivlpKfotrMgPCBvb2FzaGlcIDsKK+S6oeWPiyA8IGJvdXl1dVwgOwor5LuK5LuKIDwgaW1haW1hXCA7Civku4rkurogPCBrb25qaW5cIDsKK+iBluS6uiA8IHNlaWppblwgOwor542j5oCnIDwganV1c2VpXCA7Civpm7Lph48gPCB1bnJ5b3VcIDsKK+S4iuaXrCA8IGpvdWp1blwgOwor5LiA5pydIDwgaXRjaG91XCA7CivlpKLot68gPCB5dW1lamlcIDsKK+S4gOacjSA8IGlwcHVrdVwgOwor6KuH6KuWIDwgZGFucm9uXCA7CivkuKHmi7MgPCBqYW5rZW5cIDsKK+mjr+WPsCA8IGhhbmRhaVwgOwor5pel6IiqIDwgbmlra291XCA7Civnvbfmpa0gPCBoaWd5b3VcIDsKK+S6uuWBjyA8IG5pbmJlblwgOwor5aSW6LyqIDwgZ2FpcmluXCA7CivlpKnos5wgPCB0ZW5zaGlcIDsKK+S4ieaWuSA8IHNhbnBvdVwgOwor6Z2S6JeNIDwgc2VpcmFuXCA7Civpn7LniakgPCBhZW1vbm9cIDsKK+S4u+W+kyA8IHNodWp1dVwgOwor5pat6KOBIDwgZGFuc2FpXCA7CivkurrlgKsgPCBqaW5yaW5cIDsKK+iri+iokyA8IHNlaWt1blwgOwor54yl5pysIDwgd2FpaG9uXCA7Civkub7lnaQgPCBrZW5rb25cIDsKK+S5seWjsiA8IHJhbmJhaVwgOwor5aSJ6YG3IDwgaGVuc2VuXCA7CivpoYzmnZAgPCBkYWl6YWlcIDsKK+Wklui7iiA8IGdhaXNoYVwgOwor5Lih5omLIDwgcnlvdXRlXCA7CivkuIPml6UgPCBuYW5va2FcIDsKK+WkiemAoCA8IGhlbnpvdVwgOwor6aGY5paHIDwgZ2FubW9uXCA7CivlpYnooYwgPCBidWd5b3VcIDsKK+S7geS6uiA8IGppbmppblwgOwor5pys5aa7IDwgaG9uc2FpXCA7CivpoqjlrrMgPCBmdXVnYWlcIDsKK+WrieWmrCA8IHNoaXR0b1wgOwor6Kyd572qIDwgc2hhemFpXCA7CivkurrkvZMgPCBuaW50ZWlcIDsKK+aWh+ixqiA8IGJ1bmdvdVwgOwor5pa96JasIDwgc2V5YWt1XCA7CivmlpzoppYgPCBzaGFzaGlcIDsKK+aVsOi7kiA8IHN1dWtlblwgOwor572q5qWtIDwgemFpZ291XCA7Civpm7vou4ogPCBkZW5zaGFcIDsKK+mhnuaOqCA8IHJ1aXN1aVwgOwor5aSJ6LuiIDwgaGVudGVuXCA7CivkuIDmk7IgPCBpdHRla2lcIDsKK+eMm+aakSA8IG1vdXNob1wgOwor6Ku46Iq4IDwgc2hvZ2VpXCA7CivkuojlkYogPCB5b2tva3VcIDsKK+abuOW6lyA8IHNob3RlblwgOwor5pys5aGBIDwgaG9ucnVpXCA7Civnh7voo70gPCBrdW5zZWlcIDsKK+mboumDtyA8IHJpa3lvdVwgOwor57W15pel6KiYIDwgZW5pa2tpXCA7CivpnZLojYkgPCBhb2t1c2FcIDsKK+WkluiyjCA8IGdhaWJvdVwgOwor5Lit5bqnIDwgY2h1dXphXCA7CivnvbDmna8gPCBiYXBwYWlcIDsKK+mguOacqCA8IGt1YmlraVwgOwor5LmZ5aScIDwgb3RzdXlhXCA7CivpoJPmrbsgPCB0b25zaGlcIDsKK+aYpeedgCA8IGhhcnVnaVwgOwor57eo6ZqKIDwgaGVudGFpXCA7Civoqq3oqqYgPCBkb2t1anVcIDsKK+S6rOS6uiA8IGtlaWppblwgOwor54yb5pS7IDwgbW91a291XCA7CivkuozlibIgPCBuaXdhcmlcIDsKK+acqOWeiyA8IGtpZ2F0YVwgOwor5pyb5aSWIDwgYm91Z2FpXCA7Civmmq7mmKUgPCBib3NodW5cIDsKK+S4u+WwjiA8IHNodWRvdVwgOwor5aiv5qW9IDwgZ29yYWt1XCA7CivpmYDnvoXlsLwgPCBkYXJhbmlcIDsKK+aatOaUvyA8IGJvdXNlaVwgOwor6Kqk6KysIDwgZ29ieXV1XCA7CivkuoDljZwgPCBraWJva3VcIDsKK+iqreinoyA8IGRva2thaVwgOwor5Li75a6wIDwgc2h1c2FpXCA7Civnjovlm70gPCBvdWtva3VcIDsKK+WkmuiqrSA8IHRhZG9rdVwgOwor5LmX5aC0IDwgbm9yaWJhXCA7CivlpKLoposgPCB5dW1lbWlcIDsKK+S4oeW6piA8IHJ5b3Vkb1wgOwor6aC75pWwIDwgaGluc3V1XCA7CivoqqToqq0gPCBnb2Rva3VcIDsKK+aZpua4iyA8IGthaWp1dVwgOwor5LiN5oORIDwgZnV3YWt1XCA7CivmlZfou40gPCBoYWlndW5cIDsKK+adpeS8miA8IHJhaWthaVwgOwor5LiA5omLIDwgaGl0b3RlXCA7CivnvoXmlrnkvY0gPCByYWhvdWlcIDsKK+adpeS7uyA8IHJhaW5pblwgOwor5pu+5a2rIDwgaGltYWdvXCA7CivoqqToqLMgPCBnb3lha3VcIDsKK+acl+WgsSA8IHJvdWhvdVwgOwor5aSa6KeSIDwgdGFrYWt1XCA7CivkuIfmhJ8gPCBiYW5rYW5cIDsKK+WliOiQvSA8IG5hcmFrdVwgOwor5aSc6KWyIDwgeWFzaHV1XCA7CivniqDniZsgPCBnaWd5dXVcIDsKK+aYpeeUuyA8IHNodW5nYVwgOwor5p2h5Lu2IDwgam91a2VuXCA7CivmlaPosqEgPCBzYW56YWlcIDsKK+maj+mghiA8IHp1aWp1blwgOwor5p2l5LiWIDwgcmFpc2VpXCA7CivnuKbosqsgPCBqdXVrYW5cIDsKK+S4jeW+syA8IGZ1dG9rdVwgOwor57eR6ZuoIDwgcnlva3V1XCA7CivlpJboposgPCBzb3RvbWlcIDsKK+aYj+edoSA8IGtvbnN1aVwgOwor6Kmp6YG4IDwgc2hpc2VuXCA7CivpnaLnuYsgPCBvbW9nYWlcIDsKK+aWsOiKvSA8IHNoaW5tZVwgOwor5pWw6KmeIDwgc3V1c2hpXCA7CivmmI7nnLggPCBtZWlib3VcIDsKK+mgreaVsCA8IHRvdXN1dVwgOwor5pq05oyZIDwgYm91a3lvXCA7CivpmpTpm6IgPCBrYWt1cmlcIDsKK+acrOWRvSA8IGhvbm1laVwgOwor6aGe5b2iIDwgcnVpa2VpXCA7CivkuK3lrZAgPCBuYWthZ29cIDsKK+abs+WtkCA8IGhpa2lrb1wgOwor5aSp6JqVIDwgdGVuc2FuXCA7CivlpbPntaYgPCBqb2t5dXVcIDsKK+mbu+inoyA8IGRlbmthaVwgOwor5pyI5aCxIDwgZ2VwcG91XCA7CivmnIDlpKcgPCBzYWlkYWlcIDsKK+eHu+iSuCA8IGt1bmpvdVwgOwor5LqR5LqRIDwgdW4nJ251blwgOwor6ZqZ6ZaTIDwgc3VraW1hXCA7CivmnIDlpJYgPCBzYWlnYWlcIDsKK+aUuemAoCA8IGthaXpvdVwgOwor5aSn6JmOIDwgb29kb3JhXCA7CivpmbXpp5UgPCByeW91Z2FcIDsKK+WjsuiytyA8IGJhaWJhaVwgOwor5Li45aSqIDwgbWFydXRhXCA7CivmnZHkvJogPCBzb25rYWlcIDsKK+e+juW+syA8IGJpdG9rdVwgOwor5pyq5Y+OIDwgbWlzaHV1XCA7CivkuIDlv5wgPCBpY2hpb3VcIDsKK+acjeWcsCA8IGZ1a3VqaVwgOwor6Kyd56S8IDwgc2hhcmVpXCA7CivmnKjlj6IgPCBrb211cmFcIDsKK+S4gOW+syA8IGl0dG9rdVwgOwor5LqM5Lq6IDwgZnV0YXJpXCA7CivogIHlhbUgPCByb3VoZWlcIDsKK+eNhOWxiyA8IGdva3V5YVwgOwor54WO6aSFIDwgc2VuYmVpXCA7CivkuIrluK8gPCB1d2FvYmlcIDsKK+mbkei4jyA8IHphdHRvdVwgOwor5paH6Je7IDwgYnVuc291XCA7CivnhrHos5sgPCBuZXNzYW5cIDsKK+aVmeittyA8IGt5b3Vnb1wgOwor5Lmz5YWQIDwgbnl1dWppXCA7CivnvqTlsYUgPCBndW5reW9cIDsKK+e6j+e2vyA8IHRlbm1lblwgOwor55Ww5L2T5a2XIDwgaXRhaWppXCA7CivnjJvmgqogPCBtb3Vha3VcIDsKK+Wkp+iUtSA8IG9va3VyYVwgOwor5LiH5be7IDwgbWFuZ2FuXCA7Civml6XnqIsgPCBuaXR0ZWlcIDsKK+S4geW6piA8IGNob3Vkb1wgOwor5aSp6JOLIDwgdGVuZ2FpXCA7CivmlZnoq60gPCBreW91eXVcIDsKK+S4gOW6pyA8IGljaGl6YVwgOwor5LmX5ZCIIDwgbm9yaWFpXCA7Civpn7PmqJkgPCBvbnB5b3VcIDsKK+S5l+WPtyA8IGpvdWdvdVwgOwor5pq05oKqIDwgYm91YWt1XCA7CivpoqjlkJEgPCBmdXVrb3VcIDsKK+acrOWIhiA8IGhvbmJ1blwgOwor5pWR6K23IDwga3l1dWdvXCA7CivnuKbopqcgPCBqdXVyYW5cIDsKK+acjeWWqiA8IGZ1a3Vtb1wgOwor5pyo5YmjIDwgYm9ra2VuXCA7CivlpKfokZcgPCB0YWljaG9cIDsKK+aTrOmdqSA8IGdpa2FrdVwgOwor6KuW6ICFIDwgcm9uc2hhXCA7Civoq5bogIMgPCByb25rb3VcIDsKK+mfs+alvSA8IG9uZ2FrdVwgOwor5pyX5ZCfIDwgcm91Z2luXCA7Civpm6roposgPCB5dWtpbWlcIDsKK+S5seWAqyA8IHJhbnJpblwgOwor6Zuy6KGoIDwgdW5weW91XCA7CivniZvnmq4gPCBneXV1aGlcIDsKK+S4iuWxpCA8IGpvdXNvdVwgOwor6Zuj6KiTIDwgbmFua3VuXCA7CivogIHkvZMgPCByb3V0YWlcIDsKK+mZuOmboiA8IHJpa3VyaVwgOwor5pat572qIDwgZGFuemFpXCA7CivoqJPpm7sgPCBrdW5kZW5cIDsKK+eJoueVqiA8IHJvdWJhblwgOwor5pmC5rWBIDwgamlyeXV1XCA7CivmlqznvaogPCB6YW56YWlcIDsKK+aXheexoCA8IGhhdGFnb1wgOwor5pm05pyXIDwgc2Vpcm91XCA7CivkuInlsIEgPCBzYW5wdXVcIDsKK+eGseiqoCA8IG5lc3NlaVwgOwor5LiJ5a+4IDwgc2FuenVuXCA7CivogIHkurogPCByb3VqaW5cIDsKK+aZtOabhyA8IHNlaWRvblwgOwor6aKo5YmNIDwgZnV1emVuXCA7CivpmaPpoqggPCBqaW5wdXVcIDsKK+mbhuiyqCA8IHNodXVrYVwgOwor6Zqn6YGTIDwgc3VpZG91XCA7CivmnIDlloQgPCBzYWl6ZW5cIDsKK+e9quaCqiA8IHphaWFrdVwgOwor5pqW5oi/IDwgZGFuYm91XCA7CivmlazomZQgPCBrZWlrZW5cIDsKK+mao+mCpiA8IHJpbnBvdVwgOwor5Lmx5LqkIDwgcmFua291XCA7CivogIHkuK0gPCByb3VqdXVcIDsKK+Wls+elniA8IG1lZ2FtaVwgOwor6Z2S562LIDwgYW9zdWppXCA7Civoq7jnqK4gPCBzaG9zaHVcIDsKK+aci+WPiyA8IGhvdXl1dVwgOwor5paH6Iq4IDwgYnVuZ2VpXCA7CivpmbDpmb0gPCBvbicneW91XCA7CivkuIHlr6cgPCB0ZWluZWlcIDsKK+S4gOWvviA8IGl0dHN1aVwgOwor576p5aG+IDwgZ2lqdWt1XCA7CivlpKfoiLkgPCBvb2J1bmVcIDsKK+mdkueruSA8IGFvZGFrZVwgOwor6Z2p56ClIDwga2F3YXRvXCA7Civpm5HoqowgPCB6YXNzaGlcIDsKK+eJh+ecvCA8IGthdGFtZVwgOwor5pat57eaIDwgZGFuc2VuXCA7CivkubHkuJYgPCByYW5zZWlcIDsKK+eGn+itsCA8IGp1a3VnaVwgOwor6Zqg6YC4IDwgaW5pdHN1XCA7CivlpKfoh6MgPCBkYWlqaW5cIDsKK+e+juWtpiA8IGJpZ2FrdVwgOwor5pS/6KuWIDwgc2Vpcm9uXCA7CivmnI3li5kgPCBmdWt1bXVcIDsKK+mdkuepuiA8IGFvem9yYVwgOwor5pyJ5Y2KIDwgeXV1aGFuXCA7Civpm5HoqIAgPCB6b3Vnb25cIDsKK+WQjOaEj+iqniA8IGRvdWlnb1wgOwor5LiL5aeTIDwgZ2VzaG91XCA7CivlppnnjosgPCBteW91b3VcIDsKK+aXheeoiyA8IHJ5b3RlaVwgOwor5aWJ57SNIDwgaG91bm91XCA7Civnhp/oqp4gPCBqdWt1Z29cIDsKK+eLmeaSgyA8IHNvZ2VraVwgOwor54y25aSqIDwgeXVkYXlhXCA7CivlpJzoiLkgPCB5b2Z1bmVcIDsKK+Wkp+iDhiA8IGRhaXRhblwgOwor5LiK5aSpIDwgam91dGVuXCA7Civml6nnlKMgPCBzb3V6YW5cIDsKK+Wkp+iCoSA8IG9vbWF0YVwgOwor5pyA5Y2XIDwgc2FpbmFuXCA7CivlpKnogZ4gPCB0ZW5idW5cIDsKK+iotOi/vSA8IHNvdHN1aVwgOwor6Kmg6KqmIDwgZWlzaG91XCA7Civmmabml6UgPCBtaXNva2FcIDsKK+iomOmMsiA8IGtpcm9rdVwgOwor5pu45ZCNIDwgc2hvbWVpXCA7CivkuIflpKkgPCBiYW50ZW5cIDsKK+S4reWSjCA8IGNodXV3YVwgOwor5pS56KiCIDwga2FpdGVpXCA7Civml6XnlKMgPCBuaXNzYW5cIDsKK+mdouebuCA8IG1lbnNvdVwgOwor6KmV6K2wIDwgaHlvdWdpXCA7CivlpKfogIEgPCB0YWlyb3VcIDsKK+miqOS9kyA8IGZ1dXRlaVwgOwor54md54mbIDwgbWV1c2hpXCA7CivlopfphY0gPCB6b3VoYWlcIDsKK+S4gOWlsyA8IGljaGlqb1wgOwor5LiK5aC0IDwgam91am91XCA7CivlpKfnvqQgPCB0YWlndW5cIDsKK+mZoumVtyA8IGluY2hvdVwgOwor5Lit5Y+lIDwgY2h1dWt1XCA7CivkuInloYEgPCBzYW5ydWlcIDsKK+mau+iqniA8IHNla2lnb1wgOwor5puH5aSpIDwgZG9udGVuXCA7CivmnIjlhYkgPCBnZWtrb3VcIDsKK+mciuiDvSA8IHJlaW5vdVwgOwor5ae75pePIDwgaW56b2t1XCA7CivkuLnliY0gPCB0YW56ZW5cIDsKK+S4uOWJpCA8IGdhbnphaVwgOwor5LiA5aSiIDwgaWNoaW11XCA7CivmnIDliJ0gPCBzYWlzaG9cIDsKK+S4gOWknCA8IGhpdG95b1wgOwor5LiH5aC0IDwgbWFuam91XCA7Civoq7jnm7ggPCBzaG9zb3VcIDsKK+Wlh+etliA8IGtpc2FrdVwgOwor5ama5ae7IDwga29uJydpblwgOwor5LiO5ZynIDwgeW9hdHN1XCA7CivnhpTop6MgPCB5b3VrYWlcIDsKK+WkmuiCiSA8IHRhbmlrdVwgOwor5pqX5bmVIDwgYW5tYWt1XCA7CivpmobpgYsgPCByeXV1dW5cIDsKK+mfi+mnhOWkqSA8IGlkYXRlblwgOwor6KqY6Ie0IDwgeXV1Y2hpXCA7CivmmpbluK8gPCBkYW50YWlcIDsKK+S4i+WbvSA8IGdla29rdVwgOwor5pqr5a6aIDwgemFudGVpXCA7Civmlq3nqK4gPCBkYW5zaHVcIDsKK+eLrOW+gCA8IGRva3VvdVwgOwor5LiJ5ZuyIDwgbWl0c3VpXCA7CivlpJbogZ4gPCBnYWlidW5cIDsKK+eJuea0viA8IHRva3VoYVwgOwor5Li75YKYIDwgc2h1c2FuXCA7CivngrrmlL/lrrYgPCBpc2Vpa2FcIDsKK+Wkqee2siA8IHRlbm1vdVwgOwor6Zm26YWUIDwgdG91c3VpXCA7Civmm7jlhpkgPCBzaG9zaGFcIDsKK+S6jOW6puebriA8IG5pZG9tZVwgOwor542E5ZCPIDwgZ29rdXJpXCA7Civni6zluqcgPCBkb2t1emFcIDsKK+S4gOWbvSA8IGlra29rdVwgOwor6aCY5biDIDwgcnlvdWZ1XCA7CivniYfniYcgPCBoZW5wZW5cIDsKK+S4gOWboCA8IGljaGlpblwgOwor6Zyn56ybIDwgbXV0ZWtpXCA7CivpmbjpgYsgPCByaWt1dW5cIDsKK+eEoemXhyA8IG11eWFtaVwgOwor6ZuE6JyCIDwgb2JhY2hpXCA7Civntbnpm7IgPCBrZW4nJ3VuXCA7Civnha7osYYgPCBuaW1hbWVcIDsKK+eGlOiejSA8IHlvdXl1dVwgOwor5Li75L2TIDwgc2h1dGFpXCA7CivoqJPpgKMgPCBrdW5yZW5cIDsKK+S4h+WWhCA8IG1hbnplblwgOwor5paH57O7IDwgYnVua2VpXCA7Civmlr3nmYIgPCBzZXJ5b3VcIDsKK+S4u+S7uyA8IHNodW5pblwgOwor5pWs6ICBIDwga2Vpcm91XCA7CivpoIblvZMgPCBqdW50b3VcIDsKK+mZvei7oiA8IHlvdXRlblwgOwor5pel54S8IDwgaGl5YWtlXCA7CivkuIrlk4EgPCBqb3Vib25cIDsKK+S4u+S6uiA8IHNodWppblwgOwor6ZuE6JiCIDwgeXV1enVpXCA7Civpm6PoiLkgPCBuYW5zZW5cIDsKK+mahui1tyA8IHJ5dXVraVwgOwor5ae75oiaIDwgaW5zZWtpXCA7CivpoZ7lkIwgPCBydWlkb3VcIDsKK+iqpue1jCA8IHp1a3lvdVwgOwor5pep54CsIDwgaGF5YXNlXCA7Civmm7jkvZMgPCBzaG90YWlcIDsKK+e3kuirliA8IGNob3JvblwgOwor5Li75LiKIDwgc2h1am91XCA7CivmnIDkuK0gPCBtb25ha2FcIDsKK+mbkeiPjCA8IHpha2tpblwgOwor5paH56+EIDwgYnVucGFuXCA7CivmlrDnm4YgPCBuaWlib25cIDsKK+Wil+izhyA8IHpvdXNoaVwgOwor5pyA5LiKIDwgbW9nYW1pXCA7CivlpKfnrYsgPCBvb3N1amlcIDsKK+WqkuS9kyA8IGJhaXRhaVwgOwor54iG56C0IDwgYmFrdWhhXCA7Civni6zlsYUgPCBkb2treW9cIDsKK+eJueaoqSA8IHRva2tlblwgOwor6Kiz6KqeIDwgeWFrdWdvXCA7CivkuK3kvZAgPCBjaHV1c2FcIDsKK+S4h+WPoyA8IGJhbmtvdVwgOwor6ZuR6I2JIDwgemFzc291XCA7CivkuIrljYogPCBqb3VoYW5cIDsKK+mZuOi3ryA8IHJpa3Vyb1wgOwor5aqS5LuLIDwgYmFpa2FpXCA7CivlpKnnqbogPCB0ZW5rdXVcIDsKK+e3kuiogCA8IGNob2dlblwgOwor6ZyA57WmIDwganVreXV1XCA7CivkuI7lipsgPCB5b3Jpa2lcIDsKK+Wkp+epuiA8IG9vem9yYVwgOwor5aSW57GzIDwgZ2FpbWFpXCA7CivlpKnnqJ8gPCB0ZW5waW5cIDsKK+S4reS6jCA8IGNodXVuaVwgOwor5aWH55mWIDwga2loZWtpXCA7CivmlY/ohZUgPCBiaW53YW5cIDsKK+WkqeenpCA8IHRlbmJpblwgOwor57Si6bq6IDwgc291bWVuXCA7CivnvqTlg48gPCBndW56b3VcIDsKK+WlrueEtiA8IGZ1bnplblwgOwor5LiH5YqrIDwgbWFuZ291XCA7CivkuIrliY0gPCB1d2FtYWVcIDsKK+mbjOiKsSA8IG1lYmFuYVwgOwor5aWH55eFIDwga2lieW91XCA7CivpnZLniakgPCBhb21vbm9cIDsKK+WkqeelniA8IHRlbmppblwgOwor54S26L+EIDwgc2FtYWRlXCA7CivpoYzlkI0gPCBkYWltZWlcIDsKK+mhjOWPtyA8IGRhaWdvdVwgOwor5aSn56WtIDwgdGFpc2FpXCA7CivkuInliIYgPCBzYW5wdW5cIDsKK+e+qeS+oCA8IGdpa3lvdVwgOwor57eP6KOPIDwgc291dXJhXCA7CivnianmqKkgPCBidWtrZW5cIDsKK+WknOepuiA8IHlvem9yYVwgOwor57eP6KOBIDwgc291c2FpXCA7CivnhKHph48gPCBtdXJ5b3VcIDsKK+mbgOiNmCA8IGphbnNvdVwgOwor57eK6KSMIDwga2lua29uXCA7CivkuJbkv5cgPCBzZXpva3VcIDsKK+eJm+atqSA8IGd5dXVob1wgOwor5pen5rS+IDwga3l1dWhhXCA7CivnvoXljJcgPCByYWhva3VcIDsKK+e0sOmtmiA8IHNheW9yaVwgOwor5LiL5YOVIDwgZ2Vib2t1XCA7CivlpKfnoLIgPCB0YWlob3VcIDsKK+aVsOetiSA8IHN1dXRvdVwgOwor5aWz5rudIDwgbWVkYWtpXCA7CivorabmiYsgPCBrZWlzaHVcIDsKK+maj+ihjCA8IHp1aWtvdVwgOwor5aaC5rOVIDwgbnlvaG91XCA7CivkuIDlhoYgPCBpY2hpZW5cIDsKK+S4gOWFtyA8IGljaGlndVwgOwor5pWw5a+E5bGLIDwgc3VraXlhXCA7Civnt6jokZcgPCBoZW5jaG9cIDsKK+eIm+eImyA8IHJhbnJhblwgOwor5pqW5ZywIDwgZGFuY2hpXCA7CivntrjoqIAgPCByaW5nZW5cIDsKK+aUvuiDhiA8IGhvdXRhblwgOwor6KiT6KutIDwga3VuJyd5dVwgOwor6Kqt56C0IDwgZG9rdWhhXCA7CivkuInlgI0gPCBzYW5iYWlcIDsKK+eMm+WLhyA8IG1vdXl1dVwgOwor6aGe5L6LIDwgcnVpcmVpXCA7CivoqJPoqqEgPCBrdW5rYWlcIDsKK+isueabuCA8IGtpbnNob1wgOwor5piO5pyXIDwgbWVpcm91XCA7CivlpKnnm4MgPCB0ZW5wYWlcIDsKK+aatOWLlSA8IGJvdWRvdVwgOwor5aCk6ZiyIDwgdGVpYm91XCA7CivoqI7oq5YgPCB0b3Vyb25cIDsKK+aXpeavjiA8IGhpZ290b1wgOwor5LiN5LuyIDwgZnVuYWthXCA7CivlpKfnmr8gPCBvb3phcmFcIDsKK+S4ieS9kyA8IHNhbnRhaVwgOwor5ZCM5oSP576pIDwgZG91aWdpXCA7Civmlofnm7IgPCBtb25tb3VcIDsKK+eGsee3miA8IG5lc3NlblwgOwor54af6ICDIDwganVra291XCA7CivnjJ/lhbcgPCByeW91Z3VcIDsKK+Wik+ihqCA8IGJvaHlvdVwgOwor5pi15oeHIDwgamlra29uXCA7CivlpbPmtYEgPCBqb3J5dXVcIDsKK+mciuefpSA8IHJlaWNoaVwgOwor5LiK5LujIDwgam91ZGFpXCA7CivlpYfnibkgPCBraWRva3VcIDsKK+e+juS/lyA8IGJpem9rdVwgOwor5piT5patIDwgZWtpZGFuXCA7CivkuI3kuZkgPCBmdWl0c3VcIDsKK+e9quWQjSA8IHphaW1laVwgOwor5piP5piPIDwga29ua29uXCA7Civpm5HnuoIgPCB6YXNzYW5cIDsKK+WmmeahiCA8IG15b3VhblwgOwor5aWz5rOiIDwgbWVuYW1pXCA7Civpm6LnsY0gPCByaXNla2lcIDsKK+aYjuaWrSA8IG1laWRhblwgOwor5pWs56S8IDwga2VpcmVpXCA7Civpm7fnpZ4gPCByYWlqaW5cIDsKK+iqv+eQhiA8IGNob3VyaVwgOwor5pat54S2IDwgZGFuemVuXCA7CivmmI7mlY8gPCBtZWliaW5cIDsKK+eJiOaoqSA8IGhhbmtlblwgOwor54OI6aKoIDwgcmVwcHV1XCA7CivkuIfkuIcgPCBtYW5tYW5cIDsKK+iogOirliA8IGdlbnJvblwgOwor6Zm46KGMIDwgcmlra291XCA7CivlpKfnlJ8gPCBkYWlzZWlcIDsKK+mbgOe+hSA8IGpha3VyYVwgOwor5LiB5LqlIDwgdGVpZ2FpXCA7CivorbDluK0gPCBnaXNla2lcIDsKK+e+juS6iyA8IG1pZ290b1wgOwor5aeR5oGvIDwga29zb2t1XCA7CivnuYHnm5sgPCBoYW5qb3VcIDsKK+S4gOS6uiA8IGhpdG9yaVwgOwor5pS+57imIDwgaG91anV1XCA7Civoq5bngrkgPCByb250ZW5cIDsKK+ipqee3qCA8IHNoaWhlblwgOwor5pel5qeYIDwgaGlzYW1hXCA7CivpmaroprMgPCBiYWlrYW5cIDsKK+S4gOS6jCA8IGljaGluaVwgOwor57Sg6aaWIDwgc29rdWJpXCA7CivniJvmvKsgPCByYW5tYW5cIDsKK+eJueaOqiA8IHRva3Vzb1wgOwor6Kmm57e0IDwgc2hpcmVuXCA7CivoqIDoqLMgPCBpaXdha2VcIDsKK+WfuemkiiA8IGJhaXlvdVwgOwor6KiA6KiAIDwgZ2VuZ2VuXCA7Civnt4/oj5wgPCBzb3V6YWlcIDsKK+WkmueXhSA8IHRhYnlvdVwgOwor5pKk6YCAIDwgdGV0dGFpXCA7CivmlLnnt6ggPCBrYWloZW5cIDsKK+eEoeizgyA8IG11Y2hpblwgOwor6ZuE57eoIDwgeXV1aGVuXCA7CivnuIHntYQgPCBlbmd1bWlcIDsKK+eJueaKgCA8IHRva3VnaVwgOwor5pWZ56WWIDwga3lvdXNvXCA7CivnianmkI0gPCBidXNzb25cIDsKK+imgemghSA8IHlvdWtvdVwgOwor572w5L+4IDwgYmFwcG91XCA7Civlp4nlvJ8gPCBzaGltYWlcIDsKK+mbouekgSA8IHJpc2hvdVwgOwor6Z+z5Z+fIDwgb24nJ2lraVwgOwor5aCx6YGTIDwgaG91ZG91XCA7Civml63mmokgPCBreW9ra2lcIDsKK+e1tuizmyA8IHplc3NhblwgOwor5aaC5p2lIDwgbnlvcmFpXCA7CivlpKfniakgPCBvb21vbm9cIDsKK+mcsua7tCA8IHJvdGVraVwgOwor57aa6KGMIDwgem9ra291XCA7CivniYjmnKwgPCBoYW5wb25cIDsKK+aaluWGrCA8IGRhbnRvdVwgOwor6Zu755WqIDwgZGVuYmFuXCA7CivlpKfooojoo58gPCBvb2dlc2FcIDsKK+aXqeaZqSA8IHNvdWJhblwgOwor6ZyK542jIDwgcmVpanV1XCA7Civnt6jnuoIgPCBoZW5zYW5cIDsKK+aWsOa0viA8IHNoaW5wYVwgOwor6ZuR56iuIDwgemFzc2h1XCA7Civpm6rnm64gPCB5dWtpbWVcIDsKK+aXp+aZgiA8IGt5dXVqaVwgOwor6KqV55SfIDwgdGFuam91XCA7CivmmLzlr50gPCBoaXJ1bmVcIDsKK+S6i+WLmeWxiyA8IGppbXV5YVwgOwor5rWu5LiW57W1IDwgdWtpeW9lXCA7CivnibnmgbUgPCB0b2trZWlcIDsKK+eFmeiNiSA8IHRhYmFrb1wgOwor55C155C25rmWIDwgYml3YWtvXCA7CivorITmnKwgPCB0b3Vob25cIDsKK+aUueerhCA8IGthaXphblwgOwor54m55b+rIDwgdG9ra2FpXCA7Civkuovli5nlrrYgPCBqaW11a2FcIDsKK+aXpeaVsCA8IGhpa2F6dVwgOwor5pat5rC0IDwgZGFuc3VpXCA7CivlppnmioAgPCBteW91Z2lcIDsKK+Wmu+W4ryA8IHNhaXRhaVwgOwor5aiB5ZadIDwgaWthdHN1XCA7CivnhY7ojLYgPCBzZW5jaGFcIDsKK+mbt+eNoyA8IHJhaWp1dVwgOwor6Z2S5qGQIDwgYW9naXJpXCA7CivlpKfmva4gPCBvb3NoaW9cIDsKK+mZtuiKuCA8IHRvdWdlaVwgOwor5peX5pelIDwgaGF0YWJpXCA7CivpnZLmn7MgPCBhb3lhZ2lcIDsKK+ioree9riA8IHNldGNoaVwgOwor54mp5oCnIDwgYnVzc2VpXCA7CivmmpfkuK0gPCBhbmNodXVcIDsKK+aYvOWknCA8IGNodXV5YVwgOwor6KiA6JGJIDwga290b2JhXCA7CivntKHpjJggPCBib3VzdWlcIDsKK+WklueBryA8IGdhaXRvdVwgOwor5Z+86YqAIDwgc2FpZ2luXCA7CivkuI3lj6/pgb8gPCBmdWthaGlcIDsKK+mWk+m0qCA8IGFpZ2Ftb1wgOwor6Zyn5rC3IDwgbXVoeW91XCA7CivmmKXlraMgPCBzaHVua2lcIDsKK+Wil+e9riA8IHpvdWNoaVwgOwor57a+576FIDwgcnlvdXJhXCA7Civni4Llj6UgPCBreW91a3VcIDsKK+mZs+iFkCA8IGNoaW5wdVwgOwor5aCx6KydIDwgaG91c2hhXCA7CivnhanntK8gPCBoYW5ydWlcIDsKK+eJh+aJiyA8IGthdGF0ZVwgOwor54mH5oi4IDwga2F0YWRvXCA7CivmlpHmsJcgPCBtdXJha2lcIDsKK+aVpueFjCA8IHRvbmtvdVwgOwor5aSn5rOiIDwgb29uYW1pXCA7Civmlq3moYggPCBkYW4nJ2FuXCA7CivlpKnmsLQgPCB0ZW5zdWlcIDsKK+Wklua5ryA8IHNvdG95dVwgOwor5pmm5YalIDwga2FpbWVpXCA7CivmlZnniLYgPCBreW91ZnVcIDsKK+e0lOmKgCA8IGp1bmdpblwgOwor5aSn5rC0IDwgb29taXp1XCA7CivlpJbmuK8gPCBnYWlrb3VcIDsKK+iqrOazlSA8IHNlcHBvdVwgOwor6KaL6L68IDwgbWlrb21pXCA7CivoqKrnsbMgPCBob3ViZWlcIDsKK+e0sOi6qyA8IGhvc29taVwgOwor5paH5rCRIDwgYnVubWluXCA7Civngq3pibEgPCB0YW5rb3VcIDsKK+aXp+aBqSA8IGt5dXVvblwgOwor57SU6YeRIDwganVua2luXCA7Civkuovli5nlmaggPCBqaW11a2lcIDsKK+WknOaziiA8IHlhaGFrdVwgOwor5pa55pa5IDwgaG91Ym91XCA7Civntr/ns7ggPCBtZW5zaGlcIDsKK+aXqOW/tSA8IHNoaW5lblwgOwor5pON6Ii5IDwgc291c2VuXCA7Civntr7ns7ggPCBheWFpdG9cIDsKK+mbu+a6kCA8IGRlbmdlblwgOwor5aaE5b+1IDwgbW91bmVuXCA7Civopb/pgYogPCBzZWl5dXVcIDsKK+WlruaIpiA8IGZ1bnNlblwgOwor54Kt6YW4IDwgdGFuc2FuXCA7CivntI3ph5EgPCBub3VraW5cIDsKK+e0jemHhyA8IG5vdXNhaVwgOwor6Kaz6KanIDwga2FucmFuXCA7Civoq7jmiYsgPCBtb3JvdGVcIDsKK+mfs+S/oSA8IG9uc2hpblwgOwor57K+6a2CIDwgc2Vpa29uXCA7CivlpJzmr44gPCB5b2dvdG9cIDsKK+aVo+a8qyA8IHNhbm1hblwgOwor57ep55uuIDwgeXVydW1lXCA7CivniYflvbEgPCBoZW4nJ2VpXCA7CivlpoTlvIEgPCBib3ViZW5cIDsKK+mciuauvyA8IHJlaWRlblwgOwor5pei5b6XIDwga2l0b2t1XCA7Civoq5bml6ggPCByb25zaGlcIDsKK+eyvumrhCA8IHNlaXp1aVwgOwor5b6h5rSS6JC9IDwgb3NoYXJlXCA7Civkuovli5nlk6EgPCBqaW11aW5cIDsKK+WftOi8qiA8IGhhbml3YVwgOwor6KuW5patIDwgcm9uZGFuXCA7Civoq5bmlocgPCByb25idW5cIDsKK+eFmeeuoSA8IGtpc2VydVwgOwor6Kq/5p+7IDwgY2hvdXNhXCA7CivmpI3mnKjlsYsgPCB1ZWtpeWFcIDsKK+eEoeiHrSA8IG11c2h1dVwgOwor6Z2x5bivIDwgamludGFpXCA7CivmmI7lpKcgPCBtZWlkYWlcIDsKK+mWiemkqCA8IGhlaWthblwgOwor6Ku45oKqIDwgc2hvYWt1XCA7Civlo4HnlLsgPCBoZWtpZ2FcIDsKK+e0oOi2syA8IHN1YXNoaVwgOwor5pW15q2pIDwgdGVraWZ1XCA7Civpm4TniqwgPCBvc3VpbnVcIDsKK+Wil+eojiA8IHpvdXplaVwgOwor5aK+55SwIDwga29uZGVuXCA7CivmlLnniYggPCBrYWloYW5cIDsKK+eItuW+oSA8IHRldGVnb1wgOwor5LiN5Y+v6KqkIDwgZnVrYWdvXCA7CivplqLploAgPCBrYW5tb25cIDsKK+Wkp+aguSA8IGRhaWtvblwgOwor6ZuR54KKIDwgem91c3VpXCA7CivlpJzmpa0gPCB5YWd5b3VcIDsKK+e0sOirliA8IHNhaXJvblwgOwor54mn5aSrIDwgYm9rdWZ1XCA7CivmlofmoYggPCBidW4nJ2FuXCA7Civml4Xmg4UgPCByeW9qb3VcIDsKK+WkieatuyA8IGhlbnNoaVwgOwor5aSW5qeYIDwgdG96YW1hXCA7CivlpKfmn4QgPCBvb2dhcmFcIDsKK+W+oemHiOi/piA8IG9zaGFrYVwgOwor6Ku45b2mIDwgc2hvZ2VuXCA7CivplpPpmpsgPCBtYWdpd2FcIDsKK+eEoeiBiiA8IGJ1cnlvdVwgOwor6ZW36aeGIDwgY2hvdWt1XCA7Civpm7Lmr40gPCBraXJhcmFcIDsKK+aXqeWvnSA8IGhheWFuZVwgOwor6KW/6LKiIDwgc2FpZ29uXCA7CivmlZnmtL4gPCBreW91aGFcIDsKK+aTjee4piA8IHNvdWp1dVwgOwor5aSn5pysIDwgdGFpaG9uXCA7CivlpKfmnJsgPCB0YWltb3VcIDsKK+irluaLoCA8IHJvbmt5b1wgOwor5pel5bCEIDwgbmlzc2hhXCA7CivlpYnmi50gPCBob3VoYWlcIDsKK+eJp+WgtCA8IG1ha2liYVwgOwor6KiI566XIDwga2Vpc2FuXCA7CivpmaTnsY0gPCBqb3Nla2lcIDsKK+ezuOmBiiA8IGl0b3l1dVwgOwor6Zuj5rK7IDwgbmFuY2hpXCA7Civloqjnl5UgPCBib2trb25cIDsKK+WNsOWtl+apnyA8IGluamlraVwgOwor6KuW5oimIDwgcm9uc2VuXCA7CivlpKnmmI4gPCB0ZW5tZWlcIDsKK+Wik+efsyA8IGJvc2VraVwgOwor5aKo55S7IDwgYm9rdWdhXCA7Civpm6PmsJEgPCBuYW5taW5cIDsKK+e0oOiqrSA8IHNvZG9rdVwgOwor6KaB6KumIDwgeW91dGVpXCA7CivlpKnmlocgPCB0ZW5tb25cIDsKK+Wkp+aWuSA8IG9va2F0YVwgOwor56Gr6buE5rOJIDwgaW91c2VuXCA7CivplovploAgPCBrYWltb25cIDsKK+e3tOeCrSA8IHJlbnRhblwgOwor6ZaJ6ZaAIDwgaGVpbW9uXCA7Civlopfnm4ogPCB6b3Vla2lcIDsKK+WkluadpSA8IGdhaXJhaVwgOwor6ZeH6LevIDwgeWFtaWppXCA7CivlpJbmnZAgPCBnYWl6YWlcIDsKK+mWgOmZoiA8IG1vbicnaW5cIDsKK+e0jeixhiA8IG5hdHRvdVwgOwor6ZaA6ZmQIDwgbW9uZ2VuXCA7CivmlrnlvaIgPCBob3VrZWlcIDsKK+aWh+aUvyA8IGJ1bnNlaVwgOwor5aWz5a6YIDwgbnlva2FuXCA7CivnhKHntaYgPCBtdWt5dXVcIDsKK+aXqeWkpyA8IHNvdWRhaVwgOwor6KaB6KanIDwgeW91cmFuXCA7Civpm5vmrrUgPCBzdXVkYW5cIDsKK+mdouWtkCA8IG1lbnRzdVwgOwor5pWw5p6aIDwgc3V1bWFpXCA7Civpm6jmqIsgPCBhbWFkb2lcIDsKK+mbhOa4viA8IHl1dWtvblwgOwor6KSH6Z+zIDwgZnVrdW9uXCA7CivmmI7lkJsgPCBtZWlrdW5cIDsKK+mZuuebuCA8IGtlbnNvdVwgOwor54m55YuZIDwgdG9rdW11XCA7Civnianlk4EgPCBidXBwaW5cIDsKK+Wil+eUoyA8IHpvdXNhblwgOwor5pCN6YeRIDwgc29ua2luXCA7CivplbfplpEgPCBub2Rva2FcIDsKK+iqnuaXjyA8IGdvem9rdVwgOwor5YGJ5LiI5aSrIDwgaWpvdWZ1XCA7Civoq5blvIEgPCByb25iZW5cIDsKK+aXpeWgsSA8IG5pcHBvdVwgOwor6ZaA6ZGRIDwgbW9ua2FuXCA7CivloJXokL0gPCBkYXJha3VcIDsKK+mWoumAoyA8IGthbnJlblwgOwor54Wu54mpIDwgbmltb25vXCA7Civml4Xlr50gPCB0YWJpbmVcIDsKK+mZs+eariA8IGNoaW5waVwgOwor5biD5rW36IuUIDwgZnVub3JpXCA7CivntKvomK0gPCBzaGlyYW5cIDsKK+mWi+mKgCA8IGthaWdpblwgOwor54Sh562WIDwgbXVzYWt1XCA7CivorKblkrMgPCBrZWlnYWlcIDsKK+WmpeWNlCA8IGRha3lvdVwgOwor5aSn5oqAIDwgb293YXphXCA7Civnsr7pjKwgPCBzZWlyZW5cIDsKK+aXp+WcnyA8IGt5dXVkb1wgOwor6Zu75patIDwgZGVuZGFuXCA7CivpnLDlvL4gPCBzYW5kYW5cIDsKK+aVmeahiCA8IGt5b3VhblwgOwor5aaZ5ZGzIDwgbXlvdW1pXCA7CivmmI7liJ0gPCBtZWlzaG9cIDsKK+e1nue9qiA8IGtvdXphaVwgOwor5pio5LuKIDwgc2Fra29uXCA7Civntajnt54gPCBqdXV0YW5cIDsKK+aWueWvuCA8IGhvdXN1blwgOwor5aSJ5pS5IDwgaGVua2FpXCA7Civpm7bmlZcgPCByZWloYWlcIDsKK+WlpeWmmSA8IG91bXlvdVwgOwor5pWj5paHIDwgc2FuYnVuXCA7CivmlaPmlaMgPCBzYW56YW5cIDsKK+Wcn+m+jSA8IG1vZ3VyYVwgOwor57im5patIDwganV1ZGFuXCA7CivorJrlj7cgPCBzaGlnb3VcIDsKK+Wls+WbmiA8IGpvc2h1dVwgOwor5pat5a6aIDwgZGFudGVpXCA7Civoq5blrpogPCByb250ZWlcIDsKK+WhteeVjCA8IGppbmthaVwgOwor6KuW5a2fIDwgcm9ubW91XCA7Civml6XlkowgPCBoaXlvcmlcIDsKK+e2sueKtiA8IG1vdWpvdVwgOwor5aSn5b2iIDwgb29neW91XCA7CivmhbDlronkvJogPCBpYW5rYWlcIDsKK+mbo+aWhyA8IG5hbmJ1blwgOwor5oqr6Zyy55uuIDwgaGlyb21lXCA7CivnsbPpo68gPCBiZWloYW5cIDsKK+e2sueJiCA8IGFtaWhhblwgOwor5aOy5paHIDwgYmFpYnVuXCA7Civml6XlkJEgPCBoaW5hdGFcIDsKK+eyvui+siA8IHNlaW5vdVwgOwor5paw5ammIDwgc2hpbnB1XCA7CivpmLLnqbogPCBib3VrdXVcIDsKK+WkqeW6lSA8IHRlbnRlaVwgOwor5aSq5bmzIDwgdGFpaGVpXCA7CivlpaXlnLAgPCBva3VjaGlcIDsKK+Wkp+W6lyA8IG9vZGFuYVwgOwor6ZuR5pu4IDwgemFzc2hvXCA7CivplqPorbAgPCBrYWt1Z2lcIDsKK+eBsOiynSA8IGhhaWdhaVwgOwor5aSn5bmFIDwgb29oYWJhXCA7CivlpKfluKsgPCBkYWlzaGlcIDsKK+e1kOe0jSA8IHl1aW5vdVwgOwor5peF5ZujIDwgcnlvZGFuXCA7CivnuYHlv5kgPCBoYW5ib3VcIDsKK+WcsOmrqiA8IGppZ2FtaVwgOwor6Ziy56amIDwgYm91Z3lvXCA7CivntLDog54gPCBzYWlib3VcIDsKK+aXpeWLpCA8IG5pa2tpblwgOwor54K56Iy2IDwgdGVuY2hhXCA7CivplbfpgJQgPCBjaG91dG9cIDsKK+S6iOWCmemmrCA8IHlvYmliYVwgOwor5rCX5YyW5ZmoIDwga2lrYWtpXCA7CivmkZjoir0gPCB0ZWtpZ2FcIDsKK+mbhOadviA8IG9tYXRzdVwgOwor5pep5Ye6IDwgaGF5YWRlXCA7CivlpYflppkgPCBraW15b3VcIDsKK+WkluW+hCA8IGdhaWtlaVwgOwor5aSW5b6BIDwgZ2Fpc2VpXCA7CivmjqXpoK0gPCBzZXR0b3VcIDsKK+iok+eCuSA8IGt1bnRlblwgOwor5q2m6ICF57W1IDwgbXVzaGFlXCA7Civoq5blpJYgPCByb25nYWlcIDsKK+WknOW6lyA8IHlvbWlzZVwgOwor57WD57eaIDwgZ2Vuc2VuXCA7Civoq77lkKYgPCBkYWt1aGlcIDsKK+eEoeeXmyA8IG11dHN1dVwgOwor54Sh55eFIDwgbXVieW91XCA7Civlo5/mlq0gPCByb3VkYW5cIDsKK+eJh+WIgyA8IGthdGFoYVwgOwor5pW15b2xIDwgdGVraWVpXCA7Civntbnnm64gPCBraW51bWVcIDsKK+eFruaxgSA8IG5pamlydVwgOwor6KO+6YeOIDwgc3Vzb25vXCA7CivlpJzluIIgPCB5b2ljaGlcIDsKK+Wkp+WxsSA8IHRhaXphblwgOwor6Ku45ZCbIDwgc2hva3VuXCA7CivpnJzlrrMgPCBzb3VnYWlcIDsKK+aUueaYkyA8IGthaWVraVwgOwor5aOu5oyZIDwgc291a3lvXCA7CivntIXokYkgPCBtb21pamlcIDsKK+aWjuWuriA8IHNhaWd1dVwgOwor6Zuj5omAIDwgbmFuc2hvXCA7Civlparlj5YgPCBkYXNzaHVcIDsKK+WkquWuiCA8IHRhaXNodVwgOwor5paJ5bCEIDwgc2Vpc2hhXCA7CivlpInlvaIgPCBoZW5rZWlcIDsKK+e0oOiCjCA8IHN1aGFkYVwgOwor5aSq5a2XIDwgZnV0b2ppXCA7CivlpKnlrasgPCB0ZW5zb25cIDsKK+mbkeaQjSA8IHphc3NvblwgOwor5pel5YKYIDwgaGlnYXNhXCA7CivpnanlhbcgPCBrYXdhZ3VcIDsKK+mdouWJjSA8IG1lbnplblwgOwor6ZyK5bOwIDwgcmVpaG91XCA7Civpmrfmm7ggPCByZWlzaG9cIDsKK+inkueariA8IGtha3VoaVwgOwor5pWw5bm0IDwgc3V1bmVuXCA7Civlpa7lirEgPCBmdW5yZWlcIDsKK+mdnuWKmyA8IGhpcmlraVwgOwor6Kut5ZGKIDwgeXVrb2t1XCA7CivpoqjlnJ/oqJggPCBmdWRva2lcIDsKK+aWh+WumCA8IGJ1bmthblwgOwor5pes5L2ZIDwganVuJyd5b1wgOwor57SF6Iy2IDwga291Y2hhXCA7CivntLDnt7sgPCBzYWljaGlcIDsKK+Wfi+iUtSA8IG1haXpvdVwgOwor6ZyK5bGxIDwgcmVpemFuXCA7Civoo4/ploAgPCB1cmFtb25cIDsKK+mbu+W3pSA8IGRlbmtvdVwgOwor5pac5aGUIDwgc2hhdG91XCA7CivlpJzlr5IgPCB5b3phbXVcIDsKK+WhqeeFriA8IHNoaW9uaVwgOwor6Ku45YiDIDwgbW9yb2hhXCA7Civln4vokawgPCBtYWlzb3VcIDsKK+e2v+avmyA8IHdhdGFnZVwgOwor57WQ56S+IDwga2Vzc2hhXCA7CivopJLosrYgPCBob3VoZW5cIDsKK+e0r+e0ryA8IHJ1aXJ1aVwgOwor5Zyw6ZyKIDwgY2hpcmVpXCA7CivlpJzlraYgPCB5YWdha3VcIDsKK+aXpeS8iiA8IG5pY2hpaVwgOwor6KeS55WMIDwga2Fra2FpXCA7CivmlY/mhJ8gPCBiaW5rYW5cIDsKK+aVt+WxhSA8IHNoaWtpaVwgOwor54Kt6IK6IDwgdGFuaGFpXCA7CivnhZnmr5IgPCBlbmRva3VcIDsKK+eGseaEjyA8IG5ldHN1aVwgOwor5Zyw6ZqOIDwgY2hpa2FpXCA7Civml4XliLggPCByeW9rZW5cIDsKK+mao+adkSA8IHJpbnNvblwgOwor6Z2i5YCSIDwgbWVuZG91XCA7Civml6XkuK0gPCBoaW5ha2FcIDsKK+WlkeWQiCA8IGtlaWdvdVwgOwor6ZyK5aqSIDwgcmVpYmFpXCA7CivnsbPpiq0gPCBiZWlzZW5cIDsKK+iqnuWtpiA8IGdvZ2FrdVwgOwor6KqY5bCOIDwgeXV1ZG91XCA7Civpm5HmhJ8gPCB6YWtrYW5cIDsKK+aWjuWgtCA8IHNhaWpvdVwgOwor5aWz5L2TIDwgbnlvdGFpXCA7CivpnaLkvZMgPCBtZW50ZWlcIDsKK+WlieWRiCA8IGhvdXRlaVwgOwor5pKD56C0IDwgZ2VraWhhXCA7CivpnaLkvJogPCBtZW5rYWlcIDsKK+WjsuW6lyA8IGJhaXRlblwgOwor6KuW5Y+iIDwgcm9uc291XCA7Civpm7vlrZAgPCBkZW5zaGlcIDsKK+eIteS9jSA8IHNoYWt1aVwgOwor5aWz5Lq6IDwgbnlvbmluXCA7CivntbbniYggPCB6ZXBwYW5cIDsKK+mbquW0qSA8IG5hZGFyZVwgOwor57Sb57SbIDwgZnVucHVuXCA7Civlo67lubQgPCBzb3VuZW5cIDsKK+Wkp+WeiyA8IG9vZ2F0YVwgOwor57SU57a/IDwganVubWVuXCA7Civloanmua8gPCBzaGlveXVcIDsKK+Wls+S4rSA8IGpvY2h1dVwgOwor6ZaA6KGbIDwgbW9uJydlaVwgOwor5Z6C6KiTIDwgc3Vpa3VuXCA7CivpmLLniq8gPCBib3VoYW5cIDsKK+eGseW4ryA8IG5ldHRhaVwgOwor54Sa54GrIDwgdGFraWJpXCA7CivmlLnmgqogPCBrYWlha3VcIDsKK+e0lOezuyA8IGp1bmtlaVwgOwor5aWl5LydIDwgb2t1ZGVuXCA7CivloanmtbQgPCBlbnlva3VcIDsKK+irh+WQiCA8IGRhbmdvdVwgOwor6ZyK5Z+fIDwgcmVpaWtpXCA7Civoq5bliKQgPCByb25wYW5cIDsKK+eFruaWuSA8IG5pa2F0YVwgOwor54aK5omLIDwga3VtYWRlXCA7CivntJTnsosgPCBqdW5zdWlcIDsKK+iqreWbsyA8IGRva3V6dVwgOwor54Gr6JOLIDwgaGlidXRhXCA7Civoqr/lkowgPCBjaG91d2FcIDsKK+iqv+WRsyA8IGNob3VtaVwgOwor5peF5Lq6IDwgcnlvamluXCA7Civnt4/mlbAgPCBzb3VzdXVcIDsKK+mbkeW3viA8IHpvdWtpblwgOwor6ZqF5pyoIDwgc3VtaWtpXCA7Civopqrnlo4gPCBzaGluc29cIDsKK+aWueS+vyA8IGhvdWJlblwgOwor6Zui5a6uIDwgcmlreXV1XCA7CivntaLniJsgPCBrZW5yYW5cIDsKK+W+oeays+erpSA8IG9rYXBwYVwgOwor5aSW5ZywIDwgZ2FpY2hpXCA7CivloanmsJcgPCBzaGlva2VcIDsKK+aOpei/kSA8IHNla2tpblwgOwor6ZuE5byBIDwgeXV1YmVuXCA7CivnsbPou40gPCBiZWlndW5cIDsKK+aUueW7gyA8IGthaWhhaVwgOwor6ZqO5pWwIDwga2Fpc3V1XCA7CivlnLDph5EgPCBqaWdhbmVcIDsKK+iqv+WNsCA8IGNob3VpblwgOwor57Gk6YGLIDwga3VqaXVuXCA7Civmv4Hpn7MgPCBkYWt1b25cIDsKK+Wkp+WSjCA8IHlhbWF0b1wgOwor6KuH5YikIDwgZGFucGFuXCA7Civplbfom4cgPCBjaG91ZGFcIDsKK+aWueS7iiA8IGhvdWtvblwgOwor57SF57KJIDwgYmVuaWtvXCA7CivlnLDphZIgPCBqaXpha2VcIDsKK+mau+W9sSA8IHNla2llaVwgOwor5Zyf6Y2LIDwgZG9uYWJlXCA7CivngbDoibIgPCBoYWlpcm9cIDsKK+WkqeWPsCA8IHRlbmRhaVwgOwor5aSn5ZCbIDwgdGFpa3VuXCA7CivpmbDmoLggPCBpbmtha3VcIDsKK+e0sOebriA8IGhvc29tZVwgOwor5o+Q6KaBIDwgdGVpeW91XCA7CivngavoirEgPCBoaWJhbmFcIDsKK+mbkeWxhSA8IHpha2t5b1wgOwor5Z+L57eaIDwgbWFpc2VuXCA7CivmlbDlm54gPCBzdXVrYWlcIDsKK+WlleS4liA8IGVraXNlaVwgOwor6b2mIDwgaGFndWtpXCA7CivlpKfljYogPCB0YWloYW5cIDsKK+m8iCA8IHN1cHBvblwgOwor6KSQ6Je7IDwga2Fzc291XCA7Civpu5wgPCBjaHV0c3VcIDsKK+eEoeavkiA8IG11ZG9rdVwgOwor5aSn5YyZIDwgb29zYWppXCA7CivntbbmtbcgPCB6ZWtrYWlcIDsKK+mbhOWzsCA8IHl1dWhvdVwgOwor57SN56iOIDwgbm91emVpXCA7CivlnJ/ph5wgPCBkb2dhbWFcIDsKK+Wkp+WLoiA8IHRhaXplaVwgOwor57eS5oimIDwgY2hvc2VuXCA7CivpupMgPCBmdW1vdG9cIDsKK+Wkp+WLhyA8IHRhaXl1dVwgOwor6KOz6KO+IDwgbW9zdXNvXCA7CivpmaTmoLggPCBqb2tha3VcIDsKK+ino+avkiA8IGdlZG9rdVwgOwor6Zmw5pqmIDwgaW5yZWtpXCA7CivnhKHmrLIgPCBtdXlva3VcIDsKK+iqo+WRiiA8IGJ1a29rdVwgOwor5aSn5YiGIDwgZGFpYnVuXCA7CivlpKfliIAgPCBkYWl0b3VcIDsKK+mbkeWpmiA8IHpha2tvblwgOwor5pCN6ICXIDwgc29ubW91XCA7CivlnKfov6sgPCBhcHBha3VcIDsKK+Wkp+WHoSA8IG9veW9zb1wgOwor6ZqP5omAIDwgenVpc2hvXCA7Civpm4XlrqIgPCBnYWtha3VcIDsKK+WkqeWFtSA8IHRlbnBlaVwgOwor6bWlIDwga2FrZXN1XCA7CivpmqDlv40gPCBpbicnbmluXCA7CivpmaTmnI0gPCBqb2Z1a3VcIDsKK+m0rCA8IHVndWlzdVwgOwor5aSn5YWoIDwgdGFpemVuXCA7CivptI4gPCBrYW1vbWVcIDsKK+mbu+WRvSA8IGRlbm1laVwgOwor6KOc6Ki7IDwgaG9jaHV1XCA7CivmkbjniYwgPCBtb3VwYWlcIDsKK+aEm+eFmeWutiA8IGFpZW5rYVwgOwor6YOo5bGL552AIDwgaGV5YWdpXCA7CivpnIrliaMgPCByZWlrZW5cIDsKK+aVsOWQjSA8IHN1dW1laVwgOwor6KGo6Z+zIDwgaHlvdW9uXCA7CivkuojlgpnosrsgPCB5b2JpaGlcIDsKK+WkluWLpCA8IGdhaWtpblwgOwor6ZqP5oSfIDwgenVpa2FuXCA7CivpsbggPCBzdXp1a2lcIDsKK+eCr+ecvCA8IGtlaWdhblwgOwor6bGwIDwgc2hpaXJhXCA7CivlpJzlh6ogPCB5b25hZ2lcIDsKK+maj+aDsyA8IHp1aXNvdVwgOwor6bC5IDwga2F0c3VvXCA7Civmjqjoq5YgPCBzdWlyb25cIDsKK+mwryA8IGl3YXNoaVwgOwor5aSJ5ZCNIDwgaGVubWVpXCA7CivntabmsrkgPCBreXV1eXVcIDsKK+mwmiA8IGhhcmFrYVwgOwor57WC54SJIDwgc2h1dWVuXCA7CivpsIYgPCBzYXdhcmFcIDsKK+eGseWeiyA8IG5la2tlaVwgOwor6Zu35ZCMIDwgcmFpZG91XCA7CivpnKfkuK0gPCBtdWNodXVcIDsKK+mvsSA8IHNoYWNoaVwgOwor6a+wIDwgbmFtYXp1XCA7Civpr6ggPCBrdWppcmFcIDsKK+mvoyA8IHN1cnVtZVwgOwor5pWw5Y2DIDwgc3V1c2VuXCA7CivmlbDljYEgPCBzdXVqdXVcIDsKK+imgeeUqCA8IHlvdXlvdVwgOwor57aa5pigIDwgem9rdWVpXCA7Civln7TnlJ8gPCBoYW55dXVcIDsKK+WkluWHuiA8IHNvdG9kZVwgOwor6Zuy5ZGRIDwgd2FudGFuXCA7CivprqogPCBtYWd1cm9cIDsKK+e1kOa7niA8IGtldHRhaVwgOwor6a6WIDwga2FqaWthXCA7Civngonnq68gPCByb2JhdGFcIDsKK+mbkeWgsSA8IHphcHBvdVwgOwor57Sv54qvIDwgcnVpaGFuXCA7CivmjqjoqIggPCBzdWlrZWlcIDsKK+eFp+W/nCA8IHNob3VvdVwgOwor57ir5ZCIIDwgaG91Z291XCA7Civlm5vpmqMgPCBzaGlyaW5cIDsKK+WkluWFuCA8IGdhaXRlblwgOwor54CY6YGO5ZmoIDwgcm9rYWtpXCA7Civlm5vpmoUgPCB5b3N1bWlcIDsKK+WgheeJoiA8IGtlbnJvdVwgOwor54Gr57iEIDwgaGluYXdhXCA7CivlpInli5UgPCBoZW5kb3VcIDsKK+maj+W+kyA8IHp1aWp1dVwgOwor6ZuE5aSnIDwgeXV1ZGFpXCA7CivmlofkvosgPCBidW5yZWlcIDsKK+mbo+WVjyA8IG5hbm1vblwgOwor5pWZ5ZSGIDwga3lvdXNhXCA7CivmjqLoqKogPCB0YW5ib3VcIDsKK+aNu+i7oiA8IG5lbnRlblwgOwor5pWZ5ZOhIDwga3lvdWluXCA7Civlm7PpjLIgPCB6dXJva3VcIDsKK+Wkp+S7oyA8IGRhaWRhaVwgOwor6KOc5Yqp5ZOhIDwgaG9qb2luXCA7Civoo4/opZ8gPCB1cmFlcmlcIDsKK+Wcn+i2syA8IGRvc29rdVwgOwor5aSW5YK1IDwgZ2Fpc2FpXCA7Civmjojos54gPCBqdXNob3VcIDsKK+imi+eJqSA8IG1pbW9ub1wgOwor5aSp5Li8IDwgdGVuZG9uXCA7CivlpKfkubEgPCB0YWlyYW5cIDsKK+eFp+W6piA8IHNob3Vkb1wgOwor5paH5Lq6IDwgYnVuamluXCA7CivlpKfkuZcgPCBkYWlqb3VcIDsKK+WjsuWTgSA8IGJhaWhpblwgOwor5aSp5LiOIDwgdGVuJyd5b1wgOwor5Zyw6KyhIDwgaml1dGFpXCA7Civoo73ojLYgPCBzZWljaGFcIDsKK+WknOS8vSA8IHlvdG9naVwgOwor5aSa5L2cIDwgdGFzYWt1XCA7CivplbfogIUgPCBjaG91amFcIDsKK+WjsuWQjSA8IGJhaW1laVwgOwor5aGK5qC5IDwga2Fpa29uXCA7CivnhJrmm7ggPCBmdW5zaG9cIDsKK+aRgueUnyA8IHNlc3NlaVwgOwor6Zai56m6IDwga2Fua3V1XCA7CivnhKHmmI4gPCBtdW15b3VcIDsKK+avlOS4mOWwvCA8IGJpa3VuaVwgOwor5Zu96YGLIDwga29rdXVuXCA7CivplonntYwgPCBoZWlrZWlcIDsKK+ihgOmkhSA8IGtlcHBlaVwgOwor6Zu75YGcIDwgZGVudGVpXCA7CivmlbDlgKQgPCBzdXVjaGlcIDsKK+mWoueojiA8IGthbnplaVwgOwor5pWw5YCNIDwgc3V1YmFpXCA7CivlpJzkuK0gPCB5b25ha2FcIDsKK+aVo+WFtSA8IHNhbnBlaVwgOwor5aSW5Lq6IDwgZ2FpamluXCA7Civlo4floLQgPCBkYW5qb3VcIDsKK+aNqOi6qyA8IHN1dGVtaVwgOwor5aGX5paZIDwgdG9yeW91XCA7CivntKDnhLwgPCBzdXlha2lcIDsKK+eFmeW5lSA8IGVubWFrdVwgOwor5aSW5LmxIDwgZ2FpcmFuXCA7Civpm5Hlk4EgPCB6YXBwaW5cIDsKK+ino+aVoyA8IGthaXNhblwgOwor5pOx5bqnIDwga2FrdXphXCA7Civnsr7nsr4gPCBzZWl6ZWlcIDsKK+e1tuaZryA8IHpla2tlaVwgOwor6Kix5a65IDwga3lveW91XCA7CivlnLDoo4EgPCBjaGlzYWlcIDsKK+eyvueyiSA8IHNlaWZ1blwgOwor6Z6QIDwga29oYXplXCA7CivmjZXpgLggPCBob2l0c3VcIDsKK+aVkeWKqSA8IGt5dXVqb1wgOwor57K+57GzIDwgc2VpbWFpXCA7CivmlLnlloQgPCBrYWl6ZW5cIDsKK+Wcp+immiA8IGFra2FrdVwgOwor5pWw5Lq6IDwgc3V1bmluXCA7CivpmbDlvrMgPCBpbnRva3VcIDsKK+eBq+eoriA8IGhpZGFuZVwgOwor6ZyeIDwga2FzdW1pXCA7CivpnJkgPCBtaXpvcmVcIDsKK+ioreWumiA8IHNldHRlaVwgOwor6Kmp5ZCfIDwgc2hpZ2luXCA7Civpm5sgPCBoaXlva29cIDsKK+e0r+a4myA8IHJ1aWdlblwgOwor57SU54S2IDwganVuemVuXCA7CivmlbDkuIcgPCBzdXVtYW5cIDsKK+WkieS5sSA8IGhlbnJhblwgOwor5rOi5q2i5aC0IDwgaGF0b2JhXCA7CivpmarlvpMgPCBiYWlqdXVcIDsKK+iho+mJoiA8IGloYXRzdVwgOwor6KKr6KaGIDwgaGlmdWt1XCA7Civngq/ngq8gPCBrZWlrZWlcIDsKK+eCreeBqyA8IHN1bWliaVwgOwor5Zu96LK7IDwga29rdWhpXCA7CivlnLDomasgPCBtaW1penVcIDsKK+WbnumBiiA8IGthaXl1dVwgOwor6Kaz5qGcIDwga2FuJydvdVwgOwor5piT5YuV5bqmIDwgaWRvdWRvXCA7CivlnoLnr4QgPCBzdWloYW5cIDsKK+mbo+S7tiA8IG5hbmtlblwgOwor6KiT5bCOIDwga3VuZG91XCA7CivpkaIgPCB5YXN1cmlcIDsKK+e1teWbs+mdoiA8IGV6dW1lblwgOwor5pWX5LqhIDwgaGFpYm91XCA7Civlo7LkurogPCBiYWluaW5cIDsKK+a9rumWkyA8IHNoaW9tYVwgOwor6KO45amm55S7IDwgcmFmdWdhXCA7Civpm6LkubMgPCByaW55dXVcIDsKK+ijj+iKuCA8IHVyYWdlaVwgOwor5Zue6LuiIDwga2FpdGVuXCA7CivloLTmlbAgPCBiYWthenVcIDsKK+eBq+eavyA8IGhpemFyYVwgOwor5q2p5LiA5q2pIDwgaG9pcHBvXCA7CivlopflpKcgPCB6b3VkYWlcIDsKK+e4geWFiCA8IGVuc2FraVwgOwor5LiJ5Y2B6LevIDwgbWlzb2ppXCA7Civlo7LkuIogPCB1cmlhZ2VcIDsKK+mbkeS/syA8IHphcHBhaVwgOwor5Zu96KqeIDwga29rdWdvXCA7CivpjLogPCBrYXphcmlcIDsKK+e1jOabuCA8IGtlaXNob1wgOwor5pS55YWDIDwga2FpZ2VuXCA7Civmj5vnrpcgPCBrYW56YW5cIDsKK+eyl+eylyA8IGFyYWFyYVwgOwor54KK54ioIDwgc3Vpc2FuXCA7Civmv4Doqp4gPCBnZWtpZ29cIDsKK+e0oeavmyA8IGJvdW1vdVwgOwor54Sh5b+DIDwgbXVzaGluXCA7CivntKvmqoAgPCBzaGl0YW5cIDsKK+e4geWBtCA8IGVuZ2F3YVwgOwor5LiN5rKZ5rGwIDwgYnVzYXRhXCA7Civpio0gPCBjaGl0c3VcIDsKK+ijnOe/kiA8IGhvc2h1dVwgOwor6Zmj5bGLIDwgamluJyd5YVwgOwor6ZuR5Lu2IDwgemFra2VuXCA7CivpiYsgPCBrYW4nJ25hXCA7CivkuI3mrbvouqsgPCBmdWppbWlcIDsKK+mbkeS6uiA8IHpvdW5pblwgOwor57e05YW1IDwgcmVucGVpXCA7CivlopPloLQgPCBoYWthYmFcIDsKK+mbheS/lyA8IGdhem9rdVwgOwor6YaqIDwgbW9yb21pXCA7CivmlL7ku7sgPCBob3VuaW5cIDsKK+WKoOWliOmZgCA8IGthbmFkYVwgOwor5o6o6ICDIDwgc3Vpa291XCA7CivntJTmr5sgPCBqdW5tb3VcIDsKK+e0hea2mSA8IGtvdXJ1aVwgOwor57Sg5qi4IDwgc29ib2t1XCA7CivlmbTpo68gPCBmdW5wYW5cIDsKK+e2meWtkCA8IG1hbWFrb1wgOwor57SU5q2jIDwganVuc2VpXCA7Civopofmpa0gPCBoYWd5b3VcIDsKK+eBq+eOiSA8IGhpZGFtYVwgOwor6Kiq5ZWPIDwgaG91bW9uXCA7Civplbfnm64gPCBuYWdhbWVcIDsKK+e1seW+oSA8IHRvdWd5b1wgOwor6YGWIDwgYXBwYXJlXCA7Civon7vpo58gPCBhcmlrdWlcIDsKK+aQvuayuSA8IHNha3V5dVwgOwor5Lul6YGg5qipIDwgaWVua2VuXCA7Civoob/oo48gPCBlcml1cmFcIDsKK+ijnOe1piA8IGhva3l1dVwgOwor5pa96aST6ay8IDwgc2VnYWtpXCA7CivoqZXkvqEgPCBoeW91a2FcIDsKK+mWgOeVqiA8IG1vbmJhblwgOwor5Zuz6KGoIDwgenVoeW91XCA7Civov5ogPCB0b3RlbW9cIDsKK+exs+e2vyA8IGJlaW1lblwgOwor5aG55aOVIDwgemFuZ291XCA7CivkuInph43nnIwgPCBtaWVrZW5cIDsKK+e3keWMliA8IHJ5b2trYVwgOwor6ZmL5bGLIDwgcm91b2t1XCA7CivlnLDogowgPCBqaWhhZGFcIDsKK+mYsuW8viA8IGJvdWRhblwgOwor5b6h5rKZ5rGwIDwgZ29zYXRhXCA7CivoqIDlpJYgPCBnZW5nYWlcIDsKK+e3j+WLoiA8IHNvdXplaVwgOwor5Zue6KiTIDwga2Fpa3VuXCA7CivntZDmiJAgPCBrZXNzZWlcIDsKK+i7iCA8IHlhZ2F0ZVwgOwor57SE5qy+IDwgeWFra2FuXCA7CivoursgPCB1dHN1a2VcIDsKK+i6riA8IHNlZ2FyZVwgOwor5pKk5buDIDwgdGVwcGFpXCA7Civlm6DopbIgPCBpbnNodXVcIDsKK+exs+eyiSA8IGJlaWZ1blwgOwor54Wp5Yq0IDwgaGFucm91XCA7CivloqjliJEgPCBib2trZWlcIDsKK+eEoeWtpiA8IG11Z2FrdVwgOwor5q+b57m75a2QIDwga2VqdXN1XCA7Civmj4/noLQgPCBieW91aGFcIDsKK+aRmOaenCA8IHRla2lrYVwgOwor6Zmw5ZqiIDwgZnVndXJpXCA7CivouLUgPCBrYWthdG9cIDsKK+S4jeWQjOaEjyA8IGZ1ZG91aVwgOwor5ouz6YqDIDwga2VuanV1XCA7Civnr4DphZIgPCBzZXNzaHVcIDsKK+WZtOmWgCA8IGZ1bm1vblwgOwor6KGo6KOPIDwgaHlvdXJpXCA7Civpmo/liIYgPCB6dWlidW5cIDsKK+e1tuWvviA8IHpldHRhaVwgOwor57KX55uuIDwgemFyYW1lXCA7CivmvKLpn7MgPCBrYW4nJ29uXCA7CivmjIfovKogPCB5dWJpd2FcIDsKK+eyieeglSA8IGZ1bnNhaVwgOwor6Zmw5ZSHIDwgaW5zaGluXCA7CivpmqPkurogPCByaW5qaW5cIDsKK+exs+eqgSA8IG3Ek3RvcnVcIDsKK+e0oOaVtSA8IHN1dGVraVwgOwor5aKX5YiKIDwgem91a2FuXCA7CivlopfliIYgPCB6b3VidW5cIDsKK+a9rui3ryA8IHNoaW9qaVwgOwor6KGT6KiIIDwganVra2VpXCA7CivntI3mna8gPCBub3VoYWlcIDsKK+ihhuitsCA8IHNodXVnaVwgOwor54K55pWwIDwgdGVuc3V1XCA7CivntI3mnKwgPCBub3Vob25cIDsKK+aLs+mBkyA8IGtvbmRvdVwgOwor6Zmj5Za2IDwgamluJydlaVwgOwor57SZ5pWwIDwgc2hpc3V1XCA7CivntJvmk74gPCBmdW5qb3VcIDsKK+mWgOeBryA8IG1vbnRvdVwgOwor5oug6YeRIDwga3lva2luXCA7CivploDngasgPCBrYWRvYmlcIDsKK+e1tuWlvSA8IHpla2tvdVwgOwor57Sg5o+PIDwgc29ieW91XCA7CivoorHntJcgPCBmdWt1c2FcIDsKK+maj+S8tCA8IHp1aWhhblwgOwor5o+Q55C0IDwgdGVpa2luXCA7CivoqJjlhaUgPCBraW55dXVcIDsKK+WcqOexsyA8IHphaWJlaVwgOwor6Kaa5oKfIDwga2FrdWdvXCA7Civlopfkv7ggPCB6b3Vob3VcIDsKK+Wil+S+vyA8IHpvdWJpblwgOwor6KiBIDwgZ29uYmVuXCA7CivmvI/pm7sgPCByb3VkZW5cIDsKK+S6iOWCmeenkSA8IHlvYmlrYVwgOwor6KSQ54KtIDwga2F0dGFuXCA7Civmjrvnl5IgPCBzb3V5b3VcIDsKK+eCieajmiA8IHJvZGFuYVwgOwor5aKD5YaFIDwga2VpZGFpXCA7Civmjqjnn6UgPCBzdWljaGlcIDsKK+eBq+awtCA8IGhpbWl6dVwgOwor6KaB5omAIDwgeW91c2hvXCA7CivlnLDnqI4gPCBjaGl6ZWlcIDsKK+e1ueWcsCA8IGtpbnVqaVwgOwor5rGf5oi45YmNIDwgZWRvbWFlXCA7Civnsr7mtrIgPCBzZWlla2lcIDsKK+aOouefpSA8IHRhbmNoaVwgOwor5Zmo6YePIDwga2lyeW91XCA7CivooI0gPCBzYXNvcmlcIDsKK+mVt+a5ryA8IG5hZ2F5dVwgOwor5ry46L+RIDwgemVua2luXCA7CivpmaLlhoUgPCBpbicnbmFpXCA7CivloLTlpJYgPCBqb3VnYWlcIDsKK+Wegua6liA8IHN1aWp1blwgOwor54Sh5ZGKIDwgbXVrb2t1XCA7CivoqJPku6QgPCBrdW5yZWlcIDsKK+e0r+W5tCA8IHJ1aW5lblwgOwor5Zyn56WeIDwgYXNzaGluXCA7CivnsbPnlKMgPCBiZWlzYW5cIDsKK+e1kOWpmiA8IGtla2tvblwgOwor57SN5omAIDwgbmFzc2hvXCA7Civom40gPCBob3RhcnVcIDsKK+aSpOWbniA8IHRla2thaVwgOwor57Gg55uuIDwga2Fnb21lXCA7CivntJTmhJsgPCBqdW4nJ2FpXCA7CivmiYvpvLsgPCB0ZWJhbmFcIDsKK+mVt+azoiA8IGNob3VoYVwgOwor5Z6C5raOIDwgenVpemVuXCA7CivntKLlvJUgPCBzYWt1aW5cIDsKK+e0lOaDhSA8IGp1bmpvdVwgOwor57W25ZOBIDwgemVwcGluXCA7CivmjqLnlaogPCB0YW5iYW5cIDsKK+mWgOatryA8IG1vbnNoaVwgOwor5r+D57S6IDwgbm91a29uXCA7CivntITmiYsgPCB5YWt1dGVcIDsKK+iWuiA8IG5henVuYVwgOwor6KGw6ICXIDwgc3VpbW91XCA7CivnrYbpoK0gPCBoaXR0b3VcIDsKK+aOoeeUqCA8IHNhaXlvdVwgOwor5o2V57ibIDwgaG9iYWt1XCA7CivolaggPCB3YXJhYmlcIDsKK+eyieeCrSA8IGZ1bnRhblwgOwor6Zmq5LmXIDwgYmFpam91XCA7CivolLYgPCBzb25va29cIDsKK+Wcp+edgCA8IGF0c3VnaVwgOwor5Z6j5qC5IDwga2FraW5lXCA7Civok6wgPCB5b21vZ2lcIDsKK+ino+WJliA8IGthaWJvdVwgOwor57Wx5ZCIIDwgdG91Z291XCA7CivlnJ/nn7MgPCBkb3Nla2lcIDsKK+iShSA8IHN1a3Vtb1wgOwor5Zyw55WqIDwgY2hpYmFuXCA7CivnhJrliJEgPCBmdW5rZWlcIDsKK+e0sOWtlyA8IGhvc29qaVwgOwor54Sh5YSfIDwgbXVzaG91XCA7CivntYLlpJwgPCBzaHV1eWFcIDsKK+iogOS4iiA8IGdvbmpvdVwgOwor5L+d6K235Yy6IDwgaG9nb2t1XCA7CivplpPmnI0gPCBhaWZ1a3VcIDsKK+a1heiMheeUnyA8IGFzYWppdVwgOwor54Sh5YK3IDwgbXVraXp1XCA7CivmkqTljrsgPCB0ZWtreW9cIDsKK+iMuCA8IGtpbm9rb1wgOwor5Zug57iBIDwgaW4nJ25lblwgOwor5ZiG6aGYIDwgdGFuZ2FuXCA7CivmvrHnsokgPCBkZW5wdW5cIDsKK+imgeWusyA8IHlvdWdhaVwgOwor57SZ5bGLIDwga2FtaXlhXCA7CivplpPmlbAgPCBtYWthenVcIDsKK+WbveemgSA8IGtva2tpblwgOwor5oy/57W1IDwgc2FzaGllXCA7CivlnLDnjYQgPCBqaWdva3VcIDsKK+WegualiiA8IHN1aXlvdVwgOwor5Zyf55SjIDwgbWl5YWdlXCA7Civop6PkvZMgPCBrYWl0YWlcIDsKK+aOpeeCuSA8IHNldHRlblwgOwor5Zu956SOIDwga29rdXNvXCA7CivohqAgPCBuaWthd2FcIDsKK+err+m6lyA8IHRhbnJlaVwgOwor6KGA6Ia/IDwgY2hpdW1pXCA7Civop6Pku7sgPCBrYWluaW5cIDsKK+e0meWtkCA8IGthbWlrb1wgOwor54Kt5bGkIDwgdGFuc291XCA7CivmkqTlhbUgPCB0ZXBwZWlcIDsKK+e0r+WilyA8IHJ1aXpvdVwgOwor6KGM6ICFIDwgZ3lvdWphXCA7Civng4jlo6sgPCByZXNzaGlcIDsKK+a8q+irhyA8IG1hbmRhblwgOwor5omL6aeSIDwgdGVnb21hXCA7CivloIXloYEgPCBrZW5ydWlcIDsKK+WutuWFt+WxiyA8IGthZ3V5YVwgOwor5omL6aaWIDwgdGVrdWJpXCA7CivlsI/msJflkbMgPCBrb2tpbWlcIDsKK+eCieW/gyA8IHJvc2hpblwgOwor562G6YuSIDwgaGlwcG91XCA7CivloILloIIgPCBkb3Vkb3VcIDsKK+imquWSjCA8IHNoaW53YVwgOwor5Z6C5pyoIDwgdGFydWtpXCA7CivloLTlhoUgPCBqb3VuYWlcIDsKK+aMieiFuSA8IGFucHVrdVwgOwor5Zyw54K5IDwgY2hpdGVuXCA7Civpl4flsYsgPCB5YW1peWFcIDsKK+e1tuS4liA8IHplc3NlaVwgOwor57WE5ZCIIDwga3VtaWFpXCA7CivmiYvpoIMgPCB0ZWdvcm9cIDsKK+imhuWcnyA8IGZ1a3Vkb1wgOwor5Z+55ZywIDwgYmFpY2hpXCA7Civlm57npLwgPCBrYWlyZWlcIDsKK+aJgOmhmCA8IHNob2dhblwgOwor57WQ5YWaIDwga2V0dG91XCA7CivntJTlopcgPCBqdW56b3VcIDsKK+e4hSA8IG9kb3NoaVwgOwor6KO95p2QIDwgc2VpemFpXCA7Civng5nljbAgPCByYWt1aW5cIDsKK+aJi+mamyA8IHRlZ2l3YVwgOwor5omL6ZqZIDwgdGVzdWtpXCA7CivopqrliIYgPCBveWFidW5cIDsKK+etiei+uiA8IHRvdWhlblwgOwor54K55ZyoIDwgdGVuemFpXCA7CivntabkuI4gPCBreXV1eW9cIDsKK+eCreWhtSA8IHRhbmppblwgOwor57KX5pyNIDwgc29mdWt1XCA7Civln5/lpJYgPCBpa2lnYWlcIDsKK+e0sOWQmyA8IHNhaWt1blwgOwor5aSp6JqV57O4IDwgdGVndXN1XCA7Civns5IgPCBob3NoaWlcIDsKK+aLmeiRlyA8IHNldGNob1wgOwor5omL6ZW3IDwgdGVuYWdhXCA7Civpl4flpJwgPCB5YW1peW9cIDsKK+WbveeOiyA8IGtva3VvdVwgOwor57KJ5pysIDwgZnVucG9uXCA7CivlnI/ngrkgPCBrZW50ZW5cIDsKK+eBq+W6iiA8IGhpZG9rb1wgOwor6KGA566hIDwga2Vra2FuXCA7CivntYzkvJ0gPCBrZWlkZW5cIDsKK+ihqOeariA8IGh5b3VoaVwgOwor56yCIDwgdXRzdWJvXCA7CivmjpLmsLQgPCBoYWlzdWlcIDsKK+WbveeItiA8IGtva3VmdVwgOwor57Sw5YiGIDwgc2FpYnVuXCA7Civnq4ggPCBrYW1hZG9cIDsKK+aMgee2miA8IGppem9rdVwgOwor5o+h5omLIDwgYWt1c2h1XCA7CivmiYvpjYsgPCB0ZW5hYmVcIDsKK+ernOmmrCA8IHJ5dXVtZVwgOwor56qu6bygIDwga3l1dXNvXCA7Civln47loYEgPCBqb3VydWlcIDsKK+a7kei7iiA8IGthc3NoYVwgOwor56ul6aGUIDwgZG91Z2FuXCA7Civnp6QgPCBoYWthcmlcIDsKK+mWgOW8nyA8IG1vbnRlaVwgOwor5oim6ZuyIDwgc2VuJyd1blwgOwor56aKIDwgbWlzb2dpXCA7CivmiYvpiaQgPCB0ZWthZ2lcIDsKK+a5vumgrSA8IHdhbnRvdVwgOwor57SN5ZOBIDwgbm91aGluXCA7CivmkI3lrrMgPCBzb25nYWlcIDsKK+exs+adkCA8IGJlaXphaVwgOwor55Ww5paH5YyWIDwgaWJ1bmthXCA7CivmuoDpnaIgPCBtYW5tZW5cIDsKK+ernOmgrSA8IHJ5dXV6dVwgOwor5Zar6aOvIDwga2lwcGFuXCA7CivntKLlhbcgPCBzYWt1Z3VcIDsKK+ijj+advyA8IHVyYWl0YVwgOwor5omL6YWMIDwgdGVqYWt1XCA7Civmi5nogIUgPCBzZXNzaGFcIDsKK+egpiA8IHRvcmlkZVwgOwor6ZW35bqnIDwgY2hvdXphXCA7CivplonlsbEgPCBoZWl6YW5cIDsKK+WcsOaknCA8IGNoaWtlblwgOwor6ZaL5bCBIDwga2FpZnV1XCA7Civngq3lirQgPCB0YW5yb3VcIDsKK+e0lOWIhiA8IGp1bmJ1blwgOwor5Z2m5oeQIDwgdGFua2FpXCA7CivmuoDplosgPCBtYW5rYWlcIDsKK+e0r+S5lyA8IHJ1aWpvdVwgOwor5o6o5patIDwgc3VpZGFuXCA7CivmibnoqZUgPCBoaWh5b3VcIDsKK+aOiOalrSA8IGp1Z3lvdVwgOwor5L2N55u45beuIDwgaXNvdXNhXCA7CivntK/kuJYgPCBydWlzZWlcIDsKK+ihgOebuCA8IGtlc3NvdVwgOwor6KSH5bqnIDwgZnVrdXphXCA7Civmv4Pmt6EgPCBub3V0YW5cIDsKK+aJi+i7vSA8IHRlZ2FydVwgOwor5Zyo5qChIDwgemFpa291XCA7CivopKXlqaYgPCBqb2t1ZnVcIDsKK+mVt+WxiyA8IG5hZ2F5YVwgOwor6KGA55ewIDwga2V0dGFuXCA7Civplovlp4sgPCBrYWlzaGlcIDsKK+Wfn+WGhSA8IGlraW5haVwgOwor6ZW35a+/IDwgY2hvdWp1XCA7CivlnKjmnaUgPCB6YWlyYWlcIDsKK+ijgeaWrSA8IHNhaWRhblwgOwor55O8IDwgc2FyYWtlXCA7CivmipzokIMgPCBiYXNzdWlcIDsKK+e0m+S6iSA8IGZ1bnNvdVwgOwor5omL6LazIDwgdGVhc2hpXCA7CivlnKfmnI0gPCBhcHB1a3VcIDsKK+e0m+S5sSA8IGZ1bnJhblwgOwor5r2w55iNIDwga2FpeW91XCA7CivmjqjmjJkgPCBzdWlreW9cIDsKK+WbveavjSA8IGtva3Vib1wgOwor57KS5bqmIDwgcnl1dWRvXCA7CivlnLDmlocgPCBjaGltb25cIDsKK+iWlOiWh+WckiA8IGJhcmFlblwgOwor5ri46a2aIDwgeXV1Z3lvXCA7CivlnJ/mnKggPCBkb2Jva3VcIDsKK+exs+aHhyA8IGJlaWtvblwgOwor6Zaj5ZOhIDwga2FrdWluXCA7CivploDlpJYgPCBtb25nYWlcIDsKK+aNuuafkyA8IG5hc3NlblwgOwor5Z+O5YW1IDwgam91aGVpXCA7CivmvIHoiLkgPCBneW9zZW5cIDsKK+mBjua4oeacnyA8IGthdG9raVwgOwor6ZeH5YCkIDwgeWFtaW5lXCA7Civni7ggPCB0YW51a2lcIDsKK+aMgeeXhSA8IGppYnlvdVwgOwor6ZW35aWzIDwgY2hvdWpvXCA7Civlm73mqKkgPCBrb2trZW5cIDsKK+e0iuS5sSA8IGJ1bnJhblwgOwor5Zyf5pa5IDwgZG9rYXRhXCA7CivmiZPoqLogPCBkYXNoaW5cIDsKK+Wcp+aQviA8IGFzc2FrdVwgOwor5ryU57m5IDwgZW4nJ2VraVwgOwor6KOc5by3IDwgaG9reW91XCA7CivploDlnLAgPCBtb25jaGlcIDsKK+eri+mMkCA8IHJpc3N1aVwgOwor5ZaE6ZqjIDwgemVucmluXCA7CivmiKbou4ogPCBzZW5zaGFcIDsKK+aJi+iosSA8IHRlbW90b1wgOwor6KGw5q6LIDwgc3VpemFuXCA7CivnsonlsYsgPCBrb25heWFcIDsKK+aJgOirliA8IHNob3JvblwgOwor5Zuj5qySIDwgZGFucmFuXCA7CivmuoDovIkgPCBtYW5zYWlcIDsKK+WxheWgtOaJgCA8IGliYXNob1wgOwor5rqA6LuKIDwgbWFuc2hhXCA7CivlnKjmiYAgPCB6YWlzaG9cIDsKK+exs+W4nSA8IGJlaXRlaVwgOwor5Zad6YeHIDwga2Fzc2FpXCA7Civom67poqggPCBiYW5wdXVcIDsKK+aHh+mhmCA8IGtvbmdhblwgOwor562G6Ie0IDwgaGl0Y2hpXCA7Civlm7Pmn4QgPCB6dWdhcmFcIDsKK+aIiui+sCA8IGJvc2hpblwgOwor5Zu95pivIDwga29rdXplXCA7Civns57kvr8gPCBmdW5iZW5cIDsKK+mBleWSjOaEnyA8IGl3YWthblwgOwor5r2u54CsIDwgc2hpb3NlXCA7Civnq6Xosp4gPCBkb3V0ZWlcIDsKK+eqgemiqCA8IHRvcHB1dVwgOwor54Gr5YWIIDwgaG9zYWtpXCA7CivnsbPlsYsgPCBrb21leWFcIDsKK+eBq+WFgyA8IGhpbW90b1wgOwor5Zyw5b2iIDwgY2hpa2VpXCA7CivmuJogPCBuYWdpc2FcIDsKK+eyvuWLpCA8IHNlaWtpblwgOwor5oqc57O4IDwgYmFzc2hpXCA7CivnqbTppqwgPCBhbmF1bWFcIDsKK+eBq+WCtyA8IHlha2Vkb1wgOwor5ruF6I+MIDwgbWVra2luXCA7CivnlJ/olY7puqYgPCBraXNvYmFcIDsKK+ethuiAlSA8IGhpa2tvdVwgOwor6Y6u6K23IDwgY2hpbmdvXCA7Civom67pmrcgPCBiYW5yZWlcIDsKK+a2jiA8IHlvZGFyZVwgOwor562G6ICFIDwgaGlzc2hhXCA7CivlnKjlvbkgPCB6YWlla2lcIDsKK+WcsOW5syA8IGNoaWhlaVwgOwor5o6o5a6aIDwgc3VpdGVpXCA7CivllY/poYwgPCBtb25kYWlcIDsKK+mWgOWJjSA8IG1vbnplblwgOwor5Zub5qGBIDwgeW9rZXRhXCA7CivooYzmroogPCBneW91am9cIDsKK+epuumfsyA8IHNvcmFuZVwgOwor5Zyn5bu2IDwgYXRzdWVuXCA7CivploDlh7ogPCBrYWRvZGVcIDsKK+aOoeWvuCA8IHNhaXN1blwgOwor5om257+8IDwgZnV5b2t1XCA7CivmsYAgPCBtaWdpd2FcIDsKK+awtSA8IHNhbnp1aVwgOwor57Gg5bGFIDwgcm91a3lvXCA7Civmh7jou40gPCBrZW5ndW5cIDsKK+epuumbuyA8IGt1dWRlblwgOwor6KO95ZOBIDwgc2VpaGluXCA7CivnqbrpmpsgPCBrdXVzYWlcIDsKK+mNm+mMrCA8IHRhbnJlblwgOwor5Zu95oqAIDwga29rdWdpXCA7CivpjLLpn7MgPCByb2t1b25cIDsKK+aJgOiUtSA8IHNob3pvdVwgOwor6ZaL5LyaIDwga2Fpa2FpXCA7CivmvZ/muZYgPCBzZWtpa29cIDsKK+S4jeawl+WRsyA8IGJ1a2ltaVwgOwor5ZaJ6LyqIDwgbm9kb3dhXCA7CivmuIvpnaIgPCBqdXVtZW5cIDsKK+mWieS8miA8IGhlaWthaVwgOwor562G57SZIDwgaGlzc2hpXCA7CivnqbrplqggPCBrdXVrZWlcIDsKK+a8lOebriA8IGVubW9rdVwgOwor56m66ZaTIDwga3V1a2FuXCA7CivmqLUgPCBraWtvcmlcIDsKK+aoriA8IGhva3Vzb1wgOwor5omN6Iq4IDwgc2FpZ2VpXCA7CivopIfliKkgPCBmdWt1cmlcIDsKK+ijj+WjsCA8IHVyYWdvZVwgOwor5rue57SNIDwgdGFpbm91XCA7Civmi6DngrkgPCBreW90ZW5cIDsKK+aJi+iKuCA8IHNodWdlaVwgOwor5ris6YmbIDwgc29rdWVuXCA7CivlnKjlrpggPCB6YWlrYW5cIDsKK+WZtOeFmSA8IGZ1bicnZW5cIDsKK+allCA8IGt1c2FiaVwgOwor5ryC56CCIDwgaHlvdXNhXCA7CivploDkurogPCBtb25qaW5cIDsKK+akqiA8IGt1bnVnaVwgOwor562G566XIDwgaGlzc2FuXCA7Civlm73mgakgPCBrb2t1b25cIDsKK+aJjeiFlSA8IHNhaXdhblwgOwor5Zuw5oaKIDwga29ucGFpXCA7Civnr4DmsLQgPCBzZXNzdWlcIDsKK+ethuerryA8IGhpdHRhblwgOwor5omL6IWVIDwgc2h1d2FuXCA7CivmvZzmsLQgPCBzZW5zdWlcIDsKK+a/gOaAkiA8IGdla2lkb1wgOwor5omN6IO9IDwgc2Fpbm91XCA7CivpjZvpgKAgPCB0YW56b3VcIDsKK+agniA8IHNoaW9yaVwgOwor5Zyw5aSJIDwgY2hpaGVuXCA7CivooYDmoJMgPCBrZXNzZW5cIDsKK+aJi+iBtyA8IHRlam9rdVwgOwor56qT6L66IDwgbWFkb2JlXCA7CivooZPmlbAgPCBqdXNzdXVcIDsKK+adjiA8IHN1bW9tb1wgOwor5r+B5bqmIDwgZGFrdWRvXCA7CivlnKjlpKkgPCB6YWl0ZW5cIDsKK+WcqOWkliA8IHphaWdhaVwgOwor6KGA5pu4IDwga2Vzc2hvXCA7CivlnLDln58gPCBjaGlpa2lcIDsKK+aapiA8IGtveW9taVwgOwor5rib6YWNIDwgZ2VucGFpXCA7CivnqY3pm7IgPCBzZWtpdW5cIDsKK+aYtCA8IHN1YmFydVwgOwor5rqA6JKZIDwgbWFubW91XCA7CivlvqHmrbPmmq4gPCBvc2VpYm9cIDsKK+a8uOa4myA8IHplbmdlblwgOwor5ruR56m6IDwga2Fra3V1XCA7Civmt7HplpMgPCBmdWthbWFcIDsKK+ihgOaWkSA8IGtlcHBhblwgOwor56ia6bCkIDwgd2FyYXNhXCA7CivmuJvpgIAgPCBnZW50YWlcIDsKK+err+iJhyA8IHRhbnRlaVwgOwor5o6l5ZC7IDwgc2VwcHVuXCA7Civmi5jms6UgPCBrb3VkZWlcIDsKK+eti+ebriA8IHN1amltZVwgOwor56ia6a6OIDwgY2hpYXl1XCA7Civkuojlgpnlk6EgPCB5b2JpaW5cIDsKK+icpeictCA8IHRva2FnZVwgOwor5oud5q6/IDwgaGFpZGVuXCA7CivnqJrprZogPCBjaGlneW9cIDsKK+aYoOeUu+WMliA8IGVpZ2FrYVwgOwor5Zm05rC0IDwgZnVuc3VpXCA7CivmiYvntJkgPCB0ZWdhbWlcIDsKK+evhuabuCA8IHRlbnNob1wgOwor56iu6aGeIDwgc2h1cnVpXCA7CivmuIXphZIgPCBzZWlzaHVcIDsKK+eyieS9kyA8IGZ1bnRhaVwgOwor5ZWG6YGLIDwgc2hvdXVuXCA7Civnqbrou6IgPCBrdXV0ZW5cIDsKK+asp+WNsOiqniA8IG91aW5nb1wgOwor5Z2H5YiGIDwga2luYnVuXCA7Civmu4Xnp4EgPCBtZXNzaGlcIDsKK+epuui7jSA8IGt1dWd1blwgOwor56m66LuKIDwga3V1c2hhXCA7CivnsovkurogPCBzdWlqaW5cIDsKK+Wbs+ahiOWutiA8IHp1YW5rYVwgOwor5omL57GgIDwgdGVrYWdvXCA7CivmuoDohZQgPCBtYW5rb3VcIDsKK+aKq+eAnSA8IGhpcmVraVwgOwor5omL566xIDwgdGViYWtvXCA7CivmiYvnrqEgPCB0ZWt1ZGFcIDsKK+aJi+etiyA8IHRlc3VqaVwgOwor5omL562IIDwgdGVoYXp1XCA7CivmjJnmiYsgPCBreW9zaHVcIDsKK+aJliA8IGhhbWVydVwgOwor56qB6LKrIDwgdG9ra2FuXCA7Civnq7nnuIEgPCB0YWtlZW5cIDsKK+aOkuWNtSA8IGhhaXJhblwgOwor5rmv6IqxIDwgeXViYW5hXCA7Civmh4foq4sgPCBrb25zZWlcIDsKK+aHh+irhyA8IGtvbmRhblwgOwor5o2o5aC0IDwgc3V0ZWJhXCA7Civmua/oiLkgPCB5dWJ1bmVcIDsKK+ihhuaEmiA8IHNodXVndVwgOwor5oaWIDwgbmFtYWppXCA7Civmt7Hpg6ggPCBzaGluYnVcIDsKK+aIuOexjSA8IGtvc2VraVwgOwor56+A5pONIDwgc2Vzc291XCA7CivooqvlkYogPCBoaWtva3VcIDsKK+a7heebuCA8IG1lc3NvdVwgOwor56uv57eaIDwgdGFuc2VuXCA7Civnq6/nt5IgPCB0YW5jaG9cIDsKK+WcqOWLpCA8IHphaWtpblwgOwor5r2U5paOIDwga2Vzc2FpXCA7CivlnKfli50gPCBhc3Nob3VcIDsKK+a1t+m8oCA8IG5hbWFrb1wgOwor5o6l5Ly0IDwgc2VwcGFuXCA7Civnq7nnsIAgPCB0YWtlc3VcIDsKK+WcsOWFgyA8IGppbW90b1wgOwor5ray6Z2iIDwgZWtpbWVuXCA7Civom4fotrMgPCBkYXNva3VcIDsKK+WbveWcnyA8IGtva3Vkb1wgOwor5b+c5o+05q2MIDwgb3VlbmthXCA7Civnqbroq5YgPCBrdXVyb25cIDsKK+epuuirhyA8IGt1dWRhblwgOwor5b2gIDwga3V3YWt1XCA7CivmvIHmuK8gPCBneW9rb3VcIDsKK+aEm+mzpSA8IGFpY2hvdVwgOwor5buTIDwga3VydXdhXCA7CivooLHmg5EgPCBrb3dha3VcIDsKK+aOkuS+vyA8IGhhaWJlblwgOwor5Zu95Za2IDwga29rdWVpXCA7CivluZ8gPCBub2JvcmlcIDsKK+W5iSA8IHRhenVuYVwgOwor5ouu5o2uIDwga2lra3lvXCA7CivmjK/lrZAgPCBmdXJpa29cIDsKK+WZuOaVsCA8IHRvbnN1dVwgOwor5ryB5rOVIDwgZ3lvaG91XCA7Civlm6PloYogPCBkYW5rYWlcIDsKK+WcsOS7oyA8IGNoaWRhaVwgOwor5Zar57eKIDwga2lra2luXCA7CivmiYvnmZYgPCB0ZWt1c2VcIDsKK+mMr+iqpCA8IHNha3Vnb1wgOwor56iO6ZaiIDwgemVpa2FuXCA7CivltZAgPCBhcmFzaGlcIDsKK+a8geawkSA8IGd5b21pblwgOwor5Zyo5L2PIDwgemFpanV1XCA7CivomorpiaQgPCBrYWJhcmlcIDsKK+WcqOS7uyA8IHphaW5pblwgOwor5r2u5bmyIDwgc2hpb2hpXCA7CivmtbfprZogPCBrYWlneW9cIDsKK+eul+aVsCA8IHNhbnN1dVwgOwor5Zyf5L+1IDwgZG9oeW91XCA7CivlnJ/kv5cgPCBkb3pva3VcIDsKK+aJk+eQgyA8IGRha3l1dVwgOwor6by76Y+hIDwgYmlreW91XCA7CivmjojkubMgPCBqdW55dXVcIDsKK+a1t+mpoiA8IGFzaGlrYVwgOwor5ryr5paHIDwgbWFuYnVuXCA7CivooajlnJ8gPCBoeW91ZG9cIDsKK+WbveWLmSA8IGtva3VtdVwgOwor5oiR562JIDwgd2FyZXJhXCA7CivmjL3lm54gPCBiYW5rYWlcIDsKK+epuuiZmiA8IGt1dWt5b1wgOwor5Zyf5LitIDwgZG9jaHV1XCA7CivmiYDnlKMgPCBzaG9zYW5cIDsKK+WrnyA8IGppeXVrdVwgOwor6J6N54K5IDwgeXV1dGVuXCA7CivmvKLmlocgPCBrYW5idW5cIDsKK+aJi+eOiSA8IHRlZGFtYVwgOwor5Zaq56ugIDwgbW9zaG91XCA7Civlm6Plk6EgPCBkYW4nJ2luXCA7CivmiYvni60gPCB0ZXplbWFcIDsKK+WbveWFiSA8IGtva2tvdVwgOwor6YqA6bGXIDwgZ2lucmluXCA7CivpmL/omK3pmYAgPCBvcmFuZGFcIDsKK+WVk+iSmSA8IGtlaW1vdVwgOwor6KGG5aSaIDwgc2h1dXRhXCA7CivnqI7ph5EgPCB6ZWlraW5cIDsKK+m7kum1kCA8IGt1cm9qaVwgOwor6KCP5bqnIDwga2FuaXphXCA7CivmvIHmnZEgPCBneW9zb25cIDsKK+a1t+mboyA8IGthaW5hblwgOwor56m66I23IDwga2FyYW5pXCA7Civlm5vljYMgPCB5b25zZW5cIDsKK+Wbm+WNgSA8IHlvbmp1dVwgOwor5Zu95LyaIDwga29ra2FpXCA7CivlnLcgPCBha3V0c3VcIDsKK+Wbs+S9kyA8IHp1dXRhaVwgOwor566x5bGLIDwgaGFrb3lhXCA7Civmu4Xms5UgPCBtZXBwb3VcIDsKK+aKteaKlyA8IHRlaWtvdVwgOwor5r+B5LiWIDwgZGFrdXNlXCA7CivnhKHmhYjmgrIgPCBtdWppaGlcIDsKK+m9suidlSA8IHVzaG9rdVwgOwor6KGo5YW3IDwgaHlvdWd1XCA7CivmvIHmkoggPCBneW9yb3VcIDsKK+a4m+iAlyA8IGdlbm1vdVwgOwor6KGM5Y+4IDwgZ3lvdWppXCA7Civlj5foqbHlmaggPCBqdXdha2lcIDsKK+eqkue0oCA8IGNoaXNzb1wgOwor6Yut6KeSIDwgZWlrYWt1XCA7Civnp5jpjLIgPCBoaXJva3VcIDsKK+e/u+i7iumtmiA8IG1hbmJvdVwgOwor5LiN5Ye65p2lIDwgZnVkZWtpXCA7CivoobDkuqEgPCBzdWlib3VcIDsKK+ernOeOiyA8IHJ5dXVvdVwgOwor5Zm05bCEIDwgZnVuc2hhXCA7CivlkI4gPCBraXNha2lcIDsKK+WVj+e9qiA8IG1vbnphaVwgOwor6ZuR6a2a5a+dIDwgemFrb25lXCA7CivljqAgPCBrYXdheWFcIDsKK+ibh+iFuSA8IGphYmFyYVwgOwor5LyK5aSq5YipIDwgaXRhcmlpXCA7CivmiYvmsLQgPCB0ZW1penVcIDsKK+aEm+mDtyA8IGFpa3lvdVwgOwor6aWC6aOp57KJIDwgdWRvbmtvXCA7CivmiYvmr6wgPCB0ZW1hcmlcIDsKK+aKmOaKmCA8IG9yaW9yaVwgOwor5rmv546JIDwgeXVkYW1hXCA7CivmjJnli5UgPCBreW9kb3VcIDsKK+a1gemfsyA8IHJ5dXVvblwgOwor5omL5q61IDwgc2h1ZGFuXCA7CivmtYHpnLIgPCByeXV1cm9cIDsKK+aKiuaNiSA8IGhhc29rdVwgOwor5rWB6ZuiIDwgcnl1dXJpXCA7CivpvKDos4ogPCBzb3pva3VcIDsKK+eUmOa1t+iAgSA8IGFtYWViaVwgOwor5oyZ5YW1IDwga3lvaGVpXCA7CivmuKnnqoEgPCBvbmRvcnVcIDsKK+aJi+apnyA8IHRlYmF0YVwgOwor5YWcIDwga2FidXRvXCA7Civmi7fllY8gPCBnb3Vtb25cIDsKK+iejeaclyA8IHl1dXJvdVwgOwor6bq66aGeIDwgbWVucnVpXCA7CivmuJvnrpcgPCBnZW56YW5cIDsKK+aJi+alrSA8IHRld2F6YVwgOwor5ry45aKXIDwgemVuem91XCA7Civmtbfou40gPCBrYWlndW5cIDsKK+a2iOiyuyA8IHNob3VoaVwgOwor5rWq6YCfIDwgbmFuaXdhXCA7CivpioDpibEgPCBnaW5rb3VcIDsKK+WVj+etlCA8IG1vbmRvdVwgOwor5ZC56bO0IDwgc3VpbWVpXCA7CivnrYbmiY0gPCBoaXNzYWlcIDsKK+mKgOmItCA8IGdpbnJlaVwgOwor5riF57SUIDwgc2VpanVuXCA7CivnrYbmiKYgPCBoaXNzZW5cIDsKK+Wwj+mmrOm5vyA8IGtvYmFrYVwgOwor6Jma6KqVIDwga3lvdGFuXCA7Civmt4voj4wgPCByaW5raW5cIDsKK+a4m+eojiA8IGdlbnplaVwgOwor562W5b+cIDwgc2FrdW91XCA7CivnqbrnqbogPCBrdXVrdXVcIDsKK+ertuatqSA8IGt5b3Vob1wgOwor5rip55+zIDwgb25qYWt1XCA7CivomZroqIAgPCBreW9nZW5cIDsKK+aJi+afhCA8IHRlZ2FyYVwgOwor5omL5p63IDwgdGVrYXNlXCA7Civmt7fnt5ogPCBrb25zZW5cIDsKK+S7hyA8IGthdGFraVwgOwor562G5oSPIDwgaGl0c3VpXCA7CivmiYvmnK0gPCB0ZWZ1ZGFcIDsKK+W+oeiPk+WtkCA8IG9rYXNoaVwgOwor562U5byBIDwgdG91YmVuXCA7CivmtJfpoZQgPCBzZW5nYW5cIDsKK+a1nOi+uiA8IGhhbWFiZVwgOwor6buS6YmbIDwga29rdWVuXCA7CivmuoDmsLQgPCBtYW5zdWlcIDsKK+aIuOajmiA8IHRvZGFuYVwgOwor6byO6KuHIDwgdGVpZGFuXCA7Civmub/msJcgPCBzaGlra2VcIDsKK+aIkea1gSA8IGdhcnl1dVwgOwor5oKq6aKoIDwgYWt1ZnV1XCA7CivmtJfpnaIgPCBzZW5tZW5cIDsKK+a0i+miqCA8IHlvdWZ1dVwgOwor56m656CyIDwga3V1aG91XCA7CivmvZzlg48gPCBzZW56b3VcIDsKK+aEm+iqrSA8IGFpZG9rdVwgOwor5omA5pybIDwgc2hvbW91XCA7CivmiYDmnIkgPCBzaG95dXVcIDsKK+m7kumFkiA8IGt1cm9raVwgOwor5omT5pKyIDwgZGFib2t1XCA7CivnpoXploAgPCB6ZW5tb25cIDsKK+aJk+aSgyA8IGRhZ2VraVwgOwor5LiJ55+l5ZyfIDwgdGF0YWtpXCA7CivmtJ7ploAgPCBkb3Vtb25cIDsKK+WQuOmjsiA8IGt5dXVpblwgOwor56m655uuIDwgc29yYW1lXCA7Civmua/msLQgPCB5dW1penVcIDsKK+aCqumciiA8IGFrdXJlaVwgOwor5omL5pG6IDwgdGVzdXJpXCA7Civnr4DkvJogPCBzZWNoaWVcIDsKK+aIkeassiA8IGdheW9rdVwgOwor5rmv5q6/IDwgeXVkb25vXCA7Civnq6/moKogPCBoYWthYnVcIDsKK+a5p+awtCA8IHl1dXN1aVwgOwor5Za25qWtIDwgZWlneW91XCA7CivmuJvnlKMgPCBnZW5zYW5cIDsKK+izk+S9jeiqniA8IGhpbmlnb1wgOwor5omL5outIDwgdGVmdWtpXCA7CivlkLnpm6ogPCBmdWJ1a2lcIDsKK+a6uuaEmyA8IGRla2lhaVwgOwor562L5a2QIDwgc3VqaWtvXCA7CivpiYTpi7wgPCB0ZWtrb3VcIDsKK+aCjOmghiA8IHRlaWp1blwgOwor5rSX6YysIDwgc2VucmVuXCA7CivmuoDmna8gPCBtYW5wYWlcIDsKK+iWrOmkjCA8IHlha3VqaVwgOwor56aP6YGLIDwgZnVrdXVuXCA7CivmkanojqvmnrMgPCBtYW1ha2lcIDsKK+iWq+miqCA8IGt1bnB1dVwgOwor6Yyy55S7IDwgcm9rdWdhXCA7CivmvIblmaggPCBzaGlra2lcIDsKK+a1hOiyoSA8IGpvdXphaVwgOwor6JmO6JC9IDwgbW9nYXJpXCA7CivmuKnngbggPCBvbmt5dXVcIDsKK+aCqumKrSA8IGFrdXNlblwgOwor5ZCN6aaZIDwgbWVpa291XCA7CivlkozoqLMgPCB3YXlha3VcIDsKK+a2meiFuiA8IHJ1aXNlblwgOwor5oqx5Y21IDwgaG91cmFuXCA7CivmiZXlupUgPCBmdXR0ZWlcIDsKK+a0i+mKgCA8IHlvdWdpblwgOwor6Y6u5pKrIDwgY2hpbmJ1XCA7CivllqrmnI0gPCBtb2Z1a3VcIDsKK+WSjOimqiA8IHdhc2hpblwgOwor5omL5b25IDwgdGV5YWt1XCA7CivpioDoo70gPCBnaW5zZWlcIDsKK+m7meiosSA8IG1va2t5b1wgOwor5omL5b2iIDwgdGVnYXRhXCA7CivmiZPluK0gPCBkYXNla2lcIDsKK+iWq+mZtiA8IGt1bnRvdVwgOwor5omL5byVIDwgdGViaWtpXCA7CivmuL7msowgPCBrb250b25cIDsKK+a8lOWKhyA8IGVuZ2VraVwgOwor56aB6Ly4IDwga2luJyd5dVwgOwor5rWu6JaEIDwgZnVoYWt1XCA7CivlkIzpoZ4gPCBkb3VydWlcIDsKK+a0i+mFkiA8IHlvdXNodVwgOwor5omL5bizIDwgdGVjaG91XCA7CivmiJDmlZcgPCBzZWliYWlcIDsKK+iZmuiBniA8IGt5b2J1blwgOwor6YiN6ZaTIDwgbm9yb21hXCA7Civph53prZogPCBoYXJpeW9cIDsKK+azoumWkyA8IG5hbWltYVwgOwor6byT6IacIDwga29tYWt1XCA7CivmhqvnhLYgPCBiaW56ZW5cIDsKK+aCqumBkyA8IGFrdWRvdVwgOwor5rOi6ZW3IDwgaGFjaG91XCA7CivpvJPohbkgPCBrb2Z1a3VcIDsKK+azlemboyA8IGhvdW5hblwgOwor5rK46aiwIDwgZnV0dG91XCA7CivnrKDlrZAgPCBrYXNhZ29cIDsKK+a0u+ioiCA8IGtha2tlaVwgOwor5rue5ZyoIDwgdGFpemFpXCA7CivmuKHmuIkgPCB0b3Nob3VcIDsKK+mHkemtmiA8IGtpbmd5b1wgOwor6YqY6Iy2IDwgbWVpY2hhXCA7Civnp4HolLUgPCBzaGl6b3VcIDsKK+WRs+immiA8IG1pa2FrdVwgOwor6b6V54GvIDwgZ2FuZG91XCA7Civpu7Toj4wgPCBiYWlraW5cIDsKK+aKnOWJoyA8IGJha2tlblwgOwor5ZaE5qC5IDwgemVua29uXCA7CivlkI3ploAgPCBtZWltb25cIDsKK+epuua4ryA8IGt1dWtvdVwgOwor6YyY54q2IDwgc3Vpam91XCA7CivmurblqpIgPCB5b3ViYWlcIDsKK+ayv+mdqSA8IGVua2FrdVwgOwor5bCP55m+5ZCIIDwgc2F5dXJpXCA7Civnq6/lvbkgPCBoYXlha3VcIDsKK+WRiei2iiA8IGdvZXRzdVwgOwor5re354S2IDwga29uemVuXCA7CivnrYvlkIggPCBzdWppYWlcIDsKK+a4m+azlSA8IGdlbnBvdVwgOwor56m65rSeIDwga3V1ZG91XCA7CivmupDlubMgPCBnZW5wZWlcIDsKK+WQjemRkSA8IG1laWthblwgOwor6YeO6aeSIDwgbm9nb21hXCA7Civmta7ohasgPCBtdWt1bWlcIDsKK+m6u+ijjyA8IGFzYXVyYVwgOwor56iu55eYIDwgc2h1dG91XCA7CivpiI3ph40gPCBkb25qdXVcIDsKK+aJgOWumiA8IHNob3RlaVwgOwor5raZ566hIDwgcnVpa2FuXCA7CivmiYDlrZggPCBzaG96b25cIDsKK+azpemFlCA8IGRlaXN1aVwgOwor5rib5q66IDwgZ2Vuc2FpXCA7CivmuJvmrrUgPCBnZW50YW5cIDsKK+mOruW6pyA8IGNoaW56YVwgOwor5ZCI6Y21IDwgYWlrYWdpXCA7Civnq4vmhrIgPCByaWtrZW5cIDsKK+ekvOmHkSA8IHJlaWtpblwgOwor5rqA5bmyIDwgbWFua2FuXCA7Civnpr3oiI4gPCBraW5zaGFcIDsKK+WRiuirrSA8IGtva3V5dVwgOwor56m65qyEIDwga3V1cmFuXCA7CivmsqHpoK0gPCBib3R0b3VcIDsKK+WPpembhiA8IGt1c2h1dVwgOwor5omL5aGpIDwgdGVzaGlvXCA7Civmub/luIMgPCBzaGlwcHVcIDsKK+err+WxsSA8IGhheWFtYVwgOwor56uc5bqnIDwgcnl1dXphXCA7CivpiYToo70gPCB0ZXNzZWlcIDsKK+WPl+mgmCA8IGp1cnlvdVwgOwor5riH5rC0IDwga2Fzc3VpXCA7Civng4/luL3lrZAgPCBlYm9zaGlcIDsKK+WQiOmHkSA8IGdvdWtpblwgOwor5re35reGIDwga29ua291XCA7Civlk4HnrYkgPCBoaW50b3VcIDsKK+aCquiogCA8IGFrdWdlblwgOwor5Zac5oKmIDwga2lldHN1XCA7CivpvJPnrJsgPCBrb3Rla2lcIDsKK+m6u+iWrCA8IG1heWFrdVwgOwor56uv5a2QIDwgdGFuc2hpXCA7CivomZrnpLwgPCBreW9yZWlcIDsKK+iejeWQiCA8IHl1dWdvdVwgOwor5ZCM6YKmIDwgZG91aG91XCA7Civmh4fmm7ggPCBrb25zaG9cIDsKK+a5vuWyuCA8IHdhbmdhblwgOwor5rqA5bGxIDwgbWFuemFuXCA7CivmiY3lmbggPCBzYWl0b25cIDsKK+eosueGsSA8IGltb2NoaVwgOwor6Y6u5a6IIDwgY2hpbmp1XCA7Civlk4HnqK4gPCBoaW5zaHVcIDsKK+m7hOiPiiA8IGtpZ2lrdVwgOwor5oSa562WIDwgZ3VzYWt1XCA7CivlkITpg6ggPCBrYWt1YnVcIDsKK+ellueItuavjSA8IHNvZnVib1wgOwor5rOi6LevIDwgbmFtaWppXCA7Civlj43pnaIgPCBoYW5tZW5cIDsKK+WNgeWFreWknCA8IGl6YXlvaVwgOwor5omA5ZyoIDwgc2hvemFpXCA7CivmgqrooYAgPCBva2V0c3VcIDsKK+aFqOeEtiA8IGdhaXplblwgOwor56u25aOyIDwga2VpYmFpXCA7Civol7vojYkgPCBtb2d1c2FcIDsKK+enu+edgCA8IGljaGFrdVwgOwor56Wd6KmeIDwgbm9yaXRvXCA7CivlkIzovKkgPCBkb3VoYWlcIDsKK+aApemgiCA8IGt5dXVzdVwgOwor56eY562WIDwgaGlzYWt1XCA7Civmtojno6ggPCBzaG91bWFcIDsKK+aGjuawlyA8IG5pa3VnZVwgOwor5ZCM6LuKIDwgZG91c2hhXCA7CivmuZblv4MgPCBrb3NoaW5cIDsKK+eorueBqyA8IHRhbmViaVwgOwor5omL5ZOBIDwgdGVqaW5hXCA7CivmiJHlrrYgPCB3YWdheWFcIDsKK+epuuabuSA8IGt1dXNvdVwgOwor6L+C5Zue6LevIDwgdWthaXJvXCA7CivmiY3lkI0gPCBzYWltZWlcIDsKK+ekvuizkyA8IHNoYWhpblwgOwor5ray54q2IDwgZWtpam91XCA7CivopaTopLjlrrYgPCBib3JveWFcIDsKK+aBtei0iCA8IGtlaXpvdVwgOwor56S86LObIDwgcmFpc2FuXCA7CivnqYLms6IgPCBob25hbWlcIDsKK+mPpOWIuyA8IHJ1a29rdVwgOwor6YeR6YqAIDwga2luZ2luXCA7CivpioDntYwgPCBnaW5rZWlcIDsKK+WSjOe2tCA8IHdhdG9qaVwgOwor6Z2S57Sr6JiHIDwgYW9qaXNvXCA7Civnt5HllYTmnKjps6UgPCBhb2dlcmFcIDsKK+mKgOezuCA8IGdpbnNoaVwgOwor5reh5rC0IDwgdGFuc3VpXCA7CivnqbrmlocgPCBrdXVidW5cIDsKK+WQn+ipoCA8IGdpbicnZWlcIDsKK+mKgOeyiSA8IGdpbnB1blwgOwor5oem5byxIDwgZGFqYWt1XCA7Civmga3os4AgPCBreW91Z2FcIDsKK+WNtem7hCA8IHJhbicnb3VcIDsKK+a6gOWhgSA8IG1hbnJ1aVwgOwor5oGp6LOeIDwgb25zaG91XCA7CivmsLTpu70gPCBhbWVuYm9cIDsKK+WTgOeXmyA8IGFpdHN1dVwgOwor6bqm6Iq9IDwgYmFrdWdhXCA7Civlj7Dou4ogPCBkYWlzaGFcIDsKK+WTgeeVqiA8IGhpbmJhblwgOwor5omL5YaZIDwgc2h1c2hhXCA7Civms5Xoq5YgPCBob3Vyb25cIDsKK+aJi+WFiCA8IHRlc2FraVwgOwor5oGp6K6QIDwgb25zaHV1XCA7Civljp/pn7MgPCBnZW4nJ29uXCA7CivnqbrmjLogPCBrdXV0ZWlcIDsKK+mIjeihjCA8IGRvbmtvdVwgOwor5omL5YK3IDwgdGVraXp1XCA7Civnqbrmi7MgPCBrdXVrZW5cIDsKK+mHnei3ryA8IHNoaW5yb1wgOwor5ZCM6KiTIDwgZG91a3VuXCA7Civph5HovKogPCBrYW5hd2FcIDsKK+ayoui+uiA8IHNhd2FiZVwgOwor6byI55SyIDwgYmVra291XCA7CivnqbrmiYsgPCBrYXJhdGVcIDsKK+ekvOijhSA8IHJlaXNvdVwgOwor56m65omAIDwga3V1c2hvXCA7Civlv7XpoZggPCBuZW5nYW5cIDsKK+WQiOioiCA8IGdvdWtlaVwgOwor6bq757mUIDwgYXNhb3JpXCA7CivlkarnuJsgPCBqdWJha3VcIDsKK+epuuaIpiA8IGt1dXNlblwgOwor5oWo5q2OIDwgZ2FpdGFuXCA7Civlv7XpoK0gPCBuZW50b3VcIDsKK+enkeeZvSA8IHNlcmlmdVwgOwor6Jau6JqKIDwgeWFidWthXCA7CivmuoDlk6EgPCBtYW4nJ2luXCA7Civlj5vou40gPCBoYW5ndW5cIDsKK+m7hOeyiSA8IGtpbmFrb1wgOwor6Y6W5Zu9IDwgc2Frb2t1XCA7CivmhIHnnIkgPCBzaHV1YmlcIDsKK+m6u+e1siA8IGFzYWl0b1wgOwor5omN5Lq6IDwgc2FpamluXCA7CivlkIzoob4gPCBkb3VraW5cIDsKK+eri+WcsCA8IHJpdGNoaVwgOwor6buS56mCIDwga3Vyb2JvXCA7Civmg4Xnt5IgPCBqb3VjaG9cIDsKK+ayg+mHjiA8IHlva3V5YVwgOwor5oSb54yrIDwgYWlieW91XCA7CivphrjpgKAgPCBqb3V6b3VcIDsKK+a5vuWPoyA8IHdhbmtvdVwgOwor6YqD55y8IDwganV1Z2FuXCA7Civnq6Dlj6UgPCBzaG91a3VcIDsKK+aGtuW/tSA8IG9rdW5lblwgOwor5oim5YmNIDwgc2VuemVuXCA7CivpuJ7ovL8gPCByYW4nJ3lvXCA7CivmhqfmhqwgPCBkb3VrZWlcIDsKK+a2suaxgSA8IGVraWp1dVwgOwor5oak5oejIDwgZnVubWFuXCA7Civlj6/oqq0gPCBrYWRva3VcIDsKK+aHuOWegiA8IGtlbnN1aVwgOwor56iO5rOVIDwgemVpaG91XCA7CivljrPph40gPCBnZW5qdXVcIDsKK+mKgOebpCA8IGdpbmJhblwgOwor5Y+L6LuNIDwgeXV1Z3VuXCA7CivlkoznnaYgPCB3YWJva3VcIDsKK+mKgOebgyA8IGdpbnBhaVwgOwor5oak5oWoIDwgZnVuZ2FpXCA7CivpiYTnt5ogPCB0ZXNzZW5cIDsKK+m8u+avmyA8IGhhbmFnZVwgOwor5Y+j6Kq/IDwga3VjaG91XCA7Civnq6/lgKogPCB0YW5nZWlcIDsKK+mHkeirhyA8IGtpbmRhblwgOwor5Y+k6Ki7IDwga29jaHV1XCA7CivmtYHnn7MgPCBzYXN1Z2FcIDsKK+mJhOeyiSA8IHRlcHB1blwgOwor6bqm57KJIDwgbXVnaWtvXCA7Civmt7HmiYsgPCBmdWthZGVcIDsKK+m7kuebriA8IGt1cm9tZVwgOwor5oaQ5oarIDwgcmVuYmluXCA7Civljp/ph44gPCBnZW4nJ3lhXCA7Civlj5foq74gPCBqdWRha3VcIDsKK+awl+mssSA8IGtpdXRzdVwgOwor6Jas6IiXIDwgeWFrdWhvXCA7CivlkI3okZcgPCBtZWljaG9cIDsKK+mJhOeuoSA8IHRla2thblwgOwor6YeN6KiAIDwganV1Z29uXCA7CivmsLfpnKcgPCBoeW91bXVcIDsKK+mHkeiltCA8IGtpbnJhblwgOwor5rC06Z2iIDwgbWlub21vXCA7Civnpo3npo8gPCBrYWZ1a3VcIDsKK+awt+mbqCA8IGhpc2FtZVwgOwor6YmE562LIDwgdGVra2luXCA7CivphZTpoZQgPCBzdWlnYW5cIDsKK+WQiOiRlyA8IGdvdWNob1wgOwor56a9542jIDwga2luanV1XCA7CivmsLTpm7cgPCBzdWlyYWlcIDsKK+WPl+iouyA8IGp1Y2h1dVwgOwor5rC06ZujIDwgc3VpbmFuXCA7CivlkJvoh6ggPCBrdW5yaW5cIDsKK+WPl+iolyA8IGp1dGFrdVwgOwor5oim5LmxIDwgc2VucmFuXCA7CivkuI3lhbflkIggPCBmdWd1YWlcIDsKK+WVj+WxiyA8IHRvbicneWFcIDsKK+mJhOeqkyA8IHRlc3NvdVwgOwor5oWn5pWPIDwga2VpYmluXCA7Civom4fluqcgPCBoZWJpemFcIDsKK+a5r+WFgyA8IHl1bW90b1wgOwor6by75qKBIDwgYmlyeW91XCA7Civlj43oq5YgPCBoYW5yb25cIDsKK+WWnOWKhyA8IGtpZ2VraVwgOwor5oaC5oakIDwgeXV1ZnVuXCA7CivmhJ/mtpkgPCBrYW5ydWlcIDsKK+eptOWxhSA8IGtla2t5b1wgOwor56uL5YasIDwgcml0dG91XCA7CivmhoLmha4gPCB5dXVyeW9cIDsKK+WSjOeLrCA8IHdhZG9rdVwgOwor6YeR6J2/IDwga2luYmFlXCA7CivmsLTploAgPCBzdWltb25cIDsKK+WWhOWTiSA8IHplbnphaVwgOwor5Y2Y6Z+zIDwgdGFuJydvblwgOwor6Ymb55m9IDwgZW5wYWt1XCA7Civlj4LorIAgPCBzYW5ib3VcIDsKK+aGguaCtiA8IHl1dW1vblwgOwor6by75pyoIDwgaGFuYWdpXCA7CivlkozniZsgPCB3YWd5dXVcIDsKK+iWhOiRiSA8IHVzdXlvdVwgOwor5ZSQ5oi4IDwga2FyYWRvXCA7CivlkIjoh7QgPCBnYXRjaGlcIDsKK+WNl+mdoiA8IG5hbm1lblwgOwor5rW35rWcIDwga2FpaGluXCA7CivmsJHpoqggPCBtaW5wdXVcIDsKK+aCqueojiA8IGFrdXplaVwgOwor5ZC5566hIDwgc3Vpa2FuXCA7CivpiYTnoLIgPCB0ZXBwb3VcIDsKK+WQhOiHqiA8IGtha3VqaVwgOwor6bq755a5IDwgbWFzaGluXCA7CivllqfkvJ0gPCBrZW5kZW5cIDsKK+iWhOiMtiA8IHVzdWNoYVwgOwor5Y2X6ZqFIDwgbmFuZ3V1XCA7CivmgqrnpZ4gPCBha3VqaW5cIDsKK+eri+S9kyA8IHJpdHRhaVwgOwor5Y2K6Z+zIDwgaGFuJydvblwgOwor5Y2X6ZmQIDwgbmFuZ2VuXCA7CivnqoHloKQgPCB0b3R0ZWlcIDsKK+WWquS4rSA8IG1vY2h1dVwgOwor5rib5aGpIDwgZ2VuJydlblwgOwor5ril5ZywIDwgYWt1Y2hpXCA7Civmt6HlvakgPCB0YW5zYWlcIDsKK+a1t+awtCA8IGthaXN1aVwgOwor5rWu5rWBIDwgZnVyeXV1XCA7Civph5HolLUgPCBraW56b3VcIDsKK+aEm+assiA8IGFpeW9rdVwgOwor5Y6z6KuHIDwgZ2VuZGFuXCA7CivoloToibIgPCB1c3Vpcm9cIDsKK+elreekvCA8IHNhaXJlaVwgOwor55+l5oG15q2vIDwgY2hpZWJhXCA7CivomZrmoLkgPCBreW9rb25cIDsKK+W+rumchyA8IGJpc2hpblwgOwor6YWp6YWKIDwgbWVpdGVpXCA7CivlkIznvaogPCBkb3V6YWlcIDsKK+a1ruayiCA8IGZ1Y2hpblwgOwor5rC06YqAIDwgc3VpZ2luXCA7CivlvqHpoYwgPCBneW9kYWlcIDsKK+WTgOalvSA8IGFpcmFrdVwgOwor56m65Z+fIDwga3V1aWtpXCA7CivpioDmvKIgPCBnaW5rYW5cIDsKK+a3seWxsSA8IG1peWFtYVwgOwor6YeO6JKcIDwgbm9iaXJ1XCA7CivmtLvniYggPCBrYXBwYW5cIDsKK+awl+mVtyA8IGtpbmFnYVwgOwor56m65ZywIDwgYWtpY2hpXCA7CivmhJvmpb0gPCBhaWd5b3VcIDsKK+mHjuiPiiA8IG5vZ2lrdVwgOwor5rCR6ZaTIDwgbWlua2FuXCA7Civmgqrnm7ggPCBha3Vzb3VcIDsKK+W+oemciiA8IG1pdGFtYVwgOwor5rOV57ayIDwgaG91bW91XCA7CivmgrLnl5sgPCBoaXRzdXVcIDsKK+m6pueUsCA8IG11Z2l0YVwgOwor5rC06YO3IDwgc3VpZ291XCA7CivlkIjnuYogPCBnb3VzZW5cIDsKK+S4jei1t+iotCA8IGZ1a2lzb1wgOwor5oWi5oCnIDwgbWFuc2VpXCA7CivlkJHnsbMgPCBrb3ViZWlcIDsKK+mKgOazpSA8IGdpbmRlaVwgOwor6Jma5pWwIDwga3lvc3V1XCA7CivmgqrnlqsgPCBha3Vla2lcIDsKK+awtOi+uiA8IG1penViZVwgOwor56if5oCnIDwgaGluc2VpXCA7CivpjZvlhrYgPCB0YW4nJ3lhXCA7CivmgqrnlKggPCBha3V5b3VcIDsKK+aEiealvSA8IHl1cmFrdVwgOwor54Sh5Yy75p2RIDwgbXVpc29uXCA7CivmsLTou4ogPCBzdWlzaGFcIDsKK+iZjuaWkSA8IHRvcmFmdVwgOwor5b6M6ZujIDwga291bmFuXCA7CivnqbrlkI0gPCBrdXVtZWlcIDsKK+mMpuWcsCA8IGtpbmNoaVwgOwor6by75oGvIDwgYmlzb2t1XCA7CivmgqrnkIMgPCBha2t5dXVcIDsKK+WQiOeulyA8IGdhc3NhblwgOwor5rW35pyIIDwga3VyYWdlXCA7CivllJDlrZAgPCBrYXJha29cIDsKK+a1gea0viA8IHJ5dXVoYVwgOwor6JaE57SXIDwgaGFrdXNhXCA7Civmt7flnKggPCBrb256YWlcIDsKK+WQjOeqkyA8IGRvdXNvdVwgOwor6YqY5p2/IDwgbWVpYmFuXCA7CivmsrnntbUgPCBhYnVyYWVcIDsKK+WNiumHkSA8IGhhbmtpblwgOwor5q+b6aCtIDwgbW91dG91XCA7CivlkIznqK4gPCBkb3VzaHVcIDsKK+mHjee9qiA8IGp1dXphaVwgOwor6YWi6LGaIDwgc3VidXRhXCA7CivljYPpiJ4gPCBzZW5raW5cIDsKK+epuuWJjSA8IGt1dXplblwgOwor5b+c6Ku+IDwgb3VkYWt1XCA7CivmuJvlhY0gPCBnZW5tZW5cIDsKK+awkemBuCA8IG1pbnNlblwgOwor56m65Ya3IDwga3V1cmVpXCA7Civmg5rmsJcgPCBub3Jva2VcIDsKK+WSjOalvSA8IHdhcmFrdVwgOwor5oCq6IWVIDwga2Fpd2FuXCA7CivlkIjnpa0gPCBnb3VzYWlcIDsKK+WVhuWLmSA8IHNob3VtdVwgOwor5oKq54axIDwgYW5ldHN1XCA7Civpu4TmsLQgPCBraW1penVcIDsKK+WPo+e1tSA8IGt1Y2hpZVwgOwor5b6h6YWMIDwgb3NoYWt1XCA7CivmsJfou70gPCBraWdhcnVcIDsKK+aenOaoueWckiA8IGthanVlblwgOwor5rW35pCNIDwga2Fpc29uXCA7Civmha7lpJYgPCByeW9nYWlcIDsKK+mFkuixqiA8IHNodWdvdVwgOwor5Y2K6LyqIDwgaGFucmluXCA7Civph5HnsokgPCBraW5wdW5cIDsKK+W9k+mnhSA8IHRvdWVraVwgOwor5b6h6YGKIDwgZ3lveXV1XCA7Civms5Xnm7ggPCBob3Nzb3VcIDsKK+a3seWRsyA8IGZ1a2FtaVwgOwor5Y6f6JGXIDwgZ2VuY2hvXCA7Civpuqbmua8gPCBtdWdpeXVcIDsKK+WQjOebnyA8IGRvdW1laVwgOwor5rSq5rC0IDwga291enVpXCA7Civlk4DmhIEgPCBhaXNodXVcIDsKK+WQieebuCA8IGtpc3NvdVwgOwor56m65Ly8IDwgc29yYW5pXCA7CivlkozmnI0gPCB3YWZ1a3VcIDsKK+W+oei7ouWphiA8IG90ZW5iYVwgOwor6Jas55CGIDwgeWFrdXJpXCA7Civlvozph5EgPCBhdG9raW5cIDsKK+m5teeNsiA8IHJva2FrdVwgOwor5ZG95qC5IDwgbWVpa29uXCA7CivpjKDliY0gPCBqb3VtYWVcIDsKK+WQjeeUoyA8IG1laXNhblwgOwor5oSb5oGvIDwgYWlzb2t1XCA7Civms6XnirYgPCBkZWlqb3VcIDsKK+W/heimiyA8IGhpa2tlblwgOwor5Y+N57GzIDwgaGFuYmVpXCA7CivnoLTpj6EgPCBoYWt5b3VcIDsKK+mHjeeojiA8IGp1dXplaVwgOwor6YWi6Ju4IDwgc3VkYWtvXCA7Civlj6LnpaAgPCBob2tvcmFcIDsKK+W+k+i7jSA8IGp1dWd1blwgOwor5q+b6YiOIDwga2ViYXJpXCA7Civpg6jplbcgPCBidWNob3VcIDsKK+aDqOaVlyA8IHphbnBhaVwgOwor5oKq5rOVIDwgYWt1aG91XCA7Civlj7Pnm64gPCBtaWdpbWVcIDsKK+W/heihsCA8IGhpc3N1aVwgOwor5q2v6buSIDwgaGFndXJvXCA7CivmsJHoq5YgPCBtaW5yb25cIDsKK+WPguexoCA8IHNhbnJvdVwgOwor5oKq5rC0IDwgYWt1c3VpXCA7CivmhInmgqYgPCB5dWV0c3VcIDsKK+mHneebriA8IGhhcmltZVwgOwor5YyX6YOoIDwgaG9rdWJ1XCA7CivmgqrmsJcgPCB3YXJ1Z2lcIDsKK+efoumxiCA8IHlhdGFyYVwgOwor56SO55+zIDwgc29zZWtpXCA7CivmtbTlvowgPCB5b2t1Z29cIDsKK+WNk+imiyA8IHRha2tlblwgOwor5ZG95pWwIDwgbWVpc3V1XCA7CivmrovpqrggPCB6YW5nYWlcIDsKK+miqOWRguWxiyA8IGZ1cm95YVwgOwor5rOl54KtIDwgZGVpdGFuXCA7CivlkI3nirYgPCBtZWlqb3VcIDsKK+iRm+mkoSA8IGt1enVhblwgOwor5rK855SwIDwgbnVtYWRhXCA7Civnpa3mrr8gPCBzYWlkZW5cIDsKK+egsumHkSA8IGhvdWtpblwgOwor5Y+k552AIDwgZnVydWdpXCA7CivpioDmiYcgPCBnaW5zZW5cIDsKK+mHjeefsyA8IG9tb3NoaVwgOwor5by36Z+zIDwga3lvdW9uXCA7CivmsZrogbcgPCBvc2hva3VcIDsKK+a3t+S5sSA8IGtvbnJhblwgOwor6YeR55uuIDwga2FuZW1lXCA7CivmhI/lkbPoq5YgPCBpbWlyb25cIDsKK+eglOmRvSA8IGtlbnNhblwgOwor5byx6Z+zIDwgeW93YW5lXCA7Civmrovpo68gPCB6YW5wYW5cIDsKK+awtOiRrCA8IHN1aXNvdVwgOwor5Y2K6KOBIDwgaGFuc2FpXCA7CivllK/kuIAgPCB5dWl0c3VcIDsKK+eEoemCquawlyA8IG11amFraVwgOwor5b6h6KiXIDwgZ290YWt1XCA7Civlvq7oobcgPCBiaWNodXVcIDsKK+WNiuihvyA8IGhhbmVyaVwgOwor6Jma5aaEIDwga3lvbW91XCA7CivmsbrnrpcgPCBrZXNzYW5cIDsKK+WMlui6qyA8IGtlc2hpblwgOwor5oGs54S2IDwgdGVuemVuXCA7Civolqzmua8gPCB5YWt1eXVcIDsKK+axveesmyA8IGtpdGVraVwgOwor5ra85ZGzIDwgcnlvdW1pXCA7CivmsLToj5wgPCBtaXp1bmFcIDsKK+a1t+WyuCA8IGthaWdhblwgOwor5oKq5qWtIDwgYWt1Z291XCA7CivpiYTmnb8gPCB0ZXBwYW5cIDsKK+iTtOiPnCA8IGp1bnNhaVwgOwor5ZCr5rC0IDwgZ2Fuc3VpXCA7CivlvbHouqsgPCBrYWdlbWlcIDsKK+avm+i2syA8IGtlYXNoaVwgOwor5q2v6auEIDwgc2hpenVpXCA7CivokL3ppqwgPCByYWt1YmFcIDsKK+WPjOecvCA8IHNvdWdhblwgOwor5Y+N55yBIDwgaGFuc2VpXCA7Civms6jmsrkgPCBjaHV1eXVcIDsKK+mDt+i7jSA8IGdvdWd1blwgOwor5rKI56CCIDwgY2hpbnNhXCA7Civli6fpioAgPCBrYW5naW5cIDsKK+WMu+ihkyA8IGlqdXRzdVwgOwor6aKo5ZGC5aC0IDwgZnVyb2JhXCA7CivmhJ/lpa4gPCBrYW5wdW5cIDsKK+a2meWaoiA8IHJ1aW5vdVwgOwor5Y216IOeIDwgcmFuaG91XCA7Civph47nkIMgPCB5YWt5dXVcIDsKK+WRieacjSA8IGdvZnVrdVwgOwor56We5qW9IDwga2FndXJhXCA7Civlv6DnvqkgPCBjaHV1Z2lcIDsKK+awtOiFqyA8IHN1aXNodVwgOwor6JeN5p+TIDwgYWl6b21lXCA7Civmgqrmm7ggPCBha3VzaG9cIDsKK+a0i+acrCA8IHlvdWhvblwgOwor5ZCb5rCRIDwga3VubWluXCA7CivokYnpmbAgPCBoYWthZ2VcIDsKK+mYv+iYh+WxsSA8IGFzb3NhblwgOwor5rK454K5IDwgZnV0dGVuXCA7Civmgazmt6EgPCB0ZW50YW5cIDsKK+m7meW6pyA8IG1va3V6YVwgOwor5ray5YmkIDwgZWtpemFpXCA7Civmrr/ou40gPCBkZW5ndW5cIDsKK+W8iumiqCA8IGhlaWZ1dVwgOwor6YeR54mMIDwga2lucGFpXCA7CivpioXlsbEgPCBkb3V6YW5cIDsKK+a1t+WkliA8IGthaWdhaVwgOwor6YO16LKvIDwgeXV1Y2hvXCA7Civph47niZsgPCB5YWd5dXVcIDsKK+a0u+aApyA8IGthc3NlaVwgOwor56S+5q6/IDwgc2hhZGVuXCA7Civph43niYggPCBqdXVoYW5cIDsKK+aCquaWhyA8IGFrdWJ1blwgOwor5b6h5a626Iq4IDwgb2llZ2VpXCA7CivphY3ohrMgPCBoYWl6ZW5cIDsKK+mKgOWxsSA8IGdpbnphblwgOwor5b+N6ICQIDwgbmludGFpXCA7CivmgqrmlL8gPCBha3VzZWlcIDsKK+elreaWhyA8IHNhaW1vblwgOwor5ZCE5rS+IDwga2FrdWhhXCA7CivpgbrpqqggPCBpa290c3VcIDsKK+m7kuW3viA8IGt1cm9nb1wgOwor5oGp5rKiIDwgb250YWt1XCA7Civmtbfln58gPCBrYWlpa2lcIDsKK+aEm+WbvSA8IGFpa29rdVwgOwor6YmE5ouzIDwgdGVra2VuXCA7CivlkI3mrosgPCBuYWdvcmlcIDsKK+iZmuWQjSA8IGt5b21laVwgOwor5by+6YGTIDwgZGFuZG91XCA7CivmsJHoirggPCBtaW5nZWlcIDsKK+WTuuS5syA8IGhvbnl1dVwgOwor5Y+w5rm+IDwgdGFpd2FuXCA7CivmsLjntpogPCBlaXpva3VcIDsKK+ato+mdoiA8IG1hdG9tb1wgOwor6YeN54GwIDwganV1a2FpXCA7CivljbHntbUgPCBhYnVuYWVcIDsKK+aBpeavmyA8IGNoaW1vdVwgOwor5Yqp6ZW3IDwgam9jaG91XCA7CivmtrLkvZMgPCBla2l0YWlcIDsKK+mIjeaguSA8IGRvbmtvblwgOwor5oOF5b+1IDwgam91bmVuXCA7Civmrovph5EgPCB6YW5raW5cIDsKK+avrOiXuyA8IG1hcmltb1wgOwor6Jar5p+TIDwga3Vuc2VuXCA7Civmr5von7kgPCBrZWdhbmlcIDsKK+WTgeWQjSA8IGhpbm1laVwgOwor5oKq5oqVIDwgYWt1dG91XCA7Civljp/nm6QgPCBnZW5iYW5cIDsKK+WLlei8qiA8IGRvdXJpblwgOwor5oKq5omNIDwgYWt1c2FpXCA7CivmsrvmsLQgPCBjaGlzdWlcIDsKK+m7kuWtkCA8IGhva3Vyb1wgOwor5YuH6YKBIDwgeXV1bWFpXCA7CivmgrLmhIEgPCBoaXNodXVcIDsKK+auiumBhyA8IHNodWd1dVwgOwor5oKq5oWLIDwgYWt1dGFpXCA7Civlj6TmtYEgPCBrb3J5dXVcIDsKK+WNgeiDvSA8IGp1dW5vdVwgOwor6YqA5aGKIDwgZ2lua2FpXCA7Civol7vlsZEgPCBtb2t1enVcIDsKK+WQjOaguSA8IGRvdWtvblwgOwor6buZ5aWRIDwgbW9ra2VpXCA7Civph43mtrIgPCBqdXVla2lcIDsKK+avkuibviA8IGRva3VnYVwgOwor6YeR5rOlIDwga29uZGVpXCA7CivmsaDnlZQgPCBjaGloYW5cIDsKK+WQjOadkSA8IGRvdXNvblwgOwor5ZCN5pytIDwgbmFmdWRhXCA7CivljZjntJQgPCB0YW5qdW5cIDsKK+Wkp+mDqOWxiyA8IG9vYmV5YVwgOwor6JiK5aWlIDwgdW4nJ25vdVwgOwor5b+r55ygIDwga2FpbWluXCA7Civmgqrlv7UgPCBha3VuZW5cIDsKK+WQjOaciyA8IGRvdWJvdVwgOwor5ZCI5p2/IDwgZ291YmFuXCA7Civph5HmsJcgPCBrYW5ha2VcIDsKK+enmOWMvyA8IGhpdG9rdVwgOwor56aP5a+/IDwgZnVrdWp1XCA7CivlkIjmnKwgPCBnYXBwb25cIDsKK+mBremboyA8IHNvdW5hblwgOwor6YeN5rC0IDwganV1c3VpXCA7CivmsLTnpr0gPCBzdWlraW5cIDsKK+iZmuS8nSA8IGt5b2RlblwgOwor5Y2X57GzIDwgbmFuYmVpXCA7Civpto/nvqQgPCBrZWlndW5cIDsKK+WgleiDjuWMuyA8IGRhdGFpaVwgOwor5Y2Y57ChIDwgdGFua2FuXCA7CivmgqrlvIogPCBha3VoZWlcIDsKK+W+qee4gSA8IGZ1a3VlblwgOwor6bu95YuJIDwgYmluYmVuXCA7CivnpoXlsLwgPCB6ZW4nJ25pXCA7CivlkIzmlq0gPCBkb3VkYW5cIDsKK+WPluawtCA8IHNodXN1aVwgOwor5rWE5Z+fIDwgam91aWtpXCA7CivphZLnqI4gPCBzaHV6ZWlcIDsKK+WQjOaWhyA8IGRvdWJ1blwgOwor5Yud6Ki0IDwgc2hvdXNvXCA7CivlkIzmlbAgPCBkb3VzdXVcIDsKK+W+k+iAhSA8IGp1dXNoYVwgOwor5ZCI5pa5IDwgYWlrYXRhXCA7Civljp/niYggPCBnZW5wYW5cIDsKK+iWhOadvyA8IHVzdWl0YVwgOwor5Y2X56uvIDwgbmFudGFuXCA7CivlvLfoq4cgPCBnb3VkYW5cIDsKK+engOWPpSA8IHNodXVrdVwgOwor5Y+k5qW9IDwga29nYWt1XCA7CivpiI3miY0gPCBkb25zYWlcIDsKK+iXu+WhqSA8IG1vc2hpb1wgOwor5Y+N5q+bIDwgaGFubW91XCA7CivmsLTnnYAgPCBtaXp1Z2lcIDsKK+eikeefsyA8IGhpc2VraVwgOwor5Yqg6YCfIDwga2Fzb2t1XCA7CivmsZrniakgPCBvYnV0c3VcIDsKK+WPsOacrCA8IGRhaWhvblwgOwor6baP57OeIDwga2VpZnVuXCA7CivmsLTnm6QgPCBzdWliYW5cIDsKK+WNg+evhyA8IHNlbnBlblwgOwor6YiN5oSfIDwgZG9ua2FuXCA7Civmr5vohJsgPCBrZXp1bmVcIDsKK+mzs+i8piA8IGhvdXJlblwgOwor5LiN55So5oSPIDwgZnV5b3VpXCA7CivkuYXmhYjnm64gPCBrdWppbWVcIDsKK+W7uumAoCA8IGtlbnpvdVwgOwor5Yi66a2aIDwgdG9nZXVvXCA7Civpg6jokL0gPCBidXJha3VcIDsKK+WPt+aVsCA8IGdvdXN1dVwgOwor6YqD5YmjIDwganV1a2VuXCA7Civlj4Lmrr8gPCBzYW5kZW5cIDsKK+awtOeWsSA8IHN1aWhvdVwgOwor5Y+z5paHIDwgeXV1YnVuXCA7Civlj6TmnKggPCBrb2Jva3VcIDsKK+WQm+aBqSA8IGt1bicnb25cIDsKK+Wkp+W+oeS7oyA8IG9vbWl5b1wgOwor5b6u56aEIDwgYmlyb2t1XCA7CivnooHnn7MgPCBnb2lzaGlcIDsKK+awtOeUsCA8IHN1aWRlblwgOwor5bqV6a2aIDwgc29rb3VvXCA7Civnp5jkuK0gPCBoaWNodXVcIDsKK+auuuiPjCA8IHNha2tpblwgOwor6YqY5LuZIDwgbWVpc2VuXCA7CivlvLHooYwgPCBqYWtrb3VcIDsKK+WRvOWQjSA8IHlvYmluYVwgOwor5rG65rC0IDwga2Vzc3VpXCA7CivlkIzmhoIgPCBkb3V5dXVcIDsKK+mKheWDjyA8IGRvdXpvdVwgOwor5q2T6L+OIDwga2FuZ2VpXCA7CivpiYTloZQgPCB0ZXR0b3VcIDsKK+WQjOaEnyA8IGRvdWthblwgOwor5rWq5Lq6IDwgcm91bmluXCA7CivliZTpmaQgPCB0ZWtpam9cIDsKK+ayoeabuCA8IGJvc3Nob1wgOwor6be55rS+IDwgdGFrYWhhXCA7CivliY3pm7sgPCB6ZW5kZW5cIDsKK+aDs+WDjyA8IHNvdXpvdVwgOwor5Y+W5p2QIDwgc2h1emFpXCA7CivomK3kurogPCByYW5qaW5cIDsKK+iPjOmhniA8IGtpbnJ1aVwgOwor56We5a6uIDwgamluZ3V1XCA7CivljbXnirYgPCByYW5qb3VcIDsKK+aCquWkqSA8IGFrdXRlblwgOwor6YGt6YGHIDwgc291Z3V1XCA7CivliYrpmaQgPCBzYWt1am9cIDsKK+WNiuedoSA8IGhhbnN1aVwgOwor5ZC+5aa5IDwgd2FnaW1vXCA7Civlj7PmipggPCB1c2V0c3VcIDsKK+WOn+ayuSA8IGdlbicneXVcIDsKK+ats+ioiCA8IHNhaWtlaVwgOwor5oCn5qC5IDwgc2hvdW5lXCA7CivokZvol6QgPCBrYXR0b3VcIDsKK+aCquWgtCA8IHdhcnViYVwgOwor5Y+z5omLIDwgbWlnaXRlXCA7Civlj4nmnKggPCBtYXRhZ2lcIDsKK+atqeiqvyA8IGhvY2hvdVwgOwor5Y6f5rCRIDwgZ2VubWluXCA7CivlkI3lupcgPCBtZWl0ZW5cIDsKK+WIuOmdoiA8IGtlbm1lblwgOwor5bmy6bGIIDwgaGlkYXJhXCA7CivlkIjlvIEgPCBnb3ViZW5cIDsKK+W8geirliA8IGJlbnJvblwgOwor5rWB5YSAIDwgcnl1dWdpXCA7CivmsLTnha4gPCBtaXp1bmlcIDsKK+W6p+mVtyA8IHphY2hvdVwgOwor5q+S57SgIDwgZG9rdXNvXCA7CivlupXpnaIgPCB0ZWltZW5cIDsKK+W9vOetiSA8IGthcmVyYVwgOwor5Y6Y5q+bIDwgcmlubW91XCA7CivljrvmnaUgPCBreW9yYWlcIDsKK+W8geinoyA8IGJlbmthaVwgOwor6YGL6YedIDwgdW5zaGluXCA7Civlj6TmiYsgPCBmdXJ1dGVcIDsKK+avm+etiyA8IGtlc3VqaVwgOwor56S+5bGLIDwgc2hhb2t1XCA7Civlj6/mg5wgPCBhdHRhcmFcIDsKK+mBiumHkSA8IHl1dWtpblwgOwor5ZCb5a2QIDwga3Vuc2hpXCA7CivliKnpnpggPCByaXpheWFcIDsKK+aAqOaVtSA8IG9udGVraVwgOwor5pyJ5oSP576pIDwgeXV1aWdpXCA7Civph47olpTolocgPCBub2JhcmFcIDsKK+aBi+aEmyA8IHJlbicnYWlcIDsKK+asoOmFjSA8IGtlcHBhaVwgOwor5ZG95LukIDwgbWVpcmVpXCA7CivlkI3lsbEgPCBtZWl6YW5cIDsKK+ecn+m0qCA8IG1hZ2Ftb1wgOwor6YCj6ZaiIDwgcmVua2FuXCA7CivmsYDmuJogPCB0ZWlzaG9cIDsKK+W+oeebruimi+W+lyA8IG9tZW1pZVwgOwor5ZCM5bGFIDwgZG91a3lvXCA7CivpgYXphY0gPCBjaGloYWlcIDsKK+aihembqOacnyA8IGJhaXVraVwgOwor5oG15a2YIDwga2Vpem9uXCA7CivlkIzlsIEgPCBkb3VmdXVcIDsKK+WPsOW9oiA8IGRhaWtlaVwgOwor5oGL5oGLIDwgcmVucmVuXCA7CivpgaDotrMgPCBlbnNva3VcIDsKK+WJjemHkSA8IG1hZWtpblwgOwor5Yml6LqrIDwgbXVraW1pXCA7CivmsLTmupAgPCBzdWlnZW5cIDsKK+mAgemiqCA8IHNvdWZ1dVwgOwor6YG66KiAIDwgeXVpZ29uXCA7Civmga/lrZAgPCBtdXN1a29cIDsKK+aCquWQjSA8IGFrdW1laVwgOwor5Y6f5qGIIDwgZ2VuJydhblwgOwor56WW5Zu9IDwgc29rb2t1XCA7CivolLXmm7ggPCB6b3VzaG9cIDsKK+aCquWPiyA8IGFrdXl1dVwgOwor5bm96ZyKIDwgeXV1cmVpXCA7CivmgrLliocgPCBoaWdla2lcIDsKK+W6p+mHkSA8IHphZ2FuZVwgOwor5Y+N5oimIDwgaGFuc2VuXCA7Civluqbph48gPCBkb3J5b3VcIDsKK+mHjuW/gyA8IHlhc2hpblwgOwor5YuD6IiIIDwgYm9ra291XCA7CivljJbnn7MgPCBrYXNla2lcIDsKK+ekvuWkliA8IHNoYWdhaVwgOwor5Y+k5bufIDwga29ieW91XCA7CivluoPplpMgPCBoaXJvbWFcIDsKK+awt+aysyA8IGh5b3VnYVwgOwor5bmz6Z2iIDwgaGVpbWVuXCA7CivlkLvlkIggPCBmdW5nb3VcIDsKK+WIhumhniA8IGJ1bnJ1aVwgOwor5b6M55SfIDwgZ29zaG91XCA7Civlv6vmpb0gPCBrZXJha3VcIDsKK+iWrOWckiA8IHlha3VlblwgOwor5oGv5aWzIDwgc29rdWpvXCA7Civms5XlpJYgPCBob3VnYWlcIDsKK+mJhOWCmCA8IHRlc3NhblwgOwor5bm96ZaJIDwgeXV1aGVpXCA7Civlv43ms5UgPCBuaW5wb3VcIDsKK+WQjOWkpyA8IGRvdWRhaVwgOwor5b2555uuIDwgeWFrdW1lXCA7CivokZfogIUgPCBjaG9zaGFcIDsKK+WQjeWjsCA8IG1laXNlaVwgOwor5Y+k5bejIDwgZnVydXN1XCA7CivmsLTmsJcgPCBtaXp1a2VcIDsKK+W5tOmZkCA8IG5lbmdlblwgOwor5rKi5bq1IDwgdGFrdWFuXCA7Civmr5Lnn6IgPCBkb2t1eWFcIDsKK+WQiOWljyA8IGdhc3NvdVwgOwor5q+b55quIDwga2VnYXdhXCA7CivljZfmup8gPCBuYW5tZWlcIDsKK+ebrum8uyA8IG1laGFuYVwgOwor6YO9552jIDwgdG90b2t1XCA7CivljZfmuoAgPCBuYW5tYW5cIDsKK+mBi+izgyA8IHVuY2hpblwgOwor5Y6f5paHIDwgZ2VuYnVuXCA7CivpuqbkvqEgPCBiYWt1a2FcIDsKK+emgeS7pCA8IGtpbnJlaVwgOwor6Jep5Li7IDwgaGFuc2h1XCA7Civnn6XogrIgPCBjaGlpa3VcIDsKK+WKueiDvSA8IGtvdW5vdVwgOwor5YiG6ZqbIDwgYnVuemFpXCA7CivpgYHotbAgPCB0b25zb3VcIDsKK+WQieWgsSA8IGtpcHBvdVwgOwor5oCg5oWiIDwgdGFpbWFuXCA7CivpgKDphZIgPCB6b3VzaHVcIDsKK+WIhumZoiA8IGJ1bicnaW5cIDsKK+WIhumZkCA8IGJ1bmdlblwgOwor5oCd5oWuIDwgc2hpcnlvXCA7Civlh7HpoqggPCBnYWlmdXVcIDsKK+aAqOW/tSA8IG9uJyduZW5cIDsKK+WMlueUnyA8IGtlc2hvdVwgOwor6YeR5bGxIDwga2luemFuXCA7Civmgp/lhaUgPCBnb255dXVcIDsKK+mAuOi2syA8IGlzc29rdVwgOwor56Cl55+zIDwgdG9pc2hpXCA7Civlj6TlrrYgPCBmdXJ1aWVcIDsKK+iWrOWRsyA8IHlha3VtaVwgOwor55y86Y+hIDwgbWVnYW5lXCA7CivnnJ/pnZIgPCBtYXNzYW9cIDsKK+WNiua4myA8IGhhbmdlblwgOwor5Y+35aSWIDwgZ291Z2FpXCA7CivpgZToprMgPCB0YWtrYW5cIDsKK+WHuumamyA8IGRlZ2l3YVwgOwor5Y+O5beuIDwgc2h1dXNhXCA7CivmsbrmhI8gPCBrZXRzdWlcIDsKK+W6lei+uiA8IHRlaWhlblwgOwor5ZCb5ZG9IDwga3VubWVpXCA7Civph47lrr8gPCBub2p1a3VcIDsKK+efree3qCA8IHRhbnBlblwgOwor6JGb57KJIDwga3V6dWtvXCA7CivpgJrpgYsgPCB0c3V1dW5cIDsKK+iWhOWhqSA8IHVzdWppb1wgOwor5oKq5Lq6IDwgYWt1bmluXCA7CivpgKPovIkgPCByZW5zYWlcIDsKK+WIpemCuCA8IGJldHRlaVwgOwor5rOi5Y+KIDwgaGFreXV1XCA7Civljp/mi6AgPCBnZW5reW9cIDsKK+W8qee0miA8IGRva3l1dVwgOwor5q+b546JIDwga2VkYW1hXCA7Civph4zlrZAgPCBzYXRvZ29cIDsKK+ekvuWRvSA8IHNoYW1laVwgOwor5q2v6IKJIDwgaGFuaWt1XCA7Civojbfpno0gPCBuaWd1cmFcIDsKK+efs+eyiSA8IGlzaGlrb1wgOwor5oKp5LmxIDwgbm91cmFuXCA7CivljoTml6UgPCB5YWt1YmlcIDsKK+WNl+aspyA8IG5hbicnb3VcIDsKK+iAs+m8u+enkSA8IGppYmlrYVwgOwor6YGK6KanIDwgeXV1cmFuXCA7Civpga7olL0gPCBzaGFoZWlcIDsKK+iWrOWKuSA8IHlha2tvdVwgOwor5ZCN5ZOBIDwgbWVpaGluXCA7CivnpL7lj4sgPCBzaGF5dXVcIDsKK+mDoeecjCA8IGd1bmtlblwgOwor6YeN5amaIDwganV1a29uXCA7CivpgIHph5EgPCBzb3VraW5cIDsKK+WOmuaJiyA8IGF0c3VkZVwgOwor5bmV6ZaTIDwgbWFrdWFpXCA7CivlubTph5EgPCBuZW5raW5cIDsKK+WPjeWwhCA8IGhhbnNoYVwgOwor5Y+N5a++IDwgaGFudGFpXCA7CivlkI3lkJ8gPCBtZWlnaW5cIDsKK+ebrumrmCA8IG1lZGFrYVwgOwor6L+U6Zu7IDwgaGVuZGVuXCA7CivpiI3liIAgPCBkb250b3VcIDsKK+egtOeNhCA8IGhhZ29rdVwgOwor5rK55ZynIDwgeXVhdHN1XCA7Civlja/mnIggPCB1ZHp1a2lcIDsKK+awtOacqCA8IG1penVraVwgOwor56CC56SrIDwgc2FyZWtpXCA7CivmgJLlvLUgPCBkb2Nob3VcIDsKK+eUu+aetuW6pyA8IGdha2F6YVwgOwor5YiG6YqFIDwgZnVuZG91XCA7CivkuI3lronmsJcgPCBmdWFuZ2VcIDsKK+mAuOipsSA8IGl0c3V3YVwgOwor6I2J6a2aIDwgc291Z3lvXCA7CivljbPmmYIgPCBzb2t1amlcIDsKK+W8geiAhSA8IGJlbnNoYVwgOwor6YCa6LevIDwgdHN1dXJvXCA7Civok67moLkgPCByZW5rb25cIDsKK+WQiOWQjCA8IGdvdWRvdVwgOwor6L+R6ZqjIDwga2lucmluXCA7CivlpKflh7rmnaUgPCBvb2Rla2lcIDsKK+mHjeWkiSA8IGp1dWhlblwgOwor6aKo6YKq5rCXIDwga2F6ZWtlXCA7CivojZLppqwgPCBhcmF1bWFcIDsKK+W/q+aMmSA8IGthaWt5b1wgOwor5YiG6YeOIDwgYnVuJyd5YVwgOwor6YWS5p2vIDwgc2h1aGFpXCA7CivlkIzli6IgPCBkb3V6ZWlcIDsKK+awl+alvSA8IGtpcmFrdVwgOwor5rCR5qipIDwgbWlua2VuXCA7CivliIPph50gPCBoYWJhcmlcIDsKK+atpuWZqOW6qyA8IGJ1a2lrb1wgOwor5Y+C5a6uIDwgc2FuZ3V1XCA7CivliIbphY0gPCBidW5wYWlcIDsKK+mBuuiEsSA8IGlkYXRzdVwgOwor6L+wIDwganV0c3VcIDsKK+W/hSA8IGhpdHN1XCA7CivovrsgPCB0c3VqaVwgOwor5b65IDwgdGV0c3VcIDsKK+eepSA8IGJldHN1XCA7CivlvowgPCBub2NoaVwgOwor5b6LIDwgcml0c3VcIDsKK+edgCA8IGNoYWt1XCA7CivlvI8gPCBzaGlraVwgOwor55q6IDwgc2hpd2FcIDsKK+i6hSA8IGNob2t1XCA7Civnmb4gPCBoeWFrdVwgOwor55m9IDwgc2hpcm9cIDsKK+eZvCA8IGhvdHN1XCA7CivnmbogPCBoYXRzdVwgOwor5bm4IDwgc2FjaGlcIDsKK+W5tCA8IHRvc2hpXCA7CivnmaogPCBzaGFrdVwgOwor5be0IDwgdG9tb2VcIDsKK+eXhSA8IHlhbWFpXCA7CivnlaUgPCByeWFrdVwgOwor55WcIDwgY2hpa3VcIDsKK+eUuiA8IG1hY2hpXCA7CivnlLcgPCBvdG9rb1wgOwor55SxIDwgeW9zaGlcIDsKK+WztiA8IHNoaW1hXCA7Civos6ogPCB0YWNoaVwgOwor5bK4IDwga2lzaGlcIDsKK+WxiCA8IGt1dHN1XCA7CivlsLsgPCBzaGlyaVwgOwor5a+mIDwgaml0c3VcIDsKK+WvnyA8IHNhdHN1XCA7Civlr4YgPCBtaXRzdVwgOwor5a60IDwgdXRhZ2VcIDsKK+WuoiA8IGt5YWt1XCA7CivnjL4gPCBrYXRzdVwgOwor6KqsIDwgc2V0c3VcIDsKK+ipsCA8IGtpdHN1XCA7CivniLogPCBqaWppaVwgOwor54iqIDwgdHN1bWVcIDsKK+iooyA8IGtldHN1XCA7Civop7ggPCBzaG9rdVwgOwor6KeSIDwgdHN1bm9cIDsKK+WmuyA8IHRzdW1hXCA7CivnhrEgPCBuZXRzdVwgOwor6KW/IDwgbmlzaGlcIDsKK+WltCA8IHlhdHN1XCA7CivlpaogPCBkYXRzdVwgOwor5aSPIDwgbmF0c3VcIDsKK+eDiCA8IHJldHN1XCA7CivoorcgPCBhd2FzZVwgOwor54KOIDwgaG9ub29cIDsKK+WigyA8IHNha2FpXCA7CivlobUgPCBjaGlyaVwgOwor5aGaIDwgdHN1a2FcIDsKK+WfuiA8IG1vdG9pXCA7Civln5IgPCByYWNoaVwgOwor6b2iIDwgeW93YWlcIDsKK+m8viA8IGliaWtpXCA7CivonIIgPCBoYWNoaVwgOwor6buQIDwgbW9jaGlcIDsKK+a7hSA8IG1ldHN1XCA7CivompUgPCBrYWlrb1wgOwor6bm/IDwgc2hpa2FcIDsKK+iZqyA8IG11c2hpXCA7CivomZ4gPCBvc29yZVwgOwor5ZmCIDwgdXdhc2FcIDsKK+a3tSA8IGZ1Y2hpXCA7Civpt7IgPCB3YXNoaVwgOwor5reRIDwgc2h1a3VcIDsKK+m2tCA8IHRzdXJ1XCA7CivllocgPCByYXRzdVwgOwor5ZS+IDwgdHN1YmFcIDsKK+aziSA8IGl6dW1pXCA7CivmsrkgPCBhYnVyYVwgOwor5rKhIDwgYm90c3VcIDsKK+WShCA8IHRvdHN1XCA7CivmsYEgPCB0c3V5dVwgOwor6bCMIDwgZG9qb3VcIDsKK+WQiSA8IGtpY2hpXCA7Civlj6MgPCBrdWNoaVwgOwor5Y2YIDwgaGl0b2VcIDsKK+WNkiA8IHNvdHN1XCA7CivmrKEgPCB0c3VnaVwgOwor5qubIDwga3VzaGlcIDsKK+iKnSA8IHNoaWJhXCA7CivlipsgPCByeW9rdVwgOwor6Im2IDwgdHN1eWFcIDsKK+apiyA8IGhhc2hpXCA7CivmqKsgPCBrYXNoaVwgOwor6IiMIDwgc2hpdGFcIDsKK+WIgyA8IHlhaWJhXCA7CivohbAgPCBrb3NoaVwgOwor5YWOIDwgdXNhZ2lcIDsKK+WFgCA8IGtvdHN1XCA7CivohIggPCBteWFrdVwgOwor6aOvIDwgbWVzaGlcIDsKK+aiqCA8IG5hc2hpXCA7CivmoqIgPCBrb3p1ZVwgOwor5qKTIDwgYXp1c2FcIDsKK+mhjSA8IGhpdGFpXCA7CivpoIEgPCBwZWlqaVwgOwor57+BIDwgb2tpbmFcIDsKK+merSA8IG11Y2hpXCA7CivpnoQgPCBrYWJhblwgOwor5p2+IDwgbWF0c3VcIDsKK+e9sCA8IGJhdHN1XCA7CivnvaogPCB0c3VtaVwgOwor5L2bIDwgYnV0c3VcIDsKK+S9jSA8IGt1cmFpXCA7CivkvLggPCBub3NoaVwgOwor6ZywIDwgYXJhcmVcIDsKK+mcnCA8IHNoaW1vXCA7CivmnIggPCB0c3VraVwgOwor5puyIDwga3lva3VcIDsKK+mbnCA8IHphdHN1XCA7Civku5kgPCBzZW50b1wgOwor6ZuHIDwgeWF0b2lcIDsKK+S5viA8IGhvc2hpXCA7CivkuLsgPCBudXNoaVwgOwor57axIDwgdHN1bmFcIDsKK+e1tiA8IHpldHN1XCA7CivntYIgPCBvd2FyaVwgOwor5pONIDwgbWlzYW9cIDsKK+evgCA8IGJ1c2hpXCA7CivnrpIgPCBob3VraVwgOwor562UIDwga290YWVcIDsKK+aLgiA8IGZ1dHN1XCA7CivmiKYgPCBpa3VzYVwgOwor6YGTIDwgbWljaGlcIDsKK+mAuSA8IHRhdHN1XCA7CivpgIYgPCBneWFrdVwgOwor55696ICFIDwga29zaGFcIDsKK+WQjeWJjSA8IG5hbWFlXCA7CivluLDpoIYgPCBraWp1blwgOwor5bqn6KaWIDwgemFzaGlcIDsKK+W/q+aJkyA8IGthaWRhXCA7CivpgIHovp4gPCBzb3VqaVwgOwor5ZCN5YipIDwgbWVpcmlcIDsKK+eciemWkyA8IG1pa2VuXCA7Civno4HmgKcgPCBqaXNlaVwgOwor6Jas5L6hIDwgeWFra2FcIDsKK+egsueFmSA8IGhvdWVuXCA7CivnpLzlhIAgPCByZWlnaVwgOwor5rOV5YW3IDwgaG91Z3VcIDsKK+WQj+WFmiA8IHJpdG91XCA7Civnm67poZQgPCBtZWdhb1wgOwor56KR5paHIDwgaGlidW5cIDsKK+mAo+iqniA8IHJlbmdvXCA7Civph43lm7IgPCBjaG91aVwgOwor5rKu5ZaqIDwgc29zb3VcIDsKK+mBuue/kiA8IGlzaHV1XCA7CivpgbjogIUgPCBzZW5qYVwgOwor5q2M6IGWIDwga2FzZWlcIDsKK+mAoOiqniA8IHpvdWdvXCA7CivnoLLngasgPCBob3VrYVwgOwor6JK45rCXIDwgam91a2lcIDsKK+aAquWlhyA8IGthaWtpXCA7CivpgKPoqJggPCByZW5raVwgOwor6YeN5ZmoIDwganV1a2lcIDsKK+WKoOezliA8IGthdG91XCA7CivmganlhbggPCBvbnRlblwgOwor5bqP6KuWIDwgam9yb25cIDsKK+avheeEtiA8IGtpemVuXCA7CivliLbopocgPCBzZWloYVwgOwor5q2O576OIDwgdGFuYmlcIDsKK+mAgOi3ryA8IHRhaXJvXCA7Civlv5zmiYsgPCBvdXNodVwgOwor6YCf6KiYIDwgc29ra2lcIDsKK+azouS5sSA8IGhhcmFuXCA7Civlv5zmiKYgPCBvdXNlblwgOwor6YCj6KaHIDwgcmVucGFcIDsKK+aAqOWjsCA8IGVuc2VpXCA7CivmsrnljZggPCB5dXRhblwgOwor5bqP6KmeIDwgam9zaGlcIDsKK+WMu+alrSA8IGlneW91XCA7Civluo/oqIAgPCBqb2dlblwgOwor5b+Y5oiRIDwgYm91Z2FcIDsKK+iNt+mHjSA8IGthanV1XCA7CivljLrmpJwgPCBrdWtlblwgOwor5Y2X5paXIDwgbmFudG9cIDsKK+ayveWIuCA8IGtva2VuXCA7CivljYrmnJ8gPCBoYW5raVwgOwor5ZCM5L6hIDwgZG91a2FcIDsKK+WLleeUuyA8IGRvdWdhXCA7CivmsrPljZcgPCBrYW5hblwgOwor6JaE5YiDIDwgdXN1YmFcIDsKK+WKoOeulyA8IGthc2FuXCA7CivlubTos6YgPCBuZW5wdVwgOwor5Y+j5ZGzIDwga291bWlcIDsKK+i/t+i3ryA8IG1laXJvXCA7CivmsrnliaQgPCB5dXphaVwgOwor5bm06LOAIDwgbmVuZ2FcIDsKK+WPr+WLlSA8IGthZG91XCA7CivlubTosqIgPCBuZW5ndVwgOwor5b6h5qCqIDwgb2thYnVcIDsKK+WOqOWtkCA8IHp1c2hpXCA7CivliKXoqJggPCBiZWtraVwgOwor5ZCP5Lq6IDwgcmlqaW5cIDsKK+WQhOWAiyA8IGtha2tvXCA7Civpgqrnn6UgPCBqYWNoaVwgOwor5Y+k5Y+CIDwga29zYW5cIDsKK+azleS6iyA8IGhvdWppXCA7CivolYPlpLcgPCBiYW4nJ2lcIDsKK+mHjeWRsyA8IG9tb21pXCA7CivmqLnpvaIgPCBqdXJlaVwgOwor5Y2D5pyoIDwgY2hpZ2lcIDsKK+aBteS4jiA8IGtlaXlvXCA7CivphbjluqYgPCBzYW5kb1wgOwor5Yqx56OBIDwgcmVpamlcIDsKK+WJo+iIniA8IGtlbmJ1XCA7Civms5XkuLsgPCBob3NzdVwgOwor5q+N5rivIDwgYm9rb3VcIDsKK+mHjuWQiCA8IHlhZ291XCA7CivlkIzkuosgPCBkb3VqaVwgOwor5Y+v5YiGIDwga2FidW5cIDsKK+mHjuWPsiA8IHlhc2hpXCA7Civliqnnpa0gPCBqb3NhaVwgOwor5ZCE5L2NIDwga2FrdWlcIDsKK+W+oeacrSA8IG9mdWRhXCA7CivpgY7oiKwgPCBrYWhhblwgOwor5YiG6LOmIDwgYnVucHVcIDsKK+eoruOAhSA8IHNodWp1XCA7Civlv5jmgakgPCBib3VvblwgOwor5b6F5qmfIDwgdGFpa2lcIDsKK+aBqeS6uiA8IG9uamluXCA7Civlv4zmhpogPCBraXRhblwgOwor6YGL6IiqIDwgdW5rb3VcIDsKK+ays+WGhSA8IGhhbm9pXCA7CivmgajkuosgPCBrb25qaVwgOwor5oCn5ZmoIDwgc2Vpa2lcIDsKK+aAkuWjsCA8IGRvc2VpXCA7CivmqZ/pppYgPCBraXNodVwgOwor5YiX6KiYIDwgcmVra2lcIDsKK+WPpOWItiA8IGtvc2VpXCA7Civlj43lk7ogPCBoYW5wb1wgOwor5Y2B5pelIDwgdG9va2FcIDsKK+W+oeaYvCA8IG9oaXJ1XCA7Civpg73msJEgPCB0b21pblwgOwor55yL6YGOIDwga2Fua2FcIDsKK+WPpOWIgCA8IGtvdG91XCA7CivlvKXnlJ8gPCB5YXlvaVwgOwor6YCB6KmxIDwgc291d2FcIDsKK+W5s+iqniA8IGhlaWdvXCA7Civmr5LmsJcgPCBkb2trZVwgOwor55+b55u+IDwgbXVqdW5cIDsKK+egtOawtCA8IGhhc3VpXCA7Civph5HliKkgPCBraW5yaVwgOwor5rOJ5LiLIDwgc2Vua2FcIDsKK+i/lOi+niA8IGhlbmppXCA7CivptZ7mr5sgPCBnYW1vdVwgOwor5Y+Z5YuyIDwgam9rdW5cIDsKK+ayluWQiCA8IG9raWFpXCA7Civlj6TlhbggPCBrb3RlblwgOwor6a+o6aOyIDwgZ2VpaW5cIDsKK+mHjeWIqSA8IGp1dXJpXCA7CivljbDlvbEgPCBpbicnZWlcIDsKK+WNmOaJkyA8IHRhbmRhXCA7CivlvqHmlbAgPCBva2F6dVwgOwor5Y+X5YuVIDwganVkb3VcIDsKK+mBk+e+qSA8IGRvdWdpXCA7CivlvozmnrYgPCBrb3VrYVwgOwor6YGg57iBIDwgdG9vZW5cIDsKK+WIhuiqsiA8IGJ1bmthXCA7CivpgqbnlLsgPCBob3VnYVwgOwor6YeO5YWaIDwgeWF0b3VcIDsKK+edgOihoyA8IHlha3VpXCA7Civlj5fliJEgPCBqdWtlaVwgOwor5q+O5qyhIDwgbWFpamlcIDsKK+W+jOacnyA8IGtvdWtpXCA7CivolanlhZAgPCB0b3VqaVwgOwor5rK55LqVIDwgeXVzZWlcIDsKK+W7uueikSA8IGtlbnBpXCA7CivlhqXpl4cgPCBtZWlhblwgOwor5biD6ZmjIDwgZnVqaW5cIDsKK+iNkumHjiA8IGtvdXlhXCA7CivmsrvkuIsgPCBjaGlrYVwgOwor6L666YSZIDwgaGVucGlcIDsKK+mFkuW+kiA8IHNodXRvXCA7CivmqZ/pm7cgPCBraXJhaVwgOwor5q2M56i/IDwga2Frb3VcIDsKK+W8p+eKtiA8IGtvam91XCA7Civpgbfnp7sgPCBzZW4nJ2lcIDsKK+W4sOmChCA8IGtpa2FuXCA7Civmra/nl5sgPCBoYWl0YVwgOwor5rCR5oi4IDwgbWlua29cIDsKK+WKoOebnyA8IGthbWVpXCA7Civoj4roirEgPCBraWtrYVwgOwor5Y+k5L6LIDwga29yZWlcIDsKK+WPsOS4iyA8IGRhaWthXCA7CivliLvoi6YgPCBrb2trdVwgOwor5q+N5qipIDwgYm9rZW5cIDsKK+WPpOS9kyA8IGtvdGFpXCA7CivlvoDmnaUgPCBvdXJhaVwgOwor5Y+X5YOPIDwganV6b3VcIDsKK+WPpeS8miA8IGt1a2FpXCA7Civlj6TkvJ0gPCBrb2RlblwgOwor5b+c5a++IDwgb3V0YWlcIDsKK+WNseWzsCA8IGtpaG91XCA7CivmrrrmsJcgPCBzYWtraVwgOwor5Yqp55SjIDwgam9zYW5cIDsKK+W4sOi+siA8IGtpbm91XCA7Civlj6Tku6MgPCBrb2RhaVwgOwor5Y+k5LuKIDwga29rb25cIDsKK+WPpOS6uiA8IGtvamluXCA7CivpgZXntIQgPCBpeWFrdVwgOwor5Y6f5ZuzIDwgZ2VuenVcIDsKK+WNgeaJiyA8IGppdHRlXCA7CivmsJHmhI8gPCBtaW4nJ2lcIDsKK+WPguWKoCA8IHNhbmthXCA7Civlhrbph5EgPCB5YWtpblwgOwor55+z54GrIDwgc2Vra2FcIDsKK+WFtemmrCA8IGhlaWJhXCA7CivlvqHmiYAgPCBnb3Nob1wgOwor6YeO5Lq6IDwgeWFqaW5cIDsKK+W8geeWjyA8IGJlbnNvXCA7Civljp/lmaggPCBnZW5raVwgOwor6YCg6IqxIDwgem91a2FcIDsKK+W4nemDvSA8IHRlaXRvXCA7Civoi7HprYIgPCBlaWtvblwgOwor5Y6t5ZGzIDwgaXlhbWlcIDsKK+WNseWusyA8IGtpZ2FpXCA7CivlupfoiJcgPCB0ZW5wb1wgOwor6YWN5biDIDwgaGFpZnVcIDsKK+auteatqSA8IHRhbmJ1XCA7CivljZjluqcgPCB0YW56YVwgOwor5Y+Z5Lu7IDwgam9uaW5cIDsKK+asp+exsyA8IG91YmVpXCA7CivmgJLlj7cgPCBkb2dvdVwgOwor5rC45a2YIDwgZWl6b25cIDsKK+W3pemdoiA8IGt1bWVuXCA7CivlhoXpnIAgPCBuYWlqdVwgOwor5Y+X5Lu7IDwganVuaW5cIDsKK+W+jOaPtCA8IGtvdWVuXCA7CivnnIzorbAgPCBrZW5naVwgOwor5Yuk5rGCIDwgZ29uZ3VcIDsKK+eci+ittyA8IGthbmdvXCA7CivlhobpmaMgPCBlbmppblwgOwor6YW45Z+6IDwgc2Fua2lcIDsKK+W4sOi2qCA8IGtpc3V1XCA7CivlvZPmqZ8gPCB0b3VraVwgOwor5byB55CGIDwgYmVucmlcIDsKK+avjeadkCA8IGJvemFpXCA7CivlvpLmiYsgPCB0b3NodVwgOwor55ub6YGLIDwgc2VpdW5cIDsKK+atr+eJmSA8IHNoaWdhXCA7CivmsJHluqYgPCBtaW5kb1wgOwor6YGL566XIDwgdW56YW5cIDsKK+W/nOWkiSA8IG91aGVuXCA7CivphZLlrrYgPCBzaHVrYVwgOwor5byl5ryrIDwgYmltYW5cIDsKK+mFkuWutCA8IHNodWVuXCA7Civprp/psYcgPCBhbmtvdVwgOwor6L2f6Z+zIDwgZ291b25cIDsKK+W+oeW/tSA8IGdvbmVuXCA7CivlvpfmhI8gPCB0b2t1aVwgOwor5YW46ZuFIDwgdGVuZ2FcIDsKK+WPjOS6kiA8IHNvdWdvXCA7Civli5jmsJcgPCBrYW5raVwgOwor6L6e6YCAIDwgaml0YWlcIDsKK+WOn+WPpSA8IGdlbmt1XCA7CivpgbrnlZkgPCBpcnl1dVwgOwor5qmf6YqDIDwga2lqdXVcIDsKK+mDveaUvyA8IHRvc2VpXCA7Civli5XmsJcgPCBkb3VraVwgOwor5b+c5aCxIDwgb3Vob3VcIDsKK+W5vOiKvSA8IHlvdWdhXCA7CivnoazluqYgPCBrb3Vkb1wgOwor5b6p5biwIDwgZnVra2lcIDsKK+asuueeniA8IGdpbWFuXCA7CivpgaDnn6IgPCB0b295YVwgOwor6YGO56iLIDwga2F0ZWlcIDsKK+awtOWkqyA8IHN1aWZ1XCA7Civmr43mlpEgPCBib2hhblwgOwor5oCc5L+QIDwgcmVpcmlcIDsKK+W4gumDqCA8IHNoaWJ1XCA7CivliqvngasgPCBnb3VrYVwgOwor5Yal6YCUIDwgbWVpZG9cIDsKK+WPguS6iyA8IHNhbmppXCA7CivlvqHluaMgPCBnb2hlaVwgOwor5by+5qmfIDwgZGFua2lcIDsKK+mBoOecvCA8IGVuZ2FuXCA7CivnoLTmkacgPCBoYXNhaVwgOwor6L+R6KGbIDwga29ub2VcIDsKK+efreazoiA8IHRhbnBhXCA7CivpgaDnm64gPCB0b29tZVwgOwor6YaH5YyWIDwganVua2FcIDsKK+WIpOiAhSA8IGhhbmphXCA7CivnoLTmkI0gPCBoYXNvblwgOwor6YGT56C0IDwgZG91aGFcIDsKK+iLsemciiA8IGVpcmVpXCA7Civli4fmsJcgPCB5dXVraVwgOwor5rCX5a2UIDwga2lrb3VcIDsKK+WKoOeCuSA8IGthdGVuXCA7CivphbjlkbMgPCBzYW5taVwgOwor5Yag6L6eIDwga2FuamlcIDsKK+iLsembhCA8IGVpeXV1XCA7Civlv6vlkbMgPCBrYWltaVwgOwor5bmz6IelIDwgaGVpZ2FcIDsKK+WOmuWIqSA8IGtvdXJpXCA7CivlvpLlvJ8gPCB0b3RlaVwgOwor55+t5rCXIDwgdGFua2lcIDsKK+awkeWutiA8IG1pbmthXCA7Civlt67ph5EgPCBzYWtpblwgOwor6YOo5pWwIDwgYnVzdXVcIDsKK+W6g+e+qSA8IGtvdWdpXCA7Civli4fmraYgPCB5dXVidVwgOwor5YWI6aeGIDwgc2Vua3VcIDsKK+mCquazlSA8IGphaG91XCA7Civlv4zlnqMgPCBpZ2FraVwgOwor5YmN56eRIDwgemVua2FcIDsKK+awj+WtkCA8IHVqaWtvXCA7Civlt67phY0gPCBzYWhhaVwgOwor55+t5q2MIDwgdGFua2FcIDsKK+WGhemHjiA8IG5haXlhXCA7Civnm7joo5wgPCBzb3Vob1wgOwor5bym5q2MIDwgZ2Vua2FcIDsKK+WNg+WutiA8IHNlbmtlXCA7Civoi6bpm6MgPCBrdW5hblwgOwor5byY5rOVIDwgZ3Vob3VcIDsKK+apn+i7oiA8IGtpdGVuXCA7CivnoLTmiJIgPCBoYWthaVwgOwor5q+A5pCNIDwga2lzb25cIDsKK+WNgeWtlyA8IGp1dWppXCA7Civlt67pgaMgPCBzYWtlblwgOwor5b6h5a60IDwgZ3lvZW5cIDsKK+WLmOafuyA8IGthbnNhXCA7Civnn67mqLkgPCB3YWlqdVwgOwor55m96ZuoIDwgaGFrdXVcIDsKK+W+oeWuhSA8IG90YWt1XCA7CivlhoXpg6ggPCBuYWlidVwgOwor5Ya36KqeIDwgcmVpZ29cIDsKK+W6p+emhSA8IHphemVuXCA7CivojbfokYkgPCBrYXlvdVwgOwor6Ium6ZeYIDwga3V0b3VcIDsKK+i+nuitsiA8IGppam91XCA7CivljLvlraYgPCBpZ2FrdVwgOwor5Yqg5ribIDwga2FnZW5cIDsKK+W6p+ekvCA8IHphcmVpXCA7CivphZLlmaggPCBzaHVraVwgOwor5bem6YG3IDwgc2FzZW5cIDsKK+eZu+mZoiA8IHRvdWluXCA7CivlhYjpnZ4gPCBzZW5waVwgOwor6YGL55e0IDwgdW5jaGlcIDsKK+W4guiyuyA8IHNoaWhpXCA7CivlvoDlubQgPCBvdW5lblwgOwor5bqc56iOIDwgZnV6ZWlcIDsKK+eglOaRqSA8IGtlbm1hXCA7Civlt6Hpgo8gPCBqdW5yYVwgOwor5Ymj55K9IDwga2VuamlcIDsKK+WFjemZpCA8IG1lbmpvXCA7CivoirHprYEgPCBvaXJhblwgOwor5bu25rueIDwgZW50YWlcIDsKK+W3pui+uiA8IHNhaGVuXCA7Civlvq7lobUgPCBtaWppblwgOwor6YOo5omAIDwgYnVzaG9cIDsKK+WMueWppiA8IGhpcHB1XCA7CivlhYnpmbAgPCBrb3VpblwgOwor5qyh55S3IDwgamluYW5cIDsKK+WKoOazlSA8IGthaG91XCA7CivlvozlsL4gPCBrb3ViaVwgOwor5YaG6LuiIDwgZW50ZW5cIDsKK+mBk+eQhiA8IGRvdXJpXCA7CivmrbPmrKEgPCBzYWlqaVwgOwor5YaX6LK7IDwgam91aGlcIDsKK+WIpeeuhyA8IGJla2tvXCA7CivojLboqbEgPCBjaGF3YVwgOwor5q+N5oCnIDwgYm9zZWlcIDsKK+awl+WcjyA8IGtpa2VuXCA7CivluILorbAgPCBzaGlnaVwgOwor5rCX5ZujIDwga2lkYW5cIDsKK+W/nOWIhiA8IG91YnVuXCA7CivlvqHlpKcgPCBvbnRhaVwgOwor5Yqg5rC0IDwga2FzdWlcIDsKK+avm+W4gyA8IG1vdWZ1XCA7Civlho3otbcgPCBzYWlraVwgOwor5rC45YqrIDwgZWlnb3VcIDsKK+awtOWMliA8IHN1aWthXCA7CivpgJTnq68gPCB0b3RhblwgOwor6YO95bqmIDwgdHN1ZG9cIDsKK+avjeW9oiA8IGJva2VpXCA7CivlubPntKAgPCBoZWlzb1wgOwor5Yu/5oCqIDwgbW9ra2VcIDsKK+WGmeitnCA8IHNoYWZ1XCA7CivmraPmr5QgPCBzZWloaVwgOwor5b285bK4IDwgaGlnYW5cIDsKK+WNsOWIpCA8IGlucGFuXCA7Civmr47luqYgPCBtYWlkb1wgOwor5YWo6YO9IDwgemVudG9cIDsKK+WNsOWIgCA8IGludG91XCA7Civlhajpg6ggPCB6ZW5idVwgOwor5rC05YipIDwgc3VpcmlcIDsKK+W9qeW6piA8IHNhaWRvXCA7CivlvaLlvbEgPCBrZWllaVwgOwor5Yil56eRIDwgYmVra2FcIDsKK+mBoOeBqyA8IHRvb2JpXCA7CivokYnmnKsgPCBoYXp1ZVwgOwor5b+r5LqLIDwga2FpamlcIDsKK+W6nOecjCA8IGZ1a2VuXCA7Civlhpfoqp4gPCBqb3Vnb1wgOwor5Yy65Z+fIDwga3Vpa2lcIDsKK+W3qOiyuyA8IGt5b2hpXCA7CivlvqHlnYogPCBnb2JvdVwgOwor55+i5p2lIDwgeWFyYWlcIDsKK+WMluWwjiA8IGtlZG91XCA7Civoi7HpgoEgPCBlaW1haVwgOwor5b6M5aa7IDwgZ29zYWlcIDsKK+avlOWztiA8IGhpdG91XCA7CivljZjlj6UgPCB0YW5rdVwgOwor5rCX5ZOBIDwga2loaW5cIDsKK+WGjeitsCA8IHNhaWdpXCA7Civlt6XosrsgPCBrb3VoaVwgOwor5Yud5omLIDwga2F0dGVcIDsKK+ecvOeqqSA8IGdhbmthXCA7CivluIPooosgPCBob3RlaVwgOwor6Im26bqXIDwgZW5yZWlcIDsKK+WEqumbhSA8IHl1dWdhXCA7Civmr5vlrZQgPCBrZWFuYVwgOwor56C05bGLIDwgaGFva3VcIDsKK+WLpOaDsCA8IGtpbmRhXCA7CivlhoXorbAgPCBuYWlnaVwgOwor5q2U5qy3IDwga3lva2lcIDsKK+i8uOmKgCA8IHl1Z2luXCA7Civlhajouq8gPCB6ZW5rdVwgOwor5bmz56mPIDwgaGVpb25cIDsKK+WNs+S9jSA8IHNva3VpXCA7Civluo/nm6QgPCBqb2JhblwgOwor6L+R57+SIDwga2luanVcIDsKK+aooemAoCA8IG1vem91XCA7Civmr43lsYsgPCBvbW95YVwgOwor6a2R6a2FIDwgY2hpbWlcIDsKK+awuOS9jyA8IGVpanV1XCA7Civnm67ojLYgPCBtZWNoYVwgOwor5YWs6LevIDwga291cm9cIDsKK+WIh+espiA8IGtpcHB1XCA7CivmqKrou6IgPCBvdXRlblwgOwor5bm056efIDwgbmVuc29cIDsKK+i7jem8kyA8IGd1bmtvXCA7CivljYrlj68gPCBoYW5rYVwgOwor5Y2K5Y+lIDwgaGFua3VcIDsKK+WNmOWIqSA8IHRhbnJpXCA7CivlvrPljJYgPCB0b2trYVwgOwor5Yip55uKIDwgcmlla2lcIDsKK+asoeeCuSA8IGppdGVuXCA7CivlvZPluqcgPCB0b3V6YVwgOwor5b6T5ZugIDwganV1aW5cIDsKK+awuOS7oyA8IGVpdGFpXCA7CivmsJfli6IgPCBraXNlaVwgOwor5q2v5py2IDwgc2hpZGFcIDsKK+ats+aariA8IHNlaWJvXCA7CivlvbzlpbQgPCBhaXRzdVwgOwor5b6p5Y+kIDwgZnVra29cIDsKK+WHhOiJtiA8IHNlaWVuXCA7Civmr43lrZAgPCBib3NoaVwgOwor6YGg5rW3IDwgZW5rYWlcIDsKK+awl+WJjSA8IGtpbWFlXCA7CivljYPlj6QgPCBzZW5rb1wgOwor5Ya36I+TIDwgcmVpa2FcIDsKK+W8leaVsCA8IGluc3V1XCA7CivljKrlm6MgPCBoaWRhblwgOwor6YWN5YKZIDwgaGFpYmlcIDsKK+W+ruWLlSA8IGJpZG91XCA7CivmsLjkuJYgPCBlaXNlaVwgOwor5q615beuIDwgZGFuc2FcIDsKK+W9ueWkqyA8IGVraWZ1XCA7CivmsJfliIYgPCBraWJ1blwgOwor6YWS5L+dIDwgc2h1aG9cIDsKK+W8t+aEjyA8IGt5b3VpXCA7CivlhoXopo8gPCBuYWlraVwgOwor6YGg5rOzIDwgZW4nJ2VpXCA7CivojYnoirEgPCBzb3VrYVwgOwor6YWU5L2ZIDwgc3VpeW9cIDsKK+iSsuWboyA8IGZ1dG9uXCA7CivlvqHlj7AgPCBtaWRhaVwgOwor6LuN6baPIDwgc2hhbW9cIDsKK+mAo+eQhiA8IHJlbnJpXCA7CivpgqrmjqggPCBqYXN1aVwgOwor5rCR5YipIDwgbWlucmlcIDsKK+mBi+a8lSA8IHVuc291XCA7CivpgKPnj6AgPCByZW5qdVwgOwor5Yip55SoIDwgcml5b3VcIDsKK+W+ruWIhiA8IGJpYnVuXCA7CivljYjliY0gPCBnb3plblwgOwor6Iux6LOHIDwgZWlzaGlcIDsKK+WGheijjyA8IGRhaXJpXCA7CivovLjpgIEgPCB5dXNvdVwgOwor5YWI6YCUIDwgc2VuZG9cIDsKK+WKqeaUuyA8IGpva291XCA7Civmrr/lrocgPCBkZW4nJ3VcIDsKK+iKn+mZpCA8IHNhbmpvXCA7CivliIfno4sgPCBzZXNzYVwgOwor5rCR5YW3IDwgbWluZ3VcIDsKK+m1hOWwviA8IHNoaWJpXCA7CivljLvljZogPCBpaGFrdVwgOwor6Iy26I+TIDwgY2hha2FcIDsKK+W+ruWFiSA8IGJpa291XCA7CivmranmlbAgPCBob3N1dVwgOwor5q+O5aScIDwgbWFpeW9cIDsKK+atpuaWrSA8IGJ1ZGFuXCA7CivljZjkvY0gPCB0YW4nJ2lcIDsKK+WFvOijnCA8IGtlbnBvXCA7CivliqDmlbAgPCBrYXN1dVwgOwor5b2T5a62IDwgdG91a2VcIDsKK+W8t+W8lSA8IGdvdWluXCA7CivlvpLlkI0gPCBhZGFuYVwgOwor5b6h5Ye4IDwgb2Rla29cIDsKK+W9k+WtlyA8IGF0ZWppXCA7CivphY3kuIsgPCBoYWlrYVwgOwor5YWs6Ki0IDwga291c29cIDsKK+W5s+eZkiA8IGhlaXl1XCA7CivnmbrotbcgPCBob2traVwgOwor5rCX5L2TIDwga2l0YWlcIDsKK+mCquaFsyA8IGpha2VuXCA7CivljLrliIYgPCBrdWJ1blwgOwor6YG/5pqRIDwgaGlzaG9cIDsKK+mBiuazsyA8IHl1dWVpXCA7CivljLrlh6YgPCBrdXNob1wgOwor5q+N5aCCIDwgYm9kb3VcIDsKK+W+oeWFjSA8IGdvbWVuXCA7CivlvqHlhYggPCBvc2FraVwgOwor6Iy26IiXIDwgY2hhaG9cIDsKK+WLh+W+gCA8IHl1dW91XCA7CivlvJPmiYsgPCB5dW5kZVwgOwor5Y2X5LiLIDwgbmFua2FcIDsKK+WMuuWGhSA8IGt1bmFpXCA7CivoibLpppkgPCBpcm9rYVwgOwor5b6S5Yq0IDwgdG9yb3VcIDsKK+WFmuitsCA8IHRvdWdpXCA7CivpgqrmgqogPCBqYWFrdVwgOwor5bm055SrIDwgbmVucG9cIDsKK+mDqOWkliA8IGJ1Z2FpXCA7CivmrYzmm7ggPCBrYXNob1wgOwor5Ymb5rCXIDwgZ291a2lcIDsKK+W8p+W9oiA8IGtva2VpXCA7Civli6LlrrYgPCBzZWlrYVwgOwor5YqD5pyfIDwga2Fra2lcIDsKK+egguWyqSA8IHNhZ2FuXCA7CivpgqrmgYsgPCBqYXJlblwgOwor5rCX5LiIIDwga2lqb3VcIDsKK+W+qeS9jSA8IGZ1a3VpXCA7CivlvpLliJEgPCB0b2tlaVwgOwor55uu57eaIDwgbWVzZW5cIDsKK+iQjOacqCA8IG1vZWdpXCA7CivlhrfnvbUgPCByZWliYVwgOwor5rCR5LqLIDwgbWluamlcIDsKK+efqeW9oiA8IGt1a2VpXCA7Civpgbrml48gPCBpem9rdVwgOwor5q+b5ZSQIDwga2V0b3VcIDsKK+WFqOijuCA8IHplbnJhXCA7Civpgqrlv7UgPCBqYW5lblwgOwor5Yqp5oiQIDwgam9zZWlcIDsKK+i7jemmrCA8IGd1bmJhXCA7CivlibXmoYggPCBzb3VhblwgOwor5qih6KmmIDwgbW9zaGlcIDsKK+mBiuatqSA8IHl1dWhvXCA7Civlh7nnnLwgPCBvdWdhblwgOwor5b2T5aScIDwgdG91eWFcIDsKK+i7iummrCA8IHNoYWJhXCA7CivliqDmi4UgPCBrYXRhblwgOwor6bSo5bGFIDwga2Ftb2lcIDsKK+W+oeS+myA8IG90b21vXCA7CivlvpLlhZogPCB0b3RvdVwgOwor5YaG6JOLIDwgZW5nYWlcIDsKK+WNg+S7oyA8IGNoaXlvXCA7CivlhYTosrQgPCBhbmlraVwgOwor6Ium6KiAIDwga3VnZW5cIDsKK+W+oeS8vSA8IG90b2dpXCA7CivljJblkIggPCBrYWdvdVwgOwor5Yip54K5IDwgcml0ZW5cIDsKK+msvOmdoiA8IGtpbWVuXCA7CivovL/oq5YgPCB5b3JvblwgOwor5Y2B5LqUIDwganV1Z29cIDsKK+atu+W+jCA8IHNoaWdvXCA7CivljYHkuowgPCBqdXVuaVwgOwor5qiq6KGMIDwgb3Vrb3VcIDsKK+W+oeS7gSA8IGdvamluXCA7CivlvozlhYkgPCBnb2tvdVwgOwor5YWI6K2wIDwgc2VuZ2lcIDsKK+mBoOadpSA8IGVucmFpXCA7CivliY3mra8gPCBtYWViYVwgOwor6YGg5pybIDwgZW5ib3VcIDsKK+WHuueVqiA8IGRlYmFuXCA7Civnn6Xlt7EgPCBjaGlraVwgOwor5Yqx5bynIDwgcmVpa29cIDsKK+eci+egtCA8IGthbnBhXCA7CivlvqHkuIogPCBva2FtaVwgOwor5YWN6Ki0IDwgbWVuc29cIDsKK+W9ueWLmSA8IGVraW11XCA7Civokpnlj6QgPCBtb3Vrb1wgOwor5Yag6ICFIDwga2FuamFcIDsKK+W7g+ajhCA8IGhhaWtpXCA7CivliKnmvaQgPCByaWp1blwgOwor5YOn6ZmiIDwgc291aW5cIDsKK+i7jemdtCA8IGd1bmthXCA7CivlhqTnvaogPCBlbnphaVwgOwor6YGg5pmvIDwgZW5rZWlcIDsKK+WGheiLkSA8IG5haWVuXCA7Civlu4PmoYggPCBoYWlhblwgOwor6LuN6ZyAIDwgZ3VuanVcIDsKK+msvOmWgCA8IGtpbW9uXCA7CivpgaDmlrkgPCBlbnBvdVwgOwor5bem6Ii3IDwgc2FnZW5cIDsKK+WFgeiosSA8IGlua3lvXCA7CivluLDnpL4gPCBraXNoYVwgOwor5Yqj5bynIDwgcmVra29cIDsKK+mDqOWTgSA8IGJ1aGluXCA7CivnoILlobUgPCBzYWppblwgOwor5Yid5ryUIDwgc2hvZW5cIDsKK+atqeW7iiA8IGhvcm91XCA7CivmrYzmiYsgPCBrYXNodVwgOwor5b6M5LqLIDwga291amlcIDsKK+WLh+WppiA8IHl1dWZ1XCA7CivmrarluqYgPCB3YWlkb1wgOwor5bmz54KJIDwgaGVpcm9cIDsKK+i+suenkSA8IG5vdWthXCA7CivmrablvIEgPCBidWJlblwgOwor6YO95YaFIDwgdG9uYWlcIDsKK+W8n+WtkCA8IGRlc2hpXCA7Civlt6bohLMgPCBzYW5vdVwgOwor5Yqg5bm0IDwga2FuZW5cIDsKK+i/keeVvyA8IGtpbmtpXCA7CivlvIHluqcgPCBiZW56YVwgOwor5Yil5rS+IDwgYmVwcGFcIDsKK+ato+W6pyA8IHNlaXphXCA7CivlvJXlsI4gPCBpbmRvdVwgOwor6YCj5q2MIDwgcmVuZ2FcIDsKK+mtlOmBkyA8IG1hZG91XCA7CivlvbHlg48gPCBlaXpvdVwgOwor5ber6ICFIDwgZnVzaGFcIDsKK+WHueeJiCA8IG91YmFuXCA7CivlhoXogLMgPCBuYWlqaVwgOwor5b2T5ZCmIDwgdG91aGlcIDsKK+WIqeawtCA8IHJpc3VpXCA7CivpgKDmrKEgPCB6b3VqaVwgOwor5YWt6IqxIDwgcmlra2FcIDsKK+WHpueQhiA8IHNob3JpXCA7Civlu7blvJUgPCBlbicnaW5cIDsKK+edv+aZuiA8IGVpY2hpXCA7Civlhavoi6YgPCBoYWtrdVwgOwor5q+U5YCrIDwgaGlyaW5cIDsKK+mBjuaVjyA8IGthYmluXCA7Civlu7blu7YgPCBlbicnZW5cIDsKK+WLleWboCA8IGRvdWluXCA7CivlvIrlsaUgPCBoZWlyaVwgOwor6YG65b6zIDwgaXRva3VcIDsKK+egtOWAqyA8IGhhcmluXCA7CivljJfkuqwgPCBwZWtpblwgOwor56CC5Zi0IDwgc2FzaGlcIDsKK+WJjeacnyA8IHplbmtpXCA7CivmrKHmlbAgPCBqaXN1dVwgOwor6YCg5qmfIDwgem91a2lcIDsKK+avlOS+iyA8IGhpcmVpXCA7Civpg6jliIYgPCBidWJ1blwgOwor5YaN57iBIDwgc2FpZW5cIDsKK+ebruecqSA8IG1lbWFpXCA7CivmqLnohIIgPCBqdXNoaVwgOwor5q6L5Z+6IDwgemFua2lcIDsKK+mAuOabuCA8IGlzc2hvXCA7Civpg73kvJogPCB0b2thaVwgOwor5qy95oWVIDwga2luYm9cIDsKK+mDqOWGhSA8IGJ1bmFpXCA7Civlha3ohZEgPCByb3BwdVwgOwor6YCT5qyhIDwgdGVpamlcIDsKK+mDveS6uiA8IHRvamluXCA7CivpgYvmkKwgPCB1bnBhblwgOwor5YmN5pelIDwgbWFlYmlcIDsKK+avjeS9kyA8IGJvdGFpXCA7CivliKnmqKkgPCByaWtlblwgOwor6YG35bqnIDwgc2VuemFcIDsKK+WKoOWusyA8IGthZ2FpXCA7CivpgaDmha4gPCBlbnJ5b1wgOwor5Yun5YyWIDwga2FuZ2VcIDsKK+WLh+WbsyA8IHl1dXRvXCA7Civoj6nmj5AgPCBib2RhaVwgOwor5YOn6YO9IDwgc291enVcIDsKK+atpuWumCA8IGJ1a2FuXCA7CivliJ3mrakgPCBzaG9ob1wgOwor55+z5ZmoIDwgc2Vra2lcIDsKK+mAgOayuyA8IHRhaWppXCA7Civoj7LmiY0gPCBoaXNhaVwgOwor5Yuk5YuZIDwga2lubXVcIDsKK+ato+WtlyA8IHNlaWppXCA7Civlt6jntLAgPCBrb3NhaVwgOwor6YGL5oyHIDwgdW5zaGlcIDsKK+mzpeWxhSA8IHRvcmlpXCA7CivlubPmsJcgPCBoZWlraVwgOwor6YCj5p62IDwgcmVua2FcIDsKK+WIhua0viA8IGJ1bnBhXCA7Civou43pg6ggPCBndW5idVwgOwor5Ye65rmvIDwgaWRleXVcIDsKK+W6puaVsCA8IGRvc3V1XCA7CivpgYrmioAgPCB5dXVnaVwgOwor6YCA5q2pIDwgdGFpaG9cIDsKK+mCpuWcnyA8IGhvdWRvXCA7Civpgb/lr5IgPCBoaWthblwgOwor6YOo5LyaIDwgYnVrYWlcIDsKK+WIqeaguSA8IHJpa29uXCA7CivltI7pmb0gPCBraXlvdVwgOwor5bm05qyhIDwgbmVuamlcIDsKK+W3ruetiSA8IHNhdG91XCA7Civou4zpgZMgPCBraWRvdVwgOwor6YG65bC/IDwgaW55b3VcIDsKK+atu+WboCA8IHNoaWluXCA7Civli7LkvY0gPCBrdW4nJ2lcIDsKK+iRrOWFtyA8IHNvdWd1XCA7CivlhobnrZIgPCBlbnRvdVwgOwor5YiG5q+NIDwgYnVuYm9cIDsKK+iMtuebriA8IGNoYW1lXCA7CivlupfmmK8gPCB0ZW56ZVwgOwor5Yuf5YW1IDwgYm9oZWlcIDsKK+auv+S4iyA8IGRlbmthXCA7CivmrJ3mhqQgPCB1cHB1blwgOwor6JGs5YSAIDwgc291Z2lcIDsKK+mBleW/gyA8IGlzaGluXCA7CivlvLHljJYgPCBqYWtrYVwgOwor5Yqg5aKXIDwga2F6b3VcIDsKK+mBiuaDsCA8IHl1dWRhXCA7Civli5/lgrUgPCBib3NhaVwgOwor6YGO5oCgIDwga2F0YWlcIDsKK+WHuuaxgSA8IGRhc2hpXCA7Civnm6PnkIYgPCBrYW5yaVwgOwor5YmN5oivIDwgemVuZ2lcIDsKK+W4q+eItiA8IHNoaWZ1XCA7CivlurjmhJogPCB5b3VndVwgOwor5byV5ZapIDwgaW4nJ3l1XCA7CivluJ3njosgPCB0ZWlvdVwgOwor6YG/5aaKIDwgaGluaW5cIDsKK+WGheenkSA8IG5haWthXCA7Civluo/mlocgPCBqb2J1blwgOwor6LuN6LevIDwgZ3Vucm9cIDsKK+W6j+aVsCA8IGpvc3V1XCA7Civmrovli5kgPCB6YW5tdVwgOwor5Yid5pyfIDwgc2hva2lcIDsKK+i6q+mHjSA8IG1pb21vXCA7CivluqfmiYAgPCB6YXNob1wgOwor6Lyq6IieIDwgcmluYnVcIDsKK+mAlOaWuSA8IHRvaG91XCA7CivlhIDoo4UgPCBnaXNvdVwgOwor5bm95pqXIDwgeXV1YW5cIDsKK+iLseexsyA8IGVpYmVpXCA7Civou43osrsgPCBndW5waVwgOwor6a2U6KGXIDwgbWFnYWlcIDsKK+i7ouiomyA8IHRlbmthXCA7Civou6LoqJggPCB0ZW5raVwgOwor5Yex5q2MIDwgZ2Fpa2FcIDsKK+asoeW5tCA8IGppbmVuXCA7CivpgbrloqggPCBpYm9rdVwgOwor6YGF5bu2IDwgY2hpZW5cIDsKK+W5vOaZgiA8IHlvdWppXCA7Civnm4bnlLsgPCBib25nYVwgOwor5YiR5pyfIDwga2Vpa2lcIDsKK+W5tOacnyA8IG5lbmtpXCA7Civli5XkvZwgPCBkb3VzYVwgOwor5Ye65qeYIDwgZGV5b3VcIDsKK+iKuOiLkSA8IGdlaWVuXCA7CivlvKflhYkgPCBrb2tvdVwgOwor5q2M5aOHIDwga2FkYW5cIDsKK+WFteenkSA8IGhlaWthXCA7Civliqnlkb0gPCBqb21laVwgOwor6auY6ZuFIDwga291Z2FcIDsKK+W4uOa4qSA8IGpvdW9uXCA7CivliY3lvowgPCB6ZW5nb1wgOwor5q2m5ZWPIDwgYnVtb25cIDsKK+WKtOWLmSA8IHJvdW11XCA7Civlt67nm4ogPCBzYWVraVwgOwor6YCj5omTIDwgcmVuZGFcIDsKK+WEquiJtiA8IHl1dWVuXCA7CivoirHojI4gPCBrYWtlaVwgOwor56CC5LiKIDwgc2Fqb3VcIDsKK+i7jeitsCA8IGd1bmdpXCA7CivlubPmmYIgPCBoZWlqaVwgOwor5LyK5ZGC5rOiIDwgaXJvaGFcIDsKK+WGhuebpCA8IGVuYmFuXCA7Civlgb3pm7sgPCBnaWRlblwgOwor55qu55u4IDwgaGlzb3VcIDsKK+i/lOatjCA8IGhlbmthXCA7CivliY3luqcgPCB6ZW56YVwgOwor55ep6LqvIDwgc291a3VcIDsKK+WIhuacqCA8IGJ1bmdpXCA7CivmraPlk6EgPCBzZWlpblwgOwor5YaF55quIDwgbmFpaGlcIDsKK+aooeevhCA8IG1vaGFuXCA7Civoir3og54gPCBnYWhvdVwgOwor5YiA5p62IDwgdG91a2FcIDsKK+i8ieiNtyA8IHNhaWthXCA7Civnmq7nmawgPCBoaXplblwgOwor6YGK5bGxIDwgeXVzYW5cIDsKK+atpuWQjSA8IGJ1bWVpXCA7CivkupzpiZvoj68gPCBhZW5rYVwgOwor6IqZ6JOJIDwgZnV5b3VcIDsKK+atu+WFkCA8IHNoaWppXCA7CivlupXmhI8gPCBzb2tvaVwgOwor6Ieq6aaWIDwgamlzaHVcIDsKK+i7jeiomCA8IGd1bmtpXCA7CivliqPljJYgPCByZWtrYVwgOwor6YGg5aSnIDwgZW5kYWlcIDsKK+WFt+ecvCA8IGd1Z2FuXCA7CivmrKHlrpggPCBqaWthblwgOwor5qyh5a2QIDwgamlzaGlcIDsKK+atpuWLsiA8IGJ1a3VuXCA7Civlu7blkb0gPCBlbm1laVwgOwor5YWD57SgIDwgZ2Vuc29cIDsKK+atpuWLhyA8IGJ1eXV1XCA7Civmrablip8gPCBidWtvdVwgOwor5bu35ZCPIDwgdGVpcmlcIDsKK+WGhueSsCA8IGVua2FuXCA7CivlsqnprZogPCBpd2FuYVwgOwor5Yid5omLIDwgc2hvdGVcIDsKK+WEque+jiA8IHl1dWJpXCA7CivlhJLoia8gPCBqdWdvblwgOwor5YWQ56ulIDwgamlkb3VcIDsKK+atk+WRvCA8IGthbmtvXCA7Civps7Plh7AgPCBob3VvdVwgOwor55+l5LqLIDwgY2hpamlcIDsKK+mBk+WkriA8IGRvdW91XCA7Civou43ooaMgPCBndW4nJ2lcIDsKK+WItuW6piA8IHNlaWRvXCA7CivmranlhbUgPCBob2hlaVwgOwor5YGc6Z+zIDwgdGVpb25cIDsKK+W8leS+iyA8IGlucmVpXCA7Civnl7ToqbEgPCBjaGl3YVwgOwor5Yqg5YagIDwga2FrYW5cIDsKK+mAo+W6pyA8IHJlbnphXCA7CivpgaDlnLAgPCBlbmNoaVwgOwor55m956aNIDwgaGFra2FcIDsKK+mBjuWkpyA8IGthZGFpXCA7Civoi5vnqI4gPCBrYXplaVwgOwor6YGK5aWzIDwgeXV1am9cIDsKK+i8nee3miA8IGtpc2VuXCA7CivlhaXnm7ggPCBpcmlhaVwgOwor6IqL6IyOIDwgenVpa2lcIDsKK+eWjumWiyA8IHNva2FpXCA7CivliY3lqaYgPCB6ZW5wdVwgOwor5YGP6aCXIDwgaGVucGFcIDsKK+mBt+WMliA8IHNlbmdlXCA7Civntq3mjIHosrsgPCBpamloaVwgOwor6JC95LiLIDwgcmFra2FcIDsKK+WFt+ePviA8IGd1Z2VuXCA7CivlhrfmsJcgPCByZWlraVwgOwor5YSS6ICFIDwganVzaGFcIDsKK+iIl+mBkyA8IGhvZG91XCA7CivlhYjnpZYgPCBzZW56b1wgOwor55m656C0IDwgaGFwcGFcIDsKK+eVs+mfuyA8IGpvdWluXCA7Civnm7jmo5IgPCBhaWJvdVwgOwor5buD5ZySIDwgaGFpZW5cIDsKK+i/keaZgiA8IGtpbmppXCA7CivprZrogqUgPCBneW9oaVwgOwor6LqN6LW3IDwgeWFra2lcIDsKK+iKsee0iyA8IGthbW9uXCA7CivlhYPnpZYgPCBnYW5zb1wgOwor55uX5rGXIDwgbmVhc2VcIDsKK+atpuS6uiA8IGJ1amluXCA7CivoirHnsokgPCBrYWZ1blwgOwor6Iie6LmIIDwgYnV0b3VcIDsKK+W5vuW6piA8IGlrdWRvXCA7CivmrKHlm54gPCBqaWthaVwgOwor6ayx6JK8IDwgdXNzb3VcIDsKK+iInui4iiA8IGJ1eW91XCA7CivovKrnpo0gPCByaW5rYVwgOwor5YiR5b6SIDwga2VpdG9cIDsKK+W5tOW+jCA8IG5lbmdvXCA7CivpgKPlrZAgPCByZW5qaVwgOwor55u45p2/IDwgYWliYW5cIDsKK+WJjeWgtCA8IHplbmJhXCA7CivnlLDpuqkgPCBkZW5idVwgOwor5Ye55omAIDwgb3VzaG9cIDsKK+WBvemAoCA8IGdpem91XCA7Civoi6bnlYwgPCBrdWdhaVwgOwor5bi45pmCIDwgam91amlcIDsKK+mChOS7mCA8IGthbnB1XCA7CivpgYvllrYgPCB1bicnZWlcIDsKK+W5tOW6piA8IG5lbmRvXCA7CivpgK7lpJwgPCB0YWl5YVwgOwor6YCA5bqnIDwgdGFpemFcIDsKK+WIqeWusyA8IHJpZ2FpXCA7CivoibHoi6YgPCBrYW5rdVwgOwor5qyh5ZaEIDwgaml6ZW5cIDsKK+WIqeWtkCA8IHJpc2hpXCA7CivliKXlrrYgPCBiZWtrZVwgOwor6YG65L2cIDwgaXNha3VcIDsKK+iNkuacqCA8IGFyYWtpXCA7CivlsqnplpMgPCBpd2FtYVwgOwor5bqt5ZySIDwgdGVpZW5cIDsKK+mvqOazoiA8IGdlaWhhXCA7CivlubTlt64gPCBuZW5zYVwgOwor6a+o5rK5IDwgZ2VpeXVcIDsKK+i5tui1tyA8IGtla2tpXCA7CivlhobmuoAgPCBlbm1hblwgOwor6L6y5pyfIDwgbm91a2lcIDsKK+WIpOWtkCA8IGhhbmtvXCA7Civoj6/ljrMgPCBrZWdvblwgOwor6YGg5Ye6IDwgdG9vZGVcIDsKK+mBi+WRvSA8IHVubWVpXCA7CivpgZPljJYgPCBkb3VrZVwgOwor5q2M5LuZIDwga2FzZW5cIDsKK+i7oue+qSA8IHRlbmdpXCA7CivmrKHlj7cgPCBqaWdvdVwgOwor5q2M5Lq6IDwga2FqaW5cIDsKK+ebuOaSsiA8IHN1bW91XCA7CivoibbogZ4gPCBlbmJ1blwgOwor5bqP5aWPIDwgam9zb3VcIDsKK+i/keaJgCA8IGtpbmpvXCA7Civlh6HmiZMgPCBib25kYVwgOwor5Ye55b2iIDwgb3VrZWlcIDsKK+iIjuiyuyA8IHNoYWhpXCA7CivpgY7li6QgPCBrYWtpblwgOwor6YGO5Yq0IDwga2Fyb3VcIDsKK+iHqumCuCA8IGppdGVpXCA7CivpgYvli6IgPCB1bnNlaVwgOwor5beo5rOiIDwga3lvaGFcIDsKK+mBi+WLlSA8IHVuZG91XCA7Civovp7mn4QgPCBqaWhlaVwgOwor6YGO5YmwIDwga2Fqb3VcIDsKK+eVnemWkyA8IHVuZW1hXCA7Civoh6rpgbggPCBqaXNlblwgOwor6L6e5p6XIDwgamlyaW5cIDsKK+W5s+WutiA8IGhlaWtlXCA7CivpgLjlk4EgPCBpcHBpblwgOwor6YGT5YW3IDwgZG91Z3VcIDsKK+W5s+WuiSA8IGhlaWFuXCA7CivnmobnhKEgPCBrYWltdVwgOwor5Yeh5oSaIDwgYm9uZ3VcIDsKK+WIhuWykCA8IGJ1bmtpXCA7CivliY3lj6QgPCB6ZW5rb1wgOwor55S76aSFIDwgZ2FiZWlcIDsKK+S+neS8sOWcsCA8IGVrb2ppXCA7Civovp7mm7ggPCBqaXNob1wgOwor6YCg5ZySIDwgem91ZW5cIDsKK+WJsOS9mSA8IGpvdXlvXCA7Civlurbli5kgPCBzaG9tdVwgOwor55S76aKoIDwgZ2FmdXVcIDsKK+WEgOevhCA8IGdpaGFuXCA7CivoirPnnIkgPCBob3ViaVwgOwor5Yid5aScIDwgc2hveWFcIDsKK+aouea2siA8IGp1ZWtpXCA7CivliJ3lpI8gPCBzaG9rYVwgOwor5biM5pybIDwga2lib3VcIDsKK+W3qOatqSA8IGt5b2hvXCA7CivlubzlpbMgPCB5b3Vqb1wgOwor55S76aGMIDwgZ2FkYWlcIDsKK+WIhuWutiA8IGJ1bmtlXCA7CivluIzmm7ggPCBraXNob1wgOwor5biw5oqVIDwga2l0b3VcIDsKK+WGpOaeiSA8IGVuJydvdVwgOwor5qi55rW3IDwganVrYWlcIDsKK+W5vuWknCA8IGlrdXlvXCA7Civlub7lpJogPCBpa3V0YVwgOwor5qyh5YWEIDwgamlrZWlcIDsKK+asoeWFgyA8IGppZ2VuXCA7Civov7flrZAgPCBtYWlnb1wgOwor5qmf5qKwIDwga2lrYWlcIDsKK+W6p+WPsyA8IHpheXV1XCA7CivlubvlpKIgPCBnZW5tdVwgOwor5YWI54i2IDwgc2VucHVcIDsKK+mBoeS4iiA8IHNvam91XCA7CivmqZ/moLkgPCBraWtvblwgOwor5YG96KqTIDwgZ2lzZWlcIDsKK+mAoOWWtiA8IHpvdWVpXCA7CivoiJfoo4UgPCBob3NvdVwgOwor55Ww6YO3IDwgaWt5b3VcIDsKK+eUu+mdoiA8IGdhbWVuXCA7CivlgI3pn7MgPCBiYWlvblwgOwor5qOL6aKoIDwga2lmdXVcIDsKK+WBveioiCA8IGdpa2VpXCA7Civnm7jmhJsgPCBzb3VhaVwgOwor5YG96KiAIDwgZ2lnZW5cIDsKK+WBtuiqniA8IGd1dWdvXCA7CivmqZ/mnZAgPCBraXphaVwgOwor5qyh5L6/IDwgamliaW5cIDsKK+mAo+WRvCA8IHJlbmtvXCA7Civlt6bmp5ggPCBzYXlvdVwgOwor5YG26KmgIDwgZ3V1ZWlcIDsKK+mtlOelniA8IG1hamluXCA7Civlu4rkuIsgPCByb3VrYVwgOwor6amf6ZuoIDwgc2h1dXVcIDsKK+ebsuaEmyA8IG1vdWFpXCA7Civlho3moYggPCBzYWlhblwgOwor5oSP5rCX5ZywIDwgaWt1amlcIDsKK+WEgOekvCA8IGdpcmVpXCA7Civoh6ros5sgPCBqaXNhblwgOwor6YCj5Y+lIDwgcmVua3VcIDsKK+i3r+mgrSA8IHJvdG91XCA7Civov7flpKIgPCBtZWltdVwgOwor6Iux5rOVIDwgZWlob3VcIDsKK+iHquiyqSA8IGppaGFuXCA7Civoi6bmuIsgPCBrdWp1dVwgOwor55u45b+cIDwgc291b3VcIDsKK+asoeS7oyA8IGppZGFpXCA7CivlsL7psK0gPCBvYmlyZVwgOwor5bir5oGpIDwgc2hpb25cIDsKK+WFrOatpiA8IGtvdWJ1XCA7Civou6Lnp7sgPCB0ZW4nJ2lcIDsKK+i3r+mdoiA8IHJvbWVuXCA7CivlsqHovrogPCBva2FiZVwgOwor5YGJ6LmfIDwgaXNla2lcIDsKK+WFmua0viA8IHRvdWhhXCA7CivpgYvkuIogPCB1bmpvdVwgOwor5qWt6IumIDwgZ291a3VcIDsKK+WxpOmbsiA8IHNvdXVuXCA7Civluqflg48gPCB6YXpvdVwgOwor5bi35bmVIDwgaWJha3VcIDsKK+W4t+W4syA8IGljaG91XCA7CivliKnlj6MgPCByaWtvdVwgOwor5qmf5pWPIDwga2liaW5cIDsKK+WFpeatryA8IGlyZWJhXCA7CivlurbkuosgPCBzaG9qaVwgOwor6a2U552hIDwgbWFzdWlcIDsKK+aoquatuyA8IG91c2hpXCA7Civou4znr4QgPCBraWhhblwgOwor5YaG5pysIDwgZW5wb25cIDsKK+WEkueUnyA8IGp1c2VpXCA7Civlt6Hmn7sgPCBqdW5zYVwgOwor5YaN5pigIDwgc2FpZWlcIDsKK+W6teS4uyA8IGFuc2h1XCA7Civoh6roqo0gPCBqaW5pblwgOwor6Iqx54mHIDwga2FoZW5cIDsKK+msvOelniA8IGtpamluXCA7CivovLjmtrIgPCB5dWVraVwgOwor55SY6ZyyIDwga2Fucm9cIDsKK+aqgOW+kiA8IGRhbnRvXCA7CivnlbDosaEgPCBpc2hvdVwgOwor6IyC5p6XIDwgbW9yaW5cIDsKK+S/nemkiiA8IGhveW91XCA7CivlhYnms6IgPCBrb3VoYVwgOwor6Led6ZuiIDwga3lvcmlcIDsKK+W3puaWuSA8IHNhaG91XCA7CivluqfkuZcgPCB6YWpvdVwgOwor5qi55p6XIDwganVyaW5cIDsKK+mtlOeVjCA8IG1ha2FpXCA7CivlubPlkowgPCBoZWl3YVwgOwor5YW35pyJIDwgZ3V5dXVcIDsKK+WFrOahiCA8IGtvdWFuXCA7Civlh6blpbMgPCBzaG9qb1wgOwor5bid5bqnIDwgdGVpemFcIDsKK+WIkeWQjyA8IGtlaXJpXCA7CivpgIHlj5cgPCBzb3VqdVwgOwor5beu5pCNIDwgc2Fzb25cIDsKK+aooeanmCA8IG1veW91XCA7CivmqZ/miY0gPCBraXNhaVwgOwor5Yeh5aSrIDwgYm9ucHVcIDsKK+WIu+S4iyA8IGtva2thXCA7CivpgIDljJYgPCB0YWlrYVwgOwor5YeG5bCJIDwganVuJydpXCA7Civlhrblt6UgPCB5YWtvdVwgOwor5qiq5p+EIDwgb3VoZWlcIDsKK+WFuOaVhSA8IHRlbmtvXCA7CivoibLnm64gPCBpcm9tZVwgOwor5Yip5L6/IDwgcmliZW5cIDsKK+eUu+mBkyA8IGdhZG91XCA7Civot6/pioAgPCByb2dpblwgOwor6I2J5bGlIDwgem91cmlcIDsKK+S/nemZuiA8IGhva2VuXCA7CivlubTliKkgPCBuZW5yaVwgOwor6Iux5pu4IDwgZWlzaG9cIDsKK+WFreaXpSA8IG11aWthXCA7CivliIbljLogPCBidW5rdVwgOwor5YWr5pelIDwgeW91a2FcIDsKK+WFrOaWuSA8IGt1Ym91XCA7CivmqKrmmrQgPCBvdWJvdVwgOwor5Yal5bqcIDwgbWVpZnVcIDsKK+WIkeWFtyA8IGtlaWd1XCA7Civoi6bmna8gPCBrdWhhaVwgOwor6Iux5piOIDwgZWltZWlcIDsKK+aqgOWutiA8IGRhbmthXCA7CivmqKHmnKwgPCBtb2hvblwgOwor5YWl5pelIDwgaXJpaGlcIDsKK+WwvumVtyA8IG9uYWdhXCA7CivovrLlqaYgPCBub3VmdVwgOwor5bCP6ayiIDwga29iaW5cIDsKK+WIpOS6iyA8IGhhbmppXCA7CivliIbliKkgPCBidW5yaVwgOwor6Iux5patIDwgZWlkYW5cIDsKK+WCheiCsiA8IGZ1aWt1XCA7CivmqKrmlq0gPCBvdWRhblwgOwor6Iux5paHIDwgZWlidW5cIDsKK+WHoeWZqCA8IGJvbmtpXCA7Civoi7HmlbAgPCBlaXN1dVwgOwor5Ya05a+SIDwgZ29rYW5cIDsKK+mAlOS4iiA8IHRvam91XCA7CivluIPlt74gPCBmdWtpblwgOwor55u45aC0IDwgc291YmFcIDsKK+mokumfsyA8IHNvdW9uXCA7CivlhZrmmK8gPCB0b3V6ZVwgOwor6L6y5aW0IDwgbm91ZG9cIDsKK+eUqOmAlCA8IHlvdXRvXCA7CivlhYnmoIQgPCBrb3VlaVwgOwor6Iy25bGLIDwgY2hheWFcIDsKK+i8v+acmyA8IHlvYm91XCA7Civoh6rokZcgPCBqaWNob1wgOwor5YWQ5pu5IDwgamlzb3VcIDsKK+WHuuWJjSA8IGRlbWFlXCA7CivlsI/ppqwgPCBrb3VtYVwgOwor6I235Y+wIDwgbmlkYWlcIDsKK+eUmOmFoiA8IGFtYXp1XCA7Civoi5fmnKggPCBuYWVnaVwgOwor6ae76aasIDwga2FuYmFcIDsKK+eUu+izmyA8IGdhc2FuXCA7Civnmb3ml5cgPCBoYWtraVwgOwor6YCB5LuYIDwgc291ZnVcIDsKK+WGheW/nCA8IG5haW91XCA7Civlh43lnJ8gPCB0b3Vkb1wgOwor5biv5ZywIDwgb2JpamlcIDsKK+i+uuWcnyA8IGhlbmRvXCA7CivlsL7pjKAgPCBiaWpvdVwgOwor5YiR5LqLIDwga2VpamlcIDsKK+WGhuW8viA8IGVuZGFuXCA7Civnm67lnqIgPCBtZWFrYVwgOwor6L+R5Y+kIDwga2lua29cIDsKK+i7vea1riA8IGtlaWZ1XCA7Civoi5vmloIgPCBrYXJlblwgOwor6Lui54KJIDwgdGVucm9cIDsKK+i+suWckiA8IG5vdWVuXCA7Civlt7vlsL4gPCBrYW5iaVwgOwor56eL5YiA6a2aIDwgc2FubWFcIDsKK+S9s+m6lyA8IGthcmVpXCA7CivoibbnhLYgPCBlbnplblwgOwor6Iux5omNIDwgZWlzYWlcIDsKK+iFsOmDqCA8IHlvdWJ1XCA7Civou73msrkgPCBrZWl5dVwgOwor5bmH5YqpIDwgaG91am9cIDsKK+WGheW4kSA8IG5haWRvXCA7CivnlLvoq4cgPCBnYWRhblwgOwor5YaZ5a2XIDwgc2hhamlcIDsKK+S+m+mkiiA8IGt1eW91XCA7CivlgJLoqp4gPCB0b3Vnb1wgOwor6ay854GrIDwgb25pYmlcIDsKK+mtmuayuSA8IGd5b3l1XCA7CivluJ3lnJ8gPCB0ZWlkb1wgOwor5qmf5auMIDwga2lnZW5cIDsKK+iKseaiqCA8IGthcmluXCA7CivlhYzmj5sgPCBkYWthblwgOwor6a2U5rOVIDwgbWFob3VcIDsKK+iLpuaIpiA8IGt1c2VuXCA7Civlgrfnl40gPCBzaG91aVwgOwor5YCZ6KOcIDwga291aG9cIDsKK+W4uOWLmSA8IGpvdW11XCA7CivluLDlj4IgPCBraXNhblwgOwor5YaG5bGFIDwgbWFkb2lcIDsKK+aoueW5uSA8IGp1a2FuXCA7Civoi6bmha4gPCBrdXJ5b1wgOwor6aas6b2iIDwgYmFyZWlcIDsKK+S9mem9oiA8IHlvcmVpXCA7Civnl5TnmLsgPCBqaXJvdVwgOwor5beo5a+MIDwga3lvZnVcIDsKK+WFrOW6qyA8IGtvdWtvXCA7CivlgpnnoLIgPCBiaWhvdVwgOwor5YWs5bqPIDwga291am9cIDsKK+iLpuaDhSA8IGt1am91XCA7CivojLblnJIgPCBjaGFlblwgOwor6Ium5oK2IDwga3Vtb25cIDsKK+iLpuaCqSA8IGt1bm91XCA7CivnlKjoqp4gPCB5b3Vnb1wgOwor5bem5a6YIDwgc2FrYW5cIDsKK+ankOaouSA8IGthaWp1XCA7CivlhpflpJogPCBqb3V0YVwgOwor6Luf5rS+IDwgbmFucGFcIDsKK+WFrOW4gyA8IGtvdWZ1XCA7CivnlbDohbkgPCBpZnVrdVwgOwor5YWI5omLIDwgc2VudGVcIDsKK+WFrOW3riA8IGtvdXNhXCA7CivojLblmaggPCBjaGFraVwgOwor6IeT6IWRIDwgem91ZnVcIDsKK+mssea7niA8IHV0dGFpXCA7CivmoYLppqwgPCBrZWltYVwgOwor6L+U5LuYIDwgaGVucHVcIDsKK+aihemFoiA8IHVtZXp1XCA7CivovrLli5kgPCBub3VtdVwgOwor5bi45YKZIDwgam91YmlcIDsKK+iLpuW9uSA8IGt1ZWtpXCA7CivoiIznpo0gPCB6ZWtrYVwgOwor5bWQ5rCXIDwgcmFua2lcIDsKK+aiteiqniA8IGJvbmdvXCA7CivnnIzkuIsgPCBrZW5rYVwgOwor6IWV6LyqIDwgdWRld2FcIDsKK+i1t+mbuyA8IGtpZGVuXCA7CivluKvlhJIgPCBzaGlqdVwgOwor5a626bSoIDwgYWhpcnVcIDsKK+WvnemhlCA8IG5lZ2FvXCA7CivovrLlhbcgPCBub3VndVwgOwor5biC5Za2IDwgc2hpZWlcIDsKK+WGhuWisyA8IGVucHVuXCA7CivoibLmsJcgPCBpcm9rZVwgOwor6L6e5Y67IDwgamlreW9cIDsKK+msvOatryA8IG9uaWJhXCA7CivlsIHpjpYgPCBmdXVzYVwgOwor6Iux5bGvIDwgZWl0b25cIDsKK+WwlumDqCA8IHNlbmJ1XCA7Civlt6XloLQgPCBrb3ViYVwgOwor55m65biDIDwgaGFwcHVcIDsKK+W4sOS7uyA8IGtpbmluXCA7CivlhYTlvowgPCBhbmlnb1wgOwor5YWr6YeN5q2vIDwgeWFlYmFcIDsKK+WAtuiAhSA8IGt1c2hhXCA7Civkv5roq7ogPCByaWdlblwgOwor5L+O6LGGIDwgc290b3VcIDsKK+eUn+idiyA8IGtpcm91XCA7CivlhYvlt7EgPCBrb2traVwgOwor5YaF5ZugIDwgbmFpaW5cIDsKK+i3m+ihjCA8IGhha291XCA7Civnm7LkuoAgPCBtb3VraVwgOwor6Ium5a+SIDwga3VrYW5cIDsKK+eWq+eXoiA8IGVraXJpXCA7Civnm5vlhIAgPCBzZWlnaVwgOwor5biC5Yy6IDwgc2hpa3VcIDsKK+mmrOmmliA8IGJhc2h1XCA7CivkvZnpppkgPCB5b2tvdVwgOwor55m75bGxIDwgdG96YW5cIDsKK+WGl+WPpSA8IGpvdWt1XCA7CivlpKfkvK/niLYgPCBvb29qaVwgOwor6L6y5LqLIDwgbm91amlcIDsKK+aoqeWogSA8IGtlbicnaVwgOwor55uu5LiLIDwgbW9ra2FcIDsKK+W2ruWyqCA8IGtlbnNvXCA7Civoh6rnpL4gPCBqaXNoYVwgOwor55aj55eUIDwgaWJvamlcIDsKK+S9memiqCA8IHlvZnV1XCA7CivkvZnpoZ4gPCB5b3J1aVwgOwor5YWQ5a2rIDwgamlzb25cIDsKK+mmrOmgrSA8IGJhdG91XCA7CivnlJjol7sgPCBhbWFtb1wgOwor5a626aKoIDwga2FmdXVcIDsKK+iJtuabuCA8IGVuc2hvXCA7CivlhKrlvKcgPCB5dXVrb1wgOwor6L6e5LukIDwgamlyZWlcIDsKK+ajieiKsSA8IG1lbmthXCA7CivmqZ/lhoUgPCBraW5haVwgOwor5YWs5ZuzIDwga291enVcIDsKK+WFteWWtiA8IGhlaWVpXCA7CivnlLDoiI4gPCBpbmFrYVwgOwor5bem5Y+zIDwgc2F5dXVcIDsKK+WFqOWcnyA8IHplbmRvXCA7Civlhajlm7MgPCB6ZW56dVwgOwor6IOv6ZaTIDwga29rYW5cIDsKK+eUu+iBliA8IGdhc2VpXCA7CivluIzku6MgPCBraWRhaVwgOwor5bCP6LGGIDwgYXp1a2lcIDsKK+WFteWToSA8IGhlaWluXCA7CivmoYjphY0gPCBhbmJhaVwgOwor5a626Zu7IDwga2FkZW5cIDsKK+WGheWLmSA8IG5haW11XCA7CivlsIrosrQgPCBzb25raVwgOwor5beu5YiGIDwgc2FidW5cIDsKK+WGheWKqSA8IG5haWpvXCA7Civnk6bop6MgPCBnYWthaVwgOwor5Yag5L2NIDwga2FuJydpXCA7CivmooXoposgPCB1bWVtaVwgOwor5bel5YuZIDwga291bXVcIDsKK+aooeWeiyA8IG1va2VpXCA7CivmoITppIogPCBlaXlvdVwgOwor5L+Y6JmcIDwgZnVyeW9cIDsKK+mtlOaJiyA8IG1hc2h1XCA7CivkvY7pm7IgPCB0ZWl1blwgOwor5biD5LukIDwgZnVyZWlcIDsKK+eZveWgiiA8IGhha3VhXCA7Civlhbzli5kgPCBrZW5tdVwgOwor6Lev6IKpIDwgcm9rZW5cIDsKK+S8vOmhlCA8IG5pZ2FvXCA7CivnlLLnvoUgPCBrb3VyYVwgOwor6Ieq55SxIDwgaml5dXVcIDsKK+ajhOiDjCA8IGtpaGFpXCA7Civkvr/ooaMgPCBiZW4nJ2lcIDsKK+WGhuWFiSA8IGVua291XCA7Civoh6rnlKggPCBqaXlvdVwgOwor5L2/6YCUIDwgc2hpdG9cIDsKK+i7veW+riA8IGtlaWJpXCA7CivlhbXljKogPCBoZWloaVwgOwor5bel5YW3IDwga291Z3VcIDsKK+eZu+WdgiA8IHRvaGFuXCA7Civlr4zpibEgPCBmdWtvdVwgOwor5L6u6KiAIDwgYnVnZW5cIDsKK+i8v+WcsCA8IHlvY2hpXCA7CivoirjlrZAgPCBnZWlrb1wgOwor6IOM6ZuiIDwgaGFpcmlcIDsKK+W3puWCviA8IHNha2VpXCA7Civkv53oj4wgPCBob2tpblwgOwor5YWr5Y2mIDwgaGFra2VcIDsKK+i7veW6piA8IGtlaWRvXCA7Civlt7TkurogPCBoYWppblwgOwor55S757SZIDwgZ2FzaGlcIDsKK+WFrOWLnyA8IGtvdWJvXCA7Civnlarnm64gPCBiYW5tZVwgOwor5aSn5Lyv5q+NIDwgb29vYmFcIDsKK+WFvOWCmSA8IGtlbmJpXCA7Civlr4Tph5EgPCBraWtpblwgOwor6LWw6LevIDwgc291cm9cIDsKK+mtlOW8viA8IG1hZGFuXCA7CivlsqHnm64gPCBva2FtZVwgOwor5a6Y6ZyAIDwga2FuanVcIDsKK+eRnumbsiA8IHp1aXVuXCA7Civpq5jmuKkgPCBrb3VvblwgOwor5bC+6IqxIDwgb2JhbmFcIDsKK+WvvuipsSA8IHRhaXdhXCA7CivkvJ3ppqwgPCB0ZW5tYVwgOwor6L2N5Y+JIDwgdGVzc2FcIDsKK+S+neiolyA8IGl0YWt1XCA7CivohLPoo6EgPCBub3VyaVwgOwor5qip5YyWIDwgZ29uZ2VcIDsKK+iLpuWQnyA8IGt1Z2luXCA7CivoirjlppMgPCBnZWlnaVwgOwor6Lev57eaIDwgcm9zZW5cIDsKK+i1pOi6qyA8IGFrYW1pXCA7CivlhbXlgpkgPCBoZWliaVwgOwor5a+M6L6yIDwgZnVub3VcIDsKK+S/rue+hSA8IHNodXJhXCA7CivoiqXlrZAgPCBrZXNoaVwgOwor55aR54K5IDwgZ2l0ZW5cIDsKK+aoveS/jiA8IHNvbnNvXCA7Civkvo3orJsgPCBqaWtvdVwgOwor6LuN5omLIDwgZ3VudGVcIDsKK+aoqeWIqSA8IGtlbnJpXCA7CivkvJrpo7IgPCBrYWlpblwgOwor5YW45L6NIDwgdGVuamlcIDsKK+WuiemdmSA8IGFuc2VpXCA7Civpp4Xot68gPCBla2lyb1wgOwor5YWl5YaFIDwganVkYWlcIDsKK+WFmuWLmSA8IHRvdW11XCA7CivlhbfkvZMgPCBndXRhaVwgOwor55m65Y+lIDwgaG9ra3VcIDsKK+iLpuWKtCA8IGt1cm91XCA7Civmp5jlrZAgPCB5b3VzdVwgOwor5L+d6IKyIDwgaG9pa3VcIDsKK+eUu+eovyA8IGdha291XCA7CivkvovoqbEgPCByZWl3YVwgOwor5YWo5YKZIDwgemVuYmlcIDsKK+WFmuWIqSA8IHRvdXJpXCA7Civoh6rngoogPCBqaXN1aVwgOwor5L2z6LOTIDwga2FoaW5cIDsKK+eUn+ezuCA8IGtpaXRvXCA7CivmqKHlhpkgPCBtb3NoYVwgOwor5YOn5b6SIDwgc291dG9cIDsKK+eWjua8jyA8IHNvcm91XCA7CivlronplpEgPCBhbmthblwgOwor5qi55LiKIDwganVqb3VcIDsKK+S9mei8qSA8IHlvaGFpXCA7CivmooXoirEgPCBiYWlrYVwgOwor5YSA5a65IDwgZ2l5b3VcIDsKK+eUsOennyA8IGRlbnNvXCA7Civppqzou4ogPCBiYXNoYVwgOwor5YWI5YuZIDwgc2VubXVcIDsKK+S/uuetiSA8IG9yZXJhXCA7CivmqKHlgKMgPCBtb2hvdVwgOwor5a+M6LGqIDwgZnVnb3VcIDsKK+mmrOi5hCA8IGJhdGVpXCA7Civot7XnpZogPCBzZW5zb1wgOwor6Lev56iLIDwgcm90ZWlcIDsKK+e0q+mbsuiLsSA8IGdlbmdlXCA7Civlr4TotIggPCBraXpvdVwgOwor5L2T6LqvIDwgdGFpa3VcIDsKK+eXtOaEmiA8IGNoaWd1XCA7Civog4zpg6ggPCBoYWlidVwgOwor5L+d57eaIDwgaG9zZW5cIDsKK+iLseS4uyA8IGVpc2h1XCA7CivlhYPliKkgPCBnZW5yaVwgOwor5YCr55CGIDwgcmlucmlcIDsKK+i7iuW6qyA8IHNoYWtvXCA7Civlr5PoqbEgPCBndXV3YVwgOwor55aP5rC0IDwgc29zdWlcIDsKK+S9meiyoSA8IHlvemFpXCA7CivohL7oh58gPCBoaXpvdVwgOwor5YOn5bC8IDwgc291bmlcIDsKK+eZuuS9nCA8IGhvc3NhXCA7Civoh6rmsrsgPCBqaWNoaVwgOwor55mS5ZCIIDwgeXVnb3VcIDsKK+WFheWCmSA8IGp1dWJpXCA7CivohL7ohasgPCBoaXNodVwgOwor5bC+57GgIDwgYmlyb3VcIDsKK+eXm+aJiyA8IGl0YWRlXCA7CivlrrbosqEgPCBrYXphaVwgOwor6Lui5amGIDwgdGVuYmFcIDsKK+msvOWtkCA8IG9uaWdvXCA7CivlrpjpgJQgPCBrYW50b1wgOwor6Ieq5rCRIDwgamltaW5cIDsKK+S/neeuoSA8IGhva2FuXCA7CivmoITou6IgPCBlaXRlblwgOwor5qSc5rOiIDwga2VucGFcIDsKK+Wtl+mdoiA8IGppbWVuXCA7Civot6/nm6QgPCByb2JhblwgOwor6Ii15omLIDwgZGFzaHVcIDsKK+S9meirhyA8IHlvZGFuXCA7Civlr4zoo5UgPCBmdXl1dVwgOwor55Sj552AIDwgdWJ1Z2lcIDsKK+WBj+azoiA8IGhlbmhhXCA7Civlgb3mnKwgPCBnaWhvblwgOwor6Im25ae/IDwgZW5zaGlcIDsKK+WEquWIqSA8IHl1dXJpXCA7CivmpbXmhI8gPCBnb2t1aVwgOwor5Luu6Z2iIDwga2FtZW5cIDsKK+WBveabuCA8IGdpc2hvXCA7CivlsqHmua8gPCBva2F5dVwgOwor5L+d56iOIDwgaG96ZWlcIDsKK+S9meioiCA8IHlva2VpXCA7Civlg4Xlt64gPCBraW5zYVwgOwor5L+v556wIDwgZnVrYW5cIDsKK+iHqOapnyA8IHJpbmtpXCA7CivmnKrmm77mnIkgPCBtaXpvdVwgOwor6ImH5bqrIDwgdGVpa29cIDsKK+WwiuiAhSA8IHNvbmphXCA7Civot6Hnm64gPCBhdG9tZVwgOwor6Lev55SoIDwgcm95b3VcIDsKK+WutuiokyA8IGtha3VuXCA7CivkvY7oqp4gPCB0ZWlnb1wgOwor5a6f6LK7IDwgamlwcGlcIDsKK+WCvuW3riA8IGtlaXNhXCA7CivnlLfnjKsgPCBvbmVrb1wgOwor55Sm55SfIDwgc29zZWlcIDsKK+i1t+iNiSA8IGtpc291XCA7CivkvZnoo5UgPCB5b3l1dVwgOwor5bWp5ZG8IDwgc3V1a29cIDsKK+WumOiyuyA8IGthbnBpXCA7CivppIrpr4kgPCB5b3VyaVwgOwor6LuN5aSrIDwgZ3VucHVcIDsKK+eWjuaelyA8IHNvcmluXCA7Civlrrboo4EgPCBrYXNhaVwgOwor5L+z55S7IDwgaGFpZ2FcIDsKK+S7lumdoiA8IHRhbWVuXCA7CivlsI/ntIsgPCBrb21vblwgOwor55Sf55CGIDwgc2VpcmlcIDsKK+iFi+eqqSA8IGVraWthXCA7Civku5jpmo8gPCBmdXp1aVwgOwor5a626J2/IDwgaWViYWVcIDsKK+aknOafuyA8IGtlbnNhXCA7Civlgpnlv5ggPCBiaWJvdVwgOwor5bCP57KLIDwga29pa2lcIDsKK+Wun+iomCA8IGppa2tpXCA7CivkurrppqwgPCBqaW5iYVwgOwor5YSE5YqrIDwgb2trdXVcIDsKK+iHquaatCA8IGppYm91XCA7Civkvr/np5ggPCBiZW5waVwgOwor5a6Y6KmxIDwga2Fud2FcIDsKK+S8r+eItuiytCA8IG9qaWtpXCA7Civnlo7mlL4gPCBzb2hvdVwgOwor5L2Z6JarIDwgeW9rdW5cIDsKK+iHquaYjiA8IGppbWVpXCA7Civoh6jmmYIgPCByaW5qaVwgOwor6aSM6aOfIDwgZWppa2lcIDsKK+WumuimjyA8IGpvdWdpXCA7CivoiLnlsL4gPCBzZW5iaVwgOwor5LuK6ZqbIDwgaW1hd2FcIDsKK+WEhOWGhiA8IG9rdWVuXCA7CivlhIDliIAgPCBnaXRvdVwgOwor5a6I6K23IDwgc2h1Z29cIDsKK+S8muiyuyA8IGthaWhpXCA7CivlsqnmoLkgPCBpd2FuZVwgOwor55S35rudIDwgb2Rha2lcIDsKK+eTnOenkSA8IHVyaWthXCA7Civou73kvq4gPCBrZWlidVwgOwor5L6b57GzIDwga3VtYWlcIDsKK+aghOieuiA8IHNhemFlXCA7CivlgKTmrrUgPCBuZWRhblwgOwor5a2k6LuNIDwga29ndW5cIDsKK+WBveaCqiA8IGdpYWt1XCA7Civkupzpurvku4EgPCBhbWFuaVwgOwor55ay5byKIDwgaGloZWlcIDsKK+S8muitsCA8IGthaWdpXCA7CivmnaXpp5UgPCByYWlnYVwgOwor6auY5bqnIDwga291emFcIDsKK+iJr+WMuyA8IHJ5b3VpXCA7CivkvJ3oqJggPCBkZW5raVwgOwor5Lya6KmxIDwga2Fpd2FcIDsKK+S9meiKsyA8IHlvaG91XCA7CivkubHpursgPCByYW5tYVwgOwor5YKY5a+/IDwgc2FuanVcIDsKK+WxseaysyA8IHNhbmdhXCA7CivogLPpoIYgPCBqaWp1blwgOwor5Ly96JeNIDwgZ2FyYW5cIDsKK+WEgOS7lyA8IGdpam91XCA7CivlrojooZsgPCBzaHVlaVwgOwor6LuN5YuZIDwgZ3VubXVcIDsKK+eUo+a5ryA8IHVidXl1XCA7Civpppnoj68gPCBrb3VnZVwgOwor5bC+54eIIDwgYml0b3VcIDsKK+S+m+elrSA8IGd1c2FpXCA7Civos5Povp4gPCBoaW5qaVwgOwor5LqU5Y2B6LevIDwgaXNvamlcIDsKK+iInuWtkCA8IG1haWtvXCA7Civoh6rmhaIgPCBqaW1hblwgOwor5qW95ZmoIDwgZ2Fra2lcIDsKK+eWkeW/tSA8IGdpbmVuXCA7CivkvZnogZ4gPCB5b2J1blwgOwor5a2m6KqyIDwgZ2Fra2FcIDsKK+mmrOiAlSA8IGJha291XCA7CivouI/mn7sgPCB0b3VzYVwgOwor55S75qW8IDwgZ2Fyb3VcIDsKK+iEseeariA8IGRhcHBpXCA7CivmnaXpmaIgPCByYWlpblwgOwor5L6N56WtIDwgamlzYWlcIDsKK+i7jeWCmSA8IGd1bmJpXCA7CivnlKPmsJcgPCBzYW5rZVwgOwor55Sj5q+bIDwgdWJ1Z2VcIDsKK+iFkOeImyA8IGZ1cmFuXCA7CivohLHnlr0gPCBkYXNzb1wgOwor5bKp5oi4IDwgaXdhdG9cIDsKK+Wvv+ebgyA8IGp1aGFpXCA7Civoh6rlvIEgPCBqaWJlblwgOwor55Wq5omLIDwgYmFudGVcIDsKK+WBuOWuiSA8IHRvdWFuXCA7CivlsI/nkLQgPCBvZ290b1wgOwor5L+E54S2IDwgZ2F6ZW5cIDsKK+eUu+advyA8IGdhYmFuXCA7CivlrZfoqJMgPCBqaWt1blwgOwor5qKz5q+bIDwgc29tb3VcIDsKK+mjm+mbuyA8IGhpZGVuXCA7Civkuozpmo4gPCBuaWthaVwgOwor55S75p2QIDwgZ2F6YWlcIDsKK+i7jeS6iyA8IGd1bmppXCA7CivnkIbosqEgPCByaXphaVwgOwor55S75pysIDwgZ2Fob25cIDsKK+eVuOW9oiA8IGtpa2VpXCA7Civku6PorbAgPCBkYWlnaVwgOwor6LWw56C0IDwgc291aGFcIDsKK+WCteWLmSA8IHNhaW11XCA7CivouqvliIYgPCBtaWJ1blwgOwor6LOE6LOCIDwgd2Fpcm9cIDsKK+iCsuiLsSA8IGlrdWVpXCA7CivlsI/niqwgPCBrb2ludVwgOwor55Sx5p2lIDwgeXVyYWlcIDsKK+S8vee+hSA8IGt5YXJhXCA7Civku4/osqggPCBmdWtrYVwgOwor5p2x6YO9IDwgdG91dG9cIDsKK+adsemDqCA8IHRvdWJ1XCA7Civku67oo4UgPCBrYXNvdVwgOwor6Ieq5bC9IDwgamlqaW5cIDsKK+eQhuirliA8IHJpcm9uXCA7CivlgY/lt64gPCBoZW5zYVwgOwor5bCK54i2IDwgc29ucHVcIDsKK+WBveWgsSA8IGdpaG91XCA7CivlrprnvqkgPCB0ZWlnaVwgOwor5YKZ5ZOBIDwgYmloaW5cIDsKK+iyqOi7iiA8IGthc2hhXCA7Civkv5fmsJcgPCB6b2trZVwgOwor6Ieq5a6zIDwgamlnYWlcIDsKK+iyuOiyuyA8IHRhaWhpXCA7CivnlZnmhI8gPCByeXV1aVwgOwor5L2V566HIDwgbmFua29cIDsKK+WAi+aVsCA8IGtvc3V1XCA7Civlr53nm7ggPCBuZXpvdVwgOwor6aK26aKoIDwgZ3VmdXVcIDsKK+ahgueariA8IGtlaWhpXCA7Civpo7LphZIgPCBpbnNodVwgOwor5Lqo6YGLIDwga291dW5cIDsKK+eQhuinoyA8IHJpa2FpXCA7CivkvZXnrYkgPCBuYW5yYVwgOwor6LKp6LevIDwgaGFucm9cIDsKK+S/l+atjCA8IHpva2thXCA7CivkuZfppqwgPCBqb3ViYVwgOwor5LuY6KiAIDwgZnVnZW5cIDsKK+i1pOebriA8IGFrYW1lXCA7Civku4vorbcgPCBrYWlnb1wgOwor5LuW6KiAIDwgdGFnb25cIDsKK+S6lOmHjSA8IGdvanV1XCA7CivoiJ7lj7AgPCBidXRhaVwgOwor5pyd6aSJIDwgYXNhZ2VcIDsKK+WvoeeUtyA8IHlhbW9vXCA7Civku5boposgPCB0YWtlblwgOwor6IiO5Za2IDwgc2hhZWlcIDsKK+S8juiKuCA8IGdpZ2VpXCA7Civnlo7lpJYgPCBzb2dhaVwgOwor5YG25ZugIDwgZ3V1aW5cIDsKK+Wuiee9riA8IGFuY2hpXCA7Civlgo3lj5cgPCBib3VqdVwgOwor5bKp5bGLIDwgaXdheWFcIDsKK+S6jOmHjSA8IGZ1dGFlXCA7CivogqXogrIgPCBoaWlrdVwgOwor5bCP5rudIDwgb3Rha2lcIDsKK+WBveWWhCA8IGdpemVuXCA7CivmoqfmoZAgPCBnb3RvdVwgOwor55S75omNIDwgZ2FzYWlcIDsKK+eUu+aJiyA8IGdhc2h1XCA7Civpoqjpn7sgPCBmdXVpblwgOwor5LuW6KGMIDwgdGFrb3VcIDsKK+iyoeiyqCA8IHphaWthXCA7CivkupLpgbggPCBnb3NlblwgOwor6aKo6Z2hIDwgZnV1YmlcIDsKK+S8juiDvSA8IGdpbm91XCA7CivmnKrplosgPCBtaWthaVwgOwor6LK06KanIDwga2lyYW5cIDsKK+miqOmbsiA8IGZ1dXVuXCA7CivkuZbpm6IgPCBrYWlyaVwgOwor55ay5Yq0IDwgaGlyb3VcIDsKK+WBveWQjSA8IGdpbWVpXCA7Civkurroqp4gPCBqaW5nb1wgOwor6aKo6ZuFIDwgZnV1Z2FcIDsKK+S6lOi8qiA8IGdvcmluXCA7Civlgb3lj7IgPCBnaXNoaVwgOwor5LqI6YG4IDwgeW9zZW5cIDsKK+S5l+mZpCA8IGpvdWpvXCA7CivlgY/lpYcgPCBoZW5raVwgOwor5Li76aasIDwgc2h1bWVcIDsKK+S/neaciSA8IGhveXV1XCA7Civoh6rlnKggPCBqaXphaVwgOwor5LqM6LyqIDwgbmlyaW5cIDsKK+acnemWkyA8IGFzYW1hXCA7CivohLPms6IgPCBub3VoYVwgOwor5a6f56eRIDwgamlra2FcIDsKK+WxoOaJgCA8IHRvc2hvXCA7CivnlpHllY8gPCBnaW1vblwgOwor6IiO5YipIDwgc2hhcmlcIDsKK+S6jOi7jSA8IG5pZ3VuXCA7CivlgJLlvbEgPCB0b3VlaVwgOwor5LuW6JamIDwgdGF6ZW5cIDsKK+mnhOeKrCA8IGRha2VuXCA7Civpo5vou4ogPCBoaXNoYVwgOwor5bG55bqmIDwga2l0dG9cIDsKK+WAreWvhyA8IHdha291XCA7CivlsI/mrYwgPCBrb3V0YVwgOwor5Li76Z+zIDwgc2h1b25cIDsKK+WuueeWkSA8IHlvdWdpXCA7CivkvZnnlJ8gPCB5b3NlaVwgOwor576O6bqXIDwgYmlyZWlcIDsKK+WumuekjiA8IHRlaXNvXCA7CivlsqnloLQgPCBpd2FiYVwgOwor6Ieq5ZWPIDwgamltb25cIDsKK+WBveWFtSA8IGdpaGVpXCA7CivohZXmnKggPCB1ZGVnaVwgOwor55S75biWIDwgZ2Fqb3VcIDsKK+e+vemfsyA8IGhhb3RvXCA7CivlgInluqsgPCBzb3Vrb1wgOwor5py66L66IDwga2loZW5cIDsKK+eVsOWbvSA8IGlrb2t1XCA7CivmnZHosrsgPCBzb25waVwgOwor6LOi6ICFIDwga2VuamFcIDsKK+acrOmDqCA8IGhvbmJ1XCA7CivkupLorbIgPCBnb2pvdVwgOwor5a++5qynIDwgdGFpb3VcIDsKK+iAgei6ryA8IHJvdWt1XCA7CivnlKPlvowgPCBzYW5nb1wgOwor55So5bqmIDwgeW91ZG9cIDsKK+abuOmZoiA8IHNob2luXCA7CivmoZDmsrkgPCB0b3V5dVwgOwor5pyq6YGCIDwgbWlzdWlcIDsKK+eUn+W+kiA8IHNlaXRvXCA7CivnlJ/lvowgPCBzZWlnb1wgOwor6ISa5rCXIDwga2Fra2VcIDsKK+eOi+mBkyA8IG91ZG91XCA7Civos5vnvo4gPCBzYW5iaVwgOwor6IWQ5pWXIDwgZnVoYWlcIDsKK+i5hOWPiSA8IHRlaXNhXCA7CivmnKjpgJogPCBha2ViaVwgOwor5LuV6IieIDwgamltYWlcIDsKK+i2iuaoqSA8IGVra2VuXCA7Civot4vmiYggPCBiYWtrb1wgOwor5L2Z54e8IDwgeW9qaW5cIDsKK+iHquWJjSA8IGppbWFlXCA7Civog4Pnl5sgPCBpdHN1dVwgOwor5bCP5p6dIDwga29lZGFcIDsKK+iDg+eXhSA8IGlieW91XCA7Civoh6rliIYgPCBqaWJ1blwgOwor6LW35q+bIDwga2ltb3VcIDsKK+eRqueRmSA8IG1lbm91XCA7CivpoqjpgqogPCBmdXVqYVwgOwor5L2c54K6IDwgc2FrdWlcIDsKK+WuieecoCA8IGFubWluXCA7Civoh6rlhZogPCBqaXRvdVwgOwor5bC/5oSPIDwgbnlvdWlcIDsKK+acm+mBoCA8IGJvdWVuXCA7CivkuojoqIAgPCB5b2dlblwgOwor5Lmd6LyqIDwga3VyaW5cIDsKK+S5seiyuyA8IHJhbnBpXCA7Civku5bogZ4gPCB0YWJ1blwgOwor5pyq6LiPIDwgbWl0b3VcIDsKK+WvvuahiCA8IHRhaWFuXCA7CivkuojoposgPCB5b2tlblwgOwor5LuW6ICFIDwgdGFzaGFcIDsKK+S7rue0jSA8IGthbm91XCA7CivnjKrpppYgPCBpa3ViaVwgOwor5LiN6aCGIDwgZnVqdW5cIDsKK+S4gOmmliA8IGlzc2h1XCA7CivnlKPlsYsgPCB1YnV5YVwgOwor5Luu57KnIDwga2V3YWlcIDsKK+ixquiqniA8IGdvdWdvXCA7CivpoZ7pn7sgPCBydWlpblwgOwor6aGe6Z+zIDwgcnVpb25cIDsKK+iyp+iLpiA8IGhpbmt1XCA7CivnlLflpbMgPCBkYW5qb1wgOwor5qC55rCXIDwga29ua2lcIDsKK+i1pOavmyA8IGFrYWdlXCA7CivkuIDpo68gPCBpcHBhblwgOwor576O6aKoIDwgYmlmdXVcIDsKK+mjm+ihjCA8IGhpa291XCA7Civkuqzoj68gPCBrZWlrYVwgOwor5a6J55SjIDwgYW56YW5cIDsKK+S4gOmiqCA8IGlwcHV1XCA7Civnvo7poZQgPCBiaWdhblwgOwor5a6f54i2IDwgamlwcHVcIDsKK+iHquS8nSA8IGppZGVuXCA7CivogZbogIUgPCBzZWlqYVwgOwor5L6/5omAIDwgYmVuam9cIDsKK+S4lumWkyA8IHNla2VuXCA7CivkuIDpoK0gPCBpdHRvdVwgOwor6Ieq5LuKIDwgamlrb25cIDsKK+S4u+mDqCA8IHNodWJ1XCA7CivkuIDpoIUgPCBpa2tvdVwgOwor55Sw5aSrIDwgZGVucHVcIDsKK+mjm+idlyA8IGJhdHRhXCA7CivnkIbns7sgPCByaWtlaVwgOwor55Sj5ammIDwgc2FucHVcIDsKK+WvuOaahyA8IHN1bmthXCA7CivmnrbnqbogPCBrYWt1dVwgOwor55Sj5amGIDwgc2FuYmFcIDsKK+ixjOixhiA8IGVuZG91XCA7CivkuIvpmKogPCBnZWhhblwgOwor5a+45pmCIDwgc3VuamlcIDsKK+aiteWtlyA8IGJvbmppXCA7CivnlJjlrZAgPCBhbWFnb1wgOwor5L2T5ripIDwgdGFpb25cIDsKK+S7gee+qSA8IGppbmdpXCA7CivkuLvovp4gPCBzaHVqaVwgOwor5pq06aOyIDwgYm91aW5cIDsKK+WvneajuiA8IG5la2FuXCA7CivotbDmn7sgPCBzb3VzYVwgOwor5LiA6ZqOIDwgaWtrYWlcIDsKK+acrOiotCA8IGhvbnNvXCA7CivkuIDpmoogPCBpdHRhaVwgOwor5pu56YGUIDwgc291ZGFcIDsKK+iyp+iAhSA8IGhpbmphXCA7CivnlLDlnIMgPCBkZW5wb1wgOwor5LuY566LIDwgZnVzZW5cIDsKK+S4gOmWgyA8IGlzc2VuXCA7Civkvq7mhaIgPCBidW1hblwgOwor5L2c5q2MIDwgc2Fra2FcIDsKK+acqOS5g+S8iiA8IG1paXJhXCA7Civnvqnph5EgPCBnaWtpblwgOwor5L+d5a6IIDwgaG9zaHVcIDsKK+miqOirrSA8IGZ1dXl1XCA7CivkuJbpioAgPCBzZWdpblwgOwor5L+d5a2YIDwgaG96b25cIDsKK+eUmOWkoiA8IGthbm11XCA7CivlsKTluqYgPCB5dXVkb1wgOwor5pyI6LOmIDwgZ2VwcHVcIDsKK+WxleWikyA8IHRlbmJvXCA7Civnj6rntKAgPCBrZWlzb1wgOwor5qC45p6cIDwga2Fra2FcIDsKK+WwiuaEjyA8IHNvbicnaVwgOwor6aaZ5rK5IDwga291eXVcIDsKK+eUqOWZqCA8IHlvdWtpXCA7CivmoYjmlocgPCBhbm1vblwgOwor5pyX6KmgIDwgcm91ZWlcIDsKK+WAkuWPpSA8IHRvdWt1XCA7CivlgJLlj5kgPCB0b3Vqb1wgOwor5Luu55ygIDwga2FtaW5cIDsKK+S6lOiHkyA8IGdvem91XCA7Civog4zms7MgPCBoYWllaVwgOwor5Lqh6ICFIDwgbW91amFcIDsKK+S4h+mHjCA8IGJhbnJpXCA7CivnkIbnn6UgPCByaWNoaVwgOwor5LuP56WWIDwgYnVzc29cIDsKK+mnhOaWhyA8IGRhYnVuXCA7Civnvqnou40gPCBnaWd1blwgOwor5YCt5Lq6IDwgd2FqaW5cIDsKK+S4g+mHjSA8IG5hbmFlXCA7CivkuIvpg44gPCBnZXJvdVwgOwor5LiK6YOoIDwgam91YnVcIDsKK+mgk+mmrCA8IHRvbm1hXCA7CivkuInpg6ggPCBzYW5idVwgOwor5LiN6YGcIDwgZnVzb25cIDsKK+S4jemBhyA8IGZ1Z3V1XCA7Civkvr/lrpwgPCBiZW5naVwgOwor5LiN6YCeIDwgZnV0ZWlcIDsKK+Wwj+W3nSA8IG9nYXdhXCA7CivkuI3pgIAgPCBmdXRhaVwgOwor576O6YWSIDwgYmlzaHVcIDsKK+S4u+iotCA8IHNodXNvXCA7Civmmpfpm7IgPCBhbicndW5cIDsKK+S6jOWNgemHjSA8IGhhdGFlXCA7CivnlLflhZAgPCBkYW5qaVwgOwor5LqM6ICFIDwgbmlzaGFcIDsKK+eUu+WDjyA8IGdhem91XCA7Civkv7PlkbMgPCBoYWltaVwgOwor55So5YuZIDwgeW91bXVcIDsKK+WppumBkyA8IGZ1ZG91XCA7CivmnZHnv4EgPCBzb25vdVwgOwor5a6J5rOwIDwgYW50YWlcIDsKK+iCpea6gCA8IGhpbWFuXCA7CivkuIvovKkgPCBnZWhhaVwgOwor5a625p2lIDwga2VyYWlcIDsKK+WApOS4iiA8IG5lYWdlXCA7CivnlJjlkbMgPCBrYW5taVwgOwor5L+z5Y+lIDwgaGFpa3VcIDsKK+S4gOmBjSA8IGlwcGVuXCA7CivogIHoiJcgPCByb3Vob1wgOwor5pqX6ZeYIDwgYW50b3VcIDsKK+S4i+i7iiA8IGdlc2hhXCA7CivnlJrlj6UgPCBqaW5rdVwgOwor5Lqb57SwIDwgc2FzYWlcIDsKK+eQhueUsSA8IHJpeXV1XCA7CivkurrnpZYgPCBqaW5zb1wgOwor5Lmx6IieIDwgcmFuYnVcIDsKK+S+jeW+kyA8IGppanV1XCA7CivlqIPprJ8gPCBhaWthblwgOwor5Lya5rS+IDwga2FpaGFcIDsKK+S7lueVjCA8IHRha2FpXCA7CivkupTntYMgPCBnb2dlblwgOwor5bCP5a2XIDwga29hemFcIDsKK+Wxi+WPsCA8IHlhdGFpXCA7CivlsIrlrrYgPCBzb25rYVwgOwor5LiA6LuiIDwgaXR0ZW5cIDsKK+eUu+S6uiA8IGdhamluXCA7CivpoYzovp4gPCBkYWlqaVwgOwor5LiA6LuSIDwgaWtrZW5cIDsKK+Wun+aihSA8IG1pdW1lXCA7Civot6/lgo0gPCByb2JvdVwgOwor5pys6IiXIDwgaG9ucG9cIDsKK+S4jeiytyA8IGZ1YmFpXCA7CivkuIvos6QgPCBnZXNlblwgOwor5a+d5oGvIDwgbmVpa2lcIDsKK+aer+eHpSA8IGtvc291XCA7CivmnKjoiJ4gPCBrb21haVwgOwor6ICB57+BIDwgcm91b3VcIDsKK+e+veifuyA8IGhhYXJpXCA7Civlr5vmgZUgPCBrYW5qb1wgOwor6LK755SoIDwgaGl5b3VcIDsKK+S7o+eItiA8IGRhaWZ1XCA7Civosqvnm64gPCBrYW5tZVwgOwor576p6KiTIDwgZ2lrdW5cIDsKK+S6iOe0jSA8IHlvbm91XCA7CivkuIfosqggPCBiYW5rYVwgOwor5p2/55uuIDwgaXRhbWVcIDsKK+mgremHjSA8IHp1b21vXCA7CivmooXlnJIgPCBiYWllblwgOwor6LK055S3IDwgdGFrYW9cIDsKK+WumuacnyA8IHRlaWtpXCA7CivlsI/lo7AgPCBrb2dvZVwgOwor5qGC5bq1IDwga2VpYW5cIDsKK+S4gOiyqyA8IGlra2FuXCA7CivnlJ/kv50gPCBzZWlob1wgOwor5L6/5ZmoIDwgYmVua2lcIDsKK+acquiBniA8IG1pbW9uXCA7Civpn7Ppn7sgPCBvbicnaW5cIDsKK+aZr+mbsiA8IGtlaXVuXCA7CivkuoznrYkgPCBuaXRvdVwgOwor5LiK6KutIDwgam91eXVcIDsKK+S6iOeulyA8IHlvc2FuXCA7CivpoZ7oqp4gPCBydWlnb1wgOwor6Lev5LiKIDwgcm9qb3VcIDsKK+acrOe+qSA8IGhvbmdpXCA7CivosYbohZAgPCB0b3VmdVwgOwor6aeE5byBIDwgZGFiZW5cIDsKK+WppuitpiA8IGZ1a2VpXCA7CivotbflsYUgPCBraWt5b1wgOwor5p2/55S7IDwgaGFuZ2FcIDsKK+S9k+aKgCA8IHRhaWdpXCA7Civkv53lhrcgPCBob3JlaVwgOwor5L2Z5oakIDwgeW9mdW5cIDsKK+S4iuiotCA8IGpvdXNvXCA7Civkv53lhaggPCBob3plblwgOwor5LqM56iuIDwgbmlzaHVcIDsKK+aenOeEtiA8IGthemVuXCA7Civpn7Ppmo4gPCBvbmthaVwgOwor576O6KuHIDwgYmlkYW5cIDsKK+WutuaGsiA8IGtha2VuXCA7Civku6PmvJQgPCBkYWllblwgOwor5L2Z5oOFIDwgeW9qb3VcIDsKK+WvoeWxhSA8IGtha3lvXCA7CivniqzppqwgPCBrZW5iYVwgOwor5bC85YOnIDwgbmlzb3VcIDsKK+e/oee/oCA8IGhpc3VpXCA7Civmnq/mt6EgPCBrb3RhblwgOwor5pyq57e0IDwgbWlyZW5cIDsKK+S4gOioiCA8IGlra2VpXCA7Civnvo7oprMgPCBiaWthblwgOwor6aCQ6YeRIDwgeW9raW5cIDsKK+S9meW/tSA8IHlvbmVuXCA7CivpoYzoqaAgPCBkYWllaVwgOwor5pyo57a/IDwgbW9tZW5cIDsKK+S4ueiJsiA8IG5paXJvXCA7CivnjovntbEgPCBvdXRvdVwgOwor6Laj5ZGzIDwgc2h1bWlcIDsKK+izouavjSA8IGtlbmJvXCA7Civmmpfou6IgPCBhbnRlblwgOwor5pyq57SNIDwgbWlub3VcIDsKK+itsOmhjCA8IGdpZGFpXCA7CivkvZnlvIogPCB5b2hlaVwgOwor6LWk5a2XIDwgYWthamlcIDsKK+mkiueItiA8IHlvdWZ1XCA7CivmnaXnlLEgPCByYWl5dVwgOwor5qC55a2QIDwgbmVra29cIDsKK+WvuOWcnyA8IHN1bmRvXCA7CivkvZXluqYgPCBuYW5kb1wgOwor6IOh5bqnIDwgYWd1cmFcIDsKK+ahiOWkliA8IGFuZ2FpXCA7CivkvZzli5nooaMgPCBzYW11ZVwgOwor5puz6IiqIDwgZWlrb3VcIDsKK+eQhuazlSA8IHJpaG91XCA7CivpoqjntIAgPCBmdXVraVwgOwor5Luj5q+NIDwgZGFpYm9cIDsKK+S6uueCuiA8IGppbicnaVwgOwor5Lyd5pKtIDwgZGVucGFcIDsKK+e9teiogCA8IGJhZ2VuXCA7CivpqI7lhbUgPCBraWhlaVwgOwor5qGR5ZySIDwgc291ZW5cIDsKK+S6kueUqCA8IGdveW91XCA7CivkuLvnvqkgPCBzaHVnaVwgOwor5p2h55CGIDwgam91cmlcIDsKK+Wwj+WLoiA8IGtvemVpXCA7Civlr4Tlr5MgPCBraWd1dVwgOwor5LqM55WqIDwgbmliYW5cIDsKK+iDjOW+jCA8IGhhaWdvXCA7CivniaHpub8gPCBvamlrYVwgOwor5pys56eRIDwgaG9ua2FcIDsKK+mmrOWxiyA8IHVtYXlhXCA7CivkvJ3mjoggPCBkZW5qdVwgOwor5bCP5YikIDwga29iYW5cIDsKK+e+vee/vCA8IHV5b2t1XCA7Civmnp3mr5sgPCBlZGFnZVwgOwor5a+/5Y+4IDwgc3VzaGlcIDsKK+mmluW6pyA8IHNodXphXCA7CivpppblupwgPCBzaHVmdVwgOwor5Lqh54i2IDwgYm91ZnVcIDsKK+aZrumBjSA8IGZ1aGVuXCA7CivkvZnlr5IgPCB5b2thblwgOwor6K2c6Z2iIDwgZnVtZW5cIDsKK+S7u+acnyA8IG5pbmtpXCA7Civota3lnJ8gPCBzaGFkb1wgOwor5a625bGLIDwga2Fva3VcIDsKK+iBluayuSA8IHNlaXl1XCA7CivnjJ/omY4gPCByYWtrb1wgOwor5a+d5Z2KIDwgbmVib3VcIDsKK+mjtOeFriA8IGFtZW5pXCA7CivmnqLmqZ8gPCBzdXVraVwgOwor5L2P5bGFIDwgc3VtYWlcIDsKK+iDg+W8sSA8IGlqYWt1XCA7CivkvJ3miYsgPCB0c3V0ZVwgOwor5a615a+dIDwgeW9pbmVcIDsKK+i2s+S4iyA8IHNva2thXCA7CivlsI/lg6cgPCBrb3pvdVwgOwor5a6d5bqrIDwgaG91a29cIDsKK+mghui3ryA8IGp1bnJvXCA7CivkuIrojbcgPCB1d2FuaVwgOwor5LiA6JGmIDwgaWNoaWlcIDsKK+WuruWxhSA8IG1peWFpXCA7CivohLHlhY4gPCBkYXR0b1wgOwor576957mUIDwgaGFvcmlcIDsKK+aal+imliA8IGFuc2hpXCA7Civmnpfmqo4gPCByaW5nb1wgOwor5Luj5qGIIDwgZGFpYW5cIDsKK+mmluWwviA8IHNodWJpXCA7CivotorlhqwgPCBldHRvdVwgOwor5a6J5b+DIDwgYW5qaW5cIDsKK+iyquaxmiA8IHRhbicnb1wgOwor5L6h5YCkIDwga2FjaGlcIDsKK+WmlumtlCA8IHlvdW1hXCA7CivkuIDoiZggPCBpc3NvdVwgOwor5p2l5ryUIDwgcmFpZW5cIDsKK+S8keaEjyA8IGt5dXVpXCA7CivppIrmr40gPCB5b3Vib1wgOwor5LiA6Ie0IDwgaXRjaGlcIDsKK+mnheWToSA8IGVraWluXCA7CivkvJrlvpcgPCBldG9rdVwgOwor5a+d5Y+wIDwgbmVkYWlcIDsKK+S4jeiAgSA8IGZ1cm91XCA7CivorbfpgIEgPCBnb3NvdVwgOwor5LuW5p2RIDwgdGFzb25cIDsKK+adnOa8jyA8IHp1cm91XCA7Civmn7vlrpogPCBzYXRlaVwgOwor5a6X5a62IDwgc291a2VcIDsKK+eJnemmrCA8IGhpbmJhXCA7Civnvo7ogrIgPCBiaWlrdVwgOwor5qGI5YiGIDwgYW5idW5cIDsKK+S7j+aenCA8IGJ1a2thXCA7CivogIHniLogPCByb3V5YVwgOwor6ICB54i2IDwgcm91ZnVcIDsKK+mgreiTiyA8IHp1Z2FpXCA7CivnkIbmlbAgPCByaXN1dVwgOwor5Lqc5rWBIDwgYXJ5dXVcIDsKK+ixoeeJmSA8IHpvdWdlXCA7Civorabpgo8gPCBrZWlyYVwgOwor5a6J5bGFIDwgYW5reW9cIDsKK+adseaspyA8IHRvdW91XCA7Civpp4bli5UgPCBrdWRvdVwgOwor6LSU5bGTIDwgaGlpa2lcIDsKK+WvoeWFtSA8IGthaGVpXCA7Civku5bmlrkgPCB0YWhvdVwgOwor5Lu75oSPIDwgbmluJydpXCA7CivpoZ7nuIEgPCBydWllblwgOwor5L2Z5ZaYIDwgeW96ZW5cIDsKK+iukuiqoyA8IHphbmJ1XCA7CivkuqHmr40gPCBib3Vib1wgOwor5bGF55WZ5a6IIDwgaXJ1c3VcIDsKK+WuieWumiA8IGFudGVpXCA7CivkuIvnt5IgPCBzYWdlb1wgOwor5a6H5a6ZIDwgdWNodXVcIDsKK+iukuiotCA8IHphbnNvXCA7Civpn7PoqakgPCBvbnNoaVwgOwor5LyO5belIDwgZ2lrb3VcIDsKK+mfs+iokyA8IG9ua3VuXCA7Civos6LmhJogPCBrZW5ndVwgOwor6IOD5aOBIDwgaWhla2lcIDsKK+S9meWRvSA8IHlvbWVpXCA7CivkuI3nsosgPCBidXN1aVwgOwor5aaW6ZuyIDwgeW91dW5cIDsKK+i1tOS7uyA8IGZ1bmluXCA7Civos6bmgKcgPCBmdXNlaVwgOwor5Luj5omTIDwgZGFpZGFcIDsKK+ahiOS7tiA8IGFua2VuXCA7CivnjaPnmq4gPCBqdXVoaVwgOwor5LqU5q61IDwgZ29kYW5cIDsKK+izm+aEjyA8IHNhbicnaVwgOwor5p2/5pyoIDwgaGFuZ2lcIDsKK+mjouawkSA8IGtpbWluXCA7Civpo5vms4kgPCBoaXNlblwgOwor5pyq54S2IDwgbWl6ZW5cIDsKK+mnkOS8iiA8IGNodXVpXCA7CivmmKDphY0gPCBlaWhhaVwgOwor5a2k5biGIDwga29oYW5cIDsKK+S9nOWLlSA8IHNhZG91XCA7CivkuIDns7ggPCBpc3NoaVwgOwor5LiN562JIDwgZnV0b3VcIDsKK+S6uuaZgiA8IG5pbmppXCA7CivpoK3ohLMgPCB6dW5vdVwgOwor5pyo54GwIDwga2liYWlcIDsKK+e+hee0lyA8IHJhc2hhXCA7CivlpYfpupcgPCBraXJlaVwgOwor5LuV5omLIDwgc2hpdGVcIDsKK+mmrOWIuCA8IGJha2VuXCA7Civlrq7lj7ggPCBndXVqaVwgOwor55CG5oOzIDwgcmlzb3VcIDsKK+WupeWSjCA8IHl1dXdhXCA7CivorbDoq5YgPCBnaXJvblwgOwor5pu455S7IDwgc2hvZ2FcIDsKK+eNsueJqSA8IGVtb25vXCA7Civlpa7po5sgPCBmdW5waVwgOwor6IKl5aSnIDwgaGlkYWlcIDsKK+S9meWFmiA8IHlvdG91XCA7CivnkIbmgKcgPCByaXNlaVwgOwor5pmC6KuWIDwgamlyb25cIDsKK+itpuittyA8IGtlaWdvXCA7CivosqDmlbAgPCBmdXN1dVwgOwor5LqM5qeYIDwgbml5b3VcIDsKK+e+qeecvCA8IGdpZ2FuXCA7Civmn7vllY8gPCBzYW1vblwgOwor55CG5b+1IDwgcmluZW5cIDsKK+mdkummrCA8IGFvdW1hXCA7Civoravoqp4gPCBzZW5nb1wgOwor5pyq5rqAIDwgbWltYW5cIDsKK+WutuWGhSA8IGthbmFpXCA7CivkuJbnn6UgPCBzZWNoaVwgOwor5a6a5ZOhIDwgdGVpaW5cIDsKK+iyt+aJiyA8IGthaXRlXCA7Civlr53mpIXlrZAgPCBuZWlzdVwgOwor5p2l5pyfIDwgcmFpa2lcIDsKK+S6leahgSA8IGlnZXRhXCA7Civmmpfnv7MgPCBhbicnZWlcIDsKK+acqua4iCA8IG1pc2FpXCA7Civlp4nosrQgPCBhbmVraVwgOwor6ICB5q+NIDwgcm91Ym9cIDsKK+S7luW/tSA8IHRhbmVuXCA7CivlrpvlkI0gPCBhdGVuYVwgOwor5aWz6ZujIDwgam9uYW5cIDsKK+WltOmatyA8IGRvcmVpXCA7CivkuJbnm7ggPCBzZXNvdVwgOwor5Luy5bGFIDwgbmFrYWlcIDsKK+acq+a0viA8IG1hcHBhXCA7CivpnZ7pm6MgPCBoaW5hblwgOwor5LiL55+lIDwgZ2VkamlcIDsKK+Wkqum8kyA8IHRhaWtvXCA7CivpoIjoh74gPCBzaHV5dVwgOwor5pyd5rmvIDwgYXNheXVcIDsKK+WllOmmrCA8IGhvbmJhXCA7CivogZbmgakgPCBzZWlvblwgOwor5auM5rCXIDwga2Vua2lcIDsKK+S4jeecoCA8IGZ1bWluXCA7Civkupzml48gPCBhem9rdVwgOwor5LuB5oWIIDwgamluamlcIDsKK+S7ruWvkyA8IGthZ3V1XCA7Civku4/lvpIgPCBidXR0b1wgOwor5p2/5oi4IDwgaXRhZG9cIDsKK+S6uuaIkSA8IGppbmdhXCA7CivosqfmiZMgPCBoaW5kYVwgOwor5L2Z5Lq6IDwgeW9uaW5cIDsKK+S7luW6lyA8IHRhdGVuXCA7CivlpKfpu4QgPCBkYWlvdVwgOwor5LiK552AIDwgdXdhZ2lcIDsKK+Wkp+m6uyA8IHRhaW1hXCA7CivmnKzmsJcgPCBob25raVwgOwor6ICB5qi5IDwgcm91anVcIDsKK+aYr+iqjSA8IHplbmluXCA7CivosqDmi4UgPCBmdXRhblwgOwor5pqX57eaIDwgYW5zZW5cIDsKK+S4iuebriA8IHV3YW1lXCA7CivmoITlhqAgPCBlaWthblwgOwor5L2O5L6hIDwgdGVpa2FcIDsKK+eOi+awtCA8IG91c3VpXCA7Civku4rlvowgPCBrb25nb1wgOwor5LiW55WMIDwgc2VrYWlcIDsKK+Wtn+WlsyA8IG1vdWpvXCA7Civpo5vmnaUgPCBoaXJhaVwgOwor5LqM5pu0IDwgbmlrb3VcIDsKK+mmrOS4iiA8IGJham91XCA7CivlrrbkurogPCBrZW5pblwgOwor5LuB5oGVIDwgamluam9cIDsKK+Wtn+WkjyA8IG1vdWthXCA7CivmlpHps6kgPCBpa2FydVwgOwor6aKo5rOiIDwgZnV1aGFcIDsKK+S7iuW6piA8IGtvbmRvXCA7CivkuIvnlrMgPCBnZWthblwgOwor6Z+z6ImyIDwgbmVpcm9cIDsKK+iAjOadpSA8IGppcmFpXCA7CivmnZzmkrAgPCB6dXNhblwgOwor6K2O6KmQIDwga2lzc2FcIDsKK+S4i+eVjCA8IGdla2FpXCA7CivkuIvnlLcgPCBnZW5hblwgOwor5LiL55SwIDwgZ2VkZW5cIDsKK+aaluewviA8IG5vcmVuXCA7Civku5blsbEgPCB0YXphblwgOwor5a2Q5aWzIDwgc2hpam9cIDsKK+eOi+aoqSA8IG91a2VuXCA7Civpo5vmlaMgPCBoaXNhblwgOwor5ayM5oWLIDwgc2hpbmFcIDsKK+e+jueUtyA8IGJpbmFuXCA7Civnvo7nlLAgPCBiaWRlblwgOwor5LiA55SfIDwgaXNzZWlcIDsKK+WuieWFqCA8IGFuemVuXCA7CivkupTmjIcgPCBnb3NoaVwgOwor5LuP5a62IDwgYnVra2VcIDsKK+eJueiomCA8IHRva2tpXCA7Civml6LpgYIgPCBraXN1aVwgOwor6aGM55S7IDwgZGFpZ2FcIDsKK+iBluWvvyA8IHNlaWp1XCA7CivorLnoqbEgPCBraW53YVwgOwor5LiN54qvIDwgZnVib25cIDsKK+S7iuWutSA8IGtveW9pXCA7CivkupTmiJIgPCBnb2thaVwgOwor5p2e5oaCIDwga2l5dXVcIDsKK+mdoumDqCA8IG1lbmJ1XCA7CivmmI7oqJggPCBtZWlraVwgOwor5LuW5aeTIDwgdGFzZWlcIDsKK+Wls+mDjiA8IGpvcm91XCA7CivosqHluIMgPCBzYWlmdVwgOwor5pyq5p2lIDwgbWlyYWlcIDsKK+S4jeeHgyA8IGZ1bmVuXCA7CivkuIDnjK4gPCBpa2tvblwgOwor5pa96YygIDwgc2Vqb3VcIDsKK+WuieS9jyA8IGFuanV1XCA7CivluqfmpIXlrZAgPCB6YWlzdVwgOwor6Z2e6YGTIDwgaGlkb3VcIDsKK+mcp+mbsCA8IG11ZnVuXCA7Civmnb/lsYsgPCBpdGF5YVwgOwor5LqU5oKqIDwgZ29ha3VcIDsKK+WtpuWMuiA8IGdha2t1XCA7Civkurrlr78gPCBqaW5qdVwgOwor5LiO54K5IDwgeW90ZW5cIDsKK+S6uuWutiA8IGppbmthXCA7CivmnKrmmI4gPCBtaW1laVwgOwor5LqS5oG1IDwgZ29rZWlcIDsKK+mdoui8qiA8IG9tb3dhXCA7Civosqflr4wgPCBoaW5wdVwgOwor54++5aC0IDwgZ2VuYmFcIDsKK+iyp+WutiA8IGhpbmthXCA7CivpoZ7ngasgPCBydWlrYVwgOwor5a2Y5ZCmIDwgem9ucGlcIDsKK+adv+WtkCA8IGl0YWdvXCA7CivlpaDpg70gPCB0ZW50b1wgOwor6IGW5aScIDwgc2VpeWFcIDsKK+S7iuWkjyA8IGtvbmthXCA7Civkuojmg7MgPCB5b3NvdVwgOwor5Lu75YuZIDwgbmlubXVcIDsKK+aWuemHjCA8IGhvdXJpXCA7CivnjovmlL8gPCBvdXNlaVwgOwor576O54K5IDwgYml0ZW5cIDsKK+S6jOW/tSA8IG5pbmVuXCA7CivorJvoqbEgPCBrb3V3YVwgOwor6LOb5ZCmIDwgc2FucGlcIDsKK+Wkp+mbqCA8IG9vYW1lXCA7CivlpJXppIkgPCB5dXVnZVwgOwor5aSq6ZmwIDwgdGFpaW5cIDsKK+acneaXpSA8IGFzYWhpXCA7Civku6Plk6EgPCBkYWlpblwgOwor5LiK5ryUIDwgam91ZW5cIDsKK+aWh+mbhSA8IGJ1bmdhXCA7CivkuI3muoAgPCBmdW1hblwgOwor6LSI5LiOIDwgem91eW9cIDsKK+S5seaJkyA8IHJhbmRhXCA7CivlpJbpoYwgPCBnZWRhaVwgOwor54mh6KCjIDwgYm9yZWlcIDsKK+Wlrui1tyA8IGZ1bmtpXCA7CivkurrlpKsgPCBuaW5wdVwgOwor6IC25ayiIDwgeWFqb3VcIDsKK+WmhOiqniA8IG1vdWdvXCA7Civosp7lqaYgPCB0ZWlmdVwgOwor576p5rCRIDwgZ2ltaW5cIDsKK+iqnumhniA8IGdvcnVpXCA7CivmlrnpgJQgPCBob3V0b1wgOwor5LuP5ZmoIDwgYnVra2lcIDsKK+aXpeiqsiA8IG5pa2thXCA7Civoqp7poIYgPCBnb2p1blwgOwor5Li75p+7IDwgc2h1c2FcIDsKK+WkmumboyA8IHRhbmFuXCA7CivkuI3mtYQgPCBmdWpvdVwgOwor5pel6KiYIDwgbmlra2lcIDsKK+S7peWMlyA8IGlob2t1XCA7CivlrZDliIYgPCBrb2J1blwgOwor5aSW6ZyAIDwgZ2FpanVcIDsKK+WtpuS9jSA8IGdha3VpXCA7CivmnKzmiYsgPCBob250ZVwgOwor6LKe5aWzIDwgdGVpam9cIDsKK+mfs+eoiyA8IG9udGVpXCA7Civnv7vmhI8gPCBob24nJ2lcIDsKK+isgOitsCA8IGJvdWdpXCA7CivkuI3ms5UgPCBmdWhvdVwgOwor5Luj5YuZIDwgZGFpbXVcIDsKK+e+hea8oiA8IHJha2FuXCA7Civnvbnngb0gPCByaXNhaVwgOwor5pyq5oiQIDwgbWlzZWlcIDsKK+acgOacnyA8IHNhaWdvXCA7Civpm6rpp4QgPCBzZXR0YVwgOwor5aSV6Zm9IDwgeXV1aGlcIDsKK+WknOmWkyA8IHlha2FuXCA7CivogIHlvowgPCByb3Vnb1wgOwor5peF6LK7IDwgcnlvaGlcIDsKK+S6leWuiCA8IGltb3JpXCA7CivpnZLosp0gPCBhb2dhaVwgOwor5LiL5rC0IDwgZ2VzdWlcIDsKK+WliOi+uiA8IG5haGVuXCA7CivmlbTpmaQgPCBzZWlqb1wgOwor5LiN5q+bIDwgZnVtb3VcIDsKK+S4i+awkSA8IGdlbWluXCA7Civlq4zmgqogPCBrZW4nJ29cIDsKK+iyp+WcnyA8IGhpbmRvXCA7Civpm7vpm6IgPCBkZW5yaVwgOwor6aGe5q+UIDwgcnVpaGlcIDsKK+S4jeatuyA8IGZ1c2hpXCA7CivkuIvmrrUgPCBnZWRhblwgOwor6Zu26ZyyIDwgcmVpcm9cIDsKK+S6jOWwgSA8IG5pZnV1XCA7Civpm7fpm7IgPCByYWl1blwgOwor5LuW5YuVIDwgdGFkb3VcIDsKK+S4iuatryA8IHV3YWJhXCA7Civkuozlrq4gPCBuaWd1dVwgOwor5LuW5YqxIDwgdGFyZWlcIDsKK+ePreWToSA8IGhhbmluXCA7Civoq7foqqYgPCBmdXVqdVwgOwor5LiA5rC0IDwgaXNzdWlcIDsKK+S6iOWumiA8IHlvdGVpXCA7CivosrTlkJsgPCBraWt1blwgOwor5pat6LevIDwgZGFucm9cIDsKK+eLvOeFmSA8IHJvdWVuXCA7CivosrTlkI0gPCBraW1laVwgOwor5Luu5LukIDwgdGF0b2VcIDsKK+S4gOautSA8IGl0dGFuXCA7CivkuIDmrbMgPCBpc3NhaVwgOwor5p2l5aC0IDwgcmFpYmFcIDsKK+mfs+ebpCA8IG9uYmFuXCA7Civku4vliqkgPCBrYWlqb1wgOwor5LiH5qmfIDwgYmFua2lcIDsKK+mbquiKseiPnCA8IG9rYXJhXCA7Civpo6/loLQgPCBoYW5iYVwgOwor5aSn6YOoIDwgZGFpYnVcIDsKK+aZguepuiA8IGppa3V1XCA7Civpn7Pnl7QgPCBvbmNoaVwgOwor5paH6YOoIDwgbW9uYnVcIDsKK+aal+a+uSA8IGFudGFuXCA7CivoqbHpoYwgPCB3YWRhaVwgOwor5aSa6YeNIDwgdGFqdXVcIDsKK+ipsemgrSA8IHdhdG91XCA7CivkuovlpIkgPCBqaWhlblwgOwor5pmp55SfIDwgb2t1dGVcIDsKK+mbqOmWkyA8IGFtYWFpXCA7CivlppboibYgPCB5b3VlblwgOwor5aSW6YeOIDwgZ2FpeWFcIDsKK+S4i+agoSA8IGdla291XCA7Civoq5borbAgPCByb25naVwgOwor6Kqt6YGOIDwgZG9ra2FcIDsKK+aYjue+jiA8IG1laWJpXCA7Civku5jkvJogPCBmdWthaVwgOwor6KuL6LKgIDwgdWtlb2lcIDsKK+S4u+aIkSA8IHNodWdhXCA7Civpo73lkowgPCBob3V3YVwgOwor5LqM5aGBIDwgbmlydWlcIDsKK+iqpOmFjSA8IGdvaGFpXCA7Civpm6LplpMgPCByaWthblwgOwor57+75a2XIDwgaG9uamlcIDsKK+mjm+WgsSA8IGhpaG91XCA7Civku5bkurogPCB0YW5pblwgOwor5aSW6YOoIDwgZ2FpYnVcIDsKK+irluiqniA8IHJvbmdvXCA7Civmm5zml6UgPCB5b3ViaVwgOwor5aSW6YOOIDwgdWlyb3VcIDsKK+mdkuidvyA8IGFvYmFlXCA7Civnvajms5UgPCBhbnBvdVwgOwor6ICB5amGIDwgcm91YmFcIDsKK+iyoeWLmSA8IHphaW11XCA7CivkuIvmm7ggPCBnZXNob1wgOwor5pa96KGMIDwgc2Vrb3VcIDsKK+acgOaEmyA8IHNhaWFpXCA7Civmm5bmmKcgPCBhaW1haVwgOwor5pep6IuXIDwgc2FuYWVcIDsKK+S4h+actiA8IGJhbmRhXCA7CivmnKzlrrYgPCBob25rZVwgOwor5aSW6YGTIDwgZ2Vkb3VcIDsKK+WqmuaFiyA8IGJpdGFpXCA7CivmmYLnn60gPCBqaXRhblwgOwor5pqX5raZIDwgYW5ydWlcIDsKK+acieW/gyA8IHVzaGluXCA7Civnj77kuJYgPCBnZW56ZVwgOwor5pqi5rCXIDwgbm9ua2lcIDsKK+iAgeWmkyA8IHJvdWdpXCA7CivmnKrlrpogPCBtaXRlaVwgOwor5LiN5piTIDwgZnVla2lcIDsKK+acquWujCA8IG1pa2FuXCA7CivkuI3mmI4gPCBmdW1laVwgOwor6LK85LuYIDwgdGVucHVcIDsKK+acq+WtoyA8IG1ha2tpXCA7CivogIHlpbMgPCByb3Vqb1wgOwor5LiA5p2vIDwgaXBwYWlcIDsKK+e+juacrCA8IGJpaG9uXCA7CivkuIrmmKAgPCBqb3VlaVwgOwor546L5a2rIDwgb3Vzb25cIDsKK+S4i+aXrCA8IGdlanVuXCA7CivkuI3mlq0gPCBmdWRhblwgOwor5LiA5pysIDwgaXBwb25cIDsKK+S4jeaWhyA8IGZ1YnVuXCA7CivmnZDlmaggPCB6YWlraVwgOwor5YWr55m+5bGLIDwgeWFveWFcIDsKK+S4ieaXpSA8IG1pa2thXCA7Civlp4vnpZYgPCBzaGlzb1wgOwor5LiN5pWPIDwgZnViaW5cIDsKK+ixiuWvjCA8IGhvdWZ1XCA7Civnvo7mma8gPCBiaWtlaVwgOwor576p5oyZIDwgZ2lreW9cIDsKK+irh+ipsSA8IGRhbndhXCA7CivmlazpgaAgPCBrZWllblwgOwor5pyq5amaIDwgbWlrb25cIDsKK+acneWvnSA8IGFzYW5lXCA7CivosrjkuI4gPCB0YWl5b1wgOwor6LKg5YK1IDwgZnVzYWlcIDsKK+S5meWtkCA8IG90b2dvXCA7CivlpKfosYYgPCBkYWl6dVwgOwor6Zuo6YePIDwgdXJ5b3VcIDsKK+e+qeaJiyA8IGdpc2h1XCA7CivkuIDmlrkgPCBpcHBvdVwgOwor5LiA5pakIDwgaWtraW5cIDsKK+e+qeaIpiA8IGdpc2VuXCA7CivoqrnorJcgPCBoaWJvdVwgOwor57eL6a+JIDwgaGlnb2lcIDsKK+e+iOaXhSA8IGtpcnlvXCA7CivnvqnmhqQgPCBnaWZ1blwgOwor5LqM5ZCbIDwgbmlrdW5cIDsKK+S4luaJjSA8IHNlc2FpXCA7Civkuozlj7cgPCBuaWdvdVwgOwor5pyA5bemIDwgc2Fpc2FcIDsKK+S6oeWFkCA8IGJvdWppXCA7Civmm7jluqsgPCBzaG9rb1wgOwor6Zu76LevIDwgZGVucm9cIDsKK+S5meWlsyA8IG90b21lXCA7Civmlofoqp4gPCBidW5nb1wgOwor5LiW5oWLIDwgc2V0YWlcIDsKK+eOqeWRsyA8IGdhbm1pXCA7Civpoafmha4gPCBrb3J5b1wgOwor5aSc6K2mIDwgeWFrZWlcIDsKK+maoOmhlSA8IGlua2VuXCA7Civnjovln44gPCBvdWpvdVwgOwor5LiK5omLIDwgam91enVcIDsKK+acrOWcnyA8IGhvbmRvXCA7Civnvo7mjJkgPCBiaWt5b1wgOwor5LiA5oyZIDwgaWtreW9cIDsKK+mboui+siA8IHJpbm91XCA7CivkuIfmiLggPCBiYW5rb1wgOwor6Z+z5rqQIDwgb25nZW5cIDsKK+S6jOWIhiA8IG5pYnVuXCA7CivmmqvmmYIgPCB6YW5qaVwgOwor5piO56S6IDwgbWVpamlcIDsKK+maoOmdoiA8IGlubWVuXCA7CivoqLTpoZggPCBzb2dhblwgOwor576p5byfIDwgZ2l0ZWlcIDsKK+eOh+WcnyA8IHNvdHRvXCA7CivkuqTkupIgPCBrb3Vnb1wgOwor6Kqk6KqNIDwgZ29uaW5cIDsKK+mdoue9tSA8IG1lbmJhXCA7CivlpJboqp4gPCBnYWlnb1wgOwor5aSa6KiAIDwgdGFnZW5cIDsKK+S6lOWAjSA8IGdvYmFpXCA7CivpoIbmrKEgPCBqdW5qaVwgOwor6aGY5oSPIDwgZ2FuJydpXCA7CivpoqjlnJ8gPCBmdXVkb1wgOwor6Zuj6LevIDwgbmFucm9cIDsKK+eHg+iyuyA8IG5lbnBpXCA7CivkupTkvZMgPCBnb3RhaVwgOwor5pyJ5aSPIDwgeXV1a2FcIDsKK+S6jOWAjSA8IG5pYmFpXCA7CivkuIvlvqEgPCBnZWd5b1wgOwor546p5YW3IDwgZ2FuZ3VcIDsKK+iprei+ryA8IGtpYmVuXCA7CivlpaXnvqkgPCBva3VnaVwgOwor6Zu76KmxIDwgZGVud2FcIDsKK+eMm+aJkyA8IG1vdWRhXCA7CivpnIDopoEgPCBqdXlvdVwgOwor5aSn6JuHIDwgZGFpamFcIDsKK+acseWNsCA8IHNodWluXCA7CivlpJbooqsgPCBnYWloaVwgOwor5pyA5aSaIDwgc2FpdGFcIDsKK+S4jeW5syA8IGZ1aGVpXCA7CivlpbPns7sgPCBqb2tlaVwgOwor6LC35ZywIDwgeWFjaGlcIDsKK+S4iuW6pyA8IGpvdXphXCA7CivnuIHovrogPCBlbnBlblwgOwor5LqL5Lu2IDwgamlrZW5cIDsKK+S6jOS5lyA8IG5pam91XCA7CivkuIrluIMgPCBqb3VmdVwgOwor5pys5YuZIDwgaG9ubXVcIDsKK+S6jOS4liA8IG5pc2VpXCA7CivkuozkuIkgPCBuaXNhblwgOwor6K2y5rihIDwgam91dG9cIDsKK+miqOWRsyA8IGZ1dW1pXCA7Civorbfms5UgPCBnb2hvdVwgOwor6LGa5YWQIDwgdG9uamlcIDsKK+mbo+iqniA8IG5hbmdvXCA7CivmlYXosrcgPCBrb2JhaVwgOwor6ZuR6LK7IDwgemFwcGlcIDsKK+mbkeiyqCA8IHpha2thXCA7CivkuIvlsbEgPCBnZXphblwgOwor5pWX6Ki0IDwgaGFpc29cIDsKK+WjsOiqiSA8IHNlaXlvXCA7CivkuIrlsYsgPCB1d2F5YVwgOwor546L5YagIDwgb3VrYW5cIDsKK+miqOWMliA8IGZ1dWthXCA7CivmmrTlvpIgPCBib3V0b1wgOwor576p5aa5IDwgZ2ltYWlcIDsKK+S4h+WvvyA8IGJhbmp1XCA7CivpoZ7lrZcgPCBydWlqaVwgOwor6ZmN6a2UIDwgZ291bWFcIDsKK+mfs+agkyA8IG9uc2VuXCA7Civpn7vmm7ggPCBpbnNob1wgOwor5pa957GzIDwgc2VtYWlcIDsKK+itsuatqSA8IGpvdWhvXCA7Civmlofoi5EgPCBidW5lblwgOwor576O5a65IDwgYml5b3VcIDsKK+irh+e+qSA8IGRhbmdpXCA7CivpmqDpgYEgPCBpbnRvblwgOwor5LiA5a6aIDwgaXR0ZWlcIDsKK+mgk+aMqyA8IHRvbnphXCA7Civpm5HoqJggPCB6YWtraVwgOwor6Zqg6YCAIDwgaW50YWlcIDsKK+mdseeariA8IGppbnBpXCA7CivpoqjlhIAgPCBmdXVnaVwgOwor6Zmk6ZyKIDwgam9yZWlcIDsKK+WhqemhniA8IGVucnVpXCA7CivpmbDploAgPCBpbm1vblwgOwor5pen55e+IDwga3l1dWFcIDsKK+mfu+aWhyA8IGluYnVuXCA7CivmnIDlj6QgPCBzYWlrb1wgOwor57mB6IyCIDwgaGFubW9cIDsKK+WkmuiKuCA8IHRhZ2VpXCA7CivpmaTpmoogPCBqb3RhaVwgOwor5aSW6IuRIDwgZ2FpZW5cIDsKK+acq+S4liA8IG1hc3NlXCA7CivkuIflpKsgPCBiYW5wdVwgOwor5Li75YuZIDwgc2h1bXVcIDsKK+irreekuiA8IHl1c2hpXCA7Civpm4XoqIAgPCBnYWdlblwgOwor54Sh6aKoIDwgbXVmdXVcIDsKK+mdoueariA8IG1lbnBpXCA7CivpoK3lt74gPCB6dWtpblwgOwor54Sh6aGeIDwgbXVydWlcIDsKK+e+juWkpyA8IGJpZGFpXCA7Civnt5rot68gPCBzZW5yb1wgOwor54Sh6aGMIDwgbXVkYWlcIDsKK+eEoemgvCA8IGJ1cmFpXCA7Civoqaboo5wgPCBzaGlob1wgOwor576O5aOwIDwgYmlzZWlcIDsKK+WkmuiDvSA8IHRhbm91XCA7CivkuIvln44gPCBnZWpvdVwgOwor5piv5q2jIDwgemVzZWlcIDsKK+aVo+iPryA8IHNhbmdlXCA7CivlpI/oh7MgPCBnZXNoaVwgOwor57eP6LqrIDwgc291bWlcIDsKK+S4jeWcqCA8IGZ1emFpXCA7CivoqqTogZ4gPCBnb2J1blwgOwor6Z2i55S7IDwgbWVuZ2FcIDsKK+eEoembuyA8IG11ZGVuXCA7CivnhKHpm6MgPCBidW5hblwgOwor5aSW6ICzIDwgZ2FpamlcIDsKK+mdnueVqiA8IGhpYmFuXCA7CivmnInkvZkgPCB5dXV5b1wgOwor54Sh6ZmQIDwgbXVnZW5cIDsKK+S4jeWWhCA8IGZ1emVuXCA7CivkuI3llY8gPCBmdW1vblwgOwor5pyJ5LqLIDwgeXV1amlcIDsKK+ehq+m7hOiPryA8IGlvdWthXCA7Civnvqnli4cgPCBnaXl1dVwgOwor6aCS5biDIDwgaGFucHVcIDsKK+irluegtCA8IHJvbnBhXCA7CivnvbXlo7AgPCBiYXNlaVwgOwor5LiL5ZOBIDwgZ2VoaW5cIDsKK+aciOS4iyA8IGdla2thXCA7CivoqJPovp4gPCBrdW5qaVwgOwor5aSi57K+IDwgbXVzZWlcIDsKK+mfs+aEnyA8IG9ua2FuXCA7CivkuI3lj4IgPCBmdXNhblwgOwor6aCG5bqPIDwganVuam9cIDsKK+mhnuWPpSA8IHJ1aWt1XCA7CivkuIrlj6QgPCBqb3Vrb1wgOwor5LiJ5Y+JIDwgc2Fuc2FcIDsKK+mZuui3ryA8IGtlbnJvXCA7CivpmLLpmaQgPCBib3Vqb1wgOwor5LiN5YuiIDwgYnV6ZWlcIDsKK+ipseiKuCA8IHdhZ2VpXCA7Civnvo7lkI0gPCBiaW1laVwgOwor5aGp6YW4IDwgZW5zYW5cIDsKK+Wkp+eptCA8IG9vYW5hXCA7CivnjKrlj6MgPCBjaG9rb1wgOwor5pak55uuIDwga2lubWVcIDsKK+eJp+atjCA8IGJva2thXCA7CivkuIvliaQgPCBnZXphaVwgOwor54Sh6YqtIDwgbXVzZW5cIDsKK+WgtOmdoiA8IGJhbWVuXCA7CivoqIDovp4gPCBnZW5qaVwgOwor54Sh6YqYIDwgbXVtZWlcIDsKK+iqpOeulyA8IGdvc2FuXCA7CivniKrniZkgPCBzb3VnYVwgOwor5aSq56WWIDwgdGFpc29cIDsKK+aal+WknCA8IGFuJyd5YVwgOwor5aSp56WWIDwgdGVuc29cIDsKK+itt+aGsiA8IGdva2VuXCA7CivlpJrnq68gPCB0YXRhblwgOwor6Kmg6I2JIDwgZWlzb3VcIDsKK+Wjrue+jiA8IHNvdWJpXCA7CivlpJrnqK4gPCB0YXNodVwgOwor54Sh6YWNIDwgbXVoYWlcIDsKK+eKr+aEjyA8IGhhbicnaVwgOwor5LiL5YOnIDwgZ2Vzb3VcIDsKK+e+qeS6uiA8IGdpamluXCA7CivkuIDliIYgPCBpcHB1blwgOwor5aWH55GeIDwga2l6dWlcIDsKK+irlueQhiA8IHJvbnJpXCA7CivlpKfnoLQgPCB0YWloYVwgOwor6ZuF6Ie0IDwgZ2FjaGlcIDsKK+S4jeWAqyA8IGZ1cmluXCA7CivoqbHogIUgPCB3YXNoYVwgOwor5pel5rOiIDwgbmlwcG9cIDsKK+S4luS7oyA8IHNlZGFpXCA7CivkuJbkurogPCBzZWppblwgOwor5pWF6ICBIDwga29yb3VcIDsKK+S4iuWApCA8IHV3YW5lXCA7CivnhKHpgZMgPCBtdWRvdVwgOwor5LiN5L6/IDwgZnViZW5cIDsKK+Wil+ijnCA8IHpvdWhvXCA7CivnuZTnm64gPCBvcmltZVwgOwor6KiT6KmxIDwga3Vud2FcIDsKK+eEoei+uiA8IG11aGVuXCA7CivpmqDolL0gPCBpbnBlaVwgOwor576F5YW4IDwgcmF0ZW5cIDsKK+mZsOisgCA8IGluYm91XCA7CivoqJPoqYEgPCBrdW5rb1wgOwor5aaT5qW8IDwgZ2lyb3VcIDsKK+aWh+ebriA8IGF5YW1lXCA7CivlpInnp7sgPCBoZW4nJ2lcIDsKK+S4i+S6uiA8IGdlbmluXCA7CivmmrTliKkgPCBib3VyaVwgOwor5pqX5ZapIDwgYW4nJ3l1XCA7CivloZHpgKAgPCBzb3pvdVwgOwor5ama5YSAIDwga29uZ2lcIDsKK+e0memtmiA8IHNoaW1pXCA7CivkuIfkuosgPCBiYW5qaVwgOwor6Ku45rS+IDwgc2hvaGFcIDsKK+S4iuS4iyA8IGpvdWdlXCA7CivkuInkuJYgPCBzYW56ZVwgOwor6Zu756OBIDwgZGVuamlcIDsKK+mgkeWbuiA8IGdhbmtvXCA7Civnvo7kurogPCBiaWppblwgOwor57235YWNIDwgaGltZW5cIDsKK+Wkp+eTtiA8IG9vYmluXCA7CivoqIDoqp4gPCBnZW5nb1wgOwor5aS354uEIDwgaXRla2lcIDsKK+aal+WQmyA8IGFua3VuXCA7CivmmpflkIggPCBhbmdvdVwgOwor6K235bK4IDwgZ29nYW5cIDsKK+W+oeelnumFkiA8IG9taWtpXCA7CivnianmlYUgPCBidWtrb1wgOwor5aSp55CGIDwgdGVucmlcIDsKK+e0oOmkiiA8IHNveW91XCA7Civlp5DlvqEgPCBhbmVnb1wgOwor5aSc55WqIDwgeW9iYW5cIDsKK+mcsueCuSA8IHJvdGVuXCA7Civpn7PlpKcgPCBvbmRhaVwgOwor6Z+z5aOwIDwgb25zZWlcIDsKK+WkmueUqCA8IHRheW91XCA7CivlpJrnlKMgPCB0YXNhblwgOwor57Sg6aGUIDwgc3VnYW9cIDsKK+aUuee1hCA8IGthaXNvXCA7CivntKvpm7IgPCBzaGl1blwgOwor57eo6ICFIDwgaGVuamFcIDsKK+Wls+aoqSA8IGpva2VuXCA7CivlpKnni5cgPCB0ZW5ndVwgOwor5aWl5q2vIDwgb2t1YmFcIDsKK+aXqeacnyA8IHNvdWtpXCA7CivntKDpnaIgPCBzdW1lblwgOwor57ir55uuIDwgbnVpbWVcIDsKK+eEoeisgCA8IG11Ym91XCA7Civml4XmrKEgPCByeW9qaVwgOwor5pel5pysIDwgbmlob25cIDsKK+eEoeirliA8IG11cm9uXCA7CivpnZ7mpa0gPCBoaWdvdVwgOwor5pem5pquIDwgdGFuYm9cIDsKK+ezuOmtmiA8IGl0b3lvXCA7Civpm6jnnYAgPCBhbWFnaVwgOwor5aiB5ZynIDwgaWF0c3VcIDsKK+eEoeiogCA8IG11Z29uXCA7CivlpoLmmK8gPCBueW96ZVwgOwor5aiB5ZqHIDwgaWtha3VcIDsKK+aVsOeQhiA8IHN1dXJpXCA7CivnhrHnoIIgPCBuZXNzYVwgOwor5aSp54GrIDwgdGVucGlcIDsKK+eMiuS4iyA8IGdlaWthXCA7CivpmLLorbcgPCBib3Vnb1wgOwor6aCt5LiKIDwgenVqb3VcIDsKK+mdkuaihSA8IGFvdW1lXCA7CivloZfoo4UgPCB0b3NvdVwgOwor5pWF55+lIDwga29jaGlcIDsKK+maoOe3miA8IGluc2VuXCA7Civoppbph44gPCBzaGl5YVwgOwor6Zmw6IyOIDwgaW5rZWlcIDsKK+eHoOeBqyA8IG9raWJpXCA7Civpn7PlkI0gPCBvbm1laVwgOwor5aal5b2TIDwgZGF0b3VcIDsKK+aZguWgsSA8IGppaG91XCA7CivntYzot68gPCBrZWlyb1wgOwor5aGp6JS1IDwgZW56b3VcIDsKK+aYoOWwhCA8IGVpc2hhXCA7Civoq7rmlocgPCBvbm1vblwgOwor5aKo57W1IDwgc3VtaWVcIDsKK+e0sOmDqCA8IHNhaWJ1XCA7Civnt7Tno6ggPCByZW5tYVwgOwor6Kyd5oGpIDwgc2hhb25cIDsKK+aYhuW4gyA8IGtvbmJ1XCA7Civpm7LnhZkgPCB1bicnZW5cIDsKK+WlveaJkyA8IGtvdWRhXCA7CivpmLLooZsgPCBib3VlaVwgOwor5aSn5rKzIDwgdGFpZ2FcIDsKK+mbt+eBqyA8IHJhaWthXCA7CivntrLnvoUgPCBtb3VyYVwgOwor6KiT576pIDwga3VuZ2lcIDsKK+aYqOWknCA8IHl1dWJlXCA7CivnhKHok4sgPCBtdWdhaVwgOwor6KaH6YGTIDwgaGFkb3VcIDsKK+ilv+mDqCA8IHNlaWJ1XCA7Civpm4fnlKggPCBrb3lvdVwgOwor6Z+z5YOPIDwgb256b3VcIDsKK+S8iuS9kOacqCA8IGlzYWtpXCA7CivlprvlpbMgPCBzYWlqb1wgOwor5aSn5q2MIDwgb291dGFcIDsKK+aWh+auiiA8IG1vbmp1XCA7CivnhKHoj4wgPCBtdWtpblwgOwor5paH5q2mIDwgYnVuYnVcIDsKK+aFsOWuieWppiA8IGlhbmZ1XCA7CivnhKHojLYgPCBtdWNoYVwgOwor6Z+z5L6/IDwgb25iaW5cIDsKK+WkmuavmyA8IHRhbW91XCA7CivlpKfmqLkgPCB0YWlqdVwgOwor5aSW5rCXIDwgZ2Fpa2lcIDsKK+eEoeiKuCA8IG11Z2VpXCA7CivlpKfmp5ggPCBvb3lvdVwgOwor6KO96bq7IDwgc2VpbWFcIDsKK+e3j+ekviA8IHNvdWphXCA7Civorablj6UgPCBrZWlrdVwgOwor6Z2e5oOFIDwgaGlqb3VcIDsKK+aZguWMliA8IHNoaWtlXCA7Civpm6jmu7QgPCB1dGVraVwgOwor6Zuy5rW3IDwgdW5rYWlcIDsKK+mbkeeFriA8IHpvdW5pXCA7CivmmJ/lm7MgPCBzZWl6dVwgOwor6KaB6LevIDwgeW91cm9cIDsKK+Wls+W+oSA8IG55b2dvXCA7CivmlqHml4sgPCBhc3NlblwgOwor6Zuy5rOlIDwgdW5kZWlcIDsKK+itpuWLmSA8IGtlaW11XCA7CivnhKHog70gPCBtdW5vdVwgOwor54qs5YSSIDwga2VuanVcIDsKK+Wkp+imi+W+lyA8IG9vbWllXCA7CivmlbDmrKEgPCBzdXVqaVwgOwor5pW15qmfIDwgdGVra2lcIDsKK+mbsuawtCA8IHVuc3VpXCA7CivlppblqYYgPCB5b3ViYVwgOwor6Z2S5oGvIDwgYW9pa2lcIDsKK+mWkembhSA8IGthbmdhXCA7CivlpKfmnp0gPCBvb2VkYVwgOwor5aOy5rerIDwgYmFpaW5cIDsKK+mcp+aVoyA8IG11c2FuXCA7CivlpbPluJ0gPCBqb3RlaVwgOwor57ea55S7IDwgc2VuZ2FcIDsKK+aWsOaJiyA8IGFyYXRlXCA7CivnhKHnvaogPCBtdXphaVwgOwor5pWj5q2pIDwgc2FucG9cIDsKK+mbqOawtyA8IHVoeW91XCA7Civmlofmm7ggPCBtb25qb1wgOwor5pei5a6aIDwga2l0ZWlcIDsKK+e0m+itsCA8IGZ1bmdpXCA7CivpmaTnrpcgPCBqb3phblwgOwor6K2w5LyaIDwgZ2lrYWlcIDsKK+WwhOaJi+W6pyA8IGl0ZXphXCA7CivoqabmvJQgPCBzaGllblwgOwor5pKr6IKyIDwgYnVpa3VcIDsKK+iqnuaguSA8IGdva29uXCA7CivnhrHms6IgPCBuZXBwYVwgOwor5aSa5pybIDwgdGFib3VcIDsKK+Wls+WwiiA8IGpvc29uXCA7CivniaLlm7ogPCByb3Vrb1wgOwor6Kmx5rOVIDwgd2Fob3VcIDsKK+eCiei+uiA8IHJvaGVuXCA7CivnhannkaMgPCBoYW5zYVwgOwor57eP55CGIDwgc291cmlcIDsKK+eEoeezliA8IG11dG91XCA7Civpmb3nmq4gPCB5b3VoaVwgOwor5aSn5pCNIDwgb296b25cIDsKK+mcsuaCqiA8IHJvYWt1XCA7CivnioDliKkgPCBzYWlyaVwgOwor5aSa5pWwIDwgdGFzdXVcIDsKK+e2suebriA8IGFtaW1lXCA7CivlpKnmjoggPCB0ZW5qdVwgOwor5aSW5pa5IDwgc29wcG9cIDsKK+eyl+mkkCA8IHNvc2FuXCA7Civnspfpo68gPCBzb2hhblwgOwor6ZaJ6Y6WIDwgaGVpc2FcIDsKK+e0oOihjCA8IHNva291XCA7CivntbnntbUgPCBraW51ZVwgOwor6K2c5LujIDwgZnVkYWlcIDsKK+WhqeeojiA8IGVuemVpXCA7CivntbXntbkgPCBlZ2ludVwgOwor6Zqg54S2IDwgaW56ZW5cIDsKK+iqnuaVsCA8IGdvc3V1XCA7CivmmKDlgKsgPCBlaXJpblwgOwor57K+6YutIDwgc2VpZWlcIDsKK+mbsuaZryA8IHVua2VpXCA7CivniYjlm7MgPCBoYW50b1wgOwor5aWH5beMIDwga2lnYW5cIDsKK+WnieS4iiA8IGFuZXVlXCA7CivnhKHnqL0gPCBtdWtlaVwgOwor6KWy6KGjIDwgc2h1dWlcIDsKK+mWk+mBoCA8IG1hZG9vXCA7CivnhKHnqI4gPCBtdXplaVwgOwor6Kmg5q2OIDwgZWl0YW5cIDsKK+Wkp+aEmiA8IHRhaWd1XCA7Civpm7LmlaMgPCB1bnNhblwgOwor6Zui5p2RIDwgcmlzb25cIDsKK+WknOaIpiA8IHlhc2VuXCA7CivkuI3mhI/msJcgPCBidWlraVwgOwor57W1562GIDwgZWZ1ZGVcIDsKK+WkmuaJjSA8IHRhc2FpXCA7CivmlofmhI8gPCBidW4nJ2lcIDsKK+ilpOikuCA8IHJhbnJ1XCA7CivlpKfmgp8gPCBkYWlnb1wgOwor54Sh56S8IDwgYnVyZWlcIDsKK+e5u+WtkCA8IHNodXN1XCA7CivplovpgYsgPCBrYWl1blwgOwor5aSn5oGpIDwgZGFpb25cIDsKK+ipsuahiCA8IGdhaWFuXCA7CivlpKLmg7MgPCBtdXNvdVwgOwor6KWm6KKiIDwganViYW5cIDsKK+mbo+aYkyA8IG5hbicnaVwgOwor5peo5ZGzIDwgdW1hbWlcIDsKK+ipseafhCA8IHdhaGVpXCA7CivlpYnlrokgPCBob3VhblwgOwor5aCV6IOOIDwgZGF0YWlcIDsKK+WkmuaEnyA8IHRha2FuXCA7Civmkq3nqK4gPCBoYXNodVwgOwor6Kqy5b25IDwga2Fla2lcIDsKK+mZoueUnyA8IGluc2VpXCA7Civoo5zpoYwgPCBob2RhaVwgOwor5aSa5oOFIDwgdGFqb3VcIDsKK+mbouaVoyA8IHJpc2FuXCA7CivoqabmoYggPCBzaGlhblwgOwor5aSa5oGoIDwgdGFrb25cIDsKK+Wkp+W6piA8IHRhaWRvXCA7CivmlbXmhI8gPCB0ZWtpaVwgOwor5paH5bqrIDwgYnVua29cIDsKK+imi+iIniA8IG1pbWFpXCA7CivloJXnvaogPCBkYXphaVwgOwor5aGp55SwIDwgZW5kZW5cIDsKK+eEoeebiiA8IG11ZWtpXCA7CivlpKflt64gPCB0YWlzYVwgOwor5aSn5belIDwgZGFpa3VcIDsKK+WkmuW9oiA8IHRha2VpXCA7CivmlazmhZUgPCBrZWlib1wgOwor5o+06LuNIDwgZW5ndW5cIDsKK+aVrOaEmyA8IGtlaWFpXCA7CivlpJrlvIEgPCB0YWJlblwgOwor6Z2e5ZG9IDwgaGltZWlcIDsKK+isgOWPmyA8IG11aG9uXCA7CivnspfpioUgPCBzb2RvdVwgOwor5pGp6ICXIDwgbWFtb3VcIDsKK+eItuWQmyA8IGZ1a3VuXCA7CivmlL7mmKAgPCBob3VlaVwgOwor57SF6JOuIDwgZ3VyZW5cIDsKK+mbgeacqCA8IGdhbmdpXCA7Civoo4/pnaIgPCByaW1lblwgOwor5pa55ZuzIDwgaG91enVcIDsKK+mbqOaIuCA8IGFtYWRvXCA7CivnhKHnlKggPCBtdXlvdVwgOwor54mh5Li5IDwgYm90YW5cIDsKK+Wkp+WwviA8IHRhaWJpXCA7CivnspfphZIgPCBzb3NodVwgOwor5aOy5omLIDwgdXJpdGVcIDsKK+Wil+a0viA8IHpvdWhhXCA7CivoqpjlvJUgPCB5dXVpblwgOwor5aSn5a62IDwgdGFpa2VcIDsKK+mbheaWhyA8IGdhYnVuXCA7CivopofogIUgPCBoYXNoYVwgOwor5pWw5bqmIDwgc3V1ZG9cIDsKK+Wkp+WtlyA8IG9vYXphXCA7Civmlq3lm7ogPCBkYW5rb1wgOwor6I2P6IOh6bq7IDwgZWdvbWFcIDsKK+aWh+WtlyA8IG1vbmppXCA7Civnh5Xlt6MgPCBlbnNvdVwgOwor5aWl5Y2wIDwgb2t1aW5cIDsKK+Wkq+WppiA8IG1lb3RvXCA7CivlpJrlsaQgPCB0YXNvdVwgOwor6Ki05qipIDwgc29rZW5cIDsKK+mbtuW6piA8IHJlaWRvXCA7CivngrnogIUgPCB0ZW5qYVwgOwor57W155S7IDwga2FpZ2FcIDsKK+mdnuWHoSA8IGhpYm9uXCA7CivlpbPlhKogPCBqb3l1dVwgOwor6Kqk5bCEIDwgZ29zaGFcIDsKK+WkluWuriA8IGdla3V1XCA7CivlpKrlpKsgPCB0YXl1dVwgOwor5aSn5aWlIDwgb29va3VcIDsKK+aOkumZpCA8IGhhaWpvXCA7CivlpoLkuIogPCBqb2pvdVwgOwor5aSn5aOwIDwgb29nb2VcIDsKK+aTrOavmyA8IGdpbW91XCA7CivlpZHljbAgPCBrZWlpblwgOwor6KaB57SgIDwgeW91c29cIDsKK+mbsuWxhSA8IGt1bW9pXCA7CivpnLLlkb0gPCByb21laVwgOwor6Zmw5q+bIDwgaW5tb3VcIDsKK+e5lOWcsCA8IG9yaWppXCA7CivpnIrlpKIgPCByZWltdVwgOwor5aSa5aSnIDwgdGFkYWlcIDsKK+aNlemvqCA8IGhvZ2VpXCA7CivlpJrlo7IgPCB0YWJhaVwgOwor6Zyy5Y+wIDwgcm9kYWlcIDsKK+e5geWkmiA8IGhhbnRhXCA7CivpmaTms5UgPCBqb2hvdVwgOwor54Sc54KJIDwga29ucm9cIDsKK+mbouWyuCA8IHJpZ2FuXCA7Civngq3ntKAgPCB0YW5zb1wgOwor5aSW5aC0IDwgZ2FpYmFcIDsKK+mbouWxsSA8IHJpemFuXCA7CivlpKflmJggPCBvb3Vzb1wgOwor5pWw5aSaIDwgc3V1dGFcIDsKK+maj+aZgiA8IHp1aWppXCA7CivpnIrlnJIgPCByZWllblwgOwor5pS/5bqcIDwgc2VpZnVcIDsKK+mYv+a8lSA8IGFrb2dpXCA7CivmlpfljZcgPCB0b25hblwgOwor5aOy5a2QIDwgdXJpa29cIDsKK+mbu+WgtCA8IGRlbmJhXCA7CivlpJblm6AgPCBnYWlpblwgOwor6Ziy54GrIDwgYm91a2FcIDsKK+mcsuWFiSA8IHJva291XCA7CivlpKflkbMgPCBvb2FqaVwgOwor5pa95Li7IDwgc2VzaHVcIDsKK+eEoeazlSA8IG11aG91XCA7CivmlYXlsbEgPCBrb3phblwgOwor5aSn5Y+wIDwgb29kYWlcIDsKK+WcqOmHjiA8IHphaXlhXCA7CivngavoibIgPCBoaWlyb1wgOwor5paH5Y+lIDwgbW9ua3VcIDsKK+m8vyA8IGdvdHN1XCA7CivnhKHmsLQgPCBtdXN1aVwgOwor6byOIDwga2FuYWVcIDsKK+eEoeavmyA8IG11bW91XCA7Civlm7PpnaIgPCB6dW1lblwgOwor5pS+5bGBIDwgaG91aGlcIDsKK+WjsuWlsyA8IGJhaXRhXCA7CivlpKnliqkgPCB0ZW5qb1wgOwor57Gz6LKoIDwgYmVpa2FcIDsKK+eEoeauiyA8IG11emFuXCA7CivplovoirEgPCBrYWlrYVwgOwor5aSc5Y+JIDwgeWFzaGFcIDsKK+WfuuebpCA8IGtpYmFuXCA7Civpt6kgPCBoZXRzdVwgOwor5aSn5YikIDwgb29iYW5cIDsKK+e0oOebtCA8IHN1bmFvXCA7CivopqrniLogPCBveWFqaVwgOwor6ZyA5ZOBIDwganVoaW5cIDsKK+ijnOismyA8IGhva291XCA7Civpm6PloLQgPCBuYW5iYVwgOwor6baNIDwgaXN1a2FcIDsKK+WjsuWgtCA8IHVyaWJhXCA7CivptokgPCB1enVyYVwgOwor6Zmi5pysIDwgaW5wb25cIDsKK+WkmuWLoiA8IHRhemVpXCA7Civlm5vpoacgPCBzaGlrb1wgOwor5aSn5YSSIDwgZGFpanVcIDsKK+WknOWJjSA8IHlhemVuXCA7CivnsbPoqp4gPCBiZWlnb1wgOwor6Zi75q2iIDwgc29zaGlcIDsKK+WkluWLmSA8IGdhaW11XCA7Civpm5HlpJogPCB6YXR0YVwgOwor5aSc5YiGIDwgeWFidW5cIDsKK+aVl+WboCA8IGhhaWluXCA7CivnsbPoqbEgPCBiZWl3YVwgOwor6bGXIDwgdXJva29cIDsKK+mwuyA8IHVuYWdpXCA7CivmlonlgpkgPCBzZWliaVwgOwor57W15paH5a2XIDwgZW1vamlcIDsKK+Wik+aJgCA8IGJvc2hvXCA7CivpsJIgPCBhd2FiaVwgOwor6bCPIDwgaHlva3VcIDsKK+iqnuWLoiA8IGdvc2VpXCA7CivpsI0gPCBpbmFkYVwgOwor6Kqk5YikIDwgZ29oYW5cIDsKK+mwiSA8IGhpZ2FpXCA7Civpr48gPCBhc2FyaVwgOwor5Zuz6ZGRIDwgenVrYW5cIDsKK+murSA8IHNoYWtlXCA7Civpm7Llj7AgPCB1bmRhaVwgOwor6KqN5ZCmIDwgbmlucGlcIDsKK+eEoeaguSA8IG11a29uXCA7CivlpInljJYgPCBoZW5nZVwgOwor6KqN5Y+vIDwgbmlua2FcIDsKK+mruiA8IGdhdHN1XCA7CivntrLmiLggPCBhbWlkb1wgOwor6KiY5oa2IDwga2lva3VcIDsKK+aWh+S6iyA8IGJ1bmppXCA7Civmk6zmhYsgPCBnaXRhaVwgOwor57KX6Iy2IDwgc29jaGFcIDsKK+WknOS8miA8IHlha2FpXCA7CivntJTnkIYgPCBqdW5yaVwgOwor6Zui5ZCIIDwgcmlnb3VcIDsKK+mbo+WPpSA8IG5hbmt1XCA7Civnt57lrZAgPCBkb25zdVwgOwor6Zui5Y+NIDwgcmloYW5cIDsKK+e0oOeJhyA8IHNvaGVuXCA7CivoqqTkvJ0gPCBnb2RlblwgOwor57O455uuIDwgaXRvbWVcIDsKK+e1teafhCA8IGVnYXJhXCA7CivoqJjlv7UgPCBraW5lblwgOwor54Sh5patIDwgbXVkYW5cIDsKK+mZsOaDqCA8IGluc2FuXCA7CivnhKHmlbAgPCBtdXN1dVwgOwor57W15pytIDwgZWZ1ZGFcIDsKK+aVsOS+oSA8IHN1dWthXCA7Civntr/luIMgPCBtZW5wdVwgOwor6Zu75L2NIDwgZGVuJydpXCA7Civnsr7nspcgPCBzZWlzb1wgOwor6Zuo5YW3IDwgYW1hZ3VcIDsKK+mdqCA8IGVrdWJvXCA7CivmjqnolL0gPCBlbnBlaVwgOwor6Zuj5YSAIDwgbmFuZ2lcIDsKK+maiSA8IGdldHN1XCA7CivoqablkIggPCBzaGlhaVwgOwor6Zqg5aOrIDwgaW5zaGlcIDsKK+Wis+WikyA8IGZ1bmJvXCA7CivoobDpgYsgPCBzdWl1blwgOwor6ZuF5Y+3IDwgZ2Fnb3VcIDsKK+ipoOWQnyA8IGVpZ2luXCA7CivmlL/li5kgPCBzZWltdVwgOwor5aC05pyrIDwgYmFzdWVcIDsKK+e2vuWtkCA8IHJpbnp1XCA7CivnhKHmiY0gPCBtdXNhaVwgOwor54Ks54GrIDwga3lva2FcIDsKK+exs+iLsSA8IGJlaWVpXCA7CivpmqDlnYogPCBvbmJvdVwgOwor6Zq75Y+lIDwgc2Vra3VcIDsKK+eEoeaFriA8IG11cnlvXCA7CivloIDmsZ8gPCBob3JpZVwgOwor6Zui5Lu7IDwgcmluaW5cIDsKK+e1kOaenCA8IGtla2thXCA7CivoobDouq8gPCBzdWlrdVwgOwor6Zuj5LqLIDwgbmFuamlcIDsKK+WcsOiUtSA8IGppem91XCA7CivnhKHmg4UgPCBtdWpvdVwgOwor6Y+JIDwgc2h5dXVcIDsKK+mOpyA8IHlvcm9pXCA7CivoqZDlj5YgPCBzYXNodVwgOwor6ZuF5YWEIDwgZ2FrZWlcIDsKK+mMqCA8IGlrYXJpXCA7CivpjJggPCB0c3VtdVwgOwor54Sh5b+1IDwgbXVuZW5cIDsKK+Wbnui3ryA8IGthaXJvXCA7CivopqrmnKggPCBveWFnaVwgOwor6ZuR5L2cIDwgem91c2FcIDsKK+mZkOW6piA8IGdlbmRvXCA7CivpiLogPCBneW9rdVwgOwor5aGB5omTIDwgcnVpZGFcIDsKK+Wcn+iUtSA8IGRvem91XCA7Civopovmp5ggPCBtaXlvdVwgOwor5pWF5Li7IDwga29zaHVcIDsKK+ilv+aspyA8IHNlaW91XCA7CivopofmqKkgPCBoYWtlblwgOwor57KX56yoIDwgc29ob25cIDsKK+e0oeapnyA8IGJvdWtpXCA7Civlm7Pop6MgPCB6dWthaVwgOwor5Zyw6ImyIDwgamlpcm9cIDsKK+Wcn+iRrCA8IGRvc291XCA7Civmjqrnva4gPCBzb2NoaVwgOwor5aKT5ZywIDwgYm9jaGlcIDsKK+WcqOiLsSA8IHphaWVpXCA7Civns5zniJsgPCBiaXJhblwgOwor5aC05omAIDwgYmFzaG9cIDsKK+ihl+i3ryA8IGdhaXJvXCA7CivloZflt6UgPCB0b2tvdVwgOwor6ZqP5ZOhIDwgenVpaW5cIDsKK+aLl+mfsyA8IHlvdW9uXCA7CivopovmoIQgPCBtaWJhZVwgOwor57W55biDIDwga2VucHVcIDsKK+eEoeWwvSA8IG11amluXCA7CivpmaTlpJYgPCBqb2dhaVwgOwor5aKX5ZOhIDwgem91aW5cIDsKK+e1teW3uyA8IGVtYWtpXCA7CivopovmnKwgPCBtaWhvblwgOwor6Zmi5aSWIDwgaW5nYWlcIDsKK+e3j+WLmSA8IHNvdW11XCA7Civpl4rmrakgPCBrYXBwb1wgOwor6Lq1IDwgbmVyYXVcIDsKK+maoOWFgyA8IGluZ2VuXCA7CivnhKHlrpggPCBtdWthblwgOwor5Z+65pysIDwga2lob25cIDsKK+eyl+egpSA8IGFyYXRvXCA7CivloLHmgakgPCBob3VvblwgOwor57Sg5p2QIDwgc296YWlcIDsKK+e3j+WHuiA8IHNvdWRlXCA7CivlnJLoirggPCBlbmdlaVwgOwor6LebIDwgYmlra29cIDsKK+aNleiZnCA8IGhvcnlvXCA7CivpmqPkv50gPCByaW5wb1wgOwor5aKT5Y+CIDwgYm9zYW5cIDsKK+ijuOecvCA8IHJhZ2FuXCA7CivntbblrrYgPCB6ZWtrZVwgOwor6KiY5Y+3IDwga2lnb3VcIDsKK+a/vue0mSA8IHJvc2hpXCA7CivmkanmkI0gPCBtYXNvblwgOwor5aGU5amGIDwgdG91YmFcIDsKK+e0oOaVsCA8IHNvc3V1XCA7CivlopPliY0gPCBib3plblwgOwor6Kaq5b6hIDwgb3lhZ29cIDsKK+eCueaSrSA8IHRlbnBhXCA7CivoqLTkurogPCBzb25pblwgOwor6KGX6KGiIDwgZ2Fpa3VcIDsKK+mWi+a8lCA8IGthaWVuXCA7CivntIvml6UgPCBtb25iaVwgOwor6Zmk5Y+3IDwgam9nb3VcIDsKK+WbsOiLpiA8IGtvbmt1XCA7CivpmaTljrsgPCBqb2t5b1wgOwor6Zmi5Y+3IDwgaW5nb3VcIDsKK+maiuS8jSA8IHRhaWdvXCA7Civon7vphbggPCBnaXNhblwgOwor5Zyw56efIDwgY2hpc29cIDsKK+e0sOW+riA8IHNhaWJpXCA7Civmi53ovp4gPCBoYWlqaVwgOwor5Zyf566hIDwgZG9rYW5cIDsKK+WhiuWcnyA8IGthaWRvXCA7Civoo4/nm64gPCB1cmFtZVwgOwor6KaW5bqmIDwgc2hpZG9cIDsKK+eyl+eFriA8IGFyYW5pXCA7Civoppblt64gPCBzaGlzYVwgOwor57Sg5oCnIDwgc3Vqb3VcIDsKK+e0sOW3pSA8IHNhaWt1XCA7Civpmarkvo0gPCBiYWlqaVwgOwor5aCw5aCkIDwgZW50ZWlcIDsKK+iXnCA8IGFrYXphXCA7CivlnKfnoJUgPCBhc3NhaVwgOwor54Sh5Yq5IDwgbXVrb3VcIDsKK+WcsOebpCA8IGppYmFuXCA7CivoloogPCBhemFtaVwgOwor54Gr5qG2IDwgaGlva2VcIDsKK+aNlee4hCA8IGhvam91XCA7Civntbblj6UgPCB6ZWtrdVwgOwor57Ch57SgIDwga2Fuc29cIDsKK+iUpiA8IHRzdXRhXCA7CivolKQgPCBiaXRzdVwgOwor5oq86YCBIDwgb3Vzb3VcIDsKK+Wcn+eggiA8IGRvc2hhXCA7Civngrnlt64gPCB0ZW5zYVwgOwor5aCh5aGBIDwgaG9ydWlcIDsKK+e0lOW6piA8IGp1bmRvXCA7CivlnKfnl5UgPCBha2tvblwgOwor6IyoIDwgaWJhcmFcIDsKK+iMnCA8IGFrYW5lXCA7Civnsr7mn7sgPCBzZWlzYVwgOwor6IyAIDwgaHV0c3VcIDsKK+iLtiA8IGRldHN1XCA7CivmgbXmr5Tlr78gPCBlYmlzdVwgOwor5aC05ZGzIDwgYmFhamlcIDsKK+eDiOWppiA8IHJlcHB1XCA7CivmjojnlKMgPCBqdXNhblwgOwor54Sh5L2TIDwgbXV0YWlcIDsKK+ihjOiEmiA8IGFuZ3lhXCA7CivnhKHkvY8gPCBtdWp1dVwgOwor5o+65puzIDwgeW91ZWlcIDsKK+Wcn+eUqCA8IGRveW91XCA7CivonrrpiL8gPCByYWRlblwgOwor54Sh5Lq6IDwgbXVuaW5cIDsKK+Wcn+eTtiA8IGRvYmluXCA7CivpmLLlhbcgPCBib3VndVwgOwor6ZW35p+EIDwgbmFnYWVcIDsKK+iln+W6piA8IGtpbmRvXCA7CivooaPns6cgPCBpcnlvdVwgOwor6Ziy5YKZIDwgYm91YmlcIDsKK+iCrSA8IGRvdHN1XCA7CivntZDlj6UgPCBrZWtrdVwgOwor6IKLIDwgYWJhcmFcIDsKK+aJk+mghiA8IGRhanVuXCA7CivmkYLlrrYgPCBzZWtrZVwgOwor5aCF5Zu6IDwga2VuZ29cIDsKK+aJi+mghiA8IHRlanVuXCA7CivmiZPpm7sgPCBkYWRlblwgOwor5o+Q5qGIIDwgdGVpYW5cIDsKK+Wcp+eCuSA8IGF0dGVuXCA7Civoo5zmraMgPCBob3NlaVwgOwor5o+h5panIDwgYWt1ZnVcIDsKK+aJk+mWiyA8IGRha2FpXCA7CivopoHlm7MgPCB5b3V6dVwgOwor6KaB5ZugIDwgeW91aW5cIDsKK+ertummrCA8IGtlaWJhXCA7CivmvI/oqbEgPCByb3V3YVwgOwor5o6h5rK5IDwgc2FpeXVcIDsKK+WgtOS7oyA8IGJhZGFpXCA7CivnspfmmrQgPCBzb2JvdVwgOwor5Zyw5ripIDwgY2hpb25cIDsKK+ijj+avmyA8IHVyYWtlXCA7CivploDmiYkgPCBtb25waVwgOwor6ZaA5oi4IDwgbW9ua29cIDsKK+eykiA8IHRzdWJ1XCA7CivmiqvoposgPCBoaWtlblwgOwor56+pIDwgZnVydWlcIDsKK+eCreWboyA8IHRhZG9uXCA7Civlm57nm64gPCBrYWltZVwgOwor5ruF6YeRIDwgbWVra2lcIDsKK+etjyA8IGlrYWRhXCA7CivlnLDmrakgPCBjaGlob1wgOwor5omL6YygIDwgdGVqb3VcIDsKK+WcsOatjCA8IGppdXRhXCA7CivploDlvpIgPCBtb250b1wgOwor56erIDwgam90c3VcIDsKK+Wbs+eJiCA8IHp1aGFuXCA7CivngavlsbEgPCBrYXphblwgOwor57O75ZuzIDwga2VpenVcIDsKK+Wcp+atuyA8IGFzc2hpXCA7CivmiYvph5EgPCB0ZWtpblwgOwor5Zyf5rCRIDwgZG9taW5cIDsKK+eCueWJjSA8IHRlbWFlXCA7CivmjqLmn7sgPCB0YW5zYVwgOwor57SN5Y+XIDwgbm91anVcIDsKK+aJi+mFjSA8IHRlaGFpXCA7CivmjojmqKkgPCBqdWtlblwgOwor562G6KiYIDwgaGlra2lcIDsKK+eyl+aCqiA8IHNvYWt1XCA7CivntKDkvZMgPCBzb3RhaVwgOwor57Oe5ZyfIDwgZnVuZG9cIDsKK+eVmeWuiOWxhSA8IHJ1c3VpXCA7CivplbflsYUgPCBuYWdhaVwgOwor5ryr5721IDwgbWFuYmFcIDsKK+err+mKrSA8IGhhc2VuXCA7CivnlpkgPCBnaXRzdVwgOwor5LiN5b6X5omLIDwgZnVldGVcIDsKK+euquespSA8IHRhbnN1XCA7Civlm7Pms5UgPCB6dWhvdVwgOwor5r2k55uuIDwgdXJ1bWVcIDsKK+a5lumdoiA8IGtvbWVuXCA7Civmj5rlsYsgPCBhZ2V5YVwgOwor6KOP5omLIDwgdXJhdGVcIDsKK+ien+ibviA8IG1laWdhXCA7CivlnKfmlL8gPCBhc3NlaVwgOwor5oq857W1IDwgb3NoaWVcIDsKK+a5r+mKrSA8IHl1c2VuXCA7CivplrLlhbUgPCBlcHBlaVwgOwor6KOc5bymIDwgaG9nZW5cIDsKK+ihjOeBryA8IGFuZG9uXCA7CivmiYvoqbEgPCBzaHV3YVwgOwor5Zyn5o6SIDwgYXBwYWlcIDsKK+WWtui+siA8IGVpbm91XCA7CivmiYvoo70gPCB0ZXNlaVwgOwor5Z+O5LiLIDwgam91a2FcIDsKK+eyl+WkpyA8IHNvZGFpXCA7Civlm7rmnIkgPCBrb3l1dVwgOwor5rip6aGUIDwgb25nYW5cIDsKK+eCiuS6iyA8IHN1aWppXCA7Civngo7kuIogPCBlbmpvdVwgOwor5o275oyrIDwgbmVuemFcIDsKK+a8lOeulyA8IGVuemFuXCA7CivmuKnpoIYgPCBvbmp1blwgOwor56qB6aObIDwgdG9wcGlcIDsKK+eEoeaEj+e+qSA8IG11aWdpXCA7CivnsbPlr78gPCBiZWlqdVwgOwor5oqV57ayIDwgdG9hbWlcIDsKK+aQjeS/nSA8IHNvbnBvXCA7Civoo4/lsYsgPCB1cmF5YVwgOwor5o6q5a6aIDwgc290ZWlcIDsKK+aIpuiomCA8IHNlbmtpXCA7CivmiYvoloQgPCB0ZXVzdVwgOwor5Zyo5bqrIDwgemFpa29cIDsKK+erpeipsSA8IGRvdXdhXCA7CivplpPku6MgPCBtYWRhaVwgOwor5Zyn5be7IDwgYWtrYW5cIDsKK+a8q+eUuyA8IG1hbmdhXCA7Civmj5rlj6UgPCBhZ2VrdVwgOwor6KOc5aGrIDwgaG90ZW5cIDsKK+eyl+WTgSA8IHNvaGluXCA7CivlnJ/lt6UgPCBkb2tvdVwgOwor5Zub5pelIDwgeW9ra2FcIDsKK+aJi+iNkiA8IHRlYXJhXCA7CivnsbPloakgPCBiZWllblwgOwor5o6p5aOVIDwgZW5nb3VcIDsKK+WcqOWutiA8IHphaWtlXCA7Civoo5zlm54gPCBob2thaVwgOwor5qW+IDwgaGF6b3VcIDsKK+akoyA8IHNoaWRlXCA7CivploDkuIsgPCBtb25rYVwgOwor5Zm054GrIDwgZnVua2FcIDsKK+eyl+WIqSA8IGFyYXJpXCA7Civoo4/lnLAgPCB1cmFqaVwgOwor5rer6aKoIDwgaW5wdXVcIDsKK+aJk+iAhSA8IGRhc2hhXCA7CivmoIMgPCB0b2NoaVwgOwor5Zyw5aOwIDwgamlnb2VcIDsKK+WbveW6qyA8IGtva2tvXCA7CivmnYEgPCBlYnVyaVwgOwor562G56aNIDwgaGlra2FcIDsKK+icu+ibiSA8IHRvbmJvXCA7CivooYzmlrkgPCB5dWt1ZVwgOwor6KO45YOPIDwgcmF6b3VcIDsKK+Wbs+W9oiA8IHp1a2VpXCA7CivvvLDvvKMgPCBwxKtzaMSrXCA7CivmiZPnt5ogPCBkYXNlblwgOwor5Zyw5ZuzIDwgY2hpenVcIDsKK+ihqOaEjyA8IGh5b3VpXCA7CivmioDnoJQgPCBnaWtlblwgOwor5omL57mUIDwgdGVvcmlcIDsKK+ijuOS9kyA8IHJhdGFpXCA7Civlm7Plt6UgPCB6dWtvdVwgOwor6KGw5b6uIDwgc3VpYmlcIDsKK+ijj+WQjSA8IHVyYW5hXCA7CivlnJ/loYogPCBkb2thaVwgOwor5omL57e0IDwgdGVyZW5cIDsKK+Wcn+WhgSA8IGRvcnVpXCA7CivlnJ/loYAgPCBkb2JlaVwgOwor5ZSQ6Z+zIDwgdG91b25cIDsKK+WboOW+qiA8IGluanVuXCA7CivnsL/lpJYgPCBib2dhaVwgOwor5o6h5ZCmIDwgc2FpaGlcIDsKK+aSpSA8IGJhY2hpXCA7CivmioDnm6MgPCBnaWthblwgOwor56m66Ly4IDwga3V1eXVcIDsKK+ijnOWFhSA8IGhvanV1XCA7CivlnZHlhJIgPCBrb3VqdVwgOwor5Zu65a6aIDwga290ZWlcIDsKK+aMmeaOqiA8IGt5b3NvXCA7CivmiZPnrpcgPCBkYXNhblwgOwor5o6fIDwgb2tpdGVcIDsKK+Wcn+WaoiA8IGRvbm91XCA7CivmvLjmrKEgPCB6ZW5qaVwgOwor56m66LevIDwga3V1cm9cIDsKK+WbveWogSA8IGtva3VpXCA7CivmvZzmmYIgPCBzZW5qaVwgOwor5oekIDwgY2h5dXVcIDsKK+ijnOS7uyA8IGhvbmluXCA7CivmvKvmrakgPCBtYW5wb1wgOwor5ryB54GrIDwgZ3lva2FcIDsKK+aHh+ipsSA8IGtvbndhXCA7CivnqbrosrsgPCBrdXVoaVwgOwor6Juu6KqeIDwgYmFuZ29cIDsKK+aIr+e1tSA8IHphcmVlXCA7Civlm6PlrZAgPCBkYW5nb1wgOwor5Zyf5Y+wIDwgZG9kYWlcIDsKK+a2vOmbqCA8IHJ5b3V1XCA7CivlnYrkuLsgPCBib3V6dVwgOwor5Za257mVIDwgZWl6ZW5cIDsKK+enu+mnkCA8IGljaHV1XCA7CivomY7prZogPCBva296ZVwgOwor566X5pyoIDwgc2FuZ2lcIDsKK+aJi+ebuCA8IHRlc291XCA7CivlnKflgJIgPCBhdHRvdVwgOwor5rW36bC7IDwgYW5hZ29cIDsKK+W2jSA8IHNoaWh1XCA7CivmhoLouqsgPCB1a2ltaVwgOwor5om554K5IDwgaGl0ZW5cIDsKK+Wcn+WBtiA8IGRvZ3V1XCA7CivooYzlrq4gPCBhbmd1dVwgOwor5bOgIDwgdG91Z2VcIDsKK+WyjyA8IGd1d2FuXCA7Civlk4DpoZggPCBhaWdhblwgOwor5Zyf5Lq6IDwgZG9qaW5cIDsKK+WtsCA8IGl6dXJlXCA7CivmhJvppJAgPCBhaXNhblwgOwor5ayHIDwga3V3YWlcIDsKK+ibh+ihjCA8IGRha291XCA7CivmtYXpu4QgPCBhc2FnaVwgOwor5oW26LOAIDwga2VpZ2FcIDsKK+ihl+WbsyA8IGdhaXp1XCA7Civlo7cgPCB0c3Vib1wgOwor5omT54K5IDwgZGF0ZW5cIDsKK+a8j+aWlyA8IHJvdXRvXCA7CivmuKHoiLkgPCB0b3NlblwgOwor5rer6KGMIDwgaW5rb3VcIDsKK+WelCA8IHNoeW91XCA7Civlno8gPCByb3RzdVwgOwor5ZuuIDwgb3RvcmlcIDsKK+a4qee/kiA8IHNhcmFpXCA7Civnr4DlqaYgPCBzZXBwdVwgOwor5Zad56C0IDwga2FwcGFcIDsKK+WXpyA8IGdhcm9uXCA7Civll5YgPCBzaHVodVwgOwor5ZKM6aKoIDwgd2FmdXVcIDsKK+ieuuaXiyA8IHJhc2VuXCA7CivnqJ/orbAgPCByaW5naVwgOwor5oaC6JmeIDwgeXV1Z3VcIDsKK+aJk+azlSA8IGRhaG91XCA7Civlk5ggPCBzYXNvdVwgOwor5om25qGRIDwgZnVzb3VcIDsKK+iZmui+niA8IGt5b2ppXCA7CivooZvlhbUgPCBlaWhlaVwgOwor5oSa6YiNIDwgZ3Vkb25cIDsKK+m8oOi8qSA8IHNvaGFpXCA7CivlkIsgPCBpbmNoaVwgOwor5Zue5LuYIDwga2FpZnVcIDsKK+WNjSA8IG1hbmppXCA7CivpvKDouYogPCBzb2tlaVwgOwor5YyBIDwgbW9ubWVcIDsKK+aKiuaPoSA8IGhhYWt1XCA7CivmuKHnsbMgPCB0b2JlaVwgOwor5ouz5Zu6IDwgZ2Vua29cIDsKK+aKleaJkyA8IHRvdWRhXCA7CivpupLpup8gPCBraXJpblwgOwor5oaC6IumIDwgeXV1a3VcIDsKK+WXn+atjiA8IHNhdGFuXCA7CivlhLIgPCBtb3VrZVwgOwor5rW36L66IDwgdW1pYmVcIDsKK+aEm+i7iiA8IGFpc2hhXCA7CivmiZPmo5IgPCBkYWJvdVwgOwor5YGfIDwga3V3YXVcIDsKK+WAjCA8IGt1d2FuXCA7CivmgqrprZQgPCBha3VtYVwgOwor5rmv54GMIDwgeXVrYW5cIDsKK+aJi+ahtiA8IHRlb2tlXCA7CivnqLLojbcgPCBpbmFyaVwgOwor5rWm6L66IDwgdXJhYmVcIDsKK+WSjOmHkSA8IHdha2luXCA7Civpup3pppkgPCBqYWtvdVwgOwor6YiN6bq7IDwgZG9ubWFcIDsKK+aCqummrCA8IGFrdW1lXCA7CivmiYvmnKwgPCB0ZWhvblwgOwor5LmEIDwgc2hpbWVcIDsKK+a4m+ejqCA8IGdlbm1hXCA7CivnqoHnoLQgPCB0b3BwYVwgOwor5rW36LGaIDwgaXJ1a2FcIDsKK+ibh+euoSA8IGpha2FuXCA7Civlk4DoqakgPCBhaXNoaVwgOwor5omT5pWwIDwgZGFzdXVcIDsKK+aEmuirliA8IGd1cm9uXCA7CivmiYvmlqcgPCB0ZW9ub1wgOwor5oud5Y+XIDwgaGFpanVcIDsKK+a1quiyuyA8IHJvdWhpXCA7CivmiYvmlbAgPCB0ZXN1dVwgOwor5oi45p2/IDwgdG9pdGFcIDsKK+a8ouWcnyA8IGthbmRvXCA7CivmhJroqIggPCBndWtlaVwgOwor6Ymb6YyYIDwgZW5zdWlcIDsKK+eri+a0viA8IHJpcHBhXCA7CivmhJroposgPCBndWtlblwgOwor5oO56LW3IDwgamFra2lcIDsKK+WRs+mGgiA8IG1pcmluXCA7Civlkb3pgYsgPCBtZWl1blwgOwor56eY6KiIIDwgaGlrZWlcIDsKK+iYh+mAoyA8IHNvcmVuXCA7CivmhJrooYwgPCBndWtvdVwgOwor56m655aOIDwga3V1c29cIDsKK+a8geWkqyA8IGd5b2Z1XCA7Civmi53lhbcgPCBoYWlndVwgOwor6YqA6LKoIDwgZ2lua2FcIDsKK+err+acrCA8IGhhaG9uXCA7CivmtYHou6IgPCBydXRlblwgOwor5rW06KGjIDwgeW9rdWlcIDsKK+a8geWgtCA8IGd5b2JhXCA7CivmhI/ooaggPCBpaHlvdVwgOwor5oiv5paHIDwgZ2lidW5cIDsKK+a2suiCpSA8IGVraWhpXCA7CivnqbrnkIYgPCBrdXVyaVwgOwor5rqA5pyfIDwgbWFua2lcIDsKK+a5luawtCA8IGtvc3VpXCA7CivlkozorpogPCB3YXNhblwgOwor56uv5pWwIDwgaGFzdXVcIDsKK+WYmOWtlyA8IHVzb2ppXCA7CivmiJDmoYggPCBzZWlhblwgOwor5rOi6aCtIDwgaGF0b3VcIDsKK+aEm+iUtSA8IGFpem91XCA7CivpuqbphZIgPCBiaWlydVwgOwor5ZCN6aasIDwgbWVpYmFcIDsKK+WSjOiokyA8IHdha3VuXCA7Civlkozop6MgPCB3YWthaVwgOwor5rOi6Z2iIDwgaGFtZW5cIDsKK+aJi+W9kyA8IHRlYXRlXCA7CivnqLLnqYIgPCBpbmFob1wgOwor6by757eSIDwgaGFuYW9cIDsKK+WSjOijvSA8IHdhc2VpXCA7Civpi6TnsL4gPCBqb3JlblwgOwor5ZKM6KOFIDwgd2Fzb3VcIDsKK+aLheS/nSA8IHRhbnBvXCA7Civlkozoo4EgPCB3YXNhaVwgOwor5oaC55uuIDwgdWtpbWVcIDsKK+a4qea5ryA8IG9udG91XCA7CivlkIzpn7MgPCBkb3VvblwgOwor5oau54S2IDwgYnV6ZW5cIDsKK+aCqumBiyA8IGFrdXVuXCA7Civmh7jmnrYgPCBrZW5nYVwgOwor5oKj6YOoIDwga2FuYnVcIDsKK+mKmOiPkyA8IG1laWthXCA7Civpu5LooaMgPCBrb2t1ZVwgOwor5oKf6YGTIDwgZ29kb3VcIDsKK+WRs+imiyA8IGFqaW1pXCA7CivnhKHmhI/lkbMgPCBtdWltaVwgOwor5rip5rC0IDwgb25zdWlcIDsKK+m8u+erryA8IGJpdGFuXCA7CivmuKHmtIsgPCB0b3lvdVwgOwor5oSb6IKyIDwgYWlpa3VcIDsKK+a7heWkmiA8IG1ldHRhXCA7Civmt6vnjKUgPCBpbndhaVwgOwor5ryB5YW3IDwgZ3lvZ3VcIDsKK+aCqui3ryA8IGFrdXJvXCA7Civmg4XoqbEgPCBqb3V3YVwgOwor56iu55quIDwgc2h1aGlcIDsKK+aEmuiAhSA8IGd1c2hhXCA7CivmiYflrZAgPCBzZW5zdVwgOwor6YeO6aasIDwgbm91bWFcIDsKK+emheipsSA8IHplbndhXCA7CivmiJHmhaIgPCBnYW1hblwgOwor5Y+k6aKoIDwga29mdXVcIDsKK+epuuawlyA8IGt1dWtpXCA7Civnqbrmr40gPCBrdXVib1wgOwor5ZS+5rayIDwgZGFla2lcIDsKK+a6gOW6pyA8IG1hbnphXCA7Civllrbluq0gPCBlaXRlaVwgOwor6Jma56m6IDwga29rdXVcIDsKK+a3tea6kCA8IGVuZ2VuXCA7CivlkozoiLkgPCB3YXNlblwgOwor56S+6YGLIDwgc2hhdW5cIDsKK+aJueWIpCA8IGhpaGFuXCA7CivmiYvlnqIgPCB0ZWFrYVwgOwor5oKq6KiIIDwgYWtrZWlcIDsKK+aJueWHhiA8IGhpanVuXCA7CivpvJPnq6UgPCBrb2RvdVwgOwor5ZCP6YGTIDwgcm9kb3VcIDsKK+aKleS4jiA8IHRvdXlvXCA7Civmh7jmg7MgPCBrZXNvdVwgOwor5Y+X6ZujIDwganVuYW5cIDsKK+aIuOWkliA8IGtvZ2FpXCA7Civmh7rmgpQgPCB6YW5nZVwgOwor6Yuz54mpIDwgaW1vbm9cIDsKK+a4qeaaliA8IG9uZGFuXCA7CivmuKHmnaUgPCB0b3JhaVwgOwor5oGl6YOoIDwgY2hpYnVcIDsKK+aHuOW/tSA8IGtlbmVuXCA7CivmgqrooYwgPCBha2tvdVwgOwor5reh5rmWIDwgdGFua29cIDsKK+aIkOWwsSA8IGpvdWp1XCA7Civnp5/nqI4gPCBzb3plaVwgOwor5ZaE5oSPIDwgemVuJydpXCA7Civlj6Tpiq0gPCBrb3NlblwgOwor56ul5aWzIDwgZG91am9cIDsKK+m8oOeWqyA8IHNvZWtpXCA7CivmtYHnvaogPCBydXphaVwgOwor5Zea5ZK9IDwgb2V0c3VcIDsKK+aBqei1piA8IG9uc2hhXCA7CivmiYvli6IgPCB0ZXplaVwgOwor5oSP5Zu65ZywIDwgaWtvamlcIDsKK+a3mOaxsCA8IHRvdXRhXCA7CivmtJLokL0gPCBzaGFyZVwgOwor5rW356CCIDwga2Fpc2FcIDsKK+WPsOi8qiA8IGRhaXdhXCA7CivmuZblsrggPCBrb2dhblwgOwor5rS1576OIDwganVuYmlcIDsKK+esrOS6jCA8IGRhaW5pXCA7CivnpLroq4cgPCBqaWRhblwgOwor6YeO6YOOIDwgeWFyb3VcIDsKK+azleiqniA8IGhvdWdvXCA7CivlkIjorbAgPCBnb3VnaVwgOwor5oeH5oSPIDwga29uJydpXCA7Civmh4rmgqkgPCBvdW5vdVwgOwor5ZCN6KqJIDwgbWVpeW9cIDsKK+aEmueXtCA8IGd1Y2hpXCA7CivmsLTpto8gPCBrdWluYVwgOwor5Y+J6YqDIDwgc2FqdXVcIDsKK+a4qeaDhSA8IG9uam91XCA7CivmhJvnlKggPCBhaXlvdVwgOwor5oeI5oCgIDwgZ2V0YWlcIDsKK+aEmueUnyA8IGd1c2VpXCA7Civph4jov6YgPCBzaGFrYVwgOwor5rmv5Z6iIDwgeXVha2FcIDsKK+aBi+i3ryA8IGtvaWppXCA7CivmtL7nsbMgPCBoYWJlaVwgOwor5rOV6KKrIDwgaGFwcGlcIDsKK+iXjeiJsiA8IGFpaXJvXCA7Civnq6/ljYggPCB0YW5nb1wgOwor6Jma54ShIDwga3lvbXVcIDsKK+aJi+S7oyA8IHRlZGFpXCA7Civlj5fouqsgPCB1a2VtaVwgOwor5rih5b6hIDwgdG9neW9cIDsKK+awtOmtlCA8IHN1aW1hXCA7Civph47otqMgPCB5YXNodVwgOwor5b+r6Z+zIDwga2Fpb25cIDsKK+aJgOS9nCA8IHNob3NhXCA7Civlj6TosaogPCBrb2dvdVwgOwor6YeR6LKoIDwga2lua2FcIDsKK+aEm+eKrCA8IGFpa2VuXCA7Civno6/ovrogPCBpc29iZVwgOwor6by75rGBIDwgYmlqdXVcIDsKK+aDsOecoCA8IGRhbWluXCA7CivmgqrnvbUgPCBha3ViYVwgOwor5oiQ5Y+lIDwgc2Vpa3VcIDsKK+aJgOS4jiA8IHNob3lvXCA7Civlj6Toq7ogPCBrb2dlblwgOwor56iy5pyoIDwgaW5hZ2lcIDsKK+WPpOiokyA8IGtva3VuXCA7Civnqbrlt6MgPCBha2lzdVwgOwor5oKq57iBIDwgYWt1ZW5cIDsKK+a4qeWtmCA8IG9uem9uXCA7Civlj5forJsgPCBqdWtvdVwgOwor5Y+h6KanIDwgZWlyYW5cIDsKK+WNsemboyA8IGtpbmFuXCA7CivlvqHovp7lhIAgPCBvamlnaVwgOwor5b+F6aCIIDwgaGlzc3VcIDsKK+WPjeiqniA8IGhhbmdvXCA7CivpvLvmoLkgPCBiaWtvblwgOwor5Y+N6Ki0IDwgaGFuc29cIDsKK+mLreaVjyA8IGVpYmluXCA7CivmhJvmtrIgPCBhaWVraVwgOwor5ZCN6IiXIDwgbWVpaG9cIDsKK+a0vueUnyA8IGhhc2VpXCA7Civlloflj60gPCByYXBwYVwgOwor6Y285Yy7IDwgaGFyaWlcIDsKK+aAquionSA8IGtlZ2VuXCA7Civph47om64gPCB5YWJhblwgOwor5Y2w6ZGRIDwgaW5rYW5cIDsKK+axmui+sSA8IG9qb2t1XCA7CivpioPngasgPCBqdXVrYVwgOwor5oSa5rCRIDwgZ3VtaW5cIDsKK+WWquS4uyA8IG1vc2h1XCA7CivljZfpmL8gPCBuYW4nJ2FcIDsKK+m7hOePrSA8IG91aGFuXCA7CivlkI3nvqkgPCBtZWlnaVwgOwor5rCR6ZyAIDwgbWluanVcIDsKK+iZmuaghCA8IGt5b2VpXCA7CivmtoXmp4MgPCBuZWhhblwgOwor5re75a2XIDwgc29lamlcIDsKK+WToeaVsCA8IGluenV1XCA7Civmta7msJcgPCB1d2FraVwgOwor5rOi57SLIDwgaGFtb25cIDsKK+emheeUuyA8IHplbmdhXCA7CivnqbTloLQgPCBhbmFiYVwgOwor5ZKM5ryiIDwgd2FrYW5cIDsKK+aEj+assiA8IGl5b2t1XCA7Civph47oj5wgPCB5YXNhaVwgOwor5Y+k6Iy2IDwga29jaGFcIDsKK+elnuekviA8IGppbmphXCA7Civpu4Tnh5AgPCBvdXJpblwgOwor5rWF54CsIDwgYXNhc2VcIDsKK+W+oemboyA8IGdvbmFuXCA7Civph47ojYkgPCB5YXNvdVwgOwor5b6h6ZmwIDwgb2thZ2VcIDsKK+ialeW6pyA8IHNhbnphXCA7CivmuKnljpogPCBvbmtvdVwgOwor6YqA5rOiIDwgZ2lucGFcIDsKK+mKgOaysyA8IGdpbmdhXCA7CivmhZXmg4UgPCBib2pvdVwgOwor5ZKM5rSLIDwgd2F5b3VcIDsKK+WQjeewvyA8IG1laWJvXCA7Civmt4vlt7QgPCByaW5wYVwgOwor5oWH5oeDIDwgaW5naW5cIDsKK+W/teiqpiA8IG5lbmp1XCA7CivmhJvmm7ggPCBhaXNob1wgOwor5rK/57eaIDwgZW5zZW5cIDsKK+mHkeiCpSA8IGtpbnBpXCA7Civljp/ooqsgPCBnZW5waVwgOwor6JWX6I2JIDwgcm9zb3VcIDsKK+awl+mHjSA8IGtpb21vXCA7CivljZfpg6ggPCBuYW5idVwgOwor5rer5aOyIDwgaW5iYWlcIDsKK+enmOacrCA8IGhpaG9uXCA7CivmhJrmmKcgPCBndW1haVwgOwor5rWB5rWqIDwgcnVyb3VcIDsKK+awtOi3ryA8IHN1aXJvXCA7CivmsJfphY0gPCBrZWhhaVwgOwor6Jas56CUIDwgeWFnZW5cIDsKK+WPl+iDjiA8IGp1dGFpXCA7Civlvq7phrogPCBiaWt1blwgOwor5Y2K6YeMIDwgaGFucmlcIDsKK+eosuWtkCA8IGluYWdvXCA7Civmr5TpoZ4gPCBoaXJ1aVwgOwor5rWB5rCRIDwgcnVtaW5cIDsKK+WNg+mHjCA8IHNlbnJpXCA7CivlkIznpZYgPCBkb3Vzb1wgOwor6YmE54GrIDwgdGVra2FcIDsKK+egtOmhlCA8IGhhZ2FuXCA7CivljZHov5EgPCBoaWtpblwgOwor5b6h6YecIDwgb2thbWFcIDsKK+W+oemHkSA8IG9rYW5lXCA7Civmtabmm7IgPCB1cmF3YVwgOwor6YeN57iBIDwganV1ZW5cIDsKK+mDqOmmliA8IGJ1c2h1XCA7Civpg73pm7sgPCB0b2RlblwgOwor5oSa5oyZIDwgZ3VreW9cIDsKK+WTgOaGqyA8IGFpYmluXCA7Civlk4DmhpAgPCBhaXJlblwgOwor5b2p6ZuyIDwgc2FpdW5cIDsKK+mDqOmhniA8IGJ1cnVpXCA7CivolKzoj5wgPCBzb3NhaVwgOwor5ZKM5pysIDwgd2Fob25cIDsKK+a2suWuiSA8IGVraWFuXCA7CivnqbrkvZAgPCBrdXVzYVwgOwor5Y+X57SNIDwganVub3VcIDsKK+WTgOaDhSA8IGFpam91XCA7Civlk4DmgrwgPCBhaXRvdVwgOwor5ZKM5pu4IDwgd2FzaG9cIDsKK+aGguWTrSA8IHVraW5lXCA7Civlj5fnsokgPCBqdWZ1blwgOwor6YOo6Z2iIDwgYnVtZW5cIDsKK+efrum2jyA8IGNoYWJvXCA7Civmr6vph5AgPCBnb3VyaVwgOwor5oSb5oOzIDwgYWlzb3VcIDsKK+m7hOaliiA8IHRzdWdlXCA7Civpi7PlnosgPCBpZ2F0YVwgOwor5b6u6LOkIDwgYmlzZW5cIDsKK+WSjOaWhyA8IHdhYnVuXCA7CivoloTnnYAgPCB1c3VnaVwgOwor5rOi54q2IDwgaGFqb3VcIDsKK+iWhOebriA8IHVzdW1lXCA7CivlvpLovKkgPCB0b2hhaVwgOwor6YeM56iLIDwgcml0ZWlcIDsKK+ibh+S9kyA8IGphdGFpXCA7CivnqL3lj6QgPCBrZWlrb1wgOwor5oSa5byfIDwgZ3V0ZWlcIDsKK+aEmuW8hCA8IGd1cm91XCA7CivolqvnhZkgPCBrdW5lblwgOwor5rK755mSIDwgY2hpeXVcIDsKK+aCsuatjiA8IGhpdGFuXCA7CivmsZroh60gPCBvc2h1dVwgOwor5Y2R6KiAIDwgaGlnZW5cIDsKK+awkeipsSA8IG1pbndhXCA7Civmr5Tph40gPCBoaWp1dVwgOwor56aN5qC5IDwga2Frb25cIDsKK+mHjuegsiA8IHlhaG91XCA7CivmhInlv6sgPCB5dWthaVwgOwor56mP5YGlIDwgb25rZW5cIDsKK+WOn+e+qSA8IGdlbmdpXCA7CivpmL/lvKXpmYAgPCBhbWlkYVwgOwor5rK555SwIDwgeXVkZW5cIDsKK+W8vumbqCA8IGRhbicndVwgOwor6YO96YKRIDwgdG95dXVcIDsKK+WNiuijuCA8IGhhbnJhXCA7CivlvqHoqaAgPCBneW9laVwgOwor6YeN55uuIDwgb21vbWVcIDsKK+eggumYsiA8IHNhYm91XCA7CivlkarmlocgPCBqdW1vblwgOwor5b6h6KanIDwgZ29yYW5cIDsKK+WQkOeAiSA8IHRvc2hhXCA7Civmt6vkubEgPCBpbnJhblwgOwor56We5q2mIDwgamlubXVcIDsKK+WQiOeCuSA8IGdhdGVuXCA7CivmhJvlrasgPCBhaXNvblwgOwor5rWF5omLIDwgYXNhZGVcIDsKK+ialeWFtyA8IHNhbmd1XCA7Civmg7DmgKcgPCBkYXNlaVwgOwor5bGF5ZCI6YGTIDwgaWFkb3VcIDsKK+ayueeKtiA8IHl1am91XCA7Civph47nlJ8gPCB5YXNlaVwgOwor5rOi5rWqIDwgaGFyb3VcIDsKK+iTruiPryA8IHJlbmdlXCA7CivmhJvlqb8gPCBhaXNlaVwgOwor5b+N6IumIDwgbmlua3VcIDsKK+mKg+W6pyA8IGp1dXphXCA7Civljp/nsL8gPCBnZW5ib1wgOwor6YqA5bqnIDwgZ2luemFcIDsKK+aEm+WmuyA8IGFpc2FpXCA7CivnqI7lkI8gPCB6ZWlyaVwgOwor5oSb5aW9IDwgYWlrb3VcIDsKK+WKtOmfsyA8IHJvdW9uXCA7Civph47njaMgPCB5YWp1dVwgOwor6YeO54yqIDwgeWFjaG9cIDsKK+awtOiCpSA8IHN1aWhpXCA7Civli5/ph5EgPCBib2tpblwgOwor6YW457SgIDwgc2Fuc29cIDsKK+mHjueKrCA8IHlha2VuXCA7Civlu7bpq4QgPCBlbnp1aVwgOwor56iO5YuZIDwgemVpbXVcIDsKK+aCquaXpSA8IGFrdWJpXCA7CivnqJrlhZAgPCBjaGlnb1wgOwor5b+N6ICFIDwgbmluamFcIDsKK+m8u+WGhSA8IGJpbmFpXCA7Civlj6XngrkgPCBrdXRlblwgOwor56C06KuHIDwgaGFkYW5cIDsKK+WSjOWwmiA8IG9zaG91XCA7CivlvZPot68gPCB0b3Vyb1wgOwor5oOF5oSbIDwgam91YWlcIDsKK+mDqOiyoSA8IGJ1emFpXCA7CivpiYTmiYkgPCB0ZXBwaVwgOwor5rW35ZuzIDwga2FpenVcIDsKK+aEmuWVjyA8IGd1bW9uXCA7CivmsLTntKAgPCBzdWlzb1wgOwor5ZOA5Y+3IDwgYWlnb3VcIDsKK+aCsuaGpCA8IGhpZnVuXCA7CivpurvlubkgPCBvZ2FyYVwgOwor5Y2w57GgIDwgaW5yb3VcIDsKK+enu+WFpSA8IGlueXV1XCA7Civms7DmlpcgPCB0YWl0b1wgOwor5oSb5ZCfIDwgYWlnaW5cIDsKK+mHjea5ryA8IG9tb3l1XCA7CivmrLrpqJkgPCBnaWhlblwgOwor5b6h6IW5IDwgb25ha2FcIDsKK+aCsuaBiyA8IGhpcmVuXCA7Civlj6Xms5UgPCBrdWhvdVwgOwor5b6u572qIDwgYml6YWlcIDsKK+WOn+eUuyA8IGdlbmdhXCA7Civlj6Tms5UgPCBrb2hvdVwgOwor6Jma5YG9IDwga3lvZ2lcIDsKK+WLsuiomCA8IGt1bmtpXCA7Civph5Hms6IgPCBraW5wYVwgOwor5rW35Y+CIDwgaXJpa29cIDsKK+enmOWPsiA8IGhpc2hpXCA7CivpgqrpgZMgPCBqYWRvdVwgOwor5Y6z54i2IDwgZ2VucHVcIDsKK+mKgOWcsCA8IGdpbmppXCA7CivnpL7mmK8gPCBzaGF6ZVwgOwor5rW35Yy6IDwga2Fpa3VcIDsKK+WNsOeojiA8IGluemVpXCA7Civph43msrkgPCBqdXV5dVwgOwor55+u6LqvIDwgd2Fpa3VcIDsKK+aCquW/gyA8IG9zaGluXCA7CivmsZfnlrkgPCBhc2Vtb1wgOwor5oKq5b6SIDwgYWt1dG9cIDsKK+ehvOe0oCA8IGhvdXNvXCA7Civlj5fmtJcgPCBqdXNlblwgOwor6YqA5ZmoIDwgZ2lua2lcIDsKK+W/q+eZkiA8IGthaXl1XCA7Civph5Hmra8gPCBraW5iYVwgOwor55+t6LevIDwgdGFucm9cIDsKK+mBoOmfsyA8IHRvb25lXCA7Civlvq7ntLAgPCBiaXNhaVwgOwor5YuD6LW3IDwgYm9ra2lcIDsKK+aEmuWDpyA8IGd1c291XCA7CivnpoXlrrYgPCB6ZW5rZVwgOwor5Yqg6YWNIDwga2FoYWlcIDsKK+WTgeS9jSA8IGhpbicnaVwgOwor5qyn6aKoIDwgb3VmdXVcIDsKK+a1hOWcnyA8IGpvdWRvXCA7CivmnKrpgJrlpbMgPCBvYm9rb1wgOwor5oCS5r+kIDwgZG90b3VcIDsKK+aDueWPpSA8IGpha2t1XCA7Civno6jmt6wgPCBtYXNhaVwgOwor5rC455ygIDwgZWltaW5cIDsKK+W8t+iotCA8IGdvdXNvXCA7CivlkoTll58gPCB0b3NzYVwgOwor5q2m6YGTIDwgYnVkb3VcIDsKK+WPjeavlCA8IGhhbnBpXCA7CivljbDnm7ggPCBpbnpvdVwgOwor5qyh6aGeIDwgamlydWlcIDsKK+WPjeatryA8IHNvcHBhXCA7CivliarpmaQgPCBzZW5qb1wgOwor6Ya45q+NIDwgam91Ym9cIDsKK+atpui+uiA8IGJ1aGVuXCA7Civluqfpq5ggPCB6YWtvdVwgOwor5ZKM5ZCNIDwgd2FtZWlcIDsKK+aEm+S6uiA8IGFpamluXCA7CivlkozlkIggPCB3YWdvdVwgOwor5Y2K56uvIDwgaGFucGFcIDsKK+iWhOaXpSA8IHVzdWJpXCA7CivmhJrkurogPCBndWppblwgOwor5b+c55SoIDwgb3V5b3VcIDsKK+WQpuW/nCA8IGl5YW91XCA7Civmr43oiaYgPCBib2thblwgOwor5rK55patIDwgeXVkYW5cIDsKK+avjeiIuSA8IGJvc2VuXCA7Civlj6TmnaUgPCBrb3JhaVwgOwor5Y+k5pu4IDwga29zaG9cIDsKK+mHjuacqyA8IG5venVlXCA7Civph47mnJsgPCB5YWJvdVwgOwor5q2j6LevIDwgc2Vpcm9cIDsKK+mJseWMuiA8IGtvdWt1XCA7Civms6LlvaIgPCBoYWtlaVwgOwor5YmN6Z2eIDwgemVucGlcIDsKK+axmua/gSA8IG9kYWt1XCA7CivnooHnm6QgPCBnb2JhblwgOwor5byY6KqTIDwgZ3V6ZWlcIDsKK+a1ruS4liA8IHVraXlvXCA7CivluqfpoK0gPCB6YXRvdVwgOwor5ZCQ5oGvIDwgdG9pa2lcIDsKK+aCquWlsyA8IGFrdWpvXCA7Civmr5vnuZQgPCBrZW9yaVwgOwor5rGf5rmWIDwgZ291a29cIDsKK+aBqeaEmyA8IG9uJydhaVwgOwor5oKq5aSiIDwgYWt1bXVcIDsKK+WMl+e3ryA8IGhva3VpXCA7CivoloTmiYsgPCB1c3VkZVwgOwor5oGp5oG1IDwgb25rZWlcIDsKK+awuOeJoiA8IGVpcm91XCA7CivljYjnnaEgPCBnb3N1aVwgOwor5rWB5YiRIDwgcnVrZWlcIDsKK+mKgOS9jSA8IGdpbicnaVwgOwor5Y2X55S7IDwgbmFuZ2FcIDsKK+WbsueCieijjyA8IGlyb3JpXCA7CivlvIHorbcgPCBiZW5nb1wgOwor5Yuk6IumIDwga2lua3VcIDsKK+WKqeiogCA8IGpvZ29uXCA7Civms5XluqYgPCBoYXR0b1wgOwor5oOF5ZGzIDwgam91bWlcIDsKK+WQpuWumiA8IGhpdGVpXCA7CivlvbHntbUgPCBrYWdlZVwgOwor5ZCM5bqnIDwgZG91emFcIDsKK+egtOe2uyA8IGhhdGFuXCA7CivmtL7lhbUgPCBoYWhlaVwgOwor56aF5ZGzIDwgemVubWlcIDsKK+aCquWboCA8IGFrdWluXCA7CivokpTntbUgPCBtYWtpZVwgOwor5YyV5664IDwgaGljaG9cIDsKK+WNiueUsCA8IGhhbmRhXCA7CivmgYvmhZUgPCByZW5ib1wgOwor6YeN5omLIDwgb21vZGVcIDsKK+atpuijhSA8IGJ1c291XCA7CivljZHnjKUgPCBoaXdhaVwgOwor56C0566XIDwgaGFzYW5cIDsKK+WRkeWQkCA8IGRvbnRvXCA7CivmsrnlvakgPCB5dXNhaVwgOwor5Y+h5oWuIDwgZWlyeW9cIDsKK+a1geS6uiA8IHJ1bmluXCA7CivlvqHnkr0gPCBneW9qaVwgOwor5Y+W5omLIDwgdG90dGVcIDsKK+WQjeWumyA8IG5hYXRlXCA7CivnnYDpoZ4gPCBraXJ1aVwgOwor5q2M6KuWIDwga2Fyb25cIDsKK+mHjeaEmyA8IGp1dWFpXCA7Civlj7DluqcgPCBkYWl6YVwgOwor5Ymy6LOmIDwgd2FwcHVcIDsKK+ecn+mviSA8IG1hZ29pXCA7CivmrovoirEgPCB6YW5rYVwgOwor6buE5Lq6IDwgb3VqaW5cIDsKK+awtOa4qSA8IHN1aW9uXCA7CivpgYvovLggPCB1bicneXVcIDsKK+iXqeWEkiA8IGhhbmp1XCA7Civpupflj6UgPCByZWlrdVwgOwor6JGJ6Iy2IDwgaGFkamFcIDsKK+W+oeeOiSA8IG90YW1hXCA7CivpgZPot68gPCBkb3Vyb1wgOwor6YGL6LuiIDwgdW50ZW5cIDsKK+WInemZoyA8IHVpamluXCA7CivpgKPpjpYgPCByZW5zYVwgOwor6YGN6LevIDwgaGVucm9cIDsKK+mJm+S4uSA8IGVudGFuXCA7CivmsLTms7MgPCBzdWllaVwgOwor5rOl5ZyfIDwgZGVpZG9cIDsKK+WPi+aEmyA8IHl1dWFpXCA7CivlkIzlpJwgPCBkb3V5YVwgOwor6YeN5bqmIDwganV1ZG9cIDsKK+WJjei8qiA8IG1hZXdhXCA7CivmsrvlrokgPCBjaGlhblwgOwor6YiN5ZmoIDwgZG9ua2lcIDsKK+aAp+aEmyA8IHNlaWFpXCA7CivnoILntbUgPCBzdW5hZVwgOwor5rKZ5bylIDwgc2hhbWlcIDsKK+elreWFtyA8IHNhaWd1XCA7CivphY3mtYEgPCBoYWlydVwgOwor5YiI6ZmkIDwgZ2Fpam9cIDsKK+aAqOaBqCA8IGVua29uXCA7CivpgaDoposgPCB0b29taVwgOwor6I236aasIDwgbml1bWFcIDsKK+ecn+mhlCA8IG1hZ2FvXCA7CivliKnpiI0gPCByaWRvblwgOwor5oCd5oWVIDwgc2hpYm9cIDsKK+aAoOaDsCA8IHRhaWRhXCA7CivliKnph5EgPCByaWtpblwgOwor6YWU5q2pIDwgc3VpaG9cIDsKK+WHuemdoiA8IG91bWVuXCA7CivlkJ/lkbMgPCBnaW5taVwgOwor5q2m6Iq4IDwgYnVnZWlcIDsKK+W+kueEtiA8IHRvemVuXCA7Civph5HlrZAgPCBraW5zdVwgOwor5Y2Y5q+UIDwgdGFucGlcIDsKK+mBjuiogCA8IGthZ29uXCA7CivnpL7lk6EgPCBzaGFpblwgOwor5oKq5LqLIDwgYWt1amlcIDsKK+W9qeeUuyA8IHNhaWdhXCA7CivolqvljJYgPCBrdW5rYVwgOwor56WW5YWIIDwgc29zZW5cIDsKK+mIjeWMliA8IGRvbmthXCA7CivliKXpgJQgPCBiZXR0b1wgOwor5Y+w5aC0IDwgZGFpYmFcIDsKK+iWhOWcsCA8IHVzdWppXCA7CivljbDmnZAgPCBpbnphaVwgOwor5bmz6YeOIDwgaGVpeWFcIDsKK+aBr+WQuSA8IGlidWtpXCA7CivlkI3lj6UgPCBtZWlrdVwgOwor5q2m6ICFIDwgbXVzaGFcIDsKK+ekvuWLmSA8IHNoYW11XCA7Civljp/mhI8gPCBnZW4nJ2lcIDsKK+WPpOWisyA8IGtvZnVuXCA7Civph47lpKkgPCBub3RlblwgOwor5ZCI5ZCmIDwgZ291aGlcIDsKK+WKtOe1hCA8IHJvdXNvXCA7Civph47lpJYgPCB5YWdhaVwgOwor5bqn6KuHIDwgemFkYW5cIDsKK+W8l+e0oCA8IGZ1c3NvXCA7Civms5Xli5kgPCBob3VtdVwgOwor5b6h5LiW6L6eIDwgb3NlamlcIDsKK+egtOeJhyA8IGhhaGVuXCA7CivlkJDliaQgPCB0b3phaVwgOwor5b6h5q6/IDwgZ290ZW5cIDsKK+WMuuawkSA8IGt1bWluXCA7Civnn7MgPCBrb2t1XCA7Civov6sgPCBoYWt1XCA7Civov4QgPCBtYWRlXCA7Civlv4MgPCBzaGluXCA7CivovrwgPCBrb211XCA7CivlvrQgPCBjaG91XCA7CivlvrMgPCB0b2t1XCA7CivovrEgPCBqb2t1XCA7Civnnq0gPCByeW91XCA7CivnnqwgPCBzaHVuXCA7CivlvqkgPCBmdWt1XCA7CivlvbwgPCBrYXJlXCA7CivlvbkgPCB5YWt1XCA7CivlvbEgPCBrYWdlXCA7CivnnaYgPCBib2t1XCA7CivlvL4gPCB0YW1hXCA7CivlvLcgPCBreW91XCA7CivovK8gPCBzaHV1XCA7CivnnIkgPCBtYXl1XCA7CivovIMgPCBrYWt1XCA7Civnm7QgPCBoaXRhXCA7Civou5IgPCBub2tpXCA7Civlu4IgPCBzaG91XCA7Civnmr8gPCBzYXJhXCA7CivlurUgPCBpb3JpXCA7Civnmq4gPCBrYXdhXCA7Civluq0gPCBuaXdhXCA7CivlupcgPCBtaXNlXCA7CivlupUgPCBzb2tvXCA7CivoupEgPCB0ZWtpXCA7CivouoogPCBjaHV1XCA7CivluoogPCB5dWthXCA7CivnmoQgPCBtYXRvXCA7CivlubkgPCBtaWtpXCA7CivlubMgPCBoaXJhXCA7CivouaAgPCBzZWtpXCA7CivnmZYgPCBrdXNlXCA7CivluYUgPCBoYWJhXCA7CivluLggPCB0b3dhXCA7CivluIwgPCBtYXJlXCA7CivluIMgPCBudW5vXCA7Civlt7sgPCBtYWtpXCA7CivotrMgPCBhc2hpXCA7CivotoogPCBldHN1XCA7CivnlZkgPCByeXV1XCA7CivnlLMgPCBzYXJ1XCA7CivnlJ8gPCBuYW1hXCA7CivltJYgPCBnYWtlXCA7CivltI4gPCBzYWtpXCA7Civls7AgPCBtaW5lXCA7Civos4ogPCB6b2t1XCA7Civos4MgPCBjaGluXCA7CivlsbEgPCB5YW1hXCA7CivlsZEgPCBrdXp1XCA7CivosYYgPCBtYW1lXCA7CivnkLQgPCBrb3RvXCA7Civlr74gPCB0c3VpXCA7Civlr7ogPCB0ZXJhXCA7Civlr4wgPCB0b21pXCA7Civlr4IgPCBzYWJpXCA7Civlrr8gPCB5YWRvXCA7Civlrq4gPCBtaXlhXCA7CivlrqQgPCBtdXJvXCA7CivnjpYgPCBreXV1XCA7CivnjokgPCBkYW1hXCA7CivlrokgPCB5YXN1XCA7CivlroggPCBtb3JpXCA7CivlroUgPCB0YWt1XCA7CivlrbggPCBnYWt1XCA7CivlrasgPCBtYWdvXCA7CivnjaggPCBkb2t1XCA7CivnjYQgPCBnb2t1XCA7CivnjKsgPCBuZWtvXCA7CivorKEgPCB1dGFpXCA7CivorI4gPCBuYXpvXCA7Civlq4EgPCB5b21lXCA7CivoqrAgPCBkYXJlXCA7Civlqb8gPCBtdWtvXCA7CivniakgPCBtb25vXCA7CivniZsgPCB1c2hpXCA7CivoqZUgPCBoeW91XCA7CivlqYYgPCBiYWJhXCA7CivoqLMgPCB3YWtlXCA7CivniIYgPCBiYWt1XCA7Civlp6sgPCBoaW1lXCA7CivlppkgPCBteW91XCA7CivnhoogPCBrdW1hXCA7CivnhaQgPCBzdXN1XCA7CivnhLwgPCB5YWtpXCA7CivlpKsgPCBvdHRvXCA7CivlpKIgPCB5dW1lXCA7CivlpJwgPCB5b3J1XCA7CivlpJYgPCBob2thXCA7Civoo74gPCBzdXNvXCA7Civlo7EgPCBpY2hpXCA7Civlo5MgPCBhdHN1XCA7Civlo4EgPCBrYWJlXCA7CivngrogPCB0YW1lXCA7Civngq0gPCBzdW1pXCA7CivoopYgPCBzb2RlXCA7CivlopMgPCBoYWthXCA7CivloakgPCBzaGlvXCA7CivloZ4gPCBzb2t1XCA7CivooZMgPCBzdWJlXCA7CivooYwgPCBneW91XCA7CivngJ0gPCByZWtpXCA7CivloIAgPCBob3JpXCA7Civmv4EgPCBkYWt1XCA7Civmv4AgPCBnZWtpXCA7CivlnqMgPCBrYWtpXCA7CivlnosgPCBrYXRhXCA7CivonYkgPCBzZW1pXCA7CivlnYIgPCBzYWthXCA7CivpvLsgPCBoYW5hXCA7CivlnJIgPCBzb25vXCA7Civlm70gPCBrdW5pXCA7Civpu7QgPCBrYWJpXCA7Civpu5kgPCBtb2t1XCA7Civpu5IgPCBrdXJvXCA7Civpu40gPCBraWJpXCA7Civom4cgPCBoZWJpXCA7CivmurogPCBkZWtpXCA7CivpuqYgPCBtdWdpXCA7CivomqQgPCBub21pXCA7CivmuqIgPCBpdHN1XCA7Civmup0gPCBtaXpvXCA7CivomY4gPCB0b3JhXCA7Civpt7kgPCB0YWthXCA7Civol6QgPCBmdWppXCA7Civol4EgPCB3YXJhXCA7CivllokgPCBub2RvXCA7CivmtbQgPCB5b2t1XCA7CivmtZwgPCBoYW1hXCA7CivllK8gPCB0YWRhXCA7CivmtJ4gPCBob3JhXCA7CivmtJsgPCByYWt1XCA7CivllJYgPCBvc2hpXCA7Civok64gPCBoYXN1XCA7Civps6kgPCBoYXRvXCA7Civps6UgPCB0b3JpXCA7Civms6UgPCBkb3JvXCA7Civms6IgPCBuYW1pXCA7Civok4sgPCBmdXRhXCA7CivmsrwgPCBudW1hXCA7CivokrsgPCBqYWt1XCA7CivokrIgPCBnYW1hXCA7CivmsqIgPCBzYXdhXCA7CivpsYggPCB0YXJhXCA7CivokL0gPCBvY2hpXCA7CivmsLQgPCBtaXp1XCA7CivmsJEgPCB0YW1pXCA7Civlj7MgPCBtaWdpXCA7Civlj6QgPCBmdXJ1XCA7Civmr40gPCBoYWhhXCA7Civoj4ogPCBraWt1XCA7Civlj4sgPCB0b21vXCA7Civlj4ggPCBtYXRhXCA7Civmrr8gPCBkb25vXCA7CivmrrsgPCBrYXJhXCA7CivojqIgPCBzYXlhXCA7Civljp8gPCBoYXJhXCA7CivojYkgPCBrdXNhXCA7CivljYcgPCBtYXN1XCA7CivprLEgPCB1dHN1XCA7CivprJogPCBoaWdlXCA7CivljJkgPCBzYWppXCA7CivljJcgPCBob2t1XCA7CivojI4gPCBrdWtpXCA7CivojIUgPCBrYXlhXCA7CivljIIgPCBuaW91XCA7Civpq7cgPCBtYWdlXCA7Civpq6ogPCBrYW1pXCA7Civoi5QgPCBrb2tlXCA7CivpqqggPCBob25lXCA7CivliqkgPCBzdWtlXCA7CivlibIgPCB3YXJpXCA7CivmqZ8gPCBoYXRhXCA7CivliYogPCBzYWt1XCA7CivoiLkgPCBmdW5lXCA7CivliLogPCB0b2dlXCA7CivmqKogPCB5b2tvXCA7CivliIggPCBrYXJpXCA7CivmqIUgPCBtb21pXCA7Civpp5IgPCBrb21hXCA7Civoh40gPCBoZXNvXCA7CivlhqwgPCBmdXl1XCA7Civohp0gPCBoaXphXCA7CivohpwgPCBtYWt1XCA7CivpppYgPCBrdWJpXCA7CivlhoYgPCBtYXJ1XCA7CivlhoUgPCB1Y2hpXCA7CivlhbEgPCBkb21vXCA7Civmpa0gPCB3YXphXCA7Civlha0gPCByb2t1XCA7CivlhaUgPCBueXV1XCA7CivlhYMgPCBtb3RvXCA7CivlhJggPCBtYW1hXCA7CivohIcgPCB3YWtpXCA7CivohIIgPCB5YW5pXCA7Civog7ggPCBtdW5lXCA7Civmo5ogPCB0YW5hXCA7Civogp0gPCBraW1vXCA7CivogpggPCBoaWppXCA7CivlgpggPCBrYXNhXCA7CivogowgPCBoYWRhXCA7CivogokgPCBuaWt1XCA7CivmooMgPCB0ZWtvXCA7Civlgb0gPCBuaXNlXCA7CivmoZAgPCBraXJpXCA7CivmoYMgPCBtb21vXCA7CivmoYEgPCBrZXRhXCA7CivogLMgPCBtaW1pXCA7CivpoKwgPCBob2hvXCA7CivmoJcgPCBrdXJpXCA7CivpoIMgPCBnb3JvXCA7Civmn5ogPCB5dXp1XCA7CivkvqEgPCBhdGFpXCA7CivmnZYgPCB0c3VlXCA7CivmnZEgPCBtdXJhXCA7CivmnY8gPCBhbnp1XCA7CivmnYkgPCBzdWdpXCA7CivkvL0gPCB0b2dpXCA7CivmnK0gPCBmdWRhXCA7Civpm7IgPCBrdW1vXCA7Civku7IgPCBuYWthXCA7Civpm6ogPCB5dWtpXCA7Civpm4wgPCBtZXN1XCA7CivkurogPCBoaXRvXCA7CivpmpkgPCBzdWtpXCA7CivmmocgPCBoaW1hXCA7CivkuYsgPCBrb3JlXCA7CivmmYIgPCB0b2tpXCA7CivmmLwgPCBoaXJ1XCA7CivnuKYgPCB0YXRlXCA7CivmmKUgPCBoYXJ1XCA7CivkuIggPCBkYWtlXCA7CivnuIQgPCBuYXdhXCA7Civpl4cgPCB5YW1pXCA7Civml4UgPCB0YWJpXCA7Civntr8gPCB3YXRhXCA7CivntbkgPCBraW51XCA7CivntYQgPCBrdW1pXCA7CivntJAgPCBoaW1vXCA7CivntIUgPCBiZW5pXCA7CivnsqUgPCBrYXl1XCA7CivnsokgPCBrb25hXCA7CivnsbMgPCBrb21lXCA7CivnsaAgPCBrYWdvXCA7CivpkJggPCBrYW5lXCA7Civmj7ogPCB5dXJpXCA7Civmj48gPCBieW91XCA7CivnrrEgPCBoYWtvXCA7CivnrqEgPCBrdWRhXCA7CivpjbUgPCBrYWdpXCA7CivpjYsgPCBuYWJlXCA7CivnrYsgPCBzdWppXCA7CivnrYkgPCBuYWRvXCA7CivnrYggPCBoYXp1XCA7CivnrYYgPCBmdWRlXCA7CivnrLkgPCBzYXNhXCA7CivmjIcgPCB5dWJpXCA7Civnq7kgPCB0YWtlXCA7CivnqpMgPCBtYWRvXCA7CivpipEgPCB6dWt1XCA7CivnqbogPCBzb3JhXCA7CivmiYcgPCBvdWdpXCA7CivmiL8gPCBmdXNhXCA7CivpiLQgPCBzdXp1XCA7CivnqK4gPCB0YW5lXCA7CivmiJEgPCB3YXJlXCA7CivnqI0gPCB5YXlhXCA7CivnqIsgPCBob2RvXCA7Civph50gPCBoYXJpXCA7Civph5wgPCBrYW1hXCA7Civph5ggPCBrdWdpXCA7Civnpr8gPCBoYWdlXCA7CivmhqkgPCBpa29pXCA7CivphZIgPCBzYWtlXCA7CivmhYsgPCB6YW1hXCA7Civmg5EgPCB3YWt1XCA7CivmgqogPCB3YXJ1XCA7CivnoqcgPCBoZWtpXCA7CivmgaUgPCBoYWppXCA7CivpgJogPCB0c3V1XCA7CivnoIIgPCBzdW5hXCA7Civlv5zmj7QgPCBvdWVuXCA7Civlj6TlmaggPCBrb2tpXCA7Civlh43pm6ggPCB0b3V1XCA7CivlvpLmrakgPCB0b2hvXCA7Civlj6/lkKYgPCBrYWhpXCA7CivlvpDmrakgPCBqb2hvXCA7CivluoforbcgPCBoaWdvXCA7Civph47llrYgPCB5YWVpXCA7Civms5XkvJogPCBob3VlXCA7CivlkIzkvY0gPCBkb3VpXCA7CivljbHmh7wgPCBraWd1XCA7Civlj6Xlj6UgPCBrdWt1XCA7Civlj6Plj5cgPCBrdWp1XCA7CivmsrvlhbcgPCBqaWd1XCA7Civlhrfpm6ggPCByZWl1XCA7CivlvZPngrogPCB0b3VpXCA7Civlj7PlhZogPCB1dG91XCA7Civpgbrnsr4gPCBpc2VpXCA7Civph47ljZEgPCB5YWhpXCA7Civlj7Plgr4gPCB1a2VpXCA7CivljLvmm7ggPCBpc2hvXCA7CivpgZXog4wgPCBpaGFpXCA7CivmgKjll58gPCBlbnNhXCA7CivpuJrlk6UgPCBpbmtvXCA7CivnoLTmr4AgPCBoYWtpXCA7Civlj43lkJAgPCBoZWRvXCA7Civlj43lj6QgPCBob2dvXCA7Civlj6TlhIAgPCBrb2dpXCA7CivljbDluqYgPCBpbmRvXCA7CivpgbrnqL8gPCBpa291XCA7Civnm7jpgZUgPCBzb3VpXCA7Civluqfoh6UgPCB6YWdhXCA7CivluLDpgJQgPCBraXRvXCA7CivlhobpobEgPCBlbnJvXCA7Civno4HloLQgPCBqaWJhXCA7Civlj6TkuosgPCBrb2ppXCA7CivmsLjlr78gPCBlaWp1XCA7CivlvoDmmYIgPCBvdWppXCA7Civno4HlnJ8gPCBqaWRvXCA7CivptInniYcgPCBhaGVuXCA7CivljbDlrZcgPCBpbmppXCA7CivpgZXnrpcgPCBpc2FuXCA7Civlj5nkuosgPCBqb2ppXCA7Civno4HlmaggPCBqaWtpXCA7Civlvq7lvq4gPCBiaWJpXCA7CivluLDot68gPCBraXJvXCA7CivlvqHmhI8gPCBneW9pXCA7CivnoILmtLIgPCBzYXN1XCA7CivljYjlvowgPCBnb2dvXCA7Civmr4Dmo4QgPCBraWtpXCA7CivpgaDnpZYgPCBlbnNvXCA7CivlvozmiYsgPCBnb3RlXCA7CivlubLokYkgPCBoaWJhXCA7CivlvJXngasgPCBpbmthXCA7CivlvqHlvbEgPCBnb2VpXCA7CivmqLnpmbAgPCBqdWluXCA7Civoi7Hpn7MgPCBlaW9uXCA7CivmsZrlkI0gPCBvbWVpXCA7Civno4HljLogPCBqaWt1XCA7Civpgqrmt6sgPCBqYWluXCA7Civov4LoqIAgPCB1Z2VuXCA7Civno4HljJYgPCBqaWthXCA7CivljLvluKsgPCBpc2hpXCA7CivlvbzmiJEgPCBoaWdhXCA7CivljbHlnZAgPCBraXphXCA7CivmqZ/pgYsgPCBraXVuXCA7CivliqnmvJQgPCBqb2VuXCA7CivpgqrmsJcgPCBqYWtpXCA7CivlvKXmrKEgPCB5YWppXCA7CivlvoDlvoAgPCBvdW91XCA7CivliIDoh6ogPCB0b2ppXCA7CivlvqHlrZAgPCBtaWtvXCA7CivljLvlrpggPCBpa2FuXCA7CivliqDmuKkgPCBrYW9uXCA7CivpgY7nlo4gPCBrYXNvXCA7Civlv5zli58gPCBvdWJvXCA7CivpgbrmvI8gPCBpcm91XCA7CivlvozlrrYgPCBnb2tlXCA7CivljLvlpKcgPCBpZGFpXCA7CivmrrTmiZMgPCBvdWRhXCA7CivmranmraYgPCBob2J1XCA7CivpgZXniq8gPCBpaGFuXCA7CivlhobosqggPCBlbmthXCA7CivmsJflkbMgPCBnaW1pXCA7CivmsJflkIggPCBraWFpXCA7CivluIPooY0gPCBmdWVuXCA7CivprZTprYUgPCBtYW1pXCA7CivlvozloLQgPCBnb2JhXCA7CivnoLTlrrYgPCBiYWthXCA7CivmsJfljJYgPCBraWthXCA7CivlvoHlpLcgPCBzZWlpXCA7CivmsLTkvY0gPCBzdWlpXCA7Civlhobopo8gPCBlbmtpXCA7Civnm4jomacgPCBlaWtpXCA7CivlvqHlkI0gPCBtaW5hXCA7Civpg6jlsYsgPCBoZXlhXCA7Civoi7HosqggPCBlaWthXCA7CivpgY7muKEgPCBrYXRvXCA7CivpgZXms5UgPCBpaG91XCA7Civmrrflr4wgPCBpbnB1XCA7CivojKPok5kgPCBnb3phXCA7Civoi7Hoqp4gPCBlaWdvXCA7CivpgYvmsrMgPCB1bmdhXCA7Civnn6XmgbUgPCBjaGllXCA7CivpgYvmsJcgPCB1bmtpXCA7CivovLjotI8gPCB5dWVpXCA7Civli6LlrZAgPCBzZWtvXCA7CivljIXlm7IgPCBob3VpXCA7CivlvoDlj6QgPCBvdWtvXCA7CivliqDmjIEgPCBrYWppXCA7CivlvKfluqYgPCBrb2RvXCA7Civpg73llrYgPCB0b2VpXCA7Civmr5TllqkgPCBoaXl1XCA7CivpgbrmlocgPCBpYnVuXCA7CivpgKLngKwgPCBvdXNlXCA7Civlh7rnm64gPCBkZW1lXCA7CivmrabmioAgPCBidWdpXCA7CivluqfmtLIgPCB6YXN1XCA7CivlvqHku6MgPCBtaXlvXCA7CivljLvkvJogPCBpa2FpXCA7CivlvpfkvZMgPCBldGFpXCA7CivlvbHljbAgPCBlaWluXCA7CivlhoboiJ4gPCBlbmJ1XCA7CivptZzljKAgPCB1am91XCA7Civmr43ljbAgPCBib2luXCA7CivpgLjmqZ8gPCBpa2tpXCA7Civpg6jlk6EgPCBidWluXCA7Civnmq7ohpogPCBoaWZ1XCA7CivliLfmr5sgPCBoYWtlXCA7CivmrabluqsgPCBidWtvXCA7CivmqZ/nuIEgPCBraWVuXCA7CivnoILlnJ8gPCBzYWRvXCA7CivpgbrmgaggPCBpa29uXCA7CivoirHorZwgPCBrYWZ1XCA7Civmr5TkvqEgPCBoaWthXCA7CivmrablrrYgPCBidWtlXCA7CivmqKroh6UgPCBvdWdhXCA7CivprLHph5EgPCB1a29uXCA7Civmr5TkuJggPCBiaWt1XCA7Civpg73kuIsgPCB0b2thXCA7Civnn6LloLQgPCB5YWJhXCA7CivpgZXmhrIgPCBpa2VuXCA7Civlu7blr78gPCBlbmp1XCA7Civnmb7oiIwgPCBtb3p1XCA7CivmrablpKsgPCBidWZ1XCA7CivnoILliKkgPCBqYXJpXCA7Civpg6jkuIsgPCBidWthXCA7Civnnr3lpbMgPCBnb3plXCA7Civlh7rmra8gPCBkZWJhXCA7CivpgY7luqYgPCBrYWRvXCA7CivmrablmaggPCBidWtpXCA7CivpgYvluqcgPCB1bnphXCA7CivmrKHluo8gPCBqaWpvXCA7CivmqKHns4ogPCBtb2tvXCA7CivoirHoir0gPCBrYWdhXCA7CivlubPmmJMgPCBoZWlpXCA7CivmranlkIggPCBidWFpXCA7Civnlo7pn7MgPCBzb2luXCA7CivmqLnnmq4gPCBqdWhpXCA7CivlupzluqsgPCBmdWtvXCA7Civpgbrlk4EgPCBpaGluXCA7CivnlpHpm7IgPCBnaXVuXCA7Civpgbrlkb0gPCBpbWVpXCA7CivmraTlh6YgPCBrb2tvXCA7CivmrablhbcgPCBidWd1XCA7Civlh6DmoYggPCBraWFuXCA7CivmrablgpkgPCBidWJpXCA7Civov73miYsgPCBvdHRlXCA7CivnlbDpoqggPCBpZnV1XCA7CivnlbDpoZ4gPCBpcnVpXCA7CivliKnlt7EgPCByaWtvXCA7CivmrabkuosgPCBidWppXCA7CivojYrmo5ggPCBiYXJhXCA7CivprZTnvoUgPCBtYXJhXCA7CivpgbrkvZMgPCBpdGFpXCA7CivpgbrkvJ0gPCBpZGVuXCA7CivpgY7ljrsgPCBrYWtvXCA7CivmrKfljJYgPCBvdWthXCA7Civnlo7pgaAgPCBzb2VuXCA7CivnlpHovp4gPCBnaWppXCA7Civlt6bmtL4gPCBzYWhhXCA7Civoibbnvo4gPCBlbmJpXCA7CivpqaLppqwgPCByb2JhXCA7CivlspDpmJwgPCBnaWZ1XCA7Civluqflk6EgPCB6YWluXCA7CivmsLjjgIUgPCBlaWVpXCA7CivnnJ/luIYgPCBtYWhvXCA7Civnm7jmiYsgPCBhaXRlXCA7CivluqblkIggPCBkb2FpXCA7CivpgZXkvosgPCBpcmVpXCA7CivliKnlmaggPCByaWtpXCA7CivoibLntbUgPCBpcm9lXCA7Civlu4PkvY0gPCBoYWlpXCA7CivluIPmlr0gPCBmdXNlXCA7Civoh6rosrsgPCBqaWhpXCA7Civoh6rosqAgPCBqaWZ1XCA7CivlhaXmsZ8gPCBpcmllXCA7CivpqL7ppqwgPCByYWJhXCA7CivoirHnjosgPCBrYW91XCA7Civmo4vpmaIgPCBraWluXCA7CivluLfluYQgPCBpYWt1XCA7Civoi7HmraYgPCBlaWJ1XCA7CivnlbDotqMgPCBpc2h1XCA7CivlhbfmoYggPCBndWFuXCA7Civoh6rooZsgPCBqaWVpXCA7CivnlbDoq5YgPCBpcm9uXCA7Civnm7jlrZAgPCBhaWtvXCA7CivlupzkuIsgPCBmdWthXCA7CivprZTnjosgPCBtYW91XCA7CivliKnku5YgPCByaXRhXCA7CivpqI7ppqwgPCBraWJhXCA7CivmqZ/lvbEgPCBraWVpXCA7CivnmbrmnaEgPCBiYW5lXCA7CivlhoXmhI8gPCBuYWlpXCA7CivmqZ/luo8gPCBraWpvXCA7CivluJ3lqIEgPCB0ZWlpXCA7Civov4Llm54gPCB1a2FpXCA7CivpgIDkvY0gPCB0YWlpXCA7CivmooXpm6ggPCBiYWl1XCA7CivmqKHmk6wgPCBtb2dpXCA7CivlhoblvKcgPCBlbmtvXCA7Civnl7Lnl7ogPCBtYWhpXCA7Civnm67lnLAgPCBtZWppXCA7CivlhobluqcgPCBlbnphXCA7CivoirHmqLkgPCBrYWp1XCA7CivnlLvorZwgPCBnYWZ1XCA7CivmqZ/lrpwgPCBraWdpXCA7CivlsL7pg6ggPCBiaWJ1XCA7Civnm7LllJYgPCBtb3VhXCA7Civkvp3poZggPCBpZ2FuXCA7Civkvp3poLwgPCBpcmFpXCA7CivnlpHnvqkgPCBnaWdpXCA7CivnnJ/kvLwgPCBtYW5lXCA7Civmo4vorZwgPCBraWZ1XCA7CivlhZDmiK8gPCBqaWdpXCA7CivnnJ/kuIogPCBtYXVlXCA7CivluIzlnJ8gPCBraWRvXCA7Civoh5nohIIgPCBlbmppXCA7CivlgYPoh6UgPCBlbmdhXCA7Civog6HpursgPCBnb21hXCA7CivmoJfpvKAgPCByaXN1XCA7Civlr7rpmaIgPCBqaWluXCA7Civnm67lh6YgPCBtZWRvXCA7Civpp4TppqwgPCBkYWJhXCA7CivlhazlrrYgPCBrdWdlXCA7CivprLHmsJcgPCB1a2tpXCA7Civou73mmJMgPCBrZWlpXCA7Civoi7HlrZcgPCBlaWppXCA7Civkv5roqp4gPCByaWdvXCA7CivlsaDomIcgPCB0b3NvXCA7Civpp4bpmaQgPCBrdWpvXCA7Civlr53plpMgPCBuZW1hXCA7Civnm67kuIogPCBtZXVlXCA7CivovKrlt64gPCB3YXNhXCA7CivkvZnpn7sgPCB5b2luXCA7CivnlbDnq68gPCBpdGFuXCA7Civlt6XlkIggPCBndWFpXCA7CivoirHluo8gPCBrYWpvXCA7CivlsbHnvoogPCB5YWdpXCA7Civoi6blnJ8gPCBrdWRvXCA7Civlr7/os4AgPCBqdWdhXCA7Civoh6rnlLsgPCBqaWdhXCA7Civnn7PmlpHprZogPCB1Z3VpXCA7Civoi7HlkowgPCBlaXdhXCA7CivnlLvntKAgPCBnYXNvXCA7CivmoqjoirEgPCByaWthXCA7CivnlLHnuIEgPCB5dWVuXCA7CivprZrluqcgPCB1b3phXCA7CivlhbflgpkgPCBndWJpXCA7CivotoroqLQgPCBlc3NvXCA7CivlhJLlrrYgPCBqdWthXCA7CivotbfoqLQgPCBraXNvXCA7Civkv5rogLMgPCByaWppXCA7CivlrrbpgYsgPCBrYXVuXCA7CivnlbDnirYgPCBpam91XCA7CivmpZrmpZogPCBzb3NvXCA7CivppZHppJMgPCBraWdhXCA7CivnmofkvY0gPCBrb3VpXCA7Civlrrbot68gPCBpZWppXCA7CivprZTlpbMgPCBtYWpvXCA7CivppYLpo6kgPCB1ZG9uXCA7CivlrZfpn7MgPCBqaW9uXCA7Civlr4Toqp4gPCBraWdvXCA7CivogLPpvLsgPCBqaWJpXCA7CivppJPprLwgPCBnYWtpXCA7Civog6Too5QgPCBpbmVpXCA7CivlhLLkvY0gPCBjaG9pXCA7Civoh6rmo4QgPCB5YWtlXCA7CivnkIbpnZ4gPCByaWhpXCA7CivlhKrkvY0gPCB5dXVpXCA7CivmoIToqokgPCBlaXlvXCA7CivovJTkvZAgPCBob3NhXCA7CivkvIrpgZQgPCBkYXRlXCA7CivnlbDmp5ggPCBpeW91XCA7CivkvZnomIogPCB5b3VuXCA7CivlrrbomoogPCBpZWthXCA7CivlsLznlKsgPCBqaWhvXCA7CivlgYnmnZAgPCBpemFpXCA7CivnlbDmnKwgPCBpaG9uXCA7CivmpI3mnKggPCB1ZWtpXCA7Civog7zog50gPCB0YWtvXCA7CivoiKrlrocgPCBrb3V1XCA7CivnlpHmh7wgPCBnaWt1XCA7CivnlbDmlbAgPCBpc3V1XCA7CivnlpHmg6cgPCBnaWd1XCA7CivprYHlgYkgPCBrYWlpXCA7Civkv53nhKEgPCBob211XCA7Civoh6rmhJsgPCBqaWFpXCA7CivmoIToj68gPCBlaWdhXCA7CivlgYnmjJkgPCBpa3lvXCA7CivlgYnmiY0gPCBpc2FpXCA7CivnkIbot68gPCByaXJvXCA7Civos6boqaAgPCBmdWVpXCA7CivnlY/mlawgPCBpa2VpXCA7Civkv53muKkgPCBob29uXCA7CivnlLvmnrYgPCBnYWthXCA7CivkuozpmaIgPCBuaWluXCA7Civoh6rlt7EgPCBqaWtvXCA7Civosarpm6ggPCBnb3V1XCA7Civku5jorbAgPCBmdWdpXCA7Civkv53mr40gPCBob2JvXCA7Civlronoh6UgPCBhbmdhXCA7CivkupzpiLQgPCBhcmVpXCA7Civku5joqJggPCBmdWtpXCA7CivlsI/ngasgPCBib3lhXCA7Civpp4Tnm64gPCBkYW1lXCA7CivlsYvmoLkgPCB5YW5lXCA7Civkvp3nhLYgPCBpemVuXCA7CivnlbDlrZggPCBpem9uXCA7Civkuozpg6ggPCBuaWJ1XCA7Civpoqjpm6ggPCBmdXV1XCA7CivmpZXlhoYgPCBkYWVuXCA7Civlgb3ljbAgPCBnaWluXCA7CivnlbDlpIkgPCBpaGVuXCA7CivnlZnlroggPCBydXN1XCA7CivkvY3nm7ggPCBpc291XCA7CivkuIDpvJMgPCBpa2tvXCA7CivnlKjmhI8gPCB5b3VpXCA7CivogLPoqp4gPCBqaWdvXCA7CivnlbDln58gPCBpaWtpXCA7Civkv53mjIEgPCBob2ppXCA7CivoiIjkupwgPCBrb3VhXCA7Civnk6bmlq8gPCBnYXN1XCA7Civoh6rliKkgPCBqaXJpXCA7CivkvZnnhZkgPCB5b2VuXCA7CivkuIvpp4QgPCBnZXRhXCA7CivkuIvppqwgPCBnZWJhXCA7CivlgYflkI0gPCBrYW5hXCA7CivnlbDlkIwgPCBpZG91XCA7CivogLbomIcgPCB5YXNvXCA7CivnkaDnkoMgPCBydXJpXCA7CivlgYnli7IgPCBpa3VuXCA7CivkuYXpgaAgPCBrdW9uXCA7Civoh6rkvZkgPCBqaXlvXCA7CivkuI3pm6IgPCBmdXJpXCA7Civoh6rku5YgPCBqaXRhXCA7Civnvo7pn7MgPCBiaW9uXCA7CivlrZDnrYkgPCBrb3JhXCA7CivkuIvpmaIgPCBrYWluXCA7CivkuI3plpMgPCBidW1hXCA7CivnlLvlm6AgPCBnYWluXCA7CivkvZnms6IgPCB5b2hhXCA7CivnlY/lj4sgPCBpeXV1XCA7CivlsI/miYsgPCBrb3RlXCA7CivotqPmhI8gPCBzaHVpXCA7CivlgYnkurogPCBpamluXCA7Civkv53lrokgPCBob2FuXCA7CivkvZnmroMgPCB5b291XCA7Civot6/lnLAgPCByb2ppXCA7CivnkLXnkLYgPCBiaXdhXCA7Civmmq7pm7IgPCBib3VuXCA7Civog4PmtrIgPCBpZWtpXCA7CivkupzogZYgPCBhc2VpXCA7CivkuIvph44gPCBnZXlhXCA7CivkuIrph44gPCB1ZW5vXCA7CivogoznkIYgPCBraW1lXCA7CivpprTmn5MgPCBuYWppXCA7CivkupznvqQgPCBhZ3VuXCA7CivkuJbovp4gPCBzZWppXCA7CivkuI3pgYsgPCBmdXVuXCA7CivkvZnmoIQgPCB5b2VpXCA7CivmoqjlnJIgPCByaWVuXCA7CivkvpvlvqEgPCBndWdvXCA7Civot6/liqAgPCBydWthXCA7CivkupzntrEgPCBha291XCA7CivkvZnmmocgPCB5b2thXCA7CivkuIDpgY4gPCBpa2thXCA7CivlsI/lsYsgPCBrb3lhXCA7CivkuIDpgJQgPCBpdHRvXCA7Civnvo7ovp4gPCBiaWppXCA7CivlronmsJcgPCBhbmtpXCA7CivmoITmnq8gPCBlaWtvXCA7Civlr5PmhI8gPCBndXVpXCA7CivkuJboqbEgPCBzZXdhXCA7CivkupznqK4gPCBhc2h1XCA7CivmmbTpm6ggPCBzZWl1XCA7CivlsI/lpJwgPCBzYXlvXCA7Civpo5vnsLcgPCBoaWVuXCA7Civpn7PpoK0gPCBvbmRvXCA7CivkvZnmioAgPCB5b2dpXCA7CivkuI3oqp4gPCBmdWdvXCA7CivkvZnmiYAgPCB5b3NvXCA7CivnjovogIUgPCBvdWphXCA7Civmmpfpg6ggPCBhbmJ1XCA7CivkvpvlpYkgPCBndWJ1XCA7CivlrrPmhI8gPCBnYWlpXCA7CivkuojnpLogPCB5b2ppXCA7CivlronmmJMgPCBhbicnaVwgOwor5LiL6KGGIDwgZ2VzdVwgOwor5LiK6KGjIDwgam91aVwgOwor5a2X5q+NIDwgamlib1wgOwor6IOM5oi4IDwgc2Vkb1wgOwor5a+E5bitIDwgeW9zZVwgOwor5L2z5a60IDwga2FlblwgOwor54qg6aObIDwgZ2loaVwgOwor5LiN6JmeIDwgZnVndVwgOwor6IWQ5YSSIDwgZnVqdVwgOwor57216KmIIDwgYmFyaVwgOwor5LuW5rS+IDwgdGFoYVwgOwor5a6J5omTIDwgYW5kYVwgOwor5pqX6K2cIDwgYW5wdVwgOwor5piv6Z2eIDwgemVoaVwgOwor5a625a62IDwgaWVpZVwgOwor5p645p2eIDwga3Vrb1wgOwor54y/6IeCIDwgZW5waVwgOwor5LqR54i+IDwgdW5qaVwgOwor5Lqc54KtIDwgYXRhblwgOwor5Lul5p2xIDwgaXRvdVwgOwor5a6J5bqnIDwgYW56YVwgOwor5peX6byTIDwga2lrb1wgOwor6Z6N6aasIDwgYW5iYVwgOwor5LiA6IeCIDwgaXBwaVwgOwor5pyo55OcIDwgYm9rZVwgOwor6IKp5be+IDwgaGlyZVwgOwor5pmC6YGLIDwgaml1blwgOwor6Z+76KqeIDwgaW5nb1wgOwor6Z+z6K2cIDwgb25wdVwgOwor5LiK57W1IDwgdXdhZVwgOwor5a2k5b2xIDwga29laVwgOwor5qGI5L6hIDwgYW5rYVwgOwor54yb6ICFIDwgbW9zYVwgOwor576955uuIDwgaGFtZVwgOwor6K236KyoIDwgZ29tdVwgOwor5LqM5qyhIDwgbmlqaVwgOwor5aaC6ZyyIDwgam9yb1wgOwor5LiN56mPIDwgZnVvblwgOwor5a6J5aC1IDwgYW5kb1wgOwor6aas5YW3IDwgYmFndVwgOwor5LuW5oSbIDwgdGFhaVwgOwor5a625Ye6IDwgaWVkZVwgOwor5a6J5Zu6IDwgYW5rb1wgOwor5a625YW3IDwga2FndVwgOwor5LiN56OoIDwgZnVtYVwgOwor5pel6ZaTIDwgaGlhaVwgOwor5LyO5aWzIDwgZ2lqb1wgOwor5a+E5LiOIDwga2l5b1wgOwor6Z2S6Z2SIDwgYW9hb1wgOwor5LqM5pyfIDwgbmlraVwgOwor5a6J5ZCmIDwgYW5waVwgOwor6IOh5LmxIDwgdXJvblwgOwor5LqI5pyfIDwgeW9raVwgOwor576p55CGIDwgZ2lyaVwgOwor6K2P6Kq5IDwga2loaVwgOwor5LiL55eiIDwgZ2VyaVwgOwor6LOt5aC0IDwgdG9iYVwgOwor6LOA5a60IDwgZ2FlblwgOwor5a6H5YaFIDwgdWRhaVwgOwor5Lul5aSWIDwgaWdhaVwgOwor5aSi6a2UIDwgbXVtYVwgOwor5p2l5oSPIDwgcmFpaVwgOwor5pqX56S6IDwgYW5qaVwgOwor5a6J5L+dIDwgYW5wb1wgOwor6Z2e6YGLIDwgaGl1blwgOwor6IG+5ZSWIDwgcm91YVwgOwor57695q+bIDwgdW1vdVwgOwor6Z+z57SgIDwgb25zb1wgOwor6LSI5L2NIDwgem91aVwgOwor5LuY5ZuzIDwgZnV6dVwgOwor5LqI5b6MIDwgeW9nb1wgOwor5LqM5bqmIDwgbmlkb1wgOwor576p5rCXIDwgZ2lraVwgOwor576p5q+NIDwgZ2lib1wgOwor6Kqe6Z+zIDwgZ29vblwgOwor5Lul5Y2XIDwgaW5hblwgOwor5aSc6ZmwIDwgeWFpblwgOwor5LuY5ZKMIDwgZnV3YVwgOwor546L5omLIDwgb3V0ZVwgOwor57695qC5IDwgaGFuZVwgOwor6Z2e6K2wIDwgaGlnaVwgOwor5Lul5YaFIDwgaW5haVwgOwor5LiA5rS+IDwgaXBwYVwgOwor5LiJ5q+bIDwgbWlrZVwgOwor6Zu36ZuoIDwgcmFpdVwgOwor6ZuR6a2aIDwgamFrb1wgOwor6K2356ymIDwgZ29mdVwgOwor6Zuy6ZynIDwgdW5tdVwgOwor6LOm5LiOIDwgZnV5b1wgOwor5aSn6YeOIDwgb29ub1wgOwor5LiA5q2pIDwgaXBwb1wgOwor5paO6YOoIDwgaW5iZVwgOwor5Luj5L2NIDwgZGFpaVwgOwor546L5bqnIDwgb3V6YVwgOwor5Luj5LujIDwgeW95b1wgOwor5LuW5LqLIDwgdGFqaVwgOwor54uS54uSIDwgaGloaVwgOwor54uQ54u4IDwga29yaVwgOwor6Zyy6KqeIDwgcm9nb1wgOwor5aSn6LevIDwgb29qaVwgOwor546L5a62IDwgb3VrZVwgOwor576p5o+0IDwgZ2llblwgOwor546L5aaDIDwgb3VoaVwgOwor546L5aWzIDwgb3Vqb1wgOwor6Z2S6JGJIDwgYW9iYVwgOwor6Z2S6I+cIDwgYW9uYVwgOwor5LqS5YqpIDwgZ29qb1wgOwor5LqU5YiGIDwgZ29idVwgOwor5LqL5YuZIDwgamltdVwgOwor5LiL5omLIDwgaGV0YVwgOwor5LiL5oi4IDwgZ2Vrb1wgOwor5p2x5LqeIDwgdG91YVwgOwor5pyo5ZywIDwga2lqaVwgOwor546L5ZyfIDwgb3Vkb1wgOwor576O5oqAIDwgYmlnaVwgOwor6Kqk6KiYIDwgZ29raVwgOwor6Z+z5rOiIDwgb25wYVwgOwor6Z+75q+NIDwgaW5ib1wgOwor5LqI5YKZIDwgeW9iaVwgOwor5LqM5L6hIDwgbmlrYVwgOwor5pa96IKlIDwgc2VoaVwgOwor5LqM5L2QIDwgbmlzYVwgOwor5pep56iyIDwgd2FzZVwgOwor54WZ6ZynIDwgZW5tdVwgOwor54WZ6ZuoIDwgZW4nJ3VcIDsKK+miqOWRgiA8IGZ1cm9cIDsKK+S5vuS9jSA8IGtlbmlcIDsKK+aTrOmfsyA8IGdpb25cIDsKK+e4gei1tyA8IGVuZ2lcIDsKK+S5neWIhiA8IGt1YnVcIDsKK+S4jeWuiSA8IGZ1YW5cIDsKK+eItuelliA8IGZ1c29cIDsKK+S4gOWutiA8IGlra2VcIDsKK+mZsOmYnCA8IGluZnVcIDsKK+aal+aEmiA8IGFuZ3VcIDsKK+S4juWkqiA8IHlvdGFcIDsKK+S4i+WlsyA8IGdlam9cIDsKK+eEoemnhCA8IG11ZGFcIDsKK+e4geiqniA8IGVuZ29cIDsKK+mbheiqniA8IGdhZ29cIDsKK+eNo+WMuyA8IGp1dWlcIDsKK+e+juWnqyA8IGJpa2lcIDsKK+WppuWlsyA8IGZ1am9cIDsKK+miqOS9jSA8IGZ1dWlcIDsKK+e+juWlsyA8IGJpam9cIDsKK+mdkuegpSA8IGFvdG9cIDsKK+eEoemfsyA8IG11b25cIDsKK+itsOahiCA8IGdpYW5cIDsKK+S4jeWbsyA8IGZ1dG9cIDsKK+mamOi3ryA8IGFpcm9cIDsKK+eMm+WogSA8IG1vdWlcIDsKK+Wkmue+qSA8IHRhZ2lcIDsKK+aatOWogSA8IGJvdWlcIDsKK+iqnue+qSA8IGdvZ2lcIDsKK+mZsOmDqCA8IGluYnVcIDsKK+Wls+eOiyA8IGpvb3VcIDsKK+mdnueQhiA8IGhpcmlcIDsKK+mbsuiEgiA8IGZ1a2VcIDsKK+e+qeWLmSA8IGdpbXVcIDsKK+mbouiLpiA8IHJpa3VcIDsKK+mdkueUsCA8IGFvdGFcIDsKK+S4jeWRsyA8IGZ1bWlcIDsKK+S4ieWRsyA8IHNhbWlcIDsKK+S4i+WPpSA8IGdla3VcIDsKK+e4t+e4tyA8IHJ1cnVcIDsKK+WjgeidqCA8IGRhbmlcIDsKK+e+juWRsyA8IGJpbWlcIDsKK+S4i+WNkSA8IGdlYmlcIDsKK+itt+aMgSA8IGdvamlcIDsKK+S4gOWPpSA8IGlra3VcIDsKK+eEoemJmyA8IG11ZW5cIDsKK+e+juWMliA8IGJpa2FcIDsKK+S4jeWCmSA8IGZ1YmlcIDsKK+eKoOaJkyA8IGdpZGFcIDsKK+WkluenkSA8IGdla2FcIDsKK+Wkp+ebriA8IG9vbWVcIDsKK+e4geiAhSA8IGVuamFcIDsKK+aXpeatqSA8IGhpYnVcIDsKK+mfs+WtlyA8IG9uamlcIDsKK+mZouitsCA8IGluZ2lcIDsKK+S4gOS9kCA8IGlzc2FcIDsKK+eItuavjSA8IGZ1Ym9cIDsKK+mdnuavgCA8IGhpa2lcIDsKK+aZguW3riA8IGppc2FcIDsKK+e0sOmbqCA8IHNhaXVcIDsKK+mciueVsCA8IHJlaWlcIDsKK+WfuumfsyA8IGtpb25cIDsKK+e3r+e3miA8IGlzZW5cIDsKK+maoOiAhSA8IGluamFcIDsKK+mWu+mtlCA8IGVubWFcIDsKK+aXpeaXpSA8IGhpYmlcIDsKK+aVsOePoCA8IGp1enVcIDsKK+mZsOiQjiA8IGluJydpXCA7Civpn7PlkJAgPCBvbnRvXCA7Civpn7Plj4kgPCBvbnNhXCA7CivpnZLmnKggPCBhb2tpXCA7CivlqIHljrMgPCBpZ2VuXCA7CivorJ3mhI8gPCBzaGFpXCA7CivntrrnvoUgPCBraXJhXCA7Civln7rpg6ggPCBraWJ1XCA7CivlpoLmhI8gPCBueW9pXCA7Civlpb3mgqogPCBrb3VvXCA7Civpn7PkvqEgPCBvbmthXCA7Civml6LlvoAgPCBraW91XCA7CivlpaXmhI8gPCBva3VpXCA7CivlopPnopEgPCBib2hpXCA7Civpm6jmsLQgPCB1c3VpXCA7CivlpJzmmpcgPCB5YWFuXCA7CivmmYLkuosgPCBqaWppXCA7Civlp5Tku7sgPCBpbmluXCA7CivlpbTlqaIgPCBudWhpXCA7CivlpKfmiYsgPCBvb2RlXCA7CivpnLLluqcgPCByb3phXCA7CivpmbDnlLsgPCBpbmdhXCA7Civlo4rmrbsgPCBlc2hpXCA7CivnhKHnoo0gPCBtdWdlXCA7CivoqZDmrLogPCBzYWdpXCA7CivpnZLlnLAgPCBhb2ppXCA7CivpnZLlm7MgPCBhb3p1XCA7Civnspfph44gPCBzb3lhXCA7CivlpKflsYsgPCBvb3lhXCA7CivoqqTlt64gPCBnb3NhXCA7CivnhKHnkIYgPCBtdXJpXCA7CivlpKLlr5AgPCBtdWJpXCA7CivlpJrlspAgPCB0YWtpXCA7CivnhZnms6IgPCBlbnBhXCA7Civml6fkuosgPCBrdWppXCA7Civoqp7lsL4gPCBnb2JpXCA7CivpnLLllrYgPCByb2VpXCA7CivpmbDmsJcgPCBpbmtpXCA7CivlpJrlpJogPCB0YXRhXCA7CivlnJ/plpMgPCBkb21hXCA7Civmjqrovp4gPCBzb2ppXCA7CivnhKHmtL4gPCBtdWhhXCA7Civmv77pgY4gPCByb2thXCA7CivpvbEgPCBzZWt1XCA7Civpm6jlpKkgPCB1dGVuXCA7Civpm6jlo7AgPCB1c2VpXCA7CivpvI8gPCBiZWtpXCA7CivnhKHmr5QgPCBtdWhpXCA7Civopovnm64gPCBtaW1lXCA7Civpur8gPCBtYXJvXCA7Civpm6jln58gPCB1aWtpXCA7CivlpJzljYogPCB5b3dhXCA7CivptqogPCBrZWtpXCA7CivnhKHmqZ8gPCBtdWtpXCA7CivptKggPCBrYW1vXCA7CivpmqDlvq4gPCBpbmJpXCA7Civoo5zoqJggPCBob2tpXCA7Civpmo/mhI8gPCB6dWlpXCA7CivpsacgPCBoYW1vXCA7CivpsZogPCBraXN1XCA7CivpsKQgPCBidXJpXCA7CivpsJkgPCBoYXlhXCA7CivpsJAgPCB3YW5pXCA7CivlpJzlhbcgPCB5YWd1XCA7Civpr5YgPCBzYWJhXCA7Civpr5QgPCBib3JhXCA7Civpr4ogPCBoYXplXCA7CivprrQgPCBnb3JpXCA7CivprrIgPCBtYXRlXCA7CivprqsgPCBzYW1lXCA7CivprpIgPCBmdW5hXCA7CivprbkgPCB0b2RvXCA7Civpqq0gPCBoYWdpXCA7CivpqokgPCBoeXV1XCA7Civnspfoj5MgPCBzb2thXCA7Civngavnrq0gPCBoaXlhXCA7CivntbXmnKwgPCBlaG9uXCA7Civpn64gPCBuaXJhXCA7CivpnqAgPCBtYXJpXCA7CivlnJ/oqp4gPCBkb2dvXCA7CivpnYQgPCBtb3lhXCA7CivlnLDooaMgPCBjaGlpXCA7Civpm4flk6EgPCBrb2luXCA7Civpm4XlkbMgPCBnYW1pXCA7CivnsL/oqJggPCBib2tpXCA7CivplpYgPCB5dXJ1XCA7CivnhKHmiYsgPCBtdXRlXCA7CivnhKHmiJEgPCBtdWdhXCA7CivpkZMgPCB5YXJpXCA7CivpkYMgPCB0eW91XCA7CivpmL/miL8gPCBhaG91XCA7CivpjawgPCBrdXdhXCA7Civoo5zogqUgPCBob2hpXCA7Civpib4gPCBob2tvXCA7Civopo/mqKEgPCBraWJvXCA7Civooojoo58gPCBrZXNhXCA7CivphJkgPCBoaW5hXCA7CivloZfluIMgPCB0b2Z1XCA7CivpgKkgPCBrYW11XCA7CivpgKcgPCBzYWtvXCA7Civov40gPCBjaHVuXCA7CivovYwgPCBzb3JpXCA7CivpmaTlpJwgPCBqb3lhXCA7CivngavngokgPCBrYXJvXCA7Civos60gPCBrYWtlXCA7Civmirzpn7sgPCBvdWluXCA7Civmk6zlj6QgPCBnaWtvXCA7CivosZogPCBidXRhXCA7CivnhKHlnqIgPCBtdWt1XCA7CivnhKHlnLAgPCBtdWppXCA7CivopZ4gPCBoaWRhXCA7CivntKDmiYsgPCBzdWRlXCA7CivopLEgPCBrYWllXCA7Civoo5sgPCB5b3V1XCA7CivoorAgPCBob3JvXCA7Civon7kgPCBrYW5pXCA7CivnhKHlkbMgPCBtdW1pXCA7CivomosgPCBidXlvXCA7CivomZkgPCBodWt1XCA7Civol6ogPCB5YWJ1XCA7CivolaogPCBrYWJ1XCA7CivolIcgPCBraWtlXCA7Civok7wgPCB0YWRlXCA7Civok5EgPCBtaW5vXCA7CivokbEgPCBuZWdpXCA7CivpmaLkuLsgPCBpbmp1XCA7CivloILlrocgPCBkb3V1XCA7CivpmL/lhYQgPCBha2VpXCA7Civoi4YgPCBzdXNhXCA7CivoirkgPCBzZXJpXCA7CivnhKHkvqEgPCBtdWthXCA7CivoipIgPCBub2dpXCA7CivloLTlkIggPCBiYWFpXCA7CivntbXlg48gPCBlem91XCA7CivnhKHkuowgPCBtdW5pXCA7CivohoMgPCBvdHN1XCA7CivohJsgPCBzdW5lXCA7CivooaPntIsgPCBlbW9uXCA7CivntI3lsYsgPCBuYXlhXCA7CivopovloLQgPCBtaWJhXCA7CivnrJHpoZQgPCBlZ2FvXCA7CivnvaAgPCB3YW5hXCA7Civmj7bmj4QgPCB5YXl1XCA7CivntpsgPCBrYXNlXCA7CivnspfmnLYgPCBzb2RhXCA7Civns6AgPCBudWthXCA7Civns4ogPCBub3JpXCA7CivmiYvplpMgPCB0ZW1hXCA7Civlm7PnlLsgPCB6dWdhXCA7CivnsoIgPCBrdW1lXCA7CivnsJcgPCB5YW5hXCA7Civnro0gPCB0YWdhXCA7CivnroYgPCBoZXJhXCA7CivnrIogPCB6YXJ1XCA7CivngavlsYsgPCBob3lhXCA7CivngKzmiLggPCBzZXRvXCA7Civonrvom4QgPCBrZXJhXCA7CivnmKQgPCBrb2J1XCA7CivplpPlpKsgPCBtYWJ1XCA7CivnlJUgPCBtaWthXCA7CivnspfluIMgPCBzb2Z1XCA7CivnkZUgPCBraXp1XCA7CivnjbYgPCBueW91XCA7Civom5npu70gPCBhYm91XCA7Civmjo/mkbggPCBzdXJpXCA7Civnh7ggPCBqaXl1XCA7Civoo7jlqaYgPCByYWZ1XCA7Civlm7PmoYggPCB6dWFuXCA7CivlnJ/miYsgPCBkb3RlXCA7Civmu5MgPCBrYXN1XCA7CivmuKnpm4UgPCBvbmdhXCA7Civmj7TliqkgPCBlbmpvXCA7CivpvZ/pvawgPCBzb2dvXCA7CivmqbMgPCBudWRlXCA7CivmqbIgPCB6dXNhXCA7Civlm5vmlrkgPCB5b21vXCA7CivmqL0gPCB0YXJ1XCA7CivmqLogPCBrYWJhXCA7CivmpYUgPCBoeWt1XCA7CivmpKggPCB0YWZ1XCA7CivmpKUgPCBuYWdpXCA7CivmoIIgPCB0b2dhXCA7CivmnaMgPCBzb21hXCA7Civlm73lupwgPCBrb2Z1XCA7CivmjbvlrZAgPCBuZWppXCA7CivmiYvnvr0gPCB0ZWJhXCA7Civmt6vpm6ggPCBpbicndVwgOwor6KOc5YqpIDwgaG9qb1wgOwor5rmv6JGJIDwgeXViYVwgOwor5Zyf5ZmoIDwgZG9raVwgOwor5oyJ5pGpIDwgYW5tYVwgOwor5omoIDwgc2F0ZVwgOwor5o6I5Y+XIDwganVqdVwgOwor5omT56C0IDwgZGFoYVwgOwor5ou/5o2VIDwgZGFob1wgOwor5Zyf5YyqIDwgZG9oaVwgOwor5b22IDwga2lodVwgOwor5by2IDwgZ3lhdVwgOwor5byXIDwgZG9ydVwgOwor5byTIDwgeXVtaVwgOwor5bunIDwgc2hhdVwgOwor5bikIDwgZ2V5b1wgOwor5biiIDwga2FodVwgOwor5bekIDwgcmVodVwgOwor5bavIDwgc2hpdVwgOwor5bWAIDwgY2hpdVwgOwor5Zyo5L2NIDwgemFpaVwgOwor5bSoIDwgc2VodVwgOwor5bOFIDwga3VyYVwgOwor5rWu5aG15a2QIDwgdW5rYVwgOwor5bG2IDwgbmF0YVwgOwor5oSb6aasIDwgYWliYVwgOwor5a6oIDwgdGV3YVwgOwor5o6I5LiOIDwganV5b1wgOwor5Zub5ZuyIDwgc2hpaVwgOwor5Zu65YyWIDwga29rYVwgOwor5oSb6aOyIDwgYWlpblwgOwor5ay8IDwgcml3YVwgOwor5ZOA6Z+zIDwgYWlvblwgOwor5ay2IDwga2FrYVwgOwor5aqDIDwganl1dVwgOwor5Zue5ZCRIDwgZWtvdVwgOwor5oiv55S7IDwgZ2lnYVwgOwor5aG+IDwganVrdVwgOwor5Z+WIDwgZ29taVwgOwor5oWw6KydIDwgaXNoYVwgOwor5Zy+IDwgZ3l1dVwgOwor5Zi4IDwgc2F6b1wgOwor5ZiBIDwgc2FodVwgOwor5Ze9IDwgdWdhaVwgOwor5ZaiIDwgdGVodVwgOwor5ZWmIDwgcmFodVwgOwor5ZKM6Z+zIDwgd2FvblwgOwor5ZK2IDwga3V1aVwgOwor5oq85b+NIDwgb3NzdVwgOwor56e76LuiIDwgaXRlblwgOwor6YqF6ZG8IDwgZG9yYVwgOwor5YqLIDwgc3lvdVwgOwor5Ye4IDwgZGVrb1wgOwor5oSb6LydIDwgYWlraVwgOwor5rmv54WuIDwgeXVuaVwgOwor5oKq6ay8IDwgYWtraVwgOwor5L+HIDwga3lhdVwgOwor5L6gIDwga3lhblwgOwor5L2XIDwgd2FiaVwgOwor5LqAIDwga2FtZVwgOwor5LmfIDwgbmFyaVwgOwor5oSb6K23IDwgYWlnb1wgOwor5ZOA6KmxIDwgYWl3YVwgOwor5ZOA6Ki0IDwgYWlzb1wgOwor5ZGJ6aCIIDwgZ29zdVwgOwor56eY6KmxIDwgaGl3YVwgOwor5rmv5rCXIDwgeXVnZVwgOwor6buE6LqrIDwga2ltaVwgOwor5ZKM6K2wIDwgd2FnaVwgOwor5ZKM6KqeIDwgd2Fnb1wgOwor5ZCQ6ZyyIDwgdG9yb1wgOwor5oGp6aGnIDwgb25rb1wgOwor5oG16ZuoIDwga2VpdVwgOwor5rW36IqLIDwga2FpdVwgOwor5rWE6KGjIDwgam91ZVwgOwor6JWO6bqmIDwgc29iYVwgOwor6bia6bWhIDwgb3VtdVwgOwor5ZCI6ZaTIDwgYWltYVwgOwor5Y+z6Z2iIDwgdW1lblwgOwor6by756WWIDwgYmlzb1wgOwor5oKq6LKoIDwgYWtrYVwgOwor5rih5qynIDwgdG9vdVwgOwor5Y+k6Z+zIDwga29vblwgOwor5ZiU5ZCQIDwgb3V0b1wgOwor5ZKM6IuxIDwgd2FlaVwgOwor5Y+k6ZuFIDwga29nYVwgOwor5ruL5ZGzIDwgamltaVwgOwor5ZSW54S2IDwgYXplblwgOwor6JiH6IqzIDwgc3VvdVwgOwor6JeN6KS4IDwgYm9yb1wgOwor5oKq6KGjIDwgYWt1aVwgOwor5rmv5bGLIDwgeXV5YVwgOwor5ZS+5qOEIDwgZGFraVwgOwor5Y+z6L66IDwgdWhlblwgOwor5Zac5a+/IDwga2lqdVwgOwor5rmv5aWzIDwgeXVuYVwgOwor5Y6t6ZuiIDwgb25yaVwgOwor6by754KOIDwgYmllblwgOwor6YeO6L66IDwgbm9iZVwgOwor5oGp6Kq8IDwgb25naVwgOwor6YeO6LevIDwgbm9qaVwgOwor5ZGq56ymIDwganVmdVwgOwor5Y+k6KqeIDwga29nb1wgOwor5Za25YipIDwgZWlyaVwgOwor5b+c6ZyAIDwgb3VqdVwgOwor5oiR5YipIDwgZ2FyaVwgOwor56e75rCRIDwgaW1pblwgOwor5ZaH5ZibIDwgcmFtYVwgOwor5oaO5oKqIDwgem91b1wgOwor5Y+z6JGJIDwgdXlvdVwgOwor5ZOA5q2MIDwgYWlrYVwgOwor5Y+X6JiKIDwganV1blwgOwor5b6h6aGUIDwgb2thb1wgOwor6bm157C/IDwgcm9ib1wgOwor5Y2B6ZuoIDwganV1dVwgOwor5Y+z6ISzIDwgdW5vdVwgOwor5rip5ZKMIDwgb253YVwgOwor5rC46YGgIDwgZWllblwgOwor6YeO6ImvIDwgbm9yYVwgOwor5rW35p2+IDwgbWlydVwgOwor5ZKM5q2MIDwgd2FrYVwgOwor5rGa6KGMIDwgb2tvdVwgOwor56C06aKoIDwgaGFmdVwgOwor5oSb5pKrIDwgYWlidVwgOwor6buE5rOJIDwgeW9taVwgOwor5b+c6Ki0IDwgb3Vzb1wgOwor5ZOA5oWVIDwgYWlib1wgOwor5ZCI552AIDwgYWlnaVwgOwor5b6h6LqrIDwgb25taVwgOwor5oWw5ZWPIDwgaW1vblwgOwor5Yy66LK7IDwga3VoaVwgOwor5ZGG5rCXIDwgYWtrZVwgOwor6YKq6a2UIDwgamFtYVwgOwor6YO96YSZIDwgdG9oaVwgOwor56C06YKqIDwgaGFqYVwgOwor5b6A6LevIDwgb3Vyb1wgOwor6YKq6aObIDwgamFoaVwgOwor56WW5q+NIDwgc29ib1wgOwor5rS+5omLIDwgaGFkZVwgOwor5byl6ZmAIDwgbWlkYVwgOwor6YeO54y/IDwgeWFlblwgOwor5Y+X55CGIDwganVyaVwgOwor5ZG85b+cIDwga29vdVwgOwor56eY5aWlIDwgaGlvdVwgOwor5rGa56miIDwgb3dhaVwgOwor5oSa5ZuzIDwgZ3V6dVwgOwor5rWB5biDIDwgcnVmdVwgOwor5q+N6KqeIDwgYm9nb1wgOwor6YeO54GrIDwgbm9iaVwgOwor5ZKM5a2XIDwgd2FqaVwgOwor5ZCI5q2TIDwgbmVtdVwgOwor5b6h6Iy2IDwgb2NoYVwgOwor6bq75biDIDwgbWFmdVwgOwor5oKq5oSfIDwgb2thblwgOwor56e75L2PIDwgaWp1dVwgOwor6Jma5L2NIDwga3lvaVwgOwor5oG15pa5IDwgZWhvdVwgOwor5oSb5YWQIDwgYWlqaVwgOwor5rKZ5rGwIDwgc2F0YVwgOwor5q2m6YGLIDwgYnV1blwgOwor5b6h57C+IDwgbWlzdVwgOwor5ZGz5ZmMIDwgbWlzb1wgOwor5Y+z5pa5IDwgdWhvdVwgOwor5Lqc57Sw5LqcIDwgYWppYVwgOwor5buI6ZaAIDwgYW1vaVwgOwor5rGa54K5IDwgb3RlblwgOwor5q+b5769IDwga2ViYVwgOwor6YeO5pquIDwgeWFib1wgOwor5ZCI5oSPIDwgZ291aVwgOwor5b6h56S8IDwgb3JlaVwgOwor5rOi5biDIDwgaGFidVwgOwor5b6h56KXIDwgb3dhblwgOwor6YG66LSIIDwgaXpvdVwgOwor5rGa5rOlIDwgb2RlaVwgOwor55+z6JO0IDwgYW9zYVwgOwor5b6h55uGIDwgb2JvblwgOwor5rGa5rC0IDwgb3N1aVwgOwor5Y2X54ShIDwgbmFtdVwgOwor6L+96aKoIDwgb2l0ZVwgOwor56CS57SgIDwgaGlzb1wgOwor5oCq5oiRIDwga2VnYVwgOwor5Y+z5bK4IDwgdWdhblwgOwor5rGa5p+TIDwgb3NlblwgOwor5oGp5aiBIDwgb24nJ2lcIDsKK+iNt+mnhCA8IG5pZGFcIDsKK+WQiOWbsyA8IGFpenVcIDsKK+mBuuiRlyA8IGljaG9cIDsKK+W5vumHjSA8IGlrdWVcIDsKK+axmuaQjSA8IG9zb25cIDsKK+WQj+WToSA8IHJpaW5cIDsKK+WOreaCqiA8IGVuJydvXCA7CivljrvlubQgPCBrb3pvXCA7CivlkI3ljLsgPCBtZWlpXCA7CivlkI/li5kgPCByaW11XCA7Civov7cgPCBtZWlcIDsKK+W/tSA8IG5lblwgOwor55+tIDwgdGFuXCA7Civlv6sgPCBrYWlcIDsKK+i/pSA8IGtlaVwgOwor55+lIDwgY2hpXCA7Civnn5wgPCBraW5cIDsKK+W/mSA8IGJvdVwgOwor6L+UIDwgaGVuXCA7Civov44gPCBnZWlcIDsKK+W/jSA8IG5pblwgOwor6L+FIDwgamluXCA7Civovr8gPCB0ZW5cIDsKK+eeuyA8IHNlblwgOwor6L6yIDwgbm91XCA7Civovq8gPCBiZW5cIDsKK+W+qiA8IGp1blwgOwor556gIDwgZG91XCA7Civlvp4gPCBqdXVcIDsKK+W+hSA8IHRhaVwgOwor5b2pIDwgc2FpXCA7CivnnaEgPCBzdWlcIDsKK+i9nyA8IGdvdVwgOwor5b2TIDwgdG91XCA7CivlvYggPCBkYW5cIDsKK+ecqSA8IGdlblwgOwor55ygIDwgbWluXCA7CivlvJ8gPCB0ZWlcIDsKK+W8myA8IHNoaVwgOwor5byYIDwga291XCA7CivnnIwgPCBrZW5cIDsKK+eciyA8IGthblwgOwor5byEIDwgcm91XCA7CivnnIEgPCBzZWlcIDsKK+ebuCA8IHNvdVwgOwor5buiIDwgaGFpXCA7Civou40gPCBndW5cIDsKK+W7iSA8IHJlblwgOwor55uGIDwgYm9uXCA7CivlurggPCB5b3VcIDsKK+easCA8IGhvdVwgOwor6LqHIDwgY2hvXCA7Civlub4gPCBpa3VcIDsKK+W5vSA8IHl1dVwgOwor55mMIDwgZ2FuXCA7Civot6EgPCBhdG9cIDsKK+i3nyA8IGtvblwgOwor6LedIDwga3lvXCA7CivnloogPCBqb3VcIDsKK+eVqiA8IGJhblwgOwor55WmIDwgYXplXCA7CivnlZQgPCBoYW5cIDsKK+eUoyA8IHNhblwgOwor6LSFIDwgemVpXCA7Civnk7YgPCBiaW5cIDsKK+izoyA8IGJhaVwgOwor55OcIDwgdXJpXCA7CivlsqkgPCBpd2FcIDsKK+iyoSA8IHphaVwgOwor6LGhIDwgem91XCA7CivlsY8gPCBoZWlcIDsKK+WwmiA8IG5hb1wgOwor5bCEIDwgc2hhXCA7CivlsIEgPCBmdXVcIDsKK+WvuCA8IHN1blwgOwor5a61IDwgeW9pXCA7CivlrrMgPCBnYWlcIDsKK+WumyA8IGF0ZVwgOwor5a2YIDwgc29uXCA7CivlrKogPCBoaW5cIDsKK+iruCA8IHNob1wgOwor6KuWIDwgcm9uXCA7Civlq4wgPCBpeWFcIDsKK+eKrCA8IGludVwgOwor6KqEIDwgcnVpXCA7CivniaEgPCBvc3VcIDsKK+eJjCA8IHBhaVwgOwor54ibIDwgcmFuXCA7Civnh7sgPCBrdW5cIDsKK+WniSA8IGFuZVwgOwor6KaqIDwgb3lhXCA7Civlpa4gPCBmdW5cIDsKK+WlpSA8IG9rdVwgOwor6KWfIDwgZXJpXCA7CivnhLYgPCB6ZW5cIDsKK+WjsCA8IGtvZVwgOwor6KOPIDwgdXJhXCA7CivoooIgPCBiZWlcIDsKK+ifuyA8IGFyaVwgOwor5r+YIDwgbmVpXCA7Civln4sgPCBtYWlcIDsKK+WeoiA8IGFrYVwgOwor6J2/IDwgaGFlXCA7CivpvaEgPCByZWlcIDsKK+a7vyA8IG1hblwgOwor6JubIDwgc2h1XCA7Civlm5sgPCB5b25cIDsKK+m6uyA8IGFzYVwgOwor5rm+IDwgd2FuXCA7CivomZwgPCByeW9cIDsKK+a4piA8IHV6dVwgOwor5ZiYIDwgdXNvXCA7CivomIIgPCB6dWlcIDsKK+a3iyA8IHJpblwgOwor5rayIDwgZWtpXCA7CivllrAgPCBrdXVcIDsKK+a1tyA8IHVtaVwgOwor5ZWPIDwgbW9uXCA7Civms6EgPCBhd2FcIDsKK+iSmSA8IG1vdVwgOwor5rKWIDwgb2tpXCA7CivmsowgPCB0b25cIDsKK+WRsyA8IGFqaVwgOwor5rGgIDwgaWtlXCA7CivmsZcgPCBhc2VcIDsKK+WRkSA8IGRvblwgOwor5rCPIDwgdWppXCA7Civlj7AgPCBkYWlcIDsKK+aumCA8IHphblwgOwor5q2MIDwgdXRhXCA7CivljYggPCB1bWFcIDsKK+WNgSA8IHRvb1wgOwor6ay8IDwgb25pXCA7CivojLYgPCBjaGFcIDsKK+WLpCA8IGdvblwgOwor6IuXIDwgbmFlXCA7CivoibIgPCBpcm9cIDsKK+WJjSA8IG1hZVwgOwor5YiGIDwgYnVuXCA7Civoh7wgPCB1c3VcIDsKK+mmrSA8IGd5b1wgOwor6IWVIDwgdWRlXCA7CivlhY0gPCBtZW5cIDsKK+WFhCA8IGFuaVwgOwor6aO0IDwgYW1lXCA7Civpo5wgPCBob25cIDsKK+WCsyA8IGRlblwgOwor5qKFIDwgdW1lXCA7CivmobYgPCBva2VcIDsKK+WBtiA8IGd1dVwgOwor6aGUIDwga2FvXCA7CivpoY4gPCBhZ29cIDsKK+mgvCA8IHJhaVwgOwor5L+6IDwgb3JlXCA7Civmnp0gPCBlZGFcIDsKK+advyA8IGl0YVwgOwor5L2VIDwgbmFuXCA7CivpmoggPCB3YWlcIDsKK+e5lCA8IG9yaVwgOwor5LiYIDwgb2thXCA7CivntrIgPCBhbWlcIDsKK+mVtyA8IG9zYVwgOwor5pW4IDwgc3V1XCA7CivmlYUgPCB5dWVcIDsKK+ezuCA8IGl0b1wgOwor57KXIDwgYXJhXCA7Civmj6EgPCBha3VcIDsKK+esmyA8IGZ1ZVwgOwor56u/IDwgc2FvXCA7CivnqLIgPCBpbmVcIDsKK+aIliA8IGFydVwgOwor6YeNIDwgb21vXCA7Civnp4sgPCBha2lcIDsKK+emsCA8IGRlaVwgOwor5oGvIDwgaWtpXCA7CivmgYsgPCBrb2lcIDsKK+i/gumBoCA8IHVlblwgOwor5b6u5oSPIDwgYmlpXCA7Civlj5nkvY0gPCBqb2lcIDsKK+i/gui3ryA8IHVyb1wgOwor5b6X5omLIDwgZXRlXCA7CivmsJflrocgPCBraXVcIDsKK+WMu+WutiA8IGlrYVwgOwor5YWr6YeNIDwgeWFlXCA7CivljLvlk6EgPCBpaW5cIDsKK+WMu+WLmSA8IGltdVwgOwor5Yy75LqLIDwgaWppXCA7CivpgbrmhJsgPCBpYWlcIDsKK+mBuuW9sSA8IGllaVwgOwor6YOo5L2NIDwgYnVpXCA7CivpgbrlraQgPCBpa29cIDsKK+eVsOmfsyA8IGlvblwgOwor5biM5pyJIDwga2V1XCA7Civov4LmhJogPCB1Z3VcIDsKK+asp+S6nCA8IG91YVwgOwor5qyh5L2NIDwgamlpXCA7CivmrKHkupwgPCBqaWFcIDsKK+ecieWuhyA8IGJpdVwgOwor55Ww6K2wIDwgaWdpXCA7CivlsYXplpMgPCBpbWFcIDsKK+W4sOS+nSA8IGtpZVwgOwor6aaZ6a2aIDwgYXl1XCA7CivmqZ/kvY0gPCBraWlcIDsKK+S8vOmdniA8IGVzZVwgOwor5bC+5769IDwgb2hhXCA7CivnlbDniLYgPCBpZnVcIDsKK+S8mumZsCA8IGVpblwgOwor55Ww5q+NIDwgaWJvXCA7CivkupzpursgPCBhbWFcIDsKK+S7pemBoCA8IGllblwgOwor5LyK6KqeIDwgaWdvXCA7CivkupzpiZsgPCBhZW5cIDsKK+WwvuaguSA8IG9uZVwgOwor5qSF5a2QIDwgaXN1XCA7Civkvp3mgJkgPCBla29cIDsKK+S6keeCuiA8IHVuaVwgOwor5Lqc5qynIDwgYW91XCA7Civku6XlvoAgPCBpb3VcIDsKK+acieeEoSA8IHVtdVwgOwor5Lya5Y6tIDwgZWVuXCA7CivmoITkvY0gPCBlaWlcIDsKK+S6leaIuCA8IGlkb1wgOwor6Z2e6YGVIDwgaGlpXCA7CivlpJzpm6ggPCB5YXVcIDsKK+WkmumbqCA8IHRhdVwgOwor5LqM5bCJIDwgbmlpXCA7CivkuI3mhI8gPCBmdWlcIDsKK+WogeatpiA8IGlidVwgOwor5pyJ5Y2mIDwgdWtlXCA7CivnjovkvY0gPCBvdWlcIDsKK+e+heWuhyA8IHJhb1wgOwor57695YyWIDwgdWthXCA7CivntbXppqwgPCBlbWFcIDsKK+WjiueWvSA8IGVzb1wgOwor6Zuo5rCXIDwgdWtpXCA7Civoqp7mhI8gPCBnb2lcIDsKK+mbqOW+jCA8IHVnb1wgOwor54Sh54K6IDwgbXVpXCA7Civoo5zpgbogPCBob2lcIDsKK+m+kiA8IHJ5dVwgOwor6bu2IDwgYXphXCA7CivpmL/mr5QgPCBhYmlcIDsKK+mzsCA8IG5pb1wgOwor6bCVIDwgZWJpXCA7CivpsJMgPCBlcmFcIDsKK+mkjCA8IGVzYVwgOwor6Y6KIDwgaGF1XCA7CivpjZEgPCBodXVcIDsKK+mMtSA8IG5pZVwgOwor6YiWIDwgaHVuXCA7CivphLwgPCBzYWJcIDsKK+mEniA8IGdpblwgOwor6YK+IDwgY2h1XCA7CivovZEgPCByYXVcIDsKK+iknCA8IGVuYVwgOwor57W15ZuzIDwgZXp1XCA7CivopovlvpcgPCBtaWVcIDsKK+iZuyA8IGFidVwgOwor6Zi/5ZC9IDwgYXVuXCA7CivokbUgPCBhb2lcIDsKK+iNuyA8IG9naVwgOwor6IqLIDwgaW1vXCA7Civoh5EgPCBkYXVcIDsKK+a7i+mbqCA8IGppdVwgOwor56iXIDwgaGllXCA7Civnk7QgPCByaWlcIDsKK+e0huS9mSA8IHV5b1wgOwor5qiLIDwgdG9pXCA7Civmo7AgPCBzb2lcIDsKK+adrSA8IGt1aVwgOwor5panIDwgb25vXCA7CivmhLAgPCBrYXVcIDsKK+W9ryA8IGhldVwgOwor5byoIDwgc2V1XCA7Civlu4cgPCByaXVcIDsKK+W7hSA8IGFodVwgOwor5bqjIDwgdGV1XCA7CivltoYgPCBzYXVcIDsKK+W1uiA8IHJldVwgOwor5bW2IDwgdGFvXCA7Civmtbfpq6ogPCBvZ29cIDsKK+WsiCA8IGRldVwgOwor5au5IDwgYmF1XCA7Civlq5kgPCBzZWJcIDsKK+aEj+mmrCA8IGliYVwgOwor5aWhIDwgZ2F1XCA7CivlnpogPCBnZXVcIDsKK+WcpiA8IGlyaVwgOwor5Zq3IDwgamF1XCA7Civlm7PkvJogPCB6dWVcIDsKK+WYqyA8IGRhbVwgOwor5YOgIDwgZmFuXCA7CivkvYIgPCB5YWlcIDsKK+aCqumcsiA8IG9yb1wgOwor6J2m5aS3IDwgZXpvXCA7CivnqaLlpJogPCBldGFcIDsKK+epouWcnyA8IGVkb1wgOwor5oWw5a6JIDwgaWFuXCA7CivljYHph40gPCB0b2VcIDsKK+aEmuaEjyA8IGd1aVwgOwor5Y+z5rS+IDwgdWhhXCA7CivmhI/lkbMgPCBpbWlcIDsKK+iQjumdoSA8IGliaVwgOwor6L+mIDwga2FcIDsKK+efoiA8IHlhXCA7Civlv5wgPCBvdVwgOwor5b+MIDwga2lcIDsKK+i+rSA8IGppXCA7Civlvq4gPCBiaVwgOwor5b6hIDwgZ29cIDsKK+W+kiA8IHRvXCA7CivlvpAgPCBqb1wgOwor55y8IDwgbWVcIDsKK+i8qiA8IHdhXCA7CivlvKUgPCBtaVwgOwor55yfIDwgbWFcIDsKK+W8lSA8IGluXCA7CivlvJAgPCBuaVwgOwor5bu2IDwgZW5cIDsKK+W6qyA8IGtvXCA7CivluqcgPCB6YVwgOwor5bqmIDwgZG9cIDsKK+W6nCA8IGZ1XCA7CivluocgPCBoaVwgOwor6LiwIDwgeXVcIDsKK+i3ryA8IHJvXCA7Civlt64gPCBzYVwgOwor5bejIDwgc3VcIDsKK+eXmyA8IHRzXCA7CivnlpEgPCBnaVwgOwor55aOIDwgc29cIDsKK+eUsCA8IHRhXCA7CivnlKUgPCBvaVwgOwor6LGrIDwgeW9cIDsKK+WxpSA8IHJpXCA7Civlr50gPCBuZVwgOwor5a62IDwga2VcIDsKK+ionSA8IGdhXCA7Civnh58gPCBlaVwgOwor6KWmIDwganVcIDsKK+WliCA8IG5hXCA7CivnhKEgPCBtdVwgOwor6KSeIDwgb25cIDsKK+ikkyA8IGhvXCA7Civoo7MgPCBtb1wgOwor5aKuIDwgZGFcIDsKK+WgtCA8IGJhXCA7CivngKwgPCBzZVwgOwor6J66IDwgcmFcIDsKK+WbsyA8IHp1XCA7Civll58gPCBhYVwgOwor6JeNIDwgYWlcIDsKK+m1oSA8IGJ1XCA7CivmtL4gPCBoYVwgOwor6I6rIDwgYm9cIDsKK+iLpiA8IGt1XCA7Civlh7ogPCBkZVwgOwor5YW3IDwgZ3VcIDsKK+ahiCA8IGFuXCA7CivpnZIgPCBhb1wgOwor5LqRIDwgdW5cIDsKK+S5gyA8IG5vXCA7CivmmK8gPCB6ZVwgOwor5omLIDwgdGVcIDsKK+aDuSA8IGphXCA7CivkvIrkupUgPCBpaVwgOwor6ZeeIDwga25cIDsKK+mIhyA8IGh1XCA7CivoroQgPCBydVwgOwor5pu9IDwgem9cIDsKK+aQmSA8IG51XCA7Civluq4gPCBpdVwgOwor5ba0IDwgYXVcIDsKK+WyhiA8IGV1XCA7CivlsYEgPCBoZVwgOwor5bi3IDwgaVwgOwor5bC+IDwgb1wgOwor5a6HIDwgdVwgOwor5rGfIDwgZVwgOwor5LqeIDwgYVwgOwor5rOV5a2m57O75aSn5a2m6Zmi5YWx6YCa5YWl5a2m6Kmm6aiTID4gaG91Z2FrdWtlaWRhaWdha3Vpbmt5b3V0c3V1bnl1dWdha3VzaGlrZW5cIDsKK+acnemuruawkeS4u+S4u+e+qeS6uuawkeWFseWSjOWbvSA+IGNob3VzZW5taW5zaHVzaHVnaWppbm1pbmt5b3V3YWtva3VcIDsKK+iHquWLlei7iuaQjeWus+izoOWEn+iyrOS7u+S/nemZuiA+IGppZG91c2hhc29uZ2FpYmFpc2hvdXNla2luaW5ob2tlblwgOwor57Gz5Zu95aSn5a2m5YWl5a2m5YWx6YCa6Kmm6aiTID4gYmVpa29rdWRhaWdha3VueXV1Z2FrdWt5b3V0c3V1c2hpa2VuXCA7Civml6XmnKzlirTlg43ntYTlkIjnt4/oqZXorbDkvJogPiBuaWhvbnJvdWRvdWt1bWlhaXNvdWh5b3VnaWthaVwgOwor5ouY5p2f5ZCN57C/5byP5q+U5L6L5Luj6KGo5Yi2ID4ga291c29rdW1laWJvaGlyZWlkYWloeW91c2VpXCA7Civoh6jlhbXpl5jogIXnmobpmaPoo4LlnKjliY0gPiByaW5weW91dG91c2hha2FpamlucmV0c3V6YWl6ZW5cIDsKK+WkquW5s+a0i+apn+aisOe/u+ios+WNlOS8miA+IHRhaWhlaXlvdWtpa2FpaG9uJyd5YWt1a3lvdWthaVwgOwor5Yuk5Yq06ICF6LKh55Sj5b2i5oiQ5L+D6YCyID4ga2lucm91c2hhemFpc2Fua2Vpc2Vpc29rdXNoaW5cIDsKK+i2hei2heWkp+imj+aooembhuepjeWbnui3ryA+IGNob3VjaG91ZGFpa2lib3NodXVzZWtpa2Fpcm9cIDsKK+i2heOAheWkp+imj+aooembhuepjeWbnui3ryA+IGNob3VjaG91ZGFpa2lib3NodXVzZWtpa2Fpcm9cIDsKK+WkquW5s+a0i+WuieWFqOS/nemanOadoee0hCA+IHRhaWhlaXlvdWFuemVuaG9zaG91am91eWFrdVwgOwor5pON57im5bit6Z+z5aOw6KiY6Yyy6KOF572uID4gc291anV1c2VraW9uc2Vpa2lyb2t1c291Y2hpXCA7CivoiKrnqbrlroflrpnmioDooZPnoJTnqbbmiYAgPiBrb3VrdXV1Y2h1dWdpanV0c3VrZW5reXV1am9cIDsKK+a1ruWLleWwj+aVsOeCuea8lOeul+apn+aniyA+IGZ1ZG91c2hvdXN1dXRlbicnZW56YW5raWtvdVwgOwor54++6YeR6Ieq5YuV6aCQ6YeR5pSv5omV5qmfID4gZ2Vua2luamlkb3V5b2tpbnNoaWhhcmFpa2lcIDsKK+S4u+i+numnhuWLleWPpeani+mAoOaWh+azlSA+IHNodWppa3Vkb3VrdWtvdXpvdWJ1bnBvdVwgOwor57WM5riI5Y2U5Yqb6ZaL55m65qmf5qeLID4ga2VpemFpa3lvdXJ5b2t1a2FpaGF0c3VraWtvdVwgOwor5YyX5rW36YGT6ZaL55m65bqB6ZW35a6YID4gaG9ra2FpZG91a2FpaGF0c3VjaG91Y2hvdWthblwgOwor5aSW5Zu95Lq655m76Yyy6Ki85piO5pu4ID4gZ2Fpa29rdWppbnRvdXJva3VzaG91bWVpc2hvXCA7CivmiKbnlaXlhbXlmajliYrmuJvmnaHntIQgPiBzZW5yeWFrdWhlaWtpc2FrdWdlbmpvdXlha3VcIDsKK+Wbvemam+apn+aisOe/u+ios+WNlOS8miA+IGtva3VzYWlraWthaWhvbicneWFrdWt5b3VrYWlcIDsKK+Wbvemam+mbu+awl+mAmuS/oemAo+WQiCA+IGtva3VzYWlkZW5raXRzdXVzaGlucmVuZ291XCA7CivmtbflpJbntYzmuIjljZTlipvln7rph5EgPiBrYWlnYWlrZWl6YWlreW91cnlva3VraWtpblwgOwor5pel57Gz5a6J5YWo5L+d6Zqc5p2h57SEID4gbmljaGliZWlhbnplbmhvc2hvdWpvdXlha3VcIDsKK+aIpuayoeiAhei/veaCvOiomOW/teaXpSA+IHNlbmJvdHN1c2hhdHN1aXRvdWtpbmVuYmlcIDsKK+aIpuihk+iIquepuue1seWItuacrOmDqCA+IHNlbmp1dHN1a291a3V1dG91c2VpaG9uYnVcIDsKK+W3pealremrmOetieWwgumWgOWtpuagoSA+IGtvdWd5b3Vrb3V0b3VzZW5tb25nYWtrb3VcIDsKK+WMl+Wkp+ilv+a0i+adoee0hOapn+aniyA+IGtpdGF0YWlzZWl5b3Vqb3V5YWt1a2lrb3VcIDsKK+i2heWkp+imj+aooembhuepjeWbnui3ryA+IGNob3VkYWlraWJvc2h1dXNla2lrYWlyb1wgOwor5YyW5a2m5YW15Zmo56aB5q2i5p2h57SEID4ga2FnYWt1aGVpa2lraW5zaGlqb3V5YWt1XCA7CivplqLnqI7osr/mmJPkuIDoiKzljZTlrpogPiBrYW56ZWlib3Vla2lpcHBhbmt5b3V0ZWlcIDsKK+WcqOeVmeacn+mWk+abtOaWsOioseWPryA+IHphaXJ5dXVraWthbmtvdXNoaW5reW9rYVwgOwor5LiH5Zu95Zu96Zqb6Z+z5qiZ5paH5a2XID4gYmFua29rdWtva3VzYWlvbnB5b3Vtb2ppXCA7CivmtbfmtIvmipXmo4Topo/liLbmnaHntIQgPiBrYWl5b3V0b3VraWtpc2Vpam91eWFrdVwgOwor6YeO55Sf5YuV54mp5L+d6K235Zuj5L2TID4geWFzZWlkb3VidXRzdWhvZ29kYW50YWlcIDsKK+iHquWLleWIl+i7iuWItuW+oeijhee9riA+IGppZG91cmVzc2hhc2VpZ3lvc291Y2hpXCA7CivlpKnnhLbos4fmupDkv53orbfoq5bogIUgPiB0ZW4nJ25lbnNoaWdlbmhvZ29yb25zaGFcIDsKK+mdnuW4uOS6i+aFi+WvvuWHpuioiOeUuyA+IGhpam91aml0YWl0YWlzaG9rZWlrYWt1XCA7Civoh6rli5XliJfou4rlgZzmraLoo4Xnva4gPiBqaWRvdXJlc3NoYXRlaXNoaXNvdWNoaVwgOwor6LWk5Y2B5a2X5Zu96Zqb5aeU5ZOh5LyaID4gc2VraWp1dWppa29rdXNhaWlpbmthaVwgOwor6KuH6Kmx6KGo56S65qeL6YCg55CG6KuWID4gZGFud2FoeW91amlrb3V6b3VyaXJvblwgOwor5YWx55Sj5YWa5Lit5aSu5aeU5ZOh5LyaID4ga3lvdXNhbnRvdWNodXVvdWlpbmthaVwgOwor5rCR5Li75YWa5YWo5Zu95aeU5ZOh5LyaID4gbWluc2h1dG91emVua29rdWlpbmthaVwgOwor6Iux6Kqe5Z+656SO6IO95Yqb6Kmm6aiTID4gZWlnb2tpc29ub3VyeW9rdXNoaWtlblwgOwor5LiA6Iis5ZG95Luk5ryU566X5qmf5qeLID4gaXBwYW5tZWlyZWllbnphbmtpa291XCA7Civnn6XorZjpm4bntITlnovnlKPmpa0gPiBjaGlzaGlraXNodXV5YWt1Z2F0YXNhbmd5b3VcIDsKK+iHquW+i+elnue1jOWkseiqv+eXhyA+IGppcml0c3VzaGlua2Vpc2hpdGNob3VzaG91XCA7CivmspbnuITplovnmbrluoHplbflrpggPiBva2luYXdha2FpaGF0c3VjaG91Y2hvdWthblwgOwor5byB6Ki85rOV55qE5ZSv54mp6KuWID4gYmVuc2hvdWhvdXRla2l5dWlidXRzdXJvblwgOwor5Zu96Zqb5Y2U5Yqb5LqL5qWt5ZujID4ga29rdXNhaWt5b3VyeW9rdWppZ3lvdWRhblwgOwor57eP5ZCI55qE5ZOB6LOq566h55CGID4gc291Z291dGVraWhpbnNoaXRzdWthbnJpXCA7CivnlpHkvLznm7TmjqXnm67nmoToqp4gPiBnaWppY2hva3VzZXRzdW1va3V0ZWtpZ29cIDsKK+S4h+WbveiRl+S9nOaoqeadoee0hCA+IGJhbmtva3VjaG9zYWt1a2Vuam91eWFrdVwgOwor6KiA6Kqe5a2m55qE5a6f5Zyo6KuWID4gZ2VuZ29nYWt1dGVraWppdHN1emFpcm9uXCA7CivlhqDnirbli5XohIjooYDmoJPnl4cgPiBrYW5qb3Vkb3VteWFrdWtlc3NlbnNob3VcIDsKK+enkeWtpuaKgOihk+W6gemVt+WumCA+IGthZ2FrdWdpanV0c3VjaG91Y2hvdWthblwgOwor6LWk6KGA55CD5rKI6ZmN6YCf5bqmID4gc2Vra2Vra3l1dWNoaW5rb3Vzb2t1ZG9cIDsKK+efs+ayuei8uOWHuuWbveapn+aniyA+IHNla2l5dXl1c2h1dHN1a29rdWtpa291XCA7CivlhazlhbHogbfmpa3lronlrprmiYAgPiBrb3VreW91c2hva3VneW91YW50ZWlqb1wgOwor5oim6KGT6Iiq56m657Wx5Yi254+tID4gc2VuanV0c3Vrb3VrdXV0b3VzZWloYW5cIDsKK+iHquWLlemHkemKreWHuuWFpeapnyA+IGppZG91a2luc2Vuc2h1dHN1bnl1dWtpXCA7CivlnLDpnIfpm7fngavkuovopqrniLYgPiBqaXNoaW5rYW1pbmFyaWthamlveWFqaVwgOwor5aSa6IKi6YG45oqe5byP6Kmm5ZWPID4gdGFzaGlzZW50YWt1c2hpa2lzaGltb25cIDsKK+aWsOmWouilv+Wbvemam+epuua4ryA+IHNoaW5rYW5zYWlrb2t1c2Fpa3V1a291XCA7CivoqIDoqp7lrabnmoToprPlv7Xoq5YgPiBnZW5nb2dha3V0ZWtpa2FuJyduZW5yb25cIDsKK+W+jOeZuueZuuWxlemAlOS4iuWbvSA+IGtvdWhhdHN1aGF0dGVudG9qb3Vrb2t1XCA7CivmirnmtojnmbvpjLLoqLzmmI7mm7ggPiBtYXNob3V0b3Vyb2t1c2hvdW1laXNob1wgOwor57WM5riI5LyB55S75bqB6ZW35a6YID4ga2VpemFpa2lrYWt1Y2hvdWNob3VrYW5cIDsKK+WGjeeUn+S4jeiJr+aAp+iyp+ihgCA+IHNhaXNlaWZ1cnlvdXNlaWhpbmtldHN1XCA7CivngavlipvmlK/mj7Toqr/mlbTnt5ogPiBrYXJ5b2t1c2hpZW5jaG91c2Vpc2VuXCA7CivnoLTlo4rmtLvli5XpmLLmraLms5UgPiBoYWthaWthdHN1ZG91Ym91c2hpaG91XCA7Civlm73pmpvov5Tkv6HliIfmiYvliLggPiBrb2t1c2FpaGVuc2hpbmtpdHRla2VuXCA7CivkuK3oj6/kurrmsJHlhbHlkozlm70gPiBjaHV1a2FqaW5taW5reW91d2Frb2t1XCA7CivmnbHmtbfpgZPkupTljYHkuInmrKEgPiB0b3VrYWlkb3Vnb2p1dXNhbnRzdWdpXCA7Civlroflrpnplovnmbrkuovmpa3lm6MgPiB1Y2h1dWthaWhhdHN1amlneW91ZGFuXCA7CivkuInou7jlnKfnuK7oqabpqJPmqZ8gPiBzYW5qaWt1YXNzaHVrdXNoaWtlbmtpXCA7CivoppbogbTogIXlj4LliqDnlarntYQgPiBzaGljaG91c2hhc2Fua2FiYW5ndW1pXCA7Civlt57pmpvpgJrllYblp5Tlk6HkvJogPiBzaHV1c2FpdHN1dXNob3VpaW5rYWlcIDsKK+WRqOazouaVsOWkieaPm+ijhee9riA+IHNodXVoYXN1dWhlbmthbnNvdWNoaVwgOwor5oWi5oCn55ay5Yq055eH5YCZ576kID4gbWFuc2VpaGlyb3VzaG91a291Z3VuXCA7CivlhazlrrPlr77nrZbln7rmnKzms5UgPiBrb3VnYWl0YWlzYWt1a2lob25ob3VcIDsKK+e1jOa4iOWbo+S9k+mAo+WQiOS8miA+IGtlaXphaWRhbnRhaXJlbmdvdWthaVwgOwor5oim6ZeY6Zu75a2Q5oim5oOF5aCxID4gc2VudG91ZGVuc2hpc2Vuam91aG91XCA7Civnj77ph5Hoh6rli5XmlK/miZXmqZ8gPiBnZW5raW5qaWRvdXNoaWhhcmFpa2lcIDsKK+acgOmrmOe1jOWWtuiyrOS7u+iAhSA+IHNhaWtvdWtlaWVpc2VraW5pbnNoYVwgOwor6KOF55Sy5Lq65ZOh6YGL5pCs6LuKID4gc291a291amluJydpbicndW5wYW5zaGFcIDsKK+aXpeacrOiqnuiDveWKm+ippumokyA+IG5paG9uZ29ub3VyeW9rdXNoaWtlblwgOwor6Z+z56+A5Li76Z+z55qE5a2Q6Z+zID4gb25zZXRzdXNodW9udGVraXNoaWluXCA7CivoqLzliLjlj5blvJXlp5Tlk6HkvJogPiBzaG91a2VudG9yaWhpa2lpaW5rYWlcIDsKK+acgOmrmOiyoeWLmeiyrOS7u+iAhSA+IHNhaWtvdXphaW11c2VraW5pbnNoYVwgOwor55+t6Led6Zui6Zui552A6Zm45qmfID4gdGFua3lvcmlyaWNoYWt1cmlrdWtpXCA7CivmqZ/og73ljZjkuIDljJbmlofms5UgPiBraW5vdXRhbicnaXRzdWthYnVucG91XCA7Civnn6Xog73mg4XloLHnoJTnqbbpg6ggPiBjaGlub3Vqb3Vob3VrZW5reXV1YnVcIDsKK+WKoOWcp+awtOWei+WOn+WtkOeCiSA+IGthYXRzdXN1aWdhdGFnZW5zaGlyb1wgOwor55Kw5aSq5bmz5rSL5Zyw6ZyH5bivID4ga2FudGFpaGVpeW91amlzaGludGFpXCA7CivkurrnqK7lt67liKXkuLvnvqnogIUgPiBqaW5zaHVzYWJldHN1c2h1Z2lzaGFcIDsKK+iHqueEtueSsOWig+S/neWFqOazlSA+IHNoaXplbmthbmt5b3Vob3plbmhvdVwgOwor55Kw5aSq5bmz5rSL6YCg5bGx5bivID4ga2FudGFpaGVpeW91em91emFudGFpXCA7CivooYzli5XkuLvnvqnlv4PnkIblraYgPiBrb3Vkb3VzaHVnaXNoaW5yaWdha3VcIDsKK+esrOS4gOasoeS4lueVjOWkp+aIpiA+IGRhaWljaGlqaXNla2FpdGFpc2VuXCA7CivlpInli5Xngrrmm7/nm7jloLTliLYgPiBoZW5kb3VrYXdhc2Vzb3ViYXNlaVwgOwor5q2v5YaF55mC5rOV5bCC6ZaA5Yy7ID4gc2hpa2FyeW91aG91c2VubW9uJydpXCA7CivnkrDlpKrlubPmtIvngavlsbHluK8gPiBrYW50YWloZWl5b3VrYXphbnRhaVwgOwor5a6f5oOF6Kq/5p+75aeU5ZOh5LyaID4gaml0c3Vqb3VjaG91c2FpaW5rYWlcIDsKK+enkeWtpuWfuuekjueglOeptuaJgCA+IGthZ2FrdWtpc29rZW5reXV1c2hvXCA7CivlpInlvaLnlJ/miJDntbHoqp7oq5YgPiBoZW5rZWlzZWlzZWl0b3Vnb3JvblwgOwor5aSn6KaP5qih6ZuG56mN5Zue6LevID4gZGFpa2lib3NodXVzZWtpa2Fpcm9cIDsKK+WNl+eEoeWmmeazleiTruiPr+e1jCA+IG5hbXVteW91aG91cmVuZ2VreW91XCA7CivmnKrnorroqo3po5vooYzniankvZMgPiBtaWtha3VuaW5oaWtvdWJ1dHRhaVwgOwor5LiA6YW45YyW54Kt57Sg5Lit5q+SID4gaXNzYW5rYXRhbnNvY2h1dWRva3VcIDsKK+WFrOato+WPluW8leWnlOWToeS8miA+IGtvdXNlaXRvcmloaWtpaWlua2FpXCA7CivnqI7lvJXliY3lvZPmnJ/liKnnm4ogPiB6ZWliaWtpbWFldG91a2lyaWVraVwgOwor6YCj6YKm5Y+W5byV5aeU5ZOh5LyaID4gcmVucG91dG9yaWhpa2lpaW5rYWlcIDsKK+a1geihjOaAp+iAs+S4i+iFuueCjiA+IHJ5dXVrb3VzZWlqaWthc2VuJydlblwgOwor57eP55CG5bqc57eP5YuZ6ZW35a6YID4gc291cmlmdXNvdW11Y2hvdWthblwgOwor55Kw5aKD5L+d6K235Li7576p6ICFID4ga2Fua3lvdWhvZ29zaHVnaXNoYVwgOwor5pel5pys6Zm45LiK6Ieq6KGb6ZqKID4gbmlob25yaWt1am91amllaXRhaVwgOwor6YeR5Zyw6YeR5pys5L2N5Yi25bqmID4ga2luamlnYW5laG9uJydpc2VpZG9cIDsKK+mHjeimgeeEoeW9ouaWh+WMluiyoSA+IGp1dXlvdW11a2VpYnVua2F6YWlcIDsKK+e1jOa4iOekvuS8mueQhuS6i+S8miA+IGtlaXphaXNoYWthaXJpamlrYWlcIDsKK+S4u+iqnuWKqeWLleipnuWAkue9riA+IHNodWdvam9kb3VzaGl0b3VjaGlcIDsKK+WQiOWQjOaKgOihk+WnlOWToeS8miA+IGdvdWRvdWdpanV0c3VpaW5rYWlcIDsKK+iHquWLleaWueWQkeaOouefpeapnyA+IGppZG91aG91a291dGFuY2hpa2lcIDsKK+W4sOmChOS4jeiDvemZkOeVjOeCuSA+IGtpa2FuZnVub3VnZW5rYWl0ZW5cIDsKK+WbveWutuWFrOWuieWnlOWToemVtyA+IGtva2tha291YW4nJ2lpbmNob3VcIDsKK+WbveS8muWvvuetluWnlOWToeS8miA+IGtva2thaXRhaXNha3VpbmthaVwgOwor56ys5LqM5qyh5LiW55WM5aSn5oimID4gZGFpbmlqaXNla2FpdGFpc2VuXCA7CivkupznsbPliKnliqDlkIjooYblm70gPiBhbWVyaWthZ2Fzc2h1dWtva3VcIDsKK+aXpeacrOiIquepuuiHquihm+maiiA+IG5paG9ua291a3V1amllaXRhaVwgOwor56ym5Y+35YyW5paH5a2X6ZuG5ZCIID4gZnVnb3VrYW1vamlzaHV1Z291XCA7Civml6XmnKzmtbfkuIroh6rooZvpmoogPiBuaWhvbmthaWpvdWppZWl0YWlcIDsKK+S4i+S9jeevhOeWh+WMlue0oOaApyA+IGthaWhhbmNodXVrYXNvc2VpXCA7CivpgbjmjJnnrqHnkIblp5Tlk6HkvJogPiBzZW5reW9rYW5yaWlpbmthaVwgOwor5LiL5L2N56+E55aH5YyW5Y6f55CGID4ga2FpaGFuY2h1dWthZ2VucmlcIDsKK+iAs+m8u+WSveWWieWwgumWgOWMuyA+IGppYmlpbmtvdXNlbm1vbicnaVwgOwor6K2w6Zmi6YGL5Za25aeU5ZOh5LyaID4gZ2lpbicndW4nJ2VpaWlua2FpXCA7CivvvJLvvJDvvJDvvJDlubTllY/poYwgPiBuaXNlbicnbmVubW9uZGFpXCA7CivlrpfmlZnnmoTni6znq4vmgKcgPiBzaHV1a3lvdXRla2lkb2t1cml0c3VzZWlcIDsKK+ebtOaOpeeFp+a6luWwhOaSgyA+IGNob2t1c2V0c3VzaG91anVuc2hhZ2VraVwgOwor54m55q6K5Y+W5omx6YO15L6/ID4gdG9rdXNodXRvcmlhdHN1a2FpeXV1YmluXCA7Civkub7mub/nkIPmub/luqboqIggPiBrYW5zaGl0c3VreXV1c2hpdHN1ZG9rZWlcIDsKK+Wcp+WvhumZjeS8j+W/nOWKmyA+IGF0c3VtaXRzdWtvdWZ1a3VvdXJ5b2t1XCA7Civlhazoqo3ljbjlo7Lmpa3ogIUgPiBrb3VuaW4nJ29yb3NoaXVyaWd5b3VzaGFcIDsKK+aguOWIhuijgueUn+aIkOeJqSA+IGtha3VidW5yZXRzdXNlaXNlaWJ1dHN1XCA7Civogbfmpa3liKXpm7voqbHluLMgPiBzaG9rdWd5b3ViZXRzdWRlbndhY2hvdVwgOwor5YWl5a2m5YWx6YCa6Kmm6aiTID4gbnl1dWdha3VreW91dHN1dXNoaWtlblwgOwor5a6k5YaF566h5bym5qW95ZujID4gc2hpdHN1bmFpa2FuZ2VuZ2FrdWRhblwgOwor5p2x5Lqs5qCq5byP5biC5aC0ID4gdG91a3lvdWthYnVzaGlraXNoaWpvdVwgOwor56K6546H5a+G5bqm6Zai5pWwID4ga2FrdXJpdHN1bWl0c3Vkb2thbnN1dVwgOwor5Y6f5a2Q5Yqb55m66Zu75omAID4gZ2Vuc2hpcnlva3VoYXRzdWRlbnNob1wgOwor5Yun5ZaE5oey5oKq5bCP6KqsID4ga2FuemVuY2hvdWFrdXNob3VzZXRzdVwgOwor5p2t5ZGo6Z2i5pGp5pOm5YqbID4ga3Vpc2h1dW1lbm1hc2F0c3VyeW9rdVwgOwor6ZaT5o6l54Wn5rqW5bCE5pKDID4ga2Fuc2V0c3VzaG91anVuc2hhZ2VraVwgOwor5paw6KaP5qCq5byP5YWs6ZaLID4gc2hpbmtpa2FidXNoaWtpa291a2FpXCA7Civlrabnv5LmjIflsI7opoHpoJggPiBnYWt1c2h1dXNoaWRvdXlvdXJ5b3VcIDsKK+aXqeeZuuaAp+eXtOWRhueXhyA+IHNvdWhhdHN1c2VpY2hpaG91c2hvdVwgOwor5L+h55So5Y2U5ZCM57WE5ZCIID4gc2hpbicneW91a3lvdWRvdWt1bWlhaVwgOwor5bym5qW95Zub6YeN5aWP5puyID4gZ2VuZ2FrdXNoaWp1dXNvdWt5b2t1XCA7CivmvJTnubnnmoToqqzmmI7ms5UgPiBlbicnZWtpdGVraXNldHN1bWVpaG91XCA7Civmt7HlnKjmgKfnnJ/oj4znl4cgPiBzaGluemFpc2Vpc2hpbmtpbnNob3VcIDsKK+e1seeOh+adn+e4m+eQhuirliA+IHRvdXNvdHN1c29rdWJha3VyaXJvblwgOwor5pys5oWL5oCn6auY6KGA5ZynID4gaG9udGFpc2Vpa291a2V0c3VhdHN1XCA7CivpmbjkuIrnq6/lsYDoo4Xnva4gPiByaWt1am91dGFua3lva3Vzb3VjaGlcIDsKK+aXpeexs+iyv+aYk+aRqeaTpiA+IG5pY2hpYmVpYm91ZWtpbWFzYXRzdVwgOwor6YCa5ZWG55Sj5qWt5aSn6IejID4gdHN1dXNob3VzYW5neW91ZGFpamluXCA7CivpgJrllYboiKrmtbfmnaHntIQgPiB0c3V1c2hvdWtvdWthaWpvdXlha3VcIDsKK+i7n+WIpOWumuitmOWIpeWZqCA+IG5hbmhhbnRlaXNoaWtpYmV0c3VraVwgOwor56m65oOz56eR5a2m5bCP6KqsID4ga3V1c291a2FnYWt1c2hvdXNldHN1XCA7CivmlrDlhaXnpL7lk6HmlZnogrIgPiBzaGluJydueXV1c2hhaW5reW91aWt1XCA7CivmjqjlpajmlofnjK7nm67pjLIgPiBzdWlzaG91YnVua2VubW9rdXJva3VcIDsKK+W+s+W3neS4ieS7o+WutuWFiSA+IHRva3VnYXdhc2FuZGFpaWVtaXRzdVwgOwor55Sf5rS75Y2U5ZCM57WE5ZCIID4gc2Vpa2F0c3VreW91ZG91a3VtaWFpXCA7Civmlpnph5HliKXntI3pg7Xkvr8gPiByeW91a2luYmV0c3Vub3V5dXViaW5cIDsKK+S4rei3nembouaguOaIpuWKmyA+IGNodXVreW9yaWtha3VzZW5yeW9rdVwgOwor6L6y5qWt5Y2U5ZCM57WE5ZCIID4gbm91Z3lvdWt5b3Vkb3VrdW1pYWlcIDsKK+Wkp+mZuOaoquaWremJhOmBkyA+IHRhaXJpa3VvdWRhbnRldHN1ZG91XCA7Civpq5jliIblrZDlkLjlj47kvZMgPiBrb3VidW5zaGlreXV1c2h1dXRhaVwgOwor5pel57Gz5qeL6YCg5Y2U6K2wID4gbmljaGliZWlrb3V6b3VreW91Z2lcIDsKK+apn+aisOe/u+ios+WNlOS8miA+IGtpa2FpaG9uJyd5YWt1a3lvdWthaVwgOwor5Lit5aSu6KGM5pS/5a6Y5bqBID4gY2h1dW91Z3lvdXNlaWthbmNob3VcIDsKK+WMl+Wkp+ilv+a0i+adoee0hCA+IGtpdGF0YWlzZWl5b3Vqb3V5YWt1XCA7Civpm7vmsJfpgJrkv6HlpKflraYgPiBkZW5raXRzdXVzaGluZGFpZ2FrdVwgOwor6Iqz6aaZ5peP5YyW5ZCI54mpID4gaG91a291em9rdWthZ291YnV0c3VcIDsKK+WGhemWo+WumOaIv+mVt+WumCA+IG5haWtha3VrYW5ib3VjaG91a2FuXCA7CivlvKbmpb3kupTph43lpY/mm7IgPiBnZW5nYWt1Z29qdXVzb3VreW9rdVwgOwor5a6H5a6Z6ZaL55m66KiI55S7ID4gdWNodXVrYWloYXRzdWtlaWtha3VcIDsKK+exs+mAo+mCpuiIquepuuWxgCA+IGJlaXJlbnBvdWt1dWtvdWt5b2t1XCA7CivlpJblm73kurrnmbvpjLLms5UgPiBnYWlrb2t1amludG91cm9rdWhvdVwgOwor5YWx55Sj5YWa5pS/5rK75bGAID4ga3lvdXNhbnRvdXNlaWppa3lva3VcIDsKK+adn+e4m+e2meaJv+WOn+eQhiA+IHNva3ViYWt1a2Vpc2hvdWdlbnJpXCA7CivkuInou7jlnKfnuK7oqabpqJMgPiBzYW5qaWt1YXNzaHVrdXNoaWtlblwgOwor56m66LuN6YCj57Wh5bCG5qChID4ga3V1Z3VucmVucmFrdXNob3Vrb3VcIDsKK+WNuOWjsueJqeS+oeaMh+aVsCA+IG9yb3NoaXVyaWJ1a2thc2hpc3V1XCA7CivlhpnnnJ/liKTlrprmsbrli50gPiBzaGFzaGluaGFudGVpa2Vzc2hvdVwgOwor5YmN56uL6IW66IKl5aSn55eHID4gemVucml0c3VzZW5oaWRhaXNob3VcIDsKK+iqrOaYjueahOWmpeW9k+aApyA+IHNldHN1bWVpdGVraWRhdG91c2VpXCA7CivlhbHpgJrkuIDmrKHoqabpqJMgPiBreW91dHN1dWljaGlqaXNoaWtlblwgOwor56ys5LiJ56iu6YO15L6/54mpID4gZGFpc2Fuc2h1eXV1YmluYnV0c3VcIDsKK+WPi+WlvemAmuWVhuiIqua1tyA+IHl1dWtvdXRzdXVzaG91a291a2FpXCA7CivnhKHmi4Xkv53osrjku5jph5EgPiBtdXRhbnBva2FzaGl0c3VrZWtpblwgOwor5b+F6KaB5Y2B5YiG5p2h5Lu2ID4gaGl0c3V5b3VqdXVidW5qb3VrZW5cIDsKK+eyvuelnueahOaMh+WwjuiAhSA+IHNlaXNoaW50ZWtpc2hpZG91c2hhXCA7Civljp/lrZDniannkIblrabogIUgPiBnZW5zaGlidXRzdXJpZ2FrdXNoYVwgOwor57K+5a+G5qmf5qKw5bel5qWtID4gc2VpbWl0c3VraWthaWtvdWd5b3VcIDsKK+WGjeWFpeWbveioseWPr+abuCA+IHNhaW55dXVrb2t1a3lvdWthc2hvXCA7CivlrprlvaLlpJbpg7Xkvr/niakgPiB0ZWlrZWlnYWl5dXViaW5idXRzdVwgOwor6LaF5Lim5YiX6KiI566X5qmfID4gY2hvdWhlaXJldHN1a2Vpc2Fua2lcIDsKK+S4reaeouelnue1jOezu+e1sSA+IGNodXVzdXVzaGlua2Vpa2VpdG91XCA7CivkvJ3pgIHliLblvqHmi6HlvLUgPiBkZW5zb3VzZWlneW9rYWt1Y2hvdVwgOwor5pel5Lit5Y+L5aW95Y2U5LyaID4gbml0Y2h1dXl1dWtvdWt5b3VrYWlcIDsKK+WbveawkemHkeiejeWFrOW6qyA+IGtva3VtaW5raW4nJ3l1dWtvdWtvXCA7Civlj6PovrrljZjntJTnlrHnlrkgPiBrb3VoZW50YW5qdW5ob3VzaGluXCA7Civpm4blm6Plronlhajkv53pmpwgPiBzaHV1ZGFuJydhbnplbmhvc2hvdVwgOwor5ZCN56We6auY6YCf6YGT6LevID4gbWVpc2hpbmtvdXNva3Vkb3Vyb1wgOwor5pS+5bCE5oCn6ZmN5LiL54mpID4gaG91c2hhc2Vpa291a2FidXRzdVwgOwor5Yqj5oCn6YG65Lyd5b2i6LOqID4gcmVzc2VpaWRlbmtlaXNoaXRzdVwgOwor5Yid5pyf6YG45oqe6aCF55uuID4gc2hva2lzZW50YWt1a291bW9rdVwgOwor5YWo5Zu95rSl5rSl5rWm5rWmID4gemVua29rdXRzdXRzdXVyYXVyYVwgOwor5L+h5Lu757Wx5rK75Yi25bqmID4gc2hpbicnbmludG91Y2hpc2VpZG9cIDsKK+S4u+imgemDqOe1guerr+WeiyA+IHNodXlvdWJ1c2h1dXRhbmdhdGFcIDsKK+WQiOaIkOWMluWtpuW3pealrSA+IGdvdXNlaWthZ2FrdWtvdWd5b3VcIDsKK+WbveawkeS9k+iCsuWkp+S8miA+IGtva3VtaW50YWlpa3V0YWlrYWlcIDsKK+Wbvemam+mbu+S/oembu+ipsSA+IGtva3VzYWlkZW5zaGluZGVud2FcIDsKK+mbu+WtkOizh+mHkeaMr+abvyA+IGRlbnNoaXNoaWtpbmZ1cmlrYWVcIDsKK+W8pualveWbm+mHjeWlj+WboyA+IGdlbmdha3VzaGlqdXVzb3VkYW5cIDsKK+iIquepuuS6pOmAmueuoeWItiA+IGtvdWt1dWtvdXRzdXVrYW5zZWlcIDsKK+iyoeaUv+Wdh+ihoeioiOeUuyA+IHphaXNlaWtpbmtvdWtlaWtha3VcIDsKK+aXpeacrOimj+agvOWNlOS8miA+IG5pcHBvbmtpa2FrdWt5b3VrYWlcIDsKK+WLleeJqeaEm+itt+WNlOS8miA+IGRvdWJ1dHN1YWlnb2t5b3VrYWlcIDsKK+exs+iIquepuuWuh+WumeWxgCA+IGJlaWtvdWt1dXVjaHV1a3lva3VcIDsKK+WFqOWbvea0peOAhea1puOAhSA+IHplbmtva3V0c3V0c3V1cmF1cmFcIDsKK+aXpeacrOWtpuihk+S8muitsCA+IG5paG9uZ2FrdWp1dHN1a2FpZ2lcIDsKK+S6uumWk+eSsOWig+Wuo+iogCA+IG5pbmdlbmthbmt5b3VzZW5nZW5cIDsKK+WutuWuheaNnOe0ouS7pOeKtiA+IGthdGFrdXNvdXNha3VyZWlqb3VcIDsKK+WuieWcn+ahg+WxseaZguS7oyA+IGF6dWNoaW1vbW95YW1hamlkYWlcIDsKK+eUn+eQhueahOmjn+WhqeawtCA+IHNlaXJpdGVraXNob2t1ZW5zdWlcIDsKK+eSsOWkquW5s+a0i+iruOWbvSA+IGthbnRhaWhlaXlvdXNob2tva3VcIDsKK+eBq+WKm+aUr+aPtOioiOeUuyA+IGthcnlva3VzaGllbmtlaWtha3VcIDsKK+iRl+S9nOaoqeaJgOacieiAhSA+IGNob3Nha3VrZW5zaG95dXVzaGFcIDsKK+aVsOWtpueahOW4sOe0jeazlSA+IHN1dWdha3V0ZWtpa2lub3Vob3VcIDsKK+aXpeacrOWbveeJueioseW6gSA+IG5paG9ua29rdXRva2t5b2Nob3VcIDsKK+mjn+ezp+euoeeQhuWItuW6piA+IHNob2t1cnlvdWthbnJpc2VpZG9cIDsKK+eUn+eJqeWMluWtpuWFteWZqCA+IHNlaWJ1dHN1a2FnYWt1aGVpa2lcIDsKK+Wls+aoqeaLoeW8teirluiAhSA+IGpva2Vua2FrdWNob3Vyb25zaGFcIDsKK+e1seWQiOW5leWDmuS8muitsCA+IHRvdWdvdWJha3VyeW91a2FpZ2lcIDsKK+WwhOaSg+emgeatouWcsOWfnyA+IHNoYWdla2lraW5zaGljaGlpa2lcIDsKK+eJueWRveWFqOaoqeWFrOS9vyA+IHRva3VtZWl6ZW5rZW5rb3VzaGlcIDsKK+aWsOiBnuWAq+eQhue2semgmCA+IHNoaW5idW5yaW5yaWtvdXJ5b3VcIDsKK+iomOi/sOeahOWmpeW9k+aApyA+IGtpanV0c3V0ZWtpZGF0b3VzZWlcIDsKK+S4h+WbvemDteS+v+mAo+WQiCA+IGJhbmtva3V5dXViaW5yZW5nb3VcIDsKK+S9j+WuhemHkeiejeWFrOW6qyA+IGp1dXRha3VraW4nJ3l1dWtvdWtvXCA7CivljZjkvY3kvZPnqY3ph43ph48gPiB0YW4nJ2l0YWlzZWtpanV1cnlvdVwgOwor57Wx5LiA5Zyw5pa56YG45oyZID4gdG91aXRzdWNoaWhvdXNlbmt5b1wgOwor5YWs6ZaL5biC5aC05pS/562WID4ga291a2Fpc2hpam91c2Vpc2FrdVwgOwor5Zyw55CD6Kaz5ris6KGb5pifID4gY2hpa3l1dWthbnNva3VlaXNlaVwgOwor6YeN6YeP5ouz6ZeY6YG45omLID4ganV1cnlvdWtlbnRvdXNlbnNodVwgOwor5Lq65bel5rCX6IO455mC5rOVID4gamlua291a2lreW91cnlvdWhvdVwgOwor5Zyw5pa55YWs5YWx5Zuj5L2TID4gY2hpaG91a291a3lvdWRhbnRhaVwgOwor5omL5qC5566h55eH5YCZ576kID4gc2h1a29ua2Fuc2hvdWtvdWd1blwgOwor6auY5YiG5a2Q5YyW5ZCI54mpID4ga291YnVuc2hpa2Fnb3VidXRzdVwgOwor6Zm45LiK5L2c5oim5pys6YOoID4gcmlrdWpvdXNha3VzZW5ob25idVwgOwor5pS+5bCE5oCn5buD5qOE54mpID4gaG91c2hhc2VpaGFpa2lidXRzdVwgOwor6YCG6Lui5YiG5biD5L+C5pWwID4gZ3lha3V0ZW5idW5wdWtlaXN1dVwgOwor6JyY6Jub6Iac5LiL5Ye66KGAID4ga3Vtb21ha3VrYXNodWtrZXRzdVwgOwor5YWx5ZCM5pWR5riI5Z+66YeRID4ga3lvdWRvdWt5dXVzYWlraWtpblwgOwor5L+d6Zm66YeR5Y+X5Y+W5Lq6ID4gaG9rZW5raW4nJ3VrZXRvcmluaW5cIDsKK+mZuOi7jeWjq+WumOWtpuagoSA+IHJpa3VndW5zaGlrYW5nYWtrb3VcIDsKK+a8gealreWwgueuoeawtOWfnyA+IGd5b2d5b3VzZW5rYW5zdWlpa2lcIDsKK+iKuOihk+iHs+S4iuS4u+e+qSA+IGdlaWp1dHN1c2hpam91c2h1Z2lcIDsKK+eJueWRveWFqOaoqeWkp+S9vyA+IHRva3VtZWl6ZW5rZW50YWlzaGlcIDsKK+i/keaOpeiIquepuuaUr+aPtCA+IGtpbnNldHN1a291a3V1c2hpZW5cIDsKK+acieapn+awtOmKgOS4reavkiA+IHl1dWtpc3VpZ2luY2h1dWRva3VcIDsKK+eSsOWkquW5s+a0i+ani+aDsyA+IGthbnRhaWhlaXlvdWtvdXNvdVwgOwor5YWs55qE5LiN5rOV5aao5a6zID4ga291dGVraWZ1aG91Ym91Z2FpXCA7CivmiKbpl5jmlK/mj7ToqIjnlLsgPiBzZW50b3VzaGllbmtlaWtha3VcIDsKK+Wbnue3muWItuW+oeimj+WJhyA+IGthaXNlbnNlaWd5b2tpc29rdVwgOwor5riv5rm+6YGL6YCB5LqL5qWtID4ga291d2FuJyd1bnNvdWppZ3lvdVwgOwor6ZaA5oi46ZaL5pS+5pS/562WID4gbW9ua29rYWlob3VzZWlzYWt1XCA7CivmnbHlkI3pq5jpgJ/pgZPot68gPiB0b3VtZWlrb3Vzb2t1ZG91cm9cIDsKK+WGhemWo+e3j+eQhuWkp+iHoyA+IG5haWtha3Vzb3VyaWRhaWppblwgOwor5pel5pys5pS+6YCB5Y2U5LyaID4gbmlob25ob3Vzb3VreW91a2FpXCA7CivoiKrnqbrlroflrpnlt6Xmpa0gPiBrb3VrdXV1Y2h1dWtvdWd5b3VcIDsKK+WuieWFqOS/nemanOadoee0hCA+IGFuemVuaG9zaG91am91eWFrdVwgOwor5Li75YON5Zyf5Zyn5L+C5pWwID4gc2h1ZG91ZG9hdHN1a2Vpc3V1XCA7Civlj43lsITnmoTljYrpoIbluo8gPiBoYW5zaGF0ZWtpaGFuanVuam9cIDsKK+Wbvemam+mAmuiyqOWfuumHkSA+IGtva3VzYWl0c3V1a2FraWtpblwgOwor55+t5pyf6ZuG5Lit6Kyb5bqnID4gdGFua2lzaHV1Y2h1dWtvdXphXCA7Civml6XmnKzovrLmnpfopo/moLwgPiBuaWhvbicnbm91cmlua2lrYWt1XCA7CivoiKrnqbrlroflrpnnlKPmpa0gPiBrb3VrdXV1Y2h1dXNhbmd5b3VcIDsKK+WTgeizquS/neaMgeacn+mZkCA+IGhpbnNoaXRzdWhvamlraWdlblwgOwor5pel5pys5bel5qWt6KaP5qC8ID4gbmlob25rb3VneW91a2lrYWt1XCA7CivkuK3ot53pm6LmoLjlhbXlmaggPiBjaHV1a3lvcmlrYWt1aGVpa2lcIDsKK+mFuOWMlumChOWFg+WPjeW/nCA+IHNhbmtha2FuZ2VuaGFuJydub3VcIDsKK+WFrOWLmeWft+ihjOWmqOWusyA+IGtvdW11c2hpa2tvdWJvdWdhaVwgOwor6auY562J5bCC6ZaA5a2m5qChID4ga291dG91c2VubW9uZ2Fra291XCA7CivmranlhbXmiKbpl5jou4rkuKEgPiBob2hlaXNlbnRvdXNoYXJ5b3VcIDsKK+WFseWQjOiomOiAheS8muimiyA+IGt5b3Vkb3VraXNoYWthaWtlblwgOwor5aSq6Zm954ax5rip5rC05ZmoID4gdGFpeW91bmV0c3VvbnN1aWtpXCA7CivpnZnmraLlnJ/lnKfkv4LmlbAgPiBzZWlzaGlkb2F0c3VrZWlzdXVcIDsKK+S6uuWPo+WLleaFi+e1seioiCA+IGppbmtvdWRvdXRhaXRvdWtlaVwgOwor5Zu96YCj5LqL5YuZ57eP6ZW3ID4ga29rdXJlbmppbXVzb3VjaG91XCA7CivkuI3li5XnlKPlj5blvpfnqI4gPiBmdWRvdXNhbnNodXRva3V6ZWlcIDsKK+W5tOasoeaciee1puS8keaahyA+IG5lbmppeXV1a3l1dWt5dXVrYVwgOwor5Y2B5LqM5oyH6IW45r2w55iNID4ganV1bmlzaGljaG91a2FpeW91XCA7CivmiKbkuonniq/nvarms5Xlu7cgPiBzZW5zb3VoYW56YWlob3V0ZWlcIDsKK+W5tOWKn+W6j+WIl+WItuW6piA+IG5lbmtvdWpvcmV0c3VzZWlkb1wgOwor6L6y5p6X5rC055Sj5aSn6IejID4gbm91cmluc3Vpc2FuZGFpamluXCA7CivkuLvopoHpg6jlhYjlsI7lnosgPiBzaHV5b3VidXNlbmRvdWdhdGFcIDsKK+WbveawkeWBpeW6t+S/nemZuiA+IGtva3VtaW5rZW5rb3Vob2tlblwgOwor5LiN5a6a6KiI6YeP56m66ZaTID4gZnV0ZWlrZWlyeW91a3V1a2FuXCA7Civlj43luJ3lm73kuLvnvqnogIUgPiBoYW50ZWlrb2t1c2h1Z2lzaGFcIDsKK+mbu+iNt+e1kOWQiOe0oOWtkCA+IGRlbmtha2V0c3Vnb3Vzb3NoaVwgOwor5pyJ6ZmQ54q25oWL5paH5rOVID4geXV1Z2Vuam91dGFpYnVucG91XCA7Civkv67mraPos4fmnKzkuLvnvqkgPiBzaHV1c2Vpc2hpaG9uc2h1Z2lcIDsKK+S4gOWNteaAp+WPjOeUn+WFkCA+IGljaGlyYW5zZWlzb3VzZWlqaVwgOwor5Zyw5Lit5rW35oCn5rCX5YCZID4gY2hpY2h1dWthaXNlaWtpa291XCA7CivmipXos4fmnInkvqHoqLzliLggPiB0b3VzaGl5dXVrYXNob3VrZW5cIDsKK+WJjeaWueWGjeijnOe1pueCuSA+IHplbnBvdXNhaWhva3l1dXRlblwgOwor56uL5oay5ZCb5Li75pS/5L2TID4gcmlra2Vua3Vuc2h1c2VpdGFpXCA7CivmlL7pgIHnpoHmraLnlKjoqp4gPiBob3Vzb3VraW5zaGl5b3Vnb1wgOwor5Y2B5LiA6Z2i6Kaz5LiW6Z+zID4ganV1aWNoaW1lbmthbnplb25cIDsKK+W9oueKtuiomOaGtuWQiOmHkSA+IGtlaWpvdWtpb2t1Z291a2luXCA7CivooYzli5XnmbrotbfmmYLliLsgPiBrb3Vkb3VoYWtraWppa29rdVwgOwor5Y2B6YOo6ZaA5YiG6aGe5rOVID4ganV1YnVtb25idW5ydWlob3VcIDsKK+S4lueVjOS4gOWRqOaXheihjCA+IHNla2FpaXNzaHV1cnlva291XCA7CivkuJbnlYzkurrmqKnlrqPoqIAgPiBzZWthaWppbmtlbnNlbmdlblwgOwor5YWs55qE5Yy755mC5qmf6ZaiID4ga291dGVraWlyeW91a2lrYW5cIDsKK+WPl+WDjeWcn+Wcp+S/guaVsCA+IGp1ZG91ZG9hdHN1a2Vpc3V1XCA7CivkuI3norrlrprmgKfljp/nkIYgPiBmdWtha3V0ZWlzZWlnZW5yaVwgOwor5LqM562J6L665LiJ6KeS5b2iID4gbml0b3VoZW5zYW5rYWtrZWlcIDsKK+aUv+S7pOaMh+WumumDveW4giA+IHNlaXJlaXNoaXRlaXRvc2hpXCA7CivnhKHmi4Xkv53lgJ/lhaXph5EgPiBtdXRhbnBva2FyaWlyZWtpblwgOwor5Y2Y5L2N5Yq05YON57WE5ZCIID4gdGFuJydpcm91ZG91a3VtaWFpXCA7CivkuK3lpK7lh6bnkIboo4Xnva4gPiBjaHV1b3VzaG9yaXNvdWNoaVwgOwor5qyn5bee6YCa6LKo5Y2Y5L2NID4gb3VzaHV1dHN1dWthdGFuJydpXCA7Civoh6rnlLHosr/mmJPluK/ln58gPiBqaXl1dWJvdWVraXRhaWlraVwgOwor5oGL5oSb6Iez5LiK5Li7576pID4gcmVuJydhaXNoaWpvdXNodWdpXCA7Civoh6rli5Xou4rkv53pmbrmlpkgPiBqaWRvdXNoYWhva2VucnlvdVwgOwor5oim5aC06Iiq56m66Zi75q2iID4gc2Vuam91a291a3V1c29zaGlcIDsKK+e1seWQiOWPguisgOacrOmDqCA+IHRvdWdvdXNhbmJvdWhvbmJ1XCA7CivmnIDplbfkuI3lgJLot53pm6IgPiBzYWljaG91ZnV0b3VreW9yaVwgOwor5Y2w6LGh5Li7576p6Z+z5qW9ID4gaW5zaG91c2h1Z2lvbmdha3VcIDsKK+i/keS7o+S6lOeoruertuaKgCA+IGtpbmRhaWdvc2h1a3lvdWdpXCA7CivlvozmlrnlnLDln5/orablgpkgPiBrb3Vob3VjaGlpa2lrZWliaVwgOwor6Ieq5YuV5pON57im6KOF572uID4gamlkb3Vzb3VqdXVzb3VjaGlcIDsKK+mDveW4guWvvuaKl+mHjueQgyA+IHRvc2hpdGFpa291eWFreXV1XCA7Civph5HliZvlpJzlj4nlppnnjosgPiBrb25nb3V5YXNoYW15b3VvdVwgOwor6auY6YCf5ryU566X5qmf5qeLID4ga291c29rdWVuemFua2lrb3VcIDsKK+mjm+ihjOemgeatouepuuWfnyA+IGhpa291a2luc2hpa3V1aWtpXCA7CivnkrDlooPkv53orbfoq5bogIUgPiBrYW5reW91aG9nb3JvbnNoYVwgOwor6YCx6ZaT5aSp5rCX5LqI5aCxID4gc2h1dWthbnRlbmtpeW9ob3VcIDsKK+aUvuWwhOe3muaEn+WPl+aApyA+IGhvdXNoYXNlbmthbmp1c2VpXCA7CivnpL7kvJrmsJHkuLvkuLvnvqkgPiBzaGFrYWltaW5zaHVzaHVnaVwgOwor6YOo5YiG5oOF5aCx5qeL6YCgID4gYnVidW5qb3Vob3Vrb3V6b3VcIDsKK+S4gOaMmeaJi+S4gOaKlei2syA+IGlra3lvc2h1aXR0b3Vzb2t1XCA7CivmnInlvaLlm7rlrpros4fnlKMgPiB5dXVrZWlrb3RlaXNoaXNhblwgOwor6aOb6KGM6KiY6Yyy6KOF572uID4gaGlrb3VraXJva3Vzb3VjaGlcIDsKK+iiq+aLheS/neWCteaoqemhjSA+IGhpdGFucG9zYWlrZW5nYWt1XCA7CivkuozkuqTmm7/liLblirTlg40gPiBuaWtvdXRhaXNlaXJvdWRvdVwgOwor5L+d5a6I57O754Sh5omA5bGeID4gaG9zaHVrZWltdXNob3pva3VcIDsKK+WPjei7ouWIhuW4g+S/guaVsCA+IGhhbnRlbmJ1bnB1a2Vpc3V1XCA7CivnqbrmjLrpmY3kuIvlnLDln58gPiBrdXV0ZWlrb3VrYWNoaWlraVwgOwor54Gr5Yqb5pSv5o+06YOo6ZqKID4ga2FyeW9rdXNoaWVuYnV0YWlcIDsKK+atjOiInuS8juWNgeWFq+eVqiA+IGthYnVraWp1dWhhY2hpYmFuXCA7CivlpKfph4/noLTlo4rlhbXlmaggPiB0YWlyeW91aGFrYWloZWlraVwgOwor5Y+N5bCE5L+C5pWw57ea5ZuzID4gaGFuc2hha2Vpc3V1c2VuenVcIDsKK+e0oOeykuWtkOWKoOmAn+WZqCA+IHNvcnl1dXNoaWthc29rdWtpXCA7Civoh6rnlLHosr/mmJPlnLDln58gPiBqaXl1dWJvdWVraWNoaWlraVwgOwor5YWs6ZaL5biC5aC05pON5L2cID4ga291a2Fpc2hpam91c291c2FcIDsKK+S6uui6q+S/neitt+S7pOeKtiA+IGppbnNoaW5ob2dvcmVpam91XCA7Civmr43lrZDlgaXlurfmiYvluLMgPiBib3NoaWtlbmtvdXRlY2hvdVwgOwor5Y6a55Sf5bm06YeR5L+d6Zm6ID4ga291c2VpbmVua2luaG9rZW5cIDsKK+aAp+ihjOeCuuaEn+afk+eXhyA+IHNlaWtvdWlrYW5zZW5zaG91XCA7CivnlJ/lkb3kv53pmbrkvJrnpL4gPiBzZWltZWlob2tlbmdhaXNoYVwgOwor56eB5pyJ6LKh55Sj5Yi25bqmID4gc2hpeXV1emFpc2Fuc2VpZG9cIDsKK+S4gOWbveS4gOWFmuS4u+e+qSA+IGlra29rdWl0dG91c2h1Z2lcIDsKK+aXpeacrOmBk+i3r+WFrOWboyA+IG5paG9uZG91cm9rb3VkYW5cIDsKK+Wun+i3teeQhuaAp+aJueWIpCA+IGppc3NlbnJpc2VpaGloYW5cIDsKK+WkmumHjeWQjeWJjeepuumWkyA+IHRhanV1bmFtYWVrdXVrYW5cIDsKK+W5s+WSjOe2reaMgea0u+WLlSA+IGhlaXdhaWppa2F0c3Vkb3VcIDsKK+S6jOWNteaAp+WPjOeUn+WFkCA+IG5pcmFuc2Vpc291c2VpamlcIDsKK+S4u+i+nue0oOaAp+imj+e0hCA+IHNodWppc29zZWlraXlha3VcIDsKK+Wls+aAp+ino+aUvumBi+WLlSA+IGpvc2Vpa2FpaG91dW5kb3VcIDsKK+eCremFuOWQjOWMluS9nOeUqCA+IHRhbnNhbmRvdWthc2F5b3VcIDsKK+S6jOWkp+aUv+WFmuS4u+e+qSA+IG5pZGFpc2VpdG91c2h1Z2lcIDsKK+S4jee0lOeVsOaAp+S6pOmBiiA+IGZ1anVuJydpc2Vpa291eXV1XCA7Civpqqjnmq7nrYvlj7PooZvploAgPiBob25la2F3YXN1amllbW9uXCA7CivmtYXplpPlsbHojZjkuovku7YgPiBhc2FtYXNhbnNvdWppa2VuXCA7CivnkrDlooPkv53orbfkuLvnvqkgPiBrYW5reW91aG9nb3NodWdpXCA7CivkuJbnlYzosr/mmJPmqZ/plqIgPiBzZWthaWJvdWVraWtpa2FuXCA7CivnhKHlvaLlm7rlrpros4fnlKMgPiBtdWtlaWtvdGVpc2hpc2FuXCA7Civpn7Plo7DlpJrph43mlL7pgIEgPiBvbnNlaXRhanV1aG91c291XCA7CivohLPmgKflsI/lhZDpurvnl7ogPiBub3VzZWlzaG91bmltYWhpXCA7CivlpKfmnbHkupzlhbHmoITlnI8gPiBkYWl0b3Vha3lvdWVpa2VuXCA7CivlsI/lo7LniankvqHmjIfmlbAgPiBrb3VyaWJ1a2thc2hpc3V1XCA7Civoh6rnlLHkuLvnvqnntYzmuIggPiBqaXl1dXNodWdpa2VpemFpXCA7CivlpJzplpPpoJDph5HjgIXluqsgPiB5YWthbicneW9raW5raW5rb1wgOwor6YCj6YKm5rqW5YKZ5Yi25bqmID4gcmVucG91anVuYmlzZWlkb1wgOwor6LaF6YGO5Yuk5YuZ5omL5b2TID4gY2hvdWtha2lubXV0ZWF0ZVwgOwor5LqI5YKZ5aOr5a6Y5a2m5qChID4geW9iaXNoaWthbmdha2tvdVwgOwor55S75YOP5Yem55CG6KOF572uID4gZ2F6b3VzaG9yaXNvdWNoaVwgOwor5YWt5Y2B5Zub5YiG6Z+z56ymID4gcm9rdWp1dXNoaWJ1b25wdVwgOwor5pS+5bCE5oCn5ZCM5L2N5L2TID4gaG91c2hhc2VpZG91aXRhaVwgOwor5aSc6ZaT6aCQ6YeR6YeR5bqrID4geWFrYW4nJ3lva2lua2lua29cIDsKK+S6nOeGseW4r+mrmOawl+WcpyA+IGFuZXR0YWlrb3VraWF0c3VcIDsKK+ejgeawl+WFsemztOeUu+WDjyA+IGppa2lreW91bWVpZ2F6b3VcIDsKK+mzpeeNo+S/neitt+WMuuWfnyA+IGNob3VqdXVob2dva3Vpa2lcIDsKK+Wbvemam+aPtOWKqeapn+mWoiA+IGtva3VzYWllbmpva2lrYW5cIDsKK+eEoeaUv+W6nOS4u+e+qeiAhSA+IG11c2VpZnVzaHVnaXNoYVwgOwor5LiW55WM5L+d5YGl5qmf6ZaiID4gc2VrYWlob2tlbmtpa2FuXCA7CivkuozljYHlm5vmmYLplpPliLYgPiBuaWp1dXlvamlrYW5zZWlcIDsKK+eci+itt+WppumkiuaIkOaJgCA+IGthbmdvZnV5b3VzZWlqb1wgOwor5LiN5b2T5Yq05YON6KGM54K6ID4gZnV0b3Vyb3Vkb3Vrb3VpXCA7Civoi6bmg4Xlh6bnkIbmqZ/plqIgPiBrdWpvdXNob3Jpa2lrYW5cIDsKK+ijnOWKqeiomOaGtuijhee9riA+IGhvam9raW9rdXNvdWNoaVwgOwor5paH5a2X5aSa6YeN5pS+6YCBID4gbW9qaXRhanV1aG91c291XCA7CivljLvluKvlm73lrrboqabpqJMgPiBpc2hpa29ra2FzaGlrZW5cIDsKK+iCouS9k+S4jeiHqueUseWFkCA+IHNoaXRhaWZ1aml5dXVqaVwgOwor5Luu5ZCN5ryi5a2X5aSJ5o+bID4ga2FuYWthbmppaGVua2FuXCA7Civlm73lrrblhazli5nlk6Hms5UgPiBrb2trYWtvdW11aW5ob3VcIDsKK+aEj+W/l+axuuWumuapn+mWoiA+IGlzaGlrZXR0ZWlraWthblwgOwor5Li76L6e57Sg5oCn5Y6f55CGID4gc2h1amlzb3NlaWdlbnJpXCA7CivlvIHorbflo6vkuovli5nmiYAgPiBiZW5nb3NoaWppbXVzaG9cIDsKK+iHqueUseS4u+e+qeWbveWutiA+IGppeXV1c2h1Z2lrb2trYVwgOwor55Sf5ZG957at5oyB6KOF572uID4gc2VpbWVpaWppc291Y2hpXCA7CivmloflrZfnrKblj7fljJbms5UgPiBtb2ppZnVnb3VrYWhvdVwgOwor5Y2X54Sh6Zi/5byl6ZmA5LuPID4gbmFtdWFtaWRhYnV0c3VcIDsKK+iqnuW9meapn+iDveaWh+azlSA+IGdvaWtpbm91YnVucG91XCA7CivlgLbmoqjkvL3nvoXntIvntIsgPiBrdXJpa2FyYW1vbm1vblwgOwor5LiJ5Y2B5LqM5YiG6Z+z56ymID4gc2FuanV1bmlidW9ucHVcIDsKK+aIkeWIqeaIkeWIqeS6oeiAhSA+IGdhcmlnYXJpbW91amFcIDsKK+WuiOenmOe+qeWLmemBleWPjSA+IHNodWhpZ2ltdWloYW5cIDsKK+aYr+aYr+mdnumdnuS4u+e+qSA+IHplemVoaWhpc2h1Z2lcIDsKK+eDj+iKu+aymeaRqeWmmeeOiyA+IHVzdXNhbWFteW91b3VcIDsKK+S7o+ihqOWPlue3oOW9uSA+IGRhaWh5b3V0b3Jpc2hpbWFyaXlha3VcIDsKK+WPluaJseiqrOaYjuabuCA+IHRvcmlhdHN1a2Fpc2V0c3VtZWlzaG9cIDsKK+Wbveeri+WNmueJqemkqCA+IGtva3VyaXRzdWhha3VidXRzdWthblwgOwor6ZuG5Lit5rK755mC5a6kID4gc2h1dWNodXVjaGlyeW91c2hpdHN1XCA7Civnm7TovYTmpI3msJHlnLAgPiBjaG9ra2F0c3VzaG9rdW1pbmNoaVwgOwor5pyo6YCg5bu656+J54mpID4gbW9rdXpvdWtlbmNoaWt1YnV0c3VcIDsKK+akjeeJqeaAp+ibi+eZvSA+IHNob2t1YnV0c3VzZWl0YW5wYWt1XCA7Civkv6HnlKjlj5blvJXlhYggPiBzaGluJyd5b3V0b3JpaGlraXNha2lcIDsKK+W4uOWLmeWPlue3oOW9uSA+IGpvdW11dG9yaXNoaW1hcml5YWt1XCA7CivkuIPmmJ/lpKnpgZPomasgPiBuYW5haG9zaGl0ZW50b3VtdXNoaVwgOwor5rCR5peP5aSn6JmQ5q66ID4gbWluem9rdWRhaWd5YWt1c2F0c3VcIDsKK+i2iuW5tOeUn+akjeeJqSA+IGV0c3VuZW5zZWlzaG9rdWJ1dHN1XCA7Civmp4vmiJDntKDntbHlvqEgPiBrb3VzZWlzb2tvdXpvdXRvdWd5b1wgOwor55u05o6l55uu55qE6KqeID4gY2hva3VzZXRzdW1va3V0ZWtpZ29cIDsKK+WwguWLmeWPlue3oOW9uSA+IHNlbm11dG9yaXNoaW1hcml5YWt1XCA7CivkuIDlubTnlJ/mpI3niakgPiBpY2hpbmVuc2Vpc2hva3VidXRzdVwgOwor6bq76Jas5Y+W57eg54+tID4gbWF5YWt1dG9yaXNoaW1hcmloYW5cIDsKK+m6u+iWrOWPlue3oOazlSA+IG1heWFrdXRvcmlzaGltYXJpaG91XCA7CivkuK3lv4PnmoTlvbnlibIgPiBjaHV1c2hpbnRla2l5YWt1d2FyaVwgOwor5Y+O57iu5pyf6KGA5ZynID4gc2h1dXNodWt1a2lrZXRzdWF0c3VcIDsKK+WNmOWtkOiRieakjeeJqSA+IHRhbnNoaXlvdXNob2t1YnV0c3VcIDsKK+mAo+eri+aWueeoi+W8jyA+IHJlbnJpdHN1aG91dGVpc2hpa2lcIDsKK+mAmuWVhueUo+alreecgSA+IHRzdXVzaG91c2FuZ3lvdXNob3VcIDsKK+WOn+WtkOWKm+eZuumbuyA+IGdlbnNoaXJ5b2t1aGF0c3VkZW5cIDsKK+ebtOaOpeawkeS4u+WItiA+IGNob2t1c2V0c3VtaW5zaHVzZWlcIDsKK+mAsuWHuuWItumZkOe3miA+IHNoaW5zaHV0c3VzZWlnZW5zZW5cIDsKK+agquW8j+WPluW8leaJgCA+IGthYnVzaGlraXRvcmloaWtpam9cIDsKK+ebtOaOpeaVmeaOiOazlSA+IGNob2t1c2V0c3VreW91anVob3VcIDsKK+WPjOWtkOiRieakjeeJqSA+IHNvdXNoaXlvdXNob2t1YnV0c3VcIDsKK+iKpeW3nem+jeS5i+S7iyA+IGFrdXRhZ2F3YXJ5dXVub3N1a2VcIDsKK+iyuOWAn+WvvueFp+ihqCA+IHRhaXNoYWt1dGFpc2hvdWh5b3VcIDsKK+WFrOWumuWJsuW8leeOhyA+IGtvdXRlaXdhcmliaWtpcml0c3VcIDsKK+W8t+i/q+elnue1jOeXhyA+IGt5b3VoYWt1c2hpbmtlaXNob3VcIDsKK+WVhualreS/oeeUqOeKtiA+IHNob3VneW91c2hpbicneW91am91XCA7CivovLjlh7rkv6HnlKjnirYgPiB5dXNodXRzdXNoaW4nJ3lvdWpvdVwgOwor5pen5paw57SE5YWo5pu4ID4ga3l1dXNoaW4nJ3lha3V6ZW5zaG9cIDsKK+WHuuWFpeWbveeuoeeQhiA+IHNodXRzdW55dXVrb2t1a2FucmlcIDsKK+manOWus+eJqeertui1sCA+IHNob3VnYWlidXRzdWt5b3Vzb3VcIDsKK+aYvOWFieiJsumbu+eQgyA+IGNodXVrb3VzaG9rdWRlbmt5dXVcIDsKK+WkqeeEtuiJsuWGmeecnyA+IHRlbicnbmVuc2hva3VzaGFzaGluXCA7CivmsLTlipvnmbrpm7vmiYAgPiBzdWlyeW9rdWhhdHN1ZGVuc2hvXCA7CivntKDlh7rlipvmnaHku7YgPiBzb3NodXRzdXJ5b2t1am91a2VuXCA7Civlm73msJHnt4/mlK/lh7ogPiBrb2t1bWluc291c2hpc2h1dHN1XCA7CivmpI3nianmgKfohILogqogPiBzaG9rdWJ1dHN1c2Vpc2hpYm91XCA7Civml6fmlrDntITogZbmm7ggPiBreXV1c2hpbicneWFrdXNlaXNob1wgOwor6ZW35pyf6LK45LuY6YeRID4gY2hvdWtpa2FzaGl0c3VrZWtpblwgOwor55Sf54mp54mp55CG5a2mID4gc2VpYnV0c3VidXRzdXJpZ2FrdVwgOwor5bmz5a6254mp6Kqe5oqEID4gaGVpa2Vtb25vZ2F0YXJpc2hvdVwgOwor6Kaz5a+f55qE56CU56m2ID4ga2Fuc2F0c3V0ZWtpa2Vua3l1dVwgOwor6LOD6LK45YCf5aWR57SEID4gY2hpbnRhaXNoYWt1a2VpeWFrdVwgOwor5b6z5bed5YWs54i16YK4ID4gdG9rdWdhd2Frb3VzaGFrdXRlaVwgOwor57K+56We5YiG6KOC55eHID4gc2Vpc2hpbmJ1bnJldHN1c2hvdVwgOwor5aSq6Zm954ax55m66Zu7ID4gdGFpeW91bmV0c3VoYXRzdWRlblwgOwor5rW35aSW55WZ5a2m54axID4ga2FpZ2Fpcnl1dWdha3VuZXRzdVwgOwor5aaK5aig5Lit5q+S55eHID4gbmluc2hpbmNodXVkb2t1c2hvdVwgOwor54us56uL5o6h566X5Yi2ID4gZG9rdXJpdHN1c2Fpc2Fuc2VpXCA7CivluILloLTljaDmnInnjocgPiBzaGlqb3VzZW4nJ3l1dXJpdHN1XCA7CivoppbogbTopprmlZnmnZAgPiBzaGljaG91a2FrdWt5b3V6YWlcIDsKK+WGhemWo+azleWItuWxgCA+IG5haWtha3Vob3VzZWlreW9rdVwgOwor5Lit5bCP5LyB5qWt5bqBID4gY2h1dXNob3VraWd5b3VjaG91XCA7Civmm7jnsKHkvZPlsI/oqqwgPiBzaG9rYW50YWlzaG91c2V0c3VcIDsKK+ekvuS8mueUn+eJqeWtpiA+IHNoYWthaXNlaWJ1dHN1Z2FrdVwgOwor6LuN6ZqK6KGM6YCy5puyID4gZ3VudGFpa291c2hpbmt5b2t1XCA7CivokazpgIHooYzpgLLmm7IgPiBzb3Vzb3Vrb3VzaGlua3lva3VcIDsKK+eJqeeQhueahOePvuixoSA+IGJ1dHN1cml0ZWtpZ2Vuc2hvdVwgOwor5b+D6IeT5byB6Iac55eHID4gc2hpbnpvdWJlbm1ha3VzaG91XCA7Civohp3ok4vohbHlj43lsIQgPiBzaGl0c3VnYWlrZW5oYW5zaGFcIDsKK+S/uOe1pueUn+a0u+iAhSA+IGhvdWt5dXVzZWlrYXRzdXNoYVwgOwor55Sf54mp5oOF5aCx5a2mID4gc2VpYnV0c3Vqb3Vob3VnYWt1XCA7CivlpJrlubTnlJ/mpI3niakgPiB0YW5lbnNlaXNob2t1YnV0c3VcIDsKK+mHj+WtkOeJqeeQhuWtpiA+IHJ5b3VzaGlidXRzdXJpZ2FrdVwgOwor5YyX57Gz5ZCI6KGG5Zu9ID4gaG9rdWJlaWdhc3NodXVrb2t1XCA7CivmnaXlrqLoirPlkI3pjLIgPiByYWlreWFrdWhvdW1laXJva3VcIDsKK+WcsOaWueaknOWvn+W6gSA+IGNoaWhvdWtlbnNhdHN1Y2hvdVwgOwor5bCC6ZaA55qE55+l6K2YID4gc2VubW9udGVraWNoaXNoaWtpXCA7CivntZDlqZrooYzpgLLmm7IgPiBrZWtrb25rb3VzaGlua3lva3VcIDsKK+agquW8j+mFjeW9k+mHkSA+IGthYnVzaGlraWhhaXRvdWtpblwgOwor54m55Yil6YWN5b2T6YeRID4gdG9rdWJldHN1aGFpdG91a2luXCA7CivntYzmuIjmiJDplbfnjocgPiBrZWl6YWlzZWljaG91cml0c3VcIDsKK+eUo+alreWIpee1hOWQiCA+IHNhbmd5b3ViZXRzdWt1bWlhaVwgOwor5YSq562J5Y2S5qWt55SfID4geXV1dG91c290c3VneW91c2VpXCA7CivlhaXlm73nrqHnkIblsYAgPiBueXV1a29rdWthbnJpa3lva3VcIDsKK+mWk+aOpeaSruW9seazlSA+IGthbnNldHN1c2F0c3VlaWhvdVwgOwor5a6f54mp5aSn5qih5Z6LID4gaml0c3VidXRzdWRhaW1va2VpXCA7Civou43kuovnmoTkvrXnlaUgPiBndW5qaXRla2lzaGlucnlha3VcIDsKK+epjeWIhuaWueeoi+W8jyA+IHNla2lidW5ob3V0ZWlzaGlraVwgOwor56mN566X6Zu75Yqb6KiIID4gc2VraXNhbmRlbnJ5b2t1a2VpXCA7CivkuozlubTnlJ/mpI3niakgPiBuaW5lbnNlaXNob2t1YnV0c3VcIDsKK+WNg+S5neeZvuW5tOS7oyA+IHNlbmt5dXVoeWFrdW5lbmRhaVwgOwor56eR5a2m5Y2a54mp6aSoID4ga2FnYWt1aGFrdWJ1dHN1a2FuXCA7CivkuK3lm73lhbHnlKPlhZogPiBjaHV1Z29rdWt5b3VzYW50b3VcIDsKK+mrmOWIhuWtkOeJqeizqiA+IGtvdWJ1bnNoaWJ1c3NoaXRzdVwgOwor55m66YGU5b+D55CG5a2mID4gaGF0dGF0c3VzaGlucmlnYWt1XCA7Civnsr7npZ7oloTlvLHogIUgPiBzZWlzaGluaGFrdWpha3VzaGFcIDsKK+eJueWIpeihjOaUv+WMuiA+IHRva3ViZXRzdWd5b3VzZWlrdVwgOwor5LiJ6Imy5Y2w5Yi35rOVID4gc2Fuc2hva3VpbnNhdHN1aG91XCA7CivmjpLljbXoqpjnmbrliaQgPiBoYWlyYW4nJ3l1dWhhdHN1emFpXCA7CivnlJ/mtLvlv4XpnIDlk4EgPiBzZWlrYXRzdWhpdHN1anVoaW5cIDsKK+WwkeW5tOmRkeWIpeaJgCA+IHNob3VuZW5rYW5iZXRzdXNob1wgOwor5bqn6aqo56We57WM55ebID4gemFrb3RzdXNoaW5rZWl0c3V1XCA7CivmpI3msJHlnLDmlL/nrZYgPiBzaG9rdW1pbmNoaXNlaXNha3VcIDsKK+iovOWIuOWPluW8leazlSA+IHNob3VrZW50b3JpaGlraWhvdVwgOwor5ZWG5ZOB5Zue6Lui546HID4gc2hvdWhpbmthaXRlbnJpdHN1XCA7Civnr4DotrPli5XnianploAgPiBzZXNzb2t1ZG91YnV0c3Vtb25cIDsKK+ioiOeul+eUn+eJqeWtpiA+IGtlaXNhbnNlaWJ1dHN1Z2FrdVwgOwor5bCx6IG35oOF5aCx6KqMID4gc2h1dXNob2t1am91aG91c2hpXCA7Civlu7roqK3nmoTplqLkv4IgPiBrZW5zZXRzdXRla2lrYW5rZWlcIDsKK+WuouWupOS5l+WLmeWToSA+IGt5YWt1c2hpdHN1am91bXVpblwgOwor5pSv5oyB5Yqb5a6a5byPID4gc2hpamlyeW9rdXRlaXNoaWtpXCA7Civli5XnianooYzli5XlraYgPiBkb3VidXRzdWtvdWRvdWdha3VcIDsKK+iBt+iDveS7o+ihqOWItiA+IHNob2t1bm91ZGFpaHlvdXNlaVwgOwor5pyA6auY5qSc5a+f5bqBID4gc2Fpa291a2Vuc2F0c3VjaG91XCA7Civlv4PnpZ7ogJflvLHogIUgPiBzaGluc2hpbm1vdWpha3VzaGFcIDsKK+eEoeiEiuakjuWLleeJqSA+IG11c2VraXRzdWlkb3VidXRzdVwgOwor5a625a6F5L615YWl572qID4ga2F0YWt1c2hpbicnbnl1dXphaVwgOwor5YiG5a2Q55Sf54mp5a2mID4gYnVuc2hpc2VpYnV0c3VnYWt1XCA7CivlpKnkvZPlhpnnnJ/ooZMgPiB0ZW50YWlzaGFzaGluanV0c3VcIDsKK+enmOWvhua8j+a0qee9qiA+IGhpbWl0c3Vyb3VzZXRzdXphaVwgOwor6ZaT5o6l55uu55qE6KqeID4ga2Fuc2V0c3Vtb2t1dGVraWdvXCA7CivnspjmtrLliIbms4zohbogPiBuZW4nJ2VraWJ1bnBpdHN1c2VuXCA7CivnnqzplpPmjqXnnYDliaQgPiBzaHVua2Fuc2V0Y2hha3V6YWlcIDsKK+S6uuWPo+WvhumbhueOhyA+IGppbmtvdW1pc3NodXVyaXRzdVwgOwor5Y6f6Imy5YaZ55yf54mIID4gZ2Vuc2hva3VzaGFzaGluYmFuXCA7Civph4/lrZDoibLlipvlraYgPiByeW91c2hpaXJvcmlraWdha3VcIDsKK+WcqOaXpeexs+mZuOi7jSA+IHphaW5pY2hpYmVpcmlrdWd1blwgOwor6aOf5ZOB5re75Yqg54mpID4gc2hva3VoaW50ZW5rYWJ1dHN1XCA7Civli5XnianmgKfom4vnmb0gPiBkb3VidXRzdXNlaXRhbnBha3VcIDsKK+eJueWumumDteS+v+WxgCA+IHRva3V0ZWl5dXViaW5reW9rdVwgOwor54Gr5Yqb55m66Zu75omAID4ga2FyeW9rdWhhdHN1ZGVuc2hvXCA7CivlpJrop5LlvI/ovrLmpa0gPiB0YWtha3VzaGlraW5vdWd5b3VcIDsKK+awuOS4luS4reeri+WbvSA+IGVpc2VpY2h1dXJpdHN1a29rdVwgOwor5ZSv54mp5byB6Ki85rOVID4geXVpYnV0c3ViZW5zaG91aG91XCA7Civlj7LnmoTllK/nianoq5YgPiBzaGl0ZWtpeXVpYnV0c3Vyb25cIDsKK+Wuo+iqk+S+m+i/sOabuCA+IHNlbnNlaWt5b3VqdXRzdXNob1wgOwor54ax6Iao5by15L+C5pWwID4gbmV0c3Vib3VjaG91a2Vpc3V1XCA7CivmpI3nianmgKfnuYrntq0gPiBzaG9rdWJ1dHN1c2Vpc2VuJydpXCA7CivpgY7lpLHlgrflrrPnvaogPiBrYXNoaXRzdXNob3VnYWl6YWlcIDsKK+WFseWQjOWJteioreiAhSA+IGt5b3Vkb3Vzb3VzZXRzdXNoYVwgOwor5LiK57Sa5Ymv56S+6ZW3ID4gam91a3l1dWZ1a3VzaGFjaG91XCA7CivmiKbnlaXnmoTmj5DmkLogPiBzZW5yeWFrdXRla2l0ZWlrZWlcIDsKK+eSsOWig+W6gemVt+WumCA+IGthbmt5b3VjaG91Y2hvdWthblwgOwor5Zyn5Yqb6Kq/5pW05ZmoID4gYXRzdXJ5b2t1Y2hvdXNlaWtpXCA7CivnlJ/prq7po5/mlpnlk4EgPiBzZWlzZW5zaG9rdXJ5b3VoaW5cIDsKK+aUvuWwhOaAp+eJqeizqiA+IGhvdXNoYXNlaWJ1c3NoaXRzdVwgOwor5Zyw55CD54mp55CG5a2mID4gY2hpa3l1dWJ1dHN1cmlnYWt1XCA7Civlj43lrpfmlZnmlLnpnakgPiBoYW5zaHV1a3lvdWthaWtha3VcIDsKK+WtpuitmOe1jOmok+iAhSA+IGdha3VzaGlraWtlaWtlbnNoYVwgOwor6LWk6Z2i5oGQ5oCW55eHID4gc2VraW1lbmt5b3VmdXNob3VcIDsKK+mjn+WTgeihm+eUn+azlSA+IHNob2t1aGluJydlaXNlaWhvdVwgOwor5pWZ6IG35ZOh57WE5ZCIID4ga3lvdXNob2t1aW5rdW1pYWlcIDsKK+avm+ayouadseS4u+W4rSA+IG1vdXRha3V0b3VzaHVzZWtpXCA7CivliKXpgJTnqY3nq4vph5EgPiBiZXR0b3RzdW1pdGF0ZWtpblwgOwor6L+U5L+h5paZ6JGJ5pu4ID4gaGVuc2hpbnJ5b3VoYWdha2lcIDsKK+iruOi7iumAmuihjOatoiA+IHNob3NoYXRzdXVrb3Vkb21lXCA7Civlm73lnJ/luoHplbflrpggPiBrb2t1ZG9jaG91Y2hvdWthblwgOwor5Yun5ZaE5oey5oKq5YqHID4ga2FuemVuY2hvdWFrdWdla2lcIDsKK+WMu+WtpueUn+eJqeWtpiA+IGlnYWt1c2VpYnV0c3VnYWt1XCA7CivpnZ7mqJnmupbmi6HlvLUgPiBoaWh5b3VqdW5rYWt1Y2hvdVwgOwor5aSq6Zm95YWJ55m66Zu7ID4gdGFpeW91a291aGF0c3VkZW5cIDsKK+i/lOS/oeeUqOiRieabuCA+IGhlbnNoaW4nJ3lvdWhhZ2FraVwgOwor55yf54+g6aSK5q6W5aC0ID4gc2hpbmp1eW91c2hva3Vqb3VcIDsKK+iCi+mWk+elnue1jOeXmyA+IHJva2thbnNoaW5rZWl0c3V1XCA7CivmtbfmtIvniannkIblraYgPiBrYWl5b3VidXRzdXJpZ2FrdVwgOwor57K+56We55qE6Ium55ebID4gc2Vpc2hpbnRla2lrdXRzdXVcIDsKK+S6pOa1geeZuumbu+apnyA+IGtvdXJ5dXVoYXRzdWRlbmtpXCA7Civni6nnjJ/mjqHpm4bmsJEgPiBzaHVyeW91c2Fpc2h1dW1pblwgOwor5oim6ZeY5q2j6Z2i5bmFID4gc2VudG91c2hvdW1lbmhhYmFcIDsKK+S4jeS/oeS7u+aKleelqCA+IGZ1c2hpbicnbmludG91aHlvdVwgOwor6YCB6YeR5Y+X5Y+W5Lq6ID4gc291a2luJyd1a2V0b3JpbmluXCA7CivvvKTvvLLvvLPnkIboq5YgPiBkaVwgzIRhXCDMhHJ1ZXN1cmlyb25cIDsKK+mjn+ezp+euoeeQhuazlSA+IHNob2t1cnlvdWthbnJpaG91XCA7Civnm7Lohbjngo7miYvooZMgPiBtb3VjaG91ZW5zaHVqdXRzdVwgOwor56ys5LiA57Sa5q665Lq6ID4gZGFpaWtreXV1c2F0c3VqaW5cIDsKK+aIpueVpeaguOWFteWZqCA+IHNlbnJ5YWt1a2FrdWhlaWtpXCA7Civlh43ntZDpmLLmraLliaQgPiB0b3VrZXRzdWJvdXNoaXphaVwgOwor5Lit6ZaT6YWN5b2T6aGNID4gY2h1dWthbmhhaXRvdWdha3VcIDsKK+mrmOmAn+Wil+aulueCiSA+IGtvdXNva3V6b3VzaG9rdXJvXCA7Civov5Tkv6HmlpnlsIHnrZIgPiBoZW5zaGlucnlvdWZ1dXRvdVwgOwor6KGb5pif5Zyw55CD5bGAID4gZWlzZWljaGlreXV1a3lva3VcIDsKK+WcqOeVmeWkluWbveS6uiA+IHphaXJ5dXVnYWlrb2t1amluXCA7CivnlKPmpa3lu4Pmo4TniakgPiBzYW5neW91aGFpa2lidXRzdVwgOwor5aSp54S26KiY5b+154mpID4gdGVuJyduZW5raW5lbmJ1dHN1XCA7Civlh7rnlJ/oqLzmmI7mm7ggPiBzaHVzc2Vpc2hvdW1laXNob1wgOwor5LiK57Sa566h55CG6IG3ID4gam91a3l1dWthbnJpc2hva3VcIDsKK+eojumWoueUs+WRiuabuCA+IHplaWthbnNoaW5rb2t1c2hvXCA7Civov5Tkv6HnlKjlsIHnrZIgPiBoZW5zaGluJyd5b3VmdXV0b3VcIDsKK+eGseeLgueahOS/oeiAhSA+IG5la2t5b3V0ZWtpc2hpbmphXCA7CivkvIHmpa3plpPkv6HnlKggPiBraWd5b3VrYW5zaGluJyd5b3VcIDsKK+mWi+aLk+iAheeyvuelniA+IGthaXRha3VzaGFzZWlzaGluXCA7Civmt7HlnKjmgKfnnJ/oj4wgPiBzaGluemFpc2Vpc2hpbmtpblwgOwor5p2R6JC95YWx5ZCM5L2TID4gc29ucmFrdWt5b3Vkb3V0YWlcIDsKK+S4iumZuOeUqOiIn+iJhyA+IGpvdXJpa3V5b3VzaHV1dGVpXCA7Civlj6TnlJ/nianlrabogIUgPiBrb3NlaWJ1dHN1Z2FrdXNoYVwgOwor6ZaL55m66YCU5LiK5Zu9ID4ga2FpaGF0c3V0b2pvdWtva3VcIDsKK+ihgOWcp+mZjeS4i+WJpCA+IGtldHN1YXRzdWtvdWthemFpXCA7CivnhKHlt67liKXniIbmkoMgPiBtdXNhYmV0c3ViYWt1Z2VraVwgOwor5bmz5ZKM55qE6Kej5rG6ID4gaGVpd2F0ZWtpa2Fpc2V0c3VcIDsKK+mjn+WTgeWKoOW3pealrSA+IHNob2t1aGlua2Frb3VneW91XCA7Civpq5jntJrkvY/lroXlnLAgPiBrb3VreXV1anV1dGFrdWNoaVwgOwor6YGO5aSx6Ie05q27572qID4ga2FzaGl0c3VjaGlzaGl6YWlcIDsKK+mrmOmhjeaJgOW+l+iAhSA+IGtvdWdha3VzaG90b2t1c2hhXCA7CivljYHkuIDpnaLoprPpn7MgPiBqdXVpY2hpbWVua2FuJydub25cIDsKK+aciOe1jOWbsOmbo+eXhyA+IGdla2tlaWtvbicnbmFuc2hvdVwgOwor5Zu96Zqb6KaL5pys5biCID4ga29rdXNhaW1paG9uJydpY2hpXCA7Civnt5HlnLDljJboqIjnlLsgPiByeW9rdWNoaWtha2Vpa2FrdVwgOwor5Lit5p6i56We57WM57O7ID4gY2h1dXN1dXNoaW5rZWlrZWlcIDsKK+Wun+mok+eahOeglOeptiA+IGppa2tlbnRla2lrZW5reXV1XCA7CivlsILnlKjpp5Dou4rloLQgPiBzZW4nJ3lvdWNodXVzaGFqb3VcIDsKK+eEoemBjuWkseiyrOS7uyA+IG11a2FzaGl0c3VzZWtpbmluXCA7CivkuIDmrKHmlrnnqIvlvI8gPiBpY2hpamlob3V0ZWlzaGlraVwgOwor5bCx5qWt5pmC6ZaT5LitID4gc2h1dWd5b3VqaWthbmNodXVcIDsKK+WbveawkeS8keaah+adkSA+IGtva3VtaW5reXV1a2FtdXJhXCA7CivlrZDlrq7lpJblporlqKAgPiBzaGlreXV1Z2Fpbmluc2hpblwgOwor54Sh5ouF5L+d6LK45LuYID4gbXV0YW5wb2thc2hpdHN1a2VcIDsKK+S4gOeykuWtkOaXoue0hCA+IGljaGlyeXV1c2hpa2l5YWt1XCA7CivkvIHmpa3liKXntYTlkIggPiBraWd5b3ViZXRzdWt1bWlhaVwgOwor5LiN5rOV5L615YWl6ICFID4gZnVob3VzaGluJydueXV1c2hhXCA7Civlj47nqavmhJ/orJ3npa0gPiBzaHV1a2FrdWthbnNoYXNhaVwgOwor5oyH5ZCR5oCn54iG6JasID4gc2hpa291c2VpYmFrdXlha3VcIDsKK+W/g+WboOaAp+WPjeW/nCA+IHNoaW4nJ2luc2VpaGFuJydub3VcIDsKK+S6nOeGseW4r+akjeeJqSA+IGFuZXR0YWlzaG9rdWJ1dHN1XCA7CivlhoXplqPnt4/ovp7ogbcgPiBuYWlrYWt1c291amlzaG9rdVwgOwor6Ki85Yi45Y+W5byV5omAID4gc2hvdWtlbnRvcmloaWtpam9cIDsKK+WxiOaKmOacm+mBoOmPoSA+IGt1c3NldHN1Ym91ZW5reW91XCA7Civmra/niZnnn6/mraPooZMgPiBzaGlnYWt5b3VzZWlqdXRzdVwgOwor5Y2Y57Sw6IOe55Sf54mpID4gdGFuc2FpYm91c2VpYnV0c3VcIDsKK+aXpeacrOiWrOWxgOaWuSA+IG5paG9uJyd5YWtreW9rdWhvdVwgOwor5rex5bGk5b+D55CG5a2mID4gc2hpbnNvdXNoaW5yaWdha3VcIDsKK+eyvuelnuiWhOW8seWFkCA+IHNlaXNoaW5oYWt1amFrdWppXCA7CivljJblrabmlrnnqIvlvI8gPiBrYWdha3Vob3V0ZWlzaGlraVwgOwor5oCl6ZmN5LiL54iG5pKDID4ga3l1dWtvdWthYmFrdWdla2lcIDsKK+awtOS4iueUn+a0u+iAhSA+IHN1aWpvdXNlaWthdHN1c2hhXCA7CivlnKjlraboqLzmmI7mm7ggPiB6YWlnYWt1c2hvdW1laXNob1wgOwor5qSN5rCR5Zyw57Wx5rK7ID4gc2hva3VtaW5jaGl0b3VjaGlcIDsKK+mWouaVsOaWueeoi+W8jyA+IGthbnN1dWhvdXRlaXNoaWtpXCA7CivmjqjpgLLnoJTnqbbmiYAgPiBzdWlzaGlua2Vua3l1dXNob1wgOwor5oim6KGT5qC45YW15ZmoID4gc2VuanV0c3VrYWt1aGVpa2lcIDsKK+eZuuWxleeahOino+a2iCA+IGhhdHRlbnRla2lrYWlzaG91XCA7Civlm73nq4vlm7Pmm7jppKggPiBrb2t1cml0c3V0b3Nob2thblwgOwor5LiJ6KGM5bqD5ZGK5qyEID4gc2FuZ3lvdWtvdWtva3VyYW5cIDsKK+WLp+alreWNmuimp+S8miA+IGthbmd5b3VoYWt1cmFua2FpXCA7CivliIbmnpDlv4PnkIblraYgPiBidW5zZWtpc2hpbnJpZ2FrdVwgOwor5pWZ6IKy5b+D55CG5a2mID4ga3lvdWlrdXNoaW5yaWdha3VcIDsKK+alreWLmeS4iumBjuWksSA+IGd5b3VtdWpvdWthc2hpdHN1XCA7CivmiJDnuL7oqLzmmI7mm7ggPiBzZWlzZWtpc2hvdW1laXNob1wgOwor5YWl5a2m5b+X6aGY6ICFID4gbnl1dWdha3VzaGlnYW5zaGFcIDsKK+S4reWkruaUvumAgeWxgCA+IGNodXVvdWhvdXNvdWt5b2t1XCA7CivlhbHlkIznm7jntprkurogPiBreW91ZG91c291em9rdW5pblwgOwor56CU56m255m66KGo5LyaID4ga2Vua3l1dWhhcHB5b3VrYWlcIDsKK+WkqeS9k+WIhuWFieihkyA+IHRlbnRhaWJ1bmtvdWp1dHN1XCA7CivnkIPpnaLkuInop5Lms5UgPiBreXV1bWVuc2Fua2FrdWhvdVwgOwor6KiI6YeP57WM5riI5a2mID4ga2VpcnlvdWtlaXphaWdha3VcIDsKK+iRl+S9nOaoqeS+teWusyA+IGNob3Nha3VrZW5zaGluZ2FpXCA7CivnibnliKXlvIHorbfkurogPiB0b2t1YmV0c3ViZW5nb25pblwgOwor5a+M5Zu95by35YW1562WID4gZnVrb2t1a3lvdWhlaXNha3VcIDsKK+S6iOaDs+WPjuepq+mrmCA+IHlvc291c2h1dWtha3VkYWthXCA7CivooYDlj4vnl4XmgqPogIUgPiBrZXRzdXl1dWJ5b3VrYW5qYVwgOwor55u06KeS5LiJ6KeS5b2iID4gY2hva2tha3VzYW5rYWtrZWlcIDsKK+mXh+S+oeagvOWNlOWumiA+IHlhbWlrYWtha3VreW91dGVpXCA7CivotaTlpJbnt5rlhpnnnJ8gPiBzZWtpZ2Fpc2Vuc2hhc2hpblwgOwor5aSp55qH5qmf6Zai6KqsID4gdGVuJydub3VraWthbnNldHN1XCA7CivlhazoqLzkurrlvbnloLQgPiBrb3VzaG91bmluJyd5YWt1YmFcIDsKK+i2heePvuWun+S4u+e+qSA+IGNob3VnZW5qaXRzdXNodWdpXCA7CivkuozmpbXnnJ/nqbrnrqEgPiBuaWt5b2t1c2hpbmt1dWthblwgOwor6Ziq56We5aSn6ZyH54G9ID4gaGFuc2hpbmRhaXNoaW5zYWlcIDsKK+azleWumuW+l+elqOaVsCA+IGhvdXRlaXRva3VoeW91c3V1XCA7CivoqK3nq4votqPmhI/mm7ggPiBzZXRzdXJpdHN1c2h1aXNob1wgOwor5aSW5Zu95Lq655m76YyyID4gZ2Fpa29rdWppbnRvdXJva3VcIDsKK+i6q+S9k+manOWus+iAhSA+IHNoaW50YWlzaG91Z2Fpc2hhXCA7CivmtojosrvogIXkv6HnlKggPiBzaG91aGlzaGFzaGluJyd5b3VcIDsKK+mIjeinkuS4ieinkuW9oiA+IGRvbmtha3VzYW5rYWt1a2VpXCA7Civmtbfpm6Plr6nliKTluoEgPiBrYWluYW5zaGlucGFuY2hvdVwgOwor54qv572q55m655Sf546HID4gaGFuemFpaGFzc2Vpcml0c3VcIDsKK+W+rueUn+eJqeWtpuiAhSA+IGJpc2VpYnV0c3VnYWt1c2hhXCA7CivkuIPoibLllJDovpvlrZAgPiBuYW5haXJvdG91Z2FyYXNoaVwgOwor5YWs6IG36YG45oyZ5rOVID4ga291c2hva3VzZW5reW9ob3VcIDsKK+WumuW9oumDteS+v+eJqSA+IHRlaWtlaXl1dWJpbmJ1dHN1XCA7Civlr77kuK3lm73plqLkv4IgPiB0YWljaHV1Z29rdWthbmtlaVwgOwor56eR5a2m5oqA6KGT5bqBID4ga2FnYWt1Z2lqdXRzdWNob3VcIDsKK+Wkp+iLseWNmueJqemkqCA+IGRhaWVpaGFrdWJ1dHN1a2FuXCA7Civli5XohIjnoazljJbnl4cgPiBkb3VteWFrdWtvdWthc2hvdVwgOwor5bid546L56We5qip6KqsID4gdGVpb3VzaGlua2Vuc2V0c3VcIDsKK+Wuh+WumeWkp+eIhueZuiA+IHVjaHV1ZGFpYmFrdWhhdHN1XCA7Civpppbnm7jlhbzlpJbnm7ggPiBzaHVzaG91a2VuZ2Fpc2hvdVwgOwor55Sf54mp5Zyw55CG5a2mID4gc2VpYnV0c3VjaGlyaWdha3VcIDsKK+WOn+WtkOeJqeeQhuWtpiA+IGdlbnNoaWJ1dHN1cmlnYWt1XCA7CivnlaXlj5boqpjmi5DnvaogPiByeWFrdXNodXl1dWthaXphaVwgOwor5aSp5L2T54mp55CG5a2mID4gdGVudGFpYnV0c3VyaWdha3VcIDsKK+mZjeWcp+WkieWcp+WZqCA+IGtvdWF0c3VoZW4nJ2F0c3VraVwgOwor5p2x5Y2w5bqm5Lya56S+ID4gaGlnYXNoaWluZG9nYWlzaGFcIDsKK+eJqeizquS4u+e+qeiAhSA+IGJ1c3NoaXRzdXNodWdpc2hhXCA7Civlm73pmpvnmoTosr/mmJMgPiBrb2t1c2FpdGVraWJvdWVraVwgOwor5Lit5oCn5a2Q54iG5by+ID4gY2h1dXNlaXNoaWJha3VkYW5cIDsKK+S7o+aVsOaWueeoi+W8jyA+IGRhaXN1dWhvdXRlaXNoaWtpXCA7CivlubPlnYflpKrpmb3ml6UgPiBoZWlraW50YWl5b3VqaXRzdVwgOwor5Lmz5YWQ5q275Lqh546HID4gbnl1dWppc2hpYm91cml0c3VcIDsKK+S4h+WbveWNmuimp+S8miA+IGJhbmtva3VoYWt1cmFua2FpXCA7CivpmLLooZvmlr3oqK3luoEgPiBib3VlaXNoaXNldHN1Y2hvdVwgOwor5pyJ5paZ6aeQ6LuK5aC0ID4geXV1cnlvdWNodXVzaGFqb3VcIDsKK+iHqOW6iuW/g+eQhuWtpiA+IHJpbnNob3VzaGlucmlnYWt1XCA7CivlhpnnnJ/pgLHliIroqowgPiBzaGFzaGluc2h1dWthbnNoaVwgOwor5beo55+z6KiY5b+154mpID4ga3lvc2VraWtpbmVuYnV0c3VcIDsKK+S6jOWFg+aWueeoi+W8jyA+IG5pZ2VuaG91dGVpc2hpa2lcIDsKK+mBk+e+qeeahOiyrOS7uyA+IGRvdWdpdGVraXNla2luaW5cIDsKK+eNheWtkOWUkOi+m+WtkCA+IHNoaXNoaXRvdWdhcmFzaGlcIDsKK+awl+ixoeims+a4rOiIuSA+IGtpc2hvdWthbnNva3VzZW5cIDsKK+S6uueMv+WQjOelluiqrCA+IGppbicnZW5kb3Vzb3NldHN1XCA7Civlm6PkvZPkuqTmuInmqKkgPiBkYW50YWlrb3VzaG91a2VuXCA7Civlr77kurrmgZDmgJbnl4cgPiB0YWlqaW5reW91ZnVzaG91XCA7CivohLPohIrpq4Tohpzngo4gPiBub3VzZWtpenVpbWFrdWVuXCA7CivopoHms6jmhI/kurrniakgPiB5b3VjaHV1aWppbmJ1dHN1XCA7CivlrabmoKHmlZnogrLms5UgPiBnYWtrb3VreW91aWt1aG91XCA7CivnjovmqKnnpZ7mjojoqqwgPiBvdWtlbnNoaW5qdXNldHN1XCA7CivnnJ/pg6jliIbpm4blkIggPiBzaGluYnVidW5zaHV1Z291XCA7Civni6zljaDnpoHmraLms5UgPiBkb2t1c2Vua2luc2hpaG91XCA7CivlsYXplpPlhbzlr53lrqQgPiBpbWFrZW5zaGluc2hpdHN1XCA7Civlhaznp7Dos4fmnKzph5EgPiBrb3VzaG91c2hpaG9ua2luXCA7Civpm7vli5Xnmbrli5XmqZ8gPiBkZW5kb3VoYXRzdWRvdWtpXCA7Civlv5znlKjniannkIblraYgPiBvdXlvdWJ1dHN1cmlnYWt1XCA7CivkuInljYHlhavluqbnt5ogPiBzYW5qdXVoYWNoaWRvc2VuXCA7Civoqo3nn6Xlv4PnkIblraYgPiBuaW5jaGlzaGlucmlnYWt1XCA7Civlt6Xmpa3miYDmnInmqKkgPiBrb3VneW91c2hveXV1a2VuXCA7CivlpJrlpInph4/op6PmnpAgPiB0YWhlbnJ5b3VrYWlzZWtpXCA7CivmuIXmtrzpo7LmlpnmsLQgPiBzZWlyeW91aW5yeW91c3VpXCA7Civph5HliKnnlJ/mtLvogIUgPiBraW5yaXNlaWthdHN1c2hhXCA7CivpgbroqIDln7fooYzogIUgPiB5dWlnb25zaGlra291c2hhXCA7Civosr/mmJPlpJblj47mlK8gPiBib3Vla2lnYWlzaHV1c2hpXCA7Civmn5PoibLkvZPlnLDlm7MgPiBzZW5zaG9rdXRhaWNoaXp1XCA7CivkuLvluK3noJTnqbblk6EgPiBzaHVzZWtpa2Vua3l1dWluXCA7Civpq5jpgJ/luqblhpnnnJ8gPiBrb3Vzb2t1ZG9zaGFzaGluXCA7Civpq5jmrKHmlrnnqIvlvI8gPiBrb3VqaWhvdXRlaXNoaWtpXCA7Civlvq7liIbmlrnnqIvlvI8gPiBiaWJ1bmhvdXRlaXNoaWtpXCA7Civpg7Xkvr/np4Hmm7jnrrEgPiB5dXViaW5zaGlzaG9iYWtvXCA7CivmlpzmoLzmgKfntbHlvqEgPiBzaGFrYWt1c2VpdG91Z3lvXCA7CivntYzlj6Ppgb/lporolqwgPiBrZWlrb3VoaW5pbicneWFrdVwgOwor5Lq65p2Q6ZaL55m66YOoID4gamluemFpa2FpaGF0c3VidVwgOwor5LiH5Zu95qiZ5rqW5pmCID4gYmFua29rdWh5b3VqdW5qaVwgOwor6Ziy6KGb5bqB6ZW35a6YID4gYm91ZWljaG91Y2hvdWthblwgOwor5ZCr5rC05YyW5ZCI54mpID4gZ2Fuc3Vpa2Fnb3VidXRzdVwgOwor6Zai5p2x5aSn6ZyH54G9ID4ga2FudG91ZGFpc2hpbnNhaVwgOwor6KOF55Sy5Zue5Y+O6LuKID4gc291a291a2Fpc2h1dXNoYVwgOwor5Zyw5pa56KGM6LKh5pS/ID4gY2hpaG91Z3lvdXphaXNlaVwgOwor5oCn6KGo54++5oOF5aCxID4gc2VpaHlvdWdlbmpvdWhvdVwgOwor5biM5pyb55qE6Kaz5risID4ga2lib3V0ZWtpa2Fuc29rdVwgOwor5Y+N5bCE5rib6KGw6YePID4gaGFuc2hhZ2Vuc3VpcnlvdVwgOwor5aSJ5oWL5b+D55CG5a2mID4gaGVudGFpc2hpbnJpZ2FrdVwgOwor5qyn5bee5YWx5ZCM5L2TID4gb3VzaHV1a3lvdWRvdXRhaVwgOwor57Sr5aSW57ea55mC5rOVID4gc2hpZ2Fpc2VucnlvdWhvdVwgOwor6Z2e5q2m6KOF5Lit56uLID4gaGlidXNvdWNodXVyaXRzdVwgOwor5Li75bit5aSW5Lqk5a6YID4gc2h1c2VraWdhaWtvdWthblwgOwor57Sw6IOe6LOq6YG65LydID4gc2FpYm91c2hpdHN1aWRlblwgOwor5YWx55Sj5YWa5a6j6KiAID4ga3lvdXNhbnRvdXNlbmdlblwgOwor5beh5Zue6Ki655mC5omAID4ganVua2Fpc2hpbnJ5b3Vqb1wgOwor5rqQ5rOJ5omA5b6X56iOID4gZ2Vuc2Vuc2hvdG9rdXplaVwgOwor57WE6IG35Yq05YON6ICFID4gc29zaG9rdXJvdWRvdXNoYVwgOwor5Yq05YON6ICF6ZqO57SaID4gcm91ZG91c2hha2Fpa3l1dVwgOwor5ouh5aSn5YaN55Sf55SjID4ga2FrdWRhaXNhaXNlaXNhblwgOwor5LiK57Sa6KOB5Yik5omAID4gam91a3l1dXNhaWJhbnNob1wgOwor56aB5qyy5Li7576p6ICFID4ga2luJyd5b2t1c2h1Z2lzaGFcIDsKK+eJueauiua9nOiIquiJhyA+IHRva3VzaHVzZW5rb3V0ZWlcIDsKK+acgOaBteWbveW+hemBhyA+IHNhaWtlaWtva3V0YWlndXVcIDsKK+WFseeUo+S4u+e+qeWbvSA+IGt5b3VzYW5zaHVnaWtva3VcIDsKK+WOn+WRiuWvvuiiq+WRiiA+IGdlbmtva3V0YWloaWtva3VcIDsKK+WPl+iol+WPjuizhOe9qiA+IGp1dGFrdXNodXV3YWl6YWlcIDsKK+a1geihjOaAp+aEn+WGkiA+IHJ5dXVrb3VzZWlrYW5ib3VcIDsKK+Wbveawkee3j+eUn+eUoyA+IGtva3VtaW5zb3VzZWlzYW5cIDsKK+S4rei3nembouertui1sCA+IGNodXVreW9yaWt5b3Vzb3VcIDsKK+WFqOWbveeahOevhOWbsiA+IHplbmtva3V0ZWtpaGFuJydpXCA7CivpgKPpgqblhbHlkozlm70gPiByZW5wb3VreW91d2Frb2t1XCA7Civmma7pgY3nmoTms5XliYcgPiBmdWhlbnRla2lob3Vzb2t1XCA7CivlpKfntbHpoJjpgbjmjJkgPiBkYWl0b3VyeW91c2Vua3lvXCA7Civml6XnjLblkIznpZboq5YgPiBuaWNoaXl1dWRvdXNvcm9uXCA7CivkuKHmm7/miYvmlbDmlpkgPiByeW91Z2FldGVzdXVyeW91XCA7Civos4fmnKzliKnnm4rnjocgPiBzaGlob25yaWVraXJpdHN1XCA7CivmiKbou4rmj5rpmbjoiaYgPiBzZW5zaGF5b3VyaWt1a2FuXCA7Civlo7LmmKXpmLLmraLms5UgPiBiYWlzaHVuYm91c2hpaG91XCA7CivlhYnljJblrablj43lv5wgPiBrb3VrYWdha3VoYW4nJ25vdVwgOwor6LuN5LqL5b2T5bGA6ICFID4gZ3Vuaml0b3VreW9rdXNoYVwgOwor6IKJ5L2T5Yq05YON6ICFID4gbmlrdXRhaXJvdWRvdXNoYVwgOwor6Ieq5Li75rWB6YCa57GzID4gamlzaHVyeXV1dHN1dW1haVwgOwor56ys5LiA5qyh55Sj5qWtID4gZGFpaWNoaWppc2FuZ3lvdVwgOwor5a6f5a2Y5Li7576p6ICFID4gaml0c3V6b25zaHVnaXNoYVwgOwor54++5a6f5Li7576p6ICFID4gZ2Vuaml0c3VzaHVnaXNoYVwgOwor5Y+N5pS/5bqc5Yui5YqbID4gaGFuc2VpZnVzZWlyeW9rdVwgOwor5YWN55ar5LiN5YWo55eHID4gbWVuJydla2lmdXplbnNob3VcIDsKK+WNgemAsuWIhumhnuazlSA+IGppc3NoaW5idW5ydWlob3VcIDsKK+WBtuWDj+aVmeW+kueahCA+IGd1dXpvdWt5b3V0b3Rla2lcIDsKK+e0heeZveatjOWQiOaIpiA+IGtvdWhha3V1dGFnYXNzZW5cIDsKK+e1jOa4iOeglOeptuaJgCA+IGtlaXphaWtlbmt5dXVzaG9cIDsKK+i7jeS6i+mAmuS/oeWToSA+IGd1bmppdHN1dXNoaW4nJ2luXCA7Civln7rmupblhoXos4Pph5EgPiBraWp1bicnbmFpY2hpbmdpblwgOwor55yM5bqB5omA5Zyo5ZywID4ga2VuY2hvdXNob3phaWNoaVwgOwor55yf5a6X5aSn6LC35rS+ID4gc2hpbnNodXVvb3RhbmloYVwgOwor5YaN5YWl5Zu96Kix5Y+vID4gc2Fpbnl1dWtva3VreW9rYVwgOwor6Iux5Zu95Zu95pWZ5LyaID4gZWlrb2t1a29ra3lvdWthaVwgOwor5riF5pWZ5b6S6Z2p5ZG9ID4gc2Vpa3lvdXRva2FrdW1laVwgOwor5aSq6Zm956We57WM5Y+iID4gdGFpeW91c2hpbmtlaXNvdVwgOwor57WM5Za25a2m5L+u5aOrID4ga2VpZWlnYWt1c2h1dXNoaVwgOwor5YGl5bq36Ki85piO5pu4ID4ga2Vua291c2hvdW1laXNob1wgOwor56S+5Lya5b+D55CG5a2mID4gc2hha2Fpc2hpbnJpZ2FrdVwgOwor5YWs5YWx5LyB5qWt5L2TID4ga291a3lvdWtpZ3lvdXRhaVwgOwor6YO95biC5YaN6ZaL55m6ID4gdG9zaGlzYWlrYWloYXRzdVwgOwor5pS+5bCE57ea55mC5rOVID4gaG91c2hhc2VucnlvdWhvdVwgOwor5Zu96YCj5YiG5ouF6YeRID4ga29rdXJlbmJ1bnRhbmtpblwgOwor5a6a5pyf5YiK6KGM54mpID4gdGVpa2lrYW5rb3VidXRzdVwgOwor5pS75pKD6ZaL5aeL57eaID4ga291Z2VraWthaXNoaXNlblwgOwor5bmz6Z2i5LiJ6KeS5rOVID4gaGVpbWVuc2Fua2FrdWhvdVwgOwor5rOV5a6a5Lyd5p+T55eFID4gaG91dGVpZGVuc2VuYnlvdVwgOwor5Lit6Led6Zui56u25LqJID4gY2h1dWt5b3Jpa3lvdXNvdVwgOwor5LiJ5Y+J56We57WM55ebID4gc2Fuc2FzaGlua2VpdHN1dVwgOwor5YSq5Yud5rG65a6a5oimID4geXV1c2hvdWtldHRlaXNlblwgOwor5pyA5L2O55Sf5rS76LK7ID4gc2FpdGVpc2Vpa2F0c3VoaVwgOwor5bqc55yM5Yil5Lq65Y+jID4gZnVrZW5iZXRzdWppbmtvdVwgOwor5o6o5a6a55u457aa5Lq6ID4gc3VpdGVpc291em9rdW5pblwgOwor5aSa5Zu957GN5LyB5qWtID4gdGFrb2t1c2VraWtpZ3lvdVwgOwor5pm05LiA5pmC5bCP6ZuoID4gaGFyZWljaGlqaWtvc2FtZVwgOwor5a2j56+A5Yq05YON6ICFID4ga2lzZXRzdXJvdWRvdXNoYVwgOwor5Lit5bCP6Ku45Zu95a62ID4gY2hvdXNob3VzaG9rb2trYVwgOwor5LiN5bmz562J5p2h57SEID4gZnVieW91ZG91am91eWFrdVwgOwor5pyA5L2O6LOD6YeR5Yi2ID4gc2FpdGVpY2hpbmdpbnNlaVwgOwor5bid5Zu95Li7576p55qEID4gdGVpa29rdXNodWdpdGVraVwgOwor57SN56iO6YCa55+l5pu4ID4gbm91emVpdHN1dWNoaXNob1wgOwor6Zai56iO5Ymy5b2T5Yi2ID4ga2FuemVpd2FyaWF0ZXNlaVwgOwor5bGF5L2P6Ki85piO5pu4ID4ga3lvanV1c2hvdW1laXNob1wgOwor5aSn5L2/57Sa5Lya6KuHID4gdGFpc2hpa3l1dWthaWRhblwgOwor5rCR5Li75rS75YuV5a62ID4gbWluc2h1a2F0c3Vkb3VrYVwgOwor5a6i5ZOh56CU56m25ZOhID4ga3lha3Vpbmtlbmt5dXVpblwgOwor5pSv5oyB5Yqb5L+C5pWwID4gc2hpamlyeW9rdWtlaXN1dVwgOwor55u05LiL5Z6L5Zyw6ZyHID4gY2hva2thZ2F0YWppc2hpblwgOwor5pyq6Kej5rG65ZWP6aGMID4gbWlrYWlrZXRzdW1vbmRhaVwgOwor5bu656+J5Z+65rqW5rOVID4ga2VuY2hpa3VraWp1bmhvdVwgOwor55+l55qE5omA5pyJ5qipID4gY2hpdGVraXNob3l1dWtlblwgOwor6IG35qWt5a6J5a6a5omAID4gc2hva3VneW91YW50ZWlqb1wgOwor5YWx55Sj5YWa57Sw6IOeID4ga3lvdXNhbnRvdXNhaWJvdVwgOwor5LiA5bm055Sf6I2J5pysID4gaWNoaW5lbnNlaXNvdWhvblwgOwor5p2h57SE5Yqg55uf5Zu9ID4gam91eWFrdWthbWVpa29rdVwgOwor56uL5q2j5L285oiQ5LyaID4gcmlzc2hvdWtvdXNlaWthaVwgOwor5YWx6Kaz56aP6Z+z5pu4ID4ga3lvdWthbmZ1a3VpbnNob1wgOwor6auY5omA5oGQ5oCW55eHID4ga291c2hva3lvdWZ1c2hvdVwgOwor5paw6IGe6LKp5aOy5bqXID4gc2hpbmJ1bmhhbmJhaXRlblwgOwor6L6y5p6X5rC055Sj55yBID4gbm91cmluc3Vpc2Fuc2hvdVwgOwor5LqM6ICF6YG45LiA5rOVID4gbmlzaGFzZW4nJ2l0c3Vob3VcIDsKK+Wig+eVjOWApOWVj+mhjCA+IGt5b3VrYWljaGltb25kYWlcIDsKK+ekvuS8muS6uumHjueQgyA+IHNoYWthaWppbicneWFreXV1XCA7Civoj5zpo5/kuLvnvqnogIUgPiBzYWlzaG9rdXNodWdpc2hhXCA7Civou43nlKPopIflkIjkvZMgPiBndW5zYW5mdWt1Z291dGFpXCA7Civnsr7npZ7ljLvlrabogIUgPiBzZWlzaGluJydpZ2FrdXNoYVwgOwor57WM5riI5LyB55S75bqBID4ga2VpemFpa2lrYWt1Y2hvdVwgOwor5YWI56uv5pSv5oyB5YqbID4gc2VudGFuc2hpamlyeW9rdVwgOwor5L+d5YGl54mp55CG5a2mID4gaG9rZW5idXRzdXJpZ2FrdVwgOwor5YiG6Kej6JK45rqc5rOVID4gYnVua2Fpam91cnl1dWhvdVwgOwor6KiI6YeP6KiA6Kqe5a2mID4ga2VpcnlvdWdlbmdvZ2FrdVwgOwor5Zyw5Z+f5oyv6IiI5Yi4ID4gY2hpaWtpc2hpbmtvdWtlblwgOwor5oCl6YCy5Li7576p6ICFID4ga3l1dXNoaW5zaHVnaXNoYVwgOwor5Lqk6YCa6YGL6Ly45qWtID4ga291dHN1dXVuJyd5dWd5b3VcIDsKK+eEoeWItumZkOS+m+e1piA+IG11c2VpZ2Vua3lvdWt5dXVcIDsKK+e1puS4juaJgOW+l+iAhSA+IGt5dXV5b3Nob3Rva3VzaGFcIDsKK+aIpumXmOeIhuaSg+apnyA+IHNlbnRvdWJha3VnZWtpa2lcIDsKK+ael+alreippumok+WgtCA+IHJpbmd5b3VzaGlrZW5qb3VcIDsKK+aTsuW8vueZuuWwhOetkiA+IHRla2lkYW5oYXNzaGF0b3VcIDsKK+eUo+i7jeikh+WQiOS9kyA+IHNhbmd1bmZ1a3Vnb3V0YWlcIDsKK+acgOWkp+WFrOe0hOaVsCA+IHNhaWRhaWtvdXlha3VzdXVcIDsKK+WbveWGhea2iOiyu+eojiA+IGtva3VuYWlzaG91aGl6ZWlcIDsKK+WwkeW5tOWvqeWIpOaJgCA+IHNob3VuZW5zaGlucGFuam9cIDsKK+a1geihjOaAp+iCneeCjiA+IHJ5dXVrb3VzZWlrYW4nJ2VuXCA7Civmupbmupbmsbrli53miKYgPiBqdW5qdW5rZXNzaG91c2VuXCA7CivkuI3lrozlhajnh4PnhLwgPiBmdWthbnplbicnbmVuc2hvdVwgOwor5Y6f5a2Q5Yqb5pmC5LujID4gZ2Vuc2hpcnlva3VqaWRhaVwgOwor6L6y5qWt6Kmm6aiT5aC0ID4gbm91Z3lvdXNoaWtlbmpvdVwgOwor6auY6YCf5bqm5pKu5b2xID4ga291c29rdWRvc2F0c3VlaVwgOwor5aW95rCX5oCn55Sf54mpID4ga291a2lzZWlzZWlidXRzdVwgOwor5a625bqt5YaF5pq05YqbID4ga2F0ZWluYWlib3VyeW9rdVwgOwor5Zyo57GN5bCC5b6T6ICFID4gemFpc2VraXNlbmp1dXNoYVwgOwor5a6Y6LK755WZ5a2m55SfID4ga2FucGlyeXV1Z2FrdXNlaVwgOwor5Y2X5YyX5pyd5pmC5LujID4gbmFuYm9rdWNob3VqaWRhaVwgOwor5q275Lqh6Ki65pat5pu4ID4gc2hpYm91c2hpbmRhbnNob1wgOwor5bym5qW95Zub6YeN5aWPID4gZ2VuZ2FrdXNoaWp1dXNvdVwgOwor5Luy6KOB6KOB5Yik5omAID4gY2h1dXNhaXNhaWJhbnNob1wgOwor55CG6KuW54mp55CG5a2mID4gcmlyb25idXRzdXJpZ2FrdVwgOwor5YWo6Iis5YmN5ZOo57eaID4gemVucGFuemVuc2hvdXNlblwgOwor5Y2B5LqM5oyH6IW46JmrID4ganV1bmlzaGljaG91Y2h1dVwgOwor5Zyf5pyo5bel5a2m6ICFID4gZG9ib2t1a291Z2FrdXNoYVwgOwor5pel5Lit6Z+T57Wx5ZCIID4gbml0Y2h1dWthbnRvdWdvdVwgOwor5ouh5by15YCN57K+5bqmID4ga2FrdWNob3ViYWlzZWlkb1wgOwor5Yq05YON5Y+O5a655omAID4gcm91ZG91c2h1dXlvdXNob1wgOwor54Sh552A6Zm46aOb6KGMID4gbXVjaGFrdXJpa3VoaWtvdVwgOwor5pel5LuY5aSJ5pu057eaID4gaGlkenVrZWhlbmtvdXNlblwgOwor5b2T5LqL6ICF6IO95YqbID4gdG91amlzaGFub3VyeW9rdVwgOwor5pCN55uK6KiI566X5pu4ID4gc29uJydla2lrZWlzYW5zaG9cIDsKK+aApeihjOWBnOi7iumnhSA+IGt5dXVrb3V0ZWlzaGFla2lcIDsKK+WPjeakjeawkeS4u+e+qSA+IGhhbnNob2t1bWluc2h1Z2lcIDsKK+alteS9jua4qeenkeWtpiA+IGt5b2t1dGVpb25rYWdha3VcIDsKK+WGmeecn+acm+mBoOmPoSA+IHNoYXNoaW5ib3Vlbmt5b3VcIDsKK+WmmeazleiTruiPr+e1jCA+IG15b3Vob3VyZW5nZWt5b3VcIDsKK+Wun+eUqOS4u+e+qeiAhSA+IGppdHN1eW91c2h1Z2lzaGFcIDsKK+W+jOaWuemAo+e1oee3miA+IGtvdWhvdXJlbnJha3VzZW5cIDsKK+Wun+mok+W/g+eQhuWtpiA+IGppa2tlbnNoaW5yaWdha3VcIDsKK+S4jeazleWFpeWbveiAhSA+IGZ1aG91bnl1dWtva3VzaGFcIDsKK+WkmuWFg+aWueeoi+W8jyA+IHRhZ2VuaG91dGVpc2hpa2lcIDsKK+WbveWGhee3j+eUn+eUoyA+IGtva3VuYWlzb3VzZWlzYW5cIDsKK+mJhOmBk+WFrOWuieWumCA+IHRldHN1ZG91a291YW5rYW5cIDsKK+W5s+WPsOWei+iyqOi7iiA+IGhpcmFkYWlnYXRha2FzaGFcIDsKK+S6uuensOS7o+WQjeipniA+IG5pbnNob3VkYWltZWlzaGlcIDsKK+Wun+alreS5i+aXpeacrCA+IGppdHN1Z3lvdW5vbmlob25cIDsKK+epjeWxpOS5vumbu+axoCA+IHNla2lzb3VrYW5kZW5jaGlcIDsKK+ihjOaUv+euoeeQhuW6gSA+IGd5b3VzZWlrYW5yaWNob3VcIDsKK+i1pOWNgeWtl+adoee0hCA+IHNla2lqdXVqaWpvdXlha3VcIDsKK+WFieWtpumhleW+rumPoSA+IGtvdWdha3VrZW5iaWt5b3VcIDsKK+W8t+WItuWPjuWuueaJgCA+IGt5b3VzZWlzaHV1eW91am9cIDsKK+eKr+e9quW/g+eQhuWtpiA+IGhhbnphaXNoaW5yaWdha3VcIDsKK+mAo+mCpuaNnOafu+WxgCA+IHJlbnBvdXNvdXNha3lva3VcIDsKK+Wkp+mZuOenu+WLleiqrCA+IHRhaXJpa3VpZG91c2V0c3VcIDsKK+S8gealreWGheaVmeiCsiA+IGtpZ3lvdW5haWt5b3Vpa3VcIDsKK+eqkue0oOmFuOWMlueJqSA+IGNoaXNzb3NhbmthYnV0c3VcIDsKK+W4neeOi+WIh+mWi+ihkyA+IHRlaW91c2Vra2FpanV0c3VcIDsKK+aYpeapn+eZuuWLleacnyA+IHNodW5raWhhdHN1ZG91a2lcIDsKK+WkqeW5leijvemAoOS6uiA+IHRlbm1ha3VzZWl6b3VuaW5cIDsKK+acgOWEquengOmBuOaJiyA+IHNhaXl1dXNodXVzZW5zaHVcIDsKK+WLneWIqeWPiOWLneWIqSA+IHNob3VyaW1hdGFzaG91cmlcIDsKK+Wls+a1geaWh+WtpuiAhSA+IGpvcnl1dWJ1bmdha3VzaGFcIDsKK+iAkOS5hea2iOiyu+iyoSA+IHRhaWt5dXVzaG91aGl6YWlcIDsKK+mdnuWFrOW8j+WNlOitsCA+IGhpa291c2hpa2lreW91Z2lcIDsKK+epuua4r+S9v+eUqOaWmSA+IGt1dWtvdXNoaXlvdXJ5b3VcIDsKK+eEoemHjeWKm+eKtuaFiyA+IG11anV1cnlva3Vqb3V0YWlcIDsKK+WkqeeFp+eah+Wkp+elniA+IHRlbnNob3Vrb3VkYWlqaW5cIDsKK+eyvuelnuWuieWumuWJpCA+IHNlaXNoaW4nJ2FudGVpemFpXCA7CivphbjmgKfphbjljJbniakgPiBzYW5zZWlzYW5rYWJ1dHN1XCA7Civlhpnlrp/kuLvnvqnogIUgPiBzaGFqaXRzdXNodWdpc2hhXCA7CivlhrfmiKblnovmgJ3ogIMgPiByZWlzZW5nYXRhc2hpa291XCA7Civpm7vlrZDlt6Xmpa3kvJogPiBkZW5zaGlrb3VneW91a2FpXCA7Civpm7vlrZDlt6XlrabogIUgPiBkZW5zaGlrb3VnYWt1c2hhXCA7CivmsJHkuLvlhbHlkozlm70gPiBtaW5zaHVreW91d2Frb2t1XCA7Civni6znq4voqJjlv7Xml6UgPiBkb2t1cml0c3VraW5lbmJpXCA7CivljJblraboqr/lkbPmlpkgPiBrYWdha3VjaG91bWlyeW91XCA7CivntYLouqvpm4fnlKjliLYgPiBzaHV1c2hpbmtveW91c2VpXCA7CivkuI3lrprmlrnnqIvlvI8gPiBmdXRlaWhvdXRlaXNoaWtpXCA7CivlpKfkv67pgZPpmaLplbcgPiBkYWlzaHV1ZG91aW5jaG91XCA7CivmuK/mub7pgYvpgIHmpa0gPiBrb3V3YW4nJ3Vuc291Z3lvdVwgOwor5ZGo5rOi5pWw5aSJ6Kq/ID4gc2h1dWhhc3V1aGVuY2hvdVwgOwor5Lm+54el5Zyw6L6y5qWtID4ga2Fuc291Y2hpbm91Z3lvdVwgOwor55Kw5aKD6YWN5oWu5pu4ID4ga2Fua3lvdWhhaXJ5b3Nob1wgOwor5Zu65L2T54mp55CG5a2mID4ga290YWlidXRzdXJpZ2FrdVwgOwor57WE57mU5Yq05YON6ICFID4gc29zaGlraXJvdWRvdXNoYVwgOwor5Za25qWt5aCx5ZGK5pu4ID4gZWlneW91aG91a29rdXNob1wgOwor5bqD5ZGK5Luj55CG5bqXID4ga291a29rdWRhaXJpdGVuXCA7CivmiKbmmYLlm73pmpvms5UgPiBzZW5qaWtva3VzYWlob3VcIDsKK+Wkmumhjee0jeeojuiAhSA+IHRhZ2FrdW5vdXplaXNoYVwgOwor5aSq5YWD5bil5aaZ546LID4gZGFpZ2Vuc3VpbXlvdW91XCA7CivkuK3pg6jlpKrlubPmtIsgPiBjaHV1YnV0YWloZWl5b3VcIDsKK+S8gealreWGhee1hOWQiCA+IGtpZ3lvdW5haWt1bWlhaVwgOwor5aSq5bmz5rSL5oim5LqJID4gdGFpaGVpeW91c2Vuc291XCA7CivpgKPluK/kv53oqLzkurogPiByZW50YWlob3Nob3VuaW5cIDsKK+i7jeWbveS4u+e+qeiAhSA+IGd1bmtva3VzaHVnaXNoYVwgOwor5Y+N5bid5Zu95Li7576pID4gaGFudGVpa29rdXNodWdpXCA7CivkvJrnpL7mm7TnlJ/ms5UgPiBrYWlzaGFrb3VzZWlob3VcIDsKK+WbvemBuOW8geitt+S6uiA+IGtva3VzZW5iZW5nb25pblwgOwor6Ieq54S25Zyw55CG5a2mID4gc2hpemVuY2hpcmlnYWt1XCA7CivlnLDln5/nmoTliIbluIMgPiBjaGlpa2l0ZWtpYnVucHVcIDsKK+WJquaWreWuieWumuaApyA+IHNlbmRhbicnYW50ZWlzZWlcIDsKK+mrmOWIhuWtkOWMluWtpiA+IGtvdWJ1bnNoaWthZ2FrdVwgOwor5oOF5aCx5YWs6ZaL5rOVID4gam91aG91a291a2FpaG91XCA7Civlj43lsITmnJvpgaDpj6EgPiBoYW5zaGFib3Vlbmt5b3VcIDsKK+eJueWIpeWnlOWToeS8miA+IHRva3ViZXRzdWlpbmthaVwgOwor5YaF6ZyA5Li75bCO5Z6LID4gbmFpanVzaHVkb3VnYXRhXCA7CivmmbTlpKnkubHmsJfmtYEgPiBzZWl0ZW5yYW5raXJ5dXVcIDsKK+WfuuacrOeahOS6uuaoqSA+IGtpaG9udGVraWppbmtlblwgOwor5oim5LqJ54qv572q5Lq6ID4gc2Vuc291aGFuemFpbmluXCA7Civlj43lr77osr/mmJPpoqggPiBoYW50YWlib3Vla2lmdXVcIDsKK+mBk+i3r+S6pOmAmuazlSA+IGRvdXJva291dHN1dWhvdVwgOwor5YWx55Sj5Zu95a626YOhID4ga3lvdXNhbmtva2thZ3VuXCA7Civku67oo4Xlt6HmtIvoiaYgPiBrYXNvdWp1bicneW91a2FuXCA7CivmlZnogrLln7rmnKzms5UgPiBreW91aWt1a2lob25ob3VcIDsKK+eUn+eUo+iAheS+oeagvCA+IHNlaXNhbnNoYWtha2FrdVwgOwor5pyA5bCP5LqM5LmX5rOVID4gc2Fpc2hvdW5pam91aG91XCA7CivkuLvlubnnoJTnqbblk6EgPiBzaHVrYW5rZW5reXV1aW5cIDsKK+WumOWDmuS4u+e+qeiAhSA+IGthbnJ5b3VzaHVnaXNoYVwgOwor5bCP6YG45oyZ5Yy65Yi2ID4gc2hvdXNlbmt5b2t1c2VpXCA7Civoh6rou6Lou4rmk43mpa0gPiBqaXRlbnNoYXNvdWd5b3VcIDsKK+S4lueVjOaWsOiomOmMsiA+IHNla2Fpc2hpbmtpcm9rdVwgOwor5ZWG5bel5Lya6K2w5omAID4gc2hvdWtvdWthaWdpc2hvXCA7CivlvL7lir7oo4HliKTmiYAgPiBkYW5nYWlzYWliYW5zaG9cIDsKK+S/neitt+mWoueojueOhyA+IGhvZ29rYW56ZWlyaXRzdVwgOwor5rqW56aB5rK755Sj6ICFID4ganVua2luY2hpc2Fuc2hhXCA7CivorbDpmaLlhoXplqPliLYgPiBnaWluJyduYWlrYWt1c2VpXCA7CivnlJ/mtLvkv53orbfms5UgPiBzZWlrYXRzdWhvZ29ob3VcIDsKK+WFseeUo+S4u+e+qeiAhSA+IGt5b3VzYW5zaHVnaXNoYVwgOwor5q2j5a6J5oGv6aaZ6YW4ID4gc2VpYW5zb2t1a291c2FuXCA7CivlhazlrrPnl4XmgqPogIUgPiBrb3VnYWlieW91a2FuamFcIDsKK+iyoeaUv+aKleiejeizhyA+IHphaXNlaXRvdXl1dXNoaVwgOwor5riv5rm+5Yq05YON6ICFID4ga291d2Fucm91ZG91c2hhXCA7CivlhoXpmbjmgKfmsJflgJkgPiBuYWlyaWt1c2Vpa2lrb3VcIDsKK+S4reWkruaomea6luaZgiA+IGNodXVvdWh5b3VqdW5qaVwgOwor5oqV5YWJ54Wn5piO5ZmoID4gdG91a291c2hvdW1laWtpXCA7Civnt4/lkIznm5/nvbfmpa0gPiBzb3Vkb3VtZWloaWd5b3VcIDsKK+acgOmrmOijgeWIpOaJgCA+IHNhaWtvdXNhaWJhbnNob1wgOwor5Za25Zuj5Zyw5LiL6YmEID4gZWlkYW5jaGlrYXRldHN1XCA7Civpo73lkozljJblkIjniakgPiBob3V3YWthZ291YnV0c3VcIDsKK+mHkeWxnuaOouefpeapnyA+IGtpbnpva3V0YW5jaGlraVwgOwor5rWu5YuV5bCP5pWw54K5ID4gZnVkb3VzaG91c3V1dGVuXCA7CivoqIDoqp7lv4PnkIblraYgPiBnZW5nb3NoaW5yaWdha3VcIDsKK+S4gOWnq+S6jOWkqumDjiA+IGljaGloaW1lbml0YXJvdVwgOwor55WM6Z2i5rS75oCn5YmkID4ga2FpbWVua2Fzc2VpemFpXCA7CivkurrnlJ/moYjlhoXmrIQgPiBqaW5zZWlhbicnbmFpcmFuXCA7CivkuIDliIbkuozljYHnp5IgPiBpcHB1bicnbmlqdXVieW91XCA7CivljZfpmL/lhbHlkozlm70gPiBuYW4nJ2FreW91d2Frb2t1XCA7CivkuLvmiKbpl5jmiKbou4ogPiBzaHVzZW50b3VzZW5zaGFcIDsKK+avlOi8g+iogOiqnuWtpiA+IGhpa2FrdWdlbmdvZ2FrdVwgOwor5YaF5pS/5LiN5bmy5riJID4gbmFpc2VpZnVrYW5zaG91XCA7Civpq5jnrYnoo4HliKTmiYAgPiBrb3V0b3VzYWliYW5zaG9cIDsKK+eQg+mdouW5vuS9leWtpiA+IGt5dXVtZW5raWthZ2FrdVwgOwor6Zu75a2Q6aGV5b6u6Y+hID4gZGVuc2hpa2VuYmlreW91XCA7CivlirTlg43nlJ/nlKPmgKcgPiByb3Vkb3VzZWlzYW5zZWlcIDsKK+W5s+ihjOWbm+i+uuW9oiA+IGhlaWtvdXNoaWhlbmtlaVwgOwor5oSf5YK35Li7576p6ICFID4ga2Fuc2hvdXNodWdpc2hhXCA7CivlrabnlJ/oh6rmsrvkvJogPiBnYWt1c2VpamljaGlrYWlcIDsKK+W5tOmHkeWPl+e1puiAhSA+IG5lbmtpbmp1a3l1dXNoYVwgOwor6Z2e5ZCM5pyf6YCa5L+hID4gaGlkb3VraXRzdXVzaGluXCA7CivkuInljYHlubTmiKbkuokgPiBzYW5qdXVuZW5zZW5zb3VcIDsKK+mWieaJgOaBkOaAlueXhyA+IGhlaWpva3lvdWZ1c2hvdVwgOwor5Y+45rOV56CU5L+u5omAID4gc2hpaG91a2Vuc2h1dWpvXCA7CivkvY7ph5HliKnmlL/nrZYgPiB0ZWlraW5yaXNlaXNha3VcIDsKK+m6u+iWrOW4uOeUqOiAhSA+IG1heWFrdWpvdXlvdXNoYVwgOwor6ZW36Led6Zui5YiX6LuKID4gY2hvdWt5b3JpcmVzc2hhXCA7Civmh7LnvbDlp5Tlk6HkvJogPiBjaG91YmF0c3VpaW5rYWlcIDsKK+acieapn+WMluWQiOeJqSA+IHl1dWtpa2Fnb3VidXRzdVwgOwor5qW95aSp5Li7576p6ICFID4gcmFrdXRlbnNodWdpc2hhXCA7CivnhKHmnaHku7bpmY3kvI8gPiBtdWpvdWtlbmtvdWZ1a3VcIDsKK+mBi+i7ouWFjeioseiovCA+IHVudGVubWVua3lvc2hvdVwgOwor5qC86ZeY5oim6YOo6ZqKID4ga2FrdXRvdXNlbmJ1dGFpXCA7CivlsZXnpLrljbPlo7LkvJogPiB0ZW5qaXNva3ViYWlrYWlcIDsKK+i7jeS6i+Wig+eVjOe3miA+IGd1bmppa3lvdWthaXNlblwgOwor5raI6LK76ICF5Zuj5L2TID4gc2hvdWhpc2hhZGFudGFpXCA7CivlhajkvZPkuLvnvqnlm70gPiB6ZW50YWlzaHVnaWtva3VcIDsKK+S4jeWPr+S+teadoee0hCA+IGZ1a2FzaGluam91eWFrdVwgOwor5bqn5bit5oyH5a6a5Yi4ID4gemFzZWtpc2hpdGVpa2VuXCA7CivluLDlm73lrZDlpbPmnqAgPiBraWtva3VzaGlqb3dha3VcIDsKK+mBuuiogOijnOi2s+abuCA+IHl1aWdvbmhvc29rdXNob1wgOwor54Kt6Ymx5Yq05YON6ICFID4gdGFua291cm91ZG91c2hhXCA7Civop6PmnpDlub7kvZXlraYgPiBrYWlzZWtpa2lrYWdha3VcIDsKK+e1jOa4iOaAp+WQkeS4iiA+IGtlaXphaXNlaWtvdWpvdVwgOwor5Zyw5LiL5qC45a6f6aiTID4gY2hpa2FrYWt1amlra2VuXCA7Civmr5Tkvovku6PooajliLYgPiBoaXJlaWRhaWh5b3VzZWlcIDsKK+eri+aGsuWQm+S4u+aUvyA+IHJpa2tlbmt1bnNodXNlaVwgOwor6a2a6Zu355m65bCE566hID4gZ3lvcmFpaGFzc2hha2FuXCA7CivmkI3nm4rliIblspDngrkgPiBzb24nJ2VraWJ1bmtpdGVuXCA7CivnpL7kvJrkv53pmbrluoEgPiBzaGFrYWlob2tlbmNob3VcIDsKK+atqeihjOiAheWkqeWbvSA+IGhva291c2hhdGVuZ29rdVwgOwor5Zu95rCR55qG5L+d6Zm6ID4ga29rdW1pbmthaWhva2VuXCA7CivljZjntJTlho3nlJ/nlKMgPiB0YW5qdW5zYWlzZWlzYW5cIDsKK+iiq+mBuOaMmeizh+agvCA+IGhpc2Vua3lvc2hpa2FrdVwgOwor5Z+65rqW5aSW6LOD6YeRID4ga2lqdW5nYWljaGluZ2luXCA7CivnhrHluK/kvY7msJflnKcgPiBuZXR0YWl0ZWlraWF0c3VcIDsKK+ePvuWcqOWujOS6huaZgiA+IGdlbnphaWthbnJ5b3VqaVwgOwor562J6L665LiJ6KeS5b2iID4gdG91aGVuc2Fua2Fra2VpXCA7Civml6XluLjojLbpo6/kuosgPiBuaWNoaWpvdXNhaGFuamlcIDsKK+mAo+mOlueKtueQg+iPjCA+IHJlbnNham91a3l1dWtpblwgOwor5Y6f54iG54qg54my6ICFID4gZ2VuYmFrdWdpc2Vpc2hhXCA7CivlpJblm73mipXos4flrrYgPiBnYWlrb2t1dG91c2hpa2FcIDsKK+mbu+azouWkqeaWh+WtpiA+IGRlbnBhdGVubW9uZ2FrdVwgOwor5qeL6YCg6KiA6Kqe5a2mID4ga291em91Z2VuZ29nYWt1XCA7CivlnLDln5/lhrfmmpbmiL8gPiBjaGlpa2lyZWlkYW5ib3VcIDsKK+S6uuW3peWRvOWQuOazlSA+IGppbmtvdWtva3l1dWhvdVwgOwor5a6f6Ki85Li7576p6ICFID4gamlzc2hvdXNodWdpc2hhXCA7CivmlK/mjIHlipvnkIboq5YgPiBzaGlqaXJ5b2t1cmlyb25cIDsKK+WFrOmWi+iojuirluS8miA+IGtvdWthaXRvdXJvbmthaVwgOwor5paH6YOo56eR5a2m55yBID4gbW9uYnVrYWdha3VzaG91XCA7CivnibnoqLHmmI7ntLDmm7ggPiB0b2treW9tZWlzYWlzaG9cIDsKK+eojuWItuiqv+afu+S8miA+IHplaXNlaWNob3VzYWthaVwgOwor55m65bGV6YCU5LiK5Zu9ID4gaGF0dGVudG9qb3Vrb2t1XCA7CivlhazlhbHlm7Pmm7jppKggPiBrb3VreW91dG9zaG9rYW5cIDsKK+WbveWGheimj+agvOWMliA+IGtva3VuYWlraWtha3VrYVwgOwor5Ym156uL6KiY5b+15pelID4gc291cml0c3VraW5lbmJpXCA7Civph5Hpiq3nmbvpjLLlmaggPiBraW5zZW50b3Vyb2t1a2lcIDsKK+WKtOWDjee1hOWQiOazlSA+IHJvdWRvdWt1bWlhaWhvdVwgOwor57Sg5b2i5p2Q55Sj5qWtID4gc29rZWl6YWlzYW5neW91XCA7CivkuqTmj5vosr/mmJPliLYgPiBrb3VrYW5ib3Vla2lzZWlcIDsKK+ePvuWcsOmnkOWcqOWToSA+IGdlbmNoaWNodXV6YWlpblwgOwor5pyA5bCP6Ieq5LmX5rOVID4gc2Fpc2hvdWppam91aG91XCA7CivlsI/lnovkuZfnlKjou4ogPiBrb2dhdGFqb3V5b3VzaGFcIDsKK+WxnuaAp+WApOihjOWIlyA+IHpva3VzZWd5b3VyZXRzdVwgOwor5rW36LuN5YW15a2m5qChID4ga2FpZ3VuaGVpZ2Fra291XCA7Civpu4TpgZPljYHkuozlrq4gPiBrb3Vkb3VqdXVuaWt5dXVcIDsKK+WHuuadpemrmOS7leS6iyA+IGRla2lkYWthc2hpZ290b1wgOwor6LOH55Sj6LKg5YK16KGoID4gc2hpc2FuZnVzYWloeW91XCA7CivniYjmqKnmiYDmnInogIUgPiBoYW5rZW5zaG95dXVzaGFcIDsKK+S/oeW+kuS8neWLleiAhSA+IHNoaW50b2RlbmRvdXNoYVwgOwor5a6Y6IO95Li7576p6ICFID4ga2FuJydub3VzaHVnaXNoYVwgOwor6IGW6ZyK6ZmN6Ieo56WtID4gc2VpcmVpa291cmluc2FpXCA7CivmtYHooYzmgKfohLPngo4gPiByeXV1a291c2Vpbm91ZW5cIDsKK+iomOW/teirluaWh+mbhiA+IGtpbmVucm9uYnVuc2h1dVwgOwor6Ieq5YuV6YCj57WQ5qmfID4gamlkb3VyZW5rZXRzdWtpXCA7CivlpKfpmbjmgKfmsJflgJkgPiB0YWlyaWt1c2Vpa2lrb3VcIDsKK+aguOWFteWZqOWun+mokyA+IGtha3VoZWlraWppa2tlblwgOwor6KqH5aSn5aaE5oOz54uCID4ga29kYWltb3Vzb3VreW91XCA7CivouqvliIboqLzmmI7mm7ggPiBtaWJ1bnNob3VtZWlzaG9cIDsKK+aWh+WMluS6uumhnuWtpiA+IGJ1bmthamlucnVpZ2FrdVwgOwor56ys5LiJ5qyh55Sj5qWtID4gZGFpc2FuamlzYW5neW91XCA7CivmlofljJblpKfpnanlkb0gPiBidW5rYWRhaWtha3VtZWlcIDsKK+mdnuWxgOaJgOWIhuWykCA+IGhpa3lva3VzaG9idW5raVwgOwor6Zai5L+C5Luj5ZCN6KmeID4ga2Fua2VpZGFpbWVpc2hpXCA7CivlpJrlm73nsY3oqIDoqp4gPiB0YWtva3VzZWtpZ2VuZ29cIDsKK+awtOmKgOawl+Wcp+ioiCA+IHN1aWdpbmtpYXRzdWtlaVwgOwor5YWQ56ul5b+D55CG5a2mID4gamlkb3VzaGlucmlnYWt1XCA7CivnqbrmtJ7ljJbnj77osaEgPiBrdXVkb3VrYWdlbnNob3VcIDsKK+eEoeeQhuaWueeoi+W8jyA+IG11cmlob3V0ZWlzaGlraVwgOwor5Lqk5beu5a++56ew5oCnID4ga291c2F0YWlzaG91c2VpXCA7CivllqflmKnkuKHmiJDmlZcgPiBrZW5rYXJ5b3VzZWliYWlcIDsKK+imluiBtOimmuapn+WZqCA+IHNoaWNob3VrYWt1a2lraVwgOwor5p+T6Imy5L2T55Ww5bi4ID4gc2Vuc2hva3V0YWlpam91XCA7CivntZDlqZrpganpvaLmnJ8gPiBrZWtrb250ZWtpcmVpa2lcIDsKK+a8uOi/keeahOiHqueUsSA+IHplbmtpbnRla2lqaXl1dVwgOwor56S+5Lya5rCR5Li75YWaID4gc2hha2FpbWluc2h1dG91XCA7Civnp4HoqK3lv5zmj7Tlm6MgPiBzaGlzZXRzdW91ZW5kYW5cIDsKK+e1jOa4iOWQjOWPi+S8miA+IGtlaXphaWRvdXl1dWthaVwgOwor5Y+N6Ki85Y+v6IO95oCnID4gaGFuc2hvdWthbm91c2VpXCA7CivmkKzpgIHlkajms6LmlbAgPiBoYW5zb3VzaHV1aGFzdXVcIDsKK+acgOmrmOaMh+WwjuiAhSA+IHNhaWtvdXNoaWRvdXNoYVwgOwor6JGh6JCE54q255CD6I+MID4gYnVkb3Vqb3VreXV1a2luXCA7Civlhajnv7zpo5vooYzmqZ8gPiB6ZW4nJ3lva3VoaWtvdWtpXCA7CivpgJ/lirnmgKfogqXmlpkgPiBzb2trb3VzZWloaXJ5b3VcIDsKK+mBheWKueaAp+iCpeaWmSA+IGNoaWtvdXNlaWhpcnlvdVwgOwor5Zu957KL5Li7576p6ICFID4ga29rdXN1aXNodWdpc2hhXCA7Civmlq3lvL7mgKfkv4LmlbAgPiBkYW5kYW5zZWlrZWlzdXVcIDsKK+S6jOasoeaWueeoi+W8jyA+IG5pamlob3V0ZWlzaGlraVwgOwor5b+c55So5b+D55CG5a2mID4gb3V5b3VzaGlucmlnYWt1XCA7Civnsr7npZ7nlbDluLjogIUgPiBzZWlzaGluJydpam91c2hhXCA7Civlh7rnlJ/lubTmnIjml6UgPiBzaHVzc2VpbmVuZ2FwcGlcIDsKK+WLleipnueKtuWQjeipniA+IGRvdXNoaWpvdW1laXNoaVwgOwor6Ieq55Sx6KOB6YeP5qipID4gaml5dXVzYWlyeW91a2VuXCA7CivkuK3lpK7pm4bmqKnljJYgPiBjaHV1b3VzaHV1a2Vua2FcIDsKK+eEoeWIqeaBr+iovOWIuCA+IG11cmlzb2t1c2hvdWtlblwgOwor5LuB576p56S85pm65L+hID4gamluZ2lyZWljaGlzaGluXCA7Civmm7TlubTmnJ/pmpzlrrMgPiBrb3VuZW5raXNob3VnYWlcIDsKK+WbveiqnuWvqeitsOS8miA+IGtva3Vnb3NoaW5naWthaVwgOwor5Zyw5pa56KOB5Yik5omAID4gY2hpaG91c2FpYmFuc2hvXCA7Civoh6rli5XmlLnmnK3mqZ8gPiBqaWRvdWthaXNhdHN1a2lcIDsKK+acquWwseWtpuWFkOerpSA+IG1pc2h1dWdha3VqaWRvdVwgOwor5a6f5pmC6ZaT5Yem55CGID4gaml0c3VqaWthbnNob3JpXCA7CivpoJDph5HmupblgpnnjocgPiB5b2tpbmp1bmJpcml0c3VcIDsKK+WkqeS9k+acm+mBoOmPoSA+IHRlbnRhaWJvdWVua3lvdVwgOwor56S+5Lya6Ku456eR5a2mID4gc2hha2Fpc2hva2FnYWt1XCA7Civms5Xlvovkuovli5nmiYAgPiBob3VyaXRzdWppbXVzaG9cIDsKK+Wun+WIqeS4u+e+qeiAhSA+IGppdHN1cmlzaHVnaXNoYVwgOwor5pyq56K66KqN5oOF5aCxID4gbWlrYWt1bmluam91aG91XCA7CivogIHkurrmgKfnl7TlkYYgPiByb3VqaW5zZWljaGlob3VcIDsKK+WcqOWklueglOeptuWToSA+IHphaWdhaWtlbmt5dXVpblwgOwor5a6i6Kaz5Li7576p6ICFID4ga3lha2thbnNodWdpc2hhXCA7CivpgbjmiYvmqKnlpKfkvJogPiBzZW5zaHVrZW50YWlrYWlcIDsKK+S4i+e0muijgeWIpOaJgCA+IGtha3l1dXNhaWJhbnNob1wgOwor6YCT6ZmN5aSJ5Zyn5ZmoID4gdGVpa291aGVuYXRzdWtpXCA7CivpmZDnlYzpoZXlvq7pj6EgPiBnZW5rYWlrZW5iaWt5b3VcIDsKK+imgeaSg+aIpumXmOapnyA+IHlvdWdla2lzZW50b3VraVwgOwor5LiN5YWs5bmz56u25LqJID4gZnVrb3VoZWlreW91c291XCA7Civlhazoqo3kvJroqIjlo6sgPiBrb3VuaW5rYWlrZWlzaGlcIDsKK+eKr+ihjOWjsOaYjuaWhyA+IGhhbmtvdXNlaW1laWJ1blwgOwor5raI6LK76ICF5L6h5qC8ID4gc2hvdWhpc2hha2FrYWt1XCA7Civpn7Pmpb3oqZXoq5blrrYgPiBvbmdha3VoeW91cm9ua2FcIDsKK+WFrOWuieiqv+afu+W6gSA+IGtvdWFuY2hvdXNhY2hvdVwgOwor5LmX6ZmN6LuK5YSq5YWIID4gam91a291c2hheXV1c2VuXCA7Civkurrlt6XnlJjlkbPmlpkgPiBqaW5rb3VrYW5taXJ5b3VcIDsKK+WcqOmDt+i7jeS6uuS8miA+IHphaWdvdWd1bmppbmthaVwgOwor6Ieq6KiY5rm/5bqm6KiIID4gamlraXNoaXRzdWRva2VpXCA7CivlpKfntbHkuIDnkIboq5YgPiBkYWl0b3VpdHN1cmlyb25cIDsKK+aknOWumuaVmeenkeabuCA+IGtlbnRlaWt5b3VrYXNob1wgOwor5Yy75a2m5oqA6KGT5aOrID4gaWdha3VnaWp1dHN1c2hpXCA7CivlpKnnmofoqpXnlJ/ml6UgPiB0ZW4nJ25vdXRhbmpvdWJpXCA7CivlpKrlubPmtIvlnLDln58gPiB0YWloZWl5b3VjaGlpa2lcIDsKK+izh+eUo+WGjeipleS+oSA+IHNoaXNhbnNhaWh5b3VrYVwgOwor5oOF57eS6Zqc5a6z5YWQID4gam91Y2hvc2hvdWdhaWppXCA7Civml6XmnKzlm73mhrLms5UgPiBuaWhvbmtva3VrZW5wb3VcIDsKK+S6uuawkeino+aUvui7jSA+IGppbm1pbmthaWhvdWd1blwgOwor57W25a++5ZCb5Li75Yi2ID4gemV0dGFpa3Vuc2h1c2VpXCA7CivoirjooZPmhJvlpb3lrrYgPiBnZWlqdXRzdWFpa291a2FcIDsKK+engeeUn+WFkOWHuueUoyA+IHNoaXNlaWppc2h1c3NhblwgOwor5Lih6Zmi5Y2U6K2w5LyaID4gcnlvdWlua3lvdWdpa2FpXCA7CivlsI/nlLDljp/mj5Dnga8gPiBvZGF3YXJhZGpvdWNoaW5cIDsKK+iyqOeJqeiHquWLlei7iiA+IGthbW90c3VqaWRvdXNoYVwgOwor54mH5omL6ZaT5LuV5LqLID4ga2F0YXRlbWFzaGlnb3RvXCA7CivnpZ7ntYzlm57ot6/ntrIgPiBzaGlua2Vpa2Fpcm9tb3VcIDsKK+eCree0oOWMluWQiOeJqSA+IHRhbnNva2Fnb3VidXRzdVwgOwor5rCX566h5pSv5ZaY5oGvID4ga2lrYW5zaGl6ZW5zb2t1XCA7CivkuI3li5XnlKPmpa3ogIUgPiBmdWRvdXNhbmd5b3VzaGFcIDsKK+a1t+a0i+awl+ixoeWPsCA+IGthaXlvdWtpc2hvdWRhaVwgOwor6Ieq5YuV57+76Kiz5qmfID4gamlkb3Vob24nJ3lha3VraVwgOwor57iE5paH5byP5Zyf5ZmoID4gam91bW9uc2hpa2lkb2tpXCA7CivovLjlhaXoqrLlvrTph5EgPiB5dW55dXVrYWNob3VraW5cIDsKK+mHjeWVhuS4u+e+qeiAhSA+IGp1dXNob3VzaHVnaXNoYVwgOwor6YG655Sj55u457aa56iOID4gaXNhbnNvdXpva3V6ZWlcIDsKK+avmOW7rOmBrumCo+S7jyA+IGJpcnVzaGFuYWJ1dHN1XCA7CivplqLnqI7oh6rkuLvmqKkgPiBrYW56ZWlqaXNodWtlblwgOwor5Z+65pys5ZGo5rOi5pWwID4ga2lob25zaHV1aGFzdXVcIDsKK+Wbm+i8qumnhuWLlei7iiA+IHlvbnJpbmt1ZG91c2hhXCA7CivpnZnpm7vmsJfpmLLmraIgPiBzZWlkZW5raWJvdXNoaVwgOwor54WZ56qB5o6D6Zmk5aSrID4gZW50b3RzdXNvdWppZnVcIDsKK+S8keaIpuiomOW/teaXpSA+IGt5dXVzZW5raW5lbmJpXCA7CivlrabmoKHnvqTliLbluqYgPiBnYWtrb3VndW5zZWlkb1wgOwor5pS+5bCE57ea5oqA5birID4gaG91c2hhc2VuZ2lzaGlcIDsKK+WutuW6reijgeWIpOaJgCA+IGthdGVpc2FpYmFuc2hvXCA7Civplbfot53pm6LmiZPogIUgPiBjaG91a3lvcmlkYXNoYVwgOwor5pel5pys5qiZ5rqW5pmCID4gbmlob25oeW91anVuamlcIDsKK+iqmOWwjumbu+WLleapnyA+IHl1dWRvdWRlbmRvdWtpXCA7Civlu7rlm73oqJjlv7Xml6UgPiBrZW5rb2t1a2luZW5iaVwgOwor5Lyd57Wx5Li7576p6ICFID4gZGVudG91c2h1Z2lzaGFcIDsKK+eZu+iomOeVquWPt+ashCA+IHRvdWtpYmFuZ291cmFuXCA7CivmranooYzogIXlhKrlhYggPiBob2tvdXNoYXl1dXNlblwgOwor54Sh5Lq65a6H5a6Z6Ii5ID4gbXVqaW4nJ3VjaHV1c2VuXCA7CivnvoXokITml6Xovp7lhbggPiByYXBvbmljaGlqaXRlblwgOwor5rip5pqW5YyW54++6LGhID4gb25kYW5rYWdlbnNob3VcIDsKK+WppuS6uuWPguaUv+aoqSA+IGZ1amluc2Fuc2Vpa2VuXCA7Civoh6rnlLHmsJHkuLvlhZogPiBqaXl1dW1pbnNodXRvdVwgOwor5YCL5L2T55m655Sf6KuWID4ga290YWloYXNzZWlyb25cIDsKK+Wkp+WogeW+s+WmmeeOiyA+IGRhaWl0b2t1bXlvdW91XCA7CivlpKfpn5PoiKrnqbrmqZ8gPiB0YWlrYW5rb3VrdXVraVwgOwor5LiN54m55a6a5aSa5pWwID4gZnV0b2t1dGVpdGFzdXVcIDsKK+S4u+aDheS4u+e+qeiAhSA+IHNodWpvdXNodWdpc2hhXCA7Civms5Xlrprku6PnkIbkurogPiBob3V0ZWlkYWlyaW5pblwgOwor5YWs6ZaL5Zuz5pu46aSoID4ga291a2FpdG9zaG9rYW5cIDsKK+S4gOaZgumWk+S7peWGhSA+IGljaGlqaWthbicnaW5haVwgOwor5pWw55CG6KiA6Kqe5a2mID4gc3V1cmlnZW5nb2dha3VcIDsKK+mBuueUo+ebuOe2muS6uiA+IGlzYW5zb3V6b2t1bmluXCA7CivmlrnlkJHmjqLnn6XlmaggPiBob3Vrb3V0YW5jaGlraVwgOwor54ax5Y+v5aGR5qi56ISCID4gbmV0c3VrYXNvanVzaGlcIDsKK+eEoeapn+WMluWQiOeJqSA+IG11a2lrYWdvdWJ1dHN1XCA7Civph43opoHmlofljJbosqEgPiBqdXV5b3VidW5rYXphaVwgOwor5bGF6ZaT5YW86aOf5aCCID4gaW1ha2Vuc2hva3Vkb3VcIDsKK+eVsOaWueWwjumbu+iGnCA+IGlob3Vkb3VkZW5tYWt1XCA7CivmjIfnpLrku6PlkI3oqZ4gPiBzaGlqaWRhaW1laXNoaVwgOwor5Zue5b6p5LiN5Y+v6IO9ID4ga2FpZnVrdWZ1a2Fub3VcIDsKK+aLnemHkeS4u+e+qeiAhSA+IGhhaWtpbnNodWdpc2hhXCA7CivkurrpgZPkuLvnvqnogIUgPiBqaW5kb3VzaHVnaXNoYVwgOwor5Lit5aSu5YiG6Zui5bivID4gY2h1dW91YnVucml0YWlcIDsKK+a4qeW4r+S9juawl+WcpyA+IG9udGFpdGVpa2lhdHN1XCA7CivotoXlm73lrrbkuLvnvqkgPiBjaG91a29ra2FzaHVnaVwgOwor5Yip5a6z6Zai5L+C6ICFID4gcmlnYWlrYW5rZWlzaGFcIDsKK+ihhuitsOWToeitsOmVtyA+IHNodXVnaWluZ2ljaG91XCA7CivlsI7ms6LnrqHlrprmlbAgPiBkb3VoYWthbnRlaXN1dVwgOwor5LiB5a2X5b2i5a6a6KaPID4gdGVpamlnYXRham91Z2lcIDsKK+ewoeaYk+ijgeWIpOaJgCA+IGthbicnaXNhaWJhbnNob1wgOwor5Y+N5YuV5Li7576p6ICFID4gaGFuZG91c2h1Z2lzaGFcIDsKK+mfs+alveWbs+abuOmkqCA+IG9uZ2FrdXRvc2hva2FuXCA7CivkuZfnlKjoh6rli5Xou4ogPiBqb3V5b3VqaWRvdXNoYVwgOwor5Zyn5YCS55qE5aSa5pWwID4gYXR0b3V0ZWtpdGFzdXVcIDsKK+mdnuaUv+W6nOe1hOe5lCA+IGhpc2VpZnVzb3NoaWtpXCA7Civoh6rnlLHlirTlg43ogIUgPiBqaXl1dXJvdWRvdXNoYVwgOwor5Y2a5oSb5Li7576p6ICFID4gaGFrdWFpc2h1Z2lzaGFcIDsKK+Wumuacn+S5l+i7iuWIuCA+IHRlaWtpam91c2hha2VuXCA7Civpm7vmsJfmtJfmv6/mqZ8gPiBkZW5raXNlbnRha3VraVwgOwor57WC5oim6KiY5b+15pelID4gc2h1dXNlbmtpbmVuYmlcIDsKK+ekvuS8muS4u+e+qeiAhSA+IHNoYWthaXNodWdpc2hhXCA7CivlsI/lnovoh6rli5Xou4ogPiBrb2dhdGFqaWRvdXNoYVwgOwor5rCR5LqL6Ki06Kif5rOVID4gbWluamlzb3Nob3Vob3VcIDsKK+esrOS6jOmHj+WtkOWMliA+IGRhaW5pcnlvdXNoaWthXCA7Civkuozljp/lrZDliIblrZAgPiBuaWdlbnNoaWJ1bnNoaVwgOwor5bi45Lu75oyH5o+u6ICFID4gam91bmluc2hpa2lzaGFcIDsKK+i+suS6i+ippumok+WgtCA+IG5vdWppc2hpa2Vuam91XCA7Civmg4XloLHljJbnpL7kvJogPiBqb3Vob3VrYXNoYWthaVwgOwor5Li76Kaz5Li7576p6ICFID4gc2h1a2Fuc2h1Z2lzaGFcIDsKK+eEoeaVmeS8muS4u+e+qSA+IG11a3lvdWthaXNodWdpXCA7CivnsbPkvqHlr6norbDkvJogPiBiZWlrYXNoaW5naWthaVwgOwor5pmC6ZaT5aSW5Yq05YONID4gamlrYW5nYWlyb3Vkb3VcIDsKK+eZvuenkeWFqOabuOa0viA+IGh5YWtrYXplbnNob2hhXCA7Civkuoznmb7kuozljYHml6UgPiBuaWh5YWt1aGF0c3VrYVwgOwor5LqM6YeN5L6h5qC85Yi2ID4gbmlqdXVrYWtha3VzZWlcIDsKK+WIkeS6i+iotOion+azlSA+IGtlaWppc29zaG91aG91XCA7Civosqnlo7Lku6PnkIblupcgPiBoYW5iYWlkYWlyaXRlblwgOwor5p2x5Lqc6Ku45rCR5pePID4gdG91YXNob21pbnpva3VcIDsKK+WNmOiRiemjm+ihjOapnyA+IHRhbicneW91aGlrb3VraVwgOwor5Zu95Lya6K2w5LqL6YyyID4ga29ra2FpZ2lqaXJva3VcIDsKK+aUv+W6nOS/neiovOWCtSA+IHNlaWZ1aG9zaG91c2FpXCA7Civkvr/kuZfkuLvnvqnogIUgPiBiaW5qb3VzaHVnaXNoYVwgOwor5LqM5aSn5pS/5YWa5Yi2ID4gbmlkYWlzZWl0b3VzZWlcIDsKK+eEoeWIqeaBr+WFrOWCtSA+IG11cmlzb2t1a291c2FpXCA7CivotrPntKDmgKfljp/nkIYgPiBhc2hpc3Vqb3VnZW5yaVwgOwor6LOH5pys5Li7576p6ICFID4gc2hpaG9uc2h1Z2lzaGFcIDsKK+aWh+WMluWcsOeQhuWtpiA+IGJ1bmthY2hpcmlnYWt1XCA7Civlhazoqo3lgJnoo5zogIUgPiBrb3VuaW5rb3Vob3NoYVwgOwor5LiW55WM6YG45omL5qipID4gc2VrYWlzZW5zaHVrZW5cIDsKK+aWsOefs+WZqOaZguS7oyA+IHNoaW5zZWtraWppZGFpXCA7Civlj5fpqJPlj4LogIPmm7ggPiBqdWtlbnNhbmtvdXNob1wgOwor6Z2Z5q2i55S75pS+6YCBID4gc2Vpc2hpZ2Fob3Vzb3VcIDsKK+WwkeW5tOaEn+WMlumZoiA+IHNob3VuZW5rYW5rYWluXCA7Civplbfot53pm6LovLjpgIEgPiBjaG91a3lvcml5dXNvdVwgOwor5YaN5biw5Luj5ZCN6KmeID4gc2Fpa2lkYWltZWlzaGlcIDsKK+aOp+iotOijgeWIpOaJgCA+IGtvdXNvaGFpYmFuc2hvXCA7CivmlofljJblip/lirTogIUgPiBidW5rYWtvdXJvdXNoYVwgOwor55yf56m65o6D6Zmk5qmfID4gc2hpbmt1dXNvdWppa2lcIDsKK+S6uuW9oua1hOeRoOeSgyA+IG5pbmd5b3Vqb3VydXJpXCA7CivmlL/msrvoqZXoq5blrrYgPiBzZWlqaWh5b3Vyb25rYVwgOwor5Lyd5om/5Y+Z5LqL6KmpID4gZGVuc2hvdWpvamlzaGlcIDsKK+acieimlueVjOmjm+ihjCA+IHl1dXNoaWthaWhpa291XCA7CivpmY3kuInkuJblppnnjosgPiBnb3V6YW56ZW15b3VvdVwgOwor562J6auY57ea5Zyw5ZuzID4gdG91a291c2VuY2hpenVcIDsKK+ijvemAoOW5tOaciOaXpSA+IHNlaXpvdW5lbmdhcHBpXCA7CivlnLDmlrnkuqTku5jnqI4gPiBjaGlob3Vrb3VmdXplaVwgOwor5pel5pys6Kqe5pWZ5pysID4gbmlob25nb2t5b3Vob25cIDsKK+S/mOiZnOWPjuWuueaJgCA+IGZ1cnlvc2h1dXlvdWpvXCA7CivnqbrmsJflnKfnuK7mqZ8gPiBrdXVraWFzc2h1a3VraVwgOwor5Zu96YCj6KiY5b+15pelID4ga29rdXJlbmtpbmVuYmlcIDsKK+eEoeiomOWQjeaKleelqCA+IG11a2ltZWl0b3VoeW91XCA7Civoh6rnhLbkuLvnvqnogIUgPiBzaGl6ZW5zaHVnaXNoYVwgOwor566h5Yy65rCX6LGh5Y+wID4ga2Fua3VraXNob3VkYWlcIDsKK+azleWumua6luWCmemHkSA+IGhvdXRlaWp1bmJpa2luXCA7CivmtbfmtIvmgKfmsJflgJkgPiBrYWl5b3VzZWlraWtvdVwgOwor5aSW6LKo5rqW5YKZ6auYID4gZ2Fpa2FqdW5iaWRha2FcIDsKK+aXheihjOS7o+eQhuW6lyA+IHJ5b2tvdWRhaXJpdGVuXCA7CivkuojpgbjpgJrpgY7ogIUgPiB5b3NlbnRzdXVrYXNoYVwgOwor5aWz5oCn6Kej5pS+6KuWID4gam9zZWlrYWlob3Vyb25cIDsKK+mBuuS8neWtkOayu+eZgiA+IGlkZW5zaGljaGlyeW91XCA7Civntbblr77kuLvnvqnogIUgPiB6ZXR0YWlzaHVnaXNoYVwgOwor5YWx5ZCM54KK5LqL5aC0ID4ga3lvdWRvdXN1aWppYmFcIDsKK+emj+elieS6i+WLmeaJgCA+IGZ1a3VzaGlqaW11c2hvXCA7CivkuInop5Lns7vnlbDluLggPiBzYW5rYWt1a2VpaWpvdVwgOwor5rC055Sj6Kmm6aiT5omAID4gc3Vpc2Fuc2hpa2Vuam9cIDsKK+i7jeS6i+ijgeWIpOaJgCA+IGd1bmppc2FpYmFuc2hvXCA7CivpmqDpgIDolLXnianos4cgPiBpbnRhaXpvdWJ1c3NoaVwgOwor5Y+C6ICD5Zuz5pu46aSoID4gc2Fua291dG9zaG9rYW5cIDsKK+eEoee3muWRqOazouaVsCA+IG11c2Vuc2h1dWhhc3V1XCA7Civph43ovrLkuLvnvqnogIUgPiBqdXVub3VzaHVnaXNoYVwgOwor5LmX5ZCI6Ieq5YuV6LuKID4gbm9yaWFpamlkb3VzaGFcIDsKK+e0sOiDnumBuuS8neWtpiA+IHNhaWJvdWlkZW5nYWt1XCA7CivotoXpn7Pms6LmtJfmtYQgPiBjaG91b25wYXNlbmpvdVwgOwor5YiR5LqL6KKr5ZGK5Lq6ID4ga2VpamloaWtva3VuaW5cIDsKK+e+pOS8neaQrOaZgumWkyA+IGd1bmRlbnBhbmppa2FuXCA7CivlgaXlurfkv53pmbrms5UgPiBrZW5rb3Vob2tlbmhvdVwgOwor5bi45Lu755CG5LqL5Zu9ID4gam91bmlucmlqaWtva3VcIDsKK+mdnumHkeWxnuWFg+e0oCA+IGhpa2luem9rdWdlbnNvXCA7CivpmbjkuIroh6rooZvpmoogPiByaWt1am91amllaXRhaVwgOwor5L+d6Zm65Yun6KqY5ZOhID4gaG9rZW5rYW4nJ3l1dWluXCA7CivnqpLntKDlm7rlrprms5UgPiBjaGlzc29rb3RlaWhvdVwgOwor55u45a++5oCn5Y6f55CGID4gc291dGFpc2VpZ2VucmlcIDsKK+e+juihk+aEm+WlveWutiA+IGJpanV0c3VhaWtvdWthXCA7CivkuK3nn7PlmajmmYLku6MgPiBjaHV1c2Vra2lqaWRhaVwgOwor5Li755+l5Li7576p6ICFID4gc2h1Y2hpc2h1Z2lzaGFcIDsKK+ialeezuOippumok+aJgCA+IHNhbnNoaXNoaWtlbmpvXCA7Civnq4vkvZPlub7kvZXlraYgPiByaXR0YWlraWthZ2FrdVwgOwor5LiN5YuV55Sj6ZGR5a6aID4gZnVkb3VzYW5rYW50ZWlcIDsKK+mVt+i3nemboumjm+ihjCA+IGNob3VreW9yaWhpa291XCA7CivnrKzkuozmrKHmgKflvrQgPiBkYWluaWppc2VpY2hvdVwgOwor5Y+l5qeL6YCg5paH5rOVID4ga3Vrb3V6b3VidW5wb3VcIDsKK+Wjq+WumOWAmeijnOeUnyA+IHNoaWthbmtvdWhvc2VpXCA7Civlt6Hlm57lm7Pmm7jppKggPiBqdW5rYWl0b3Nob2thblwgOwor5b605YW15b+M6YG/6ICFID4gY2hvdWhlaWtpaGlzaGFcIDsKK+WHuuiotOacn+mZkOazlSA+IHNodXNzb2tpZ2VuaG91XCA7Civou43nlKjovLjpgIHmqZ8gPiBndW4nJ3lvdXl1c291a2lcIDsKK+iogOiqnuWcsOeQhuWtpiA+IGdlbmdvY2hpcmlnYWt1XCA7CivliY3mlrnlvozlhoblorMgPiB6ZW5wb3Vrb3VlbmZ1blwgOwor6Jmr5qeY56qB6LW354KOID4gY2h1dXlvdXRva2tpZW5cIDsKK+acieW9ouaWh+WMluiyoSA+IHl1dWtlaWJ1bmthemFpXCA7Civml6fnn7PlmajmmYLku6MgPiBreXV1c2Vra2lqaWRhaVwgOwor6Ieq55Sx5rCR5qip6KuWID4gaml5dXVtaW5rZW5yb25cIDsKK+egtOeUo+ijgeWIpOaJgCA+IGhhc2Fuc2FpYmFuc2hvXCA7Civkurrouqvkv53orbfms5UgPiBqaW5zaGluaG9nb2hvdVwgOwor5pS+5bCE5oCn5YWD57SgID4gaG91c2hhc2VpZ2Vuc29cIDsKK+aNleiZnOWPjuWuueaJgCA+IGhvcnlvc2h1dXlvdWpvXCA7CivnlJ/oqIjosrvmjIfmlbAgPiBzZWlrZWloaXNoaXN1dVwgOwor5Zu95Lya5Zuz5pu46aSoID4ga29ra2FpdG9zaG9rYW5cIDsKK+mrmOetieW8geWLmeWumCA+IGtvdXRvdWJlbm11a2FuXCA7CivmmYLplpPpoIbluo/nqY0gPiBqaWthbmp1bmpvc2VraVwgOwor5Zyw55CD5rip5pqW5YyWID4gY2hpa3l1dW9uZGFua2FcIDsKK+mdnuW4uOWLpOism+W4qyA+IGhpam91a2lua291c2hpXCA7Civoh6rli5Xou4rlrabmoKEgPiBqaWRvdXNoYWdha2tvdVwgOwor56iO6YeR6YG/6Zuj5ZywID4gemVpa2luaGluYW5jaGlcIDsKK+S6uumBk+eahOaPtOWKqSA+IGppbmRvdXRla2llbmpvXCA7CivmtojosrvogIXpgYvli5UgPiBzaG91aGlzaGF1bmRvdVwgOwor5Yq05YON5Z+65rqW5rOVID4gcm91ZG91a2lqdW5ob3VcIDsKK+a8ouWtl+WItumZkOirliA+IGthbmppc2VpZ2Vucm9uXCA7Civlkajms6LmlbDlgY/np7sgPiBzaHV1aGFzdXVoZW4nJ2lcIDsKK+eEoeWItumZkOiyv+aYkyA+IG11c2VpZ2VuYm91ZWtpXCA7CivmrKHlhYPmraPliYfljJYgPiBqaWdlbnNlaXNva3VrYVwgOwor5Lq65ZCN55So5ryi5a2XID4gamlubWVpeW91a2FuamlcIDsKK+W+geWkt+Wkp+Wwhui7jSA+IHNlaWl0YWlzaG91Z3VuXCA7CivnlKPmpa3kuojlgpnou40gPiBzYW5neW91eW9iaWd1blwgOwor5Yip5a2Q5bmz6KGh56iOID4gcmlzaGloZWlrb3V6ZWlcIDsKK+eEoeS7u+aJgOWkp+iHoyA+IG11bmluc2hvZGFpamluXCA7Civkuozph43nm7LmpJzms5UgPiBuaWp1dW1vdWtlbmhvdVwgOwor6Ieq6LOg6LKs5L+d6Zm6ID4gamliYWlzZWtpaG9rZW5cIDsKK+mHjeeCremFuOabuemBlCA+IGp1dXRhbnNhbnNvdWRhXCA7Civplbfot53pm6Lpm7voqbEgPiBjaG91a3lvcmlkZW53YVwgOwor6YG65Lyd5a2Q5bel5a2mID4gaWRlbnNoaWtvdWdha3VcIDsKK+S4jeWPr+iDvemBuOaKniA+IGZ1a2Fub3VzZW50YWt1XCA7Civlj6Xmp4vpgKDopo/liYcgPiBrdWtvdXpvdWtpc29rdVwgOwor5omL5b2i5Lqk5o+b5omAID4gdGVnYXRha291a2Fuam9cIDsKK+WcsOaWueiHquayu+S9kyA+IGNoaWhvdWppY2hpdGFpXCA7CivkuI3opo/liYfli5XoqZ4gPiBmdWtpc29rdWRvdXNoaVwgOwor5a6M5YWo5Li7576p6ICFID4ga2FuemVuc2h1Z2lzaGFcIDsKK+ani+aIkOe0oOani+mAoCA+IGtvdXNlaXNva291em91XCA7CivovInosqjlkIPmsLTnt5ogPiBzYWlrYWtpc3N1aXNlblwgOwor5rC06YqA5rip5bqm6KiIID4gc3VpZ2luJydvbmRva2VpXCA7CivmlbDnkIboq5bnkIblraYgPiBzdXVyaXJvbnJpZ2FrdVwgOwor55qH5aSq5a2Q5q6/5LiLID4ga291dGFpc2hpZGVua2FcIDsKK+aIpuS6ieacquS6oeS6uiA+IHNlbnNvdW1pYm91amluXCA7CivnoLTnlKPnrqHosqHkurogPiBoYXNhbmthbnphaW5pblwgOwor5Y2U5a6a5LiW55WM5pmCID4ga3lvdXRlaXNla2FpamlcIDsKK+a1t+S4iuS/neWuieW6gSA+IGthaWpvdWhvYW5jaG91XCA7CivnibnnlbDlgKTliIbop6MgPiB0b2t1aWNoaWJ1bmthaVwgOwor5rCR5Za25YyW5LyB5qWtID4gbWluJydlaWtha2lneW91XCA7CivlpKfopb/mtIvmqKrmlq0gPiB0YWlzZWl5b3VvdWRhblwgOwor5Lq65bel6YG/5aaK5rOVID4gamlua291aGluaW5ob3VcIDsKK+mtmue+pOaOouefpeapnyA+IGd5b2d1bnRhbmNoaWtpXCA7CivpgYrpm6Lln7rlj43lv5wgPiB5dXVyaWtpaGFuJydub3VcIDsKK+Wwj+eUsOWOn+ipleWumiA+IG9kYXdhcmFoeW91am91XCA7CivpqJLpn7PpmLLmraLms5UgPiBzb3VvbmJvdXNoaWhvdVwgOwor55aR5ZWP5Luj5ZCN6KmeID4gZ2ltb25kYWltZWlzaGlcIDsKK+ebuOWvvuaAp+eQhuirliA+IHNvdXRhaXNlaXJpcm9uXCA7CivphbjljJbpmLLmraLliaQgPiBzYW5rYWJvdXNoaXphaVwgOwor56ys5LqM5qyh55Sj5qWtID4gZGFpbmlqaXNhbmd5b3VcIDsKK+acieapn+Whqea6tuWqkiA+IHl1dWtpZW4nJ3lvdWJhaVwgOwor6Zu75a2Q6KiI566X5qmfID4gZGVuc2hpa2Vpc2Fua2lcIDsKK+aIpumXmOeKoOeJsuiAhSA+IHNlbnRvdWdpc2Vpc2hhXCA7CivmsJHplpPoiKrnqbrmqZ8gPiBtaW5rYW5rb3VrdXVraVwgOwor5Y+N5oim5Li7576p6ICFID4gaGFuc2Vuc2h1Z2lzaGFcIDsKK+ims+WFieahiOWGheaJgCA+IGthbmtvdWFuJyduYWlqb1wgOwor6auY6b2i5YyW56S+5LyaID4ga291cmVpa2FzaGFrYWlcIDsKK+iomOWPt+irlueQhuWtpiA+IGtpZ291cm9ucmlnYWt1XCA7CivmjIflkI3miYvphY3kurogPiBzaGltZWl0ZWhhaWppblwgOwor6Ieq6Lui6LuK5peF6KGMID4gaml0ZW5zaGFyeW9rb3VcIDsKK+W5s+Wdh+WkqumZveaZgiA+IGhlaWtpbnRhaXlvdWppXCA7Civlpb3msJfmgKfntLDoj4wgPiBrb3VraXNlaXNhaWtpblwgOwor6Zu75rOi5pyb6YGg6Y+hID4gZGVucGFib3Vlbmt5b3VcIDsKK+WKtOWDjemBi+WLleiAhSA+IHJvdWRvdXVuZG91c2hhXCA7CivpnIfngb3oqJjlv7Xml6UgPiBzaGluc2Fpa2luZW5iaVwgOwor5oKq5b6z5pS/5rK75a62ID4gYWt1dG9rdXNlaWppa2FcIDsKK+aDheWgseS4u+imgee0oCA+IGpvdWhvdXNodXlvdXNvXCA7CivlhazmrablkIjkvZPoq5YgPiBrb3VidWdhdHRhaXJvblwgOwor6Zu75YWJ5o6y56S65p2/ID4gZGVua291a2VpamliYW5cIDsKK+S+oembu+WtkOeKtuaFiyA+IGthZGVuc2hpam91dGFpXCA7CivmsLTnlKPliqDlt6Xlk4EgPiBzdWlzYW5rYWtvdWhpblwgOwor5bmz6Z2i5bm+5L2V5a2mID4gaGVpbWVua2lrYWdha3VcIDsKK+iHqui7oui7iue9ruWgtCA+IGppdGVuc2hhb2tpYmFcIDsKK+aVmeiCsuWnlOWToeS8miA+IGt5b3Vpa3VpaW5rYWlcIDsKK+awtOS4iumjm+ihjOapnyA+IHN1aWpvdWhpa291a2lcIDsKK+WOreS4luaCsuims+iAhSA+IGVuc2VpaGlrYW5zaGFcIDsKK+W+jOacn+WNsOixoea0viA+IGtvdWtpaW5zaG91aGFcIDsKK+Wkp+imj+aooeaIpuS6iSA+IGRhaWtpYm9zZW5zb3VcIDsKK+eEoeaLheS/neekvuWCtSA+IG11dGFucG9zaGFzYWlcIDsKK+mBoOW/g+WIhumbouapnyA+IGVuc2hpbmJ1bnJpa2lcIDsKK+mbu+awl+WGt+iUteW6qyA+IGRlbmtpcmVpem91a29cIDsKK+acgOS9jua4qeW6puioiCA+IHNhaXRlaW9uZG9rZWlcIDsKK+mhp+WVj+W8geitt+WjqyA+IGtvbW9uYmVuZ29zaGlcIDsKK+S6jOehq+WMlueCree0oCA+IG5pcnl1dWthdGFuc29cIDsKK+aXqeacn+itpuaIkuapnyA+IHNvdWtpa2Vpa2Fpa2lcIDsKK+ani+mAoOmBuuS8neWtkCA+IGtvdXpvdWlkZW5zaGlcIDsKK+mdkumKheWZqOaZguS7oyA+IHNlaWRvdWtpamlkYWlcIDsKK+S8muioiOaknOafu+mZoiA+IGthaWtlaWtlbnNhaW5cIDsKK+mmluS9jeaUu+mYsuaIpiA+IHNodWlrb3Vib3VzZW5cIDsKK+WFqOaWueS9jeWkluS6pCA+IHplbmhvdWlnYWlrb3VcIDsKK+eEoeS6uuWMluW3peWgtCA+IG11amlua2Frb3Vqb3VcIDsKK+eBq+S6i+WgtOazpeajkiA+IGthamliYWRvcm9ib3VcIDsKK+S6uuW3peaghOmkiuWFkCA+IGppbmtvdWVpeW91amlcIDsKK+asp+exs+iruOiogOiqniA+IG91YmVpc2hvZ2VuZ29cIDsKK+S6uuW3peWtteWMluazlSA+IGppbmtvdWZ1a2Fob3VcIDsKK+i7jeS6i+mhp+WVj+WboyA+IGd1bmppa29tb25kYW5cIDsKK+mrmOWxpOWkqeawl+WbsyA+IGtvdXNvdXRlbmtpenVcIDsKK+S7rumdouiInui4j+S8miA+IGthbWVuYnV0b3VrYWlcIDsKK+S9nOalremDqOS8muahiCA+IHNhZ3lvdWJ1a2FpYW5cIDsKK+aYoOeUu+ipleirluWutiA+IGVpZ2FoeW91cm9ua2FcIDsKK+esrOS6jOasoeWkp+aIpiA+IGRhaW5paml0YWlzZW5cIDsKK+mHjuasoemmrOagueaApyA+IHlhaml1bWFrb25qb3VcIDsKK+iLseS8muipseWtpuagoSA+IGVpa2Fpd2FnYWtrb3VcIDsKK+WJjeaWueS4jeazqOaEjyA+IHplbnBvdWZ1Y2h1dWlcIDsKK+WcsOaWueWFrOWLmeWToSA+IGNoaWhvdWtvdW11aW5cIDsKK+iHquWLleiyqeWjsuapnyA+IGppZG91aGFuYmFpa2lcIDsKK+mbu+ejgeiqv+eQhuWZqCA+IGRlbmppY2hvdXJpa2lcIDsKK+iIquepuuiHquihm+maiiA+IGtvdWt1dWppZWl0YWlcIDsKK+apn+mWouaKleizh+WutiA+IGtpa2FudG91c2hpa2FcIDsKK+Wbnui3r+mBruaWreapnyA+IGthaXJvc2hhZGFua2lcIDsKK+iBlui3r+WKoOeXhemZoiA+IHNlaXJva2FieW91aW5cIDsKK+WIhumbouS4u+e+qeiAhSA+IGJ1bnJpc2h1Z2lzaGFcIDsKK+aGsuazleiomOW/teaXpSA+IGtlbnBvdWtpbmVuYmlcIDsKK+WKoOa4m+aKteaKl+WZqCA+IGthZ2VudGVpa291a2lcIDsKK+iHquWLleiyqeWjsuWZqCA+IGppZG91aGFuYmFpa2lcIDsKK+eEoeWFjeiosemBi+i7oiA+IG11bWVua3lvdW50ZW5cIDsKK+S4jeWPr+imluWFiee3miA+IGZ1a2FzaGlrb3VzZW5cIDsKK+iyv+aYk+iHqueUseWMliA+IGJvdWVraWppeXV1a2FcIDsKK+epuuawl+WItuWLleapnyA+IGt1dWtpc2VpZG91a2lcIDsKK+S6lOWNgeatqeeZvuatqSA+IGdvanVwcG9oeWFwcG9cIDsKK+WOn+eQhuS4u+e+qeiAhSA+IGdlbnJpc2h1Z2lzaGFcIDsKK+WkmuWFg+aWh+WMluirliA+IHRhZ2VuYnVua2Fyb25cIDsKK+itsua4oeaAp+mgkOmHkSA+IGpvdXRvc2VpeW9raW5cIDsKK+WbveWutuS4u+e+qeiAhSA+IGtva2thc2h1Z2lzaGFcIDsKK+ayv+WyuOitpuWCmemaiiA+IGVuZ2Fua2VpYml0YWlcIDsKK+WAi+S6uuS4u+e+qeiAhSA+IGtvamluc2h1Z2lzaGFcIDsKK+WkluS6pOWnlOWToemVtyA+IGdhaWtvdWlpbmNob3VcIDsKK+eEoeaKteaKl+S4u+e+qSA+IG11dGVpa291c2h1Z2lcIDsKK+aUvuWwhOiDveaxmuafkyA+IGhvdXNoYW5vdW9zZW5cIDsKK+mbu+awl+iHquWLlei7iiA+IGRlbmtpamlkb3VzaGFcIDsKK+WEqueUn+S/neitt+azlSA+IHl1dXNlaWhvZ29ob3VcIDsKK+WcsOaWueS6i+WLmeaJgCA+IGNoaWhvdWppbXVzaG9cIDsKK+i8uOWFpeiHqueUseWMliA+IHl1bnl1dWppeXV1a2FcIDsKK+eEoeWIqeaBr+WCteWLmSA+IG11cmlzb2t1c2FpbXVcIDsKK+ehq+m7hOmFuOWMlueJqSA+IGlvdXNhbmthYnV0c3VcIDsKK+mBk+i3r+aOg+mZpOS6uiA+IGRvdXJvc291amlqaW5cIDsKK+S7gei8quWKoOeLguiogCA+IG5pd2FrYWt5b3VnZW5cIDsKK+iHquiHquWFrO+8k+WFmiA+IGppamlrb3VzYW50b3VcIDsKK+awl+euoeaUr+iCuueCjiA+IGtpa2Fuc2hpaGFpZW5cIDsKK+WkmumHjeWCteWLmeiAhSA+IHRhanV1c2FpbXVzaGFcIDsKK+irruWVj+WnlOWToeS8miA+IHNoaW1vbicnaWlua2FpXCA7Civpq5jpq5jluqbpo5vooYwgPiBrb3Vrb3Vkb2hpa291XCA7Civlm73kvJrorbDkuovloIIgPiBrb2trYWlnaWppZG91XCA7CivkuozljYHlm5vnr4DmsJcgPiBuaWp1dXNoaXNla2tpXCA7CivnhKHlvaLmlofljJbosqEgPiBtdWtlaWJ1bmthemFpXCA7CivluILloLToh6rnlLHljJYgPiBzaGlqb3VqaXl1dWthXCA7CivntYzllrblpJrop5LljJYgPiBrZWllaXRha2FrdWthXCA7CivkuLvmiJHkuLvnvqnogIUgPiBzaHVnYXNodWdpc2hhXCA7Civmmpflj7fljJbmiYvms5UgPiBhbmdvdWthc2h1aG91XCA7CivkuI3opovou6LoirjogIUgPiBtaXp1dGVuZ2Vpc2hhXCA7Civlip/liKnkuLvnvqnogIUgPiBrb3VyaXNodWdpc2hhXCA7Civoh6rli5Xou4rkv53pmbogPiBqaWRvdXNoYWhva2VuXCA7Civoh6rlt7HpoZXnpLrmrLIgPiBqaWtva2Vuaml5b2t1XCA7CivnhKHphY3lvZPkv53pmbogPiBtdWhhaXRvdWhva2VuXCA7CivmnpzmqLnmoL3ln7nogIUgPiBrYWp1c2FpYmFpc2hhXCA7Civoo4HliKTlrpjlv4zpgb8gPiBzYWliYW5rYW5raWhpXCA7CivpnZ7mraboo4XlnLDluK8gPiBoaWJ1c291Y2hpdGFpXCA7CivnqbrmsJfmuIXmtYTmqZ8gPiBrdXVraXNlaWpvdWtpXCA7CivkuIDkuovkuI3lho3orbAgPiBpY2hpamlmdXNhaWdpXCA7CivlibXlu7roqJjlv7Xml6UgPiBzb3VrZW5raW5lbmJpXCA7Civmma7pgY3lpqXlvZPmgKcgPiBmdWhlbmRhdG91c2VpXCA7Civljp/lrZDnoLTlo4rmqZ8gPiBnZW5zaGloYWthaWtpXCA7CivntZDlqZroqJjlv7Xml6UgPiBrZWtrb25raW5lbmJpXCA7CivlpKfpm6jms6jmhI/loLEgPiBvb2FtZWNodXVpaG91XCA7CivnsbPmnbHpg6jmmYLplpMgPiBiZWl0b3VidWppa2FuXCA7CivliqPmgKfpgbrkvJ3lrZAgPiByZXNzZWlpZGVuc2hpXCA7CivnhKHkvqHlgKTos4fnlKMgPiBtdWthY2hpc2hpc2FuXCA7CivlgaXlurfkv53pmbrljLsgPiBrZW5rb3Vob2tlbicnaVwgOwor5bi45Lu75aeU5ZOh5LyaID4gam91bmluJydpaW5rYWlcIDsKK+iHqueUseS4u+e+qeiAhSA+IGppeXV1c2h1Z2lzaGFcIDsKK+efreazouWPl+S/oeapnyA+IHRhbnBhanVzaGlua2lcIDsKK+egtOWjiuS4u+e+qeiAhSA+IGhha2Fpc2h1Z2lzaGFcIDsKK+W+oemDveWQiOS4u+e+qSA+IGdvdHN1Z291c2h1Z2lcIDsKK+S6jOWNgeaXpeWkp+aguSA+IGhhdHN1a2FkYWlrb25cIDsKK+iQveS4i+WCmOmDqOmaiiA+IHJha2thc2FuYnV0YWlcIDsKK+mVt+i3nembouS+neWtmCA+IGNob3VreW9yaWl6b25cIDsKK+espuWPt+WkieaPm+WZqCA+IGZ1Z291aGVua2Fua2lcIDsKK+mAgemHkeWwj+WIh+aJiyA+IHNvdWtpbmtvZ2l0dGVcIDsKK+WvvuaIpui7iueBq+WZqCA+IHRhaXNlbnNoYWtha2lcIDsKK+W8l+WMluawtOe0oOmFuCA+IGZ1a2thc3Vpc29zYW5cIDsKK+ebuOijnOaAp+WOn+eQhiA+IHNvdWhvc2VpZ2VucmlcIDsKK+iSuOawl+apn+mWoui7iiA+IGpvdWtpa2lrYW5zaGFcIDsKK+aWh+WMluS6i+alremDqCA+IGJ1bmthamlneW91YnVcIDsKK+eEoeiomOWQjeekvuWCtSA+IG11a2ltZWlzaGFzYWlcIDsKK+WQiOWQjOaFsOmciuelrSA+IGdvdWRvdWlyZWlzYWlcIDsKK+eBq+eBveWgseefpeapnyA+IGthc2FpaG91Y2hpa2lcIDsKK+mbu+azouaOouefpeapnyA+IGRlbnBhdGFuY2hpa2lcIDsKK+WPr+WkieaKteaKl+WZqCA+IGthaGVudGVpa291a2lcIDsKK+WFrOWLmeWToeippumokyA+IGtvdW11aW5zaGlrZW5cIDsKK+Wuh+Wumemjm+ihjOWjqyA+IHVjaHV1aGlrb3VzaGlcIDsKK+eci+itt+WppuWtpumZoiA+IGthbmdvZnVnYWt1aW5cIDsKK+WNgeWtl+i7jemojuWjqyA+IGp1dWppZ3Vua2lzaGlcIDsKK+eEoeapn+mrmOWIhuWtkCA+IG11a2lrb3VidW5zaGlcIDsKK+eBq+eBveWgseefpeWZqCA+IGthc2FpaG91Y2hpa2lcIDsKK+mbu+azouaOouefpeWZqCA+IGRlbnBhdGFuY2hpa2lcIDsKK+aMh+aPruaJgOa8lOe/kiA+IHNoaWtpam9lbnNodXVcIDsKK+S6jOmFuOWMlueqkue0oCA+IG5pc2Fua2FjaGlzc29cIDsKK+iHquWLlei7iumbu+ipsSA+IGppZG91c2hhZGVud2FcIDsKK+aDheWgseWPr+imluWMliA+IGpvdWhvdWthc2hpa2FcIDsKK+aRguawj++8ku+8kOW6piA+IHNlc3NoaW5panV1ZG9cIDsKK+Wwj+Wei+i1pOWutuiaiiA+IGtvZ2F0YWFrYWlla2FcIDsKK+e1kOWpmuaKq+mcsuWutCA+IGtla2tvbmhpcm91ZW5cIDsKK+a1t+S4iuiHquihm+maiiA+IGthaWpvdWppZWl0YWlcIDsKK+WOn+ahiOWnlOWToeS8miA+IGdlbicnYW4nJ2lpbmthaVwgOwor6YG45omL5qip6Kmm5ZCIID4gc2Vuc2h1a2VuamlhaVwgOwor5pel5ZKM6KaL5Li7576pID4gaGl5b3JpbWlzaHVnaVwgOwor5Luu6KOF6Iie6LiP5LyaID4ga2Fzb3VidXRvdWthaVwgOwor6YGu5YWJ5Zmo5Zyf5YG2ID4gc2hha291a2lkb2d1dVwgOwor5LiL5rC05Yem55CG5aC0ID4gZ2VzdWlzaG9yaWpvdVwgOwor5ZCI55CG5Li7576p6ICFID4gZ291cmlzaHVnaXNoYVwgOwor5qW95Zmo5ryU5aWP6ICFID4gZ2Fra2llbnNvdXNoYVwgOwor5Y+k5YW45Li7576p6ICFID4ga290ZW5zaHVnaXNoYVwgOwor5Zu95Zyf5Zyw55CG6ZmiID4ga29rdWRvY2hpcmlpblwgOwor5biC6KGX5YyW5Yy65Z+fID4gc2hpZ2Fpa2FrdWlraVwgOwor6Zu75rCX5qmf6Zai6LuKID4gZGVua2lraWthbnNoYVwgOwor5byl5qyh6aas5qC55oCnID4geWFqaXVtYWtvbmpvdVwgOwor6ZaL5qCh6KiY5b+15pelID4ga2Fpa291a2luZW5iaVwgOwor5LiN5Y+v55+l6KuW6ICFID4gZnVrYWNoaXJvbnNoYVwgOwor54Sh6KiY5ZCN5YK15qipID4gbXVraW1laXNhaWtlblwgOwor5YWo5rOi5Y+X5L+h5qmfID4gemVucGFqdXNoaW5raVwgOwor5bmz5ZKM5Li7576p6ICFID4gaGVpd2FzaHVnaXNoYVwgOwor6Z2S5aSp5LqV5LqI566XID4gYW90ZW5qb3V5b3NhblwgOwor54q25rOB5oSP5ZGz6KuWID4gam91a3lvdWltaXJvblwgOwor5ryi5a2X5paH5YyW5ZyPID4ga2FuamlidW5rYWtlblwgOwor5q2v56eR5oqA5bel5aOrID4gc2hpa2FnaWtvdXNoaVwgOwor5rW35LiK6Ly46YCB6LevID4ga2Fpam91eXVzb3Vyb1wgOwor6Kq/5YGc5aeU5ZOh5LyaID4gY2hvdXRlaWlpbmthaVwgOwor6KGM5pa55LiN5piO6ICFID4geXVrdWVmdW1laXNoYVwgOwor5YCL5Lq655qE5oSP6KaLID4ga29qaW50ZWtpaWtlblwgOwor5YyX5Zu96LWk5rW36ICBID4gaG9ra29rdWFrYWViaVwgOwor5L2/6YCU5LiN5piO6YeRID4gc2hpdG9mdW1laWtpblwgOwor5rCR5Li75YyW6YGL5YuVID4gbWluc2h1a2F1bmRvdVwgOwor5aSp5rCX55u46KuH5omAID4gdGVua2lzb3VkYW5qb1wgOwor5Y+C5Yqg5biM5pyb6ICFID4gc2Fua2FraWJvdXNoYVwgOwor5oeQ55aR5Li7576p6ICFID4ga2FpZ2lzaHVnaXNoYVwgOwor5biC6K2w5Lya6K2w5ZOhID4gc2hpZ2lrYWlnaWluXCA7CivkuK3lpK7lp5Tlk6HkvJogPiBjaHV1b3VpaW5rYWlcIDsKK+iDg+mFuOmBjuWkmueXhyA+IGlzYW5rYXRhc2hvdVwgOwor6Zu75rCX6Zmw5oCn5bqmID4gZGVua2lpbnNlaWRvXCA7CivnhKHoqJjlkI3poJDph5EgPiBtdWtpbWVpeW9raW5cIDsKK+WIqeW3seS4u+e+qeiAhSA+IHJpa29zaHVnaXNoYVwgOwor5Zu95a625YWs5YuZ5ZOhID4ga29ra2Frb3VtdWluXCA7CivluIzlnJ/poZ7lhYPntKAgPiBraWRvcnVpZ2Vuc29cIDsKK+mbu+awl+aOg+mZpOapnyA+IGRlbmtpc291amlraVwgOwor6JaU6JaH5Y2B5a2X5ZujID4gYmFyYWp1dWppZGFuXCA7Civlr4zlo6vngavlsbHluK8gPiBmdWppa2F6YW50YWlcIDsKK+aYn+W6p+aKleW9seapnyA+IHNlaXphdG91ZWlraVwgOwor5qyn5bee5aeU5ZOh5LyaID4gb3VzaHV1aWlua2FpXCA7CivkuIrkvY3kupLmj5vmgKcgPiBqb3VpZ29rYW5zZWlcIDsKK+aUvuWwhOe3muenkeWMuyA+IGhvdXNoYXNlbmthaVwgOwor54Gr54KO5pS+5bCE5ZmoID4ga2FlbmhvdXNoYWtpXCA7CivlkIjlkIzlp5Tlk6HkvJogPiBnb3Vkb3VpaW5rYWlcIDsKK+mBuueUo+euoeeQhuS6uiA+IGlzYW5rYW5yaW5pblwgOwor6LK/5piT5L6d5a2Y5bqmID4gYm91ZWtpaXpvbmRvXCA7CivlirTlg43lp5Tlk6HkvJogPiByb3Vkb3VpaW5rYWlcIDsKK+aooeWei+mjm+ihjOapnyA+IG1va2VpaGlrb3VraVwgOwor5LiL5L2N56+E55aH5YyWID4ga2FpaGFuY2h1dWthXCA7CivpnZ7llrbliKnlm6PkvZMgPiBoaWVpcmlkYW50YWlcIDsKK+S6nOeGseW4r+awl+WAmSA+IGFuZXR0YWlraWtvdVwgOwor54Sh5pS/5bqc5Li7576pID4gbXVzZWlmdXNodWdpXCA7Civnp7vli5Xlm7Pmm7jppKggPiBpZG91dG9zaG9rYW5cIDsKK+Wun+ihjOWnlOWToeS8miA+IGppa2tvdWlpbmthaVwgOwor55WZ5a6I55Wq6Zu76KmxID4gcnVzdWJhbmRlbndhXCA7CivmpJzoqI7lp5Tlk6HkvJogPiBrZW50b3VpaW5rYWlcIDsKK+ihhuitsOmZouitsOWToSA+IHNodXVnaWluZ2lpblwgOwor6YG46ICD5aeU5ZOh5LyaID4gc2Vua291aWlua2FpXCA7CivpoZ7nvqnoqp7ovp7lhbggPiBydWlnaWdvaml0ZW5cIDsKK+WPs+aWuemrmOm6l+alvSA+IHVob3Vrb21hZ2FrdVwgOwor6IKl5Y6a5oCn6by754KOID4gaGlrb3VzZWliaWVuXCA7CivkupzphbjljJbnqpLntKAgPiBhc2Fua2FjaGlzc29cIDsKK+WuieWumuWQjOS9jeS9kyA+IGFudGVpZG91aXRhaVwgOwor5paH5a2X56ym5Y+357O7ID4gbW9qaWZ1Z291a2VpXCA7CivljLvnmYLovLjpgIHmqZ8gPiBpcnlvdXl1c291a2lcIDsKK+mBjumFuOWMluawtOe0oCA+IGthc2Fua2FzdWlzb1wgOwor5Luj55CG5aeU5Lu754q2ID4gZGFpcmlpbmluam91XCA7Civkupzlr5LluK/msJflgJkgPiBha2FudGFpa2lrb3VcIDsKK+mrmOmfs+mDqOiomOWPtyA+IGtvdW9uYnVraWdvdVwgOwor5L2N55u45bm+5L2V5a2mID4gaXNvdWtpa2FnYWt1XCA7CivkvIrli6LlpKfnpZ7lrq4gPiBpc2VkYWlqaW5ndXVcIDsKK+S6jOmFuOWMlueCree0oCA+IG5pc2Fua2F0YW5zb1wgOwor5L2O6Z+z6YOo6KiY5Y+3ID4gdGVpb25idWtpZ291XCA7CivmhJvku5bkuLvnvqnogIUgPiBhaXRhc2h1Z2lzaGFcIDsKK+S4u+aEj+S4u+e+qeiAhSA+IHNodWlzaHVnaXNoYVwgOwor5qyh6YW45YyW54Kt57SgID4gamlzYW5rYXRhbnNvXCA7Civmsrvlronntq3mjIHms5UgPiBjaGlhbicnaWppaG91XCA7CivkupXmiLjnq6/kvJrorbAgPiBpZG9iYXRha2FpZ2lcIDsKK+W6puaVsOWIhuW4g+WbsyA+IGRvc3V1YnVucHV6dVwgOwor6Ieq5YuV6LuK5LqL5pWFID4gamlkb3VzaGFqaWtvXCA7CivovrLlnLDlp5Tlk6HkvJogPiBub3VjaGlpaW5rYWlcIDsKK+WCteWLmeS4jeWxpeihjCA+IHNhaW11ZnVyaWtvdVwgOwor5LiA6YW45YyW54Kt57SgID4gaXNzYW5rYXRhbnNvXCA7Civku5jliqDkvqHlgKTnqI4gPiBmdWtha2FjaGl6ZWlcIDsKK+W4uOe9ruWnlOWToeS8miA+IGpvdWNoaWlpbmthaVwgOwor5YWs5a6J5aeU5ZOh5LyaID4ga291YW4nJ2lpbmthaVwgOwor6Z2e5Za25Yip5LqL5qWtID4gaGllaXJpamlneW91XCA7CivntYzllrblkIjnkIbljJYgPiBrZWllaWdvdXJpa2FcIDsKK+W8geitt+S+nemgvOS6uiA+IGJlbmdvaXJhaW5pblwgOwor5Yip5LuW5Li7576p6ICFID4gcml0YXNodWdpc2hhXCA7CivlsIrnmofnjovmlJjlpLcgPiBzb24nJ25vdWpvdWlcIDsKK+mdnumWi+ekuuWQiOaEjyA+IGhpa2Fpamlnb3VpXCA7Civopovmp5jopovnnJ/kvLwgPiBtaXlvdW1pbWFuZVwgOwor6Zi/5ZGG6ZmA576F57WMID4gYWhvZGFyYWt5b3VcIDsKK+azleWLmeWnlOWToeS8miA+IGhvdW11aWlua2FpXCA7CivohIrpu4TpnZLpuJrlk6UgPiBzZWtpc2VpaW5rb1wgOwor5bGL5qC56KOP6YOo5bGLID4geWFuZXVyYWJleWFcIDsKK+mYv+Wkmuemj+miqOmCqiA+IG90YWZ1a3VrYXplXCA7CivkuI3pmo/mhI/pgYvli5UgPiBmdXp1aWl1bmRvdVwgOwor5pel5pys6Kqe5paH5a2XID4gbmlob25nb21vamlcIDsKK+W5s+WSjOe2reaMgei7jSA+IGhlaXdhaWppZ3VuXCA7CivogLPpvLvlkr3llonnp5EgPiBqaWJpaW5rb3VrYVwgOwor5Y+C6K2w6Zmi6K2w5ZOhID4gc2FuZ2lpbmdpaW5cIDsKK+axn+aIuOWJjeWvv+WPuCA+IGVkb21hZXp1c2hpXCA7Civoh6roqJjmuKnluqboqIggPiBqaWtpb25kb2tlaVwgOwor5rqW5YKZ5aeU5ZOh5LyaID4ganVuYmlpaW5rYWlcIDsKK+S4i+S9jeS6kuaPm+aApyA+IGthaWdva2Fuc2VpXCA7CivkupzpiZvoj6/ou5/oho8gPiBhZW5rYW5hbmtvdVwgOwor5Lqc57Gz5Yip5Yqg5p2JID4gYW1lcmlrYXN1Z2lcIDsKK+aRqeiotuS4jeaAneitsCA+IG1ha2FmdXNoaWdpXCA7CivnlKPlqabkurrnp5HljLsgPiBzYW5mdWppbmthaVwgOwor6YGL5Za25aeU5ZOh5LyaID4gdW4nJ2VpaWlua2FpXCA7CivlkIzpn7PnlbDnvqnoqp4gPiBkb3VvbicnaWdpZ29cIDsKK+WHuuadpeS4jeWHuuadpSA+IGRla2lmdWRla2lcIDsKK+W+oemrmOellumgreW3viA+IG9rb3NvenVraW5cIDsKK+S6jOmFuOWMluehq+m7hCA+IG5pc2Fua2Fpb3VcIDsKK+WNgemHjeS6jOWNgemHjSA+IHRvZWhhdGFlXCA7Civplbfml6XmpI3niakgPiBjaG91aml0c3VzaG9rdWJ1dHN1XCA7Civlvovku6TmoLzlvI8gPiByaXRzdXJ5b3VreWFrdXNoaWtpXCA7Civpo5/ogonmpI3niakgPiBzaG9rdW5pa3VzaG9rdWJ1dHN1XCA7Civnm7TmjqXmjqXntpogPiBjaG9rdXNldHN1c2V0c3V6b2t1XCA7Civpo5/omavmpI3niakgPiBzaG9rdWNodXVzaG9rdWJ1dHN1XCA7CivkuIDml6XkuIDml6UgPiBpY2hpbmljaGlpY2hpbmljaGlcIDsKK+efreaXpeakjeeJqSA+IHRhbmppdHN1c2hva3VidXRzdVwgOwor5qiZ5rqW5Ye65YqbID4gaHlvdWp1bnNodXRzdXJ5b2t1XCA7Civkv6Hos57lv4XnvbAgPiBzaGluc2hvdWhpdHN1YmF0c3VcIDsKK+eJueW+tOaKveWHuiA+IHRva3VjaG91Y2h1dXNodXRzdVwgOwor552A55Sf5qSN54mpID4gY2hha3VzZWlzaG9rdWJ1dHN1XCA7Civlrp/nianlj5blvJUgPiBqaXRzdWJ1dHN1dG9yaWhpa2lcIDsKK+ebtOaOpeaOpeinpiA+IGNob2t1c2V0c3VzZXNzaG9rdVwgOwor6LK45LuY5L+h6KiXID4ga2FzaGl0c3VrZXNoaW50YWt1XCA7CivljbPml6XpgJ/pgZQgPiBzb2t1aml0c3Vzb2t1dGF0c3VcIDsKK+eZvueZuueZvuS4rSA+IGh5YXBwYXRzdWh5YWt1Y2h1dVwgOwor5Y+W57eg5b255LyaID4gdG9yaXNoaW1hcml5YWt1a2FpXCA7Civlh7rlipvoo4Xnva4gPiBzaHV0c3VyeW9rdXNvdWNoaVwgOwor6KSH6ZuR6aqo5oqYID4gZnVrdXphdHN1a29zc2V0c3VcIDsKK+eJqeeahOa1gemAmiA+IGJ1dHN1dGVraXJ5dXV0c3V1XCA7CivljYHlubTkuIDmmJQgPiBqdXVuZW5oaXRvbXVrYXNoaVwgOwor56Wl5pyI5ZG95pelID4gc2hvdXRzdWtpbWVpbmljaGlcIDsKK+aIpueVpeeJqeizqiA+IHNlbnJ5YWt1YnVzc2hpdHN1XCA7CivlsLHogbfmtLvli5UgPiBzaHV1c2hva3VrYXRzdWRvdVwgOwor5byx6IKJ5by36aOfID4gamFrdW5pa3VreW91c2hva3VcIDsKK+S8uOe4rueojueOhyA+IHNoaW5zaHVrdXplaXJpdHN1XCA7CivnpZ7lh7rprLzmsqEgPiBzaGluc2h1dHN1a2lib3RzdVwgOwor5ZC46KGA5YuV54mpID4ga3l1dWtldHN1ZG91YnV0c3VcIDsKK+eGseWKm+WtpueahCA+IG5ldHN1cmlraWdha3V0ZWtpXCA7CivmpI3nianmjqHpm4YgPiBzaG9rdWJ1dHN1c2Fpc2h1dVwgOwor5Ye65Yqb56uv5a2QID4gc2h1dHN1cnlva3V0YW5zaGlcIDsKK+aomea6luWFpeWKmyA+IGh5b3VqdW4nJ255dXVyeW9rdVwgOwor6Kaz6JGJ5qSN54mpID4ga2FuJyd5b3VzaG9rdWJ1dHN1XCA7CivkuIPnlJ/loLHlm70gPiBzaGljaGlzaG91aG91a29rdVwgOwor5a6f54mp5o+P5YaZID4gaml0c3VidXRzdWJ5b3VzaGFcIDsKK+auuuecn+iPjOiWrCA+IHNhdHN1c2hpbmtpbicneWFrdVwgOwor5qiZ5pys5oq95Ye6ID4gaHlvdWhvbmNodXVzaHV0c3VcIDsKK+e3j+aLrOizquWVjyA+IHNvdWthdHN1c2hpdHN1bW9uXCA7Civmva7lipvnmbrpm7sgPiBjaG91cnlva3VoYXRzdWRlblwgOwor55u05o6l6LO85YWlID4gY2hva3VzZXRzdWtvdW55dXVcIDsKK+eqrualteebrueahCA+IGt5dXVreW9rdW1va3V0ZWtpXCA7CivlpKnnhaflpKfnpZ4gPiBhbWF0ZXJhc3Vvb21pa2FtaVwgOwor6LOq5a6f5Ymb5YGlID4gc2hpdHN1aml0c3Vnb3VrZW5cIDsKK+WxgOWkluS4reeriyA+IGt5b2t1Z2FpY2h1dXJpdHN1XCA7CivoibLlvanoqr/nr4AgPiBzaGlraXNhaWNob3VzZXRzdVwgOwor6Jas55So5qSN54mpID4geWFrdXlvdXNob2t1YnV0c3VcIDsKK+eni+mcnOeDiOaXpSA+IHNodXVzb3VyZXRzdWppdHN1XCA7Civnm7TmjqXoq4vmsYIgPiBjaG9rdXNldHN1c2Vpa3l1dVwgOwor5a6X5pWZ5ZOy5a2mID4gc2h1dWt5b3V0ZXRzdWdha3VcIDsKK+iWrOeJqeS4reavkiA+IHlha3VidXRzdWNodXVkb2t1XCA7CivlsI/lv4Pnv7znv7wgPiBzaG91c2hpbicneW9rdXlva3VcIDsKK+eJueWIpeW5leWDmiA+IHRva3ViZXRzdWJha3VyeW91XCA7CivliIboo4Lnianos6ogPiBidW5yZXRzdWJ1c3NoaXRzdVwgOwor55u05o6l54Wn5piOID4gY2hva3VzZXRzdXNob3VtZWlcIDsKK+WYseiol+auuuS6uiA+IHNob2t1dGFrdXNhdHN1amluXCA7Civmub/nlJ/mpI3niakgPiBzaGlzc2Vpc2hva3VidXRzdVwgOwor5LiD5Y2B5Lq66KizID4gc2hpY2hpanV1bmluJyd5YWt1XCA7CivnmbrnmYznianos6ogPiBoYXRzdWdhbmJ1c3NoaXRzdVwgOwor55m96ZW36aCI6a+oID4gc2hpcm9uYWdhc3VrdWppcmFcIDsKK+ims+iznuakjeeJqSA+IGthbnNob3VzaG9rdWJ1dHN1XCA7Civlv4PnpZ7llqrlpLEgPiBzaGluc2hpbnNvdXNoaXRzdVwgOwor6YCa5L+X5bCP6KqsID4gdHN1dXpva3VzaG91c2V0c3VcIDsKK+eZvuaIpueZvuWLnSA+IGh5YWt1c2VuaHlha3VzaG91XCA7Civmj5Dnga/ooYzliJcgPiBjaG91Y2hpbmd5b3VyZXRzdVwgOwor5aSx5qWt5a++562WID4gc2hpdHN1Z3lvdXRhaXNha3VcIDsKK+Wwj+W/g+e/vOOAhSA+IHNob3VzaGluJyd5b2t1eW9rdVwgOwor5bem5YG06YCa6KGMID4gaGlkYXJpZ2F3YXRzdXVrb3VcIDsKK+aVkeWHuuS9nOaIpiA+IGt5dXVzaHV0c3VzYWt1c2VuXCA7CivlrqTlhoXoo4Xpo74gPiBzaGl0c3VuYWlzb3VzaG9rdVwgOwor55u05o6l56u25LqJID4gY2hva3VzZXRzdWt5b3Vzb3VcIDsKK+aXreaXpeaYh+WkqSA+IGt5b2t1aml0c3VzaG91dGVuXCA7CivomJroi5TmpI3niakgPiBzZW50YWlzaG9rdWJ1dHN1XCA7CivnoJTnqbblrqTmo58gPiBrZW5reXV1c2hpdHN1dG91XCA7Civopb/lgbToq7jlm70gPiBuaXNoaWdhd2FzaG9rb2t1XCA7CivohIrmpI7li5XniakgPiBzZWtpdHN1aWRvdWJ1dHN1XCA7CivmoZHljp/moZHljp8gPiBrdXdhYmFyYWt1d2FiYXJhXCA7Civkuqvmpb3nlJ/mtLsgPiBreW91cmFrdXNlaWthdHN1XCA7CivlhaXlipvpm7vmtYEgPiBueXV1cnlva3VkZW5yeXV1XCA7CivljYHlubTkuIDml6UgPiBqdXVuZW4nJ2ljaGlqaXRzdVwgOwor6aKo5L+X5bCP6KqsID4gZnV1em9rdXNob3VzZXRzdVwgOwor5L2O6KGA5Zyn55eHID4gdGVpa2V0c3VhdHN1c2hvdVwgOwor6Jma44CF5a6f44CFID4ga3lva3lvaml0c3VqaXRzdVwgOwor5oqA6KGT5Y2U5YqbID4gZ2lqdXRzdWt5b3VyeW9rdVwgOwor56m65Lit6KGd56qBID4ga3V1Y2h1dXNob3V0b3RzdVwgOwor5Y2D56+H5LiA5b6LID4gc2VucGVuJydpY2hpcml0c3VcIDsKK+aWmeeQhuaVmeWupCA+IHJ5b3VyaWt5b3VzaGl0c3VcIDsKK+acrOagvOWwj+iqrCA+IGhvbmtha3VzaG91c2V0c3VcIDsKK+Wbveeri+WKh+WgtCA+IGtva3VyaXRzdWdla2lqb3VcIDsKK+iNiemjn+WLleeJqSA+IHNvdXNob2t1ZG91YnV0c3VcIDsKK+ebtOaOpemBuOaMmSA+IGNob2t1c2V0c3VzZW5reW9cIDsKK+eUn+iAheW/hea7hSA+IHNob3VqYWhpdHN1bWV0c3VcIDsKK+eGseW4r+akjeeJqSA+IG5ldHRhaXNob2t1YnV0c3VcIDsKK+advuS4i+mbu+W3pSA+IG1hdHN1c2hpdGFkZW5rb3VcIDsKK+WVhualreeul+ihkyA+IHNob3VneW91c2FuanV0c3VcIDsKK+aIpuaIpuagl+aglyA+IHNlbnNlbnJpdHN1cml0c3VcIDsKK+aPrueZuueJqeizqiA+IGtpaGF0c3VidXNzaGl0c3VcIDsKK+eZuuWFieakjeeJqSA+IGhha2tvdXNob2t1YnV0c3VcIDsKK+mbu+WKm+S+m+e1piA+IGRlbnJ5b2t1a3lvdWt5dXVcIDsKK+aIpueVpeeIhuaSgyA+IHNlbnJ5YWt1YmFrdWdla2lcIDsKK+WmiuWooOS4ree1tiA+IG5pbnNoaW5jaHV1emV0c3VcIDsKK+ebtOaOpeS8muirhyA+IGNob2t1c2V0c3VrYWlkYW5cIDsKK+WJsuWil+izg+mHkSA+IHdhcmltYXNoaWNoaW5naW5cIDsKK+S9nOS7mOmdouepjSA+IHNha3VkenVrZW1lbnNla2lcIDsKK+aXpeeLrOWNlOS8miA+IG5pY2hpZG9rdWt5b3VrYWlcIDsKK+aXpeW4uOeUn+a0uyA+IG5pY2hpam91c2Vpa2F0c3VcIDsKK+ats+WFpeats+WHuiA+IHNhaW55dXVzYWlzaHV0c3VcIDsKK+eJueWIpeaApeihjCA+IHRva3ViZXRzdWt5dXVrb3VcIDsKK+i7ouWHuuiovOaYjiA+IHRlbnNodXRzdXNob3VtZWlcIDsKK+aVkeiNkuS9nOeJqSA+IGt5dXVrb3VzYWt1bW90c3VcIDsKK+WcsOeGseeZuumbuyA+IGNoaW5ldHN1aGF0c3VkZW5cIDsKK+iWrOeJqeeZguazlSA+IHlha3VidXRzdXJ5b3Vob3VcIDsKK+mjn+ezp+mFjee1piA+IHNob2t1cnlvdWhhaWt5dXVcIDsKK+ebtOezu+ihgOaXjyA+IGNob2trZWlrZXRzdXpva3VcIDsKK+izquWVj+eUqOe0mSA+IHNoaXRzdW1vbicneW91c2hpXCA7Civni6zouqvnlJ/mtLsgPiBkb2t1c2hpbnNlaWthdHN1XCA7Civorablr5/lvZPlsYAgPiBrZWlzYXRzdXRvdWt5b2t1XCA7Civnm7TmjqXkvJ3mn5MgPiBjaG9rdXNldHN1ZGVuc2VuXCA7CivpnZLnqbrmlZnlrqQgPiBhb3pvcmFreW91c2hpdHN1XCA7CivpnZ7lq6Hlh7rlrZAgPiBoaWNoYWt1c2h1dHN1c2hpXCA7CivnlJ/mtLvmp5jlvI8gPiBzZWlrYXRzdXlvdXNoaWtpXCA7CivniYfpgZPmlpnph5EgPiBrYXRhbWljaGlyeW91a2luXCA7Civljp/msrnmtYHlh7ogPiBnZW4nJ3l1cnl1dXNodXRzdVwgOwor55Wl5byP5ZG95LukID4gcnlha3VzaGlraW1laXJlaVwgOwor6Iq46KGT5rS75YuVID4gZ2VpanV0c3VrYXRzdWRvdVwgOwor5q205Y+y5ZOy5a2mID4gcmVraXNoaXRldHN1Z2FrdVwgOwor5LiL55S66KiA6JGJID4gc2hpdGFtYWNoaWtvdG9iYVwgOwor57eK5oCl552A6Zm4ID4ga2lua3l1dWNoYWt1cmlrdVwgOwor5Ya36KGA5YuV54mpID4gcmVpa2V0c3Vkb3VidXRzdVwgOwor5Y+W5omx5rOo5oSPID4gdG9yaWF0c3VrYWljaHV1aVwgOwor5Ymy5aKX5paZ6YeRID4gd2FyaW1hc2hpcnlvdWtpblwgOwor55u05oiq57Ch5piOID4gY2hva3VzZXRzdWthbm1laVwgOwor6buE6YGT5ZCJ5pelID4ga291ZG91a2ljaGluaWNoaVwgOwor5LiA6Kem5Y2z55m6ID4gaXNzaG9rdXNva3VoYXRzdVwgOwor5Y2z5pel6ZaL56WoID4gc29rdWppdHN1a2FpaHlvdVwgOwor5a6f6LOq6LOD6YeRID4gamlzc2hpdHN1Y2hpbmdpblwgOwor5pWZ6aSK5bCP6KqsID4ga3lvdXlvdXNob3VzZXRzdVwgOwor5oq96LGh6Iq46KGTID4gY2h1dXNob3VnZWlqdXRzdVwgOwor55u05o6l5pSv6YWNID4gY2hva3VzZXRzdXNoaWhhaVwgOwor6ZuG5Zuj5bCx6IG3ID4gc2h1dWRhbnNodXVzaG9rdVwgOwor5rC055Sf5qSN54mpID4gc3Vpc2Vpc2hva3VidXRzdVwgOwor6IG35YuZ6LOq5ZWPID4gc2hva3VtdXNoaXRzdW1vblwgOwor5Lm+55Sf5qSN54mpID4ga2Fuc2Vpc2hva3VidXRzdVwgOwor5a6/5rOK6Kit5YKZID4gc2h1a3VoYWt1c2V0c3ViaVwgOwor5Zu956uL5aSn5a2mID4ga29rdXJpdHN1ZGFpZ2FrdVwgOwor5LiA6KiA5LqM6KiAID4gaGl0b2tvdG9mdXRha290b1wgOwor5q2j6Z2i6KGd56qBID4gc2hvdW1lbnNob3V0b3RzdVwgOwor5LiA5pel5Y2D56eLID4gaWNoaW5pY2hpc2Vuc2h1dVwgOwor5ZWG5qWt55uu55qEID4gc2hvdWd5b3Vtb2t1dGVraVwgOwor6KSH5byP5a2m57SaID4gZnVrdXNoaWtpZ2Fra3l1dVwgOwor5Y2S5qWt6Ki85pu4ID4gc290c3VneW91c2hvdXNob1wgOwor54S86IKJ5a6a6aOfID4geWFraW5pa3V0ZWlzaG9rdVwgOwor6KGo6Z2i5by15YqbID4gaHlvdW1lbmNob3VyeW9rdVwgOwor54m55Yil55Wq57WEID4gdG9rdWJldHN1YmFuZ3VtaVwgOwor5a2m57+S6IO95YqbID4gZ2FrdXNodXVub3VyeW9rdVwgOwor5L+h55So5Y+W5byVID4gc2hpbicneW91dG9yaWhpa2lcIDsKK+mrmOihgOWcp+eXhyA+IGtvdWtldHN1YXRzdXNob3VcIDsKK+S4reW/g+S6uueJqSA+IGNodXVzaGluamluYnV0c3VcIDsKK+mjn+aWmeWTgeWVhiA+IHNob2t1cnlvdWhpbnNob3VcIDsKK+i2heePvuWun+eahCA+IGNob3VnZW5qaXRzdXRla2lcIDsKK+WNs+i6q+aIkOS7jyA+IHNva3VzaGluam91YnV0c3VcIDsKK+WbveWkluiEseWHuiA+IGtva3VnYWlkYXNzaHV0c3VcIDsKK+ebtOaOpeWbnuetlCA+IGNob2t1c2V0c3VrYWl0b3VcIDsKK+WFiOeJqeWPluW8lSA+IHNha2ltb25vdG9yaWhpa2lcIDsKK+attOWPsuWwj+iqrCA+IHJla2lzaGlzaG91c2V0c3VcIDsKK+eFruayuOa2iOavkiA+IHNoYWZ1dHN1c2hvdWRva3VcIDsKK+a1t+WklumAsuWHuiA+IGthaWdhaXNoaW5zaHV0c3VcIDsKK+awtOWKm+eZuumbuyA+IHN1aXJ5b2t1aGF0c3VkZW5cIDsKK+W9ouizquWwjuWFpSA+IGtlaXNoaXRzdWRvdW55dXVcIDsKK+ebtOaOpemWouS/giA+IGNob2t1c2V0c3VrYW5rZWlcIDsKK+ebtOaOpeewoeaYjiA+IGNob2t1c2V0c3VrYW5tZWlcIDsKK+aMr+abv+S8keaXpSA+IGZ1cmlrYWVreXV1aml0c3VcIDsKK+WNg+e3qOS4gOW+iyA+IHNlbnBlbicnaWNoaXJpdHN1XCA7Civpg7Xkvr/lsI/ljIUgPiB5dXViaW5rb2R6dXRzdW1pXCA7CivljZjkuIDnpZ7mlZkgPiB0YW4nJ2l0c3VzaGlua3lvdVwgOwor6Jma5byx5L2T6LOqID4ga3lvamFrdXRhaXNoaXRzdVwgOwor6ISK57Si5YuV54mpID4gc2VraXNha3Vkb3VidXRzdVwgOwor5q2m5Yqb6KGd56qBID4gYnVyeW9rdXNob3V0b3RzdVwgOwor54ax5qC45Y+N5b+cID4gbmV0c3VrYWt1aGFuJydub3VcIDsKK+eoruWtkOakjeeJqSA+IHNodXNoaXNob2t1YnV0c3VcIDsKK+ebtOaOpeihjOWLlSA+IGNob2t1c2V0c3Vrb3Vkb3VcIDsKK+axguiBt+W6g+WRiiA+IGt5dXVzaG9rdWtvdWtva3VcIDsKK+Wun+iovOWTsuWtpiA+IGppc3Nob3V0ZXRzdWdha3VcIDsKK+iKseWrgeiKseWpvyA+IGhhbmF5b21laGFuYW11a29cIDsKK+Wkp+WQjeihjOWIlyA+IGRhaW15b3VneW91cmV0c3VcIDsKK+mrmOWxseakjeeJqSA+IGtvdXphbnNob2t1YnV0c3VcIDsKK+eJueWIpeaWmemHkSA+IHRva3ViZXRzdXJ5b3VraW5cIDsKK+S4remWk+Wwj+iqrCA+IGNodXVrYW5zaG91c2V0c3VcIDsKK+eUn+eJqea/g+e4riA+IHNlaWJ1dHN1bm91c2h1a3VcIDsKK+WFpeWKm+S/oeWPtyA+IG55dXVyeW9rdXNoaW5nb3VcIDsKK+W9q+WIu+WupOW6pyA+IGNob3Vrb2t1c2hpdHN1emFcIDsKK+eiuueOh+aomeacrCA+IGtha3VyaXRzdWh5b3Vob25cIDsKK+W3nueri+Wkp+WtpiA+IHNodXVyaXRzdWRhaWdha3VcIDsKK+WkmuiCieakjeeJqSA+IHRhbmlrdXNob2t1YnV0c3VcIDsKK+eGseS8neWwjueOhyA+IG5ldHN1ZGVuZG91cml0c3VcIDsKK+akjeeJqeS6uumWkyA+IHNob2t1YnV0c3VuaW5nZW5cIDsKK+iZmuiZmuWun+WunyA+IGt5b2t5b2ppdHN1aml0c3VcIDsKK+eJqeeJqeS6pOaPmyA+IGJ1dHN1YnV0c3Vrb3VrYW5cIDsKK+Wun+WKm+ihjOS9vyA+IGppdHN1cnlva3Vrb3VzaGlcIDsKK+Wei+W8j+iovOaYjiA+IGthdGFzaGlraXNob3VtZWlcIDsKK+mAo+WLneikh+W8jyA+IHJlbnNob3VmdWt1c2hpa2lcIDsKK+ebtOaOpeWNlOitsCA+IGNob2t1c2V0c3VreW91Z2lcIDsKK+e9qumanOa2iOa7hSA+IHphaXNob3VzaG91bWV0c3VcIDsKK+aZqeeUn+akjeeJqSA+IGJhbnNlaXNob2t1YnV0c3VcIDsKK+a9nOWcqOWksealrSA+IHNlbnphaXNoaXRzdWd5b3VcIDsKK+ebtOaOpeavlOi8gyA+IGNob2t1c2V0c3VoaWtha3VcIDsKK+aguOaKkeatouWKmyA+IGtha3V5b2t1c2hpcnlva3VcIDsKK+S4h+eJqea1gei7oiA+IGJhbmJ1dHN1cnl1dXRlblwgOwor6Luf5byP5bqt55CDID4gbmFuc2hpa2l0ZWlreXV1XCA7Civkv67pgZPnlJ/mtLsgPiBzaHV1ZG91c2Vpa2F0c3VcIDsKK+enmOWvhuitpuWvnyA+IGhpbWl0c3VrZWlzYXRzdVwgOwor5rOV5Lq65qCq5Li7ID4gaG91amlua2FidW51c2hpXCA7CivplpPmjqXnhafmmI4gPiBrYW5zZXRzdXNob3VtZWlcIDsKK+e0m+mqqOeglei6qyA+IGZ1bmtvdHN1c2Fpc2hpblwgOwor5Lih5qOy5YuV54mpID4gcnlvdXNlaWRvdWJ1dHN1XCA7Civpm4bntITovrLmpa0gPiBzaHV1eWFrdW5vdWd5b3VcIDsKK+W7g+eWvuadoeS7tiA+IGhhaXNoaXRzdWpvdWtlblwgOwor6IO9546H6LOD6YeRID4gbm91cml0c3VjaGluZ2luXCA7CivljZjliIDnm7TlhaUgPiB0YW50b3VjaG9rdW55dXVcIDsKK+S4ieaWh+Wwj+iqrCA+IHNhbm1vbnNob3VzZXRzdVwgOwor562L6IKJ5rOo5bCEID4ga2luJyduaWt1Y2h1dXNoYVwgOwor5Zub6YCa5YWr6YGUID4gc2hpdHN1dWhhdHRhdHN1XCA7CivlibLlopfpgYvos4MgPiB3YXJpbWFzaGl1bmNoaW5cIDsKK+WNl+alteims+a4rCA+IG5hbmt5b2t1a2Fuc29rdVwgOwor5LiA55uu556t54S2ID4gaWNoaW1va3VyeW91emVuXCA7CivntKDkurrkuIvlrr8gPiBzaGlyb3V0b2dlc2h1a3VcIDsKK+Wtpuagoee1pumjnyA+IGdha2tvdWt5dXVzaG9rdVwgOwor6ZaT5o6l5pKu5b2xID4ga2Fuc2V0c3VzYXRzdWVpXCA7Civnmb3lt53lpJzoiLkgPiBzaGlyYWthd2F5b2Z1bmVcIDsKK+eJueethuWkp+abuCA+IHRva3VoaXRzdXRhaXNob1wgOwor6aOf5ZOB5bel5qWtID4gc2hva3VoaW5rb3VneW91XCA7Civmo5jnmq7li5XniakgPiBreW9rdWhpZG91YnV0c3VcIDsKK+aAquWKm+S5seelniA+IGthaXJ5b2t1cmFuc2hpblwgOwor5Lq655Sf5ZOy5a2mID4gamluc2VpdGV0c3VnYWt1XCA7CivmlrDlqZrnlJ/mtLsgPiBzaGlua29uc2Vpa2F0c3VcIDsKK+WFrOmWi+WFpeacrSA+IGtvdWthaW55dXVzYXRzdVwgOwor5qCq5byP5biC5aC0ID4ga2FidXNoaWtpc2hpam91XCA7Civlrabmpa3miJDnuL4gPiBnYWt1Z3lvdXNlaXNla2lcIDsKK+eJqeizquWQjeipniA+IGJ1c3NoaXRzdW1laXNoaVwgOwor55+t57eo5bCP6KqsID4gdGFucGVuc2hvdXNldHN1XCA7CivllYbmpa3mlbDlraYgPiBzaG91Z3lvdXN1dWdha3VcIDsKK+iEseWHuumAn+W6piA+IGRhc3NodXRzdXNva3Vkb1wgOwor54m55Yil57eP5LyaID4gdG9rdWJldHN1c291a2FpXCA7CivnrKzkuIDmpb3nq6AgPiBkYWlpY2hpZ2FrdXNob3VcIDsKK+e0ouadoemJhOmBkyA+IHNha3Vqb3V0ZXRzdWRvdVwgOwor6LuN6KiY54mp6KqeID4gZ3Vua2ltb25vZ2F0YXJpXCA7CivljrPmraPkuK3nq4sgPiBnZW5zZWljaHV1cml0c3VcIDsKK+S4gOaXpeS4gOWknCA+IGljaGluaWNoaWljaGl5YVwgOwor6Zmw6Zmw5ruF5ruFID4gaW4nJ2lubWV0c3VtZXRzdVwgOwor5bCx6IG35rWq5Lq6ID4gc2h1dXNob2t1cm91bmluXCA7CivntJTmvZTmlZnogrIgPiBqdW5rZXRzdWt5b3Vpa3VcIDsKK+Wul+aVmeaUuemdqSA+IHNodXVreW91a2Fpa2FrdVwgOwor5pSv6Zui5ruF6KOCID4gc2hpcmltZXRzdXJldHN1XCA7Civlm73msJHlrr/oiI4gPiBrb2t1bWluc2h1a3VzaGFcIDsKK+eLrOeri+Wuo+iogCA+IGRva3VyaXRzdXNlbmdlblwgOwor5Ymv6IWO55qu6LOqID4gZnVrdWppbmhpc2hpdHN1XCA7Civlm73msJHnlJ/mtLsgPiBrb2t1bWluc2Vpa2F0c3VcIDsKK+epjei8ieiDveWKmyA+IHNla2lzYWlub3VyeW9rdVwgOwor5Y+O5a656IO95YqbID4gc2h1dXlvdW5vdXJ5b2t1XCA7CivohbDpq5jpmpzlrZAgPiBrb3NoaWRha2FzaG91amlcIDsKK+W5tOmgg+aXpemggyA+IHRvc2hpZ29yb2hpZ29yb1wgOwor6YCa5L+X5paH5a2mID4gdHN1dXpva3VidW5nYWt1XCA7CivlhKrlhYjmoKrkuLsgPiB5dXVzZW5rYWJ1bnVzaGlcIDsKK+WGmeecn+a4rOmHjyA+IHNoYXNoaW5zb2t1cnlvdVwgOwor5LyB5qWt5L2T6LOqID4ga2lneW91dGFpc2hpdHN1XCA7CivnjKrnqoHnjJvpgLIgPiBjaG90b3RzdW1vdXNoaW5cIDsKK+WtpueUn+WJsuW8lSA+IGdha3VzZWl3YXJpYmlraVwgOwor5L6h5qC85Zyn5YqbID4ga2FrYWt1YXRzdXJ5b2t1XCA7Civooajnj77lvaLlvI8gPiBoeW91Z2Vua2Vpc2hpa2lcIDsKK+WHuumhmOabuOmhniA+IHNodXRzdWdhbnNob3J1aVwgOwor5a6X5pWZ5pWZ6IKyID4gc2h1dWt5b3VreW91aWt1XCA7CivkvZnoo5Xntr3ntr0gPiB5b3l1dXNoYWt1c2hha3VcIDsKK+efpeeahOiDveWKmyA+IGNoaXRla2lub3VyeW9rdVwgOwor5Y+N6aqo57K+56WeID4gaGFua290c3VzZWlzaGluXCA7CivmraPnorrniIbmkoMgPiBzZWlrYWt1YmFrdWdla2lcIDsKK+aXpeiLsemAmuiosyA+IG5pY2hpZWl0c3V1eWFrdVwgOwor6aOf54mp57mK57atID4gc2hva3Vtb3RzdXNlbicnaVwgOwor566X6KGT57Sa5pWwID4gc2FuanV0c3VreXV1c3V1XCA7CivlhaXlipvoo4Xnva4gPiBueXV1cnlva3Vzb3VjaGlcIDsKK+iBt+alreiok+e3tCA+IHNob2t1Z3lvdWt1bnJlblwgOwor5o6i5YG15bCP6KqsID4gdGFudGVpc2hvdXNldHN1XCA7CivnlJ/mtLvlj43lv5wgPiBzZWlrYXRzdWhhbicnbm91XCA7Civmnb7kuIvpm7vlmaggPiBtYXRzdXNoaXRhZGVua2lcIDsKK+efpeitmOmajue0miA+IGNoaXNoaWtpa2Fpa3l1dVwgOwor5qCq5byP5Lya56S+ID4ga2FidXNoaWtpZ2Fpc2hhXCA7CivkuIDmmYLpoJDmiYAgPiBpY2hpamlhenVrYXJpam9cIDsKK+aLoeWkp+ino+mHiCA+IGtha3VkYWlrYWlzaGFrdVwgOwor5ZOB6LOq5L+d6Ki8ID4gaGluc2hpdHN1aG9zaG91XCA7Civkv6Hku7DlkYrnmb0gPiBzaGlua291a29rdWhha3VcIDsKK+agvOeJqeiHtOefpSA+IGtha3VidXRzdWNoaWNoaVwgOwor57Gz56mA6YCa5bizID4gYmVpa29rdXRzdXVjaG91XCA7Civlrp/nlKjmlrDmoYggPiBqaXRzdXlvdXNoaW4nJ2FuXCA7Civlv4PouqvpmpzlrrMgPiBzaGluc2hpbnNob3VnYWlcIDsKK+mAn+aIpuWNs+axuiA+IHNva3VzZW5zb2trZXRzdVwgOwor5YyW5a2m5ZC4552AID4ga2FnYWt1a3l1dWNoYWt1XCA7Civlm5vmlrnlsbHoqbEgPiB5b21veWFtYWJhbmFzaGlcIDsKK+eah+WupOWFuOevhCA+IGtvdXNoaXRzdXRlbnBhblwgOwor54m55Yil5Zu95LyaID4gdG9rdWJldHN1a29ra2FpXCA7CivkuIDlnarmnKznpL4gPiBoaXRvdHN1Ym9ob25zaGFcIDsKK+aXqeWPo+iogOiRiSA+IGhheWFrdWNoaWtvdG9iYVwgOwor5rex5bGx5bm96LC3ID4gc2hpbnphbicneXV1a29rdVwgOwor6YCa5ZWG55Sj5qWtID4gdHN1dXNob3VzYW5neW91XCA7Civlu7rnr4npnaLnqY0gPiBrZW5jaGlrdW1lbnNla2lcIDsKK+ebpOaguemMr+evgCA+IGJhbmtvbnNha3VzZXRzdVwgOwor5YaF55qE55Sf5rS7ID4gbmFpdGVraXNlaWthdHN1XCA7Civnp5jlr4bmvI/mtKkgPiBoaW1pdHN1cm91c2V0c3VcIDsKK+eOieefs+a3t+a3hiA+IGd5b2t1c2VraWtvbmtvdVwgOwor6Zub6ZGR5Yil6ICFID4gaGluYWthbmJldHN1c2hhXCA7CivntYLouqvlubTph5EgPiBzaHV1c2hpbicnbmVua2luXCA7CivnsonpqqjnoJXouqsgPiBmdW5rb3RzdXNhaXNoaW5cIDsKK+S6uueJqeWvuOaPjyA+IGppbmJ1dHN1c3VuYnlvdVwgOwor5ZWG5ZOB55uu6YyyID4gc2hvdWhpbm1va3Vyb2t1XCA7CivlpJbpo5/nlKPmpa0gPiBnYWlzaG9rdXNhbmd5b3VcIDsKK+izh+a6kOevgOe0hCA+IHNoaWdlbnNldHN1eWFrdVwgOwor6Z2Z6ISI5rOo5bCEID4gam91bXlha3VjaHV1c2hhXCA7CivlhpLpmbrlsI/oqqwgPiBib3VrZW5zaG91c2V0c3VcIDsKK+eGseehrOWMlueJqSA+IG5ldHN1a291a2FidXRzdVwgOwor5Zu95pyJ6YmE6YGTID4ga29rdXl1dXRldHN1ZG91XCA7CivnorrnjoflpInmlbAgPiBrYWt1cml0c3VoZW5zdXVcIDsKK+mWi+eZuuioiOeUuyA+IGthaWhhdHN1a2Vpa2FrdVwgOwor5pyJ5a6z54mp6LOqID4geXV1Z2FpYnVzc2hpdHN1XCA7Civmg4XnirbphYzph48gPiBqb3Vqb3VzaGFrdXJ5b3VcIDsKK+S+teeVpeaIpuS6iSA+IHNoaW5yeWFrdXNlbnNvdVwgOwor5YaS6aCt6Zmz6L+wID4gYm91dG91Y2hpbmp1dHN1XCA7CivnhLzouqvoh6rmrrogPiBzaG91c2hpbmppc2F0c3VcIDsKK+Wkp+WuieWQieaXpSA+IHRhaWFua2ljaGluaWNoaVwgOwor55+v5q2j6KaW5YqbID4ga3lvdXNlaXNoaXJ5b2t1XCA7CivnoJTnqbbplovnmbogPiBrZW5reXV1a2FpaGF0c3VcIDsKK+irh+WQiOWFpeacrSA+IGRhbmdvdW55dXVzYXRzdVwgOwor6Zm455Sf5YuV54mpID4gcmlrdXNlaWRvdWJ1dHN1XCA7CivljZflpKrlubPmtIsgPiBtaW5hbWl0YWloZWl5b3VcIDsKK+WtpueUn+eUn+a0uyA+IGdha3VzZWlzZWlrYXRzdVwgOwor77yR77yR77yZ55WqID4gaHlha3VqdXVreXV1YmFuXCA7CivntZDlkIjntYTnuZQgPiBrZXRzdWdvdXNvc2hpa2lcIDsKK+W9q+W/g+mPpOmqqCA+IGNob3VzaGlucnVrb3RzdVwgOwor57iB5pel5ZWG5Lq6ID4gZW4nJ25pY2hpc2hvdW5pblwgOwor5b+D56We6ICX5byxID4gc2hpbnNoaW5tb3VqYWt1XCA7Civnn63mnJ/osrjku5ggPiB0YW5raWthc2hpdHN1a2VcIDsKK+eOieefs+a3t+S6pCA+IGd5b2t1c2VraWtvbmtvdVwgOwor5bem5Lit5ous5bynID4gaGlkYXJpY2h1dWtha2tvXCA7Civpu5LoibLkurrnqK4gPiBrb2t1c2hva3VqaW5zaHVcIDsKK+WFrOW8j+eZuuihqCA+IGtvdXNoaWtpaGFwcHlvdVwgOwor6Luf6aqo57WE57mUID4gbmFua290c3Vzb3NoaWtpXCA7CivmmJ/plpPnianos6ogPiBzZWlrYW5idXNzaGl0c3VcIDsKK+eUn+a2r+Wtpue/kiA+IHNob3VnYWlnYWt1c2h1dVwgOwor55+l6K2Y6KGo54++ID4gY2hpc2hpa2loeW91Z2VuXCA7CivmupDmsI/nianoqp4gPiBnZW5qaW1vbm9nYXRhcmlcIDsKK+S4g+i7ouWFq+WAkiA+IHNoaWNoaXRlbmJhdHRvdVwgOwor55m96Imy5Lq656iuID4gaGFrdXNob2t1amluc2h1XCA7CivlubPlrrbnianoqp4gPiBoZWlrZW1vbm9nYXRhcmlcIDsKK+S9meijlee2veOAhSA+IHlveXV1c2hha3VzaGFrdVwgOwor5ouS57W25Y+N5b+cID4ga3lvemV0c3VoYW4nJ25vdVwgOwor54m55Yil5b6F6YGHID4gdG9rdWJldHN1dGFpZ3V1XCA7CivpnZLlpKnnmb3ml6UgPiBzZWl0ZW5oYWt1aml0c3VcIDsKK+Wkqee9sOimv+mdoiA+IHRlbmJhdHN1dGVraW1lblwgOwor6KGA5peP57WQ5amaID4ga2V0c3V6b2t1a2Vra29uXCA7CivnmbroibLnj77lg48gPiBoYXNzaG9rdWdlbnNob3VcIDsKK+WFpeacreS+oeagvCA+IG55dXVzYXRzdWtha2FrdVwgOwor6YCj56uL5YaF6ZajID4gcmVucml0c3VuYWlrYWt1XCA7CivohbnlvI/lkbzlkLggPiBmdWt1c2hpa2lrb2t5dXVcIDsKK+S9jumWi+eZuuWbvSA+IHRlaWthaWhhdHN1a29rdVwgOwor6Lu95aaZ5rSS6ISxID4ga2VpbXlvdXNoYWRhdHN1XCA7Civpi7zntKLpiYTpgZMgPiBrb3VzYWt1dGV0c3Vkb3VcIDsKK+ePvuacieWLouWKmyA+IGdlbicneXV1c2Vpcnlva3VcIDsKK+mBiuS8keaWveiorSA+IHl1dWt5dXVzaGlzZXRzdVwgOwor6Lez6LqN5oyv5YuVID4gY2hvdXlha3VzaGluZG91XCA7CivotoXnhLblhoXplqMgPiBjaG91emVuJyduYWlrYWt1XCA7Civlrp/mpa3lrabmoKEgPiBqaXRzdWd5b3VnYWtrb3VcIDsKK+engeeri+Wkp+WtpiA+IHNoaXJpdHN1ZGFpZ2FrdVwgOwor5pyA5L2O6KGA5ZynID4gc2FpdGVpa2V0c3VhdHN1XCA7CivlsIrlsZ7mrrrkurogPiBzb256b2t1c2F0c3VqaW5cIDsKK+S4reeri+WcsOW4ryA+IGNodXVyaXRzdWNoaXRhaVwgOwor5Lih5qW15Zyw5pa5ID4gcnlvdWt5b2t1Y2hpaG91XCA7CivpgKPntprmrrrkurogPiByZW56b2t1c2F0c3VqaW5cIDsKK+WeguebtOWIhualrSA+IHN1aWNob2t1YnVuZ3lvdVwgOwor5rSX5r+v55+z6bm4ID4gc2VudGFrdXNldHN1a2VuXCA7Civpl5jnl4XnlJ/mtLsgPiB0b3VieW91c2Vpa2F0c3VcIDsKK+WQjOaWh+mAmumBlCA+IGRvdWJ1bnRzdXV0YXRzdVwgOwor5YaG6Lui5ruR6ISxID4gZW50ZW5rYXRzdWRhdHN1XCA7CivnlJ/nianlt6XlraYgPiBzZWlidXRzdWtvdWdha3VcIDsKK+S4gOW+i+a4m+WPjSA+IGljaGlyaXRzdWdlbnRhblwgOwor5Lq65ZOh57iu5bCRID4gamluJydpbnNodWt1c2hvdVwgOwor54us56uL5aSJ5pWwID4gZG9rdXJpdHN1aGVuc3V1XCA7Civkurrlrpros6rllY8gPiBqaW50ZWlzaGl0c3Vtb25cIDsKK+aWsOe0hOiBluabuCA+IHNoaW4nJ3lha3VzZWlzaG9cIDsKK+eUn+auuuS4juWlqiA+IHNlaXNhdHN1eW9kYXRzdVwgOwor5q6/5qeY5LuV5LqLID4gdG9ub3NhbWFzaGlnb3RvXCA7Civlj7DmiYDnlKjlk4EgPiBkYWlkb2tvcm95b3VoaW5cIDsKK+iytOmHkeWxnuWNuCA+IGtpa2luem9rdW9yb3NoaVwgOwor5LiK5pa56LSF5YWtID4ga2FtaWdhdGF6ZWlyb2t1XCA7CivooYDml4/plqLkv4IgPiBrZXRzdXpva3VrYW5rZWlcIDsKK+WtkOWuruW+jOWxiCA+IHNoaWt5dXVrb3VrdXRzdVwgOwor5Y2X5b6B5YyX5LyQID4gbmFuc2VpaG9rdWJhdHN1XCA7CivnnJ/lrp/kuIDot68gPiBzaGluaml0c3VpY2hpcm9cIDsKK+eJueWIpemBi+izgyA+IHRva3ViZXRzdXVuY2hpblwgOwor6YCa5bi45oim5YqbID4gdHN1dWpvdXNlbnJ5b2t1XCA7CivliKnlrrPlvpflpLEgPiByaWdhaXRva3VzaGl0c3VcIDsKK+a1hemFjOS9juWUsSA+IHNlbnNoYWt1dGVpc2hvdVwgOwor6KO45a2Q5qSN54mpID4gcmFzaGlzaG9rdWJ1dHN1XCA7CivlgJ/nlKjoqLzmm7ggPiBzaGFrdXlvdXNob3VzaG9cIDsKK+WFseaciee1kOWQiCA+IGt5b3V5dXVrZXRzdWdvdVwgOwor5Zue5oqY6aCY5Z+fID4ga2Fpc2V0c3VyeW91aWtpXCA7Civogbfmpa3mhI/orZggPiBzaG9rdWd5b3Vpc2hpa2lcIDsKK+WNmOW8j+Wtpue0miA+IHRhbnNoaWtpZ2Fra3l1dVwgOwor5a2m6KGT6ZuR6KqMID4gZ2FrdWp1dHN1emFzc2hpXCA7CivljZLmpa3oqabpqJMgPiBzb3RzdWd5b3VzaGlrZW5cIDsKK+WEquaAp+W9ouizqiA+IHl1dXNlaWtlaXNoaXRzdVwgOwor5oiQ6ZW35puy57eaID4gc2VpY2hvdWt5b2t1c2VuXCA7Civnmb7lhavljYHluqYgPiBoeWFrdWhhY2hpanV1ZG9cIDsKK+Wkp+WSjOaSq+WtkCA+IHlhbWF0b25hZGVzaGlrb1wgOwor5aW96Imy5paH5a2mID4ga291c2hva3VidW5nYWt1XCA7CivpnIrprYLmtojmu4UgPiByZWlrb25zaG91bWV0c3VcIDsKK+eJueWIpemFjeW9kyA+IHRva3ViZXRzdWhhaXRvdVwgOwor6aKo5Yqb6ZqO57SaID4gZnV1cnlva3VrYWlreXV1XCA7CivmtYHkvZPlipvlraYgPiByeXV1dGFpcmlraWdha3VcIDsKK+WKo+W8seaEj+itmCA+IHJldHN1amFrdWlzaGlraVwgOwor5LqM6IKh6IaP6JasID4gZnV0YW1hdGFrb3V5YWt1XCA7Civnianos6rku6PorJ0gPiBidXNzaGl0c3V0YWlzaGFcIDsKK+euoei9hOWumOW6gSA+IGthbmthdHN1a2FuY2hvdVwgOwor5L+u5q2j55Sz5ZGKID4gc2h1dXNlaXNoaW5rb2t1XCA7Civlv4PnkIblsI/oqqwgPiBzaGlucmlzaG91c2V0c3VcIDsKK+edgOmZuOWcsOeCuSA+IGNoYWt1cmlrdWNoaXRlblwgOwor5a6f6aiT5bCP6KqsID4gamlra2Vuc2hvdXNldHN1XCA7Civljp/lrZDniIbnmbogPiBnZW5zaGliYWt1aGF0c3VcIDsKK+WFpeWKm+aDheWgsSA+IG55dXVyeW9rdWpvdWhvdVwgOwor6YeP5a2Q5Yqb5a2mID4gcnlvdXNoaXJpa2lnYWt1XCA7CivlparkuInmjK/njosgPiBkYXRzdXNhbnNoaW4nJ291XCA7CivlubTmnKvoqr/mlbQgPiBuZW5tYXRzdWNob3VzZWlcIDsKK+Wtpuihk+irluaWhyA+IGdha3VqdXRzdXJvbmJ1blwgOwor55Sf54mp5a2m6ICFID4gc2VpYnV0c3VnYWt1c2hhXCA7Civlha3nmb7lha3lj7cgPiByb3BweWFrdXJva3Vnb3VcIDsKK+aAneW8geWTsuWtpiA+IHNoaWJlbnRldHN1Z2FrdVwgOwor5oqX55Sf54mp6LOqID4ga291c2VpYnVzc2hpdHN1XCA7CivmtLvli5XlhpnnnJ8gPiBrYXRzdWRvdXNoYXNoaW5cIDsKK+S4oeeUn+WLleeJqSA+IHJ5b3VzZWlkb3VidXRzdVwgOwor57K+56We6JaE5byxID4gc2Vpc2hpbmhha3VqYWt1XCA7CivlvLfov6voprPlv7UgPiBreW91aGFrdWthbicnbmVuXCA7Civou43nuK7ljZTlrpogPiBndW5zaHVrdWt5b3V0ZWlcIDsKK+edgOmZuOWcsOW4ryA+IGNoYWt1cmlrdWNoaXRhaVwgOwor54Kt5aG154iG55m6ID4gdGFuamluYmFrdWhhdHN1XCA7CivnlJ/mtLvnkrDlooMgPiBzZWlrYXRzdWthbmt5b3VcIDsKK+aKgOihk+mdqeaWsCA+IGdpanV0c3VrYWt1c2hpblwgOwor57Kf57KS57WQ5qC4ID4gem9rdXJ5dXVrZWtrYWt1XCA7Civku67lj5flj5boqLwgPiBrYXJpdWtldG9yaXNob3VcIDsKK+aWsOiBnumFjemBlCA+IHNoaW5idW5oYWl0YXRzdVwgOwor5Y2S5qWt6KuW5paHID4gc290c3VneW91cm9uYnVuXCA7CivnmbvpjLLllYbmqJkgPiB0b3Vyb2t1c2hvdWh5b3VcIDsKK+S/oeeUqOmKmOafhCA+IHNoaW4nJ3lvdW1laWdhcmFcIDsKK+aTjea1hOeRoOeSgyA+IGF5YXRzdXJpam91cnVyaVwgOwor5YWx5ZCM55Sf5rS7ID4ga3lvdWRvdXNlaWthdHN1XCA7CivkvJ3pgZTnibnmgKcgPiBkZW50YXRzdXRva3VzZWlcIDsKK+S/oeS7sOeUn+a0uyA+IHNoaW5rb3VzZWlrYXRzdVwgOwor6YO35Zyf5bCP6KqsID4ga3lvdWRvc2hvdXNldHN1XCA7Civpm4blm6PnlJ/mtLsgPiBzaHV1ZGFuc2Vpa2F0c3VcIDsKK+mnkOaXpeWkp+S9vyA+IGNodXVuaWNoaXRhaXNoaVwgOwor5bO25Zu95qC55oCnID4gc2hpbWFndW5pa29uam91XCA7Civlt6blsI/mi6zlvKcgPiBoaWRhcmlzaG91a2Fra29cIDsKK+awkeaXj+Wul+aVmSA+IG1pbnpva3VzaHV1a3lvdVwgOwor5pel5Lit6Z+T6LaKID4gbml0Y2h1dWthbicnZXRzdVwgOwor6buS6Imy54Gr6JasID4ga29rdXNob2t1a2F5YWt1XCA7CivkuIfmnInnpZ7mlZkgPiBiYW4nJ3l1dXNoaW5reW91XCA7CivpoK3ohLPmtYHlh7ogPiB6dW5vdXJ5dXVzaHV0c3VcIDsKK+ebtOaOpeipseazlSA+IGNob2t1c2V0c3V3YWhvdVwgOwor5b2i6LOq6Lui5o+bID4ga2Vpc2hpdHN1dGVua2FuXCA7CivmraPnnJ/mraPpipggPiBzaG91c2hpbnNob3VtZWlcIDsKK+eIhuW8vueZuuiogCA+IGJha3VkYW5oYXRzdWdlblwgOwor55u056uL5LiN5YuVID4gY2hva3VyaXRzdWZ1ZG91XCA7CivllYbmpa3pgZPlvrMgPiBzaG91Z3lvdWRvdXRva3VcIDsKK+eJueioreS8muWgtCA+IHRva3VzZXRzdWthaWpvdVwgOwor5qC454mp55CG5a2mID4ga2FrdWJ1dHN1cmlnYWt1XCA7Civnm7Tnq4vnjL/kurogPiBjaG9rdXJpdHN1ZW5qaW5cIDsKK+i2hemAo+e1kOWtkCA+IGNob3VyZW5rZXRzdXNoaVwgOwor55Sy6KuW5LmZ6aeBID4ga291cm9uJydvdHN1YmFrdVwgOwor54mp55qE6LOH5rqQID4gYnV0c3V0ZWtpc2hpZ2VuXCA7Civnm7TmjqXmlK/mj7QgPiBjaG9rdXNldHN1c2hpZW5cIDsKK+aWsOWItuS4reWtpiA+IHNoaW5zZWljaHV1Z2FrdVwgOwor5Zyn5Yqb5Zuj5L2TID4gYXRzdXJ5b2t1ZGFudGFpXCA7CivmuKnooYDli5XniakgPiBvbmtldHN1ZG91YnV0c3VcIDsKK+S4reeri+WKtOmAoyA+IGNodXVyaXRzdXJvdXJlblwgOwor56CU56m25rS75YuVID4ga2Vua3l1dWthdHN1ZG91XCA7Civoh6rnhLblk7LlraYgPiBzaGl6ZW50ZXRzdWdha3VcIDsKK+agquS4u+e3j+S8miA+IGthYnVudXNoaXNvdWthaVwgOwor5oCn5qC85Yik5YilID4gc2Vpa2FrdWhhbmJldHN1XCA7CivpgY7lpLHlgrflrrMgPiBrYXNoaXRzdXNob3VnYWlcIDsKK+mAmuS/oeW3peWtpiA+IHRzdXVzaGlua291Z2FrdVwgOwor5ZCM5LiA5Lq654mpID4gZG91aXRzdWppbmJ1dHN1XCA7CivllYblrabljZrlo6sgPiBzaG91Z2FrdWhha3VzaGlcIDsKK+W/g+mgrea7heWNtCA+IHNoaW50b3VtZWtreWFrdVwgOwor5LiD6aGb5YWr5YCSID4gc2hpY2hpdGVuYmF0dG91XCA7CivlvLfooYzmjqHmsbogPiBreW91a291c2Fpa2V0c3VcIDsKK+WwseS7u+a8lOiqrCA+IHNodXVuaW4nJ2VuemV0c3VcIDsKK+WQjeirluWNk+iqrCA+IG1laXJvbnRha3VzZXRzdVwgOwor5rOo5YWl5pWZ6IKyID4gY2h1dW55dXVreW91aWt1XCA7CivlkJHnsr7npZ7olqwgPiBrb3VzZWlzaGluJyd5YWt1XCA7CivliIbliJfooYzpgLIgPiBidW5yZXRzdWtvdXNoaW5cIDsKK+mjn+aWmeWTgeW6lyA+IHNob2t1cnlvdWhpbnRlblwgOwor5r2u5rGQ5pGp5pOmID4gY2hvdXNla2ltYXNhdHN1XCA7Civnr4DotrPli5XniakgPiBzZXNzb2t1ZG91YnV0c3VcIDsKK+mjn+eJqemAo+mOliA+IHNob2t1bW90c3VyZW5zYVwgOwor5Lit6IKJ5Lit6IOMID4gY2h1dW5pa3VjaHV1emVpXCA7Civpm4bkuK3mlLvmkoMgPiBzaHV1Y2h1dWtvdWdla2lcIDsKK+eiuuWumuWIpOaxuiA+IGtha3V0ZWloYW5rZXRzdVwgOwor5bCR5aWz5bCP6KqsID4gc2hvdWpvc2hvdXNldHN1XCA7CivljZrlrablipvooYwgPiBoYWt1Z2FrdXJ5b2trb3VcIDsKK+WCjeezu+ihgOaXjyA+IGJvdWtlaWtldHN1em9rdVwgOwor5Lit6ZaT5YaF6ZajID4gY2h1dWthbicnbmFpa2FrdVwgOwor5Y2Y54us5L6b57WmID4gdGFuZG9rdWt5b3VreXV1XCA7CivlpLHmpa3kv53pmbogPiBzaGl0c3VneW91aG9rZW5cIDsKK+eJueWIpeS8muioiCA+IHRva3ViZXRzdWthaWtlaVwgOwor5oyv5bmF5aSJ6Kq/ID4gc2hpbnB1a3VoZW5jaG91XCA7CivluoPlkYrlj47lhaUgPiBrb3Vrb2t1c2h1dW55dXVcIDsKK+S4reWbveWkp+mZuCA+IGNodXVnb2t1dGFpcmlrdVwgOwor5pS+5Ye654mp6LOHID4gaG91c2h1dHN1YnVzc2hpXCA7CivphY3pgZToqLzmmI4gPiBoYWl0YXRzdXNob3VtZWlcIDsKK+acgOe1guebrueahCA+IHNhaXNodXVtb2t1dGVraVwgOwor5LiA6JOu5omY55SfID4gaWNoaXJlbnRha3VzaG91XCA7CivkuInop5LmuKzph48gPiBzYW5rYWt1c29rdXJ5b3VcIDsKK+WLleeJqeWtpuiAhSA+IGRvdWJ1dHN1Z2FrdXNoYVwgOwor5YyW5a2m54mp6LOqID4ga2FnYWt1YnVzc2hpdHN1XCA7CivnhrHljp/lrZDmoLggPiBuZXRzdWdlbnNoaWtha3VcIDsKK+WcsOizquiqv+afuyA+IGNoaXNoaXRzdWNob3VzYVwgOwor5q2v5YiX55+v5q2jID4gc2hpcmV0c3VreW91c2VpXCA7Civlm5vljYHkuIPlo6sgPiBzaGlqdXVzaGljaGlzaGlcIDsKK+WNgeaciOmdqeWRvSA+IGp1dWdhdHN1a2FrdW1laVwgOwor5paH6LOq5b2s5b2sID4gYnVuc2hpdHN1aGlucGluXCA7Civkv6HoqJflpZHntIQgPiBzaGludGFrdWtlaXlha3VcIDsKK+eLrOeri+aIpuS6iSA+IGRva3VyaXRzdXNlbnNvdVwgOwor54Gr5Yqb55m66Zu7ID4ga2FyeW9rdWhhdHN1ZGVuXCA7CivpgJ/pgZTpg7Xkvr8gPiBzb2t1dGF0c3V5dXViaW5cIDsKK+Wbm+eZvuWbm+eXhSA+IHNoaWh5YWt1c2hpYnlvdVwgOwor5YWD5biz5q6L6auYID4gbW90b2Nob3V6YW5kYWthXCA7Civmir3osaHnvo7ooZMgPiBjaHV1c2hvdWJpanV0c3VcIDsKK+eJqeizquaWh+aYjiA+IGJ1c3NoaXRzdWJ1bm1laVwgOwor6LaF54mp55CG5a2mID4gY2hvdWJ1dHN1cmlnYWt1XCA7Civpo5/ns6fkuI3otrMgPiBzaG9rdXJ5b3VidXNva3VcIDsKK+WFrOWFseaWveiorSA+IGtvdWt5b3VzaGlzZXRzdVwgOwor5Y2X5qW15p2h57SEID4gbmFua3lva3Vqb3V5YWt1XCA7CivlhbXlipvliYrmuJsgPiBoZWlyeW9rdXNha3VnZW5cIDsKK+WFrOiBt+i/veaUviA+IGtvdXNob2t1dHN1aWhvdVwgOwor5a2m6KGT5Zuj5L2TID4gZ2FrdWp1dHN1ZGFudGFpXCA7CivlhbHnlJ/nlJ/niakgPiBreW91c2Vpc2VpYnV0c3VcIDsKK+iiq+WtkOakjeeJqSA+IGhpc2hpc2hva3VidXRzdVwgOwor5pyJ55Wc6L6y5qWtID4geXV1Y2hpa3Vub3VneW91XCA7Civlr4TnlJ/mpI3niakgPiBraXNlaXNob2t1YnV0c3VcIDsKK+atpuS+oOWwj+iqrCA+IGJ1a3lvdXNob3VzZXRzdVwgOwor5pyo6LOq57mK57atID4gbW9rdXNoaXRzdXNlbicnaVwgOwor55u06YCa5YiX6LuKID4gY2hva3V0c3V1cmVzc2hhXCA7CivkuIDkuIDkuZ3nlaogPiBoeWFrdWp1dWt5dXViYW5cIDsKK+i7oue9ruihjOWIlyA+IHRlbmNoaWd5b3VyZXRzdVwgOwor5Ye65YuV5ZG95LukID4gc2h1dHN1ZG91bWVpcmVpXCA7CivoiIzlhYjkuInlr7ggPiBzaGl0YXNha2lzYW56dW5cIDsKK+Wkp+ihhumjn+WggiA+IHRhaXNodXVzaG9rdWRvdVwgOwor5YaF6Zaj6Zaj5YOaID4gbmFpa2FrdWtha3VyeW91XCA7Civkurrlj6PniIbnmbogPiBqaW5rb3ViYWt1aGF0c3VcIDsKK+Wcp+e4ruWKueeOhyA+IGFzc2h1a3Vrb3VyaXRzdVwgOwor5Zu956uL6YqA6KGMID4ga29rdXJpdHN1Z2lua291XCA7CivkuIDnl4Xmga/ngb0gPiBpY2hpYnlvdXNva3VzYWlcIDsKK+ato+mHkeWPluW8lSA+IHNob3VraW50b3JpaGlraVwgOwor5rWB6YCa6Z2p5ZG9ID4gcnl1dXRzdXVrYWt1bWVpXCA7CivoirjooZPkvZzlk4EgPiBnZWlqdXRzdXNha3VoaW5cIDsKK+aWsOiIiOWul+aVmSA+IHNoaW5rb3VzaHV1a3lvdVwgOwor55+l6K2Y5bel5a2mID4gY2hpc2hpa2lrb3VnYWt1XCA7CivkvZPos6rmlLnlloQgPiB0YWlzaGl0c3VrYWl6ZW5cIDsKK+eJh+WBtOmAmuihjCA+IGthdGFnYXdhdHN1dWtvdVwgOwor5Y2X5qW15aSn6Zm4ID4gbmFua3lva3V0YWlyaWt1XCA7CivoibbnrJHlsI/oqbEgPiBlbnNob3Vrb2JhbmFzaGlcIDsKK+WVhualree+juihkyA+IHNob3VneW91YmlqdXRzdVwgOwor56We6Imy6Ieq6IulID4gc2hpbnNob2t1amlqYWt1XCA7CivmsLTpmpvkvZzmiKYgPiBtaXp1Z2l3YXNha3VzZW5cIDsKK+eJqeeahOiovOaLoCA+IGJ1dHN1dGVraXNob3Vrb1wgOwor5pON5qWt55+t57iuID4gc291Z3lvdXRhbnNodWt1XCA7CivlhoXogqHoho/olqwgPiB1Y2hpbWF0YWdvdXlha3VcIDsKK+iJsuW9qeaEn+immiA+IHNoaWtpc2Fpa2Fua2FrdVwgOwor6LaF6IO95Yqb6ICFID4gY2hvdW5vdXJ5b2t1c2hhXCA7CivmnKjpo5/kuIrkurogPiBtb2t1amlraXNob3VuaW5cIDsKK+mAo+i8ieWwj+iqrCA+IHJlbnNhaXNob3VzZXRzdVwgOwor54Sm54ax5Zyw542EID4gc2hvdW5ldHN1amlnb2t1XCA7CivpqqjnspfprIbnl4cgPiBrb3RzdXNvc2hvdXNob3VcIDsKK+a1gemAmuiovOWIuCA+IHJ5dXV0c3V1c2hvdWtlblwgOwor5beu5byV5YuY5a6aID4gc2FzaGloaWtpa2Fuam91XCA7CivplovohbnmiYvooZMgPiBrYWlmdWt1c2h1anV0c3VcIDsKK+WNs+aXpeWHuuiNtyA+IHNva3VqaXRzdXNodWtrYVwgOwor5qCq5byP6YWN5b2TID4ga2FidXNoaWtpaGFpdG91XCA7Civom43lhYnnianos6ogPiBrZWlrb3VidXNzaGl0c3VcIDsKK+iBtOimmuelnue1jCA+IGNob3VrYWt1c2hpbmtlaVwgOwor5oey5oiS5YWN6IG3ID4gY2hvdWthaW1lbnNob2t1XCA7CivnorrlrprnlLPlkYogPiBrYWt1dGVpc2hpbmtva3VcIDsKK+iBt+alrei7jeS6uiA+IHNob2t1Z3lvdWd1bmppblwgOwor55m95rKz5aSc6Ii5ID4gc2hpcmFrYXdheW9mdW5lXCA7CivmoKrlvI/lhazplosgPiBrYWJ1c2hpa2lrb3VrYWlcIDsKK+W7g+S7j+avgOmHiCA+IGhhaWJ1dHN1a2lzaGFrdVwgOwor55y85bqV5Ye66KGAID4gZ2FudGVpc2h1a2tldHN1XCA7Civkv6Hku7vmipXnpaggPiBzaGluJyduaW50b3VoeW91XCA7CivplqLpgKPos6rllY8gPiBrYW5yZW5zaGl0c3Vtb25cIDsKK+W7uueviealreiAhSA+IGtlbmNoaWt1Z3lvdXNoYVwgOwor5ZOy5a2m5Y+y6KaBID4gdGV0c3VnYWt1c2hpeW91XCA7Civnn6XorZjnlKPmpa0gPiBjaGlzaGlraXNhbmd5b3VcIDsKK+a1mua4q+S9nOalrSA+IHNodW5zZXRzdXNhZ3lvdVwgOwor5Y245aOy5biC5aC0ID4gb3Jvc2hpdXJpc2hpam91XCA7CivpgJrkv6HmlZnogrIgPiB0c3V1c2hpbmt5b3Vpa3VcIDsKK+WMl+aWl+S4g+aYnyA+IGhva3V0b3NoaWNoaXNlaVwgOwor5q2j5byP55m66KGoID4gc2Vpc2hpa2loYXBweW91XCA7CivmmrTlipvpnanlkb0gPiBib3VyeW9rdWtha3VtZWlcIDsKK+WFseeUo+S4reWbvSA+IGt5b3VzYW5jaHV1Z29rdVwgOwor5qOu5p6X6YmE6YGTID4gc2hpbnJpbnRldHN1ZG91XCA7CivntYzmuIjljZTlipsgPiBrZWl6YWlreW91cnlva3VcIDsKK+eJqeeahOaQjeWusyA+IGJ1dHN1dGVraXNvbmdhaVwgOwor56m65Lit54iG5pKDID4ga3V1Y2h1dWJha3VnZWtpXCA7CivlubTkuK3lpLHoqIAgPiBuZW5qdXVzaGl0c3VnZW5cIDsKK+ato+aWueihjOWIlyA+IHNlaWhvdWd5b3VyZXRzdVwgOwor6ICB6Iul55S35aWzID4gcm91bnlha3VuYW4nJ255b1wgOwor5L+u5LqG6Ki85pu4ID4gc2h1dXJ5b3VzaG91c2hvXCA7CivkuIvnrYnmpI3niakgPiBrYXRvdXNob2t1YnV0c3VcIDsKK+mhleiKseakjeeJqSA+IGtlbmthc2hva3VidXRzdVwgOwor5Zyw5YWD6K2m5a+fID4gamltb3Rva2Vpc2F0c3VcIDsKK+S4reWbveWcsOaWuSA+IGNodXVnb2t1Y2hpaG91XCA7CivkuInmoKHntYLkuoYgPiBzYW5rb3VzaHV1cnlvdVwgOwor5Lq65bel6KGA5rayID4gamlua291a2V0c3Vla2lcIDsKK+acieaAp+eUn+auliA+IHl1dXNlaXNlaXNob2t1XCA7CivpjKzph5HooZPluKsgPiByZW5raW5qdXRzdXNoaVwgOwor5a++5pel5oSf5oOFID4gdGFpbmljaGlrYW5qb3VcIDsKK+eMpeiku+aWh+abuCA+IHdhaXNldHN1YnVuc2hvXCA7Civku67oo4XooYzliJcgPiBrYXNvdWd5b3VyZXRzdVwgOwor5q2j5bym5puy57eaID4gc2VpZ2Vua3lva3VzZW5cIDsKK+ayoeWAi+aAp+eahCA+IGJvdHN1a29zZWl0ZWtpXCA7Civni6znq4vpgYvli5UgPiBkb2t1cml0c3V1bmRvdVwgOwor6ISx6ISC57KJ5LmzID4gZGFzc2hpZnVuJydueXV1XCA7Civljp/lrZDlipvoiLkgPiBnZW5zaGlyeW9rdXNlblwgOwor5LiJ55CD5LiJ5oyvID4gc2Fua3l1dXNhbnNoaW5cIDsKK+mdoueZveWNiuWIhiA+IG9tb3NoaXJvaGFuYnVuXCA7CivllYboiLnlpKflraYgPiBzaG91c2VuZGFpZ2FrdVwgOwor5aSp5Zyw5LiH54mpID4gdGVuY2hpYmFuYnV0c3VcIDsKK+iAkOeGseWQiOmHkSA+IHRhaW5ldHN1Z291a2luXCA7CivmlL/nlaXntZDlqZogPiBzZWlyeWFrdWtla2tvblwgOwor54m56auY6K2m5a+fID4gdG9ra291a2Vpc2F0c3VcIDsKK+WVhuaFo+e/kuazlSA+IHNob3VrYW5zaHV1aG91XCA7CivmmIbomavmjqHpm4YgPiBrb25jaHV1c2Fpc2h1dVwgOwor5Lit5Zu95ouz5rOVID4gY2h1dWdva3VrZW5wb3VcIDsKK+e+juihk+ebo+edoyA+IGJpanV0c3VrYW50b2t1XCA7Civlia/lpKfntbHpoJggPiBmdWt1ZGFpdG91cnlvdVwgOwor54Sm5oCn56Gr6YW4ID4gc2hvdXNlaXJ5dXVzYW5cIDsKK+WRqOaXi+alreiAhSA+IHNodXVzZW5neW91c2hhXCA7CivljZflm57luLDnt5ogPiBtaW5hbWlrYWlraXNlblwgOwor6IOO55Sf5YuV54mpID4gdGFpc2VpZG91YnV0c3VcIDsKK+WFqOWbveS4ree2mSA+IHplbmtva3VjaHV1a2VpXCA7CivniZvmranmiKbooZMgPiBneXV1aG9zZW5qdXRzdVwgOwor56qB5pKD6ZqK5ZOhID4gdG90c3VnZWtpdGFpaW5cIDsKK+e0hOeZvuS4h+WGhiA+IHlha3VoeWFrdW1hbmVuXCA7CivkurrmtbfmiKbooZMgPiBqaW5rYWlzZW5qdXRzdVwgOwor5aSp5paH5a2m55qEID4gdGVubW9uZ2FrdXRla2lcIDsKK+aAneahiOaKlemmliA+IHNoaWFuJyduYWdla3ViaVwgOwor6KOP5Y+j5Za25qWtID4gdXJhZ3VjaGllaWd5b3VcIDsKK+S8neWlh+Wwj+iqrCA+IGRlbmtpc2hvdXNldHN1XCA7CivkuK3nq4vkuLvnvqkgPiBjaHV1cml0c3VzaHVnaVwgOwor56CU56m26LOH5paZID4ga2Vua3l1dXNoaXJ5b3VcIDsKK+WPpOeUn+eJqeWtpiA+IGtvc2VpYnV0c3VnYWt1XCA7Civmm7TnlJ/mlr3oqK0gPiBrb3VzZWlzaGlzZXRzdVwgOwor54mH6YGT5YiH56ymID4ga2F0YW1pY2hpa2lwcHVcIDsKK+aOpee2muWKqeipniA+IHNldHN1em9rdWpvc2hpXCA7Civoi7Hku4/mtbfls6EgPiBlaWZ1dHN1a2Fpa3lvdVwgOwor56iU5a6f5LiN6ImvID4gbmVuaml0c3VmdXJ5b3VcIDsKK+WFrOihhua1tOWgtCA+IGtvdXNodXV5b2t1am91XCA7Civnq6/mnKvoo4Xnva4gPiB0YW5tYXRzdXNvdWNoaVwgOwor6aeQ6LuK5paZ6YeRID4gY2h1dXNoYXJ5b3VraW5cIDsKK+izh+acrOWPluW8lSA+IHNoaWhvbnRvcmloaWtpXCA7CivmoKrlvI/nm7jloLQgPiBrYWJ1c2hpa2lzb3ViYVwgOwor5YWN55ar5Y+N5b+cID4gbWVuJydla2loYW4nJ25vdVwgOwor5bu66Kit5Lya56S+ID4ga2Vuc2V0c3VnYWlzaGFcIDsKK+acrOacq+mhm+WAkiA+IGhvbm1hdHN1dGVudG91XCA7CivliJ3lv5fosqvlvrkgPiBzaG9zaGlrYW50ZXRzdVwgOwor55Sj5qWt6Z2p5ZG9ID4gc2FuZ3lvdWtha3VtZWlcIDsKK+WumuW5tOmAgOiBtyA+IHRlaW5lbnRhaXNob2t1XCA7Civlm73pmpvopqrlloQgPiBrb2t1c2Fpc2hpbnplblwgOwor5oCn5qC86Ki65patID4gc2Vpa2FrdXNoaW5kYW5cIDsKK+WFqOi6q+ihsOW8sSA+IHplbnNoaW5zdWlqYWt1XCA7CivllY/poYzop6PmsbogPiBtb25kYWlrYWlrZXRzdVwgOwor5ZO65Lmz5YuV54mpID4gaG9ueXV1ZG91YnV0c3VcIDsKK+izh+acrOazqOWFpSA+IHNoaWhvbmNodXVueXV1XCA7Civkv67mpa3lubTpmZAgPiBzaHV1Z3lvdW5lbmdlblwgOwor57eR57as6KSS56ugID4gcnlva3VqdWhvdXNob3VcIDsKK+eglOeptumhjOebriA+IGtlbmt5dXVkYWltb2t1XCA7Civnl4Xluorml6XoqowgPiBieW91c2hvdW5pc3NoaVwgOwor566X6KGT6KiI566XID4gc2FuanV0c3VrZWlzYW5cIDsKK+W4sOWMluakjeeJqSA+IGtpa2FzaG9rdWJ1dHN1XCA7Civph5Hono3mgZDmhYwgPiBraW4nJ3l1dWt5b3Vrb3VcIDsKK+eJueWIpeaOque9riA+IHRva3ViZXRzdXNvY2hpXCA7CivlvJvlvLXmjK/li5UgPiBzaGljaG91c2hpbmRvdVwgOwor5oim5oim5YWi5YWiID4gc2Vuc2Vua3lvdWt5b3VcIDsKK+ims+WFieaWveiorSA+IGthbmtvdXNoaXNldHN1XCA7CivlloTnlLflloTlpbMgPiB6ZW4nJ25hbnplbicnbnlvXCA7Civkv6HnlKjosqnlo7IgPiBzaGluJyd5b3VoYW5iYWlcIDsKK+acq+aiouelnue1jCA+IG1hc3Nob3VzaGlua2VpXCA7Civpqqjpq4Tnp7vmpI0gPiBrb3RzdXp1aWlzaG9rdVwgOwor6YGT5b6z5pWZ6IKyID4gZG91dG9rdWt5b3Vpa3VcIDsKK+mHkeauv+eOiealvCA+IGtpbmRlbmd5b2t1cm91XCA7Civngrnmu7Tms6jlsIQgPiB0ZW50ZWtpY2h1dXNoYVwgOwor5bel5a2m5L+u5aOrID4ga291Z2FrdXNodXVzaGlcIDsKK+mWgOWkluS4jeWHuiA+IG1vbmdhaWZ1c2h1dHN1XCA7CivpgJrkv6Hoo4Xnva4gPiB0c3V1c2hpbnNvdWNoaVwgOwor5L2c5oim6KiI55S7ID4gc2FrdXNlbmtlaWtha3VcIDsKK+WgtOWkluWPluW8lSA+IGpvdWdhaXRvcmloaWtpXCA7Civkv6HoqJfpioDooYwgPiBzaGludGFrdWdpbmtvdVwgOwor5aKD55WM6Kq/5pW0ID4ga3lvdWthaWNob3VzZWlcIDsKK+S4u+WKm+iJpumaiiA+IHNodXJ5b2t1a2FudGFpXCA7CivogbfloLTnkrDlooMgPiBzaG9rdWJha2Fua3lvdVwgOwor5Ymy5byV5L6h5qC8ID4gd2FyaWJpa2lrYWtha3VcIDsKK+aVtOW9ouaJi+ihkyA+IHNlaWtlaXNodWp1dHN1XCA7CivphbjmgKfpo5/lk4EgPiBzYW5zZWlzaG9rdWhpblwgOwor5Y6f5a2Q5Yqb5a2mID4gZ2Vuc2hpcmlraWdha3VcIDsKK+awtOS4ree/vOiIuSA+IHN1aWNodXV5b2t1c2VuXCA7CivnmbrpgZTmrrXpmo4gPiBoYXR0YXRzdWRhbmthaVwgOwor6Ku46Kqs57Sb57SbID4gc2hvc2V0c3VmdW5wdW5cIDsKK+S5s+mFuOmjsuaWmSA+IG55dXVzYW4nJ2lucnlvdVwgOwor5YCL44CF5Yil5YilID4ga29rb2JldHN1YmV0c3VcIDsKK+WPo+S4jeiqv+azlSA+IGt1Y2hpYnVjaG91aG91XCA7CivotoXoh6rnhLbnmoQgPiBjaG91c2hpemVudGVraVwgOwor5Zu96Ziy6ZW35a6YID4ga29rdWJvdWNob3VrYW5cIDsKK+ato+e1seS/oeaVmSA+IHNlaXRvdXNoaW5reW91XCA7CivlvLfljJblkIjlrr8gPiBreW91a2FnYXNzaHVrdVwgOwor5pyd6a6u5Lq65Y+CID4gY2hvdXNlbicnbmluamluXCA7CivmnZ/nuJvlpInpoIUgPiBzb2t1YmFrdWhlbmtvdVwgOwor56We57WM57WE57mUID4gc2hpbmtlaXNvc2hpa2lcIDsKK+i2hei2iumWouaVsCA+IGNob3VldHN1a2Fuc3V1XCA7CivlirnnjoflkJHkuIogPiBrb3VyaXRzdWtvdWpvdVwgOwor5aSn6ISz55qu6LOqID4gZGFpbm91aGlzaGl0c3VcIDsKK+eUn+S9k+WKm+WtpiA+IHNlaXRhaXJpa2lnYWt1XCA7CivlsbHkuIvlhazlnJIgPiB5YW1hc2hpdGFrb3VlblwgOwor5Y+j6L+w6Kmm6aiTID4ga291anV0c3VzaGlrZW5cIDsKK+S4gOaXpeeJh+aZgiA+IGljaGluaWNoaWhlbmppXCA7CivnpL7kvJrnlJ/mtLsgPiBzaGFrYWlzZWlrYXRzdVwgOwor5Ye654mI55uu6YyyID4gc2h1cGFubW9rdXJva3VcIDsKK+WIpemAlOaUr+WHuiA+IGJldHRvc2hpc2h1dHN1XCA7CivnlLPlkYrntI3nqI4gPiBzaGlua29rdW5vdXplaVwgOwor5Y2z5rG66KOB5YikID4gc29ra2V0c3VzYWliYW5cIDsKK+eLrOeri+iHquWwiiA+IGRva3VyaXRzdWppc29uXCA7CivlqZrntITmjIfovKogPiBrb24nJ3lha3V5dWJpd2FcIDsKK+ihgOa2suWHneWbuiA+IGtldHN1ZWtpZ3lvdWtvXCA7Civlh7rlh6bpgLLpgIAgPiBzaHVzc2hvc2hpbnRhaVwgOwor5byT55+i5YWr5bmhID4geXVtaXlhaGFjaGltYW5cIDsKK+itpuWvn+aJi+W4syA+IGtlaXNhdHN1dGVjaG91XCA7Civogbfmpa3lqabkurogPiBzaG9rdWd5b3VmdWppblwgOwor6Iez56aP5Y2D5bm0ID4gc2hpZnVrdXNlbicnbmVuXCA7CivlpKnlnLDplovpl6IgPiB0ZW5jaGlrYWlieWFrdVwgOwor5Ya35YeN6aOf5ZOBID4gcmVpdG91c2hva3VoaW5cIDsKK+ijnOi2s+iqrOaYjiA+IGhvc29rdXNldHN1bWVpXCA7Civkv6HnlKjnirbmhYsgPiBzaGluJyd5b3Vqb3V0YWlcIDsKK+e1tuWvvua5v+W6piA+IHpldHRhaXNoaXRzdWRvXCA7CivmmI7mmI7nmb3nmb0gPiBtZWltZWloYWt1aGFrdVwgOwor6LuN5YKZ57iu5bCPID4gZ3VuYmlzaHVrdXNob3VcIDsKK+aatOWKm+Wbo+WToSA+IGJvdXJ5b2t1ZGFuJydpblwgOwor5aSn5a2m5pWZ6IKyID4gZGFpZ2FrdWt5b3Vpa3VcIDsKK+esrOS4ieS6uuensCA+IGRhaXNhbicnbmluc2hvdVwgOwor5rC45LiW5Lit56uLID4gZWlzZWljaHV1cml0c3VcIDsKK+eglOeptumgmOWfnyA+IGtlbmt5dXVyeW91aWtpXCA7CivmlZnogrLli4Xoqp4gPiBreW91aWt1Y2hva3Vnb1wgOwor57K+56We6Zqc5a6zID4gc2Vpc2hpbnNob3VnYWlcIDsKK+Wkqeepuua1t+a/tiA+IHRlbmt1dWthaWthdHN1XCA7Civpo5/ppIznmYLms5UgPiBzaG9rdWppcnlvdWhvdVwgOwor5L2c6ICF5LiN55+lID4gc2FrdXNoYXNoaXJhenVcIDsKK+eUn+a0u+awtOa6liA+IHNlaWthdHN1c3VpanVuXCA7CivljbXnlJ/li5XniakgPiByYW5zZWlkb3VidXRzdVwgOwor562L6IKJ5Yq05YONID4ga2luJyduaWt1cm91ZG91XCA7CivljZfmlK/pgqPmtbcgPiBtaW5hbWlzaGluYWthaVwgOwor5a2m6KGT55So6KqeID4gZ2FrdWp1dHN1eW91Z29cIDsKK+iHqueEtumjn+WTgSA+IHNoaXplbnNob2t1aGluXCA7CivllYbmpa3ntYTlkIggPiBzaG91Z3lvdWt1bWlhaVwgOwor6IG35qip5Lmx55SoID4gc2hva2tlbnJhbicneW91XCA7CivkvLTpo5/lpKfoh6MgPiBiYW5zaG9rdWRhaWppblwgOwor5bKh55uu5YWr55uuID4gb2thbWVoYWNoaW1va3VcIDsKK+aWrOaWsOWlh+aKnCA+IHphbnNoaW5raWJhdHN1XCA7Civnm7Tmg4XlvoTooYwgPiBjaG9rdWpvdWtlaWtvdVwgOwor56eB56uL5a2m5qChID4gc2hpcml0c3VnYWtrb3VcIDsKK+S4reaXpei+nuWFuCA+IGNodXVuaWNoaWppdGVuXCA7CivliIbpoZ7nm67pjLIgPiBidW5ydWltb2t1cm9rdVwgOwor5YaF5YiG5rOM6IW6ID4gbmFpYnVucGl0c3VzZW5cIDsKK+a0u+i3r+mWi+aLkyA+IGthdHN1cm9rYWl0YWt1XCA7CivlubPmnb/muKzph48gPiBoZWliYW5zb2t1cnlvdVwgOwor5rqQ5rOJ5b605Y+OID4gZ2Vuc2VuY2hvdXNodXVcIDsKK+mAmuS/oeihm+aYnyA+IHRzdXVzaGluJydlaXNlaVwgOwor5riF566X5Y+W5byVID4gc2Vpc2FudG9yaWhpa2lcIDsKK+eJueauiuWtpue0miA+IHRva3VzaHVnYWtreXV1XCA7Civkv6HnlKjoqr/mn7sgPiBzaGluJyd5b3VjaG91c2FcIDsKK+WFiOeJqeWjsuiytyA+IHNha2ltb25vYmFpYmFpXCA7CivkuIPpm6Plhavoi6YgPiBzaGljaGluYW5oYWtrdVwgOwor6KeS6Iac56e75qSNID4ga2FrdW1ha3Vpc2hva3VcIDsKK+aVkeaApeeXhemZoiA+IGt5dXVreXV1YnlvdWluXCA7CivmjqXop6bmhJ/mn5MgPiBzZXNzaG9rdWthbnNlblwgOwor56iO6YeR55Sz5ZGKID4gemVpa2luc2hpbmtva3VcIDsKK+e1qOavr+eIhuaSgyA+IGp1dXRhbmJha3VnZWtpXCA7CivkuIPou6LlhavotbcgPiBzaGljaGl0ZW5oYWtraVwgOwor5rC06YqA5Lit5q+SID4gc3VpZ2luY2h1dWRva3VcIDsKK+mcsuWHuuS4jei2syA+IHJvc2h1dHN1YnVzb2t1XCA7CivlubPkuIrljrvlhaUgPiBoeW91am91a3lvbnl1dVwgOwor5Zu956uL5YWs5ZySID4ga29rdXJpdHN1a291ZW5cIDsKK+WFrOeri+WtpuagoSA+IGtvdXJpdHN1Z2Fra291XCA7CivpgJrkv6HlnI/lpJYgPiB0c3V1c2hpbmtlbmdhaVwgOwor57SE5p2f5omL5b2iID4geWFrdXNva3V0ZWdhdGFcIDsKK+WPrOmbhuS7pOeKtiA+IHNob3VzaHV1cmVpam91XCA7CivmlrDlhaXnpL7lk6EgPiBzaGluJydueXV1c2hhaW5cIDsKK+aXpeWNl+a1t+WyuCA+IG5pY2hpbmFua2FpZ2FuXCA7CivmsY7mlbTmlbDlvI8gPiBoYW5zZWlzdXVzaGlraVwgOwor5Y+k54mp5ZWG5Lq6ID4ga29idXRzdXNob3VuaW5cIDsKK+atpuWKm+W5sua4iSA+IGJ1cnlva3VrYW5zaG91XCA7CivlhazooYbpgZPlvrMgPiBrb3VzaHV1ZG91dG9rdVwgOwor5oCq5aWH5bCP6KqsID4ga2Fpa2lzaG91c2V0c3VcIDsKK+enmOWvhuaKleelqCA+IGhpbWl0c3V0b3VoeW91XCA7CivlnKflipvlrrnlmaggPiBhdHN1cnlva3V5b3VraVwgOwor5YKN55uu5YWr55uuID4gb2thbWVoYWNoaW1va3VcIDsKK+axguWpmuW6g+WRiiA+IGt5dXVrb25rb3Vrb2t1XCA7Civlv4Plm6Dlj43lv5wgPiBzaGluJydpbmhhbicnbm91XCA7Civpuqbol4HluL3lrZAgPiBtdWdpd2FyYWJvdXNoaVwgOwor57SN56iO55Sz5ZGKID4gbm91emVpc2hpbmtva3VcIDsKK+WPjeWvvuensOeahCA+IGhhbnRhaXNob3V0ZWtpXCA7CivkvY/lj4vpioDooYwgPiBzdW1pdG9tb2dpbmtvdVwgOwor5Ye65omA6YCy6YCAID4gc2h1c3Nob3NoaW50YWlcIDsKK+WwsealreS6uuWPoyA+IHNodXVneW91amlua291XCA7Civlhajli53lhKrli50gPiB6ZW5zaG91eXV1c2hvdVwgOwor5bu66Kit5aSn6IejID4ga2Vuc2V0c3VkYWlqaW5cIDsKK+mdnuiJr+W/g+eahCA+IGhpcnlvdXNoaW50ZWtpXCA7Civntbblr77lv4XopoEgPiB6ZXR0YWloaXRzdXlvdVwgOwor6Ju46Laz6YWN57eaID4gdGFrb2FzaGloYWlzZW5cIDsKK+W3pealreWkp+WtpiA+IGtvdWd5b3VkYWlnYWt1XCA7Civph5Hlo7HkuIflhoYgPiBraW4nJ2ljaGltYW4nJ2VuXCA7Civml4XlrqLliJfou4ogPiByeW9reWFrdXJlc3NoYVwgOwor56uL5Lya5ryU6KqsID4gdGFjaGlhaWVuemV0c3VcIDsKK+WlqOWtpuizh+mHkSA+IHNob3VnYWt1c2hpa2luXCA7Civnj77ph5Hlj47lhaUgPiBnZW5raW5zaHV1bnl1dVwgOwor5a2m6KGT5Lya6K2wID4gZ2FrdWp1dHN1a2FpZ2lcIDsKK+azleW+i+WVj+mhjCA+IGhvdXJpdHN1bW9uZGFpXCA7Civnm7TpgJrpm7voqbEgPiBjaG9rdXRzdXVkZW53YVwgOwor5Y+w5omA6YGT5YW3ID4gZGFpZG9rb3JvZG91Z3VcIDsKK+mbu+a6kOS+m+e1piA+IGRlbmdlbmt5b3VreXV1XCA7CivlgZzlubTpgIDogbcgPiB0ZWluZW50YWlzaG9rdVwgOwor5rC06Zm45Lih55SoID4gc3VpcmlrdXJ5b3V5b3VcIDsKK+mAmuS/oeaJi+autSA+IHRzdXVzaGluc2h1ZGFuXCA7CivkuIvoq4vkvJrnpL4gPiBzaGl0YXVrZWdhaXNoYVwgOwor56ys5LiA5Lq656ewID4gZGFpaWNoaW5pbnNob3VcIDsKK+WtpuattOekvuS8miA+IGdha3VyZWtpc2hha2FpXCA7CivmvJTlpY/mm7Lnm64gPiBlbnNvdWt5b2t1bW9rdVwgOwor5oCd5oOz6K2m5a+fID4gc2hpc291a2Vpc2F0c3VcIDsKK+WFrOebiuizquWxiyA+IGtvdWVraXNoaWNoaXlhXCA7CivlgZXogIHlkIznqbQgPiBrYWlyb3Vkb3VrZXRzdVwgOwor5YGl5bq36aOf5ZOBID4ga2Vua291c2hva3VoaW5cIDsKK+aKveixoeWQjeipniA+IGNodXVzaG91bWVpc2hpXCA7CivlsI/kuZfku4/mlZkgPiBzaG91am91YnVra3lvdVwgOwor5ZCI55uu55qE5oCnID4gZ291bW9rdXRla2lzZWlcIDsKK+mbu+WKm+S8muekviA+IGRlbnJ5b2t1Z2Fpc2hhXCA7CivmtbfmtIvplovnmbogPiBrYWl5b3VrYWloYXRzdVwgOwor57Sw6IOe5YiG6KOCID4gc2FpYm91YnVucmV0c3VcIDsKK+aApeihjOaWmemHkSA+IGt5dXVrb3VyeW91a2luXCA7CivkuIHkuIHnmbrmraIgPiBjaG91Y2hvdWhhc3NoaVwgOwor5pWZ6IG36Kqy56iLID4ga3lvdXNob2t1a2F0ZWlcIDsKK+WHuueJiOalreiAhSA+IHNodXBwYW5neW91c2hhXCA7CivlsLHogbfpgYvli5UgPiBzaHV1c2hva3V1bmRvdVwgOwor55Wl5aWq6KGM54K6ID4gcnlha3VkYXRzdWtvdWlcIDsKK+eQhumdnuabsuebtCA+IHJpaGlreW9rdWNob2t1XCA7CivliKXlhorku5jpjLIgPiBiZXNzYXRzdWZ1cm9rdVwgOwor5LiJ5qip5YiG56uLID4gc2Fua2VuYnVucml0c3VcIDsKK+WFseWQjOeglOeptiA+IGt5b3Vkb3VrZW5reXV1XCA7CivmlrDliIrntLnku4sgPiBzaGlua2Fuc2hvdWthaVwgOwor5qOf5Ymy6ZW35bGLID4gbXVuZXdhcmluYWdheWFcIDsKK+S/ruWlveadoee0hCA+IHNodXVrb3Vqb3V5YWt1XCA7CivlhqDnirbli5XohIggPiBrYW5qb3Vkb3VteWFrdVwgOwor56m656m65ryg5rygID4ga3V1a3V1YmFrdWJha3VcIDsKK+aCquaAp+iyp+ihgCA+IGFrdXNlaWhpbmtldHN1XCA7CivkvJHmiKbljZTlrpogPiBreXV1c2Vua3lvdXRlaVwgOwor56We57WM6KGw5byxID4gc2hpbmtlaXN1aWpha3VcIDsKK+WbnuaKmOagvOWtkCA+IGthaXNldHN1a291c2hpXCA7CivlhYjmsbrllY/poYwgPiBzZW5rZXRzdW1vbmRhaVwgOwor5bCx5qWt5pel5pWwID4gc2h1dWd5b3VuaXNzdXVcIDsKK+Wun+mok+WLleeJqSA+IGppa2tlbmRvdWJ1dHN1XCA7Civlv6DlkJvmhJvlm70gPiBjaHV1a3VuJydhaWtva3VcIDsKK+axguS6uuW6g+WRiiA+IGt5dXVqaW5rb3Vrb2t1XCA7Civni6znq4vni6zmrakgPiBkb2t1cml0c3Vkb3Bwb1wgOwor6Ku46Kqs57Sb44CFID4gc2hvc2V0c3VmdW5wdW5cIDsKK+acieWus+mjn+WTgSA+IHl1dWdhaXNob2t1aGluXCA7CivpurvolqzkuK3mr5IgPiBtYXlha3VjaHV1ZG9rdVwgOwor6YeR5bGe5bel5qWtID4ga2luem9rdWtvdWd5b3VcIDsKK+WNuOWjsueJqeS+oSA+IG9yb3NoaXVyaWJ1a2thXCA7CivlhbHlkIzlh7ros4cgPiBreW91ZG91c2h1c3NoaVwgOwor54ut6LuM6YmE6YGTID4ga3lvdWtpdGV0c3Vkb3VcIDsKK+WVhualreaJi+W9oiA+IHNob3VneW91dGVnYXRhXCA7Civpg7Xkvr/phY3pgZQgPiB5dXViaW5oYWl0YXRzdVwgOwor5riv5rm+5b2T5bGAID4ga291d2FudG91a3lva3VcIDsKK+WVhualremKgOihjCA+IHNob3VneW91Z2lua291XCA7CivnnIHnlaXoqJjlj7cgPiBzaG91cnlha3VraWdvdVwgOwor5Lit6ZaT5aCx5ZGKID4gY2h1dWthbmhvdWtva3VcIDsKK+S4reW/g+aAneaDsyA+IGNodXVzaGluc2hpc291XCA7CivkupTmnIjkurrlvaIgPiBnb2dhdHN1bmluZ3lvdVwgOwor5Lyd5om/5paH5a2mID4gZGVuc2hvdWJ1bmdha3VcIDsKK+i7n+S9k+WLleeJqSA+IG5hbnRhaWRvdWJ1dHN1XCA7CivlvLfliLblj47lrrkgPiBreW91c2Vpc2h1dXlvdVwgOwor5LiA6Zm95p2l6IW5ID4gaWNoaXlvdXJhaWZ1a3VcIDsKK+a8gealreWNlOWumiA+IGd5b2d5b3VreW91dGVpXCA7CivmsLTnlJ/li5XniakgPiBzdWlzZWlkb3VidXRzdVwgOwor5qWU5b2i5paH5a2XID4ga3VzYWJpZ2F0YW1vamlcIDsKK+S/oeeUqOe1hOWQiCA+IHNoaW4nJ3lvdWt1bWlhaVwgOwor56CU56m25aCx5ZGKID4ga2Vua3l1dWhvdWtva3VcIDsKK+awtOWkqeW9t+W9vyA+IHN1aXRlbmhvdWZ1dHN1XCA7CivkvY/lroXnlKPmpa0gPiBqdXV0YWt1c2FuZ3lvdVwgOwor5rOh5rKr5Lya56S+ID4gaG91bWF0c3VnYWlzaGFcIDsKK+irh+irlumiqOeZuiA+IGRhbnJvbmZ1dWhhdHN1XCA7CivlhYjnmbrmipXmiYsgPiBzZW5wYXRzdXRvdXNodVwgOwor5o6o55CG5bCP6KqsID4gc3VpcmlzaG91c2V0c3VcIDsKK+e0s+Wjq+WNlOWumiA+IHNoaW5zaGlreW91dGVpXCA7CivlpKflkI3lsYvmlbcgPiBkYWlteW91eWFzaGlraVwgOwor54m555Ww5L2T6LOqID4gdG9rdWl0YWlzaGl0c3VcIDsKK+S4remWk+aQvuWPliA+IGNodXVrYW5zYWt1c2h1XCA7CivljZToqr/kvZzmpa0gPiBreW91Y2hvdXNhZ3lvdVwgOwor5oyH5Zyn55mC5rOVID4gc2hpYXRzdXJ5b3Vob3VcIDsKK+W3pealreaKgOihkyA+IGtvdWd5b3VnaWp1dHN1XCA7Civnt4/lkIjoirjooZMgPiBzb3Vnb3VnZWlqdXRzdVwgOwor5Lit55Sj6ZqO57SaID4gY2h1dXNhbmthaWt5dXVcIDsKK+WNl+WNgeWtl+aYnyA+IG1pbmFtaWp1dWppc2VpXCA7Civlv4PpnIrmiYvooZMgPiBzaGlucmVpdGVqdXRzdVwgOwor5oiQ6ZW355Sj5qWtID4gc2VpY2hvdXNhbmd5b3VcIDsKK+Wbvemam+WPjuaUryA+IGtva3VzYWlzaHV1c2hpXCA7CivljprnlJ/mlr3oqK0gPiBrb3VzZWlzaGlzZXRzdVwgOwor5LiK6Zm45L2c5oimID4gam91cmlrdXNha3VzZW5cIDsKK+WLleWKm+izh+a6kCA+IGRvdXJ5b2t1c2hpZ2VuXCA7Civlv4XopoHmnaHku7YgPiBoaXRzdXlvdWpvdWtlblwgOwor5Lit5rWB5oSP6K2YID4gY2h1dXJ5dXVpc2hpa2lcIDsKK+WHuua8geWMuuWfnyA+IHNodXRzdWd5b2t1aWtpXCA7CivosqHlvaLosq/ok4QgPiB6YWlrZWljaG9jaGlrdVwgOwor6IG35Lq65rCX6LOqID4gc2hva3VuaW5rYXRhZ2lcIDsKK+WNmOS9jeihjOWIlyA+IHRhbicnaWd5b3VyZXRzdVwgOwor5Zu96YCj5oay56ugID4ga29rdXJlbmtlbnNob3VcIDsKK+awtOWFiOahiOWGhSA+IG1penVzYWtpYW4nJ25haVwgOwor5Y+O5a656Kit5YKZID4gc2h1dXlvdXNldHN1YmlcIDsKK+a3sea1t+a8gealrSA+IHNoaW5rYWlneW9neW91XCA7Civnm7TlvoDpgoHpgLIgPiBjaG9rdW91bWFpc2hpblwgOwor5aSp5L2T5Yqb5a2mID4gdGVudGFpcmlraWdha3VcIDsKK+ecn+epuumbu+eQgyA+IHNoaW5rdXVkZW5reXV1XCA7CivkuIrlsaTlu7rnr4kgPiBqb3Vzb3VrZW5jaGlrdVwgOwor5b256IG35omL5b2TID4geWFrdXNob2t1dGVhdGVcIDsKK+mrmOWcp+mbu+a1gSA+IGtvdWF0c3VkZW5yeXV1XCA7CivkuqTpgJrpgZPlvrMgPiBrb3V0c3V1ZG91dG9rdVwgOwor5rC05rqW5ris6YePID4gc3VpanVuc29rdXJ5b3VcIDsKK+W8geiovOazleeahCA+IGJlbnNob3Vob3V0ZWtpXCA7Civmnb7ojLjlvqHpo68gPiBtYXRzdXRha2Vnb2hhblwgOwor6Zai56iO6Zqc5aOBID4ga2FuemVpc2hvdWhla2lcIDsKK+e1seaLrOmDqOmVtyA+IHRvdWthdHN1YnVjaG91XCA7CivmkI3lpLHoo5zloasgPiBzb25zaGl0c3Vob3RlblwgOwor5LqL5LqL54mp54mpID4gamlqaWJ1dHN1YnV0c3VcIDsKK+aIpuOAheaBkOOAhSA+IHNlbnNlbmt5b3VreW91XCA7CivpgKPntprlhpnnnJ8gPiByZW56b2t1c2hhc2hpblwgOwor5Zub55m+5L2Z5beeID4gc2hpaHlha3V5b3NodXVcIDsKK+S4gOmZveadpeW+qSA+IGljaGl5b3VyYWlmdWt1XCA7Civlv4PnrYvmopfloZ4gPiBzaGlua2lua291c29rdVwgOwor5a6X5pWZ6KOB5YikID4gc2h1dWt5b3VzYWliYW5cIDsKK+WGmeecn+efs+eJiCA+IHNoYXNoaW5zZWtpYmFuXCA7CivpmqDoirHmpI3niakgPiBpbmthc2hva3VidXRzdVwgOwor5b6u55Sf54mp5a2mID4gYmlzZWlidXRzdWdha3VcIDsKK+aIpueVpeepuui7jSA+IHNlbnJ5YWt1a3V1Z3VuXCA7Civmga3os4DmlrDlubQgPiBreW91Z2FzaGluJyduZW5cIDsKK+Wbvemam+WNlOWumiA+IGtva3VzYWlreW91dGVpXCA7CivoibLljbPmmK/nqbogPiBzaGlraXNva3V6ZWt1dVwgOwor6aCt5a+S6Laz54axID4genVrYW5zb2t1bmV0c3VcIDsKK+WMuuaknOWvn+W6gSA+IGt1a2Vuc2F0c3VjaG91XCA7CivmoLjpmLLooZvlipsgPiBrYWt1Ym91ZWlyeW9rdVwgOwor5a6M5YWo54eD54S8ID4ga2FuemVuJyduZW5zaG91XCA7Civph43ph4/mhJ/oppogPiBqdXVyeW91a2Fua2FrdVwgOwor6ZuM6ZuE6ZGR5YilID4gc2hpeXV1a2FuYmV0c3VcIDsKK+WOn+eUn+WLleeJqSA+IGdlbnNlaWRvdWJ1dHN1XCA7Civnm67nmoTmhI/orZggPiBtb2t1dGVraWlzaGlraVwgOwor5rW355Sf5YuV54mpID4ga2Fpc2VpZG91YnV0c3VcIDsKK+aUu+aSg+eyvuelniA+IGtvdWdla2lzZWlzaGluXCA7CivkvZzmiJDmioDooZMgPiBzYWt1c2VpZ2lqdXRzdVwgOwor6YeR6Yqt5L+h6KiXID4ga2luc2Vuc2hpbnRha3VcIDsKK+WQuOWPjuWQiOS9tSA+IGt5dXVzaHV1Z2FwcGVpXCA7Civmj5vpqqjlparog44gPiBrYW5rb3RzdWRhdHRhaVwgOwor56Gs6LOq6Zm25ZmoID4ga291c2hpdHN1dG91a2lcIDsKK+WvneWPsOaWmemHkSA+IHNoaW5kYWlyeW91a2luXCA7Civos7zlhaXms6jmlocgPiBrb3VueXV1Y2h1dW1vblwgOwor54Sm5Zyf5oim6KGTID4gc2hvdWRvc2VuanV0c3VcIDsKK+acieiBt+aVheWunyA+IHl1dXNva3Vrb2ppdHN1XCA7CivnhKHlhJ/kv6HoqJcgPiBtdXNob3VzaGludGFrdVwgOwor5raI6LK755Sf5rS7ID4gc2hvdWhpc2Vpa2F0c3VcIDsKK+WupOWGhemBiuaIryA+IHNoaXRzdW5haXl1dWdpXCA7CivlrpfmlZnlm6PkvZMgPiBzaHV1a3lvdWRhbnRhaVwgOwor6YCy6KGM54q25rOBID4gc2hpbmtvdWpvdWt5b3VcIDsKK+mrmOetieWLleeJqSA+IGtvdXRvdWRvdWJ1dHN1XCA7CivkuIDohrPpo6/lsYsgPiBpY2hpemVubWVzaGl5YVwgOwor5pmC5Luj5bCP6KqsID4gamlkYWlzaG91c2V0c3VcIDsKK+absue3muW6p+aomSA+IGt5b2t1c2VuemFoeW91XCA7CivlvZPoqbLkurrniakgPiB0b3VnYWlqaW5idXRzdVwgOwor6KaB5rGC6YCB5L+hID4geW91a3l1dXNvdXNoaW5cIDsKK+eZvuS6uuS4gOmmliA+IGh5YWt1bmluJydpc3NodVwgOwor6ZuG5Zuj5qSc6Ki6ID4gc2h1dWRhbmtlbnNoaW5cIDsKK+WuieWvp+enqeW6jyA+IGFuJyduZWljaGl0c3Vqb1wgOwor5qW15qW96bOl6IqxID4gZ29rdXJha3VjaG91a2FcIDsKK+S4rei2iue0m+S6iSA+IGNodXVldHN1ZnVuc291XCA7CivkuIDmi6zos7zlhaUgPiBpa2thdHN1a291bnl1dVwgOwor5rCR5peP6Ieq5rG6ID4gbWluem9rdWppa2V0c3VcIDsKK+ato+mdouaUu+aSgyA+IHNob3VtZW5rb3VnZWtpXCA7CivmlZnogrLnlKPmpa0gPiBreW91aWt1c2FuZ3lvdVwgOwor56m66Kq/6Kit5YKZID4ga3V1Y2hvdXNldHN1YmlcIDsKK+WNmOeLrOWGhemWoyA+IHRhbmRva3VuYWlrYWt1XCA7CivmlZnogrLlrp/nv5IgPiBreW91aWt1amlzc2h1dVwgOwor5bCx5qWt6KaP5YmHID4gc2h1dWd5b3VraXNva3VcIDsKK+aVmemkiueVque1hCA+IGt5b3V5b3ViYW5ndW1pXCA7Civlh43ntZDos4fnlKMgPiB0b3VrZXRzdXNoaXNhblwgOwor6ZuG5Zuj6L6y5aC0ID4gc2h1dWRhbicnbm91am91XCA7Civlkajovrroq7jlm70gPiBzaHV1aGVuc2hva29rdVwgOwor5Zu957GN5p2h6aCFID4ga29rdXNla2lqb3Vrb3VcIDsKK+ePvueJqee1puS4jiA+IGdlbmJ1dHN1a3l1dXlvXCA7Civosarpm6rlnLDluK8gPiBnb3VzZXRzdWNoaXRhaVwgOwor5rW35Y2D5bGx5Y2DID4gdW1pc2VuJyd5YW1hc2VuXCA7CivpnanmlrDmlL/lhZogPiBrYWt1c2hpbnNlaXRvdVwgOwor5bCR5pWw5rCR5pePID4gc2hvdXN1dW1pbnpva3VcIDsKK+WKtOWDjeWNlOe0hCA+IHJvdWRvdWt5b3V5YWt1XCA7Civpm7vmkoPkvZzmiKYgPiBkZW5nZWtpc2FrdXNlblwgOwor5LiD6aGb5YWr6LW3ID4gc2hpY2hpdGVuaGFra2lcIDsKK+iEiumrhOelnue1jCA+IHNla2l6dWlzaGlua2VpXCA7Civnvo7ooZPlpKflraYgPiBiaWp1dHN1ZGFpZ2FrdVwgOwor6YG45oqe6aCF55uuID4gc2VudGFrdWtvdW1va3VcIDsKK+mWk+aOpemBuOaMmSA+IGthbnNldHN1c2Vua3lvXCA7Civosp3mrrvov73mlL4gPiBrYWlnYXJhdHN1aWhvdVwgOwor576k55m65Zyw6ZyHID4gZ3VucGF0c3VqaXNoaW5cIDsKK+e3iuikjOS4gOeVqiA+IGtpbmtvbicnaWNoaWJhblwgOwor54us6Lqr6LK05pePID4gZG9rdXNoaW5raXpva3VcIDsKK+enkeWtpuefpeitmCA+IGthZ2FrdWNoaXNoaWtpXCA7Civnn7Ppg6jph5HlkIkgPiBpc2hpYmVraW5raWNoaVwgOwor6Iqx6bOl6aKo5pyIID4ga2FjaG91ZnV1Z2V0c3VcIDsKK+aPkOWHuuacn+mZkCA+IHRlaXNodXRzdWtpZ2VuXCA7CivlpKnplbflnLDkuYUgPiB0ZW5jaG91Y2hpa3l1dVwgOwor55m+5LiH6ZW36ICFID4gaHlha3VtYW5jaG91amFcIDsKK+WvvueXh+eZguazlSA+IHRhaXNob3VyeW91aG91XCA7CivkuK3mnqLnpZ7ntYwgPiBjaHV1c3V1c2hpbmtlaVwgOwor5ZWG5bel5qWt6ICFID4gc2hvdWtvdWd5b3VzaGFcIDsKK+mWi+elqOmAn+WgsSA+IGthaWh5b3Vzb2t1aG91XCA7CivmgKfnmoTooZ3li5UgPiBzZWl0ZWtpc2hvdWRvdVwgOwor54m55q6K5pKu5b2xID4gdG9rdXNodXNhdHN1ZWlcIDsKK+i8uOWHuuaJi+W9oiA+IHl1c2h1dHN1dGVnYXRhXCA7Civlj7LmlpnppKjlraYgPiBzaGlyeW91a2FuZ2FrdVwgOwor56m65Lit5qW86ZajID4ga3V1Y2h1dXJvdWtha3VcIDsKK+WwkeW5tOaWh+WtpiA+IHNob3VuZW5idW5nYWt1XCA7Civoqr/mlbTmlLvmkoMgPiBjaG91c2Vpa291Z2VraVwgOwor57K+56We5bm06b2iID4gc2Vpc2hpbicnbmVucmVpXCA7CivlsYXkuK3oqr/lgZwgPiBreW9jaHV1Y2hvdXRlaVwgOwor56iO5Yil5L6h5qC8ID4gemVpYmV0c3VrYWtha3VcIDsKK+i7jeS6uueUn+a0uyA+IGd1bmppbnNlaWthdHN1XCA7Civnmoflrq7orablr58gPiBrb3VndXVrZWlzYXRzdVwgOwor57KS44CF6L6b6IumID4gcnl1dXJ5dXVzaGlua3VcIDsKK+adseS6rOWkp+WtpiA+IHRvdWt5b3VkYWlnYWt1XCA7CivoiIjlkbPmtKXmtKUgPiBreW91bWlzaGluc2hpblwgOwor5Y2D5a6i5LiH5p2lID4gc2Vua3lha3ViYW5yYWlcIDsKK+mBuOaKnOippumokyA+IHNlbmJhdHN1c2hpa2VuXCA7CivoiKrot6/mqJnorZggPiBrb3Vyb2h5b3VzaGlraVwgOwor57eK5oCl55m66YCyID4ga2lua3l1dWhhc3NoaW5cIDsKK+epuuS4reWGmeecnyA+IGt1dWNodXVzaGFzaGluXCA7Civllrbmpa3mtLvli5UgPiBlaWd5b3VrYXRzdWRvdVwgOwor5pWR5o+05rS75YuVID4ga3l1dWVua2F0c3Vkb3VcIDsKK+WkqeeEtuehneWtkCA+IHRlbicnbmVuc2hvdXNoaVwgOwor5L+h6KiX6LOH6YeRID4gc2hpbnRha3VzaGlraW5cIDsKK+W4guawkeeUn+a0uyA+IHNoaW1pbnNlaWthdHN1XCA7Civntbblr77mqKnlipsgPiB6ZXR0YWlrZW5yeW9rdVwgOwor5ZGo56ug54u854u9ID4gc2h1dXNob3Vyb3ViYWlcIDsKK+awkeaXj+WtpuiAhSA+IG1pbnpva3VnYWt1c2hhXCA7CivohqDnnYDnirbmhYsgPiBrb3VjaGFrdWpvdXRhaVwgOwor6Z2i5o6l6Kmm6aiTID4gbWVuc2V0c3VzaGlrZW5cIDsKK+aUv+etluWNlOWumiA+IHNlaXNha3VreW91dGVpXCA7Civosqnlo7LmiKbnlaUgPiBoYW5iYWlzZW5yeWFrdVwgOwor5YWs6Kit5biC5aC0ID4ga291c2V0c3VpY2hpYmFcIDsKK+S6uueJqee1jOa4iCA+IGppbmJ1dHN1a2VpemFpXCA7Civlv4PnmoTnirbmhYsgPiBzaGludGVraWpvdXRhaVwgOwor5LiY6Zm15Zyw5bivID4ga3l1dXJ5b3VjaGl0YWlcIDsKK+eUn+a2r+aVmeiCsiA+IHNob3VnYWlreW91aWt1XCA7Civml6fntITlhajmm7ggPiBreXV1eWFrdXplbnNob1wgOwor5aSn5qC55b256ICFID4gZGFpa29uJyd5YWt1c2hhXCA7CivkuIflubTmlrDpgKAgPiBtYW4nJ25lbnNoaW56b3VcIDsKK+W6p+mqqOelnue1jCA+IHpha290c3VzaGlua2VpXCA7CivplbfogIHmlZnkvJogPiBjaG91cm91a3lvdWthaVwgOwor6LKv6JOE5YK15Yi4ID4gY2hvY2hpa3VzYWlrZW5cIDsKK+atpuWKm+S7i+WFpSA+IGJ1cnlva3VrYWlueXV1XCA7Civnsr7lr4bnp5HlraYgPiBzZWltaXRzdWthZ2FrdVwgOwor56eB6YmE57eP6YCjID4gc2hpdGV0c3Vzb3VyZW5cIDsKK+S8nemAgee1guS6hiA+IGRlbnNvdXNodXVyeW91XCA7Civolqvokrjmtojmr5IgPiBrdW5qb3VzaG91ZG9rdVwgOwor6bqm56iI5bi95a2QID4gbXVnaXdhcmFib3VzaGlcIDsKK+azleW+i+ebuOirhyA+IGhvdXJpdHN1c291ZGFuXCA7CivlnLDln5/plovnmbogPiBjaGlpa2lrYWloYXRzdVwgOwor5Zu95YaF55Sj5qWtID4ga29rdW5haXNhbmd5b3VcIDsKK+S4gOaJk+mAhui7oiA+IGljaGlkYWd5YWt1dGVuXCA7CivmsLTnlJ/nlJ/niakgPiBzdWlzZWlzZWlidXRzdVwgOwor5pyJ57ea6YCa5L+hID4geXV1c2VudHN1dXNoaW5cIDsKK+i1t+aJv+i7oue1kCA+IGtpc2hvdXRlbmtldHN1XCA7Civnianos6rkuLvnvqkgPiBidXNzaGl0c3VzaHVnaVwgOwor5L+h6KiX5Lya56S+ID4gc2hpbnRha3VnYWlzaGFcIDsKK+S4remWk+WVhuS6uiA+IGNodXVrYW5zaG91bmluXCA7CivpnZnpm7vlrrnph48gPiBzZWlkZW4nJ3lvdXJ5b3VcIDsKK+S4rea1geekvuS8miA+IGNodXVyeXV1c2hha2FpXCA7Civnp4Hnq4vmjqLlgbUgPiBzaGlyaXRzdXRhbnRlaVwgOwor5Zu95rCR5oqV56WoID4ga29rdW1pbnRvdWh5b3VcIDsKK+aciee9quWIpOaxuiA+IHl1dXphaWhhbmtldHN1XCA7CivlvLfljJbpo5/lk4EgPiBreW91a2FzaG9rdWhpblwgOwor5Ly457iu6Ieq5ZyoID4gc2hpbnNodWt1aml6YWlcIDsKK+mZuOi7jeWkp+WtpiA+IHJpa3VndW5kYWlnYWt1XCA7CivpgJrkv6HpgJ/luqYgPiB0c3V1c2hpbnNva3Vkb1wgOwor6buS6YeR5Ymb55+zID4ga3Vyb2tvbmdvdXNla2lcIDsKK+S4reWbveS6uuihlyA+IGNodXVnb2t1amluZ2FpXCA7CivlraboirjlpKflraYgPiBnYWt1Z2VpZGFpZ2FrdVwgOwor5aSn5rKz5bCP6KqsID4gdGFpZ2FzaG91c2V0c3VcIDsKK+mJhOmBk+S8muekviA+IHRldHN1ZG91Z2Fpc2hhXCA7Civpn7Pmpb3lvaLlvI8gPiBvbmdha3VrZWlzaGlraVwgOwor5oCn5qC85YiG5p6QID4gc2Vpa2FrdWJ1bnNla2lcIDsKK+ePvumHkeabuOeVmSA+IGdlbmtpbmtha2l0b21lXCA7CivkvJHmiKbmnaHntIQgPiBreXV1c2Vuam91eWFrdVwgOwor5LqM6Laz5YuV54mpID4gbmlzb2t1ZG91YnV0c3VcIDsKK+W/g+eQhuWtpueahCA+IHNoaW5yaWdha3V0ZWtpXCA7CivkvoPjgIXoq6Toq6QgPiBrYW5rYW5nYWt1Z2FrdVwgOwor55u057ea6YGL5YuVID4gY2hva3VzZW4nJ3VuZG91XCA7CivmgqrlvrPmlrDogZ4gPiBha3V0b2t1c2hpbmJ1blwgOwor5pyq5rG65ouY55WZID4gbWlrZXRzdWtvdXJ5dXVcIDsKK+WumumHj+WIhuaekCA+IHRlaXJ5b3VidW5zZWtpXCA7CivntJnlsZHlkIznhLYgPiBrYW1pa3V6dWRvdXplblwgOwor5rip5a6k5qC95Z+5ID4gb25zaGl0c3VzYWliYWlcIDsKK+mHneWwj+ajkuWkpyA+IHNoaW5zaG91Ym91ZGFpXCA7CivlpKrliIDkuozohbAgPiB0YWNoaWZ1dGFrb3NoaVwgOwor6KqN6K2Y5LiN6LazID4gbmluc2hpa2lidXNva3VcIDsKK+Wbo+S9k+WNlOe0hCA+IGRhbnRhaWt5b3V5YWt1XCA7CivmiKbjgIXlhaLjgIUgPiBzZW5zZW5reW91a3lvdVwgOwor5L+h6aC85Zue5b6pID4gc2hpbnJhaWthaWZ1a3VcIDsKK+S/ruWtpuaXheihjCA+IHNodXVnYWt1cnlva291XCA7Civpm7vmupDplovnmbogPiBkZW5nZW5rYWloYXRzdVwgOwor5qih5byP5qiZ5pysID4gbW9zaGlraWh5b3Vob25cIDsKK+i/vei3oeiqv+afuyA+IHRzdWlzZWtpY2hvdXNhXCA7CivlibLlvJXmiYvlvaIgPiB3YXJpYmlraXRlZ2F0YVwgOwor55u05rWB5Zue6LevID4gY2hva3VyeXV1a2Fpcm9cIDsKK+iIiOihjOaIkOe4viA+IGtvdWd5b3VzZWlzZWtpXCA7CivljJfmtIvmvIHmpa0gPiBob2t1eW91Z3lvZ3lvdVwgOwor5Zu95paH5a2m5Y+yID4ga29rdWJ1bmdha3VzaGlcIDsKK+awuOS5heiEseavmyA+IGVpa3l1dWRhdHN1bW91XCA7CivmjpLlh7rln7rmupYgPiBoYWlzaHV0c3VraWp1blwgOwor57WE6IG35pS56Z2pID4gc29zaG9rdWthaWtha3VcIDsKK+mBjuWkseiHtOatuyA+IGthc2hpdHN1Y2hpc2hpXCA7CivkuqTpgJrkv6Hlj7cgPiBrb3V0c3V1c2hpbmdvdVwgOwor5YuV54mp5a6f6aiTID4gZG91YnV0c3VqaWtrZW5cIDsKK+awtOS4iuitpuWvnyA+IHN1aWpvdWtlaXNhdHN1XCA7CivlirTkvZzmlZnogrIgPiByb3VzYWt1a3lvdWlrdVwgOwor5qC45buD5qOE54mpID4ga2FrdWhhaWtpYnV0c3VcIDsKK+mOrumtguabsuatjCA+IGNoaW5rb25reW9rdWthXCA7CivpnZ7piYTph5HlsZ4gPiBoaXRldHN1a2luem9rdVwgOwor5LiJ55m+5Luj6KiAID4gc2FuYnlha3VkYWlnZW5cIDsKK+S4reWbveS8neadpSA+IGNodXVnb2t1ZGVucmFpXCA7CivnrYvnhKHlipvnl4cgPiBraW5tdXJ5b2t1c2hvdVwgOwor5rWB6YCa6LOH5pysID4gcnl1dXRzdXVzaGlob25cIDsKK+epuuWNs+aYr+iJsiA+IGt1dXNva3V6ZXNoaWtpXCA7CivmlZnogrLmlLnpnakgPiBreW91aWt1a2Fpa2FrdVwgOwor5YiH6ZaL5omL6KGTID4gc2Vra2Fpc2h1anV0c3VcIDsKK+aVkeitt+a0u+WLlSA+IGt5dXVnb2thdHN1ZG91XCA7CivlrqPkvJ3mtLvli5UgPiBzZW5kZW5rYXRzdWRvdVwgOwor6LKh55Sj55uu6YyyID4gemFpc2FubW9rdXJva3VcIDsKK+ato+W4uOe1guS6hiA+IHNlaWpvdXNodXVyeW91XCA7CivkuqHlkb3nlJ/mtLsgPiBib3VtZWlzZWlrYXRzdVwgOwor5YSq6LaK6KSH5ZCIID4geXV1ZXRzdWZ1a3Vnb3VcIDsKK+e0lOaXpeacrOW8jyA+IGp1bicnbmlob25zaGlraVwgOwor5omL5b2i5Ymy5byVID4gdGVnYXRhd2FyaWJpa2lcIDsKK+WLleeJqeW0h+aLnSA+IGRvdWJ1dHN1c3V1aGFpXCA7CivlhbHlkIzkvY/lroUgPiBreW91ZG91anV1dGFrdVwgOwor5pyJ6KKL5YuV54mpID4geXV1dGFpZG91YnV0c3VcIDsKK+iii+Wwj+i3r+aWhyA+IGZ1a3Vyb2tvdWppYnVuXCA7Civnmb3noILpnZLmnb4gPiBoYWt1c2hhc2Vpc2hvdVwgOwor6Iqx5auB5b6h5a+uID4gaGFuYXlvbWVnb3J5b3VcIDsKK+aWsOmZs+S7o+isnSA+IHNoaW5jaGludGFpc2hhXCA7CivkuIDlha3pioDooYwgPiBpY2hpcm9rdWdpbmtvdVwgOwor5bCx6IG35pah5peLID4gc2h1dXNob2t1YXNzZW5cIDsKK+mereavm+iZq+eXhyA+IGJlbm1vdWNodXVzaG91XCA7CivntbbkvZPntbblkb0gPiB6ZXR0YWl6ZXRzdW1laVwgOwor57K+56We5YiG5p6QID4gc2Vpc2hpbmJ1bnNla2lcIDsKK+ezu+WIl+S8muekviA+IGtlaXJldHN1Z2Fpc2hhXCA7CivliIblrZDplpPlipsgPiBidW5zaGlrYW5yeW9rdVwgOwor5LyB5qWt5oim55WlID4ga2lneW91c2Vucnlha3VcIDsKK+WbveawkeaJgOW+lyA+IGtva3VtaW5zaG90b2t1XCA7CivovLjlh7rliLbpmZAgPiB5dXNodXRzdXNlaWdlblwgOwor54m55a6a6YqY5p+EID4gdG9rdXRlaW1laWdhcmFcIDsKK+iyoeWLmeS9k+izqiA+IHphaW11dGFpc2hpdHN1XCA7Civorablr5/lrabmoKEgPiBrZWlzYXRzdWdha2tvdVwgOwor5LiN5rOV5L615YWlID4gZnVob3VzaGluJydueXV1XCA7CivnlJ/mtLvoqK3oqIggPiBzZWlrYXRzdXNla2tlaVwgOwor6Lu96JaE55+t5bCPID4ga2VpaGFrdXRhbnNob3VcIDsKK+eul+ihk+W5s+WdhyA+IHNhbmp1dHN1aGVpa2luXCA7CivljbPluK3mlpnnkIYgPiBzb2t1c2VraXJ5b3VyaVwgOwor54mp55CG55mC5rOVID4gYnV0c3VyaXJ5b3Vob3VcIDsKK+mdkumFuOS4reavkiA+IHNlaXNhbmNodXVkb2t1XCA7CivlrpfmlZnms5XkurogPiBzaHV1a3lvdWhvdWppblwgOwor5YaZ55yf5qSN5a2XID4gc2hhc2hpbnNob2t1amlcIDsKK+e3iue4ruiyoeaUvyA+IGtpbnNodWt1emFpc2VpXCA7CivljZjmgKfnlJ/mrpYgPiB0YW5zZWlzZWlzaG9rdVwgOwor6auY562J55Sf54mpID4ga291dG91c2VpYnV0c3VcIDsKK+iIiOWRs+a0peOAhSA+IGt5b3VtaXNoaW5zaGluXCA7Civkv53oqLzniZvkubMgPiBob3Nob3VneXV1bnl1dVwgOwor5Y+X6IOO6Kq/56+AID4ganV0YWljaG91c2V0c3VcIDsKK+mAj+aekOeZguazlSA+IHRvdXNla2lyeW91aG91XCA7CivmhJ/opprnpZ7ntYwgPiBrYW5rYWt1c2hpbmtlaVwgOwor5bCC6ZaA55+l6K2YID4gc2VubW9uY2hpc2hpa2lcIDsKK+i7jeaLoeertuS6iSA+IGd1bmtha3VreW91c291XCA7CivnmbvloLTkurrniakgPiB0b3Vqb3VqaW5idXRzdVwgOwor6Z2e54++5a6f55qEID4gaGlnZW5qaXRzdXRla2lcIDsKK+mAhuaAp+efs+m5uCA+IGd5YWt1c2Vpc2Vra2VuXCA7Civlub3ploDni63nqoQgPiB5dXVtb25reW91c2FrdVwgOwor6YCj6YKm5b2T5bGAID4gcmVucG91dG91a3lva3VcIDsKK+ebtOWwhOaXpeWFiSA+IGNob2t1c2hhbmlra291XCA7CivlhYjku7vlsIbmoKEgPiBzZW4nJ25pbnNob3Vrb3VcIDsKK+isueWOs+Wun+ebtCA+IGtpbmdlbmppdGNob2t1XCA7CivlupfpoK3lj5blvJUgPiB0ZW50b3V0b3JpaGlraVwgOwor55m65aOy56aB5q2iID4gaGF0c3ViYWlraW5zaGlcIDsKK+WTgeizqueuoeeQhiA+IGhpbnNoaXRzdWthbnJpXCA7Civnt6jlhaXoqabpqJMgPiBoZW4nJ255dXVzaGlrZW5cIDsKK+S8nemBlOmWouaVsCA+IGRlbnRhdHN1a2Fuc3V1XCA7CivlsL3lv6DloLHlm70gPiBqaW5jaHV1aG91a29rdVwgOwor5Yq05L2/5Y2U6Kq/ID4gcm91c2hpa3lvdWNob3VcIDsKK+eZvuiJsuecvOmPoSA+IGh5YWt1aXJvbWVnYW5lXCA7CivkuK3mgKflrZDmnZ8gPiBjaHV1c2Vpc2hpc29rdVwgOwor57eK5oCl5a++562WID4ga2lua3l1dXRhaXNha3VcIDsKK+WNsOWIt+aKgOihkyA+IGluc2F0c3VnaWp1dHN1XCA7Civlv4PnmoTooajnpLogPiBzaGludGVraWh5b3VqaVwgOwor5ZCN5omA5pen6LehID4gbWVpc2hva3l1dXNla2lcIDsKK+aKleizh+S/oeiolyA+IHRvdXNoaXNoaW50YWt1XCA7CivmlrDpn5Plm73lhZogPiBzaGlua2Fua29rdXRvdVwgOwor5Zu96Zqb5p2h57SEID4ga29rdXNhaWpvdXlha3VcIDsKK+S4g+WgguS8veiXjSA+IHNoaWNoaWRvdWdhcmFuXCA7Civopqrml4/plqLkv4IgPiBzaGluem9rdWthbmtlaVwgOwor5YKY5b2i56KN5a2QID4ga2FzYWdhdGFnYWlzaGlcIDsKK+aCqua8ouWwj+iqrCA+IGFra2Fuc2hvdXNldHN1XCA7CivlhazmlbXkuIDlj7cgPiBrb3V0ZWtpaWNoaWdvdVwgOwor5rC06LOq5rGa5r+BID4gc3Vpc2hpdHN1b2Rha3VcIDsKK+eyvuelnueZguazlSA+IHNlaXNoaW5yeW91aG91XCA7CivojKvnhLboh6rlpLEgPiBib3V6ZW5qaXNoaXRzdVwgOwor5Zyw6LOq5pmC5LujID4gY2hpc2hpdHN1amlkYWlcIDsKK+eri+WFpeemgeatoiA+IHRhY2hpaXJpa2luc2hpXCA7CivlpKflkIzlm6PntZAgPiBkYWlkb3VkYW5rZXRzdVwgOwor6LKv6YeR6YCa5bizID4gY2hva2ludHN1dWNob3VcIDsKK+aWjuaIkuaykOa1tCA+IHNhaWthaW1va3V5b2t1XCA7CivmlrDliLblpKflraYgPiBzaGluc2VpZGFpZ2FrdVwgOwor5YWx5ZCM6LKs5Lu7ID4ga3lvdWRvdXNla2luaW5cIDsKK+aWsOiBnueZuuihqCA+IHNoaW5idW5oYXBweW91XCA7Civou4rlhoXmlLnmnK0gPiBzaGFuYWlrYWlzYXRzdVwgOwor5piG6Jmr5a2m6ICFID4ga29uY2h1dWdha3VzaGFcIDsKK+mAgOiBt+W5tOmHkSA+IHRhaXNob2t1bmVua2luXCA7CivliIblibLntbHmsrsgPiBidW5rYXRzdXRvdWNoaVwgOwor56K6546H6YGO56iLID4ga2FrdXJpdHN1a2F0ZWlcIDsKK+eglOeptueZuuihqCA+IGtlbmt5dXVoYXBweW91XCA7Civml6fntITogZbmm7ggPiBreXV1eWFrdXNlaXNob1wgOwor6JKy6Ym+5YW16IiOID4ga2FtYWJva29oZWlzaGFcIDsKK+e1jOiyu+evgOe0hCA+IGtlaWhpc2V0c3V5YWt1XCA7CivnrYvokI7nuK7nl4cgPiBraW4nJ2lzaHVrdXNob3VcIDsKK+WEqueUn+aJi+ihkyA+IHl1dXNlaXNodWp1dHN1XCA7CivlhazlhbHmlpnph5EgPiBrb3VreW91cnlvdWtpblwgOwor5by35Yi25Lit5patID4ga3lvdXNlaWNodXVkYW5cIDsKK+S4h+acieW8leWKmyA+IGJhbicneXV1aW5yeW9rdVwgOwor56uL5aSq5a2Q5byPID4gcml0dGFpc2hpc2hpa2lcIDsKK+aXpeWGheWRqOacnyA+IG5pY2hpbmFpc2h1dWtpXCA7CivmhrLms5Xop6Pph4ggPiBrZW5wb3VrYWlzaGFrdVwgOwor576O55qE55Sf5rS7ID4gYml0ZWtpc2Vpa2F0c3VcIDsKK+Wbo+S9k+WJsuW8lSA+IGRhbnRhaXdhcmliaWtpXCA7Civlm73pmpvkuqTmtYEgPiBrb2t1c2Fpa291cnl1dVwgOwor5Yag54q26Z2Z6ISIID4ga2Fuam91am91bXlha3VcIDsKK+mAhuS4ieinkuW9oiA+IGd5YWt1c2Fua2Fra2VpXCA7CivluILnq4vlrabmoKEgPiBzaGlyaXRzdWdha2tvdVwgOwor6KSH6ZuR5oCq5aWHID4gZnVrdXphdHN1a2Fpa2lcIDsKK+mrmOWxpOW7uueviSA+IGtvdXNvdWdlbmNoaWt1XCA7CivnnJ/nj6DppIrmrpYgPiBzaGluanV5b3VzaG9rdVwgOwor55Sz5ZGK55So57SZID4gc2hpbmtva3V5b3VzaGlcIDsKK+WxgOWcsOaIpuS6iSA+IGt5b2t1Y2hpc2Vuc291XCA7Civph43opoHkurrniakgPiBqdXV5b3VqaW5idXRzdVwgOwor5rS754mI5Y2w5Yi3ID4ga2FwcGFuJydpbnNhdHN1XCA7CivpgKPml6XpgKPlpJwgPiByZW5qaXRzdXJlbicneWFcIDsKK+S4ieiAheWvvueriyA+IHNhbnNoYXRhaXJpdHN1XCA7CivmsYLlprvluoPlkYogPiBreXV1c2Fpa291a29rdVwgOwor54uC6KiA6Ieq5q66ID4ga3lvdWdlbmppc2F0c3VcIDsKK+aAp+afk+iJsuS9kyA+IHNlaXNlbnNob2t1dGFpXCA7Civlh7jniYjljbDliLcgPiB0b3BwYW4nJ2luc2F0c3VcIDsKK+WIuui6q+WMheS4gSA+IHNhc2hpbWlib3VjaG91XCA7Civml6XnsbPosr/mmJMgPiBuaWNoaWJlaWJvdWVraVwgOwor6LuN5LqL5Y2U5YqbID4gZ3VuamlreW91cnlva3VcIDsKK+altemZkOeKtuaFiyA+IGt5b2t1Z2Vuam91dGFpXCA7CivniannkIbnj77osaEgPiBidXRzdXJpZ2Vuc2hvdVwgOwor5Lq66Lqr5pS75pKDID4gamluc2hpbmtvdWdla2lcIDsKK+iomOaGtuWWquWksSA+IGtpb2t1c291c2hpdHN1XCA7CivnpL7kvJrnp6nluo8gPiBzaGFrYWljaGl0c3Vqb1wgOwor5L6D5L6D6Kuk6KukID4ga2Fua2FuZ2FrdWdha3VcIDsKK+a4m+S+oeWEn+WNtCA+IGdlbmthc2hvdWt5YWt1XCA7CivnqbrkuK3mn7vlr58gPiBrdXVjaHV1c2FzYXRzdVwgOwor57Sg5Lq66Iqd5bGFID4gc2hpcm91dG9zaGliYWlcIDsKK+S4gOWFreWLneiyoCA+IGljaGlyb2t1c2hvdWJ1XCA7CivkuqTpn7/mpb3lm6MgPiBrb3VreW91Z2FrdWRhblwgOwor6KGA5ray6YqA6KGMID4ga2V0c3Vla2lnaW5rb3VcIDsKK+WVhuWTgeWcqOmrmCA+IHNob3VoaW56YWlkYWthXCA7CivniannkIblrabogIUgPiBidXRzdXJpZ2FrdXNoYVwgOwor5bm055m+5bm05LitID4gbmVuYnlha3VuZW5qdXVcIDsKK+aeneiRieacq+evgCA+IHNoaXlvdW1hc3NldHN1XCA7Civou43pmornlJ/mtLsgPiBndW50YWlzZWlrYXRzdVwgOwor5q+U6LyD55qE5bCPID4gaGlrYWt1dGVraXNob3VcIDsKK+a9nOWcqOiDveWKmyA+IHNlbnphaW5vdXJ5b2t1XCA7Civlt6XlrabljZrlo6sgPiBrb3VnYWt1aGFrdXNoaVwgOwor5pyJ5YSf5aWR57SEID4geXV1c2hvdWtlaXlha3VcIDsKK+aWsOiBnuW6g+WRiiA+IHNoaW5idW5rb3Vrb2t1XCA7CivkuIrntJrmm7nplbcgPiBqb3VreXV1c291Y2hvdVwgOwor5Lmx6Ki65Lmx55mCID4gcmFuc2hpbnJhbnJ5b3VcIDsKK+mbhuWQiOS9j+WuhSA+IHNodXVnb3VqdXV0YWt1XCA7CivlvqHpo5/kuovlh6YgPiBvc2hva3VqaWRva29yb1wgOwor6aSK5q6W55yf54+gID4geW91c2hva3VzaGluanVcIDsKK+WGhemDqOWRiueZuiA+IG5haWJ1a29rdWhhdHN1XCA7CivlkI3nm67os4Pph5EgPiBtZWltb2t1Y2hpbmdpblwgOwor55u45a++5rm/5bqmID4gc291dGFpc2hpdHN1ZG9cIDsKK+acrOacq+i7ouWAkiA+IGhvbm1hdHN1dGVudG91XCA7CivlrabmoKHnlJ/mtLsgPiBnYWtrb3VzZWlrYXRzdVwgOwor5YWl5Zu95p+76Ki8ID4gbnl1dWtva3VzYXNob3VcIDsKK+iHquW+i+elnue1jCA+IGppcml0c3VzaGlua2VpXCA7Civlp4nmp5jkurrlvaIgPiBhbmVzYW1hbmluZ3lvdVwgOwor5oim5oim5oGQ5oGQID4gc2Vuc2Vua3lvdWt5b3VcIDsKK+ihneaSg+mWouaVsCA+IHNob3VnZWtpa2Fuc3V1XCA7Civlt6foqIDku6ToibIgPiBrb3VnZW5yZWlzaG9rdVwgOwor5aSJ5rip5YuV54mpID4gaGVuJydvbmRvdWJ1dHN1XCA7Civljp/lp4vli5XniakgPiBnZW5zaGlkb3VidXRzdVwgOwor56m66ZaT6Iq46KGTID4ga3V1a2FuZ2VpanV0c3VcIDsKK+S+g+OAheirpOOAhSA+IGthbmthbmdha3VnYWt1XCA7CivplovlupfkvJHmpa0gPiBrYWl0ZW5reXV1Z3lvdVwgOwor5aiv5qW95pa96KitID4gZ29yYWt1c2hpc2V0c3VcIDsKK+WNiuawuOS5heeahCA+IGhhbicnZWlreXV1dGVraVwgOwor6aOf57On5LqL5oOFID4gc2hva3VyeW91amlqb3VcIDsKK+WPr+mAhuWPjeW/nCA+IGthZ3lha3VoYW4nJ25vdVwgOwor54m55Yil5Lya5ZOhID4gdG9rdWJldHN1a2FpaW5cIDsKK+atu+a0u+WVj+mhjCA+IHNoaWthdHN1bW9uZGFpXCA7Civns7vntbHnpZ7lraYgPiBrZWl0b3VzaGluZ2FrdVwgOwor6Luf6aqo6a2a6aGeID4gbmFua290c3VneW9ydWlcIDsKK+WQhOS6uuWQhOanmCA+IGtha3VqaW5rYWt1eW91XCA7CivpgJrkv6Hkuovmpa0gPiB0c3V1c2hpbmppZ3lvdVwgOwor6LK/5piT6Zqc5aOBID4gYm91ZWtpc2hvdWhla2lcIDsKK+WNmOS4gOmAmuiyqCA+IHRhbicnaXRzdXRzdXVrYVwgOwor5Y2D5Lih5b256ICFID4gc2VucnlvdXlha3VzaGFcIDsKK+WIsOedgOaZguWIuyA+IHRvdWNoYWt1amlrb2t1XCA7CivmpoLnrpfopoHmsYIgPiBnYWlzYW4nJ3lvdWt5dXVcIDsKK+WbveawkeW5tOmHkSA+IGtva3VtaW4nJ25lbmtpblwgOwor5rOl5rC056i85qWtID4gZG9yb21penVrYWd5b3VcIDsKK+WcqOaXpeexs+i7jSA+IHphaW5pY2hpYmVpZ3VuXCA7CivotorlooPlhaXlraYgPiBla2t5b3VueXV1Z2FrdVwgOwor5pWw55CG5ZOy5a2mID4gc3V1cml0ZXRzdWdha3VcIDsKK+WUr+eJqeWPsuimsyA+IHl1aWJ1dHN1c2hpa2FuXCA7CivllYbmpa3lrabmoKEgPiBzaG91Z3lvdWdha2tvdVwgOwor5bem5aSn5ous5bynID4gaGlkYXJpZGFpa2Fra29cIDsKK+awkeaXj+eyvuelniA+IG1pbnpva3VzZWlzaGluXCA7Civlrp/lipvooYzngrogPiBqaXRzdXJ5b2t1a291aVwgOwor5rW357a/5YuV54mpID4ga2FpbWVuZG91YnV0c3VcIDsKK+exs+i7jeWFteWKmyA+IGJlaWd1bmhlaXJ5b2t1XCA7CivlsLHlrablubTpvaIgPiBzaHV1Z2FrdW5lbnJlaVwgOwor6Ymx54mp6LOH5rqQID4ga291YnV0c3VzaGlnZW5cIDsKK+i7n+W8j+mHjueQgyA+IG5hbnNoaWtpeWFreXV1XCA7Civkv6HoqJfntbHmsrsgPiBzaGludGFrdXRvdWNoaVwgOwor57WM5riI5rS75YuVID4ga2VpemFpa2F0c3Vkb3VcIDsKK+WFteW8j+S9k+aTjSA+IGhlaXNoaWtpdGFpc291XCA7CivnlJ/mrpbntLDog54gPiBzZWlzaG9rdXNhaWJvdVwgOwor5Zyw5b2i5ris6YePID4gY2hpa2Vpc29rdXJ5b3VcIDsKK+WVhualreizh+acrCA+IHNob3VneW91c2hpaG9uXCA7CivmlbDlgKTnm67mqJkgPiBzdXVjaGltb2t1aHlvdVwgOwor5LiA5b6X5LiA5aSxID4gaXR0b2t1aXNzaGl0c3VcIDsKK+mAmuS/oeiyqeWjsiA+IHRzdXVzaGluaGFuYmFpXCA7CivlvLfliLbln7fooYwgPiBreW91c2Vpc2hpa2tvdVwgOwor5bm76Kaa55eH54q2ID4gZ2Vua2FrdXNob3Vqb3VcIDsKK+WMl+mZuOWcsOaWuSA+IGhva3VyaWt1Y2hpaG91XCA7CivlibLlvJXnmbrooYwgPiB3YXJpYmlraWhha2tvdVwgOwor5bqD5aCx5rS75YuVID4ga291aG91a2F0c3Vkb3VcIDsKK+WxsemrmOW4veWtkCA+IHlhbWF0YWthYm91c2hpXCA7Civmn5PoibLlt6XloLQgPiBzZW5zaG9rdWtvdWpvdVwgOwor5YWs5byP6Kiq5ZWPID4ga291c2hpa2lob3Vtb25cIDsKK+e3j+WQiOmWi+eZuiA+IHNvdWdvdWthaWhhdHN1XCA7CivpgKPnq4vmlL/mqKkgPiByZW5yaXRzdXNlaWtlblwgOwor5beu5Yil6KGo54++ID4gc2FiZXRzdWh5b3VnZW5cIDsKK+aoqeWKm+mXmOS6iSA+IGtlbnJ5b2t1dG91c291XCA7Civoo73lk4HmiKbnlaUgPiBzZWloaW5zZW5yeWFrdVwgOwor5YiG5rC05bGx6ISIID4gYnVuc3Vpc2FubXlha3VcIDsKK+iqmOmbu+ato+aOpSA+IHl1dWRlbnNlaXNldHN1XCA7Civnn6XopprnpZ7ntYwgPiBjaGlrYWt1c2hpbmtlaVwgOwor6YCQ5p2h5a+p6K2wID4gY2hpa3Vqb3VzaGluZ2lcIDsKK+WNg+WztuWIl+WztiA+IGNoaXNoaW1hcmV0dG91XCA7CivovLjlh7rotoXpgY4gPiB5dXNodXRzdWNob3VrYVwgOwor5bCK546L6KiO5bmVID4gc29uJydub3V0b3ViYWt1XCA7Civmg4XloLHpgJrkv6EgPiBqb3Vob3V0c3V1c2hpblwgOwor6LaF6LaK5Lqk5LujID4gY2hvdWV0c3Vrb3V0YWlcIDsKK+eUn+a0u+epuumWkyA+IHNlaWthdHN1a3V1a2FuXCA7CivliY3nq4vohbrngo4gPiB6ZW5yaXRzdXNlbicnZW5cIDsKK+ihjOaUv+aUuemdqSA+IGd5b3VzZWlrYWlrYWt1XCA7Civlvovku6Tlm73lrrYgPiByaXRzdXJ5b3Vrb2trYVwgOwor5b+D6ZyK54++6LGhID4gc2hpbnJlaWdlbnNob3VcIDsKK+eUn+iqleeZvuW5tCA+IHNlaXRhbmh5YWt1bmVuXCA7Civoh6rli5XnnYDkv6EgPiBqaWRvdWNoYWt1c2hpblwgOwor56ys5LiJ5Yui5YqbID4gZGFpc2Fuc2Vpcnlva3VcIDsKK+abuOeVmemDteS+vyA+IGtha2l0b21leXV1YmluXCA7Civnn6XorZjkvZPns7sgPiBjaGlzaGlraXRhaWtlaVwgOwor6ZuG5ZCI6KiY6L+wID4gc2h1dWdvdWtpanV0c3VcIDsKK+S4ieeZvuiruOS+ryA+IHNhbmJ5YWt1c2hva291XCA7CivlpKfooYbmloflraYgPiB0YWlzaHV1YnVuZ2FrdVwgOwor5Lit562J5pWZ6IKyID4gY2h1dXRvdWt5b3Vpa3VcIDsKK+aVmeiCsuihjOaUvyA+IGt5b3Vpa3VneW91c2VpXCA7Civmraboo4XkuK3nq4sgPiBidXNvdWNodXVyaXRzdVwgOwor5bmz5ZKM5Y2U5YqbID4gaGVpd2FreW91cnlva3VcIDsKK+mbu+mJhOS8muekviA+IGRlbnRldHN1Z2Fpc2hhXCA7Civlh7rluK3ml6XmlbAgPiBzaHVzc2VraW5pc3N1dVwgOwor55yM56uL55eF6ZmiID4ga2Vucml0c3VieW91aW5cIDsKK+eykueykui+m+iLpiA+IHJ5dXVyeXV1c2hpbmt1XCA7CivlgY/ml4HlhqDohJogPiBoZW5ib3VrYW5reWFrdVwgOwor6LKp5aOy5L+D6YCyID4gaGFuYmFpc29rdXNoaW5cIDsKK+S/oeiol+aKleizhyA+IHNoaW50YWt1dG91c2hpXCA7CivkuK3lsI/kvIHmpa0gPiBjaHV1c2hvdWtpZ3lvdVwgOwor5LiJ6KGM5bqD5ZGKID4gc2FuZ3lvdWtvdWtva3VcIDsKK+ihgOa2suW+queSsCA+IGtldHN1ZWtpanVua2FuXCA7CivpgKPntZDmsbrnrpcgPiByZW5rZXRzdWtlc3NhblwgOwor6aqo6Luf5YyW55eHID4ga290c3VuYW5rYXNob3VcIDsKK+aUv+ayu+WTsuWtpiA+IHNlaWppdGV0c3VnYWt1XCA7CivllYbmpa3mlL7pgIEgPiBzaG91Z3lvdWhvdXNvdVwgOwor5Zu96Ziy57eP55yBID4ga29rdWJvdXNvdXNob3VcIDsKK+eUn+a0u+aMh+WwjiA+IHNlaWthdHN1c2hpZG91XCA7Civngo7nhrHlnLDnjYQgPiBlbicnbmV0c3VqaWdva3VcIDsKK+WFq+mdoueOsueTjyA+IGhhY2hpbWVucmVpcm91XCA7CivpnaLkvJrorJ3ntbYgPiBtZW5rYWlzaGF6ZXRzdVwgOwor6YGT6Lev5qiZ6K2YID4gZG91cm9oeW91c2hpa2lcIDsKK+WbveWWtumAmuS/oSA+IGtva3VlaXRzdXVzaGluXCA7CivpganmnZDpganmiYAgPiB0ZWtpemFpdGVraXNob1wgOwor5YqH55eH6IKd54KOID4gZ2VraXNob3VrYW4nJ2VuXCA7Civnianmg4XpqJLnhLYgPiBidXRzdWpvdXNvdXplblwgOwor5YWs5rCR55Sf5rS7ID4ga291bWluc2Vpa2F0c3VcIDsKK+WFpeWtpuippumokyA+IG55dXVnYWt1c2hpa2VuXCA7Civntbblr77ntbblkb0gPiB6ZXR0YWl6ZXRzdW1laVwgOwor5LqL44CF54mp44CFID4gamlqaWJ1dHN1YnV0c3VcIDsKK+WAi+WAi+WIpeWIpSA+IGtva29iZXRzdWJldHN1XCA7CivlkIjllLHpmorplbcgPiBnYXNzaG91dGFpY2hvdVwgOwor5Lm+54el54mb5LmzID4ga2Fuc291Z3l1dW55dXVcIDsKK+ebtOezu+WwiuWxniA+IGNob2trZWlzb256b2t1XCA7CivlhaXlrabpoZjmm7ggPiBueXV1Z2FrdWdhbnNob1wgOwor5Ye655m65pmC6ZaTID4gc2h1cHBhdHN1amlrYW5cIDsKK+S4u+imgeS6uueJqSA+IHNodXlvdWppbmJ1dHN1XCA7CivmloflrabkvZzlk4EgPiBidW5nYWt1c2FrdWhpblwgOwor6Lu95L6/6YmE6YGTID4ga2VpYmVudGV0c3Vkb3VcIDsKK+WJsuW8leW4guWgtCA+IHdhcmliaWtpc2hpam91XCA7CivlpLHouKrlrqPlkYogPiBzaGlzc291c2Vua29rdVwgOwor5YyW5a2m57WQ5ZCIID4ga2FnYWt1a2V0c3Vnb3VcIDsKK+S/nemZuuaWmeeOhyA+IGhva2VucnlvdXJpdHN1XCA7Civkv6HotormnKznt5ogPiBzaGluZXRzdWhvbnNlblwgOwor56We57WM5Lit5p6iID4gc2hpbmtlaWNodXVzdXVcIDsKK+eZuuWFieWLleeJqSA+IGhha2tvdWRvdWJ1dHN1XCA7CivopIflvI/ngavlsbEgPiBmdWt1c2hpa2lrYXphblwgOwor5aCF5b+N5LiN5oqcID4ga2VuJyduaW5mdWJhdHN1XCA7CivogJDkuY/nlJ/mtLsgPiB0YWlib3VzZWlrYXRzdVwgOwor56S+5Lya6YCa5b+1ID4gc2hha2FpdHN1dW5lblwgOwor5o6l5a6i5oWL5bqmID4gc2Vra3lha3V0YWlkb1wgOwor6Lu954iG5pKD5qmfID4ga2VpYmFrdWdla2lraVwgOwor572y5ZCN5o265Y2wID4gc2hvbWVpbmF0c3VpblwgOwor6IO46YOo55a+5oKjID4ga3lvdWJ1c2hpa2thblwgOwor6LGh54mZ5Y+W5byVID4gem91Z2V0b3JpaGlraVwgOwor5pel5puc5aSn5belID4gbmljaGl5b3VkYWlrdVwgOwor55uu546J5ZWG5ZOBID4gbWVkYW1hc2hvdWhpblwgOwor6KO96Jas5Lya56S+ID4gc2VpeWFrdWdhaXNoYVwgOwor5oqV5YWJ54Wn5piOID4gdG91a291c2hvdW1laVwgOwor5riF5buJ5r2U55m9ID4gc2VpcmVua2VwcGFrdVwgOwor5pW15YmN6YCD5LqhID4gdGVraXplbnRvdWJvdVwgOwor5pel5YiK5paw6IGeID4gbmlra2Fuc2hpbmJ1blwgOwor5oqx6IW557W25YCSID4gaG91ZnVrdXpldHRvdVwgOwor5oKq6JmQ54Sh6YGTID4gYWt1Z3lha3VtdWRvdVwgOwor5Zu95a625qip5YqbID4ga29ra2FrZW5yeW9rdVwgOwor5Y2X5rSL6Ku45bO2ID4gbmFuJyd5b3VzaG90b3VcIDsKK+WbmuS6uuWKtOWDjSA+IHNodXVqaW5yb3Vkb3VcIDsKK+WKo+etieims+W/tSA+IHJldHRvdWthbicnbmVuXCA7CivplqLkv4LlrpjluoEgPiBrYW5rZWlrYW5jaG91XCA7CivovrLmsJHmloflraYgPiBub3VtaW5idW5nYWt1XCA7Civoh6rnhLbnj77osaEgPiBzaGl6ZW5nZW5zaG91XCA7CivohY7oh5PntZDnn7MgPiBqaW56b3VrZXNzZWtpXCA7Civmlr3mlL/mlrnph50gPiBzaGlzZWlob3VzaGluXCA7CivlpKnnq7rmtarkurogPiB0ZW5qaWt1cm91bmluXCA7CivpnIrprYLkuI3mu4UgPiByZWlrb25mdW1ldHN1XCA7CivlhazlhbHntYTlkIggPiBrb3VreW91a3VtaWFpXCA7CivmnInnt5rpm7vkv6EgPiB5dXVzZW5kZW5zaGluXCA7CivooYDooYzpmpzlrrMgPiBrZWtrb3VzaG91Z2FpXCA7CivkurrnmoTos4fmupAgPiBqaW50ZWtpc2hpZ2VuXCA7CivlnLDmlrnooYzmlL8gPiBjaGlob3VneW91c2VpXCA7CivpnIflpKnli5XlnLAgPiBzaGludGVuZG91Y2hpXCA7CivnrKzkuInluJ3lm70gPiBkYWlzYW50ZWlrb2t1XCA7CivlpKnmloflrabogIUgPiB0ZW5tb25nYWt1c2hhXCA7Civmt7HlpJzmlL7pgIEgPiBzaGluJyd5YWhvdXNvdVwgOwor6Z+z5aOw5b2i5byPID4gb25zZWlrZWlzaGlraVwgOwor5Lqk6YCa5ZWP6aGMID4ga291dHN1dW1vbmRhaVwgOwor5YWs5YWx5oqV6LOHID4ga291a3lvdXRvdXNoaVwgOwor5YqD5pmC5Luj55qEID4ga2FrdWppZGFpdGVraVwgOwor5ZCM5peP5Lya56S+ID4gZG91em9rdWdhaXNoYVwgOwor5b+D55CG5o+P5YaZID4gc2hpbnJpYnlvdXNoYVwgOwor5oqA6KGT5rC05rqWID4gZ2lqdXRzdXN1aWp1blwgOwor55CG5a2m5Y2a5aOrID4gcmlnYWt1aGFrdXNoaVwgOwor5bGA5omA6bq76YWUID4ga3lva3VzaG9tYXN1aVwgOwor55Sj5Yil5Lya6K2wID4gc2FuYmV0c3VrYWlnaVwgOwor5bCx5a2m5YWQ56ulID4gc2h1dWdha3VqaWRvdVwgOwor56m65Lit57Wm5rK5ID4ga3V1Y2h1dWt5dXV5dVwgOwor5Zu96Zqb6KaP5qC8ID4ga29rdXNhaWtpa2FrdVwgOwor5a2m5qCh5paw6IGeID4gZ2Fra291c2hpbmJ1blwgOwor5oOF5aCx55Sj5qWtID4gam91aG91c2FuZ3lvdVwgOwor55m76Yyy55Wq5Y+3ID4gdG91cm9rdWJhbmdvdVwgOwor5Zyf5pyo5bel5a2mID4gZG9ib2t1a291Z2FrdVwgOwor55Sf5L2T5Y+N5b+cID4gc2VpdGFpaGFuJydub3VcIDsKK+ixoeW+tOS4u+e+qSA+IHNob3VjaG91c2h1Z2lcIDsKK+mfs+alveaVmeiCsiA+IG9uZ2FrdWt5b3Vpa3VcIDsKK+ims+a4rOWcsOeCuSA+IGthbnNva3VjaGl0ZW5cIDsKK+aKgOihk+WQjOWjqyA+IGdpanV0c3Vkb3VzaGlcIDsKK+W/nOaApeaUu+aSgyA+IG91a3l1dWtvdWdla2lcIDsKK+WQjOS7geaVmeS8miA+IGRvdWppbmt5b3VrYWlcIDsKK+Wun+WDjeaZgumWkyA+IGppdHN1ZG91amlrYW5cIDsKK+mdkuepuumnkOi7iiA+IGFvem9yYWNodXVzaGFcIDsKK+mbu+WKm+i8uOmAgSA+IGRlbnJ5b2t1eXVzb3VcIDsKK+i7jemaiuaVmeiCsiA+IGd1bnRhaWt5b3Vpa3VcIDsKK+mBoOa0i+a8gealrSA+IGVuJyd5b3VneW9neW91XCA7Civkv53pmpzljaDpoJggPiBob3Nob3VzZW5yeW91XCA7CivkuqTmj5vms5XliYcgPiBrb3VrYW5ob3Vzb2t1XCA7Civnib3lvJXnmYLms5UgPiBrZW4nJ2lucnlvdWhvdVwgOwor6aeF5Lyd56u26LWwID4gZWtpZGVua3lvdXNvdVwgOwor5YiH5q2v5om86IWVID4gc2Vzc2hpeWFrdXdhblwgOwor5Zuj5L2T5Lqk5riJID4gZGFudGFpa291c2hvdVwgOwor5Lqt5Li76Zai55m9ID4gdGVpc2h1a2FucGFrdVwgOwor5LiA5q615YuV6KmeID4gaWNoaWRhbmRvdXNoaVwgOwor5LiA6Iis5bmV5YOaID4gaXBwYW5iYWt1cnlvdVwgOwor5a+d5Y+w5YiX6LuKID4gc2hpbmRhaXJlc3NoYVwgOwor5oqV5pOy56u25oqAID4gdG91dGVraWt5b3VnaVwgOwor5rCX6LGh6YCa5aCxID4ga2lzaG91dHN1dWhvdVwgOwor6ZaL5p6Q5Y+w5ZywID4ga2Fpc2VraWRhaWNoaVwgOwor5a6f55So5Li7576pID4gaml0c3V5b3VzaHVnaVwgOwor5bel5aC05a6f57+SID4ga291am91amlzc2h1dVwgOwor5Lit57aZ6LK/5piTID4gY2h1dWtlaWJvdWVraVwgOwor5oCn6IO954m55oCnID4gc2Vpbm91dG9rdXNlaVwgOwor5pyA5b6M6YCa54mSID4gc2FpZ290c3V1Y2hvdVwgOwor5Zu96Zqb57WQ5amaID4ga29rdXNhaWtla2tvblwgOwor6YCg5pys5oqA6KGTID4gem91aG9uZ2lqdXRzdVwgOwor5aao5a6z5bel5L2cID4gYm91Z2Fpa291c2FrdVwgOwor5rCR5peP5oSP6K2YID4gbWluem9rdWlzaGlraVwgOwor6LSF5rKi5LiJ5pinID4gemVpdGFrdXphbm1haVwgOwor5YaZ55yf6KO954mIID4gc2hhc2hpbnNlaWhhblwgOwor5a2m5qCh5pWZ6IKyID4gZ2Fra291a3lvdWlrdVwgOwor6Zyn5Lit5L+h5Y+3ID4gbXVjaHV1c2hpbmdvdVwgOwor57K+56We54q25oWLID4gc2Vpc2hpbmpvdXRhaVwgOwor5ZWG56eR5aSn5a2mID4gc2hvdWthZGFpZ2FrdVwgOwor5YaZ55yf57WQ5amaID4gc2hhc2hpbmtla2tvblwgOwor5YWx5ZCM5oim57eaID4ga3lvdWRvdXNlbnNlblwgOwor54Gr5bGx5rS75YuVID4ga2F6YW5rYXRzdWRvdVwgOwor6bqm56iI57Sw5belID4gbXVnaXdhcmF6YWlrdVwgOwor5Yuk5Yq05omA5b6XID4ga2lucm91c2hvdG9rdVwgOwor6aaW55u45a6Y6YK4ID4gc2h1c2hvdWthbnRlaVwgOwor6Kqt5pu45LiJ5pinID4gZG9rdXNob3phbm1haVwgOwor5Lit562J5pWZ5ZOhID4gY2h1dXRvdWt5b3VpblwgOwor5LiA5qyh6Zu75rWBID4gaWNoaWppZGVucnl1dVwgOwor5Y+w5Lit6Zai5L+CID4gdGFpY2h1dWthbmtlaVwgOwor56eY5a+G57WQ56S+ID4gaGltaXRzdWtlc3NoYVwgOwor5p2x5pa55ouh5aSnID4gdG91aG91a2FrdWRhaVwgOwor6L+R6Zqj6Ku45Zu9ID4ga2lucmluc2hva29rdVwgOwor5Yq05YON6ZqO57SaID4gcm91ZG91a2Fpa3l1dVwgOwor6LKe5pON6Kaz5b+1ID4gdGVpc291a2FuJyduZW5cIDsKK+awkemWk+S8neaJvyA+IG1pbmthbmRlbnNob3VcIDsKK+iGgOiDsee1kOefsyA+IGJvdWtvdWtlc3Nla2lcIDsKK+i7ouWxhemAmuefpSA+IHRlbmt5b3RzdXVjaGlcIDsKK+e0lOato+aVsOWtpiA+IGp1bnNlaXN1dWdha3VcIDsKK+eUt+eIteWkq+S6uiA+IGRhbnNoYWt1ZnVqaW5cIDsKK+WhqeiUtemjn+WTgSA+IGVuem91c2hva3VoaW5cIDsKK+S4gOiHtOWbo+e1kCA+IGl0Y2hpZGFua2V0c3VcIDsKK+itpuWvn+WbveWutiA+IGtlaXNhdHN1a29ra2FcIDsKK+e1jOa4iOeZveabuCA+IGtlaXphaWhha3VzaG9cIDsKK+epgOWAieWcsOW4ryA+IGtva3Vzb3VjaGl0YWlcIDsKK+eSsOWig+S6i+alrSA+IGthbmt5b3VqaWd5b3VcIDsKK+e3j+WQiOWVhuekviA+IHNvdWdvdXNob3VzaGFcIDsKK+WwkeW5tOWKtOWDjSA+IHNob3VuZW5yb3Vkb3VcIDsKK+S4gOaMmeS4oeW+lyA+IGlra3lvcnlvdXRva3VcIDsKK+a4rOWumuijhee9riA+IHNva3V0ZWlzb3VjaGlcIDsKK+WJjeihm+e+juihkyA+IHplbicnZWliaWp1dHN1XCA7Civnmobml6LmnIjpo58gPiBrYWlraWdlc3Nob2t1XCA7Civlhazlm6PkvY/lroUgPiBrb3VkYW5qdXV0YWt1XCA7CivoqK3lgpnmipXos4cgPiBzZXRzdWJpdG91c2hpXCA7Civml6XluLjojLbpo68gPiBuaWNoaWpvdXNhaGFuXCA7CivnvqTpm4blv4PnkIYgPiBndW5zaHV1c2hpbnJpXCA7Civnmb7miKbnt7Tno6ggPiBoeWFrdXNlbnJlbm1hXCA7CivljbPoiIjoqankurogPiBzb2treW91c2hpamluXCA7CivlloTpmqPmlL/nrZYgPiB6ZW5yaW5zZWlzYWt1XCA7CivliY3lj5flj47nm4ogPiBtYWV1a2VzaHV1ZWtpXCA7Civlm73msJHnmoblhbUgPiBrb2t1bWlua2FpaGVpXCA7Civpqqjnm7jlrabogIUgPiBrb3Nzb3VnYWt1c2hhXCA7CivmiLjliKXoqKrllY8gPiBrb2JldHN1aG91bW9uXCA7CivniIblvL7lo7DmmI4gPiBiYWt1ZGFuc2VpbWVpXCA7CivpgZPmpb3mga/lrZAgPiBkb3VyYWt1bXVzdWtvXCA7CivnmZLlgrfntYTnuZQgPiB5dXNob3Vzb3NoaWtpXCA7CivnlLflrZDlrabnlJ8gPiBkYW5zaGlnYWt1c2VpXCA7CivosqvpgJrpioPlibUgPiBrYW50c3V1anV1c291XCA7CivmlrDpg47mlrDlqaYgPiBzaGlucm91c2hpbnB1XCA7CivnqbrmjLrkvZzmiKYgPiBrdXV0ZWlzYWt1c2VuXCA7CivphY3nrqHlt6Xmpa0gPiBoYWlrYW5rb3VneW91XCA7CivlroflrpnpgJrkv6EgPiB1Y2h1dXRzdXVzaGluXCA7CivnrYnmr5TmlbDliJcgPiB0b3VoaXN1dXJldHN1XCA7CivluorkuIrmtbjmsLQgPiB5dWthdWVzaGluc3VpXCA7Civoh6rnhLbnkrDlooMgPiBzaGl6ZW5rYW5reW91XCA7Civml6XkuK3miKbkuokgPiBuaXRjaHV1c2Vuc291XCA7CivmqJnpoYzpn7Pmpb0gPiBoeW91ZGFpb25nYWt1XCA7CivliqPnrYnopIflkIggPiByZXR0b3VmdWt1Z291XCA7CivnnLznkIPpioDooYwgPiBnYW5reXV1Z2lua291XCA7CivluILloLTliIbmnpAgPiBzaGlqb3VidW5zZWtpXCA7CivkuK3plpPoqabpqJMgPiBjaHV1a2Fuc2hpa2VuXCA7CivoqLzliLjkvJrnpL4gPiBzaG91a2VuZ2Fpc2hhXCA7CivmvI/oqbHntZDlkIggPiByb3V3YWdldHN1Z291XCA7Civlm73pmpvntJvkuokgPiBrb2t1c2FpZnVuc291XCA7Civpm4blm6PooYzli5UgPiBzaHV1ZGFua291ZG91XCA7Civou4rkuKHnuKbpmoogPiBzaGFyeW91anV1dGFpXCA7CivkuqTku6Pmk43mpa0gPiBrb3V0YWlzb3VneW91XCA7CivkvZzogIXmnKroqbMgPiBzYWt1c2hhbWlzaG91XCA7Civopb/mnKzpoZjlr7ogPiBuaXNoaWhvbmdhbmppXCA7CivmsLjku6PlgJ/lnLAgPiBlaXRhaXNoYWt1Y2hpXCA7CivlrZDlrq7nrYvohasgPiBzaGlreXV1a2luc2h1XCA7CivliIfmiYvokpDpm4YgPiBraXR0ZXNodXVzaHV1XCA7CivlrpjosrvnlZnlraYgPiBrYW5waXJ5dXVnYWt1XCA7Civnt6jpm4bkuLvlubkgPiBoZW5zaHV1c2h1a2FuXCA7CivnlJ/nlKPmioDooZMgPiBzZWlzYW5naWp1dHN1XCA7CivmsLTlubPlv5zlipsgPiBzdWloZWlvdXJ5b2t1XCA7CivlhYjnq6/mioDooZMgPiBzZW50YW5naWp1dHN1XCA7CivnpZ7lrq7nkIPloLQgPiBqaW5ndXVreXV1am91XCA7Civpn7Pmpb3lpKflraYgPiBvbmdha3VkYWlnYWt1XCA7CivkvrXnlaXooYzngrogPiBzaGlucnlha3Vrb3VpXCA7CivlhaXlsITlhYnnt5ogPiBueXV1c2hha291c2VuXCA7CivkuInop5Llh73mlbAgPiBzYW5rYWt1a2Fuc3V1XCA7Civnq4vkvZPlhpnnnJ8gPiByaXR0YWlzaGFzaGluXCA7Civlm73pmpvplqLkv4IgPiBrb2t1c2Fpa2Fua2VpXCA7CivmtYTlnJ/nnJ/lrpcgPiBqb3Vkb3NoaW5zaHV1XCA7CivkuInlm73lkIznm58gPiBzYW5nb2t1ZG91bWVpXCA7CivpqZrlpKnli5XlnLAgPiBreW91dGVuZG91Y2hpXCA7CivnqbrkuK3mu5HotbAgPiBrdXVjaHV1a2Fzc291XCA7Civlm73pmpvllY/poYwgPiBrb2t1c2FpbW9uZGFpXCA7CivnpL7lpJbnmbrkv6EgPiBzaGFnYWloYXNzaGluXCA7Civot7PmooHot4vmiYggPiBjaG91cnlvdWJha2tvXCA7Civpm4bkuK3noLLngasgPiBzaHV1Y2h1dWhvdWthXCA7CivkurrplpPlt6XlraYgPiBuaW5nZW5rb3VnYWt1XCA7CivouqvlhYPnorroqo0gPiBtaW1vdG9rYWt1bmluXCA7Civlt67liKXlvoXpgYcgPiBzYWJldHN1dGFpZ3V1XCA7CivljYPps6XmoLzlrZAgPiBjaGlkb3JpZ291c2hpXCA7Civku4/lg4/kuozkvZMgPiBidXRzdXpvdW5pdGFpXCA7Civlhajmma/lhpnnnJ8gPiB6ZW5rZWlzaGFzaGluXCA7CivlhazlhbHlm6PkvZMgPiBrb3VreW91ZGFudGFpXCA7CivloIbnqY3ovKrlu7sgPiB0YWlzZWtpcmluJyduZVwgOwor5LiA6Iis55Sf5rS7ID4gaXBwYW5zZWlrYXRzdVwgOwor5qiq5rKz6Zu75qmfID4geW9rb2dhd2FkZW5raVwgOwor5Lit57aZ5pS+6YCBID4gY2h1dWtlaWhvdXNvdVwgOwor56aB5q2i5p2h57SEID4ga2luc2hpam91eWFrdVwgOwor5YWo5Zu95pS+6YCBID4gemVua29rdWhvdXNvdVwgOwor5YWa5Yip5YWa55WlID4gdG91cml0b3VyeWFrdVwgOwor5aSW5Lqk5Lqk5riJID4gZ2Fpa291a291c2hvdVwgOwor5a2m5aOr6Zmi6LOeID4gZ2FrdXNoaWluc2hvdVwgOwor6KGM5YuV6KiI55S7ID4ga291ZG91a2Vpa2FrdVwgOwor5YWx5pyJ6LKh55SjID4ga3lvdXl1dXphaXNhblwgOwor6YC45aSx5Yip55uKID4gaXNzaGl0c3VyaWVraVwgOwor6L6y5Zyw5pS56Z2pID4gbm91Y2hpa2Fpa2FrdVwgOwor5Lqk6YCa5riL5rueID4ga291dHN1dWp1dXRhaVwgOwor56We57WM57Sw6IOeID4gc2hpbmtlaXNhaWJvdVwgOwor5qWt55WM5Zuj5L2TID4gZ3lvdWthaWRhbnRhaVwgOwor5Yun5ZaE5oey5oKqID4ga2FuemVuY2hvdWFrdVwgOwor5YWx55Sj6Zmj5Za2ID4ga3lvdXNhbmppbicnZWlcIDsKK+asoOW4reijgeWIpCA+IGtlc3Nla2lzYWliYW5cIDsKK+WNiumdqeijheS4gSA+IGhhbmthd2Fzb3V0ZWlcIDsKK+ertuS6ieW4guWgtCA+IGt5b3Vzb3VzaGlqb3VcIDsKK+efpeeahOiyoeeUoyA+IGNoaXRla2l6YWlzYW5cIDsKK+WNl+WMl+WVj+mhjCA+IG5hbmJva3Vtb25kYWlcIDsKK+eqgeeEtuWkieeVsCA+IHRvdHN1emVuaGVuJydpXCA7Civpganlv5zpmpzlrrMgPiB0ZWtpb3VzaG91Z2FpXCA7Civmt7fovInosqjniakgPiBrb25zYWlrYW1vdHN1XCA7CivogJDpmpzlrrPmgKcgPiB0YWlzaG91Z2Fpc2VpXCA7Civov5Hopqrnm7jlp6YgPiBraW5zaGluc291a2FuXCA7CivlpKfpgZPllYbkurogPiBkYWlkb3VzaG91bmluXCA7CivkuI3kv6Hku7vmoYggPiBmdXNoaW4nJ25pbicnYW5cIDsKK+WuruW7t+mfs+alvSA+IGt5dXV0ZWlvbmdha3VcIDsKK+e3qeihneWcsOW4ryA+IGthbnNob3VjaGl0YWlcIDsKK+ihgOa4heazqOWwhCA+IGtlc3NlaWNodXVzaGFcIDsKK+WKoOezlueyieS5syA+IGthdG91ZnVuJydueXV1XCA7Civkv6HosqnkvJrnpL4gPiBzaGlucGFuZ2Fpc2hhXCA7CivljYHkuIDnjK7ph5EgPiBqdXVpY2hpa2Vua2luXCA7Civnpo/npYnkuovmpa0gPiBmdWt1c2hpamlneW91XCA7CivmmpbooaPpo73po58gPiBkYW4nJ2lob3VzaG9rdVwgOwor5rqW5rG65Yud5oimID4ganVua2Vzc2hvdXNlblwgOwor6YeO55Sf5YuV54mpID4geWFzZWlkb3VidXRzdVwgOwor56S+5Lya54++6LGhID4gc2hha2FpZ2Vuc2hvdVwgOwor5YyX5qyn6Ku45Zu9ID4gaG9rdW91c2hva29rdVwgOwor6Ieq54S25LyR5LyaID4gc2hpemVua3l1dWthaVwgOwor6Imv5LqM5Y2D55+zID4gcnlvdW5pc2Vuc2VraVwgOwor5paH5a2m6Z2S5bm0ID4gYnVuZ2FrdXNlaW5lblwgOwor5L+u6YGT6KqT6aGYID4gc2h1dWRvdXNlaWdhblwgOwor6aOf57On5o+05YqpID4gc2hva3VyeW91ZW5qb1wgOwor6KGG6K2w5LiA5rG6ID4gc2h1dWdpaWtrZXRzdVwgOwor6YW457Sg5ZC45YWlID4gc2Fuc29reXV1bnl1dVwgOwor55Sf6Iet5Z2K5Li7ID4gbmFtYWd1c2Fib3V6dVwgOwor6LuN5LqL5pa96KitID4gZ3VuamlzaGlzZXRzdVwgOwor6YO15L6/5oyv5pu/ID4geXV1YmluZnVyaWthZVwgOwor5pa56Yed5rG65a6aID4gaG91c2hpbmtldHRlaVwgOwor5bCx5qWt5pmC6ZaTID4gc2h1dWd5b3VqaWthblwgOwor5Lq65Y+j5oqR5Yi2ID4gamlua291eW9rdXNlaVwgOwor6LuN5Lq65oGp57WmID4gZ3VuamluJydvbmt5dXVcIDsKK+S6uuW3pea1geeUoyA+IGppbmtvdXJ5dXV6YW5cIDsKK+ecn+WJo+WLneiyoCA+IHNoaW5rZW5zaG91YnVcIDsKK+maoOmAgOeUn+a0uyA+IGludGFpc2Vpa2F0c3VcIDsKK+W9ueWToeWgsemFrCA+IHlha3VpbmhvdXNodXVcIDsKK+WJsuW8leaZgumWkyA+IHdhcmliaWtpamlrYW5cIDsKK+eZveiRoeiQhOmFkiA+IHNoaXJvYnVkb3VzaHVcIDsKK+WItuacjeWItuW4vSA+IHNlaWZ1a3VzZWlib3VcIDsKK+WPpOiJsuiSvOeEtiA+IGtvc2hva3Vzb3V6ZW5cIDsKK+eVmee9rumDteS+vyA+IHRvbWVva2l5dXViaW5cIDsKK+ioiOeUu+WAkueUoyA+IGtlaWtha3V0b3VzYW5cIDsKK+eahuaXouaXpemjnyA+IGthaWtpbmlzc2hva3VcIDsKK+mAo+aIpumAo+WLnSA+IHJlbnNlbnJlbnNob3VcIDsKK+S6q+alveS4u+e+qSA+IGt5b3VyYWt1c2h1Z2lcIDsKK+W6g+WRiuWqkuS9kyA+IGtvdWtva3ViYWl0YWlcIDsKK+WbveawkeWvqeafuyA+IGtva3VtaW5zaGluc2FcIDsKK+a3t+WjsOWQiOWUsSA+IGtvbnNlaWdhc3Nob3VcIDsKK+elnumBk+S/oeiAhSA+IHNoaW50b3VzaGluamFcIDsKK+Wun+azgeaUvumAgSA+IGppa2t5b3Vob3Vzb3VcIDsKK+WIhuWFieWIhuaekCA+IGJ1bmtvdWJ1bnNla2lcIDsKK+eUo+alree1hOWQiCA+IHNhbmd5b3VrdW1pYWlcIDsKK+WPluaNqOmBuOaKniA+IHNodXNoYXNlbnRha3VcIDsKK+WcsOmch+WtpuiAhSA+IGppc2hpbmdha3VzaGFcIDsKK+Wkp+mYquWkp+WtpiA+IG9vc2FrYWRhaWdha3VcIDsKK+eglOeptuaWueazlSA+IGtlbmt5dXVob3Vob3VcIDsKK+aWremDiuertui1sCA+IGRhbmtvdWt5b3Vzb3VcIDsKK+avlOi8g+aWh+WtpiA+IGhpa2FrdWJ1bmdha3VcIDsKK+Wjq+i+suW3peWVhiA+IHNoaW5vdWtvdXNob3VcIDsKK+S5vuWdpOS4gOaTsiA+IGtlbmtvbicnaXR0ZWtpXCA7CivlgZzmraLkv6Hlj7cgPiB0ZWlzaGlzaGluZ291XCA7Civlu7rnr4nnj77loLQgPiBrZW5jaGlrdWdlbmJhXCA7Civlm73pgKPlpKfkvb8gPiBrb2t1cmVudGFpc2hpXCA7CivnnInnm67np4DpupcgPiBiaW1va3VzaHV1cmVpXCA7Civmg4Xnt5LpmpzlrrMgPiBqb3VzaG9zaG91Z2FpXCA7CivorLnos4DmlrDlubQgPiBraW5nYXNoaW4nJ25lblwgOwor57e057+S5ZWP6aGMID4gcmVuc2h1dW1vbmRhaVwgOwor5Lq655Wc54Sh5a6zID4gamluY2hpa3VtdWdhaVwgOwor5LiK5rWB56S+5LyaID4gam91cnl1dXNoYWthaVwgOwor6Zm45rW356m66LuNID4gcmlrdWthaWt1dWd1blwgOwor55yf55u46Kq/5p+7ID4gc2hpbnNvdWNob3VzYVwgOwor6KGo5pWs6Kiq5ZWPID4gaHlvdWtlaWhvdW1vblwgOwor5pmu6YCa5pWZ6IKyID4gZnV0c3V1a3lvdWlrdVwgOwor5YWs5rCR5pWZ6IKyID4ga291bWlua3lvdWlrdVwgOwor5rC05a6z5a++562WID4gc3VpZ2FpdGFpc2FrdVwgOwor5bCG5p2l5bGV5pybID4gc2hvdXJhaXRlbmJvdVwgOwor5bCL5ZWP6Kq/5pu4ID4gamlubW9uY2hvdXNob1wgOwor552A5by+6Led6ZuiID4gY2hha3VkYW5reW9yaVwgOwor5aSp55yf54ib5ryrID4gdGVuc2hpbnJhbm1hblwgOwor5Y+N5bCE56We57WMID4gaGFuc2hhc2hpbmtlaVwgOwor6Z2S6Imy55Sz5ZGKID4gYW9pcm9zaGlua29rdVwgOwor6YCg5b2i576O6KGTID4gem91a2VpYmlqdXRzdVwgOwor5Y+y55qE54++5ZyoID4gc2hpdGVraWdlbnphaVwgOwor5YaF6YOo55Sf5rS7ID4gbmFpYnVzZWlrYXRzdVwgOwor5qeL6YCg6KiY6L+wID4ga291em91a2lqdXRzdVwgOwor5YWx5a2Y5YWx5qCEID4ga3lvdXpvbmt5b3VlaVwgOwor5biv54q255ax55a5ID4gdGFpam91aG91c2hpblwgOwor54++5a6f5Li7576pID4gZ2Vuaml0c3VzaHVnaVwgOwor5bm044CF5q2z44CFID4gbmVuJyduZW5zYWlzYWlcIDsKK+eglOeptuirluaWhyA+IGtlbmt5dXVyb25idW5cIDsKK+acgOe1gue3qOaIkCA+IHNhaXNodXVoZW5zZWlcIDsKK+WwguS/ruWtpuagoSA+IHNlbnNodXVnYWtrb3VcIDsKK+WPs+S4reaLrOW8pyA+IG1pZ2ljaHV1a2Fra29cIDsKK+S/rumBk+mZoumVtyA+IHNodXVkb3VpbmNob3VcIDsKK+Wutuedo+ebuOe2miA+IGthdG9rdXNvdXpva3VcIDsKK+Wuv+WRveirluiAhSA+IHNodWt1bWVpcm9uamFcIDsKK+a4qeW6puiqv+evgCA+IG9uZG9jaG91c2V0c3VcIDsKK+iogOiqnuiDveWKmyA+IGdlbmdvbm91cnlva3VcIDsKK+WIqea9pOi/veaxgiA+IHJpanVudHN1aWt5dXVcIDsKK+e1seeOh+eQhuirliA+IHRvdXNvdHN1cmlyb25cIDsKK+iJr+miqOe+juS/lyA+IHJ5b3VmdXViaXpva3VcIDsKK+WbveawkeWtpuagoSA+IGtva3VtaW5nYWtrb3VcIDsKK+WNmOeCuueUn+auliA+IHRhbicnaXNlaXNob2t1XCA7CivkuozljYHml6XpvKAgPiBoYXRzdWthbmV6dW1pXCA7Civosr/mmJPlj47mlK8gPiBib3Vla2lzaHV1c2hpXCA7Civkurrlt6Xlv4Poh5MgPiBqaW5rb3VzaGluem91XCA7CivlpKnmtKXml6Xll6MgPiBhbWF0c3VoaXRzdWdpXCA7CivnvqTpm4TlibLmi6AgPiBndW4nJ3l1dWtha2t5b1wgOwor5YWI5aSp5qKF5q+SID4gc2VudGVuYmFpZG9rdVwgOwor5Lq65bel5b+D6IK6ID4gamlua291c2hpbmJhaVwgOwor5ZG85ZC45Lit5p6iID4ga29reXV1Y2h1dXN1dVwgOwor6aeQ55WZ6YOo6ZqKID4gY2h1dXJ5dXVidXRhaVwgOwor5q6655Sf56aB5patID4gc2Vzc2hvdWtpbmRhblwgOwor54Sh6Yqt6YGK6IiIID4gbXVzZW4nJ3l1dWt5b3VcIDsKK+S4u+W4reWFqOaoqSA+IHNodXNla2l6ZW5rZW5cIDsKK+eUsuS5meS4meS4gSA+IGtvdW90c3VoZWl0ZWlcIDsKK+ijnOasoOmBuOaMmSA+IGhva2V0c3VzZW5reW9cIDsKK+W+rumHj+WIhuaekCA+IGJpcnlvdWJ1bnNla2lcIDsKK+WcsOWfn+S7o+ihqCA+IGNoaWlraWRhaWh5b3VcIDsKK+eUu+S4gOS4u+e+qSA+IGtha3VpdHN1c2h1Z2lcIDsKK+S6rOmDveWkp+WtpiA+IGt5b3V0b2RhaWdha3VcIDsKK+eUn+S9k+W3peWtpiA+IHNlaXRhaWtvdWdha3VcIDsKK+azoeayq+WAmeijnCA+IGhvdW1hdHN1a291aG9cIDsKK+ebuOe2muiyoeeUoyA+IHNvdXpva3V6YWlzYW5cIDsKK+WvvuaIpuaIkOe4viA+IHRhaXNlbnNlaXNla2lcIDsKK+Wbvemam+epuua4ryA+IGtva3VzYWlrdXVrb3VcIDsKK+WbvemAo+e3j+S8miA+IGtva3VyZW5zb3VrYWlcIDsKK+WwgumWgOaVmeiCsiA+IHNlbm1vbmt5b3Vpa3VcIDsKK+WWtualreWgseWRiiA+IGVpZ3lvdWhvdWtva3VcIDsKK+ihgOa2suaknOafuyA+IGtldHN1ZWtpa2Vuc2FcIDsKK+mdqeaWsOS4u+e+qSA+IGtha3VzaGluc2h1Z2lcIDsKK+mcsuWHuuaZgumWkyA+IHJvc2h1dHN1amlrYW5cIDsKK+aKleelqOeUqOe0mSA+IHRvdWh5b3V5b3VzaGlcIDsKK+iWrOeUqOefs+m5uCA+IHlha3V5b3VzZWtrZW5cIDsKK+WNmOeLrOihjOWLlSA+IHRhbmRva3Vrb3Vkb3VcIDsKK+Wkq+WppueUn+a0uyA+IGZ1dWZ1c2Vpa2F0c3VcIDsKK+iCieS9k+mWouS/giA+IG5pa3V0YWlrYW5rZWlcIDsKK+i7jeS6i+itpuWvnyA+IGd1bmppa2Vpc2F0c3VcIDsKK+aWsOWpmuaXheihjCA+IHNoaW5rb25yeW9rb3VcIDsKK+mZveaAp+WPjeW/nCA+IHlvdXNlaWhhbicnbm91XCA7Civou7jlt67lv5zlipsgPiBqaWt1c2FvdXJ5b2t1XCA7CivkurrpoZ7lrabogIUgPiBqaW5ydWlnYWt1c2hhXCA7Civmrablo6vmsJfos6ogPiBidXNoaWtpc2hpdHN1XCA7CivnrKzkuIDkurrogIUgPiBkYWlpY2hpbmluc2hhXCA7Civlrrbluq3nlJ/mtLsgPiBrYXRlaXNlaWthdHN1XCA7CivljbHpmbrkurrniakgPiBraWtlbmppbmJ1dHN1XCA7CivlpKflrabmlZnmjoggPiBkYWlnYWt1a3lvdWp1XCA7CivliY3pgLLpgYvli5UgPiB6ZW5zaGluJyd1bmRvdVwgOwor5rS75YuV5oiQ5p6cID4ga2F0c3Vkb3VzZWlrYVwgOwor57eP5ZCI5Y+O5pSvID4gc291Z291c2h1dXNoaVwgOwor5ZCE6aeF5YGc6LuKID4ga2FrdWVraXRlaXNoYVwgOwor6Kem5aqS5L2c55SoID4gc2hva3ViYWlzYXlvdVwgOwor56eR5a2m5oqA6KGTID4ga2FnYWt1Z2lqdXRzdVwgOwor5Y2w5Yi355So57SZID4gaW5zYXRzdXlvdXNoaVwgOwor5Lq655qE6Ki85ougID4gamludGVraXNob3Vrb1wgOwor5oqX6K2w5rS75YuVID4ga291Z2lrYXRzdWRvdVwgOwor5YWI5Y+W5b6X54K5ID4gc2Vuc2h1dG9rdXRlblwgOwor6KSH5ZCI5LyB5qWtID4gZnVrdWdvdWtpZ3lvdVwgOwor54Sh5beu5Yil57SaID4gbXVzYWJldHN1a3l1dVwgOwor5aSa5Zu957GN6LuNID4gdGFrb2t1c2VraWd1blwgOwor56u25LqJ5L6h5qC8ID4ga3lvdXNvdWtha2FrdVwgOwor56S+5Lya5Lq65p6gID4gc2hha2Fpamlud2FrdVwgOwor5ZWG5qWt5Zyw5Yy6ID4gc2hvdWd5b3VjaGlrdVwgOwor6KGo5bGk5qeL6YCgID4gaHlvdXNvdWtvdXpvdVwgOwor57K+56We6KGb55SfID4gc2Vpc2hpbicnZWlzZWlcIDsKK+iIquepuuWGmeecnyA+IGtvdWt1dXNoYXNoaW5cIDsKK+S4iuaYh+awl+a1gSA+IGpvdXNob3VraXJ5dXVcIDsKK+WMl+Wkp+ilv+a0iyA+IGtpdGF0YWlzZWl5b3VcIDsKK+ihjOaUv+aMh+WwjiA+IGd5b3VzZWlzaGlkb3VcIDsKK+Wumue9rua8gealrSA+IHRlaWNoaWd5b2d5b3VcIDsKK+acgOmrmOe0muWTgSA+IHNhaWtvdWt5dXVoaW5cIDsKK+WHuumgreWRveS7pCA+IHNodXR0b3VtZWlyZWlcIDsKK+WHuuihgOmBjuWkmiA+IHNodWtrZXRzdWthdGFcIDsKK+mbu+WtkOWHuueJiCA+IGRlbnNoaXNodXBwYW5cIDsKK+iJsue0oOe0sOiDniA+IHNoaWtpc29zYWlib3VcIDsKK+iKseWrgeiho+ijsyA+IGhhbmF5b21laXNob3VcIDsKK+Wwj+WPo+ePvumHkSA+IGtvZ3VjaGlnZW5raW5cIDsKK+WNmuWtpuWkmuaJjSA+IGhha3VnYWt1dGFzYWlcIDsKK+WkluanmOWkp+WQjSA+IHRvemFtYWRhaW15b3VcIDsKK+WbveawkeS4u+aoqSA+IGtva3VtaW5zaHVrZW5cIDsKK+WFrOmHkeaoqumgmCA+IGtvdWtpbicnb3VyeW91XCA7Civov5Hpg4rovrLmpa0gPiBraW5rb3Vub3VneW91XCA7Civlhajlm73lpKfkvJogPiB6ZW5rb2t1dGFpa2FpXCA7CivlkJ/pgYroqankurogPiBnaW4nJ3l1dXNoaWppblwgOwor5Ya35rC05pGp5pOmID4gcmVpc3VpbWFzYXRzdVwgOwor5puy5a2m6Zi/5LiWID4ga3lva3VnYWt1YXNlaVwgOwor5L6h5qC856u25LqJID4ga2FrYWt1a3lvdXNvdVwgOwor56aB5pat55eH54q2ID4ga2luZGFuc2hvdWpvdVwgOwor56uc5pSY6JmO5pCPID4gcnl1dWpvdWtvaGFrdVwgOwor5q2j5ZGz6YeN6YePID4gc2hvdW1panV1cnlvdVwgOwor5YWs6Ki85b255aC0ID4ga291c2hvdXlha3ViYVwgOwor5riF5ra86aOy5paZID4gc2VpcnlvdWlucnlvdVwgOwor5q+b566h54++6LGhID4gbW91a2FuZ2Vuc2hvdVwgOwor5L2c5oim5Zyw5Z+fID4gc2FrdXNlbmNoaWlraVwgOwor5Ye65by15peF6LK7ID4gc2h1dGNob3VyeW9oaVwgOwor5pS+6YCB55Wq57WEID4gaG91c291YmFuZ3VtaVwgOwor5rC45LmF56OB55+zID4gZWlreXV1amlzaGFrdVwgOwor5aOy5o6b5YuY5a6aID4gdXJpa2FrZWthbmpvdVwgOwor6ZaT5a6u5rW35bOhID4gbWFtaXlha2Fpa3lvdVwgOwor542E5Lit5pel6KiYID4gZ29rdWNodXVuaWtraVwgOwor5rKI5oCd6buZ6ICDID4gY2hpbnNoaW1va2tvdVwgOwor6LaF5Zu95a6255qEID4gY2hvdWtva2thdGVraVwgOwor6Ziy54Gr5bu656+JID4gYm91a2FrZW5jaGlrdVwgOwor6YeR6J6N5biC5aC0ID4ga2luJyd5dXVzaGlqb3VcIDsKK+mbhuWbo+W/g+eQhiA+IHNodXVkYW5zaGlucmlcIDsKK+WFpeekvuippumokyA+IG55dXVzaGFzaGlrZW5cIDsKK+mBuOaKnuWApOe+pCA+IHNlbnRha3VjaGlndW5cIDsKK+eiuueOh+iqpOW3riA+IGtha3VyaXRzdWdvc2FcIDsKK+esrOWbm+majue0miA+IGRhaXlvbmthaWt5dXVcIDsKK+mAjemBpeWtpua0viA+IHNob3V5b3VnYWt1aGFcIDsKK+m7kueCueWRqOacnyA+IGtva3V0ZW5zaHV1a2lcIDsKK+e+juihk+WtpuagoSA+IGJpanV0c3VnYWtrb3VcIDsKK+WNiuatu+WNiueUnyA+IGhhbnNoaWhhbnNob3VcIDsKK+W/q+mAn+mbu+i7iiA+IGthaXNva3VkZW5zaGFcIDsKK+WNl+WMl+aIpuS6iSA+IG5hbmJva3VzZW5zb3VcIDsKK+Wwj+WFkOWWmOaBryA+IHNob3VuaXplbnNva3VcIDsKK+WGheaUv+W5sua4iSA+IG5haXNlaWthbnNob3VcIDsKK+WFrOW5s+aUv+etliA+IGtvdWhlaXNlaXNha3VcIDsKK+W3pealreimj+agvCA+IGtvdWd5b3VraWtha3VcIDsKK+Wbm+inkuWbm+mdoiA+IHNoaWtha3VzaGltZW5cIDsKK+WwkeW5tOWwkeWlsyA+IHNob3VuZW5zaG91am9cIDsKK+WGjeiyqealreiAhSA+IHNhaWhhbmd5b3VzaGFcIDsKK+i2hemrmOmAn+W6piA+IGNob3Vrb3Vzb2t1ZG9cIDsKK+iqv+afu+WgseWRiiA+IGNob3VzYWhvdWtva3VcIDsKK+a1t+mbo+WvqeWIpCA+IGthaW5hbnNoaW5wYW5cIDsKK+eQhuWtpuS/ruWjqyA+IHJpZ2FrdXNodXVzaGlcIDsKK+WklueahOagueaLoCA+IGdhaXRla2lrb25reW9cIDsKK+eUn+WRveW3peWtpiA+IHNlaW1laWtvdWdha3VcIDsKK+WkqeS9keelnuWKqSA+IHRlbicneXV1c2hpbmpvXCA7CivlpJblm73ml4XooYwgPiBnYWlrb2t1cnlva291XCA7CivlhbHlkIzmsLTmoJMgPiBreW91ZG91c3Vpc2VuXCA7Civmi6HlpKflnYfooaEgPiBrYWt1ZGFpa2lua291XCA7Civlh7Hml4vlsIbou40gPiBnYWlzZW5zaG91Z3VuXCA7Civpm4bnqY3lm57ot68gPiBzaHV1c2VraWthaXJvXCA7Civoo77ph47nlKPmpa0gPiBzdXNvbm9zYW5neW91XCA7Civpjq7prYLluLDnpZ4gPiBjaGlua29ua2lzaGluXCA7CivlkIjmoLzogIXlkI0gPiBnb3VrYWt1c2hhbWVpXCA7CivmnInos4fmoLzogIUgPiB5dXVzaGlrYWt1c2hhXCA7CivljJblrablj43lv5wgPiBrYWdha3VoYW4nJ25vdVwgOwor6ZyA6KaB5L6b57WmID4ganV5b3VreW91a3l1dVwgOwor5Y+s5Zaa5Luk54q2ID4gc2hvdWthbnJlaWpvdVwgOwor6Kmm6aiT5YuJ5by3ID4gc2hpa2VuYmVua3lvdVwgOwor5rip5a6k5Yq55p6cID4gb25zaGl0c3Vrb3VrYVwgOwor5pyJ6Ymk5p2h6JmrID4geXV1a291am91Y2h1dVwgOwor5YaF55qE5qC55ougID4gbmFpdGVraWtvbmt5b1wgOwor6L+R5rW35ryB5qWtID4ga2lua2FpZ3lvZ3lvdVwgOwor5rG65oim5oqV56WoID4ga2Vzc2VudG91aHlvdVwgOwor5YWx5ZCM56S+5LyaID4ga3lvdWRvdXNoYWthaVwgOwor5ZSQ6I2J5qih5qeYID4ga2FyYWt1c2Ftb3lvdVwgOwor5YyF55qu5YiH5patID4gaG91aGlzZXRzdWRhblwgOwor5a6a5pyf5Y+W5byVID4gdGVpa2l0b3JpaGlraVwgOwor5Lm+54el5rSX5r+vID4ga2Fuc291c2VudGFrdVwgOwor6ZuG5ZCI5ZCN6KmeID4gc2h1dWdvdW1laXNoaVwgOwor5bCP5Z6L5paw6IGeID4ga29nYXRhc2hpbmJ1blwgOwor5Yy755mC5pa96KitID4gaXJ5b3VzaGlzZXRzdVwgOwor5YuV54mp5rK56ISCID4gZG91YnV0c3V5dXNoaVwgOwor5Y+N6Z2i5pWZ5birID4gaGFubWVua3lvdXNoaVwgOwor5pel5bi45Lya6KmxID4gbmljaGlqb3VrYWl3YVwgOwor6Ly45YWl5qWt6ICFID4geXVueXV1Z3lvdXNoYVwgOwor5qiZ5rqW5L6h5qC8ID4gaHlvdWp1bmtha2FrdVwgOwor5LiN5aaK5omL6KGTID4gZnVuaW5zaHVqdXRzdVwgOwor5bGx54yr5LqJ6K2wID4geWFtYW5la29zb3VnaVwgOwor5Ye65LiW6ZaT55qEID4gc2h1c3Nla2VudGVraVwgOwor5bm05Lit6KGM5LqLID4gbmVuY2h1dWd5b3VqaVwgOwor6Y6M5YCJ5pmC5LujID4ga2FtYWt1cmFqaWRhaVwgOwor54KO55eH55eF5bejID4gZW5zaG91YnlvdXNvdVwgOwor5rOo5oSP5Lq654mpID4gY2h1dWlqaW5idXRzdVwgOwor5pel5rSq6Kaq5ZaEID4gbmlra291c2hpbnplblwgOwor6L+95Yqg5rOo5paHID4gdHN1aWthY2h1dW1vblwgOwor562G5YaZ55Wl5a2XID4gaGlzc2hhcnlha3VqaVwgOwor54yu6KGA6YGL5YuVID4ga2Vua2V0c3V1bmRvdVwgOwor6Iie5Y+w6Iq46KGTID4gYnV0YWlnZWlqdXRzdVwgOwor6Kmm6aiT55uj552jID4gc2hpa2Vua2FudG9rdVwgOwor5pKk6aCt5b655bC+ID4gdGV0dG91dGV0c3ViaVwgOwor55a+6aKo6L+F6Zu3ID4gc2hpcHB1dWppbnJhaVwgOwor5biC5aC055Kw5aKDID4gc2hpam91a2Fua3lvdVwgOwor5Y6f5oiQ5bKp55+zID4gZ2Vuc2VpZ2Fuc2VraVwgOwor5YmN5aSn57Wx6aCYID4gemVuZGFpdG91cnlvdVwgOwor5by35Yi26YCB6YKEID4ga3lvdXNlaXNvdWthblwgOwor5ZCM5qWt57WE5ZCIID4gZG91Z3lvdWt1bWlhaVwgOwor6Zu75rCX5YmD5YiAID4gZGVua2lrYW1pc29yaVwgOwor5LqL5YuZ5bGA6ZW3ID4gamltdWt5b2t1Y2hvdVwgOwor57WM5riI5pS56Z2pID4ga2VpemFpa2Fpa2FrdVwgOwor5rCR5L+X6Iq46IO9ID4gbWluem9rdWdlaW5vdVwgOwor5Y+O56mr5LqI5oOzID4gc2h1dWtha3V5b3NvdVwgOwor5aGp6L6b6Jy76JuJID4gc2hpb2thcmF0b25ib1wgOwor57SG5L2Z5puy5oqYID4gdXlva3lva3VzZXRzdVwgOwor5qW16LaF55+t5rOiID4gZ29rdWNob3V0YW5wYVwgOwor5Li75qip5L6154qvID4gc2h1a2Vuc2hpbnBhblwgOwor5Lit5oCn5rSX5YmkID4gY2h1dXNlaXNlbnphaVwgOwor6LKo54mp5YiX6LuKID4ga2Ftb3RzdXJlc3NoYVwgOwor6KGA5riF55mC5rOVID4ga2Vzc2VpcnlvdWhvdVwgOwor5paw5qGI54m56KixID4gc2hpbicnYW50b2treW9cIDsKK+atu+W+jOehrOebtCA+IHNoaWdva291Y2hva3VcIDsKK+WUr+eJqeS4u+e+qSA+IHl1aWJ1dHN1c2h1Z2lcIDsKK+aXpemcsuaIpuS6iSA+IG5pY2hpcm9zZW5zb3VcIDsKK+aWremDiuertuS6iSA+IGRhbmtvdWt5b3Vzb3VcIDsKK+WQjOebn+adoee0hCA+IGRvdW1laWpvdXlha3VcIDsKK+S4gOaUq+WNg+mHkSA+IGlra2Fra3VzZW5raW5cIDsKK+majue0mumXmOS6iSA+IGthaWt5dXV0b3Vzb3VcIDsKK+eGseehrOWMluWJpCA+IG5ldHN1a291a2F6YWlcIDsKK+WwgueUqOWbnue3miA+IHNlbicneW91a2Fpc2VuXCA7CivkuqTmj5vlrabnlJ8gPiBrb3VrYW5nYWt1c2VpXCA7Civli5Xnt5roqIjnlLsgPiBkb3VzZW5rZWlrYWt1XCA7CivmsJHmlL/plbflrpggPiBtaW5zZWljaG91a2FuXCA7CivliKTmlq3kuK3mraIgPiBoYW5kYW5jaHV1c2hpXCA7CivlsYDmiYDliIblspAgPiBreW9rdXNob2J1bmtpXCA7CivpgJrluLjlm73kvJogPiB0c3V1am91a29ra2FpXCA7CivmlbDlgKTop6PmnpAgPiBzdXVjaGlrYWlzZWtpXCA7Civou43lgpnmi6HlvLUgPiBndW5iaWtha3VjaG91XCA7CivpganogIXnlJ/lrZggPiB0ZWtpc2hhc2Vpem9uXCA7Civnsr7npZ7pkZHlrpogPiBzZWlzaGlua2FudGVpXCA7CivpiYTpgZPovLjpgIEgPiB0ZXRzdWRvdXl1c291XCA7CivnrKzkuInpmo7ntJogPiBkYWlzYW5rYWlreXV1XCA7CivljYPmhYvkuIfmp5ggPiBzZW50YWliYW4nJ3lvdVwgOwor6Zu75a2Q5bel5a2mID4gZGVuc2hpa291Z2FrdVwgOwor57WM5riI54q25rOBID4ga2VpemFpam91a3lvdVwgOwor56S+5Lya5pWZ6IKyID4gc2hha2Fpa3lvdWlrdVwgOwor6L6y6ICV5rCR5pePID4gbm91a291bWluem9rdVwgOwor5YWo6Lqr5YWo6ZyKID4gemVuc2hpbnplbnJlaVwgOwor5YWs56ew6LOH5pysID4ga291c2hvdXNoaWhvblwgOwor5aSn5a2X54mH5bGxID4gb29hemFrYXRheWFtYVwgOwor6Jas5bir5aaC5p2lID4geWFrdXNoaW55b3JhaVwgOwor55m+5oim6Yys56OoID4gaHlha3VzZW5yZW5tYVwgOwor5ZCM55uf5LyR5qChID4gZG91bWVpa3l1dWtvdVwgOwor5Lit5aSu6KiI55S7ID4gY2h1dW91a2Vpa2FrdVwgOwor5Lit5aSu6ZuG5qipID4gY2h1dW91c2h1dWtlblwgOwor5LiJ6KeS6LK/5piTID4gc2Fua2FrdWJvdWVraVwgOwor5YiG5p6Q5YyW5a2mID4gYnVuc2VraWthZ2FrdVwgOwor5bCR5aOu5aOr5a6YID4gc2hvdXNvdXNoaWthblwgOwor5rOV55qE5qC55ougID4gaG91dGVraWtvbmt5b1wgOwor5q665a6z5LqL5Lu2ID4gc2F0c3VnYWlqaWtlblwgOwor6Ieq54S25aKX5Y+OID4gc2hpemVuem91c2h1dVwgOwor6Imv5oCn6IWr55iNID4gcnlvdXNlaXNodXlvdVwgOwor6YCa5Yuk6Zu76LuKID4gdHN1dWtpbmRlbnNoYVwgOwor5bCR5bm054qv572qID4gc2hvdW5lbmhhbnphaVwgOwor5rC06YW45YyW54mpID4gc3Vpc2Fua2FidXRzdVwgOwor6Kaq5oia55+l5bexID4gc2hpbnNla2ljaGlraVwgOwor5Y2Y54us5rG6566XID4gdGFuZG9rdWtlc3NhblwgOwor5Zu96Zqb5oOF5YuiID4ga29rdXNhaWpvdXNlaVwgOwor6KGX6aCt5ryU6KqsID4gZ2FpdG91ZW56ZXRzdVwgOwor5qyj5Zac6ZuA6LqNID4ga2lua2lqYWt1eWFrdVwgOwor5ZOB56iu5pS56ImvID4gaGluc2h1a2FpcnlvdVwgOwor5YWs56ew6aas5YqbID4ga291c2hvdWJhcmlraVwgOwor5Zub5YWt5pmC5LitID4gc2hpcm9rdWppY2h1dVwgOwor5Lqk6YCa6YGu5patID4ga291dHN1dXNoYWRhblwgOwor5aSn5a2m57Sb5LqJID4gZGFpZ2FrdWZ1bnNvdVwgOwor6LKh5pS/5Y+O5pSvID4gemFpc2Vpc2h1dXNoaVwgOwor6KGG5Y+C5Lih6ZmiID4gc2h1dXNhbnJ5b3VpblwgOwor6ICQ54Gr5bu656+JID4gdGFpa2FrZW5jaGlrdVwgOwor6KaW5Yqb5qSc5p+7ID4gc2hpcnlva3VrZW5zYVwgOwor5bCP5YiA57Sw5belID4ga29nYXRhbmF6YWlrdVwgOwor6LOq55aR5b+c562UID4gc2hpdHN1Z2lvdXRvdVwgOwor5o2c5p+75b2T5bGAID4gc291c2F0b3VreW9rdVwgOwor54Wn6JGJ54uC6KiAID4gdGVyaWhha3lvdWdlblwgOwor5Ye65b6B6LuN5Lq6ID4gc2h1c3NlaWd1bmppblwgOwor5pS+5bCE6IO96ZuyID4gaG91c2hhbm91Z3Vtb1wgOwor56S+5Lya5pS/562WID4gc2hha2Fpc2Vpc2FrdVwgOwor6Zu75qW16Zu75L2NID4gZGVua3lva3VkZW4nJ2lcIDsKK+S6uuW3pemAj+aekCA+IGppbmtvdXRvdXNla2lcIDsKK+ikh+WQiOWqkuS9kyA+IGZ1a3Vnb3ViYWl0YWlcIDsKK+S9j+awkeaKleelqCA+IGp1dW1pbnRvdWh5b3VcIDsKK+W3pealreWcsOW4ryA+IGtvdWd5b3VjaGl0YWlcIDsKK+WRvOWQuOWbsOmboyA+IGtva3l1dWtvbicnbmFuXCA7CivppIrorbfmlr3oqK0gPiB5b3Vnb3NoaXNldHN1XCA7CivovLjlh7ropo/liLYgPiB5dXNodXRzdWtpc2VpXCA7CivmiKblipvntYTmiJAgPiBzZW5yeW9rdXNvc2VpXCA7CivmsbrpgbjmipXnpaggPiBrZXNzZW50b3VoeW91XCA7CivntbHkuIDopovop6MgPiB0b3VpdHN1a2Vua2FpXCA7CivlgqznnKDnmYLms5UgPiBzYWltaW5yeW91aG91XCA7Civlt6Xmpa3oo73lk4EgPiBrb3VneW91c2VpaGluXCA7CivlvbnkurrmoLnmgKcgPiB5YWt1bmlua29uam91XCA7Civni6zmiL/nm6PnpoEgPiBkb2t1Ym91a2Fua2luXCA7CivlsI7pgJrmirXmipcgPiBkb3V0c3V1dGVpa291XCA7CivljZToqr/kuLvnvqkgPiBreW91Y2hvdXNodWdpXCA7CivkvJroqIjloLHlkYogPiBrYWlrZWlob3Vrb2t1XCA7Civlj7Dmub7mtbfls6EgPiB0YWl3YW5rYWlreW91XCA7Civml6XmuIXmiKbkuokgPiBuaXNzaGluc2Vuc291XCA7CivlrqPoqIDnmbrooaggPiBzZW5nZW5oYXBweW91XCA7CivlpKnkvZPlhpnnnJ8gPiB0ZW50YWlzaGFzaGluXCA7Civph43ph4/lmbjmlbAgPiBqdXVyeW91dG9uc3V1XCA7CivmmI7pj6HmraLmsLQgPiBtZWlreW91c2hpc3VpXCA7CivlubTplpPoqIjnlLsgPiBuZW5rYW5rZWlrYWt1XCA7Civlj6Pov7DnrYboqJggPiBrb3VqdXRzdWhpa2tpXCA7Civlm73pmpvpgJrosqggPiBrb2t1c2FpdHN1dWthXCA7CivlgaXlurfoqLrmlq0gPiBrZW5rb3VzaGluZGFuXCA7CivmoYPlsbHmmYLku6MgPiBtb21veWFtYWppZGFpXCA7CivogbfloLTntZDlqZogPiBzaG9rdWJha2Vra29uXCA7CivnkrDlooPllY/poYwgPiBrYW5reW91bW9uZGFpXCA7CivoqLzkurrllprllY8gPiBzaG91bmlua2FubW9uXCA7CivmlLvmkoPmlrnlkJEgPiBrb3VnZWtpaG91a291XCA7Civnq7bkuonlo7LosrcgPiBreW91c291YmFpYmFpXCA7CivokZfkvZzmqKnms5UgPiBjaG9zYWt1a2VuaG91XCA7Civlm73pmpvnpL7kvJogPiBrb2t1c2Fpc2hha2FpXCA7CivmlrDliLbpq5jmoKEgPiBzaGluc2Vpa291a291XCA7Civlr4TnlJ/omavnl4cgPiBraXNlaWNodXVzaG91XCA7CivkuK3mipjluL3lrZAgPiBuYWthb3JlYm91c2hpXCA7Civlhazplovnt7Tnv5IgPiBrb3VrYWlyZW5zaHV1XCA7CivntYzmuIjmlL/nrZYgPiBrZWl6YWlzZWlzYWt1XCA7CivlkIjmiJDlhpnnnJ8gPiBnb3VzZWlzaGFzaGluXCA7CivmlrDpgLLkvZzlrrYgPiBzaGluc2hpbnNha2thXCA7CivphbjntKDkvpvntaYgPiBzYW5zb2t5b3VreXV1XCA7CivkuqTpgJrlhaznpL4gPiBrb3V0c3V1a291c2hhXCA7CivmtLvmrrroh6rlnKggPiBrYXNzYXRzdWppemFpXCA7Civpm7vpgIHlhpnnnJ8gPiBkZW5zb3VzaGFzaGluXCA7Civlhajnn6Xlhajog70gPiB6ZW5jaGl6ZW4nJ25vdVwgOwor5Zu95Yui6Kq/5p+7ID4ga29rdXNlaWNob3VzYVwgOwor5rWB6YCa5qmf5qeLID4gcnl1dXRzdXVraWtvdVwgOwor5YW15Zmo6Ly45Ye6ID4gaGVpa2l5dXNodXRzdVwgOwor5aSp55qH5bSH5oudID4gdGVuJydub3VzdXVoYWlcIDsKK+S/neiovOS6uuimgSA+IGhvc2hvdW5pbicneW91XCA7Civmta7pgYrnlJ/niakgPiBmdXl1dXNlaWJ1dHN1XCA7CivntYLouqvkv53pmbogPiBzaHV1c2hpbmhva2VuXCA7Civmh7jos57oq5bmlocgPiBrZW5zaG91cm9uYnVuXCA7CivluILloLTmlLnpnakgPiBzaGlqb3VrYWlrYWt1XCA7Civpm7vlipvpnIDopoEgPiBkZW5yeW9rdWp1eW91XCA7Civoh6jluorlsIvllY8gPiByaW5zaG91amlubW9uXCA7CivpmbDmpbXnt5rnrqEgPiBpbmt5b2t1c2Vua2FuXCA7Civml4vlhYnliIbmnpAgPiBzZW5rb3VidW5zZWtpXCA7CivljJbnn7Pnh4PmlpkgPiBrYXNla2luZW5yeW91XCA7Civpm7vkv6Hngrrmm78gPiBkZW5zaGlua2F3YXNlXCA7Civmh5DkuK3pm7vnga8gPiBrYWljaHV1ZGVudG91XCA7CivmiY3oibLlhbzlgpkgPiBzYWlzaG9rdWtlbmJpXCA7CivmjIflsI7opoHpoJggPiBzaGlkb3V5b3VyeW91XCA7Civpg7Xkvr/lubTph5EgPiB5dXViaW4nJ25lbmtpblwgOwor6Zai6YCj5ZWG5ZOBID4ga2FucmVuc2hvdWhpblwgOwor6ZmQ55WM54q25rOBID4gZ2Vua2Fpam91a3lvdVwgOwor54++5Zyo5a6M5LqGID4gZ2VuemFpa2FucnlvdVwgOwor5Yi257SE5Lyd5pCsID4gc2VpeWFrdWRlbnBhblwgOwor5Li45LiA6YCx6ZaTID4gbWFydWlzc2h1dWthblwgOwor5bel5qWt5Zuj5ZywID4ga291Z3lvdWRhbmNoaVwgOwor5qW15qW95rWE5ZyfID4gZ29rdXJha3Vqb3Vkb1wgOwor5YyW5a2m5YiG5p6QID4ga2FnYWt1YnVuc2VraVwgOwor5ZCM54K55rG65YudID4gZG91dGVua2Vzc2hvdVwgOwor5L2T5aSW6Zui6ISxID4gdGFpZ2FpcmlkYXRzdVwgOwor55Sf54mp5YW15ZmoID4gc2VpYnV0c3VoZWlraVwgOwor5Y2Y6Z+z56+A6KqeID4gdGFuJydvbnNldHN1Z29cIDsKK+aUu+aSg+maiuW9oiA+IGtvdWdla2l0YWlrZWlcIDsKK+azleS6uuaJgOW+lyA+IGhvdWppbnNob3Rva3VcIDsKK+Wkp+mAhuS6i+S7tiA+IHRhaWd5YWt1amlrZW5cIDsKK+WOn+Wni+aVmeS8miA+IGdlbnNoaWt5b3VrYWlcIDsKK+S+oeagvOWNlOWumiA+IGtha2FrdWt5b3V0ZWlcIDsKK+Wvk+aEj+Wwj+iqrCA+IGd1dWlzaG91c2V0c3VcIDsKK+WwgumWgOaKgOihkyA+IHNlbm1vbmdpanV0c3VcIDsKK+aLoeW8teWPr+iDvSA+IGtha3VjaG91a2Fub3VcIDsKK+aApemAsuS4u+e+qSA+IGt5dXVzaGluc2h1Z2lcIDsKK+iomOW/teW8j+WFuCA+IGtpbmVuc2hpa2l0ZW5cIDsKK+ertuWQiOiEsee3miA+IGt5b3Vnb3VkYXNzZW5cIDsKK+aakeS4reS8keaahyA+IHNob2NodXVreXV1a2FcIDsKK+e5geaWh+e4n+ekvCA+IGhhbmJ1bmpva3VyZWlcIDsKK+ebruaomeeuoeeQhiA+IG1va3VoeW91a2FucmlcIDsKK+aWueWQkeims+W/tSA+IGhvdWtvdWthbicnbmVuXCA7CivmtbflupXpm7vkv6EgPiBrYWl0ZWlkZW5zaGluXCA7Civmpa3nlYzli5XlkJEgPiBneW91a2FpZG91a291XCA7Civlv4XopoHntYzosrsgPiBoaXRzdXlvdWtlaWhpXCA7CivmsLTnjonmqKHmp5ggPiBtaXp1dGFtYW1veW91XCA7Civlh7rlvoHlrrbml48gPiBzaHVzc2Vpa2F6b2t1XCA7CivntYzluLjlj47mlK8gPiBrZWlqb3VzaHV1c2hpXCA7CivlnLDnkIPnp5HlraYgPiBjaGlreXV1a2FnYWt1XCA7Civmg4XloLHmioDooZMgPiBqb3Vob3VnaWp1dHN1XCA7CivnqbrkuK3liIbop6MgPiBrdXVjaHV1YnVua2FpXCA7CivlvLfliLblirTlg40gPiBreW91c2Vpcm91ZG91XCA7Civpmo7ntJrmhI/orZggPiBrYWlreXV1aXNoaWtpXCA7CivljZrlo6voq5bmlocgPiBoYWt1c2hpcm9uYnVuXCA7CivkurrmoLzlvaLmiJAgPiBqaW5rYWt1a2Vpc2VpXCA7Civntbnns7jntKHnuL4gPiBrZW5zaGlib3VzZWtpXCA7CivogbfloLTpl5jkuokgPiBzaG9rdWJhdG91c291XCA7CivmlZnogrLlrabpg6ggPiBreW91aWt1Z2FrdWJ1XCA7CivlpInpgJ/oo4Xnva4gPiBoZW5zb2t1c291Y2hpXCA7CivnnJ/lhobnnJ/nj6AgPiBzaGluJydlbnNoaW5qdVwgOwor5Zu95rCR57WM5riIID4ga29rdW1pbmtlaXphaVwgOwor5YaF6Z2i5o+P5YaZID4gbmFpbWVuYnlvdXNoYVwgOwor5aqS5L2T57WC56uvID4gYmFpdGFpc2h1dXRhblwgOwor5b+D55CG55mC5rOVID4gc2hpbnJpcnlvdWhvdVwgOwor5oCn55qE6Zai5L+CID4gc2VpdGVraWthbmtlaVwgOwor54Sh6Yqt6aOy6aOfID4gbXVzZW4nJ2luc2hva3VcIDsKK+evhOeWh+aWh+azlSA+IGhhbmNodXVidW5wb3VcIDsKK+mVt+acn+WAn+asviA+IGNob3VraXNoYWtrYW5cIDsKK+WFqOS9k+mbhuWQiCA+IHplbnRhaXNodXVnb3VcIDsKK+WPs+Wwj+aLrOW8pyA+IG1pZ2lzaG91a2Fra29cIDsKK+S7ruaDs+aVteWbvSA+IGthc291dGVraWtva3VcIDsKK+altealveW+gOeUnyA+IGdva3VyYWt1b3Vqb3VcIDsKK+WIneetieaVmeiCsiA+IHNob3RvdWt5b3Vpa3VcIDsKK+ihjOaUv+WRveS7pCA+IGd5b3VzZWltZWlyZWlcIDsKK+WvvuWcsOaUu+aSgyA+IHRhaWNoaWtvdWdla2lcIDsKK+iHqueEtuaPj+WGmSA+IHNoaXplbmJ5b3VzaGFcIDsKK+mHkeiejeizh+acrCA+IGtpbicneXV1c2hpaG9uXCA7CivnhKHog73lipvogIUgPiBtdW5vdXJ5b2t1c2hhXCA7CivljJblrablt6Xmpa0gPiBrYWdha3Vrb3VneW91XCA7CivooYzmlL/ljLrnlLsgPiBneW91c2Vpa3VrYWt1XCA7Civlrabnv5Lovp7lhbggPiBnYWt1c2h1dWppdGVuXCA7CivplqjplqXmlL/msrsgPiBrZWliYXRzdXNlaWppXCA7Civkuovmpa3mi6HlhYUgPiBqaWd5b3VrYWt1anV1XCA7CivovrLmnZHlt6Xmpa0gPiBub3Vzb25rb3VneW91XCA7Civnp4vpm6jliY3nt5ogPiBha2lzYW1lemVuc2VuXCA7CivlhbHlkIzovrLloLQgPiBreW91ZG91bm91am91XCA7CivlpbPmqKnmi6HlvLUgPiBqb2tlbmtha3VjaG91XCA7CivorJvnv5LkvJrloLQgPiBrb3VzaHV1a2Fpam91XCA7CivmsZrmn5Pnianos6ogPiBvc2VuYnVzc2hpdHN1XCA7Civnirbms4HliKTmlq0gPiBqb3VreW91aGFuZGFuXCA7CivlvZPoqbLlrpjluoEgPiB0b3VnYWlrYW5jaG91XCA7Civku7Lku4vosr/mmJMgPiBjaHV1a2FpYm91ZWtpXCA7Civlm73lhoXluILloLQgPiBrb2t1bmFpc2hpam91XCA7CivkuIDmnprnnIvmnb8gPiBpY2hpbWFpa2FuYmFuXCA7CivnhKHnt5rpgJrkv6EgPiBtdXNlbnRzdXVzaGluXCA7CivntYzmuIjlpKflm70gPiBrZWl6YWl0YWlrb2t1XCA7Civlj43npL7kvJrnmoQgPiBoYW5zaGFrYWl0ZWtpXCA7CivkuIDliKnkuIDlrrMgPiBpY2hpcmlpY2hpZ2FpXCA7Civkuozlvovog4zlj40gPiBuaXJpdHN1aGFpaGFuXCA7CivlvqnlhYPkvZzmpa0gPiBmdWt1Z2Vuc2FneW91XCA7CivkurrplpPniIblvL4gPiBuaW5nZW5iYWt1ZGFuXCA7CivlraPnr4DlirTlg40gPiBraXNldHN1cm91ZG91XCA7Civpmbjou43lpKfoh6MgPiByaWt1Z3VuZGFpamluXCA7Civmlq3mirXmipfop5IgPiBkYW50ZWlrb3VrYWt1XCA7CivpgJrkv6HmqZ/plqIgPiB0c3V1c2hpbmtpa2FuXCA7CivlhpnnnJ/lh7jniYggPiBzaGFzaGludG9wcGFuXCA7CivljJblrabnmYLms5UgPiBrYWdha3VyeW91aG91XCA7CivntrHntIDnspvmraMgPiBrb3VraXNodWt1c2VpXCA7CivnqI7liLbmlLnpnakgPiB6ZWlzZWlrYWlrYWt1XCA7Civoqr/lgZzoo4HliKQgPiBjaG91dGVpc2FpYmFuXCA7CivnhKHnvarliKTmsbogPiBtdXphaWhhbmtldHN1XCA7Civou43kuovmiKbnlaUgPiBndW5qaXNlbnJ5YWt1XCA7Civoh6jluoroqabpqJMgPiByaW5zaG91c2hpa2VuXCA7CivpmLLmraLmjIfph50gPiBib3VzaGlzaGlzaGluXCA7CivmsJfosaHoprPmuKwgPiBraXNob3VrYW5zb2t1XCA7CivoiJ7lj7DnlJ/mtLsgPiBidXRhaXNlaWthdHN1XCA7CivlpKflkI3ml4XooYwgPiBkYWlteW91cnlva291XCA7CivkvZzmpa3nmYLms5UgPiBzYWd5b3VyeW91aG91XCA7CivlpJblm73ngrrmm78gPiBnYWlrb2t1a2F3YXNlXCA7Civpg73nq4vpq5jmoKEgPiB0b3JpdHN1a291a291XCA7CivlvaLlvI/kuLvnvqkgPiBrZWlzaGlraXNodWdpXCA7CivljJblrablt6XlraYgPiBrYWdha3Vrb3VnYWt1XCA7Civop5LpgYvli5Xph48gPiBrYWt1dW5kb3VyeW91XCA7CivlrozlhajnhKHmrKAgPiBrYW56ZW5tdWtldHN1XCA7CivmlL/nrZbmsbrlrpogPiBzZWlzYWt1a2V0dGVpXCA7CivlvqrnkrDlsI/mlbAgPiBqdW5rYW5zaG91c3V1XCA7CivlpKfpn5PmsJHlm70gPiBkYWlrYW5taW5rb2t1XCA7CivpgannlKjmpa3li5kgPiB0ZWtpeW91Z3lvdW11XCA7CivmiKbkuonmloflraYgPiBzZW5zb3VidW5nYWt1XCA7CivkuZ3lpKnnm7TkuIsgPiBreXV1dGVuY2hva2thXCA7CivpnaLlvpPohbnog4wgPiBtZW5qdXVmdWt1aGFpXCA7Civnorrkv53lpLHmlZcgPiBrYWt1aG9zaGlwcGFpXCA7CivlhbHpgJroqIDoqp4gPiBreW91dHN1dWdlbmdvXCA7CivlvLfliLblh6bliIYgPiBreW91c2Vpc2hvYnVuXCA7Civmlq3ltJbntbblo4EgPiBkYW5nYWl6ZXBwZWtpXCA7CivnlKPmpa3npL7kvJogPiBzYW5neW91c2hha2FpXCA7CivlkITnqK7lrabmoKEgPiBrYWt1c2h1Z2Fra291XCA7CivliIbop6PlhpnnnJ8gPiBidW5rYWlzaGFzaGluXCA7CivljbDliLflqpLkvZMgPiBpbnNhdHN1YmFpdGFpXCA7CivnoJTnqbbmiYDloLEgPiBrZW5reXV1c2hvaG91XCA7CivkubHlsITkubHmkoMgPiByYW5zaGFyYW5nZWtpXCA7Civmo5LohbnntbblgJIgPiBob3VmdWt1emV0dG91XCA7CivnibnoqLHkvrXlrrMgPiB0b2treW9zaGluZ2FpXCA7CivlrprpoY3osq/ph5EgPiB0ZWlnYWt1Y2hva2luXCA7CivlhazooYbkvJ3li5UgPiBrb3VzaHV1ZGVuZG91XCA7CivpiYTpgZPppqzou4ogPiB0ZXRzdWRvdWJhc2hhXCA7CivlhoXlm73ngrrmm78gPiBuYWlrb2t1a2F3YXNlXCA7CivnqK7nqK7mp5jmp5ggPiBzaHVqdXNhbWF6YW1hXCA7CivllpzoibLmuoDpnaIgPiBraXNob2t1bWFubWVuXCA7CivlvIHliKXntKDmgKcgPiBiZW5iZXRzdXNvc2VpXCA7CivkvZzmiKblkb3ku6QgPiBzYWt1c2VubWVpcmVpXCA7CivorbDplbfogbfmqKkgPiBnaWNob3VzaG9ra2VuXCA7CivllZPokpnmgJ3mva4gPiBrZWltb3VzaGljaG91XCA7CivlhazlqLzlhajlu4MgPiBrb3VzaG91emVucGFpXCA7Civlr77pnaLkuqTpgJogPiB0YWltZW5rb3V0c3V1XCA7CivkuIDllY/kuIDnrZQgPiBpY2hpbW9uJydpdHRvdVwgOwor6Zu75a2Q5a+G5bqmID4gZGVuc2hpbWl0c3Vkb1wgOwor6LaF5L2O5L6h5qC8ID4gY2hvdXRlaWtha2FrdVwgOwor5LiA5ous5aOy6LK3ID4gaWtrYXRzdWJhaWJhaVwgOwor5Yi257SE5p2h5Lu2ID4gc2VpeWFrdWpvdWtlblwgOwor5LyR5oim5Lya6KuHID4ga3l1dXNlbmthaWRhblwgOwor54mI5qip5L615a6zID4gaGFua2Vuc2hpbmdhaVwgOwor6ZqU6Zui55eF5qOfID4ga2FrdXJpYnlvdXRvdVwgOwor55Sf6a6u5paZ5ZOBID4gc2Vpc2VucnlvdWhpblwgOwor5LiK5piH5YK+5ZCRID4gam91c2hvdWtlaWtvdVwgOwor5LiN5rOV5YWl5Zu9ID4gZnVob3VueXV1Z29rdVwgOwor5pWZ6aSK5a2m6YOoID4ga3lvdXlvdWdha3VidVwgOwor6auY5L+h6aC85oCnID4ga291c2hpbnJhaXNlaVwgOwor5a625a6F5o2c57SiID4ga2F0YWt1c291c2FrdVwgOwor6KiI55S757WM5riIID4ga2Vpa2FrdWtlaXphaVwgOwor5LiJ6Lu46Kmm6aiTID4gc2FuamlrdXNoaWtlblwgOwor5pyA57WC5q616ZqOID4gc2Fpc2h1dWRhbmthaVwgOwor5Y+O5YWl5Y2w57SZID4gc2h1dW55dXVpbnNoaVwgOwor5Y2K54af57e05belID4gaGFuanVrdXJlbmtvdVwgOwor5YaZ55yf5Yik5a6aID4gc2hhc2hpbmhhbnRlaVwgOwor57WM5riI6Kaz5b+1ID4ga2VpemFpa2FuJyduZW5cIDsKK+izg+mHkeawtOa6liA+IGNoaW5naW5zdWlqdW5cIDsKK+WWtualreWPjuaUryA+IGVpZ3lvdXNodXVzaGlcIDsKK+S4ieebuOS6pOa1gSA+IHNhbnNvdWtvdXJ5dXVcIDsKK+e1jOWWtuaIpueVpSA+IGtlaWVpc2Vucnlha3VcIDsKK+aYpeWkj+eni+WGrCA+IHNodW5rYXNodXV0b3VcIDsKK+eEpueCuea3seW6piA+IHNob3V0ZW5zaGluZG9cIDsKK+S4gOaZguaJgOW+lyA+IGljaGlqaXNob3Rva3VcIDsKK+adieiKseeyieeXhyA+IHN1Z2lrYWZ1bnNob3VcIDsKK+S6uuawkeaKleelqCA+IGppbm1pbnRvdWh5b3VcIDsKK+WQiOW+k+mAo+ihoSA+IGdhc3Nob3VyZW5rb3VcIDsKK+eDj+mHjuixjOixhiA+IGthcmFzdW5vZW5kb3VcIDsKK+eEoeiKuOWkp+mjnyA+IG11Z2VpdGFpc2hva3VcIDsKK+Wbvemam+mAo+WQiCA+IGtva3VzYWlyZW5nb3VcIDsKK+eGseS6pOaPm+WZqCA+IG5ldHN1a291a2Fua2lcIDsKK+Wuh+WumemWi+eZuiA+IHVjaHV1a2FpaGF0c3VcIDsKK+a8ouaWh+iok+iqrSA+IGthbmJ1bmt1bmRva3VcIDsKK+epuumWk+aEn+immiA+IGt1dWthbmthbmtha3VcIDsKK+S6jOS6uuS4ieiEmiA+IG5pbmluc2Fua3lha3VcIDsKK+aoqeWKm+S4u+e+qSA+IGtlbnJ5b2t1c2h1Z2lcIDsKK+WLn+mbhuW6g+WRiiA+IGJvc2h1dWtvdWtva3VcIDsKK+Wtpue/kueQhuirliA+IGdha3VzaHV1cmlyb25cIDsKK+mnkOi7iuemgeatoiA+IGNodXVzaGFraW5zaGlcIDsKK+WFseWQjOWuo+iogCA+IGt5b3Vkb3VzZW5nZW5cIDsKK+WkqeWcsOelnuaYjiA+IHRlbmNoaXNoaW5tZWlcIDsKK+ips+e0sOaDheWgsSA+IHNob3VzYWlqb3Vob3VcIDsKK+eJm+mjsummrOmjnyA+IGd5dXVpbmJhc2hva3VcIDsKK+mHkeWfjumJhOWjgSA+IGtpbmpvdXRlcHBla2lcIDsKK+mbhuS4reism+e+qSA+IHNodXVjaHV1a291Z2lcIDsKK+WkieW9ouiZq+mhniA+IGhlbmtlaWNodXVydWlcIDsKK+WFrOeahOW5tOmHkSA+IGtvdXRla2luZW5raW5cIDsKK+mAseWIiumbkeiqjCA+IHNodXVrYW56YXNzaGlcIDsKK+e0oee4vuW3peWgtCA+IGJvdXNla2lrb3Vqb3VcIDsKK+WIneetieaVsOWtpiA+IHNob3RvdXN1dWdha3VcIDsKK+aui+WtmOaXpeaVsCA+IHphbnNvbicnbmlzc3V1XCA7Civlm73pmpvlsZXplosgPiBrb2t1c2FpdGVua2FpXCA7CivlubTlip/luo/liJcgPiBuZW5rb3Vqb3JldHN1XCA7CivllYbmpa3pg73luIIgPiBzaG91Z3lvdXRvc2hpXCA7CivkuK3pgJTpgIDlraYgPiBjaHV1dG90YWlnYWt1XCA7CivlhbHlkIzkvJroposgPiBreW91ZG91a2Fpa2VuXCA7CivmhrLms5XlrabogIUgPiBrZW5wb3VnYWt1c2hhXCA7CivmgKXou6Lnm7TkuIsgPiBreXV1dGVuY2hva2thXCA7Civljp/lrZDniIblvL4gPiBnZW5zaGliYWt1ZGFuXCA7CivnmbvlsbHpiYTpgZMgPiB0b3phbnRldHN1ZG91XCA7CivniannkIbljJblraYgPiBidXRzdXJpa2FnYWt1XCA7CivntabmsLTliLbpmZAgPiBreXV1c3Vpc2VpZ2VuXCA7CivmnJ3prq7miKbkuokgPiBjaG91c2Vuc2Vuc291XCA7Civlq4zmsJfnlJ/niakgPiBrZW5raXNlaWJ1dHN1XCA7Civpgbjmip7nirbmhYsgPiBzZW50YWt1am91dGFpXCA7Civpq5jls7DlhavluqcgPiBrb3Vob3VoYWNoaXphXCA7CivkuI3mtojljJbniakgPiBmdXNob3VrYWJ1dHN1XCA7Civms5XnmoTmlofmm7ggPiBob3V0ZWtpYnVuc2hvXCA7Civnp5jlr4bpgbjmjJkgPiBoaW1pdHN1c2Vua3lvXCA7CivlnLDnkIPljJblraYgPiBjaGlreXV1a2FnYWt1XCA7CivmlrDnhrHluK/ljLogPiBzaGluJyduZXR0YWlrdVwgOwor57WQ5ama5oyH6LyqID4ga2Vra29uJyd5dWJpd2FcIDsKK+WWhOmao+WPi+WlvSA+IHplbnJpbicneXV1a291XCA7Civlj5flj5bmiYvlvaIgPiB1a2V0b3JpdGVnYXRhXCA7CivmsbrnrpfloLHlkYogPiBrZXNzYW5ob3Vrb2t1XCA7Civlv4PnkIblrabogIUgPiBzaGlucmlnYWt1c2hhXCA7Civoq5bnkIblvaLlvI8gPiByb25yaWtlaXNoaWtpXCA7CivkvY7poK3lubPouqsgPiB0ZWl0b3VoZWlzaGluXCA7Civmt7flkIjovrLmpa0gPiBrb25nb3Vub3VneW91XCA7CivmlofoirjkvZzlk4EgPiBidW5nZWlzYWt1aGluXCA7CivmnInplpHpmo7ntJogPiB5dXVrYW5rYWlreXV1XCA7Civlj4vlpb3mnaHntIQgPiB5dXVrb3Vqb3V5YWt1XCA7CivliYflpKnljrvnp4EgPiBzb2t1dGVua3lvc2hpXCA7Civlhpnlrp/kuLvnvqkgPiBzaGFqaXRzdXNodWdpXCA7Civlm73pmpvluILloLQgPiBrb2t1c2Fpc2hpam91XCA7Civkuozph43nlJ/mtLsgPiBuaWp1dXNlaWthdHN1XCA7Civoh6jmqZ/nm67mqJkgPiByaW5raW1va3VoeW91XCA7CivllYbmpa3nmbvoqJggPiBzaG91Z3lvdXRvdWtpXCA7Civpu4ToibLkurrnqK4gPiBvdXNob2t1amluc2h1XCA7Civlkajms6LlpInoqr8gPiBzaHV1aGFoZW5jaG91XCA7CivmrKDpmaXllYblk4EgPiBrZWtrYW5zaG91aGluXCA7CivlvpPlsZ7lpInmlbAgPiBqdXV6b2t1aGVuc3V1XCA7Civml6LntITooajnj74gPiBraXlha3VoeW91Z2VuXCA7CivkuI3oia/lsJHlubQgPiBmdXJ5b3VzaG91bmVuXCA7CivmuKzph4/mioDluKsgPiBzb2t1cnlvdWdpc2hpXCA7Civmo67nvoXkuIfosaEgPiBzaGlucmFiYW5zaG91XCA7CivnlKPmpa3mp4vpgKAgPiBzYW5neW91a291em91XCA7CivmrKflt57oq7jlm70gPiBvdXNodXVzaG9rb2t1XCA7CivpgJrli6TlnLDnjYQgPiB0c3V1a2luamlnb2t1XCA7CivmmLzplpPkurrlj6MgPiBjaHV1a2Fuamlua291XCA7CivmgKfmoLzliKTmlq0gPiBzZWlrYWt1aGFuZGFuXCA7Civkv6HpoLzplqLkv4IgPiBzaGlucmFpa2Fua2VpXCA7CivlkIzmnJ/pgJrkv6EgPiBkb3VraXRzdXVzaGluXCA7CivkuInph43nhKbngrkgPiBzYW5qdXVzaG91dGVuXCA7CivmipXnpajnt4/mlbAgPiB0b3VoeW91c291c3V1XCA7CivlpKfluYXliLfmlrAgPiBvb2hhYmFzYXNzaGluXCA7CivliIfmlq3mgqPogIUgPiBzZXRzdWRhbmthbmphXCA7CivoopbmiYvlgo3oprMgPiBzaHV1c2h1Ym91a2FuXCA7Civmi43miYvllp3ph4cgPiBoYWt1c2h1a2Fzc2FpXCA7CivkvZzmpa3ku67oqqwgPiBzYWd5b3VrYXNldHN1XCA7CivntYzmuIjmiJDplbcgPiBrZWl6YWlzZWljaG91XCA7CivlkIjmiJDlrp3nn7MgPiBnb3VzZWlob3VzZWtpXCA7CivntZDnt6DntYTnuZQgPiBrZXR0ZWlzb3NoaWtpXCA7CivlhobpjJDmm7Lnt5ogPiBlbnN1aWt5b2t1c2VuXCA7CivogZbkvZPmi53poJggPiBzZWl0YWloYWlyeW91XCA7CivlurbmsJHph5Hono0gPiBzaG9taW5raW4nJ3l1dVwgOwor5L2T56mN5oq15oqXID4gdGFpc2VraXRlaWtvdVwgOwor5Y2U5ZCM57WE5ZCIID4ga3lvdWRvdWt1bWlhaVwgOwor5YWI5L2P5rCR5pePID4gc2VuanV1bWluem9rdVwgOwor57Wx5LiA5oim57eaID4gdG91aXRzdXNlbnNlblwgOwor5ZCM5pmC6YCa6KizID4gZG91aml0c3V1eWFrdVwgOwor5ZGo55+l5b655bqVID4gc2h1dWNoaXRldHRlaVwgOwor6Imx6Zuj6L6b6IumID4ga2FuJyduYW5zaGlua3VcIDsKK+aUv+WFmuWGhemWoyA+IHNlaXRvdW5haWtha3VcIDsKK+ePvuWcsOWgseWRiiA+IGdlbmNoaWhvdWtva3VcIDsKK+aHuOiznuWVj+mhjCA+IGtlbnNob3Vtb25kYWlcIDsKK+WCreiIueWlkee0hCA+IHlvdXNlbmtlaXlha3VcIDsKK+S7iuS4iuWkqeeahyA+IGtpbmpvdXRlbicnbm91XCA7Civku5bopprnl4fnirYgPiB0YWtha3VzaG91am91XCA7CivmrKDpo5/lhZDnq6UgPiBrZXNzaG9rdWppZG91XCA7CivlqK/mpb3nlarntYQgPiBnb3Jha3ViYW5ndW1pXCA7Civnsr7npZ7ljLvlraYgPiBzZWlzaGluJydpZ2FrdVwgOwor5YaF5a656Ki85piOID4gbmFpeW91c2hvdW1laVwgOwor5Ye65riv5YGc5q2iID4gc2h1a2tvdXRlaXNoaVwgOwor5aSr5amm57SE5p2fID4gZnV1ZnV5YWt1c29rdVwgOwor5peF6KGM5qWt6ICFID4gcnlva291Z3lvdXNoYVwgOwor5L2/5b6S5L+h57WMID4gc2hpdG9zaGlua3lvdVwgOwor5aSW6LOH5bCO5YWlID4gZ2Fpc2hpZG91bnl1dVwgOwor5oiQ5Lq65pWZ6IKyID4gc2Vpamlua3lvdWlrdVwgOwor5YWs5byP5Li7576pID4ga291c2hpa2lzaHVnaVwgOwor5LiA542y5Y2D6YeRID4gaWtrYWtrdXNlbmtpblwgOwor6KSH5pWw5qWt5YuZID4gZnVrdXN1dWd5b3VtdVwgOwor56aB5qyy5Li7576pID4ga2luJyd5b2t1c2h1Z2lcIDsKK+epuuilsuitpuWgsSA+IGt1dXNodXVrZWlob3VcIDsKK+eUo+alreWGjeeUnyA+IHNhbmd5b3VzYWlzZWlcIDsKK+izg+iyuOS+oeagvCA+IGNoaW50YWlrYWtha3VcIDsKK+aIpumXmOWJjeWTqCA+IHNlbnRvdXplbnNob3VcIDsKK+S4gOiogOS4gOihjCA+IGljaGlnZW4nJ2lra291XCA7CivlkLnlpY/mpb3lm6MgPiBzdWlzb3VnYWt1ZGFuXCA7Civnm7Tnt5rot53pm6IgPiBjaG9rdXNlbmt5b3JpXCA7Civov5HopqrntZDlqZogPiBraW5zaGlua2Vra29uXCA7CivnsbPoi7Hku4/omK0gPiBiZWllaWJ1dHN1cmFuXCA7CivlhbHlkIzkvZzmpa0gPiBreW91ZG91c2FneW91XCA7CivmuJvlj43mlL/nrZYgPiBnZW50YW5zZWlzYWt1XCA7Civlv4PnkIbkvZzmiKYgPiBzaGlucmlzYWt1c2VuXCA7Civlv4Poh5Pnp7vmpI0gPiBzaGluem91aXNob2t1XCA7CivmnInpmZDosqzku7sgPiB5dXVnZW5zZWtpbmluXCA7CivntYTnuZTlho3nt6ggPiBzb3NoaWtpc2FpaGVuXCA7Civnpo/pn7PmlZnkvJogPiBmdWt1aW5reW91a2FpXCA7CivplqLkv4Llia/oqZ4gPiBrYW5rZWlmdWt1c2hpXCA7Civlj7Lmlpnnt6jnuoIgPiBzaGlyeW91aGVuc2FuXCA7CivnjJ/lrpjpgYvli5UgPiByeW91a2FuJyd1bmRvdVwgOwor6IKJ5L2T5Yq05YONID4gbmlrdXRhaXJvdWRvdVwgOwor5Y+C54Wn5paH54yuID4gc2Fuc2hvdWJ1bmtlblwgOwor6Z+z5qW955uj552jID4gb25nYWt1a2FudG9rdVwgOwor5bmz6Lqr5L2O6aCtID4gaGVpc2hpbnRlaXRvdVwgOwor5YWx55Sj5YiG5a2QID4ga3lvdXNhbmJ1bnNoaVwgOwor5LqI57SE5Ye654mIID4geW95YWt1c2h1cHBhblwgOwor54Kt5rC05YyW54mpID4gdGFuc3Vpa2FidXRzdVwgOwor6L+R5Luj5paH5a2mID4ga2luZGFpYnVuZ2FrdVwgOwor5Zyw5pa55a6Y5bqBID4gY2hpaG91a2FuY2hvdVwgOwor5Zub5YiG5LqU6KOCID4gc2hpYnVuZ29yZXRzdVwgOwor57WM5riI5Zue5b6pID4ga2VpemFpa2FpZnVrdVwgOwor5a6f5a2Y5Li7576pID4gaml0c3V6b25zaHVnaVwgOwor5oGS5rip5YuV54mpID4ga291b25kb3VidXRzdVwgOwor6YeO6I+c5LiA55q/ID4geWFzYWloaXRvc2FyYVwgOwor5b2i5byP6KuW55CGID4ga2Vpc2hpa2lyb25yaVwgOwor5aSn5a2m5rWq5Lq6ID4gZGFpZ2FrdXJvdW5pblwgOwor5pqr5a6a5Y2U5a6aID4gemFudGVpa3lvdXRlaVwgOwor5pS+6YCB5aSn5a2mID4gaG91c291ZGFpZ2FrdVwgOwor5rOV5b6L5Yi25bqmID4gaG91cml0c3VzZWlkb1wgOwor5L+h55So6YeR5bqrID4gc2hpbicneW91a2lua29cIDsKK+acieWQjeeEoeWunyA+IHl1dW1laW11aml0c3VcIDsKK+e1gui6q+S8muWToSA+IHNodXVzaGlua2FpaW5cIDsKK+S4ieinkumWouaVsCA+IHNhbmtha3VrYW5zdXVcIDsKK+eskeatouWNg+S4hyA+IHNob3VzaGlzZW5iYW5cIDsKK+aWh+WtpuWNmuWjqyA+IGJ1bmdha3VoYWthc2VcIDsKK+W6reWFiOebuOWgtCA+IG5pd2FzYWtpc291YmFcIDsKK+a2iOiyu+iAheWBtCA+IHNob3VoaXNoYWdhd2FcIDsKK+eyvuelnuani+mAoCA+IHNlaXNoaW5rb3V6b3VcIDsKK+mJhOmqqOW3peS6iyA+IHRla2tvdHN1a291amlcIDsKK+WbveWIqeawkeemjyA+IGtva3VyaW1pbnB1a3VcIDsKK+i7veS9u+a1ruiWhCA+IGtlaWNob3VmdWhha3VcIDsKK+ayluepjeW5s+mHjiA+IGNodXVzZWtpaGVpeWFcIDsKK+mFqui+suijveWTgSA+IHJha3Vub3VzZWloaW5cIDsKK+isnee9quW6g+WRiiA+IHNoYXphaWtvdWtva3VcIDsKK+WvjOWbveW8t+WFtSA+IGZ1a29rdWt5b3VoZWlcIDsKK+WklumDreWbo+S9kyA+IGdhaWtha3VkYW50YWlcIDsKK+WFseWQjOS8gealrSA+IGt5b3Vkb3VraWd5b3VcIDsKK+majue0muekvuS8miA+IGthaWt5dXVzaGFrYWlcIDsKK+WvvuWkluaUv+etliA+IHRhaWdhaXNlaXNha3VcIDsKK+eyvumciuS/oeS7sCA+IHNlaXJlaXNoaW5rb3VcIDsKK++8p++8oueQhuirliA+IGppXCDMhGJpXCDMhHJpcm9uXCA7CivmmKXpoqjpp5jolakgPiBzaHVucHV1dGFpdG91XCA7CivmrbvliJHln7fooYwgPiBzaGlrZWlzaGlra291XCA7CivkuozogIXmip7kuIAgPiBuaXNoYXRha3VpdHN1XCA7CivphbjmgKflj43lv5wgPiBzYW5zZWloYW4nJ25vdVwgOwor5rC06YGT5paZ6YeRID4gc3VpZG91cnlvdWtpblwgOwor56m65rCX5Yqb5a2mID4ga3V1a2lyaWtpZ2FrdVwgOwor5ZWG5aOy5rCX6LOqID4gc2hvdWJhaWthdGFnaVwgOwor6KiY6Yyy5paH5a2mID4ga2lyb2t1YnVuZ2FrdVwgOwor5b285pa55q2k5pa5ID4gYWNoaXJha29jaGlyYVwgOwor56uL6Lqr5Ye65LiWID4gcmlzc2hpbnNodXNzZVwgOwor5q2j6YeR6YqA6KGMID4gc2hvdWtpbmdpbmtvdVwgOwor5YWx5riI5LqL5qWtID4ga3lvdXNhaWppZ3lvdVwgOwor5YWI6KGM5oqA6KGTID4gc2Vua291Z2lqdXRzdVwgOwor5Zuz5pu455uu6YyyID4gdG9zaG9tb2t1cm9rdVwgOwor6Ki85oug6Zqg5ruFID4gc2hvdWtvaW5tZXRzdVwgOwor56u25LqJ6Zai5L+CID4ga3lvdXNvdWthbmtlaVwgOwor5LqL5YmN5qSc6ZayID4gaml6ZW5rZW4nJ2V0c3VcIDsKK+ihjOaUv+WHpuWIhiA+IGd5b3VzZWlzaG9idW5cIDsKK+WFqOmdouW6g+WRiiA+IHplbm1lbmtvdWtva3VcIDsKK+WbveWLmemVt+WumCA+IGtva3VtdWNob3VrYW5cIDsKK+eyvuelnueXhemZoiA+IHNlaXNoaW5ieW91aW5cIDsKK+Wbm+WNgeS5neaXpSA+IHNoaWp1dWt1bmljaGlcIDsKK+adk+WtkOWumuimjyA+IHNoYWt1c2hpam91Z2lcIDsKK+WPr+WhkeeJqeizqiA+IGthc29idXNzaGl0c3VcIDsKK+WNiui+suWNiua8gSA+IGhhbicnbm91aGFuZ3lvXCA7CivmmrTpo7LmmrTpo58gPiBib3VpbmJvdXNob2t1XCA7CivnoJTnqbbliIbph44gPiBrZW5reXV1YnVuJyd5YVwgOwor5Lq65Y+j5a+G5bqmID4gamlua291bWl0c3Vkb1wgOwor5Lq66Lqr5aOy6LK3ID4gamluc2hpbmJhaWJhaVwgOwor5q665Lq65pyq6YGCID4gc2F0c3VqaW5taXN1aVwgOwor6Laz5Yip5pmC5LujID4gYXNoaWthZ2FqaWRhaVwgOwor5by+552A6Led6ZuiID4gZGFuY2hha3VreW9yaVwgOwor5YuV54mp5qSc5p+7ID4gZG91YnV0c3VrZW5zYVwgOwor6Jas6aSM55mC5rOVID4geWFrdWppcnlvdWhvdVwgOwor5Lq66ZaT5Zu95a6dID4gbmluZ2Vua29rdWhvdVwgOwor57eK6KaB5Zyw5b2iID4ga2luJyd5b3VjaGlrZWlcIDsKK+W4guWgtOaIkOmVtyA+IHNoaWpvdXNlaWNob3VcIDsKK+aMh+WQjeaKleelqCA+IHNoaW1laXRvdWh5b3VcIDsKK+WRiei2iuWQjOiInyA+IGdvZXRzdWRvdXNodXVcIDsKK+WuheWcsOmAoOaIkCA+IHRha3VjaGl6b3VzZWlcIDsKK+eyvuelnuWKtOWDjSA+IHNlaXNoaW5yb3Vkb3VcIDsKK+WutuaXj+ioiOeUuyA+IGthem9rdWtlaWtha3VcIDsKK+mWi+WPo+S4gOeVqiA+IGthaWtvdWljaGliYW5cIDsKK+ebtOezu+WNkeWxniA+IGNob2trZWloaXpva3VcIDsKK+WJsuizpuaWueW8jyA+IGthcHB1aG91c2hpa2lcIDsKK+WLpOWKtOWkp+ihhiA+IGtpbnJvdXRhaXNodXVcIDsKK+acquWPjuWFpemHkSA+IG1pc2h1dW55dXVraW5cIDsKK+miqOS/l+WWtualrSA+IGZ1dXpva3VlaWd5b3VcIDsKK+awkeS/l+mfs+alvSA+IG1pbnpva3Vvbmdha3VcIDsKK+a1t+awtOa1tOWgtCA+IGthaXN1aXlva3Vqb3VcIDsKK+mAo+WQiOS9nOaIpiA+IHJlbmdvdXNha3VzZW5cIDsKK+S4oeiTi+aZguioiCA+IHJ5b3VidXRhZG9rZWlcIDsKK+S4u+Wuoui7ouWAkiA+IHNodWtha3V0ZW50b3VcIDsKK+aQjeebiuWLmOWumiA+IHNvbicnZWtpa2Fuam91XCA7Civli5XlipvpmY3kuIsgPiBkb3VyeW9rdWtvdWthXCA7CivkuInop5Lpl5jkuokgPiBzYW5rYWt1dG91c291XCA7CivpgIDlrablh6bliIYgPiB0YWlnYWt1c2hvYnVuXCA7Civlrp/pqJPmnZDmlpkgPiBqaWtrZW56YWlyeW91XCA7Civph43opoHnlKPmpa0gPiBqdXV5b3VzYW5neW91XCA7CivmtrLkvZPnh4PmlpkgPiBla2l0YWluZW5yeW91XCA7CivkvJ3pgZPpm4bkvJogPiBkZW5kb3VzaHV1a2FpXCA7CivlhavpnaLlha3oh4IgPiBoYWNoaW1lbnJvcHBpXCA7CivmiY3msJfnhaXnmbogPiBzYWlraWthbnBhdHN1XCA7CivmhJ/mg4Xooajnj74gPiBrYW5qb3VoeW91Z2VuXCA7CivkurrnqK7lt67liKUgPiBqaW5zaHVzYWJldHN1XCA7Civoi7Hlm73nmbrpn7MgPiBlaWtva3VoYXRzdW9uXCA7CivnhKHpmZDmlbDliJcgPiBtdWdlbnN1dXJldHN1XCA7CivmgqrpgIbnhKHpgZMgPiBha3VneWFrdW11ZG91XCA7Civnhp/mha7mlq3ooYwgPiBqdWt1cnlvZGFua291XCA7Civnm7TkuqTluqfmqJkgPiBjaG9ra291emFoeW91XCA7CivljJflpKrlubPmtIsgPiBraXRhdGFpaGVpeW91XCA7CivnlLflo7DlkIjllLEgPiBkYW5zZWlnYXNzaG91XCA7Civog4Pohbjnl4XlraYgPiBpY2hvdWJ5b3VnYWt1XCA7CivkuInop5LplqLkv4IgPiBzYW5rYWt1a2Fua2VpXCA7CivmsJHml4/pn7Pmpb0gPiBtaW56b2t1b25nYWt1XCA7CivljZjni6zkvJroposgPiB0YW5kb2t1a2Fpa2VuXCA7CivosqHnlKPnm7jntpogPiB6YWlzYW5zb3V6b2t1XCA7CivkuIrmmbrlpKflraYgPiBqb3VjaGlkYWlnYWt1XCA7Civlg6flurXnlJ/mtLsgPiBzb3VhbnNlaWthdHN1XCA7Civms5XlvovnlKjoqp4gPiBob3VyaXRzdXlvdWdvXCA7Civpm4zpm4Tpgbjmip4gPiBzaGl5dXVzZW50YWt1XCA7Civnmb7oirHnuZrkubEgPiBoeWFra2FyeW91cmFuXCA7Civpn7Pmpb3nmYLms5UgPiBvbmdha3VyeW91aG91XCA7CivkvY/msJHnmbvpjLIgPiBqdXVtaW50b3Vyb2t1XCA7Civmlq3lsaTlhpnnnJ8gPiBkYW5zb3VzaGFzaGluXCA7CivljaDpoJjlnLDluK8gPiBzZW5yeW91Y2hpdGFpXCA7Civolqzlk4HkvJrnpL4gPiB5YWt1aGluZ2Fpc2hhXCA7Civlh7rlj6Poqr/mn7sgPiBkZWd1Y2hpY2hvdXNhXCA7Civog73li5XlhY3nlqsgPiBub3Vkb3VtZW4nJ2VraVwgOwor5Zyo55WZ6YKm5Lq6ID4gemFpcnl1dWhvdWppblwgOwor6bqm6JeB57Sw5belID4gbXVnaXdhcmFzYWlrdVwgOwor5bel6Iq4576O6KGTID4ga291Z2VpYmlqdXRzdVwgOwor6Iiq56m65pS75pKDID4ga291a3V1a291Z2VraVwgOwor6YeN6YeP6YG45omLID4ganV1cnlvdXNlbnNodVwgOwor6LWk56uL57696J22ID4gYWthdGF0ZWhhY2hvdVwgOwor5oSb6bOl6YCx6ZaTID4gYWljaG91c2h1dWthblwgOwor5bel5qWt5YyW5a2mID4ga291Z3lvdWthZ2FrdVwgOwor5oqA6KGT5o+Q5pC6ID4gZ2lqdXRzdXRlaWtlaVwgOwor5Lit5oCn5a2Q5pifID4gY2h1dXNlaXNoaXNlaVwgOwor5YWs5YWx5LqL5qWtID4ga291a3lvdWppZ3lvdVwgOwor5LiK6LaK5pys57eaID4gam91ZXRzdWhvbnNlblwgOwor54Sh5YSf5aWR57SEID4gbXVzaG91a2VpeWFrdVwgOwor6ZaD5YWJ6Zu755CDID4gc2Vua291ZGVua3l1dVwgOwor5Zu957GN6KiA6KqeID4ga29rdXNla2lnZW5nb1wgOwor5a6a5rip5YuV54mpID4gdGVpb25kb3VidXRzdVwgOwor56m65YmN57W25b6MID4ga3V1emVuemV0c3Vnb1wgOwor5q2m5Yqb5aSW5LqkID4gYnVyeW9rdWdhaWtvdVwgOwor5oi457GN5oqE5pysID4ga29zZWtpc2hvdWhvblwgOwor5pyd6a6u5Y2K5bO2ID4gY2hvdXNlbmhhbnRvdVwgOwor6Z2e5bi45Y+s6ZuGID4gaGlqb3VzaG91c2h1dVwgOwor5YWo6Iis5YmN5ZOoID4gemVucGFuemVuc2hvdVwgOwor5aSn5LmX5LuP5pWZID4gZGFpam91YnVra3lvdVwgOwor5YiG5p6Q6Kmm6aiTID4gYnVuc2VraXNoaWtlblwgOwor5bm96ZyK5bGL5pW3ID4geXV1cmVpeWFzaGlraVwgOwor5pyJ55Sj6ZqO57SaID4geXV1c2Fua2Fpa3l1dVwgOwor5qip5Yqb5pS/5rK7ID4ga2Vucnlva3VzZWlqaVwgOwor6ISF6L+r6Zu76KmxID4ga3lvdWhha3VkZW53YVwgOwor6Ii56I236Ki85Yi4ID4gZnVuYW5pc2hvdWtlblwgOwor5omL5peX5L+h5Y+3ID4gdGViYXRhc2hpbmdvdVwgOwor5qCE6aSK5aSx6Kq/ID4gZWl5b3VzaGl0Y2hvdVwgOwor5L2c5rOB5oyH5pWwID4gc2Fra3lvdXNoaXN1dVwgOwor55u45LqS6YCa5L+hID4gc291Z290c3V1c2hpblwgOwor6KGo5bGk6Zuq5bSpID4gaHlvdXNvdW5hZGFyZVwgOwor54G95a6z5a++562WID4gc2FpZ2FpdGFpc2FrdVwgOwor5LqL5a6f6Kq/5p+7ID4gamlqaXRzdWNob3VzYVwgOwor5pel57WM5paw6IGeID4gbmlra2Vpc2hpbmJ1blwgOwor5Lit6ZaT6YG45oyZID4gY2h1dWthbnNlbmt5b1wgOwor5biC6ZW36YG45oyZID4gc2hpY2hvdXNlbmt5b1wgOwor5rKI6ZmN5rW35bK4ID4gY2hpbmtvdWthaWdhblwgOwor56S+5Lya56aP56WJID4gc2hha2FpZnVrdXNoaVwgOwor6KuW5Yqf6KGM6LOeID4gcm9ua291a291c2hvdVwgOwor5a6f6Le16Lqs6KGMID4gamlzc2Vua3l1dWtvdVwgOwor5q2j5Ymv5LqM6YCaID4gc2VpZnVrdW5pdHN1dVwgOwor5Lqk5oSf56We57WMID4ga291a2Fuc2hpbmtlaVwgOwor5raI6LK76Z2p5ZG9ID4gc2hvdWhpa2FrdW1laVwgOwor5bCC5Lu76Kyb5birID4gc2VuJyduaW5rb3VzaGlcIDsKK+Wkp+mHj+eUn+eUoyA+IHRhaXJ5b3VzZWlzYW5cIDsKK+acgOmrmOapn+WvhiA+IHNhaWtvdWtpbWl0c3VcIDsKK+euoeW8pualveazlSA+IGthbmdlbmdha3Vob3VcIDsKK+aWsOWTgeWQjOanmCA+IHNoaW5waW5kb3V5b3VcIDsKK+WCmeiNkuiyr+iThCA+IGJpa291Y2hvY2hpa3VcIDsKK+iWhOW/l+W8seihjCA+IGhha3VzaGlqYWtrb3VcIDsKK+WLpOWKtOmajue0miA+IGtpbnJvdWthaWt5dXVcIDsKK+aXpeWNsOmWouS/giA+IG5pY2hpaW5rYW5rZWlcIDsKK+mVt+acn+ioiOeUuyA+IGNob3VraWtlaWtha3VcIDsKK+S4jeaZguedgOmZuCA+IGZ1amljaGFrdXJpa3VcIDsKK+aOkuazhOWZqOWumCA+IGhhaXNldHN1a2lrYW5cIDsKK+iLseaWh+ino+mHiCA+IGVpYnVua2Fpc2hha3VcIDsKK+WFjeiyrOadoemghSA+IG1lbnNla2lqb3Vrb3VcIDsKK+mJhOmBk+e3mui3ryA+IHRldHN1ZG91c2Vucm9cIDsKK+aUu+aSg+aFi+WLoiA+IGtvdWdla2l0YWlzZWlcIDsKK+Wumuacn+aYh+e1piA+IHRlaWtpc2hvdWt5dXVcIDsKK+iomOi/sOaWh+azlSA+IGtpanV0c3VidW5wb3VcIDsKK+iHo+exjemZjeS4iyA+IHNoaW5zZWtpa291a2FcIDsKK+eCremFuOmjsuaWmSA+IHRhbnNhbicnaW5yeW91XCA7CivluILloLTmi6HlpKcgPiBzaGlqb3VrYWt1ZGFpXCA7Civnsr7lr4bmqZ/morAgPiBzZWltaXRzdWtpa2FpXCA7CivmqZ/li5Xorablr58gPiBraWRvdWtlaXNhdHN1XCA7CivlubTplpPlj47nm4ogPiBuZW5rYW5zaHV1ZWtpXCA7Civku7Loo4Hoo4HlrpogPiBjaHV1c2Fpc2FpdGVpXCA7CivlgbXlr5/opoHlk6EgPiB0ZWlzYXRzdXlvdWluXCA7Civmlofol53mmKXnp4sgPiBidW5nZWlzaHVuanV1XCA7CivkurrlvaLoip3lsYUgPiBuaW5neW91c2hpYmFpXCA7CivmsLTkuK3nnLzpj6EgPiBzdWljaHV1bWVnYW5lXCA7Civlhazluo/oia/kv5cgPiBrb3Vqb3J5b3V6b2t1XCA7CivlqZrliY3kuqTmuIkgPiBrb256ZW5rb3VzaG91XCA7CivlpKrpmb3pu5LngrkgPiB0YWl5b3Vrb2t1dGVuXCA7CivkuIrlvqHkuIDkurogPiBrYW1pZ29pY2hpbmluXCA7CivkuLvopoHlt6Xmpa0gPiBzaHV5b3Vrb3VneW91XCA7CivkuIvnrYnli5XniakgPiBrYXRvdWRvdWJ1dHN1XCA7Civoh6XolqrlmJfog4YgPiBnYXNoaW5zaG91dGFuXCA7CivoqLrnmYLmlK/mj7QgPiBzaGlucnlvdXNoaWVuXCA7Civou6LlnLDnmYLppIogPiB0ZW5jaGlyeW91eW91XCA7CivkuIfog73pgbjmiYsgPiBiYW4nJ25vdXNlbnNodVwgOwor5pWZ5Lya6Z+z5qW9ID4ga3lvdWthaW9uZ2FrdVwgOwor5Y2D6LyJ5LiA6YGHID4gc2VuemFpaWNoaWd1dVwgOwor5aOy6LK35aWR57SEID4gYmFpYmFpa2VpeWFrdVwgOwor5L2P5a6F5Zyw5bivID4ganV1dGFrdWNoaXRhaVwgOwor5rib6YCf6KOF572uID4gZ2Vuc29rdXNvdWNoaVwgOwor5L2P5a6F5ZWP6aGMID4ganV1dGFrdW1vbmRhaVwgOwor5YWN55ar6KGA5riFID4gbWVuJydla2lrZXNzZWlcIDsKK+aguOWPjeW/nOeCiSA+IGtha3VoYW4nJ25vdXJvXCA7CivmlL7lsITnt5rlraYgPiBob3VzaGFzZW5nYWt1XCA7CivmtYHpgJrntYzot68gPiByeXV1dHN1dWtlaXJvXCA7CivlsIvluLjkuIDmp5ggPiBqaW5qb3VpY2hpeW91XCA7Civlm73mnInosqHnlKMgPiBrb2t1eXV1emFpc2FuXCA7CivluILmsJHpmo7ntJogPiBzaGltaW5rYWlreXV1XCA7CivoqIDoqp7nn6XorZggPiBnZW5nb2NoaXNoaWtpXCA7CivlhazlhbHmlL7pgIEgPiBrb3VreW91aG91c291XCA7CivmlpHnirbntYTnuZQgPiBoYW5qb3Vzb3NoaWtpXCA7Civph43niIbmkoPmqZ8gPiBqdXViYWt1Z2VraWtpXCA7CivlqZrlpJbkuqTmuIkgPiBrb25nYWlrb3VzaG91XCA7Civku7Loo4Hoo4HliKQgPiBjaHV1c2Fpc2FpYmFuXCA7Civkvq/niLXlpKvkurogPiBrb3VzaGFrdWZ1amluXCA7CivmnInoibLph47oj5wgPiB5dXVzaG9rdXlhc2FpXCA7Civpm4blm6PoqLToqJ8gPiBzaHV1ZGFuc29zaG91XCA7CivkuIDmrKHnlKPmpa0gPiBpY2hpamlzYW5neW91XCA7Civnt7Tnv5LkuI3otrMgPiByZW5zaHV1YnVzb2t1XCA7CivllYboiLnlrabmoKEgPiBzaG91c2VuZ2Fra291XCA7Civpuqbol4HonLvom4kgPiBtdWdpd2FyYXRvbmJvXCA7CivmnInpmZDpm4blkIggPiB5dXVnZW5zaHV1Z291XCA7Civov73liqDmlpnph5EgPiB0c3Vpa2FyeW91a2luXCA7CivOoOS4remWk+WtkCA+IHBhaWNodXVrYW5zaGlcIDsKK+mBoOmalOaVmeiCsiA+IGVua2FrdWt5b3Vpa3VcIDsKK+iEs+iEiumrhOa2siA+IG5vdXNla2l6dWlla2lcIDsKK+adseilv+WNl+WMlyA+IHRvdXphaW5hbmJva3VcIDsKK+ioseWuuee3mumHjyA+IGt5b3lvdXNlbnJ5b3VcIDsKK+ato+acreWApOautSA+IHNob3VmdWRhbmVkYW5cIDsKK+W3ruWIpemWoueojiA+IHNhYmV0c3VrYW56ZWlcIDsKK+S4reetieWtpuagoSA+IGNodXV0b3VnYWtrb3VcIDsKK+euoeW8pualveWboyA+IGthbmdlbmdha3VkYW5cIDsKK+WvhOeUn+eUn+eJqSA+IGtpc2Vpc2VpYnV0c3VcIDsKK+S4u+aoqeWbnuW+qSA+IHNodWtlbmthaWZ1a3VcIDsKK+S4oemDqOelnumBkyA+IHJ5b3VidXNoaW50b3VcIDsKK+e1gualreaZgumWkyA+IHNodXVneW91amlrYW5cIDsKK+e1ueW4g+S4gOW3uyA+IGtlbnB1aGl0b21ha2lcIDsKK+mBjuWcp+WvhuavlCA+IGthYXRzdW1pdHN1aGlcIDsKK+iHqueEtumBuOaKniA+IHNoaXplbnNlbnRha3VcIDsKK+WPjeW/nOmAn+W6piA+IGhhbicnbm91c29rdWRvXCA7CivlgbXlr5/ooZvmmJ8gPiB0ZWlzYXRzdWVpc2VpXCA7CivmraPlia/orbDplbcgPiBzZWlmdWt1Z2ljaG91XCA7CivnpZ7liY3ntZDlqZogPiBzaGluemVua2Vra29uXCA7Civms5XnmoTmiYvmrrUgPiBob3V0ZWtpc2h1ZGFuXCA7CivkvZzmpa3poJjln58gPiBzYWd5b3VyeW91aWtpXCA7CivlubTph5HoqLzmm7ggPiBuZW5raW5zaG91c2hvXCA7CivkuqTpgJrlpqjlrrMgPiBrb3V0c3V1Ym91Z2FpXCA7CivnlLrmnZHlkIjkvbUgPiBjaG91c29uZ2FwcGVpXCA7CivmlZnkvJrml4vms5UgPiBreW91a2Fpc2VucG91XCA7CivluZXol6nkvZPliLYgPiBiYWt1aGFudGFpc2VpXCA7CivnrKzkuIDljbDosaEgPiBkYWlpY2hpaW5zaG91XCA7CivnnJ/nqbrljIXoo4UgPiBzaGlua3V1aG91c291XCA7Civnm6Pmn7voqLzot6EgPiBrYW5zYXNob3VzZWtpXCA7CivoqpjlsI7pm7vmtYEgPiB5dXVkb3VkZW5yeXV1XCA7Civlvqnml6fkvZzmpa0gPiBmdWtreXV1c2FneW91XCA7CivmkI3lrrPos6DlhJ8gPiBzb25nYWliYWlzaG91XCA7Civmg7Plg4/lporlqKAgPiBzb3V6b3VuaW5zaGluXCA7CivomZrlv4Plnabmh5AgPiBreW9zaGludGFua2FpXCA7CivogJDpnIfmp4vpgKAgPiB0YWlzaGlua291em91XCA7CivmnInpmZDntJrmlbAgPiB5dXVnZW5reXV1c3V1XCA7Civlm73lnJ/oqIjnlLsgPiBrb2t1ZG9rZWlrYWt1XCA7CivnlJ/lrZjnq7bkuokgPiBzZWl6b25reW91c291XCA7CivluILmsJHpnanlkb0gPiBzaGltaW5rYWt1bWVpXCA7CivlpKfntbHpoJjpgbggPiBkYWl0b3VyeW91c2VuXCA7Civoo5znv5LmlZnogrIgPiBob3NodXVreW91aWt1XCA7Civlj7jku6TplbflrpggPiBzaGlyZWljaG91a2FuXCA7Civos4Pph5HkvZPns7sgPiBjaGluZ2ludGFpa2VpXCA7CivlhajkurrmlZnogrIgPiB6ZW5qaW5reW91aWt1XCA7CivlrpjmiL/plbflrpggPiBrYW5ib3VjaG91a2FuXCA7CivkvIHmpa3np5jlr4YgPiBraWd5b3VoaW1pdHN1XCA7Civmrrrkurrkuovku7YgPiBzYXRzdWppbmppa2VuXCA7Civlh7bmgqrniq/nvaogPiBreW91YWt1aGFuemFpXCA7CivlpKnnhLbos4fmupAgPiB0ZW4nJ25lbnNoaWdlblwgOwor55m+5aeT5LiA5o+GID4gaHlha3VzaG91aWtraVwgOwor57eP5ZCI5aSn5a2mID4gc291Z291ZGFpZ2FrdVwgOwor5LuP6aCC5bCK5YudID4gYnVjaG91c29uc2hvdVwgOwor5Y2D5beu5LiH5YilID4gc2Vuc2FiYW5iZXRzdVwgOwor57ay54q257WE57mUID4gbW91am91c29zaGlraVwgOwor56ys5LiA6YOo6ZW3ID4gZGFpaWNoaWJ1Y2hvdVwgOwor5rqW5rqW5rG65YudID4ganVuanVua2Vzc2hvdVwgOwor5aSn5ZKM5rCR5pePID4geWFtYXRvbWluem9rdVwgOwor5bm05bm05q2z5q2zID4gbmVuJyduZW5zYWlzYWlcIDsKK+WcsOauu+WkieWLlSA+IGNoaWtha3VoZW5kb3VcIDsKK+iyoeaUv+aUuemdqSA+IHphaXNlaWthaWtha3VcIDsKK+WFseWQjOioiOeulyA+IGt5b3Vkb3VrZWlzYW5cIDsKK+WGmeecn+mbu+mAgSA+IHNoYXNoaW5kZW5zb3VcIDsKK+S4jeiJr+iouuaWrSA+IGZ1cnlvdXNoaW5kYW5cIDsKK+awtOeUo+Wkp+WtpiA+IHN1aXNhbmRhaWdha3VcIDsKK+WNmOW8j+eBq+WxsSA+IHRhbnNoaWtpa2F6YW5cIDsKK+S4gOWIhuS4gOWOmCA+IGljaGlidWljaGlyaW5cIDsKK+Wun+WcsOaknOiovCA+IGppdGNoaWtlbnNob3VcIDsKK+WMl+a4heS6i+WkiSA+IGhva3VzaGluamloZW5cIDsKK+S6uumdoueNo+W/gyA+IG5pbm1lbmp1dXNoaW5cIDsKK+ioiOeUu+autemajiA+IGtlaWtha3VkYW5rYWlcIDsKK+ekvuWToemjn+WggiA+IHNoYWluc2hva3Vkb3VcIDsKK+aNp+iFuee1tuWAkiA+IGhvdWZ1a3V6ZXR0b3VcIDsKK+mDteS+v+aWmemHkSA+IHl1dWJpbnJ5b3VraW5cIDsKK+S6lOWNgeS4ieasoSA+IGdvanV1c2FudHN1Z2lcIDsKK+WEquWLneWKo+aVlyA+IHl1dXNob3VyZXBwYWlcIDsKK+W/q+mAn+WIl+i7iiA+IGthaXNva3VyZXNzaGFcIDsKK+mbo+awkeadoee0hCA+IG5hbm1pbmpvdXlha3VcIDsKK+Wbvemam+aUvumAgSA+IGtva3VzYWlob3Vzb3VcIDsKK+WFreWNgeS9meW3niA+IHJva3VqdXV5b3NodXVcIDsKK+aApeihjOWIl+i7iiA+IGt5dXVrb3VyZXNzaGFcIDsKK+ajruael+WcsOW4ryA+IHNoaW5yaW5jaGl0YWlcIDsKK+mOluWbveaUv+etliA+IHNha29rdXNlaXNha3VcIDsKK+WFt+ixoee+juihkyA+IGd1c2hvdWJpanV0c3VcIDsKK+aHkOefs+aWmeeQhiA+IGthaXNla2lyeW91cmlcIDsKK+ewoeaYk+mjn+WggiA+IGthbicnaXNob2t1ZG91XCA7Civmmpfpu5LlpKfpmbggPiBhbmtva3V0YWlyaWt1XCA7Civlj43li5Xpnanlkb0gPiBoYW5kb3VrYWt1bWVpXCA7Civlha3moLnmuIXmtYQgPiByb2trb25zaG91am91XCA7CivllYbmpa3kuLvnvqkgPiBzaG91Z3lvdXNodWdpXCA7Civkv6HpoLzphrjmiJAgPiBzaGlucmFpam91c2VpXCA7CivlhbHlkIzlo7DmmI4gPiBreW91ZG91c2VpbWVpXCA7CivlibLlvJXliIfnrKYgPiB3YXJpYmlraWtpcHB1XCA7CivlhrfljbTmnJ/plpMgPiByZWlreWFrdWtpa2FuXCA7CivkuZ3mrbvkuIDnlJ8gPiBreXV1c2hpaXNzaG91XCA7CivkuK3oj6/msJHlm70gPiBjaHV1a2FtaW5rb2t1XCA7Civmi6Hlo7Doo4Xnva4gPiBrYWt1c2Vpc291Y2hpXCA7CivpgZPot6/lu7roqK0gPiBkb3Vyb2tlbnNldHN1XCA7CivkurrpgKDlrp3nn7MgPiBqaW56b3Vob3VzZWtpXCA7CivovLjlh7rkv53pmbogPiB5dXNodXRzdWhva2VuXCA7Civlv4Xkv67np5Hnm64gPiBoaXNzaHV1a2Ftb2t1XCA7CivntabkuI7miYDlvpcgPiBreXV1eW9zaG90b2t1XCA7CivmrbTlj7LlrabmtL4gPiByZWtpc2hpZ2FrdWhhXCA7CivnrYnlt67mlbDliJcgPiB0b3VzYXN1dXJldHN1XCA7CivlkJvlrZDosbnlpIkgPiBrdW5zaGloeW91aGVuXCA7CivkuIvooajlj4LnhacgPiBrYWh5b3VzYW5zaG91XCA7Civli6Llipvnr4Tlm7IgPiBzZWlyeW9rdWhhbicnaVwgOwor6YCa6LKo5pS/562WID4gdHN1dWthc2Vpc2FrdVwgOwor54us5Y2g5LyB5qWtID4gZG9rdXNlbmtpZ3lvdVwgOwor54m55qip6ZqO57SaID4gdG9ra2Vua2Fpa3l1dVwgOwor5q2j6KaP5puy57eaID4gc2Vpa2lreW9rdXNlblwgOwor5YKN6IG054Sh5paZID4gYm91Y2hvdW11cnlvdVwgOwor55Sj5qWt6LOH5pysID4gc2FuZ3lvdXNoaWhvblwgOwor56uL55+z6Zu75qmfID4gdGF0ZWlzaGlkZW5raVwgOwor5aSc6ZaT5Lit5a2mID4geWFrYW5jaHV1Z2FrdVwgOwor6LK/5piT5pGp5pOmID4gYm91ZWtpbWFzYXRzdVwgOwor5bm06Lyq5Y+y5a2mID4gbmVucmluc2hpZ2FrdVwgOwor5qmf5qKw57+76KizID4ga2lrYWlob24nJ3lha3VcIDsKK+W+uemgreW+ueWwviA+IHRldHRvdXRldHN1YmlcIDsKK+mHkeenkeeOieadoSA+IGtpbmthZ3lva3Vqb3VcIDsKK+awkemWk+eZguazlSA+IG1pbmthbnJ5b3Vob3VcIDsKK+aDheazgeiovOaLoCA+IGpvdWt5b3VzaG91a29cIDsKK+W/g+aCuOS6oumAsiA+IHNoaW5raWtvdXNoaW5cIDsKK+WumuaAp+WIhuaekCA+IHRlaXNlaWJ1bnNla2lcIDsKK+Wbg+WtkOiogOiRiSA+IGhheWFzaGlrb3RvYmFcIDsKK+eJueioseaKgOihkyA+IHRva2t5b2dpanV0c3VcIDsKK+WgsemBk+WGmeecnyA+IGhvdWRvdXNoYXNoaW5cIDsKK+acgOS9juizg+mHkSA+IHNhaXRlaWNoaW5naW5cIDsKK+eerOmWk+mbu+aWrSA+IHNodW5rYW5kZW5kYW5cIDsKK+W5tOmgreaVmeabuCA+IG5lbnRvdWt5b3VzaG9cIDsKK+adsea0i+autemAmiA+IHRvdXlvdWRhbnRzdXVcIDsKK+eLrOWNoOizh+acrCA+IGRva3VzZW5zaGlob25cIDsKK+adseaWueaVmeS8miA+IHRvdWhvdWt5b3VrYWlcIDsKK+iHquimmueXh+eKtiA+IGppa2FrdXNob3Vqb3VcIDsKK+WkqeS9k+ims+a4rCA+IHRlbnRhaWthbnNva3VcIDsKK+e+pOmbhuihjOWLlSA+IGd1bnNodXVrb3Vkb3VcIDsKK+ihhuS6uueSsOimliA+IHNodXVqaW5rYW5zaGlcIDsKK+i/t+i1sOelnue1jCA+IG1laXNvdXNoaW5rZWlcIDsKK+aIpueVpeWFteWZqCA+IHNlbnJ5YWt1aGVpa2lcIDsKK+WFiOWItuaUu+aSgyA+IHNlbnNlaWtvdWdla2lcIDsKK+aciee1puS8keaahyA+IHl1dWt5dXVreXV1a2FcIDsKK+imi+WtpuaXheihjCA+IGtlbmdha3VyeW9rb3VcIDsKK+WbveWGhee1jOa4iCA+IGtva3VuYWlrZWl6YWlcIDsKK+WvvuepuuWwhOaSgyA+IHRhaWt1dXNoYWdla2lcIDsKK+avlOi8g+WvvueFpyA+IGhpa2FrdXRhaXNob3VcIDsKK+W4guS4remKgOihjCA+IHNoaWNodXVnaW5rb3VcIDsKK+WumueCueims+a4rCA+IHRlaXRlbmthbnNva3VcIDsKK+S/g+aIkOagveWfuSA+IHNva3VzZWlzYWliYWlcIDsKK+izg+mHkeagvOW3riA+IGNoaW5naW5rYWt1c2FcIDsKK+aUr+mFjemajue0miA+IHNoaWhhaWthaWt5dXVcIDsKK+S6jOmHjemcsuWHuiA+IG5panV1cm9zaHV0c3VcIDsKK+WLleiEiOehrOWMliA+IGRvdW15YWt1a291a2FcIDsKK+mao+aOpemDqOmaiiA+IHJpbnNldHN1YnV0YWlcIDsKK+W7uuioreapn+aisCA+IGtlbnNldHN1a2lrYWlcIDsKK+S4iuWxpOmajue0miA+IGpvdXNvdWthaWt5dXVcIDsKK+S4ieaLneS5neaLnSA+IHNhbnBhaWt5dXVoYWlcIDsKK+eJueauiuazleS6uiA+IHRva3VzaHVob3VqaW5cIDsKK+Wjq+mtguWVhuaJjSA+IHNoaWtvbnNob3VzYWlcIDsKK+iZmuW/g+aLheaHkCA+IGt5b3NoaW50YW5rYWlcIDsKK+WCt+eXheaNleiZnCA+IHNob3VieW91aG9yeW9cIDsKK+eEoeaAp+eUn+auliA+IG11c2Vpc2Vpc2hva3VcIDsKK+iyoeaUv+aUv+etliA+IHphaXNlaXNlaXNha3VcIDsKK+mZuOS4iuertuaKgCA+IHJpa3Vqb3VreW91Z2lcIDsKK+WNmuimp+W8t+iomCA+IGhha3VyYW5reW91a2lcIDsKK+S6uuaoqeS+teWusyA+IGppbmtlbnNoaW5nYWlcIDsKK+e3j+mgmOaBr+WtkCA+IHNvdXJ5b3VtdXN1a29cIDsKK+iPnOmjn+S4u+e+qSA+IHNhaXNob2t1c2h1Z2lcIDsKK+i1pOWklueZuuaVoyA+IHNla2lnYWloYXNzYW5cIDsKK+ihm+aYn+mAmuS/oSA+IGVpc2VpdHN1dXNoaW5cIDsKK+S6uuWToeWJiua4myA+IGppbicnaW5zYWt1Z2VuXCA7CivnjoflhYjouqzooYwgPiBzb3NzZW5reXV1a291XCA7CivlhY3nqI7miYDlvpcgPiBtZW56ZWlzaG90b2t1XCA7CivpmLLnuK7liqDlt6UgPiBib3VzaHVrdWtha291XCA7CivopIflvI/nsL/oqJggPiBmdWt1c2hpa2lib2tpXCA7Civosqzku7vliIbmi4UgPiBzZWtpbmluYnVudGFuXCA7CivmrablipvooYzkvb8gPiBidXJ5b2t1a291c2hpXCA7CivnlarntYTnt6jmiJAgPiBiYW5ndW1paGVuc2VpXCA7CivkvJHmga/mmYLplpMgPiBreXV1c29rdWppa2FuXCA7Civkuozph43plqLnr4AgPiBuaWp1dWthbnNldHN1XCA7CivoprPlhYnnlKPmpa0gPiBrYW5rb3VzYW5neW91XCA7CivljZrlvJXml4HoqLwgPiBoYWt1aW5ib3VzaG91XCA7CivlhbHosqnkvJrnpL4gPiBreW91aGFuZ2Fpc2hhXCA7Civmj5rpmbjoiaboiYcgPiB5b3VyaWt1a2FudGVpXCA7CivkuLvlrqLpoZvlgJIgPiBzaHVrYWt1dGVudG91XCA7CivlhazlrrPlr77nrZYgPiBrb3VnYWl0YWlzYWt1XCA7Civpmb3li5XkvZzmiKYgPiB5b3Vkb3VzYWt1c2VuXCA7Civoqpjmi5Dniq/kurogPiB5dXVrYWloYW4nJ25pblwgOwor5YaF6IeT55a+5oKjID4gbmFpem91c2hpa2thblwgOwor5L+u5aOr6KuW5paHID4gc2h1dXNoaXJvbmJ1blwgOwor6auY562J5pWZ6IKyID4ga291dG91a3lvdWlrdVwgOwor5ris6YeP5qmf5qKwID4gc29rdXJ5b3VraWthaVwgOwor6ZyK5oSf5ZWG5rOVID4gcmVpa2Fuc2hvdWhvdVwgOwor5ZGq54mp5bSH5oudID4ganVidXRzdXN1dWhhaVwgOwor5paH5Lq65aKo5a6iID4gYnVuamluYm9ra2FrdVwgOwor5om/55+l5LmL5YqpID4gc2hvdWNoaW5vc3VrZVwgOwor6LaK5bm06I2J5pysID4gZXRzdW5lbnNvdWhvblwgOwor6YCa5Yuk5YiX6LuKID4gdHN1dWtpbnJlc3NoYVwgOwor57K+6YCy5paZ55CGID4gc2hvdWppbnJ5b3VyaVwgOwor5Li75Yqb6YOo6ZqKID4gc2h1cnlva3VidXRhaVwgOwor6YO35Zyf5paH5a2mID4ga3lvdWRvYnVuZ2FrdVwgOwor5pyf5pyr6Kmm6aiTID4ga2ltYXRzdXNoaWtlblwgOwor6YCj6YKm6aaW55u4ID4gcmVucG91c2h1c2hvdVwgOwor5oOF5aCx5bel5a2mID4gam91aG91a291Z2FrdVwgOwor5LiD5YiG5LiJ5YiGID4gc2hpY2hpYnVzYW5idVwgOwor5YWs54i15aSr5Lq6ID4ga291c2hha3VmdWppblwgOwor5Y+C6ICD6LOH5paZID4gc2Fua291c2hpcnlvdVwgOwor54us5pat5bCC6KGMID4gZG9rdWRhbnNlbmtvdVwgOwor5YWl5a2m6ICD5p+7ID4gbnl1dWdha3Vrb3VzYVwgOwor6YGt6Zuj5L+h5Y+3ID4gc291bmFuc2hpbmdvdVwgOwor5rWB5YuV6LOH55SjID4gcnl1dWRvdXNoaXNhblwgOwor5LiL5Zub5Y2K5pyfID4gc2hpbW9zaGloYW5raVwgOwor6YG45oqe56eR55uuID4gc2VudGFrdWthbW9rdVwgOwor5oOF5aCx5qSc57SiID4gam91aG91a2Vuc2FrdVwgOwor6aCC5LiK5Lya6KuHID4gY2hvdWpvdWthaWRhblwgOwor5YWx5riI57WE5ZCIID4ga3lvdXNhaWt1bWlhaVwgOwor5Y+C6ICD5pu455uuID4gc2Fua291c2hvbW9rdVwgOwor5rK75a6J6K2m5a+fID4gY2hpYW5rZWlzYXRzdVwgOwor6IiI5qWt6YqA6KGMID4ga291Z3lvdWdpbmtvdVwgOwor6KGM5pS/5pu45aOrID4gZ3lvdXNlaXNob3NoaVwgOwor6Zai6YCj6aCF55uuID4ga2FucmVua291bW9rdVwgOwor6Zuj6KGM6Ium6KGMID4gbmFuZ3lvdWt1Z3lvdVwgOwor6aCQ6YeR6YCa5bizID4geW9raW50c3V1Y2hvdVwgOwor57ay6Iac5Yml6ZuiID4gbW91bWFrdWhha3VyaVwgOwor6Ly45Ye65qSc5p+7ID4geXVzaHV0c3VrZW5zYVwgOwor5oyH5a6a6YqY5p+EID4gc2hpdGVpbWVpZ2FyYVwgOwor6YWS5rGg6IKJ5p6XID4gc2h1Y2hpbmlrdXJpblwgOwor5YSq562J6LOe54q2ID4geXV1dG91c2hvdWpvdVwgOwor6buE6YeR5YiG5YmyID4gb3Vnb25idW5rYXRzdVwgOwor5L+u57mV5bel5aC0ID4gc2h1dXplbmtvdWpvdVwgOwor5LqM6ICF6YG45LiAID4gbmlzaGFzZW4nJ2l0c3VcIDsKK+eKtuazgeiovOaLoCA+IGpvdWt5b3VzaG91a29cIDsKK+iPjOmhnuWtpuiAhSA+IGtpbnJ1aWdha3VzaGFcIDsKK+S7suijgeOAheWIpCA+IGNodXVzYWlzYWliYW5cIDsKK+WkluWbvemDteS+vyA+IGdhaWtva3V5dXViaW5cIDsKK+S6pOmAmuWcsOeNhCA+IGtvdXRzdXVqaWdva3VcIDsKK+mbhuWbo+e1kOWpmiA+IHNodXVkYW5rZWtrb25cIDsKK+aEm+eOqeWLleeJqSA+IGFpZ2FuZG91YnV0c3VcIDsKK+mWk+aOpeipseazlSA+IGthbnNldHN1d2Fob3VcIDsKK+WtpueUn+mDqOmVtyA+IGdha3VzZWlidWNob3VcIDsKK+mbsuW9ouWumuimjyA+IGt1bW9nYXRham91Z2lcIDsKK+Wxi+WkluW6g+WRiiA+IG9rdWdhaWtvdWtva3VcIDsKK+S6oeWRveaWh+WtpiA+IGJvdW1laWJ1bmdha3VcIDsKK+mAo+e2mumWouaVsCA+IHJlbnpva3VrYW5zdXVcIDsKK+ethui3oemRkeWumiA+IGhpc3Nla2lrYW50ZWlcIDsKK+W7g+eJqeWIqeeUqCA+IGhhaWJ1dHN1cml5b3VcIDsKK+i7iuS4oeS8muekviA+IHNoYXJ5b3VnYWlzaGFcIDsKK+m6u+iWrOW4uOe/kiA+IG1heWFrdWpvdXNodXVcIDsKK+S4jeW+l+imgemgmCA+IGZ1dG9rdXlvdXJ5b3VcIDsKK+WxseWys+WcsOW4ryA+IHNhbmdha3VjaGl0YWlcIDsKK+WVj+mhjOmgmOWfnyA+IG1vbmRhaXJ5b3Vpa2lcIDsKK+WAi+WIpeiyqeWjsiA+IGtvYmV0c3VoYW5iYWlcIDsKK+W5s+ihoeaEn+immiA+IGhlaWtvdWthbmtha3VcIDsKK+WGheWbvemDteS+vyA+IG5haWtva3V5dXViaW5cIDsKK+WgsemBk+eVque1hCA+IGhvdWRvdWJhbmd1bWlcIDsKK+WFseWQjOe1hOWQiCA+IGt5b3Vkb3VrdW1pYWlcIDsKK+e0meS4iuioiOeUuyA+IHNoaWpvdWtlaWtha3VcIDsKK+S6jOmHjeWbveexjSA+IG5panV1a29rdXNla2lcIDsKK+ihjOaUv+iotOionyA+IGd5b3VzZWlzb3Nob3VcIDsKK+e1tue4geaKteaKlyA+IHpldHN1ZW50ZWlrb3VcIDsKK+WMv+WQjeaJueiplSA+IHRva3VtZWloaWh5b3VcIDsKK+mVt+acn+WbveWCtSA+IGNob3VraWtva3VzYWlcIDsKK+WFiee3mueZguazlSA+IGtvdXNlbnJ5b3Vob3VcIDsKK+a1geWLleizh+acrCA+IHJ5dXVkb3VzaGlob25cIDsKK+iovOWIuOW4guWgtCA+IHNob3VrZW5zaGlqb3VcIDsKK+W7uuioreW3peS6iyA+IGtlbnNldHN1a291amlcIDsKK+WkieaFi+aAp+assiA+IGhlbnRhaXNlaXlva3VcIDsKK+epuuS4ree0sOiPjCA+IGt1dWNodXVzYWlraW5cIDsKK+S7o+mHkeW8leaPmyA+IGRhaWtpbmhpa2lrYWVcIDsKK+iMtueVqueLguiogCA+IGNoYWJhbmt5b3VnZW5cIDsKK+S6pOmAmuimj+WJhyA+IGtvdXRzdXVraXNva3VcIDsKK+S8muW4reaWmeeQhiA+IGthaXNla2lyeW91cmlcIDsKK+ePvueJqeebuOWgtCA+IGdlbmJ1dHN1c291YmFcIDsKK+adn+e4m+eQhuirliA+IHNva3ViYWt1cmlyb25cIDsKK+WFrOato+iovOabuCA+IGtvdXNlaXNob3VzaG9cIDsKK+WQjOebn+aAoOalrSA+IGRvdW1laXRhaWd5b3VcIDsKK+ihjOWLleaWuemHnSA+IGtvdWRvdWhvdXNoaW5cIDsKK+mBqeato+S+oeagvCA+IHRla2lzZWlrYWtha3VcIDsKK+S6uueoruaUueiJryA+IGppbnNodWthaXJ5b3VcIDsKK+WNiua1geWLleS9kyA+IGhhbnJ5dXVkb3V0YWlcIDsKK+aZruS7j+aIpuS6iSA+IGZ1ZnV0c3VzZW5zb3VcIDsKK+S6jOmHjee1kOWQiCA+IG5panV1a2V0c3Vnb3VcIDsKK+WFjeiyrOeJueaoqSA+IG1lbnNla2l0b2trZW5cIDsKK+aHsuaIkuWHpuWIhiA+IGNob3VrYWlzaG9idW5cIDsKK+S4jeW/g+W+l+iAhSA+IGZ1a29rb3JvZW1vbm9cIDsKK+ixquaUvuejiuiQvSA+IGdvdWhvdXJhaXJha3VcIDsKK+iJpuegsuWwhOaSgyA+IGthbnBvdXNoYWdla2lcIDsKK+mWouaVsOino+aekCA+IGthbnN1dWthaXNla2lcIDsKK+mAmuS/oeism+W6pyA+IHRzdXVzaGlua291emFcIDsKK+WkluiyqOeNsuW+lyA+IGdhaWtha2FrdXRva3VcIDsKK+W/g+aCuOaYgumAsiA+IHNoaW5raWtvdXNoaW5cIDsKK+mbu+awl+a6tuaOpSA+IGRlbmtpeW91c2V0c3VcIDsKK+WQrueZsOiIkOeXlCA+IHNlbicneW91c2hpamlcIDsKK+WKtOWDjeadoeS7tiA+IHJvdWRvdWpvdWtlblwgOwor5aSW5Zu96Iiq6LevID4gZ2Fpa29rdWtvdXJvXCA7CivkvJ3pgIHpgJ/luqYgPiBkZW5zb3Vzb2t1ZG9cIDsKK+S4gOacrOiqv+WtkCA+IGlwcG9uZGpvdXNoaVwgOwor5aKc6JC95LqL5pWFID4gdHN1aXJha3VqaWtvXCA7Civnt5rpppnoirHngasgPiBzZW5rb3VoYW5hYmlcIDsKK+adseS6rOmDveaUvyA+IHRvdWt5b3V0b3NlaVwgOwor6LuN5LqL55Sj5qWtID4gZ3VuamlzYW5neW91XCA7Civku6PnkIbniafluKsgPiBkYWlyaWJva3VzaGlcIDsKK+S4ieWNgeS4ieaJgCA+IHNhbmp1dXNhbnNob1wgOwor5LiA5qyh57ea6LyqID4gaWNoaWppc2VucmluXCA7CivkvqHmoLzlpInli5UgPiBrYWtha3VoZW5kb3VcIDsKK+aCoOaCoOiHqumBqSA+IHl1dXl1dWppdGVraVwgOwor5bGx57Sr5rC05piOID4gc2Fuc2hpc3VpbWVpXCA7CivnqbrovLjosqjniakgPiBrdXV5dWthbW90c3VcIDsKK+ims+WFieizh+a6kCA+IGthbmtvdXNoaWdlblwgOwor6KaW6Kaa6KiA6KqeID4gc2hpa2FrdWdlbmdvXCA7CivpurvolqzluLjnlKggPiBtYXlha3Vqb3V5b3VcIDsKK+aXpeacnei+nuWFuCA+IG5pdGNob3VqaXRlblwgOwor5bqX6aCt5YK15Yi4ID4gdGVudG91c2Fpa2VuXCA7CivniYjmqKnmiYDmnIkgPiBoYW5rZW5zaG95dXVcIDsKK+S4gOaziuihjOi7jSA+IGlwcGFrdWtvdWd1blwgOwor6Z2S56m65biC5aC0ID4gYW96b3Jhc2hpam91XCA7CivplovnpajntZDmnpwgPiBrYWloeW91a2Vra2FcIDsKK+WNmOeLrOism+WSjCA+IHRhbmRva3Vrb3V3YVwgOwor6L+R5Luj56eR5a2mID4ga2luZGFpa2FnYWt1XCA7CivnhKHnpZ7oq5bogIUgPiBtdXNoaW5yb25zaGFcIDsKK+acieW9ouiyoeeUoyA+IHl1dWtlaXphaXNhblwgOwor5rKz5bK45q615LiYID4ga2FnYW5kYW5reXV1XCA7CivlpKrpmb3lhYnnt5ogPiB0YWl5b3Vrb3VzZW5cIDsKK+WEhOS4h+mVt+iAhSA+IG9rdW1hbmNob3VqYVwgOwor5YyW57Kn55+z6bm4ID4ga2VzaG91c2Vra2VuXCA7CivoqIDoqp7nmYLms5UgPiBnZW5nb3J5b3Vob3VcIDsKK+WuieWumuaIkOmVtyA+IGFudGVpc2VpY2hvdVwgOwor56We5qip5pS/5rK7ID4gc2hpbmtlbnNlaWppXCA7Civoh7PkuIrlkb3ku6QgPiBzaGlqb3VtZWlyZWlcIDsKK+mfs+alvee+juWtpiA+IG9uZ2FrdWJpZ2FrdVwgOwor5Yq05YON5aSn6IejID4gcm91ZG91ZGFpamluXCA7CivpmY3moLzkurrkuosgPiBrb3VrYWt1amluamlcIDsKK+eqkue0oOiCpeaWmSA+IGNoaXNzb2hpcnlvdVwgOwor6LuN6YOo54us6KOBID4gZ3VuYnVkb2t1c2FpXCA7Civlhazli5nnlr7nl4UgPiBrb3VtdXNoaXBwZWlcIDsKK+iKseeBq+Wkp+S8miA+IGhhbmFiaXRhaWthaVwgOwor6KGM6Zuy5rWB5rC0ID4ga291dW5yeXV1c3VpXCA7Civlj43lr77oqIrllY8gPiBoYW50YWlqaW5tb25cIDsKK+aWueWQkei7ouaPmyA+IGhvdWtvdXRlbmthblwgOwor54Sh57ea5oqA6KGTID4gbXVzZW5naWp1dHN1XCA7Civoia7kuIvoia7kuIogPiBnb25rYWdvbnNob3VcIDsKK+acquadpeWujOS6hiA+IG1pcmFpa2FucnlvdVwgOwor5YmN6YCy6YOo6ZqKID4gemVuc2hpbmJ1dGFpXCA7Civml6LntITliIbmlbAgPiBraXlha3VidW5zdXVcIDsKK+WFrOWWtuS9j+WuhSA+IGtvdWVpanV1dGFrdVwgOwor55uj5p+75aCx5ZGKID4ga2Fuc2Fob3Vrb2t1XCA7CivmnIjntYzlkajmnJ8gPiBnZWtrZWlzaHV1a2lcIDsKK+enkeWtpumbkeiqjCA+IGthZ2FrdXphc3NoaVwgOwor6YCa6LKo57Wx5ZCIID4gdHN1dWthdG91Z291XCA7Civlr77lnLDpgJ/luqYgPiB0YWljaGlzb2t1ZG9cIDsKK+WumOWDmuS4u+e+qSA+IGthbnJ5b3VzaHVnaVwgOwor5b6h6Kq/5a2Q6ICFID4gb2Nob3VzaGltb25vXCA7CivkuozotrPkuInmlocgPiBuaXNva3VzYW5tb25cIDsKK+mFuOaAp+iCpeaWmSA+IHNhbnNlaWhpcnlvdVwgOwor6KiA5paH5LiA6Ie0ID4gZ2VuYnVuJydpdGNoaVwgOwor5YWx5ZCM566h55CGID4ga3lvdWRvdWthbnJpXCA7CivmtbflpJbml4XooYwgPiBrYWlnYWlyeW9rb3VcIDsKK+S4jeWvqeWwi+WVjyA+IGZ1c2hpbmppbm1vblwgOwor6LKs5Lu76Lui5auBID4gc2VraW5pbnRlbmthXCA7CivplbfmnJ/miYvlvaIgPiBjaG91a2l0ZWdhdGFcIDsKK+e1puS4juawtOa6liA+IGt5dXV5b3N1aWp1blwgOwor5bCR5pWw57K+6YutID4gc2hvdXN1dXNlaWVpXCA7Civou6Lmj5vnpL7lgrUgPiB0ZW5rYW5zaGFzYWlcIDsKK+ayv+WyuOa8gealrSA+IGVuZ2FuZ3lvZ3lvdVwgOwor5Lqk6Zqb56S+5LyaID4ga291c2Fpc2hha2FpXCA7CivliLbpmZDkuovpoIUgPiBzZWlnZW5qaWtva3VcIDsKK+WIkeS6i+iyrOS7uyA+IGtlaWppc2VraW5pblwgOwor5re35ZCI54Gr6JasID4ga29uZ291a2F5YWt1XCA7Civlj4zli5nlpZHntIQgPiBzb3VtdWtlaXlha3VcIDsKK+WPpOWFuOWtpuiAhSA+IGtvdGVuZ2FrdXNoYVwgOwor55Sf5rS75om25YqpID4gc2Vpa2F0c3VmdWpvXCA7CivnlKjnm4rnianmqKkgPiB5b3Vla2lidWtrZW5cIDsKK+WHuuWLpOaZgumWkyA+IHNodWtraW5qaWthblwgOwor55u46Zai5L+C5pWwID4gc291a2Fua2Vpc3V1XCA7CivnpL7kvJrkv53pmpwgPiBzaGFrYWlob3Nob3VcIDsKK+WNlOWQjOWLleS9nCA+IGt5b3Vkb3Vkb3VzYVwgOwor5oOF57eS57qS57a/ID4gam91Y2hvdGVubWVuXCA7Civnq4vmhrLlkJvkuLsgPiByaWtrZW5rdW5zaHVcIDsKK+aXheWIuOafu+iovCA+IHJ5b2tlbnNhc2hvdVwgOwor6JC96Iqx54u86JeJID4gcmFra2Fyb3V6ZWtpXCA7CivljJblraboo73lk4EgPiBrYWdha3VzZWloaW5cIDsKK+mBqeaAp+aknOafuyA+IHRla2lzZWlrZW5zYVwgOwor55Sf5ZG956eR5a2mID4gc2VpbWVpa2FnYWt1XCA7Civlt6XkvZzmqZ/morAgPiBrb3VzYWt1a2lrYWlcIDsKK+Wbs+abuOmkqOWtpiA+IHRvc2hva2FuZ2FrdVwgOwor5Lq65Y+j5ZWP6aGMID4gamlua291bW9uZGFpXCA7CivlvqHnlKjlrabogIUgPiBnb3lvdWdha3VzaGFcIDsKK+awl+Wcp+mFjee9riA+IGtpYXRzdWhhaWNoaVwgOwor5pmC6ZmQ54iG5by+ID4gamlnZW5iYWt1ZGFuXCA7Civoh6rnhLblr77mlbAgPiBzaGl6ZW50YWlzdXVcIDsKK+WknOmWk+aSruW9sSA+IHlha2Fuc2F0c3VlaVwgOwor56We57WM57mK57atID4gc2hpbmtlaXNlbicnaVwgOwor5rWB5YuV6LKg5YK1ID4gcnl1dWRvdWZ1c2FpXCA7CivmnIDpq5joqJjpjLIgPiBzYWlrb3VraXJva3VcIDsKK+aWsOimj+S6i+alrSA+IHNoaW5raWppZ3lvdVwgOwor5aeT5ZCN5Yik5patID4gc2VpbWVpaGFuZGFuXCA7Civlj43lr77ntabku5ggPiBoYW50YWlreXV1ZnVcIDsKK+aVl+aIpuaKleaJiyA+IGhhaXNlbnRvdXNodVwgOwor5q2m5ryi5LiJ6Y6uID4gYnVrYW5zYW5jaGluXCA7CivkuIDmnJ3kuIDlpJUgPiBpdGNob3Vpc3Nla2lcIDsKK+WutuWGheW3pealrSA+IGthbmFpa291Z3lvdVwgOwor5rWF5a2m6I+y5omNID4gc2VuZ2FrdWhpc2FpXCA7Civmt7flkIjntYzmuIggPiBrb25nb3VrZWl6YWlcIDsKK+W4guawkeWbo+S9kyA+IHNoaW1pbmRhbnRhaVwgOwor5LyB5qWt6YCj5ZCIID4ga2lneW91cmVuZ291XCA7CivmmYLku6PmhJ/oppogPiBqaWRhaWthbmtha3VcIDsKK+WFseWQjOWboOWtkCA+IGt5b3Vkb3VpbnNoaVwgOwor5LiA5oSP5bCC5b+DID4gaWNoaWlzZW5zaGluXCA7CivmrKfnsbPoq7jlm70gPiBvdWJlaXNob2tva3VcIDsKK+mdqeWRvemBi+WLlSA+IGtha3VtZWl1bmRvdVwgOwor57SU57KL5Z+56aSKID4ganVuc3VpYmFpeW91XCA7Civlho3kuInlho3lm5sgPiBzYWlzYW5zYWlzaGlcIDsKK+W9ouiAjOS4iuWtpiA+IGtlaWppam91Z2FrdVwgOwor5Zyw5pa55Zuj5L2TID4gY2hpaG91ZGFudGFpXCA7CivlhazmsJHlrabmoKEgPiBrb3VtaW5nYWtrb3VcIDsKK+S+oeagvOe1seWItiA+IGtha2FrdXRvdXNlaVwgOwor5oSP5Yyg55m76YyyID4gaXNob3V0b3Vyb2t1XCA7Civlj5fli5XllqvnhZkgPiBqdWRvdWtpdHN1ZW5cIDsKK+ijvee8tuW3peWgtCA+IHNlaWthbmtvdWpvdVwgOwor5Zu65b2i54eD5paZID4ga29rZWluZW5yeW91XCA7Civpg7Xkvr/ngrrmm78gPiB5dXViaW5rYXdhc2VcIDsKK+WPo+mgreW8geirliA+IGtvdXRvdWJlbnJvblwgOwor56uL5L2T5YyW5a2mID4gcml0dGFpa2FnYWt1XCA7Civlk4HooYzmlrnmraMgPiBoaW5rb3Vob3VzZWlcIDsKK+iyqeWjsuS+oeagvCA+IGhhbmJhaWtha2FrdVwgOwor5oGL5oSb57WQ5amaID4gcmVuJydhaWtla2tvblwgOwor5YyX57Gz5Zyf5Lq6ID4gaG9rdWJlaWRvamluXCA7Civoh6jmtbflrabmoKEgPiByaW5rYWlnYWtrb3VcIDsKK+S4gOiqnuS4gOiqniA+IGljaGlnb2ljaGlnb1wgOwor5Y2K5a6Y5Y2K5rCRID4gaGFua2FuaGFubWluXCA7CivlpKflm73kuLvnvqkgPiB0YWlrb2t1c2h1Z2lcIDsKK+a0i+acjeeuquespSA+IHlvdWZ1a3VkYW5zdVwgOwor5LiA5pa56YCa6KGMID4gaXBwb3V0c3V1a291XCA7Civlj4LogIPmlofnjK4gPiBzYW5rb3VidW5rZW5cIDsKK+S/oeS7sOeuh+adoSA+IHNoaW5rb3VrYWpvdVwgOwor5rCR6ZaT6LOH5pysID4gbWlua2Fuc2hpaG9uXCA7CivkuIDmsYHkuIDoj5wgPiBpY2hpanV1aXNzYWlcIDsKK+WNgeeoruertuaKgCA+IGppc3NodWt5b3VnaVwgOwor5bmz5ZKM5YWx5a2YID4gaGVpd2FreW91em9uXCA7CivljZjnt5rpgYvou6IgPiB0YW5zZW4nJ3VudGVuXCA7Civkuovlvozmib/oq74gPiBqaWdvc2hvdWRha3VcIDsKK+aYoOWDj+S/oeWPtyA+IGVpem91c2hpbmdvdVwgOwor5a6J5YWo5a++562WID4gYW56ZW50YWlzYWt1XCA7CivnlJ/nlKPntYTlkIggPiBzZWlzYW5rdW1pYWlcIDsKK+WxheS9j+awtOa6liA+IGt5b2p1dXN1aWp1blwgOwor566X55So5pWw5a2XID4gc2FuJyd5b3VzdXVqaVwgOwor5aeJ5aa55Lya56S+ID4gc2hpbWFpZ2Fpc2hhXCA7CivpgbjmjJnlhazloLEgPiBzZW5reW9rb3Vob3VcIDsKK+S7j+WDj+S6jOW6pyA+IGJ1dHN1em91bml6YVwgOwor6Kaz5YWJ5peF6KGMID4ga2Fua291cnlva291XCA7CivnoJTnqbboqrLpoYwgPiBrZW5reXV1a2FkYWlcIDsKK+mHkeaLvuS4h+WGhiA+IGtpbmp1dW1hbicnZW5cIDsKK+WxjuWwv+WHpueQhiA+IHNoaW55b3VzaG9yaVwgOwor5ZWG5LqL5Lya56S+ID4gc2hvdWppZ2Fpc2hhXCA7Civpm4blkIjloLTmiYAgPiBzaHV1Z291YmFzaG9cIDsKK+W9ouWuueipnuW5uSA+IGtlaXlvdXNoaWthblwgOwor5p2h5Lu25Y+N5bCEID4gam91a2VuaGFuc2hhXCA7Civkv6HlvpLkvJ3li5UgPiBzaGludG9kZW5kb3VcIDsKK+acieaWmemBk+i3ryA+IHl1dXJ5b3Vkb3Vyb1wgOwor5qWt5YuZ5aao5a6zID4gZ3lvdW11Ym91Z2FpXCA7CivpmL/niYfkuK3mr5IgPiBhaGVuY2h1dWRva3VcIDsKK+e0sOiDnuiejeWQiCA+IHNhaWJvdXl1dWdvdVwgOwor5ZCN5Lq65rCX6LOqID4gbWVpamlua2F0YWdpXCA7Civpg7XmlL/lpKfoh6MgPiB5dXVzZWlkYWlqaW5cIDsKK+S6uuaoqeaTgeittyA+IGppbmtlbicneW91Z29cIDsKK+WFhOW8n+WWp+WYqSA+IGt5b3VkYWlnZW5rYVwgOwor5beh6Iiq6YCf5bqmID4ganVua291c29rdWRvXCA7CivkuIDlpJzlpKfoh6MgPiBpY2hpeWFkYWlqaW5cIDsKK+eNheWtkOWlrui/hSA+IHNoaXNoaWZ1bmppblwgOwor6Zao56eA5L2c5a62ID4ga2Vpc2h1dXNha2thXCA7CivlsILploDlrabmoKEgPiBzZW5tb25nYWtrb3VcIDsKK+aUuemdqemBjueoiyA+IGthaWtha3VrYXRlaVwgOwor57eK5oCl5o6q572uID4ga2lua3l1dXNvY2hpXCA7CivnlLvnq5zlpKnnnZsgPiBnYXJ5b3V0ZW5zZWlcIDsKK+S4gOmAsuS4gOmAgCA+IGlzc2hpbicnaXR0YWlcIDsKK+WumuW4uOeKtuaFiyA+IHRlaWpvdWpvdXRhaVwgOwor5oyH5pWw6Zai5pWwID4gc2hpc3V1a2Fuc3V1XCA7CivoqabpqJPnp5Hnm64gPiBzaGlrZW5rYW1va3VcIDsKK+eBveWus+aVkeWKqSA+IHNhaWdhaWt5dXVqb1wgOwor5Ya26YeR5a2m6ICFID4geWFraW5nYWt1c2hhXCA7CivlnLDmlrnpioDooYwgPiBjaGlob3VnaW5rb3VcIDsKK+e1jOa4iOeZuuWxlSA+IGtlaXphaWhhdHRlblwgOwor54m55q6K5YW15ZmoID4gdG9rdXNodWhlaWtpXCA7CivmtbfkuK3lhazlnJIgPiBrYWljaHV1a291ZW5cIDsKK+Wbo+S9k+aXheihjCA+IGRhbnRhaXJ5b2tvdVwgOwor5LiJ5Y+J56We57WMID4gc2Fuc2FzaGlua2VpXCA7CivmrLLmsYLkuI3muoAgPiB5b2treXV1ZnVtYW5cIDsKK+e1guWknOWWtualrSA+IHNodXV5YWVpZ3lvdVwgOwor5Zyw5LiL57WE57mUID4gY2hpa2Fzb3NoaWtpXCA7CivogJDpnIflrrblsYsgPiB0YWlzaGlua2Fva3VcIDsKK+ato+S4ieinkuW9oiA+IHNlaXNhbmtha2tlaVwgOwor6LWw6KGM6LuK57eaID4gc291a291c2hhc2VuXCA7CivnqbrmsJfoqr/mlbQgPiBrdXVraWNob3VzZWlcIDsKK+mBi+WLleelnue1jCA+IHVuZG91c2hpbmtlaVwgOwor5Y+X6IOO5ZGK55+lID4ganV0YWlrb2t1Y2hpXCA7Civop6PnrZTnlKjntJkgPiBrYWl0b3V5b3VzaGlcIDsKK+S4jeaJgOWtmOiAhSA+IGZ1c2hvem9ubW9ub1wgOwor5Yqg5bel55Sj5qWtID4ga2Frb3VzYW5neW91XCA7Civopo/moLzljp/moYggPiBraWtha3VnZW4nJ2FuXCA7CivlkozprYLmtIvmiY0gPiB3YWtvbicneW91c2FpXCA7Civlj43miKbpgYvli5UgPiBoYW5zZW4nJ3VuZG91XCA7Civoq7jooYznhKHluLggPiBzaG9neW91bXVqb3VcIDsKK+Wlkee0hOacn+mWkyA+IGtlaXlha3VraWthblwgOwor5Lq65paH56eR5a2mID4gamluYnVua2FnYWt1XCA7CivkuIDkurrkuIDkurogPiBoaXRvcmliaXRvcmlcIDsKK+WKseaMr+e0oOWtkCA+IHJlaXNoaW5zb3NoaVwgOwor5a6H5a6Z5bel5a2mID4gdWNodXVrb3VnYWt1XCA7CivkuovliY3ml6Xku5ggPiBqaXplbmhpZHp1a2VcIDsKK+iHquWutuaSnuedgCA+IGppa2Fkb3VjaGFrdVwgOwor55+z54Gw6IKl5paZID4gc2Vra2FpaGlyeW91XCA7Civlhaznm4rlhKrlhYggPiBrb3Vla2l5dXVzZW5cIDsKK+aXpeixiuacrOe3miA+IG5pcHBvdWhvbnNlblwgOwor55+z5rK55YyW5a2mID4gc2VraXl1a2FnYWt1XCA7Civnm7jlr77pgJ/luqYgPiBzb3V0YWlzb2t1ZG9cIDsKK+m7kuWtl+WAkueUoyA+IGt1cm9qaXRvdXNhblwgOwor5YaF5oaC5aSW5oKjID4gbmFpeXV1Z2Fpa2FuXCA7CivplqLmlbDnqbrplpMgPiBrYW5zdXVrdXVrYW5cIDsKK+S7mOWxnueXhemZoiA+IGZ1em9rdWJ5b3VpblwgOwor6Ieo5bqK5Yy75a2mID4gcmluc2hvdWlnYWt1XCA7CivnsbPmtbflhbXpmoogPiBiZWlrYWloZWl0YWlcIDsKK+aLseaJi+WCjeimsyA+IGtvdXNodWJvdWthblwgOwor6aCG5rOV6ZeY5LqJID4ganVucG91dG91c291XCA7CivmiKbpl5jpmaPlnLAgPiBzZW50b3VqaW5jaGlcIDsKK+S4gOaMmeS4gOWLlSA+IGlra3lvaWNoaWRvdVwgOwor5aiB5ZqH5bCE5pKDID4gaWtha3VzaGFnZWtpXCA7Civlrp/lnLDoqabpqJMgPiBqaXRjaGlzaGlrZW5cIDsKK+S4remWk+aZr+awlyA+IGNodXVrYW5rZWlraVwgOwor5Y+45pWZ5qip5bqnID4gc2hpa3lvdWtlbnphXCA7CivlpInmm7TlsaXmrbQgPiBoZW5rb3VyaXJla2lcIDsKK+mAo+aIpumAo+aVlyA+IHJlbnNlbnJlbnBhaVwgOwor5q2v5qe96Ia/5ryPID4gc2hpc291bm91cm91XCA7CivntKDnspLlrZDoq5YgPiBzb3J5dXVzaGlyb25cIDsKK+ihm+aYn+S4ree2mSA+IGVpc2VpY2h1dWtlaVwgOwor5Zyn5bu25bel5aC0ID4gYXRzdWVua291am91XCA7CivliIblqKnoh6XluoogPiBidW5iZW5nYXNob3VcIDsKK+S6uumAoOe1ueezuCA+IGppbnpvdWtlbnNoaVwgOwor55eV6Leh5Zmo5a6YID4ga29uc2VraWtpa2FuXCA7Civom43lhYnloZfmlpkgPiBrZWlrb3V0b3J5b3VcIDsKK+WFrOWIpOiqv+afuyA+IGtvdWhhbmNob3VzYVwgOwor6YCj57Wh5Lya6K2wID4gcmVucmFrdWthaWdpXCA7CivlhazmlZnopoHnkIYgPiBrb3VreW91eW91cmlcIDsKK+mqqOiRo+WTgeW6lyA+IGtvdHRvdWhpbnRlblwgOwor5Y2B5LqM5oyH6IW4ID4ganV1bmlzaGljaG91XCA7CivosqHmlL/llY/poYwgPiB6YWlzZWltb25kYWlcIDsKK+iogOiqnuWtpuiAhSA+IGdlbmdvZ2FrdXNoYVwgOwor6YeR6J6N5qmf6ZaiID4ga2luJyd5dXVraWthblwgOwor55Sw5ZyS6Kmp5Lq6ID4gZGVuJydlbnNoaWppblwgOwor562J5q+U57Sa5pWwID4gdG91aGlreXV1c3V1XCA7CivpgZPljJblvbnogIUgPiBkb3VrZXlha3VzaGFcIDsKK+a0pea0pea1pua1piA+IHRzdWR6dXVyYXVyYVwgOwor5Lm+54el5Zyw5bivID4ga2Fuc291Y2hpdGFpXCA7Civpn7Pnr4DkuLvpn7MgPiBvbnNldHN1c2h1b25cIDsKK+iIqua1t+aXpeiqjCA+IGtvdWthaW5pc3NoaVwgOwor5Y2K5bCB5bu65oCnID4gaGFuaG91a2Vuc2VpXCA7CivmgYvmhJvplqLkv4IgPiByZW4nJ2Fpa2Fua2VpXCA7CivmiJDplbfpgY7nqIsgPiBzZWljaG91a2F0ZWlcIDsKK+mAo+W4r+S/neiovCA+IHJlbnRhaWhvc2hvdVwgOwor5b+D6IeT6IKl5aSnID4gc2hpbnpvdWhpZGFpXCA7CivlpKnlo4znhKHnqq4gPiB0ZW5qb3VtdWt5dXVcIDsKK+WFqOi6q+m6u+mFlCA+IHplbnNoaW5tYXN1aVwgOwor5Zue57ea5Lqk5o+bID4ga2Fpc2Vua291a2FuXCA7CivovLjlhaXliLbpmZAgPiB5dW55dXVzZWlnZW5cIDsKK+ani+mAoOS4jeazgSA+IGtvdXpvdWZ1a3lvdVwgOwor6Ieq5bex5YWx5b25ID4gamlrb2t5b3V5YWt1XCA7Civmp4vmiJDliIblrZAgPiBrb3VzZWlidW5zaGlcIDsKK+W4guWgtOWxlemWiyA+IHNoaWpvdXRlbmthaVwgOwor5bqX6aCt6LKp5aOyID4gdGVudG91aGFuYmFpXCA7CivlkIjllLHpmorlk6EgPiBnYXNzaG91dGFpaW5cIDsKK+e1jOiyu+WJiua4myA+IGtlaWhpc2FrdWdlblwgOwor5paH6Iq45b6p6IiIID4gYnVuZ2VpZnVra291XCA7CivnkrDlpKrlubPmtIsgPiBrYW50YWloZWl5b3VcIDsKK+WQjee+qeabuOaPmyA+IG1laWdpa2FraWthZVwgOwor6YeN5aSn5ZWP6aGMID4ganV1ZGFpbW9uZGFpXCA7CivpnZ7np5HlrabnmoQgPiBoaWthZ2FrdXRla2lcIDsKK+mZkOWumuaIpuS6iSA+IGdlbnRlaXNlbnNvdVwgOwor5LiN5Zyo6Ki85piOID4gZnV6YWlzaG91bWVpXCA7CivljLvlrabljZrlo6sgPiBpZ2FrdWhha3VzaGlcIDsKK+ahiOWGheabuOWRiCA+IGFuJyduYWlzaG90ZWlcIDsKK+WwguWItuWQm+S4uyA+IHNlbnNlaWt1bnNodVwgOwor5Yuk5YuZ5a6f57i+ID4ga2lubXVqaXNzZWtpXCA7CivmqZ/lr4bkuovpoIUgPiBraW1pdHN1amlrb3VcIDsKK+aXqeacn+iouuaWrSA+IHNvdWtpc2hpbmRhblwgOwor5YGc5q2i5L6h5qC8ID4gdGVpc2hpa2FrYWt1XCA7CivoqJjmhrblrrnph48gPiBraW9rdXlvdXJ5b3VcIDsKK+WHuueUn+mBjuWJsCA+IHNodXNzZWlrYWpvdVwgOwor5byV6YCA6IiI6KGMID4gaW50YWlrb3VneW91XCA7CivkuInlkbPnt5rlvL4gPiBzaGFtaXNlbmhpa2lcIDsKK+ippumok+autemajiA+IHNoaWtlbmRhbmthaVwgOwor6LuN5LqL5LuL5YWlID4gZ3VuamlrYWlueXV1XCA7CivmlL/msrvpgZPlvrMgPiBzZWlqaWRvdXRva3VcIDsKK+WbveWWtuS8gealrSA+IGtva3VlaWtpZ3lvdVwgOwor5biw5bej5pys6IO9ID4ga2lzb3Vob24nJ25vdVwgOwor5Lih5oCn5YW35pyJID4gcnlvdXNlaWd1eXV1XCA7Civpu4Tph5HkuIfog70gPiBvdWdvbmJhbicnbm91XCA7Civmi4XlvZPoqrLplbcgPiB0YW50b3VrYWNob3VcIDsKK+a3t+aIkOertuaKgCA+IGtvbnNlaWt5b3VnaVwgOwor5Yq05YON5pS75YuiID4gcm91ZG91a291c2VpXCA7CivplpHoqbHkvJHpoYwgPiBrYW53YWt5dXVkYWlcIDsKK+W9ueWLmeizoOWEnyA+IGVraW11YmFpc2hvdVwgOwor5bmz5ZKM55Sj5qWtID4gaGVpd2FzYW5neW91XCA7CivljbDosaHmibnoqZUgPiBpbnNob3VoaWh5b3VcIDsKK+WBnOa7nuWJjee3miA+IHRlaXRhaXplbnNlblwgOwor5rCR6ZaT5pS+6YCBID4gbWlua2FuaG91c291XCA7CivlsZ7lnLDkuLvnvqkgPiB6b2t1Y2hpc2h1Z2lcIDsKK+WHuueJiOmDqOaVsCA+IHNodXBwYW5idXN1dVwgOwor6Ieq5YuV5Lq65b2iID4gamlkb3VuaW5neW91XCA7CivmhI/lv5foloTlvLEgPiBpc2hpaGFrdWpha3VcIDsKK+W/g+eQhuaIpuS6iSA+IHNoaW5yaXNlbnNvdVwgOwor6Kqy56iO5omA5b6XID4ga2F6ZWlzaG90b2t1XCA7CivmtYHooYzkvZzlrrYgPiByeXV1a291c2Fra2FcIDsKK+agueawl+S7leS6iyA+IGtvbmtpc2hpZ290b1wgOwor6Lu954qv572q5rOVID4ga2VpaGFuemFpaG91XCA7Civmj6PmkanmhrbmuKwgPiBzaGltYW9rdXNva3VcIDsKK+aUueS/ruW3peS6iyA+IGthaXNodXVrb3VqaVwgOwor5a++5oqX5oSP6K2YID4gdGFpa291aXNoaWtpXCA7CivpgZPot6/kuqTpgJogPiBkb3Vyb2tvdXRzdXVcIDsKK+azleW7t+S+rui+sSA+IGhvdXRlaWJ1am9rdVwgOwor5YWJ5a2m5qmf5qKwID4ga291Z2FrdWtpa2FpXCA7CivohLHlrZfoqJjlj7cgPiBkYXRzdWppa2lnb3VcIDsKK+WFrOacieawtOmdoiA+IGtvdXl1dXN1aW1lblwgOwor6Zmw5oCn5Y+N5b+cID4gaW5zZWloYW4nJ25vdVwgOwor5Z2H6KGh57WM5riIID4ga2lua291a2VpemFpXCA7CivomK3moL3ln7nms5UgPiByYW5zYWliYWlob3VcIDsKK+atpuijhembhuWboyA+IGJ1c291c2h1dWRhblwgOwor5Y2w6ZGR6Ki85piOID4gaW5rYW5zaG91bWVpXCA7Civln5/lhoXosr/mmJMgPiBpa2luYWlib3Vla2lcIDsKK+S9v+W+kuihjOS8nSA+IHNoaXRvZ3lvdWRlblwgOwor5L2z5Lq66JaE5ZG9ID4ga2FqaW5oYWt1bWVpXCA7CivmnInkvZPos4fnlKMgPiB5dXV0YWlzaGlzYW5cIDsKK+WvvuazsOmWouS/giA+IHRhaXRhaWthbmtlaVwgOwor5qyn5bee6YCj5ZCIID4gb3VzaHV1cmVuZ291XCA7CivlpbPlrZDlrabnlJ8gPiBqb3NoaWdha3VzZWlcIDsKK+WNmOe0lOW5s+WdhyA+IHRhbmp1bmhlaWtpblwgOwor5YaN5bqm56K66KqNID4gc2FpZG9rYWt1bmluXCA7CivprLzpnaLkvJ3lv4MgPiBraW1lbmRlbnNoaW5cIDsKK+iyv+aYk+m7kuWtlyA+IGJvdWVraWt1cm9qaVwgOwor57WE5ZCI5ZOh6Ki8ID4ga3VtaWFpaW5zaG91XCA7Civnhp/mn7/kuLvnvqkgPiBqdWt1c2hpc2h1Z2lcIDsKK+WGt+aIv+ijhee9riA+IHJlaWJvdXNvdWNoaVwgOwor54++5Zyw55Sf55SjID4gZ2VuY2hpc2Vpc2FuXCA7CivmlrDogZ7oqJjogIUgPiBzaGluYnVua2lzaGFcIDsKK+Wkp+WxsemztOWLlSA+IHRhaXphbm1laWRvdVwgOwor5rOi54q25pS75pKDID4gaGFqb3Vrb3VnZWtpXCA7CivljZjoqJjmipXnpaggPiB0YW5raXRvdWh5b3VcIDsKK+S4gOasoemWouaVsCA+IGljaGlqaWthbnN1dVwgOwor5bm85b2i6YCy5YyWID4geW91a2Vpc2hpbmthXCA7CivpnZLnianluILloLQgPiBhb21vbm9pY2hpYmFcIDsKK+WtpueUn+mBi+WLlSA+IGdha3VzZWl1bmRvdVwgOwor5aCx5b6p5o6q572uID4gaG91ZnVrdXNvY2hpXCA7Civlm57lvqnlj6/og70gPiBrYWlmdWt1a2Fub3VcIDsKK+ato+inkuWumuacqCA+IHNlaWtha3Vqb3VnaVwgOwor5q205Y+y5Zyw55CGID4gcmVraXNoaWNoaXJpXCA7CivlubTkuK3nhKHkvJEgPiBuZW5qdXVtdWt5dXVcIDsKK+eUu+ernOeCueedmyA+IGdhcnlvdXRlbnNlaVwgOwor5Luj5pWw55qE5ZKMID4gZGFpc3V1dGVraXdhXCA7Civlt6blj7Pnm7jnp7AgPiBzYXl1dXNvdXNob3VcIDsKK+W4neWbveS4u+e+qSA+IHRlaWtva3VzaHVnaVwgOwor6KW/5rSL5p2+6ZyyID4gc2VpeW91c2hvdXJvXCA7Civlm57ou6Lli5jlrpogPiBrYWl0ZW5rYW5qb3VcIDsKK+S+neiol+WwhOaSgyA+IGl0YWt1c2hhZ2VraVwgOwor5q2j6KaP6KGo54++ID4gc2Vpa2loeW91Z2VuXCA7Civnt4/poJjkuovppKggPiBzb3VyeW91amlrYW5cIDsKK+ebl+mbo+mYsuatoiA+IHRvdW5hbmJvdXNoaVwgOwor5ruF56eB5aWJ5YWsID4gbWVzc2hpaG91a291XCA7Civnt4/lkIjnp5HlraYgPiBzb3Vnb3VrYWdha3VcIDsKK+aLmOadn+aZgumWkyA+IGtvdXNva3VqaWthblwgOwor5Zub5pa55YWr5pa5ID4gc2hpaG91aGFwcG91XCA7CivkuLvopoHoq7jlhYMgPiBzaHV5b3VzaG9nZW5cIDsKK+WNgeWIhuadoeS7tiA+IGp1dWJ1bmpvdWtlblwgOwor5pmC5Luj5oCd5r2uID4gamlkYWlzaGljaG91XCA7Civku6PnkIbmipXnpaggPiBkYWlyaXRvdWh5b3VcIDsKK+WPpOWFuOmfs+alvSA+IGtvdGVuJydvbmdha3VcIDsKK+mKgOihjOW8t+eblyA+IGdpbmtvdWdvdXRvdVwgOwor6LW354iG6KOF572uID4ga2liYWt1c291Y2hpXCA7CivpgK7mjZXoqLHoq74gPiB0YWlob2t5b2Rha3VcIDsKK+atr+eJmeeWvuaCoyA+IHNoaWdhc2hpa2thblwgOwor5YWx5ZCM56WW55WMID4ga3lvdWRvdXNva2FpXCA7Civmsrnmlq3lpKfmlbUgPiB5dWRhbnRhaXRla2lcIDsKK+Wwgualrei+suWutiA+IHNlbmd5b3Vub3VrYVwgOwor54ax5Y+v5aGR5oCnID4gbmV0c3VrYXNvc2VpXCA7CivluILmnInosqHnlKMgPiBzaGl5dXV6YWlzYW5cIDsKK+WbveWutuizoOWEnyA+IGtva2thYmFpc2hvdVwgOwor6Z2Z5oWL57eP6KiIID4gc2VpdGFpc291a2VpXCA7CivlsILploDpm5HoqowgPiBzZW5tb256YXNzaGlcIDsKK+W8vuS4uOWIl+i7iiA+IGRhbmdhbnJlc3NoYVwgOwor5aSn5q2j5pmC5LujID4gdGFpc2hvdWppZGFpXCA7CivoqK3oqIjlpInmm7QgPiBzZWtrZWloZW5rb3VcIDsKK+S6huino+S6i+mghSA+IHJ5b3VrYWlqaWtvdVwgOwor5a6f6aiT5q616ZqOID4gamlra2VuZGFua2FpXCA7Civlrpjlg5rmlL/msrsgPiBrYW5yeW91c2VpamlcIDsKK+S6uueoruWVj+mhjCA+IGppbnNodW1vbmRhaVwgOwor5ryU57+S5ZWP6aGMID4gZW5zaHV1bW9uZGFpXCA7CivlirTlg43ntYTlkIggPiByb3Vkb3VrdW1pYWlcIDsKK+mGh+miqOe+juS/lyA+IGp1bnB1dWJpem9rdVwgOwor6YCg5Y+N5pyJ55CGID4gem91aGFuJyd5dXVyaVwgOwor5raI6LK75oCn5ZCRID4gc2hvdWhpc2Vpa291XCA7CivlvqHnlKjmlrDogZ4gPiBnb3lvdXNoaW5idW5cIDsKK+WFrOWumuS+oeagvCA+IGtvdXRlaWtha2FrdVwgOwor5aCG56mN5L2c55SoID4gdGFpc2VraXNheW91XCA7CivmlLvlrojlkIznm58gPiBrb3VzaHVkb3VtZWlcIDsKK+W3peenkeWkp+WtpiA+IGtvdWthZGFpZ2FrdVwgOwor56S+5YWs6YCj5ZCIID4gc2hha291cmVuZ291XCA7Civou43kuovmlZnnt7QgPiBndW5qaWt5b3VyZW5cIDsKK+W5s+WSjOadoee0hCA+IGhlaXdham91eWFrdVwgOwor54Sh6LOH5qC86ICFID4gbXVzaGlrYWt1c2hhXCA7Civnm7jmrrrplqLnqI4gPiBzb3VzYWlrYW56ZWlcIDsKK+WNs+aZguWBnOaIpiA+IHNva3VqaXRlaXNlblwgOwor5ris5Zyw6KGb5pifID4gc29rdWNoaWVpc2VpXCA7CivnqbrkuK3mta7pgYogPiBrdXVjaHV1ZnV5dXVcIDsKK+S/oeeUqOipkOasuiA+IHNoaW4nJ3lvdXNhZ2lcIDsKK+aYjuecuOeak+atryA+IG1laWJvdWtvdXNoaVwgOwor5LiK562J5YW15pu5ID4gam91dG91aGVpc291XCA7Civph5HliKnmlL/nrZYgPiBraW5yaXNlaXNha3VcIDsKK+iNieagueacqOeariA+IHNvdWtvbm1va3VoaVwgOwor5Yq05YON54G95a6zID4gcm91ZG91c2FpZ2FpXCA7CivmjqjlrprlubTpvaIgPiBzdWl0ZWluZW5yZWlcIDsKK+aXpeacrOaWh+WtpiA+IG5paG9uYnVuZ2FrdVwgOwor5a6f6aiT56eR5a2mID4gamlra2Vua2FnYWt1XCA7CivljbHpmbrkv6Hlj7cgPiBraWtlbnNoaW5nb3VcIDsKK+ilv+asp+iruOWbvSA+IHNlaW91c2hva29rdVwgOwor5aSc6ZaT5Za25qWtID4geWFrYW4nJ2VpZ3lvdVwgOwor5L2/5b6S5om/5LydID4gc2hpdG9zaG91ZGVuXCA7Civlm73lrrbkuLvluK0gPiBrb2trYXNodXNla2lcIDsKK+mbquimi+eBr+exoCA+IHl1a2ltaWRvdXJvdVwgOwor5Li75bit5Yik5LqLID4gc2h1c2VraWhhbmppXCA7Civlrpjoo73okYnmm7ggPiBrYW5zZWloYWdha2lcIDsKK+S8neiomOaWh+WtpiA+IGRlbmtpYnVuZ2FrdVwgOwor5Yi25YuV5pS+5bCEID4gc2VpZG91aG91c2hhXCA7Civms5XlvovooYzngrogPiBob3VyaXRzdWtvdWlcIDsKK+WFseeUo+WbveWutiA+IGt5b3VzYW5rb2trYVwgOwor5pWZ6IKy5qmf6ZaiID4ga3lvdWlrdWtpa2FuXCA7CivpnZ7luLjkv6Hlj7cgPiBoaWpvdXNoaW5nb3VcIDsKK+mbquimi+manOWtkCA+IHl1a2ltaXNob3VqaVwgOwor5qmf5qeL5pS56Z2pID4ga2lrb3VrYWlrYWt1XCA7CivlvqHnjonmnZPlrZAgPiBvdGFtYWpha3VzaGlcIDsKK+acgOe1gue1kOaenCA+IHNhaXNodXVrZWtrYVwgOwor54m55oG16Zai56iOID4gdG9ra2Vpa2FuemVpXCA7CivlnLDpnIfkuojnn6UgPiBqaXNoaW4nJ3lvY2hpXCA7CivlhbHlkIzli5/ph5EgPiBreW91ZG91Ym9raW5cIDsKK+S6i+WLmeW9k+WxgCA+IGppbXV0b3VreW9rdVwgOwor5LiJ5Y+36ZuR6KqMID4gc2FuZ291emFzc2hpXCA7CivmvI/mtKnpm7vmtYEgPiByb3VlaWRlbnJ5dXVcIDsKK+Wuo+aIpuW4g+WRiiA+IHNlbnNlbmZ1a29rdVwgOwor5YWx55Sj5Zyw5Yy6ID4ga3lvdXNhbmNoaWt1XCA7Civku6PnlKjmlZnlk6EgPiBkYWl5b3VreW91aW5cIDsKK+S4ieinkuWumuimjyA+IHNhbmtha3Vqb3VnaVwgOwor6KW/5rSL5bCG5qOLID4gc2VpeW91c2hvdWdpXCA7Civkv6Hlj7fnhKHoppYgPiBzaGluZ291bXVzaGlcIDsKK+Wcn+WcsOaUuemdqSA+IHRvY2hpa2Fpa2FrdVwgOwor54Cs5oi454mp5biCID4gc2V0b21vbm9pY2hpXCA7CivlronlgI3lt53ppIUgPiBhYmVrYXdhbW9jaGlcIDsKK+adseasp+iruOWbvSA+IHRvdW91c2hva29rdVwgOwor6Leh55uu55u457aaID4gYXRvbWVzb3V6b2t1XCA7Civkurrlt6XlkbzlkLggPiBqaW5rb3Vrb2t5dXVcIDsKK+iIquepuumDteS+vyA+IGtvdWt1dXl1dWJpblwgOwor5Lim6KGM6Ly45YWlID4gaGVpa291eXVueXV1XCA7CivntYzmuIjmoLzlt64gPiBrZWl6YWlrYWt1c2FcIDsKK+ekvuS8muizh+acrCA+IHNoYWthaXNoaWhvblwgOwor5aSW5Lqk54m55qipID4gZ2Fpa291dG9ra2VuXCA7Civmpa3li5nmj5DmkLogPiBneW91bXV0ZWlrZWlcIDsKK+a9nOWcqOaEj+itmCA+IHNlbnphaWlzaGlraVwgOwor5Yi25b6h6KOF572uID4gc2VpZ3lvc291Y2hpXCA7CivmiYDmiYDmlrnmlrkgPiBzaG9zaG9ob3Vib3VcIDsKK+WbuuS9k+eHg+aWmSA+IGtvdGFpbmVucnlvdVwgOwor6by75YWD5oCd5qGIID4gaGFuYW1vdG9qaWFuXCA7Civlj7PmipjnpoHmraIgPiB1c2V0c3VraW5zaGlcIDsKK+WNg+aAneS4h+iAgyA+IHNlbnNoaWJhbmtvdVwgOwor5L6d6aGY6YCA6IG3ID4gaWdhbnRhaXNob2t1XCA7CivkuInpg6jlkIjllLEgPiBzYW5idWdhc3Nob3VcIDsKK+iogOiqnuS4reaeoiA+IGdlbmdvY2h1dXN1dVwgOwor54++5Luj5paH5piOID4gZ2VuZGFpYnVubWVpXCA7CivppIrorbflrabntJogPiB5b3Vnb2dha2t5dXVcIDsKK+Wbnui7oumBi+WLlSA+IGthaXRlbicndW5kb3VcIDsKK+mBi+i8uOalreiAhSA+IHVuJyd5dWd5b3VzaGFcIDsKK+efs+ayueWFrOWboyA+IHNla2l5dWtvdWRhblwgOwor5bGA6YOo6bq76YWUID4ga3lva3VidW1hc3VpXCA7CivnvqnlpKrlpKvnr4AgPiBnaWRheXV1YnVzaGlcIDsKK+mHkeWxnuWKoOW3pSA+IGtpbnpva3VrYWtvdVwgOwor5oKq5oCn6IWr55iNID4gYWt1c2Vpc2h1eW91XCA7Civppqzpub/mraPnm7QgPiBiYWthc2hvdWppa2lcIDsKK+WQiOW8geS8muekviA+IGdvdWJlbmdhaXNoYVwgOwor5YWs55uK5LqL5qWtID4ga291ZWtpamlneW91XCA7Civkv6Hlj7fpm7vms6IgPiBzaGluZ291ZGVucGFcIDsKK+a0peOAhea1puOAhSA+IHRzdWR6dXVyYXVyYVwgOwor5YaF6Lyq5ZCM5b+XID4gdWNoaXdhZG91c2hpXCA7CivnpL7kvJrkuovmpa0gPiBzaGFrYWlqaWd5b3VcIDsKK+mbtue0sOS8gealrSA+IHJlaXNhaWtpZ3lvdVwgOwor5Zu95a6a5YWs5ZySID4ga29rdXRlaWtvdWVuXCA7Civlv5zlipvlvoTot68gPiBvdXJ5b2t1a2Vpcm9cIDsKK+aOp+iotOajhOWNtCA+IGtvdXNva2lreWFrdVwgOwor6YCa5Yuk5a6a5pyfID4gdHN1dWtpbnRlaWtpXCA7CivmrbTlj7LlnLDlm7MgPiByZWtpc2hpY2hpenVcIDsKK+mbu+WtkOmDteS+vyA+IGRlbnNoaXl1dWJpblwgOwor5Lq65bel55+l6IO9ID4gamlua291Y2hpbm91XCA7CivnqbrkuK3mipXkuIsgPiBrdXVjaHV1dG91a2FcIDsKK+alveWkqeS4u+e+qSA+IHJha3V0ZW5zaHVnaVwgOwor5rW35aSW5oqV6LOHID4ga2FpZ2FpdG91c2hpXCA7CivmmpfoqLznlarlj7cgPiBhbnNob3ViYW5nb3VcIDsKK+W5tOm9ouWItumZkCA+IG5lbnJlaXNlaWdlblwgOwor5L6h5qC85oim5LqJID4ga2FrYWt1c2Vuc291XCA7Civpq5jpgJ/luqbpi7wgPiBrb3Vzb2t1ZG9rb3VcIDsKK+eBq+WKm+aUr+aPtCA+IGthcnlva3VzaGllblwgOwor6auY6YCf6YGT6LevID4ga291c29rdWRvdXJvXCA7Civkvb/nlKjnpoHmraIgPiBzaGl5b3VraW5zaGlcIDsKK+WGoOWpmuiRrOelrSA+IGthbmtvbnNvdXNhaVwgOwor5rC05bmz5bC+57+8ID4gc3VpaGVpYml5b2t1XCA7CivmsbrorbDmqZ/plqIgPiBrZXRzdWdpa2lrYW5cIDsKK+mAo+mOluWPjeW/nCA+IHJlbnNhaGFuJydub3VcIDsKK+W4guawkeekvuS8miA+IHNoaW1pbnNoYWthaVwgOwor6YOo5YiG6ZuG5ZCIID4gYnVidW5zaHV1Z291XCA7Civlm5vmjajkupTlhaUgPiBzaGlzaGFnb255dXVcIDsKK+WPl+iol+S8muekviA+IGp1dGFrdWdhaXNoYVwgOwor5ZWP6aGM5oSP6K2YID4gbW9uZGFpaXNoaWtpXCA7Civph5Hono3lhazluqsgPiBraW4nJ3l1dWtvdWtvXCA7Civlj4vpgZTnlLLmlpAgPiB0b21vZGFjaGlnYWlcIDsKK+S4gOiIrOaVmemkiiA+IGlwcGFua3lvdXlvdVwgOwor5a6J5a6a5oGQ5oWMID4gYW50ZWlreW91a291XCA7CivmsLTntKDljJbniakgPiBzdWlzb2thYnV0c3VcIDsKK+eSsOWig+WkieWMliA+IGthbmt5b3VoZW5rYVwgOwor5L2T5qC85qSc5p+7ID4gdGFpa2FrdWtlbnNhXCA7CivljJblrablkIjmiJAgPiBrYWdha3Vnb3VzZWlcIDsKK+W5s+W5s+WHoeWHoSA+IGhlaWhlaWJvbmJvblwgOwor5biC5aC05L6h5qC8ID4gc2hpam91a2FrYWt1XCA7CivlloTpmqPplqLkv4IgPiB6ZW5yaW5rYW5rZWlcIDsKK+WQiOaIkOa0l+WJpCA+IGdvdXNlaXNlbnphaVwgOwor6Kaz5b+15Li7576pID4ga2FuJyduZW5zaHVnaVwgOwor6YCa5Yuk5pmC6ZaTID4gdHN1dWtpbmppa2FuXCA7CivntYzmuIjkvZPliLYgPiBrZWl6YWl0YWlzZWlcIDsKK+S9j+aJgOawj+WQjSA+IGp1dXNob3NoaW1laVwgOwor55a+6aKo5oCS5r+kID4gc2hpcHB1dWRvdG91XCA7CivljLvnmYLmnZDmlpkgPiBpcnlvdXphaXJ5b3VcIDsKK+acieapn+i+sualrSA+IHl1dWtpbm91Z3lvdVwgOwor5aao5a6z5pS+6YCBID4gYm91Z2FpaG91c291XCA7Civph5HlsZ7lhYPntKAgPiBraW56b2t1Z2Vuc29cIDsKK+atr+WGheeZguazlSA+IHNoaWthcnlvdWhvdVwgOwor5oKq5oiv5bCP5YOnID4gaXRhenVyYWtvem91XCA7CivlhajmqKnlpKfkvb8gPiB6ZW5rZW50YWlzaGlcIDsKK+WNseaApeWtmOS6oSA+IGtpa3l1dXNvbmJvdVwgOwor5a6H5a6Z5Lit57aZID4gdWNodXVjaHV1a2VpXCA7CivpnZ7kurrplpPnmoQgPiBoaW5pbmdlbnRla2lcIDsKK+WPl+S/oeijhee9riA+IGp1c2hpbnNvdWNoaVwgOwor5pWw5YCk6KiI566XID4gc3V1Y2hpa2Vpc2FuXCA7CivniYfoqIDpmrvoqp4gPiBoZW5nZW5zZWtpZ29cIDsKK+aHkOS4reaZguioiCA+IGthaWNodXVkb2tlaVwgOwor56u26Lyq6YG45omLID4ga2Vpcmluc2Vuc2h1XCA7Civmmpflj7fop6Poqq0gPiBhbmdvdWthaWRva3VcIDsKK+WPjeWLleaAneaDsyA+IGhhbmRvdXNoaXNvdVwgOwor5a6f6Ki85Li7576pID4gamlzc2hvdXNodWdpXCA7CivmqJnmupblgY/lt64gPiBoeW91anVuaGVuc2FcIDsKK+izh+a6kOWVj+mhjCA+IHNoaWdlbm1vbmRhaVwgOwor6YGL6YCB5qWt6ICFID4gdW5zb3VneW91c2hhXCA7CivooYzli5XlnLDluK8gPiBrb3Vkb3VjaGl0YWlcIDsKK+W5s+etieS4u+e+qSA+IGJ5b3Vkb3VzaHVnaVwgOwor5Lqk5Luj5oqV5omLID4ga291dGFpdG91c2h1XCA7Civlm73lrrbni6zljaAgPiBrb2trYWRva3VzZW5cIDsKK+Wcn+WcsOaUueiJryA+IHRvY2hpa2FpcnlvdVwgOwor55Kw5aKD5Z+65rqWID4ga2Fua3lvdWtpanVuXCA7CivlpJbkuqTmlofmm7ggPiBnYWlrb3VidW5zaG9cIDsKK+i7veaMmeWmhOWLlSA+IGtlaWt5b21vdWRvdVwgOwor6Ziy6Jmr5Yqg5belID4gYm91Y2h1dWtha291XCA7CivkuI3lnKjmipXnpaggPiBmdXphaXRvdWh5b3VcIDsKK+WrjOeFmemBi+WLlSA+IGtlbicnZW4nJ3VuZG91XCA7CivlsIHnt5jokYnmm7ggPiBmdXVrYW5oYWdha2lcIDsKK+azsOeEtuiHquiLpSA+IHRhaXplbmppamFrdVwgOwor5pWX5YyX5Li7576pID4gaGFpYm9rdXNodWdpXCA7CivkvqHmoLzmgKfog70gPiBrYWtha3VzZWlub3VcIDsKK+abuOmhnumAgeaknCA+IHNob3J1aXNvdWtlblwgOwor5Lq65qip5ZWP6aGMID4gamlua2VubW9uZGFpXCA7CivkuIDmrbvloLHlm70gPiBpc3NoaWhvdWtva3VcIDsKK+e3tOmmrOWkp+aguSA+IG5lcmltYWRhaWtvblwgOwor5LiA57O45LiA5q+rID4gaXNzaGlpY2hpZ291XCA7Civnibnmrorkuovmg4UgPiB0b2t1c2h1amlqb3VcIDsKK+iAgeWwkeS4jeWumiA+IHJvdXNob3VmdXRlaVwgOwor55u45LmX5bmz5Z2HID4gc291am91aGVpa2luXCA7CivkuIflubTlgJnoo5wgPiBtYW4nJ25lbmtvdWhvXCA7CivlronlhajmlZnogrIgPiBhbnplbmt5b3Vpa3VcIDsKK+eEoeizg+S5l+i7iiA+IG11Y2hpbmpvdXNoYVwgOwor54mH5YuZ5aWR57SEID4gaGVubXVrZWl5YWt1XCA7CivkuIDoiKzlpKfooYYgPiBpcHBhbnRhaXNodXVcIDsKK+WPpOWFuOaWh+WtpiA+IGtvdGVuYnVuZ2FrdVwgOwor6auY5qCh6YeO55CDID4ga291a291eWFreXV1XCA7CivkuI3lr6noqIrllY8gPiBmdXNoaW5qaW5tb25cIDsKK+S4reiPr+aWmeeQhiA+IGNodXVrYXJ5b3VyaVwgOwor5YGl5bq354q25oWLID4ga2Vua291am91dGFpXCA7Civpub/lhZDls7bnnIwgPiBrYWdvc2hpbWFrZW5cIDsKK+a6luWCmeeKtuazgSA+IGp1bmJpam91a3lvdVwgOwor6YG45aSW5L2z5L2cID4gc2VuZ2Fpa2FzYWt1XCA7CivoqIDoqp7mlZnogrIgPiBnZW5nb2t5b3Vpa3VcIDsKK+WQjOaWh+WQjOeoriA+IGRvdWJ1bmRvdXNodVwgOwor57Wm5LiO5L2T57O7ID4ga3l1dXlvdGFpa2VpXCA7Civpurvolqzniq/nvaogPiBtYXlha3VoYW56YWlcIDsKK+acneS7pOaaruaUuSA+IGNob3VyZWlib2thaVwgOwor5LqS5oG15p2h57SEID4gZ29rZWlqb3V5YWt1XCA7CivkuIDlm73kuIDnpaggPiBpa2tva3VpcHB5b3VcIDsKK+egsuiJpuWkluS6pCA+IGhvdWthbmdhaWtvdVwgOwor5rWB6KGM6KiA6JGJID4gaGF5YXJpa290b2JhXCA7CivkuqTpgJrmqZ/plqIgPiBrb3V0c3V1a2lrYW5cIDsKK+awtOmKgOmbu+axoCA+IHN1aWdpbmRlbmNoaVwgOwor6L+95ZaE5L6b6aSKID4gdHN1aXplbmt1eW91XCA7Civku5blipvmnKzpoZggPiB0YXJpa2lob25nYW5cIDsKK+espuWPt+ino+iqrSA+IGZ1Z291a2FpZG9rdVwgOwor55+l6IO95oyH5pWwID4gY2hpbm91c2hpc3V1XCA7CivlvZPllrbmpa3miYAgPiB0b3VlaWd5b3VzaG9cIDsKK+iBt+WToeS8muitsCA+IHNob2t1aW5rYWlnaVwgOwor6KiA6Kqe54m55pyJID4gZ2VuZ290b2t1eXV1XCA7CivmnIDlsI/pmZDluqYgPiBzYWlzaG91Z2VuZG9cIDsKK+afk+S6leWQiemHjiA+IHNvbWVpeW9zaGlub1wgOwor5a6M5YWo54qv572qID4ga2FuemVuaGFuemFpXCA7CivmlZnogrLliLbluqYgPiBreW91aWt1c2VpZG9cIDsKK+aIpuWbveaZguS7oyA+IHNlbmdva3VqaWRhaVwgOwor5YmN6aeG55eH54q2ID4gemVua3VzaG91am91XCA7CivntKvntqzopJLos54gPiBzaGlqdWhvdXNob3VcIDsKK+S4gOiogOWNiuWPpSA+IGljaGlnb25oYW5rdVwgOwor5LiN5rOV5Y2g5pyJID4gZnVob3VzZW4nJ3l1dVwgOwor5a625bqt55Kw5aKDID4ga2F0ZWlrYW5reW91XCA7CivoiJ7lj7Dnm6PnnaMgPiBidXRhaWthbnRva3VcIDsKK+WQiOaIkOearumdqSA+IGdvdXNlaWhpa2FrdVwgOwor5Zyo5a6F5Yuk5YuZID4gemFpdGFrdWtpbm11XCA7CivkuI3lnKjlnLDkuLsgPiBmdXphaWppbnVzaGlcIDsKK+S4gOWuv+S4gOmjryA+IGlzc2h1a3VpcHBhblwgOwor6ICB5Lq655eF6ZmiID4gcm91amluYnlvdWluXCA7CivniYfogrrpo5vooYwgPiBrYXRhaGFpaGlrb3VcIDsKK+Wvvua9nOawtOiJpiA+IHRhaXNlbnN1aWthblwgOwor6K2m5oiS6K2m5aCxID4ga2Vpa2Fpa2VpaG91XCA7CivntK/nqY3otaTlrZcgPiBydWlzZWtpYWthamlcIDsKK+WutuaXj+ani+aIkCA+IGthem9rdWtvdXNlaVwgOwor5YaF5p+U5aSW5YmbID4gbmFpanV1Z2FpZ291XCA7CivlsZ7kurrkuLvnvqkgPiB6b2t1amluc2h1Z2lcIDsKK+ehrOi7n+S4oea0viA+IGtvdW5hbnJ5b3VoYVwgOwor5bqn5bit55Wq5Y+3ID4gemFzZWtpYmFuZ291XCA7CivnqbrkuK3mta7mj5ogPiBrdXVjaHV1ZnV5b3VcIDsKK+S4geeomuWlieWFrCA+IGRldGNoaWJvdWtvdVwgOwor5LiA5pa55Lqk6YCaID4gaXBwb3Vrb3V0c3V1XCA7CivkuInml6XmnIjlvaIgPiBtaWthZHp1a2lrZWlcIDsKK+aknOS6i+e3j+mVtyA+IGtlbmppc291Y2hvdVwgOwor5paw6KaP5oqV6LOHID4gc2hpbmtpdG91c2hpXCA7CivljZjoqp7mpJzntKIgPiB0YW5nb2tlbnNha3VcIDsKK+maoOWMv+eJqeizhyA+IGludG9rdWJ1c3NoaVwgOwor5aWz5Lq656aB5Yi2ID4gbnlvbmlua2luc2VpXCA7CivlpKfkv67pgZPpmaIgPiBkYWlzaHV1ZG91aW5cIDsKK+ajruael+WFrOWckiA+IHNoaW5yaW5rb3VlblwgOwor5Y+X6aiT6LOH5qC8ID4ganVrZW5zaGlrYWt1XCA7CivlpKflkozoqIDokYkgPiB5YW1hdG9rb3RvYmFcIDsKK+WEgOW8j+S4u+e+qSA+IGdpc2hpa2lzaHVnaVwgOwor6YCg5bGx6YGL5YuVID4gem91emFuJyd1bmRvdVwgOwor5LiA6Iis5pWZ6IKyID4gaXBwYW5reW91aWt1XCA7Civnq4vkvZPpn7Ppn78gPiByaXR0YWlvbmt5b3VcIDsKK+eJuembhuiomOS6iyA+IHRva3VzaHV1a2lqaVwgOwor5LuY5biv5rG66K2wID4gZnV0YWlrZXRzdWdpXCA7Civoo73ntJnlt6XloLQgPiBzZWlzaGlrb3Vqb3VcIDsKK+aVkeaPtOaKleaJiyA+IGt5dXVlbnRvdXNodVwgOwor6LKh5Zuj5rOV5Lq6ID4gemFpZGFuaG91amluXCA7CivmsJHkv5foiJ7ouIogPiBtaW56b2t1YnV5b3VcIDsKK+aIpuS6ieeKr+e9qiA+IHNlbnNvdWhhbnphaVwgOwor6Zuj54eD5Yqg5belID4gbmFuJyduZW5rYWtvdVwgOwor5Y2X6Ii55YyX6aasID4gbmFuc2VuaG9rdWJhXCA7CivmqZ/og73pmpzlrrMgPiBraW5vdXNob3VnYWlcIDsKK+aXpeacrOWbveawkSA+IG5paG9ua29rdW1pblwgOwor6Iie6LiP5pWZ5birID4gYnV0b3VreW91c2hpXCA7CivmnpfplpPlrabmoKEgPiByaW5rYW5nYWtrb3VcIDsKK+iKsemtgemBk+S4rSA+IG9pcmFuZG91Y2h1dVwgOwor5ruR6ZmN56u25oqAID4ga2Fra291a3lvdWdpXCA7CivlnKjlpJblhazppKggPiB6YWlnYWlrb3VrYW5cIDsKK+WcsOaWuemBuOaMmSA+IGNoaWhvdXNlbmt5b1wgOwor5ZCI5oiQ5YyW5a2mID4gZ291c2Vpa2FnYWt1XCA7Civnp4Hoo73okYnmm7ggPiBzaGlzZWloYWdha2lcIDsKK+S4jeWumuepjeWIhiA+IGZ1dGVpc2VraWJ1blwgOwor5q2j44CF5aCC44CFID4gc2Vpc2VpZG91ZG91XCA7CivljYrkv6HljYrnlpEgPiBoYW5zaGluaGFuZ2lcIDsKK+i8uOWFpei2hemBjiA+IHl1bnl1dWNob3VrYVwgOwor5Zub5YWD6YCf5bqmID4gc2hpZ2Vuc29rdWRvXCA7Civku5jlsZ7lrabmoKEgPiBmdXpva3VnYWtrb3VcIDsKK+S6uuW3peecn+ePoCA+IGppbmtvdXNoaW5qdVwgOwor5Lq65qip5Zuj5L2TID4gamlua2VuZGFudGFpXCA7CivmnKzmlofmibnoqZUgPiBob25tb25oaWh5b3VcIDsKK+eUu+m+jeeCueedmyA+IGdhcnlvdXRlbnNlaVwgOwor5Lm+5Zyw6L6y5rOVID4ga2FuY2hpbm91aG91XCA7Civllqfllqflm4Llm4IgPiBrZW5rZW5nb3Vnb3VcIDsKK+S6uuWumuWwi+WVjyA+IGppbnRlaWppbm1vblwgOwor5Lu75pyf5rqA5LqGID4gbmlua2ltYW5yeW91XCA7Civnq7bppqzmlrDogZ4gPiBrZWliYXNoaW5idW5cIDsKK+mbu+awl+W3peWtpiA+IGRlbmtpa291Z2FrdVwgOwor5L6b57Wm6YGO5aSaID4ga3lvdWt5dXVrYXRhXCA7Civlj6PpoK3lr6nnkIYgPiBrb3V0b3VzaGlucmlcIDsKK+W5s+WSjOaVmeiCsiA+IGhlaXdha3lvdWlrdVwgOwor57eP5ZCI55eF6ZmiID4gc291Z291YnlvdWluXCA7CivkuIrlsaTmsJfmtYEgPiBqb3Vzb3VraXJ5dXVcIDsKK+iAgem9ouW5tOmHkSA+IHJvdXJlaW5lbmtpblwgOwor5ryU5aWP57e057+SID4gZW5zb3VyZW5zaHV1XCA7Civku5XmjpvlnLDpm7cgPiBzaGlrYWtlamlyYWlcIDsKK+Wbnui7ouizh+mHkSA+IGthaXRlbnNoaWtpblwgOwor5pqX5Lit5qih57SiID4gYW5jaHV1bW9zYWt1XCA7CivllK/miJHni6zlsIogPiB5dWlnYWRva3Vzb25cIDsKK+mbhuaVo+S4u+e+qSA+IHNodXVzYW5zaHVnaVwgOwor5Zyf55Sj54mp5bGLID4gbWl5YWdlbW9ub3lhXCA7Civoh6rntaboh6rotrMgPiBqaWt5dXVqaXNva3VcIDsKK+WSjOW5s+WNlOWumiA+IHdhaGVpa3lvdXRlaVwgOwor5Zyw5pa55YiG5qipID4gY2hpaG91YnVua2VuXCA7CivluILlhoXoprPlhYkgPiBzaGluYWlrYW5rb3VcIDsKK+aUvuWwhOiDvembqCA+IGhvdXNoYW5vdWFtZVwgOwor6Kuc5aCx5qmf6ZaiID4gY2hvdWhvdWtpa2FuXCA7CivlsLHlrabnvqnli5kgPiBzaHV1Z2FrdWdpbXVcIDsKK+iIquepuuWEquWLoiA+IGtvdWt1dXl1dXNlaVwgOwor5Lq65omN55m755SoID4gamluemFpdG91eW91XCA7CivopIfmnKzkvY3liLYgPiBmdWt1aG9uJydpc2VpXCA7CivnlJ/mtLvkv53orbcgPiBzZWlrYXRzdWhvZ29cIDsKK+mbhuS4reixqumbqCA+IHNodXVjaHV1Z291dVwgOwor5b605YW15YWN6ZmkID4gY2hvdWhlaW1lbmpvXCA7CivlhazlrrPllY/poYwgPiBrb3VnYWltb25kYWlcIDsKK+WNmOi6q+i1tOS7uyA+IHRhbnNoaW5mdW5pblwgOwor5beu5Yil55So6KqeID4gc2FiZXRzdXlvdWdvXCA7Civkurrlj6Pli5XmhYsgPiBqaW5rb3Vkb3V0YWlcIDsKK+Wuh+WumeeJqeeQhiA+IHVjaHV1YnV0c3VyaVwgOwor5YWo6Z2i5oim5LqJID4gemVubWVuc2Vuc291XCA7CivntYzmuIjnirbmhYsgPiBrZWl6YWlqb3V0YWlcIDsKK+WnlOiol+eglOeptiA+IGl0YWt1a2Vua3l1dVwgOwor5Y2D6L6b5LiH6IumID4gc2Vuc2hpbmJhbmt1XCA7CivljLvnmYLloLHphawgPiBpcnlvdWhvdXNodXVcIDsKK+awtOaZtuaZguioiCA+IHN1aXNob3Vkb2tlaVwgOwor5LiJ5paH5paH5aOrID4gc2FubW9uYnVuc2hpXCA7Civlm57ou6LmnKjppqwgPiBrYWl0ZW5tb2t1YmFcIDsKK+S4jeaIpuadoee0hCA+IGZ1c2Vuam91eWFrdVwgOwor5LiA55Sf5oe45ZG9ID4gaXNzaG91a2VubWVpXCA7Civml6XpgLLmnIjmrakgPiBuaXNzaGluZ2VwcG9cIDsKK+WPl+iol+iyqeWjsiA+IGp1dGFrdWhhbmJhaVwgOwor5paH5YyW5Yuy56ugID4gYnVua2FrdW5zaG91XCA7CivmgqDmgqDplpHplpEgPiB5dXV5dXVrYW5rYW5cIDsKK+S7j+iLsei+nuWFuCA+IGZ1dHN1ZWlqaXRlblwgOwor6KGb55Sf5bel5a2mID4gZWlzZWlrb3VnYWt1XCA7CivmlL/opovmlL7pgIEgPiBzZWlrZW5ob3Vzb3VcIDsKK+awtOaAp+Whl+aWmSA+IHN1aXNlaXRvcnlvdVwgOwor5YWI6YCy5YW15ZmoID4gc2Vuc2hpbmhlaWtpXCA7Civoh6rlt7HkuK3lv4MgPiBqaWtvY2h1dXNoaW5cIDsKK+WQjOWSjOaVmeiCsiA+IGRvdXdha3lvdWlrdVwgOwor5a2m6b2i5YWQ56ulID4gZ2FrdXJlaWppZG91XCA7CivogZblnLDlt6HnpLwgPiBzZWljaGlqdW5yZWlcIDsKK+ekvuWbo+azleS6uiA+IHNoYWRhbmhvdWppblwgOwor6LKo54mp6Ly46YCBID4ga2Ftb3RzdXl1c291XCA7CivmraPlpJrop5LlvaIgPiBzZWl0YWtha3VrZWlcIDsKK+mbu+awl+WuuemHjyA+IGRlbmtpeW91cnlvdVwgOwor5rqW56aB5rK755SjID4ganVua2luY2hpc2FuXCA7CivljJblrabmp4vpgKAgPiBrYWdha3Vrb3V6b3VcIDsKK+S4gOWFmueLrOijgSA+IGl0dG91ZG9rdXNhaVwgOwor54Sh6ZmQ5bCP5pWwID4gbXVnZW5zaG91c3V1XCA7CivmuL7nhLbkuIDkvZMgPiBrb256ZW4nJ2l0dGFpXCA7CivmtbflupXlnLDpnIcgPiBrYWl0ZWlqaXNoaW5cIDsKK+WNmuWjq+iqsueoiyA+IGhha3VzaGlrYXRlaVwgOwor5bmz5Z2H5a+/5ZG9ID4gaGVpa2luanVteW91XCA7CivluILmsJHpgYvli5UgPiBzaGltaW4nJ3VuZG91XCA7CivoqJjlv7Xlh7rniYggPiBraW5lbnNodXBwYW5cIDsKK+ijhee9ruWItuW+oSA+IHNvdWNoaXNlaWd5b1wgOwor5Y6f6KOB5Yik5omAID4gZ2Vuc2FpYmFuc2hvXCA7CivljprnlJ/lpKfoh6MgPiBrb3VzZWlkYWlqaW5cIDsKK+ayueiEguW3pealrSA+IHl1c2hpa291Z3lvdVwgOwor57eP5pSv6YWN5Lq6ID4gc291c2hpaGFpbmluXCA7Civml6XnhafmmYLplpMgPiBuaXNzaG91amlrYW5cIDsKK+S4gOiIrOaVmeabuCA+IGlwcGFua3lvdXNob1wgOwor5LiA6YOo5aeL57WCID4gaWNoaWJ1c2hpanV1XCA7CivplqLmlbDljp/lnosgPiBrYW5zdXVnZW5rZWlcIDsKK+S4iemHjeWuneWGoCA+IHNhbmp1dWhvdWthblwgOwor5q2T6YCB6L+O5LyaID4ga2Fuc291Z2Vpa2FpXCA7Civnt4rmgKXpgb/pm6MgPiBraW5reXV1aGluYW5cIDsKK+WIuemCo+S4u+e+qSA+IHNldHN1bmFzaHVnaVwgOwor5bel5qWt5Zyw5Yy6ID4ga291Z3lvdWNoaWt1XCA7CivmiJHmpb3lpJrluIIgPiBnYXJha3V0YWljaGlcIDsKK+i7ouWGmeaNuuafkyA+IHRlbnNoYW5hc3NlblwgOwor6Ieq54S254G95a6zID4gc2hpemVuc2FpZ2FpXCA7CivlpKnkupXmo6fmlbcgPiB0ZW5qb3VzYWppa2lcIDsKK+WFiOihjOadoeS7tiA+IHNlbmtvdWpvdWtlblwgOwor5pyI5LiL5rC35Lq6ID4gZ2Vra2FoeW91amluXCA7CivljLvolqzliIbmpa0gPiBpeWFrdWJ1bmd5b3VcIDsKK+i6q+WFg+S/neiovCA+IG1pbW90b2hvc2hvdVwgOwor57SU5q2j56eR5a2mID4ganVuc2Vpa2FnYWt1XCA7Civkuozph43pgZPlvrMgPiBuaWp1dWRvdXRva3VcIDsKK+aCsuWWnOS6pOS6pCA+IGhpa2lrb21vZ29tb1wgOwor57eK5oCl5YuV6K2wID4ga2lua3l1dWRvdWdpXCA7CivlpKrpmb3pm7vmsaAgPiB0YWl5b3VkZW5jaGlcIDsKK+ihl+mgremMsumfsyA+IGdhaXRvdXJva3VvblwgOwor5Zu96Zqb5qmf6ZaiID4ga29rdXNhaWtpa2FuXCA7CivliY3lgr7lp7/li6IgPiB6ZW5rZWlzaGlzZWlcIDsKK+W4sOWxnuaEj+itmCA+IGtpem9rdWlzaGlraVwgOwor5YWs6KGG5L6/5omAID4ga291c2h1dWJlbmpvXCA7Civml6XmnKzlm73lhoUgPiBuaWhvbmtva3VuYWlcIDsKK+mBuOawkeaAneaDsyA+IHNlbm1pbnNoaXNvdVwgOwor5ZKA5Zq86YGL5YuVID4gc29zaGFrdXVuZG91XCA7CivlhbHlkIznlo7plosgPiBreW91ZG91c29rYWlcIDsKK+iomOW/teWGmeecnyA+IGtpbmVuc2hhc2hpblwgOwor54Gr54e15biD5ZujID4ga290YXRzdWJ1dG9uXCA7CivlhajpnaLnpoHmraIgPiB6ZW5tZW5raW5zaGlcIDsKK+WMl+WbnuW4sOe3miA+IGtpdGFrYWlraXNlblwgOwor6YCj5ZCI6Imm6ZqKID4gcmVuZ291a2FudGFpXCA7Civkurrlkb3mlZHliqkgPiBqaW5tZWlreXV1am9cIDsKK+aIpuS6ieeKtuaFiyA+IHNlbnNvdWpvdXRhaVwgOwor5aWz5a2Q5aSn5a2mID4gam9zaGlkYWlnYWt1XCA7Civlm73lo6vnhKHlj4wgPiBrb2t1c2hpbXVzb3VcIDsKK+W5s+Wdh+S9meWRvSA+IGhlaWtpbicneW9tZWlcIDsKK+S6i+S+i+eglOeptiA+IGppcmVpa2Vua3l1dVwgOwor5YiG5pWj5oqV6LOHID4gYnVuc2FudG91c2hpXCA7Civlgbblg4/npLzmi50gPiBndXV6b3VyZWloYWlcIDsKK+WKueaenOimv+mdoiA+IGtvdWthdGVraW1lblwgOwor57eK5by157ep5ZKMID4ga2luY2hvdWthbndhXCA7CivkuI3oqLHopIfoo70gPiBmdWt5b2Z1a3VzZWlcIDsKK+WMl+asp+elnuipsSA+IGhva3VvdXNoaW53YVwgOwor5Lq65LqL6KGM5pS/ID4gamluamlneW91c2VpXCA7CivmmK3lkozlubTplpMgPiBzaG91d2FuZW5rYW5cIDsKK+WbveWtl+WVj+mhjCA+IGtva3VqaW1vbmRhaVwgOwor5Zu95YuZ5aSn6IejID4ga29rdW11ZGFpamluXCA7CivoqIDoqp7pmpzlrrMgPiBnZW5nb3Nob3VnYWlcIDsKK+WGjeiyqeS+oeagvCA+IHNhaWhhbmtha2FrdVwgOwor5bmz5Z2H5qCq5L6hID4gaGVpa2lua2FidWthXCA7Civlronmga/pppnphbggPiBhbnNva3Vrb3VzYW5cIDsKK+itnOS7o+Wkp+WQjSA+IGZ1ZGFpZGFpbXlvdVwgOwor6YGT6Lev6KiI55S7ID4gZG91cm9rZWlrYWt1XCA7Civlj6Toh6rli5Xou4ogPiBmdXJ1amlkb3VzaGFcIDsKK+WuueWnv+err+m6lyA+IHlvdXNoaXRhbnJlaVwgOwor6KuL6LKg5qWt6ICFID4gdWtlb2lneW91c2hhXCA7CivpgJrluLjlj6Poqp4gPiB0c3V1am91a291Z29cIDsKK+WcqOWklumCpuS6uiA+IHphaWdhaWhvdWppblwgOwor6ZaL5pS+57WM5riIID4ga2FpaG91a2VpemFpXCA7CivkvZPmk43nq7bmioAgPiB0YWlzb3VreW91Z2lcIDsKK+WKtOWDjeWQjOebnyA+IHJvdWRvdWRvdW1laVwgOwor5Zu96Zqb6YO95biCID4ga29rdXNhaXRvc2hpXCA7CivmnInliLrpiYTnt5ogPiB5dXVzaGl0ZXNzZW5cIDsKK+Wbo+S9k+ihjOWLlSA+IGRhbnRhaWtvdWRvdVwgOwor5b+c55So5pWw5a2mID4gb3V5b3VzdXVnYWt1XCA7CivkuqTpgJrlt6Hmn7sgPiBrb3V0c3V1anVuc2FcIDsKK+eEoeaVteiJpumaiiA+IG11dGVraWthbnRhaVwgOwor6Iiq56m65Lya56S+ID4ga291a3V1Z2Fpc2hhXCA7CivlpKfmlL/lpYnpgoQgPiB0YWlzZWlob3VrYW5cIDsKK+S4jeaSk+S4jeWxiCA+IGZ1dG91ZnVrdXRzdVwgOwor55u46Zai6Zai5L+CID4gc291a2Fua2Fua2VpXCA7CivlkIznm5/nvbfmpa0gPiBkb3VtZWloaWd5b3VcIDsKK+i7jeWCmeertuS6iSA+IGd1bmJpa3lvdXNvdVwgOwor5b2i5a655YuV6KmeID4ga2VpeW91ZG91c2hpXCA7Civoo5zntablubnnt5ogPiBob2t5dXVrYW5zZW5cIDsKK+eCuuabv+ijgeWumiA+IGthd2FzZXNhaXRlaVwgOwor6KGo54++5Li7576pID4gaHlvdWdlbnNodWdpXCA7CivmlofmlZnlnLDljLogPiBidW5reW91Y2hpa3VcIDsKK+mHkeWxnueWsuWKtCA+IGtpbnpva3VoaXJvdVwgOwor5by35Yi255aO6ZaLID4ga3lvdXNlaXNva2FpXCA7Civoraboppbnt4/nm6MgPiBrZWlzaGlzb3VrYW5cIDsKK+S7o+ihqOekvuWToSA+IGRhaWh5b3VzaGFpblwgOwor5YCf5bGL5L2P5bGFID4gc2hha3V5YXp1bWFpXCA7CivlvrTlhbXliLbluqYgPiBjaG91aGVpc2VpZG9cIDsKK+efreacn+Wkp+WtpiA+IHRhbmtpZGFpZ2FrdVwgOwor56uL5L2T5pS+6YCBID4gcml0dGFpaG91c291XCA7CivlpKnkupXmoZ/mlbcgPiB0ZW5qb3VzYWppa2lcIDsKK+Wcp+i/q+WMheW4ryA+IGFwcGFrdWhvdXRhaVwgOwor6YCa55So5pyf6ZaTID4gdHN1dXlvdWtpa2FuXCA7Civli4nlvLfmmYLplpMgPiBiZW5reW91amlrYW5cIDsKK+aIuOexjeishOacrCA+IGtvc2VraXRvdWhvblwgOwor5a625bqt5pWZ6IKyID4ga2F0ZWlreW91aWt1XCA7CivlnLDpnIfmjqLpibEgPiBqaXNoaW50YW5rb3VcIDsKK+mBv+mbo+air+WtkCA+IGhpbmFuYmFzaGlnb1wgOwor56S+5Lya5aWJ5LuVID4gc2hha2FpaG91c2hpXCA7CivlqZrlpJbmgKfkuqQgPiBrb25nYWlzZWlrb3VcIDsKK+S4jeWPr+aKl+WKmyA+IGZ1a2Frb3VyeW9rdVwgOwor5Z+36KGM5qmf6ZaiID4gc2hpa2tvdWtpa2FuXCA7Civli6Tli5noqZXlrpogPiBraW5tdWh5b3V0ZWlcIDsKK+W4uOeUqOWvvuaVsCA+IGpvdXlvdXRhaXN1dVwgOwor5aSn6YGT6Iq45Lq6ID4gZGFpZG91Z2VpbmluXCA7Civpu5Lpoqjnmb3pm6ggPiBrb2t1ZnV1aGFrdXVcIDsKK+mKgOihjOalreWLmSA+IGdpbmtvdWd5b3VtdVwgOwor54++5Zyw6Kq/5p+7ID4gZ2VuY2hpY2hvdXNhXCA7CivpgaDmtIvoiKrmtbcgPiBlbicneW91a291a2FpXCA7CivlpJbkuqTplqLkv4IgPiBnYWlrb3VrYW5rZWlcIDsKK+engeWtpuWKqeaIkCA+IHNoaWdha3Vqb3NlaVwgOwor54Sh55eb5YiG5aipID4gbXV0c3V1YnVuYmVuXCA7CivkuI3oia/lgrXmqKkgPiBmdXJ5b3VzYWlrZW5cIDsKK+WcsOWfn+aZguWIuyA+IGNoaWlraWppa29rdVwgOwor5Ye554mI5Y2w5Yi3ID4gb3VoYW5pbnNhdHN1XCA7Civln7rlubnnlKPmpa0gPiBraWthbnNhbmd5b3VcIDsKK+i3r+S4iumnkOi7iiA+IHJvam91Y2h1dXNoYVwgOwor6aaW6ISz5Lya6KuHID4gc2h1bm91a2FpZGFuXCA7Civni6zoo4HmlL/msrsgPiBkb2t1c2Fpc2VpamlcIDsKK+WkluS6pOWVj+mhjCA+IGdhaWtvdW1vbmRhaVwgOwor56C055Sj55Sz6KuLID4gaGFzYW5zaGluc2VpXCA7Civpg7flnJ/oirjog70gPiBreW91ZG9nZWlub3VcIDsKK+W+jOaWueWcsOWfnyA+IGtvdWhvdWNoaWlraVwgOwor5aSq6Zm95pS+5bCEID4gdGFpeW91aG91c2hhXCA7Civopb/mtIvmlofmmI4gPiBzZWl5b3VidW5tZWlcIDsKK+aMr+abv+i8uOmAgSA+IGZ1cmlrYWV5dXNvdVwgOwor5Lqk5o+b5p2h5Lu2ID4ga291a2Fuam91a2VuXCA7CivnmbrooYzluILloLQgPiBoYWtrb3VzaGlqb3VcIDsKK+S4gOaYqOaYqOW5tCA+IHNha2lvdG90b3NoaVwgOwor6KO96I+T5qWt6ICFID4gc2Vpa2FneW91c2hhXCA7CivmhJvlm73lm6PkvZMgPiBhaWtva3VkYW50YWlcIDsKK+WkieW9ouimj+WJhyA+IGhlbmtlaWtpc29rdVwgOwor5Lq65rCX5oqV56WoID4gbmlua2l0b3VoeW91XCA7CivnlLflpbPlubPnrYkgPiBkYW5qb2J5b3Vkb3VcIDsKK+mDteS+v+iRieabuCA+IHl1dWJpbmhhZ2FraVwgOwor5rWF5a2m6Z2e5omNID4gc2VuZ2FrdWhpc2FpXCA7CivluILloLTmkqTpgIAgPiBzaGlqb3V0ZXR0YWlcIDsKK+Wumuacn+aknOiouiA+IHRlaWtpa2Vuc2hpblwgOwor5Zuj5L2T56u25oqAID4gZGFudGFpa3lvdWdpXCA7CivmsJHplpPlm6PkvZMgPiBtaW5rYW5kYW50YWlcIDsKK+WwgeW7uuaAneaDsyA+IGhvdWtlbnNoaXNvdVwgOwor6Iiq57aa6Led6ZuiID4ga291em9rdWt5b3JpXCA7Civlj4zls7Dpp7Hpp50gPiBzb3Vob3VyYWt1ZGFcIDsKK+eZvuenkeWFqOabuCA+IGh5YWtrYXplbnNob1wgOwor6Kmm6KGM6Yyv6KqkID4gc2hpa291c2FrdWdvXCA7Civlt6XloLTlnLDluK8gPiBrb3Vqb3VjaGl0YWlcIDsKK+aUv+ayu+aUuemdqSA+IHNlaWppa2Fpa2FrdVwgOwor5biC5rCR5Lya6aSoID4gc2hpbWlua2Fpa2FuXCA7CivmnInpmZDkvJrnpL4gPiB5dXVnZW5nYWlzaGFcIDsKK+mHjeWVhuS4u+e+qSA+IGp1dXNob3VzaHVnaVwgOwor6aeF5YmN5bqD5aC0ID4gZWtpbWFlaGlyb2JhXCA7CivmlL/msrvosqzku7sgPiBzZWlqaXNla2luaW5cIDsKK+WwgualreS4u+WppiA+IHNlbmd5b3VzaHVmdVwgOwor54++5aC055uj552jID4gZ2VuYmFrYW50b2t1XCA7Civlhazou6LlkajmnJ8gPiBrb3V0ZW5zaHV1a2lcIDsKK+WPo+S4ieWRs+e3miA+IGt1Y2hpamFtaXNlblwgOwor5LiA5pio5pio5aScID4gaXNzYWt1c2FrdXlhXCA7CivooYDmuIXogp3ngo4gPiBrZXNzZWlrYW4nJ2VuXCA7Civkurrot6HmnKrouI8gPiBqaW5zZWtpbWl0b3VcIDsKK+W8t+WItuS/nemZuiA+IGt5b3VzZWlob2tlblwgOwor5LiA5pyb5Y2D6YeMID4gaWNoaWJvdXNlbnJpXCA7CivliJHli5nmiYDplbcgPiBrZWltdXNob2Nob3VcIDsKK+WgtOWGheaUvumAgSA+IGpvdW5haWhvdXNvdVwgOwor5pyd5LiJ5pqu5ZubID4gY2hvdXNhbmJvc2hpXCA7Civnpo/npYnlm73lrrYgPiBmdWt1c2hpa29ra2FcIDsKK+mVt+WIgOS4gOaenSA+IGNob3V0b3Vpc3NoaVwgOwor5oKy5Zac5Lqk44CFID4gaGlraWtvbW9nb21vXCA7CivnhKHnt5rlt6XlraYgPiBtdXNlbmtvdWdha3VcIDsKK+WLneWIqeaKleaJiyA+IHNob3VyaXRvdXNodVwgOwor5aSp5rCX5qaC5rOBID4gdGVua2lnYWlreW91XCA7CivnhKHluLjov4XpgJ8gPiBtdWpvdWppbnNva3VcIDsKK+ihjOWLleenkeWtpiA+IGtvdWRvdWthZ2FrdVwgOwor5LqI6Ziy5rOo5bCEID4geW9ib3VjaHV1c2hhXCA7CivmpbXnp5jmg4XloLEgPiBnb2t1aGlqb3Vob3VcIDsKK+WwgeW7uuekvuS8miA+IGhvdWtlbnNoYWthaVwgOwor5Yq05L2/57Sb5LqJID4gcm91c2hpZnVuc291XCA7Civoh6rlraboh6rnv5IgPiBqaWdha3VqaXNodXVcIDsKK+S4jemAo+e2mue3miA+IGZ1cmVuem9rdXNlblwgOwor5rK75aSW5rOV5qipID4gY2hpZ2FpaG91a2VuXCA7CivntYzmuIjlpJbkuqQgPiBrZWl6YWlnYWlrb3VcIDsKK+WIg+eJqeS4ieaYpyA+IGhhbW9ub3phbm1haVwgOwor5YWJ5a2m57mK57atID4ga291Z2FrdXNlbicnaVwgOwor5YWo5LyR5q2i56ymID4gemVua3l1dXNoaWZ1XCA7CivlkozmtIvmipjoobcgPiB3YXlvdXNldGNodXVcIDsKK+a4heeul+S8muekviA+IHNlaXNhbmdhaXNoYVwgOwor5buD6Jep572u55yMID4gaGFpaGFuY2hpa2VuXCA7Civoh6jluororJvnvqkgPiByaW5zaG91a291Z2lcIDsKK+e0lOaXpeacrOmiqCA+IGp1bicnbmlob25mdXVcIDsKK+aMmeWbveS4gOiHtCA+IGt5b2tva3VpdGNoaVwgOwor5aSn6KGG6YGL5YuVID4gdGFpc2h1dXVuZG91XCA7CivluILloLToqr/mn7sgPiBzaGlqb3VjaG91c2FcIDsKK+WFrOmWi+WkluS6pCA+IGtvdWthaWdhaWtvdVwgOwor5aSn6JS15aSn6IejID4gb29rdXJhZGFpamluXCA7Civkv67mraPkuojnrpcgPiBzaHV1c2VpeW9zYW5cIDsKK+ihjOaUv+apn+mWoiA+IGd5b3VzZWlraWthblwgOwor5pS/5pWZ5YiG6ZuiID4gc2Vpa3lvdWJ1bnJpXCA7CivmkK3kuZfmoYjlhoUgPiB0b3Vqb3VhbicnbmFpXCA7CivkupTkurrlm4PlrZAgPiBnb25pbmJheWFzaGlcIDsKK+eLrOWWhOS4u+e+qSA+IGRva3V6ZW5zaHVnaVwgOwor6Iiq56m65pu457ChID4ga291a3V1c2hva2FuXCA7Civos5vlkKblkIznpaggPiBzYW5waWRvdWh5b3VcIDsKK+S6uuaWh+Wtpua0viA+IGppbmJ1bmdha3VoYVwgOwor5o+055So55Sf55SjID4gZW4nJ3lvdXNlaXNhblwgOwor5LiN6ICV5L2c5ZywID4gZnVrb3VzYWt1Y2hpXCA7CivlpKfkvb/lhazpgrggPiB0YWlzaGlrb3V0ZWlcIDsKK+axuuitsOS6i+mghSA+IGtldHN1Z2lqaWtvdVwgOwor5rip5rOJ55mC5rOVID4gb25zZW5yeW91aG91XCA7CivkuIDpobDkuIDnrJEgPiBpcHBpbicnaXNzaG91XCA7Civpm7vmsJfkv6Hlj7cgPiBkZW5raXNoaW5nb3VcIDsKK+WwgueuoeawtOWfnyA+IHNlbmthbnN1aWlraVwgOwor5aSp5L2T5bSH5oudID4gdGVudGFpc3V1aGFpXCA7Civnm7jkupLlj4LnhacgPiBzb3Vnb3NhbnNob3VcIDsKK+WJsueDueaWmeeQhiA+IGthcHBvdXJ5b3VyaVwgOwor6YOK5aSW6Zu76LuKID4ga291Z2FpZGVuc2hhXCA7Civkv67mraPkuLvnvqkgPiBzaHV1c2Vpc2h1Z2lcIDsKK+ijnOW8t+iovOaLoCA+IGhva3lvdXNob3Vrb1wgOwor5Lq65p2Q6YqA6KGMID4gamluemFpZ2lua291XCA7Civov5Hku6Ppn7Pmpb0gPiBraW5kYWlvbmdha3VcIDsKK+ijj+mdouW3peS9nCA+IHJpbWVua291c2FrdVwgOwor5rOV5rK756S+5LyaID4gaG91Y2hpc2hha2FpXCA7CivlpKfnm6TmjK/oiJ4gPiBvb2JhbmJ1cnVtYWlcIDsKK+S4ieWykOS7o+ihqCA+IHNhbmdpZGFpaHlvdVwgOwor5pWZ5ZOh57WE5ZCIID4ga3lvdWlua3VtaWFpXCA7Civmtbfpm6PmlZHliqkgPiBrYWluYW5reXV1am9cIDsKK+mMsumfs+aUvumAgSA+IHJva3VvbmhvdXNvdVwgOwor5LiJ6ICF5Yeh6YCAID4gc2Fuc2hhYm9udGFpXCA7Civml6XmnKzmtbfmtYEgPiBuaWhvbmthaXJ5dXVcIDsKK+WPsuS4iuacgOWkpyA+IHNoaWpvdXNhaWRhaVwgOwor6KiY5oa26Zqc5a6zID4ga2lva3VzaG91Z2FpXCA7CivkuI3lirTmiYDlvpcgPiBmdXJvdXNob3Rva3VcIDsKK+iAgeiNmOaAneaDsyA+IHJvdXNvdXNoaXNvdVwgOwor6LuN6ZyA5bel5qWtID4gZ3VuanVrb3VneW91XCA7Civpm6LlkIjpm4bmlaMgPiByaWdvdXNodXVzYW5cIDsKK+iJr+Wmu+izouavjSA+IHJ5b3VzYWlrZW5ib1wgOwor6LuN5Y+45Luk5a6YID4gZ3Vuc2hpcmVpa2FuXCA7Civosr/mmJPkvJrnpL4gPiBib3Vla2lnYWlzaGFcIDsKK+eHkOmFuOiCpeaWmSA+IHJpbnNhbmhpcnlvdVwgOwor54Sh6ZmQ6LKs5Lu7ID4gbXVnZW5zZWtpbmluXCA7Civnp5HlrabmgJ3mg7MgPiBrYWdha3VzaGlzb3VcIDsKK+Wbm+a1t+WQjOiDniA+IHNoaWthaWRvdWhvdVwgOwor5YGl5bq35ZWP6aGMID4ga2Vua291bW9uZGFpXCA7CivmhJ/lgrfkuLvnvqkgPiBrYW5zaG91c2h1Z2lcIDsKK+mmrOmgreims+mfsyA+IGJhdG91a2FuJydub25cIDsKK+Wkqemggui3nemboiA+IHRlbmNob3VreW9yaVwgOwor6Kq/5p+76YOo6ZW3ID4gY2hvdXNhYnVjaG91XCA7CivljYPntKvkuIfntIUgPiBzZW5zaGliYW5rb3VcIDsKK+ihjOWLleWRveS7pCA+IGtvdWRvdW1laXJlaVwgOwor54K65pu/5omL5b2iID4ga2F3YXNldGVnYXRhXCA7CivotaTpgZPmsJflm6MgPiBzZWtpZG91a2lkYW5cIDsKK+epuuS4reiQveS4iyA+IGt1dWNodXVyYWtrYVwgOwor5a6a5qC86I236YeNID4gdGVpa2FrdWthanV1XCA7Civngrrmm7/pioDooYwgPiBrYXdhc2VnaW5rb3VcIDsKK+WumOiDveS4u+e+qSA+IGthbicnbm91c2h1Z2lcIDsKK+WutuW6reaVmeW4qyA+IGthdGVpa3lvdXNoaVwgOwor5pi85aSc5YW86KGMID4gY2h1dXlha2Vua291XCA7CivkvJrnpL7llrbmpa0gPiBrYWlzaGFlaWd5b3VcIDsKK+WVk+iSmeaAneaDsyA+IGtlaW1vdXNoaXNvdVwgOwor6Z2e5b6q55Kw55qEID4gaGlqdW5rYW50ZWtpXCA7CivmlofmsJHntbHliLYgPiBidW5taW50b3VzZWlcIDsKK+mBjumFuOWMlueJqSA+IGthc2Fua2FidXRzdVwgOwor5LiA5b+155m66LW3ID4gaWNoaW5lbmhva2tpXCA7CivogrLmiJDmoL3ln7kgPiBpa3VzZWlzYWliYWlcIDsKK+ePvuWgtOaknOiovCA+IGdlbmJha2Vuc2hvdVwgOwor5pmC5Luj6ICD6Ki8ID4gamlkYWlrb3VzaG91XCA7CivmhJ/luqboia/lpb0gPiBrYW5kb3J5b3Vrb3VcIDsKK+mAj+aYjuS6uumWkyA+IHRvdW1laW5pbmdlblwgOwor5bi45aWX5omL5q61ID4gam91dG91c2h1ZGFuXCA7CivlkozlubPlt6XkvZwgPiB3YWhlaWtvdXNha3VcIDsKK+aal+S4remjm+i6jSA+IGFuY2h1dWhpeWFrdVwgOwor5Lq65rCR6KOB5YikID4gamlubWluc2FpYmFuXCA7Civmlr3ooYzopo/liYcgPiBzaGlrb3VraXNva3VcIDsKK+WNiui6q+S4jemajyA+IGhhbnNoaW5mdXp1aVwgOwor5pmu6YCa5ZCN6KmeID4gZnV0c3V1bWVpc2hpXCA7Civlr77osaHnr4Tlm7IgPiB0YWlzaG91aGFuJydpXCA7CivkurrmsJHmiKbnt5ogPiBqaW5taW5zZW5zZW5cIDsKK+ewoeaYjuW8t+WbuiA+IGthbm1laWt5b3Vrb1wgOwor5Y+v6IO96YG45oqeID4ga2Fub3VzZW50YWt1XCA7CivlsYvlhoXnq7bmioAgPiBva3VuYWlreW91Z2lcIDsKK+WkmuaDheS7j+W/gyA+IHRham91YnVzc2hpblwgOwor5Y2Y57SU6KiI566XID4gdGFuanVua2Vpc2FuXCA7CivlhazooYbpm7voqbEgPiBrb3VzaHV1ZGVud2FcIDsKK+iKseiHquWLlei7iiA+IGhhbmFqaWRvdXNoYVwgOwor5pS+6JWp5oGv5a2QID4gaG91dG91bXVzdWtvXCA7CivlhpnnnJ/mqZ/lupcgPiBzaGFzaGlua2l0ZW5cIDsKK+S4ieetiei7jeabuSA+IHNhbnRvdWd1bnNvdVwgOwor57eK5oCl6YCu5o2VID4ga2lua3l1dXRhaWhvXCA7Civosp7mk43ouYLouqogPiB0ZWlzb3VqdXVyaW5cIDsKK+W/g+iCuuapn+iDvSA+IHNoaW5wYWlraW5vdVwgOwor6ZuM6ZuE5ZCM5qCqID4gc2hpeXV1ZG91c2h1XCA7CivpoIbpoqjmuoDluIYgPiBqdW5wdXVtYW5wYW5cIDsKK+WtpuagoeazleS6uiA+IGdha2tvdWhvdWppblwgOwor5aSJ5L2N6Zu75rWBID4gaGVuJydpZGVucnl1dVwgOwor5YmN5ZOo5Yuk5YuZID4gemVuc2hvdWtpbm11XCA7CivmtbfmtIvnp5HlraYgPiBrYWl5b3VrYWdha3VcIDsKK+i+suawkemBi+WLlSA+IG5vdW1pbicndW5kb3VcIDsKK+iyrOS7u+evhOWbsiA+IHNla2luaW5oYW4nJ2lcIDsKK+eZuuWFieWhl+aWmSA+IGhha2tvdXRvcnlvdVwgOwor5oSf5b+c5L2c55SoID4ga2FuJydub3VzYXlvdVwgOwor5a2Q5oyB5piG5biDID4ga29tb2NoaWtvbmJ1XCA7CivluILllrbkvY/lroUgPiBzaGllaWp1dXRha3VcIDsKK+S6i+alremDqOmVtyA+IGppZ3lvdWJ1Y2hvdVwgOwor5aSn6IOG5LiN5pW1ID4gZGFpdGFuZnV0ZWtpXCA7CivlpKnlnLDlibXpgKAgPiB0ZW5jaGlzb3V6b3VcIDsKK+W4guWgtOe1jOa4iCA+IHNoaWpvdWtlaXphaVwgOwor5LqI5a6a5pyf5pelID4geW90ZWlraWppdHN1XCA7CivljLvnmYLmioDooZMgPiBpcnlvdWdpanV0c3VcIDsKK+S9v+W9ueWLleipniA+IHNoaWVraWRvdXNoaVwgOwor5b605YW15qSc5p+7ID4gY2hvdWhlaWtlbnNhXCA7Civoh6rlrrbnmbrpm7sgPiBqaWthaGF0c3VkZW5cIDsKK+WQjOiqnuWPjeW+qSA+IGRvdWdvaGFucHVrdVwgOwor5byB6KuW5aSn5LyaID4gYmVucm9udGFpa2FpXCA7CivkuIDoiKzmipXnpaggPiBpcHBhbnRvdWh5b3VcIDsKK+S4gOS6uuaBr+WtkCA+IGhpdG9yaW11c3Vrb1wgOwor6YCA5b256LuN5Lq6ID4gdGFpZWtpZ3VuamluXCA7CivkurrnlJ/mnIDmgqogPiBqaW5zZWlzYWlha3VcIDsKK+WNsOWKoOmbu+WcpyA+IGlua2FkZW4nJ2F0c3VcIDsKK+a2suaAp+mZkOeVjCA+IGVraXNlaWdlbmthaVwgOwor5qCE6aSK5a2m6ICFID4gZWl5b3VnYWt1c2hhXCA7Civpg73luILkuqTpgJogPiB0b3NoaWtvdXRzdXVcIDsKK+S6pOaPm+aVmeaOiCA+IGtvdWthbmt5b3VqdVwgOwor5a2m55Sf5pmC5LujID4gZ2FrdXNlaWppZGFpXCA7CivmhJvnpL7nsr7npZ4gPiBhaXNoYXNlaXNoaW5cIDsKK+iAgeWMluePvuixoSA+IHJvdWthZ2Vuc2hvdVwgOwor56S+5Lya5ZWP6aGMID4gc2hha2FpbW9uZGFpXCA7Civnm7LnrqHpioPlibUgPiBtb3VrYW5qdXVzb3VcIDsKK+adsea1t+WcsOaWuSA+IHRvdWthaWNoaWhvdVwgOwor55m66KGM5Lya56S+ID4gaGFra291Z2Fpc2hhXCA7Civov5HmiYDlkIjlo4EgPiBraW5qb2dhcHBla2lcIDsKK+mfs+WjsOWcp+e4riA+IG9uc2VpYXNzaHVrdVwgOwor5rCR5peP5Li7576pID4gbWluem9rdXNodWdpXCA7CivlsILploDnp5Hnm64gPiBzZW5tb25rYW1va3VcIDsKK+a4m+mHj+e1jOWWtiA+IGdlbnJ5b3VrZWllaVwgOwor552h55yg5LiN6LazID4gc3VpbWluYnVzb2t1XCA7CivlhYTlprnllqflmKkgPiBreW91ZGFpZ2Vua2FcIDsKK+mBi+mAgeWlkee0hCA+IHVuc291a2VpeWFrdVwgOwor6Iie5Y+w5Lit57aZID4gYnV0YWljaHV1a2VpXCA7CivkuIvlsaTpmo7ntJogPiBrYXNvdWthaWt5dXVcIDsKK+e1jOa4iOmXmOS6iSA+IGtlaXphaXRvdXNvdVwgOwor5LiN6Imv5bCR5aWzID4gZnVyeW91c2hvdWpvXCA7Civlv5zmj7TmvJToqqwgPiBvdWVuJydlbnpldHN1XCA7CivooYzli5XljYrlvoQgPiBrb3Vkb3VoYW5rZWlcIDsKK+WcsOmch+WcsOW4ryA+IGppc2hpbmNoaXRhaVwgOwor6YCa6YGO6LK/5piTID4gdHN1dWthYm91ZWtpXCA7CivntbHoqIjlubTpkZEgPiB0b3VrZWluZW5rYW5cIDsKK+S6uuaJi+S4jei2syA+IGhpdG9kZWJ1c29rdVwgOwor5Y2B5Lit5YWr5LmdID4gaml0Y2h1dWhha2t1XCA7Civmu4vlvLfpo7LmlpkgPiBqaWt5b3VpbnJ5b3VcIDsKK+Wbm+inkuWPt+eivCA+IHNoaWtha3Vnb3VtYVwgOwor5Zu65a6a6Kaz5b+1ID4ga290ZWlrYW4nJ25lblwgOwor57WM6aiT56eR5a2mID4ga2Vpa2Vua2FnYWd1XCA7Civojbfpm7vnspLlrZAgPiBrYWRlbnJ5dXVzaGlcIDsKK+S6uuW3peeUn+WRvSA+IGppbmtvdXNlaW1laVwgOwor6Zu75rCX5paZ6YeRID4gZGVua2lyeW91a2luXCA7CivlvoDlvqnokYnmm7ggPiBvdWZ1a3VoYWdha2lcIDsKK+S6uumAoOefs+ayuSA+IGppbnpvdXNla2l5dVwgOwor5aSp56u654mh5Li5ID4gdGVuamlrdWJvdGFuXCA7CivlvqHpprPotbDmp5ggPiBnb2NoaXNvdXNhbWFcIDsKK+Wkqei3r+attOeoiyA+IHRlbnJvcmVraXRlaVwgOwor5YWx5ZCM5L6/5omAID4ga3lvdWRvdWJlbmpvXCA7CivmmpfmrrrmnKrpgYIgPiBhbnNhdHN1bWlzdWlcIDsKK+acquaJleiyu+eUqCA+IG1paGFyYWloaXlvdVwgOwor55u45LqS6YWN5bGeID4gc291Z29oYWl6b2t1XCA7CivnoLTpoZTkuIDnrJEgPiBoYWdhbicnaXNzaG91XCA7CivmsrvnmYLlirnmnpwgPiBjaGlyeW91a291a2FcIDsKK+eMn+WumOWItuW6piA+IHJ5b3VrYW5zZWlkb1wgOwor5Y+O5a655oKj6ICFID4gc2h1dXlvdWthbmphXCA7CivmrabpmbXmoYPmupAgPiBidXJ5b3V0b3VnZW5cIDsKK+S6uuawkeaJgOaciSA+IGppbm1pbnNob3l1dVwgOwor5Y+N5bCE5L+C5pWwID4gaGFuc2hha2Vpc3V1XCA7Civlt6Xmpa3mhI/ljKAgPiBrb3VneW91aXNob3VcIDsKK+ebuOWvvuipleS+oSA+IHNvdXRhaWh5b3VrYVwgOwor57WM5riI5ZWP6aGMID4ga2VpemFpbW9uZGFpXCA7CivkuInljYHlha3oqIggPiBzYW5qdXVyb2trZWlcIDsKK+aui+alreaJi+W9kyA+IHphbmd5b3V0ZWF0ZVwgOwor5oqV55CD5YuV5L2cID4gdG91a3l1dWRvdXNhXCA7CivpmLLngb3oqJPnt7QgPiBib3VzYWlrdW5yZW5cIDsKK+iAkOeUqOW5tOaVsCA+IHRhaXlvdW5lbnN1dVwgOwor5rCR5a6a5oay5rOVID4gbWludGVpa2VucG91XCA7Civnpo/liKnljprnlJ8gPiBmdWt1cmlrb3VzZWlcIDsKK+a2iOiAl+WTgeiyuyA+IHNob3Vtb3VoaW5oaVwgOwor56eB5pyJ6LKh55SjID4gc2hpeXV1emFpc2FuXCA7CivlrabntJrplonpjpYgPiBnYWtreXV1aGVpc2FcIDsKK+S6uueUn+iomOmMsiA+IGppbnNlaWtpcm9rdVwgOwor5a6f5Yip5Li7576pID4gaml0c3VyaXNodWdpXCA7Civlhazkvb/ppKjlk6EgPiBrb3VzaGlrYW4nJ2luXCA7CivpgLLljJboq5bogIUgPiBzaGlua2Fyb25zaGFcIDsKK+epuuS4reapn+WLlSA+IGt1dWNodXVraWRvdVwgOwor5oqV56Wo57WQ5p6cID4gdG91aHlvdWtla2thXCA7CivliY3mj5DmnaHku7YgPiB6ZW50ZWlqb3VrZW5cIDsKK+WkluS6uumBuOaJiyA+IGdhaWppbnNlbnNodVwgOwor5beo5aSn5YiG5a2QID4ga3lvZGFpYnVuc2hpXCA7CivotIvpgKDntJnluaMgPiBnYW56b3VzaGloZWlcIDsKK+aknOWumuippumokyA+IGtlbnRlaXNoaWtlblwgOwor6JeN57as6KSS56ugID4gcmFuanVob3VzaG91XCA7Civlj7jms5XoqabpqJMgPiBzaGlob3VzaGlrZW5cIDsKK+aflOi7n+S9k+aTjSA+IGp1dW5hbnRhaXNvdVwgOwor5LiN6Imv5bCO5L2TID4gZnVyeW91ZG91dGFpXCA7Civlr77miKbou4rnoLIgPiB0YWlzZW5zaGFob3VcIDsKK+atu+S9k+ino+WJliA+IHNoaXRhaWthaWJvdVwgOwor5YW85qWt6L6y5a62ID4ga2VuZ3lvdW5vdWthXCA7CivlhazplovpjLLpn7MgPiBrb3VrYWlyb2t1b25cIDsKK+a1t+i7jeWkp+iHoyA+IGthaWd1bmRhaWppblwgOwor5Y2X5Lqs6Iqx54GrID4gbmFua2luaGFuYWJpXCA7CivmiYHmoYPohbrngo4gPiBoZW50b3VzZW4nJ2VuXCA7CivkuK3lpK7pioDooYwgPiBjaHV1b3VnaW5rb3VcIDsKK+Wcp+e4ruepuuawlyA+IGFzc2h1a3VrdXVraVwgOwor5rG65riI5omL5q61ID4ga2Vzc2Fpc2h1ZGFuXCA7Civku6PnkIbmpa3ogIUgPiBkYWlyaWd5b3VzaGFcIDsKK+mFjee9rui7ouaPmyA+IGhhaWNoaXRlbmthblwgOwor56aB5rK755Sj6ICFID4ga2luY2hpc2Fuc2hhXCA7CivlhajouqvkuI3pmo8gPiB6ZW5zaGluZnV6dWlcIDsKK+mBi+i7ouaKgOihkyA+IHVudGVuZ2lqdXRzdVwgOwor6Zu75a2Q6Z+z5qW9ID4gZGVuc2hpb25nYWt1XCA7CivljYPkuIfnhKHph48gPiBzZW5tYW5tdXJ5b3VcIDsKK+iHquauuuW5h+WKqSA+IGppc2F0c3Vob3Vqb1wgOwor5Luj5pWw6Zai5pWwID4gZGFpc3V1a2Fuc3V1XCA7Civpn7Ppn7/oqK3oqIggPiBvbmt5b3VzZWtrZWlcIDsKK+S5s+anmOeqgei1tyA+IG55dXV5b3V0b2traVwgOwor5LqL5YmN5Ymy5b2TID4gaml6ZW53YXJpYXRlXCA7CivlhbXlvbnlhY3nirYgPiBoZWlla2ltZW5qb3VcIDsKK+Wkqea2r+WtpOeLrCA+IHRlbmdhaWtvZG9rdVwgOwor5LiN5om/5LiN5om/ID4gZnVzaG91YnVzaG91XCA7CivnhKHmiYDlsZ7nj74gPiBtdXNob3pva3VnZW5cIDsKK+acqOmAoOWutuWxiyA+IG1va3V6b3VrYW9rdVwgOwor6aSK6ICB5bm06YeRID4geW91cm91bmVua2luXCA7CivmgqDjgIXoh6rpgakgPiB5dXV5dXVqaXRla2lcIDsKK+S6i+WJjeeglOS/riA+IGppemVua2Vuc2h1dVwgOwor5L2T57O75paH5rOVID4gdGFpa2VpYnVucG91XCA7Civpm4zpm4TlkIzkvZMgPiBzaGl5dXVkb3V0YWlcIDsKK+ani+mAoOaxmuiBtyA+IGtvdXpvdW9zaG9rdVwgOwor5Z+656SO55+l6K2YID4ga2lzb2NoaXNoaWtpXCA7CivlnLDln5/ntJvkuokgPiBjaGlpa2lmdW5zb3VcIDsKK+WNmOWzsOmnsemnnSA+IHRhbnBvdXJha3VkYVwgOwor5Lq65rCX5ZWG5aOyID4gbmlua2lzaG91YmFpXCA7Civlp4nlprnllqflmKkgPiBreW91ZGFpZ2Vua2FcIDsKK+WNg+Wnv+S4h+aFiyA+IHNlbnNoaWJhbnRhaVwgOwor5YWs5pyJ6LKh55SjID4ga291eXV1emFpc2FuXCA7CivlhYjooYzmipXos4cgPiBzZW5rb3V0b3VzaGlcIDsKK+ijvemAoOW3peeoiyA+IHNlaXpvdWtvdXRlaVwgOwor6Ieq55Sx56u25LqJID4gaml5dXVreW91c291XCA7Civlt53prZrmlpnnkIYgPiBrYXdhdW9yeW91cmlcIDsKK+ePvuS7o+enkeWtpiA+IGdlbmRhaWthZ2FrdVwgOwor55Sj5qWt5qmf5qKwID4gc2FuZ3lvdWtpa2FpXCA7CivkuI3lkIjmoLzogIUgPiBmdWdvdWtha3VzaGFcIDsKK+aakeS4reimi+iIniA+IHNob2NodXVtaW1haVwgOwor6KqY5bCO5bCL5ZWPID4geXV1ZG91amlubW9uXCA7CivnkaDnkoPllJDojYkgPiBydXJpa2FyYWt1c2FcIDsKK+WumuW9ouWLleipniA+IHRlaWtlaWRvdXNoaVwgOwor5Zan44CF5ZuC44CFID4ga2Vua2VuZ291Z291XCA7CivkurrplpPplqLkv4IgPiBuaW5nZW5rYW5rZWlcIDsKK+i1pOWNgeWtl+ekviA+IHNla2lqdXVqaXNoYVwgOwor54Sh55Sj6ZqO57SaID4gbXVzYW5rYWlreXV1XCA7Civlha3ms5Xlhajmm7ggPiByb3Bwb3V6ZW5zaG9cIDsKK+mbhuaoqeaOkumZpCA+IHNodXVrZW5oYWlqb1wgOwor5Zu96Zqb5Lya6K2wID4ga29rdXNhaWthaWdpXCA7CivlhZDnq6XmloflraYgPiBqaWRvdWJ1bmdha3VcIDsKK+i7jeS6i+enmOWvhiA+IGd1bmppaGltaXRzdVwgOwor5Lu75oSP5Ye66aCtID4gbmluJydpc2h1dHRvdVwgOwor5LuY6ZqP54++6LGhID4gZnV6dWlnZW5zaG91XCA7CivllIfmra/ovJTou4ogPiBzaGluc2hpaG9zaGFcIDsKK+WOn+WboOiqv+afuyA+IGdlbicnaW5jaG91c2FcIDsKK+S6uui3oeacquWIsCA+IGppbnNla2ltaXRvdVwgOwor5ouF5b2T6YOo6ZW3ID4gdGFudG91YnVjaG91XCA7CivkuLvku7vmlZnmjoggPiBzaHVuaW5reW91anVcIDsKK+i7jeWCmeWJiua4myA+IGd1bmJpc2FrdWdlblwgOwor5YWs6ZaL6KOB5YikID4ga291a2Fpc2FpYmFuXCA7CivliIbop6Pkv67nkIYgPiBidW5rYWlzaHV1cmlcIDsKK+eZvuiKseaWieaUviA+IGh5YWtrYXNlaWhvdVwgOwor5Lq66YCg55yf54+gID4gamluem91c2hpbmp1XCA7CivnpZ7ntYzpgY7mlY8gPiBzaGlua2Vpa2FiaW5cIDsKK+mAgemHkeeCuuabvyA+IHNvdWtpbmthd2FzZVwgOwor5Y6z5q2j56eR5a2mID4gZ2Vuc2Vpa2FnYWt1XCA7Civlj7jms5Xmm7jlo6sgPiBzaGlob3VzaG9zaGlcIDsKK+WcqOWkluizh+eUoyA+IHphaWdhaXNoaXNhblwgOwor5rOV5b6L6YGV5Y+NID4gaG91cml0c3VpaGFuXCA7CivpgLLot6/mjIflsI4gPiBzaGlucm9zaGlkb3VcIDsKK+S6iOWCmeWNlOe0hCA+IHlvYmlreW91eWFrdVwgOwor5pWZ6IKy546p5YW3ID4ga3lvdWlrdWdhbmd1XCA7Civmlofms5Xopo/liYcgPiBidW5wb3VraXNva3VcIDsKK+WujOS6huaZguWItiA+IGthbnJ5b3VqaXNlaVwgOwor5LqL5a6f6Kqk6KqNID4gamlqaXRzdWdvbmluXCA7Civou43pnIDnlKPmpa0gPiBndW5qdXNhbmd5b3VcIDsKK+iHqueEtuenkeWtpiA+IHNoaXplbmthZ2FrdVwgOwor5q2m6ICF5L+u6KGMID4gbXVzaGFzaHVneW91XCA7CivnlJ/miJDmlofms5UgPiBzZWlzZWlidW5wb3VcIDsKK+WPuOazleWkp+iHoyA+IHNoaWhvdWRhaWppblwgOwor5Li76ISz5Lya6KuHID4gc2h1bm91a2FpZGFuXCA7CivlvqHnlKjllYbkurogPiBnb3lvdXNob3VuaW5cIDsKK+S9v+W+kuS/oeadoSA+IHNoaXRvc2hpbmpvdVwgOwor6Ki85oug54mp5Lu2ID4gc2hvdWtvYnVra2VuXCA7Civkuojlgpnnn6XorZggPiB5b2JpY2hpc2hpa2lcIDsKK+WQiOWQjeS8muekviA+IGdvdW1laWdhaXNoYVwgOwor5YWx5ZCM5LiA6Ie0ID4ga3lvdWRvdWl0Y2hpXCA7CivmrablipvmlL/msrsgPiBidXJ5b2t1c2VpamlcIDsKK+i7jOmBk+S/ruatoyA+IGtpZG91c2h1dXNlaVwgOwor5rm+5bK45oim5LqJID4gd2FuZ2Fuc2Vuc291XCA7CivlkIjmoLznpYjpoZggPiBnb3VrYWt1a2lnYW5cIDsKK+WMluWtpuiCpeaWmSA+IGthZ2FrdWhpcnlvdVwgOwor54us6KOB5Zu95a62ID4gZG9rdXNhaWtva2thXCA7CivkvY7liKnph5Hono0gPiB0ZWlyaWtpbicneXV1XCA7CivlnJ/poZ7ph5HlsZ4gPiBkb3J1aWtpbnpva3VcIDsKK+WFseWSjOaUv+S9kyA+IGt5b3V3YXNlaXRhaVwgOwor5rOV5bu36ZeY5LqJID4gaG91dGVpdG91c291XCA7Civlho3nlJ/oo4Xnva4gPiBzYWlzZWlzb3VjaGlcIDsKK+WMl+aWuemgmOWcnyA+IGhvcHBvdXJ5b3Vkb1wgOwor5YWo5buD6KuW6ICFID4gemVucGFpcm9uc2hhXCA7CivntK/pgLLoqrLnqI4gPiBydWlzaGlua2F6ZWlcIDsKK+WbvemYsuS8muitsCA+IGtva3Vib3VrYWlnaVwgOwor5LqM55m+5Y2B5pelID4gbmloeWFrdXRvb2thXCA7CivkuovliY3pgJrloLEgPiBqaXplbnRzdXVob3VcIDsKK+ekvuS8muaEj+itmCA+IHNoYWthaWlzaGlraVwgOwor5o+05Yqp5YeN57WQID4gZW5qb3RvdWtldHN1XCA7CivlronlhajnrKzkuIAgPiBhbnplbmRhaWljaGlcIDsKK+WAi+S6uuaUu+aSgyA+IGtvamlua291Z2VraVwgOwor5oKq5oiv5Z2K5Li7ID4gaXRhenVyYWJvdXp1XCA7CivpgYrli5XlhobmnKggPiB5dXVkb3VlbmJva3VcIDsKK+WGhuW9ouWKh+WgtCA+IGVua2VpZ2VraWpvdVwgOwor6Iqt6JWJ5qK25pyoID4gYmFzaG91a2FqaWtpXCA7Civmg4XloLHnp5HlraYgPiBqb3Vob3VrYWdha3VcIDsKK+WCt+Wus+S/nemZuiA+IHNob3VnYWlob2tlblwgOwor56C055Sj5a6j5ZGKID4gaGFzYW5zZW5rb2t1XCA7Civnmannl4XmgqPogIUgPiByYWlieW91a2FuamFcIDsKK+ato+ato+WgguWggiA+IHNlaXNlaWRvdWRvdVwgOwor5Zug5a2Q5YiG5p6QID4gaW5zaGlidW5zZWtpXCA7CivlvoXlkIjmlL/msrsgPiBtYWNoaWFpc2VpamlcIDsKK+acq+azleaAneaDsyA+IG1hcHBvdXNoaXNvdVwgOwor6Iiq57aa5pmC6ZaTID4ga291em9rdWppa2FuXCA7CivlsILlo7LnibnoqLEgPiBzZW5iYWl0b2treW9cIDsKK+WQjOeoruWQjOaWhyA+IGRvdXNodWRvdWJ1blwgOwor6YmE6YGT5LqL5pWFID4gdGV0c3Vkb3VqaWtvXCA7CivnnJ/nkIbplqLmlbAgPiBzaGlucmlrYW5zdXVcIDsKK+WtkOWtkOWtq+WtqyA+IHNoaXNoaXNvbnNvblwgOwor6Iux5Zu955+z5rK5ID4gZWlrb2t1c2VraXl1XCA7Civkv53orbfoprPlr58gPiBob2dva2Fuc2F0c3VcIDsKK+enmOWvhuWFteWZqCA+IGhpbWl0c3VoZWlraVwgOwor6YO15L6/6LKv6YeRID4geXV1YmluY2hva2luXCA7Civkuozph43kurrmoLwgPiBuaWp1dWppbmtha3VcIDsKK+eZveiho+aYjuWmgyA+IGJ5YWt1ZW15b3VoaVwgOwor55Sf5L2T6Kej5YmWID4gc2VpdGFpa2FpYm91XCA7Civnq4vlpKrlrZDnpLwgPiByaXR0YWlzaGlyZWlcIDsKK+Wun+mam+WVj+mhjCA+IGppc3NhaW1vbmRhaVwgOwor5YWs6Lui6YCf5bqmID4ga291dGVuc29rdWRvXCA7CivkuIDnn7Pkuozps6UgPiBpc3Nla2luaWNob3VcIDsKK+aVmeiCsuiqsueoiyA+IGt5b3Vpa3VrYXRlaVwgOwor5Lq65Luj5ZCN6KmeID4gamluZGFpbWVpc2hpXCA7CivlhKrnlJ/ntZDlqZogPiB5dXVzZWlrZWtrb25cIDsKK+WPo+mgreippuWVjyA+IGtvdXRvdXNoaW1vblwgOwor5Lqk6YCa5a6J5YWoID4ga291dHN1dWFuemVuXCA7Civlkozmlofoi7HoqLMgPiB3YWJ1bicnZWl5YWt1XCA7CivmnKzlrrbmnKzlhYMgPiBob25rZWhvbm1vdG9cIDsKK+ebsuebrumjm+ihjCA+IG1vdW1va3VoaWtvdVwgOwor5rue56m66KiY6YyyID4gdGFpa3V1a2lyb2t1XCA7Civnq4vkvZPoo4Hmlq0gPiByaXR0YWlzYWlkYW5cIDsKK+WbveWGheS6i+aDhSA+IGtva3VuYWlqaWpvdVwgOwor5o6l6Kem5LqL5pWFID4gc2Vzc2hva3VqaWtvXCA7Civkub7nh6XohZDmnL0gPiBrYW5zb3VmdWt5dXVcIDsKK+WQiOizh+S8muekviA+IGdvdXNoaWdhaXNoYVwgOwor5b2r5Yi75YW35bqnID4gY2hvdWtva3VndXphXCA7CivmiLjlpJbmkq7lvbEgPiBrb2dhaXNhdHN1ZWlcIDsKK+W/nOaApeS/rueQhiA+IG91a3l1dXNodXVyaVwgOwor6bq76YWU5rOo5bCEID4gbWFzdWljaHV1c2hhXCA7CivmnKvnq6/kvqHmoLwgPiBtYXR0YW5rYWtha3VcIDsKK+WBtuWDj+W0h+aLnSA+IGd1dXpvdXN1dWhhaVwgOwor5pmu6YCa5YiX6LuKID4gZnV0c3V1cmVzc2hhXCA7CivlkozlubPkuqTmuIkgPiB3YWhlaWtvdXNob3VcIDsKK+W+queSsOirluazlSA+IGp1bmthbnJvbnBvdVwgOwor6aO96aOf5pqW6KGjID4gaG91c2hva3VkYW5pXCA7CivmqZ/morDlt6Xmpa0gPiBraWthaWtvdWd5b3VcIDsKK+eEoemZkOmbhuWQiCA+IG11Z2Vuc2h1dWdvdVwgOwor5pyJ5L6h6Ki85Yi4ID4geXV1a2FzaG91a2VuXCA7Civnt4/ntbHpgbjmjJkgPiBzb3V0b3VzZW5reW9cIDsKK+S6uuawl+W9ueiAhSA+IG5pbmtpeWFrdXNoYVwgOwor5biC5YaF6YCa6KmxID4gc2hpbmFpdHN1dXdhXCA7CivkuIDnrYnpmbjlo6sgPiBpdHRvdXJpa3VzaGlcIDsKK+ism+WSjOadoee0hCA+IGtvdXdham91eWFrdVwgOwor5bel5qWt6YO95biCID4ga291Z3lvdXRvc2hpXCA7CivljZPkuIrpm7voqbEgPiB0YWt1am91ZGVud2FcIDsKK+Wuouims+S4u+e+qSA+IGt5YWtrYW5zaHVnaVwgOwor5YWx5ZCM6KyA6K2wID4ga3lvdWRvdWJvdWdpXCA7Civos7zosrfntYTlkIggPiBrb3ViYWlrdW1pYWlcIDsKK+iri+iyoOS7leS6iyA+IHVrZW9pc2hpZ290b1wgOwor6ZuH55So5aWR57SEID4ga295b3VrZWl5YWt1XCA7CivlvZPmhI/ljbPlppkgPiB0b3Vpc29rdW15b3VcIDsKK+WKtOWDjeW4guWgtCA+IHJvdWRvdXNoaWpvdVwgOwor5Y+N5a++5bCL5ZWPID4gaGFudGFpamlubW9uXCA7Civlo6vlrpjlrabmoKEgPiBzaGlrYW5nYWtrb3VcIDsKK+WQjeiqieS8mumVtyA+IG1laXlva2FpY2hvdVwgOwor5bmz5Z2H57Wm5LiOID4gaGVpa2lua3l1dXlvXCA7CivlsI/kvr/lsI/lg6cgPiBzaG91YmVua296b3VcIDsKK+S6uuaoqei5gui6qiA+IGppbmtlbmp1dXJpblwgOwor5Zyn57iu6YW457SgID4gYXNzaHVrdXNhbnNvXCA7CivkurrmqKnouYLoupkgPiBqaW5rZW5qdXVyaW5cIDsKK+W5tOasoeWgseWRiiA+IG5lbmppaG91a29rdVwgOwor6YO15L6/55Wq5Y+3ID4geXV1YmluYmFuZ291XCA7CivoqIjnrpfllY/poYwgPiBrZWlzYW5tb25kYWlcIDsKK+e3j+WQiOmbkeiqjCA+IHNvdWdvdXphc3NoaVwgOwor5Zyf5Zyw5Y+O55SoID4gdG9jaGlzaHV1eW91XCA7CivluoPlkYrlirnmnpwgPiBrb3Vrb2t1a291a2FcIDsKK+W5vOWFkOaVmeiCsiA+IHlvdWppa3lvdWlrdVwgOwor6L+R5omA6L+35oORID4ga2luam9tZWl3YWt1XCA7CivnhKHpmZDntJrmlbAgPiBtdWdlbmt5dXVzdXVcIDsKK+S4gOWIu+WNg+mHkSA+IGlra29rdXNlbmtpblwgOwor6Zmq5a+p5Yi25bqmID4gYmFpc2hpbnNlaWRvXCA7Civnt6jpm4bmqZ/og70gPiBoZW5zaHV1a2lub3VcIDsKK+WFiOWPlueJueaoqSA+IHNlbnNodXRva2tlblwgOwor5bCC6ZaA5YiG6YeOID4gc2VubW9uYnVuJyd5YVwgOwor5ouF5a2Q6I+M6aGeID4gdGFuc2hpa2lucnVpXCA7CivplqLkv4LlvLfljJYgPiBrYW5rZWlreW91a2FcIDsKK+aUu+aSg+mDqOmaiiA+IGtvdWdla2lidXRhaVwgOwor56eY5a+G5Lya6K2wID4gaGltaXRzdWthaWdpXCA7CivmrabogIXkv67mpa0gPiBtdXNoYXNodWd5b3VcIDsKK+a2iOmfs+ijhee9riA+IHNob3VvbnNvdWNoaVwgOwor5rqA5bee5LqL5aSJID4gbWFuc2h1dWppaGVuXCA7Civos4fnlKPoqZXkvqEgPiBzaGlzYW5oeW91a2FcIDsKK+WHuueJiOioseWPryA+IHNodXBwYW5reW9rYVwgOwor5Zu95YaF6ZyA6KaBID4ga29rdW5haWp1eW91XCA7CivljYPkuIfplbfogIUgPiBzZW5iYW5jaG91amFcIDsKK+WMluWtpuippumokyA+IGthZ2FrdXNoaWtlblwgOwor57Sw6IOe5Z+56aSKID4gc2FpYm91YmFpeW91XCA7Civpn7Ppn7vntYTnuZQgPiBvbicnaW5zb3NoaWtpXCA7Civlh6blh6bmlrnmlrkgPiBzaG9zaG9ob3Vib3VcIDsKK+W6p+aomeWkieaPmyA+IHphaHlvdWhlbmthblwgOwor5qmf5qKw5bel5a2mID4ga2lrYWlrb3VnYWt1XCA7CivnrKzkuInpg6jplbcgPiBkYWlzYW5idWNob3VcIDsKK+Wlh+WyqeaAquefsyA+IGtpZ2Fua2Fpc2VraVwgOwor6ICQ6aKo5qeL6YCgID4gdGFpZnV1a291em91XCA7Civnn7Ppubjlt6XloLQgPiBzZWtrZW5rb3Vqb3VcIDsKK+WcqOmDt+i7jeS6uiA+IHphaWdvdWd1bmppblwgOwor5bm96ZyK5Lya56S+ID4geXV1cmVpZ2Fpc2hhXCA7CivnkrDlooPnoLTlo4ogPiBrYW5reW91aGFrYWlcIDsKK+Wbvemam+S4u+e+qSA+IGtva3VzYWlzaHVnaVwgOwor5b6h56+A5paZ55CGID4gb3NlY2hpcnlvdXJpXCA7Civkv67nkIblt6XloLQgPiBzaHV1cmlrb3Vqb3VcIDsKK+aLkuWQpuWPjeW/nCA+IGt5b2hpaGFuJydub3VcIDsKK+S4gOiogOS4gOWPpSA+IGljaGlnb24nJ2lra3VcIDsKK+WNmOeLrOmjm+ihjCA+IHRhbmRva3VoaWtvdVwgOwor5Li75qip5Zyo5rCRID4gc2h1a2VuemFpbWluXCA7CivkurrmoLzkuLvnvqkgPiBqaW5rYWt1c2h1Z2lcIDsKK+iHquauuuacqumBgiA+IGppc2F0c3VtaXN1aVwgOwor5Ye65a626YGB5LiWID4gc2h1a2tldG9uc2VpXCA7CivntJDpnanppYLpo6kgPiBoaW1va2F3YXVkb25cIDsKK+aEmuawkeaUv+etliA+IGd1bWluc2Vpc2FrdVwgOwor5Y2Y56eR5aSn5a2mID4gdGFua2FkYWlnYWt1XCA7CivpganmraPliKnmvaQgPiB0ZWtpc2VpcmlqdW5cIDsKK+eZuumfs+iomOWPtyA+IGhhdHN1b25raWdvdVwgOwor6LuN5LqL5Y2U5a6aID4gZ3VuamlreW91dGVpXCA7Civopb/pq5jmnbHkvY4gPiBzZWlrb3V0b3V0ZWlcIDsKK+aQjeiAl+S6uuWToSA+IHNvbm1vdWppbicnaW5cIDsKK+Wun+WLouS+oeagvCA+IGppc3NlaWtha2FrdVwgOwor5o+055So6Kit6KiIID4gZW4nJ3lvdXNla2tlaVwgOwor54++5aC05Lit57aZID4gZ2VuYmFjaHV1a2VpXCA7CivmhJ/nn6Xoo4Xnva4gPiBrYW5jaGlzb3VjaGlcIDsKK+itsOaxuuapn+mWoiA+IGdpa2V0c3VraWthblwgOwor5a6J5b+D56uL5ZG9ID4gYW5qaW5yeW91bWVpXCA7CivlkIjlkIzkuovmpa0gPiBnb3Vkb3VqaWd5b3VcIDsKK+WQjOacn+S/oeWPtyA+IGRvdWtpc2hpbmdvdVwgOwor5Luy6ZaT5oSP6K2YID4gbmFrYW1haXNoaWtpXCA7CivlqpLku4vlpInmlbAgPiBiYWlrYWloZW5zdXVcIDsKK+WvkuS4reawtOazsyA+IGthbmNodXVzdWllaVwgOwor6KKr5L+d6Zm654mpID4gaGlob2tlbmJ1dHN1XCA7Civmmpfmrrrkuovku7YgPiBhbnNhdHN1amlrZW5cIDsKK+aKmOiht+S4u+e+qSA+IHNldGNodXVzaHVnaVwgOwor5Y2Y5byP57C/6KiYID4gdGFuc2hpa2lib2tpXCA7CivmlZnppIroqrLnqIsgPiBreW91eW91a2F0ZWlcIDsKK+S4ieiAheS8muirhyA+IHNhbnNoYWthaWRhblwgOwor6YCj6KiY5oqV56WoID4gcmVua2l0b3VoeW91XCA7Civlv4PnkIbnirbmhYsgPiBzaGlucmlqb3V0YWlcIDsKK+a1t+WkluW4guWgtCA+IGthaWdhaXNoaWpvdVwgOwor5pei5oiQ5LqL5a6fID4ga2lzZWlqaWppdHN1XCA7Civkuovli5nnt4/lsYAgPiBqaW11c291a3lva3VcIDsKK+WJjemAsuWfuuWcsCA+IHplbnNoaW5raWNoaVwgOwor5ZCM5bel55Ww5puyID4gZG91a291aWt5b2t1XCA7Civlkb3poYzplqLmlbAgPiBtZWlkYWlrYW5zdXVcIDsKK+WMl+ilv+iIqui3ryA+IGhva3VzZWlrb3Vyb1wgOwor5ZCI5ZCM5Lya5ZCIID4gZ291ZG91a2FpZ291XCA7Civnq4vlnLDmnaHku7YgPiByaXRjaGlqb3VrZW5cIDsKK+WcsOeQhuWtpuiAhSA+IGNoaXJpZ2FrdXNoYVwgOwor5aSn5omA6auY5omAID4gdGFpc2hva291c2hvXCA7Civph43opIfkv53pmbogPiBqdXVmdWt1aG9rZW5cIDsKK+mAmuW4uOWFteWZqCA+IHRzdXVqb3VoZWlraVwgOwor5aSW5Zu96YOo6ZqKID4gZ2Fpa29rdWJ1dGFpXCA7CivmlofljJbkuqTmtYEgPiBidW5rYWtvdXJ5dXVcIDsKK+W4guWklumAmuipsSA+IHNoaWdhaXRzdXV3YVwgOwor5q+b57Sw6KGA566hID4gbW91c2Fpa2Vra2FuXCA7Civli5XmhYvntbHoqIggPiBkb3V0YWl0b3VrZWlcIDsKK+ekvuWGheaDheWgsSA+IHNoYW5haWpvdWhvdVwgOwor5Lit5YWs5paH5bqrID4gY2h1dWtvdWJ1bmtvXCA7CivlnKfpm7vlirnmnpwgPiBhdHN1ZGVua291a2FcIDsKK+mtkemthemtjemtjiA+IGNoaW1pbW91cnlvdVwgOwor5b6q55Kw57O757WxID4ganVua2Fua2VpdG91XCA7Civlr77kurrplqLkv4IgPiB0YWlqaW5rYW5rZWlcIDsKK+aZrumAmumBuOaMmSA+IGZ1dHN1dXNlbmt5b1wgOwor5p2h5Lu26ZeY5LqJID4gam91a2VudG91c291XCA7CivljYPnirbkuIfmhYsgPiBzZW5qb3ViYW50YWlcIDsKK+WMluaIkOW3pealrSA+IGthc2Vpa291Z3lvdVwgOwor57WM5riI5Y6f6KuWID4ga2VpemFpZ2Vucm9uXCA7CivmqKnorIDooZPmlbAgPiBrZW5ib3VqdXNzdXVcIDsKK+S4jeaPrueZuuaApyA+IGZ1a2loYXRzdXNlaVwgOwor6auY562J5a2m5qChID4ga291dG91Z2Fra291XCA7CivpgKPlkIjnjovlm70gPiByZW5nb3VvdWtva3VcIDsKK+mDteS+v+abuOewoSA+IHl1dWJpbnNob2thblwgOwor5rex6KyA6YGg5oWuID4gc2hpbmJvdWVucnlvXCA7CivkvY/msJHpgYvli5UgPiBqdXVtaW4nJ3VuZG91XCA7Civms5Xmloflrabpg6ggPiBob3VidW5nYWt1YnVcIDsKK+aZrumAmumDteS+vyA+IGZ1dHN1dXl1dWJpblwgOwor5ZCb5Li75pS/5L2TID4ga3Vuc2h1c2VpdGFpXCA7CivmjbLlnJ/ph43mnaUgPiBrZW5kb2Nob3VyYWlcIDsKK+Wls+WjsOWQiOWUsSA+IGpvc2VpZ2Fzc2hvdVwgOwor57Gz6KW/5oim5LqJID4gYmVpc2Vpc2Vuc291XCA7Civpq5jluqbmiJDplbcgPiBrb3Vkb3NlaWNob3VcIDsKK+S5vuW4g+aRqeaTpiA+IGthbnB1bWFzYXRzdVwgOwor5Lit6I+v5oCd5oOzID4gY2h1dWthc2hpc291XCA7CivotIjkuI7oqLzmm7ggPiB6b3V5b3Nob3VzaG9cIDsKK+WFrOihhuihm+eUnyA+IGtvdXNodXVlaXNlaVwgOwor56S+5Lya56eR5a2mID4gc2hha2Fpa2FnYWt1XCA7CivovrLoirjljJblraYgPiBub3VnZWlrYWdha3VcIDsKK+S6pOmAmuaVtOeQhiA+IGtvdXRzdXVzZWlyaVwgOwor54m55q6K6YOo6ZqKID4gdG9rdXNodWJ1dGFpXCA7Civkuovlrp/nhKHmoLkgPiBqaWppdHN1bXVrb25cIDsKK+WtlOmbgOWmmeeOiyA+IGt1amFrdW15b3VvdVwgOwor6LKh55Sj5YiG5LiOID4gemFpc2FuYnVuJyd5b1wgOwor6YKm5a2X5paw6IGeID4gaG91amlzaGluYnVuXCA7CivmqZ/li5XoqIjnlLsgPiBraWRvdWtlaWtha3VcIDsKK+WtpOeri+S4u+e+qSA+IGtvcml0c3VzaHVnaVwgOwor5piO5rK75aSp55qHID4gbWVpaml0ZW4nJ25vdVwgOwor54Sm54K56Led6ZuiID4gc2hvdXRlbmt5b3JpXCA7Civpm4blkIjmmYLplpMgPiBzaHV1Z291amlrYW5cIDsKK+S9j+WuheWcsOWMuiA+IGp1dXRha3VjaGlrdVwgOwor5aSa6KeS6LK/5piTID4gdGFrYWt1Ym91ZWtpXCA7CivpnZ7llqvnhZnogIUgPiBoaWtpdHN1ZW5zaGFcIDsKK+a2iOWMluS4jeiJryA+IHNob3VrYWZ1cnlvdVwgOwor6Iie5Y+w54Wn5piOID4gYnV0YWlzaG91bWVpXCA7CivkuI3nlJ/nlKPnmoQgPiBmdXNlaXNhbnRla2lcIDsKK+mdnueUn+eUo+eahCA+IGhpc2Vpc2FudGVraVwgOwor5Yuf6ZuG5Lq65ZOhID4gYm9zaHV1amluJydpblwgOwor5Y6f56i/55So57SZID4gZ2Vua291eW91c2hpXCA7CivnhKHmhI/orZjnmoQgPiBtdWlzaGlraXRla2lcIDsKK+e3j+WPuOS7pOWumCA+IHNvdXNoaXJlaWthblwgOwor6K2y5rih5omA5b6XID4gam91dG9zaG90b2t1XCA7Civlrabnq6Xkv53ogrIgPiBnYWt1ZG91aG9pa3VcIDsKK+acgOe1guWFteWZqCA+IHNhaXNodXVoZWlraVwgOwor5ruR6LWw6LuK6LyqID4ga2Fzc291c2hhcmluXCA7CivmnIjliIrpm5HoqowgPiBnZWtrYW56YXNzaGlcIDsKK+WCjeiLpeeEoeS6uiA+IGJvdWpha3VidWppblwgOwor5Yuk5Yq05aWJ5LuVID4ga2lucm91aG91c2hpXCA7CivmgKfohbrmkZjpmaQgPiBzZWlzZW50ZWtpam9cIDsKK+aGsuazleaUueatoyA+IGtlbnBvdWthaXNlaVwgOwor6KGM6Lev55eF6ICFID4ga291cm9ieW91c2hhXCA7CivkuIDkurroip3lsYUgPiBoaXRvcmlzaGliYWlcIDsKK+WFseWQjOmYsuihmyA+IGt5b3Vkb3Vib3VlaVwgOwor6ZeY5b+X5rqA5rqAID4gdG91c2hpbWFubWFuXCA7CivluILli6Loqr/mn7sgPiBzaGlzZWljaG91c2FcIDsKK+S8muWOrei7n+mqqCA+IGVlbicnbmFua290c3VcIDsKK+i7jeeUqOWcsOWbsyA+IGd1bicneW91Y2hpenVcIDsKK+adseWllOilv+i1sCA+IHRvdWhvbnNlaXNvdVwgOwor5Lqk5Luj5L2c5qWtID4ga291dGFpc2FneW91XCA7Civml6XoqJjmloflraYgPiBuaWtraWJ1bmdha3VcIDsKK+aXpeezu+exs+S6uiA+IG5pa2tlaWJlaWppblwgOwor6Iez5YWs6Iez5bmzID4gc2hpa291c2hpaGVpXCA7CivplqLpgKPkvJrnpL4gPiBrYW5yZW5nYWlzaGFcIDsKK+S6uuaoqeWuo+iogCA+IGppbmtlbnNlbmdlblwgOwor5Lq66YCg5Lq66ZaTID4gamluem91bmluZ2VuXCA7Civlgr7mlpzlrrbos4MgPiBrZWlzaGF5YWNoaW5cIDsKK+iHquawkeWFmuWJhyA+IGppbWludG91c29rdVwgOwor5Y+N5b6p6KiY5Y+3ID4gaGFucHVrdWtpZ291XCA7Civml6XmnKzoiKrnqbogPiBuaXBwb25rb3VrdXVcIDsKK+iLseaJjeaVmeiCsiA+IGVpc2Fpa3lvdWlrdVwgOwor5o6S5rC05p2h5Lu2ID4gaGFpc3Vpam91a2VuXCA7Civoi7Hlm73oiKrnqbogPiBlaWtva3Vrb3VrdXVcIDsKK+aal+S4reaRuOe0oiA+IGFuY2h1dW1vc2FrdVwgOwor5YmN5ZOo6aiO5YW1ID4gemVuc2hvdWtpaGVpXCA7CivmsLTntKDniIblvL4gPiBzdWlzb2Jha3VkYW5cIDsKK+a9hea8keeUqOawtCA+IGthbmdhaXlvdXN1aVwgOwor5LiA5paJ5bCE5pKDID4gaXNzZWlzaGFnZWtpXCA7Civln7rou7jpgJrosqggPiBraWppa3V0c3V1a2FcIDsKK+WCvuaWnOeUn+eUoyA+IGtlaXNoYXNlaXNhblwgOwor5aKD55WM55CG6KuWID4ga3lvdWthaXJpcm9uXCA7CivlpKnnmofpmZvkuIsgPiB0ZW4nJ25vdWhlaWthXCA7CivlpKnnhLbmnpzmsYEgPiB0ZW4nJ25lbmthanV1XCA7CivpnIrogonkuIDoh7QgPiByZWluaWt1aXRjaGlcIDsKK+e1jOa4iOW+qeiIiCA+IGtlaXphaWZ1a2tvdVwgOwor5Lq65Y+j57Wx6KiIID4gamlua291dG91a2VpXCA7CivmiKbmmYLnlKPmpa0gPiBzZW5qaXNhbmd5b3VcIDsKK+WPpOmKreWtpuiAhSA+IGtvc2VuZ2FrdXNoYVwgOwor5a++5by+6YGT5by+ID4gdGFpZGFuZG91ZGFuXCA7Civoo73pgKDnlarlj7cgPiBzZWl6b3ViYW5nb3VcIDsKK+WkmumHjeS6uuagvCA+IHRhanV1amlua2FrdVwgOwor5LiA5YiA5Lih5patID4gaXR0b3VyeW91ZGFuXCA7CivlhbHnlKPkuLvnvqkgPiBreW91c2Fuc2h1Z2lcIDsKK+iomOWQjeaKleelqCA+IGtpbWVpdG91aHlvdVwgOwor5LyR5oap5pmC6ZaTID4ga3l1dWtlaWppa2FuXCA7CivkuLjlpKrotrPloLQgPiBtYXJ1dGFhc2hpYmFcIDsKK+ahg+iJsumBiuaIryA+IG1vbW9pcm95dXVnaVwgOwor5q2m5aOr6ZqO57SaID4gYnVzaGlrYWlreXV1XCA7Civlm73pmpvpm7voqbEgPiBrb2t1c2FpZGVud2FcIDsKK+S6uuW3peWcsOmchyA+IGppbmtvdWppc2hpblwgOwor5r2c5Zyo5Li75qipID4gc2VuemFpc2h1a2VuXCA7CivpgY7lsI/oqZXkvqEgPiBrYXNob3VoeW91a2FcIDsKK+evhOeWh+mDqOmWgCA+IGhhbmNodXVidW1vblwgOwor5L+u6YGT5Yi25bqmID4gc2h1dWRvdXNlaWRvXCA7CivntbHoqp7nr4TnlocgPiB0b3Vnb2hhbmNodXVcIDsKK+ihm+eUn+ioreWCmSA+IGVpc2Vpc2V0c3ViaVwgOwor5LiA5qyh55Sj5ZOBID4gaWNoaWppc2FucGluXCA7CivlhazmmI7mraPlpKcgPiBrb3VtZWlzZWlkYWlcIDsKK+iKseeBq+e3mummmSA+IGhhbmFiaXNlbmtvdVwgOwor6Ii255So5qmf6ZaiID4gaGFrdXlvdWtpa2FuXCA7CivlhazmsJHmqKnms5UgPiBrb3VtaW5rZW5ob3VcIDsKK+aYj+edoeeKtuaFiyA+IGtvbnN1aWpvdXRhaVwgOwor5a++5ZCR6LuK57eaID4gdGFpa291c2hhc2VuXCA7CivpiYTmi7PliLboo4EgPiB0ZWtrZW5zZWlzYWlcIDsKK+ahguWGoOipqeS6uiA+IGtlaWthbnNoaWppblwgOwor5Lq65Y+j6Kq/5p+7ID4gamlua291Y2hvdXNhXCA7Civlj7jms5Xop6PliZYgPiBzaGlob3VrYWlib3VcIDsKK+S6uuWPo+mdmeaFiyA+IGppbmtvdXNlaXRhaVwgOwor5pyJ5L2T5YuV55SjID4geXV1dGFpZG91c2FuXCA7CivmjqHnlKjoqabpqJMgPiBzYWl5b3VzaGlrZW5cIDsKK+awl+ixoeaDheWgsSA+IGtpc2hvdWpvdWhvdVwgOwor5pyJ57ea5pS+6YCBID4geXV1c2VuaG91c291XCA7CivlloDnl7DmpJzmn7sgPiBrYWt1dGFua2Vuc2FcIDsKK+mDt+Wcn+aWmeeQhiA+IGt5b3Vkb3J5b3VyaVwgOwor5LiJ5q616KuW5rOVID4gc2FuZGFucm9ucG91XCA7CivmmYLku6Pnsr7npZ4gPiBqaWRhaXNlaXNoaW5cIDsKK+iqh+Wkp+W6g+WRiiA+IGtvZGFpa291a29rdVwgOwor5LiA5pio44CF5aScID4gaXNzYWt1c2FrdXlhXCA7Civpg73luILoqIjnlLsgPiB0b3NoaWtlaWtha3VcIDsKK+mWouadseS4gOWGhiA+IGthbnRvdWljaGllblwgOwor6Ieq54S255m655SfID4gc2hpemVuaGFzc2VpXCA7CivmrL3lrprmhrLms5UgPiBraW50ZWlrZW5wb3VcIDsKK+aVsOWApOWItuW+oSA+IHN1dWNoaXNlaWd5b1wgOwor5q2m6ICF5Lq65b2iID4gbXVzaGFuaW5neW91XCA7CivliIblkajlm57ot68gPiBidW5zaHV1a2Fpcm9cIDsKK+iHpem+jeeCueedmyA+IGdhcnlvdXRlbnNlaVwgOwor5biC5rCR5aSn5LyaID4gc2hpbWludGFpa2FpXCA7CivotaTlrZflm73lgrUgPiBha2FqaWtva3VzYWlcIDsKK+S9v+eUqOaWueazlSA+IHNoaXlvdWhvdWhvdVwgOwor5bCP5pil5pel5ZKMID4ga29oYXJ1Yml5b3JpXCA7CivlhazlvI/oqablkIggPiBrb3VzaGlraWppYWlcIDsKK+eFp+WwhOWHpueQhiA+IHNob3VzaGFzaG9yaVwgOwor5Y+C5Yuk5Lqk5pu/ID4gc2Fua2lua291dGFpXCA7CivnvorpoK3ni5fogokgPiB5b3V0b3VrdW5pa3VcIDsKK+aWoeaXi+alreiAhSA+IGFzc2VuZ3lvdXNoYVwgOwor5Lya56S+5qaC6KaBID4ga2Fpc2hhZ2FpeW91XCA7CivmsJHkuLvmlL/kvZMgPiBtaW5zaHVzZWl0YWlcIDsKK+eyl+aUvui+sualrSA+IHNvaG91bm91Z3lvdVwgOwor6LKh5YuZ6Ku46KGoID4gemFpbXVzaG9oeW91XCA7Civomorlj5bnt5rpppkgPiBrYXRvcmlzZW5rb3VcIDsKK+W6g+WgseaDheWgsSA+IGtvdWhvdWpvdWhvdVwgOwor57eK5oCl5LqL5oWLID4ga2lua3l1dWppdGFpXCA7CivlnYfooaHkvqHmoLwgPiBraW5rb3VrYWtha3VcIDsKK+Wto+evgOWkieeVsCA+IGtpc2V0c3VoZW4nJ2lcIDsKK+acieaEn+WcsOmchyA+IHl1dWthbmppc2hpblwgOwor57ep5ZKM5oyv5YuVID4ga2Fud2FzaGluZG91XCA7Civlub3pnIrkurrlj6MgPiB5dXVyZWlqaW5rb3VcIDsKK+e1seiqnuaMh+aomSA+IHRvdWdvc2hpaHlvdVwgOwor5pyA6auY5L6h5qC8ID4gc2Fpa291a2FrYWt1XCA7CivphbjmgKfnmb3lnJ8gPiBzYW5zZWloYWt1ZG9cIDsKK+awkeaXj+iho+ijhSA+IG1pbnpva3Vpc2hvdVwgOwor5L+u5aOr6Kqy56iLID4gc2h1dXNoaWthdGVpXCA7Civlhaznm4rms5XkurogPiBrb3Vla2lob3VqaW5cIDsKK+attOWPsuS4u+e+qSA+IHJla2lzaGlzaHVnaVwgOwor5byB5oW25qC85a2QID4gYmVua2VpZ291c2hpXCA7CivnrKzkuozkurrnp7AgPiBkYWluaW5pbnNob3VcIDsKK+S4i+a1geekvuS8miA+IGthcnl1dXNoYWthaVwgOwor5b+r5qW95Li7576pID4ga2FpcmFrdXNodWdpXCA7CivkuI3nsr7kuI3nsr4gPiBmdXNob3VidXNob3VcIDsKK+WItumZkOmAn+W6piA+IHNlaWdlbnNva3Vkb1wgOwor5paH5q2m5Lih6YGTID4gYnVuYnVyeW91ZG91XCA7CivkuIrmmIfpmZDluqYgPiBqb3VzaG91Z2VuZG9cIDsKK+S9nOeUqOepjeWIhiA+IHNheW91c2VraWJ1blwgOwor6IW5562L6YGL5YuVID4gZnVra2luJyd1bmRvdVwgOwor5YWs6KqN6KiY6YyyID4ga291bmlua2lyb2t1XCA7CivkuIDntrLmiZPlsL0gPiBpY2hpbW91ZGFqaW5cIDsKK+WtpuagoeeUqOWTgSA+IGdha2tvdXlvdWhpblwgOwor5L2P5a6F5omL5b2TID4ganV1dGFrdXRlYXRlXCA7Civoqo3nn6Xnp5HlraYgPiBuaW5jaGlrYWdha3VcIDsKK+WVhuWjsumBk+WFtyA+IHNob3ViYWlkb3VndVwgOwor5Y6f5a2Q5oim5LqJID4gZ2Vuc2hpc2Vuc291XCA7Civkuozph43nhKbngrkgPiBuaWp1dXNob3V0ZW5cIDsKK+WPo+etlOippuWVjyA+IGtvdXRvdXNoaW1vblwgOwor5Zuz5pu46aSo6ZW3ID4gdG9zaG9rYW5jaG91XCA7CivlnKjluqvoqr/mlbQgPiB6YWlrb2Nob3VzZWlcIDsKK+WvvuaVsOmWouaVsCA+IHRhaXN1dWthbnN1dVwgOwor5pS/5pWZ5LiA6Ie0ID4gc2Vpa3lvdWl0Y2hpXCA7CivmlofoirjmibnoqZUgPiBidW5nZWloaWh5b3VcIDsKK+e3muW9ouS7o+aVsCA+IHNlbmtlaWRhaXN1dVwgOwor6YCj5ZCI5pS/5qipID4gcmVuZ291c2Vpa2VuXCA7CivpoLzmr43lrZDorJsgPiB0YW5vbW9zaGlrb3VcIDsKK+WcqOmfk+exs+i7jSA+IHphaWthbmJlaWd1blwgOwor5LiA5aSc5Lme6aOfID4gaWNoaXlha29qaWtpXCA7CivnlbDluLjntYLkuoYgPiBpam91c2h1dXJ5b3VcIDsKK+ippumok+WcsOeNhCA+IHNoaWtlbmppZ29rdVwgOwor56S+5ZOh5pWZ6IKyID4gc2hhaW5reW91aWt1XCA7CivkvIHmpa3lubTph5EgPiBraWd5b3VuZW5raW5cIDsKK+S5numjn+agueaApyA+IGtvamlraWtvbmpvdVwgOwor5LyB5qWt5ZCI5ZCMID4ga2lneW91Z291ZG91XCA7Civoh6rkuLvmjIfph50gPiBqaXNodXNoaXNoaW5cIDsKK+aEn+aFqOeEoemHjyA+IGthbmdhaW11cnlvdVwgOwor5pW15oCn5Zu95a62ID4gdGVraXNlaWtva2thXCA7CivnrYnlt67ntJrmlbAgPiB0b3VzYWt5dXVzdXVcIDsKK+W4q+evhOWtpuagoSA+IHNoaWhhbmdha2tvdVwgOwor57WM5riI56S+5LyaID4ga2VpemFpc2hha2FpXCA7CivmlLnoia/kuLvnvqkgPiBrYWlyeW91c2h1Z2lcIDsKK+e1jOa4iOWItuijgSA+IGtlaXphaXNlaXNhaVwgOwor5Li75oim5oqV5omLID4gc2h1c2VudG91c2h1XCA7CivpgYrmkoPpmorlk6EgPiB5dXVnZWtpdGFpaW5cIDsKK+S4gOaZguW4sOS8kSA+IGljaGlqaWtpa3l1dVwgOwor5Y+X55uK6Ki85Yi4ID4ganVla2lzaG91a2VuXCA7Civmi5npgJ/kuLvnvqkgPiBzZXNzb2t1c2h1Z2lcIDsKK+acqumWi+aLk+WcsCA+IG1pa2FpdGFrdWNoaVwgOwor5YWo5qip5YWs5L2/ID4gemVua2Vua291c2hpXCA7CivntbHliLbntYzmuIggPiB0b3VzZWlrZWl6YWlcIDsKK+eUsOWckumiqOaZryA+IGRlbicnZW5mdXVrZWlcIDsKK+aXheihjOaXpeeoiyA+IHJ5b2tvdW5pdHRlaVwgOwor54Sh6YeP5aSn5pWwID4gbXVyeW91ZGFpc3V1XCA7CivlibLlvJXmranlkIggPiB3YXJpYmlraWJ1YWlcIDsKK+WPjeaguOmBi+WLlSA+IGhhbmtha3V1bmRvdVwgOwor6aaZ5riv6L+U6YKEID4gaG9ua29uaGVua2FuXCA7CivkvIHmpa3lkIjkvbUgPiBraWd5b3VnYXBwZWlcIDsKK+mdnuihjOWwkeW5tCA+IGhpa291c2hvdW5lblwgOwor6YeO5aSW5pKu5b2xID4geWFnYWlzYXRzdWVpXCA7CivljYPmiYvoprPpn7MgPiBzZW5qdWthbicnbm9uXCA7Civnsr7npZ7kuLvnvqkgPiBzZWlzaGluc2h1Z2lcIDsKK+e1guWni+S4gOiyqyA+IHNodXVzaGlpa2thblwgOwor55yM5rCR5Lya6aSoID4ga2VubWlua2Fpa2FuXCA7CivmlZnmnaHkuLvnvqkgPiBreW91am91c2h1Z2lcIDsKK+abtOeUn+S8muekviA+IGtvdXNlaWdhaXNoYVwgOwor57mK57at5bel5qWtID4gc2VuJydpa291Z3lvdVwgOwor5Lq66ZaT5ZCM5aOrID4gbmluZ2VuZG91c2hpXCA7Civli5jlkIjosr/mmJMgPiBrYW5nb3Vib3Vla2lcIDsKK+eZvuWutuS6iemztCA+IGh5YWtrYXNvdW1laVwgOwor5LiW55WM5pS/562WID4gc2VrYWlzZWlzYWt1XCA7CivlrrblsYvlj7DluLMgPiBrYW9rdWRhaWNob3VcIDsKK+adsea1t+mBk+e3miA+IHRvdWthaWRvdXNlblwgOwor6YGO5b2T56u25LqJID4ga2F0b3VreW91c291XCA7CivmtrLkvZPnqpLntKAgPiBla2l0YWljaGlzc29cIDsKK+W5s+WSjOWNlOWumiA+IGhlaXdha3lvdXRlaVwgOwor54Sh57ea6Zu75L+hID4gbXVzZW5kZW5zaGluXCA7CivlsILploDnlKjoqp4gPiBzZW5tb24nJ3lvdWdvXCA7CivkurrpgKDogqXmlpkgPiBqaW56b3VoaXJ5b3VcIDsKK+Wkp+egsuS4iemWgCA+IHRhaWhvdXNhbm1vblwgOwor5a6f6aiT6KOF572uID4gamlra2Vuc291Y2hpXCA7CivkuK3lpK7lirTlg40gPiBjaHV1b3Vyb3Vkb3VcIDsKK+WGhee3mueVquWPtyA+IG5haXNlbmJhbmdvdVwgOwor5Lyd6KiY5L2c6ICFID4gZGVua2lzYWt1c2hhXCA7CivkurrmsJHlhaznpL4gPiBqaW5taW5rb3VzaGFcIDsKK+mAo+e1oeWIh+espiA+IHJlbnJha3VraXBwdVwgOwor5YWx5ZCM5aKT5ZywID4ga3lvdWRvdWJvY2hpXCA7Civlrp/mhYvoqr/mn7sgPiBqaXR0YWljaG91c2FcIDsKK+e3j+WLmemVt+WumCA+IHNvdW11Y2hvdWthblwgOwor5re35Lmx54q25oWLID4ga29ucmFuam91dGFpXCA7Civlrrbml4/mhI/orZggPiBrYXpva3Vpc2hpa2lcIDsKK+WkluaflOWGheWJmyA+IGdhaWp1dW5haWdvdVwgOwor6Kiq5ZWP6LKp5aOyID4gaG91bW9uaGFuYmFpXCA7CivmjpLmlqXpgYvli5UgPiBoYWlzZWtpdW5kb3VcIDsKK+WOn+WtkOW8vumgrSA+IGdlbnNoaWRhbnRvdVwgOwor5Za25qWt5qGI5YaFID4gZWlneW91YW4nJ25haVwgOwor5aSp5paH6Iiq5rOVID4gdGVubW9ua291aG91XCA7CivpnZ7lrp/pmpvnmoQgPiBoaWppc3NhaXRla2lcIDsKK+WPguWLpOS6pOS7oyA+IHNhbmtpbmtvdXRhaVwgOwor6KOP5pu46K2y5rihID4gdXJhZ2FraWpvdXRvXCA7CivplqLkv4Lmm7jpoZ4gPiBrYW5rZWlzaG9ydWlcIDsKK+WFjeioseeahuS8nSA+IG1lbmt5b2thaWRlblwgOwor5Zue6Lui56u25oqAID4ga2FpdGVua3lvdWdpXCA7CivntYzmuIjmsLTln58gPiBrZWl6YWlzdWlpa2lcIDsKK+eEoeassuaBrOa3oSA+IG11eW9rdXRlbnRhblwgOwor6Ieq5oiR5a6f54++ID4gamlnYWppdHN1Z2VuXCA7Civln7fooYznjLbkuoggPiBzaGlra291eXV1eW9cIDsKK+iejemAmuaJi+W9oiA+IHl1dXp1dXRlZ2F0YVwgOwor5Y6a55Sf5bm06YeRID4ga291c2VpbmVua2luXCA7CivpmaLlhoXmhJ/mn5MgPiBpbicnbmFpa2Fuc2VuXCA7CivmgqrmgKfmsLTohasgPiBha3VzZWlzdWlzaHVcIDsKK+Wbo+WNgemDjuS4iCA+IGRhbmp1dXJvdWpvdVwgOwor5Lul5b+D5Lyd5b+DID4gaXNoaW5kZW5zaGluXCA7CivkuIDlrZfljYPph5EgPiBpY2hpamlzZW5raW5cIDsKK+alree4vuaCquWMliA+IGd5b3VzZWtpYWtrYVwgOwor5LqM5p2f5LiJ5paHID4gbmlzb2t1c2FubW9uXCA7CivlhbXlmajmi6HmlaMgPiBoZWlraWtha3VzYW5cIDsKK+S6pOWPi+mWouS/giA+IGtvdXl1dWthbmtlaVwgOwor5Zu96Zqb5pS/5rK7ID4ga29rdXNhaXNlaWppXCA7Civmm7jpnaLlr6nnkIYgPiBzaG9tZW5zaGlucmlcIDsKK+S6uumWk+ekvuS8miA+IG5pbmdlbnNoYWthaVwgOwor6LuN5Zu95Li7576pID4gZ3Vua29rdXNodWdpXCA7CivmsLTkuIrnq7bmioAgPiBzdWlqb3VreW91Z2lcIDsKK+ays+WOn+S5numjnyA+IGthd2FyYWtvamlraVwgOwor5LqM6YeN5pKu5b2xID4gbmlqdXVzYXRzdWVpXCA7Civntbblr77oqZXkvqEgPiB6ZXR0YWloeW91a2FcIDsKK+WcqOexs+mCpuS6uiA+IHphaWJlaWhvdWppblwgOwor5Zub5pyI6aas6bm/ID4gc2hpZ2F0c3ViYWthXCA7CivmlrDpgLLmsJfpi60gPiBzaGluc2hpbmtpZWlcIDsKK+aJgOW+l+aOp+mZpCA+IHNob3Rva3Vrb3Vqb1wgOwor6Zai5L+C5Lya56S+ID4ga2Fua2VpZ2Fpc2hhXCA7Civoh6rkv6HmuoDmuoAgPiBqaXNoaW5tYW5tYW5cIDsKK+aXpeacrOWtpuiAhSA+IG5paG9uZ2FrdXNoYVwgOwor5pil5pel5aSn56S+ID4ga2FzdWdhdGFpc2hhXCA7CivmlofmmI7npL7kvJogPiBidW5tZWlzaGFrYWlcIDsKK+WQjOS6uumbkeiqjCA+IGRvdWppbnphc3NoaVwgOwor5Y+45rOV6KOB5YikID4gc2hpaG91c2FpYmFuXCA7CivkurrkvZPlrp/pqJMgPiBqaW50YWlqaWtrZW5cIDsKK+S6oeWRveaUv+aoqSA+IGJvdW1laXNlaWtlblwgOwor5Luy6ZaT5ZCM5aOrID4gbmFrYW1hZG91c2hpXCA7CivntYzllrblt6XlraYgPiBrZWllaWtvdWdha3VcIDsKK+izm+WQpuS4oeirliA+IHNhbnBpcnlvdXJvblwgOwor5LiN5rOV6ZuG5LyaID4gZnVob3VzaHV1a2FpXCA7CivnnLzpq5jmiYvkvY4gPiBnYW5rb3VzaHV0ZWlcIDsKK+iHquWLleWwj+mKgyA+IGppZG91c2hvdWp1dVwgOwor5Zyw5Z+f56S+5LyaID4gY2hpaWtpc2hha2FpXCA7CivkuqTmtYHkurrkuosgPiBrb3VyeXV1amluamlcIDsKK+eJueauiuWKueaenCA+IHRva3VzaHVrb3VrYVwgOwor6Ieq5a625Lit5q+SID4gamlrYWNodXVkb2t1XCA7Civnm7LosqvpioPlibUgPiBtb3VrYW5qdXVzb3VcIDsKK+S6uuawl+eVque1hCA+IG5pbmtpYmFuZ3VtaVwgOwor5pW15pys5Li7576pID4gdGVraWhvbnNodWdpXCA7Civlj6PlhoXmgKfkuqQgPiBrb3VuYWlzZWlrb3VcIDsKK+iEs+i7n+WMlueXhyA+IG5vdW5hbmthc2hvdVwgOwor54++5Zyw5rOV5Lq6ID4gZ2VuY2hpaG91amluXCA7Civoh6rli5Xou4rms6UgPiBqaWRvdXNoYWRvcm9cIDsKK+S4gOaZguWBnOatoiA+IGljaGlqaXRlaXNoaVwgOwor5a2m5ZyS57Sb5LqJID4gZ2FrdWVuZnVuc291XCA7CivmnIDpq5jlrablupwgPiBzYWlrb3VnYWt1ZnVcIDsKK+S/nemZuuWlkee0hCA+IGhva2Vua2VpeWFrdVwgOwor5aWz5oCn5beu5YilID4gam9zZWlzYWJldHN1XCA7CivlhZDnq6Xnpo/npYkgPiBqaWRvdWZ1a3VzaGlcIDsKK+ippumok+WVj+mhjCA+IHNoaWtlbm1vbmRhaVwgOwor5ry46YCy5Li7576pID4gemVuc2hpbnNodWdpXCA7Civpn7Pkv6HkuI3pgJogPiBvbnNoaW5mdXRzdXVcIDsKK+WLh+W+gOmCgemAsiA+IHl1dW91bWFpc2hpblwgOwor6Z2Z5q2i54q25oWLID4gc2Vpc2hpam91dGFpXCA7CivljJfmlK/kuovlpIkgPiBob2t1c2hpamloZW5cIDsKK+WvuOWAn+ipkOasuiA+IHN1bnNoYWt1c2FnaVwgOwor5oyH5ZCN6YCa6KmxID4gc2hpbWVpdHN1dXdhXCA7Civoi6blv4Pmg6jmhrogPiBrdXNoaW5zYW50YW5cIDsKK+eJveW8t+S7mOS8miA+IGtlbmt5b3VmdWthaVwgOwor5a+S5Ya35YmN57eaID4ga2FucmVpemVuc2VuXCA7CivpgJ/luqbliLbpmZAgPiBzb2t1ZG9zZWlnZW5cIDsKK+Wbm+mDqOWQiOWUsSA+IHNoaWJ1Z2Fzc2hvdVwgOwor6Zu76Zu75YWs56S+ID4gZGVuZGVua291c2hhXCA7CivlhKrli53lgJnoo5wgPiB5dXVzaG91a291aG9cIDsKK+WPi+WlvemWouS/giA+IHl1dWtvdWthbmtlaVwgOwor5pWR5o+054mp6LOHID4ga3l1dWVuYnVzc2hpXCA7CivnpZ7npL7ku4/plqMgPiBqaW5qYWJ1a2tha3VcIDsKK+awtOW5s+aAneiAgyA+IHN1aWhlaXNoaWtvdVwgOwor6Z+z5oSf5pWZ6IKyID4gb25rYW5reW91aWt1XCA7Civmu57ntI3lh6bliIYgPiB0YWlub3VzaG9idW5cIDsKK+WFseWQjOe1jOWWtiA+IGt5b3Vkb3VrZWllaVwgOwor5LqM5YWt5pmC5LitID4gbmlyb2t1amljaHV1XCA7CivkuIDmmYLos5zph5EgPiBpY2hpamlzaGlraW5cIDsKK+iHqueEtuW0h+aLnSA+IHNoaXplbnN1dWhhaVwgOwor5a+p6K2w5pyq5LqGID4gc2hpbmdpbWlyeW91XCA7CivppIrlrZDnuIHntYQgPiB5b3VzaGllbmd1bWlcIDsKK+awj+aXj+WItuW6piA+IHNoaXpva3VzZWlkb1wgOwor6LuN6Zmj5Yy75a2mID4gZ3VuamluJydpZ2FrdVwgOwor5q2j5Zub6Z2i5L2TID4gc2Vpc2hpbWVudGFpXCA7CivlrprmoLzoq4vosqAgPiB0ZWlrYWt1dWtlb2lcIDsKK+W+hemBh+aUueWWhCA+IHRhaWd1dWthaXplblwgOwor57mK57at5YWJ5a2mID4gc2VuJydpa291Z2FrdVwgOwor6buS5Lq66ZyK5q2MID4ga29rdWppbnJlaWthXCA7CivnibnmrormqZ/og70gPiB0b2t1c2h1a2lub3VcIDsKK+e1jOi3r+epjeWIhiA+IGtlaXJvc2VraWJ1blwgOwor5Zu95Za26L6y5aC0ID4ga29rdWVpbm91am91XCA7Civlm73nsovkuLvnvqkgPiBrb2t1c3Vpc2h1Z2lcIDsKK+eUsueKtuiFuueCjiA+IGtvdWpvdXNlbicnZW5cIDsKK+izh+eUo+WQiOioiCA+IHNoaXNhbmdvdWtlaVwgOwor6a+o6aOy6aas6aOfID4gZ2VpaW5iYXNob2t1XCA7Civlv4Poh5PnmbrkvZwgPiBzaGluem91aG9zc2FcIDsKK+aWsOS6uuatjOaJiyA+IHNoaW5qaW5rYXNodVwgOwor6Ly45YWl5omL5b2iID4geXVueXV1dGVnYXRhXCA7CivlnKfnnYDnq6/lrZAgPiBhdHN1Z2l0YW5zaGlcIDsKK+acquaUueW/g+iAhSA+IG1pa2Fpc2hpbnNoYVwgOwor54Sh5Yq55oqV56WoID4gbXVrb3V0b3VoeW91XCA7Civpm6PmlLvkuI3okL0gPiBuYW5rb3VmdXJha3VcIDsKK+S4gOW/g+WQjOS9kyA+IGlzc2hpbmRvdXRhaVwgOwor5a6l5ZKM5pS/562WID4geXV1d2FzZWlzYWt1XCA7CivpmZDnlYzlirnnlKggPiBnZW5rYWlrb3V5b3VcIDsKK+WNgeS4h+WEhOWcnyA+IGp1dW1hbicnb2t1ZG9cIDsKK+WkieaFi+W/g+eQhiA+IGhlbnRhaXNoaW5yaVwgOwor5ouN5a2Q6KiY5Y+3ID4gaHlvdXNoaWtpZ291XCA7CivlhazkvJrllY/nrZQgPiBrb3VrYWltb25kb3VcIDsKK+iAg+WPpOWtpuiAhSA+IGtvdWtvZ2FrdXNoYVwgOwor6YeO55CD6YG45omLID4geWFreXV1c2Vuc2h1XCA7CivlpKLpgYrnl4XogIUgPiBtdXl1dWJ5b3VzaGFcIDsKK+imgeaJgOimgeaJgCA+IHlvdXNob3lvdXNob1wgOwor5L2/5b6S57aZ5om/ID4gc2hpdG9rZWlzaG91XCA7CivlirHno4Hpm7vmtYEgPiByZWlqaWRlbnJ5dXVcIDsKK+ekvuS8muWItuW6piA+IHNoYWthaXNlaWRvXCA7Civku6PnkIbpoJjkuosgPiBkYWlyaXJ5b3VqaVwgOwor54K55pWw5YiH56ymID4gdGVuc3V1a2lwcHVcIDsKK+WMluaIkOiCpeaWmSA+IGthc2VpaGlyeW91XCA7CivmnKrmiJDlubTogIUgPiBtaXNlaW5lbnNoYVwgOwor5LiA5aSp5LiH5LmXID4gaXR0ZW5iYW5qb3VcIDsKK+imquWtkOmWouS/giA+IG95YWtva2Fua2VpXCA7CivmgZDmgJbmlL/msrsgPiBreW91ZnVzZWlqaVwgOwor6Jma5pWw5Y2Y5L2NID4ga3lvc3V1dGFuJydpXCA7CivpgbjmjJnliLbluqYgPiBzZW5reW9zZWlkb1wgOwor5aSn6aGY5oiQ5bCxID4gZGFpZ2Fuam91anVcIDsKK+WGhuWNk+S8muitsCA+IGVudGFrdWthaWdpXCA7CivlpKflrq7lvqHmiYAgPiBvb21peWFnb3Nob1wgOwor5LiK5LiL6Zai5L+CID4gam91Z2VrYW5rZWlcIDsKK+WFrOWWtuS8gealrSA+IGtvdWVpa2lneW91XCA7Civph43mtrLliIbpm6IgPiBqdXVla2lidW5yaVwgOwor5a6f6Le155CG5oCnID4gamlzc2VucmlzZWlcIDsKK+ihjOS9j+WdkOiHpSA+IGd5b3VqdXV6YWdhXCA7CivoqIDooYzkuIDoh7QgPiBnZW5rb3VpdGNoaVwgOwor5bqD5aSn54Sh6L66ID4ga291ZGFpbXVoZW5cIDsKK+WEquWFiOS6i+mghSA+IHl1dXNlbmppa291XCA7CivmkLrluK/pm7voqbEgPiBrZWl0YWlkZW53YVwgOwor5pmC5Luj6Yyv6KqkID4gamlkYWlzYWt1Z29cIDsKK+S6uuW3peihm+aYnyA+IGppbmtvdWVpc2VpXCA7Civnt5rlvaLpoIbluo8gPiBzZW5rZWlqdW5qb1wgOwor5aSW5Lqk5a6Y6KOcID4gZ2Fpa291a2FuaG9cIDsKK+S9j+WxheaJi+W9kyA+IGp1dWt5b3RlYXRlXCA7CivpgZPot6/mqJnnpLogPiBkb3Vyb2h5b3VqaVwgOwor5LqI5YKZ5bCG5qChID4geW9iaXNob3Vrb3VcIDsKK+awkemWk+mjm+ihjCA+IG1pbmthbmhpa291XCA7CivmsLjlrZDkvZzmqKkgPiBlaWtvc2FrdWtlblwgOwor56S+5Lya6YGL5YuVID4gc2hha2FpdW5kb3VcIDsKK+enu+ihjOioiOeUuyA+IGlrb3VrZWlrYWt1XCA7CivmjqXov5HntYzot68gPiBzZWtraW5rZWlyb1wgOwor5LiW55WM57WM5riIID4gc2VrYWlrZWl6YWlcIDsKK+a1ruS4luiNieWtkCA+IHVraXlvem91c2hpXCA7CivlrprmlbDmmK/mraMgPiB0ZWlzdXV6ZXNlaVwgOwor5a6J5L+d5p2h57SEID4gYW5wb2pvdXlha3VcIDsKK+iyqeWjsuWApOautSA+IGhhbmJhaW5lZGFuXCA7Civln7rlupXmp4vpgKAgPiBraXRlaWtvdXpvdVwgOwor5b+F6aCI5p2h5Lu2ID4gaGlzc3Vqb3VrZW5cIDsKK+WMuuijgeWIpOaJgCA+IGt1c2FpYmFuc2hvXCA7CivkuojooYzmvJTnv5IgPiB5b2tvdWVuc2h1dVwgOwor6YG45oyZ6YGL5YuVID4gc2Vua3lvdW5kb3VcIDsKK+Wbvemam+imj+aooSA+IGtva3VzYWlraWJvXCA7CivpgYvou6LlhY3oqLEgPiB1bnRlbm1lbmt5b1wgOwor57ea5b2i6KuW55CGID4gc2Vua2Vpcm9ucmlcIDsKK+W5tOizgOmDteS+vyA+IG5lbmdheXV1YmluXCA7CivmuKnpoqjmmpbmiL8gPiBvbnB1dWRhbmJvdVwgOwor5YaF6YOo5qeL6YCgID4gbmFpYnVrb3V6b3VcIDsKK+S4jeWumuWei+ipqSA+IGZ1dGVpa2Vpc2hpXCA7Civpu4Tph5HltIfmi50gPiBvdWdvbnN1dWhhaVwgOwor5LiW6Kmx5aWz5oi/ID4gc2V3YW55b3Vib3VcIDsKK+eKrOWEkuWtpua0viA+IGtlbmp1Z2FrdWhhXCA7CivkuIDlk4HmlpnnkIYgPiBpcHBpbnJ5b3VyaVwgOwor5Lqc56Gr6YW45aGpID4gYXJ5dXVzYW4nJ2VuXCA7CivmnInlo7DlrZDpn7MgPiB5dXVzZWlzaGlpblwgOwor55qG5YW15Yi25bqmID4ga2FpaGVpc2VpZG9cIDsKK+acque1jOmok+iAhSA+IG1pa2Vpa2Vuc2hhXCA7CivkuIrmhI/kuIvpgZQgPiBqb3Vpa2F0YXRzdVwgOwor6LuK6ZaT6Led6ZuiID4gc2hha2Fua3lvcmlcIDsKK+awt+ays+aZguS7oyA+IGh5b3VnYWppZGFpXCA7Civmg4XloLHnkIboq5YgPiBqb3Vob3VyaXJvblwgOwor5b6h5aSa5b+Z5LitID4gZ290YWJvdWNodXVcIDsKK+aEm+afk+aYjueOiyA+IGFpemVubXlvdW91XCA7CivlubPpnaLkuqTlt64gPiBoZWltZW5rb3VzYVwgOwor57WM6aiT5Li7576pID4ga2Vpa2Vuc2h1Z2lcIDsKK+W8geitt+Wjq+S8miA+IGJlbmdvc2hpa2FpXCA7CivntJTmg4Xlj6/mhpAgPiBqdW5qb3VrYXJlblwgOwor6LyJ6LKo5ZCD5rC0ID4gc2Fpa2FraXNzdWlcIDsKK+WNiua/gemfs+espiA+IGhhbmRha3VvbmZ1XCA7CivmhJvmn5PlppnnjosgPiBhaXplbm15b3VvdVwgOwor6Zao56eA55S75a62ID4ga2Vpc2h1dWdha2FcIDsKK+S4ieWNiuimj+euoSA+IHNhbmhhbmtpa2FuXCA7CivlsIHlu7rmmYLku6MgPiBob3VrZW5qaWRhaVwgOwor6LaK5Yas6LOH6YeRID4gZXR0b3VzaGlraW5cIDsKK+aJgOW4r+mBk+WFtyA+IHNob3RhaWRvdWd1XCA7CivlgrLlsrjnhKHnpLwgPiBnb3VnYW5idXJlaVwgOwor56S+5Lya5L+d6Zm6ID4gc2hha2FpaG9rZW5cIDsKK+i8g+WEquS9jeirliA+IGtha3V5dXVpcm9uXCA7CivkuJboq5boqr/mn7sgPiB5b3JvbmNob3VzYVwgOwor5Yas5pyf5LyR5pqHID4gdG91a2lreXV1a2FcIDsKK+S4iumDqOani+mAoCA+IGpvdWJ1a291em91XCA7CivosaHlvaLmloflrZcgPiBzaG91a2VpbW9qaVwgOwor6L6y5pys5Li7576pID4gbm91aG9uc2h1Z2lcIDsKK+S4gOWIh+ihhueUnyA+IGlzc2Fpc2h1am91XCA7Civml6fmhYvkvp3nhLYgPiBreXV1dGFpaXplblwgOwor5pW055CG55Wq5Y+3ID4gc2VpcmliYW5nb3VcIDsKK+W9k+W6p+izh+eUoyA+IHRvdXphc2hpc2FuXCA7Civmrovlk4HmlbTnkIYgPiB6YW5waW5zZWlyaVwgOwor5a6H5a6Z6YCf5bqmID4gdWNodXVzb2t1ZG9cIDsKK+WKoOawtOWIhuinoyA+IGthc3VpYnVua2FpXCA7CivlrqPkvJ3kvqHlgKQgPiBzZW5kZW5rYWNoaVwgOwor5bm05a2j5aWJ5YWsID4gbmVua2lib3Vrb3VcIDsKK+iyqOW5o+e1jOa4iCA+IGthaGVpa2VpemFpXCA7CivnhKHmnJ/mh7LlvbkgPiBtdWtpY2hvdWVraVwgOwor5biC5aC05Yy65YiGID4gc2hpam91a3VidW5cIDsKK+WIneacn+ioreWumiA+IHNob2tpc2V0dGVpXCA7CivkurrpgKDnuYrntq0gPiBqaW56b3VzZW4nJ2lcIDsKK+aZrumAmumgkOmHkSA+IGZ1dHN1dXlva2luXCA7CivkvY7liKnos4fph5EgPiB0ZWlyaXNoaWtpblwgOwor55yf54+g57Sw5belID4gc2hpbmp1emFpa3VcIDsKK+S4u+efpeS4u+e+qSA+IHNodWNoaXNodWdpXCA7CivkuozpoIXkv4LmlbAgPiBuaWtvdWtlaXN1dVwgOwor57Sg5oCn5qeL6YCgID4gc29zZWlrb3V6b3VcIDsKK+aEm+WbveS4u+e+qSA+IGFpa29rdXNodWdpXCA7CivmiKbpl5jmlK/mj7QgPiBzZW50b3VzaGllblwgOwor5Lq65ZCN6L6e5pu4ID4gamlubWVpamlzaG9cIDsKK+WJjei8qumnhuWLlSA+IHplbnJpbmt1ZG91XCA7CivkvqHmoLzmk43kvZwgPiBrYWtha3Vzb3VzYVwgOwor5b2i6ICM5LiL5a2mID4ga2VpamlrYWdha3VcIDsKK+S4gOacn+S4gOS8miA+IGljaGlnb2ljaGllXCA7CivlnJ/mnKjlt6XkuosgPiBkb2Jva3Vrb3VqaVwgOwor5aWz5a2Q6auY55SfID4gam9zaGlrb3VzZWlcIDsKK+eOi+mBk+alveWcnyA+IG91ZG91cmFrdWRvXCA7CivmgqrmiKboi6bpl5ggPiBha3VzZW5rdXRvdVwgOwor56We57WM5aSW56eRID4gc2hpbmtlaWdla2FcIDsKK+S4jeecoOS4jeS8kSA+IGZ1bWluZnVreXV1XCA7CivlkI3oqonmlZnmjoggPiBtZWl5b2t5b3VqdVwgOwor5Zuz5pu46aSo5ZOhID4gdG9zaG9rYW4nJ2luXCA7Civpq5jmrYzmlL7lkJ8gPiBrb3VrYWhvdWdpblwgOwor5qeL5oiQ5Y2Y5L2NID4ga291c2VpdGFuJydpXCA7CivlpJbkurroqJjogIUgPiBnYWlqaW5raXNoYVwgOwor5L6L5aSW5Yem55CGID4gcmVpZ2Fpc2hvcmlcIDsKK+Wkq+WppuiMtueilyA+IG1lb3RvZGphd2FuXCA7CivlhajpnaLorJvlkowgPiB6ZW5tZW5rb3V3YVwgOwor576p5YuZ5pWZ6IKyID4gZ2ltdWt5b3Vpa3VcIDsKK+aCsuims+irluiAhSA+IGhpa2Fucm9uc2hhXCA7CivlgIvkurrmg4XloLEgPiBrb2ppbmpvdWhvdVwgOwor55S65q6155Wd5q2pID4gY2hvdXRhbnNlYnVcIDsKK+S7o+eQhuWkp+S9vyA+IGRhaXJpdGFpc2hpXCA7Civmp4vpgKDkuLvnvqkgPiBrb3V6b3VzaHVnaVwgOwor5YaF57ea6Zu76KmxID4gbmFpc2VuZGVud2FcIDsKK+WFrOekuuS+oeagvCA+IGtvdWppa2FrYWt1XCA7CivmtrLkvZPphbjntKAgPiBla2l0YWlzYW5zb1wgOwor5rKD5bqm5LiB5bm+ID4geW91ZG9jaGlua2lcIDsKK+WIkeS6i+iotOionyA+IGtlaWppc29zaG91XCA7CivnqLzlg43kurrlj6MgPiBrYWRvdWppbmtvdVwgOwor6Lu95qmf6Zai6YqDID4ga2Vpa2lrYW5qdXVcIDsKK+apn+WvhuS/neittyA+IGtpbWl0c3Vob2dvXCA7CivkuojlgpnkuqTmuIkgPiB5b2Jpa291c2hvdVwgOwor6YCP6KaW5Zuz5rOVID4gdG91c2hpenVob3VcIDsKK+e3tOe/kuippuWQiCA+IHJlbnNodXVqaWFpXCA7Civlj6/oppblhYnnt5ogPiBrYXNoaWtvdXNlblwgOwor562G6KiY6Kmm6aiTID4gaGlra2lzaGlrZW5cIDsKK+WFrOWumuebuOWgtCA+IGtvdXRlaXNvdWJhXCA7CivkvqHmoLzopo/liLYgPiBrYWtha3VraXNlaVwgOwor5Yqg6YeN5bmz5Z2HID4ga2FqdXVoZWlraW5cIDsKK+atpuijheitpuWumCA+IGJ1c291a2Vpa2FuXCA7CivmsLTlrZDkvpvppIogPiBtaXp1Z29rdXlvdVwgOwor5Y2D5aSJ5LiH5YyWID4gc2VucGVuYmFua2FcIDsKK+afu+WumuS+oeagvCA+IHNhdGVpa2FrYWt1XCA7CivkuIvlsaTnpL7kvJogPiBrYXNvdXNoYWthaVwgOwor6Ieq54S25Li7576pID4gc2hpemVuc2h1Z2lcIDsKK+iIiOWRs+acrOS9jSA+IGt5b3VtaWhvbicnaVwgOwor54Sh5L2T6LOH55SjID4gbXV0YWlzaGlzYW5cIDsKK+e1jOa4iOWwgemOliA+IGtlaXphaWZ1dXNhXCA7Civnq7bkuonnm7jmiYsgPiBreW91c291YWl0ZVwgOwor5LqU6Lyq5aSn5LyaID4gZ29yaW50YWlrYWlcIDsKK+aXpeacrOS4ieaZryA+IG5paG9uc2Fua2VpXCA7CivmsrnmgKfloZfmlpkgPiB5dXNlaXRvcnlvdVwgOwor5pS56KiC5aKX6KOcID4ga2FpdGVpem91aG9cIDsKK+S4gOiIrOamguW/tSA+IGlwcGFuZ2FpbmVuXCA7CivlsI/kuIDmmYLplpMgPiBrb2ljaGlqaWthblwgOwor5LiJ6ISa5qSF5a2QID4gc2Fua3lha3Vpc3VcIDsKK+earuiGmuaEn+immiA+IGhpZnVrYW5rYWt1XCA7CivmqKnliKnooYzkvb8gPiBrZW5yaWtvdXNoaVwgOwor5ryi5a2X5aSJ5o+bID4ga2FuamloZW5rYW5cIDsKK+eEoeS9k+iyoeeUoyA+IG11dGFpemFpc2FuXCA7CivlhajkvZPkvJrorbAgPiB6ZW50YWlrYWlnaVwgOwor5LqM6YeN5oq15b2TID4gbmlqdXV0ZWl0b3VcIDsKK+apn+aisOaWh+aYjiA+IGtpa2FpYnVubWVpXCA7CivlpKnmtKXkuZnlpbMgPiBhbWF0c3VvdG9tZVwgOwor5Yip5a6z6Zai5L+CID4gcmlnYWlrYW5rZWlcIDsKK+Wkmuinkue1jOWWtiA+IHRha2FrdWtlaWVpXCA7CivlpKvlqabliKXlp5MgPiBmdXVmdWJlc3NlaVwgOwor5pel5pys6Kqe6KizID4gbmlob25nb3lha3VcIDsKK+S6pOaPm+apn+iDvSA+IGtvdWthbmtpbm91XCA7CivnlKPljbXloLTmiYAgPiBzYW5yYW5iYXNob1wgOwor6LWw6KGM6Led6ZuiID4gc291a291a3lvcmlcIDsKK+eEoeWwvee1hOWQiCA+IG11amlua3VtaWFpXCA7Civlho3nlJ/liKnnlKggPiBzYWlzZWlyaXlvdVwgOwor6Iiq56m65q+N6ImmID4ga291a3V1Ym9rYW5cIDsKK+S6uuWQjei+nuWFuCA+IGppbm1laWppdGVuXCA7CivmmKjpnZ7ku4rmmK8gPiBzYWt1aGlrb256ZVwgOwor5paw5Y+k5YW45rS+ID4gc2hpbmtvdGVuaGFcIDsKK+e1jOWWtuizh+a6kCA+IGtlaWVpc2hpZ2VuXCA7CivooqvlrrPlpoTmg7MgPiBoaWdhaW1vdXNvdVwgOwor57Sw6I+M5YW15ZmoID4gc2Fpa2luaGVpa2lcIDsKK+mjveWSjOa6tua2siA+IGhvdXdheW91ZWtpXCA7CivkuIDoiKzkvJroqIggPiBpcHBhbmthaWtlaVwgOwor5rqW5YKZ6LOH6YeRID4ganVuYmlzaGlraW5cIDsKK+aUv+WFmuaUv+ayuyA+IHNlaXRvdXNlaWppXCA7Civmr43lrZDlubTph5EgPiBib3NoaW5lbmtpblwgOwor576O5a655pW05b2iID4gYml5b3VzZWlrZWlcIDsKK+WIneacn+aKleizhyA+IHNob2tpdG91c2hpXCA7CivmnIDnn63ot53pm6IgPiBzYWl0YW5reW9yaVwgOwor5ZGo6L665qmf5ZmoID4gc2h1dWhlbmtpa2lcIDsKK+WItumZkOaZgumWkyA+IHNlaWdlbmppa2FuXCA7Civli6TlirTmhI/mrLIgPiBraW5yb3VpeW9rdVwgOwor5YCJ5bqr5Lya56S+ID4gc291a29nYWlzaGFcIDsKK+acqumWi+ekvuS8miA+IG1pa2Fpc2hha2FpXCA7CivpgY7lpKfoqZXkvqEgPiBrYWRhaWh5b3VrYVwgOwor56C05buJ5oGl572qID4gaGFyZW5jaGl6YWlcIDsKK+aZgumZkOijhee9riA+IGppZ2Vuc291Y2hpXCA7Civmma/msJflpInli5UgPiBrZWlraWhlbmRvdVwgOwor5LiA5qyh6KiY5oa2ID4gaWNoaWppa2lva3VcIDsKK+ihneWLleihjOeCuiA+IHNob3Vkb3Vrb3VpXCA7CivoqLHlrrnnr4Tlm7IgPiBreW95b3VoYW4nJ2lcIDsKK+eUn+eUo+euoeeQhiA+IHNlaXNhbmthbnJpXCA7CivljLvnmYLkvJ3pgZMgPiBpcnlvdWRlbmRvdVwgOwor56qB6LKr5bel5LqLID4gdG9ra2Fua291amlcIDsKK+mBuOiAg+Wfuua6liA+IHNlbmtvdWtpanVuXCA7Civpg73luILpioDooYwgPiB0b3NoaWdpbmtvdVwgOwor5a6j5Lyd5pig55S7ID4gc2VuZGVuJydlaWdhXCA7CivmhYjlloTkuovmpa0gPiBqaXplbmppZ3lvdVwgOwor5Yqg6YCf5bqm6KiIID4ga2Fzb2t1ZG9rZWlcIDsKK+WCsuaFouS4jemBnCA+IGdvdW1hbmZ1c29uXCA7CivliJHli5nkvZzmpa0gPiBrZWltdXNhZ3lvdVwgOwor5Zyw55CD6KaP5qihID4gY2hpa3l1dWtpYm9cIDsKK+mAlOS4reioiOaZgiA+IHRvY2h1dWtlaWppXCA7Civpq5jlsITnibnnp5EgPiBrb3VzaGF0b2trYVwgOwor5LiJ6Z2i5YWt6IeCID4gc2FubWVucm9wcGlcIDsKK+W+ruWIhuaWremdoiA+IGJpYnVuZGFubWVuXCA7CivliIblqKnkvZznlKggPiBidW5iZW5zYXlvdVwgOwor5L+d5YGl5L2T6IKyID4gaG9rZW50YWlpa3VcIDsKK+aatOi1sOmBi+i7oiA+IGJvdXNvdXVudGVuXCA7Civoq67llY/mqZ/plqIgPiBzaGltb25raWthblwgOwor55Sw6IiO6Iqd5bGFID4gaW5ha2FzaGliYWlcIDsKK+eZjOmBuuS8neWtkCA+IGdhbicnaWRlbnNoaVwgOwor55m+6ay85aSc6KGMID4gaHlha2tpeWFrb3VcIDsKK+awuOWwj+S9nOaoqSA+IGVpa29zYWt1a2VuXCA7CivnhKHmrbvmuoDloYEgPiBtdXNoaW1hbnJ1aVwgOwor5LqM55Wq5oq15b2TID4gbmliYW50ZWl0b3VcIDsKK+e3j+WLmemDqOmVtyA+IHNvdW11YnVjaG91XCA7Civoh6rnlLHosr/mmJMgPiBqaXl1dWJvdWVraVwgOwor5bmz5ZKM5p2h6aCFID4gaGVpd2Fqb3Vrb3VcIDsKK+awl+WIhui7ouaPmyA+IGtpYnVudGVua2FuXCA7CivlhJLmlZnkuLvnvqkgPiBqdWt5b3VzaHVnaVwgOwor5aWz5q2M6Iie5LyOID4gb24nJ25ha2FidWtpXCA7Civpo5vooYzmqZ/pm7IgPiBoaWtvdWtpZ3Vtb1wgOwor6Lev6Z2i6Zu76LuKID4gcm9tZW5kZW5zaGFcIDsKK+WNmOeLrOihjOeCuiA+IHRhbmRva3Vrb3VpXCA7CivoqqDlv4PoqqDmhI8gPiBzZWlzaGluc2VpaVwgOwor5pel5pys5paZ55CGID4gbmlob25yeW91cmlcIDsKK+aVheS6i+adpeattCA+IGtvamlyYWlyZWtpXCA7CivlhoXovKrllqflmKkgPiB1Y2hpd2FnZW5rYVwgOwor5Lqc56Gd6YW45aGpID4gYXNob3VzYW4nJ2VuXCA7CivkuIDop5LnjaPluqcgPiBpa2tha3VqdXV6YVwgOwor5Y+N5L2T5Yi25rS+ID4gaGFudGFpc2VpaGFcIDsKK+WMuuWKg+aVtOeQhiA+IGt1a2FrdXNlaXJpXCA7CivmlL7ku7vkuLvnvqkgPiBob3VuaW5zaHVnaVwgOwor6YG65peP57Wm5LuYID4gaXpva3VreXV1ZnVcIDsKK+WkieS9jeWItuW+oSA+IGhlbicnaXNlaWd5b1wgOwor5paH6YOo5aSn6IejID4gbW9uYnVkYWlqaW5cIDsKK+Wls+aoqeirluiAhSA+IGpva2Vucm9uc2hhXCA7CivkuIvlo6vlrpjlhbUgPiBrYXNoaWthbmhlaVwgOwor5Lit56aF5a+65rmWID4gY2h1dXplbmppa29cIDsKK+ijveWTgeWOn+S+oSA+IHNlaWhpbmdlbmthXCA7CivkurrmsJHkuLvnvqkgPiBqaW5taW5zaHVnaVwgOwor5YuJ5by36YOo5bGLID4gYmVua3lvdWJleWFcIDsKK+elnuWuruWkluiLkSA+IGppbmd1dWdhaWVuXCA7CivlhajoiKzmlK/mj7QgPiB6ZW5wYW5zaGllblwgOwor5bCR5aOu5pyJ54K6ID4gc2hvdXNvdXl1dWlcIDsKK+e1jOWPo+aKleS4jiA+IGtlaWtvdXRvdXlvXCA7Civmj5vmsJfoo4Xnva4gPiBrYW5raXNvdWNoaVwgOwor5YWx5ZKM5Yi25bqmID4ga3lvdXdhc2VpZG9cIDsKK+S6jOiqsuWLieW8tyA+IG5pa2FiZW5reW91XCA7CivkuojpmLLmjqXnqK4gPiB5b2JvdXNlc3NodVwgOwor55Ww5Zu95oOF57eSID4gaWtva3Vqb3VjaG9cIDsKK+mBi+i7ouWBnOatoiA+IHVudGVudGVpc2hpXCA7Civmgqrlj6Ppm5HoqIAgPiBha2tvdXpvdWdvblwgOwor6LuN5rOV5Lya6K2wID4gZ3VucG91a2FpZ2lcIDsKK+WkqeWcsOeEoeeUqCA+IHRlbmNoaW11eW91XCA7CivnlbDluLjmgKfmrLIgPiBpam91c2VpeW9rdVwgOwor5Lq65bel5Y+X6IOOID4gamlua291anV0YWlcIDsKK+aXpeacrOaWh+azlSA+IG5paG9uYnVucG91XCA7CivkuIrkuIvmsLTpgZMgPiBqb3VnZXN1aWRvdVwgOwor6YqA6KGM5Y+j5bqnID4gZ2lua291a291emFcIDsKK+Wkj+acn+Wkp+WtpiA+IGtha2lkYWlnYWt1XCA7CivpgKPpgqborbDkvJogPiByZW5wb3VnaWthaVwgOwor5pyr5pyf55eH54q2ID4gbWFra2lqb3V0YWlcIDsKK+S6lOauteWLleipniA+IGdvZGFuZG91c2hpXCA7Civnq4vms5XmqZ/plqIgPiByaXBwb3VraWthblwgOwor5Zug5b6q5aeR5oGvID4gaW5qdW5rb3Nva3VcIDsKK+Wkp+WxseakkumtmiA+IG9vc2Fuc2hvdXVvXCA7CivomY7oppbnnIjnnIggPiBrb3NoaXRhbnRhblwgOwor6IOM6Z2i6aOb6KGMID4gaGFpbWVuaGlrb3VcIDsKK+W8vuS4uOmBk+i3ryA+IGRhbmdhbmRvdXJvXCA7CivlhKrlhYjlpJbosqggPiB5dXVzZW5nYWlrYVwgOwor5b2T55So5ryi5a2XID4gdG91eW91a2FuamlcIDsKK+awkeacrOS4u+e+qSA+IG1pbnBvbnNodWdpXCA7Civkurrlt6Xlj5fntJsgPiBqaW5rb3VqdWZ1blwgOwor5Li76KaB54mp5L6hID4gc2h1eW91YnVra2FcIDsKK+S6uuW3peWPl+eyviA+IGppbmtvdWp1c2VpXCA7CivnmbvlsbHpm7vou4ogPiB0b3phbmRlbnNoYVwgOwor5pqr5a6a5pS/5bqcID4gemFudGVpc2VpZnVcIDsKK+S5l+WQiOmmrOi7iiA+IG5vcmlhaWJhc2hhXCA7CivmnJ/miJDlkIznm58gPiBraXNlaWRvdW1laVwgOwor5pWj5YWJ5pif6ZuyID4gc2Fua291c2VpdW5cIDsKK+mjoumkk+eZguazlSA+IGtpZ2FyeW91aG91XCA7Civns7jlgY/mma/msJcgPiBpdG9oZW5rZWlraVwgOwor54mp5L6h5aSJ5YuVID4gYnVra2FoZW5kb3VcIDsKK+i/kemDiumDveW4giA+IGtpbmtvdXRvc2hpXCA7CivlhazplovmnJ/plpMgPiBrb3VrYWlraWthblwgOwor5YmN5b6M5LiN6KaaID4gemVuZ29mdWtha3VcIDsKK+a6luWCmeS9k+aTjSA+IGp1bmJpdGFpc291XCA7Civmr43ns7vlrrbml48gPiBib2tlaWthem9rdVwgOwor5q2v56eR5Yy76KGTID4gc2hpa2FpanV0c3VcIDsKK+mHkeeuoealveWZqCA+IGtpbmthbmdha2tpXCA7CivliIfno4vnkKLno6ggPiBzZXNzYXRha3VtYVwgOwor5LiA5pmC6Kej6ZuHID4gaWNoaWppa2Fpa29cIDsKK+mBi+i7ouizh+mHkSA+IHVudGVuc2hpa2luXCA7CivloZHmgKfpmZDnlYwgPiBzb3NlaWdlbmthaVwgOwor6YeR5qip5pS/5rK7ID4ga2lua2Vuc2VpamlcIDsKK+mYsuW+oemDqOmaiiA+IGJvdWd5b2J1dGFpXCA7CivpnZnmraLooZvmmJ8gPiBzZWlzaGllaXNlaVwgOwor5YaN5bqm5Y2U6K2wID4gc2FpZG9reW91Z2lcIDsKK+S4gOWIh+WQiOiyoSA+IGlzc2FpZ2Fzc2FpXCA7CivpgbrnlKPnm7jntpogPiBpc2Fuc291em9rdVwgOwor5aGR5oCn5aSJ5b2iID4gc29zZWloZW5rZWlcIDsKK+S4gOWkqeWbm+a1tyA+IGl0dGVuc2hpa2FpXCA7Civpn7Ppn7/lirnmnpwgPiBvbmt5b3Vrb3VrYVwgOwor5Y2Y5pys5L2N5oCnID4gdGFuaG9uJydpc2VpXCA7Civpm7LmlaPpnKfmtoggPiB1bnNhbm11c2hvdVwgOwor5YWo5L2T5Li7576pID4gemVudGFpc2h1Z2lcIDsKK+WBnOatouaZgumWkyA+IHRlaXNoaWppa2FuXCA7CivkvY7nqbrpo5vooYwgPiB0ZWlrdXVoaWtvdVwgOwor5pSv5bqm6YOo5bGLID4gc2hpdGFrdWJleWFcIDsKK+WKoOW3peiyv+aYkyA+IGtha291Ym91ZWtpXCA7CivooZvmmJ/mlL7pgIEgPiBlaXNlaWhvdXNvdVwgOwor6Zu75rCX5YiG6KejID4gZGVua2lidW5rYWlcIDsKK+miqOiHtOWcsOWMuiA+IGZ1dWNoaWNoaWt1XCA7Civlr4bplonlrrnlmaggPiBtaXBwZWl5b3VraVwgOwor6YCj5biv5YK15YuZID4gcmVudGFpc2FpbXVcIDsKK+mHkeWJm+iWqeWglSA+IGtvbmdvdXNhdHRhXCA7CivkuIDkurrlpKnkuIsgPiBoaXRvcmlkZW5rYVwgOwor5pmC6ZaT5Y+N6LuiID4gamlrYW5oYW50ZW5cIDsKK+ilv+asp+aWh+aYjiA+IHNlaW91YnVubWVpXCA7CivkuIvpg6jntYTnuZQgPiBrYWJ1c29zaGlraVwgOwor55u45LmX5Yq55p6cID4gc291am91a291a2FcIDsKK+awtOW5s+i3nemboiA+IHN1aWhlaWt5b3JpXCA7Civou43lgpnmkqTlu4MgPiBndW5iaXRlcHBhaVwgOwor5Zu65pyJ5ZCN6KmeID4ga295dXVtZWlzaGlcIDsKK+S6uumWk+eWjuWkliA+IG5pbmdlbnNvZ2FpXCA7CivmnInmqZ/ljJblraYgPiB5dXVraWthZ2FrdVwgOwor5Luy6ZaT5YCk5q61ID4gbmFrYW1hbmVkYW5cIDsKK+a4qeaVheefpeaWsCA+IG9ua29jaGlzaGluXCA7Civmmpfoppboo4Xnva4gPiBhbnNoaXNvdWNoaVwgOwor5Zu95a626Kmm6aiTID4ga29ra2FzaGlrZW5cIDsKK+mdkuaenOW4guWgtCA+IHNlaWthaWNoaWJhXCA7CivmsJHkuovoo4HliKQgPiBtaW5qaXNhaWJhblwgOwor5Y6f5a2Q5YW15ZmoID4gZ2Vuc2hpaGVpa2lcIDsKK+iCr+WumuW/nOetlCA+IGtvdXRlaW91dG91XCA7CivlpInmm7TkuI3og70gPiBoZW5rb3VmdW5vdVwgOwor57SA5Yui5pys57eaID4ga2lzZWlob25zZW5cIDsKK+m6u+ijj+iNieWxpSA+IGFzYXVyYXpvdXJpXCA7Civlj7Dmub7lnYrkuLsgPiB0YWl3YW5ib3V6dVwgOwor5a2j5YiK6ZuR6KqMID4ga2lrYW56YXNzaGlcIDsKK+WNl+mYv+aIpuS6iSA+IG5hbicnYXNlbnNvdVwgOwor54Sh57ea5ZGo5rOiID4gbXVzZW5zaHV1aGFcIDsKK+mVt+acn+mHkeWIqSA+IGNob3VraWtpbnJpXCA7Civpo5vooYzmqZ/nrYkgPiBoaWtvdWtpbmFkb1wgOwor5YKA5YSh5pS/5bqcID4ga2FpcmFpc2VpZnVcIDsKK+W4guWklumbu+ipsSA+IHNoaWdhaWRlbndhXCA7CivpgKPpgqbmlL/lupwgPiByZW5wb3VzZWlmdVwgOwor5pS+5q2M6auY5ZCfID4gaG91a2Frb3VnaW5cIDsKK+W+rumHj+WFg+e0oCA+IGJpcnlvdWdlbnNvXCA7Civoi7HlrZfmlrDogZ4gPiBlaWppc2hpbmJ1blwgOwor5rqA6Lqr5Ym155eNID4gbWFuc2hpbnNvdWlcIDsKK+esrOS6jOe1hOWQiCA+IGRhaW5pa3VtaWFpXCA7CivlqabkurrorablrpggPiBmdWppbmtlaWthblwgOwor56ys5LiJ5LiW55WMID4gZGFpc2Fuc2VrYWlcIDsKK+avmOaymemWgOWkqSA+IGJpc2hhbW9udGVuXCA7CivnpL7kvJrkuLvnvqkgPiBzaGFrYWlzaHVnaVwgOwor5a2m5L2N6KuW5paHID4gZ2FrdWlyb25idW5cIDsKK+ekvuS6pOi+nuS7pCA+IHNoYWtvdWppcmVpXCA7CivlvrTlhbXlv4zpgb8gPiBjaG91aGVpa2loaVwgOwor5qmf5Lya5Z2H562JID4ga2lrYWlraW50b3VcIDsKK+aaq+WumuaOque9riA+IHphbnRlaXNvY2hpXCA7CivmlrnlkJHpn7Pnl7QgPiBob3Vrb3VvbmNoaVwgOwor5LiW55WM6YqA6KGMID4gc2VrYWlnaW5rb3VcIDsKK+WFqOaoqeWnlOS7uyA+IHplbmtlbicnaW5pblwgOwor6Ieq54S26KiA6KqeID4gc2hpemVuZ2VuZ29cIDsKK+iqh+Wkp+WmhOaDsyA+IGtvZGFpbW91c291XCA7CivljJbnsqfpgZPlhbcgPiBrZXNob3Vkb3VndVwgOwor5LiN5aSJ6LOH5pysID4gZnVoZW5zaGlob25cIDsKK+iznuWRs+acn+mZkCA+IHNob3VtaWtpZ2VuXCA7Civlv4Poh5PlpJbnp5EgPiBzaGluem91Z2VrYVwgOwor5bm+5L2V57Sa5pWwID4ga2lrYWt5dXVzdXVcIDsKK+S4iemDqOWQiOWljyA+IHNhbmJ1Z2Fzc291XCA7Civokpnlj6TkurrnqK4gPiBtb3Vrb2ppbnNodVwgOwor6Zu75rCX5YyW5a2mID4gZGVua2lrYWdha3VcIDsKK+ixhuiFkOS4gOS4gSA+IHRvdWZ1aXRjaG91XCA7Civmtojosrvpg73luIIgPiBzaG91aGl0b3NoaVwgOwor5LiA5LiA44CH55WqID4gaHlha3V0b29iYW5cIDsKK+WutuaXj+WItuW6piA+IGthem9rdXNlaWRvXCA7CivnlJ/lrZjmnJ/plpMgPiBzZWl6b25raWthblwgOwor6YeO6Imv5LuV5LqLID4gbm9yYXNoaWdvdG9cIDsKK+aXpeS8iui+nuWFuCA+IG5pY2hpaWppdGVuXCA7CivkuI3mraPkuZfou4ogPiBmdXNlaWpvdXNoYVwgOwor6Kq/5p+757WQ5p6cID4gY2hvdXNha2Vra2FcIDsKK+S4jeW9k+W7ieWjsiA+IGZ1dG91cmVuYmFpXCA7Civmu4XlpJrnn6LpsYggPiBtZXR0YXlhdGFyYVwgOwor5YmN5Lq65pyq6LiPID4gemVuamlubWl0b3VcIDsKK+S4jeW9k+WIqeW+lyA+IGZ1dG91cml0b2t1XCA7Civlm57mlZnlr7rpmaIgPiBrYWlreW91amlpblwgOwor6LuN5LqL6KiT57e0ID4gZ3VuamlrdW5yZW5cIDsKK+e3j+WQiOWPo+W6pyA+IHNvdWdvdWtvdXphXCA7Civpg6HnnIzliLbluqYgPiBndW5rZW5zZWlkb1wgOwor5L2/55So5Y+v6IO9ID4gc2hpeW91a2Fub3VcIDsKK+WGhemDqOeVmeS/nSA+IG5haWJ1cnl1dWhvXCA7Civlho3osqnliLbluqYgPiBzYWloYW5zZWlkb1wgOwor6KKr6YG45oyZ5qipID4gaGlzZW5reW9rZW5cIDsKK+eJqeS+oee1seWItiA+IGJ1a2thdG91c2VpXCA7Civlm6DmlbDliIbop6MgPiBpbnN1dWJ1bmthaVwgOwor55Sf55Sf5rWB6LuiID4gc2Vpc2VpcnV0ZW5cIDsKK+eEoeefpeiSmeaYpyA+IG11Y2hpbW91bWFpXCA7CivloJXokL3lnYrkuLsgPiBkYXJha3Vib3V6dVwgOwor6Iie5Y+w5bqm6IO4ID4gYnV0YWlkb2t5b3VcIDsKK+azsOilv+WQjeeUuyA+IHRhaXNlaW1laWdhXCA7Civms5Xmsrvlm73lrrYgPiBob3VjaGlrb2trYVwgOwor5YSq5YWI6aCG5L2NID4geXV1c2VuanVuJydpXCA7CivljZjkvY3ntYTlkIggPiB0YW4nJ2lrdW1pYWlcIDsKK+euoeeQhuaDheWgsSA+IGthbnJpam91aG91XCA7CivlrozlhajkuLvnvqkgPiBrYW56ZW5zaHVnaVwgOwor5LiD5LiN5oCd6K2wID4gbmFuYWZ1c2hpZ2lcIDsKK+WgseW+qeihjOeCuiA+IGhvdWZ1a3Vrb3VpXCA7CivlrqPkvJ3mloflj6UgPiBzZW5kZW5tb25rdVwgOwor5LqM5oiQ5paH57O7ID4gbmlzZWlidW5rZWlcIDsKK+S9k+WGheaZguioiCA+IHRhaW5haWRva2VpXCA7CivljLrnlLvmlbTnkIYgPiBrdWtha3VzZWlyaVwgOwor57WC5aSc6YGL6LuiID4gc2h1dXlhdW50ZW5cIDsKK+WKoOmAn+mBi+WLlSA+IGthc29rdXVuZG91XCA7Civlr77mipfpg6jpmoogPiB0YWlrb3VidXRhaVwgOwor57WQ5ama6LK755SoID4ga2Vra29uaGl5b3VcIDsKK+i7jeS6i+aUv+aoqSA+IGd1bmppc2Vpa2VuXCA7CivmnInmqZ/ovrLms5UgPiB5dXVraW5vdWhvdVwgOwor6Ziy6KGb6YOo6ZW3ID4gYm91ZWlidWNob3VcIDsKK+mBi+WWtuizh+mHkSA+IHVuJydlaXNoaWtpblwgOwor5pyI6KaL6JWO6bqmID4gdHN1a2ltaXNvYmFcIDsKK+S6uueUn+iIqui3ryA+IGppbnNlaWtvdXJvXCA7CivnlJ/lkb3kv53pmbogPiBzZWltZWlob2tlblwgOwor5b+c5oCl5omL5b2TID4gb3VreXV1dGVhdGVcIDsKK+acieW9oueEoeW9oiA+IHl1dWtlaW11a2VpXCA7Civlj5fkv6Hlm57ot68gPiBqdXNoaW5rYWlyb1wgOwor5Y+C6ICD5Zuz5pu4ID4gc2Fua291dG9zaG9cIDsKK+iLsembhOW0h+aLnSA+IGVpeXV1c3V1aGFpXCA7Civlj5fpqJPnlarlj7cgPiBqdWtlbmJhbmdvdVwgOwor6YeN6L6y5Li7576pID4ganV1bm91c2h1Z2lcIDsKK+itt+WbveelnuekviA+IGdva29rdWppbmphXCA7CivmmI7msrvnpZ7lrq4gPiBtZWlqaWppbmd1dVwgOwor5bCR5pWw5oSP6KaLID4gc2hvdXN1dWlrZW5cIDsKK+avlOe/vOmAo+eQhiA+IGhpeW9rdXJlbnJpXCA7CivmnInmnJ/lubTph5EgPiB5dXVraW5lbmtpblwgOwor5LqM5YWD5pS+6YCBID4gbmlnZW5ob3Vzb3VcIDsKK+iHquS/oemBjuWJsCA+IGppc2hpbmtham91XCA7CivlpYnntI3nm7jmkrIgPiBob3Vub3V6dW1vdVwgOwor5Lq66Lqr5b6h5L6bID4gaGl0b21pZ29rdXVcIDsKK+S/neitt+aknOadnyA+IGhvZ29rZW5zb2t1XCA7CivliIbnnIzlnLDlm7MgPiBidW5rZW5jaGl6dVwgOwor6Zi/6Kub6L+95b6TID4gYXl1dHN1aXNob3VcIDsKK+mbu+WFieefs+eBqyA+IGRlbmtvdXNla2thXCA7Civms6LngL7kuIfkuIggPiBoYXJhbmJhbmpvdVwgOwor55u45LqS6Zai5L+CID4gc291Z29rYW5rZWlcIDsKK+WGhemDqOS7leanmCA+IG5haWJ1c2hpeW91XCA7Civnmq7kuIvms6jlsIQgPiBoaWthY2h1dXNoYVwgOwor5Lm+54el6YeO6I+cID4ga2Fuc291eWFzYWlcIDsKK+efreapn+mWoumKgyA+IHRhbmtpa2FuanV1XCA7Civnj77lnLDmmYLplpMgPiBnZW5jaGlqaWthblwgOwor5LiA562J6LuN5pu5ID4gaXR0b3VndW5zb3VcIDsKK+WutuW6reeUqOWTgSA+IGthdGVpeW91aGluXCA7CivpibHlsbHmioDluKsgPiBrb3V6YW5naXNoaVwgOwor5LiA5a2Q55u45LydID4gaXNzaGlzb3VkZW5cIDsKK+aZgumZkOeri+azlSA+IGppZ2VucmlwcG91XCA7CivmhJvliKXpm6Loi6YgPiBhaWJldHN1cmlrdVwgOwor5Zu65a6a6LOH55SjID4ga290ZWlzaGlzYW5cIDsKK+WSjOeLrOi+nuWFuCA+IHdhZG9rdWppdGVuXCA7CivnmbvmoKHmi5LlkKYgPiB0b3Vrb3VreW9oaVwgOwor5ryU5aWP5peF6KGMID4gZW5zb3VyeW9rb3VcIDsKK+abuOeUu+mqqOiRoyA+IHNob2dha290dG91XCA7CivpgYvli5XpgbjmiYsgPiB1bmRvdXNlbnNodVwgOwor5a2m5ZyS6YO95biCID4gZ2FrdWVudG9zaGlcIDsKK+adsea0i+S4u+e+qSA+IHRvdXlvdXNodWdpXCA7CivlpKfpoqjlkYLmlbcgPiBvb2J1cm9zaGlraVwgOwor5pyJ6JOL6LKo6LuKID4geXV1Z2Fpa2FzaGFcIDsKK+aUv+ayu+izh+mHkSA+IHNlaWppc2hpa2luXCA7CivoqIDoq5bmqZ/plqIgPiBnZW5yb25raWthblwgOwor6aSK6K235a2m5qChID4geW91Z29nYWtrb3VcIDsKK+i1sOihjOaZgumWkyA+IHNvdWtvdWppa2FuXCA7CivoqZXkvqHln7rmupYgPiBoeW91a2FraWp1blwgOwor5paw6IGe6KiY5LqLID4gc2hpbmJ1bmtpamlcIDsKK+Wkq+WUseWppumajyA+IGZ1c2hvdWZ1enVpXCA7Civpm7vlrZDovp7mm7ggPiBkZW5zaGlqaXNob1wgOwor5ZCM5pmC6Yyy6Z+zID4gZG91amlyb2t1b25cIDsKK+euoeeQhuekvuS8miA+IGthbnJpc2hha2FpXCA7CivkuIDoppblkIzku4EgPiBpc3NoaWRvdWppblwgOwor5LiA6KaW5ZCM5Lq6ID4gaXNzaGlkb3VqaW5cIDsKK+ani+mAoOWkieWMliA+IGtvdXpvdWhlbmthXCA7CivlpbPmtYHkvZzlrrYgPiBqb3J5dXVzYWtrYVwgOwor77yR77yR77yQ55WqID4gaHlha3V0b29iYW5cIDsKK+WPuOazleWItuW6piA+IHNoaWhvdXNlaWRvXCA7Civli6Tli5nkuqTku6MgPiBraW5tdWtvdXRhaVwgOwor55+t57eo5pig55S7ID4gdGFucGVuJydlaWdhXCA7CivkvJrlk6Hopo/ntIQgPiBrYWlpbmtpeWFrdVwgOwor5LqM54K55YWI5Y+WID4gbml0ZW5zZW5zaHVcIDsKK+WPjeaIpuS4u+e+qSA+IGhhbnNlbnNodWdpXCA7CivmmrTomY7ppq7msrMgPiBib3Vrb2h5b3VnYVwgOwor5bem6IWV5oqV5omLID4gc2F3YW50b3VzaHVcIDsKK+WJjeacn+ippumokyA+IHplbmtpc2hpa2VuXCA7CivooqvpgbjmjJnkurogPiBoaXNlbmt5b25pblwgOwor6IOM5b6M6Zai5L+CID4gaGFpZ29rYW5rZWlcIDsKK+mkk+msvOWkp+WwhiA+IGdha2lkYWlzaG91XCA7Civnlarlj7foqJjlj7cgPiBiYW5nb3VraWdvdVwgOwor5YiR5LqL6KOc5YSfID4ga2Vpamlob3Nob3VcIDsKK+S4gOS9k+WFqOS9kyA+IGl0dGFpemVudGFpXCA7CivmtbfpgYvlkIznm58gPiBrYWl1bmRvdW1laVwgOwor5bCC5a6I6Ziy6KGbID4gc2Vuc2h1Ym91ZWlcIDsKK+WNl+mYv+mAo+mCpiA+IG5hbicnYXJlbnBvdVwgOwor55m66KGM6YOo5pWwID4gaGFra291YnVzdXVcIDsKK+WIkeS6i+ijgeWIpCA+IGtlaWppc2FpYmFuXCA7CivlhazlubPnhKHnp4EgPiBrb3VoZWltdXNoaVwgOwor54mp5L6h5oyH5pWwID4gYnVra2FzaGlzdXVcIDsKK+WIkeS6i+iiq+WRiiA+IGtlaWppaGlrb2t1XCA7CivoqJjogIXkvJroposgPiBraXNoYWthaWtlblwgOwor5b6T6LuN6KiY6ICFID4ganV1Z3Vua2lzaGFcIDsKK+epuuawl+aKteaKlyA+IGt1dWtpdGVpa291XCA7Civnj77ph5HmraPkvqEgPiBnZW5raW5zZWlrYVwgOwor5aSn5ZCM5bCP55WwID4gZGFpZG91c2hvdWlcIDsKK+eUn+WRveWAq+eQhiA+IHNlaW1laXJpbnJpXCA7Civpp4bli5Xoo4Xnva4gPiBrdWRvdXNvdWNoaVwgOwor5Y2D6LuN5LiH6aasID4gc2VuZ3VuYmFuYmFcIDsKK+WkieW5u+iHquWcqCA+IGhlbmdlbmppemFpXCA7Civnm7jlr77kuLvnvqkgPiBzb3V0YWlzaHVnaVwgOwor6LuN5Yy75a2m5qChID4gZ3VuJydpZ2Fra291XCA7Civpg73msJHkvJrppKggPiB0b21pbmthaWthblwgOwor5biC5aC05L6h5YCkID4gc2hpam91a2FjaGlcIDsKK+W5s+WSjOirluiAhSA+IGhlaXdhcm9uc2hhXCA7CivlsL/ntKDmqLnohIIgPiBueW91c29qdXNoaVwgOwor5o6D6Zmk5b2T55WqID4gc291aml0b3ViYW5cIDsKK+S7o+eQhuaIpuS6iSA+IGRhaXJpc2Vuc291XCA7CivlnLDnm6TmsojkuIsgPiBqaWJhbmNoaW5rYVwgOwor5qeL5oiQ5Li7576pID4ga291c2Vpc2h1Z2lcIDsKK+ato+WkmumdouS9kyA+IHNlaXRhbWVudGFpXCA7CivkuIDliIflkIjliIcgPiBpc3NhaWdhc3NhaVwgOwor5L+d56iO5Zyw5Z+fID4gaG96ZWljaGlpa2lcIDsKK+S6uuWToeaVtOeQhiA+IGppbicnaW5zZWlyaVwgOwor5Lq66ZaT5Lul5YmNID4gbmluZ2VuJydpemVuXCA7CivlubPpnaLlm7PlvaIgPiBoZWltZW56dWtlaVwgOwor5a6H5a6Z5peF6KGMID4gdWNodXVyeW9rb3VcIDsKK+iNmOWckuWItuW6piA+IHNob3VlbnNlaWRvXCA7Civoh6rnpL7oo73lk4EgPiBqaXNoYXNlaWhpblwgOwor5Yid5pyf5q616ZqOID4gc2hva2lkYW5rYWlcIDsKK+WJjemAlOmBvOmBoCA+IHplbnRvcnlvdWVuXCA7CivotaTokaHokITphZIgPiBha2FidWRvdXNodVwgOwor5Y6f5aeL5pmC5LujID4gZ2Vuc2hpamlkYWlcIDsKK+WPguisgOacrOmDqCA+IHNhbmJvdWhvbmJ1XCA7CivlpbPlrZDlpKfnlJ8gPiBqb3NoaWRhaXNlaVwgOwor5o6S5aSW6YGL5YuVID4gaGFpZ2FpdW5kb3VcIDsKK+awtOW5s+mjm+ihjCA+IHN1aWhlaWhpa291XCA7CivkvY7lm57otqPlkbMgPiB0ZWlrYWlzaHVtaVwgOwor5LqS5oG16LK/5piTID4gZ29rZWlib3Vla2lcIDsKK+S6uumWk+S7peS4iiA+IG5pbmdlbicnaWpvdVwgOwor5YKy5oWi54Sh56S8ID4gZ291bWFuYnVyZWlcIDsKK+W+kuaJi+epuuaLsyA+IHRvc2h1a3V1a2VuXCA7Civkupzngq3ljJbniakgPiBhdGFua2FidXRzdVwgOwor5rC05rOz5aSn5LyaID4gc3VpZWl0YWlrYWlcIDsKK+eUt+Wls+WQjOaoqSA+IGRhbmpvZG91a2VuXCA7CivlubTph5HliLbluqYgPiBuZW5raW5zZWlkb1wgOwor56m66LuN5Z+65ZywID4ga3V1Z3Vua2ljaGlcIDsKK+Wkp+WSjOaZguS7oyA+IHlhbWF0b2ppZGFpXCA7CivluJ3njovliIfplosgPiB0ZWlvdXNla2thaVwgOwor5Y+N5pS/5bqc5YWaID4gaGFuc2VpZnV0b3VcIDsKK+iZjuimlueciOOAhSA+IGtvc2hpdGFudGFuXCA7Civmra/np5Hnl4XpmaIgPiBzaGlrYWJ5b3VpblwgOwor6LyJ6LKo5bGv5pWwID4gc2Fpa2F0b25zdXVcIDsKK+irluiqrOWnlOWToSA+IHJvbnNldHN1aWluXCA7Civli53miYvmrKHnrKwgPiBrYXR0ZXNoaWRhaVwgOwor56m65oy66ZqK5ZOhID4ga3V1dGVpdGFpaW5cIDsKK+iHqueUsee1jOa4iCA+IGppeXV1a2VpemFpXCA7CivosqHmlL/noLTntrsgPiB6YWlzZWloYXRhblwgOwor5pS/5rK754yu6YeRID4gc2VpamlrZW5raW5cIDsKK+aJi+mWk+S7leS6iyA+IHRlbWFzaGlnb3RvXCA7CivkuIDmnKzli53osqAgPiBpcHBvbnNob3VidVwgOwor5Lit6YCU5Y2K56uvID4gY2h1dXRvaGFucGFcIDsKK+mAmumBjuWEgOekvCA+IHRzdXVrYWdpcmVpXCA7Civoi7HlrZfpm4blkIggPiBlaWppc2h1dWdvdVwgOwor572y5ZCN6YGL5YuVID4gc2hvbWVpdW5kb3VcIDsKK+WhkeaAp+aMh+aVsCA+IHNvc2Vpc2hpc3V1XCA7CivlkIjlkIzlirTntYQgPiBnb3Vkb3Vyb3Vzb1wgOwor5Li7566h5qmf6ZaiID4gc2h1a2Fua2lrYW5cIDsKK+Wkqeawl+mDveWQiCA+IHRlbmtpdHN1Z291XCA7CivlhbXlmajlt6XloLQgPiBoZWlraWtvdWpvdVwgOwor5bmz5rCR5Li7576pID4gaGVpbWluc2h1Z2lcIDsKK+WutuaXj+S8muitsCA+IGthem9rdWthaWdpXCA7CivmuJvlgrXln7rph5EgPiBnZW5zYWlraWtpblwgOwor56WW5YWI5bSH5oudID4gc29zZW5zdXVoYWlcIDsKK+S6i+Wkp+aAneaDsyA+IGppZGFpc2hpc291XCA7CivlnLDloLTnlKPmpa0gPiBqaWJhc2FuZ3lvdVwgOwor6YCj6YKm5Zu95a62ID4gcmVucG91a29ra2FcIDsKK+eri+aGsuS4u+e+qSA+IHJpa2tlbnNodWdpXCA7Civlhavmlrnnvo7kurogPiBoYXBwb3ViaWppblwgOwor5LiW55WM5oOF5YuiID4gc2VrYWlqb3VzZWlcIDsKK+S4jeW/q+aMh+aVsCA+IGZ1a2Fpc2hpc3V1XCA7CivpgaDmtIvoiKrot68gPiBlbicneW91a291cm9cIDsKK+WbveWutue1jOa4iCA+IGtva2tha2VpemFpXCA7Civoh6jmmYLlopfliIogPiByaW5qaXpvdWthblwgOwor5YWs5q2m5ZCI5L2TID4ga291YnVnYXR0YWlcIDsKK+S6iOiumuacrOe3miA+IHlvc2FuaG9uc2VuXCA7CivmoLnmnKzkuLvnvqkgPiBrb25wb25zaHVnaVwgOwor6Z2e5bi46K2m5oiSID4gaGlqb3VrZWlrYWlcIDsKK+S4reWkruaUv+W6nCA+IGNodXVvdXNlaWZ1XCA7CivliLrnirbnqoHotbcgPiBzaGlqb3V0b2traVwgOwor5YWs55qE5om25YqpID4ga291dGVraWZ1am9cIDsKK+WQiOaIkOaoueiEgiA+IGdvdXNlaWp1c2hpXCA7CivlibLos6bos7zosrcgPiBrYXBwdWtvdWJhaVwgOwor5pyq5p2l5oyH5ZCRID4gbWlyYWlzaGlrb3VcIDsKK+iHqueUseaUvuS7uyA+IGppeXV1aG91bmluXCA7Civoh6rou6LlkajmnJ8gPiBqaXRlbnNodXVraVwgOwor6Ieq5bex5Li75by1ID4gamlrb3NodWNob3VcIDsKK+WNg+iogOS4h+iqniA+IHNlbmdlbmJhbmdvXCA7CivlvpLmrannq7botbAgPiB0b2hva3lvdXNvdVwgOwor6Kaq5ZaE6Kmm5ZCIID4gc2hpbnplbmppYWlcIDsKK+eqkue0oOWbuuWumiA+IGNoaXNzb2tvdGVpXCA7CivmtbfkuIrkv53pmbogPiBrYWlqb3Vob2tlblwgOwor6aOb6KGM55Sy5p2/ID4gaGlrb3Vrb3ViYW5cIDsKK+aMh+WwjuS4u+S6iyA+IHNoaWRvdXNodWppXCA7Civnm7jkupLpioDooYwgPiBzb3Vnb2dpbmtvdVwgOwor6LuN5Y+45Luk6YOoID4gZ3Vuc2hpcmVpYnVcIDsKK+iruOS6i+S4h+erryA+IHNob2ppYmFudGFuXCA7CivlirTngb3kv53pmbogPiByb3VzYWlob2tlblwgOwor5pmC6Lyq6YeR5YmbID4gamlyaW5rb25nb3VcIDsKK+aEj+awl+mKt+ayiCA+IGlraXNob3VjaGluXCA7CivplqLnqI7lm57pgb8gPiBrYW56ZWlrYWloaVwgOwor5oSP5rCX5raI5rKIID4gaWtpc2hvdWNoaW5cIDsKK+WJjeS6uuacquWIsCA+IHplbmppbm1pdG91XCA7CivlhbHlkozkuLvnvqkgPiBreW91d2FzaHVnaVwgOwor5LqI6Ziy5oim5LqJID4geW9ib3VzZW5zb3VcIDsKK+mFuOaAp+Wcn+WjjCA+IHNhbnNlaWRvam91XCA7Civkurrouqvkv53orbcgPiBqaW5zaGluaG9nb1wgOwor5bm06YeR5L+d6Zm6ID4gbmVua2luaG9rZW5cIDsKK+aMh+WQkeiogOiqniA+IHNoaWtvdWdlbmdvXCA7Civlt6Hmn7vpg6jplbcgPiBqdW5zYWJ1Y2hvdVwgOwor5L+d6Ki85pyf6ZaTID4gaG9zaG91a2lrYW5cIDsKK+S4jeazleebo+emgSA+IGZ1aG91a2Fua2luXCA7CivlvqHoi6blirTmp5ggPiBnb2t1cm91c2FtYVwgOwor6KGM5L2P5bqn6IelID4gZ3lvdWp1dXphZ2FcIDsKK+iHquayu+Wkp+iHoyA+IGppY2hpZGFpamluXCA7Civnq4vkvZPkuqTlt64gPiByaXR0YWlrb3VzYVwgOwor56uc6aCt6JuH5bC+ID4gcnl1dXRvdWRhYmlcIDsKK+WFhembu+acn+mWkyA+IGp1dWRlbmtpa2FuXCA7CivoqJjmhrblqpLkvZMgPiBraW9rdWJhaXRhaVwgOwor6aSK6K235pWZ6KutID4geW91Z29reW91eXVcIDsKK+S6uuacrOS4u+e+qSA+IGppbnBvbnNodWdpXCA7CivmtbfmtIvmipXmo4QgPiBrYWl5b3V0b3VraVwgOwor5ZKM5q2M5bGx55yMID4gd2FrYXlhbWFrZW5cIDsKK+WkqumZvembu+azoiA+IHRhaXlvdWRlbnBhXCA7CivnkIbnp5HlpKflraYgPiByaWthZGFpZ2FrdVwgOwor6L+R6KGb5bir5ZujID4ga29ub2VzaGlkYW5cIDsKK+S4gOiho+W4r+awtCA+IGljaGlpdGFpc3VpXCA7Civos4fmnKzkuLvnvqkgPiBzaGlob25zaHVnaVwgOwor6Ieq55Sx57WQ5amaID4gaml5dXVrZWtrb25cIDsKK+W/hemgiOenkeebriA+IGhpc3N1a2Ftb2t1XCA7Civov5Hku6PkuLvnvqkgPiBraW5kYWlzaHVnaVwgOwor5a6I6K235aSp5L2/ID4gc2h1Z290ZW5zaGlcIDsKK+S9nOalremDqOS8miA+IHNhZ3lvdWJ1a2FpXCA7Civpg73luILlho3nlJ8gPiB0b3NoaXNhaXNlaVwgOwor5bm855Sf5Zmo5a6YID4geW91c2Vpa2lrYW5cIDsKK+W+oeeUqOe1hOWQiCA+IGdveW91a3VtaWFpXCA7Civou43kuovmvJTnv5IgPiBndW5qaWVuc2h1dVwgOwor5Lq66YGT5Li7576pID4gamluZG91c2h1Z2lcIDsKK+WJjeWPsuaZguS7oyA+IHplbnNoaWppZGFpXCA7CivmtbfkuIrlsIHpjpYgPiBrYWlqb3VmdXVzYVwgOwor5oSP5ZGz5rex6ZW3ID4gaW1pc2hpbmNob3VcIDsKK+S6pOmAmumBleWPjSA+IGtvdXRzdXVpaGFuXCA7Civlm5vljYHlhavmiYsgPiB5b25qdXVoYXR0ZVwgOwor5omL5be75a+/5Y+4ID4gdGVtYWtpenVzaGlcIDsKK+WFrOmWi+ism+W6pyA+IGtvdWthaWtvdXphXCA7CivniYfoqIDpmrvlj6UgPiBoZW5nZW5zZWtrdVwgOwor6auY6Zai56iO5YyWID4ga291a2FuemVpa2FcIDsKK+mBi+mAgeS8muekviA+IHVuc291Z2Fpc2hhXCA7CivmnbHlrq7lvqHmiYAgPiB0b3VndXVnb3Nob1wgOwor5bu25rue5Yip5oGvID4gZW50YWlyaXNva3VcIDsKK+eBq+eBveitpuWgsSA+IGthc2Fpa2VpaG91XCA7Civnt4/mjIfmj67lrpggPiBzb3VzaGlraWthblwgOwor5pS+6YCB5pmC6ZaTID4gaG91c291amlrYW5cIDsKK+acieWus+eEoeebiiA+IHl1dWdhaW11ZWtpXCA7CivlqabkurrllY/poYwgPiBmdWppbm1vbmRhaVwgOwor5pm06ICV6Zuo6KqtID4gc2Vpa291dWRva3VcIDsKK+Wwiueah+aUmOWktyA+IHNvbicnbm91am91aVwgOwor5LiN5paH5oay5rOVID4gZnVidW5rZW5wb3VcIDsKK+S4gOWvuOazleW4qyA+IGlzc3VuYm91c2hpXCA7Civlj6/og73li5XoqZ4gPiBrYW5vdWRvdXNoaVwgOwor5Y+k5LqL5p2l5q20ID4ga29qaXJhaXJla2lcIDsKK+WujOWFqOmbh+eUqCA+IGthbnplbmtveW91XCA7Civlia/pvLvohZTngo4gPiBmdWt1YmlrdXVlblwgOwor5aSa5YWD5pS+6YCBID4gdGFnZW5ob3Vzb3VcIDsKK+awl+aBr+WlhOWlhCA+IGtpc29rdWVuJydlblwgOwor6YeI6L+m5aaC5p2lID4gc2hha2FueW9yYWlcIDsKK+S6iOe0hOWQjeewvyA+IHlveWFrdW1laWJvXCA7CivkuI3osrflkIznm58gPiBmdWJhaWRvdW1laVwgOwor6Z2e6LK35ZCM55ufID4gaGliYWlkb3VtZWlcIDsKK+ebuOWvvuaVrOiqniA+IHNvdXRhaWtlaWdvXCA7CivntYzmuIjnibnljLogPiBrZWl6YWl0b2trdVwgOwor5Lu75oSP5Zuj5L2TID4gbmluJydpZGFudGFpXCA7CivmjqXmlbXnp7vli5UgPiBzZXR0ZWtpaWRvdVwgOwor6bCl5a+h5a2k54usID4ga2Fua2Frb2Rva3VcIDsKK+ebuOWvvuWjsuiytyA+IGFpdGFpYmFpYmFpXCA7CivnhKHkurrlt6XloLQgPiBtdWppbmtvdWpvdVwgOwor5LiN5o+b57SZ5bmjID4gZnVrYW5zaGloZWlcIDsKK+ebuOS5l+S9nOeUqCA+IHNvdWpvdXNheW91XCA7CivkuojnrpfkuI3otrMgPiB5b3NhbmZ1c29rdVwgOwor6Jas55CG5L2c55SoID4geWFrdXJpc2F5b3VcIDsKK+eCuuabv+euoeeQhiA+IGthd2FzZWthbnJpXCA7CivkuovliY3ljZTorbAgPiBqaXNlbmt5b3VnaVwgOwor5Y6a6aGU54Sh5oGlID4ga291Z2FubXVjaGlcIDsKK+WuieWFqOijhee9riA+IGFuemVuc291Y2hpXCA7CivnqbrmsJfmhJ/mn5MgPiBrdXVraWthbnNlblwgOwor5rC06YGT5bel5LqLID4gc3VpZG91a291amlcIDsKK+S4gOe0meWNiumKrSA+IGlzc2hpaGFuc2VuXCA7Civlj43lsITpgYvli5UgPiBoYW5zaGF1bmRvdVwgOwor5aGp6aGe5rq25rayID4gZW5ydWl5b3Vla2lcIDsKK+WkluS6uumDqOmaiiA+IGdhaWppbmJ1dGFpXCA7Civmi53ph5HkuLvnvqkgPiBoYWlraW5zaHVnaVwgOwor55Ww5L2T5ZCM5b+DID4gaXRhaWRvdXNoaW5cIDsKK+S5l+aVsOWKueaenCA+IGpvdXN1dWtvdWthXCA7Civlhajnm5vmmYLku6MgPiB6ZW5zZWlqaWRhaVwgOwor6Z2i5ZCR5LiN6IOMID4gbWVua291ZnVoYWlcIDsKK+epuueQhuepuuirliA+IGt1dXJpa3V1cm9uXCA7CivpnZ7luLjpmo7mrrUgPiBoaWpvdWthaWRhblwgOwor5YK355eN6LuN5Lq6ID4gc2hvdWlndW5qaW5cIDsKK+aciOizpuiyqeWjsiA+IGdlcHB1aGFuYmFpXCA7CivkuIfkuJbkuIDns7sgPiBiYW5zZWlpa2tlaVwgOwor56ys5LqM6YOo6ZW3ID4gZGFpbmlidWNob3VcIDsKK+ihjOWEgOS9nOazlSA+IGd5b3VnaXNhaG91XCA7Civph43liqDnrpfnqI4gPiBqdXVrYXNhbnplaVwgOwor5LiA5b+D5LiN5LmxID4gaXNzaGluZnVyYW5cIDsKK+i7jeS6i+ijgeWIpCA+IGd1bmppc2FpYmFuXCA7CivnhafmmI7lmajlhbcgPiBzaG91bWVpa2lndVwgOwor5bGN6ZmA5p6X546LID4gc2hpZGFyaW4nJ291XCA7CivpgY7ljrvlrozkuoYgPiBrYWtva2FucnlvdVwgOwor5oim5b6M5qyn5beeID4gc2VuZ29vdXNodXVcIDsKK+mmluiEs+S8muitsCA+IHNodW5vdWthaWdpXCA7Civlrrbluq3mlpnnkIYgPiBrYXRlaXJ5b3VyaVwgOwor5pel5pys6YqA6KGMID4gbmlob25naW5rb3VcIDsKK+mBoOS6pOi/keaUuyA+IGVua291a2lua291XCA7Civml4vlm57pgYvli5UgPiBzZW5rYWl1bmRvdVwgOwor5biw5Zu95a2Q5aWzID4ga2lrb2t1c2hpam9cIDsKK+mbjOmbhOa3mOaxsCA+IHNoaXl1dXRvdXRhXCA7CivpioDmnKzkvY3liLYgPiBnaW5ob24nJ2lzZWlcIDsKK+iHqualreiHquW+lyA+IGppZ291aml0b2t1XCA7CivkuLvmoLzoo5zoqp4gPiBzaHVrYWt1aG9nb1wgOwor5YKY5b2i5Zmo5a6YID4gc2Fua2Vpa2lrYW5cIDsKK+mbu+WMluijveWTgSA+IGRlbmthc2VpaGluXCA7Civos4fnlKPkvqHlgKQgPiBzaGlzYW5rYWNoaVwgOwor5Lit5aSu56u26aasID4gY2h1dW91a2VpYmFcIDsKK+i1pOWtl+iyoeaUvyA+IGFrYWppemFpc2VpXCA7CivmlL/msrvkuqHlkb0gPiBzZWlqaWJvdW1laVwgOwor5LqU5Y2B5bm056WtID4gZ29qdXVuZW5zYWlcIDsKK+mBuuaXj+W5tOmHkSA+IGl6b2t1bmVua2luXCA7Civkurrlt6XmoITppIogPiBqaW5rb3VlaXlvdVwgOwor5pOs5Y+k5YW455qEID4gZ2lrb3RlbnRla2lcIDsKK+mbu+awl+S8muekviA+IGRlbmtpZ2Fpc2hhXCA7CivmsJfpmo/msJflhJggPiBraXp1aWtpbWFtYVwgOwor54Sh5Y+N5YuV6YqDID4gbXVoYW5kb3VqdXVcIDsKK+mBoOW/g+WIhumboiA+IGVuc2hpbmJ1bnJpXCA7CivloLTlpJbppqzliLggPiBqb3VnYWliYWtlblwgOwor6Z2S5bm05pmC5LujID4gc2VpbmVuamlkYWlcIDsKK+iHqueUseWVj+mhjCA+IGppeXV1bW9uZGFpXCA7CivmvKvnlLvpm5HoqowgPiBtYW5nYXphc3NoaVwgOwor5Lqc6Ymb5Lit5q+SID4gYWVuY2h1dWRva3VcIDsKK+elluWFiOS8neadpSA+IHNvc2VuZGVucmFpXCA7CivkuIDlhZrmlK/phY0gPiBpdHRvdXNoaWhhaVwgOwor5Li76Kaz5Li7576pID4gc2h1a2Fuc2h1Z2lcIDsKK+WRvOWQuOWZqOezuyA+IGtva3l1dWtpa2VpXCA7Civngrrmm7/mipXmqZ8gPiBrYXdhc2V0b3VraVwgOwor5LiA55+l5Y2K6KejID4gaXRjaGloYW5rYWlcIDsKK+S4jeWumuWGoOipniA+IGZ1dGVpa2Fuc2hpXCA7Civku6PorbDmlL/kvZMgPiBkYWlnaXNlaXRhaVwgOwor5bmz5ZKM5pS75YuiID4gaGVpd2Frb3VzZWlcIDsKK+S9juS+oeagvOWMliA+IHRlaWtha2FrdWthXCA7CivogpjmjpvmpIXlrZAgPiBoaWppa2FrZWlzdVwgOwor5YWs5YuZ54G95a6zID4ga291bXVzYWlnYWlcIDsKK+aZr+awl+W+queSsCA+IGtlaWtpanVua2FuXCA7CivplqLkv4Lms5Xopo8gPiBrYW5rZWlob3VraVwgOwor6LOA6Kme5Lqk5o+bID4gZ2FzaGlrb3VrYW5cIDsKK+iAleWcsOaVtOeQhiA+IGtvdWNoaXNlaXJpXCA7Civooajoo4/kuIDkvZMgPiBoeW91cmlpdHRhaVwgOwor5aW06Zq36Kej5pS+ID4gZG9yZWlrYWlob3VcIDsKK+mYv+Wkmuemj+ixhiA+IG90YWZ1a3VtYW1lXCA7CivkvIHmpa3mlbTlgpkgPiBraWd5b3VzZWliaVwgOwor6LuN5LqL6KGM5YuVID4gZ3Vuamlrb3Vkb3VcIDsKK+WcsOaWueiHquayuyA+IGNoaWhvdWppY2hpXCA7CivkuJbkv5fkuLvnvqkgPiBzZXpva3VzaHVnaVwgOwor6auY54Kt57Sg6Yu8ID4ga291dGFuc29rb3VcIDsKK+acieapn+iCpeaWmSA+IHl1dWtpaGlyeW91XCA7Civmr5TkvovphY3liIYgPiBoaXJlaWhhaWJ1blwgOwor5Y+N5a++6YGL5YuVID4gaGFudGFpdW5kb3VcIDsKK+a3u+S7mOabuOmhniA+IHRlbnB1c2hvcnVpXCA7CivmgYvmhJvpgYrmiK8gPiByZW4nJ2FpeXV1Z2lcIDsKK+aKleWwhOWOn+eQhiA+IHRvdXNoYWdlbnJpXCA7CivlpKfoqIDlo67oqp4gPiB0YWlnZW5zb3Vnb1wgOwor6YeR5pys5L2N5Yi2ID4ga2luaG9uJydpc2VpXCA7CivpgKDoqp7miJDliIYgPiB6b3Vnb3NlaWJ1blwgOwor55m+56eR6L6e5YW4ID4gaHlha2thaml0ZW5cIDsKK+S4h+S7o+S4jeaYkyA+IGJhbmRhaWZ1ZWtpXCA7CivljbHpmbrop5LluqYgPiBraWtlbmtha3Vkb1wgOwor5YyW5a2m5YW15ZmoID4ga2FnYWt1aGVpa2lcIDsKK+a8ouWtl+WItumZkCA+IGthbmppc2VpZ2VuXCA7CivlubTlip/liLbluqYgPiBuZW5rb3VzZWlkb1wgOwor5rW35bqV54Gr5bGxID4ga2FpdGVpa2F6YW5cIDsKK+malOmdtOaOu+eXkiA+IGtha2thc291eW91XCA7CivpnZ7miKboq5bogIUgPiBoaXNlbnJvbnNoYVwgOwor5LiH5LiW5LiN5piTID4gYmFuc2VpZnVla2lcIDsKK+WGjeeUn+e5iue2rSA+IHNhaXNlaXNlbicnaVwgOwor6YGL6Lui57O757WxID4gdW50ZW5rZWl0b3VcIDsKK+S7u+aEj+WQjOihjCA+IG5pbicnaWRvdWtvdVwgOwor6Ieo5pmC5Zu95LyaID4gcmluamlrb2trYWlcIDsKK+ippumok+acn+mWkyA+IHNoaWtlbmtpa2FuXCA7CivlubTlip/liqDkv7ggPiBuZW5rb3VrYWhvdVwgOwor5b+c5o+05Zuj6ZW3ID4gb3VlbmRhbmNob3VcIDsKK+i7jeWMu+e3j+eboyA+IGd1bicnaXNvdWthblwgOwor5oWI5ZaE5Zuj5L2TID4gaml6ZW5kYW50YWlcIDsKK+iHque/kuaZgumWkyA+IGppc2h1dWppa2FuXCA7Civlm73lrrboo5zlhJ8gPiBrb2trYWhvc2hvdVwgOwor55ub6ICF5b+F6KGwID4gc2VpamFoaXNzdWlcIDsKK+S6uuaWh+S4u+e+qSA+IGppbmJ1bnNodWdpXCA7Civpm7voqbHnlarlj7cgPiBkZW53YWJhbmdvdVwgOwor55CG6KuW5L2T57O7ID4gcmlyb250YWlrZWlcIDsKK+aXpeacrOa1t+a6nSA+IG5paG9ua2Fpa291XCA7CivntYzluLjliKnnm4ogPiBrZWlqb3VyaWVraVwgOwor5byV6LKs6L6e5Lu7ID4gaW5zZWtpamluaW5cIDsKK+WHpuWls+iIqua1tyA+IHNob2pva291a2FpXCA7CivkuIDou5LkuIDou5IgPiBpa2tlbicnaWtrZW5cIDsKK+WVj+etlOeEoeeUqCA+IG1vbmRvdW11eW91XCA7CivpgYvlkb3oq5bogIUgPiB1bm1laXJvbnNoYVwgOwor6I+c56iu5qKF6ZuoID4gbmF0YW5lZHp1eXVcIDsKK+iqsuWkluaOiOalrSA+IGthZ2FpanVneW91XCA7Civpm6PmsJHluLDpgoQgPiBuYW5taW5raWthblwgOwor5YG25YOP56C05aOKID4gZ3V1em91aGFrYWlcIDsKK+aMh+ekuuijhee9riA+IHNoaWppc291Y2hpXCA7CivlronlhajlnLDluK8gPiBhbnplbmNoaXRhaVwgOwor6Ieq5bex6KSH6KO9ID4gamlrb2Z1a3VzZWlcIDsKK+S7luS6uuihjOWEgCA+IHRhbmluZ3lvdWdpXCA7CivliKTlrpjotJTlsZMgPiBob3VnYW5iaWlraVwgOwor5Zyn5pC+56m65rCXID4gYXNzYWt1a3V1a2lcIDsKK+WBpeW6t+euoeeQhiA+IGtlbmtvdWthbnJpXCA7CivoqabpqJPpo5vooYwgPiBzaGlrZW5oaWtvdVwgOwor55Sf55Sj6YGO5YmwID4gc2Vpc2Fua2Fqb3VcIDsKK+eUn+eQhuS8keaahyA+IHNlaXJpa3l1dWthXCA7CivkuqTpmpvloLToo48gPiBrb3VzYWlqb3VyaVwgOwor6LGK6IKl5pys57eaID4gaG91aGlob25zZW5cIDsKK+WIpOaWreimj+a6liA+IGhhbmRhbmtpanVuXCA7CivmsJfmga/lpYTjgIUgPiBraXNva3VlbicnZW5cIDsKK+WIpOaWreWfuua6liA+IGhhbmRhbmtpanVuXCA7CivlpKnos4foi7HpgoEgPiB0ZW5zaGllaW1haVwgOwor5oq15oqX6YGL5YuVID4gdGVpa291dW5kb3VcIDsKK+mDteS+v+WIh+aJiyA+IHl1dWJpbmtpdHRlXCA7CivnlLDlnJLpg73luIIgPiBkZW4nJ2VudG9zaGlcIDsKK+iho+aWmeWTgeW6lyA+IGlyeW91aGludGVuXCA7Civkuozpg6jlkIjllLEgPiBuaWJ1Z2Fzc2hvdVwgOwor6Zu75a2Q6aCt6ISzID4gZGVuc2hpenVub3VcIDsKK+WJsuizpuiyqeWjsiA+IGthcHB1aGFuYmFpXCA7CivpqqjokaPotqPlkbMgPiBrb3R0b3VzaHVtaVwgOwor6LuN5YKZ5Yi26ZmQID4gZ3VuYmlzZWlnZW5cIDsKK+mBi+WLleS4jei2syA+IHVuZG91YnVzb2t1XCA7CivliLbpmZDmvKLlrZcgPiBzZWlnZW5rYW5qaVwgOwor54Sh5Y+N5YuV56CyID4gbXVoYW5kb3Vob3VcIDsKK+WOn+WboOS4jeaYjiA+IGdlbicnaW5mdW1laVwgOwor6Lu96Ieq5YuV6LuKID4ga2Vpamlkb3VzaGFcIDsKK+WOn+WtkOaZguS7oyA+IGdlbnNoaWppZGFpXCA7Civni5DnlpHpgKHlt6EgPiBrb2dpc2h1bmp1blwgOwor56iL5bqm5ZWP6aGMID4gdGVpZG9tb25kYWlcIDsKK+imj+WumuaJk+W4rSA+IGtpdGVpZGFzZWtpXCA7CivpoqjntIDntIrkubEgPiBmdXVraWJpbnJhblwgOwor5biC5Y+C5LqL5LyaID4gc2hpc2FuamlrYWlcIDsKK+iomOaGtuijhee9riA+IGtpb2t1c291Y2hpXCA7Civpm7vmsJfkvJ3lsI4gPiBkZW5raWRlbmRvdVwgOwor5rW35aSW5rS+5YW1ID4ga2FpZ2FpaGFoZWlcIDsKK+WkqeizpuS6uuaoqSA+IHRlbnB1amlua2VuXCA7Civmh7jlnoLpgYvli5UgPiBrZW5zdWl1bmRvdVwgOwor56We56eY5Li7576pID4gc2hpbnBpc2h1Z2lcIDsKK+mBoOaFruS8mumHiCA+IGVucnlvZXNoYWt1XCA7Civmmpflj7fmiYvms5UgPiBhbmdvdXNodWhvdVwgOwor6YGL6Ly45aSn6IejID4gdW4nJ3l1ZGFpamluXCA7CivpnZ7oq5bnkIbnmoQgPiBoaXJvbnJpdGVraVwgOwor5Y+z57+85Zuj5L2TID4gdXlva3VkYW50YWlcIDsKK+S/neWBpeihm+eUnyA+IGhva2VuJydlaXNlaVwgOwor55uX5ZOB5pWF6LK3ID4gdG91aGlua29iYWlcIDsKK+mdmeatoui7jOmBkyA+IHNlaXNoaWtpZG91XCA7Civmhbbmh4nnvqnlob4gPiBrZWlvdWdpanVrdVwgOwor5b+r5YiA5Lmx6bq7ID4ga2FpdG91cmFubWFcIDsKK+iHs+i/kei3nemboiA+IHNoaWtpbmt5b3JpXCA7CivmkI3lrrPkv53pmbogPiBzb25nYWlob2tlblwgOwor5qeL5oiQ6KaB57SgID4ga291c2VpeW91c29cIDsKK+WNlOitsOS6i+mghSA+IGt5b3VnaWppa291XCA7CivoiJ7lj7Dkv7PlhKogPiBidXRhaWhhaXl1dVwgOwor5Y2x5qmf5LiA6auqID4ga2lraWlwcGF0c3VcIDsKK+WMu+WtpumbkeiqjCA+IGlnYWt1emFzc2hpXCA7CivniankvqHmsLTmupYgPiBidWtrYXN1aWp1blwgOwor6LWk5Y2B5a2X6ZmEID4gc2VraWp1dWppZnVcIDsKK+aJtumkiuWutuaXjyA+IGZ1eW91a2F6b2t1XCA7Civnq4vmhrLmlL/msrsgPiByaWtrZW5zZWlqaVwgOwor5Lq65bel6IeT5ZmoID4gamlua291em91a2lcIDsKK+elreaUv+S4gOiHtCA+IHNhaXNlaWl0Y2hpXCA7CivkuI3oqIDlrp/ooYwgPiBmdWdlbmppa2tvdVwgOwor5LuV5LqL6YOo5bGLID4gc2hpZ290b2JleWFcIDsKK+aIkOS6uuaYoOeUuyA+IHNlaWppbicnZWlnYVwgOwor6Ieq55Sx5Za25qWtID4gaml5dXVlaWd5b3VcIDsKK+aomea6luiqpOW3riA+IGh5b3VqdW5nb3NhXCA7CivkubPlhZDohJrmsJcgPiBueXV1amlrYWtrZVwgOwor6LuN6ZyA5bel5aC0ID4gZ3VuanVrb3Vqb3VcIDsKK+ebuOWKoOW5s+WdhyA+IHNvdWthaGVpa2luXCA7Civnspfoo73kubHpgKAgPiBzb3NlaXJhbnpvdVwgOwor5b6h5ZCN5b6h55K9ID4gZ3lvbWVpZ3lvamlcIDsKK+aWh+ayu+S4u+e+qSA+IGJ1bmNoaXNodWdpXCA7Civoh6rnhLbmt5jmsbAgPiBzaGl6ZW50b3V0YVwgOwor5a625a6F5o2c5p+7ID4ga2F0YWt1c291c2FcIDsKK+aXouaIkOamguW/tSA+IGtpc2VpZ2FpbmVuXCA7CivmlbTlgpnlt6XloLQgPiBzZWliaWtvdWpvdVwgOwor5a++56m656Cy54GrID4gdGFpa3V1aG91a2FcIDsKK+a7nuepuuaZgumWkyA+IHRhaWt1dWppa2FuXCA7Civosr/mmJPotaTlrZcgPiBib3Vla2lha2FqaVwgOwor5LiA6KiA5bGF5aOrID4gaWNoaWdlbmtvamlcIDsKK+Wxi+S4iuW6reWckiA+IG9rdWpvdXRlaWVuXCA7Civpn7Plo7DooajoqJggPiBvbnNlaWh5b3VraVwgOwor5a+p576O5Li7576pID4gc2hpbmJpc2h1Z2lcIDsKK+W/nOeUqOWVj+mhjCA+IG91eW91bW9uZGFpXCA7CivkupLmgbXplqLnqI4gPiBnb2tlaWthbnplaVwgOwor6Luf5oCn5LiL55azID4gbmFuc2VpZ2VrYW5cIDsKK+Wbveiqnui+nuWFuCA+IGtva3Vnb2ppdGVuXCA7Civlhazoqo3lgJnoo5wgPiBrb3VuaW5rb3Vob1wgOwor55Sf5bm05pyI5pelID4gc2VpbmVuZ2FwcGlcIDsKK+Wlh+etlue4puaoqiA+IGtpc2FrdWp1dW91XCA7CivlhYnlrabmloflrZcgPiBrb3VnYWt1bW9qaVwgOwor5YGc6LuK5pmC6ZaTID4gdGVpc2hhamlrYW5cIDsKK+WFseWSjOaUv+ayuyA+IGt5b3V3YXNlaWppXCA7Civlm73luqvlgrXmqKkgPiBrb2trb3NhaWtlblwgOwor5aOw5biv5qih5YaZID4gc2VpdGFpbW9zaGFcIDsKK+acgOWkp+mZkOW6piA+IHNhaWRhaWdlbmRvXCA7CivlhavliIbpn7PnrKYgPiBoYWNoaWJ1b25wdVwgOwor5Luu5oOz56m66ZaTID4ga2Fzb3VrdXVrYW5cIDsKK+W5s+aIkOaZguS7oyA+IGhlaXNlaWppZGFpXCA7CivliKnnm4rnpL7kvJogPiByaWVraXNoYWthaVwgOwor5a625bqt6Kiq5ZWPID4ga2F0ZWlob3Vtb25cIDsKK+iWhOWIqeWkmuWjsiA+IGhha3VyaXRhYmFpXCA7CivmsJHkuLvkuLvnvqkgPiBtaW5zaHVzaHVnaVwgOwor5aWz5oCn5ZCN6KmeID4gam9zZWltZWlzaGlcIDsKK+aEm+aGjuS9teWtmCA+IGFpem91aGVpc29uXCA7Civlj43lsITkvZznlKggPiBoYW5zaGFzYXlvdVwgOwor5pyJ5LqL56uL5rOVID4geXV1amlyaXBwb3VcIDsKK+eZuuWjsOWZqOWumCA+IGhhc3NlaWtpa2FuXCA7CivlqZrnpLzooaPoo4UgPiBrb25yZWlpc2hvdVwgOwor5Lit5aSu56qB56C0ID4gY2h1dW91dG9wcGFcIDsKK+S4iemgreaUv+ayuyA+IHNhbnRvdXNlaWppXCA7CivljbHpmbrlnLDluK8gPiBraWtlbmNoaXRhaVwgOwor5YyW5a2m5L2c55SoID4ga2FnYWt1c2F5b3VcIDsKK+eEoemWk+WcsOeNhCA+IG11Z2Vuamlnb2t1XCA7CivlvoDlvqnliIfnrKYgPiBvdWZ1a3VraXBwdVwgOwor5a2Y5Zyo55CG55SxID4gc29uemFpcml5dXVcIDsKK+mdnuekvuS6pOeahCA+IGhpamFrb3V0ZWtpXCA7CivlsIHlu7rliLbluqYgPiBob3VrZW5zZWlkb1wgOwor5Lq66Lqr5LqL5pWFID4gamluc2hpbmppa29cIDsKK+WFrOmWi+aNnOafuyA+IGtvdWthaXNvdXNhXCA7CivmiJHnlLDlvJXmsLQgPiBnYWRlbicnaW5zdWlcIDsKK+WLleS9nOiomOmMsiA+IGRvdXNha2lyb2t1XCA7CivmiJDlsaTngavlsbEgPiBzZWlzb3VrYXphblwgOwor5Yip55uK6YWN5b2TID4gcmlla2loYWl0b3VcIDsKK+S4gOaJgOaHuOWRvSA+IGlzc2hva2VubWVpXCA7CivmupDms4noqrLnqI4gPiBnZW5zZW5rYXplaVwgOwor5pS/5rK757WQ56S+ID4gc2VpamlrZXNzaGFcIDsKK+mojummrOawkeaXjyA+IGtpYmFtaW56b2t1XCA7CivpmpTkuJbpgbrkvJ0gPiBrYWt1c2VpaWRlblwgOwor5Y+k6YGT5YW35bGLID4gZnVydWRvdWd1eWFcIDsKK+WQueWlj+alveWZqCA+IHN1aXNvdWdha2tpXCA7CivmqZ/pioPmjoPlsIQgPiBraWp1dXNvdXNoYVwgOwor5q2m5a625bGL5pW3ID4gYnVrZXlhc2hpa2lcIDsKK+edoeecoOaZgumWkyA+IHN1aW1pbmppa2FuXCA7CivnhKHoqJjlkI3moKogPiBtdWtpbWVpa2FidVwgOwor5LqL5YuZ57eP6ZW3ID4gamltdXNvdWNob3VcIDsKK+S4u+ayu+WKueiDvSA+IHNodWppa291bm91XCA7CivlpKnmtKXlvqHnpZYgPiBhbWF0c3VtaW95YVwgOwor5rCX6LGh6KGb5pifID4ga2lzaG91ZWlzZWlcIDsKK+acieWKueacn+mZkCA+IHl1dWtvdWtpZ2VuXCA7CivovrLlpbTop6PmlL4gPiBub3Vkb2thaWhvdVwgOwor5b+D6IeT6bq755e6ID4gc2hpbnpvdW1haGlcIDsKK+mFlOeUn+WkouatuyA+IHN1aXNlaW11c2hpXCA7CivmnInlirnmnJ/plpMgPiB5dXVrb3VraWdlblwgOwor54Sh5rOV5Zyw5bivID4gbXVob3VjaGl0YWlcIDsKK+ihl+mgreWLn+mHkSA+IGdhaXRvdWJva2luXCA7CivojZLllJDnhKHnqL0gPiBrb3V0b3VtdWtlaVwgOwor5qCE6aSK5LiN6LazID4gZWl5b3VmdXNva3VcIDsKK+WQjeiqieW4guawkSA+IG1laXlvc2hpbWluXCA7Civou43kuovlkIznm58gPiBndW5qaWRvdW1laVwgOwor5pyJ5Yq55L2c55SoID4geXV1a291c2F5b3VcIDsKK+WFiOmBo+mDqOmaiiA+IHNlbmtlbmJ1dGFpXCA7CivlmInoqIDlloTooYwgPiBrYWdlbnplbmtvdVwgOwor5ZCI5ZCM5Lya6K2wID4gZ291ZG91a2FpZ2lcIDsKK+i1t+atu+WbnueUnyA+IGtpc2hpa2Fpc2VpXCA7CivpgI/oppbnlLvms5UgPiB0b3VzaGlnYWhvdVwgOwor54Sh6Yqt5peF6KGMID4gbXVzZW5yeW9rb3VcIDsKK+S/neWuieioreWCmSA+IGhvYW5zZXRzdWJpXCA7CivlhoXpg6jpl5jkuokgPiBuYWlidXRvdXNvdVwgOwor5LiN5q2j6J6N6LOHID4gZnVzZWl5dXVzaGlcIDsKK+a8ouiLsei+nuWFuCA+IGthbicnZWlqaXRlblwgOwor6aCY5Zyf5L+d5YWoID4gcnlvdWRvaG96ZW5cIDsKK+eEoeS6i+aBr+eBvSA+IGJ1amlzb2t1c2FpXCA7CivmjIflkI3miYvphY0gPiBzaGltZWl0ZWhhaVwgOwor6YGK6Kan6aOb6KGMID4geXV1cmFuaGlrb3VcIDsKK+WPl+mok+WcsOeNhCA+IGp1a2Vuamlnb2t1XCA7CivorablgpnlvLfljJYgPiBrZWliaWt5b3VrYVwgOwor5b+D55CG5Li7576pID4gc2hpbnJpc2h1Z2lcIDsKK+mbouWpmuiotOionyA+IHJpa29uc29zaG91XCA7Civpn7PoqJPntKLlvJUgPiBvbmt1bnNha3VpblwgOwor5Y2x6Zm65Zug5a2QID4ga2lrZW4nJ2luc2hpXCA7CivotoXpgY7li6Tli5kgPiBjaG91a2FraW5tdVwgOwor6YCy5q2p5Li7576pID4gc2hpbnBvc2h1Z2lcIDsKK+S/neWFqOS8muekviA+IGhvemVua2Fpc2hhXCA7Civoh6rlt7HntLnku4sgPiBqaWtvc2hvdWthaVwgOwor5Lq66YGT5pSv5o+0ID4gamluZG91c2hpZW5cIDsKK+W4jOWwkeS+oeWApCA+IGtpc2hvdWthY2hpXCA7Civlqabkurrnp5HlraYgPiBmdWppbmthZ2FrdVwgOwor5pSv5o+05Zuj5L2TID4gc2hpZW5kYW50YWlcIDsKK+Wuh+WumeepuumWkyA+IHVjaHV1a3V1a2FuXCA7CivljJbnsqfnhYnnk6YgPiBrZXNob3VyZW5nYVwgOwor5pep5pyf55m66KaLID4gc291a2loYWtrZW5cIDsKK+iHqueEtuayu+eZkiA+IHNoaXplbmNoaXl1XCA7CivkuI3lj6/nn6XnmoQgPiBmdWthY2hpdGVraVwgOwor6Ki06Kif6LK755SoID4gc29zaG91aGl5b3VcIDsKK+eBveWus+S/nemZuiA+IHNhaWdhaWhva2VuXCA7CivlpKflmajmmanmiJAgPiB0YWlraWJhbnNlaVwgOwor5pWw54+g5LiA6YCjID4ganV6dWljaGlyZW5cIDsKK+aWh+aYjumWi+WMliA+IGJ1bm1laWthaWthXCA7Civlj43li5XkuLvnvqkgPiBoYW5kb3VzaHVnaVwgOwor5pS/5bqc6auY5a6YID4gc2VpZnVrb3VrYW5cIDsKK+S6rOmDveW6nOitpiA+IGt5b3V0b2Z1a2VpXCA7Civli6TnjovmlJjlpLcgPiBraW4nJ25vdWpvdWlcIDsKK+epuuaMuumDqOmaiiA+IGt1dXRlaWJ1dGFpXCA7CivlpJrlo6vmuIjmuIggPiB0YXNoaXNlaXNlaVwgOwor5LiN5Zmo55So6ICFID4gYnVraXlvdW1vbm9cIDsKK+WFteermeWfuuWcsCA+IGhlaXRhbmtpY2hpXCA7CivmnInnkIbplqLmlbAgPiB5dXVyaWthbnN1dVwgOwor5L2O5b6K6Laj5ZGzID4gdGVpa2Fpc2h1bWlcIDsKK+S6uuW3pemgreiEsyA+IGppbmtvdXp1bm91XCA7CivljYHlha3pn7PnrKYgPiBqdXVyb2t1b25wdVwgOwor5aWH5oOz5aSp5aSWID4ga2lzb3V0ZW5nYWlcIDsKK+WGheWuueimi+acrCA+IG5haXlvdW1paG9uXCA7CivmlpnnkIbpgZPlhbcgPiByeW91cmlkb3VndVwgOwor5aSn5ZyP6Iiq6LevID4gdGFpa2Vua291cm9cIDsKK+a6luWCmeeuoeWItiA+IGp1bmJpa2Fuc2VpXCA7CivkuLvohLPkvJrorbAgPiBzaHVub3VrYWlnaVwgOwor6Zmj6aCt5oyH5o+uID4gamludG91c2hpa2lcIDsKK+iHk+WZqOenu+akjSA+IHpvdWtpaXNob2t1XCA7Civln7rmnKzmpoLlv7UgPiBraWhvbmdhaW5lblwgOwor5Lya6K2w5pel56iLID4ga2FpZ2luaXR0ZWlcIDsKK+WFrOWumuWcsOS+oSA+IGtvdXRlaWNoaWthXCA7Civln7rnpI7noJTnqbYgPiBraXNva2Vua3l1dVwgOwor55Kw5aKD5rGa5p+TID4ga2Fua3lvdW9zZW5cIDsKK+eWkeW/g+aal+msvCA+IGdpc2hpbicnYW5raVwgOwor57eP55CG5aSn6IejID4gc291cmlkYWlqaW5cIDsKK+iHquW3sea6gOi2syA+IGppa29tYW56b2t1XCA7Civntbblr77kuLvnvqkgPiB6ZXR0YWlzaHVnaVwgOwor5q2j5ZGz5YCk5q61ID4gc2hvdW1pbmVkYW5cIDsKK+WAi+S6uuaVmeaOiCA+IGtvamlua3lvdWp1XCA7CivlsJHlo67msJfpi60gPiBzaG91c291a2llaVwgOwor5p2x5Lqc6Ku45Zu9ID4gdG91YXNob2tva3VcIDsKK+WWh+WPreawtOS7mSA+IHJhcHBhenVpc2VuXCA7Civlrp/ooYzlj6/og70gPiBqaWtrb3VrYW5vdVwgOwor5LqL5YmN6YGL5YuVID4gaml6ZW4nJ3VuZG91XCA7CivlpJbmnaXmgqPogIUgPiBnYWlyYWlrYW5qYVwgOwor6YG/6Zuj6KiT57e0ID4gaGluYW5rdW5yZW5cIDsKK+iyqeWjsumDqOmWgCA+IGhhbmJhaWJ1bW9uXCA7CivlirTlg43pgYvli5UgPiByb3Vkb3V1bmRvdVwgOwor5rqW5YKZ6YqA6KGMID4ganVuYmlnaW5rb3VcIDsKK+W5uee3mumBk+i3ryA+IGthbnNlbmRvdXJvXCA7CivkuI3pgI/mmI7mgKcgPiBmdXRvdW1laXNlaVwgOwor5Yqg5Zyn5rC054KJID4ga2FhdHN1c3Vpcm9cIDsKK+W5tOacn+WlieWFrCA+IG5lbmtpYm91a291XCA7Civooajpn7PmloflrZcgPiBoeW91b25tb25qaVwgOwor5oyH5ZCN5omT6ICFID4gc2hpbWVpZGFzaGFcIDsKK+e3j+WPuOS7pOmDqCA+IHNvdXNoaXJlaWJ1XCA7CivkvJ3ntbHkuLvnvqkgPiBkZW50b3VzaHVnaVwgOwor5Li76KaB6YO95biCID4gc2h1eW91dG9zaGlcIDsKK+S9jua4qeauuuiPjCA+IHRlaW9uc2Fra2luXCA7CivlpKvlqabplqLkv4IgPiBmdXVmdWthbmtlaVwgOwor5L2c5qWt5pmC6ZaTID4gc2FneW91amlrYW5cIDsKK+mdnuW4uOaJi+autSA+IGhpam91c2h1ZGFuXCA7CivlsILliLbmlL/msrsgPiBzZW5zZWlzZWlqaVwgOwor5pig55S755uj552jID4gZWlnYWthbnRva3VcIDsKK+a/g+a3oeeUu+WDjyA+IG5vdXRhbmdhem91XCA7Civnga/ngavnrqHliLYgPiB0b3VrYWthbnNlaVwgOwor6YeN6KaB5LqL6aCFID4ganV1eW91amlrb3VcIDsKK+mdnuW4uOWRvOmbhiA+IGhpam91a29zaHV1XCA7Civnq4vlgJnoo5zogIUgPiByaWtrb3Vob3NoYVwgOwor5rWE5YyW6KOF572uID4gam91a2Fzb3VjaGlcIDsKK+W+oeeUn+aGjuanmCA+IG9haW5pa3VzYW1hXCA7Civkurrlk6Hmt5jmsbAgPiBqaW4nJ2ludG91dGFcIDsKK+S6pOmAmuS6i+aVhSA+IGtvdXRzdXVqaWtvXCA7Civlm5vovKrpp4bli5UgPiB5b25yaW5rdWRvdVwgOwor5Luj55CG5YWs5L2/ID4gZGFpcmlrb3VzaGlcIDsKK+WkluWLmeWkp+iHoyA+IGdhaW11ZGFpamluXCA7Civph47miKbnoLLlhbUgPiB5YXNlbmhvdWhlaVwgOwor5Zyw5ZCN6L6e5YW4ID4gY2hpbWVpaml0ZW5cIDsKK+S4jeWLleeUo+WxiyA+IGZ1ZG91c2FuJyd5YVwgOwor5L2T5oSf5rip5bqmID4gdGFpa2FuJydvbmRvXCA7CivoprPlhYnpg73luIIgPiBrYW5rb3V0b3NoaVwgOwor5ZCM5oCn5oSb6ICFID4gZG91c2VpYWlzaGFcIDsKK+mDqOmaiuaSpOmAgCA+IGJ1dGFpdGV0dGFpXCA7CivljZTorbDkvJrlk6EgPiBreW91Z2lrYWlpblwgOwor5ZWT6JKZ6YGL5YuVID4ga2VpbW91dW5kb3VcIDsKK+S6gOeUsuaooeanmCA+IGtpa2tvdW1veW91XCA7CivooZvnlJ/nirbmhYsgPiBlaXNlaWpvdXRhaVwgOwor6Y6W5Zu95Li7576pID4gc2Frb2t1c2h1Z2lcIDsKK+WZqOeUqOiyp+S5jyA+IGtpeW91YmluYm91XCA7CivnnLznsr7nlrLlirQgPiBnYW5zZWloaXJvdVwgOwor5a6j5Lyd5qmf6ZaiID4gc2VuZGVua2lrYW5cIDsKK+S9leaZguS9leaZgiA+IGl0c3VuYW5kb2tpXCA7CivmsJHmqKnkuLvnvqkgPiBtaW5rZW5zaHVnaVwgOwor5bm05qyh57eP5LyaID4gbmVuamlzb3VrYWlcIDsKK+a4qeWPpOefpeaWsCA+IG9ua29jaGlzaGluXCA7CivnhKHlhJ/kuqTku5ggPiBtdXNob3Vrb3VmdVwgOwor55+t5pyf5omL5b2iID4gdGFua2l0ZWdhdGFcIDsKK+WGheWLmeWkp+iHoyA+IG5haW11ZGFpamluXCA7CivkuIDkuJbkuIDku6MgPiBpc3NlaWNoaWRhaVwgOwor5LqL6aCF57Si5byVID4gamlrb3VzYWt1aW5cIDsKK+aUvuWwhOe3muenkSA+IGhvdXNoYXNlbmthXCA7CivnmoflpKrlrZDlpoMgPiBrb3V0YWlzaGloaVwgOwor5aaW5oCq5aSJ5YyWID4geW91a2FpaGVuZ2VcIDsKK+WkieW9oumDqOmWgCA+IGhlbmtlaWJ1bW9uXCA7Civph47miKbnl4XpmaIgPiB5YXNlbmJ5b3VpblwgOwor5oim54G95Zyw5Yy6ID4gc2Vuc2FpY2hpa3VcIDsKK+eJueWLmeapn+mWoiA+IHRva3VtdWtpa2FuXCA7CivnoILns5blpKfmoLkgPiBzYXRvdWRhaWtvblwgOwor5Y2K5Yqg5bel5ZOBID4gaGFua2Frb3VoaW5cIDsKK+S6jOetieWIhue3miA+IG5pdG91YnVuc2VuXCA7Civmjojmpa3mmYLplpMgPiBqdWd5b3VqaWthblwgOwor5aSp56We5Zyw56WHID4gdGVuamluY2hpZ2lcIDsKK+i/veWKoOS6iOeulyA+IHRzdWlrYXlvc2FuXCA7CivpnZ7lkIjnkIbnmoQgPiBoaWdvdXJpdGVraVwgOwor5Yq06L6y5pS/5bqcID4gcm91bm91c2VpZnVcIDsKK+S4i+aEj+S4iumBlCA+IGthaWpvdXRhdHN1XCA7CivkuZfou4rmi5LlkKYgPiBqb3VzaGFreW9oaVwgOwor5rC05rSX5L6/5omAID4gc3Vpc2VuYmVuam9cIDsKK+WPjue0jeWutuWFtyA+IHNodXVub3VrYWd1XCA7CivmnKrplovlor7lnLAgPiBtaWthaWtvbmNoaVwgOwor5q2j5b2T6Ziy6KGbID4gc2VpdG91Ym91ZWlcIDsKK+WtpuenkeippumokyA+IGdha2thc2hpa2VuXCA7CivmvZzmsLTmr43oiaYgPiBzZW5zdWlib2thblwgOwor5L2/55So5L6h5YCkID4gc2hpeW91a2FjaGlcIDsKK+WumOWwiuawkeWNkSA+IGthbnNvbm1pbnBpXCA7Civmma7pgY3mlofms5UgPiBmdWhlbmJ1bnBvdVwgOwor6YGO5Ymw5Lq65Y+jID4ga2Fqb3VqaW5rb3VcIDsKK+WHuuWFiOapn+mWoiA+IGRlc2FraWtpa2FuXCA7CivlrqPkvJ3lirnmnpwgPiBzZW5kZW5rb3VrYVwgOwor5pmC44CF5Yi744CFID4gamlqaWtva2tva3VcIDsKK+i/keS8vOioiOeulyA+IGtpbmppa2Vpc2FuXCA7CivorbfmhrLpgYvli5UgPiBnb2tlbicndW5kb3VcIDsKK+WOn+WboOe1kOaenCA+IGdlbicnaW5rZWtrYVwgOwor5Y+L6LuN6YOo6ZqKID4geXV1Z3VuYnV0YWlcIDsKK+eEoeWwveS8muekviA+IG11amluZ2Fpc2hhXCA7Civlj6Tku4rmnbHopb8gPiBrb2tvbnRvdXphaVwgOwor55yL6K235amm6ZW3ID4ga2FuZ29mdWNob3VcIDsKK+aCsuaGpOaFt+aFqCA+IGhpZnVua291Z2FpXCA7Civlj6Tku6PmlofmmI4gPiBrb2RhaWJ1bm1laVwgOwor54Sh55Sj5pS/5YWaID4gbXVzYW5zZWl0b3VcIDsKK+mBuOaMmea6luWCmSA+IHNlbmt5b2p1bmJpXCA7CivmhI/orZjkuI3mmI4gPiBpc2hpa2lmdW1laVwgOwor57WE5ZCI5Li7576pID4ga3VtaWFpc2h1Z2lcIDsKK+WAi+S9k+eZuueUnyA+IGtvdGFpaGFzc2VpXCA7Civlm5vliIbpn7PnrKYgPiBzaGlidW4nJ29ucHVcIDsKK+S9v+W+kuabuOewoSA+IHNoaXRvc2hva2FuXCA7CivlhKrmn5TkuI3mlq0gPiB5dXVqdXVmdWRhblwgOwor54WO6aSF6JKy5ZujID4gc2VuYmVpYnV0b25cIDsKK+S6iOWumuiqv+WSjCA+IHlvdGVpY2hvdXdhXCA7CivlhYjnpZbkvJ3mnaUgPiBzZW56b2RlbnJhaVwgOwor5LqL5qWt6YOo5Yi2ID4gamlneW91YnVzZWlcIDsKK+iHqOaZguWIl+i7iiA+IHJpbmppcmVzc2hhXCA7CivlrprmnJ/oqabpqJMgPiB0ZWlraXNoaWtlblwgOwor57eP5ZCI6Kqy56iOID4gc291Z291a2F6ZWlcIDsKK+mBoOmalOism+e+qSA+IGVua2FrdWtvdWdpXCA7CivmtbflupXmsrnnlLAgPiBrYWl0ZWl5dWRlblwgOwor55yf5LiA5paH5a2XID4gbWFpY2hpbW9uamlcIDsKK+mbu+ipseiqv+afuyA+IGRlbndhY2hvdXNhXCA7CivmioDooZPmj7TliqkgPiBnaWp1dHN1ZW5qb1wgOwor5YGP5ZCR5Zue6LevID4gaGVua291a2Fpcm9cIDsKK+S6iOWumue0jeeojiA+IHlvdGVpbm91emVpXCA7CivnmoflkI7pmZvkuIsgPiBrb3Vnb3VoZWlrYVwgOwor6YCj6YKm5Yi25bqmID4gcmVucG91c2VpZG9cIDsKK+mbu+awl+mbu+WtkCA+IGRlbmtpZGVuc2hpXCA7Civku6PooYzmqZ/plqIgPiBkYWlrb3VraWthblwgOwor55ay5Yq05Zuw5oaKID4gaGlyb3Vrb25wYWlcIDsKK+ebl+mbo+S/nemZuiA+IHRvdW5hbmhva2VuXCA7CivntJTnnJ/nhKHlnqIgPiBqdW5zaGlubXVrdVwgOwor5rOV5YuZ5aSn6IejID4gaG91bXVkYWlqaW5cIDsKK+WIkeS6i+WHpuWIhiA+IGtlaWppc2hvYnVuXCA7Civpp5Dou4rpgZXlj40gPiBjaHV1c2hhaWhhblwgOwor5pmC5qmf5bCa5pepID4gamlraXNob3Vzb3VcIDsKK+W5tOmHkeWfuumHkSA+IG5lbmtpbmtpa2luXCA7Civpganms5XooYzngrogPiB0ZWtpaG91a291aVwgOwor54mp6KaL6YGK5bGxID4gbW9ub21peXVzYW5cIDsKK+W+l+aEj+a6gOmdoiA+IHRva3VpbWFubWVuXCA7CivmmYLlt67lh7rli6QgPiBqaXNhc2h1a2tpblwgOwor5pS/5rK75ZWP6aGMID4gc2Vpamltb25kYWlcIDsKK+e1tuWvvuaVrOiqniA+IHpldHRhaWtlaWdvXCA7CivpjbXnm6Tmpb3lmaggPiBrZW5iYW5nYWtraVwgOwor6Ki06Kif5LqL5Lu2ID4gc29zaG91amlrZW5cIDsKK+aEj+WRs+W9ueWJsiA+IGltaXlha3V3YXJpXCA7CivkvqHmoLzlronlrpogPiBrYWtha3VhbnRlaVwgOwor5LuK5LiK6Zmb5LiLID4ga2luam91aGVpa2FcIDsKK+mbu+awl+ezu+e1sSA+IGRlbmtpa2VpdG91XCA7CivlhYzmj5vpioDooYwgPiBkYWthbmdpbmtvdVwgOwor55m+56eR5LqL5YW4ID4gaHlha2thaml0ZW5cIDsKK+WFqOS8muS4gOiHtCA+IHplbmthaWl0Y2hpXCA7CivpurvolqzmgqPogIUgPiBtYXlha3VrYW5qYVwgOwor5b+D5qmf5LiA6LuiID4gc2hpbmtpaXR0ZW5cIDsKK+eEoeWQjeaIpuWjqyA+IG11bWVpc2Vuc2hpXCA7CivllK/kuIDnhKHkuowgPiB5dWlpdHN1bXVuaVwgOwor6LKh5pS/5a6J5a6aID4gemFpc2VpYW50ZWlcIDsKK+eci+itt+WtpuagoSA+IGthbmdvZ2Fra291XCA7CivliIbpoZ7ln7rmupYgPiBidW5ydWlraWp1blwgOwor5paH5pu45YG96YCgID4gYnVuc2hvZ2l6b3VcIDsKK+WtpOi7jeWlrumXmCA+IGtvZ3VuZnVudG91XCA7CivmlbDmrKHml4XliLggPiBzdXVqaXJ5b2tlblwgOwor5ZCI5oiQ57mK57atID4gZ291c2Vpc2VuJydpXCA7CivosrTml4/mlL/msrsgPiBraXpva3VzZWlqaVwgOwor5Y2a5oSb5Li7576pID4gaGFrdWFpc2h1Z2lcIDsKK+S4gOaWieaknOaMmSA+IGlzc2Vpa2Vua3lvXCA7CivkvY7muKnovLjpgIEgPiB0ZWlvbicneXVzb3VcIDsKK+miqOWFieaYjuWqmiA+IGZ1dWtvdW1laWJpXCA7Civlvozpg6jluqfluK0gPiBrb3VidXphc2VraVwgOwor5YCL5Lq65oqV6LOHID4ga29qaW50b3VzaGlcIDsKK+S/nemZuuS8muekviA+IGhva2VuZ2Fpc2hhXCA7CivnoavljJbmsLTntKAgPiByeXV1a2FzdWlzb1wgOwor5pel5pys5YiX5bO2ID4gbmlob25yZXR0b3VcIDsKK+aIpuaZguWFrOWCtSA+IHNlbmppa291c2FpXCA7Civmtbflk6HntYTlkIggPiBrYWlpbmt1bWlhaVwgOwor5L+u6L6e55aR5ZWPID4gc2h1dWppZ2ltb25cIDsKK+azleWumuiyqOW5oyA+IGhvdXRlaWthaGVpXCA7CivkvZPlhoXlj5fnsr4gPiB0YWluYWlqdXNlaVwgOwor5qW96Kaz5Li7576pID4gcmFra2Fuc2h1Z2lcIDsKK+WFpemZouaCo+iAhSA+IG55dXVpbmthbmphXCA7CivplqLpgKPkuovpoIUgPiBrYW5yZW5qaWtvdVwgOwor5Y6f5L6h6KiI566XID4gZ2Vua2FrZWlzYW5cIDsKK+mbu+WtkOWbnui3ryA+IGRlbnNoaWthaXJvXCA7Civph43ngrnkuLvnvqkgPiBqdXV0ZW5zaHVnaVwgOwor5L6h6Zu75a2Q5bivID4ga2FkZW5zaGl0YWlcIDsKK+acieWKuemcgOimgSA+IHl1dWtvdWp1eW91XCA7Civkuovmpa3lubTluqYgPiBqaWd5b3VuZW5kb1wgOwor55u45Y+N5a6a55CGID4gc291aGFudGVpcmlcIDsKK+WFreWIhuWEgOW6pyA+IHJva3VidW5naXphXCA7CivlronlrprnirbmhYsgPiBhbnRlaWpvdXRhaVwgOwor5rCR5Li75pS/5rK7ID4gbWluc2h1c2VpamlcIDsKK+WMluWtpue5iue2rSA+IGthZ2FrdXNlbicnaVwgOwor57W25a++6Z+z5oSfID4gemV0dGFpb25rYW5cIDsKK+iHqueEtuegtOWjiiA+IHNoaXplbmhha2FpXCA7CivloLHpgZPmqZ/plqIgPiBob3Vkb3VraWthblwgOwor5o2V6Jmc5Lqk5o+bID4gaG9yeW9rb3VrYW5cIDsKK+S+oeWApOWIpOaWrSA+IGthY2hpaGFuZGFuXCA7CivmiYvnt7TmiYvnrqEgPiB0ZXJlbnRla3VkYVwgOwor5Zmo5qKw5L2T5pONID4ga2lrYWl0YWlzb3VcIDsKK+mkiuiAgeS/nemZuiA+IHlvdXJvdWhva2VuXCA7CivkuI3lvZPooajnpLogPiBmdXRvdWh5b3VqaVwgOwor5a6J5YWo6YGL6LuiID4gYW56ZW4nJ3VudGVuXCA7CivkuqTpmpvnr4Tlm7IgPiBrb3VzYWloYW4nJ2lcIDsKK+W/nOeUqOenkeWtpiA+IG91eW91a2FnYWt1XCA7CivkuI3mlbTlkIjkurogPiBmdXNlaWdvdWppblwgOwor5Y2Y5YWD5Yi25bqmID4gdGFuZ2Vuc2VpZG9cIDsKK+S4gOatqeWJjemAsiA+IGlwcG96ZW5zaGluXCA7Civlm73njovpmZvkuIsgPiBrb2t1b3VoZWlrYVwgOwor5pS+6YCB6KGb5pifID4gaG91c291ZWlzZWlcIDsKK+WvguWFiea1hOWcnyA+IGpha2tvdWpvdWRvXCA7CivlvoznlJ/lpKfkuosgPiBnb3Nob3VkYWlqaVwgOwor5LiJ5rCR5Li7576pID4gc2FubWluc2h1Z2lcIDsKK+awl+euoeWIh+mWiyA+IGtpa2Fuc2Vra2FpXCA7CivlgrLlsrjkuI3pgZwgPiBnb3VnYW5mdXNvblwgOwor5a6254i26ZW35Yi2ID4ga2FmdWNob3VzZWlcIDsKK+aal+m7kuaYn+mbsiA+IGFua29rdXNlaXVuXCA7Civov5Hku6Plm73lrrYgPiBraW5kYWlrb2trYVwgOwor5YmN6YCU5pyJ5pybID4gemVudG95dXVib3VcIDsKK+mfs+alveeQhuirliA+IG9uZ2FrdXJpcm9uXCA7Civlp5ToqJfosqnlo7IgPiBpdGFrdWhhbmJhaVwgOwor5LiJ5a+S5Zub5ripID4gc2Fua2Fuc2hpb25cIDsKK+iyp+S5j+aJgOW4ryA+IGJpbmJvdWpvdGFpXCA7CivlvqHkvL3ojYnlrZAgPiBvdG9naXpvdXNoaVwgOwor56We5aWI5bed55yMID4ga2FuYWdhd2FrZW5cIDsKK+i8v+irluiqv+afuyA+IHlvcm9uY2hvdXNhXCA7Civpm7vmsJfoo4Xnva4gPiBkZW5raXNvdWNoaVwgOwor5Zyw5pa56K2w5LyaID4gY2hpaG91Z2lrYWlcIDsKK+ijheeUsumDqOmaiiA+IHNvdWtvdWJ1dGFpXCA7CivkuI3lj6/lhaXmgKcgPiBmdWthbnl1dXNlaVwgOwor5Y2X5Lqs5pyo57a/ID4gbmFua2lubW9tZW5cIDsKK+WNsOixoeS4u+e+qSA+IGluc2hvdXNodWdpXCA7CivlpJrlo6vmuIjjgIUgPiB0YXNoaXNlaXNlaVwgOwor5LiA5by15LiA5bybID4gaXRjaG91aXNzaGlcIDsKK+WMuumWk+WIl+i7iiA+IGt1a2FucmVzc2hhXCA7Civnm7jmgJ3nm7jmhJsgPiBzb3VzaGlzb3VhaVwgOwor6Iiq56m65Z+65ZywID4ga291a3V1a2ljaGlcIDsKK+ebo+afu+iomOmMsiA+IGthbnNha2lyb2t1XCA7CivmioDooZPnp7vou6IgPiBnaWp1dHN1aXRlblwgOwor55Sj5YWQ5Yi26ZmQID4gc2FuamlzZWlnZW5cIDsKK+mjveWSjOeKtuaFiyA+IGhvdXdham91dGFpXCA7Civnn6Xog73mpJzmn7sgPiBjaGlub3VrZW5zYVwgOwor5a2k5b2x5oKE54S2ID4ga29laXNob3V6ZW5cIDsKK+S6lOeoruertuaKgCA+IGdvc2h1a3lvdWdpXCA7Civlm6PkvZPkv53pmbogPiBkYW50YWlob2tlblwgOwor5aeJ5aa56YO95biCID4gc2hpbWFpdG9zaGlcIDsKK+S4jemAmueuh+aJgCA+IGZ1dHN1dWthc2hvXCA7CivnoLTpgqrpoZXmraMgPiBoYWpha2Vuc2hvdVwgOwor5pS/5rK75Zuj5L2TID4gc2VpamlkYW50YWlcIDsKK+S4gOWWnOS4gOaGgiA+IGlra2lpY2hpeXV1XCA7Civmupblgpnlkb3ku6QgPiBqdW5iaW1laXJlaVwgOwor5Y+X6aiT56eR55uuID4ganVrZW5rYW1va3VcIDsKK+acqOeuoealveWZqCA+IG1va2thbmdha2tpXCA7CivkuK3pq5jpn7Ppg6ggPiBjaHV1a291b25idVwgOwor5Y+L5oSb57WQ5amaID4geXV1YWlrZWtrb25cIDsKK+a1t+i7jeWfuuWcsCA+IGthaWd1bmtpY2hpXCA7Civpm7vlrZDntKDlrZAgPiBkZW5zaGlzb3NoaVwgOwor5oSb5Zu96YGL5YuVID4gYWlrb2t1dW5kb3VcIDsKK+S6uuaWh+WcsOeQhiA+IGppbm1vbmNoaXJpXCA7CivlirTlg43kuonorbAgPiByb3Vkb3Vzb3VnaVwgOwor5oOF5aCx5Yem55CGID4gam91aG91c2hvcmlcIDsKK+WPr+Wkieizh+acrCA+IGthaGVuc2hpaG9uXCA7Civngrrmm7/lt67nm4ogPiBrYXdhc2VzYWVraVwgOwor6KqY5ouQ5LqL5Lu2ID4geXV1a2FpamlrZW5cIDsKK+S4ieWkp+mDveW4giA+IHNhbmRhaXRvc2hpXCA7CivmiYDopoHmmYLplpMgPiBzaG95b3VqaWthblwgOwor5aWz5qip6YGL5YuVID4gam9rZW4nJ3VuZG91XCA7CivliIbmlaPlh6bnkIYgPiBidW5zYW5zaG9yaVwgOwor6LWw6KGM5Y+v6IO9ID4gc291a291a2Fub3VcIDsKK+a1geiogOmjm+iqniA+IHJ5dXVnZW5oaWdvXCA7CivkuIDmlrDntIDlhYMgPiBpc3NoaW5raWdlblwgOwor5b6S5omL5L2T5pONID4gdG9zaHV0YWlzb3VcIDsKK+WwgeW7uuS4u+e+qSA+IGhvdWtlbnNodWdpXCA7Civlj5fpqJPmiKbkuokgPiBqdWtlbnNlbnNvdVwgOwor5Ye66Zuy5aSn56S+ID4gaXp1bW90YWlzaGFcIDsKK+aoqemWgOWLouWutiA+IGtlbm1vbnNlaWthXCA7CivnhKHnt5rmk43nuKYgPiBtdXNlbnNvdWp1dVwgOwor5YCf5a625LqJ6K2wID4gc2hha2thc291Z2lcIDsKK+Wuh+WumeenkeWtpiA+IHVjaHV1a2FnYWt1XCA7Civlj6Tlhbjoirjog70gPiBrb3RlbmdlaW5vdVwgOwor6LGq6I+v57Wi54ibID4gZ291a2FrZW5yYW5cIDsKK+a8ouiLseWtl+WFuCA+IGthbicnZWlqaXRlblwgOwor5amm5Lq66YGL5YuVID4gZnVqaW4nJ3VuZG91XCA7CivkuI3li5XmmI7njosgPiBmdWRvdW15b3VvdVwgOwor5L2T5aSW5Y+X57K+ID4gdGFpZ2FpanVzZWlcIDsKK+WLpOWLmeW5tOmZkCA+IGtpbm11bmVuZ2VuXCA7CivmuoDloLTkuIDoh7QgPiBtYW5qb3VpdGNoaVwgOwor5YmN5LiW55Sf5a2YID4gemVuc2VzZWl6b25cIDsKK+S8muioiOW5tOW6piA+IGthaWtlaW5lbmRvXCA7CivkuIfokYnku67lkI0gPiBtYW4nJ3lvdWdhbmFcIDsKK+WCjeiBtOmaj+aEjyA+IGJvdWNob3V6dWlpXCA7Civntbblr77lpJrmlbAgPiB6ZXR0YWl0YXN1dVwgOwor57SF55m96Kmm5ZCIID4ga291aGFrdWppYWlcIDsKK+S8muioiOebo+afuyA+IGthaWtlaWthbnNhXCA7CivlhavntJjkuIDlrocgPiBoYWtrb3VpY2hpdVwgOwor6Iie5Y+w6KOF572uID4gYnV0YWlzb3VjaGlcIDsKK+S6i+WLmemVt+WumCA+IGppbXVjaG91a2FuXCA7CivkuIDoiKznpL7kvJogPiBpcHBhbnNoYWthaVwgOwor5pel5bid5pmC5LujID4gbml0dGVpamlkYWlcIDsKK+eZu+Wdgui7iue3miA+IHRvaGFuc2hhc2VuXCA7CivkuJbnlYzmnIDlpKcgPiBzZWthaXNhaWRhaVwgOwor5oyH5bCO5Y6f55CGID4gc2hpZG91Z2VucmlcIDsKK+mAoOasoemhm+aymyA+IHpvdWppdGVucGFpXCA7CivoiKrnqbrnrqHnkIYgPiBrb3VrdXVrYW5yaVwgOwor5oSf5p+T57WM6LevID4ga2Fuc2Vua2Vpcm9cIDsKK+S6jOetiei7jeabuSA+IG5pdG91Z3Vuc291XCA7CivpmLLngavloZfmlpkgPiBib3VrYXRvcnlvdVwgOwor6Ieq57iE6Ieq57ibID4gamlqb3VqaWJha3VcIDsKK+mAlOS4reS4i+i7iiA+IHRvY2h1dWdlc2hhXCA7CivnhY7ppIXluIPlm6MgPiBzZW5iZWlidXRvblwgOwor55Kw5aKD5L+d6K23ID4ga2Fua3lvdWhvZ29cIDsKK+WYmOeZuuimi+WZqCA+IHVzb2hha2tlbmtpXCA7CivpnaLkvJrmmYLplpMgPiBtZW5rYWlqaWthblwgOwor6YeN5qmf6Zai6YqDID4ganV1a2lrYW5qdXVcIDsKK+azleahiOWvqeitsCA+IGhvdWFuc2hpbmdpXCA7Civoh6rli5XliLblvqEgPiBqaWRvdXNlaWd5b1wgOwor5YCL5Lq65oyH5bCOID4ga29qaW5zaGlkb3VcIDsKK+iHqueEtueZuueBqyA+IHNoaXplbmhha2thXCA7CivkuLvli5nlpKfoh6MgPiBzaHVtdWRhaWppblwgOwor55+t5pyf5rG65oimID4gdGFua2lrZXNzZW5cIDsKK+iogOiqnumBi+eUqCA+IGdlbmdvdW4nJ3lvdVwgOwor57KX6KO95r+r6YCgID4gc29zZWlyYW56b3VcIDsKK+WNsemZuuaAneaDsyA+IGtpa2Vuc2hpc291XCA7Civnqbrln5/nrqHnkIYgPiBrdXVpa2lrYW5yaVwgOwor5b6h5q6/5aWz5LitID4gZ290ZW5qb2NodXVcIDsKK+mao+S/neS6i+alrSA+IHJpbnBvamlneW91XCA7CivlkIjmhI/lv4PkuK0gPiBnb3Vpc2hpbmp1dVwgOwor5LiW55WM6KiY6YyyID4gc2VrYWlraXJva3VcIDsKK+WfuuacrOadoeS7tiA+IGtpaG9uam91a2VuXCA7CivovrLmsJHkuIDmj4YgPiBub3VtaW4nJ2lra2lcIDsKK+WJjeS7o+acquiBniA+IHplbmRhaW1pbW9uXCA7CivopIflkIjmsZrmn5MgPiBmdWt1Z291b3NlblwgOwor57W25a++6Zu25bqmID4gemV0dGFpcmVpZG9cIDsKK+ani+aIkOWPr+iDvSA+IGtvdXNlaWthbm91XCA7CivkuIDkurroiJ7lj7AgPiBoaXRvcmlidXRhaVwgOwor55qu5LiL57WE57mUID4gaGlrYXNvc2hpa2lcIDsKK+WcsOS4i+izh+a6kCA+IGNoaWthc2hpZ2VuXCA7Civnmb3ljJblgIvkvZMgPiBoYWt1a2Frb3RhaVwgOwor6Zu76Kmx5Zue57eaID4gZGVud2FrYWlzZW5cIDsKK+S4jeato+WSrOWQiCA+IGZ1c2Vpa291Z291XCA7Civnvo7lrrnkvZPmk40gPiBiaXlvdXRhaXNvdVwgOwor5Y2U6K2w6Zui5amaID4ga3lvdWdpcmlrb25cIDsKK+a4qeaaluWJjee3miA+IG9uZGFuemVuc2VuXCA7CivmlrDopo/kv53nrqEgPiBzaGlua2lob2thblwgOwor5LiA6LKr55Wq5Y+3ID4gaWtrYW5iYW5nb3VcIDsKK+ePvuihjOazleimjyA+IGdlbmtvdWhvdWtpXCA7CivnpZblm73lvqnluLAgPiBzb2tva3VmdWtraVwgOwor5ZCr5rC054Kt57SgID4gZ2Fuc3VpdGFuc29cIDsKK+WKtOWDjeaZgumWkyA+IHJvdWRvdWppa2FuXCA7Civngrrmm7/nm7jloLQgPiBrYXdhc2Vzb3ViYVwgOwor5LiW55WM5LiA5ZGoID4gc2VrYWlpc3NodXVcIDsKK+WMu+eZguazleS6uiA+IGlyeW91aG91amluXCA7CivpvJPoiJ7mv4DlirEgPiBrb2J1Z2VraXJlaVwgOwor5pmC5pyf5bCa5pepID4gamlraXNob3Vzb3VcIDsKK+eykuW6puWIhuW4gyA+IHJ5dXVkb2J1bnB1XCA7CivmipXkuIvos4fmnKwgPiB0b3VrYXNoaWhvblwgOwor55So5oSP5ZGo5YiwID4geW91aXNodXV0b3VcIDsKK+WGheeHg+apn+mWoiA+IG5haW5lbmtpa2FuXCA7CivpmLLmsLTliqDlt6UgPiBib3VzdWlrYWtvdVwgOwor5YCL5Lq65raI6LK7ID4ga29qaW5zaG91aGlcIDsKK+S7ruaAp+i/keimliA+IGthc2Vpa2luc2hpXCA7CivlsIrnjovmlJjlpLcgPiBzb24nJ25vdWpvdWlcIDsKK+epuuawl+S8neafkyA+IGt1dWtpZGVuc2VuXCA7CivlubzlubTmmYLku6MgPiB5b3VuZW5qaWRhaVwgOwor56S+5Lya5b6p5biwID4gc2hha2FpZnVra2lcIDsKK+mbu+awl+ijveWTgSA+IGRlbmtpc2VpaGluXCA7CivmmYLmmYLliLvliLsgPiBqaWppa29ra29rdVwgOwor5LiA6LKr5L2c5qWtID4gaWtrYW5zYWd5b3VcIDsKK+a7nuWcqOacn+mWkyA+IHRhaXphaWtpa2FuXCA7CivnhKHlvaLosqHnlKMgPiBtdWtlaXphaXNhblwgOwor54Sh5pat6Lui6LyJID4gbXVkYW50ZW5zYWlcIDsKK+Wdh+ihoeS6iOeulyA+IGtpbmtvdXlvc2FuXCA7Civku5jluK/mnaHku7YgPiBmdXRhaWpvdWtlblwgOwor6LuN5LqL5bel5aC0ID4gZ3Vuamlrb3Vqb3VcIDsKK+acieWKueaVsOWtlyA+IHl1dWtvdXN1dWppXCA7Civoh43kuIvkuLnnlLAgPiBzZWlrYXRhbmRlblwgOwor6Kmm55So5pyf6ZaTID4gc2hpeW91a2lrYW5cIDsKK+WMluWtpuWkieWMliA+IGthZ2FrdWhlbmthXCA7Civoh6rli5Xou4rnqI4gPiBqaWRvdXNoYXplaVwgOwor6KiA6Kqe6YGT5patID4gZ29uZ29kb3VkYW5cIDsKK+aLheS/neeJqeaoqSA+IHRhbnBvYnVra2VuXCA7Civllrbmpa3mmYLplpMgPiBlaWd5b3VqaWthblwgOwor5oSb5aa75byB5b2TID4gYWlzYWliZW50b3VcIDsKK+e+jueahOWrjOaCqiA+IGJpdGVraWtlbicnb1wgOwor5LiJ5Y2D5LiW55WMID4gc2FuemVuc2VrYWlcIDsKK+WkmumHjeaUvumAgSA+IHRhanV1aG91c291XCA7Civkuozph43lpJbkuqQgPiBuaWp1dWdhaWtvdVwgOwor5LqI5YKZ5bel5L2cID4geW9iaWtvdXNha3VcIDsKK+iCseaOm+akheWtkCA+IGhpamlrYWtlaXN1XCA7Civnn63ms6LmlL7pgIEgPiB0YW5wYWhvdXNvdVwgOwor6aKo5YWJ57W25L2zID4gZnV1a291emVra2FcIDsKK+S4u+aDheS4u+e+qSA+IHNodWpvdXNodWdpXCA7CivooYzli5XkuLvnvqkgPiBrb3Vkb3VzaHVnaVwgOwor6Ieq5YiG6Ieq6LqrID4gamlidW5qaXNoaW5cIDsKK+WknOWFieWhl+aWmSA+IHlha291dG9yeW91XCA7CivluLDnhKHku67oqqwgPiBraW11a2FzZXRzdVwgOwor5biC5aC05Y6f55CGID4gc2hpam91Z2VucmlcIDsKK+S6rOa7i+WcsOaWuSA+IGtlaWppY2hpaG91XCA7CivlpKfnvqnlkI3liIYgPiB0YWlnaW1laWJ1blwgOwor5ZG85ZC46YGL5YuVID4ga29reXV1dW5kb3VcIDsKK+ieuuaXi+majuautSA+IHJhc2Vua2FpZGFuXCA7Civoi7Hoqp7mlZnogrIgPiBlaWdva3lvdWlrdVwgOwor6LGh54mZ5rW35bK4ID4gem91Z2VrYWlnYW5cIDsKK+aXpeacrOiEs+eCjiA+IG5paG9uJydub3VlblwgOwor5ZKM6a2C5ryi5omNID4gd2Frb25rYW5zYWlcIDsKK+e1jOWWtuWGjeW7uiA+IGtlaWVpc2Fpa2VuXCA7CivohLPkuIvlnoLkvZMgPiBub3VrYXN1aXRhaVwgOwor5Yuf6YeR6YGL5YuVID4gYm9raW4nJ3VuZG91XCA7CivliLvoi6bli4nlirEgPiBrb2trdWJlbnJlaVwgOwor5pei5ama55S35oCnID4ga2lrb25kYW5zZWlcIDsKK+ayu+awtOW3peS6iyA+IGNoaXN1aWtvdWppXCA7Civml6XmnKzkurroq5YgPiBuaWhvbmppbnJvblwgOwor6LuN5LqL5YWs5YK1ID4gZ3Vuamlrb3VzYWlcIDsKK+WNgeS6uuWNgeiJsiA+IGp1dW5pbnRvaXJvXCA7CivnhKHphY3kvJrnpL4gPiBtdWhhaWdhaXNoYVwgOwor5a625peP5omL5b2TID4ga2F6b2t1dGVhdGVcIDsKK+e+hemHneebpOW6pyA+IHJhc2hpbmJhbnphXCA7Civnpo/npYnmqZ/lmaggPiBmdWt1c2hpa2lraVwgOwor5pqr5a6a5LqI566XID4gemFudGVpeW9zYW5cIDsKK+iHquiyu+WHuueJiCA+IGppaGlzaHVwcGFuXCA7CivluLjnlKjmvKLlrZcgPiBqb3V5b3VrYW5qaVwgOwor546L5L6v6LK05pePID4gb3Vrb3VraXpva3VcIDsKK+S6uuS9k+aooeWeiyA+IGppbnRhaW1va2VpXCA7Civml6Xopb/ovp7lhbggPiBuaXNzZWlqaXRlblwgOwor5oSf5oOF56e75YWlID4ga2Fuam91aW55dXVcIDsKK+WcsOaWueertummrCA+IGNoaWhvdWtlaWJhXCA7CivntYzmuIjlirnmnpwgPiBrZWl6YWlrb3VrYVwgOwor5rCR5LqL6Ki06KifID4gbWluamlzb3Nob3VcIDsKK+WMluWtpuiomOWPtyA+IGthZ2FrdWtpZ291XCA7Civlj4LliqDmhI/orZggPiBzYW5rYWlzaGlraVwgOwor5oim5pmC5L2T5Yi2ID4gc2Vuaml0YWlzZWlcIDsKK+iHqueUseW4guWgtCA+IGppeXV1c2hpam91XCA7CivlhrfmiL/lrozlgpkgPiByZWlib3VrYW5iaVwgOwor6Ieq5bex5Y+M5a++ID4gamlrb3NvdXRzdWlcIDsKK+eBq+eHteaOm+W4gyA+IGtvdGF0c3VnYWtlXCA7CivluIzmnJvkvqHmoLwgPiBraWJvdWtha2FrdVwgOwor6YG45a++5pys6YOoID4gc2VudGFpaG9uYnVcIDsKK+WFiOmgreaJk+iAhSA+IHNlbnRvdWRhc2hhXCA7CivlkI3liY3nqbrplpMgPiBuYW1hZWt1dWthblwgOwor5rWF6I2J5rW36IuUID4gYXNha3VzYW5vcmlcIDsKK+S6i+alreacrOmDqCA+IGppZ3lvdWhvbmJ1XCA7CivnkIboq5bpl5jkuokgPiByaXJvbnRvdXNvdVwgOwor5Lq65Y+j5aKX5YqgID4gamlua291em91a2FcIDsKK+WkluS6pOi+nuS7pCA+IGdhaWtvdWppcmVpXCA7CivmsI/lp5PliLbluqYgPiBzaGlzZWlzZWlkb1wgOwor57iE5paH5pmC5LujID4gam91bW9uamlkYWlcIDsKK+S4lueVjOWkp+aIpiA+IHNla2FpdGFpc2VuXCA7CivmqZ/li5XmvJTnv5IgPiBraWRvdWVuc2h1dVwgOwor6Ieq6K2m5Zuj5ZOhID4gamlrZWlkYW4nJ2luXCA7Civpm7vmsJfmirXmipcgPiBkZW5raXRlaWtvdVwgOwor6Ziy6Z+z6KOF572uID4gYm91b25zb3VjaGlcIDsKK+iyoOWCteWQiOioiCA+IGZ1c2FpZ291a2VpXCA7CivpgYrou43oqJjogIUgPiB5dXVndW5raXNoYVwgOwor5L6h5YCk5L2T57O7ID4ga2FjaGl0YWlrZWlcIDsKK+S6jOmHjee1kOWpmiA+IG5panV1a2Vra29uXCA7CivkuIDplbfkuIDnn60gPiBpdGNob3VpdHRhblwgOwor6K236YCB6Ii55ZujID4gZ29zb3VzZW5kYW5cIDsKK+eKr+ihjOePvuWgtCA+IGhhbmtvdWdlbmJhXCA7CivmhI/opovluoPlkYogPiBpa2Vua291a29rdVwgOwor5ZaE5Zug5ZaE5p6cID4gemVuJydpbnplbmthXCA7CivnhKHkurrlnLDluK8gPiBtdWppbmNoaXRhaVwgOwor57WM5Za26Lui5o+bID4ga2VpZWl0ZW5rYW5cIDsKK+iyqeWjsuapn+S8miA+IGhhbmJhaWtpa2FpXCA7CivpgaDpmpTmk43kvZwgPiBlbmtha3Vzb3VzYVwgOwor5oWj55So6Kqe5Y+lID4ga2FuJyd5b3Vnb2t1XCA7CivmtrLkvZPnqbrmsJcgPiBla2l0YWlrdXVraVwgOwor5Ye65YiD5YyF5LiBID4gZGViYWJvdWNob3VcIDsKK+Wcn+iumuacrOe3miA+IGRvc2FuaG9uc2VuXCA7CivosqHmlL/mlK/mj7QgPiB6YWlzZWlzaGllblwgOwor5a6u5bu355S75a62ID4ga3l1dXRlaWdha2FcIDsKK+acgOW+jOWIl+i7iiA+IHNhaWdvcmVzc2hhXCA7CivnkIblt6Xlrabpg6ggPiByaWtvdWdha3VidVwgOwor5L+d566h5Lya56S+ID4gaG9rYW5nYWlzaGFcIDsKK+mFjeWQiOemgeW/jCA+IGhhaWdvdWtpbmtpXCA7CivpgY7libDmipXos4cgPiBrYWpvdXRvdXNoaVwgOwor5a626ZW35Yi25bqmID4ga2FjaG91c2VpZG9cIDsKK+WPr+iBtOi3nemboiA+IGthY2hvdWt5b3JpXCA7CivopqrpoZ7nuIHogIUgPiBzaGlucnVpZW5qYVwgOwor5a6H5a6Z5YyW5a2mID4gdWNodXVrYWdha3VcIDsKK+eEoeeQhuW/g+S4rSA+IG11cmlzaGluanV1XCA7CivlubTos4DokYnmm7ggPiBuZW5nYWhhZ2FraVwgOwor6YCj6YKm5LqI566XID4gcmVucG91eW9zYW5cIDsKK+WJteS+oeWtpuS8miA+IHNvdWthZ2Fra2FpXCA7CivliKnlrZDoo5zntaYgPiByaXNoaWhva3l1dVwgOwor5qC55pys5Y6f55CGID4ga29ucG9uZ2VucmlcIDsKK+WuieWFqOS/nemanCA+IGFuemVuaG9zaG91XCA7CivlgaXlurfkv53pmbogPiBrZW5rb3Vob2tlblwgOwor5pqX6buS5pmC5LujID4gYW5rb2t1amlkYWlcIDsKK+S4luS7o+S6pOS7oyA+IHNlZGFpa291dGFpXCA7Civou6LpgIHpm7voqbEgPiB0ZW5zb3VkZW53YVwgOwor5pit5ZKM5pmC5LujID4gc2hvdXdhamlkYWlcIDsKK+S9v+eUqOioseWPryA+IHNoaXlvdWt5b2thXCA7Civpn7Pmpb3mmKDnlLsgPiBvbmdha3VlaWdhXCA7CivlroflrpnpgYrms7MgPiB1Y2h1dXl1dWVpXCA7Civkv53lgaXliLbluqYgPiBob2tlbnNlaWRvXCA7CivmupblgpnpgYvli5UgPiBqdW5iaXVuZG91XCA7Civku6PorbDliLbluqYgPiBkYWlnaXNlaWRvXCA7CivmqKHlnovlnLDlm7MgPiBtb2tlaWNoaXp1XCA7CivnhKHojLboi6bojLYgPiBtdWNoYWt1Y2hhXCA7Civlj6TlvoDku4rmnaUgPiBrb291a29ucmFpXCA7CivmkanliKnmlK/lpKkgPiBtYXJpc2hpdGVuXCA7Civkurrngrrmt5jmsbAgPiBqaW4nJ2l0b3V0YVwgOwor56i85YON5pmC6ZaTID4ga2Fkb3VqaWthblwgOwor5Yy755mC5Yi25bqmID4gaXJ5b3VzZWlkb1wgOwor6Z2i572157215YCSID4gbWVuYmFiYXRvdVwgOwor6YG45oyZ6YGV5Y+NID4gc2Vua3lvaWhhblwgOwor5pel5pys5pmC6ZaTID4gbmlob25qaWthblwgOwor5aW06Zq35Yi25bqmID4gZG9yZWlzZWlkb1wgOwor5qeL6YCg5L+d5oyBID4ga291em91aG9qaVwgOwor6Ieq5YuV6LuK5YyWID4gamlkb3VzaGFrYVwgOwor5pel5pys5pu457SAID4gbmlob25zaG9raVwgOwor5LiN56m65oiQ5bCxID4gZnVrdXVqb3VqdVwgOwor5bmz5ZKM6YGL5YuVID4gaGVpd2F1bmRvdVwgOwor5YWs5a6a5q2p5ZCIID4ga291dGVpYnVhaVwgOwor5aSp6KGj54Sh57irID4gdGVuJydpbXVob3VcIDsKK+eQhui3r+aVtOeEtiA+IHJpcm9zZWl6ZW5cIDsKK+WNl+S6rOe5u+WtkCA+IG5hbmtpbmp1c3VcIDsKK+iZmueEoeS4u+e+qSA+IGt5b211c2h1Z2lcIDsKK+aoqeWogeS4u+e+qSA+IGtlbicnaXNodWdpXCA7CivmsJfngo7kuIfkuIggPiBraWVuYmFuam91XCA7CivkuInkuInkuZ3luqYgPiBzYW5zYW5rdWRvXCA7CivoqIjnrpfmqZ/plpMgPiBrZWlzYW5raW1hXCA7CivnpLzlhIDkvZzms5UgPiByZWlnaXNhaG91XCA7Civmu4XojLboi6bojLYgPiBtZWNoYWt1Y2hhXCA7CivogLPkuIvohbrngo4gPiBqaWthc2VuJydlblwgOwor55+z5rK55Y2x5qmfID4gc2VraXl1a2lraVwgOwor5YiR5LqL5LqL5Lu2ID4ga2VpamlqaWtlblwgOwor5Yip55So5L6h5YCkID4gcml5b3VrYWNoaVwgOwor5Zue57ea6LKg6I23ID4ga2Fpc2VuZnVrYVwgOwor6aaW5bC+5LiA6LKrID4gc2h1Ymlpa2thblwgOwor5Yy755mC5L+d6Zm6ID4gaXJ5b3Vob2tlblwgOwor5q2m6KOF6Kej6ZmkID4gYnVzb3VrYWlqb1wgOwor6KGo5oSP5paH5a2XID4gaHlvdWltb25qaVwgOwor6YO95biC5Zu95a62ID4gdG9zaGlrb2trYVwgOwor54Sh54K65b6S6aOfID4gbXVpdG9zaG9rdVwgOwor5pig55S76Z+z5qW9ID4gZWlnYW9uZ2FrdVwgOwor5YmN5b6M5bem5Y+zID4gemVuZ29zYXl1dVwgOwor6YeO5oim54m556eRID4geWFzZW50b2trYVwgOwor5LiN576I5aWU5pS+ID4gZnVraWhvbnBvdVwgOwor5LiA5omL6LKp5aOyID4gaXR0ZWhhbmJhaVwgOwor5b2T5bqn6aCQ6YeRID4gdG91emF5b2tpblwgOwor5qGc6Iqx54ib5ryrID4gb3VrYXJhbm1hblwgOwor6Ieq55Sx6Ieq5ZyoID4gaml5dXVqaXphaVwgOwor5Lm+54el54Sh5ZGzID4ga2Fuc291bXVtaVwgOwor5LqM6aCF5a6a55CGID4gbmlrb3V0ZWlyaVwgOwor5rS75oCn5rGa5rOlID4ga2Fzc2Vpb2RlaVwgOwor5LiJ5LiJ5LqU5LqUID4gc2Fuc2FuZ29nb1wgOwor5Zyo5bqr566h55CGID4gemFpa29rYW5yaVwgOwor54Gr54G95L+d6Zm6ID4ga2FzYWlob2tlblwgOwor57216KmI6ZuR6KiAID4gYmFyaXpvdWdvblwgOwor6YGT6Lev5bCB6Y6WID4gZG91cm9mdXVzYVwgOwor5bCP5aeU5ZOh5LyaID4gc2hvdWlpbmthaVwgOwor5Lqk5riJ5aeU5ZOhID4ga291c2hvdWlpblwgOwor5ZCI5ZCM6KGM54K6ID4gZ291ZG91a291aVwgOwor54KJ6L666KuH6KmxID4gcm9oZW5kYW53YVwgOwor6YGO5Y675YiG6KmeID4ga2Frb2J1bnNoaVwgOwor5Za25Yip5Lya56S+ID4gZWlyaWdhaXNoYVwgOwor5Lq65LqL5LiN55yBID4gamluamlmdXNlaVwgOwor55Ww5oCn6Zai5L+CID4gaXNlaWthbmtlaVwgOwor5LqL5pWF5Y6f5ZugID4gamlrb2dlbicnaW5cIDsKK+WutuWHuuWwkeWlsyA+IGllZGVzaG91am9cIDsKK+WPpOWFuOS4u+e+qSA+IGtvdGVuc2h1Z2lcIDsKK+S4jeazleaKleajhCA+IGZ1aG91dG91a2lcIDsKK+S6jOmHjeieuuaXiyA+IG5panV1cmFzZW5cIDsKK+S9jeebuOmAn+W6piA+IGlzb3Vzb2t1ZG9cIDsKK+mfs+mfu+mDqOmWgCA+IG9uJydpbmJ1bW9uXCA7CivmqZ/og73kuLvnvqkgPiBraW5vdXNodWdpXCA7CivmqZ/morDorablgpkgPiBraWthaWtlaWJpXCA7Civln7rnpI7oqabpqJMgPiBraXNvc2hpa2VuXCA7Civlrrbluq3oj5zlnJIgPiBrYXRlaXNhaWVuXCA7CivpgZPot6/lt6XkuosgPiBkb3Vyb2tvdWppXCA7CivkupzniL7nhLbkuIEgPiBhcnV6ZW5jaGluXCA7Civlm5voi6blhavoi6YgPiBzaGlrdWhha2t1XCA7Civlp5TntLDpnaLoq4cgPiBpc2FpbWVuZGFuXCA7Civlr77moKHoqablkIggPiB0YWlrb3VqaWFpXCA7CivkurrmsJfkvZzlrrYgPiBuaW5raXNha2thXCA7CivmmpblhqznlbDlpIkgPiBkYW50b3VpaGVuXCA7CivlpbPmgKfkuIDoiKwgPiBqb3NlaWlwcGFuXCA7CivmgKrnjaPmmKDnlLsgPiBrYWlqdXVlaWdhXCA7CivlpJrnqK7lpJrmp5ggPiB0YXNodXRheW91XCA7Civkuozpg6jmlZnmjoggPiBuaWJ1a3lvdWp1XCA7CivpgJ/luqbpgZXlj40gPiBzb2t1ZG9paGFuXCA7CivmqKrmlq3mranpgZMgPiBvdWRhbmhvZG91XCA7CivoiJfoo4XpgZPot68gPiBob3NvdWRvdXJvXCA7CivnhKHnt5rmioDluKsgPiBtdXNlbmdpc2hpXCA7Civpo5vps6XmmYLku6MgPiBhc3VrYWppZGFpXCA7Civlm57ot6/ln7rmnb8gPiBrYWlyb2tpYmFuXCA7CivlvaLmiJDlpJbnp5EgPiBrZWlzZWlnZWthXCA7CivlroflrpnlhbXlmaggPiB1Y2h1dWhlaWtpXCA7CivnlbDluLjmsJfosaEgPiBpam91a2lzaG91XCA7CivnhKHmqZ/ljJblraYgPiBtdWtpa2FnYWt1XCA7Civoh6rnlLHkuLvnvqkgPiBqaXl1dXNodWdpXCA7CivkvY3oqJjov73otIggPiBpa2l0c3Vpc291XCA7Civlrp/lhpnmmKDnlLsgPiBqaXNzaGFlaWdhXCA7Civoh6rnlLHmmYLplpMgPiBqaXl1dWppa2FuXCA7CivlvqHnpLzlpYnlhawgPiBvcmVpYm91a291XCA7CivlnJLoirjnlKjlhbcgPiBlbmdlaXlvdWd1XCA7CivnoLTojLbnm67ojLYgPiBoYWNoYW1lY2hhXCA7CivkuI3nqY/mlofmm7ggPiBmdW9uYnVuc2hvXCA7CivmvKLlrZfmlofljJYgPiBrYW5qaWJ1bmthXCA7CivkuojlgpnoqabpqJMgPiB5b2Jpc2hpa2VuXCA7CivlirTli5nnrqHnkIYgPiByb3VtdWthbnJpXCA7CivlubPlkozkvJrorbAgPiBoZWl3YWthaWdpXCA7Civku7vli5npg6jpmoogPiBuaW5tdWJ1dGFpXCA7CivlsI/plpPnianlsYsgPiBrb21hbW9ub3lhXCA7CivnuKbmqKrnhKHlsL0gPiBqdXVvdW11amluXCA7Civlm73lrrbkuLvnvqkgPiBrb2trYXNodWdpXCA7CivpgY7libDmipXkuI4gPiBrYWpvdXRvdXlvXCA7Civoq5bnkIblm57ot68gPiByb25yaWthaXJvXCA7Civoh6rlo4rkvZznlKggPiBqaWthaXNheW91XCA7CivmupblgpnmnJ/plpMgPiBqdW5iaWtpa2FuXCA7CivlpKnkuIvnhKHlj4wgPiB0ZW5rYW11c291XCA7CivkuIDngInljYPph4wgPiBpc3NoYXNlbnJpXCA7CivmqKrooYzpl4rmrakgPiBvdWtvdWthcHBvXCA7CivlibDkvZnkvqHlgKQgPiBqb3V5b2thY2hpXCA7CivmlofljJblm73lrrYgPiBidW5rYWtva2thXCA7CivoiJ7lj7DnqL3lj6QgPiBidXRhaWdlaWtvXCA7CivkvIrli6LlpKflu58gPiBpc2V0YWlieW91XCA7Civnm7jkupLmlK/mj7QgPiBzb3Vnb3NoaWVuXCA7Civmma7pgY3ljp/nkIYgPiBmdWhlbmdlbnJpXCA7CivkuI3ljbPkuI3pm6IgPiBmdXNva3VmdXJpXCA7Civmgqrlm6DmgqrmnpwgPiBha3VpbicnYWtrYVwgOwor5LiJ44CF5Lmd5bqmID4gc2Fuc2Fua3Vkb1wgOwor6ZmE5ZKM6Zu35ZCMID4gZnV3YXJhaWRvdVwgOwor5YyW57Kn6YOo5bGLID4ga2VzaG91YmV5YVwgOwor56Oo6KO955+z5ZmoID4gbWFzZWlzZWtraVwgOwor54i25a2Q5a625bqtID4gZnVzaGlrYXRlaVwgOwor5L2Z6Z+75auL5auLID4geW9pbmpvdWpvdVwgOwor57iE5paH5Zyf5ZmoID4gam91bW9uZG9raVwgOwor6LKh5YuZ566h55CGID4gemFpbXVrYW5yaVwgOwor56mC54q26Iqx5bqPID4gc3Vpam91a2Fqb1wgOwor6L6e5pu46YOo6ZaAID4gamlzaG9idW1vblwgOwor5qmf5YuV6YOo6ZqKID4ga2lkb3VidXRhaVwgOwor5L+d5a6J5Yem5YiGID4gaG9hbnNob2J1blwgOwor5oSP5oCd6KGo56S6ID4gaXNoaWh5b3VqaVwgOwor5Za25Yip5LqL5qWtID4gZWlyaWppZ3lvdVwgOwor55qu6Iaa56e75qSNID4gaGlmdWlzaG9rdVwgOwor6K2w5LqL5aao5a6zID4gZ2lqaWJvdWdhaVwgOwor5LuY5ZKM6Zu35ZCMID4gZnV3YXJhaWRvdVwgOwor5LiA6aiO5b2T5Y2DID4gaWtraXRvdXNlblwgOwor6Zi/6by75Y+r5ZaaID4gYWJpa3lvdWthblwgOwor57W25a++5rip5bqmID4gemV0dGFpb25kb1wgOwor6buE6YeR5LiW55WMID4gb3Vnb25zZWthaVwgOwor5qOS5rip5bqm6KiIID4gYm91b25kb2tlaVwgOwor5Y+N5a++5oSP6KaLID4gaGFudGFpaWtlblwgOwor5qyj5rGC5rWE5ZyfID4gZ29uZ3Vqb3Vkb1wgOwor6YeR6LKo5rqW5YKZID4ga2lua2FqdW5iaVwgOwor6KuW55CG57Sg5a2QID4gcm9ucmlzb3NoaVwgOwor6Zyy5Zyw5qC95Z+5ID4gcm9qaXNhaWJhaVwgOwor5Y+k5aKz5pmC5LujID4ga29mdW5qaWRhaVwgOwor54Sh54WZ54Gr6JasID4gbXVlbmtheWFrdVwgOwor5pS/5rK75qmf5qeLID4gc2VpamlraWtvdVwgOwor5oSP5b+X5rG65a6aID4gaXNoaWtldHRlaVwgOwor6LKg6I235YiG5pWjID4gZnVrYWJ1bnNhblwgOwor5LiN5YGP5LiN5YWaID4gZnVoZW5mdXRvdVwgOwor5ZCM5bqK55Ww5aSiID4gZG91c2hvdWltdVwgOwor54Sh6ZmQ6LuM6YGTID4gbXVnZW5raWRvdVwgOwor6LuN5LqL6aGn5ZWPID4gZ3Vuamlrb21vblwgOwor6IC9576O5Li7576pID4gdGFuYmlzaHVnaVwgOwor5Zac5YqH5pig55S7ID4ga2lnZWtpZWlnYVwgOwor5pu854+g5rKZ6I+vID4gbWFuanVzaGFnZVwgOwor5qih5pOs6Kmm6aiTID4gbW9naXNoaWtlblwgOwor6KaP5YmH6YGV5Y+NID4ga2lzb2t1aWhhblwgOwor5aSP54KJ5Yas5omHID4ga2Fyb3RvdXNlblwgOwor6Zuo5aSp5rG66KGMID4gdXRlbmtla2tvdVwgOwor5oSP6KaL5Lqk5o+bID4gaWtlbmtvdWthblwgOwor5LiN5Lm+5oCn5rK5ID4gZnVrYW5zZWl5dVwgOwor5rOM5bC/5Zmo56eRID4gaGlueW91a2lrYVwgOwor5bi35bmE5LiK5aWPID4gaWFrdWpvdXNvdVwgOwor5YWo5qip5aeU5ZOhID4gemVua2VuJydpaW5cIDsKK+a8lOeul+apn+aniyA+IGVuemFua2lrb3VcIDsKK+eEoeiTi+iyqOi7iiA+IG11Z2Fpa2FzaGFcIDsKK+S6jOWNgeS4lue0gCA+IG5pamlzc2Vpa2lcIDsKK+S/neitt+WHpuWIhiA+IGhvZ29zaG9idW5cIDsKK+earuiGmuenkeWtpiA+IGhpZnVrYWdha3VcIDsKK+ihhuaEmuaUv+ayuyA+IHNodWd1c2VpamlcIDsKK+S+jeW+k+atpuWumCA+IGppanV1YnVrYW5cIDsKK+aOp+iotOacn+mWkyA+IGtvdXNva2lrYW5cIDsKK+S4iuS9jeani+mAoCA+IGpvdWlrb3V6b3VcIDsKK+W4uOS7u+WnlOWToSA+IGpvdW5pbicnaWluXCA7Civoip3lsYXlsI/lsYsgPiBzaGliYWlnb3lhXCA7Civlhaznp5/lhazoqrIgPiBrb3Vzb2tvdWthXCA7CivmmJPmhJ/mn5PmgKcgPiBpa2Fuc2Vuc2VpXCA7CivntIDkvIrlnIvlsYsgPiBraW5va3VuaXlhXCA7CivlpJzpt7nolY7puqYgPiB5b3Rha2Fzb2JhXCA7Civli6Tli5nmmYLplpMgPiBraW5tdWppa2FuXCA7Civljq3kuJbkuLvnvqkgPiBlbnNlaXNodWdpXCA7CivljZjkvY3oqJjlj7cgPiB0YW4nJ2lraWdvdVwgOwor5o6S5LuW5Li7576pID4gaGFpdGFzaHVnaVwgOwor5a6H5a6Z6aOb6KGMID4gdWNodXVoaWtvdVwgOwor5Luu5ZCN6I2J57SZID4ga2FuYXpvdXNoaVwgOwor5Z2R5YaF5LqL5pWFID4ga291bmFpamlrb1wgOwor6KuW55CG5ryU566XID4gcm9ucmllbnphblwgOwor6Zu75rCX5q+b5biDID4gZGVua2ltb3VmdVwgOwor6Zuy6ayi6Iqx6aGUID4gdW5iaW5rYWdhblwgOwor5b6h5YmN5Lya6K2wID4gZ296ZW5rYWlnaVwgOwor5LqI5YKZ6Kq/5p+7ID4geW9iaWNob3VzYVwgOwor5bmz5ZKM5Li7576pID4gaGVpd2FzaHVnaVwgOwor56iy6I235a+/5Y+4ID4gaW5hcml6dXNoaVwgOwor5rOo5oSP5LqL6aCFID4gY2h1dWlqaWtvdVwgOwor6IO46YOo5aSW56eRID4ga3lvdWJ1Z2VrYVwgOwor6Z2e5Y+v5o+b576kID4gaGlrYWthbmd1blwgOwor6YG65Lyd5oOF5aCxID4gaWRlbmpvdWhvdVwgOwor5a+E55Sf54Gr5bGxID4ga2lzZWlrYXphblwgOwor5LqM6YOo5o6I5qWtID4gbmlidWp1Z3lvdVwgOwor6Z2e5Za25Yip55qEID4gaGllaXJpdGVraVwgOwor5rKz5bed5bel5LqLID4ga2FzZW5rb3VqaVwgOwor55u45omL5qyh56ysID4gYWl0ZXNoaWRhaVwgOwor5L6/5a6c5Li7576pID4gYmVuZ2lzaHVnaVwgOwor55qu6Iaa5ZG85ZC4ID4gaGlmdWtva3l1dVwgOwor5Lqc5oiQ5bGk5ZyPID4gYXNlaXNvdWtlblwgOwor56m66LuN5aSn5bCJID4ga3V1Z3VudGFpaVwgOwor5LiJ44CF5LqU44CFID4gc2Fuc2FuZ29nb1wgOwor5qK15ZKM6L6e5YW4ID4gYm9ud2FqaXRlblwgOwor5o6n6Ki055CG55SxID4ga291c29yaXl1dVwgOwor6YOo6ZqK5Yy65YiGID4gYnV0YWlrdWJ1blwgOwor5oKq6a2U5Li7576pID4gYWt1bWFzaHVnaVwgOwor6K235bK45bel5LqLID4gZ29nYW5rb3VqaVwgOwor5L2Z6Z+75auL44CFID4geW9pbmpvdWpvdVwgOwor55Sw5aSr6YeO5Lq6ID4gZGVucHV5YWppblwgOwor5aWH5aWH5oCq5oCqID4ga2lraWthaWthaVwgOwor56We5Luj5paH5a2XID4gamluZGFpbW9qaVwgOwor5Y+k5YW45pmC5LujID4ga290ZW5qaWRhaVwgOwor5biC5Lya6K2w5ZOhID4gc2hpa2FpZ2lpblwgOwor5Y2x6Zm66LKg5ouFID4ga2lrZW5mdXRhblwgOwor5YGl5bq35LiN5a6JID4ga2Vua291ZnVhblwgOwor5b+c5oCl5rih5rKzID4gb3VreXV1dG9rYVwgOwor5LqM6YeN5ZCm5a6aID4gbmlqdXVoaXRlaVwgOwor5oSP5rCX6KGd5aSpID4gaWtpc2hvdXRlblwgOwor5Yy75a2m55So6KqeID4gaWdha3V5b3Vnb1wgOwor6Iie5Y+w5Yq55p6cID4gYnV0YWlrb3VrYVwgOwor6Zu75L2N5beu6KiIID4gZGVuJydpc2FrZWlcIDsKK+W6puaVsOWIhuW4gyA+IGRvc3V1YnVucHVcIDsKK+mBi+mAgeS/nemZuiA+IHVuc291aG9rZW5cIDsKK+mrmOaJi+Wwj+aJiyA+IHRha2F0ZWtvdGVcIDsKK+eEoeWRs+S5vueHpSA+IG11bWlrYW5zb3VcIDsKK+S4i+mZouitsOmVtyA+IGthaW5naWNob3VcIDsKK+i7jeWCmeeuoeeQhiA+IGd1bmJpa2FucmlcIDsKK+aoueiEguWKoOW3pSA+IGp1c2hpa2Frb3VcIDsKK+WIqeawtOW3peS6iyA+IHJpc3Vpa291amlcIDsKK+mdnuW4uOS6i+aFiyA+IGhpam91aml0YWlcIDsKK+atpuijheicgui1tyA+IGJ1c291aG91a2lcIDsKK+acieWjsOmfs+WMliA+IHl1dXNlaW9ua2FcIDsKK+S+oeWApOWfuua6liA+IGthY2hpa2lqdW5cIDsKK+iqv+eQhuWZqOWFtyA+IGNob3VyaWtpZ3VcIDsKK+egsueFmeW8vumbqCA+IGhvdWVuZGFuJyd1XCA7CivppqzogLPmnbHpoqggPiBiYWppdG91ZnV1XCA7CivlubPooYznp7vli5UgPiBoZWlrb3VpZG91XCA7Civoo5zliqnli5XoqZ4gPiBob2pvZG91c2hpXCA7CivlkKblrprlv5znrZQgPiBoaXRlaW91dG91XCA7Civoh6rlt7Hos4fmnKwgPiBqaWtvc2hpaG9uXCA7Civpu4Tph5HmmYLku6MgPiBvdWdvbmppZGFpXCA7Civlkb3ku6TkuIDkuIsgPiBtZWlyZWlpa2thXCA7CivntI3ku5jmnJ/pmZAgPiBub3VmdWtpZ2VuXCA7Civmkbjmk6zoqabpqJMgPiBtb2dpc2hpa2VuXCA7CivlsI/lhZDpurvnl7ogPiBzaG91bmltYWhpXCA7CivlrqPkvJ3oqJjkuosgPiBzZW5kZW5raWppXCA7CivlpI/lraPkvJHmmocgPiBrYWtpa3l1dWthXCA7Civoh6jmmYLmlL/lupwgPiByaW5qaXNlaWZ1XCA7CivkuInml6XkuInmmakgPiBtaWtrYW1pYmFuXCA7CivnhKHnkIbpm6PpoYwgPiBtdXJpbmFuZGFpXCA7Civkuojlgpnoo4Xnva4gPiB5b2Jpc291Y2hpXCA7CivmnpzmqLnmoL3ln7kgPiBrYWp1c2FpYmFpXCA7CivnspfooaPnspfpo58gPiBzb2lzb3Nob2t1XCA7CivkurrmsJHlp5Tlk6EgPiBqaW5taW4nJ2lpblwgOwor6aO95ZKM6JK45rCXID4gaG91d2Fqb3VraVwgOwor5Yy55aSr5Yy55ammID4gaGlwcHVoaXBwdVwgOwor5LqM5YiG6Z+z56ymID4gbmlidW4nJ29ucHVcIDsKK+WNg+azouS4h+azoiA+IHNlbnBhYmFucGFcIDsKK+eVsOW4uOeZuueUnyA+IGlqb3VoYXNzZWlcIDsKK+ayu+WuiemDqOmaiiA+IGNoaWFuYnV0YWlcIDsKK+WIg+WCt+aymeaxsCA+IG5pbmpvdXphdGFcIDsKK+S4jea0u+aAp+WMliA+IGZ1a2Fzc2Vpa2FcIDsKK+W3peS6i+ePvuWgtCA+IGtvdWppZ2VuYmFcIDsKK+iHquW3seWuo+S8nSA+IGppa29zZW5kZW5cIDsKK+awl+euoeaUr+eCjiA+IGtpa2Fuc2hpZW5cIDsKK+aJi+WJjeWLneaJiyA+IHRlbWFlZ2F0dGVcIDsKK+S/neWuiOS4u+e+qSA+IGhvc2h1c2h1Z2lcIDsKK+acqOerr+W+ruWhtSA+IGtvcHBhbWlqaW5cIDsKK+atu+S6oeiomOS6iyA+IHNoaWJvdWtpamlcIDsKK+mBjuWJsOWIqeebiiA+IGtham91cmlla2lcIDsKK+Wls+WwiueUt+WNkSA+IGpvc29uZGFucGlcIDsKK+WNgeS6jOWNmOihoyA+IGp1dW5paGl0b2VcIDsKK+WIhumbouiqsueojiA+IGJ1bnJpa2F6ZWlcIDsKK+S7u+aEj+aNnOafuyA+IG5pbicnaXNvdXNhXCA7CivkuIrkvY3mpoLlv7UgPiBqb3VpZ2FpbmVuXCA7CivoiJ7lj7DpgZPlhbcgPiBidXRhaWRvdWd1XCA7CivkuIrmmKDmmYLplpMgPiBqb3VlaWppa2FuXCA7CivoqIjlmajpo5vooYwgPiBrZWlraWhpa291XCA7CivmiKbngb3lraTlhZAgPiBzZW5zYWlrb2ppXCA7Civln7rmnKzljp/nkIYgPiBraWhvbmdlbnJpXCA7Civmg4XmhI/mipXlkIggPiBqb3VpdG91Z291XCA7CivnrqHnkIbmqZ/og70gPiBrYW5yaWtpbm91XCA7Civoh6jmmYLoqJjlj7cgPiByaW5qaWtpZ291XCA7CivlhbXlvbnlv4zpgb8gPiBoZWlla2lraWhpXCA7CivmiKbkuonmmKDnlLsgPiBzZW5zb3VlaWdhXCA7CivosqHmlL/ljbHmqZ8gPiB6YWlzZWlraWtpXCA7CivmnInpmZDoirHluo8gPiB5dXVnZW5rYWpvXCA7Civou43kuovln7rlnLAgPiBndW5qaWtpY2hpXCA7CivkuI3mraPkuovku7YgPiBmdXNlaWppa2VuXCA7Civlh7rmnaXmrKHnrKwgPiBkZWtpc2hpZGFpXCA7CivlpInkvZPku67lkI0gPiBoZW50YWlnYW5hXCA7Civoi7Hpm4TkuLvnvqkgPiBlaXl1dXNodWdpXCA7Civnl7ToqbHllqflmKkgPiBjaGl3YWdlbmthXCA7Civng4/mnInlhYjnlJ8gPiB1eXV1c2Vuc2VpXCA7CivmhrLms5XpgZXlj40gPiBrZW5wb3VpaGFuXCA7Civlm57ou6LmpIXlrZAgPiBrYWl0ZW4nJ2lzdVwgOwor6IO955m75Y2K5bO2ID4gbm90b2hhbnRvdVwgOwor5Yqj5oCn6YG65LydID4gcmVzc2VpaWRlblwgOwor6KuL6LKg5Yi25bqmID4gdWtlb2lzZWlkb1wgOwor5rC06LuK5bCP5bGLID4gc3Vpc2hhZ295YVwgOwor6KSQ5q+b5ZKM56iuID4gYWthZ2V3YXNodVwgOwor5Zu65a6a6LKg5YK1ID4ga290ZWlmdXNhaVwgOwor5L6d6aGY5YWN5a6YID4gaWdhbm1lbmthblwgOwor5pS/5bqc5qmf6ZaiID4gc2VpZnVraWthblwgOwor5LqL5Lu26KiY6ICFID4gamlrZW5raXNoYVwgOwor5bmz5a6J5b6M5pyfID4gaGVpYW5rb3VraVwgOwor6ZuH55So5L+d6Zm6ID4ga295b3Vob2tlblwgOwor5L+d6K236LK/5piTID4gaG9nb2JvdWVraVwgOwor5LiW55WM5Yi26KaHID4gc2VrYWlzZWloYVwgOwor54Sh5qmf6IKl5paZID4gbXVraWhpcnlvdVwgOwor6auY6YeO6LGG6IWQID4ga291eWFkb3VmdVwgOwor5Luj6K2w5pS/5rK7ID4gZGFpZ2lzZWlqaVwgOwor5oSP6aas5b+D54y/ID4gaWJhc2hpbicnZW5cIDsKK+S6pOmAmumBuuWFkCA+IGtvdXRzdXVpamlcIDsKK+mBuuajhOiyqOeJqSA+IGlraWthbW90c3VcIDsKK+eCreWMluawtOe0oCA+IHRhbmthc3Vpc29cIDsKK+WbsueigeS4iee0miA+IGlnb3Nhbmt5dXVcIDsKK+eUo+WppuS6uuenkSA+IHNhbmZ1amlua2FcIDsKK+eQhuaDs+S4u+e+qSA+IHJpc291c2h1Z2lcIDsKK+WNgeWtl+egsueBqyA+IGp1dWppaG91a2FcIDsKK+mDvemBk+W6nOecjCA+IHRvZG91ZnVrZW5cIDsKK+m6nemmmeixjOixhiA+IGpha291ZW5kb3VcIDsKK+ebsuWUluWtpuagoSA+IG1vdWFnYWtrb3VcIDsKK+S/neWuieadoeS+iyA+IGhvYW5qb3VyZWlcIDsKK+efs+WZqOaZguS7oyA+IHNla2tpamlkYWlcIDsKK+S8vOmdnueQhuWxiCA+IGVzZXJpa3V0c3VcIDsKK+iomOW/teWIh+aJiyA+IGtpbmVua2l0dGVcIDsKK+WAi+S6uuWAi+S6uiA+IGtvamlua29qaW5cIDsKK+W7tua7nuWIqeWtkCA+IGVudGFpcmlzaGlcIDsKK+WIhua0vuS4u+e+qSA+IGJ1bnBhc2h1Z2lcIDsKK+avgOiqieikkuiytiA+IGtpeW9ob3VoZW5cIDsKK+WUr+e+juS4u+e+qSA+IHl1aWJpc2h1Z2lcIDsKK+i7jeS6i+ihm+aYnyA+IGd1bmppZWlzZWlcIDsKK+eEoeaIkeWkouS4rSA+IG11Z2FtdWNodXVcIDsKK+S6iOWumuacn+mZkCA+IHlvdGVpa2lnZW5cIDsKK+eri+S9k+aYoOeUuyA+IHJpdHRhaWVpZ2FcIDsKK+Wkqeawl+aooeanmCA+IHRlbmtpbW95b3VcIDsKK+eBq+WPo+WOn+a5liA+IGtha291Z2Vua29cIDsKK+ihqOmfs+Wtl+avjSA+IGh5b3VvbmppYm9cIDsKK+mfs+WjsOiogOiqniA+IG9uc2VpZ2VuZ29cIDsKK+S4gOaYqOaYqOaXpSA+IHNha2lvdG90b2lcIDsKK+iEseazleihjOeCuiA+IGRhcHBvdWtvdWlcIDsKK+WAi+S6uuS4u+e+qSA+IGtvamluc2h1Z2lcIDsKK+S4jeato+imj+i7jSA+IGZ1c2Vpa2lndW5cIDsKK+WHhueci+itt+WppiA+IGp1bmthbmdvZnVcIDsKK+avjeWtkOWutuW6rSA+IGJvc2hpa2F0ZWlcIDsKK+WQjOWQjeeVsOS6uiA+IGRvdW1laWlqaW5cIDsKK+iCsuWFkOaZgumWkyA+IGlrdWppamlrYW5cIDsKK+aZguS+oeeZuuihjCA+IGppa2FoYWtrb3VcIDsKK+S8muitsOS6i+mghSA+IGthaWdpamlrb3VcIDsKK+S7ruaDs+iomOaGtiA+IGthc291a2lva3VcIDsKK+mDqOWIhum6u+mFlCA+IGJ1YnVubWFzdWlcIDsKK+aknOS6i+aOp+iotCA+IGtlbmppa291c29cIDsKK+e1jOWWtueuoeeQhiA+IGtlaWVpa2FucmlcIDsKK+mjm+ihjOaZgumWkyA+IGhpa291amlrYW5cIDsKK+Wbm+Wtl+eGn+iqniA+IHlvamlqdWt1Z29cIDsKK+iHqOapn+W/nOWkiSA+IHJpbmtpb3VoZW5cIDsKK+Wumuacn+S/nemZuiA+IHRlaWtpaG9rZW5cIDsKK+mAoOiogOmjm+iqniA+IHpvdWdlbmhpZ29cIDsKK+S6i+WLmeeUqOWTgSA+IGppbXV5b3VoaW5cIDsKK+iogOiqnuWcsOeQhiA+IGdlbmdvY2hpcmlcIDsKK+eKr+e9quihjOeCuiA+IGhhbnphaWtvdWlcIDsKK+i8uOmAgeapn+mWoiA+IHl1c291a2lrYW5cIDsKK+ijnOWKqeiJpuiJhyA+IGhvam9rYW50ZWlcIDsKK+S6lOmHjOmcp+S4rSA+IGdvcmltdWNodXVcIDsKK+S4ieaXpeWkqeS4iyA+IG1pa2thdGVua2FcIDsKK+WfuuacrOWNmOS9jSA+IGtpaG9udGFuJydpXCA7CivnjLbkuojmnJ/plpMgPiB5dXV5b2tpa2FuXCA7Civoq4vosqDlt6XkuosgPiB1a2VvaWtvdWppXCA7CivmhI/mgJ3msbrlrpogPiBpc2hpa2V0dGVpXCA7CivlvozpgIDmloflrZcgPiBrb3V0YWltb2ppXCA7CivnlLflsIrlpbPljZEgPiBkYW5zb25qb2hpXCA7CivlpKfmhYjlpKfmgrIgPiBkYWlqaWRhaWhpXCA7CivlpoLkvZXmp5jluKsgPiBpa2FzYW1hc2hpXCA7Civoh6jnlYzkuovmlYUgPiByaW5rYWlqaWtvXCA7Civlm6DmnpzplqLkv4IgPiBpbmdha2Fua2VpXCA7CivnlbDnqK7kuqTphY0gPiBpc2h1a291aGFpXCA7CivlpJzplpPli6Tli5kgPiB5YWthbmtpbm11XCA7CivlvqHlm73oh6rmhaIgPiBva3VuaWppbWFuXCA7CivnpZ7ntYznp5HljLsgPiBzaGlua2Vpa2FpXCA7CivlrozlhajoqablkIggPiBrYW56ZW5qaWFpXCA7CivlhaznpLrlnLDkvqEgPiBrb3VqaWNoaWthXCA7CivkuIDlrZfkuIDlj6UgPiBpY2hpamlpa2t1XCA7Civljp/nkIbkuLvnvqkgPiBnZW5yaXNodWdpXCA7Civnq6XoqbHkvZzlrrYgPiBkb3V3YXNha2thXCA7CivlpqjlrrPooYzngrogPiBib3VnYWlrb3VpXCA7CivpgYvllrbntYzosrsgPiB1bicnZWlrZWloaVwgOwor5LqM6YOo5ZCI5aWPID4gbmlidWdhc3NvdVwgOwor5ZCN6KqJ5q+A5pCNID4gbWVpeW9raXNvblwgOwor6KiY6Yyy5pig55S7ID4ga2lyb2t1ZWlnYVwgOwor6YGL5pCs566h55CGID4gdW5wYW5rYW5yaVwgOwor5Yy756eR5aSn5a2mID4gaWthZGFpZ2FrdVwgOwor5Yqg5rib5LmX6ZmkID4ga2FnZW5qb3Vqb1wgOwor6Zi/54mH5oim5LqJID4gYWhlbnNlbnNvdVwgOwor5ZSv5ZSv6Ku+6Ku+ID4gaWlkYWt1ZGFrdVwgOwor55u45a++6Kqk5beuID4gc291dGFpZ29zYVwgOwor6aOy6YWS6YGL6LuiID4gaW5zaHV1bnRlblwgOwor5oyH5ZCN6Kmm5ZCIID4gc2hpbWVpamlhaVwgOwor5b6S5byf5Yi25bqmID4gdG90ZWlzZWlkb1wgOwor57SL57695LqM6YeNID4gbW9uaGFidXRhZVwgOwor6LKo5bmj5Yi25bqmID4ga2FoZWlzZWlkb1wgOwor5pel5ZKM5LiL6aeEID4gaGl5b3JpZ2V0YVwgOwor5LiW55WM5bmz5ZKMID4gc2VrYWloZWl3YVwgOwor54Sh55CG6Zai5pWwID4gbXVyaWthbnN1dVwgOwor6Z+z5ZCQ5pyX5pyXID4gb250b3JvdXJvdVwgOwor5qKF6Zuo5YmN57eaID4gYmFpdXplbnNlblwgOwor6Zu75rCX5pmC6KiIID4gZGVua2lkb2tlaVwgOwor5LqM5Y2B5Zub5pelID4gbmlqdXV5b2trYVwgOwor5oKy5q2M5oW35oWoID4gaGlrYWtvdWdhaVwgOwor5LqI6Ziy5Yy75a2mID4geW9ib3VpZ2FrdVwgOwor5b2T5pyf5Yip55uKID4gdG91a2lyaWVraVwgOwor55qu5LiL6ISC6IKqID4gaGlrYXNoaWJvdVwgOwor6Zm256OB5Zmo5bqXID4gdG91amlraXRlblwgOwor5YiH56ym5aOy5aC0ID4ga2lwcHV1cmliYVwgOwor6KO45L2T5Li7576pID4gcmF0YWlzaHVnaVwgOwor6Z+z5qiZ5paH5a2XID4gb25weW91bW9qaVwgOwor5LiN5q2j6KaP5oimID4gZnVzZWlraXNlblwgOwor57W25a++5L2N572uID4gemV0dGFpaWNoaVwgOwor57Ch5piT5L+d6Zm6ID4ga2FuJydpaG9rZW5cIDsKK+WvoemgreaUv+ayuyA+IGthdG91c2VpamlcIDsKK+S4i+awtOWHpueQhiA+IGdlc3Vpc2hvcmlcIDsKK+iomOaGtue0oOWtkCA+IGtpb2t1c29zaGlcIDsKK+mfs+WjsOiomOWPtyA+IG9uc2Vpa2lnb3VcIDsKK+WSjOW5s+S8muitsCA+IHdhaGVpa2FpZ2lcIDsKK+egtOWjiuS4u+e+qSA+IGhha2Fpc2h1Z2lcIDsKK+Wuh+WumeWfuuWcsCA+IHVjaHV1a2ljaGlcIDsKK+S4jeWPr+efpeirliA+IGZ1a2FjaGlyb25cIDsKK+iHquihm+aJi+autSA+IGppZWlzaHVkYW5cIDsKK+Wwj+WjsuWApOautSA+IGtvdXJpbmVkYW5cIDsKK+W4guWgtOimj+aooSA+IHNoaWpvdWtpYm9cIDsKK+itsOWToeeri+azlSA+IGdpaW5yaXBwb3VcIDsKK+Wtpue0muWnlOWToSA+IGdha2t5dXVpaW5cIDsKK+itsOS8muS4u+e+qSA+IGdpa2Fpc2h1Z2lcIDsKK+WfuuekjuenkeWtpiA+IGtpc29rYWdha3VcIDsKK+aNnOafu+acrOmDqCA+IHNvdXNhaG9uYnVcIDsKK+Wuh+WumeaOouafuyA+IHVjaHV1dGFuc2FcIDsKK+S6nOm6u+e5lOeJqSA+IGFtYW9yaW1vbm9cIDsKK+mghuW6j+S4jeWQjCA+IGp1bmpvZnVkb3VcIDsKK+e1jOa4iOaPtOWKqSA+IGtlaXphaWVuam9cIDsKK+e0r+eul+a4qeW6piA+IHJ1aXNhbm9uZG9cIDsKK+a1qua8q+S4u+e+qSA+IHJvbWFuc2h1Z2lcIDsKK+atpuijhemDveW4giA+IGJ1c291dG9zaGlcIDsKK+W5s+WSjOWbveWutiA+IGhlaXdha29ra2FcIDsKK+mBk+i3r+WcsOWbsyA+IGRvdXJvY2hpenVcIDsKK+W+oeacseWNsOiIuSA+IGdvc2h1aW5zZW5cIDsKK+WknOmDjuiHquWkpyA+IHlhcm91amlkYWlcIDsKK+mDqOWIhuWQpuWumiA+IGJ1YnVuaGl0ZWlcIDsKK+ism+WSjOS8muitsCA+IGtvdXdha2FpZ2lcIDsKK+e3qOe1hOapn+aisCA+IGhlbnNva2lrYWlcIDsKK+WMu+eZguWZqOaisCA+IGlyeW91a2lrYWlcIDsKK+ato+imj+WIhuW4gyA+IHNlaWtpYnVucHVcIDsKK+S8muWToeWQjeewvyA+IGthaWlubWVpYm9cIDsKK+WkqeWkieWcsOeVsCA+IHRlbnBlbmNoaWlcIDsKK+acieWPsuS7peadpSA+IHl1dXNoaWlyYWlcIDsKK+S/neitt+mWoueojiA+IGhvZ29rYW56ZWlcIDsKK+acquW4sOmChOiAhSA+IG1pa2lrYW5zaGFcIDsKK+S4ieaXpeWdiuS4uyA+IG1pa2thYm91enVcIDsKK+eiuuWbuuS4jeWLlSA+IGtha2tvZnVkb3VcIDsKK+S4jeWBtOS4jemboiA+IGZ1c29rdWZ1cmlcIDsKK+aWh+aIv+WFt+WxiyA+IGJ1bmJvdWd1eWFcIDsKK+W6t+eFleWtl+WFuCA+IGtvdWtpaml0ZW5cIDsKK+acquadpeawuOWKqyA+IG1pcmFpZWlnb3VcIDsKK+eEoeeQhueul+autSA+IG11cmlzYW5kYW5cIDsKK+iZnue+juS6uuiNiSA+IGd1YmlqaW5zb3VcIDsKK+ixoeeJmee0sOW3pSA+IHpvdWdlemFpa3VcIDsKK+a7heiMtua7heiMtiA+IG1lY2hhbWVjaGFcIDsKK+miqOi7iuWwj+WxiyA+IGZ1dXNoYWdveWFcIDsKK+WtkOS+m+mDqOWxiyA+IGtvZG9tb2JleWFcIDsKK+axguaEm+iqh+ekuiA+IGt5dXVhaWtvamlcIDsKK+eOi+aUv+W+qeWPpCA+IG91c2VpZnVra29cIDsKK+S4gOS6uumDqOWxiyA+IGhpdG9yaWJleWFcIDsKK+S4jeiyt+mBi+WLlSA+IGZ1YmFpdW5kb3VcIDsKK+WQneWXh+WQneWXhyA+IGtlY2hpa2VjaGlcIDsKK+Wumuacn+mgkOmHkSA+IHRlaWtpeW9raW5cIDsKK+S4gOWumuacn+mWkyA+IGl0dGVpa2lrYW5cIDsKK+WcsOS4i+mBi+WLlSA+IGNoaWthdW5kb3VcIDsKK+aHkOeWkeS4u+e+qSA+IGthaWdpc2h1Z2lcIDsKK+iejemAmueEoeeijSA+IHl1dXp1dW11Z2VcIDsKK+S/neWuieimgeWToSA+IGhvYW4nJ3lvdWluXCA7CivkuLvmiJHkuLvnvqkgPiBzaHVnYXNodWdpXCA7CivkuI3kvZzngrrniq8gPiBmdXNha3VpaGFuXCA7CivoiJfoo4XnhYnnk6YgPiBob3NvdXJlbmdhXCA7CivmipXlvbHlm7Pms5UgPiB0b3VlaXp1aG91XCA7Civnt4/nirboirHluo8gPiBzb3Vqb3VrYWpvXCA7CivmuIXmtYTnhKHlnqIgPiBzZWlqb3VtdWt1XCA7CivkuInpnaLoqJjkuosgPiBzYW5tZW5raWppXCA7CivmiY3msJfnuKbmqKogPiBzYWlraWp1dW91XCA7CivmnKzkvY3osqjluaMgPiBob24nJ2lrYWhlaVwgOwor6aas6bm/5LiB5a+nID4gYmFrYXRlaW5laVwgOwor5pel6JGh6L6e5pu4ID4gbmlwcG9qaXNob1wgOwor5L2N55u456m66ZaTID4gaXNvdWt1dWthblwgOwor5rW35LqL6KGb5pifID4ga2FpamllaXNlaVwgOwor56m65rCX5qmf5qKwID4ga3V1a2lraWthaVwgOwor5YWx5ZCM5LqV5oi4ID4ga3lvdWRvdWlkb1wgOwor5ZCI55CG5Li7576pID4gZ291cmlzaHVnaVwgOwor5aSp5rSl5b6h5aeJID4gYW1hdHN1bWlrb1wgOwor5aSp5omL5Y+k6IieID4gdGVudGVrb21haVwgOwor5aSc5YWJ5pmC6KiIID4geWFrb3Vkb2tlaVwgOwor6Ieq6Lui6LuK5bGLID4gaml0ZW5zaGF5YVwgOwor6Ieq5a6255So6LuKID4gamlrYXlvdXNoYVwgOwor5Y2Y5L2N5Yi25bqmID4gdGFuJydpc2VpZG9cIDsKK+aWh+Wtl+aDheWgsSA+IG1vamlqb3Vob3VcIDsKK+imj+WItuino+mZpCA+IGtpc2Vpa2Fpam9cIDsKK+awl+eElOS4h+S4iCA+IGtpZW5iYW5qb3VcIDsKK+S4i+awtOW3peS6iyA+IGdlc3Vpa291amlcIDsKK+WQiOaEj+aDheatuyA+IGdvdWlqb3VzaGlcIDsKK+atpuijheW5s+WSjCA+IGJ1c291aGVpd2FcIDsKK+S7mOW4r+S6i+mghSA+IGZ1dGFpamlrb3VcIDsKK+ihjOaWueS4jeaYjiA+IHl1a3VlZnVtZWlcIDsKK+Wkqeawl+S6iOWgsSA+IHRlbmtpeW9ob3VcIDsKK+S4jeW5s+S4jea6gCA+IGZ1aGVpZnVtYW5cIDsKK+iiq+S/nemZuuiAhSA+IGhpaG9rZW5zaGFcIDsKK+imquWtkOmbu+ipsSA+IG95YWtvZGVud2FcIDsKK+WkmuaDheWkmuaBqCA+IHRham91dGFrb25cIDsKK+e1jOWWtuegtOe2uyA+IGtlaWVpaGF0YW5cIDsKK+izm+WKqeS8muWToSA+IHNhbmpva2FpaW5cIDsKK+S4i+mDqOani+mAoCA+IGthYnVrb3V6b3VcIDsKK+avjuWcn+abnOaXpSA+IG1haWRveW91YmlcIDsKK+S6iOeul+aOque9riA+IHlvc2Fuc29jaGlcIDsKK+S4jeepj+WIhuWtkCA+IGZ1b25idW5zaGlcIDsKK+WWnOaAkuWTgOalvSA+IGtpZG9haXJha3VcIDsKK+a8ouWSjOi+nuWFuCA+IGthbndhaml0ZW5cIDsKK+WPi+iqvOWbveWutiA+IHl1dWdpa29ra2FcIDsKK+ebuOS6kuS/nemZuiA+IHNvdWdvaG9rZW5cIDsKK+S6i+Wkp+S4u+e+qSA+IGppZGFpc2h1Z2lcIDsKK+S6lOi8quS8muitsCA+IGdvcmlua2FpZ2lcIDsKK+iqnuW9ouWkieWMliA+IGdva2VpaGVua2FcIDsKK+mdnuaIpumXmOWToSA+IGhpc2VudG91aW5cIDsKK+eEoeW/teeEoeaDsyA+IG11bmVubXVzb3VcIDsKK+a8lOeul+aJi+mghiA+IGVuemFudGVqdW5cIDsKK+atpuaWreS4u+e+qSA+IGJ1ZGFuc2h1Z2lcIDsKK+S4luipseS6uumWkyA+IHNld2FuaW5nZW5cIDsKK+W5vuS9leW5s+WdhyA+IGtpa2FoZWlraW5cIDsKK+S6uuW3pemZjembqCA+IGppbmtvdWtvdXVcIDsKK+iHquWVj+iHquetlCA+IGppbW9uaml0b3VcIDsKK+eah+e0gOW5tOW6piA+IGtvdWtpbmVuZG9cIDsKK+WPo+iFlOWkluenkSA+IGtvdWtvdWdla2FcIDsKK+iEs+aAp+m6u+eXuiA+IG5vdXNlaW1haGlcIDsKK+S6lOWNgemfs+mghiA+IGdvanV1b25qdW5cIDsKK+a8lOeul+eyvuW6piA+IGVuemFuc2VpZG9cIDsKK+WNgeWtl+aetueKtiA+IGp1dWppa2Fqb3VcIDsKK+S4jeiAgeS4jeatuyA+IGZ1cm91ZnVzaGlcIDsKK+S4lueVjOS4u+e+qSA+IHNla2Fpc2h1Z2lcIDsKK+ieuumIv+e0sOW3pSA+IHJhZGVuemFpa3VcIDsKK+iomOi8ieS6i+mghSA+IGtpc2Fpamlrb3VcIDsKK+eCree0oOe5iue2rSA+IHRhbnNvc2VuJydpXCA7CivnhKHnt5rpm7voqbEgPiBtdXNlbmRlbndhXCA7CivmuKnmg4XkuLvnvqkgPiBvbmpvdXNodWdpXCA7CivlgIvkurrntYzllrYgPiBrb2ppbmtlaWVpXCA7CivlpZTmlL7kuI3nvoggPiBob25wb3VmdWtpXCA7CivpiYTlmajmmYLku6MgPiB0ZWtraWppZGFpXCA7CivniankvqHpqLDosrQgPiBidWtrYXRvdWtpXCA7Civml6XmnKzoiJ7ouIogPiBuaWhvbmJ1eW91XCA7Civogb7llJblrabmoKEgPiByb3VhZ2Fra291XCA7Civnj77ku6Poi7Hoqp4gPiBnZW5kYWllaWdvXCA7CivljYHkuozkvb/lvpIgPiBqdXVuaXNoaXRvXCA7Civml6XmnKzluq3lnJIgPiBuaWhvbnRlaWVuXCA7CivpgbrkvJ3mmpflj7cgPiBpZGVuJydhbmdvdVwgOwor6LuN5LqL6Ly46YCBID4gZ3Vuaml5dXNvdVwgOwor5Ly05oCn6YG65LydID4gaGFuc2VpaWRlblwgOwor57WM5Za25Y+C5YqgID4ga2VpZWlzYW5rYVwgOwor5LqI5YKZ6YG45oyZID4geW9iaXNlbmt5b1wgOwor5LqI5YKZ6Imm6ZqKID4geW9iaWthbnRhaVwgOwor5LqI5YKZ6YG45omLID4geW9iaXNlbnNodVwgOwor5LiN5YC25oi05aSpID4gZnVndXRhaXRlblwgOwor5bmz5ZKM6YOo6ZqKID4gaGVpd2FidXRhaVwgOwor5ZSv44CF6Ku+44CFID4gaWlkYWt1ZGFrdVwgOwor6KOB5Yik5rKZ5rGwID4gc2FpYmFuemF0YVwgOwor5Za25Yip5rOV5Lq6ID4gZWlyaWhvdWppblwgOwor6K2w5Lya5pS/5rK7ID4gZ2lrYWlzZWlqaVwgOwor6Zuo5aSp6aCG5bu2ID4gdXRlbmp1bicnZW5cIDsKK+S7mOW4r+iyu+eUqCA+IGZ1dGFpaGl5b3VcIDsKK+S7o+itsOWToeWboyA+IGRhaWdpaW5kYW5cIDsKK+S6jOmHjeiqsueojiA+IG5panV1a2F6ZWlcIDsKK+aJtumkiuaOp+mZpCA+IGZ1eW91a291am9cIDsKK+ihm+aYn+mDveW4giA+IGVpc2VpdG9zaGlcIDsKK+mbu+awl+Wbnui3ryA+IGRlbmtpa2Fpcm9cIDsKK+WcsOS4i+S6jOmajiA+IGNoaWthbmlrYWlcIDsKK+mgkOmHkeWPo+W6pyA+IHlva2lua291emFcIDsKK+iJsuaBi+aymeaxsCA+IGlyb2tvaXphdGFcIDsKK+iyqOW5o+S+oeWApCA+IGthaGVpa2FjaGlcIDsKK+aui+WLmeaVtOeQhiA+IHphbm11c2VpcmlcIDsKK+WFrOWWtuS/nemZuiA+IGtvdWVpaG9rZW5cIDsKK+itsua4oeaLheS/nSA+IGpvdXRvdGFucG9cIDsKK+S4gOWutuWbo+askiA+IGlra2FkYW5yYW5cIDsKK+S7o+itsOWToeS8miA+IGRhaWdpaW5rYWlcIDsKK+ijnOato+S6iOeulyA+IGhvc2VpeW9zYW5cIDsKK+mBjuWJsOmYsuihmyA+IGtham91Ym91ZWlcIDsKK+S6iOWCmeW6p+W4rSA+IHlvYml6YXNla2lcIDsKK+ihm+eUn+Wfuua6liA+IGVpc2Vpa2lqdW5cIDsKK+S/neitt+Wbo+S9kyA+IGhvZ29kYW50YWlcIDsKK+WEgOijhemmrOi7iiA+IGdpc291YmFzaGFcIDsKK+aZguS6i+WVj+mhjCA+IGppamltb25kYWlcIDsKK+Wkq+WppuWWp+WYqSA+IGZ1dWZ1Z2Vua2FcIDsKK+aWreWbuuaKl+itsCA+IGRhbmtva291Z2lcIDsKK+S6lOi8quiBlueBqyA+IGdvcmluc2Vpa2FcIDsKK+iHquWIhuWLneaJiyA+IGppYnVua2F0dGVcIDsKK+i7jemcgOaZr+awlyA+IGd1bmp1a2Vpa2lcIDsKK+WfuuW6lemDqOmWgCA+IGtpdGVpYnVtb25cIDsKK+S4uOWkquWwj+WxiyA+IG1hcnV0YWdveWFcIDsKK+S6iOaDs+WIqeebiiA+IHlvc291cmlla2lcIDsKK+S6lOmfs+mfs+majiA+IGdvb24nJ29ua2FpXCA7CivngavmsJfljrPnpoEgPiBrYWtpZ2Vua2luXCA7CivljYHlrZfmnrblg48gPiBqdXVqaWthem91XCA7Civlh6bnkIbpgY7nqIsgPiBzaG9yaWthdGVpXCA7CivkuIDlrprkuI3lpIkgPiBpdHRlaWZ1aGVuXCA7CivmnIjkuIvnvo7kurogPiBnZWtrYWJpamluXCA7CivngKzmiLjlhoXmtbcgPiBzZXRvbmFpa2FpXCA7CivogIHmlL/msrvlrrYgPiByb3VzZWlqaWthXCA7Civlip/liKnkuLvnvqkgPiBrb3VyaXNodWdpXCA7Civopo/liLbnt6nlkowgPiBraXNlaWthbndhXCA7CivlpoLmmK/miJHogZ4gPiBueW96ZWdhbW9uXCA7CivmmI7msrvmmYLku6MgPiBtZWlqaWppZGFpXCA7CivlkIzljJbkvZznlKggPiBkb3VrYXNheW91XCA7CivliKXpgJTpoJDph5EgPiBiZXR0b3lva2luXCA7CivkuIvnqK7moLnmgKcgPiBnZXN1a29uam91XCA7Civmj7TliqnkuqTpmpsgPiBlbmpva291c2FpXCA7Civlm73kvJrorbDlk6EgPiBrb2trYWlnaWluXCA7CivlnJ/lnLDliKnnlKggPiB0b2NoaXJpeW91XCA7CivmoITmnq/nm5voobAgPiBlaWtvc2Vpc3VpXCA7Civnm7jkupLkvZznlKggPiBzb3Vnb3NheW91XCA7CivoiJ7lj7DooaPoo4UgPiBidXRhaWlzaG91XCA7CivlkIjorbDliLbluqYgPiBnb3VnaXNlaWRvXCA7Civpm4zpm4TnlbDmoKogPiBzaGl5dXVpc2h1XCA7Civlj43lsIToqqTlt64gPiBoYW5zaGFnb3NhXCA7CivloanntKDphbjloakgPiBlbnNvc2FuJydlblwgOwor57W25a++6Kqk5beuID4gemV0dGFpZ29zYVwgOwor54mp5pCN5LqL5pWFID4gYnVzc29uamlrb1wgOwor5YWo6YOo5L+d6Zm6ID4gemVuYnVob2tlblwgOwor5oKq5ber5bGx5oivID4gd2FydWZ1emFrZVwgOwor5pW05b2i5aSW56eRID4gc2Vpa2VpZ2VrYVwgOwor5q2m5a625pS/5qipID4gYnVrZXNlaWtlblwgOwor5LqM6aCF5YiG5biDID4gbmlrb3VidW5wdVwgOwor5pig55S75Lya56S+ID4gZWlnYWdhaXNoYVwgOwor6YmE56Cy55m+5ZCIID4gdGVwcG91eXVyaVwgOwor5ZCN6KqJ5Lya5ZOhID4gbWVpeW9rYWlpblwgOwor5b+c5Yuf55So57SZID4gb3Vib3lvdXNoaVwgOwor6Ieq5rWE5L2c55SoID4gamlqb3VzYXlvdVwgOwor5aSW6LKo6aCQ6YeRID4gZ2Fpa2F5b2tpblwgOwor5oGQ5oCW5pig55S7ID4ga3lvdWZ1ZWlnYVwgOwor6Kqy56iO5o6n6ZmkID4ga2F6ZWlrb3Vqb1wgOwor6Kix5a656Kqk5beuID4ga3lveW91Z29zYVwgOwor5LiN5a6a5pyf5YiRID4gZnV0ZWlraWtlaVwgOwor5piO5rK757at5pawID4gbWVpamlpc2hpblwgOwor6KiA6Kqe5qmf6IO9ID4gZ2VuZ29raW5vdVwgOwor5L+d56iO5YCJ5bqrID4gaG96ZWlzb3Vrb1wgOwor5Yy755mC5qmf6ZaiID4gaXJ5b3VraWthblwgOwor55+z5LqV6IGw5LqSID4gaXNoaWlzb3Vnb1wgOwor6LuN5LqL5bCB6Y6WID4gZ3VuamlmdXVzYVwgOwor5L2N6ZqO5Yuy562JID4gaWthaWt1bnRvdVwgOwor6ICQ54Gr54WJ55OmID4gdGFpa2FyZW5nYVwgOwor5Y+k5LuK54Sh6aGeID4ga29rb25tdXJ1aVwgOwor6Zu75rOi566h55CGID4gZGVucGFrYW5yaVwgOwor5rCR5LqL5LqL5Lu2ID4gbWluamlqaWtlblwgOwor6Ieq54S25L+d6K23ID4gc2hpemVuaG9nb1wgOwor55S75YOP5Yem55CGID4gZ2F6b3VzaG9yaVwgOwor56iu56iu6ZuR5aSaID4gc2h1anV6YXR0YVwgOwor5pig55S75L+z5YSqID4gZWlnYWhhaXl1dVwgOwor55uu6Iy255uu6Iy2ID4gbWVjaGFtZWNoYVwgOwor56OB5rCX6Yyy6Z+zID4gamlraXJva3VvblwgOwor5LiN5Y2U5ZKM6Z+zID4gZnVreW91d2FvblwgOwor5pys5L2N6KiY5Y+3ID4gaG9uJydpa2lnb3VcIDsKK+ihm+eUn+euoeeQhiA+IGVpc2Vpa2FucmlcIDsKK+ebuOS6kuS4u+e+qSA+IHNvdWdvc2h1Z2lcIDsKK+W/nOWLn+izh+mHkSA+IG91Ym9zaGlraW5cIDsKK+W+qeWPpOS4u+e+qSA+IGZ1a2tvc2h1Z2lcIDsKK+asoeS6nOehq+mFuCA+IGppYXJ5dXVzYW5cIDsKK+W5s+WuieaZguS7oyA+IGhlaWFuamlkYWlcIDsKK+aDheWgseapn+WZqCA+IGpvdWhvdWtpa2lcIDsKK+S4ieS9jeS4gOS9kyA+IHNhbm1paXR0YWlcIDsKK+aUv+WLmeasoeWumCA+IHNlaW11amlrYW5cIDsKK+mbjOmbhOeVsOS9kyA+IHNoaXl1dWl0YWlcIDsKK+atpuaWreaUv+ayuyA+IGJ1ZGFuc2VpamlcIDsKK+mFuOWMlueCree0oCA+IHNhbmthdGFuc29cIDsKK+awtOW9qeeUu+WutiA+IHN1aXNhaWdha2FcIDsKK+WfuuekjuS7o+isnSA+IGtpc290YWlzaGFcIDsKK+S4gOadr+apn+WrjCA+IGlwcGFpa2lnZW5cIDsKK+mBk+i3r+i8uOmAgSA+IGRvdXJveXVzb3VcIDsKK+S6nOeGseW4r+aelyA+IGFuZXR0YWlyaW5cIDsKK+mdkuaBr+WQkOaBryA+IGFvaWtpdG9pa2lcIDsKK+aFh+aHg+eEoeekvCA+IGluZ2luYnVyZWlcIDsKK+eznuecn+mdouebriA+IGt1c29tYWppbWVcIDsKK+iHquS4u+imj+WItiA+IGppc2h1a2lzZWlcIDsKK+W8peeUn+aZguS7oyA+IHlheW9pamlkYWlcIDsKK+ebruiMtuiLpuiMtiA+IG1lY2hha3VjaGFcIDsKK+S6iOWCmeS8muirhyA+IHlvYmlrYWlkYW5cIDsKK+etieS9jeani+mAoCA+IHRvdWlrb3V6b3VcIDsKK+S7lua1geippuWQiCA+IHRhcnl1dWppYWlcIDsKK+WuieWumuaTjeS9nCA+IGFudGVpc291c2FcIDsKK+eEoeWEn+ihjOeCuiA+IG11c2hvdWtvdWlcIDsKK+Wkj+acn+S8keaahyA+IGtha2lreXV1a2FcIDsKK+Wkj+acn+WtpuagoSA+IGtha2lnYWtrb3VcIDsKK+Wuh+WumeWMu+WtpiA+IHVjaHV1aWdha3VcIDsKK+WQjeiqiemZpOmaiiA+IG1laXlvam90YWlcIDsKK+S6lOiHk+WFreiFkSA+IGdvem91cm9wcHVcIDsKK+Wft+ihjOWnlOWToSA+IHNoaWtrb3VpaW5cIDsKK+Wbm+mdoualmuatjCA+IHNoaW1lbnNva2FcIDsKK+WogemiqOWgguWggiA+IGlmdXVkb3Vkb3VcIDsKK+i7jeS6i+S8muitsCA+IGd1bmppa2FpZ2lcIDsKK+i3m+ihjOaZr+awlyA+IGhha291a2Vpa2lcIDsKK+mlgumjqeeyieeXhSA+IHVkb25rb2J5b3VcIDsKK+WkqeS4i+S4gOWTgSA+IHRlbmthaXBwaW5cIDsKK+WfuuWcsOmWiemOliA+IGtpY2hpaGVpc2FcIDsKK+ethuiomOeUqOWFtyA+IGhpa2tpeW91Z3VcIDsKK+iSuOawl+apn+mWoiA+IGpvdWtpa2lrYW5cIDsKK+ejgeawl+aKteaKlyA+IGppa2l0ZWlrb3VcIDsKK+S4geWtl+WumuimjyA+IHRlaWppam91Z2lcIDsKK+WbuuWumumHkeWIqSA+IGtvdGVpa2lucmlcIDsKK+i1t+WLleaZgumWkyA+IGtpZG91amlrYW5cIDsKK+iHquW3seasuueeniA+IGppa29naW1hblwgOwor5oWw5a6J5peF6KGMID4gaWFucnlva291XCA7Civpm7vmsJflmajlhbcgPiBkZW5raWtpZ3VcIDsKK+WNseapn+aJk+iAhSA+IGtpa2lkYXNoYVwgOwor5aGp5YyW5rC057SgID4gZW5rYXN1aXNvXCA7CivkurrkuovnlbDli5UgPiBqaW5qaWlkb3VcIDsKK+S6nOmJm+mJhOadvyA+IGFlbnRlcHBhblwgOwor6YGu5LqM54Sh5LqMID4gc2hhbmltdW5pXCA7CivpgbrkvJ3lnLDlm7MgPiBpZGVuY2hpenVcIDsKK+S4jeazleihjOeCuiA+IGZ1aG91a291aVwgOwor5q275L2T6YG65qOEID4gc2hpdGFpaWtpXCA7CivlhoXph47lronmiZMgPiBuYWl5YWFuZGFcIDsKK+W5s+epj+eEoeS6iyA+IGhlaW9uYnVqaVwgOwor5piO5piO5b6M5pelID4gc2hpYXNhdHRlXCA7CivkuIDmsJflkbXmiJAgPiBpa2tpa2FzZWlcIDsKK+atpuWZqOiyuOS4jiA+IGJ1a2l0YWl5b1wgOwor5LiA5aSr5aSa5aa7ID4gaXBwdXRhc2FpXCA7CivljbHmqZ/nqoHnoLQgPiBraWtpdG9wcGFcIDsKK+WMu+eZguapn+WZqCA+IGlyeW91a2lraVwgOwor5aSp5LiL54Sh5q+UID4gdGVua2FtdWhpXCA7Civmjqnorbfpg6jpmoogPiBlbmdvYnV0YWlcIDsKK+mmrOm5v+mHjumDjiA+IGJha2F5YXJvdVwgOwor5Y+j6Kqe6Iux6KqeID4ga291Z29laWdvXCA7CivpiYTngavlkbPlmYwgPiB0ZWtrYW1pc29cIDsKK+mYv+W8pemZgOe1jCA+IGFtaWRha3lvdVwgOwor6Zi/5byl6ZmA57GkID4gYW1pZGFrdWppXCA7CivlrZjlnKjmhI/nvqkgPiBzb256YWlpZ2lcIDsKK+WPiOW+k+WFhOW8nyA+IG1hdGFpdG9rb1wgOwor57695q+b5biD5ZujID4gdW1vdWZ1dG9uXCA7CivliKnlt7HkuLvnvqkgPiByaWtvc2h1Z2lcIDsKK+WWtuWIqeS4u+e+qSA+IGVpcmlzaHVnaVwgOwor54Sh5aOw5pig55S7ID4gbXVzZWllaWdhXCA7Civoo5zliqnmvKLlrZcgPiBob2pva2FuamlcIDsKK+WSjOiLsei+nuabuCA+IHdhZWlqaXNob1wgOwor5ZCM5L2N5YWD57SgID4gZG91aWdlbnNvXCA7Civlho3lvpPlhYTlvJ8gPiBmdXRhaXRva29cIDsKK+S6nOmJm+WHuOeJiCA+IGFlbnRvcHBhblwgOwor56OB5rCX5rWu5LiKID4gamlraWZ1am91XCA7CivkuI3ms5Xnp7vmsJEgPiBmdWhvdWltaW5cIDsKK+i2iuaoqeihjOeCuiA+IGVra2Vua291aVwgOwor5Li75oSP5Li7576pID4gc2h1aXNodWdpXCA7Civoh6rlt7HmpJzmn7sgPiBqaWtva2Vuc2FcIDsKK+WkmuS6i+WkmumboyA+IHRhaml0YW5hblwgOwor77yh77yi77yj6aCGID4gxJNixKtzaMSranVuXCA7CivmhI/msJfmj5rmj5ogPiBpa2l5b3V5b3VcIDsKK+WSjOiLsei+nuWFuCA+IHdhZWlqaXRlblwgOwor5LiN5oSP6Kmm6aiTID4gZnVpc2hpa2VuXCA7CivmqKHnr4ToqablkIggPiBtb2hhbmppYWlcIDsKK+S6jOmHjeavjemfsyA+IG5panV1Ym9pblwgOwor5qCE6ICA5qCE6I+vID4gZWl5b3VlaWdhXCA7Civmr43oqp7oqbHogIUgPiBib2dvd2FzaGFcIDsKK+acqOaIuOW+oeWFjSA+IGtpZG9nb21lblwgOwor6Ieq5bex55aO5aSWID4gamlrb3NvZ2FpXCA7Civln7rnpI7mjqfpmaQgPiBraXNva291am9cIDsKK+S4gOWumua4qeW6piA+IGl0dGVpb25kb1wgOwor5omL5YmN5ZGz5ZmMID4gdGVtYWVtaXNvXCA7CivlhYHmloflhYHmraYgPiBpbmJ1bmluYnVcIDsKK+iHquaatOiHquajhCA+IGppYm91amlraVwgOwor55u45pKy6YOo5bGLID4gc3Vtb3ViZXlhXCA7Civoh6rlt7Hkv53lrZggPiBqaWtvaG96b25cIDsKK+WkmuS6i+WkmuerryA+IHRhaml0YXRhblwgOwor5piO44CF5b6M5pelID4gc2hpYXNhdHRlXCA7Civmm5bmmKfmqKHns4ogPiBhaW1haW1va29cIDsKK+S6i+WLmeasoeWumCA+IGppbXVqaWthblwgOwor5rCX5a6H5bqD5aSnID4ga2l1a291ZGFpXCA7CivlpJrmlbDmhI/oposgPiB0YXN1dWlrZW5cIDsKK+atr+enkeWMu+W4qyA+IHNoaWthaXNoaVwgOwor576O5YyW6YGL5YuVID4gYmlrYXVuZG91XCA7Civoh6rlt7HkuLvnvqkgPiBqaWtvc2h1Z2lcIDsKK+Wun+ihjOWnlOWToSA+IGppa2tvdWlpblwgOwor5ZCI5rCX6YGT5a62ID4gYWlraWRvdWthXCA7Civpgbrml4/mibbliqkgPiBpem9rdWZ1am9cIDsKK+Wokee+heWPjOaouSA+IHNhcmFzb3VqdVwgOwor5oSP5rCX5o+a44CFID4gaWtpeW91eW91XCA7Civoh6rlt7HpoZXnpLogPiBqaWtva2VuamlcIDsKK+iHquW3seiyoOaLhSA+IGppa29mdXRhblwgOwor6Zyy5aSp6aKo5ZGCID4gcm90ZW5idXJvXCA7CivmhI/msJfmipXlkIggPiBpa2l0b3Vnb3VcIDsKK+mBi+WQpuWkqeizpiA+IHVucHV0ZW5wdVwgOwor5a+M5qCE6aSK5YyWID4gZnVlaXlvdWthXCA7CivljbDluqbmlK/pgqMgPiBpbmRvc2hpbmFcIDsKK+asp+WMluS4u+e+qSA+IG91a2FzaHVnaVwgOwor54Sh5LqM54Sh5LiJID4gbXVuaW11emFuXCA7CivkuInml6XkuInlpJwgPiBtaWtrYW1peW9cIDsKK+eJoeS4uea1t+iAgSA+IGJvdGFuJydlYmlcIDsKK+mbu+awl+apn+WZqCA+IGRlbmtpa2lraVwgOwor6Ieq5bex5auM5oKqID4gamlrb2tlbicnb1wgOwor5Z+65pys5ZCI5oSPID4ga2lob25nb3VpXCA7CivlsI/lhZDnp5HljLsgPiBzaG91bmlrYWlcIDsKK+aIkeatpuiAhee+hSA+IGdhbXVzaGFyYVwgOwor6Ieq5bex54qg54myID4gamlrb2dpc2VpXCA7Civnm7jkupLmibbliqkgPiBzb3Vnb2Z1am9cIDsKK+WQjOmfs+eVsOe+qSA+IGRvdW9uJydpZ2lcIDsKK+iHquW3seacrOS9jSA+IGppa29ob24nJ2lcIDsKK+eVsOW4uOmrmOa4qSA+IGlqb3Vrb3VvblwgOwor6LuN5LqL5o+05YqpID4gZ3VuamllbmpvXCA7CivlvIrooaPnoLTluL0gPiBoZWlpaGFib3VcIDsKK+S4g+S6lOS4iee4hCA+IHNoaW1lbmF3YVwgOwor5paH5YyW6YG655SjID4gYnVua2Fpc2FuXCA7Civlj4jlvpPlp4nlprkgPiBtYXRhaXRva29cIDsKK+iHquWutuWPl+eyviA+IGppa2FqdXNlaVwgOwor6Ieq5a625Y+X57KJID4gamlrYWp1ZnVuXCA7CivmsJHnlJ/lp5Tlk6EgPiBtaW5zZWlpaW5cIDsKK+aEm+S7luS4u+e+qSA+IGFpdGFzaHVnaVwgOwor5LiA5YWa5LiA5rS+ID4gaXR0b3VpcHBhXCA7CivmgKrlpYfmmKDnlLsgPiBrYWlraWVpZ2FcIDsKK+mHiOi/pueJn+WwvCA+IHNoYWthbXVuaVwgOwor56S+5Lya57WM5riIID4gc2hha2Fpa2VpXCA7CivntZDot4/otrrluqcgPiBrZWtrYWZ1emFcIDsKK+iTlum6u+WtkOayuSA+IGhpbWFzaGl5dVwgOwor5aSp5rCX5YW35ZCIID4gdGVua2lndWFpXCA7CivkuIDlj6PlkIzpn7MgPiBpa2t1ZG91b25cIDsKK+S4jeWPr+aAneitsCA+IGZ1a2FzaGlnaVwgOwor5Yy75LqL5Lyd6YGTID4gaWppZGVuZG91XCA7Civpn7Ppg6joqJjlj7cgPiBvbmJ1a2lnb3VcIDsKK+WliOiJr+aZguS7oyA+IG5hcmFqaWRhaVwgOwor6ICz6by75ZK95ZaJID4gamliaWlua291XCA7CivnqbrmsJfmsZrmn5MgPiBrdXVraW9zZW5cIDsKK+eDj+W4veWtkOiynSA+IGVib3NoaWdhaVwgOwor5pyJ6LGh54Sh6LGhID4gdXpvdW11em91XCA7CivotbfoqLTnjLbkuoggPiBraXNveXV1eW9cIDsKK+S8iuWLouelnuWuriA+IGlzZWppbmd1dVwgOwor5bC45L2N57Sg6aSQID4gc2hpaXNvc2FuXCA7Civph47lpKnpoqjlkYIgPiBub3RlbmJ1cm9cIDsKK+eEoeeQhueEoeS9kyA+IG11cmltdXRhaVwgOwor5oSP5rCX6LuS6auYID4gaWtpa2Vua291XCA7Civoqp7lsL7lpInljJYgPiBnb2JpaGVua2FcIDsKK+S5neWIhuS5neWOmCA+IGt1YnVrdXJpblwgOwor6Ieq5bex6KaP5Yi2ID4gamlrb2tpc2VpXCA7CivlkIzlp5Tlk6HkvJogPiBkb3VpaW5rYWlcIDsKK+aymee+heWPjOaouSA+IHNhcmFzb3VqdVwgOwor5LiA5aa75aSa5aSrID4gaXNzYWl0YWZ1XCA7CivkuI3mraPooYzngrogPiBmdXNlaWtvdWlcIDsKK+ePvueKtue2reaMgSA+IGdlbmpvdWlqaVwgOwor576O6L6e6bqX5Y+lID4gYmlqaXJlaWt1XCA7CivkuI3oqIDkuI3oqp4gPiBmdWdlbmZ1Z29cIDsKK+S4i+mDqOapn+mWoiA+IGthYnVraWthblwgOwor5YCL5Lq66Kqk5beuID4ga29qaW5nb3NhXCA7Civoh6rnlLHmhI/lv5cgPiBqaXl1dWlzaGlcIDsKK+S6jOasoeiomOaGtiA+IG5pamlraW9rdVwgOwor5Yy65Lya6K2w5ZOhID4ga3VrYWlnaWluXCA7Civlj6TkuovoqJjkvJ0gPiBrb2ppa2lkZW5cIDsKK+eEoeeCuueEoeetliA+IG11aW11c2FrdVwgOwor5bCP55Sf5oSP5rCXID4ga29uYW1haWtpXCA7CivmsZrmn5PpmaTljrsgPiBvc2Vuam9reW9cIDsKK+aJtumkiue+qeWLmSA+IGZ1eW91Z2ltdVwgOwor5pOs5Y+k5Li7576pID4gZ2lrb3NodWdpXCA7CivkuZ3lr7jkupTliIYgPiBrdXN1bmdvYnVcIDsKK+aEj+awl+i7kuaYgiA+IGlraWtlbmtvdVwgOwor5aWz6YOO6JyY6JubID4gam9yb3VndW1vXCA7CivkuI3pmo/mhI/nrYsgPiBmdXp1aWlraW5cIDsKK+enu+ihjOacn+mWkyA+IGlrb3VraWthblwgOwor5LuY5Yqg5L6h5YCkID4gZnVrYWthY2hpXCA7CivlnJ/lo4zmsZrmn5MgPiBkb2pvdW9zZW5cIDsKK+S4iumZouitsOWToSA+IGpvdWluZ2lpblwgOwor5b6h5a626aiS5YuVID4gb2llc291ZG91XCA7CivkuozluqbkuInluqYgPiBuaWRvc2FuZG9cIDsKK+mrmOellumgreW3viA+IGtvc296dWtpblwgOwor5LqI5YKZ6YOo5ZOBID4geW9iaWJ1aGluXCA7Civoh6rlt7HmibnliKQgPiBqaWtvaGloYW5cIDsKK+iHqueUu+iHquizmyA+IGppZ2FqaXNhblwgOwor6Ieq55S76Ieq6K6aID4gamlnYWppc2FuXCA7CivpppbkvY3miZPogIUgPiBzaHVpZGFzaGFcIDsKK+WboOaenOW/nOWgsSA+IGluZ2FvdWhvdVwgOwor5LiL5aWz5LiL55S3ID4gZ2Vqb2dlbmFuXCA7Civlronmpb3mpIXlrZAgPiBhbnJha3Vpc3VcIDsKK+WnlOWToeS7mOiolyA+IGlpbmZ1dGFrdVwgOwor5LqI5YKZ6YGL5YuVID4geW9iaXVuZG91XCA7CivpgbrnlKPnrqHnkIYgPiBpc2Fua2FucmlcIDsKK+S6ieitsOihjOeCuiA+IHNvdWdpa291aVwgOwor6bq75amG6LGG6IWQID4gbcSBYm9kb3VmdVwgOwor5paH5YyW5pig55S7ID4gYnVua2FlaWdhXCA7CivmhI/lkbPlhoXlrrkgPiBpbWluYWl5b3VcIDsKK+S6iOWCmeWIpOS6iyA+IHlvYmloYW5qaVwgOwor5q2m5a625pmC5LujID4gYnVrZWppZGFpXCA7CivljLvnmYLpgY7oqqQgPiBpcnlvdWthZ29cIDsKK+atpuWutuaUv+ayuyA+IGJ1a2VzZWlqaVwgOwor5aWz546L6Zmb5LiLID4gam9vdWhlaWthXCA7CivlpKfmsJfmsZrmn5MgPiB0YWlraW9zZW5cIDsKK+WfuuekjuW3peS6iyA+IGtpc29rb3VqaVwgOwor54Sh55CG5b6A55SfID4gbXVyaW91am91XCA7CivkvZXmmYLmmYLliIYgPiBpdHN1amlidW5cIDsKK+ebuOS6kuS+neWtmCA+IHNvdWdvaXpvblwgOwor6Kqe5b2Z6KaP5YmHID4gZ29pa2lzb2t1XCA7Civoh6rlt7HlvIHorbcgPiBqaWtvYmVuZ29cIDsKK+S6lOWNgemfs+WbsyA+IGdvanV1b256dVwgOwor5Yip5LuW5Li7576pID4gcml0YXNodWdpXCA7CivliqDmjIHnpYjnpbcgPiBrYWppa2l0b3VcIDsKK+iKseWNieWckuiKuCA+IGtha2llbmdlaVwgOwor5ZKM6KO96Iux6KqeID4gd2FzZWllaWdvXCA7Civku67lkI3miYvmnKwgPiBrYW5hZGVob25cIDsKK+iLseWSjOi+nuWFuCA+IGVpd2FqaXRlblwgOwor5LqI5YKZ5Lya6K2wID4geW9iaWthaWdpXCA7CivkuozpmaLliLbluqYgPiBuaWluc2VpZG9cIDsKK+Wkj+acn+aZgumWkyA+IGtha2lqaWthblwgOwor5LqV5oi45bGL5b2iID4gaWRveWFrYXRhXCA7Civoh6rlt7Hnn5vnm74gPiBqaWtvbXVqdW5cIDsKK+WNseapn+euoeeQhiA+IGtpa2lrYW5yaVwgOwor5Z+656SO5L2T5ripID4ga2lzb3RhaW9uXCA7Civnm4LomK3nm4bkvJogPiB1cmFib24nJ2VcIDsKK+WMu+enkeatr+enkSA+IGlrYXNoaWthXCA7CivkuozluqbmiYvplpMgPiBuaWRvZGVtYVwgOwor5LqO6Jit55uG5LyaID4gdXJhYm9uJydlXCA7CivmgbXmr5Tlr7/poZQgPiBlYmlzdWdhb1wgOwor5oSa5Zuz5oSa5ZuzID4gZ3V6dWd1enVcIDsKK+WSjOawl+iXueiXuSA+IHdha2lhaWFpXCA7CivkuI3nnJ/pnaLnm64gPiBmdW1hamltZVwgOwor5b6X5omL5Yud5omLID4gZXRla2F0dGVcIDsKK+WvhOS7mOihjOeCuiA+IGtpZnVrb3VpXCA7CivkuY7lj6TmraLngrkgPiBva290b3RlblwgOwor5a+M5aOr5LqU5rmWID4gZnVqaWdva29cIDsKK+aYr+aYr+mdnumdniA+IHplemVoaWhpXCA7CivmiJHliKnmiJHliKkgPiBnYXJpZ2FyaVwgOwor5rGf5oi45pmC5LujID4gZWRvamlkYWlcIDsKK+atr+enkeWMu+mZoiA+IHNoaWthaWluXCA7CivmhI/msJfpmLvllqogPiBpa2lzb3NvdVwgOwor6YGV54qv6KGM54K6ID4gaWhhbmtvdWlcIDsKK+aBteavlOmgiOismyA+IGViaXN1a291XCA7CivkuIDmrankuIDmrakgPiBpcHBvaXBwb1wgOwor5ZKM5rCX6Je544CFID4gd2FraWFpYWlcIDsKK+eEoeacn+W7tuacnyA+IG11a2llbmtpXCA7CivotaTps6XotaTohbkgPiBha2Frb2trb1wgOwor5aSp54i+5LmO5rOiID4gdGVuaXdvaGFcIDsKK+S+neaAmei0lOWxkyA+IGVrb2hpaWtpXCA7Civkuovli5nmqZ/lmaggPiBqaW11a2lraVwgOwor6Ieq5bex5pqX56S6ID4gamlrb2FuamlcIDsKK+S8r+WJjOilv+eIviA+IGJ1cmFqaXJ1XCA7CivkuIvpmaLorbDlk6EgPiBrYWluZ2lpblwgOwor6Zu75rCX5qSF5a2QID4gZGVua2lpc3VcIDsKK+W5s+WSjOe2reaMgSA+IGhlaXdhaWppXCA7CivmnInngrrou6LlpIkgPiB1aXRlbnBlblwgOwor6Iux5bCP5paH5a2XID4gZWlrb21vamlcIDsKK+S9leWHpuWFtuWHpiA+IGRva29zb2tvXCA7CivlvJbniL7kuY7ms6IgPiB0ZW5pd29oYVwgOwor5Ye65p2l5YW35ZCIID4gZGVraWd1YWlcIDsKK+aEj+WRs+mDqOmWgCA+IGltaWJ1bW9uXCA7CivlnJ/lt6booZvploAgPiBkb3phZW1vblwgOwor5oSP5ZGz5Y6f55CGID4gaW1pZ2VucmlcIDsKK+S+neS8sOi0lOWxkyA+IGVrb2hpaWtpXCA7Civlqabkurrnp5HljLsgPiBmdWppbmthaVwgOwor54OP5bi95a2Q5ZCNID4gZWJvc2hpbmFcIDsKK+miqOmCquawl+WRsyA+IGthemVnaW1pXCA7Civlt6bpoaflj7PnnIQgPiBzYWtvdWJlblwgOwor5Luu5ZCN5paH5a2XID4ga2FuYW1vamlcIDsKK+WcsOS4i+i2s+iiiyA+IGppa2F0YWJpXCA7CivlpKfnnJ/pnaLnm64gPiBvb21hamltZVwgOwor5qSc6Z2e6YGV5L2/ID4ga2ViaWlzaGlcIDsKK+W+oeeEoeaymeaxsCA+IGdvYnVzYXRhXCA7Civlj7Ppoaflt6bnnIQgPiB1a29zYWJlblwgOwor6YGV5rOV6KGM54K6ID4gaWhvdWtvdWlcIDsKK+S8muaEj+aWh+WtlyA+IGthaWltb2ppXCA7CivlkIjnuIHlpYfnuIEgPiBhaWVua2llblwgOwor55uj5p+75aeU5ZOhID4ga2Fuc2FpaW5cIDsKK+eVsOWPo+WQjOmfsyA+IGlrdWRvdW9uXCA7CivlvJXngavmuKnluqYgPiBpbmthb25kb1wgOwor6Zi/5Y+k5bGL6LKdID4gYWtveWFnYWlcIDsKK+eUn+ecn+mdouebriA+IGtpbWFqaW1lXCA7CivmmK/jgIXpnZ7jgIUgPiB6ZXplaGloaVwgOwor54Sh55CG55+i55CGID4gbXVyaXlhcmlcIDsKK+ekuuWogemBi+WLlSA+IGppaXVuZG91XCA7CivkuIDlpKvkuIDlqaYgPiBpcHB1aXBwdVwgOwor5LqU5YiG5LqU5YiGID4gZ29idWdvYnVcIDsKK+WkqeeIvumBoOazoiA+IHRlbml3b2hhXCA7Civlvozps6Xnvr3pmaIgPiBnb3RvYmFpblwgOwor5pyJ6IC254Sh6IC2ID4gdXlhbXV5YVwgOwor5Lqc57Gz5Yip5YqgID4gYW1lcmlrYVwgOwor6I2P6IOh6bq75rK5ID4gZWdvbWF5dVwgOwor55qu6Iaa56eR5Yy7ID4gaGlmdWthaVwgOwor5Y+z5b6A5bem5b6AID4gdW91c2FvdVwgOwor5Lqc6bq75LuB5rK5ID4gYW1hbml5dVwgOwor6Zqc5rOl54OP6LOKID4gYW9yaWlrYVwgOwor5b6h5oqr6Zyy55uuID4gb2hpcm9tZVwgOwor6LWk5ZWE5pyo6bOlID4gYWthZ2VyYVwgOwor5L+d6K235aeU5ZOhID4gaG9nb2lpblwgOwor6Zi/5byX5Yip5YqgID4gYWZ1cmlrYVwgOwor5LuK5pel5piO5pelID4ga3lvdWFzdVwgOwor5Lqc5ouJ5q+Y5LqcID4gYXJhYmlhXCA7CivkvIrli6LmtbfogIEgPiBpc2VlYmlcIDsKK+S6nOWJjOavlOS6nCA+IGFyYWJpYVwgOwor57eR5ZWE5pyo6bOlID4gYW9nZXJhXCA7CivlvqHnm67opovlvpcgPiBvbWVtaWVcIDsKK+Wvv+aVmeWupCA+IGtvdG9idWtpa3lvdXNoaXRzdVwgOwor56eB5bCP6KqsID4gd2F0YWt1c2hpc2hvdXNldHN1XCA7CivkuIPkuIPml6UgPiBzaGljaGlzaGljaGluaWNoaVwgOwor57Sr6Zyy6I2JID4gbXVyYXNha2l0c3V5dWt1c2FcIDsKK+S4g+OAheaXpSA+IHNoaWNoaXNoaWNoaW5pY2hpXCA7Civou73lj6PoqbEgPiBrYXJ1a3VjaGliYW5hc2hpXCA7CivmpI3nianos6ogPiBzaG9rdWJ1dHN1c2hpdHN1XCA7Civlrr/nm7TlrqQgPiBzaHVrdWNob2t1c2hpdHN1XCA7CivkuIDlj6PoqbEgPiBoaXRva3VjaGliYW5hc2hpXCA7CivnrY3nlJ/mtLsgPiB0YWtlbm9rb3NlaWthdHN1XCA7CivorbLmuKHkurogPiB5dXp1cml3YXRhc2hpbmluXCA7CivlhoXluZXoqbEgPiB1Y2hpbWFrdWJhbmFzaGlcIDsKK+mbhuacreS/giA+IHNodXVzYXRzdWdha2FyaVwgOwor6YeR5qeM6aCtID4ga2FuYWR6dWNoaWF0YW1hXCA7Civlh7rmnK3mjpsgPiBzaHVzc2F0c3VnYWthcmlcIDsKK+S4ieaMh+m0jiA+IG1pdHN1eXViaWthbW9tZVwgOwor5Ye65pyt5L+CID4gc2h1c3NhdHN1Z2FrYXJpXCA7CivohbDotaTnh5UgPiBrb3NoaWFrYXRzdWJhbWVcIDsKK+iouuWvn+WupCA+IHNoaW5zYXRzdXNoaXRzdVwgOwor6K2Y5Yil5YqbID4gc2hpa2liZXRzdXJ5b2t1XCA7Civnp4Hoh6rouqsgPiB3YXRha3VzaGlqaXNoaW5cIDsKK+W5s+a4heebmyA+IHRhaXJhbm9raXlvbW9yaVwgOwor5YWl5Ye65YqbID4gbnl1dXNodXRzdXJ5b2t1XCA7CivntJvlpLHlsYogPiBmdW5zaGl0c3V0b2Rva2VcIDsKK+axguiBt+S/giA+IGt5dXVzaG9rdWdha2FyaVwgOwor6YeR5aO655y8ID4ga2FuYXRzdWJvbWFuYWtvXCA7CivpmbPliJflrqQgPiBjaGlucmV0c3VzaGl0c3VcIDsKK+eJueWIpeWupCA+IHRva3ViZXRzdXNoaXRzdVwgOwor57Sr5rC05pm2ID4gbXVyYXNha2l6dWlzaG91XCA7Civlj5bnt6DlvbkgPiB0b3Jpc2hpbWFyaXlha3VcIDsKK+eJh+WPo+mwryA+IGthdGFrdWNoaWl3YXNoaVwgOwor5LiN5YCS57+BID4gb2tpYWdhcmlrb2Jvc2hpXCA7CivkuI3ogpbnp4EgPiBmdXNob3V3YXRha3VzaGlcIDsKK+WksealreeOhyA+IHNoaXRzdWd5b3VyaXRzdVwgOwor5oq95Ye654mpID4gY2h1dXNodXRzdWJ1dHN1XCA7CivlpbPlj4vpgZQgPiBvbicnbmF0b21vZGFjaGlcIDsKK+eZvuaXpeWSsyA+IGh5YWt1bmljaGl6ZWtpXCA7CivooYzliJflvI8gPiBneW91cmV0c3VzaGlraVwgOwor5Y+W5omx5Lq6ID4gdG9yaWF0c3VrYWluaW5cIDsKK+WHuuWFpeWbvSA+IHNodXRzdW55dXVrb2t1XCA7CivmiY3mp4zpoK0gPiBzYWlkenVjaGlhdGFtYVwgOwor6YCG6Kqs55qEID4gZ3lha3VzZXRzdXRla2lcIDsKK+WJr+mjn+eJqSA+IGZ1a3VzaG9rdWJ1dHN1XCA7Civnk6Lnrqrpr7AgPiBoeW91dGFuJyduYW1henVcIDsKK+adseWNiueQgyA+IGhpZ2FzaGloYW5reXV1XCA7Civli5Xnianos6ogPiBkb3VidXRzdXNoaXRzdVwgOwor6LaK5Lit6KSMID4gZXRjaHV1ZnVuZG9zaGlcIDsKK+WNsOWNiue6jyA+IHNoaXJ1c2hpYmFudGVuXCA7Civku5XmlrnoqbEgPiBzaGlrYXRhYmFuYXNoaVwgOwor5pS55pyt5L+CID4ga2Fpc2F0c3VnYWthcmlcIDsKK+WJg+WIgOinpiA+IGthbWlzb3Jpa2FidXJlXCA7Civlo7LmuKHoqLwgPiB1cml3YXRhc2hpc2hvdVwgOwor5ZGK5Yil5byPID4ga29rdWJldHN1c2hpa2lcIDsKK+WkvumbkeeJqSA+IGt5b3V6YXRzdWJ1dHN1XCA7Civnt5Hnmb3oibIgPiByeW9rdWhha3VzaG9rdVwgOwor6Iad6Zai56+AID4gc2hpdHN1a2Fuc2V0c3VcIDsKK+aOpee2muWPoyA+IHNldHN1em9rdWd1Y2hpXCA7Civlh53nnYDlipsgPiBneW91Y2hha3VyeW9rdVwgOwor5oeQ5YuY5a6aID4gZnV0b2tvcm9rYW5qb3VcIDsKK+aPkOWHuueJqSA+IHRlaXNodXRzdWJ1dHN1XCA7Civlh7rmnK3lj6MgPiBzaHVzc2F0c3VndWNoaVwgOwor5aSp5pel55OmID4gdGVuaml0c3VnYXdhcmFcIDsKK+WkoueJqeiqniA+IHl1bWVtb25vZ2F0YXJpXCA7CivkuIDmmJTliY0gPiBoaXRvbXVrYXNoaW1hZVwgOwor55m+5Y2S6ZW3ID4gaHlha3Vzb3RzdWNob3VcIDsKK+mAhuihjOWIlyA+IGd5YWt1Z3lvdXJldHN1XCA7Civml63ml6Xnq6AgPiBreW9rdWppdHN1c2hvdVwgOwor5bm85Y+L6YGUID4gb3NhbmF0b21vZGFjaGlcIDsKK+Wwu+i7veWlsyA+IHNoaXJpZ2FydW9uJyduYVwgOwor55m96Ymi5be7ID4gc2hpcm9oYWNoaW1ha2lcIDsKK+iWhOe0q+iJsiA+IHVzdW11cmFzYWtpaXJvXCA7Civlh7rloYHnjocgPiBzaHV0c3VydWlyaXRzdVwgOwor6Zu75L+h5p+xID4gZGVuc2hpbmJhc2hpcmFcIDsKK+WGheiovOipsSA+IG5haXNob3ViYW5hc2hpXCA7Civnt5Hnjonnn7MgPiByeW9rdWd5b2t1c2VraVwgOwor6Iad6JOL6aqoID4gc2hpdHN1Z2Fpa290c3VcIDsKK+S7ruWHuueNhCA+IGthcmlzaHV0c3Vnb2t1XCA7CivnibnliKXogbcgPiB0b2t1YmV0c3VzaG9rdVwgOwor5ZG96L6b6L6bID4gaW5vY2hpZ2FyYWdhcmFcIDsKK+i7ouWFpeWxiiA+IHRlbicnbnl1dXRvZG9rZVwgOwor5Y+X5LuY5L+CID4gdWtldHN1a2VnYWthcmlcIDsKK+WwseiBt+eOhyA+IHNodXVzaG9rdXJpdHN1XCA7CivntabmlpnooosgPiBreXV1cnlvdWJ1a3Vyb1wgOwor5qSN54mp5a2mID4gc2hva3VidXRzdWdha3VcIDsKK+Wkp+WSjOmtgiA+IHlhbWF0b2RhbWFzaGlpXCA7CivkuIvlj7DmiYAgPiBzaGltb2RhaWRva29yb1wgOwor5bCx6IG35Y+jID4gc2h1dXNob2t1Z3VjaGlcIDsKK+eti+iCieizqiA+IGtpbicnbmlrdXNoaXRzdVwgOwor5Yqb5LuV5LqLID4gY2hpa2FyYXNoaWdvdG9cIDsKK+WroeWHuuWtkCA+IGNoYWt1c2h1dHN1c2hpXCA7CivniYfoopbmnLogPiBrYXRhc29kZWR6dWt1ZVwgOwor5Y2S5qWt5byPID4gc290c3VneW91c2hpa2lcIDsKK+WFiemAmuS/oSA+IGhpa2FyaXRzdXVzaGluXCA7Civlj5bnt6Dms5UgPiB0b3Jpc2hpbWFyaWhvdVwgOwor5omL6KGT5a6kID4gc2h1anV0c3VzaGl0c3VcIDsKK+ippuedgOWupCA+IHNoaWNoYWt1c2hpdHN1XCA7CivniIbnmbrniakgPiBiYWt1aGF0c3VidXRzdVwgOwor54yq5q2m6ICFID4gaW5vc2hpc2hpbXVzaGFcIDsKK+Wkp+m7kuafsSA+IGRhaWtva3ViYXNoaXJhXCA7CivpjpbluLflrZAgPiBrdXNhcmlrYXRhYmlyYVwgOwor5LiN6Lq+6ICFID4gYnVzaGl0c3VrZW1vbm9cIDsKK+S4ieiJsuiPqyA+IHNhbnNob2t1c3VtaXJlXCA7Civlkb3ovpvjgIUgPiBpbm9jaGlnYXJhZ2FyYVwgOwor5Ye65Yqb57eaID4gc2h1dHN1cnlva3VzZW5cIDsKK+eIhueZuuWKmyA+IGJha3VoYXRzdXJ5b2t1XCA7CivnnYDkv6HlsYAgPiBjaGFrdXNoaW5reW9rdVwgOwor5o6S5Ye654mpID4gaGFpc2h1dHN1YnV0c3VcIDsKK+mJseeJqeizqiA+IGtvdWJ1dHN1c2hpdHN1XCA7CivmjK/lh7rlsYAgPiBmdXJpZGFzaGlreW9rdVwgOwor5Z+35YuZ5a6kID4gc2hpdHN1bXVzaGl0c3VcIDsKK+eZuueGsemHjyA+IGhhdHN1bmV0c3VyeW91XCA7CivlpKflhavou4ogPiBkYWloYWNoaWd1cnVtYVwgOwor55u05o6l55qEID4gY2hva3VzZXRzdXRla2lcIDsKK86455CG6KuWID4gc2hpXCDMhHRhXCDMhHJpcm9uXCA7CivmlLnmnK3pi48gPiBrYWlzYXRzdWhhc2FtaVwgOwor5LiN5p2f6ICFID4gZnV0c3V0c3VrYW1vbm9cIDsKK+eHleWNg+mzpSA+IHRzdWJhbWVjaGlkb3JpXCA7CivkvJHmhqnlrqQgPiBreXV1a2Vpc2hpdHN1XCA7Civml6XmsqHliY0gPiBuaWNoaWJvdHN1emVuXCA7Civni5DmoLzlrZAgPiBraXRzdW5lZ291c2hpXCA7CivplrLopqflrqQgPiBldHN1cmFuc2hpdHN1XCA7Civlu7rnr4nniakgPiBrZW5jaGlrdWJ1dHN1XCA7Civlrp/os6rnmoQgPiBqaXNzaGl0c3V0ZWtpXCA7Civnv4zjgIXml6UgPiB5b2t1eW9rdWppdHN1XCA7CivoqabogbTlrqQgPiBzaGljaG91c2hpdHN1XCA7Civlj6TlvLfogIUgPiBmdXJ1dHN1d2Ftb25vXCA7Civni7jlm4PlrZAgPiB0YW51a2liYXlhc2hpXCA7CivmpI3mr5vooZMgPiBzaG9rdW1vdWp1dHN1XCA7Civml6fmraPmnIggPiBreXV1c2hvdWdhdHN1XCA7CivkuLjpvLvonIIgPiBtYXJ1aGFuYWJhY2hpXCA7CivohJroibLogIUgPiBreWFrdXNob2t1c2hhXCA7CivmnbHmtbflsrggPiBoaWdhc2hpa2FpZ2FuXCA7Civnm7Tnq4vojI4gPiBjaG9rdXJpdHN1a2VpXCA7Civnmb3pm6rlp6sgPiBzaGlyYXl1a2loaW1lXCA7Civmlq3nhrHnmoQgPiBkYW4nJ25ldHN1dGVraVwgOwor5rOl57iE5byPID4gZG9yb25hd2FzaGlraVwgOwor6Kaz6Zay5byPID4ga2FuJydldHN1c2hpa2lcIDsKK+WQuOa5v+aApyA+IGt5dXVzaGl0c3VzZWlcIDsKK+a2iOalteeahCA+IHNob3VreW9rdXRla2lcIDsKK+a8gua1geeJqSA+IGh5b3VyeXV1YnV0c3VcIDsKK+S4i+S6jOahgSA+IHNoaW1vZnV0YWtldGFcIDsKK+aGgumsseizqiA+IHl1dXV0c3VzaGl0c3VcIDsKK+S/hOaIkOmHkSA+IG5pd2FrYW5hcmlraW5cIDsKK+WPjuepq+eJqSA+IHNodXVrYWt1YnV0c3VcIDsKK+iyuOS7mOmHkSA+IGthc2hpdHN1a2VraW5cIDsKK+WLleeJqemBlCA+IGRvdWJ1dHN1dGFjaGlcIDsKK+mjn+ezp+W6gSA+IHNob2t1cnlvdWNob3VcIDsKK+iFuueXheizqiA+IHNlbmJ5b3VzaGl0c3VcIDsKK+awkee0hOiqrCA+IG1pbicneWFrdXNldHN1XCA7CivlkLjmub/liaQgPiBreXV1c2hpdHN1emFpXCA7CivkuoznrYvpgZMgPiBmdXRhc3VqaW1pY2hpXCA7CivljYrplbfpnbQgPiBoYW4nJ25hZ2FndXRzdVwgOwor5qCh6ZW35a6kID4ga291Y2hvdXNoaXRzdVwgOwor5rG65pat5YqbID4ga2V0c3VkYW5yeW9rdVwgOwor5beu5Ye65Lq6ID4gc2FzaGlkYXNoaW5pblwgOwor5LiD5puc6KGoID4gc2hpY2hpeW91aHlvdVwgOwor54Gw57eR6ImyID4ga2Fpcnlva3VzaG9rdVwgOwor5pys6LOq55qEID4gaG9uc2hpdHN1dGVraVwgOwor5rGC5b+D5YqbID4ga3l1dXNoaW5yeW9rdVwgOwor57WQ5Zuj5byPID4ga2V0c3VkYW5zaGlraVwgOwor5pS55pyt5Y+jID4ga2Fpc2F0c3VndWNoaVwgOwor57mB5q6W5YqbID4gaGFuc2hva3VyeW9rdVwgOwor5ZuD5a2Q6KmeID4gaGF5YXNoaWtvdG9iYVwgOwor5Lq65beu5oyHID4gaGl0b3Nhc2hpeXViaVwgOwor5LiD6Z2i6bOlID4gc2hpY2hpbWVuY2hvdVwgOwor55m66KiA5YqbID4gaGF0c3VnZW5yeW9rdVwgOwor5Ye65LiW6aCtID4gc2h1c3NlZ2FzaGlyYVwgOwor6ZuG5Lit5YqbID4gc2h1dWNodXVyeW9rdVwgOwor5bGI6L6x55qEID4ga3V0c3Vqb2t1dGVraVwgOwor5ZWG5aOy5pW1ID4gc2hvdWJhaWdhdGFraVwgOwor5Ye655Sf5bGKID4gc2h1c3NlaXRvZG9rZVwgOwor6ISx542E5ZuaID4gZGF0c3Vnb2t1c2h1dVwgOwor5Y+k5q2m5aOrID4gZnVydXRzdXdhbW9ub1wgOwor5Zyf55Sj6KmxID4gbWl5YWdlYmFuYXNoaVwgOwor55m96KOF5p2fID4gc2hpcm9zaG91em9rdVwgOwor6IWw5be+552AID4ga29zaGlnaW5jaGFrdVwgOwor5Y2K54af5Y21ID4gaGFuanVrdXRhbWFnb1wgOwor5rKh5bi46K2YID4gYm90c3Vqb3VzaGlraVwgOwor6ZuG5aG16KKLID4gc2h1dWppbmJ1a3Vyb1wgOwor5LiJ5LiL5aW0ID4gc2Fuc2hpdGF5YWtrb1wgOwor5Zyw6LOq5a2mID4gY2hpc2hpdHN1Z2FrdVwgOwor5qW95bGL6KmxID4gZ2FrdXlhYmFuYXNoaVwgOwor5by35aWq54mpID4gZ291ZGF0c3VidXRzdVwgOwor6ZaR5pel5pyIID4ga2Fuaml0c3VnZXRzdVwgOwor5oyR55m655qEID4gY2hvdWhhdHN1dGVraVwgOwor56Wd56Wt5pelID4gc2h1a3VzYWlqaXRzdVwgOwor5b2r5Yi76KGTID4gY2hvdWtva3VqdXRzdVwgOwor5Lit56uL5Zu9ID4gY2h1dXJpdHN1a29rdVwgOwor5Zar54WZ5a6kID4ga2l0c3VlbnNoaXRzdVwgOwor5LiA5Lih5pelID4gaWNoaXJ5b3VqaXRzdVwgOwor5qmL6ISa6IifID4ga3lvdWt5YWt1c2h1dVwgOwor5rys54mp55+zID4gdHN1a2Vtb25vaXNoaVwgOwor5aSW5Ye65LitID4gZ2Fpc2h1dHN1Y2h1dVwgOwor6YmE5p+T6ImyID4gdGV0c3VzZW5zaG9rdVwgOwor54us56uL5b+DID4gZG9rdXJpdHN1c2hpblwgOwor5LuK5pyI5pyrID4ga29uZ2V0c3VtYXRzdVwgOwor5a6f54mp5aSnID4gaml0c3VidXRzdWRhaVwgOwor5ou+5b6X54mpID4gc2h1dXRva3VidXRzdVwgOwor5YCJ5pW35paZID4ga3VyYXNoaWtpcnlvdVwgOwor6LOH5paZ5a6kID4gc2hpcnlvdXNoaXRzdVwgOwor6LK354mp6KKLID4ga2FpbW9ub2J1a3Vyb1wgOwor5ZC45Y+O5YqbID4ga3l1dXNodXVyeW9rdVwgOwor54us56uL5Zu9ID4gZG9rdXJpdHN1a29rdVwgOwor6KGA5bC/55eHID4ga2V0c3VueW91c2hvdVwgOwor5b2r5Yi754mpID4gY2hvdWtva3VidXRzdVwgOwor5aCq5b+N6KKLID4ga2FuJyduaW5idWt1cm9cIDsKK+ekvumVt+WupCA+IHNoYWNob3VzaGl0c3VcIDsKK+S4vOWLmOWumiA+IGRvbmJ1cmlrYW5qb3VcIDsKK+eOieWtkOS4vCA+IHRhbWFnb2RvbmJ1cmlcIDsKK+e4ruWIt+eJiCA+IHNodWt1c2F0c3ViYW5cIDsKK+S7iuaXpeeahCA+IGtvbicnbmljaGl0ZWtpXCA7CivmtJ7lr5/lipsgPiBkb3VzYXRzdXJ5b2t1XCA7Civmnb7po5/omasgPiBtYXRzdWt1aW11c2hpXCA7CivoiovolJPlvI8gPiBpbW9kenVydXNoaWtpXCA7Civos6rph4/mlbAgPiBzaGl0c3VyeW91c3V1XCA7CivliKXphY3pgZQgPiBiZXRzdWhhaXRhdHN1XCA7Civku4rml6Xmp5ggPiBrb24nJ25pY2hpc2FtYVwgOwor5Yag5aSn5LyaID4ga2FubXVyaXRhaWthaVwgOwor6L+96KSH5puyID4gdHN1aWZ1a3VreW9rdVwgOwor57WE5ZCI6aCtID4ga3VtaWFpZ2FzaGlyYVwgOwor5pWj5q2p5peBID4gc2FucG9rYXRhZ2F0YVwgOwor5L6b6KiX54mpID4ga3lvdXRha3VidXRzdVwgOwor5Ye66aGY5Lq6ID4gc2h1dHN1Z2FuJyduaW5cIDsKK+eymOedgOWKmyA+IG5lbmNoYWt1cnlva3VcIDsKK+Wuv+aziuaWmSA+IHNodWt1aGFrdXJ5b3VcIDsKK+aeneWeguahnCA+IHNoaWRhcmV6YWt1cmFcIDsKK+WPpOS7o+e0qyA+IGtvZGFpbXVyYXNha2lcIDsKK+aeneWeguafsyA+IHNoaWRhcmV5YW5hZ2lcIDsKK+a3see3keiJsiA+IGZ1a2FtaWRvcmlpcm9cIDsKK+epjembqumHjyA+IHNla2lzZXRzdXJ5b3VcIDsKK+eglOeptuWupCA+IGtlbmt5dXVzaGl0c3VcIDsKK+W3peS9nOWupCA+IGtvdXNha3VzaGl0c3VcIDsKK+S9nOWKh+ihkyA+IHNha3VnZWtpanV0c3VcIDsKK+efreaXpeaciCA+IHRhbmppdHN1Z2V0c3VcIDsKK+i7iuaOjOWupCA+IHNoYXNob3VzaGl0c3VcIDsKK+iouuWvn+aWmSA+IHNoaW5zYXRzdXJ5b3VcIDsKK+S/uOe1puiiiyA+IGhvdWt5dXVidWt1cm9cIDsKK+a2iOWkseeCuSA+IHNob3VzaGl0c3V0ZW5cIDsKK+iqreabuOWupCA+IGRva3VzaG9zaGl0c3VcIDsKK+Wuv+aziuWFiCA+IHNodWt1aGFrdXNha2lcIDsKK+itmOWIpeWtkCA+IHNoaWtpYmV0c3VzaGlcIDsKK+WNl+WNiueQgyA+IG1pbmFtaWhhbmt5dXVcIDsKK+iBt+WToeWupCA+IHNob2t1aW5zaGl0c3VcIDsKK+S/oeeOhOiiiyA+IHNoaW5nZW5idWt1cm9cIDsKK+aBi+eJqeiqniA+IGtvaW1vbm9nYXRhcmlcIDsKK+S4gOeykueoriA+IGhpdG90c3VidWRhbmVcIDsKK+e3keafseefsyA+IHJ5b2t1Y2h1dXNla2lcIDsKK+aYlOawl+izqiA+IG11a2FzaGlrYXRhZ2lcIDsKK+S/hOWLieW8tyA+IG5pd2FrYWJlbmt5b3VcIDsKK+mAsuWtpueOhyA+IHNoaW5nYWt1cml0c3VcIDsKK+auv+anmOibmSA+IHRvbm9zYW1hZ2FlcnVcIDsKK+mdmeiEiOihgCA+IGpvdW15YWt1a2V0c3VcIDsKK+S4gOeti+mBkyA+IGhpdG9zdWppbWljaGlcIDsKK+WwsealreeOhyA+IHNodXVneW91cml0c3VcIDsKK+WGhee3kuipsSA+IG5haXNob2JhbmFzaGlcIDsKK+i6gemsseizqiA+IHNvdXV0c3VzaGl0c3VcIDsKK+eGseWKueeOhyA+IG5ldHN1a291cml0c3VcIDsKK+ebrueahOeJqSA+IG1va3V0ZWtpYnV0c3VcIDsKK+WPjeeZuuWKmyA+IGhhbnBhdHN1cnlva3VcIDsKK+akjeeJqeiqjCA+IHNob2t1YnV0c3VzaGlcIDsKK+itpuWvn+WKmyA+IGtlaXNhdHN1cnlva3VcIDsKK+iyqOeJqeWupCA+IGthbW90c3VzaGl0c3VcIDsKK+aHkOS4remPoSA+IGthaWNodXVrYWdhbWlcIDsKK+a3oee3keiJsiA+IHRhbnJ5b2t1c2hva3VcIDsKK+Wkqeeruum8oCA+IHRlbmppa3VuZXp1bWlcIDsKK+e1seeOh+WKmyA+IHRvdXJpdHN1cnlva3VcIDsKK+Wun+mMsueJqSA+IGppdHN1cm9rdW1vbm9cIDsKK+WvhuWFpeWbvSA+IG1pdHN1bnl1dWdva3VcIDsKK+ebtOi8uOWHuiA+IGNob2t1eXVzaHV0c3VcIDsKK+aDmuawl+ipsSA+IG5vcm9rZWJhbmFzaGlcIDsKK+S8kemkiuWupCA+IGt5dXV5b3VzaGl0c3VcIDsKK+mZs+WIl+eqkyA+IGNoaW5yZXRzdW1hZG9cIDsKK+eZvuWIhueOhyA+IGh5YWt1YnVucml0c3VcIDsKK+WHuuihgOeXhyA+IHNodWtrZXRzdXNob3VcIDsKK+Wvhui8uOWHuiA+IG1pdHN1eXVzaHV0c3VcIDsKK+WIpOWIpeW8jyA+IGhhbmJldHN1c2hpa2lcIDsKK+akjeeJqeeVjCA+IHNob2t1YnV0c3VrYWlcIDsKK+eGseWKm+WtpiA+IG5ldHN1cmlraWdha3VcIDsKK+aWsOato+aciCA+IHNoaW5zaG91Z2F0c3VcIDsKK+S4u+mjn+eJqSA+IHNodXNob2t1YnV0c3VcIDsKK+mZs+WIl+ajmiA+IGNoaW5yZXRzdWRhbmFcIDsKK+mbkeWPjuWFpSA+IHphdHN1c2h1dW55dXVcIDsKK+e/jOe/jOaXpSA+IHlva3V5b2t1aml0c3VcIDsKK+ipseWNiuWIhiA+IGhhbmFzaGloYW5idW5cIDsKK+WKm+S4jei2syA+IGNoaWthcmFidXNva3VcIDsKK+WwseWtpueOhyA+IHNodXVnYWt1cml0c3VcIDsKK+awtOS4iueUuiA+IG1pbmFrYW1pbWFjaGlcIDsKK+imquWIh+W/gyA+IHNoaW5zZXRzdXNoaW5cIDsKK+WItuS9nOWupCA+IHNlaXNha3VzaGl0c3VcIDsKK+WNs+eJqeeahCA+IHNva3VidXRzdXRla2lcIDsKK+axsuWPluWPoyA+IGt1bWl0b3JpZ3VjaGlcIDsKK+W7v+aXpem8oCA+IGhhdHN1a2FuZXp1bWlcIDsKK+e3j+mgmOWomCA+IHNvdXJ5b3VtdXN1bWVcIDsKK+S4g+emj+elniA+IHNoaWNoaWZ1a3VqaW5cIDsKK+eJueWIpeW4rSA+IHRva3ViZXRzdXNla2lcIDsKK+WkmuihgOizqiA+IHRha2V0c3VzaGl0c3VcIDsKK+aguOeIhueZuiA+IGtha3ViYWt1aGF0c3VcIDsKK+W+l+elqOeOhyA+IHRva3VoeW91cml0c3VcIDsKK+ihqOW9sOW8jyA+IGh5b3VzaG91c2hpa2lcIDsKK+WFpeWtpuW8jyA+IG55dXVnYWt1c2hpa2lcIDsKK+eBsOeZveizqiA+IGthaWhha3VzaGl0c3VcIDsKK+mjn+eUqOayuSA+IHNob2t1eW91YWJ1cmFcIDsKK+iBt+alreeahCA+IHNob2t1Z3lvdXRla2lcIDsKK+mjn+eUn+a0uyA+IHNob2t1c2Vpa2F0c3VcIDsKK+S4uOS4gOaciCA+IG1hcnVoaXRvdHN1a2lcIDsKK+iBt+alreeXhSA+IHNob2t1Z3lvdWJ5b3VcIDsKK+S4uOS4gOaXpSA+IG1hcnVpY2hpbmljaGlcIDsKK+avkueJqeWtpiA+IGRva3VidXRzdWdha3VcIDsKK+WwseiBt+WFiCA+IHNodXVzaG9rdXNha2lcIDsKK+WPo+e0hOadnyA+IGt1Y2hpeWFrdXNva3VcIDsKK+Wun+WKm+iAhSA+IGppdHN1cnlva3VzaGFcIDsKK+a5p+WHuumHjyA+IHl1dXNodXRzdXJ5b3VcIDsKK+etkuS6leetkiA+IHRzdXRzdWlkenV0c3VcIDsKK+S8muWgguWPuCA+IGthaWRvdWR6dWthc2FcIDsKK+mWk+ath+eGsSA+IGthbmtldHN1bmV0c3VcIDsKK+WTsuWtpueahCA+IHRldHN1Z2FrdXRla2lcIDsKK+iqreWUh+ihkyA+IGRva3VzaGluanV0c3VcIDsKK+mWk+asoOeGsSA+IGthbmtldHN1bmV0c3VcIDsKK+ijuOmbu+eQgyA+IGhhZGFrYWRlbmt5dXVcIDsKK+ibi+eZveizqiA+IHRhbnBha3VzaGl0c3VcIDsKK+aOkuazhOeJqSA+IGhhaXNldHN1YnV0c3VcIDsKK+mjn+iCieebriA+IHNob2t1bmlrdW1va3VcIDsKK+a0u+WLleWKmyA+IGthdHN1ZG91cnlva3VcIDsKK+S+teeVpeeahCA+IHNoaW5yeWFrdXRla2lcIDsKK+WHnembhuWKmyA+IGd5b3VzaHV1cnlva3VcIDsKK+S/hOeLguiogCA+IG5pd2FrYWt5b3VnZW5cIDsKK+eNheWtkOmgrSA+IHNoaXNoaWdhc2hpcmFcIDsKK+ims+Wvn+WKmyA+IGthbnNhdHN1cnlva3VcIDsKK+iEseWKm+aEnyA+IGRhdHN1cnlva3VrYW5cIDsKK+aUr+WHuumhjSA+IHNoaXNodXRzdWdha3VcIDsKK+Wkp+iZkOauuiA+IGRhaWd5YWt1c2F0c3VcIDsKK+WJjea4oemHkSA+IG1hZXdhdGFzaGlraW5cIDsKK+S5s+eZveiJsiA+IG55dXVoYWt1c2hva3VcIDsKK+e1gualreW8jyA+IHNodXVneW91c2hpa2lcIDsKK+eIhueZuueahCA+IGJha3VoYXRzdXRla2lcIDsKK+a4heWFg+evgCA+IGtpeW9tb3RvYnVzaGlcIDsKK+mbt+imqueItiA+IGthbWluYXJpb3lhamlcIDsKK+elnue1jOizqiA+IHNoaW5rZWlzaGl0c3VcIDsKK+aOpeedgOWKmyA+IHNldGNoYWt1cnlva3VcIDsKK+S6lOaciOW5nyA+IHNhdHN1a2lub2JvcmlcIDsKK+mAhui8uOWHuiA+IGd5YWt1eXVzaHV0c3VcIDsKK+eahOS4reeOhyA+IHRla2ljaHV1cml0c3VcIDsKK+W7uuioreiyuyA+IGtlbnNldHN1aGl5b3VcIDsKK+WxiOaKmOeOhyA+IGt1c3NldHN1cml0c3VcIDsKK+iIuemVt+WupCA+IHNlbmNob3VzaGl0c3VcIDsKK+S4u+aVmeWupCA+IHNodWt5b3VzaGl0c3VcIDsKK+WupOWGhealvSA+IHNoaXRzdW5haWdha3VcIDsKK+S6uuaDheipsSA+IG5pbmpvdWJhbmFzaGlcIDsKK+a/g+e3keiJsiA+IG5vdXJ5b2t1c2hva3VcIDsKK+W/nOaOpeWupCA+IG91c2V0c3VzaGl0c3VcIDsKK+S+teeVpeWbvSA+IHNoaW5yeWFrdWtva3VcIDsKK+S+jeawl+izqiA+IHNhbXVyYWlrYXRhZ2lcIDsKK+eUs+i+vOabuCA+IG1vdXNoaWtvbWlzaG9cIDsKK+ebtOiqrOazlSA+IGNob2t1c2V0c3Vob3VcIDsKK+S4i+eUuumiqCA+IHNoaXRhbWFjaGlmdXVcIDsKK+mjn+S4reavkiA+IHNob2t1Y2h1dWRva3VcIDsKK+eUo+WHuumrmCA+IHNhbnNodXRzdWRha2FcIDsKK+S+m+WHuuexsyA+IGt5b3VzaHV0c3VtYWlcIDsKK+Wil+ioreeOhyA+IHpvdXNldHN1cml0c3VcIDsKK+Wcp+WKm+mNiyA+IGF0c3VyeW9rdW5hYmVcIDsKK+Wbo+agl+ecvCA+IGRvbmd1cmltYW5ha29cIDsKK+Wcp+WKm+mHnCA+IGF0c3VyeW9rdWdhbWFcIDsKK+awl+WvhuWupCA+IGtpbWl0c3VzaGl0c3VcIDsKK+W/nOaOpeS/giA+IG91c2V0c3VnYWthcmlcIDsKK+Wls+aIv+ipniA+IG55b3Vib3Vrb3RvYmFcIDsKK+WIhuWIl+W8jyA+IGJ1bnJldHN1c2hpa2lcIDsKK+imquS7u+W8jyA+IHNoaW4nJ25pbnNoaWtpXCA7CivnlJ/mtLvlipsgPiBzZWlrYXRzdXJ5b2t1XCA7Civoqq3lv4PooZMgPiBkb2t1c2hpbmp1dHN1XCA7Civpp4XplbflrqQgPiBla2ljaG91c2hpdHN1XCA7Civlrrbku5jlqJggPiBpZXRzdWtpbXVzdW1lXCA7Civnmb7ml6XojYkgPiBoeWFrdW5pY2hpc291XCA7CivkuKHkuInml6UgPiByeW91c2FuJyduaWNoaVwgOwor5peX6KGM5YiXID4gaGF0YWd5b3VyZXRzdVwgOwor55yJ5ZS+54mpID4gbWF5dXRzdWJhbW9ub1wgOwor6YCy6KGM5L+CID4gc2hpbmtvdWdha2FyaVwgOwor5YuV5qSN54mpID4gZG91c2hva3VidXRzdVwgOwor5b+F6KaB54mpID4gaGl0c3V5b3VidXRzdVwgOwor5LiJ6Lu45a6kID4gc2FuamlrdXNoaXRzdVwgOwor5b6F5ZCI5a6kID4gbWFjaGlhaXNoaXRzdVwgOwor5Y2a54mp5a2mID4gaGFrdWJ1dHN1Z2FrdVwgOwor57WQ57Su6KGTID4ga2Vzc2F0c3VqdXRzdVwgOwor5re35YWl54mpID4ga29uJydueXV1YnV0c3VcIDsKK+S6uuaDheWZuiA+IG5pbmpvdWJhbmFzaGlcIDsKK+WHuuW4reeOhyA+IHNodXNzZWtpcml0c3VcIDsKK+ebtOaOpeeojiA+IGNob2t1c2V0c3V6ZWlcIDsKK+WksealreiAhSA+IHNoaXRzdWd5b3VzaGFcIDsKK+eJp+eVnOalrSA+IGJva3VjaGlrdWd5b3VcIDsKK+ani+evieeJqSA+IGtvdWNoaWt1YnV0c3VcIDsKK+ioreeri+iAhSA+IHNldHN1cml0c3VzaGFcIDsKK+i2s+mVt+icgiA+IGFzaGluYWdhYmFjaGlcIDsKK+eymOa2suizqiA+IG5lbicnZWtpc2hpdHN1XCA7Civnm7TmjqXms5UgPiBjaG9rdXNldHN1aG91XCA7Civlub3pnIroqbEgPiB5dXVyZWliYW5hc2hpXCA7CivlkIzos6rnmoQgPiBkb3VzaGl0c3V0ZWtpXCA7Civln7fnnYDlv4MgPiBzaHV1Y2hha3VzaGluXCA7CivlipvplqLkv4IgPiBjaGlrYXJha2Fua2VpXCA7Civnianos6rnmoQgPiBidXNzaGl0c3V0ZWtpXCA7CivokrjnmbrnhrEgPiBqb3VoYXRzdW5ldHN1XCA7CivolqnmkanplqUgPiBzYXRzdW1hYmF0c3VcIDsKK+imluiBtOeOhyA+IHNoaWNob3VyaXRzdVwgOwor55Wz5rC057e0ID4gdGF0YW1pc3VpcmVuXCA7CivluZXlg5rplbcgPiBiYWt1cnlvdWNob3VcIDsKK+ePvuWun+eahCA+IGdlbmppdHN1dGVraVwgOwor55S75LiA55qEID4ga2FrdWl0c3V0ZWtpXCA7CivljbjphZLosqkgPiBvcm9zaGlzaHVoYW5cIDsKK+imquaXpeWutiA+IHNoaW4nJ25pY2hpa2FcIDsKK+WGheWHuuihgCA+IG5haXNodWtrZXRzdVwgOwor5r2k562G5paZID4ganVucGl0c3VyeW91XCA7CivnlLDoiI7kvo0gPiBpbmFrYXphbXVyYWlcIDsKK+mHkemHmOa1gSA+IGthbmFrdWdpcnl1dVwgOwor5Ym15L2c5YqbID4gc291c2FrdXJ5b2t1XCA7CivljbPmiKblipsgPiBzb2t1c2Vucnlva3VcIDsKK+aLrOe0hOetiyA+IGthdHN1eWFrdWtpblwgOwor6Kqs5b6X5YqbID4gc2V0dG9rdXJ5b2t1XCA7CivpkJjmkp7loIIgPiBrYW5ldHN1a2lkb3VcIDsKK+aXp+W9ouW8jyA+IGt5dXVrZWlzaGlraVwgOwor6buE546J55+zID4ga291Z3lva3VzZWtpXCA7Civlrp/pqJPlrqQgPiBqaWtrZW5zaGl0c3VcIDsKK+Wvhua8geiAhSA+IG1pdHN1cnlvdXNoYVwgOwor5r2u5rGQ6KGoID4gY2hvdXNla2loeW91XCA7Civnmb3nhrHmiKYgPiBoYWt1bmV0c3VzZW5cIDsKK+W+k+WxnuevgCA+IGp1dXpva3VzZXRzdVwgOwor5oq85YiH5bizID4gb3NoaWtpcmljaG91XCA7CivpibHnianlraYgPiBrb3VidXRzdWdha3VcIDsKK+W3puW/g+WupCA+IHNhc2hpbnNoaXRzdVwgOwor5qW15b2p6ImyID4gZ29rdXNhaXNoaWtpXCA7Civogp3lv4PopoEgPiBrYW5qaW5rYW5hbWVcIDsKK+W7uueviealrSA+IGtlbmNoaWt1Z3lvdVwgOwor5ouS6aOf55eHID4ga3lvc2hva3VzaG91XCA7CivnhrHpm7vlr74gPiBuZXRzdWRlbnRzdWlcIDsKK+mOluS8neWLlSA+IGt1c2FyaWRlbmRvdVwgOwor5ouh5aSn546HID4ga2FrdWRhaXJpdHN1XCA7Civni4Lkv6HnmoQgPiBreW91c2hpbnRla2lcIDsKK+ihqOePvuWKmyA+IGh5b3VnZW5yeW9rdVwgOwor5Lit56uL6Z2iID4gY2h1dXJpdHN1bWVuXCA7Civosp3mrrvomasgPiBrYWlnYXJhbXVzaGlcIDsKK+S4gOeVquaYnyA+IGljaGliYW5ib3NoaVwgOwor6LOD5YCf5Lq6ID4gY2hpbnNoYWt1bmluXCA7Civoo4Xpo77nmoQgPiBzb3VzaG9rdXRla2lcIDsKK+a+seeyieizqiA+IGRlbnB1bnNoaXRzdVwgOwor5Y2D5pel6I2JID4gc2VuJyduaWNoaXNvdVwgOwor5LiD5LqU6Kq/ID4gc2hpY2hpZ29jaG91XCA7CivkuK3lm73mnI0gPiBjaHV1Z29rdWZ1a3VcIDsKK+mrmOWkqeWOnyA+IHRha2FtYWdhaGFyYVwgOwor5YuY5a6a5L+CID4ga2Fuam91Z2FrYXJpXCA7Civmi5jmnZ/lipsgPiBrb3Vzb2t1cnlva3VcIDsKK+ayiOa+seeJqSA+IGNoaW5kZW5idXRzdVwgOwor5Zmo6LOq55qEID4ga2lzaGl0c3V0ZWtpXCA7CivljYPml6XntIUgPiBzZW4nJ25pY2hpa291XCA7Civlu7rnr4nlraYgPiBrZW5jaGlrdWdha3VcIDsKK+aVl+ihgOeXhyA+IGhhaWtldHN1c2hvdVwgOwor5Y2B5LiA5pyIID4ganV1aWNoaWdhdHN1XCA7CivooovmiLjmo5ogPiBmdWt1cm90b2RhbmFcIDsKK+aLneeJqeaVmSA+IGhhaWJ1dHN1a3lvdVwgOwor5b6p6K6Q5b+DID4gZnVrdXNodXVzaGluXCA7Civml6flubTmnKsgPiBreXV1bmVubWF0c3VcIDsKK+WkseiBt+iAhSA+IHNoaXNzaG9rdXNoYVwgOwor5YaF5Ymy5byVID4gdWNoaXdhcmliaWtpXCA7Civlh7rnlKPnjocgPiBzaHVzc2Fucml0c3VcIDsKK+WGmeWun+eahCA+IHNoYWppdHN1dGVraVwgOwor5o6l57aa6aeFID4gc2V0c3V6b2t1ZWtpXCA7Civoo73piYTmpa0gPiBzZWl0ZXRzdWd5b3VcIDsKK+WHuueUn+eOhyA+IHNodXNzZWlyaXRzdVwgOwor552A54mp5ae/ID4ga2ltb25vc3VnYXRhXCA7CivnqY3mpbXnrZYgPiBzZWtreW9rdXNha3VcIDsKK+Wwj+aWh+evgCA+IHNob3VidW5zZXRzdVwgOwor57WE57mU5YqbID4gc29zaGlraXJ5b2t1XCA7Civmlq3nhrHmnZAgPiBkYW4nJ25ldHN1emFpXCA7CivokZfkvZzniakgPiBjaG9zYWt1YnV0c3VcIDsKK+ebsua7heazlSA+IG1la3VyYW1lcHBvdVwgOwor6ZmE552A5YqbID4gZnVjaGFrdXJ5b2t1XCA7CivmvILmtYHmnKggPiBoeW91cnl1dWJva3VcIDsKK+e0s+Wjq+mdtCA+IHNoaW5zaGlndXRzdVwgOwor5rWa5rir6Ii5ID4gc2h1bnNldHN1c2VuXCA7Civmt7HlsbHng48gPiBtaXlhbWFnYXJhc3VcIDsKK+eUn+iHreeJqSA+IG5hbWFndXNhbW9ub1wgOwor5a+p5Yik5b25ID4gc2hpbnBhbicneWFrdVwgOwor56mN5qW155qEID4gc2Vra3lva3V0ZWtpXCA7Civnmbrlo7LlhYMgPiBoYXRzdWJhaW1vdG9cIDsKK+S7j+mggumdoiA+IGJ1dGNob3VkenVyYVwgOwor5Y+W5byV6auYID4gdG9yaWhpa2lkYWthXCA7Civpl5blhaXogIUgPiBjaGluJydueXV1c2hhXCA7Civmr6zmoJfpoK0gPiBpZ2FndXJpYXRhbWFcIDsKK+W7uuevieS4rSA+IGtlbmNoaWt1Y2h1dVwgOwor5byx5bCP5Zu9ID4gamFrdXNob3Vrb2t1XCA7Civnmbrlo7LkuK0gPiBoYXRzdWJhaWNodXVcIDsKK+W+qeiukOWKhyA+IGZ1a3VzaHV1Z2VraVwgOwor5LiL5LuV5LqLID4gc2hpdGFzaGlnb3RvXCA7CivmtojmpbXmgKcgPiBzaG91a3lva3VzZWlcIDsKK+mHkeasoOeXhSA+IGtpbmtldHN1YnlvdVwgOwor6IG06KaW546HID4gY2hvdXNoaXJpdHN1XCA7Civmt7HlsbHmoZwgPiBtaXlhbWF6YWt1cmFcIDsKK+izquWVj+iAhSA+IHNoaXRzdW1vbnNoYVwgOwor56m657SE5p2fID4ga2FyYXlha3Vzb2t1XCA7CivmjqXntproqZ4gPiBzZXRzdXpva3VzaGlcIDsKK+aKuemmmemvqCA+IG1ha2tvdWt1amlyYVwgOwor6Iqx55uX5Lq6ID4gaGFuYW51c3ViaXRvXCA7Civkub7nh6XlrqQgPiBrYW5zb3VzaGl0c3VcIDsKK+Wwv+avkueXhyA+IG55b3Vkb2t1c2hvdVwgOwor55mH55mq546JID4ga2Fuc2hha3VkYW1hXCA7CivkuIDkurrniakgPiBpY2hpamluYnV0c3VcIDsKK+WNlOe0hOWbvSA+IGt5b3V5YWt1a29rdVwgOwor5pyr5Luj54mpID4gbWF0c3VkYWltb25vXCA7CivliYPliIDosqAgPiBrYW1pc29yaW1ha2VcIDsKK+S4gOi2s+WFiCA+IGhpdG9hc2hpc2FraVwgOwor5p6c54mp57GgID4ga3VkYW1vbm9rYWdvXCA7CivkuJbplpPoqbEgPiBzZWtlbmJhbmFzaGlcIDsKK+ihjOalveWuoiA+IGtvdXJha3VreWFrdVwgOwor57SL55m96J22ID4gbW9uc2hpcm9jaG91XCA7CivlhaXmua/lrqIgPiBueXV1dG91a3lha3VcIDsKK+mXh+WPluW8lSA+IHlhbWl0b3JpaGlraVwgOwor6YCy5rC05byPID4gc2hpbnN1aXNoaWtpXCA7Civku67miZXph5EgPiBrYXJpYmFyYWlraW5cIDsKK+e0meWxkeexoCA+IGthbWlrdXp1a2Fnb1wgOwor5Lm+54el5Y21ID4ga2Fuc291dGFtYWdvXCA7Civnt5HlhoXpmpwgPiByeW9rdW5haXNob3VcIDsKK+altealvemzpSA+IGdva3VyYWt1Y2hvdVwgOwor6LOD6LK45YCfID4gY2hpbnRhaXNoYWt1XCA7CivlkYrnmbrogIUgPiBrb2t1aGF0c3VzaGFcIDsKK+eZveihgOeXhSA+IGhha2tldHN1YnlvdVwgOwor55yf54+g6LOqID4gc2hpbmp1c2hpdHN1XCA7CivniYflsbHph4wgPiBrYXRheWFtYXphdG9cIDsKK+eLrOeri+elrSA+IGRva3VyaXRzdXNhaVwgOwor5LqI57SE5L+CID4geW95YWt1Z2FrYXJpXCA7Civpu4Tnt5HoibIgPiBvdXJ5b2t1c2hva3VcIDsKK+WJjemAsuWKmyA+IHplbnNoaW5yeW9rdVwgOwor56K6546H6KuWID4ga2FrdXJpdHN1cm9uXCA7Civni6znq4vnj60gPiBkb2t1cml0c3VoYW5cIDsKK+etieWcp+W8jyA+IHRvdWF0c3VzaGlraVwgOwor57Sg5Lq6562LID4gc2hpcm91dG9zdWppXCA7Civnvo7kurrlsYAgPiB0c3V0c3Vtb3Rhc2VcIDsKK+WAn+WcsOaWmSA+IHNoYWt1Y2hpcnlvdVwgOwor6buE54ax55eFID4ga291bmV0c3VieW91XCA7CivmipXnpajnjocgPiB0b3VoeW91cml0c3VcIDsKK+iEhei/q+eahCA+IGt5b3VoYWt1dGVraVwgOwor5Zuj57WQ5b+DID4gZGFua2V0c3VzaGluXCA7Civos6rllY/mm7ggPiBzaGl0c3Vtb25zaG9cIDsKK+S4reeri+aApyA+IGNodXVyaXRzdXNlaVwgOwor5ZGK55m654q2ID4ga29rdWhhdHN1am91XCA7Civlj43lvqnoqqwgPiBoYW5wdWt1c2V0c3VcIDsKK+WNsOWIt+ihkyA+IGluc2F0c3VqdXRzdVwgOwor6IO95Yqb57WmID4gbm91cnlva3VreXV1XCA7Civnt7Tnv5Lmm7IgPiByZW5zaHV1a3lva3VcIDsKK+i2heiDveWKmyA+IGNob3Vub3VyeW9rdVwgOwor5qC45YiG6KOCID4ga2FrdWJ1bnJldHN1XCA7Civni6znq4vmqKkgPiBkb2t1cml0c3VrZW5cIDsKK+W+heWuteiNiSA+IG1hdHN1eW9pZ3VzYVwgOwor5LiA5Lq65aiYID4gaGl0b3JpbXVzdW1lXCA7Civlm73nqI7lsYAgPiBrb2t1emVpa3lva3VcIDsKK+S4gOmdouitmCA+IGljaGltZW5zaGlraVwgOwor5Ye66aGY6ICFID4gc2h1dHN1Z2Fuc2hhXCA7Civli7/lv5jojYkgPiB3YXN1cmVuYWd1c2FcIDsKK+W8t+e2v+iWrCA+IGt5b3VtZW4nJ3lha3VcIDsKK+aituacqOmuqiA+IGthamlraW1hZ3Vyb1wgOwor5aSx5piO6ICFID4gc2hpdHN1bWVpc2hhXCA7CivlpbPpgZPmpb0gPiBvbicnbmFkb3VyYWt1XCA7CivmiJDplbfnjocgPiBzZWljaG91cml0c3VcIDsKK+eiuuWun+aApyA+IGtha3VqaXRzdXNlaVwgOwor6buS6KOF5p2fID4ga3Vyb3Nob3V6b2t1XCA7CivnhrHmi6HmlaMgPiBuZXRzdWtha3VzYW5cIDsKK+W/oOiHo+iUtSA+IGNodXVzaGluZ3VyYVwgOwor5YuV54mp5a2mID4gZG91YnV0c3VnYWt1XCA7CivkuIDmnprkuIsgPiBpY2hpbWFpc2hpdGFcIDsKK+iHs+adseS6rCA+IGl0YXJ1dG91a3lvdVwgOwor54us56uL5oCnID4gZG9rdXJpdHN1c2VpXCA7Civpm6jlvozpm6ogPiBhbWVub2NoaXl1a2lcIDsKK+WFq+ebrumwuyA+IHlhdHN1bWV1bmFnaVwgOwor5aSp54uX6KmxID4gdGVuZ3ViYW5hc2hpXCA7CivmoYjlhoXkv4IgPiBhbicnbmFpZ2FrYXJpXCA7CivmtYHooYzoibIgPiByeXV1a291c2hva3VcIDsKK+mNvuS5s+efsyA+IHNob3VueXV1c2VraVwgOwor5o6l57aa5oCnID4gc2V0c3V6b2t1c2VpXCA7CivnnJ/lrp/mgKcgPiBzaGluaml0c3VzZWlcIDsKK+mqqOiCieiFqyA+IGtvdHN1bmlrdXNodVwgOwor54qs55Wc55SfID4gaW51Y2hpa3VzaG91XCA7CivpoJjlj47oqLwgPiByeW91c2h1dXNob3VcIDsKK+aYvOWFieiJsiA+IGNodXVrb3VzaG9rdVwgOwor5YyX5qW154aKID4gaG9ra3lva3VndW1hXCA7Civlj7jku6TlrqQgPiBzaGlyZWlzaGl0c3VcIDsKK+WNsOWIt+eJqSA+IGluc2F0c3VidXRzdVwgOwor5oq96LGh55qEID4gY2h1dXNob3V0ZWtpXCA7Civnmb3mi43lrZAgPiBzaGlyYWJ5b3VzaGlcIDsKK+aPkOWHuuiAhSA+IHRlaXNodXRzdXNoYVwgOwor6ICQ5Zyn5YqbID4gdGFpYXRzdXJ5b2t1XCA7Civlh7jpnaLpj6EgPiB0b3RzdW1lbmt5b3VcIDsKK+mrmOihgOWcpyA+IGtvdWtldHN1YXRzdVwgOwor5p+x5pmC6KiIID4gaGFzaGlyYWRva2VpXCA7Civlgpjmra/ou4ogPiBrYXNhaGFndXJ1bWFcIDsKK+i7jeWbveiJsiA+IGd1bmtva3VzaG9rdVwgOwor5YWr6YOO5r2fID4gaGFjaGlyb3VnYXRhXCA7Civlrr/lkb3nmoQgPiBzaHVrdW1laXRla2lcIDsKK+S4reW/g+inkiA+IGNodXVzaGlua2FrdVwgOwor6ZW36aCI6a+oID4gbmFnYXN1a3VqaXJhXCA7Civkv67kuoboqLwgPiBzaHV1cnlvdXNob3VcIDsKK+auteOAheeVoCA+IGRhbmRhbmJhdGFrZVwgOwor5q6144CF55WRID4gZGFuZGFuYmF0YWtlXCA7CivlpJrogonos6ogPiB0YW5pa3VzaGl0c3VcIDsKK+mAsuWFpeeBryA+IHNoaW4nJ255dXV0b3VcIDsKK+mbhue0hOeahCA+IHNodXV5YWt1dGVraVwgOwor5YW15YWt546JID4gaHlvdXJva3VkYW1hXCA7Civmkanmk6bnhrEgPiBtYXNhdHN1bmV0c3VcIDsKK+aKgOihk+WKmyA+IGdpanV0c3VyeW9rdVwgOwor5Luu5rq25o6lID4ga2FyaXlvdXNldHN1XCA7Civpq5jlk4Hos6ogPiBrb3VoaW5zaGl0c3VcIDsKK+aZkuacqOe2vyA+IHNhcmFzaGltb21lblwgOwor5Ly457iu5rOVID4gc2hpbnNodWt1aG91XCA7Civlha3pgKPnmbogPiByb2t1cmVucGF0c3VcIDsKK+S9teeZuueXhyA+IGhlaWhhdHN1c2hvdVwgOwor5qyg5LmP55eHID4ga2V0c3Vib3VzaG91XCA7CivplqLnr4DmioAgPiBrYW5zZXRzdXdhemFcIDsKK+ayiOayoeiIuSA+IGNoaW5ib3RzdXNlblwgOwor5a6556mN546HID4geW91c2VraXJpdHN1XCA7CivkuLvlipvmoKogPiBzaHVyeW9rdWthYnVcIDsKK+S5vua5v+ioiCA+IGthbnNoaXRzdWtlaVwgOwor5Lmd5pif6KGTID4ga3l1dXNlaWp1dHN1XCA7Civlj6PlhavkuIEgPiBrdWNoaWhhdGNob3VcIDsKK+aknOWvn+W6gSA+IGtlbnNhdHN1Y2hvdVwgOwor6KGo6KGo57SZID4gb21vdGVieW91c2hpXCA7Civnm7Tlj5blvJUgPiBqaWtpdG9yaWhpa2lcIDsKK+Wkp+WtpuWNkiA+IGRhaWdha3Vzb3RzdVwgOwor5aSx6Kqe55eHID4gc2hpdHN1Z29zaG91XCA7CivpmY3pm6rph48gPiBrb3VzZXRzdXJ5b3VcIDsKK+a8geW4q+eUuiA+IHJ5b3VzaGltYWNoaVwgOwor54mp6KaL5quTID4gbW9ub21peWFndXJhXCA7Civlj5bmrKHlupcgPiB0b3JpdHN1Z2l0ZW5cIDsKK+acp+aciOWknCA+IG9ib3JvZHp1a2l5b1wgOwor5Lqr5qW955qEID4ga3lvdXJha3V0ZWtpXCA7CivmsLTlipvlraYgPiBzdWlyeW9rdWdha3VcIDsKK+WPluW8leWFiCA+IHRvcmloaWtpc2FraVwgOwor5YWl5Yqb57eaID4gbnl1dXJ5b2t1c2VuXCA7CivkvY7ooYDlnKcgPiB0ZWlrZXRzdWF0c3VcIDsKK+S8uOe4ruaApyA+IHNoaW5zaHVrdXNlaVwgOwor5b6L5Luk5Yi2ID4gcml0c3VyeW91c2VpXCA7CivlvaLlvI/nmoQgPiBrZWlzaGlraXRla2lcIDsKK+S7sueri+S6uiA+IG5ha2FkYWNoaW5pblwgOwor5piH6ZmN5Y+jID4gc2hvdWtvdWd1Y2hpXCA7CivoqJjpjLLkv4IgPiBraXJva3VnYWthcmlcIDsKK+W3peS9nOeJqSA+IGtvdXNha3VidXRzdVwgOwor5q2j55u06ICFID4gc2hvdWppa2ltb25vXCA7CivkuK3lv4PnmoQgPiBjaHV1c2hpbnRla2lcIDsKK+iHque/kuWupCA+IGppc2h1dXNoaXRzdVwgOwor5LuK5piO5pelID4ga29ubXlvdW5pY2hpXCA7CivplpPmjqXnmoQgPiBrYW5zZXRzdXRla2lcIDsKK+WHuueJiOeJqSA+IHNodXBwYW5idXRzdVwgOwor5qC46LuN57iuID4ga2FrdWd1bnNodWt1XCA7CivkuIDopovorZggPiBpY2hpa2Vuc2hpa2lcIDsKK+aUu+aSg+WKmyA+IGtvdWdla2lyeW9rdVwgOwor5pW06auq5paZID4gc2VpaGF0c3VyeW91XCA7CivkuIPpnaLlgJIgPiBzaGljaGltZW5kb3VcIDsKK+iAkOa5v+aApyA+IHRhaXNoaXRzdXNlaVwgOwor5LuP5paH5a2mID4gZnV0c3VidW5nYWt1XCA7CivnlZHmsLTnt7QgPiBoYXRha2VzdWlyZW5cIDsKK+WLheaSsOmbhiA+IGNob2t1c2Vuc2h1dVwgOwor5LiD6Z2i5L2TID4gc2hpY2hpbWVudGFpXCA7CivlirnnjofnmoQgPiBrb3VyaXRzdXRla2lcIDsKK+eGsemHj+ioiCA+IG5ldHN1cnlvdWtlaVwgOwor5rOo6YeI6ICFID4gY2h1dXNoYWt1c2hhXCA7Civni63lv4Pnl4cgPiBreW91c2hpbnNob3VcIDsKK+W8peeMm+W/gyA+IHlhdGFrZWdva29yb1wgOwor57eP6Iqx5byPID4gc291YmFuYXNoaWtpXCA7CivljZTllYblm70gPiBreW91c2hvdWtva3VcIDsKK+S4g+e1g+eQtCA+IHNoaWNoaWdlbmtpblwgOwor54iG6KOC5by+ID4gYmFrdXJldHN1ZGFuXCA7CivlrpfmlZnlv4MgPiBzaHV1a3lvdXNoaW5cIDsKK+WFrOWFseeJqSA+IGtvdWt5b3VidXRzdVwgOwor5pWR5oCl566xID4ga3l1dWt5dXViYWtvXCA7Civni4Loqanmm7IgPiBreW91c2hpa3lva3VcIDsKK+S/hOWIhumZkCA+IG5pd2FrYWJ1bmdlblwgOwor5a6X5pWZ5a2mID4gc2h1dWt5b3VnYWt1XCA7CivkuIDml6XkuK0gPiBpY2hpbmljaGlqdXVcIDsKK+axguiBt+iAhSA+IGt5dXVzaG9rdXNoYVwgOwor55Wc5q665aC0ID4gY2hpa3VzYXRzdWJhXCA7CivlrablubTmnKsgPiBnYWt1bmVubWF0c3VcIDsKK+epgOixoeiZqyA+IGtva3V6b3VtdXNoaVwgOwor54Sh6Z+/5a6kID4gbXVreW91c2hpdHN1XCA7CivnrY3ljLvogIUgPiB0YWtlbm9rb2lzaGFcIDsKK+a9m+W/g+WKmyA+IHNlbnNoaW5yeW9rdVwgOwor6IiI6KGM5Li7ID4ga291Z3lvdW51c2hpXCA7Civkv67po77lrZAgPiBzaHV1c2hva3VzaGlcIDsKK+WPjuebiueOhyA+IHNodXVla2lyaXRzdVwgOwor56Wd5YSA6KKLID4gc2h1dWdpYnVrdXJvXCA7CivlqZrlp7vlsYogPiBrb24nJ2ludG9kb2tlXCA7CivpmpzlrrPniakgPiBzaG91Z2FpYnV0c3VcIDsKK+m7kumKueeXhSA+IGt1cm9zYWJpYnlvdVwgOwor5Lq654mp6KmVID4gamluYnV0c3VoeW91XCA7Civpm5HmiYDlvpcgPiB6YXRzdXNob3Rva3VcIDsKK+WJpeijveihkyA+IGhha3VzZWlqdXRzdVwgOwor54us5Y2g5qyyID4gZG9rdXNlbicneW9rdVwgOwor57W25pyb55qEID4gemV0c3Vib3V0ZWtpXCA7CivlpKnnhLboibIgPiB0ZW4nJ25lbnNob2t1XCA7CivohILogqros6ogPiBzaGlib3VzaGl0c3VcIDsKK+Wul+aVmeWKhyA+IHNodXVreW91Z2VraVwgOwor5Ye65aC06ICFID4gc2h1dHN1am91c2hhXCA7Civkub7mvIblg48gPiBrYW5zaGl0c3V6b3VcIDsKK+WGhee9sOeahCA+IG5haWJhdHN1dGVraVwgOwor5LiD6KeS5b2iID4gc2hpY2hpa2Fra2VpXCA7CivljbPoiIjmm7IgPiBzb2treW91a3lva3VcIDsKK+aVo+eZuueahCA+IHNhbnBhdHN1dGVraVwgOwor5bqD5Y+j55O2ID4gaGlyb2t1Y2hpYmluXCA7CivlnKfnuK7njocgPiBhc3NodWt1cml0c3VcIDsKK+Wuv+aziuS6uiA+IHNodWt1aGFrdW5pblwgOwor54yp57SF54axID4gc2hvdWtvdW5ldHN1XCA7CivljZTlipvpi7wgPiBreW91cnlva3Vrb3VcIDsKK+aJgOeVquWcsCA+IHRva29yb2JhbmNoaVwgOwor5rOo6YeI5pu4ID4gY2h1dXNoYWt1c2hvXCA7CivnibnlvrTph48gPiB0b2t1Y2hvdXJ5b3VcIDsKK+aHkOW3peWQiCA+IGZ1dG9rb3JvZ3VhaVwgOwor5o+P5YaZ5YqbID4gYnlvdXNoYXJ5b2t1XCA7CivnlJ/nianlraYgPiBzZWlidXRzdWdha3VcIDsKK+aHkOWFt+WQiCA+IGZ1dG9rb3JvZ3VhaVwgOwor6Kqt5pu45YqbID4gZG9rdXNob3J5b2t1XCA7Civnn6XorZjmrLIgPiBjaGlzaGlraXlva3VcIDsKK+WFqOmAn+WKmyA+IHplbnNva3VyeW9rdVwgOwor6KGo44CF57SZID4gb21vdGVieW91c2hpXCA7Civmt7HntIXoibIgPiBzaGlua291c2hva3VcIDsKK+i7n+edgOmZuCA+IG5hbmNoYWt1cmlrdVwgOwor6Imy5oOF54uCID4gc2hpa2lqb3VreW91XCA7Civpg7Xkvr/ooosgPiB5dXViaW5idWt1cm9cIDsKK+iouuWvn+WPsCA+IHNoaW5zYXRzdWRhaVwgOwor5rOh5rKr55qEID4gaG91bWF0c3V0ZWtpXCA7Civku67ph4jmlL4gPiBrYXJpc2hha3Vob3VcIDsKK+aApemAsueahCA+IGt5dXVzaGludGVraVwgOwor6Ki65a+f5Yi4ID4gc2hpbnNhdHN1a2VuXCA7CivmpbXlsI/lgKQgPiBreW9rdXNob3VjaGlcIDsKK+S+m+ihgOiAhSA+IGt5b3VrZXRzdXNoYVwgOwor5Y+O5YWl5b25ID4gc2h1dW55dXV5YWt1XCA7CivmrrXmrrXnlaAgPiBkYW5kYW5iYXRha2VcIDsKK+auteauteeVkSA+IGRhbmRhbmJhdGFrZVwgOwor56+A55So6ZuGID4gc2V0c3V5b3VzaHV1XCA7CivphY3pgZTmlpkgPiBoYWl0YXRzdXJ5b3VcIDsKK+aWsOWNkuiAhSA+IHNoaW5zb3RzdXNoYVwgOwor5Y+O55uj5YqbID4gc2h1dWthbnJ5b2t1XCA7Civnmb7okYnnrrEgPiBoeWFrdXlvdWJha29cIDsKK+WNlOWKm+iAhSA+IGt5b3VyeW9rdXNoYVwgOwor6YCf6YGU5L6/ID4gc29rdXRhdHN1YmluXCA7CivpioDnmb3oibIgPiBnaW5oYWt1c2hva3VcIDsKK+WkvuerueahgyA+IGt5b3VjaGlrdXRvdVwgOwor55Wc55Sf6YGTID4gY2hpa3VzaG91ZG91XCA7Civpm6rovrHmiKYgPiBzZXRzdWpva3VzZW5cIDsKK+adseS6rOedgCA+IHRvdWt5b3VjaGFrdVwgOwor6Zu75L+h5bGAID4gZGVuc2hpbmt5b2t1XCA7CivpnZLoibLnl4cgPiBzZWlzaG9rdXNob3VcIDsKK+W6g+WRiuS4uyA+IGtvdWtva3VudXNoaVwgOwor5p2x5Lqs55m6ID4gdG91a3lvdWhhdHN1XCA7CivlhajouqvmtbQgPiB6ZW5zaGluJyd5b2t1XCA7CivlpInos6rogIUgPiBoZW5zaGl0c3VzaGFcIDsKK+Wkj+acqOeriyA+IG5hdHN1a29kYWNoaVwgOwor6K2m5a+f5bqBID4ga2Vpc2F0c3VjaG91XCA7Civmpa3nlYzliJ0gPiBneW91a2FpaGF0c3VcIDsKK+WkqemVt+evgCA+IHRlbmNob3VzZXRzdVwgOwor55Sj6KSl54axID4gc2Fuam9rdW5ldHN1XCA7CivljZjli53lvI8gPiB0YW5zaG91c2hpa2lcIDsKK+mgremggumqqCA+IHRvdWNob3Vrb3RzdVwgOwor5aOK6KGA55eFID4ga2Fpa2V0c3VieW91XCA7CivnnIvmnb/lqJggPiBrYW5iYW5tdXN1bWVcIDsKK+e3qOmbhuWxgCA+IGhlbnNodXVreW9rdVwgOwor5pm05b6M6ZuoID4gaGFyZW5vY2hpYW1lXCA7CivmtYHli5Xpo58gPiByeXV1ZG91c2hva3VcIDsKK+mjn+mBk+alvSA+IHNob2t1ZG91cmFrdVwgOwor5q+b57mU6YymID4ga2VvcmluaXNoaWtpXCA7CivmsYLkurrlj6MgPiBreXV1amluZ3VjaGlcIDsKK+e1guedgOmnhSA+IHNodXVjaGFrdWVraVwgOwor6buS5rC054axID4ga29rdXN1aW5ldHN1XCA7Civku67pgLLntJogPiBrYXJpc2hpbmt5dXVcIDsKK+mFjemBlOWFiCA+IGhhaXRhdHN1c2FraVwgOwor5a+d54mp6KqeID4gbmVtb25vZ2F0YXJpXCA7Civoi6Xmrr/ljp8gPiB3YWthdG9ub2JhcmFcIDsKK+WGt+iUteWupCA+IHJlaXpvdXNoaXRzdVwgOwor5rKh5Lqk5riJID4gYm90c3Vrb3VzaG91XCA7CivpnZnohIjnmKQgPiBqb3VteWFrdXJ5dXVcIDsKK+mqqOe1hOe5lCA+IGtvdHN1c29zaGlraVwgOwor5Y2D5Y2S6ZW3ID4gc2Vuc290c3VjaG91XCA7Civnm7TovYTlnLAgPiBjaG9ra2F0c3VjaGlcIDsKK+S4gOeti+e5qSA+IGhpdG9zdWppbmF3YVwgOwor5LiA562L57iEID4gaGl0b3N1amluYXdhXCA7CivlsLHogbfpm6MgPiBzaHV1c2hva3VuYW5cIDsKK+iqrOe1jOevgCA+IHNla2t5b3VidXNoaVwgOwor5b+D6Lqr55eHID4gc2hpbnNoaW5zaG91XCA7CivpnaLkvJrlrqQgPiBtZW5rYWlzaGl0c3VcIDsKK+eLrOWJteWKmyA+IGRva3Vzb3VyeW9rdVwgOwor5aeL5qWt5byPID4gc2hpZ3lvdXNoaWtpXCA7CivmnaXlrqLnrYsgPiByYWlreWFrdXN1amlcIDsKK+mAsuWtpuWhviA+IHNoaW5nYWt1anVrdVwgOwor55uu55qE5qC8ID4gbW9rdXRla2lrYWt1XCA7CivmoKHmraPkv4IgPiBrb3VzZWlnYWthcmlcIDsKK+WKm+iHquaFoiA+IGNoaWthcmFqaW1hblwgOwor5bGL5pW355S6ID4geWFzaGlraW1hY2hpXCA7CivmnI3po77lk4EgPiBmdWt1c2hva3VoaW5cIDsKK+iGqOW8teeOhyA+IGJvdWNob3VyaXRzdVwgOwor6Imv5b+D55qEID4gcnlvdXNoaW50ZWtpXCA7Civnqbrlv7Xku48gPiBzb3JhbmVuYnV0c3VcIDsKK+eahueahuanmCA+IG1pbmFtaW5hc2FtYVwgOwor6IO9546H57WmID4gbm91cml0c3VreXV1XCA7CivloIbnqY3niakgPiB0YWlzZWtpYnV0c3VcIDsKK+WHuue0jeS/giA+IHN1aXRvdWdha2FyaVwgOwor6JOE56mN566hID4gY2hpa3VzZWtpa2FuXCA7Civni6zouqvogIUgPiBkb2t1c2hpbm1vbm9cIDsKK+efs+erueiJsiA+IHNla2ljaGlrdWlyb1wgOwor55u06IW455mMID4gY2hva3VjaG91Z2FuXCA7CivnqoHnmbrnmoQgPiB0b3BwYXRzdXRla2lcIDsKK+iKuOihk+eahCA+IGdlaWp1dHN1dGVraVwgOwor6Z2e5pm26LOqID4gaGlzaG91c2hpdHN1XCA7CivnjononIDpu40gPiB0b3Vtb3Jva29zaGlcIDsKK+Wwj+W/g+iAhSA+IHNob3VzaGlubW9ub1wgOwor6buS5rC05byVID4ga3Vyb21penVoaWtpXCA7CivmhJ/nhrHliaQgPiBrYW4nJ25ldHN1emFpXCA7CivlqK/mpb3lrqQgPiBnb3Jha3VzaGl0c3VcIDsKK+mOrueXm+iWrCA+IGNoaW50c3V1eWFrdVwgOwor6IO9546H55qEID4gbm91cml0c3V0ZWtpXCA7CivlkIjllLHmm7IgPiBnYXNzaG91a3lva3VcIDsKK+S4uemggum2tCA+IHRhbmNob3VkenVydVwgOwor6Z2p5paw55qEID4ga2FrdXNoaW50ZWtpXCA7CivlrqLllYblo7IgPiBreWFrdXNob3ViYWlcIDsKK+S4gOaLrOW8jyA+IGlra2F0c3VzaGlraVwgOwor55Wc55Sj5qWtID4gY2hpa3VzYW5neW91XCA7Civlh7rooYDmrbsgPiBzaHVra2V0c3VzaGlcIDsKK+eZvemrqumgrSA+IHNoaXJhZ2FhdGFtYVwgOwor5paw5b2i5byPID4gc2hpbmtlaXNoaWtpXCA7CivlhbHmnInniakgPiBreW91eXV1YnV0c3VcIDsKK+eUs+WRiueusSA+IHNoaW5rb2t1YmFrb1wgOwor5pu455WZ5paZID4ga2FraXRvbWVyeW91XCA7CivluIzph4jnhrEgPiBraXNoYWt1bmV0c3VcIDsKK+WxseWPo+ecjCA+IHlhbWFndWNoaWtlblwgOwor5Z+3562G6ICFID4gc2hpcHBpdHN1c2hhXCA7CivllYblj5blvJUgPiBzaG91dG9yaWhpa2lcIDsKK+akjeeJqeayuSA+IHNob2t1YnV0c3V5dVwgOwor5Ye66KGA5paRID4gc2h1a2tldHN1aGFuXCA7CivkvIHnlLvlrqQgPiBraWtha3VzaGl0c3VcIDsKK+S+teWFpei7jSA+IHNoaW4nJ255dXVndW5cIDsKK+a8geeNsueJqSA+IGd5b2tha3VidXRzdVwgOwor5Yqb5a2m55qEID4gcmlraWdha3V0ZWtpXCA7CivnlrPnmarnjokgPiBrYW5zaGFrdWRhbWFcIDsKK+e0hOadn+S6iyA+IHlha3Vzb2t1Z290b1wgOwor57WM5bi35a2QID4ga3lvdWthdGFiaXJhXCA7Civngavmtojlo7cgPiBoaWtlc2hpdHN1Ym9cIDsKK+WIqeS8kem8oCA+IHJpa3l1dW5lenVtaVwgOwor6aCG5b+c5YqbID4ganVuJydub3VyeW9rdVwgOwor5LiL5Y2K6LqrID4gc2hpbW9oYW5zaGluXCA7CivooajmsbrmqKkgPiBoeW91a2V0c3VrZW5cIDsKK+aKnuS4gOeahCA+IHRha3VpdHN1dGVraVwgOwor5rWB5YuV54mpID4gcnl1dWRvdWJ1dHN1XCA7CivpmbPov7Dmm7ggPiBjaGluanV0c3VzaG9cIDsKK+i/veaCvOW8jyA+IHRzdWl0b3VzaGlraVwgOwor6aOy6aOf54mpID4gaW5zaG9rdWJ1dHN1XCA7CivmmLzpo5/kvJogPiBjaHV1c2hva3VrYWlcIDsKK+eVnOeUo+WtpiA+IGNoaWt1c2FuZ2FrdVwgOwor6K2Y5a2X546HID4gc2hpa2lqaXJpdHN1XCA7CivpvLvpq5jpq5ggPiBoYW5hdGFrYWRha2FcIDsKK+eJueWIpeazlSA+IHRva3ViZXRzdWhvdVwgOwor5Ye65ryB5qipID4gc2h1dHN1Z3lva2VuXCA7Civps7bogbfkurogPiB0b2Jpc2hva3VuaW5cIDsKK+mOrumtguabsiA+IGNoaW5rb25reW9rdVwgOwor5Ye65ryU5paZID4gc2h1dHN1ZW5yeW91XCA7CivpgJrkv5fnmoQgPiB0c3V1em9rdXRla2lcIDsKK+S+teWFpeiAhSA+IHNoaW4nJ255dXVzaGFcIDsKK+epuuWHuuW8tSA+IGthcmFzaHV0Y2hvdVwgOwor6KGA5Zyn6KiIID4ga2V0c3VhdHN1a2VpXCA7Civog4bmsYHos6ogPiB0YW5qdXVzaGl0c3VcIDsKK+m7hOeip+eOiSA+IGtvdWhla2lneW9rdVwgOwor6ZqU5pyI5YiKID4ga2FrdWdldHN1a2FuXCA7Civlvqnljp/lipsgPiBmdWt1Z2Vucnlva3VcIDsKK+ero+W3peW8jyA+IHNodW5rb3VzaGlraVwgOwor56u25LqJ546HID4ga3lvdXNvdXJpdHN1XCA7CivnqY3nq4vph5EgPiB0c3VtaXRhdGVraW5cIDsKK+akjeeJqeWckiA+IHNob2t1YnV0c3VlblwgOwor54us6Lqr5a+uID4gZG9rdXNoaW5yeW91XCA7CivlhaXmnK3ogIUgPiBueXV1c2F0c3VzaGFcIDsKK+aWsOWFpeeUnyA+IHNoaW4nJ255dXVzZWlcIDsKK+elnuisoembhiA+IHNoaW4nJ3lvdXNodXVcIDsKK+S4oealteerryA+IHJ5b3VreW9rdXRhblwgOwor5biz6Z2i6Z2iID4gY2hvdW1lbmR6dXJhXCA7CivopovnqY3mm7ggPiBtaXRzdW1vcmlzaG9cIDsKK+eglOWJiuS7oyA+IGtlbnNha3VzaGlyb1wgOwor5rS75YuV55qEID4ga2F0c3Vkb3V0ZWtpXCA7Civlhajog73lipsgPiB6ZW4nJ25vdXJ5b2t1XCA7Civpo5/ogonpoZ4gPiBzaG9rdW5pa3VydWlcIDsKK+iCuua0u+mHjyA+IGhhaWthdHN1cnlvdVwgOwor6ZaL56Wo546HID4ga2FpaHlvdXJpdHN1XCA7CivluLjorZjnmoQgPiBqb3VzaGlraXRla2lcIDsKK+WPjuWuueWKmyA+IHNodXV5b3VyeW9rdVwgOwor6LGh5b6055qEID4gc2hvdWNob3V0ZWtpXCA7Civoh6rmhaLoqbEgPiBqaW1hbmJhbmFzaGlcIDsKK+aLm+W+heWuoiA+IHNob3V0YWlreWFrdVwgOwor5Lqk6Z+/5puyID4ga291a3lvdWt5b2t1XCA7Civpm7vop6Pos6ogPiBkZW5rYWlzaGl0c3VcIDsKK+W5s+W6leiIuSA+IGhpcmFzb2tvYnVuZVwgOwor5bCx5Lu75byPID4gc2h1dW5pbnNoaWtpXCA7Civlhrflh43lrqQgPiByZWl0b3VzaGl0c3VcIDsKK+mFjeiGs+WupCA+IGhhaXplbnNoaXRzdVwgOwor5bqD5bO255yMID4gaGlyb3NoaW1ha2VuXCA7CivmmqbmlLnmraMgPiBrb3lvbWlrYWlzZWlcIDsKK+W+s+W3neaWuSA+IHRva3VnYXdhZ2F0YVwgOwor5Luu5YWl5a2mID4ga2FyaW55dXVnYWt1XCA7Civljp/lvaLos6ogPiBnZW5rZWlzaGl0c3VcIDsKK+m7kuiJsuiFqyA+IGtva3VzaG9rdXNodVwgOwor5Y2S5qWt55SfID4gc290c3VneW91c2VpXCA7Civlm57lvqnlipsgPiBrYWlmdWt1cnlva3VcIDsKK+WFpeS8muW8jyA+IG55dXVrYWlzaGlraVwgOwor5ZCR5b+D5YqbID4ga291c2hpbnJ5b2t1XCA7CivnjonomavoibIgPiB0YW1hbXVzaGlpcm9cIDsKK+eJueWIpeWPtyA+IHRva3ViZXRzdWdvdVwgOwor6ISx5q+b55eHID4gZGF0c3Vtb3VzaG91XCA7Civlp4vnkIPlvI8gPiBzaGlreXV1c2hpa2lcIDsKK+S9leiJsuaQqCA+IG5hbnNob2t1enVyaVwgOwor5L+h6KiX5qWtID4gc2hpbnRha3VneW91XCA7Civlg7vmoLnmgKcgPiBoaWdhbWlrb25qb3VcIDsKK+WlquS4ieaMryA+IGRhdHN1c2Fuc2hpblwgOwor6YmE54Gr5Li8ID4gdGVra2Fkb25idXJpXCA7CivlpKfnpo/ppIUgPiBkYWlmdWt1bW9jaGlcIDsKK+S+teeVpei7jSA+IHNoaW5yeWFrdWd1blwgOwor5Y+N54mp6LOqID4gaGFuYnVzc2hpdHN1XCA7CivliLbnkIPlipsgPiBzZWlreXV1cnlva3VcIDsKK+mZuOeUo+eJqSA+IHJpa3VzYW5idXRzdVwgOwor6L6y5L2c54mpID4gbm91c2FrdWJ1dHN1XCA7Civnq5zoiIzomK0gPiByeXV1emV0c3VyYW5cIDsKK+WWtualreeVkSA+IGVpZ3lvdWJhdGFrZVwgOwor6IKJ6aOf542jID4gbmlrdXNob2t1anV1XCA7Civms5XlvovlraYgPiBob3VyaXRzdWdha3VcIDsKK+aWsOeZuuaYjiA+IHNoaW5oYXRzdW1laVwgOwor6YCX55WZ5a6iID4gdG91cnl1dWt5YWt1XCA7CivlvrPls7bnnIwgPiB0b2t1c2hpbWFrZW5cIDsKK+a4heawtOWvuiA+IGtpeW9taXp1ZGVyYVwgOwor54ax5a656YePID4gbmV0c3V5b3VyeW91XCA7CivmlofnrYbmpa0gPiBidW5waXRzdWd5b3VcIDsKK+iEs+WHuuihgCA+IG5vdXNodWtrZXRzdVwgOwor6Zyy5Ye655eHID4gcm9zaHV0c3VzaG91XCA7Civpq5jotrPon7kgPiB0YWthYXNoaWdhbmlcIDsKK+engeWovOeqnyA+IHNoaXNob3VrdXRzdVwgOwor6buS6Imy55mMID4ga29rdXNob2t1Z2FuXCA7CivosqfooYDnl4cgPiBoaW5rZXRzdXNob3VcIDsKK+iqjeitmOelqCA+IG5pbnNoaWtpaHlvdVwgOwor55ar55eF56WeID4geWFrdWJ5b3VnYW1pXCA7CivpnLLlh7rni4IgPiByb3NodXRzdWt5b3VcIDsKK+WvhueMn+iAhSA+IG1pdHN1cnlvdXNoYVwgOwor5YWr5LiI5bO2ID4gaGFjaGlqb3VqaW1hXCA7CivpmY3npZ7ooZMgPiBrb3VzaGluanV0c3VcIDsKK+WTsuWtpuiAhSA+IHRldHN1Z2FrdXNoYVwgOwor5Yqb5LiA5p2vID4gY2hpa2FyYWlwcGFpXCA7Civlh7rlk4HniakgPiBzaHVwcGluYnV0c3VcIDsKK+eBsOeZveiJsiA+IGthaWhha3VzaG9rdVwgOwor54us5bGF5a6kID4gZG9ra3lvc2hpdHN1XCA7CivmjqXlvoXkv4IgPiBzZXR0YWlnYWthcmlcIDsKK+S4h+W5tOmbqiA+IG1hbicnbmVuJyd5dWtpXCA7Civni4Lmg7Pmm7IgPiBreW91c291a3lva3VcIDsKK+S+teeVpeiAhSA+IHNoaW5yeWFrdXNoYVwgOwor55S65b255Lq6ID4gbWFjaGl5YWt1bmluXCA7CivomrDonJLnnIkgPiBnZWppZ2VqaW1heXVcIDsKK+Wtpue/kuWhviA+IGdha3VzaHV1anVrdVwgOwor5paw55m65aOyID4gc2hpbmhhdHN1YmFpXCA7Civnq7bkuonlipsgPiBreW91c291cnlva3VcIDsKK+WkseWQjeawjyA+IHNoaXRzdW1laXNoaVwgOwor6KGo5bqn5pW3ID4gb21vdGV6YXNoaWtpXCA7CivlvrTnmbrku6QgPiBjaG91aGF0c3VyZWlcIDsKK+WJr+WPjuWFpSA+IGZ1a3VzaHV1bnl1dVwgOwor5oGQ5Zad572qID4ga3lvdWthdHN1emFpXCA7CivlsYjmipjou7ggPiBrdXNzZXRzdWppa3VcIDsKK+WQiOWIh+iiiyA+IGdhc3NhaWJ1a3Vyb1wgOwor5raI5oGv6YCaID4gc2hvdXNva3V0c3V1XCA7CivmoKrkuLvmqKkgPiBrYWJ1bnVzaGlrZW5cIDsKK+WNoOacieeOhyA+IHNlbicneXV1cml0c3VcIDsKK+WNl+S6rOiiiyA+IG5hbmtpbmJ1a3Vyb1wgOwor6auY6auY5oyHID4gdGFrYXRha2F5dWJpXCA7Civnmb3oibLlhYkgPiBoYWt1c2hva3Vrb3VcIDsKK+mQmOS5s+efsyA+IHNob3VueXV1c2VraVwgOwor5pel57Gz5Y2UID4gbmljaGliZWlreW91XCA7CivlsYjmipjop5IgPiBrdXNzZXRzdWtha3VcIDsKK+auuuS6uueahCA+IHNhdHN1amludGVraVwgOwor5bem5Zuj5omHID4gaGlkYXJpdWNoaXdhXCA7CivpmLLlobXlrqQgPiBib3VqaW5zaGl0c3VcIDsKK+WQq+acieeOhyA+IGdhbicneXV1cml0c3VcIDsKK+iEiOaQj+aVsCA+IG15YWt1aGFrdXN1dVwgOwor5o6o6YCy5YqbID4gc3Vpc2hpbnJ5b2t1XCA7Civogb7moZ/mlbcgPiB0c3VuYm9zYWppa2lcIDsKK+e4rue3rOeauiA+IGNoaXJpbWVuaml3YVwgOwor5q665Lq654uCID4gc2F0c3VqaW5reW91XCA7CivovLjlh7rlhaUgPiB5dXNodXRzdW55dXVcIDsKK+ims+WuouW4rSA+IGthbmt5YWt1c2VraVwgOwor5ZG95Yal5YqgID4gaW5vY2hpbXlvdWdhXCA7Civooajlha3njokgPiBoeW91cm9rdWRhbWFcIDsKK+ajruael+a1tCA+IHNoaW5yaW4nJ3lva3VcIDsKK+iAleS9nOeJqSA+IGtvdXNha3VidXRzdVwgOwor54iG55m6566hID4gYmFrdWhhdHN1a2FuXCA7Civpu5LlhavkuIggPiBrdXJvaGFjaGlqb3VcIDsKK+WNiui6q+a1tCA+IGhhbnNoaW4nJ3lva3VcIDsKK+aal+e3keiJsiA+IGFucnlva3VzaG9rdVwgOwor562L6IKJ55ebID4ga2luJyduaWt1dHN1dVwgOwor6IG36IO957WmID4gc2hva3Vub3VreXV1XCA7CivmlrDnlJ/niakgPiBzaGluc2VpYnV0c3VcIDsKK+WHjOmchOiKsSA+IG5vdXplbmthenVyYVwgOwor6buS6Imy5bCJID4ga29rdXNoaWtpam91XCA7CivlgbbnmbrnmoQgPiBndXVoYXRzdXRla2lcIDsKK+eJueeUo+eJqSA+IHRva3VzYW5idXRzdVwgOwor5YyW57Kn5a6kID4ga2VzaG91c2hpdHN1XCA7Civnt4/mlK/lh7ogPiBzb3VzaGlzaHV0c3VcIDsKK+WTsuWtpuabuCA+IHRldHN1Z2FrdXNob1wgOwor5Y2a54mp6aSoID4gaGFrdWJ1dHN1a2FuXCA7Civku7Lku4vniakgPiBjaHV1a2FpYnV0c3VcIDsKK+eZvemgrem3siA+IGhha3V0b3V3YXNoaVwgOwor5pyA5paw5byPID4gc2Fpc2hpbnNoaWtpXCA7CivlsbHoupHouoUgPiB5YW1hdHN1dHN1amlcIDsKK+ecgembu+WKmyA+IHNob3VkZW5yeW9rdVwgOwor5LiA5Yy554u8ID4gaXBwaWtpb29rYW1pXCA7Civmtojmga/nrYsgPiBzaG91c29rdXN1amlcIDsKK+S4h+W5tOethiA+IG1hbicnbmVuaGl0c3VcIDsKK+S7h+WQjOawjyA+IGthdGFraWRvdXNoaVwgOwor5bGA5Zyw55qEID4ga3lva3VjaGl0ZWtpXCA7CivpnanmiYvooosgPiBrYXdhdGVidWt1cm9cIDsKK+S4g+WIhuiiliA+IHNoaWNoaWJ1c29kZVwgOwor5b+D6ZyK6KGTID4gc2hpbnJlaWp1dHN1XCA7Civmnb7nq7nmooUgPiBzaG91Y2hpa3ViYWlcIDsKK+aguOmWi+eZuiA+IGtha3VrYWloYXRzdVwgOwor5Zu96Zqb6ImyID4ga29rdXNhaXNob2t1XCA7CivlrZDkvpvlv4MgPiBrb2RvbW9nb2tvcm9cIDsKK+WLhemBuOmbhiA+IGNob2t1c2Vuc2h1dVwgOwor57K+56We5YqbID4gc2Vpc2hpbnJ5b2t1XCA7Civlho3nqoHlhaUgPiBzYWl0b3RzdW55dXVcIDsKK+eZuuS/oeWxgCA+IGhhc3NoaW5reW9rdVwgOwor5aSn5ZKM5b+DID4geWFtYXRvZ29rb3JvXCA7Civoqr/lvovluKsgPiBjaG91cml0c3VzaGlcIDsKK+i+nuiBt+mhmCA+IGppc2hva3VuZWdhaVwgOwor6Kaq5a+G5oSfID4gc2hpbm1pdHN1a2FuXCA7CivnqpPpmpvml48gPiBtYWRvZ2l3YXpva3VcIDsKK+WGmeecn+ihkyA+IHNoYXNoaW5qdXRzdVwgOwor5b6p5YWD5YqbID4gZnVrdWdlbnJ5b2t1XCA7CivovLvlsITnhrEgPiBmdWt1c2hhbmV0c3VcIDsKK+S+m+i/sOiAhSA+IGt5b3VqdXRzdXNoYVwgOwor56We57WM56+AID4gc2hpbmtlaXNldHN1XCA7CivniIbnmbrmgKcgPiBiYWt1aGF0c3VzZWlcIDsKK+WFqOaXpeWItiA+IHplbicnbmljaGlzZWlcIDsKK+a2iOavkuiWrCA+IHNob3Vkb2t1eWFrdVwgOwor6YGT5b6z5b6LID4gZG91dG9rdXJpdHN1XCA7Civlm73pmLLoibIgPiBrb2t1Ym91c2hva3VcIDsKK+e1guacq+irliA+IHNodXVtYXRzdXJvblwgOwor5bCG6LuN6IG3ID4gc2hvdWd1bnNob2t1XCA7CivojYnmnIjmtYEgPiBzb3VnZXRzdXJ5dXVcIDsKK+aYjui1pOiJsiA+IG1laXNla2lzaG9rdVwgOwor5LuY552A5YqbID4gZnVjaGFrdXJ5b2t1XCA7Civop6PmsbrnrZYgPiBrYWlrZXRzdXNha3VcIDsKK+WPo+WUh+ijgiA+IGtvdXNoaW5yZXRzdVwgOwor5LiD6I2J57KlID4gbmFuYWt1c2FnYXl1XCA7CivllYbmpa3lraYgPiBzaG91Z3lvdWdha3VcIDsKK+W7uuioreecgSA+IGtlbnNldHN1c2hvdVwgOwor5YiG5Yil5b+DID4gZnVuYmV0c3VzaGluXCA7Civlu7roqK3nmoQgPiBrZW5zZXRzdXRla2lcIDsKK+S6jOe/u+W9uSA+IHJ5YW5mYW4nJ3lha3VcIDsKK+WPo+aLjeWtkCA+IGt1Y2hpYnlvdXNoaVwgOwor6KqN6Ki85byPID4gbmluc2hvdXNoaWtpXCA7Civnt4/mi6znmoQgPiBzb3VrYXRzdXRla2lcIDsKK+aJmOmJouWDpyA+IHRha3VoYXRzdXpvdVwgOwor5ZWG5qWt5Zu9ID4gc2hvdWd5b3Vrb2t1XCA7Civku7Lkurrlj6MgPiBuYWtvdWRvZ3VjaGlcIDsKK+ahnOWJjee3miA+IHNha3VyYXplbnNlblwgOwor6b6N6IiM6JitID4gcnl1dXpldHN1cmFuXCA7CivlvLfliLblipsgPiBreW91c2Vpcnlva3VcIDsKK+W/heiqreabuCA+IGhpdHN1ZG9rdXNob1wgOwor5Zyn5Yqb6KiIID4gYXRzdXJ5b2t1a2VpXCA7Civpmo/nrYbpm4YgPiB6dWloaXRzdXNodXVcIDsKK+eMq+ebruefsyA+IG5la29tb2t1c2VraVwgOwor5YuJ5by35py6ID4gYmVua3lvdXp1a3VlXCA7Civnmb3njonmpbwgPiBoYWt1Z3lva3Vyb3VcIDsKK+mWi+mAmuW8jyA+IGthaXRzdXVzaGlraVwgOwor6KW/5Y2K55CDID4gbmlzaGloYW5reXV1XCA7CivllYTmnKjps6UgPiB0YWt1Ym9rdWNob3VcIDsKK+WNmOS4gOW9oiA+IHRhbicnaWNoaWdhdGFcIDsKK+W/heeEtueahCA+IGhpdHN1emVudGVraVwgOwor5rC06J+36J6CID4gbWl6dWthbWFraXJpXCA7CivmmJ/mnIjlpJwgPiBob3NoaWR6dWt1eW9cIDsKK+e4nue5lOeJqSA+IHNoaW1hb3JpbW9ub1wgOwor5bu66Kit5qWtID4ga2Vuc2V0c3VneW91XCA7CivpvLvpq5jjgIUgPiBoYW5hdGFrYWRha2FcIDsKK+WVhuS6uuihlyA+IHNob3VuaW5tYWNoaVwgOwor5LiA5bmV54mpID4gaGl0b21ha3Vtb25vXCA7Civnmb7kurrlipsgPiBoeWFrdW5pbnJpa2lcIDsKK+S+m+i/sOabuCA+IGt5b3VqdXRzdXNob1wgOwor5a6f5qWt55WMID4gaml0c3VneW91a2FpXCA7CivooYzlubPpjYsgPiB5dWtpaGlyYW5hYmVcIDsKK+iQveaIkOW8jyA+IHJha3VzZWlzaGlraVwgOwor5p+z5bed6Y2LID4geWFuYWdhd2FuYWJlXCA7CivoiKrntprlipsgPiBrb3V6b2t1cnlva3VcIDsKK+ebtOaOpeiyuyA+IGNob2t1c2V0c3VoaVwgOwor5bGx5qKo55yMID4geWFtYW5hc2hpa2VuXCA7Civmo5fmpLDlrZAgPiBuYXRzdW1leWFzaGlcIDsKK+WIuua/gOeJqSA+IHNoaWdla2lidXRzdVwgOwor5ryr6YGK5a6iID4gbWFuJyd5dXVreWFrdVwgOwor6aOf54mp5rK5ID4gc2hva3VidXRzdXl1XCA7Civnk6bnhY7ppIUgPiBrYXdhcmFzZW5iZWlcIDsKK+imquWtkOS4vCA+IG95YWtvZG9uYnVyaVwgOwor6JGX6L+w5qWtID4gY2hvanV0c3VneW91XCA7Civokrznmb3oibIgPiBzb3VoYWt1c2hva3VcIDsKK+S4g+i+uuW9oiA+IHNoaWNoaWhlbmtlaVwgOwor5bm05pyr6L+EID4gbmVubWF0c3VtYWRlXCA7Civlo7LmmKXlrr8gPiBiYWlzaHVuJyd5YWRvXCA7Civos6rngrnns7sgPiBzaGl0c3V0ZW5rZWlcIDsKK+W+oeS8veipsSA+IG90b2dpYmFuYXNoaVwgOwor5pON5qWt546HID4gc291Z3lvdXJpdHN1XCA7CivmnpXlsY/poqggPiBtYWt1cmFieW91YnVcIDsKK+ihgOa2suWtpiA+IGtldHN1ZWtpZ2FrdVwgOwor5Z+6552j5pWZID4ga2lyaXN1dG9reW91XCA7CivpvKDoirHngasgPiBuZXp1bWloYW5hYmlcIDsKK+aNleeJqeW4syA+IHRvcmltb25vY2hvdVwgOwor5o2V54mp5biWID4gdG9yaW1vbm9jaG91XCA7Civosq/olLXlrqQgPiBjaG96b3VzaGl0c3VcIDsKK+W8lOWVj+WuoiA+IGNob3Vtb25reWFrdVwgOwor6YG65aSx54mpID4gaXNoaXRzdWJ1dHN1XCA7Civli5XohIjooYAgPiBkb3VteWFra2V0c3VcIDsKK+WFpeWgtOW8jyA+IG55dXVqb3VzaGlraVwgOwor57Sw6IOe6LOqID4gc2FpYm91c2hpdHN1XCA7CivooYDmtrLlnosgPiBrZXRzdWVraWdhdGFcIDsKK+aomeitmOeBryA+IGh5b3VzaGlraXRvdVwgOwor5YyF5ous55qEID4gaG91a2F0c3V0ZWtpXCA7CivliofkuK3liocgPiBnZWtpY2h1dWdla2lcIDsKK+Wun+eUqOeahCA+IGppdHN1eW91dGVraVwgOwor5L6N5YWr6aiOID4gc2FtdXJhaWhha2tpXCA7CivkuK3plpPoibIgPiBjaHV1a2Fuc2hva3VcIDsKK+mWi+iFueihkyA+IGthaWZ1a3VqdXRzdVwgOwor55u05pKD5by+ID4gY2hva3VnZWtpZGFuXCA7Civlia/nlKPniakgPiBmdWt1c2FuYnV0c3VcIDsKK+WRveS4reeOhyA+IG1laWNodXVyaXRzdVwgOwor6KGA5Y+L55eFID4ga2V0c3V5dXVieW91XCA7Civnsr7nmb3njocgPiBzZWloYWt1cml0c3VcIDsKK+Wdh+izquaApyA+IGtpbnNoaXRzdXNlaVwgOwor5oi457GN5L+CID4ga29zZWtpZ2FrYXJpXCA7CivmjqXlrqLmpa0gPiBzZWtreWFrdWd5b3VcIDsKK+iThOiGv+eXhyA+IGNoaWt1bm91c2hvdVwgOwor6Iqx5b2i5qCqID4gaGFuYWdhdGFrYWJ1XCA7CivmjK/lh7rkurogPiBmdXJpZGFzaGluaW5cIDsKK+iou+mHiOiAhSA+IGNodXVzaGFrdXNoYVwgOwor56aB5qyy55qEID4ga2luJyd5b2t1dGVraVwgOwor5LiA5YiG5YilID4gaGl0b2Z1bmJldHN1XCA7CivljYrni6znq4sgPiBoYW5kb2t1cml0c3VcIDsKK+Wft+WLmeS4rSA+IHNoaXRzdW11Y2h1dVwgOwor6Kaq5pel5rS+ID4gc2hpbicnbmljaGloYVwgOwor56aP5bO255yMID4gZnVrdXNoaW1ha2VuXCA7Civoqr/oibLmnb8gPiBjaG91c2hva3ViYW5cIDsKK+WJquWumumLjyA+IHNlbnRlaWJhc2FtaVwgOwor57eR6buE6ImyID4gcnlva3VvdXNob2t1XCA7CivkuIvlsYvmlbcgPiBzaGltb3lhc2hpa2lcIDsKK+i7iueUqOWTgSA+IGt1cnVtYXlvdWhpblwgOwor6ICQ5LmF5YqbID4gdGFpa3l1dXJ5b2t1XCA7Civlr53lj7DomasgPiBzaGluZGFpbXVzaGlcIDsKK+WXnOiZkOeahCA+IHNoaWd5YWt1dGVraVwgOwor5Lit57aZ5bGAID4gY2h1dWtlaWt5b2t1XCA7CivplbfluoPoiIwgPiBjaG91a291emV0c3VcIDsKK+aXpeayoeW+jCA+IG5pY2hpYm90c3Vnb1wgOwor5YuV6ISI55ikID4gZG91bXlha3VyeXV1XCA7CivkuIDovKrmjL8gPiBpY2hpcmluemFzaGlcIDsKK+iSuOeZuueavyA+IGpvdWhhdHN1emFyYVwgOwor6LOD5YCf5qipID4gY2hpbnNoYWt1a2VuXCA7CivljbjllY/lsYsgPiBvcm9zaGlkb24nJ3lhXCA7CivpmLLmub/liaQgPiBib3VzaGl0c3V6YWlcIDsKK+WPjuepq+mrmCA+IHNodXVrYWt1ZGFrYVwgOwor5YaN5Ye655m6ID4gc2Fpc2h1cHBhdHN1XCA7CivljZTlpY/mm7IgPiBreW91c291a3lva3VcIDsKK+WRqOalteaYnyA+IHNodXVreW9rdXNlaVwgOwor6Zu26KGM5YiXID4gcmVpZ3lvdXJldHN1XCA7Civlh7rnmbrngrkgPiBzaHVwcGF0c3V0ZW5cIDsKK+WQiOagvOeOhyA+IGdvdWtha3VyaXRzdVwgOwor6KGM6YCy5puyID4ga291c2hpbmt5b2t1XCA7Civnmb3nhrHnga8gPiBoYWt1bmV0c3V0b3VcIDsKK+mjn+aWmeWTgSA+IHNob2t1cnlvdWhpblwgOwor5pON6LuK5L+CID4gc291c2hhZ2FrYXJpXCA7CivliLrmiJ/niakgPiBzaGlnZWtpYnV0c3VcIDsKK+a5v+mbu+axoCA+IHNoaXRzdWRlbmNoaVwgOwor6Kaz5o6M6KGTID4ga2Fuc2hvdWp1dHN1XCA7CivnnJ/pqqjpoIIgPiBzaGlua290Y2hvdVwgOwor5b+F6KaB5ZOBID4gaGl0c3V5b3VoaW5cIDsKK+eUu+S4lueahCA+IGtha3VzZWl0ZWtpXCA7CivnhqjmlpfooosgPiBub3NoaWJ1a3Vyb1wgOwor5ris5Zyw5a2mID4gc29rdWNoaWdha3VcIDsKK+mbgeacqOmRoiA+IGdhbmdpeWFzdXJpXCA7Civlho3libLlvJUgPiBzYWl3YXJpYmlraVwgOwor5aWJ54yu5byPID4gaG91a2Vuc2hpa2lcIDsKK+WIneiqleeUnyA+IGhhdHN1dGFuam91XCA7CivkuInmnKzotrMgPiBzYW5ib24nJ2FzaGlcIDsKK+WIpOaWreWKmyA+IGhhbmRhbnJ5b2t1XCA7CivljZToqr/mgKcgPiBreW91Y2hvdXNlaVwgOwor5aSp6YGT5Lm+ID4gdGVudG91Ym9zaGlcIDsKK+eZveaXpeWkoiA+IGhha3VqaXRzdW11XCA7CivliIbmnpDooaggPiBidW5zZWtpaHlvdVwgOwor5om/6Ku+5pu4ID4gc2hvdWRha3VzaG9cIDsKK+Wwkemjn+WutiA+IHNob3VzaG9rdWthXCA7Civku67ln7fooYwgPiBrYXJpc2hpa2tvdVwgOwor5o+h5Yqb6KiIID4gYWt1cnlva3VrZWlcIDsKK+S4jei2s+WLnSA+IGZ1c29rdWdhY2hpXCA7CivlvozpgLLlm70gPiBrb3VzaGlua29rdVwgOwor5rSX55y86JasID4gc2VuZ2FuJyd5YWt1XCA7Civlvqnnv5LmlocgPiBmdWt1c2h1dWJ1blwgOwor5q2i6KGA5bivID4gc2hpa2V0c3V0YWlcIDsKK+S4i+Wuv+aWmSA+IGdlc2h1a3VyeW91XCA7Civph43ph4/ntJogPiBqdXVyeW91a3l1dVwgOwor5YmN6YCy6Lu4ID4gemVuc2hpbmppa3VcIDsKK+mJhOefs+W/gyA+IHRlc3Nla2lzaGluXCA7CivnlJjojLbolJMgPiBhbWFjaGFkenVydVwgOwor572y5ZCN5byPID4gc2hvbWVpc2hpa2lcIDsKK+S6uuW/g+WcsCA+IGhpdG9nb2tvY2hpXCA7Civlm5rkurrmnI0gPiBzaHV1amluZnVrdVwgOwor5b6L5YSA6ICFID4gcmljaGlnaW1vbm9cIDsKK+mbgeacqOi7iiA+IGdhbmdpZ3VydW1hXCA7CivmhoLmrJ3nl4cgPiB5dXV1dHN1c2hvdVwgOwor5a6f6aiT5byPID4gamlra2Vuc2hpa2lcIDsKK+eLguS/oeiAhSA+IGt5b3VzaGluc2hhXCA7CivmsJHml4/nmoQgPiBtaW56b2t1dGVraVwgOwor55m66KiA6ICFID4gaGF0c3VnZW5zaGFcIDsKK+WNmOe4puWIlyA+IHRhbmp1dXJldHN1XCA7CivkuInkurrntYQgPiBzYW4nJ25pbmd1bWlcIDsKK+m7kuaWkeeXhSA+IGtva3VoYW5ieW91XCA7CivmgqrmgqrmiK8gPiB3YXJ1aXRhenVyYVwgOwor5a6f55So5ZOBID4gaml0c3V5b3VoaW5cIDsKK+Wkp+iFv+mqqCA+IGRhaXRhaWtvdHN1XCA7CivmsLTonJzmoYMgPiBzdWltaXRzdXRvdVwgOwor5ryC5rWB6Ii5ID4gaHlvdXJ5dXVzZW5cIDsKK+mguOWLleiEiCA+IGtlaWRvdW15YWt1XCA7CivnlJ/lhbXms5UgPiBuYW1hYnlvdWhvdVwgOwor54OP57696ImyID4ga2FyYXN1YmFpcm9cIDsKK+W8n+W8n+WtkCA+IG90b3V0b2Rlc2hpXCA7CivliofmloflraYgPiBnZWtpYnVuZ2FrdVwgOwor5Yqg6Jas6aOvID4ga2F5YWt1bWVzaGlcIDsKK+WMl+WNiueQgyA+IGtpdGFoYW5reXV1XCA7Civpm4bkuK3nt5ogPiBzaHV1Y2h1dXNlblwgOwor5b6X5qWt5aOrID4gdG9rdWd5b3VzaGlcIDsKK+WJjemAsuinkiA+IHplbnNoaW5rYWt1XCA7CivppIrmrpbmsaAgPiB5b3VzaG9rdWNoaVwgOwor5Zec6JmQ5oCnID4gc2hpZ3lha3VzZWlcIDsKK+S4ieS6uuensCA+IHNhbicnbmluc2hvdVwgOwor5Lit57Sa5ZOBID4gY2h1dWt5dXVoaW5cIDsKK+a8gua1geiAhSA+IGh5b3VyeXV1c2hhXCA7Civoqpjmg5HniakgPiB5dXV3YWt1bW9ub1wgOwor6aCt6JOL6aqoID4gdG91Z2Fpa290c3VcIDsKK+eZuuaYjuWTgSA+IGhhdHN1bWVpaGluXCA7CivlpLHmoLzogIUgPiBzaGlra2FrdXNoYVwgOwor5oiQ57i+6KGoID4gc2Vpc2VraWh5b3VcIDsKK+azqOaWh+WFiCA+IGNodXVtb25zYWtpXCA7Civml6Lmsbrlm5ogPiBraWtldHN1c2h1dVwgOwor5pGC5YuV6KuWID4gc2V0c3Vkb3Vyb25cIDsKK+S8j+a1geawtCA+IGZ1a3VyeXV1c3VpXCA7Civni6zoo4HnmoQgPiBkb2t1c2FpdGVraVwgOwor6auY6Kq/5a2QID4gdGFrYWNob3VzaGlcIDsKK+eri+iEmuWcsCA+IHJpa2t5YWt1Y2hpXCA7Civlho3mp4vnr4kgPiBzYWlrb3VjaGlrdVwgOwor5quT5aSq6byTID4geWFndXJhZGFpa29cIDsKK+atouihgOWJpCA+IHNoaWtldHN1emFpXCA7CivkuKHmlrnlhbEgPiByeW91aG91dG9tb1wgOwor5p2+6JGJ5p2WID4gbWF0c3ViYWR6dWVcIDsKK+ayluepjee1sSA+IGNodXVzZWtpdG91XCA7Civku5XkuovnrrEgPiBzaGlnb3RvYmFrb1wgOwor5rC36YaL6YW4ID4gaHlvdXNha3VzYW5cIDsKK+abuOexjeWVhiA+IHNob3Nla2lzaG91XCA7Civku67ntrTmnKwgPiBrYXJpdG9qaWhvblwgOwor55m66Zu75omAID4gaGF0c3VkZW5zaG9cIDsKK+WumOiDveeahCA+IGthbicnbm91dGVraVwgOwor5pyr5qKi55qEID4gbWFzc2hvdXRla2lcIDsKK+S4remWk+WbvSA+IGNodXVrYW5rb2t1XCA7CivmgJ3ntKLnmoQgPiBzaGlzYWt1dGVraVwgOwor5Ye66Lqr5qChID4gc2h1c3NoaW5rb3VcIDsKK+eBsOmdkuiJsiA+IGhhaXNlaXNob2t1XCA7CivoiKrmtbfooZMgPiBrb3VrYWlqdXRzdVwgOwor5bCP5p2x5LqsID4gc2hvdXRvdWt5b3VcIDsKK+WNg+S6uuWKmyA+IHNlbicnbmlucmlraVwgOwor5Lq65bel6IqdID4gamlua291c2hpYmFcIDsKK+i7vemHj+e0miA+IGtlaXJ5b3VreXV1XCA7Civmi5jmnZ/lnKcgPiBrb3Vzb2t1YXRzdVwgOwor5oim6ZeY5YqbID4gc2VudG91cnlva3VcIDsKK+eQg+mdoumPoSA+IGt5dXVtZW5reW91XCA7CivkurrlvaLliocgPiBuaW5neW91Z2VraVwgOwor54Sh6aqo6ICFID4gYnVrb3RzdW1vbm9cIDsKK+eUuuWlieihjCA+IG1hY2hpYnVneW91XCA7CivnqbroqLzmlocgPiBrYXJhc2hvdW1vblwgOwor5rC36YWi6YW4ID4gaHlvdXNha3VzYW5cIDsKK+aUvueJqee3miA+IGhvdWJ1dHN1c2VuXCA7Civoqr/lrZDogIUgPiBjaG91c2hpbW9ub1wgOwor54++5a6f5oSfID4gZ2Vuaml0c3VrYW5cIDsKK+epjeWIhuWtpiA+IHNla2lidW5nYWt1XCA7Civnj77lrp/mgKcgPiBnZW5qaXRzdXNlaVwgOwor6auY6Zu75ZynID4ga291ZGVuJydhdHN1XCA7CivlrabllY/nmoQgPiBnYWt1bW9udGVraVwgOwor5a2m56m255qEID4gZ2Fra3l1dXRla2lcIDsKK+WPjuepq+elrSA+IHNodXVrYWt1c2FpXCA7CivniannkIblraYgPiBidXRzdXJpZ2FrdVwgOwor5Z6C55u057eaID4gc3VpY2hva3VzZW5cIDsKK+attOWPsuWtpiA+IHJla2lzaGlnYWt1XCA7CivmvaTmu5HliaQgPiBqdW5rYXRzdXphaVwgOwor57WE57mU5a2mID4gc29zaGlraWdha3VcIDsKK+eZuumbu+WtkCA+IGhhdHN1ZGVuc2hpXCA7CivkuInlsIrku48gPiBzYW56b25idXRzdVwgOwor5byV5Y+W5Lq6ID4gaGlraXRvcmluaW5cIDsKK+a8guaziuiAhSA+IGh5b3VoYWt1c2hhXCA7CivnnJ/nlLDomasgPiBzYW5hZGFtdXNoaVwgOwor6ZeH5ZWG5Lq6ID4geWFtaXNob3VuaW5cIDsKK+WFpea8geaWmSA+IG55dXVneW9yeW91XCA7CivkuIPlrp3nhLwgPiBzaGlwcG91eWFraVwgOwor6Yu86YmE5p2/ID4ga291dGV0c3ViYW5cIDsKK+WEquiJr+agqiA+IHl1dXJ5b3VrYWJ1XCA7CivmnKzmoLznmoQgPiBob25rYWt1dGVraVwgOwor5b6p6K6Q5oimID4gZnVrdXNodXVzZW5cIDsKK+aatOWKm+WboyA+IGJvdXJ5b2t1ZGFuXCA7CivliJ3oqLrmlpkgPiBzaG9zaGlucnlvdVwgOwor5Y+j6YGU6ICFID4ga3VjaGlkYXNzaGFcIDsKK+iAkOeGseaApyA+IHRhaW5ldHN1c2VpXCA7CivlopfooYDliaQgPiB6b3VrZXRzdXphaVwgOwor5YyX5YyX5p2xID4gaG9rdWhva3V0b3VcIDsKK+eZuuiogOaoqSA+IGhhdHN1Z2Vua2VuXCA7CivmgKXmiJDplbcgPiBreXV1c2VpY2hvdVwgOwor5Ye66LOH6aGNID4gc2h1c3NoaWdha3VcIDsKK+WGheWIhuazjCA+IG5haWJ1bnBpdHN1XCA7Civlm5vml6znr4AgPiBzaGlqdW5zZXRzdVwgOwor5Lmd5a6Y6bOlID4ga3l1dWthbmNob3VcIDsKK+iAgeS6uuWKmyA+IHJvdWppbnJ5b2t1XCA7Civlu7rnr4nlo6sgPiBrZW5jaGlrdXNoaVwgOwor5aSq5qW15ouzID4gdGFpa3lva3VrZW5cIDsKK+eUn+eVque1hCA+IG5hbWFiYW5ndW1pXCA7CivppIrmrpbloLQgPiB5b3VzaG9rdWpvdVwgOwor6Jma6ISx5oSfID4ga3lvZGF0c3VrYW5cIDsKK+ixoeeJmeizqiA+IHpvdWdlc2hpdHN1XCA7CivpmobpvLvooZMgPiByeXV1YmlqdXRzdVwgOwor6KGo6Z2i56mNID4gaHlvdW1lbnNla2lcIDsKK+WKquWKm+izniA+IGRvcnlva3VzaG91XCA7CivljYHkurrkuKYgPiBqdXVuaW4nJ25hbWlcIDsKK+iWrOmRtemgrSA+IHlha2FuJydhdGFtYVwgOwor5ZWG5aOy562LID4gc2hvdWJhaXN1amlcIDsKK+a4r+a5vuWxgCA+IGtvdXdhbmt5b2t1XCA7CivmsLTllYblo7IgPiBtaXp1c2hvdWJhaVwgOwor6YmE6YGT5L6/ID4gdGV0c3Vkb3ViaW5cIDsKK+awkeaXj+WtpiA+IG1pbnpva3VnYWt1XCA7CivmrbTlj7LliocgPiByZWtpc2hpZ2VraVwgOwor5rqd5b2i6Yu8ID4gbWl6b2dhdGFrb3VcIDsKK+aYjuaZsOWkoiA+IG1laXNla2l5dW1lXCA7CivpgKDooYDliaQgPiB6b3VrZXRzdXphaVwgOwor5pat57aa55qEID4gZGFuem9rdXRla2lcIDsKK+W8j+mDqOecgSA+IHNoaWtpYnVzaG91XCA7CivmpbXpgZPogIUgPiBnb2t1ZG91bW9ub1wgOwor6ZaL5qCh5byPID4ga2Fpa291c2hpa2lcIDsKK+awkee0hOirliA+IG1pbicneWFrdXJvblwgOwor6Ziy5b6h546HID4gYm91Z3lvcml0c3VcIDsKK+ihqOmdoueahCA+IGh5b3VtZW50ZWtpXCA7CivoqIjmmYLkv4IgPiBrZWlqaWdha2FyaVwgOwor5b6M55m65ZOBID4ga291aGF0c3VoaW5cIDsKK+iWqeaRqeeEvCA+IHNhdHN1bWF5YWtpXCA7Civlh7rouqvlnLAgPiBzaHVzc2hpbmNoaVwgOwor6K236Lqr6KGTID4gZ29zaGluanV0c3VcIDsKK+S4juWkquipsSA+IHlvdGFiYW5hc2hpXCA7Civlho3lhaXlraYgPiBzYWlueXV1Z2FrdVwgOwor5Y2U57SE5pu4ID4ga3lvdXlha3VzaG9cIDsKK+iqv+WtkOeJqSA+IGNob3VzaGltb25vXCA7CivkuInnvr3ng48gPiBzYW5iYWdhcmFzdVwgOwor6Kiq5ZWP5a6iID4gaG91bW9ua3lha3VcIDsKK+ayu+mok+iWrCA+IGNoaWtlbicneWFrdVwgOwor5oCn5ZaE6KqsID4gc2VpemVuc2V0c3VcIDsKK+S7leS6i+afhCA+IHNoaWdvdG9nYXJhXCA7CivlpKfmoLnotrMgPiBkYWlrb24nJ2FzaGlcIDsKK+WFieeArOm+jSA+IG1pdHN1c2VyeXV1XCA7Civni7zol4nogIUgPiByb3V6ZWtpbW9ub1wgOwor5b+D5ouN5pWwID4gc2hpbnBha3VzdXVcIDsKK+WLleeJqeiqjCA+IGRvdWJ1dHN1c2hpXCA7Civov5TljbTlgKQgPiBoZW5reWFrdWNoaVwgOwor54Sh6aeE6KmxID4gbXVkYWJhbmFzaGlcIDsKK+WIhuWtkOW8jyA+IGJ1bnNoaXNoaWtpXCA7CivpmY3ou4rlj6MgPiBrb3VzaGFndWNoaVwgOwor5qSc5Ye65ZmoID4ga2Vuc2h1dHN1a2lcIDsKK+iQveiRieadviA+IHJha3V5b3VzaG91XCA7CivmpbXliY3nt5ogPiBreW9rdXplbnNlblwgOwor6LaF6LaK54K5ID4gY2hvdWV0c3V0ZW5cIDsKK+m7kueMqeOAhSA+IGt1cm9zaG91am91XCA7Civlm73mhbbnr4AgPiBrb2trZWlzZXRzdVwgOwor5aSp55Sj54mpID4gdGVuc2FuYnV0c3VcIDsKK+e0s+Wjq+mMsiA+IHNoaW5zaGlyb2t1XCA7Civlho3lhaXlm70gPiBzYWlueXV1a29rdVwgOwor57Ch5r2U5oCnID4ga2Fua2V0c3VzZWlcIDsKK+WIh+aWremdoiA+IHNldHN1ZGFubWVuXCA7CivlvJXovrznt5ogPiBoaWtpa29taXNlblwgOwor57KX5b+96ICFID4gc29rb3RzdW1vbm9cIDsKK+mWi+S8muW8jyA+IGthaWthaXNoaWtpXCA7CivmhJ/lgrfnmoQgPiBrYW5zaG91dGVraVwgOwor5biC5pyJ54mpID4gc2hpeXV1YnV0c3VcIDsKK+iBluiBt+iAhSA+IHNlaXNob2t1c2hhXCA7CivkuK3ooaPlmqIgPiBuYWthZ2FrdXNoaVwgOwor54us56uL6KqeID4gZG9rdXJpdHN1Z29cIDsKK+iCsuWFkOWupCA+IGlrdWppc2hpdHN1XCA7CivnuYHmrpblnLAgPiBoYW5zaG9rdWNoaVwgOwor5LiA5Lq656ewID4gaWNoaW5pbnNob3VcIDsKK+mVt+W0juecjCA+IG5hZ2FzYWtpa2VuXCA7Civpm7vlipvoqIggPiBkZW5yeW9rdWtlaVwgOwor6KO95rC355q/ID4gc2VpaHlvdXphcmFcIDsKK+S4u+eojuWxgCA+IHNodXplaWt5b2t1XCA7CivmjqXntproqp4gPiBzZXRzdXpva3Vnb1wgOwor54m56ZuG5Y+3ID4gdG9rdXNodXVnb3VcIDsKK+m7kuikkOiJsiA+IGtva2thc3Nob2t1XCA7CivkuK3lm73kurogPiBjaHV1Z29rdWppblwgOwor5b6T5bGe5Zu9ID4ganV1em9rdWtva3VcIDsKK+WPo+i/lOetlCA+IGt1Y2hpaGVudG91XCA7CivmuJvoobDnjocgPiBnZW5zdWlyaXRzdVwgOwor5bCO6Zu7546HID4gZG91ZGVucml0c3VcIDsKK+S4gOS6huewoSA+IGljaGlyeW91a2FuXCA7Civlho3ovLjlh7ogPiBzYWl5dXNodXRzdVwgOwor6Z2S6YqF6ImyID4gc2VpZG91c2hva3VcIDsKK+maiuWVhuWuvyA+IHRhaXNob3V5YWRvXCA7CivlvI/mrKHnrKwgPiBzaGlraXNoaWRhaVwgOwor55Sf55Sj54mpID4gc2Vpc2FuYnV0c3VcIDsKK+W5u+immueXhyA+IGdlbmtha3VzaG91XCA7CivmipXmiYvlipsgPiB0b3VzaHVyeW9rdVwgOwor6ZaJ5Lya5byPID4gaGVpa2Fpc2hpa2lcIDsKK+ayluepjeWxpCA+IGNodXVzZWtpc291XCA7CivlgqznnKDooZMgPiBzYWltaW5qdXRzdVwgOwor6J2Z6J2g5YKYID4ga291bW9yaWdhc2FcIDsKK+WQkeaXpeaApyA+IGtvdW5pY2hpc2VpXCA7CivlkLjlj5bntJkgPiBzdWl0b3JpZ2FtaVwgOwor5oaC6ayx55eHID4geXV1dXRzdXNob3VcIDsKK+mrmOWcp+eahCA+IGtvdWF0c3V0ZWtpXCA7CivmnInlipvogIUgPiB5dXVyeW9rdXNoYVwgOwor5Yil5ZWP6aGMID4gYmV0c3Vtb25kYWlcIDsKK+S7o+aVsOW8jyA+IGRhaXN1dXNoaWtpXCA7CivlhaXmuK/mlpkgPiBueXV1a291cnlvdVwgOwor54Sh5a6/6ICFID4gbXVzaHVrdW1vbm9cIDsKK+WOn+WtkOWKmyA+IGdlbnNoaXJ5b2t1XCA7CivmiJDmloflvosgPiBzZWlidW5yaXRzdVwgOwor55S35LiA5Yy5ID4gb3Rva29pcHBpa2lcIDsKK+Whnuagk+eXhyA+IHNva3VzZW5zaG91XCA7CivllYblo7Lmn4QgPiBzaG91YmFpZ2FyYVwgOwor6IW56Laz6aGeID4gZnVrdXNva3VydWlcIDsKK+adseWNsOW6piA+IGhpZ2FzaGlpbmRvXCA7Civos4fmnKzlipsgPiBzaGlob25yeW9rdVwgOwor56WH5ZyS56WtID4gZ2lvbm1hdHN1cmlcIDsKK+S4iuS6rOS4rSA+IGpvdWt5b3VjaHV1XCA7CivlgqznnKDolqwgPiBzYWltaW4nJ3lha3VcIDsKK+ePvuixoeWtpiA+IGdlbnNob3VnYWt1XCA7Civnp4vmtKXls7YgPiBha2l0c3VzaGltYVwgOwor576K5bCP5bGLID4gaGl0c3VqaWdveWFcIDsKK+ijhemjvuWTgSA+IHNvdXNob2t1aGluXCA7CivljYPml6XmiYsgPiBzZW4nJ25pY2hpdGVcIDsKK+akjeawkeWcsCA+IHNob2t1bWluY2hpXCA7CivlpJbliIbms4wgPiBnYWlidW5waXRzdVwgOwor6Zqj6L+R5omAID4gdG9uYXJpa2luam9cIDsKK+WvvumgguinkiA+IHRhaWNob3VrYWt1XCA7CivogqnnlLLpqqggPiBrZW5rb3Vrb3RzdVwgOwor6IWw5byB5b2TID4ga29zaGliZW50b3VcIDsKK+WPo+W3p+iAhSA+IGt1Y2hpZ291c2hhXCA7CivkuI3kuJblh7ogPiBmdXNlaXNodXRzdVwgOwor5YWI5pel5LuYID4gc2FraWhpZHp1a2VcIDsKK+mAj+imluWKmyA+IHRvdXNoaXJ5b2t1XCA7CivlibXoqK3ogIUgPiBzb3VzZXRzdXNoYVwgOwor6YeR6a2a6YmiID4ga2luZ3lvYmFjaGlcIDsKK+ihkuWtpueahCA+IGdlbmdha3V0ZWtpXCA7Civph5Hnn7PlraYgPiBraW5zZWtpZ2FrdVwgOwor6YeO6I+c55WRID4geWFzYWliYXRha2VcIDsKK+ebtOaEn+eahCA+IGNob2trYW50ZWtpXCA7Civli5Xniannm7ggPiBkb3VidXRzdXNvdVwgOwor6LOD5LuV5LqLID4gY2hpbnNoaWdvdG9cIDsKK+eJueioseS4uyA+IHRva2t5b251c2hpXCA7CivlpYnntI3niakgPiBob3Vub3VidXRzdVwgOwor5L+d6YeI5LitID4gaG9zaGFrdWNodXVcIDsKK+mdkuiXjeiJsiA+IHNlaXJhbnNob2t1XCA7CivohIXov6vogIUgPiBreW91aGFrdXNoYVwgOwor5YuV54mp55WMID4gZG91YnV0c3VrYWlcIDsKK+mAmuihjOS4iiA+IHRzdXVrb3Vkb21lXCA7CivlvLflparogIUgPiBnb3VkYXRzdXNoYVwgOwor6ISF6L+r572qID4ga3lvdWhha3V6YWlcIDsKK+Wbo+e1kOaoqSA+IGRhbmtldHN1a2VuXCA7CivntITljYrlubQgPiB5YWt1aGFuJyduZW5cIDsKK+aKleelqOeusSA+IHRvdWh5b3ViYWtvXCA7CivntKDkurroirggPiBzaGlyb3V0b2dlaVwgOwor56mN5qW15oCnID4gc2Vra3lva3VzZWlcIDsKK+alteW6p+aomSA+IGt5b2t1emFoeW91XCA7Civlr53mraPmnIggPiBuZXNob3VnYXRzdVwgOwor5rWa5rir5qmfID4gc2h1bnNldHN1a2lcIDsKK+e/vOmdouepjSA+IHlva3VtZW5zZWtpXCA7Civnt4/nm67pjLIgPiBzb3Vtb2t1cm9rdVwgOwor5qC45Y+N5b+cID4ga2FrdWhhbicnbm91XCA7CivliLbphbjolqwgPiBzZWlzYW4nJ3lha3VcIDsKK+i2heS6uueahCA+IGNob3VqaW50ZWtpXCA7CivnrKzkuIDmtYEgPiBkYWlpY2hpcnl1dVwgOwor6Laz5ouN5a2QID4gYXNoaWJ5b3VzaGlcIDsKK+W8seadkOaWmSA+IHlvd2F6YWlyeW91XCA7CivmjqXop6bnt5ogPiBzZXNzaG9rdXNlblwgOwor5b255Yqb5aOrID4geWFrdXJpa2lzaGlcIDsKK+e1sei9hOiAhSA+IHRvdWthdHN1c2hhXCA7Civku5XkuovkuK0gPiBzaGlnb3RvY2h1dVwgOwor5Zyf55m+5aeTID4gZG9ieWFrdXNob3VcIDsKK+aWh+WtpuizniA+IGJ1bmdha3VzaG91XCA7Civmi5voq4vlm70gPiBzaG91c2Vpa29rdVwgOwor57eP5Y+O5YWlID4gc291c2h1dW55dXVcIDsKK+a4rOmHj+iIuSA+IHNva3VyeW91c2VuXCA7CivlgJ/lnLDmqKkgPiBzaGFrdWNoaWtlblwgOwor5rKW56mN5LiWID4gY2h1dXNla2lzZWlcIDsKK+WPo+i/sOabuCA+IGtvdWp1dHN1c2hvXCA7CivmronogbfogIUgPiBqdW5zaG9rdXNoYVwgOwor55eF6Jmr5a6zID4gYnlvdWNodXVnYWlcIDsKK+aKgOihk+eahCA+IGdpanV0c3V0ZWtpXCA7CivlsI/oqqzlrrYgPiBzaG91c2V0c3VrYVwgOwor54m557SE5bqXID4gdG9rdXlha3V0ZW5cIDsKK+S6pOmAmumHjyA+IGtvdXRzdXVyeW91XCA7CivpgZPmoYjlhoUgPiBtaWNoaWFuJyduYWlcIDsKK+mBk+aZruiriyA+IG1pY2hpYnVzaGluXCA7Civlpb3oibLogIUgPiBrb3VzaG9rdXNoYVwgOwor5raI6Iet5YmkID4gc2hvdXNodXV6YWlcIDsKK+eLrOWWhOeahCA+IGRva3V6ZW50ZWtpXCA7Civop6Plg4/lipsgPiBrYWl6b3VyeW9rdVwgOwor5rW46YCP5ZynID4gc2hpbnRvdWF0c3VcIDsKK+eGseihgOa8oiA+IG5la2tldHN1a2FuXCA7Civlsqnnn7PlraYgPiBnYW5zZWtpZ2FrdVwgOwor6Jyc5p+R55WRID4gbWlrYW5iYXRha2VcIDsKK+eDj+WkqeeLlyA+IGthcmFzdXRlbmd1XCA7CivntLPlo6vnmoQgPiBzaGluc2hpdGVraVwgOwor56qS5oGv5q27ID4gY2hpc3Nva3VzaGlcIDsKK+S4ieWkp+evgCA+IHNhbmRhaXNldHN1XCA7CivmtLvmlq3lsaQgPiBrYXRzdWRhbnNvdVwgOwor55uu6by756uLID4gbWVoYW5hZGFjaGlcIDsKK+WRqOacn+W+iyA+IHNodXVraXJpdHN1XCA7CivpgIDntIXoibIgPiB0YWlrb3VzaG9rdVwgOwor5pKu5YOP566hID4gc2F0c3V6b3VrYW5cIDsKK+iFueWFq+WIhiA+IGhhcmFoYWNoaWJ1XCA7CivpgLLlhaXot68gPiBzaGluJydueXV1cm9cIDsKK+iDjOaXpeaApyA+IGhhaWppdHN1c2VpXCA7CivplpPlpY/mm7IgPiBrYW5zb3VreW9rdVwgOwor5oyH5Y2X5b25ID4gc2hpbmFuJyd5YWt1XCA7CivohIXov6vnirYgPiBreW91aGFrdWpvdVwgOwor5Yqf5ZCN5b+DID4ga291bXlvdXNoaW5cIDsKK+WbnuaVmeWbvSA+IGthaWt5b3Vrb2t1XCA7Civpqqjohpzngo4gPiBrb3RzdW1ha3VlblwgOwor5rKi5bq15rysID4gdGFrdWFuZHp1a2VcIDsKK+agueWIh+iZqyA+IG5la2lyaW11c2hpXCA7CivpgIHmlpnlhbEgPiBzb3VyeW91dG9tb1wgOwor5by15pys5Lq6ID4gY2hvdWhvbicnbmluXCA7CivkuZfou4rlj6MgPiBqb3VzaGFndWNoaVwgOwor5LiA5pel6LevID4gaWNoaW5pY2hpamlcIDsKK+WcsOizquWbsyA+IGNoaXNoaXRzdXp1XCA7Civnq4vmmI7miKYgPiByaXRzdW1laXNlblwgOwor5oq96LGh6KuWID4gY2h1dXNob3Vyb25cIDsKK+S7leios+ihqCA+IHNoaXdha2VoeW91XCA7Civlm73nqI7luoEgPiBrb2t1emVpY2hvdVwgOwor5oCn5oKq6KqsID4gc2VpYWt1c2V0c3VcIDsKK+aHkOmDt+eXhSA+IGthaWt5b3VieW91XCA7Civmn5HmqZjpoZ4gPiBrYW5raXRzdXJ1aVwgOwor5LiA6Z+z56+AID4gaWNoaW9uc2V0c3VcIDsKK+iCqeiDm+mqqCA+IGtlbmtvdWtvdHN1XCA7CivohLHngq3phbggPiBkYXRzdXRhbnNhblwgOwor5paw5oqA6KGTID4gc2hpbmdpanV0c3VcIDsKK+mAhuaOouefpSA+IGd5YWt1dGFuY2hpXCA7Civmi77lvpfogIUgPiBzaHV1dG9rdXNoYVwgOwor5a6d54mp5q6/ID4gaG91bW90c3VkZW5cIDsKK+WWq+eFmeW4rSA+IGtpdHN1ZW5zZWtpXCA7CivlhrfooYDmvKIgPiByZWlrZXRzdWthblwgOwor5Li75Yqb6ImmID4gc2h1cnlva3VrYW5cIDsKK+i7iuWkp+W3pSA+IGt1cnVtYWRhaWt1XCA7CivpgY7po5/nl4cgPiBrYXNob2t1c2hvdVwgOwor5a6/5ZG96KuWID4gc2h1a3VtZWlyb25cIDsKK+WFpemHkeelqCA+IG55dXVraW5oeW91XCA7CivoirHlsYvmlbcgPiBoYW5heWFzaGlraVwgOwor5YWx55m96auqID4gdG9tb3NoaXJhZ2FcIDsKK+WPo+W6p+S/giA+IGtvdXpha2FrYXJpXCA7CivnlJ/lrZjnjocgPiBzZWl6b25yaXRzdVwgOwor54aK5pys55yMID4ga3VtYW1vdG9rZW5cIDsKK+ebtOmKreW9oiA+IGNob2t1c2Vua2VpXCA7Civli5XnianmgKcgPiBkb3VidXRzdXNlaVwgOwor5Y6f54iG55eHID4gZ2VuYmFrdXNob3VcIDsKK+mbu+WLleW8jyA+IGRlbmRvdXNoaWtpXCA7CivnlJ/nlKPlipsgPiBzZWlzYW5yeW9rdVwgOwor5Ymv54mn5birID4gZnVrdWJva3VzaGlcIDsKK+iBlumkkOW8jyA+IHNlaXNhbnNoaWtpXCA7CivpgIbplqLmlbAgPiBneWFrdWthbnN1dVwgOwor5LiD5LqU5LiJID4gc2hpY2hpZ29zYW5cIDsKK+mnkOeVmei7jSA+IGNodXVyeXV1Z3VuXCA7CivllK/nianoq5YgPiB5dWlidXRzdXJvblwgOwor5peF5ZWG5Lq6ID4gdGFiaXNob3VuaW5cIDsKK+aKgOihk+aWmSA+IGdpanV0c3VyeW91XCA7Civnt7Tnv5LluLMgPiByZW5zaHV1Y2hvdVwgOwor6YCg55+z6auYID4gem91a29rdWRha2FcIDsKK+i7jemaiuW8jyA+IGd1bnRhaXNoaWtpXCA7Civnv7voqLPogIUgPiBob24nJ3lha3VzaGFcIDsKK+a9pOebrumwryA+IHVydW1laXdhc2hpXCA7CivojLbopJDoibIgPiBjaGFrYXNzaG9rdVwgOwor56K65a6f5bqmID4ga2FrdWppdHN1ZG9cIDsKK+e3j+WKm+aIpiA+IHNvdXJ5b2t1c2VuXCA7Civlpb3oibLmvKIgPiBrb3VzaG9rdWthblwgOwor5Yid5oqV56i/ID4gaGF0c3V0b3Vrb3VcIDsKK+S4h+S4h+S4gCA+IG1hbm1hbicnaWNoaVwgOwor57Sz5aOr5pyNID4gc2hpbnNoaWZ1a3VcIDsKK+S4gOS7leS6iyA+IGhpdG9zaGlnb3RvXCA7Civll4XnpZ7ntYwgPiBreXV1c2hpbmtlaVwgOwor57aZ57aa55qEID4ga2Vpem9rdXRla2lcIDsKK+aWh+WtpueahCA+IGJ1bmdha3V0ZWtpXCA7Civlha3ph43llLEgPiByb2t1anV1c2hvdVwgOwor546E5Lq6562LID4ga3Vyb3V0b3N1amlcIDsKK+Wbg+WtkOaWuSA+IGhheWFzaGlrYXRhXCA7CivlpKfkurrniakgPiBkYWlqaW5idXRzdVwgOwor5ZCM57O76ImyID4gZG91a2Vpc2hva3VcIDsKK+e0heeZveeyiSA+IGJlbmlvc2hpcm9pXCA7CivlrqPoqpPlvI8gPiBzZW5zZWlzaGlraVwgOwor5Lit5ZKM54axID4gY2h1dXdhbmV0c3VcIDsKK+a2iOiAl+eahCA+IHNob3Vrb3V0ZWtpXCA7CivmlLvmkoPnmoQgPiBrb3VnZWtpdGVraVwgOwor5Z+L6JS154mpID4gbWFpem91YnV0c3VcIDsKK+WJr+iqreacrCA+IGZ1a3Vkb2t1aG9uXCA7Civpup3pppnpvKAgPiBqYWtvdW5lenVtaVwgOwor5pyo6LOD5a6/ID4ga2ljaGluJyd5YWRvXCA7Civlm5vop5Lmn7EgPiBzaGlrYWt1Y2h1dVwgOwor5Lit56m65aOBID4gY2h1dWt1dWthYmVcIDsKK+iAg+iovOWtpiA+IGtvdXNob3VnYWt1XCA7Civlrp/oqLznmoQgPiBqaXNzaG91dGVraVwgOwor5pWR5riI562WID4ga3l1dXNhaXNha3VcIDsKK+i7jeWbveiqvyA+IGd1bmtva3VjaG91XCA7Civnmb3onYvnl4UgPiBoYWt1cm91YnlvdVwgOwor54uC54qs55eFID4ga3lvdWtlbmJ5b3VcIDsKK+awkeihhueahCA+IG1pbnNodXV0ZWtpXCA7CivkuIDkuKHlubQgPiBpY2hpcnlvdW5lblwgOwor5aSn5LuP5q6/ID4gZGFpYnV0c3VkZW5cIDsKK+WIuemCo+eahCA+IHNldHN1bmF0ZWtpXCA7Civli4Xku7vlrpggPiBjaG9rdW5pbmthblwgOwor5Y+M5Y2B56+AID4gc291anV1c2V0c3VcIDsKK+WlveiJsuacrCA+IGtvdXNob2t1Ym9uXCA7CivnqpLljJbniakgPiBjaGlra2FidXRzdVwgOwor5LiJ6KeS57+8ID4gc2Fua2FrdXlva3VcIDsKK+aIkOmVt+agqiA+IHNlaWNob3VrYWJ1XCA7Civnn7PmnZDllYYgPiBzZWtpemFpc2hvdVwgOwor5L6b6KiX6YeRID4ga3lvdXRha3VraW5cIDsKK+eMq+mhjeWkpyA+IGJ5b3VnYWt1ZGFpXCA7CivlnLDmlrnoibIgPiBjaGlob3VzaG9rdVwgOwor55Sf5Lit57aZID4gbmFtYWNodXVrZWlcIDsKK+WQuOWPjuWJpCA+IGt5dXVzaHV1emFpXCA7Civlu7rolL3njocgPiBrZW5wZWlyaXRzdVwgOwor5a6i6Kaz55qEID4ga3lha2thbnRla2lcIDsKK+W+i+e+qeiAhSA+IHJpY2hpZ2ltb25vXCA7CivkuIvntJrogbcgPiBrYWt5dXVzaG9rdVwgOwor5L+u6aO+6KqeID4gc2h1dXNob2t1Z29cIDsKK+Wkp+mjn+a8oiA+IHRhaXNob2t1a2FuXCA7CivlhrfnrJHnmoQgPiByZWlzaG91dGVraVwgOwor5pSv57Wm6aGNID4gc2hpa3l1dWdha3VcIDsKK+S4jeWdh+izqiA+IGZ1a2luc2hpdHN1XCA7Civku6PooajnmoQgPiBkYWloeW91dGVraVwgOwor5YWl6YGT6ZuyID4gbnl1dWRvdWd1bW9cIDsKK+WFsemAmueCuSA+IGt5b3V0c3V1dGVuXCA7CivlhazlvrPlv4MgPiBrb3V0b2t1c2hpblwgOwor5b2i5byP6KuWID4ga2Vpc2hpa2lyb25cIDsKK+mHkeeSsOmjnyA+IGtpbmthbnNob2t1XCA7Civlh7rmnK3miYAgPiBzaHVzc2F0c3Vqb1wgOwor5YyX5qW15rW3ID4gaG9ra3lva3VrYWlcIDsKK+ihjOWumOW6gSA+IGd5b3VrYW5jaG91XCA7Civkv53ouqvooZMgPiBob3NoaW5qdXRzdVwgOwor6ZGR6K2Y55y8ID4ga2Fuc2hpa2lnYW5cIDsKK+WMl+altea0iyA+IGhva2t5b2t1eW91XCA7CivlvavliLvnlYwgPiBjaG91a29rdWthaVwgOwor6aas6bm/6KmxID4gYmFrYWJhbmFzaGlcIDsKK+eJqee0jeeojiA+IGJ1dHN1bm91emVpXCA7CivkuIvlpbPkuK0gPiBzaGltb2pvY2h1dVwgOwor5Zyw5LiL5a6kID4gY2hpa2FzaGl0c3VcIDsKK+iyuOacrOWxiyA+IGthc2hpaG9uJyd5YVwgOwor6Y2+5Lmz5rSeID4gc2hvdW55dXVkb3VcIDsKK+iBt+WToemMsiA+IHNob2t1aW5yb2t1XCA7Civmoq/lrZDphZIgPiBoYXNoaWdvemFrZVwgOwor5rue5Zyo5a6iID4gdGFpemFpa3lha3VcIDsKK+iThOmbu+axoCA+IGNoaWt1ZGVuY2hpXCA7CivoqabmjpjogIUgPiBzaGlrdXRzdXNoYVwgOwor5aSn5a2m5a+uID4gZGFpZ2FrdXJ5b3VcIDsKK+Wnq+Wwj+adviA+IGhpbWVrb21hdHN1XCA7CivnnJ/lrp/lkbMgPiBzaGluaml0c3VtaVwgOwor5peF5b256ICFID4gdGFiaXlha3VzaGFcIDsKK+WbveawkeeahCA+IGtva3VtaW50ZWtpXCA7CivmiKbmsqHogIUgPiBzZW5ib3RzdXNoYVwgOwor5rWB6KGM55eFID4gcnl1dWtvdWJ5b3VcIDsKK+W9q+WIu+eJiCA+IGNob3Vrb2t1YmFuXCA7Civlkajml4vmpa0gPiBzaHV1c2VuZ3lvdVwgOwor5Zuj5omH6JmrID4gdWNoaXdhbXVzaGlcIDsKK+WPo+Wwj+iogCA+IGt1Y2hpa29nb3RvXCA7Civku7vlkb3lvI8gPiBuaW5tZWlzaGlraVwgOwor6Zu75Yqb5YK1ID4gZGVucnlva3VzYWlcIDsKK+WKm+WLleeahCA+IHJpa2lkb3V0ZWtpXCA7CivlpI/luL3lrZAgPiBuYXRzdWJvdXNoaVwgOwor552h55yg6JasID4gc3VpbWluJyd5YWt1XCA7Civljbjnm7jloLQgPiBvcm9zaGlzb3ViYVwgOwor5Y2w5Yi35qWtID4gaW5zYXRzdWd5b3VcIDsKK+S8neWwjueOhyA+IGRlbmRvdXJpdHN1XCA7Civom7jlhaXpgZMgPiB0YWtvbnl1dWRvdVwgOwor6KuH6Kmx5a6kID4gZGFud2FzaGl0c3VcIDsKK+WuieaciOe1piA+IHlhc3VnZWtreXV1XCA7CivljJfmpbXmmJ8gPiBob2treW9rdXNlaVwgOwor5b6h6ZyK5LujID4gbWl0YW1hc2hpcm9cIDsKK+a4rOmHj+WjqyA+IHNva3VyeW91c2hpXCA7Civlh7rpoZjmmYIgPiBzaHV0c3VnYW5qaVwgOwor5LiJ6KeS55C0ID4gc2Fua2FrdWdvdG9cIDsKK+mJhOadoee2siA+IHRldHN1am91bW91XCA7Civnv7voqLPmqKkgPiBob24nJ3lha3VrZW5cIDsKK+eOieadk+WtkCA+IHRhbWFqYWt1c2hpXCA7Civlt6Xmpa3lm70gPiBrb3VneW91a29rdVwgOwor5ZGo5peL5paZID4gc2h1dXNlbnJ5b3VcIDsKK+i/veaSg+aIpiA+IHRzdWlnZWtpc2VuXCA7Civlgrfnl4XlhbUgPiBzaG91YnlvdWhlaVwgOwor5b285bK45qGcID4gaGlnYW56YWt1cmFcIDsKK+S4gOaZguaJlSA+IGljaGlqaWJhcmFpXCA7CivlhoXlrrnniakgPiBuYWl5b3VidXRzdVwgOwor54Sh5LiA54mpID4gbXVpY2hpbW90c3VcIDsKK+WKtOWDjeWKmyA+IHJvdWRvdXJ5b2t1XCA7Civoi6Xnq7nkuq0gPiB3YWthdGFrZXRlaVwgOwor57+76Kiz5pu4ID4gaG9uJyd5YWt1c2hvXCA7CivliLDnnYDpp4UgPiB0b3VjaGFrdWVraVwgOwor5bCR5Zu95rCRID4gc2hvdWtva3VtaW5cIDsKK+eUn+WtpuWVjyA+IG5hbWFnYWt1bW9uXCA7Civku4rmnIjliIYgPiBrb25nZXRzdWJ1blwgOwor5YiG5pWw5byPID4gYnVuc3V1c2hpa2lcIDsKK+aOiOiznuW8jyA+IGp1c2hvdXNoaWtpXCA7CivmjozkuK3mnKwgPiBzaG91Y2h1dWJvblwgOwor55yB5Yqb5YyWID4gc2hvdXJ5b2t1a2FcIDsKK+S7o+ihqOagvCA+IGRhaWh5b3VrYWt1XCA7CivmmLzoiIjooYwgPiBoaXJ1a291Z3lvdVwgOwor6buZ56S66YyyID4gbW9rdXNoaXJva3VcIDsKK+aknOWvn+WumCA+IGtlbnNhdHN1a2FuXCA7CivkvpvoqJfogIUgPiBreW91dGFrdXNoYVwgOwor5rW355Sj54mpID4ga2Fpc2FuYnV0c3VcIDsKK+ikque0heiJsiA+IHRhaWtvdXNob2t1XCA7Civov5Tkv6HnlKggPiBoZW5zaGluJyd5b3VcIDsKK+mBgei1sOabsiA+IHRvbnNvdWt5b2t1XCA7CivovrvlvLfnm5cgPiB0c3VqaWdvdXRvdVwgOwor5YWs5byP5oimID4ga291c2hpa2lzZW5cIDsKK+mHkeeSsOidlSA+IGtpbmthbnNob2t1XCA7CivpnbTkuIDotrMgPiBrdXRzdWlzc29rdVwgOwor5rWq6Iqx56+AID4gbmFuaXdhYnVzaGlcIDsKK+WQhOWkp+WtpiA+IGtha3VkYWlnYWt1XCA7Civnt4/pgIDljbQgPiBzb3V0YWlreWFrdVwgOwor5Zu95rCR5pyNID4ga29rdW1pbmZ1a3VcIDsKK+Wun+WcqOirliA+IGppdHN1emFpcm9uXCA7CivmlZHmgKXou4ogPiBreXV1a3l1dXNoYVwgOwor6ZaT5o6l56iOID4ga2Fuc2V0c3V6ZWlcIDsKK+S5semWi+eZuiA+IHJhbmthaWhhdHN1XCA7CivmiYDluK/kuLsgPiBzaG90YWludXNoaVwgOwor6Ziy5a+S6Z20ID4gYm91a2FuZ3V0c3VcIDsKK+S4ieinkuafsSA+IHNhbmtha3VjaHV1XCA7Civku5XoqLPluLMgPiBzaGl3YWtlY2hvdVwgOwor57KY552A5oCnID4gbmVuY2hha3VzZWlcIDsKK+WvhumAoOmFkiA+IG1pdHN1em91c2h1XCA7CivkuIDlpJzmvKwgPiBpY2hpeWFkenVrZVwgOwor5pac6KeS5p+xID4gc2hha2FrdWNodXVcIDsKK+WvvueFp+eahCA+IHRhaXNob3V0ZWtpXCA7CivlvbnkurrpoqggPiB5YWt1bmlua2F6ZVwgOwor6Ii56Ii25qWtID4gc2VucGFrdWd5b3VcIDsKK+awtOmBk+WxgCA+IHN1aWRvdWt5b2t1XCA7Civlp4vnmbrpp4UgPiBzaGloYXRzdWVraVwgOwor5YyX5qW15ZyPID4gaG9ra3lva3VrZW5cIDsKK+aXpeeUqOWTgSA+IG5pY2hpeW91aGluXCA7Civlj43pgIbogIUgPiBoYW5neWFrdXNoYVwgOwor55m76Yyy5riIID4gdG91cm9rdXp1bWlcIDsKK+WwguWjsuWxgCA+IHNlbmJhaWt5b2t1XCA7CivmqKnlipvogIUgPiBrZW5yeW9rdXNoYVwgOwor5oGS5LmF55qEID4ga291a3l1dXRla2lcIDsKK+WPjemAhue9qiA+IGhhbmd5YWt1emFpXCA7CivnibnnrYnluK0gPiB0b2t1dG91c2VraVwgOwor5YaF5pyN6JasID4gbmFpZnVrdXlha3VcIDsKK+iHhueXhemiqCA+IG9rdWJ5b3VrYXplXCA7CivkvpvntabogIUgPiBreW91a3l1dXNoYVwgOwor5b2r5Yi75birID4gY2hvdWtva3VzaGlcIDsKK+axguS6uumboyA+IGt5dXVqaW4nJ25hblwgOwor6aCa5YuV6ISIID4ga2VpZG91bXlha3VcIDsKK+ippuaOmOaoqSA+IHNoaWt1dHN1a2VuXCA7CivlnKjkuqzkuK0gPiB6YWlreW91Y2h1dVwgOwor5pa556iL5byPID4gaG91dGVpc2hpa2lcIDsKK+mdmeWKm+WtpiA+IHNlaXJpa2lnYWt1XCA7CivkuIDopqfooaggPiBpY2hpcmFuaHlvdVwgOwor5YyX5pyd6a6uID4ga2l0YWNob3VzZW5cIDsKK+eZvuWNg+mzpSA+IG1vbW9jaGlkb3JpXCA7CivpioPliaPooZMgPiBqdXVrZW5qdXRzdVwgOwor57SN6aqo5aCCID4gbm91a290c3Vkb3VcIDsKK+iAs+Wwj+mqqCA+IGppc2hvdWtvdHN1XCA7CivlpKfpnZnohIggPiBkYWlqb3VteWFrdVwgOwor57WM5riI5YqbID4ga2VpemFpcnlva3VcIDsKK+WtpuWNlOS8miA+IGdha3VreW91a2FpXCA7CivkuK3lv4PngrkgPiBjaHV1c2hpbnRlblwgOwor5YyX5qW15YWJID4gaG9ra3lva3Vrb3VcIDsKK+mjn+WTgeW6lyA+IHNob2t1aGludGVuXCA7CivpoJjlj47mm7ggPiByeW91c2h1dXNob1wgOwor6YCa55+l6KGoID4gdHN1dWNoaWh5b3VcIDsKK+mAo+eZuumKgyA+IHJlbnBhdHN1anV1XCA7CivmlLvmkoPlgbQgPiBrb3VnZWtpZ2F3YVwgOwor5aSn5Lit5bCPID4gZGFpY2h1dXNob3VcIDsKK+W5s+Wdh+W+iyA+IGhlaWtpbnJpdHN1XCA7CivotaTmo5/om4cgPiB5YW1ha2FnYXNoaVwgOwor6Kaz5b+155qEID4ga2FuJyduZW50ZWtpXCA7CivlsILploDogbcgPiBzZW5tb25zaG9rdVwgOwor5YWx6YCy5LyaID4ga3lvdXNoaW5rYWlcIDsKK+S/oeeUqOeKtiA+IHNoaW4nJ3lvdWpvdVwgOwor57mU54mp5qWtID4gb3JpbW9ub2d5b3VcIDsKK+i2heeJueaApSA+IGNob3V0b2treXV1XCA7Civov5Tkv6HmlpkgPiBoZW5zaGlucnlvdVwgOwor5aOB5paw6IGeID4ga2FiZXNoaW5idW5cIDsKK+iejeino+eGsSA+IHl1dWthaW5ldHN1XCA7Civnr4DljZrlo6sgPiBmdXNoaWhha2FzZVwgOwor6KaL54mp5Lq6ID4ga2VuYnV0c3VuaW5cIDsKK+eZu+mMsuaWmSA+IHRvdXJva3VyeW91XCA7Civlkajml4vkurogPiBzaHV1c2VuJyduaW5cIDsKK+mrmOm6l+iKnSA+IGtvdXJhaXNoaWJhXCA7CivkuI3opqrliIcgPiBmdXNoaW5zZXRzdVwgOwor6Kaq5ZGK572qID4gc2hpbmtva3V6YWlcIDsKK+iUpue0heiRiSA+IHRzdXRhbW9taWppXCA7CivkupTnm67prqggPiBnb21va3V6dXNoaVwgOwor57eo6ZuG6ZW3ID4gaGVuc2h1dWNob3VcIDsKK+WHuueJiOalrSA+IHNodXBwYW5neW91XCA7Civoqr/mlZnluKsgPiBjaG91a3lvdXNoaVwgOwor6YCy6aeQ6LuNID4gc2hpbmNodXVndW5cIDsKK+WIpeWLlemaiiA+IGJldHN1ZG91dGFpXCA7CivpgIblmbTlsIQgPiBneWFrdWZ1bnNoYVwgOwor5LqM5Y+j55uuID4gZnV0YWt1Y2hpbWVcIDsKK+mAhuWRvemhjCA+IGd5YWt1bWVpZGFpXCA7CivnspjnnYDliaQgPiBuZW5jaGFrdXphaVwgOwor55Sf54mp55WMID4gc2VpYnV0c3VrYWlcIDsKK+S6lOebrumjryA+IGdvbW9rdW1lc2hpXCA7CivmjqHmjpjmqKkgPiBzYWlrdXRzdWtlblwgOwor5YWo5bmF55qEID4gemVucHVrdXRla2lcIDsKK+W9q+WIu+WIgCA+IGNob3Vrb2t1dG91XCA7CivnoJTnqbblv4MgPiBrZW5reXV1c2hpblwgOwor54us5Y2g55qEID4gZG9rdXNlbnRla2lcIDsKK+mFuOS4reavkiA+IHNhbmNodXVkb2t1XCA7CivotoXmlrDmmJ8gPiBjaG91c2hpbnNlaVwgOwor6aCC5oi054mpID4gY2hvdWRhaW1vbm9cIDsKK+Wuv+aziuaJgCA+IHNodWt1aGFrdWpvXCA7Civlo7LljbTnm4ogPiBiYWlreWFrdWVraVwgOwor5qeL6YCg5byPID4ga291em91c2hpa2lcIDsKK+S7o+ihqOS9nCA+IGRhaWh5b3VzYWt1XCA7CivpgY7lpLHniq8gPiBrYXNoaXRzdWhhblwgOwor57SZ5LiA5p6aID4ga2FtaWljaGltYWlcIDsKK+WGjeiqjeitmCA+IHNhaW5pbnNoaWtpXCA7CivpoqjnianoqakgPiBmdXVidXRzdXNoaVwgOwor5a6f6Zai5pWwID4gaml0c3VrYW5zdXVcIDsKK+Wkp+WlveeJqSA+IGRhaWtvdWJ1dHN1XCA7CivkubPmv4HmtrIgPiBueXV1ZGFrdWVraVwgOwor5rC05Ya35byPID4gc3VpcmVpc2hpa2lcIDsKK+W/g+mFjeaApyA+IHNoaW5wYWlzaG91XCA7Civlvozlp4vmnKsgPiBhdG9zaGltYXRzdVwgOwor5YWo5Yui5YqbID4gemVuc2Vpcnlva3VcIDsKK+mbouW/g+eOhyA+IHJpc2hpbnJpdHN1XCA7CivkvpvntabmupAgPiBreW91a3l1dWdlblwgOwor5aSn5paH56+AID4gZGFpYnVuc2V0c3VcIDsKK+S4gOWknOWmuyA+IGhpdG95b2R6dW1hXCA7CivntZDlkIjlrZAgPiBrZXRzdWdvdXNoaVwgOwor5q275Lqh546HID4gc2hpYm91cml0c3VcIDsKK+aZguWxgOafhCA+IGppa3lva3VnYXJhXCA7CivphY3lvZPnjocgPiBoYWl0b3VyaXRzdVwgOwor5pW06aqo5birID4gc2Vpa290c3VzaGlcIDsKK+mWoueojueOhyA+IGthbnplaXJpdHN1XCA7CivkuK3mr5LmrbsgPiBjaHV1ZG9rdXNoaVwgOwor5pyA5YmN5YiXID4gc2FpemVucmV0c3VcIDsKK+W+oeaJgOi7iiA+IGdvc2hvZ3VydW1hXCA7CivlhoXmm7LnkIMgPiBuYWlreW9ra3l1dVwgOwor6Kej5pWj6KqsID4ga2Fpc2Fuc2V0c3VcIDsKK+W7uumAoOeJqSA+IGtlbnpvdWJ1dHN1XCA7CivnjK7ooYDou4ogPiBrZW5rZXRzdXNoYVwgOwor5bCP5ZOB6ZuGID4gc2hvdWhpbnNodXVcIDsKK+mciuWuieWupCA+IHJlaWFuc2hpdHN1XCA7Civpm6LnnYDpmbggPiByaWNoYWt1cmlrdVwgOwor6auY6YeO6IGWID4ga291eWFoaWppcmlcIDsKK+aVtOmrquWJpCA+IHNlaWhhdHN1emFpXCA7Civlh6bkuJbooZMgPiBzaG9zZWlqdXRzdVwgOwor5YWr5bmh5a6uID4gaGFjaGltYW5ndXVcIDsKK+atjOWUseWKmyA+IGthc2hvdXJ5b2t1XCA7Civlm57mipjmkI0gPiBrYWlzZXRzdXNvblwgOwor6aqo5LuV5LqLID4gaG9uZXNoaWdvdG9cIDsKK+iHhueXheiAhSA+IG9rdWJ5b3Vtb25vXCA7CivmnJ3po6/liY0gPiBhc2FtZXNoaW1hZVwgOwor5YiK6KGM54mpID4ga2Fua291YnV0c3VcIDsKK+ecvOmPoeapiyA+IG1lZ2FuZWJhc2hpXCA7Civos7zlhaXlhYggPiBrb3VueXV1c2FraVwgOwor5byY5LuB5qC8ID4ga291bmlua3lha3VcIDsKK+aXp+Wkp+mZuCA+IGt5dXV0YWlyaWt1XCA7CivoqLrlr5/ml6UgPiBzaGluc2F0c3ViaVwgOwor5p2x5a6u6IG3ID4gdG91Z3V1c2hva3VcIDsKK+itpuWvn+e9siA+IGtlaXNhdHN1c2hvXCA7Civlhpfoq4flj6MgPiBqb3VkYW5ndWNoaVwgOwor57mU54mp5ZWGID4gb3JpbW9ub3Nob3VcIDsKK+WFq+i+uuW9oiA+IGhhY2hpaGVua2VpXCA7Civph53ku5XkuosgPiBoYXJpc2hpZ290b1wgOwor5aW95Lq654mpID4ga291amluYnV0c3VcIDsKK+W+geacjeassiA+IHNlaWZ1a3V5b2t1XCA7Civop6PoqqzogIUgPiBrYWlzZXRzdXNoYVwgOwor5bqD5ZGK5qWtID4ga291a29rdWd5b3VcIDsKK+WJteeri+iAhSA+IHNvdXJpdHN1c2hhXCA7Civop6PnhrHolqwgPiBnZW5ldHN1eWFrdVwgOwor5pel5puc54mIID4gbmljaGl5b3ViYW5cIDsKK+aWsOW/q+mAnyA+IHNoaW5rYWlzb2t1XCA7CivkuK3lubTogIUgPiBjaHV1bmVubW9ub1wgOwor5oi05Yag5byPID4gdGFpa2Fuc2hpa2lcIDsKK+i7vealreW4qyA+IGthcnV3YXphc2hpXCA7CivkuK3lv4PlnLAgPiBjaHV1c2hpbmNoaVwgOwor5ZWG5oWj57+SID4gc2hvdWthbnNodXVcIDsKK+eUn+eJqeaIpiA+IHNlaWJ1dHN1c2VuXCA7CivmlZHmgKXms5UgPiBreXV1a3l1dWhvdVwgOwor6aOf5YmN6YWSID4gc2hva3V6ZW5zaHVcIDsKK+a3seWknOaXjyA+IHNoaW4nJ3lhem9rdVwgOwor6L+r5pKD56CyID4gaGFrdWdla2lob3VcIDsKK+mAsui7jeS4rSA+IHNoaW5ndW5jaHV1XCA7CivlqpLphYzkurogPiBiYWlzaGFrdW5pblwgOwor5Lih5oCn55qEID4gcnlvdXNlaXRla2lcIDsKK+a9nOWLouWKmyA+IHNlbnNlaXJ5b2t1XCA7CivmrabpqqjogIUgPiBidWtvdHN1bW9ub1wgOwor5L+d5YGl5a6kID4gaG9rZW5zaGl0c3VcIDsKK+W6g+WRiuaWmSA+IGtvdWtva3VyeW91XCA7CivpgJ/lipvluqYgPiBzb2t1cnlva3Vkb1wgOwor55uG5o+Q54GvID4gYm9uZGpvdWNoaW5cIDsKK+iBtOelnue1jCA+IGNob3VzaGlua2VpXCA7CivotoXlpKflm70gPiBjaG91dGFpa29rdVwgOwor5Ye654mI5YWDID4gc2h1cHBhbm1vdG9cIDsKK+mmrOm5v+WKmyA+IGJha2FkamlrYXJhXCA7CivpmbjljYrnkIMgPiByaWt1aGFua3l1dVwgOwor57Wx546H6ICFID4gdG91c290c3VzaGFcIDsKK+WFrOWFseW/gyA+IGtvdWt5b3VzaGluXCA7CivkuK3lhbHou40gPiBjaHV1a3lvdWd1blwgOwor5ryC55m95YmkID4gaHlvdWhha3V6YWlcIDsKK+WPjuWFpea6kCA+IHNodXVueXV1Z2VuXCA7Civmrr/mp5jpoqggPiB0b25vc2FtYWZ1dVwgOwor5b+D6YWN5LqLID4gc2hpbnBhaWdvdG9cIDsKK+WkqumZveeGsSA+IHRhaXlvdW5ldHN1XCA7CivliKTmsbrmlocgPiBoYW5rZXRzdWJ1blwgOwor5L+h5Luw55qEID4gc2hpbmtvdXRla2lcIDsKK+iGneaLjeWtkCA+IGhpemFieW91c2hpXCA7Civot6Hlp4vmnKsgPiBhdG9zaGltYXRzdVwgOwor55uy55uu55qEID4gbW91bW9rdXRla2lcIDsKK+elnumAmuWKmyA+IGppbnRzdXVyaWtpXCA7CivmgZDlprvnl4UgPiBreW91c2FpYnlvdVwgOwor5b+g5a6f5bqmID4gY2h1dWppdHN1ZG9cIDsKK+S/oeS7u+eKtiA+IHNoaW4nJ25pbmpvdVwgOwor5paw5Y+C6ICFID4gc2hpbnphbm1vbm9cIDsKK+ecn+eKr+S6uiA+IHNoaW5oYW4nJ25pblwgOwor6K2m5a+f54qsID4ga2Vpc2F0c3VrZW5cIDsKK+WPouaZgumbqCA+IG11cmFzaGlndXJlXCA7Civmtbfpo5/mtJ4gPiBrYWlzaG9rdWRvdVwgOwor5Y+C5YiX6ICFID4gc2FucmV0c3VzaGFcIDsKK+eUn+eJqeWcjyA+IHNlaWJ1dHN1a2VuXCA7CivkvpvntablnLAgPiBreW91a3l1dWNoaVwgOwor5bmy5riJ57ieID4ga2Fuc2hvdWppbWFcIDsKK+eLrOWJteeahCA+IGRva3Vzb3V0ZWtpXCA7Civmn5PoibLkvZMgPiBzZW5zaG9rdXRhaVwgOwor5bqn6aCt6a+oID4gemF0b3VrdWppcmFcIDsKK+ebrueahOirliA+IG1va3V0ZWtpcm9uXCA7CivnnIHnlaXmmYIgPiBzaG91cnlha3VqaVwgOwor55+z54Kt5q67ID4gc2VraXRhbmdhcmFcIDsKK+WIhuijguaApyA+IGJ1bnJldHN1c2VpXCA7Civnn63nuK7lvaIgPiB0YW5zaHVrdWtlaVwgOwor5pyJ6IG36ICFID4geXV1c2hva3VzaGFcIDsKK+imquWSjOWKmyA+IHNoaW53YXJ5b2t1XCA7CivlhYjjgIXmnIggPiBzZW5zZW5nZXRzdVwgOwor5pyJ5L2T54mpID4geXV1dGFpYnV0c3VcIDsKK+efree1oeeahCA+IHRhbnJha3V0ZWtpXCA7CivprYXlipvnmoQgPiBtaXJ5b2t1dGVraVwgOwor5YyW5a2m5byPID4ga2FnYWt1c2hpa2lcIDsKK+WkqumZveaXpSA+IHRhaXlvdWppdHN1XCA7Civph47nkIPnhrEgPiB5YWt5dXVuZXRzdVwgOwor6K2m5a+f5qipID4ga2Vpc2F0c3VrZW5cIDsKK+eGseawl+eQgyA+IG5ldHN1a2lreXV1XCA7Civnqbrmg7PlipsgPiBrdXVzb3VyeW9rdVwgOwor6Z2Z5bKh55yMID4gc2hpenVva2FrZW5cIDsKK+WPjemAhuS6uiA+IGhhbmd5YWt1bmluXCA7Civmn5Ppq6rliaQgPiBzZW5wYXRzdXphaVwgOwor5YWo6Lqr55eFID4gemVuc2hpbmJ5b3VcIDsKK+iFueipseihkyA+IGZ1a3V3YWp1dHN1XCA7CivmtYHph4/oqIggPiByeXV1cnlvdWtlaVwgOwor57ea57mU6Z2iID4gc2Vuc2hpa2ltZW5cIDsKK+WujOe1kOe3qCA+IGthbmtldHN1aGVuXCA7CivlrabnlJ/oqLwgPiBnYWt1c2Vpc2hvdVwgOwor6YCg5bmj5bGAID4gem91aGVpa3lva3VcIDsKK+iqrOaYjuabuCA+IHNldHN1bWVpc2hvXCA7Civoh6rntabnjocgPiBqaWt5dXVyaXRzdVwgOwor5omT54mp5birID4gdWNoaW1vbm9zaGlcIDsKK+aDqOauuuiAhSA+IHphbnNhdHN1c2hhXCA7Civno6/lt77nnYAgPiBpc29naW5jaGFrdVwgOwor6Ki85Lq65bitID4gc2hvdW5pbnNla2lcIDsKK+iLpeeZvemrqiA+IHdha2FzaGlyYWdhXCA7CivmlbDlrabnmoQgPiBzdXVnYWt1dGVraVwgOwor55u05YaG5p+xID4gY2hva3VlbmNodXVcIDsKK+iqrOaYjuaWhyA+IHNldHN1bWVpYnVuXCA7CivmsLTnlKPniakgPiBzdWlzYW5idXRzdVwgOwor5pWZ5YmH5pysID4ga3lvdXNva3Vib25cIDsKK+S5meWls+W/gyA+IG90b21lZ29rb3JvXCA7CivmiKbli53lm70gPiBzZW5zaG91a29rdVwgOwor5Y2X5YyX5pydID4gbmFuYm9rdWNob3VcIDsKK+W5u+aDs+absiA+IGdlbnNvdWt5b2t1XCA7Civml4XoiIjooYwgPiB0YWJpa291Z3lvdVwgOwor6LGG6Zu755CDID4gbWFtZWRlbmt5dXVcIDsKK+ino+iqrOabuCA+IGthaXNldHN1c2hvXCA7Civnv7zmiYvnm64gPiB5b2t1c2h1bW9rdVwgOwor5ama57SE6ICFID4ga29uJyd5YWt1c2hhXCA7Civpg6HlvbnmiYAgPiBndW4nJ3lha3VzaG9cIDsKK+efpeitmOWxpCA+IGNoaXNoaWtpc291XCA7Civmkp7mnKjprqsgPiBzaHVtb2t1emFtZVwgOwor56G86YW45pyrID4gaG91c2FubWF0c3VcIDsKK+Wmluihk+iAhSA+IHlvdWp1dHN1c2hhXCA7CivkvZnnmb3poIEgPiB5b2hha3VwZWVqaVwgOwor57Wx5LiA55qEID4gdG91aXRzdXRla2lcIDsKK+i6q+manOiAhSA+IHNoaW5zaG91c2hhXCA7Civpo5/ljZPloakgPiBzaG9rdXRha3VlblwgOwor5YWr5a2X6autID4gaGFjaGlqaWhpZ2VcIDsKK+W+qea0u+elrSA+IGZ1a2thdHN1c2FpXCA7CivkuLvnlKPniakgPiBzaHVzYW5idXRzdVwgOwor576O6KGT55qEID4gYmlqdXRzdXRla2lcIDsKK+ePjeePvuixoSA+IGNoaW5nZW5zaG91XCA7CivkuInnqJzpj6EgPiBzYW5yeW91a3lvdVwgOwor5aSn6Zm45qOaID4gdGFpcmlrdWRhbmFcIDsKK+auv+anmOiKuCA+IHRvbm9zYW1hZ2VpXCA7Civmtbfpo5/ltJYgPiBrYWlzaG9rdWdhaVwgOwor5YWD56aE6KKWID4gZ2Vucm9rdXNvZGVcIDsKK+aWh+aVmeaXjyA+IGJ1bmt5b3V6b2t1XCA7Civmub/luqboqIggPiBzaGl0c3Vkb2tlaVwgOwor5Y+s6ZuG6ICFID4gc2hvdXNodXVzaGFcIDsKK+WFq+alteaLsyA+IGhha2t5b2t1a2VuXCA7Civkv6Hku7Dlv4MgPiBzaGlua291c2hpblwgOwor5Lq65LiA5YCNID4gaGl0b2ljaGliYWlcIDsKK+WQiOihhuWbvSA+IGdhc3NodXVrb2t1XCA7CivmqZ/plqLlrqQgPiBraWthbnNoaXRzdVwgOwor5Ya35Y205rayID4gcmVpa3lha3Vla2lcIDsKK+a8geeNsumrmCA+IGd5b2tha3VkYWthXCA7CivlhaznlKjniakgPiBrb3V5b3VidXRzdVwgOwor5Y2Y55m66YqDID4gdGFucGF0c3VqdXVcIDsKK+WGt+WNtOawtCA+IHJlaWt5YWt1c3VpXCA7CivnjK7nq4vooaggPiBrb25kYXRlaHlvdVwgOwor6Iul6I2J6ImyID4gd2FrYWt1c2Fpcm9cIDsKK+S4ieWbveS4gCA+IHNhbmdva3VpY2hpXCA7CivnnaPkv4PnirYgPiB0b2t1c29rdWpvdVwgOwor5Luu5Y+X5Y+WID4ga2FyaXVrZXRvcmlcIDsKK+iii+Wwj+i3ryA+IGZ1a3Vyb2tvdWppXCA7Civorablr5/lrpggPiBrZWlzYXRzdWthblwgOwor6Ieq54S25b6LID4gc2hpemVucml0c3VcIDsKK+iBt+WLmee1piA+IHNob2t1bXVreXV1XCA7CivnmYLppIrkuK0gPiByeW91eW91Y2h1dVwgOwor5ZCI5oiQ54mpID4gZ291c2VpYnV0c3VcIDsKK+S4ieihjOWNiiA+IG1pa3VkYXJpaGFuXCA7CivooYzmlL/lraYgPiBneW91c2VpZ2FrdVwgOwor5a6f6KGM5YqbID4gamlra291cnlva3VcIDsKK+mVt+eBq+mJoiA+IG5hZ2FoaWJhY2hpXCA7Civmtbfpo5/lj7AgPiBrYWlzaG9rdWRhaVwgOwor6YO15L6/54mpID4geXV1YmluYnV0c3VcIDsKK+epuuawl+aelSA+IGt1dWtpbWFrdXJhXCA7Civlpajlrabph5EgPiBzaG91Z2FrdWtpblwgOwor5YWs55Sf5rS7ID4ga291c2Vpa2F0c3VcIDsKK+mBruiUveeJqSA+IHNoYWhlaWJ1dHN1XCA7CivntbnnuZTniakgPiBraW51b3JpbW9ub1wgOwor6Iq46KGT6KuWID4gZ2VpanV0c3Vyb25cIDsKK+iWrOWKueeJqSA+IHlha2tvdWJ1dHN1XCA7Civluq3ku5XkuosgPiBuaXdhc2hpZ290b1wgOwor5oKq6LOq5YyWID4gYWt1c2hpdHN1a2FcIDsKK+efpeitmOS6uiA+IGNoaXNoaWtpamluXCA7Civnmb3lhoXpmpwgPiBoYWt1bmFpc2hvdVwgOwor5qW95aSp55qEID4gcmFrdXRlbnRla2lcIDsKK+WIpeWLmOWumiA+IGJldHN1a2Fuam91XCA7Civph5HmnZPlrZAgPiBrYW5hamFrdXNoaVwgOwor6ZW35aSn5oGvID4gY2hvdXRhaXNva3VcIDsKK+iBtOWPluaWmSA+IGNob3VzaHVyeW91XCA7CivpoLjpnZnohIggPiBrZWlqb3VteWFrdVwgOwor5ryB542y6YePID4gZ3lva2FrdXJ5b3VcIDsKK+iqnuWtpuWKmyA+IGdvZ2FrdXJ5b2t1XCA7CivmupblgpnlrqQgPiBqdW5iaXNoaXRzdVwgOwor5Lit5bm05aKXID4gY2h1dWRvc2hpbWFcIDsKK+iDjOeti+WKmyA+IGhhaWtpbnJ5b2t1XCA7CivmiYDmnInniakgPiBzaG95dXVidXRzdVwgOwor55Sj5Zyf56WeID4gdWJ1c3VuYWdhbWlcIDsKK+aal+i1pOiJsiA+IGFuc2VraXNob2t1XCA7Civku5Xnq4vniakgPiBzaGl0YXRlbW9ub1wgOwor5LiD5Zue5b+MID4gc2hpY2hpa2Fpa2lcIDsKK+a6tuino+eGsSA+IHlvdWthaW5ldHN1XCA7CivnsbPljYHnspIgPiBrb21lanV1cnl1dVwgOwor54m55rOo5ZOBID4gdG9rdWNodXVoaW5cIDsKK+WIpeWDjemaiiA+IGJldHN1ZG91dGFpXCA7Civlj6TmlrDogZ4gPiBmdXJ1c2hpbmJ1blwgOwor6YWN6YGU5Lq6ID4gaGFpdGF0c3VuaW5cIDsKK+S6rOS6uuW9oiA+IGt5b3VuaW5neW91XCA7CivlrozntZDmlocgPiBrYW5rZXRzdWJ1blwgOwor5Y+N5a++6ImyID4gaGFudGFpc2hva3VcIDsKK+WVhuWTgeWtpiA+IHNob3VoaW5nYWt1XCA7CivlhaXlsITop5IgPiBueXV1c2hha2FrdVwgOwor5raI6Ziy5bqBID4gc2hvdWJvdWNob3VcIDsKK+Wlh+m6l+aJgCA+IGtpcmVpZG9rb3JvXCA7CivlsbHlkLnoibIgPiB5YW1hYnVraWlyb1wgOwor5omT5pKD546HID4gZGFnZWtpcml0c3VcIDsKK+iri+axgumhjSA+IHNlaWt5dXVnYWt1XCA7Civnmb7lubTnpa0gPiBoeWFrdW5lbnNhaVwgOwor5oqR55WZ6ICFID4geW9rdXJ5dXVzaGFcIDsKK+mjn+mAo+aYnyA+IHNob2t1cmVuc2VpXCA7CivokL3mnK3lgKQgPiByYWt1c2F0c3VuZVwgOwor6Ieq54S25YqbID4gc2hpemVucnlva3VcIDsKK+enmOabuOWupCA+IGhpc2hvc2hpdHN1XCA7CivljYPnp4vmpb0gPiBzZW5zaHV1cmFrdVwgOwor5o6i56m25b+DID4gdGFua3l1dXNoaW5cIDsKK+WJr+ekvumVtyA+IGZ1a3VzaGFjaG91XCA7CivmnIjkvovkvJogPiBnZXRzdXJlaWthaVwgOwor5pWw5pel6ZaTID4gc3V1aml0c3VrYW5cIDsKK+WRveWQjeW8jyA+IG1laW1laXNoaWtpXCA7CivmjIflsI7lipsgPiBzaGlkb3VyeW9rdVwgOwor5oSf6Kaa55qEID4ga2Fua2FrdXRla2lcIDsKK+WGjemWi+eZuiA+IHNhaWthaWhhdHN1XCA7CivlhaXlrabpm6MgPiBueXV1Z2FrdW5hblwgOwor5YiG5oqY5a2mID4gYnVuc2VraWdha3VcIDsKK+iLpei8qeiAhSA+IGpha3VoYWltb25vXCA7CivluYXlpInoqr8gPiBoYWJhaGVuY2hvdVwgOwor5bCP5oOR5pifID4gc2hvdXdha3VzZWlcIDsKK+S6uueJqeWDjyA+IGppbmJ1dHN1em91XCA7CivouoHprLHnl4UgPiBzb3V1dHN1YnlvdVwgOwor55u06Ly45YWlID4gY2hva3V5dW55dXVcIDsKK+S/g+mAsuWJpCA+IHNva3VzaGluemFpXCA7CivpvLvlh7rooYAgPiBiaXNodWtrZXRzdVwgOwor5oCl6YCy5YWaID4ga3l1dXNoaW50b3VcIDsKK+mHkeWpmuW8jyA+IGtpbmtvbnNoaWtpXCA7CivmuoDoiabpo74gPiBtYW5rYW5zaG9rdVwgOwor5YKN6L+35oORID4gaGF0YW1laXdha3VcIDsKK+aYvOmjn+aZgiA+IGNodXVzaG9rdWppXCA7CivoirjooZPnpa0gPiBnZWlqdXRzdXNhaVwgOwor5a2m55Sf5pyNID4gZ2FrdXNlaWZ1a3VcIDsKK+WwsealreWcsCA+IHNodXVneW91Y2hpXCA7CivooajnpLrniakgPiBoeW91amlidXRzdVwgOwor6Lui5YWl55SfID4gdGVuJydueXV1c2VpXCA7CivlhaXlrabph5EgPiBueXV1Z2FrdWtpblwgOwor6Z2p5paw57O7ID4ga2FrdXNoaW5rZWlcIDsKK+mZvealtee3miA+IHlvdWt5b2t1c2VuXCA7Civlh7rmvJTogIUgPiBzaHV0c3VlbnNoYVwgOwor5Lya6K2w5a6kID4ga2FpZ2lzaGl0c3VcIDsKK+mZuOmBi+WxgCA+IHJpa3V1bmt5b2t1XCA7Civov73lvrTph5EgPiB0c3VpY2hvdWtpblwgOwor5q666I+M5YqbID4gc2Fra2lucnlva3VcIDsKK+aKleWuv+iAhSA+IHRvdXNodWt1c2hhXCA7CivmlrDluoHoiI4gPiBzaGluY2hvdXNoYVwgOwor5Ya35Y205YmkID4gcmVpa3lha3V6YWlcIDsKK+mBiuimp+WuoiA+IHl1dXJhbmt5YWt1XCA7Civpu4Tph5HomasgPiBrb2dhbmVtdXNoaVwgOwor6buS5q2755eFID4ga29rdXNoaWJ5b3VcIDsKK+mDteS+v+WxgCA+IHl1dWJpbmt5b2t1XCA7Civlj43lsITnjocgPiBoYW5zaGFyaXRzdVwgOwor5pWZ55qH5bqBID4ga3lvdWtvdWNob3VcIDsKK+iLpemzpeS4vCA+IHdha2Fkb3JpZG9uXCA7Civnvo7ooZPllYYgPiBiaWp1dHN1c2hvdVwgOwor5ru05a6a6YePID4gdGVraXRlaXJ5b3VcIDsKK+elnuWtpuiAhSA+IHNoaW5nYWt1c2hhXCA7Civlr4bovLjlhaUgPiBtaXRzdXl1bnl1dVwgOwor6LiP5YiH55WqID4gZnVtaWtpcmliYW5cIDsKK+WJjeWlj+absiA+IHplbnNvdWt5b2t1XCA7Civoo7jkuIDosqsgPiBoYWRha2Fpa2thblwgOwor5aWP6bO05puyID4gc291bWVpa3lva3VcIDsKK+engeeUn+a0uyA+IHNoaXNlaWthdHN1XCA7CivnlLLpiYToiaYgPiBrb3V0ZXRzdWthblwgOwor5b+D6IeT55eFID4gc2hpbnpvdWJ5b3VcIDsKK+mMrOmHkeihkyA+IHJlbmtpbmp1dHN1XCA7Civpu5LlhoXpmpwgPiBrb2t1bmFpc2hvdVwgOwor5pyJ6K2Y6ICFID4geXV1c2hpa2lzaGFcIDsKK+Wxsea0peazoiA+IHlhbWF0c3VuYW1pXCA7Civoopbnj43mnKwgPiBzaHV1Y2hpbmJvblwgOwor5YWI552A6aCGID4gc2VuY2hha3VqdW5cIDsKK+Wun+WQjeipniA+IGppdHN1bWVpc2hpXCA7CivpmLLpo5/liaQgPiBib3VzaG9rdXphaVwgOwor5a++56ew6Lu4ID4gdGFpc2hvdWppa3VcIDsKK+i/keaXpeeCuSA+IGtpbmppdHN1dGVuXCA7Civol43mmbbnn7MgPiByYW5zaG91c2VraVwgOwor5aWz5a2Q5L6bID4gb24nJ25ha29kb21vXCA7CivmsqHpo5/lrZAgPiBtb3NzaG9rdXNoaVwgOwor5L+u57mV5LitID4gc2h1dXplbmNodXVcIDsKK+iAs+WtpuWVjyA+IG1pbWlnYWt1bW9uXCA7CivplbfnspLnsbMgPiBjaG91cnl1dW1haVwgOwor56We5L+h5b+DID4ga2FtaXNoaW5qaW5cIDsKK+WlqOWtpueUnyA+IHNob3VnYWt1c2VpXCA7CivoprPlhbXlvI8gPiBrYW5wZWlzaGlraVwgOwor6Iul5bm05Z6LID4gamFrdW5lbmdhdGFcIDsKK+m8oOa1t+ixmiA+IG5lenVtaWlydWthXCA7Civpm4bnqY3loLQgPiBzaHV1c2VraWpvdVwgOwor5oyH5Lq65b2iID4geXViaW5pbmd5b3VcIDsKK+absuiKuOW4qyA+IGt5b2t1Z2Vpc2hpXCA7CivpuqbnspLohasgPiBiYWt1cnl1dXNodVwgOwor55uu55qE5ZywID4gbW9rdXRla2ljaGlcIDsKK+WtpueUn+WvriA+IGdha3VzZWlyeW91XCA7CivlkIjmiJDlipsgPiBnb3VzZWlyeW9rdVwgOwor5o+Q5L6b5YG0ID4gdGVpa3lvdWdhd2FcIDsKK+S5l+mZjeWuoiA+IGpvdWtvdWt5YWt1XCA7CivlhoXopqrnjosgPiBuYWlzaGluJydub3VcIDsKK+eznuWLieW8tyA+IGt1c29iZW5reW91XCA7Civnn6Lntpnml6kgPiB5YXRzdWdpYmF5YVwgOwor5aSJ5puy54K5ID4gaGVua3lva3V0ZW5cIDsKK+mVt+Wbm+inkiA+IG5hZ2FzaGlrYWt1XCA7CivopqrliIfmsJcgPiBzaGluc2V0c3VnaVwgOwor5Ymv56We57WMID4gZnVrdXNoaW5rZWlcIDsKK+iRiee3keS9kyA+IHlvdXJ5b2t1dGFpXCA7Civoj4rkurrlvaIgPiBraWt1bmluZ3lvdVwgOwor546p5byE54mpID4gZ2Fucm91YnV0c3VcIDsKK+WPo+iogOiRiSA+IGt1Y2hpa290b2JhXCA7Civpm4blkIjnmoQgPiBzaHV1Z291dGVraVwgOwor5Ymy5b2T6aGNID4gd2FyaWF0ZWdha3VcIDsKK+W4uOe/kueahCA+IGpvdXNodXV0ZWtpXCA7CivmhJ/lnKfntJkgPiBrYW4nJ2F0c3VzaGlcIDsKK+e0heeMv+WtkCA+IGJlbmltYXNoaWtvXCA7CivlvL7mgKfnjocgPiBkYW5zZWlyaXRzdVwgOwor5reh57SF6ImyID4gdGFua291c2hva3VcIDsKK+afs+ihjOadjiA+IHlhbmFnaWdvdXJpXCA7CivmtYHli5XnmoQgPiByeXV1ZG91dGVraVwgOwor55Kw5aKD5bqBID4ga2Fua3lvdWNob3VcIDsKK+aYhuiZq+WtpiA+IGtvbmNodXVnYWt1XCA7CivluLjml6XpoIMgPiB0c3VuZWhpZ29yb1wgOwor5q+U57+85aGaID4gaGl5b2t1ZHp1a2FcIDsKK+a3t+aIkOeJqSA+IGtvbnNlaWJ1dHN1XCA7Civmurbop6PlipsgPiB5b3VrYWlyeW9rdVwgOwor5pWZ6IKy6ZW3ID4ga3lvdWlrdWNob3VcIDsKK+eEvOWNtOeCiSA+IHNob3VreWFrdXJvXCA7Civnmb3mqoDmsrkgPiBieWFrdWRhbicneXVcIDsKK+eJveW8leWKmyA+IGtlbicnaW5yeW9rdVwgOwor6Kaz5YWJ5bGAID4ga2Fua291a3lva3VcIDsKK+WFpeWtpuiAhSA+IG55dXVnYWt1c2hhXCA7Civlm73lrabogIUgPiBrb2t1Z2FrdXNoYVwgOwor5rS75YuV6KqMID4ga2F0c3Vkb3VzaGlcIDsKK+WHuuWcn+WTgSA+IHNodXRzdWRvaGluXCA7CivntJnooajntJkgPiBrYW1pYnlvdXNoaVwgOwor6Kaz5YWJ5a6iID4ga2Fua291a3lha3VcIDsKK+WFseWtpuWItiA+IGt5b3VnYWt1c2VpXCA7Civnvp7mgaXlv4MgPiBzaHV1Y2hpc2hpblwgOwor6Jmr55y86Y+hID4gbXVzaGltZWdhbmVcIDsKK+iogOiRieizqiA+IGtvdG9iYWppY2hpXCA7CivlrabogIXohpogPiBnYWt1c2hhaGFkYVwgOwor6YCa5L+h57ayID4gdHN1dXNoaW5tb3VcIDsKK+aZruWPiueOhyA+IGZ1a3l1dXJpdHN1XCA7CivljYPps6XotrMgPiBjaGlkb3JpYXNoaVwgOwor6Lui6L2N5omLID4gdGVudGV0c3VzaHVcIDsKK+izvOiyt+WKmyA+IGtvdWJhaXJ5b2t1XCA7CivlrabogIXogowgPiBnYWt1c2hhaGFkYVwgOwor5YWl6LOe6ICFID4gbnl1dXNob3VzaGFcIDsKK+mZuOi7jeecgSA+IHJpa3VndW5zaG91XCA7Civku67lh7rmiYAgPiBrYXJpc2h1c3Nob1wgOwor5Y+k54mp5ZWGID4ga29idXRzdXNob3VcIDsKK+ixoeW+tOipqSA+IHNob3VjaG91c2hpXCA7CivkuIvljZTorbAgPiBzaGl0YWt5b3VnaVwgOwor5Y+s6ZuG5LukID4gc2hvdXNodXVyZWlcIDsKK+eFp+S8muWFiCA+IHNob3VrYWlzYWtpXCA7CivloIbnqY3lraYgPiB0YWlzZWtpZ2FrdVwgOwor6Kqt6Kej5YqbID4gZG9ra2Fpcnlva3VcIDsKK+iFuOe1kOaguCA+IGNob3VrZWtrYWt1XCA7CivlubTmgbDlpb0gPiB0b3NoaWtha2tvdVwgOwor6YCa55Sj55yBID4gdHN1dXNhbnNob3VcIDsKK+mAmueUo+ebuCA+IHRzdXVzYW5zaG91XCA7CivnnaPlrablrpggPiB0b2t1Z2FrdWthblwgOwor5oeQ5Lit54mpID4ga2FpY2h1dW1vbm9cIDsKK+mAmuS/oeekviA+IHRzdXVzaGluc2hhXCA7CivljYPnn7PoiLkgPiBzZW5nb2t1YnVuZVwgOwor6YeR54mb5a6uID4ga2luZ3l1dWt5dXVcIDsKK+aOpeWQiOWtkCA+IHNldHN1Z291c2hpXCA7CivnmoflrqTosrsgPiBrb3VzaGl0c3VoaVwgOwor6L+95b6056iOID4gdHN1aWNob3V6ZWlcIDsKK+WxgOWkluiAhSA+IGt5b2t1Z2Fpc2hhXCA7Civnv4znv4zlubQgPiB5b2t1eW9rdW5lblwgOwor54m55Yil5qmfID4gdG9rdWJldHN1a2lcIDsKK+a3oeikkOiJsiA+IHRhbmthc3Nob2t1XCA7CivlgY/ln7fnl4UgPiBoZW5zaHV1YnlvdVwgOwor5a2m57+S6ICFID4gZ2FrdXNodXVzaGFcIDsKK+mYsumfs+WupCA+IGJvdW9uc2hpdHN1XCA7CivogonkvZPnmoQgPiBuaWt1dGFpdGVraVwgOwor5paZ6YeR6KGoID4gcnlvdWtpbmh5b3VcIDsKK+WGhemZuOWbvSA+IG5haXJpa3Vrb2t1XCA7CivljIXlrrnlipsgPiBob3V5b3VyeW9rdVwgOwor5Ye65ryB5pyfID4gc2h1dHN1Z3lva2lcIDsKK+S4u+S6uuW9uSA+IHNodWppbicneWFrdVwgOwor5oiQ5Yqf546HID4gc2Vpa291cml0c3VcIDsKK+WFrOacieeJqSA+IGtvdXl1dWJ1dHN1XCA7CivoprPoiablvI8gPiBrYW5rYW5zaGlraVwgOwor5pyI5aSc6Iy4ID4gdHN1a2l5b3Rha2VcIDsKK+WFpeWtpueUnyA+IG55dXVnYWt1c2VpXCA7CivmmI7lvozml6UgPiBteW91Z29uaWNoaVwgOwor5rS75YuV6ICFID4ga2F0c3Vkb3VzaGFcIDsKK+S4ieWOn+iJsiA+IHNhbmdlbnNob2t1XCA7CivlgY/ln7fni4IgPiBoZW5zaHV1a3lvdVwgOwor6JKL5LuL55+zID4gc2hvdWthaXNla2lcIDsKK+eUs+WRiuabuCA+IHNoaW5rb2t1c2hvXCA7Civnt6jnrKDojLggPiBhbWlnYXNhdGFrZVwgOwor5bCP5Y2K5pelID4ga29oYW4nJ25pY2hpXCA7CivooajlvbDnirYgPiBoeW91c2hvdWpvdVwgOwor5YaF6Ki85LqLID4gbmFpc2hvdWdvdG9cIDsKK+iouuaWreWtpiA+IHNoaW5kYW5nYWt1XCA7CivljZfmpbXngrkgPiBuYW5reW9rdXRlblwgOwor5puy5bCE56CyID4ga3lva3VzaGFob3VcIDsKK+WvvuensOeahCA+IHRhaXNob3V0ZWtpXCA7CivnlLLpiYTmnb8gPiBrb3V0ZXRzdWJhblwgOwor5YWI55m66ZqKID4gc2VucGF0c3V0YWlcIDsKK+aAp+eUn+a0uyA+IHNlaXNlaWthdHN1XCA7CivmpJzplrLlrpggPiBrZW4nJ2V0c3VrYW5cIDsKK+a1gemAmueojiA+IHJ5dXV0c3V1emVpXCA7CivmtJfmv6/ns4ogPiBzZW50YWt1bm9yaVwgOwor5Y2K55u057eaID4gaGFuY2hva3VzZW5cIDsKK+a0l+a/r+exoCA+IHNlbnRha3VrYWdvXCA7CivmjqXlkIjliaQgPiBzZXRzdWdvdXphaVwgOwor6L6y55Sj54mpID4gbm91c2FuYnV0c3VcIDsKK+aOpeWPl+WbvSA+IHNldHN1anVrb2t1XCA7CivljZfmpbXmtbcgPiBuYW5reW9rdWthaVwgOwor57WQ6Iac54KOID4ga2V0c3VtYWt1ZW5cIDsKK+imquedpuS8miA+IHNoaW5ib2t1a2FpXCA7CivnoavljJbniakgPiByeXV1a2FidXRzdVwgOwor5oOz5YOP5YqbID4gc291em91cnlva3VcIDsKK+iKuOihk+WTgSA+IGdlaWp1dHN1aGluXCA7CivljZfmpbXmtIsgPiBuYW5reW9rdXlvdVwgOwor5YaN5ris6YePID4gc2Fpc29rdXJ5b3VcIDsKK+mcsuWHuuioiCA+IHJvc2h1dHN1a2VpXCA7CivnlZnlrabnlJ8gPiByeXV1Z2FrdXNlaVwgOwor5rC05LuV5LqLID4gbWl6dXNoaWdvdG9cIDsKK+Wtpue/kueUqCA+IGdha3VzaHV1eW91XCA7Civms6jlsITph50gPiBjaHV1c2hhYmFyaVwgOwor6Kaz5a+f6ICFID4ga2Fuc2F0c3VzaGFcIDsKK+mAmuS/oeashCA+IHRzdXVzaGlucmFuXCA7CivkupTmnIjpl4cgPiBzYXRzdWtpeWFtaVwgOwor55m6552A5aC0ID4gaGF0Y2hha3Vqb3VcIDsKK+i8uOWHuueojiA+IHl1c2h1dHN1emVpXCA7CivlsLHogbfmmYIgPiBzaHV1c2hva3VqaVwgOwor552A55y854K5ID4gY2hha3VnYW50ZW5cIDsKK+epuuWGt+W8jyA+IGt1dXJlaXNoaWtpXCA7CivmurbmjqXlt6UgPiB5b3VzZXRzdWtvdVwgOwor5Li45pyo5qmLID4gbWFydWtpYmFzaGlcIDsKK+WxseW9ouecjCA+IHlhbWFnYXRha2VuXCA7CivkuqTpnIrooZMgPiBrb3VyZWlqdXRzdVwgOwor5Ym16YCg6KqsID4gc291em91c2V0c3VcIDsKK+aLm+W+heW4rSA+IHNob3V0YWlzZWtpXCA7Civpm6rkuIrou4ogPiBzZXRzdWpvdXNoYVwgOwor5Lqk6Z+/5qW9ID4ga291a3lvdWdha3VcIDsKK+i+sualreWbvSA+IG5vdWd5b3Vrb2t1XCA7CivljZPotorpoqggPiB0YWt1ZXRzdWZ1dVwgOwor6Y6u55eb5oCnID4gY2hpbnRzdXVzZWlcIDsKK+iqjeitmOirliA+IG5pbnNoaWtpcm9uXCA7CivlsLHlr53liY0gPiBzaHV1c2hpbnplblwgOwor5Y+M5puy57eaID4gc291a3lva3VzZW5cIDsKK+Wkj+aZguWIuyA+IG5hdHN1amlrb2t1XCA7CivlpI/lpKfmoLkgPiBuYXRzdWRhaWtvblwgOwor5p2R5YWr5YiGID4gbXVyYWhhY2hpYnVcIDsKK+WCmOS8kOaelyA+IHNhbmJhdHN1cmluXCA7CivluLjoqK3ppKggPiBqb3VzZXRzdWthblwgOwor5Y2X5qW15pifID4gbmFua3lva3VzZWlcIDsKK+elnuWtpuWjqyA+IHNoaW5nYWt1c2hpXCA7CivkuIrlkYrlr6kgPiBqb3Vrb2t1c2hpblwgOwor5YWI5YWl6KazID4gc2VuJydueXV1a2FuXCA7CivlhYjlhaXoposgPiBzZW4nJ255dXVrZW5cIDsKK+a0l+a/r+eJqSA+IHNlbnRha3Vtb25vXCA7CivkuIfokYnpm4YgPiBtYW4nJ3lvdXNodXVcIDsKK+a6gOW3nuWbvSA+IG1hbnNodXVrb2t1XCA7Civooajlv6DloZQgPiBoeW91Y2h1dXRvdVwgOwor5LiJ6YeN5q66ID4gc2FuanV1c2F0c3VcIDsKK+WIhuazjOa2siA+IGJ1bnBpdHN1ZWtpXCA7CivpmqPmjqXnnIwgPiByaW5zZXRzdWtlblwgOwor5ZiY5YWr55m+ID4gdXNvaGFwcHlha3VcIDsKK+iInui4j+WupCA+IGJ1dG91c2hpdHN1XCA7CivlvZPlsYDogIUgPiB0b3VreW9rdXNoYVwgOwor57ep6KGd5Zu9ID4ga2Fuc2hvdWtva3VcIDsKK+iXgeS6uuW9oiA+IHdhcmFuaW5neW91XCA7CivlvbHpn7/lipsgPiBlaWt5b3VyeW9rdVwgOwor5paH56+A5pWwID4gYnVuc2V0c3VzdXVcIDsKK+aCquaOqOmHjyA+IHdhcnV6dWlyeW91XCA7CivlkKvmnInph48gPiBnYW4nJ3l1dXJ5b3VcIDsKK+iqmOmbu+eOhyA+IHl1dWRlbnJpdHN1XCA7CivoprPlr5/nnLwgPiBrYW5zYXRzdWdhblwgOwor5oqb54mp57eaID4gaG91YnV0c3VzZW5cIDsKK+ijj+WIh+iAhSA+IHVyYWdpcmltb25vXCA7CivpmLLpm6rmnpcgPiBib3VzZXRzdXJpblwgOwor5aSp56We6autID4gdGVuc2hpbmhpZ2VcIDsKK+auuuWus+iAhSA+IHNhdHN1Z2Fpc2hhXCA7CivmlZnogrLnnIEgPiBreW91aWt1c2hvdVwgOwor6Zui5Lmz6aOfID4gcmlueXV1c2hva3VcIDsKK+aVmeiCsueahCA+IGt5b3Vpa3V0ZWtpXCA7CivnibnliKXljLogPiB0b2t1YmV0c3VrdVwgOwor6LKh5pS/5YqbID4gemFpc2Vpcnlva3VcIDsKK+W8t+ehrOetliA+IGt5b3Vrb3VzYWt1XCA7CivmlrDlubTlj7cgPiBzaGluJyduZW5nb3VcIDsKK+ejr+mmtOadviA+IHNvbmFyZW1hdHN1XCA7CivlhaXppKjmlpkgPiBueXV1a2FucnlvdVwgOwor54mp55u46aOvID4gbW9zc291bWVzaGlcIDsKK+ijvemdqealrSA+IHNlaWtha3VneW91XCA7CivkuK3lrabnlJ8gPiBjaHV1Z2FrdXNlaVwgOwor6Ly45Ye65rivID4geXVzaHV0c3Vrb3VcIDsKK+WNl+alteW4ryA+IG5hbmt5b2t1dGFpXCA7CivmurbmjqXliaQgPiB5b3VzZXRzdXphaVwgOwor5oCl55eF5Lq6ID4ga3l1dWJ5b3VuaW5cIDsKK+WvhOWuv+aWmSA+IGtpc2h1a3VyeW91XCA7Civpq5jls7bnlLAgPiB0YWthc2hpbWFkYVwgOwor5bCP5q2j5pyIID4ga29zaG91Z2F0c3VcIDsKK+WLleWKm+ioiCA+IGRvdXJ5b2t1a2VpXCA7CivmpbXlpKflgKQgPiBreW9rdWRhaWNoaVwgOwor5Ye66YeR6aGNID4gc2h1a2tpbmdha3VcIDsKK+eUs+WRiuWItiA+IHNoaW5rb2t1c2VpXCA7CivlrZDkvpvpgZQgPiBrb2RvbW90YWNoaVwgOwor5aqS5LuL54mpID4gYmFpa2FpYnV0c3VcIDsKK+m7hOmBk+iJsiA+IGtvdWRvdXNob2t1XCA7CivkuInokYnomasgPiBzYW4nJ3lvdWNodXVcIDsKK+WFqOizquWMliA+IHplbnNoaXRzdWthXCA7CivnlJ/mtLvpm6MgPiBzZWlrYXRzdW5hblwgOwor57Sw5YuV6ISIID4gc2FpZG91bXlha3VcIDsKK+engeacieeJqSA+IHNoaXl1dWJ1dHN1XCA7CivopIfpm5HljJYgPiBmdWt1emF0c3VrYVwgOwor5Yui5Yqb5ZyPID4gc2Vpcnlva3VrZW5cIDsKK+ikh+ikh+e3miA+IGZ1a3VmdWt1c2VuXCA7CivmlrDlubTkvJogPiBzaGluJyduZW5rYWlcIDsKK+S4jeeiuuWunyA+IGZ1a2FrdWppdHN1XCA7Civpjq7nl5vliaQgPiBjaGludHN1dXphaVwgOwor5oCq5Lq654mpID4ga2FpamluYnV0c3VcIDsKK+mAmuWtpueUnyA+IHRzdXVnYWt1c2VpXCA7CivniIblv4PlnLAgPiBiYWt1c2hpbmNoaVwgOwor5aeL5pyr5pu4ID4gc2hpbWF0c3VzaG9cIDsKK+ertuS6ieW/gyA+IGt5b3Vzb3VzaGluXCA7Civlib3ou73ogIUgPiBoeW91a2lubW9ub1wgOwor6IW46ZaJ5aGeID4gY2hvdWhlaXNva3VcIDsKK+i7jeW9k+WxgCA+IGd1bnRvdWt5b2t1XCA7Civnmb3lrZDps6kgPiBzaGlyYWtvYmF0b1wgOwor55S65b255aC0ID4gbWFjaGl5YWt1YmFcIDsKK+S4jeW/oOWunyA+IGZ1Y2h1dWppdHN1XCA7CivljZrlrabogIUgPiBoYWt1Z2FrdXNoYVwgOwor5oim55Wl5LiKID4gc2Vucnlha3Vqb3VcIDsKK+WNl+alteWcjyA+IG5hbmt5b2t1a2VuXCA7CivkuKHohJropo8gPiByeW91a3lha3VraVwgOwor5YWx6Kiz6ICFID4ga3lvdXlha3VzaGFcIDsKK+W/jeiAkOWKmyA+IG5pbnRhaXJ5b2t1XCA7Civpm4bph5HkurogPiBzaHV1a2luJyduaW5cIDsKK+WNgeWFq+mHkSA+IGp1dWhhY2hpa2luXCA7CivlgJ/nlKjogIUgPiBzaGFrdXlvdXNoYVwgOwor5oyB5LmF5YqbID4gamlreXV1cnlva3VcIDsKK+WxgOWcsOmiqCA+IGt5b2t1Y2hpZnV1XCA7CivnmbrnmYzmgKcgPiBoYXRzdWdhbnNlaVwgOwor5o+a6Zm45paZID4geW91cmlrdXJ5b3VcIDsKK+Wvhuiyv+aYkyA+IG1pdHN1Ym91ZWtpXCA7CivpgJrkv6Hlk6EgPiB0c3V1c2hpbicnaW5cIDsKK+WGoOWLleiEiCA+IGthbmRvdW15YWt1XCA7CivlpInlpY/mm7IgPiBoZW5zb3VreW9rdVwgOwor6KGo5b2w5Y+wID4gaHlvdXNob3VkYWlcIDsKK+iRrOmAgeabsiA+IHNvdXNvdWt5b2t1XCA7CivljYPliIbnjocgPiBzZW5idW5yaXRzdVwgOwor5Li45LiA5bm0ID4gbWFydWljaGluZW5cIDsKK+iAgeW7g+eJqSA+IHJvdWhhaWJ1dHN1XCA7CivljZfmpbXlhYkgPiBuYW5reW9rdWtvdVwgOwor55qu566X55SoID4ga2F3YXphbicneW91XCA7Civov73liIbnr4AgPiBvaXdha2VidXNoaVwgOwor5b6z5bed5YuiID4gdG9rdWdhd2F6ZWlcIDsKK+WJtemAoOeJqSA+IHNvdXpvdWJ1dHN1XCA7CivliJ3oiKrmtbcgPiBoYXRzdWtvdWthaVwgOwor6LO86Kqt5paZID4ga291ZG9rdXJ5b3VcIDsKK+W+l+elqOaVsCA+IHRva3VoeW91c3V1XCA7Civpm6rmma/oibIgPiB5dWtpZ2VzaGlraVwgOwor57K+56We55qEID4gc2Vpc2hpbnRla2lcIDsKK+W+s+W3neWFrCA+IHRva3VnYXdha291XCA7CivmtLvli5XlrrYgPiBrYXRzdWRvdXNoYVwgOwor6Ieq56uL5b+DID4gamlyaXRzdXNoaW5cIDsKK+a8uOmAsueahCA+IHplbnNoaW50ZWtpXCA7CivmlZnkvJrmmqYgPiBreW91a2FpcmVraVwgOwor5q665Lq66ICFID4gc2F0c3VqaW5zaGFcIDsKK+eyvuelnueXhSA+IHNlaXNoaW5ieW91XCA7CivmrrrkurrnvaogPiBzYXRzdWppbnphaVwgOwor5oiQ5bm05byPID4gc2VpbmVuc2hpa2lcIDsKK+iEseefs+ayuSA+IGRhdHN1c2VraXl1XCA7CivlhYjpgLLlm70gPiBzZW5zaGlua29rdVwgOwor5Zyf5Zuj5a2QID4gdHN1Y2hpZGFuZ29cIDsKK+a3t+WQiOeJqSA+IGtvbmdvdWJ1dHN1XCA7Civou43mpb3plbcgPiBndW5nYWt1Y2hvdVwgOwor5rOV5b6L5LiKID4gaG91cml0c3Vqb3VcIDsKK+eVnOeKrOeojiA+IGNoaWt1a2VuemVpXCA7CivmooHlsbHms4ogPiByeW91emFucGFrdVwgOwor5b2r5aGR6KGTID4gY2hvdXNvanV0c3VcIDsKK+S7o+eUqOmjnyA+IGRhaXlvdXNob2t1XCA7CivkuKbmnKjpgZMgPiBuYW1pa2ltaWNoaVwgOwor5biz5pys5Lq6ID4gY2hvdWhvbicnbmluXCA7Civlrp3nn7PnrrEgPiBob3VzZWtpYmFrb1wgOwor5Y2S5qWt5b6MID4gc290c3VneW91Z29cIDsKK+WPo+inkuWKmyA+IGt1Y2hpZHp1bW91XCA7Civkuovmpa3kuLsgPiBqaWd5b3VudXNoaVwgOwor6Ieq6JmQ55qEID4gamlneWFrdXRla2lcIDsKK+S4i+ebuOirhyA+IHNoaXRhc291ZGFuXCA7Civnpr/poK3nl4UgPiB0b2t1dG91YnlvdVwgOwor5by+552A54K5ID4gZGFuY2hha3V0ZW5cIDsKK+S6lOaciOeXhSA+IGdvZ2F0c3VieW91XCA7CivlvL7lipvmgKcgPiBkYW5yeW9rdXNlaVwgOwor5qC454iG5by+ID4ga2FrdWJha3VkYW5cIDsKK+S4puacqOi3ryA+IG5hbWlraW1pY2hpXCA7CivllYbmpa3ooZcgPiBzaG91Z3lvdWdhaVwgOwor6aCt5paH5a2XID4ga2FzaGlyYW1vamlcIDsKK+e4rue3rOe0mSA+IGNoaXJpbWVuc2hpXCA7CivmiKrmlq3pnaIgPiBzZXRzdWRhbm1lblwgOwor5Y2X5Lqs6JmrID4gbmFua2lubXVzaGlcIDsKK+ijgeaxuuabuCA+IHNhaWtldHN1c2hvXCA7CivmoLjnh4PmlpkgPiBrYWt1bmVucnlvdVwgOwor6YCQ5a2X6KizID4gY2hpa3VqaXlha3VcIDsKK+S4gOW+ueiAhSA+IGl0dGV0c3Vtb25vXCA7CivlvqHljZTlipsgPiBnb2t5b3VyeW9rdVwgOwor5L+C5bGe5LitID4ga2Vpem9rdWNodXVcIDsKK+eXheS4reWQnyA+IGJ5b3VjaHV1Z2luXCA7CivmpbXpmZDlgKQgPiBreW9rdWdlbmNoaVwgOwor5pWZ6IKy5a2mID4ga3lvdWlrdWdha3VcIDsKK+mbu+ipseWupCA+IGRlbndhc2hpdHN1XCA7CivpgaDlv4PlipsgPiBlbnNoaW5yeW9rdVwgOwor5a6u5bSO55yMID4gbWl5YXpha2lrZW5cIDsKK+WVhuW3pealrSA+IHNob3Vrb3VneW91XCA7CivooZ3li5XnmoQgPiBzaG91ZG91dGVraVwgOwor6IOG55+z55eHID4gdGFuc2VraXNob3VcIDsKK+i8uOWHuuWTgSA+IHl1c2h1dHN1aGluXCA7CivkuInnnKDompUgPiBzYW5taW5rYWlrb1wgOwor6ZaT5qyg5rOJID4ga2Fua2V0c3VzZW5cIDsKK+Wkqem+jeW3nSA+IHRlbnJ5dXVrYXdhXCA7CivmlZnnv5LnlJ8gPiBreW91c2h1dXNlaVwgOwor6Zqj5o6l5ZywID4gcmluc2V0c3VjaGlcIDsKK+eZuueUn+eOhyA+IGhhc3NlaXJpdHN1XCA7CivokaHokITnlZEgPiBidWRvdWJhdGFrZVwgOwor5aKD55WM5qiZID4ga3lvdWthaWh5b3VcIDsKK+epuui7jeWKmyA+IGt1dWd1bnJ5b2t1XCA7CivkuqTlo7Dmm7IgPiBrb3VzZWlreW9rdVwgOwor54++5YaF6ZajID4gZ2VuJyduYWlrYWt1XCA7CivljaDmmJ/ooZMgPiBzZW5zZWlqdXRzdVwgOwor6aaZ6L6b5paZID4ga291c2hpbnJ5b3VcIDsKK+eUuumBk+WgtCA+IG1hY2hpZG91am91XCA7Civli5XlipvmupAgPiBkb3VyeW9rdWdlblwgOwor5oGS562J5byPID4ga291dG91c2hpa2lcIDsKK+iojuS8kOi7jSA+IHRvdWJhdHN1Z3VuXCA7CivooajnnIvmnb8gPiBvbW90ZWthbmJhblwgOwor5r+D6Z2S6ImyID4gbm91c2Vpc2hva3VcIDsKK+auuuS6uueKryA+IHNhdHN1amluaGFuXCA7Civmrovlv7Xos54gPiB6YW4nJ25lbnNob3VcIDsKK+iEs+WFheihgCA+IG5vdWp1dWtldHN1XCA7Civpo5/kurrnqK4gPiBzaG9rdWppbnNodVwgOwor6LWk6KSQ6ImyID4gc2Vra2Fzc2hva3VcIDsKK+iIiOS/oemMsiA+IGtvdXNoaW5yb2t1XCA7Civpm7vnhrHlmaggPiBkZW4nJ25ldHN1a2lcIDsKK+S9nOabsuiAhSA+IHNha2t5b2t1c2hhXCA7CivllYbmqJnmqKkgPiBzaG91aHlvdWtlblwgOwor5bi46K2Y5Lq6ID4gam91c2hpa2lqaW5cIDsKK+ims+WuouWxpCA+IGthbmt5YWt1c291XCA7CivkuIDph43moZwgPiBoaXRvZXpha3VyYVwgOwor5YWI5YWI5pyIID4gc2Vuc2VuZ2V0c3VcIDsKK+WcsOWLleiqrCA+IGNoaWRvdXNldHN1XCA7Civnmb3kupzos6ogPiBoYWt1YXNoaXRzdVwgOwor6Iag552A5YmkID4ga291Y2hha3V6YWlcIDsKK+S4gOauteiQvSA+IGljaGlkYW5yYWt1XCA7Civou43nlKjps6kgPiBndW4nJ3lvdWJhdG9cIDsKK+S/l+aWh+WtpiA+IHpva3VidW5nYWt1XCA7Civpm7vlnKfoqIggPiBkZW4nJ2F0c3VrZWlcIDsKK+iWrOWxgOaWuSA+IHlha2t5b2t1aG91XCA7Civms5XliLblsYAgPiBob3VzZWlreW9rdVwgOwor6Jas5a2m6ICFID4geWFrdWdha3VzaGFcIDsKK+S/guS6ieeJqSA+IGtlaXNvdWJ1dHN1XCA7CivpkJjkubPmtJ4gPiBzaG91bnl1dWRvdVwgOwor6ISx5q+b5YmkID4gZGF0c3Vtb3V6YWlcIDsKK+euoei9hOaoqSA+IGthbmthdHN1a2VuXCA7CivlgJ/nlKjmm7ggPiBzaGFrdXlvdXNob1wgOwor5aWJ5YWs5Y+jID4gaG91a291Z3VjaGlcIDsKK+aUvumAgeWxgCA+IGhvdXNvdWt5b2t1XCA7Civpu4Tnmb3oibIgPiBrb2hha3VzaG9rdVwgOwor576957mU6KK0ID4gaGFvcmloYWthbWFcIDsKK+mZpOW5leW8jyA+IGpvbWFrdXNoaWtpXCA7CivlvLfliLbnmoQgPiBreW91c2VpdGVraVwgOwor5by35b+D5YmkID4ga3lvdXNoaW56YWlcIDsKK+eUn+a0u+eSsCA+IHNlaWthdHN1a2FuXCA7CivmmKXkuIDnlaogPiBoYXJ1aWNoaWJhblwgOwor5Y2B5YWr55WqID4ganV1aGFjaGliYW5cIDsKK+e1gui6q+WumCA+IHNodXVzaGlua2FuXCA7CivmnIjplbfnn7MgPiBnZXRjaG91c2VraVwgOwor5pWZ6IG35ZOhID4ga3lvdXNob2t1aW5cIDsKK+mAgeWIpeS8miA+IHNvdWJldHN1a2FpXCA7Civlh7rlk4Hlm70gPiBzaHVwcGlua29rdVwgOwor5Y2X5Lqs55S6ID4gbmFua2lubWFjaGlcIDsKK+mBk+W+s+eahCA+IGRvdXRva3V0ZWtpXCA7CivllYbmpa3nlYwgPiBzaG91Z3lvdWthaVwgOwor5Y+O57SN6aGNID4gc2h1dW5vdWdha3VcIDsKK+m8jueri+aIpiA+IHRlaXJpdHN1c2VuXCA7Civljp/liYfnmoQgPiBnZW5zb2t1dGVraVwgOwor5YKN6IG05paZID4gYm91Y2hvdXJ5b3VcIDsKK+WNg+WGhuacrSA+IHNlbicnZW5zYXRzdVwgOwor5a6a5Y+O5YWlID4gdGVpc2h1dW55dXVcIDsKK+WFreWkp+W3niA+IHJva3VkYWlzaHV1XCA7CivlibLlvJXliLggPiB3YXJpYmlraWtlblwgOwor5L2P55Sf5rS7ID4ganV1c2Vpa2F0c3VcIDsKK+WJjeeri+iFuiA+IHplbnJpdHN1c2VuXCA7CivlhpnnnJ/pm4YgPiBzaGFzaGluc2h1dVwgOwor55m+5LiH6YGNID4gaHlha3VtYW5iZW5cIDsKK+idieaZgumbqCA+IHNlbWlzaGlndXJlXCA7CivlibLlvJXlgrUgPiB3YXJpYmlraXNhaVwgOwor5o6l552A5YmkID4gc2V0Y2hha3V6YWlcIDsKK+aJi+ihk+WPsCA+IHNodWp1dHN1ZGFpXCA7CivpmLLngavmiYkgPiBib3VrYXRvYmlyYVwgOwor5Lmx5YWl6ICFID4gcmFuJydueXV1c2hhXCA7CivoqIjnlLvnmoQgPiBrZWlrYWt1dGVraVwgOwor6Kq/5Y2w5byPID4gY2hvdWluc2hpa2lcIDsKK+mAhui7ouWxpCA+IGd5YWt1dGVuc291XCA7Civpu4ToibLomasgPiBrb2dhbmVtdXNoaVwgOwor55Sf5rS75rOVID4gc2Vpa2F0c3Vob3VcIDsKK+eymOWcn+izqiA+IG5lbmRvc2hpdHN1XCA7CivpgIbovLjlhaUgPiBneWFrdXl1bnl1dVwgOwor5paw6IiI5Zu9ID4gc2hpbmtvdWtva3VcIDsKK+WJtemAoOWKmyA+IHNvdXpvdXJ5b2t1XCA7CivlkIjnm67nmoQgPiBnb3Vtb2t1dGVraVwgOwor5paw5Lq66LOeID4gc2hpbmppbnNob3VcIDsKK+mgmumdmeiEiCA+IGtlaWpvdW15YWt1XCA7Civpm7vloLHlsYAgPiBkZW5wb3VreW9rdVwgOwor5LiJ5bmV54mpID4gc2FubWFrdW1vbm9cIDsKK+eZveacqOiTriA+IGhha3Vtb2t1cmVuXCA7CivllYbmpa3muK8gPiBzaG91Z3lvdWtvdVwgOwor6Jas572Q6aCtID4geWFrYW4nJ2F0YW1hXCA7CivkuIDph4zloZogPiBpY2hpcmlkenVrYVwgOwor57WC6Lqr5YiRID4gc2h1dXNoaW5rZWlcIDsKK+WLleWKm+WtpiA+IGRvdXJpa2lnYWt1XCA7Civnr4DmlpnnkIYgPiBzZWNoaXJ5b3VyaVwgOwor5Ye65ZOB5Lq6ID4gc2h1cHBpbicnbmluXCA7Civlgo3ogbTluK0gPiBib3VjaG91c2VraVwgOwor5LiN6YGp5YiHID4gZnV0ZWtpc2V0c3VcIDsKK+Wtpumam+eahCA+IGdha3VzYWl0ZWtpXCA7Civnq5zpqqjluqcgPiByeXV1a290c3V6YVwgOwor5Luu5p2h57SEID4ga2FyaWpvdXlha3VcIDsKK+majue0mueroCA+IGthaWt5dXVzaG91XCA7CivmirXmipflipsgPiB0ZWlrb3VyeW9rdVwgOwor5qOu5p6X5a2mID4gc2hpbnJpbmdha3VcIDsKK+eZvuS4h+iogCA+IGh5YWt1bWFuZ2VuXCA7CivljJbnsqfkuIsgPiBrZXNob3VzaGl0YVwgOwor6LWk5o+Q54GvID4gYWthY2hvdWNoaW5cIDsKK+WJtemAoOS4uyA+IHNvdXpvdW51c2hpXCA7CivlgJnlrZ3os6IgPiBob3VzaGF1c2hlblwgOwor6Jas57y26aCtID4geWFrYW4nJ2F0YW1hXCA7CivlhqzlsIbou40gPiBmdXl1c2hvdWd1blwgOwor54us57+S5pu4ID4gZG9rdXNodXVzaG9cIDsKK+WFrOiovOaWmSA+IGtvdXNob3VyeW91XCA7Civntr/nuZTniakgPiBtZW4nJ29yaW1vbm9cIDsKK+WFiOWFpeS4uyA+IHNlbicnbnl1dXNodVwgOwor5pyA57WC55qEID4gc2Fpc2h1dXRla2lcIDsKK+acrOW7uueviSA+IGhvbmtlbmNoaWt1XCA7Civni5flsL7ojYkgPiBlbm9rb3JvZ3VzYVwgOwor6KGM5ZWG5Lq6ID4gZ3lvdXNob3VuaW5cIDsKK+WIh+WIhuazlSA+IHNldHN1YnVuaG91XCA7CivlsI/nmb7lp5MgPiBrb2J5YWt1c2hvdVwgOwor5b+D5LiI5aSrID4ga29rb3Jvam91YnVcIDsKK+mzpemhnuWtpiA+IGNob3VydWlnYWt1XCA7CivlvLHlubTogIUgPiBqYWt1bmVubW9ub1wgOwor5Lit6ZqK6ZW3ID4gY2h1dXRhaWNob3VcIDsKK+ebuOirh+W9uSA+IHNvdWRhbicneWFrdVwgOwor6aOf5LqL5pmCID4gc2hva3VqaWRva2lcIDsKK+WFq+mdouS9kyA+IGhhY2hpbWVudGFpXCA7Civljp/liKTmsbogPiBnZW5oYW5rZXRzdVwgOwor5qW15Zyw5ZyPID4ga3lva3VjaGlrZW5cIDsKK+ebo+Wvn+WumCA+IGthbnNhdHN1a2FuXCA7Civnmb3njonnsokgPiBzaGlyYXRhbWFrb1wgOwor5ZWG5qWt5paHID4gc2hvdWd5b3VidW5cIDsKK+WkqeWLleiqrCA+IHRlbmRvdXNldHN1XCA7Civovrvoqqzms5UgPiB0c3VqaXNlcHBvdVwgOwor54WJ5Li56KGTID4gcmVudGFuanV0c3VcIDsKK+ilv+a1t+WyuCA+IG5pc2hpa2FpZ2FuXCA7CivmgKXkuIrmmIcgPiBreXV1am91c2hvdVwgOwor5a6d55+z5ZWGID4gaG91c2VraXNob3VcIDsKK+aPm+eul+eOhyA+IGthbnNhbnJpdHN1XCA7Civlu7roqK3ogIUgPiBrZW5zZXRzdXNoYVwgOwor5YyX44CF6KW/ID4gaG9rdWhva3VzZWlcIDsKK+mKgOWpmuW8jyA+IGdpbmtvbnNoaWtpXCA7CivkuKHohJrlmaggPiByeW91a3lha3VraVwgOwor5Y6f5YuV5YqbID4gZ2VuZG91cnlva3VcIDsKK+S/hOaZr+awlyA+IG5pd2FrYWdlaWtpXCA7CivmgqrmiK/ogIUgPiBpdGF6dXJhbW9ub1wgOwor5aSn56aP5bizID4gZGFpZnVrdWNob3VcIDsKK+aZguevgOafhCA+IGppc2V0c3VnYXJhXCA7CivlkLjooYDprLwgPiBreXV1a2V0c3VraVwgOwor57OW5bC/55eFID4gdG91bnlvdWJ5b3VcIDsKK+i7ouS7u+WFiCA+IHRlbicnbmluc2FraVwgOwor5pSv6YWN5YqbID4gc2hpaGFpcnlva3VcIDsKK+WNmOmfs+evgCA+IHRhbicnb25zZXRzdVwgOwor5paw6IGe56iuID4gc2hpbmJ1bmRhbmVcIDsKK+W8n+OAheWtkCA+IG90b3V0b2Rlc2hpXCA7CivkvY7kuJjpmbUgPiB0ZWlreXV1cnlvdVwgOwor5Zu96Zqb55qEID4ga29rdXNhaXRla2lcIDsKK+mDt+Wcn+iJsiA+IGt5b3Vkb3Nob2t1XCA7Civnq5znlLDlp6sgPiB0YXRzdXRhaGltZVwgOwor5bCP5a2m6aSoID4gc2hvdWdha3VrYW5cIDsKK+S9v+evgOWboyA+IHNoaXNldHN1ZGFuXCA7Civmtojmga/mlocgPiBzaG91c29rdWJ1blwgOwor57eL6KGj6I2JID4gaGlnb3JvbW9zb3VcIDsKK+S4u+ioiOWxgCA+IHNodWtlaWt5b2t1XCA7CivpgZPlvrPlv4MgPiBkb3V0b2t1c2hpblwgOwor5pyq5rG65ZuaID4gbWlrZXRzdXNodXVcIDsKK+aEm+WUseabsiA+IGFpc2hvdWt5b2t1XCA7CivlsbHmo5/om4cgPiB5YW1ha2FnYXNoaVwgOwor5YG15a+f6ZqKID4gdGVpc2F0c3V0YWlcIDsKK+eZuuS/oeWBtCA+IGhhc3NoaW5nYXdhXCA7CivpgaDlsbHph4wgPiB0b295YW1hemF0b1wgOwor56We57WM55ebID4gc2hpbmtlaXRzdXVcIDsKK+elnue1jOeXhyA+IHNoaW5rZWlzaG91XCA7CivnpZ7ntYznl4UgPiBzaGlua2VpYnlvdVwgOwor5a6a552A5rayID4gdGVpY2hha3Vla2lcIDsKK+W8geiovOWtpiA+IGJlbnNob3VnYWt1XCA7Civnmbrkv6HkurogPiBoYXNzaGluJyduaW5cIDsKK+e3keWcsOW4ryA+IHJ5b2t1Y2hpdGFpXCA7CivnlJ/mtLvlnI8gPiBzZWlrYXRzdWtlblwgOwor54ax5Lyd5bCOID4gbmV0c3VkZW5kb3VcIDsKK+mBk+W+s+WtpiA+IGRvdXRva3VnYWt1XCA7CivpganmoLzogIUgPiB0ZWtpa2FrdXNoYVwgOwor5Zuz5pu45a6kID4gdG9zaG9zaGl0c3VcIDsKK+ims+mfs+anmCA+IGthbicnbm9uc2FtYVwgOwor57WQ5ama5byPID4ga2Vra29uc2hpa2lcIDsKK+ilv+a0i+W8jyA+IHNlaXlvdXNoaWtpXCA7CivnlLflhqXliKkgPiBvdG9rb215b3VyaVwgOwor5LiK6IWV6aqoID4gam91d2Fua290c3VcIDsKK+eUn+WRveWKmyA+IHNlaW1laXJ5b2t1XCA7CivnoazpqqjmvKIgPiBrb3Vrb3RzdWthblwgOwor5ZWG5qWt5ZywID4gc2hvdWd5b3VjaGlcIDsKK+S4h+W5tOW6iiA+IG1hbicnbmVuZG9rb1wgOwor6Kyb6YeI5birID4ga291c2hha3VzaGlcIDsKK+a3oem7hOiJsiA+IHRhbmtvdXNob2t1XCA7CivkuInluYXlr74gPiBzYW5wdWt1dHN1aVwgOwor6JuL55m95bC/ID4gdGFucGFrdW55b3VcIDsKK+WIuua/gOiHrSA+IHNoaWdla2lzaHV1XCA7CivojYnpnovomasgPiB3YXJhamltdXNoaVwgOwor6YeR6J6N5qWtID4ga2luJyd5dXVneW91XCA7Civoj5znqK7msrkgPiBuYXRhbmVhYnVyYVwgOwor6Zub5Lq65b2iID4gaGluYW5pbmd5b3VcIDsKK+eEoeedgOmZuCA+IG11Y2hha3VyaWt1XCA7CivkuIrliIbliKUgPiBqb3VmdW5iZXRzdVwgOwor5aSn5YuV6ISIID4gZGFpZG91bXlha3VcIDsKK+elnueEoeaciCA+IGthbicnbmFkenVraVwgOwor5bm86aa05p+TID4gb3NhbmFuYWppbWlcIDsKK+WGhuWRqOeOhyA+IGVuc2h1dXJpdHN1XCA7CivllYbmpa3lj7IgPiBzaG91Z3lvdXNoaVwgOwor5bGx5bKz55eFID4gc2FuZ2FrdWJ5b3VcIDsKK+imquS7u+WumCA+IHNoaW4nJ25pbmthblwgOwor6L+96Leh6ICFID4gdHN1aXNla2lzaGFcIDsKK+eZuuS8muW8jyA+IGhha2thaXNoaWtpXCA7CivlpKnpgZPomasgPiB0ZW50b3VtdXNoaVwgOwor5bqK6Z2i56mNID4geXVrYW1lbnNla2lcIDsKK+eLuOimqueItiA+IHRhbnVraW95YWppXCA7CivmnKjnn7PmvKIgPiBib2t1c2VraWthblwgOwor5Zu96Ziy55yBID4ga29rdWJvdXNob3VcIDsKK+WbveaWh+WtpiA+IGtva3VidW5nYWt1XCA7CivmsJHkv5flraYgPiBtaW56b2t1Z2FrdVwgOwor55Sf5q6W6IW6ID4gc2Vpc2hva3VzZW5cIDsKK+iHquauuueahCA+IGppc2F0c3V0ZWtpXCA7CivpgKDniankuLsgPiB6b3VidXRzdXNodVwgOwor55So5YW16KGTID4geW91aGVpanV0c3VcIDsKK+mAgOiBt+mHkSA+IHRhaXNob2t1a2luXCA7CivlvY7mnIjnirYgPiB3YW5nZXRzdWpvdVwgOwor55Sf5rKh5bm0ID4gc2VpYm90c3VuZW5cIDsKK+WNmOS4gOaApyA+IHRhbicnaXRzdXNlaVwgOwor5oyB57aa5YqbID4gaml6b2t1cnlva3VcIDsKK+aWsOiBnualrSA+IHNoaW5idW5neW91XCA7CivnpZ7ntYzmoLggPiBzaGlua2Vpa2FrdVwgOwor5p6i6Lu45Zu9ID4gc3V1amlrdWtva3VcIDsKK+S4ieiJsueJiCA+IHNhbnNob2t1YmFuXCA7Civnm7ToprPnmoQgPiBjaG9ra2FudGVraVwgOwor5Lit6ZaT6aeFID4gY2h1dWthbicnZWtpXCA7Civog73oo4XmnZ8gPiBub3VzaG91em9rdVwgOwor57WQ5pm25a2mID4ga2Vzc2hvdWdha3VcIDsKK+ino+axuuazlSA+IGthaWtldHN1aG91XCA7CivorabmiJLoibIgPiBrZWlrYWlzaG9rdVwgOwor5LiA5q+b5L2cID4gaWNoaW1vdXNha3VcIDsKK+a4qeeGseaApyA+IG9uJyduZXRzdXNlaVwgOwor5YaF5Y+N6ISaID4gbmFpaGFua3lha3VcIDsKK+W7tue4hOa8gSA+IGhhZW5hd2FyeW91XCA7Civnm7TmlrnkvZMgPiBjaG9rdWhvdXRhaVwgOwor5a625peP6YGUID4ga2F6b2t1dGFjaGlcIDsKK+WIuua/gOeahCA+IHNoaWdla2l0ZWtpXCA7CivkuqTmj5vlsYAgPiBrb3VrYW5reW9rdVwgOwor5LiD5bm05b+MID4gc2hpY2hpbmVua2lcIDsKK+aCquaIr+abuCA+IGl0YXp1cmFnYWtpXCA7CivljYPkurrph50gPiBzZW4nJ25pbmJhcmlcIDsKK+a2iOavkua2siA+IHNob3Vkb2t1ZWtpXCA7CivmsrnnoKXnn7MgPiBhYnVyYXRvaXNoaVwgOwor54uQ6aWC6aOpID4ga2l0c3VuZXVkb25cIDsKK+WQiOW3nuWbvSA+IGdhc3NodXVrb2t1XCA7Civmv4PopJDoibIgPiBub3VrYXNzaG9rdVwgOwor5p2Q5pyo5ZWGID4gemFpbW9rdXNob3VcIDsKK+WOn+iJsueJiCA+IGdlbnNob2t1YmFuXCA7CivljZjpoIXlvI8gPiB0YW5rb3VzaGlraVwgOwor5Zyf5rCX6ImyID4gdHN1Y2hpa2Vpcm9cIDsKK+S7mOWxnuevgCA+IGZ1em9rdXNldHN1XCA7CivkuIDnlarpto8gPiBpY2hpYmFuZG9yaVwgOwor57SL56ug5a2mID4gbW9uc2hvdWdha3VcIDsKK+ecn+WPquS4rSA+IG1hdHRhZGFuYWthXCA7Civlh7rluK3ogIUgPiBzaHVzc2VraXNoYVwgOwor6ZaA5YmN55S6ID4gbW9uemVubWFjaGlcIDsKK+aVmeiok+eahCA+IGt5b3VrdW50ZWtpXCA7Civosq/ph5HlsYAgPiBjaG9raW5reW9rdVwgOwor5a6Y5YOa6IetID4ga2FucnlvdXNodXVcIDsKK+i5hOmJhOW3pSA+IHRlaXRldHN1a291XCA7CivnpZ7ntYzlraYgPiBzaGlua2VpZ2FrdVwgOwor6KGo546E6ZaiID4gb21vdGVnZW5rYW5cIDsKK+WHuuW8teW6lyA+IHNodXRjaG91dGVuXCA7Civml4XooYzpnoQgPiByeW9rb3VrYWJhblwgOwor5YyX44CF5p2xID4gaG9rdWhva3V0b3VcIDsKK+a4m+WhqemjnyA+IGdlbicnZW5zaG9rdVwgOwor5Zuj5L2T5a6iID4gZGFudGFpa3lha3VcIDsKK+W/g+mciuWtpiA+IHNoaW5yZWlnYWt1XCA7CivlpKfmraPnkLQgPiB0YWlzaG91Z290b1wgOwor5qyg5Yuk546HID4ga2Vra2lucml0c3VcIDsKK+WumuedgOWJpCA+IHRlaWNoYWt1emFpXCA7CivlhaXloLTmlpkgPiBueXV1am91cnlvdVwgOwor6YCQ6Kqe6KizID4gY2hpa3Vnb3lha3VcIDsKK+aAneiAg+WKmyA+IHNoaWtvdXJ5b2t1XCA7CivkubPnlKjniZsgPiBueXV1eW91Z3l1dVwgOwor5q2j6Kaa5Z2KID4gc2hvdWdha3Vib3VcIDsKK+e3keiXu+mhniA+IHJ5b2t1c291cnVpXCA7Civnm67mkoPogIUgPiBtb2t1Z2VraXNoYVwgOwor6buS5puc55+zID4ga29rdXlvdXNla2lcIDsKK+a6gOS4gOW5tCA+IG1hbicnaWNoaW5lblwgOwor5rKh5oiR55qEID4gYm90c3VnYXRla2lcIDsKK+WQq+WhteeOhyA+IGdhbmppbnJpdHN1XCA7CivpgIDogbfogIUgPiB0YWlzaG9rdXNoYVwgOwor6JS15bGL5pW3ID4ga3VyYXlhc2hpa2lcIDsKK+WGjeW7uueviSA+IHNhaWtlbmNoaWt1XCA7CivnjK7ouqvnmoQgPiBrZW5zaGludGVraVwgOwor5aao5a6z54mpID4gYm91Z2FpYnV0c3VcIDsKK+eCueecvOiWrCA+IHRlbmdhbicneWFrdVwgOwor5YWD6aaW55u4ID4gbW90b3NodXNob3VcIDsKK+aBkOawtOeXhSA+IGt5b3VzdWlieW91XCA7Civlr4blo7Llk4EgPiBtaXRzdWJhaWhpblwgOwor55+z5bed55yMID4gaXNoaWthd2FrZW5cIDsKK+WJr+S8mumVtyA+IGZ1a3VrYWljaG91XCA7CivnmbrmmI7ogIUgPiBoYXRzdW1laXNoYVwgOwor5Ym15L2c55qEID4gc291c2FrdXRla2lcIDsKK+Wkp+mAhue9qiA+IHRhaWd5YWt1emFpXCA7CivkuIDlhYPnmoQgPiBpY2hpZ2VudGVraVwgOwor55m+6Z2i55u4ID4gaHlha3VtZW5zb3VcIDsKK+S4jeS+teeVpSA+IGZ1c2hpbnJ5YWt1XCA7CivlsI/lrabnlJ8gPiBzaG91Z2FrdXNlaVwgOwor5LuY5bGe54mpID4gZnV6b2t1YnV0c3VcIDsKK+WLieW8t+S4rSA+IGJlbmt5b3VjaHV1XCA7CivlhpnnnJ/luLMgPiBzaGFzaGluY2hvdVwgOwor5LiA55uu5pWjID4gaWNoaW1va3VzYW5cIDsKK+miqOWKm+ioiCA+IGZ1dXJ5b2t1a2VpXCA7CivmtLvnlKjlvaIgPiBrYXRzdXlvdWtlaVwgOwor6Ieq5YuV5omJID4gamlkb3V0b2JpcmFcIDsKK+S8muekvueriyA+IGthaXNoYXJpdHN1XCA7Civopovnm67lvaIgPiBtaW1la2F0YWNoaVwgOwor6ZGR5Yil5omAID4ga2FuYmV0c3VzaG9cIDsKK+S7ruWlkee0hCA+IGthcmlrZWl5YWt1XCA7CivmoLjmi6HmlaMgPiBrYWt1a2FrdXNhblwgOwor5ZGo6L665Zu9ID4gc2h1dWhlbmtva3VcIDsKK+W/heeEtuaApyA+IGhpdHN1emVuc2VpXCA7Civpu5LnjKnnjKkgPiBrdXJvc2hvdWpvdVwgOwor5Lih5pu/5ZWGID4gcnlvdWdhZXNob3VcIDsKK+iEseiJsuWJpCA+IGRhc3Nob2t1emFpXCA7Civlj7Plv4PlrqQgPiB1c2hpbnNoaXRzdVwgOwor5Lit5aSu5Y+jID4gY2h1dW91Z3VjaGlcIDsKK+ecn+iPjOeXhyA+IHNoaW5raW5zaG91XCA7CivlnKflipvms6IgPiBhdHN1cnlva3VoYVwgOwor5YWo5Zu955qEID4gemVua29rdXRla2lcIDsKK+e4hOair+WtkCA+IG5hd2FiYXNoaWdvXCA7CivmiJHnianpoZQgPiB3YWdhbW9ub2dhb1wgOwor6aOf5aCC6LuKID4gc2hva3Vkb3VzaGFcIDsKK+WWhOefpeitmCA+IHplbmNoaXNoaWtpXCA7CivkuIDlhobmnK0gPiBpY2hpZW5zYXRzdVwgOwor6KaW6IG06KaaID4gc2hpY2hvdWtha3VcIDsKK+iAkOeGsemLvCA+IHRhaW5ldHN1a291XCA7Civpnanlkb3nmoQgPiBrYWt1bWVpdGVraVwgOwor5bCP5LyR5q2iID4gc2hvdWt5dXVzaGlcIDsKK+WlveWPlue1hCA+IGtvdXRvcmlrdW1pXCA7CivljZrlpZXlrr8gPiBiYWt1Y2hpeWFkb1wgOwor6ISz6LKn6KGAID4gbm91aGlua2V0c3VcIDsKK+aCquOAheaIryA+IHdhcnVpdGF6dXJhXCA7CivmtJfnpLzlvI8gPiBzZW5yZWlzaGlraVwgOwor55Sy6aqo5paHID4ga291a290c3VidW5cIDsKK+aXpemKgOWIuCA+IG5pY2hpZ2lua2VuXCA7CivosqfmsJHnqp8gPiBoaW5taW5rdXRzdVwgOwor5aWJ54yu54mpID4gaG91a2VuYnV0c3VcIDsKK+Wun+alreWutiA+IGppdHN1Z3lvdWthXCA7Civog7jnrpfnlKggPiBtdW5lemFuJyd5b3VcIDsKK+WGrOacqOeriyA+IGZ1eXVrb2RhY2hpXCA7CivntZDntK7ns7ggPiBrZXNzYXRzdXNoaVwgOwor6YCG5a6j5LydID4gZ3lha3VzZW5kZW5cIDsKK+murue0heiJsiA+IHNlbmtvdXNob2t1XCA7CivlhaXlm73nqI4gPiBueXV1a29rdXplaVwgOwor5ouh5aSn6Y+hID4ga2FrdWRhaWt5b3VcIDsKK+mBk+alveiAhSA+IGRvdXJha3Vtb25vXCA7CivlpbPmiL/lvbkgPiBueW91Ym91eWFrdVwgOwor5p2h57SE5Zu9ID4gam91eWFrdWtva3VcIDsKK+S7o+abv+eJqSA+IGRhaXRhaWJ1dHN1XCA7Civmt7flh53lnJ8gPiBrb25rdXJpemV0b1wgOwor5raI5q+S5YmkID4gc2hvdWRva3V6YWlcIDsKK+S4h+iDveiWrCA+IG1hbicnbm91eWFrdVwgOwor5L+h5oaR5oCnID4gc2hpbnB5b3VzZWlcIDsKK+WIl+S8neS9kyA+IHJldHN1ZGVudGFpXCA7Civlj6Plj6/nrJEgPiBrdWNoaW9rYXNoaVwgOwor5a6f55Sf5rS7ID4gamlzc2Vpa2F0c3VcIDsKK+eZvuWnk+WutiA+IGh5YWt1c2hvdXlhXCA7CivkuIDlsYDpg6ggPiBpY2hpa3lva3VidVwgOwor6ZaT5LiA6auqID4ga2FuJydpcHBhdHN1XCA7CivlubTmoLzlpb0gPiB0b3NoaWtha2tvdVwgOwor6Y6n5LiA5YW3ID4geW9yb2lpY2hpZ3VcIDsKK+eUuuS6uueJqSA+IGNob3VuaW5tb25vXCA7CivpgJroqLPlrpggPiB0c3V1eWFrdWthblwgOwor5b+F6KaB5oKqID4gaGl0c3V5b3Vha3VcIDsKK+mJhOmBk+e2siA+IHRldHN1ZG91bW91XCA7Civljp/nlKPniakgPiBnZW5zYW5idXRzdVwgOwor5Zmo5qW95puyID4ga2lnYWt1a3lva3VcIDsKK+W/heimgeaApyA+IGhpdHN1eW91c2VpXCA7CivljYrpnaLorZggPiBoYW5tZW5zaGlraVwgOwor5aSi5b+D5ZywID4geXVtZWdva29jaGlcIDsKK+S7iumAseS4rSA+IGtvbnNodXVjaHV1XCA7CivoqbHkuIvmiYsgPiBoYW5hc2hpYmV0YVwgOwor6Ziy6J2V5YmkID4gYm91c2hva3V6YWlcIDsKK+Wwj+S5l+eahCA+IHNob3Vqb3V0ZWtpXCA7Civnq4vohJrngrkgPiByaWtreWFrdXRlblwgOwor5LiN5L+h5a6fID4gZnVzaGluaml0c3VcIDsKK+S6ieWlquaIpiA+IHNvdWRhdHN1c2VuXCA7CivllYblrablo6sgPiBzaG91Z2FrdXNoaVwgOwor5LiK5bGL5pW3ID4ga2FtaXlhc2hpa2lcIDsKK+iLpeWkp+WwhiA+IHdha2FkYWlzaG91XCA7Civmk43oiLXlrqQgPiBzb3VkYXNoaXRzdVwgOwor5oiQ5Lq65byPID4gc2Vpamluc2hpa2lcIDsKK+aWsOmdouebriA+IHNoaW5tZW5tb2t1XCA7Civms6jmlofmnI0gPiBjaHV1bW9uZnVrdVwgOwor5LiK5qOf5byPID4gam91dG91c2hpa2lcIDsKK+i1pOmKheiJsiA+IHNoYWt1ZG91aXJvXCA7CivlkJHlrablv4MgPiBrb3VnYWt1c2hpblwgOwor5riH5pyb6ICFID4ga2F0c3Vib3VzaGFcIDsKK+axvee8tuWupCA+IGtpa2Fuc2hpdHN1XCA7Civln7fpgZTlkI8gPiBzaGl0dGF0c3VyaVwgOwor5LmX5b+D5ZywID4gbm9yaWdva29jaGlcIDsKK+W8lOelreaWmSA+IGNob3VzYWlyeW91XCA7CivliLrmiJ/nmoQgPiBzaGlnZWtpdGVraVwgOwor5LiL5qSc5YiGID4gc2hpdGFrZW5idW5cIDsKK+mWi+WCrOW8jyA+IGthaXNhaXNoaWtpXCA7CivnlLDoiI7lqJggPiBpbmFrYW11c3VtZVwgOwor566x54Gr6YmiID4gaGFrb2hpYmFjaGlcIDsKK+WJr+mmluebuCA+IGZ1a3VzaHVzaG91XCA7CivmlbXmhL7lv4MgPiB0ZWtpZ2Fpc2hpblwgOwor6YeI56m65rW3ID4gc2hha3VrdXVrYWlcIDsKK+WMl+WMl+ilvyA+IGhva3Vob2t1c2VpXCA7CivntYTnuZTnpaggPiBzb3NoaWtpaHlvdVwgOwor5Ye66Lqr6ICFID4gc2h1c3NoaW5zaGFcIDsKK+S7leS6i+mHjyA+IHNoaWdvdG9yeW91XCA7CivljYrmnIjlvaIgPiBoYW5nZXRzdWtlaVwgOwor5YiG5a2Q6KqsID4gYnVuc2hpc2V0c3VcIDsKK+WNiuaciOW8gSA+IGhhbmdldHN1YmVuXCA7CivmraPnrZTnjocgPiBzZWl0b3VyaXRzdVwgOwor5a2j56+A55qEID4ga2lzZXRzdXRla2lcIDsKK+WOn+WtkOiqrCA+IGdlbnNoaXNldHN1XCA7CivnpZ7lmJfnpa0gPiBrYW4nJ25hbWVzYWlcIDsKK+ahp+iInuWPsCA+IGhpbm9raWJ1dGFpXCA7Civlr77lsYDogIUgPiB0YWlreW9rdXNoYVwgOwor6LKd5q676aqoID4ga2FpZ2FyYWJvbmVcIDsKK+WNg+S4oeeusSA+IHNlbnJ5b3ViYWtvXCA7CivntJTlj47lhaUgPiBqdW5zaHV1bnl1dVwgOwor54mp55CG55qEID4gYnV0c3VyaXRla2lcIDsKK+ael+eUo+eJqSA+IHJpbnNhbmJ1dHN1XCA7CivnqoHnhLbmrbsgPiB0b3RzdXplbnNoaVwgOwor6Ki85Y+W5rOVID4gc2hvdXRvcmlob3VcIDsKK+attOWPsueahCA+IHJla2lzaGl0ZWtpXCA7CivntYTnuZTnmoQgPiBzb3NoaWtpdGVraVwgOwor6LSI5ZGI5byPID4gem91dGVpc2hpa2lcIDsKK+epjei8iemHjyA+IHNla2lzYWlyeW91XCA7Civoh6rnmbrnmoQgPiBqaWhhdHN1dGVraVwgOwor5Zyf55+z5rWBID4gZG9zZWtpcnl1dVwgOwor5biC55S65p2RID4gc2hpY2hvdXNvblwgOwor6aOf5aGp5rC0ID4gc2hva3VlbnN1aVwgOwor5r2k5ruR5rK5ID4ganVua2F0c3V5dVwgOwor5rWB5pif576kID4gcnl1dXNlaWd1blwgOwor5aWR57SE6YeRID4ga2VpeWFrdWtpblwgOwor5rG66K2w5paHID4ga2V0c3VnaWJ1blwgOwor6JK455WZ6YWSID4gam91cnl1dXNodVwgOwor6Yed6JGJ5qi5ID4gc2hpbicneW91anVcIDsKK+eMm+WLieW8tyA+IG1vdWJlbmt5b3VcIDsKK+a3seWIu+WMliA+IHNoaW5rb2t1a2FcIDsKK+aJgOW+l+mhlCA+IHRva29yb2VnYW9cIDsKK+W+oeWuouanmCA+IG9reWFrdXNhbWFcIDsKK+iUteabuOelqCA+IHpvdXNob2h5b3VcIDsKK+S6uuW3pembqiA+IGppbmtvdXl1a2lcIDsKK+WQjOiFueS7lCA+IGRvdWZ1a3VzaGlcIDsKK+WwhOWAluW/gyA+IHNoYWtvdXNoaW5cIDsKK+WNmuWjq+WPtyA+IGhha3VzaGlnb3VcIDsKK+WFpea8geiAhSA+IG55dXVneW9zaGFcIDsKK+WIpemZpOaoqSA+IGJldHN1am9rZW5cIDsKK+aIpumXmOacjSA+IHNlbnRvdWZ1a3VcIDsKK+mkium2j+alrSA+IHlvdWtlaWd5b3VcIDsKK+itsOaxuuaoqSA+IGdpa2V0c3VrZW5cIDsKK+WFpeWckuaWmSA+IG55dXVlbnJ5b3VcIDsKK+WEquWFiOeahCA+IHl1dXNlbnRla2lcIDsKK+WQjOS4gOimliA+IGRvdWl0c3VzaGlcIDsKK+mbo+ihjOmBkyA+IG5hbmd5b3Vkb3VcIDsKK+mBuuWkseWTgSA+IGlzaGl0c3VoaW5cIDsKK+mjn+aWh+WMliA+IHNob2t1YnVua2FcIDsKK+awkeS4u+WbvSA+IG1pbnNodWtva3VcIDsKK+WGjeW4sOeGsSA+IHNhaWtpbmV0c3VcIDsKK+eCreWMlueJqSA+IHRhbmthYnV0c3VcIDsKK+aWreeJh+eahCA+IGRhbnBlbnRla2lcIDsKK+a6uuatu+S9kyA+IGRla2lzaGl0YWlcIDsKK+a1t+a0i+WtpiA+IGthaXlvdWdha3VcIDsKK+atr+elnue1jCA+IHNoaXNoaW5rZWlcIDsKK+WPjeaKl+eahCA+IGhhbmtvdXRla2lcIDsKK+mWi+WCrOWbvSA+IGthaXNhaWtva3VcIDsKK+W+oeS4oeimqiA+IGdvcnlvdXNoaW5cIDsKK+S/ruato+a2siA+IHNodXVzZWlla2lcIDsKK+WOmueUn+ecgSA+IGtvdXNlaXNob3VcIDsKK+mrmOe0mui7iiA+IGtvdWt5dXVzaGFcIDsKK+i7n+aWh+WtpiA+IG5hbmJ1bmdha3VcIDsKK+ippuS9nOWTgSA+IHNoaXNha3VoaW5cIDsKK+ims+imp+aWmSA+IGthbnJhbnJ5b3VcIDsKK+S4jeS/oeS7uyA+IGZ1c2hpbicnbmluXCA7CivkuInohJrmnrYgPiBzYW5reWFrdWthXCA7CivlpInmhYvnmoQgPiBoZW50YWl0ZWtpXCA7CivkuZ7pq5joqZUgPiBrb3Vrb3VoeW91XCA7Civmr5vmsIjoi5QgPiBtb3VzZW5nb2tlXCA7CivkuInlsLrluK8gPiBzYW5qYWt1b2JpXCA7Civlv5zmgKXnrZYgPiBvdWt5dXVzYWt1XCA7CivkurrpgZPnmoQgPiBqaW5kb3V0ZWtpXCA7CivmtbfphbjmvL8gPiB1bWlob296dWtpXCA7Civmib/oqo3nirYgPiBzaG91bmluam91XCA7Civpmo/nrYblrrYgPiB6dWloaXRzdWthXCA7CivmoLjono3lkIggPiBrYWt1eXV1Z291XCA7Civmir3pgbjliLggPiBjaHV1c2Vua2VuXCA7CivlhY3oqLHoqLwgPiBtZW5reW9zaG91XCA7Civnvo7lrrnooZMgPiBiaXlvdWp1dHN1XCA7Civoo4/osrjlsYsgPiB1cmFnYXNoaXlhXCA7CivpmLLmr5LpnaIgPiBib3Vkb2t1bWVuXCA7CivlvIHmhbbon7kgPiBiZW5rZWlnYW5pXCA7Civkuoznt5rlvI8gPiBuaXNlbnNoaWtpXCA7Civlv4XopoHkuosgPiBoaXRzdXlvdWppXCA7CivnmbrmmI7lrrYgPiBoYXRzdW1laWthXCA7Civni6zoo4HogIUgPiBkb2t1c2Fpc2hhXCA7CivnnLrmnJvmqKkgPiBjaG91Ym91a2VuXCA7CivlhoXpgJrogIUgPiBuYWl0c3V1c2hhXCA7CivkuK3plbfmnJ8gPiBjaHV1Y2hvdWtpXCA7Civnj77osaHoq5YgPiBnZW5zaG91cm9uXCA7CivprZTooZPluKsgPiBtYWp1dHN1c2hpXCA7Civlm73lnJ/luoEgPiBrb2t1ZG9jaG91XCA7CivnqY3liIbms5UgPiBzZWtpYnVuaG91XCA7Civkv6Hlj7fnga8gPiBzaGluZ291dG91XCA7CivljYrpmbDpmb0gPiBoYW4nJ2luJyd5b3VcIDsKK+W5s+mdoumPoSA+IGhlaW1lbmt5b3VcIDsKK+WuhemFjeS+vyA+IHRha3VoYWliaW5cIDsKK+iQjue4rueXhyA+IGlzaHVrdXNob3VcIDsKK+WkqeebruWxsSA+IHRlbm1va3V6YW5cIDsKK+WBj+W5s+i2syA+IGhlbnBlaXNva3VcIDsKK+azleWtpuWjqyA+IGhvdWdha3VzaGlcIDsKK+eZuueFmeetkiA+IGhhdHN1ZW50b3VcIDsKK+WBtOmgreiRiSA+IHNva3V0b3V5b3VcIDsKK+Wkqeeah+adryA+IHRlbicnbm91aGFpXCA7CivntLDog57moLggPiBzYWlib3VrYWt1XCA7Civni6zmk4XloLQgPiBkb2t1c2Vuam91XCA7Civoo73pi7zmpa0gPiBzZWlrb3VneW91XCA7CivlhYnnhrHosrsgPiBrb3VuZXRzdWhpXCA7CivmhJvpg7flv4MgPiBhaWt5b3VzaGluXCA7CivnlJ/nlKPpq5ggPiBzZWlzYW5kYWthXCA7CivmtbfmsLTmtbQgPiBrYWlzdWl5b2t1XCA7Civku67nuYPluK8gPiBrYXJpaG91dGFpXCA7Civlj4rnrKzogIUgPiBreXV1ZGFpc2hhXCA7CivnsbPpmbjou40gPiBiZWlyaWt1Z3VuXCA7Civms6jmloflk4EgPiBjaHV1bW9uaGluXCA7CivmgZLluLjnmoQgPiBrb3Vqb3V0ZWtpXCA7CivkurrlvaLluKsgPiBuaW5neW91c2hpXCA7CivmprTmlaPlvL4gPiByeXV1c2FuZGFuXCA7Civnmbrpm7vmqZ8gPiBoYXRzdWRlbmtpXCA7Civml6fluILooZcgPiBreXV1c2hpZ2FpXCA7CivoprPopqfluK0gPiBrYW5yYW5zZWtpXCA7Civlrp/nlKjljJYgPiBqaXRzdXlvdWthXCA7CivogIPnj77lraYgPiBrb3VnZW5nYWt1XCA7CivplovlgqzkuK0gPiBrYWlzYWljaHV1XCA7CivnlKPmpa3nlYwgPiBzYW5neW91a2FpXCA7CivlurbmsJHliocgPiBzaG9taW5nZWtpXCA7CivkuI3ku5XmnKsgPiBmdXNoaW1hdHN1XCA7CivlkYbmsJfogIUgPiB1dHN1a2Vtb25vXCA7Civop6PliZblraYgPiBrYWlib3VnYWt1XCA7Civku67ln4vokawgPiBrYXJpbWFpc291XCA7Civph6PpgZPlhbcgPiB0c3VyaWRvdWd1XCA7CivnlJ/nlKPpoY0gPiBzZWlzYW5nYWt1XCA7CivmgrLliofnmoQgPiBoaWdla2l0ZWtpXCA7CivljJfmsLfmtIsgPiBob3BweW91eW91XCA7CivljYHkuozmnIggPiBqdXVuaWdhdHN1XCA7CivlkIzlrablubQgPiBkb3VnYWt1bmVuXCA7Civnj77ku6PnmoQgPiBnZW5kYWl0ZWtpXCA7CivlpKLliKTmlq0gPiB5dW1laGFuZGFuXCA7CivlsrPlj4vkvJogPiBnYWt1eXV1a2FpXCA7Civli5jlrprlsLsgPiBrYW5qb3VqaXJpXCA7CivlkIjlrr/miYAgPiBnYXNzaHVrdWpvXCA7CivooLHmg5HnmoQgPiBrb3dha3V0ZWtpXCA7CivnqbrplpPou7ggPiBrdXVrYW5qaWt1XCA7CivkuK3plpPlsaQgPiBjaHV1a2Fuc291XCA7CivnibnntJrphZIgPiB0b2treXV1c2h1XCA7CivnvbLlkI3lm70gPiBzaG9tZWlrb2t1XCA7CivmvJTliofnmoQgPiBlbmdla2l0ZWtpXCA7CivkuqTmiKblm70gPiBrb3VzZW5rb2t1XCA7CivlpJblvaLnmoQgPiBnYWlrZWl0ZWtpXCA7CivkuK3plpPlrZAgPiBjaHV1a2Fuc2hpXCA7CivmlbTmtYHlrZAgPiBzZWlyeXV1c2hpXCA7CivlhKrlhYjmoKogPiB5dXVzZW5rYWJ1XCA7Civnn63lhbXmgKUgPiB0YW5wZWlreXV1XCA7CivlvIHmhbbnuJ4gPiBiZW5rZWlqaW1hXCA7CivniaHkuLnpm6ogPiBib3RhbicneXVraVwgOwor5pac5qC85oCnID4gc2hha2FrdXNlaVwgOwor6auY6KeS56CyID4ga291a2FrdWhvdVwgOwor5q205bm06b2iID4gcmVraW5lbnJlaVwgOwor54Sh5YiG5YilID4gbXVmdW5iZXRzdVwgOwor5Yi65oif5oCnID4gc2hpZ2VraXNlaVwgOwor6YCa6KGM56iOID4gdHN1dWtvdXplaVwgOwor6LaF6Ieq54S2ID4gY2hvdXNoaXplblwgOwor5YmK5rC35qmfID4gc2FrdWh5b3VraVwgOwor5aWR57SE6ICFID4ga2VpeWFrdXNoYVwgOwor5aSc55uX6JmrID4geW90b3VtdXNoaVwgOwor5a6J5YWo546HID4gYW56ZW5yaXRzdVwgOwor5Y6f5a2Q55eHID4gZ2Vuc2hpc2hvdVwgOwor5Y6f5a2Q55eFID4gZ2Vuc2hpYnlvdVwgOwor5a2j56+A5oSfID4ga2lzZXRzdWthblwgOwor5pen5YuY5a6aID4ga3l1dWthbmpvdVwgOwor5Luu6Kq/5Y2wID4ga2FyaWNob3VpblwgOwor5LmX6LuK6LODID4gam91c2hhY2hpblwgOwor6Ziy6Jmr5YmkID4gYm91Y2h1dXphaVwgOwor5qC45oim5LqJID4ga2FrdXNlbnNvdVwgOwor55m65aOy5pelID4gaGF0c3ViYWliaVwgOwor5a6a6Laz5pWwID4gdGVpc29rdXN1dVwgOwor6YeM56We5qW9ID4gc2F0b2thZ3VyYVwgOwor6Jap5pGp6IqLID4gc2F0c3VtYWltb1wgOwor5aem6YCa572qID4ga2FudHN1dXphaVwgOwor5bGx5p6X5a2mID4gc2FucmluZ2FrdVwgOwor5Ymv6K2w6ZW3ID4gZnVrdWdpY2hvdVwgOwor6Iiq56m655eFID4ga291a3V1YnlvdVwgOwor5ryi6LaK6Z+zID4ga2FuJydldHN1b25cIDsKK+WHuuWFpeWPoyA+IGRlaXJpZ3VjaGlcIDsKK+S7rue0jeeojiA+IGthcmlub3V6ZWlcIDsKK+e3j+WQiOeahCA+IHNvdWdvdXRla2lcIDsKK+S7suijgeiAhSA+IGNodXVzYWlzaGFcIDsKK+WHuuWxleiAhSA+IHNodXR0ZW5zaGFcIDsKK+a0u+Wtl+S9kyA+IGthdHN1aml0YWlcIDsKK+iCmOmJhOegsiA+IGhpamlkZXBwb3VcIDsKK+Wvvui5oOWcsCA+IHRhaXNla2ljaGlcIDsKK+W7u+a8lealrSA+IGthaXNvdWd5b3VcIDsKK+S9jumanOeijSA+IHRlaXNob3VnYWlcIDsKK+aui+S9memhjSA+IHphbicneW9nYWt1XCA7CivmsrvnmYLms5UgPiBjaGlyeW91aG91XCA7CivmqZ/morDmsrkgPiBraWthaWFidXJhXCA7Civoh6rnmbrmgKcgPiBqaWhhdHN1c2VpXCA7Civkv6Hlj7fmiYsgPiBzaGluZ291c2h1XCA7CivmoIPmnKjnnIwgPiB0b2NoaWdpa2VuXCA7Civoqr/mn7vnpaggPiBjaG91c2FoeW91XCA7Civnt6jlubTlj7IgPiBoZW4nJ25lbnNoaVwgOwor5Zyf552A5rCRID4gZG9jaGFrdW1pblwgOwor6YCy5ZGI5pysID4gc2hpbnRlaWJvblwgOwor55Ge5a6d56ugID4genVpaG91c2hvdVwgOwor6JC96YG46ICFID4gcmFrdXNlbnNoYVwgOwor5YaF5YuY5a6aID4gdWNoaWthbmpvdVwgOwor5aWJ57SN6aGNID4gaG91bm91Z2FrdVwgOwor57Sw6IOe5a2mID4gc2FpYm91Z2FrdVwgOwor5p6c5a6f5bqXID4ga2FqaXRzdXRlblwgOwor5a6f5pmC6ZaTID4gaml0c3VqaWthblwgOwor5YWl5ryB5qipID4gbnl1dWd5b2tlblwgOwor6JGX5L2c6ICFID4gY2hvc2FrdXNoYVwgOwor6ISx6ISC5LmzID4gZGFzc2hpbnl1dVwgOwor56Wt56WA5paZID4gc2Fpc2hpcnlvdVwgOwor5YaF5byB5oW2ID4gdWNoaWJlbmtlaVwgOwor5ZCR5LiK5b+DID4ga291am91c2hpblwgOwor54mn576K6ICFID4gYm9rdXlvdXNoYVwgOwor5Y+C6Kaz5Lq6ID4gc2Fua2FuJyduaW5cIDsKK+Wdh+S4gOWMliA+IGtpbicnaXRzdWthXCA7CivlhbHlkIzogIUgPiBreW91ZG91c2hhXCA7CivmmI7mnJ3kvZMgPiBtaW5jaG91dGFpXCA7Civloanog6HmpJIgPiBzaGlva29zaG91XCA7CivogJDpnIfmgKcgPiB0YWlzaGluc2VpXCA7CivmlrDopb/omK0gPiBuecWrasSrcmFuZG9cIDsKK+S4gOaemuiynSA+IGljaGltYWlnYWlcIDsKK+S5seaatOiAhSA+IHJhbmJvdW1vbm9cIDsKK+WQhOS4gOmDqCA+IGtha3VpY2hpYnVcIDsKK+mZsOaXpeWQkSA+IGthZ2VoaW5hdGFcIDsKK+e0q+WuuOauvyA+IHNoaXNoaW5kZW5cIDsKK+W5vemciuagqiA+IHl1dXJlaWthYnVcIDsKK+aJgOW+l+iAhSA+IHNob3Rva3VzaGFcIDsKK+i7jeS6i+WKmyA+IGd1bmppcnlva3VcIDsKK+WLneiyoOS6iyA+IHNob3VidWdvdG9cIDsKK+e1puawtOi7iiA+IGt5dXVzdWlzaGFcIDsKK+e0sOiDnuWjgSA+IHNhaWJvdWhla2lcIDsKK+WPr+mAhuaApyA+IGthZ3lha3VzZWlcIDsKK+aHuOiznumHkSA+IGtlbnNob3VraW5cIDsKK+aapuW5tOm9oiA+IHJla2luZW5yZWlcIDsKK+WQq+WXveiWrCA+IGdhbnNvdXlha3VcIDsKK+imi+WtpuiAhSA+IGtlbmdha3VzaGFcIDsKK+WEquWFiOW4rSA+IHl1dXNlbnNla2lcIDsKK+WwkeaVsOiAhSA+IHNob3VzdXVzaGFcIDsKK+WFseWQjOe3miA+IGt5b3Vkb3VzZW5cIDsKK+WPiuesrOeCuSA+IGt5dXVkYWl0ZW5cIDsKK+WIhumhnuihqCA+IGJ1bnJ1aWh5b3VcIDsKK+i/keecvOmPoSA+IGtpbmdhbmt5b3VcIDsKK+mWouaVsOaXjyA+IGthbnN1dXpva3VcIDsKK+eUuuadkeWItiA+IGNob3Vzb25zZWlcIDsKK+alteaCquS6uiA+IGdva3Vha3VuaW5cIDsKK+W8leWPl+S6uiA+IGhpa2l1a2VuaW5cIDsKK+e3qOW5tOS9kyA+IGhlbicnbmVudGFpXCA7Civku6PpoZjkurogPiBkYWlnYW4nJ25pblwgOwor5pyJ5Yqb6aasID4geXV1cnlva3ViYVwgOwor6Zmk6Zuq6LuKID4gam9zZXRzdXNoYVwgOwor5aSn5a+p6ZmiID4gZGFpc2hpbicnaW5cIDsKK+eojumWoumVtyA+IHplaWthbmNob3VcIDsKK+S4remWk+S9kyA+IGNodXVrYW50YWlcIDsKK+a7i+mkiueJqSA+IGppeW91YnV0c3VcIDsKK+S5neW3peWkpyA+IGt5dXVrb3VkYWlcIDsKK+WKoOa5v+WZqCA+IGthc2hpdHN1a2lcIDsKK+aWsOiogueJiCA+IHNoaW50ZWliYW5cIDsKK+WNgeS6uuWKmyA+IGp1dW5pbnJpa2lcIDsKK+S4i+Wuv+S6uiA+IGdlc2h1a3VuaW5cIDsKK+Wkp+alreeJqSA+IG9vd2F6YW1vbm9cIDsKK+WBtOmdouimsyA+IHNva3VtZW5rYW5cIDsKK+ePvuixoeeVjCA+IGdlbnNob3VrYWlcIDsKK+i/veippumokyA+IHRzdWlzaGlrZW5cIDsKK+WFiOWkqeeahCA+IHNlbnRlbnRla2lcIDsKK+W7uuevieWutiA+IGtlbmNoaWt1a2FcIDsKK+awtOmHj+ioiCA+IHN1aXJ5b3VrZWlcIDsKK+imquihm+maiiA+IHNoaW4nJ2VpdGFpXCA7CivlhYjlpKnnl4UgPiBzZW50ZW5ieW91XCA7CivnuYHmrpbmnJ8gPiBoYW5zaG9rdWtpXCA7CivoiLnlub3pnIogPiBmdW5heXV1cmVpXCA7CivmsJHml4/mgKcgPiBtaW56b2t1c2VpXCA7CivlvqHkuobmib8gPiBnb3J5b3VzaG91XCA7CivmsLTom4fluqcgPiBtaXp1aGViaXphXCA7Civmi53lpJbnmoQgPiBoYWlnYWl0ZWtpXCA7CivliLrmiJ/liaQgPiBzaGlnZWtpemFpXCA7CivmiYDlvpfnqI4gPiBzaG90b2t1emVpXCA7Civmo4nlrp/msrkgPiBtZW5qaXRzdXl1XCA7Civli6TntprogIUgPiBraW56b2t1c2hhXCA7CivlpKnnmofliLYgPiB0ZW4nJ25vdXNlaVwgOwor5Zar54WZ6LuKID4ga2l0c3VlbnNoYVwgOwor5a6f57+S55SfID4gamlzc2h1dXNlaVwgOwor5L2T57O755qEID4gdGFpa2VpdGVraVwgOwor6YGK6IiI56iOID4geXV1a3lvdXplaVwgOwor5L+u6YGT5aOrID4gc2h1dWRvdXNoaVwgOwor5paw5pWZ5b6SID4gc2hpbmt5b3V0b1wgOwor5Y2a6Kan5LyaID4gaGFrdXJhbmthaVwgOwor5YmN55m76YyyID4gemVudG91cm9rdVwgOwor5p2x5rSL5a2mID4gdG91eW91Z2FrdVwgOwor5aSn5bCG6LuNID4gZGFpc2hvdWd1blwgOwor5L+h5Y+35aGUID4gc2hpbmdvdXRvdVwgOwor5Y6f5a2Q5qC4ID4gZ2Vuc2hpa2FrdVwgOwor5aSn5YWs5Zu9ID4gdGFpa291a29rdVwgOwor5LyR5oGv5omAID4ga3l1dXNva3Vqb1wgOwor6auY6Zqc5a6zID4ga291c2hvdWdhaVwgOwor5rGC6YGT6ICFID4ga3l1dWRvdXNoYVwgOwor5aSp5a6I6ZajID4gdGVuc2h1a2FrdVwgOwor5Lm+54mp5bGLID4ga2FuYnV0c3V5YVwgOwor5rC06YmE56CyID4gbWl6dWRlcHBvdVwgOwor5Y2D5LiJ5bGLID4gc2VubWl0c3V5YVwgOwor5YWl5riv56iOID4gbnl1dWtvdXplaVwgOwor6YqA6KGM5qWtID4gZ2lua291Z3lvdVwgOwor5LyR5rOK5omAID4ga3l1dWhha3Vqb1wgOwor5Lq65bel55qEID4gamlua291dGVraVwgOwor6IG06KaW6ICFID4gY2hvdXNoaXNoYVwgOwor5Lih5Zu96KqeID4gcnlvdWtva3Vnb1wgOwor6auY54Cs6IifID4gdGFrYXNlYnVuZVwgOwor57WE57mU5ZCNID4gc29zaGlraW1laVwgOwor5ZCM5pyf5byPID4gZG91a2lzaGlraVwgOwor5aSn6IW46I+MID4gZGFpY2hvdWtpblwgOwor5Y2K54uC5LmxID4gaGFua3lvdXJhblwgOwor6LSF5rKi5ZOBID4gemVpdGFrdWhpblwgOwor5LiA5pys6YGTID4gaXBwb25taWNoaVwgOwor5Yip5r2k546HID4gcmlqdW5yaXRzdVwgOwor6L+r5a6z6ICFID4gaGFrdWdhaXNoYVwgOwor5aSn5qW15q6/ID4gZGFpZ29rdWRlblwgOwor6YeN6YeP5oSfID4ganV1cnlvdWthblwgOwor576O5a2m55qEID4gYmlnYWt1dGVraVwgOwor5YaZ55Sf5bizID4gc2hhc2VpY2hvdVwgOwor5buD5qOE54mpID4gaGFpa2lidXRzdVwgOwor6Zu756OB55+zID4gZGVuamlzaGFrdVwgOwor5YaZ55Sf5biWID4gc2hhc2VpY2hvdVwgOwor6YCg5Za254mpID4gem91ZWlidXRzdVwgOwor5oqA6KGT6Z2iID4gZ2lqdXRzdW1lblwgOwor5LuV572u6ICFID4gc2hpb2tpbW9ub1wgOwor5pmC5Yi76KGoID4gamlrb2t1aHlvdVwgOwor5q+S56eR5a2mID4gZG9rdWthZ2FrdVwgOwor55u06KGM5L6/ID4gY2hva2tvdWJpblwgOwor5omL5YaF6IG3ID4gdGVuYWlzaG9rdVwgOwor5peF6KGM5YWIID4gcnlva291c2FraVwgOwor5qC45by+6aCtID4ga2FrdWRhbnRvdVwgOwor56m66ZuG5ZCIID4ga3V1c2h1dWdvdVwgOwor54m56Kix5paZID4gdG9ra3lvcnlvdVwgOwor5Li75oOF55qEID4gc2h1am91dGVraVwgOwor5pu06KGj5a6kID4ga291aXNoaXRzdVwgOwor5Lya5bit6IazID4ga2Fpc2VraXplblwgOwor5Y2D5LiA5aScID4gc2VuJydpY2hpeWFcIDsKK+ecn+eUsOe0kCA+IHNhbmFkYWhpbW9cIDsKK+mBk+WtpuiAhSA+IGRvdWdha3VzaGFcIDsKK+aPrueZuuaApyA+IGtpaGF0c3VzZWlcIDsKK+WHuuizh+mHkSA+IHNodXNzaGlraW5cIDsKK+eJp+e+iueKrCA+IGJva3V5b3VrZW5cIDsKK+iSuOeVmeawtCA+IGpvdXJ5dXVzdWlcIDsKK+etieWcp+e3miA+IHRvdWF0c3VzZW5cIDsKK+avkuWRs+W9uSA+IGRva3VtaXlha3VcIDsKK+WEquiJr+W6lyA+IHl1dXJ5b3V0ZW5cIDsKK+WGheiKuOiAhSA+IHVjaGlnZWlzaGFcIDsKK+aCqumBlOiAhSA+IHdhcnVkYXNzaGFcIDsKK+S4iemdoumPoSA+IHNhbm1lbmt5b3VcIDsKK+eLuOiVjum6piA+IHRhbnVraXNvYmFcIDsKK+ijj+abuOS6uiA+IHVyYWdha2luaW5cIDsKK+eJueWkp+WPtyA+IHRva3VkYWlnb3VcIDsKK+e1hOe5lOS9kyA+IHNvc2hpa2l0YWlcIDsKK+ePvuWun+WMliA+IGdlbmppdHN1a2FcIDsKK+WkmuebrueahCA+IHRhbW9rdXRla2lcIDsKK+WwhuadpeaApyA+IHNob3VyYWlzZWlcIDsKK+S4gOS6uuiFuSA+IGhpdG9yaWJhcmFcIDsKK+eUu+S4gOWMliA+IGtha3VpdHN1a2FcIDsKK+mHjemHkeWxniA+IGp1dWtpbnpva3VcIDsKK+eri+S8muS6uiA+IHRhY2hpYWluaW5cIDsKK+attOWPsuS4iiA+IHJla2lzaGlqb3VcIDsKK+ijvemJhOaJgCA+IHNlaXRldHN1am9cIDsKK+S4gOS6uuiAhSA+IGhpdG9yaW1vbm9cIDsKK+mBruaWreWjgSA+IHNoYWRhbnBla2lcIDsKK+eJueWjsuWgtCA+IHRva3ViYWlqb3VcIDsKK+WRiuefpeadvyA+IGtva3VjaGliYW5cIDsKK+ayluepjeacnyA+IGNodXVzZWtpa2lcIDsKK+S7ruiomOWFpSA+IGthcmlraW55dXVcIDsKK+S/rumBk+S8miA+IHNodXVkb3VrYWlcIDsKK+ahn+air+WtkCA+IHNhbmJhc2hpZ29cIDsKK+eVquWPt+acrSA+IGJhbmdvdWZ1ZGFcIDsKK+WwkeaVsOeCuSA+IHNob3VzdXV0ZW5cIDsKK+WxseeMq+W6pyA+IHlhbWFuZWtvemFcIDsKK+WvneWPsOWIuCA+IHNoaW5kYWlrZW5cIDsKK+awtOmKgOafsSA+IHN1aWdpbmNodXVcIDsKK+i1pOa1t+S6gCA+IGFrYXVtaWdhbWVcIDsKK+mqqOebuOWtpiA+IGtvc3NvdWdha3VcIDsKK+Wkp+iHvOatryA+IGRhaWt5dXVzaGlcIDsKK+awkeaXj+WPsiA+IG1pbnpva3VzaGlcIDsKK+S6lOeonOmDrSA+IGdvcnlvdWtha3VcIDsKK+aJgeW5s+i2syA+IGhlbnBlaXNva3VcIDsKK+Wlkee0hOabuCA+IGtlaXlha3VzaG9cIDsKK+W9seazleW4qyA+IGthZ2Vib3VzaGlcIDsKK+mHkeWJm+efsyA+IGtvbmdvdXNla2lcIDsKK+eJueioseW6gSA+IHRva2t5b2Nob3VcIDsKK+eJueWjsuWTgSA+IHRva3ViYWloaW5cIDsKK+S4i+iri+iyoCA+IHNoaXRhdWtlb2lcIDsKK+WPjuepq+acnyA+IHNodXVrYWt1a2lcIDsKK+mZuOaIpumaiiA+IHJpa3VzZW50YWlcIDsKK+e1puawtOeuoSA+IGt5dXVzdWlrYW5cIDsKK+elnuenmOeahCA+IHNoaW5waXRla2lcIDsKK+mHjemHj+WZuCA+IGp1dXJ5b3V0b25cIDsKK+WPjuepq+aZgiA+IHNodXVrYWt1amlcIDsKK+mrmOWcp+e4riA+IGtvdWFzc2h1a3VcIDsKK+iRl+S9nOaoqSA+IGNob3Nha3VrZW5cIDsKK+S7o+Wft+ihjCA+IGRhaXNoaWtrb3VcIDsKK+mZkOWumueahCA+IGdlbnRlaXRla2lcIDsKK+mrmOWcp+e3miA+IGtvdWF0c3VzZW5cIDsKK+S7ruaOoeeUqCA+IGthcmlzYWl5b3VcIDsKK+aUuemdqeiAhSA+IGthaWtha3VzaGFcIDsKK+WcsOS4i+mJhCA+IGNoaWthdGV0c3VcIDsKK+WwiueOi+WFmiA+IHNvbicnbm91dG91XCA7CivllqvnhZnogIUgPiBraXRzdWVuc2hhXCA7CivlnJ/kv7XpmpsgPiBkb2h5b3VnaXdhXCA7CivlpKflsbHnjKsgPiBvb3lhbWFuZWtvXCA7CivoiKrnqbrlraYgPiBrb3VrdXVnYWt1XCA7Civljp/mnZDmlpkgPiBnZW56YWlyeW91XCA7Civlh7rnlKPmlbAgPiBzaHVzc2Fuc3V1XCA7CivmrITlj4LnhacgPiByYW5zYW5zaG91XCA7Civlh7rnlJ/mlbAgPiBzaHVzc2Vpc3V1XCA7CivlrojlgpnnjocgPiBzaHViaXJpdHN1XCA7CivmlofoirjlraYgPiBidW5nZWlnYWt1XCA7CivntIXlhqDps6UgPiBrb3VrYW5jaG91XCA7CivliJ3loLTmiYAgPiBoYXRzdWJhc2hvXCA7CivkubPnirbmtrIgPiBueXV1am91ZWtpXCA7CivljZjlnZDlvI8gPiB0YW56YXNoaWtpXCA7CivlnKjnlZnmsJEgPiB6YWlyeXV1bWluXCA7Civnvo7poZTooZMgPiBiaWdhbmp1dHN1XCA7Civnha7msrjlmaggPiBzaGFmdXRzdWtpXCA7CivlhKroia/lk4EgPiB5dXVyeW91aGluXCA7CivmiKbooZPlrrYgPiBzZW5qdXRzdWthXCA7Civku5XkuovluKsgPiBzaGlnb3Rvc2hpXCA7CivnhKHnlJ/niakgPiBtdXNlaWJ1dHN1XCA7Civpm5HmloflrrYgPiB6YXRzdWJ1bmthXCA7CivlkIzoqr/ogIUgPiBkb3VjaG91c2hhXCA7CivkuojntITluK0gPiB5b3lha3VzZWtpXCA7Civph5Hnn7PmlocgPiBraW5zZWtpYnVuXCA7Civnt7Tnv5LoiLkgPiByZW5zaHV1c2VuXCA7CivmuKzmt7HmqZ8gPiBzb2t1c2hpbmtpXCA7CivnmbropovmlpkgPiBoYWtrZW5yeW91XCA7CivooZLlrabogIUgPiBnZW5nYWt1c2hhXCA7CivlsI/mlbDngrkgPiBzaG91c3V1dGVuXCA7CivlvJXlh7rniakgPiBoaWtpZGVtb25vXCA7CivplovmnrblvI8gPiBrYWlrYXNoaWtpXCA7CivljIXlkKvnmoQgPiBob3VnYW50ZWtpXCA7CivlkIjlpY/oqr8gPiBnYXNzb3VjaG91XCA7CivlhbHlkozlm70gPiBreW91d2Frb2t1XCA7Civlr6nliKTlk6EgPiBzaGlucGFuJydpblwgOwor5riF5pyd5L2TID4gc2VpY2hvdXRhaVwgOwor6KGo5pel5pysID4gb21vdGVuaWhvblwgOwor54++5Luj5YqHID4gZ2VuZGFpZ2VraVwgOwor5Y2z5Yq56JasID4gc29ra291eWFrdVwgOwor5pel6YGL5YuVID4gbmljaGl1bmRvdVwgOwor6IG36ZqO5Yi2ID4gc2hva2thaXNlaVwgOwor5YmN6LuK6Lu4ID4gemVuc2hhamlrdVwgOwor5LiK5piH57eaID4gam91c2hvdXNlblwgOwor5qmf5a+G5oCnID4ga2ltaXRzdXNlaVwgOwor5piO57Sw6KGoID4gbWVpc2FpaHlvdVwgOwor5L+u6L6e5a2mID4gc2h1dWppZ2FrdVwgOwor5ZCN6KqJ6IG3ID4gbWVpeW9zaG9rdVwgOwor5Zub5aSp546LID4gc2hpdGVuJydub3VcIDsKK+S6uuebuOWtpiA+IG5pbnNvdWdha3VcIDsKK+aOiOalreaWmSA+IGp1Z3lvdXJ5b3VcIDsKK+mJm+S4reavkiA+IGVuY2h1dWRva3VcIDsKK+ayu+eZguS7oyA+IGNoaXJ5b3VkYWlcIDsKK+W4r+m7hOiJsiA+IHRhaW91c2hva3VcIDsKK+i1t+W3peW8jyA+IGtpa291c2hpa2lcIDsKK+WPluW+l+iAhSA+IHNodXRva3VzaGFcIDsKK+aCquW5s+etiSA+IGFrdWJ5b3Vkb3VcIDsKK+acseWtkOWtpiA+IHNodXNoaWdha3VcIDsKK+i7vemHkeWxniA+IGtlaWtpbnpva3VcIDsKK+WBpeiEmuWutiA+IGtlbmt5YWt1a2FcIDsKK+WFiOimmuiAhSA+IHNlbmtha3VzaGFcIDsKK+S4jeaVtOiEiCA+IGZ1c2VpbXlha3VcIDsKK+S7sumWk+WGhSA+IG5ha2FtYXVjaGlcIDsKK+WwhuadpeWDjyA+IHNob3VyYWl6b3VcIDsKK+S9juaVmeS8miA+IHRlaWt5b3VrYWlcIDsKK+aAp+ihneWLlSA+IHNlaXNob3Vkb3VcIDsKK+e0meiKneWxhSA+IGthbWlzaGliYWlcIDsKK+S9nOaIkOiAhSA+IHNha3VzZWlzaGFcIDsKK+WbnuaYpeWJpCA+IGthaXNodW56YWlcIDsKK+a2iOiyu+mHjyA+IHNob3VoaXJ5b3VcIDsKK+S4puijveWTgSA+IG5hbWlzZWloaW5cIDsKK+WwguacieaoqSA+IHNlbicneXV1a2VuXCA7CivkuZfppqzpnbQgPiBqb3ViYWd1dHN1XCA7Civlh7ros4fogIUgPiBzaHVzc2hpc2hhXCA7CivljJbnn7PlraYgPiBrYXNla2lnYWt1XCA7CivogbToqLrlmaggPiBjaG91c2hpbmtpXCA7CivnjKnnjKnooIUgPiBzaG91am91YmFlXCA7CivkubHmlbDooaggPiByYW5zdXVoeW91XCA7Civln4vnq4vlnLAgPiB1bWV0YXRlY2hpXCA7CivlhbHlkIzmgKcgPiBreW91ZG91c2VpXCA7Civnhp/nt7TogIUgPiBqdWt1cmVuc2hhXCA7CivmnbHljJfmnbEgPiB0b3Vob2t1dG91XCA7CivnlJ/kvZPohpwgPiBzZWl0YWltYWt1XCA7CivmsJHooYbpp4UgPiBtaW5zaHV1ZWtpXCA7Civlroflrpnpo58gPiB1Y2h1dXNob2t1XCA7Civml6XlhYnmtbQgPiBuaWtrb3V5b2t1XCA7Civku6PmlbDlraYgPiBkYWlzdXVnYWt1XCA7Civog73lvbnogIUgPiBub3V5YWt1c2hhXCA7CivmspbnqY3lnJ8gPiBjaHV1c2VraWRvXCA7CivlvJXlipvlnI8gPiBpbnJ5b2t1a2VuXCA7CivkuK3mipjluL0gPiBuYWthb3JlYm91XCA7CivpnZ7mtLvli5UgPiBoaWthdHN1ZG91XCA7CivkuI3lp4vmnKsgPiBmdXNoaW1hdHN1XCA7CivmnInlip/nq6AgPiB5dXVrb3VzaG91XCA7CivmipXnpajogIUgPiB0b3VoeW91c2hhXCA7CivmlLvmkoPpmoogPiBrb3VnZWtpdGFpXCA7CivloLHlkYrogIUgPiBob3Vrb2t1c2hhXCA7CivnmbrooajogIUgPiBoYXBweW91c2hhXCA7Civmg6PnrqHpoJggPiBzb3VrYW5yeW91XCA7Civpgbjmip7ogqIgPiBzZW50YWt1c2hpXCA7CivmioDooZPogIUgPiBnaWp1dHN1c2hhXCA7CivpgLLmrannmoQgPiBzaGlucG90ZWtpXCA7Civln4volLXph48gPiBtYWl6b3VyeW91XCA7Civku5Xkuovlj7AgPiBzaGlnb3RvZGFpXCA7CivmgKfmiJDnhp8gPiBzZWlzZWlqdWt1XCA7CivmsLjlubTplpMgPiBuYWdhbmVua2FuXCA7Civog4zmlZnogIUgPiBoYWlreW91c2hhXCA7CivmiYvlt6Xmpa0gPiBzaHVrb3VneW91XCA7CivnlLPoq4vogIUgPiBzaGluc2Vpc2hhXCA7CivmvJTlh7rlrrYgPiBlbnNodXRzdWthXCA7CivkuIDlronlv4MgPiBoaXRvYW5zaGluXCA7CivooYzmpb3lnLAgPiBrb3VyYWt1Y2hpXCA7Civpo5/nrqHms5UgPiBzaG9ra2FuaG91XCA7CivoprPmuKzoiLkgPiBrYW5zb2t1c2VuXCA7Civnq7blkIjogIUgPiBreW91Z291c2hhXCA7CivlgaXohLPliaQgPiBrZW4nJ25vdXphaVwgOwor6YeR5Ymb5p2WID4ga29uZ291ZHp1ZVwgOwor6Kyd6IKJ56WtID4gc2hhbmlrdXNhaVwgOwor6KSH5YaZ57SZID4gZnVrdXNoYXNoaVwgOwor6YCx5YiK6KqMID4gc2h1dWthbnNoaVwgOwor5Y+O56iO5omAID4gc2h1dXplaXNob1wgOwor6YCa6KGM5Lq6ID4gdHN1dWtvdW5pblwgOwor6ZGR5a6a5paZID4ga2FudGVpcnlvdVwgOwor5ZCM5LiA5Lq6ID4gZG91aXRzdW5pblwgOwor6auY5r2u57eaID4ga291Y2hvdXNlblwgOwor5rW46YCP5oCnID4gc2hpbnRvdXNlaVwgOwor6KGA6Imy57SgID4ga2Vzc2hpa2lzb1wgOwor6ISz6ZyH55uqID4gbm91c2hpbnRvdVwgOwor6LOD6LK45Lq6ID4gY2hpbnRhaW5pblwgOwor5Ye655Sf5ZywID4gc2h1c3NlaWNoaVwgOwor57e057+S55SfID4gcmVuc2h1dXNlaVwgOwor5bqn5bit6KGoID4gemFzZWtpaHlvdVwgOwor6Kaz5ris6ICFID4ga2Fuc29rdXNoYVwgOwor5Zyw542E6ICzID4gamlnb2t1bWltaVwgOwor6auY57Sa5ZOBID4ga291a3l1dWhpblwgOwor6YGg5pel54K5ID4gZW5qaXRzdXRlblwgOwor5ryi5a2m6ICFID4ga2FuZ2FrdXNoYVwgOwor54mn5aC06bOlID4gbWFraWJhdG9yaVwgOwor5q275YiR5ZuaID4gc2hpa2Vpc2h1dVwgOwor5rC356CC57OWID4ga29vcml6YXRvdVwgOwor5YWx6JGX6ICFID4ga3lvdWNob3NoYVwgOwor6aqo6auE54KOID4ga290c3V6dWllblwgOwor5pS+54mn5ZywID4gaG91Ym9rdWNoaVwgOwor55m96KGA55CDID4gaGFra2Vra3l1dVwgOwor5rq25bKp5rWBID4geW91Z2Fucnl1dVwgOwor5q275YK36ICFID4gc2hpc2hvdXNoYVwgOwor5byP6YOo5a6YID4gc2hpa2lidWthblwgOwor6ISG5byx5oCnID4gemVpamFrdXNlaVwgOwor57Wm5rC05qCTID4ga3l1dXN1aXNlblwgOwor6Kaz5ris57ayID4ga2Fuc29rdW1vdVwgOwor5oCl6KGM5Yi4ID4ga3l1dWtvdWtlblwgOwor5b6h6Z6t5pK7ID4gZ29iZW50YXRzdVwgOwor57eR5Y2B5a2XID4gcnlva3VqdXVqaVwgOwor5rWB57ea5b2iID4gcnl1dXNlbmtlaVwgOwor5Y6f5aeL55qEID4gZ2Vuc2hpdGVraVwgOwor54mn576K5ZywID4gYm9rdXlvdWNoaVwgOwor5Z+8546J55yMID4gc2FpdGFtYWtlblwgOwor5pS75pKD6LuNID4ga291Z2VraWd1blwgOwor5pW16Imm6ZqKID4gdGVraWthbnRhaVwgOwor6aOf5Zmo5qOaID4gc2hva2tpZGFuYVwgOwor5Lyd6YCB5YWIID4gZGVuc291c2FraVwgOwor56iy6I236a6oID4gaW5hcml6dXNoaVwgOwor5b6p6Kq/5ZmoID4gZnVrdWNob3VraVwgOwor5aSn55eF5Lq6ID4gZGFpYnlvdW5pblwgOwor5YWx5Yq06ICFID4ga3lvdXJvdXNoYVwgOwor55eF5Y6f6I+MID4gYnlvdWdlbmtpblwgOwor5pyd6a6u5Lq6ID4gY2hvdXNlbmppblwgOwor5YSq6LaK5qipID4geXV1ZXRzdWtlblwgOwor5LiA5Lq65peFID4gaGl0b3JpdGFiaVwgOwor5paH5a2m6KuWID4gYnVuZ2FrdXJvblwgOwor6IKJ5oSf55qEID4gbmlra2FudGVraVwgOwor5oCl6KGM5L6/ID4ga3l1dWtvdWJpblwgOwor55Sy5LmZ5LiZID4ga291b3RzdWhlaVwgOwor5Lit5rOi6ZW3ID4gY2h1dWhhY2hvdVwgOwor54Sh6IG36ICFID4gbXVzaG9rdXNoYVwgOwor5Y+O56iO5a6YID4gc2h1dXplaWthblwgOwor5a2m6YOo6ZW3ID4gZ2FrdWJ1Y2hvdVwgOwor6LaF5qC85a2QID4gY2hvdWtvdXNoaVwgOwor6ZeK6JGJ5qi5ID4ga2F0c3V5b3VqdVwgOwor5YWx6bO06ICFID4ga3lvdW1laXNoYVwgOwor54Sh5L2T54mpID4gbXV0YWlidXRzdVwgOwor5rWu5rCX5aWzID4gdXdha2lvbicnbmFcIDsKK+eZu+ernOmWgCA+IHRvdXJ5dXVtb25cIDsKK+S4gOe+qeeahCA+IGljaGlnaXRla2lcIDsKK+esrOS4gOadoSA+IGRhaWljaGlqb3VcIDsKK+WGheeUqOiWrCA+IG5haXlvdXlha3VcIDsKK+W6p+aomei7uCA+IHphaHlvdWppa3VcIDsKK+etlua6kOWcsCA+IHNha3VnZW5jaGlcIDsKK+WEqueUn+WtpiA+IHl1dXNlaWdha3VcIDsKK+WIhumaiumVtyA+IGJ1bnRhaWNob3VcIDsKK+WJjeWAn+mHkSA+IHplbnNoYWtraW5cIDsKK+S7suijgeS6uiA+IGNodXVzYWluaW5cIDsKK+i1pOmBk+elrSA+IHNla2lkb3VzYWlcIDsKK+adseWMl+WkpyA+IHRvdWhva3VkYWlcIDsKK+Wun+iovOirliA+IGppc3Nob3Vyb25cIDsKK+S4jeeHg+eJqSA+IGZ1bmVuYnV0c3VcIDsKK+WFqOW8t+miqCA+IHplbmt5b3VmdXVcIDsKK+Wwj+WkqeWcsCA+IHNob3V0ZW5jaGlcIDsKK+mFoumFuOWhqSA+IHNha3VzYW4nJ2VuXCA7CivotoXpn7PpgJ8gPiBjaG91b25zb2t1XCA7Civlr4blkYrogIUgPiBtaWtrb2t1c2hhXCA7CivliIbpoZ7lraYgPiBidW5ydWlnYWt1XCA7Civlvavph5HluKsgPiBjaG91a2luc2hpXCA7CivlhbHpgJroqp4gPiBreW91dHN1dWdvXCA7CivnpZ7np5jlraYgPiBzaGluaGlnYWt1XCA7CivkuIDmnKzmqYsgPiBpcHBvbmJhc2hpXCA7CivnrKzkupTliJcgPiBkYWlnb3JldHN1XCA7CivntLPlo6vnlKggPiBzaGluc2hpeW91XCA7CivkuIDmnprlsqkgPiBpY2hpbWFpaXdhXCA7CivmtYHnt5rlnosgPiByeXV1c2Vua2VpXCA7CivkuIDmnKzmp40gPiBpcHBvbicneWFyaVwgOwor5Zuw56qu6ICFID4ga29ua3l1dXNoYVwgOwor5Yas5pSv5bqmID4gZnV5dWppdGFrdVwgOwor5YWx5ZCM5L2TID4ga3lvdWRvdXRhaVwgOwor5bCR5pWw5YWaID4gc2hvdXN1dXRvdVwgOwor5YWo5rCR6KGGID4gemVubWluc2h1dVwgOwor55u45Y+N55qEID4gc291aGFudGVraVwgOwor5rWu6YGK54mpID4gZnV5dXVidXRzdVwgOwor5Yq05YON55yBID4gcm91ZG91c2hvdVwgOwor5a2r5oGv5a2QID4gbWFnb211c3Vrb1wgOwor5Yq05YON55u4ID4gcm91ZG91c2hvdVwgOwor5L6b6aSK5aGaID4ga3V5b3VkenVrYVwgOwor6aeG6YCQ6ImmID4ga3VjaGlrdWthblwgOwor57Sg5Lq655uuID4gc2hpcm91dG9tZVwgOwor6YCx5YiK57SZID4gc2h1dWthbnNoaVwgOwor57K+6IKJ5bqXID4gc2VpbmlrdXRlblwgOwor5Y+M5q676aGeID4gc291a2FrdXJ1aVwgOwor5aWo5Yqx6YeRID4gc2hvdXJlaWtpblwgOwor5LiN57K+6autID4gYnVzaG91aGlnZVwgOwor6IO95YuV55qEID4gbm91ZG91dGVraVwgOwor57SE5Y2K5YiGID4geWFrdWhhbmJ1blwgOwor57ay5ryB5qWtID4gYW1pZ3lvZ3lvdVwgOwor5o6I5qWt5LitID4ganVneW91Y2h1dVwgOwor5bKp55+z5ZyPID4gZ2Fuc2VraWtlblwgOwor5b2555uu5p+EID4geWFrdW1lZ2FyYVwgOwor5LiA5pys5p2+ID4gaXBwb25tYXRzdVwgOwor5aGp54WO6aSFID4gc2hpb3NlbmJlaVwgOwor5LiN5aaC5biwID4gaG90b3RvZ2lzdVwgOwor5Y2X44CF6KW/ID4gbmFuJyduYW5zZWlcIDsKK+WcqOWtpueUnyA+IHphaWdha3VzZWlcIDsKK+WJg+WIgOegpSA+IGthbWlzb3JpZG9cIDsKK+WkmueZuuaApyA+IHRhaGF0c3VzZWlcIDsKK+WEqui2iuaEnyA+IHl1dWV0c3VrYW5cIDsKK+eJuee0muWTgSA+IHRva2t5dXVoaW5cIDsKK+S4ieinkumMkCA+IHNhbmtha3VzdWlcIDsKK+W/heayu+iWrCA+IGhpdGNoaXlha3VcIDsKK+WNmOaMr+WLlSA+IHRhbnNoaW5kb3VcIDsKK+S4u+W8teiAhSA+IHNodWNob3VzaGFcIDsKK+aOkuS7luW+iyA+IGhhaXRhcml0c3VcIDsKK+WEqui2iuaApyA+IHl1dWV0c3VzZWlcIDsKK+W9ouaFi+WtpiA+IGtlaXRhaWdha3VcIDsKK+W3pealreeVjCA+IGtvdWd5b3VrYWlcIDsKK+W3pealreeUqCA+IGtvdWd5b3V5b3VcIDsKK+epjeS5sembsiA+IHNla2lyYW4nJ3VuXCA7Civmi53oprPmlpkgPiBoYWlrYW5yeW91XCA7CivpoJjmtbfnt5ogPiByeW91a2Fpc2VuXCA7Civop5LliIbmlaMgPiBrYWt1YnVuc2FuXCA7CivkuI3opovorZggPiBmdWtlbnNoaWtpXCA7CivlpKflrabnlJ8gPiBkYWlnYWt1c2VpXCA7CivmnIDljJfnq68gPiBzYWlob2t1dGFuXCA7CivooajpnaLkuIogPiBoeW91bWVuam91XCA7Civmv4PnoavphbggPiBub3VyeXV1c2FuXCA7CivmsLTljJbniakgPiBzdWlrYWJ1dHN1XCA7CivotoXkvJ3lsI4gPiBjaG91ZGVuZG91XCA7CivmloflrabogIUgPiBidW5nYWt1c2hhXCA7Civnspfnm67pm6ogPiB6YXJhbWV5dWtpXCA7Civlj7LlrabogIUgPiBzaGlnYWt1c2hhXCA7Civlm73msJHou40gPiBrb2t1bWluZ3VuXCA7CivlkoDlmrznrYsgPiBzb3NoYWt1a2luXCA7CivkvY/miYDpjLIgPiBqdXVzaG9yb2t1XCA7Civpp5DlgZzou4ogPiBjaHV1dGVpc2hhXCA7CivmpI3mqLnnpa0gPiBzaG9rdWp1c2FpXCA7Civop5LpgJ/luqYgPiBrYWt1c29rdWRvXCA7CivlpKfotaTmlpEgPiBkYWlzZWtpaGFuXCA7CivlnLDkuK3mtbcgPiBjaGljaHV1a2FpXCA7CivllYblo7LkurogPiBzaG91YmFpbmluXCA7Civlj5flj5bkurogPiB1a2V0b3JpbmluXCA7CivopovmnKzluIIgPiBtaWhvbicnaWNoaVwgOwor5oqV56Wo5qipID4gdG91aHlvdWtlblwgOwor5o6i54Wn54GvID4gdGFuc2hvdXRvdVwgOwor5YWo5Yud6LuNID4gemVuc2hvdWd1blwgOwor57Wm5rC05aGUID4ga3l1dXN1aXRvdVwgOwor5r2u5bmy54upID4gc2hpb2hpZ2FyaVwgOwor54mh576K5bqnID4gb2hpdHN1aml6YVwgOwor5Y+O56iO5Lq6ID4gc2h1dXplaW5pblwgOwor6YG45oqe5qipID4gc2VudGFrdWtlblwgOwor5o6h54K56KGoID4gc2FpdGVuaHlvdVwgOwor5bel5bel5ZubID4ga3Vua3Vuc2hpaVwgOwor6KiY6Yyy55qEID4ga2lyb2t1dGVraVwgOwor6LGG5p2/6YqAID4gbWFtZWl0YWdpblwgOwor57W25a++6YePID4gemV0dGFpcnlvdVwgOwor5p2x5YyX5Lq6ID4gdG91aG9rdWppblwgOwor5rW36LuN55yBID4ga2FpZ3Vuc2hvdVwgOwor6YeR5Ymb5YqbID4ga29uZ291cmlraVwgOwor55yf5pqX6ZeHID4gbWFrdXJheWFtaVwgOwor5qSc55ar5a6YID4ga2VuJydla2lrYW5cIDsKK+WvvuixoeWkliA+IHRhaXNob3VnYWlcIDsKK+aWsOa9n+ecjCA+IG5paWdhdGFrZW5cIDsKK+mXh+WGjeiyqSA+IHlhbWlzYWloYW5cIDsKK+WLleeJqeaEmyA+IGRvdWJ1dHN1YWlcIDsKK+S9v+eUqOmHjyA+IHNoaXlvdXJ5b3VcIDsKK+iXgeWNiue0mSA+IHdhcmFiYW5zaGlcIDsKK+aWsOmWi+WcsCA+IHNoaW5rYWljaGlcIDsKK+mdnuW4uOitmCA+IGhpam91c2hpa2lcIDsKK+S4gOmdouimsyA+IGljaGltZW5rYW5cIDsKK+euoee1g+alvSA+IGthbmdlbmdha3VcIDsKK+acgOaBteWbvSA+IHNhaWtlaWtva3VcIDsKK+aFouaAp+eahCA+IG1hbnNlaXRla2lcIDsKK+aOqOioiOWtpiA+IHN1aWtlaWdha3VcIDsKK+WJr+mgmOS6iyA+IGZ1a3VyeW91amlcIDsKK+WNsOWIt+iAhSA+IGluc2F0c3VzaGFcIDsKK+iAkOeBq+WKmyA+IHRhaWthcnlva3VcIDsKK+WPi+emheafkyA+IHl1dXplbnpvbWVcIDsKK+WgseWRiuabuCA+IGhvdWtva3VzaG9cIDsKK+mqqOagvOetiyA+IGtva2tha3VraW5cIDsKK+iXu+WhqeiNiSA+IG1vc2hpb2d1c2FcIDsKK+mbhuWkp+aIkCA+IHNodXV0YWlzZWlcIDsKK+aFouaAp+eXhSA+IG1hbnNlaWJ5b3VcIDsKK+Wuo+iogOeahCA+IHNlbmdlbnRla2lcIDsKK+WFremHjeWljyA+IHJva3VqdXVzb3VcIDsKK+mfs+mfv+WtpiA+IG9ua3lvdWdha3VcIDsKK+W3pealrea4ryA+IGtvdWd5b3Vrb3VcIDsKK+e3j+i+nuiBtyA+IHNvdWppc2hva3VcIDsKK+i7jeWbo+mVtyA+IGd1bmRhbmNob3VcIDsKK+W5tOmVt+iAhSA+IG5lbmNob3VzaGFcIDsKK+e3j+WLmeWxgCA+IHNvdW11a3lva3VcIDsKK+mdouebuOethiA+IG1lbnNvdWZ1ZGVcIDsKK+aVo+atqemBkyA+IHNhbnBvbWljaGlcIDsKK+ekuuWcp+ioiCA+IHNoaWF0c3VrZWlcIDsKK+S4lue0gOacqyA+IHNlaWtpbWF0c3VcIDsKK+esrOS4ieWbvSA+IGRhaXNhbmdva3VcIDsKK+aKleelqOaVsCA+IHRvdWh5b3VzdXVcIDsKK+S9leeuh+aciCA+IG5hbmthZ2V0c3VcIDsKK+eUs+iri+abuCA+IHNoaW5zZWlzaG9cIDsKK+iFueiGnOeCjiA+IGZ1a3VtYWt1ZW5cIDsKK+a4qeazieeUuiA+IG9uc2VubWFjaGlcIDsKK+S4u+WLleeahCA+IHNodWRvdXRla2lcIDsKK+S4jeaWh+W+iyA+IGZ1YnVucml0c3VcIDsKK+W8geW9k+eusSA+IGJlbnRvdWJha29cIDsKK+WkqeS9k+WtpiA+IHRlbnRhaWdha3VcIDsKK+WNsOWIt+e0mSA+IGluc2F0c3VzaGlcIDsKK+S9juaIkOmVtyA+IHRlaXNlaWNob3VcIDsKK+S/r+S7sOinkiA+IGZ1Z3lvdWtha3VcIDsKK+aUvueGseWZqCA+IGhvdW5ldHN1a2lcIDsKK+e0lOiJr+WTgSA+IGp1bnJ5b3VoaW5cIDsKK+WCmeW+jOihqCA+IGJpbmdvb21vdGVcIDsKK+aal+auuuiAhSA+IGFuc2F0c3VzaGFcIDsKK+W5s+aVmeWToSA+IGhpcmFreW91aW5cIDsKK+S4jeimmuiAhSA+IGZ1a2FrdW1vbm9cIDsKK+aIkOmVt+eCuSA+IHNlaWNob3V0ZW5cIDsKK+adseaoque3miA+IHRvdXlva29zZW5cIDsKK+aVkea4iOiAhSA+IGt5dXVzYWlzaGFcIDsKK+efpeiDveeahCA+IGNoaW5vdXRla2lcIDsKK+W5u+immuWJpCA+IGdlbmtha3V6YWlcIDsKK+aenOeJqeWxiyA+IGt1ZGFtb25veWFcIDsKK+S6uuagvOiAhSA+IGppbmtha3VzaGFcIDsKK+mHkeWxnumWkyA+IGtpbnpva3VrYW5cIDsKK+iKseafs+eXhSA+IGthcnl1dWJ5b3VcIDsKK+iAgeWkp+WbvSA+IHJvdXRhaWtva3VcIDsKK+S7o+iogOS6uiA+IGRhaWdlbicnbmluXCA7Civlv4PlvpfpoZQgPiBrb2tvcm9lZ2FvXCA7Civku6PooajogIUgPiBkYWloeW91c2hhXCA7CivkuLvnn6XnmoQgPiBzaHVjaGl0ZWtpXCA7CivmloflrabnlYwgPiBidW5nYWt1a2FpXCA7CivliIfmlq3mqZ8gPiBzZXRzdWRhbmtpXCA7CivkuIDmmYLnmoQgPiBpY2hpaml0ZWtpXCA7CivkuqTpgJrntrIgPiBrb3V0c3V1bW91XCA7CivlnLDnkIPkurogPiBjaGlreXV1amluXCA7CivlnLDnkIPkuIogPiBjaGlreXV1am91XCA7CivpgIbmj5DmoYggPiBneWFrdXRlaWFuXCA7Civlr77mlbDooaggPiB0YWlzdXVoeW91XCA7CivmlZfmiKblm70gPiBoYWlzZW5rb2t1XCA7CivljbDliLfnpL4gPiBpbnNhdHN1c2hhXCA7CivmlrDoo73lk4EgPiBzaGluc2VpaGluXCA7CivmpbXot53pm6IgPiBreW9rdWt5b3JpXCA7Civnhp/nt7Tlt6UgPiBqdWt1cmVua291XCA7CivoibLntKDkvZMgPiBzaGlraXNvdGFpXCA7CivkuLjnoKXnn7MgPiBtYXJ1dG9pc2hpXCA7CivlkIzml4/kvJogPiBkb3V6b2t1a2FpXCA7CivntYzmuIjnmoQgPiBrZWl6YWl0ZWtpXCA7CivniZvkubPlsYsgPiBneXV1bnl1dXlhXCA7Civnt7Tnv5LloLQgPiByZW5zaHV1am91XCA7Civnibnoo73lk4EgPiB0b2t1c2VpaGluXCA7CivkuI3oqqDlrp8gPiBmdXNlaWppdHN1XCA7CivlvpPmnaXlnosgPiBqdXVyYWlnYXRhXCA7Civlr77osaHkvZMgPiB0YWlzaG91dGFpXCA7Civnsonnn7PpubggPiBrb25hc2Vra2VuXCA7CivlpJzlsL/nl4cgPiB5YW55b3VzaG91XCA7CivotoXmlofpnaIgPiBjaG91YnVubWVuXCA7Civli5XnianlnJIgPiBkb3VidXRzdWVuXCA7Civnt4/nm6PnnaMgPiBzb3VrYW50b2t1XCA7Civlrp/pmpvnmoQgPiBqaXNzYWl0ZWtpXCA7CivpoLzkv6HntJkgPiByYWlzaGluc2hpXCA7CivlrqPmlZnluKsgPiBzZW5reW91c2hpXCA7Civosqzku7vogIUgPiBzZWtpbmluc2hhXCA7CivplqLnr4Dngo4gPiBrYW5zZXRzdWVuXCA7CivlhbHps7Tmnb8gPiBreW91bWVpYmFuXCA7CivlrpfkuLvlm70gPiBzb3VzaHVrb2t1XCA7Civml6fou43kurogPiBreXV1Z3VuamluXCA7CivljYrmv4HngrkgPiBoYW5kYWt1dGVuXCA7CivljYrplbflvaIgPiBoYW5jaG91a2VpXCA7CivkuK3msLTpgZMgPiBjaHV1c3VpZG91XCA7CivpgbjmiYvmnZEgPiBzZW5zaHVtdXJhXCA7CivljbDliLfnlKggPiBpbnNhdHN1eW91XCA7CivpnIrmn6nou4ogPiByZWlreXV1c2hhXCA7Civmtbflsrjnq68gPiBrYWlnYW5iYXRhXCA7CivlpJbnlKjolqwgPiBnYWl5b3V5YWt1XCA7CivntKvmlpHnl4UgPiBzaGloYW5ieW91XCA7Civom7jphY3lvZMgPiB0YWtvaGFpdG91XCA7Civpq5jmiYDnl4UgPiBrb3VzaG9ieW91XCA7CivlpKflsI/kvr8gPiBkYWlzaG91YmVuXCA7CivnsbPlm73msJEgPiBiZWlrb2t1bWluXCA7CivlkLjmsLTmgKcgPiBreXV1c3Vpc2VpXCA7Civlv7XkupTml6UgPiBuZW5nb25pY2hpXCA7Civlh7rmnaXlv4MgPiBkZWtpZ29rb3JvXCA7CivkuK3lv4Ppg6ggPiBjaHV1c2hpbmJ1XCA7CivnlJ/kvZPlraYgPiBzZWl0YWlnYWt1XCA7Civogq/lrprnmoQgPiBrb3V0ZWl0ZWtpXCA7Civpgbjmip7lrZAgPiBzZW50YWt1c2hpXCA7Civli5XnianljJYgPiBkb3VidXRzdWthXCA7CivmsLTlubPnv7wgPiBzdWloZWl5b2t1XCA7Civosr/mmJPmpa0gPiBib3Vla2lneW91XCA7CivohbDluIPlm6MgPiBrb3NoaWJ1dG9uXCA7CivniIbmkoPmqZ8gPiBiYWt1Z2VraWtpXCA7CivoqIDooYzpjLIgPiBnZW5rb3Vyb2t1XCA7Civlm6PlnLDml48gPiBkYW5jaGl6b2t1XCA7CivkubHoqr/lrZAgPiByYW5jaG91c2hpXCA7Civlgpnok4TnsbMgPiBiaWNoaWt1bWFpXCA7CivlpKfkuZfnmoQgPiBkYWlqb3V0ZWtpXCA7CivnhKHog73lipsgPiBtdW5vdXJ5b2t1XCA7CivpharovrLloLQgPiByYWt1bm91am91XCA7CivosqjlrqLoiLkgPiBrYWt5YWt1c2VuXCA7CivmhJ/mn5Pnl4cgPiBrYW5zZW5zaG91XCA7CivnnJ/nkIbmlZkgPiBzaGlucmlreW91XCA7CivmhYjlloTpjYsgPiBqaXplbicnbmFiZVwgOwor5oqA6KGT5aOrID4gZ2lqdXRzdXNoaVwgOwor5ZOo5oiS6ImHID4gc2hvdWthaXRlaVwgOwor6YWS55+z6YW4ID4gc2h1c2VraXNhblwgOwor5pW35biD5ZujID4gc2hpa2lidXRvblwgOwor5Y+N5YmH6YeRID4gaGFuc29rdWtpblwgOwor5pyJ5qmf54mpID4geXV1a2lidXRzdVwgOwor5oq96LGh55S7ID4gY2h1dXNob3VnYVwgOwor56ef5YCf5qipID4gc29zaGFrdWtlblwgOwor5YaF55Sz5pu4ID4gbmFpc2hpbnNob1wgOwor5ZCM57Sa55SfID4gZG91a3l1dXNlaVwgOwor5ZCR57Gz55qEID4ga291YmVpdGVraVwgOwor6Kaq6KGb5YW1ID4gc2hpbicnZWloZWlcIDsKK+S7j+aWh+enkSA+IGZ1dHN1YnVua2FcIDsKK+WPluW8leaJgCA+IHRvcmloaWtpam9cIDsKK+mbu+i7iuizgyA+IGRlbnNoYWNoaW5cIDsKK+mbhuaVo+WcsCA+IHNodXVzYW5jaGlcIDsKK+e2uuaDs+absiA+IGtpc291a3lva3VcIDsKK+S4iuiqv+WtkCA+IHV3YWNob3VzaGlcIDsKK+WGheiHk+W8kyA+IG5haXpvdWt5dXVcIDsKK+WNiumWi+WbvSA+IGhhbmthaWtva3VcIDsKK+ijvemAoOalrSA+IHNlaXpvdWd5b3VcIDsKK+i/veaSg+apnyA+IHRzdWlnZWtpa2lcIDsKK+S4ieinkuetiyA+IHNhbmtha3VraW5cIDsKK+etiea3see3miA+IHRvdXNoaW5zZW5cIDsKK+mnhuWLleWKmyA+IGt1ZG91cnlva3VcIDsKK+mHjeW3pealrSA+IGp1dWtvdWd5b3VcIDsKK+m6u+e5lOeJqSA+IGFzYW9yaW1vbm9cIDsKK+aXpeWwhOeXhSA+IG5pc3NoYWJ5b3VcIDsKK+eGseihgOWFkCA+IG5la2tldHN1amlcIDsKK+mHkeWxnuijvSA+IGtpbnpva3VzZWlcIDsKK+acrOWlkee0hCA+IGhvbmtlaXlha3VcIDsKK+m7hOikkOiJsiA+IG91a2Fzc2hva3VcIDsKK+izvOWFpeiAhSA+IGtvdW55dXVzaGFcIDsKK+S4jeeyvuiAhSA+IGJ1c2hvdW1vbm9cIDsKK+S4u+W/nOWKmyA+IHNodW91cnlva3VcIDsKK+WfvOeOieWLoiA+IHNhaXRhbWF6ZWlcIDsKK+mHjeWCt+iAhSA+IGp1dXNob3VzaGFcIDsKK+WCt+Wus+e9qiA+IHNob3VnYWl6YWlcIDsKK+S9nOaIpuS4iiA+IHNha3VzZW5qb3VcIDsKK+a9nOawtOeXhSA+IHNlbnN1aWJ5b3VcIDsKK+S4reaAp+e0mSA+IGNodXVzZWlzaGlcIDsKK+iouueZguaJgCA+IHNoaW5yeW91am9cIDsKK+aXpeacrOmjnyA+IG5paG9uc2hva3VcIDsKK+eovOWDjeeOhyA+IGthZG91cml0c3VcIDsKK+mAo+WQiOWbvSA+IHJlbmdvdWtva3VcIDsKK+WFrOawkeWtpiA+IGtvdW1pbmdha3VcIDsKK+eglOeptuiAhSA+IGtlbmt5dXVzaGFcIDsKK+mdmeawtOWcpyA+IHNlaXN1aWF0c3VcIDsKK+eZu+mMsuiAhSA+IHRvdXJva3VzaGFcIDsKK+iIiOihjOeVjCA+IGtvdWd5b3VrYWlcIDsKK+a6luaxuuWLnSA+IGp1bmtlc3Nob3VcIDsKK+WkqeeOi+aYnyA+IHRlbicnbm91c2VpXCA7Civmoq/lrZDou4ogPiBoYXNoaWdvc2hhXCA7CivkuInopqrnrYkgPiBzYW5zaGludG91XCA7CivkuI3ntJTniakgPiBmdWp1bmJ1dHN1XCA7CivkuIrlpbPkuK0gPiBrYW1pam9jaHV1XCA7Civps6Xlj5bnnIwgPiB0b3R0b3Jpa2VuXCA7Civph43nl4fogIUgPiBqdXVzaG91c2hhXCA7CivosqfkuY/prK4gPiBiaW5ib3VrdWppXCA7CivllK/kuIDluqYgPiB0YWRhaWNoaWRvXCA7Civlpb3oibLlrrYgPiBrb3VzaG9rdWthXCA7Civmr5vnmq7llYYgPiBrZWdhd2FzaG91XCA7Civmr5TovIPntJogPiBoaWtha3VreXV1XCA7Civnj77lnKjpq5ggPiBnZW56YWlkYWthXCA7CivpmbjmtbfnqbogPiByaWt1a2Fpa3V1XCA7Civlj4znnLzpj6EgPiBzb3VnYW5reW91XCA7Civpp5DovKrloLQgPiBjaHV1cmluam91XCA7Civnmb3piYTpibEgPiBoYWt1dGVra291XCA7CivlpKflrq7kurogPiBvb21peWFiaXRvXCA7Civpm6rlkIjmiKYgPiB5dWtpZ2Fzc2VuXCA7CivniYfmoJfnsokgPiBrYXRha3VyaWtvXCA7CivnmbrooajkvJogPiBoYXBweW91a2FpXCA7CivlkJDngInniakgPiB0b3NoYWJ1dHN1XCA7Civoo4/ooajntJkgPiB1cmFieW91c2hpXCA7CivliIfmlq3lm7MgPiBzZXRzdWRhbnp1XCA7CivmgJ3mg5HosrcgPiBvbW93YWt1Z2FpXCA7CivoprPlv7Xoq5YgPiBrYW4nJ25lbnJvblwgOwor546J6Z+z55ukID4gZ3lva3VvbmJhblwgOwor5Y+N5YuV55qEID4gaGFuZG91dGVraVwgOwor5pWR5ZG96ImHID4ga3l1dW1laXRlaVwgOwor57W25a++55qEID4gemV0dGFpdGVraVwgOwor5ris6YeP5ZuzID4gc29rdXJ5b3V6dVwgOwor5LiJ5aSn5Zu9ID4gc2FuZGFpa29rdVwgOwor5Zyw5pa555eFID4gY2hpaG91YnlvdVwgOwor5Ye654mI6ICFID4gc2h1cHBhbnNoYVwgOwor5L6b57Wm6LevID4ga3lvdWt5dXVyb1wgOwor56uc5raO6aaZID4gcnl1dXplbmtvdVwgOwor5bCE54iG5aC0ID4gc2hhYmFrdWpvdVwgOwor5ris6YeP5ZmoID4gc29rdXJ5b3VraVwgOwor5Zyf5L+X5a2mID4gZG96b2t1Z2FrdVwgOwor576O5aWz5qGcID4gYmlqb3pha3VyYVwgOwor5Y2X44CF5p2xID4gbmFuJyduYW50b3VcIDsKK+S6uuagvOaoqSA+IGppbmtha3VrZW5cIDsKK+WIhuino+eahCA+IGJ1bmthaXRla2lcIDsKK+S7luimmueahCA+IHRha2FrdXRla2lcIDsKK+WkqeS4u+aVmSA+IHRlbnNodWt5b3VcIDsKK+mbquWMlueypyA+IHl1a2lnZXNob3VcIDsKK+W9ouW8j+e+jiA+IGtlaXNoaWtpYmlcIDsKK+mbu+mAmuWkpyA+IGRlbnRzdXVkYWlcIDsKK+eglOeptuekviA+IGtlbmt5dXVzaGFcIDsKK+S4ieinkueCuSA+IHNhbmtha3V0ZW5cIDsKK+S8neabuOmzqSA+IGRlbnNob2JhdG9cIDsKK+S7luimmueXhyA+IHRha2FrdXNob3VcIDsKK+a2iOiAl+aIpiA+IHNob3Vtb3VzZW5cIDsKK+S7leios+abuCA+IHNoaXdha2VzaG9cIDsKK+mBiuS8keWcsCA+IHl1dWt5dXVjaGlcIDsKK+WPjeW/nOaApyA+IGhhbicnbm91c2VpXCA7CivmmrTotbDml48gPiBib3Vzb3V6b2t1XCA7CivntIDlhYPnr4AgPiBraWdlbnNldHN1XCA7CivmuKnms4nlrr8gPiBvbnNlbicneWFkb1wgOwor5ZSQ6L6b5a2QID4gdG91Z2FyYXNoaVwgOwor5pel5Lit6Z+TID4gbml0Y2h1dWthblwgOwor55CG6Kej5YqbID4gcmlrYWlyeW9rdVwgOwor5YWs5YWx6LKhID4ga291a3lvdXphaVwgOwor5qSc5a6a5paZID4ga2VudGVpcnlvdVwgOwor5biC6ZW36YG4ID4gc2hpY2hvdXNlblwgOwor5a6J5pmu6KuLID4geWFzdWJ1c2hpblwgOwor5rC06YGT5paZID4gc3VpZG91cnlvdVwgOwor5Lih5oiQ5pWXID4gcnlvdXNlaWJhaVwgOwor5Yid56+A5Y+lID4gaGF0c3V6ZWtrdVwgOwor5q+U6LyD55qEID4gaGlrYWt1dGVraVwgOwor5Zu96YCj6LuNID4ga29rdXJlbmd1blwgOwor5LiK57Sa55SfID4gam91a3l1dXNlaVwgOwor54Sh6aCT552AID4gbXV0b25jaGFrdVwgOwor5a2m5Y+L5LyaID4gZ2FrdXl1dWthaVwgOwor5YaN5p2l5pyIID4gc2FyYWlnZXRzdVwgOwor5b6M5pel6KuHID4gZ29qaXRzdWRhblwgOwor5YKZ6I2S6aOfID4gYmlrb3VzaG9rdVwgOwor5LiN6KGM6LehID4gZnVneW91c2VraVwgOwor5pac6Zm95pePID4gc2hheW91em9rdVwgOwor6Z2S5YyW54mpID4gc2Vpa2FidXRzdVwgOwor5aSp546L5bGxID4gdGVuJydub3V6YW5cIDsKK+WOhOS7i+iAhSA+IHlha2thaW1vbm9cIDsKK+WLh+eMm+W/gyA+IHl1dW1vdXNoaW5cIDsKK+atpuWKm+aIpiA+IGJ1cnlva3VzZW5cIDsKK+S4ieinkuazlSA+IHNhbmtha3Vob3VcIDsKK+Wul+aVmeeUuyA+IHNodXVreW91Z2FcIDsKK+eglOeptueUnyA+IGtlbmt5dXVzZWlcIDsKK+WHuuWllOiAhSA+IHNodXBwb25zaGFcIDsKK+WPjuebiumHkSA+IHNodXVla2lraW5cIDsKK+awt+iPk+WtkCA+IGtvb3JpZ2FzaGlcIDsKK+i7veW3pealrSA+IGtlaWtvdWd5b3VcIDsKK+iomOaGtuWKmyA+IGtpb2t1cnlva3VcIDsKK+WNs+iIiOipqSA+IHNva2t5b3VzaGlcIDsKK+WPpOeUn+eJqSA+IGtvc2VpYnV0c3VcIDsKK+eGseaEm+iAhSA+IG5ldHN1YWlzaGFcIDsKK+WkqemggueCuSA+IHRlbmNob3V0ZW5cIDsKK+eEoeizh+WKmyA+IG11c2hpcnlva3VcIDsKK+iIiOihjOaoqSA+IGtvdWd5b3VrZW5cIDsKK+advuagueayuSA+IHNob3Vrb24nJ3l1XCA7Civnmb7muIjmpb0gPiBrdWRhcmFnYWt1XCA7CivlnKjku7vkuK0gPiB6YWluaW5jaHV1XCA7Civmu57lnKjkuK0gPiB0YWl6YWljaHV1XCA7Civlh7rniYjnpL4gPiBzaHVwcGFuc2hhXCA7Civoo73ojLbmpa0gPiBzZWljaGFneW91XCA7Civosr/mmJPllYYgPiBib3Vla2lzaG91XCA7Civlm73li5nnnIEgPiBrb2t1bXVzaG91XCA7CivkuK3ljZfnsbMgPiBjaHV1bmFuYmVpXCA7CivmoZDkuIDokYkgPiBraXJpaGl0b2hhXCA7CivliJ3nr4DkvpsgPiBoYXRzdXpla2t1XCA7CivlhaXpgbjogIUgPiBueXV1c2Vuc2hhXCA7CivnuKbnpL7kvJogPiB0YXRlc2hha2FpXCA7Civmk43nuKbluK0gPiBzb3VqdXVzZWtpXCA7Civlkajml4vlsYsgPiBzaHV1c2VuJyd5YVwgOwor5paH5a2m5aOrID4gYnVuZ2FrdXNoaVwgOwor5bel5a2m6ICFID4ga291Z2FrdXNoYVwgOwor5Y+k5Lyd6KqsID4ga29kZW5zZXRzdVwgOwor5Y2w5Yi35belID4gaW5zYXRzdWtvdVwgOwor5r2c5rC05pyNID4gc2Vuc3VpZnVrdVwgOwor5aSn5Li75pWZID4gZGFpc2h1a3lvdVwgOwor5LiK5aC05qCqID4gam91am91a2FidVwgOwor6aGe5Z6L55qEID4gcnVpa2VpdGVraVwgOwor5ZC55Ye654mpID4gZnVraWRlbW9ub1wgOwor5oqX55yf6I+MID4ga291c2hpbmtpblwgOwor6Zuj5rOi5r2fID4gbmFuaXdhZ2F0YVwgOwor56ef5YCf5ZywID4gc29zaGFrdWNoaVwgOwor5Yqg6L6y56CyID4ga2FuJydub25ob3VcIDsKK+mAoOefs+eojiA+IHpvdWtva3V6ZWlcIDsKK+mnkOi7iuWgtCA+IGNodXVzaGFqb3VcIDsKK+ippueul+ihqCA+IHNoaXNhbmh5b3VcIDsKK+e1jOa4iOWtpiA+IGtlaXphaWdha3VcIDsKK+aApeWLvumFjSA+IGt5dXVrb3ViYWlcIDsKK+WEgOW8j+eUqCA+IGdpc2hpa2l5b3VcIDsKK+ihgOagk+eXhyA+IGtlc3NlbnNob3VcIDsKK+S8iumBlOWnvyA+IGRhdGVzdWdhdGFcIDsKK+eXheWOn+S9kyA+IGJ5b3VnZW50YWlcIDsKK+WFq+WIhuebriA+IGhhY2hpYnVubWVcIDsKK+ino+aekOaApyA+IGthaXNla2lzZWlcIDsKK+Wuouims+aApyA+IGt5YWtrYW5zZWlcIDsKK+i2heWqkuS9kyA+IGNob3ViYWl0YWlcIDsKK+awtOiKreiViSA+IG1penViYXNob3VcIDsKK+mVt+acn+eahCA+IGNob3VraXRla2lcIDsKK+ecvOmPoeibhyA+IG1lZ2FuZWhlYmlcIDsKK+WHuueJiOeVjCA+IHNodXBwYW5rYWlcIDsKK+W8geWEn+mHkSA+IGJlbnNob3VraW5cIDsKK+aOkuWklueahCA+IGhhaWdhaXRla2lcIDsKK+acqueGn+iAhSA+IG1panVrdW1vbm9cIDsKK+WIhuaVo+WeiyA+IGJ1bnNhbmdhdGFcIDsKK+efree3qOmbhiA+IHRhbnBlbnNodXVcIDsKK+a3oei3r+WztiA+IGF3YWppc2hpbWFcIDsKK+Wil+aulueCiSA+IHpvdXNob2t1cm9cIDsKK+S4i+imi+advyA+IHNoaXRhbWlpdGFcIDsKK+WIhuaVmeWgtCA+IGJ1bmt5b3Vqb3VcIDsKK+WPsuaWmemkqCA+IHNoaXJ5b3VrYW5cIDsKK+ihgOWwj+advyA+IGtlc3Nob3ViYW5cIDsKK+mHkeiJsuWggiA+IGtvbmppa2lkb3VcIDsKK+a8ouaWueiWrCA+IGthbnBvdXlha3VcIDsKK+e/u+ios+WutiA+IGhvbicneWFrdWthXCA7CivlubPnrYnoprMgPiBieW91ZG91a2FuXCA7CivmpJzmn7vlrpggPiBrZW5zaG91a2FuXCA7Civmloflrablj7IgPiBidW5nYWt1c2hpXCA7CivlpInliIblraYgPiBoZW5idW5nYWt1XCA7CivliY3moL3niakgPiBzZW56YWltb25vXCA7CivlvLflo67liaQgPiBreW91c291emFpXCA7CivmtbfnlKPmpa0gPiBrYWlzYW5neW91XCA7CivnjK7ntI3ogIUgPiBrZW4nJ25vdXNoYVwgOwor5YWt6YCj5pifID4gcm9rdXJlbnNlaVwgOwor5YuF6aGY5a+6ID4gY2hva3VnYW5qaVwgOwor5Lyd5p+T55eFID4gZGVuc2VuYnlvdVwgOwor5Lit6I+v6Y2LID4gY2h1dWthbmFiZVwgOwor5aSp5LiK5bedID4gdGVuam91Z2F3YVwgOwor5rSL6Iql5a2QID4geW91Z2FyYXNoaVwgOwor55qG5Yuk6LOeID4ga2Fpa2luc2hvdVwgOwor6YeR5bGe54mHID4ga2luem9rdWhlblwgOwor5aWH6KGT5birID4ga2lqdXRzdXNoaVwgOwor5aKX5Yqg546HID4gem91a2FyaXRzdVwgOwor5qiZ5rqW5Z6LID4gaHlvdWp1bmtlaVwgOwor6YeR6LWk6ImyID4ga2luJydha2Fpcm9cIDsKK+iyrOS7u+aEnyA+IHNla2luaW5rYW5cIDsKK+a3i+W3tOevgCA+IHJpbnBhc2V0c3VcIDsKK+S+m+eJqeWPsCA+IGt1bW90c3VkYWlcIDsKK+exs+WbveS6uiA+IGJlaWtva3VqaW5cIDsKK+etiea4qeW8jyA+IHRvdW9uc2hpa2lcIDsKK+WJjeS7u+iAhSA+IHplbicnbmluc2hhXCA7Civoo73pgKDlhYMgPiBzZWl6b3Vtb3RvXCA7Civmg4XloLHph48gPiBqb3Vob3VyeW91XCA7CivmtojogJflk4EgPiBzaG91bW91aGluXCA7CivkuKHmiYvliKkgPiByeW91dGVraWtpXCA7Civok4Tpm7vlmaggPiBjaGlrdWRlbmtpXCA7Civlr77op5Lnt5ogPiB0YWlrYWt1c2VuXCA7CivkuIDmmankuK0gPiBoaXRvYmFuanV1XCA7CivmmpfliaPmrrogPiBhbmtlbnNhdHN1XCA7CivpoK3otrPpoZ4gPiB0b3Vzb2t1cnVpXCA7CivlnKjmnbHkuqwgPiB6YWl0b3VreW91XCA7Civmo4ToqIDokYkgPiBzdXRla290b2JhXCA7CivlhY3nqI7ooaggPiBtZW56ZWloeW91XCA7Civlm73msJHmgKcgPiBrb2t1bWluc2VpXCA7CivlvavliLvlrrYgPiBjaG91a29rdWthXCA7Civoqq3mm7jnlYwgPiBkb2t1c2hva2FpXCA7Civkvb/nlKjmlpkgPiBzaGl5b3VyeW91XCA7CivlsYXnlZnmsJEgPiBreW9yeXV1bWluXCA7Civml4vlhYnop5IgPiBzZW5rb3VrYWt1XCA7CivlsI/plpPkvb8gPiBrb21hZHp1a2FpXCA7Civop5Lohpzngo4gPiBrYWt1bWFrdWVuXCA7CivpsK3ohJrpoZ4gPiBraWt5YWt1cnVpXCA7CivpkZHorZjlrrYgPiBrYW5zaGlraWthXCA7CivoiIjooYzluKsgPiBrb3VneW91c2hpXCA7CivlrLblpKnkuIsgPiBrYWthYWRlbmthXCA7Civlm7rlvaLniakgPiBrb2tlaWJ1dHN1XCA7CivntKHnuL7ns7ggPiBib3VzZWtpaXRvXCA7CivlkJ3ll4flrrYgPiByaW5zaG9rdWthXCA7Civngrrmm7/lsLsgPiBrYXdhc2VqaXJpXCA7Civoqq3ogIXmrIQgPiBkb2t1c2hhcmFuXCA7CivljoTku4vniakgPiB5YWtrYWltb25vXCA7Civlh7rkuJbkvZwgPiBzaHVzc2VzYWt1XCA7Civli5Xmkanmk6YgPiBkb3VtYXNhdHN1XCA7Civpg6jliIbpo58gPiBidWJ1bnNob2t1XCA7Civlh7rniYjms5UgPiBzaHVwcGFuaG91XCA7CivoqrLpoYzmm7IgPiBrYWRhaWt5b2t1XCA7CivmrrromavliaQgPiBzYXRjaHV1emFpXCA7CivoloTpm6rojYkgPiB1c3V5dWtpc291XCA7CivkurrkvZPlraYgPiBqaW50YWlnYWt1XCA7CivlubPln47kuqwgPiBoZWlqb3VreW91XCA7CivkuInop5LluL0gPiBzYW5rYWt1Ym91XCA7CivooZ3mkoPms6IgPiBzaG91Z2VraWhhXCA7CivkuInop5Llt74gPiBzYW5rYWt1a2luXCA7Civpg7XpgIHmlpkgPiB5dXVzb3VyeW91XCA7Civnn7Pngq3phbggPiBzZWtpdGFuc2FuXCA7CivlvoHmnI3ogIUgPiBzZWlmdWt1c2hhXCA7CivlvLfooYzou40gPiBreW91a291Z3VuXCA7Civku6Pooajlm6MgPiBkYWloeW91ZGFuXCA7CivohJrmnKzlrrYgPiBreWFrdWhvbmthXCA7Civoj5PlrZDpiaIgPiBrYXNoaWJhY2hpXCA7Civnm7TlhobpjJAgPiBjaG9rdWVuc3VpXCA7Civlh7rniYjmqKkgPiBzaHVwcGFua2VuXCA7Civlho3mnI3lvbkgPiBzYWlmdWt1ZWtpXCA7CivnlJ/mlL7pgIEgPiBuYW1haG91c291XCA7CivoqIjnrpflsLogPiBrZWlzYW5qYWt1XCA7CivpgJrli6TogIUgPiB0c3V1a2luc2hhXCA7CivkuIDloYHnt5ogPiBpY2hpcnVpc2VuXCA7CivmtrLph4/oqIggPiBla2lyeW91a2VpXCA7CivliIfmlK/kuLkgPiBraXJpc2hpdGFuXCA7Civpl4fluILloLQgPiB5YW1pc2hpam91XCA7CivpmpzlrrPogIUgPiBzaG91Z2Fpc2hhXCA7CivosrTml4/nmoQgPiBraXpva3V0ZWtpXCA7CivljbDliLfkurogPiBpbnNhdHN1bmluXCA7Civmtbfos4roiLkgPiBrYWl6b2t1c2VuXCA7CivljZfljZfopb8gPiBuYW4nJ25hbnNlaVwgOwor6ISz5oyv55uqID4gbm91c2hpbnRvdVwgOwor5oq96LGh5YyWID4gY2h1dXNob3VrYVwgOwor6Kyb57+S5LyaID4ga291c2h1dWthaVwgOwor5oSb546p54mpID4gYWlnYW5idXRzdVwgOwor6bq76ZuA5bGLID4gbWF6ZWphbicneWFcIDsKK+S8neafk+avkiA+IGRlbnNlbmRva3VcIDsKK+S7luWbveiAhSA+IHRha29rdW1vbm9cIDsKK+mHjeWxpOeahCA+IGp1dXNvdXRla2lcIDsKK+S6lOmHjeWhlCA+IGdvanV1bm90b3VcIDsKK+S4i+e0muWvqSA+IGtha3l1dXNoaW5cIDsKK+S9juaJgOW+lyA+IHRlaXNob3Rva3VcIDsKK+WwgumWgOeroCA+IHNlbm1vbnNob3VcIDsKK+mLs+mAoOaJgCA+IGNodXV6b3VzaG9cIDsKK+efreaZguaXpSA+IHRhbmppaml0c3VcIDsKK+S8kealreaXpSA+IGt5dXVneW91YmlcIDsKK+WFiOerr+eahCA+IHNlbnRhbnRla2lcIDsKK+WWp+WYqeiFsCA+IGtlbmthZ29zaGlcIDsKK+iNieWPjOe0mSA+IGt1c2F6b3VzaGlcIDsKK+epuuaDs+eahCA+IGt1dXNvdXRla2lcIDsKK+mbqumBlOejqCA+IHl1a2lkYXJ1bWFcIDsKK+WGheS6pOa4iSA+IG5haWtvdXNob3VcIDsKK+W6g+WRiuekviA+IGtvdWtva3VzaGFcIDsKK+iyqOeJqemnhSA+IGthbW90c3Vla2lcIDsKK+iyp+S5j+expCA+IGJpbmJvdWd1amlcIDsKK+WvvuipseW8jyA+IHRhaXdhc2hpa2lcIDsKK+WFseeUo+i7jSA+IGt5b3VzYW5ndW5cIDsKK+S4jeaJv+irviA+IGZ1c2hvdWRha3VcIDsKK+axguS6uuiqjCA+IGt5dXVqaW5zaGlcIDsKK+mereavm+iZqyA+IGJlbm1vdWNodXVcIDsKK+ewoeWNmOacjSA+IGthbnRhbmZ1a3VcIDsKK+S4reaAp+WtkCA+IGNodXVzZWlzaGlcIDsKK+m7kuepgueXhSA+IGt1cm9ob2J5b3VcIDsKK+WIhuaLhemhjSA+IGJ1bnRhbmdha3VcIDsKK+WkqumZveiZqyA+IHRhaXlvdWNodXVcIDsKK+aaq+WumueahCA+IHphbnRlaXRla2lcIDsKK+S7o+ihqOS+iyA+IGRhaWh5b3VyZWlcIDsKK+WQjOWbveawkSA+IGRvdWtva3VtaW5cIDsKK+iomOW/teeJqSA+IGtpbmVuYnV0c3VcIDsKK+aXp+S9k+WItiA+IGt5dXV0YWlzZWlcIDsKK+WNl+a0i+adkCA+IG5hbicneW91emFpXCA7CivpnZ7luLjlj6MgPiBoaWpvdWd1Y2hpXCA7CivkuIrooajntJkgPiB1d2FieW91c2hpXCA7CivpnaLnmb3lkbMgPiBvbW9zaGlyb21pXCA7Civkv53lrZjpo58gPiBob3pvbnNob2t1XCA7CivljYrmhI/orZggPiBoYW4nJ2lzaGlraVwgOwor5pys6Kq/5a2QID4gaG9uY2hvdXNoaVwgOwor57mU5aWz5pifID4gc2hva3Vqb3NlaVwgOwor5bCC6ZaA55qEID4gc2VubW9udGVraVwgOwor5aCx5YSf6YeRID4gaG91c2hvdWtpblwgOwor5pOy5by+562SID4gdGVraWRhbnRvdVwgOwor6LKn5LmP56WeID4gYmluYm91Z2FtaVwgOwor5Zue5ryV5qWtID4ga2Fpc291Z3lvdVwgOwor5aSn57Wx6aCYID4gZGFpdG91cnlvdVwgOwor6YeP5a2Q6KuWID4gcnlvdXNoaXJvblwgOwor5Lit5Yqb57KJID4gY2h1dXJpa2lrb1wgOwor55y86Y+h54y/ID4gbWVnYW5lemFydVwgOwor5qWt55WM57SZID4gZ3lvdWthaXNoaVwgOwor6Z2e5YWs5byPID4gaGlrb3VzaGlraVwgOwor5rC05YW15pyNID4gc3VpaGVpZnVrdVwgOwor6LKv5pyo5aC0ID4gY2hvYm9rdWpvdVwgOwor5qKv5a2Q5q61ID4gaGFzaGlnb2RhblwgOwor5b2T5q2z6aeSID4gdG91c2FpZ29tYVwgOwor5a6X5pWZ5a62ID4gc2h1dWt5b3VrYVwgOwor56CU56m25a6YID4ga2Vua3l1dWthblwgOwor5q6J5pWZ6ICFID4ganVua3lvdXNoYVwgOwor5q6J6Zuj6ICFID4ganVuJyduYW5zaGFcIDsKK+WjgeiotOionyA+IGthYmV6b3Nob3VcIDsKK+eOieaVtOeQhiA+IGd5b2t1c2VpcmlcIDsKK+iMqOWfjuecjCA+IGliYXJha2lrZW5cIDsKK+WxiOabsumDqCA+IGt1a2t5b2t1YnVcIDsKK+ikkuWlqOmHkSA+IGhvdXNob3VraW5cIDsKK+a2iOmYsumaiiA+IHNob3Vib3V0YWlcIDsKK+acp+aYhuW4gyA+IG9ib3Jva29uYnVcIDsKK+eci+eXheS6uiA+IGthbmJ5b3VuaW5cIDsKK+iKsembu+i7iiA+IGhhbmFkZW5zaGFcIDsKK+WcsOaWh+WtpiA+IGNoaW1vbmdha3VcIDsKK+WPo+S+m+abuCA+IGtvdWt5b3VzaG9cIDsKK+mHkeWxnuaApyA+IGtpbnpva3VzZWlcIDsKK+iNiemHjueQgyA+IGt1c2F5YWt5dXVcIDsKK+aknOS6i+WxgCA+IGtlbmppa3lva3VcIDsKK+WFrei+uuW9oiA+IHJva3VoZW5rZWlcIDsKK+iqreiAheWxpCA+IGRva3VzaGFzb3VcIDsKK+WCrOS/g+eKtiA+IHNhaXNva3Vqb3VcIDsKK+WCvuaWnOinkiA+IGtlaXNoYWtha3VcIDsKK+WPjuebo+eKtiA+IHNodXVrYW5qb3VcIDsKK+WcsOmch+WtpiA+IGppc2hpbmdha3VcIDsKK+WcqOS4luS4rSA+IHphaXNlaWNodXVcIDsKK+WlpeW6p+aVtyA+IG9rdXphc2hpa2lcIDsKK+e+juihk+mkqCA+IGJpanV0c3VrYW5cIDsKK+ioseWuuemHjyA+IGt5b3lvdXJ5b3VcIDsKK+WwhOaSg+WgtCA+IHNoYWdla2lqb3VcIDsKK+W+jOWkqeeahCA+IGtvdXRlbnRla2lcIDsKK+mnkOWxr+WcsCA+IGNodXV0b25jaGlcIDsKK+iEs+a6ouihgCA+IG5vdWlra2V0c3VcIDsKK+WtmOWRveS4rSA+IHpvbm1laWNodXVcIDsKK+ezu+WIl+WMliA+IGtlaXJldHN1a2FcIDsKK+WHuueJiOWxiyA+IHNodXBwYW4nJ3lhXCA7Civlr6nnvo7nmoQgPiBzaGluYml0ZWtpXCA7CivmgZLkuYXmgKcgPiBrb3VreXV1c2VpXCA7CivniYfosr/mmJMgPiBrYXRhYm91ZWtpXCA7CivmlofnjK7lraYgPiBidW5rZW5nYWt1XCA7CivmmYLku6PoibIgPiBqaWRhaXNob2t1XCA7CivlpKflpKfnmoQgPiBkYWlkYWl0ZWtpXCA7Civkuozph43mqYsgPiBuaWp1dWJhc2hpXCA7CivlnLDoqozlraYgPiBjaGlzaGlnYWt1XCA7CivljJblrabnmoQgPiBrYWdha3V0ZWtpXCA7CivogonlvL7miKYgPiBuaWt1ZGFuc2VuXCA7CivkuIDntYPnkLQgPiBpY2hpZ2Vua2luXCA7CivpgYrniafmsJEgPiB5dXVib2t1bWluXCA7CivmoLjlrp/pqJMgPiBrYWt1amlra2VuXCA7Civosqjnianou4ogPiBrYW1vdHN1c2hhXCA7CivmsYLkurrogIUgPiBreXV1amluc2hhXCA7CivlnLDpnIflm70gPiBqaXNoaW5rb2t1XCA7CivlsYXnlZnlnLAgPiBreW9yeXV1Y2hpXCA7CivpmpzlrZDntJkgPiBzaG91amlnYW1pXCA7CivmvZzlh73nl4UgPiBzZW5rYW5ieW91XCA7CivlvJXnjofogIUgPiBpbnNvdHN1c2hhXCA7Civmtbfos4rniYggPiBrYWl6b2t1YmFuXCA7Civkv6Hku7DogIUgPiBzaGlua291c2hhXCA7CivmtojpmLLou4ogPiBzaG91Ym91c2hhXCA7CivkuInnrYnos54gPiBzYW50b3VzaG91XCA7CivnhKHorablr58gPiBtdWtlaXNhdHN1XCA7CivlvanoibLnlLsgPiBzYWlzaG9rdWdhXCA7Civli6flkYrogIUgPiBrYW5rb2t1c2hhXCA7CivluoPlkYrmrIQgPiBrb3Vrb2t1cmFuXCA7Civos57ph5HnjosgPiBzaG91a2luJydvdVwgOwor6YCa55+l54q2ID4gdHN1dWNoaWpvdVwgOwor5bel5L2c5ZOBID4ga291c2FrdWhpblwgOwor5Zyw5pS/5a2mID4gY2hpc2VpZ2FrdVwgOwor5aSq6Zm956WeID4gdGFpeW91c2hpblwgOwor57aZ5om/6ICFID4ga2Vpc2hvdXNoYVwgOwor5Lmz6KO95ZOBID4gbnl1dXNlaWhpblwgOwor6YGK5pKD6ZqKID4geXV1Z2VraXRhaVwgOwor5Y2R5oCv6ICFID4gaGlreW91bW9ub1wgOwor5YaN5pWZ6IKyID4gc2Fpa3lvdWlrdVwgOwor5Zu95YaF57eaID4ga29rdW5haXNlblwgOwor5Zmb54WZ6I2JID4ga2FtaXRhYmFrb1wgOwor5oWI5ZaE5biCID4gaml6ZW4nJ2ljaGlcIDsKK+WbnuaDs+mMsiA+IGthaXNvdXJva3VcIDsKK+WkluS6pOeahCA+IGdhaWtvdXRla2lcIDsKK+S/rueQhuS4rSA+IHNodXVyaWNodXVcIDsKK+S4ieetieimqiA+IHNhbnRvdXNoaW5cIDsKK+WcsOihqOmdoiA+IGNoaWh5b3VtZW5cIDsKK+W5sua4ieioiCA+IGthbnNob3VrZWlcIDsKK+eglOeptuS8miA+IGtlbmt5dXVrYWlcIDsKK+iCluWDj+aoqSA+IHNob3V6b3VrZW5cIDsKK+W9ueS4jei2syA+IHlha3VidXNva3VcIDsKK+azqOaEj+WKmyA+IGNodXVpcnlva3VcIDsKK+iFueS4iuatuyA+IGZ1a3Vqb3VzaGlcIDsKK+e3qOmbhuiAhSA+IGhlbnNodXVzaGFcIDsKK+W6g+WRiuadvyA+IGtvdWtva3ViYW5cIDsKK+a4ieemvemhniA+IHNob3VraW5ydWlcIDsKK+WAkumMr+iAhSA+IHRvdXNha3VzaGFcIDsKK+awtOeWseeYoSA+IG1penVib3Vzb3VcIDsKK+W5s+etieaoqSA+IGJ5b3Vkb3VrZW5cIDsKK+Wkp+mch+eBvSA+IGRhaXNoaW5zYWlcIDsKK+mHjeeXh+S+iyA+IGp1dXNob3VyZWlcIDsKK+WcsOWfn+eahCA+IGNoaWlraXRla2lcIDsKK+WFseeUo+ezuyA+IGt5b3VzYW5rZWlcIDsKK+mWi+mWieapiyA+IGthaWhlaWt5b3VcIDsKK+i2hembu+WwjiA+IGNob3VkZW5kb3VcIDsKK+mZs+aDheabuCA+IGNoaW5qb3VzaG9cIDsKK+aKleapn+eGsSA+IHRvdWtpbmV0c3VcIDsKK+WGl+irh+S6iyA+IGpvdWRhbmtvdG9cIDsKK+acgOmrmOe0miA+IHNhaWtvdWt5dXVcIDsKK+aAneaDkeW4qyA+IG9tb3dha3VzaGlcIDsKK+ilv+aXpeacrCA+IG5pc2hpbmlob25cIDsKK+i/keS7o+eahCA+IGtpbmRhaXRla2lcIDsKK+i2heWkp+WeiyA+IGNob3Vvb2dhdGFcIDsKK+egleawt+iIuSA+IHNhaWh5b3VzZW5cIDsKK+a8gealreazlSA+IGd5b2d5b3Vob3VcIDsKK+acquino+axuiA+IG1pa2Fpa2V0c3VcIDsKK+W3qOS6uuWbvSA+IGt5b2ppbmtva3VcIDsKK+acgOWwj+mZkCA+IHNhaXNob3VnZW5cIDsKK+WFrOWFseaApyA+IGtvdWt5b3VzZWlcIDsKK+eEoeeyvumrrSA+IGJ1c2hvdWhpZ2VcIDsKK+W3peWtpuWjqyA+IGtvdWdha3VzaGlcIDsKK+mFkumAoOalrSA+IHNodXpvdWd5b3VcIDsKK+iJsumJm+ethiA+IGlyb2VucGl0c3VcIDsKK+eBq+aJk+efsyA+IGhpdWNoaWlzaGlcIDsKK+mGuOmAoOalrSA+IGpvdXpvdWd5b3VcIDsKK+WNmOecvOmPoSA+IHRhbmdhbmt5b3VcIDsKK+a8gealreaoqSA+IGd5b2d5b3VrZW5cIDsKK+efs+eBr+exoCA+IGlzaGlkb3Vyb3VcIDsKK+WNl+awt+a0iyA+IG5hbnB5b3V5b3VcIDsKK+mxiOWgtOifuSA+IHRhcmFiYWdhbmlcIDsKK+WyoeWxseecjCA+IG9rYXlhbWFrZW5cIDsKK+e0oee4vuW3pSA+IGJvdXNla2lrb3VcIDsKK+i1t+eIhuiWrCA+IGtpYmFrdXlha3VcIDsKK+eiuuiqjeabuCA+IGtha3VuaW5zaG9cIDsKK+iqleeUn+efsyA+IHRhbmpvdXNla2lcIDsKK+mYsuiHreWJpCA+IGJvdXNodXV6YWlcIDsKK+mMq+ijveWTgSA+IHN1enVzZWloaW5cIDsKK+iyqOeJqeiIuSA+IGthbW90c3VzZW5cIDsKK+S4gOWhgeaJiyA+IGljaGlydWlzaHVcIDsKK+iEmue3mue+jiA+IGt5YWt1c2VuYmlcIDsKK+acieS+oeeJqSA+IHl1dWthYnV0c3VcIDsKK+akjeeUn+WbsyA+IHNob2t1c2VpenVcIDsKK+eZuuaDheacnyA+IGhhdHN1am91a2lcIDsKK+eZveawtOekviA+IGhha3VzdWlzaGFcIDsKK+aOoeeul+agqiA+IHNhaXNhbmthYnVcIDsKK+mVt+S4geWgtCA+IG5hZ2FjaG91YmFcIDsKK+acieWtlOiZqyA+IHl1dWtvdWNodXVcIDsKK+WkqeeEtueXmCA+IHRlbicnbmVudG91XCA7Civlm5vmi43lrZAgPiB5b25ieW91c2hpXCA7Civlhpfplbfns7sgPiBqb3VjaG91a2VpXCA7Civml6XmnKzlvI8gPiBuaWhvbnNoaWtpXCA7CivmuoDlubTpvaIgPiBtYW4nJ25lbnJlaVwgOwor5raI6Ziy6ImHID4gc2hvdWJvdXRlaVwgOwor5bCP5ray6IOeID4gc2hvdWVraWhvdVwgOwor6aaW5ZSx6ICFID4gc2h1c2hvdXNoYVwgOwor5pel5pys5bmzID4gbmlob25kYWlyYVwgOwor6YmE6Z2i55quID4gdGV0c3VtZW5waVwgOwor5Li75qip5Zu9ID4gc2h1a2Vua29rdVwgOwor6LK35o6b6YeRID4ga2Fpa2FrZWtpblwgOwor55+z54Gw55+zID4gc2Vra2Fpc2VraVwgOwor57Gz5ZWP5bGLID4ga29tZWRvbicneWFcIDsKK+aAneaDs+WKhyA+IHNoaXNvdWdla2lcIDsKK+S4h+WbveawkSA+IGJhbmtva3VtaW5cIDsKK+WLp+WRiueKtiA+IGthbmtva3Vqb3VcIDsKK+aVl+WMl+aEnyA+IGhhaWJva3VrYW5cIDsKK+Wvhui8uOiIuSA+IG1pdHN1eXVzZW5cIDsKK+WPr+Wkiee/vCA+IGthaGVuJyd5b2t1XCA7CivlgY/poK3nl5sgPiBoZW50b3V0c3V1XCA7CivlubTpvaLntaYgPiBuZW5yZWlreXV1XCA7CivpgI/no4HnjocgPiB0b3VqaXJpdHN1XCA7CivljoTku4vkuosgPiB5YWtrYWlnb3RvXCA7CivkvI/lsITmv6AgPiBmdWt1c2hhZ291XCA7Civmh7jlo4XlnoIgPiBrZW4nJ3lvdXN1aVwgOwor55WM56OB5qW1ID4ga2FpamlreW9rdVwgOwor5b+c55So5YqbID4gb3V5b3VyeW9rdVwgOwor5pel5puc5pelID4gbmljaGl5b3ViaVwgOwor5raI6Ziy572yID4gc2hvdWJvdXNob1wgOwor6LKn5LmP5oCnID4gYmluYm91c2hvdVwgOwor5qC45bSp5aOKID4ga2FrdWhvdWthaVwgOwor6Kqt5pu45LyaID4gZG9rdXNob2thaVwgOwor5LiN5r2U5oSfID4gZnVrZXRzdWthblwgOwor5pWw5a2m6ICFID4gc3V1Z2FrdXNoYVwgOwor6IG05Y+W6ICFID4gY2hvdXNodXNoYVwgOwor6Kqt5pu45Lq6ID4gZG9rdXNob2ppblwgOwor5YmN5Lu75ZywID4gemVuJyduaW5jaGlcIDsKK+a8geiJsuWutiA+IGd5b3Nob2t1a2FcIDsKK+ijveS9nOiAhSA+IHNlaXNha3VzaGFcIDsKK+ayoeWAi+aApyA+IGJvdHN1a29zZWlcIDsKK+WFqOW6l+S4rSA+IHplbnRlbmNodXVcIDsKK+WumOe1puWTgSA+IGthbmt5dXVoaW5cIDsKK+eZvemHkeaXjyA+IGhha2tpbnpva3VcIDsKK+WkqeaWh+WtpiA+IHRlbm1vbmdha3VcIDsKK+WFteWtpuiAhSA+IGhlaWdha3VzaGFcIDsKK+WQiOWUsemaiiA+IGdhc3Nob3V0YWlcIDsKK+S4jeaIkOeriyA+IGZ1c2Vpcml0c3VcIDsKK+eMrue0jeWTgSA+IGtlbicnbm91aGluXCA7CivntLDnspLliIYgPiBzYWlyeXV1YnVuXCA7CivnjJvnt7Tnv5IgPiBtb3VyZW5zaHV1XCA7CivkvovlpJbnmoQgPiByZWlnYWl0ZWtpXCA7CivlirnnjofljJYgPiBrb3VyaXRzdWthXCA7CivpmaTomavoj4ogPiBqb2NodXVnaWt1XCA7CivntIXnlJ/lp5wgPiBiZW5pc2hvdWdhXCA7CivlubLmi5PlnLAgPiBrYW50YWt1Y2hpXCA7Civlh43lgrfogIUgPiB0b3VzaG91c2hhXCA7CivljZfljZfmnbEgPiBuYW4nJ25hbnRvdVwgOwor5ZCM5Zu95Lq6ID4gZG91a29rdWppblwgOwor55uu55qE6KqeID4gbW9rdXRla2lnb1wgOwor5LiJ5Zu95b+XID4gc2FuZ29rdXNoaVwgOwor5Lq654mp55S7ID4gamluYnV0c3VnYVwgOwor5ZC45YWl5ZmoID4ga3l1dW55dXVraVwgOwor6Ziy5a+S5pyNID4gYm91a2FuZnVrdVwgOwor5L+u6Zmi6ZW3ID4gc2h1dWluY2hvdVwgOwor5Zu95YaF5rOVID4ga29rdW5haWhvdVwgOwor5o6i56m26ICFID4gdGFua3l1dXNoYVwgOwor5Yid5b+D6ICFID4gc2hvc2hpbnNoYVwgOwor5pyq6ZaL55m6ID4gbWlrYWloYXRzdVwgOwor5bqD5ZGK5aGUID4ga291a29rdXRvdVwgOwor6ZaL5ouT6ICFID4ga2FpdGFrdXNoYVwgOwor5Lq66aGe5a2mID4gamlucnVpZ2FrdVwgOwor55+l5pel5rS+ID4gY2hpbmljaGloYVwgOwor5pyA6auY5r2uID4gc2Fpa291Y2hvdVwgOwor5aSp54S25rivID4gdGVuJyduZW5rb3VcIDsKK+WPjemAhuWFkCA+IGhhbmd5YWt1amlcIDsKK+S4gOWbveiAhSA+IGlra29rdW1vbm9cIDsKK+WlveadkOaWmSA+IGtvdXphaXJ5b3VcIDsKK+WkqumZveaapiA+IHRhaXlvdXJla2lcIDsKK+W4uOeUqOeZliA+IGpvdXlvdWhla2lcIDsKK+aXqeaVmeiCsiA+IHNvdWt5b3Vpa3VcIDsKK+agvOWtkOe4niA+IGtvdXNoaWppbWFcIDsKK+WPjei7jeeahCA+IGhhbmd1bnRla2lcIDsKK+iWrOWMhee0mSA+IHlha3Vob3VzaGlcIDsKK+WFteabuemVtyA+IGhlaXNvdWNob3VcIDsKK+a8ouaWh+WtpiA+IGthbmJ1bmdha3VcIDsKK+aApeWFiOmLkiA+IGt5dXVzZW5wb3VcIDsKK+WPo+Wlh+m6lyA+IGt1Y2hpZ2lyZWlcIDsKK+ihjOaUv+azlSA+IGd5b3VzZWlob3VcIDsKK+iKseiogOiRiSA+IGhhbmFrb3RvYmFcIDsKK+mAgemHkemhjSA+IHNvdWtpbmdha3VcIDsKK+axguWpmuiAhSA+IGt5dXVrb25zaGFcIDsKK+WGjeiqv+aVtCA+IHNhaWNob3VzZWlcIDsKK+miqOimi+m2jyA+IGthemFtaWRvcmlcIDsKK+Wft+aUv+WumCA+IHNoaXNzZWlrYW5cIDsKK+iDvealveWggiA+IG5vdWdha3Vkb3VcIDsKK+WlveS4i+eJqSA+IGtvdWthYnV0c3VcIDsKK+WPjOeZuuapnyA+IHNvdWhhdHN1a2lcIDsKK+WFrOWFseWCtSA+IGtvdWt5b3VzYWlcIDsKK+aYqOW5tOadpSA+IHNha3VuZW5yYWlcIDsKK+aPkOS+m+iAhSA+IHRlaWt5b3VzaGFcIDsKK+mGuOmAoOWtpiA+IGpvdXpvdWdha3VcIDsKK+W+l+eCueWcjyA+IHRva3V0ZW5rZW5cIDsKK+Wvqee+juWtpiA+IHNoaW5iaWdha3VcIDsKK+Wls+S+v+aJgCA+IG9uJyduYWJlbmpvXCA7CivlkYnmnI3niakgPiBnb2Z1a3Vtb25vXCA7Civnl4flgJnnvqQgPiBzaG91a291Z3VuXCA7CivmoLzlrZDnqpMgPiBrb3VzaGltYWRvXCA7CivmlofmmI7lm70gPiBidW5tZWlrb2t1XCA7CivooYzmlL/mqKkgPiBneW91c2Vpa2VuXCA7Civph5HmnKjnioAgPiBraW5tb2t1c2VpXCA7Civnp5HlrabnmoQgPiBrYWdha3V0ZWtpXCA7CivmiYvmnK3lnosgPiB0ZWZ1ZGFnYXRhXCA7CivlhajoiKznmoQgPiB6ZW5wYW50ZWtpXCA7Civnibnmrorpi7wgPiB0b2t1c2h1a291XCA7CivlnKfnuK7mgKcgPiBhc3NodWt1c2VpXCA7CivlrpjmiL/plbcgPiBrYW5ib3VjaG91XCA7Civnmb3noILns5YgPiBzaGlyb3phdG91XCA7CivmmKXliIbngrkgPiBzaHVuYnVudGVuXCA7Civml6fkuLvkurogPiBreXV1c2h1amluXCA7CivokYnnt5HntKAgPiB5b3VyeW9rdXNvXCA7CivlhoXpnaLnmoQgPiBuYWltZW50ZWtpXCA7CivogrrntZDmoLggPiBoYWlrZWtrYWt1XCA7Civlm57lj47ph5EgPiBrYWlzaHV1a2luXCA7Civntr/luL3lrZAgPiB3YXRhYm91c2hpXCA7CivmgKXpgLLmtL4gPiBreXV1c2hpbmhhXCA7CivoirjooZPpmaIgPiBnZWlqdXRzdWluXCA7CivmprTlvL7noLIgPiByeXV1ZGFucG91XCA7CivlhpLpmbrlv4MgPiBib3VrZW5zaGluXCA7Civlj6/nh4PniakgPiBrYW5lbmJ1dHN1XCA7Civml6XmnKzkuIAgPiBuaWhvbicnaWNoaVwgOwor5L+u57e06ICFID4gc2h1dXJlbnNoYVwgOwor5Y+N5bCE6Y+hID4gaGFuc2hha3lvdVwgOwor5LqM55u06KeSID4gbmljaG9ra2FrdVwgOwor5Z6L5aSJ5o+bID4ga2F0YWhlbmthblwgOwor5Y675Yui54mbID4ga3lvc2VpdXNoaVwgOwor54qv572q5a2mID4gaGFuemFpZ2FrdVwgOwor5Y6f57GN5ZywID4gZ2Vuc2VraWNoaVwgOwor5oCn6YGT5b6zID4gc2VpZG91dG9rdVwgOwor5bmz5ruR5YyWID4gaGVpa2F0c3VrYVwgOwor6YO15L6/566xID4geXV1YmluYmFrb1wgOwor5Y+X5L+h5paZID4ganVzaGlucnlvdVwgOwor5YaN57WE57mUID4gc2Fpc29zaGlraVwgOwor576O6KGT55WMID4gYmlqdXRzdWthaVwgOwor5LiN562J5byPID4gZnVkb3VzaGlraVwgOwor57SE5a6a5pu4ID4geWFrdWpvdXNob1wgOwor5LiJ566H5pelID4gc2FuZ2FuaWNoaVwgOwor55m656Wl5ZywID4gaGFzc2hvdWNoaVwgOwor5Yud5omL5Y+jID4ga2F0dGVndWNoaVwgOwor5aSV6aOf5b6MID4geXV1c2hva3Vnb1wgOwor5pCs5YWl5pelID4gaGFuJydueXV1YmlcIDsKK+ixquWVhuWxpCA+IGdvdXNob3Vzb3VcIDsKK+WltOixhuiFkCA+IHlha2tvZG91ZnVcIDsKK+aEn+immuirliA+IGthbmtha3Vyb25cIDsKK+WbveeUo+i7iiA+IGtva3VzYW5zaGFcIDsKK+S4jea1gemAmiA+IGZ1cnl1dXRzdXVcIDsKK+api+mgreWgoSA+IGt5b3V0b3Vob3VcIDsKK+Wkj+aZgumWkyA+IG5hdHN1amlrYW5cIDsKK+efs+eCreWxpCA+IHNla2l0YW5zb3VcIDsKK+e1ueS4gOWMuSA+IGtpbnVpcHBpa2lcIDsKK+W7uueZveabuCA+IGtlbnBha3VzaG9cIDsKK+a2iOmYsuazlSA+IHNob3Vib3Vob3VcIDsKK+S4rei/keadsSA+IGNodXVraW50b3VcIDsKK+iovOS6uuWPsCA+IHNob3VuaW5kYWlcIDsKK+awtOeUo+alrSA+IHN1aXNhbmd5b3VcIDsKK+Wlh+aDs+absiA+IGtpc291a3lva3VcIDsKK+avlOS+i+W8jyA+IGhpcmVpc2hpa2lcIDsKK+eUt+aJgOW4ryA+IG90b2tvam90YWlcIDsKK+S/ruaVtOeJiCA+IHNodXVzZWloYW5cIDsKK+WGt+awtOa1tCA+IHJlaXN1aXlva3VcIDsKK+Wkj+e+vee5lCA+IG5hdHN1YmFvcmlcIDsKK+ikkuiogOiRiSA+IGhvbWVrb3RvYmFcIDsKK+S6i+WLmeacuiA+IGppbXVkenVrdWVcIDsKK+S4u+WCrOWbvSA+IHNodXNhaWtva3VcIDsKK+Wkp+WkluWIiCA+IG9vc290b2dhcmlcIDsKK+a4heeul+S6uiA+IHNlaXNhbicnbmluXCA7CivkvY/msJHnpaggPiBqdXVtaW5oeW91XCA7CivnhKHnt5rlsYAgPiBtdXNlbmt5b2t1XCA7CivmgqrmnZDmlpkgPiBha3V6YWlyeW91XCA7Civml6XnhafoqIggPiBuaXNzaG91a2VpXCA7CivmlK/mjIHnjocgPiBzaGlqaXJpdHN1XCA7CivkuozpgKPnmbogPiBuaXJlbnBhdHN1XCA7CivlhbfosaHnmoQgPiBndXNob3V0ZWtpXCA7Civlia/mirXlvZMgPiBmdWt1dGVpdG91XCA7Civog7johpzngo4gPiBreW91bWFrdWVuXCA7CivpmaTmub/lmaggPiBqb3NoaXRzdWtpXCA7CivkuZfmj5vpp4UgPiBub3Jpa2FlZWtpXCA7Civlj6TmnKzlsYsgPiBmdXJ1aG9uJyd5YVwgOwor5beo5aSn55eHID4ga3lvZGFpc2hvdVwgOwor55+l5pel5a62ID4gY2hpbmljaGlrYVwgOwor55m955y86KaWID4gaGFrdWdhbnNoaVwgOwor54Wn5bCE5rOVID4gc2hvdXNoYWhvdVwgOwor6LWk5L+h5Y+3ID4gYWthc2hpbmdvdVwgOwor6ZW35pa55b2iID4gY2hvdWhvdWtlaVwgOwor5LiH5Zu95Y+yID4gYmFua29rdXNoaVwgOwor6YCg5YW15bugID4gem91aGVpc2hvdVwgOwor5p2x5Lqs5rm+ID4gdG91a3lvdXdhblwgOwor54us5Ym15oCnID4gZG9rdXNvdXNlaVwgOwor5pS+5rWq55mWID4gaG91cm91aGVraVwgOwor6KGM5pS/5a6YID4gZ3lvdXNlaWthblwgOwor5rKh6Laj5ZGzID4gYm90c3VzaHVtaVwgOwor6Zm26YWU5aKDID4gdG91c3Vpa3lvdVwgOwor5Y+N5bCE6KeSID4gaGFuc2hha2FrdVwgOwor5YWs55Sf5ravID4ga291c2hvdWdhaVwgOwor54m55Yq56JasID4gdG9ra291eWFrdVwgOwor5aSa6aCF5byPID4gdGFrb3VzaGlraVwgOwor6KGo5oOF562LID4gaHlvdWpvdWtpblwgOwor5Yip55uK546HID4gcmlla2lyaXRzdVwgOwor5LiJ5ouN5a2QID4gc2FuYnlvdXNoaVwgOwor6YeP6LKp5bqXID4gcnlvdWhhbnRlblwgOwor57eo6ZuG5a2QID4gaGVuc2h1dXNoaVwgOwor5YaX6ZW35oCnID4gam91Y2hvdXNlaVwgOwor6by755y86Y+hID4gaGFuYW1lZ2FuZVwgOwor5YaF6KaW6Y+hID4gbmFpc2hpa3lvdVwgOwor6LWk57+h57+gID4gYWthc2hvdWJpblwgOwor54ax5qmf6ZaiID4gbmV0c3VraWthblwgOwor5pGC6K236IW6ID4gc2V0c3Vnb3NlblwgOwor5a++5oqX562WID4gdGFpa291c2FrdVwgOwor6L+R5Luj5YqHID4ga2luZGFpZ2VraVwgOwor5b655bqV55qEID4gdGV0dGVpdGVraVwgOwor5q205Luj5Y+yID4gcmVraWRhaXNoaVwgOwor5pep6KaL6KGoID4gaGF5YW1paHlvdVwgOwor5oqV5bCE6KeSID4gdG91c2hha2FrdVwgOwor55uj552j6ICFID4ga2FudG9rdXNoYVwgOwor5YWx55Sj5ZyPID4ga3lvdXNhbmtlblwgOwor5a6f6KGM5LitID4gamlra291Y2h1dVwgOwor54yb5pS75pKDID4gbW91a291Z2VraVwgOwor6Zu75a2Q5q67ID4gZGVuc2hpa2FrdVwgOwor5p2R5b255aC0ID4gbXVyYXlha3ViYVwgOwor6Zm46Luf6aKoID4gcmlrdW5hbnB1dVwgOwor5pS/5rK76ImyID4gc2VpamlzaG9rdVwgOwor5q+N5a2Q6I2JID4gaGFoYWtvZ3VzYVwgOwor54m55b6F55SfID4gdG9rdXRhaXNlaVwgOwor5Lit55uk5oimID4gY2h1dWJhbnNlblwgOwor6Iie6LiP6Z20ID4gYnV0b3VndXRzdVwgOwor5aSn6Zmq5a+pID4gZGFpYmFpc2hpblwgOwor54Sh57iB5LuPID4gbXVlbmJvdG9rZVwgOwor6KqN5a6a6Ki8ID4gbmludGVpc2hvdVwgOwor576O6KGT5pu4ID4gYmlqdXRzdXNob1wgOwor6KiI6YeP5rOVID4ga2VpcnlvdWhvdVwgOwor5Y6f5oyv5YuVID4gZ2Vuc2hpbmRvdVwgOwor5a2m6Iq45LyaID4gZ2FrdWdlaWthaVwgOwor6ISC6IKq5b+DID4gc2hpYm91c2hpblwgOwor54u46aWC6aOpID4gdGFudWtpdWRvblwgOwor5rC055Sj5bqBID4gc3Vpc2FuY2hvdVwgOwor5ZCI5oay55qEID4gZ291a2VudGVraVwgOwor5Li75L2T55qEID4gc2h1dGFpdGVraVwgOwor56qD55uX54uCID4gc2V0dG91a3lvdVwgOwor5aWz5LiA6IisID4gb24nJ25haXBwYW5cIDsKK+axuuWLnee3miA+IGtlc3Nob3VzZW5cIDsKK+WPo+S4iuaJiyA+IGt1Y2hpam91enVcIDsKK+W3peWgtOmVtyA+IGtvdWpvdWNob3VcIDsKK+aXl+S6jOa1gSA+IGhhdGFuaXJ5dXVcIDsKK+WNs+S9jeW8jyA+IHNva3Vpc2hpa2lcIDsKK+aHkOaflOetliA+IGthaWp1dXNha3VcIDsKK+W5u+aDs+WKhyA+IGdlbnNvdWdla2lcIDsKK+S6i+WLmeWupCA+IGppbXVzaGl0c3VcIDsKK+i2heimj+WJhyA+IGNob3VraXNva3VcIDsKK+aguOWutuaXjyA+IGtha3VrYXpva3VcIDsKK+WkleaciOWknCA+IHl1dWR6dWtleW9cIDsKK+Wkp+ihhui7iiA+IGRhaXNodXVzaGFcIDsKK+eEoeexjeiAhSA+IG11c2VraW1vbm9cIDsKK+aXpeeLrOS8iiA+IG5pY2hpZG9rdWlcIDsKK+aCque/kuaFoyA+IGFrdXNodXVrYW5cIDsKK+ehq+mFuOmKhSA+IHJ5dXVzYW5kb3VcIDsKK+awtOeUo+WtpiA+IHN1aXNhbmdha3VcIDsKK+W5uOemj+aEnyA+IGtvdWZ1a3VrYW5cIDsKK+izoOWEn+mHkSA+IGJhaXNob3VraW5cIDsKK+WFseeUo+WFmiA+IGt5b3VzYW50b3VcIDsKK+iIueadv+WhgCA+IGZ1bmFpdGFiZWlcIDsKK+WFqOWtpumAoyA+IHplbmdha3VyZW5cIDsKK+ebtOi1sOi3ryA+IGNob2t1c291cm9cIDsKK+awt+ixhuiFkCA+IGtvb3JpZG91ZnVcIDsKK+WFpeWxheiAhSA+IG55dXVreW9zaGFcIDsKK+aXpemZsOiAhSA+IGhpa2FnZW1vbm9cIDsKK+e1tue4gee3miA+IHpldHN1ZW5zZW5cIDsKK+WTgeipleS8miA+IGhpbnB5b3VrYWlcIDsKK+awtOeTtuW6pyA+IG1penVnYW1lemFcIDsKK+WQhOWbo+S9kyA+IGtha3VkYW50YWlcIDsKK+adpeadpemAsSA+IHJhaXJhaXNodXVcIDsKK+Wbm+WNgembgCA+IHNoaWp1dWthcmFcIDsKK+mAmueUqOmWgCA+IHRzdXV5b3Vtb25cIDsKK+eIqualiuaenSA+IHRzdW1heW91amlcIDsKK+aVo+mrquWxiyA+IHNhbnBhdHN1eWFcIDsKK+agoeato+WItyA+IGtvdXNlaXp1cmlcIDsKK+m7kuecvOmPoSA+IGt1cm9tZWdhbmVcIDsKK+mAoOiIuealrSA+IHpvdXNlbmd5b3VcIDsKK+ims+WKh+S8miA+IGthbmdla2lrYWlcIDsKK+WFrOWus+eXhSA+IGtvdWdhaWJ5b3VcIDsKK+WPl+S/oeWBtCA+IGp1c2hpbmdhd2FcIDsKK+S8gealreW/gyA+IGtpZ3lvdXNoaW5cIDsKK+S/rue5leW3pSA+IHNodXV6ZW5rb3VcIDsKK+WNmOi6q+mKgyA+IHRhbnNoaW5qdXVcIDsKK+eZvuW5tOebriA+IGh5YWt1bmVubWVcIDsKK+ayoeeQhuaDsyA+IGJvdHN1cmlzb3VcIDsKK+mdmeiEiOeCjiA+IGpvdW15YWt1ZW5cIDsKK+WFqOiDveiAhSA+IHplbicnbm91c2hhXCA7CivlkYnmnI3llYYgPiBnb2Z1a3VzaG91XCA7CivnnIHos4fmupAgPiBzaG91c2hpZ2VuXCA7Civpm4blkIjoq5YgPiBzaHV1Z291cm9uXCA7CivnpoHnhZnluK0gPiBraW4nJ2Vuc2VraVwgOwor6ZW35pa55L2TID4gY2hvdWhvdXRhaVwgOwor5Y+X5L+h5Lq6ID4ganVzaGluJyduaW5cIDsKK+aXl+S6jOaXkiA+IGhhdGFuaXJ5dXVcIDsKK+aApeWBnOi7iiA+IGt5dXV0ZWlzaGFcIDsKK+eznuW6puiDuCA+IGt1c29kb2t5b3VcIDsKK+a2iOmYsuWjqyA+IHNob3Vib3VzaGlcIDsKK+acieeQhuW8jyA+IHl1dXJpc2hpa2lcIDsKK+e1guWIl+i7iiA+IHNodXVyZXNzaGFcIDsKK+aJgOacieagvCA+IHNob3l1dWtha3VcIDsKK+efpeimmuefpSA+IGNoaWtha3VjaGlcIDsKK+mBiuaSg+aJiyA+IHl1dWdla2lzaHVcIDsKK+ino+eGseWJpCA+IGdlbmV0c3V6YWlcIDsKK+W6l+Wxi+eJqSA+IHRlbicneWFtb25vXCA7CivpgYrmkoPmiKYgPiB5dXVnZWtpc2VuXCA7CivlsbHmsLTplqMgPiBzYW5zdWlrYWt1XCA7CivoqqzmlZnluKsgPiBzZWtreW91c2hpXCA7Civls7bluJ3lm70gPiB0b3V0ZWlrb2t1XCA7CivljZHliqPmvKIgPiBoaXJldHN1a2FuXCA7CivlhajnlJ/mtq8gPiB6ZW5zaG91Z2FpXCA7CivlhajkvJrooYYgPiB6ZW5rYWlzaHV1XCA7Civlj47lrrnogIUgPiBzaHV1eW91c2hhXCA7Civop6Ppm4blkIggPiBrYWlzaHV1Z291XCA7Civnm7jlr77nmoQgPiBzb3V0YWl0ZWtpXCA7Civnn7PngbDkubMgPiBzZWtrYWlueXV1XCA7CivlhbHmnInogIUgPiBreW91eXV1c2hhXCA7CivmjIflrprluK0gPiBzaGl0ZWlzZWtpXCA7CivllYblk4HlkI0gPiBzaG91aGlubWVpXCA7CivmoLnmnKznmoQgPiBrb25wb250ZWtpXCA7Civnvo7ooZPlsZUgPiBiaWp1dHN1dGVuXCA7CivnuJ7mqKHmp5ggPiBzaGltYW1veW91XCA7CivmtojpmLLlm6MgPiBzaG91Ym91ZGFuXCA7Civkub7okaHokIQgPiBob3NoaWJ1ZG91XCA7Civnvr3moLnou4ogPiBoYW5lZ3VydW1hXCA7Civnmbrli5XmqZ8gPiBoYXRzdWRvdWtpXCA7Civpl5jniZvlo6sgPiB0b3VneXV1c2hpXCA7CivlkIzmg4XnpaggPiBkb3Vqb3VoeW91XCA7CivlhaXkvJrph5EgPiBueXV1a2Fpa2luXCA7CivnhrHnoazljJYgPiBuZXRzdWtvdWthXCA7Civpl5jniZvloLQgPiB0b3VneXV1am91XCA7Civlj43lr77npaggPiBoYW50YWloeW91XCA7CivlhrfljbTlmaggPiByZWlreWFrdWtpXCA7CivlgJ/lhaXph5EgPiBrYXJpaXJla2luXCA7CivllYblk4HliLggPiBzaG91aGlua2VuXCA7CivmrZPmpb3ooZcgPiBrYW5yYWt1Z2FpXCA7CivnoJTliYrnm6QgPiBrZW5zYWt1YmFuXCA7CivmnKznsY3lnLAgPiBob25zZWtpY2hpXCA7CivmsJfmrJ3nl4cgPiBraXV0c3VzaG91XCA7CivmgYvlpbPmiL8gPiBrb2lueW91Ym91XCA7CivohLPnpZ7ntYwgPiBub3VzaGlua2VpXCA7CivohqDljp/nl4UgPiBrb3VnZW5ieW91XCA7Civnib3liLbnkIMgPiBrZW5zZWlreXV1XCA7CivmlrDpgKDoiLkgPiBzaGluem91c2VuXCA7CivmhJ/opprngrkgPiBrYW5rYWt1dGVuXCA7Civlgb3lkJvlrZAgPiBuaXNla3Vuc2hpXCA7Civmsbrli53ngrkgPiBrZXNzaG91dGVuXCA7CivlpJrmlbDmsbogPiB0YXN1dWtldHN1XCA7CivmhI/orZjnmoQgPiBpc2hpa2l0ZWtpXCA7Civlj43lsITnmoQgPiBoYW5zaGF0ZWtpXCA7CivkuI3mtLvnmbogPiBmdWthcHBhdHN1XCA7Civlj5fpoJjoqLwgPiBqdXJ5b3VzaG91XCA7CivntJTmloflraYgPiBqdW5idW5nYWt1XCA7CivnibnmgKXliLggPiB0b2treXV1a2VuXCA7Civpu4Tph5HooZMgPiBvdWdvbmp1dHN1XCA7Civku67li5jlrpogPiBrYXJpa2Fuam91XCA7CivpnIrplbfpoZ4gPiByZWljaG91cnVpXCA7Civlhajouqvlg48gPiB6ZW5zaGluem91XCA7Civlr4bovLjlk4EgPiBtaXRzdXl1aGluXCA7Civml6LoqK3nt5ogPiBraXNldHN1c2VuXCA7CivkuozpgKPlvI8gPiBuaXJlbnNoaWtpXCA7CivmuJvpgJ/mnZAgPiBnZW5zb2t1emFpXCA7CivlhYnno4HmsJcgPiBoaWthcmlqaWtpXCA7CivoqLzmmI7mm7ggPiBzaG91bWVpc2hvXCA7Civplovmi5PlnLAgPiBrYWl0YWt1Y2hpXCA7CivoqJjov7DlrZAgPiBraWp1dHN1c2hpXCA7Civku67lhY3oqLEgPiBrYXJpbWVua3lvXCA7CivljbDosaHnmoQgPiBpbnNob3V0ZWtpXCA7Civml6fmlZnlvpIgPiBreXV1a3lvdXRvXCA7Civosqjniankvr8gPiBrYW1vdHN1YmluXCA7CivmnInmnJvmoKogPiB5dXVib3VrYWJ1XCA7CivmhaPkvovnmoQgPiBrYW5yZWl0ZWtpXCA7CivoprPnm7jlraYgPiBrYW5zb3VnYWt1XCA7CivogonnlKjnqK4gPiBuaWt1eW91c2h1XCA7Civln7rlnLDlsYAgPiBraWNoaWt5b2t1XCA7CivoppbnpZ7ntYwgPiBzaGlzaGlua2VpXCA7Civpganlv5znl4cgPiB0ZWtpb3VzaG91XCA7CivkuK3pq5jnlJ8gPiBjaHV1a291c2VpXCA7CivkuIvmupblgpkgPiBzaGl0YWp1bmJpXCA7Civkv6HpoLzmhJ8gPiBzaGlucmFpa2FuXCA7CivnmbrphbXkubMgPiBoYWtrb3VueXV1XCA7Civml4XoirjkurogPiB0YWJpZ2VpbmluXCA7Civkurrpm6rltKkgPiBoaXRvbmFkYXJlXCA7CivkuLvkv6Hlj7cgPiBzaHVzaGluZ291XCA7Civkv6HlpYnogIUgPiBzaGlucG91c2hhXCA7CivlsLrosqvms5UgPiBzaGFra2FuaG91XCA7Civnvo7ooZPlk4EgPiBiaWp1dHN1aGluXCA7CivpgJrkv6HosrsgPiB0c3V1c2hpbmhpXCA7Civkv6HpoLzmgKcgPiBzaGlucmFpc2VpXCA7CivmhJ/opprmr5sgPiBrYW5rYWt1bW91XCA7CivpoIblv5zmgKcgPiBqdW4nJ25vdXNlaVwgOwor5bi457+S6ICFID4gam91c2h1dXNoYVwgOwor576O6KGT5Y+yID4gYmlqdXRzdXNoaVwgOwor5qqA6YKj5a+6ID4gZGFuJyduYWRlcmFcIDsKK+WNg+ats+mjtCA+IGNoaXRvc2VhbWVcIDsKK+ijveadkOalrSA+IHNlaXphaWd5b3VcIDsKK+aWsOapn+i7uCA+IHNoaW5raWppa3VcIDsKK+iCiemlhemgrSA+IG5pa3VtYW5qdXVcIDsKK+awtOizh+a6kCA+IG1penVzaGlnZW5cIDsKK+eZvemzpeW6pyA+IGhha3VjaG91emFcIDsKK+eZvuWIhuavlCA+IGh5YWt1YnVuaGlcIDsKK+ippumHkeefsyA+IHNoaWtpbnNla2lcIDsKK+WEquetieizniA+IHl1dXRvdXNob3VcIDsKK+Wkp+ihhue0mSA+IHRhaXNodXVzaGlcIDsKK+iKseimi+aZgiA+IGhhbmFtaWRva2lcIDsKK+Whl+aTpuWJpCA+IHRvc2F0c3V6YWlcIDsKK+acqOijveWTgSA+IG1va3VzZWloaW5cIDsKK+WGheinkueQgyA+IG5haWtha2t5dXVcIDsKK+mlkuiIjOWutiA+IGpvdXpldHN1a2FcIDsKK+eGseWHpueQhiA+IG5ldHN1c2hvcmlcIDsKK+aWsOW5uee3miA+IHNoaW5rYW5zZW5cIDsKK+WLleWQkeihqCA+IGRvdWtvdWh5b3VcIDsKK+S6pOmfv+ipqSA+IGtvdWt5b3VzaGlcIDsKK+aMqOaLtueKtiA+IGFpc2F0c3Vqb3VcIDsKK+mZpeayoea5liA+IGthbmJvdHN1a29cIDsKK+S4jea0u+a6jCA+IGZ1a2FwcGF0c3VcIDsKK+S/oeWkqee/gSA+IHNoaW50ZW4nJ291XCA7Civotbfpm7vlipsgPiBraWRlbnJ5b2t1XCA7Civpjq7prYLnpa0gPiBjaGlua29uc2FpXCA7CivoiLbmnaXlk4EgPiBoYWt1cmFpaGluXCA7CivmiYvloannmr8gPiB0ZXNoaW96YXJhXCA7Civpu5LlupXnv7MgPiBrdXJvc29rb2hpXCA7CivlrabnlJ/luL0gPiBnYWt1c2VpYm91XCA7CivmsLTmoL3ln7kgPiBtaXp1c2FpYmFpXCA7CivllrbpgKDniakgPiBlaXpvdWJ1dHN1XCA7Civml6XnhafmqKkgPiBuaXNzaG91a2VuXCA7CivlhYnph4/lrZAgPiBrb3VyeW91c2hpXCA7CivkuIfmhJrnr4AgPiBiYW5ndXNldHN1XCA7Civog73ni4LoqIAgPiBub3VreW91Z2VuXCA7CivmlK/mjIHlipsgPiBzaGlqaXJ5b2t1XCA7CivntbHoqIjooaggPiB0b3VrZWloeW91XCA7CivlhYjlj7LlraYgPiBzZW5zaGlnYWt1XCA7CivnoavphbjntJkgPiByeXV1c2Fuc2hpXCA7CivmgKflt67liKUgPiBzZWlzYWJldHN1XCA7CivmnKzlm73kurogPiBob25nb2t1amluXCA7Civlt6joppbnmoQgPiBreW9zaGl0ZWtpXCA7Civou6LovY3mqZ8gPiB0ZW50ZXRzdWtpXCA7Civooajlv6DnopEgPiBoeW91Y2h1dWhpXCA7Civlj47os4TnvaogPiBzaHV1d2FpemFpXCA7CivolqzliaTluKsgPiB5YWt1emFpc2hpXCA7CivlvozopovkurogPiBrb3VrZW4nJ25pblwgOwor6YCj55So5b2iID4gcmVuJyd5b3VrZWlcIDsKK+S9meeZveazqCA+IHlvaGFrdWNodXVcIDsKK+S8nee1seeahCA+IGRlbnRvdXRla2lcIDsKK+imquaoqeiAhSA+IHNoaW5rZW5zaGFcIDsKK+WGhuWkqeS6lSA+IG1hcnV0ZW5qb3VcIDsKK+WwkeW5tOmZoiA+IHNob3VuZW4nJ2luXCA7CivmrbTpnZLngq0gPiByZWtpc2VpdGFuXCA7CivooI/lt6XoiLkgPiBrYW5pa291c2VuXCA7Civnm67lhavliIYgPiBtZWhhY2hpYnVuXCA7Civlm5vljYHogqkgPiBzaGlqdXVrYXRhXCA7Civmpb3oprPnmoQgPiByYWtrYW50ZWtpXCA7Civlv4PlgZzmraIgPiBzaGludGVpc2hpXCA7CivpgJ/lsITnoLIgPiBzb2t1c2hhaG91XCA7CivlpJrop5LnmoQgPiB0YWtha3V0ZWtpXCA7CivmlrDlu7rmnZAgPiBzaGlua2VuemFpXCA7Civmsbrli53miKYgPiBrZXNzaG91c2VuXCA7CivkuI3lv4XopoEgPiBmdWhpdHN1eW91XCA7CivmiYHpnZLnn7MgPiBoZW5zZWlzZWtpXCA7Civlj4znkIPoj4wgPiBzb3VreXV1a2luXCA7CivmsLTnvornvq4gPiBtaXp1eW91a2FuXCA7CivmipzmnKznmoQgPiBiYXBwb250ZWtpXCA7CivljZjnmbrmqZ8gPiB0YW5wYXRzdWtpXCA7Civou6LpgIHlhYggPiB0ZW5zb3VzYWtpXCA7CivlhaXkvJrogIUgPiBueXV1a2Fpc2hhXCA7CivkuLjmnKjoiLkgPiBtYXJ1a2lidW5lXCA7CivkuLjmnKjoiJ8gPiBtYXJ1a2lidW5lXCA7CivluIzph4jmtrIgPiBraXNoYWt1ZWtpXCA7CivmnIjmm5zml6UgPiBnZXRzdXlvdWJpXCA7CivmnIDos4Pms5UgPiBzYWljaGluaG91XCA7CivpnanmlrDmtL4gPiBrYWt1c2hpbmhhXCA7CivmjqLmsYLogIUgPiB0YW5reXV1c2hhXCA7CivmiKbnl4XmrbsgPiBzZW5ieW91c2hpXCA7CivnlLfmgKfnmoQgPiBkYW5zZWl0ZWtpXCA7CivkubPphbjoj4wgPiBueXV1c2Fua2luXCA7CivliY3nhafnga8gPiB6ZW5zaG91dG91XCA7Civohbjmjbvou6IgPiBjaG91bmVudGVuXCA7CivopqrliIbmoKogPiBveWFidW5rYWJ1XCA7CivlrabnlKjlk4EgPiBnYWt1eW91aGluXCA7CivnibnmrormgKcgPiB0b2t1c2h1c2VpXCA7CivljZjoibLnlLsgPiB0YW5zaG9rdWdhXCA7Civku5Xnq4vliLggPiBzaGl0YXRla2VuXCA7CivpmbDlvIHmhbYgPiBrYWdlYmVua2VpXCA7Civmt7fooYDlhZAgPiBrb25rZXRzdWppXCA7Civosqnlo7LlhYMgPiBoYW5iYWltb3RvXCA7CivluLjnv5Lniq8gPiBqb3VzaHV1aGFuXCA7CivmuIXmtrzliaQgPiBzZWlyeW91emFpXCA7CivmnIDlsI/lgKQgPiBzYWlzaG91Y2hpXCA7CivmsLTml4/ppKggPiBzdWl6b2t1a2FuXCA7CivlhbHniq/ogIUgPiBreW91aGFuc2hhXCA7Civlr7/lj7jpo68gPiBzdXNoaW1lc2hpXCA7CivmgKXou6Lmj5sgPiBreXV1dGVua2FuXCA7Civmi5vlvoXnirYgPiBzaG91dGFpam91XCA7CivmiZPmkrLlgrcgPiBkYWJva3VzaG91XCA7CivnibnlvoXliLggPiB0b2t1dGFpa2VuXCA7Civmr5Lkurrlj4IgPiBkb2t1bmluamluXCA7CivlpKnnq7rokbUgPiB0ZW5qaWt1YW9pXCA7CivlpbPkuJbluK8gPiBvbicnbmFqb3RhaVwgOwor5Lq66ZaT55qEID4gbmluZ2VudGVraVwgOwor6Ki65pat5pu4ID4gc2hpbmRhbnNob1wgOwor6Jia6IuU5a2mID4gc2VudGFpZ2FrdVwgOwor5Y6f56i/5paZID4gZ2Vua291cnlvdVwgOwor55uj552j5a6YID4ga2FudG9rdWthblwgOwor5ZWG5YuZ55yBID4gc2hvdW11c2hvdVwgOwor5a6j5ZGK5pu4ID4gc2Vua29rdXNob1wgOwor5aSc5aSc5LitID4geW9ydXlvbmFrYVwgOwor6YCa5L+h57C/ID4gdHN1dXNoaW5ib1wgOwor5aCG56mN5bKpID4gdGFpc2VraWdhblwgOwor5oqR55WZ5omAID4geW9rdXJ5dXVqb1wgOwor5pKe5pyo5p2WID4gc2h1bW9rdXp1ZVwgOwor6buE6YeR546HID4gb3Vnb25yaXRzdVwgOwor5aCG56mN5bGkID4gdGFpc2VraXNvdVwgOwor5ZCI5ZSx5ZujID4gZ2Fzc2hvdWRhblwgOwor5aW95pW15omLID4ga291dGVraXNodVwgOwor5paH56ug6aGMID4gYnVuc2hvdWRhaVwgOwor6YeR54mp5bGLID4ga2FuYW1vbm95YVwgOwor5Zuj6I+K56WtID4gZGFuZ2lrdXNhaVwgOwor57ep6KGd5rayID4ga2Fuc2hvdWVraVwgOwor5a+E5a6/6IiOID4ga2lzaHVrdXNoYVwgOwor5r2c5pyb6Y+hID4gc2VuYm91a3lvdVwgOwor5paw5bem57+8ID4gc2hpbnNheW9rdVwgOwor6YGh5Y+K55qEID4gc29reXV1dGVraVwgOwor5ZCM5oOF5b+DID4gZG91am91c2hpblwgOwor5LiL56i95Y+kID4gc2hpdGFnZWlrb1wgOwor56u25LqJ6ICFID4ga3lvdXNvdXNoYVwgOwor5ZWG5bqX6KGXID4gc2hvdXRlbmdhaVwgOwor546J5omL566xID4gdGFtYXRlYmFrb1wgOwor5LiK5Y2K6LqrID4gam91aGFuc2hpblwgOwor5ris5a6a5rOVID4gc29rdXRlaWhvdVwgOwor6ZmN5Zyn5YmkID4ga291YXRzdXphaVwgOwor5oCl5YK+5pacID4ga3l1dWtlaXNoYVwgOwor5Lih5qOy6aGeID4gcnlvdXNlaXJ1aVwgOwor5pyA5LiK57SaID4gc2Fpam91a3l1dVwgOwor5YGD5pyI5YiAID4gZW5nZXRzdXRvdVwgOwor55yL6K235Y2SID4ga2FuZ29zb3RzdVwgOwor572r57ea6KGoID4ga2Vpc2VuaHlvdVwgOwor6Yed5Zyf56ucID4gaGFyaW1vZ3VyYVwgOwor54Gv5Y+w5a6IID4gdG91ZGFpbW9yaVwgOwor5Luu5YWN54q2ID4ga2FyaW1lbmpvdVwgOwor5by+6Jas5bqrID4gZGFuJyd5YWt1a29cIDsKK+WQiOazleeahCA+IGdvdWhvdXRla2lcIDsKK+aMq+aKmOaEnyA+IHphc2V0c3VrYW5cIDsKK+W5suiRoeiQhCA+IGhvc2hpYnVkb3VcIDsKK+i1pOaWsOiBniA+IGFrYXNoaW5idW5cIDsKK+iGoOedgOiqniA+IGtvdWNoYWt1Z29cIDsKK+e1guatouW9oiA+IHNodXVzaGlrZWlcIDsKK+WHuua4r+iIuSA+IHNodWtrb3VzZW5cIDsKK+i8uOWFpemhjSA+IHl1bnl1dWdha3VcIDsKK+eUsuauu+mhniA+IGtvdWtha3VydWlcIDsKK+manOWjgeeUuyA+IHNob3VoZWtpZ2FcIDsKK+a6tuaOpeapnyA+IHlvdXNldHN1a2lcIDsKK+S5l+e1hOWToSA+IG5vcmlrdW1paW5cIDsKK+iFjuiHk+eXhSA+IGppbnpvdWJ5b3VcIDsKK+WPr+aQrOW8jyA+IGthaGFuc2hpa2lcIDsKK+WBpeethuWutiA+IGtlbnBpdHN1a2FcIDsKK+ato+S4ree3miA+IHNlaWNodXVzZW5cIDsKK+WNg+W5tOmWkyA+IHNlbicnbmVua2FuXCA7Civmo5Lno4Hnn7MgPiBib3VqaXNoYWt1XCA7CivoprPos57prZogPiBrYW5zaG91Z3lvXCA7CivnpZ7lrabmoKEgPiBzaGluZ2Fra291XCA7CivkvZzmpa3mnI0gPiBzYWd5b3VmdWt1XCA7CivnmbrnnYDmiYAgPiBoYXRjaGFrdWpvXCA7Civopqrov5HmhJ8gPiBzaGlua2lua2FuXCA7CivkubHms6XmtYEgPiByYW5kZWlyeXV1XCA7CivlvZPnm7Tlk6EgPiB0b3VjaG9rdWluXCA7CivntbHoqIjnmoQgPiB0b3VrZWl0ZWtpXCA7CivoirjooZPlrrYgPiBnZWlqdXRzdWthXCA7CivnjoTplqLlhYggPiBnZW5rYW5zYWtpXCA7Civmt7HmtbfprZogPiBzaGlua2FpZ3lvXCA7CivlkIzlv5fnmoQgPiBkb3VzaGl0ZWtpXCA7CivkvqHljYPph5EgPiBhdGFpc2Vua2luXCA7CivkuZ3lm57miKYgPiBreXV1a2Fpc2VuXCA7CivljYrmsLjkuYUgPiBoYW4nJ2Vpa3l1dVwgOwor6ZuR5b255ammID4gemF0c3Vla2lmdVwgOwor5Ya35YeN5qWtID4gcmVpdG91Z3lvdVwgOwor5Lih55Sf6aGeID4gcnlvdXNlaXJ1aVwgOwor5YSS5pWZ55qEID4ganVreW91dGVraVwgOwor5o+a6Zm46ImmID4geW91cmlrdWthblwgOwor6YeN6Ky55oWOID4ganV1a2luc2hpblwgOwor5YeN6LGG6IWQID4gc2hpbWlkb3VmdVwgOwor5rC46LC35ZySID4gbmFnYXRhbmllblwgOwor5LqM5qe95byPID4gbmlzb3VzaGlraVwgOwor55u45LmX56mNID4gc291am91c2VraVwgOwor6I+M6aGe5a2mID4ga2lucnVpZ2FrdVwgOwor6ZuR5b255aSrID4gemF0c3Vla2lmdVwgOwor5paw5YiK5pu4ID4gc2hpbmthbnNob1wgOwor6Z2S5bCR5bm0ID4gc2Vpc2hvdW5lblwgOwor5o6o6YCy6ICFID4gc3Vpc2hpbnNoYVwgOwor5YiX5bit6ICFID4gcmVzc2VraXNoYVwgOwor5Zu955Sj5ZOBID4ga29rdXNhbmhpblwgOwor5oeQ5pen6KuHID4ga2Fpa3l1dWRhblwgOwor5p6v6I2J54axID4ga29zb3VuZXRzdVwgOwor5Lit55Sy5p2/ID4gY2h1dWthbnBhblwgOwor57a/5a6f5rK5ID4gbWVuaml0c3V5dVwgOwor5Z+L5LyP5q2vID4gbWFpZnVrdXNoaVwgOwor5YaF57eS5LqLID4gbmFpc2hvZ290b1wgOwor5LiA562J5Y2SID4gaXR0b3Vzb3RzdVwgOwor56We5Luj5p2JID4gamluZGFpc3VnaVwgOwor5YCk5bWp5qCqID4gbmVnYXNha2FidVwgOwor5pS/5rK75YqbID4gc2VpamlyeW9rdVwgOwor562U55Sz5pu4ID4gdG91c2hpbnNob1wgOwor5Lmx5b+D6ICFID4gcmFuc2hpbnNoYVwgOwor5Lq66ZaT5qWtID4gbmluZ2Vud2F6YVwgOwor5YWx6KyA6ICFID4ga3lvdWJvdXNoYVwgOwor5p2l6LOT5bitID4gcmFpaGluc2VraVwgOwor6Iie6LiP5puyID4gYnV0b3VreW9rdVwgOwor5L+u6KGM6ICFID4gc2h1Z3lvdXNoYVwgOwor5bO25qC555yMID4gc2hpbWFuZWtlblwgOwor5by356Gs6KuWID4ga3lvdWtvdXJvblwgOwor5rOV5rK75Zu9ID4gaG91Y2hpa29rdVwgOwor5LiN5b6X562WID4gZnV0b2t1c2FrdVwgOwor5Zyo57Gz5LitID4gemFpYmVpY2h1dVwgOwor5Yy/5ZCN5oCnID4gdG9rdW1laXNlaVwgOwor55m75bGx6Z20ID4gdG96YW5ndXRzdVwgOwor5bqn5pW354miID4gemFzaGlraXJvdVwgOwor56We5qC85YyWID4gc2hpbmtha3VrYVwgOwor6LWk5aSW57eaID4gc2VraWdhaXNlblwgOwor6Jas55So6YWSID4geWFrdXlvdXNodVwgOwor57WQ5qC46I+MID4ga2Vra2FrdWtpblwgOwor6I2J5bGl6JmrID4gem91cmltdXNoaVwgOwor5aSn6KGG5oCnID4gdGFpc2h1dXNlaVwgOwor5a+E5a6/55SfID4ga2lzaHVrdXNlaVwgOwor5piH5rGe5rC0ID4gc2hvdWtvdXN1aVwgOwor5q2m6ICF5oWEID4gbXVzaGFidXJ1aVwgOwor5paH56ug6KuWID4gYnVuc2hvdXJvblwgOwor54m56YG45ZOBID4gdG9rdXNlbmhpblwgOwor6L+R6Kaq6ICFID4ga2luc2hpbnNoYVwgOwor6KSH5pWw5b2iID4gZnVrdXN1dWtlaVwgOwor5bm96YKD5aKDID4geXV1c3Vpa3lvdVwgOwor5YaN5oqV56WoID4gc2FpdG91aHlvdVwgOwor5LiN5rS75YuVID4gZnVrYXRzdWRvdVwgOwor5YWo5a+u5Yi2ID4gemVucnlvdXNlaVwgOwor6L+95oK85LyaID4gdHN1aXRvdWthaVwgOwor55m95YW15oimID4gaGFrdWhlaXNlblwgOwor6KuL5rGC5qipID4gc2Vpa3l1dWtlblwgOwor5b+g6ZyK5aGUID4gY2h1dXJlaXRvdVwgOwor6ZqZ6ZaT6aKoID4gc3VraW1ha2F6ZVwgOwor5YWx5pyJ5ZywID4ga3lvdXl1dWNoaVwgOwor54mH54K65pu/ID4ga2F0YWdhd2FzZVwgOwor57ep6KGd5byBID4ga2Fuc2hvdWJlblwgOwor5a6/5qC56I2JID4gc2h1a2tvbnNvdVwgOwor5aSn56uL6ICFID4gb29kYXRlbW9ub1wgOwor5rOw5bGx5pyoID4gdGFpc2FuYm9rdVwgOwor5oq957Gk5Yi4ID4gY2h1dXNlbmtlblwgOwor57O454q26JmrID4gc2hpam91Y2h1dVwgOwor57W257iB5L2TID4gemV0c3VlbnRhaVwgOwor6Z2S5p6c54mpID4gc2Vpa2FidXRzdVwgOwor6YeM6KiA6JGJID4gc2F0b2tvdG9iYVwgOwor6LO86Kqt6ICFID4ga291ZG9rdXNoYVwgOwor5aOy6LK36auYID4gYmFpYmFpZGFrYVwgOwor5oy66YCy6ZqKID4gdGVpc2hpbnRhaVwgOwor6ISx5rC055eHID4gZGFzc3Vpc2hvdVwgOwor5Yun6YCy5bizID4ga2FuamluY2hvdVwgOwor5ouh5by15YyWID4ga2FrdWNob3VrYVwgOwor5q665Lq66ay8ID4gc2F0c3VqaW5raVwgOwor5rWB5YuV5oCnID4gcnl1dWRvdXNlaVwgOwor5Zub6YeN5ZSxID4gc2hpanV1c2hvdVwgOwor5pWZ6IKy6ICFID4ga3lvdWlrdXNoYVwgOwor5Y+N5a++5YG0ID4gaGFudGFpZ2F3YVwgOwor55C05LiA5by1ID4ga290b2l0Y2hvdVwgOwor5YaF5Zyo55qEID4gbmFpemFpdGVraVwgOwor5LiJ5q616LezID4gc2FuZGFudG9iaVwgOwor6aOb6LqN55qEID4gaGl5YWt1dGVraVwgOwor5omL6ZW354y/ID4gdGVuYWdhemFydVwgOwor6ICB55y86Y+hID4gcm91Z2Fua3lvdVwgOwor5Luu5Yem5YiGID4ga2FyaXNob2J1blwgOwor5YWo5Lq65qC8ID4gemVuamlua2FrdVwgOwor5YiG5rOM54mpID4gYnVucGlidXRzdVwgOwor6KuL5rGC5pu4ID4gc2Vpa3l1dXNob1wgOwor5LiN5rG65patID4gZnVrZXRzdWRhblwgOwor5YWI5YWI6YCxID4gc2Vuc2Vuc2h1dVwgOwor6Ie05ZG955qEID4gY2hpbWVpdGVraVwgOwor5Lmz55+z6IuxID4gbnl1dXNla2llaVwgOwor6LKh5pS/5a2mID4gemFpc2VpZ2FrdVwgOwor566h5bym5qW9ID4ga2FuZ2VuZ2FrdVwgOwor6aOy6aOf5bqXID4gaW5zaG9rdXRlblwgOwor57SZ6KO95ZOBID4ga2FtaXNlaWhpblwgOwor6buE6YeR5b6LID4gb3Vnb25yaXRzdVwgOwor5rOV5b6L5qGIID4gaG91cml0c3VhblwgOwor5Y2K55uy55eHID4gaGFubW91c2hvdVwgOwor56Gd6YW46YqAID4gc2hvdXNhbmdpblwgOwor6Ziy57eP55yBID4gYm91c291c2hvdVwgOwor6YCG5q+U5L6LID4gZ3lha3VoaXJlaVwgOwor5oqV5pu4566xID4gdG91c2hvYmFrb1wgOwor5Z+O5LiL55S6ID4gam91a2FtYWNoaVwgOwor54m55Yil5aeUID4gdG9rdWJldHN1aVwgOwor5p2R6Iqd5bGFID4gbXVyYXNoaWJhaVwgOwor57aZ5oGv5a2QID4gbWFtYW11c3Vrb1wgOwor55m65L+h6Z+zID4gaGFzc2hpbicnb25cIDsKK+Wbm+atu+eQgyA+IHNoaXNoaWt5dXVcIDsKK+eMrumHkeeusSA+IGtlbmtpbmJha29cIDsKK+aIpueVpeWutiA+IHNlbnJ5YWt1a2FcIDsKK+WFrOiBtOS8miA+IGtvdWNob3VrYWlcIDsKK+awl+msseeXhyA+IGtpdXRzdXNob3VcIDsKK+ikh+aVsOWbniA+IGZ1a3VzdXVrYWlcIDsKK+S8muioiOWtpiA+IGthaWtlaWdha3VcIDsKK+ewoeeVpeWMliA+IGthbnJ5YWt1a2FcIDsKK+e1pumbu+e3miA+IGt5dXVkZW5zZW5cIDsKK+WQieelpeWkqSA+IGtpc3Nob3V0ZW5cIDsKK+W+oeW9seefsyA+IG1pa2FnZWlzaGlcIDsKK+WGheWbveeUoyA+IG5haWtva3VzYW5cIDsKK+mbquaciOiKsSA+IHNldHN1Z2Vra2FcIDsKK+engeabuOeusSA+IHNoaXNob2Jha29cIDsKK+ebtOaYoOmkqCA+IGNob2t1ZWlrYW5cIDsKK+eXheeQhuWtpiA+IGJ5b3VyaWdha3VcIDsKK+W+qeWIu+eJiCA+IGZ1a2tva3ViYW5cIDsKK+mAgOW7g+eahCA+IHRhaWhhaXRla2lcIDsKK+S6uumWk+WtpiA+IG5pbmdlbmdha3VcIDsKK+S4i+edgOmhniA+IHNoaXRhZ2lydWlcIDsKK+WUkOWkieacqCA+IHRvdWhlbmJva3VcIDsKK+e3muaSruW9sSA+IHNlbnNhdHN1ZWlcIDsKK+aWsOeUn+mdoiA+IHNoaW5zZWltZW5cIDsKK+aVsOaXpeW+jCA+IHN1dWppdHN1Z29cIDsKK+i2heWQiOmHkSA+IGNob3Vnb3VraW5cIDsKK+WkmuWbveexjSA+IHRha29rdXNla2lcIDsKK+epjeeul+azlSA+IHNla2lzYW5ob3VcIDsKK+WklueCuuazlSA+IGdhaXRhbWVob3VcIDsKK+WHuuWTgeiAhSA+IHNodXBwaW5zaGFcIDsKK+immumGkuWJpCA+IGtha3VzZWl6YWlcIDsKK+mrmOWxseidtiA+IGtvdXphbmNob3VcIDsKK+i/kee4geWxniA+IGtpbicnZW56b2t1XCA7CivkuIrpgZTpg6ggPiBrYW5kYWNoaW1lXCA7Civlj6/pjZvpiYQgPiBrYXRhbnRldHN1XCA7Civlv4PnkIbnmoQgPiBzaGlucml0ZWtpXCA7CivkuZfmj5vliLggPiBub3Jpa2Fla2VuXCA7CivmlZnogrLnlYwgPiBreW91aWt1a2FpXCA7CivpmbDmpbXnt5ogPiBpbmt5b2t1c2VuXCA7CivljYroiYfouqsgPiBoYW50ZWlzaGluXCA7CivopqrlhYTlvJ8gPiBveWFreW91ZGFpXCA7Civml4XppKjmpa0gPiByeW9rYW5neW91XCA7CivlrabmnJ/mnKsgPiBnYWtraW1hdHN1XCA7CivliLDmnaXniakgPiB0b3VyYWltb25vXCA7Civmspbku7Lku5UgPiBva2luYWthc2hpXCA7CivlpJblm73oo70gPiBnYWlrb2t1c2VpXCA7CivntYLnm6TmiKYgPiBzaHV1YmFuc2VuXCA7CivpgIblhYnnt5ogPiBneWFra291c2VuXCA7CivosaHlvrTmtL4gPiBzaG91Y2hvdWhhXCA7Civli6fpgLLlhYMgPiBrYW5qaW5tb3RvXCA7CivprZrpoZ7lraYgPiBneW9ydWlnYWt1XCA7CivnuJ7nkarnkZkgPiBzaGltYW1lbm91XCA7CivnnJ/nqbrnrqEgPiBzaGlua3V1a2FuXCA7CivoiI7liKnliKUgPiBzaGFyaWJldHN1XCA7CivkuqzpmKrnpZ4gPiBrZWloYW5zaGluXCA7CivmhaPnv5Lms5UgPiBrYW5zaHV1aG91XCA7CivpoK3pmYDooosgPiB6dWRhYnVrdXJvXCA7CivpmbDmpbXnrqEgPiBpbmt5b2t1a2FuXCA7Civmt7flkozniakgPiBrb253YWJ1dHN1XCA7CivliIDpjZvlhrYgPiBrYXRhbmFrYWppXCA7CivmvZzkvI/mgKcgPiBzZW5wdWt1c2VpXCA7Civmi5vlvoXliLggPiBzaG91dGFpa2VuXCA7Civlj5fpm6Pnr4AgPiBqdW5hbnNldHN1XCA7CivmuKzlrprlgKQgPiBzb2t1dGVpY2hpXCA7CivljJbnsqfntJkgPiBrZXNob3VnYW1pXCA7CivlpKfmhrLnq6AgPiBkYWlrZW5zaG91XCA7CivljZjoibLlhYkgPiB0YW5zaG9ra291XCA7CivnlLLmrrvntrEgPiBrb3VrYWt1a291XCA7Civpm4blkIjkvZMgPiBzaHV1Z291dGFpXCA7Civnq4vlvoDnlJ8gPiB0YWNoaW91am91XCA7CivlrZDlrq7poLggPiBzaGlreXV1a2VpXCA7CivntYzpqJPnmoQgPiBrZWlrZW50ZWtpXCA7CivljJbnsqfnrrEgPiBrZXNob3ViYWtvXCA7CivkuoznlarmmJ8gPiBuaWJhbmJvc2hpXCA7Civms5XlvovlrrYgPiBob3VyaXRzdWthXCA7CivmtJfmv6/mnb8gPiBzZW50YWt1aXRhXCA7Civmu5HmsqLliaQgPiBrYXR0YWt1emFpXCA7Civlr77np7DmgKcgPiB0YWlzaG91c2VpXCA7CivlsJHlubTms5UgPiBzaG91bmVuaG91XCA7CivlvrPlt53lrrYgPiB0b2t1Z2F3YWtlXCA7CivmtYHli5XkvZMgPiByeXV1ZG91dGFpXCA7CivntYLliIrlj7cgPiBzaHV1a2FuZ291XCA7Civnm6Pkv67ogIUgPiBrYW5zaHV1c2hhXCA7CivlhbHnt6jogIUgPiBreW91aGVuc2hhXCA7CivntbHoqIjlraYgPiB0b3VrZWlnYWt1XCA7CivovKrpg63nt5ogPiByaW5rYWt1c2VuXCA7Civou43oiabps6UgPiBndW5rYW5kb3JpXCA7CivllYboiLnpmoogPiBzaG91c2VudGFpXCA7CivotoXmuoDlk6EgPiBjaG91bWFuJydpblwgOwor54mH5omL6Y2LID4ga2F0YXRlbmFiZVwgOwor6IKh6Zai56+AID4ga29rYW5zZXRzdVwgOwor6Kq/5ZGz5paZID4gY2hvdW1pcnlvdVwgOwor5Y+I5bCP5L2cID4gbWF0YWtvc2FrdVwgOwor5LiN5q2j55u0ID4gZnVzaG91amlraVwgOwor5rSq56mN5bGkID4ga291c2VraXNvdVwgOwor5qSc5Zyn5ZmoID4ga2VuJydhdHN1a2lcIDsKK+afk+eJqeWxiyA+IHNvbWVtb25veWFcIDsKK+mFjeiGs+S6uiA+IGhhaXplbicnbmluXCA7CivlooPnlYznt5ogPiBreW91a2Fpc2VuXCA7CivpnZnniannlLsgPiBzZWlidXRzdWdhXCA7CivmlZnogrLms5UgPiBreW91aWt1aG91XCA7Civlj47pm4bprZQgPiBzaHV1c2h1dW1hXCA7Civpm6LogbfogIUgPiByaXNob2t1c2hhXCA7CivloLHlpajph5EgPiBob3VzaG91a2luXCA7CivogqHplpPnr4AgPiBrb2thbnNldHN1XCA7CivniafluKvppKggPiBib2t1c2hpa2FuXCA7CivljaDpoJjou40gPiBzZW5yeW91Z3VuXCA7CivkuK3nlJ/ku6MgPiBjaHV1c2VpZGFpXCA7CivkuIvljYrmnJ8gPiBzaGltb2hhbmtpXCA7CivmlZnkvJrms5UgPiBreW91a2FpaG91XCA7Civljp/msLTniIYgPiBnZW5zdWliYWt1XCA7CivliLrnuY3ns7ggPiBzaGlzaHV1aXRvXCA7CivmkK3kuZfmqYsgPiB0b3Vqb3VreW91XCA7Civnn7PpubjnrrEgPiBzZWtrZW5iYWtvXCA7Civlm57ou6Lou7ggPiBrYWl0ZW5qaWt1XCA7CivliLvkuIDliLsgPiBrb2t1aWtrb2t1XCA7CivlibXpgKDnmoQgPiBzb3V6b3V0ZWtpXCA7Civnl7TlkYbnl4cgPiBjaGlob3VzaG91XCA7CivmjpLmsLTph48gPiBoYWlzdWlyeW91XCA7CivlkITmg4XloLEgPiBrYWt1am91aG91XCA7CivmoLjmlofms5UgPiBrYWt1YnVucG91XCA7CivlpKfjgIXnmoQgPiBkYWlkYWl0ZWtpXCA7Civlo7LkuIrpq5ggPiB1cmlhZ2VkYWthXCA7Civmt7HmiJDlsqkgPiBzaGluc2VpZ2FuXCA7Civog7jkuInlr7ggPiBtdW5lc2FuenVuXCA7CivlvpfmhI/lrqIgPiB0b2t1aWt5YWt1XCA7CivlvrTlhbXliLYgPiBjaG91aGVpc2VpXCA7CivmgKfmnKzog70gPiBzZWlob24nJ25vdVwgOwor5LyR6Ki65pelID4ga3l1dXNoaW5iaVwgOwor5Z+36YeR6Yu8ID4gc2hpa2tvbmdvdVwgOwor56uc55qu5be7ID4gcnl1dWhpbWFraVwgOwor5Zue5biw54axID4ga2Fpa2luZXRzdVwgOwor56Wd6LOA5LyaID4gc2h1a3VnYWthaVwgOwor55Sf5rS76LK7ID4gc2Vpa2F0c3VoaVwgOwor5rOV5YuZ5bGAID4gaG91bXVreW9rdVwgOwor5Lit5a2m5qChID4gY2h1dWdha2tvdVwgOwor5pyI6KaL6I2JID4gdHN1a2ltaXNvdVwgOwor6YCa5L+X5YyWID4gdHN1dXpva3VrYVwgOwor55u05Lqk5oCnID4gY2hva2tvdXNlaVwgOwor56iy54ax55eFID4gaW1vY2hpYnlvdVwgOwor6auY6LiP55qEID4ga291dG91dGVraVwgOwor57Wm5paZ5pelID4ga3l1dXJ5b3ViaVwgOwor5LiH5bm06Z2SID4gbWFuJyduZW5zZWlcIDsKK+Wwj+WJjeaPkCA+IHNob3V6ZW50ZWlcIDsKK+WFreS4ieWItiA+IHJva3VzYW5zZWlcIDsKK+mAoOael+WtpiA+IHpvdXJpbmdha3VcIDsKK+WFqOiyrOS7uyA+IHplbnNla2luaW5cIDsKK+eFp+aYjuW8viA+IHNob3VtZWlkYW5cIDsKK+aEm+WbveW/gyA+IGFpa29rdXNoaW5cIDsKK+efs+m5uOeavyA+IHNla2tlbnphcmFcIDsKK+S6iOWumuiqrCA+IHlvdGVpc2V0c3VcIDsKK+iEs+ehrOWhniA+IG5vdWtvdXNva3VcIDsKK+e3j+Wkp+WwhiA+IHNvdWRhaXNob3VcIDsKK+Wni+acq+WxiyA+IHNoaW1hdHN1eWFcIDsKK+WbveacieaelyA+IGtva3V5dXVyaW5cIDsKK+iWrOWtpumDqCA+IHlha3VnYWt1YnVcIDsKK+aJueWIpOWKmyA+IGhpaGFucnlva3VcIDsKK+etiei6q+WkpyA+IHRvdXNoaW5kYWlcIDsKK+e3j+aUu+aSgyA+IHNvdWtvdWdla2lcIDsKK+mrmOWxseeXhSA+IGtvdXphbmJ5b3VcIDsKK+S6lOaciOelrSA+IGdvZ2F0c3VzYWlcIDsKK+i7jealvemaiiA+IGd1bmdha3V0YWlcIDsKK+S4iemHjeWUsSA+IHNhbmp1dXNob3VcIDsKK+WNl+S6rOixhiA+IG5hbmtpbm1hbWVcIDsKK+absummrOW4qyA+IGt5b2t1YmFzaGlcIDsKK+WJr+WPuOS7pCA+IGZ1a3VzaGlyZWlcIDsKK+aYvOaXpeS4rSA+IGhpcnVoaW5ha2FcIDsKK+W4uOitmOWutiA+IGpvdXNoaWtpa2FcIDsKK+iogOiRieWwuyA+IGtvdG9iYWppcmlcIDsKK+iCuua1uOa9pCA+IGhhaXNoaW5qdW5cIDsKK+iAleS9nOiAhSA+IGtvdXNha3VzaGFcIDsKK+WQjOW/g+WGhiA+IGRvdXNoaW4nJ2VuXCA7Civoh7Tmrbvph48gPiBjaGlzaGlyeW91XCA7CivlvIHoqLzoq5YgPiBiZW5zaG91cm9uXCA7CivmlrDnmbvloLQgPiBzaGludG91am91XCA7CivlvLflipvnsokgPiBreW91cmlraWtvXCA7CivkuojlgpnlrqQgPiB5b2Jpc2hpdHN1XCA7CivlupfpoK3moKogPiB0ZW50b3VrYWJ1XCA7CivnmbrlsITolqwgPiBoYXNzaGF5YWt1XCA7CivljJbnsqfmsLQgPiBrZXNob3VtaXp1XCA7CivljYHpgLLms5UgPiBqaXNzaGluaG91XCA7CivmlofnrYblrrYgPiBidW5waXRzdWthXCA7CivlvpPph4/nqI4gPiBqdXVyeW91emVpXCA7Civnk6blsYvmoLkgPiBrYXdhcmF5YW5lXCA7CivplqLkv4Loqr8gPiBrYW5rZWljaG91XCA7CivllK/lv4Poq5YgPiB5dWlzaGlucm9uXCA7CivlirHmjK/nrqEgPiByZWlzaGlua2FuXCA7Civlhajml6XnqbogPiB6ZW4nJ25pa2t1dVwgOwor5LqM5p6a6IWwID4gbmltYWlnb3NoaVwgOwor5rWB5YiR5ZywID4gcnl1dWtlaWNoaVwgOwor5rSq56mN5LiWID4ga291c2VraXNlaVwgOwor6ZyH54G95ZywID4gc2hpbnNhaWNoaVwgOwor55y86Luf6IaPID4gZ2FuJyduYW5rb3VcIDsKK+awtOaZtuS9kyA+IHN1aXNob3V0YWlcIDsKK+eCuea7heWZqCA+IHRlbm1ldHN1a2lcIDsKK+WFhOW8n+WIhiA+IGt5b3VkYWlidW5cIDsKK+mHkemWgOapiyA+IGtpbm1vbmt5b3VcIDsKK+aZr+WLneWcsCA+IGtlaXNob3VjaGlcIDsKK+WGheaOpeWGhiA+IG5haXNldHN1ZW5cIDsKK+eUn+a0u+iLpiA+IHNlaWthdHN1a3VcIDsKK+adseeFp+WuriA+IHRvdXNob3VndXVcIDsKK+WPl+mbo+absiA+IGp1bmFua3lva3VcIDsKK+Wvvua1geWcjyA+IHRhaXJ5dXVrZW5cIDsKK+WNsemZuueJqSA+IGtpa2VuYnV0c3VcIDsKK+eglOS/rueUnyA+IGtlbnNodXVzZWlcIDsKK+i/keimquWpmiA+IGtpbnNoaW5rb25cIDsKK+S6pOiqreaWhyA+IGtvdWRva3VidW5cIDsKK+iEs+WNkuS4rSA+IG5vdXNvdGNodXVcIDsKK+eEvOatu+S9kyA+IHNob3VzaGl0YWlcIDsKK+S4gOelnuaVmSA+IGlzc2hpbmt5b3VcIDsKK+a0vuWHuuaJgCA+IGhhc2h1dHN1am9cIDsKK+aMr+WLleioiCA+IHNoaW5kb3VrZWlcIDsKK+WxiOaKmOiqniA+IGt1c3NldHN1Z29cIDsKK+absummrOWboyA+IGt5b2t1YmFkYW5cIDsKK+azqOWwhOa2siA+IGNodXVzaGFla2lcIDsKK+emj+emhOWvvyA+IGZ1a3Vyb2t1anVcIDsKK+e0meWQuembqiA+IGthbWlmdWJ1a2lcIDsKK+S7suS7i+iAhSA+IGNodXVrYWlzaGFcIDsKK+mbhumFjeS6uiA+IHNodXVoYWluaW5cIDsKK+WumuekjuW8jyA+IHRlaXNvc2hpa2lcIDsKK+ijgeWIpOmVtyA+IHNhaWJhbmNob3VcIDsKK+mbu+ipseWxgCA+IGRlbndha3lva3VcIDsKK+S/uOelv+exsyA+IGhvdXJva3VtYWlcIDsKK+iKseWQuembqiA+IGhhbmFmdWJ1a2lcIDsKK+WFteezp+exsyA+IGh5b3Vyb3VtYWlcIDsKK+inkue0sOW3pSA+IHRzdW5vemFpa3VcIDsKK+i8uOmAgeWKmyA+IHl1c291cnlva3VcIDsKK+ael+mHjuW6gSA+IHJpbicneWFjaG91XCA7CivmlK/phY3nmoQgPiBzaGloYWl0ZWtpXCA7CivlpKrpvJPmqYsgPiB0YWlrb2Jhc2hpXCA7CivnrpTlipvnsokgPiBoYWt1cmlraWtvXCA7CivnjYXlrZDpvLsgPiBzaGlzaGliYW5hXCA7CivpgKPpmorplbcgPiByZW50YWljaG91XCA7Civnq6/mnKvmqZ8gPiB0YW5tYXRzdWtpXCA7CivlkLnlpY/mpb0gPiBzdWlzb3VnYWt1XCA7CivnhrHlsITnl4UgPiBuZXNzaGFieW91XCA7CivlvrPnlKjnk7YgPiB0b2t1eW91YmluXCA7CivlpKnmtKXnpZ4gPiBhbWF0c3VrYW1pXCA7CivpmY3msLTph48gPiBrb3VzdWlyeW91XCA7Civlh7rph5HogIUgPiBzaHVra2luc2hhXCA7CivlhbjlnovnmoQgPiB0ZW5rZWl0ZWtpXCA7CivkuK3mnqLmgKcgPiBjaHV1c3V1c2VpXCA7Civov7flvanmnI0gPiBtZWlzYWlmdWt1XCA7CivkvY/lroXpm6MgPiBqdXV0YWt1bmFuXCA7CivljJbnsqfmlpkgPiBrZXNob3VyeW91XCA7Civlv4PnkIblraYgPiBzaGlucmlnYWt1XCA7CivoirPlkI3pjLIgPiBob3VtZWlyb2t1XCA7Civli5XlipvngokgPiBkb3VyeW9rdXJvXCA7CivlsI/lhZDnl4UgPiBzaG91bmlieW91XCA7CivlsJHlubTlm6MgPiBzaG91bmVuZGFuXCA7CivlhajpnaLnmoQgPiB6ZW5tZW50ZWtpXCA7CivlsI/luILmsJEgPiBzaG91c2hpbWluXCA7Civlia/mrKHnmoQgPiBmdWt1aml0ZWtpXCA7CivmpI7plpPmnb8gPiB0c3Vpa2FuYmFuXCA7CivoqrLnqI7njocgPiBrYXplaXJpdHN1XCA7Civpg7XmlL/nnIEgPiB5dXVzZWlzaG91XCA7CivlpI/loLTmiYAgPiBuYXRzdWJhc2hvXCA7CivljprljJbnsqcgPiBhdHN1Z2VzaG91XCA7CivkuozkurrntYQgPiBmdXRhcmlndW1pXCA7Civoh7Tlkb3lgrcgPiBjaGltZWlzaG91XCA7Civlia/pg73lv4MgPiBmdWt1dG9zaGluXCA7CivnmbrmoYjogIUgPiBoYXRzdWFuc2hhXCA7CivlvLflipvniq8gPiBnb3VyaWtpaGFuXCA7CivmtJfmv6/ku6MgPiBzZW50YWt1ZGFpXCA7CivpgYrms7PooZMgPiB5dXVlaWp1dHN1XCA7Civoo73pmbbmpa0gPiBzZWl0b3VneW91XCA7CivnkIPluqfmqJkgPiBreXV1emFoeW91XCA7CivljaDmnInmqKkgPiBzZW4nJ3l1dWtlblwgOwor5rKI5LiB6IqxID4gY2hpbmNob3VnZVwgOwor6JGh6JCE54mZID4gcG9ydXRvZ2FydVwgOwor5pWZ5Lya5aCCID4ga3lvdWthaWRvdVwgOwor5pSv5bqX6ZW3ID4gc2hpdGVuY2hvdVwgOwor5b6h5bm0546JID4gb3Rvc2hpZGFtYVwgOwor6KW/5rSL6JGxID4gc2VpeW91bmVnaVwgOwor55Oc5a6f6aGUID4gdXJpemFuZWdhb1wgOwor55yf56m65bivID4gc2hpbmt1dXRhaVwgOwor6L+96YCB5qScID4gdHN1aXNvdWtlblwgOwor5pyq5rG655ujID4gbWlrZXRzdWthblwgOwor5pmu6YCa5qCqID4gZnV0c3V1a2FidVwgOwor5ZWG5bqX5Li7ID4gc2hvdXRlbnNodVwgOwor5o6h55+z5aC0ID4gc2Fpc2VraWpvdVwgOwor54mi5ZCN5Li7ID4gcm91bmFudXNoaVwgOwor57Sv6YCy56iOID4gcnVpc2hpbnplaVwgOwor5aSn56u25LqJID4gZGFpa3lvdXNvdVwgOwor5qOu5p6X5rOVID4gc2hpbnJpbmhvdVwgOwor5ZCM6YO35Lq6ID4gZG91a3lvdWppblwgOwor5rS+5Ye65ammID4gaGFzaHV0c3VmdVwgOwor5YaF5Zu95YK1ID4gbmFpa29rdXNhaVwgOwor5pSv5bqm6YeRID4gc2hpdGFrdWtpblwgOwor5YaN5rW456S8ID4gc2Fpc2hpbnJlaVwgOwor5Zu95pyJ5ZywID4ga29rdXl1dWNoaVwgOwor6Kaq5bGV5pu4ID4gc2hpbnRlbnNob1wgOwor5buJ5oGl5b+DID4gcmVuY2hpc2hpblwgOwor55qG5pei6aOfID4ga2Fpa2lzaG9rdVwgOwor6Lui5bGF5YWIID4gdGVua3lvc2FraVwgOwor6YCj57Wh6aeFID4gcmVucmFrdWVraVwgOwor6Zu76Kmx5Y+jID4gZGVud2FndWNoaVwgOwor57K+5Yuk6LOeID4gc2Vpa2luc2hvdVwgOwor5YGl5b+Y55eHID4ga2VuYm91c2hvdVwgOwor5pWZ5Lya5Y+yID4ga3lvdWthaXNoaVwgOwor5bCR5bm05LyaID4gc2hvdW5lbmthaVwgOwor6LSL5omL57SZID4gbmlzZXRlZ2FtaVwgOwor5Ye65b6B6LuNID4gc2h1c3NlaWd1blwgOwor6KiI55S76ICFID4ga2Vpa2FrdXNoYVwgOwor5pWj5paH55qEID4gc2FuYnVudGVraVwgOwor5oy66Lqr6ZqKID4gdGVpc2hpbnRhaVwgOwor5Y+L5aW955qEID4geXV1a291dGVraVwgOwor5Y+s5Zaa54q2ID4gc2hvdWthbmpvdVwgOwor6KqN6Ki86ICFID4gbmluc2hvdXNoYVwgOwor5bm055Sj6aGNID4gbmVuc2FuZ2FrdVwgOwor5o+b566X6KGoID4ga2FuemFuaHlvdVwgOwor5rKW57iE55yMID4gb2tpbmF3YWtlblwgOwor5pWR5LiW6LuNID4ga3l1dXNlaWd1blwgOwor5rqA6Laz5oSfID4gbWFuem9rdWthblwgOwor5aWJ5YWs5YWIID4gaG91a291c2FraVwgOwor6Zu75aCx5paZID4gZGVucG91cnlvdVwgOwor6I2S5LqL5birID4gYXJhZ290b3NoaVwgOwor5qGD5rqQ6YO3ID4gdG91Z2Vua3lvdVwgOwor6JOu5pyI5bC8ID4gcmVuZ2V0c3VuaVwgOwor57695paR6JqKID4gaGFtYWRhcmFrYVwgOwor56eB5pu45Ye9ID4gc2hpc2hvYmFrb1wgOwor5py05b+15LuBID4gYm9rdW5lbmppblwgOwor5a2Q5a6u55mMID4gc2hpa3l1dWdhblwgOwor56OB5Yqb6KiIID4gamlyeW9rdWtlaVwgOwor5qC557KS6I+MID4ga29ucnl1dWtpblwgOwor57im5peL55ukID4gdGF0ZXNlbmJhblwgOwor5biC5b255omAID4gc2hpeWFrdXNob1wgOwor5qSc5rWB6KiIID4ga2Vucnl1dWtlaVwgOwor5Y2z5aOy5LyaID4gc29rdWJhaWthaVwgOwor5bu25Lq65ZOhID4gbm9iZWppbicnaW5cIDsKK+iqv+WQiOWJpCA+IGNob3Vnb3V6YWlcIDsKK+imgeeiuuiqjSA+IHlvdWtha3VuaW5cIDsKK+W4uOe3keaouSA+IGpvdXJ5b2t1anVcIDsKK+mBuOeQg+ecvCA+IHNlbmt5dXVnYW5cIDsKK+efs+WQiOaIpiA+IGlzaGlnYXNzZW5cIDsKK+WwgeW7uueahCA+IGhvdWtlbnRla2lcIDsKK+mnkOWcqOaJgCA+IGNodXV6YWlzaG9cIDsKK+S4luW4r+S4uyA+IHNldGFpbnVzaGlcIDsKK+W5s+W4uOW/gyA+IGhlaWpvdXNoaW5cIDsKK+ixhuWPsOmiqCA+IG1hbWV0YWlmdXVcIDsKK+mJseWxsealrSA+IGtvdXphbmd5b3VcIDsKK+ani+aWh+acqCA+IGtvdWJ1bm1va3VcIDsKK+WPguisgOmVtyA+IHNhbmJvdWNob3VcIDsKK+WGmeecn+mkqCA+IHNoYXNoaW5rYW5cIDsKK+aIpuaZguiJsiA+IHNlbmppc2hva3VcIDsKK+S9j+WuheihlyA+IGp1dXRha3VnYWlcIDsKK+mgk+ePjea8oiA+IHRvbmNoaW5rYW5cIDsKK+W8semFuOaApyA+IGpha3VzYW5zZWlcIDsKK+S4reS7leWIhyA+IG5ha2FqaWtpcmlcIDsKK+WIneiInuWPsCA+IGhhdHN1YnV0YWlcIDsKK+WGmeecn+mhlCA+IHNoYXNoaW5nYW9cIDsKK+WNl+S6rOeOiSA+IG5hbmtpbmRhbWFcIDsKK+iIueexjea4ryA+IHNlbnNla2lrb3VcIDsKK+eHkOeBsOefsyA+IHJpbmthaXNla2lcIDsKK+S4gOW5tOmWkyA+IGljaGluZW5rYW5cIDsKK+mdnuaOpeinpiA+IGhpc2Vzc2hva3VcIDsKK+aMgee2mueahCA+IGppem9rdXRla2lcIDsKK+WWtualreS4rSA+IGVpZ3lvdWNodXVcIDsKK+i2hemBjumhjSA+IGNob3VrYWdha3VcIDsKK+mgkOiyuOeOhyA+IHlvdGFpcml0c3VcIDsKK+S7o+eUqOiCiSA+IGRhaXlvdW5pa3VcIDsKK+aZguezu+WIlyA+IGppa2VpcmV0c3VcIDsKK+WtkOS+m+acjSA+IGtvZG9tb2Z1a3VcIDsKK+itpuimluW6gSA+IGtlaXNoaWNob3VcIDsKK+WFjeeWq+aApyA+IG1lbicnZWtpc2VpXCA7Civns7vntbHnmoQgPiBrZWl0b3V0ZWtpXCA7Civou43nlKjph5EgPiBndW4nJ3lvdWtpblwgOwor6I2S5LuV5LqLID4gYXJhc2hpZ290b1wgOwor55m75bGx5a6iID4gdG96YW5reWFrdVwgOwor5L2O6LOD6YeRID4gdGVpY2hpbmdpblwgOwor5L615a6z6ICFID4gc2hpbmdhaXNoYVwgOwor5aOy5LiK56WoID4gdXJpYWdlcHlvdVwgOwor5pS+6YCB5YqHID4gaG91c291Z2VraVwgOwor5pel56iL6KGoID4gbml0dGVpaHlvdVwgOwor5Ymv6JGs5ZOBID4gZnVrdXNvdWhpblwgOwor5oy/5YWl5paHID4gc291bnl1dWJ1blwgOwor5Yid5a2m6ICFID4gc2hvZ2FrdXNoYVwgOwor5pWZ57+S5omAID4ga3lvdXNodXVqb1wgOwor5YWl5aC06ZaAID4gbnl1dWpvdW1vblwgOwor5a6Y5bqB6KGXID4ga2FuY2hvdWdhaVwgOwor6KaP5YmH55qEID4ga2lzb2t1dGVraVwgOwor5bCP5YaK5a2QID4gc2hvdXNhc3NoaVwgOwor6Ly75bCE57eaID4gZnVrdXNoYXNlblwgOwor5Y2B6YCy5Yi2ID4gamlzc2hpbnNlaVwgOwor6KSH6KO95ZOBID4gZnVrdXNlaWhpblwgOwor6J+55bel6Ii5ID4ga2FuaWtvdXNlblwgOwor5qOu5p6X5bivID4gc2hpbnJpbnRhaVwgOwor57WQ5pm257O7ID4ga2Vzc2hvdWtlaVwgOwor54Sh56ep5bqPID4gbXVjaGl0c3Vqb1wgOwor5Li76Kaz55qEID4gc2h1a2FudGVraVwgOwor56C05aOK5YqbID4gaGFrYWlyeW9rdVwgOwor5LiJ5q+b5L2cID4gc2FubW91c2FrdVwgOwor5qGn55qu6JG6ID4gaGl3YWRhYnVraVwgOwor5Yqb57mU5qmfID4gcmlraXNob2traVwgOwor5YWt6Z2i5L2TID4gcm9rdW1lbnRhaVwgOwor55m95Lq656iuID4gaGFrdWppbnNodVwgOwor5rGO56We6KuWID4gaGFuc2hpbnJvblwgOwor5Luu5a6a5qy+ID4ga2FyaXRlaWthblwgOwor57SN56iO6aGNID4gbm91emVpZ2FrdVwgOwor6Ku45aSW5Zu9ID4gc2hvZ2Fpa29rdVwgOwor5aSW5o6l5YaGID4gZ2Fpc2V0c3VlblwgOwor6KO957SZ5qWtID4gc2Vpc2hpZ3lvdVwgOwor6Ymb55u057eaID4gZW5jaG9rdXNlblwgOwor5b+D6Zu76KiIID4gc2hpbmRlbmtlaVwgOwor56aP5Yip6KGoID4gZnVrdXJpaHlvdVwgOwor5b6u55Sf54mpID4gYmlzZWlidXRzdVwgOwor5a6d55+z5bqXID4gaG91c2VraXRlblwgOwor5Ym15qWt6ICFID4gc291Z3lvdXNoYVwgOwor6Z2p6KO95ZOBID4ga2F3YXNlaWhpblwgOwor5bmz5bm05L2cID4gaGVpbmVuc2FrdVwgOwor55Sf5oWL5a2mID4gc2VpdGFpZ2FrdVwgOwor54y/6Iqd5bGFID4gc2FydXNoaWJhaVwgOwor5aC05aSW5qCqID4gam91Z2Fpa2FidVwgOwor5byB6Ki85rOVID4gYmVuc2hvdWhvdVwgOwor5Y2U5a6a5pu4ID4ga3lvdXRlaXNob1wgOwor5LqU5pes56+AID4gZ29qdW5zZXRzdVwgOwor5Yid5Lu757WmID4gc2hvbmlua3l1dVwgOwor6Zm45pu5562JID4gcmlrdXNvdXRvdVwgOwor5aW95oiQ57i+ID4ga291c2Vpc2VraVwgOwor6YCa5pyJ5oCnID4gdHN1dXl1dXNlaVwgOwor6IG05bCO54qsID4gY2hvdWRvdWtlblwgOwor56OB5Yqb57eaID4gamlyeW9rdXNlblwgOwor6Zui5ama546HID4gcmlrb25yaXRzdVwgOwor56Gd6YW45aGpID4gc2hvdXNhbicnZW5cIDsKK+WGjeeiuuiqjSA+IHNhaWtha3VuaW5cIDsKK+eZuuahiOaoqSA+IGhhdHN1YW5rZW5cIDsKK+eahuaXouidlSA+IGthaWtpc2hva3VcIDsKK+mFquijveWTgSA+IHJha3VzZWloaW5cIDsKK+Wcn+aAp+mqqCA+IGRvc2hvdWJvbmVcIDsKK+mBv+WmiuiWrCA+IGhpbmluJyd5YWt1XCA7CivnmbrnlJ/lraYgPiBoYXNzZWlnYWt1XCA7CivkurrnqK7nmoQgPiBqaW5zaHV0ZWtpXCA7Civno4Hnn7Pnm6QgPiBqaXNoYWt1YmFuXCA7CivlpKfolLXntYwgPiBkYWl6b3VreW91XCA7CivmsrPljp/ptrggPiBrYXdhcmFoaXdhXCA7CivnlZnnva7loLQgPiByeXV1Y2hpam91XCA7CivpgJrpoqjlrZQgPiB0c3V1ZnV1a291XCA7CivopoHmsYLogIUgPiB5b3VreXV1c2hhXCA7Civoo73ns7jmpa0gPiBzZWlzaGlneW91XCA7Civnn6XmgbXooosgPiBjaGllYnVrdXJvXCA7CivntJnpiYTnoLIgPiBrYW1pZGVwcG91XCA7CivliJ3po5vooYwgPiBoYXRzdWhpa291XCA7CivnmbvlsbHlj6MgPiB0b3phbmd1Y2hpXCA7Civosq/msLTph48gPiBjaG9zdWlyeW91XCA7CivnpL7kvJrpjYsgPiBzaGFrYWluYWJlXCA7Civmrorli7Los54gPiBzaHVrdW5zaG91XCA7CivpgYvli5XpnbQgPiB1bmRvdWd1dHN1XCA7CivkuqTpmpvlm70gPiBrb3VzYWlrb2t1XCA7CivlhavmloflrZcgPiBoYWNoaW1vbmppXCA7Civplovnmbrpg6ggPiBrYWloYXRzdWJ1XCA7Civoqr/ljbDlm70gPiBjaG91aW5rb2t1XCA7Civnm7jntprnqI4gPiBzb3V6b2t1emVpXCA7CivonYvkurrlvaIgPiByb3VuaW5neW91XCA7CivkurrlkI3pjLIgPiBqaW5tZWlyb2t1XCA7CivokL3nrKznlJ8gPiByYWt1ZGFpc2VpXCA7Civlh53ngbDlsqkgPiBneW91a2FpZ2FuXCA7CivliKnku5jlgrUgPiByaXRzdWtpc2FpXCA7CivkvZPohZTlo4EgPiB0YWlrb3VoZWtpXCA7CivmjIfmjozntIsgPiBzaGlzaG91bW9uXCA7CivlpYfot6HnmoQgPiBraXNla2l0ZWtpXCA7Civom4vnmb3mupAgPiB0YW5wYWt1Z2VuXCA7Civmlq3mnKvprZQgPiBkYW5tYXRzdW1hXCA7CivoqbPkvJ3npL4gPiBzaG91ZGVuc2hhXCA7CivokazlhIDlvI8gPiBzb3VnaXNoaWtpXCA7CivmkI3lrrPpoY0gPiBzb25nYWlnYWt1XCA7CivpiYTpi7zmpa0gPiB0ZWtrb3VneW91XCA7CivkuIDlvKbnkLQgPiBpY2hpZ2Vua2luXCA7CivmmpfntKvoibIgPiBhbnNoaXNob2t1XCA7CivlhYjku7vpoIYgPiBzZW4nJ25pbmp1blwgOwor5aW95oim55qEID4ga291c2VudGVraVwgOwor6Ziy6ZW35a6YID4gYm91Y2hvdWthblwgOwor5rC05Zyn6KiIID4gc3VpYXRzdWtlaVwgOwor5aSW5Zu95YuiID4gZ2Fpa29rdXplaVwgOwor6Z+T5Zu95Lq6ID4ga2Fua29rdWppblwgOwor5pWi6ZeY6LOeID4ga2FudG91c2hvdVwgOwor5q+S6KaL5b25ID4gZG9rdW1peWFrdVwgOwor5qmf5YaF6aOfID4ga2luYWlzaG9rdVwgOwor6KOP55Wq57WEID4gdXJhYmFuZ3VtaVwgOwor5Zu96Ziy6KuWID4ga29rdWJvdXJvblwgOwor5a6Y5rGC5ZOBID4ga2Fua3l1dWhpblwgOwor5Zu96Zqb57eaID4ga29rdXNhaXNlblwgOwor6LK46YeR5bqrID4ga2FzaGlraW5rb1wgOwor6YCf6KiY6KGTID4gc29ra2lqdXRzdVwgOwor5Zu96KiA6JGJID4ga3VuaWtvdG9iYVwgOwor5YyQ6KGM55a5ID4gZnVra291c2hpblwgOwor55S65bel5aC0ID4gbWFjaGlrb3ViYVwgOwor6Iez5oCl5L6/ID4gc2hpa3l1dWJpblwgOwor5a6d5Yag56ugID4gaG91a2Fuc2hvdVwgOwor6KO957OW5qWtID4gc2VpdG91Z3lvdVwgOwor6Iul5pem6YKjID4gd2FrYWRhbicnbmFcIDsKK+aMkeaIpuiAhSA+IGNob3VzZW5zaGFcIDsKK+mJhOmJseefsyA+IHRla2tvdXNla2lcIDsKK+aoqumalOiGnCA+IG91a2FrdW1ha3VcIDsKK+WQjOalreiAhSA+IGRvdWd5b3VzaGFcIDsKK+a0u+eUqOiqniA+IGthdHN1eW91Z29cIDsKK+a3seWRvOWQuCA+IHNoaW5rb2t5dXVcIDsKK+S4ieeVqum2jyA+IHNhbmJhbmRvcmlcIDsKK+WIpOS7u+WumCA+IGhhbicnbmlua2FuXCA7Civlh7rli6TogIUgPiBzaHVra2luc2hhXCA7CivlpJblm73lgrUgPiBnYWlrb2t1c2FpXCA7CivpgKPntaHoiLkgPiByZW5yYWt1c2VuXCA7CivokL3nrKzngrkgPiByYWt1ZGFpdGVuXCA7CivpgLLooYznm7ggPiBzaGlua291c291XCA7CivkuInnlarps6UgPiBzYW5iYW5kb3JpXCA7CivmsbrlrprnmoQgPiBrZXR0ZWl0ZWtpXCA7CivogonmlpnnkIYgPiBuaWt1cnlvdXJpXCA7Civmlofms5XnmoQgPiBidW5wb3V0ZWtpXCA7Civlm73mlofms5UgPiBrb2t1YnVucG91XCA7CivotoXlvKnntJogPiBjaG91ZG9reXV1XCA7CivlpKfolLXnnIEgPiBvb2t1cmFzaG91XCA7CivmhJ/mg4XnmoQgPiBrYW5qb3V0ZWtpXCA7CivkuZflkIjoiLkgPiBub3JpYWlidW5lXCA7CivlvrPnlKjlk4EgPiB0b2t1eW91aGluXCA7Civnh4Pmlpnmo5IgPiBuZW5yeW91Ym91XCA7Civkuozml6XphZQgPiBmdXRzdWtheW9pXCA7CivnpZ7ntYzns7sgPiBzaGlua2Vpa2VpXCA7Civku67orbDplbcgPiBrYXJpZ2ljaG91XCA7Civni6zmlq3oq5YgPiBkb2t1ZGFucm9uXCA7CivlpJblm73kurogPiBnYWlrb2t1amluXCA7Civnj43ns57mvKIgPiBjaGlucHVua2FuXCA7CivmjK/li5Xmnb8gPiBzaGluZG91YmFuXCA7CivkuLvmlZnlhqAgPiBzaHVreW91a2FuXCA7CivmraPmlZnluKsgPiBzZWlreW91c2hpXCA7CivntLDoj4zlraYgPiBzYWlraW5nYWt1XCA7CivogJXkvZzlnLAgPiBrb3VzYWt1Y2hpXCA7CivmlLnpgLLlhZogPiBrYWlzaGludG91XCA7CivkuInliIbmkJcgPiBzYW5idXRzdWtpXCA7CivkvJHplpHlnLAgPiBreXV1a2FuY2hpXCA7Civou43nlKjoiaYgPiBndW4nJ3lvdWthblwgOwor5paw6IGe57SZID4gc2hpbmJ1bnNoaVwgOwor6Ly75bCE54K5ID4gZnVrdXNoYXRlblwgOwor5LiW5L+X55qEID4gc2V6b2t1dGVraVwgOwor6YeN5Zyn5oSfID4ganV1YXRzdWthblwgOwor6LGG6YmE56CyID4gbWFtZWRlcHBvdVwgOwor5YSq56eA5ZOBID4geXV1c2h1dWhpblwgOwor6YeR6J6N55WMID4ga2luJyd5dXVrYWlcIDsKK+WCjeiBtOWIuCA+IGJvdWNob3VrZW5cIDsKK+iyr+mHkeeusSA+IGNob2tpbmJha29cIDsKK+WbveWig+e3miA+IGtva2t5b3VzZW5cIDsKK+ialeezuOalrSA+IHNhbnNoaWd5b3VcIDsKK+S4gOW5tOiNiSA+IGljaGluZW5zb3VcIDsKK+mrmOWvhuW6piA+IGtvdW1pdHN1ZG9cIDsKK+WFjeeWq+S9kyA+IG1lbicnZWtpdGFpXCA7Civno4HmsJfltZAgPiBqaWtpYXJhc2hpXCA7CivmjK/li5XmlbAgPiBzaGluZG91c3V1XCA7CivlpKfnpLzmnI0gPiB0YWlyZWlmdWt1XCA7CivmlLnoia/nqK4gPiBrYWlyeW91c2h1XCA7CivljJflm73kurogPiBob2trb2t1amluXCA7CivpgKPntaHnt5ogPiByZW5yYWt1c2VuXCA7CivniaLlvbnkurogPiByb3V5YWt1bmluXCA7CivlhoXnpZ3oqIAgPiBuYWlzaHV1Z2VuXCA7CivljYrouqvlg48gPiBoYW5zaGluem91XCA7CivlpKfpu5LlpKkgPiBkYWlrb2t1dGVuXCA7CivkuI3liIblibIgPiBmdWJ1bmthdHN1XCA7Civopb/ljJfopb8gPiBzZWlob2t1c2VpXCA7CivkuK3kuJblj7IgPiBjaHV1c2Vpc2hpXCA7CivmgJLpq6rlpKkgPiBkb2hhdHN1dGVuXCA7Civlj43pnanlkb0gPiBoYW5rYWt1bWVpXCA7CivmlrDogZ7npL4gPiBzaGluYnVuc2hhXCA7CivkuIDmqZ/ou7ggPiBpY2hpa2lqaWt1XCA7Civpm4bprZrnga8gPiBzaHV1Z3lvdG91XCA7Civpm6ropovphZIgPiB5dWtpbWl6YWtlXCA7CivlnYrkuLvpoK0gPiBib3V6dWF0YW1hXCA7CivlhYjpqJPnmoQgPiBzZW5rZW50ZWtpXCA7Civpl4fntabkuI4gPiB5YW1pa3l1dXlvXCA7Civlgo3ogbTkurogPiBib3VjaG91bmluXCA7Civkuovlrp/kuIogPiBqaWppdHN1am91XCA7CivnvqnkvqDlv4MgPiBnaWt5b3VzaGluXCA7CivnlKjmsLTloIAgPiB5b3VzdWlib3JpXCA7Civku67mma7oq4sgPiBrYXJpYnVzaGluXCA7CivljaDpoJjlnLAgPiBzZW5yeW91Y2hpXCA7Civlr53oo4Xlk4EgPiBzaGluc291aGluXCA7CivnlLrlhoXkvJogPiBjaG91bmFpa2FpXCA7CivlkIznm5/lm70gPiBkb3VtZWlrb2t1XCA7CivnmbrogrLmnJ8gPiBoYXRzdWlrdWtpXCA7CivoqpPntITmm7ggPiBzZWl5YWt1c2hvXCA7CivnmbrlsZXkuK0gPiBoYXR0ZW5jaHV1XCA7CivojLbnlarnmoQgPiBjaGFiYW50ZWtpXCA7CivnibnnlKPlk4EgPiB0b2t1c2FuaGluXCA7Civoo73nsonmpa0gPiBzZWlmdW5neW91XCA7Civmtojljrvms5UgPiBzaG91a3lvaG91XCA7CivogpvploDlraYgPiBrb3Vtb25nYWt1XCA7CivlpKflj7jmlZkgPiBkYWlzaGlreW91XCA7CivlpoTmg7Pnl4cgPiBtb3Vzb3VzaG91XCA7CivlvqHnlKjpgZQgPiBnb3lvdWRhdHN1XCA7CivlsZXnpLrniakgPiB0ZW5qaWJ1dHN1XCA7Civoh6rmrrrogIUgPiBqaXNhdHN1c2hhXCA7CivlsITlubjlv4MgPiBzaGFrb3VzaGluXCA7CivkvZzmm7LlrrYgPiBzYWtreW9rdWthXCA7CivlhazmlZnkvJogPiBrb3VreW91a2FpXCA7CivoqIjnlLvmgKcgPiBrZWlrYWt1c2VpXCA7CivliIfov6vmhJ8gPiBzZXBwYWt1a2FuXCA7CivkuLjlpKnkupUgPiBtYXJ1dGVuam91XCA7CivmnqLlr4bpmaIgPiBzdXVtaXRzdWluXCA7Civlm5vlha3liKQgPiBzaGlyb2t1YmFuXCA7Civov73kvZPpqJMgPiB0c3VpdGFpa2VuXCA7CivlhaXloLTogIUgPiBueXV1am91c2hhXCA7CivljYrnl4XkurogPiBoYW5ieW91bmluXCA7CivmjZzntKLpmoogPiBzb3VzYWt1dGFpXCA7Civlj4vlpb3lm70gPiB5dXVrb3Vrb2t1XCA7Civmrr/kuIrkurogPiB0ZW5qb3ViaXRvXCA7CivmiKrmlq3mqZ8gPiBzZXRzdWRhbmtpXCA7CivnhKHmsLTniakgPiBtdXN1aWJ1dHN1XCA7CivlgaXlurfnmoQgPiBrZW5rb3V0ZWtpXCA7CivmlrDkvZPmk40gPiBzaGludGFpc291XCA7CivnqbrkuK3nt5ogPiBrdXVjaHV1c2VuXCA7CivnlLDoiI7pgZMgPiBpbmFrYW1pY2hpXCA7Civms6LkuYPoirEgPiBuYW1pbm9oYW5hXCA7Civlgbblg4/mlZkgPiBndXV6b3VreW91XCA7CivnpZ7oqbHlraYgPiBzaGlud2FnYWt1XCA7Civnm7jntprmqKkgPiBzb3V6b2t1a2VuXCA7CivmgKfmlZnogrIgPiBzZWlreW91aWt1XCA7CivliY3lk6jnt5ogPiB6ZW5zaG91c2VuXCA7Civni6zlpY/ogIUgPiBkb2t1c291c2hhXCA7CivotaTooYDnkIMgPiBzZWtrZWtreXV1XCA7CivlpKnlj7DlrpcgPiB0ZW5kYWlzaHV1XCA7Civou43mpb3miYsgPiBndW5nYWt1c2h1XCA7Civou43oiablt7sgPiBndW5rYW5tYWtpXCA7CivmmpfopJDoibIgPiBhbmthc3Nob2t1XCA7CivpgIbkvZznlKggPiBneWFrdXNheW91XCA7CivmjJHmiKbnirYgPiBjaG91c2Vuam91XCA7CivmpJzph4/nt5ogPiBrZW5yeW91c2VuXCA7CivntrLmnZPlrZAgPiBhbWlqYWt1c2hpXCA7Civlho3ms6jmlocgPiBzYWljaHV1bW9uXCA7CivlhoXlj43otrMgPiBuYWloYW5zb2t1XCA7CivnpL7nlKjml48gPiBzaGF5b3V6b2t1XCA7CivlubTlsJHogIUgPiBuZW5zaG91c2hhXCA7CivmlrDnlJ/ku6MgPiBzaGluc2VpZGFpXCA7Civkv53nrqHniakgPiBob2thbmJ1dHN1XCA7CivlhKrli53ogIUgPiB5dXVzaG91c2hhXCA7CivmlLnoia/ngrkgPiBrYWlyeW91dGVuXCA7CivntabmjpLmsLQgPiBreXV1aGFpc3VpXCA7CivlpKnnnLzpj6EgPiB0ZW5nYW5reW91XCA7CivkuInpgKPli50gPiBzYW5yZW5zaG91XCA7CivkuI3nmbrlvL4gPiBmdWhhdHN1ZGFuXCA7CivljYrlrpjnmoQgPiBoYW5rYW50ZWtpXCA7CivmjK/li5XlrZAgPiBzaGluZG91c2hpXCA7CivmtLvnmbrljJYgPiBrYXBwYXRzdWthXCA7Civlj47pm4blrrYgPiBzaHV1c2h1dWthXCA7CivphbjljJbpiYQgPiBzYW5rYXRldHN1XCA7CivmlrDkurrnjosgPiBzaGluamluJydvdVwgOwor5bu25pel5pWwID4gbm9iZW5pc3N1dVwgOwor5aWJ54yu6aCMID4gaG91a2Vuc2hvdVwgOwor6LK45bqX6IiXID4ga2FzaGl0ZW5wb1wgOwor5LqM5Lq65YWxID4gZnV0YXJpdG9tb1wgOwor5Y+O5paC5YmkID4gc2h1dXJlbnphaVwgOwor5Zu96Zqb5rOVID4ga29rdXNhaWhvdVwgOwor6auY5a2m5bm0ID4ga291Z2FrdW5lblwgOwor5qC454G95a6zID4ga2FrdXNhaWdhaVwgOwor5Ly96I2J5a2QID4gdG9naXpvdXNoaVwgOwor54W95oOF55qEID4gc2Vuam91dGVraVwgOwor6KqN6Ki85a6YID4gbmluc2hvdWthblwgOwor6aSK6JqV5qWtID4geW91c2FuZ3lvdVwgOwor54Gr5bGx6ISIID4ga2F6YW5teWFrdVwgOwor6I+c56iu5q67ID4gbmF0YW5lZ2FyYVwgOwor6YG/5pqR5a6iID4gaGlzaG9reWFrdVwgOwor5rGO5b+D6KuWID4gaGFuc2hpbnJvblwgOwor5pu46KmV5qyEID4gc2hvaHlvdXJhblwgOwor5YWl5aC056iOID4gbnl1dWpvdXplaVwgOwor6Kmm5L2c6LuKID4gc2hpc2FrdXNoYVwgOwor542E5Lit6KiYID4gZ29rdWNodXVraVwgOwor5Lmz5YWE5byfID4gY2hpa3lvdWRhaVwgOwor5LqM5LiD5pelID4gZnV0YW5hbm9rYVwgOwor5q2j5pWZ5LyaID4gc2Vpa3lvdWthaVwgOwor5YWI55Sf5pa5ID4gc2Vuc2VpZ2F0YVwgOwor6I2J6Zuy6ZuAID4ga3VzYWhpYmFyaVwgOwor5L6N5b6T6IG3ID4gamlqdXVzaG9rdVwgOwor5Zyw5b2i5a2mID4gY2hpa2VpZ2FrdVwgOwor5LiA55u057eaID4gaXRjaG9rdXNlblwgOwor5aSp55y86YCaID4gdGVuZ2FudHN1dVwgOwor5Luy6LK35Lq6ID4gbmFrYWdhaW5pblwgOwor6Jas55CG5a2mID4geWFrdXJpZ2FrdVwgOwor5Zu95paH5bCCID4ga29rdWJ1bnNlblwgOwor5LiA5bm055SfID4gaWNoaW5lbnNlaVwgOwor5a6a5byP5YyWID4gdGVpc2hpa2lrYVwgOwor5ZWG5qWt5YyWID4gc2hvdWd5b3VrYVwgOwor5LiA6Lyq6LuKID4gaWNoaXJpbnNoYVwgOwor5ruy54Kt6Yu8ID4gc2hpbnRhbmtvdVwgOwor6LuN55So54qsID4gZ3VuJyd5b3VrZW5cIDsKK+WFreinkuWggiA+IHJva2tha3Vkb3VcIDsKK+W6iuaaluaIvyA+IHl1a2FkYW5ib3VcIDsKK+ethuS4jeeyviA+IGZ1ZGVidXNob3VcIDsKK+WFrOiovOS6uiA+IGtvdXNob3VuaW5cIDsKK+iWhOWKm+eyiSA+IGhha3VyaWtpa29cIDsKK+eJp+iNieWcsCA+IGJva3Vzb3VjaGlcIDsKK+WxnuaAp+WApCA+IHpva3VzZWljaGlcIDsKK+ino+avkuiWrCA+IGdlZG9rdXlha3VcIDsKK+a6gOacn+aXpSA+IG1hbmtpaml0c3VcIDsKK+WQjeS9nOmBuCA+IG1laXNha3VzZW5cIDsKK+WVhueUqOaWhyA+IHNob3V5b3VidW5cIDsKK+WbveiqnuWtpiA+IGtva3Vnb2dha3VcIDsKK+WPr+WPiueahCA+IGtha3l1dXRla2lcIDsKK+WGmeecn+ePrSA+IHNoYXNoaW5oYW5cIDsKK+S4gOWFg+irliA+IGljaGlnZW5yb25cIDsKK+iqv+WJpOW4qyA+IGNob3V6YWlzaGlcIDsKK+WNmOS4ieW9oiA+IHRhbnNhbmdhdGFcIDsKK+eUsuWGkeW4qyA+IGthdGNodXVzaGlcIDsKK+WFiOS7u+iAhSA+IHNlbicnbmluc2hhXCA7Civmm7Lnt5rnvo4gPiBreW9rdXNlbmJpXCA7CivlhazntITmlbAgPiBrb3V5YWt1c3V1XCA7CivnhrHni4LogIUgPiBuZWtreW91c2hhXCA7CivmsLTntIvlraYgPiBzdWltb25nYWt1XCA7CivkurrnqK7lraYgPiBqaW5zaHVnYWt1XCA7Civmrovlv43mgKcgPiB6YW4nJ25pbnNlaVwgOwor55u46Zai55qEID4gc291a2FudGVraVwgOwor5YaZ55yf54mIID4gc2hhc2hpbmJhblwgOwor55Sf5oGv5ZywID4gc2Vpc29rdWNoaVwgOwor55+l5oCn55qEID4gY2hpc2VpdGVraVwgOwor5pyq55m66YGUID4gbWloYXR0YXRzdVwgOwor6ZaL5bmV5oimID4ga2FpbWFrdXNlblwgOwor5b6M6YWN5qCqID4ga291aGFpa2FidVwgOwor5YGc5rOK5ZywID4gdGVpaGFrdWNoaVwgOwor57255oKj546HID4gcmlrYW5yaXRzdVwgOwor6YCy6KGM5b2iID4gc2hpbmtvdWtlaVwgOwor6YGT5b6z5LiKID4gZG91dG9rdWpvdVwgOwor56S+5Lya55qEID4gc2hha2FpdGVraVwgOwor6ZyH5rqQ5ZywID4gc2hpbmdlbmNoaVwgOwor5pif6Zuy6KqsID4gc2VpdW5zZXRzdVwgOwor5rKz5Y6f6ICFID4ga2F3YXJhbW9ub1wgOwor5rq65q276ICFID4gZGVraXNoaXNoYVwgOwor5rW35ZWG5rOVID4ga2Fpc2hvdWhvdVwgOwor55CG6auq5bqXID4gcmloYXRzdXRlblwgOwor6Z2p5ZG96LuNID4ga2FrdW1laWd1blwgOwor5pu46KqM5a2mID4gc2hvc2hpZ2FrdVwgOwor55CG6auq5birID4gcmloYXRzdXNoaVwgOwor5LiW5L+X5b+DID4gc2V6b2t1c2hpblwgOwor6YGp5Lu76ICFID4gdGVraW5pbnNoYVwgOwor5aSJ5Zyn5omAID4gaGVuJydhdHN1am9cIDsKK+a8ouawkeaXjyA+IGthbm1pbnpva3VcIDsKK+mBqeeUqOaApyA+IHRla2l5b3VzZWlcIDsKK+ebtOirh+WIpCA+IGppa2FkYW5wYW5cIDsKK+iDjOS/oeiAhSA+IGhhaXNoaW5zaGFcIDsKK+ethuiAleaWmSA+IGhpa2tvdXJ5b3VcIDsKK+S8neazleiCjCA+IGRlbmJvdWhhZGFcIDsKK+e5iuavm+iZqyA+IHNlbm1vdWNodXVcIDsKK+ertuWjsuS6uiA+IGt5b3ViYWluaW5cIDsKK+S9nOipnuiAhSA+IHNha3VzaGlzaGFcIDsKK+Wuieatu+ihkyA+IGFuc2hpanV0c3VcIDsKK+apn+WLleWKmyA+IGtpZG91cnlva3VcIDsKK+acgOe1guWbniA+IHNhaXNodXVrYWlcIDsKK+S4u+imgeWbvSA+IHNodXlvdWtva3VcIDsKK+WPjemZveWtkCA+IGhhbicneW91c2hpXCA7CivlhoXlkJHnmoQgPiBuYWlrb3V0ZWtpXCA7CivpmLLmva7loKQgPiBib3VjaG91dGVpXCA7CivmtrLmmbbnm6QgPiBla2lzaG91YmFuXCA7CivnpZ7ntYzmiKYgPiBzaGlua2Vpc2VuXCA7Civpu4TlhavkuIggPiBraWhhY2hpam91XCA7Civooajkuozpmo4gPiBvbW90ZW5pa2FpXCA7CivoqabpqJPnmoQgPiBzaGlrZW50ZWtpXCA7CivlsaDmrrrloLQgPiB0b3NhdHN1am91XCA7Civml4XmlK/luqYgPiB0YWJpaml0YWt1XCA7Civmm7jnsKHpm4YgPiBzaG9rYW5zaHV1XCA7Civlpb3miKblm70gPiBrb3VzZW5rb2t1XCA7CivllrbmnpflsYAgPiBlaXJpbmt5b2t1XCA7CivnhKHph43lipsgPiBtdWp1dXJ5b2t1XCA7CivpgbrlpLHogIUgPiBpc2hpdHN1c2hhXCA7CivnlJ/lvpfmqKkgPiBzZWl0b2t1a2VuXCA7CivnsbPpqJLli5UgPiBrb21lc291ZG91XCA7CivmlrDkvZPliLYgPiBzaGludGFpc2VpXCA7CivooYDmuIXlraYgPiBrZXNzZWlnYWt1XCA7Civpg6jplbfplrIgPiBidWNob3VldHN1XCA7CivlpJzmg7Pmm7IgPiB5YXNvdWt5b2t1XCA7CivmpoLlv7XnmoQgPiBnYWluZW50ZWtpXCA7CivnqbrkuK3mqKkgPiBrdXVjaHV1a2VuXCA7CivlkajpgYrliLggPiBzaHV1eXV1a2VuXCA7CivlibXkvZzogIUgPiBzb3VzYWt1c2hhXCA7CivlkKvns5bph48gPiBnYW50b3VyeW91XCA7CivlgLnntITlrrYgPiBrZW4nJ3lha3VrYVwgOwor5Ye65by15omAID4gc2h1dGNob3Vqb1wgOwor566h55CG6IG3ID4ga2FucmlzaG9rdVwgOwor5oGQ5oCW55eHID4ga3lvdWZ1c2hvdVwgOwor5pS/55Wl5a62ID4gc2Vpcnlha3VrYVwgOwor5YWs6KGG57ayID4ga291c2h1dW1vdVwgOwor5YWl5aC05qipID4gbnl1dWpvdWtlblwgOwor552j5oim6ZqKID4gdG9rdXNlbnRhaVwgOwor5Y2D57696ba0ID4gc2VuYmFkenVydVwgOwor5L2P5a6F5ZywID4ganV1dGFrdWNoaVwgOwor5YaF5oOR5pifID4gbmFpd2FrdXNlaVwgOwor55yf5q2j55u0ID4gbWFzaG91amlraVwgOwor5a2j56+A6aKoID4ga2lzZXRzdWZ1dVwgOwor5L2O5a2m5bm0ID4gdGVpZ2FrdW5lblwgOwor5a2m57GN57C/ID4gZ2FrdXNla2lib1wgOwor56uL5L2T6Y+hID4gcml0dGFpa3lvdVwgOwor5LqM6aCF5byPID4gbmlrb3VzaGlraVwgOwor55m+5pel57SFID4gc2FydXN1YmVyaVwgOwor6LuN55Wl5a62ID4gZ3Vucnlha3VrYVwgOwor5rCR6K2a6ZuGID4gbWluZGFuc2h1dVwgOwor5oWw5ZWP6KKLID4gaW1vbmJ1a3Vyb1wgOwor5raI55+z54GwID4gc2hvdXNla2thaVwgOwor5Y2Y5LiA5YyWID4gdGFuJydpdHN1a2FcIDsKK+WwgueUqOi7iiA+IHNlbicneW91c2hhXCA7Civku5XoiJ7niakgPiBzaGltYWltb25vXCA7CivlpKfnmb3ps6UgPiBvb2hha3VjaG91XCA7Civnt6nlvpDmm7IgPiBrYW5qb2t5b2t1XCA7CivliIDliaPllYYgPiB0b3VrZW5zaG91XCA7CivkvL3oip3lsYUgPiB0b2dpc2hpYmFpXCA7CivlpJzjgIXkuK0gPiB5b3J1eW9uYWthXCA7CivmsJfosaHluoEgPiBraXNob3VjaG91XCA7CivngJ3pnZLngq0gPiByZWtpc2VpdGFuXCA7CivkuIDlhobnjokgPiBpY2hpZW5kYW1hXCA7CivnjYXlrZDlrq4gPiBzaGlzaGlreXV1XCA7Civlt6HmtIvoiaYgPiBqdW4nJ3lvdWthblwgOwor5b+F6ZyA5ZOBID4gaGl0c3VqdWhpblwgOwor5LiN5L+h55SoID4gZnVzaGluJyd5b3VcIDsKK+a4rOWcsOe3miA+IHNva3VjaGlzZW5cIDsKK+mrmOacqOWxpCA+IGtvdWJva3Vzb3VcIDsKK+ahg+a6kOWigyA+IHRvdWdlbmt5b3VcIDsKK+ihqOWxpOaApyA+IGh5b3Vzb3VzZWlcIDsKK+WHuuW4reewvyA+IHNodXNzZWtpYm9cIDsKK+imqueOi+WmgyA+IHNoaW4nJ25vdWhpXCA7CivphY3ntabns7sgPiBoYWlreXV1a2VpXCA7CivlpInlnKflmaggPiBoZW4nJ2F0c3VraVwgOwor5a6f5L2T6Y+hID4gaml0dGFpa3lvdVwgOwor5YSq5Yud5p2vID4geXV1c2hvdWhhaVwgOwor6YGp5LiN6YGpID4gdGVraWZ1dGVraVwgOwor56S+5Lqk55qEID4gc2hha291dGVraVwgOwor6YWN57Wm57GzID4gaGFpa3l1dW1haVwgOwor5pu46KiY5bGAID4gc2hva2lreW9rdVwgOwor6LSI5Y+O6LOEID4gem91c2h1dXdhaVwgOwor5Ye45Ye557SZID4gdG90c3VvdXNoaVwgOwor6KOB5Yik5Lq6ID4gc2FpYmFuJyduaW5cIDsKK+S7iumBk+W/gyA+IGltYWRvdXNoaW5cIDsKK+e0ueS7i+iAhSA+IHNob3VrYWlzaGFcIDsKK+epuuS4reaIpiA+IGt1dWNodXVzZW5cIDsKK+awl+ixoeWtpiA+IGtpc2hvdWdha3VcIDsKK+ebuOe2muS6uiA+IHNvdXpva3VuaW5cIDsKK+iiq+WRiuW4rSA+IGhpa29rdXNla2lcIDsKK+S5s+iEguiCqiA+IG55dXVzaGlib3VcIDsKK+i+sueJp+WcsCA+IG5vdWJva3VjaGlcIDsKK+aCquaIr+WtkCA+IGl0YXp1cmFra29cIDsKK+WwhOeahOWgtCA+IHNoYXRla2lqb3VcIDsKK+WJjeWTqOaIpiA+IHplbnNob3VzZW5cIDsKK+azleWtpuiAhSA+IGhvdWdha3VzaGFcIDsKK+WFqOWbvee0mSA+IHplbmtva3VzaGlcIDsKK+aVkembo+iIuSA+IGt5dXVuYW5zZW5cIDsKK+mHkeiejeWCtSA+IGtpbicneXV1c2FpXCA7CivkuIrovInlnKcgPiBqb3VzYWlhdHN1XCA7Civlj6PllqflmKkgPiBrdWNoaWdlbmthXCA7CivmiJDkurrnl4UgPiBzZWlqaW5ieW91XCA7CivoirHmsLTmnKggPiBoYW5hbWl6dWtpXCA7CivpgKDlnJLooZMgPiB6b3Vlbmp1dHN1XCA7CivkubPohbrngo4gPiBueXV1c2VuJydlblwgOwor5rW35rWB55O2ID4ga2Fpcnl1dWJpblwgOwor5YiG5YWJ5a2mID4gYnVua291Z2FrdVwgOwor5rCR5Li755qEID4gbWluc2h1dGVraVwgOwor57K+55m957OWID4gc2VpaGFrdXRvdVwgOwor54Sh5qmf6LOqID4gbXVraXNoaXRzdVwgOwor6YCa6Kmx5paZID4gdHN1dXdhcnlvdVwgOwor5pS56Imv5ZOBID4ga2FpcnlvdWhpblwgOwor57K+55m957GzID4gc2VpaGFrdW1haVwgOwor5b+r5YmK6Yu8ID4ga2Fpc2FrdWtvdVwgOwor5pel5ZCR5rC0ID4gaGluYXRhbWl6dVwgOwor5omH5oOF55qEID4gc2Vuam91dGVraVwgOwor6Zmq5a+p5ZOhID4gYmFpc2hpbicnaW5cIDsKK+W4q+Wbo+mVtyA+IHNoaWRhbmNob3VcIDsKK+e1hOiBt+S9kyA+IHNvc2hva3V0YWlcIDsKK+aenOWun+mFkiA+IGthaml0c3VzaHVcIDsKK+Wpv+mkiuWtkCA+IG11a295b3VzaGlcIDsKK+WGmeecn+W4qyA+IHNoYXNoaW5zaGlcIDsKK+S4i+aknOafuyA+IHNoaXRha2Vuc2FcIDsKK+miqOmCquiWrCA+IGthemVndXN1cmlcIDsKK+WEquWLneaIpiA+IHl1dXNob3VzZW5cIDsKK+mAo+e2muS9kyA+IHJlbnpva3V0YWlcIDsKK+WkqeWIkeeXhSA+IHRlbmtlaWJ5b3VcIDsKK+WNiue/heebriA+IGhhbnNoaW1va3VcIDsKK+iMtueVquWKhyA+IGNoYWJhbmdla2lcIDsKK+WGmeecn+WxiyA+IHNoYXNoaW4nJ3lhXCA7Civoia/lsI7kvZMgPiByeW91ZG91dGFpXCA7CivmlZHkuJbkuLsgPiBreXV1c2Vpc2h1XCA7CivmspPmiYvps6UgPiBob3RvdG9naXN1XCA7CivmnKrnnYDmiYsgPiBtaWNoYWt1c2h1XCA7CivkvZzoqanms5UgPiBzYWt1c2hpaG91XCA7CivnnJ/prZrpsLkgPiBtYW5hZ2F0c3VvXCA7Civlh7rlvLXlk6EgPiBzaHV0Y2hvdWluXCA7Civkurrlipvou4ogPiBqaW5yaWtpc2hhXCA7Civlm73pmpvkurogPiBrb2t1c2FpamluXCA7CivmuKzplbfmqZ8gPiBzb2t1Y2hvdWtpXCA7CivlsI/kuLvoprMgPiBzaG91c2h1a2FuXCA7Civlrp/ot7XnmoQgPiBqaXNzZW50ZWtpXCA7CivpgKPntZDlmaggPiByZW5rZXRzdWtpXCA7CivogJDkuYXmgKcgPiB0YWlreXV1c2VpXCA7CivmnYnkuKbmnKggPiBzdWdpbmFtaWtpXCA7CivntYLkuoblvowgPiBzaHV1cnlvdWdvXCA7CivlpKnpgZPmp5ggPiB0ZW50b3VzYW1hXCA7Civmkq7lvbHpmoogPiBzYXRzdWVpdGFpXCA7CivoirHoj5bokrIgPiBoYW5hc2hvdWJ1XCA7CivmpJznnLzpj6EgPiBrZW5nYW5reW91XCA7CivphbjljJbniakgPiBzYW5rYWJ1dHN1XCA7CivlsI/kvZzmlpkgPiBrb3Nha3VyeW91XCA7CivlurbmsJHnmoQgPiBzaG9taW50ZWtpXCA7CivovKroiJ7mm7IgPiByaW5idWt5b2t1XCA7Civlh43ntZDlmaggPiB0b3VrZXRzdWtpXCA7CivlpI/onJzmn5EgPiBuYXRzdW1pa2FuXCA7CivnrYnmlrnnmoQgPiB0b3Vob3V0ZWtpXCA7CivlsqnmuIXmsLQgPiBpd2FzaGltaXp1XCA7Civnq4vmoYjogIUgPiByaXRzdWFuc2hhXCA7CivokZfov7DlrrYgPiBjaG9qdXRzdWthXCA7CivohLPmooXmr5IgPiBub3ViYWlkb2t1XCA7Civou43nlKjlk4EgPiBndW4nJ3lvdWhpblwgOwor5YOV5Luy6ZaTID4gYm9rdW5ha2FtYVwgOwor6Zuj6KaW6IG0ID4gbmFuc2hpY2hvdVwgOwor5b6z576p5b+DID4gdG9rdWdpc2hpblwgOwor5Yi65r+A5oCnID4gc2hpZ2VraXNlaVwgOwor6YCj57Wh5YWIID4gcmVucmFrdXNlblwgOwor6L+R5rW354mpID4ga2lua2FpbW9ub1wgOwor5p2x5rSL6YCaID4gdG91eW91dHN1dVwgOwor6YmE56Cy546JID4gdGVwcG91ZGFtYVwgOwor5L6h5qC86KGoID4ga2FrYWt1aHlvdVwgOwor6Kq/5YGc6ICFID4gY2hvdXRlaXNoYVwgOwor5q205Y+y6KazID4gcmVraXNoaWthblwgOwor5bu656+J6LK7ID4ga2VuY2hpa3VoaVwgOwor5Lq65oOF5YqHID4gbmluam91Z2VraVwgOwor5aSa56We5pWZID4gdGFzaGlua3lvdVwgOwor5YmN5ZOo5ZywID4gemVuc2hvdWNoaVwgOwor5LiA5bqm5LiIID4gaWNoaWRvZGFrZVwgOwor6YCj57Wh5LyaID4gcmVucmFrdWthaVwgOwor5LiA6Iis6IG3ID4gaXBwYW5zaG9rdVwgOwor56S+5Lya5a2mID4gc2hha2FpZ2FrdVwgOwor5YG15a+f5qmfID4gdGVpc2F0c3VraVwgOwor5a+d5Y+w6LuKID4gc2hpbmRhaXNoYVwgOwor5bm05Luj54mpID4gbmVuZGFpbW9ub1wgOwor5Lih5pu/5Lq6ID4gcnlvdWdhZW5pblwgOwor5ZCI5qC86ICFID4gZ291a2FrdXNoYVwgOwor5bCC55So57eaID4gc2VuJyd5b3VzZW5cIDsKK+W4r+Wfn+W5hSA+IHRhaWlraWhhYmFcIDsKK+WIneS4gOW/tSA+IHNob2ljaGluZW5cIDsKK+e0ueS7i+eKtiA+IHNob3VrYWlqb3VcIDsKK+a2iOavkuWZqCA+IHNob3Vkb2t1a2lcIDsKK+aXpumCo+ihhiA+IGRhbicnbmFzaHV1XCA7CivloIXkv6HnpLwgPiBrZW5zaGlucmVpXCA7CivlrpjlhazluoEgPiBrYW5rb3VjaG91XCA7CivogbTogZ7lg6cgPiBjaG91bW9uc291XCA7CivlpKrlubPmpb0gPiB0YWloZWlyYWt1XCA7CivkuKHlpKnnp6QgPiByeW91dGVuYmluXCA7CivlrZTpm4Dnn7MgPiBrdWpha3VzZWtpXCA7CivlibXkvZzmqKkgPiBzb3VzYWt1a2VuXCA7CivoibLkuovluKsgPiBpcm9nb3Rvc2hpXCA7CivpmY3prZTooZMgPiBrb3VtYWp1dHN1XCA7CivlsJHos4fmnKwgPiBzaG91c2hpaG9uXCA7Civos4fnlKPmoKogPiBzaGlzYW5rYWJ1XCA7CivmgZDmgJblv4MgPiBreW91ZnVzaGluXCA7Civlrp/pqJPnmoQgPiBqaWtrZW50ZWtpXCA7Civkvb/lvpLpgZQgPiBzaGl0b3RhY2hpXCA7CivlronphZLloLQgPiB5YXN1c2FrYWJhXCA7CivogbTogZ7kvJogPiBjaG91bW9ua2FpXCA7CivogrLlhZDpo58gPiBpa3VqaXNob2t1XCA7CivnlLfkvr/miYAgPiBvdG9rb2JlbmpvXCA7Civpppblrp/mpJwgPiBrdWJpamlra2VuXCA7CivntLDog57ohpwgPiBzYWlib3VtYWt1XCA7CivlkI3kurrogowgPiBtZWlqaW5oYWRhXCA7CivlsI/lrabmoKEgPiBzaG91Z2Fra291XCA7Civml6fol6nkuLsgPiBreXV1aGFuc2h1XCA7CivmsJHmnInmnpcgPiBtaW4nJ3l1dXJpblwgOwor6LWk6YmE6YmxID4gc2VraXRla2tvdVwgOwor5pys6I2J5a2mID4gaG9uem91Z2FrdVwgOwor5L+u5q2j6ICFID4gc2h1dXNlaXNoYVwgOwor6aKo6YCf6KiIID4gZnV1c29rdWtlaVwgOwor5r2c5Zyo55qEID4gc2VuemFpdGVraVwgOwor5aSJ5ouN5a2QID4gaGVuYnlvdXNoaVwgOwor5pen5oCd5oOzID4ga3l1dXNoaXNvdVwgOwor6ZuR5pyo5p6XID4gem91Ym9rdXJpblwgOwor5YWl5aC05Yi4ID4gbnl1dWpvdWtlblwgOwor5oim6ZeY55qEID4gc2VudG91dGVraVwgOwor57WC6Zu76LuKID4gc2h1dWRlbnNoYVwgOwor6IOM576O6a+oID4gc2VtaWt1amlyYVwgOwor56m05p2T5a2QID4gYW5hamFrdXNoaVwgOwor5LiA5bm05LitID4gaWNoaW5lbmp1dVwgOwor6YmE56Cy5rC0ID4gdGVwcG91bWl6dVwgOwor5YWo5Zu95rCRID4gemVua29rdW1pblwgOwor5Lq65Y+j5a2mID4gamlua291Z2FrdVwgOwor55u05ruR6ZmNID4gY2hva2tha2tvdVwgOwor5LiK55Sz5pu4ID4gam91c2hpbnNob1wgOwor6Yed5Y2D5pysID4gaGFyaXNlbmJvblwgOwor5LiJ5qWt5ZywID4gc2FuZ3lvdWNoaVwgOwor5Lim5aSn5oq1ID4gbmFtaXRhaXRlaVwgOwor55m96Zuy55+zID4gaGFrdXVuc2VraVwgOwor5qyg5bit6ICFID4ga2Vzc2VraXNoYVwgOwor5byV5b2T6YeRID4gaGlraWF0ZWtpblwgOwor6KOF6aO+6Z+zID4gc291c2hva3VvblwgOwor6KaW6IG06ICFID4gc2hpY2hvdXNoYVwgOwor5Lmz6Iet5YWQID4gbnl1dXNodXVqaVwgOwor5omL5rKi5pysID4gc2h1dGFrdWJvblwgOwor6K2m5oiS5b+DID4ga2Vpa2Fpc2hpblwgOwor5Lit5Zu96KqeID4gY2h1dWdva3Vnb1wgOwor5YWl5omL6ZujID4gbnl1dXNodW5hblwgOwor6Zu75rWB6KiIID4gZGVucnl1dWtlaVwgOwor5bGx5qKU5a2QID4ga3VjaGluYXNoaVwgOwor5ZCb5Li75Zu9ID4ga3Vuc2h1a29rdVwgOwor6Z+z5qW95a2mID4gb25nYWt1Z2FrdVwgOwor6Yyv5a2X55eHID4gc2FrdWppc2hvdVwgOwor5aSn55uk55+zID4gZGFpYmFuamFrdVwgOwor5YiG5a2Q6YePID4gYnVuc2hpcnlvdVwgOwor5LiA55Wq6Iy2ID4gaWNoaWJhbmNoYVwgOwor6YGF5Yi76ICFID4gY2hpa29rdXNoYVwgOwor5YaN55m66LazID4gc2FpaG9zc29rdVwgOwor5a++6Lmg55qEID4gdGFpc2hvdGVraVwgOwor5qeN6KGT5a62ID4gc291anV0c3VrYVwgOwor5q2M6Kyh5puyID4ga2F5b3VreW9rdVwgOwor5rS75Lq655S7ID4ga2F0c3VqaW5nYVwgOwor5LqM6KiA55uuID4gZnV0YWtvdG9tZVwgOwor5Y6f5a2Q6YePID4gZ2Vuc2hpcnlvdVwgOwor5aSn5bmF54mpID4gb29oYWJhbW9ub1wgOwor54us5aWP5LyaID4gZG9rdXNvdWthaVwgOwor6ISx6Iet5YmkID4gZGFzc2h1dXphaVwgOwor5b+r6YCf6Ii5ID4ga2Fpc29rdXNlblwgOwor55Sf5q6W5ZmoID4gc2Vpc2hva3VraVwgOwor6LuK5Lit6KuHID4gc2hhY2h1dWRhblwgOwor6Y6u6Z2Z5YmkID4gY2hpbnNlaXphaVwgOwor5ZCI5L2155eHID4gZ2FwcGVpc2hvdVwgOwor5oeH6Kaq5LyaID4ga29uc2hpbmthaVwgOwor54m954mb5pifID4ga2VuZ3l1dXNlaVwgOwor5Yi65r+A5YmkID4gc2hpZ2VraXphaVwgOwor6Iy25p+E5p2TID4gY2hhYmlzaGFrdVwgOwor5pyJ56We6KuWID4geXV1c2hpbnJvblwgOwor5ZG95Lit5pWwID4gbWVpY2h1dXN1dVwgOwor5pa56Kej55+zID4gaG91a2Fpc2VraVwgOwor5aOy5o6b6YeRID4gdXJpa2FrZWtpblwgOwor6LaF5beo5pifID4gY2hvdWt5b3NlaVwgOwor56uL5L2T55qEID4gcml0dGFpdGVraVwgOwor55m95pi85aSiID4gaGFrdWNodXVtdVwgOwor5paw6KiY6YyyID4gc2hpbmtpcm9rdVwgOwor5rOo6Kej6ICFID4gY2h1dWthaXNoYVwgOwor5L+d6YeI6YeRID4gaG9zaGFrdWtpblwgOwor5Y+N57KS5a2QID4gaGFucnl1dXNoaVwgOwor5LiL6Laz5paZID4gZ2Vzb2t1cnlvdVwgOwor5rOo5paH5pu4ID4gY2h1dW1vbnNob1wgOwor5YyW5ZCI54mpID4ga2Fnb3VidXRzdVwgOwor5bGL5b2i6Ii5ID4geWFrYXRhYnVuZVwgOwor6YGL5YuV5YqbID4gdW5kb3VyeW9rdVwgOwor6YqY6YqY55q/ID4gbWVpbWVpemFyYVwgOwor6buS5puc5bKpID4ga29rdXlvdWdhblwgOwor5Y6f5L2c6ICFID4gZ2Vuc2FrdXNoYVwgOwor5YW156uZ5a2mID4gaGVpdGFuZ2FrdVwgOwor57Sw5a+G55S7ID4gc2FpbWl0c3VnYVwgOwor5LiA55Wq57eaID4gaWNoaWJhbnNlblwgOwor5Y2K5Lq65YmNID4gaGFuJyduaW5tYWVcIDsKK+iEs+ail+WhniA+IG5vdWtvdXNva3VcIDsKK+WKh+WgtOihlyA+IGdla2lqb3VnYWlcIDsKK+adpeOAhemAsSA+IHJhaXJhaXNodXVcIDsKK+axuuitsOaoqSA+IGtldHN1Z2lrZW5cIDsKK+WKg+S4gOWMliA+IGtha3VpdHN1a2FcIDsKK+S4gOanveW8jyA+IGlzc291c2hpa2lcIDsKK+WuheaApeS+vyA+IHRha2t5dXViaW5cIDsKK+iAgeS6uueXhSA+IHJvdWppbmJ5b3VcIDsKK+WQiOagvOeCuSA+IGdvdWtha3V0ZW5cIDsKK+ippuS+m+WTgSA+IHNoaWt5b3VoaW5cIDsKK+S4reWgheaJiyA+IGNodXVrZW5zaHVcIDsKK+iRm+mlhemgrSA+IGt1enVtYW5qdXVcIDsKK+aOpeWuouWppiA+IHNla2t5YWt1ZnVcIDsKK+a0u+Wtl+acrCA+IGthdHN1amlob25cIDsKK+mcjeWFrOmzpSA+IGhvdG90b2dpc3VcIDsKK+WVj+mhjOWKhyA+IG1vbmRhaWdla2lcIDsKK+iBtOism+eUnyA+IGNob3Vrb3VzZWlcIDsKK+izvemKreeusSA+IHNhaXNlbmJha29cIDsKK+aPkOWUseiAhSA+IHRlaXNob3VzaGFcIDsKK+WZtOmjr+eJqSA+IGZ1bnBhbm1vbm9cIDsKK+WIhualteWMliA+IGJ1bmt5b2t1a2FcIDsKK+euoeeQhuWxgCA+IGthbnJpa3lva3VcIDsKK+inkumMkOWPsCA+IGtha3VzdWlkYWlcIDsKK+emj+WyoeecjCA+IGZ1a3Vva2FrZW5cIDsKK+eLrOWjh+WgtCA+IGRva3VkYW5qb3VcIDsKK+S7sumWk+ikkiA+IG5ha2FtYWJvbWVcIDsKK+maj+aDs+mMsiA+IHp1aXNvdXJva3VcIDsKK+aSruW9seiAhSA+IHNhdHN1ZWlzaGFcIDsKK+WmguiPqeiWqSA+IG55b2Jvc2F0c3VcIDsKK+WRveS4reW8viA+IG1laWNodXVkYW5cIDsKK+ecn+WIhuaVsCA+IHNoaW5idW5zdXVcIDsKK+mbh+eUqOS4uyA+IGtveW91bnVzaGlcIDsKK+mJhOegsuW8viA+IHRlcHBvdWRhbWFcIDsKK+Wxr+eUsOWFtSA+IHRvbmRlbmhlaVwgOwor5pW16YOo6ZqKID4gdGVraWJ1dGFpXCA7CivmirXlvZPmqKkgPiB0ZWl0b3VrZW5cIDsKK+adkeWkq+WtkCA+IHNvbnB1dXNoaVwgOwor5o+a5rC06LuKID4geW91c3Vpc2hhXCA7CivmlZHmj7Tou40gPiBreXV1ZW5ndW5cIDsKK+iCsuavm+WJpCA+IGlrdW1vdXphaVwgOwor6buS6aCt5be+ID4ga3Vyb3p1a2luXCA7Civop6Pmr5LliaQgPiBnZWRva3V6YWlcIDsKK+mrmOWnv+WLoiA+IGtvdXNoaXNlaVwgOwor5bGL5Y+w5bqXID4geWF0YWltaXNlXCA7Civotbfno4HlipsgPiBraWppcnlva3VcIDsKK+WOn+eUn+aelyA+IGdlbnNlaXJpblwgOwor5q205Y+y55S7ID4gcmVraXNoaWdhXCA7CivliY3ljYrnlJ8gPiB6ZW5oYW5zZWlcIDsKK+WtmOWcqOirliA+IHNvbnphaXJvblwgOwor5biM5pyb55qEID4ga2lib3V0ZWtpXCA7Civkurrlt6Xpm7cgPiBqaW5rb3VyYWlcIDsKK+WwgueUqOapnyA+IHNlbicneW91a2lcIDsKK+W6pumHj+ihoSA+IGRvcnlvdWtvdVwgOwor5YWa5aSn5LyaID4gdG91dGFpa2FpXCA7CivlkIzkuZfogIUgPiBkb3Vqb3VzaGFcIDsKK+WKtOWLleiAhSA+IHJvdWRvdXNoYVwgOwor5Y2Y5pWw5Z6LID4gdGFuc3V1a2VpXCA7CivlvpPlhYTlvJ8gPiBqdXVrZWl0ZWlcIDsKK+m9p+atr+mhniA+IGdlc3NoaXJ1aVwgOwor5Yag5pyo6ZaAID4ga2FidWtpbW9uXCA7Civku5jlsZ7lk4EgPiBmdXpva3VoaW5cIDsKK+ioquWVj+iAhSA+IGhvdW1vbnNoYVwgOwor55m66aCt5Lq6ID4gaG90dG91bmluXCA7Civmlofpgbjlt6UgPiBidW5zZW5rb3VcIDsKK+WQjOWxheS6uiA+IGRvdWt5b25pblwgOwor5Y+C6Kmj5Lq6ID4gc2Fua2VpbmluXCA7Civlvbnlk6HkvJogPiB5YWt1aW5rYWlcIDsKK+WtpOeri+iqniA+IGtvcml0c3Vnb1wgOwor55Sf6I+T5a2QID4gbmFtYWdhc2hpXCA7Civli5jlrprmm7ggPiBrYW5qb3VzaG9cIDsKK+mWi+WCrOWcsCA+IGthaXNhaWNoaVwgOwor6JC95b6M6ICFID4gcmFrdWdvc2hhXCA7CivnlLflrZDmoKEgPiBkYW5zaGlrb3VcIDsKK+S4gOiLpuWKtCA+IGhpdG9rdXJvdVwgOwor5YKs5raZ5by+ID4gc2FpcnVpZGFuXCA7CivntbHmsrvmqKkgPiB0b3VjaGlrZW5cIDsKK+emgei7oui8iSA+IGtpbnRlbnNhaVwgOwor5riv5rm+56iOID4ga291d2FuemVpXCA7CivkuI3lr5vlrrkgPiBmdWthbicneW91XCA7CivkuI3kv6Hku7AgPiBmdXNoaW5rb3VcIDsKK+WkquWFrOacmyA+IHRhaWtvdWJvdVwgOwor5Li45ous5bynID4gbWFydWdha2tvXCA7CivlpJblkJHmgKcgPiBnYWlrb3VzZWlcIDsKK+S4jei2s+WJjSA+IHRhcmF6dW1hZVwgOwor5LqM5Zu96ZaTID4gbmlrb2t1a2FuXCA7CivkvJrokazogIUgPiBrYWlzb3VzaGFcIDsKK+emj+Wvv+iNiSA+IGZ1a3VqdXNvdVwgOwor5rOV5pu555WMID4gaG91c291a2FpXCA7CivpgYvovLjnnIEgPiB1bicneXVzaG91XCA7CivpgYvovLjnm7ggPiB1bicneXVzaG91XCA7CivkuZfou4rpp4UgPiBqb3VzaGFla2lcIDsKK+acnemuruiqniA+IGNob3VzZW5nb1wgOwor6Z2p5ZG95a62ID4ga2FrdW1laWthXCA7CivmqZ/lr4bosrsgPiBraW1pdHN1aGlcIDsKK+S6uumAoOexsyA+IGppbnpvdW1haVwgOwor5rSL5ZOB5bqXID4geW91aGludGVuXCA7CivlgIvkurrnmoQgPiBrb2ppbnRla2lcIDsKK+S4gOWFg+WMliA+IGljaGlnZW5rYVwgOwor5Lyd6YGT6Ii5ID4gZGVuZG91c2VuXCA7CivlnKfov6vmhJ8gPiBhcHBha3VrYW5cIDsKK+S6iOmYsuetliA+IHlvYm91c2FrdVwgOwor6Iul6Zqg5bGFID4gd2FrYWlua3lvXCA7CivlrprkvY/ogIUgPiB0ZWlqdXVzaGFcIDsKK+awtOa6tuaApyA+IHN1aXlvdXNlaVwgOwor6YG66KiA5pu4ID4geXVpZ29uc2hvXCA7Civku6Pnh4Pou4ogPiBkYWluZW5zaGFcIDsKK+WkieaIkOWyqSA+IGhlbnNlaWdhblwgOwor5LiA5a6a6YePID4gaXR0ZWlyeW91XCA7Civoi6bngbDnn7MgPiBrdWthaXNla2lcIDsKK+W3puW/g+aIvyA+IHNhc2hpbmJvdVwgOwor6Lyq55Wq5Yi2ID4gcmluYmFuc2VpXCA7Civoq4vpoZjogIUgPiBzZWlnYW5zaGFcIDsKK+Wcp+i/q+aApyA+IGFwcGFrdXNlaVwgOwor576F55Sf6ZaAID4gcmFzaG91bW9uXCA7CivlgIvkurrnlKggPiBrb2ppbicneW91XCA7Civkuqvlj5fogIUgPiBreW91anVzaGFcIDsKK+W+oei2s+WKtCA+IGdvc29rdXJvdVwgOwor54is6Jmr6aGeID4gaGFjaHV1cnVpXCA7Civov7fkv6HlrrYgPiBtZWlzaGlua2FcIDsKK+abuOewoeaWhyA+IHNob2thbmJ1blwgOwor6Kix5Y+v6Ki8ID4ga3lva2FzaG91XCA7CivmsJHkuLvlhZogPiBtaW5zaHV0b3VcIDsKK+WkquWIgOWFiCA+IHRhY2hpc2FraVwgOwor5Lyd6YGT6ICFID4gZGVuZG91c2hhXCA7Civnm6PoppboiLkgPiBrYW5zaGlzZW5cIDsKK+e4hOaaluewviA+IG5hd2Fub3JlblwgOwor57a/6KO95ZOBID4gbWVuc2VpaGluXCA7Civlh7rotbDppqwgPiBzaHVzc291YmFcIDsKK+S6jOmajuW7uiA+IG5pa2FpZGF0ZVwgOwor5L+u5q2j5qGIID4gc2h1dXNlaWFuXCA7CivlrqPkvJ3miKYgPiBzZW5kZW5zZW5cIDsKK+iri+iyoOalrSA+IHVrZW9pZ3lvdVwgOwor6aGe5Lq654y/ID4gcnVpamluJydlblwgOwor5ZCI55CG55qEID4gZ291cml0ZWtpXCA7Civli53osqDluKsgPiBzaG91YnVzaGlcIDsKK+ezuOiar+iakyA+IGl0b21pbWl6dVwgOwor5bu26ZW35oimID4gZW5jaG91c2VuXCA7CivlnJ/lu7rmpa0gPiBkb2tlbmd5b3VcIDsKK+i0iOWRiOWTgSA+IHpvdXRlaWhpblwgOwor6YeR6Ymx5ZywID4ga2lua291Y2hpXCA7CivmmLzlvqHpo68gPiBoaXJ1Z29oYW5cIDsKK+iSmeWPpOilniA+IG1vdWtvaGlkYVwgOwor5Y2K5pyI5YiKID4gaGFuZ2Vra2FuXCA7CivnnIzmsJHnqI4gPiBrZW5taW56ZWlcIDsKK+aJh+WLleiAhSA+IHNlbmRvdXNoYVwgOwor6ZuG5Lya5omAID4gc2h1dWthaWpvXCA7CivmnKjlt6XloLQgPiBtb2trb3Vqb3VcIDsKK+a0kuiQveiAhSA+IHNoYXJlbW9ub1wgOwor5oim6ZeY5bi9ID4gc2VudG91Ym91XCA7CivlpJXljJbnsqcgPiB5dXVnZXNob3VcIDsKK+WPr+WLleWgsCA+IGthZG91emVraVwgOwor5aSn5bm05aKXID4gb290b3NoaW1hXCA7Civms5XnkIblraYgPiBob3VyaWdha3VcIDsKK+m7hOmgt+ibhyA+IGFvZGFpc2hvdVwgOwor6YCP5piO5L2TID4gdG91bWVpdGFpXCA7CivmlYXpmpzou4ogPiBrb3Nob3VzaGFcIDsKK+ebo+imluiAhSA+IGthbnNoaXNoYVwgOwor5byB5oW26I2JID4gYmVua2Vpc291XCA7CivlrZjlnKjogIUgPiBzb256YWlzaGFcIDsKK+WFqOWbveWMuiA+IHplbmtva3VrdVwgOwor5aSp55qH5peXID4gdGVuJydub3VraVwgOwor5a6Y5YOa5YyWID4ga2FucnlvdWthXCA7Civml6LlvpfmqKkgPiBraXRva3VrZW5cIDsKK+WFiee3mumKgyA+IGtvdXNlbmp1dVwgOwor5Luu6Z2i5YqHID4ga2FtZW5nZWtpXCA7CivmqZ/morDnmoQgPiBraWthaXRla2lcIDsKK+eGqOaWl+e0mSA+IG5vc2hpZ2FtaVwgOwor5YaZ5qSN5qmfID4gc2hhc2hva2tpXCA7CivmnKzkvZPoq5YgPiBob250YWlyb25cIDsKK+eZuuWjsOazlSA+IGhhc3NlaWhvdVwgOwor57Wm5rmv5ZmoID4ga3l1dXRvdWtpXCA7CivpgYroiIjosrsgPiB5dXVreW91aGlcIDsKK+W5s+WuieS6rCA+IGhlaWFua3lvdVwgOwor55Sf5qyg5Ly4ID4gbmFtYWFrdWJpXCA7CivpgIHku5jlhYggPiBzb3VmdXNha2lcIDsKK+WklumHjuW4rSA+IGdhaXlhc2VraVwgOwor56uL5L2T5oimID4gcml0dGFpc2VuXCA7Civnm6PoppbntrIgPiBrYW5zaGltb3VcIDsKK+aciOawtOmHkSA+IGdlc3N1aWtpblwgOwor5q2j5oqV5omLID4gc2VpdG91c2h1XCA7CivpgaDotaTlpJYgPiBlbnNla2lnYWlcIDsKK+aMh+ekuuiWrCA+IHNoaWppeWFrdVwgOwor5L+h5Y+35qmfID4gc2hpbmdvdWtpXCA7CivkupXmiLjou4ogPiBpZG9ndXJ1bWFcIDsKK+acieWQjeeojiA+IHl1dW1laXplaVwgOwor56uL5L2T5oSfID4gcml0dGFpa2FuXCA7CivlhKrlhYjmqKkgPiB5dXVzZW5rZW5cIDsKK+Wun+mok+WgtCA+IGppa2tlbmpvdVwgOwor54mh5Li56aSFID4gYm90YW1vY2hpXCA7CivntYzlm6PpgKMgPiBrZWlkYW5yZW5cIDsKK+aWremgreWPsCA+IGRhbnRvdWRhaVwgOwor5LqI57SE6ICFID4geW95YWt1c2hhXCA7CivntYLlpJznga8gPiBzaHV1eWF0b3VcIDsKK+aal+m7kumdoiA+IGFua29rdW1lblwgOwor5a6j5Lyd5bGLID4gc2VuZGVuJyd5YVwgOwor5Luj5pu/5ZOBID4gZGFpdGFpaGluXCA7Civngq3phbjloakgPiB0YW5zYW4nJ2VuXCA7CivkuIvlrr/lsYsgPiBnZXNodWt1eWFcIDsKK+ijnOe1pue3miA+IGhva3l1dXNlblwgOwor5ZCN5Lq65oimID4gbWVpamluc2VuXCA7CivkuIDoiKzluK0gPiBpcHBhbnNla2lcIDsKK+mBrembo+iAhSA+IHNvdW5hbnNoYVwgOwor5Y6f5a2Q56CyID4gZ2Vuc2hpaG91XCA7CivlgJLnva7ms5UgPiB0b3VjaGlob3VcIDsKK+eFp+a6luWZqCA+IHNob3VqdW5raVwgOwor5Y6f5L2P5rCRID4gZ2VuanV1bWluXCA7CivogZblhazkvJogPiBzZWlrb3VrYWlcIDsKK+WOn+eUo+WcsCA+IGdlbnNhbmNoaVwgOwor6Z2p5ZG95YWQID4ga2FrdW1laWppXCA7CivlhKrpp7/ppqwgPiB5dXVzaHVuYmFcIDsKK+S4u+aDheirliA+IHNodWpvdXJvblwgOwor6aqo6JGj5ZOBID4ga290dG91aGluXCA7CivnrqHosqHkurogPiBrYW56YWluaW5cIDsKK+a8lOWKh+eVjCA+IGVuZ2VraWthaVwgOwor6YqA6Zaj5a+6ID4gZ2lua2FrdWppXCA7Civpoqjps6XluqcgPiBmdXVjaG91emFcIDsKK+aMn+eevOWZqCA+IGt5b3VrZW5raVwgOwor5pWZ5o6I5rOVID4ga3lvdWp1aG91XCA7Civpm7vmsJfph5wgPiBkZW5raWdhbWFcIDsKK+mbu+awl+mHjyA+IGRlbmtpcnlvdVwgOwor54K55YWJ5rqQID4gdGVua291Z2VuXCA7Civml6XliIrntJkgPiBuaWtrYW5zaGlcIDsKK+mWk+eLguiogCA+IGFpa3lvdWdlblwgOwor6ICB5Lq65oCnID4gcm91amluc2VpXCA7CivoqIjmlbDnrqEgPiBrZWlzdXVrYW5cIDsKK+mHkeWIqememCA+IGtpbnJpc2hvdVwgOwor5Luu5pS/5bqcID4ga2FyaXNlaWZ1XCA7Civnj77ku6PniYggPiBnZW5kYWliYW5cIDsKK+S9juWnv+WLoiA+IHRlaXNoaXNlaVwgOwor5oCl6ZmN5LiLID4ga3l1dWtvdWthXCA7Civkv6Hlj7fml5cgPiBzaGluZ291a2lcIDsKK+erpeipseWKhyA+IGRvdXdhZ2VraVwgOwor5a6f6aiT5Y+wID4gamlra2VuZGFpXCA7CivmsLTmiJDlsqkgPiBzdWlzZWlnYW5cIDsKK+W+oeWvruS6uiA+IGdvcnlvdW5pblwgOwor6Ieq6Lqr55WqID4gamlzaGluYmFuXCA7CivnoILmmYLoqIggPiBzdW5hZG9rZWlcIDsKK+ihgOmBlOejqCA+IGNoaWRhcnVtYVwgOwor6aSK6baP5aC0ID4geW91a2Vpam91XCA7CivohLHotbDlhbUgPiBkYXNzb3VoZWlcIDsKK+iNmOWckuWItiA+IHNob3VlbnNlaVwgOwor5YmN5Y2K5oimID4gemVucGFuc2VuXCA7CivoqJPoqYHlraYgPiBrdW5rb2dha3VcIDsKK+i7iuS6leaIuCA+IGt1cnVtYWlkb1wgOwor5aSW5YuZ55yBID4gZ2FpbXVzaG91XCA7CivmlrDmmYLku6MgPiBzaGluamlkYWlcIDsKK+a4ieWklumDqCA+IHNob3VnYWlidVwgOwor5oSf5YWJ57SZID4ga2Fua291c2hpXCA7Civmkq7lvbHmqZ8gPiBzYXRzdWVpa2lcIDsKK+S4gOeUn+a2ryA+IGlzc2hvdWdhaVwgOwor5rC05rqQ5ZywID4gc3VpZ2VuY2hpXCA7CivmlbTmtYHlmaggPiBzZWlyeXV1a2lcIDsKK+mKgOihjOeVjCA+IGdpbmtvdWthaVwgOwor54++5L2P5omAID4gZ2VuanV1c2hvXCA7CivliY3lj6PkuIogPiBtYWVrb3Vqb3VcIDsKK+WcsOWvvuepuiA+IGNoaXRhaWt1dVwgOwor56ys5LiA6ZuGID4gZGFpaXNzaHV1XCA7CivlpKnnmoflrrYgPiB0ZW4nJ25vdWtlXCA7CivntabmsrnoiLkgPiBreXV1eXVzZW5cIDsKK+S7o+abuOS6uiA+IGRhaXNob25pblwgOwor5Ym15aeL6ICFID4gc291c2hpc2hhXCA7CivkvqHmoLzluK8gPiBrYWtha3V0YWlcIDsKK+WgtOaJgOafhCA+IGJhc2hvZ2FyYVwgOwor5L+h5Y+35omAID4gc2hpbmdvdWpvXCA7CivmgqrlvqrnkrAgPiBha3VqdW5rYW5cIDsKK+Wun+mok+WApCA+IGppa2tlbmNoaVwgOwor5LiN6aKo5rWBID4gYnVmdXVyeXV1XCA7CivlrqPkvJ3lk6EgPiBzZW5kZW4nJ2luXCA7CivpmaTpm7vph50gPiBqb2RlbmJhcmlcIDsKK+ihm+eUn+WtpiA+IGVpc2VpZ2FrdVwgOwor55m66KaL6ICFID4gaGFra2Vuc2hhXCA7Civms5XnjovluoEgPiBob3VvdWNob3VcIDsKK+S4gOeVquaJiyA+IGljaGliYW50ZVwgOwor6ZmQ55WM54K5ID4gZ2Vua2FpdGVuXCA7Civmnb/nm67ntJkgPiBpdGFtZWdhbWlcIDsKK+aEgeWYhuWgtCA+IHNodXV0YW5iYVwgOwor6Iqx55u45pKyID4gaGFuYXp1bW91XCA7Civmra/np5HlraYgPiBzaGlrYWdha3VcIDsKK+S7leS6i+edgCA+IHNoaWdvdG9naVwgOwor5YWJ5paH56S+ID4ga291YnVuc2hhXCA7Civpq5jnh6XlnLAgPiBrb3Vzb3VjaGlcIDsKK+i+suWcsOazlSA+IG5vdWNoaWhvdVwgOwor6JGb5qC55rmvID4ga2Fra29udG91XCA7CivlhYnpm7vnrqEgPiBrb3VkZW5rYW5cIDsKK+i6q+WIhuafhCA+IG1pYnVuZ2FyYVwgOwor6Kaz6Kan5Yi4ID4ga2FucmFua2VuXCA7CivnpoHliLblk4EgPiBraW5zZWloaW5cIDsKK+W9k+expOiAhSA+IHRvdXNlbnNoYVwgOwor6YCy5YyW6KuWID4gc2hpbmthcm9uXCA7Civlho3mpJzoqI4gPiBzYWlrZW50b3VcIDsKK+WNiuWkj+eUnyA+IGhhbmdlc2hvdVwgOwor5b6h6aOv5pmCID4gZ29oYW5kb2tpXCA7CivmhJvlvJ/lrZAgPiBtYW5hZGVzaGlcIDsKK+aJi+W8leabuCA+IHRlYmlraXNob1wgOwor5o+u55m65rK5ID4ga2loYXRzdXl1XCA7Civnv7DmnpfpmaIgPiBrYW5yaW4nJ2luXCA7CivmlbTlkIjmgKcgPiBzZWlnb3VzZWlcIDsKK+aWmeeQhueVqiA+IHJ5b3VyaWJhblwgOwor5Y2B5LqM5a6uID4ganV1bmlreXV1XCA7CivnlJ/nlKPosqEgPiBzZWlzYW56YWlcIDsKK+S4gOS7o+iomCA+IGljaGlkYWlraVwgOwor5YWD5aeL56WtID4gZ2Vuc2hpc2FpXCA7CivkuqHlkb3ogIUgPiBib3VtZWlzaGFcIDsKK+acieeojuWTgSA+IHl1dXplaWhpblwgOwor5aSn5L2/6aSoID4gdGFpc2hpa2FuXCA7CivpmZDlrproqZ4gPiBnZW50ZWlzaGlcIDsKK+eEoemnhOmjryA+IG11ZGFtZXNoaVwgOwor57eP5rG6566XID4gc291a2Vzc2FuXCA7CivmrbTlj7LlrrYgPiByZWtpc2hpa2FcIDsKK+a1t+awtOW4vSA+IGthaXN1aWJvdVwgOwor5o6n6Zmk6aGNID4ga291am9nYWt1XCA7CivlrrbmlL/lraYgPiBrYXNlaWdha3VcIDsKK+WGheW8n+WtkCA+IHVjaGlkZXNoaVwgOwor5aSa5b+Z5LitID4gdGFib3VjaHV1XCA7Civljp/lr7jlpKcgPiBnZW5zdW5kYWlcIDsKK+apn+iDveeahCA+IGtpbm91dGVraVwgOwor5aWz5oCn55qEID4gam9zZWl0ZWtpXCA7Civmu5Hnv5TmqZ8gPiBrYXNzaG91a2lcIDsKK+W5tOWni+eKtiA+IG5lbnNoaWpvdVwgOwor5a2Q54Wp5oKpID4ga29ib24nJ25vdVwgOwor5oyH5Y2X6LuKID4gc2hpbmFuc2hhXCA7CivlhpnnlJ/mlocgPiBzaGFzZWlidW5cIDsKK+WGhemBiuaYnyA+IG5haXl1dXNlaVwgOwor6Ium6KGM6ICFID4ga3VneW91c2hhXCA7CivnvarmgqrmhJ8gPiB6YWlha3VrYW5cIDsKK+eEoeeXh+eKtiA+IG11c2hvdWpvdVwgOwor6KeS56CC57OWID4ga2FrdXphdG91XCA7CivnlJ/ov5TkuosgPiBuYW1haGVuamlcIDsKK+WNmOe0lOaApyA+IHRhbmp1bnNlaVwgOwor5aSn5YOn5q2jID4gZGFpc291am91XCA7CivkuIDouqvkuIogPiBpc3NoaW5qb3VcIDsKK+S/rumBk+WwvCA+IHNodXVkb3VuaVwgOwor6LuN5pS+6YCBID4gZ3VuaG91c291XCA7CivnmbvoqJjmlpkgPiB0b3VraXJ5b3VcIDsKK+iLseWbveS6uiA+IGVpa29rdWppblwgOwor5YG96Ki86ICFID4gZ2lzaG91c2hhXCA7CivpgZPot6/mqYsgPiBkb3Vyb2t5b3VcIDsKK+aSruW9seaJgCA+IHNhdHN1ZWlqb1wgOwor5b2i5oWL6KuWID4ga2VpdGFpcm9uXCA7Civlgb3oqLznvaogPiBnaXNob3V6YWlcIDsKK+mmluisgOiAhSA+IHNodWJvdXNoYVwgOwor6KSH5Y+35YyWID4gZnVrdWdvdWthXCA7CivnrKzkuIDovK8gPiBkYWlpc3NodXVcIDsKK+Wni+ellumzpSA+IHNoaXNvY2hvdVwgOwor54m56Kix5rOVID4gdG9ra3lvaG91XCA7CivppIrmr5vliaQgPiB5b3Vtb3V6YWlcIDsKK+a1ruawl+iAhSA+IHV3YWtpbW9ub1wgOwor5pqX6buS6KGXID4gYW5rb2t1Z2FpXCA7CivlpKflhYPluKUgPiBkYWlnZW5zdWlcIDsKK+WFjeioseeKtiA+IG1lbmt5b2pvdVwgOwor5aSc5YWJ6JmrID4geWFrb3VjaHV1XCA7CivlpYflpKnng4ggPiBraXRlcmV0c3VcIDsKK+WMmeWKoOa4myA+IHNhamlrYWdlblwgOwor5oqV5omL5p2/ID4gdG91c2h1YmFuXCA7CivlvpPmpa3lk6EgPiBqdXVneW91aW5cIDsKK+aJueipleecvCA+IGhpaHlvdWdhblwgOwor5L+u6YGT5aWzID4gc2h1dWRvdWpvXCA7CivlnKfnl5vngrkgPiBhdHRzdXV0ZW5cIDsKK+a1t+WFtemaiiA+IGthaWhlaXRhaVwgOwor6ICD6Kqy6KGoID4ga291a2FoeW91XCA7Civpuqboir3ns5YgPiBiYWt1Z2F0b3VcIDsKK+aWh+iKuOashCA+IGJ1bmdlaXJhblwgOwor5aSc55uy55eHID4geWFtb3VzaG91XCA7CivmipXnqL/ogIUgPiB0b3Vrb3VzaGFcIDsKK+eEoeW3ruWIpSA+IG11c2FiZXRzdVwgOwor56m65oy66ZqKID4ga3V1dGVpdGFpXCA7Civlvq7oqr/mlbQgPiBiaWNob3VzZWlcIDsKK+WPo+W/oOWunyA+IGt1Y2hpbWFtZVwgOwor6Iqx5qih5qeYID4gaGFuYW1veW91XCA7CivmnInlkI3moKEgPiB5dXVtZWlrb3VcIDsKK+eJueioseaoqSA+IHRva2t5b2tlblwgOwor5qeL5oiQ5a2QID4ga291c2Vpc2hpXCA7Civoq4vpoZjmm7ggPiBzZWlnYW5zaG9cIDsKK+aLoeWjsOapnyA+IGtha3VzZWlraVwgOwor6KiO6KuW5LyaID4gdG91cm9ua2FpXCA7Civmi5jnva7miYAgPiBrb3VjaGlzaG9cIDsKK+S6pOa4ieWToSA+IGtvdXNob3VpblwgOwor5Yq05b255aC0ID4gcm91ZWtpam91XCA7CivplbflsL7pto8gPiBuYWdhb2RvcmlcIDsKK+awtOmKgOeBryA+IHN1aWdpbnRvdVwgOwor5Li75oiQ5YiGID4gc2h1c2VpYnVuXCA7Civkv67ovp7ms5UgPiBzaHV1amlob3VcIDsKK+WNk+ipseS8miA+IHRha3V3YWthaVwgOwor5omL5bel6Iq4ID4gc2h1a291Z2VpXCA7CivmlpnnkIbms5UgPiByeW91cmlob3VcIDsKK+aJv+iqjeWbsyA+IHNob3VuaW56dVwgOwor5pys5bO25Lq6ID4gaG9udG91amluXCA7CivmgZLluLjmgKcgPiBrb3Vqb3VzZWlcIDsKK+mVt+WwvumzpSA+IG5hZ2FvZG9yaVwgOwor57WE57mU5YyWID4gc29zaGlraWthXCA7CivlvqHmlrDpgKAgPiBnb3NoaW56b3VcIDsKK+S5vumbu+axoCA+IGthbmRlbmNoaVwgOwor6Ieq5L2c6L6yID4gamlzYWt1bm91XCA7CivliLbnqbrmqKkgPiBzZWlrdXVrZW5cIDsKK+iKseaksOiPnCA+IGhhbmF5YXNhaVwgOwor56u25oqA5aC0ID4ga3lvdWdpam91XCA7Civml6fliLbluqYgPiBreXV1c2VpZG9cIDsKK+WFseWSjOaUvyA+IGt5b3V3YXNlaVwgOwor5bCK546L5a62ID4gc29uJydub3VrYVwgOwor6YGF6YCy5YWQID4gY2hpc2hpbmppXCA7CivmoITppIrlraYgPiBlaXlvdWdha3VcIDsKK+S4jeS7i+WFpSA+IGZ1a2Fpbnl1dVwgOwor5oqV5omL5oimID4gdG91c2h1c2VuXCA7CivniqzlvLXlrZAgPiBpbnVoYXJpa29cIDsKK+mAgembu+e3miA+IHNvdWRlbnNlblwgOwor5Y216buE5ZqiID4gcmFuJydvdW5vdVwgOwor5rCX5Zyn6KiIID4ga2lhdHN1a2VpXCA7Civpp4bomavliaQgPiBrdWNodXV6YWlcIDsKK+eKrOi/veeJqSA+IGludW91bW9ub1wgOwor5LiJ5paR6baJID4gbWlmdXV6dXJhXCA7Civmi43lrZDmnKggPiBoeW91c2hpZ2lcIDsKK+Wkmuavm+S9nCA+IHRhbW91c2FrdVwgOwor5omL6I2354mpID4gdGVuaW1vdHN1XCA7Civlh6DluLPpnaIgPiBraWNob3VtZW5cIDsKK+aooeevhOeahCA+IG1vaGFudGVraVwgOwor562G6KiY5bizID4gaGlra2ljaG91XCA7Civplbfot53pm6IgPiBjaG91a3lvcmlcIDsKK+e+juWwkeW5tCA+IGJpc2hvdW5lblwgOwor5Lm+54el5p2QID4ga2Fuc291emFpXCA7CivnlJ/nlKPogIUgPiBzZWlzYW5zaGFcIDsKK+S4jeacjeW+kyA+IGZ1ZnVrdWp1dVwgOwor5pys5qC85rS+ID4gaG9ua2FrdWhhXCA7Civljp/lrZDmiKYgPiBnZW5zaGlzZW5cIDsKK+S4jeWkiemHjyA+IGZ1aGVucnlvdVwgOwor6aGU6aa05p+TID4ga2FvbmFqaW1pXCA7CivokL3okYnmqLkgPiByYWt1eW91anVcIDsKK+S4iemgreetiyA+IHNhbnRvdWtpblwgOwor5Luj6KiA6ICFID4gZGFpZ2Vuc2hhXCA7Civmj67nmbrluqYgPiBraWhhdHN1ZG9cIDsKK+Wkp+iHqueEtiA+IGRhaXNoaXplblwgOwor5LiN5pmC552AID4gZnVqaWNoYWt1XCA7CivntbHliLbnt5ogPiB0b3VzZWlzZW5cIDsKK+WFiembu+axoCA+IGtvdWRlbmNoaVwgOwor6Iqx5L6b6aSKID4gaGFuYWt1eW91XCA7Civpm6PllY/poYwgPiBuYW5tb25kYWlcIDsKK+e2membu+mNtSA+IGtlaWRlbmtlblwgOwor5qmf5qKw5a2mID4ga2lrYWlnYWt1XCA7Civlqabkurrnl4UgPiBmdWppbmJ5b3VcIDsKK+WQjOWlveiAhSA+IGRvdWtvdXNoYVwgOwor5YG95aaK5aigID4gZ2luaW5zaGluXCA7CivngavnuITpioMgPiBoaW5hd2FqdXVcIDsKK+WJjeWLmOWumiA+IG1hZWthbmpvdVwgOwor5pei55m66KGoID4ga2loYXBweW91XCA7CivnlLLnirbohbogPiBrb3Vqb3VzZW5cIDsKK+eoveWPpOS6iyA+IGtlaWtvZ290b1wgOwor5oiQ5paH5rOVID4gc2VpYnVuaG91XCA7Civopo/moLzlk4EgPiBraWtha3VoaW5cIDsKK+S7leS6i+aXpSA+IHNoaWdvdG9iaVwgOwor5YiG5LiO56iOID4gYnVuJyd5b3plaVwgOwor55m954Sh5Z6iID4gc2hpcm9tdWt1XCA7CivkuoznrYnos54gPiBuaXRvdXNob3VcIDsKK+WumuS8keaXpSA+IHRlaWt5dXViaVwgOwor55m954Gv5rK5ID4gaGFrdXRvdXl1XCA7CivpgYvou6LluK0gPiB1bnRlbnNla2lcIDsKK+WFrOawkemkqCA+IGtvdW1pbmthblwgOwor56+k6L6y5a62ID4gdG9rdW5vdWthXCA7CivojInojonoirEgPiBtYXRzdXJpa2FcIDsKK+S6uuW3pea4ryA+IGppbmtvdWtvdVwgOwor6auY6Zm15ZyfID4ga291cnlvdWRvXCA7CivmhJ/lhYnmnb8gPiBrYW5rb3ViYW5cIDsKK+S4ieS5l+aguSA+IHNhbmpvdWtvblwgOwor55S36aKo5ZGCID4gb3Rva29idXJvXCA7CivlpbPpg47oirEgPiBvbWluYWVzaGlcIDsKK+a7nue0jeiAhSA+IHRhaW5vdXNoYVwgOwor5Lyd6YGT5birID4gZGVuZG91c2hpXCA7Civlv5zlj6zlhbUgPiBvdXNob3VoZWlcIDsKK+ikh+WNgeWtlyA+IGZ1a3VqdXVqaVwgOwor5YaN5qeL5oiQID4gc2Fpa291c2VpXCA7CivmnInmrrXogIUgPiB5dXVkYW5zaGFcIDsKK+WNmOiho+eJqSA+IGhpdG9lbW9ub1wgOwor6KaP5qC85YikID4ga2lrYWt1YmFuXCA7CivnrKzkuInogIUgPiBkYWlzYW5zaGFcIDsKK+S9k+aTjeWgtCA+IHRhaXNvdWpvdVwgOwor5Li75rWB5rS+ID4gc2h1cnl1dWhhXCA7CivluoPloLHlrpggPiBrb3Vob3VrYW5cIDsKK+S6uuW3peaxoCA+IGppbmtvdWlrZVwgOwor5Y+j6JOL5Z6CID4ga291Z2Fpc3VpXCA7Civph5HliZvnoIIgPiBrb25nb3VzaGFcIDsKK+WNgeS4ieWknCA+IGp1dXNhbicneWFcIDsKK+Wkp+WtpumZoiA+IGRhaWdha3VpblwgOwor5LmX55So6LuKID4gam91eW91c2hhXCA7CivkuI3mmI7norogPiBmdW1laWtha3VcIDsKK+icg+awl+alvCA+IHNoaW5raXJvdVwgOwor6KSH6JGJ5qmfID4gZnVrdXlvdWtpXCA7CivkuoznrYnopqogPiBuaXRvdXNoaW5cIDsKK+iNieertummrCA+IGt1c2FrZWliYVwgOwor6Zqg5YWD6LGGID4gaW5nZW5tYW1lXCA7CivntK/kuZfmoLkgPiBydWlqb3Vrb25cIDsKK+adsea0i+S6uiA+IHRvdXlvdWppblwgOwor56u25oqA5LyaID4ga3lvdWdpa2FpXCA7Civli6foqpjlk6EgPiBrYW4nJ3l1dWluXCA7CivogIHlqYblv4MgPiByb3ViYXNoaW5cIDsKK+WCteaoqeiAhSA+IHNhaWtlbnNoYVwgOwor56ys5LiA576pID4gZGFpaWNoaWdpXCA7CivlnKflgJLnmoQgPiBhdHRvdXRla2lcIDsKK+S4jeaYjueerSA+IGZ1bWVpcnlvdVwgOwor5pS+6Zu7566hID4gaG91ZGVua2FuXCA7CivliY3ouqvpoIMgPiBtYWVtaWdvcm9cIDsKK+WwkeaVsOa0viA+IHNob3VzdXVoYVwgOwor54m55o2c6YOoID4gdG9rdXNvdWJ1XCA7Civoqr/ppqzluKsgPiBjaG91YmFzaGlcIDsKK+eQhuirlueahCA+IHJpcm9udGVraVwgOwor6aOy5rC06YePID4gaW5zdWlyeW91XCA7Civoqr/nkIbms5UgPiBjaG91cmlob3VcIDsKK+e0r+eKr+iAhSA+IHJ1aWhhbnNoYVwgOwor5aW96YO95ZCIID4ga291dHN1Z291XCA7Civlronlhajln58gPiBhbnplbicnaWtpXCA7CivomZrmoITlv4MgPiBreW9laXNoaW5cIDsKK+Wumuacn+eahCA+IHRlaWtpdGVraVwgOwor6KqN5Y+v6Ki8ID4gbmlua2FzaG91XCA7Civkv6Hlv4PlrrYgPiBzaGluamlua2FcIDsKK+W8t+Wnpue9qiA+IGdvdWthbnphaVwgOwor5pWZ5o6I5LyaID4ga3lvdWp1a2FpXCA7CivpgKPlkIjou40gPiByZW5nb3VndW5cIDsKK+mHjeWQiOS9kyA+IGp1dWdvdXRhaVwgOwor5Yqg6JmQ5oSbID4ga2FneWFrdWFpXCA7CivmsrPlt53mlbcgPiBrYXNlbmppa2lcIDsKK+i7jemaiuiRrCA+IGd1bnRhaXNvdVwgOwor5pWw5bm06ZaTID4gc3V1bmVua2FuXCA7Civou73msJfnkIMgPiBrZWlraWt5dXVcIDsKK+mdkua1ruiNiSA+IGFvdWtpa3VzYVwgOwor5a6J5qW95q27ID4gYW5yYWt1c2hpXCA7Civph5HlubPns5YgPiBrb25wZWl0b3VcIDsKK+WumuS9j+WcsCA+IHRlaWp1dWNoaVwgOwor6YeR6Lyq6ZqbID4ga29ucmluemFpXCA7CivmlpnnkIblupcgPiByeW91cml0ZW5cIDsKK+iyv+aYk+miqCA+IGJvdWVraWZ1dVwgOwor5Lq65bel5p6XID4gamlua291cmluXCA7CivmtbfpgYvmpa0gPiBrYWl1bmd5b3VcIDsKK+iho+mjn+S9jyA+IGlzaG9rdWp1dVwgOwor5a+d5YW36aGeID4gc2hpbmd1cnVpXCA7CivmnbHljZfmnbEgPiB0b3VuYW50b3VcIDsKK+eUsuadv+WToSA+IGtvdWhhbicnaW5cIDsKK+ePvuS7o+WPsiA+IGdlbmRhaXNoaVwgOwor5qC56I+c6aGeID4ga29uc2FpcnVpXCA7CivlrprkvovkvJogPiB0ZWlyZWlrYWlcIDsKK+axuumXmOeKtiA+IGtldHRvdWpvdVwgOwor6JqV5Y2157SZID4gc2FucmFuc2hpXCA7CivlpJbokpnlj6QgPiBzb3RvbW91a29cIDsKK+i7iuS4oeWMliA+IHNoYXJ5b3VrYVwgOwor5oSf5YWJ5oCnID4ga2Fua291c2VpXCA7CivnrKzkuIDnq6AgPiBkYWlpc3Nob3VcIDsKK+iHqOeVjOeCuSA+IHJpbmthaXRlblwgOwor5ZWG5aOy5rCXID4gc2hvdWJhaWdpXCA7Civlm73mhrLms5UgPiBrb2trZW5wb3VcIDsKK+S4oemZm+S4iyA+IHJ5b3VoZWlrYVwgOwor6ZmQ5a6a54mIID4gZ2VudGVpYmFuXCA7CivliY3ou4rovKogPiB6ZW5zaGFyaW5cIDsKK+mbhOeJm+ezniA+IG91c2hpa3Vzb1wgOwor5LiN5aaK55eHID4gZnVuaW5zaG91XCA7CivlpInmtYHlmaggPiBoZW5yeXV1a2lcIDsKK+mHneS+m+mkiiA+IGhhcmlrdXlvdVwgOwor5b6u6KaW55qEID4gYmlzaGl0ZWtpXCA7Civnm6PoppbloZQgPiBrYW5zaGl0b3VcIDsKK+WNoOaLoOWcsCA+IHNlbmt5b2NoaVwgOwor5oyH5ZCR5oCnID4gc2hpa291c2VpXCA7CivkuIDkurrnlKggPiBoaXRvcml5b3VcIDsKK+iqv+mmrOWgtCA+IGNob3ViYWpvdVwgOwor5YaN6Ly45YWlID4gc2FpeXVueXV1XCA7Civntr/mtKXoposgPiB3YXRhdHN1bWlcIDsKK+WEquiJr+WFkCA+IHl1dXJ5b3VqaVwgOwor5rWu5YuV56WoID4gZnVkb3VoeW91XCA7CivlhYjlpKnmgKcgPiBzZW50ZW5zZWlcIDsKK+W9ouaIkOWxpCA+IGtlaXNlaXNvdVwgOwor5bir56+E5LujID4gc2hpaGFuZGFpXCA7CivkvJHmraLnrKYgPiBreXV1c2hpZnVcIDsKK+S4jemdouebriA+IGZ1bWVubW9rdVwgOwor5bCP57Og6ZuoID4ga29udWthYW1lXCA7CivmnKzkuojnrpcgPiBob24nJ3lvc2FuXCA7CivmjIfljZfnlaogPiBzaGluYW5iYW5cIDsKK+aLoeWjsOWZqCA+IGtha3VzZWlraVwgOwor6Ieq55Sx5qWtID4gaml5dXVneW91XCA7CivnpoHovLjlk4EgPiBraW4nJ3l1aGluXCA7Civlj7jkvJrogIUgPiBzaGlrYWlzaGFcIDsKK+aKleeov+ashCA+IHRvdWtvdXJhblwgOwor5oy/6Kmx55qEID4gc291d2F0ZWtpXCA7CivpgZPkuK3oqJggPiBkb3VjaHV1a2lcIDsKK+WNiuWhqeawtCA+IGhhbicnZW5zdWlcIDsKK+aOkuS7lueahCA+IGhhaXRhdGVraVwgOwor5aSn6IW454KOID4gZGFpY2hvdWVuXCA7CivlsLzms5XluKsgPiBhbWFob3VzaGlcIDsKK+Wumue9rue2siA+IHRlaWNoaWFtaVwgOwor6Iq46IO955WMID4gZ2Vpbm91a2FpXCA7CivljYrmv4Hpn7MgPiBoYW5kYWt1b25cIDsKK+mFjeeuoeW3pSA+IGhhaWthbmtvdVwgOwor54++5Luj5Lq6ID4gZ2VuZGFpamluXCA7CivovrLmvIHmsJEgPiBub3VneW9taW5cIDsKK+Wls+aAp+WtpiA+IGpvc2VpZ2FrdVwgOwor5Lm+54el5ZywID4ga2Fuc291Y2hpXCA7CivliIbpoZ7ms5UgPiBidW5ydWlob3VcIDsKK+efs+iGj+WDjyA+IHNla2tvdXpvdVwgOwor5b2x5q2m6ICFID4ga2FnZW11c2hhXCA7CivmtLvniYjmnKwgPiBrYXBwYW5ib25cIDsKK+S7leS6i+WgtCA+IHNoaWdvdG9iYVwgOwor5amm5Lq65pyNID4gZnVqaW5mdWt1XCA7Civlr53lv4PlnLAgPiBuZWdva29jaGlcIDsKK+e1teW3u+eJqSA+IGVtYWtpbW9ub1wgOwor5LiN5paZ57ChID4gZnVyeW91a2VuXCA7CivljJbnn7PlsaQgPiBrYXNla2lzb3VcIDsKK+aZqemkkOS8miA+IGJhbnNhbmthaVwgOwor5LuV5pS+6aGMID4gc2hpaG91ZGFpXCA7CivlhbHlkozliLYgPiBreW91d2FzZWlcIDsKK+ahiOWGheeKtiA+IGFuJyduYWlqb3VcIDsKK+WkmuWFg+eahCA+IHRhZ2VudGVraVwgOwor5Yi25rW35qipID4gc2Vpa2Fpa2VuXCA7CivkuqTphY3nqK4gPiBrb3VoYWlzaHVcIDsKK+WcqOS9j+iAhSA+IHphaWp1dXNoYVwgOwor5oiQ54af5pyfID4gc2VpanVrdWtpXCA7CivlhbHlkozlhZogPiBreW91d2F0b3VcIDsKK+W5s+aWueaguSA+IGhlaWhvdWtvblwgOwor6Kuc5aCx5ZOhID4gY2hvdWhvdWluXCA7CivoiIjlpa7liaQgPiBrb3VmdW56YWlcIDsKK+WFiOimi+iAhSA+IHNlbmtlbnNoYVwgOwor6Iiq56m65Yi4ID4ga291a3V1a2VuXCA7CivlhYnpm7vlrZAgPiBrb3VkZW5zaGlcIDsKK+WjsuWbveWltCA+IGJhaWtva3Vkb1wgOwor57mB5YiG5pWwID4gaGFuYnVuc3V1XCA7CivmgKfooYzli5UgPiBzZWlrb3Vkb3VcIDsKK+mKgOihjOWIuCA+IGdpbmtvdWtlblwgOwor5LiH5LiH5q2zID4gYmFuYmFuemFpXCA7CivlgZzoiLnloLQgPiB0ZWlzZW5qb3VcIDsKK+WYhumhmOabuCA+IHRhbmdhbnNob1wgOwor5YaN55Sf55SjID4gc2Fpc2Vpc2FuXCA7CivlnLDlr77lnLAgPiBjaGl0YWljaGlcIDsKK+aWh+S9k+irliA+IGJ1bnRhaXJvblwgOwor6Kq/5p+75ZujID4gY2hvdXNhZGFuXCA7CivljZjooYzmnKwgPiB0YW5rb3Vib25cIDsKK+Wwj+WknOabsiA+IHNheW9reW9rdVwgOwor5Ye65LiW6ZaTID4gc2h1c3Nla2VuXCA7CivljZjooYzmm7ggPiB0YW5rb3VzaG9cIDsKK+S4gOaZgumWkyA+IGljaGlqaWthblwgOwor5rip5rOJ6YO3ID4gb25zZW5reW91XCA7CivmnInlkI3kurogPiB5dXVtZWlqaW5cIDsKK+W+jOeUsuadvyA+IGtvdWthbnBhblwgOwor5byx5L2T5YyWID4gamFrdXRhaWthXCA7CivntYzmuIjpnaIgPiBrZWl6YWltZW5cIDsKK+S/rumok+mBkyA+IHNodWdlbmRvdVwgOwor5b6A55Sf6ZqbID4gb3Vqb3VnaXdhXCA7CivmrovlrZjogIUgPiB6YW56b25zaGFcIDsKK+iIquepuuS+vyA+IGtvdWt1dWJpblwgOwor5qC45q2m6KOFID4ga2FrdWJ1c291XCA7Civln4volLXph5EgPiBtYWl6b3VraW5cIDsKK+WtpOeri+WMliA+IGtvcml0c3VrYVwgOwor6IGW5a625pePID4gc2Vpa2F6b2t1XCA7Civkub7nh6XliaQgPiBrYW5zb3V6YWlcIDsKK+azpeeCreWcsCA+IGRlaXRhbmNoaVwgOwor5aSW6Lyq6Ii5ID4gZ2Fpcmluc2VuXCA7CivopIfliKnms5UgPiBmdWt1cmlob3VcIDsKK+iSuOeVmeWZqCA+IGpvdXJ5dXVraVwgOwor6ZGR5a6a5pu4ID4ga2FudGVpc2hvXCA7Civoo73msLfmqZ8gPiBzZWloeW91a2lcIDsKK+W3u+Wvv+WPuCA+IG1ha2l6dXNoaVwgOwor5raI6LK76LKhID4gc2hvdWhpemFpXCA7CivokZfkvZzlrrYgPiBjaG9zYWt1a2FcIDsKK+W4guiyqeWTgSA+IHNoaWhhbmhpblwgOwor5be76aCt6KiAID4ga2FudG91Z2VuXCA7Civoqr/nkIbluKsgPiBjaG91cmlzaGlcIDsKK+ecn+ahkeeTnCA+IG1ha3V3YXVyaVwgOwor6ZqP5b6T6ICFID4genVpanV1c2hhXCA7CivkuIDlr7jlhYggPiBpc3N1bnNha2lcIDsKK+aWh+WtpumDqCA+IGJ1bmdha3VidVwgOwor5LqI57SE5Yi2ID4geW95YWt1c2VpXCA7Civnt5rpgJ/luqYgPiBzZW5zb2t1ZG9cIDsKK+W5s+mdouW9oiA+IGhlaW1lbmtlaVwgOwor6KSH5q+U5L6LID4gZnVrdWhpcmVpXCA7CivmlaPmsLTou4ogPiBzYW5zdWlzaGFcIDsKK+S4gOaZgumHkSA+IGljaGlqaWtpblwgOwor5YmN5bm05bqmID4gemVuJyduZW5kb1wgOwor55m66KGM6ICFID4gaGFra291c2hhXCA7CivlgZznlZnmiYAgPiB0ZWlyeXV1am9cIDsKK+WuruWfjuecjCA+IG1peWFnaWtlblwgOwor5YmN5YmN5ZueID4gemVuemVua2FpXCA7Civnh5flvrPliKkgPiBrYW5kb2t1cmlcIDsKK+atu+WIkeWgtCA+IHNoaWtlaWpvdVwgOwor5be75a2Q5pysID4ga2Fuc2hpaG9uXCA7CivnlLrorbDkvJogPiBjaG91Z2lrYWlcIDsKK+S6uueUn+imsyA+IGppbnNlaWthblwgOwor55yf54+g6LKdID4gc2hpbmp1Z2FpXCA7Civkuqzpg73luIIgPiBreW91dG9zaGlcIDsKK+mbqOWPsOmiqCA+IGFtZXRhaWZ1dVwgOwor6Ieq55Sx5b2iID4gaml5dXVnYXRhXCA7CivlhY3oqLHliLYgPiBtZW5reW9zZWlcIDsKK+mbkeWgseashCA+IHphcHBvdXJhblwgOwor5oSb5YWa5b+DID4gYWl0b3VzaGluXCA7CivpmLLmraLms5UgPiBib3VzaGlob3VcIDsKK+mBuOaMmeazlSA+IHNlbmt5b2hvdVwgOwor5aSp5LqV6KOPID4gdGVuam91dXJhXCA7CivljYrpmbDlvbEgPiBoYW4nJ2luJydlaVwgOwor5pyA6YeN54K5ID4gc2FpanV1dGVuXCA7CivkuIDlr77kuIAgPiBpdHRhaWljaGlcIDsKK+mBuOaMmeawkSA+IHNlbmt5b21pblwgOwor5pWZ5ZSG6ICFID4ga3lvdXNhc2hhXCA7CivmlpnnkIbkurogPiByeW91cmluaW5cIDsKK+iHqueUseW4rSA+IGppeXV1c2VraVwgOwor5pyI5YiK6KqMID4gZ2Vra2Fuc2hpXCA7CivkuI3nhp/nt7QgPiBmdWp1a3VyZW5cIDsKK+WPpOWFuOeahCA+IGtvdGVudGVraVwgOwor5aSJ5q276ICFID4gaGVuc2hpc2hhXCA7CivmnKzmoLzljJYgPiBob25rYWt1a2FcIDsKK+S7leS4iuW3pSA+IHNoaWFnZWtvdVwgOwor54mh5Li55p2PID4gYm90YW5reW91XCA7CivlubPmlrnlvaIgPiBoZWlob3VrZWlcIDsKK+WKtOWDjeiAhSA+IHJvdWRvdXNoYVwgOwor5aSJ5YyW55CDID4gaGVua2FreXV1XCA7CivpgaDpmpToppYgPiBlbmtha3VzaGlcIDsKK+mbkeiomOW4syA+IHpha2tpY2hvdVwgOwor5Zyo5qCh55SfID4gemFpa291c2VpXCA7Civmkanmk6bpn7MgPiBtYXNhdHN1b25cIDsKK+ibjeeDj+iziiA+IGhvdGFydWlrYVwgOwor5YaN55Sf5rOVID4gc2Fpc2VpaG91XCA7CivlpJrnmbrmqZ8gPiB0YWhhdHN1a2lcIDsKK+a0u+eJiOWxiyA+IGthcHBhbicneWFcIDsKK+mHkeWJm+aJiyA+IGtvbmdvdXNodVwgOwor6KKr5a6z6aGNID4gaGlnYWlnYWt1XCA7CivpgbjmjJnmqKkgPiBzZW5reW9rZW5cIDsKK+WfuuacrOe1piA+IGtpaG9ua3l1dVwgOwor6Z2e6YeR5bGeID4gaGlraW56b2t1XCA7CivnjKnnjKnnt4sgPiBzaG91am91aGlcIDsKK+WbnuaVmeW+kiA+IGthaWt5b3V0b1wgOwor5oyH56S65YWIID4gc2hpamlzYWtpXCA7Civlgpnlv5jpjLIgPiBiaWJvdXJva3VcIDsKK+egguezlum7jSA+IHNhdG91a2liaVwgOwor5qGI5YaF5pu4ID4gYW4nJ25haXNob1wgOwor5Yqf5Yq06YeRID4ga291cm91a2luXCA7Civooqvlt67liKUgPiBoaXNhYmV0c3VcIDsKK+eXmOeXlemdoiA+IGFiYXRhenVyYVwgOwor5pyx5paH6YeRID4gc2h1YnVua2luXCA7CivkuI3orLnmhY4gPiBmdWtpbnNoaW5cIDsKK+iCneehrOWkiSA+IGthbmtvdWhlblwgOwor5pyr5pyf55qEID4gbWFra2l0ZWtpXCA7CivnpLzlpYnlhawgPiByZWlib3Vrb3VcIDsKK+WNlOaKgOiAhSA+IGt5b3VnaXNoYVwgOwor5aSa6Laz6aGeID4gdGFzb2t1cnVpXCA7CivnpZ7np5jmgKcgPiBzaGlucGlzZWlcIDsKK+ayuOmosOeCuSA+IGZ1dHRvdXRlblwgOwor6aSK6a2a5rGgID4geW91Z3lvY2hpXCA7CivprZTms5XnmoQgPiBtYWhvdXRla2lcIDsKK+ijveawt+aJgCA+IHNlaWh5b3Vqb1wgOwor6Zai6KW/5byBID4ga2Fuc2FpYmVuXCA7CivlhavljYPojYkgPiB5YWNoaWd1c2FcIDsKK+mBk+S6pOazlSA+IGRvdWtvdWhvdVwgOwor6YeO6I+c5rGBID4geWFzYWlqaXJ1XCA7CivmlqHml4vmlpkgPiBhc3NlbnJ5b3VcIDsKK+iIqua1t+WjqyA+IGtvdWthaXNoaVwgOwor5rWu5YuV5qCqID4gZnVkb3VrYWJ1XCA7Civmt7fkuqTmnpcgPiBrb25rb3VyaW5cIDsKK+aooeevhOWbmiA+IG1vaGFuc2h1dVwgOwor6Kyb576p6YyyID4ga291Z2lyb2t1XCA7CivnlJ/lrZjogIUgPiBzZWl6b25zaGFcIDsKK+S4jeisrOaApyA+IGZ1Ynl1dXNlaVwgOwor5bCO6Zu75oCnID4gZG91ZGVuc2VpXCA7CivmlLnpnanmoYggPiBrYWlrYWt1YW5cIDsKK+azleaUueatoyA+IGhvdWthaXNlaVwgOwor55Sf55Sj5oCnID4gc2Vpc2Fuc2VpXCA7CivkuIrkuK3kuIsgPiBqb3VjaHV1Z2VcIDsKK+e1puawtOaJgCA+IGt5dXVzdWlqb1wgOwor54yc55aR5b+DID4gc2FpZ2lzaGluXCA7CivkuI3oqr/ms5UgPiBidWNob3Vob3VcIDsKK+WPl+WLleeahCA+IGp1ZG91dGVraVwgOwor6Ieq55Sx5Z6LID4gaml5dXVnYXRhXCA7Civoqr/nkIblj7AgPiBjaG91cmlkYWlcIDsKK+epuumWkeWcsCA+IGt1dWthbmNoaVwgOwor5Yq05YON56WtID4gcm91ZG91c2FpXCA7Civlho3mnaXpgLEgPiBzYXJhaXNodXVcIDsKK+S7o+ihqOmDqCA+IGRhaWh5b3VidVwgOwor5YOF5bCR5beuID4ga2luc2hvdXNhXCA7CivlkajmnJ/mgKcgPiBzaHV1a2lzZWlcIDsKK+mjm+ihjOacjSA+IGhpa291ZnVrdVwgOwor5LiN54m55a6aID4gZnV0b2t1dGVpXCA7CivooajpnaLljJYgPiBoeW91bWVua2FcIDsKK+W4guacieWcsCA+IHNoaXl1dWNoaVwgOwor5qiZ5rqW6KqeID4gaHlvdWp1bmdvXCA7CivmsLTlubPpnaIgPiBzdWloZWltZW5cIDsKK+S6pOmAmui3ryA+IGtvdXRzdXVyb1wgOwor5raI6LK76ICFID4gc2hvdWhpc2hhXCA7Civlj6TpgZPlhbcgPiBmdXJ1ZG91Z3VcIDsKK+WfuuacrOeahCA+IGtpaG9udGVraVwgOwor6I2J5Zuj5a2QID4ga3VzYWRhbmdvXCA7CivnnJ/nj6DoibIgPiBzaGluanVpcm9cIDsKK+e1seW4peaoqSA+IHRvdXN1aWtlblwgOwor57e057+S5qmfID4gcmVuc2h1dWtpXCA7CivmmIfpmY3oiLUgPiBzaG91a291ZGFcIDsKK+WFteW6q+ecjCA+IGh5b3Vnb2tlblwgOwor5YWs5rW35LiKID4ga291a2Fpam91XCA7Civmv4DmiKbljLogPiBnZWtpc2Vua3VcIDsKK+WEgOekvOeahCA+IGdpcmVpdGVraVwgOwor5pyJ5bmz57OWID4gYXJ1aGVpdG91XCA7CivkuqTpgJrosrsgPiBrb3V0c3V1aGlcIDsKK+mHkemtmuiNiSA+IGtpbmd5b3NvdVwgOwor552A54Gr54K5ID4gY2hha2thdGVuXCA7CivpgbjmjJnmiKYgPiBzZW5reW9zZW5cIDsKK+Wul+S4u+aoqSA+IHNvdXNodWtlblwgOwor5rC06YW45qC5ID4gc3Vpc2Fua29uXCA7CivotaTljYHlrZcgPiBzZWtpanV1amlcIDsKK+iThOmfs+apnyA+IGNoaWt1b25raVwgOwor6Ieq5bCK5b+DID4gamlzb25zaGluXCA7CivooajoqJjms5UgPiBoeW91a2lob3VcIDsKK+mcsuWkqeWVhiA+IHJvdGVuc2hvdVwgOwor5LyR5bu35pelID4ga3l1dXRlaWJpXCA7Civpo7LphZLnmZYgPiBpbnNodWhla2lcIDsKK+S4gOaWiemrmCA+IGlzc2VpZGFrYVwgOwor5Yem5YiR5Y+wID4gc2hva2VpZGFpXCA7CivlhrfmiL/ou4ogPiByZWlib3VzaGFcIDsKK+aknOeWq+aJgCA+IGtlbicnZWtpam9cIDsKK+eFp+W6puioiCA+IHNob3Vkb2tlaVwgOwor5Y+O56iO5ZCPID4gc2h1dXplaXJpXCA7Civllonoh6rmhaIgPiBub2RvamltYW5cIDsKK+mHkeeci+advyA+IGtpbmthbmJhblwgOwor5pWj5by+6YqDID4gc2FuZGFuanV1XCA7Civln7nppIrmtrIgPiBiYWl5b3Vla2lcIDsKK+WkqeeLl+miqCA+IHRlbmd1a2F6ZVwgOwor5LiA5pys5p2JID4gaXBwb25zdWdpXCA7CivmuKzlvq7oqIggPiBzb2t1YmlrZWlcIDsKK+miqOiHtOaelyA+IGZ1dWNoaXJpblwgOwor5Zyw55CG5a2mID4gY2hpcmlnYWt1XCA7Civnvo7po5/lrrYgPiBiaXNob2t1a2FcIDsKK+Wwv+mBk+eCjiA+IG55b3Vkb3VlblwgOwor6J6z6J6C5ouzID4gdG91cm91a2VuXCA7Civoqr/nkIbkurogPiBjaG91cmluaW5cIDsKK+WWq+eFmeaJgCA+IGtpdHN1ZW5qb1wgOwor5pmC5YiG5pmCID4gamlidW5kb2tpXCA7Civlhavph43moZwgPiB5YWV6YWt1cmFcIDsKK+WNl+ibruiIuSA+IG5hbmJhbnNlblwgOwor6LGM6LGG6LGGID4gZW5kb3VtYW1lXCA7Civlm57mlbDliLggPiBrYWlzdXVrZW5cIDsKK+ijvemAoOiAhSA+IHNlaXpvdXNoYVwgOwor6YeN5b255LyaID4ganV1eWFra2FpXCA7CivljJfmrKfkurogPiBob2t1b3VqaW5cIDsKK+S4gOS6uuWtkCA+IGhpdG9yaWtrb1wgOwor5q2755Sf6KazID4gc2hpc2Vpa2FuXCA7Civngq3nlr3nl4UgPiB0YW5zb2J5b3VcIDsKK+eZveWcsOWbsyA+IGhha3VjaGl6dVwgOwor6byI55Sy6ImyID4gYmVra291aXJvXCA7CivkuZfou4rliLggPiBqb3VzaGFrZW5cIDsKK+a4rOeoi+WZqCA+IHNva3V0ZWlraVwgOwor5qGI5YaF5ayiID4gYW4nJ25haWpvdVwgOwor5YaG6Iie5puyID4gZW5idWt5b2t1XCA7CivmtojosrvnqI4gPiBzaG91aGl6ZWlcIDsKK+WjgeS4gOmHjSA+IGthYmVoaXRvZVwgOwor5Zub6Z2i5L2TID4gc2hpbWVudGFpXCA7CivlnKjmnaXnt5ogPiB6YWlyYWlzZW5cIDsKK+Wkp+eQhuefsyA+IGRhaXJpc2VraVwgOwor55Sf55Sj5ZywID4gc2Vpc2FuY2hpXCA7CivniYfnlLDoiI4gPiBrYXRhaW5ha2FcIDsKK+ikh+WGmeapnyA+IGZ1a3VzaGFraVwgOwor6aKo5L+X55S7ID4gZnV1em9rdWdhXCA7CivlgbTpnaLlm7MgPiBzb2t1bWVuenVcIDsKK+iogOiqnuWtpiA+IGdlbmdvZ2FrdVwgOwor5beh6Iiq6Ii5ID4ganVua291c2VuXCA7Civljp/lp4vmnpcgPiBnZW5zaGlyaW5cIDsKK+iHs+S4iuaoqSA+IHNoaWpvdWtlblwgOwor5bCP5aOy5ZWGID4ga291cmlzaG91XCA7CivntbHliLblk4EgPiB0b3VzZWloaW5cIDsKK+esrOS4gOWvqSA+IGRhaWlzc2hpblwgOwor57SF5q+b5Lq6ID4ga291bW91amluXCA7CivorITlhpnniYggPiB0b3VzaGFiYW5cIDsKK+aOp+iotOWvqSA+IGtvdXNvc2hpblwgOwor5Lit5Y+k6LuKID4gY2h1dWtvc2hhXCA7CivmlrDntIDlhYMgPiBzaGlua2lnZW5cIDsKK+e3tOe/kuaJgCA+IHJlbnNodXVqb1wgOwor56uL5pa55qC5ID4gcmlwcG91a29uXCA7Civnn63pn7Ppmo4gPiB0YW4nJ29ua2FpXCA7CivlrqPoqpPmm7ggPiBzZW5zZWlzaG9cIDsKK+S6jOaLjeWtkCA+IG5pYnlvdXNoaVwgOwor5Yq06L6y5YWaID4gcm91bm91dG91XCA7CivlvbzlsrjoirEgPiBoaWdhbmJhbmFcIDsKK+W/oOmtgueikSA+IGNodXVrb25oaVwgOwor5pyJ5Yq55oCnID4geXV1a291c2VpXCA7CivkuInml6XmnIggPiBtaWthZHp1a2lcIDsKK+eZuuaMr+apnyA+IGhhc3NoaW5raVwgOwor57eP5YuZ5bqBID4gc291bXVjaG91XCA7CivmtYHooYzoqp4gPiByeXV1a291Z29cIDsKK+WGhemuruS6uiA+IG5haXNlbmppblwgOwor55Sf55CG55qEID4gc2Vpcml0ZWtpXCA7CivlkI3oqonmhb4gPiBtZWl5b3lva3VcIDsKK+WKquWKm+WutiA+IGRvcnlva3VrYVwgOwor5Zyo5p2l56iuID4gemFpcmFpc2h1XCA7CivliqDnoavms5UgPiBrYXJ5dXVob3VcIDsKK+Wkp+WutuaXjyA+IGRhaWthem9rdVwgOwor5pmv5pWZ5b6SID4ga2Vpa3lvdXRvXCA7Civpq5jnqY3pm7IgPiBrb3VzZWtpdW5cIDsKK+S5l+iIueWIuCA+IGpvdXNlbmtlblwgOwor5YaN5a+p5p+7ID4gc2Fpc2hpbnNhXCA7CivnlKjoqp7pm4YgPiB5b3Vnb3NodXVcIDsKK+iyoOWCt+iAhSA+IGZ1c2hvdXNoYVwgOwor5Yq05YON5rOVID4gcm91ZG91aG91XCA7CivmsY7nlKjmqZ8gPiBoYW4nJ3lvdWtpXCA7CivlkI3oqonlv4MgPiBtZWl5b3NoaW5cIDsKK+mRkeWumuS6uiA+IGthbnRlaW5pblwgOwor5oqV56Wo5pelID4gdG91aHlvdWJpXCA7CivlhYjooYzoqZ4gPiBzZW5rb3VzaGlcIDsKK+eLrOa8lOS8miA+IGRva3VlbmthaVwgOwor6Z+z6Z+75a2mID4gb24nJ2luZ2FrdVwgOwor5Yqf5Yq06ICFID4ga291cm91c2hhXCA7CivohLPntLDog54gPiBub3VzYWlib3VcIDsKK+e+juaWh+iqvyA+IGJpYnVuY2hvdVwgOwor5piO57Sw5pu4ID4gbWVpc2Fpc2hvXCA7CivnlLfmloflrZcgPiBvdG9rb21vamlcIDsKK+e3j+WLmOWumiA+IHNvdWthbmpvdVwgOwor5Zue6Kan5p2/ID4ga2FpcmFuYmFuXCA7Civku7vlkb3nirYgPiBuaW5tZWlqb3VcIDsKK+S4iue0jemHkSA+IGpvdW5vdWtpblwgOwor5ou35ZWP5Y+wID4gZ291bW9uZGFpXCA7CivkuIrlpY/mlocgPiBqb3Vzb3VidW5cIDsKK+iHquiyrOeCuSA+IGppc2VraXRlblwgOwor5Yqp55uj552jID4gam9rYW50b2t1XCA7Civlh6bnlJ/oqJMgPiBzaG9zZWlrdW5cIDsKK+acrOippumokyA+IGhvbnNoaWtlblwgOwor5aSW5L+h6YOoID4gZ2Fpc2hpbmJ1XCA7CivkuIDkurrliY0gPiBoaXRvcmltYWVcIDsKK+WKtOWDjeaoqSA+IHJvdWRvdWtlblwgOwor5Zyw55CD5YSAID4gY2hpa3l1dWdpXCA7CivlnLDkuIrmqKkgPiBjaGlqb3VrZW5cIDsKK+mHkeWxj+miqCA+IGtpbmJ5b3VidVwgOwor5bCO6Zu75L2TID4gZG91ZGVudGFpXCA7CivlhbHnm4rosrsgPiBreW91ZWtpaGlcIDsKK+S4jeiqjeaJvyA+IGZ1bmluc2hvdVwgOwor6aas6bm/6Z2iID4gYmFrYWR6dXJhXCA7CivlnJ/nlKjms6IgPiBkb3lvdW5hbWlcIDsKK+e3j+mBuOaMmSA+IHNvdXNlbmt5b1wgOwor5Yi25b6h55ukID4gc2VpZ3lvYmFuXCA7Civlv4PmhI/msJcgPiBrb2tvcm9pa2lcIDsKK+mHjeWKtOWDjSA+IGp1dXJvdWRvdVwgOwor5omL5qa05by+ID4gdGVyeXV1ZGFuXCA7CivkuIDmnprkuIogPiBpY2hpbWFpdWVcIDsKK+WkqeS6leeBryA+IHRlbmpvdXRvdVwgOwor6aSK6a2a5aC0ID4geW91Z3lvam91XCA7CivmipXnpajmiYAgPiB0b3VoeW91am9cIDsKK+W6p+aomeezuyA+IHphaHlvdWtlaVwgOwor5YaG5YCf5qy+ID4gZW5zaGFra2FuXCA7Civntbblr77oq5YgPiB6ZXR0YWlyb25cIDsKK+aNleiZq+e2siA+IGhvY2h1dWFtaVwgOwor5Ye65p2l5pifID4gZGVraWJvc2hpXCA7CivoirHmn7PnlYwgPiBrYXJ5dXVrYWlcIDsKK+WFrOawkeaoqSA+IGtvdW1pbmtlblwgOwor5aaC5L2V6KixID4gaWthYmFrYXJpXCA7CivmuIXmlZnlvpIgPiBzZWlreW91dG9cIDsKK+e0q+Wklue3miA+IHNoaWdhaXNlblwgOwor5ZCM5aW95LyaID4gZG91a291a2FpXCA7CivmtJfou4rloLQgPiBzZW5zaGFqb3VcIDsKK+Wxleacm+i7iiA+IHRlbmJvdXNoYVwgOwor5pqX5Y+35bizID4gYW5nb3VjaG91XCA7CivluYzppqzou4ogPiBob3JvYmFzaGFcIDsKK+Wkp+S8gealrSA+IGRhaWtpZ3lvdVwgOwor5aOy56yR5ammID4gYmFpc2hvdWZ1XCA7CivmjqHngrnogIUgPiBzYWl0ZW5zaGFcIDsKK+mWk+mameavlCA+IGthbmdla2loaVwgOwor5aOu6KGM5LyaID4gc291a291a2FpXCA7Civlho3nlJ/lk4EgPiBzYWlzZWloaW5cIDsKK+WFrOekvuWCtSA+IGtvdXNoYXNhaVwgOwor5pyq5p2l5a2mID4gbWlyYWlnYWt1XCA7CivmnKvlp4vntYIgPiBzdWVzaGlqdXVcIDsKK+a9nOawtOiJpiA+IHNlbnN1aWthblwgOwor5rC06YGT566hID4gc3VpZG91a2FuXCA7CivlpKnnkIbmlZkgPiB0ZW5yaWt5b3VcIDsKK+S6iOaDs+mrmCA+IHlvc291ZGFrYVwgOwor5omL5p+E6aGUID4gdGVnYXJhZ2FvXCA7CivmiYvoirjlk4EgPiBzaHVnZWloaW5cIDsKK+W5s+ihoemMmCA+IGhlaWtvdXN1aVwgOwor5oqX5q+S57SgID4ga291ZG9rdXNvXCA7CivlpKfosYbnspUgPiBkYWl6dWthc3VcIDsKK+eglOeptuiyuyA+IGtlbmt5dXVoaVwgOwor55+l6IO954qvID4gY2hpbm91aGFuXCA7CivpgbjmiYvmqKkgPiBzZW5zaHVrZW5cIDsKK+m6nemmmem5vyA+IGpha291amlrYVwgOwor5rW35bK457eaID4ga2FpZ2Fuc2VuXCA7Civosr/mmJPmuK8gPiBib3Vla2lrb3VcIDsKK+aapuW5tOW6piA+IHJla2luZW5kb1wgOwor5aSp5a6u5ZuzID4gdGVua3l1dXp1XCA7CivmnInmqKnogIUgPiB5dXVrZW5zaGFcIDsKK+S9k+ijgeS4iiA+IHRlaXNhaWpvdVwgOwor5LyK6YGU55S3ID4gZGF0ZW90b2tvXCA7CivkvJHliIrml6UgPiBreXV1a2FuYmlcIDsKK+WPpOWFuOWtpiA+IGtvdGVuZ2FrdVwgOwor5pS56KiC54mIID4ga2FpdGVpYmFuXCA7CivnlJ/lrZjmqKkgPiBzZWl6b25rZW5cIDsKK+ipsuWVj+mhjCA+IGdhaW1vbmRhaVwgOwor5pqX5Y+35a2mID4gYW5nb3VnYWt1XCA7Civku6PooYzogIUgPiBkYWlrb3VzaGFcIDsKK+WFq+WNg+atsyA+IHlhY2hpdG9zZVwgOwor5Y+j55yf5Ly8ID4ga3VjaGltYW5lXCA7Civlh7rniYjpg6ggPiBzaHVwcGFuYnVcIDsKK+ims+a4rOaJgCA+IGthbnNva3Vqb1wgOwor57WM5riI55WMID4ga2VpemFpa2FpXCA7CivkuI3nhrHlv4MgPiBmdW5lc3NoaW5cIDsKK+WFrOazleS6uiA+IGtvdWhvdWppblwgOwor5LyR55yg5pyfID4ga3l1dW1pbmtpXCA7Civlia/nt4/nkIYgPiBmdWt1c291cmlcIDsKK+S8tOWlj+iAhSA+IGJhbnNvdXNoYVwgOwor5a++6KuH6ICFID4gdGFpZGFuc2hhXCA7Civosr/mmJPms5UgPiBib3Vla2lob3VcIDsKK+WckumBiuS8miA+IGVuJyd5dXVrYWlcIDsKK+izm+aIkOiAhSA+IHNhbnNlaXNoYVwgOwor6Iq46IO95Lq6ID4gZ2Vpbm91amluXCA7CivliIborbLlnLAgPiBidW5qb3VjaGlcIDsKK+WxiOWFieaApyA+IGt1a2tvdXNlaVwgOwor55yf54+g5rm+ID4gc2hpbmp1d2FuXCA7CivkuqTpgJrnpo0gPiBrb3V0c3V1a2FcIDsKK+aLneeBq+aVmSA+IGhhaWtha3lvdVwgOwor566H5p2h5pu4ID4ga2Fqb3VnYWtpXCA7CivpgbjmjJnkurogPiBzZW5reW9uaW5cIDsKK+mFqui+suWutiA+IHJha3Vub3VrYVwgOwor5bel6Iq45ZOBID4ga291Z2VpaGluXCA7CivmnKrmnaXlnosgPiBtaXJhaWdhdGFcIDsKK+W8gemwk+mhniA+IGJlbnNhaXJ1aVwgOwor54Sh6LOH5qC8ID4gbXVzaGlrYWt1XCA7Civku7vlkb3mqKkgPiBuaW5tZWlrZW5cIDsKK+iZq+WegueCjiA+IGNodXVzdWllblwgOwor56C06JC95oi4ID4gZ29yb3RzdWtpXCA7Civok4Tpn7PlmaggPiBjaGlrdW9ua2lcIDsKK+e3qeS4i+iWrCA+IGthbmdleWFrdVwgOwor5pyJ5qmf55qEID4geXV1a2l0ZWtpXCA7CivmraPlj43lr74gPiBzZWloYW50YWlcIDsKK+mdkua1t+WOnyA+IGFvdW5hYmFyYVwgOwor5Ye56Z2i6Y+hID4gb3VtZW5reW91XCA7CivloLHpgZPpmaMgPiBob3Vkb3VqaW5cIDsKK+WKo+WLouaEnyA+IHJlc3NlaWthblwgOwor5b6h5paZ5ZywID4gZ29yeW91Y2hpXCA7CivoqIjnrpfogIUgPiBrZWlzYW5zaGFcIDsKK+eEoemnhOWPoyA+IG11ZGFndWNoaVwgOwor5p2O5om/5pmpID4gcmlzaG91YmFuXCA7Civnpo/pn7Pmm7ggPiBmdWt1aW5zaG9cIDsKK+WFq+WNpuaOjCA+IGhha2tlc2hvdVwgOwor6Ieq5Li755qEID4gamlzaHV0ZWtpXCA7CivpgLLmranlhZogPiBzaGlucG90b3VcIDsKK+ebuOWPjeaApyA+IHNvdWhhbnNlaVwgOwor6IO95YuV5oWLID4gbm91ZG91dGFpXCA7Civlj7jku6TlrpggPiBzaGlyZWlrYW5cIDsKK+WcsOmch+ioiCA+IGppc2hpbmtlaVwgOwor57SZ5LiA6YeNID4ga2FtaWhpdG9lXCA7CivmsLTliqDmuJsgPiBtaXp1a2FnZW5cIDsKK+WHuueJiOiyuyA+IHNodXBwYW5oaVwgOwor5p6c5aCx6ICFID4ga2Fob3Vtb25vXCA7CivmiJDplbfmnJ8gPiBzZWljaG91a2lcIDsKK+a1hOWcn+aVmSA+IGpvdWRva3lvdVwgOwor5aSp5LqV5p2/ID4gdGVuam91aXRhXCA7Civpm4blobXmqZ8gPiBzaHV1amlua2lcIDsKK+WHjOazouaApyA+IHJ5b3VoYXNlaVwgOwor5b+r55S35a2QID4ga2FpZGFuc2hpXCA7CivlpKnni5fojLggPiB0ZW5ndXRha2VcIDsKK+eLmeaSg+WFtSA+IHNvZ2VraWhlaVwgOwor5aSW6Lyq5bGxID4gZ2FpcmluemFuXCA7CivmmIfpmY3mqZ8gPiBzaG91a291a2lcIDsKK+aUvueBq+eLgiA+IGhvdWtha3lvdVwgOwor6aKo6aas54mbID4gZnV1YmFneXV1XCA7CivpmbblmajllYYgPiB0b3VraXNob3VcIDsKK+S4ieWhgee3miA+IHNhbnJ1aXNlblwgOwor6YGT576p5b+DID4gZG91Z2lzaGluXCA7CivotoXmmYLnqbogPiBjaG91amlrdXVcIDsKK+W+rueykuWtkCA+IGJpcnl1dXNoaVwgOwor5rC05bmz57eaID4gc3VpaGVpc2VuXCA7Civlho3lsIvllY8gPiBzYWlqaW5tb25cIDsKK+a4heaOg+i7iiA+IHNlaXNvdXNoYVwgOwor5pyA5YmN57eaID4gc2FpemVuc2VuXCA7Civntbblr77ogIUgPiB6ZXR0YWlzaGFcIDsKK+ato+eiuuW6piA+IHNlaWtha3Vkb1wgOwor5rC35YmK5qmfID4gaHlvdXNha2tpXCA7CivliIbop6Pog70gPiBidW5rYWlub3VcIDsKK+Wbm+inkuW9oiA+IHNoaWtha2tlaVwgOwor5a6j6KiA5pu4ID4gc2VuZ2Vuc2hvXCA7Civlj7jku6TloZQgPiBzaGlyZWl0b3VcIDsKK+eri+WkquWtkCA+IHJpdHRhaXNoaVwgOwor5pyJ6LmE6aGeID4geXV1dGVpcnVpXCA7Civkvb/nlKjogIUgPiBzaGl5b3VzaGFcIDsKK+WkqeS4iueVjCA+IHRlbmpvdWthaVwgOwor6Z2S5rW35LqAID4gYW91bWlnYW1lXCA7CivmnaXpgYrogIUgPiByYWl5dXVzaGFcIDsKK+W3qOS6uui7jSA+IGt5b2ppbmd1blwgOwor5a2m6YOo55SfID4gZ2FrdWJ1c2VpXCA7Civlt6Xlrabpg6ggPiBrb3VnYWt1YnVcIDsKK+aVmeenkeabuCA+IGt5b3VrYXNob1wgOwor57WM5riI5rOVID4ga2VpemFpaG91XCA7CivnoLTlgrfpoqggPiBoYXNob3VmdXVcIDsKK+aMgeWPguS6uiA+IGppc2FuJyduaW5cIDsKK+e3j+edo+W6nCA+IHNvdXRva3VmdVwgOwor5pel5pys6auqID4gbmlob25nYW1pXCA7CivliLblvqHmo5IgPiBzZWlneW9ib3VcIDsKK+aknOahiOabuCA+IGtlbicnYW5zaG9cIDsKK+atqemBk+apiyA+IGhvZG91a3lvdVwgOwor5Zyw5pa557SZID4gY2hpaG91c2hpXCA7Civml6Xlgq3lj5YgPiBoaXlvdXRvcmlcIDsKK+WcsOeNhOWkiSA+IGppZ29rdWhlblwgOwor5ZCI5aWP5ZujID4gZ2Fzc291ZGFuXCA7CivnmbrmjK/lmaggPiBoYXNzaGlua2lcIDsKK+WkqeS6leaJhyA+IHRlbmpvdXNlblwgOwor5YWo5Y+N5bCEID4gemVuaGFuc2hhXCA7CivlpInpgJ/mqZ8gPiBoZW5zb2t1a2lcIDsKK+eEoeeQhuW8jyA+IG11cmlzaGlraVwgOwor6Lu95Yq05YONID4ga2Vpcm91ZG91XCA7CivmraPlj43lkIggPiBzZWloYW5nb3VcIDsKK+e1jOa4iOashCA+IGtlaXphaXJhblwgOwor55Sf5a2X5byVID4gaWtpamliaWtpXCA7CivmipXnpajljLogPiB0b3VoeW91a3VcIDsKK+acqOabnOaXpSA+IG1va3V5b3ViaVwgOwor5Ye65pyo5bm0ID4gZGVraWRvc2hpXCA7CivnopPmsLfls6AgPiB1c3VpdG91Z2VcIDsKK+WKoOWFpemHkSA+IGthbnl1dWtpblwgOwor5rCR6ZaT5Lq6ID4gbWlua2FuamluXCA7Civlhazli5/moKogPiBrb3Vib2thYnVcIDsKK+S5l+mmrOacjSA+IGpvdWJhZnVrdVwgOwor5pel5pys6aCYID4gbmlob25yeW91XCA7CivokZfmm7jlkI0gPiBjaG9zaG9tZWlcIDsKK+e1jOWWtuWtpiA+IGtlaWVpZ2FrdVwgOwor55m96Ymb6YmxID4gaGFrdWVua291XCA7Civnspfnm67ns5YgPiB6YXJhbWV0b3VcIDsKK+WGheeOhOmWoiA+IG5haWdlbmthblwgOwor5Zyw5pa556iOID4gY2hpaG91emVpXCA7Civlt6Hmn7vplbcgPiBqdW5zYWNob3VcIDsKK+WNsOWIt+apnyA+IGluc2F0c3VraVwgOwor5YeN5q276ICFID4gdG91c2hpc2hhXCA7Civnmb3pioXosqggPiBoYWt1ZG91a2FcIDsKK+WkqeeQg+WbsyA+IHRlbmt5dXV6dVwgOwor5YWr5Y2D5bm0ID4geWFjaGl0b3NlXCA7Civljp/lp4vkurogPiBnZW5zaGlqaW5cIDsKK+WKoOW3peizgyA+IGtha291Y2hpblwgOwor56u56Lyq6bqpID4gY2hpa3V3YWZ1XCA7CivkuIDmlrnnmoQgPiBpcHBvdXRla2lcIDsKK+WHuuS7leS6iyA+IGRlc2hpZ290b1wgOwor5q2j5b+15aC0ID4gc2hvdW5lbmJhXCA7Civmn5TpgZPloLQgPiBqdXVkb3Vqb3VcIDsKK+iEiumrhOeCjiA+IHNla2l6dWllblwgOwor5LqM6YeN6YecID4gbmlqdXVnYW1hXCA7Civnq4vmlrnkvZMgPiByaXBwb3V0YWlcIDsKK+mBoOmalOaApyA+IGVua2FrdXNlaVwgOwor6Lu95q2M5YqHID4ga2Vpa2FnZWtpXCA7CivliLbli5Xnga8gPiBzZWlkb3V0b3VcIDsKK+WCrOecoOWJpCA+IHNhaW1pbnphaVwgOwor5LuK5LiA5bqmID4gaW1haWNoaWRvXCA7CivmlLvpmLLmiKYgPiBrb3Vib3VzZW5cIDsKK+a1hOWcn+WulyA+IGpvdWRvc2h1dVwgOwor5pON57im5qG/ID4gc291anV1a2FuXCA7CivmlofmmI7ppKggPiBidW5tZWlrYW5cIDsKK+WwjumWouaVsCA+IGRvdWthbnN1dVwgOwor5rue5Zyo5ZywID4gdGFpemFpY2hpXCA7CivkuIrntI3nsbMgPiBqb3Vub3VtYWlcIDsKK+Wuh+WumeacjSA+IHVjaHV1ZnVrdVwgOwor5Yip5Y+j6ICFID4gcmlrb3Vtb25vXCA7Civmlrnms5Xoq5YgPiBob3Vob3Vyb25cIDsKK+iTi+eEtuaApyA+IGdhaXplbnNlaVwgOwor5Y2K6KO95ZOBID4gaGFuc2VpaGluXCA7CivkuIDloLTpnaIgPiBpY2hpYmFtZW5cIDsKK+efs+eJiOeUuyA+IHNla2liYW5nYVwgOwor55m76Yyy57C/ID4gdG91cm9rdWJvXCA7CivkuIDmmKjmmakgPiBpc3Nha3ViYW5cIDsKK+WkmualteWMliA+IHRha3lva3VrYVwgOwor5aSn5LiA55WqID4gb29pY2hpYmFuXCA7CivooZvmmJ/lm70gPiBlaXNlaWtva3VcIDsKK+S4i+e0mueUnyA+IGtha3l1dXNlaVwgOwor5qiZ5rqW5pmCID4gaHlvdWp1bmppXCA7Civpq5jpvaLogIUgPiBrb3VyZWlzaGFcIDsKK+S4gOS4geWJjSA+IGl0Y2hvdW1hZVwgOwor5qiq5oGL5oWVID4geW9rb3JlbmJvXCA7CivosqHnlKPnqI4gPiB6YWlzYW56ZWlcIDsKK+S6jOmHjei6qyA+IG5panV1c2hpblwgOwor55Sf55CG5a2mID4gc2VpcmlnYWt1XCA7CivnhrHlmajlhbcgPiBuZXRzdWtpZ3VcIDsKK+WvkuWGt+e0lyA+IGthbnJlaXNoYVwgOwor5rC06YGT5qCTID4gc3VpZG91c2VuXCA7CivmjqLntKLmnKggPiB0YW5zYWt1Z2lcIDsKK+eglOeptuenkSA+IGtlbmt5dXVrYVwgOwor5a6f5pa95L6LID4gamlzc2hpcmVpXCA7Civplbfpn7Ppmo4gPiBjaG91b25rYWlcIDsKK+S4jeipleWIpCA+IGZ1aHlvdWJhblwgOwor6YG45omL5ZujID4gc2Vuc2h1ZGFuXCA7Civlip/liKnnmoQgPiBrb3VyaXRla2lcIDsKK+WkqeeQg+WEgCA+IHRlbmt5dXVnaVwgOwor55yf54+g5bGkID4gc2hpbmp1c291XCA7CivlubPlnYfngrkgPiBoZWlraW50ZW5cIDsKK+mAo+WQiOS8miA+IHJlbmdvdWthaVwgOwor5bel5qWt5YyWID4ga291Z3lvdWthXCA7CivotaTpgZPlhIAgPiBzZWtpZG91Z2lcIDsKK+aWh+WtpuW6pyA+IGJ1bmdha3V6YVwgOwor5Yq05YON5YWaID4gcm91ZG91dG91XCA7CivntYzmuIjmiKYgPiBrZWl6YWlzZW5cIDsKK+exs+epuui7jSA+IGJlaWt1dWd1blwgOwor5pW35bGF572uID4gc2hpa2lpY2hpXCA7CivphY3lvZPph5EgPiBoYWl0b3VraW5cIDsKK+mjm+iaiueXhyA+IGhpYnVuc2hvdVwgOwor6LWk55ei6I+MID4gc2VraXJpa2luXCA7CivkupTljYHogqkgPiBnb2p1dWthdGFcIDsKK+mrmOetieWumCA+IGtvdXRvdWthblwgOwor5Zyw5pa554mIID4gY2hpaG91YmFuXCA7CivniYfohLPmsrkgPiBoZW4nJ25vdXl1XCA7CivlpYnooYzmiYAgPiBidWd5b3VzaG9cIDsKK+iCr+WumuaWhyA+IGtvdXRlaWJ1blwgOwor6Iqz6aaZ5YmkID4gaG91a291emFpXCA7Civngavngb3mtYEgPiBrYXNhaXJ5dXVcIDsKK+WNsOWIt+aJgCA+IGluc2F0c3Vqb1wgOwor5aSn6IGW5aCCID4gZGFpc2VpZG91XCA7CivntYzmuIjmgKcgPiBrZWl6YWlzZWlcIDsKK+ibh+e0i+efsyA+IGphbW9uc2VraVwgOwor5rWB6KGM5q2MID4gcnl1dWtvdWthXCA7CivkuInop5LmtLIgPiBzYW5rYWt1c3VcIDsKK+S4ieaWh+WIpCA+IHNhbm1vbmJhblwgOwor5LiJ6KeS5rOiID4gc2Fua2FrdWhhXCA7Civlrp/pmpvmgKcgPiBqaXNzYWlzZWlcIDsKK+erueefouadpSA+IHRha2V5YXJhaVwgOwor5bmz6KGM57eaID4gaGVpa291c2VuXCA7CivokbHlnYrkuLsgPiBuZWdpYm91enVcIDsKK+Wtq+W8n+WtkCA+IG1hZ29kZXNoaVwgOwor5a6556mN5q+UID4geW91c2VraWhpXCA7CivliLbphbjliaQgPiBzZWlzYW56YWlcIDsKK+WNoOWPluaoqSA+IHNlbnNodWtlblwgOwor5Li755y854K5ID4gc2h1Z2FudGVuXCA7CivpgaDpmpTlnLAgPiBlbmtha3VjaGlcIDsKK+S4ieinkuavlCA+IHNhbmtha3VoaVwgOwor6ZW35pmC6ZaTID4gY2hvdWppa2FuXCA7CivljYrnq6/ogIUgPiBoYW5wYW1vbm9cIDsKK+eLrOemgeazlSA+IGRva2tpbmhvdVwgOwor5bqD5ZGK6LK7ID4ga291a29rdWhpXCA7CivmnIDlhKrpgYcgPiBzYWl5dXVndXVcIDsKK+WPsOmiqOecvCA+IHRhaWZ1dWdhblwgOwor5pyq5pWZ6IKyID4gbWlreW91aWt1XCA7Civoo4Hmlq3luKsgPiBzYWlkYW5zaGlcIDsKK+WFqOWNmOWwhCA+IHplbnRhbnNoYVwgOwor5Yq55p6c55qEID4ga291a2F0ZWtpXCA7CivnqbrmiYvlvaIgPiBrdXV0ZWdhdGFcIDsKK+WNsOWIu+W4qyA+IGlua29rdXNoaVwgOwor6Z2S5bm06LypID4gc2VpbmVuaGFpXCA7CivlibLng7nlupcgPiBrYXBwb3V0ZW5cIDsKK+iyv+aYk+WTgSA+IGJvdWVraWhpblwgOwor5YmK5bKp5qmfID4gc2FrdWdhbmtpXCA7CivlrozkuoblvowgPiBrYW5yeW91Z29cIDsKK+Wkp+S4iuautSA+IGRhaWpvdWRhblwgOwor5ZyS6Iq45a2mID4gZW5nZWlnYWt1XCA7CivmjIfnm7jmkrIgPiB5dWJpenVtb3VcIDsKK+iCqeeUsuW4ryA+IGtlbmtvdXRhaVwgOwor5q2j5b2T5oCnID4gc2VpdG91c2VpXCA7CivnoILns5bmsLQgPiBzYXRvdW1penVcIDsKK+aWuemMkOW9oiA+IGhvdXN1aWtlaVwgOwor55u45b2T5pWwID4gc291dG91c3V1XCA7CivphrjpgKDphZIgPiBqb3V6b3VzaHVcIDsKK+W3puS4remWkyA+IHNhY2h1dWthblwgOwor5Lyd5Luk6ICFID4gZGVucmVpc2hhXCA7CivmnKjntr/ph50gPiBtb21lbmJhcmlcIDsKK+acqOeJiOeUuyA+IG1va3VoYW5nYVwgOwor5qSc5p+75b25ID4ga2Vuc2F5YWt1XCA7Civlv5jlubTkvJogPiBib3VuZW5rYWlcIDsKK+Wuh+WumeWtpiA+IHVjaHV1Z2FrdVwgOwor55yf55CG5YCkID4gc2hpbnJpY2hpXCA7CivphY3msLTnrqEgPiBoYWlzdWlrYW5cIDsKK+WkqumZvemiqCA+IHRhaXlvdWZ1dVwgOwor5L2/55So5rOVID4gc2hpeW91aG91XCA7CivljbDliLflsYsgPiBpbnNhdHN1eWFcIDsKK+mfs+WjsOWtpiA+IG9uc2VpZ2FrdVwgOwor5LyK6YGU5aWzID4gZGF0ZW9uJyduYVwgOwor5Ymv6Kme5Y+lID4gZnVrdXNoaWt1XCA7Civlrp/mlbDkvZMgPiBqaXNzdXV0YWlcIDsKK+ijj+mVt+WxiyA+IHVyYW5hZ2F5YVwgOwor5p2x5bel5aSnID4gdG91a291ZGFpXCA7CivoirHmmYLoqIggPiBoYW5hZG9rZWlcIDsKK+ijvemAoOWTgSA+IHNlaXpvdWhpblwgOwor6KiI566X5pu4ID4ga2Vpc2Fuc2hvXCA7CivliLbli5XmiYsgPiBzZWlkb3VzaHVcIDsKK+S4jeimj+W+iyA+IGZ1a2lyaXRzdVwgOwor5Y+j6IWU55mMID4ga291a291Z2FuXCA7Civlm57nrZTogIUgPiBrYWl0b3VzaGFcIDsKK+WNmOW+k+mZoyA+IHRhbmp1dWppblwgOwor5Y+N6Iux6ZuEID4gaGFuJydlaXl1dVwgOwor5Li75qip6ICFID4gc2h1a2Vuc2hhXCA7CivlpKfmnKzlsbEgPiBkYWlob256YW5cIDsKK+S4reWSjOWJpCA+IGNodXV3YXphaVwgOwor5oWI5ZaE566xID4gaml6ZW5iYWtvXCA7CivmnIDlt6bnv7wgPiBzYWlzYXlva3VcIDsKK+S4ieinkuaXlyA+IHNhbmtha3VraVwgOwor5Yqg5YWl6ICFID4ga2FueXV1c2hhXCA7Civoo77mqKHmp5ggPiBzdXNvbW95b3VcIDsKK+S4gOmau+ecvCA+IGlzc2VraWdhblwgOwor5L2/55So5qipID4gc2hpeW91a2VuXCA7Civov5HkvZPoqakgPiBraW50YWlzaGlcIDsKK+WkqeeLvOaYnyA+IHRlbnJvdXNlaVwgOwor5YaN54qv6ICFID4gc2FpaGFuc2hhXCA7Civlk6jmiJLmqZ8gPiBzaG91a2Fpa2lcIDsKK+mAmumBjumnhSA+IHRzdXVrYWVraVwgOwor5aSn5Lq65YWxID4gb3RvbmFkb21vXCA7CivngrrmlL7poYwgPiBzaGlob3VkYWlcIDsKK+iLpuW/g+irhyA+IGt1c2hpbmRhblwgOwor5pON57im5aOrID4gc291anV1c2hpXCA7CivnnJ/nj6DlhYkgPiBzaGluanVrb3VcIDsKK+mAn+W6puioiCA+IHNva3Vkb2tlaVwgOwor54Sh6LKs5Lu7ID4gbXVzZWtpbmluXCA7Civmkq3kvYbnt5ogPiBiYW50YW5zZW5cIDsKK+iBluiqleelrSA+IHNlaXRhbnNhaVwgOwor54Sh5LiA5paHID4gbXVpY2hpbW9uXCA7CivluLjliIbmlbAgPiBqb3VidW5zdXVcIDsKK+WGjeiAg+aFriA+IHNhaWtvdXJ5b1wgOwor5YSA5YW46ZW3ID4gZ2l0ZW5jaG91XCA7Civlt6Xlrabnp5EgPiBrb3VnYWt1a2FcIDsKK+S6pOatk+S8miA+IGtvdWthbmthaVwgOwor5aSp6LGh5YSAID4gdGVuc2hvdWdpXCA7CivlvJXnlKjmlocgPiBpbicneW91YnVuXCA7CivojZLms5XluKsgPiBhcmFob3VzaGlcIDsKK+eZgumkiuiyuyA+IHJ5b3V5b3VoaVwgOwor5qmf6Zai6ZW3ID4ga2lrYW5jaG91XCA7CivlkJHlnLDmgKcgPiBrb3VjaGlzZWlcIDsKK+WHseaXi+mWgCA+IGdhaXNlbm1vblwgOwor6Kit5YKZ6LK7ID4gc2V0c3ViaWhpXCA7Civoo4HnuKvluKsgPiBzYWlob3VzaGlcIDsKK+iyoeeUo+aoqSA+IHphaXNhbmtlblwgOwor5ZCM6KGM6ICFID4gZG91a291c2hhXCA7CivmipXnn7PmqZ8gPiB0b3VzZWtpa2lcIDsKK+aEm+agoeW/gyA+IGFpa291c2hpblwgOwor5LyP6a2U5q6/ID4gZnVrdW1hZGVuXCA7CivojLblmajntYQgPiBjaGFraWd1bWlcIDsKK+S4ieWhgeaJiyA+IHNhbnJ1aXNodVwgOwor6Jma54Sh55qEID4ga3lvbXV0ZWtpXCA7CivkvJ3lsI7mgKcgPiBkZW5kb3VzZWlcIDsKK+aWh+Wtl+WIlyA+IG1vamlyZXRzdVwgOwor5Y+N6Iq76aGeID4gaGFuc3V1cnVpXCA7CivlrprlnovoqakgPiB0ZWlrZWlzaGlcIDsKK+awtOiPk+WtkCA+IG1penVnYXNoaVwgOwor5L2/55So5pa5ID4gc2hpeW91aG91XCA7Civpu43lm6PlrZAgPiBraWJpZGFuZ29cIDsKK+i7n+WPo+iTiyA+IG5hbmtvdWdhaVwgOwor6ZeH55u45aC0ID4geWFtaXNvdWJhXCA7CivlroflrpnljZogPiB1Y2h1dWhha3VcIDsKK+acgOWJjeaIpiA+IHNhaXplbnNlblwgOwor6Iql5a2Q6I+cID4ga2FyYXNoaW5hXCA7Civnj43pgZPlhbcgPiBjaGluZG91Z3VcIDsKK+m7hOihqOe0mSA+IGtpYnlvdXNoaVwgOwor5b6T5aeJ5aa5ID4ganV1c2hpbWFpXCA7CivlrZDnpo/ogIUgPiBrb2J1a3VzaGFcIDsKK+aAneaDs+eVjCA+IHNoaXNvdWthaVwgOwor5rCR6KGG5YyWID4gbWluc2h1dWthXCA7CivpiI3pu4ToibIgPiBuaWJ1a2lpcm9cIDsKK+S4ieinkuW9oiA+IHNhbmtha2tlaVwgOwor5aSn5pys5Za2ID4gZGFpaG9uJydlaVwgOwor54yb54m56KiTID4gbW91dG9ra3VuXCA7CivkuojlkYrnt6ggPiB5b2tva3VoZW5cIDsKK+WGt+a5v+W4gyA+IHJlaXNoaXBwdVwgOwor5qiZ5rqW5YyWID4gaHlvdWp1bmthXCA7CivljZfom67kurogPiBuYW5iYW5qaW5cIDsKK+eUsOWckuipqSA+IGRlbicnZW5zaGlcIDsKK+S4ieinkuW6pyA+IHNhbmtha3V6YVwgOwor5YaN6Kmm6aiTID4gc2Fpc2hpa2VuXCA7Civlr5LluK/mnpcgPiBrYW50YWlyaW5cIDsKK+WCvuaWnOmdoiA+IGtlaXNoYW1lblwgOwor5q275Lqh6ICFID4gc2hpYm91c2hhXCA7CivkuInop5LluIYgPiBzYW5rYWt1aG9cIDsKK+WNiuerr+eJqSA+IGhhbnBhbW9ub1wgOwor5ama5ae75rOVID4ga29uJydpbmhvdVwgOwor5LiJ6KeS5beeID4gc2Fua2FrdXN1XCA7Civkuozph43nqpMgPiBuaWp1dW1hZG9cIDsKK+iHqueEtumhniA+IHNoaXplbnJ1aVwgOwor5bCC5aOy5ZOBID4gc2VuYmFpaGluXCA7CivkuI3ntbHkuIAgPiBmdXRvdWl0c3VcIDsKK+WknOS8muacjSA+IHlha2FpZnVrdVwgOwor5LqI5ZGK56+HID4geW9rb2t1aGVuXCA7CivlhZrmtL7lv4MgPiB0b3VoYXNoaW5cIDsKK+aAneaDs+eKryA+IHNoaXNvdWhhblwgOwor5byB5b2T5LujID4gYmVudG91ZGFpXCA7Civogp3oh5PnmYwgPiBrYW56b3VnYW5cIDsKK+e1jOa4iOS6uiA+IGtlaXphaWppblwgOwor5LuP5pWZ5b6SID4gYnVra3lvdXRvXCA7CivnsbPmtbfou40gPiBiZWlrYWlndW5cIDsKK+WQq+ayueWxpCA+IGdhbicneXVzb3VcIDsKK+aDheWgseiqjCA+IGpvdWhvdXNoaVwgOwor5Yex5peL6LuNID4gZ2Fpc2VuZ3VuXCA7CivokL3kvI3ogIUgPiByYWt1Z29zaGFcIDsKK+iejeino+eCuSA+IHl1dWthaXRlblwgOwor5reL5be055CDID4gcmlucGFreXV1XCA7Civlq4znhZnmqKkgPiBrZW4nJ2Vua2VuXCA7CivlpKvlqabku7IgPiBmdXVmdW5ha2FcIDsKK+aEn+afk+WOnyA+IGthbnNlbmdlblwgOwor6L+O6LOT6aSoID4gZ2VpaGlua2FuXCA7CivoqZXorbDkvJogPiBoeW91Z2lrYWlcIDsKK+WlveeUt+WtkCA+IGtvdWRhbnNoaVwgOwor5pep5pil6LOmID4gc291c2h1bmZ1XCA7CivllonpoK3nmYwgPiBrb3V0b3VnYW5cIDsKK+WvnealreW4qyA+IG5ld2F6YXNoaVwgOwor5Lq65qC85YyWID4gamlua2FrdWthXCA7CivntrrpupfkuosgPiBraXJlaWdvdG9cIDsKK+iomOWQjeagqiA+IGtpbWVpa2FidVwgOwor5pC65biv5ZOBID4ga2VpdGFpaGluXCA7Civpp5Dlsa/miYAgPiBjaHV1dG9uam9cIDsKK+eglOeptuaJgCA+IGtlbmt5dXVqb1wgOwor5pyA5YWI56uvID4gc2Fpc2VudGFuXCA7CivlsYXkvY/ogIUgPiBreW9qdXVzaGFcIDsKK+iqh+W8teazlSA+IGtvY2hvdWhvdVwgOwor6KaW6Kaa5YyWID4gc2hpa2FrdWthXCA7CivkuK3oj6/ooZcgPiBjaHV1a2FnYWlcIDsKK+mAo+WIpOeKtiA+IHJlbmJhbmpvdVwgOwor6bqd6aaZ54yrID4gamFrb3VuZWtvXCA7CivlpInlhYnmmJ8gPiBoZW5rb3VzZWlcIDsKK+Wvqeafu+WumCA+IHNoaW5zYWthblwgOwor5aSa55So5LitID4gdGF5b3VjaHV1XCA7Civml6nmnbHmiKYgPiBzb3V0b3VzZW5cIDsKK+m7meenmOaoqSA+IG1va3VoaWtlblwgOwor5YaS6Zm66KuHID4gYm91a2VuZGFuXCA7CivluLjlgpnolqwgPiBqb3ViaXlha3VcIDsKK+WmiuWppuacjSA+IG5pbnB1ZnVrdVwgOwor5L2T6YeN6KiIID4gdGFpanV1a2VpXCA7CivorablrpjpmoogPiBrZWlrYW50YWlcIDsKK+ism+irh+ekviA+IGtvdWRhbnNoYVwgOwor6L+R5Luj6KmpID4ga2luZGFpc2hpXCA7CivnhZnojYnpiq0gPiB0YWJha29zZW5cIDsKK+mWk+aKleipniA+IGthbnRvdXNoaVwgOwor562U5byB6ICFID4gdG91YmVuc2hhXCA7CivlubPooYzmo5IgPiBoZWlrb3Vib3VcIDsKK+ifu+WcsOeNhCA+IGFyaWppZ29rdVwgOwor5omB5qGD6IW6ID4gaGVudG91c2VuXCA7CivlhazliKTlu7cgPiBrb3VoYW50ZWlcIDsKK+aVsOWEhOW5tCA+IHN1dW9rdW5lblwgOwor55uG54Gv57GgID4gYm9uZG91cm91XCA7CivntYLmiKblvowgPiBzaHV1c2VuZ29cIDsKK+e3qOmbhumDqCA+IGhlbnNodXVidVwgOwor5ZGo5Zuy6ZW3ID4gc2h1dWljaG91XCA7CivlhazpgbjliLYgPiBrb3VzZW5zZWlcIDsKK+S/rueQhuW3pSA+IHNodXVyaWtvdVwgOwor5pyA6YGp5YyWID4gc2FpdGVraWthXCA7CivljJblrabogIUgPiBrYWdha3VzaGFcIDsKK+i0iOizhOe9qiA+IHpvdXdhaXphaVwgOwor5LiN5om/6KqNID4gZnVzaG91bmluXCA7CivkupTph43llLEgPiBnb2p1dXNob3VcIDsKK+W5tOm9oumghiA+IG5lbnJlaWp1blwgOwor6LOt5Y2a5aC0ID4gdG9iYWt1am91XCA7CivnnIvlrojogIUgPiBrYW5zaHVzaGFcIDsKK+W8sembu+WZqCA+IGpha3VkZW5raVwgOwor5pel5pys55qEID4gbmlob250ZWtpXCA7Civplovlor7lnLAgPiBrYWlrb25jaGlcIDsKK+emgeeMn+acnyA+IGtpbnJ5b3VraVwgOwor5YmN6aGN6YOoID4gemVuZ2FrdWJ1XCA7CivoqZXoq5blrrYgPiBoeW91cm9ua2FcIDsKK+S4gOaWieWuiSA+IGlzc2VpeWFzdVwgOwor5LiA6Kaq562JID4gaXNzaGludG91XCA7Civlho3mlL7pgIEgPiBzYWlob3Vzb3VcIDsKK+iIiOihjOWMliA+IGtvdWd5b3VrYVwgOwor5YyW5a2m57eaID4ga2FnYWt1c2VuXCA7CivmiKbmrbvogIUgPiBzZW5zaGlzaGFcIDsKK+S4gOaWh+WtlyA+IGljaGltb25qaVwgOwor5paH5aOr6YCjID4gYnVuc2hpcmVuXCA7CivmnKjntr/ns7ggPiBtb21lbicnaXRvXCA7CivnhKbpm7vmsJcgPiBzaG91ZGVua2lcIDsKK+aOiOS4juW8jyA+IGp1eW9zaGlraVwgOwor55uu5YiG6YePID4gbWVidW5yeW91XCA7CivlpKnkuIvkuIAgPiB0ZW5rYWljaGlcIDsKK+S4reWPpOWTgSA+IGNodXVrb2hpblwgOwor5biC5aC05oCnID4gc2hpam91c2VpXCA7CivkuK3mgKfloakgPiBjaHV1c2VpZW5cIDsKK+aWh+iqnuiqvyA+IGJ1bmdvY2hvdVwgOwor5pWj5YW157eaID4gc2FucGVpc2VuXCA7CivmtYHooYzlhZAgPiByeXV1a291amlcIDsKK+WPiOW+k+W8nyA+IG1hdGFpdG9rb1wgOwor6IW55pmC6KiIID4gaGFyYWRva2VpXCA7CivluIPooovohbkgPiBob3RlaWJhcmFcIDsKK+eEoeaVmeiCsiA+IG11a3lvdWlrdVwgOwor56CU56m25a62ID4ga2Vua3l1dWthXCA7CivmlZnljLrmsJEgPiBreW91a3VtaW5cIDsKK+WcsOmch+W4ryA+IGppc2hpbnRhaVwgOwor6ZW35pyf5oimID4gY2hvdWtpc2VuXCA7CivpgJrnn6XnsL8gPiB0c3V1Y2hpYm9cIDsKK+WKoOW3pealrSA+IGtha291Z3lvdVwgOwor5LiN6KGM54q2ID4gZnVneW91am91XCA7Civog6HpurvmsrkgPiBnb21hYWJ1cmFcIDsKK+aXpeacrOeMvyA+IG5paG9uemFydVwgOwor5pen5LiW55WMID4ga3l1dXNla2FpXCA7CivmsLTlubPli5UgPiBzdWloZWlkb3VcIDsKK+efreWkp+eUnyA+IHRhbmRhaXNlaVwgOwor6IKW5YOP55S7ID4gc2hvdXpvdWdhXCA7CivkuIDop5LnjaMgPiBpa2tha3VqdXVcIDsKK+WPr+WkiemVtyA+IGthaGVuY2hvdVwgOwor5LiA6KaB57SgID4gaWNoaXlvdXNvXCA7CivlhZDnq6XliocgPiBqaWRvdWdla2lcIDsKK+Wfi+iRrOWcsCA+IG1haXNvdWNoaVwgOwor5LiK6KO95pysID4gam91c2VpYm9uXCA7CivkuKHmgKfoirEgPiByeW91c2Vpa2FcIDsKK+Wun+ihjOiAhSA+IGppa2tvdXNoYVwgOwor5YK+5pac6KiIID4ga2Vpc2hha2VpXCA7Civniq/nvarogIUgPiBoYW56YWlzaGFcIDsKK+e1tuS6pOeKtiA+IHpla2tvdWpvdVwgOwor5aSW5p2l6ICFID4gZ2FpcmFpc2hhXCA7CivkvJ3lsI7kvZMgPiBkZW5kb3V0YWlcIDsKK+aWnOa7kemZjSA+IHNoYWtha2tvdVwgOwor5bi45bmz5YCJID4gam91aGVpc291XCA7CivkuLvlgqzogIUgPiBzaHVzYWlzaGFcIDsKK+aflOi7n+aApyA+IGp1dW5hbnNlaVwgOwor5YiG5ouF6YeRID4gYnVudGFua2luXCA7CivlhrfolLXou4ogPiByZWl6b3VzaGFcIDsKK+acgOmrmOijgSA+IHNhaWtvdXNhaVwgOwor5Yqg5YWl5qipID4ga2FueXV1a2VuXCA7CivliY3kvY/miYAgPiB6ZW5qdXVzaG9cIDsKK+Wxleacm+WhlCA+IHRlbmJvdXRvdVwgOwor6YGO5pWP55eHID4ga2FiaW5zaG91XCA7CivkurrpoK3nqI4gPiBuaW50b3V6ZWlcIDsKK+iInuWPsOWKhyA+IGJ1dGFpZ2VraVwgOwor5bmz5Z2H5YCkID4gaGVpa2luY2hpXCA7CivmoLzlrZDpnaIgPiBrb3VzaGltZW5cIDsKK+awtOiMtuWxiyA+IG1penVjaGF5YVwgOwor5oOF5aCx57ayID4gam91aG91bW91XCA7Civlt7Tml6bmnY8gPiBoYXRhbmt5b3VcIDsKK+Wvqee+juecvCA+IHNoaW5iaWdhblwgOwor5Yem5LiW6KiTID4gc2hvc2Vpa3VuXCA7Civoh6rnhLboprMgPiBzaGl6ZW5rYW5cIDsKK+iEguiCqumFuCA+IHNoaWJvdXNhblwgOwor6ZaA5aSW5ryiID4gbW9uZ2Fpa2FuXCA7Civmipfoj4zmgKcgPiBrb3VraW5zZWlcIDsKK+S8neafk+aApyA+IGRlbnNlbnNlaVwgOwor5pyq57WE57mUID4gbWlzb3NoaWtpXCA7CivmsLTmp5jmtrIgPiBzdWl5b3Vla2lcIDsKK+aVkeWKqemaiiA+IGt5dXVqb3RhaVwgOwor5L+d5a2Y6YePID4gaG96b25yeW91XCA7CivmoLjlhbXlmaggPiBrYWt1aGVpa2lcIDsKK+S4jea6gOi2syA+IGZ1bWFuem9rdVwgOwor6ZW36KuH6K2wID4gbmFnYWRhbmdpXCA7CivlhpLpmbrogIUgPiBib3VrZW5zaGFcIDsKK+e+veiSsuWboyA+IGhhbmVidXRvblwgOwor5Zyw5pa55YK1ID4gY2hpaG91c2FpXCA7CivmnKzloLTniakgPiBob25iYW1vbm9cIDsKK+iqnuWtpuiAhSA+IGdvZ2FrdXNoYVwgOwor5YaN6Kmm6KGMID4gc2Fpc2hpa291XCA7CivlsYXkuIjpq5ggPiBpdGFrZWRha2FcIDsKK+WkqumZveezuyA+IHRhaXlvdWtlaVwgOwor56CU56m25ZOhID4ga2Vua3l1dWluXCA7CivlvKXnuKvnrZYgPiBiaWhvdXNha3VcIDsKK+eEoeWgsemFrCA+IG11aG91c2h1dVwgOwor6JiG5rqd5qmLID4gcm9rb3VreW91XCA7Civntbblr77lgKQgPiB6ZXR0YWljaGlcIDsKK+WkqemgguWEgCA+IHRlbmNob3VnaVwgOwor5rW36LOK546LID4ga2Fpem9rdW91XCA7CivosqHnlYzkurogPiB6YWlrYWlqaW5cIDsKK+miqOadpeWdiiA+IGZ1dXJhaWJvdVwgOwor5a+S5Ya35ZywID4ga2FucmVpY2hpXCA7CivliY3nva7oqZ4gPiB6ZW5jaGlzaGlcIDsKK+WKoOWIpOS6uiA+IGthaGFuJyduaW5cIDsKK+WLlea7kei7iiA+IGRvdWthc3NoYVwgOwor57WQ5rC35pyfID4ga2VwcHlvdWtpXCA7CivlsZXmnJvlj7AgPiB0ZW5ib3VkYWlcIDsKK+ekvOaLneWggiA+IHJlaWhhaWRvdVwgOwor6auY5oCn6IO9ID4ga291c2Vpbm91XCA7Civkub7mtbfoi5QgPiBob3NoaW5vcmlcIDsKK+S9v+eUqOS+iyA+IHNoaXlvdXJlaVwgOwor5pyJ55Sw54S8ID4gYXJpdGF5YWtpXCA7Civpq5jlkajms6IgPiBrb3VzaHV1aGFcIDsKK+Wwv+aknOafuyA+IG55b3VrZW5zYVwgOwor55Kw54q257eaID4ga2Fuam91c2VuXCA7Civnmbrmg7Pms5UgPiBoYXNzb3Vob3VcIDsKK+WFjeeojueCuSA+IG1lbnplaXRlblwgOwor5YCk5q616KGoID4gbmVkYW5oeW91XCA7Civnm7TlvJ/lrZAgPiBqaWtpZGVzaGlcIDsKK+mAo+mCpuWItiA+IHJlbnBvdXNlaVwgOwor5L2/55So5Lq6ID4gc2hpeW91bmluXCA7CivmpI3mnKjpiaIgPiB1ZWtpYmFjaGlcIDsKK+eFp+WwhOmHjiA+IHNob3VzaGF5YVwgOwor5oWI5ZaE5b+DID4gaml6ZW5zaGluXCA7CivmnKjnhYnnk6YgPiBtb2t1cmVuZ2FcIDsKK+acqOe2v+eJqSA+IG1vbWVubW9ub1wgOwor5YWt5YiG5YSAID4gcm9rdWJ1bmdpXCA7CivoppblnLDlubMgPiBzaGljaGloZWlcIDsKK+W3peS9nOWToSA+IGtvdXNha3VpblwgOwor5Zue5ryV5bqXID4ga2Fpc291dGVuXCA7Civnn7Pngq3ntIAgPiBzZWtpdGFua2lcIDsKK+aKleapn+eahCA+IHRvdWtpdGVraVwgOwor54yf54qs5bqnID4gcnlvdWtlbnphXCA7Civnmq7osqHluIMgPiBrYXdhemFpZnVcIDsKK+iEs+ihgOagkyA+IG5vdWtlc3NlblwgOwor5q2j5YmH5YyWID4gc2Vpc29rdWthXCA7CivlpKflpaXmp5ggPiBvb29rdXNhbWFcIDsKK+asoOmZpei7iiA+IGtla2thbnNoYVwgOwor5LiA5aSn5LqLID4gaWNoaWRhaWppXCA7CivpgKPliIbmlbAgPiByZW5idW5zdXVcIDsKK+S/rueQhuS7oyA+IHNodXVyaWRhaVwgOwor6JWB6bq755a5ID4gamlubWFzaGluXCA7CivlhbfnlLPmm7ggPiBndXNoaW5zaG9cIDsKK+iqreabuOWutiA+IGRva3VzaG9rYVwgOwor576O6KGT6YOoID4gYmlqdXRzdWJ1XCA7CivmhJ/orJ3npa0gPiBrYW5zaGFzYWlcIDsKK+iytOaWueaWuSA+IGFuYXRhZ2F0YVwgOwor5p2x5Lqs6YO9ID4gdG91a3lvdXRvXCA7Civml6flrZfkvZMgPiBreXV1aml0YWlcIDsKK+eEoeiqv+azlSA+IGJ1Y2hvdWhvdVwgOwor6KO95L2c6LK7ID4gc2Vpc2FrdWhpXCA7CivkuozpgLHplpMgPiBuaXNodXVrYW5cIDsKK+mDqOiQveawkSA+IGJ1cmFrdW1pblwgOwor5Yqg55uf5Zu9ID4ga2FtZWlrb2t1XCA7CivkuIDlpJzkuK0gPiBoaXRveWFqdXVcIDsKK+ani+mAoOS9kyA+IGtvdXpvdXRhaVwgOwor5Lit5Yy75a2mID4gY2h1dWlnYWt1XCA7Civlj5fkv6HogIUgPiBqdXNoaW5zaGFcIDsKK+S8muitsOmMsiA+IGthaWdpcm9rdVwgOwor56aB54WZ6LuKID4ga2luJydlbnNoYVwgOwor6Zu75a2Q6YqDID4gZGVuc2hpanV1XCA7CivlhbfkvZPnrZYgPiBndXRhaXNha3VcIDsKK+i7iuaOjOWMuiA+IHNoYXNob3VrdVwgOwor5LuW5Zu95rCRID4gdGFrb2t1bWluXCA7CivlhJLlrabogIUgPiBqdWdha3VzaGFcIDsKK+WQjeaOouWBtSA+IG1laXRhbnRlaVwgOwor5Zu96YCj5peXID4ga29rdXJlbmtpXCA7Civlj4jlvpPlhYQgPiBtYXRhaXRva29cIDsKK+mvo+eDj+iziiA+IHN1cnVtZWlrYVwgOwor5YWo5biC5rCRID4gemVuc2hpbWluXCA7CivloLHpgZPlrpggPiBob3Vkb3VrYW5cIDsKK+aXpeacrOaZtCA+IG5paG9uYmFyZVwgOwor5biD5Zuj55quID4gZnV0b25nYXdhXCA7Civkv67nuZXosrsgPiBzaHV1emVuaGlcIDsKK+WwgumWgOabuCA+IHNlbm1vbnNob1wgOwor5YWs55So6LuKID4ga291eW91c2hhXCA7CivogJDmgKfoj4wgPiB0YWlzZWlraW5cIDsKK+WQjOeorumhniA+IGRvdXNodXJ1aVwgOwor6Z+z5Z+f5aSWID4gb24nJ2lraWdhaVwgOwor6Kaq5ZKM5oCnID4gc2hpbndhc2VpXCA7CivliY3poK3okYkgPiB6ZW50b3V5b3VcIDsKK+ePoOaaluewviA+IHRhbWFub3JlblwgOwor5Lmd5pif5a62ID4ga3l1dXNlaWthXCA7CivpgJrmsJflrZQgPiB0c3V1a2lrb3VcIDsKK+mao+S6uuaEmyA+IHJpbmppbicnYWlcIDsKK+S4jeaJv+efpSA+IGZ1c2hvdWNoaVwgOwor5q275Lqh5pWwID4gc2hpYm91c3V1XCA7CivlsYXkvY/mqKkgPiBreW9qdXVrZW5cIDsKK+mJpOaLrOW8pyA+IGthZ2lrYWtrb1wgOwor5YCm5oCg5oSfID4ga2VudGFpa2FuXCA7CivlhrfolLXoiLkgPiByZWl6b3VzZW5cIDsKK+WQiOaIkOmFkiA+IGdvdXNlaXNodVwgOwor5ZGz5ZmM5rGBID4gbWlzb3NoaXJ1XCA7CivmjIflsI7ogIUgPiBzaGlkb3VzaGFcIDsKK+WNiuWPr+mAmiA+IGhhbmthdHN1dVwgOwor54Sh6K2m5ZGKID4gbXVrZWlrb2t1XCA7CivlpKfopb/pg7cgPiBkYWlzYWlnb3VcIDsKK+edoeecoOWJpCA+IHN1aW1pbnphaVwgOwor5peL55uk5belID4gc2VuYmFua291XCA7CivluK/liIbmlbAgPiB0YWlidW5zdXVcIDsKK+W+jOe2meiAhSA+IGtvdWtlaXNoYVwgOwor6ZW36KuH576pID4gbmFnYWRhbmdpXCA7CivlpKnml6XloakgPiB0ZW5waXNoaW9cIDsKK+WogeWcp+eahCA+IGlhdHN1dGVraVwgOwor5LqM6YeN5bqVID4gbmlqdXV6b2tvXCA7Civlj4jlvJ/lrZAgPiBtYXRhZGVzaGlcIDsKK+aVkeWRveWFtyA+IGt5dXVtZWlndVwgOwor56aB54yf5Yy6ID4ga2lucnlvdWt1XCA7CivlvKnntJroiaYgPiBkb2t5dXVrYW5cIDsKK+aBkuS5heWMliA+IGtvdWt5dXVrYVwgOwor5YW35L2T55qEID4gZ3V0YWl0ZWtpXCA7CivohbnkuIDmna8gPiBoYXJhaXBwYWlcIDsKK+agvOeQhuirliA+IGtha3VyaXJvblwgOwor5oSf6Kyd54q2ID4ga2Fuc2hham91XCA7Civnj77ooYzniq8gPiBnZW5rb3VoYW5cIDsKK+aXpeS7mOWNsCA+IGhpZHp1a2VpblwgOwor5aSq6Zm954GvID4gdGFpeW91dG91XCA7CivluLjnlKjogIUgPiBqb3V5b3VzaGFcIDsKK+aDheWgsea6kCA+IGpvdWhvdWdlblwgOwor5YWs5L2/6aSoID4ga291c2hpa2FuXCA7CivluIbnq4vosp0gPiBob3RhdGVnYWlcIDsKK+iLpeatpuiAhSA+IHdha2FtdXNoYVwgOwor5riF566X5pu4ID4gc2Vpc2Fuc2hvXCA7CivmnKzooZfpgZMgPiBob25rYWlkb3VcIDsKK+mDteS+v+i7iiA+IHl1dWJpbnNoYVwgOwor5LiA54K55qmfID4gaWNoaXRlbmtpXCA7CivlpI/poqjpgqogPiBuYXRzdWthemVcIDsKK+S4remBk+a0viA+IGNodXVkb3VoYVwgOwor5pq06aKo5Z+fID4gYm91ZnV1aWtpXCA7CivnmbrnpoHmnKwgPiBoYWtraW5ib25cIDsKK+Wcp+mbu+awlyA+IGF0c3VkZW5raVwgOwor5beo5Lq65YWaID4ga3lvamludG91XCA7CivmmYLku6PniakgPiBqaWRhaW1vbm9cIDsKK+Wxj+miqOWyqSA+IGJ5b3VidWl3YVwgOwor5b+r6KiY6YyyID4ga2Fpa2lyb2t1XCA7CivmmrTpoqjlnI8gPiBib3VmdXVrZW5cIDsKK+ism+irh+W4qyA+IGtvdWRhbnNoaVwgOwor5LiN5oiQ57i+ID4gZnVzZWlzZWtpXCA7CivlpJrpn7Pnr4AgPiB0YW9uc2V0c3VcIDsKK+mAo+W4r+aEnyA+IHJlbnRhaWthblwgOwor6YOo5YiG55qEID4gYnVidW50ZWtpXCA7CivlsILploDlupcgPiBzZW5tb250ZW5cIDsKK+aFo+eUqOmfsyA+IGthbicneW91b25cIDsKK+WknOS7leS6iyA+IHlvc2hpZ290b1wgOwor5ryU57+S5p6XID4gZW5zaHV1cmluXCA7Civmn5Dpq5jmoKEgPiBib3Vrb3Vrb3VcIDsKK+e2v+iPk+WtkCA+IHdhdGFnYXNoaVwgOwor6Leo57ea5qmLID4ga29zZW5reW91XCA7CivnhZnojYnnm4YgPiB0YWJha29ib25cIDsKK+WPl+mok+elqCA+IGp1a2VuaHlvdVwgOwor5YaF5pac6KaWID4gbmFpc2hhc2hpXCA7Civpm7vkv6HmqZ8gPiBkZW5zaGlua2lcIDsKK+Wcp+e4ruapnyA+IGFzc2h1a3VraVwgOwor5a6f6KGM5qipID4gamlra291a2VuXCA7Civnp5HlrabogIUgPiBrYWdha3VzaGFcIDsKK+ePvuihjOazlSA+IGdlbmtvdWhvdVwgOwor6Ieq54S255WMID4gc2hpemVua2FpXCA7Civmh7jlnoLnt5ogPiBrZW5zdWlzZW5cIDsKK+S4iuaJi+iAhSA+IGpvdXp1bW9ub1wgOwor5pel5pys5a2mID4gbmlob25nYWt1XCA7CivmjpLpmpzlmaggPiBoYWlzaG91a2lcIDsKK+ecn+Wkj+aXpSA+IG1hbmF0c3ViaVwgOwor5oSf54Sh6YePID4ga2FubXVyeW91XCA7Civntabku5jph5EgPiBreXV1ZnVraW5cIDsKK+S7o+WQjeipniA+IGRhaW1laXNoaVwgOwor5pWR5Yqp6Ii5ID4ga3l1dWpvc2VuXCA7Civnib3lvJXou4ogPiBrZW4nJ2luc2hhXCA7CivlsYXkvY/mgKcgPiBreW9qdXVzZWlcIDsKK+aKl+WHneWbuiA+IGtvdWd5b3Vrb1wgOwor55yL6K236ZW3ID4ga2FuZ29jaG91XCA7CivkvY7mgKfog70gPiB0ZWlzZWlub3VcIDsKK+eEoeioiOeUuyA+IG11a2Vpa2FrdVwgOwor5aSa6Z2i6KeSID4gdGFtZW5rYWt1XCA7CivkvY7lkajms6IgPiB0ZWlzaHV1aGFcIDsKK+eQhuaDs+mDtyA+IHJpc291a3lvdVwgOwor6KKr54iG6ICFID4gaGliYWt1c2hhXCA7Civnsr7oo73ns5YgPiBzZWlzZWl0b3VcIDsKK+WMluWtpuaIpiA+IGthZ2FrdXNlblwgOwor5pyJ55So5oCnID4geXV1eW91c2VpXCA7CivlqK/mpb3ooZcgPiBnb3Jha3VnYWlcIDsKK+W+jOWkqeaApyA+IGtvdXRlbnNlaVwgOwor5qCh5Y+L5LyaID4ga291eXV1a2FpXCA7CivljZjliKnooaggPiB0YW5yaWh5b3VcIDsKK+eZgumkiuaJgCA+IHJ5b3V5b3Vqb1wgOwor5L+d5a6I55qEID4gaG9zaHV0ZWtpXCA7CivnmofmsJHlhZogPiBrb3VtaW50b3VcIDsKK+S6jOmHjeWUsSA+IG5panV1c2hvdVwgOwor5YWN56iO5bqXID4gbWVuemVpdGVuXCA7CivljbXog47nlJ8gPiByYW50YWlzZWlcIDsKK+e3mummmeS7oyA+IHNlbmtvdWRhaVwgOwor5a++6KeS5YyWID4gdGFpa2FrdWthXCA7CivmnIDpq5jngrkgPiBzYWlrb3V0ZW5cIDsKK+acgOS9jumZkCA+IHNhaXRlaWdlblwgOwor5q2M5ZCI5oimID4gdXRhZ2Fzc2VuXCA7CivlubPlkozos54gPiBoZWl3YXNob3VcIDsKK+aVsOS/guaVsCA+IHN1dWtlaXN1dVwgOwor5pyo54Kt55S7ID4gbW9rdXRhbmdhXCA7Civlho3pmY3oh6ggPiBzYWlrb3VyaW5cIDsKK+WGjeiqv+afuyA+IHNhaWNob3VzYVwgOwor6auY6YeO5qeZID4ga291eWFtYWtpXCA7Civlrprmu5Hou4ogPiB0ZWlrYXNzaGFcIDsKK+S8vOaIkeicgiA+IGppZ2FiYWNoaVwgOwor5peL5YWJ5oCnID4gc2Vua291c2VpXCA7CivlkI3mipXmiYsgPiBtZWl0b3VzaHVcIDsKK+aOoeeul+aApyA+IHNhaXNhbnNlaVwgOwor5LyB5qWt6ICFID4ga2lneW91c2hhXCA7CivpioDnoILlrZAgPiBnaW5zdW5hZ29cIDsKK+WbveWIhuWvuiA+IGtva3VidW5qaVwgOwor6aSK6LGa5aC0ID4geW91dG9uam91XCA7CivpnZ7lr77np7AgPiBoaXRhaXNob3VcIDsKK+S4jemKuemLvCA+IGZ1c2h1dWtvdVwgOwor5LiA6Zmi5Yi2ID4gaWNoaWluc2VpXCA7CivmiYvku5XkuosgPiB0ZXNoaWdvdG9cIDsKK+iDhuWaoueCjiA+IHRhbicnbm91ZW5cIDsKK+W8t+aJk+iAhSA+IGt5b3VkYXNoYVwgOwor6KaP56+E55qEID4ga2loYW50ZWtpXCA7CivnvoXntJfntJkgPiByYXNoYWdhbWlcIDsKK+iEseiho+WgtCA+IGRhdHN1aWpvdVwgOwor5pWR5Yqp57ayID4ga3l1dWpvbW91XCA7CivlvZPpgbjogIUgPiB0b3VzZW5zaGFcIDsKK+WkqumZsOaapiA+IHRhaWlucmVraVwgOwor5o+a57696J22ID4gYWdlaGFjaG91XCA7Civlo6vlkJvlrZAgPiBzaGlrdW5zaGlcIDsKK+iFsOe+veebriA+IGtvc2hpYmFtZVwgOwor54mH5LiA5pa5ID4ga2F0YWlwcG91XCA7CivpmL/niYfnqp8gPiBhaGVua3V0c3VcIDsKK+WQvuacqOmmmSA+IHdhcmVtb2tvdVwgOwor5aSn5Z6L6LuKID4gb29nYXRhc2hhXCA7CivlpI/lraPnhrEgPiBrYWtpbmV0c3VcIDsKK+WGhemZuOmcpyA+IG5haXJpa3VtdVwgOwor5qSN5a2X5qmfID4gc2hva3VqaWtpXCA7CivpgYropqfoiLkgPiB5dXVyYW5zZW5cIDsKK+S5s+aIv+eCjiA+IG55dXVib3VlblwgOwor6ISz5oyr5YK3ID4gbm91emFzaG91XCA7CivlrabnlJ/oqrIgPiBnYWt1c2Vpa2FcIDsKK+iXgeW4g+WboyA+IHdhcmFidXRvblwgOwor5oqV5qmf5b+DID4gdG91a2lzaGluXCA7Civpg7Xkvr/oiLkgPiB5dXViaW5zZW5cIDsKK+mdkuW5tOWboyA+IHNlaW5lbmRhblwgOwor5Yun5ZGK5qGIID4ga2Fua29rdWFuXCA7CivlpKnmloflj7AgPiB0ZW5tb25kYWlcIDsKK+iHqueEtuazlSA+IHNoaXplbmhvdVwgOwor55+z54Gw5rSeID4gc2Vra2FpZG91XCA7CivlopfliIrlj7cgPiB6b3VrYW5nb3VcIDsKK+WGheWkp+iHoyA+IG5haWRhaWppblwgOwor54++5Zyo5ZywID4gZ2VuemFpY2hpXCA7CivmiKbou4rpmoogPiBzZW5zaGF0YWlcIDsKK+S6jOmHjeS4uCA+IG5panV1bWFydVwgOwor6YWS6YCg5aC0ID4gc2h1em91am91XCA7CivmhJvoqq3ogIUgPiBhaWRva3VzaGFcIDsKK+efs+eBsOawtCA+IHNla2thaXN1aVwgOwor5aSn5Zyw6ZyHID4gZGFpamlzaGluXCA7CivkuI3mi6HlpKcgPiBmdWtha3VkYWlcIDsKK+S4u+WwjuiAhSA+IHNodWRvdXNoYVwgOwor6auY6JKU57W1ID4gdGFrYW1ha2llXCA7Civoh6rnhLbmrbsgPiBzaGl6ZW5zaGlcIDsKK+WxheS9j+WcsCA+IGt5b2p1dWNoaVwgOwor5rG65q276ZqKID4ga2Vzc2hpdGFpXCA7CivkuLvohLPogIUgPiBzaHVub3VzaGFcIDsKK+iInualvemdoiA+IGJ1Z2FrdW1lblwgOwor6a2a5LuL6aGeID4gZ3lva2FpcnVpXCA7CivmnIDpq5jmpJwgPiBzYWlrb3VrZW5cIDsKK+eGseaxmuafkyA+IG5ldHN1b3NlblwgOwor5oGS5pif5bm0ID4ga291c2VpbmVuXCA7Civoh6rlnKjpiaQgPiBqaXphaWthZ2lcIDsKK+ertui1sOmmrCA+IGt5b3Vzb3ViYVwgOwor5b6h5omL5rSXID4gbWl0YXJhc2hpXCA7CivlopfluYXlmaggPiB6b3VmdWt1a2lcIDsKK+aXpeacrOWBtCA+IG5paG9uZ2F3YVwgOwor5Lq66aGe5Y+yID4gamlucnVpc2hpXCA7Civoi6blirTmp5ggPiBrdXJvdXNhbWFcIDsKK+emgOiri+abuCA+IHJpbnNlaXNob1wgOwor5L+z6Kun5birID4gaGFpa2Fpc2hpXCA7CivmhaPnlKjoqp4gPiBrYW4nJ3lvdWdvXCA7CivlpbPlrabnlJ8gPiBqb2dha3VzZWlcIDsKK+mbu+WtkOeuoSA+IGRlbnNoaWthblwgOwor5qK15aSp546LID4gYm9udGVuJydvdVwgOwor5ZCI5oiQ57SZID4gZ291c2Vpc2hpXCA7Civpu4TpioXpibEgPiBrb3Vkb3Vrb3VcIDsKK+WPuOaVmeWMuiA+IHNoaWt5b3VrdVwgOwor6Kej5pWj5qipID4ga2Fpc2Fua2VuXCA7CivpganpvaLmnJ8gPiB0ZWtpcmVpa2lcIDsKK+WogeWah+eahCA+IGlrYWt1dGVraVwgOwor6YqD6YCj5bCEID4ganV1cmVuc2hhXCA7CivlhY3nqI7lk4EgPiBtZW56ZWloaW5cIDsKK+mrmOawtOa6liA+IGtvdXN1aWp1blwgOwor5aSq6Zm95bm0ID4gdGFpeW91bmVuXCA7Civnn7PntLDlt6UgPiBpc2hpemFpa3VcIDsKK+WvneWwj+S+vyA+IG5lc2hvdWJlblwgOwor5Ya36JS15rOVID4gcmVpem91aG91XCA7CivphY3liIbms5UgPiBoYWlidW5ob3VcIDsKK+iAvee+jueahCA+IHRhbmJpdGVraVwgOwor5r2c6Iiq6ImHID4gc2Vua291dGVpXCA7CivlkIznqpPnlJ8gPiBkb3Vzb3VzZWlcIDsKK+aUvua1quiAhSA+IGhvdXJvdXNoYVwgOwor56iu5qaC5b+1ID4gc2h1Z2FpbmVuXCA7Civml6nmmI7miKYgPiBzb3VtZWlzZW5cIDsKK+W+ruepjeWIhiA+IGJpc2VraWJ1blwgOwor6bOl556w5ZuzID4gY2hvdWthbnp1XCA7CivlpbPnjovonIIgPiBqb291YmFjaGlcIDsKK+WkluS6pOWumCA+IGdhaWtvdWthblwgOwor5q2v6IKJ54KOID4gc2hpbmlrdWVuXCA7Civoh6rnhLbmnpcgPiBzaGl6ZW5yaW5cIDsKK+a8lOe/kuWgtCA+IGVuc2h1dWpvdVwgOwor5bCP6bqm6ImyID4ga29tdWdpaXJvXCA7CivprZrosp3poZ4gPiBneW9rYWlydWlcIDsKK+W+qeWPpOiqvyA+IGZ1a2tvY2hvdVwgOwor5Y+N55yB5LyaID4gaGFuc2Vpa2FpXCA7CivnhrHluK/prZogPiBuZXR0YWlneW9cIDsKK+WNmOiRieapnyA+IHRhbicneW91a2lcIDsKK+aJgOacieiAhSA+IHNob3l1dXNoYVwgOwor6LKp5aOy6ICFID4gaGFuYmFpc2hhXCA7CivkuLvkurrpoZQgPiBzaHVqaW5nYW9cIDsKK+a7keeoveiAhSA+IG9kb2tlbW9ub1wgOwor5rC06aOi6aWJID4gbWl6dWtpa2luXCA7CivmtbfkuIrms5UgPiBrYWlqb3Vob3VcIDsKK+eGseWPr+WhkSA+IG5ldHN1a2Fzb1wgOwor5YyW5a2m5ZOBID4ga2FnYWt1aGluXCA7CivlrZDmsqLlsbEgPiBrb2Rha3VzYW5cIDsKK+S9meawtOWQkCA+IHlvc3VpaGFraVwgOwor5pio5bm05bqmID4gc2FrdW5lbmRvXCA7Civoh6rnhLbmlbAgPiBzaGl6ZW5zdXVcIDsKK+WGjeiogueJiCA+IHNhaXRlaWJhblwgOwor6Z2S5bm05LyaID4gc2VpbmVua2FpXCA7Civnj77lnLDkurogPiBnZW5jaGlqaW5cIDsKK+W4guihl+aIpiA+IHNoaWdhaXNlblwgOwor5oeQ55aR5b+DID4ga2FpZ2lzaGluXCA7CivmnJ3ml6XlvbEgPiBhc2FoaWthZ2VcIDsKK+iqmOWwjuW8viA+IHl1dWRvdWRhblwgOwor6LKp5aOy57ayID4gaGFuYmFpbW91XCA7Civlhavnmb7kuIcgPiB5YW95b3JvenVcIDsKK+iyp+S5j+S6uiA+IGJpbmJvdW5pblwgOwor5bel5LqL5LitID4ga291amljaHV1XCA7CivnqoPnm5fnvaogPiBzZXR0b3V6YWlcIDsKK+WOn+ijgeWIpCA+IGdlbnNhaWJhblwgOwor54K554Gr6JasID4gdGVua2F5YWt1XCA7CivmtbfkuIrmqKkgPiBrYWlqb3VrZW5cIDsKK+WMluWtpuWJpCA+IGthZ2FrdXphaVwgOwor57K+6KO95rOVID4gc2Vpc2VpaG91XCA7CivmlrnnnLzntJkgPiBob3VnYW5zaGlcIDsKK+WPl+iznuiAhSA+IGp1c2hvdXNoYVwgOwor5o6o6Jam6ICFID4gc3Vpc2Vuc2hhXCA7Civpm6rmqKHmp5ggPiB5dWtpbW95b3VcIDsKK+S4gOe0muWTgSA+IGlra3l1dWhpblwgOwor5qC85a2Q54K5ID4ga291c2hpdGVuXCA7Civos7zosrfogIUgPiBrb3ViYWlzaGFcIDsKK+S4gOetieizniA+IGl0dG91c2hvdVwgOwor5LuW5Zu95Lq6ID4gdGFrb2t1amluXCA7CivnqbrmsJfmtbQgPiBrdXVraXlva3VcIDsKK+WkluS6pOWboyA+IGdhaWtvdWRhblwgOwor5Z+36KGM6YOoID4gc2hpa2tvdWJ1XCA7CivnkIbnpZ7oq5YgPiByaXNoaW5yb25cIDsKK+WPl+mok+aWmSA+IGp1a2VucnlvdVwgOwor5Yud5omL5YWDID4ga2F0dGVtb3RvXCA7Civnm7jlr77oq5YgPiBzb3V0YWlyb25cIDsKK+WIiuihjOS8miA+IGthbmtvdWthaVwgOwor5Y2R6YeR5bGeID4gaGlraW56b2t1XCA7Civkv53ogrLmlpkgPiBob2lrdXJ5b3VcIDsKK+e3j+izh+eUoyA+IHNvdXNoaXNhblwgOwor5L2P5rCR56iOID4ganV1bWluemVpXCA7CivlnKfnuK7lmaggPiBhc3NodWt1a2lcIDsKK+S/uOe1puaXpSA+IGhvdWt5dXViaVwgOwor6KGM5pS/5bqcID4gZ3lvdXNlaWZ1XCA7Civlh6blpbPohpwgPiBzaG9qb21ha3VcIDsKK+maj+S8tOiAhSA+IHp1aWhhbnNoYVwgOwor6LuK5rW36ICBID4ga3VydW1hZWJpXCA7CivmgqrlrqPkvJ0gPiBha3VzZW5kZW5cIDsKK+WkmumdoueahCA+IHRhbWVudGVraVwgOwor5a++5oim6LuKID4gdGFpc2Vuc2hhXCA7Civoi6blirTmgKcgPiBrdXJvdXNob3VcIDsKK+aBkOWmu+WutiA+IGt5b3VzYWlrYVwgOwor5Li75a6w6ICFID4gc2h1c2Fpc2hhXCA7CivljYrpubnmsLQgPiBoYW5rYW5zdWlcIDsKK+WvhuiIquiAhSA+IG1pa2tvdXNoYVwgOwor5LiA562J6KaqID4gaXR0b3VzaGluXCA7Civms6jpgKPnuIQgPiBzaGltZW5hd2FcIDsKK+ijnOW8t+etiyA+IGhva3lvdWtpblwgOwor55yL5p2/5bGLID4ga2FuYmFuJyd5YVwgOwor56S+5ZOh5a+uID4gc2hhaW5yeW91XCA7CivlkbzlkLjms5UgPiBrb2t5dXVob3VcIDsKK+S9k+mHj+WZqCA+IHRhaXJ5b3VraVwgOwor5YyW5a2m5LiKID4ga2FnYWt1am91XCA7CivkvL3ol43ps6UgPiBnYXJhbmNob3VcIDsKK+W/g+iHk+mDqCA+IHNoaW56b3VidVwgOwor5pyA6auY5bOwID4gc2Fpa291aG91XCA7Civnq7bovKrloLQgPiBrZWlyaW5qb3VcIDsKK+mHjeWpmuiAhSA+IGp1dWtvbnNoYVwgOwor6KaB5pKD5qmfID4geW91Z2VraWtpXCA7CivmsJfljJbnhrEgPiBraWthbmV0c3VcIDsKK+aXpeaVmee1hCA+IG5pa2t5b3Vzb1wgOwor5LiJ562J5pifID4gc2FudG91c2VpXCA7Civlkb3lkI3ms5UgPiBtZWltZWlob3VcIDsKK+WPguWKoOWbvSA+IHNhbmtha29rdVwgOwor5pyq6ZaL5ouTID4gbWlrYWl0YWt1XCA7Civlho3nt6jmiJAgPiBzYWloZW5zZWlcIDsKK+mAj+awtOaApyA+IHRvdXN1aXNlaVwgOwor5Y+N5a++6KuWID4gaGFudGFpcm9uXCA7Civlraboirjlk6EgPiBnYWt1Z2VpaW5cIDsKK+WGt+WHjemtmiA+IHJlaXRvdWd5b1wgOwor5pWX5q6L5YW1ID4gaGFpemFuaGVpXCA7Civmm7jnlJ/oq5YgPiBzaG9zZWlyb25cIDsKK+W/l+acm+iAhSA+IHNoaWJvdXNoYVwgOwor6LKh5pS/6ZujID4gemFpc2VpbmFuXCA7CivliLbnmYzliaQgPiBzZWlnYW56YWlcIDsKK+eZuuazoeWJpCA+IGhhcHBvdXphaVwgOwor5Lyd5aWH55qEID4gZGVua2l0ZWtpXCA7CivntYblibXoho8gPiBiYW5zb3Vrb3VcIDsKK+S/neWtmOaWmSA+IGhvem9ucnlvdVwgOwor55+z54Gw5bKpID4gc2Vra2FpZ2FuXCA7CivlhbXlrabmoKEgPiBoZWlnYWtrb3VcIDsKK+WvjOWxseecjCA+IHRveWFtYWtlblwgOwor6L+R5Luj5Y+yID4ga2luZGFpc2hpXCA7CivoqbLlvZPogIUgPiBnYWl0b3VzaGFcIDsKK+eCueaVsOWItiA+IHRlbnN1dXNlaVwgOwor6auY55+l55yMID4ga291Y2hpa2VuXCA7Civlj6PkuIrmm7ggPiBrb3Vqb3VzaG9cIDsKK+ino+aUvuaEnyA+IGthaWhvdWthblwgOwor5bmz5ZKM55qEID4gaGVpd2F0ZWtpXCA7Civoh6rplonnl4cgPiBqaWhlaXNob3VcIDsKK+mjsueUqOawtCA+IGluJyd5b3VzdWlcIDsKK+WkqumZveWFiSA+IHRhaXlvdWtvdVwgOwor5qmL6aCt5L+dID4ga3lvdXRvdWhvXCA7Civlj6Tmm7jluIIgPiBrb3Nob2ljaGlcIDsKK+WkqeeEtuWhqSA+IHRlbicnbmVuZW5cIDsKK+WFrOWus+e9qiA+IGtvdWdhaXphaVwgOwor5rer5aOy5a6/ID4gaW5iYWl5YWRvXCA7Civotbfoq4vmlocgPiBraXNob3Vtb25cIDsKK+eigeebpOe4niA+IGdvYmFuamltYVwgOwor5L+X5LiW6ZaTID4gem9rdXNla2VuXCA7CivnlJjntI3osYYgPiBhbWFuYXR0b3VcIDsKK+S5vumFque0oCA+IGthbnJha3Vzb1wgOwor5Ya26YeR5a2mID4geWFraW5nYWt1XCA7CivlhpfplbfluqYgPiBqb3VjaG91ZG9cIDsKK+engeWutumbhiA+IHNoaWthc2h1dVwgOwor5biC6KGX5ZywID4gc2hpZ2FpY2hpXCA7Civlj6/oqq3mgKcgPiBrYWRva3VzZWlcIDsKK+aYjuekuueahCA+IG1laWppdGVraVwgOwor5aSn5Zue6LuiID4gZGFpa2FpdGVuXCA7CivlkYnmnI3lupcgPiBnb2Z1a3V0ZW5cIDsKK+S4reiPr+S4vCA+IGNodXVrYWRvblwgOwor5aSn6KW/5rSLID4gdGFpc2VpeW91XCA7CivnkIbmg7PnmoQgPiByaXNvdXRla2lcIDsKK+Wmu+W4r+iAhSA+IHNhaXRhaXNoYVwgOwor5YWr5a6d6I+cID4gaGFwcG91c2FpXCA7Civlj4zouYTnjbggPiBzb3V0ZWlqdXVcIDsKK+WbveWFqOWcnyA+IGtva3V6ZW5kb1wgOwor5LqM6YCy5rOVID4gbmlzaGluaG91XCA7Civnvr3luIPlm6MgPiBoYW5lYnV0b25cIDsKK+iHqueEtuWilyA+IHNoaXplbnpvdVwgOwor5pmC5Luj5YqHID4gamlkYWlnZWtpXCA7Civmt7fmiJDphZIgPiBrb25zZWlzaHVcIDsKK+WFrOWAjeaVsCA+IGtvdWJhaXN1dVwgOwor5Yem5pa5566LID4gc2hvaG91c2VuXCA7CivnmYzntLDog54gPiBnYW5zYWlib3VcIDsKK+e0r+a4m+eojiA+IHJ1aWdlbnplaVwgOwor5omA5L2c5LqLID4gc2hvc2Fnb3RvXCA7CivnhKHpmZDlsI8gPiBtdWdlbnNob3VcIDsKK+eqg+ebl+eKryA+IHNldHRvdWhhblwgOwor5LuV5omL5qCqID4gc2hpdGVrYWJ1XCA7Civlj6PkuIvmiYsgPiBrdWNoaWJldGFcIDsKK+mHkeabnOaXpSA+IGtpbicneW91YmlcIDsKK+S9juawtOa6liA+IHRlaXN1aWp1blwgOwor6KO95L2c5omAID4gc2Vpc2FrdWpvXCA7CivkvJ3lo7DnrqEgPiBkZW5zZWlrYW5cIDsKK+mZsOatpuiAhSA+IGthZ2VtdXNoYVwgOwor6YeP5a2Q5YyWID4gcnlvdXNoaWthXCA7Civlpb3kuIDlr74gPiBrb3VpdHRzdWlcIDsKK+S6i+WLmeWxgCA+IGppbXVreW9rdVwgOwor5Ymv6by76IWUID4gZnVrdWJpa3V1XCA7CivmtarosrvnmZYgPiByb3VoaWhla2lcIDsKK+e1puiyu+eUnyA+IGt5dXVoaXNlaVwgOwor55yM5Lq65LyaID4ga2Vuamlua2FpXCA7CivkuLvku7vogIUgPiBzaHVuaW5zaGFcIDsKK+WFrOeUqOaWhyA+IGtvdXlvdWJ1blwgOwor6KGM5pS/5Yy6ID4gZ3lvdXNlaWt1XCA7CivmjqjolqbnirYgPiBzdWlzZW5qb3VcIDsKK+S4rei3nemboiA+IGNodXVreW9yaVwgOwor5YWx55Sj5YyWID4ga3lvdXNhbmthXCA7CivkvJrmnJ/kuK0gPiBrYWlraWNodXVcIDsKK+mHjueQg+WgtCA+IHlha3l1dWpvdVwgOwor6ZaR5Y+k6bOlID4ga2Fua29kb3JpXCA7CivnlKPopKXmnJ8gPiBzYW5qb2t1a2lcIDsKK+S4u+WwjuaoqSA+IHNodWRvdWtlblwgOwor5Yuf6YeR566xID4gYm9raW5iYWtvXCA7Civnoazlj6Pok4sgPiBrb3Vrb3VnYWlcIDsKK+WPsuiomOaKhCA+IHNoaWtpc2hvdVwgOwor5bm06b2i5bGkID4gbmVucmVpc291XCA7CivpoK3poILpg6ggPiB0b3VjaG91YnVcIDsKK+aXqeWgtOexsyA+IGhheWFiYW1haVwgOwor5Y+j6Kqe6KizID4ga291Z295YWt1XCA7CivmsrnlnKfoqIggPiB5dWF0c3VrZWlcIDsKK+S6jOavm+S9nCA+IG5pbW91c2FrdVwgOwor5qSc57OW6KiIID4ga2VudG91a2VpXCA7CivoqpjlsI7kvZMgPiB5dXVkb3V0YWlcIDsKK+ecn+Wbm+inkiA+IG1hc2hpa2FrdVwgOwor55Sz5ZG96KiYID4gc2hpbm1laWtpXCA7CivohILogqrlsaQgPiBzaGlib3Vzb3VcIDsKK+eJqeWTgeeojiA+IGJ1cHBpbnplaVwgOwor6bOz57+F6ZCYID4gaG91c2hpdG91XCA7CivlsaTnqY3pm7IgPiBzb3VzZWtpdW5cIDsKK+enkuaZguioiCA+IGJ5b3Vkb2tlaVwgOwor54+K55Ga56SBID4gc2FuZ29zaG91XCA7CivpgKPkvZPoqZ4gPiByZW50YWlzaGlcIDsKK+WxgeeQhuWxiCA+IGhlcmlrdXRzdVwgOwor5ZCM5oOF6ICFID4gZG91am91c2hhXCA7Civlv5fpoZjogIUgPiBzaGlnYW5zaGFcIDsKK+a1quS6uueUnyA+IHJvdW5pbnNlaVwgOwor5LiN5Y+v6YCGID4gZnVrYWd5YWt1XCA7CivlpKfpmKrluIIgPiBvb3Nha2FzaGlcIDsKK+aEm+iqreabuCA+IGFpZG9rdXNob1wgOwor5Y+v5aGR54mpID4ga2Fzb2J1dHN1XCA7CivmlrDpgKDoqp4gPiBzaGluem91Z29cIDsKK+WPjeWvvuiAhSA+IGhhbnRhaXNoYVwgOwor6buS56CC57OWID4ga3Vyb3phdG91XCA7CivnjoTnsbPojLYgPiBnZW5tYWljaGFcIDsKK+a8lOe5ueazlSA+IGVuJydla2lob3VcIDsKK+iHqOWgtOaEnyA+IHJpbmpvdWthblwgOwor5YGP6KW/6aKoID4gaGVuc2VpZnV1XCA7CivpppnlkbPmlpkgPiBrb3VtaXJ5b3VcIDsKK+ato+eUsuadvyA+IHNlaWthbnBhblwgOwor5a+p6K2w5LyaID4gc2hpbmdpa2FpXCA7CivpnZLmo67nnIwgPiBhb21vcmlrZW5cIDsKK+S4jeaEn+eXhyA+IGZ1a2Fuc2hvdVwgOwor56aB6KGb6ZqKID4ga2luJydlaXRhaVwgOwor5pS+5rC06LuKID4gaG91c3Vpc2hhXCA7CivogJDmsLTmgKcgPiB0YWlzdWlzZWlcIDsKK+eOhOmWoueVqiA+IGdlbmthbmJhblwgOwor5YmN5aSc56WtID4gemVuJyd5YXNhaVwgOwor5pyI5qGC5YagID4gZ2Vra2Vpa2FuXCA7CivkuozliIDmtYEgPiBuaXRvdXJ5dXVcIDsKK+aJgOacieaoqSA+IHNob3l1dWtlblwgOwor5Ya35YeN6LuKID4gcmVpdG91c2hhXCA7CivmnaXkvJrogIUgPiByYWlrYWlzaGFcIDsKK+S4iuetieWTgSA+IGpvdXRvdWhpblwgOwor6I2S55mC5rK7ID4gYXJhcnlvdWppXCA7Civmpb3oprPoq5YgPiByYWtrYW5yb25cIDsKK+WAtuiIjuWulyA+IGt1c2hhc2h1dVwgOwor54Sh6KiA5YqHID4gbXVnb25nZWtpXCA7CivlhaXoi5HliLggPiBueXV1ZW5rZW5cIDsKK+iFsememOeCjiA+IGtlbnNob3VlblwgOwor6auY5bm06ICFID4ga291bmVuc2hhXCA7CivmjqLmtbfnga8gPiB0YW5rYWl0b3VcIDsKK+eEoeimj+W+iyA+IG11a2lyaXRzdVwgOwor5b2i5a656KmeID4ga2VpeW91c2hpXCA7Civlsqnpm7Lpm4AgPiBpd2FoaWJhcmlcIDsKK+W+kuertui1sCA+IHRva3lvdXNvdVwgOwor5LiN5oim5YudID4gZnVzZW5zaG91XCA7Civoh6rnhLbkurogPiBzaGl6ZW5qaW5cIDsKK+WutuW6reeahCA+IGthdGVpdGVraVwgOwor6auY5rCX5ZynID4ga291a2lhdHN1XCA7Civmu5HnqL3mnKwgPiBrb2trZWlib25cIDsKK+Wls+WtkOWvriA+IGpvc2hpcnlvdVwgOwor5pS/5rK755qEID4gc2Vpaml0ZWtpXCA7CivkuIrnrYnlhbUgPiBqb3V0b3VoZWlcIDsKK+WOn+eov+e0mSA+IGdlbmtvdXNoaVwgOwor6Imy55y86Y+hID4gaXJvbWVnYW5lXCA7Civmpb3orZzlj7AgPiBnYWt1ZnVkYWlcIDsKK+WGt+awtOWhiiA+IHJlaXN1aWthaVwgOwor5L+d6K236ImyID4gaG9nb3Nob2t1XCA7CivoibLlj47lt64gPiBpcm9zaHV1c2FcIDsKK+e+juihk+WutiA+IGJpanV0c3VrYVwgOwor5YaN6KmV5L6hID4gc2FpaHlvdWthXCA7Civnq7bkuonppqwgPiBreW91c291YmFcIDsKK+a6luWCmeS4rSA+IGp1bmJpY2h1dVwgOwor5YWJ5ZCI5oiQID4ga291Z291c2VpXCA7CivmgqrmnaHku7YgPiBha3Vqb3VrZW5cIDsKK+S4ieaCqui2oyA+IHNhbmFrdXNodVwgOwor5Li755Sj5ZywID4gc2h1c2FuY2hpXCA7CivosrTmlrnjgIUgPiBhbmF0YWdhdGFcIDsKK+W3u+epjembsiA+IGtlbnNla2l1blwgOwor5biM56Gr6YW4ID4ga2lyeXV1c2FuXCA7CivohLHnqYDmqZ8gPiBkYWtrb2t1a2lcIDsKK+m8juirh+S8miA+IHRlaWRhbmthaVwgOwor6KSH5pys5L2NID4gZnVrdWhvbicnaVwgOwor5L+X6Laj5ZGzID4gem9rdXNodW1pXCA7CivntYLmraLnrKYgPiBzaHV1c2hpZnVcIDsKK+eyvuijveWTgSA+IHNlaXNlaWhpblwgOwor5oay5YW16ZqKID4ga2VucGVpdGFpXCA7CivphY3lgbbogIUgPiBoYWlndXVzaGFcIDsKK+WFheW9k+mHkSA+IGp1dXRvdWtpblwgOwor5raI54Gr5qCTID4gc2hvdWthc2VuXCA7Civlr4TnlZnogIUgPiBraXJ5dXVzaGFcIDsKK+eBsOelnualvSA+IGhhaWthZ3VyYVwgOwor5LiN6YeP6KaLID4gZnVyeW91a2VuXCA7Civph5HkuIDlsIEgPiBraW4nJ2lwcHV1XCA7CivluorpgYvli5UgPiB5dWthdW5kb3VcIDsKK+WvhOeUn+iZqyA+IGtpc2VpY2h1dVwgOwor5LiJ562J5YiGID4gc2FudG91YnVuXCA7CivllqvmsLTnt5ogPiBraXNzdWlzZW5cIDsKK+aCqueOieWMliA+IGFrdWRhbWFrYVwgOwor6LaF57Ch5piTID4gY2hvdWthbicnaVwgOwor5oiv5L2c6ICFID4gZ2VzYWt1c2hhXCA7CivpnZLnk6LnrqogPiBhb2J5b3V0YW5cIDsKK+aCo+iAheanmCA+IGthbmphc2FtYVwgOwor5LqU5a+46YeYID4gZ29zdW5rdWdpXCA7Civku67nmbvoqJggPiBrYXJpdG91a2lcIDsKK+WQiOWQjOi7jSA+IGdvdWRvdWd1blwgOwor6Z2e54++5qWtID4gaGlnZW5neW91XCA7Civli6TlirTogIUgPiBraW5yb3VzaGFcIDsKK+WbuuWumumVtyA+IGtvdGVpY2hvdVwgOwor5q666I+M5YmkID4gc2Fra2luemFpXCA7CivmtIvmnI3lsYsgPiB5b3VmdWt1eWFcIDsKK+i1t+eIhuWJpCA+IGtpYmFrdXphaVwgOwor6KGo56S654GvID4gaHlvdWppdG91XCA7Civkvr/liKnluLMgPiBiZW5yaWNob3VcIDsKK+WPluadkOePrSA+IHNodXphaWhhblwgOwor6ISC6IKq5L2TID4gc2hpYm91dGFpXCA7Civpg7Xkvr/lsYsgPiB5dXViaW4nJ3lhXCA7CivkuK3ovp7lhbggPiBjaHV1aml0ZW5cIDsKK+a0l+mdouWPsCA+IHNlbm1lbmRhaVwgOwor5YaF6KOP6ZubID4gZGFpcmliaW5hXCA7Civlhajkuozph40gPiB6ZW4nJ25panV1XCA7Civmurbop6PmgKcgPiB5b3VrYWlzZWlcIDsKK+aVtOaVsOirliA+IHNlaXN1dXJvblwgOwor5rCR56S+5YWaID4gbWluc2hhdG91XCA7CivkvIHnlLvmm7ggPiBraWtha3VzaG9cIDsKK+eUn+WcsOeNhCA+IGlraWppZ29rdVwgOwor57SU57Gz6YWSID4ganVubWFpc2h1XCA7Civlm57pgYrprZogPiBrYWl5dXVneW9cIDsKK+eEoemWouW/gyA+IG11a2Fuc2hpblwgOwor5Y+L5Lq66ZaTID4geXV1amlua2FuXCA7CivmnInmlpDplqMgPiB5dXVoaWtha3VcIDsKK+iyqeWjsuW6lyA+IGhhbmJhaXRlblwgOwor5b+X5pyb5qChID4gc2hpYm91a291XCA7CivlpYnov47ploAgPiBob3VnZWltb25cIDsKK+mdouS8muS6uiA+IG1lbmthaW5pblwgOwor5LiA566H5pyIID4gaWtrYWdldHN1XCA7CivpgIHmsLTnrqEgPiBzb3VzdWlrYW5cIDsKK+WGt+WHjeiIuSA+IHJlaXRvdXNlblwgOwor5bm06YWN6ICFID4gbmVucGFpc2hhXCA7CivmiYvmlbDmlpkgPiB0ZXN1dXJ5b3VcIDsKK+mboumtgueXhSA+IHJpa29uYnlvdVwgOwor5rC05Lit6IqxID4gc3VpY2h1dWthXCA7Civli5XlkI3oqZ4gPiBkb3VtZWlzaGlcIDsKK+m7hOmHkeiJsiA+IGtvZ2FuZWlyb1wgOwor5LqM5YWD55qEID4gbmlnZW50ZWtpXCA7CivnuJ7moJfpvKAgPiBzaGltYXJpc3VcIDsKK+Wor+alveWgtCA+IGdvcmFrdWpvdVwgOwor6YGK6Kan5ZywID4geXV1cmFuY2hpXCA7CivmnKzlm6DlnYogPiBob24nJ2luYm91XCA7CivlhbHmoITlnI8gPiBreW91ZWlrZW5cIDsKK+ebuOWvvuatuyA+IGFpdGFpamluaVwgOwor5Zu96Ieq5oWiID4ga3VuaWppbWFuXCA7Civph43lpKfoppYgPiBqdXVkYWlzaGlcIDsKK+S8gealreWGhSA+IGtpZ3lvdW5haVwgOwor5ZCM56qT5LyaID4gZG91c291a2FpXCA7Civms5Xok67ojYkgPiBob3VyZW5zb3VcIDsKK+a1t+WklueJiCA+IGthaWdhaWJhblwgOwor5omH54q25ZywID4gc2Vuam91Y2hpXCA7CivmiZPmkoPmiKYgPiBkYWdla2lzZW5cIDsKK+mAj+WGmee0mSA+IHRvdXNoYXNoaVwgOwor5Lq65paH5Y+yID4gamluYnVuc2hpXCA7CivmjIflrprliLggPiBzaGl0ZWlrZW5cIDsKK+mmmeawtOeTtiA+IGtvdXN1aWJpblwgOwor54ax5biv55eFID4gbmV0YWlieW91XCA7CivkvJ3oqJjniakgPiBkZW5raW1vbm9cIDsKK+ioiOmHj+WZqCA+IGtlaXJ5b3VraVwgOwor6KOc5YSf6YeRID4gaG9zaG91a2luXCA7Civou73niq/nvaogPiBrZWloYW56YWlcIDsKK+mcsOW8vumKgyA+IHNhbmRhbmp1dVwgOwor5ZCI5oay5oCnID4gZ291a2Vuc2VpXCA7CivlnLDpjq7npa0gPiBqaWNoaW5zYWlcIDsKK+S4u+S9k+aApyA+IHNodXRhaXNlaVwgOwor57Sg57KS5a2QID4gc29yeXV1c2hpXCA7CivlpYfpupfkuosgPiBraXJlaWdvdG9cIDsKK+idv+WcsOeNhCA+IGhhZWppZ29rdVwgOwor5aSn54G95a6zID4gZGFpc2FpZ2FpXCA7Civmpb3lpKnlrrYgPiByYWt1dGVua2FcIDsKK+eQhuaAp+eahCA+IHJpc2VpdGVraVwgOwor6byT56yb6ZqKID4ga290ZWtpdGFpXCA7Civlr5LmmpboqIggPiBrYW5kYW5rZWlcIDsKK+iKseeyieeXhyA+IGthZnVuc2hvdVwgOwor5Lq654K655qEID4gamluJydpdGVraVwgOwor5Y+X6aCY6ICFID4ganVyeW91c2hhXCA7CivkvIHnlLvmgKcgPiBraWtha3VzZWlcIDsKK+WGhemcgOWeiyA+IG5haWp1Z2F0YVwgOwor5Y6f5oiQ5bKpID4gZ2Vuc2VpZ2FuXCA7CivooajnpLrmnb8gPiBoeW91amliYW5cIDsKK+awuOS5heatryA+IGVpa3l1dXNoaVwgOwor5Y2D56S+5pytID4gc2VuamFmdWRhXCA7Civoj6nmj5Dlv4MgPiBib2RhaXNoaW5cIDsKK+ihqOekuuabuCA+IGh5b3VqaXNob1wgOwor57K+566X5pu4ID4gc2Vpc2Fuc2hvXCA7CivmlL7msLTnrqEgPiBob3VzdWlrYW5cIDsKK+WPjOWtkOiRiSA+IHNvdXNoaXlvdVwgOwor5oCn6Lui5o+bID4gc2VpdGVua2FuXCA7CivovLjpgIHph48gPiB5dXNvdXJ5b3VcIDsKK+aJgOacieWcsCA+IHNob3l1dWNoaVwgOwor6byT5omL6ZW3ID4ga29zaHVjaG91XCA7Civnt4/mnKzlupcgPiBzb3Vob250ZW5cIDsKK+WFg+awl+iAhSA+IGdlbmtpbW9ub1wgOwor5Luj5byB6ICFID4gZGFpYmVuc2hhXCA7CivnlLrljLvogIUgPiBtYWNoaWlzaGFcIDsKK+ijveadkOaJgCA+IHNlaXphaXNob1wgOwor5Y+N5Lmx6LuNID4gaGFucmFuZ3VuXCA7Civnt4/kurrlj6MgPiBzb3VqaW5rb3VcIDsKK+W6l+S7leiIniA+IG1pc2VqaW1haVwgOwor5Lit5L+d6ICFID4gY2h1dWhvc2hhXCA7Civnq4vms5XogIUgPiByaXBwb3VzaGFcIDsKK+iNieebuOaSsiA+IGt1c2F6dW1vdVwgOwor5LqI5YKZ6YyoID4geW9iaWlrYXJpXCA7CivmrZPpgIHkvJogPiBrYW5zb3VrYWlcIDsKK+WPjOe/hemhniA+IHNvdXNoaXJ1aVwgOwor57SZ57Sw5belID4ga2FtaXphaWt1XCA7CivlsbHmsLTojZggPiBzYW5zdWlzb3VcIDsKK+ihqOaymeaxsCA+IG9tb3RlemF0YVwgOwor5ZSQ542F5a2QID4ga2FyYWppc2hpXCA7CivlubPlkozlm70gPiBoZWl3YWtva3VcIDsKK+S9juawl+WcpyA+IHRlaWtpYXRzdVwgOwor5L2c5qWt55SoID4gc2FneW91eW91XCA7CivmsLTlrrPlnLAgPiBzdWlnYWljaGlcIDsKK+e3j+acrOWxsSA+IHNvdWhvbnphblwgOwor5ryU6Kqs5a62ID4gZW56ZXRzdWthXCA7Civnm7Lohbjngo4gPiBtb3VjaG91ZW5cIDsKK+eogOehq+mFuCA+IGtpcnl1dXNhblwgOwor6YGj5ZSQ5L2/ID4ga2VudG91c2hpXCA7CivkvZzmpa3nj60gPiBzYWd5b3VoYW5cIDsKK+a0u+aAp+eCrSA+IGthc3NlaXRhblwgOwor5pyA5bCP5YyWID4gc2Fpc2hvdWthXCA7CivkuZfpmY3loLQgPiBqb3Vrb3Vqb3VcIDsKK+S/l+S4lueVjCA+IHpva3VzZWthaVwgOwor5q+b57mU54mpID4ga2Vvcmltb25vXCA7Civlv5fpoZjmm7ggPiBzaGlnYW5zaG9cIDsKK+S4jeatu+mzpSA+IGZ1c2hpY2hvdVwgOwor5oKy6Kaz55qEID4gaGlrYW50ZWtpXCA7CivmiJDlip/ogIUgPiBzZWlrb3VzaGFcIDsKK+eci+itt+WtpiA+IGthbmdvZ2FrdVwgOwor5LiK5ZCR57eaID4gam91a291c2VuXCA7Civmtojngo7liaQgPiBzaG91ZW56YWlcIDsKK+WFrOS8keaXpSA+IGtvdWt5dXViaVwgOwor57eP57235qWtID4gc291aGlneW91XCA7Civlho3mipXos4cgPiBzYWl0b3VzaGlcIDsKK+atjOWKh+WgtCA+IGthZ2VraWpvdVwgOwor5rWE5rC05aC0ID4gam91c3Vpam91XCA7CivmsLTogJXms5UgPiBzdWlrb3Vob3VcIDsKK+Wkp+a8lOe/kiA+IGRhaWVuc2h1dVwgOwor5a6f5ris5ZuzID4gamlzc29rdXp1XCA7CivohqjlvLXluqYgPiBib3VjaG91ZG9cIDsKK+aYoOWGmeW5lSA+IGVpc2hhbWFrdVwgOwor5LiK5rC06YGTID4gam91c3VpZG91XCA7CivlhajkvY/msJEgPiB6ZW5qdXVtaW5cIDsKK+a1hOawtOWcsCA+IGpvdXN1aWNoaVwgOwor55S35oCn55SoID4gZGFuc2VpeW91XCA7Civlpb3lpYflv4MgPiBrb3VraXNoaW5cIDsKK+iCieS9k+e+jiA+IG5pa3V0YWliaVwgOwor5Zu95a6255qEID4ga29ra2F0ZWtpXCA7CivniqDnibLnmoQgPiBnaXNlaXRla2lcIDsKK+mAo+WtkOeqkyA+IHJlbmppbWFkb1wgOwor55u45a++5oCnID4gc291dGFpc2VpXCA7CivplqLlv4PkuosgPiBrYW5zaGluamlcIDsKK+iSsuWbo+eariA+IGZ1dG9uZ2F3YVwgOwor5YyX5paX5pifID4gaG9rdXRvc2VpXCA7CivmnKzmi6DlnLAgPiBob25reW9jaGlcIDsKK+iInui4j+eXhSA+IGJ1dG91YnlvdVwgOwor5YaF5aSW5Lq6ID4gbmFpZ2FpamluXCA7CivkuIvnqK7lpbMgPiBnZXN1b24nJ25hXCA7CivotaTpm7vou4ogPiBha2FkZW5zaGFcIDsKK+eymOadv+WyqSA+IG5lbmJhbmdhblwgOwor5LqL5qWt6ICFID4gamlneW91c2hhXCA7CivmrZPov47kvJogPiBrYW5nZWlrYWlcIDsKK+iol+WFkOaJgCA+IHRha3VqaXNob1wgOwor5L+d6Ki86YeRID4gaG9zaG91a2luXCA7CivnjKnjgIXnt4sgPiBzaG91am91aGlcIDsKK+awtOaZguioiCA+IG1penVkb2tlaVwgOwor55uy5bCO54qsID4gbW91ZG91a2VuXCA7Civosqnlo7LkurogPiBoYW5iYWluaW5cIDsKK+S6uuWbveiomCA+IGppbmtva3VraVwgOwor5pmu5Y+K54mIID4gZnVreXV1YmFuXCA7CivljYrpg6jml48gPiBoYW5idXpva3VcIDsKK+mjm+mBk+WFtyA+IHRvYmlkb3VndVwgOwor5Lq66ZaT55WMID4gbmluZ2Vua2FpXCA7CivkubPmr43ou4ogPiB1YmFndXJ1bWFcIDsKK+aDqOatu+S9kyA+IHphbnNoaXRhaVwgOwor6YGL5pCs5Lq6ID4gdW5wYW4nJ25pblwgOwor5oqX55Sf5YmkID4ga291c2VpemFpXCA7CivkuJbov7foqIAgPiB5b21haWdvdG9cIDsKK+S8neiogOadvyA+IGRlbmdvbmJhblwgOwor6Ieq56uL6KqeID4gamlyaXRzdWdvXCA7CivnhrHluK/mnpcgPiBuZXR0YWlyaW5cIDsKK+awuOS5heaApyA+IGVpa3l1dXNlaVwgOwor6KO95pys5bGLID4gc2VpaG9uJyd5YVwgOwor5rG96LuK6LODID4ga2lzaGFjaGluXCA7CivnpoHoo4/mp5ggPiBraW5yaXNhbWFcIDsKK+aFo+eUqOWPpSA+IGthbicneW91a3VcIDsKK+ims+WFieWcsCA+IGthbmtvdWNoaVwgOwor5Lya6KaL6ICFID4ga2Fpa2Vuc2hhXCA7CivmnbHlpKnntIUgPiB0b3V0ZW5rb3VcIDsKK+ims+WFieWboyA+IGthbmtvdWRhblwgOwor5oqA5ben55qEID4gZ2lrb3V0ZWtpXCA7Civmpb3pmqDlsYUgPiByYWt1aW5reW9cIDsKK+mrmOmAn+W6piA+IGtvdXNva3Vkb1wgOwor56eB55Sf5a2QID4gc2hpc2Vpc2hpXCA7Civml6XoqJjluLMgPiBuaWtraWNob3VcIDsKK+aUv+ayu+WtpiA+IHNlaWppZ2FrdVwgOwor5rC055CG5a2mID4gc3VpcmlnYWt1XCA7Civmr43lrZDlr64gPiBib3NoaXJ5b3VcIDsKK+edgOW/g+WcsCA+IGtpZ29rb2NoaVwgOwor5oiS5Y6z5LukID4ga2FpZ2VucmVpXCA7CivmipXkuI7ph48gPiB0b3V5b3J5b3VcIDsKK+WTuuS5s+mhniA+IGhvbnl1dXJ1aVwgOwor5aSn6J2Z6J2gID4gb29rb3Vtb3JpXCA7CivnhKHmipXnpaggPiBtdXRvdWh5b3VcIDsKK+aMh+S6huWbsyA+IHNoaXJ5b3V6dVwgOwor6YGp5b+c5oCnID4gdGVraW91c2VpXCA7Civlm57pgIHou4ogPiBrYWlzb3VzaGFcIDsKK+a8q+aJjeW4qyA+IG1hbnphaXNoaVwgOwor6Iqx54Gr5birID4gaGFuYWJpc2hpXCA7Civkuovmpa3nqI4gPiBqaWd5b3V6ZWlcIDsKK+WPjuWuueaJgCA+IHNodXV5b3Vqb1wgOwor5Zu955K95pu4ID4ga29rdWppc2hvXCA7CivmhJ/opprlmaggPiBrYW5rYWt1a2lcIDsKK+aVmeiCsuiyuyA+IGt5b3Vpa3VoaVwgOwor5Zu65a6a57WmID4ga290ZWlreXV1XCA7CivlsZXopqfkvJogPiB0ZW5yYW5rYWlcIDsKK+S6pOS7o+WItiA+IGtvdXRhaXNlaVwgOwor5beh6KaW6ImHID4ganVuc2hpdGVpXCA7Civlt6HoppboiLkgPiBqdW5zaGlzZW5cIDsKK+axjumWouaVsCA+IGhhbmthbnN1dVwgOwor5YWo5Lq655SfID4gemVuamluc2VpXCA7Civmlq3lvLfluqYgPiBkYW5reW91ZG9cIDsKK+WHpuWls+S9nCA+IHNob2pvc2FrdVwgOwor5YCL5oCn55qEID4ga29zZWl0ZWtpXCA7Civlhajpn7Ppmo4gPiB6ZW4nJ29ua2FpXCA7Civlj43kubHogIUgPiBoYW5yYW5zaGFcIDsKK+i7vemfs+alvSA+IGtlaW9uZ2FrdVwgOwor6ZG/5bKp5qmfID4gc2FrdWdhbmtpXCA7Civlm57lvqnmnJ8gPiBrYWlmdWt1a2lcIDsKK+S4jeWQiOagvCA+IGZ1Z291a2FrdVwgOwor5ZGo5rOi6KiIID4gc2h1dWhha2VpXCA7CivkuI3lj6/mrKAgPiBmdWtha2V0c3VcIDsKK+ehrOWMlueXhyA+IGtvdWthc2hvdVwgOwor6YCG5Yq55p6cID4gZ3lha2tvdWthXCA7CivkuIDnrYnlm70gPiBpdHRvdWtva3VcIDsKK+WFqOWwgeWcsCA+IHplbmhvdWNoaVwgOwor5YiG6YWN6YeRID4gYnVucGFpa2luXCA7Civlm57pgYroiLkgPiBrYWl5dXVzZW5cIDsKK+WFrOS8muWggiA+IGtvdWthaWRvdVwgOwor54Sh6KGo5oOFID4gbXVoeW91am91XCA7CivmsLTppIPlrZAgPiBzdWlneW91emFcIDsKK+miqOWcn+eXhSA+IGZ1dWRvYnlvdVwgOwor6YCD6YG/55qEID4gdG91aGl0ZWtpXCA7Civlj6TmloflraYgPiBrb2J1bmdha3VcIDsKK+WEquetieeUnyA+IHl1dXRvdXNlaVwgOwor5Zu65a6a56WoID4ga290ZWloeW91XCA7Civlr77lkJHou4ogPiB0YWlrb3VzaGFcIDsKK+S6i+alreeVjCA+IGppZ3lvdWthaVwgOwor5om55Yik55qEID4gaGloYW50ZWtpXCA7CivlpKnlnLDkurogPiB0ZW5jaGlqaW5cIDsKK+ihgOe1seabuCA+IGtldHRvdXNob1wgOwor5Lit5LqM6ZqOID4gY2h1dW5pa2FpXCA7CivlsbHokaHokIQgPiB5YW1hYnVkb3VcIDsKK+m7hOmBk+mdoiA+IGtvdWRvdW1lblwgOwor5Y+X6Zuj6YCxID4ganVuYW5zaHV1XCA7CivlsIrljrPmrbsgPiBzb25nZW5zaGlcIDsKK+iAg+WPpOWtpiA+IGtvdWtvZ2FrdVwgOwor5L+d6Zm66Ki8ID4gaG9rZW5zaG91XCA7Civpq5jliIblrZAgPiBrb3VidW5zaGlcIDsKK+WGpeWKoOmHkSA+IG15b3VnYWtpblwgOwor5YaF5Zyw57GzID4gbmFpY2hpbWFpXCA7Civmnq/okYnliaQgPiBrYXJlaGF6YWlcIDsKK+aLm+W+heaXpSA+IHNob3V0YWliaVwgOwor6KqT6aGY5qipID4gc2VpZ2Fua2VuXCA7CivmhJvlm73ogIUgPiBhaWtva3VzaGFcIDsKK+iotOmhmOS6uiA+IHNvZ2FuJyduaW5cIDsKK+mgmOS6i+mkqCA+IHJ5b3VqaWthblwgOwor5Li754qv6ICFID4gc2h1aGFuc2hhXCA7CivpmLLorbflo4EgPiBib3Vnb2hla2lcIDsKK+izh+mHkea6kCA+IHNoaWtpbmdlblwgOwor6byg5ZKs55eHID4gc29rb3VzaG91XCA7CivkuInph43nm5cgPiBzYW5qdXV0b3VcIDsKK+mAo+S9k+W9oiA+IHJlbnRhaWtlaVwgOwor54++5q616ZqOID4gZ2VuZGFua2FpXCA7CivmiJDlubTogIUgPiBzZWluZW5zaGFcIDsKK+mHkeino+emgSA+IGtpbmthaWtpblwgOwor57695a2Q56qBID4gaGFuZXRzdWtpXCA7CivmtJfmv6/nsokgPiBzZW50YWt1a29cIDsKK+WFieWMluWtpiA+IGtvdWthZ2FrdVwgOwor6L6y5a2m6YOoID4gbm91Z2FrdWJ1XCA7CivkuLvku7vliLYgPiBzaHVuaW5zZWlcIDsKK+iInui4j+acjSA+IGJ1dG91ZnVrdVwgOwor57WM6aiT6KuWID4ga2Vpa2Vucm9uXCA7CivntYzpqJPoq4cgPiBrZWlrZW5kYW5cIDsKK+aTpumBjuWCtyA+IHNha2thc2hvdVwgOwor5YaN6KO95ZOBID4gc2Fpc2VpaGluXCA7Civlm5vph43lpY8gPiBzaGlqdXVzb3VcIDsKK+ebuOWvvuWApCA+IHNvdXRhaWNoaVwgOwor5q+N5a2Q5YWxID4gYm9zaGl0b21vXCA7CivpiYTngavlt7sgPiB0ZWtrYW1ha2lcIDsKK+iLseS9nOaWhyA+IGVpc2FrdWJ1blwgOwor5oim6LuK5YW1ID4gc2Vuc2hhaGVpXCA7Civlho3mipXnqL8gPiBzYWl0b3Vrb3VcIDsKK+aVmemkiumDqCA+IGt5b3V5b3VidVwgOwor56uL5rOV5qipID4gcmlwcG91a2VuXCA7CivlpqXljZTngrkgPiBkYWt5b3V0ZW5cIDsKK+mbsuS7meWysyA+IHVuemVuZGFrZVwgOwor5Y+X6aCY5pu4ID4ganVyeW91c2hvXCA7CivkuI3mtLvljJYgPiBmdWthdHN1a2FcIDsKK+aWh+eroOiqniA+IGJ1bnNob3Vnb1wgOwor6Z2S5L+h5Y+3ID4gYW9zaGluZ291XCA7CivmmYLoqIjnmr8gPiB0b2tlaXphcmFcIDsKK+W5veWGpeeVjCA+IHl1dW1laWthaVwgOwor5Z+36KGM5ZCPID4gc2hpa2tvdXJpXCA7CivnrYnpq5jnt5ogPiB0b3Vrb3VzZW5cIDsKK+e1nummluWPsCA+IGtvdXNodWRhaVwgOwor56C05pOm6Z+zID4gaGFzYXRzdW9uXCA7CivpgIHlj5fkv6EgPiBzb3VqdXNoaW5cIDsKK+S4gOelnuirliA+IGlzc2hpbnJvblwgOwor552A6YGT5qW9ID4ga2lkb3VyYWt1XCA7CivmmI7lvozlubQgPiBteW91Z29uZW5cIDsKK+azleWLmeecgSA+IGhvdW11c2hvdVwgOwor6YW157Sg5a2mID4ga291c29nYWt1XCA7Civmt7flkIjphZIgPiBrb25nb3VzaHVcIDsKK+Wbs+WDj+WtpiA+IHp1em91Z2FrdVwgOwor5aWJ5Yqg5bizID4gaG91Z2FjaG91XCA7CivmhJ/lmIboqZ4gPiBrYW50YW5zaGlcIDsKK+WJjeWjsuWIuCA+IG1hZXVyaWtlblwgOwor5b+X6aGY5YW1ID4gc2hpZ2FuaGVpXCA7Civlj43lsITlhYkgPiBoYW5zaGFrb3VcIDsKK+earue0sOW3pSA+IGthd2F6YWlrdVwgOwor5b6p5rC05ZmoID4gZnVrdXN1aWtpXCA7CivplqLpgKPmgKcgPiBrYW5yZW5zZWlcIDsKK+e1seiqnuWtpiA+IHRvdWdvZ2FrdVwgOwor5pm055y86ICFID4gc2VpZ2Fuc2hhXCA7CivorJvmvJTmlpkgPiBrb3VlbnJ5b3VcIDsKK+aVrOiAgeS8miA+IGtlaXJvdWthaVwgOwor5pmC6ZaT6Lu4ID4gamlrYW5qaWt1XCA7Civlj43lr77lhZogPiBoYW50YWl0b3VcIDsKK+aQreS5l+iAhSA+IHRvdWpvdXNoYVwgOwor56S+5rCR5YWaID4gc2hhbWludG91XCA7CivntZ7pppbliJEgPiBrb3VzaHVrZWlcIDsKK+WJteW7uuiAhSA+IHNvdWtlbnNoYVwgOwor5pyA5aSn6ZmQID4gc2FpZGFpZ2VuXCA7CivmpZPlrZDpppkgPiBmdXVzaGlrb3VcIDsKK+a3t+aIkOWyqSA+IGtvbnNlaWdhblwgOwor57SZ57KY5ZyfID4ga2FtaW5lbmRvXCA7CivmnaHku7bmlocgPiBqb3VrZW5idW5cIDsKK+aEj+itmOS9kyA+IGlzaGlraXRhaVwgOwor56eB5LyB5qWtID4gc2hpa2lneW91XCA7CivnqbrmqKHmp5ggPiBzb3JhbW95b3VcIDsKK+WFrOacieaelyA+IGtvdXl1dXJpblwgOwor5bGx5rC05qW8ID4gc2Fuc3Vpcm91XCA7Civlr4TnlZnlnLAgPiBraXJ5dXVjaGlcIDsKK+aWreWJm+aApyA+IGRhbmdvdXNlaVwgOwor56m65YWD5rCXID4ga2FyYWdlbmtpXCA7CivmiZPnrpfnmoQgPiBkYXNhbnRla2lcIDsKK+mAgOiUteWTgSA+IHRhaXpvdWhpblwgOwor5b2x6Z+/5ZyPID4gZWlreW91a2VuXCA7CivnnJ/lloTnvo4gPiBzaGluemVuYmlcIDsKK+S7suS/neiAhSA+IGNodXVob3NoYVwgOwor5omL6KGT6KGjID4gc2h1anV0c3VpXCA7CivkurrplpPmhJsgPiBuaW5nZW4nJ2FpXCA7CivnkIbnn6XnmoQgPiByaWNoaXRla2lcIDsKK+eQpeePgOiJsiA+IGtvaGFrdWlyb1wgOwor5b6h6JSt5qeYID4gb2thZ2VzYW1hXCA7Civmr5vntLDnrqEgPiBtb3VzYWlrYW5cIDsKK+eZveiDoem6uyA+IHNoaXJvZ29tYVwgOwor5Li75Lq65YWsID4gc2h1amlua291XCA7CivkurrplpPmgKcgPiBuaW5nZW5zZWlcIDsKK+WNmOWtlOmhniA+IHRhbmtvdXJ1aVwgOwor5ZCM5Yq06ICFID4gZG91cm91c2hhXCA7CivljbPmmYLmgKcgPiBzb2t1amlzZWlcIDsKK+S5s+WRkeWFkCA+IGNoaW5vbWlnb1wgOwor5LiN5b6z5ryiID4gZnV0b2t1a2FuXCA7Civpga3pgYfmiKYgPiBzb3VndXVzZW5cIDsKK+WPiOWutuadpSA+IG1hdGFnZXJhaVwgOwor5q2j5pu45rOVID4gc2Vpc2hvaG91XCA7Civni6zoh6rmgKcgPiBkb2t1amlzZWlcIDsKK+W8geiyoeWkqSA+IGJlbnphaXRlblwgOwor5Yuk5YuZ5YWIID4ga2lubXVzYWtpXCA7CivmjIHkuYXmiKYgPiBqaWt5dXVzZW5cIDsKK+mHjeimgeimliA+IGp1dXlvdXNoaVwgOwor56m65qKF6ZuoID4ga2FyYXRzdXl1XCA7Civmt7fmiJDlm6MgPiBrb25zZWlkYW5cIDsKK+eBq+WPo+WjgSA+IGtha291aGVraVwgOwor5pmC6ZaT6KGoID4gamlrYW5oeW91XCA7CivnoILliKnpgZMgPiBqYXJpbWljaGlcIDsKK+S8muioiOWumCA+IGthaWtlaWthblwgOwor6LOk5qWt5ammID4gc2VuZ3lvdWZ1XCA7CivntYzpqJPogIUgPiBrZWlrZW5zaGFcIDsKK+mfk+WbveiqniA+IGhhbmtva3Vnb1wgOwor5pWZ5p2Q6LK7ID4ga3lvdXphaWhpXCA7Civli53liKnogIUgPiBzaG91cmlzaGFcIDsKK+a9nOS8j+acnyA+IHNlbnB1a3VraVwgOwor5aSn5Zuj5YaGID4gZGFpZGFuJydlblwgOwor5Y2I5YmN5qeYID4gZ296ZW5zYW1hXCA7Civmtbfmva7pn7MgPiBrYWljaG91b25cIDsKK+ato+eKr+iAhSA+IHNlaWhhbnNoYVwgOwor5Y+v5Zyn5oCnID4ga2FhdHN1c2VpXCA7CivoiLnlpKflt6UgPiBmdW5hZGFpa3VcIDsKK+Wcn+WcsOafhCA+IHRvY2hpZ2FyYVwgOwor55m76Ii356S8ID4gdG91Z2VucmVpXCA7CivmlL/lupznrYsgPiBzZWlmdXN1amlcIDsKK+a0u+aAp+WJpCA+IGthc3NlaXphaVwgOwor5Y+N5L2T5Yi2ID4gaGFudGFpc2VpXCA7Civol7voj4zpoZ4gPiBzb3VraW5ydWlcIDsKK+a7keefs+eyiSA+IGthc3Nla2lrb1wgOwor57ep6KGd5ZmoID4ga2Fuc2hvdWtpXCA7Civps6nnvr3oibIgPiBoYXRvYmFpcm9cIDsKK+mhleW+rumPoSA+IGtlbmJpa3lvdVwgOwor5ris5a6a5ZmoID4gc29rdXRlaWtpXCA7CivlkI3lupfooZcgPiBtZWl0ZW5nYWlcIDsKK+WIqeS8keiJsiA+IHJpa3l1dWlyb1wgOwor5Zu95LqL54qvID4ga29rdWppaGFuXCA7Civmt7fmiJDlk4EgPiBrb25zZWloaW5cIDsKK+WIhumFjeiAhSA+IGJ1bnBhaXNoYVwgOwor5Y2K6YCP5piOID4gaGFudG91bWVpXCA7CivliIbmsLTnt5ogPiBidW5zdWlzZW5cIDsKK+mBiuaIr+eahCA+IHl1dWdpdGVraVwgOwor6L+R6KaW55y8ID4ga2luc2hpZ2FuXCA7CivkuLvorIDogIUgPiBzaHVib3VzaGFcIDsKK+S8muioiOWjqyA+IGthaWtlaXNoaVwgOwor5Yid5bm05YW1ID4gc2hvbmVuaGVpXCA7CivlkIzlubTovKkgPiBkb3VuZW5wYWlcIDsKK+ePjeeEoemhniA+IGNoaW5tdXJ1aVwgOwor566d5Y+j5LukID4ga2Fua291cmVpXCA7CivlkIjms5XmgKcgPiBnb3Vob3VzZWlcIDsKK+e3j+mgmOS6iyA+IHNvdXJ5b3VqaVwgOwor5bee5pS/5bqcID4gc2h1dXNlaWZ1XCA7CivllYbli5nlrpggPiBzaG91bXVrYW5cIDsKK+W/nOaOpemWkyA+IG91c2V0c3VtYVwgOwor5Y+C5Lya6ICFID4gc2Fua2Fpc2hhXCA7CivkupTkurrntYQgPiBnb25pbmd1bWlcIDsKK+m7hOawtOaZtiA+IGtpenVpc2hvdVwgOwor5YaF6KOP5qeYID4gZGFpcmlzYW1hXCA7CivlpKfooYbljJYgPiB0YWlzaHV1a2FcIDsKK+mHjeWkp+aApyA+IGp1dWRhaXNlaVwgOwor5aSW5Zu96KqeID4gZ2Fpa29rdWdvXCA7Civli6LlipvlrrYgPiBzZWlyeW9ra2FcIDsKK+WjsOalveWutiA+IHNlaWdha3VrYVwgOwor6KO96Z205qWtID4gc2Vpa2FneW91XCA7CivnrrHppqzou4ogPiBoYWtvYmFzaGFcIDsKK+WuruWGheecgSA+IGt1bmFpc2hvdVwgOwor5LqL5qWt5omAID4gamlneW91c2hvXCA7Civnqb/lsbHnlLIgPiBzZW56YW5rb3VcIDsKK+iHqOa4r+e3miA+IHJpbmtvdXNlblwgOwor5ZSv5ZCN6KuWID4geXVpbWVpcm9uXCA7CivmlLnpgKDou4ogPiBrYWl6b3VzaGFcIDsKK+m7hOmHkeWbvSA+IG91Z29ua29rdVwgOwor6IqL576K5765ID4gaW1veW91a2FuXCA7Civmm7TnlJ/lk4EgPiBrb3VzZWloaW5cIDsKK+iKi+e+iue+riA+IGltb3lvdWthblwgOwor5bqD5bCP6LevID4gaGlyb2tvdWppXCA7Civnqbrov5TkuosgPiBzb3JhaGVuamlcIDsKK+iFkOakjeWcnyA+IGZ1c2hva3Vkb1wgOwor5qyh5ZaE562WID4gaml6ZW5zYWt1XCA7CivpgaDnnLzpj6EgPiB0b29tZWdhbmVcIDsKK+WJtemAoOiAhSA+IHNvdXpvdXNoYVwgOwor5LyR6Zu75pelID4ga3l1dWRlbmJpXCA7Civmnb/ploDlupcgPiBoYW5tb250ZW5cIDsKK+WwjuWFpemDqCA+IGRvdW55dXVidVwgOwor56aF5ZWP562UID4gemVubW9uZG91XCA7CivopIfmlbDlgIsgPiBmdWt1c3V1a29cIDsKK+ebsuWtpuagoSA+IG1vdWdha2tvdVwgOwor6Kme6I+v6ZuGID4gc2hpa2FzaHV1XCA7CivnoJTkv67oqrIgPiBrZW5zaHV1a2FcIDsKK+W8vuaAp+S9kyA+IGRhbnNlaXRhaVwgOwor54yu5ZGI5pysID4ga2VudGVpYm9uXCA7CivlsL7plbfpto8gPiBvbmFnYWRvcmlcIDsKK+aUvumAgee2siA+IGhvdXNvdW1vdVwgOwor6bq76YWU6JasID4gbWFzdWl5YWt1XCA7CivljYPlubTntIAgPiBzZW4nJ25lbmtpXCA7Civlg6fluL3lvIEgPiBzb3Vib3ViZW5cIDsKK+Wkqum8k+iFuSA+IHRhaWtvYmFyYVwgOwor5YmN6KOF56CyID4gemVuc291aG91XCA7CivliIbpgaPpmoogPiBidW5rZW50YWlcIDsKK+WQueWlj+iAhSA+IHN1aXNvdXNoYVwgOwor5aW96KeS5a62ID4ga291a2FrdWthXCA7CivmgqrlpKnlgJkgPiBha3V0ZW5rb3VcIDsKK+aOqOmAsuapnyA+IHN1aXNoaW5raVwgOwor6Ymk5Y2B5a2XID4ga2FnaWp1dWppXCA7CivkubHmsJfmtYEgPiByYW5raXJ5dXVcIDsKK+WGt+WHjeWJpCA+IHJlaXRvdXphaVwgOwor5Yid5a++6Z2iID4gc2hvdGFpbWVuXCA7CivmnKrlj47ovIkgPiBtaXNodXVzYWlcIDsKK+WXnOWlveWTgSA+IHNoaWtvdWhpblwgOwor54Gr56CV5rWBID4ga2FzYWlyeXV1XCA7CivmgqrlpKnkvb8gPiBha3V0ZW5zaGlcIDsKK+W8t+WMluexsyA+IGt5b3VrYW1haVwgOwor5rC06Zu36ImHID4gc3VpcmFpdGVpXCA7CivoprPmpZPkvJogPiBrYW5wdXVrYWlcIDsKK+S9k+mok+irhyA+IHRhaWtlbmRhblwgOwor54Sh5oSf6KaaID4gbXVrYW5rYWt1XCA7CivnvqTpgJ/luqYgPiBndW5zb2t1ZG9cIDsKK+mbu+e3j+eglCA+IGRlbnNvdWtlblwgOwor5LiN56K65a6aID4gZnVrYWt1dGVpXCA7Civnmb3nmb7lkIggPiBzaGlyYXl1cmlcIDsKK+iInui4iuWKhyA+IGJ1eW91Z2VraVwgOwor54Gr5Y+j5LiYID4ga2Frb3VreXV1XCA7CivkuI3mraPnorogPiBmdXNlaWtha3VcIDsKK+mZveWtkOe3miA+IHlvdXNoaXNlblwgOwor5pmC6ZaT57WmID4gamlrYW5reXV1XCA7CivliIbmsLTnlYwgPiBidW5zdWlrYWlcIDsKK+S5seWPjeWwhCA+IHJhbmhhbnNoYVwgOwor6Kej562U5qyEID4ga2FpdG91cmFuXCA7CivprZrpm7foiYcgPiBneW9yYWl0ZWlcIDsKK+WFrOacieWcsCA+IGtvdXl1dWNoaVwgOwor5qy6556e55qEID4gZ2ltYW50ZWtpXCA7CivmmI7nnq3luqYgPiBtZWlyeW91ZG9cIDsKK+S8muioiOS/giA+IGthaWtlaWtlaVwgOwor6Ly45YWl56iOID4geXVueXV1emVpXCA7CivkuI3lv4PlvpcgPiBmdWtva29yb2VcIDsKK+S6jOalreWcsCA+IG5pZ3lvdWNoaVwgOwor5Y2Y5a2Q6KuWID4gdGFuc2hpcm9uXCA7CivoqLzmi6Dph5EgPiBzaG91a29raW5cIDsKK+eUn+a8lOWljyA+IG5hbWFlbnNvdVwgOwor5b6u5YiG5a2mID4gYmlidW5nYWt1XCA7CivlsILlvpPogIUgPiBzZW5qdXVzaGFcIDsKK+S7meWPsOS+ryA+IHNlbmRhaWtvdVwgOwor5YWE5byf5oSbID4ga3lvdWRhaWFpXCA7CivkuIfoj6/pj6EgPiBtYW5nZWt5b3VcIDsKK+emgea8geacnyA+IGtpbnJ5b3VraVwgOwor5Lq66ZaT5YOPID4gbmluZ2Vuem91XCA7Civlm57luLDnmoQgPiBrYWlraXRla2lcIDsKK+W4guawkeeojiA+IHNoaW1pbnplaVwgOwor5a+M5aOr6aGNID4gZnVqaWJpdGFpXCA7CivlhYnpgJ/luqYgPiBrb3Vzb2t1ZG9cIDsKK+mWi+elqOaJgCA+IGthaWh5b3Vqb1wgOwor5L2T6IKy6aSoID4gdGFpaWt1a2FuXCA7CivlpInoqr/ms6IgPiBoZW5jaG91aGFcIDsKK+WQjOebn+i7jSA+IGRvdW1laWd1blwgOwor5ZGK6Ki05Lq6ID4ga29rdXNvbmluXCA7Civlrablo6vpmaIgPiBnYWt1c2hpaW5cIDsKK+WAq+eQhueahCA+IHJpbnJpdGVraVwgOwor54K56by76JasID4gdGVuYml5YWt1XCA7CivmipXmm7jmrIQgPiB0b3VzaG9yYW5cIDsKK+iotOion+azlSA+IHNvc2hvdWhvdVwgOwor5Zub5Y2K5YiGID4gc2hpaGFuYnVuXCA7CivlkLjpn7PmnZAgPiBreXV1b256YWlcIDsKK+WIneS9k+mokyA+IHNob3RhaWtlblwgOwor6Ly45YWl55ukID4geXVueXV1YmFuXCA7CivkuI3nn6XngasgPiBzaGlyYW51aGlcIDsKK+WNtee0sOiDniA+IHJhbnNhaWJvdVwgOwor5LqM5qW15YyWID4gbmlreW9rdWthXCA7CivljZfkuqzpjKAgPiBuYW5raW5qb3VcIDsKK+mzqeaZguioiCA+IGhhdG9kb2tlaVwgOwor5ZO65Lmz55O2ID4gaG9ueXV1YmluXCA7Civopb/mtIvpoqggPiBzZWl5b3VmdXVcIDsKK+aXouijveacjSA+IGtpc2VpZnVrdVwgOwor6YeO5aSW5YqHID4geWFnYWlnZWtpXCA7Civmma7pgY3nmoQgPiBmdWhlbnRla2lcIDsKK+S6i+alreWboyA+IGppZ3lvdWRhblwgOwor5bCP5b255Lq6ID4ga295YWt1bmluXCA7Civps6XlqpLoirEgPiBjaG91YmFpa2FcIDsKK+iHquayu+mgmCA+IGppY2hpcnlvdVwgOwor56C05aOK55qEID4gaGFrYWl0ZWtpXCA7Civnqq7mjqrlpKcgPiBreXV1c29kYWlcIDsKK+mBlOejqOiIuSA+IGRhcnVtYXNlblwgOwor5YaF5Zyo5oCnID4gbmFpemFpc2VpXCA7CivlsI/ojbfniakgPiBrb25pbW90c3VcIDsKK+aXpeezu+S6uiA+IG5pa2tlaWppblwgOwor57K+56We56eRID4gc2Vpc2hpbmthXCA7CivkuIDlkIjnm64gPiBpY2hpZ291bWVcIDsKK+S9j+Wxhei3oSA+IGp1dWt5b2F0b1wgOwor5YaN5oqX5byBID4gc2Fpa291YmVuXCA7CivovrLkvZzmpa0gPiBub3VzYWd5b3VcIDsKK+ieouWFieeHiCA+IGtlaWtvdXRvdVwgOwor5LuY5bm06KGoID4gZnVuZW5weW91XCA7CivmraPoqqTooaggPiBzZWlnb2h5b3VcIDsKK+Wbm+i8qui7iiA+IHlvbnJpbnNoYVwgOwor6YeR57Gz57OWID4ga29ucGVpdG91XCA7CivkuInph43lpY8gPiBzYW5qdXVzb3VcIDsKK+S/neiovOabuCA+IGhvc2hvdXNob1wgOwor5ZCm5a6a55qEID4gaGl0ZWl0ZWtpXCA7CivkuI3pgKPntpogPiBmdXJlbnpva3VcIDsKK+atpuaWreeahCA+IGJ1ZGFudGVraVwgOwor5Ye656mC5pyfID4gc2h1c3N1aWtpXCA7CivkuIrljYrmnJ8gPiBrYW1paGFua2lcIDsKK+WNmOWtkOiRiSA+IHRhbnNoaXlvdVwgOwor5b6u5YiG5ZWGID4gYmlidW5zaG91XCA7CivnvqnlhYTlvJ8gPiBnaWt5b3VkYWlcIDsKK+ikh+e0oOaVsCA+IGZ1a3Vzb3N1dVwgOwor6Lui5qCh55SfID4gdGVua291c2VpXCA7CivmmLzlpJzluK8gPiBjaHV1eWFvYmlcIDsKK+S6i+S7tuihqCA+IGppa2VuaHlvdVwgOwor6J6i5YWJ54GvID4ga2Vpa291dG91XCA7CivlvLfnoazmtL4gPiBreW91a291aGFcIDsKK+aOkuawl+mHjyA+IGhhaWtpcnlvdVwgOwor5aWz5paH5a2XID4gb24nJ25hbW9qaVwgOwor54Sh5omA5bGeID4gbXVzaG96b2t1XCA7Civlkajms6LmlbAgPiBzaHV1aGFzdXVcIDsKK+eMm+emvemhniA+IG1vdWtpbnJ1aVwgOwor55Sf5oWL57O7ID4gc2VpdGFpa2VpXCA7CivmlaPmlofoqakgPiBzYW5idW5zaGlcIDsKK+agveWfueeoriA+IHNhaWJhaXNodVwgOwor5Y6f6JGX6ICFID4gZ2VuY2hvc2hhXCA7Civpm7voqbHmlpkgPiBkZW53YXJ5b3VcIDsKK+aKgOiDveizniA+IGdpbm91c2hvdVwgOwor5paZ6YeR5omAID4gcnlvdWtpbmpvXCA7CivmlK/phY3ogIUgPiBzaGloYWlzaGFcIDsKK+a0l+a/r+WxiyA+IHNlbnRha3V5YVwgOwor5YG06L+R6ICFID4gc29ra2luc2hhXCA7Civlrp/npL7kvJogPiBqaXNzaGFrYWlcIDsKK+W+oemAo+e1oSA+IGdvcmVucmFrdVwgOwor6aaZ5bed55yMID4ga2FnYXdha2VuXCA7Civngrnmu7TlmaggPiB0ZW50ZWtpa2lcIDsKK+S6iOWumuihqCA+IHlvdGVpaHlvdVwgOwor5byB6K235paZID4gYmVuZ29yeW91XCA7CivkuLvopoHpp4UgPiBzaHV5b3Vla2lcIDsKK+WvvuW/nOetliA+IHRhaW91c2FrdVwgOwor6Ly45YWl5rivID4geXVueXV1a291XCA7CivlkIzlv5fkvJogPiBkb3VzaGlrYWlcIDsKK+i/juaSg+apnyA+IGdlaWdla2lraVwgOwor5Lq65Zyw5ZCNID4gamluY2hpbWVpXCA7Civkv53pmbrmlpkgPiBob2tlbnJ5b3VcIDsKK+Wkp+WSjOiKiyA+IHlhbWF0b2ltb1wgOwor6auY5YSq5YWIID4ga291eXV1c2VuXCA7CivmlL7pgIHms5UgPiBob3Vzb3Vob3VcIDsKK+ekuuWKm+WbsyA+IGppcnlva3V6dVwgOwor6Zuq5aWz6YOOID4geXVraWpvcm91XCA7Civpm7bntLDovrIgPiByZWlzYWlub3VcIDsKK+ecn+a4heawtCA+IG1hc2hpbWl6dVwgOwor5Yqp5aSq5YiAID4gc3VrZWRhY2hpXCA7CivlhYvlt7Hlv4MgPiBrb2traXNoaW5cIDsKK+ioreioiOiAhSA+IHNla2tlaXNoYVwgOwor54Sh56We6KuWID4gbXVzaGlucm9uXCA7CivmnInooovpoZ4gPiB5dXV0YWlydWlcIDsKK+S4gOauuumCoyA+IGlzc2V0c3VuYVwgOwor5b+D55CG5oimID4gc2hpbnJpc2VuXCA7CivlvqHmrbTmrbQgPiBvcmVraXJla2lcIDsKK+S4jeW5s+etiSA+IGZ1YnlvdWRvdVwgOwor5Yip5bC/5YmkID4gcmlueW91emFpXCA7CivntbnnqY3pm7IgPiBrZW5zZWtpdW5cIDsKK+eJp+atjOeahCA+IGJva2thdGVraVwgOwor5ry46L+R57eaID4gemVua2luc2VuXCA7CivlrZDlronosp0gPiBrb3lhc3VrYWlcIDsKK+aXheaXpeiomCA+IHRhYmluaWtraVwgOwor5aOy5LiK6YeRID4gdXJpYWdla2luXCA7Civlj5fntabogIUgPiBqdWt5dXVzaGFcIDsKK+aYjuW5tOW6piA+IG15b3VuZW5kb1wgOwor5LqM5p6a6IiMID4gbmltYWlqaXRhXCA7CivkuInph43lhqAgPiBzYW5qdXVrYW5cIDsKK+iqmOmbu+WtkCA+IHl1dWRlbnNoaVwgOwor6Zai5L+C6KmeID4ga2Fua2Vpc2hpXCA7CivntKHpjJjlvaIgPiBib3VzdWlrZWlcIDsKK+WlieW5o+S9vyA+IGhvdWhlaXNoaVwgOwor6Z2p57Sw5belID4ga2F3YXphaWt1XCA7CivluILmsJHms5UgPiBzaGltaW5ob3VcIDsKK+acgOaVrOekvCA+IHNhaWtlaXJlaVwgOwor6Ium5a2m55SfID4ga3VnYWt1c2VpXCA7CivlvpfmhI/lhYggPiB0b2t1aXNha2lcIDsKK+mbqOS7leW6piA+IGFtYWppdGFrdVwgOwor5ZGo5rOi5bivID4gc2h1dWhhdGFpXCA7CivnrqHliLblrpggPiBrYW5zZWlrYW5cIDsKK+eHg+aWmeiyuyA+IG5lbnJ5b3VoaVwgOwor5bm06Lyp6ICFID4gbmVucGFpc2hhXCA7Civph4/oqJjlj7cgPiByeW91a2lnb3VcIDsKK+eZuuWFieS9kyA+IGhha2tvdXRhaVwgOwor5Y2K5YaG5b2iID4gaGFuJydlbmtlaVwgOwor5YaG6Jmr6aGeID4gZW5jaHV1cnVpXCA7Civmh7jmg7PmlocgPiBrZXNvdWJ1bWlcIDsKK+aknOa9ruWZqCA+IGtlbmNob3VraVwgOwor5aeJ5aa557eoID4gc2hpbWFpaGVuXCA7CivooYDns5blgKQgPiBrZXR0b3VjaGlcIDsKK+eEoemHjemHjyA+IG11anV1cnlvdVwgOwor6Zu76Kmx5bizID4gZGVud2FjaG91XCA7CivljYjliY3kuK0gPiBnb3plbmNodXVcIDsKK+WWtualreaJgCA+IGVpZ3lvdXNob1wgOwor57Gz5biC5aC0ID4gYmVpaWNoaWJhXCA7CivkuI3li5Xlv4MgPiBmdWRvdXNoaW5cIDsKK+aOqOmAsuWZqCA+IHN1aXNoaW5raVwgOwor5bCP5Yik5b2iID4ga29iYW5nYXRhXCA7Civlm57pgIHlupcgPiBrYWlzb3V0ZW5cIDsKK+eFp+aYjuWZqCA+IHNob3VtZWlraVwgOwor5b6555Sy5by+ID4gdGVra291ZGFuXCA7Civlrq7lhoXluoEgPiBrdW5haWNob3VcIDsKK+W4guawkeaoqSA+IHNoaW1pbmtlblwgOwor5Y2D5bm05pyfID4gc2VuJyduZW5raVwgOwor5Y2K6Ii356CyID4gaGFuZ2VuaG91XCA7CivmqKnlqIHnrYsgPiBrZW4nJ2lzdWppXCA7CivlpInpm7vmiYAgPiBoZW5kZW5zaG9cIDsKK+mbu+ino+a2siA+IGRlbmthaWVraVwgOwor6Zuy5LiK5Lq6ID4gdW5qb3ViaXRvXCA7CivkuIDlkajlubQgPiBpc3NodXVuZW5cIDsKK+euoeWItuWhlCA+IGthbnNlaXRvdVwgOwor6I+v5Y6z57WMID4ga2Vnb25reW91XCA7Civlr77mg4XloLEgPiB0YWlqb3Vob3VcIDsKK+agvOWkieWMliA+IGtha3VoZW5rYVwgOwor5pWZ6IKy5a62ID4ga3lvdWlrdWthXCA7Civlronmga/pppkgPiBhbnNva3Vrb3VcIDsKK+efs+m5uOawtCA+IHNla2tlbnN1aVwgOwor5LiN5YuJ5by3ID4gZnViZW5reW91XCA7CivloanljJbniakgPiBlbmthYnV0c3VcIDsKK+S4oeeUqOapnyA+IHJ5b3V5b3VraVwgOwor5b2T5LiW6aKoID4gdG91c2VpZnV1XCA7CivmoLzlpKnkupUgPiBnb3V0ZW5qb3VcIDsKK+S4reiAleapnyA+IGNodXVrb3VraVwgOwor5LiN6YGp5qC8ID4gZnV0ZWtrYWt1XCA7CivpgaDlv4PliIYgPiBlbnNoaW5idW5cIDsKK+aZrumAmuazlSA+IGZ1dHN1dWhvdVwgOwor5aqS5p+T5YmkID4gYmFpc2VuemFpXCA7CivnoLToo4Lpn7MgPiBoYXJldHN1b25cIDsKK+S4u+ims+irliA+IHNodWthbnJvblwgOwor5LqM55Wq5L2cID4gbmliYW5zYWt1XCA7CivnlJ/lkb3nt5ogPiBzZWltZWlzZW5cIDsKK+epuuWvvuepuiA+IGt1dXRhaWt1dVwgOwor54yb5ZC56ZuqID4gbW91ZnVidWtpXCA7Civpq5jlsITnoLIgPiBrb3VzaGFob3VcIDsKK+S4gOatqemKgCA+IGljaGlidWdpblwgOwor56aB5ryB5Yy6ID4ga2lucnlvdWt1XCA7CivlpYjoia/mvKwgPiBuYXJhZHp1a2VcIDsKK+W9ouixoeWMliA+IGtlaXNob3VrYVwgOwor5YaF5Zyw5Lq6ID4gbmFpY2hpamluXCA7Civnn7PljZfoirEgPiBzaGFrdW5hZ2VcIDsKK+WCgOWEoeW4qyA+IGthaXJhaXNoaVwgOwor5LiA5q2p6YeRID4gaWNoaWJ1a2luXCA7Civnl6nmiJHmhaIgPiB5YXNlZ2FtYW5cIDsKK+aCquWboOe4gSA+IGFrdWluJyduZW5cIDsKK+S4jeecoOeXhyA+IGZ1bWluc2hvdVwgOwor6Zu76Kej5qe9ID4gZGVua2Fpc291XCA7Civms5Xoj6/lrpcgPiBob2trZXNodXVcIDsKK+S4gOeerOmWkyA+IGlzc2h1bmthblwgOwor5q2j5LiJ5L2NID4gc2hvdXNhbm1pXCA7CivlvL7pgZPlvL4gPiBkYW5kb3VkYW5cIDsKK+a3t+WQiOaelyA+IGtvbmdvdXJpblwgOwor5rC05aKo55S7ID4gc3VpYm9rdWdhXCA7CivkuqTmmJPkvJogPiBrb3Vla2lrYWlcIDsKK+mrmOaliuWtkCA+IHRha2F5b3VqaVwgOwor5qip5aiB55qEID4ga2VuJydpdGVraVwgOwor56S+55So6LuKID4gc2hheW91c2hhXCA7CivliIbmsLTltrogPiBidW5zdWlyZWlcIDsKK+WtkOS+m+eUqCA+IGtvZG9tb3lvdVwgOwor6Kaq5a2d6KGMID4gb3lha291a291XCA7CivnmbrlsITnrZIgPiBoYXNzaGF0b3VcIDsKK+aLvuS4h+WGhiA+IGp1dW1hbicnZW5cIDsKK+WLpOeah+WutiA+IGtpbicnbm91a2FcIDsKK+S5s+WMluWJpCA+IG55dXVrYXphaVwgOwor6L+R5Zyw54K5ID4ga2luY2hpdGVuXCA7CivnhKHnq7bkuokgPiBtdWt5b3Vzb3VcIDsKK+S6pOmam+azlSA+IGtvdXNhaWhvdVwgOwor56eB5pyJ5ZywID4gc2hpeXV1Y2hpXCA7Civlj4LkuI7ogIUgPiBzYW4nJ3lvc2hhXCA7Civpo7LmlpnmsLQgPiBpbnJ5b3VzdWlcIDsKK+eni+aXpeWSjCA+IGFraWJpeW9yaVwgOwor5Yy65b255omAID4ga3V5YWt1c2hvXCA7Civnq4vlv5fkvJ0gPiByaXNzaGlkZW5cIDsKK+WkqeenpOajkiA+IHRlbmJpbmJvdVwgOwor5aSJ6Kq/5ZmoID4gaGVuY2hvdWtpXCA7CivlsI/liKTlnosgPiBrb2JhbmdhdGFcIDsKK+mWouS/guiAhSA+IGthbmtlaXNoYVwgOwor5aSn5oiQ5YqfID4gZGFpc2Vpa291XCA7Civkuozkurrnp7AgPiBuaW5pbnNob3VcIDsKK+WBtuWDj+imliA+IGd1dXpvdXNoaVwgOwor5YG26LmE6aGeID4gZ3V1dGVpcnVpXCA7CivmnaXoqKrogIUgPiByYWlob3VzaGFcIDsKK+mokuS5see9qiA+IHNvdXJhbnphaVwgOwor5a6M5oiQ5ZOBID4ga2Fuc2VpaGluXCA7CivlibXpgKDmgKcgPiBzb3V6b3VzZWlcIDsKK+aOkuawtOeuoSA+IGhhaXN1aWthblwgOwor5Y+I6KuL6LKgID4gbWF0YXVrZW9pXCA7Civph5HplqPlr7ogPiBraW5rYWt1amlcIDsKK+iqmOmbu+S9kyA+IHl1dWRlbnRhaVwgOwor5Y2X5Lqs57GzID4gbmFua2lubWFpXCA7CivnhKHnpZ7ntYwgPiBtdXNoaW5rZWlcIDsKK+mKgOS6pOaPmyA+IGdpbmtvdWthblwgOwor5LiN5bmy5riJID4gZnVrYW5zaG91XCA7Civoo73loanmpa0gPiBzZWllbmd5b3VcIDsKK+aVmeS8muWToSA+IGt5b3VrYWlpblwgOwor5pCt5LmX5Yi4ID4gdG91am91a2VuXCA7CivpgY7noavphbggPiBrYXJ5dXVzYW5cIDsKK+mBi+WRveeahCA+IHVubWVpdGVraVwgOwor6Kaz5qGc5LyaID4ga2FuJydvdWthaVwgOwor54Sh56S86ICFID4gYnVyZWltb25vXCA7Civmp4vmlofms5UgPiBrb3VidW5wb3VcIDsKK+aOpei/keaIpiA+IHNla2tpbnNlblwgOwor54Sh5rOV6ICFID4gbXVob3Vtb25vXCA7CivkuI3pganlvZMgPiBmdXRla2l0b3VcIDsKK+eEoeawtOmNiyA+IG11c3VpbmFiZVwgOwor5pyI57Wm5pelID4gZ2Vra3l1dWJpXCA7CivmlqXlgJnpmoogPiBzZWtrb3V0YWlcIDsKK+WJtealreiyuyA+IHNvdWd5b3VoaVwgOwor6YeN6KaB5oCnID4ganV1eW91c2VpXCA7Civnt4/lo7LkuIogPiBzb3V1cmlhZ2VcIDsKK+WNgeWGhueOiSA+IGp1dWVuZGFtYVwgOwor5YCr55CG5a2mID4gcmlucmlnYWt1XCA7CivkuIDpgLHplpMgPiBpc3NodXVrYW5cIDsKK+ekvuWGheWgsSA+IHNoYW5haWhvdVwgOwor5L2P5a6F6LK7ID4ganV1dGFrdWhpXCA7CivlsYjlnLDmgKcgPiBrdXRjaGlzZWlcIDsKK+WbveacieWMliA+IGtva3V5dXVrYVwgOwor6YCa6aKo5qmfID4gdHN1dWZ1dWtpXCA7CivlrrblsYvmlbcgPiBpZXlhc2hpa2lcIDsKK+WxseakkumtmiA+IHNhbnNob3V1b1wgOwor5YWs5paH5pu4ID4ga291YnVuc2hvXCA7Civmsbrlrproq5YgPiBrZXR0ZWlyb25cIDsKK+S/neiovOS6uiA+IGhvc2hvdW5pblwgOwor5rK/5rW35beeID4gZW5rYWlzaHV1XCA7CivkuI3pgZPlvrMgPiBmdWRvdXRva3VcIDsKK+S+v+S5l+iAhSA+IGJpbmpvdXNoYVwgOwor5LiA5Y2H55O2ID4gaXNzaG91YmluXCA7CivnqbrohbnmmYIgPiBrdXVmdWt1amlcIDsKK+WJjeihm+aIpiA+IHplbicnZWlzZW5cIDsKK+aEn+aDheirliA+IGthbmpvdXJvblwgOwor5pSv6YWN5qipID4gc2hpaGFpa2VuXCA7Civlm6PlrZDpvLsgPiBkYW5nb2JhbmFcIDsKK+WFqOirlueCuSA+IHplbnJvbnRlblwgOwor6YGT5YyW6ICFID4gZG91a2Vtb25vXCA7Civopb/mtIvntJkgPiBzZWl5b3VzaGlcIDsKK+abuOiomOmVtyA+IHNob2tpY2hvdVwgOwor5b+M6KiA6JGJID4gaW1pa290b2JhXCA7Civpm6Pkuovmpa0gPiBuYW5qaWd5b3VcIDsKK+S7mOW4r+eahCA+IGZ1dGFpdGVraVwgOwor6auY6aOb6LuKID4gdGFrYWJpc2hhXCA7Civpm7voqbHkuK0gPiBkZW53YWNodXVcIDsKK+m7hOmBk+W4ryA+IGtvdWRvdXRhaVwgOwor6auY5qCh55SfID4ga291a291c2VpXCA7CivogrrmsLTohasgPiBoYWlzdWlzaHVcIDsKK+WVhueUqOiqniA+IHNob3V5b3Vnb1wgOwor55Wl6KiY5rOVID4gcnlha2tpaG91XCA7CivokaHokITmo5ogPiBidWRvdWRhbmFcIDsKK+WlieWFrOS6uiA+IGhvdWtvdW5pblwgOwor5LuP5rOV5YOnID4gYnVwcG91c291XCA7CivkvZPogrLnpa0gPiB0YWlpa3VzYWlcIDsKK+aZrumAmuW8viA+IGZ1dHN1dWRhblwgOwor5oim5Lit5rS+ID4gc2VuY2h1dWhhXCA7Civpq5jlsbHluK8gPiBrb3V6YW50YWlcIDsKK+aAp+eKr+e9qiA+IHNlaWhhbnphaVwgOwor5rCR6Iq45ZOBID4gbWluZ2VpaGluXCA7CivopqrkvJrnpL4gPiBveWFnYWlzaGFcIDsKK+WPguizgOW4syA+IHNhbmdhY2hvdVwgOwor5LiJ6Lyq6LuKID4gc2Fucmluc2hhXCA7CivnlKPnp5HlraYgPiBzYW5rYWdha3VcIDsKK+i7iuWGheeBryA+IHNoYW5haXRvdVwgOwor5Yy75YuZ5a6kID4gaW11c2hpdHN1XCA7CivmsLjntprmgKcgPiBlaXpva3VzZWlcIDsKK+aOouaknOmaiiA+IHRhbmtlbnRhaVwgOwor5a6f5YuZ5a62ID4gaml0c3VtdWthXCA7Civlv4XpoIjmoLwgPiBoaXNzdWtha3VcIDsKK+Wkp+WSjOatjCA+IHlhbWF0b3V0YVwgOwor5Li45aSq5p2QID4gbWFydXRhemFpXCA7CivnoJTkv67miYAgPiBrZW5zaHV1am9cIDsKK+S4gOWIuemCoyA+IGlzc2V0c3VuYVwgOwor5YWs5piO5YWaID4ga291bWVpdG91XCA7CivntbXnqbroqIAgPiBlc29yYWdvdG9cIDsKK+e+hemHneebpCA+IHJhc2hpbmJhblwgOwor5Zmo6YeP5Lq6ID4ga2lyeW91amluXCA7Civlm73pmpvoqp4gPiBrb2t1c2FpZ29cIDsKK+Wbm+i+uuW9oiA+IHNoaWhlbmtlaVwgOwor55m65L2c55qEID4gaG9zc2F0ZWtpXCA7Civogb7lrabmoKEgPiByb3VnYWtrb3VcIDsKK+aOg+a1t+iJhyA+IHNvdWthaXRlaVwgOwor5Y+C6ICD5pu4ID4gc2Fua291c2hvXCA7CivljJbnsqflk4EgPiBrZXNob3VoaW5cIDsKK+WcsOW5s+mdoiA+IGNoaWhlaW1lblwgOwor5L2O6IO96ICFID4gdGVpbm91c2hhXCA7CivlhYjpqJPoq5YgPiBzZW5rZW5yb25cIDsKK+mbhuiLseekviA+IHNodXVlaXNoYVwgOwor55So5rC05rGgID4geW91c3VpY2hpXCA7Civlj5fpm6PliocgPiBqdW5hbmdla2lcIDsKK+WAieW6q+alrSA+IHNvdWtvZ3lvdVwgOwor5Y2D5YWt5pysID4gc2Vucm9wcG9uXCA7CivovLjlhaXlk4EgPiB5dW55dXVoaW5cIDsKK+WMlueyp+WPsCA+IGtlc2hvdWRhaVwgOwor5aGp5Yqg5ribID4gc2hpb2thZ2VuXCA7Civom43lhYnnh4ggPiBrZWlrb3V0b3VcIDsKK+WomOWtkOi7jSA+IGpvdXNoaWd1blwgOwor6Ieq5rK755yBID4gamljaGlzaG91XCA7CivlsL7plbfnjL8gPiBvbmFnYXphcnVcIDsKK+itpumYsuWboyA+IGtlaWJvdWRhblwgOwor5q2j6Kej6ICFID4gc2Vpa2Fpc2hhXCA7CivpmZDluqbpoY0gPiBnZW5kb2dha3VcIDsKK+WGjea0l+ekvCA+IHNhaXNlbnJlaVwgOwor5aeJ5aa55qChID4gc2hpbWFpa291XCA7CivmoLzpl5jmioAgPiBrYWt1dG91Z2lcIDsKK+mdkuaYpeacnyA+IHNlaXNodW5raVwgOwor6YCf6KiY6YyyID4gc29ra2lyb2t1XCA7CivlhKrli53ppqwgPiB5dXVzaG91YmFcIDsKK+awl+WAmeWtpiA+IGtpa291Z2FrdVwgOwor55eF6Zmi6Ii5ID4gYnlvdWluc2VuXCA7Civlm73mlofnp5EgPiBrb2t1YnVua2FcIDsKK+aLheW9k+iAhSA+IHRhbnRvdXNoYVwgOwor5p2l5aC06ICFID4gcmFpam91c2hhXCA7Civom43lhYnnga8gPiBrZWlrb3V0b3VcIDsKK+aOkuawtOa6nSA+IGhhaXN1aWtvdVwgOwor5bO75LiL5YmkID4gc2h1bmdlemFpXCA7CivlpJbllYbpg6ggPiBnYWlzaG91YnVcIDsKK+ato+aWueW9oiA+IHNlaWhvdWtlaVwgOwor5pyI57WM5bivID4gZ2Vra2VpdGFpXCA7Civop5LooYznga8gPiBrYWt1YW5kb25cIDsKK+iqsuW+tOmHkSA+IGthY2hvdWtpblwgOwor5Lqk5o+b6Ii5ID4ga291a2Fuc2VuXCA7Civkv53nrqHoqLwgPiBob2thbnNob3VcIDsKK+a3u+WKoOeJqSA+IHRlbmthbW9ub1wgOwor5LiA5YiG6YqAID4gaWNoaWJ1Z2luXCA7CivmnaXoprPogIUgPiByYWlrYW5zaGFcIDsKK+e2uue+heaYnyA+IGtpcmFib3NoaVwgOwor5bGx5bKz6YOoID4gc2FuZ2FrdWJ1XCA7CivnmbrlsZXmgKcgPiBoYXR0ZW5zZWlcIDsKK+S4gOWIhumHkSA+IGljaGlidWtpblwgOwor5Y2U5a6a5qGIID4ga3lvdXRlaWFuXCA7Civms6jlsITlmaggPiBjaHV1c2hha2lcIDsKK+WPuOazleaoqSA+IHNoaWhvdWtlblwgOwor5q2j5pS75rOVID4gc2Vpa291aG91XCA7CivmiYvmi43lrZAgPiB0ZWJ5b3VzaGlcIDsKK+ekvuS8mumdoiA+IHNoYWthaW1lblwgOwor6LGh55qu55eFID4gem91aGlieW91XCA7CivnpoHlj43oqIAgPiBraW5oYW5nZW5cIDsKK+eEoeWPjOeqkyA+IG11c291bWFkb1wgOwor5pmC6ZaT5YmyID4gamlrYW53YXJpXCA7CivnlKjlv4Pmo5IgPiB5b3VqaW5ib3VcIDsKK+WGjeaEn+afkyA+IHNhaWthbnNlblwgOwor5q+b6KO95ZOBID4gbW91c2VpaGluXCA7CivljJbnsqfku6MgPiBrZXNob3VkYWlcIDsKK+agvOe0jeW6qyA+IGtha3Vub3Vrb1wgOwor57eP57Si5byVID4gc291c2FrdWluXCA7Civkuojlr6nlu7cgPiB5b3NoaW50ZWlcIDsKK+iMtuWxi+mFkiA+IGNoYXlhemFrZVwgOwor5Zub5YiG5YaGID4gc2hpYnVuJydlblwgOwor5L2X5L2P5bGFID4gd2FiaXp1bWFpXCA7CivniYfmiYvmobYgPiBrYXRhdGVva2VcIDsKK+WJteWIiuWPtyA+IHNvdWthbmdvdVwgOwor5Zub5YiG5YWtID4gc2hpYnVyb2t1XCA7CivpmLLmvZzntrIgPiBib3VzZW5tb3VcIDsKK+WQjeWIuuWIpCA+IG1laXNoaWJhblwgOwor5rKz56ul5be7ID4ga2FwcGFtYWtpXCA7CivlkJHlhYnmgKcgPiBrb3Vrb3VzZWlcIDsKK+WLsuS4gOetiSA+IGt1bicnaXR0b3VcIDsKK+WPjeeJqeWxiyA+IHRhbm1vbm95YVwgOwor5LqS6K2y55qEID4gZ29qb3V0ZWtpXCA7CivkuJbnlYznmoQgPiBzZWthaXRla2lcIDsKK+W+oei/t+aDkSA+IGdvbWVpd2FrdVwgOwor5LiJ6YOo5L2cID4gc2FuYnVzYWt1XCA7CivmraPpnaLlm7MgPiBzaG91bWVuenVcIDsKK+ihqOWFt+W4qyA+IGh5b3VndXNoaVwgOwor5LiN6YGp5Lu7ID4gZnV0ZWtpbmluXCA7CivntYzkvIHluoEgPiBrZWlraWNob3VcIDsKK+mBi+WLlemgmCA+IHVuZG91cnlvdVwgOwor5YWI6Iis5p2lID4gc2VucGFucmFpXCA7CivlrprlhqDoqZ4gPiB0ZWlrYW5zaGlcIDsKK+m7hOmBk+WFiSA+IGtvdWRvdWtvdVwgOwor5o6l5bC+6L6eID4gc2V0c3ViaWppXCA7CivmsLTnhKHmnIggPiBtaW5hZHp1a2lcIDsKK+mnkOWcqOWToSA+IGNodXV6YWlpblwgOwor6Ly45bC/566hID4geXVueW91a2FuXCA7Civlm73pmLLosrsgPiBrb2t1Ym91aGlcIDsKK+S+jeW+k+mVtyA+IGppanV1Y2hvdVwgOwor5q666aKo5pmvID4gc2FwcHV1a2VpXCA7CivkuK3mlK/pgqMgPiBuYWthc2hpbmFcIDsKK+iqpOaMv+WFpSA+IGdvc291bnl1dVwgOwor5q2j5pWZ5o6IID4gc2Vpa3lvdWp1XCA7CivkvJHngavlsbEgPiBreXV1a2F6YW5cIDsKK+WtkOWuiOatjCA+IGtvbW9yaXV0YVwgOwor5rG65a6a56i/ID4ga2V0dGVpa291XCA7CivpmLLngavlo4EgPiBib3VrYWhla2lcIDsKK+WPsOa5vuS6uiA+IHRhaXdhbmppblwgOwor5pel56ug5peXID4gbmlzc2hvdWtpXCA7Civpg6jpmorplbcgPiBidXRhaWNob3VcIDsKK+W+oeecn+W9sSA+IGdvc2hpbicnZWlcIDsKK+WHneWbuueCuSA+IGd5b3Vrb3RlblwgOwor5pSv5bqX57ayID4gc2hpdGVubW91XCA7CivmlbDooajnpLogPiBzdXVoeW91amlcIDsKK+miqOWQkeioiCA+IGZ1dWtvdWtlaVwgOwor6JuN5YWJ5p2/ID4ga2Vpa291YmFuXCA7CivmlrDogZ7oiJcgPiBzaGluYnVuaG9cIDsKK+ilv+WNl+ilvyA+IHNlaW5hbnNlaVwgOwor6YG/6Zu36YedID4gaGlyYWlzaGluXCA7CivnjYXlrZDoiJ4gPiBzaGlzaGltYWlcIDsKK+S7u+acn+S4rSA+IG5pbmtpY2h1dVwgOwor5pa56Z2i6ZqKID4gaG91bWVudGFpXCA7CivpoqjpiLTojYkgPiBmdXVyaW5zb3VcIDsKK+iKsemHjuiPnCA+IGhhbmF5YXNhaVwgOwor5puy54us5qW9ID4ga3lva3Vnb21hXCA7CivnnJ/lkJHms5UgPiBtYWtrb3Vob3VcIDsKK+WVhuiIueaXlyA+IHNob3VzZW5raVwgOwor56CU5L+u5ZOhID4ga2Vuc2h1dWluXCA7CivoqZXliKToqJggPiBoeW91YmFua2lcIDsKK+aZrumAmuS+vyA+IGZ1dHN1dWJpblwgOwor5Ymv55+l5LqLID4gZnVrdWNoaWppXCA7Civmr43pm4blm6MgPiBib3NodXVkYW5cIDsKK+S4ieWGoOeOiyA+IHNhbmthbicnb3VcIDsKK+aBi+aEm+imsyA+IHJlbicnYWlrYW5cIDsKK+S9teihjOe3miA+IGhlaWtvdXNlblwgOwor5Zyw5b255qipID4gY2hpZWtpa2VuXCA7Civmma7pgJrkurogPiBmdXRzdXVqaW5cIDsKK+WFiOWwjuiAhSA+IHNlbmRvdXNoYVwgOwor5YaN5Y2U6K2wID4gc2Fpa3lvdWtpXCA7CivmipXpmY3ogIUgPiB0b3Vrb3VzaGFcIDsKK+S7o+i1reiJsiA+IHRhaXNoYWlyb1wgOwor5o6l5bC+6KqeID4gc2V0c3ViaWdvXCA7CivliofkvZzlrrYgPiBnZWtpc2Fra2FcIDsKK+mHjeaIpui7iiA+IGp1dXNlbnNoYVwgOwor6Z+z5qW96ZqKID4gb25nYWt1dGFpXCA7Civlho3npoHmraIgPiBzYWlraW5zaGlcIDsKK+eHu+iSuOWJpCA+IGt1bmpvdXphaVwgOwor5rSL6KOB5birID4geW91c2Fpc2hpXCA7CivnnJ/mraPpnaIgPiBtYXNob3VtZW5cIDsKK+aciOe1jOWJjSA+IGdla2tlaW1hZVwgOwor6YGL5YuV6YePID4gdW5kb3VyeW91XCA7CivkvY7lsbHluK8gPiB0ZWl6YW50YWlcIDsKK+WKseaMr+WZqCA+IHJlaXNoaW5raVwgOwor6Iux6ZuE55qEID4gZWl5dXV0ZWtpXCA7CivoqJjogIXluK0gPiBraXNoYXNla2lcIDsKK+WBpeW6t+iAhSA+IGtlbmtvdXNoYVwgOwor6IKl5rqA55eHID4gaGltYW5zaG91XCA7CivmnIDlpKflgKQgPiBzYWlkYWljaGlcIDsKK+ioiOeUu+ahiCA+IGtlaWtha3VhblwgOwor6I+v5Y6z5a6XID4ga2Vnb25zaHV1XCA7CivkuLvopoHngrkgPiBzaHV5b3V0ZW5cIDsKK+S7ruS9j+WxhSA+IGthcml6dW1haVwgOwor5Lya5ZOh6Ki8ID4ga2FpaW5zaG91XCA7Civnsr7oloTlhZAgPiBzZWloYWt1amlcIDsKK+aMv+WFpeWbsyA+IHNvdW55dXV6dVwgOwor5LiB5bm06ICFID4gdGVpbmVuc2hhXCA7Civnm6Pmn7vlvbkgPiBrYW5zYXlha3VcIDsKK+iWhOWMlueypyA+IHVzdWdlc2hvdVwgOwor5Ye65Yuk57C/ID4gc2h1a2tpbmJvXCA7CivkuK3lpK7nt5ogPiBjaHV1b3VzZW5cIDsKK+WxpeattOabuCA+IHJpcmVraXNob1wgOwor6aSK5Zej5a2QID4geW91c2hpc2hpXCA7CivlpKfmtbfljp8gPiBvb3VuYWJhcmFcIDsKK+S9juS+oeagvCA+IHRlaWtha2FrdVwgOwor5Lqk6Zqb5LiKID4ga291c2Fpam91XCA7Civlj4LogIPlk4EgPiBzYW5rb3VoaW5cIDsKK+elnue1jOenkSA+IHNoaW5rZWlrYVwgOwor5bCP5L2c6L6yID4ga29zYWt1bm91XCA7Civnp4Hmlofmm7ggPiBzaGlidW5zaG9cIDsKK+axuuWumueJiCA+IGtldHRlaWJhblwgOwor5b+D5LiN5YWoID4gc2hpbmZ1emVuXCA7CivkubPlubzlhZAgPiBueXV1eW91amlcIDsKK+imj+WJh+abuCA+IGtpc29rdXNob1wgOwor5Yqg6Zmk5byPID4ga2Fqb3NoaWtpXCA7Civlj7jms5XlrpggPiBzaGlob3VrYW5cIDsKK+epuuWvvuWcsCA+IGt1dXRhaWNoaVwgOwor5q2j6KaW55y8ID4gc2Vpc2hpZ2FuXCA7Civml6nmhbbmiKYgPiBzb3VrZWlzZW5cIDsKK+aOmOWJiuapnyA+IGt1c3Nha3VraVwgOwor5pyq56K65a6aID4gbWlrYWt1dGVpXCA7Civpq5jmnrbmqYsgPiBrb3VrYWt5b3VcIDsKK+WAi+WIpeWMliA+IGtvYmV0c3VrYVwgOwor5oy/5YWl5Y+lID4gc291bnl1dWt1XCA7CivmlL/mqKnlhZogPiBzZWlrZW50b3VcIDsKK+WwhOWIqeW/gyA+IHNoYXJpc2hpblwgOwor55uj5a+f5Yy7ID4ga2Fuc2F0c3VpXCA7CivpgZPljJbmlrkgPiBkb3VrZWdhdGFcIDsKK+WNiuS6jOmHjSA+IGhhbicnbmlqdXVcIDsKK+emgeayu+eUoyA+IGtpbmNoaXNhblwgOwor5Y2Y6Kqe6ZuGID4gdGFuZ29zaHV1XCA7CivnlKjmsLTlnLAgPiB5b3VzdWlpa2VcIDsKK+i7iumrmOefrSA+IHNoYWtvdXRhblwgOwor5raI5YyW6IW6ID4gc2hvdWthc2VuXCA7Civov5HmtbfprZogPiBraW5rYWlneW9cIDsKK+aOkuawtOWtlCA+IGhhaXN1aWtvdVwgOwor5pyo6YeR5ZyfID4gbW9rdWtpbmRvXCA7CivmjIHntprmgKcgPiBqaXpva3VzZWlcIDsKK+WQjeW3peWkpyA+IG1laWtvdWRhaVwgOwor5pSv6YWN5Lq6ID4gc2hpaGFpbmluXCA7CivlubnkuovplbcgPiBrYW5qaWNob3VcIDsKK+mVt+awtOi3ryA+IGNob3VzdWlyb1wgOwor5bmz5YWa5ZOhID4gaGlyYXRvdWluXCA7CivlvqrnkrDnt5ogPiBqdW5rYW5zZW5cIDsKK+S4i+WJi+S4iiA+IGdla29rdWpvdVwgOwor5LiK5bGk6aKoID4gam91c291ZnV1XCA7CivlnKflu7bpi7wgPiBhdHN1ZW5rb3VcIDsKK+iPoOiWkOiNiSA+IGhvdXJlbnNvdVwgOwor5rqW5pWZ5ZOhID4ganVua3lvdWluXCA7Civlh7nnnLzpj6EgPiBvdWdhbmt5b3VcIDsKK+eJqeS+oemrmCA+IGJ1a2thZGFrYVwgOwor6KqY5ouQ572qID4geXV1a2FpemFpXCA7CivlvqrnkrDns7sgPiBqdW5rYW5rZWlcIDsKK+a0vueUn+eahCA+IGhhc2VpdGVraVwgOwor57Sg5Y+N5b+cID4gc29oYW4nJ25vdVwgOwor5Zyo6YO36ICFID4gemFpZ291c2hhXCA7CivljJfmtbfpgZMgPiBob2trYWlkb3VcIDsKK+ael+aqjueXhSA+IHJpbmdvYnlvdVwgOwor6Jas5LqL5rOVID4geWFrdWppaG91XCA7Civnn63mr5vnqK4gPiB0YW5tb3VzaHVcIDsKK+amguW/teirliA+IGdhaW5lbnJvblwgOwor6YGT5b6z5a62ID4gZG91dG9rdWthXCA7Civlj4LkuI7lrpggPiBzYW4nJ3lva2FuXCA7CivmnIDntYLmoYggPiBzYWlzaHV1YW5cIDsKK+S4lueVjOaWsCA+IHNla2Fpc2hpblwgOwor5Y+C6ICD5Lq6ID4gc2Fua291bmluXCA7CivlsYvlj7DpqqggPiB5YXRhaWJvbmVcIDsKK+Wkp+atk+i/jiA+IGRhaWthbmdlaVwgOwor5LiK5bGk6ZqOID4gam91c291a2FpXCA7CivkuIDliIfntYwgPiBpc3NhaWt5b3VcIDsKK+WGjemFjee9riA+IHNhaWhhaWNoaVwgOwor6IKM6KWm6KKiID4gaGFkYWp1YmFuXCA7Civlha3op5LlvaIgPiByb2trYWtrZWlcIDsKK+aWsOeUn+WFkCA+IHNoaW5zZWlqaVwgOwor5YWI5L2P6ICFID4gc2VuanV1c2hhXCA7Civphpzmpa3lqaYgPiBzaHVneW91ZnVcIDsKK+ijgeWIpOaoqSA+IHNhaWJhbmtlblwgOwor5aSn56We5a6uID4gZGFpamluZ3V1XCA7CivmraPmlZnlk6EgPiBzZWlreW91aW5cIDsKK+aCquaIr+edgCA+IGl0YXp1cmFnaVwgOwor5pi86KGM54GvID4gaGlydWFuZG9uXCA7CivlnLDlubPnt5ogPiBjaGloZWlzZW5cIDsKK+mFjembu+e3miA+IGhhaWRlbnNlblwgOwor55m96aCt57+BID4gaGFrdXRvdW91XCA7CivnmbrlsITlj7AgPiBoYXNzaGFkYWlcIDsKK+S4u+mZo+WcsCA+IHNodWppbmNoaVwgOwor5oSf5oOz5paHID4ga2Fuc291YnVuXCA7CivmtojljJbns7sgPiBzaG91a2FrZWlcIDsKK+S4u+ims+aApyA+IHNodWthbnNlaVwgOwor5aSn5rOV5bu3ID4gZGFpaG91dGVpXCA7CivmnIDntYLml6UgPiBzYWlzaHV1YmlcIDsKK+axuuWumuaoqSA+IGtldHRlaWtlblwgOwor5YWO5bCP5bGLID4gdXNhZ2lnb3lhXCA7CivlpJrnpZ7oq5YgPiB0YXNoaW5yb25cIDsKK+W+jOWNiueUnyA+IGtvdWhhbnNlaVwgOwor5aKX6KiC54mIID4gem91dGVpYmFuXCA7CivmiYDlnKjlnLAgPiBzaG96YWljaGlcIDsKK+eBveWus+WcsCA+IHNhaWdhaWNoaVwgOwor5raI5YyW566hID4gc2hvdWtha2FuXCA7CivlubTku6PpoIYgPiBuZW5kYWlqdW5cIDsKK+elnue1jOeCjiA+IHNoaW5rZWllblwgOwor5aWJ5LuV6ICFID4gaG91c2hpc2hhXCA7Civlho3lj5fmtbggPiBzYWlqdXNoaW5cIDsKK+aTjealreiyuyA+IHNvdWd5b3VoaVwgOwor5LqM5Lq65YmNID4gZnV0YXJpbWFlXCA7Civlr4zlo6vlo7ogPiBmdWppdHN1Ym9cIDsKK+eZvuiyqOW6lyA+IGh5YWtrYXRlblwgOwor5qiq5pat5bmVID4gb3VkYW5tYWt1XCA7CivkuozkurrliIYgPiBmdXRhcmlidW5cIDsKK+e0jeeojuiAhSA+IG5vdXplaXNoYVwgOwor6YW45oCn57SZID4gc2Fuc2Vpc2hpXCA7Civlt6blj7Pou7ggPiBzYXl1dWppa3VcIDsKK+WkqeawtOahtiA+IHRlbnN1aW9rZVwgOwor5YWs6ZaL54q2ID4ga291a2Fpam91XCA7CivosrTph5HlsZ4gPiBraWtpbnpva3VcIDsKK+azoue+heicnCA+IGhhcmFtaXRzdVwgOwor54up54yf5pyfID4gc2h1cnlvdWtpXCA7Civmlofms5Xmm7ggPiBidW5wb3VzaG9cIDsKK+WNoOmgmOS4iyA+IHNlbnJ5b3VrYVwgOwor54eD54S854KJID4gbmVuc2hvdXJvXCA7Civlj6TnrYblrrYgPiBrb2hpdHN1a2FcIDsKK+mYsuihm+W6gSA+IGJvdWVpY2hvdVwgOwor5aSn56Wt5Y+4ID4gZGFpc2Fpc2hpXCA7Civpm5vnvYznsp8gPiBoaW5hZ2VzaGlcIDsKK+WFqOWkqeWAmSA+IHplbnRlbmtvdVwgOwor6LaF55+t5rOiID4gY2hvdXRhbnBhXCA7CivmlL7lsITog70gPiBob3VzaGFub3VcIDsKK+WJjeenkeiAhSA+IHplbmthbW9ub1wgOwor6ZW36YeO55yMID4gbmFnYW5va2VuXCA7CivpnZLlpKflsIYgPiBhb2RhaXNob3VcIDsKK+efpeaBteeGsSA+IGNoaWVuZXRzdVwgOwor5YyF6KOF57SZID4gaG91c291c2hpXCA7CivkvJrlk6Hnq6AgPiBrYWlpbnNob3VcIDsKK+exs+eUo+WcsCA+IGJlaXNhbmNoaVwgOwor5YWr6KeS5b2iID4gaGFra2Fra2VpXCA7CivkupTlpKfmtLIgPiBnb2RhaXNodXVcIDsKK+aWsOWtpuacnyA+IHNoaW5nYWtraVwgOwor6YWN6Zu755ukID4gaGFpZGVuYmFuXCA7Civoi7HmloflraYgPiBlaWJ1bmdha3VcIDsKK+WtkOWuiOWUhCA+IGtvbW9yaXV0YVwgOwor5b6h5YWE5byfID4gZ29reW91ZGFpXCA7Civoo4HliKTmiYAgPiBzYWliYW5zaG9cIDsKK+WPgumZoumBuCA+IHNhbicnaW5zZW5cIDsKK+i7jeS6uumiqCA+IGd1bmppbmZ1dVwgOwor54Sh5b6X54K5ID4gbXV0b2t1dGVuXCA7Civoq5bnkIbnmoQgPiByb25yaXRla2lcIDsKK+WKg+acn+eahCA+IGtha2tpdGVraVwgOwor5LiJ55yB5aCCID4gc2Fuc2VpZG91XCA7CivomZrlvLHlhZAgPiBreW9qYWt1amlcIDsKK+W9k+S6i+WbvSA+IHRvdWppa29rdVwgOwor6KuW5LqJ6ICFID4gcm9uc291c2hhXCA7CivmlL7lsITnt5ogPiBob3VzaGFzZW5cIDsKK+W0h+aLneiAhSA+IHN1dWhhaXNoYVwgOwor5YGl5bq35rOVID4ga2Vua291aG91XCA7CivmgKrmlofmm7ggPiBrYWlidW5zaG9cIDsKK+mAruaNleattCA+IHRhaWhvcmVraVwgOwor562G6aCt6ICFID4gaGl0dG91c2hhXCA7Civkub7nlJ/lp5wgPiBrYW5zaG91Z2FcIDsKK+eUn+aui+iAhSA+IHNlaXphbnNoYVwgOwor5reh5rC06a2aID4gdGFuc3VpZ3lvXCA7CivotIjnrZTlk4EgPiB6b3V0b3VoaW5cIDsKK+S6pOaPm+aJiyA+IGtvdWthbnNodVwgOwor6JuN5YWJ5L2TID4ga2Vpa291dGFpXCA7CivmsLfngrnkuIsgPiBoeW91dGVua2FcIDsKK+iqmOaLkOeKryA+IHl1dWthaWhhblwgOwor54WO546J5a2QID4gaXJpdGFtYWdvXCA7CivoiIjkv6HmiYAgPiBrb3VzaGluam9cIDsKK+eUmOWRs+aWmSA+IGthbm1pcnlvdVwgOwor6Kmm6aiT57SZID4gc2hpa2Vuc2hpXCA7Civnho/okrjliaQgPiBrdW5qb3V6YWlcIDsKK+iCieilpuiioiA+IG5pa3VqdWJhblwgOwor55uj5a6I5Lq6ID4ga2Fuc2h1bmluXCA7CivlopflpKflj7cgPiB6b3VkYWlnb3VcIDsKK+a7kei1sOi8qiA+IGthc3NvdXJpblwgOwor5YaN5Ym16YCgID4gc2Fpc291em91XCA7Civopb/mtIvlj7IgPiBzZWl5b3VzaGlcIDsKK+aIuOexjeazlSA+IGtvc2VraWhvdVwgOwor6I2S54mp5bGLID4gYXJhbW9ub3lhXCA7CivkuK3opb/pg6ggPiBjaHV1c2VpYnVcIDsKK+iHquWLleeahCA+IGppZG91dGVraVwgOwor5YCf5a625Lq6ID4gc2hha2thbmluXCA7Civms5Xlrabpg6ggPiBob3VnYWt1YnVcIDsKK+i7jeizh+mHkSA+IGd1bnNoaWtpblwgOwor5paH5rOV5oCnID4gYnVucG91c2VpXCA7CivovrLlpKvnl4cgPiBub3VmdXNob3VcIDsKK+adkOaWmeiyuyA+IHphaXJ5b3VoaVwgOwor5YKs5raZ6YqDID4gc2FpcnVpanV1XCA7CivlpInmj5vlrZAgPiBoZW5rYW5zaGlcIDsKK+adkOacqOWxiyA+IHphaW1va3V5YVwgOwor6LKn56qu5YyWID4gaGlua3l1dWthXCA7Civml6nlkIjngrkgPiBoYXlhZ2F0ZW5cIDsKK+iCpea6gOaApyA+IGhpbWFuc2hvdVwgOwor6LuK6aas6LODID4gc2hhYmFjaGluXCA7Civnq5zpqI7lhbUgPiByeXV1a2loZWlcIDsKK+Wcn+WPsOefsyA+IGRvZGFpaXNoaVwgOwor5biw57SN55qEID4ga2lub3V0ZWtpXCA7CivoqabpqJPnrqEgPiBzaGlrZW5rYW5cIDsKK+eUt+WtkOmrmCA+IGRhbnNoaWtvdVwgOwor5aSn5Y+N5a++ID4gZGFpaGFudGFpXCA7CivpnZ7lm73msJEgPiBoaWtva3VtaW5cIDsKK+Wwj+ixhumxkiA+IGF6dWtpbWFzdVwgOwor6I6i6LGM6LGGID4gc2F5YWVuZG91XCA7CivkuKHmm7/mqZ8gPiByeW91Z2Fla2lcIDsKK+e2v+eBq+iWrCA+IG1lbmtheWFrdVwgOwor5Lq65rCR6LuNID4gamlubWluZ3VuXCA7CivmrKDli6TogIUgPiBrZWtraW5zaGFcIDsKK+Wwj+S9nOexsyA+IGtvc2FrdW1haVwgOwor5rOl5p2/5bKpID4gZGVpYmFuZ2FuXCA7Civmk6zpnanntJkgPiBnaWtha3VzaGlcIDsKK+iytOmHjeWTgSA+IGtpY2hvdWhpblwgOwor54Gr5bGx56SrID4ga2F6YW5yZWtpXCA7CivpoZTlhpnnnJ8gPiBrYW9qYXNoaW5cIDsKK+WFsea8lOiAhSA+IGt5b3VlbnNoYVwgOwor5pWR6K2354+tID4ga3l1dWdvaGFuXCA7Civlho3lvqrnkrAgPiBzYWlqdW5rYW5cIDsKK+iNu+axn+evgCA+IG9naWVidXNoaVwgOwor6ZuG5YWJ5ZmoID4gc2h1dWtvdWtpXCA7CivkuIDpg6jliIYgPiBpY2hpYnVidW5cIDsKK+ijheeUsui7iiA+IHNvdWtvdXNoYVwgOwor5paw5LiW57SAID4gc2hpbnNlaWtpXCA7Civoo4HliKTlrpggPiBzYWliYW5rYW5cIDsKK+WHuuWLpOaXpSA+IHNodWtraW5iaVwgOwor6YCB5L+h5qmfID4gc291c2hpbmtpXCA7Civpm5HlsYXlnLAgPiB6YWtreW9jaGlcIDsKK+iLseaVsOWbvSA+IGVpc3V1a29rdVwgOwor5L+d566h5paZID4gaG9rYW5yeW91XCA7CivljYrosrTnn7MgPiBoYW5raXNla2lcIDsKK+i7jeeUqOapnyA+IGd1bicneW91a2lcIDsKK+iZjuiQveesmyA+IG1vZ2FyaWJ1ZVwgOwor55Sf6YKE6ICFID4gc2Vpa2Fuc2hhXCA7Civmh4foq4fkvJogPiBrb25kYW5rYWlcIDsKK+acquWFrOihqCA+IG1pa291aHlvdVwgOwor6KW/5rSL5Lq6ID4gc2VpeW91amluXCA7CivnlLDoiI7ogIUgPiBpbmFrYW1vbm9cIDsKK+a2iOWMlua2siA+IHNob3VrYWVraVwgOwor5YGl5bq35pa5ID4ga2Vua291aG91XCA7CivnqbTlsYXkurogPiBrZWtreW9qaW5cIDsKK+WmqOalreWToSA+IGJvdWd5b3VpblwgOwor6aKo5ZGC5pW3ID4gZnVyb3NoaWtpXCA7CivkvZXmm5zml6UgPiBuYW4nJ3lvdWJpXCA7CivorabmiJLnt5ogPiBrZWlrYWlzZW5cIDsKK+S6pOaPm+WsoiA+IGtvdWthbmpvdVwgOwor5aSn6YGT6Iq4ID4gZGFpZG91Z2VpXCA7CivlgZzmraLnt5ogPiB0ZWlzaGlzZW5cIDsKK+WLieW8t+WutiA+IGJlbmt5b3VrYVwgOwor5rWq5ryr55qEID4gcm9tYW50ZWtpXCA7Civli6fkuJbnuJIgPiBrYW56ZXlvcmlcIDsKK+eruee0sOW3pSA+IHRha2V6YWlrdVwgOwor55Sj5Y215Y+jID4gc2FucmFua291XCA7CivmhJ/li5XoqZ4gPiBrYW5kb3VzaGlcIDsKK+awtOWcp+apnyA+IHN1aWF0c3VraVwgOwor6Z+z5qW956WtID4gb25nYWt1c2FpXCA7Civkurrmg4XmnKwgPiBuaW5qb3Vib25cIDsKK+eah+mciuauvyA+IGtvdXJlaWRlblwgOwor5L2/5ZG96ICFID4gc2hpbWVpc2hhXCA7Civku6PnlKjlk4EgPiBkYWl5b3VoaW5cIDsKK+iRieiPnOmhniA+IHlvdXNhaXJ1aVwgOwor5YaZ55yf5qmfID4gc2hhc2hpbmtpXCA7CivnlLfkvIrpgZQgPiBvdG9rb2RhdGVcIDsKK+WFteermee3miA+IGhlaXRhbnNlblwgOwor5biv6Zu75L2TID4gdGFpZGVudGFpXCA7CivmlofljJbnmoQgPiBidW5rYXRla2lcIDsKK+acqueZuuihqCA+IG1paGFwcHlvdVwgOwor5YWI5L2P5rCRID4gc2VuanV1bWluXCA7CivpgJTkuIrlm70gPiB0b2pvdWtva3VcIDsKK+WNiumfs+majiA+IGhhbicnb25rYWlcIDsKK+eZveacqOWxiyA+IHNoaXJva2l5YVwgOwor5LuV5qeY5pu4ID4gc2hpeW91c2hvXCA7CivmsJHkuovnmoQgPiBtaW5qaXRla2lcIDsKK+aIkOWxpOWcjyA+IHNlaXNvdWtlblwgOwor6JK45rCX5ZynID4gam91a2lhdHN1XCA7CivkuKHmm7/miYAgPiByeW91Z2Flam9cIDsKK+W+jOWNiuaIpiA+IGtvdWhhbnNlblwgOwor5bm95a+C5ZGzID4geXV1amFrdW1pXCA7CivluJ3njovlraYgPiB0ZWlvdWdha3VcIDsKK+iyr+awtOaxoCA+IGNob3N1aWNoaVwgOwor5paw5LiW55WMID4gc2hpbnNla2FpXCA7Civlkb3ku6Tms5UgPiBtZWlyZWlob3VcIDsKK+ePvuWDj+a2siA+IGdlbnpvdWVraVwgOwor6Kaz6Kan6LuKID4ga2FucmFuc2hhXCA7CivkvJrnpL7okawgPiBrYWlzaGFzb3VcIDsKK+emgemFkuazlSA+IGtpbnNodWhvdVwgOwor6ISz6Iac54KOID4gbm91bWFrdWVuXCA7CivkupTlpKflt54gPiBnb2RhaXNodXVcIDsKK+aWh+mDqOecgSA+IG1vbmJ1c2hvdVwgOwor6LuN5LqL6YCaID4gZ3Vuaml0c3V1XCA7CivohLPohavnmI0gPiBub3VzaHV5b3VcIDsKK+S4lueVjOS4gCA+IHNla2FpaWNoaVwgOwor5YaN5YiG6YWNID4gc2FpYnVucGFpXCA7CivmjpvluIPlm6MgPiBrYWtlYnV0b25cIDsKK+Wklua0i+iIuSA+IGdhaXlvdXNlblwgOwor57WE6IG35ZuzID4gc29zaG9rdXp1XCA7CivkuqTmj5vlk4EgPiBrb3VrYW5oaW5cIDsKK+eBq+mjn+mzpSA+IGhpa3VpZG9yaVwgOwor6LKv5rC05qe9ID4gY2hvc3Vpc291XCA7CivmtbfmsLTprZogPiBrYWlzdWlneW9cIDsKK+eyvumAsuaXpSA+IHNob3VqaW5iaVwgOwor5LiJ6Imy5peXID4gc2Fuc2hva2tpXCA7CivpgIPkuqHogIUgPiB0b3Vib3VzaGFcIDsKK+mBk+WFt+eusSA+IGRvdWd1YmFrb1wgOwor5Ye65bu35pelID4gc2h1dHRlaWJpXCA7CivnlLvlrabntJkgPiBnYWdha3VzaGlcIDsKK+iyr+iUteaJgCA+IGNob3pvdXNob1wgOwor5p2x5rW36YGTID4gdG91a2FpZG91XCA7CivkuqTmj5vlj7AgPiBrb3VrYW5kYWlcIDsKK+aIpuaZguS4rSA+IHNlbmppY2h1dVwgOwor5re35YiG5pWwID4ga29uYnVuc3V1XCA7CivnlJ/nn7PngbAgPiBzZWlzZWtrYWlcIDsKK+S4jeaknOadnyA+IGZ1a2Vuc29rdVwgOwor5bCP5p2+6I+cID4ga29tYXRzdW5hXCA7CivoiJ/lpKflt6UgPiBmdW5hZGFpa3VcIDsKK+i0iOWRiOiAhSA+IHpvdXRlaXNoYVwgOwor6aGe5qaC5b+1ID4gcnVpZ2FpbmVuXCA7Civku7vlpKnloIIgPiBuaW50ZW5kb3VcIDsKK+WNl+aWueeUoyA+IG5hbnBvdXNhblwgOwor57WQ57SN6YeRID4geXVpbm91a2luXCA7CivlpKrliIDnrYsgPiB0YWNoaXN1amlcIDsKK+eGn+Wtl+iokyA+IGp1a3VqaWt1blwgOwor5aOw5piO5pu4ID4gc2VpbWVpc2hvXCA7CivllY/poYzngrkgPiBtb25kYWl0ZW5cIDsKK+WIhuW3peWgtCA+IGJ1bmtvdWpvdVwgOwor5a6a5bm05Yi2ID4gdGVpbmVuc2VpXCA7CivlnLDlhYPntJkgPiBqaW1vdG9zaGlcIDsKK+mgkOiol+mHkSA+IHlvdGFrdWtpblwgOwor6Ziy56m656CyID4gYm91a3V1aG91XCA7CivpnZnlnKfmr5QgPiBzZWlhdHN1aGlcIDsKK+Wbnumhp+mMsiA+IGthaWtvcm9rdVwgOwor5Lih5pu/5bGLID4gcnlvdWdhZXlhXCA7CivkurrmsJfogIUgPiBuaW5raW1vbm9cIDsKK+S4jeiJr+WTgSA+IGZ1cnlvdWhpblwgOwor5bCP5L6/5omAID4gc2hvdWJlbmpvXCA7CivlvqrnkrDmgKcgPiBqdW5rYW5zZWlcIDsKK+WVhueUqOWMliA+IHNob3V5b3VrYVwgOwor5Lqk5o+b5YaGID4ga291a2FuJydlblwgOwor6Kmm6aiT5rOVID4gc2hpa2VuaG91XCA7CivlrablnJLnpa0gPiBnYWt1ZW5zYWlcIDsKK+aEn+atjuipniA+IGthbnRhbnNoaVwgOwor56ys5YWt5oSfID4gZGFpcm9ra2FuXCA7CivosqfmsJHooZcgPiBoaW5taW5nYWlcIDsKK+WRveS7pOabuCA+IG1laXJlaXNob1wgOwor5Y2K5bCO5L2TID4gaGFuZG91dGFpXCA7CivlhbXlmajlu6AgPiBoZWlraXNob3VcIDsKK+ijgeWIpOS4iiA+IHNhaWJhbmpvdVwgOwor5aOy5pil5ammID4gYmFpc2h1bnB1XCA7CivkuIvlhYvkuIogPiBnZWtva3Vqb3VcIDsKK+mFjembu+aJgCA+IGhhaWRlbnNob1wgOwor56S+5Lqk55WMID4gc2hha291a2FpXCA7CivlhKrli53ml5cgPiB5dXVzaG91a2lcIDsKK+aJi+WTgeW4qyA+IHRlamluYXNoaVwgOwor6auE6Iac54KOID4genVpbWFrdWVuXCA7Civpm6jmlK/luqYgPiBhbWFqaXRha3VcIDsKK+S/rumBk+mZoiA+IHNodXVkb3VpblwgOwor5rW36JuH5bqnID4gdW1paGViaXphXCA7Civlkb3ku6TmlocgPiBtZWlyZWlidW5cIDsKK+adsea0i+miqCA+IHRvdXlvdWZ1dVwgOwor5byf5oGv5a2QID4gb3RvbXVzdWtvXCA7CivkupTlpKflm70gPiBnb2RhaWtva3VcIDsKK+aOpemqqOWMuyA+IHNla2tvdHN1aVwgOwor5pyb6YGg6Y+hID4gYm91ZW5reW91XCA7CivmooXpm6jnqbogPiB0c3V5dXpvcmFcIDsKK+W3peWToeWvriA+IGtvdWlucnlvdVwgOwor54Sh6YGK55eFID4gbXV5dXVieW91XCA7Civlm73pmpvljJYgPiBrb2t1c2Fpa2FcIDsKK+mpmueVsOeahCA+IGt5b3VpdGVraVwgOwor6Zai5p2x5byBID4ga2FudG91YmVuXCA7CivopIflkIjoqp4gPiBmdWt1Z291Z29cIDsKK+W8mOa4iOS8miA+IGtvdXNhaWthaVwgOwor6Iez6L+R5by+ID4gc2hpa2luZGFuXCA7CivmnKzlubTluqYgPiBob24nJ25lbmRvXCA7CivmlZHorbfmiYAgPiBreXV1Z29zaG9cIDsKK+WRkeawl+iAhSA+IG5vbmtpbW9ub1wgOwor5bCP5L2c5qipID4ga29zYWt1a2VuXCA7Civku6PnkIbmr40gPiBkYWlyaWhhaGFcIDsKK+WIhueVjOe3miA+IGJ1bmthaXNlblwgOwor56uv5aKD5pyfID4gaGF6YWthaWtpXCA7CivliY3jgIXlm54gPiB6ZW56ZW5rYWlcIDsKK+iqnua6kOWtpiA+IGdvZ2VuZ2FrdVwgOwor5b+D6Zu75ZuzID4gc2hpbmRlbnp1XCA7CivlgaXlurflnLAgPiBrZW5rb3VjaGlcIDsKK+awj+WtkOacrSA+IHVqaWtvZnVkYVwgOwor6Ku45ZWP6aGMID4gc2hvbW9uZGFpXCA7Civlj6PllIfmnJ8gPiBrb3VzaGlua2lcIDsKK+Wwhuaji+ebpCA+IHNob3VnaWJhblwgOwor542F5a2Q5ZSQID4gc2hpc2hpdG91XCA7CivlubPkv6HlvpIgPiBoZWlzaGludG9cIDsKK+Wkp+awl+WcpyA+IHRhaWtpYXRzdVwgOwor5bCG6LuN5a62ID4gc2hvdWd1bmtlXCA7CivljYPku6PntJkgPiBjaGl5b2dhbWlcIDsKK+S4u+aIpuirliA+IHNodXNlbnJvblwgOwor5Yqj562J55SfID4gcmV0dG91c2VpXCA7CivmlrDlrZfkvZMgPiBzaGluaml0YWlcIDsKK+e0jeWTgeabuCA+IG5vdWhpbnNob1wgOwor55qH5aSq5a2QID4ga291dGFpc2hpXCA7CivpqJLmk77nvaogPiBzb3Vqb3V6YWlcIDsKK+WNiuWumOWgsSA+IGhhbmthbnBvdVwgOwor5ZCM5Ly06ICFID4gZG91aGFuc2hhXCA7CivmtbfpvKDmnb8gPiBuYW1ha29iYW5cIDsKK+WHhuWjq+WumCA+IGp1bnNoaWthblwgOwor5a6f6aiT6ICFID4gamlra2Vuc2hhXCA7Civku6PnkIbmpa0gPiBkYWlyaWd5b3VcIDsKK+S4gOasoeWFgyA+IGljaGlqaWdlblwgOwor55So55uK5qipID4geW91ZWtpa2VuXCA7CivkuIrohZXnrYsgPiBqb3V3YW5raW5cIDsKK+WPguaUv+aoqSA+IHNhbnNlaWtlblwgOwor5beh56S86ICFID4ganVucmVpc2hhXCA7Civlrp/pqJPnvqQgPiBqaWtrZW5ndW5cIDsKK+epuuaZr+awlyA+IGthcmFnZWlraVwgOwor5YaZ55yf5a62ID4gc2hhc2hpbmthXCA7Civou4rmpIXlrZAgPiBrdXJ1bWFpc3VcIDsKK+aPruavq+aWmSA+IGtpZ291cnlvdVwgOwor6K2m5ZGK6Z+zID4ga2Vpa29rdW9uXCA7CivmlZnmjojpmaMgPiBreW91anVqaW5cIDsKK+WIneS4g+aXpSA+IHNob25hbm9rYVwgOwor5a6J5b+D5oSfID4gYW5zaGlua2FuXCA7CivlpKflhaXpgZMgPiBvb255dXVkb3VcIDsKK+ekvuS8muaCqiA+IHNoYWthaWFrdVwgOwor5Li76KO95ZOBID4gc2h1c2VpaGluXCA7CivnhKHmsJflipsgPiBtdWtpcnlva3VcIDsKK+ekvuS8muaApyA+IHNoYWthaXNlaVwgOwor6ISx6ISC57a/ID4gZGFzc2hpbWVuXCA7CivmsJfosaHlj7AgPiBraXNob3VkYWlcIDsKK+WRveS7pOW9oiA+IG1laXJlaWtlaVwgOwor6KuW55CG5a2mID4gcm9ucmlnYWt1XCA7Civlrp/kvZPoq5YgPiBqaXR0YWlyb25cIDsKK+Wwj+S8mua0viA+IHNob3VrYWloYVwgOwor5ZCM5YCk5oCnID4gZG91Y2hpc2VpXCA7CivphbjmgKflsqkgPiBzYW5zZWlnYW5cIDsKK+S4i+i2s+eVqiA+IGdlc29rdWJhblwgOwor5pal5YCZ5YW1ID4gc2Vra291aGVpXCA7Civlpb3lvbHpn78gPiBrb3VlaWt5b3VcIDsKK+mCr+mEsuW4qyA+IGthbnRhbnNoaVwgOwor55Sf5YyW5a2mID4gc2Vpa2FnYWt1XCA7CivoqabkuZfou4ogPiBzaGlqb3VzaGFcIDsKK+ims+imp+iAhSA+IGthbnJhbnNoYVwgOwor5aWJ6LOA5bizID4gaG91Z2FjaG91XCA7CivlnKfliLbnmoQgPiBhc3NlaXRla2lcIDsKK+eCremFuOe0mSA+IHRhbnNhbnNoaVwgOwor5YaN5b6T5byfID4gc2FpanV1dGVpXCA7CivkvZnoqIjogIUgPiB5b2tlaW1vbm9cIDsKK+S4jeWvneeVqiA+IGZ1c2hpbmJhblwgOwor55CG5bGI5bGLID4gcmlrdXRzdXlhXCA7Civkv53nrqHkurogPiBob2thbicnbmluXCA7CivlhKroia/ppqwgPiB5dXVyeW91YmFcIDsKK+mBi+i8uOmHjyA+IHVuJyd5dXJ5b3VcIDsKK+WkquW5s+a0iyA+IHRhaWhlaXlvdVwgOwor6LKv6JS15ZOBID4gY2hvem91aGluXCA7CivljZjns5bpoZ4gPiB0YW50b3VydWlcIDsKK+iBmualveesrCA+IGp1cmFrdWRhaVwgOwor55Sf5Y2K5Y+vID4gbmFtYWhhbmthXCA7CivljZTorbDmiYAgPiBreW91Z2lzaG9cIDsKK+S7iuW5tOW6piA+IGtvbicnbmVuZG9cIDsKK+WHhuaVmeWToSA+IGp1bmt5b3VpblwgOwor56S+5Lya5bGkID4gc2hha2Fpc291XCA7CivlgaXlurfkvZMgPiBrZW5rb3V0YWlcIDsKK+aAneaYpeacnyA+IHNoaXNodW5raVwgOwor5pS+5bCE5oCnID4gaG91c2hhc2VpXCA7CivomavlqpLoirEgPiBjaHV1YmFpa2FcIDsKK+WGmeecn+WZqCA+IHNoYXNoaW5raVwgOwor5YaF5ZCR5oCnID4gbmFpa291c2VpXCA7CivmlLnlrpfogIUgPiBrYWlzb3VzaGFcIDsKK+WEquW+heWIuCA+IHl1dXRhaWtlblwgOwor5Zub5Lq657WEID4geW9uaW5ndW1pXCA7CivpgIDlrLDnmoQgPiB0YWllaXRla2lcIDsKK+WWhOW+jOetliA+IHplbmdvc2FrdVwgOwor5Yqp5omL5bitID4gam9zaHVzZWtpXCA7CivngavmnKjph5EgPiBrYW1va3VraW5cIDsKK+awj+WtkOW4syA+IHVqaWtvY2hvdVwgOwor55qH5aSq5ZCOID4ga291dGFpZ291XCA7CivnibnmlLvpmoogPiB0b2trb3V0YWlcIDsKK+mBuuiogOiAhSA+IHl1aWdvbnNoYVwgOwor6YO35Zyf5Y+yID4ga3lvdWRvc2hpXCA7Civku5jlsZ7moKEgPiBmdXpva3Vrb3VcIDsKK+e1seayu+iAhSA+IHRvdWNoaXNoYVwgOwor5ZCN5Lq66Iq4ID4gbWVpamluZ2VpXCA7Civlh4Tmloflj6UgPiBzdWdvbW9ua3VcIDsKK+aIpueBveiAhSA+IHNlbnNhaXNoYVwgOwor6Kmm5L2c5qmfID4gc2hpc2FrdWtpXCA7Civpu4Tmnq/ojLYgPiBraWdhcmFjaGFcIDsKK+iDg+iFuOiWrCA+IGljaG91eWFrdVwgOwor6Zm96Zu75a2QID4geW91ZGVuc2hpXCA7Civmlofmrormp5ggPiBtb25qdXNhbWFcIDsKK+S7mOWxnuabuCA+IGZ1em9rdXNob1wgOwor6KiO6KuW6ICFID4gdG91cm9uc2hhXCA7CivlpJrmsZfnl4cgPiB0YWthbnNob3VcIDsKK+aKleaJi+mZoyA+IHRvdXNodWppblwgOwor5Lit57aZ5omAID4gY2h1dWtlaWpvXCA7CivmoLnmi6DlnLAgPiBrb25reW9jaGlcIDsKK+azleS6uueojiA+IGhvdWppbnplaVwgOwor5Zyw5YWD5rCRID4gamltb3RvbWluXCA7CivlubTmnJ/ogIUgPiBuZW5raW1vbm9cIDsKK+mfs+alveaApyA+IG9uZ2FrdXNlaVwgOwor6KKr5ZGK5Lq6ID4gaGlrb2t1bmluXCA7CivmlofljJbluoEgPiBidW5rYWNob3VcIDsKK+WBj+WQkeadvyA+IGhlbmtvdWJhblwgOwor6IOM5Lu7572qID4gaGFpbmluemFpXCA7Civlgo3oprPogIUgPiBib3VrYW5zaGFcIDsKK+aYn+eKtuS9kyA+IHNlaWpvdXRhaVwgOwor5raI5YyW5YmkID4gc2hvdWthemFpXCA7CivmrKflt57niYggPiBvdXNodXViYW5cIDsKK+Wwj+ixhueypSA+IGF6dWtpZ2F5dVwgOwor57O75Zuz5a2mID4ga2VpenVnYWt1XCA7CivoqabpqJPlrpggPiBzaGlrZW5rYW5cIDsKK+efs+aloOiKsSA+IHNoYWt1bmFnZVwgOwor5pu457Ch566LID4gc2hva2Fuc2VuXCA7Civlho3phY3liIYgPiBzYWloYWlidW5cIDsKK+WNlOitsOWumCA+IGt5b3VnaWthblwgOwor5ZCM6aGe6aCFID4gZG91cnVpa291XCA7Civoh6rou6Lou7ggPiBqaXRlbmppa3VcIDsKK+S4iueUsuadvyA+IGpvdWthbnBhblwgOwor5YWo5Zyw5pa5ID4gemVuY2hpaG91XCA7CivkvJrnpL7ms5UgPiBrYWlzaGFob3VcIDsKK+WlieS7leWTgSA+IGhvdXNoaWhpblwgOwor5oiq5ouz6YGTID4gc2Vra2VuZG91XCA7Civku5XoiJ7lsYsgPiBzaGltb3RheWFcIDsKK+aKmOiht+ahiCA+IHNldGNodXVhblwgOwor6Iiq56m66ZqKID4ga291a3V1dGFpXCA7Civonabon4flj6MgPiBnYW1hZ3VjaGlcIDsKK+emgeatouazlSA+IGtpbnNoaWhvdVwgOwor6YGT5YW35pa5ID4gZG91Z3VrYXRhXCA7Civml6bpgqPoirggPiBkYW4nJ25hZ2VpXCA7CivmibbppIrmlpkgPiBmdXlvdXJ5b3VcIDsKK+S4jeS/oeW/gyA+IGZ1c2hpbmppblwgOwor5bmz5a6J5pydID4gaGVpYW5jaG91XCA7CivlhoXph47luK0gPiBuYWl5YXNla2lcIDsKK+WboOaenOW+iyA+IGluZ2FyaXRzdVwgOwor6Lu95ryU5YqHID4ga2VpZW5nZWtpXCA7Civmnb/ph5Hlt6UgPiBiYW5raW5rb3VcIDsKK+WumuS+oeihqCA+IHRlaWthaHlvdVwgOwor56+k5b+X5a62ID4gdG9rdXNoaWthXCA7CivoqabpqJPloLQgPiBzaGlrZW5qb3VcIDsKK+aXheihjOiAhSA+IHJ5b2tvdXNoYVwgOwor5q2v6b2m54KOID4gc2hpZ2luJydlblwgOwor6Ju45Z2K5Li7ID4gdGFrb2JvdXp1XCA7Civlj4LmlL/lrpggPiBzYW5zZWlrYW5cIDsKK+i7jeS6i+eahCA+IGd1bmppdGVraVwgOwor5Y+k6Yqt5a2mID4ga29zZW5nYWt1XCA7Civou43lrpjmhrIgPiBndW5rYW5rZW5cIDsKK+mWouaVsOirliA+IGthbnN1dXJvblwgOwor5rK755mC6LK7ID4gY2hpcnlvdWhpXCA7Civmnb/ph5HlsYsgPiBiYW5raW4nJ3lhXCA7Civmk43ou4rloLQgPiBzb3VzaGFqb3VcIDsKK+aKleiejeizhyA+IHRvdXl1dXNoaVwgOwor6Z2p5ZG95q2MID4ga2FrdW1laWthXCA7CivnpL7kuqTmgKcgPiBzaGFrb3VzZWlcIDsKK+aTrOeIhuW8viA+IGdpYmFrdWRhblwgOwor56u56Jy76JuJID4gdGFrZXRvbmJvXCA7CivotoXlhZrmtL4gPiBjaG91dG91aGFcIDsKK+WVj+mhjOWkliA+IG1vbmRhaWdhaVwgOwor5LiA6Iis55qEID4gaXBwYW50ZWtpXCA7Civos4fmnKzph5EgPiBzaGlob25raW5cIDsKK+eUt+WtkOeUqCA+IGRhbnNoaXlvdVwgOwor5a++55Sf6JGJID4gdGFpc2VpeW91XCA7CivnpL7kvJrlhZogPiBzaGFrYWl0b3VcIDsKK+WOreS4lueahCA+IGVuc2VpdGVraVwgOwor6KiT57e055SfID4ga3VucmVuc2VpXCA7CivotIjlkYjmnKwgPiB6b3V0ZWlib25cIDsKK+WkoumBiueXhSA+IG11eXV1YnlvdVwgOwor5a625peP5rOVID4ga2F6b2t1aG91XCA7CivkurrmsJfmoKogPiBuaW5raWthYnVcIDsKK+iqreW+jOaEnyA+IGRva3Vnb2thblwgOwor5Y2Y57Sw6IOeID4gdGFuc2FpYm91XCA7Civps7Tnpr3poZ4gPiBtZWlraW5ydWlcIDsKK+WGhemDqOeahCA+IG5haWJ1dGVraVwgOwor57e05YW15aC0ID4gcmVucGVpam91XCA7CivlpKfliY3mj5AgPiBkYWl6ZW50ZWlcIDsKK+WGjeW+k+WFhCA+IHNhaWp1dWtlaVwgOwor5Y+v5YuV5qmLID4ga2Fkb3VreW91XCA7CivnlLvmnJ/nmoQgPiBrYWtraXRla2lcIDsKK+mfs+alveWggiA+IG9uZ2FrdWRvdVwgOwor6I2S6Zqg5YWDID4gc2F5YWluZ2VuXCA7CivmtJfnpLzlkI0gPiBzZW5yZWltZWlcIDsKK+ePvualreWToSA+IGdlbmd5b3VpblwgOwor5LiA5bel5aSrID4gaGl0b2t1ZnV1XCA7Civohp3lsI/lg6cgPiBoaXpha296b3VcIDsKK+S9nOipnuWutiA+IHNha3VzaGlrYVwgOwor5L2c54K655qEID4gc2FrdWl0ZWtpXCA7CivlsI/lroflrpkgPiBzaG91dWNodXVcIDsKK+miqOawtOWusyA+IGZ1dXN1aWdhaVwgOwor5Y2Y5pWw5b2iID4gdGFuc3V1a2VpXCA7CivmsLTmurbmtrIgPiBzdWl5b3Vla2lcIDsKK+Wkp+i7iui8qiA+IGRhaXNoYXJpblwgOwor5pS55a6a54mIID4ga2FpdGVpaGFuXCA7CivnpL7kvJrkurogPiBzaGFrYWlqaW5cIDsKK+aCquW9semfvyA+IGFrdWVpa3lvdVwgOwor6KW/6YOo5YqHID4gc2VpYnVnZWtpXCA7Civpm5HosqjllYYgPiB6YWtrYXNob3VcIDsKK+WKo+etieaEnyA+IHJldHRvdWthblwgOwor6YCP5piO5oCnID4gdG91bWVpc2VpXCA7Civoi6XlpKvlqaYgPiB3YWthZnV1ZnVcIDsKK+ePvuS7o+ipqSA+IGdlbmRhaXNoaVwgOwor6Zmw6Zm96YGTID4gb25teW91ZG91XCA7CivkvJHmhqnmiYAgPiBreXV1a2Vpam9cIDsKK+mFjee1puaJgCA+IGhhaWt5dXVqb1wgOwor6KOF6Lqr5YW3ID4gc291c2hpbmd1XCA7CivnhKHmrKDluK0gPiBtdWtlc3Nla2lcIDsKK+iHquWItuW/gyA+IGppc2Vpc2hpblwgOwor5Ymv5L2c55SoID4gZnVrdXNheW91XCA7Civlho3pgbjmjJkgPiBzYWlzZW5reW9cIDsKK+maoOWMv+iAhSA+IGludG9rdXNoYVwgOwor5ZCM5Lq656iuID4gZG91amluc2h1XCA7CivpgYvpgIHmpa0gPiB1bnNvdWd5b3VcIDsKK+WGheWLmeecgSA+IG5haW11c2hvdVwgOwor54Kt6YW45rC0ID4gdGFuc2Fuc3VpXCA7Civli6TnjovlrrYgPiBraW4nJ25vdWthXCA7CivooZvnlJ/nmoQgPiBlaXNlaXRla2lcIDsKK+ertuaKgOiAhSA+IGt5b3VnaXNoYVwgOwor5YaN55m66KGMID4gc2FpaGFra291XCA7CivpgbroqIDnirYgPiB5dWlnb25qb3VcIDsKK+eCueecvOawtCA+IHRlbmdhbnN1aVwgOwor6Lu95ZCI6YeRID4ga2VpZ291a2luXCA7CivkuIDnmbrlsYsgPiBpcHBhdHN1eWFcIDsKK+WFqOijveWTgSA+IHplbnNlaWhpblwgOwor5b+c5Y+s6ICFID4gb3VzaG91c2hhXCA7Civlj6TljbDntJkgPiBmdXJ1aW5zaGlcIDsKK+izh+acrOiyoSA+IHNoaWhvbnphaVwgOwor5Zue6aGn55qEID4ga2Fpa290ZWtpXCA7CivkuozopqrnrYkgPiBuaXNoaW50b3VcIDsKK+S6pOaIpuaoqSA+IGtvdXNlbmtlblwgOwor5bqD5aCx6KqMID4ga291aG91c2hpXCA7CivkvovlubTnpa0gPiByZWluZW5zYWlcIDsKK+S6iOmYsuiWrCA+IHlvYm91eWFrdVwgOwor5ZKM5aOw5a2mID4gd2FzZWlnYWt1XCA7Civpn7Pmpb3lj7IgPiBvbmdha3VzaGlcIDsKK+iQjue4ruiFjiA+IGlzaHVrdWppblwgOwor55uX6IG05ZmoID4gdG91Y2hvdWtpXCA7CivkuojntITph5EgPiB5b3lha3VraW5cIDsKK+aYpeWgtOaJgCA+IGhhcnViYXNob1wgOwor56ef5bq46Kq/ID4gc295b3VjaG91XCA7Civljp/lrZDoq5YgPiBnZW5zaGlyb25cIDsKK+eEoeapn+eJqSA+IG11a2lidXRzdVwgOwor5rG66K2w5qGIID4ga2V0c3VnaWFuXCA7CivlibXkvZzlrrYgPiBzb3VzYWt1a2FcIDsKK+eIm+eGn+acnyA+IHJhbmp1a3VraVwgOwor5Lit6ZaT5rS+ID4gY2h1dWthbmhhXCA7Civph4znqIvmqJkgPiByaXRlaWh5b3VcIDsKK+izh+acrOirliA+IHNoaWhvbnJvblwgOwor5LuK5qeY5q2MID4gaW1heW91dXRhXCA7CivkvJrmtKXloZcgPiBhaWR6dW51cmlcIDsKK+S4uOWdiuS4uyA+IG1hcnVib3V6dVwgOwor56e75qSN5oCnID4gaXNob2t1c2VpXCA7CivliY3lvoznrZYgPiB6ZW5nb3Nha3VcIDsKK+WIpeWkqeWcsCA+IGJldHRlbmNoaVwgOwor5Y2U6K2w5LyaID4ga3lvdWdpa2FpXCA7CivpmLLnqbrlo5UgPiBib3VrdXVnb3VcIDsKK+mBi+mAgeaWmSA+IHVuc291cnlvdVwgOwor5bm96ZyK6Ii5ID4geXV1cmVpc2VuXCA7CivkvK/lgpnnt5ogPiBoYWt1YmlzZW5cIDsKK+iDg+iFuOeXhSA+IGljaG91YnlvdVwgOwor5ZGK56S65p2/ID4ga29rdWppYmFuXCA7CivlsI/kvZzkurogPiBrb3Nha3VuaW5cIDsKK+mboumWk+etliA+IHJpa2Fuc2FrdVwgOwor5rCR5pWw6KiYID4gbWluc3V1a2lcIDsKK+mJhOegsuW6pyA+IHRlcHBvdXphXCA7CivmlofljJbkurogPiBidW5rYWppblwgOwor5pyo5bel5omAID4gbW9ra291am9cIDsKK+S4gOiIrOazlSA+IGlwcGFuaG91XCA7CivlirTli5nogIUgPiByb3VtdXNoYVwgOwor5paH5bqr5pysID4gYnVua29ib25cIDsKK+S7o+eQhuS6uiA+IGRhaXJpbmluXCA7CivmtbfmsLTnnYAgPiBrYWlzdWlnaVwgOwor6Ieq5bex5rWBID4gamlrb3J5dXVcIDsKK+S4geWvp+iqniA+IHRlaW5laWdvXCA7Civpn7Pmpb3kvJogPiBvbmdha2thaVwgOwor5ZCM6IOe5oSbID4gZG91aG91YWlcIDsKK+avm+WUkOS6uiA+IGtldG91amluXCA7CivmsJHkuovkuIogPiBtaW5qaWpvdVwgOwor5reh5b2p55S7ID4gdGFuc2FpZ2FcIDsKK+acn+W+heWApCA+IGtpdGFpY2hpXCA7Civlhajoo7jkvZMgPiB6ZW5yYXRhaVwgOwor56uL5L2T5rS+ID4gcml0dGFpaGFcIDsKK+itt+mAgeiIuSA+IGdvc291c2VuXCA7Civph47om67kurogPiB5YWJhbmppblwgOwor5aWz5oCn6LuNID4gam9zZWlndW5cIDsKK+WQjOi2o+WRsyA+IGRvdXNodW1pXCA7Civlj6/li5XmgKcgPiBrYWRvdXNlaVwgOwor5LiN6aSK55SfID4gZnV5b3Vqb3VcIDsKK+mjveWSjOeCuSA+IGhvdXdhdGVuXCA7Civml6LlvoDnl4cgPiBraW91c2hvdVwgOwor5LiA6Ie054K5ID4gaXRjaGl0ZW5cIDsKK+ethuiomOiAhSA+IGhpa2tpc2hhXCA7CivpgIHpoqjmqZ8gPiBzb3VmdXVraVwgOwor5aer5b6h5a2QID4gaGltZW1pa29cIDsKK+aJi+mFjeabuCA+IHRlaGFpc2hvXCA7CivohLPnj4rnkZogPiBub3VzYW5nb1wgOwor5LiK5bGk5ZyfID4gam91c291ZG9cIDsKK+S6iOe0hOiqniA+IHlveWFrdWdvXCA7Civmsrnmp73oiLkgPiB5dXNvdXNlblwgOwor5LiA5a+46KaLID4gY2hvdHRvbWlcIDsKK+S6iOmYsue3miA+IHlvYm91c2VuXCA7Civli5jlrprml6UgPiBrYW5qb3ViaVwgOwor5YaF5biR6YeRID4gbmFpZG9raW5cIDsKK+S8nemAgei3ryA+IGRlbnNvdXJvXCA7CivpioDntLDlt6UgPiBnaW56YWlrdVwgOwor5Lq655u46KaLID4gbmluc291bWlcIDsKK+miqOWIuueUuyA+IGZ1dXNoaWdhXCA7CivljYjppJDkvJogPiBnb3NhbmthaVwgOwor54Sh5qyg5YukID4gbXVrZWtraW5cIDsKK+avlOmHjeioiCA+IGhpanV1a2VpXCA7CivpgYvpgIHlupcgPiB1bnNvdXRlblwgOwor5pON5L2c55ukID4gc291c2FiYW5cIDsKK+WcqOW6q+WTgSA+IHphaWtvaGluXCA7CivmsJHkuLvljJYgPiBtaW5zaHVrYVwgOwor5bu25rue6YeRID4gZW50YWlraW5cIDsKK+WUkOegtOmiqCA+IGthcmFoYWZ1XCA7Civoh6rlhazmsJEgPiBqaWtvdW1pblwgOwor6LOi5aSr5Lq6ID4ga2VucHVqaW5cIDsKK+mBi+i7ouiAhSA+IHVudGVuc2hhXCA7CivkuI3moLzlpb0gPiBidWtha2tvdVwgOwor5YKs5rer5YmkID4gc2FpaW56YWlcIDsKK+aghOmkiuefrSA+IGVpeW91dGFuXCA7CivljLvlrabnlYwgPiBpZ2FrdWthaVwgOwor54Sh5bi45oSfID4gbXVqb3VrYW5cIDsKK+iDjOagvOWlvSA+IHNla2Fra291XCA7CivlsbHmn7vlrZAgPiBzYW56YXNoaVwgOwor5Yy75a2m55SfID4gaWdha3VzZWlcIDsKK+mWi+alreWMuyA+IGthaWd5b3VpXCA7Civkvr/ooaPpmoogPiBiZW4nJ2l0YWlcIDsKK+W5ueS6i+S8miA+IGthbmppa2FpXCA7CivlpJrljp/lrZAgPiB0YWdlbnNoaVwgOwor5Y2B5a2X5b2iID4ganV1amlrZWlcIDsKK+WklumHjuaJiyA+IGdhaXlhc2h1XCA7CivlgaXog4PpjKAgPiBrZW4nJ2lqb3VcIDsKK+mWouilv+mmrCA+IGthbnNhaWJhXCA7CivmjIfnpLroqZ4gPiBzaGlqaXNoaVwgOwor5piO5pel6JGJID4gYXNoaXRhYmFcIDsKK+efrei3nemboiA+IHRhbmt5b3JpXCA7CivkuIDou5LlsYsgPiBpa2tlbicneWFcIDsKK+iKuOWCmee3miA+IGdlaWJpc2VuXCA7CivpmaPlpKrpvJMgPiBqaW5kYWlrb1wgOwor55yf5Yas5pelID4gbWFmdXl1YmlcIDsKK+Wbm+Wto+WgsSA+IHNoaWtpaG91XCA7CivkuIDou5LlrrYgPiBpa2tlbicneWFcIDsKK+e5geiPr+ihlyA+IGhhbmthZ2FpXCA7CivoqJPnt7TmiYAgPiBrdW5yZW5qb1wgOwor5rW35rC05ripID4ga2Fpc3Vpb25cIDsKK+eti+mbu+WbsyA+IGtpbmRlbnp1XCA7Civms4zlsL/lub4gPiBoaW55b3VraVwgOwor5LiN5a6J5b+DID4gZnVhbnNoaW5cIDsKK+ioquWVj+edgCA+IGhvdW1vbmdpXCA7CivkvJrnpL7lk6EgPiBrYWlzaGFpblwgOwor5rOV546L5qipID4gaG91b3VrZW5cIDsKK+S4jeWwjuS9kyA+IGZ1ZG91dGFpXCA7CivljZjoqablkIggPiB0YW5zaGlhaVwgOwor5YaZ55Sf55S7ID4gc2hhc2VpZ2FcIDsKK+euoeeQhuS6uiA+IGthbnJpbmluXCA7CivkuIDlrrboqIAgPiBpa2thZ290b1wgOwor5ZCM5pyf55SfID4gZG91a2lzZWlcIDsKK+S4geWumuimjyA+IHRlaWpvdWdpXCA7CivlrojlgpnpmoogPiBzaHViaXRhaVwgOwor5L215ZCI572qID4gaGVpZ296YWlcIDsKK+awl+eEoeeyviA+IGtpYnVzaG91XCA7CivkuInmnprnm64gPiBzYW5tYWltZVwgOwor5omL6YWN5birID4gdGVoYWlzaGlcIDsKK+eEoeiHquimmiA+IG11amlrYWt1XCA7Civngavkuovms6UgPiBrYWppZG9yb1wgOwor5Lq65bel6KqeID4gamlua291Z29cIDsKK+aXouW+gOattCA+IGtpb3VyZWtpXCA7CivkuIDoiKzmgKcgPiBpcHBhbnNlaVwgOwor5bm05pyI5pelID4gbmVuZ2FwcGlcIDsKK+WkieaIkOWZqCA+IGhlbnNlaWtpXCA7CivmnKrkv6HogIUgPiBtaXNoaW5qYVwgOwor5LiN5qGI5YaFID4gZnVhbicnbmFpXCA7Civoh6rmo4TphZIgPiB5YWtlemFrZVwgOwor5aGR5by+5oCnID4gc29kYW5zZWlcIDsKK+atpuWZqOWAiSA+IGJ1a2lndXJhXCA7CivogbTpn7PlmaggPiBjaG91b25raVwgOwor5bmz5Luu5ZCNID4gaGlyYWdhbmFcIDsKK+aEn+efpeWZqCA+IGthbmNoaWtpXCA7CivliY3ljYrmnJ8gPiB6ZW5wYW5raVwgOwor56m66KuW5a62ID4ga3V1cm9ua2FcIDsKK+i+sumWkeacnyA+IG5vdWthbmtpXCA7CivkuI3os5vmiJAgPiBmdXNhbnNlaVwgOwor6aSK6baP5a62ID4geW91a2Vpa2FcIDsKK+WNgeS6jOaUryA+IGp1dW5pc2hpXCA7Civmp4vmiJDmr5QgPiBrb3VzZWloaVwgOwor5ZCR5pel6JG1ID4gaGltYXdhcmlcIDsKK+apn+alreWutiA+IGtpZ3lvdWthXCA7CivmsLTmu7jkvJ0gPiBzdWlrb2RlblwgOwor5b6h5ayi5qeYID4gb2pvdXNhbWFcIDsKK+iHqOW6iuWMuyA+IHJpbnNob3VpXCA7CivmoITppIrmupAgPiBlaXlvdWdlblwgOwor5aSa5bm06I2JID4gdGFuZW5zb3VcIDsKK+iNt+WOhOS7iyA+IG5peWFra2FpXCA7CivlirHno4HmkI0gPiByZWlqaXNvblwgOwor5a6J5YWo55OjID4gYW56ZW5iZW5cIDsKK+mHjemFuOe0oCA+IGp1dXNhbnNvXCA7CivkuozloYHmiYsgPiBuaXJ1aXNodVwgOwor5pyo5bel5YW3ID4gbW9ra291Z3VcIDsKK+eCueecvOWZqCA+IHRlbmdhbmtpXCA7CivojqvlpKflsI8gPiBtZXJpeWFzdVwgOwor6KO96Yu85omAID4gc2Vpa291am9cIDsKK+maoOiUveWtkCA+IGlucGVpc2hpXCA7Civli5jlrprloLQgPiBrYW5qb3ViYVwgOwor57695Zuj5omHID4gaGF1Y2hpd2FcIDsKK+egtOaIkuWDpyA+IGhha2Fpc291XCA7CivngKzmiLjniakgPiBzZXRvbW9ub1wgOwor5aSn6Iux5patID4gZGFpZWlkYW5cIDsKK+azjOWwv+WZqCA+IGhpbnlvdWtpXCA7CivlhYjorbDmqKkgPiBzZW5naWtlblwgOwor5Y+N5oqX5pyfID4gaGFua291a2lcIDsKK+acrOS8muitsCA+IGhvbmthaWdpXCA7Civoi7HnsbPkurogPiBlaWJlaWppblwgOwor5L2O6aCG5L2NID4gdGVpanVuJydpXCA7CivkuI3ogIHms4kgPiBmdXJvdXNlblwgOwor5ZCN5a6b5Lq6ID4gbmFhdGVuaW5cIDsKK+iHqueUseipqSA+IGppeXV1c2hpXCA7CivmhI/lv5fnmoQgPiBpc2hpdGVraVwgOwor5oim6ZeY5ZOhID4gc2VudG91aW5cIDsKK+WOn+eUu+WDjyA+IGdlbmdhem91XCA7CivlpKfohb/pg6ggPiBkYWl0YWlidVwgOwor5ruL6LOA55yMID4gc2hpZ2FrZW5cIDsKK+mHjeawtOe0oCA+IGp1dXN1aXNvXCA7CivkurrpgKDmuZYgPiBqaW56b3Vrb1wgOwor6KuL6LKg5birID4gdWtlb2lzaGlcIDsKK+awtOa6luWZqCA+IHN1aWp1bmtpXCA7CivmvKvnlLvmnKwgPiBtYW5nYWhvblwgOwor5LqS5o+b5oCnID4gZ29rYW5zZWlcIDsKK+eorueoruebuCA+IHNodWp1c291XCA7CivkuojpmLLms5UgPiB5b2JvdWhvdVwgOwor5a6J5YWo54GvID4gYW56ZW50b3VcIDsKK+mBi+mAgeS6uiA+IHVuc291bmluXCA7CivkuIrpppblsL4gPiBqb3VzaHViaVwgOwor5LuP6IiO5YipID4gYnVzc2hhcmlcIDsKK+iIh+WkquiAhSA+IHlvdGFtb25vXCA7CivmuoDlpKnkuIsgPiBtYW50ZW5rYVwgOwor5L6h5qC85beuID4ga2FrYWt1c2FcIDsKK+eEoeiKseaenCA+IGljaGlqaWt1XCA7CivkuI3kurrmg4UgPiBmdW5pbmpvdVwgOwor5Zyf5bu65bGLID4gZG9rZW4nJ3lhXCA7Civpga7mlq3mqZ8gPiBzaGFkYW5raVwgOwor5Lmx5p2t5q2vID4gcmFuZ3VpYmFcIDsKK+idi+e0sOW3pSA+IHJvdXphaWt1XCA7Civns5zniJvmgKcgPiBiaXJhbnNlaVwgOwor6LK05YWs5a2QID4ga2lrb3VzaGlcIDsKK+W7ieS+oeeJiCA+IHJlbmthYmFuXCA7Civljp/lrZDngokgPiBnZW5zaGlyb1wgOwor6Lui5o+b54KJID4gdGVua2Fucm9cIDsKK+m7juaYjuacnyA+IHJlaW1laWtpXCA7Civoj5bokrLmua8gPiBzaG91YnV5dVwgOwor54Sh6aeE6aqoID4gbXVkYWJvbmVcIDsKK+mhnuS8vOWTgSA+IHJ1aWppaGluXCA7Civpo5vooYzpmoogPiBoaWtvdXRhaVwgOwor6YeR6bOz6IqxID4ga2lucG91Z2VcIDsKK+m7kumbsuavjSA+IGt1cm91bm1vXCA7Civnm7jmiYvmlrkgPiBhaXRlZ2F0YVwgOwor5LiN5a6M5YWoID4gZnVrYW56ZW5cIDsKK+elluWbveaEmyA+IHNva29rdWFpXCA7Civli5/pm4bosrsgPiBib3NodXVoaVwgOwor55Sf55Sj6LK7ID4gc2Vpc2FuaGlcIDsKK+e1seWQiOWMliA+IHRvdWdvdWthXCA7Civml4XooYzlrrYgPiByeW9rb3VrYVwgOwor56S+5aSW56eYID4gc2hhZ2FpaGlcIDsKK+W+k+S+oeeojiA+IGp1dWthemVpXCA7Civkvb/lvpLmm7ggPiBzaGl0b3Nob1wgOwor5a+d5YyW57KnID4gbmVnZXNob3VcIDsKK+WJteS4luacnyA+IHNvdXNlaWtpXCA7Civph5Hnm67pr5sgPiBraW5tZWRhaVwgOwor5LiK5LiL57eaID4gam91Z2VzZW5cIDsKK+eQhuS6i+WbvSA+IHJpamlrb2t1XCA7CivmsLTmupblhIAgPiBzdWlqdW5naVwgOwor5YaN5L+d6Zm6ID4gc2FpaG9rZW5cIDsKK+S4i+mmrOWFiCA+IGdlYmFzYWtpXCA7Civms4nosqjntJkgPiBzZW5rYXNoaVwgOwor5b6h5Luk5ayiID4gZ29yZWlqb3VcIDsKK+mbu+awl+ihlyA+IGRlbmtpZ2FpXCA7Civou43mlL/pg6ggPiBndW5zZWlidVwgOwor5b6h6aGM55uuID4gb2RhaW1va3VcIDsKK+eEoeS/neiovCA+IG11aG9zaG91XCA7Civlj6/liIbmgKcgPiBrYWJ1bnNlaVwgOwor5Lqc6Ymb6YmEID4gYWVudGV0c3VcIDsKK+WLleWuieWumiA+IGRvdWFudGVpXCA7CivliJHkuovkuIogPiBrZWlqaWpvdVwgOwor5aWz5oCn55SoID4gam9zZWl5b3VcIDsKK+S5vueHpeeCiSA+IGthbnNvdXJvXCA7CivogrLlhZDms5UgPiBpa3VqaWhvdVwgOwor5oSb6bOl5a62ID4gYWljaG91a2FcIDsKK+acrOiInuWPsCA+IGhvbmJ1dGFpXCA7CivlgIvkurrmgKcgPiBrb2ppbnNlaVwgOwor5L6d5a2Y55eHID4gaXpvbnNob3VcIDsKK+aCquaAp+W6piA+IGFrdXNlaWRvXCA7Civnvo7nlLflrZAgPiBiaW5hbnNoaVwgOwor6Zu75rOi5rOVID4gZGVucGFob3VcIDsKK+i7jeS6i+S4iiA+IGd1bmppam91XCA7Civng4/nioDop5IgPiB1c2Fpa2FrdVwgOwor5YGP5b6u5YiGID4gaGVuYmlidW5cIDsKK+e0oOWvkuiypyA+IHN1a2FucGluXCA7CivosZrlsI/lsYsgPiBidXRhZ295YVwgOwor5bu25rue56iOID4gZW50YWl6ZWlcIDsKK+WGpeeOi+aYnyA+IG1laW91c2VpXCA7Civlhobnm6TnirYgPiBlbmJhbmpvdVwgOwor6JS15pu45a62ID4gem91c2hva2FcIDsKK+mMsumfs+apnyA+IHJva3VvbmtpXCA7CivpgY7oiKzmnaUgPiBrYWhhbnJhaVwgOwor6ZGa5a2U5qmfID4gc2Fua291a2lcIDsKK+S4gOiIrOS6uiA+IGlwcGFuamluXCA7Civnm7jmiYvlvbkgPiBhaXRleWFrdVwgOwor5q2p5ZCI57WmID4gYnVhaWt5dXVcIDsKK+S6leaIuOe2sSA+IGlkb2R6dW5hXCA7Civml6Lnn6XmlbAgPiBraWNoaXN1dVwgOwor5bel5YuZ5bqXID4ga291bXV0ZW5cIDsKK+S4gOacsemKgCA+IGlzc2h1Z2luXCA7CivoiKrnqbrmqZ8gPiBrb3VrdXVraVwgOwor6buS57m75a2QID4ga3Vyb2p1c3VcIDsKK+eZu+iomOaJgCA+IHRvdWtpc2hvXCA7CivpganmmYLmiZMgPiB0ZWtpamlkYVwgOwor5ZCI55CG5oCnID4gZ291cmlzZWlcIDsKK+mZsOmbu+WtkCA+IGluZGVuc2hpXCA7Civliqnli5XoqZ4gPiBqb2RvdXNoaVwgOwor5oWw6JeJ5paZID4gaXNoYXJ5b3VcIDsKK+ihm+eUn+WFtSA+IGVpc2VpaGVpXCA7CivkvY7niankvqEgPiB0ZWlidWtrYVwgOwor5YCL5Lq65bGVID4ga29qaW50ZW5cIDsKK+Wun+S9k+WMliA+IGppdHRhaWthXCA7CivpgqrprZTogIUgPiBqYW1hbW9ub1wgOwor57Gz6K2w5LyaID4gYmVpZ2lrYWlcIDsKK+eEoeWwveiUtSA+IG11amluem91XCA7Civou6Lmj5vmnJ8gPiB0ZW5rYW5raVwgOwor5Luj6K2w5aOrID4gZGFpZ2lzaGlcIDsKK+m8u+a/gemfsyA+IGJpZGFrdW9uXCA7Civpq5jpm7vkvY0gPiBrb3VkZW4nJ2lcIDsKK+aMgeWPgumHkSA+IGppc2Fua2luXCA7CivllK/nkIboq5YgPiB5dWlyaXJvblwgOwor5ZCN5pyb5a62ID4gbWVpYm91a2FcIDsKK+WkmuWFg+irliA+IHRhZ2Vucm9uXCA7Civoh6rmo4Tns54gPiB5YWtla3Vzb1wgOwor5q2j56ym5Y+3ID4gc2VpZnVnb3VcIDsKK+eEoeeUo+iAhSA+IG11c2Fuc2hhXCA7CivogrLlhZDmm7ggPiBpa3VqaXNob1wgOwor5a6a5pyf6Ii5ID4gdGVpa2lzZW5cIDsKK+aJi+W8geW9kyA+IHRlYmVudG91XCA7Civkub7nh6XmqZ8gPiBrYW5zb3VraVwgOwor5LiJ5pel6ZaTID4gbWlra2FrYW5cIDsKK+WNgeS6jOWIhiA+IGp1dW5pYnVuXCA7CivnqL3lj6Tlj7AgPiBrZWlrb2RhaVwgOwor5YWI6aCt5LyNID4gc2VudG91Z29cIDsKK+WHuuadpemrmCA+IGRla2lkYWthXCA7CivkuInkuJbnm7ggPiBzYW56ZXNvdVwgOwor6YGL5qC56YiNID4gdW5rb25kb25cIDsKK+ihm+eUn+S4iiA+IGVpc2Vpam91XCA7CivljLvlrablo6sgPiBpZ2FrdXNoaVwgOwor6KuL6LKg5Lq6ID4gdWtlb2luaW5cIDsKK+aWremdouWbsyA+IGRhbm1lbnp1XCA7CivomZrku67njL8gPiBrb2tlemFydVwgOwor5pyq5L2/55SoID4gbWlzaGl5b3VcIDsKK+mbu+azouaYnyA+IGRlbnBhc2VpXCA7Civpn7Ppn7voq5YgPiBvbicnaW5yb25cIDsKK+apn+aisOW3pSA+IGtpa2Fpa291XCA7Civlho3lsIHpjpYgPiBzYWlmdXVzYVwgOwor6Ziy5rOi5aCkID4gYm91aGF0ZWlcIDsKK+mBi+i7ouaJiyA+IHVudGVuc2h1XCA7CivkuonopofmiKYgPiBzb3VoYXNlblwgOwor6buS5paH5a2XID4ga3Vyb21vamlcIDsKK+eEoemnhOi2syA+IG11ZGFhc2hpXCA7CivnnYDnianlnLAgPiBraW1vbm9qaVwgOwor5aSW5rCX5ZyPID4gZ2Fpa2lrZW5cIDsKK+mWi+S8muaXpSA+IGthaWthaWJpXCA7CivnlLHmnaXmm7ggPiB5dXJhaXNob1wgOwor6bWd5Y+j55ihID4gZ2Frb3Vzb3VcIDsKK+S5vueHpeaenCA+IGthbnNvdWthXCA7CivlronlhajmgKcgPiBhbnplbnNlaVwgOwor5Lm+54el5pyfID4ga2Fuc291a2lcIDsKK+aghOmkiuWjqyA+IGVpeW91c2hpXCA7Civlj7DluIPlt74gPiBkYWlidWtpblwgOwor5qeL5oiQ5ZOhID4ga291c2VpaW5cIDsKK+aooeevhOeUnyA+IG1vaGFuc2VpXCA7CivlronlhajlvIEgPiBhbnplbmJlblwgOwor6aeG5YuV6LyqID4ga3Vkb3VyaW5cIDsKK+adsea0i+WPsiA+IHRveW9mdW1pXCA7CivljZjnsr7luqYgPiB0YW5zZWlkb1wgOwor54Gr5pyo5ZyfID4ga2Ftb2t1ZG9cIDsKK+S7o+itsOWItiA+IGRhaWdpc2VpXCA7CivmnKrlrprnqL8gPiBtaXRlaWtvdVwgOwor5LiW6Kmx54mpID4gc2V3YW1vbm9cIDsKK+ims+aIpuiomCA+IGthbnNlbmtpXCA7CivlpKnnk5znsokgPiB0ZW5rYWZ1blwgOwor5b2i5oiQ5pyfID4ga2Vpc2Vpa2lcIDsKK+aUvuaYoOaoqSA+IGhvdWVpa2VuXCA7Civnm6PoppbmiYAgPiBrYW5zaGlqb1wgOwor5b6h5pys5bCKID4gZ29ob256b25cIDsKK+WNmOe0lOWMliA+IHRhbmp1bmthXCA7CivlgIvkurrlkI0gPiBrb2ppbm1laVwgOwor5qSc55y85Yy7ID4ga2VuZ2FuJydpXCA7CivljLvlrablj7IgPiBpZ2FrdXNoaVwgOwor5pyq6LiP5bOwID4gbWl0b3Vob3VcIDsKK+aWreaWreWbuiA+IGRhbmRhbmtvXCA7CivmmpbmiL/lmaggPiBkYW5ib3VraVwgOwor5pah5peL6ICFID4gYXNzZW5zaGFcIDsKK+S7j+eUn+S8miA+IGJ1c3Nob3VlXCA7Civopo/moLzljJYgPiBraWtha3VrYVwgOwor5Y+45Luk6YOoID4gc2hpcmVpYnVcIDsKK+aEj+WMoOaoqSA+IGlzaG91a2VuXCA7CivlsIrmlazoqp4gPiBzb25rZWlnb1wgOwor5b2i5oWL57SgID4ga2VpdGFpc29cIDsKK+e+juWwkeWlsyA+IGJpc2hvdWpvXCA7CivlhobpgYvli5UgPiBlbicndW5kb3VcIDsKK+ixoeeJmeiJsiA+IHpvdWdlaXJvXCA7Civpga7mlq3lmaggPiBzaGFkYW5raVwgOwor6Kix5Y+v5pu4ID4ga3lva2FzaG9cIDsKK+WVhuitsOWToSA+IHNob3VnaWluXCA7CivlvqHkuIDmlrAgPiBnb2lzc2hpblwgOwor5oSJ5b+r54qvID4geXVrYWloYW5cIDsKK+aMh+ekuuadvyA+IHNoaWppYmFuXCA7CivpiYTlt6XmiYAgPiB0ZWtrb3Vqb1wgOwor57WM5Za26ZujID4ga2VpZWluYW5cIDsKK+mZsOmZveW4qyA+IG9uJyd5b3VqaVwgOwor5o+b5rCX5omHID4ga2Fua2lzZW5cIDsKK+mdnuWQiOazlSA+IGhpZ291aG91XCA7Civpo5vooYzoiYcgPiBoaWtvdXRlaVwgOwor6aOb6KGM6Ii5ID4gaGlrb3VzZW5cIDsKK+e1jOWWtumZoyA+IGtlaWVpamluXCA7CivlvqHmnaXlhYkgPiBnb3JhaWtvdVwgOwor5LiN5pat6I2JID4gZnVkYW5zb3VcIDsKK+aghOmkiuWJpCA+IGVpeW91emFpXCA7CivpgKPpjpblupcgPiByZW5zYXRlblwgOwor5YW15rOV5a62ID4gaGVpaG91a2FcIDsKK+mgu+W6puaVsCA+IGhpbmRvc3V1XCA7Civos4fmnKzlrrYgPiBzaGlob25rYVwgOwor5pyA5Y+z57+8ID4gc2FpdXlva3VcIDsKK+aghOmkiuWIhiA+IGVpeW91YnVuXCA7Civlj6/lh6bliIYgPiBrYXNob2J1blwgOwor6JKZ5Y+k5paRID4gbW91a29oYW5cIDsKK+WvkueoveWPpCA+IGthbmdlaWtvXCA7CivnrKzkuInntIAgPiBkYWlzYW5raVwgOwor56CC6aKo5ZGCID4gc3VuYWJ1cm9cIDsKK+mBi+i7ouWjqyA+IHVudGVuc2hpXCA7CivnrKzkuIDnt5ogPiBkYWlpc3NlblwgOwor6YKq6a2U54mpID4gamFtYW1vbm9cIDsKK+mKgOihjOWutiA+IGdpbmtvdWthXCA7CivkuInku5nlj4kgPiBzYW5zZW5zYVwgOwor5YaN5bel5LqLID4gc2Fpa291amlcIDsKK+ijj+aXpeacrCA+IHVyYW5paG9uXCA7Civooqvlgq3ogIUgPiBoaXlvdXNoYVwgOwor6Lu95rC054KJID4ga2Vpc3Vpcm9cIDsKK+iHqueUsea4ryA+IGppeXV1a291XCA7CivlvqHmm7nlrZAgPiBvbnpvdXNoaVwgOwor6Ziy5rC05omJID4gYm91c3VpaGlcIDsKK+WxheW/g+WcsCA+IGlnb2tvY2hpXCA7CivlnLDkuIvpgZMgPiBjaGlrYWRvdVwgOwor54Sh6aeE6IqxID4gbXVkYWJhbmFcIDsKK+S4juWkquiAhSA+IHlvdGFtb25vXCA7CivnhKHlrproposgPiBtdXRlaWtlblwgOwor576O5a655birID4gYml5b3VzaGlcIDsKK+eZuueBq+eCuSA+IGhha2thdGVuXCA7Civnj77ku6PljJYgPiBnZW5kYWlrYVwgOwor56aP5LqV55yMID4gZnVrdWlrZW5cIDsKK+S4jeaVrOiZlCA+IGZ1a2Vpa2VuXCA7CivkuIHlrZDmsrkgPiBjaG91aml5dVwgOwor5Lm+54el5a2jID4ga2Fuc291a2lcIDsKK+aWreaWreS5jiA+IGRhbmRhbmtvXCA7CivosqHli5nlrpggPiB6YWltdWthblwgOwor5paZ55CG5bGLID4gcnlvdXJpeWFcIDsKK+WBnOi7iuWgtCA+IHRlaXNoYWJhXCA7CivmhJ/lhYnluqYgPiBrYW5rb3Vkb1wgOwor54Sh6IO96ICFID4gbXVub3VzaGFcIDsKK+S6pOWPieeCuSA+IGtvdXNhdGVuXCA7CivmsLfmsrPmnJ8gPiBoeW91Z2FraVwgOwor5L2O6Zu75L2NID4gdGVpZGVuJydpXCA7Civlh7rkuJbprZogPiBzaHVzc2V1b1wgOwor6YGL6Lui5Y+wID4gdW50ZW5kYWlcIDsKK+mHjuW/g+WutiA+IHlhc2hpbmthXCA7Civoh6rnlLHmqKkgPiBqaXl1dWtlblwgOwor6Ziy5rC05biDID4gYm91c3VpZnVcIDsKK+WGjeiHqOa0viA+IHNhaXJpbmhhXCA7CivlkI3loLTpnaIgPiBtZWliYW1lblwgOwor562G6KiY5L2TID4gaGlra2l0YWlcIDsKK+W8pualveWZqCA+IGdlbmdha2tpXCA7Civmu57lnKjosrsgPiB0YWl6YWloaVwgOwor6KaP5a6a5YCkID4ga2l0ZWljaGlcIDsKK+S4gOS9k+aEnyA+IGl0dGFpa2FuXCA7CivotaTnoILns5YgPiBha2F6YXRvdVwgOwor54mb5bCP5bGLID4gdXNoaWdveWFcIDsKK+W7ieS+oeWTgSA+IHJlbmthaGluXCA7CivmsJHpnIDlk4EgPiBtaW5qdWhpblwgOwor55yf5Lq66ZaTID4gbWFuaW5nZW5cIDsKK+mHkeebnuiKsSA+IGtpbnNlbmthXCA7Civlj5bmspnmsbAgPiB0b3JpemF0YVwgOwor6YqA6KGM5ZOhID4gZ2lua291aW5cIDsKK+WxpOS9jeWtpiA+IHNvdWlnYWt1XCA7CivpgI/oppblm7MgPiB0b3VzaGl6dVwgOwor5ZCN576p5Lq6ID4gbWVpZ2luaW5cIDsKK+e1puayueaJgCA+IGt5dXV5dWpvXCA7Civoh6rotbDnoLIgPiBqaXNvdWhvdVwgOwor5a+E56i/6ICFID4ga2lrb3VzaGFcIDsKK+aKkuaDheipqSA+IGpvam91c2hpXCA7CivlhobliIPliIAgPiBlbmppbnRvdVwgOwor5Lm+54el5ZmoID4ga2Fuc291a2lcIDsKK+S4ieS4g+aXpSA+IG1pbmFub2thXCA7Civlr7rlsI/lsYsgPiB0ZXJha295YVwgOwor5b6h5pu55Y+4ID4gb256b3VzaGlcIDsKK+eUsOmbsumbgCA+IHRhaGliYXJpXCA7CivmuKnmub/luIMgPiBvbnNoaXBwdVwgOwor5b6h6Z2i55u4ID4gZ29tZW5zb3VcIDsKK+S4iuaZr+awlyA+IGpvdWtlaWtpXCA7CivogrLoi7HkvJogPiBpa3VlaWthaVwgOwor5LmX6aas6ZqKID4gam91YmF0YWlcIDsKK+WcsOS4i+ihlyA+IGNoaWthZ2FpXCA7CivpnZLmh7jlt6MgPiBhb2tha2VzdVwgOwor5LiN5pWs572qID4gZnVrZWl6YWlcIDsKK+WOn+WtkOS+oSA+IGdlbnNoaWthXCA7Civnt4/mrabnt5ogPiBzb3VidXNlblwgOwor5LiN57i557e7ID4gYnVraXJ5b3VcIDsKK+ino+WDj+W6piA+IGthaXpvdWRvXCA7CivmjqfoqLTnirYgPiBrb3Vzb2pvdVwgOwor5YaN5qSc5p+7ID4gc2Fpa2Vuc2FcIDsKK+ikh+W6p+apnyA+IGZ1a3V6YWtpXCA7CivmibnoqZXlrrYgPiBoaWh5b3VrYVwgOwor5b6h5Lit5YWDID4gb2NodXVnZW5cIDsKK+S6uuecn+S8vCA+IGhpdG9tYW5lXCA7CivnmoTlnLDkvY0gPiB0ZWtpY2hpaVwgOwor5o+b5rCX5Y+jID4ga2Fua2lrb3VcIDsKK+iqv+afu+WToSA+IGNob3VzYWluXCA7CivkuJboqbHlvbkgPiBzZXdheWFrdVwgOwor5oKq55+l5oG1ID4gd2FydWRqaWVcIDsKK+efreacn+mWkyA+IHRhbmtpa2FuXCA7CivlvqHkuLvkurogPiBnb3NodWppblwgOwor5ZCM5pmC5oCnID4gZG91amlzZWlcIDsKK+m7hOWkieexsyA+IG91aGVubWFpXCA7CivkvZnmiYDogIUgPiB5b3NvbW9ub1wgOwor5ruL6aSK5YiGID4gaml5b3VidW5cIDsKK+ajmueJoeS4uSA+IHRhbmFib3RhXCA7CivpipjphZLlsYsgPiBtZWlzaHV5YVwgOwor5aGp6aGe5rOJID4gZW5ydWlzZW5cIDsKK+S/neiPjOiAhSA+IGhva2luc2hhXCA7CivpmLLnoILmnpcgPiBib3VzYXJpblwgOwor6ZaJ5LiW55WMID4gaGVpc2VrYWlcIDsKK+WcsOS4i+iMjiA+IGNoaWtha2VpXCA7CivlpJrovrrlvaIgPiB0YWhlbmtlaVwgOwor5LiN5piO5pyXID4gZnVtZWlyb3VcIDsKK+azpeeBq+WxsSA+IGRlaWthemFuXCA7Civkuqzpg73lupwgPiBreW91dG9mdVwgOwor5Luk5aSr5Lq6ID4gcmVpZnVqaW5cIDsKK+e9t+WFjeaoqSA+IGhpbWVua2VuXCA7CivkuIHlrZflvaIgPiB0ZWlqaWtlaVwgOwor5YCZ6KOc6ICFID4ga291aG9zaGFcIDsKK+e1teeUu+mkqCA+IGthaWdha2FuXCA7Civlm73llrbljJYgPiBrb2t1ZWlrYVwgOwor54mp5pWF6ICFID4gYnVra29zaGFcIDsKK+WJjeebuOaSsiA+IG1hZXp1bW91XCA7CivnoJTnsbPmqZ8gPiBrZW5tYWlraVwgOwor5pqX6buS5pyfID4gYW5rb2t1a2lcIDsKK+ePvuaZgueCuSA+IGdlbmppdGVuXCA7CivpmqPkv53ppKggPiByaW5wb2thblwgOwor54S85aS35by+ID4gc2hvdWlkYW5cIDsKK+S4geWtl+W4ryA+IHRlaWppdGFpXCA7CivliqDphY3nsbMgPiBrYWhhaW1haVwgOwor6auY57K+5bqmID4ga291c2VpZG9cIDsKK+mZsOmWouaVsCA+IGlua2Fuc3V1XCA7CivmsLTms7PluL0gPiBzdWllaWJvdVwgOwor6LK46LK755SfID4gdGFpaGlzZWlcIDsKK+Wil+eojuahiCA+IHpvdXplaWFuXCA7CivppJPprLzlhbEgPiBnYWtpZG9tb1wgOwor6Kix5Y+v5Yi2ID4ga3lva2FzZWlcIDsKK+Wls+aAp+WDjyA+IGpvc2Vpem91XCA7CivngavmmJ/lubQgPiBrYXNlaW5lblwgOwor5Lqc56Gr6YW4ID4gYXJ5dXVzYW5cIDsKK+WGjei7jeWCmSA+IHNhaWd1bmJpXCA7Civmnb/lsYvosp0gPiBpdGF5YWdhaVwgOwor5pah5peL5qGIID4gYXNzZW4nJ2FuXCA7CivoirHltJflsqkgPiBrYWtvdWdhblwgOwor5pyq5a6M5oiQID4gbWlrYW5zZWlcIDsKK+eEoeeUqOW/gyA+IGJ1eW91amluXCA7CivmiJDmlofljJYgPiBzZWlidW5rYVwgOwor57KX5oKq5ZOBID4gc29ha3VoaW5cIDsKK+aOp+iotOaoqSA+IGtvdXNva2VuXCA7Civoqr/nkIbloLQgPiBjaG91cmliYVwgOwor5Zyw5LiL57eaID4gY2hpa2FzZW5cIDsKK+S6nOehnemFuCA+IGFzaG91c2FuXCA7CivlrprmnJ/miKYgPiB0ZWlraXNlblwgOwor5L2T57O75YyWID4gdGFpa2Vpa2FcIDsKK+e1jOWWtuiAhSA+IGtlaWVpc2hhXCA7CivooqvlhpnkvZMgPiBoaXNoYXRhaVwgOwor5YiG5aip5pyfID4gYnVuYmVua2lcIDsKK+W+jOS7leiIniA+IGF0b2ppbWFpXCA7Civoo4/pnaLlj7IgPiByaW1lbnNoaVwgOwor6KaL5LiW54mpID4gbWlzZW1vbm9cIDsKK+iiq+eUqOiAhSA+IGhpeW91c2hhXCA7Civoqp7lvZnlipsgPiBnb2lyeW9rdVwgOwor6a2U5rOV55O2ID4gbWFob3ViaW5cIDsKK+WIhuWoqeaZgiA+IGJ1bmJlbmppXCA7CivkuIrkuIvli5UgPiBqb3VnZWRvdVwgOwor5bmz6Z2i5ZuzID4gaGVpbWVuenVcIDsKK+iAkOeBq+aApyA+IHRhaWthc2VpXCA7Civlho3lrprnvqkgPiBzYWl0ZWlnaVwgOwor6Zu75rCX5belID4gZGVua2lrb3VcIDsKK+WPjeWPpOexoCA+IGhvZ3VrYWdvXCA7CivlvqHpmY3oqpUgPiBnb2tvdXRhblwgOwor5piO5paH5YyWID4gbWVpYnVua2FcIDsKK+iFueWFt+WQiCA+IGhhcmFndWFpXCA7CivpgbjmjJnml6UgPiBzZW5reW9iaVwgOwor6Ly457K+566hID4geXVzZWlrYW5cIDsKK+Wwj+WjsuW6lyA+IGtvdXJpdGVuXCA7Civlroflrpnoq5YgPiB1Y2h1dXJvblwgOwor6ZGR5a6a5a62ID4ga2FudGVpa2FcIDsKK+Wbuua6tuS9kyA+IGtveW91dGFpXCA7CivmoYjlhoXmiYAgPiBhbicnbmFpam9cIDsKK+iHquS/oeWutiA+IGppc2hpbmthXCA7CivkupzpiZvmnKsgPiBhZW5tYXRzdVwgOwor5bCO6Zu75bqmID4gZG91ZGVuZG9cIDsKK+ecjOefpeS6iyA+IGtlbmNoaWppXCA7CivlroflrpnoprMgPiB1Y2h1dWthblwgOwor6Zu75YuV5qmfID4gZGVuZG91a2lcIDsKK+S4gOS4geebriA+IGl0Y2hvdW1lXCA7CivkvIrpgZTooYYgPiBkYXRlc2h1dVwgOwor6IWL56qp6IW6ID4gZWtpa2FzZW5cIDsKK+S4jeaWh+azlSA+IGZ1YnVucG91XCA7CivkuIDosqvmgKcgPiBpa2thbnNlaVwgOwor5Y+j5YaF54KOID4ga291bmFpZW5cIDsKK+mBjuS4jei2syA+IGthZnVzb2t1XCA7CivmhJvnlKjogIUgPiBhaXlvdXNoYVwgOwor5YWs5rCR56eRID4ga291bWlua2FcIDsKK+WHuuagvOWtkCA+IGRlZ291c2hpXCA7Civku4rkuJbntIAgPiBrb25zZWlraVwgOwor5pyq5ama6ICFID4gbWlrb25zaGFcIDsKK+WAmeijnOeUnyA+IGtvdWhvc2VpXCA7CivmnbHljZfkupwgPiB0b3VuYW4nJ2FcIDsKK+S+m+mkiuWhlCA+IGt1eW91dG91XCA7CivlgaXog4PliaQgPiBrZW4nJ2l6YWlcIDsKK+S/rumok+iAhSA+IHNodWdlbmphXCA7Civmn5TpgZPnnYAgPiBqdXVkb3VnaVwgOwor5b6u57O75pWwID4gYmlrZWlzdXVcIDsKK+S7lee9ruWgtCA+IHNoaW9raWJhXCA7CivlubPmlrnlkowgPiBoZWlob3V3YVwgOwor5Ly05aWP6YOoID4gYmFuc291YnVcIDsKK+WPpOWGmeacrCA+IGtvc2hhaG9uXCA7Civlh7rmnaXniakgPiBkZWtpbW9ub1wgOwor5Zyf6aWF6aCtID4gZG9tYW5qdXVcIDsKK+S4luipseS6uiA+IHNld2FiaXRvXCA7Civnvo7poZTmsLQgPiBiaWdhbnN1aVwgOwor6Ieq55Sx5YiRID4gaml5dXVrZWlcIDsKK+WhqemiqOWRgiA+IHNoaW9idXJvXCA7CivlhYXpm7vlmaggPiBqdXVkZW5raVwgOwor6KKr6aiT6ICFID4gaGlrZW5zaGFcIDsKK+Wwj+eGiuW6pyA+IGtvZ3VtYXphXCA7CivmiYvkv6Hoqp4gPiB0ZXNoaW5nb1wgOwor6LWk5q+b5biDID4gYWthZ2V0dG9cIDsKK+awtOW9qeeUuyA+IHN1aXNhaWdhXCA7CivkuIDkurrlr50gPiBoaXRvcmluZVwgOwor6Z2S5ZGz5rOlID4gYW9taWRvcm9cIDsKK+iHqueUseWFmiA+IGppeXV1dG91XCA7Civoipnok4nls7AgPiBmdXlvdWhvdVwgOwor6JC96Iqx55SfID4gcmFra2FzZWlcIDsKK+WxsemWk+mDqCA+IHNhbmthbmJ1XCA7CivlkIzmmYLku6MgPiBkb3VqaWRhaVwgOwor54Sh5a6X5rS+ID4gbXVzaHV1aGFcIDsKK+i7jeaUv+W6nCA+IGd1bnNlaWZ1XCA7CivlqabkurrkvJogPiBmdWppbmthaVwgOwor5a+65a2Q5bGLID4gdGVyYWtveWFcIDsKK+WOn+e5iue2rSA+IGdlbnNlbicnaVwgOwor57aZ6Zu75rCXID4ga2VpZGVua2lcIDsKK+WPs+S4remWkyA+IHVjaHV1a2FuXCA7CivkuI3mlofmmI4gPiBmdWJ1bm1laVwgOwor5bmz5Zyf6ZaTID4gaGlyYWRvbWFcIDsKK+asoeeUt+WdiiA+IGppbmFuYm91XCA7CivohoDog7Hngo4gPiBib3Vrb3VlblwgOwor5pyJ5Yq55omTID4geXV1a291ZGFcIDsKK+mbqOmHj+ioiCA+IHVyeW91a2VpXCA7CivlroflrpnoiLkgPiB1Y2h1dXNlblwgOwor5rib6KGw5ZmoID4gZ2Vuc3Vpa2lcIDsKK+e5sOezuOapnyA+IHNvdXNoaWtpXCA7CivlpJroirjmgKcgPiB0YWdlaXNlaVwgOwor6LWk5YiH56ymID4gYWthZ2lwcHVcIDsKK+eBq+aYn+S6uiA+IGthc2VpamluXCA7Civml6XoiKrmqZ8gPiBuaWtrb3VraVwgOwor5LuK5LiW55WMID4ga29uc2VrYWlcIDsKK+i7jemcgOWTgSA+IGd1bmp1aGluXCA7CivmsLTokrjmsJcgPiBzdWlqb3VraVwgOwor5Y2Y5ryi5a2XID4gdGFua2FuamlcIDsKK+WNgeaWh+WtlyA+IGp1dW1vbmppXCA7CivlrojlgpnlhbUgPiBzaHViaWhlaVwgOwor5pqX5Y+35paHID4gYW5nb3VidW5cIDsKK+mrmOetieenkSA+IGtvdXRvdWthXCA7Civmt7vkuZflk6EgPiB0ZW5qb3VpblwgOwor5qGI5YaF5ZuzID4gYW4nJ25haXp1XCA7CivlkIjoqIDokYkgPiBhaWtvdG9iYVwgOwor5a6a5pyf5Yi4ID4gdGVpa2lrZW5cIDsKK+S6iOeul+ahiCA+IHlvc2FuJydhblwgOwor5aSa5qeY5oCnID4gdGF5b3VzZWlcIDsKK+WQjeaWh+WutiA+IG1laWJ1bmthXCA7Civoh6ros6Dms5UgPiBqaWJhaWhvdVwgOwor5Ye65LiN57K+ID4gZGVidXNob3VcIDsKK+WuieWxseWyqSA+IGFuemFuZ2FuXCA7CivogIHlpKflrrYgPiByb3V0YWlrYVwgOwor5rCP57Sg5oCnID4gdWppc3Vqb3VcIDsKK+S4iuWkqeawlyA+IGpvdXRlbmtpXCA7CivnrKzkuIDlo7AgPiBkYWlpc3NlaVwgOwor5bCO54Gr57eaID4gZG91a2FzZW5cIDsKK+S+nemgvOW/gyA+IGlyYWlzaGluXCA7Civlroflrpnnt5ogPiB1Y2h1dXNlblwgOwor6LKg5YK16ICFID4gZnVzYWlzaGFcIDsKK+W+jOmgremDqCA+IGtvdXRvdWJ1XCA7Civnmq7ohprnl4UgPiBoaWZ1YnlvdVwgOwor6ICB5aSr5ammID4gcm91ZnV1ZnVcIDsKK+WcsOS4i+awtCA+IGNoaWthc3VpXCA7Civpm7vmsJfku6MgPiBkZW5raWRhaVwgOwor5a6a576p5Z+fID4gdGVpZ2lpa2lcIDsKK+aUvueBq+e9qiA+IGhvdWthemFpXCA7Civpm6jlkIjnvr0gPiBhbWFnYXBwYVwgOwor5Y+X5YiR6ICFID4ganVrZWlzaGFcIDsKK+mdnuWFrOmWiyA+IGhpa291a2FpXCA7Civmma7oq4vloLQgPiBmdXNoaW5iYVwgOwor5aSa5bO25rW3ID4gdGF0b3VrYWlcIDsKK+WKtOWDjeatjCA+IHJvdWRvdWthXCA7Civlr4TmuK/lnLAgPiBraWtvdWNoaVwgOwor5a6a5pyf5L6/ID4gdGVpa2liaW5cIDsKK+acquadpeW9oiA+IG1pcmFpa2VpXCA7Civpo5vooYzlo6sgPiBoaWtvdXNoaVwgOwor5aaK55Sj5ammID4gbmluc2FucHVcIDsKK+efreaZgumWkyA+IHRhbmppa2FuXCA7CivlgY/lt67lgKQgPiBoZW5zYWNoaVwgOwor5LiL6ZmN57eaID4ga2Frb3VzZW5cIDsKK+a0i+iPk+WtkCA+IHlvdWdhc2hpXCA7Civmlq3oo4HmqZ8gPiBkYW5zYWlraVwgOwor6aOb6KGM5aC0ID4gaGlrb3Vqb3VcIDsKK+W3peWFt+WFpSA+IGtvdWd1aXJlXCA7CivkvZPmuKnoqIggPiB0YWlvbmtlaVwgOwor55m66KGM5pelID4gaGFra291YmlcIDsKK+aLt+WVj+WFtyA+IGdvdW1vbmd1XCA7CivpmaTlpJbkvosgPiBqb2dhaXJlaVwgOwor5a+/6ICB5Lq6ID4ganVyb3VqaW5cIDsKK+WFrOWPluWnlCA+IGtvdXRvcmlpXCA7CivpmaLlpJblm6MgPiBpbmdhaWRhblwgOwor5LiN5aSJ5oCnID4gZnVoZW5zZWlcIDsKK+WkmueUo+ezuyA+IHRhc2Fua2VpXCA7CivlsI/opo/mqKEgPiBzaG91a2lib1wgOwor5ZCI6K2w5Yi2ID4gZ291Z2lzZWlcIDsKK+e2reeuoeadnyA+IGlrYW5zb2t1XCA7Civpq5jmuKnoqIggPiBrb3VvbmtlaVwgOwor5Yid562J56eRID4gc2hvdG91a2FcIDsKK+iomOaGtuazlSA+IGtpb2t1aG91XCA7Civku4rmnJ3mlrkgPiBrZXNhZ2F0YVwgOwor6YG45oyZ5Yy6ID4gc2Vua3lva3VcIDsKK+egtOegleaApyA+IGhhc2Fpc2VpXCA7Civpub/ph47oi5EgPiByb2t1eWFvblwgOwor6Iie5Y+w6KOPID4gYnV0YWl1cmFcIDsKK+e1jOWWtuaoqSA+IGtlaWVpa2VuXCA7CivkuI3nh4PmgKcgPiBmdW5lbnNlaVwgOwor56We56WH5a6YID4gamluZ2lrYW5cIDsKK+awj+e0oOWnkyA+IHVqaXN1am91XCA7CivooqvlrrPogIUgPiBoaWdhaXNoYVwgOwor5rC06YW45Z+6ID4gc3Vpc2Fua2lcIDsKK+WkqeS9k+WbsyA+IHRlbnRhaXp1XCA7Civov5Hot53pm6IgPiBraW5reW9yaVwgOwor5rqW56S+5ZOhID4ganVuc2hhaW5cIDsKK+S6uuS7tuiyuyA+IGppbmtlbmhpXCA7CivluLjlvpfmhI8gPiBqb3V0b2t1aVwgOwor55qu6ISC6IW6ID4gaGlzaGlzZW5cIDsKK+eEoeWumuW9oiA+IG11dGVpa2VpXCA7Civlj6/nlKjmgKcgPiBrYXlvdXNlaVwgOwor5Lq655Sf5rS+ID4gamluc2VpaGFcIDsKK+eZuuihjOaJgCA+IGhha2tvdWpvXCA7CivmkanlpKnmpbwgPiBtYXRlbnJvdVwgOwor5bCP6ZaT54mpID4ga29tYW1vbm9cIDsKK+W+oeWkp+WxpCA+IGdvdGFpc291XCA7CivorablgpnpmoogPiBrZWliaXRhaVwgOwor5Ymy54O5552AID4ga2FwcG91Z2lcIDsKK+WNlOWSjOmfsyA+IGt5b3V3YW9uXCA7Civlj5fli5XmhYsgPiBqdWRvdXRhaVwgOwor57eP5YuV5ZOhID4gc291ZG91aW5cIDsKK+iKseael+ezliA+IGthcmludG91XCA7CivmraPnpL7lk6EgPiBzZWlzaGFpblwgOwor562J5rip57eaID4gdG91b25zZW5cIDsKK+W+oemciuWxiyA+IG1pdGFtYXlhXCA7CivkuIDlpJXoqbEgPiBpc3Nla2l3YVwgOwor5bCP54K65pu/ID4ga29nYXdhc2VcIDsKK+esrOS4gOS9jSA+IGRhaWljaGlpXCA7CivnqI7plqLlkI8gPiB6ZWlrYW5yaVwgOwor6aSK6IKy6LK7ID4geW91aWt1aGlcIDsKK+a1gemPkemmrCA+IHlhYnVzYW1lXCA7CivmjqfoqLTkurogPiBrb3Vzb25pblwgOwor6Iy26Kmx5LyaID4gY2hhd2FrYWlcIDsKK+WWq+e3iuS6iyA+IGtpa2tpbmppXCA7CivlkLjph5HliZsgPiBrb2tvbmdvdVwgOwor6ICB57e05a62ID4gcm91cmVua2FcIDsKK+S4jeiqv+WSjCA+IGZ1Y2hvdXdhXCA7CivmsJfnrqHmlK8gPiBraWthbnNoaVwgOwor5rC06YW45YyWID4gc3Vpc2Fua2FcIDsKK+Wkp+S6uuawlyA+IGRhaW5pbmtpXCA7CivpnZLpioXlmaggPiBzZWlkb3VraVwgOwor6aOb6KGM5L6/ID4gaGlrb3ViaW5cIDsKK+WPr+iDveazlSA+IGthbm91aG91XCA7CivnnJ/nj6Dmr40gPiBzaGluanVib1wgOwor5bCC5pS756eRID4gc2Vua291a2FcIDsKK+WMluiGv+iPjCA+IGthbm91a2luXCA7CivpnZ7luLjnt5ogPiBoaWpvdXNlblwgOwor57K+5LiA5p2vID4gc2VpaXBwYWlcIDsKK+mBh+S4jemBhyA+IGd1dWZ1Z3V1XCA7CivmnKrogJXlnLAgPiBtaWtvdWNoaVwgOwor6ZaA5LiL55SfID4gbW9ua2FzZWlcIDsKK+S4gOmiqOWRgiA+IGhpdG9mdXJvXCA7Civln7nppIrln7ogPiBiYWl5b3VraVwgOwor6LuN6ZqK5YyWID4gZ3VudGFpa2FcIDsKK+a8lOiKuOS8miA+IGVuZ2Vpa2FpXCA7CivmlofkurrnlLsgPiBidW5qaW5nYVwgOwor54++5pmC5LujID4gZ2VuamlkYWlcIDsKK+W6g+evhOWbsiA+IGtvdWhhbicnaVwgOwor5YaG5bGL5qC5ID4gbWFydXlhbmVcIDsKK+WfuemkiuWcnyA+IGJhaXlvdWRvXCA7Civlr5LmsJflm6MgPiBrYW5raWRhblwgOwor57KX5Yip55uKID4gYXJhcmlla2lcIDsKK+S6iOeul+WkliA+IHlvc2FuZ2FpXCA7CivpnZ7msJHkuLsgPiBoaW1pbnNodVwgOwor5Y+X55uK6ICFID4ganVla2lzaGFcIDsKK+WuieWumuadvyA+IGFudGVpYmFuXCA7CivoqJjlv7XppKggPiBraW5lbmthblwgOwor5aSn5a6H5a6ZID4gZGFpdWNodXVcIDsKK+S6nOaApeaApyA+IGFreXV1c2VpXCA7CivoqIjnrpfnsL8gPiBrZWlzYW5ib1wgOwor6Z2Z5q2i55S7ID4gc2Vpc2hpZ2FcIDsKK+S4jeaVtOWQiCA+IGZ1c2VpZ291XCA7Civkuozph43poY4gPiBuaWp1dWFnb1wgOwor5Yi25b6h5qmfID4gc2VpZ3lva2lcIDsKK+S6jOetieWIhiA+IG5pdG91YnVuXCA7CivlubPngonms5UgPiBoZWlyb2hvdVwgOwor5LqU56ic5aChID4gZ29yeW91aG9cIDsKK+acquadpeWDjyA+IG1pcmFpem91XCA7CivotrPmuKnlmaggPiBzb2t1b25raVwgOwor5LqM562J5YW1ID4gbml0b3VoZWlcIDsKK+iytOaXj+mZoiA+IGtpem9rdWluXCA7Civntpnpm7vlmaggPiBrZWlkZW5raVwgOwor6KiY5Y+36KuWID4ga2lnb3Vyb25cIDsKK+WQjeipnuWPpSA+IG1laXNoaWt1XCA7CivkvJ3ppqzoiLkgPiB0ZW5tYXNlblwgOwor6YqA5rKz57O7ID4gZ2luZ2FrZWlcIDsKK+Wkp+WuruWPuCA+IGRhaWd1dWppXCA7CivmtYHooYznm64gPiBoYXlhcmltZVwgOwor6YGg6KaW55y8ID4gZW5zaGlnYW5cIDsKK+WNteW3o+eCjiA+IHJhbnNvdWVuXCA7CivmnKrkuqHkurogPiBtaWJvdWppblwgOwor5LiN57WM5riIID4gZnVrZWl6YWlcIDsKK+W8leeUqOespiA+IGluJyd5b3VmdVwgOwor5p+U6YGT5a62ID4ganV1ZG91a2FcIDsKK+S4jeWdh+ihoSA+IGZ1a2lua291XCA7Civlr77oqbHogIUgPiB0YWl3YXNoYVwgOwor6Kif5YuZ6YOoID4gc2hvdW11YnVcIDsKK+W+oemciuWJjSA+IGdvcmVpemVuXCA7CivlhYzmj5vliLggPiBkYWthbmtlblwgOwor5LiN5pGC55SfID4gZnVzZXNzZWlcIDsKK+aXpeacrOmiqCA+IG5paG9uZnV1XCA7CivlgJnoo5zlnLAgPiBrb3Vob2NoaVwgOwor56CC6Ziy5p6XID4gc2Fib3VyaW5cIDsKK+S4i+Wjq+WumCA+IGthc2hpa2FuXCA7CivluILorbDkvJogPiBzaGlnaWthaVwgOwor5LiA5pmC5pyfID4gaWNoaWppa2lcIDsKK+iHquiyoOW/gyA+IGppZnVzaGluXCA7Civnm7jlkIjlgpggPiBhaWFpZ2FzYVwgOwor6KyZ6K2y6KqeID4ga2Vuam91Z29cIDsKK+aJtuaMgeexsyA+IGZ1Y2hpbWFpXCA7Civlho3otbfli5UgPiBzYWlraWRvdVwgOwor542j5Yy75a2mID4ganV1aWdha3VcIDsKK+mdnuW4uOeUqCA+IGhpam91eW91XCA7CivnoLTlu4nmgaUgPiBoYXJlbmNoaVwgOwor5Ye65pS+6aGMID4gZGVob3VkYWlcIDsKK+WuieWumuaEnyA+IGFudGVpa2FuXCA7CivppIrogIHpmaIgPiB5b3Vyb3VpblwgOwor6YeO6Imv54yrID4gbm9yYW5la29cIDsKK+acquS4geW5tCA+IG1pdGVpbmVuXCA7CivlronlrprmgKcgPiBhbnRlaXNlaVwgOwor5rG6566X5pyfID4ga2Vzc2Fua2lcIDsKK+iHquS5l+aguSA+IGppam91a29uXCA7Civlhajojbfph40gPiB6ZW5rYWp1dVwgOwor5aWl5b6h5q6/ID4gb2t1Z290ZW5cIDsKK+ijvemAoOaJgCA+IHNlaXpvdWpvXCA7Civlv6vnlLflhZAgPiBrYWlkYW5qaVwgOwor5pe65paH56S+ID4gb3VidW5zaGFcIDsKK+i2hemfs+azoiA+IGNob3VvbnBhXCA7CivlrojorbfpnIogPiBzaHVnb3JlaVwgOwor5pyo5pu+5bedID4ga2lzb2dhd2FcIDsKK+W8semfs+WZqCA+IGpha3VvbmtpXCA7Civmsbrnrpfml6UgPiBrZXNzYW5iaVwgOwor6Ieq5Li75qipID4gamlzaHVrZW5cIDsKK+iDveW8geWutiA+IG5vdWJlbmthXCA7Civlj6/og73mgKcgPiBrYW5vdXNlaVwgOwor5aSn5pem6YKjID4gb29kYW4nJ25hXCA7CivljbDluqbmlZkgPiBpbmRva3lvdVwgOwor54Sh5Lq65bO2ID4gbXVqaW50b3VcIDsKK+ecn+S8vOS6iyA+IG1hbmVnb3RvXCA7CivorITlhpnlmaggPiB0b3VzaGFraVwgOwor5biw6YKE6ICFID4ga2lrYW5zaGFcIDsKK+WKqeeUo+mZoiA+IGpvc2FuJydpblwgOwor5aWz5bqX5ZOhID4gam90ZW4nJ2luXCA7Civom7jpg6jlsYsgPiB0YWtvYmV5YVwgOwor5LqI566X5LiKID4geW9zYW5qb3VcIDsKK+WumuaZguWItiA+IHRlaWppc2VpXCA7CivmraPlvKbms6IgPiBzZWlnZW5oYVwgOwor5L2Z5omA5LqLID4geW9zb2dvdG9cIDsKK+mmrOm5v+iAhSA+IGJha2Ftb25vXCA7CivlhIDnpLzlhbUgPiBnaXJlaWhlaVwgOwor5pel5pys6YWSID4gbmlob25zaHVcIDsKK+aXqeeUo+WFkCA+IHNvdXphbmppXCA7CivmjqHntr/lmaggPiBzYWltZW5raVwgOwor6Iux6YCj6YKmID4gZWlyZW5wb3VcIDsKK+aXqeeUn+WFkCA+IHNvdXNlaWppXCA7CivliqDnm5/ogIUgPiBrYW1laXNoYVwgOwor6ZmN6Zuo6YePID4ga291dXJ5b3VcIDsKK+itpuWCmeiJhyA+IGtlaWJpdGVpXCA7Civlh7rmnaXkuosgPiBkZWtpZ290b1wgOwor5L6h6Zu75a2QID4ga2FkZW5zaGlcIDsKK+WPpOeUn+eVjCA+IGtvc2Vpa2FpXCA7CivliLbli5XmqZ8gPiBzZWlkb3VraVwgOwor6YeR6a2a5bGLID4ga2luZ3lveWFcIDsKK+acqOWkqeiTvCA+IG1hdGF0YWJpXCA7CivljYroo7jkvZMgPiBoYW5yYXRhaVwgOwor5pel5pys6LuNID4gbmlob25ndW5cIDsKK+aXpeacrOi7iiA+IG5paG9uc2hhXCA7Civkv67nvoXpgZMgPiBzaHVyYWRvdVwgOwor5ZWG6KGM54K6ID4gc2hvdWtvdWlcIDsKK+adoemHjOWItiA+IGpvdXJpc2VpXCA7CivmipXlvbHms5UgPiB0b3VlaWhvdVwgOwor5pyJ5bC+6aGeID4geXV1YmlydWlcIDsKK+asp+e+heW3tCA+IHlvdXJvcHBhXCA7CivkuJbplpPkvZMgPiBzZWtlbnRlaVwgOwor5LyK6YGU5be7ID4gZGF0ZW1ha2lcIDsKK+awtOWIqeaoqSA+IHN1aXJpa2VuXCA7Civlj7LlrablrrYgPiBzaGlnYWtrYVwgOwor57SN5LuY6YeRID4gbm91ZnVraW5cIDsKK+iVjum6puauuyA+IHNvYmFnYXJhXCA7CivmlrnlkJHoiLUgPiBob3Vrb3VkYVwgOwor5aSP6Iez57eaID4gZ2VzaGlzZW5cIDsKK+S4jeWdh+etiSA+IGZ1a2ludG91XCA7CivlroflrpnluL0gPiB1Y2h1dWJvdVwgOwor54Sh6aC85ryiID4gYnVyYWlrYW5cIDsKK+a/g+W6puioiCA+IG5vdWRva2VpXCA7CivkuIDmmKjlubQgPiBvdG90b3NoaVwgOwor5pyq57WM6aiTID4gbWlrZWlrZW5cIDsKK+acneWvneWdiiA+IGFzYW5lYm91XCA7CivpgY7lpKfoppYgPiBrYWRhaXNoaVwgOwor57+h57+g6ImyID4gaGlzdWlpcm9cIDsKK+Wcn+agueaApyA+IGRva29uam91XCA7Civnt4/mqKHmp5ggPiBzb3Vtb3lvdVwgOwor6KiI566X5qmfID4ga2Vpc2Fua2lcIDsKK+W8geW9k+WxiyA+IGJlbnRvdXlhXCA7Civku6PmiZPogIUgPiBkYWlkYXNoYVwgOwor6aKo5aqS6IqxID4gZnV1YmFpa2FcIDsKK+eEoeippumokyA+IG11c2hpa2VuXCA7CivphrjpgKDphaIgPiBqb3V6b3VzdVwgOwor5Y+N5YuV5rS+ID4gaGFuZG91aGFcIDsKK+e1jOa4iOWutiA+IGtlaXphaWthXCA7Civmt4vlt7TohbogPiByaW5wYXNlblwgOwor6Ieq5Li75oCnID4gamlzaHVzZWlcIDsKK+i2iuWkqealvSA+IGV0ZW5yYWt1XCA7CivmqKnliKnph5EgPiBrZW5yaWtpblwgOwor5oWi5oCn5YyWID4gbWFuc2Vpa2FcIDsKK+aOiOS5s+acnyA+IGp1bnl1dWtpXCA7CivlsILploDoqp4gPiBzZW5tb25nb1wgOwor5YmN6Iie5Y+wID4gbWFlYnV0YWlcIDsKK+mBuOenkeeUnyA+IHNlbmthc2VpXCA7CivlraPliIroqowgPiBraWthbnNoaVwgOwor5a6f6Zqb5a62ID4gamlzc2Fpa2FcIDsKK+S4gOaYvOWknCA+IGl0Y2h1dXlhXCA7CivooYborbDpmaIgPiBzaHV1Z2lpblwgOwor5pel5pys6KO9ID4gbmlob25zZWlcIDsKK+WNsOWIpOW4qyA+IGluYmFuc2hpXCA7CivlsI/ngavlmaggPiBzaG91a2FraVwgOwor54Sh6aKo5bivID4gbXVmdXV0YWlcIDsKK+WItuW+oeWZqCA+IHNlaWd5b2tpXCA7CivotbDmn7vnt5ogPiBzb3VzYXNlblwgOwor56m65omL5a62ID4ga2FyYXRla2FcIDsKK+S4jeWZqOmHjyA+IGJ1a2lyeW91XCA7CivlpKnkupXlgKQgPiB0ZW5qb3VuZVwgOwor6KiI566X5pyoID4ga2Vpc2FuZ2lcIDsKK+aOoeeCreaJgCA+IHNhaXRhbmpvXCA7CivlvIHli5nlrpggPiBiZW5tdWthblwgOwor5Y+X55uK5qipID4ganVla2lrZW5cIDsKK+WKoOW3pee0mSA+IGtha291c2hpXCA7CivmlZnli5noqrIgPiBreW91bXVrYVwgOwor6YCj5YuV5qmfID4gcmVuZG91a2lcIDsKK+S6pOW3rueCuSA+IGtvdXNhdGVuXCA7CivorbDkuovpjLIgPiBnaWppcm9rdVwgOwor5YaN5p2l5bm0ID4gc2FyYWluZW5cIDsKK+S4gOaYqOWknCA+IGlzc2FrdXlhXCA7CivlroflrpnlobUgPiB1Y2h1dWppblwgOwor5rC06YGT5bGLID4gc3VpZG91eWFcIDsKK+mHjei7jOadoSA+IGp1dWtpam91XCA7CivpgZXntITph5EgPiBpeWFrdWtpblwgOwor6bia6bWh55eFID4gb3VtdWJ5b3VcIDsKK+WNmOaAp+iKsSA+IHRhbnNlaWthXCA7Civms6jmhI/ngrkgPiBjaHV1aXRlblwgOwor5bi45YKZ6YeRID4gam91YmlraW5cIDsKK+i7ouenu+aApyA+IHRlbicnaXNlaVwgOwor5rS754Gr5bGxID4ga2Fra2F6YW5cIDsKK+WKoOW3peeojiA+IGtha291emVpXCA7Civnvo7nsqfpmaIgPiBiaXNob3VpblwgOwor6Iy2566q56ylID4gY2hhZGFuc3VcIDsKK+WZtOeBq+WxsSA+IGZ1bmthemFuXCA7CivlnLDmlrnmmYIgPiBjaGlob3VqaVwgOwor5oKq6aST6ay8ID4gd2FydWdha2lcIDsKK+WNmuaEm+WutiA+IGhha3VhaWthXCA7Civmg4XloLHpg6ggPiBqb3Vob3VidVwgOwor5pel5pys6Iy2ID4gbmlob25jaGFcIDsKK+WFieihjOW3riA+IGtvdWtvdXNhXCA7CivlpJbogLPpgZMgPiBnYWlqaWRvdVwgOwor5Zyw6ZyH5rOiID4gamlzaGluaGFcIDsKK+S4ieWhgeaJkyA+IHNhbnJ1aWRhXCA7Civli77lvJXnirYgPiBrb3VpbmpvdVwgOwor5Zyw6Zu35rqQID4gamlyYWlnZW5cIDsKK+mbu+apn+WtkCA+IGRlbmtpc2hpXCA7CivluLjlgpnou40gPiBqb3ViaWd1blwgOwor5bCP5Z6L5YyWID4ga29nYXRha2FcIDsKK+WIt+avm+WFiCA+IGhha2VzYWtpXCA7CivpnZLlhoXpmpwgPiBhb3Nva29oaVwgOwor6KmV6K2w5ZOhID4gaHlvdWdpaW5cIDsKK+WFrOWIhuavjSA+IGtvdWJ1bmJvXCA7Civlj6/ogbTluqYgPiBrYWNob3Vkb1wgOwor54Sh5p2h5Lu2ID4gbXVqb3VrZW5cIDsKK+efoumjm+eZvSA+IHlhZ2FzdXJpXCA7CivmiYvohZXlrrYgPiBzaHV3YW5rYVwgOwor5qSc5LqL5q2jID4ga2VuamlzZWlcIDsKK+WBveWWhOiAhSA+IGdpemVuc2hhXCA7CivkvJ3lsI7luqYgPiBkZW5kb3Vkb1wgOwor5YWs5Yuf5YK1ID4ga291Ym9zYWlcIDsKK+apn+mWoumKgyA+IGtpa2FuanV1XCA7Civmrabli4fkvJ0gPiBidXl1dWRlblwgOwor5Yi25b6h5LiLID4gc2VpZ3lva2FcIDsKK+iTruiPr+iNiSA+IHJlbmdlc291XCA7CivloLHnn6XmqZ8gPiBob3VjaGlraVwgOwor5aSP6Iez54K5ID4gZ2VzaGl0ZW5cIDsKK+atpuiKuOiAhSA+IGJ1Z2Vpc2hhXCA7CivotbDppqznga8gPiBzb3VtYXRvdVwgOwor5q2v6LuM5p2hID4gc2hpa2lqb3VcIDsKK+S6jOmHjeeojiA+IG5panV1emVpXCA7CivmraPmr5TkvosgPiBzZWloaXJlaVwgOwor6aCQ6YeR6ICFID4geW9raW5zaGFcIDsKK+WKoOmAn+W6piA+IGthc29rdWRvXCA7CivmraPlvZPljJYgPiBzZWl0b3VrYVwgOwor5omL5LiN6LazID4gdGVidXNva3VcIDsKK+WBtOeBq+WxsSA+IHNva2themFuXCA7CivpgY7kuI3lj4ogPiBrYWZ1a3l1dVwgOwor5q666byg5YmkID4gc2Fzc296YWlcIDsKK+iomOW/teelrSA+IGtpbmVuc2FpXCA7CivkuI3miYvpmpsgPiBmdXRlZ2l3YVwgOwor5LiN562J6L66ID4gZnV0b3VoZW5cIDsKK+iiq+Wus+WcsCA+IGhpZ2FpY2hpXCA7CivmqZ/plqLou4ogPiBraWthbnNoYVwgOwor5pel5pys57SZID4gbmlob25zaGlcIDsKK+Wuh+WumeS6uiA+IHVjaHV1amluXCA7CivmvZzmsLTlpKsgPiBzZW5zdWlmdVwgOwor5b6h6ZmA5LuPID4gb2RhYnV0c3VcIDsKK+WknOWtpuagoSA+IHlhZ2Fra291XCA7Civlho3kuIrmmKAgPiBzYWlqb3VlaVwgOwor5aSW5p2l6KqeID4gZ2FpcmFpZ29cIDsKK+mbo+egtOiIuSA+IG5hbnBhc2VuXCA7Civpp5LkuIvpp4QgPiBrb21hZ2V0YVwgOwor5rOo5oSP5pu4ID4gY2h1dWlzaG9cIDsKK+S6lOmHjeWljyA+IGdvanV1c291XCA7CivmvKvoq4flrrYgPiBtYW5kYW5rYVwgOwor5YCN57K+5bqmID4gYmFpc2VpZG9cIDsKK+e0jeS7mOiAhSA+IG5vdWZ1c2hhXCA7CivlmbTngavlj6MgPiBmdW5rYWtvdVwgOwor5LuL6K235Lq6ID4ga2FpZ29uaW5cIDsKK+mBk+itsOS8miA+IGRvdWdpa2FpXCA7CivmnInmqZ/kvZMgPiB5dXVraXRhaVwgOwor5q2755Sj5YWQID4gc2hpemFuamlcIDsKK+S4jeimj+WJhyA+IGZ1a2lzb2t1XCA7CivmvZzmsLTlmaggPiBzZW5zdWlraVwgOwor5pW05YKZ5belID4gc2VpYmlrb3VcIDsKK+iNkuatpuiAhSA+IGFyYW11c2hhXCA7CivpgaDlnLDngrkgPiBlbmNoaXRlblwgOwor5aSW5a2X57SZID4gZ2FpamlzaGlcIDsKK+S7iuaZguWIhiA+IGltYWppYnVuXCA7Civlj43li5XlrrYgPiBoYW5kb3VrYVwgOwor5qmf6Zai6KqMID4ga2lrYW5zaGlcIDsKK+Wkp+aZpuaXpSA+IG9vbWlzb2thXCA7CivkuI3nsr7lt6cgPiBmdXNlaWtvdVwgOwor5aSn5LiI5aSrID4gZGFpam91YnVcIDsKK+S/neWFqOS8miA+IGhvemVua2FpXCA7CivlkIzntKDkvZMgPiBkb3Vzb3RhaVwgOwor5YaN5Lqk5LuYID4gc2Fpa291ZnVcIDsKK+WkqeaXpeazlSA+IHRlbnBpaG91XCA7CivlrojorbfnpZ4gPiBzaHVnb2ppblwgOwor57WE5ZCI6LK7ID4ga3VtaWFpaGlcIDsKK+iNkuiVquWcsCA+IGtvdWJ1Y2hpXCA7CivmhJvlqpvnnIwgPiBlaGltZWtlblwgOwor6KiI566X5ZmoID4ga2Vpc2Fua2lcIDsKK+acqumdkuW5tCA+IG1pc2VpbmVuXCA7CivkurrkuovmrIQgPiBqaW5qaXJhblwgOwor6ZW36Z+z56ymID4gY2hvdW9ucHVcIDsKK+S4jeWdh+aWiSA+IGZ1a2luc2VpXCA7Civmupblgpnph5EgPiBqdW5iaWtpblwgOwor5reL5be05rayID4gcmlucGFla2lcIDsKK+S6i+WLmemVtyA+IGppbXVjaG91XCA7Civkv67nkIblsYsgPiBzaHV1cml5YVwgOwor5oeQ55aR6KuWID4ga2FpZ2lyb25cIDsKK+WWiemgreeCjiA+IGtvdXRvdWVuXCA7Civnlo7lpJbmhJ8gPiBzb2dhaWthblwgOwor5Yqg6YCf5ZmoID4ga2Fzb2t1a2lcIDsKK+WKoOW3peatryA+IGtha291c2hpXCA7Civluq3kuIvpp4QgPiBuaXdhZ2V0YVwgOwor6Z2e5bi45YukID4gaGlqb3VraW5cIDsKK+mHjueQg+mDqCA+IHlha3l1dWJ1XCA7CivliY3pp4bmiKYgPiB6ZW5rdXNlblwgOwor5oyH5bCO6YOoID4gc2hpZG91YnVcIDsKK+iyoeeUo+WutiA+IHphaXNhbmthXCA7CivlsYXlgqzkv4MgPiBpemFpc29rdVwgOwor5b2T5q2z6aasID4gdG91c2FpYmFcIDsKK+S7geeOi+WKmyA+IG5pb3VyaWtpXCA7CivlpJrogonmnpwgPiB0YW5pa3VrYVwgOwor5pyA55ub5pyfID4gc2Fpc2Vpa2lcIDsKK+WPjeavlOS+iyA+IGhhbnBpcmVpXCA7CivlpbPlrZDpq5ggPiBqb3NoaWtvdVwgOwor6ZaL5Zue6LevID4ga2Fpa2Fpcm9cIDsKK+Wvqeafu+WToSA+IHNoaW5zYWluXCA7Civpup3pppnmsLQgPiBqYWtvdXN1aVwgOwor5pel5pys54qsID4gbmlob25rZW5cIDsKK+S6i+WLmemHjyA+IGppbXVyeW91XCA7CivlvJXnlKjlj6UgPiBpbicneW91a3VcIDsKK+enkeWtpumZoiA+IGthZ2FrdWluXCA7CivliY3poK3pg6ggPiB6ZW50b3VidVwgOwor5Y2B5Zub5pelID4ganV1eW9ra2FcIDsKK+mAo+atjOW4qyA+IHJlbmdhc2hpXCA7CivmlK/mj7TogIUgPiBzaGllbnNoYVwgOwor5qK25pyo5bqnID4ga2FqaWtpemFcIDsKK+WcsOaWueWMuiA+IGNoaWhvdWt1XCA7CivlsbHngavkuosgPiB5YW1ha2FqaVwgOwor5omN5pyq5rqAID4gc2FpbWltYW5cIDsKK+S6uumhnueMvyA+IGppbnJ1aWVuXCA7CivorbDlrprmm7ggPiBnaXRlaXNob1wgOwor6Iy25Z2K5Li7ID4gY2hhYm91enVcIDsKK+WKoOebn+W6lyA+IGthbWVpdGVuXCA7Civnt6nkuIvliaQgPiBrYW5nZXphaVwgOwor6JCM6buE6ImyID4gbW9lZ2lpcm9cIDsKK+epuuawl+mKgyA+IGt1dWtpanV1XCA7CivpubnmsLTmuZYgPiBrYW5zdWlrb1wgOwor5rW36ICB6IWwID4gZWJpZ29zaGlcIDsKK+eUn+ioiOiyuyA+IHNlaWtlaWhpXCA7Civlj4LliqDogIUgPiBzYW5rYXNoYVwgOwor5pel5pys5rW3ID4gbmlob25rYWlcIDsKK+iiq+S5l+aVsCA+IGhpam91c3V1XCA7CivmiYvpoqjnkLQgPiB0ZWZ1dWtpblwgOwor5rOo5oSP5aCxID4gY2h1dWlob3VcIDsKK+miqOaZr+eUuyA+IGZ1dWtlaWdhXCA7Civpm7vlrZDpn7MgPiBkZW5zaGlvblwgOwor6Lui5YyW57OWID4gdGVua2F0b3VcIDsKK+mWiee1jOacnyA+IGhlaWtlaWtpXCA7Civlh7rnhKHnsr4gPiBkZWJ1c2hvdVwgOwor5LqS5Yqp55qEID4gZ29qb3Rla2lcIDsKK+S5vuaJgOW4ryA+IGthbmpvdGFpXCA7CivlpKfpn7Plo7AgPiBkYWlvbmpvdVwgOwor56C055Sj6ICFID4gaGFzYW5zaGFcIDsKK+mWieWbnui3ryA+IGhlaWthaXJvXCA7CivmqZ/plqLntJkgPiBraWthbnNoaVwgOwor6IOh6bq75pOCID4gZ29tYXN1cmlcIDsKK+apn+mbt+WOnyA+IGtpcmFpZ2VuXCA7CivlpJrlrZTmgKcgPiB0YWtvdXNlaVwgOwor5ZCI5oiQ6Z+zID4gZ291c2Vpb25cIDsKK+egtOmtlOW8kyA+IGhhbWF5dW1pXCA7CivpgKDlvbHliaQgPiB6b3VlaXphaVwgOwor5YCm5oCg5pyfID4ga2VudGFpa2lcIDsKK+acque0jeiAhSA+IG1pbm91c2hhXCA7Civkuozph43mmJ8gPiBuaWp1dXNlaVwgOwor57mB5L2T5a2XID4gaGFudGFpamlcIDsKK+a2iOmfs+WZqCA+IHNob3VvbmtpXCA7CivlpJrkurrmlbAgPiB0YW5pbnp1dVwgOwor6LW05Lu75ZywID4gZnVuaW5jaGlcIDsKK+WPpOeUn+S7oyA+IGtvc2VpZGFpXCA7Civoip3lsYXmsJcgPiBzaGliYWlnZVwgOwor5qiq5bqn5qiZID4gb3V6YWh5b3VcIDsKK+iHquitpuWboyA+IGppa2VpZGFuXCA7CivmmqvlrprmoYggPiB6YW50ZWlhblwgOwor6a2a5biC5aC0ID4gdW9pY2hpYmFcIDsKK+mnhemmrOi7iiA+IGVraWJhc2hhXCA7Civlr77oqbHkvZMgPiB0YWl3YXRhaVwgOwor5riF5o6D5aSrID4gc2Vpc291ZnVcIDsKK+mrmOaEn+W6piA+IGtvdWthbmRvXCA7CivntIDlhYPliY0gPiBraWdlbnplblwgOwor56Oo56CU57SZID4gbWFrZW5zaGlcIDsKK+eBq+icpeictCA+IGhpdG9rYWdlXCA7Civml6LlqZrogIUgPiBraWtvbnNoYVwgOwor5pCs6YCB5rOiID4gaGFuc291aGFcIDsKK+eWjumWi+iAhSA+IHNva2Fpc2hhXCA7CivmgJ3mg7PlrrYgPiBzaGlzb3VrYVwgOwor5bKp55Sw5bivID4gaXdhdGFvYmlcIDsKK+mWi+mWieapnyA+IGthaWhlaWtpXCA7Civluo/noLTmgKUgPiBqb2hha3l1dVwgOwor6Laz5b+g5a6fID4gYXNoaW1hbWVcIDsKK+WNiua4m+acnyA+IGhhbmdlbmtpXCA7Civoh6rnhLbnvo4gPiBzaGl6ZW5iaVwgOwor5YmN5LiW57SAID4gemVuc2Vpa2lcIDsKK+eglOejqOe0mSA+IGtlbm1hc2hpXCA7CivpnZLlhpnnnJ8gPiBhb2phc2hpblwgOwor56WI56W35pu4ID4ga2l0b3VzaG9cIDsKK+W4sOmChOWFtSA+IGtpa2FuaGVpXCA7CivplonntYzlvowgPiBoZWlrZWlnb1wgOwor5aSa5pa56Z2iID4gdGFob3VtZW5cIDsKK+eHleWwvuacjSA+IGVuYmlmdWt1XCA7CivnpoDorbDmm7ggPiByaW5naXNob1wgOwor54i25YWE5LyaID4gZnVrZWlrYWlcIDsKK+mrmOm6l+alvSA+IGtvbWFnYWt1XCA7Civlhajnm5vmnJ8gPiB6ZW5zZWlraVwgOwor5LqI5oOz5aSWID4geW9zb3VnYWlcIDsKK+aJgeahg+ayuSA+IGhlbnRvdXl1XCA7CivpnZLlubTmnJ8gPiBzZWluZW5raVwgOwor5Z2H562J5YyWID4ga2ludG91a2FcIDsKK+WPl+mok+iAhSA+IGp1a2Vuc2hhXCA7CivmmYLku6Pnm7ggPiBqaWRhaXNvdVwgOwor5aKX5Yqg5YiGID4gem91a2FidW5cIDsKK+S6jOmAo+mKgyA+IG5pcmVuanV1XCA7CivkuIDlm57ou6IgPiBpa2thaXRlblwgOwor5Li76ISz6YOoID4gc2h1bm91YnVcIDsKK+e0jeS7mOabuCA+IG5vdWZ1c2hvXCA7CivljZjlvIHoirEgPiB0YW5iZW5rYVwgOwor5rWB5rWq6ICFID4gcnVyb3VzaGFcIDsKK+iNkuWIqeebiiA+IGFyYXJpZWtpXCA7Civoj5PlrZDnm4YgPiBrYXNoaWJvblwgOwor5YWs55So6KqeID4ga291eW91Z29cIDsKK+WkqumZveeCiSA+IHRhaXlvdXJvXCA7Civlj5fouqvlvaIgPiB1a2VtaWtlaVwgOwor5rCR5Za25YyWID4gbWluJydlaWthXCA7CivkurrmnJvlrrYgPiBqaW5ib3VrYVwgOwor57eP5LqM6ZqOID4gc291bmlrYWlcIDsKK+ino+mbh+iAhSA+IGthaWtvc2hhXCA7CivmvKLmmYLku6MgPiBrYW5qaWRhaVwgOwor5YaF5aSW6YeOID4gbmFpZ2FpeWFcIDsKK+eJh+S7ruWQjSA+IGthdGFrYW5hXCA7CivohLHooaPmiYAgPiBkYXRzdWlqb1wgOwor5LiN6YyG6Yu8ID4gZnVzZWlrb3VcIDsKK+i0iOS4juiAhSA+IHpvdXlvc2hhXCA7Civkv53lrojns7sgPiBob3NodWtlaVwgOwor5rW36aas5ZueID4ga2FpYmFrYWlcIDsKK+iHquWgleiQvSA+IGppZGFyYWt1XCA7CivmnKzloYHmiZMgPiBob25ydWlkYVwgOwor5oSb6aSQ5LyaID4gYWlzYW5rYWlcIDsKK+WvvuaKl+mmrCA+IHRhaWtvdWJhXCA7Civku67lkI3mlocgPiBrYW5hYnVtaVwgOwor6IOh6bq75aGpID4gZ29tYXNoaW9cIDsKK+WKoOW3peWTgSA+IGtha291aGluXCA7CivmqKnliKnmm7ggPiBrZW5yaXNob1wgOwor5buD6KaB57SgID4gaGFpeW91c29cIDsKK+epuuaDs+WutiA+IGt1dXNvdWthXCA7Civml6LlrprlgKQgPiBraXRlaWNoaVwgOwor6LKp5aOy6YOoID4gaGFuYmFpYnVcIDsKK+ecvOmPoeWxiyA+IG1lZ2FuZXlhXCA7CivliY3kuJbnlYwgPiB6ZW5zZWthaVwgOwor5pys5aC05omAID4gaG9uYmFzaG9cIDsKK+iZmueEoeWFmiA+IGt5b211dG91XCA7CivkurrpoZ7mhJsgPiBqaW5ydWlhaVwgOwor5LqM6YeN5aWPID4gbmlqdXVzb3VcIDsKK+aEm+WlveiAhSA+IGFpa291c2hhXCA7CivlkIjmiJDoqp4gPiBnb3VzZWlnb1wgOwor55+z54Gr55+iID4gaXNoaWJpeWFcIDsKK+WHuue0jeewvyA+IHN1aXRvdWJvXCA7Civou43nrqHljLogPiBndW5rYW5rdVwgOwor56eL55Sw55yMID4gYWtpdGFrZW5cIDsKK+WEkuWtpueVjCA+IGp1Z2Fra2FpXCA7CivkuIvmiYvns54gPiBoZXRha3Vzb1wgOwor5pyq5aK+5ZywID4gbWlrb25jaGlcIDsKK+Wkp+WkmuaVsCA+IGRhaXRhc3V1XCA7CivlrZDljYjnt5ogPiBzaGlnb3NlblwgOwor5q2j5bi45YyWID4gc2Vpam91a2FcIDsKK+eZuumFtee0oCA+IGhha2tvdXNvXCA7Civot53pm6LoqIggPiBreW9yaWtlaVwgOwor6Ii55bCP5bGLID4gZnVuYWdveWFcIDsKK+mGuOmAoOaJgCA+IGpvdXpvdWpvXCA7CivlpKfntI3oqIAgPiBkYWluYWdvblwgOwor5aSp5paH5a62ID4gdGVubW9ua2FcIDsKK+aooemAoOiAhSA+IG1vem91c2hhXCA7Civlr53kuI3otrMgPiBuZWJ1c29rdVwgOwor5bCC6ZaA5a62ID4gc2VubW9ua2FcIDsKK+acqueEtuW9oiA+IG1pemVua2VpXCA7Civliaroo4HmqZ8gPiBzZW5zYWlraVwgOwor6LO86LK36YOoID4ga291YmFpYnVcIDsKK+aFiOWWhOS8miA+IGppemVua2FpXCA7CivmgqrotqPlkbMgPiBha3VzaHVtaVwgOwor6LSI5LiO56iOID4gem91eW96ZWlcIDsKK+S/neWtmOezuyA+IGhvem9ua2VpXCA7CivmsJfli5Xou4ogPiBraWRvdXNoYVwgOwor5rC45L2P6ICFID4gZWlqdXVzaGFcIDsKK+acqueGn+WFkCA+IG1panVrdWppXCA7CivoqJjlv7Xlk4EgPiBraW5lbmhpblwgOwor56C055Oc55eFID4gaGFrYWJ5b3VcIDsKK+egtOeUo+azlSA+IGhhc2FuaG91XCA7CivlgZzpm7vml6UgPiB0ZWlkZW5iaVwgOwor5Y+X6aiT55SfID4ganVrZW5zZWlcIDsKK+mZuOiSuOawlyA+IG9rYWpvdWtpXCA7Civlrp/ooYzmmYIgPiBqaWtrb3VqaVwgOwor5qih6YCg57SZID4gbW96b3VzaGlcIDsKK+S6jOWOn+WtkCA+IG5pZ2Vuc2hpXCA7Civku5bmiYDogIUgPiB5b3NvbW9ub1wgOwor56eL55Sw54qsID4gYWtpdGFrZW5cIDsKK+S4h+WbveaXlyA+IGJhbmtva2tpXCA7Civkuovli5nnmoQgPiBqaW11dGVraVwgOwor5o6o56e755qEID4gc3VpaXRla2lcIDsKK+epuuawl+eptCA+IGt1dWtpYW5hXCA7Civlj5flrrnogIUgPiBqdXlvdXNoYVwgOwor57Og5ZGz5ZmMID4gbnVrYW1pc29cIDsKK+aWueW9ouazoiA+IGhvdWtlaWhhXCA7CivmiKbliY3mtL4gPiBzZW56ZW5oYVwgOwor5Yem55CG5aC0ID4gc2hvcmlqb3VcIDsKK+S6jOW8pueQtCA+IG5pZ2Vua2luXCA7CivphZLpgKDlrrYgPiBzaHV6b3VrYVwgOwor5o6y56S65p2/ID4ga2VpamliYW5cIDsKK+WGhemiqOWRgiA+IHVjaGlidXJvXCA7CivkuK3lirTlp5QgPiBjaHV1cm91aVwgOwor5oSb54yr5a62ID4gYWlieW91a2FcIDsKK+S4ieWbnuW/jCA+IHNhbmthaWtpXCA7Civnt4/ku5XoiJ4gPiBzb3VqaW1haVwgOwor6Ya46YCg5a62ID4gam91em91a2FcIDsKK+S6pOS7mOmHkSA+IGtvdWZ1a2luXCA7CivmiYfpoqjmqZ8gPiBzZW5wdXVraVwgOwor5YWo5YCZ6KOcID4gemVua291aG9cIDsKK+eQhuaDs+irliA+IHJpc291cm9uXCA7Civml6XmnKzlj7IgPiBuaWhvbnNoaVwgOwor5ryi5pWw5a2XID4ga2Fuc3V1amlcIDsKK+i8neeFjOW4nSA+IGtpa291dGVpXCA7CivmlK/mjIHogIUgPiBzaGlqaXNoYVwgOwor5aSn5paH5a2XID4gZGFpbW9uamlcIDsKK+WtkOWNiOeSsCA+IHNoaWdva2FuXCA7Civoibbnpo/lrrYgPiBlbnB1a3VrYVwgOwor6ZaL6ZaJ5ZmoID4ga2FpaGVpa2lcIDsKK+WwgumWgOWMuyA+IHNlbm1vbicnaVwgOwor5pu05bm05pyfID4ga291bmVua2lcIDsKK+WwgumWgOWMliA+IHNlbm1vbmthXCA7Civml6XmnKzliIAgPiBuaWhvbnRvdVwgOwor5LiN6KGM5YSAID4gZnVneW91Z2lcIDsKK+W4sOW3o+aApyA+IGtpc291c2VpXCA7CivkuIvmiYvniakgPiBnZXRlbW9ub1wgOwor5o+Q5qGI6ICFID4gdGVpYW5zaGFcIDsKK+WPl+S/oeapnyA+IGp1c2hpbmtpXCA7Civmj5rlrZDmsZ8gPiB5b3VzdWtvdVwgOwor57WM5bi46LK7ID4ga2Vpam91aGlcIDsKK+a1t+eOi+aYnyA+IGthaW91c2VpXCA7CivlubznqJrlnJIgPiB5b3VjaGllblwgOwor5LyB55S76KqyID4ga2lrYWt1a2FcIDsKK+aciOahguaouSA+IGdla2tlaWp1XCA7CivmnKroqJjlhaUgPiBtaWtpbnl1dVwgOwor56CU56Oo5p2QID4ga2VubWF6YWlcIDsKK+S6jOW5tOiNiSA+IG5pbmVuc291XCA7Civnvqnli4fou40gPiBnaXl1dWd1blwgOwor5paH6Kqe5paHID4gYnVuZ29idW5cIDsKK+iqleeUn+aXpSA+IHRhbmpvdWJpXCA7Civph5HmmYLoqIggPiBraW5kb2tlaVwgOwor56m65rSe5YyWID4ga3V1ZG91a2FcIDsKK+eznuWRs+WZjCA+IGt1c29taXNvXCA7Civml6XmnKzkurogPiBuaWhvbmppblwgOwor5oCn6YGK5oivID4gc2VpeXV1Z2lcIDsKK+asoeeCueiAhSA+IGppdGVuc2hhXCA7CivpmLLohZDliaQgPiBib3VmdXphaVwgOwor5pel5pys5LitID4gbmlob25qdXVcIDsKK+iFleebuOaSsiA+IHVkZXp1bW91XCA7CivkuI3nr4DliLYgPiBmdXNlc3NlaVwgOwor5Zyw5Z+f5beuID4gY2hpaWtpc2FcIDsKK+S/neitt+mzpSA+IGhvZ29jaG91XCA7CivlsI/miYvlhYggPiBrb3Rlc2FraVwgOwor54Sh6ZmN5rC0ID4gbXVrb3VzdWlcIDsKK+m8u+WRvOWQuCA+IGJpa29reXV1XCA7Civph43pqI7lhbUgPiBqdXVraWhlaVwgOwor5Y+k5Luj5Y+yID4ga29kYWlzaGlcIDsKK+iDveiInuWPsCA+IG5vdWJ1dGFpXCA7Civnq7bppqzppqwgPiBrZWliYXVtYVwgOwor5YWN56ef5ZywID4gbWVuc29jaGlcIDsKK+S6jOasoeeahCA+IG5paml0ZWtpXCA7CivmvJTlpY/ogIUgPiBlbnNvdXNoYVwgOwor5YW35L2T5oCnID4gZ3V0YWlzZWlcIDsKK+S4gOetiei7iiA+IGl0dG91c2hhXCA7CivkuI3lk4HooYwgPiBmdWhpbmtvdVwgOwor54m556eR5YW1ID4gdG9ra2FoZWlcIDsKK+iEguiCquayuSA+IHNoaWJvdXl1XCA7Civlt6blpKfoh6MgPiBzYWRhaWppblwgOwor6YeR5a2X5aGUID4ga2luaml0b3VcIDsKK+mrmOmHjuWxsSA+IGtvdXlhc2FuXCA7CivlpKfnhorluqcgPiBvb2d1bWF6YVwgOwor5YaS6Zm65a62ID4gYm91a2Vua2FcIDsKK+Whqea/g+W6piA+IGVuJydub3Vkb1wgOwor5pel5LmD5Li4ID4gaGlub21hcnVcIDsKK+S9leWHpui/hCA+IGRva29tYWRlXCA7Civov5HkvLzlgKQgPiBraW5qaWNoaVwgOwor6YCP56OB5oCnID4gdG91amlzZWlcIDsKK+S/neitt+mgmCA+IGhvZ29yeW91XCA7CivnibnmtL7lk6EgPiB0b2t1aGFpblwgOwor5ZS+5ray6IW6ID4gZGFla2lzZW5cIDsKK+W6reacqOaIuCA+IG5pd2FraWRvXCA7Civlvozmj7TogIUgPiBrb3VlbnNoYVwgOwor6buE6YmE6YmxID4gb3V0ZWtrb3VcIDsKK+WPpOS7o+S6uiA+IGtvZGFpamluXCA7Civkuovli5nmnI0gPiBqaW11ZnVrdVwgOwor5bCP6bqm57KJID4ga29tdWdpa29cIDsKK+S4jea6tuaApyA+IGZ1eW91c2VpXCA7CivpoafllY/lm6MgPiBrb21vbmRhblwgOwor5L+d5pyJ6ICFID4gaG95dXVzaGFcIDsKK+mBv+eXhemZoiA+IGhpYnlvdWluXCA7CivliY3mma/msJcgPiBtYWVnZWlraVwgOwor5qmf6Zai5aOrID4ga2lrYW5zaGlcIDsKK+WkluS6pOWToSA+IGdhaWtvdWluXCA7CivpioXnm7jloLQgPiBkb3Vzb3ViYVwgOwor5YK+5pac5bqmID4ga2Vpc2hhZG9cIDsKK+mrmOW6puioiCA+IGtvdWRva2VpXCA7Civov5HmnKrmnaUgPiBraW5taXJhaVwgOwor5o2V6a+o6Ii5ID4gaG9nZWlzZW5cIDsKK+WKoOWus+iAhSA+IGthZ2Fpc2hhXCA7CivmlbDnj6DnjokgPiBqdXp1ZGFtYVwgOwor5omL57695YWIID4gdGViYXNha2lcIDsKK+ijnOWKqee/vCA+IGhvam95b2t1XCA7CivmhYjmgrLlv4MgPiBqaWhpc2hpblwgOwor5aSW6LKo5YK1ID4gZ2Fpa2FzYWlcIDsKK+aDheWgseWMliA+IGpvdWhvdWthXCA7Civnt4/kuojnrpcgPiBzb3V5b3NhblwgOwor55yf5aSc5LitID4gbWF5b25ha2FcIDsKK+S4i+aEj+itmCA+IGthaXNoaWtpXCA7Civku6PnqL3lj6QgPiBkYWlnZWlrb1wgOwor5rC45L2P5qipID4gZWlqdXVrZW5cIDsKK+S/neacieexsyA+IGhveXV1bWFpXCA7Civoh6rlm73oqp4gPiBqaWtva3Vnb1wgOwor5Y+N5a++6KqeID4gaGFudGFpZ29cIDsKK+WkieeVsOS9kyA+IGhlbicnaXRhaVwgOwor5Yip5bex55qEID4gcmlrb3Rla2lcIDsKK+W7uuWFt+WxiyA+IHRhdGVndXlhXCA7CivpmLLlr5LlhbcgPiBib3VrYW5ndVwgOwor5aWz5a2m5qChID4gam9nYWtrb3VcIDsKK+S/neWuiOaApyA+IGhvc2h1c2VpXCA7Civlpb3mma/msJcgPiBrb3VrZWlraVwgOwor5Lqk5LuY6ICFID4ga291ZnVzaGFcIDsKK+WPr+WkieaVsCA+IGthaGVuc3V1XCA7CivoirHmloflrZcgPiBoYW5hbW9qaVwgOwor6Z2i5Lya5pelID4gbWVua2FpYmlcIDsKK+eFmeiNieWxiyA+IHRhYmFrb3lhXCA7Civpm6jmqKHmp5ggPiBhbWVtb3lvdVwgOwor5o+657GD5pyfID4geW91cmFua2lcIDsKK+eqgeegtOWPoyA+IHRvcHBha291XCA7Civov5Hku6PljJYgPiBraW5kYWlrYVwgOwor54K554Gr57O7ID4gdGVua2FrZWlcIDsKK+S6jOW5tOeUnyA+IG5pbmVuc2VpXCA7CivmmJ/msJfkvZMgPiBzZWlraXRhaVwgOwor5LiN562J5Y+3ID4gZnVkb3Vnb3VcIDsKK+S6lOi+uuW9oiA+IGdvaGVua2VpXCA7CivkuozovKrou4ogPiBuaXJpbnNoYVwgOwor55So566q56ylID4geW91ZGFuc3VcIDsKK+WGt+iUteW6qyA+IHJlaXpvdWtvXCA7CivkuI3miYDlrZggPiBmdXNob3pvblwgOwor5oqV5YWJ5ZmoID4gdG91a291a2lcIDsKK+Wls+WtkOagoSA+IGpvc2hpa291XCA7CivmtZzojITlrZAgPiBoYW1hbmFzdVwgOwor5Y+k5pu45bGVID4ga29zaG90ZW5cIDsKK+S6jOWNgeS7oyA+IG5panV1ZGFpXCA7CivluILooZflm7MgPiBzaGlnYWl6dVwgOwor5qi55p6d54q2ID4ganVzaGlqb3VcIDsKK+W6j+ebpOaIpiA+IGpvYmFuc2VuXCA7CivngavmiJDlsqkgPiBrYXNlaWdhblwgOwor57WE5ZCI5ZOhID4ga3VtaWFpaW5cIDsKK+S6nOiEseiHvCA+IGFkYWtreXV1XCA7CivprLHph5HoibIgPiB1a29uJydpcm9cIDsKK+msvOatpuiAhSA+IG9uaW11c2hhXCA7CivmlpzmipXlvbEgPiBzaGF0b3VlaVwgOwor5ruR56m65qmfID4ga2Fra3V1a2lcIDsKK+i7vemojuWFtSA+IGtlaWtpaGVpXCA7CivkuozlhYPoq5YgPiBuaWdlbnJvblwgOwor5omL5paZ55CGID4gdGVyeW91cmlcIDsKK+WNmOWIqeazlSA+IHRhbnJpaG91XCA7CivlvqHnpZ7ovL8gPiBvbWlrb3NoaVwgOwor5YWI6Yut5YyWID4gc2VuJydlaWthXCA7CivmkpLluIPliaQgPiBzYXBwdXphaVwgOwor5ZGJ5pyN5bGLID4gZ29mdWt1eWFcIDsKK+WPl+S/oeWZqCA+IGp1c2hpbmtpXCA7Civmurbop6PngokgPiB5b3VrYWlyb1wgOwor5Y+v5aSJ5oCnID4ga2FoZW5zZWlcIDsKK+W5tOm9ouW3riA+IG5lbnJlaXNhXCA7CivliIDlnK3lrrYgPiB0b3VrZWlrYVwgOwor6bOz5LuZ6IqxID4gaG91c2Vua2FcIDsKK+WwjuazoueuoSA+IGRvdWhha2FuXCA7CivljZjmr5TkvosgPiB0YW5waXJlaVwgOwor5o2V6a+o56CyID4gaG9nZWlob3VcIDsKK+ebtOi2s+iiiyA+IGppa2F0YWJpXCA7CivmgqrlpKrpg44gPiBha3V0YXJvdVwgOwor5pyJ55CG5pWwID4geXV1cmlzdXVcIDsKK+mDqOWIhuWTgSA+IGJ1YnVuaGluXCA7Civlj6/nh4PmgKcgPiBrYW5lbnNlaVwgOwor5LiN5ZaE5oSfID4gZnV6ZW5rYW5cIDsKK+a0l+mdouaJgCA+IHNlbm1lbmpvXCA7CivpgIHmsrnnrqEgPiBzb3V5dWthblwgOwor5qC85a2Q5oi4ID4ga291c2hpZG9cIDsKK+WFt+S9k+S+iyA+IGd1dGFpcmVpXCA7CivmlK/mjIHmna0gPiBzaGlqaWtvdVwgOwor54Sh6ZmQ5aSnID4gbXVnZW5kYWlcIDsKK+eyvuexs+aJgCA+IHNlaW1haWpvXCA7CivntbHoqp7oq5YgPiB0b3Vnb3JvblwgOwor5pyq6ZaL5aK+ID4gbWlrYWlrb25cIDsKK+S9nOalreiyuyA+IHNhZ3lvdWhpXCA7CivlpKfpmKrlupwgPiBvb3Nha2FmdVwgOwor54yK576O5riTID4gZ2VpYmlrZWlcIDsKK+aJk+aSg+eOiyA+IGRhZ2VraW91XCA7CivluoPokYnmqLkgPiBrb3V5b3VqdVwgOwor6I2J5Ym15pyfID4gc291c291a2lcIDsKK+S+jeihm+mVtyA+IGppZWljaG91XCA7CivkuozpgLLmnKggPiBuaXNoaW5naVwgOwor6aGV5Zyo5YyWID4ga2VuemFpa2FcIDsKK+WGjeippuWQiCA+IHNhaXNoaWFpXCA7CivkvJ3pn7PlmaggPiBkZW4nJ29ua2lcIDsKK+e+qeWLmeeahCA+IGdpbXV0ZWtpXCA7CivovLjljbXnrqEgPiB5dXJhbmthblwgOwor5L2O5Yip6YeRID4gdGVpcmlraW5cIDsKK+aIpuWIqeWTgSA+IHNlbnJpaGluXCA7Civmlofoqp7kvZMgPiBidW5nb3RhaVwgOwor5Lm+5oCn5rK5ID4ga2Fuc2VpeXVcIDsKK+aTgueyieacqCA+IHN1cmlrb2dpXCA7CivmjIflsI7lk6EgPiBzaGlkb3VpblwgOwor5pyq6ZaL5ZywID4gbWlrYWljaGlcIDsKK+enmOabuOWumCA+IGhpc2hva2FuXCA7CivmrablrrbniakgPiBidWtlbW9ub1wgOwor5pW055CG5Yi4ID4gc2VpcmlrZW5cIDsKK+iCsumbm+WZqCA+IGlrdXN1dWtpXCA7CivlnKfmkL7mqZ8gPiBhc3Nha3VraVwgOwor5LqM5YiG5rOVID4gbmlidW5ob3VcIDsKK+a3t+aIkOiqniA+IGtvbnNlaWdvXCA7Civnj4jnkLLoi5EgPiBrb3VoaWllblwgOwor5LqM6YOo5L2cID4gbmlidXNha3VcIDsKK+e3j+S8muWxiyA+IHNvdWthaXlhXCA7Civku5XmiYvmiKYgPiBzaGl0ZXNlblwgOwor5aW95aW954i6ID4ga291a291eWFcIDsKK+eojuWLmee9siA+IHplaW11c2hvXCA7Civosqnlo7LmqZ8gPiBoYW5iYWlraVwgOwor56m65rCX5a2UID4ga3V1a2lrb3VcIDsKK+eWsuWKtOaEnyA+IGhpcm91a2FuXCA7CivmlL7msLTot68gPiBob3VzdWlyb1wgOwor5Lya6K2w5omAID4ga2FpZ2lzaG9cIDsKK+W9ouWuueiqniA+IGtlaXlvdWdvXCA7CivkuIDlm57miKYgPiBpa2thaXNlblwgOwor55aR5ZWP6KmeID4gZ2ltb25zaGlcIDsKK+iLpuWKtOS6uiA+IGt1cm91bmluXCA7CivogZbngavlj7AgPiBzZWlrYWRhaVwgOwor5rC05L2N5qiZID4gc3VpaWh5b3VcIDsKK+aCsuims+irliA+IGhpa2Fucm9uXCA7CivlpoToqp7miJIgPiBtb3Vnb2thaVwgOwor5rC45bCP5L2cID4gZWlrb3Nha3VcIDsKK+eCree0oOmLvCA+IHRhbnNva291XCA7CivnuYrntq3mnZ8gPiBzZW5pc29rdVwgOwor6Kej5pS+5Yy6ID4ga2FpaG91a3VcIDsKK+S/neWuiOWFmiA+IGhvc2h1dG91XCA7CivntIXkuIDngrkgPiBrb3VpdHRlblwgOwor5LyB5qWt5a62ID4ga2lneW91a2FcIDsKK+WutuW6reeUqCA+IGthdGVpeW91XCA7CivomZrnqbrolLUgPiBrb2t1dXpvdVwgOwor5Lya6KiI6KqyID4ga2Fpa2Vpa2FcIDsKK+WLpOWLmeiAhSA+IGtpbm11c2hhXCA7Civot53pm6LmhJ8gPiBreW9yaWthblwgOwor5LiN5oiQ5YqfID4gZnVzZWlrb3VcIDsKK+eliOW5tOelrSA+IGtpbmVuc2FpXCA7CivnnIvorbfms5UgPiBrYW5nb2hvdVwgOwor5YKs5LqL5aC0ID4gc2Fpamlqb3VcIDsKK+msvOWFtemaiiA+IGtpaGVpdGFpXCA7CivlpbPlrZDlpKcgPiBqb3NoaWRhaVwgOwor5ZSv5oiR6KuWID4geXVpZ2Fyb25cIDsKK+acquijveWTgSA+IG1pc2VpaGluXCA7CivnhKHntbHliLYgPiBtdXRvdXNlaVwgOwor6YCg6Ii55omAID4gem91c2Vuam9cIDsKK+i6q+aUr+W6piA+IG1paml0YWt1XCA7Civph5HmnKzkvY0gPiBraW5ob24nJ2lcIDsKK+WkmumdouaApyA+IHRhbWVuc2VpXCA7CivlpKflnovmqZ8gPiBvb2dhdGFraVwgOwor5pyq6ZaL5Lq6ID4gbWlrYWlqaW5cIDsKK+iXgeWxi+aguSA+IHdhcmF5YW5lXCA7CivmnIjkuJbnlYwgPiBnZXNzZWthaVwgOwor5b6X5oSP6aGUID4gdG9rdWlnYW9cIDsKK+aJi+mWk+mamSA+IHRlbWFoaW1hXCA7CivnqbrmsJflj6MgPiBrdXVraWtvdVwgOwor5pS/5rK754qvID4gc2VpamloYW5cIDsKK+a0l+mdouWZqCA+IHNlbm1lbmtpXCA7CivkurrmloflrZcgPiBoaXRvbW9qaVwgOwor5qih6YCg5ZOBID4gbW96b3VoaW5cIDsKK+WRvOWQuOWZqCA+IGtva3l1dWtpXCA7CivlnJ/lnLDpkZEgPiB0b2NoaWthblwgOwor5rCX6YCB566hID4ga2lzb3VrYW5cIDsKK+S9jumHkeWIqSA+IHRlaWtpbnJpXCA7CivluL3lrZDlsYsgPiBib3VzaGl5YVwgOwor5b6h5oiQ5YqfID4gZ29zZWlrb3VcIDsKK+ePiueRmua1tyA+IHNhbmdva2FpXCA7Civmm7PlhYnlvL4gPiBlaWtvdWRhblwgOwor5Y2D6YeM55y8ID4gc2VucmlnYW5cIDsKK+iQveS4i+WCmCA+IHJha2thc2FuXCA7CivmuKHoiKrogIUgPiB0b2tvdXNoYVwgOwor5LiL5omL5Lq6ID4gZ2VzaHVuaW5cIDsKK+WHpuWls+aelyA+IHNob2pvcmluXCA7Civkuovmpa3pg6ggPiBqaWd5b3VidVwgOwor5a+M5bGx5oi/ID4gZnV6YW5ib3VcIDsKK+aOpeW+heiyuyA+IHNldHRhaWhpXCA7CivnuYrntq3mgKcgPiBzZW4nJ2lzZWlcIDsKK+aJi+ipseazlSA+IHNodXdhaG91XCA7Civkv53ppIrlnLAgPiBob3lvdWNoaVwgOwor5Yip5bex5b+DID4gcmlrb3NoaW5cIDsKK+eCueeBq+agkyA+IHRlbmthc2VuXCA7CivpjpTpibHngokgPiB5b3Vrb3Vyb1wgOwor5Y+v5o+b576kID4ga2FrYW5ndW5cIDsKK+S8muitsOWgtCA+IGthaWdpam91XCA7CivkurrpnZ7kurogPiBuaW5waW5pblwgOwor6Iqx57KJ566hID4ga2FmdW5rYW5cIDsKK+mBjua/gOa0viA+IGthZ2VraWhhXCA7Civmurbop6PluqYgPiB5b3VrYWlkb1wgOwor5Y+l6Kqt54K5ID4ga3V0b3V0ZW5cIDsKK+aNnOafu+mZoyA+IHNvdXNhamluXCA7CivkvIHmpa3ljJYgPiBraWd5b3VrYVwgOwor5Za25Yip55qEID4gZWlyaXRla2lcIDsKK+iiq+eBveiAhSA+IGhpc2Fpc2hhXCA7CivkuI3lvpPpoIYgPiBmdWp1dWp1blwgOwor5Y+N5bCE54KJID4gaGFuc2hhcm9cIDsKK+S9neWDgueXhSA+IGt1cnVieW91XCA7Civpg73kvJrkurogPiB0b2thaWppblwgOwor5ZGq56aB6YGTID4ganVrb25kb3VcIDsKK+WPpOeJiOacrCA+IGtvaGFuYm9uXCA7CivmuKzlgJnmiYAgPiBzb2trb3Vqb1wgOwor5rS+6YGj6ZqKID4gaGFrZW50YWlcIDsKK+atk+i/juWutCA+IGthbmdlaWVuXCA7CivmiJDlip/oo6EgPiBzZWlrb3VyaVwgOwor5a625bqt5qyEID4ga2F0ZWlyYW5cIDsKK+WkmuWkieaVsCA+IHRhaGVuc3V1XCA7CivnlLfmgKfnvo4gPiBkYW5zZWliaVwgOwor6auY5qmf6IO9ID4ga291a2lub3VcIDsKK+S6uumWk+iLpiA+IG5pbmdlbmt1XCA7CivkuInlkbPnt5ogPiBzaGFtaXNlblwgOwor5a+/5Zac54S8ID4gc3VraXlha2lcIDsKK+WQjOeoi+W6piA+IGRvdXRlaWRvXCA7Civlpb3loanoj4wgPiBrb3VlbmtpblwgOwor6YCB5rCX566hID4gc291a2lrYW5cIDsKK+eKoOeJsuiAhSA+IGdpc2Vpc2hhXCA7CivoirHntIvmnb8gPiBrYW1vbmJhblwgOwor6Zu75a2Q5YyWID4gZGVuc2hpa2FcIDsKK+WwveacquadpSA+IGppbm1pcmFpXCA7Civlj6Xoqq3ms5UgPiBrdXRvdWhvdVwgOwor5aW95aSp5rCXID4ga291dGVua2lcIDsKK+a1hOWMluanvSA+IGpvdWthc291XCA7CivmnInlo7Dpn7MgPiB5dXVzZWlvblwgOwor5Y+N5L2c55SoID4gaGFuc2F5b3VcIDsKK+WFqOiHquWLlSA+IHplbmppZG91XCA7Civlj43lr77mtL4gPiBoYW50YWloYVwgOwor5Yem5aWz5oCnID4gc2hvam9zZWlcIDsKK+aJi+mWk+izgyA+IHRlbWFjaGluXCA7CivkuIDlm57liIYgPiBpa2thaWJ1blwgOwor572554G96ICFID4gcmlzYWlzaGFcIDsKK+iyr+eCreaJgCA+IGNob3RhbmpvXCA7CivmnInkurrljJYgPiB5dXVqaW5rYVwgOwor5Y2w6LGh5rS+ID4gaW5zaG91aGFcIDsKK+ism+a8lOiAhSA+IGtvdWVuc2hhXCA7Civmp43pqI7lhbUgPiBzb3VraWhlaVwgOwor6YCD6YG/6KGMID4gdG91aGlrb3VcIDsKK+WGheeBq+iJhyA+IG5haWthdGVpXCA7CivlnKfmkL7lmaggPiBhc3Nha3VraVwgOwor5Yip5qip5bGLID4gcmlrZW4nJ3lhXCA7CivlhYnluqboqIggPiBrb3Vkb2tlaVwgOwor6Zay5YW15Y+wID4gZXBwZWlkYWlcIDsKK+a3t+eoruiqniA+IGtvbnNodWdvXCA7CivpgI/pgY7mgKcgPiB0b3VrYXNlaVwgOwor5Lya6KaL6KiYID4ga2Fpa2Vua2lcIDsKK+ebuOS8vOeCuSA+IHNvdWppdGVuXCA7CivonrrlrZDph5ggPiBuZWppa3VnaVwgOwor5Yem5aWz5bOwID4gc2hvam9ob3VcIDsKK+eci+itt+W4qyA+IGthbmdvc2hpXCA7CivmnInpoILngrkgPiB1Y2hvdXRlblwgOwor5LiA562J5pifID4gaXR0b3VzZWlcIDsKK+S4i+awtOmBkyA+IGdlc3VpZG91XCA7CivpnZ7kurrmg4UgPiBoaW5pbmpvdVwgOwor5Li7576p6ICFID4gc2h1Z2lzaGFcIDsKK+a0vumBo+i7jSA+IGhha2VuZ3VuXCA7Civlho3mj5DmoYggPiBzYWl0ZWlhblwgOwor576O5oSP6K2YID4gYmlpc2hpa2lcIDsKK+e3j+acrOWutiA+IHNvdWhvbmtlXCA7CivluqblpJboppYgPiBkb2dhaXNoaVwgOwor6YGg5b6B6ZqKID4gZW5zZWl0YWlcIDsKK+eQhuaDs+WeiyA+IHJpc291a2VpXCA7Civku67liIbmlbAgPiBrYWJ1bnN1dVwgOwor5Yqp5pWw6KmeID4gam9zdXVzaGlcIDsKK+eyvueul+aJgCA+IHNlaXNhbmpvXCA7CivmtojngavlmaggPiBzaG91a2FraVwgOwor5aSa6Z2i5L2TID4gdGFtZW50YWlcIDsKK+W9oumquOWMliA+IGtlaWdhaWthXCA7CivmrKfnsbPkurogPiBvdWJlaWppblwgOwor57WM5bir5bGLID4ga3lvdWppeWFcIDsKK+iqpOWkieaPmyA+IGdvaGVua2FuXCA7CivpgoTku5jph5EgPiBrYW5wdWtpblwgOwor5pmp5b6h6aOvID4gYmFuZ29oYW5cIDsKK+iFleiHquaFoiA+IHVkZWppbWFuXCA7CivmtYTmsLTlmaggPiBqb3VzdWlraVwgOwor5Yqp5pWZ6KutID4gam9reW91eXVcIDsKK+eci+itt+WjqyA+IGthbmdvc2hpXCA7CivmsLjlrZDkvZwgPiBlaWtvc2FrdVwgOwor5Yem5aWz5ZywID4gc2hvam9jaGlcIDsKK+WIqeeUqOiAhSA+IHJpeW91c2hhXCA7CivnhKHnsr7ljbUgPiBtdXNlaXJhblwgOwor54Sh6Zai5L+CID4gbXVrYW5rZWlcIDsKK+ato+Wtl+azlSA+IHNlaWppaG91XCA7Civou43ljLvnm6MgPiBndW4nJ2lrYW5cIDsKK+itpuS4luWutiA+IGtlaXNlaWthXCA7CivmnaXlrabmnJ8gPiByYWlnYWtraVwgOwor5pig55S76KmVID4gZWlnYWh5b3VcIDsKK+aJueWIpOiAhSA+IGhpaGFuc2hhXCA7CivlubPlj5nmlocgPiBoZWlqb2J1blwgOwor5LiJ6YeN6IumID4gc2FuanV1a3VcIDsKK+aooeWAo+iAhSA+IG1vaG91c2hhXCA7CivkuojpgbjkvJogPiB5b3NlbmthaVwgOwor5ryU5aWP5LyaID4gZW5zb3VrYWlcIDsKK+S4jea0u+aApyA+IGZ1a2Fzc2VpXCA7Civplovlj6Ppg6ggPiBrYWlrb3VidVwgOwor5Y+M6IO05qmfID4gc291ZG91a2lcIDsKK+mgiOW8peWxsSA+IHNodW1pc2VuXCA7Civlgb3pgKDnvaogPiBnaXpvdXphaVwgOwor56eA55S75a62ID4gc2h1dWdha2FcIDsKK+S6pOS7o+WToSA+IGtvdXRhaWluXCA7CivotaTpm7voqbEgPiBha2FkZW53YVwgOwor5pyJ5pyf5YiRID4geXV1a2lrZWlcIDsKK+WPo+ipseazlSA+IGtvdXdhaG91XCA7CivmiLjkuLvmqKkgPiBrb3NodWtlblwgOwor5YWs5a6J5a6YID4ga291YW5rYW5cIDsKK+atr+eJmeeKtiA+IHNoaWdham91XCA7CivkvJ3lo7DlmaggPiBkZW5zZWlraVwgOwor5L+d6Zm66YeRID4gaG9rZW5raW5cIDsKK+aMh+aVsOmDqCA+IHNoaXN1dWJ1XCA7Civosaroj6/oiLkgPiBnb3VrYXNlblwgOwor5Li45pqX6KiYID4gbWFydWFua2lcIDsKK+Wfuua6lueCuSA+IGtpanVudGVuXCA7Civlvozmj7TkvJogPiBrb3VlbmthaVwgOwor55yM6K2w5LyaID4ga2VuZ2lrYWlcIDsKK+ihjOWcqOaJgCA+IGFuemFpc2hvXCA7Civlj6Poqp7mlocgPiBrb3Vnb2J1blwgOwor5a+d54WZ6I2JID4gbmV0YWJha29cIDsKK+aWreegtOWjiiA+IGRhbmhha2FpXCA7Civno4HpiYTpibEgPiBqaXRla2tvdVwgOwor5YaG54K65pu/ID4gZW5nYXdhc2VcIDsKK+eci+itt+WFtSA+IGthbmdvaGVpXCA7Civllrbmpa3pg6ggPiBlaWd5b3VidVwgOwor5LiN5raI5YyWID4gZnVzaG91a2FcIDsKK+S4jeW+s+e+qSA+IGZ1dG9rdWdpXCA7CivlnLDlkLnpm6ogPiBqaWZ1YnVraVwgOwor6aCI5byl5aOHID4gc2h1bWlkYW5cIDsKK+S9kOW5lea0viA+IHNhYmFrdWhhXCA7CivpoJPnl7TmsJcgPiB0b25jaGlraVwgOwor5aSa5pWw5YWaID4gdGFzdXV0b3VcIDsKK+i8uOmAgeiIuSA+IHl1c291c2VuXCA7CivmjqHmsrnmqKkgPiBzYWl5dWtlblwgOwor5p2l5LiW57SAID4gcmFpc2Vpa2lcIDsKK+WxseawtOeUuyA+IHNhbnN1aWdhXCA7CivmjoPpmaTkurogPiBzb3VqaW5pblwgOwor5LiA562J5ZywID4gaXR0b3VjaGlcIDsKK+eojuWLmeWumCA+IHplaW11a2FuXCA7CivnnIvorbfkurogPiBrYW5nb25pblwgOwor5Y2K5YiH56ymID4gaGFua2lwcHVcIDsKK+Wcp+eAmOWZqCA+IGF0c3Vyb2tpXCA7Civln7rmupbms5UgPiBraWp1bmhvdVwgOwor5Y+X6Kyb6ICFID4ganVrb3VzaGFcIDsKK+a4rOi3neWEgCA+IHNva2t5b2dpXCA7Civlhrflh43mqZ8gPiByZWl0b3VraVwgOwor562J6Led6ZuiID4gdG91a3lvcmlcIDsKK+S4jeWQjeaVsCA+IGZ1bWVpc3V1XCA7CivoqabpgYvou6IgPiBzaGl1bnRlblwgOwor576p5YuH5YW1ID4gZ2l5dXVoZWlcIDsKK+imqueUu+mdoiA+IG95YWdhbWVuXCA7Civmi5LlkKbmqKkgPiBreW9oaWtlblwgOwor5LqM55Wq57eaID4gbmliYW5zZW5cIDsKK+WWtualreiyuyA+IGVpZ3lvdWhpXCA7Civnm7jkvLzlvaIgPiBzb3VqaWtlaVwgOwor5Y+M55Sf5YWQID4gc291c2VpamlcIDsKK+e9ueeBveawkSA+IHJpc2FpbWluXCA7Civlr4TnlJ/mnKggPiB5YWRvcmlnaVwgOwor54Gr6Jas5bqrID4ga2F5YWt1a29cIDsKK+i1pOmgreW3viA+IGFrYXp1a2luXCA7CivonKXonLTluqcgPiB0b2thZ2V6YVwgOwor6K2m5aCx6Z+zID4ga2VpaG91b25cIDsKK+Wkp+icpeictCA+IG9vdG9rYWdlXCA7Civmm7TnlJ/mnJ8gPiBrb3VzZWlraVwgOwor55aR5ZWP5paHID4gZ2ltb25idW5cIDsKK+iNt+eCuuabvyA+IG5pZ2F3YXNlXCA7CivlnKfmv77lmaggPiBhdHN1cm9raVwgOwor6IWO6IeT54KOID4gamluem91ZW5cIDsKK+e3mue2readnyA+IHNlbmlzb2t1XCA7Civlr4TotIjogIUgPiBraXpvdXNoYVwgOwor5a625bqt5YaFID4ga2F0ZWluYWlcIDsKK+iQveiqnuWutiA+IHJha3Vnb2thXCA7CivnhKHnr4Dmk40gPiBtdXNlc3NvdVwgOwor5a6555aR6ICFID4geW91Z2lzaGFcIDsKK+WxlemWi+WbsyA+IHRlbmthaXp1XCA7Civnp4HnlJ/lhZAgPiBzaGlzZWlqaVwgOwor5aSn5omL562LID4gb290ZXN1amlcIDsKK+WFrOWumuS+oSA+IGtvdXRlaWthXCA7CivmsJfliIblsYsgPiBraWJ1bicneWFcIDsKK+S4gOetieWFtSA+IGl0dG91aGVpXCA7CivkuIvmsLTnrqEgPiBnZXN1aWthblwgOwor5pW05pWw5q+UID4gc2Vpc3V1aGlcIDsKK+ekvuWLmeaJgCA+IHNoYW11c2hvXCA7Civpq5jlsaTpm7IgPiBrb3Vzb3V1blwgOwor5bi45aWX6KqeID4gam91dG91Z29cIDsKK+iIueWkluapnyA+IHNlbmdhaWtpXCA7Civlj4zmmpfou4ogPiBzb3VhbnNoYVwgOwor5peF5a6i5qmfID4gcnlva2Fra2lcIDsKK+mBi+WWtuiAhSA+IHVuJydlaXNoYVwgOwor5oGj5oSP55qEID4gc2hpaXRla2lcIDsKK+egtOWkqeiNkiA+IGhhdGVua291XCA7CivnhrHluK/lpJwgPiBuZXR0YWl5YVwgOwor6YGU5oiQ5bqmID4gdGFzc2VpZG9cIDsKK+WkmuinkuW9oiA+IHRha2Fra2VpXCA7CivlhaXkvJrmqKkgPiBpcmlhaWtlblwgOwor5Y2D6JGJ55yMID4gY2hpYmFrZW5cIDsKK+S6lOaciOmbqCA+IHNhbWlkYXJlXCA7CivmnInpoILlpKkgPiB1Y2hvdXRlblwgOwor5rqW5Lya5ZOhID4ganVua2FpaW5cIDsKK+awtOabnOaXpSA+IHN1aXlvdWJpXCA7CivmuIfmsLTmnJ8gPiBrYXNzdWlraVwgOwor56u26aas5aC0ID4ga2VpYmFqb3VcIDsKK+mzqeWwj+WxiyA+IGhhdG9nb3lhXCA7CivkuI3mraPoppYgPiBmdXNlaXNoaVwgOwor5Zub5Y2K5pyfID4gc2hpaGFua2lcIDsKK+eGlOmJseeCiSA+IHlvdWtvdXJvXCA7CivkvZznlKjngrkgPiBzYXlvdXRlblwgOwor6YGK5ZyS5ZywID4geXV1ZW5jaGlcIDsKK+i7jOmBk+iIuSA+IGtpZG91c2VuXCA7CivlvIHnkIblo6sgPiBiZW5yaXNoaVwgOwor6bq76YWU6YqDID4gbWFzdWlqdXVcIDsKK+acqOieuuWtkCA+IG1va3VuZWppXCA7CivmranmlbDoqIggPiBob3N1dWtlaVwgOwor5Li76aGM5q2MID4gc2h1ZGFpa2FcIDsKK+ato+S8muWToSA+IHNlaWthaWluXCA7Civlvq7liIbms5UgPiBiaWJ1bmhvdVwgOwor5YuV5ZOh5LukID4gZG91aW5yZWlcIDsKK+mdkueTpuWPsCA+IHNlaWdhZGFpXCA7CivmuKHoiLnloLQgPiB0b3NlbmpvdVwgOwor5oSP6K2Y5LiLID4gaXNoaWtpa2FcIDsKK+S/neitt+WbvSA+IGhvZ29rb2t1XCA7CivlkIzmgKfmhJsgPiBkb3VzZWlhaVwgOwor5rK55Zyn5ZmoID4geXVhdHN1a2lcIDsKK+eHlemdkuaLsyA+IGVuc2Vpa2VuXCA7CivlubzlubTmnJ8gPiB5b3VuZW5raVwgOwor6LGq6I+v54mIID4gZ291a2FiYW5cIDsKK+WMu+WOn+eXhSA+IGlnZW5ieW91XCA7Civpm7voqbHnt5ogPiBkZW53YXNlblwgOwor5Ya35YeN5bqrID4gcmVpdG91a29cIDsKK+mChOS7mOeojiA+IGthbnB1emVpXCA7CivlvIHorbfogIUgPiBiZW5nb3NoYVwgOwor6Zu76Kmx57ayID4gZGVud2Ftb3VcIDsKK+eZu+WxsemBkyA+IHRvemFuZG91XCA7Civph43pm7vmqZ8gPiBqdXVkZW5raVwgOwor5LiN5oGw5aW9ID4gYnVrYWtrb3VcIDsKK+mYv+aIv+mzpSA+IGFob3Vkb3JpXCA7CivkuojlgpnnmoQgPiB5b2JpdGVraVwgOwor5om25Yqp5paZID4gZnVqb3J5b3VcIDsKK+eMv+efpeaBtSA+IHNhcnVkamllXCA7CivlnLDolLXpoZQgPiBqaXpvdWdhb1wgOwor5L2c5qWt5aC0ID4gc2FneW91YmFcIDsKK+epuuebuOWgtCA+IGt1dXNvdWJhXCA7Civmt7flkIjoqp4gPiBrb25nb3Vnb1wgOwor5aal5Y2U5qGIID4gZGFreW91YW5cIDsKK+aFsOisneaWmSA+IGlzaGFyeW91XCA7CivnhKHmirXmipcgPiBtdXRlaWtvdVwgOwor6JGJ56+A54K5ID4gaGFzZXR0ZW5cIDsKK+S7luWLleipniA+IHRhZG91c2hpXCA7CivmnKrmiJDlubQgPiBtaXNlaW5lblwgOwor5ouY5byV54q2ID4ga291aW5qb3VcIDsKK+aYoOeUu+eLgiA+IGVpZ2FreW91XCA7Civms5Xoj6/ntYwgPiBob2tla3lvdVwgOwor6YWi5paZ55CGID4gc3VyeW91cmlcIDsKK+aUv+W6nOexsyA+IHNlaWZ1bWFpXCA7Civlpb3ntZDmnpwgPiBrb3VrZWtrYVwgOwor5rS75oCn5YyWID4ga2Fzc2Vpa2FcIDsKK+WKqeiogOiAhSA+IGpvZ29uc2hhXCA7Civoo4/ljYPlrrYgPiB1cmFzZW5rZVwgOwor6IiO5Yip5aGUID4gc2hhcml0b3VcIDsKK+S4jeelneWEgCA+IGJ1c2h1dWdpXCA7CivpgY7muKHnmoQgPiBrYXRvdGVraVwgOwor6Zm26Iq45a62ID4gdG91Z2Vpa2FcIDsKK+S9nOalreWToSA+IHNhZ3lvdWluXCA7CivlhajkuJbnlYwgPiB6ZW5zZWthaVwgOwor5aSa5pGp5bedID4gdGFtYWdhd2FcIDsKK+W+ruiLpueskSA+IGJpa3VzaG91XCA7CivmrLrnnp7ogIUgPiBnaW1hbnNoYVwgOwor56uL5rOV5bqcID4gcmlwcG91ZnVcIDsKK+iiq+eBveWcsCA+IGhpc2FpY2hpXCA7CivnjJvmiZPogIUgPiBtb3VkYXNoYVwgOwor5LiN56Wl5LqLID4gZnVzaG91amlcIDsKK+e1kOaenOirliA+IGtla2thcm9uXCA7CivkuIvmsLTmup0gPiBnZXN1aWtvdVwgOwor5rC06aKo5ZGCID4gbWl6dWJ1cm9cIDsKK+aWueS9jeinkiA+IGhvdWlrYWt1XCA7CivpmLLlobXnnYAgPiBib3VqaW5naVwgOwor5pei6KaW5oOzID4ga2lzaGlrYW5cIDsKK+WPo+iqnuS9kyA+IGtvdWdvdGFpXCA7Civlubnpg6jkvJogPiBrYW5idWthaVwgOwor5Lqk6Zqb6LK7ID4ga291c2FpaGlcIDsKK+aJi+mWk+aahyA+IHRlbWFoaW1hXCA7Civmrablo6vpgZMgPiBidXNoaWRvdVwgOwor6a2U5pa56ZmjID4gbWFob3VqaW5cIDsKK+iRoeiQhOmFkiA+IGJ1ZG91c2h1XCA7Civlhrflh43lmaggPiByZWl0b3VraVwgOwor5Y+M5a2Q5bqnID4gZnV0YWdvemFcIDsKK+iEseawtOapnyA+IGRhc3N1aWtpXCA7Civngavlj6Pljp8gPiBrYWtvdWdlblwgOwor5L2O5qyh5YWDID4gdGVpamlnZW5cIDsKK+WOs+WGrOacnyA+IGdlbnRvdWtpXCA7CivkuLjoq7PoqJggPiBtYXJ1YW5raVwgOwor5LiN6YCA6LuiID4gZnV0YWl0ZW5cIDsKK+aJi+Wcn+eUoyA+IHRlbWl5YWdlXCA7CivljbHpmbroppYgPiBraWtlbnNoaVwgOwor6Iie6LiK5ZujID4gYnV0b3VkYW5cIDsKK+S4jeaxuuWumiA+IGZ1a2V0dGVpXCA7Civlm57luLDnt5ogPiBrYWlraXNlblwgOwor5Yy65rCR56iOID4ga3VtaW56ZWlcIDsKK+S9leeVquebriA+IG5hbmJhbm1lXCA7CivohLHmsJfmsLQgPiBkYWtraXN1aVwgOwor5YiR5YuZ5omAID4ga2VpbXVzaG9cIDsKK+WBpeWVluWutiA+IGtlbnRhbmthXCA7CivnoLTlo4rogIUgPiBoYWthaXNoYVwgOwor6Ieq5oSP6K2YID4gamlpc2hpa2lcIDsKK+S4g+WNgei3ryA+IG5hbmFzb2ppXCA7CivoprPoh6rlnKggPiBrYW5qaXphaVwgOwor6YGg5b+D5qmfID4gZW5zaGlua2lcIDsKK+acseWNsOiIuSA+IHNodWluc2VuXCA7CivmtJfmv6/mqZ8gPiBzZW50YWtraVwgOwor5LiN5YuV55SjID4gZnVkb3VzYW5cIDsKK+WZtOawl+WtlCA+IGZ1bmtpa291XCA7CivonablpLfmnb4gPiBlem9tYXRzdVwgOwor6ay85YiR5LqLID4gb25pa2VpamlcIDsKK+aEn+WYhuespiA+IGthbnRhbmZ1XCA7Civms5XljLvlraYgPiBob3VpZ2FrdVwgOwor6bOl5bCP5bGLID4gdG9yaWdveWFcIDsKK+iHquWWtualrSA+IGppZWlneW91XCA7Civnsr7pjKzmiYAgPiBzZWlyZW5qb1wgOwor6buE6I+W6JKyID4ga2lzaG91YnVcIDsKK+S6nOWkp+mZuCA+IGF0YWlyaWt1XCA7CivlgpnogIPmrIQgPiBiaWtvdXJhblwgOwor5pyq5oiQ5ZOBID4gbWlzZWloaW5cIDsKK+eJh+aJi+mWkyA+IGthdGF0ZW1hXCA7CivkurrplpPlkbMgPiBuaW5nZW5taVwgOwor54Sh5oSP6K2YID4gbXVpc2hpa2lcIDsKK+aKleizh+WutiA+IHRvdXNoaWthXCA7CivkuIvmsLTmnb8gPiBnZXN1aWl0YVwgOwor6aas6LmE5b2iID4gYmF0ZWlrZWlcIDsKK+WFqOmfs+espiA+IHplbicnb25wdVwgOwor6auY6Lyd5bqmID4ga291a2lkb3VcIDsKK+S4jeWPr+S+tSA+IGZ1a2FzaGluXCA7Civpu4Tlj6PlhZAgPiBrb3Vrb3VqaVwgOwor5YiG56eR5LyaID4gYnVua2FrYWlcIDsKK+icmOibm+iGnCA+IGt1bW9tYWt1XCA7Civkuovmpa3lrrYgPiBqaWd5b3VrYVwgOwor5YWl5Lya5ZywID4gaXJpYWljaGlcIDsKK+Wbs+abuOmkqCA+IHRvc2hva2FuXCA7Civoo73niYjmiYAgPiBzZWloYW5qb1wgOwor5p2x5aSn5a+6ID4gdG91ZGFpamlcIDsKK+S4reS9jeaVsCA+IGNodXVpc3V1XCA7Civlj4Los4DogIUgPiBzYW5nYXNoYVwgOwor5om55YeG5pu4ID4gaGlqdW5zaG9cIDsKK+iInui4j+S8miA+IGJ1dG91a2FpXCA7CivnkIbljJblraYgPiByaWthZ2FrdVwgOwor55m75bGx6ICFID4gdG96YW5zaGFcIDsKK+WKqeaVmeaOiCA+IGpva3lvdWp1XCA7CivliJHli5nlrpggPiBrZWltdWthblwgOwor5pS/5YuZ5a6YID4gc2VpbXVrYW5cIDsKK+ato+e+qeaEnyA+IHNlaWdpa2FuXCA7CivljLvolqzlk4EgPiBpeWFrdWhpblwgOwor5YyW57Kn552AID4ga2VzaG91Z2lcIDsKK+eBq+mBlOejqCA+IGhpZGFydW1hXCA7CivkuI3lvrnlupUgPiBmdXRldHRlaVwgOwor55WZ5a6I5a6FID4gcnVzdXRha3VcIDsKK+WHoeippuWQiCA+IGJvbnNoaWFpXCA7CivkuIfmranoqIggPiBtYW5wb2tlaVwgOwor5LqM5p6a6LKdID4gbmltYWlnYWlcIDsKK+eUqOawtOi3ryA+IHlvdXN1aXJvXCA7CivmmYLoqIjlupcgPiB0b2tlaXRlblwgOwor5Zu65a6a5a2QID4ga290ZWlzaGlcIDsKK+acieeFmeeCrSA+IHl1dWVudGFuXCA7CivorJvmvJTkvJogPiBrb3VlbmthaVwgOwor6KOP6ay86ZaAID4gdXJha2ltb25cIDsKK+W+oeavjeanmCA+IG9rYWFzYW1hXCA7CivpgZPnpZbnpZ4gPiBkb3Vzb2ppblwgOwor5ZCI5rOV5YyWID4gZ291aG91a2FcIDsKK+mmlumDveWcjyA+IHNodXRva2VuXCA7CivkuInmr5vnjKsgPiBtaWtlbmVrb1wgOwor5o6i55+l5qmfID4gdGFuY2hpa2lcIDsKK+atu+eBq+WxsSA+IHNoaWthemFuXCA7CivoibLmqKHmp5ggPiBpcm9tb3lvdVwgOwor57O46Zu76KmxID4gaXRvZGVud2FcIDsKK+mHjeWkp+WMliA+IGp1dWRhaWthXCA7CivkuInmrrXnm64gPiBzYW5kYW5tZVwgOwor56Wt5aOH5bqnID4gc2FpZGFuemFcIDsKK+WFhOW8n+WtkCA+IGFuaWRlc2hpXCA7CivpgYvlkb3oq5YgPiB1bm1laXJvblwgOwor5pmu6YCa56eRID4gZnV0c3V1a2FcIDsKK+S4iuWPpOWPsiA+IGpvdWtvc2hpXCA7CivpoJDosq/ph5EgPiB5b2Nob2tpblwgOwor5aal5b2T5oCnID4gZGF0b3VzZWlcIDsKK+iRoeiQhOiJsiA+IGJ1ZG91aXJvXCA7CivmjpLmsLTot68gPiBoYWlzdWlyb1wgOwor5qiq5pat6Z2iID4gb3VkYW5tZW5cIDsKK+aVtOe1jOapnyA+IHNlaWtlaWtpXCA7Civkuovmpa3ljJYgPiBqaWd5b3VrYVwgOwor57Ch5L2T5a2XID4ga2FudGFpamlcIDsKK+WPr+a6tueJhyA+IGtheW91aGVuXCA7CivlhIDku5flhbUgPiBnaWpvdWhlaVwgOwor6Zm45bGL5qC5ID4gcm9rdXlhbmVcIDsKK+W6p+irh+S8miA+IHphZGFua2FpXCA7CivluIbliY3oiLkgPiBob21hZXNlblwgOwor5oyH6Kmx5rOVID4gc2hpd2Fob3VcIDsKK+WBvemAoOWTgSA+IGdpem91aGluXCA7CivkuJbluK/mlbAgPiBzZXRhaXN1dVwgOwor5LiA5ZGo5pyfID4gaXNzaHV1a2lcIDsKK+S4reiAs+eCjiA+IGNodXVqaWVuXCA7Civlr4zlo6vpgJogPiBmdWppdHN1dVwgOwor5a625bGL56iOID4ga2Fva3V6ZWlcIDsKK+apn+WLlemaiiA+IGtpZG91dGFpXCA7CivpmLLngavnt5ogPiBib3VrYXNlblwgOwor5pWZ6K236ZmiID4ga3lvdWdvaW5cIDsKK+ieuuWtkOWxsSA+IG5laml5YW1hXCA7CivkubPlhZDpmaIgPiBueXV1amlpblwgOwor6IWV5pmC6KiIID4gdWRlZG9rZWlcIDsKK+acseWNsOeKtiA+IHNodWluam91XCA7CivnnJ/mhI/nvqkgPiBzaGluJydpZ2lcIDsKK+mBiuaKgOWgtCA+IHl1dWdpam91XCA7Civli6flt6XloLQgPiBrYW5rb3ViYVwgOwor5LiJ5Yag6aasID4gc2Fua2FuYmFcIDsKK+WkqeaJjeWFkCA+IHRlbnNhaWppXCA7CivpgIbojILmnKggPiBzYWthbW9naVwgOwor6KOc5YWF5YW1ID4gaG9qdXVoZWlcIDsKK+W7uuitsOiAhSA+IGtlbmdpc2hhXCA7CivluLjlpJznga8gPiBqb3V5YXRvdVwgOwor6I2J5bGL5qC5ID4ga3VzYXlhbmVcIDsKK+aoqeWogeiAhSA+IGtlbicnaXNoYVwgOwor56CV5bKp5qmfID4gc2FpZ2Fua2lcIDsKK+iRoeiQhOezliA+IGJ1ZG91dG91XCA7Civnmb3kupzppKggPiBoYWt1YWthblwgOwor5re35ZKM5oCnID4ga29ud2FzZWlcIDsKK+WMlueyp+auvyA+IGtld2FpZGVuXCA7CivljYPliIbmr5QgPiBzZW5idW5oaVwgOwor5pmC6KiI5Y+wID4gdG9rZWlkYWlcIDsKK+WQjOavjeWniSA+IGRvdWJvc2hpXCA7CivkuIrlvpfmhI8gPiBqb3V0b2t1aVwgOwor6buE5rC05LuZID4ga2lzdWlzZW5cIDsKK+W8seWRs+WZjCA+IHlvd2FtaXNvXCA7CivnlZnlrojkuK0gPiBydXN1Y2h1dVwgOwor5aSJ5aOw5pyfID4gaGVuc2Vpa2lcIDsKK+Wwj+WFkOenkSA+IHNob3VuaWthXCA7CivkuInljYHmiLggPiBzYW5qaWtrb1wgOwor6Zu76Zui5bGkID4gZGVucmlzb3VcIDsKK+mrmOi4j+a0viA+IGtvdXRvdWhhXCA7CivnkIblt6Xns7sgPiByaWtvdWtlaVwgOwor54Sh56S86KybID4gYnVyZWlrb3VcIDsKK+S4gOWRqOW/jCA+IGlzc2h1dWtpXCA7CivkuI3ljYHliIYgPiBmdWp1dWJ1blwgOwor5ZO65Lmz5pyfID4gaG9ueXV1a2lcIDsKK+efs+ayueeOiyA+IHNla2l5dW91XCA7Civlj6/pjpTniYcgPiBrYXlvdWhlblwgOwor5b6h5Yip55uKID4gZ29yaXlha3VcIDsKK+aKleabuOWutiA+IHRvdXNob2thXCA7CivpgbrnlZnlk4EgPiBpcnl1dWhpblwgOwor6YG65Lyd55eFID4gaWRlbmJ5b3VcIDsKK+aPmueCreapnyA+IHlvdXRhbmtpXCA7CivpnZ7lpInmj5sgPiBoaWhlbmthblwgOwor5pS55q2j5qGIID4ga2Fpc2VpYW5cIDsKK+mrmOmrmOW6piA+IGtvdWtvdWRvXCA7CivntYznlKPlqaYgPiBrZWlzYW5wdVwgOwor6LWk6KO46KO4ID4gc2VraXJhcmFcIDsKK+a3t+WQiOapnyA+IGtvbmdvdWtpXCA7Civlr4TotIjlk4EgPiBraXpvdWhpblwgOwor5aSc6KGM5oCnID4geWFrb3VzZWlcIDsKK+mRveWtlOapnyA+IHNhbmtvdWtpXCA7CivliY3ooZvmtL4gPiB6ZW4nJ2VpaGFcIDsKK+acquaxuueulyA+IG1pa2Vzc2FuXCA7CivkuLvopoHpg6ggPiBzaHV5b3VidVwgOwor6YG/5a+S5ZywID4gaGlrYW5jaGlcIDsKK+awtOWeoumboiA+IG1penVnb3JpXCA7Civlp5ToqJfnlJ8gPiBpdGFrdXNlaVwgOwor6K2m5aCx5qmfID4ga2VpaG91a2lcIDsKK+a4qee9qOazlSA+IG9uJydhbnBvdVwgOwor5a++5b+c54mIID4gdGFpb3ViYW5cIDsKK+WWh+WYm+aVmSA+IHJhbWFreW91XCA7CivpgbrnlZnliIYgPiBpcnl1dWJ1blwgOwor5piG5biD6Iy2ID4ga29uYnVjaGFcIDsKK+S5l+eul+WZqCA+IGpvdXphbmtpXCA7CivokazlhIDnpL4gPiBzb3VnaXNoYVwgOwor5Yik5qSc5LqLID4gaGFua2VuamlcIDsKK+eJueeVsOeCuSA+IHRva3VpdGVuXCA7Civkv53pmbrlsYsgPiBob2tlbicneWFcIDsKK+S4jemDveWQiCA+IGZ1dHN1Z291XCA7CivmiYDmjIHph5EgPiBzaG9qaWtpblwgOwor6JmO5rKz6LGaID4gdG9yYWZ1Z3VcIDsKK+aKgOiDveiAhSA+IGdpbm91c2hhXCA7CivmipforbDmlocgPiBrb3VnaWJ1blwgOwor5pei6KO95ZOBID4ga2lzZWloaW5cIDsKK+WfuuekjueahCA+IGtpc290ZWtpXCA7Civosp3ntLDlt6UgPiBrYWl6YWlrdVwgOwor6buS55m+5ZCIID4ga3Vyb3l1cmlcIDsKK+iMtuiPk+WtkCA+IGNoYWdhc2hpXCA7CivlkKblrprmlocgPiBoaXRlaWJ1blwgOwor5byB6K235aOrID4gYmVuZ29zaGlcIDsKK+aJi+ijj+WJoyA+IHNodXJpa2VuXCA7CivpioDmmYLoqIggPiBnaW5kb2tlaVwgOwor5LiJ6YCj56ymID4gc2FucmVucHVcIDsKK+Wwj+WIh+WtkCA+IGtva2lyaWtvXCA7CivlvaLogIzkuIogPiBrZWlqaWpvdVwgOwor5pCt5LmX5ZOhID4gdG91am91aW5cIDsKK+S4lueVjOimsyA+IHNla2Fpa2FuXCA7CivmjqLnn6XlmaggPiB0YW5jaGlraVwgOwor5YCJ5bqr55WqID4gc291a29iYW5cIDsKK+aWh+enkeezuyA+IGJ1bmtha2VpXCA7Civog73mloflrrYgPiBub3VidW5rYVwgOwor5byB6K235ZujID4gYmVuZ29kYW5cIDsKK+mKgOS4lueVjCA+IGdpbnNla2FpXCA7Civmma7pgY3mgKcgPiBmdWhlbnNlaVwgOwor5Y+v5rq25oCnID4ga2F5b3VzZWlcIDsKK+WMiOeJmeWIqSA+IGhhbmdhcmlpXCA7CivnjL/nnJ/kvLwgPiBzYXJ1bWFuZVwgOwor54yq5Y+j5omNID4gY2hva296YWlcIDsKK+mLs+eJqeW4qyA+IGltb25vc2hpXCA7CivnhKHpiYTnoLIgPiBtdXRlcHBvdVwgOwor5ZCM5YiG5q+NID4gZG91YnVuYm9cIDsKK+acqua2iOWMliA+IG1pc2hvdWthXCA7CivluoPmnbHoqp4gPiBrYW50b25nb1wgOwor5LiA56eB5Lq6ID4gaXNzaGlqaW5cIDsKK+a8ouiUteiqniA+IGthbnpvdWdvXCA7Civkuozkurrnm64gPiBmdXRhcmltZVwgOwor5a+M5aOr57W5ID4gZnVqaWdpbnVcIDsKK+iCm+mWgOenkSA+IGtvdW1vbmthXCA7CivpnZnpm7vmsJcgPiBzZWlkZW5raVwgOwor5Y6f5YuV5qmfID4gZ2VuZG91a2lcIDsKK+S5vuiIuea4oCA+IGthbmRva2t1XCA7CivpvJPlkLnogIUgPiBrb3N1aXNoYVwgOwor5aSn5ZKM54WuID4geWFtYXRvbmlcIDsKK+iMtumBk+WFtyA+IGNoYWRvdWd1XCA7CivmjpLmsJfnrqEgPiBoYWlraWthblwgOwor5b2T5LqL6ICFID4gdG91amlzaGFcIDsKK+Wik+iqjOmKmCA+IGJvc2hpbWVpXCA7Civnn63msLTot68gPiB0YW5zdWlyb1wgOwor5Zar6Iy25bqXID4ga2lzc2F0ZW5cIDsKK+aZgumWk+W4ryA+IGppa2FudGFpXCA7CivnhKHmsLTphbggPiBtdXN1aXNhblwgOwor56C06Ziy5rOVID4gaGFib3Vob3VcIDsKK+WQiOatk+acqCA+IG5lbXVub2tpXCA7CivogZbmrYzpmoogPiBzZWlrYXRhaVwgOwor5Y2w57SZ56iOID4gaW5zaGl6ZWlcIDsKK+aMh+aPruiAhSA+IHNoaWtpc2hhXCA7CivmlofmiL/lhbcgPiBidW5ib3VndVwgOwor5L+d566h6YeRID4gaG9rYW5raW5cIDsKK+acgOWkmuaVsCA+IHNhaXRhc3V1XCA7CivkuI3pgI/mmI4gPiBmdXRvdW1laVwgOwor5qC95Z+55omAID4gc2FpYmFpam9cIDsKK+ael+aqjumFkiA+IHJpbmdvc2h1XCA7Civmr43ntLDog54gPiBib3NhaWJvdVwgOwor5aW95omT6ICFID4ga291ZGFzaGFcIDsKK+WGhuetkuW9oiA+IGVudG91a2VpXCA7CivmkYLplqLlrrYgPiBzZWtrYW5rZVwgOwor5q2j6KaP6LuNID4gc2Vpa2lndW5cIDsKK+W4uOWll+WPpSA+IGpvdXRvdWt1XCA7CivmnKrmsbrmuIggPiBtaWtlc3NhaVwgOwor57WD5qW95ZmoID4gZ2VuZ2Fra2lcIDsKK+e0jeaIuOiJsiA+IG5hbmRvaXJvXCA7CivpnZ7nt5rlvaIgPiBoaXNlbmtlaVwgOwor6aKo5ZGC6YecID4gZnVyb2dhbWFcIDsKK+W8geitt+S6uiA+IGJlbmdvbmluXCA7Civpjq7lrojlupwgPiBjaGluanVmdVwgOwor5LiA5by1576FID4gaXRjaG91cmFcIDsKK+WtkOS8muekviA+IGtvZ2Fpc2hhXCA7CivkuI3lh43muK8gPiBmdXRvdWtvdVwgOwor5Y215aGU5aC0ID4gcmFudG91YmFcIDsKK+S4reWkrumDqCA+IGNodXVvdWJ1XCA7CivkuI3lh43mtrIgPiBmdXRvdWVraVwgOwor5aSp56ek5bqnID4gdGVuYmluemFcIDsKK+WNsemZuuaApyA+IGtpa2Vuc2VpXCA7CivkuI3lh43mtbcgPiBmdXRvdWthaVwgOwor55m75bGx5bi9ID4gdG96YW5ib3VcIDsKK+eFjuixhuiFkCA+IGlyaWRvdWZ1XCA7CivliLjlo7LmqZ8gPiBrZW5iYWlraVwgOwor5pmC6ZaT5aSWID4gamlrYW5nYWlcIDsKK+awl+WAmeW4ryA+IGtpa291dGFpXCA7Civmpb3lmajlupcgPiBnYWtraXRlblwgOwor5LiN5YiG5piOID4gZnVidW5tZWlcIDsKK+ato+mbu+awlyA+IHNlaWRlbmtpXCA7CivmnKzph5HluqsgPiBob25raW5rb1wgOwor5Y+v6Y6U5oCnID4ga2F5b3VzZWlcIDsKK+mbhOW8geWutiA+IHl1dWJlbmthXCA7Civku5jluK/niq8gPiBmdXRhaWhhblwgOwor6KW/5rSL56KBID4gc2VpeW91Z29cIDsKK+aIpuS6ieW+jCA+IHNlbnNvdWdvXCA7CivmlY/ohZXlrrYgPiBiaW53YW5rYVwgOwor5Lit5Lul5LiKID4gY2h1dWlqb3VcIDsKK+mrmOS4i+mnhCA+IHRha2FnZXRhXCA7CivpnZ7lo7Llk4EgPiBoaWJhaWhpblwgOwor5L2V5Luj55uuID4gbmFuZGFpbWVcIDsKK+mrmOaetue3miA+IGtvdWthc2VuXCA7CivmsLTpnaLkuIsgPiBzdWltZW5rYVwgOwor57K+5rK55omAID4gc2VpeXVzaG9cIDsKK+adseilv+WxiyA+IHRvdXphaXlhXCA7CivpioXniYjnlLsgPiBkb3VoYW5nYVwgOwor54KK6aOv5ZmoID4gc3VpaGFua2lcIDsKK+WFg+W4peW6nCA+IGdlbnN1aWZ1XCA7Civps6XkuYvlt6MgPiB0b3Jpbm9zdVwgOwor5Yy755mC6LuKID4gaXJ5b3VzaGFcIDsKK+eJueeVsOaApyA+IHRva3Vpc2VpXCA7Civlhqzoh7Pnt5ogPiB0b3VqaXNlblwgOwor56m/5a2U5qmfID4gc2Vua291a2lcIDsKK+eEoeiTi+i7iiA+IG11Z2Fpc2hhXCA7CivmirXmipflmaggPiB0ZWlrb3VraVwgOwor6JK45rCX6Ii5ID4gam91a2lzZW5cIDsKK+mdnuioseWuuSA+IGhpa3lveW91XCA7CivpgaDov5Hms5UgPiBlbmtpbmhvdVwgOwor5Luu5a6a5rOVID4ga2F0ZWlob3VcIDsKK+a3t+WQiOWZqCA+IGtvbmdvdWtpXCA7Civopb/mtIvnlLsgPiBzZWl5b3VnYVwgOwor6YGU56Oo5b+MID4gZGFydW1ha2lcIDsKK+eVs+aIkOiqniA+IGpvdXNlaWdvXCA7CivmgKrkuovku7YgPiBrYWlqaWtlblwgOwor5omA5oyB6ICFID4gc2hvamlzaGFcIDsKK+aTrOS6uuazlSA+IGdpamluaG91XCA7CivmupblpKfmiYsgPiBqdW4nJ29vdGVcIDsKK+Wbnui7ouapnyA+IGthaXRlbmtpXCA7Civlj6/lk4Dnm7ggPiBrYXdhaXNvdVwgOwor5Lqk6Zqb5a62ID4ga291c2Fpa2FcIDsKK+mbouS5s+acnyA+IHJpbnl1dWtpXCA7Civno4HmgKflsaQgPiBqaXNlaXNvdVwgOwor6LaK5Yas6ZqKID4gZXR0b3V0YWlcIDsKK+itnOmdouWPsCA+IGZ1bWVuZGFpXCA7Civku67lsI/lsYsgPiBrYXJpZ295YVwgOwor55uu6KuW6KaLID4gbW9rdXJvbWlcIDsKK+S7meiKsee0mSA+IHNlbmthc2hpXCA7CivmvJTnrpflrZAgPiBlbnphbnNoaVwgOwor5pyJ6ZmQ5YCLID4geXV1Z2Vua29cIDsKK+aIuOmanOWtkCA+IHRvc2hvdWppXCA7Civlj6/pjZvmgKcgPiBrYXRhbnNlaVwgOwor5aSq6byT5YikID4gdGFpa29iYW5cIDsKK+a1t+WdiuS4uyA+IHVtaWJvdXp1XCA7Civpu43prZrlrZAgPiBraWJpbmFnb1wgOwor5Za25p6X572yID4gZWlyaW5zaG9cIDsKK+aZrui+uuaApyA+IGZ1aGVuc2VpXCA7Civlm7rmnInlgKQgPiBrb3l1dWNoaVwgOwor6YG65Lyd5a2mID4gaWRlbmdha3VcIDsKK+iCsueoruaJgCA+IGlrdXNodWpvXCA7Civph5HpjY3ph5EgPiBraW5tZWtraVwgOwor6by76aKo6YKqID4gaGFuYWthemVcIDsKK+WPguS6i+WumCA+IHNhbmppa2FuXCA7Civnm7joq4fmiYAgPiBzb3VkYW5qb1wgOwor54Sh56iO5ZOBID4gbXV6ZWloaW5cIDsKK+W/nOetlOiDvSA+IG91dG91bm91XCA7CivmpJzllY/miYAgPiBrZW5tb25qb1wgOwor5bKh5aC05omAID4gb2thYmFzaG9cIDsKK+WcsOiUteWwiiA+IGppem91c29uXCA7CivnqbrkuJbovp4gPiBrYXJhc2VqaVwgOwor6KGo5YW35bGLID4gaHlvdWd1eWFcIDsKK+W8lOaFsOmHkSA+IGNob3Vpa2luXCA7CivliJ3nlKPlqaYgPiBzaG9zYW5wdVwgOwor5pqX6KiY54mpID4gYW5raW1vbm9cIDsKK+m6u+mFlOWJpCA+IG1hc3VpemFpXCA7Civol6rljLvogIUgPiB5YWJ1aXNoYVwgOwor5L2V5pmC6aCDID4gaXRzdWdvcm9cIDsKK+S6jOe+qeeahCA+IG5pZ2l0ZWtpXCA7Civpm4Hnmq7ntJkgPiBnYW5waXNoaVwgOwor5pel5ZKM6KaLID4gaGl5b3JpbWlcIDsKK+ekvuS8mumDqCA+IHNoYWthaWJ1XCA7CivliKXkuJbnlYwgPiBiZXNzZWthaVwgOwor54Sh5ZCN5rCPID4gbXVtZWlzaGlcIDsKK+mbh+WCreiAhSA+IGtveW91c2hhXCA7CivntaLnt57lrZAgPiBheWFkb25zdVwgOwor5rim54q25paHID4ga2Fqb3Vtb25cIDsKK+iHquWLlei7iiA+IGppZG91c2hhXCA7CivpmaTojYnliaQgPiBqb3NvdXphaVwgOwor5LiN5YWs5q2jID4gZnVrb3VzZWlcIDsKK+mXmOaKgOWgtCA+IHRvdWdpam91XCA7CivkuLvoqJjmhrYgPiBzaHVraW9rdVwgOwor6by75LiL6ZW3ID4gYmlrYWNob3VcIDsKK+acgOWkp+WMliA+IHNhaWRhaWthXCA7CivpmLLngo7liaQgPiBib3VlbnphaVwgOwor5rq26Ymx54KJID4geW91a291cm9cIDsKK+S9leaZgumWkyA+IG5hbmppa2FuXCA7Civns7vntbHmqLkgPiBrZWl0b3VqdVwgOwor5b6h6Ieq6LqrID4gZ29qaXNoaW5cIDsKK+S4iuiPk+WtkCA+IGpvdWdhc2hpXCA7CivooqvmuJvmlbAgPiBoaWdlbnN1dVwgOwor5pif5p2h5peXID4gc2Vpam91a2lcIDsKK+eWjuawtOaApyA+IHNvc3Vpc2VpXCA7Civoh6rmsrvmqKkgPiBqaWNoaWtlblwgOwor6YCu5o2V6ICFID4gdGFpaG9zaGFcIDsKK+S6jOmgreetiyA+IG5pdG91a2luXCA7CivntKDmtarkurogPiBzdXJvdW5pblwgOwor56eL5aC05omAID4gYWtpYmFzaG9cIDsKK+iIueeBq+S6iyA+IGZ1bmFrYWppXCA7CivogrLnqK7lrrYgPiBpa3VzaHVrYVwgOwor5q2j6Kqy5aSWID4gc2Vpa2FnYWlcIDsKK+eFieeTpuWhgCA+IHJlbmdhYmVpXCA7Civoi7Hmlofms5UgPiBlaWJ1bnBvdVwgOwor5pyq5rG65a6aID4gbWlrZXR0ZWlcIDsKK+mmluiEs+mDqCA+IHNodW5vdWJ1XCA7CivlgaXlurfnvo4gPiBrZW5rb3ViaVwgOwor5Lih6K2w6ZmiID4gcnlvdWdpaW5cIDsKK+aEm+WUseatjCA+IGFpc2hvdWthXCA7CivkuozmnKzmo5IgPiBuaWhvbmJvdVwgOwor6Z2S54mp5bGLID4gYW9tb25veWFcIDsKK+S7ruWumuW9oiA+IGthdGVpa2VpXCA7Civoh6rli5XoqZ4gPiBqaWRvdXNoaVwgOwor5L6/5a6c5LiKID4gYmVuZ2lqb3VcIDsKK+eUsOiIjumiqCA+IGluYWthZnV1XCA7CivmnJ3lvqHpo68gPiBhc2Fnb2hhblwgOwor5oyH5o+u5qipID4gc2hpa2lrZW5cIDsKK+ioreioiOWbsyA+IHNla2tlaXp1XCA7Civpg6jlpJbogIUgPiBidWdhaXNoYVwgOwor6JGs5YSA5aC0ID4gc291Z2lqb3VcIDsKK+ejgeaAp+S9kyA+IGppc2VpdGFpXCA7CivpioDmnKzkvY0gPiBnaW5ob24nJ2lcIDsKK+aUv+WFmuWToSA+IHNlaXRvdWluXCA7Civlr77lv5zlgKQgPiB0YWlvdWNoaVwgOwor6LuN6Imm5peXID4gZ3Vua2Fua2lcIDsKK+S6jOS5l+aguSA+IG5pam91a29uXCA7CivmjIfmj67mo5IgPiBzaGlraWJvdVwgOwor5q+N5Zu96KqeID4gYm9rb2t1Z29cIDsKK+eUu+eUqOe0mSA+IGdheW91c2hpXCA7CivmpJzmuKnlmaggPiBrZW4nJ29ua2lcIDsKK+mnhua9nOiJhyA+IGt1c2VudGVpXCA7CivloJXog47nvaogPiBkYXRhaXphaVwgOwor56OB5rCX5a2mID4gamlraWdha3VcIDsKK+aHkOeCieeBsCA+IGthaXJvYmFpXCA7CivopoHms6jmhI8gPiB5b3VjaHV1aVwgOwor5Yid55Sf5YWQID4gc2hvc2VpamlcIDsKK+S4jemuruaYjiA+IGZ1c2VubWVpXCA7CivlpKnptZ7ntaggPiBiaXJvdWRvdVwgOwor6KO957OW5omAID4gc2VpdG91am9cIDsKK+WFiOmnhuiAhSA+IHNlbmt1c2hhXCA7CivliqnmiJDph5EgPiBqb3NlaWtpblwgOwor5rih5p2l5Lq6ID4gdG9yYWlqaW5cIDsKK+mAn+iomOiAhSA+IHNva2tpc2hhXCA7CivoiabovInmqZ8gPiBrYW5zYWlraVwgOwor54Sh5ZCN5oyHID4gbXVtZWlzaGlcIDsKK+ijveeyieapnyA+IHNlaWZ1bmtpXCA7CivkubHlsaTpm7IgPiByYW5zb3V1blwgOwor5Y+C5LqL5LyaID4gc2FuamlrYWlcIDsKK+aOkuawl+W8gSA+IGhhaWtpYmVuXCA7CivmraPntbHmtL4gPiBzZWl0b3VoYVwgOwor6KOc5L2Q5b25ID4gaG9zYXlha3VcIDsKK+acqumFjeW9kyA+IG1paGFpdG91XCA7CivmmK/pnZ7lhbEgPiB6ZWhpdG9tb1wgOwor5pyq5YiK6KGMID4gbWlrYW5rb3VcIDsKK+aeouapn+WNvyA+IHN1dWtpa2VpXCA7CivmnKrpgYLnvaogPiBtaXN1aXphaVwgOwor5paH5YyW6LKhID4gYnVua2F6YWlcIDsKK+atpuijheiIuSA+IGJ1c291c2VuXCA7CivoqJjogIXlm6MgPiBraXNoYWRhblwgOwor5b6h55So6YK4ID4gZ295b3V0ZWlcIDsKK+W+oeWFiOajkiA+IG9zYWtpYm91XCA7Civlrprmr5TkvosgPiB0ZWloaXJlaVwgOwor5a+M5aOr5bedID4gZnVqaWthd2FcIDsKK+eUo+WNteacnyA+IHNhbnJhbmtpXCA7CivliIbnm7jmqZ8gPiBidW5zb3VraVwgOwor5LiK5bGk6ZuyID4gam91c291dW5cIDsKK+S4ieasoeWFgyA+IHNhbmppZ2VuXCA7CivnvqTppqznnIwgPiBndW5tYWtlblwgOwor5YW156uZ6YOoID4gaGVpdGFuYnVcIDsKK+S4jeWFrOW5syA+IGZ1a291aGVpXCA7CivliY3pvLvnt5IgPiBtYWVoYW5hb1wgOwor5LiN5YeN5YmkID4gZnV0b3V6YWlcIDsKK+eJqeecn+S8vCA+IG1vbm9tYW5lXCA7CivpgYrmranpgZMgPiB5dXVob2RvdVwgOwor5Y+v5ZOA5oOzID4ga2F3YWlzb3VcIDsKK+eon+itsOabuCA+IHJpbmdpc2hvXCA7CivnhKHliLbpmZAgPiBtdXNlaWdlblwgOwor5L2T6IKy5a62ID4gdGFpaWt1a2FcIDsKK+WIhuWykOmnhSA+IGJ1bmtpZWtpXCA7CivljLvnmYLnlKggPiBpcnlvdXlvdVwgOwor6YCu5o2V54q2ID4gdGFpaG9qb3VcIDsKK+mBjuWOu+W4syA+IGtha29jaG91XCA7CivmqZ/li5XmgKcgPiBraWRvdXNlaVwgOwor54ax6aKo54KJID4gbmVwcHV1cm9cIDsKK+atqeihjOiAhSA+IGhva291c2hhXCA7CivlhobpjJDlvaIgPiBlbnN1aWtlaVwgOwor5a6I6Yqt5aW0ID4gc2h1c2VuZG9cIDsKK+mBk+WMluW4qyA+IGRvdWtlc2hpXCA7CivkuIvohbnpg6ggPiBrYWZ1a3VidVwgOwor5Y+N5pS/5bqcID4gaGFuc2VpZnVcIDsKK+Wbnui7ouWEgCA+IGthaXRlbmdpXCA7CivkuIrojYnlsaUgPiB1d2F6b3VyaVwgOwor57Gz5LiK6ZmiID4gYmVpam91aW5cIDsKK+S4gOW4s+e+hSA+IGl0Y2hvdXJhXCA7CivmnJ3nqL3lj6QgPiBhc2FnZWlrb1wgOwor6KO957KJ5omAID4gc2VpZnVuam9cIDsKK+iiq+ayu+iAhSA+IGhpY2hpc2hhXCA7Civlrq7nlLDlrrYgPiBtaXlhdGFrZVwgOwor6L+R6KGb5YW1ID4ga29ub2VoZWlcIDsKK+WyqeaJi+ecjCA+IGl3YXRla2VuXCA7CivpgKPpmorml5cgPiByZW50YWlraVwgOwor566h5qW95ZmoID4ga2FuZ2Fra2lcIDsKK+isneaBqeS8miA+IHNoYW9ua2FpXCA7CivppIronILlrrYgPiB5b3Vob3VrYVwgOwor5LqU57ea57SZID4gZ29zZW5zaGlcIDsKK+W5s+eUn+edgCA+IGhlaXplaWdpXCA7CivmqZ/luIboiLkgPiBraWhhbnNlblwgOwor6Z2e5o6S5rC0ID4gaGloYWlzdWlcIDsKK+edgOeVquWPtyA+IGtpYmFuZ291XCA7CivkuI3lgKvnvaogPiBmdXJpbnphaVwgOwor6aO057Sw5belID4gYW1lemFpa3VcIDsKK+WBveS8vOeXhyA+IGdpamlzaG91XCA7CivlpKfluoPplpMgPiBvb2hpcm9tYVwgOwor6YG/6Zuj6ICFID4gaGluYW5zaGFcIDsKK+WumuW4uOazoiA+IHRlaWpvdWhhXCA7CivmjIfmj67lrpggPiBzaGlraWthblwgOwor5LuY5bGe6KqeID4gZnV6b2t1Z29cIDsKK+W5tOS8muiyuyA+IG5lbmthaWhpXCA7CivmlYXosrfogIUgPiBrb2JhaXNoYVwgOwor5LqU5aSn5rSLID4gZ29kYWl5b3VcIDsKK+ePquiXu+WcnyA+IGtlaXNvdWRvXCA7CivkurrlkI3nsL8gPiBqaW5tZWlib1wgOwor5o6S5rCX5Y+jID4gaGFpa2lrb3VcIDsKK+mBv+WmiuazlSA+IGhpbmluaG91XCA7CivokIzmnKjoibIgPiBtb2VnaWlyb1wgOwor54m55L6h5ZOBID4gdG9ra2FoaW5cIDsKK+aPmuaKl+avlCA+IHlvdWtvdWhpXCA7Civpm4fnlKjogIUgPiBrb3lvdXNoYVwgOwor6L6e5pu46aGeID4gamlzaG9ydWlcIDsKK+Wkp+W+gOeUnyA+IGRhaW91am91XCA7Civov73otbfoqLQgPiB0c3Vpa2lzb1wgOwor6YGO5Y2K5pWwID4ga2FoYW5zdXVcIDsKK+WuieaBr+aXpSA+IGFuc29rdWJpXCA7Civlho3mta7kuIogPiBzYWlmdWpvdVwgOwor5Zuz5pu45Yi4ID4gdG9zaG9rZW5cIDsKK+eZuui1t+S6uiA+IGhva2tpbmluXCA7CivpgZPlhbfoq5YgPiBkb3VndXJvblwgOwor5YiG55u45b+cID4gYnVuc291b3VcIDsKK+eri+WAmeijnCA+IHJpa2tvdWhvXCA7Civpgb/mmpHlnLAgPiBoaXNob2NoaVwgOwor5o6l6aqo5pyoID4gbml3YXRva29cIDsKK+ekvuS8muenkSA+IHNoYWthaWthXCA7CivkuIrmqZ/lq4wgPiBqb3VraWdlblwgOwor5Lqk5o+b5omAID4ga291a2Fuam9cIDsKK+WWnOatjOWKhyA+IGtpa2FnZWtpXCA7Civmt7vliqDliaQgPiB0ZW5rYXphaVwgOwor5pyq5b6p5ZOhID4gbWlmdWt1aW5cIDsKK+ismemBnOiqniA+IGtlbnNvbmdvXCA7CivmnKrlh6bnva4gPiBtaXNob2NoaVwgOwor5Zyw5b2i5ZuzID4gY2hpa2VpenVcIDsKK+acquefpeaVsCA+IG1pY2hpc3V1XCA7Civlhavmva7ot68gPiB5YXNoaW9qaVwgOwor5Luj55CG6ICFID4gZGFpcmlzaGFcIDsKK+i7jeS7pOmDqCA+IGd1bnJlaWJ1XCA7CivmqKrmloflrZcgPiB5b2tvbW9qaVwgOwor5aSq5Y+k5LujID4gdGFpa29kYWlcIDsKK+W5vuS9leWtpiA+IGtpa2FnYWt1XCA7Civopb/mtIvljJYgPiBzZWl5b3VrYVwgOwor5YiR5L2Z6ICFID4ga2VpeW9zaGFcIDsKK+a4oeS4luS6uiA+IHRvc2VpbmluXCA7CivnvoXph53lhIAgPiByYXNoaW5naVwgOwor5a2Q6Z+z576kID4gc2hpaW5ndW5cIDsKK+aal+iovOWMliA+IGFuc2hvdWthXCA7Civmu5HotbDot68gPiBrYXNzb3Vyb1wgOwor6KO95Zuz5p2/ID4gc2VpenViYW5cIDsKK+eah+e1seitnCA+IGtvdXRvdWZ1XCA7CivnkIblrabpg6ggPiByaWdha3VidVwgOwor6Iux6Kqe5aG+ID4gZWlnb2p1a3VcIDsKK+aCsuWWnOWKhyA+IGhpa2lnZWtpXCA7Civkv53nrqHmnpcgPiBob2thbnJpblwgOwor5YaN5q2m6KOFID4gc2FpYnVzb3VcIDsKK+i1pOicu+ibiSA+IGFrYXRvbmJvXCA7CivkuojppYzkvJogPiB5b3NlbmthaVwgOwor54Sh6L666ZqbID4gbXVoZW56YWlcIDsKK+S4jeiHqueEtiA+IGZ1c2hpemVuXCA7CivohY7kuI3lhaggPiBqaW5mdXplblwgOwor5a605Lya5aC0ID4gZW5rYWlqb3VcIDsKK+e1jOS4luWutiA+IGtlaXNlaWthXCA7CivkuI3kv6HogIUgPiBmdXNoaW5qYVwgOwor5Y2Y5pys5L2NID4gdGFuaG9uJydpXCA7CivlhobpjJDlj7AgPiBlbnN1aWRhaVwgOwor5Zug5p6c6ICFID4gaW5nYW1vbm9cIDsKK+S4jeS/oee+qSA+IGZ1c2hpbmdpXCA7Civou43kuovpnaIgPiBndW5qaW1lblwgOwor5oGS5rKz5rKZID4gZ291Z2FzaGFcIDsKK+WJteahiOiAhSA+IHNvdWFuc2hhXCA7Civoh6rmsrvkvZMgPiBqaWNoaXRhaVwgOwor552A5bC65ZywID4ga2lqYWt1amlcIDsKK+W+jOWNiuacnyA+IGtvdWhhbmtpXCA7Civoh6rmsrvkvJogPiBqaWNoaWthaVwgOwor5L6h5YCk6KazID4ga2FjaGlrYW5cIDsKK+ilv+mBiuiomCA+IHNlaXl1dWtpXCA7CivlubTku6PoqJggPiBuZW5kYWlraVwgOwor5oSf5oOF5a62ID4ga2Fuam91a2FcIDsKK+aWh+WMluelrSA+IGJ1bmthc2FpXCA7CivlpInmj5vlmaggPiBoZW5rYW5raVwgOwor5LiW55WM5Y+yID4gc2VrYWlzaGlcIDsKK+WPl+eyvuWNtSA+IGp1c2VpcmFuXCA7Civnt4/mjIfmj64gPiBzb3VzaGlraVwgOwor5bm055Sy5paQID4gdG9zaGlnYWlcIDsKK+S4jeWFheWIhiA+IGZ1anV1YnVuXCA7Civms6Xku5XlkIggPiBkb3JvamlhaVwgOwor5riF5a2Q6Z+zID4gc2Vpc2hpaW5cIDsKK+S6jOacn+S9nCA+IG5pa2lzYWt1XCA7CivmqKrntIvnrYsgPiBvdW1vbmtpblwgOwor6YGL5YuV55WMID4gdW5kb3VrYWlcIDsKK+acqueZuuimiyA+IG1paGFra2VuXCA7Civlgbblg4/ljJYgPiBndXV6b3VrYVwgOwor6KOc6IG05ZmoID4gaG9jaG91a2lcIDsKK+iLseiqnuWKhyA+IGVpZ29nZWtpXCA7Civpm7vnrpfmqZ8gPiBkZW5zYW5raVwgOwor5YaN5ZCf5ZGzID4gc2FpZ2lubWlcIDsKK+WGhumMkOS9kyA+IGVuc3VpdGFpXCA7CivkuojppJ7kvJogPiB5b3NlbmthaVwgOwor6Z2S5aSp5LqVID4gYW90ZW5qb3VcIDsKK+mdnuaIpuirliA+IGhpc2Vucm9uXCA7CivmnKrnmbrooYwgPiBtaWhha2tvdVwgOwor55u45aC05birID4gc291YmFzaGlcIDsKK+WPpOaIpuWgtCA+IGtvc2Vuam91XCA7CivkuInnlbPntIAgPiBzYW5qb3VraVwgOwor5aW95oSP55qEID4ga291aXRla2lcIDsKK+W+oemms+i1sCA+IGdvY2hpc291XCA7CivmibbppIrogIUgPiBmdXlvdXNoYVwgOwor5Y2B5a2X6LuNID4ganV1amlndW5cIDsKK+aMieaJi+ekvCA+IGFuc2h1cmVpXCA7CivlkIzkvY3op5IgPiBkb3Vpa2FrdVwgOwor6Lyq6Lui5qmfID4gcmludGVua2lcIDsKK+WOreS6uuiAhSA+IGVuamluc2hhXCA7CivnhKHphY3lvZMgPiBtdWhhaXRvdVwgOwor5a+M6KOV56iOID4gZnV5dXV6ZWlcIDsKK+mBjuWKtOatuyA+IGthcm91c2hpXCA7CivntIXooZvlhbUgPiBrb3VlaWhlaVwgOwor566h55CG6ICFID4ga2FucmlzaGFcIDsKK+WknOWVhuS6uiA+IHlvYWtpbmRvXCA7CivoiIzkuIvohbogPiB6ZWtrYXNlblwgOwor5omA5oyB5ZOBID4gc2hvamloaW5cIDsKK+e0gOihjOaWhyA+IGtpa291YnVuXCA7CivngavlsbHngbAgPiBrYXphbmJhaVwgOwor6aiO5aOr6YGTID4ga2lzaGlkb3VcIDsKK+WJsOS9memHkSA+IGpvdXlva2luXCA7CivosYrmsLTmnJ8gPiBob3VzdWlraVwgOwor5L2O6IO95YWQID4gdGVpbm91amlcIDsKK+W4sOe0jeazlSA+IGtpbm91aG91XCA7CivnjYXlrZDluqcgPiBzaGlzaGl6YVwgOwor5Lqk5o+b5ZmoID4ga291a2Fua2lcIDsKK+S4lueVjOS6uiA+IHNla2FpamluXCA7CivooZvnlJ/pmoogPiBlaXNlaXRhaVwgOwor55CG5LqL6ZW3ID4gcmlqaWNob3VcIDsKK+W5s+Wxi+aguSA+IGhpcmF5YW5lXCA7CivlhYPogIHpmaIgPiBnZW5yb3VpblwgOwor5qOE5qip6ICFID4ga2lrZW5zaGFcIDsKK+S4lueVjOS4rSA+IHNla2FpanV1XCA7CivmsrPlj6PmuK8gPiBrYWtvdWtvdVwgOwor5LiN5L2T6KOBID4gZnV0ZWlzYWlcIDsKK+avkuicmOibmyA+IGRva3VndW1vXCA7CivljZjoqp7nr4cgPiB0YW5nb2hlblwgOwor55Sf5b6S5pWwID4gc2VpdG9zdXVcIDsKK+e+iuearue0mSA+IHlvdWhpc2hpXCA7Civmr43ns7vliLYgPiBib2tlaXNlaVwgOwor5bGV56S65aC0ID4gdGVuamlqb3VcIDsKK+W+jOmBuueXhyA+IGtvdWlzaG91XCA7CivkuI3lrproqZ4gPiBmdXRlaXNoaVwgOwor5Yqg5ouF6ICFID4ga2F0YW5zaGFcIDsKK+mZvembu+awlyA+IHlvdWRlbmtpXCA7CivlrqPkvJ3osrsgPiBzZW5kZW5oaVwgOwor5YqH5pig55S7ID4gZ2VraWVpZ2FcIDsKK+eEoeW4uOimsyA+IG11am91a2FuXCA7CivpgYrolanlhZAgPiB5dXV0b3VqaVwgOwor6YeR5rqA5a62ID4ga2lubWFua2FcIDsKK+mMoOWJjeWxiyA+IGpvdW1hZXlhXCA7Civnn6XlkI3luqYgPiBjaGltZWlkb1wgOwor5Ye66bGI55uuID4gZGV0YXJhbWVcIDsKK+aHh+ipseS8miA+IGtvbndha2FpXCA7Civpgb/pm6PmsJEgPiBoaW5hbm1pblwgOwor5Y2B5a2X6KGXID4ganV1amlnYWlcIDsKK+S4u+a8lOiAhSA+IHNodWVuc2hhXCA7CivkuJbkv5fljJYgPiBzZXpva3VrYVwgOwor57KX6KO95ZOBID4gc29zZWloaW5cIDsKK+WPs+W/g+aIvyA+IHVzaGluYm91XCA7CivlnKfliLbogIUgPiBhc3NlaXNoYVwgOwor5bGV56S65ZOBID4gdGVuamloaW5cIDsKK+abuOiomOWumCA+IHNob2tpa2FuXCA7Civpg7flnJ/mhJsgPiBreW91ZG9haVwgOwor6LKv6JS15bqrID4gY2hvem91a29cIDsKK+S4i+mmrOiplSA+IGdlYmFoeW91XCA7CivkuI3og73ogIUgPiBmdW5vdXNoYVwgOwor5LiN6Imv5YyWID4gZnVyeW91a2FcIDsKK+iWhOiNt+ezliA+IGhha2thdG91XCA7CivoloTojbfnsr4gPiBoYWtrYXNlaVwgOwor5q+U5Zap55qEID4gaGl5dXRla2lcIDsKK+S6ieitsOaoqSA+IHNvdWdpa2VuXCA7Civph43npoHpjK4gPiBqdXVraW5rb1wgOwor6YGL5YuV5qyEID4gdW5kb3VyYW5cIDsKK+aZruWBj+aApyA+IGZ1aGVuc2VpXCA7CivovrLnuYHmnJ8gPiBub3VoYW5raVwgOwor5oSf5Y+X5oCnID4ga2FuanVzZWlcIDsKK+WFteWZqOW3pSA+IGhlaWtpa291XCA7CivlgKrpm7LmnpcgPiBnZWl1bnJpblwgOwor6YGL6YCB6Ii5ID4gdW5zb3VzZW5cIDsKK+mBiuWGtumDjiA+IHl1dXlhcm91XCA7CivnlLvku5nntJkgPiBnYXNlbnNoaVwgOwor5aSa5q616ZqOID4gdGFkYW5rYWlcIDsKK+ippumok+apnyA+IHNoaWtlbmtpXCA7CivkuIDoiKzoq5YgPiBpcHBhbnJvblwgOwor5Yqg566X56iOID4ga2FzYW56ZWlcIDsKK+WIhuWykOe3miA+IGJ1bmtpc2VuXCA7Civlloflj63miYsgPiByYXBwYXNodVwgOwor5YWN572q56ymID4gbWVuemFpZnVcIDsKK+eKrOm7hOaliiA+IGludXRzdWdlXCA7Civljq3kuJboprMgPiBlbnNlaWthblwgOwor5Y2K5LiW57SAID4gaGFuc2Vpa2lcIDsKK+mFteavjeiPjCA+IGtvdWJva2luXCA7Civlhrfnvajms5UgPiByZWlhbnBvdVwgOwor5oSb6JS154mIID4gYWl6b3ViYW5cIDsKK+W+oeWBieaWuSA+IG9lcmFnYXRhXCA7CivoqJjmlbDms5UgPiBraXN1dWhvdVwgOwor56m65LiL5omLID4ga2FyYWhldGFcIDsKK+S4jeWBpeW6tyA+IGZ1a2Vua291XCA7CivmjqLmpJzlrrYgPiB0YW5rZW5rYVwgOwor5aSn5rCX5ZyPID4gdGFpa2lrZW5cIDsKK+eNheWtkOWQvCA+IHNoaXNoaWt1XCA7Civku6PnkIbmqKkgPiBkYWlyaWtlblwgOwor54mp5Lu26LK7ID4gYnVra2VuaGlcIDsKK+ato+imj+WFtSA+IHNlaWtpaGVpXCA7Civlho3phY3luIMgPiBzYWloYWlmdVwgOwor5Zub55Wz5Y2KID4geW9qb3VoYW5cIDsKK+WxleekuuS8miA+IHRlbmppa2FpXCA7CivlpKfpg73luIIgPiBkYWl0b3NoaVwgOwor5YWI5a2m5pyfID4gc2VuZ2Fra2lcIDsKK+aCqua0kuiQvSA+IHdhcnVqYXJlXCA7Civoh6rmsJHlhZogPiBqaW1pbnRvdVwgOwor5Yy755mC5ZOBID4gaXJ5b3VoaW5cIDsKK+WGheaymeaxsCA+IHVjaGl6YXRhXCA7CivliIblhYnlmaggPiBidW5rb3VraVwgOwor6Kaq5LiN5a2dID4gb3lhZnVrb3VcIDsKK+e4gei1t+eJqSA+IGVuZ2ltb25vXCA7CivmtYHmmJ/pm6ggPiByeXV1c2VpdVwgOwor5bm06LKi57GzID4gbmVuZ3VtYWlcIDsKK+a0l+a1hOWZqCA+IHNlbmpvdWtpXCA7CivmsrnpgIHoiLkgPiB5dXNvdXNlblwgOwor5b6q55Kw5ZmoID4ganVua2Fua2lcIDsKK+WBpeW6t+WFkCA+IGtlbmtvdWppXCA7CivnqI7nkIblo6sgPiB6ZWlyaXNoaVwgOwor5Lq65oOF5ZGzID4gbmluam91bWlcIDsKK+WrjOeWkeiAhSA+IGtlbmdpc2hhXCA7CivnrYnoqp7nt5ogPiB0b3Vnb3NlblwgOwor5Y2B5a2X57eaID4ganV1amlzZW5cIDsKK+S4jeS9v+eUqCA+IGZ1c2hpeW91XCA7CivkuIDnlJ/pnaIgPiBpc3NlaW1lblwgOwor5peF6KGM6KiYID4gcnlva291a2lcIDsKK+WAi+S9k+e+pCA+IGtvdGFpZ3VuXCA7Civlj6Pok4vpn7MgPiBrb3VnYWlvblwgOwor5Zyn5bu25qmfID4gYXRzdWVua2lcIDsKK+WSjOWjsOazlSA+IHdhc2VpaG91XCA7Civpq5jpoLvluqYgPiBrb3VoaW5kb1wgOwor5bCP6LGG6ImyID4gYXp1a2lpcm9cIDsKK+WOs+e+jua4kyA+IGdlbmJpa2VpXCA7CivngavlsbHlvL4gPiBrYXphbmRhblwgOwor5Y2K6Kun6Z+zID4gaGFua2Fpb25cIDsKK+a2iOWMluWZqCA+IHNob3VrYWtpXCA7CivmsYLms5XogIUgPiBndWhvdXNoYVwgOwor54Gr5bGx5bivID4ga2F6YW50YWlcIDsKK+S4i+mnhOeusSA+IGdldGFiYWtvXCA7Civoip3mtbfogIEgPiBzaGliYWViaVwgOwor5aSn5YiG55yMID4gb29pdGFrZW5cIDsKK+Wxsee+iumrrSA+IHlhZ2loaWdlXCA7CivngKzmiLjpmpsgPiBzZXRvZ2l3YVwgOwor54Gr5bGx5bO2ID4ga2F6YW50b3VcIDsKK+S4jeWvqeeBqyA+IGZ1c2hpbmJpXCA7CivlpYnku5XlpbMgPiBob3VzaGltZVwgOwor54Gr5bGx5bKpID4ga2F6YW5nYW5cIDsKK+eOieegguWIqSA+IHRhbWFqYXJpXCA7CivkuIDliIbljYogPiBpcHB1bmhhblwgOwor6Iqx6bOl55S7ID4ga2FjaG91Z2FcIDsKK+eEoeiPjOazlSA+IG11a2luaG91XCA7CivnhKHlhY3oqLEgPiBtdW1lbmt5b1wgOwor5b6F6YG/57eaID4gdGFpaGlzZW5cIDsKK+etieaZguaApyA+IHRvdWppc2VpXCA7CivlubTos4DnirYgPiBuZW5nYWpvdVwgOwor5Y+k5Y+C6ICFID4ga29zYW5zaGFcIDsKK+aEn+atjuespiA+IGthbnRhbmZ1XCA7CivliIblspDngrkgPiBidW5raXRlblwgOwor5L6N5b6T5a6YID4gamlqdXVrYW5cIDsKK+WGhemHjuaJiyA+IG5haXlhc2h1XCA7CivmsrnpgIHnrqEgPiB5dXNvdWthblwgOwor5LiN55So5b+DID4gYnV5b3VqaW5cIDsKK+iqmOibvueBryA+IHl1dWdhdG91XCA7CivoqIjnkIblo6sgPiBrZWlyaXNoaVwgOwor6ZuR6LKo5bqXID4gemFra2F0ZW5cIDsKK+W6p+WPs+mKmCA+IHpheXV1bWVpXCA7CivlrZDpn7PmgKcgPiBzaGlpbnNlaVwgOwor5pyf5b6F5oSfID4ga2l0YWlrYW5cIDsKK+mBi+WLleWutiA+IHVuZG91c2hhXCA7CivmhJrpgKPpmoogPiBndXJlbnRhaVwgOwor5Y6f5a2Q6ZuyID4gZ2Vuc2hpdW5cIDsKK+S7o+eQhuW6lyA+IGRhaXJpdGVuXCA7Civoq7jlmajmorAgPiBzaG9raWthaVwgOwor5pON6Ii15omLID4gc291ZGFzaHVcIDsKK+WHuuatr+S6gCA+IGRlYmFrYW1lXCA7CivkuI3lgaXlhaggPiBmdWtlbnplblwgOwor55u46KOc5oCnID4gc291aG9zZWlcIDsKK+iHqui7oui7iiA+IGppdGVuc2hhXCA7CivliJ3mnJ/lgKQgPiBzaG9raWNoaVwgOwor5o6l6aCt6L6eID4gc2V0dG91amlcIDsKK+eUn+W+kuS8miA+IHNlaXRva2FpXCA7CivotaToo7jjgIUgPiBzZWtpcmFyYVwgOwor6aCQ6KiA6ICFID4geW9nZW5zaGFcIDsKK+mWi+WCrOaXpSA+IGthaXNhaWJpXCA7Civog7TplpPlo7AgPiBkb3VtYWdvZVwgOwor6IOM55Wq5Y+3ID4gc2ViYW5nb3VcIDsKK+a1rua1quiAhSA+IGZ1cm91c2hhXCA7CivkvJrlk6HliLggPiBrYWlpbmtlblwgOwor5Lya5ZOh5Yi2ID4ga2FpaW5zZWlcIDsKK+iLseexs+azlSA+IGVpYmVpaG91XCA7CivlkIjnkIboq5YgPiBnb3VyaXJvblwgOwor5aSn6YOo5YiGID4gZGFpYnVidW5cIDsKK+S6lOinkuW9oiA+IGdva2Fra2VpXCA7CivnpL7kvJrljJYgPiBzaGFrYWlrYVwgOwor5Lit6KaP5qihID4gY2h1dWtpYm9cIDsKK+Wkp+mDveS8miA+IGRhaXRva2FpXCA7CivorbfpgIHou4ogPiBnb3NvdXNoYVwgOwor6YeN5omL5LujID4gb21vdGVkYWlcIDsKK+W6g+WgsemDqCA+IGtvdWhvdWJ1XCA7CivlibXkuJboqJggPiBzb3VzZWlraVwgOwor5LiJ5p2v6YWiID4gc2FuYmFpenVcIDsKK+evgOeCreWZqCA+IHNldHRhbmtpXCA7CivluIzmnJvogIUgPiBraWJvdXNoYVwgOwor5aSW56eR5a2mID4gZ2VrYWdha3VcIDsKK+WIkeS6i+eKryA+IGtlaWppaGFuXCA7CivphY3nt5rlm7MgPiBoYWlzZW56dVwgOwor5qmf5qKw6KuWID4ga2lrYWlyb25cIDsKK+W3neeni+aymSA+IGthd2FhaXNhXCA7CivmlofljJblnI8gPiBidW5rYWtlblwgOwor5o6l6aCt6KqeID4gc2V0dG91Z29cIDsKK+S6i+aVheattCA+IGppa29yZWtpXCA7CivlsbHlsI/lsYsgPiB5YW1hZ295YVwgOwor57O46Jy76JuJID4gaXRvdG9uYm9cIDsKK+enu+i7ouWFiCA+IGl0ZW5zYWtpXCA7CivlpKfli7LkvY0gPiBkYWlrdW4nJ2lcIDsKK+Wkp+ebrueOiSA+IG9vbWVkYW1hXCA7CivlrpjlhazlkI8gPiBrYW5rb3VyaVwgOwor5Y2U6K2w5ZOhID4ga3lvdWdpaW5cIDsKK+i7jeS6i+eKryA+IGd1bmppaGFuXCA7Civpmo/ooYzlk6EgPiB6dWlrb3VpblwgOwor5LiA6L665YCSID4gaXBwZW50b3VcIDsKK+ePvuS7o+iqniA+IGdlbmRhaWdvXCA7CivogbTpn7PmqZ8gPiBjaG91b25raVwgOwor5LiN5bCO5oCnID4gZnVkb3VzZWlcIDsKK+eQhuWuueW4qyA+IHJpeW91c2hpXCA7CivkubHpq5jkuIsgPiByYW5rb3VnZVwgOwor5Y+Z5oOF6KmpID4gam9qb3VzaGlcIDsKK+ekvuS6pOWutiA+IHNoYWtvdWthXCA7CivmlofljJblj7IgPiBidW5rYXNoaVwgOwor5LiN55So5ZOBID4gZnV5b3VoaW5cIDsKK+mAj+aYjuW6piA+IHRvdW1laWRvXCA7CivkuI3lrprms5UgPiBmdXRlaWhvdVwgOwor5rip5o6S5rC0ID4gb25oYWlzdWlcIDsKK+WkqeiKseeyiSA+IHRlbmthZnVuXCA7CivoiKrnqbrot68gPiBrb3VrdXVyb1wgOwor6LOH55Sj5a62ID4gc2hpc2Fua2FcIDsKK+mhnuS8vOeCuSA+IHJ1aWppdGVuXCA7Civmt6HmsLTmuZYgPiB0YW5zdWlrb1wgOwor5LqI6KiA6ICFID4geW9nZW5zaGFcIDsKK+W6g+WgseiqsiA+IGtvdWhvdWthXCA7CivlsI/kurrmlbAgPiBrb25pbnp1dVwgOwor5oSb55+l55yMID4gYWljaGlrZW5cIDsKK+S6uumAoOiXjSA+IGppbnpvdWFpXCA7CivljLvlrabogIUgPiBpZ2FrdXNoYVwgOwor5oKq5oSf5oOFID4gYWtrYW5qb3VcIDsKK+S7rue0jemHkSA+IGthbm91a2luXCA7CivmnKrlh6bliIYgPiBtaXNob2J1blwgOwor5beu6YWN5Lq6ID4gc2FoYWluaW5cIDsKK+S9jumgu+W6piA+IHRlaWhpbmRvXCA7CivkvZzngrrniq8gPiBzYWt1aWhhblwgOwor5q2v56eR55SoID4gc2hpa2F5b3VcIDsKK+WGjeWHpueQhiA+IHNhaXNob3JpXCA7CivpgYvli5XkvJogPiB1bmRvdWthaVwgOwor6Iqx6Iyj6JOZID4gaGFuYWdvemFcIDsKK+eOhOatpuWyqSA+IGdlbmJ1Z2FuXCA7CivmtrLnirbljJYgPiBla2lqb3VrYVwgOwor54Sh5Yip5oGvID4gbXVyaXNva3VcIDsKK+mZo+e+vee5lCA+IGppbmJhb3JpXCA7CivmiKbpl5jmqZ8gPiBzZW50b3VraVwgOwor5pyJ5oSP55qEID4geXV1aXRla2lcIDsKK+WVj+mhjOWFkCA+IG1vbmRhaWppXCA7CivlgrXli5nogIUgPiBzYWltdXNoYVwgOwor5LiA6aiO6KiOID4gaWtraXVjaGlcIDsKK+ijnOe1pui3ryA+IGhva3l1dXJvXCA7CivkuIvlsaTlnJ8gPiBrYXNvdWRvXCA7Civotbfli5XmqZ8gPiBraWRvdWtpXCA7CivljYHlrZfmnrYgPiBqdXVqaWthXCA7Civkurrlt6Xpm6ggPiBqaW5rb3V1XCA7CivppJPprLzpgZMgPiBnYWtpZG91XCA7CivkuI3lrprmnJ8gPiBmdXRlaWtpXCA7CivmqKHmk6zlupcgPiBtb2dpdGVuXCA7Civlj6TmrabpgZMgPiBrb2J1ZG91XCA7CivmoITppIrntKAgPiBlaXlvdXNvXCA7Civouqvli53miYsgPiBtaWdhdHRlXCA7CivnhKHliKnlrZAgPiBtdXJpc2hpXCA7CivnkaDnkoPoibIgPiBydXJpaXJvXCA7Civog4Pohbjngo4gPiBpY2hvdWVuXCA7Civotbfli5XmmYIgPiBraWRvdWppXCA7CivmrrrpmaPluKsgPiB0YXRlc2hpXCA7CivpoZ7nvqnoqp4gPiBydWlnaWdvXCA7CivlrrboqIjnsL8gPiBrYWtlaWJvXCA7CivnmbvoqJjnsL8gPiB0b3VraWJvXCA7Civph43mr43pn7MgPiBqdXVib2luXCA7CivpgYXnn6XmgbUgPiBvc29kamllXCA7CivlpKfpgY7ljrsgPiBkYWlrYWtvXCA7CivliqDnrpflmaggPiBrYXNhbmtpXCA7CivlpKfnm7jmkrIgPiBvb3p1bW91XCA7CivmqZ/og73oqp4gPiBraW5vdWdvXCA7CivmnInmsJfpn7MgPiB5dXVraW9uXCA7CivkuI3mnaHnkIYgPiBmdWpvdXJpXCA7CivlpKfpgZPlhbcgPiBvb2RvdWd1XCA7CivlrprkvY3nva4gPiB0ZWlpY2hpXCA7CivpgYvpgIHlsYsgPiB1bnNvdXlhXCA7CivpgKDllrbosrsgPiB6b3VlaWhpXCA7Civokpnlj6Toqp4gPiBtb3Vrb2dvXCA7CivmqZ/morDnp5EgPiBraWthaWthXCA7CivmrKHlubTluqYgPiBqaW5lbmRvXCA7CivlpJrph43ljJYgPiB0YWp1dWthXCA7CivljYPku6PlpbMgPiBjaGl5b2pvXCA7Civlj6TnpL7lr7ogPiBrb3NoYWppXCA7CivkuIDlsaTnm64gPiBpc3NvdW1lXCA7CivlqJHlqYbmsJcgPiBzaGFiYWtlXCA7CivlirHno4HmqZ8gPiByZWlqaWtpXCA7CivkuI3pppblsL4gPiBmdXNodWJpXCA7CivmgqrmhJ/ljJYgPiBha2thbmthXCA7CivlvoXpgb/miYAgPiB0YWloaWpvXCA7Civlm5vogqHlkI0gPiBzaGlrb25hXCA7CivkuI3kurrmsJcgPiBmdW5pbmtpXCA7Civopb/mrKfljJYgPiBzZWlvdWthXCA7Civkuozpmo7lsYsgPiBuaWthaXlhXCA7Civmo5LmmpfoqJggPiBib3VhbmtpXCA7CivkuI3kuIDoh7QgPiBmdWl0Y2hpXCA7CivooYDlj43lkJAgPiBjaGloZWRvXCA7Civmm7PngavlvL4gPiBlaWthZGFuXCA7Civkuozpmo7lrrYgPiBuaWthaXlhXCA7CivnsKHntKDljJYgPiBrYW5zb2thXCA7CivlgIvkvZPlt64gPiBrb3RhaXNhXCA7CivlkIzpn7Poqp4gPiBkb3VvbmdvXCA7CivkuZfli5nlk6EgPiBqb3VtdWluXCA7Civoo4/mnKjmiLggPiB1cmFraWRvXCA7Civph5Hmr5jnvoUgPiBrb25waXJhXCA7CivnhKHpgKDkvZwgPiBtdXpvdXNhXCA7CivljYHkuozmmYIgPiBqdXVuaWppXCA7CivmhI/mg7PlpJYgPiBpc291Z2FpXCA7CivkuI3lronlrpogPiBmdWFudGVpXCA7CivpmbDpm7vmsJcgPiBpbmRlbmtpXCA7CivoloTppqzpub8gPiB1c3ViYWthXCA7CivkuIHlrZfot68gPiB0ZWlqaXJvXCA7Civmj5DnpLrpg6ggPiB0ZWlqaWJ1XCA7CivmhbDllY/lk4EgPiBpbW9uaGluXCA7CivopqrmloflrZcgPiBveWFtb2ppXCA7CivnkIbosqHlrrYgPiByaXphaWthXCA7CivnqL3lj6Tml6UgPiBrZWlrb2JpXCA7CivkuozloYHmiZMgPiBuaXJ1aWRhXCA7CivmiYvnm7joposgPiB0ZXNvdW1pXCA7CivlpJznm5fom74gPiB5b3RvdWdhXCA7CivlpbPmgKfnvo4gPiBqb3NlaWJpXCA7Civpoqjpgqrlo7AgPiBrYXplZ29lXCA7Civljq3kuJblrrYgPiBlbnNlaWthXCA7Civnhqjmlpfnm64gPiBub3NoaW1lXCA7CivpmbDorIDlrrYgPiBpbmJvdWthXCA7Civpmo/mhI/nrYsgPiB6dWlpa2luXCA7CivmiYvliqDmuJsgPiB0ZWthZ2VuXCA7Civorprnvo7mrYwgPiBzYW5iaWthXCA7CivlkIzkvY3kvZMgPiBkb3VpdGFpXCA7CivpoZ7pn7Poqp4gPiBydWlvbmdvXCA7Civlj4nmiYvntrIgPiBzYWRlYW1pXCA7CivlsI/ntqzpto8gPiBrb2p1a2VpXCA7CivmmbTpm6joqIggPiBzZWl1a2VpXCA7CivmlofluqvljJYgPiBidW5rb2thXCA7Civph47mrKHppqwgPiB5YWppdW1hXCA7CivooZfot6/mqLkgPiBnYWlyb2p1XCA7CivmjqfoqLTpmaIgPiBrb3Vzb2luXCA7Civku5nkurrmjowgPiBzYWJvdGVuXCA7Civnvqnmj7Tph5EgPiBnaWVua2luXCA7Civkv6/nnrDlm7MgPiBmdWthbnp1XCA7CivlvqHmlrDpppkgPiBvc2hpbmtvXCA7CivlvqHlrrbkurogPiBnb2tlbmluXCA7CivlpKflr7rpmaIgPiBkYWlqaWluXCA7Civng4/nvr3njokgPiB1YmF0YW1hXCA7CivmgKfooYzngrogPiBzZWlrb3VpXCA7CivkuIDoiKzljJYgPiBpcHBhbmthXCA7CivljYHkupTlpJwgPiBqdXVnb3lhXCA7CivkuozpmaLliLYgPiBuaWluc2VpXCA7CivlrrbmlL/lqaYgPiBrYXNlaWZ1XCA7CivnrKzkuoznvqkgPiBkYWluaWdpXCA7CivnnJ/prZrmnb8gPiBtYW5haXRhXCA7Civlhobou4zpgZMgPiBlbmtpZG91XCA7Civph47okaHokIQgPiBub2J1ZG91XCA7Civlv5zli5/ogIUgPiBvdWJvc2hhXCA7Civpurvlrp/msrkgPiBhc2FtaXl1XCA7CivojLbpo6/kuosgPiBzYWhhbmppXCA7Civlhavph43pm7IgPiB5YWVndW1hXCA7CivmnKrouI/mn7sgPiBtaXRvdXNhXCA7CivntbXokYnmm7ggPiBlaGFnYWtpXCA7CivnqL3lj6TloLQgPiBrZWlrb2JhXCA7CivlronlhajmnJ8gPiBhbnplbmtpXCA7Civlj43mhI/oqp4gPiBoYW4nJ2lnb1wgOwor5YCL5Lq65beuID4ga29qaW5zYVwgOwor57eP5YuZ6YOoID4gc291bXVidVwgOwor6K2m6YOo6KOcID4ga2VpYnVob1wgOwor5LiO5aSq6YOOID4geW90YXJvdVwgOwor5L2N54mM5aCCID4gaWhhaWRvdVwgOwor576p5aSq5aSrID4gZ2lkYXl1dVwgOwor5LiJ6Z6t6YWSID4gc2hhbnBlblwgOwor5aaD5q6/5LiLID4gaGlkZW5rYVwgOwor5ryr55S75a62ID4gbWFuZ2FrYVwgOwor5LiN5pys5oSPID4gZnVob24nJ2lcIDsKK+atqeWQiOeulyA+IGJ1YWl6YW5cIDsKK+iqnuW9meeahCA+IGdvaXRla2lcIDsKK+esrOS4gOiqsiA+IGRhaWlra2FcIDsKK+S6leaIuOerryA+IGlkb2JhdGFcIDsKK+eQhuS6i+S8miA+IHJpamlrYWlcIDsKK+eBq+abnOaXpSA+IGtheW91YmlcIDsKK+W+oeS4jea1hCA+IGdvZnVqb3VcIDsKK+acquWumue+qSA+IG1pdGVpZ2lcIDsKK+WvvuS9jeazlSA+IHRhaWlob3VcIDsKK+a1rua1quWFkCA+IGZ1cm91amlcIDsKK+WppuS6uuenkSA+IGZ1amlua2FcIDsKK+S7luS4lueVjCA+IHRhc2VrYWlcIDsKK+aFsOWKtOmHkSA+IGlyb3VraW5cIDsKK+eQhuS4jeWwvSA+IHJpZnVqaW5cIDsKK+WNmOWdkOapnyA+IHRhbnpha2lcIDsKK+S4jemjveWSjCA+IGZ1aG91d2FcIDsKK+S7o+itsOWToSA+IGRhaWdpaW5cIDsKK+mdnuWQiOeQhiA+IGhpZ291cmlcIDsKK+e3j+WLmeiqsiA+IHNvdW11a2FcIDsKK+aksOWtkOayuSA+IHlhc2hpeXVcIDsKK+awtOazs+edgCA+IHN1aWVpZ2lcIDsKK+e1teiNiee0mSA+IGV6b3VzaGlcIDsKK+Wwj+eKrOW6pyA+IGtvaW51emFcIDsKK+i1pOWRs+WZjCA+IGFrYW1pc29cIDsKK+Wvvue+qeiqniA+IHRhaWdpZ29cIDsKK+axmuafk+iPjCA+IG9zZW5raW5cIDsKK+S4ieaXpei3ryA+IG1pa2thamlcIDsKK+WxhemFkuWxiyA+IGl6YWtheWFcIDsKK+iHquWutuijvSA+IGppa2FzZWlcIDsKK+Whl+W4g+WJpCA+IHRvZnV6YWlcIDsKK+WPpOWFuOiqniA+IGtvdGVuZ29cIDsKK+e+qeaNkOmHkSA+IGdpZW5raW5cIDsKK+S4jeaZr+awlyA+IGZ1a2Vpa2lcIDsKK+WQiOeQhuWMliA+IGdvdXJpa2FcIDsKK+aLieS4geiqniA+IHJhdGVuZ29cIDsKK+mbu+ejgeazoiA+IGRlbmppaGFcIDsKK+mbu+ejgeawlyA+IGRlbmppa2lcIDsKK+WuieWFqOWZqCA+IGFuemVua2lcIDsKK+apn+aisOWMliA+IGtpa2Fpa2FcIDsKK+aghOmkiuS+oSA+IGVpeW91a2FcIDsKK+esrOS6jOasoSA+IGRhaW5pamlcIDsKK+S6leaIuOawtCA+IGlkb21penVcIDsKK+S4gOWAi+S6uiA+IGlra29qaW5cIDsKK+S6oeellueItiA+IGJvdXNvZnVcIDsKK+W+oeacseWNsCA+IGdvc2h1aW5cIDsKK+eVsOaAp+S9kyA+IGlzZWl0YWlcIDsKK+mdnuWQjOacnyA+IGhpZG91a2lcIDsKK+WNgemcsuebpCA+IHNvcm9iYW5cIDsKK+ethuiomOWFtyA+IGhpa2tpZ3VcIDsKK+epj+WBpea0viA+IG9ua2VuaGFcIDsKK+iCsuWFkOWckiA+IGlrdWppZW5cIDsKK+mbu+awl+eCiSA+IGRlbmtpcm9cIDsKK+S+neWtmOaApyA+IGl6b25zZWlcIDsKK+avlOWPoeWxsSA+IGhpZWl6YW5cIDsKK+S+nemgvOiAhSA+IGlyYWlzaGFcIDsKK+ijveayueaJgCA+IHNlaXl1am9cIDsKK+WfuuacrOiqniA+IGtpaG9uZ29cIDsKK+W+oeS4ieWutiA+IGdvc2Fua2VcIDsKK+S6lOevgOWPpSA+IGdvc2Vra3VcIDsKK+iqpOWLleS9nCA+IGdvZG91c2FcIDsKK+W9seWNsOacrCA+IGVpaW5ob25cIDsKK+e1jOWWtuiyuyA+IGtlaWVpaGlcIDsKK+WGhuebuOWgtCA+IGVuc291YmFcIDsKK+iiq+eWkeiAhSA+IGhpZ2lzaGFcIDsKK+aUvueBq+mtlCA+IGhvdWthbWFcIDsKK+S4jeaWreedgCA+IGZ1ZGFuZ2lcIDsKK+iBlui3r+WKoCA+IHNlaXJva2FcIDsKK+S4i+e3mumDqCA+IGthc2VuYnVcIDsKK+WkmuasoeWFgyA+IHRhamlnZW5cIDsKK+S8vOmdnuiAhSA+IGVzZW1vbm9cIDsKK+iEs+WkluenkSA+IG5vdWdla2FcIDsKK+W+oeS4i+WVjyA+IGdva2Ftb25cIDsKK+iGg+iCreiHjSA+IG90dG9zZWlcIDsKK+Wls+aAp+WZqCA+IGpvc2Vpa2lcIDsKK+WtteWNteWZqCA+IGZ1cmFua2lcIDsKK+eEoeeQhuinoyA+IG11cmlrYWlcIDsKK+eItuaAp+aEmyA+IGZ1c2VpYWlcIDsKK+mdnuatpuijhSA+IGhpYnVzb3VcIDsKK+WQjOeItuavjSA+IGRvdWZ1Ym9cIDsKK+Wls+aAp+WMliA+IGpvc2Vpa2FcIDsKK+eEoeacn+mZkCA+IG11a2lnZW5cIDsKK+iHquWutueUqCA+IGppa2F5b3VcIDsKK+Wutuezu+WbsyA+IGtha2VpenVcIDsKK+S4gOS4lue0gCA+IGlzc2Vpa2lcIDsKK+iHqueUseW6piA+IGppeXV1ZG9cIDsKK+axmuafk+a6kCA+IG9zZW5nZW5cIDsKK+S+nemgvOeKtiA+IGlyYWlqb3VcIDsKK+esrOS4gOatqSA+IGRhaWlwcG9cIDsKK+W+ruWhteWtkCA+IG1pamlua29cIDsKK+i0lOWxk+ebriA+IGhpaWtpbWVcIDsKK+mbu+ejgeWgtCA+IGRlbmppYmFcIDsKK+S4gOS9k+WMliA+IGl0dGFpa2FcIDsKK+W+oeaXpeanmCA+IG9oaXNhbWFcIDsKK+mfs+e+veWxiyA+IG90b3dheWFcIDsKK+WMu+mZoumVtyA+IGlpbmNob3VcIDsKK+WNsOasp+iqniA+IGluJydvdWdvXCA7Civlh7rmnaXnp4sgPiBkZWtpYWtpXCA7Civpo5vooYzmqZ8gPiBoaWtvdWtpXCA7CivnhKHkvZzngrogPiBtdXNha3VpXCA7Civpg73luILpg6ggPiB0b3NoaWJ1XCA7CivluqfokrLlm6MgPiB6YWJ1dG9uXCA7CivmlL7oqrLlvowgPiBob3VrYWdvXCA7CivkuIDmnKzmsJcgPiBpcHBvbmdpXCA7Civpm7vmsJflsYsgPiBkZW5raXlhXCA7CivmnKrmnaXmtL4gPiBtaXJhaWhhXCA7CivmoIToqonnpLwgPiBlaXlvcmVpXCA7Civns5booaPpjKAgPiB0b3Vpam91XCA7CivnkIboq5blrrYgPiByaXJvbmthXCA7CivmiZPmpb3lmaggPiBkYWdha2tpXCA7CivnhKHkvZzms5UgPiBidXNhaG91XCA7Civku4HnjovploAgPiBuaW91bW9uXCA7Civlj6TlhbjmtL4gPiBrb3RlbmhhXCA7CivntKDlsIHlrrYgPiBzb2hvdWthXCA7CivmranlkIjliLYgPiBidWFpc2VpXCA7CivprZrmsrPlsrggPiB1b2dhc2hpXCA7Civoh6rnlLHljJYgPiBqaXl1dWthXCA7CivmjojnlKPmiYAgPiBqdXNhbmpvXCA7Civpp4bli5XmqZ8gPiBrdWRvdWtpXCA7CivkuoznrofmiYAgPiBuaWthc2hvXCA7CivpgZXniq/ogIUgPiBpaGFuc2hhXCA7Civoh6rnlLvlg48gPiBqaWdhem91XCA7CivlvaLmhI/mi7MgPiBrZWlpa2VuXCA7Civmr43mgKfmhJsgPiBib3NlaWFpXCA7CivkupXmiLjlgbQgPiBpZG9nYXdhXCA7CivnoLTnoJXmqZ8gPiBoYXNhaWtpXCA7CivpgZXorabnvaogPiBpa2VpemFpXCA7CivluIzlnJ/poZ4gPiBraWRvcnVpXCA7CivkupzpiZvlvJUgPiBhZW5iaWtpXCA7CivlpKrlrrDlupwgPiBkYXphaWZ1XCA7CivkvIrpgZTogIUgPiBkYXRlc2hhXCA7CivpgIHoqbHlmaggPiBzb3V3YWtpXCA7CivkvLTlpKnpgKMgPiBiYXRlcmVuXCA7CivkupzpurvluIMgPiBhbWFudW5vXCA7CivlpbPpg47lsYsgPiBqb3JvdXlhXCA7CivlmbTpnKflmaggPiBmdW5tdWtpXCA7Civoi7HljZjoqp4gPiBlaXRhbmdvXCA7Civojbfppqzou4ogPiBuaWJhc2hhXCA7Civmk6zmhYvoqp4gPiBnaXRhaWdvXCA7CivnlbDpgqbkurogPiBpaG91amluXCA7CivmgKrmiJHkurogPiBrZWdhbmluXCA7Civlirnmnpzpn7MgPiBrb3VrYW9uXCA7CivlopPnopHpipggPiBib2hpbWVpXCA7Civpo5vooYzlrrYgPiBoaWtvdWthXCA7CivngavnhqjmlpcgPiBoaW5vc2hpXCA7CivlhKrkvY3mgKcgPiB5dXVpc2VpXCA7CivnhKHotqPlkbMgPiBtdXNodW1pXCA7CivpgY7nj77mnKogPiBrYWdlbm1pXCA7CivplbfmpIXlrZAgPiBuYWdhaXN1XCA7Civogb7llJbogIUgPiByb3Vhc2hhXCA7CivmloflrZfnm6QgPiBtb2ppYmFuXCA7CivkupTljYHpn7MgPiBnb2p1dW9uXCA7CivlpKnlqabnvoUgPiB0ZW5wdXJhXCA7Civlr53pgZPlhbcgPiBuZWRvdWd1XCA7CivnlbDliIblrZAgPiBpYnVuc2hpXCA7Civoh6rosqnmqZ8gPiBqaWhhbmtpXCA7Civlhavph43lnqMgPiB5YWVnYWtpXCA7CivnhKHkvqHlgKQgPiBtdWthY2hpXCA7CivkurrkuovpmaIgPiBqaW5qaWluXCA7CivkuI3lpJzln44gPiBmdXlham91XCA7Civnvo7kuIjlpKsgPiBiaWpvdWZ1XCA7CivmmJPmkI3lk4EgPiBpc29uaGluXCA7CivlsLzlg6fpmaIgPiBuaXNvdWluXCA7CivnhKHnkIbmlbAgPiBtdXJpc3V1XCA7CivnhKHpn7voqakgPiBtdWluc2hpXCA7CivlpJrmp5jljJYgPiB0YXlvdWthXCA7CivnlLLmlpDmgKcgPiBrYWlzaG91XCA7CivlsYvmoLnoo48gPiB5YW5ldXJhXCA7CivmmrTpoqjpm6ggPiBib3VmdXV1XCA7CivnlJ/nkIbml6UgPiBzZWlyaWJpXCA7CivliIbpmZDogIUgPiBidWdlbmphXCA7Civkurrkuovpg6ggPiBqaW5qaWJ1XCA7CivpuJrptaHosp0gPiBvdW11Z2FpXCA7CivkuIDkuIHlrZcgPiBpdHRlaWppXCA7CivliIbpm6LmtL4gPiBidW5yaWhhXCA7CivlsI/ntLDlt6UgPiBrb3phaWt1XCA7Civmmpflj7fljJYgPiBhbmdvdWthXCA7CivljbDluqbmtIsgPiBpbmRveW91XCA7CivloanntKDphbggPiBlbnNvc2FuXCA7Civkvp3poLzkurogPiBpcmFpbmluXCA7CivniLbmr43kvJogPiBmdWJva2FpXCA7Civpo7LphZLlrrYgPiBpbnNodWthXCA7CivkuI3oqo3lj68gPiBmdW5pbmthXCA7CivmhbDlirTkvJogPiBpcm91a2FpXCA7CivosYbohZDlsYsgPiB0b3VmdXlhXCA7CivliIbpm6LmqZ8gPiBidW5yaWtpXCA7Civngavngo7nk7YgPiBrYWVuYmluXCA7CivlvqHlpJrliIYgPiBnb3RhYnVuXCA7Civoh6jmmYLosrsgPiByaW5qaWhpXCA7CivlpKflpKrpvJMgPiBvb2RhaWtvXCA7CivlpoLkvZXnqIsgPiBpa2Fob2RvXCA7CivniaHniZvluqcgPiBvdXNoaXphXCA7CivliqDlt6XosrsgPiBrYWtvdWhpXCA7CivkurrkuovoqrIgPiBqaW5qaWthXCA7Civph47oia/niqwgPiBub3JhaW51XCA7CivoroPnvo7mrYwgPiBzYW5iaWthXCA7Civml6XmnKzplpMgPiBuaWhvbm1hXCA7CivlpKfosYbmsrkgPiBkYWl6dXl1XCA7CivlhZDnq6XnlLsgPiBqaWRvdWdhXCA7CivmvJToiJ7loLQgPiBlbmJ1am91XCA7CivkvLzpnZ7kuosgPiBlc2Vnb3RvXCA7CivkuI3ntZDmnpwgPiBmdWtla2thXCA7CivlnLDkuIvljJYgPiBjaGlrYWthXCA7Civlhavnmb7plbcgPiB5YW9jaG91XCA7CivpgY7po73lkowgPiBrYWhvdXdhXCA7Civml6nlsJHlpbMgPiBzYW90b21lXCA7CivlpoLkvZXniakgPiBpa2Ftb25vXCA7CivniYjnlLvlrrYgPiBoYW5nYWthXCA7CivmhJvpo7LogIUgPiBhaWluc2hhXCA7CivlronlrprlmaggPiBhbnRlaWtpXCA7Civpp4Toj5PlrZAgPiBkYWdhc2hpXCA7CivllJDog6HpursgPiB0b3Vnb21hXCA7CivlgZzpn7PnrKYgPiB0ZWlvbnB1XCA7CivlnJLoirjlrrYgPiBlbmdlaWthXCA7CivmipXlvbHmqZ8gPiB0b3VlaWtpXCA7Civoi7HlkInliKkgPiBpZ2lyaXN1XCA7CivluqfluIPlm6MgPiB6YWJ1dG9uXCA7CivnhKHlo7Dpn7MgPiBtdXNlaW9uXCA7CivllJDojITlrZAgPiB0b3VuYXN1XCA7Civml6XmnKzoqp4gPiBuaWhvbmdvXCA7CivlvpPkuInkvY0gPiBqdXNhbm1pXCA7CivlqablpbPlrZAgPiBmdWpvc2hpXCA7Civlt6XkuovosrsgPiBrb3VqaWhpXCA7CivmuKnluqboqIggPiBvbmRva2VpXCA7CivlronlrprljJYgPiBhbnRlaWthXCA7Civms5Xonrrosp0gPiBob3JhZ2FpXCA7CivpnZ7luLjmmYIgPiBoaWpvdWppXCA7CivlhavljYPku6MgPiB5YWNoaXlvXCA7CivkuI3ntLDlt6UgPiBidXNhaWt1XCA7CivkvZnmsLTot68gPiB5b3N1aXJvXCA7Civnm7jpgZXngrkgPiBzb3VpdGVuXCA7Civmm7zojbznvoUgPiBtYW5kYXJhXCA7CivlnLDpm7fngasgPiBqaXJhaWthXCA7Civlhazli5nlk6EgPiBrb3VtdWluXCA7CivmoYjlsbHlrZAgPiBrYWthc2hpXCA7Civlj6Tku6Poqp4gPiBrb2RhaWdvXCA7CivnlJ/kuIDmnKwgPiBraWlwcG9uXCA7CivouqvotJTlsZMgPiBtaWJpaWtpXCA7CivmnKrmlbTnkIYgPiBtaXNlaXJpXCA7Civkuojnp5HnlJ8gPiB5b2thc2VpXCA7CivmnKrntYzpgY4gPiBtaWtlaWthXCA7Civmtbfmnb7osp0gPiBtaXJ1Z2FpXCA7CivlhbXlhZDluK8gPiBoZWtvb2JpXCA7CivouqvlpYfpupcgPiBtaWdpcmVpXCA7CivmpJzmn7vlk6EgPiBrZW5zYWluXCA7CivljbHmqZ/mhJ8gPiBraWtpa2FuXCA7CivotaTojITlrZAgPiBha2FuYXN1XCA7Civnq6/mrabogIUgPiBoYW11c2hhXCA7CivljbDluqbkurogPiBpbmRvamluXCA7CivlhoXlronmiZMgPiBuYWlhbmRhXCA7CivlsYvmoLnmnb8gPiB5YW5laXRhXCA7CivnhKHmnJ/liJEgPiBtdWtpa2VpXCA7CivoqJjlv7XnopEgPiBraW5lbmhpXCA7Civpg73luILljJYgPiB0b3NoaWthXCA7Civlupznn6XkuosgPiBmdWNoaWppXCA7CivlhoXogLPngo4gPiBuYWlqaWVuXCA7CivljJfkuqzoqp4gPiBwZWtpbmdvXCA7CivniqzlsI/lsYsgPiBpbnVnb3lhXCA7CivlvbzlsrjkvJogPiBoaWdhbicnZVwgOwor55u45byf5a2QID4gYWlkZXNoaVwgOwor6bOz5Yew5bqnID4gaG91b3V6YVwgOwor5ZK96aCt54KOID4gaW50b3VlblwgOwor5oqV5b2x5ZuzID4gdG91ZWl6dVwgOwor5LiN6KGb55SfID4gZnVlaXNlaVwgOwor5pW055CG6YOoID4gc2VpcmlidVwgOwor5YWl5q+N5bGLID4gaXJpbW95YVwgOwor5aSa6Laj5ZGzID4gdGFzaHVtaVwgOwor6Z+z6KiY5Y+3ID4gb25raWdvdVwgOwor5bCP5Z2K5Li7ID4ga29ib3V6dVwgOwor5pel5pys55S7ID4gbmlob25nYVwgOwor57SA5YWD5b6MID4ga2lnZW5nb1wgOwor5L2T5rip5ZmoID4gdGFpb25raVwgOwor5b6u5rip5rmvID4gYmlvbnRvdVwgOwor6LK05amm5Lq6ID4ga2lmdWppblwgOwor5Y+z5aSn6IejID4gdWRhaWppblwgOwor5biw5YyW5Lq6ID4ga2lrYWppblwgOwor5oim5b6M5rS+ID4gc2VuZ29oYVwgOwor5Y+X5YOP5qmfID4ganV6b3VraVwgOwor6KiY5b+15qi5ID4ga2luZW5qdVwgOwor57KJ5b6u5aG1ID4ga29taWppblwgOwor54K65pS/6ICFID4gaXNlaXNoYVwgOwor5aSn54qs5bqnID4gb29pbnV6YVwgOwor5pel5pmC6KiIID4gaGlkb2tlaVwgOwor5pmC5LqL6KuWID4gamlqaXJvblwgOwor5L+d6aSK6ZmiID4gaG95b3VpblwgOwor6Ieq54S26JavID4gamluZW5qb1wgOwor5L+d5YGl5omAID4gaG9rZW5qb1wgOwor6Zui5byB6IqxID4gcmliZW5rYVwgOwor5qyh5LiW5LujID4gamlzZWRhaVwgOwor5LiN5Zmo55SoID4gYnVraXlvdVwgOwor5omL5aWH6bqXID4gdGVnaXJlaVwgOwor5aGp5Z+65oCnID4gZW5raXNlaVwgOwor6KiY5b+15pelID4ga2luZW5iaVwgOwor6auY56WW54i2ID4ga291c29mdVwgOwor5LuK5pel5LitID4ga3lvdWp1dVwgOwor6Lqr57a66bqXID4gbWlnaXJlaVwgOwor6JCO6buE55eFID4gaW91YnlvdVwgOwor5pOs5Y+k5paHID4gZ2lrb2J1blwgOwor5Zyw6KGj6aGeID4gY2hpaXJ1aVwgOwor5amG576F6ZaAID4gYmFyYW1vblwgOwor56eY5pu46KqyID4gaGlzaG9rYVwgOwor5Y2w55S757SZID4gaW5nYXNoaVwgOwor5LqI5oOz5bGLID4geW9zb3V5YVwgOwor5oWI5ZaE5a62ID4gaml6ZW5rYVwgOwor5pep5LmZ5aWzID4gc2FvdG9tZVwgOwor5Zyf5puc5pelID4gZG95b3ViaVwgOwor6ZmN6Zuo5p6XID4ga291dXJpblwgOwor5pyd6aKo5ZGCID4gYXNhYnVyb1wgOwor5YaN5LiL5LuYID4gc2Fpa2FmdVwgOwor5rSL55S75a62ID4geW91Z2FrYVwgOwor5a6a6KaP5bqnID4gam91Z2l6YVwgOwor6ZyA55So5a62ID4ganV5b3VrYVwgOwor5L+d5YGl5ammID4gaG9rZW5mdVwgOwor6auY56WW5q+NID4ga291c29ib1wgOwor5aSW6ICz54KOID4gZ2FpamllblwgOwor5LiN6KOB5Y+vID4gZnVzYWlrYVwgOwor6K2m5YKZ5ZOhID4ga2VpYmlpblwgOwor6Kqk5L2c5YuVID4gZ29zYWRvdVwgOwor5Luu5ZCN5pysID4ga2FuYWhvblwgOwor5Yqp55Sj5omAID4gam9zYW5qb1wgOwor5aSn5pmC5LujID4gb29qaWRhaVwgOwor5p645que6YW4ID4ga3VlbnNhblwgOwor6Jma54Sh5YOnID4ga29tdXNvdVwgOwor5ayw6KiY5Y+3ID4gZWlraWdvdVwgOwor5L+d5YGl5Yy7ID4gaG9rZW4nJ2lcIDsKK+S6jOWNgeatsyA+IGhhdGFjaGlcIDsKK+mgreWtl+iqniA+IHRvdWppZ29cIDsKK+acqOWkquWIgCA+IGtpZGFjaGlcIDsKK+iTruiPr+W6pyA+IHJlbmdlemFcIDsKK+aEm+abuOWutiA+IGFpc2hva2FcIDsKK+mmrOWIgOiynSA+IG1hdGVnYWlcIDsKK+i2o+aEj+abuCA+IHNodWlzaG9cIDsKK+mBi+aQrOiyuyA+IHVucGFuaGlcIDsKK+aUmOWkt+irliA+IGpvdWlyb25cIDsKK+aHkOeWkea0viA+IGthaWdpaGFcIDsKK+eEoeeFmeeCrSA+IG11ZW50YW5cIDsKK+WuiemdmeaZgiA+IGFuc2VpamlcIDsKK+Wls+eUn+W+kiA+IGpvc2VpdG9cIDsKK+iZjueHleaLsyA+IGtvZW5rZW5cIDsKK+ato+W4uOS9jSA+IHNlaWpvdWlcIDsKK+ijnOWKqemHkSA+IGhvam9raW5cIDsKK+mYv+WphuaTpiA+IGFiYXp1cmVcIDsKK+S6jOWNgeaXpSA+IGhhdHN1a2FcIDsKK+eQteeQtuihjCA+IGJpd2Frb3VcIDsKK+enmOabuOenkSA+IGhpc2hva2FcIDsKK+WKqeeUo+WppiA+IGpvc2FucHVcIDsKK+S/rue+heWgtCA+IHNodXJhYmFcIDsKK+aJi+S4gOadryA+IHRlaXBwYWlcIDsKK+eEoee3muapnyA+IG11c2Vua2lcIDsKK+S4h+eBr+S8miA+IG1hbmRvdWVcIDsKK+aJi+e2uum6lyA+IHRlZ2lyZWlcIDsKK+awtOS9jeioiCA+IHN1aWlrZWlcIDsKK+a8ouaWueWMuyA+IGthbnBvdWlcIDsKK+e+veebruadvyA+IGhhbWVpdGFcIDsKK+WFt+S9k+ahiCA+IGd1dGFpYW5cIDsKK+aXpeacrOWMliA+IG5paG9ua2FcIDsKK+eglOejqOapnyA+IGtlbm1ha2lcIDsKK+Wkp+mbkeaKiiA+IG9vemFwcGFcIDsKK+WPpOS6leaIuCA+IGZ1cnVpZG9cIDsKK+iDg+a9sOeYjSA+IGlrYWl5b3VcIDsKK+Wkmue+qeaApyA+IHRhZ2lzZWlcIDsKK+eUmOmcsueFriA+IGthbnJvbmlcIDsKK+S5meWls+W6pyA+IG90b21lemFcIDsKK+S/neWuiOa0viA+IGhvc2h1aGFcIDsKK+WPmeS6i+ipqSA+IGpvamlzaGlcIDsKK+Wkp+aOg+mZpCA+IG9vc291amlcIDsKK+eDj+m+jeiMtiA+IMWrcm9uY2hhXCA7CivlpbPnjovon7sgPiBqb291YXJpXCA7CivljYrmr43pn7MgPiBoYW5ib2luXCA7CivnhKHmlL/lupwgPiBtdXNlaWZ1XCA7Civnvqnlkozlm6MgPiBnaXdhZGFuXCA7Civlpb3kuovlrrYgPiBrb3V6dWthXCA7CivooYzngrrogIUgPiBrb3Vpc2hhXCA7CivmqZ/plqLluqsgPiBraWthbmtvXCA7CivmqZ/plqLluqcgPiBraWthbnphXCA7CivlkIzmhI/oposgPiBkb3Vpa2VuXCA7CivorbDkuovloIIgPiBnaWppZG91XCA7CivlpKnns7jnk5wgPiBoZWNoaW1hXCA7Civkv53lronmnpcgPiBob2FucmluXCA7CivohZDokYnlnJ8gPiBmdXlvdWRvXCA7CivmtbfosZrluqcgPiBpcnVrYXphXCA7Civoh6rooZvpmoogPiBqaWVpdGFpXCA7CivnuYrntq3ntKAgPiBzZW4nJ2lzb1wgOwor56e76KGM5oCnID4gaWtvdXNlaVwgOwor5rmv5rmv5amGID4geXV0YW5wb1wgOwor5Lqk5bC+5pyfID4ga291YmlraVwgOwor6Zm256OB5ZmoID4gdG91amlraVwgOwor6YeN6aas5aC0ID4gb21vYmFiYVwgOwor5q2z5pmC6KiYID4gc2FpamlraVwgOwor6Zi/5aSa56aPID4gb3RhZnVrdVwgOwor5b6h56+A5LuLID4gb3Nla2thaVwgOwor6I+T5a2Q5bGLID4ga2FzaGl5YVwgOwor55Wq5bCP5bGLID4gYmFuZ295YVwgOwor5oSb54qs5a62ID4gYWlrZW5rYVwgOwor6IC9576O5rS+ID4gdGFuYmloYVwgOwor5L+d6IKy5omAID4gaG9pa3Vqb1wgOwor6YGK6Zui5Z+6ID4geXV1cmlraVwgOwor5LqS5Yqp5LyaID4gZ29qb2thaVwgOwor6KOc5Yqp57eaID4gaG9qb3NlblwgOwor5LqL5YuZ5omAID4gamltdXNob1wgOwor5L+d6K236YeRID4gaG9nb2tpblwgOwor6I+T5a2Q5ZmoID4ga2FzaGlraVwgOwor5oSb5aa75a62ID4gYWlzYWlrYVwgOwor6aSK54i25q+NID4geW91ZnVib1wgOwor6LW36Zu75qmfID4ga2lkZW5raVwgOwor5LqM5q275b6MID4gbmlzaGlnb1wgOwor6JGJ54mh5Li5ID4gaGFib3RhblwgOwor5bey54S25b2iID4gaXplbmtlaVwgOwor5Y2Y5bqn5qmfID4gdGFuemFraVwgOwor5aSn6KaP5qihID4gZGFpa2lib1wgOwor5YW35L2T5YyWID4gZ3V0YWlrYVwgOwor5L+d5a6J5a6YID4gaG9hbmthblwgOwor6YeO542j5rS+ID4geWFqdXVoYVwgOwor6Zu75L2N5beuID4gZGVuJydpc2FcIDsKK+mdnuWvvuW/nCA+IGhpdGFpb3VcIDsKK+iTlum6u+WtkCA+IGhpbWFzaGlcIDsKK+ijuOS9k+eUuyA+IHJhdGFpZ2FcIDsKK+S6i+WLmeWumCA+IGppbXVrYW5cIDsKK+i1t+iotOeKtiA+IGtpc29qb3VcIDsKK+mHjuaarueUqCA+IHlhYm95b3VcIDsKK+eEoeeBr+eBqyA+IG11dG91a2FcIDsKK+eEoeiomOWQjSA+IG11a2ltZWlcIDsKK+mDveitsOmBuCA+IHRvZ2lzZW5cIDsKK+S/neiCsuWckiA+IGhvaWt1ZW5cIDsKK+S/neiCsuWZqCA+IGhvaWt1a2lcIDsKK+aEm+WlveWutiA+IGFpa291a2FcIDsKK+WnlOS7u+eKtiA+IGluaW5qb3VcIDsKK+eUqOWZqOeUuyA+IHlvdWtpZ2FcIDsKK+S/nemkiuaJgCA+IGhveW91am9cIDsKK+WutuW6reenkSA+IGthdGVpa2FcIDsKK+S4jeWQjeiqiSA+IGZ1bWVpeW9cIDsKK+S6lOi8quaXlyA+IGdvcmlua2lcIDsKK+S9nOalreihoyA+IHNhZ3lvdWlcIDsKK+acqOaIuOmKrSA+IGtpZG9zZW5cIDsKK+iAs+S4i+iFuiA+IGppa2FzZW5cIDsKK+WutuW6reedgCA+IGthdGVpZ2lcIDsKK+WklumZsOmDqCA+IGdhaWluYnVcIDsKK+WSjOiPk+WtkCA+IHdhZ2FzaGlcIDsKK+iHquWcqOeUuyA+IGppemFpZ2FcIDsKK+iAlemBi+apnyA+IGtvdXVua2lcIDsKK+S4gOWbnuW/jCA+IGlra2Fpa2lcIDsKK+S4jeWPr+inoyA+IGZ1a2FrYWlcIDsKK+S4jeWPr+imliA+IGZ1a2FzaGlcIDsKK+e3j+eQhuW6nCA+IHNvdXJpZnVcIDsKK+S6jOWIhuacqCA+IG5pYnVuZ2lcIDsKK+W6g+i+nuiLkSA+IGtvdWppZW5cIDsKK+WkmuaVsOa0viA+IHRhc3V1aGFcIDsKK+S/neitt+iAhSA+IGhvZ29zaGFcIDsKK+WknOmWk+mDqCA+IHlha2FuYnVcIDsKK+eVmeWuiOmbuyA+IHJ1c3VkZW5cIDsKK+aOg+mZpOapnyA+IHNvdWppa2lcIDsKK+S6i+WLmeS8miA+IGppbXVrYWlcIDsKK+S6i+WJjeW+jCA+IGppemVuZ29cIDsKK+iPqeaPkOaouSA+IGJvZGFpanVcIDsKK+iyneeLrOalvSA+IGJhaWdvbWFcIDsKK+eEoemYsuWCmSA+IG11Ym91YmlcIDsKK+S4jeaAneitsCA+IGZ1c2hpZ2lcIDsKK+S4jeepj+W9kyA+IGZ1b250b3VcIDsKK+WPr+WhkeadkCA+IGthc296YWlcIDsKK+ais+e2v+apnyA+IHNvbWVua2lcIDsKK+eEoeaJi+mghiA+IG11dGVqdW5cIDsKK+WwvueKtuiKsSA+IGJpam91a2FcIDsKK+S+v+WIqeWxiyA+IGJlbnJpeWFcIDsKK+S6iOefpeWkoiA+IHlvY2hpbXVcIDsKK+W+oeelnuexpCA+IG9taWt1amlcIDsKK+aYoOWGmeapnyA+IGVpc2hha2lcIDsKK+S/neitt+eojiA+IGhvZ296ZWlcIDsKK+WPmeS6i+aWhyA+IGpvamlidW5cIDsKK+iLseS8muipsSA+IGVpa2Fpd2FcIDsKK+S4jeWPr+iDvSA+IGZ1a2Fub3VcIDsKK+aYoOeUu+mkqCA+IGVpZ2FrYW5cIDsKK+miqOmbsuWFkCA+IGZ1dXVuamlcIDsKK+alleWGhuW9oiA+IGRhZW5rZWlcIDsKK+a8lOWlj+WutiA+IGVuc291a2FcIDsKK+WPr+WhkeaApyA+IGthc29zZWlcIDsKK+iiq+mZpOaVsCA+IGhpam9zdXVcIDsKK+S6jOasoeWFgyA+IG5pamlnZW5cIDsKK+aJi+aWh+W6qyA+IHRlYnVua29cIDsKK+S4gOeuh+aJgCA+IGlra2FzaG9cIDsKK+S6iOWCmemaiiA+IHlvYml0YWlcIDsKK+eWkeWVj+espiA+IGdpbW9uZnVcIDsKK+WbuuWumuiyuyA+IGtvdGVpaGlcIDsKK+aYjuayu+W6pyA+IG1laWppemFcIDsKK+eQhuaDs+WutiA+IHJpc291a2FcIDsKK+Wcn+Wjh+WgtCA+IGRvdGFuYmFcIDsKK+S6jOasoeS8miA+IG5pamlrYWlcIDsKK+e+qeWLmeaEnyA+IGdpbXVrYW5cIDsKK+S4ieWPiei3ryA+IHNhbnNhcm9cIDsKK+azouW4g+iMtiA+IGhhYnVjaGFcIDsKK+S4jeaEm+aDsyA+IGJ1YWlzb3VcIDsKK+S4gOeuh+W5tCA+IGlra2FuZW5cIDsKK+S6iOWCmemHkSA+IHlvYmlraW5cIDsKK+S4jeWPr+efpSA+IGZ1a2FjaGlcIDsKK+iPqeaPkOWvuiA+IGJvZGFpamlcIDsKK+ehq+m7hOWxsSA+IGlvdXlhbWFcIDsKK+e0oOWboOaVsCA+IHNvaW5zdXVcIDsKK+S7j+iYreilvyA+IGZ1cmFuc3VcIDsKK+S4jeWQiOeQhiA+IGZ1Z291cmlcIDsKK+aOg+mZpOWppiA+IHNvdWppZnVcIDsKK+mHjuaaruWkqSA+IHlhYm90ZW5cIDsKK+WutuWFt+etiSA+IGthZ3V0b3VcIDsKK+iWlOiWh+iJsiA+IGJhcmFpcm9cIDsKK+S4jeaEieW/qyA+IGZ1eXVrYWlcIDsKK+i+suapn+WFtyA+IG5vdWtpZ3VcIDsKK+i8uOmAgeiyuyA+IHl1c291aGlcIDsKK+eci+itt+WppiA+IGthbmdvZnVcIDsKK+W+oeelnueBqyA+IGdvamlua2FcIDsKK+S6iOWCmei7jSA+IHlvYmlndW5cIDsKK+WPpOaWh+abuCA+IGtvbW9uam9cIDsKK+iHquihm+aoqSA+IGppZWlrZW5cIDsKK+aOg+mZpOWZqCA+IHNvdWppa2lcIDsKK+eQhuaDs+WMliA+IHJpc291a2FcIDsKK+WQiOawo+mBkyA+IGFpa2lkb3VcIDsKK+eCueeBq+WZqCA+IHRlbmtha2lcIDsKK+e+veS6jOmHjSA+IGhhYnV0YWVcIDsKK+imj+a6luWMliA+IGtpanVua2FcIDsKK+mrmOW6puW3riA+IGtvdWRvc2FcIDsKK+WQiOawl+mBkyA+IGFpa2lkb3VcIDsKK+eEoeWZqOeUqCA+IGJ1a2l5b3VcIDsKK+WvhOS7mOmHkSA+IGtpZnVraW5cIDsKK+eBq+WPo+a5liA+IGtha291a29cIDsKK+aUv+ayu+WxiyA+IHNlaWppeWFcIDsKK+WAi+OAheS6uiA+IGtva29qaW5cIDsKK+WPr+WhkeWJpCA+IGthc296YWlcIDsKK+aUv+ayu+WutiA+IHNlaWppa2FcIDsKK+mBi+WWtuiyuyA+IHVuJydlaWhpXCA7CivonablpLfoj4ogPiBlem9naWt1XCA7Civkv53orbfmnpcgPiBob2dvcmluXCA7CivmnKjmiLjnlaogPiBraWRvYmFuXCA7CivmtYXnn6XmgbUgPiBhc2FkamllXCA7CivpnZLosYzosYYgPiBhb2VuZG91XCA7CivlpbPkuIjlpKsgPiBqb2pvdWJ1XCA7CivlhoboqJjlj7cgPiBlbmtpZ291XCA7Civkupzlr5LluK8gPiBha2FudGFpXCA7CivmsZ/miLjlt50gPiBlZG9nYXdhXCA7Civmr5Tpm7vojbcgPiBoaWRlbmthXCA7CivlubzlhZDoqp4gPiB5b3VqaWdvXCA7Civmmpfmmpfoo6EgPiBhbicnYW5yaVwgOwor5LiN5rWE5aC0ID4gZnVqb3ViYVwgOwor5pqX5pqX6KOPID4gYW4nJ2FucmlcIDsKK+a5r+ayu+WgtCA+IHRvdWppYmFcIDsKK+iEs+WRs+WZjCA+IG5vdW1pc29cIDsKK+WtkOeUu+mdoiA+IGtvZ2FtZW5cIDsKK+WPr+imluWMliA+IGthc2hpa2FcIDsKK+S4jeazqOaEjyA+IGZ1Y2h1dWlcIDsKK+itt+ihm+iJpiA+IGdvZWlrYW5cIDsKK+asoeaJk+iAhSA+IGppZGFzaGFcIDsKK+aKq+mcsuWutCA+IGhpcm91ZW5cIDsKK+iHquihm+WumCA+IGppZWlrYW5cIDsKK+eVmeWuiOeVqiA+IHJ1c3ViYW5cIDsKK+S6nOmfs+mAnyA+IGFvbnNva3VcIDsKK+W+oeazqOaEjyA+IGdvY2h1dWlcIDsKK+WMu+enkeWtpiA+IGlrYWdha3VcIDsKK+eVsOaWueaApyA+IGlob3VzZWlcIDsKK+eEoemRkeafuyA+IG11a2Fuc2FcIDsKK+S6jOeVquebriA+IG5pYmFubWVcIDsKK+ehrOWMluayuSA+IGtvdWtheXVcIDsKK+aYoOeUu+elrSA+IGVpZ2FzYWlcIDsKK+aYoOeUu+ekviA+IGVpZ2FzaGFcIDsKK+S4jeato+imjyA+IGZ1c2Vpa2lcIDsKK+iNiuajmOe3miA+IGJhcmFzZW5cIDsKK+aFsOmciuelrSA+IGlyZWlzYWlcIDsKK+WtpuagoeWMuyA+IGdha2tvdWlcIDsKK+mHkeaWh+WtlyA+IGtpbm1vamlcIDsKK+W+oeazleW6piA+IGdvaGF0dG9cIDsKK+awl+S/nemkiiA+IGtpaG95b3VcIDsKK+mJhOeBq+WgtCA+IHRla2thYmFcIDsKK+WLpOWLmeWToSA+IGtpbm11aW5cIDsKK+eVsOaYn+S6uiA+IGlzZWlqaW5cIDsKK+aYoOeUu+eVjCA+IGVpZ2FrYWlcIDsKK+S6lOeVv+WGhSA+IGdva2luYWlcIDsKK+W+oeegtOeulyA+IGdvaGFzYW5cIDsKK+aZruauteedgCA+IGZ1ZGFuZ2lcIDsKK+WQpuWumuiqniA+IGhpdGVpZ29cIDsKK+mBleaGsuaApyA+IGlrZW5zZWlcIDsKK+WhqeWMlumKgCA+IGVua2FnaW5cIDsKK+S/neitt+WPuCA+IGhvZ29zaGlcIDsKK+W+l+aEj+awlyA+IHRva3VpZ2VcIDsKK+aJi+e0sOW3pSA+IHRlemFpa3VcIDsKK+iIjuWIqeWhqSA+IHNoYXJpZW5cIDsKK+imqummrOm5vyA+IG95YWJha2FcIDsKK+iInui4iuWutiA+IGJ1dG91a2FcIDsKK+Wlh+W9ouWFkCA+IGtpa2VpamlcIDsKK+WNiOW+jOS4rSA+IGdvZ29qdXVcIDsKK+ipreW8geWutiA+IGtpYmVua2FcIDsKK+iDg+a0l+a1hCA+IGlzZW5qb3VcIDsKK+S4jeWQjOWMliA+IGZ1ZG91a2FcIDsKK+eVsOaVmeW+kiA+IGlreW91dG9cIDsKK+a5r+WKoOa4myA+IHl1a2FnZW5cIDsKK+mdnuiqsueojiA+IGhpa2F6ZWlcIDsKK+WSjOalveWZqCA+IHdhZ2Fra2lcIDsKK+mBleazleiAhSA+IGlob3VzaGFcIDsKK+i8uOmAgeapnyA+IHl1c291a2lcIDsKK+S4jumHjuWFmiA+IHlveWF0b3VcIDsKK+W8leeBq+eCuSA+IGlua2F0ZW5cIDsKK+e+veWtkOadvyA+IGhhZ29pdGFcIDsKK+mfs+aymeaxsCA+IG90b3NhdGFcIDsKK+emvuacrOenkSA+IGthaG9ua2FcIDsKK+S4jeWPr+WIhiA+IGZ1a2FidW5cIDsKK+m8oOW+hOmDqCA+IHNva2VpYnVcIDsKK+S5vuiPk+WtkCA+IGhpZ2FzaGlcIDsKK+eEoeaKgOW3pyA+IG11Z2lrb3VcIDsKK+mDveitsOS8miA+IHRvZ2lrYWlcIDsKK+S6iOWCmeagoSA+IHlvYmlrb3VcIDsKK+ims+S4lumfsyA+IGthbnplb25cIDsKK+WNiumBjuWOuyA+IGhhbmtha29cIDsKK+S4jeWPguWKoCA+IGZ1c2Fua2FcIDsKK+mBleWPjeiAhSA+IGloYW5zaGFcIDsKK+aBo+aEj+aApyA+IHNoaWlzZWlcIDsKK+S7mOWKoOeojiA+IGZ1a2F6ZWlcIDsKK+aZguioiOW6pyA+IHRva2VpemFcIDsKK+mDqOWxi+S7oyA+IGhleWFkYWlcIDsKK+avjemfs+aApyA+IGJvaW5zZWlcIDsKK+S4jeW+l+aEjyA+IGZ1dG9rdWlcIDsKK+mbu+ipseapnyA+IGRlbndha2lcIDsKK+eEoeaLheS/nSA+IG11dGFucG9cIDsKK+aOqui+nuazlSA+IHNvamlob3VcIDsKK+WFq+S5neWIhiA+IGhha2t1YnVcIDsKK+agueWkquadvyA+IG5lZGFpdGFcIDsKK+eBq+WKoOa4myA+IGhpa2FnZW5cIDsKK+S6nOeHkOmFuCA+IGFyaW5zYW5cIDsKK+aZguioiOWxiyA+IHRva2VpeWFcIDsKK+mdkuS6jOaJjSA+IGFvbmlzYWlcIDsKK+mHjuaUvuWbsyA+IG5vaG91enVcIDsKK+W5vOWFkOacnyA+IHlvdWppa2lcIDsKK+aMieaRqeiGjyA+IGFubWFrb3VcIDsKK+awl+iLpuWKtCA+IGtpZ3Vyb3VcIDsKK+aUv+W6nOahiCA+IHNlaWZ1YW5cIDsKK+S6jOeOi+mWgCA+IG5pb3Vtb25cIDsKK+S6iOWCmeW9uSA+IHlvYmlla2lcIDsKK+S4jemBk+eQhiA+IGZ1ZG91cmlcIDsKK+mHkeeEoeWeoiA+IGtpbm11a3VcIDsKK+WBvemAoOWNsCA+IGdpem91aW5cIDsKK+eEoeaJueWIpCA+IG11aGloYW5cIDsKK+Wbs+abuOiyuyA+IHRvc2hvaGlcIDsKK+W5uOmBi+WFkCA+IGtvdXVuamlcIDsKK+WhqeawtOa5liA+IGVuc3Vpa29cIDsKK+a1geW4g+acrCA+IHJ1ZnVib25cIDsKK+WxseiMtuiKsSA+IHNhemFua2FcIDsKK+enu+awkeazlSA+IGltaW5ob3VcIDsKK+msvOeZvuWQiCA+IG9uaXl1cmlcIDsKK+WliOiJr+ecjCA+IG5hcmFrZW5cIDsKK+S4jeWLneaJiyA+IGZ1a2F0dGVcIDsKK+Wkqem6qee+hSA+IHRlbnB1cmFcIDsKK+S4jeWIqeebiiA+IGZ1cmlla2lcIDsKK+W4guWQj+WToSA+IHNoaXJpaW5cIDsKK+aEj+imi+abuCA+IGlrZW5zaG9cIDsKK+aFsOmciuWhlCA+IGlyZWl0b3VcIDsKK+aIkeWIqeWLiSA+IGdhcmliZW5cIDsKK+aTrOWuneePoCA+IGdpYm9zaGlcIDsKK+Wkp+WSjOe1tSA+IHlhbWF0b2VcIDsKK+Wwj+WIh+aJiyA+IGtvZ2l0dGVcIDsKK+i7oui3r+WZqCA+IHRlbnJva2lcIDsKK+WIpOS6i+ijnCA+IGhhbmppaG9cIDsKK+WxoOiYh+aVoyA+IHRvc29zYW5cIDsKK+W+oeW6g+ebriA+IG9oaXJvbWVcIDsKK+WPguitsOmZoiA+IHNhbmdpaW5cIDsKK+S6iOWCmeWTgSA+IHlvYmloaW5cIDsKK+eQhuW3peenkSA+IHJpa291a2FcIDsKK+eBq+iRrOWgtCA+IGthc291YmFcIDsKK+WvkuWeoumboiA+IGthbmdvcmlcIDsKK+mYsuihm+iyuyA+IGJvdWVpaGlcIDsKK+mmrOWwj+WxiyA+IHVtYWdveWFcIDsKK+S6iOWCmeWFtSA+IHlvYmloZWlcIDsKK+Wwj+mBk+WFtyA+IGtvZG91Z3VcIDsKK+W4jOWFg+e0oCA+IGtpZ2Vuc29cIDsKK+S4lueVjOiqniA+IHNla2FpZ29cIDsKK+itt+ihm+WFtSA+IGdvZWloZWlcIDsKK+W9ouiAjOS4iyA+IGtlaWppa2FcIDsKK+mdkumbu+ipsSA+IGFvZGVud2FcIDsKK+S6jOaemuebriA+IG5pbWFpbWVcIDsKK+S4ieW3rui3ryA+IHNhbnNhcm9cIDsKK+S7luW6nOecjCA+IHRhZnVrZW5cIDsKK+S/nee3muWMuiA+IGhvc2Vua3VcIDsKK+WHuueoveWPpCA+IGRlZ2Vpa29cIDsKK+S4jeWFt+iAhSA+IGZ1Z3VzaGFcIDsKK+a8lOeul+apnyA+IGVuemFua2lcIDsKK+W5suiPk+WtkCA+IGhpZ2FzaGlcIDsKK+mBuuS8neazlSA+IGlkZW5ob3VcIDsKK+WMu+WMluWtpiA+IGlrYWdha3VcIDsKK+mBuuWutuaXjyA+IGlrYXpva3VcIDsKK+Wwj+WIqeWPoyA+IGtvcmlrb3VcIDsKK+Wkqeawl+mBiyA+IHRlbmtpdW5cIDsKK+W6nOitsOS8miA+IGZ1Z2lrYWlcIDsKK+S/nemZuuWMuyA+IGhva2VuJydpXCA7CivmraLpn7PlmaggPiBzaGlvbmtpXCA7CivlkIjmsJfkvJogPiBhaWtpa2FpXCA7Civpho3phpDlkbMgPiBkYWlnb21pXCA7CivmhI/lm7PnmoQgPiBpdG90ZWtpXCA7CivlnLDno4HmsJcgPiBjaGlqaWtpXCA7CivnlJ/mhI/msJcgPiBuYW1haWtpXCA7Civlm5vmrKHlhYMgPiB5b2ppZ2VuXCA7CivlvqHnm67njokgPiBvbWVkYW1hXCA7CivlhazmlofmiYAgPiBrdW1vbmpvXCA7CivlvqHluqfmiYAgPiBnb3phc2hvXCA7CivlpKfpi7jlsZEgPiBvZ2FrdXp1XCA7CivnlJjmtbfoi5QgPiBhbWFub3JpXCA7Civlu7rorbDmoYggPiBrZW5naWFuXCA7CivnooHkvJrmiYAgPiBnb2thaWpvXCA7CivpmLLngavmiLggPiBib3VrYWRvXCA7CivnmbvlsbHlrrYgPiB0b3phbmthXCA7CivngorkuovloLQgPiBzdWlqaWJhXCA7CivnhKHmhJvmg7MgPiBidWFpc291XCA7Civoi7Hmlofnp5EgPiBlaWJ1bmthXCA7CivphbjmgKfpm6ggPiBzYW5zZWl1XCA7CivlsIrnmofnjosgPiBzb24nJ25vdVwgOwor5rS+55Sf6KqeID4gaGFzZWlnb1wgOwor6YG65Lyd5oCnID4gaWRlbnNlaVwgOwor5Yy755mC6LK7ID4gaXJ5b3VoaVwgOwor5aSn56WW54i2ID4gZGFpc29mdVwgOwor6LuN6I285YipID4gZ3VuZGFyaVwgOwor55m95Lqc57SAID4gaGFrdWFraVwgOwor6aiO6aas5oimID4ga2liYXNlblwgOwor55uu5LiA5p2vID4gbWVpcHBhaVwgOwor6KiY5LqL5paHID4ga2lqaWJ1blwgOwor5ZKM5aSq6byTID4gd2FkYWlrb1wgOwor5LqI5a6a5qGIID4geW90ZWlhblwgOwor56ym5Y+35ZmoID4gZnVnb3VraVwgOwor5pu46KiY6KOcID4gc2hva2lob1wgOwor5b+c5o+05ZujID4gb3VlbmRhblwgOwor6YG65Lyd5a2QID4gaWRlbnNoaVwgOwor6Zmk6I2J5ZmoID4gam9zb3VraVwgOwor5LqI5a6a5pelID4geW90ZWliaVwgOwor5L+d5oyB6ICFID4gaG9qaXNoYVwgOwor5pu86ZmA576FID4gbWFuZGFyYVwgOwor5Y2Y5L2N5YWDID4gdGFuaWdlblwgOwor5oSP5Zyw5oKqID4gaWppd2FydVwgOwor55uK6I2S55S3ID4gbWFzdXJhb1wgOwor5LiK5Ye65p2lID4gam91ZGVraVwgOwor56ym5Y+35YyWID4gZnVnb3VrYVwgOwor5LiN55u45b+cID4gZnVzb3VvdVwgOwor6Iux6Kqe54mIID4gZWlnb2JhblwgOwor6YeN54Gr5ZmoID4ganV1a2FraVwgOwor5pGp5Yip5pSvID4gbWFyaXNoaVwgOwor55Ww56uv6KaWID4gaXRhbnNoaVwgOwor6JGs5YSA5bGLID4gc291Z2l5YVwgOwor6aCF5L2N572uID4ga291aWNoaVwgOwor5Yy75bir5rOVID4gaXNoaWhvdVwgOwor6JGh6JCE5ZySID4gYnVkb3VlblwgOwor5LqU5paX57GzID4gZ290b2JlaVwgOwor5Y+v5oSb5rCXID4ga2F3YWlnZVwgOwor5LqU57ea6K2cID4gZ29zZW5mdVwgOwor5b6h5bqc5YaFID4gZ29mdW5haVwgOwor5a2Q6aas5bqnID4ga291bWF6YVwgOwor5bCP6Iql5a2QID4ga29rZXNoaVwgOwor5oGS5rip5ZmoID4ga291b25raVwgOwor55+l5oG16ICFID4gY2hpZXNoYVwgOwor6YG66LSI5YiGID4gaXpvdWJ1blwgOwor5aSq5YiA6a2aID4gdGFjaGl1b1wgOwor5Yqp5ryU6ICFID4gam9lbnNoYVwgOwor5Luj55CG6YOoID4gZGFpcmlidVwgOwor56e75YuV5L2TID4gaWRvdXRhaVwgOwor6YGL5YuV6LK7ID4gdW5kb3VoaVwgOwor5aSp6bWd57WoID4gYmlyb3Vkb1wgOwor5LiA6YW45YyWID4gaXNzYW5rYVwgOwor6YGg6Led6ZuiID4gZW5reW9yaVwgOwor5L2Q6LOA55yMID4gc2FnYWtlblwgOwor6auY6Z+z6YOoID4ga291b25idVwgOwor55Ww56uv6ICFID4gaXRhbnNoYVwgOwor5byl5qyh6aasID4geWFqaXVtYVwgOwor6ICV6ICY5qmfID4ga291dW5raVwgOwor5oSf5YyW6ZmiID4ga2Fua2FpblwgOwor5LiN5qmf5auMID4gZnVraWdlblwgOwor6YOo5aSW56eYID4gYnVnYWloaVwgOwor5Lqc54ax5bivID4gYW5ldHRhaVwgOwor5a+M5aOr5bGxID4gZnVqaXNhblwgOwor5oyH5o+u5omAID4gc2hpa2lqb1wgOwor55Sf6Yak5rK5ID4ga2lqb3V5dVwgOwor5rWE55Gg55KDID4gam91cnVyaVwgOwor6KOc5L2Q5a6YID4gaG9zYWthblwgOwor6YGO5Y675b2iID4ga2Frb2tlaVwgOwor6I2J5Luu5ZCNID4gc291Z2FuYVwgOwor5b6h5qmf5auMID4gZ29raWdlblwgOwor5LiN5bGl6KGMID4gZnVyaWtvdVwgOwor5pOs5Lq65YyWID4gZ2lqaW5rYVwgOwor5YiG5bqm5ZmoID4gYnVuZG9raVwgOwor5Ye655uu6YeRID4gZGVtZWtpblwgOwor5aSc5rG96LuKID4geW9naXNoYVwgOwor5bem5rS+57O7ID4gc2FoYWtlaVwgOwor6KmQ5qy6572qID4gc2FnaXphaVwgOwor6aWC6aOp5bGLID4gdWRvbicneWFcIDsKK+WkouaDs+WutiA+IG11c291a2FcIDsKK+iomOitnOazlSA+IGtpZnVob3VcIDsKK+S4gOatu+W+jCA+IGlzc2hpZ29cIDsKK+mdnuihm+eUnyA+IGhpZWlzZWlcIDsKK+iqpOaKleS4iyA+IGdvdG91a2FcIDsKK+S4jeiHqueUsSA+IGZ1aml5dXVcIDsKK+iLseaVsOWtlyA+IGVpc3V1amlcIDsKK+efpeaDheaEjyA+IGNoaWpvdWlcIDsKK+miqOWRguahtiA+IGZ1cm9va2VcIDsKK+iLseiqnuWcjyA+IGVpZ29rZW5cIDsKK+S9jumfs+mDqCA+IHRlaW9uYnVcIDsKK+S6jOacn+WItiA+IG5pa2lzZWlcIDsKK+aTrOWjsOiqniA+IGdpc2VpZ29cIDsKK+eUqOWLmeWToSA+IHlvdW11aW5cIDsKK+W+oeiLpuWKtCA+IGdva3Vyb3VcIDsKK+acqueZu+iomCA+IG1pdG91a2lcIDsKK+ewoeaYk+WMliA+IGthbicnaWthXCA7CivkuIDpgY7mgKcgPiBpa2thc2VpXCA7CivpgYvpgIHosrsgPiB1bnNvdWhpXCA7CivljLvluKvkvJogPiBpc2hpa2FpXCA7Civoh6rlj5nkvJ0gPiBqaWpvZGVuXCA7CivlpKnmsJflsYsgPiB0ZW5raXlhXCA7Civpm6PmmJPluqYgPiBuYW4nJ2lkb1wgOwor5Luu5pWw6YOoID4ga2FzdXVidVwgOwor5Y2B5a2X6LevID4ganV1amlyb1wgOwor6byg6LmK6YOoID4gc29rZWlidVwgOwor6LKg56ym5Y+3ID4gZnVmdWdvdVwgOwor5aSn5b6h5omAID4gb29nb3Nob1wgOwor5YiG5biD5ZuzID4gYnVucHV6dVwgOwor6KO95Zuz5a62ID4gc2VpenVrYVwgOwor5oim5pmC5LiLID4gc2VuamlrYVwgOwor5aSp5rCX5ZuzID4gdGVua2l6dVwgOwor6LOb576O5q2MID4gc2FuYmlrYVwgOwor6LuN5LqL6LK7ID4gZ3VuamloaVwgOwor54KO5aSp5LiLID4gZW50ZW5rYVwgOwor6IKl5rqA5YWQID4gaGltYW5qaVwgOwor5rWq5ryr5rS+ID4gcm9tYW5oYVwgOwor6LW36YeN5qmfID4ga2lqdXVraVwgOwor5Zyn56CV5qmfID4gYXNzYWlraVwgOwor5Zue6Lev5ZuzID4ga2Fpcm96dVwgOwor5YW15Zmo5bqrID4gaGVpa2lrb1wgOwor5bKQ6Zic55yMID4gZ2lmdWtlblwgOwor5bq25YuZ6KqyID4gc2hvbXVrYVwgOwor6Zui57iB54q2ID4gcmllbmpvdVwgOwor5q2j6KaP5YyWID4gc2Vpa2lrYVwgOwor5LuK5Ye65p2lID4gaW1hZGVraVwgOwor5qSc5rOi5ZmoID4ga2VucGFraVwgOwor57W15Y+M57SZID4gZXpvdXNoaVwgOwor5LiL5LuY6YeRID4ga2FmdWtpblwgOwor6YG/6Zuj5omAID4gaGluYW5qb1wgOwor54mH5oSP5ZywID4ga2F0YWlqaVwgOwor5Yy75a2m6YOoID4gaWdha3VidVwgOwor5LqI5aCx6Z+zID4geW9ob3VvblwgOwor6aKo5ZGC5LujID4gZnVyb2RhaVwgOwor5b6M55+l5oG1ID4gYXRvZGppZVwgOwor5beu5qmf6ZaiID4gc2FraWthblwgOwor5aeU5ZOh6ZW3ID4gaWluY2hvdVwgOwor6KmQ5qy65birID4gc2FnaXNoaVwgOwor5aSW56WW54i2ID4gZ2Fpc29mdVwgOwor6KuW55CG5ZKMID4gcm9ucml3YVwgOwor6YeO5Za25ZywID4geWFlaWNoaVwgOwor6Zuw5Zuy5rCXID4gZnVuJydpa2lcIDsKK+WboOe+jue3miA+IGluYmlzZW5cIDsKK+awl+S4iOWkqyA+IGtpam91YnVcIDsKK+WIneacn+WMliA+IHNob2tpa2FcIDsKK+atqeihjOWZqCA+IGhva291a2lcIDsKK+a5r+ixhuiFkCA+IHl1ZG91ZnVcIDsKK+ijj+iDjOaIuCA+IHVyYXNlZG9cIDsKK+WKoOeul+apnyA+IGthc2Fua2lcIDsKK+aUvueUn+S8miA+IGhvdWpvdWVcIDsKK+iCsuWFkOmZoiA+IGlrdWppaW5cIDsKK+S4jeS9nOeCuiA+IGZ1c2FrdWlcIDsKK+atpuijheWFtyA+IGJ1c291Z3VcIDsKK+S4i+mnhOeVqiA+IGdldGFiYW5cIDsKK+iHquWLleWMliA+IGppZG91a2FcIDsKK+eEoemBoOaFriA+IGJ1ZW5yeW9cIDsKK+mBi+WLleWgtCA+IHVuZG91YmFcIDsKK+WutuioiOiyuyA+IGtha2VpaGlcIDsKK+mfs+alveWutiA+IG9uZ2Fra2FcIDsKK+WkluelluavjSA+IGdhaXNvYm9cIDsKK+WKtOWLmeiqsiA+IHJvdW11a2FcIDsKK+eEoei7jOmBkyA+IG11a2lkb3VcIDsKK+S4jeS9nOazlSA+IGJ1c2Fob3VcIDsKK+WNgeWtl+eBqyA+IGp1dWppa2FcIDsKK+iDg+eXmeaUoyA+IGlrZWlyZW5cIDsKK+mBi+WLleWToSA+IHVuZG91aW5cIDsKK+apn+aisOiqniA+IGtpa2FpZ29cIDsKK+e+juWuuemZoiA+IGJpeW91aW5cIDsKK+S4gOi7ouapnyA+IGl0dGVua2lcIDsKK+adk+aWh+WtlyA+IHNoYW1vamlcIDsKK+aOouafu+apnyA+IHRhbnNha2lcIDsKK+eUsOiIjuWutiA+IGluYWtheWFcIDsKK+mBi+i7ouiyuyA+IHVudGVuaGlcIDsKK+apmeearuayuSA+IHRvdWhpeXVcIDsKK+mBjuW5tOW6piA+IGthbmVuZG9cIDsKK+mBi+WLleWFtyA+IHVuZG91Z3VcIDsKK+W+oeWtmOefpSA+IGdvem9uamlcIDsKK+WutuaUv+enkSA+IGthc2Vpa2FcIDsKK+Wwj+Wlh+m6lyA+IGtvZ2lyZWlcIDsKK+enu+S9j+iAhSA+IGlqdXVzaGFcIDsKK+mBk+WFt+WxiyA+IGRvdWd1eWFcIDsKK+WQjOe+qeiqniA+IGRvdWdpZ29cIDsKK+aooeaTrOaIpiA+IG1vZ2lzZW5cIDsKK+iSsuWFrOiLsSA+IHRhbnBvcG9cIDsKK+eoveWPpOedgCA+IGtlaWtvZ2lcIDsKK+S4i+S4luipsSA+IGdlc2V3YVwgOwor6L+m5qW8576FID4ga2FydXJhXCA7CivmiYvlv6Dlrp8gPiB0ZW1hbWVcIDsKK+mnhOa0kuiQvSA+IGRhamFyZVwgOwor5LiL6aeE5bGLID4gZ2V0YXlhXCA7Civpp4Tms5XonrogPiBkYWJvcmFcIDsKK+mBjuS/neittyA+IGthaG9nb1wgOwor6Z2e5Za25YipID4gaGllaXJpXCA7CivntYznt6/lhIAgPiBrZWlpZ2lcIDsKK+WRkeWFteihmyA+IG5vbmJlZVwgOwor5LiN576p55CGID4gZnVnaXJpXCA7CivmnInmhI/lt64gPiB5dXVpc2FcIDsKK+mrmOe3r+W6piA+IGtvdWlkb1wgOwor5LiN6LKe5a+dID4gZnV0ZW5lXCA7Civmra/ljLvogIUgPiBoYWlzaGFcIDsKK+S8vOmhlOe1tSA+IG5pZ2FvZVwgOwor5q2v56eR5Yy7ID4gc2hpa2FpXCA7CivngavkuovloLQgPiBrYWppYmFcIDsKK+ixqumbqOemjSA+IGdvdXVrYVwgOwor5Lqc6bq76KO9ID4gYW1hc2VpXCA7CivkvLzpoZTnlLsgPiBuaWdhb2VcIDsKK+mnhOmFkuiQvSA+IGRhamFyZVwgOwor5bGx576K5bqnID4geWFnaXphXCA7CivljZLloZTlqYYgPiBzb3RvYmFcIDsKK+S6nOm6u+iJsiA+IGFtYWlyb1wgOwor6Z2S5rW36IuUID4gYW9ub3JpXCA7CivkvLzpnZ7opqogPiBlc2VveWFcIDsKK+S6nOm6u+ezuCA+IGFtYWl0b1wgOwor5YWt5Y2B6LevID4gbXVzb2ppXCA7CivkupzmuKnluK8gPiBhb250YWlcIDsKK+S9meaJgOimiyA+IHlvc29taVwgOwor5aeU5ZOh5LyaID4gaWlua2FpXCA7Civkvp3lrZjluqYgPiBpem9uZG9cIDsKK+mYv+WDp+elhyA+IGFzb3VnaVwgOwor5YWr5Y2B6LevID4geWFzb2ppXCA7CivkvIrli6LonaYgPiBpc2VlYmlcIDsKK+S8iuWLouibryA+IGlzZWViaVwgOwor5pu+56WW54i2ID4gaGlqaWppXCA7CivopovmoITlnYogPiBtaWVib3VcIDsKK+S6nOmJm+eJiCA+IGFlbmJhblwgOwor5b6h54yq5Y+jID4gb2Nob2tvXCA7Civpro7kuKblpbMgPiBhaW5hbWVcIDsKK+W5s+aYk+WMliA+IGhlaWlrYVwgOwor5a6J5L+d55CGID4gYW5wb3JpXCA7Civmm77npZbmr40gPiBoaWJhYmFcIDsKK+exkOakheWtkCA+IHRvdWlzdVwgOwor5bCP5paH5a2XID4ga29tb2ppXCA7CivkvZnmiYDnm64gPiB5b3NvbWVcIDsKK+S4i+mZouitsCA+IGthaW5naVwgOwor5a215YyW5ZmoID4gZnVrYWtpXCA7CivkupzpiZvmnb8gPiBhZW5iYW5cIDsKK+aJi+ecn+S8vCA+IHRlbWFuZVwgOwor5LiN5aaC5oSPID4gZnVueW9pXCA7Civmua/mloflrZcgPiB5dW1vamlcIDsKK+eVsOapn+eoriA+IGlraXNodVwgOwor5Lqc56CS6YW4ID4gYWhpc2FuXCA7CivpmL/kv67nvoUgPiBhc2h1cmFcIDsKK+W+oembkeeFriA+IG96b3VuaVwgOwor55qu6Iaa56eRID4gaGlmdWthXCA7CivlvJ/lsI/niLYgPiBvdG9vamlcIDsKK+S4u+ayu+WMuyA+IHNodWppaVwgOwor5LiN6Kqg5oSPID4gZnVzZWlpXCA7CivlvqHoqaDmrYwgPiBnb2Vpa2FcIDsKK+iDg+S4i+WegiA+IGlrYXN1aVwgOwor5Yi35q+b55uuID4gaGFrZW1lXCA7CivnlLLng4/os4ogPiBrb3Vpa2FcIDsKK+S8iumBlOedgCA+IGRhdGVnaVwgOwor5b6h6KaL6IieID4gb21pbWFpXCA7Civog4zmloflrZcgPiBzZW1vamlcIDsKK+WEquabh+iPryA+IHVkb25nZVwgOwor5b6h6KWB6KSTID4gb211dHN1XCA7Civopb/nj63niZkgPiBzdXBlaW5cIDsKK+S4jeimi+ebriA+IG1pamltZVwgOwor6JWO6bqm57KJID4gc29iYWtvXCA7Civmoq3lrZDprZogPiBrYW1hc3VcIDsKK+S4jemaj+aEjyA+IGZ1enVpaVwgOwor57Sr6Zm96IqxID4gYWppc2FpXCA7Civph47oia/nnYAgPiBub3JhZ2lcIDsKK+S6juiYreebhiA+IHVyYWJvblwgOwor6Ium5ZGz57SgID4ga3VtaXNvXCA7CivnhKHkuovmlYUgPiBtdWppa29cIDsKK+S4gOaYqOaXpSA+IG90b3RvaVwgOwor5Ye65p2l5YCkID4gZGVraW5lXCA7CivkvIrli6LkuLkgPiBpc2V0YW5cIDsKK+mjsuWFteihmyA+IG5vbmJlZVwgOwor5q2k5Yem562JID4ga29rb3JhXCA7CivpnLLopb/kupwgPiByb3NoaWFcIDsKK+ebruWMu+iAhSA+IG1laXNoYVwgOwor5aaC5L2V5qeYID4gaWtheW91XCA7CivnoLTprZTnn6IgPiBoYW1heWFcIDsKK+ebuOmDqOWxiyA+IGFpYmV5YVwgOwor5a2k5YWQ6ZmiID4ga29qaWluXCA7Civku4rml6Xml6UgPiBreW91YmlcIDsKK+iNvOaes+WwvCA+IGRha2luaVwgOwor5rW36ICB6YygID4gZWJpam91XCA7CivolY7puqblsYsgPiBzb2JheWFcIDsKK+mbjOaNu+WtkCA+IG1lbmVqaVwgOwor5Y+k5LqL6KiYID4ga29qaWtpXCA7CivnnJ/pnaLnm64gPiBtYWppbWVcIDsKK+mCo+eUseS7liA+IG5heXV0YVwgOwor5YC25qW96YOoID4ga3VyYWJ1XCA7CivlsYvmoLnlsYsgPiB5YW5leWFcIDsKK+a1t+iAgeiMtiA+IGViaWNoYVwgOwor6Zi/5aq95rivID4gYW1ha291XCA7Civno4HmlrnkvY0gPiBqaWhvdWlcIDsKK+mNm+WGtuWxiyA+IGthaml5YVwgOwor5aGp5Z+65bqmID4gZW5raWRvXCA7Civnn6Lnvr3moLkgPiB5YWJhbmVcIDsKK+eZvuWQiOaguSA+IHl1cmluZVwgOwor6Zi/576F5ryiID4gYXJha2FuXCA7Civph47ot6/lrZAgPiBub2ppa29cIDsKK+mbjOieuuWtkCA+IG1lbmVqaVwgOwor5Zyf5LiL5bqnID4gZG9nZXphXCA7CivmhbDlronogIUgPiBpYW5zaGFcIDsKK+e1teaXpeiomCA+IGVuaWtraVwgOwor6ZmA576F5bC8ID4gZGFyYW5pXCA7CivnvoXmlrnkvY0gPiByYWhvdWlcIDsKK+eVsOS9k+WtlyA+IGl0YWlqaVwgOwor5ZCM5oSP6KqeID4gZG91aWdvXCA7Civpn4vpp4TlpKkgPiBpZGF0ZW5cIDsKK+eCuuaUv+WutiA+IGlzZWlrYVwgOwor5LqM5bqm55uuID4gbmlkb21lXCA7CivmlbDlr4TlsYsgPiBzdWtpeWFcIDsKK+WQjOaEj+e+qSA+IGRvdWlnaVwgOwor5aSn6KKI6KOfID4gb29nZXNhXCA7Civkuovli5nlsYsgPiBqaW11eWFcIDsKK+a1ruS4lue1tSA+IHVraXlvZVwgOwor55C155C25rmWID4gYml3YWtvXCA7Civkuovli5nlrrYgPiBqaW11a2FcIDsKK+WKoOeVmeWkmiA+IGthcnV0YVwgOwor5LiN5Y+v6YG/ID4gZnVrYWhpXCA7Civkuovli5nlmaggPiBqaW11a2lcIDsKK+W+oea0kuiQvSA+IG9zaGFyZVwgOwor5LqL5YuZ5ZOhID4gamltdWluXCA7CivmpI3mnKjlsYsgPiB1ZWtpeWFcIDsKK+S4jeWPr+iqpCA+IGZ1a2Fnb1wgOwor5b6h6YeI6L+mID4gb3NoYWthXCA7CivljbDlrZfmqZ8gPiBpbmppa2lcIDsKK+ehq+m7hOaziSA+IGlvdXNlblwgOwor5Y2S6YO95amGID4gc290b2JhXCA7CivlgYnkuIjlpKsgPiBpam91ZnVcIDsKK+W4g+a1t+iLlCA+IGZ1bm9yaVwgOwor55y85Yy76ICFID4gbWVpc2hhXCA7CivnnLznp5HljLsgPiBnYW5rYWlcIDsKK+aFsOWuieS8miA+IGlhbmthaVwgOwor5oqr6Zyy55uuID4gaGlyb21lXCA7CivkuojlgpnppqwgPiB5b2JpYmFcIDsKK+awl+WMluWZqCA+IGtpa2FraVwgOwor5q2m6ICF57W1ID4gbXVzaGFlXCA7CivpoqjlnJ/oqJggPiBmdWRva2lcIDsKK+W+oeays+erpSA+IG9rYXBwYVwgOwor5oSb54WZ5a62ID4gYWllbmthXCA7Civpg6jlsYvnnYAgPiBoZXlhZ2lcIDsKK+S6iOWCmeiyuyA+IHlvYmloaVwgOwor54CY6YGO5ZmoID4gcm9rYWtpXCA7Civoo5zliqnlk6EgPiBob2pvaW5cIDsKK+avlOS4mOWwvCA+IGJpa3VuaVwgOwor5rOi5q2i5aC0ID4gaGF0b2JhXCA7CivmmJPli5XluqYgPiBpZG91ZG9cIDsKK+e1teWbs+mdoiA+IGV6dW1lblwgOwor6KO45amm55S7ID4gcmFmdWdhXCA7CivmrankuIDmrakgPiBob2lwcG9cIDsKK+S4ieWNgei3ryA+IG1pc29qaVwgOwor5LiN5rKZ5rGwID4gYnVzYXRhXCA7CivkuI3mrbvouqsgPiBmdWppbWlcIDsKK+WRiuWkqeWtkCA+IGhpYmFyaVwgOwor5Yqg5aWI6ZmAID4ga2FuYWRhXCA7Civku6XpgaDmqKkgPiBpZW5rZW5cIDsKK+aWvemkk+msvCA+IHNlZ2FraVwgOwor5LiJ6YeN55yMID4gbWlla2VuXCA7CivlvqHmspnmsbAgPiBnb3NhdGFcIDsKK+avm+e5u+WtkCA+IGtlanVzdVwgOwor5LiN5ZCM5oSPID4gZnVkb3VpXCA7Civkuojlgpnnp5EgPiB5b2Jpa2FcIDsKK+axn+aIuOWJjSA+IGVkb21hZVwgOwor55uC6Jit55uGID4gdXJhYm9uXCA7Civkv53orbfljLogPiBob2dva3VcIDsKK+a1heiMheeUnyA+IGFzYWppdVwgOwor5a625YW35bGLID4ga2FndXlhXCA7CivlsI/msJflkbMgPiBrb2tpbWlcIDsKK+WkqeialeezuCA+IHRlZ3VzdVwgOwor55Ww5paH5YyWID4gaWJ1bmthXCA7CivlpJzopovkuJYgPiB5b21pc2VcIDsKK+S9jeebuOW3riA+IGlzb3VzYVwgOwor5pWw5aWH5bGLID4gc3VraXlhXCA7CivolpToloflnJIgPiBiYXJhZW5cIDsKK+mBjua4oeacnyA+IGthdG9raVwgOwor5bGF5aC05omAID4gaWJhc2hvXCA7CivpgZXlkozmhJ8gPiBpd2FrYW5cIDsKK+eUn+iVjum6piA+IGtpc29iYVwgOwor5a+d6ZaT552AID4gbmVtYWtpXCA7CivkuInljYHml6UgPiBtaXNva2FcIDsKK+S4jeawl+WRsyA+IGJ1a2ltaVwgOwor5pyA5LiL5L2NID4gc2Fpa2FpXCA7CivlvqHmrbPmmq4gPiBvc2VpYm9cIDsKK+S6iOWCmeWToSA+IHlvYmlpblwgOwor5pig55S75YyWID4gZWlnYWthXCA7CivmrKfljbDoqp4gPiBvdWluZ29cIDsKK+Wbs+ahiOWutiA+IHp1YW5rYVwgOwor5b+c5o+05q2MID4gb3VlbmthXCA7Civpn4vpmYDlpKkgPiBpZGF0ZW5cIDsKK+atjOiInuS8jiA+IGthYnVraVwgOwor6Zi/6Jit6ZmAID4gb3JhbmRhXCA7CivmrYznlZnlpJogPiBrYXJ1dGFcIDsKK+eEoeaFiOaCsiA+IG11amloaVwgOwor5Y+X6Kmx5ZmoID4ganV3YWtpXCA7Civnv7vou4rprZogPiBtYW5ib3VcIDsKK+S4jeWHuuadpSA+IGZ1ZGVraVwgOwor6ZuR6a2a5a+dID4gemFrb25lXCA7CivkvIrlpKrliKkgPiBpdGFyaWlcIDsKK+mlgumjqeeyiSA+IHVkb25rb1wgOwor55SY5rW36ICBID4gYW1hZWJpXCA7CivlsI/ppqzpub8gPiBrb2Jha2FcIDsKK+W+oeiPk+WtkCA+IG9rYXNoaVwgOwor55Sj56eR5Yy7ID4gc2Fua2FpXCA7CivkuInnn6XlnJ8gPiB0YXRha2lcIDsKK+izk+S9jeiqniA+IGhpbmlnb1wgOwor5pGp6I6r5p6zID4gbWFtYWtpXCA7CivlsI/nmb7lkIggPiBzYXl1cmlcIDsKK+eEoeaymeaxsCA+IGJ1c2F0YVwgOwor54OP5bi95a2QID4gZWJvc2hpXCA7CivnpZbniLbmr40gPiBzb2Z1Ym9cIDsKK+WNgeWFreWknCA+IGl6YXlvaVwgOwor6L+C5Zue6LevID4gdWthaXJvXCA7CivopaTopLjlrrYgPiBib3JveWFcIDsKK+mdkue0q+iYhyA+IGFvamlzb1wgOwor5r++6YGO5ZmoID4gcm9rYWtpXCA7CivkuI3lhbflkIggPiBmdWd1YWlcIDsKK+efpeaBteatryA+IGNoaWViYVwgOwor5LiN6LW36Ki0ID4gZnVraXNvXCA7CivnhKHljLvmnZEgPiBtdWlzb25cIDsKK+aenOaoueWckiA+IGthanVlblwgOwor5b6h6Lui5amGID4gb3RlbmJhXCA7CivpoqjlkYLlsYsgPiBmdXJveWFcIDsKK+aEj+WRs+irliA+IGltaXJvblwgOwor54Sh6YKq5rCXID4gbXVqYWtpXCA7CivpoqjlkYLloLQgPiBmdXJvYmFcIDsKK+mYv+iYh+WxsSA+IGFzb3NhblwgOwor6a6O6a2a5aWzID4gYWluYW1lXCA7CivlvqHlrrboirggPiBvaWVnZWlcIDsKK+eEoeawl+WRsyA+IGJ1a2ltaVwgOwor5YaF56eR5Yy7ID4gbmFpa2FpXCA7CivlpKfpg6jlsYsgPiBvb2JleWFcIDsKK+WgleiDjuWMuyA+IGRhdGFpaVwgOwor5LiN55So5oSPID4gZnV5b3VpXCA7CivkuYXmhYjnm64gPiBrdWppbWVcIDsKK+Wkp+W+oeS7oyA+IG9vbWl5b1wgOwor5pyJ5oSP576pID4geXV1aWdpXCA7Civph47olpTolocgPiBub2JhcmFcIDsKK+aihembqOacnyA+IGJhaXVraVwgOwor6ICz6by756eRID4gamliaWthXCA7CivnlLvmnrbluqcgPiBnYWthemFcIDsKK+S4jeWuieawlyA+IGZ1YW5nZVwgOwor5aSn5Ye65p2lID4gb29kZWtpXCA7CivpoqjpgqrmsJcgPiBrYXpla2VcIDsKK+atpuWZqOW6qyA+IGJ1a2lrb1wgOwor5LyK5ZGC5rOiID4gaXJvaGFcIDsKK+S6nOmJm+iPryA+IGFlbmthXCA7Civntq3mjIHosrsgPiBpamloaVwgOwor5L6d5Lyw5ZywID4gZWtvamlcIDsKK+aEj+awl+WcsCA+IGlrdWppXCA7Civnp4vliIDprZogPiBzYW5tYVwgOwor5YWr6YeN5q2vID4geWFlYmFcIDsKK+Wkp+S8r+eItiA+IG9vb2ppXCA7CivlpKfkvK/mr40gPiBvb29iYVwgOwor57Sr6Zuy6IuxID4gZ2VuZ2VcIDsKK+acquabvuaciSA+IG1pem91XCA7CivkvK/niLbosrQgPiBvamlraVwgOwor5Lqc6bq75LuBID4gYW1hbmlcIDsKK+S6lOWNgei3ryA+IGlzb2ppXCA7CivmnKjkuYPkvIogPiBtaWlyYVwgOwor5LqM5Y2B6YeNID4gaGF0YWVcIDsKK+S9nOWLmeihoyA+IHNhbXVlXCA7CivlsYXnlZnlroggPiBpcnVzdVwgOwor5a+d5qSF5a2QID4gbmVpc3VcIDsKK+W6p+akheWtkCA+IHphaXN1XCA7Civpm6roirHoj5wgPiBva2FyYVwgOwor5YWr55m+5bGLID4geWFveWFcIDsKK+ehq+m7hOiPryA+IGlvdWthXCA7CivlsI/mhI/msJcgPiBrb2lraVwgOwor5b6h56We6YWSID4gb21pa2lcIDsKK+S8iuS9kOacqCA+IGlzYWtpXCA7CivmhbDlronlqaYgPiBpYW5mdVwgOwor5aSn6KaL5b6XID4gb29taWVcIDsKK+WwhOaJi+W6pyA+IGl0ZXphXCA7CivkuI3mhI/msJcgPiBidWlraVwgOwor6I2P6IOh6bq7ID4gZWdvbWFcIDsKK+e1teaWh+WtlyA+IGVtb2ppXCA7CivkupTlgI3lrZAgPiBmdXNoaVwgOwor5oG15q+U5a+/ID4gZWJpc3VcIDsKK+eVmeWuiOWxhSA+IHJ1c3VpXCA7CivkuI3lvpfmiYsgPiBmdWV0ZVwgOwor54Sh5oSP576pID4gbXVpZ2lcIDsKK+S+neaAmeWcsCA+IGVrb2ppXCA7CivpppnlhbfluKsgPiB5YXNoaVwgOwor5aSn5Y+U54i2ID4gb29vamlcIDsKK+eEoeaEj+WRsyA+IG11aW1pXCA7CivlpKflj5Tmr40gPiBvb29iYVwgOwor5oSP5Zu65ZywID4gaWtvamlcIDsKK+W+oei+nuWEgCA+IG9qaWdpXCA7CivpmL/lvKXpmYAgPiBhbWlkYVwgOwor5bGF5ZCI6YGTID4gaWFkb3VcIDsKK+acqumAmuWlsyA+IG9ib2tvXCA7Civlm7Lngonoo48gPiBpcm9yaVwgOwor5b6h5LiW6L6eID4gb3NlamlcIDsKK+WkluenkeWMuyA+IGdla2FpXCA7Civnn7PmlpHprZogPiB1Z3VpXCA7CivlpoLpm6jpnLIgPiBqb3JvXCA7Civnmb7oiIzps6UgPiBtb3p1XCA7Civmta7lobXlrZAgPiB1bmthXCA7CivkupzntLDkupwgPiBhamlhXCA7CivkvLzogIzpnZ4gPiBlc2VcIDsKK+aYlOipsSA+IG11a2FzaGliYW5hc2hpXCA7CivkuqXlubQgPiBpbm9zaGlzaGlkb3NoaVwgOwor6Kmx6KmxID4gaGFuYXNoaWJhbmFzaGlcIDsKK+S4i+WUhyA+IHNoaXRha3VjaGliaXJ1XCA7CivmmJTmmJQgPiBtdWthc2hpbXVrYXNoaVwgOwor5piU44CFID4gbXVrYXNoaW11a2FzaGlcIDsKK+ipseOAhSA+IGhhbmFzaGliYW5hc2hpXCA7Civnp4Hnq4sgPiB3YXRha3VzaGlyaXRzdVwgOwor5oeQ5YiAID4gZnV0b2tvcm9nYXRhbmFcIDsKK+W/nea2mSA+IGthdGFqaWtlbmFtaWRhXCA7CivljZfmnbEgPiBtaW5hbWloaWdhc2hpXCA7Civlj6TlhbUgPiBmdXJ1dHN1d2Ftb25vXCA7CivlhoXouJ0gPiB1Y2hpa3VydWJ1c2hpXCA7CivoiIzpvJMgPiBzaGl0YXRzdWR6dW1pXCA7CivlgaXogIUgPiBzaGl0YXRha2Ftb25vXCA7CivmoZznpa0gPiBzYWt1cmFtYXRzdXJpXCA7CivkubPnqoQgPiBjaGljaGlzaGlib3JpXCA7Civos6LmiYAgPiBrYXNoaWtvZG9rb3JvXCA7CivpnaLprYIgPiB0c3VyYWRhbWFzaGlpXCA7Civku4/kvZwgPiBob3Rva2VkenVrdXJ1XCA7CivmnbHljZcgPiBoaWdhc2hpbWluYW1pXCA7CivlpKnniZsgPiBrYW1pa2lyaW11c2hpXCA7CivlpKLlubsgPiB5dW1lbWFib3Jvc2hpXCA7CivmgZnomasgPiB0c3V0c3VnYW11c2hpXCA7Civnp4HlhbEgPiB3YXRha3VzaGlkb21vXCA7Civnp4HkuosgPiB3YXRha3VzaGlnb3RvXCA7Civpg73lv5ggPiBtaXlha293YXN1cmVcIDsKK+mBk+aomSA+IG1pY2hpc2hpcnViZVwgOwor6L6756S+ID4gdHN1aml5YXNoaXJvXCA7Civoi6XntKsgPiB3YWthbXVyYXNha2lcIDsKK+eVs+mwryA+IHRhdGFtaWl3YXNoaVwgOwor55uy5pqmID4gbWVrdXJhZ295b21pXCA7CivohbnpvJMgPiBoYXJhdHN1ZHp1bWlcIDsKK+WGheaHkCA+IHVjaGlidXRva29yb1wgOwor6bC75Li8ID4gdW5hZ2lkb25idXJpXCA7Civour7mlrkgPiBzaGl0c3VrZWthdGFcIDsKK+WDu+W/gyA+IGhpZ2FtaWdva29yb1wgOwor5qS/5rK5ID4gdHN1YmFraWFidXJhXCA7Civmn4/ppIUgPiBrYXNoaXdhbW9jaGlcIDsKK+afhOmgrSA+IHRzdWthZ2FzaGlyYVwgOwor5L+E55uyID4gbml3YWthbWVrdXJhXCA7CivmnpXoqZ4gPiBtYWt1cmFrb3RvYmFcIDsKK+WAmeaJgCA+IHNvdXJvdXRva29yb1wgOwor5qGC55S3ID4ga2F0c3VyYW90b2tvXCA7CivlsbHmh5AgPiB5YW1hZnV0b2tvcm9cIDsKK+S4vOmjryA+IGRvbmJ1cmltZXNoaVwgOwor5Li86YmiID4gZG9uYnVyaWJhY2hpXCA7CivlgJLkuosgPiBzYWthc2FtYWdvdG9cIDsKK+aagemXhyA+IGFrYXRzdWtpeWFtaVwgOwor5p2+5q+sID4gbWF0c3Vwb2trdXJpXCA7CivpoK3ombEgPiBhdGFtYXNoaXJhbWlcIDsKK+advuaelyA+IG1hdHN1YmF5YXNoaVwgOwor5p2f5p+xID4gdHN1a2FiYXNoaXJhXCA7Civku4/lv4MgPiBob3Rva2Vnb2tvcm9cIDsKK+acquW5tCA+IGhpdHN1amlkb3NoaVwgOwor6LC35oeQID4gdGFuaWJ1dG9rb3JvXCA7Civpm4HpqqggPiBrYXJpZ2FuZWJvbmVcIDsKK+adseWPoyA+IGhpZ2FzaGlndWNoaVwgOwor5p2v5LqLID4gc2FrYXp1a2lnb3RvXCA7Civni6zmnpUgPiBoaXRvcmltYWt1cmFcIDsKK+S4gOWhiiA+IGhpdG9rYXRhbWFyaVwgOwor5aiY5b+DID4gbXVzdW1lZ29rb3JvXCA7CivlpI/npa0gPiBuYXRzdW1hdHN1cmlcIDsKK+aYlOW8jyA+IG11a2FzaGlzaGlraVwgOwor5aa55aiYID4gaW1vdXRvbXVzdW1lXCA7CivpnJzmn7EgPiBzaGltb2Jhc2hpcmFcIDsKK+aYn+WNsCA+IGhvc2hpamlydXNoaVwgOwor6KKL6bygID4gZnVrdXJvbmV6dW1pXCA7Civntprmn4QgPiB0c3VkenVraWdhcmFcIDsKK+Wcn+ibjSA+IHRzdWNoaWJvdGFydVwgOwor5Zyf54WZID4gdHN1Y2hpa2VtdXJpXCA7Civmh5Dpiq0gPiBmdXRva29yb3plbmlcIDsKK+mLuOmuqyA+IG5va29naXJpemFtZVwgOwor5Zyf5Z+DID4gdHN1Y2hpYm9rb3JpXCA7Civom43ooosgPiBob3RhcnVidWt1cm9cIDsKK+aHkOe0mSA+IGZ1dG9rb3JvZ2FtaVwgOwor56eB6YGUID4gd2F0YXNoaXRhY2hpXCA7CivmiYDmiYAgPiB0b2tvcm9kb2tvcm9cIDsKK+mHkemLuCA+IGthbmVub2tvZ2lyaVwgOwor5oiv5LqLID4gdGF3YW11cmVnb3RvXCA7Civlk4HlvaIgPiBzaGluYWthdGFjaGlcIDsKK+WLoui7iiA+IGhhenVtaWd1cnVtYVwgOwor5ZOA5ZOJID4ga2FuYXNoaWlrYW5hXCA7CivmiYDjgIUgPiB0b2tvcm9kb2tvcm9cIDsKK+awtOebgyA+IG1penVzYWthenVraVwgOwor5YyF57SZID4gdHN1dHN1bWlnYW1pXCA7CivmsLTmna8gPiBtaXp1c2FrYXp1a2lcIDsKK+W4r+mLuCA+IG9iaW5va29naXJpXCA7Civlj6zkvb8gPiBtZXNoaXRzdWthaVwgOwor5Yqb55+zID4gY2hpa2FyYWlzaGlcIDsKK+eZvem8oCA+IHNoaXJvbmV6dW1pXCA7CivlipvnmKQgPiBjaGlrYXJha29idVwgOwor5Yqb5rC0ID4gY2hpa2FyYW1penVcIDsKK+WNl+WPoyA+IG1pbmFtaWd1Y2hpXCA7Civlipvmpa0gPiBjaGlrYXJhd2F6YVwgOwor6YCG552rID4gc2FrYW1hdHN1Z2VcIDsKK+mwueevgCA+IGthdHN1b2J1c2hpXCA7CivlhZzomasgPiBrYWJ1dG9tdXNoaVwgOwor5b2i5L2TID4gbmFyaWthdGFjaGlcIDsKK+W6iuafsSA+IHRva29iYXNoaXJhXCA7Civlh7rmsqEgPiBzaHV0c3Vib3RzdVwgOwor5bem56uvID4gaGlkYXJpaGFzaGlcIDsKK+W3tOeTpiA+IHRvbW9lZ2F3YXJhXCA7CivliIfml6UgPiBzaGltZWtpcmliaVwgOwor5bm85b+DID4gb3NhbmFnb2tvcm9cIDsKK+iKseettSA+IGhhbmFtdXNoaXJvXCA7CivnlLfpsKUgPiBvdG9rb3lhbW9tZVwgOwor6Iqx56WtID4gaGFuYW1hdHN1cmlcIDsKK+WIneWnvyA+IGhhdHN1c3VnYXRhXCA7Civpq5joqbEgPiB0YWthYmFuYXNoaVwgOwor6Iad6aCtID4gaGl6YWdhc2hpcmFcIDsKK+W3u+afsSA+IG1ha2liYXNoaXJhXCA7CivlupXlipsgPiBzb2tvZGppa2FyYVwgOwor55Wz6KGoID4gdGF0YW1pb21vdGVcIDsKK+WHuuWKmyA+IHNodXRzdXJ5b2t1XCA7CivmoZzppIUgPiBzYWt1cmFtb2NoaVwgOwor5qGc6aOvID4gc2FrdXJhbWVzaGlcIDsKK+ebtOWHuiA+IGNob2t1c2h1dHN1XCA7CivnlbPogbcgPiB0YXRhbWlzaG9rdVwgOwor6I2J5YagID4ga3VzYWthbm11cmlcIDsKK+eTouiZqyA+IHRlbnRvdW11c2hpXCA7Civlt6bkuIsgPiBoaWRhcmlzaGl0YVwgOwor55m+5Ye6ID4gaHlha3VzaHV0c3VcIDsKK+iLpeS+jSA+IHdha2F6YW11cmFpXCA7CivlgJnnlLEgPiBzb3Vyb3V5b3NoaVwgOwor5Ly96KmxID4gdG9naWJhbmFzaGlcIDsKK+advumjviA+IG1hdHN1a2F6YXJpXCA7CivmnbHpoqggPiBoaWdhc2hpa2F6ZVwgOwor6LWk57SrID4gYWthbXVyYXNha2lcIDsKK+afs+iFsCA+IHlhbmFnaWdvc2hpXCA7CivnlLflv4MgPiBvdG9rb2dva29yb1wgOwor5Lq66JmxID4gaGl0b3NoaXJhbWlcIDsKK+eNo+mBkyA+IGtlbW9ub21pY2hpXCA7CivkuIDpm6sgPiBoaXRvc2hpenVrdVwgOwor576K6ZuyID4gaGl0c3VqaWd1bW9cIDsKK+eMv+i9oSA+IHNhcnVndXRzdXdhXCA7CivohIjmiYAgPiBteWFrdWRva29yb1wgOwor5L2G5pu4ID4gdGFkYXNoaWdha2lcIDsKK+iFsOWIgCA+IGtvc2hpZ2F0YW5hXCA7CivosqLniakgPiBtaXRzdWdpbW9ub1wgOwor5a6i5a6kID4ga3lha3VzaGl0c3VcIDsKK+S6uuafsSA+IGhpdG9iYXNoaXJhXCA7Civml5fpoK0gPiBoYXRhZ2FzaGlyYVwgOwor5a2Q5bm0ID4gbmV6dW1pZG9zaGlcIDsKK+aXi+miqCA+IHRzdW11amlrYXplXCA7Civos6rlrp8gPiBzaGl0c3VqaXRzdVwgOwor5Li854mpID4gZG9uYnVyaW1vbm9cIDsKK+adluafsSA+IHRzdWVoYXNoaXJhXCA7CivkuIvnnrwgPiBzaGl0YW1hYnV0YVwgOwor5p2J5p6XID4gc3VnaWJheWFzaGlcIDsKK+aZkuiAhSA+IHNhcmFzaGltb25vXCA7CivkuIDmu7QgPiBoaXRvc2hpenVrdVwgOwor5Lit5p+xID4gbmFrYWJhc2hpcmFcIDsKK+eLuOeIuiA+IHRhbnVraWppamlpXCA7Civlq6HlrqQgPiBjaGFrdXNoaXRzdVwgOwor54uQ54y/ID4ga2l0c3VuZXphcnVcIDsKK+adseWMlyA+IGhpZ2FzaGlraXRhXCA7CivkuIPmnIggPiBzaGljaGlnYXRzdVwgOwor5LiA5piUID4gaGl0b211a2FzaGlcIDsKK+adseWBtCA+IGhpZ2FzaGlnYXdhXCA7CivkuIDmkq4gPiBoaXRvdHN1bWFtaVwgOwor6aO+5LuYID4ga2F6YXJpdHN1a2VcIDsKK+WroeWHuiA+IGNoYWt1c2h1dHN1XCA7CivkuIvlv4MgPiBzaGl0YWdva29yb1wgOwor5aSP6KGjID4gbmF0c3Vnb3JvbW9cIDsKK+S4jeWXnCA+IGJ1dGFzaGluYW1pXCA7Civpm4DonIIgPiBzdXp1bWViYWNoaVwgOwor57WE6aCtID4ga3VtaWdhc2hpcmFcIDsKK+e3keiZqyA+IG1pZG9yaW11c2hpXCA7Civpm6rnpKsgPiB5dWtpdHN1YnV0ZVwgOwor5peX5qiZID4gaGF0YWppcnVzaGlcIDsKK+WkouePviA+IHl1bWV1dHN1dHN1XCA7Civpm5vnpa0gPiBoaW5hbWF0c3VyaVwgOwor5aWz5pexID4gb24nJ25haGlkZXJpXCA7CivlpbPlv4MgPiBvbicnbmFnb2tvcm9cIDsKK+aPoemuqCA+IG5pZ2lyaXp1c2hpXCA7CivpnZnlv4MgPiBzaGl6dWdva29yb1wgOwor6Zqj55S6ID4gdG9uYXJpbWFjaGlcIDsKK+Wkp+aZpiA+IG9vdHN1Z29tb3JpXCA7Civmj6Hpo68gPiBuaWdpcmltZXNoaVwgOwor57Sr6ImyID4gbXVyYXNha2lpcm9cIDsKK+aXl+WNsCA+IGhhdGFqaXJ1c2hpXCA7Civpm6rluocgPiB5dWtpYmlzYXNoaVwgOwor6ZW36KmxID4gbmFnYWJhbmFzaGlcIDsKK+e0meekqyA+IGthbWl0c3VidXRlXCA7Civoo7jomasgPiBoYWRha2FtdXNoaVwgOwor6Kmx5LitID4gaGFuYXNoaWNodXVcIDsKK+WhteWfgyA+IGNoaXJpaG9rb3JpXCA7Civpj6HppIUgPiBrYWdhbWltb2NoaVwgOwor54OP5Y+jID4ga2FyYXN1Z3VjaGlcIDsKK+err+mHkSA+IGhhc2hpdGFnYW5lXCA7CivmjqflrqQgPiBoaWthZXNoaXRzdVwgOwor57Gz5Y2wID4ga29tZWppcnVzaGlcIDsKK+WUkOmMpiA+IGthcmFuaXNoaWtpXCA7CivonbjniZsgPiBkZW5kZW5tdXNoaVwgOwor6buS6barID4ga3Vyb3RzdWd1bWlcIDsKK+mMpuibhyA+IG5pc2hpa2loZWJpXCA7Civlm73kvo0gPiBrdW5pemFtdXJhaVwgOwor5riv55S6ID4gbWluYXRvbWFjaGlcIDsKK+iZq+iWrCA+IG11c2hpZ3VzdXJpXCA7CivllJDntIUgPiBrYXJha3VyZW5haVwgOwor56Ov6bWvID4gaXNvaGl5b2RvcmlcIDsKK+WRvee2sSA+IGlub2NoaWR6dW5hXCA7Civph5HovaEgPiBrYW5hZ3V0c3V3YVwgOwor5Y+j6LuKID4ga3VjaGlndXJ1bWFcIDsKK+WPluiqvyA+IHRvcmlzaGlyYWJlXCA7CivpvLvmn7EgPiBoYW5hYmFzaGlyYVwgOwor56qv5Y2wID4ga2FtYWppcnVzaGlcIDsKK+iUpuiYvyA+IHRzdXRha2F6dXJhXCA7Civlj5bnt6AgPiB0b3Jpc2hpbWFyaVwgOwor6JSm6JSTID4gdHN1dGFrYXp1cmFcIDsKK+awt+iiiyA+IGtvb3JpYnVrdXJvXCA7CivljZfopb8gPiBtaW5hbWluaXNoaVwgOwor5YyF6YeRID4gdHN1dHN1bWlraW5cIDsKK+WPpOeLkCA+IGZ1cnVnaXRzdW5lXCA7CivlipvpnakgPiBjaGlrYXJhZ2F3YVwgOwor56eB5YSAID4gd2F0YWt1c2hpZ2lcIDsKK+WKm+i2syA+IGNoaWthcmFhc2hpXCA7Civnp4HkvpsgPiB3YXRhc2hpZG9tb1wgOwor5Yqb6LKgID4gY2hpa2FyYW1ha2VcIDsKK+awtOa+hCA+IG1penVzdW1hc2hpXCA7Civlj5bmibEgPiB0b3JpYXRzdWthaVwgOwor6YmE5YWcID4gdGV0c3VrYWJ1dG9cIDsKK+awt+aelSA+IGtvb3JpbWFrdXJhXCA7CivmsLTmn7EgPiBtaXp1YmFzaGlyYVwgOwor5YiH6YCaID4ga2lyaWRvb3NoaVwgOwor6a+w6autID4gbmFtYXp1aGlnZVwgOwor5Y+j5Y+jID4ga3VjaGlndWNoaVwgOwor5Yid6KmjID4gaGF0c3Vtb3VkZVwgOwor55+z55WzID4gaXNoaWRhdGFtaVwgOwor6YCG6KqsID4gZ3lha3VzZXRzdVwgOwor6Iy46ZuyID4ga2lub2tvZ3Vtb1wgOwor6L+R6YGTID4gY2hpa2FtaWNoaVwgOwor6L+R6L+RID4gY2hpa2FkamlrYVwgOwor5rC05b+DID4gbWl6dWdva29yb1wgOwor56CC54WZID4gc3VuYWtlbXVyaVwgOwor5bed6a2aID4ga2F3YXpha2FuYVwgOwor5Y2v5bm0ID4gdXNhZ2lkb3NoaVwgOwor6L+R6LevID4gY2hpa2FtaWNoaVwgOwor6L676L67ID4gdHN1aml0c3VqaVwgOwor5YyX5p6VID4ga2l0YW1ha3VyYVwgOwor56K65Z+3ID4ga2FrdXNoaXRzdVwgOwor5rC35a6kID4gaHlvdXNoaXRzdVwgOwor5rG65YilID4ga2V0c3ViZXRzdVwgOwor5b6M5oqAID4gdXNoaXJvd2F6YVwgOwor5Y2N5be0ID4gbWFuamlkb21vZVwgOwor5b+D5a6kID4gc2hpbnNoaXRzdVwgOwor552A6ImyID4gY2hha3VzaG9rdVwgOwor5YaG6Y+hID4gbWFydWthZ2FtaVwgOwor6YGj55u0ID4geWFyaW5hb3NoaVwgOwor552A6ISxID4gY2hha3VkYXRzdVwgOwor5b2X5pifID4gaG91a2lib3NoaVwgOwor5YaG6YmLID4gbWFydWdhbicnbmFcIDsKK+W+jOW+jCA+IG5vY2hpbm9jaGlcIDsKK+WNuOWVhiA+IG9yb3NoaXNob3VcIDsKK+i+u+ikhCA+IHRzdWppdHN1bWFcIDsKK+iKsemwuSA+IGhhbmFnYXRzdW9cIDsKK+m2tOWYtCA+IHRzdXJ1aGFzaGlcIDsKK+WFiOmaoyA+IHNha2lkb25hcmlcIDsKK+W3pui2syA+IGhpZGFyaWFzaGlcIDsKK+W+l+WksSA+IHRva3VzaGl0c3VcIDsKK+WShOOAhSA+IHRvdHN1dG90c3VcIDsKK+mFkuWHpiA+IHNha2Vkb2tvcm9cIDsKK+ats+aciCA+IHRvc2hpdHN1a2lcIDsKK+aoqui7iiA+IHlva29ndXJ1bWFcIDsKK+WNk+WHuiA+IHRha3VzaHV0c3VcIDsKK+W8j+aXpSA+IHNoaWtpaml0c3VcIDsKK+WFpeizqiA+IG55dXVzaGljaGlcIDsKK+edgOedgCA+IGNoYWt1Y2hha3VcIDsKK+WNl+WBtCA+IG1pbmFtaWdhd2FcIDsKK+earuihoyA+IGthd2Fnb3JvbW9cIDsKK+WMuuWMuiA+IG1hY2hpbWFjaGlcIDsKK+edgOeZuiA+IGNoYWt1aGF0c3VcIDsKK+iKsemLjyA+IGhhbmFiYXNhbWlcIDsKK+W6rea8hiA+IG5pd2F1cnVzaGlcIDsKK+egguW1kCA+IHN1bmFhcmFzaGlcIDsKK+W5tOeUtyA+IHRvc2hpb3Rva29cIDsKK+asoeasoSA+IHRzdWdpdHN1Z2lcIDsKK+WIgOeWtSA+IGthdGFuYWtpenVcIDsKK+mBleajmiA+IGNoaWdhaWRhbmFcIDsKK+ebtOethiA+IGNob2t1aGl0c3VcIDsKK+W8kOW/gyA+IGZ1dGFnb2tvcm9cIDsKK+ebtOeriyA+IGNob2t1cml0c3VcIDsKK+WFnOifuSA+IGthYnV0b2dhbmlcIDsKK+ebsueqkyA+IG1la3VyYW1hZG9cIDsKK+WHuueNhCA+IHNodXRzdWdva3VcIDsKK+WHuueMnyA+IHNodXRzdXJ5b3VcIDsKK+egguWfgyA+IHN1bmFib2tvcmlcIDsKK+W3puiAsyA+IGhpZGFyaW1pbWlcIDsKK+WKm+W4ryA+IGNoaWthcmFvYmlcIDsKK+egguWaoiA+IHN1bmFidWt1cm9cIDsKK+WFieiYmiA+IGhpa2FyaWdva2VcIDsKK+iKseipniA+IGhhbmFrb3RvYmFcIDsKK+WIneawtyA+IGhhdHN1Z29vcmlcIDsKK+iLpuiJviA+IG5pZ2F5b21vZ2lcIDsKK+WHuua8gSA+IHNodXRzdXJ5b3VcIDsKK+eav+enpCA+IHNhcmFiYWthcmlcIDsKK+auuuS8kCA+IHNhdHN1YmF0c3VcIDsKK+ayuOOAhSA+IGZ1dHN1ZnV0c3VcIDsKK+WFjuiEoyA+IG1pdHN1a3VjaGlcIDsKK+W6p+aKgCA+IHN1d2FyaXdhemFcIDsKK+WPo+OAhSA+IGt1Y2hpZ3VjaGlcIDsKK+iJr+izqiA+IHJ5b3VzaGl0c3VcIDsKK+anjeihviA+IHlhcmlidXN1bWFcIDsKK+mAkOaXpSA+IGNoaWt1aml0c3VcIDsKK+iLpee3kSA+IHdha2FtaWRvcmlcIDsKK+i7iuizgyA+IGt1cnVtYWNoaW5cIDsKK+mAhuaOpSA+IGd5YWt1c2V0c3VcIDsKK+eVkem8oCA+IGhhdGFuZXp1bWlcIDsKK+edgOaJlSA+IGNoYWt1YmFyYWlcIDsKK+WHuuaSgyA+IHNodXRzdWdla2lcIDsKK+WzoOmBkyA+IHRvdWdlbWljaGlcIDsKK+W5tOW8tyA+IHRvc2hpZHp1eW9cIDsKK+iJtuiJtiA+IHRzdXlhdHN1eWFcIDsKK+eUsOm1kSA+IGhvdG90b2dpc3VcIDsKK+WxsemvqCA+IHlhbWFrdWppcmFcIDsKK+iNieaelSA+IGt1c2FtYWt1cmFcIDsKK+edgOWunyA+IGNoYWt1aml0c3VcIDsKK+WCt+iWrCA+IGtpenVndXN1cmlcIDsKK+iMtuafsSA+IGNoYWJhc2hpcmFcIDsKK+W4muaYnyA+IGhvdWtpYm9zaGlcIDsKK+ebtOaOpSA+IGNob2t1c2V0c3VcIDsKK+W6leWcnyA+IHNva290c3VjaGlcIDsKK+eVs+mHnSA+IHRhdGFtaWhhcmlcIDsKK+eZuueGsSA+IGhhdHN1bmV0c3VcIDsKK+WIh+WunyA+IHNldHN1aml0c3VcIDsKK+WxsemiqiA+IHlhbWFvcm9zaGlcIDsKK+WFieeJqSA+IGhpa2FyaW1vbm9cIDsKK+WJlOWHuiA+IHRla2lzaHV0c3VcIDsKK+eUn+mtmiA+IG5hbWF6YWthbmFcIDsKK+ebtOaIqiA+IGNob2t1c2V0c3VcIDsKK+WBj+i+uiA+IGthdGFob3JvcmlcIDsKK+iKseeVkSA+IGhhbmFiYXRha2VcIDsKK+WAmemWkyA+IHNvdXJvdWFpZGFcIDsKK+mAsuWHuiA+IHNoaW5zaHV0c3VcIDsKK+W6l+WNuCA+IHRhbmFvcm9zaGlcIDsKK+eVpei/sCA+IHJ5YWt1anV0c3VcIDsKK+W4uOW4uCA+IHRzdW5lZHp1bmVcIDsKK+eWteiWrCA+IGtpenVndXN1cmlcIDsKK+WIpeWPoyA+IGJldHN1a3VjaGlcIDsKK+WFq+apiyA+IHlhdHN1aGFzaGlcIDsKK+i+sOW5tCA+IHRhdHN1ZG9zaGlcIDsKK+WIpeWIpSA+IGJldHN1YmV0c3VcIDsKK+Wwu+mkoCA+IHNoaXJpbW9jaGlcIDsKK+WHuuWbvSA+IHNodXRzdWdva3VcIDsKK+Wwu+mkhSA+IHNoaXJpbW9jaGlcIDsKK+WMuuOAhSA+IG1hY2hpbWFjaGlcIDsKK+eZveaouiA+IHNoaXJha2FuYmFcIDsKK+WFq+aciCA+IGhhY2hpZ2F0c3VcIDsKK+i4j+i7iiA+IGZ1bWlndXJ1bWFcIDsKK+W+jOOAhSA+IG5vY2hpbm9jaGlcIDsKK+eVpeiqrCA+IHJ5YWt1c2V0c3VcIDsKK+eUs+i+vCA+IG1vdXNoaWtvbWlcIDsKK+WIh+WIhyA+IHNldHN1c2V0c3VcIDsKK+ebsuWjgSA+IG1la3VyYWthYmVcIDsKK+mvqOW5lSA+IGt1amlyYW1ha3VcIDsKK+eZveaYnyA+IHNoaXJvYm9zaGlcIDsKK+eZvuaXpSA+IGh5YWt1bmljaGlcIDsKK+iGnOizqiA+IG1ha3VzaGl0c3VcIDsKK+WHuuWFpSA+IHNodXRzdW55dXVcIDsKK+W5tOS4iyA+IHRvc2hpc2hpdGFcIDsKK+S/gumVtyA+IGtha2FyaWNob3VcIDsKK+WAmeiqvyA+IHNvdXJvdWNob3VcIDsKK+mvqOWwuiA+IGt1amlyYWpha3VcIDsKK+ebm+WcnyA+IG1vcml0c3VjaGlcIDsKK+iKseaapiA+IGhhbmFnb3lvbWlcIDsKK+ebtOWIlyA+IGNob2t1cmV0c3VcIDsKK+eUsuifuSA+IGthYnV0b2dhbmlcIDsKK+WGveWGvSA+IHJldHN1cmV0c3VcIDsKK+WFpeWupCA+IG55dXVzaGl0c3VcIDsKK+WxseiNkiA+IHlhbWFhcmFzaGlcIDsKK+WCkeeJqSA+IGtldHN1YnV0c3VcIDsKK+eVpeethiA+IHJ5YWt1aGl0c3VcIDsKK+W3puWIqSA+IGhpZGFyaWtpa2lcIDsKK+S8uOmkhSA+IG5vc2hpbW9jaGlcIDsKK+WGheWGkSA+IHVjaGlrYWJ1dG9cIDsKK+WGheWFnCA+IHVjaGlrYWJ1dG9cIDsKK+W3puWBtCA+IGhpZGFyaWdhd2FcIDsKK+WFpeWPoyA+IGhhaXJpZ3VjaGlcIDsKK+WupOmVtyA+IHNoaXRzdWNob3VcIDsKK+WEquWnvyA+IHlhc2FzdWdhdGFcIDsKK+WFjuWPoyA+IG1pdHN1a3VjaGlcIDsKK+eUs+eriyA+IG1vdXNoaXRhdGVcIDsKK+aguOizqiA+IGtha3VzaGl0c3VcIDsKK+akjeeJqSA+IHNob2t1YnV0c3VcIDsKK+WyqeeHlSA+IGl3YXRzdWJhbWVcIDsKK+asoeOAhSA+IHRzdWdpdHN1Z2lcIDsKK+WEsuWPoyA+IG1vdWtlZ3VjaGlcIDsKK+ajn+eTpiA+IG11bmFnYXdhcmFcIDsKK+mrmOaelSA+IHRha2FtYWt1cmFcIDsKK+iEueiEmyA+IGZ1a3VyYWhhZ2lcIDsKK+mrmOabhyA+IHRha2FndW1vcmlcIDsKK+ahnOiKsSA+IHNha3VyYWJhbmFcIDsKK+ahkeiLuiA+IGt1d2FpY2hpZ29cIDsKK+iEmuiJsiA+IGt5YWt1c2hva3VcIDsKK+ahnOiCiSA+IHNha3VyYW5pa3VcIDsKK+iCqei7iiA+IGthdGFndXJ1bWFcIDsKK+WIpeOAhSA+IGJldHN1YmV0c3VcIDsKK+izqumHjyA+IHNoaXRzdXJ5b3VcIDsKK+eVnOauuiA+IGNoaWt1c2F0c3VcIDsKK+adnOm1kSA+IGhvdG90b2dpc3VcIDsKK+iEiOiEiCA+IG15YWt1bXlha3VcIDsKK+edgOOAhSA+IGNoYWt1Y2hha3VcIDsKK+allOW9oiA+IGt1c2FiaWdhdGFcIDsKK+ahnOe0mSA+IHNha3VyYWdhbWlcIDsKK+WIh+OAhSA+IHNldHN1c2V0c3VcIDsKK+eXheWupCA+IGJ5b3VzaGl0c3VcIDsKK+iKi+S+jSA+IGltb3phbXVyYWlcIDsKK+iCieizqiA+IG5pa3VzaGl0c3VcIDsKK+i/keOAhSA+IGNoaWthZGppa2FcIDsKK+WuneiIuSA+IHRha2FyYWJ1bmVcIDsKK+WxseahnCA+IHlhbWF6YWt1cmFcIDsKK+WBtOWupCA+IHNva3VzaGl0c3VcIDsKK+iGneaelSA+IGhpemFtYWt1cmFcIDsKK+S5s+mmliA+IGNoaWNoaWt1YmlcIDsKK+W4uOOAhSA+IHRzdW5lZHp1bmVcIDsKK+WtkOimjyA+IGhvdG90b2dpc3VcIDsKK+alteWKmyA+IGt5b2t1cnlva3VcIDsKK+i+u+OAhSA+IHRzdWppdHN1amlcIDsKK+ahkeeVkSA+IGt1d2FiYXRha2VcIDsKK+eVpeW8jyA+IHJ5YWt1c2hpa2lcIDsKK+WGveOAhSA+IHJldHN1cmV0c3VcIDsKK+aeleiosSA+IG1ha3VyYW1vdG9cIDsKK+WuneexpCA+IHRha2FyYWt1amlcIDsKK+WuneeusSA+IHRha2FyYWJha29cIDsKK+izquiNiSA+IHNoaWNoaWd1c2FcIDsKK+mqqOWjtyA+IGtvdHN1dHN1Ym9cIDsKK+Wuv+ebtCA+IHNodWt1Y2hva3VcIDsKK+WCmeS7mCA+IHNvbmFldHN1a2VcIDsKK+eVpeWlqiA+IHJ5YWt1ZGF0c3VcIDsKK+WxseW1kCA+IHlhbWFhcmFzaGlcIDsKK+advuiZqyA+IG1hdHN1bXVzaGlcIDsKK+S5s+izqiA+IG55dXVzaGl0c3VcIDsKK+S4oemaoyA+IHJ5b3Vkb25hcmlcIDsKK+WxoeWxoSA+IHNoaWJhc2hpYmFcIDsKK+e+pOmbgCA+IG11cmFzdXp1bWVcIDsKK+acqOizqiA+IG1va3VzaGl0c3VcIDsKK+Wun+eJqSA+IGppdHN1YnV0c3VcIDsKK+izqueoriA+IHNoaWNoaWd1c2FcIDsKK+S4i+mcsiA+IHNoaXRhdHN1eXVcIDsKK+eVnOWKmyA+IGNoaWt1cnlva3VcIDsKK+WvkuakvyA+IGthbnRzdWJha2lcIDsKK+izqueahCA+IHNoaXRzdXRla2lcIDsKK+ajmuWNuCA+IHRhbmFvcm9zaGlcIDsKK+ailOWtkCA+IGt1Y2hpbmFzaGlcIDsKK+mpgOWcsCA+IG1hc3NoaWd1cmFcIDsKK+WxseWIgCA+IHlhbWFnYXRhbmFcIDsKK+S4i+mBkyA+IHNoaXRhbWljaGlcIDsKK+S4jei6viA+IGJ1c2hpdHN1a2VcIDsKK+eUn+WNtSA+IG5hbWF0YW1hZ29cIDsKK+miqOiWrCA+IGthemVndXN1cmlcIDsKK+absuiqrCA+IGt5b2t1c2V0c3VcIDsKK+S4uOijuCA+IG1hcnVoYWRha2FcIDsKK+mjr+eykiA+IG1lc2hpdHN1YnVcIDsKK+eMq+i7iiA+IG5la29ndXJ1bWFcIDsKK+S4iei2iiA+IG1pdHN1a29zaGlcIDsKK+WuouaciCA+IGt5YWt1Z2V0c3VcIDsKK+aZgumzpSA+IGhvdG90b2dpc3VcIDsKK+mhlOiyjCA+IGthb2thdGFjaGlcIDsKK+WupOaWmSA+IHNoaXRzdXJ5b3VcIDsKK+WwuuWFqyA+IHNoYWt1aGFjaGlcIDsKK+iJtuOAhSA+IHRzdXlhdHN1eWFcIDsKK+adseeUtyA+IGF6dW1hb3Rva29cIDsKK+WvneWupCA+IHNoaW5zaGl0c3VcIDsKK+izquaouCA+IHNoaXRzdWJva3VcIDsKK+iCmOaelSA+IGhpamltYWt1cmFcIDsKK+S7j+a7hSA+IGJ1dHN1bWV0c3VcIDsKK+Wwj+WMhSA+IGtvZHp1dHN1bWlcIDsKK+WvhuWvhiA+IG1pdHN1bWl0c3VcIDsKK+WwseS4rSA+IG5ha2FuZHp1a3VcIDsKK+S4iuiThiA+IHV3YW11c2hpcm9cIDsKK+izquactCA+IHNoaXRzdWJva3VcIDsKK+iEseWKmyA+IGRhdHN1cnlva3VcIDsKK+izquacrSA+IHNoaWNoaWZ1ZGFcIDsKK+S4ieiPsSA+IG1pdHN1YmlzaGlcIDsKK+S7ruaelSA+IGthcmltYWt1cmFcIDsKK+S+m+WHuiA+IGt5b3VzaHV0c3VcIDsKK+WuruWupCA+IGt5dXVzaGl0c3VcIDsKK+aYpemcniA+IGhhcnVnYXN1bWlcIDsKK+mjn+eJqSA+IHNob2t1bW90c3VcIDsKK+aYlOmiqCA+IG11a2FzaGlmdXVcIDsKK+WuneWztiA+IHRha2FyYWppbWFcIDsKK+S7j+anmCA+IGhvdG9rZXNhbWFcIDsKK+iEmuWKmyA+IGt5YWt1cnlva3VcIDsKK+S4i+iBtyA+IHNoaXRhc2hva3VcIDsKK+absuevgCA+IGt5b2t1c2V0c3VcIDsKK+absuethiA+IGt5b2t1aGl0c3VcIDsKK+S4gOe6jyA+IGhpdG9tYXRvbWVcIDsKK+mjr+argyA+IG1lc2hpYml0c3VcIDsKK+iyneafsSA+IGthaWJhc2hpcmFcIDsKK+S4iuettSA+IHV3YW11c2hpcm9cIDsKK+absuebtCA+IGt5b2t1Y2hva3VcIDsKK+S4uOeTpiA+IG1hcnVnYXdhcmFcIDsKK+S4g+eriCA+IG5hbmFrYW1hZG9cIDsKK+S4gOeptCA+IGhpdG90c3VhbmFcIDsKK+Wtq+WomCA+IG1hZ29tdXN1bWVcIDsKK+S7j+aApyA+IGhvdG9rZXNob3VcIDsKK+mdmemdmSA+IHNoaXp1c2hpenVcIDsKK+Wun+WKmyA+IGppdHN1cnlva3VcIDsKK+absueOhyA+IGt5b2t1cml0c3VcIDsKK+Wkp+m8kyA+IG9vdHN1ZHp1bWlcIDsKK+eLkOiJsiA+IGtpdHN1bmVpcm9cIDsKK+eJueizqiA+IHRva3VzaGl0c3VcIDsKK+S4gOedoSA+IGhpdG9uZW11cmlcIDsKK+S4i+eUuiA+IHNoaXRhbWFjaGlcIDsKK+S6uuW/gyA+IGhpdG9nb2tvcm9cIDsKK+S4g+eUnyA+IHNoaWNoaXNob3VcIDsKK+eHlem6piA+IGthcmFzdW11Z2lcIDsKK+S4gOeVqiA+IGhpdG90c3VnYWlcIDsKK+eJqeiqniA+IG1vbm9nYXRhcmlcIDsKK+Wls+mBlCA+IG9uJyduYXRhY2hpXCA7CivmnKfmnIggPiBvYm9yb2R6dWtpXCA7CivniYfot5sgPiBrYXRhY2hpbmJhXCA7CivmnKvml6UgPiBtYXRzdWppdHN1XCA7CivmnJvmnIggPiBtb2NoaWR6dWtpXCA7Civkuozlv4MgPiBmdXRhZ29rb3JvXCA7Civpnanos6ogPiBrYWt1c2hpdHN1XCA7CivlpKfpmrwgPiBvb2hheWFidXNhXCA7CivmnIjmnIggPiB0c3VraWR6dWtpXCA7CivkuIDmuKEgPiBoaXRvd2F0YXJpXCA7CivlsaHjgIUgPiBzaGliYXNoaWJhXCA7CivmnZzlrocgPiBob3RvdG9naXN1XCA7Civlpr7ohbkgPiBtZWtha2ViYXJhXCA7Civpm7LpnJ4gPiBrdW1va2FzdW1pXCA7CivpnanooosgPiBrYXdhYnVrdXJvXCA7CivmnpDlh7ogPiBzZWtpc2h1dHN1XCA7CivmnpXlhYMgPiBtYWt1cmFtb3RvXCA7CivkuI3mnZ8gPiBmdXRzdXRzdWthXCA7CivnjKvmn7MgPiBuZWtveWFuYWdpXCA7Civmm7LmipggPiBreW9rdXNldHN1XCA7Civosrjku5ggPiBrYXNoaXRzdWtlXCA7Civni7jmsYEgPiB0YW51a2lqaXJ1XCA7CivkuI3mirEgPiBrYWthd2FyYXp1XCA7CivkuIDmiYAgPiBoaXRvdG9rb3JvXCA7Civmm7LlsLogPiBreW9rdXNoYWt1XCA7Civpm6ros6ogPiB5dWtpc2hpdHN1XCA7CivpoZTlvaIgPiBrYW9rYXRhY2hpXCA7CivniofniocgPiBoaXNoaWhpc2hpXCA7Civpm5vosYYgPiBoaXlva29tYW1lXCA7CivntrLpoK0gPiBhbWlnYXNoaXJhXCA7CivloanprZogPiBzaGlvemFrYW5hXCA7CivkuK3ln7cgPiBjaHV1c2hpdHN1XCA7CivlpI/omasgPiBuYXRzdW11c2hpXCA7Civntr7pjKYgPiBheWFuaXNoaWtpXCA7CivmnIjliKUgPiB0c3VraWJldHN1XCA7CivlparnlaUgPiBkYXRzdXJ5YWt1XCA7CivnuYHnuYEgPiBzaGlnZXNoaWdlXCA7Civng4/puqYgPiBrYXJhc3VtdWdpXCA7CivkuIDlkaggPiBoaXRvbWVndXJpXCA7Civng4/ps6kgPiBrYXJhc3ViYXRvXCA7CivoqKXoqKUgPiB0b3RzdXRvdHN1XCA7Civml4Xng48gPiB0YWJpZ2FyYXN1XCA7CivkuIPlhYkgPiBuYW5haGlrYXJpXCA7CivlqJjlqb8gPiBtdXN1bWVtdWtvXCA7Civml6XmsqEgPiBuaWNoaWJvdHN1XCA7CivntLDpm6ogPiBzYXNhbWV5dWtpXCA7CivpoK3liIYgPiBrYXNoaXJhYnVuXCA7CivmlpHniZsgPiBtYWRhcmF1c2hpXCA7Civnt5HoibIgPiByeW9rdXNob2t1XCA7Civml6XmnIggPiBuaWNoaWdldHN1XCA7Civml63ml6UgPiBreW9rdWppdHN1XCA7Civop5Los6ogPiBrYWt1c2hpdHN1XCA7CivpmqPntYQgPiB0b25hcmlndW1pXCA7Civng4/ph5EgPiBrYXJhc3VnYW5lXCA7Civpmrznp5EgPiBoYXlhYnVzYWthXCA7Civnianlv4MgPiBtb25vZ29rb3JvXCA7Civml4XmnpUgPiB0YWJpbWFrdXJhXCA7CivntIXpm4AgPiBiZW5pc3V6dW1lXCA7CivniLbmlrkgPiBjaGljaGlrYXRhXCA7CivlobXoiqUgPiBjaGlyaWFrdXRhXCA7Civpm6jnh5UgPiBhbWF0c3ViYW1lXCA7Civlprnlqb8gPiBpbW91dG9tdWtvXCA7Civpm6rnhZkgPiB5dWtpa2VtdXJpXCA7CivlparmjqAgPiBkYXRzdXJ5YWt1XCA7Civop5Lom5kgPiB0c3Vub2dhZXJ1XCA7CivlpLHmpa0gPiBzaGl0c3VneW91XCA7CivoqK3nq4sgPiBzZXRzdXJpdHN1XCA7Civpm5HniakgPiB6YXRzdWJ1dHN1XCA7CivnhrHng4ggPiBuZXRzdXJldHN1XCA7Civpmo/npZ4gPiBrYW4nJ25hZ2FyYVwgOwor6KO46bqmID4gaGFkYWthbXVnaVwgOwor6Zyc5pyIID4gc2hpbW90c3VraVwgOwor5aSi5p6VID4geXVtZW1ha3VyYVwgOwor5peF5b+DID4gdGFiaWdva29yb1wgOwor54qs5L6NID4gaW51emFtdXJhaVwgOwor6K2Y5YilID4gc2hpa2liZXRzdVwgOwor5aa+5Ye6ID4gc2hvdXNodXRzdVwgOwor57eR546JID4gcnlva3VneW9rdVwgOwor54OP6JuHID4ga2FyYXN1aGViaVwgOwor54m55Ye6ID4gdG9rdXNodXRzdVwgOwor57SZ6KKLID4ga2FtaWJ1a3Vyb1wgOwor6Zuq5p+zID4geXVraXlhbmFnaVwgOwor5pil5LyRID4gaGFydXlhc3VtaVwgOwor5pyI44CFID4gdHN1a2lkenVraVwgOwor6Kem55m6ID4gc2hva3VoYXRzdVwgOwor57aZ54i2ID4gbWFtYWNoaWNoaVwgOwor54OP57SZID4ga2FyYXN1Z2FtaVwgOwor5pel5LuPID4gbmljaGlmdXRzdVwgOwor5o6b6ZW3ID4ga2FrYXJpY2hvdVwgOwor6Z205LiLID4ga3V0c3VzaGl0YVwgOwor57iu5bC6ID4gc2h1a3VzaGFrdVwgOwor5aWz5Li7ID4gb24nJ25hYXJ1amlcIDsKK+aVteWksSA+IHRla2lzaGl0c3VcIDsKK+aVmeWupCA+IGt5b3VzaGl0c3VcIDsKK+e1tua7hSA+IHpldHN1bWV0c3VcIDsKK+imgeefsyA+IGthbmFtZWlzaGlcIDsKK+ijj+ipsSA+IHVyYWJhbmFzaGlcIDsKK+eyieiWrCA+IGtvbmFndXN1cmlcIDsKK+e4ruWItyA+IHNodWt1c2F0c3VcIDsKK+Wcn+ixmiA+IHRzdWNoaWJ1dGFcIDsKK+eDiOeDiCA+IHJldHN1cmV0c3VcIDsKK+aVkeWHuiA+IGt5dXVzaHV0c3VcIDsKK+WjgeWcnyA+IGthYmV0c3VjaGlcIDsKK+e1kOacqyA+IGtldHN1bWF0c3VcIDsKK+imquafsSA+IG95YWJhc2hpcmFcIDsKK+eym+eymyA+IHNodWt1c2h1a3VcIDsKK+WbveiomyA+IGt1bmluYW1hcmlcIDsKK+e2v+WfgyA+IHdhdGFib2tvcmlcIDsKK+imquaXpSA+IHNoaW4nJ25pY2hpXCA7CivngbznhrEgPiBzaGFrdW5ldHN1XCA7Civpm4fkuLsgPiB5YXRvaW51c2hpXCA7CivntpnlqJggPiBtYW1hbXVzdW1lXCA7CivnhLzlpLEgPiBzaG91c2hpdHN1XCA7CivoqLPlh7ogPiB5YWt1c2h1dHN1XCA7Civng4jml6UgPiByZXRzdWppdHN1XCA7Civnt6Dku5ggPiBzaGltZXRzdWtlXCA7CivoqKPliKUgPiBrZXRzdWJldHN1XCA7CivnrZLps6UgPiB0c3V0c3Vkb3JpXCA7CivooovogLMgPiBmdWt1cm9taW1pXCA7CivntZDlrp8gPiBrZXRzdWppdHN1XCA7Civntprlh7ogPiB6b2t1c2h1dHN1XCA7Civmv4PntKsgPiBrb211cmFzYWtpXCA7Civmup3pvKAgPiBkb2J1bmV6dW1pXCA7CivnspvmrrogPiBzaHVrdXNhdHN1XCA7CivooYDohIggPiBrZXRzdW15YWt1XCA7CivpjozpvKwgPiBrYW1haXRhY2hpXCA7CivooovniakgPiBmdWt1cm9tb25vXCA7Civopb/lj6MgPiBuaXNoaWd1Y2hpXCA7CivmkZjlh7ogPiB0ZWtpc2h1dHN1XCA7Civnr4Dnr4AgPiBmdXNoaWJ1c2hpXCA7CivnrZLoopYgPiB0c3V0c3Vzb2RlXCA7Civns7jljbAgPiBpdG9qaXJ1c2hpXCA7CivngrrkurogPiBoaXRvdG9uYXJpXCA7Civngq3kv7UgPiBzdW1pZGF3YXJhXCA7CivonIDprYIgPiBob3RvdG9naXN1XCA7CivnsbPmiYAgPiBrb21lZG9rb3JvXCA7Civnq6/ov5EgPiBoYXNoaWRqaWthXCA7CivpjpbpjowgPiBrdXNhcmlnYW1hXCA7Civmu4Xoo4IgPiBtZXRzdXJldHN1XCA7Civmva7nhZkgPiBzaGlva2VtdXJpXCA7CivnrYboiIwgPiBoaXRzdXpldHN1XCA7CivpjKbpr4kgPiBuaXNoaWtpZ29pXCA7Civmu5HohLEgPiBrYXRzdWRhdHN1XCA7CivmjqDlpaogPiByeWFrdWRhdHN1XCA7CivnrYbnrZIgPiBmdWRlZHp1dHN1XCA7Civmj4/lh7ogPiBieW91c2h1dHN1XCA7CivlnJ/lo4EgPiB0c3VjaGlrYWJlXCA7CivmiYvntpogPiB0ZXRzdWR6dWtpXCA7CivonqLnn7MgPiBob3RhcnVpc2hpXCA7CivonJzonIIgPiBtaXRzdWJhY2hpXCA7CivnrrHmn7MgPiBoYWtveWFuYWdpXCA7CivnrrHmnpUgPiBoYWtvbWFrdXJhXCA7CivnsbPkv7UgPiBrb21lZGF3YXJhXCA7CivonILonJwgPiBoYWNoaW1pdHN1XCA7Civnq7nnrZIgPiB0YWtlZHp1dHN1XCA7Civnq6/nq68gPiBoYXNoaWJhc2hpXCA7CivnrpLmmJ8gPiBob3VraWJvc2hpXCA7CivonbbnlaogPiBjaG91dHN1Z2FpXCA7Civmi6DmiYAgPiB5b3JpZG9rb3JvXCA7Civpu5LpvKAgPiBrdXJvbmV6dW1pXCA7Civooajlj6MgPiBvbW90ZWd1Y2hpXCA7Civnq4jnpZ4gPiBrYW1hZG9nYW1pXCA7Civpu5LprqogPiBrdXJvbWFndXJvXCA7CivnsIflh7ogPiB6b2t1c2h1dHN1XCA7Civooajlh7ogPiBoeW91c2h1dHN1XCA7CivllJDooaMgPiBrYXJha29yb21vXCA7CivnrYbml4EgPiBmdWRlenVrdXJpXCA7CivpvaPokL0gPiBrb21hb3Rvc2hpXCA7CivpjKjntrEgPiBpa2FyaWR6dW5hXCA7CivnrZLlvaIgPiB0c3V0c3VnYXRhXCA7Civmt7Hnt5EgPiBmdWthbWlkb3JpXCA7CivpvLvolqwgPiBoYW5hZ3VzdXJpXCA7CivmiYDmn4QgPiB0b2tvcm9nYXJhXCA7CivmjIHkuLsgPiBtb2NoaW51c2hpXCA7Civmi5nliqMgPiBzZXRzdXJldHN1XCA7Civom43nn7MgPiBob3RhcnVpc2hpXCA7CivmvILlpLEgPiBoeW91c2hpdHN1XCA7Civph53pvKAgPiBoYXJpbmV6dW1pXCA7CivmtYHos6ogPiByeXV1c2hpY2hpXCA7Civmir3lh7ogPiBjaHV1c2h1dHN1XCA7CivonJzmnIggPiBtaXRzdWdldHN1XCA7CivnqbrmtpkgPiBzb3JhbmFtaWRhXCA7CivmuIvmuIsgPiBzaGlidXNoaWJ1XCA7Civmu7Llh7ogPiBzaGluc2h1dHN1XCA7Civnpo/ooosgPiBmdWt1YnVrdXJvXCA7CivnrZLlhYggPiB0c3V0c3VzYWtpXCA7CivnrYblipsgPiBoaXRzdXJ5b2t1XCA7CivmioTlh7ogPiBzaG91c2h1dHN1XCA7CivmiJHlv4MgPiB3YWdha29rb3JvXCA7Civpu5Loi7ogPiBrdXJvaWNoaWdvXCA7Civnp6nnpoQgPiBjaGl0c3Vyb2t1XCA7Civlj4jpmqMgPiBtYXRhZG9uYXJpXCA7Civph5Hpi48gPiBrYW5hYmFzYW1pXCA7Civmh5DmiYsgPiBmdXRva29yb2RlXCA7Civpu5Lnt5EgPiBrdXJvbWlkb3JpXCA7CivmhYTng4ggPiByaXRzdXJldHN1XCA7Civpi7jmra8gPiBub2tvZ2lyaWJhXCA7CivmuozliYwgPiBoYXRzdXJhdHN1XCA7Civmg5/npZ4gPiBrYW4nJ25hZ2FyYVwgOwor5rW354eVID4gdW1pdHN1YmFtZVwgOwor6YeR6KKLID4ga2FuYWJ1a3Vyb1wgOwor5rK56JmrID4gYWJ1cmFtdXNoaVwgOwor6YqA54uQID4gZ2luZ2l0c3VuZVwgOwor5Y2X6aKoID4gbWluYW1pa2F6ZVwgOwor6JmQ5q66ID4gZ3lha3VzYXRzdVwgOwor5rC06Y+hID4gbWl6dWthZ2FtaVwgOwor5rS754mpID4ga2F0c3VidXRzdVwgOwor5Y216YWSID4gdGFtYWdvemFrZVwgOwor56+A44CFID4gZnVzaGlidXNoaVwgOwor6YO96bOlID4gbWl5YWtvZG9yaVwgOwor5rG66KOCID4ga2V0c3VyZXRzdVwgOwor6Jas566xID4ga3VzdXJpYmFrb1wgOwor6bqm55WRID4gbXVnaWJhdGFrZVwgOwor6buS5ryGID4ga29rdXNoaXRzdVwgOwor5ZaJ5LuPID4gbm9kb2JvdG9rZVwgOwor6YeR6IG+ID4ga2FuYXRzdW5ib1wgOwor5ZC45rm/ID4ga3l1dXNoaXRzdVwgOwor5rC06JasID4gbWl6dWd1c3VyaVwgOwor5rOJ54axID4gaXp1bWluZXRzdVwgOwor5rW05a6kID4geW9rdXNoaXRzdVwgOwor5oSb5aiYID4gbWFuYW11c3VtZVwgOwor5Y+k54u4ID4gZnVydWRhbnVraVwgOwor5rKz54OPID4ga2F3YWdhcmFzdVwgOwor56eB5a6bID4gd2F0YXNoaWF0ZVwgOwor5b+F572wID4gaGl0c3ViYXRzdVwgOwor56Wd5pelID4gc2h1a3VqaXRzdVwgOwor5ZCK5qmLID4gdHN1cmliYXNoaVwgOwor5b2i6KixID4ga2F0YWJha2FyaVwgOwor5rK45rK4ID4gZnV0c3VmdXRzdVwgOwor5rOi5p6VID4gbmFtaW1ha3VyYVwgOwor56KH57axID4gaWthcmlkenVuYVwgOwor5rC056ekID4gbWl6dWJha2FyaVwgOwor5rWB5aSxID4gcnl1dXNoaXRzdVwgOwor5rW45Ye6ID4gc2hpbnNodXRzdVwgOwor6YmL5bGRID4ga2FuJyduYWt1enVcIDsKK+iPsemkhSA+IGhpc2hpbW9jaGlcIDsKK+WQieaXpSA+IGtpY2hpbmljaGlcIDsKK+iWrOaMhyA+IGt1c3VyaXl1YmlcIDsKK+WQhOaWuSA+IG9ub29ub2dhdGFcIDsKK+mHkeanjCA+IGthbmFkenVjaGlcIDsKK+egguiiiyA+IHN1bmFidWt1cm9cIDsKK+WShOWShCA+IHRvdHN1dG90c3VcIDsKK+WJjemgrSA+IG1hZWdhc2hpcmFcIDsKK+a1geWHuiA+IHJ5dXVzaHV0c3VcIDsKK+a0u+WKmyA+IGthdHN1cnlva3VcIDsKK+WNteeEvCA+IHRhbWFnb3lha2lcIDsKK+awtOeFmSA+IG1penVrZW11cmlcIDsKK+mBk+mBkyA+IG1pY2hpbWljaGlcIDsKK+W8t+iFsCA+IHRzdXlvZ29zaGlcIDsKK+a0u+S7jyA+IGthdHN1YnV0c3VcIDsKK+WInemcnCA+IGhhdHN1c2hpbW9cIDsKK+WPs+W3piA+IG1pZ2loaWRhcmlcIDsKK+WQhOWupCA+IGtha3VzaGl0c3VcIDsKK+edgOmbqiA+IGNoYWt1c2V0c3VcIDsKK+W/hea7hSA+IGhpdHN1bWV0c3VcIDsKK+mHjOW/gyA+IHNhdG9nb2tvcm9cIDsKK+iRteelrSA+IGFvaW1hdHN1cmlcIDsKK+ayueWjtyA+IGFidXJhdHN1Ym9cIDsKK+a4i+OAhSA+IHNoaWJ1c2hpYnVcIDsKK+WIu+i2syA+IGtpemFtaWFzaGlcIDsKK+awtOaelSA+IG1penVtYWt1cmFcIDsKK+WLheethiA+IGNob2t1aGl0c3VcIDsKK+mwr+mbsiA+IGl3YXNoaWd1bW9cIDsKK+W/g+afhCA+IGtva29yb2dhcmFcIDsKK+edpuiogCA+IG11dHN1Z290b1wgOwor5Y+O5aWqID4gc2h1dWRhdHN1XCA7CivmgZDllp0gPiBreW91a2F0c3VcIDsKK+ebrumgrSA+IG1lZ2FzaGlyYVwgOwor6I2J6aSgID4ga3VzYW1vY2hpXCA7CivliofogbcgPiBnZWtpc2hva3VcIDsKK+iWrOS7oyA+IGt1c3VyaWRhaVwgOwor5by355u0ID4ga3lvdWNob2t1XCA7CivlkITlhoogPiBrYWt1c2F0c3VcIDsKK+mAmuiqrCA+IHRzdXVzZXRzdVwgOwor5rKz5Y+jID4ga2F3YWd1Y2hpXCA7CivpgIbos4ogPiBneWFrdXpva3VcIDsKK+mBk+iNiSA+IG1pY2hpa3VzYVwgOwor5q2756WeID4gc2hpbmlnYW1pXCA7CivpganogbcgPiB0ZWtpc2hva3VcIDsKK+asoOiQvSA+IGtldHN1cmFrdVwgOwor5be76a6oID4gbWFraXp1c2hpXCA7Civli53njocgPiBzaG91cml0c3VcIDsKK+WHuui7jSA+IHNodXRzdWd1blwgOwor5Y2K5pelID4gaGFuJyduaWNoaVwgOwor5Y6E5bm0ID4geWFrdWRvc2hpXCA7CivliaXohLEgPiBoYWt1ZGF0c3VcIDsKK+W+kuahnCA+IGFkYXpha3VyYVwgOwor5Y2D5pelID4gc2VuJyduaWNoaVwgOwor5Yil6KGMID4gYmV0c3VneW91XCA7CivokL3nnYAgPiByYWt1Y2hha3VcIDsKK+mAhuilsiA+IGd5YWt1c2h1dVwgOwor5q+S5q66ID4gZG9rdXNhdHN1XCA7Civnorrlrp8gPiBrYWt1aml0c3VcIDsKK+mHjeWHuiA+IGp1dXNodXRzdVwgOwor5Y+j5YWIID4ga3VjaGlzYWtpXCA7Civlj6PlhYMgPiBrdWNoaW1vdG9cIDsKK+W8j+ebriA+IHNoaWtpbW9rdVwgOwor5Y2T5oqcID4gdGFrdWJhdHN1XCA7CivmsqHlhaUgPiBib3RzdW55dXVcIDsKK+WPs+S4iyA+IG1pZ2lzaGl0YVwgOwor5by354OIID4ga3lvdXJldHN1XCA7CivpgLjohLEgPiBpdHN1ZGF0c3VcIDsKK+eZvem7kiA+IHNoaXJva3Vyb1wgOwor55u06YGUID4gamlraXRhdHN1XCA7CivmgYvku4cgPiBrb2lnYXRha2lcIDsKK+ebtOmAsiA+IGNob2t1c2hpblwgOwor55u06YCaID4gY2hva3V0c3V1XCA7Civlib3nqoMgPiBoeW91c2V0c3VcIDsKK+WJsueuuCA+IHdhcmliYXNoaVwgOwor5YWN6bucID4gbWVuY2h1dHN1XCA7Civph5Hku48gPiBrYW5hYnV0c3VcIDsKK+eZvem3uiA+IHNoaXJhc2FnaVwgOwor6Ya15Ye6ID4ga3lvc2h1dHN1XCA7Civnm7TovYQgPiBjaG9ra2F0c3VcIDsKK+WNoOW4qyA+IHVyYW5haXNoaVwgOwor55qu6Z20ID4ga2F3YWd1dHN1XCA7CivmgKXliIcgPiBreXV1c2V0c3VcIDsKK+mFieW5tCA+IHRvcmlkb3NoaVwgOwor55yf6KO4ID4gbWFwcGFkYWthXCA7Civlh7rooYAgPiBzaHVra2V0c3VcIDsKK+eZvemxmiA+IHNoaXJvZ2lzdVwgOwor6YGT562LID4gbWljaGlzdWppXCA7CivpgZPnq68gPiBtaWNoaWJhdGFcIDsKK+WNuOWjsiA+IG9yb3NoaXVyaVwgOwor5b+Y5aSxID4gYm91c2hpdHN1XCA7CivolK3lj6MgPiBrYWdlZ3VjaGlcIDsKK+WNteWkpyA+IHRhbWFnb2RhaVwgOwor5Yid6IqxID4gaGF0c3VoYW5hXCA7CivpgZPnqIsgPiBtaWNoaW5vcmlcIDsKK+eZvemrqiA+IGhha3VoYXRzdVwgOwor56OU5YiRID4gaGFyaXRzdWtlXCA7CivlvabmmJ8gPiBoaWtvYm9zaGlcIDsKK+i+m+i+oyA+IHNoaW5yYXRzdVwgOwor5q2j54mpID4gc2hvdWJ1dHN1XCA7Civlk4HjgIUgPiBzaGluYWppbmFcIDsKK+WHuuiXjSA+IHNodXRzdXJhblwgOwor5bm06IulID4gdG9zaGl3YWthXCA7CivpgIboh6MgPiBneWFrdXNoaW5cIDsKK+W5s+iKnSA+IGhpcmFzaGliYVwgOwor5qiq6Z2iID4geW9rb3RzdXJhXCA7Civnm7Toqq0gPiBjaG9rdWRva3VcIDsKK+WHneihgCA+IGd5b3VrZXRzdVwgOwor6YCD6IWwID4gbmlnZWdvc2hpXCA7Civlv4PlpKogPiB0b2tvcm90ZW5cIDsKK+W/g+WkqSA+IHRva29yb3RlblwgOwor55u06KizID4gY2hva3V5YWt1XCA7CivliJ3ogLMgPiBoYXRzdW1pbWlcIDsKK+eZvembqiA+IGhha3VzZXRzdVwgOwor5Ye66ImyID4gc2h1c3Nob2t1XCA7Civlu4Pnlr4gPiBoYWlzaGl0c3VcIDsKK+WKh+eDiCA+IGdla2lyZXRzdVwgOwor6YCf562GID4gc29rdWhpdHN1XCA7CivmsLTlj6MgPiBtaXp1Z3VjaGlcIDsKK+auuuaIriA+IHNhdHN1cmlrdVwgOwor5b6M5a6kID4ga291c2hpdHN1XCA7Civok4Tlpr4gPiBjaGlrdXNob3VcIDsKK+WHuue+pCA+IHNodXRzdWd1blwgOwor6YCy55m6ID4gc2hpbnBhdHN1XCA7CivojLbooosgPiBjaGFidWt1cm9cIDsKK+WIneepuiA+IGhhdHN1em9yYVwgOwor5qiq6YGTID4geW9rb21pY2hpXCA7CivokL3mnK0gPiByYWt1c2F0c3VcIDsKK+WIruebriA+IGthdHN1bW9rdVwgOwor55m96YWSID4gc2hpcm96YWtlXCA7Civli5jmiYAgPiBrYW5kb2tvcm9cIDsKK+i/veeqgSA+IHRzdWl0b3RzdVwgOwor5byP5pyNID4gc2hpa2lmdWt1XCA7CivljZTlipsgPiBreW91cnlva3VcIDsKK+efs+aMgSA+IGlzaGltb2NoaVwgOwor6JC95pelID4gcmFrdWppdHN1XCA7CivpgLjniakgPiBpY2hpbW90c3VcIDsKK+ebtOiFuCA+IGNob2t1Y2hvdVwgOwor5q205pelID4gcmVraWppdHN1XCA7CivpgLLniakgPiBzaGlubW90c3VcIDsKK+WHuueriyA+IHNodXR0YXRzdVwgOwor55yf562GID4gc2hpbnBpdHN1XCA7CivmraPmnIggPiBzaG91Z2F0c3VcIDsKK+WHnee4riA+IGd5b3VzaHVrdVwgOwor552A55uuID4gY2hha3Vtb2t1XCA7Civlha3orZggPiByb2t1c2hpa2lcIDsKK+WHnee1kCA+IGd5b3VrZXRzdVwgOwor55y855a+ID4gZ2Fuc2hpdHN1XCA7CivmrYzmnpUgPiB1dGFtYWt1cmFcIDsKK++8uOe3miA+IGVra3VzdXNlblwgOwor55+l5oKJID4gY2hpc2hpdHN1XCA7CivliKXniakgPiBiZXRzdW1vbm9cIDsKK+ebtOe1kCA+IGNob2trZXRzdVwgOwor5Yed56uLID4gZ3lvdXJpdHN1XCA7CivluLjnr4AgPiB0b2tvYnVzaGlcIDsKK+aomeitmCA+IGh5b3VzaGlraVwgOwor5b6M5Ye6ID4ga291c2h1dHN1XCA7CivliJ3niakgPiBoYXRzdW1vbm9cIDsKK+iKsemBkyA+IGhhbmFtaWNoaVwgOwor5Ye655m6ID4gc2h1cHBhdHN1XCA7CivljJflj6MgPiBraXRhZ3VjaGlcIDsKK+W5tOeOiSA+IHRvc2hpZGFtYVwgOwor5qmZ6ImyID4gZGFpZGFpaXJvXCA7Civnn6nlt64gPiBrYW5lemFzaGlcIDsKK+WNg+S4hyA+IGNoaXlvcm96dVwgOwor5byT5bymID4geXVtaWR6dXJ1XCA7Civnm7LnqbQgPiBtZWt1cmFhbmFcIDsKK+iNieeukiA+IGt1c2Fib3VraVwgOwor5Ye654++ID4gc2h1dHN1Z2VuXCA7Civlh53nnYAgPiBneW91Y2hha3VcIDsKK+WKo+W8sSA+IHJldHN1amFrdVwgOwor55yf546HID4gc2hpbnNvdHN1XCA7Civoi6bomasgPiBuaWdhbXVzaGlcIDsKK+api+iEmiA+IGt5b3VreWFrdVwgOwor5bem6IWVID4gaGlkYXJpdWRlXCA7Civpq5jpvL4gPiB0YWthaWJpa2lcIDsKK+ecn+eJqSA+IHNoaW5idXRzdVwgOwor5byU5a6iID4gY2hvdWt5YWt1XCA7Civnmb7olqwgPiBoeWFrdXlha3VcIDsKK+iMtuetkiA+IGNoYWR6dXRzdVwgOwor5byf5aiYID4gb3RvbXVzdW1lXCA7CivnnIHnlaUgPiBzaG91cnlha3VcIDsKK+mAhua1gSA+IGd5YWt1cnl1dVwgOwor5q2M5b+DID4gdXRhZ29rb3JvXCA7CivpgLHmnKsgPiBzaHV1bWF0c3VcIDsKK+edgOawtyA+IGNoYWt1aHlvdVwgOwor55m96I+KID4gc2hpcmFnaWt1XCA7CivlubTms6IgPiB0b3NoaW5hbWlcIDsKK+ato+WupCA+IHNlaXNoaXRzdVwgOwor6I+K5pyIID4ga2lrdWR6dWtpXCA7CivliKXmpa0gPiBiZXRzdWd5b3VcIDsKK+W5tOavjiA+IHRvc2hpZ290b1wgOwor6YCx5pelID4gc2h1dWppdHN1XCA7CivoirHooZcgPiBoYW5hbWFjaGlcIDsKK+W3nee4gSA+IGthd2FidWNoaVwgOwor5b2i5LujID4ga2F0YXNoaXJvXCA7Civnmb3oibIgPiBoYWt1c2hva3VcIDsKK+WIpeajnyA+IGJldHN1bXVuZVwgOwor5YaK56uLID4gc2FrdXJpdHN1XCA7Civls7bpoqggPiBzaGltYWthemVcIDsKK+W8seWNkiA+IGpha3Vzb3RzdVwgOwor5YOV6YGUID4gYm9rdXRhY2hpXCA7Civpq63pnaIgPiBoaWdlZHp1cmFcIDsKK+W8teWKmyA+IGNob3VyeW9rdVwgOwor6Luf6LOqID4gbmFuc2hpdHN1XCA7Civoj7HlvaIgPiBoaXNoaWdhdGFcIDsKK+mAsuaNlyA+IHNoaW5jaG9rdVwgOwor5YO76KqsID4gaGVraXNldHN1XCA7CivojLbnlZEgPiBjaGFiYXRha2VcIDsKK+aoque2sSA+IHlva29kenVuYVwgOwor5YWO6ICzID4gdXNhZ2ltaW1pXCA7Civlh7rmrKAgPiBzaHVra2V0c3VcIDsKK+WztumZsCA+IHNoaW1ha2FnZVwgOwor55+i5Y2wID4geWFqaXJ1c2hpXCA7CivnnYDmnI0gPiBjaGFrdWZ1a3VcIDsKK+W7uuWdqiA+IHRhdGV0c3Vib1wgOwor5Ymv5bC6ID4gZnVrdXNoYWt1XCA7CivliJ3mmKUgPiBoYXRzdWhhcnVcIDsKK+WFseeriyA+IGt5b3VyaXRzdVwgOwor6Iqx6I+xID4gaGFuYWJpc2hpXCA7Civlu7blnaogPiBub2JldHN1Ym9cIDsKK+altemHjyA+IGt5b2t1cnlvdVwgOwor6Imv6K2YID4gcnlvdXNoaWtpXCA7CivlvJ/liIYgPiBvdG91dG9idW5cIDsKK+iJsuiqvyA+IHNoaWtpY2hvdVwgOwor6bO25Y+jID4gdG9iaWd1Y2hpXCA7Civlhavnpo8gPiBoYWNoaWZ1a3VcIDsKK+iJsuimmiA+IHNoaWtpa2FrdVwgOwor55+z5LuPID4gc2VraWJ1dHN1XCA7CivmrbPlh7ogPiBzYWlzaHV0c3VcIDsKK+ebtOa1gSA+IGNob2t1cnl1dVwgOwor6IqN6JasID4gc2hha3V5YWt1XCA7Civlh7rmnK0gPiBzaHVzc2F0c3VcIDsKK+WJsuWilyA+IHdhcmltYXNoaVwgOwor6Iqd6I2JID4gc2hpYmFrdXNhXCA7CivnnJ/mnbEgPiBtYWhpZ2FzaGlcIDsKK+aouOebtCA+IGJva3VjaG9rdVwgOwor5Yml5aWqID4gaGFrdWRhdHN1XCA7CivluZXmnKsgPiBiYWt1bWF0c3VcIDsKK+akjumqqCA+IHRzdWlrb3RzdVwgOwor5q2j5Ye6ID4gc2Vpc2h1dHN1XCA7Civlh7bml6UgPiBreW91aml0c3VcIDsKK+mBiuWksSA+IHl1dXNoaXRzdVwgOwor6LuK6J2mID4ga3VydW1hZWJpXCA7CivliJ3lvbkgPiBoYXRzdXlha3VcIDsKK+mBuOWHuiA+IHNlbnNodXRzdVwgOwor6YCG5b+DID4gZ3lha3VzaGluXCA7Civov6vmjIEgPiBzZXJpbW9jaGlcIDsKK+edgOW6iiA+IGNoYWt1c2hvdVwgOwor5bm05byxID4gdG9zaGl5b3dhXCA7CivlsbHptokgPiB5YW1hdXp1cmFcIDsKK++8t+adryA+IGRhYnVydWhhaVwgOwor552A5bitID4gY2hha3VzZWtpXCA7CivovrvmnK0gPiB0c3VqaWZ1ZGFcIDsKK+mBqeWIhyA+IHRla2lzZXRzdVwgOwor55m655eFID4gaGF0c3VieW91XCA7Civnl4XorZggPiBieW91c2hpa2lcIDsKK+WJteWHuiA+IHNvdXNodXRzdVwgOwor5Yil5a6kID4gYmVzc2hpdHN1XCA7CivlubTltakgPiB0b3NoaWthc2FcIDsKK+WIneWtqyA+IGhhdHN1bWFnb1wgOwor5Ye65b6hID4gc2h1dHN1Z3lvXCA7Civlub3lrqQgPiB5dXVzaGl0c3VcIDsKK+eZveeOiSA+IHNoaXJhdGFtYVwgOwor55u05pKDID4gY2hva3VnZWtpXCA7CivlubTlr4QgPiB0b3NoaXlvcmlcIDsKK+amjuiMuCA+IGVub2tpdGFrZVwgOwor6Ii56JmrID4gZnVuYW11c2hpXCA7Civnmb3nhrEgPiBoYWt1bmV0c3VcIDsKK+alteiWhCA+IGt5b2t1aGFrdVwgOwor55m954aKID4gc2hpcm9rdW1hXCA7CivluIbmn7EgPiBob2Jhc2hpcmFcIDsKK+WJsuS7mCA+IHdhcml0c3VrZVwgOwor5Yid5aSiID4gaGF0c3V5dW1lXCA7CivliIblrqQgPiBidW5zaGl0c3VcIDsKK+W6tuWHuiA+IHNob3NodXRzdVwgOwor5YWl5ruFID4gbnl1dW1ldHN1XCA7CivlibLkuIsgPiB3YXJpc2hpdGFcIDsKK+W4guadviA+IGljaGltYXRzdVwgOwor5YSq55S3ID4geWFzYW90b2tvXCA7CivoirHnlLogPiBoYW5hbWFjaGlcIDsKK+i9ouauuiA+IHJla2lzYXRzdVwgOwor55mI55a+ID4gaGFpc2hpdHN1XCA7CivnnJ/lrp8gPiBzaGluaml0c3VcIDsKK+eZvea7nSA+IHNoaXJhdGFraVwgOwor6YCf5Y+jID4gaGF5YWt1Y2hpXCA7CivpgLLlhaUgPiBzaGluJydueXV1XCA7CivlhLLniakgPiBtb3VrZW1vbm9cIDsKK+iFsOmrmCA+IGtvc2hpZGFrYVwgOwor5qmL5qGBID4gaGFzaGlnZXRhXCA7Civpqqjos6ogPiBrb3NzaGl0c3VcIDsKK+iFsOmqqCA+IGtvc2hpYm9uZVwgOwor5L+u6aO+ID4gc2h1dXNob2t1XCA7Civnmb3mtaogPiBzaGlyYW5hbWlcIDsKK+eZvea1nCA+IHNoaXJhaGFtYVwgOwor6Im256iuID4gdHN1eWFkYW5lXCA7CivpgJ/lipsgPiBzb2t1cnlva3VcIDsKK+i+u+W6lyA+IHRzdWppbWlzZVwgOwor55m95rOiID4gc2hpcmFuYW1pXCA7CivojLbmiYAgPiBjaGFkb2tvcm9cIDsKK+W6g+WPoyA+IGhpcm9rdWNoaVwgOwor5bC66aqoID4gc2hha2tvdHN1XCA7Civlh7rloYEgPiBzaHV0c3VydWlcIDsKK+ebruW6hyA+IG1hYmlzYXNoaVwgOwor55m95rC0ID4gc2hpcm9taXp1XCA7CivoibLnpZ4gPiBzaGlraXNoaW5cIDsKK+WFpeakjSA+IG55dXVzaG9rdVwgOwor55u05bGeID4gY2hva3V6b2t1XCA7CivliJ3lh7ogPiBzaG9zaHV0c3VcIDsKK+WHoeWksSA+IGJvbnNoaXRzdVwgOwor5YWt5pyIID4gcm9rdWdhdHN1XCA7CivlhaXmnK0gPiBueXV1c2F0c3VcIDsKK+mAgeWHuiA+IHNvdXNodXRzdVwgOwor5bGx6YGTID4geWFtYW1pY2hpXCA7CivpgIDlh7ogPiB0YWlzaHV0c3VcIDsKK+alveevgCA+IGdha3VzZXRzdVwgOwor5bi45aSPID4gdG9rb25hdHN1XCA7CivnlLPpgZQgPiBzaGludGF0c3VcIDsKK+iLpeadviA+IHdha2FtYXRzdVwgOwor5bGA6ZW3ID4ga3lva3VjaG91XCA7CivprLznk6YgPiBvbmlnYXdhcmFcIDsKK+W4neWupCA+IHRlaXNoaXRzdVwgOwor5bqK5LiLID4geXVrYXNoaXRhXCA7CivnnYDkv6EgPiBjaGFrdXNoaW5cIDsKK+eZveacrSA+IHNoaXJvZnVkYVwgOwor5YiH5YWlID4gc2V0c3VueXV1XCA7CivmqJnmnK0gPiBoeW91c2F0c3VcIDsKK+WHuuWLlSA+IHNodXRzdWRvdVwgOwor6L+r5YqbID4gaGFrdXJ5b2t1XCA7CivlsZHpiYQgPiBrdXp1dGV0c3VcIDsKK+mrque2sSA+IGthbWlkenVuYVwgOwor6YCQ5LiAID4gY2hpa3VpY2hpXCA7CivkvrXpo58gPiBzaGluc2hva3VcIDsKK+iKseawtyA+IGhhbmFnb29yaVwgOwor5L+E6ZuoID4gbml3YWthYW1lXCA7CivohqDos6ogPiBrb3VzaGl0c3VcIDsKK+iMtuWupCA+IGNoYXNoaXRzdVwgOwor55m95pelID4gaGFrdWppdHN1XCA7CivkvqDpqqggPiBreW91a290c3VcIDsKK+WwkemjnyA+IHNob3VzaG9rdVwgOwor5bez5bm0ID4gaGViaWRvc2hpXCA7CivoibbniakgPiB0c3V5YW1vbm9cIDsKK+Wwj+mjnyA+IHNob3VzaG9rdVwgOwor5Ya35aW0ID4gaGl5YXlha2tvXCA7CivlsI/poK0gPiBrb2dhc2hpcmFcIDsKK+WxiOi+sSA+IGt1dHN1am9rdVwgOwor6aqo6IacID4ga290c3VtYWt1XCA7CivnlLrop5IgPiBtYWNoaWthZG9cIDsKK+i+u+WQmyA+IHRzdWppZ2ltaVwgOwor55yB5YqbID4gc2hvdXJ5b2t1XCA7Civpr4nluZ8gPiBrb2lub2JvcmlcIDsKK+i1pOmwryA+IGFrYWl3YXNoaVwgOwor6aqo6IKJID4ga290c3VuaWt1XCA7CivlhoXlrqQgPiBuYWlzaGl0c3VcIDsKK+W3neWyuCA+IGthd2FnaXNoaVwgOwor5bmV5LiLID4gbWFrdXNoaXRhXCA7Civnm67ljbAgPiBtZWppcnVzaGlcIDsKK+Wwu+i7vSA+IHNoaXJpZ2FydVwgOwor55S36KGGID4gb3Rva29zaHV1XCA7CivpsJDlj6MgPiB3YW5pZ3VjaGlcIDsKK+S/oei2iiA+IHNoaW4nJ2V0c3VcIDsKK+S/iumAuCA+IHNodW4nJ2l0c3VcIDsKK+WxnuiolyA+IHNob2t1dGFrdVwgOwor55uy5YikID4gbWVrdXJhYmFuXCA7Civog7jpqqggPiBreW91a290c3VcIDsKK+WvnemjnyA+IHNoaW5zaG9rdVwgOwor6Imy5rKiID4gc2hpa2l0YWt1XCA7Civlha3lsLogPiByb2t1c2hha3VcIDsKK+i+m+WPoyA+IGthcmFrdWNoaVwgOwor6Imy5qyyID4gc2hpa2l5b2t1XCA7CivmpbXnhrEgPiBnb2t1bmV0c3VcIDsKK+i3s+iZqyA+IHRvYmltdXNoaVwgOwor55eb54OIID4gdHN1dXJldHN1XCA7Civoh6Pnr4AgPiBzaGluc2V0c3VcIDsKK+mqqOeusSA+IGtvdHN1YmFrb1wgOwor55qH5a6kID4ga291c2hpdHN1XCA7Civkv5foqqwgPiB6b2t1c2V0c3VcIDsKK+WEsuW9uSA+IG1vdWtleWFrdVwgOwor5L6b6L+wID4ga3lvdWp1dHN1XCA7Civls7vng4ggPiBzaHVucmV0c3VcIDsKK+eUt+iFuSA+IG90b2tvYmFyYVwgOwor5qW15rWBID4ga3lva3VyeXV1XCA7CivnlaXnq6AgPiByeWFrdXNob3VcIDsKK+WGjeWHuiA+IHNhaXNodXRzdVwgOwor5bed5Y+jID4ga2F3YWd1Y2hpXCA7Civoia/ml6UgPiByeW91aml0c3VcIDsKK+eVpeensCA+IHJ5YWt1c2hvdVwgOwor5bem5YmNID4gaGlkYXJpbWFlXCA7Civlr77os6ogPiB0YWlzaGl0c3VcIDsKK+Wwj+iqrCA+IHNob3VzZXRzdVwgOwor5bem5YWaID4gaGlkYXJpdG91XCA7CivohIfpgZMgPiB3YWtpbWljaGlcIDsKK+ajueenpCA+IHNhb2Jha2FyaVwgOwor5qGc6LKdID4gc2FrdXJhZ2FpXCA7Civnl4XmsqEgPiBieW91Ym90c3VcIDsKK+WFseWKmyA+IGt5b3VyeW9rdVwgOwor6Ii55qmLID4gZnVuYWJhc2hpXCA7Civpq6rmsrkgPiBrYW1pYWJ1cmFcIDsKK+eXheatvyA+IGJ5b3Vib3RzdVwgOwor5L616J2VID4gc2hpbnNob2t1XCA7Civnl4XmrKAgPiBieW91a2V0c3VcIDsKK+WFq+WIhyA+IHlhdHN1Z2lyaVwgOwor5YWl5YqbID4gbnl1dXJ5b2t1XCA7CivnlLrnrYsgPiBtYWNoaXN1amlcIDsKK+iJsuaFviA+IHNoaWtpeW9rdVwgOwor6ISC6LazID4gYWJ1cmFhc2hpXCA7CivnlLrnq4sgPiBjaG91cml0c3VcIDsKK+iEmuiouyA+IGt5YWt1Y2h1dVwgOwor5qW15pyIID4gZ29rdWdldHN1XCA7CivohILos6ogPiBzaGlzaGl0c3VcIDsKK+iIn+apiyA+IGZ1bmFoYXNoaVwgOwor5L6b6KGAID4ga3lvdWtldHN1XCA7Civlt53kuIsgPiBrYXdhc2hpbW9cIDsKK+Wun+mMsiA+IGppdHN1cm9rdVwgOwor55Wc55SfID4gY2hpa3VzaG91XCA7CivoibLlvLEgPiBzaGlraWpha3VcIDsKK+eZuuWHuiA+IGhhc3NodXRzdVwgOwor6IWw57iEID4ga29zaGluYXdhXCA7CivnlJ/nr4AgPiBuYW1hYnVzaGlcIDsKK+WwseiBtyA+IHNodXVzaG9rdVwgOwor6Laz6IWwID4gYXNoaWtvc2hpXCA7CivlhaXku48gPiBueXV1YnV0c3VcIDsKK+WFpeS6pCA+IGlyaW1hamlyaVwgOwor6IWw57SQID4ga29zaGloaW1vXCA7Civkv67nr4kgPiBzaHV1Y2hpa3VcIDsKK+iCiemjnyA+IG5pa3VzaG9rdVwgOwor5L+h57SEID4gc2hpbicneWFrdVwgOwor6ISx6JC9ID4gZGF0c3VyYWt1XCA7CivkvZPos6ogPiB0YWlzaGl0c3VcIDsKK+i8qeWHuiA+IGhhaXNodXRzdVwgOwor5L+u56WTID4gc2h1dWZ1dHN1XCA7CivlrabplqUgPiBnYWt1YmF0c3VcIDsKK+S9jeiyoCA+IGt1cmFpbWFrZVwgOwor6IuX5LujID4gbmF3YXNoaXJvXCA7CivlsbHnlLcgPiB5YW1hb3Rva29cIDsKK+ahnOiNiSA+IHNha3VyYXNvdVwgOwor5a6i6LazID4ga3lha3Vhc2hpXCA7CivlsZ7nm64gPiBzaG9rdW1va3VcIDsKK+S/l+ethiA+IHpva3VoaXRzdVwgOwor5bCP6IG3ID4gc2hvdXNob2t1XCA7CivlhJ/ljbQgPiBzaG91a3lha3VcIDsKK+alveW+iyA+IGdha3VyaXRzdVwgOwor5qGc6ImyID4gc2FrdXJhaXJvXCA7CivlsI/nvoogPiBrb2hpdHN1amlcIDsKK+Wun+izqiA+IGppc3NoaXRzdVwgOwor6IKY6YmEID4gaGlqaXRldHN1XCA7Civos4PppIUgPiBjaGlubW9jaGlcIDsKK+WuneiynSA+IHRha2FyYWdhaVwgOwor6Lu95Y+jID4ga2FydWt1Y2hpXCA7CivotoXohLEgPiBjaG91ZGF0c3VcIDsKK+eUt+eJqSA+IG90b2tvbW9ub1wgOwor6IG36ZW3ID4gc2hva3VjaG91XCA7Civku4/poZQgPiBob3Rva2VnYW9cIDsKK+S7j+mgmCA+IGZ1dHN1cnlvdVwgOwor55Wl5q20ID4gcnlha3VyZWtpXCA7Civpqqjmn4QgPiBrb3RzdWdhcmFcIDsKK+i1pOiJsiA+IHNla2lzaG9rdVwgOwor5bCP56+AID4gc2hvdXNldHN1XCA7CivlsLvnmZYgPiBzaGlyaWt1c2VcIDsKK+iGoOa8hiA+IGtvdXNoaXRzdVwgOwor5bO25b2xID4gc2hpbWFrYWdlXCA7CivmpbXlsI8gPiBreW9rdXNob3VcIDsKK+S/teeJqSA+IGh5b3Vtb3RzdVwgOwor55Sf54iqID4gbmFtYWR6dW1lXCA7Civmnb7poqggPiBtYXRzdWthemVcIDsKK+i2hee1tiA+IGNob3V6ZXRzdVwgOwor6Ii55a6kID4gc2Vuc2hpdHN1XCA7CivohbrnhrEgPiBzZW4nJ25ldHN1XCA7CivmnZ/pq6ogPiBzb2t1aGF0c3VcIDsKK+i7ouWHuiA+IHRlbnNodXRzdVwgOwor6ISp56u5ID4gc2h1dWNoaWt1XCA7Civls7bls7YgPiBzaGltYWppbWFcIDsKK+eVpeacjSA+IHJ5YWt1ZnVrdVwgOwor5bO25bGxID4gc2hpbWF5YW1hXCA7CivprLHli4MgPiB1dHN1Ym90c3VcIDsKK+adsembsiA+IHNoaW5vbm9tZVwgOwor55Sf5ruFID4gc2hvdW1ldHN1XCA7Civkv5fniakgPiB6b2t1YnV0c3VcIDsKK+iEseehqyA+IGRhdHN1cnl1dVwgOwor6ISI57WhID4gbXlha3VyYWt1XCA7CivlraborZggPiBnYWt1c2hpa2lcIDsKK+S+teeVpSA+IHNoaW5yeWFrdVwgOwor5a2m6KqsID4gZ2FrdXNldHN1XCA7CivogbfosqwgPiBzaG9rdXNla2lcIDsKK+iJtuS6iyA+IHRzdXlhZ290b1wgOwor546J6bSrID4gdGFtYXNoaWdpXCA7Civnk6bniYggPiBrYXdhcmFiYW5cIDsKK+WCt+WPoyA+IGtpenVndWNoaVwgOwor5a+G57SEID4gbWl0c3V5YWt1XCA7CivlrabooZMgPiBnYWt1anV0c3VcIDsKK+i7kuS4iyA+IG5va2lzaGl0YVwgOwor6LuK5LujID4ga3VydW1hZGFpXCA7CivlgJ/mlpkgPiBzaGFrdXJ5b3VcIDsKK+izh+izqiA+IHNoaXNoaXRzdVwgOwor5Lq66YGUID4gaGl0b3RhY2hpXCA7CivlgJnmlocgPiBzb3Vyb3VidW5cIDsKK+WvuueUtyA+IHRlcmFvdG9rb1wgOwor5qW15YyXID4ga3lva3Vob2t1XCA7CivohLHnjYQgPiBkYXRzdWdva3VcIDsKK+eUuuaWuSA+IG1hY2hpa2F0YVwgOwor55eb5YiHID4gdHN1dXNldHN1XCA7Civpq5jlnY8gPiB0YWthdHN1a2lcIDsKK+iyuOizgyA+IGthc2hpY2hpblwgOwor5YCJ5pW3ID4ga3VyYXNoaWtpXCA7CivkuZ7po58gPiBrb3RzdWppa2lcIDsKK+S8uOe4riA+IHNoaW5zaHVrdVwgOwor5Lq66LOqID4gaGl0b2ppY2hpXCA7CivmnJ3po58gPiBjaG91c2hva3VcIDsKK+eWteWPoyA+IGtpenVndWNoaVwgOwor5bO75YilID4gc2h1bmJldHN1XCA7CivlsYrmm7ggPiB0b2Rva2VzaG9cIDsKK+WuouetiyA+IGt5YWt1c3VqaVwgOwor5pyN6aO+ID4gZnVrdXNob2t1XCA7CivlgpHlh7ogPiBrZXNzaHV0c3VcIDsKK+S8keiBtyA+IGt5dXVzaG9rdVwgOwor55Sy5omAID4ga2FuZG9rb3JvXCA7CivkuozpgZMgPiBmdXRhbWljaGlcIDsKK+iIueS4uyA+IGZ1bmFudXNoaVwgOwor6aOf6YCaID4gc2hva3V0c3V1XCA7CivlrqLnqK4gPiBreWFrdWRhbmVcIDsKK+iziuiZkCA+IHpva3VneWFrdVwgOwor5Lmz6YmiID4gbnl1dWJhY2hpXCA7CivmnIjpoY0gPiBnZXRzdWdha3VcIDsKK+aciOmggyA+IHRzdWtpZ29yb1wgOwor5L2c55S3ID4gc2FrdW90b2tvXCA7CivnlLflvbkgPiBvdG9rb3lha3VcIDsKK+S4ium2siA+IGpvdWJpdGFraVwgOwor6IWV5p6VID4gdWRlbWFrdXJhXCA7CivotaTnhrEgPiBzZWtpbmV0c3VcIDsKK+iIjOWFiCA+IHNoaXRhc2FraVwgOwor6IW55oyBID4gaGFyYW1vY2hpXCA7Civnj43oqqwgPiBjaGluc2V0c3VcIDsKK+S7mOiQvSA+IHRzdWtlb2NoaVwgOwor6IWw5o6bID4ga29zaGlrYWtlXCA7CivkuYXpl4ogPiBreXV1a2F0c3VcIDsKK+WvhueMnyA+IG1pdHN1cnlvdVwgOwor55Sz5bm0ID4gc2FydWRvc2hpXCA7CivmnZDos6ogPiB6YWlzaGl0c3VcIDsKK+advuidiSA+IG1hdHN1emVtaVwgOwor5Lqs6KGoID4ga3lvdW9tb3RlXCA7CivohJrms6ggPiBreWFrdWNodXVcIDsKK+aiheaapiA+IHVtZWdveW9taVwgOwor5L2c54mpID4gc2FrdW1vdHN1XCA7Civos57nvbAgPiBzaG91YmF0c3VcIDsKK+WtkOe+iiA+IGtvaGl0c3VqaVwgOwor5a6k55S6ID4gbXVyb21hY2hpXCA7CivlsI/mm7IgPiBzaG91a3lva3VcIDsKK+aknOWHuiA+IGtlbnNodXRzdVwgOwor5L+K5oqcID4gc2h1bmJhdHN1XCA7Civlr4bmvIEgPiBtaXRzdXJ5b3VcIDsKK+iCieethiA+IG5pa3VoaXRzdVwgOwor6IWw5byxID4ga29zaGl5b3dhXCA7Civog4bnjokgPiBraW1vdHRhbWFcIDsKK+advuiMuCA+IG1hdHN1dGFrZVwgOwor5qGc5qGDID4gc2FrdXJhbmJvXCA7Civlr4Lmu4UgPiBqYWt1bWV0c3VcIDsKK+acrOizqiA+IGhvbnNoaXRzdVwgOwor5LuU576KID4ga29oaXRzdWppXCA7CivnlKPlrqQgPiBzYW5zaGl0c3VcIDsKK+iFsOW4gyA+IGtvc2hpbnVub1wgOwor6IWw5be7ID4ga29zaGltYWtpXCA7CivkvYPnha4gPiB0c3VrdWRhbmlcIDsKK+S+teaOoCA+IHNoaW5yeWFrdVwgOwor5qGB5qmLID4ga2V0YWJhc2hpXCA7CivmnLToqKUgPiBib2t1dG90c3VcIDsKK+mjn+iZqyA+IHNob2t1Y2h1dVwgOwor5p2+6ISCID4gbWF0c3V5YW5pXCA7CivkuIPpm6MgPiBzaGljaGluYW5cIDsKK+S9jua5vyA+IHRlaXNoaXRzdVwgOwor55S35Z2CID4gb3Rva296YWthXCA7Civlrr/ms4ogPiBzaHVrdWhha3VcIDsKK+S8r+eItSA+IGhha3VzaGFrdVwgOwor5qKT5byTID4gYXp1c2F5dW1pXCA7CivppIXogowgPiBtb2NoaWhhZGFcIDsKK+WxheWupCA+IGt5b3NoaXRzdVwgOwor5pyo6KilID4gYm9rdXRvdHN1XCA7CivpoY3pmpsgPiBoaXRhaWdpd2FcIDsKK+eVmeWIpSA+IHJ5dXViZXRzdVwgOwor5L+h5a6fID4gc2hpbmppdHN1XCA7CivotIjniakgPiBva3VyaW1vbm9cIDsKK+mnkOaXpSA+IGNodXVuaWNoaVwgOwor5p+/5riLID4ga2FraXNoaWJ1XCA7CivkuIvph5EgPiBzaGl0YWdhbmVcIDsKK+S4rei2iiA+IGNodXVnb3NoaVwgOwor5aqS6LOqID4gYmFpc2hpdHN1XCA7Civkub7ojYkgPiBob3NoaWd1c2FcIDsKK+eQtOeIqiA+IGtvdG9kenVtZVwgOwor6IWw5Z6jID4ga29zaGlnYWtpXCA7Civkv4LlrpggPiBrYWthcmlrYW5cIDsKK+iEiOaQjyA+IG15YWt1aGFrdVwgOwor546J6JmrID4gdGFtYW11c2hpXCA7CivnlJ/llL4gPiBuYW1hdHN1YmFcIDsKK+mjn+iCiSA+IHNob2t1bmlrdVwgOwor5p2+56ygID4gbWF0c3VrYXNhXCA7CivohIjmi40gPiBteWFrdWhha3VcIDsKK+S4g+mBkyA+IHNoaWNoaWRvdVwgOwor55Sz5YWlID4gbW91c2hpaXJlXCA7CivlrqLmp5ggPiBreWFrdXNhbWFcIDsKK+S5s+iJsiA+IG55dXVzaG9rdVwgOwor5puy6Kq/ID4ga3lva3VjaG91XCA7CivlgJ/kuLsgPiBrYXJpbnVzaGlcIDsKK+S5vuiCiSA+IGhvc2hpbmlrdVwgOwor5a6/5paZID4gc2h1a3VyeW91XCA7Civlrp/mpa0gPiBqaXRzdWd5b3VcIDsKK+Wuv+aVtSA+IHNodWt1dGVraVwgOwor5LiD6LyqID4gc2hpY2hpcmluXCA7CivnlKPlh7ogPiBzYW5zaHV0c3VcIDsKK+S9leaXpSA+IG5hbicnbmljaGlcIDsKK+izqueCuSA+IHNoaXRzdXRlblwgOwor6ISz5a6kID4gbm91c2hpdHN1XCA7CivlsbHkvI8gPiB5YW1hYnVzaGlcIDsKK+Wun+agqiA+IGppdHN1a2FidVwgOwor5L615aWqID4gc2hpbmRhdHN1XCA7CivnlLrkuK0gPiBtYWNoaW5ha2FcIDsKK+eUuuS4piA+IG1hY2hpbmFtaVwgOwor5LiK6LOqID4gam91c2hpdHN1XCA7CivkuIvosrwgPiBzaGl0YWJhcmlcIDsKK+mjn+e0hSA+IHNob2t1YmVuaVwgOwor5L6g5a6iID4ga3lvdWt5YWt1XCA7Civmm7TooaMgPiBrb3JvbW9nYWVcIDsKK+mjn+ezpyA+IHNob2t1cnlvdVwgOwor5Lit6KGoID4gbmFrYW9tb3RlXCA7CivlsI/lp5EgPiBrb2p1dXRvbWVcIDsKK+agg+acqCA+IHRvY2hpbm9raVwgOwor6ISC5oCnID4gYWJ1cmFzaG91XCA7CivlgInkuLsgPiBrdXJhbnVzaGlcIDsKK+S4g+izoiA+IHNoaWNoaWtlblwgOwor5bC75Y+WID4gc2hpcml0b3JpXCA7CivmoLzlvI8gPiBrYWt1c2hpa2lcIDsKK+aYvOmztiA+IGhpcnV0b25iaVwgOwor5Lqu55u0ID4gcnlvdWNob2t1XCA7CivmmqLpgZQgPiBjaG91dGF0c3VcIDsKK+iFsOWFgyA+IGtvc2hpbW90b1wgOwor6ISH5beuID4gd2FraXphc2hpXCA7CivmnYnnrrggPiBzdWdpYmFzaGlcIDsKK+S7mOeEvCA+IHRzdWtleWFraVwgOwor5a2m5q6WID4gZ2FrdXNob2t1XCA7CivmoKrlvI8gPiBrYWJ1c2hpa2lcIDsKK+afj+anmSA+IGJ5YWt1c2hpblwgOwor54us6YWMID4gZG9rdXNoYWt1XCA7Civlr4XlubQgPiB0b3JhZG9zaGlcIDsKK+izquaoqSA+IHNoaWNoaWtlblwgOwor5bCP5ZKEID4ga29iYW5hc2hpXCA7CivkuLjohbAgPiBtYXJ1Z29zaGlcIDsKK+aYvOmjryA+IGhpcnVtZXNoaVwgOwor5LyQ5pyoID4gYmF0c3Vib2t1XCA7Civkv4rlgpEgPiBzaHVua2V0c3VcIDsKK+iBt+attCA+IHNob2t1cmVraVwgOwor5LmL57meID4gc2hpbicnbnl1dVwgOwor5p625qmLID4ga2FrZWhhc2hpXCA7Civmn4/mnKggPiBrYXNoaXdhZ2lcIDsKK+S7ruapiyA+IGthcmliYXNoaVwgOwor6LGG57KSID4gbWFtZXRzdWJ1XCA7CivkvJHml6UgPiBreXV1aml0c3VcIDsKK+S4reiFsCA+IGNodXVnb3NoaVwgOwor5LiK6JasID4gdXdhZ3VzdXJpXCA7Civlr4blrqQgPiBtaXNzaGl0c3VcIDsKK+eOieeroCA+IGd5b2t1c2hvdVwgOwor5L615YWlID4gc2hpbicnbnl1dVwgOwor5a6/5bCGID4gc2h1a3VzaG91XCA7CivlsIbljZIgPiBzaG91c290c3VcIDsKK+S4oeiIjCA+IHJ5b3V6ZXRzdVwgOwor6IG35qWtID4gc2hva3VneW91XCA7CivlsI7lh7ogPiBkb3VzaHV0c3VcIDsKK+Wuv+WtpiA+IHNodWt1Z2FrdVwgOwor5bCP5YaKID4gc2hvdXNhdHN1XCA7CivkuKHohJogPiByeW91a3lha3VcIDsKK+iEseWHuiA+IGRhc3NodXRzdVwgOwor5a6i5bitID4ga3lha3VzZWtpXCA7CivkuIvojYkgPiBzaGl0YWt1c2FcIDsKK+WwhOWHuiA+IHNoYXNodXRzdVwgOwor5pqm6KGTID4gcmVraWp1dHN1XCA7CivmnLTnm7QgPiBib2t1Y2hva3VcIDsKK+i1pOWcnyA+IGFrYXRzdWNoaVwgOwor6ISF5ZadID4ga3lvdWthdHN1XCA7CivkuK3ntbYgPiBjaHV1emV0c3VcIDsKK+S4i+iFuSA+IHNoaXRhYmFyYVwgOwor6ISx5L+XID4gZGF0c3V6b2t1XCA7Civmn4/miYsgPiBrYXNoaXdhZGVcIDsKK+S5vueJqSA+IGhvc2hpbW9ub1wgOwor5a6f5a2mID4gaml0c3VnYWt1XCA7CivmoZ/kv7UgPiBzYW5kYXdhcmFcIDsKK+eMn+iJsiA+IHJ5b3VzaG9rdVwgOwor5LiA6ISIID4gaWNoaW15YWt1XCA7CivotaTlj6MgPiBzZWtpZ3VjaGlcIDsKK+S4reeriyA+IGNodXVyaXRzdVwgOwor6IG35o6MID4gc2hva3VzaG91XCA7CivlrqTlpJYgPiBzaGl0c3VnYWlcIDsKK+WvkuWNtSA+IGthbnRhbWFnb1wgOwor5bO244CFID4gc2hpbWFqaW1hXCA7Civos6rmhJ8gPiBzaGl0c3VrYW5cIDsKK+agvOWIpSA+IGtha3ViZXRzdVwgOwor5qC45YqbID4ga2FrdXJ5b2t1XCA7CivkuKHnq68gPiByeW91aGFzaGlcIDsKK+S4oeeriyA+IHJ5b3VyaXRzdVwgOwor6ICQ5rm/ID4gdGFpc2hpdHN1XCA7CivkuIvntJAgPiBzaGl0YWhpbW9cIDsKK+S7iuaXpSA+IGtvbicnbmljaGlcIDsKK+aXqemjryA+IGhheWFtZXNoaVwgOwor6LK45pa5ID4ga2FzaGlrYXRhXCA7Civkub7mub8gPiBrYW5zaGl0c3VcIDsKK+mhjee4gSA+IGdha3VidWNoaVwgOwor5LiA57KSID4gaGl0b3RzdWJ1XCA7Civlq6HmtYEgPiBjaGFrdXJ5dXVcIDsKK+absuebriA+IGt5b2t1bW9rdVwgOwor6aOf5qyyID4gc2hva3V5b2t1XCA7Civmn7TlnqMgPiBzaGliYWdha2lcIDsKK+S6ruaciCA+IHJ5b3VnZXRzdVwgOwor5LiL56m/ID4gc2hpdGFiYWtpXCA7CivkuIDnr4AgPiBoaXRvZnVzaGlcIDsKK+mdqemdtCA+IGthd2FndXRzdVwgOwor5Lit55WlID4gY2h1dXJ5YWt1XCA7CivnirbooosgPiBqb3VidWt1cm9cIDsKK+eJqemHjyA+IGJ1dHN1cnlvdVwgOwor5pyr5rWBID4gbWF0c3VyeXV1XCA7CivmoKrkuLsgPiBrYWJ1bnVzaGlcIDsKK+S4i+efsyA+IHNoaXRhaXNoaVwgOwor6aOv5pmCID4gbWVzaGlkb2tpXCA7CivkvZzku5ggPiBzYWt1ZHp1a2VcIDsKK+S4iueevCA+IHV3YW1hYnV0YVwgOwor5Lyv5Y+UID4gaGFrdXNodWt1XCA7CivniKrpnakgPiB0c3VtYWthd2FcIDsKK+WupOWGhSA+IHNoaXRzdW5haVwgOwor5a6/5Li7ID4geWFkb251c2hpXCA7CivkuYXmv7YgPiBreXV1a2F0c3VcIDsKK+S6jOaciCA+IGZ1dGF0c3VraVwgOwor5pel6YyyID4gbmljaGlyb2t1XCA7CivkuIDnnqUgPiBpY2hpYmV0c3VcIDsKK+S7pOWupCA+IHJlaXNoaXRzdVwgOwor5L2T5LitID4ga2FyYWRhanV1XCA7Civku7Llpb0gPiBuYWtheW9zaGlcIDsKK+mjn+aWmSA+IHNob2t1cnlvdVwgOwor6Kq/6auqID4gY2hvdWhhdHN1XCA7Civnianos6ogPiBidXNzaGl0c3VcIDsKK+aXqemBkyA+IGhheWFtaWNoaVwgOwor5paw6ZuqID4gc2hpbnNldHN1XCA7CivniYfpgZMgPiBrYXRhbWljaGlcIDsKK+eJueiorSA+IHRva3VzZXRzdVwgOwor5LuP5a2mID4gYnV0c3VnYWt1XCA7CivpnLLpnJwgPiB0c3V5dWppbW9cIDsKK+acreadnyA+IHNhdHN1dGFiYVwgOwor5aSP6bOlID4gbmF0c3Vkb3JpXCA7Civos6rllY8gPiBzaGl0c3Vtb25cIDsKK+eLrOeriyA+IGRva3VyaXRzdVwgOwor5pyI5qyhID4gdHN1a2luYW1pXCA7CivorKzoqqwgPiBieXV1c2V0c3VcIDsKK+WtpuWNkiA+IGdha3Vzb3RzdVwgOwor5puy5rWBID4ga3lva3VyeXV1XCA7Civpo5/mhb4gPiBzaG9rdXlva3VcIDsKK+S4gOeJqSA+IGljaGltb3RzdVwgOwor5aW06LypID4geWF0c3ViYXJhXCA7CivlrablipsgPiBnYWt1cnlva3VcIDsKK+S6ruWvnyA+IHJ5b3VzYXRzdVwgOwor5Lit5qyhID4gbmFrYXRzdWdpXCA7Civos6rliLggPiBzaGljaGlrZW5cIDsKK+WtpOWFkCA+IG1pbmFzaGlnb1wgOwor5pen6K2YID4ga3l1dXNoaWtpXCA7CivkurrlprsgPiBoaXRvZHp1bWFcIDsKK+aWsOmHiCA+IHNoaW5zaGFrdVwgOwor5pel6Ku+ID4gbmljaGlkYWt1XCA7Civml6foqqwgPiBreXV1c2V0c3VcIDsKK+iCoeS4iyA+IG1hdGFzaGl0YVwgOwor54+N5a6iID4gY2hpbmt5YWt1XCA7CivlpJbpnaIgPiBzb3RvZHp1cmFcIDsKK+aYpeiJsiA+IHNodW5zaG9rdVwgOwor57+M5pyIID4geW9rdWdldHN1XCA7CivogbTlipsgPiBjaG91cnlva3VcIDsKK+S6rOWlsyA+IGt5b3VvbicnbmFcIDsKK+S4suafvyA+IGt1c2hpZ2FraVwgOwor5Lmd5oqYID4ga3l1dXNldHN1XCA7Civnv4zml6UgPiB5b2t1aml0c3VcIDsKK+aWn+mFjCA+IHNoaW5zaGFrdVwgOwor5Lih5qW1ID4gcnlvdWt5b2t1XCA7Civku4/lkI0gPiBidXRzdW15b3VcIDsKK+eJueiJsiA+IHRva3VzaG9rdVwgOwor5Lqh5aSxID4gYm91c2hpdHN1XCA7Civpo5/lrqIgPiBzaG9ra3lha3VcIDsKK+eItuimqiA+IGNoaWNoaW95YVwgOwor5Luu5L2PID4ga2FyaXp1bWFpXCA7Civkuoblr58gPiByeW91c2F0c3VcIDsKK+mbqumdtCA+IHl1a2lndXRzdVwgOwor54++5Ye6ID4gZ2Vuc2h1dHN1XCA7Civku4/lipsgPiBidXRzdXJpa2lcIDsKK+iqv+mBlCA+IGNob3V0YXRzdVwgOwor5LiL5qeYID4gc2hpbW96YW1hXCA7CivnubDotoogPiBrdXJpa29zaGlcIDsKK+eJqeiFsCA+IG1vbm9nb3NoaVwgOwor5LiJ5qSPID4gbWl0c3VtYXRhXCA7CivkuKHml6UgPiByeW91aml0c3VcIDsKK+advuWOnyA+IG1hdHN1YmFyYVwgOwor6LOD5YCfID4gY2hpbnNoYWt1XCA7Civnhp/po58gPiBqdWt1c2hva3VcIDsKK+aWsOiqrCA+IHNoaW5zZXRzdVwgOwor5LuY5Lq6ID4gdHN1a2ViaXRvXCA7CivmlrDoqLMgPiBzaGluJyd5YWt1XCA7CivmlrDoqK0gPiBzaGluc2V0c3VcIDsKK+eOieWwhiA+IGd5b2t1c2hvdVwgOwor5pyI5b2xID4gdHN1a2lrYWdlXCA7CivmnIjlvaIgPiB0c3VraWdhdGFcIDsKK+S4g+abnCA+IHNoaWNoaXlvdVwgOwor5LiA5pyIID4gaGl0b3RzdWtpXCA7CivlpKnos6ogPiB0ZW5zaGl0c3VcIDsKK+S4i+aVtyA+IHNoaXRhamlraVwgOwor5LiD5pifID4gc2hpY2hpc2VpXCA7CivmmJ/nqbogPiBob3NoaXpvcmFcIDsKK+eJueethiA+IHRva3VoaXRzdVwgOwor5LiA5pelID4gdHN1aXRhY2hpXCA7CivkurrkvJ0gPiBoaXRvZHp1dGVcIDsKK+eLkOeBqyA+IGtpdHN1bmViaVwgOwor54iG6KOCID4gYmFrdXJldHN1XCA7Civnibnnq4sgPiB0b2t1cml0c3VcIDsKK+S6uuS7mCA+IGhpdG9kenVraVwgOwor6Z2S6JCNID4gYW91a2lrdXNhXCA7CivlpLHoqIAgPiBzaGl0c3VnZW5cIDsKK+mbqumBkyA+IHl1a2ltaWNoaVwgOwor6ZuR6YyyID4gemF0c3Vyb2t1XCA7CivlpbPohbkgPiBvbicnbmFiYXJhXCA7Civpo5/ljZMgPiBzaG9rdXRha3VcIDsKK+eGsemHjyA+IG5ldHN1cnlvdVwgOwor6Zuq6L6xID4gc2V0c3Vqb2t1XCA7CivmlrDolqwgPiBzaGluJyd5YWt1XCA7CivpoK3moKogPiBhdGFtYWthYnVcIDsKK+WkseihgCA+IHNoaWtrZXRzdVwgOwor5pqm5pyIID4gcmVraWdldHN1XCA7CivlpInos6ogPiBoZW5zaGl0c3VcIDsKK+mjn+WHuiA+IGhhbWlkYXNoaVwgOwor5aSc6KmxID4geW9iYW5hc2hpXCA7CivkuIDmirkgPiBpY2hpbWF0c3VcIDsKK+WkqeiiiyA+IHRlbmJ1a3Vyb1wgOwor6Z2057SQID4ga3V0c3VoaW1vXCA7Civmmqbml6UgPiByZWtpaml0c3VcIDsKK+ips+i/sCA+IHNob3VqdXRzdVwgOwor6aOf5YK3ID4gc2hva3VzaG91XCA7CivnibnnmbogPiB0b2t1aGF0c3VcIDsKK+mdtOevpiA+IGt1dHN1YmVyYVwgOwor5LiL5b25ID4gc2hpdGF5YWt1XCA7CivkuKHlsrggPiByeW91Z2lzaGlcIDsKK+absuWtpiA+IGt5b2t1Z2FrdVwgOwor54af6YGUID4ganVrdXRhdHN1XCA7CivpnbTnroYgPiBrdXRzdWJlcmFcIDsKK+S4keW5tCA+IHVzaGlkb3NoaVwgOwor6Zyy6I2JID4gdHN1eXVrdXNhXCA7CivoqZXph4ggPiBoeW91c2hha3VcIDsKK+S4gOW+iyA+IGljaGlyaXRzdVwgOwor54mp55mCID4gYnV0c3VyeW91XCA7Civpoqjlj6MgPiBrYXphZ3VjaGlcIDsKK+Wkj+idiSA+IG5hdHN1emVtaVwgOwor6Zye6I2JID4ga2FzdW1pc291XCA7CivniafnlZwgPiBib2t1Y2hpa3VcIDsKK+iqv+iJsiA+IGNob3VzaG9rdVwgOwor54S86aSFID4geWFraW1vY2hpXCA7CivmnKvlg5ogPiBiYXRzdXJ5b3VcIDsKK+iou+mHiCA+IGNodXVzaGFrdVwgOwor6Kmz6KqsID4gc2hvdXNldHN1XCA7CivmlrDnt5EgPiBzaGlucnlva3VcIDsKK+WkseiEmiA+IHNoaWtreWFrdVwgOwor5aSx6IG3ID4gc2hpc3Nob2t1XCA7CivmlrDntIQgPiBzaGluJyd5YWt1XCA7CivlpI/oj4ogPiBuYXRzdWdpa3VcIDsKK+e4nuibhyA+IHNoaW1haGViaVwgOwor5Lit5ZOyID4gY2h1dXRldHN1XCA7CivoqLPov7AgPiB5YWt1anV0c3VcIDsKK+aWsOeviSA+IHNoaW5jaGlrdVwgOwor5aSP6I2JID4gbmF0c3VndXNhXCA7CivnjonkuLIgPiB0YW1hZ3VzaGlcIDsKK+S4reWPoyA+IG5ha2FndWNoaVwgOwor5aWz55mWID4gb24nJ25hZ3VzZVwgOwor5ael5qGcID4gdWJhemFrdXJhXCA7CivkuK3ljZIgPiBjaHV1c290c3VcIDsKK+S4i+WdgiA+IHNoaW1vc2FrYVwgOwor6aKo5LiLID4ga2F6YXNoaW1vXCA7CivpnJ7ntrIgPiBrYXN1bWlhbWlcIDsKK+S4oeWPoyA+IHJ5b3VndWNoaVwgOwor54iq55quID4gdHN1bWFrYXdhXCA7CivniIbnq7kgPiBiYWt1Y2hpa3VcIDsKK+aXpeeLrCA+IG5pY2hpZG9rdVwgOwor5pen54mpID4ga3l1dWJ1dHN1XCA7CivnjaPlgY8gPiBrZW1vbm9oZW5cIDsKK+mcsueoiyA+IHRzdXl1aG9kb1wgOwor6Kq/56+AID4gY2hvdXNldHN1XCA7CivpoK3lrZcgPiBrYXNoaXJhamlcIDsKK+eNhOWNkiA+IGdva3Vzb3RzdVwgOwor57Wm6aOfID4ga3l1dXNob2t1XCA7CivkuJTlj4ggPiBrYXRzdW1hdGFcIDsKK+aciOS4piA+IHRzdWtpbmFtaVwgOwor54mp5rWBID4gYnV0c3VyeXV1XCA7CivkuKHlh7ggPiByeW91dG90c3VcIDsKK+mZs+i/sCA+IGNoaW5qdXRzdVwgOwor5paw552AID4gc2hpbmNoYWt1XCA7CivlpbPniakgPiBvbicnbmFtb25vXCA7CivkuI3ljbAgPiBmdWppcnVzaGlcIDsKK+abuOS7mCA+IGtha2l0c3VrZVwgOwor6Kmw6I2JID4gdHN1bWVrdXNhXCA7CivkuK3kvY0gPiBjaHV1Z3VyYWlcIDsKK+eGiuicgiA+IGt1bWFiYWNoaVwgOwor5pWZ6IG3ID4ga3lvdXNob2t1XCA7CivlpLHnpLwgPiBzaGl0c3VyZWlcIDsKK+S4g+WOmCA+IHNoaWNoaXJpblwgOwor54mp5qyyID4gYnV0c3V5b2t1XCA7CivkuIDlj6MgPiBoaXRva3VjaGlcIDsKK+aTgumJoiA+IHN1cmliYWNoaVwgOwor54iG55m6ID4gYmFrdWhhdHN1XCA7CivmmKjml6UgPiBzYWt1aml0c3VcIDsKK+e4rue0hCA+IHNodWt1eWFrdVwgOwor5aSx552AID4gc2hpdGNoYWt1XCA7CivkuIDliKUgPiBpY2hpYmV0c3VcIDsKK+S4gOWIlyA+IGljaGlyZXRzdVwgOwor5LiL5YG0ID4gc2hpdGFnYXdhXCA7Civpm4DoibIgPiBzdXp1bWVpcm9cIDsKK+S4gOWEsiA+IGhpdG9tb3VrZVwgOwor5peP5ruFID4gem9rdW1ldHN1XCA7CivkuIvkvZwgPiBzaGl0YXNha3VcIDsKK+iqv+eVpSA+IGNob3VyeWFrdVwgOwor5piU5pelID4gc2VraWppdHN1XCA7Civmlq3nhrEgPiBkYW4nJ25ldHN1XCA7CivmmI7ml6UgPiBteW91bmljaGlcIDsKK+S4i+S4iyA+IHNoaW1vamltb1wgOwor5pW355+zID4gc2hpa2lpc2hpXCA7Civnibnmkq4gPiB0b2t1c2F0c3VcIDsKK+imqumWsiA+IHNoaW4nJ2V0c3VcIDsKK+mhmOS6iyA+IG5lZ2FpZ290b1wgOwor6aC75Ye6ID4gaGluc2h1dHN1XCA7CivntrLooosgPiBhbWlidWt1cm9cIDsKK+aWmeeOhyA+IHJ5b3VyaXRzdVwgOwor6KeS6YCQID4ga2FrdWNoaWt1XCA7CivkuIPkuIkgPiBzaGljaGlzYW5cIDsKK+e0sOmdoiA+IGhvc29vbW90ZVwgOwor6ZuG57WQID4gc2h1dWtldHN1XCA7Civopb/poqggPiBuaXNoaWthemVcIDsKK+Wkj+eXqSA+IG5hdHN1eWFzZVwgOwor54mp5oyHID4gbW9ub3Nhc2hpXCA7CivmmJ/lvbEgPiBob3NoaWthZ2VcIDsKK+eLrOWKmyA+IGRva3VyeW9rdVwgOwor6Kem6Ki6ID4gc2hva3VzaGluXCA7Civlo7rnmr8gPiB0c3Vib3phcmFcIDsKK+e9quS6uiA+IHRzdW1pYml0b1wgOwor54mp5oW+ID4gYnV0c3V5b2t1XCA7CivmlbfniakgPiBzaGlraW1vbm9cIDsKK+mbqueUtyA+IHl1a2lvdG9rb1wgOwor5aSP54mpID4gbmF0c3Vtb25vXCA7CivntbHoqIggPiBiYXJhdHN1a2lcIDsKK+Wls+aWuSA+IG9uJyduYWdhdGFcIDsKK+aWsOapiyA+IHNoaW5iYXNoaVwgOwor54ax55eFID4gbmV0c3VieW91XCA7Civpm7vnhrEgPiBkZW4nJ25ldHN1XCA7CivmmJ/lsZEgPiBob3NoaWt1enVcIDsKK+malOe1tiA+IGtha3V6ZXRzdVwgOwor54us5LuPID4gZG9rdWZ1dHN1XCA7CivlprvlrqQgPiBzYWlzaGl0c3VcIDsKK+eJqeW5siA+IG1vbm9ob3NoaVwgOwor57Sw6YGTID4gaG9zb21pY2hpXCA7Civns6fpo58gPiByeW91c2hva3VcIDsKK+eJqeW3riA+IG1vbm9zYXNoaVwgOwor54ax55CDID4gbmV0c3VreXV1XCA7CivnuJ7niakgPiBzaGltYW1vbm9cIDsKK+aWsOaelSA+IG5paW1ha3VyYVwgOwor57Wm6KGAID4ga3l1dWtldHN1XCA7CivmlrDmnK0gPiBzaGluc2F0c3VcIDsKK+aWsOaciCA+IHNoaW5nZXRzdVwgOwor5paw5puyID4gc2hpbmt5b2t1XCA7Civml6flvI8gPiBreXV1c2hpa2lcIDsKK+ipsOeJqSA+IHRzdW1lbW9ub1wgOwor54OP6LKdID4ga2FyYXN1Z2FpXCA7CivpnbTlupUgPiBrdXRzdXpva29cIDsKK+aXp+W5tCA+IGZ1cnV0b3NoaVwgOwor5pif5Z6LID4gaG9zaGlnYXRhXCA7Civplbfpq6ogPiBjaG91aGF0c3VcIDsKK+Wls+W9oiA+IG9uJyduYWdhdGFcIDsKK+WkseacmyA+IHNoaXRzdWJvdVwgOwor54S857WQID4gc2hvdWtldHN1XCA7CivlobXntJkgPiBjaGlyaWdhbWlcIDsKK+WkseaYjiA+IHNoaXRzdW1laVwgOwor57SZ6LOqID4gc2hpc2hpdHN1XCA7Civpm6rmspMgPiB5dWtpZ3V0c3VcIDsKK+aWh+aciCA+IGZ1bWlkenVraVwgOwor54Kt6LOqID4gdGFuc2hpdHN1XCA7CivoqoXmrrogPiBjaHV1c2F0c3VcIDsKK+Wkp+aYlCA+IG9vbXVrYXNoaVwgOwor6ZW36Z20ID4gbmFnYWd1dHN1XCA7Civns7jou4ogPiBpdG9ndXJ1bWFcIDsKK+WknOaZkiA+IHlvemFyYXNoaVwgOwor5aSP5pyNID4gbmF0c3VmdWt1XCA7CivpnbTloqggPiBrdXRzdXp1bWlcIDsKK+ijuOmmrCA+IGhhZGFrYXVtYVwgOwor5aa55YiGID4gaW1vdXRvYnVuXCA7Civml6XloqggPiBuaWNoaWJva3VcIDsKK+aWsOW8jyA+IHNoaW5zaGlraVwgOwor5aSP5pmCID4gbmF0c3Vkb2tpXCA7Civngrjoo4IgPiBzYWt1cmV0c3VcIDsKK+eJueWIpSA+IHRva3ViZXRzdVwgOwor6KSH6ZuRID4gZnVrdXphdHN1XCA7CivpnbTlnosgPiBrdXRzdWdhdGFcIDsKK+eykumjnyA+IHJ5dXVzaG9rdVwgOwor57WQ6IacID4ga2V0c3VtYWt1XCA7CivnuJ7mn4QgPiBzaGltYWdhcmFcIDsKK+WkseaBiyA+IHNoaXRzdXJlblwgOwor5aSx5b+1ID4gc2hpdHN1bmVuXCA7Civpm6jmm4cgPiBhbWFndW1vcmlcIDsKK+ipleaxuiA+IGh5b3VrZXRzdVwgOwor6Kq/5b6LID4gY2hvdXJpdHN1XCA7CivlpbPlnYIgPiBvbicnbmF6YWthXCA7CivntprnmbogPiB6b2t1aGF0c3VcIDsKK+mbkeagqiA+IHphdHN1a2FidVwgOwor6KuS5a+fID4gcnlvdXNhdHN1XCA7CivniZvliLogPiBneXV1c2FzaGlcIDsKK+Wft+iRlyA+IHNodXVjaGFrdVwgOwor5pep5Y+jID4gaGF5YWt1Y2hpXCA7Civns5bos6ogPiB0b3VzaGl0c3VcIDsKK+eJh+WPoyA+IGthdGFrdWNoaVwgOwor57Sw6IWwID4gaG9zb2dvc2hpXCA7Civpm4bmnK0gPiBzaHV1c2F0c3VcIDsKK+aXpeWHuiA+IG5pc3NodXRzdVwgOwor57WC57WQID4gc2h1dWtldHN1XCA7Civlnarph48gPiB0c3Vib3J5b3VcIDsKK+WltOWHpyA+IHlha2tvZGFrb1wgOwor6Kaq562GID4gc2hpbnBpdHN1XCA7Civntr/msrkgPiB3YXRhYWJ1cmFcIDsKK+eEtueEtiA+IHNoaWthamlrYVwgOwor54Sm54axID4gc2hvdW5ldHN1XCA7CivlpI/lsbEgPiBuYXRzdXlhbWFcIDsKK+eIquWIhyA+IHRzdW1la2lyaVwgOwor5pS/5omAID4gbWFuZG9rb3JvXCA7CivmlZnlvI8gPiBreW91c2hpa2lcIDsKK+eIquWFiCA+IHRzdW1hc2FraVwgOwor5aGp5rysID4gc2hpb2R6dWtlXCA7CivnuK7lsI8gPiBzaHVrdXNob3VcIDsKK+S4i+OAhSA+IHNoaW1vamltb1wgOwor5aWU5Ye6ID4gaG9uc2h1dHN1XCA7CivpmpTmnIggPiBrYWt1Z2V0c3VcIDsKK+aSg+eZuiA+IGdla2loYXRzdVwgOwor5Z+3562GID4gc2hpcHBpdHN1XCA7CivpmpTml6UgPiBrYWt1aml0c3VcIDsKK+aWsOWFpSA+IHNoaW4nJ255dXVcIDsKK+aWpeWKmyA+IHNla2lyeW9rdVwgOwor57WC55m6ID4gc2h1dWhhdHN1XCA7CivlpLHlkb0gPiBzaGl0c3VtZWlcIDsKK+WdgumBkyA+IHNha2FtaWNoaVwgOwor5aSx5ZCNID4gc2hpdHN1bWVpXCA7CivmkrLmu4UgPiBib2t1bWV0c3VcIDsKK+ips+WvnyA+IHNob3VzYXRzdVwgOwor6Zuq5aWzID4geXVraW9uJyduYVwgOwor6Kmz5a+GID4gc2hvdW1pdHN1XCA7Civpm5HlraYgPiB6YXRzdWdha3VcIDsKK+mYsua5vyA+IGJvdXNoaXRzdVwgOwor5Z2H6LOqID4ga2luc2hpdHN1XCA7Civln7fnnYAgPiBzaHV1Y2hha3VcIDsKK+eDj+eTnCA+IGthcmFzdXVyaVwgOwor5pKy5q66ID4gYm9rdXNhdHN1XCA7CivmkZjnmbogPiB0ZWtpaGF0c3VcIDsKK+Wkj+WQkSA+IG5hdHN1bXVraVwgOwor5o2o6YmiID4gc3V0ZWJhY2hpXCA7CivlnLDos6ogPiBjaGlzaGl0c3VcIDsKK+WgheeJqSA+IGthdGFidXRzdVwgOwor5Zu96YmEID4ga29rdXRldHN1XCA7Civop5LmqL0gPiB0c3Vub2RhcnVcIDsKK+aSg+a7hSA+IGdla2ltZXRzdVwgOwor57On56ejID4gcnlvdW1hdHN1XCA7CivpmqPlrqQgPiByaW5zaGl0c3VcIDsKK+iouuWvnyA+IHNoaW5zYXRzdVwgOwor5aSW5LuYID4gc290b2R6dWtlXCA7CivlpI/kvZwgPiBuYXRzdXNha3VcIDsKK+eFp+WwuiA+IHNob3VzaGFrdVwgOwor6Zuq5YWOID4geXVraXVzYWdpXCA7CivntYLmsbogPiBzaHV1a2V0c3VcIDsKK+ilsueItSA+IHNodXVzaGFrdVwgOwor6KaG5ruFID4gZnVrdW1ldHN1XCA7Civloqjlo7cgPiBzdW1pdHN1Ym9cIDsKK+iqheS8kCA+IGNodXViYXRzdVwgOwor5pS+5Ye6ID4gaG91c2h1dHN1XCA7CivntYLmpbUgPiBzaHV1a3lva3VcIDsKK+ijuOe3miA+IGhhZGFrYXNlblwgOwor6KaG5rKhID4gZnVrdWJvdHN1XCA7CivnhanlnosgPiB1cnVzYWdhdGFcIDsKK+iplOWLhSA+IHNob3VjaG9rdVwgOwor5pSv5Ye6ID4gc2hpc2h1dHN1XCA7CivntqLlr4YgPiBjaHV1bWl0c3VcIDsKK+e1hOabsiA+IGt1bWlreW9rdVwgOwor57WC5pyrID4gc2h1dW1hdHN1XCA7CivntYLmm7IgPiBzaHV1a3lva3VcIDsKK+e2meWupCA+IGtlaXNoaXRzdVwgOwor5Zu96KGoID4ga3VuaW9tb3RlXCA7CivntYLml6UgPiBzaHV1aml0c3VcIDsKK+e3oOWIhyA+IHNoaW1la2lyaVwgOwor5Zyf6ImyID4gdHN1Y2hpaXJvXCA7CivmjqXntpogPiBzZXRzdXpva3VcIDsKK+exs+eykiA+IGtvbWV0c3VidVwgOwor57Of5rysID4ga2FzdWR6dWtlXCA7Civnspvnmb0gPiBzaHVrdWhha3VcIDsKK+ihl+inkiA+IG1hY2hpa2Fkb1wgOwor5pKr5a2QID4gbmFkZXNoaWtvXCA7Civns6DmsrkgPiBudWthYWJ1cmFcIDsKK+mVt+eJqSA+IGNob3VidXRzdVwgOwor6Zmw5Y+jID4ga2FnZWd1Y2hpXCA7Civopqrlv4MgPiBveWFnb2tvcm9cIDsKK+ihhuiqrCA+IHNodXVzZXRzdVwgOwor57W25aaZID4gemV0c3VteW91XCA7Civns7jmoZwgPiBpdG96YWt1cmFcIDsKK+mZs+WIlyA+IGNoaW5yZXRzdVwgOwor57O45p+zID4gaXRveWFuYWdpXCA7Civln7fmi5cgPiBzaGl0c3V5b3VcIDsKK+eEvOWNtCA+IHNob3VreWFrdVwgOwor5r+A6IG3ID4gZ2VraXNob2t1XCA7Civopqrlr4YgPiBzaGlubWl0c3VcIDsKK+e1guWxgCA+IHNodXVreW9rdVwgOwor562S6Z+zID4gdHN1dHN1b3RvXCA7CivntIvmiYAgPiBtb25kb2tvcm9cIDsKK+iii+e2siA+IGZ1a3Vyb2FtaVwgOwor6KiA5LydID4ga290b2R6dXRlXCA7Civngavmn7EgPiBoaWJhc2hpcmFcIDsKK+mWpeaXjyA+IGJhdHN1em9rdVwgOwor6KS25puyID4gc2h1dWt5b2t1XCA7Civop5Llj4kgPiB0c3Vub21hdGFcIDsKK+aKnOmMqCA+IGJhdHN1YnlvdVwgOwor5Zu956uLID4ga29rdXJpdHN1XCA7Civmv4DnqoEgPiBnZWtpdG90c3VcIDsKK+mWgOadviA+IGthZG9tYXRzdVwgOwor5oqc6YGTID4gbnVrZW1pY2hpXCA7CivplbfmnIggPiBuYWdhdHN1a2lcIDsKK+ihgOiCiSA+IGtldHN1bmlrdVwgOwor57Sb5aSxID4gZnVuc2hpdHN1XCA7CivmjK/nspsgPiBzaGluc2h1a3VcIDsKK+Wcn+eJoiA+IHRzdWNoaXJvdVwgOwor5r+A55m6ID4gZ2VraWhhdHN1XCA7CivnsbPmsrkgPiBrb21lYWJ1cmFcIDsKK+eti+mBkyA+IHN1amltaWNoaVwgOwor56+z56+lID4gaGljaGlyaWtpXCA7CivooZ3nqoEgPiBzaG91dG90c3VcIDsKK+imquWIhyA+IHNoaW5zZXRzdVwgOwor57Gz5quDID4ga29tZWJpdHN1XCA7Civnq5zpqqggPiByeXV1a290c3VcIDsKK+e1kOS6hiA+IGtldHN1cnlvdVwgOwor5omY6YmiID4gdGFrdWhhdHN1XCA7Civplo/lubQgPiB1cnV1ZG9zaGlcIDsKK+etieizqiA+IHRvdXNoaXRzdVwgOwor5Zix6KiXID4gc2hva3V0YWt1XCA7Civnr4DntIQgPiBzZXRzdXlha3VcIDsKK+a/gOeDiCA+IGdla2lyZXRzdVwgOwor6J+H6JuZID4gaGlraWdhZXJ1XCA7CivonIDpu40gPiBtb3Jva29zaGlcIDsKK+ihgOecvCA+IGNoaW1hbmFrb1wgOwor5664566xID4gaGFzaGliYWtvXCA7CivopIflvI8gPiBmdWt1c2hpa2lcIDsKK+ilv+WBtCA+IG5pc2hpZ2F3YVwgOwor5pCN5aSxID4gc29uc2hpdHN1XCA7Civpl5blhaUgPiBjaGluJydueXV1XCA7CivonILps6UgPiBoYWNoaWRvcmlcIDsKK+eCuuS9kyA+IHRlaXRhcmFrdVwgOwor5oyR55m6ID4gY2hvdWhhdHN1XCA7Civmurbos6ogPiB5b3VzaGl0c3VcIDsKK+eBsOWcnyA+IGhhaXRzdWNoaVwgOwor6KOP5omJID4gdXJhdG9iaXJhXCA7CivmkKzlh7ogPiBoYW5zaHV0c3VcIDsKK+eym+WtpiA+IHNodWt1Z2FrdVwgOwor6Za+5YCkID4gc2hpa2lpY2hpXCA7Civoo4/mg4UgPiB1cmFuYXNha2VcIDsKK+ifh+iCoSA+IGthZXJ1bWF0YVwgOwor6KGA54WZID4gY2hpa2VtdXJpXCA7CivooajmsbogPiBoeW91a2V0c3VcIDsKK+a7keiQvSA+IGthdHN1cmFrdVwgOwor5oyB54mpID4gbW9jaGltb25vXCA7CivploDlj6MgPiBrYWRvZ3VjaGlcIDsKK+a9nOeGsSA+IHNlbicnbmV0c3VcIDsKK+aMn+auuiA+IGt5b3VzYXRzdVwgOwor6KGo5pytID4gaHlvdXNhdHN1XCA7Civooajmm7ggPiBvbW90ZWdha2lcIDsKK+eziuS7oyA+IG5vcmlzaGlyb1wgOwor56m06ZqZID4ga2V0c3VnZWtpXCA7CivpjK/pm5EgPiBzYWt1emF0c3VcIDsKK+Wcp+WvhiA+IGF0c3VtaXRzdVwgOwor5Zyo5a6kID4gemFpc2hpdHN1XCA7CivmvKzniakgPiB0c3VrZW1vbm9cIDsKK+icnOixhiA+IG1pdHN1bWFtZVwgOwor5ryC552AID4gaHlvdWNoYWt1XCA7Civmj5Dlh7ogPiB0ZWlzaHV0c3VcIDsKK+a3semdtCA+IGZ1a2FndXRzdVwgOwor56+A5qyyID4gc2V0c3V5b2t1XCA7CivooovluK8gPiBmdWt1cm9vYmlcIDsKK+WYseebriA+IHNob2t1bW9rdVwgOwor56mA6aOfID4ga29rdXNob2t1XCA7CivnqY3pm6ogPiBzZWtpc2V0c3VcIDsKK+evgOamkSA+IGZ1c2hpa3VyZVwgOwor6KGA5pePID4ga2V0c3V6b2t1XCA7CivnrZbnlaUgPiBzYWt1cnlha3VcIDsKK+mNvOihkyA+IHNoaW5qdXRzdVwgOwor5oyR5pKlID4gY2hvdWhhdHN1XCA7Civmi5PmrpYgPiB0YWt1c2hva3VcIDsKK+ibmei3syA+IGthZXJ1dG9iaVwgOwor5o6S5Ye6ID4gaGFpc2h1dHN1XCA7CivlnKflipsgPiBhdHN1cnlva3VcIDsKK+erueeukiA+IHRha2Vib3VraVwgOwor6by76Z2iID4gaGFuYWR6dXJhXCA7Civnq7/np6QgPiBzYW9iYWthcmlcIDsKK+iiluWPoyA+IHNvZGVndWNoaVwgOwor5o275Ye6ID4gbmVuc2h1dHN1XCA7Civpi7PpiYQgPiBjaHV1dGV0c3VcIDsKK+eroOevgCA+IHNob3VzZXRzdVwgOwor5ZWT6J+EID4ga2VpY2hpdHN1XCA7Civmtpnpm6ggPiBuYW1pZGFhbWVcIDsKK+evpOWunyA+IHRva3VqaXRzdVwgOwor6Y6W57O4ID4ga3VzYXJpaXRvXCA7Civnpr/pt7IgPiBoYWdld2FzaGlcIDsKK+ihgOWwvyA+IGtldHN1bnlvdVwgOwor5oey572wID4gY2hvdWJhdHN1XCA7Civlm73lipsgPiBrb2t1cnlva3VcIDsKK+WbveWIpSA+IGt1bmliZXRzdVwgOwor5oq95paXID4gaGlraWRhc2hpXCA7Civmtbjpo58gPiBzaGluc2hva3VcIDsKK+evieWxsSA+IHRzdWtpeWFtYVwgOwor6KKW5LuYID4gc29kZXRzdWtlXCA7CivmibzmrrogPiB5YWt1c2F0c3VcIDsKK+ihgOWhlyA+IGNoaW1pZG9yb1wgOwor6bq56bu0ID4ga291amlrYWJpXCA7Civmtpnph5EgPiBuYW1pZGFraW5cIDsKK+ihgOWcpyA+IGtldHN1YXRzdVwgOwor5r2u5aKDID4gc2hpb3pha2FpXCA7CivnqJ/os6ogPiBoaW5zaGl0c3VcIDsKK+a5v+eUsCA+IHNoaXRzdWRlblwgOwor6buS6auqID4ga29rdWhhdHN1XCA7CivmiZPmtoggPiB1Y2hpa2VzaGlcIDsKK+ihqOWBtCA+IG9tb3RlZ2F3YVwgOwor6JuZ6IKhID4ga2FlcnVtYXRhXCA7CivpkJjmkp4gPiBrYW5ldHN1a2lcIDsKK+ihjOWIlyA+IGd5b3VyZXRzdVwgOwor56yR5q66ID4gc2hvdXNhdHN1XCA7CivmiY3mp4wgPiBzYWlkenVjaGlcIDsKK+a5v+a9pCA+IHNoaXRzdWp1blwgOwor6KGX5LimID4gbWFjaGluYW1pXCA7CivpvLvooZ0gPiBoYW5hdHN1a2lcIDsKK+a4i+e0mSA+IHNoaWJ1Z2FtaVwgOwor5ZOB6LOqID4gaGluc2hpdHN1XCA7CivpvKDorJsgPiBuZXp1bWlrb3VcIDsKK+mPoeadvyA+IGthZ2FtaWl0YVwgOwor56m656m0ID4ga2FyYWtldHN1XCA7Civpuqbpo68gPiBtdWdpbWVzaGlcIDsKK+mLvOiJsiA+IGhhZ2FuZWlyb1wgOwor5omV5pqBID4gZnV0c3VneW91XCA7CivomavonrsgPiBtdXNoaWtlcmFcIDsKK+erpeatjCA+IHdhcmFiZXV0YVwgOwor5omT5pOyID4gY2hvdWNoYWt1XCA7CivmtLvph48gPiBrYXRzdXJ5b3VcIDsKK+aLoOWHuiA+IGt5b3NodXRzdVwgOwor5Zm05Ye6ID4gZnVuc2h1dHN1XCA7CivmuIvnmq4gPiBzaGlidWthd2FcIDsKK+iXgemdtCA+IHdhcmFndXRzdVwgOwor566X5Ye6ID4gc2Fuc2h1dHN1XCA7CivpjpbmqIsgPiBrdXNhcml0b2lcIDsKK+a0u+i7uCA+IGthdHN1amlrdVwgOwor5rm/5p2/ID4gc2hpdHN1YmFuXCA7Civmta7ooosgPiB1a2lidWt1cm9cIDsKK+a1uOidlSA+IHNoaW5zaG9rdVwgOwor5ZWG55WlID4gc2hvdXJ5YWt1XCA7CivmtLvouo0gPiBrYXRzdXlha3VcIDsKK+mJseizqiA+IGtvdXNoaXRzdVwgOwor6Jmr6IW5ID4gbXVzaGliYXJhXCA7CivpvKDoibIgPiBuZXp1bWlpcm9cIDsKK+azpemdtCA+IGRvcm9ndXRzdVwgOwor5rac6IG3ID4gdG9rdXNob2t1XCA7CivnrYbloqggPiBoaXRzdWJva3VcIDsKK+mHnemwuyA+IGhhcml1bmFnaVwgOwor6by757axID4gaGFuYWR6dW5hXCA7CivnrYbloZogPiBmdWRlZHp1a2FcIDsKK+a7neWjuiA+IHRha2l0c3Vib1wgOwor5rud5aO3ID4gdGFraXRzdWJvXCA7CivlkYrpgZQgPiBrb2t1dGF0c3VcIDsKK+a8j+WHuiA+IHJvdXNodXRzdVwgOwor562G5ZynID4gaGl0c3VhdHN1XCA7Civnqq7mpbUgPiBreXV1a3lva3VcIDsKK+mHkemvsSA+IGtpbnNoYWNoaVwgOwor56aA6LOqID4gaGluc2hpdHN1XCA7Civlj6Ppq60gPiBrdWNoaWhpZ2VcIDsKK+iZq+exoCA+IG11c2hpa2Fnb1wgOwor5rWB6KGAID4gcnl1dWtldHN1XCA7CivmhpHniakgPiB0c3VraW1vbm9cIDsKK+epjeeOhyA+IHNla2lyaXRzdVwgOwor6by756qBID4gaGFuYXRzdWtpXCA7Civph5zpo68gPiBrYW1hbWVzaGlcIDsKK+a3seeIqiA+IGZ1a2FkenVtZVwgOwor56u55bibID4gY2hpa3VoYWt1XCA7Civnp4voibIgPiBzaHV1c2hva3VcIDsKK+azoemKrSA+IGFidWt1emVuaVwgOwor5rOo6YeIID4gY2h1dXNoYWt1XCA7CivmhIHoibIgPiBzaHV1c2hva3VcIDsKK+aCquizqiA+IGFrdXNoaXRzdVwgOwor5reL55a+ID4gcmluc2hpdHN1XCA7Civpupfos6ogPiByZWlzaGl0c3VcIDsKK+m6u+iiiyA+IGFzYWJ1a3Vyb1wgOwor5rud5Y+jID4gdGFraWd1Y2hpXCA7CivpvKDnrpcgPiBuZXp1bWl6YW5cIDsKK+a5v+W8jyA+IHNoaXNzaGlraVwgOwor56mA54mpID4ga29rdW1vdHN1XCA7Civms6XpgZMgPiBkb3JvbWljaGlcIDsKK+WPpOmdtCA+IGZ1cnVndXRzdVwgOwor5rKI6ayxID4gY2hpbicndXRzdVwgOwor5ZCb6YGUID4ga2ltaXRhY2hpXCA7Civpt7LpvLsgPiB3YXNoaWJhbmFcIDsKK+aKmOS8jyA+IHNoYWt1YnVrdVwgOwor6byg56m0ID4gbmV6dW1pYW5hXCA7Civmu5Hlj7AgPiBzdWJlcmlkYWlcIDsKK+ernOW3uyA+IHRhdHN1bWFraVwgOwor6Yej6ZCYID4gdHN1cmlnYW5lXCA7Civpu5LoibIgPiBrb2t1c2hva3VcIDsKK+eptualtSA+IGt5dXVreW9rdVwgOwor5rqA5a6kID4gbWFuc2hpdHN1XCA7Civpt6bpt68gPiBtaXNvc2F6YWlcIDsKK+err+WlsyA+IGhhc2hpdGFtZVwgOwor6Yej6YedID4gdHN1cmliYXJpXCA7Civph5HpjpYgPiBraW5ndXNhcmlcIDsKK+iXpOiUkyA+IGZ1amlkenVydVwgOwor6Ymb6ImyID4gbmFtYXJpaXJvXCA7CivmuIvmn78gPiBzaGlidWdha2lcIDsKK+WQuOihgCA+IGt5dXVrZXRzdVwgOwor5Y+k6YmEID4gZnVydXRldHN1XCA7CivmtbfnpZ4gPiB3YXRhdHN1bWlcIDsKK+mItOiZqyA+IHN1enVtdXNoaVwgOwor5ZCM6LOqID4gZG91c2hpdHN1XCA7Civlj6Pph5EgPiBrdWNoaWdhbmVcIDsKK+eqgeaSgyA+IHRvdHN1Z2VraVwgOwor6beT6bSjID4geWFtYXV6dXJhXCA7Civpu5LnuIEgPiBrdXJvYnVjaGlcIDsKK+mOruWcpyA+IGNoaW4nJ2F0c3VcIDsKK+WWquWksSA+IHNvdXNoaXRzdVwgOwor56iu5rK5ID4gdGFuZWFidXJhXCA7CivllJDmq4MgPiBrYXJhYml0c3VcIDsKK+WPo+i7vSA+IGt1Y2hpZ2FydVwgOwor56qu5bGIID4ga3l1dWt1dHN1XCA7Civpu5Lnq7kgPiBrdXJvY2hpa3VcIDsKK+WPi+mBlCA+IHRvbW9kYWNoaVwgOwor5ZOB54mpID4gc2hpbmFtb25vXCA7Civnq7nlhYkgPiB0YWtlbWl0c3VcIDsKK+iXgeiLniA+IHdhcmFkenV0b1wgOwor5rm/5Y6fID4gc2hpdHN1Z2VuXCA7CivnpZ7oibIgPiBzaGluc2hva3VcIDsKK+WUkOadviA+IGthcmFtYXRzdVwgOwor56We6IG3ID4gc2hpbnNob2t1XCA7Civlj6PoqLEgPiBrdWNoaW1vdG9cIDsKK+iaiuafsSA+IGthYmFzaGlyYVwgOwor56u55LiyID4gdGFrZWd1c2hpXCA7Civmtojmu4UgPiBzaG91bWV0c3VcIDsKK+mHneihkyA+IHNoaW5qdXRzdVwgOwor6buS55m9ID4ga29rdWJ5YWt1XCA7CivnpZ7nvbAgPiBzaGluYmF0c3VcIDsKK+ayueidiSA+IGFidXJhemVtaVwgOwor5oCn6LOqID4gc2Vpc2hpdHN1XCA7Civlj5boqqwgPiB0b3Jpc2V0c3VcIDsKK+awt+mbqiA+IGh5b3VzZXRzdVwgOwor6Ju45aO8ID4gdGFrb3RzdWJvXCA7Civom7jlo7cgPiB0YWtvdHN1Ym9cIDsKK+a5p+WHuiA+IHlvdXNodXRzdVwgOwor56m65a6kID4ga3V1c2hpdHN1XCA7CivpjJjlvaIgPiB0c3VtdWdhdGFcIDsKK+aGqeWupCA+IGtlaXNoaXRzdVwgOwor5oCl6KitID4ga3l1dXNldHN1XCA7Civph5HolJMgPiBrYW5lZHp1cnVcIDsKK+a2iOaltSA+IHNob3VreW9rdVwgOwor6Yej6Ii5ID4gdHN1cmlidW5lXCA7CivmsLfph4ggPiBoeW91c2hha3VcIDsKK+mJoueJqSA+IGhhY2hpbW9ub1wgOwor5rWa5rirID4gc2h1bnNldHN1XCA7Civmt5HlvrMgPiBzaHVrdXRva3VcIDsKK+elneemjyA+IHNodWt1ZnVrdVwgOwor5rKh6JC9ID4gYm90c3VyYWt1XCA7CivnqpPlj6MgPiBtYWRvZ3VjaGlcIDsKK+WRiueZuiA+IGtva3VoYXRzdVwgOwor5ZOB5p+EID4gc2hpbmFnYXJhXCA7Civmgqrnlr4gPiBha3VzaGl0c3VcIDsKK+WQuOedgCA+IGt5dXVjaGFrdVwgOwor6YWM6YePID4gc2hha3VyeW91XCA7Civlj6PohIcgPiBrdWNoaXdha2lcIDsKK+eiuuiqrCA+IGtha3VzZXRzdVwgOwor6JaE57eRID4gdXN1bWlkb3JpXCA7Civlk4HmlbAgPiBzaGluYWthenVcIDsKK+m5v+eariA+IHNoaWthZ2F3YVwgOwor6JuZ5Y+IID4ga2FlcnVtYXRhXCA7Civpu5nmrrogPiBtb2t1c2F0c3VcIDsKK+aBkOe4riA+IGt5b3VzaHVrdVwgOwor6JqV5a6kID4gc2Fuc2hpdHN1XCA7CivnqoHlh7ogPiB0b3NzaHV0c3VcIDsKK+mDvemiqCA+IG1peWFrb2Z1dVwgOwor5rK557OfID4gYWJ1cmFrYXN1XCA7CivmsLTos6ogPiBzdWlzaGl0c3VcIDsKK+eqgeWFpSA+IHRvdHN1bnl1dVwgOwor5rK557KVID4gYWJ1cmFrYXN1XCA7CivnqKDlr4YgPiBjaG91bWl0c3VcIDsKK+m7kuaoqyA+IGt1cm9nYXNoaVwgOwor5rS75q20ID4ga2F0c3VyZWtpXCA7Civlj6PntIUgPiBrdWNoaWJlbmlcIDsKK+eni+aXpSA+IHNodXVqaXRzdVwgOwor5Y+z56uvID4gbWlnaWhhc2hpXCA7Civolqznk7YgPiBrdXN1cmliaW5cIDsKK+WTsuWtpiA+IHRldHN1Z2FrdVwgOwor6YmE5riLID4ga2FuYXNoaWJ1XCA7Civlj47nuK4gPiBzaHV1c2h1a3VcIDsKK+W/jOipniA+IGltaWtvdG9iYVwgOwor5Y+w56ekID4gZGFpYmFrYXJpXCA7CivmtbfmiYcgPiBob3RhdGVnYWlcIDsKK+W/heiqrSA+IGhpdHN1ZG9rdVwgOwor5Y2a6K2YID4gaGFrdXNoaWtpXCA7Civpu5Lmnb4gPiBrdXJvbWF0c3VcIDsKK+OAhuWIhyA+IHNoaW1la2lyaVwgOwor5Y2T6K2YID4gdGFrdXNoaWtpXCA7CivolqzniakgPiB5YWt1YnV0c3VcIDsKK+a3seWIhyA+IHNoaW5zZXRzdVwgOwor56Gs6LOqID4ga291c2hpdHN1XCA7CivmsLfonZUgPiBoeW91c2hva3VcIDsKK+WNk+iqrCA+IHRha3VzZXRzdVwgOwor6buS5pifID4ga3Vyb2Jvc2hpXCA7Civnp4DmipwgPiBzaHV1YmF0c3VcIDsKK+W/g+ihgCA+IHNoaW5rZXRzdVwgOwor5rC06JmrID4gbWl6dW11c2hpXCA7CivolJPojYkgPiB0c3VydWt1c2FcIDsKK+W8t+mjryA+IGtvd2FtZXNoaVwgOwor56Wo5rG6ID4gaHlvdWtldHN1XCA7CivokZvppIUgPiBrdXp1bW9jaGlcIDsKK+m2ieixhiA+IHV6dXJhbWFtZVwgOwor6YeR55ulID4ga2FuYWRhcmFpXCA7Civnn6/po74gPiBreW91c2hva3VcIDsKK+WPo+eZliA+IGt1Y2hpZ3VzZVwgOwor55+z6aCtID4gaXNoaWF0YW1hXCA7Civps6Xpu5AgPiB0b3JpbW9jaGlcIDsKK+a2meWjsCA+IG5hbWlkYWdvZVwgOwor6JC96auqID4gcmFrdWhhdHN1XCA7Civli4XpoY0gPiBjaG9rdWdha3VcIDsKK+WNteiJsiA+IHRhbWFnb2lyb1wgOwor56iy5YWJID4gaW5hYmlrYXJpXCA7Civlj47nnYAgPiBzaHV1Y2hha3VcIDsKK+a2iOWksSA+IHNvdXNoaXRzdVwgOwor5q6/6YGUID4gdG9ub3RhY2hpXCA7CivmsYLogbcgPiBreXV1c2hva3VcIDsKK+iQvemjviA+IHJha3VzaG9rdVwgOwor5rKI552AID4gY2hpbmNoYWt1XCA7CivolqzmrrogPiB5YWt1c2F0c3VcIDsKK+elpeaciCA+IHNob3V0c3VraVwgOwor56eB5a6kID4gc2hpc2hpdHN1XCA7CivlvaLos6ogPiBrZWlzaGl0c3VcIDsKK+WPjueOhyA+IHNodXVyaXRzdVwgOwor56We5puyID4gc2hpbmt5b2t1XCA7Civnorrnq4sgPiBrYWt1cml0c3VcIDsKK+WNoOiAhSA+IHVyYW5haXNoYVwgOwor5ZOB5ZOBID4gc2hpbmFqaW5hXCA7CivmsLfntZAgPiBoeW91a2V0c3VcIDsKK+W/oOevgCA+IGNodXVzZXRzdVwgOwor6Ymi5be7ID4gaGFjaGltYWtpXCA7CivlkoTlrrYgPiBoYW5hc2hpa2FcIDsKK+mKt+WNtCA+IHNob3VreWFrdVwgOwor5raI5Y20ID4gc2hvdWt5YWt1XCA7Civnn43pkaAgPiBrYWt1c2hha3VcIDsKK+W+qeiBtyA+IGZ1a3VzaG9rdVwgOwor5q+S6JmrID4gZG9rdW11c2hpXCA7CivljZPntbYgPiB0YWt1emV0c3VcIDsKK+WPlua2iCA+IHRvcmlrZXNoaVwgOwor5ZGo5a+GID4gc2h1dW1pdHN1XCA7Civlia/po58gPiBmdWt1c2hva3VcIDsKK+iSn+iSuyA+IGtvbicnbnlha3VcIDsKK+WQhOaciCA+IGtha3V0c3VraVwgOwor5q616KKLID4gZGFuYnVrdXJvXCA7CivmtbjlhaUgPiBzaGluJydueXV1XCA7Civlj47msqEgPiBzaHV1Ym90c3VcIDsKK+mJhOWxkSA+IHRldHN1a3V6dVwgOwor5Y2T562GID4gdGFrdWhpdHN1XCA7CivnorrnjocgPiBrYWt1cml0c3VcIDsKK+WPluasoSA+IHRvcml0c3VnaVwgOwor5Y2T56uLID4gdGFrdXJpdHN1XCA7CivnpZ7lvI8gPiBzaGluc2hpa2lcIDsKK+ato+mBkyA+IG1hc2FtaWNoaVwgOwor5rKI5rKhID4gY2hpbmJvdHN1XCA7Civmr5LoiIwgPiBkb2t1emV0c3VcIDsKK+ejqOaxgSA+IHRvZ2lzaGlydVwgOwor5b256IG3ID4geWFrdXNob2t1XCA7CivmtIvlrqQgPiB5b3VzaGl0c3VcIDsKK+eip+eOiSA+IGhla2lneW9rdVwgOwor5q2v6LOqID4gc2hpc2hpdHN1XCA7CivphbfnhrEgPiBrb2t1bmV0c3VcIDsKK+iUtea1miA+IGt1cmF6YXJhZVwgOwor5oGL5pW1ID4ga29pZ2F0YWtpXCA7Civlj6Pml6kgPiBrdWNoaWJheWFcIDsKK+axgeeJqSA+IHNoaXJ1bW9ub1wgOwor6YW354OIID4ga29rdXJldHN1XCA7Civok4TnqY0gPiBjaGlrdXNla2lcIDsKK+W8seiZqyA+IHlvd2FtdXNoaVwgOwor5b6055m6ID4gY2hvdWhhdHN1XCA7Civlv6Dng4ggPiBjaHV1cmV0c3VcIDsKK+aDnOWIpSA+IHNla2liZXRzdVwgOwor5rS75YqHID4ga2F0c3VnZWtpXCA7Civlj7DmiYAgPiBkYWlkb2tvcm9cIDsKK+W+jOeoiyA+IG5vY2hpaG9kb1wgOwor5Y+N5pelID4gaGFuJyduaWNoaVwgOwor5byT6KGTID4ga3l1dWp1dHN1XCA7CivpgaDov5EgPiBvY2hpa29jaGlcIDsKK+WKm+iqrCA+IHJpa2lzZXRzdVwgOwor6bSs6ImyID4gdWd1aXN1aXJvXCA7CivljZrniakgPiBoYWt1YnV0c3VcIDsKK+WNmOeJqSA+IGhpdG9lbW9ub1wgOwor5q+S562GID4gZG9rdWhpdHN1XCA7CivlkZHlj6MgPiBub21pZ3VjaGlcIDsKK+WRveS5niA+IGlub2NoaWdvaVwgOwor5ZCM5a6kID4gZG91c2hpdHN1XCA7CivmgYvlv4MgPiBrb2lnb2tvcm9cIDsKK+aCquWPoyA+IHdhcnVndWNoaVwgOwor5Yid6ZuqID4gaGF0c3V5dWtpXCA7CivlvLHohbAgPiB5b3dhZ29zaGlcIDsKK+mAhumemCA+IGd5YWt1emF5YVwgOwor5bm06aCDID4gdG9zaGlnb3JvXCA7CivnnYDpmbggPiBjaGFrdXJpa3VcIDsKK+WRiuWIpSA+IGtva3ViZXRzdVwgOwor5rC05rK5ID4gbWl6dWFidXJhXCA7CivmsLfmsLQgPiBrb29yaW1penVcIDsKK+WRiOWHuiA+IHRlaXNodXRzdVwgOwor5YmN6Ly/ID4gc2FraWdvc2hpXCA7Civlj7flrqQgPiBnb3VzaGl0c3VcIDsKK+ays+WyuCA+IGthd2FnaXNoaVwgOwor5by357iuID4ga3lvdXNodWt1XCA7Civlh7rpoZggPiBzaHV0c3VnYW5cIDsKK+WHuumhjCA+IHNodXRzdWRhaVwgOwor5oGQ5a+fID4ga3lvdXNhdHN1XCA7CivpsZfpm7IgPiB1cm9rb2d1bW9cIDsKK+m0g+iIjCA+IGdla2l6ZXRzdVwgOwor56We5YuFID4gc2hpbmNob2t1XCA7CivnpZ3li50gPiBzaHVrdXNob3VcIDsKK+mAmumHiCA+IHRzdXVzaGFrdVwgOwor56CC57KSID4gc3VuYXRzdWJ1XCA7CivpgJ/pgZQgPiBzb2t1dGF0c3VcIDsKK+WHuumZoyA+IHNodXRzdWppblwgOwor6YCa6YGUID4gdHN1dXRhdHN1XCA7CivliJ3ph5wgPiBoYXRzdWdhbWFcIDsKK+WHuumWgCA+IHNodXRzdW1vblwgOwor6Yej5aCAID4gdHN1cmlib3JpXCA7Civov5HpoIMgPiBjaGlrYWdvcm9cIDsKK+mztuiBtyA+IHRvYmlzaG9rdVwgOwor55+z562GID4gc2VraWhpdHN1XCA7Civnn7Pnq7kgPiBzZWtpY2hpa3VcIDsKK+W8lee2sSA+IGhpa2lkenVuYVwgOwor56We5LuPID4gc2hpbmJ1dHN1XCA7Civnn63nrZIgPiB0YW5kenV0c3VcIDsKK+avkueJqSA+IGRva3VidXRzdVwgOwor5Y2z5pelID4gc29rdWppdHN1XCA7CivpgIPpgZMgPiBuaWdlbWljaGlcIDsKK+elnuS4uyA+IGthbicnbnVzaGlcIDsKK+WQiOWNsCA+IGFpamlydXNoaVwgOwor5Y2S5qWtID4gc290c3VneW91XCA7Civli53nnYAgPiBzaG91Y2hha3VcIDsKK+WQkOWHuiA+IHRvc2h1dHN1XCA7Civph5HlnosgPiBrYW5hZ2F0YVwgOwor55+z56WeID4gc2hha3VqaW5cIDsKK+WQjeWIuSA+IG1laXNhdHN1XCA7CivlvL7nnYAgPiBkYW5jaGFrdVwgOwor6JC957GNID4gcmFrdXNla2lcIDsKK+efouetkiA+IHlhZHp1dHN1XCA7Civlv4PmnI0gPiBzaGlucHVrdVwgOwor6YCG6LuiID4gZ3lha3V0ZW5cIDsKK+WQiOWKmyA+IGdvdXJ5b2t1XCA7CivolpnliIAgPiBuYWdpbmF0YVwgOwor5ZCM5YiXID4gZG91cmV0c3VcIDsKK+ebtOmdoiA+IGNob2t1bWVuXCA7Civlvqnmpa0gPiBmdWt1Z3lvdVwgOwor6JaE5Y+jID4gdXN1a3VjaGlcIDsKK+iNiemjnyA+IHNvdXNob2t1XCA7CivluLjpl4cgPiB0b2tveWFtaVwgOwor5ZCI5YaKID4gZ291c2F0c3VcIDsKK+WJpeiQvSA+IGhha3VyYWt1XCA7CivojLbpq6ogPiBjaGFwYXRzdVwgOwor6YCf6KqtID4gc29rdWRva3VcIDsKK+WOs+WvhiA+IGdlbm1pdHN1XCA7Civlh7rpg7cgPiBzaHVra3lvdVwgOwor5Y6a5bqVID4gYXRzdXpva29cIDsKK+W8leeqkyA+IGhpa2ltYWRvXCA7CivliIbovYQgPiBidW5rYXRzdVwgOwor6YCa6KqtID4gdHN1dWRva3VcIDsKK+mBnOiJsiA+IHNvbnNob2t1XCA7Civov73ot6EgPiB0c3Vpc2VraVwgOwor5Yuy54i1ID4ga3Vuc2hha3VcIDsKK+mAmuiosyA+IHRzdXV5YWt1XCA7Civlj6rlj6ogPiB0YWRhdGFkYVwgOwor5Y+L5Z6jID4gdG9tb2dha2lcIDsKK+WNiuaciCA+IGhhbnRzdWtpXCA7CivnnJ/ov7kgPiBzaGluc2VraVwgOwor5ZCJ5L6LID4ga2l0c3VyZWlcIDsKK+i/kemJhCA+IGtpbnRldHN1XCA7CivojLbpo68gPiBjaGFtZXNoaVwgOwor5Yil6KiAID4gYmV0c3VnZW5cIDsKK+aulueUoyA+IHNob2t1c2FuXCA7Civph5Hlj6MgPiBraW5ndWNoaVwgOwor6YCg6KGAID4gem91a2V0c3VcIDsKK+mzpeexoCA+IHRvcmlrYWdvXCA7Civli4PnmbogPiBib3BwYXRzdVwgOwor5bu656+JID4ga2VuY2hpa3VcIDsKK+WHuui6qyA+IHNodXNzaGluXCA7CivljYHmnIggPiBqdXVnYXRzdVwgOwor5Y+j5Y2gID4ga3VjaGl1cmFcIDsKK+ato+eriyA+IHNlaXJpdHN1XCA7Civpr6jpqqggPiBnZWlrb3RzdVwgOwor5rGC5b+DID4ga3l1dXNoaW5cIDsKK+ebuOmOmiA+IGFpZHp1Y2hpXCA7CivnnLzorZggPiBnYW5zaGlraVwgOwor5b+D5ouNID4gc2hpbnBha3VcIDsKK+W9vOatpCA+IGthcmVrb3JlXCA7Civmra/no6ggPiBoYW1pZ2FraVwgOwor6JC955+zID4gcmFrdXNla2lcIDsKK+W4nemXlSA+IHRlaWtldHN1XCA7CivlhoXpsJAgPiB1Y2hpd2FuaVwgOwor55yf6LmfID4gc2hpbnNla2lcIDsKK+WPpOWJtSA+IGZ1cnVraXp1XCA7CivptKjnjJ8gPiBrYW1vcnlvdVwgOwor5rKh5Y20ID4gYm9ra3lha3VcIDsKK+mHkeWKmyA+IGtpbnJ5b2t1XCA7Civlj7PlgbQgPiBtaWdpZ2F3YVwgOwor5Ye66LaFID4gc2h1dGNob3VcIDsKK+WPo+WJjSA+IGt1Y2hpbWFlXCA7CivliLvoloQgPiBrb2t1aGFrdVwgOwor55yf6LehID4gc2hpbnNla2lcIDsKK+awtOaApyA+IG1penVzaG91XCA7CivluoPoopYgPiBoaXJvc29kZVwgOwor6YeN5YqbID4ganV1cnlva3VcIDsKK+ebuOmJhCA+IHNvdXRldHN1XCA7Civojbfou4ogPiBuaWd1cnVtYVwgOwor5YuV54mpID4gZG91YnV0c3VcIDsKK+efpeeVpSA+IGNoaXJ5YWt1XCA7Civnm67pjLIgPiBtb2t1cm9rdVwgOwor5YiH6KuWID4gc2V0c3Vyb25cIDsKK+WHtuiziiA+IGt5b3V6b2t1XCA7CivnnYDoo4UgPiBjaGFrdXNvdVwgOwor6YGF6ISIID4gY2hpbXlha3VcIDsKK+awtOW8lSA+IG1penVoaWtpXCA7CivmqYjpqqggPiB0b3Vrb3RzdVwgOwor5q6y5ruFID4gc2VubWV0c3VcIDsKK+WPpOWCtyA+IGZ1cnVraXp1XCA7CivlhqDpm6ogPiBrYW5zZXRzdVwgOwor5YyX5qW1ID4gaG9ra3lva3VcIDsKK+W5u+ihkyA+IGdlbmp1dHN1XCA7CivmsLfluoogPiBoeW91c2hvdVwgOwor5YqD562WID4ga2FrdXNha3VcIDsKK+WNs+W4rSA+IHNva3VzZWtpXCA7Civlj4jlj4ggPiBtYXRhbWF0YVwgOwor5rC05bqVID4gbWluYXNva29cIDsKK+ebtOmFjSA+IGNob2t1aGFpXCA7CivliIfoqIAgPiBzZXRzdWdlblwgOwor5oCl5ZGKID4ga3l1dWtva3VcIDsKK+mHiOWFuCA+IHNoYWt1dGVuXCA7Civmr6vmnKsgPiBnb3VtYXRzdVwgOwor5Y2K5oqYID4gaGFuc2V0c3VcIDsKK+W5s+iiliA+IGhpcmFzb2RlXCA7Civpr5vpo68gPiB0YWltZXNoaVwgOwor5YiH6KaBID4gc2V0c3V5b3VcIDsKK+W3u+mbsiA+IG1ha2lndW1vXCA7CivmrovniakgPiB6YW5idXRzdVwgOwor5oWL44CFID4gd2F6YXdhemFcIDsKK+WKq+eVpSA+IGdvdXJ5YWt1XCA7Civlj43liKUgPiB0YW5iZXRzdVwgOwor5q2j55u0ID4gc2hvdWppa2lcIDsKK+WKueeOhyA+IGtvdXJpdHN1XCA7Civlj6rkuosgPiB0YWRhZ290b1wgOwor56Kp5a2mID4gc2VraWdha3VcIDsKK+awtOW1qSA+IG1penVrYXNhXCA7Civnm7TpgIEgPiBjaG9rdXNvdVwgOwor5YiG6KOCID4gYnVucmV0c3VcIDsKK+W9ueafhCA+IHlha3VnYXJhXCA7Civlh4zovrEgPiByeW91am9rdVwgOwor5b6L5paHID4gcml0c3VidW5cIDsKK+eoi+OAhSA+IGhvZG9ob2RvXCA7Civlj47lhaUgPiBzaHV1bnl1dVwgOwor6Iul6baPID4gd2FrYWRvcmlcIDsKK+ayiOWLhyA+IGNoaW4nJ3l1dVwgOwor5Y+M5YWtID4gc3Vnb3Jva3VcIDsKK+W7g+e1tiA+IGhhaXpldHN1XCA7CivpgZPns7ggPiBtaWNoaWl0b1wgOwor5Ym156uLID4gc291cml0c3VcIDsKK+WNlOW/gyA+IGt5b3VzaGluXCA7CivljJfmnJ0gPiBob2t1Y2hvdVwgOwor5YuH54OIID4geXV1cmV0c3VcIDsKK+aAp+WIpSA+IHNlaWJldHN1XCA7Civli4PnhLYgPiBib3RzdXplblwgOwor5Y2Y5byPID4gdGFuc2hpa2lcIDsKK+WPguWIlyA+IHNhbnJldHN1XCA7CivmsJflv4MgPiBraWdva29yb1wgOwor5bed6aKoID4ga2F3YWthemVcIDsKK+WIgOihkyA+IHRvdWp1dHN1XCA7CivljKHmlZEgPiBreW91a3l1dVwgOwor5q2754mpID4gc2hpYnV0c3VcIDsKK+WIs+iInyA+IGt1cmlidW5lXCA7CivlvbzmmK8gPiBrYXJla29yZVwgOwor5YiG6J2VID4gYnVuc2hva3VcIDsKK+eZvemzpSA+IGhha3VjaG91XCA7CivlhbXpo58gPiBoZWlzaG9rdVwgOwor5q6/5qeYID4gdG9ub3NhbWFcIDsKK+WPguWFpSA+IHNhbicnbnl1dVwgOwor5Y+X5LuYID4gdWtldHN1a2VcIDsKK+WNmOW4ryA+IGhpdG9lb2JpXCA7Civnn6/mv4AgPiBreW91Z2VraVwgOwor5oCq5YKRID4ga2Fpa2V0c3VcIDsKK+WIuuiCoSA+IHNhc3VtYXRhXCA7CivmsbLlj5YgPiBrdW1pdG9yaVwgOwor56CC5rWcID4gc3VuYWhhbWFcIDsKK+mBlOethiA+IHRhcHBpdHN1XCA7CivlibLnpLwgPiBrYXRzdXJlaVwgOwor5q+O5pyIID4gbWFpdHN1a2lcIDsKK+WNh+W9oiA+IG1hc3VnYXRhXCA7Civlt53pnKcgPiBrYXdhZ2lyaVwgOwor5YqH55qEID4gZ2VraXRla2lcIDsKK+WIhuiYliA+IGJ1bmtldHN1XCA7Civlj5TkuJYgPiBzaHVrdXNlaVwgOwor5YWA6be5ID4gaGFnZXRha2FcIDsKK+WLmOaxuiA+IGthbmtldHN1XCA7CivljbPlppkgPiBzb2t1bXlvdVwgOwor5Ymj56qBID4ga2VudHN1a3VcIDsKK+W/heWumiA+IGhpdHN1am91XCA7CivmgKXkv6EgPiBreXV1c2hpblwgOwor5YmN57SEID4gemVuJyd5YWt1XCA7Civliofnl5sgPiBnZWtpdHN1dVwgOwor5Y2I5bm0ID4gdW1hZG9zaGlcIDsKK+W5s+iQvSA+IGhpcmFvY2hpXCA7CivnoazlvI8gPiBrb3VzaGlraVwgOwor5bi46K2YID4gam91c2hpa2lcIDsKK+W/g+WtpiA+IHNoaW5nYWt1XCA7Civmr47ml6UgPiBtYWluaWNoaVwgOwor55m96aqoID4gaGFra290c3VcIDsKK+WNh+W4rSA+IG1hc3VzZWtpXCA7CivmqKrpoqggPiB5b2tva2F6ZVwgOwor5oCl5Ly4ID4ga3l1dXNoaW5cIDsKK+mwkOi2syA+IHdhbmlhc2hpXCA7CivpgYXnrYYgPiBjaGloaXRzdVwgOwor5q+N5pa5ID4gaGFoYWthdGFcIDsKK+awt+WjgSA+IGh5b3VoZWtpXCA7Civnnp7nnYAgPiBtYW5jaGFrdVwgOwor6L6b6L6bID4ga2FyYWdhcmFcIDsKK+ebuOitmCA+IHNvdXNoaWtpXCA7Civoj5znrrggPiBzYWliYXNoaVwgOwor6YCx57WmID4gc2h1dWt5dXVcIDsKK+WFq+mdoiA+IGhhY2hpbWVuXCA7CivljZrlraYgPiBoYWt1Z2FrdVwgOwor5q6W5rCRID4gc2hva3VtaW5cIDsKK+mAsue0miA+IHNoaW5reXV1XCA7CivliY3nr4AgPiB6ZW5zZXRzdVwgOwor5b6X5b+DID4gdG9rdXNoaW5cIDsKK+edgOiIuSA+IGNoYWt1c2VuXCA7CivlvJXmva4gPiBoaWtpc2hpb1wgOwor5bi46KitID4gam91c2V0c3VcIDsKK+W+l+W+lyA+IHRva3V0b2t1XCA7CivokL3mva4gPiByYWt1Y2hvdVwgOwor5byx5q+SID4gamFrdWRva3VcIDsKK+WOpeWGtyA+IGtldHN1cmVpXCA7CivolLXlhYMgPiBrdXJhbW90b1wgOwor5bu654mpID4gdGF0ZW1vbm9cIDsKK+atu+a7hSA+IHNoaW1ldHN1XCA7Civli4fmsbogPiB5dXVrZXRzdVwgOwor5YWI6auYID4gc2FraWRha2FcIDsKK+eZuumnhSA+IGhhdHN1ZWtpXCA7CivpgIDoibIgPiB0YWlzaG9rdVwgOwor5rCX5a6kID4ga2lzaGl0c3VcIDsKK+WGhumMkCA+IG1hcnVnaXJpXCA7Civli53mpb0gPiBzaG91cmFrdVwgOwor5YWO6aasID4gdXNhZ2l1bWFcIDsKK+asoOekvCA+IGtldHN1cmVpXCA7CivlvZPmnIggPiB0b3VnZXRzdVwgOwor5Y2D5bO2ID4gY2hpc2hpbWFcIDsKK+aoqumbsiA+IHlva29ndW1vXCA7CivlvpDlvpAgPiBzb3Jvc29yb1wgOwor5YWD6auYID4gbW90b2Rha2FcIDsKK+W4q+iqrCA+IHNoaXNldHN1XCA7CivljIXmkYIgPiBob3VzZXRzdVwgOwor5q6/5pa5ID4gdG9ub2dhdGFcIDsKK+awkeWuvyA+IG1pbnNodWt1XCA7CivpgKPntZAgPiByZW5rZXRzdVwgOwor55u06KiAID4gY2hva3VnZW5cIDsKK+W9juaciCA+IHdhbmdldHN1XCA7Civlt6HpjKsgPiBqdW5zaGFrdVwgOwor5b2O5puyID4gd2Fua3lva3VcIDsKK+ebtOinkiA+IGNob2trYWt1XCA7Civlu4nnm7QgPiByZW5jaG9rdVwgOwor55u06KaaID4gY2hva2tha3VcIDsKK+ebtOimliA+IGNob2t1c2hpXCA7CivmrbvmtLsgPiBzaGlrYXRzdVwgOwor5b+D5aKDID4gc2hpbmt5b3VcIDsKK+W5s+iEiCA+IGhlaW15YWt1XCA7CivlvZPml6UgPiB0b3VqaXRzdVwgOwor5b6p5a2mID4gZnVrdWdha3VcIDsKK+WFpemWoyA+IG55dXVrYWt1XCA7CivmqKrplbcgPiB5b2tvbmFnYVwgOwor5q275rKhID4gc2hpYm90c3VcIDsKK+WMheaLrCA+IGhvdWthdHN1XCA7CivpgIDogbcgPiB0YWlzaG9rdVwgOwor5b+g5ZGKID4gY2h1dWtva3VcIDsKK+W3u+i7uCA+IG1ha2lqaWt1XCA7Civnmb7pm7cgPiBoeWFrdXJhaVwgOwor55m+6ZujID4gaHlha3VuYW5cIDsKK+WHuuiKvSA+IHNodXRzdWdhXCA7Civoj4XnrKAgPiBzdWdlZ2FzYVwgOwor5Ymb55u0ID4gZ291Y2hva3VcIDsKK+WKoOa5vyA+IGthc2hpdHN1XCA7Civnmbrpm7sgPiBoYXRzdWRlblwgOwor5YiG6ISIID4gYnVubXlha3VcIDsKK+ebo+iosyA+IGthbicneWFrdVwgOwor5byP5rOVID4gc2hpa2lob3VcIDsKK+mBheedgCA+IGNoaWNoYWt1XCA7CivlhZrplqUgPiB0b3ViYXRzdVwgOwor5Yil57SNID4gYmV0c3Vub3VcIDsKK+WIkee9sCA+IGtlaWJhdHN1XCA7CivlhoXpgZQgPiBuYWl0YXRzdVwgOwor5q275q2/ID4gc2hpYm90c3VcIDsKK+W/g+WaoiA+IHNoaW4nJ25vdVwgOwor5b255b6XID4geWFrdXRva3VcIDsKK+mAo+eriyA+IHJlbnJpdHN1XCA7Civpg7fmhIEgPiBreW91c2h1dVwgOwor5b235b2/ID4gaG91ZnV0c3VcIDsKK+W6reefsyA+IG5pd2Fpc2hpXCA7CivliIfogIUgPiBraXJlbW9ub1wgOwor6YGF55m6ID4gY2hpaGF0c3VcIDsKK+WFg+memCA+IG1vdG9zYXlhXCA7Civlv5jljbQgPiBib3VreWFrdVwgOwor5q205q20ID4gcmVraXJla2lcIDsKK+eiuuS/oSA+IGtha3VzaGluXCA7Civnn7Pmn7EgPiBzZWtpY2h1dVwgOwor5qyg55WqID4ga2V0c3ViYW5cIDsKK+W9sOW+syA+IHNob3V0b2t1XCA7CivpsYjohbkgPiB0YXJhZnVrdVwgOwor5Ymy54mpID4gd2FyZW1vbm9cIDsKK+W5leiHoyA+IGJha3VzaGluXCA7CivlhaXpi48gPiBueXV1a3lvdVwgOwor6Lu96bSoID4ga2FydWdhbW9cIDsKK+W8r+absiA+IHdhbmt5b2t1XCA7Civlv7Xku48gPiBuZW5idXRzdVwgOwor6I+K55+zID4ga2lrdWlzaGlcIDsKK+WGt+ihgCA+IHJlaWtldHN1XCA7CivlubPntbkgPiBoaXJhZ2ludVwgOwor6YWS5ZGRID4gc2FrZW5vbWlcIDsKK+iRieahnCA+IGhhemFrdXJhXCA7CivnnYDnsbMgPiBjaGFrdWJlaVwgOwor5by35pW1ID4ga3lvdXRla2lcIDsKK+axguWEnyA+IGt5dXVzaG91XCA7CivpgJrnp7AgPiB0c3V1c2hvdVwgOwor5b+g5YOVID4gY2h1dWJva3VcIDsKK+awtOWKmyA+IHN1aXJ5b2t1XCA7CivmrovmnIggPiB6YW5nZXRzdVwgOwor5YuF5pu4ID4gY2hva3VzaG9cIDsKK+WFsemAmiA+IGt5b3V0c3V1XCA7CivliY3nlaUgPiB6ZW5yeWFrdVwgOwor5q6K5pu0ID4ga290b3NhcmFcIDsKK+W8puaciCA+IGdlbmdldHN1XCA7Civnm67olqwgPiBtZWd1c3VyaVwgOwor5Y2U5ZWGID4ga3lvdXNob3VcIDsKK+eZvumMrCA+IGh5YWt1cmVuXCA7CivlhazpgZQgPiBrb3V0YXRzdVwgOwor5byx5pW1ID4gamFrdXRla2lcIDsKK+mAhueulyA+IGd5YWt1c2FuXCA7Civpu5njgIUgPiBtb2t1bW9rdVwgOwor5YWr6YGUID4gaGF0dGF0c3VcIDsKK+WFq+mBkyA+IGhhY2hpZG91XCA7CivljJflsbEgPiBraXRheWFtYVwgOwor5Ym/5ruFID4gc291bWV0c3VcIDsKK+W7g+eJqSA+IGhhaWJ1dHN1XCA7Civlhazov7AgPiBrb3VqdXRzdVwgOwor5b+g5L+hID4gY2h1dXNoaW5cIDsKK+earuizqiA+IGhpc2hpdHN1XCA7Civnn7PmlocgPiBpc2hpYnVtaVwgOwor5b2i5byPID4ga2Vpc2hpa2lcIDsKK+WHi+iQvSA+IGNob3VyYWt1XCA7Civli4Xml6ggPiBjaG9rdXNoaVwgOwor5Y245YCkID4gb3Jvc2hpbmVcIDsKK+efreaXpSA+IHRhbmppdHN1XCA7CivmsLTlhYggPiBtaXp1c2FraVwgOwor5be36KqsID4ga291c2V0c3VcIDsKK+WFsei7myA+IGt5b3V5YWt1XCA7Civpu5LjgIUgPiBrdXJvZ3Vyb1wgOwor5Yml54S8ID4gc3VraXlha2lcIDsKK+mAouedgCA+IGhvdWNoYWt1XCA7Civlu4PnhrEgPiBoYWluZXRzdVwgOwor5b255a6FID4geWFrdXRha3VcIDsKK+WIsOedgCA+IHRvdWNoYWt1XCA7CivojLnom7ggPiB5dWRlZGFrb1wgOwor5by35oyvID4ga3lvdXNoaW5cIDsKK+WGjeiqrCA+IHNhaXNldHN1XCA7CivpgKPnmbogPiByZW5wYXRzdVwgOwor5b6p5ZSxID4gZnVrdXNob3VcIDsKK+efpeaXpSA+IGNoaW5pY2hpXCA7CivlvrTlj44gPiBjaG91c2h1dVwgOwor5YuF5pKwID4gY2hva3VzZW5cIDsKK+WIhuevgCA+IGJ1bnNldHN1XCA7CivphY3liJcgPiBoYWlyZXRzdVwgOwor5Yem572wID4gc2hvYmF0c3VcIDsKK+WGjeiorSA+IHNhaXNldHN1XCA7CivmrbTmnJ0gPiByZWtpY2hvdVwgOwor5YqH5q+SID4gZ2VraWRva3VcIDsKK+i/veeptiA+IHRzdWlreXV1XCA7CivmrbPmnKsgPiBzYWltYXRzdVwgOwor5qiq6Lu4ID4geW9rb2ppa3VcIDsKK+WIhuethiA+IGJ1bnBpdHN1XCA7CivovK/pjLIgPiBzaHV1cm9rdVwgOwor5Y2K5Y+jID4gaGFua3VjaGlcIDsKK+WNgeWTsiA+IGp1dHRldHN1XCA7Civnmb7pgbggPiBoeWFrdXNlblwgOwor5buJ5r2UID4gcmVua2V0c3VcIDsKK+WFiOmHkSA+IHNha2lnYW5lXCA7Civou73po58gPiBrZWlzaG9rdVwgOwor5YiG56uLID4gYnVucml0c3VcIDsKK+WGheiosyA+IHVjaGl3YWtlXCA7Civov73npo8gPiB0c3VpZnVrdVwgOwor55m66YGUID4gaGF0dGF0c3VcIDsKK+assua3sSA+IHlva3VidWthXCA7Civmrarmm7IgPiB3YWlreW9rdVwgOwor5YWl6LaFID4gbnl1dWNob3VcIDsKK+WJsuazqCA+IHdhcmljaHV1XCA7CivmsJHlipsgPiBtaW5yeW9rdVwgOwor5YyX5aOBID4gaG9rdWhla2lcIDsKK+W7g+a7hSA+IGhhaW1ldHN1XCA7CivmsLTkuIogPiBtaW5ha2FtaVwgOwor5Yid55uGID4gaGF0c3Vib25cIDsKK+ato+acrSA+IHNob3VmdWRhXCA7CivokazlvI8gPiBzb3VzaGlraVwgOwor5YWl6LOeID4gbnl1dXNob3VcIDsKK+WFiOmBlCA+IHNlbmRhdHN1XCA7CivmraLmnKggPiB0b21hcmlnaVwgOwor552A55y8ID4gY2hha3VnYW5cIDsKK+WNiuWIhyA+IGhhbnNldHN1XCA7CivliJ3nmbogPiBzaG9oYXRzdVwgOwor6Luf6aqoID4gbmFua290c3VcIDsKK+W9k+WxgCA+IHRvdWt5b2t1XCA7CivmrrrlrrMgPiBzYXRzdWdhaVwgOwor6JC95o6MID4gcmFrdXNob3VcIDsKK+WFseiosyA+IGt5b3V5YWt1XCA7CivlvLflvLEgPiBreW91amFrdVwgOwor5b+D5LitID4gc2hpbmNodXVcIDsKK+W5s+eavyA+IGhpcmF6YXJhXCA7CivliJ3nlKMgPiBoYXRzdXphblwgOwor5bi457eRID4gam91cnlva3VcIDsKK+WNl+S7jyA+IG5hbmZ1dHN1XCA7CivliqvmjqAgPiBnb3VyeWFrdVwgOwor5Y2B5YWrID4ganV1aGFjaGlcIDsKK+WFrOiorSA+IGtvdXNldHN1XCA7Civpganmpa0gPiB0ZWtpZ3lvdVwgOwor6ayx6ayxID4gdXRzdXV0c3VcIDsKK+i/veeZvSA+IHRzdWloYWt1XCA7CivlvpPljZIgPiBqdXVzb3RzdVwgOwor5b6h5YagID4gb2thbm11cmlcIDsKK+W+i+WRgiA+IHJpdHN1cnlvXCA7CivovqPohZUgPiByYXRzdXdhblwgOwor552A55SoID4gY2hha3V5b3VcIDsKK+mAhueUqCA+IGd5YWt1eW91XCA7CivpgIbnlKMgPiBneWFrdXphblwgOwor5YWt6KaqID4gcm9rdXNoaW5cIDsKK+W+jOWPoyA+IGF0b2t1Y2hpXCA7CivlhajoqLMgPiB6ZW4nJ3lha3VcIDsKK+WNmOS4gCA+IHRhbicnaXRzdVwgOwor5biv57eRID4gdGFpcnlva3VcIDsKK+efs+W8kyA+IGlzaGl5dW1pXCA7Civpgbjmm7IgPiBzZW5reW9rdVwgOwor6YCa54mSID4gdHN1dWNob3VcIDsKK+ebtOe3miA+IGNob2t1c2VuXCA7CivnnIznq4sgPiBrZW5yaXRzdVwgOwor5Yil54q2ID4gYmV0c3Vqb3VcIDsKK+WHjee1kCA+IHRvdWtldHN1XCA7Civlt53onYkgPiBrYXdhc2VtaVwgOwor6YO35Zu9ID4ga3lvdWtva3VcIDsKK+WJr+alrSA+IGZ1a3VneW91XCA7Civov73nlLMgPiB0c3Vpc2hpblwgOwor56CC5bGxID4gc3VuYXlhbWFcIDsKK+W+i+WLlSA+IHJpdHN1ZG91XCA7CivmraPmjqUgPiBzZWlzZXRzdVwgOwor6L+r55yfID4gaGFrdXNoaW5cIDsKK+ecgeethiA+IHNlaWhpdHN1XCA7CivlvJ/lvqEgPiBvdG91dG9nb1wgOwor5YWH6LOKID4ga3lvdXpva3VcIDsKK+WHhOe1tiA+IHNlaXpldHN1XCA7CivlvozliJcgPiBrb3VyZXRzdVwgOwor5by35bCGID4ga3lvdXNob3VcIDsKK+W5tOeOhyA+IG5lbnJpdHN1XCA7CivlhpfoiIwgPiBqb3V6ZXRzdVwgOwor5qiZ6Ki7ID4gaHlvdWNodXVcIDsKK+ecn+eZvSA+IG1hc3NoaXJvXCA7CivlhbjolqwgPiB0ZW4nJ3lha3VcIDsKK+W8seWwkSA+IGpha3VzaG91XCA7CivlvLHlsI8gPiBqYWt1c2hvdVwgOwor55u0562UID4gY2hva3V0b3VcIDsKK+efs+WxsSA+IGlzaGl5YW1hXCA7CivojJzoibIgPiBha2FuZWlyb1wgOwor55m66KiAID4gaGF0c3VnZW5cIDsKK+W8k+W9oiA+IHl1bWluYXJpXCA7Civlia/mnKggPiBmdWt1Ym9rdVwgOwor55yf55eHID4gc2hpbnNob3VcIDsKK+WKo+aDhSA+IHJldHN1am91XCA7CivlhqXnvbAgPiBtZWliYXRzdVwgOwor56We44CFID4ga2FtaWdhbWlcIDsKK+WKo+aCqiA+IHJldHN1YWt1XCA7Civprq7ooYAgPiBzZW5rZXRzdVwgOwor5b255YmyID4geWFrdXdhcmlcIDsKK+efs+WupCA+IGlzaGltdXJvXCA7Civoi6XooYYgPiB3YWthc2h1dVwgOwor5q+N5ZCbID4gaGFoYWdpbWlcIDsKK+W5s+eGsSA+IGhlaW5ldHN1XCA7Civnm7TnqI4gPiBjaG9rdXplaVwgOwor6L+R552AID4ga2luY2hha3VcIDsKK+mBk+advyA+IG1pY2hpaXRhXCA7Civli4XlrqMgPiBjaG9rdXNlblwgOwor55+p5bC6ID4ga2FuZWpha3VcIDsKK+WIh+eJqSA+IGtpcmVtb25vXCA7CivpgbjmipwgPiBzZW5iYXRzdVwgOwor55m96J+7ID4gc2hpcm9hcmlcIDsKK+W8t+WlqiA+IGdvdWRhdHN1XCA7CivliLrmrrogPiBzaGlzYXRzdVwgOwor5Yeh55m+ID4gYm9ucHlha3VcIDsKK+W+i+S7pCA+IHJpdHN1cmVpXCA7CivlhoXohb8gPiB1Y2hpbW9tb1wgOwor6LuN6ZalID4gZ3VuYmF0c3VcIDsKK+W5o+eJqSA+IGhlaW1vdHN1XCA7CivpgLjmpb0gPiBpdHN1cmFrdVwgOwor6YCf5rG6ID4gc29ra2V0c3VcIDsKK+WMl+WBtCA+IGhva3Vzb2t1XCA7CivlvavliLsgPiBjaG91a29rdVwgOwor6YCG5r2uID4gc2FrYXNoaW9cIDsKK+egsuWIlyA+IGhvdXJldHN1XCA7CivmraPlvI8gPiBzZWlzaGlraVwgOwor5Yag57W2ID4ga2FuemV0c3VcIDsKK+auv+WOnyA+IHRvbm9iYXJhXCA7Civlh7jnirYgPiB0b3RzdWpvdVwgOwor5YaF6IKhID4gdWNoaW1vbW9cIDsKK+mBlOaWhyA+IHRhdHN1YnVuXCA7CivlvoHkvJAgPiBzZWliYXRzdVwgOwor5bm75ruFID4gZ2VubWV0c3VcIDsKK+W8vuWcpyA+IGRhbicnYXRzdVwgOwor6Lu96Lu9ID4ga2FydWdhcnVcIDsKK+WFheihgCA+IGp1dWtldHN1XCA7CivlhoXogbcgPiBuYWlzaG9rdVwgOwor6Luf6YmEID4gbmFudGV0c3VcIDsKK+W5sua9riA+IGhpa2lzaGlvXCA7Civnn7PloqggPiBzZWtpYm9rdVwgOwor5Yik5rG6ID4gaGFua2V0c3VcIDsKK+efreWknCA+IG1pamlrYXlvXCA7CivlvLflnKcgPiBreW91YXRzdVwgOwor5bmz5ruRID4gaGVpa2F0c3VcIDsKK+W8t+WbvSA+IGt5b3Vrb2t1XCA7CivprKLplbcgPiBiaW4nJ25hZ2FcIDsKK+WGhue9kCA+IG1hcnVnYW1hXCA7Civnm7Tnm7QgPiBqaWtpamlraVwgOwor5be757SZID4gbWFraWdhbWlcIDsKK+WFvOiBtyA+IGtlbnNob2t1XCA7CivmrKDmlocgPiBrZXRzdWJ1blwgOwor5Yas56m6ID4gZnV5dXpvcmFcIDsKK+mBheaXpSA+IGNoaWppdHN1XCA7CivliKXmrr8gPiBiZXRzdWRlblwgOwor5Yil5q61ID4gYmV0c3VkYW5cIDsKK+mAhua1qiA+IHNha2FuYW1pXCA7Civnmb3ok64gPiBieWFrdXJlblwgOwor55+z5Z6jID4gaXNoaWdha2lcIDsKK+mDt+S/lyA+IGt5b3V6b2t1XCA7Civou7jotrMgPiBqaWt1YXNoaVwgOwor6YCG5rOiID4gc2FrYW5hbWlcIDsKK+ebrueahCA+IG1va3V0ZWtpXCA7CivokKnlsZ4gPiBoYWdpem9rdVwgOwor6YCf5qWtID4gaGF5YXdhemFcIDsKK+auteWIpSA+IHRhbmJldHN1XCA7CivluILnq4sgPiBzaGlyaXRzdVwgOwor6Iul6I2JID4gd2FrYWt1c2FcIDsKK+edgOawtCA+IGNoYWt1c3VpXCA7Civou6LovY0gPiB0ZW50ZXRzdVwgOwor6bCQ55quID4gd2FuaWdhd2FcIDsKK+atouWuvyA+IHNoaXNodWt1XCA7CivoirjooZMgPiBnZWlqdXRzdVwgOwor5q2j5a6XID4gbWFzYW11bmVcIDsKK+aoquiFuSA+IHlva29iYXJhXCA7CivlhpfnrYYgPiBqb3VoaXRzdVwgOwor5YWs6IG3ID4ga291c2hva3VcIDsKK+WQhOOAhSA+IHNvcmV6b3JlXCA7CivliIPmuKEgPiBoYXdhdGFyaVwgOwor6bOp5bC+ID4gbWl6b29jaGlcIDsKK+mro+mrtCA+IGhvdWZ1dHN1XCA7Civlh7rmvJQgPiBzaHV0c3VlblwgOwor6YGp5b25ID4gdGVraXlha3VcIDsKK+i6q+mVtyA+IHNoaW5jaG91XCA7CivlipvlraYgPiByaWtpZ2FrdVwgOwor6Imy6YGTID4gc2hpa2lkb3VcIDsKK+eZvuiKuCA+IGh5YWt1Z2VpXCA7Civli6LlipsgPiBzZWlyeW9rdVwgOwor6Ii56ZyKID4gZnVuYWRhbWFcIDsKK+i/veaxgiA+IHRzdWlreXV1XCA7CivnoILljp8gPiBzdW5haGFyYVwgOwor5b2O5YWlID4gd2FuJydueXV1XCA7CivliLbmnK0gPiBzZWlzYXRzdVwgOwor5qW96ZW3ID4gZ2FrdWNob3VcIDsKK+ebtOeQgyA+IGNob2treXV1XCA7CivliIbms4wgPiBidW5waXRzdVwgOwor5qW16ZmQID4ga3lva3VnZW5cIDsKK+muq+iGmiA+IHNhbWVoYWRhXCA7CivnmbroibIgPiBoYXNzaG9rdVwgOwor6JGs5YiXID4gc291cmV0c3VcIDsKK+WLheWVjyA+IGNob2t1bW9uXCA7CivlvL7lipsgPiBkYW5yeW9rdVwgOwor5byP5aC0ID4gc2hpa2lqb3VcIDsKK+mrmOmrmCA+IHRha2FkYWthXCA7CivlibLlvJUgPiB3YXJpYmlraVwgOwor5qyy5b+DID4geW9rdXNoaW5cIDsKK+mBuOWxgCA+IHNlbmt5b2t1XCA7CivliZTmiokgPiB0ZWtrZXRzdVwgOwor5qyy5b6XID4geW9rdXRva3VcIDsKK+muruiCiSA+IHNlbicnbmlrdVwgOwor6YCG5qeYID4gc2FrYXNhbWFcIDsKK+mAsuaSgyA+IHNoaW5nZWtpXCA7Civli5XlipsgPiBkb3VyeW9rdVwgOwor5YuF5ZG9ID4gY2hva3VtZWlcIDsKK+WHm+eDiCA+IHJpbnJldHN1XCA7Civmrablo6sgPiBtb25vbm9mdVwgOwor6a6r6IKMID4gc2FtZWhhZGFcIDsKK+auuuS6uiA+IHNhdHN1amluXCA7Civlg63otoogPiBzZW4nJ2V0c3VcIDsKK+mAo+aXpSA+IHJlbmppdHN1XCA7CivmraPlpKIgPiBtYXNheXVtZVwgOwor5Yi35pWwID4gc2F0c3VzdXVcIDsKK+i7i+i9oiA+IGF0c3VyZWtpXCA7CivliKXmnaEgPiBiZXRzdWpvdVwgOwor5YSy6JOEID4gY2hvY2hpa3VcIDsKK+WGhueqkyA+IG1hcnVtYWRvXCA7Civoi6XogIUgPiB3YWthbW9ub1wgOwor6LuK6L2EID4gc2hha2F0c3VcIDsKK+aBkOOAhSA+IGtvd2Fnb3dhXCA7CivpgJrmmoEgPiB0c3V1Z3lvdVwgOwor5YmN5omVID4gbWFlYmFyYWlcIDsKK+eZvuiBniA+IGh5YWt1YnVuXCA7CivnmbrogrIgPiBoYXRzdWlrdVwgOwor5Y+q44CFID4gdGFkYXRhZGFcIDsKK+mAkOadoSA+IGNoaWt1am91XCA7Civnm4rnm4ogPiBtYXN1bWFzdVwgOwor5qiq57ieID4geW9rb2ppbWFcIDsKK+mBlOW8gSA+IHRhdHN1YmVuXCA7Civlt6Pnqp8gPiBzb3VrdXRzdVwgOwor5bed562LID4ga2F3YXN1amlcIDsKK+WDo+i2iiA+IHNlbicnZXRzdVwgOwor5be+552AID4ga2luY2hha3VcIDsKK+WFjeiBtyA+IG1lbnNob2t1XCA7Civli4flipsgPiB5dXVyeW9rdVwgOwor5bed56uvID4ga2F3YWJhdGFcIDsKK+WLgeWNkiA+IGtlaXNvdHN1XCA7CivlhoXnpZ0gPiB1Y2hpaXdhaVwgOwor6I2J54mpID4ga3VzYW1vbm9cIDsKK+Wys+m6kyA+IGdha3Vyb2t1XCA7CivliIbmpbUgPiBidW5reW9rdVwgOwor5qeN6KGTID4gc291anV0c3VcIDsKK+mAo+aOpSA+IHJlbnNldHN1XCA7CivlhaXnsY0gPiBueXV1c2VraVwgOwor5Ymv5bCGID4gZnVrdXNob3VcIDsKK+WJr+WvqSA+IGZ1a3VzaGluXCA7Civnn6XlipsgPiBjaGlyeW9rdVwgOwor5Ymy5a6JID4gd2FyaXlhc3VcIDsKK+WHpuaxuiA+IHNob2tldHN1XCA7CivlubTmnKsgPiBuZW5tYXRzdVwgOwor5bm+5pelID4gaWt1bmljaGlcIDsKK+W5tOaciCA+IG5lbmdldHN1XCA7CivliIfmoKogPiBraXJpa2FidVwgOwor5Yq55YqbID4ga291cnlva3VcIDsKK+mquOmqqCA+IGdhaWtvdHN1XCA7Civlhaznq4sgPiBrb3VyaXRzdVwgOwor5byP5Y+wID4gc2hpa2lkYWlcIDsKK+mqqOmxlyA+IGtvdHN1cmluXCA7Civlho3nmbogPiBzYWloYXRzdVwgOwor5q275YqbID4gc2hpcnlva3VcIDsKK+WKtOWKmyA+IHJvdXJ5b2t1XCA7CivmqKrnrYsgPiB5b2tvc3VqaVwgOwor5beM56qfID4gZ2Fua3V0c3VcIDsKK+WGrOeJqSA+IGZ1eXVtb25vXCA7CivpgIbmlbAgPiBneWFrdXN1dVwgOwor5YWO57ayID4gdXNhZ2lhbWlcIDsKK+eZveezuCA+IHNoaXJhaXRvXCA7CivmrbvliKUgPiBzaGliZXRzdVwgOwor5YiH5pytID4ga2lyaWZ1ZGFcIDsKK+WIh+acmyA+IHNldHN1Ym91XCA7CivlubPml6UgPiBoZWlqaXRzdVwgOwor5bem55uuID4gaGlkYXJpbWVcIDsKK+i7veiUkSA+IGtlaWJldHN1XCA7CivliaPlrqIgPiBrZW5reWFrdVwgOwor5YaF55m6ID4gbmFpaGF0c3VcIDsKK+WLheS9vyA+IGNob2t1c2hpXCA7CivoiovomasgPiBpbW9tdXNoaVwgOwor5Y+I44CFID4gbWF0YW1hdGFcIDsKK+aki+mzpSA+IG11a3Vkb3JpXCA7CivlubPmlL8gPiBoaXJhbWFzYVwgOwor6aqo6auEID4ga290c3V6dWlcIDsKK+ebrua4rCA+IG1va3Vzb2t1XCA7CivlhYPnt6AgPiBtb3RvamltZVwgOwor55+z5LqAID4gaXNoaWdhbWVcIDsKK+WFiOe0sCA+IHNha2lib3NvXCA7Civli4Xku7sgPiBjaG9rdW5pblwgOwor55+b5YWIID4gaG9rb3Nha2lcIDsKK+W6puW6piA+IHRhYml0YWJpXCA7Civli4Xku6QgPiBjaG9rdXJlaVwgOwor5YWI57SEID4gc2VuJyd5YWt1XCA7CivokKnljp8gPiBoYWdpd2FyYVwgOwor5YWl56WeID4gbnl1dXNoaW5cIDsKK+atr+WIlyA+IHNoaXJldHN1XCA7CivliIfmlq0gPiBzZXRzdWRhblwgOwor5buD5auhID4gaGFpY2hha3VcIDsKK+atquWKmyA+IHdhaXJ5b2t1XCA7CivlvI/lhbggPiBzaGlraXRlblwgOwor6L+95pKDID4gdHN1aWdla2lcIDsKK+iKi+iUkyA+IGltb2R6dXJ1XCA7CivmqJnnq6AgPiBoeW91c2hvdVwgOwor5be754mpID4gbWFraW1vbm9cIDsKK+ebuOauuiA+IHNvdXNhdHN1XCA7CivlhpfniakgPiBqb3VidXRzdVwgOwor5YmN5bGIID4gemVua3V0c3VcIDsKK+WIs+W9oiA+IGt1cmlrYXRhXCA7CivmraPlibIgPiBzZWlrYXRzdVwgOwor6LqN6YCyID4geWFrdXNoaW5cIDsKK+W8geWIpSA+IGJlbmJldHN1XCA7CivnnYDmiYsgPiBjaGFrdXNodVwgOwor5q2j5YiHID4gc2Vpc2V0c3VcIDsKK+iMtua8rCA+IGNoYWR6dWtlXCA7CivmgJbjgIUgPiBrb3dhZ293YVwgOwor55WZ6bOlID4gcnl1dWNob3VcIDsKK+mBjuWksSA+IGthc2hpdHN1XCA7CivoiLnotrMgPiBmdW5hYXNoaVwgOwor5YW155WlID4gaGVpcnlha3VcIDsKK+eZveelqCA+IGhha3VoeW91XCA7CivlgY/po58gPiBoZW5zaG9rdVwgOwor5bel546HID4ga291cml0c3VcIDsKK+atjOWQiCA+IHV0YWF3YXNlXCA7CivoupHouoUgPiB0c3V0c3VqaVwgOwor5q2M5Y+jID4gdXRhZ3VjaGlcIDsKK+mwueacqCA+IGthdHN1b2dpXCA7Civov6vmkoMgPiBoYWt1Z2VraVwgOwor55u45qeMID4gYWlkenVjaGlcIDsKK+axsuOAhSA+IGt5dXVreXV1XCA7CivliJ3mgYsgPiBoYXRzdWtvaVwgOwor5YWI56iLID4gc2FraWhvZG9cIDsKK+edgOaDsyA+IGNoYWt1c291XCA7CivoiLnos4MgPiBmdW5hY2hpblwgOwor6Iy25riLID4gY2hhc2hpYnVcIDsKK+mAj+W+uSA+IHRvdXRldHN1XCA7Civnl4XouqsgPiBieW91c2hpblwgOwor6YCy5a2mID4gc2hpbmdha3VcIDsKK+amguiqrCA+IGdhaXNldHN1XCA7CivokL3kuIEgPiByYWt1Y2hvdVwgOwor6YCa5bizID4gdHN1dWNob3VcIDsKK+W6iuW6lyA+IHRva29taXNlXCA7Civoia/olqwgPiByeW91eWFrdVwgOwor5qyg5aC0ID4ga2V0c3Vqb3VcIDsKK+WIh+aIuyA+IHNldHN1cmFpXCA7CivmqJnnn7MgPiBoeW91c2VraVwgOwor5YG96YeRID4gbmlzZWdhbmVcIDsKK+ebruaomSA+IG1va3VoeW91XCA7Civmpb3oqr8gPiBnYWt1Y2hvdVwgOwor5Yqb5YCGID4gcmlraXJ5b3VcIDsKK+mBuOWIpSA+IHNlbmJldHN1XCA7CivliLrlrqIgPiBzaGlreWFrdVwgOwor5bid5qygID4gdGVpa2V0c3VcIDsKK+WHuuaNkCA+IHNodXRzdWVuXCA7CivnnYDlv4MgPiBraWdva29yb1wgOwor6YCQ5bm0ID4gY2hpa3VuZW5cIDsKK+muq+eariA+IHNhbWVnYXdhXCA7CivluoPluoMgPiBoaXJvYmlyb1wgOwor5qiq55S6ID4geW9rb2Nob3VcIDsKK+i/keaXpSA+IGtpbmppdHN1XCA7CivluoPluYUgPiBoaXJvaGFiYVwgOwor5Yqb5L2cID4gcmlraXNha3VcIDsKK+mzqeS/oSA+IGt5dXVzaGluXCA7CivmpJzplrIgPiBrZW4nJ2V0c3VcIDsKK+eerOWIuyA+IHNodW5rb2t1XCA7CivnmbrnnYAgPiBoYXRjaGFrdVwgOwor5qW16KuWID4ga3lva3Vyb25cIDsKK+edgOW8viA+IGNoYWt1ZGFuXCA7CivlhbjniakgPiB0ZW5idXRzdVwgOwor55m955qZID4gaGFrdXNla2lcIDsKK+eZveeZvSA+IGhha3VoYWt1XCA7CivliIfmg4UgPiBzZXRzdWpvdVwgOwor5YiR5b6LID4ga2Vpcml0c3VcIDsKK+aomeeahCA+IGh5b3V0ZWtpXCA7Civlh7rmiYAgPiBkZWRva29yb1wgOwor6L+95b60ID4gdHN1aWNob3VcIDsKK+edgOW6lSA+IGNoYWt1dGVpXCA7CivlhZrnlaUgPiB0b3VyeWFrdVwgOwor5qW16KiAID4ga3lva3VnZW5cIDsKK+W6iuWxsSA+IHRva295YW1hXCA7Civnl5voppogPiB0c3V1a2FrdVwgOwor5bm05byPID4gbmVuc2hpa2lcIDsKK+eZuueZjCA+IGhhdHN1Z2FuXCA7CivnnYDluL0gPiBjaGFrdWJvdVwgOwor5YaF5r+gID4gdWNoaWJvcmlcIDsKK+WFiOedgCA+IHNlbmNoYWt1XCA7CivnnYDluK8gPiBjaGFrdXRhaVwgOwor5bi45pilID4gdG9rb2hhcnVcIDsKK+i/veW8lCA+IHRzdWljaG91XCA7CivojbfmjYwgPiBuaXNhYmFraVwgOwor5bmz5bqtID4gaGlyYW5pd2FcIDsKK+WxsemzqSA+IHlhbWFiYXRvXCA7CivpgLLlooMgPiBzaGlua3lvdVwgOwor5bGx6bOlID4geWFtYWRvcmlcIDsKK+mAmuWtpiA+IHRzdXVnYWt1XCA7CivnlZzpoZ4gPiBjaGlrdXJ1aVwgOwor5bmz5bqVID4gaGlyYXpva29cIDsKK+WFpeeNhCA+IG55dXVnb2t1XCA7CivlhazniLUgPiBrb3VzaGFrdVwgOwor6Imy6Im2ID4gaXJvdHN1eWFcIDsKK+W5s+W5lSA+IGhpcmFtYWt1XCA7CivlhYjnmbogPiBzZW5wYXRzdVwgOwor5Ym05YiHID4gZ2Fpc2V0c3VcIDsKK+eZveeTnCA+IHNoaXJvdXJpXCA7Civov5HmjqUgPiBraW5zZXRzdVwgOwor6Lmy6LieID4gdHN1a3ViYWlcIDsKK+i7ouiBtyA+IHRlbnNob2t1XCA7CivpgI/lr58gPiB0b3VzYXRzdVwgOwor5YqH5L2cID4gZ2VraXNha3VcIDsKK+edgOWyuCA+IGNoYWt1Z2FuXCA7Civou7jntKIgPiBqaWt1c2FrdVwgOwor5bit5paZID4gc2VraXJ5b3VcIDsKK+asoOWPtyA+IGtldHN1Z291XCA7Civnmbrnj74gPiBoYXRzdWdlblwgOwor55m+542jID4gaHlha3VqdXVcIDsKK+WDmuiIuSA+IHRvbW9idW5lXCA7CivnnJ/lv4MgPiBtYWdva29yb1wgOwor5YqH5LitID4gZ2VraWNodXVcIDsKK+i5hOmJhCA+IHRlaXRldHN1XCA7Civlh7rlvLUgPiBzaHV0Y2hvdVwgOwor5YOn6IG3ID4gc291c2hva3VcIDsKK+mAgOWxiCA+IHRhaWt1dHN1XCA7CivliY3lk7IgPiB6ZW50ZXRzdVwgOwor5Ye65busID4gc2h1dHN1cm9cIDsKK+mBqeS9nCA+IHRla2lzYWt1XCA7CivlhoXms5UgPiB1Y2hpbm9yaVwgOwor5Ye65bqmID4gc2h1dHN1ZG9cIDsKK+WKg+S4gCA+IGtha3VpdHN1XCA7Civou7jnrrEgPiBqaWt1YmFrb1wgOwor5bOh6LC3ID4ga3lvdWtva3VcIDsKK+WHuuW4rSA+IHNodXNzZWtpXCA7CivliKXlo7IgPiBiZXRzdWJhaVwgOwor5bid5pelID4gdGVpaml0c3VcIDsKK+ani+eviSA+IGtvdWNoaWt1XCA7Civnm67mkoMgPiBtb2t1Z2VraVwgOwor6LuN6IG3ID4gZ3Vuc2hva3VcIDsKK+WIhuWxgCA+IGJ1bmt5b2t1XCA7CivlhqzmnI0gPiBmdXl1ZnVrdVwgOwor6Iy25p2TID4gY2hhc2hha3VcIDsKK+murueDiCA+IHNlbnJldHN1XCA7Civpq5joqqwgPiBrb3VzZXRzdVwgOwor5YaZ5qSNID4gc2hhc2hva3VcIDsKK+WIpeWggiA+IGJldHN1ZG91XCA7CivliIblrr8gPiBidW5zaHVrdVwgOwor5YWo5ruFID4gemVubWV0c3VcIDsKK+WxsemiqCA+IHlhbWFrYXplXCA7CivojYnmkbogPiBrdXNhenVyaVwgOwor5YWI54mpID4gc2FraW1vbm9cIDsKK+eZvueCuSA+IGh5YWt1dGVuXCA7CivpgIblpKIgPiBzYWtheXVtZVwgOwor5YWJ54axID4ga291bmV0c3VcIDsKK+WJjeWIlyA+IHplbnJldHN1XCA7CivpgIblooMgPiBneWFra3lvdVwgOwor55mH55mqID4ga2Fuc2hha3VcIDsKK+i7jee4riA+IGd1bnNodWt1XCA7Civprq3mvIEgPiBzYWtlcnlvdVwgOwor6YGU5Lq6ID4gdGF0c3VqaW5cIDsKK+iJsue0mSA+IHNoaWtpc2hpXCA7Civnmb3mv4EgPiBoYWt1ZGFrdVwgOwor5YSB56eAID4gc2h1bnNodXVcIDsKK+W5heW6gyA+IGhhYmFoaXJvXCA7CivlubPlo7AgPiBoeW91c2hvdVwgOwor5bGx6ZynID4geWFtYWdpcmlcIDsKK+mAuOWHuiA+IGlzc2h1dHN1XCA7Civnm5fmkq4gPiB0b3VzYXRzdVwgOwor5YWl5rW0ID4gbnl1dXlva3VcIDsKK+asoOS+vyA+IGtldHN1YmluXCA7Civou73nn7MgPiBrYXJ1aXNoaVwgOwor5YiH5aa7ID4ga2lyaXp1bWFcIDsKK+W3u+acqyA+IGthbm1hdHN1XCA7CivpgJrllYYgPiB0c3V1c2hvdVwgOwor6Led6aqoID4ga3lva290c3VcIDsKK+WFpea0pSA+IG55dXVzaGluXCA7CivnlJ/pppYgPiBuYW1ha3ViaVwgOwor5YWl5rSbID4gbnl1dXJha3VcIDsKK+ebtOaDhSA+IGNob2t1am91XCA7Civlh7blroUgPiBreW91dGFrdVwgOwor5bGx6ZqbID4geWFtYWdpd2FcIDsKK+W6reWFiCA+IG5pd2FzYWtpXCA7CivlsbHpmbAgPiB5YW1ha2FnZVwgOwor5YmD5YiAID4ga2FtaXNvcmlcIDsKK+aoquazoiA+IHlva29uYW1pXCA7CivnnYDlnLAgPiBjaGFrdWNoaVwgOwor55uX5o6YID4gdG91a3V0c3VcIDsKK+ecgeW6gSA+IHNob3VjaG91XCA7CivnlZnph5EgPiB0b21lZ2FuZVwgOwor5qmL5qKBID4ga3lvdXJ5b3VcIDsKK+eUuumVtyA+IGNob3VjaG91XCA7CivlsZ7poJggPiB6b2t1cnlvdVwgOwor6YCa5ZGKID4gdHN1dWtva3VcIDsKK+WJjeWAnyA+IHplbnNoYWt1XCA7CivmrKDkuY8gPiBrZXRzdWJvdVwgOwor5qW16Ie0ID4ga3lva3VjaGlcIDsKK+WIpeWRvSA+IGJldHN1bWVpXCA7Civoia/nrZYgPiByeW91c2FrdVwgOwor55SY6aOfID4gYW1hc2hva3VcIDsKK+WGheaeoCA+IHVjaGl3YWt1XCA7CivliKXlkI0gPiBiZXRzdW1laVwgOwor5qmL5p2tID4gaGFzaGlndWlcIDsKK+WIpeWPtyA+IGJldHN1Z291XCA7CivmqYvmnZkgPiBoYXNoaWd1aVwgOwor5YCf6YqtID4gc2hha3VzZW5cIDsKK+ecieWwuyA+IG1heXVqaXJpXCA7CivnnJ/lpoIgPiBzaGluJydueW9cIDsKK+iLpeawtCA+IHdha2FtaXp1XCA7CivpgJrlipsgPiB0c3V1cmlraVwgOwor5bqX5YWIID4gbWlzZXNha2lcIDsKK+eVlOmBkyA+IGF6ZW1pY2hpXCA7Civoi6Xmrr8gPiB3YWthdG9ub1wgOwor6YCa5YmHID4gdHN1dXNva3VcIDsKK+WIneWPoyA+IHNob2t1Y2hpXCA7CivmqL3mn78gPiB0YXJ1Z2FraVwgOwor6Iet6KaaID4gc2h1dWtha3VcIDsKK+mAseS8kSA+IHNodXVreXV1XCA7CivnnIHlr58gPiBzZWlzYXRzdVwgOwor5qiq5qeYID4geW9rb3phbWFcIDsKK+aoquanjSA+IHlva295YXJpXCA7CivlhrflvrkgPiByZWl0ZXRzdVwgOwor552j5L+DID4gdG9rdXNva3VcIDsKK+WIpOWIpSA+IGhhbmJldHN1XCA7CivoirPng4ggPiBob3VyZXRzdVwgOwor5bi45a6iID4gam91a3lha3VcIDsKK+W4s+WwuyA+IGNob3VqaXJpXCA7Civlh7rlnJ8gPiBzaHV0c3Vkb1wgOwor6IuX5rC0ID4gbmF3YW1penVcIDsKK+WFiOaxuiA+IHNlbmtldHN1XCA7Civou73njocgPiBrZWlzb3RzdVwgOwor5bGx6Ym+ID4geWFtYWJva29cIDsKK+mrhOiZqyA+IHp1aW11c2hpXCA7Civnmobmp5ggPiBtaW5hc2FtYVwgOwor5Yil5YaMID4gYmVzc2F0c3VcIDsKK+WIpeWGiiA+IGJlc3NhdHN1XCA7CivluLflrZAgPiBrYXRhYmlyYVwgOwor6I2J5biCID4ga3VzYWljaGlcIDsKK+eZveaqgCA+IGJ5YWt1ZGFuXCA7Civoi6Xmp5ggPiB3YWthc2FtYVwgOwor55u05bCEID4gY2hva3VzaGFcIDsKK+WxsemHjCA+IHlhbWF6YXRvXCA7CivpgIDljbQgPiB0YWlreWFrdVwgOwor6L+95Y+KID4gdHN1aWt5dXVcIDsKK+anjeeOiSA+IHlhcmlkYW1hXCA7CivnlLLpiYQgPiBrb3V0ZXRzdVwgOwor5bGA6Z2iID4ga3lva3VtZW5cIDsKK+mAmuS/oSA+IHRzdXVzaGluXCA7CivmpbXnt5ogPiBreW9rdXNlblwgOwor6YCa5L+XID4gdHN1dXpva3VcIDsKK+iIuee4gSA+IGZ1bmFiZXJpXCA7CivnmpPmnIggPiBrb3VnZXRzdVwgOwor6Imy55u4ID4gc2hpa2lzb3VcIDsKK+iJsuebsiA+IHNoaWtpbW91XCA7CivnnInloqggPiBtYXl1enVtaVwgOwor5YaF5o6lID4gbmFpc2V0c3VcIDsKK+W3tOaIpiA+IHRvbW9lc2VuXCA7Civlhajmm7IgPiB6ZW5reW9rdVwgOwor5b6Q44CFID4gc29yb3Nvcm9cIDsKK+i7uOeJqSA+IGppa3Vtb25vXCA7Civmpa3nuL4gPiBneW91c2VraVwgOwor5YWl5pyoID4gbnl1dWJva3VcIDsKK+eZu+altSA+IHRvdWt5b2t1XCA7CivmpbXntLAgPiBnb2t1Ym9zb1wgOwor5YWl5pydID4gbnl1dWNob3VcIDsKK+mAgeWIpSA+IHNvdWJldHN1XCA7CivotrPpppYgPiBhc2hpa3ViaVwgOwor5YW85pGCID4ga2Vuc2V0c3VcIDsKK+WIpeS+vyA+IGJldHN1YmluXCA7CivlubTliKUgPiBuZW5iZXRzdVwgOwor5bGA6ZmQID4ga3lva3VnZW5cIDsKK+eUn+mMsiA+IG5hbWFyb2t1XCA7Civlt6fmi5kgPiBrb3VzZXRzdVwgOwor55m95qKFID4gc2hpcmF1bWVcIDsKK+iHhuiqrCA+IG9rdXNldHN1XCA7CivlhYjmp5ggPiBzYWtpc2FtYVwgOwor5YWo5pelID4gemVuaml0c3VcIDsKK+W4g+W8lSA+IG51bm9iaWtpXCA7Civnm6Plr58gPiBrYW5zYXRzdVwgOwor5YiG5YqbID4gYnVucnlva3VcIDsKK+WCjeiAsyA+IGthdGFtaW1pXCA7CivnlaXoqIAgPiByeWFrdWdlblwgOwor5Yil5Lq6ID4gYmV0c3VuaW5cIDsKK+WIhuWJsiA+IGJ1bmthdHN1XCA7CivlsI/prZogPiBrb3pha2FuYVwgOwor5bem5omLID4gaGlkYXJpdGVcIDsKK+iJsueUuiA+IGlyb21hY2hpXCA7CivoibLnlLcgPiBpcm9vdG9rb1wgOwor5qW956ugID4gZ2FrdXNob3VcIDsKK+WIhuWIpSA+IGJ1bmJldHN1XCA7CivliIbliJcgPiBidW5yZXRzdVwgOwor6ayx55eFID4gdXRzdWJ5b3VcIDsKK+mAhuS/riA+IGd5YWt1c2h1XCA7Civnm7Tlo7IgPiBjaG9rdWJhaVwgOwor5YCf6LK4ID4gc2hha3V0YWlcIDsKK+WAn+iyoSA+IHNoYWt1emFpXCA7CivlhqzlsbEgPiBmdXl1eWFtYVwgOwor5YiG5YaKID4gYnVuc2F0c3VcIDsKK+i7jeeVpSA+IGd1bnJ5YWt1XCA7CivnlKjpgZQgPiB5b3V0YXRzdVwgOwor6I2S5aS3ID4gYXJhZWJpc3VcIDsKK+alteerryA+IGt5b2t1dGFuXCA7CivnnJ/ljZcgPiBtYW1pbmFtaVwgOwor55Wl6KOFID4gcnlha3Vzb3VcIDsKK+WIl+S8nSA+IHJldHN1ZGVuXCA7CivlhbHmjK8gPiBreW91c2hpblwgOwor6Ii556uvID4gZnVuYWJhdGFcIDsKK+mvqOW6pyA+IGt1amlyYXphXCA7CivnnYDku7sgPiBjaGFrdW5pblwgOwor6L675aCCID4gdHN1amlkb3VcIDsKK+S/uumBlCA+IG9yZXRhY2hpXCA7CivnnJ/li4cgPiBzaGluJyd5dXVcIDsKK+WCmOe0mSA+IGthc2FnYW1pXCA7Civnmb3mmLwgPiBoYWt1Y2h1dVwgOwor55e855a+ID4ga29zaGl0c3VcIDsKK+WHuuWHpiA+IGRlZG9rb3JvXCA7Civlgb3ogIUgPiBuaXNlbW9ub1wgOwor5YWL5pyNID4ga29rdWZ1a3VcIDsKK+eUu+izqiA+IGdhc2hpdHN1XCA7Civot7Pouo0gPiBjaG91eWFrdVwgOwor6L+95Ly4ID4gdHN1aXNoaW5cIDsKK+eZuuaYjiA+IGhhdHN1bWVpXCA7CivpgIbkuIogPiBneWFrdWpvdVwgOwor5YWI5pyIID4gc2VuZ2V0c3VcIDsKK+W5s+S7hCA+IGh5b3Vzb2t1XCA7CivlhoblvaIgPiBtYXJ1Z2F0YVwgOwor5bCR6aGNID4gc2hvdWdha3VcIDsKK+i/lOWNtCA+IGhlbmt5YWt1XCA7CivlsI/poY0gPiBzaG91Z2FrdVwgOwor5Ye25YWGID4ga3lvdWNob3VcIDsKK+mpgOmAsiA+IGJha3VzaGluXCA7CivmpZPns5YgPiBrYWVkZXRvdVwgOwor5bmV5YaFID4gbWFrdXVjaGlcIDsKK+W3u+WwuiA+IG1ha2lqYWt1XCA7CivlhYjml6UgPiBzZW5qaXRzdVwgOwor5YCf6KanID4gc2hha3VyYW5cIDsKK+mnkumzpSA+IGtvbWFkb3JpXCA7CivlgaXohJogPiBrZW5reWFrdVwgOwor5bmV5YOaID4gYmFrdXJ5b3VcIDsKK+WGmeWunyA+IHNoYWppdHN1XCA7CivlhYPml6UgPiBnYW5qaXRzdVwgOwor55m95o+PID4gaGFrdWJ5b3VcIDsKK+Wwu+mHjSA+IHNoaXJpb21vXCA7CivohJvpqqggPiBrZWlrb3RzdVwgOwor5YWD5pa5ID4gbW90b2thdGFcIDsKK+eZuuaPmiA+IGhhdHN1eW91XCA7CivojLblo7ogPiBjaGF0c3Vib1wgOwor5L+u6LqrID4gc2h1dXNoaW5cIDsKK+eZuuaOmCA+IGhha2t1dHN1XCA7Civlt53lupUgPiBrYXdhem9rb1wgOwor5bed5bqKID4ga2F3YWRva29cIDsKK+WHtuS9nCA+IGt5b3VzYWt1XCA7CivmpoLnlaUgPiBnYWlyeWFrdVwgOwor5bed5bmFID4ga2F3YWhhYmFcIDsKK+WHuuS6rCA+IHNodWtreW91XCA7Civlgrfnl4UgPiBzaG91YnlvdVwgOwor5qSO6Iy4ID4gc2hpaXRha2VcIDsKK+W3nuW3niA+IHNodXVzaHV1XCA7CivlgZzogbcgPiB0ZWlzaG9rdVwgOwor5L6R6aOfID4geXV1c2hva3VcIDsKK+WGheWxgCA+IG5haWt5b2t1XCA7CivnlLfopqogPiBvdG9rb295YVwgOwor5Yeb5Ya9ID4gcmlucmV0c3VcIDsKK+iKseafhCA+IGhhbmFnYXJhXCA7CivlhazlvI8gPiBrb3VzaGlraVwgOwor5bGx6KWeID4geWFtYWhpZGFcIDsKK+i+u+WNoCA+IHRzdWppdXJhXCA7Civmp5jmp5ggPiBzYW1hemFtYVwgOwor55yf5LitID4gbWFuJyduYWthXCA7CivlhoXlr4YgPiBuYWltaXRzdVwgOwor6Iqx5p2fID4gaGFuYXRhYmFcIDsKK+WGheWunyA+IG5haWppdHN1XCA7CivlhbHluIMgPiB0b21vbnVub1wgOwor5bGx6KO+ID4geWFtYXN1c29cIDsKK+mrmOepuiA+IHRha2F6b3JhXCA7CivoirHmnK0gPiBoYW5hZnVkYVwgOwor55m+5oWLID4gaHlha3V0YWlcIDsKK+eXlOeWviA+IGppc2hpdHN1XCA7CivlhavluaEgPiBoYWNoaW1hblwgOwor5beh5a+fID4ganVuc2F0c3VcIDsKK+i7vealrSA+IGthcnV3YXphXCA7Civlt53lsLsgPiBrYXdhamlyaVwgOwor55u05YmNID4gY2hva3V6ZW5cIDsKK+ajkuihkyA+IGJvdWp1dHN1XCA7CivojYnlj6IgPiBrdXNhbXVyYVwgOwor6Iqx5pmCID4gaGFuYWRva2lcIDsKK+WFpeW5lSA+IG55dXVtYWt1XCA7Civnm7TliIAgPiBjaG9rdXRvdVwgOwor55m65oOFID4gaGF0c3Vqb3VcIDsKK+S/s+islCA+IGhhaWd5YWt1XCA7CivlsqnohIggPiBnYW5teWFrdVwgOwor5biz5YWDID4gY2hvdW1vdG9cIDsKK+eXheeahCA+IGJ5b3V0ZWtpXCA7CivmqKrluYUgPiB5b2tvaGFiYVwgOwor55eF55mWID4gYnlvdWhla2lcIDsKK+iDuOmrmCA+IG11bmFkYWthXCA7Civkv4PpgLIgPiBzb2t1c2hpblwgOwor5qiZ5b60ID4gaHlvdWNob3VcIDsKK+eXheeXhyA+IGJ5b3VzaG91XCA7CivlhrfljbQgPiByZWlreWFrdVwgOwor6IaP6KGAID4ga291a2V0c3VcIDsKK+WCt+eJqSA+IGtpenVtb25vXCA7Civnmb7lvIogPiBoeWFrdWhlaVwgOwor5Yed5LmzID4gZ3lvdW55dXVcIDsKK+eVnOiIjiA+IGNoaWt1c2hhXCA7CivlhbHlraYgPiBreW91Z2FrdVwgOwor5YaF5aOVID4gdWNoaWJvcmlcIDsKK+WwkemHjyA+IHNob3VyeW91XCA7CivlhajlsYAgPiB6ZW5reW9rdVwgOwor5YWL5b6pID4ga29rdWZ1a3VcIDsKK+eZvuW5tCA+IGh5YWt1bmVuXCA7CivotrPou70gPiBhc2hpZ2FydVwgOwor5bCP6YePID4gc2hvdXJ5b3VcIDsKK+WBpeethiA+IGtlbnBpdHN1XCA7Civlr5LppIUgPiBrYW5tb2NoaVwgOwor5a+u6ZW3ID4gcnlvdWNob3VcIDsKK+WFiOW9uSA+IHNlbicneWFrdVwgOwor5L+K6LazID4gc2h1bnNva3VcIDsKK+WGheWggCA+IHVjaGlib3JpXCA7CivlhaXlr4IgPiBueXV1amFrdVwgOwor6Iej57GNID4gc2hpbnNla2lcIDsKK+S/oeiqjSA+IHNoaW4nJ25pblwgOwor5YaG5Z6LID4gbWFydWdhdGFcIDsKK+i+m+WLnSA+IHNoaW5zaG91XCA7CivlhaXlraYgPiBueXV1Z2FrdVwgOwor5qWt54mpID4gd2F6YW1vbm9cIDsKK+i1pOmdtCA+IGFrYWd1dHN1XCA7CivotrPot6EgPiBzb2t1c2VraVwgOwor5L+h6Ki8ID4gc2hpbnNob3VcIDsKK+W3nuWigyA+IHNodXVreW91XCA7Civkv6HoqJcgPiBzaGludGFrdVwgOwor5a6/6aeFID4gc2h1a3Vla2lcIDsKK+alteeCuSA+IGt5b2t1dGVuXCA7Civkv5foqr8gPiB6b2t1Y2hvdVwgOwor6IiM55mMID4gemV0c3VnYW5cIDsKK+ebtOS4rSA+IHRhZGFuYWthXCA7CivoirHmiL8gPiBoYW5hZnVzYVwgOwor55u05LiKID4gY2hva3Vqb3VcIDsKK+eWq+eXhSA+IHlha3VieW91XCA7Civoi6Xlrq4gPiB3YWthbWl5YVwgOwor5YWD5bizID4gbW90b2Nob3VcIDsKK+Wvm+mXiiA+IGthbmthdHN1XCA7Civlr7jpiYQgPiBzdW50ZXRzdVwgOwor55m+5a6zID4gaHlha3VnYWlcIDsKK+WBtueZuiA+IGd1dWhhdHN1XCA7CivlsI/ouqsgPiBzaG91c2hpblwgOwor5a6/6aGYID4gc2h1a3VnYW5cIDsKK+eUn+iWrCA+IHNob3V5YWt1XCA7Civlrr/poYwgPiBzaHVrdWRhaVwgOwor55O26KmwID4gYmluZHp1bWVcIDsKK+WBj+eqnyA+IGhlbmt1dHN1XCA7CivlhYjlsbEgPiBzYWtpeWFtYVwgOwor55S36ImyID4gbmFuc2hva3VcIDsKK+iEsei8qiA+IGRhdHN1cmluXCA7CivoubTnkIMgPiBzaHV1a3l1dVwgOwor5YC557SEID4ga2VuJyd5YWt1XCA7CivojYnkuIggPiBrdXNhdGFrZVwgOwor5YWl5aG+ID4gbnl1dWp1a3VcIDsKK+mrmOeOhyA+IGtvdXJpdHN1XCA7Civpp7/otrMgPiBzaHVuc29rdVwgOwor5YSq5b2iID4geWFzYWdhdGFcIDsKK+WFiOWuoiA+IHNlbmt5YWt1XCA7CivnlrXniakgPiBraXp1bW9ub1wgOwor5L+X6KGGID4gem9rdXNodXVcIDsKK+WxseiGmiA+IHlhbWFoYWRhXCA7CivmppXmqLkgPiBnYWp1bWFydVwgOwor5YWI5a6JID4gc2FraXlhc3VcIDsKK+mmrOmdoiA+IHVtYWR6dXJhXCA7Civnm5fkvJAgPiB0b3ViYXRzdVwgOwor55m+5aeTID4gaHlha3VzZWlcIDsKK+WyqeeqnyA+IGdhbmt1dHN1XCA7CivmrbTjgIUgPiByZWtpcmVraVwgOwor5YWF5a6fID4ganV1aml0c3VcIDsKK+iKseW9oiA+IGhhbmFnYXRhXCA7Civnm5fkurogPiBudXN1Yml0b1wgOwor55m95aaZID4gc2hpcm90YWVcIDsKK+WxseiEiCA+IHlhbWFuYW1pXCA7CivoirHlvIEgPiBoYW5hYmlyYVwgOwor5bGx6IKMID4geWFtYWhhZGFcIDsKK+WFpeWbvSA+IG55dXVrb2t1XCA7CivmpbXmtIsgPiBreW9rdXlvdVwgOwor55m95aOBID4gaGFrdWhla2lcIDsKK+mrmOeGsSA+IGtvdW5ldHN1XCA7Civnmb3loqggPiBoYWt1Ym9rdVwgOwor55m65aOyID4gaGF0c3ViYWlcIDsKK+WGheWKmyA+IG5haXJ5b2t1XCA7CivotaTpioUgPiBzaGFrdWRvdVwgOwor5YG954mpID4gbmlzZW1vbm9cIDsKK+earuWJpSA+IGthd2FoYWdpXCA7Civlt6jliLkgPiBreW9zYXRzdVwgOwor6aqo55ukID4ga290c3ViYW5cIDsKK+mvieWPoyA+IGtvaWd1Y2hpXCA7CivnlJ/oibIgPiBzZWlzaG9rdVwgOwor5YWI5aSqID4gc2FraWJ1dG9cIDsKK+i2hei2iiA+IGNob3VldHN1XCA7Civlrprpo58gPiB0ZWlzaG9rdVwgOwor5YW15Y2SID4gaGVpc290c3VcIDsKK+anmOW8jyA+IHlvdXNoaWtpXCA7CivkvLTpo58gPiBiYW5zaG9rdVwgOwor5YW15YqbID4gaGVpcnlva3VcIDsKK+alvealvSA+IHJha3VyYWt1XCA7Civpq5jmva4gPiB0YWthc2hpb1wgOwor5YaF5YG0ID4gdWNoaWdhd2FcIDsKK+iEhei/qyA+IGt5b3VoYWt1XCA7Civpq5jmvZQgPiBrb3VrZXRzdVwgOwor6IW56IacID4gZnVrdW1ha3VcIDsKK+WGheWAiSA+IHVjaGlndXJhXCA7CivoirHlroggPiBoYW5hbW9yaVwgOwor6IO46YOtID4ga3lvdWtha3VcIDsKK+WFtuWFtiA+IHNvcmV6b3JlXCA7Civnl4Xmr5IgPiBieW91ZG9rdVwgOwor5qW15qW9ID4gZ29rdXJha3VcIDsKK+altealtSA+IGdva3Vnb2t1XCA7Civnl4XmrbQgPiBieW91cmVraVwgOwor6Iqx5auBID4gaGFuYXlvbWVcIDsKK+WFqOWKmyA+IHplbnJ5b2t1XCA7CivlhbHlhbEgPiB0b21vZG9tb1wgOwor6Iqx5am/ID4gaGFuYW11a29cIDsKK+i0i+mmliA+IG5pc2VrdWJpXCA7CivkvpvoqJcgPiBreW91dGFrdVwgOwor6Iul5ZCbID4gd2FrYWdpbWlcIDsKK+WxgOiIjiA+IGt5b2t1c2hhXCA7Civlt57kv5cgPiBzaHV1em9rdVwgOwor5L+h6IW5ID4gc2hpbnB1a3VcIDsKK+akjeeUnyA+IHNob2t1c2VpXCA7CivmqKnlipsgPiBrZW5yeW9rdVwgOwor5YSq5aWzID4geWFzYW9uJydhXCA7CivnlLvnrZYgPiBrYWt1c2FrdVwgOwor5p+T6auqID4gc2VucGF0c3VcIDsKK+Wuv+mFlCA+IHNodWt1c3VpXCA7CivotavotasgPiBrYWt1a2FrdVwgOwor5Ly46ZW3ID4gc2hpbmNob3VcIDsKK+WvhumAoCA+IG1pdHN1em91XCA7Civmpb3mm7IgPiBnYWtreW9rdVwgOwor6auY5rOiID4gdGFrYW5hbWlcIDsKK+S8mumjnyA+IGthaXNob2t1XCA7CivlgJLnq4sgPiB0b3VyaXRzdVwgOwor5L+X6IetID4gem9rdXNodXVcIDsKK+iJsuaEnyA+IHNoaWtpa2FuXCA7Civlt6bkuIogPiBoaWRhcml1ZVwgOwor5YWI5ZOyID4gc2VudGV0c3VcIDsKK+alteadsSA+IGt5b2t1dG91XCA7CivoibLmg4UgPiBzaGlraWpvdVwgOwor6a2a5bGLID4gc2FrYW5heWFcIDsKK+i3s+eusSA+IHRvYmliYWtvXCA7Civou5/lvI8gPiBuYW5zaGlraVwgOwor6auY5q6/ID4gdGFrYWRvbm9cIDsKK+WBj+eJhyA+IGthdGFoYXJhXCA7Civlt53kuIogPiBrYXdha2FtaVwgOwor5bGx56iLID4geWFtYWhvZG9cIDsKK+eZuuWLlSA+IGhhdHN1ZG91XCA7CivlhYjlj6MgPiBzZW5rdWNoaVwgOwor6IKL6aqoID4gcm9ra290c3VcIDsKK+eVnOeUoyA+IGNoaWt1c2FuXCA7CivoibLlvakgPiBzaGlraXNhaVwgOwor6Imv5b+DID4gcnlvdXNoaW5cIDsKK+eUn+exsyA+IG5hbWFnb21lXCA7CivnlKjnrYYgPiB5b3VoaXRzdVwgOwor5YWl5L+hID4gbnl1dXNoaW5cIDsKK+iHk+eJqSA+IHpvdW1vdHN1XCA7Civkv5fnv5IgPiB6b2t1c2h1dVwgOwor6YGZ44CFID4gaGFydWJhcnVcIDsKK+mqqOeBsCA+IGtvdHN1YmFpXCA7CivoiLnml4UgPiBmdW5hdGFiaVwgOwor6Ii55pa5ID4gZnVuYWthdGFcIDsKK+iKseWckiA+IGhhbmF6b25vXCA7CivlhaXkvLggPiBueXV1c2hpblwgOwor5YWJ5YqbID4ga291cnlva3VcIDsKK+i7jeW+iyA+IGd1bnJpdHN1XCA7Civou43lvbkgPiBndW4nJ3lha3VcIDsKK+eZvuWEhCA+IGh5YWt1b2t1XCA7CivlsZHnsaAgPiBrdXp1a2Fnb1wgOwor55eb5pKDID4gdHN1dWdla2lcIDsKK+WFqOS5syA+IHplbicnbnl1dVwgOwor5qC86Kq/ID4ga2FrdWNob3VcIDsKK+WFpeS6rCA+IG55dXVreW91XCA7CivovLjlh7ogPiB5dXNodXRzdVwgOwor5qaC5ousID4gZ2Fpa2F0c3VcIDsKK+iGoOedgCA+IGtvdWNoYWt1XCA7Civkv6HntYwgPiBzaGlua3lvdVwgOwor5L216KitID4gaGVpc2V0c3VcIDsKK+eZvuWAjSA+IGh5YWt1YmFpXCA7Civou4rluqcgPiBrdXJ1bWF6YVwgOwor5YWI5YWlID4gc2VuJydueXV1XCA7CivmqKrkuIEgPiB5b2tvY2hvdVwgOwor5YCf55SoID4gc2hha3V5b3VcIDsKK+Wuv+izgyA+IHlhZG9jaGluXCA7CivnlZzniqwgPiBjaGlrdWtlblwgOwor5YKN5p2WID4gc29iYWR6dWVcIDsKK+WFg+WFgyA+IG1vdG9tb3RvXCA7Civlr53ooosgPiBuZWJ1a3Vyb1wgOwor6Iqd5ZywID4gc2hpYmFjaGlcIDsKK+eahOS4rSA+IHRla2ljaHV1XCA7CivlsLHnuJsgPiBzaHV1YmFrdVwgOwor5a+G6KyAID4gbWl0c3Vib3VcIDsKK+WvhuirhyA+IG1pdHN1ZGFuXCA7Civnmbrku6QgPiBoYXRzdXJlaVwgOwor6Imv5bCGID4gcnlvdXNob3VcIDsKK+Wuoui7iiA+IGt5YWt1c2hhXCA7CivohLHoibIgPiBkYXNzaG9rdVwgOwor55m+5LiWID4gaHlha3VzZWlcIDsKK+mrmOacrSA+IGtvdXNhdHN1XCA7Civnmb7kuIcgPiBoeWFrdW1hblwgOwor5bCP6IW4ID4gc2hvdWNob3VcIDsKK+S7memqqCA+IHNlbmtvdHN1XCA7CivlronphZIgPiB5YXN1emFrZVwgOwor5YO75aKDID4gaGVraWt5b3VcIDsKK+WtpumVtyA+IGdha3VjaG91XCA7Civou4rlsYsgPiBrdXJ1bWF5YVwgOwor5YSq5YqjID4geXV1cmV0c3VcIDsKK+i6q+W/gyA+IHNoaW5zaGluXCA7Civnl5vmg5wgPiB0c3V1c2VraVwgOwor5YG95pytID4gbmlzZWZ1ZGFcIDsKK+i0i+mHkSA+IG5pc2VnYW5lXCA7CivlgJ/niakgPiBrYXJpbW9ub1wgOwor5bqm44CFID4gdGFiaXRhYmlcIDsKK+i1pOibmSA+IGFrYWdhZXJ1XCA7Civlgrflv4MgPiBzaG91c2hpblwgOwor5LuY6aasID4gdHN1a2V1bWFcIDsKK+i1pOiZqyA+IGFrYW11c2hpXCA7CivkvZfoqIAgPiB3YWJpZ290b1wgOwor55Sf55quID4gbmFtYWthd2FcIDsKK+WBtOadliA+IHNvYmFkenVlXCA7CivmpbXmgKcgPiBreW9rdXNlaVwgOwor55eb5b+DID4gdHN1dXNoaW5cIDsKK+iJsuWlsyA+IGlyb29uJyduYVwgOwor6Lyq5LyQID4gcmluYmF0c3VcIDsKK+WAjeeOhyA+IGJhaXJpdHN1XCA7Civkv5fnp7AgPiB6b2t1c2hvdVwgOwor5bGx54y/ID4geWFtYXphcnVcIDsKK+WxseeMqyA+IHlhbWFuZWtvXCA7CivkvJ3pgZQgPiBkZW50YXRzdVwgOwor5qSN5rCRID4gc2hva3VtaW5cIDsKK+WvteiHoyA+IGNob3VzaGluXCA7CivmpI3mr5sgPiBzaG9rdW1vdVwgOwor6IKJ6Y2LID4gbmlrdW5hYmVcIDsKK+eUt+eItSA+IGRhbnNoYWt1XCA7CivkurrprYIgPiBoaXRvZGFtYVwgOwor6IW555ebID4gZnVrdXRzdXVcIDsKK+iIueW6lSA+IGZ1bmF6b2tvXCA7CivoiLnluoogPiBmdW5hZG9rb1wgOwor6aeG6JC9ID4ga2FrZW9jaGlcIDsKK+alteW4jCA+IGdva3VtYXJlXCA7Civkv4rnp4AgPiBzaHVuc2h1dVwgOwor5Lq66aqoID4gamlua290c3VcIDsKK+Wwj+e1kCA+IGtvbXVzdWJpXCA7Civlrp/oqqwgPiBqaXNzZXRzdVwgOwor5bGl54mpID4gaGFraW1vbm9cIDsKK+eXheW+tCA+IGJ5b3VjaG91XCA7CivlrproqqwgPiB0ZWlzZXRzdVwgOwor6Ieo5pyIID4gcmluZ2V0c3VcIDsKK+eXheW8sSA+IGJ5b3VqYWt1XCA7CivluoPjgIUgPiBoaXJvYmlyb1wgOwor6aqo5p2QID4ga290c3V6YWlcIDsKK+eUo+eJqSA+IHNhbmJ1dHN1XCA7CivlrpjoqK0gPiBrYW5zZXRzdVwgOwor5qSc5pytID4ga2Vuc2F0c3VcIDsKK+iHo+acjSA+IHNoaW5wdWt1XCA7Civosqrpo58gPiBkb25zaG9rdVwgOwor55eF5bqKID4gYnlvdXNob3VcIDsKK+S/oeeUqCA+IHNoaW4nJ3lvdVwgOwor6ISH6IW5ID4gd2FraWJhcmFcIDsKK+eUn+eJqSA+IG5hbWFtb25vXCA7CivkvpvntaYgPiBreW91a3l1dVwgOwor5bGA55WqID4ga3lva3ViYW5cIDsKK+Wwj+etliA+IHNob3VzYWt1XCA7Civmp43lhYggPiB5YXJpc2FraVwgOwor55ew5aO6ID4gdGFudHN1Ym9cIDsKK+mrquW6iiA+IGthbWlkb2tvXCA7Civlr5LoibIgPiBrYW5zaG9rdVwgOwor5qSN5qC9ID4gc2hva3VzYWlcIDsKK+S8kei2syA+IGt5dXVzb2t1XCA7CivoiLnlrr8gPiBmdW5heWFkb1wgOwor5LuP6ZaAID4gYnV0c3Vtb25cIDsKK+iIueWuoiA+IHNlbmt5YWt1XCA7Civlgo3lvbkgPiB3YWtpeWFrdVwgOwor6IKJ6L+rID4gbmlrdWhha3VcIDsKK+aguOiGnCA+IGtha3VtYWt1XCA7CivkuqHpqrggPiBuYWtpZ2FyYVwgOwor6IeY5pyIID4gcm91Z2V0c3VcIDsKK+akjeaelyA+IHNob2t1cmluXCA7CivlrozoqLMgPiBrYW4nJ3lha3VcIDsKK+iDuOiGnCA+IGt5b3VtYWt1XCA7Civpo73po58gPiBob3VzaG9rdVwgOwor5L+u54afID4gc2h1dWp1a3VcIDsKK+WuheiouiA+IHRha3VzaGluXCA7CivlsI/npoQgPiBzaG91cm9rdVwgOwor5Lyd6KqsID4gZGVuc2V0c3VcIDsKK+i2s+eZliA+IGFzaGlrdXNlXCA7CivohLHnqI4gPiBkYXRzdXplaVwgOwor5Lqs6Z+/ID4ga3lvdWt5b3VcIDsKK+i7ouWFpSA+IHRlbicnbnl1dVwgOwor5a++56uLID4gdGFpcml0c3VcIDsKK+iFq+eJqSA+IHNodW1vdHN1XCA7CivmpbXlpKcgPiBreW9rdWRhaVwgOwor55Wl5pu4ID4gcnlha3VzaG9cIDsKK+Wuv+iIjiA+IHNodWt1c2hhXCA7Civou43ljZIgPiBndW5zb3RzdVwgOwor5bOw5bOwID4gbWluZW1pbmVcIDsKK+WuueiJsiA+IHlvdXNob2t1XCA7Civku4vpjK8gPiBrYWlzaGFrdVwgOwor5qOu5qOuID4gc2hpbnNoaW5cIDsKK+W1jOWFpSA+IGthbicnbnl1dVwgOwor6LuS5YilID4ga2VuYmV0c3VcIDsKK+WBtOW9uSA+IHNvYmF5YWt1XCA7Civou6LlgJ8gPiB0ZW5zaGFrdVwgOwor6ISK57SiID4gc2VraXNha3VcIDsKK+S8keiouiA+IGt5dXVzaGluXCA7CivosqHplqUgPiB6YWliYXRzdVwgOwor55Kw56+AID4ga2Fuc2V0c3VcIDsKK+acqOm8oCA+IGtpbmV6dW1pXCA7CivpqqjmipggPiBrb3NzZXRzdVwgOwor6ISa56uLID4ga3lhdGF0c3VcIDsKK+WDu+S6iyA+IGhpZ2Fnb3RvXCA7CivnlaXmlocgPiByeWFrdWJ1blwgOwor6LuS5YWIID4gbm9raXNha2lcIDsKK+aguee1tiA+IGtvbnpldHN1XCA7CivmpbXlnLAgPiBreW9rdWNoaVwgOwor5p6d6YGTID4gZWRhbWljaGlcIDsKK+Wuv+iAgSA+IHNodWt1cm91XCA7Civkvb/nr4AgPiBzaGlzZXRzdVwgOwor6LK46YeRID4ga2FzaGlraW5cIDsKK+mrmOWvnyA+IGtvdXNhdHN1XCA7CivlgJLmp5ggPiBzYWthc2FtYVwgOwor55Sf5rS7ID4gc2Vpa2F0c3VcIDsKK+mrmOWvhiA+IGtvdW1pdHN1XCA7Civku4/pgZMgPiBidXRzdWRvdVwgOwor5L2V6ICFID4gbmFuaW1vbm9cIDsKK+iJr+S/lyA+IHJ5b3V6b2t1XCA7CivkvY/ogbcgPiBqdXVzaG9rdVwgOwor5p+U6KGTID4ganV1anV0c3VcIDsKK+eUn+awtCA+IG5hbWFtaXp1XCA7Civog7jns54gPiBtdW5la3Vzb1wgOwor5a6i6Ii5ID4ga3lha3VzZW5cIDsKK+iAkOmjnyA+IHRhaXNob2t1XCA7CivogIHpqqggPiByb3Vrb3RzdVwgOwor5p6V6L66ID4gbWFrdXJhYmVcIDsKK+WwpOeJqSA+IHl1dWJ1dHN1XCA7CivlrqLoiI4gPiBreWFrdXNoYVwgOwor5Lmx6auqID4gcmFucGF0c3VcIDsKK+S9k+e9sCA+IHRhaWJhdHN1XCA7Civnl5vlk60gPiB0c3V1a29rdVwgOwor55Sf5q6WID4gc2Vpc2hva3VcIDsKK+S6uumHjCA+IGhpdG96YXRvXCA7CivlrqLohrMgPiBreWFrdXplblwgOwor6IKJ6KaqID4gbmlrdXNoaW5cIDsKK+WvjOexpCA+IHRvbWlrdWppXCA7CivlgbXlr58gPiB0ZWlzYXRzdVwgOwor6IO9562GID4gbm91aGl0c3VcIDsKK+S5vumiqCA+IGthcmFrYXplXCA7Civpq6rlnosgPiBrYW1pZ2F0YVwgOwor6Imv5LmFID4gcnlvdWt5dXVcIDsKK+adkembqCA+IG11cmFzYW1lXCA7Civou5LkuKYgPiBub2tpbmFtaVwgOwor6LuS5LiIID4gbm9raXRha2VcIDsKK+WvkueruSA+IGthbmNoaWt1XCA7CivmnIjpvaIgPiBnZXRzdXJlaVwgOwor5qW95YygID4gZ2FrdXNob3VcIDsKK+alveWLnSA+IHJha3VzaG91XCA7Civot7PmooEgPiBjaG91cnlvdVwgOwor5a+S56m6ID4gc2FtdXpvcmFcIDsKK+S7sOinkiA+IGd5b3VrYWt1XCA7Civmpb3liocgPiBnYWt1Z2VraVwgOwor6aOE6aOEID4gaHlvdWh5b3VcIDsKK+acqOmqqCA+IG1va2tvdHN1XCA7Civkvq/niLUgPiBrb3VzaGFrdVwgOwor546J6auEID4gZ3lva3V6dWlcIDsKK+iBtOiouiA+IGNob3VzaGluXCA7Civkv5fmtYEgPiB6b2t1cnl1dVwgOwor5a6a6IG3ID4gdGVpc2hva3VcIDsKK+WumOiBtyA+IGthbnNob2t1XCA7CivlgaXlrp8gPiBrZW5qaXRzdVwgOwor6LGq6ZuqID4gZ291c2V0c3VcIDsKK+iBtOimmiA+IGNob3VrYWt1XCA7Civnj43ph40gPiBjaGluY2hvdVwgOwor55u044CFID4gamlraWppa2lcIDsKK+iHquWupCA+IGppc2hpdHN1XCA7CivlgbTlo4EgPiBzb2t1aGVraVwgOwor5qSc5bC/ID4ga2VuJydueW91XCA7CivkubHpm5EgPiByYW56YXRzdVwgOwor5bGe5pybID4gc2hva3Vib3VcIDsKK+iBtOihhiA+IGNob3VzaHV1XCA7CivkuK3pu5IgPiBuYWthZ3Vyb1wgOwor5qSc5a+fID4ga2Vuc2F0c3VcIDsKK+S6uui2syA+IGhpdG9hc2hpXCA7Civlr77niakgPiB0YWlidXRzdVwgOwor6IKJ6JaEID4gbmlrdWhha3VcIDsKK+eOiemhlCA+IGd5b2t1Z2FuXCA7Civpoq/poq8gPiBzYXNzYXRzdVwgOwor5YGP5bGIID4gaGVua3V0c3VcIDsKK+S7j+iqrCA+IGJ1c3NldHN1XCA7Civls7blj7AgPiBzaGltYWRhaVwgOwor5LuH6K6OID4ga3l1dXNodXVcIDsKK+S9teeZuiA+IGhlaWhhdHN1XCA7Civpp5DnlZkgPiBjaHV1cnl1dVwgOwor55Wl5bi9ID4gcnlha3Vib3VcIDsKK+acnemjryA+IGFzYW1lc2hpXCA7CivkvZXnqIsgPiBuYW5paG9kb1wgOwor6aKo6aOfID4gZnV1c2hva3VcIDsKK+eVs+WxiyA+IHRhdGFtaXlhXCA7CivlgbTlnKcgPiBzb2t1YXRzdVwgOwor6LSW572qID4gc2hva3V6YWlcIDsKK+iCqeiCmCA+IGthdGFoaWppXCA7Civmn5PoibIgPiBzZW5zaG9rdVwgOwor6Lqr5LitID4gc2hpbmNodXVcIDsKK+adkemHjCA+IG11cmF6YXRvXCA7Civku5nooZMgPiBzZW5qdXRzdVwgOwor6Ieq5aSxID4gamlzaGl0c3VcIDsKK+S/l+alvSA+IHpva3VnYWt1XCA7CivpppbnrYsgPiBrdWJpc3VqaVwgOwor5L2H56uLID4gY2hvcml0c3VcIDsKK+i0i+iAhSA+IG5pc2Vtb25vXCA7Civlr4bnnYAgPiBtaXRjaGFrdVwgOwor6IWw5p2/ID4ga29zaGlpdGFcIDsKK+iCoeiCiSA+IG1vbW9uaWt1XCA7CivohLHmvI8gPiBkYXRzdXJvdVwgOwor6IO455ebID4ga3lvdXRzdXVcIDsKK+S4uOmrtyA+IG1hcnVtYWdlXCA7CivlsYjmm7IgPiBrdWtreW9rdVwgOwor6Ii55Lq6ID4gZnVuYWJpdG9cIDsKK+mqqOWkqiA+IGhvbmVidXRvXCA7Civpq5jljZIgPiBrb3Vzb3RzdVwgOwor5bCx5qWtID4gc2h1dWd5b3VcIDsKK+mjn+mBkyA+IHNob2t1ZG91XCA7CivosLfpoqggPiB0YW5pa2F6ZVwgOwor5L+h5pyNID4gc2hpbnB1a3VcIDsKK+S7ruiRuiA+IGthcmlidWtpXCA7Civpoqjpm6ogPiBmdXVzZXRzdVwgOwor5a6M57WQID4ga2Fua2V0c3VcIDsKK+aflOiCjCA+IHlhd2FoYWRhXCA7Civpp5Dni6wgPiBjaHV1ZG9rdVwgOwor546J6ZaAID4gZ3lva3Vtb25cIDsKK+mlkuiIjCA+IGpvdXpldHN1XCA7CivmnIjpo58gPiBnZXNzaG9rdVwgOwor5qCX55+zID4ga3VyaWlzaGlcIDsKK+Wwj+azoiA+IHNhemFuYW1pXCA7Civnm4rjgIUgPiBtYXN1bWFzdVwgOwor5a6a56uLID4gdGVpcml0c3VcIDsKK+S4uOmmliA+IG1hcnVrdWJpXCA7CivkuK3pq5ggPiBuYWthZGFrYVwgOwor5a6Y56uLID4ga2Fucml0c3VcIDsKK+iDveeOhyA+IG5vdXJpdHN1XCA7CivotrPmpa0gPiBhc2hpd2F6YVwgOwor5pyo6ZC4ID4gYm9rdXRha3VcIDsKK+S4u+mjnyA+IHNodXNob2t1XCA7CivpqZrmhJUgPiBreW91Z2FrdVwgOwor5L+X5puyID4gem9ra3lva3VcIDsKK+S7meiWrCA+IHNlbicneWFrdVwgOwor5L2c55eFID4gc2FrdWJ5b3VcIDsKK+S9leeZviA+IG5hbmJ5YWt1XCA7Civku4HooZMgPiBqaW5qdXRzdVwgOwor5L+h5pWZID4gc2hpbmt5b3VcIDsKK+ahnOa5ryA+IHNha3VyYXl1XCA7CivmpJzlnKcgPiBrZW4nJ2F0c3VcIDsKK+S4gOm9oyA+IGhpdG9rb21hXCA7CivotrPmorAgPiBhc2hpa2FzZVwgOwor5pyI6Z2iID4gZ2V0c3VtZW5cIDsKK+S5s+mFqiA+IG55dXVyYWt1XCA7CivlsL3ml6UgPiBqaW5qaXRzdVwgOwor5bCR5qyyID4gc2hvdXlva3VcIDsKK+eUu+W8lSA+IGtha3ViaWtpXCA7CivnlZnlraYgPiByeXV1Z2FrdVwgOwor5a2m57+SID4gZ2FrdXNodXVcIDsKK+i3i+aWhyA+IGJhdHN1YnVuXCA7CivlsbHlvaYgPiB5YW1hYmlrb1wgOwor5bGx5b2iID4geWFtYWdhdGFcIDsKK+eXheS4rSA+IGJ5b3VjaHV1XCA7CivlsI/mrLIgPiBzaG91eW9rdVwgOwor5YG25YqbID4gZ3V1cnlva3VcIDsKK+afk+e5lCA+IHNlbnNob2t1XCA7Civku7vogbcgPiBuaW5zaG9rdVwgOwor6ISx5q+bID4gZGF0c3Vtb3VcIDsKK+WwguaxuiA+IHNlbmtldHN1XCA7Civmop/mlbUgPiBreW91dGVraVwgOwor5pyo6YuPID4ga2liYXNhbWlcIDsKK+iIn+S6uiA+IGZ1bmFiaXRvXCA7CivosqfooYAgPiBoaW5rZXRzdVwgOwor6Laz5p63ID4gYXNoaWthc2VcIDsKK+iAs+iosSA+IG1pbWltb3RvXCA7CivlgpHkurogPiBrZXRzdWppblwgOwor5a++5rG6ID4gdGFpa2V0c3VcIDsKK+WwhOauuiA+IHNoYXNhdHN1XCA7Civku6ToibIgPiByZWlzaG9rdVwgOwor5bCB5q66ID4gZnV1c2F0c3VcIDsKK+Wwj+anjCA+IGtvZHp1Y2hpXCA7CivlrabnuL4gPiBnYWt1c2VraVwgOwor5bGx5bedID4geWFtYWdhd2FcIDsKK+mrmOS9jiA+IHRha2FoaWt1XCA7CivkuK3poIMgPiBuYWthZ29yb1wgOwor6IG36IO9ID4gc2hva3Vub3VcIDsKK+WxiOaKmCA+IGt1c3NldHN1XCA7Civlrp/nm7QgPiBqaXRjaG9rdVwgOwor6IWw5oqYID4ga29zaGlvcmVcIDsKK+Wun+ebiiA+IGppdHN1ZWtpXCA7CivlrprnnYAgPiB0ZWljaGFrdVwgOwor5qKB5pyoID4gcnlvdWJva3VcIDsKK+WBtuWBtiA+IHRhbWF0YW1hXCA7Civmm7LpnaIgPiBreW9rdW1lblwgOwor6Laz5pepID4gYXNoaWJheWFcIDsKK+S4remchyA+IGNodXVzaGluXCA7CivoiIzku6MgPiB6ZXRzdWRhaVwgOwor5p+x55+zID4gY2h1dXNla2lcIDsKK+WxseWxsSA+IHlhbWF5YW1hXCA7CivkuK3pmpQgPiBjaHV1a2FrdVwgOwor5bGA5omAID4ga3lva3VzaG9cIDsKK+iyr+iThCA+IGNob2NoaWt1XCA7CivkvY7njocgPiB0ZWlyaXRzdVwgOwor5bee44CFID4gc2h1dXNodXVcIDsKK+afk+ethiA+IHNlbnBpdHN1XCA7Civkv6HmhpEgPiBzaGlucHlvdVwgOwor5qGf5qmLID4gc2FuYmFzaGlcIDsKK+eUu+WupCA+IGdhc2hpdHN1XCA7CivogonntLAgPiBuaWt1Ym9zb1wgOwor5a6i55SoID4ga3lha3V5b3VcIDsKK+S4remZkCA+IG5ha2FnaXJpXCA7CivkvZXniakgPiBuYW5pbW9ub1wgOwor5bGx5a+6ID4geWFtYWRlcmFcIDsKK+eMn+mzpSA+IHJ5b3VjaG91XCA7CivlrabnsY0gPiBnYWt1c2VraVwgOwor5LiH6aqoID4gYmFua290c3VcIDsKK+S/ruW+qSA+IHNodXVmdWt1XCA7Civku4/oiaYgPiBmdXRzdWthblwgOwor6IW55b+DID4gZnVrdXNoaW5cIDsKK+Wun+eUqCA+IGppdHN1eW91XCA7Civkv67lvpcgPiBzaHV1dG9rdVwgOwor6IOG55WlID4gdGFucnlha3VcIDsKK+WFtuOAhSA+IHNvcmV6b3JlXCA7CivkuLjpkb8gPiBtYXJ1bm9taVwgOwor5bGx5a6IID4geWFtYW1vcmlcIDsKK+i2s+aRuiA+IGFzaGl6dXJpXCA7Civpo5/oqIAgPiBzaG9rdWdlblwgOwor5YCL5a6kID4ga29zaGl0c3VcIDsKK+S6jOiogCA+IGZ1dGFrb3RvXCA7CivkvZPnhrEgPiB0YWluZXRzdVwgOwor5YWx44CFID4gdG9tb2RvbW9cIDsKK+S7rue2tCA+IGthcml0b2ppXCA7CivkvJHnpaUgPiBreXV1c2hvdVwgOwor5bGI5b6TID4ga3V0c3VqdXVcIDsKK+Wun+ePviA+IGppdHN1Z2VuXCA7Civnj77ogbcgPiBnZW5zaG9rdVwgOwor6LGB6YGUID4ga2F0dGF0c3VcIDsKK+S/oeW/tSA+IHNoaW4nJ25lblwgOwor6aGO6aqoID4gZ2Fra290c3VcIDsKK+S4iemjnyA+IHNhbnNob2t1XCA7CivkuoboppogPiByeW91a2FrdVwgOwor5LiA6aeSID4gaGl0b2tvbWFcIDsKK+e+pOmbsiA+IG11cmFrdW1vXCA7CivmnIjph5EgPiBnZXRzdWtpblwgOwor6LWk5rKIID4gc2VraWNoaW5cIDsKK+S4i+mhjiA+IHNoaXRhYWdvXCA7CivlsbHlp6sgPiB5YW1haGltZVwgOwor6ISC5rGXID4gYWJ1cmFhc2VcIDsKK+iFsOW8gSA+IGtvc2hpYmVuXCA7Civlrp3njokgPiBob3VneW9rdVwgOwor5bCR5pW1ID4gc2hvdXRla2lcIDsKK+S+teaSgyA+IHNoaW5nZWtpXCA7CivpqY3lsIYgPiBneW91c2hvdVwgOwor5LiY6Zm1ID4ga3l1dXJ5b3VcIDsKK+eVpeWQjSA+IHJ5YWt1bWVpXCA7CivlsI/mlbUgPiBzaG91dGVraVwgOwor55Wl5Y+3ID4gcnlha3Vnb3VcIDsKK+i2s+aKgCA+IGFzaGl3YXphXCA7CivnlaXlj7IgPiByeWFrdXNoaVwgOwor5a6a546HID4gdGVpcml0c3VcIDsKK+eVquWNkiA+IGJhbnNvdHN1XCA7CivnlaXlj5YgPiByeWFrdXNodVwgOwor5a6f54q2ID4gaml0c3Vqb3VcIDsKK+WAn+WcsCA+IHNoYWt1Y2hpXCA7CivkvbXmrrogPiBoZWlzYXRzdVwgOwor6IGW6IG3ID4gc2Vpc2hva3VcIDsKK+iFsOW4ryA+IGtvc2hpb2JpXCA7CivkuIrpnbQgPiB1d2FndXRzdVwgOwor6Iac5aOBID4gbWFrdWhla2lcIDsKK+iEseaWhyA+IGRhdHN1YnVuXCA7CivlrZjnq4sgPiBzb25yaXRzdVwgOwor5a6d54mpID4gaG91bW90c3VcIDsKK+S/l+W9oiA+IHpva3VneW91XCA7CivkurrohpogPiBoaXRvaGFkYVwgOwor6aKo6LazID4ga2F6YWFzaGlcIDsKK+S5vuijgiA+IGthbnJldHN1XCA7CivmoY7moo8gPiBzaGlra29rdVwgOwor5LiA6aCDID4gaGl0b2tvcm9cIDsKK+e/jOmAsSA+IHlva3VzaHV1XCA7Civlr77ml6UgPiB0YWluaWNoaVwgOwor5p6g57WEID4gd2FrdWd1bWlcIDsKK+S6uuiEmiA+IGhpdG9hc2hpXCA7Civnv7voqLMgPiBob24nJ3lha3VcIDsKK+S6uuiEiCA+IGppbm15YWt1XCA7CivlsbHln44gPiB5YW1hamlyb1wgOwor6aC46aqoID4ga2Vpa290c3VcIDsKK+S+m+aWmSA+IGt5b3VyeW91XCA7CivohJrmnKwgPiBreWFrdWhvblwgOwor5p2x6IqdID4gdG91c2hpYmFcIDsKK+i1pOaoqyA+IGFrYWdhc2hpXCA7CivogJDonZUgPiB0YWlzaG9rdVwgOwor6ISK5qSOID4gc2VraXRzdWlcIDsKK+aftOeKrCA+IHNoaWJhaW51XCA7Civkv67lraYgPiBzaHV1Z2FrdVwgOwor5L+K5b6zID4gc2h1bnRva3VcIDsKK+aciOi8qiA+IGdldHN1cmluXCA7Civku7Lnp4sgPiBjaHV1c2h1dVwgOwor5Li76L+wID4gc2h1anV0c3VcIDsKK+S6uuiCjCA+IGhpdG9oYWRhXCA7CivkurrogokgPiBqaW4nJ25pa3VcIDsKK+WqkumFjCA+IGJhaXNoYWt1XCA7CivkvovmnIggPiByZWlnZXRzdVwgOwor55Sf5aiYID4ga2ltdXN1bWVcIDsKK+S7o+ethiA+IGRhaWhpdHN1XCA7CivohIrmooEgPiBzZWtpcnlvdVwgOwor5a+G5q66ID4gbWlzc2F0c3VcIDsKK+aatOmjnyA+IGJvdXNob2t1XCA7CivlsbHlm70gPiB5YW1hZ3VuaVwgOwor6IG356iuID4gc2hva3VzaHVcIDsKK+S4gOmamyA+IGhpdG9raXdhXCA7Civkub7onZUgPiBrYW5zaG9rdVwgOwor5LiA6ZqFID4gaGl0b3N1bWlcIDsKK+WwseW6iiA+IHNodXVzaG91XCA7CivkuIjplbcgPiB0YWtlbmFnYVwgOwor6aCt6auqID4gdG91aGF0c3VcIDsKK+eMpembkSA+IHdhaXphdHN1XCA7Civoga/nq4sgPiByZW5yaXRzdVwgOwor6ISK5p+xID4gc2VraWNodXVcIDsKK+mgremqqCA+IHRvdWtvdHN1XCA7CivotrPlvaIgPiBhc2hpZ2F0YVwgOwor5a6J54mpID4geWFzdW1vbm9cIDsKK+WvkualtSA+IGthbmt5b2t1XCA7CivotrPlvLEgPiBhc2hpeW93YVwgOwor5YCZ5ZOJID4gc291cm91eWFcIDsKK+S+i+aXpSA+IHJlaWppdHN1XCA7CivkuK3pgJ8gPiBjaHV1c29rdVwgOwor55Sf5aOBID4gbmFtYWthYmVcIDsKK+abtOi/rSA+IGtvdXRldHN1XCA7Civmop/lsIYgPiBreW91c2hvdVwgOwor5YWD44CFID4gbW90b21vdG9cIDsKK+iCieeahCA+IG5pa3V0ZWtpXCA7Civog7jmpI4gPiBreW91dHN1aVwgOwor6aKo6KqsID4gZnV1c2V0c3VcIDsKK+ahguaciCA+IGtlaWdldHN1XCA7CivlrqTmuKkgPiBzaGl0c3VvblwgOwor5LuZ56qfID4gc2Vua3V0c3VcIDsKK+Wvp+aXpSA+IG5laWppdHN1XCA7CivotIvniakgPiBuaXNlbW9ub1wgOwor55Wq5LuYID4gYmFuZHp1a2VcIDsKK+i1pOadviA+IGFrYW1hdHN1XCA7CivnlaXkvZMgPiByeWFrdXRhaVwgOwor5qKF5bmyID4gdW1lYm9zaGlcIDsKK+S/l+WtpiA+IHpva3VnYWt1XCA7Civohbnlo4EgPiBmdWt1aGVraVwgOwor5Lit6Lu4ID4gY2h1dWppa3VcIDsKK+eVpeS8nSA+IHJ5YWt1ZGVuXCA7Civohbjlo4EgPiBjaG91aGVraVwgOwor6LGh6JmrID4gem91bXVzaGlcIDsKK+ael+eriyA+IHJpbnJpdHN1XCA7CivlrIznvp4gPiBreW91c2h1dVwgOwor6LOq55aRID4gc2hpdHN1Z2lcIDsKK+WxseWQuSA+IHlhbWFidWtpXCA7CivouI/liIcgPiBmdW1pa2lyaVwgOwor5bCx5a+dID4gc2h1dXNoaW5cIDsKK+adj+iMuCA+IGFuenV0YWtlXCA7CivnlJ/lm70gPiBzaG91a29rdVwgOwor5L+h5aWzID4gc2hpbicnbnlvXCA7CivmnZ/ohKkgPiBzb2t1c2h1dVwgOwor5bCP5b+DID4gc2hvdXNoaW5cIDsKK+Wuv+alrSA+IHNodWt1Z291XCA7CivnlLPlkYogPiBzaGlua29rdVwgOwor5a+S5pyIID4ga2FuZ2V0c3VcIDsKK+acieitmCA+IHl1dXNoaWtpXCA7CivkvZrmpb0gPiBpdHN1cmFrdVwgOwor5bCx5a2mID4gc2h1dWdha3VcIDsKK+mkhee2siA+IG1vY2hpYW1pXCA7CivkvZXmp5ggPiBuYW5pc2FtYVwgOwor57+B6LKdID4gb2tpbmFnYWlcIDsKK+WvjOacrSA+IHRvbWlmdWRhXCA7CivlsYDlpJYgPiBreW9rdWdhaVwgOwor6aOf6IazID4gc2hva3V6ZW5cIDsKK+adieiLlCA+IHN1Z2lnb2tlXCA7Civlr4bmnpcgPiBtaXRzdXJpblwgOwor5YCJ5Y2SID4gc291c290c3VcIDsKK+eUsuWNkiA+IGtvdXNvdHN1XCA7CivlrqLmrr8gPiBreWFrdWRlblwgOwor5Lim6LazID4gbmFtaWFzaGlcIDsKK+S6pOe5lCA+IGtvdXNob2t1XCA7CivnlZHkvZwgPiBoYXRhc2FrdVwgOwor55Om5bGLID4ga2F3YXJheWFcIDsKK+WuouatuyA+IGt5YWt1c2hpXCA7CivnlLfliY0gPiBvdG9rb21hZVwgOwor5bGA5aCxID4ga3lva3Vob3VcIDsKK+mhsOi5mSA+IGhpbnNodWt1XCA7Civlrq7mp5ggPiBtaXlhc2FtYVwgOwor5L2c5p+EID4gc2FrdWdhcmFcIDsKK+eMrumFjCA+IGtlbnNoYWt1XCA7Civpo5/ogrIgPiBzaG9rdWlrdVwgOwor6aKo6J2VID4gZnV1c2hva3VcIDsKK+S4oei2syA+IHJ5b3Vzb2t1XCA7CivkuozogqEgPiBmdXRhbWF0YVwgOwor55Om5a62ID4ga2F3YXJheWFcIDsKK+S4iumBlCA+IGpvdXRhdHN1XCA7Civohp3lhYMgPiBoaXphbW90b1wgOwor5pyb6JyAID4gYm91c2hva3VcIDsKK+Wuv+acmyA+IHNodWt1Ym91XCA7CivohLHluL0gPiBkYXRzdWJvdVwgOwor55Sz5Ye6ID4gbW91c2hpZGVcIDsKK+afhOeJqSA+IGdhcmFtb25vXCA7CivkuIrov7AgPiBqb3VqdXRzdVwgOwor5L2c5puyID4gc2Fra3lva3VcIDsKK+iAs+ezniA+IG1pbWlrdXNvXCA7CivogIHoi6UgPiByb3VueWFrdVwgOwor6IKJ54mbID4gbmlrdWd5dXVcIDsKK+WxseWFgyA+IHlhbWFtb3RvXCA7CivlsYDlnLAgPiBreW9rdWNoaVwgOwor6LKe56+AID4gdGVpc2V0c3VcIDsKK+adn+e4myA+IHNva3ViYWt1XCA7CivmnKvokYkgPiBtYXRzdXlvdVwgOwor5L2V5pyIID4gbmFuZ2F0c3VcIDsKK+WwuuWcsCA+IHNoYWt1Y2hpXCA7CivosZrojYkgPiBidXRha3VzYVwgOwor5puy6KuWID4ga3lva3Vyb25cIDsKK+WxseWBtCA+IHlhbWFnYXdhXCA7CivlsJHlsJEgPiBzaG91c2hvdVwgOwor5bCR5bCGID4gc2hvdXNob3VcIDsKK+aal+mXhyA+IGt1cmF5YW1pXCA7CivkvJHmvIEgPiBreXV1cnlvdVwgOwor546J6JGxID4gdGFtYW5lZ2lcIDsKK+S5s+iHrSA+IG55dXVzaHV1XCA7CivnlJjlj6MgPiBhbWFrdWNoaVwgOwor5pyo6I+fID4gbWltaXp1a3VcIDsKK+WsjOeskSA+IGt5b3VzaG91XCA7CivnlKPliKUgPiBzYW5iZXRzdVwgOwor5pyI6J2VID4gZ2Vzc2hva3VcIDsKK+Wwj+WtpiA+IHNob3VnYWt1XCA7Civmp5jjgIUgPiBzYW1hemFtYVwgOwor5L6/5aO6ID4gYmVudHN1Ym9cIDsKK+S4gOi8myA+IGljaGlyeW91XCA7Civos5zniakgPiB0YW1hbW9ub1wgOwor55Sf5YilID4gc2VpYmV0c3VcIDsKK+mmluaetyA+IGt1YmlrYXNlXCA7CivlrZDniLUgPiBzaGlzaGFrdVwgOwor5L6L5byPID4gcmVpc2hpa2lcIDsKK+ePvueUnyA+IGdlbicnbmFtYVwgOwor5pyo6Iu6ID4ga2lpY2hpZ29cIDsKK+eKrOm3siA+IGludXdhc2hpXCA7CivmnKzoibIgPiBob25zaG9rdVwgOwor5Lmx6ISIID4gcmFubXlha3VcIDsKK+WumuakjSA+IHRlaXNob2t1XCA7Civou73jgIUgPiBrYXJ1Z2FydVwgOwor5a+G5o6lID4gbWlzc2V0c3VcIDsKK+S4gOi6jSA+IGljaGl5YWt1XCA7CivlsbHkurogPiB5YW1hYml0b1wgOwor6ISH5oGvID4ga3lvdXNva3VcIDsKK+e+veihoyA+IGhhZ29yb21vXCA7CivmnI3olqwgPiBmdWt1eWFrdVwgOwor5bGe5YOaID4gem9rdXJ5b3VcIDsKK+i2s+WeiyA+IGFzaGlnYXRhXCA7CivnlLvkuIAgPiBrYWt1aXRzdVwgOwor5qK15Yi5ID4gYm9uc2V0c3VcIDsKK+S8j+a1gSA+IGZ1a3VyeXV1XCA7Civlr77lsYAgPiB0YWlreW9rdVwgOwor54yr6LazID4gbmVrb2FzaGlcIDsKK+Wwj+WomCA+IGtvbXVzdW1lXCA7Civku6PniakgPiBkYWlidXRzdVwgOwor5aer6bGSID4gaGltZW1hc3VcIDsKK+acrOiFsCA+IGhvbmdvc2hpXCA7CivkuIDotrMgPiBoaXRvYXNoaVwgOwor6IW55YiHID4gaGFyYWtpcmlcIDsKK+S4oeimqiA+IHJ5b3VzaGluXCA7Civmmanpo68gPiBiYW5tZXNoaVwgOwor57+857+8ID4geW9rdXlva3VcIDsKK+eUn+WCtyA+IG5hbWFraXp1XCA7CivosZrogokgPiBidXRhbmlrdVwgOwor6ISH5b25ID4gd2FraXlha3VcIDsKK+mgremHkSA+IGF0YW1ha2luXCA7Civnvo7os6ogPiBiaXNoaXRzdVwgOwor5bGK5Ye6ID4gdG9kb2tlZGVcIDsKK+i1pOW/gyA+IHNla2lzaGluXCA7CivmnKzogbcgPiBob25zaG9rdVwgOwor54q26aqoID4gam91a290c3VcIDsKK+e/oOiJsiA+IHN1aXNob2t1XCA7CivkuKHoopYgPiByeW91c29kZVwgOwor5qC45b+DID4ga2FrdXNoaW5cIDsKK+S4uOiWrCA+IGdhbicneWFrdVwgOwor5Ly45pqiID4gc2hpbmNob3VcIDsKK+acneiHoyA+IGNob3VzaGluXCA7Civlrr/miYAgPiBzaHVrdXNob1wgOwor5p6c54mpID4ga3VkYW1vbm9cIDsKK+ePvueJqSA+IGdlbmJ1dHN1XCA7CivkuIvoq4sgPiBzaGl0YXVrZVwgOwor5pyo6ICzID4ga2lrdXJhZ2VcIDsKK+WwveWKmyA+IGppbnJ5b2t1XCA7CivkurrnlZwgPiBqaW5jaGlrdVwgOwor5Luu5ryGID4ga2FzaGl0c3VcIDsKK+adkeeriyA+IHNvbnJpdHN1XCA7CivpoqjohJogPiBrYXphYXNoaVwgOwor5L+C5ZOhID4ga2FrYXJpaW5cIDsKK+S4gOirviA+IGljaGlkYWt1XCA7CivlsI/lm70gPiBzaG91a29rdVwgOwor5a2m5q20ID4gZ2FrdXJla2lcIDsKK+Wuv+aCqiA+IHNodWt1YWt1XCA7Civog7jluqcgPiBtdW5hZ3VyYVwgOwor5LiA6KqtID4gaWNoaWRva3VcIDsKK+Wul+aVmSA+IHNodXVreW91XCA7Civlr6Xlr6UgPiByeW91cnlvdVwgOwor5pyJ6ImyID4geXV1c2hva3VcIDsKK+eLremHjyA+IGt5b3VyeW91XCA7CivmnaXnnYAgPiByYWljaGFrdVwgOwor5LyR5qWtID4ga3l1dWd5b3VcIDsKK+aciOiJsiA+IGdlc3Nob2t1XCA7Civkv67kuoYgPiBzaHV1cnlvdVwgOwor6IO45bmFID4gbXVuZWhhYmFcIDsKK+S4gOiogCA+IGhpdG9rb3RvXCA7Civlrr/lv5cgPiBzaHVrdXNoaVwgOwor6ICz55a+ID4gamlzaGl0c3VcIDsKK+iFleWKmyA+IHdhbnJ5b2t1XCA7CivohbnkuK0gPiBmdWt1Y2h1dVwgOwor5LiA6KeSID4gaGl0b2thZG9cIDsKK+iCieassiA+IG5pa3V5b2t1XCA7Civnj6DnjokgPiBzaHVneW9rdVwgOwor5LuA54mpID4ganV1bW90c3VcIDsKK+S4u+iJsiA+IHNodXNob2t1XCA7CivotIvmnK0gPiBuaXNlZnVkYVwgOwor6IKp5pu4ID4ga2F0YWdha2lcIDsKK+S/oeS8jyA+IHNoaW5wdWt1XCA7Civkv6Hku7sgPiBzaGluJyduaW5cIDsKK+Wuv+W8iiA+IHNodWt1aGVpXCA7CivprLHjgIUgPiB1dHN1dXRzdVwgOwor5Lmx562GID4gcmFucGl0c3VcIDsKK+S6uueJqSA+IGppbmJ1dHN1XCA7Civkv5fkv6EgPiB6b2t1c2hpblwgOwor54yu6KGAID4ga2Vua2V0c3VcIDsKK+agvOWuiSA+IGtha3V5YXN1XCA7CivkuKHok4sgPiByeW91YnV0YVwgOwor5a2m5qWtID4gZ2FrdWd5b3VcIDsKK+S6uueItSA+IGppbnNoYWt1XCA7CivnjKXopLsgPiB3YWlzZXRzdVwgOwor6LGa566xID4gYnV0YWJha29cIDsKK+S7ruauvyA+IGthcmlkb25vXCA7Civpo5vnn7MgPiB0b2JpaXNoaVwgOwor5Lmx56uLID4gcmFucml0c3VcIDsKK+Wuv+W4syA+IHlhZG9jaG91XCA7Civlr5Llr5IgPiBzYW11emFtdVwgOwor5pyx562GID4gc2h1aGl0c3VcIDsKK+S4u+iEiCA+IHNodW15YWt1XCA7Civku5jmt7sgPiB0c3VraXNvaVwgOwor5pys56+AID4gaG9uYnVzaGlcIDsKK+absuiKuCA+IGt5b2t1Z2VpXCA7CivmnKvnr4AgPiBtYXNzZXRzdVwgOwor6Laz5YWDID4gYXNoaW1vdG9cIDsKK+iyoeeJqSA+IHphaWJ1dHN1XCA7CivlsI/lkI0gPiBzaG91bXlvdVwgOwor5LmX57WEID4gbm9yaWt1bWlcIDsKK+WvneWnvyA+IG5lc3VnYXRhXCA7Civmm7PoiLkgPiBoaWtpYnVuZVwgOwor57+M57+MID4geW9rdXlva3VcIDsKK+acq+ethiA+IG1hcHBpdHN1XCA7CivmmLzpoIMgPiBoaXJ1Z29yb1wgOwor6IKh5peFID4gbWF0YXRhYmlcIDsKK+eLrOi6qyA+IGRva3VzaGluXCA7CivnkLTmm7IgPiBraW5reW9rdVwgOwor5Lqs54mpID4ga3lvdW1vbm9cIDsKK+afkOaciCA+IGJvdWdldHN1XCA7CivosYbnspUgPiBtYW1la2FzdVwgOwor5a6f5oOFID4gaml0c3Vqb3VcIDsKK+S4reiFuSA+IGNodXVmdWt1XCA7CivpoIbpgIYgPiBqdW5neWFrdVwgOwor5p2J55quID4gc3VnaWthd2FcIDsKK+WwhuWPiCA+IGhhdGFtYXRhXCA7CivohLHljbQgPiBkYWtreWFrdVwgOwor5a+C5a+lID4gc2VraXJ5b3VcIDsKK+WvguWvniA+IHNla2liYWt1XCA7Civpo5/nlKggPiBzaG9rdXlvdVwgOwor5p+Q5pelID4gYm91aml0c3VcIDsKK+aZqemFjCA+IGJhbnNoYWt1XCA7CivkuK3ogokgPiBjaHV1bmlrdVwgOwor6LKe54OIID4gdGVpcmV0c3VcIDsKK+mjsueJqSA+IG5vbWltb25vXCA7CivkuKHohpogPiByeW91aGFkYVwgOwor5Luy5qC4ID4gY2h1dWtha3VcIDsKK+S5neepgCA+IGt5dXVrb2t1XCA7Civlrp/lvL4gPiBqaXRzdWRhblwgOwor5LiL6JCgID4gc2hpdGFtb2VcIDsKK+absuiAhSA+IGt1c2Vtb25vXCA7CivlrprlvosgPiB0ZWlyaXRzdVwgOwor5qGD5ZySID4gbW9tb3pvbm9cIDsKK+mmluW3uyA+IGt1YmltYWtpXCA7Civku4/msJcgPiBob3Rva2VnaVwgOwor5pil6aKoID4gaGFydWthemVcIDsKK+S4puiCiSA+IG5hbWluaWt1XCA7CivlrqLlubQgPiBreWFrdW5lblwgOwor6LaK5Y2XID4gYmV0b25hbXVcIDsKK+S4oeiEhyA+IHJ5b3V3YWtpXCA7CivkvLjlvLUgPiBzaGluY2hvdVwgOwor6aKo56qTID4ga2F6YW1hZG9cIDsKK+miqOeptCA+IGZ1dWtldHN1XCA7Civku4/mrr8gPiBidXRzdWRlblwgOwor6IO45aOBID4ga3lvdWhla2lcIDsKK+WumuW8jyA+IHRlaXNoaWtpXCA7CivmmJ/po58gPiBzZWlzaG9rdVwgOwor5Lih6IKYID4gcnlvdWhpamlcIDsKK+S4oeiCjCA+IHJ5b3VoYWRhXCA7Civosp7mvZQgPiB0ZWlrZXRzdVwgOwor5auh55S3ID4gY2hha3VuYW5cIDsKK+S5s+eZvSA+IG55dXVoYWt1XCA7CivkvY7lr4YgPiB0ZWltaXRzdVwgOwor5Lih6ICzID4gcnlvdW1pbWlcIDsKK+S5seeZuiA+IHJhbnBhdHN1XCA7CivohIXlmocgPiBreW91a2FrdVwgOwor5pq06JmQID4gYm91Z3lha3VcIDsKK+iCmOaOmyA+IGhpamlrYWtlXCA7CivkuKHnv7wgPiByeW91eW9rdVwgOwor5a+G5aOyID4gbWl0c3ViYWlcIDsKK+acqOefsyA+IGJva3VzZWtpXCA7CivnjonnoJUgPiBneW9rdXNhaVwgOwor5LiD6I2JID4gbmFuYWt1c2FcIDsKK+WuruWuiCA+IG1peWFtb3JpXCA7Civmm6DogbcgPiBrb3VzaG9rdVwgOwor546J55+zID4gdGFtYWlzaGlcIDsKK+S4ieiJsiA+IHNhbnNob2t1XCA7Civku7LmmKUgPiBjaHV1c2h1blwgOwor5qGR5Y6fID4ga3V3YWJhcmFcIDsKK+itmOmWviA+IHNoaWtpaWtpXCA7Civkurrms6IgPiBoaXRvbmFtaVwgOwor5pil6ZuoID4gaGFydXNhbWVcIDsKK+e/s+ebriA+IGthc3VtaW1lXCA7CivnjL/ogqEgPiBzYXJ1bWF0YVwgOwor5puy57eaID4ga3lva3VzZW5cIDsKK+S8keaImiA+IGt5dXVzZWtpXCA7CivlrqLlsaQgPiBreWFrdXNvdVwgOwor5pil6Zm9ID4gc2h1bicneW91XCA7Civosp7mt5EgPiB0ZWlzaHVrdVwgOwor5a6I5b25ID4gbW9yaXlha3VcIDsKK+S4u+evgCA+IHNodXNldHN1XCA7CivkuIDoirEgPiBoaXRvaGFuYVwgOwor6aGU6ImyID4gZ2Fuc2hva3VcIDsKK+S4ree0sCA+IGNodXVib3NvXCA7CivkuK3ntJogPiBjaHV1a3l1dVwgOwor6LaF5YWLID4gY2hvdWtva3VcIDsKK+S4u+ethiA+IHNodWhpdHN1XCA7Civnjofnm7QgPiBzb3RjaG9rdVwgOwor54yr6IiMID4gbmVrb2ppdGFcIDsKK+S4ieiEmiA+IHNhbmt5YWt1XCA7CivmmbrorZggPiBjaGlzaGlraVwgOwor5LiL6IKlID4gc2hpbW9nb2VcIDsKK+Wun+WusyA+IGppdHN1Z2FpXCA7CivppIrmrpYgPiB5b3VzaG9rdVwgOwor5bCP5LiAID4gc2hvdWljaGlcIDsKK+iyquassiA+IGRvbicneW9rdVwgOwor5Lq65qyyID4gamluJyd5b2t1XCA7CivogJDnhrEgPiB0YWluZXRzdVwgOwor5a6f5a2YID4gaml0c3V6b25cIDsKK+mgmOiiliA+IHJ5b3VzaHV1XCA7CivkvJHmga8gPiBreXV1c29rdVwgOwor5pex6a2DID4ga2FuYmF0c3VcIDsKK+eJuembhiA+IHRva3VzaHV1XCA7CivmnKvnlLcgPiBiYXRzdW5hblwgOwor5a6/5Z2KID4gc2h1a3Vib3VcIDsKK+mfs+izqiA+IG9uc2hpdHN1XCA7CivkuLjnqpMgPiBtYXJ1bWFkb1wgOwor54yr6ISaID4gbmVrb2FzaGlcIDsKK+WvuOWAnyA+IHN1bnNoYWt1XCA7CivotoXkv5cgPiBjaG91em9rdVwgOwor5puy566hID4ga3lva3VrYW5cIDsKK+S8keW/gyA+IGt5dXVzaGluXCA7CivohIjli5UgPiBteWFrdWRvdVwgOwor6aGV6IG3ID4ga2Vuc2hva3VcIDsKK+iCqeW5hSA+IGthdGFoYWJhXCA7CivmoYjlh7ogPiBhbnNodXRzdVwgOwor6IKh5byVID4gbW9tb2hpa2lcIDsKK+S4uOemvyA+IG1hcnVoYWdlXCA7CivkvpvkurogPiB0b21vYml0b1wgOwor5Lq65qeYID4gaGl0b3NhbWFcIDsKK+S5s+eJmyA+IG55dXVneXV1XCA7CivlsILkuIAgPiBzZW4nJ2l0c3VcIDsKK+aeleacqCA+IG1ha3VyYWdpXCA7CivogqHluqcgPiBtYXRhZ3VyYVwgOwor54m56ZW3ID4gdG9rdWNob3VcIDsKK+mgguinkiA+IGNob3VrYWt1XCA7Civni7jol7sgPiB0YW51a2ltb1wgOwor57y26KmwID4ga2FuZHp1bWVcIDsKK+S4gOe/vCA+IGljaGl5b2t1XCA7Civlrp/lprkgPiBqaXRzdW1haVwgOwor5Lit56m6ID4gbmFrYXpvcmFcIDsKK+aflOW8sSA+IG55dXVqYWt1XCA7Civpo7LmsLQgPiBub21pbWl6dVwgOwor5Lit56iLID4gbmFrYWhvZG9cIDsKK+S7iuaciCA+IGtvbmdldHN1XCA7CivosrjmnKwgPiBrYXNoaWhvblwgOwor5Lim56uLID4gaGVpcml0c3VcIDsKK+WuieWuvyA+IHlhc3V5YWRvXCA7Civog73lipsgPiBub3VyeW9rdVwgOwor5Lit56eLID4gY2h1dXNodXVcIDsKK+eJqemZsCA+IG1vbm9rYWdlXCA7CivlronlrokgPiB5YXN1eWFzdVwgOwor5a2m5b6zID4gZ2FrdXRva3VcIDsKK+e/kueZliA+IHNodXVoZWtpXCA7CivkuLjnn7MgPiBtYXJ1aXNoaVwgOwor5LiH57eRID4gYmFucnlva3VcIDsKK+Wuv+WRvSA+IHNodWt1bWVpXCA7Civku4/mlocgPiBmdXRzdWJ1blwgOwor54mb6Z2pID4gZ3l1dWthd2FcIDsKK+iBluaXpSA+IHNlaWppdHN1XCA7Civkurrmn4QgPiBoaXRvZ2FyYVwgOwor6auY44CFID4gdGFrYWRha2FcIDsKK+S6q+alvSA+IGt5b3VyYWt1XCA7Civmnb7mn48gPiBzaG91aGFrdVwgOwor576k56u5ID4gbXVyYXRha2VcIDsKK+itpui5lSA+IGtlaWhpdHN1XCA7CivkubPmv4EgPiBueXV1ZGFrdVwgOwor57+g546JID4gc3VpZ3lva3VcIDsKK+aXpemjnyA+IG5pc3Nob2t1XCA7Civku4fmlbUgPiBreXV1dGVraVwgOwor6Z266Z6oID4gbWFra2F0c3VcIDsKK+Wnv+imiyA+IHN1Z2F0YW1pXCA7Civlrp/lnKggPiBqaXRzdXphaVwgOwor5pyI55WqID4gdHN1a2liYW5cIDsKK+eSsOS4gyA+IGthbicnbmFuYVwgOwor6IO45YWIID4gbXVuYXNha2lcIDsKK+iDuOWFgyA+IG11bmFtb3RvXCA7CivkuIDntYQgPiBoaXRva3VtaVwgOwor54yr57OeID4gbmVrb2JhYmFcIDsKK+aXp+mgmCA+IGt5dXVyeW91XCA7CivpnbTpn7MgPiBrdXRzdW90b1wgOwor5LmX54mpID4gbm9yaW1vbm9cIDsKK+miqOeJqSA+IGZ1dWJ1dHN1XCA7CivkvZzliocgPiBzYWt1Z2VraVwgOwor5pqW6ImyID4gZGFuc2hva3VcIDsKK+S9leWNkiA+IG5hbml0b3pvXCA7CivnjofnhLYgPiBzb3RzdXplblwgOwor5LyR5a2mID4ga3l1dWdha3VcIDsKK+S4ieethiA+IHNhbnBpdHN1XCA7CivkvY/lj4sgPiBzdW1pdG9tb1wgOwor5p2+5piOID4gdGFpbWF0c3VcIDsKK+WBtuOAhSA+IHRhbWF0YW1hXCA7Civku67lvbkgPiBrYXJpeWFrdVwgOwor5Lit55q/ID4gY2h1dXphcmFcIDsKK+iDuOWAiSA+IG11bmFndXJhXCA7CivkurrmlbAgPiBoaXRva2F6dVwgOwor5ama57SEID4ga29uJyd5YWt1XCA7CivkuIvnqbQgPiBzaGl0YWFuYVwgOwor5L2T5YqbID4gdGFpcnlva3VcIDsKK+Wuv+WFrSA+IHlhZG9yb2t1XCA7CivogLPmnLYgPiBtaW1pdGFidVwgOwor5pu455WZID4ga2FraXRvbWVcIDsKK+S4gOetiyA+IGhpdG9zdWppXCA7Civlrablr64gPiBnYWt1cnlvdVwgOwor5LiA562GID4gaGl0b2Z1ZGVcIDsKK+eJh+mahSA+IGthdGFzdW1pXCA7CivosYHnhLYgPiBrYXRzdXplblwgOwor5L2O5YqjID4gdGVpcmV0c3VcIDsKK+eJh+mZsCA+IGthdGFrYWdlXCA7CivkuqXmnIggPiBnYWlnZXRzdVwgOwor54m56YCyID4gdG9rdXNoaW5cIDsKK+izquWxiyA+IHNoaWNoaXlhXCA7CivnjKrnqoEgPiBjaG90b3RzdVwgOwor5Lqs5pa5ID4ga3lvdWdhdGFcIDsKK+eJm+mNiyA+IGd5dXVuYWJlXCA7Civlrp/lkI0gPiBqaXRzdW1laVwgOwor5p2l5pyIID4gcmFpZ2V0c3VcIDsKK+iDuOS4rSA+IGt5b3VjaHV1XCA7CivkuIDnqK4gPiBoaXRva3VzYVwgOwor57+S54afID4gc2h1dWp1a3VcIDsKK+aYjumBlCA+IG1laXRhdHN1XCA7CivmnqHlvaIgPiBtYXN1Z2F0YVwgOwor5a6/5L6/ID4gc2h1a3ViZW5cIDsKK+WvhuS7pCA+IG1pdHN1cmVpXCA7CivnibnovK8gPiB0b2t1c2h1dVwgOwor5LiA56eSID4gaWNoaWJ5b3VcIDsKK+S4u+eJqSA+IHNodWJ1dHN1XCA7CivnvqTnmbogPiBndW5wYXRzdVwgOwor5puy55CDID4ga3lva2t5dXVcIDsKK+aXqemQmCA+IGhheWFnYW5lXCA7Civos6Llr58gPiBrZW5zYXRzdVwgOwor5LqM5qGBID4gZnV0YWtldGFcIDsKK+adpeaXpSA+IHJhaW5pY2hpXCA7CivmmIfpgLIgPiBzaG91c2hpblwgOwor54iq6Z+zID4gdHN1bWFvdG9cIDsKK+aWremrqiA+IGRhbnBhdHN1XCA7Civmm7LnjokgPiBtYWdhdGFtYVwgOwor5a6i5YiGID4ga3lha3VidW5cIDsKK+S4mOeWuSA+IGt5dXVzaGluXCA7CivkvZXkvZUgPiBuYW5pbmFuaVwgOwor6IOG5YqbID4gdGFucnlva3VcIDsKK+S6i+afhCA+IGtvdG9nYXJhXCA7Civku67lrq4gPiBrYXJpbWl5YVwgOwor5pu454mpID4gc2hvbW90c3VcIDsKK+eJm+mFqiA+IGd5dXVyYWt1XCA7Civni6znv5IgPiBkb2t1c2h1dVwgOwor5Luu5a6FID4ga2FyaXRha3VcIDsKK+WtkOWunSA+IGtvZGFrYXJhXCA7Civpn67okbEgPiBuaXJhbmVnaVwgOwor5L2X5Lq6ID4gd2FiaWJpdG9cIDsKK+S7j+W8jyA+IGJ1c3NoaWtpXCA7CivpoLjnrYsgPiBrdWJpc3VqaVwgOwor6LKq5oW+ID4gZG9uJyd5b2t1XCA7CivorJvph4ggPiBrb3VzaGFrdVwgOwor5LiJ55u0ID4gc2FuY2hva3VcIDsKK+S9leS6iyA+IG5hbmlnb3RvXCA7CivogonlpKogPiBuaWt1YnV0b1wgOwor5LiJ55m+ID4gc2FuYnlha3VcIDsKK+aXj+mVtyA+IHpva3VjaG91XCA7Civnibnos54gPiB0b2t1c2hvdVwgOwor5a6i5YOnID4ga3lha3Vzb3VcIDsKK+S6pOaOpSA+IGtvdXNldHN1XCA7CivpoZTnnYAgPiBnYW5jaGFrdVwgOwor5Lmz5qWtID4gbnl1dWd5b3VcIDsKK+aXpemKgCA+IG5pY2hpZ2luXCA7CivmnpXluK0gPiBjaGluc2VraVwgOwor6LOT5a6iID4gaGlua3lha3VcIDsKK+Wun+WDjyA+IGppdHN1em91XCA7Civlrp/lg40gPiBqaXRzdWRvdVwgOwor5a6u5Lq6ID4gbWl5YWJpdG9cIDsKK+aXp+mHjCA+IGZ1cnVzYXRvXCA7CivkuIDnmr8gPiBoaXRvc2FyYVwgOwor5LiA55quID4gaGl0b2thd2FcIDsKK+S6jOaWuSA+IGZ1dGFrYXRhXCA7CivkuIrnlaUgPiBqb3VyeWFrdVwgOwor6LOK5bCGID4gem9rdXNob3VcIDsKK+iyq+W+uSA+IGthbnRldHN1XCA7CivmnqLlr4YgPiBzdXVtaXRzdVwgOwor5LiA55mWID4gaGl0b2t1c2VcIDsKK+eQg+WvqSA+IGt5dXVzaGluXCA7Civlrq7kuK0gPiBreXV1Y2h1dVwgOwor6LGG5q67ID4gbWFtZWdhcmFcIDsKK+ePvuWwuiA+IGdlbnNoYWt1XCA7CivkurrlvbEgPiBoaXRva2FnZVwgOwor5a6i5L2TID4ga3lha3V0YWlcIDsKK+Wun+S+iyA+IGppdHN1cmVpXCA7CivmnKjmp4wgPiBraWR6dWNoaVwgOwor5Luk5aeqID4gcmVpdGV0c3VcIDsKK+ePvuWunyA+IGdlbmppdHN1XCA7Civogoflm70gPiBjaG91a29rdVwgOwor5a6i5Lq6ID4ga3lha3VqaW5cIDsKK+mcuemdgiA+IGhla2lyZWtpXCA7CivorbLokYkgPiB5dXp1cmloYVwgOwor6LC35rC0ID4gdGFuaW1penVcIDsKK+ixquaXpSA+IGdvdW5pY2hpXCA7CivmnI3mr5IgPiBmdWt1ZG9rdVwgOwor6IG35Z+fID4gc2hva3Vpa2lcIDsKK+aatOeZuiA+IGJvdWhhdHN1XCA7CivkuqzlvaIgPiBreW91Z2F0YVwgOwor6aOf5oyHID4gc2hva3VzaGlcIDsKK+eJtOinpiA+IHRlaXNob2t1XCA7Civml6XovKogPiBuaWNoaXJpblwgOwor6IKp5YWIID4ga2F0YXNha2lcIDsKK+WklumwkCA+IHNvdG93YW5pXCA7CivpoLvnmbogPiBoaW5wYXRzdVwgOwor5Lyv5LuyID4gaGFrdWNodXVcIDsKK+acrOacrCA+IG1vdG9tb3RvXCA7CivmnKzmnKsgPiBob25tYXRzdVwgOwor5LiH54mpID4gYmFubW90c3VcIDsKK+eLreeqhCA+IGt5b3VzYWt1XCA7Civnjonmna8gPiBneW9rdWhhaVwgOwor54yu54mpID4ga2VubW90c3VcIDsKK+S6uuWxsSA+IGhpdG95YW1hXCA7Civml6notrMgPiBoYXlhYXNoaVwgOwor5LqG5om/ID4gcnlvdXNob3VcIDsKK+S4rea1gSA+IGNodXVyeXV1XCA7CivpnKfpm6ggPiBraXJpc2FtZVwgOwor5aSn6aOfID4gdGFpc2hva3VcIDsKK+aWh+mjviA+IGJ1bnNob2t1XCA7Civos6Llk7IgPiBrZW50ZXRzdVwgOwor54mH6LazID4ga2F0YWFzaGlcIDsKK+S4gOeJhyA+IGhpdG9oaXJhXCA7CivmnKzml6UgPiBob25qaXRzdVwgOwor5Lm+5outID4ga2FyYWJ1a2lcIDsKK+mjn+aEnyA+IHNob2t1a2FuXCA7CivmlbTpq6ogPiBzZWloYXRzdVwgOwor5LuP5aOHID4gYnV0c3VkYW5cIDsKK+WtpuWJsiA+IGdha3V3YXJpXCA7CivmlbTpqqggPiBzZWlrb3RzdVwgOwor6LSL5L2cID4gbmlzZXNha3VcIDsKK+WtpuWJhyA+IGdha3Vzb2t1XCA7Civmm7LmsLQgPiBreW9rdXN1aVwgOwor6aKo5pyIID4gZnV1Z2V0c3VcIDsKK+mcnOmbqiA+IHNvdXNldHN1XCA7CivkubHmjpggPiByYW5rdXRzdVwgOwor5Lit5q+SID4gY2h1dWRva3VcIDsKK+S5neaXpSA+IGtva29ub2thXCA7Civml6XosaogPiBuaWNoaWdvdVwgOwor5LuP5aCCID4gYnV0c3Vkb3VcIDsKK+S5neaXjyA+IGt5dXV6b2t1XCA7Civpn7/nrJsgPiBreW91dGVraVwgOwor6Kqt6Z+/ID4geW9taWt5b3VcIDsKK+ism+iqrCA+IGtvdXNldHN1XCA7CivniZvop5IgPiBneXV1a2FrdVwgOwor5aSn6ZuqID4gdGFpc2V0c3VcIDsKK+WklumjnyA+IGdhaXNob2t1XCA7CivogLPlsY4gPiBtaW1pa3Vzb1wgOwor5aSV6aOvID4geXV1bWVzaGlcIDsKK+iBt+WQjSA+IHNob2t1bWVpXCA7Civmmannr4AgPiBiYW5zZXRzdVwgOwor5LqM5b25ID4gZnV0YXlha3VcIDsKK+WklemjnyA+IHl1dXNob2t1XCA7CivkuozlvaIgPiBmdXRhbmFyaVwgOwor5pil6I+KID4gc2h1bmdpa3VcIDsKK+WtpuWDlSA+IGdha3Vib2t1XCA7CivosYbmlpkgPiBtYW1lcnlvdVwgOwor546J5pGnID4gZ3lva3VzYWlcIDsKK+acneaVtSA+IGNob3V0ZWtpXCA7CivmlaPpq6ogPiBzYW5wYXRzdVwgOwor6KyO6KyOID4gbmF6b25hem9cIDsKK+WxseOAhSA+IHlhbWF5YW1hXCA7CivlpoToqqwgPiBtb3VzZXRzdVwgOwor6aCT552AID4gdG9uY2hha3VcIDsKK+S7j+WZuCA+IGZ1dHN1dG9uXCA7CivlppbooZMgPiB5b3VqdXRzdVwgOwor6Zub6bOlID4gaGluYWRvcmlcIDsKK+mbu+mjviA+IGRlbnNob2t1XCA7Civlrabkv64gPiBnYWt1c2h1dVwgOwor5pen6KizID4ga3l1dXlha3VcIDsKK+aciOacqyA+IHRzdWtpenVlXCA7Civni6znmb0gPiBkb2t1aGFrdVwgOwor54yb54OIID4gbW91cmV0c3VcIDsKK+eIqui3oSA+IHRzdW1lYXRvXCA7Civku67liJ0gPiBrYXJpc29tZVwgOwor5p2l5a6iID4gcmFpa3lha3VcIDsKK+aciOabnCA+IGdldHN1eW91XCA7Civnv4zmnJ0gPiB5b2t1Y2hvdVwgOwor57mB6ZuRID4gaGFuemF0c3VcIDsKK+iBt+WItiA+IHNob2t1c2VpXCA7CivmlrDpgLIgPiBzaGluc2hpblwgOwor6IG35YiGID4gc2hva3VidW5cIDsKK+S5vuW8jyA+IGthbnNoaWtpXCA7CivpnaLorZggPiBtZW5zaGlraVwgOwor5Lq65Z6jID4gaGl0b2dha2lcIDsKK+WksemMryA+IHNoaXNzYWt1XCA7CivkuYXmlrkgPiBoaXNha2F0YVwgOwor5pyI5piOID4gZ2V0c3VtZWlcIDsKK+WjsOmrmCA+IGtvd2FkYWthXCA7Civoq5bov7AgPiByb25qdXRzdVwgOwor57+M5pilID4geW9rdXNodW5cIDsKK+irvuirviA+IGRha3VkYWt1XCA7CivorZjogIUgPiBzaGlraXNoYVwgOwor5LuV5Y+jID4gc2hpa3VjaGlcIDsKK+S4reaguCA+IGNodXVrYWt1XCA7CivosaHlvrQgPiBzaG91Y2hvdVwgOwor54+N5aaZID4gY2hpbm15b3VcIDsKK+iyneWhmiA+IGthaWR6dWthXCA7CivogZblk7IgPiBzZWl0ZXRzdVwgOwor6Z2i6KmwID4gbWVua2l0c3VcIDsKK+e4nummrCA+IHNoaW1hdW1hXCA7Civpo5/lsL0gPiBzaG9rdWppblwgOwor6LOt5LqLID4ga2FrZWdvdG9cIDsKK+S4gOa1gSA+IGljaGlyeXV1XCA7CivkuK3mn4QgPiBjaHV1Z2FyYVwgOwor5pu45pytID4gc2hvc2F0c3VcIDsKK+WmmeiWrCA+IG15b3V5YWt1XCA7CivkuLvml6UgPiBzaHVqaXRzdVwgOwor6Ku46Ku4ID4gbW9yb21vcm9cIDsKK+mdmeiskCA+IHNlaWhpdHN1XCA7Civoq7joqqwgPiBzaG9zZXRzdVwgOwor6LOH5YqbID4gc2hpcnlva3VcIDsKK+Wls+imqiA+IG9uJyduYW95YVwgOwor5pu05pu0ID4gc2FyYXNhcmFcIDsKK+adk+WtkCA+IHNoYWt1c2hpXCA7Civmm7Lmm7IgPiBrdW1hZ3VtYVwgOwor5pm655WlID4gY2hpcnlha3VcIDsKK+aYjuiJsiA+IG1laXNob2t1XCA7Civml6XonZUgPiBuaXNzaG9rdVwgOwor5LuW5Ye6ID4gdGFzaHV0c3VcIDsKK+mbqOmdtCA+IGFtYWd1dHN1XCA7CivmnKzlvI8gPiBob25zaGlraVwgOwor5LuP5YmNID4gYnV0c3V6ZW5cIDsKK+iqv+mAsiA+IGNob3VzaGluXCA7Civpm6rpm7IgPiB5dWtpZ3Vtb1wgOwor6Zuo6ZywID4gYW1lYXJhcmVcIDsKK+S7j+WIuSA+IGJ1c3NldHN1XCA7CivmnKjlvasgPiBtb2t1Y2hvdVwgOwor5pqR54axID4gc2hvbmV0c3VcIDsKK+eJqeiJsiA+IGJ1c3Nob2t1XCA7CivogbfkurogPiBzaG9rdW5pblwgOwor6Kun6KyUID4ga2FpZ3lha3VcIDsKK+eLrOeJuSA+IGRva3V0b2t1XCA7CivlpLHpgJ8gPiBzaGlzc29rdVwgOwor5pil57mtID4gaGFydW1heXVcIDsKK+mknuWIpSA+IHNlbmJldHN1XCA7CivnhrHpoZggPiBuZXRzdWdhblwgOwor5pyr5bm0ID4gbWF0c3VuZW5cIDsKK+WroeWtqyA+IGNoYWt1c29uXCA7Civnianoh60gPiBtb25vZ3VzYVwgOwor6IGW5YilID4gc2VpYmV0c3VcIDsKK+WroeWtkCA+IGNoYWt1c2hpXCA7Civoq6Toq6QgPiBnYWt1Z2FrdVwgOwor54uh54y+ID4ga291a2F0c3VcIDsKK+iAg+WvnyA+IGtvdXNhdHN1XCA7Civpm5Hpo58gPiB6YXNzaG9rdVwgOwor5Li75oyBID4gc2h1bW9jaGlcIDsKK+WssOWFkCA+IG1pZG9yaWdvXCA7CivnuKbplbcgPiB0YXRlbmFnYVwgOwor5pa96KitID4gc2hpc2V0c3VcIDsKK+eLgueahCA+IGt5b3V0ZWtpXCA7CivkuonlpaogPiBzb3VkYXRzdVwgOwor6Z6P6IacID4ga3lvdW1ha3VcIDsKK+S7j+WDjyA+IGJ1dHN1em91XCA7CivogIHlrp8gPiByb3VqaXRzdVwgOwor5aSn6YCGID4gZGFpZ3lha3VcIDsKK+aXpeiTriA+IG5pY2hpcmVuXCA7CivnhrHpm7cgPiBuZXRzdXJhaVwgOwor6Kmm6aOfID4gc2hpc2hva3VcIDsKK+aVt+mHkSA+IHNoaWtpa2luXCA7CivkurrlipsgPiBqaW5yeW9rdVwgOwor5Lmd5beeID4ga3l1dXNodXVcIDsKK+aWsOiqvyA+IHNoaW5jaG91XCA7Civpo5/loIIgPiBzaG9rdWRvdVwgOwor5auh5aa7ID4gY2hha3VzYWlcIDsKK+S4gOajnyA+IGhpdG9tdW5lXCA7CivlpLHot6EgPiBzaGlzc2VraVwgOwor5Lq65Yi6ID4gamluc2FzaGlcIDsKK+mbu+mJhCA+IGRlbnRldHN1XCA7CivkurrliKUgPiBuaW5iZXRzdVwgOwor6KuW6KqsID4gcm9uc2V0c3VcIDsKK+acrOWxgCA+IGhvbmt5b2t1XCA7CivkuK3mjIcgPiBuYWtheXViaVwgOwor6LK45YCfID4gdGFpc2hha3VcIDsKK+eNsuW+lyA+IGtha3V0b2t1XCA7Civoq5boqbAgPiByb25raXRzdVwgOwor5LiA5qGBID4gaGl0b2tldGFcIDsKK+aWveihkyA+IHNoaWp1dHN1XCA7CivpoZvmnKsgPiB0ZW5tYXRzdVwgOwor6LKr5YWlID4ga2FuJydueXV1XCA7CivosqHlipsgPiB6YWlyeW9rdVwgOwor6Kqe6YOoID4ga2F0YXJpYmVcIDsKK+e/kuW+lyA+IHNodXV0b2t1XCA7CivkuInmm7IgPiBzYW5reW9rdVwgOwor5pmv54mpID4ga2VpYnV0c3VcIDsKK+aWueihkyA+IGhvdWp1dHN1XCA7CivnibnntIQgPiB0b2t1eWFrdVwgOwor5LiA5p6aID4gaGl0b2hpcmFcIDsKK+e5sOiogCA+IGt1cmlnb3RvXCA7CivniZvogokgPiBneXV1bmlrdVwgOwor5p2J5Z6jID4gc3VnaWdha2lcIDsKK+eOi+WupCA+IG91c2hpdHN1XCA7CivkuIDmnZ8gPiBoaXRvdGFiYVwgOwor5Lqs5YqHID4ga3lvdWdla2lcIDsKK+eJoee+iiA+IG9oaXRzdWppXCA7CivosLflupUgPiB0YW5pem9rb1wgOwor5LiA5pyoID4gaWNoaWJva3VcIDsKK+S6uuWCkSA+IGppbmtldHN1XCA7Civpn5znlaUgPiB0b3VyeWFrdVwgOwor5pen6IejID4ga3l1dXNoaW5cIDsKK+aYqOeniyA+IHNha3VzaHV1XCA7Civlpb3oibIgPiBrb3VzaG9rdVwgOwor6LC35bedID4gdGFuaWdhd2FcIDsKK+S7hOS7hCA+IGhvbm9ib25vXCA7CivosrfkuLsgPiBrYWludXNoaVwgOwor5LiA5pmCID4gaGl0b3Rva2lcIDsKK+aYh+e1piA+IHNob3VreXV1XCA7CivniYfohp0gPiBrYXRhaGl6YVwgOwor5LmX5a6iID4gam91a3lha3VcIDsKK+S4uOW9oiA+IG1hcnVnYXRhXCA7Civpo7LliqkgPiBub21pc3VrZVwgOwor5puy5oKqID4ga3lva3Vha3VcIDsKK+aYh+e0miA+IHNob3VreXV1XCA7CivkuIDml5cgPiBoaXRvaGF0YVwgOwor5LiA5pePID4gaWNoaXpva3VcIDsKK+mjn+WTgSA+IHNob2t1aGluXCA7CivnianntI0gPiBidXRzdW5vdVwgOwor5aSx6Kq/ID4gc2hpdGNob3VcIDsKK+eFrumtmiA+IG5pemFrYW5hXCA7CivlpLHoqp4gPiBzaGl0c3Vnb1wgOwor6ICz5YWDID4gbWltaW1vdG9cIDsKK+aXqeiAsyA+IGhheWFtaW1pXCA7CivkuLjlupUgPiBtYXJ1em9rb1wgOwor6Z2i6ImyID4gbWVuc2hva3VcIDsKK+S6uuS6uiA+IGhpdG9iaXRvXCA7CivmlaPpgLggPiBzYW4nJ2l0c3VcIDsKK+S4reW/gyA+IGNodXVzaGluXCA7CivniYfogowgPiBrYXRhaGFkYVwgOwor6Kmz6YyyID4gc2hvdXJva3VcIDsKK+WroeWXoyA+IGNoYWt1c2hpXCA7Civmm7jlvI8gPiBzaG9zaGlraVwgOwor5Lq65LqLID4gaGl0b2dvdG9cIDsKK+e3j+mrqiA+IHNvdWhhdHN1XCA7CivmnI3lsZ4gPiBmdWt1em9rdVwgOwor54m556iuID4gdG9rdWRhbmVcIDsKK+S4reW9oiA+IGNodXVnYXRhXCA7CivniYfogLMgPiBrYXRhbWltaVwgOwor5pen57+SID4ga3l1dXNodXVcIDsKK+S6uuS4rSA+IGhpdG9uYWthXCA7CivkurrkuKYgPiBoaXRvbmFtaVwgOwor54m556ewID4gdG9rdXNob3VcIDsKK+S4gOaSgyA+IGljaGlnZWtpXCA7CivkuK3luq0gPiBuYWthbml3YVwgOwor5bCR44CFID4gc2hvdXNob3VcIDsKK+Wni+eZuiA+IHNoaWhhdHN1XCA7CivorJ3ntbYgPiBzaGF6ZXRzdVwgOwor5Lm+5ZKzID4ga2FyYXpla2lcIDsKK+S4reW5lSA+IG5ha2FtYWt1XCA7CivkuK3luYUgPiBjaHV1aGFiYVwgOwor6Ku46IadID4gbW9yb2hpemFcIDsKK+iruOiGmiA+IG1vcm9oYWRhXCA7CivkuK3luK0gPiBuYWthc2VraVwgOwor5pyd5aSVID4gY2hvdXNla2lcIDsKK+eJp+esmyA+IGJva3V0ZWtpXCA7CivkuKHlvpcgPiByeW91dG9rdVwgOwor57im6Lu4ID4gdGF0ZWppa3VcIDsKK+mdkuiJsiA+IHNlaXNob2t1XCA7Civpo5/liY0gPiBzaG9rdXplblwgOwor5aem54mpID4ga2FuYnV0c3VcIDsKK+mjn+WIuyA+IHNob2trb2t1XCA7CivnjonlnqMgPiB0YW1hZ2FraVwgOwor6ZuG6YyyID4gc2h1dXJva3VcIDsKK+mbsui2syA+IGt1bW9hc2hpXCA7Civnt5HpoqggPiByeW9rdWZ1dVwgOwor54mp56iuID4gbW9ub2RhbmVcIDsKK+S4puW5hSA+IG5hbWloYWJhXCA7CivlppnnrZYgPiBteW91c2FrdVwgOwor6Z2Z6ISIID4gam91bXlha3VcIDsKK+eJqeeojiA+IGJ1dHN1emVpXCA7CivkuLvlrqIgPiBzaHVreWFrdVwgOwor6aO85Li7ID4ga2FpbnVzaGlcIDsKK+iruOiCjCA+IG1vcm9oYWRhXCA7CivkuKblt74gPiBuYW1paGFiYVwgOwor5Lqk5LqkID4ga29tb2dvbW9cIDsKK+eIhuiWrCA+IGJha3V5YWt1XCA7CivkuK3ls7YgPiBuYWthamltYVwgOwor5pWF6YO3ID4gZnVydXNhdG9cIDsKK+S6i+WFsSA+IGtvdG9kb21vXCA7CivkuI3mgokgPiBmdXNoaXRzdVwgOwor5pen57SEID4ga3l1dXlha3VcIDsKK+eJp+elniA+IGJva3VzaGluXCA7Civnt5HpnZIgPiByb2t1c2hvdVwgOwor5pa56IifID4gaGFrb2J1bmVcIDsKK+mjr+S6iyA+IG1hbWFnb3RvXCA7CivkuK3lsI8gPiBjaHV1c2hvdVwgOwor5puy5bCEID4ga3lva3VzaGFcIDsKK+mbgemHkSA+IGthcmlnYW5lXCA7Civml6XnsbMgPiBuaWNoaWJlaVwgOwor54S86bOlID4geWFraXRvcmlcIDsKK+isueebtCA+IGtpbmNob2t1XCA7CivkuK3lraYgPiBjaHV1Z2FrdVwgOwor57e06YmEID4gcmVudGV0c3VcIDsKK+iqv+iWrCA+IGNob3V5YWt1XCA7CivlpInoqqwgPiBoZW5zZXRzdVwgOwor5pW16KWyID4gdGVraXNodXVcIDsKK+aUvumAkCA+IGhvdWNoaWt1XCA7CivkuInlvbkgPiBzYW4nJ3lha3VcIDsKK+eFqembkSA+IGhhbnphdHN1XCA7Civoqo3orZggPiBuaW5zaGlraVwgOwor5pen56ugID4ga3l1dXNob3VcIDsKK+e3kemWgCA+IHJ5b2t1bW9uXCA7CivmnZHkurogPiBtdXJhYml0b1wgOwor5LiL5bivID4gc2hpdGFvYmlcIDsKK+S4gOW9uSA+IGhpdG95YWt1XCA7CivosarlgpEgPiBnb3VrZXRzdVwgOwor5LqL5LqLID4ga290b2dvdG9cIDsKK+e2v+mbsiA+IHdhdGFndW1vXCA7CivkubHlhaUgPiByYW4nJ255dXVcIDsKK+e2v+mbqiA+IHdhdGF5dWtpXCA7CivkuojkuoggPiBrYW5lZ2FuZVwgOwor5pen56ewID4ga3l1dXNob3VcIDsKK+S4luWxgCA+IHNlaWt5b2t1XCA7Civnt7TpgZQgPiByZW50YXRzdVwgOwor5pqH5pqHID4gaGltYWhpbWFcIDsKK+S4gOW7iSA+IGhpdG9rYWRvXCA7CivpmobpmoYgPiByeXV1cnl1dVwgOwor5LiA5bqmID4gaGl0b3RhYmlcIDsKK+mahemahSA+IHN1bWl6dW1pXCA7CivkuIDlubQgPiBoaXRvdG9zZVwgOwor6Z2Z57KbID4gc2Vpc2h1a3VcIDsKK+WhqemurSA+IHNoaW96YWtlXCA7Civml4/nsY0gPiB6b2t1c2VraVwgOwor5aSn6JKcID4gbmluJyduaWt1XCA7CivkuIDluZUgPiBoaXRvbWFrdVwgOwor5Li45Z6LID4gbWFydWdhdGFcIDsKK+WlieiBtyA+IGhvdXNob2t1XCA7CivotavjgIUgPiBrYWt1a2FrdVwgOwor5LiA5be7ID4gaGl0b21ha2lcIDsKK+mbo+ipsCA+IG5hbmtpdHN1XCA7Civpm4Douo0gPiBqYWt1eWFrdVwgOwor5Lit5aGXID4gbmFrYW51cmlcIDsKK+mZqumjnyA+IGJhaXNob2t1XCA7CivpoIzmmKUgPiBzaG91c2h1blwgOwor5LiH5bGLID4geW9yb3p1eWFcIDsKK+S4reWeoyA+IG5ha2FnYWtpXCA7CivkuK3lnosgPiBjaHV1Z2F0YVwgOwor6aKo5YqbID4gZnV1cnlva3VcIDsKK+S4iuWuoiA+IGpvdWt5YWt1XCA7CivkubHkvJAgPiByYW5iYXRzdVwgOwor5pm65pelID4gY2hpbmljaGlcIDsKK+eMq+WxniA+IG5la296b2t1XCA7Civlr5LjgIUgPiBzYW11emFtdVwgOwor5LiA5bGxID4gaGl0b3lhbWFcIDsKK+S4reWbvSA+IGNodXVnb2t1XCA7CivlpKnoibIgPiB0ZW5zaG9rdVwgOwor6aCD5pelID4ga2Vpaml0c3VcIDsKK+ips+iouyA+IHNob3VjaHV1XCA7Civpm5Hoq4cgPiB6YXRzdWRhblwgOwor5peP56ewID4gem9rdXNob3VcIDsKK+aXpeebtCA+IG5pdGNob2t1XCA7Civnt5HphZIgPiByeW9rdXNodVwgOwor5LiA5a6kID4gaXNzaGl0c3VcIDsKK+WkquiFvyA+IGZ1dG9tb21vXCA7CivpoJjmib8gPiByeW91c2hvdVwgOwor5pat57W2ID4gZGFuemV0c3VcIDsKK+S4gOWtkCA+IGhpdG9yaWdvXCA7Civlp6vmp5ggPiBoaW1lc2FtYVwgOwor6Zu76JOEID4gZGVuY2hpa3VcIDsKK+acq+S7oyA+IG1hdHN1ZGFpXCA7Civlo5zoqbAgPiBiaW5kenVtZVwgOwor6KiA6ZyKID4ga290b2RhbWFcIDsKK+S4oeWbvSA+IHJ5b3Vnb2t1XCA7CivkuLvlj5YgPiBzaHV1ZG9yaVwgOwor6Zuo6JuZID4gYW1hZ2FlcnVcIDsKK+eGn+iqrSA+IGp1a3Vkb2t1XCA7CivnjonkvZMgPiBneW9rdXRhaVwgOwor54mn54mbID4gYm9rdWd5dXVcIDsKK+WhvumVtyA+IGp1a3VjaG91XCA7CivlpKrogqEgPiBmdXRvbW9tb1wgOwor5pyJ5YqbID4geXV1cnlva3VcIDsKK+eGseihgCA+IG5la2tldHN1XCA7CivmlaPolqwgPiBzYW4nJ3lha3VcIDsKK+eOieS7oyA+IGd5b2t1ZGFpXCA7CivlpKnogbcgPiB0ZW5zaG9rdVwgOwor5paH6ISIID4gYnVubXlha3VcIDsKK+mbhuiouyA+IHNodXVjaHV1XCA7CivpmpTpgLEgPiBrYWt1c2h1dVwgOwor5pel55SoID4gbmljaGl5b3VcIDsKK+abuOWPliA+IGtha2l0b3JpXCA7CivkuLvlipsgPiBzaHVyeW9rdVwgOwor5pyI5YaFID4gZ2V0c3VuYWlcIDsKK+S4g+WknCA+IHNoaWNoaXlhXCA7CivkuZ7kuJAgPiBrb3RzdWdhaVwgOwor5LiD5aSVID4gdGFuYWJhdGFcIDsKK+isoeeJqSA+IHV0YWltb25vXCA7CivpoLvlsL8gPiBoaW4nJ255b3VcIDsKK+Wkqee9sCA+IHRlbmJhdHN1XCA7CivpnaLnmb0gPiBvbW9zaGlyb1wgOwor5puy5ZCNID4ga3lva3VtZWlcIDsKK+e3j+i9hCA+IHNvdWthdHN1XCA7CivkuK3lj6QgPiBjaHV1YnVydVwgOwor5L2V44CFID4gbmFuaW5hbmlcIDsKK+S4gOWksSA+IGlzc2hpdHN1XCA7Civni7zluqcgPiBvb2thbWl6YVwgOwor6Ki86LehID4gc2hvdXNla2lcIDsKK+WlrueZuiA+IGZ1bnBhdHN1XCA7CivmlrDnqYAgPiBzaGlua29rdVwgOwor6KmV6Ki7ID4gaHlvdWNodXVcIDsKK+WkieiJsiA+IGhlbnNob2t1XCA7CivmmI7mu4UgPiBtZWltZXRzdVwgOwor6Zm46YejID4gb2thZHp1cmlcIDsKK+isgOeVpSA+IGJvdXJ5YWt1XCA7CivkuIDloakgPiBoaXRvc2hpb1wgOwor6aKo5LiKID4ga2F6YWthbWlcIDsKK+WkluiCoSA+IHNvdG9tYXRhXCA7Civnv5Lkv5cgPiBzaHV1em9rdVwgOwor6ZmN6ZuqID4ga291c2V0c3VcIDsKK+eLrOW+lyA+IGRva3V0b2t1XCA7Civntbbpo58gPiB6ZXNzaG9rdVwgOwor5pu45YidID4ga2FraXpvbWVcIDsKK+iok+mHiCA+IGt1bnNoYWt1XCA7Civoqqbnv5IgPiBzaG91c2h1dVwgOwor54iG56yRID4gYmFrdXNob3VcIDsKK+e/kuS9nCA+IHNodXVzYWt1XCA7Civmm7jlhoogPiBzaG9zYXRzdVwgOwor54m55rOoID4gdG9rdWNodXVcIDsKK+aciOS+iyA+IGdldHN1cmVpXCA7CivmmqblraYgPiByZWtpZ2FrdVwgOwor5Li45YK3ID4gdGFtYWtpenVcIDsKK+WlieelnSA+IGhvdXNodWt1XCA7CivpoIzlvrMgPiBzaG91dG9rdVwgOwor6Ziy6aOfID4gYm91c2hva3VcIDsKK+eIqueXlSA+IHRzdW1lYXRvXCA7CivkuK3lhbEgPiBjaHV1a3lvdVwgOwor5Lim5YiXID4gaGVpcmV0c3VcIDsKK+S5heS5hSA+IGhpc2FiaXNhXCA7Civnt5HosYYgPiByeW9rdXRvdVwgOwor5aW954mpID4ga291YnV0c3VcIDsKK+mbsuiEmiA+IGt1bW9hc2hpXCA7CivpnZLnlbMgPiBhb2RhdGFtaVwgOwor6Zub6I+KID4gaGluYWdpa3VcIDsKK+WkseetliA+IHNoaXNzYWt1XCA7CivmmYLmmYIgPiB0b2tpZG9raVwgOwor5Lit5YK3ID4gY2h1dXNob3VcIDsKK+WkseeskSA+IHNoaXNzaG91XCA7CivmlZfoibIgPiBoYWlzaG9rdVwgOwor6Zuq6IaaID4geXVraWhhZGFcIDsKK+mbo+iJsiA+IG5hbnNob2t1XCA7CivmmpflrqQgPiBhbnNoaXRzdVwgOwor6Zm16L6xID4gcnlvdWpva3VcIDsKK+S4i+WRsyA+IHNoaXRhYWppXCA7CivntZDpq6ogPiBrZXBwYXRzdVwgOwor54S86YWOID4gc2hvdWNodXVcIDsKK+aYvOaZgiA+IGhpcnVkb2tpXCA7Civlo7DoibIgPiBzZWlzaG9rdVwgOwor5Li45LqLID4gbWFydWdvdG9cIDsKK+aWh+evgCA+IGJ1bnNldHN1XCA7CivmlofnrrEgPiBmdW1pYmFrb1wgOwor5aSn562SID4gb29kenV0c3VcIDsKK+S4uOS4uCA+IG1hcnVtYXJ1XCA7CivpmLLpm6ogPiBib3VzZXRzdVwgOwor6Zuq6IKMID4geXVraWhhZGFcIDsKK+ios+iqrSA+IHlha3Vkb2t1XCA7CivkuIPlkbMgPiBzaGljaGltaVwgOwor5pa555WlID4gaG91cnlha3VcIDsKK+S4uOS4gCA+IG1hcnVpY2hpXCA7Civni63lsI8gPiBreW91c2hvdVwgOwor5Lit5L2OID4gbmFrYWJpa3VcIDsKK+e3j+iqrCA+IHNvdXNldHN1XCA7Civlp4vmnKsgPiBzaGltYXRzdVwgOwor5paH562GID4gYnVucGl0c3VcIDsKK+Wkp+erpSA+IG9vd2FyYXdhXCA7CivpnZLnjokgPiBzZWlneW9rdVwgOwor5Lih5YG0ID4gcnlvdXNva3VcIDsKK+WkseelniA+IHNoaXNzaGluXCA7Civpm4bokL0gPiBzaHV1cmFrdVwgOwor6Z2Z54mpID4gc2VpYnV0c3VcIDsKK+S4h+WNkiA+IGJhbnNvdHN1XCA7CivkuK3kuqwgPiBjaHV1a3lvdVwgOwor5LiA5ZCRID4gaGl0YXN1cmFcIDsKK+eLrOWtpiA+IGRva3VnYWt1XCA7CivmmKjmnJ0gPiBzYWt1Y2hvdVwgOwor5LiA5Y+iID4gaGl0b211cmFcIDsKK+absuS6iyA+IGt1c2Vnb3RvXCA7Civpm5HoibIgPiB6YXNzaG9rdVwgOwor5Lit5LitID4gbmFrYW5ha2FcIDsKK+WuieOAhSA+IHlhc3V5YXN1XCA7CivmlZnnv5IgPiBreW91c2h1dVwgOwor6Zme6YCyID4gc2hvdXNoaW5cIDsKK+mhnuWIpSA+IHJ1aWJldHN1XCA7CivnuK7nt6wgPiBjaGlyaW1lblwgOwor5pio5pqBID4gc2FrdWd5b3VcIDsKK+e1kOmhmCA+IGtlY2hpZ2FuXCA7CivmmKjmmKUgPiBzYWt1c2h1blwgOwor5LiH5YilID4gYmFuYmV0c3VcIDsKK+eEvOi6qyA+IHNob3VzaGluXCA7CivpoIHlsqkgPiBrZXRzdWdhblwgOwor5Lim5LimID4gbmFtaW5hbWlcIDsKK+e4pue4niA+IHRhdGVqaW1hXCA7CivoppfprZQgPiBub3pva2ltYVwgOwor5aKX6KitID4gem91c2V0c3VcIDsKK+S4gOWJsiA+IGljaGl3YXJpXCA7CivlpJXnq4sgPiB5dXVkYWNoaVwgOwor5aGp6L6bID4gc2hpb2thcmFcIDsKK+ino+mHiCA+IGthaXNoYWt1XCA7Civml6fmtYEgPiBreXV1cnl1dVwgOwor5Lih5LihID4gcnlvdXJ5b3VcIDsKK+itpuaKnCA+IGtlaWJhdHN1XCA7CivlpInnr4AgPiBoZW5zZXRzdVwgOwor57W56YedID4ga2ludWJhcmlcIDsKK+eNhOS4rSA+IGdva3VjaHV1XCA7CivkuIDlhaUgPiBoaXRvc2hpb1wgOwor5LiA5YWIID4gaGl0b21henVcIDsKK+aYh+agvCA+IHNob3VrYWt1XCA7Civnua3njokgPiBtYXl1ZGFtYVwgOwor5piO5pyIID4gbWVpZ2V0c3VcIDsKK+mereaSuyA+IGJlbnRhdHN1XCA7Civpm6jnspIgPiBhbWV0c3VidVwgOwor5aKX6KGAID4gem91a2V0c3VcIDsKK+aatOWKmyA+IGJvdXJ5b2t1XCA7CivoprPplrIgPiBrYW4nJ2V0c3VcIDsKK+aYk+aYkyA+IHlhc3V5YXN1XCA7Civnt5Hol7sgPiByeW9rdXNvdVwgOwor5aOu57W2ID4gc291emV0c3VcIDsKK+aVmeexjSA+IGt5b3VzZWtpXCA7CivpoJjlm70gPiByeW91Z29rdVwgOwor5piO5pilID4gbXlvdXNodW5cIDsKK+S4h+S7oyA+IHlvcm96dXlvXCA7CivmlK/ohIggPiBzaGlteWFrdVwgOwor54us5Zu9ID4gZG9rdWtva3VcIDsKK+aSsOi/sCA+IHNlbmp1dHN1XCA7CivkuInkuIsgPiBzYW5zaGl0YVwgOwor5aSn55WlID4gdGFpcnlha3VcIDsKK+Wls+awlyA+IG9uJyduYWtrZVwgOwor5aGp6LGGID4gc2hpb21hbWVcIDsKK+S4h+S4liA+IHlvcm96dXlvXCA7CivkuIfkuIAgPiBtYW4nJ2ljaGlcIDsKK+mbquepuiA+IHl1a2l6b3JhXCA7CivorIDmrrogPiBib3VzYXRzdVwgOwor57WE6ZW3ID4ga3VtaWNob3VcIDsKK+iogOiqrCA+IGdlbnNldHN1XCA7Civml6nmpa0gPiBoYXlhd2F6YVwgOwor6KeS6YCaID4ga2FrdXRzdXVcIDsKK+S4gOS4oSA+IGljaGlyeW91XCA7CivkuIDkuIAgPiBpdHN1aXRzdVwgOwor57Wx6L2EID4gdG91a2F0c3VcIDsKK+isoeabsiA+IHlvdWt5b2t1XCA7CivntIXpsZIgPiBiZW5pbWFzdVwgOwor54us5ZSxID4gZG9rdXNob3VcIDsKK+aWsOa9riA+IHNoaW5jaG91XCA7Civnt5HojLYgPiByeW9rdWNoYVwgOwor5pi85bitID4gaGlydXNla2lcIDsKK+e0hemurSA+IGJlbml6YWtlXCA7CivntI3pqqggPiBub3Vrb3RzdVwgOwor5pen5qCqID4ga3l1dWthYnVcIDsKK+Wnq+WuriA+IGhpbWVtaXlhXCA7CivlopzokL0gPiB0c3VpcmFrdVwgOwor5pWw55m+ID4gc3V1aHlha3VcIDsKK+mbhue0hCA+IHNodXV5YWt1XCA7CivoqpjnmbogPiB5dXVoYXRzdVwgOwor6aCY5Y+OID4gcnlvdXNodXVcIDsKK+eJh+aglyA+IGthdGFrdXJpXCA7Civml6zmnIggPiBqdW5nZXRzdVwgOwor5aSp54i1ID4gdGVuc2hha3VcIDsKK+eFjuiWrCA+IHNlbicneWFrdVwgOwor6Zu755WlID4gZGVucnlha3VcIDsKK+aWh+eJqSA+IGJ1bmJ1dHN1XCA7CivmlLnnr4kgPiBrYWljaGlrdVwgOwor6Kmm562LID4gdGFtZXN1amlcIDsKK+ippuethiA+IHNoaWhpdHN1XCA7Civml6fmmqYgPiBreXV1cmVraVwgOwor5pel5pucID4gbmljaGl5b3VcIDsKK+malOiGnCA+IGtha3VtYWt1XCA7Civml6zml6UgPiBqdW5qaXRzdVwgOwor5pWj55m6ID4gc2FucGF0c3VcIDsKK+mbkeeojiA+IHphdHN1emVpXCA7Civoqq3niakgPiB5b21pbW9ub1wgOwor6Zuq55uyID4gc2V0c3Vtb3VcIDsKK+itpuWvnyA+IGtlaXNhdHN1XCA7Civop6PoqqwgPiBrYWlzZXRzdVwgOwor57ep57epID4geXVydXl1cnVcIDsKK+aXqeaXqSA+IGhheWFiYXlhXCA7Civop5Losp0gPiB0c3Vub2dhaVwgOwor5pGC6aOfID4gc2Vzc2hva3VcIDsKK+ilv+mZoyA+IG5pc2hpamluXCA7Civop6bop5IgPiBzaG9ra2FrdVwgOwor5aOB57SZID4ga2FiZWdhbWlcIDsKK+inpuimmiA+IHNob2trYWt1XCA7Civml6fmlbUgPiBreXV1dGVraVwgOwor54m55b60ID4gdG9rdWNob3VcIDsKK+e0kOmdqSA+IGhpbW9rYXdhXCA7Civml6fmlZkgPiBreXV1a3lvdVwgOwor6ZuG56mNID4gc2h1dXNla2lcIDsKK+Wfi+mqqCA+IG1haWtvdHN1XCA7Civml5fmnKwgPiBoYXRhbW90b1wgOwor5aSW54mpID4gZ2FpYnV0c3VcIDsKK+inneinpiA+IHRlaXNob2t1XCA7CivntJrplbcgPiBreXV1Y2hvdVwgOwor5pas5q66ID4gemFuc2F0c3VcIDsKK+eJqeaDhSA+IGJ1dHN1am91XCA7Civnt6DntZAgPiB0ZWlrZXRzdVwgOwor6Z2p5pawID4ga2FrdXNoaW5cIDsKK+mbhuelqCA+IHNodXVoeW91XCA7CivmmbrlipsgPiBjaGlyeW9rdVwgOwor6Zuo55S3ID4gYW1lb3Rva29cIDsKK+eIhuayiCA+IGJha3VjaGluXCA7CivlpJzng48gPiB5b2dhcmFzdVwgOwor5aer5Z6jID4gaGltZWdha2lcIDsKK+eGiuesuSA+IGt1bWF6YXNhXCA7CivnhrHnmbogPiBuZXBwYXRzdVwgOwor6aCG5YiXID4ganVucmV0c3VcIDsKK+WiqOe5qSA+IHN1bWluYXdhXCA7CivorJnmipEgPiBrZW4nJ3lva3VcIDsKK+aSruimgSA+IHNhdHN1eW91XCA7Civni6zkv64gPiBkb2t1c2h1dVwgOwor5aSJ54mpID4gaGVuYnV0c3VcIDsKK+WiqOe4hCA+IHN1bWluYXdhXCA7CivmmKXlrrUgPiBzaHVuc2hvdVwgOwor54mp5b2xID4gbW9ub2thZ2VcIDsKK+mXh+mbsiA+IHlhbWlrdW1vXCA7CivntprokL0gPiB6b2t1cmFrdVwgOwor6Zuq546JID4geXVraWRhbWFcIDsKK+aRmOmMsiA+IHRla2lyb2t1XCA7Civku4TjgIUgPiBob25vYm9ub1wgOwor5pep5oqAID4gaGF5YXdhemFcIDsKK+e1gui6qyA+IHNodXVzaGluXCA7Civnt4rnuK4gPiBraW5zaHVrdVwgOwor6Kmm552AID4gc2hpY2hha3VcIDsKK+Wklua/oCA+IHNvdG9ib3JpXCA7Civlpr7lroUgPiBzaG91dGFrdVwgOwor5pif5a6/ID4gc2Vpc2h1a3VcIDsKK+inkuiiliA+IGtha3Vzb2RlXCA7Civpl4fpl4cgPiB5YW1peWFtaVwgOwor5aSa5rm/ID4gdGFzaGl0c3VcIDsKK+S6uuOAhSA+IGhpdG9iaXRvXCA7CivpnaLmjqUgPiBtZW5zZXRzdVwgOwor6ZuR55SoID4gemF0c3V5b3VcIDsKK+aWsOagqiA+IHNoaW5rYWJ1XCA7CivmkbrotrMgPiBzdXJpYXNoaVwgOwor5peB5peBID4ga2F0YWdhdGFcIDsKK+aWsOafhCA+IHNoaW5nYXJhXCA7CivmlL/nlaUgPiBzZWlyeWFrdVwgOwor6KaL6YCaID4gbWl0b29zaGlcIDsKK+mbo+eJqSA+IG5hbmJ1dHN1XCA7Civopovov5QgPiBtaWthZXNoaVwgOwor5aKX57WQID4gem91a2V0c3VcIDsKK+aYjuWvnyA+IG1laXNhdHN1XCA7Civlp6vlkJsgPiBoaW1lZ2ltaVwgOwor5pS755WlID4ga291cnlha3VcIDsKK+e1kOirliA+IGtldHN1cm9uXCA7CivlpY/mm7IgPiBzb3VreW9rdVwgOwor6Zy95pyIID4gc2VpZ2V0c3VcIDsKK+mYsuidlSA+IGJvdXNob2t1XCA7CivmlrDmmqYgPiBzaGlucmVraVwgOwor54S86IKJID4geWFraW5pa3VcIDsKK+eGvueDiCA+IHNoaXJldHN1XCA7CivntZDoqIAgPiBrZXRzdWdlblwgOwor6Ki856WoID4gc2hvdWh5b3VcIDsKK+maj+ethiA+IHp1aWhpdHN1XCA7CivlpJbms5UgPiBzb3Rvbm9yaVwgOwor5paw5pilID4gc2hpbnNodW5cIDsKK+aWsOaXpyA+IHNoaW5reXV1XCA7CivpmbjntpogPiByaWt1em9rdVwgOwor54ax54axID4gYXRzdWF0c3VcIDsKK+Wil+eviSA+IHpvdWNoaWt1XCA7CivkuqTjgIUgPiBrb21vZ29tb1wgOwor6ZaT6aOfID4ga2Fuc2hva3VcIDsKK+e4rua4myA+IHNodWt1Z2VuXCA7CivmlrDmlZkgPiBzaGlua3lvdVwgOwor5aOu54OIID4gc291cmV0c3VcIDsKK+e5geauliA+IGhhbnNob2t1XCA7CivlpKnmpbUgPiB0ZW5reW9rdVwgOwor54uC5L+hID4ga3lvdXNoaW5cIDsKK+aXp+W5lSA+IGt5dXViYWt1XCA7CivntbnojqIgPiBraW51c2F5YVwgOwor5aSx5qC8ID4gc2hpa2tha3VcIDsKK+mWqOmWpSA+IGtlaWJhdHN1XCA7Civml6XluLggPiBuaWNoaWpvdVwgOwor6ZuR54S2ID4gemF0c3V6ZW5cIDsKK+aVl+a7hSA+IGhhaW1ldHN1XCA7CivmlL7nhrEgPiBob3VuZXRzdVwgOwor6KqY5q66ID4geXV1c2F0c3VcIDsKK+mXiumBlCA+IGthdHRhdHN1XCA7CivpmY3ogbcgPiBrb3VzaG9rdVwgOwor57Sg6LOqID4gc29zaGl0c3VcIDsKK+WegumrqiA+IHRhcmVnYW1pXCA7Civpm4HniKogPiBnYW5kenVtZVwgOwor57im5rOiID4gdGF0ZW5hbWlcIDsKK+e0sOiqrCA+IHNhaXNldHN1XCA7CivoqLrnmYIgPiBzaGlucnlvdVwgOwor57aa57aaID4gem9rdXpva3VcIDsKK+eIhuaSgyA+IGJha3VnZWtpXCA7CivopovorZggPiBrZW5zaGlraVwgOwor6Kqw5p+QID4gZGFyZXNvcmVcIDsKK+eEvOezniA+IHlha2VrdXNvXCA7Civml4vlvosgPiBzZW5yaXRzdVwgOwor6Ku45byPID4gc2hvc2hpa2lcIDsKK+eGsea6kCA+IG5ldHN1Z2VuXCA7Civop6PogbcgPiBrYWlzaG9rdVwgOwor5LqL44CFID4ga290b2dvdG9cIDsKK+WknOahnCA+IHlvemFrdXJhXCA7CivmlofmnKsgPiBidW5tYXRzdVwgOwor5pen5a6FID4ga3l1dXRha3VcIDsKK+iqv+aVmSA+IGNob3VreW91XCA7CivkuojjgIUgPiBrYW5lZ2FuZVwgOwor5pmC5YG2ID4gdG9raXRhbWFcIDsKK+WmguWunyA+IG55b2ppdHN1XCA7Civmlo7ml6UgPiBzYWlqaXRzdVwgOwor6KeS6IacID4ga2FrdW1ha3VcIDsKK+eGsea2mSA+IG5ldHN1cnVpXCA7Civoq5Lmib8gPiByeW91c2hvdVwgOwor6Zu75qW1ID4gZGVua3lva3VcIDsKK+WhteeusSA+IGdvbWliYWtvXCA7CivmlY/mtLsgPiBiaW5rYXRzdVwgOwor6ZaL6ZeiID4ga2FpYnlha3VcIDsKK+eFpeeZuiA+IGthbnBhdHN1XCA7CivlpKfml6UgPiBkYWluaWNoaVwgOwor6Z+T5Lq6ID4ga2FyYWJpdG9cIDsKK+WkluaeoCA+IHNvdG93YWt1XCA7Civmlbfmnb8gPiBzaGlraWl0YVwgOwor6Kqs5piOID4gc2V0c3VtZWlcIDsKK+e4puaoqiA+IHRhdGV5b2tvXCA7CivopoHoqKMgPiB5b3VrZXRzdVwgOwor5aKX55m6ID4gem91aGF0c3VcIDsKK+aYjuWTsiA+IG1laXRldHN1XCA7CivlpJzmmLwgPiB5b3J1aGlydVwgOwor54K56KizID4gdGVuJyd5YWt1XCA7CivlpJXmnIggPiB5dXVkenVraVwgOwor5pa55byPID4gaG91c2hpa2lcIDsKK+mWgOmWpSA+IG1vbmJhdHN1XCA7Civpo4TjgIUgPiBoeW91aHlvdVwgOwor5pil5YWIID4gaGFydXNha2lcIDsKK+Wni+WApCA+IGhhamltZW5lXCA7CivmlrDlvaIgPiBzaGluZ2F0YVwgOwor57+844CFID4geW9rdXlva3VcIDsKK+mZuOebuCA+IHJpa3VzaG91XCA7Civntbnntr8gPiBraW51d2F0YVwgOwor54mG5aOBID4gc2hvdWhla2lcIDsKK+Wjiua7hSA+IGthaW1ldHN1XCA7CivpmpvniakgPiBraXdhbW9ub1wgOwor5aSt5oqYID4geW91c2V0c3VcIDsKK+WlqOWtpiA+IHNob3VnYWt1XCA7Civpm4bms6ggPiBzaHV1Y2h1dVwgOwor5pW15pa5ID4gdGVraWdhdGFcIDsKK+mVt+mVtyA+IG5hZ2FuYWdhXCA7CivmlrDlubQgPiBzaGluJyduZW5cIDsKK+eIhuW/gyA+IGJha3VzaGluXCA7CivntIToq74gPiB5YWt1ZGFrdVwgOwor5pWw5pelID4gc3V1aml0c3VcIDsKK+acrOOAhSA+IG1vdG9tb3RvXCA7CivpmLLnuK4gPiBib3VzaHVrdVwgOwor5pOB56uLID4geW91cml0c3VcIDsKK+aVsOaVsCA+IGthenVrYXp1XCA7CivlpKfmiYAgPiBvb2Rva29yb1wgOwor5pen5Zu9ID4ga3l1dWtva3VcIDsKK+WcsOm8oCA+IGppbmV6dW1pXCA7CivntJTooYAgPiBqdW5rZXRzdVwgOwor57KJ6aO+ID4gZnVuc2hva3VcIDsKK+e4puabuCA+IHRhdGVnYWtpXCA7Civmk6bnlrUgPiBzdXJpa2l6dVwgOwor57KJ6aOfID4gZnVuc2hva3VcIDsKK+WhmueptCA+IHRzdWthYW5hXCA7CivlpJbmjqUgPiBnYWlzZXRzdVwgOwor6KmV5rOoID4gaHlvdWNodXVcIDsKK+eFp+eEvCA+IHRlcml5YWtpXCA7CivlpLHlv4MgPiBzaGlzc2hpblwgOwor57W2562GID4gemVwcGl0c3VcIDsKK+mbo+absiA+IG5hbmt5b2t1XCA7CivoqIjnlaUgPiBrZWlyeWFrdVwgOwor5aSZ5oiQID4gc2h1a3VzZWlcIDsKK+imi+iQvSA+IG1pb3Rvc2hpXCA7CivngrnolqwgPiB0ZW4nJ3lha3VcIDsKK+eCuOiWrCA+IHNha3V5YWt1XCA7CivmlrDlroUgPiBzaGludGFrdVwgOwor5Z+L6KitID4gbWFpc2V0c3VcIDsKK+aOpemqqCA+IHNla2tvdHN1XCA7Civpmb3niakgPiB5b3VidXRzdVwgOwor6KuW5a6iID4gcm9ua3lha3VcIDsKK+inkuesmyA+IHRzdW5vYnVlXCA7CivnhrHmnJsgPiBuZXRzdWJvdVwgOwor6ZW36YedID4gY2hvdXNoaW5cIDsKK+mWsuiqrSA+IGV0c3Vkb2t1XCA7CivoqrDlvbwgPiB0YXJla2FyZVwgOwor57Gz6aOfID4gYmVpc2hva3VcIDsKK+e0ouiOqyA+IHNha3ViYWt1XCA7CivntZDnuIQgPiBrZXRzdWpvdVwgOwor5LmF44CFID4gaGlzYWJpc2FcIDsKK+mbkeabsiA+IHpha2t5b2t1XCA7CivlpKrlt7sgPiBmdXRvbWFraVwgOwor5paw5aa7ID4gbmlpZHp1bWFcIDsKK+e1kOe0riA+IGtlc3NhdHN1XCA7CivlpJnlv5cgPiBzaHVrdXNoaVwgOwor57+M44CFID4geW9rdXlva3VcIDsKK+aXp+WKhyA+IGt5dXVnZWtpXCA7CivmkZjoiq8gPiB0ZWtpc2hpblwgOwor6Zai6KqsID4ga2Fuc2V0c3VcIDsKK+eJqeS6iyA+IG1vbm9nb3RvXCA7CivoqLPms6ggPiB5YWt1Y2h1dVwgOwor5pS55pytID4ga2Fpc2F0c3VcIDsKK+eFruayuCA+IHNoYWZ1dHN1XCA7CivlpKfltZAgPiBvb2FyYXNoaVwgOwor6KO96YmEID4gc2VpdGV0c3VcIDsKK+ijhemjviA+IHNvdXNob2t1XCA7Civpm5HmlocgPiB6YXRzdWJ1blwgOwor5Li444CFID4gbWFydW1hcnVcIDsKK+e0meiKsSA+IGthbWliYW5hXCA7CivnhLzniakgPiB5YWtpbW9ub1wgOwor5pW15b25ID4gdGVraXlha3VcIDsKK+e1kOevgCA+IGtlc3NldHN1XCA7Civplbfou7ggPiBjaG91amlrdVwgOwor5aSW5bqtID4gc290b25pd2FcIDsKK+e1hOe0kCA+IGt1bWloaW1vXCA7CivnspLpioAgPiB0c3VidWdpblwgOwor6ZyH5bmFID4gc2hpbnB1a3VcIDsKK+aVtOW8jyA+IHNlaXNoaWtpXCA7CivplovosYEgPiBrYWlrYXRzdVwgOwor6ZW36LqrID4gY2hvdXNoaW5cIDsKK+e4geaXpSA+IGVuJyduaWNoaVwgOwor5aSn5bGAID4gdGFpa3lva3VcIDsKK+aWsOWeiyA+IHNoaW5nYXRhXCA7CivlpJzltZAgPiB5b2FyYXNoaVwgOwor5pWw5byPID4gc3V1c2hpa2lcIDsKK+abtOOAhSA+IHNhcmFzYXJhXCA7CivniZvkubMgPiBneXV1bnl1dVwgOwor5Lit44CFID4gbmFrYW5ha2FcIDsKK+absuOAhSA+IGt1bWFndW1hXCA7CivplbfotrMgPiBjaG91c29rdVwgOwor5aGp54mpID4gc2hpb21vbm9cIDsKK+imgeiBtyA+IHlvdXNob2t1XCA7CivniYflgbQgPiBrYXRhZ2F3YVwgOwor6KS26KWeID4gc2h1dWhla2lcIDsKK+mbgOaWkSA+IHNvYmFrYXN1XCA7Civml6fkv5cgPiBreXV1em9rdVwgOwor6Zuy5b2iID4ga3Vtb2dhdGFcIDsKK+e1jOeptCA+IGtlaWtldHN1XCA7CivkuKbjgIUgPiBuYW1pbmFtaVwgOwor5pKe552AID4gZG91Y2hha3VcIDsKK+aXp+S9nCA+IGt5dXVzYWt1XCA7CivntIXoirEgPiBiZW5pYmFuYVwgOwor6Zmw5rm/ID4gaW5zaGl0c3VcIDsKK+e3qOabsiA+IGhlbmt5b2t1XCA7CivntYTnq4sgPiBrdW1pdGF0ZVwgOwor6ZaL6KitID4ga2Fpc2V0c3VcIDsKK+S4oeOAhSA+IHJ5b3VyeW91XCA7CivntLDntLAgPiBob3NvYm9zb1wgOwor6Kmm5o6YID4gc2hpa3V0c3VcIDsKK+WhqeeEvCA+IHNoaW95YWtpXCA7CivlpJblsYAgPiBnYWlreW9rdVwgOwor5aKX5q6WID4gem91c2hva3VcIDsKK+aXp+S6uiA+IGZ1cnViaXRvXCA7CivoqLPmpa0gPiB5YWt1Z3lvdVwgOwor5o6S6ZuqID4gaGFpc2V0c3VcIDsKK+eym+i7jSA+IHNodWt1Z3VuXCA7CivnhrHmhJ8gPiBuZXRzdWthblwgOwor5aSx5aKcID4gc2hpdHRzdWlcIDsKK+WbvemzpSA+IGtva3VjaG91XCA7Civoq7jlhbEgPiBtb3JvdG9tb1wgOwor5aSr5aSrID4gc29yZXpvcmVcIDsKK+e0oee5lCA+IGJvdXNob2t1XCA7CivlpJblrqIgPiBnYWlreWFrdVwgOwor54ax5oOFID4gbmV0c3Vqb3VcIDsKK+WkluWtqyA+IHNvdG9tYWdvXCA7Civns5bonJwgPiB0b3VtaXRzdVwgOwor6Kqg5a6fID4gc2Vpaml0c3VcIDsKK+mbo+W9uSA+IG5hbicneWFrdVwgOwor5pWR5oClID4ga3l1dWt5dXVcIDsKK+Whl+eJqSA+IG51cmltb25vXCA7CivniYjkuIsgPiBoYW5zaGl0YVwgOwor6Zmk5rm/ID4gam9zaGl0c3VcIDsKK+eGlOaOpSA+IHlvdXNldHN1XCA7CivntbHnjocgPiB0b3Vzb3RzdVwgOwor6ZW36Kq/ID4gY2hvdWNob3VcIDsKK+aXheWFiCA+IHRhYmlzYWtpXCA7CivngrnntrQgPiB0ZW50ZXRzdVwgOwor57Sw562GID4gc2FpaGl0c3VcIDsKK+mbquW2uiA+IHNldHN1cmVpXCA7CivntbnniakgPiBraW51bW9ub1wgOwor6Kiz5p+EID4gd2FrZWdhcmFcIDsKK+iln+iFsCA+IGVyaWtvc2hpXCA7CivntZDnnYAgPiBrZXRjaGFrdVwgOwor57eR5p6XID4gcnlva3VyaW5cIDsKK+e1kOebnyA+IGtldHN1bWVpXCA7CivnhrHlvIEgPiBuZXRzdWJlblwgOwor6ZuR5b+1ID4gemF0c3VuZW5cIDsKK+iojuatuyA+IHVjaGlqaW5pXCA7CivmlK/miZUgPiBzaGloYXJhaVwgOwor6Kaq552mID4gc2hpbmJva3VcIDsKK+WggOerryA+IGhvcmliYXRhXCA7CivpmaXmsqEgPiBrYW5ib3RzdVwgOwor5paw5YqHID4gc2hpbmdla2lcIDsKK+inkueJmyA+IGtha3VneXV1XCA7Civpm5HlvbkgPiB6YXRzdWVraVwgOwor6Zuq5bGxID4geXVraXlhbWFcIDsKK+iruOS6uiA+IG1vcm9iaXRvXCA7CivpmaPmsqEgPiBqaW5ib3RzdVwgOwor6Zm95qW1ID4geW91a3lva3VcIDsKK+eItuS4iiA+IGNoaWNoaXVlXCA7Civpm6rlrrMgPiBzZXRzdWdhaVwgOwor6ZW36KKWID4gbmFnYXNvZGVcIDsKK+S4gOOAhSA+IGl0c3VpdHN1XCA7CivpmLLnhrEgPiBib3VuZXRzdVwgOwor6Zuj5bGAID4gbmFua3lva3VcIDsKK+e4hOW8tSA+IG5hd2FiYXJpXCA7CivlpJbloIAgPiBzb3RvYm9yaVwgOwor57WM55WlID4ga2Vpcnlha3VcIDsKK+ijj+mBkyA+IHVyYW1pY2hpXCA7CivpmqPmjqUgPiByaW5zZXRzdVwgOwor57aZ5q+NID4gbWFtYWhhaGFcIDsKK+Wkp+WWnSA+IGRhaWthdHN1XCA7CivntJnnrYYgPiBzaGloaXRzdVwgOwor5pWZ5a2mID4ga3lvdWdha3VcIDsKK+mcsuWHuiA+IHJvc2h1dHN1XCA7CivoqKrml6UgPiBob3VuaWNoaVwgOwor5aGp5rC0ID4gc2hpb21penVcIDsKK+aVt+WcsCA+IHNoaWtpY2hpXCA7CivpmobmmIwgPiByeXV1c2hvdVwgOwor5paw5L+uID4gc2hpbnNodXVcIDsKK+Wkp+WQiSA+IGRhaWtpY2hpXCA7CivmlrDkvZwgPiBzaGluc2FrdVwgOwor6Zai6ISHID4gc2VraXdha2VcIDsKK+eHreWPsCA+IHNob2t1ZGFpXCA7Civngq3nqq8gPiBzdW1pZ2FtYVwgOwor6Zu75ZynID4gZGVuJydhdHN1XCA7Civpm6jlpbMgPiBhbWVvbicnbmFcIDsKK+eIhuWCtyA+IGJha3VzaG91XCA7CivmlrDku7sgPiBzaGluJyduaW5cIDsKK+a/gOmchyA+IGdla2lzaGluXCA7CivplpPoibIgPiBrYW5zaG9rdVwgOwor5aSJ5ZynID4gaGVuJydhdHN1XCA7CivopqrnjosgPiBzaGluJydub3VcIDsKK+Wkp+WNkiA+IGRhaXNvdHN1XCA7Civnt4/mi6wgPiBzb3VrYXRzdVwgOwor6Kej5rG6ID4ga2Fpa2V0c3VcIDsKK+aUv+WxgCA+IHNlaWt5b2t1XCA7Civlo4HlvbkgPiBrYWJleWFrdVwgOwor5o6b6Lu4ID4ga2FrZWppa3VcIDsKK+e4hOWwuyA+IG5hd2FqaXJpXCA7Civoo7LopaAgPiB1Y2hpa2FrZVwgOwor5Z+6552jID4ga2lyaXN1dG9cIDsKK+ikquiJsiA+IHRhaXNob2t1XCA7CivlpKfliKUgPiB0YWliZXRzdVwgOwor5aSn5YiHID4gdGFpc2V0c3VcIDsKK+aWieWIlyA+IHNlaXJldHN1XCA7Civpm6rlm70gPiB5dWtpZ3VuaVwgOwor5aSn5YaKID4gdGFpc2F0c3VcIDsKK+e3u+WvhiA+IGNoaW1pdHN1XCA7CivplpHogbcgPiBrYW5zaG9rdVwgOwor5aSJ5ZOyID4gaGVudGV0c3VcIDsKK+ezuOeruSA+IHNoaWNoaWt1XCA7CivplovohJogPiBrYWlreWFrdVwgOwor5pSv5bGAID4gc2hpa3lva3VcIDsKK+WkseS/nSA+IHNoaXRzdWhvXCA7CivntYLnhoQgPiBzaHV1c29rdVwgOwor5aSW5YqbID4gZ2Fpcnlva3VcIDsKK+iqv+S8jyA+IGNob3VidWt1XCA7Civpm5vlnosgPiBoaW5hZ2F0YVwgOwor6KaB55WlID4geW91cnlha3VcIDsKK+aVkeWbvSA+IGt5dXVrb2t1XCA7CivploDohIggPiBtb25teWFrdVwgOwor6KSQ6ImyID4ga2Fzc2hva3VcIDsKK+aVtOWIlyA+IHNlaXJldHN1XCA7Civpm7vlipsgPiBkZW5yeW9rdVwgOwor5o6l6KemID4gc2Vzc2hva3VcIDsKK+aVsOWIlyA+IHN1dXJldHN1XCA7CivlpKfku48gPiBkYWlidXRzdVwgOwor6Zai56+AID4ga2Fuc2V0c3VcIDsKK+aUvuWfkiA+IGhvdXJhdHN1XCA7CivntZ7mrrogPiBrb3VzYXRzdVwgOwor5aSW5YG0ID4gc290b2dhd2FcIDsKK+ihqOmWgCA+IG9tb3RlbW9uXCA7CivmlbDlhoogPiBzdXVzYXRzdVwgOwor6Zuy5YqpID4ga3Vtb3N1a2VcIDsKK+mbquWOnyA+IHNldHN1Z2VuXCA7Civpm5HlmqIgPiB6YXRzdW5vdVwgOwor5r+B6YWSID4gZG9idXJva3VcIDsKK+Wcn+izqiA+IGRvc2hpdHN1XCA7CivmlbXlgbQgPiB0ZWtpZ2F3YVwgOwor6Kil5byBID4gdG90c3ViZW5cIDsKK+ijj+ihqCA+IHVyYW9tb3RlXCA7Civoqq3kuoYgPiBkb2t1cnlvdVwgOwor54Gw56+pID4gaGFpZnVydWlcIDsKK+eypeiFuSA+IGtheXViYXJhXCA7CivngInooYAgPiBzaGFrZXRzdVwgOwor5aCF54KtID4ga2F0YXp1bWlcIDsKK+e2v+W8kyA+IHdhdGF5dW1pXCA7CivnuK7lhpkgPiBzaHVrdXNoYVwgOwor5pWZ5Y2TID4ga3lvdXRha3VcIDsKK+WeguiAsyA+IHRhcmVtaW1pXCA7CivoqbDllY8gPiBraXRzdW1vblwgOwor5aOy5Y20ID4gYmFpa3lha3VcIDsKK+aOoeihgCA+IHNhaWtldHN1XCA7CivnuKbliJcgPiBqdXVyZXRzdVwgOwor6KGM6Z2pID4gZ3lvdWtha3VcIDsKK+e1tuacmyA+IHpldHN1Ym91XCA7CivmkoPmsoggPiBnZWtpY2hpblwgOwor6KeS5p+xID4ga2FrdWNodXVcIDsKK+Wbvei+sSA+IGtva3Vqb2t1XCA7CivmlZnliYcgPiBreW91c29rdVwgOwor5aKo5a6iID4gYm9ra3lha3VcIDsKK+Wjq+WNkiA+IHNoaXNvdHN1XCA7CivlnLDooosgPiBqaWJ1a3Vyb1wgOwor5pW15LitID4gdGVraWNodXVcIDsKK+WjsuWHuiA+IHVyaWRhc2hpXCA7Civnt4rlr4YgPiBraW5taXRzdVwgOwor5o+656+tID4geXVyaWthZ29cIDsKK+mbquWDjyA+IHNldHN1em91XCA7CivntIXnjokgPiBrb3VneW9rdVwgOwor57Gz6JS1ID4ga29tZWd1cmFcIDsKK+a9rumiqCA+IHNoaW9rYXplXCA7CivlnovntJkgPiBrYXRhZ2FtaVwgOwor6Kiq5a6iID4gaG91a3lha3VcIDsKK+ioseWrgSA+IGlpbmF6dWtlXCA7CivmjY/pgKAgPiBuZXRzdXpvdVwgOwor5pWj5L2aID4gc2FuJydpdHN1XCA7CivoqLHlqZogPiBpaW5henVrZVwgOwor57Si5rygID4gc2FrdWJha3VcIDsKK+mWj+enkiA+IHVydXVieW91XCA7CivmvaTpo74gPiBqdW5zaG9rdVwgOwor5ouz6aqoID4gZ2Vua290c3VcIDsKK+e2v+WvhiA+IG1lbm1pdHN1XCA7Civmv4DotoogPiBnZWtpZXRzdVwgOwor57a/5a6fID4gbWVuaml0c3VcIDsKK+e0sOazoiA+IHNhemFuYW1pXCA7Civpmpzlo4EgPiBzaG91aGVraVwgOwor5Zu96LOKID4ga29rdXpva3VcIDsKK+eCuea7hSA+IHRlbm1ldHN1XCA7Civop6bmiYsgPiBzaG9rdXNodVwgOwor56+A6aOfID4gc2Vzc2hva3VcIDsKK+a/gOizniA+IGdla2lzaG91XCA7Civoo73nuZQgPiBzZWlzaG9rdVwgOwor57Wm5paZID4ga3l1dXJ5b3VcIDsKK+e0lOa9lCA+IGp1bmtldHN1XCA7CivpmpTlo4EgPiBrYWt1aGVraVwgOwor5pS+5YiXID4gaG91cmV0c3VcIDsKK+mZuOWwhiA+IHJpa3VzaG91XCA7CivntYLmpa0gPiBzaHV1Z3lvdVwgOwor6Zuq5LiKID4gc2V0c3Vqb3VcIDsKK+eyn+eykiA+IHpva3VyeXV1XCA7CivoprPmnIggPiBrYW5nZXRzdVwgOwor57Wx5ousID4gdG91a2F0c3VcIDsKK+aLvumbhiA+IHNodXVzaHV1XCA7Civnt5HlnLAgPiByeW9rdWNoaVwgOwor54Sm5b+DID4gc2hvdXNoaW5cIDsKK+evgOmbuyA+IHNldHN1ZGVuXCA7CivnspjnspggPiBuZWJhbmViYVwgOwor54KO54axID4gZW4nJ25ldHN1XCA7Civlm73oqLEgPiBrdW5pbW90b1wgOwor6ZaL55m6ID4ga2FpaGF0c3VcIDsKK+eykueykiA+IHJ5dXVyeXV1XCA7CivmmYLjgIUgPiB0b2tpZG9raVwgOwor6Kej5byPID4ga2Fpc2hpa2lcIDsKK+imquaXjyA+IHNoaW56b2t1XCA7Civplbfnn7MgPiBjaG91c2VraVwgOwor57KJ57KJID4ga29uYWdvbmFcIDsKK+aQjeeOhyA+IHNvbnJpdHN1XCA7CivooajosaEgPiBoeW91c2hvdVwgOwor6ZuH5Lq6ID4geWF0b2luaW5cIDsKK+ioreWVjyA+IHNldHN1bW9uXCA7Civopprmm7ggPiBvYm9lZ2FraVwgOwor5ryG6buSID4gc2hpa2tva3VcIDsKK+e3qOWFpSA+IGhlbicnbnl1dVwgOwor5ouS6aOfID4ga3lvc2hva3VcIDsKK+mbhuS4rSA+IHNodXVjaHV1XCA7CivntK/mnIggPiBydWlnZXRzdVwgOwor5Z6C55u0ID4gc3VpY2hva3VcIDsKK+e0heauuyA+IGJlbmlnYXJhXCA7Civmi5vpm4YgPiBzaG91c2h1dVwgOwor5pKl5bymID4gaGF0c3VnZW5cIDsKK+ihjOi3oSA+IGd5b3VzZWtpXCA7Civop5LlupcgPiBrYWRvbWlzZVwgOwor57e05LmzID4gcmVuJydueXV1XCA7CivnsbPns6AgPiBrb21lbnVrYVwgOwor57eP5YqbID4gc291cnlva3VcIDsKK+e0r+aXpSA+IHJ1aWppdHN1XCA7CivlnKjogbcgPiB6YWlzaG9rdVwgOwor57eP5YilID4gc291YmV0c3VcIDsKK+Wfi+ayoSA+IG1haWJvdHN1XCA7CivopqrmiJogPiBzaGluc2VraVwgOwor57KY552AID4gbmVuY2hha3VcIDsKK+eznua6nCA+IGt1c29kYW1lXCA7Civnt4rliIcgPiBraW5zZXRzdVwgOwor56+J6YCgID4gY2hpa3V6b3VcIDsKK+inpuWqkiA+IHNob2t1YmFpXCA7CivpmorliJcgPiB0YWlyZXRzdVwgOwor57Si5pW1ID4gc2FrdXRla2lcIDsKK+Wil+WItyA+IHpvdXNhdHN1XCA7CivmmJPjgIUgPiB5YXN1eWFzdVwgOwor57eR5L6/ID4gcnlva3ViZW5cIDsKK+a9rui2syA+IHNoaW9hc2hpXCA7CivplrLmrbQgPiBldHN1cmVraVwgOwor57SN5pytID4gbm91c2F0c3VcIDsKK+e1guaBryA+IHNodXVzb2t1XCA7CivmjK/oopYgPiBmdXJpc29kZVwgOwor57Of5rGBID4ga2FzdWppcnVcIDsKK+e0hOadnyA+IHlha3Vzb2t1XCA7CivooYboqZUgPiBzaHV1aHlvdVwgOwor5oqR6ayxID4geW9rdXV0c3VcIDsKK+aMh+iyqyA+IHl1YmludWtpXCA7CivntbblpKcgPiB6ZXRzdWRhaVwgOwor5r+A6IetID4gZ2VraXNodXVcIDsKK+imi+aJgCA+IG1pZG9rb3JvXCA7Civmj5vniakgPiBrYW5idXRzdVwgOwor57KX546HID4gYXJhcml0c3VcIDsKK+e1guW5lSA+IHNodXVtYWt1XCA7CivopbLmkoMgPiBzaHV1Z2VraVwgOwor57WQ5bGAID4ga2Vra3lva3VcIDsKK+eti+mqqCA+IHN1amlib25lXCA7Civmk6blgrcgPiBzdXJpa2l6dVwgOwor6Kaz5a+fID4ga2Fuc2F0c3VcIDsKK+ims+WuoiA+IGthbmt5YWt1XCA7Civmv6vnq4sgPiByYW5yaXRzdVwgOwor5o6l552AID4gc2V0Y2hha3VcIDsKK+mZo+WIlyA+IGppbnJldHN1XCA7CivplpPmrYcgPiBrYW5rZXRzdVwgOwor5Zyf562GID4gdHN1a3VzaGlcIDsKK+ihsOiJsiA+IHN1aXNob2t1XCA7CivnspvnhLYgPiBzaHVrdXplblwgOwor6ZaT5qygID4ga2Fua2V0c3VcIDsKK+e0sOW8lSA+IGhvc29iaWtpXCA7CivopqrlsYAgPiBveWFreW9rdVwgOwor566h6L2EID4ga2Fua2F0c3VcIDsKK+mZpeWFpSA+IGthbicnbnl1dVwgOwor6KGo6Iq4ID4gb21vdGVnZWlcIDsKK+aXqeOAhSA+IGhheWFiYXlhXCA7Civoo4XnnYAgPiBzb3VjaGFrdVwgOwor57WC5a+pID4gc2h1dXNoaW5cIDsKK+a/g+e4riA+IG5vdXNodWt1XCA7CivoqI7kvJAgPiB0b3ViYXRzdVwgOwor6KyO44CFID4gbmF6b25hem9cIDsKK+e1guWutSA+IHNodXVzaG91XCA7Civln7flv4MgPiBzaHV1c2hpblwgOwor5o+Q54GvID4gY2hvdWNoaW5cIDsKK+aRmOW/gyA+IHRla2lzaGluXCA7Civoo4/nlLogPiB1cmFtYWNoaVwgOwor54WJ5LmzID4gcmVuJydueXV1XCA7CivlnJ/npZ4gPiB1Y2hpZ2FtaVwgOwor5aCA5bedID4gaG9yaWthd2FcIDsKK+e1tuWRvSA+IHpldHN1bWVpXCA7CivpmYvliqMgPiByb3VyZXRzdVwgOwor6KaB5byPID4geW91c2hpa2lcIDsKK+ethumghiA+IGhpdHN1anVuXCA7CivoorTnnYAgPiBoYWthbWFnaVwgOwor6KaW5a+fID4gc2hpc2F0c3VcIDsKK+ewoee0hCA+IGthbicneWFrdVwgOwor5Zu957GNID4ga29rdXNla2lcIDsKK+aMveiCiSA+IGhpa2luaWt1XCA7CivntprkvLggPiB6b2t1c2hpblwgOwor57Kb5riFID4gc2h1a3VzZWlcIDsKK+e0sOWvhiA+IHNhaW1pdHN1XCA7CivplpPmn4QgPiBhaWRhZ2FyYVwgOwor5pKD5aKcID4gZ2VraXRzdWlcIDsKK+WgheWunyA+IGtlbmppdHN1XCA7Civoq7jjgIUgPiBtb3JvbW9yb1wgOwor5Zu9562WID4ga29rdXNha3VcIDsKK+a/q+eZuiA+IHJhbnBhdHN1XCA7CivnrYbpmaMgPiBoaXRzdWppblwgOwor57WQ5ZujID4ga2V0c3VkYW5cIDsKK+ieoumbqiA+IGtlaXNldHN1XCA7Civplo/mnIggPiBqdW5nZXRzdVwgOwor6KaG5a+pID4gZnVrdXNoaW5cIDsKK+mWi+acrSA+IGthaXNhdHN1XCA7CivntKLlr54gPiBzYWt1YmFrdVwgOwor6J226a6rID4gY2hvdXphbWVcIDsKK+aQpuaJiyA+IGthcmFtZXRlXCA7Civlm6PntZAgPiBkYW5rZXRzdVwgOwor5peB44CFID4ga2F0YWdhdGFcIDsKK+e0meWxkSA+IGthbWlrdXp1XCA7CivnspXmsYEgPiBrYXN1amlydVwgOwor6KGA6ImyID4ga2Vzc2hva3VcIDsKK+eym+atoyA+IHNodWt1c2VpXCA7CivploDmnK0gPiBtb25zYXRzdVwgOwor6Kuk44CFID4gZ2FrdWdha3VcIDsKK+e1tuWAqyA+IHpldHN1cmluXCA7CivlnovmnqAgPiBrYXRhd2FrdVwgOwor5oq96LGhID4gY2h1dXNob3VcIDsKK+aKhOmMsiA+IHNob3Vyb2t1XCA7CivpkZHorZggPiBrYW5zaGlraVwgOwor6ZeH5biCID4geWFtaWljaGlcIDsKK+iejembqiA+IHl1dXNldHN1XCA7CivnsJLnq4sgPiBzYW5yaXRzdVwgOwor57WQ5ZCIID4ga2V0c3Vnb3VcIDsKK+WcsOeGsSA+IGNoaW5ldHN1XCA7CivplpPmjqUgPiBrYW5zZXRzdVwgOwor562L6YeRID4gc3VqaWdhbmVcIDsKK+imquWRiiA+IHNoaW5rb2t1XCA7CivnrpfooZMgPiBzYW5qdXRzdVwgOwor5r2k6ImyID4ganVuc2hva3VcIDsKK+ihqOeroCA+IGh5b3VzaG91XCA7Civopqrlj4sgPiBzaGluJyd5dXVcIDsKK+a8ouiosyA+IGthbicneWFrdVwgOwor6ZW35peFID4gbmFnYXRhYmlcIDsKK+mYsuS6uiA+IHNha2ltb3JpXCA7CivntLPllYYgPiBzaGluc2hvdVwgOwor6J+76JyCID4gYXJpYmFjaGlcIDsKK+a/gOeXmyA+IGdla2l0c3V1XCA7CivoprPlhaUgPiBrYW4nJ255dXVcIDsKK+ihneeriyA+IHRzdWl0YXRlXCA7CivmirXop6YgPiB0ZWlzaG9rdVwgOwor57Ch55WlID4ga2Fucnlha3VcIDsKK+aOoeaxuiA+IHNhaWtldHN1XCA7CivmjajnjKsgPiBzdXRlbmVrb1wgOwor566x6Ii5ID4gaGFrb2J1bmVcIDsKK+euseiInyA+IGhha29idW5lXCA7Civon4DosLcgPiBrb21la2FtaVwgOwor6J+v6JmrID4gZ3lvdWNodXVcIDsKK+Wkq+OAhSA+IHNvcmV6b3JlXCA7Civoo4HmsbogPiBzYWlrZXRzdVwgOwor6KaW5YqbID4gc2hpcnlva3VcIDsKK+eyieacqyA+IGZ1bm1hdHN1XCA7CivmjoPmu4UgPiBzb3VtZXRzdVwgOwor5Z+S5aSWID4gcmFjaGlnYWlcIDsKK+aOkuazhCA+IGhhaXNldHN1XCA7Civopb/lk7IgPiBzZWl0ZXRzdVwgOwor5Z2q5pWwID4gdHN1Ym9zdXVcIDsKK+eznuWwvyA+IGZ1bicnbnlvdVwgOwor6KGo55m9ID4gaHlvdWhha3VcIDsKK+Wbm+eZviA+IHlvbmh5YWt1XCA7CivntLDliKUgPiBzYWliZXRzdVwgOwor5omL6Y+hID4gdGVrYWdhbWlcIDsKK+imquS7uyA+IHNoaW4nJ25pblwgOwor6KCP6IKhID4gZ2FuaW1hdGFcIDsKK+WggOWJsiA+IGhvcml3YXJpXCA7CivplqLlroggPiBzZWtpbW9yaVwgOwor6KGA56iOID4ga2V0c3V6ZWlcIDsKK+Wft+WLmSA+IHNoaXRzdW11XCA7CivmjZXniakgPiB0b3JpbW9ub1wgOwor5oiQ6aaZID4gbmFyaWt5b3VcIDsKK+e1guS6hiA+IHNodXVyeW91XCA7CivnsbPmnb4gPiBiZWltYXRzdVwgOwor56+A57O4ID4gZnVzaGlpdG9cIDsKK+Wei+W8jyA+IGtlaXNoaWtpXCA7Civnr4DnsbMgPiBzZXRzdW1haVwgOwor5pWw44CFID4ga2F6dWthenVcIDsKK+aJv+irviA+IHNob3VkYWt1XCA7CivnrYboq4cgPiBoaXRzdWRhblwgOwor5oqE6KizID4gc2hvdXlha3VcIDsKK+mWi+WxgCA+IGthaWt5b2t1XCA7Civnqq7ps6UgPiBreXV1Y2hvdVwgOwor6J+56IKhID4gZ2FuaW1hdGFcIDsKK+mOjOmmliA+IGthbWFrdWJpXCA7Civnq4vpo58gPiByaXNzaG9rdVwgOwor6KGG55uuID4gc2h1dW1va3VcIDsKK+ethuinpiA+IGhpc3Nob2t1XCA7CivnsKHmvZQgPiBrYW5rZXRzdVwgOwor5Z6C5bmVID4gdGFyZW1ha3VcIDsKK+eri+mhmCA+IHJpdHN1Z2FuXCA7CivmkYLli5UgPiBzZXRzdWRvdVwgOwor57K+5a+GID4gc2VpbWl0c3VcIDsKK+evgOeptCA+IGZ1c2hpYW5hXCA7CivmjqXmlq0gPiBzZXRzdWRhblwgOwor6KGA55ufID4ga2V0c3VtZWlcIDsKK+evgOeojiA+IHNldHN1emVpXCA7Civns7jlj6MgPiBpdG9ndWNoaVwgOwor5omL6LuKID4gdGVndXJ1bWFcIDsKK+mVt+WwuyA+IG5hZ2FqaXJpXCA7Civmv4HmtYEgPiBkYWt1cnl1dVwgOwor57Sg5Lq6ID4gc2hpcm91dG9cIDsKK+a/gOa1gSA+IGdla2lyeXV1XCA7Civln7fkuosgPiBzaGl0c3VqaVwgOwor5omA6L2EID4gc2hva2F0c3VcIDsKK+aLkue1tiA+IGt5b3pldHN1XCA7CivmjpLml6UgPiBoYWluaWNoaVwgOwor57O75YiXID4ga2VpcmV0c3VcIDsKK+eGseOAhSA+IGF0c3VhdHN1XCA7CivoobDmu4UgPiBzdWltZXRzdVwgOwor5o6h5o6YID4gc2Fpa3V0c3VcIDsKK+WfkuWGhSA+IHJhY2hpbmFpXCA7CivlnKjml6UgPiB6YWluaWNoaVwgOwor5ryB6ImyID4gZ3lvc2hva3VcIDsKK+aLmeethiA+IHNlcHBpdHN1XCA7CivntJTkuIAgPiBqdW4nJ2l0c3VcIDsKK+aQrOWFpSA+IGhhbicnbnl1dVwgOwor6Zai5Y+WID4gc2VraXRvcmlcIDsKK+aQvuS5syA+IHNha3VueXV1XCA7Civom67pqqggPiBiYW5rb3RzdVwgOwor5ryr562GID4gbWFucGl0c3VcIDsKK+evgOeUqCA+IHNldHN1eW91XCA7CivmipznvqQgPiBiYXRzdWd1blwgOwor5omA6KqsID4gc2hvc2V0c3VcIDsKK+WbveafhCA+IGt1bmlnYXJhXCA7CivmurbooYAgPiB5b3VrZXRzdVwgOwor6ZaR5Y20ID4ga2Fua3lha3VcIDsKK+aJi+iiiyA+IHRlYnVrdXJvXCA7CivplqPlg5ogPiBrYWt1cnlvdVwgOwor5omL6KGTID4gc2h1anV0c3VcIDsKK+e3qeOAhSA+IHl1cnV5dXJ1XCA7CivnsaTlvJUgPiBrdWppYmlraVwgOwor57Ch5pytID4ga2Fuc2F0c3VcIDsKK+idtuidtiA+IGNob3VjaG91XCA7CivnrYvogokgPiBraW4nJ25pa3VcIDsKK+eqk+mamyA+IG1hZG9naXdhXCA7CivplpPlhasgPiBrYW5wYWNoaVwgOwor5rib6aOfID4gZ2Vuc2hva3VcIDsKK+esueiInyA+IHNhc2FidW5lXCA7CivmjqXlsrggPiBzZXRzdWdhblwgOwor5oiv6KiAID4gdGF3YWdvdG9cIDsKK+eyvuWKmyA+IHNlaXJ5b2t1XCA7CivooYDmtrIgPiBrZXRzdWVraVwgOwor56m66aKoID4ga2FyYWthemVcIDsKK+igj+eOiSA+IGthbml0YW1hXCA7CivooYDmtpkgPiBrZXRzdXJ1aVwgOwor5r2w5ruFID4ga2FpbWV0c3VcIDsKK+aIuOiiiyA+IHRvYnVrdXJvXCA7Civmjqjlr58gPiBzdWlzYXRzdVwgOwor5o6l5a6iID4gc2Vra3lha3VcIDsKK+WXheimmiA+IGt5dXVrYWt1XCA7Civmipjnr4AgPiBvcmlmdXNoaVwgOwor5r2k5ruRID4ganVua2F0c3VcIDsKK+mWk+S8kCA+IGthbmJhdHN1XCA7CivpjozotrMgPiBrYW1hYXNoaVwgOwor5r2u5rWBID4gY2hvdXJ5dXVcIDsKK+Wbm+aciCA+IHNoaWdhdHN1XCA7CivplbfliIAgPiBuYWdpbmF0YVwgOwor5Ziy56yRID4gY2hvdXNob3VcIDsKK+eqrui/vSA+IGt5dXV0c3VpXCA7Civnqq7ov6sgPiBreXV1aGFrdVwgOwor5oim6KGTID4gc2VuanV0c3VcIDsKK+aPoeWKmyA+IGFrdXJ5b2t1XCA7CivopIfli50gPiBmdWt1c2hvdVwgOwor6J+5546JID4ga2FuaXRhbWFcIDsKK+a9ruaxkCA+IGNob3VzZWtpXCA7CivnsKHmipwgPiBrYW5iYXRzdVwgOwor5r2u5rC0ID4gc2hpb21penVcIDsKK+evgOa4myA+IHNldHN1Z2VuXCA7CivpjZvpiYQgPiB0YW50ZXRzdVwgOwor6ZqG44CFID4gcnl1dXJ5dXVcIDsKK+maheOAhSA+IHN1bWl6dW1pXCA7Civmj5rlipsgPiB5b3VyeW9rdVwgOwor56u56JauID4gdGFrZXlhYnVcIDsKK+aJjeiJsiA+IHNhaXNob2t1XCA7Civom43pm6ogPiBrZWlzZXRzdVwgOwor56uL6KuWID4gcml0c3Vyb25cIDsKK+exs+WdqiA+IGJlaXRzdWJvXCA7CivnrYbnrrEgPiBmdWRlYmFrb1wgOwor5ris6YePID4gc29rdXJ5b3VcIDsKK+etieetiSA+IG5hZG9uYWRvXCA7Civnq4voqIAgPiByaXRzdWdlblwgOwor57Kb5YWaID4gc2h1a3V0b3VcIDsKK+ijuOWHuiA+IHJhc2h1dHN1XCA7CivpjYvph5wgPiBuYWJla2FtYVwgOwor6KGd5pKDID4gc2hvdWdla2lcIDsKK+a8gueZvSA+IGh5b3VoYWt1XCA7Civmt7fpm5EgPiBrb256YXRzdVwgOwor6ZW35LmFID4gY2hvdWt5dXVcIDsKK+WbnuaKmCA+IGthaXNldHN1XCA7CivlnLDlooMgPiBkaml6YWthaVwgOwor5oy/5oqcID4gc291YmF0c3VcIDsKK+idpuiFsCA+IGViaWdvc2hpXCA7CivooaPmiYsgPiBrb3JvbW9kZVwgOwor6KG35b+DID4gY2h1dXNoaW5cIDsKK+ibuOi2syA+IHRha29hc2hpXCA7CivntprjgIUgPiB6b2t1em9rdVwgOwor5rex6ZW3ID4gc2hpbmNob3VcIDsKK+WVhumHjyA+IHNob3VyeW91XCA7CivmjJ/mkoMgPiBreW91Z2VraVwgOwor5o6l5ZCIID4gc2V0c3Vnb3VcIDsKK+ijj+WPoyA+IHVyYWd1Y2hpXCA7CivompXpo58gPiBzYW5zaG9rdVwgOwor5oqR55WZID4geW9rdXJ5dXVcIDsKK+mMrOmJhCA+IHJlbnRldHN1XCA7Civmva7mmYIgPiBzaGlvZG9raVwgOwor5r+D5a+GID4gbm91bWl0c3VcIDsKK+ihqOW+tCA+IGh5b3VjaG91XCA7CivooajlvbAgPiBoeW91c2hvdVwgOwor5Zu95a2mID4ga29rdWdha3VcIDsKK+a8oOa8oCA+IGJha3ViYWt1XCA7CivmjqjlipsgPiBzdWlyeW9rdVwgOwor5o+J5LqLID4gbW9tZWdvdG9cIDsKK+ertue/lCA+IGt5b3VzaG91XCA7CivpvLvpq60gPiBoYW5haGlnZVwgOwor56uL6JG1ID4gdGFjaGlhb2lcIDsKK+eyieS5syA+IGZ1bicnbnl1dVwgOwor6KGd5b+DID4gc2hvdXNoaW5cIDsKK+m8u+mrmCA+IGhhbmF0YWthXCA7CivlloDooYAgPiBrYWtrZXRzdVwgOwor5omN562GID4gc2FpaGl0c3VcIDsKK+aKleeJqSA+IG5hZ2Vtb25vXCA7CivlnLDljbUgPiBqaXRhbWFnb1wgOwor57Gz5YCJID4ga29tZWd1cmFcIDsKK+iiluWeoyA+IHNvZGVnYWtpXCA7Civmt7HphZIgPiBmdWthemFrZVwgOwor5Zyw5YqbID4gY2hpcnlva3VcIDsKK+epuuixhiA+IHNvcmFtYW1lXCA7CivmjK/luYUgPiBzaGlucHVrdVwgOwor6by76aKoID4gaGFuYWthemVcIDsKK+aOkuWIlyA+IGhhaXJldHN1XCA7CivnsbPku48gPiBiZWlmdXRzdVwgOwor5o2V5aSxID4gaG9zaGl0c3VcIDsKK+erque4niA+IHRhdGVqaW1hXCA7CivmioTniakgPiBzaG91bW9ub1wgOwor56u557ChID4gY2hpa3VrYW5cIDsKK+a8gua8giA+IGh5b3VoeW91XCA7CivmirnmrrogPiBtYXNzYXRzdVwgOwor6KOP5LuYID4gdXJhZHp1a2VcIDsKK+WUkOmLpCA+IGthcmFzdWtpXCA7CivmhrboqqwgPiBva3VzZXRzdVwgOwor5Zyn5Ye6ID4gYXNzaHV0c3VcIDsKK+eri+iEmiA+IHJpa2t5YWt1XCA7Civnq7nnroYgPiB0YWtlYmVyYVwgOwor5Zu95Zu9ID4ga3VuaWd1bmlcIDsKK+ewkuWlqiA+IHNhbmRhdHN1XCA7CivlnYfkuIAgPiBraW4nJ2l0c3VcIDsKK+a8j+azhCA+IHJvdXNldHN1XCA7CivpvLvpnakgPiBoYW5hZ2F3YVwgOwor56m66KqsID4ga3V1c2V0c3VcIDsKK+Wcp+WFpSA+IGF0c3VueXV1XCA7CivmjJnlvI8gPiBreW9zaGlraVwgOwor5r+r5YWlID4gcmFuJydueXV1XCA7Civpi7zpiYQgPiBrb3V0ZXRzdVwgOwor56m66KiAID4gc29yYWdvdG9cIDsKK+WUkOmHkSA+IGthcmFrYW5lXCA7CivomY7prJogPiB0b3JhaGlnZVwgOwor5rq255m6ID4geW91aGF0c3VcIDsKK+a7tOa7tCA+IHRla2l0ZWtpXCA7CivmvILmtYEgPiBoeW91cnl1dVwgOwor6JmO6autID4gdG9yYWhpZ2VcIDsKK+mPkeefoiA+IGthYnVyYXlhXCA7CivmvILms4ogPiBoeW91aGFrdVwgOwor6Jma6aO+ID4ga3lvc2hva3VcIDsKK+aLmeaWhyA+IHNldHN1YnVuXCA7Civnro/mm7IgPiBzb3VreW9rdVwgOwor6J6i54GrID4gaG90YXJ1YmlcIDsKK+mRkeacrSA+IGthbnNhdHN1XCA7CivmiY3nlaUgPiBzYWlyeWFrdVwgOwor6YqA6bygID4gZ2luJyduZXp1XCA7Civmv6vkvJAgPiByYW5iYXRzdVwgOwor5ou+5b6XID4gc2h1dXRva3VcIDsKK+WbveWOnyA+IGt1bmliYXJhXCA7Civom57onZMgPiBuYW1la3VqaVwgOwor5o6M5LitID4gc2hvdWNodXVcIDsKK+emv+m3uSA+IGhhZ2V0YWthXCA7CivnqbronYkgPiB1dHN1c2VtaVwgOwor56+J5bqtID4gY2hpa3V0ZWlcIDsKK+evpOWtpiA+IHRva3VnYWt1XCA7Civono3nhrEgPiB5dXVuZXRzdVwgOwor6buZ6buZID4gbW9rdW1va3VcIDsKK+mNi+iTiyA+IG5hYmVidXRhXCA7CivmiJDnq4sgPiBzZWlyaXRzdVwgOwor562G5rSXID4gZnVkZWFyYWlcIDsKK+WbsOWNtCA+IGtvbmt5YWt1XCA7Civmh7jntbYgPiBrZW56ZXRzdVwgOwor6buS6bu0ID4ga3Vyb2thYmlcIDsKK+a1t+mjnyA+IGthaXNob2t1XCA7Civpu5Lpu5IgPiBrdXJvZ3Vyb1wgOwor5oWO6YeNID4gc2hpbmNob3VcIDsKK+m7kum6piA+IGt1cm9tdWdpXCA7CivmiJDnqIsgPiBuYXJ1aG9kb1wgOwor5Zu95YWDID4ga3VuaW1vdG9cIDsKK+aJjeeJqSA+IHNhaWJ1dHN1XCA7Civpu5Lpt7ogPiBrdXJvc2FnaVwgOwor6Ymk6by7ID4ga2FnaWJhbmFcIDsKK+a3t+ihgCA+IGtvbmtldHN1XCA7CivnrrHluq0gPiBoYWtvbml3YVwgOwor5ouZ5oKqID4gc2V0c3Vha3VcIDsKK+a2iOmVtyA+IHNob3VjaG91XCA7CivntLDjgIUgPiBob3NvYm9zb1wgOwor6buS6bSoID4ga3Vyb2dhbW9cIDsKK+aLoeW8tSA+IGtha3VjaG91XCA7CivpioDpq6ogPiBnaW5wYXRzdVwgOwor6JuG6JmrID4gdWppbXVzaGlcIDsKK+idleeUmiA+IHNob2t1amluXCA7CivompXosYYgPiBzb3JhbWFtZVwgOwor6KCN5bqnID4gc2Fzb3JpemFcIDsKK+iiluS4iCA+IHNvZGV0YWtlXCA7CivmiKbnlaUgPiBzZW5yeWFrdVwgOwor5Zue5YuFID4ga2FpY2hva3VcIDsKK+WbveS6uiA+IGt1bmliaXRvXCA7Civmub/nlrkgPiBzaGlzc2hpblwgOwor5Zix5pybID4gc2hva3Vib3VcIDsKK+a1nOmiqCA+IGhhbWFrYXplXCA7Civnq6rnkLQgPiB0YXRlZ290b1wgOwor5riL6Iy2ID4gc2hpYnVjaGFcIDsKK+ihjOWVhiA+IGd5b3VzaG91XCA7Civnqq7nrZYgPiBreXV1c2FrdVwgOwor6Jqw6JySID4gZ2VqaWdlamlcIDsKK+aKl+aXpSA+IGtvdW5pY2hpXCA7CivmuIvoibIgPiBzaGlidWlyb1wgOwor5rS76a2aID4ga2F0c3VneW9cIDsKK+evieWgpCA+IGNoaWt1dGVpXCA7CivnqbrogLMgPiBzb3JhbWltaVwgOwor6Yqt6YeRID4gemVuaWthbmVcIDsKK+aLneWvnyA+IGhhaXNhdHN1XCA7Civmib/mnI0gPiBzaG91ZnVrdVwgOwor5oiq54S2ID4gc2V0c3V6ZW5cIDsKK+m+jeiInyA+IHJ5dXVzaHV1XCA7Civmt7foibIgPiBrb25zaG9rdVwgOwor5rqi5rWBID4gaXRzdXJ5dXVcIDsKK+a7nuaXpSA+IHRhaW5pY2hpXCA7CivmipXmioAgPiBuYWdld2F6YVwgOwor5oib54S2ID4ga2F0c3V6ZW5cIDsKK+aIkeeJqSA+IHdhZ2Ftb25vXCA7CivpvLvoqLEgPiBoYW5hbW90b1wgOwor56eS6YedID4gYnlvdXNoaW5cIDsKK+aMr+S9nCA+IHNoaW5zYWt1XCA7Civmup3ms6UgPiBkb2J1ZG9yb1wgOwor6YqR6YmEID4gc2VudGV0c3VcIDsKK+emhOmrmCA+IHJva3VkYWthXCA7Civmup3msLQgPiBkb2J1bWl6dVwgOwor5oaC6ImyID4geXV1c2hva3VcIDsKK+epuuexpCA+IGthcmFrdWppXCA7CivpiYTpqqggPiB0ZWtrb3RzdVwgOwor5rmv54WZID4geXVrZW11cmlcIDsKK+a0l+mrqiA+IHNlbnBhdHN1XCA7Civmt6HoibIgPiB0YW5zaG9rdVwgOwor56eB6YmEID4gc2hpdGV0c3VcIDsKK+enkumAnyA+IGJ5b3Vzb2t1XCA7Civnr6Tkv6EgPiB0b2t1c2hpblwgOwor56m6566xID4ga2FyYWJha29cIDsKK+eqgeeriyA+IHRvdHRhdHN1XCA7CivllJDojYkgPiBrYXJha3VzYVwgOwor6J+75aGaID4gYXJpZHp1a2FcIDsKK+a9ruWFiCA+IHNoaW9zYWtpXCA7CivomZroqqwgPiBreW9zZXRzdVwgOwor6KGA5L6/ID4ga2V0c3ViZW5cIDsKK+ihjOS4rSA+IGd5b3VjaHV1XCA7CivmtIvpq6ogPiB5b3VoYXRzdVwgOwor5oim5rKhID4gc2VuYm90c3VcIDsKK+aMh+WFiCA+IHl1YmlzYWtpXCA7CivpjKbntbUgPiBuaXNoaWtpZVwgOwor5ZWG562WID4gc2hvdXNha3VcIDsKK+aJi+aelSA+IHRlbWFrdXJhXCA7Civnp4DpgLggPiBzaHV1aXRzdVwgOwor56+A5YiGID4gc2V0c3VidW5cIDsKK+aIpuatvyA+IHNlbmJvdHN1XCA7Civnq7nmp40gPiB0YWtleWFyaVwgOwor6J6N5o6lID4geXV1c2V0c3VcIDsKK+m7kumJhCA+IGt1cm9nYW5lXCA7CivmvZzlhaUgPiBzZW4nJ255dXVcIDsKK+m7kumHkSA+IGt1cm9nYW5lXCA7CivmtIvpo58gPiB5b3VzaG9rdVwgOwor562J5byPID4gdG91c2hpa2lcIDsKK+iXqemWpSA+IGhhbmJhdHN1XCA7CivmtYHph48gPiByeXV1cnlvdVwgOwor5oSf6KemID4ga2Fuc2hva3VcIDsKK+mNvOeBuCA+IHNoaW5reXV1XCA7CivnqoHnmbogPiB0b3BwYXRzdVwgOwor6Ymk6YedID4ga2FnaWJhcmlcIDsKK+aKleWuvyA+IHRvdXNodWt1XCA7Civnq7nmnpcgPiBjaGlrdXJpblwgOwor5rq25o6lID4geW91c2V0c3VcIDsKK+WVk+eZuiA+IGtlaWhhdHN1XCA7Civnq7nmnZAgPiBjaGlrdXphaVwgOwor56m655m6ID4ga3V1aGF0c3VcIDsKK+aJleaLrSA+IGZ1c3Nob2t1XCA7CivnpZ7poqggPiBrYW1pa2F6ZVwgOwor56qD55SoID4gc2V0c3V5b3VcIDsKK+a1gemAnyA+IHJ5dXVzb2t1XCA7CivmtYHpgJogPiByeXV1dHN1dVwgOwor5rud5bedID4gdGFraWdhd2FcIDsKK+epgOeykiA+IGtva3VyeXV1XCA7CivnrZHlrZAgPiBrb2tpcmlrb1wgOwor56uv5pyrID4gdGFubWF0c3VcIDsKK+WUkOe0mSA+IGthcmFrYW1pXCA7CivolqbpqqggPiBzZW5rb3RzdVwgOwor6ZW344CFID4gbmFnYW5hZ2FcIDsKK+ibuOeEvCA+IHRha295YWtpXCA7CivnpZ3pm7sgPiBzaHVrdWRlblwgOwor5oGQ6b6NID4ga3lvdXJ5dXVcIDsKK+engeiqrCA+IHNoaXNldHN1XCA7Civlk4HoloQgPiBzaGluYXVzdVwgOwor5oud5YCfID4gaGFpc2hha3VcIDsKK+aIquaWrSA+IHNldHN1ZGFuXCA7CivmtbfonZUgPiBrYWlzaG9rdVwgOwor566X5YWlID4gc2FuJydueXV1XCA7CivnqK7ntJkgPiB0YW5lZ2FtaVwgOwor5rip54axID4gb24nJ25ldHN1XCA7CivpiYTpiaIgPiB0ZXBwYWNoaVwgOwor56eB6KitID4gc2hpc2V0c3VcIDsKK+a6gOaciCA+IG1hbmdldHN1XCA7CivpjYvniakgPiBuYWJlbW9ub1wgOwor5rm+5puyID4gd2Fua3lva3VcIDsKK+azoumiqCA+IG5hbWlrYXplXCA7CivpkZHliKUgPiBrYW5iZXRzdVwgOwor6buS6LG5ID4ga3Vyb2h5b3VcIDsKK+aIv+aIvyA+IGZ1c2FmdXNhXCA7Civpu5LosYYgPiBrdXJvbWFtZVwgOwor5ZSQ56qBID4gdG91dG90c3VcIDsKK+m7meirviA+IG1va3VkYWt1XCA7Civph47pvKAgPiBub25lenVtaVwgOwor5Zas5pyoID4ga3lvdWJva3VcIDsKK+m7meiqrSA+IG1va3Vkb2t1XCA7CivmgaXpqqggPiBjaGlrb3RzdVwgOwor5omL5b+DID4gdGVnb2tvcm9cIDsKK+eqgeeEtiA+IHRvdHN1emVuXCA7CivmirzliIcgPiBvc2hpa2lyaVwgOwor5oqR5ZynID4geW9rdWF0c3VcIDsKK+aFtuelnSA+IGtlaXNodWt1XCA7CivnrYblpKogPiBmdWRlYnV0b1wgOwor6YmE6YGTID4gdGV0c3Vkb3VcIDsKK+eymOOAhSA+IG5lYmFuZWJhXCA7CivnpZ7pj6EgPiBzaGlua3lvdVwgOwor5riJ54yfID4gc2hvdXJ5b3VcIDsKK+iZmuiEsSA+IGt5b2RhdHN1XCA7CivmsrPpsZIgPiBrYXdhbWFzdVwgOwor6Yqt6IuUID4gemVuaWdva2VcIDsKK+eri+acrSA+IHRhdGVmdWRhXCA7CivlmZvlgrcgPiBrYW1pa2l6dVwgOwor6YeO6bayID4gbm9iaXRha2lcIDsKK+a8lOWHuiA+IGVuc2h1dHN1XCA7CivmuKzmt7EgPiBzb2t1c2hpblwgOwor6by757SZID4gaGFuYWdhbWlcIDsKK+a4qea4qSA+IG51a3VudWt1XCA7CivpvLvns54gPiBoYW5ha3Vzb1wgOwor57KJ44CFID4ga29uYWdvbmFcIDsKK+aCqumAhiA+IGFrdWd5YWt1XCA7CivmgqrovqMgPiBha3VyYXRzdVwgOwor5oim5oWEID4gc2Vucml0c3VcIDsKK+m7kuihqCA+IGtva3VoeW91XCA7Civmtrznp4sgPiByeW91c2h1dVwgOwor6by7562LID4gaGFuYXN1amlcIDsKK+m6qeizqiA+IGZ1c2hpdHN1XCA7Civmsojpu5kgPiBjaGlubW9rdVwgOwor6JuN54GrID4gaG90YXJ1YmlcIDsKK+mHkemrqiA+IGtpbnBhdHN1XCA7CivpiYjosYYgPiBuYXRhbWFtZVwgOwor56Ov6be4ID4gaXNvc2hpZ2lcIDsKK+a6neW3nSA+IGRvYnVnYXdhXCA7CivpjpTmjqUgPiB5b3VzZXRzdVwgOwor6Y215p2fID4ga2FnaXRhYmFcIDsKK+elnumAnyA+IHNoaW5zb2t1XCA7Civpu5Lom4cgPiBrdXJvaGViaVwgOwor5rqA5oKmID4gbWFuJydldHN1XCA7CivmiJHmiJEgPiB3YXJld2FyZVwgOwor5riF5r2UID4gc2Vpa2V0c3VcIDsKK+ethuWQjSA+IGhpdHN1bWVpXCA7CivnqIvnqIsgPiBob2RvaG9kb1wgOwor6J2O5bqnID4gc2Fzb3JpemFcIDsKK+eorueVnCA+IHNodWNoaWt1XCA7CivnrYvlipsgPiBraW5yeW9rdVwgOwor6YqF6ImyID4gZG91c2hva3VcIDsKK+WPjemqqCA+IGhhbmtvdHN1XCA7CivmupblsLogPiBqdW5zaGFrdVwgOwor5Y+s6ZuGID4gc2hvdXNodXVcIDsKK+azqOmAsiA+IGNodXVzaGluXCA7CivllYbms4EgPiBzaG91a3lvdVwgOwor6Yu8546JID4ga291Z3lva3VcIDsKK+a5v+W6piA+IHNoaXRzdWRvXCA7Civon4TkvI8gPiBjaGlwcHVrdVwgOwor5rWF6JGxID4gYXNhdHN1a2lcIDsKK+aIkuW+iyA+IGthaXJpdHN1XCA7Civnq7rlraYgPiBqaWt1Z2FrdVwgOwor5ZC56LKrID4gZnVraW51a2lcIDsKK+esueWOnyA+IHNhc2FoYXJhXCA7CivnqpPmnqAgPiBtYWRvd2FrdVwgOwor5ZSQ54mpID4gdG91bW90c3VcIDsKK+WPoumbsiA+IG11cmFrdW1vXCA7Civlj6Lpm6ggPiBtdXJhc2FtZVwgOwor5rac56WeID4gdG9rdXNoaW5cIDsKK+err+WxgCA+IHRhbmt5b2t1XCA7Civmip7kuIAgPiB0YWt1aXRzdVwgOwor5oim5bGAID4gc2Vua3lva3VcIDsKK+ethuWFiCA+IGZ1ZGVzYWtpXCA7Civpiq3nrrEgPiB6ZW5pYmFrb1wgOwor6Yyo5rOKID4gYnlvdWhha3VcIDsKK+mJhOihgCA+IHRla2tldHN1XCA7Civmt7fmtbQgPiBrb24nJ3lva3VcIDsKK+a3sea3sSA+IGZ1a2FidWthXCA7Civol6rom4cgPiB5YWJ1aGViaVwgOwor56iu54mpID4gdGFuZW1vbm9cIDsKK+eorueJmyA+IHRhbmV1c2hpXCA7Civom4fmr5IgPiBoZWJpZG9rdVwgOwor5oiM5bm0ID4gaW51ZG9zaGlcIDsKK+m8u+eWviA+IGJpc2hpdHN1XCA7Civmu5HliaQgPiBrYXRzdXphaVwgOwor6buS6Ii5ID4ga3Vyb2Z1bmVcIDsKK+WVhuaomSA+IHNob3VoeW91XCA7CivpvI7nq4sgPiB0ZWlyaXRzdVwgOwor6YqA57+8ID4gZ2luJyd5b2t1XCA7Civms6XotrMgPiBkb3JvYXNoaVwgOwor6Y6M5b2iID4ga2FtYWdhdGFcIDsKK+a7heWNtCA+IG1la2t5YWt1XCA7Civph6Ppiq0gPiB0c3VyaXNlblwgOwor5ZWG5qWtID4gc2hvdWd5b3VcIDsKK+mJseiEiCA+IGtvdW15YWt1XCA7Civlj47pm4YgPiBzaHV1c2h1dVwgOwor6JqK54e7ID4ga2FpYnVzaGlcIDsKK+WQhOmAsSA+IGtha3VzaHV1XCA7CivnpZ7oqJcgPiBzaGludGFrdVwgOwor5om/5LyPID4gc2hvdWZ1a3VcIDsKK+WQg+mAhiA+IHNoYWtrdXJpXCA7Civpurnoj4wgPiBrb3VqaWtpblwgOwor6buE6ImyID4ga291c2hva3VcIDsKK+WRveiEiCA+IG1laW15YWt1XCA7Civpu5LogokgPiBrdXJvbmlrdVwgOwor6bqm6JeBID4gbXVnaXdhcmFcIDsKK+erueWeoyA+IHRha2VnYWtpXCA7CivpjZvmjqUgPiB0YW5zZXRzdVwgOwor6Yed6YeRID4gaGFyaWdhbmVcIDsKK+mKgOe4gSA+IGdpbmJ1Y2hpXCA7Civph5HpjIYgPiBrYW5hc2FiaVwgOwor56iO546HID4gemVpcml0c3VcIDsKK+eri+WxsSA+IHRhdGV5YW1hXCA7CivpuqbokpQgPiBtdWdpbWFraVwgOwor6YeR6YmEID4ga2ludGV0c3VcIDsKK+WPpOmHkSA+IGZ1cnVnYW5lXCA7Civlj6Tph4wgPiBmdXJ1c2F0b1wgOwor5ZWE5pyoID4gdGFrdWJva3VcIDsKK+WPo+mHjSA+IGt1Y2hpb21vXCA7CivmuIfmnJsgPiBrYXRzdWJvdVwgOwor5omN5YqbID4gc2Fpcnlva3VcIDsKK+WPpOmFkiA+IGZ1cnV6YWtlXCA7CivmuIXmnJ0gPiBzaGluY2hvdVwgOwor6by754aKID4gaGFuYWd1bWFcIDsKK+eskeWKhyA+IHNob3VnZWtpXCA7CivpjKvmnZYgPiBzaGFrdWpvdVwgOwor56m65pKuID4ga3V1c2F0c3VcIDsKK+m7mee0hCA+IG1va3V5YWt1XCA7CivnpL7oqqwgPiBzaGFzZXRzdVwgOwor5rWF57eRID4gc2Vucnlva3VcIDsKK+WPjumMsiA+IHNodXVyb2t1XCA7CivmiYvliIAgPiB0ZWdhdGFuYVwgOwor56mN5qW1ID4gc2Vra3lva3VcIDsKK+aJk+WCtyA+IHVjaGlraXp1XCA7CivpiYToibIgPiB0ZXRzdWlyb1wgOwor5Zu944CFID4ga3VuaWd1bmlcIDsKK+emj+iAsyA+IGZ1a3VtaW1pXCA7Civmu4XkuqEgPiBtZXRzdWJvdVwgOwor5oWE54S2ID4gcml0c3V6ZW5cIDsKK+WPo+i/sCA+IGtvdWp1dHN1XCA7CivlkIzoqqwgPiBkb3VzZXRzdVwgOwor56qS5oGvID4gY2hpc3Nva3VcIDsKK+WPs+i2syA+IG1pZ2lhc2hpXCA7Civmspbph6MgPiBva2lkenVyaVwgOwor56u55Y+iID4gdGFrYW11cmFcIDsKK+m7kuexsyA+IGt1cm9nb21lXCA7Civlj47ph48gPiBzaHV1cnlvdVwgOwor6YmE6IWVID4gdGV0c3V3YW5cIDsKK+WPm+mAhiA+IGhhbmd5YWt1XCA7Civpu57nqbQgPiB0ZW5rZXRzdVwgOwor5rC06bOlID4gbWl6dWRvcmlcIDsKK+a6gOWWqyA+IG1hbmtpdHN1XCA7CivlkYjoibIgPiB0ZWlzaG9rdVwgOwor5oiR5Zu9ID4gd2FnYWt1bmlcIDsKK+iWruibhyA+IHlhYnVoZWJpXCA7Civlj7HosqwgPiBzaGlzc2VraVwgOwor5oKq6IiMID4gYWt1emV0c3VcIDsKK+iZjueMqyA+IHRvcmFuZWtvXCA7CivmtJLohLEgPiBzaGFkYXRzdVwgOwor6bq757axID4gYXNhZHp1bmFcIDsKK+m7kOervyA+IG1vY2hpemFvXCA7CivlkKvok4QgPiBnYW5jaGlrdVwgOwor5Y+N6YCGID4gaGFuZ3lha3VcIDsKK+WPgumFjCA+IHNhbnNoYWt1XCA7CivmiKblipsgPiBzZW5yeW9rdVwgOwor5Y+O6LyvID4gc2h1dXNodXVcIDsKK+WQhOihjCA+IGtha3VneW91XCA7CivmiKbliJcgPiBzZW5yZXRzdVwgOwor6Y2L5bqVID4gbmFiZXpva29cIDsKK+aApemAsiA+IGt5dXVzaGluXCA7CivmgqrogIUgPiB3YXJ1bW9ub1wgOwor5oCl6YCfID4ga3l1dXNva3VcIDsKK+aApei/vSA+IGt5dXV0c3VpXCA7CivmgKXov6sgPiBreXV1aGFrdVwgOwor6by75rC0ID4gaGFuYW1penVcIDsKK+aCvee1tiA+IHNlaXpldHN1XCA7Civnqq7looMgPiBreXV1a3lvdVwgOwor5oK257W2ID4gbW9uemV0c3VcIDsKK+WRqOeroCA+IHNodXVzaG91XCA7Civlv6vpl4ogPiBrYWlrYXRzdVwgOwor5rC06aOfID4gc3Vpc2hva3VcIDsKK+ertuS9nCA+IGt5b3VzYWt1XCA7Civnq4vlkb0gPiByaXRzdW1laVwgOwor5Y6z6YGUID4gZ2VudGF0c3VcIDsKK+WOs+mAuSA+IGdlbnRhdHN1XCA7Civmub7lhaUgPiB3YW4nJ255dXVcIDsKK+a4qeWupCA+IG9uc2hpdHN1XCA7Civph43oqqwgPiBqdXVzZXRzdVwgOwor6Y2L5bC7ID4gbmFiZWppcmlcIDsKK+a3seaGgiA+IHNoaW4nJ3l1dVwgOwor5rC36ZyHID4gaHlvdXNoaW5cIDsKK+mJhOethiA+IHRlcHBpdHN1XCA7CivmtLvnnLwgPiBrYXRzdWdhblwgOwor5Y+j6KOPID4ga3VjaGl1cmFcIDsKK+a0nueqnyA+IGRvdWt1dHN1XCA7CivmiJHlhJggPiB3YWdhbWFtYVwgOwor5rC06ZqbID4gbWl6dWdpd2FcIDsKK+mHjeikhyA+IGNob3VmdWt1XCA7Civnp4HniakgPiBzaGlidXRzdVwgOwor5rS755m6ID4ga2FwcGF0c3VcIDsKK+m6pueoiCA+IG11Z2l3YXJhXCA7CivnqpLloZ4gPiBjaGlzc29rdVwgOwor5raI5rKIID4gc2hvdWNoaW5cIDsKK+WQjOiJsiA+IGRvdXNob2t1XCA7CivmgqrnrYYgPiBha3VoaXRzdVwgOwor56Gs6aqoID4ga291a290c3VcIDsKK+aIkeS+rSA+IHdhZ2FtYW1hXCA7CivmsqLooI8gPiBzYXdhZ2FuaVwgOwor5rKi6J+5ID4gc2F3YWdhbmlcIDsKK+aGq+WvnyA+IGJpbnNhdHN1XCA7CivpupfnrYYgPiByZWloaXRzdVwgOwor6JeB57SZID4gd2FyYWdhbWlcIDsKK+eri+WDjyA+IHJpdHN1em91XCA7CivmtLvnlKggPiBrYXRzdXlvdVwgOwor5raI5q+SID4gc2hvdWRva3VcIDsKK+WVhuWtpiA+IHNob3VnYWt1XCA7CivmiJHkurogPiB3YXJlaGl0b1wgOwor6Y2L5aKoID4gbmFiZXp1bWlcIDsKK+aIkOS7jyA+IGpvdWJ1dHN1XCA7Civpu5LnjKsgPiBrdXJvbmVrb1wgOwor5oiR5LqLID4gd2FnYWtvdG9cIDsKK+WQjOiDniA+IGhhcmFrYXJhXCA7CivpibHniakgPiBrb3VidXRzdVwgOwor5oCl6KWyID4ga3l1dXNodXVcIDsKK+WQjOiBtyA+IGRvdXNob2t1XCA7CivnqbrlpKIgPiBzb3JheXVtZVwgOwor5rOl57iEID4gZG9yb25hd2FcIDsKK+W+tOmbhiA+IGNob3VzaHV1XCA7CivphYvplbcgPiBzaHV1Y2hvdVwgOwor5Y2K6Z20ID4gaGFuZ3V0c3VcIDsKK+aCtuedgCA+IG1vbmNoYWt1XCA7Civpu4TnjokgPiBrb3VneW9rdVwgOwor6buS54aKID4ga3Vyb2d1bWFcIDsKK+iSsumtmiA+IGthbWF0b3RvXCA7Civmg6jng4ggPiBzYW5yZXRzdVwgOwor5ZaJ5YWDID4gbm9kb21vdG9cIDsKK+epuuWggCA+IGthcmFib3JpXCA7CivoloTohpwgPiBoYWt1bWFrdVwgOwor56qv5YWDID4ga2FtYW1vdG9cIDsKK+a4m+WcpyA+IGdlbicnYXRzdVwgOwor56eB5reRID4gc2hpc2h1a3VcIDsKK+eomuaLmSA+IGNoaXNldHN1XCA7CivnpZDnrYYgPiB5dXVoaXRzdVwgOwor5Y+k6I2JID4gZnVydWt1c2FcIDsKK+WPo+iNkiA+IGt1Y2hpYXJhXCA7CivnpZ7npZ4gPiBrYW1pZ2FtaVwgOwor56Wd56W3ID4gc2h1a3V0b3VcIDsKK+elnuelkCA+IHNoaW4nJ3l1dVwgOwor56Wd56WtID4gc2h1a3VzYWlcIDsKK+WRiueZvSA+IGtva3VoYWt1XCA7Civpu4TnhrEgPiBrb3VuZXRzdVwgOwor5Y2K6ZW3ID4gaGFuJyduYWdhXCA7CivpiYTnk7YgPiB0ZXRzdWJpblwgOwor5rC06YOoID4gbWl6dW5vYnVcIDsKK+aCqueZliA+IHdhcnVndXNlXCA7Civpu5Lmva4gPiBrdXJvc2hpb1wgOwor6JOE6Zu7ID4gY2hpa3VkZW5cIDsKK+avjemzpSA+IGhhaGFkb3JpXCA7Civlj6PoiIwgPiBrb3V6ZXRzdVwgOwor56Wd56CyID4gc2h1a3Vob3VcIDsKK+avm+mrqiA+IG1vdWhhdHN1XCA7CivnpLznr4AgPiByZWlzZXRzdVwgOwor5Y+K6JC9ID4ga3l1dXJha3VcIDsKK+mKg+auuiA+IGp1dXNhdHN1XCA7CivmuIXlm70gPiBzaGlua29rdVwgOwor5oOF54axID4gam91bmV0c3VcIDsKK+epuuWSsyA+IGthcmF6ZWtpXCA7Civom67lipsgPiBiYW5yeW9rdVwgOwor5oWL5oWLID4gd2F6YXdhemFcIDsKK+mHkeiEiCA+IGtpbm15YWt1XCA7Civlj6rogIUgPiB0YWRhbW9ub1wgOwor5oeH5YiHID4ga29uc2V0c3VcIDsKK+emgeeJqSA+IGtpbm1vdHN1XCA7CivomZDmlL8gPiBneWFrdXNlaVwgOwor5ZCN562GID4gbWVpaGl0c3VcIDsKK+eiuuiovCA+IGtha3VzaG91XCA7CivnpL7nqLcgPiBzaGFzaG9rdVwgOwor5ZCM562GID4gZG91aGl0c3VcIDsKK+aApeiQvSA+IGt5dXVyYWt1XCA7CivmtLvmuowgPiBrYXBwYXRzdVwgOwor6YWN6YGUID4gaGFpdGF0c3VcIDsKK+mLuOWxkSA+IG5va29rdXp1XCA7Civph43ogbcgPiBqdXVzaG9rdVwgOwor5rWB5rWBID4gcnl1dXJ5dXVcIDsKK+a3gOW3nSA+IHlvZG9nYXdhXCA7Civmg5HmurogPiB3YWt1ZGVraVwgOwor5rWF5rKTID4gYXNhZ3V0c3VcIDsKK+WQjOeptCA+IGRvdWtldHN1XCA7Civmg6jmrrogPiB6YW5zYXRzdVwgOwor6YW36KmVID4ga29rdWh5b3VcIDsKK+mHo+ezuCA+IHRzdXJpaXRvXCA7CivmtJfnhoogPiBhcmFpZ3VtYVwgOwor5b+D6LqrID4gc2hpbnNoaW5cIDsKK+mHjee9sCA+IGp1dWJhdHN1XCA7CivmtYHmsLcgPiByeXV1aHlvdVwgOwor5rOo55uuID4gY2h1dW1va3VcIDsKK+WPjOiEmiA+IHNvdWt5YWt1XCA7CivmsZfooYAgPiBrYW5rZXRzdVwgOwor5rWq5puyID4gcm91a3lva3VcIDsKK+mHkee4gSA+IGtpbmJ1Y2hpXCA7CivljYrpgZMgPiBoYW5taWNoaVwgOwor5YyX6Zm4ID4gaG9rdXJpa3VcIDsKK+WOn+iWrCA+IGdlbicneWFrdVwgOwor5Y2z6Ku+ID4gc29rdWRha3VcIDsKK+a0u+auuiA+IGthc3NhdHN1XCA7CivllK/llK8gPiB0YWRhdGFkYVwgOwor5ZGo5rWBID4gc2h1dXJ5dXVcIDsKK+eosuWmuyA+IGluYWR6dW1hXCA7Civlj7PnrYYgPiB5dXVoaXRzdVwgOwor5ZSQ5aKoID4ga2FyYXN1bWlcIDsKK+WPsuethiA+IHNoaWhpdHN1XCA7Civph6Pnq78gPiB0c3VyaXphb1wgOwor6Yed566xID4gaGFyaWJha29cIDsKK+engeabsiA+IHNoaWt5b2t1XCA7Civlv4PosaEgPiBzaGluc2hvdVwgOwor5ZSx5ZCNID4gc2hvdW15b3VcIDsKK+WPqueuoSA+IGhpdGFzdXJhXCA7CivlkIznnYAgPiBkb3VjaGFrdVwgOwor5rSl5rSlID4gc2hpbnNoaW5cIDsKK+WNk+i2iiA+IHRha3VldHN1XCA7CivmgZDnq5wgPiBreW91cnl1dVwgOwor6by75bGOID4gaGFuYWt1c29cIDsKK+a4heWGvSA+IHNlaXJldHN1XCA7CivokpDpm4YgPiBzaHV1c2h1dVwgOwor5Y+W57WEID4gdG9yaWt1bWlcIDsKK+iSsumJviA+IGthbWFib2tvXCA7CivmtbfmipwgPiBrYWliYXRzdVwgOwor6YeR566xID4ga2FuZWJha29cIDsKK+iZmuW8jyA+IGt5b3NoaWtpXCA7Civmtojmga8gPiBzaG91c29rdVwgOwor5rCX6LOqID4ga2lzaGl0c3VcIDsKK+auu+mggiA+IGtha3VjaG91XCA7Civlj6PnrJsgPiBrdWNoaWJ1ZVwgOwor5ZCE55yBID4ga2FrdXNob3VcIDsKK+WOn+iMuCA+IGhhcmF0YWtlXCA7CivptJvptKYgPiBvc2hpZG9yaVwgOwor6Jas546JID4ga3VzdWRhbWFcIDsKK+iZkOW+hSA+IGd5YWt1dGFpXCA7Civpu5LmnqAgPiBrdXJvd2FrdVwgOwor6YW36JaEID4ga29rdWhha3VcIDsKK+W/g+iovCA+IHNoaW5zaG91XCA7Civph5HnqbQgPiBraW5rZXRzdVwgOwor5Y6f6ImyID4gZ2Vuc2hva3VcIDsKK+m7kuacjSA+IGt1cm9mdWt1XCA7Civli53ppqwgPiBrYWNoaXVtYVwgOwor5rex5Yi7ID4gc2hpbmtva3VcIDsKK+egtOmQmCA+IHdhcmVnYW5lXCA7Civlv4XopoEgPiBoaXRzdXlvdVwgOwor5re35YWlID4ga29uJydueXV1XCA7Civlv43ooZMgPiBuaW5qdXRzdVwgOwor5Y6z572wID4gZ2VuYmF0c3VcIDsKK+a1geacqCA+IHJ5dXVib2t1XCA7CivpiI3niakgPiBkb25idXRzdVwgOwor5Y+455u0ID4gc2hpY2hva3VcIDsKK+WNlOiqvyA+IGt5b3VjaG91XCA7Civlvozov7AgPiBrb3VqdXRzdVwgOwor56aB5qyyID4ga2luJyd5b2t1XCA7CivmuIfku7AgPiBrYXRzdWdvdVwgOwor56ep5bqPID4gY2hpdHN1am9cIDsKK+WNkuirliA+IHNvdHN1cm9uXCA7CivmsLTonZUgPiBzdWlzaG9rdVwgOwor5rWB5pqiID4gcnl1dWNob3VcIDsKK+awtOicnCA+IHN1aW1pdHN1XCA7Civnn7Ppq5ggPiBrb2t1ZGFrYVwgOwor5ryC44CFID4gaHlvdWh5b3VcIDsKK+W+tOiovCA+IGNob3VzaG91XCA7Civlkb3ml6UgPiBtZWluaWNoaVwgOwor5b6p6K6QID4gZnVrdXNodXVcIDsKK+W+qeiujiA+IGZ1a3VzaHV1XCA7CivlkIznjocgPiBkb3VyaXRzdVwgOwor5oOc5pilID4gc2VraXNodW5cIDsKK+ekvOeJqSA+IHJlaW1vdHN1XCA7Civnn63pq6ogPiB0YW5wYXRzdVwgOwor6Jma5a6fID4ga3lvaml0c3VcIDsKK+ayluepjSA+IGNodXVzZWtpXCA7Civok4TosqEgPiBjaGlrdXphaVwgOwor5Y+O56mrID4gc2h1dWtha3VcIDsKK+aBi+edgCA+IHJlbmNoYWt1XCA7Civlvqnoqr8gPiBmdWt1Y2hvdVwgOwor5oKp5q66ID4gbm91c2F0c3VcIDsKK+W+qeiqpiA+IGZ1a3VzaG91XCA7CivmsrvnlaUgPiBjaGlyeWFrdVwgOwor5ZCN54mpID4gbWVpYnV0c3VcIDsKK+WMl+mAsiA+IGhva3VzaGluXCA7Civpu4TmmI8gPiB0YXNvZ2FyZVwgOwor5Y+y55WlID4gc2hpcnlha3VcIDsKK+azpea/mCA+IG51a2FydW1pXCA7Civol6Tmo5ogPiBmdWppZGFuYVwgOwor5YyX6L6wID4gaG9rdXNoaW5cIDsKK+WOs+eymyA+IGdlbnNodWt1XCA7CivpiYTmo5IgPiB0ZXRzdWJvdVwgOwor6byT5a6kID4ga29zaGl0c3VcIDsKK+mzqem6piA+IGhhdG9tdWdpXCA7CivmsojnqY0gPiBjaGluc2VraVwgOwor6YmE5qKDID4ga2FuYXRla29cIDsKK+W8t+mchyA+IGt5b3VzaGluXCA7CivokL3prYQgPiByYWt1aGFrdVwgOwor6YeP55qEID4gcnlvdXRla2lcIDsKK+W/oOiJryA+IGNodXVyeW91XCA7Civol6nmnK0gPiBoYW5zYXRzdVwgOwor5Y+k55a1ID4gZnVydWtpenVcIDsKK+WLhemhmCA+IGNob2t1Z2FuXCA7CivphZLolLUgPiBzYWthZ3VyYVwgOwor5YuF6aGMID4gY2hva3VkYWlcIDsKK+W/oOiHoyA+IGNodXVzaGluXCA7CivlvLHpnIcgPiBqYWt1c2hpblwgOwor562J44CFID4gbmFkb25hZG9cIDsKK+emgeacrSA+IGtpbnNhdHN1XCA7CivnqK7liKUgPiBzaHViZXRzdVwgOwor6buS5oi/ID4ga3Vyb2J1c2FcIDsKK+aCpualvSA+IGV0c3VyYWt1XCA7CivmsLTojYkgPiBtaXp1a3VzYVwgOwor5oSb5a2QID4gaXRvc2hpZ29cIDsKK+mJhOadkCA+IHRldHN1emFpXCA7CivlvKbpn7MgPiB0c3VydW90b1wgOwor5ZSQ5YKYID4ga2FyYWthc2FcIDsKK+m6puadnyA+IG11Z2l0YWJhXCA7CivmsLTojI4gPiBtaXp1Z3VraVwgOwor5oaC5LqLID4gdXJlaWdvdG9cIDsKK+efremdtCA+IHRhbmd1dHN1XCA7CivmsLToi5QgPiBtaXp1Z29rZVwgOwor5rSL5qKoID4geW91bmFzaGlcIDsKK+aui+mbqiA+IHphbnNldHN1XCA7CivljprntJkgPiBhdHN1Z2FtaVwgOwor5rW05a6iID4geW9ra3lha3VcIDsKK+elnuapiyA+IHNoaW5reW91XCA7CivmsLToiLkgPiBtaXp1YnVuZVwgOwor5rOl5rK8ID4gZG9yb251bWFcIDsKK+WPjeeZuiA+IGhhbnBhdHN1XCA7CivnpZ7mp5ggPiBrYW1pc2FtYVwgOwor5Y+M55m6ID4gc291aGF0c3VcIDsKK+ejqOefsyA+IHRvZ2lpc2hpXCA7CivlvIHpq6ogPiBiZW5wYXRzdVwgOwor5rOl5rC0ID4gZG9yb21penVcIDsKK+azoeayqyA+IGhvdW1hdHN1XCA7CivnpZ7mpa0gPiBrYW1pd2F6YVwgOwor5rC06IW5ID4gbWl6dWJhcmFcIDsKK+WPguedgCA+IHNhbmNoYWt1XCA7Civolqzmr5IgPiB5YWt1ZG9rdVwgOwor56K657SEID4ga2FrdXlha3VcIDsKK+mFkuiJsiA+IHNodXNob2t1XCA7CivmsLTohIggPiBzdWlteWFrdVwgOwor56We5qOaID4ga2FtaWRhbmFcIDsKK+WPpOeJqSA+IGZ1cnVtb25vXCA7Civlv6vntbYgPiBrYWl6ZXRzdVwgOwor6YWN6ImyID4gaGFpc2hva3VcIDsKK+mHkeeJqSA+IGthbmFtb25vXCA7CivnpZ7moLwgPiBzaGlua2FrdVwgOwor56a/5bGxID4gaGFnZXlhbWFcIDsKK+WNgeiWrCA+IGRva3VkYW1pXCA7Civmsojnl5sgPiBjaGludHN1dVwgOwor5oCl55eFID4ga3l1dWJ5b3VcIDsKK+mHneeBuCA+IHNoaW5reXV1XCA7Civnn7Ppj4MgPiBzZWtpem9rdVwgOwor56Wt5pelID4gc2Fpaml0c3VcIDsKK+WNmOiJsiA+IHRhbnNob2t1XCA7Civlv4PohbkgPiBzaGlucHVrdVwgOwor5rG6552AID4ga2V0Y2hha3VcIDsKK+eojuWIpSA+IHplaWJldHN1XCA7Civpu5LluZUgPiBrdXJvbWFrdVwgOwor56Wd5p2vID4gc2h1a3VoYWlcIDsKK+elnuacqCA+IHNoaW5ib2t1XCA7Civmgqrmk6YgPiB3YXJ1enVyZVwgOwor6by75YWIID4gaGFuYXNha2lcIDsKK+m8u+WFgyA+IGhhbmFtb3RvXCA7CivnpZ7mnIggPiBrb3VkenVraVwgOwor5Y+O542yID4gc2h1dWtha3VcIDsKK+awkeiNiSA+IHRhbWlndXNhXCA7CivmtLvlvIEgPiBrYXRzdWJlblwgOwor56Gd6JasID4gc2hvdXlha3VcIDsKK+WSjOWupCA+IHdhc2hpdHN1XCA7Civph4jnhLYgPiBzaGFrdXplblwgOwor56ew5ZCNID4gc2hvdW15b3VcIDsKK+emgeaFviA+IGtpbicneW9rdVwgOwor5ZOy5Lq6ID4gdGV0c3VqaW5cIDsKK+emj+W+syA+IGZ1a3V0b2t1XCA7Civpu5LlsbEgPiBrdXJveWFtYVwgOwor5Yu/6KuWID4gbW9jaGlyb25cIDsKK+W8t+i/qyA+IGt5b3VoYWt1XCA7CivlvJTpkJggPiBjaG91c2hvdVwgOwor5oCq54mpID4ga2FpYnV0c3VcIDsKK+emj+W8lSA+IGZ1a3ViaWtpXCA7CivmsrzmsqIgPiBzaG91dGFrdVwgOwor6J2244CFID4gY2hvdWNob3VcIDsKK+iWhOawtyA+IGhha3VoeW91XCA7CivljZLogIUgPiBzb3RzdXNoYVwgOwor5rK55rGXID4gYWJ1cmFhc2VcIDsKK+WOn+eZuiA+IGdlbnBhdHN1XCA7CivlibLpq5ggPiB3YXJpZGFrYVwgOwor6JGX6L+wID4gY2hvanV0c3VcIDsKK+egsuihkyA+IGhvdWp1dHN1XCA7Civljprnmq4gPiBhdHN1a2F3YVwgOwor5YuF6YG4ID4gY2hva3VzZW5cIDsKK+axguepjSA+IGt5dXVzZWtpXCA7Civmr5vombEgPiBrZWppcmFtaVwgOwor6YWS57OfID4gc2FrZWthc3VcIDsKK+mFkueylSA+IHNha2VrYXN1XCA7CivliofpnIcgPiBnZWtpc2hpblwgOwor5byV6YeRID4gaGlraWdhbmVcIDsKK+WPpOaysyA+IGZ1cnVrYXdhXCA7Civlvqnnv5IgPiBmdWt1c2h1dVwgOwor5q+S6JuHID4gZG9rdWhlYmlcIDsKK+mJhOW6iiA+IGthbmF0b2tvXCA7CivlkI3mnIggPiBtZWlnZXRzdVwgOwor5ZCN5puyID4gbWVpa3lva3VcIDsKK+mJhOW4vSA+IHRldHN1Ym91XCA7CivlkIzmnIggPiBkb3VnZXRzdVwgOwor5oCl5r+AID4ga3l1dWdla2lcIDsKK+WNoOeulyA+IHVyYXlhc2FuXCA7CivljZTntIQgPiBreW91eWFrdVwgOwor5q+S6JasID4gZG9rdXlha3VcIDsKK+axuueEtiA+IGtldHN1emVuXCA7CivmrpbosqEgPiBzaG9rdXphaVwgOwor6YeN5q66ID4ganV1c2F0c3VcIDsKK+aDheWunyA+IGpvdWppdHN1XCA7Civnp4vlj6MgPiBha2lndWNoaVwgOwor6YeR5qygID4ga2lua2V0c3VcIDsKK+WNmOevgCA+IHRhbnNldHN1XCA7CivmtIvlvI8gPiB5b3VzaGlraVwgOwor5Y+W5rG6ID4gdG9yaWtpbWVcIDsKK+WQjOaXpSA+IGRvdWppdHN1XCA7Civnpa3lvI8gPiBzYWlzaGlraVwgOwor6JmQ5L2/ID4gZ3lha3VzaGlcIDsKK+aykOa1tCA+IG1va3V5b2t1XCA7CivlvpLogIUgPiB0YWRhbW9ub1wgOwor6YmE5bGxID4gdGV0c3V6YW5cIDsKK+WOn+eJqSA+IGdlbmJ1dHN1XCA7Civlipvph48gPiByaWtpcnlvdVwgOwor5rSe5a+fID4gZG91c2F0c3VcIDsKK+W8t+iqvyA+IGt5b3VjaG91XCA7CivpgZPpoIYgPiBtaWNoaWp1blwgOwor56We5b6zID4gc2hpbnRva3VcIDsKK+W/g+elniA+IHNoaW5zaGluXCA7CivpgYrpo58gPiB5dXVzaG9rdVwgOwor5b6p57GNID4gZnVrdXNla2lcIDsKK+asoOmjnyA+IGtlc3Nob2t1XCA7CivmgKXmtYEgPiBreXV1cnl1dVwgOwor5q+S6Iy4ID4gZG9rdXRha2VcIDsKK+W7tumHkSA+IG5vYmVnYW5lXCA7CivnooznoowgPiByb2t1cm9rdVwgOwor6Yqt5LqAID4gemVuaWdhbWVcIDsKK+atr+i7iiA+IGhhZ3VydW1hXCA7CivlvLfopbIgPiBreW91c2h1dVwgOwor5byV6LaKID4gaGlra29zaGlcIDsKK+WJg+mrqiA+IHRlaWhhdHN1XCA7Civlv73nhLYgPiBrb3RzdXplblwgOwor6YeR5qKDID4ga2FuYXRla29cIDsKK+WPpOagqiA+IGZ1cnVrYWJ1XCA7Civli4Xoq5ogPiBjaG9rdWpvdVwgOwor6I+c6aOfID4gc2Fpc2hva3VcIDsKK+aChOaChCA+IHN1Z29zdWdvXCA7CivnoaznrYYgPiBrb3VoaXRzdVwgOwor56We5beeID4gc2hpbnNodXVcIDsKK+W9qeiJsiA+IHNhaXNob2t1XCA7Civlv4XnnYAgPiBoaXRjaGFrdVwgOwor55+l6K2YID4gY2hpc2hpa2lcIDsKK+aIkeOAhSA+IHdhcmV3YXJlXCA7CivpgLLpp5AgPiBzaGluY2h1dVwgOwor5oSB5YK3ID4gc2h1dXNob3VcIDsKK+WPpOacjSA+IGZ1cnVmdWt1XCA7CivmsLTnk7YgPiBtaXp1Z2FtZVwgOwor5b+D55qEID4gc2hpbnRla2lcIDsKK+m7meWKhyA+IG1va3VnZWtpXCA7CivlkL7lrZAgPiB3YWdpbW9rb1wgOwor5rCX55+tID4ga2ltaWppa2FcIDsKK+iVg+auliA+IGhhbnNob2t1XCA7CivlvpfnrZYgPiB0b2t1c2FrdVwgOwor5YuF6KOBID4gY2hva3VzYWlcIDsKK+W+k+evgCA+IGp1dXNldHN1XCA7Civpganph48gPiB0ZWtpcnlvdVwgOwor5b+D55ebID4gc2hpbnRzdXVcIDsKK+WKh+mAmiA+IGdla2l0c3V1XCA7Civph5HmmJ8gPiBraW5ib3NoaVwgOwor5rGy5rGyID4ga3l1dWt5dXVcIDsKK+W8vuiWrCA+IGRhbicneWFrdVwgOwor5Y2Y55m6ID4gdGFucGF0c3VcIDsKK+W/heeUqCA+IGhpdHN1eW91XCA7CivljZLnm7QgPiBzb3RjaG9rdVwgOwor5rC0546JID4gbWl6dXRhbWFcIDsKK+elnuWtpiA+IHNoaW5nYWt1XCA7CivnpoHlnKcgPiBraW4nJ2F0c3VcIDsKK+engOS9nCA+IHNodXVzYWt1XCA7CivlvrPnm64gPiB0b2t1bW9rdVwgOwor6YeM5pa5ID4gc2F0b2thdGFcIDsKK+azleW+iyA+IGhvdXJpdHN1XCA7CivnpLzlvI8gPiByZWlzaGlraVwgOwor5Y+O5p2fID4gc2h1dXNva3VcIDsKK+mHiOaYjiA+IHNoYWt1bWVpXCA7CivmtLvli5UgPiBrYXRzdWRvdVwgOwor6buS5YaGID4ga3Vyb21hcnVcIDsKK+azleW8jyA+IGhvdXNoaWtpXCA7CivmsLTniakgPiBtaXp1bW9ub1wgOwor5b6X56WoID4gdG9rdWh5b3VcIDsKK+mBpemBpSA+IGhhcnViYXJ1XCA7CivmtL7lh7ogPiBoYXNodXRzdVwgOwor6YeI5pS+ID4gc2hha3Vob3VcIDsKK+a1geWFpSA+IHJ5dXVueXV1XCA7CivmrovomZAgPiB6YW5neWFrdVwgOwor6Jas5bGLID4ga3VzdXJpeWFcIDsKK+iWrOWxgCA+IHlha2t5b2t1XCA7Civnoaznm7QgPiBrb3VjaG9rdVwgOwor5ZCI5byPID4gZ291c2hpa2lcIDsKK+elnuWmmSA+IHNoaW5teW91XCA7CivpgaDpgZMgPiB0b29taWNoaVwgOwor5b2T6IG3ID4gdG91c2hva3VcIDsKK+W6lemdqSA+IHNva29nYXdhXCA7Civphpzmpa0gPiBzaHV1Z3lvdVwgOwor6Jas5a2mID4geWFrdWdha3VcIDsKK+ehneefsyA+IHNob3VzZWtpXCA7CivpgZnpgZkgPiBoYXJ1YmFydVwgOwor56aP5YqpID4gZnVrdXN1a2VcIDsKK+avm+ethiA+IG1vdWhpdHN1XCA7Civlv6vmtLsgPiBrYWlrYXRzdVwgOwor5Y675pyIID4ga3lvZ2V0c3VcIDsKK+ato+immiA+IHNob3VnYWt1XCA7CivnnYDpp4UgPiBjaGFrdWVraVwgOwor5Y+N5pKlID4gaGFucGF0c3VcIDsKK+W7uuiorSA+IGtlbnNldHN1XCA7CivmgZDmgqYgPiBreW91ZXRzdVwgOwor6JSt5qeYID4ga2FnZXNhbWFcIDsKK+elnuWfnyA+IHNoaW4nJ2lraVwgOwor5Y2D55SfID4gc2VuJyduYXJpXCA7CivoloTlvLEgPiBoYWt1amFrdVwgOwor5oGN5oOaID4ga291a290c3VcIDsKK+W/heeEtiA+IGhpdHN1emVuXCA7CivmgZDmgZAgPiBrb3dhZ293YVwgOwor5ZCM5bGAID4gZG91a3lva3VcIDsKK+m7kuS4uCA+IGt1cm9tYXJ1XCA7CivokrjnnYAgPiBqb3VjaGFrdVwgOwor5Y2K546JID4gaGFuZ3lva3VcIDsKK+mAhumiqCA+IGd5YWt1ZnV1XCA7CivliIbpqqggPiBidW5rb3RzdVwgOwor56We5Zu9ID4gc2hpbmtva3VcIDsKK+W5vOmhlCA+IG9zYW5hZ2FvXCA7CivlvLfohpwgPiBreW91bWFrdVwgOwor5ZCM5a6/ID4gZG91c2h1a3VcIDsKK+WQjeWunyA+IG1laWppdHN1XCA7CivmraLooYAgPiBzaGlrZXRzdVwgOwor6YCQ6Zu7ID4gY2hpa3VkZW5cIDsKK+WPjuaLviA+IHNodXVzaHV1XCA7Civli5XohIggPiBkb3VteWFrdVwgOwor552A6aCGID4gY2hha3VqdW5cIDsKK+iSuOeZuiA+IGpvdWhhdHN1XCA7CivpgIbpoIYgPiBneWFrdWp1blwgOwor5ZCI5a6/ID4gZ2Fzc2h1a3VcIDsKK+WKh+iplSA+IGdla2loeW91XCA7CivphbjmrKAgPiBzYW5rZXRzdVwgOwor6YmE5YmkID4gdGV0c3V6YWlcIDsKK+ehrOeOiSA+IGtvdWd5b2t1XCA7Civmsbrmlq0gPiBrZXRzdWRhblwgOwor5b6M55m6ID4ga291aGF0c3VcIDsKK+WJr+izniA+IGZ1a3VzaG91XCA7CivpiYTliIYgPiB0ZXRzdWJ1blwgOwor5rKz5bqVID4ga2F3YXpva29cIDsKK+WNkueEtiA+IHNvdHN1emVuXCA7CivnnYDpm7sgPiBjaGFrdWRlblwgOwor5bqD6ZeKID4ga291a2F0c3VcIDsKK+WPi+aIkCA+IHRvbW9uYXJpXCA7CivmsLTmtJ8gPiBtaXp1YmFuYVwgOwor5Y2z5rG6ID4gc29ra2V0c3VcIDsKK+W+jOeVpSA+IGtvdXJ5YWt1XCA7CivliY3ov7AgPiB6ZW5qdXRzdVwgOwor5Ymy6K2yID4ga2F0c3Vqb3VcIDsKK+WOn+absiA+IGdlbmt5b2t1XCA7CivliIfpoZggPiBzZXRzdWdhblwgOwor5Ye66aeVID4gc2h1dHN1Z2FcIDsKK+W+jOeUoyA+IG5vY2hpemFuXCA7CivokL3ojqsgPiByYWt1YmFrdVwgOwor6YGp6KmVID4gdGVraWh5b3VcIDsKK+W/meauuiA+IGJvdXNhdHN1XCA7Civok4vniakgPiBmdXRhbW9ub1wgOwor5rip44CFID4gbnVrdW51a3VcIDsKK+WHuummrCA+IHNodXRzdWJhXCA7CivpganoqLMgPiB0ZWtpeWFrdVwgOwor5rC05rKhID4gc3VpYm90c3VcIDsKK+W+oeeJqSA+IGd5b2J1dHN1XCA7CivlvZPnr4AgPiB0b3VzZXRzdVwgOwor5ZC45Y+jID4gc3Vpa3VjaGlcIDsKK+aCi+WXhyA+IHJpbnNob2t1XCA7CivlkLjlj44gPiBreXV1c2h1dVwgOwor5Y+k5bedID4gZnVydWthd2FcIDsKK+WJteiorSA+IHNvdXNldHN1XCA7Civph53lsbEgPiBoYXJpeWFtYVwgOwor5q6J6IG3ID4ganVuc2hva3VcIDsKK+WPluW8lSA+IHRvcmloaWtpXCA7CivmsqHlubQgPiBib3RzdW5lblwgOwor5Y+y5a6fID4gc2hpaml0c3VcIDsKK+iRieiEiCA+IHlvdW15YWt1XCA7Civlj7Dlr4YgPiB0YWltaXRzdVwgOwor6YGU6K2YID4gdGFzc2hpa2lcIDsKK+WPjuW+lyA+IHNodXV0b2t1XCA7CivpuqbkvZwgPiBtdWdpc2FrdVwgOwor5oCn5oKqID4gc2hvdXdhcnVcIDsKK+WNkea5vyA+IGhpc2hpdHN1XCA7CivlkJ3ll4cgPiByaW5zaG9rdVwgOwor5b6T54mpID4ganV1YnV0c3VcIDsKK+W9ueeVnCA+IGVraWNoaWt1XCA7CivpiYTkurogPiB0ZXRzdWppblwgOwor5q276ISIID4gc2hpbXlha3VcIDsKK+WHoemqqCA+IGJvbmtvdHN1XCA7Civph5HlsZEgPiBrYW5ha3V6dVwgOwor5b+F5q66ID4gaGlzc2F0c3VcIDsKK+WPpOWvuiA+IGZ1cnVkZXJhXCA7CivmtJvkuK0gPiByYWt1Y2h1dVwgOwor5Ye46Z2iID4gdG90c3VtZW5cIDsKK+WQuOWFpSA+IGt5dXVueXV1XCA7CivliLDpgZQgPiB0b3V0YXRzdVwgOwor5Y+j5a6fID4ga291aml0c3VcIDsKK+WKh+iWrCA+IGdla2l5YWt1XCA7Civnn63nuK4gPiB0YW5zaHVrdVwgOwor5Ya36bqmID4gaGl5YW11Z2lcIDsKK+elneWFuCA+IHNodWt1dGVuXCA7Civlh7rpmbMgPiBzaHV0Y2hpblwgOwor5q2j6ImyID4gc2Vpc2hva3VcIDsKK+iRm+exoCA+IHRzdWR6dXJhXCA7CivlvrPmsqIgPiB0b2t1dGFrdVwgOwor6YeI5bCKID4gc2hha3Vzb25cIDsKK+W5s+mNiyA+IGhpcmFuYWJlXCA7CivphZLmqL0gPiBzYWthZGFydVwgOwor5byB6IiMID4gYmVuemV0c3VcIDsKK+i/vemMsiA+IHRzdWlyb2t1XCA7CivmgYvlprsgPiBrb2lkenVtYVwgOwor5oCW5oCWID4ga293YWdvd2FcIDsKK+W+qea0uyA+IGZ1a2thdHN1XCA7CivmsLfmn7EgPiBoeW91Y2h1dVwgOwor5oGr5ZadID4gZG91a2F0c3VcIDsKK+mBqeiWrCA+IHRla2l5YWt1XCA7CivliaPooZMgPiBrZW5qdXRzdVwgOwor5Y6z5b6LID4gZ2Vucml0c3VcIDsKK+WKq+e9sCA+IGdvdWJhdHN1XCA7CivlvavnkKIgPiBjaG91dGFrdVwgOwor5YyW54mpID4gYmFrZW1vbm9cIDsKK+iWquWJsiA+IG1ha2l3YXJpXCA7CivlvZPnm7QgPiB0b3VjaG9rdVwgOwor5YmN6KqsID4gemVuc2V0c3VcIDsKK+WJr+iZuSA+IGZ1a3VuaWppXCA7CivljJfniIYgPiBob2t1YmFrdVwgOwor55+i57WjID4geWFnYXN1cmlcIDsKK+iOq+mAhiA+IGJha3VnZWtpXCA7CivluLjpo58gPiBqb3VzaG9rdVwgOwor6bCQ6a6rID4gd2FuaXphbWVcIDsKK+azqOWFpSA+IGNodXVueXV1XCA7CivmgKXls7sgPiBreXV1c2h1blwgOwor6bOp6IO4ID4gaGF0b211bmVcIDsKK+WLheetlCA+IGNob2t1dG91XCA7CivmsLfmmbYgPiBoeW91c2hvdVwgOwor5bqX6LODID4gdGFuYWNoaW5cIDsKK+i+rumrqiA+IGJlbnBhdHN1XCA7CivljZfmpbUgPiBuYW5reW9rdVwgOwor5b+D5qC5ID4ga29rb3JvbmVcIDsKK+WGrOmzpSA+IGZ1eXVkb3JpXCA7CivnoLTniakgPiB3YXJlbW9ub1wgOwor5ZSv44CFID4gdGFkYXRhZGFcIDsKK+WNlOalrSA+IGt5b3VneW91XCA7Civlh53pm4YgPiBneW91c2h1dVwgOwor5ZCE5ZCEID4gc29yZXpvcmVcIDsKK+mAgemBlCA+IHNvdXRhdHN1XCA7CivlvavniakgPiBob3JpbW9ub1wgOwor5bqV6LGGID4gc29rb21hbWVcIDsKK+mzpeiCjCA+IHRvcmloYWRhXCA7Civli77njokgPiBtYWdhdGFtYVwgOwor6bOl6IKJID4gdG9yaW5pa3VcIDsKK+WKh+iHrSA+IGdla2lzaHV1XCA7Civmr43niakgPiBoYWhhbW9ub1wgOwor5oGQ5ZqHID4ga3lvdWtha3VcIDsKK+a3seOAhSA+IGZ1a2FidWthXCA7CivnnJ/pja4gPiBzaGluY2h1dVwgOwor5oCg5bGIID4gdGFpa3V0c3VcIDsKK+ekvuWFsSA+IHNoYWt5b3VcIDsKK+W/g+adkCA+IHNoaW56YWlcIDsKK+i/kemWkyA+IGNoaWthbWFcIDsKK+WOu+WwsSA+IGt5b3NodXVcIDsKK+WJjeihqCA+IHplbnB5b3VcIDsKK+WQm+WBtCA+IGt1bnNva3VcIDsKK+i/vemAgSA+IHRzdWlzb3VcIDsKK+WNoOaciSA+IHNlbicneXV1XCA7Civlv4zml6UgPiBraW5pY2hpXCA7CivljaDmm7ggPiB1cmFidW1pXCA7CivluLPpnaIgPiBjaG91bWVuXCA7Civnm7Tpn7MgPiBjaG9rdW9uXCA7Civlip/nuL4gPiBrb3VzZWtpXCA7CivmsJHmpa0gPiBtaW5neW91XCA7CivoloTlkb0gPiBoYWt1bWVpXCA7CivluK3poIYgPiBzZWtpanVuXCA7Civnm4rps6UgPiBla2ljaG91XCA7CivmspblpKkgPiBjaHV1dGVuXCA7Civlv5zmjqUgPiBvdXNldHN1XCA7CivnnqDoi6UgPiBkb3VqYWt1XCA7CivlvozmtYEgPiBrb3VyeXV1XCA7Civlj6zllpogPiBzaG91a2FuXCA7CivlvJXnrpcgPiBoaWtpemFuXCA7CivljZzmm7ggPiB1cmFidW1pXCA7CivluK/pnakgPiBvYmlrYXdhXCA7Civlh7rph5EgPiBzaHVra2luXCA7Civlj6vllpogPiBreW91a2FuXCA7CivlkInlh7YgPiBraWtreW91XCA7Civph43lnKcgPiBqdXVhdHN1XCA7Civov7Dpg6ggPiBqdXRzdWJ1XCA7Civpt7LluqcgPiB3YXNoaXphXCA7CivlvJPnrq0gPiBreXV1c2VuXCA7CivliIbpgLIgPiBidW5zaGluXCA7Civoj6nolqkgPiBib3NhdHN1XCA7CivliIbpgJ8gPiBmdW5zb2t1XCA7CivmsLTmkoMgPiBzdWlnZWtpXCA7CivmsqLlnLAgPiBzYXdhY2hpXCA7CivliIfov6sgPiBzZXBwYWt1XCA7CivljZfmnJ0gPiBuYW5jaG91XCA7Civlv7Xlv7UgPiBuZW4nJ25lblwgOwor77yu6Z+/ID4gZW51a3lvdVwgOwor5q2j57aaID4gc2Vpem9rdVwgOwor6JC956ysID4gcmFrdWRhaVwgOwor6Yej5ZCIID4gdHN1cmlhaVwgOwor5q2j57W5ID4gc2hvdWtlblwgOwor5Y6z5a65ID4gZ2VuJyd5b3VcIDsKK+mAsuihjCA+IHNoaW5rb3VcIDsKK+WQieWFhiA+IGtpdGNob3VcIDsKK+WLleeahCA+IGRvdXRla2lcIDsKK+WQjOWDmiA+IGRvdXJ5b3VcIDsKK+ato+e1jCA+IHNlaWt5b3VcIDsKK+WMl+a6gCA+IGhva3VtYW5cIDsKK+WNiuagvCA+IGhhbmtha3VcIDsKK+mAmuisgCA+IHRzdXVib3VcIDsKK+WPrOWRvSA+IHNob3VtZWlcIDsKK+mAmuirliA+IHRzdXVyb25cIDsKK+W6j+iqrCA+IGpvc2V0c3VcIDsKK+azpeS4rSA+IGRlaWNodXVcIDsKK+W6leinkiA+IHRlaWtha3VcIDsKK+WJsuiIiCA+IHdhcmlrb3VcIDsKK+W+s+acmyA+IHRva3Vib3VcIDsKK+aApeWkiSA+IGt5dXVoZW5cIDsKK+WPo+WUhyA+IGtvdXNoaW5cIDsKK+mzpee2siA+IHRvcmlhbWlcIDsKK+aBreWAuSA+IGt5b3VrZW5cIDsKK+WPq+WPtyA+IGt5b3Vnb3VcIDsKK+WIhui6qyA+IGJ1bnNoaW5cIDsKK+WIuuihnSA+IHNoaXNob3VcIDsKK+W5veiwtyA+IHl1dWtva3VcIDsKK+mEmeatjCA+IGhpbmF1dGFcIDsKK+auteeJqSA+IGRhbm1vbm9cIDsKK+WQjOS/oSA+IGRvdXNoaW5cIDsKK+efs+ebpCA+IHNla2liYW5cIDsKK+atu+elqCA+IHNoaWh5b3VcIDsKK+WJsuiFuSA+IGthcHB1a3VcIDsKK+W7kOiIjiA+IGt5dXVzaGFcIDsKK+mAmuioiCA+IHRzdXVrZWlcIDsKK+WQjOS+tiA+IGRvdXJ5b3VcIDsKK+WPsOWMlyA+IHRhaWhva3VcIDsKK+WLpOeOiyA+IGtpbicnbm91XCA7Civlu4/oiI4gPiBreXV1c2hhXCA7Civlv6vlvqkgPiBrYWlmdWt1XCA7CivmsJHmnIkgPiBtaW4nJ3l1dVwgOwor5q2056iLID4gcmVraXRlaVwgOwor56C05ruFID4gaGFtZXRzdVwgOwor5oCl5aKXID4ga3l1dXpvdVwgOwor6YCa6KejID4gdHN1dWthaVwgOwor5Yik6KqtID4gaGFuZG9rdVwgOwor6YeN5ZSxID4ganV1c2hvdVwgOwor5ZCN5L2cID4gbWVpc2FrdVwgOwor6YCa6KazID4gdHN1dWthblwgOwor5byU56WtID4gY2hvdXNhaVwgOwor5ZCE5YGcID4ga2FrdXRlaVwgOwor5oGp5YCfID4gb25zaGFrdVwgOwor5Y+y5YqHID4gc2hpZ2VraVwgOwor5YyX5rSLID4gaG9rdXlvdVwgOwor6YCa6KanID4gdHN1dXJhblwgOwor6YGp6ICFID4gdGVraXNoYVwgOwor5Ymv6IWOID4gZnVrdWppblwgOwor56S+5LitID4gc2hhY2h1dVwgOwor6L+96LSIID4gdHN1aXpvdVwgOwor5oCl5aCxID4ga3l1dWhvdVwgOwor5bir6ZW3ID4gc2hpY2hvdVwgOwor5YiA6LqrID4gdG91c2hpblwgOwor5Yqg562GID4ga2FoaXRzdVwgOwor5Y675aOwID4ga3lvc2hvdVwgOwor5ZCN5LujID4gbXlvdWRhaVwgOwor5Yyh5q2jID4ga3lvdXNlaVwgOwor5ZCI5L2cID4gZ2Fzc2FrdVwgOwor5b6T5qWtID4ganV1Z3lvdVwgOwor5Y2K5pmCID4gaGFudG9raVwgOwor6JC956OQID4gcmFrdWJhblwgOwor5Y6f5a+pID4gZ2Vuc2hpblwgOwor5q+S5rayID4gZG9rdWVraVwgOwor5b285rCPID4ga2FyZXNoaVwgOwor5bid6Zm1ID4gdGVpcnlvdVwgOwor5b6z5pS/ID4gdG9rdXNlaVwgOwor5rCR5pePID4gbWluem9rdVwgOwor6YGg6ICzID4gdG9vbWltaVwgOwor5ZCN5Li7ID4gbmFudXNoaVwgOwor5oCl5Z2CID4ga3l1dWhhblwgOwor5Yid6Ki6ID4gc2hvc2hpblwgOwor5bqD6KeSID4ga291a2FrdVwgOwor5ZCJ5LqLID4ga2l0c3VqaVwgOwor5rCP5pePID4gc2hpem9rdVwgOwor5byU56CyID4gY2hvdWhvdVwgOwor5bu6562WID4ga2Vuc2FrdVwgOwor5YmN6JGJID4gemVuJyd5b3VcIDsKK+mAmuihjCA+IHRzdXVrb3VcIDsKK+WQjOS4gCA+IGRvdWl0c3VcIDsKK+W5vuiosSA+IGlrdWJha3VcIDsKK+mHjeWOmiA+IGNob3Vrb3VcIDsKK+iNt+mAgSA+IG5pb2t1cmlcIDsKK+W+qeaXpyA+IGZ1a2t5dXVcIDsKK+ayoeWPjiA+IGJvc3NodXVcIDsKK+W7u+eroCA+IGthaXNob3VcIDsKK+WNmuaNnCA+IGhha3Vzb3VcIDsKK+efpeeahCA+IGNoaXRla2lcIDsKK+WQhOS6uiA+IGtha3VqaW5cIDsKK+aui+eVmSA+IHphbnJ5dXVcIDsKK+W5lei7jSA+IGJha3VndW5cIDsKK+W7uueriyA+IGtvbnJ5dXVcIDsKK+ayg+WcsCA+IHlva3VjaGlcIDsKK+mBiuiIiCA+IHl1dWt5b3VcIDsKK+W+qeaWhyA+IGZ1a3VidW5cIDsKK+WQiOS4gCA+IGdvdWl0c3VcIDsKK+WIpeihqCA+IGJlcHB5b3VcIDsKK+WJr+e9siA+IGZ1a3VzaG9cIDsKK+WPl+WPliA+IHVrZXRvcmlcIDsKK+W/g+aIvyA+IHNoaW5ib3VcIDsKK+WPpOWIuSA+IGtvc2F0c3VcIDsKK+WKtOebuCA+IHJvdXNob3VcIDsKK+mDrea4hSA+IGtha3VzZWlcIDsKK+WHuui1sCA+IHNodXNzb3VcIDsKK+W5u+immiA+IGdlbmtha3VcIDsKK+WJm+iFuSA+IGdvdWZ1a3VcIDsKK+atr+efsyA+IHNoaXNla2lcIDsKK+aBpeS4mCA+IGNoaWt5dXVcIDsKK+iQveebpCA+IHJha3ViYW5cIDsKK+WFqOm6piA+IHplbmJha3VcIDsKK+WNmuaJkyA+IGJha3VjaGlcIDsKK+i/veiqjSA+IHRzdWluaW5cIDsKK+mHj+WIkSA+IHJ5b3VrZWlcIDsKK+eiuuWumiA+IGtha3V0ZWlcIDsKK+mHjeWIuyA+IGp1dWtva3VcIDsKK+eiuuWuiCA+IGtha3VzaHVcIDsKK+i/veippiA+IHRzdWlzaGlcIDsKK+WHuuizhyA+IHNodXNzaGlcIDsKK+ecn+i0iyA+IHNoaW5nYW5cIDsKK+awl+aMgSA+IGtpbW9jaGlcIDsKK+W5s+inkiA+IGhlaWtha3VcIDsKK+ato+eiuiA+IHNlaWtha3VcIDsKK+i/veiojiA+IHRzdWl0b3VcIDsKK+avrOaglyA+IGlnYWd1cmlcIDsKK+atu+eXhSA+IHNoaWJ5b3VcIDsKK+WFsemztCA+IGt5b3VtZWlcIDsKK+WPjeWPjiA+IHRhbnNodXVcIDsKK+W/luW6piA+IHNvbnRha3VcIDsKK+W4r+mHkSA+IG9iaWdhbmVcIDsKK+iNmOmHjSA+IHNvdWNob3VcIDsKK+W/g+aDhSA+IHNoaW5qb3VcIDsKK+WMueaVtSA+IGhpdHRla2lcIDsKK+mDqOa0uyA+IGJ1a2F0c3VcIDsKK+mHjuWFjiA+IG5vdXNhZ2lcIDsKK+awuOW5tCA+IG5hZ2FuZW5cIDsKK+mAhuihjCA+IGd5YWtrb3VcIDsKK+i/hemAnyA+IGppbnNva3VcIDsKK+W+jOabuCA+IGF0b2dha2lcIDsKK+WJjeiGiiA+IHplbnBha3VcIDsKK+mHkeWBtCA+IGtpbmdhd2FcIDsKK+W/g+aApyA+IHNoaW5zZWlcIDsKK+efs+eJiCA+IHNla2liYW5cIDsKK+i/sOiqniA+IGp1dHN1Z29cIDsKK+eip+WxsSA+IGhla2l6YW5cIDsKK+ayiOWQnyA+IGNoaW5naW5cIDsKK+mHjeWCtyA+IGp1dXNob3VcIDsKK+WJjeiEsyA+IHplbicnbm91XCA7CivlubTooaggPiBuZW5weW91XCA7CivliY3ohJogPiBtYWVhc2hpXCA7CivmrY7np7AgPiB0YW5zaG91XCA7Civlh7rorJsgPiBzaHVra291XCA7CivliLrojYkgPiBpcmFrdXNhXCA7CivljYPmjK8gPiBzZW5idXJpXCA7CivpgLLoiKogPiBzaGlua291XCA7Civlv4PlvpcgPiBrb2tvcm9lXCA7CivmgZLkuYUgPiBrb3VreXV1XCA7Civlj6rku4ogPiB0YWRhaW1hXCA7Civlj43liYcgPiBoYW5zb2t1XCA7Civlj6PkvpsgPiBrb3VreW91XCA7CivlvLfngasgPiB0c3V5b2JpXCA7CivmgYvku7IgPiBrb2luYWthXCA7CivliY3ogqIgPiBtYWVhc2hpXCA7CivmrbvnkIMgPiBzaGlreXV1XCA7CivliqnnlaogPiBzdWtlYmFuXCA7Civlvozml6UgPiBnb25pY2hpXCA7CivphY3lvbkgPiBoYWl5YWt1XCA7CivmgYvkurogPiBrb2liaXRvXCA7CivluILplbcgPiBzaGljaG91XCA7CivmgKrlipsgPiBrYWlyaWtpXCA7CivlvoHmnI0gPiBzZWlmdWt1XCA7Civmr43mp5ggPiBrYWFzYW1hXCA7CivnnJ/oq6YgPiBzaGludGVpXCA7CivlvLHngrkgPiBqYWt1dGVuXCA7CivpgKPojZggPiByZW5jaGFuXCA7CivlhobpoZQgPiBtYXJ1Z2FvXCA7Civnm7LpgLIgPiBtb3VzaGluXCA7Civlv6DlrZ0gPiBjaHV1a291XCA7Civps6XnnrAgPiBjaG91a2FuXCA7CivlubzomasgPiB5b3VjaHV1XCA7CivokL3nkIMgPiByYWtreXV1XCA7Civlt6jpoY0gPiBreW9nYWt1XCA7CivlibLnrpcgPiB3YXJpemFuXCA7Civlj43lhbEgPiBoYW5reW91XCA7CivmrovnhacgPiB6YW5zaG91XCA7CivljJfmnbEgPiBob2t1dG91XCA7Civlv4PlupUgPiBzaGludGVpXCA7CivpgLjogZ4gPiBpdHN1YnVuXCA7CivphZLluK0gPiBzaHVzZWtpXCA7Civnn7Pngq0gPiBzZWtpdGFuXCA7CivmsLflsbEgPiBoeW91emFuXCA7CivlvJXnjocgPiBpbnNvdHN1XCA7Civlu7bnnYAgPiBlbmNoYWt1XCA7CivmsLflsYsgPiBrb29yaXlhXCA7CivljbHlsYAgPiBraWt5b2t1XCA7Civlh7jop5IgPiB0b2trYWt1XCA7Civnm67pgIEgPiBtb2t1c291XCA7CivlvrPmgKcgPiB0b2t1c2VpXCA7Civnm7TovLggPiBjaG9rdXl1XCA7CivnoJXmsLcgPiBzYWloeW91XCA7CivnnJ/oqIAgPiBzaGluZ29uXCA7Civlu7rnmb0gPiBrZW5wYWt1XCA7CivmrabnlaUgPiBidXJ5YWt1XCA7CivmgKfliIYgPiBzaG91YnVuXCA7CivlhpfplbcgPiBqb3VjaG91XCA7CivnorrloLEgPiBrYWt1aG91XCA7CivluqfogbcgPiB6YXNob2t1XCA7Civlj6PkuK0gPiBrb3VjaHV1XCA7CivnnJ7oqIAgPiBzaGluZ29uXCA7CivlhrfphbcgPiByZWlrb2t1XCA7CivmrrTmrrogPiBvdXNhdHN1XCA7CivlhaXprYIgPiBueXV1a29uXCA7Civlv5flraYgPiBzaGlnYWt1XCA7CivlvoDml6UgPiBvdWppdHN1XCA7CivmsYLlqZogPiBreXV1a29uXCA7Civlj43lgbQgPiBoYW5zb2t1XCA7Civlu7bnmbogPiBlbnBhdHN1XCA7CivnnJ/opb8gPiBtYW5pc2hpXCA7CivlvJPnirYgPiBreXV1am91XCA7CivphpzlkI0gPiBzaHV1bWVpXCA7CivmsJHlv4MgPiBtaW5zaGluXCA7CivmqKnpq5ggPiBrZW5kYWthXCA7CivmsJHlvrMgPiBtaW50b2t1XCA7Civlj43kv5cgPiBoYW56b2t1XCA7Civmsbrli50gPiBrZXNzaG91XCA7CivlhoXpmbggPiBuYWlyaWt1XCA7Civnm7Tot68gPiBjaG9rdXJvXCA7CivpgannorogPiB0ZWtrYWt1XCA7CivojLbph5wgPiBjaGFnYW1hXCA7CivpgJroiKogPiB0c3V1a291XCA7CivovpvphbggPiBzaGluc2FuXCA7CivluIzph4ggPiBraXNoYWt1XCA7Civlh7booYwgPiBreW91a291XCA7Civmr47mnJ0gPiBtYWljaG91XCA7Civnmb3pr6ggPiBoYWt1Z2VpXCA7CivljYrlvJMgPiBoYW5reXV1XCA7CivliJ3ojbcgPiBoYXRzdW5pXCA7CivljJfmlK8gPiBob2t1c2hpXCA7CivlhoXplrIgPiBuYWlldHN1XCA7CivlhoXplqMgPiBuYWlrYWt1XCA7CivphY3lsZ4gPiBoYWl6b2t1XCA7CivolLXljL8gPiB6b3V0b2t1XCA7CivluKvotbAgPiBzaGl3YXN1XCA7CivmsojlgKsgPiBjaGlucmluXCA7CivlvbDmmI4gPiBzaG91bWVpXCA7CivphZLlrqIgPiBzaHVrYWt1XCA7Civmr5Tml6UgPiBoaW5pY2hpXCA7Civljp/lkYogPiBnZW5rb2t1XCA7Civnmb3prZogPiBzaGlyYXVvXCA7CivljYrlubQgPiBoYW4nJ25lblwgOwor5YmN57SNID4gemVuJydub3VcIDsKK+mBi+ethiA+IHVucGl0c3VcIDsKK+m3ueWMoCA+IHRha2Fqb3VcIDsKK+attOeEtiA+IHJla2l6ZW5cIDsKK+WFrOmgmCA+IGtvdXJ5b3VcIDsKK+i/keimqiA+IGtpbnNoaW5cIDsKK+aApeS9vyA+IGt5dXVzaGlcIDsKK+WJveeblyA+IGh5b3V0b3VcIDsKK+W5vOiLpSA+IHlvdWpha3VcIDsKK+WFqOmhjSA+IHplbmdha3VcIDsKK+aomemrmCA+IGh5b3Vrb3VcIDsKK+WNs+WjsiA+IHNva3ViYWlcIDsKK+WNg+W6piA+IGNoaXRhYmlcIDsKK+W8t+awlyA+IHRzdXlva2lcIDsKK+W6geiIjiA+IGNob3VzaGFcIDsKK+WKh+eVjCA+IGdla2lrYWlcIDsKK+WNg+W5tCA+IGNoaXRvc2VcIDsKK+WKh+eUmiA+IGdla2lqaW5cIDsKK+aoqumhlCA+IHlva29nYW9cIDsKK+WLp+alrSA+IGthbmd5b3VcIDsKK+WHneimliA+IGd5b3VzaGlcIDsKK+WIuue5jSA+IHNoaXNodXVcIDsKK+eeoOebriA+IGRvdW1va3VcIDsKK+WGjemMsiA+IHNhaXJva3VcIDsKK+ecn+iZqyA+IG1hbXVzaGlcIDsKK+mzpeeNoyA+IGNob3VqdXVcIDsKK+W+ueWutSA+IHRlc3Nob3VcIDsKK+WNkeWxiCA+IGhpa3V0c3VcIDsKK+WKoOeGsSA+IGthbmV0c3VcIDsKK+WGjemLsyA+IHNhaWNodXVcIDsKK+awt+WhiiA+IGh5b3VrYWlcIDsKK+WNkuWvvyA+IHNvdHN1anVcIDsKK+W8t+assiA+IGdvdXlva3VcIDsKK+WNlOWumiA+IGt5b3V0ZWlcIDsKK+WFtemVtyA+IGhlaWNob3VcIDsKK+mFjOWppiA+IHNoYWt1ZnVcIDsKK+egsuaSgyA+IGhvdWdla2lcIDsKK+awl+WvhiA+IGtpbWl0c3VcIDsKK+mBuOeQgyA+IHNlbmt5dXVcIDsKK+WOn+WJhyA+IGdlbnNva3VcIDsKK+WFsemXmCA+IGt5b3V0b3VcIDsKK+ebtOirqyA+IGNob2trYW5cIDsKK+eZuummrCA+IGhhdHN1YmFcIDsKK+WIuue1oSA+IHNoaXJha3VcIDsKK+WFqOmbhiA+IHplbnNodXVcIDsKK+WNk+WtkCA+IHRlaWJ1cnVcIDsKK+ebtOirjCA+IGNob2trYW5cIDsKK+ebtOirhyA+IGppa2lkYW5cIDsKK+WFpembuyA+IG55dXVkZW5cIDsKK+WJjeeroCA+IHplbnNob3VcIDsKK+efs+autSA+IGlzaGlkYW5cIDsKK+atpueDiCA+IGJ1cmV0c3VcIDsKK+ebtOipsSA+IGNob2t1d2FcIDsKK+ejgeWKmyA+IGppcnlva3VcIDsKK+awtOWeoiA+IG1penVha2FcIDsKK+W5s+iHvCA+IGhpcmF1c3VcIDsKK+W9ueaJgCA+IHlha3VzaG9cIDsKK+mBqeeUqCA+IHRla2l5b3VcIDsKK+mAo+e2miA+IHJlbnpva3VcIDsKK+W8t+aoqSA+IGt5b3VrZW5cIDsKK+WNteWaoiA+IHJhbicnbm91XCA7CivmsI/lr7ogPiB1amlkZXJhXCA7CivlhaXpmoogPiBueXV1dGFpXCA7Civlv4PlpJYgPiBzaGluZ2FpXCA7CivljYrlrrUgPiBoYW5zaG91XCA7CivpgKPntaEgPiByZW5yYWt1XCA7CivliLbntIQgPiBzZWl5YWt1XCA7CivnnpHnm64gPiBtZWltb2t1XCA7CivlipvngrkgPiByaWtpdGVuXCA7CivmsLTlnKcgPiBzdWlhdHN1XCA7CivlubvogbQgPiBnZW5jaG91XCA7Civnn6/mraMgPiBreW91c2VpXCA7CivmqJnpoYwgPiBoeW91ZGFpXCA7CivmsLflmqIgPiBoeW91bm91XCA7Civlv7XlipsgPiBuZW5yaWtpXCA7Civnm7ToprMgPiBjaG9ra2FuXCA7CivljZrlpZUgPiBiYWt1Y2hpXCA7Civnm7TopqcgPiBqaWtpcmFuXCA7CivljYPlsIsgPiBjaGloaXJvXCA7CivlhajplbcgPiB6ZW5jaG91XCA7CivljZrlpKcgPiBoYWt1ZGFpXCA7CivokL3mtpkgPiByYWt1cnVpXCA7CivlhoXph5EgPiB1Y2hpa2luXCA7CivnmbvpoIIgPiB0b3VjaG91XCA7Civnm5fos4ogPiB0b3V6b2t1XCA7CivljZrlo6sgPiBoYWt1c2hpXCA7CivnmofpmbUgPiBrb3VyeW91XCA7Civnmbrpn7MgPiBoYXRzdW9uXCA7CivlhaXploAgPiBueXV1bW9uXCA7Civmr5LmiYsgPiBkb2t1c2h1XCA7Civnn7PmqYsgPiBzZWtreW91XCA7CivnnJ/oj4wgPiBzaGlua2luXCA7Civnmb3pnaIgPiBoYWt1bWVuXCA7CivlvrnlpJwgPiB0ZXRzdXlhXCA7Civnn7Pmp6ggPiBzZWtrYWt1XCA7Civlv6vli50gPiBrYWlzaG91XCA7CivliIfohbkgPiBzZXBwdWt1XCA7Civlv6DlkJsgPiBjaHV1a3VuXCA7CivolLXkurogPiBrdXJvdWRvXCA7Civlh7bojZIgPiBreW91a291XCA7CivlubTogIEgPiB0b3NoaW9pXCA7Civoi5TpoZ4gPiBrb2tlcnVpXCA7CivnmbrpnLIgPiBoYXRzdXJvXCA7CivlhYfpoZ4gPiBreW91cnVpXCA7CivpgJTntbYgPiB0b3pldHN1XCA7Civnm7TooYwgPiBjaG9ra291XCA7CivlipvmvJUgPiByaWtpc291XCA7CivljaDlnLAgPiBzaGltZWppXCA7Civlv4PlnLAgPiBrb2tvY2hpXCA7CivlhYjpoIMgPiBzZW5rb3JvXCA7Civmrbvmr5IgPiBzaGlkb2t1XCA7Civlupznq4sgPiBmdXJpdHN1XCA7CivluKvooaggPiBzaGloeW91XCA7Civljp/kvZwgPiBnZW5zYWt1XCA7CivljbDlk7IgPiBpbnRldHN1XCA7CivlhrfoqZUgPiByZWloeW91XCA7Civlv4Plm6AgPiBzaGluJydpblwgOwor5Ye66IiqID4gc2h1a2tvdVwgOwor6YCf566XID4gc29rdXNhblwgOwor5Y6E5YmNID4geWFrdW1hZVwgOwor5q6L5qWtID4gemFuZ3lvdVwgOwor6I2S6KGMID4gYXJhZ3lvdVwgOwor5YaF6YCaID4gbmFpdHN1dVwgOwor5Yud5pmvID4gc2hvdWtlaVwgOwor556t54S2ID4gcnlvdXplblwgOwor5b6T5bGeID4ganV1em9rdVwgOwor5bym5qW9ID4gZ2VuZ2FrdVwgOwor5YqD54S2ID4ga2FrdXplblwgOwor5Y2z5ZCfID4gc29rdWdpblwgOwor5Y2D5aerID4gc2VuaGltZVwgOwor5b+g5YukID4gY2h1dWtpblwgOwor5b+g5YuHID4gY2h1dXl1dVwgOwor5Ya36KaaID4gcmVpa2FrdVwgOwor6YCa566XID4gdHN1dXNhblwgOwor6YCG57iBID4gZ3lha3VlblwgOwor5Yid57SaID4gc2hva3l1dVwgOwor5q+S5oCnID4gZG9rdXNlaVwgOwor5beh6YGKID4ganVuJyd5dXVcIDsKK+W+k+WuuSA+IHNob3V5b3VcIDsKK+WNl+WbvSA+IG5hbmdva3VcIDsKK+W8t+aatCA+IGt5b3Vib3VcIDsKK+W5leiIjiA+IGJha3VzaGFcIDsKK+awt+WOnyA+IGh5b3VnZW5cIDsKK+W5s+e5lCA+IGhpcmFvcmlcIDsKK+W/nOWKmyA+IG91cnlva3VcIDsKK+WLneaVlyA+IHNob3VoYWlcIDsKK+axguWIkSA+IGt5dXVrZWlcIDsKK+W3u+iynSA+IG1ha2lnYWlcIDsKK+W8j+asoSA+IHNoaWtpamlcIDsKK+efs+advyA+IHNla2liYW5cIDsKK+WGmeixoSA+IHNoYXNob3VcIDsKK+aui+afsSA+IHphbmNodXVcIDsKK+efs+adkCA+IHNla2l6YWlcIDsKK+W+jOWuriA+IGtvdWt5dXVcIDsKK+mCpualvSA+IGhvdWdha3VcIDsKK+WJo+eOiSA+IGtlbmRhbWFcIDsKK+WMl+W2uiA+IGhva3VyZWlcIDsKK+W5tOe1piA+IG5lbmt5dXVcIDsKK+WFqOmHjyA+IHplbnJ5b3VcIDsKK+W+jOWtpiA+IGtvdWdha3VcIDsKK+mChOa1gSA+IGthbnJ5dXVcIDsKK+WNs+WIuyA+IHNva2tva3VcIDsKK+WHtuiBniA+IGt5b3VidW5cIDsKK+awkeWbvSA+IG1pbmtva3VcIDsKK+WFpemHkSA+IG55dXVraW5cIDsKK+WJm+eQgyA+IGdvdWt5dXVcIDsKK+WNiuWbvSA+IGhhbmdva3VcIDsKK+awuOWIpSA+IGVpYmV0c3VcIDsKK+mFt+S9vyA+IGtva3VzaGlcIDsKK+W/q+S9nCA+IGthaXNha3VcIDsKK+WNsOWItyA+IGluc2F0c3VcIDsKK+i/vee0jSA+IHRzdWlub3VcIDsKK+awt+WIgyA+IGh5b3VqaW5cIDsKK+WFremBkyA+IHJva3Vkb3VcIDsKK+WMl+WyuCA+IGhva3VnYW5cIDsKK+WJjeeUnyA+IHplbnNob3VcIDsKK+mAgeexjSA+IHNvdXNla2lcIDsKK+WIpeensCA+IGJlc3Nob3VcIDsKK+W6reeVqiA+IG5pd2FiYW5cIDsKK+i+suiWrCA+IG5vdXlha3VcIDsKK+i/keiHoyA+IGtpbnNoaW5cIDsKK+mBiueMnyA+IHl1dXJ5b3VcIDsKK+eZu+mMsiA+IHRvdXJva3VcIDsKK+WNoOWNnCA+IHNlbmJva3VcIDsKK+iRieaciCA+IGhhZHp1a2lcIDsKK+W3qOiziiA+IGt5b3pva3VcIDsKK+iPr+eHrSA+IGthc2hva3VcIDsKK+W9k+aDkSA+IHRvdXdha3VcIDsKK+W9q+W3pSA+IGNob3Vrb3VcIDsKK+WIhue0jSA+IGJ1bicnbm91XCA7CivliJ3nqYIgPiBoYXRzdWhvXCA7Civlv4Xli50gPiBoaXNzaG91XCA7Civnmb3pipEgPiBoYWt1c2VuXCA7CivlhajpgJ8gPiB6ZW5zb2t1XCA7CivlhaXpgbggPiBueXV1c2VuXCA7CivlhajpgJogPiB6ZW50c3V1XCA7Civnmb3pioUgPiBoYWt1ZG91XCA7Civnmb3pioAgPiBoYWt1Z2luXCA7CivlhaXpgZMgPiBueXV1ZG91XCA7Civpgqrmm7IgPiBqYWt5b2t1XCA7CivljZzljaAgPiBib2t1c2VuXCA7Civlt6Xos4MgPiBrb3VjaGluXCA7CivmsLflg48gPiBoeW91em91XCA7CivpgYrniacgPiB5dXVib2t1XCA7CivpgLHnlaogPiBzaHV1YmFuXCA7Civlv4PlirQgPiBzaGlucm91XCA7CivliJ3np4sgPiBzaG9zaHV1XCA7Civlub7nqIsgPiBpa3Vob2RvXCA7CivmrovmlbUgPiB6YW50ZWtpXCA7CivpgJrnoJQgPiB0c3V1a2VuXCA7CivljZTlkIwgPiBreW91ZG91XCA7CivlubPnrYkgPiBieW91ZG91XCA7CivpgY7nhrEgPiBrYW5ldHN1XCA7CivljbPlgKQgPiBzb2t1Y2hpXCA7CivpgJrnn6UgPiB0c3V1Y2hpXCA7CivnmYLppIogPiByeW91eW91XCA7CivlubTnq68gPiB0b3NoaWhhXCA7Civluq3nkIMgPiB0ZWlreXV1XCA7CivmronmlZkgPiBqdW5reW91XCA7CivmrYzmsqIgPiB1dGF6YXdhXCA7Civli4HmlbUgPiBrZWl0ZWtpXCA7Civlho3oqr8gPiBzYWljaG91XCA7Civlh53ohIIgPiBneW91c2hpXCA7Civlho3oqq0gPiBzYWlkb2t1XCA7CivmsYLkurogPiBreXV1amluXCA7Civlip/mpa0gPiBrb3VneW91XCA7CivoibLpu5IgPiBpcm9ndXJvXCA7CivljZfljJcgPiBuYW5ib2t1XCA7CivljZrlirQgPiBiYWt1cm91XCA7CivnoLTlsYAgPiBoYWt5b2t1XCA7CivljZjli50gPiB0YW5zaG91XCA7CivmraPmpa0gPiBzZWlneW91XCA7CivluK/oiq8gPiBvYmlzaGluXCA7CivljYrlkaggPiBoYW5zaHV1XCA7CivpgaHmupAgPiBzYWt1Z2VuXCA7CivlhajouqsgPiB6ZW5zaGluXCA7Civmr5LlrrMgPiBkb2t1Z2FpXCA7CivlhoXorIEgPiBuYWlldHN1XCA7CivlhoXoq74gPiBuYWlkYWt1XCA7Civlubjnpo8gPiBrb3VmdWt1XCA7Civli6TmgaogPiBraW5rYWt1XCA7Civlh7rnsr4gPiBzaHVzc2VpXCA7Civlvqnlkb0gPiBmdWt1bWVpXCA7Civoi6XpgKAgPiB3YWthem91XCA7CivluprnlLMgPiBrb3VzaGluXCA7Civnm7ToiKogPiBjaG9ra291XCA7CivlupfnlaogPiBtaXNlYmFuXCA7CivprY3prY4gPiBtb3VyeW91XCA7CivlhYnph48gPiBrb3VyeW91XCA7Civlu5PmuIUgPiBrYWt1c2VpXCA7Civpganms5UgPiB0ZWtpaG91XCA7CivlhKrplbcgPiB5dXVjaG91XCA7Civlv5nkuK0gPiBib3VjaHV1XCA7CivljZHliqMgPiBoaXJldHN1XCA7CivliKnnmbogPiByaWhhdHN1XCA7Civlvqnlj7cgPiBmdWt1Z291XCA7Civlv4Plg48gPiBzaGluem91XCA7CivpgKPnlKggPiByZW4nJ3lvdVwgOwor5rCX5YqbID4ga2lyeW9rdVwgOwor5rC35Lq6ID4gaHlvdWppblwgOwor5q615bmzID4gZGFuYmlyYVwgOwor5YWx6LKpID4ga3lvdWhhblwgOwor5YaF6Ki8ID4gbmFpc2hvdVwgOwor5YaF6Ki6ID4gbmFpc2hpblwgOwor5YmK54mHID4gc2FrdWhlblwgOwor5q2j5qC8ID4gc2Vpa2FrdVwgOwor5by35oW+ID4gZ291eW9rdVwgOwor5b6p5Y6fID4gZnVrdWdlblwgOwor55m66YCyID4gaGFzc2hpblwgOwor5byU5paHID4gY2hvdWJ1blwgOwor5YyX5aSpID4gaG9rdXRlblwgOwor5YyX5aSnID4gaG9rdWRhaVwgOwor5YWD6YeRID4gbW90b2tpblwgOwor5YaF6KeSID4gbmFpa2FrdVwgOwor6Iul6LypID4gamFrdWhhaVwgOwor55uK6JmrID4gZWtpY2h1dVwgOwor5b6z5YipID4gdG9ra3VyaVwgOwor5YuB5o23ID4ga2Vpc2hvdVwgOwor5b+F5L+uID4gaGlzc2h1dVwgOwor55uy6IW4ID4gbW91Y2hvdVwgOwor5b6z5YiGID4gdG9rdWJ1blwgOwor6JK45ZmoID4gbXVzaGlraVwgOwor5b6u5YqbID4gYmlyeW9rdVwgOwor5Yy/5ZCNID4gdG9rdW1laVwgOwor5bq154K5ID4gaW9yaXRlblwgOwor5bu25qOSID4gbm9iZWJvdVwgOwor5bi457+SID4gam91c2h1dVwgOwor5Yi255CDID4gc2Vpa3l1dVwgOwor5YiG56eSID4gZnVuYnlvdVwgOwor5q2T5qW9ID4ga2FucmFrdVwgOwor5rC05LitID4gc3VpY2h1dVwgOwor6YOo5bGAID4gYnVreW9rdVwgOwor5YeN6IKJID4gdG91bmlrdVwgOwor6YCa55SoID4gdHN1dXlvdVwgOwor6I2J6ImyID4ga3VzYWlyb1wgOwor5YyX5aKDID4gaG9ra3lvdVwgOwor6a2C6a2EID4ga29ucGFrdVwgOwor5b605YW1ID4gY2hvdWhlaVwgOwor6YWN5L+hID4gaGFpc2hpblwgOwor6YCX55WZID4gdG91cnl1dVwgOwor6YGp5q2jID4gdGVraXNlaVwgOwor5q2j5pydID4gc2VpY2hvdVwgOwor5q2j5pyUID4gc2Vpc2FrdVwgOwor5YWo6LG5ID4gemVucHlvdVwgOwor5YeE6IWVID4gc3Vnb3VkZVwgOwor5q2j5pyNID4gc2VpZnVrdVwgOwor5Y2U5YONID4ga3lvdWRvdVwgOwor5YWJ6YCfID4ga291c29rdVwgOwor5YuY5b+NID4ga2FuJyduaW5cIDsKK+WFiOmAsiA+IHNlbnNoaW5cIDsKK+WFiOmAsSA+IHNlbnNodXVcIDsKK+WFpeiyoiA+IG55dXVrb3VcIDsKK+mFkuS7oyA+IHNha2FkYWlcIDsKK+eZvei6qyA+IHNoaXJvbWlcIDsKK+W3q+ihkyA+IGZ1anV0c3VcIDsKK+mAn+eQgyA+IHNva2t5dXVcIDsKK+i/lOe0jSA+IGhlbicnbm91XCA7CivlvqnliLsgPiBmdWtrb2t1XCA7CivlhbHorIAgPiBreW91Ym91XCA7Civou73pnIcgPiBrZWlzaGluXCA7CivojZLogp0gPiBhcmFnaW1vXCA7Civlh7rnqYIgPiBzaHVzc3VpXCA7CivlvJXmj5sgPiBoaWtpa2FlXCA7CivovLvovLMgPiBmdWt1c291XCA7CivmrLLmsYIgPiB5b2treXV1XCA7Civlu7bmnb8gPiBub2JlaXRhXCA7CivnnJ/nqbogPiBzaGlua3V1XCA7CivnnLznm64gPiBnYW5tb2t1XCA7CivlvJXmjqUgPiBpbnNldHN1XCA7CivoibLprZQgPiBzaGlraW1hXCA7Civlv4XkuK0gPiBoaXRjaHV1XCA7CivovKrpg60gPiByaW5rYWt1XCA7CivljZjkvZwgPiB0YW5zYWt1XCA7CivnnIHnt5ogPiBzaG91c2VuXCA7CivlvrTlgJkgPiBjaG91a291XCA7CivlvL7luZUgPiBkYW5tYWt1XCA7CivlubTnm4ogPiBuZW4nJ2VraVwgOwor5b6p5YWaID4gZnVrdXRvdVwgOwor5YWJ6Lu4ID4ga291amlrdVwgOwor5bu/5pelID4gaGF0c3VrYVwgOwor5byx5b+XID4gamFrdXNoaVwgOwor5YyX5Zu9ID4gaG9ra29rdVwgOwor5by35byTID4gZ291a3l1dVwgOwor5b6p5YWDID4gZnVrdWdlblwgOwor5by35byBID4ga3lvdWJlblwgOwor6YKE5pqmID4ga2FucmVraVwgOwor5Yqx5oyvID4gcmVpc2hpblwgOwor6L6e6ImyID4gamlzaG9rdVwgOwor5Ye656S+ID4gc2h1c3NoYVwgOwor6I2J6IKlID4ga3VzYWdvZVwgOwor5Yip546HID4gcmlyaXRzdVwgOwor55m66LazID4gaG9zc29rdVwgOwor5YWs6KmVID4ga291aHlvdVwgOwor5q2j5pWZID4gc2Vpa3lvdVwgOwor5YWs6Ki8ID4ga291c2hvdVwgOwor5Y2B5YWtID4ganV1cm9rdVwgOwor5Yil54+NID4gYmV0Y2hpblwgOwor5Y2U5LyaID4ga3lvdWthaVwgOwor5YWI6Lm0ID4gc2Vuc2h1dVwgOwor5Yy65YilID4ga3ViZXRzdVwgOwor5Y2D5YSEID4gc2VuJydva3VcIDsKK+awl+S9jSA+IGtpZ3VyYWlcIDsKK+W8seW8nyA+IGpha3V0ZWlcIDsKK+WFseilnyA+IHRvbW9lcmlcIDsKK+ecvOeXhSA+IGdhbmJ5b3VcIDsKK+WFreinkiA+IHJva2tha3VcIDsKK+WNkuS8jSA+IHNvdHN1Z29cIDsKK+awkeS/lyA+IG1pbnpva3VcIDsKK+aur+WuriA+IGhpbmt5dXVcIDsKK+eglOWtpiA+IGtlbmdha3VcIDsKK+aui+W/tSA+IHphbicnbmVuXCA7CivojbfnqY0gPiBuaWR6dW1pXCA7CivljZfkuK0gPiBuYW5jaHV1XCA7CivlhrfogokgPiByZWluaWt1XCA7CivokL3miYsgPiByYWt1c2h1XCA7Civnm7jntpogPiBzb3V6b2t1XCA7Civmrovlv40gPiB6YW4nJ25pblwgOwor5rCX5LuYID4ga2lkenVrZVwgOwor5YWl6KmmID4gbnl1dXNoaVwgOwor5q6L5b+DID4gemFuc2hpblwgOwor5Ym15qWtID4gc291Z3lvdVwgOwor5Yeh562WID4gYm9uc2FrdVwgOwor5YuJ5by3ID4gYmVua3lvdVwgOwor5YWx6KOPID4gdG9tb3VyYVwgOwor5b6M5Y6EID4gYXRveWFrdVwgOwor6JC95oiQID4gcmFrdXNlaVwgOwor5YWo6KeSID4gemVua2FrdVwgOwor5byx5bm0ID4gamFrdW5lblwgOwor5Yun5a2mID4ga2FuZ2FrdVwgOwor5Y2K5L2cID4gaGFuc2FrdVwgOwor5b6X5YiGID4gdG9rdWJ1blwgOwor6LyJ6YyyID4gc2Fpcm9rdVwgOwor5bq25rWBID4gc2hvcnl1dVwgOwor5q205oimID4gcmVraXNlblwgOwor5bed6J2mID4ga2F3YWViaVwgOwor5q2M5puyID4ga2FreW9rdVwgOwor5b6F5ZCIID4gbWFjaGlhaVwgOwor5biw57WQID4ga2lrZXRzdVwgOwor55+z5bqtID4gc2VraXRlaVwgOwor5Y2S5LitID4gc290Y2h1dVwgOwor5Y2T5LiKID4gdGFrdWpvdVwgOwor5YmK5ribID4gc2FrdWdlblwgOwor5YWF6LazID4ganV1c29rdVwgOwor5Y2K5LyRID4gaGFua3l1dVwgOwor6Iy26IW5ID4gY2hhYmFyYVwgOwor5YWN6LKsID4gbWVuc2VraVwgOwor5Yy55YSUID4gaGl0Y2h1dVwgOwor6YGp5qC8ID4gdGVra2FrdVwgOwor6I2S57iEID4gYXJhbmF3YVwgOwor5YO76ZqFID4gaGVraWd1dVwgOwor5YqH5pqRID4gZ2VraXNob1wgOwor55u057WMID4gY2hva2tlaVwgOwor55uu57iBID4gbWFidWNoaVwgOwor5YO76ZmsID4gaGVraXN1dVwgOwor6YGN5q20ID4gaGVucmVraVwgOwor5biv57SZID4gb2JpZ2FtaVwgOwor5bqD54utID4ga291a3lvdVwgOwor5Yi65r+AID4gc2hpZ2VraVwgOwor5bmy55OiID4ga2FucHlvdVwgOwor6YSZ5YqjID4gaGlyZXRzdVwgOwor6L6e6IG3ID4gamlzaG9rdVwgOwor5YSf6YeRID4gc2hvdWtpblwgOwor5rCP5Lq6ID4gdWppaGl0b1wgOwor55u057O7ID4gY2hva2tlaVwgOwor55uX6IG0ID4gdG91Y2hvdVwgOwor5YWs6KGoID4ga291aHlvdVwgOwor55+l5b6zID4gY2hpdG9rdVwgOwor6YGK5q20ID4geXV1cmVraVwgOwor5YWs6KGGID4ga291c2h1dVwgOwor5YWI6LKgID4gc2VubWFrZVwgOwor55+l5b6XID4gY2hpdG9rdVwgOwor55y855CDID4gZ2Fua3l1dVwgOwor5bi956ugID4gYm91c2hvdVwgOwor6L+R56ewID4ga2luc2hvdVwgOwor5b6p5LuHID4gZnVra3l1dVwgOwor55m66K2wID4gaGF0c3VnaVwgOwor5Ye655ujID4gc2h1a2thblwgOwor6YCB55CDID4gc291a3l1dVwgOwor6Imv6aKoID4gcnlvdWZ1dVwgOwor5YiG55WZID4gYnVucnl1dVwgOwor5YuY5a+pID4ga2Fuc2hpblwgOwor6YGp5p2QID4gdGVraXphaVwgOwor6YKA5pKDID4geW91Z2VraVwgOwor6YCj5r+BID4gcmVuZGFrdVwgOwor5q2/5b6MID4gYm90c3Vnb1wgOwor55yf55u4ID4gc2hpbnNvdVwgOwor55yf55u0ID4gbWFzc3VndVwgOwor5b255ZCNID4geWFrdW1laVwgOwor5b6T5YOVID4ganV1Ym9rdVwgOwor6YGT5qW9ID4gZG91cmFrdVwgOwor556s5patID4gc2h1bmRhblwgOwor55m66KqeID4gaGF0c3Vnb1wgOwor5Yun5aWoID4ga2Fuc2hvdVwgOwor5Yqb5oqVID4gcmlraXRvdVwgOwor5YiR542EID4ga2VpZ29rdVwgOwor55m+6KiIID4gaHlha2tlaVwgOwor5YSf6YKEID4gc2hvdWthblwgOwor5Y2D5LihID4gc2VucnlvdVwgOwor5b6M5YWIID4gYXRvc2FraVwgOwor5Y2B5LmdID4ganV1a3l1dVwgOwor55m66KmxID4gaGF0c3V3YVwgOwor6LyD6YePID4ga291cnlvdVwgOwor5YyX5Y2KID4gaG9rdWhhblwgOwor5buD5qWtID4gaGFpZ3lvdVwgOwor55m66Ki7ID4gaGF0Y2h1dVwgOwor5Y2B5LihID4ganV1cnlvdVwgOwor5Yqb5oimID4gcmlraXNlblwgOwor5Y2B5LiDID4ganV1bmFuYVwgOwor5Y2B5LiAID4ganV1aWNoaVwgOwor5byV5b2TID4gaGlraWF0ZVwgOwor6YC45rCRID4gaXRzdW1pblwgOwor5b6L5YSAID4gcmljaGlnaVwgOwor5YmN5q20ID4gemVucmVraVwgOwor5Ymv5pysID4gZnVrdWhvblwgOwor6Imx6ZujID4ga2FuJyduYW5cIDsKK+W8j+W+riA+IHNoaWtpYmlcIDsKK+mBiualvSA+IHl1dXJha3VcIDsKK+i7vemHjyA+IGtlaXJ5b3VcIDsKK+i7vemHjSA+IGtlaWNob3VcIDsKK+ebrueulyA+IG1va3VzYW5cIDsKK+WJr+abuCA+IGZ1a3VzaG9cIDsKK+WHuueUoyA+IHNodXNzYW5cIDsKK+WHuueUnyA+IHNodXNzZWlcIDsKK+eZuuimmiA+IGhha2tha3VcIDsKK+mAsuawtCA+IHNoaW5zdWlcIDsKK+assuacmyA+IHlva3Vib3VcIDsKK+WLh+WwhiA+IHl1dXNob3VcIDsKK+ebn+e0hCA+IG1laXlha3VcIDsKK+ebuOensCA+IHNvdXNob3VcIDsKK+W9vOWHpiA+IGthc2hpa29cIDsKK+efruWwjyA+IHdhaXNob3VcIDsKK+edq+avmyA+IG1hdHN1Z2VcIDsKK+mCuOWuhSA+IHRlaXRha3VcIDsKK+efreWwjyA+IHRhbnNob3VcIDsKK+ebruerryA+IG1laGFzaGlcIDsKK+WLieWtpiA+IGJlbmdha3VcIDsKK+mvqOiCiSA+IGdlaW5pa3VcIDsKK+iMieiOiSA+IG1hdHN1cmlcIDsKK+WEqui2iiA+IHl1dWV0c3VcIDsKK+eZvuihjCA+IGh5YWtrb3VcIDsKK+i/keecvCA+IGNoaWthbWVcIDsKK+iPjOavkiA+IGtpbmRva3VcIDsKK+attOW5tCA+IHJla2luZW5cIDsKK+W8k+W4qyA+IHl1bWlzaGlcIDsKK+WFieimmiA+IGtvdWtha3VcIDsKK+WFiOimmiA+IHNlbmtha3VcIDsKK+W+jOS9nCA+IGF0b3Nha3VcIDsKK+W3qOiItiA+IGt5b2hha3VcIDsKK+W6lea1gSA+IHRlaXJ5dXVcIDsKK+i/keebriA+IGNoaWthbWVcIDsKK+eZuuihqCA+IGhhcHB5b3VcIDsKK+mBuOaKniA+IHNlbnRha3VcIDsKK+asoOagvCA+IGtla2tha3VcIDsKK+WFseiRlyA+IGt5b3VjaG9cIDsKK+W6g+a8oCA+IGtvdWJha3VcIDsKK+iNieesmyA+IGt1c2FidWVcIDsKK+WLneWgsSA+IHNob3Vob3VcIDsKK+WInea9riA+IHNob2Nob3VcIDsKK+WKqeW5syA+IHN1a2ViZWlcIDsKK+W8t+WkpyA+IGt5b3VkYWlcIDsKK+i8quiqrSA+IHJpbmRva3VcIDsKK+efpeWwhiA+IGNoaXNob3VcIDsKK+WGheiGnCA+IG5haW1ha3VcIDsKK+W8t+WjriA+IGt5b3Vzb3VcIDsKK+W9ueWDpyA+IHlha3Vzb3VcIDsKK+WKh+aIpiA+IGdla2lzZW5cIDsKK+avkuWIgyA+IGRva3VqaW5cIDsKK+eZveidiyA+IGhha3Vyb3VcIDsKK+W4hue2sSA+IGhvZHp1bmFcIDsKK+i7jemVtyA+IGd1bmNob3VcIDsKK+WKm+W9uSA+IHJpa2lla2lcIDsKK+WGt+eskSA+IHJlaXNob3VcIDsKK+iMtueypSA+IGNoYWdheXVcIDsKK+W7u+W/gyA+IGthaXNoaW5cIDsKK+eci+eXhSA+IGthbmJ5b3VcIDsKK+ebruekvCA+IG1va3VyZWlcIDsKK+i8uOihgCA+IHl1a2V0c3VcIDsKK+WLneWcsCA+IHNob3VjaGlcIDsKK+WInea5ryA+IGhhdHN1eXVcIDsKK+WFh+ihjCA+IGt5b3Vrb3VcIDsKK+WHtueMmyA+IGt5b3Vtb3VcIDsKK+iJpumVtyA+IGthbmNob3VcIDsKK+WHjeefsyA+IHRvdXNla2lcIDsKK+WItuassiA+IHNlaXlva3VcIDsKK+W9ouWLnSA+IGtlaXNob3VcIDsKK+WHuueJiCA+IHNodXBwYW5cIDsKK+W8n+WrgSA+IG90b3lvbWVcIDsKK+WHtueKtiA+IGt5b3Vqb3VcIDsKK+aouuiJsiA+IGthYmFpcm9cIDsKK+mAgOa9riA+IHRhaWNob3VcIDsKK+egguWcsCA+IHN1bmFjaGlcIDsKK+mBk+aVmSA+IGRvdWt5b3VcIDsKK+mBjuaXpSA+IGthaml0c3VcIDsKK+mDt+WFmiA+IGt5b3V0b3VcIDsKK+i7oumHnSA+IHRlbnNoaW5cIDsKK+iMtueusSA+IGNoYWJha29cIDsKK+W4sOedgCA+IGtpY2hha3VcIDsKK+mBqeaJgCA+IHRla2lzaG9cIDsKK+WDu+mCkSA+IGhla2l5dXVcIDsKK+atjuaBryA+IHRhbnNva3VcIDsKK+iLm+iZkCA+IGthZ3lha3VcIDsKK+WGmee1jCA+IHNoYWt5b3VcIDsKK+atk+W/gyA+IGthbnNoaW5cIDsKK+W9q+WDjyA+IGNob3V6b3VcIDsKK+efs+WhlCA+IHNla2l0b3VcIDsKK+i/lOeQgyA+IGhlbmt5dXVcIDsKK+efs+WhgCA+IGlzaGliZWlcIDsKK+W8n+WnqyA+IG90b2hpbWVcIDsKK+WIqeauliA+IHJpc2hva3VcIDsKK+W9ueS6uiA+IHlha3VuaW5cIDsKK+W4r+eariA+IG9iaWthd2FcIDsKK+i+seefpSA+IGpva3VjaGlcIDsKK+WLp+WRiiA+IGthbmtva3VcIDsKK+ebsuebriA+IG1vdW1va3VcIDsKK+eXm+miqCA+IHRzdXVmdXVcIDsKK+mAuOadkCA+IGl0c3V6YWlcIDsKK+WHuueCrSA+IHNodXR0YW5cIDsKK+W8seWbvSA+IGpha2tva3VcIDsKK+W5uea1gSA+IGthbnJ5dXVcIDsKK+atr+WtpiA+IHNoaWdha3VcIDsKK+W5sua4iSA+IGthbnNob3VcIDsKK+iNt+eJqSA+IG5pbW90c3VcIDsKK+WMl+S4iiA+IGhva3Vqb3VcIDsKK+WJr+aJiyA+IGZ1a3VzaHVcIDsKK+WJveaCjSA+IGh5b3VrYW5cIDsKK+iJsumHjCA+IGlyb3phdG9cIDsKK+i7oumAsiA+IHRlbnNoaW5cIDsKK+ebpOefsyA+IGJhbmpha3VcIDsKK+i+suebuCA+IG5vdXNob3VcIDsKK+mBiuaSgyA+IHl1dWdla2lcIDsKK+WFpeiIuSA+IG55dXVzZW5cIDsKK+WIhua6nCA+IGJ1bnJ5dXVcIDsKK+WFpeiIjiA+IG55dXVzaGFcIDsKK+mAkOasoSA+IGNoaWt1amlcIDsKK+i+uueWhiA+IGhlbmt5b3VcIDsKK+WJjeaWuSA+IG1hZWthdGFcIDsKK+eZveiPnCA+IGhha3VzYWlcIDsKK+WJsuaEmyA+IGthdHN1YWlcIDsKK+mBqeaApyA+IHRla2lzZWlcIDsKK+ebo+edoyA+IGthbnRva3VcIDsKK+i6gemssSA+IHNvdXV0c3VcIDsKK+eglOWJiiA+IGtlbnNha3VcIDsKK+alvemaiiA+IGdha3V0YWlcIDsKK+ato+WuoiA+IHNlaWtha3VcIDsKK+auieWbvSA+IGp1bmtva3VcIDsKK+WFqOiDvSA+IHplbicnbm91XCA7CivpgIbmr5QgPiBneWFrdWhpXCA7CivlhqXnpo8gPiBtZWlmdWt1XCA7CivnnabmnIggPiBtdXRzdWtpXCA7CivpgLjmlocgPiBpdHN1YnVuXCA7CivliLvmnKwgPiBrb2t1aG9uXCA7CivmraPlrZAgPiBzaG91c2hpXCA7Civlub3mrJ0gPiB5dXV1dHN1XCA7CivmrrrlgrcgPiBzYXNzaG91XCA7CivlhoXntIQgPiBuYWl5YWt1XCA7CivlvLflkbMgPiB0c3V5b21pXCA7CivliaPmiJ8gPiBrZW5nZWtpXCA7Civov5TnhacgPiBoZW5zaG91XCA7CivoiYfplbcgPiB0ZWljaG91XCA7CivpganlvZMgPiB0ZWtpdG91XCA7Civou6LouqsgPiB0ZW5zaGluXCA7CivliIbmtYEgPiBidW5yeXV1XCA7CivmqKnog70gPiBrZW4nJ25vdVwgOwor5Ye25ryiID4ga3lvdWthblwgOwor5q2j5auhID4gc2VpdGVraVwgOwor5qyy5oOFID4geW9rdWpvdVwgOwor5bqn5pW3ID4gemFzaGlraVwgOwor5qW86ZajID4gcm91a2FrdVwgOwor5YiG5rOoID4gYnVuY2h1dVwgOwor5YyF5LiBID4gaG91Y2hvdVwgOwor5Yi25pyNID4gc2VpZnVrdVwgOwor55m66Iq9ID4gaGF0c3VnYVwgOwor6YCy5pWwID4gc2hpbnN1dVwgOwor5Ye65rivID4gc2h1a2tvdVwgOwor55m+6IisID4gaHlhcHBhblwgOwor5Ye65rigID4gc2h1a2t5b1wgOwor6YCy5pS7ID4gc2hpbmtvdVwgOwor6JC95Z+OID4gcmFrdWpvdVwgOwor5Ymy5b2TID4gd2FyaWF0ZVwgOwor5qyy5b+1ID4geW9rdW5lblwgOwor5qif6ISzID4gc2hvdW5vdVwgOwor6L+R54GrID4gY2hpa2FiaVwgOwor5Yil5qC8ID4gYmVra2FrdVwgOwor55a+6aKoID4gc2hpcHB1dVwgOwor6JC95ZywID4gcmFrdWNoaVwgOwor5YWx57eoID4ga3lvdWhlblwgOwor5q2k5aW0ID4ga295YXRzdVwgOwor5by35YuiID4ga3lvdXNlaVwgOwor55uX55mWID4gdG91aGVraVwgOwor6Ii56ZW3ID4gc2VuY2hvdVwgOwor56CU5L+uID4ga2Vuc2h1dVwgOwor5Yi35pawID4gc2Fzc2hpblwgOwor5q6/5LitID4gZGVuY2h1dVwgOwor5by35YqbID4gZ291cmlraVwgOwor5bqP5puyID4gam9reW9rdVwgOwor5bqK5p2/ID4geXVrYWl0YVwgOwor6YCa5pyJID4gdHN1dXl1dVwgOwor5Ymb5oSOID4gZ291ZnVrdVwgOwor5YW157OnID4gaHlvdXJvdVwgOwor6YG35a6iID4gc2Vua2FrdVwgOwor5by35YmbID4ga3lvdWdvdVwgOwor55uG55+zID4gYm9uc2VraVwgOwor5qyj5oKmID4ga2luZXRzdVwgOwor5by35Yi2ID4ga3lvdXNlaVwgOwor5YW157KuID4gaHlvdXJvdVwgOwor6YGT5b+DID4gZG91c2hpblwgOwor5YW457GNID4gdGVuc2VraVwgOwor6YGT5b6zID4gZG91dG9rdVwgOwor55eF6ZujID4gYnlvdW5hblwgOwor5Yqb5aOrID4gcmlraXNoaVwgOwor6LuK6LybID4gc2hhcnlvdVwgOwor6LuK6LyMID4gc2hhcnlvdVwgOwor5YW157GNID4gaGVpc2VraVwgOwor5YqD5a6aID4ga2FrdXRlaVwgOwor6YCf5patID4gc29rdWRhblwgOwor6LuK6Lu4ID4gc2hhamlrdVwgOwor5YaF56mNID4gbmFpc2VraVwgOwor6YCP5p6QID4gdG91c2VraVwgOwor5Yag55yBID4ga2Fuc2hvdVwgOwor5Ymj5b2iID4ga2VuZ2F0YVwgOwor6I2S54mpID4gYXJhbW9ub1wgOwor55uy54iGID4gbW91YmFrdVwgOwor5YO76KuWID4gaGVraXJvblwgOwor5by35YW1ID4ga3lvdWhlaVwgOwor5YWs57SEID4ga291eWFrdVwgOwor5q615LiYID4gZGFua3l1dVwgOwor6L6y54mnID4gbm91Ym9rdVwgOwor5YWl57a/ID4gaXJld2F0YVwgOwor5qiq57eaID4geW9rb3NlblwgOwor55m95769ID4gc2hpcmFoYVwgOwor5bO76Zm6ID4gc2h1bmtlblwgOwor5ber56WdID4gZnVzaHVrdVwgOwor6Lu46KOFID4gamlrdXNvdVwgOwor55uj542EID4ga2FuZ29rdVwgOwor5Yil5pmCID4gYmV0c3VqaVwgOwor5byU5ZWPID4gY2hvdW1vblwgOwor5YuF5YuYID4gY2hva2thblwgOwor5YWo57SaID4gemVua3l1dVwgOwor5YaF56aPID4gbmFpZnVrdVwgOwor5YaZ55yfID4gc2hhc2hpblwgOwor5YWo57SNID4gemVuJydub3VcIDsKK+WHnea7niA+IGd5b3V0YWlcIDsKK+mBk+W6iiA+IGRvdXNob3VcIDsKK+auiuWLnSA+IHNodXNob3VcIDsKK+i7jei2syA+IGd1bnNva3VcIDsKK+mrmOmhjSA+IGtvdWdha3VcIDsKK+WDu+iogCA+IGhla2lnZW5cIDsKK+WJo+W5lSA+IGtlbm1ha3VcIDsKK+WHtuatsyA+IGt5b3VzYWlcIDsKK+WJm+W8tyA+IGdvdWt5b3VcIDsKK+WIhualrSA+IGJ1bmd5b3VcIDsKK+ecn+atoyA+IHNoaW5zZWlcIDsKK+i7ouiqvyA+IHRlbmNob3VcIDsKK+atjOWnqyA+IHV0YWhpbWVcIDsKK+mBoOWxsSA+IHRvb3lhbWFcIDsKK+aoquezuCA+IHlva29pdG9cIDsKK+asoeW8jyA+IGppc2hpa2lcIDsKK+W8t+WBpSA+IGt5b3VrZW5cIDsKK+mBiuW8iyA+IHl1dXlva3VcIDsKK+mBuuWksSA+IGlzaGl0c3VcIDsKK+mBuOWlqCA+IHNlbnNob3VcIDsKK+WDu+imiyA+IGhla2lrZW5cIDsKK+iKseiRtSA+IGhhbmFhb2lcIDsKK+iQveWRvSA+IHJha3VtZWlcIDsKK+mBiuW7kyA+IHl1dWtha3VcIDsKK+i7n+iqvyA+IG5hbmNob3VcIDsKK+aoueeriyA+IGp1cml0c3VcIDsKK+mtlOihkyA+IG1hanV0c3VcIDsKK+WHoea1gSA+IGJvbnJ5dXVcIDsKK+W4gueUuiA+IHNoaWNob3VcIDsKK+iIjOmfsyA+IHpldHN1b25cIDsKK+WIneaXpSA+IGhhdHN1aGlcIDsKK+W8leWPlyA+IGhpa2l1a2VcIDsKK+WKh+WkiSA+IGdla2loZW5cIDsKK+W7uuWbvSA+IGtlbmtva3VcIDsKK+efreWGiiA+IHRhbnpha3VcIDsKK+efs+WDjyA+IHNla2l6b3VcIDsKK+edo+aIpiA+IHRva3VzZW5cIDsKK+WIuuaInyA+IHNoaWdla2lcIDsKK+ecuuacmyA+IGNob3Vib3VcIDsKK+WKh+WjhyA+IGdla2lkYW5cIDsKK+i/keazgSA+IGtpbmt5b3VcIDsKK+asoOW4rSA+IGtlc3Nla2lcIDsKK+W3qOefsyA+IGt5b3Nla2lcIDsKK+WJjeW+tCA+IHplbmNob3VcIDsKK+attOWPsiA+IHJla2lzaGlcIDsKK+eZvee3miA+IGhha3VzZW5cIDsKK+W5s+acjSA+IGhlaWZ1a3VcIDsKK+i7ouimhiA+IHRlbnB1a3VcIDsKK+apn+eVpSA+IGtpcnlha3VcIDsKK+WKh+WgtCA+IGdla2lqb3VcIDsKK+i6q+i/kSA+IG1pZGppa2FcIDsKK+WEquiJryA+IHl1dXJ5b3VcIDsKK+mAhuaXhSA+IGdla2lyeW9cIDsKK+i6q+i+uiA+IHNoaW5wZW5cIDsKK+WIhuaekCA+IGJ1bnNla2lcIDsKK+W8seS9kyA+IGpha3V0YWlcIDsKK+WHuuajuiA+IHNodWtrYW5cIDsKK+eZvee0mSA+IGhha3VzaGlcIDsKK+WFmuexjSA+IHRvdXNla2lcIDsKK+aoquesmyA+IHlva29idWVcIDsKK+eZuue1piA+IGhha2t5dXVcIDsKK+i7veiWhCA+IGtlaWhha3VcIDsKK+W8leWKmyA+IGlucnlva3VcIDsKK+WGheebuCA+IG5haXNob3VcIDsKK+WFrOensCA+IGtvdXNob3VcIDsKK+WGhuebhiA+IG1hcnVib25cIDsKK+iRl+S9nCA+IGNob3Nha3VcIDsKK+eXqei6qyA+IHNvdXNoaW5cIDsKK+iKseiJsiA+IGhhbmFpcm9cIDsKK+mAn+aIkCA+IHNva3VzZWlcIDsKK+mrmOmWoyA+IGtvdWtha3VcIDsKK+W3puebtCA+IHNhY2hva3VcIDsKK+WJjeW5tCA+IHplbicnbmVuXCA7CivpgIHmlpkgPiBzb3VyeW91XCA7CivpsZfmnKggPiByaW5ib2t1XCA7Civnmb3nsokgPiBvc2hpcm9pXCA7CivlhoXnmoQgPiBuYWl0ZWtpXCA7Civoi6bnr4AgPiBrdXNldHN1XCA7Civnmb3nsbMgPiBoYWt1bWFpXCA7Civnn63kv6EgPiB0YW5zaGluXCA7Civoj6/lrp8gPiBrYWppdHN1XCA7CivmqKrnqbQgPiB5b2tvYW5hXCA7CivoiIjpmoYgPiBrb3VyeXV1XCA7CivmpbXpgZMgPiBnb2t1ZG91XCA7Civoia/oqIggPiByeW91a2VpXCA7CivnnLfml48gPiBrZW56b2t1XCA7CivpgZPlraYgPiBkb3VnYWt1XCA7CivlgbTpnaIgPiBzb2t1bWVuXCA7Civlh7rmoKEgPiBzaHVra291XCA7CivluaPmnZ8gPiBoZWlzb2t1XCA7Civliqnli6IgPiBzdWtlemVpXCA7Civlip/lkI0gPiBrb3VteW91XCA7CivoiYfouqsgPiB0ZWlzaGluXCA7CivpgY7lr4YgPiBrYW1pdHN1XCA7Civlioflm6MgPiBnZWtpZGFuXCA7CivliqrlipsgPiBkb3J5b2t1XCA7Civluq3luKsgPiBuaXdhc2hpXCA7Civnn7Pkuq0gPiBzZWtpdGVpXCA7CivpqqjpqrwgPiBrb2trYWt1XCA7CivliqnlipsgPiBqb3J5b2t1XCA7Civlu5/loIIgPiBieW91ZG91XCA7Civov73mlL4gPiB0c3VpaG91XCA7Civls6HplpMgPiBreW91a2FuXCA7CivojZLmtrwgPiBrb3VyeW91XCA7CivmrbvlgrcgPiBzaGlzaG91XCA7CivpgYrlrqIgPiB5dXVrYWt1XCA7CivlhaXnpL4gPiBueXV1c2hhXCA7CivmqYvnlZQgPiBreW91aGFuXCA7CivpgYrlraYgPiB5dXVnYWt1XCA7CivmrbPlhaUgPiBzYWlueXV1XCA7CivlhoXnlLMgPiBuYWlzaGluXCA7Civps6nlkIggPiBreXV1Z291XCA7CivmrKDlrZcgPiBrZXRzdWppXCA7CivmraPljJcgPiBzZWlob2t1XCA7Civlgrfot6EgPiBraXp1YXRvXCA7CivmrablipsgPiBidXJ5b2t1XCA7CivpganlnLAgPiB0ZWtpY2hpXCA7Civlip/lipsgPiBrb3VyaWtpXCA7CivojZLms6IgPiBhcmFuYW1pXCA7Civov5Hmpa0gPiBraW5neW91XCA7CivnnJ/mm7ggPiBzaGluc2hvXCA7CivoiLbovIkgPiBoYWt1c2FpXCA7CivlurXlrqQgPiBhbmppdHN1XCA7Civlh7bmmrQgPiBreW91Ym91XCA7CivlhbHnm4ogPiBreW91ZWtpXCA7CivmraPlia8gPiBzZWlmdWt1XCA7CivpgJrmgKcgPiB0c3V1c2VpXCA7CivmraPliYcgPiBzZWlzb2t1XCA7CivliY3lr6kgPiB6ZW5zaGluXCA7CivprLHooYAgPiB1a2tldHN1XCA7CivlhbznlKggPiBrZW4nJ3lvdVwgOwor5Yq05L2cID4gcm91c2FrdVwgOwor6YCa5b+1ID4gdHN1dW5lblwgOwor5YeL5q6LID4gY2hvdXphblwgOwor5Ya35ra8ID4gcmVpcnlvdVwgOwor6Lu96IifID4ga2Vpc2h1dVwgOwor6JC95L2TID4gcmFrdXRhaVwgOwor55qE56K6ID4gdGVra2FrdVwgOwor6YCj5bm0ID4gcmVuJyduZW5cIDsKK+WIh+aPmyA+IGtpcmlrYWVcIDsKK+eXlei3oSA+IGtvbnNla2lcIDsKK+W5suaLkyA+IGthbnRha3VcIDsKK+atu+S6uiA+IHNoaWJpdG9cIDsKK+WFrOeahCA+IGtvdXRla2lcIDsKK+W7uuWJjSA+IHRhdGVtYWVcIDsKK+WIh+aOmyA+IGtpa2tha2VcIDsKK+mAsuWxlSA+IHNoaW50ZW5cIDsKK+asoOWmgiA+IGtldHN1am9cIDsKK+mqqOmggiA+IGtvdGNob3VcIDsKK+aoquedgCA+IG91Y2hha3VcIDsKK+WIhuaOjCA+IGJ1bnNob3VcIDsKK+W8geWEnyA+IGJlbnNob3VcIDsKK+WIkeaIriA+IGtlaXJpa3VcIDsKK+mAmuW8iiA+IHRzdXVoZWlcIDsKK+eZuuelpSA+IGhhc3Nob3VcIDsKK+mAmuW8gSA+IHRzdXViZW5cIDsKK+attOS8nSA+IHJla2lkZW5cIDsKK+W5veaEgSA+IHl1dXNodXVcIDsKK+iQveS6uiA+IG9jaHV1ZG9cIDsKK+WFpeeboyA+IG55dXVrYW5cIDsKK+atu+S4rSA+IHNoaWNodXVcIDsKK+attOS7uyA+IHJla2luaW5cIDsKK+WIpeW+jCA+IGJldHN1Z29cIDsKK+attOS7oyA+IHJla2lkYWlcIDsKK+attOS7lSA+IHJla2lzaGlcIDsKK+WFseeUqCA+IGt5b3V5b3VcIDsKK+alteiypyA+IGdva3VoaW5cIDsKK+WFseeUoyA+IGt5b3VzYW5cIDsKK+WFseeUnyA+IGt5b3VzZWlcIDsKK+aoqeebiiA+IGtlbicnZWtpXCA7Civlubvmg5EgPiBnZW53YWt1XCA7Civou6LokL0gPiB0ZW5yYWt1XCA7CivluZXmlL8gPiBiYWt1c2VpXCA7CivnnIzmnIkgPiBrZW4nJ3l1dVwgOwor6L+95oeQID4gdHN1aWthaVwgOwor6a2a6IW5ID4gZ3lvZnVrdVwgOwor6YCa5bi4ID4gdHN1dWpvdVwgOwor6L+95oa2ID4gdHN1aW9rdVwgOwor55ub5rOBID4gc2Vpa3lvdVwgOwor5Yid5b+DID4gc2hvc2hpblwgOwor6LqK6LqHID4gY2h1dWNob1wgOwor5bed5426ID4ga2F3YXVzb1wgOwor6ay86JOuID4gb25pYmFzdVwgOwor55yf5pGvID4gc2hpbnNoaVwgOwor55qG55uuID4ga2FpbW9rdVwgOwor55m956CCID4gaGFrdXNoYVwgOwor6YCa5be7ID4gdHN1dWthblwgOwor5q205LiWID4gcmVraXNoaVwgOwor5qaC6KmVID4gZ2FpaHlvdVwgOwor5byL5Lq6ID4geW9rdWppblwgOwor6Iiq6LehID4ga291c2VraVwgOwor5Yed5pybID4gZ3lvdWJvdVwgOwor5YK+6KeSID4ga2Vpa2FrdVwgOwor5YW4542EID4gdGVuZ29rdVwgOwor6a+b54S8ID4gdGFpeWFraVwgOwor6YGp5ZCIID4gdGVraWdvdVwgOwor5YqH5YmkID4gZ2VraXphaVwgOwor5Yil5bitID4gYmVzc2VraVwgOwor5YWD56aEID4gZ2Vucm9rdVwgOwor6L+95oOzID4gdHN1aXNvdVwgOwor5YK+6KaGID4ga2VpZnVrdVwgOwor6a2a6IKJID4gZ3lvbmlrdVwgOwor6L+95oK8ID4gdHN1aXRvdVwgOwor5YWl55SoID4gbnl1dXlvdVwgOwor55m955y8ID4gaGFrdWdhblwgOwor6auY6YCyID4ga291c2hpblwgOwor6I2S5qWtID4gYXJhd2F6YVwgOwor55eb6KuWID4gdHN1dXJvblwgOwor5Yi65a2QID4gc2FzaGlrb1wgOwor5q2j5L2TID4gc2hvdXRhaVwgOwor6YCG5b6SID4gZ3lha3V0b1wgOwor6auY6YCfID4ga291c29rdVwgOwor5bGx6bqTID4gc2Fucm9rdVwgOwor5bm85byxID4geW91amFrdVwgOwor6L+O5pilID4gZ2Vpc2h1blwgOwor55m955uuID4gc2hpcm9tZVwgOwor5YiX5by3ID4gcmVra3lvdVwgOwor6L6y5qWtID4gbm91Z3lvdVwgOwor5YiH5oSbID4gc2V0c3VhaVwgOwor5YCZ6bOlID4ga291Y2hvdVwgOwor6YKE5L+XID4gZ2Vuem9rdVwgOwor6YCf5bCEID4gc29rdXNoYVwgOwor6L+35oORID4gbWVpd2FrdVwgOwor5bqD5beeID4ga291c2h1dVwgOwor6YC85aGeID4gaGlzc29rdVwgOwor5bmz5b6pID4gaGVpZnVrdVwgOwor55m955msID4gaGFrdXNlblwgOwor55eb6KiAID4gdHN1dWdlblwgOwor5Yid5bezID4gaGF0c3VtaVwgOwor55a+6LWwID4gc2hpc3NvdVwgOwor5YiX5bqnID4gcmV0c3V6YVwgOwor552A5bqnID4gY2hha3V6YVwgOwor5YWx54qvID4ga3lvdWhhblwgOwor6Iy25q67ID4gY2hhZ2FyYVwgOwor6L+95b6TID4gdHN1aWp1dVwgOwor5q2j5LitID4gc2VpY2h1dVwgOwor6Lqs6KGMID4ga3l1dWtvdVwgOwor55m955e0ID4gaGFrdWNoaVwgOwor5Ye25omLID4ga3lvdXNodVwgOwor5biC5rOBID4gc2hpa3lvdVwgOwor5YiX5bitID4gcmVzc2VraVwgOwor5bid5qWtID4gdGVpZ3lvdVwgOwor5YmN5Z6CID4gbWFlZGFyZVwgOwor55yp5oORID4gZ2Vud2FrdVwgOwor5b+144CFID4gbmVuJyduZW5cIDsKK+edgOW3pSA+IGNoYWtrb3VcIDsKK+WJsuWLmCA+IHdhcmlrYW5cIDsKK+mAgOW6gSA+IHRhaWNob3VcIDsKK+eZuueWuSA+IGhvc3NoaW5cIDsKK+W5tOW5tCA+IG5lbicnbmVuXCA7Civps6XkurogPiBjaG91amluXCA7Civov47mkoMgPiBnZWlnZWtpXCA7CivpgLLloYEgPiBzaGlucnVpXCA7CivliaPlkZEgPiBrZW4nJ25vblwgOwor5YaS5racID4gYm91dG9rdVwgOwor5qSc6Y+hID4ga2Vua3lvdVwgOwor5YWI55qHID4gc2VuJydub3VcIDsKK+mAgOW4rSA+IHRhaXNla2lcIDsKK+WIpeWutCA+IGJldHN1ZW5cIDsKK+mAseWgsSA+IHNodXVob3VcIDsKK+WJsuWJjSA+IHdhcmltYWVcIDsKK+WGhua7kSA+IGVua290c3VcIDsKK+WIpeWuhSA+IGJldHRha3VcIDsKK+WFjeeWqyA+IG1lbicnZWtpXCA7Civnm5vmpa0gPiBzZWlneW91XCA7CivlsqHpmbUgPiBrb3VyeW91XCA7CivlibLliKQgPiB3YXJpaGFuXCA7Civou7jnt5ogPiBqaWt1c2VuXCA7Civpq5jotrMgPiBrb3Vzb2t1XCA7CivlhKrnp4AgPiB5dXVzaHV1XCA7CivlgbTovrogPiBzb2t1aGVuXCA7CivmrKDlk6EgPiBrZXRzdWluXCA7Civmo5LpsYggPiBib3VkYXJhXCA7CivlhaXniakgPiBpcmVtb25vXCA7CivlhaXniaIgPiBueXV1cm91XCA7CivnnJ/mg4UgPiBzaGluam91XCA7Civpgbjku7sgPiBzZW4nJ25pblwgOwor5Ye25oKqID4ga3lvdWFrdVwgOwor5Yid5a+pID4gc2hvc2hpblwgOwor55Wq6ZW3ID4gYmFuY2hvdVwgOwor5bm85bCRID4geW91c2hvdVwgOwor6I2J5pyoID4gc291bW9rdVwgOwor5YaN5rOoID4gc2FpY2h1dVwgOwor55uu5pifID4gbWVib3NoaVwgOwor55yf5oCnID4gc2hpbnNlaVwgOwor5bm95a+CID4geXV1amFrdVwgOwor5Ym15YK3ID4gc291c2hvdVwgOwor5YG06LuKID4gc29rdXNoYVwgOwor5YWo54S8ID4gemVuc2hvdVwgOwor5Yid5a2QID4gaGF0c3Vnb1wgOwor5YOa6ImmID4gcnlvdWthblwgOwor5Ye65b6BID4gc2h1c3NlaVwgOwor5bm95a6iID4geXV1a2FrdVwgOwor5YiG5be7ID4gYnVubWFraVwgOwor6YCa5aW9ID4gdHN1dWtvdVwgOwor6IiI6LajID4ga3lvdXNodVwgOwor5Ymj5YqHID4ga2VuZ2VraVwgOwor55mp55eFID4gcmFpYnlvdVwgOwor6YCa5aWPID4gdHN1dXNvdVwgOwor55aj6LazID4gaWJvYXNoaVwgOwor6Imv6IO9ID4gcnlvdW5vdVwgOwor6LyJ56mNID4gc2Fpc2VraVwgOwor6Iy25qOaID4gY2hhZGFuYVwgOwor5bm85a2QID4gb3NhbmFnb1wgOwor6YGp5L6LID4gdGVraXJlaVwgOwor5qSc6YedID4ga2Vuc2hpblwgOwor5Ye65bu3ID4gc2h1dHRlaVwgOwor5YmN5ZOoID4gemVuc2hvdVwgOwor5bSp6JC9ID4gaG91cmFrdVwgOwor55yf5b2xID4gc2hpbicnZWlcIDsKK+W5tOWwkSA+IG5lbnNob3VcIDsKK+W5o+W4myA+IGhlaWhha3VcIDsKK+WHtuW8viA+IGt5b3VkYW5cIDsKK+mAn+WgsSA+IHNva3Vob3VcIDsKK+eUsumrmCA+IGtvdWRha2FcIDsKK+eZveeKtiA+IGhha3Vqb3VcIDsKK+mBqeS7uyA+IHRla2luaW5cIDsKK+WItuWcpyA+IHNlaWF0c3VcIDsKK+WJm+WKmyA+IGdvdXJpa2lcIDsKK+eWvuimliA+IHNoaXNzaGlcIDsKK+iLpueGsSA+IGt1bmV0c3VcIDsKK+eZuueLgiA+IGhha2t5b3VcIDsKK+WJteS9nCA+IHNvdXNha3VcIDsKK+aqhOaWhyA+IGdla2lidW5cIDsKK+WGheaxoCA+IHVjaGlpa2VcIDsKK+ebruaSpSA+IG1lYmFjaGlcIDsKK+WBj+mHnSA+IGhlbnNoaW5cIDsKK+mAgOWtpiA+IHRhaWdha3VcIDsKK+WBj+mHjSA+IGhlbmNob3VcIDsKK+W5tOWtkCA+IHRvc2hpZ29cIDsKK+mAmuWgsSA+IHRzdXVob3VcIDsKK+WCjeiovCA+IGJvdXNob3VcIDsKK+WCjeiouyA+IGJvdWNodXVcIDsKK+WHuuW4hiA+IHNodXBwYW5cIDsKK+WJo+WFiCA+IGtlbnNha2lcIDsKK+WFiOeOiyA+IHNlbicnbm91XCA7Civlh7blubQgPiBreW91bmVuXCA7CivnnJ/lubMgPiBtYXBwaXJhXCA7CivnmZLnnYAgPiB5dWNoYWt1XCA7Civlia/kvb8gPiBmdWt1c2hpXCA7Civpq5joqr8gPiBrb3VjaG91XCA7CivojqvlpKcgPiBiYWt1ZGFpXCA7CivliY3ljoQgPiBtYWV5YWt1XCA7CivprZrnq5wgPiBneW9yeXV1XCA7CivlhbHmuIggPiBreW91c2FpXCA7CivlhYfnjJsgPiBreW91bW91XCA7Civov7flrq4gPiBtZWlreXV1XCA7CivpgYXliLsgPiBjaGlrb2t1XCA7Civnm7jmib8gPiBzb3VzaG91XCA7Civpq5joqZUgPiBrb3VoeW91XCA7CivluZTluZUgPiBtYW5tYWt1XCA7Civmo67plpEgPiBzaGlua2FuXCA7CivpgLLlkYggPiBzaGludGVpXCA7Civovp/mmJMgPiBoZWtpZWtpXCA7CivlhYfnirYgPiBreW91am91XCA7CivlhaXmvIEgPiBueXV1Z3lvXCA7Civnm7TmiqsgPiBjaG9rdWhpXCA7CivnmbrnhZkgPiBoYXRzdWVuXCA7CivoiJ/ooYwgPiBzaHV1a291XCA7CivlsrjovrogPiBraXNoaWJlXCA7Civpq5jop5IgPiBrb3VrYWt1XCA7CivpgZPkv5cgPiBkb3V6b2t1XCA7CivpgLLlj5YgPiBzaGluc2h1XCA7CivohqjpmoYgPiBib3VyeXV1XCA7CivlgI3poY0gPiBiYWlnYWt1XCA7Civnm67mjIcgPiBtb2t1c2hpXCA7CivprZTnqp8gPiBtYWt1dHN1XCA7Civlh53lv7UgPiBneW91bmVuXCA7Civlt6HmrbQgPiBqdW5yZWtpXCA7CivlsbHpoIIgPiBzYW5jaG91XCA7Civou6LnsY0gPiB0ZW5zZWtpXCA7CivlhaXmua8gPiBueXV1dG91XCA7Civlub3looMgPiB5dXVreW91XCA7Civlh7rlsZUgPiBzaHV0dGVuXCA7CivojZLmioAgPiBhcmF3YXphXCA7CivlhaXmuK8gPiBueXV1a291XCA7CivlhaXmuKAgPiBueXV1a3lvXCA7Civoi5vng4ggPiBrYXJldHN1XCA7CivlhYnnhacgPiBrb3VzaG91XCA7Civov6vlrrMgPiBoYWt1Z2FpXCA7CivlhavmtLIgPiB5YXNoaW1hXCA7CivovZ/msoggPiBnb3VjaGluXCA7CivnnIzluoEgPiBrZW5jaG91XCA7Civlh6HlurggPiBib24nJ3lvdVwgOwor55mH55mWID4ga2FucGVraVwgOwor6Imy57SgID4gc2hpa2lzb1wgOwor6L+R5bm0ID4ga2luJyduZW5cIDsKK+ebtOaEnyA+IGNob2trYW5cIDsKK+ebhuaariA+IGJvbmt1cmVcIDsKK+i5iei3jCA+IHNhdGV0c3VcIDsKK+W5tOWilyA+IHRvc2hpbWFcIDsKK+mBiuS+oCA+IHl1dWt5b3VcIDsKK+WJjeWFhiA+IHplbmNob3VcIDsKK+eZh+eXhyA+IGthbnNob3VcIDsKK+i9ouatuyA+IHJla2lzaGlcIDsKK+mBk+S4uyA+IGRvdXNodXVcIDsKK+WHi+aCtCA+IGNob3VzdWlcIDsKK+WDp+exjSA+IHNvdXNla2lcIDsKK+mBk+S4rSA+IGRvdWNodXVcIDsKK+WxsemZvSA+IHNhbicneW91XCA7Civlt6Xmpa0gPiBrb3VneW91XCA7CivlsbHpmbUgPiBzYW5yeW91XCA7CivmrKDkvLggPiBrZW5zaGluXCA7CivpgYrkvJEgPiB5dXVreXV1XCA7Civnl5joi5cgPiB0b3VieW91XCA7Civlub3lm5ogPiB5dXVzaHV1XCA7CivpgLHliIogPiBzaHV1a2FuXCA7CivlupbljqggPiBob3VjaHV1XCA7CivlgJLplqMgPiB0b3VrYWt1XCA7CivliJflm70gPiByZWtrb2t1XCA7CivnnaPlirEgPiB0b2t1cmVpXCA7Civlt6Hmpa0gPiBqdW5neW91XCA7CivmqJnmupYgPiBoeW91anVuXCA7Civoj4rliKQgPiBraWt1YmFuXCA7CivnlKPpoY0gPiBzYW5nYWt1XCA7CivpgLHlhoUgPiBzaHV1bmFpXCA7Civlgr7ogbQgPiBrZWljaG91XCA7CivpsLvlsYsgPiB1bmFnaXlhXCA7CivluK/lv4MgPiBvYmlzaGluXCA7CivlhaXmsLQgPiBueXV1c3VpXCA7CivliLbli50gPiBzZWlzaG91XCA7CivliLvliLsgPiBrb2trb2t1XCA7Civlgpnok4QgPiBiaWNoaWt1XCA7CivoiIjooYwgPiBrb3VneW91XCA7CivpgJrlkI0gPiB0b29yaW5hXCA7Civou43nsY0gPiBndW5zZWtpXCA7CivoiLnoiLYgPiBzZW5wYWt1XCA7CivpgKPli50gPiByZW5zaG91XCA7CivpgJrlj7IgPiB0c3V1c2hpXCA7Civnm7TlvowgPiBjaG9rdWdvXCA7Civnm7TlvoQgPiBjaG9ra2VpXCA7Civnm7TlvoAgPiBjaG9rdW91XCA7Civkv67ppIogPiBzaHV1eW91XCA7CivlhYfmvKIgPiBreW91a2FuXCA7Civnl4Xoj4wgPiBieW91a2luXCA7Civlg63np7AgPiBzZW5zaG91XCA7Civlh7rlpZQgPiBzaHVwcG9uXCA7CivovpvmirEgPiBzaGluYm91XCA7Civmpb3ogZYgPiBnYWt1c2VpXCA7CivlgaXoqLogPiBrZW5zaGluXCA7Civou73nl4cgPiBrZWlzaG91XCA7CivoiLnohbkgPiBzZW5wdWt1XCA7Civnmb3mtLIgPiBzaGlyYXN1XCA7Civlh6HlsI8gPiBib25zaG91XCA7CivliY3ku7sgPiB6ZW4nJ25pblwgOwor5beo5pyoID4ga3lvYm9rdVwgOwor6Iis6IulID4gaGFuJydueWFcIDsKK+WCt+iAhSA+IHNob3VzaGFcIDsKK+WGhuabsiA+IGVua3lva3VcIDsKK+WwvumqqCA+IGJpa290c3VcIDsKK+WGheacjSA+IG5haWZ1a3VcIDsKK+W6g+WRiiA+IGtvdWtva3VcIDsKK+iKneeUnyA+IHNoaWJhZnVcIDsKK+mAmuWLpCA+IHRzdXVraW5cIDsKK+iHquiqrCA+IGppc2V0c3VcIDsKK+WFhea6oiA+IGp1dWl0c3VcIDsKK+eci+WuoiA+IGthbmtha3VcIDsKK+iMtuaJmCA+IGNoYXRha3VcIDsKK+ecn+WkjyA+IG1hbmF0c3VcIDsKK+WHtuWkiSA+IGt5b3VoZW5cIDsKK+i+uuW5hSA+IGhlbnB1a3VcIDsKK+W6l+WGhSA+IHRlbicnbmFpXCA7CivliLrlgrcgPiBzaGlzaG91XCA7Civlt53mn7MgPiBzZW5yeXV1XCA7Civnmbrms6ggPiBoYXRjaHV1XCA7Civmpa3ohbkgPiBnb3VoYXJhXCA7Civoia/nqK4gPiByeW91c2h1XCA7CivlhbHmo7IgPiBreW91c2VpXCA7CivlgJ/ph5EgPiBzaGFra2luXCA7CivliYrkupUgPiBzYWt1c2VpXCA7CivnlbDos6ogPiBpc2hpdHN1XCA7Civluo/liJcgPiBqb3JldHN1XCA7CivpgJ/lhpkgPiBzb2t1c2hhXCA7CivlgJLpjK8gPiB0b3VzYWt1XCA7CivluJ3lvrMgPiB0ZWl0b2t1XCA7CivpgJrliIYgPiB0c3V1YnVuXCA7Civov73lloQgPiB0c3VpemVuXCA7CivlhbzmnIkgPiBrZW4nJ3l1dVwgOwor5Ye25aCxID4ga3lvdWhvdVwgOwor5qSc6KqNID4ga2VuJyduaW5cIDsKK+iNkuW3uyA+IGFyYW1ha2lcIDsKK+eXheiIjiA+IGJ5b3VzaGFcIDsKK+iInuiMuCA+IG1haXRha2VcIDsKK+ain+mmliA+IGt5b3VzaHVcIDsKK+mAseS7pCA+IHNodXVyZWlcIDsKK+WHhuW3niA+IGp1bnNodXVcIDsKK+WFseagkyA+IHRvbW9zZW5cIDsKK+aknOiovCA+IGtlbnNob3VcIDsKK+aknOiouiA+IGtlbnNoaW5cIDsKK+W4uOWuvyA+IGpvdXlhZG9cIDsKK+S/oemgvCA+IHNoaW5yYWlcIDsKK+WFieayoiA+IGtvdXRha3VcIDsKK+W4neW7nyA+IHRlaWJ5b3VcIDsKK+WHueWcsCA+IGt1Ym9jaGlcIDsKK+WHuOWdiiA+IGRla29ib3VcIDsKK+iFsememCA+IGtlbnNob3VcIDsKK+i7jeelqCA+IGd1bnB5b3VcIDsKK+ebm+W+syA+IHNlaXRva3VcIDsKK+eUn+mVtyA+IHNlaWNob3VcIDsKK+alreiAhSA+IGd5b3VzaGFcIDsKK+i7jeelniA+IGd1bnNoaW5cIDsKK+WFpeajuiA+IG55dXVrYW5cIDsKK+i5iOilsiA+IHRvdXNodXVcIDsKK+mAsuS4iiA+IHNoaW5qb3VcIDsKK+iIn+iJhyA+IHNodXV0ZWlcIDsKK+W5veWLnSA+IHl1dXNob3VcIDsKK+W3qOaTmCA+IGt5b2hha3VcIDsKK+iIn+iIqiA+IHNodXVrb3VcIDsKK+aoquajkiA+IHlva29ib3VcIDsKK+WItuS9nCA+IHNlaXNha3VcIDsKK+W5tOWPjiA+IG5lbnNodXVcIDsKK+WHi+WwvSA+IGNob3VqaW5cIDsKK+ebl+W/gyA+IHRvdXNoaW5cIDsKK+WFpeaihSA+IG55dXViYWlcIDsKK+iFk+mqqCA+IGhpa290c3VcIDsKK+WFseaciSA+IGt5b3V5dXVcIDsKK+mwpOWtkCA+IGJ1cmlra29cIDsKK+ebuOWuoiA+IGFpa3lha3VcIDsKK+ecn+WboCA+IHNoaW4nJ2luXCA7Civov73lj7cgPiB0c3VpZ291XCA7CivpgKPkvZwgPiByZW5zYWt1XCA7CivlhY7mrKAgPiB0b2tldHN1XCA7CivlhYbmsJEgPiBjaG91bWluXCA7CivliKXlhIAgPiBiZXRzdWdpXCA7CivlhaXmoKEgPiBueXV1a291XCA7Civoia/nn6UgPiByeW91Y2hpXCA7CivpgKPkvJEgPiByZW5reXV1XCA7CivliIflkbMgPiBraXJlYWppXCA7CivpgKDkvZwgPiB6b3VzYWt1XCA7Civlha3mm7ggPiByb2t1c2hvXCA7CivnnYDliaMgPiBjaGFra2VuXCA7CivliIblkaggPiBidW5zaHV1XCA7Civlha3mm5wgPiByb2t1eW91XCA7CivlhavmnJQgPiBoYXNzYWt1XCA7CivliKrkv64gPiBzYW5zaHV1XCA7Civlh4blsIYgPiBqdW5zaG91XCA7CivnnIzlooMgPiBrZW5reW91XCA7CivohZXpppYgPiB1ZGVrdWJpXCA7CivnnLzlipsgPiBnYW5yaWtpXCA7CivojZLlr6UgPiBrb3VyeW91XCA7CivpgJrkvosgPiB0c3V1cmVpXCA7Civlsqzop5IgPiBrb3VrYWt1XCA7CivmqJnmppwgPiBoeW91Ym91XCA7CivlhaXmnaUgPiBueXV1cmFpXCA7CivnlaXorZwgPiByeWFrdWZ1XCA7CivovaLmlq0gPiByZWtpZGFuXCA7Civou6LnlKggPiB0ZW4nJ3lvdVwgOwor55qQ5pyIID4gc2F0c3VraVwgOwor6YCj5LitID4gcmVuY2h1dVwgOwor5YWD5q2MID4gbW90b3V0YVwgOwor6Imy55m9ID4gaXJvamlyb1wgOwor5bKp6KeSID4gaXdha2Fkb1wgOwor6YCT5L+hID4gdGVpc2hpblwgOwor5bqW5LiBID4gaG91Y2hvdVwgOwor6Iy25bqXID4gY2hhbWlzZVwgOwor5Yed5aGKID4gZ3lvdWthaVwgOwor6YCG5YWJID4gZ3lha2tvdVwgOwor5qKf6ZuEID4ga3lvdXl1dVwgOwor5Ye65ZOBID4gc2h1cHBpblwgOwor5qK16ZCYID4gYm9uc2hvdVwgOwor6Ii557SaID4gc2Vua3l1dVwgOwor6L6y5a2mID4gbm91Z2FrdVwgOwor6YCa5Lq6ID4gdHN1dWppblwgOwor55Wl6KqeID4gcnlha3Vnb1wgOwor5YOt55SoID4gc2VuJyd5b3VcIDsKK+mAmuS6pCA+IHRzdXVrb3VcIDsKK+i4iui6jSA+IHlvdXlha3VcIDsKK+iMtuW4rSA+IGNoYXNla2lcIDsKK+i/veWIiiA+IHRzdWlrYW5cIDsKK+eUqOmHjyA+IHlvdXJ5b3VcIDsKK+iHquiZkCA+IGppZ3lha3VcIDsKK+msvOeVnCA+IGtpY2hpa3VcIDsKK+iFkOmjnyA+IGZ1c2hva3VcIDsKK+W5tOWGhSA+IG5lbicnbmFpXCA7CivlhazmlbUgPiBrb3V0ZWtpXCA7Civlgo3ogbQgPiBib3VjaG91XCA7Civlt6bmipggPiBzYXNldHN1XCA7CivlhazmlZkgPiBrb3VreW91XCA7Civnmb3moYMgPiBoYWt1dG91XCA7Civoi6Xmnp0gPiB3YWthZWRhXCA7Civlh7rlkJEgPiBzaHVra291XCA7Civov5Hlm70gPiBraW5nb2t1XCA7CivoiLnnsY0gPiBzZW5zZWtpXCA7CivlhYPmqJkgPiBnZW5weW91XCA7Civlh7rlj6MgPiBkZWd1Y2hpXCA7CivliIfliYogPiBzZXNzYWt1XCA7CivnlaXop6MgPiByeWFra2FpXCA7CivliIDljKAgPiB0b3VzaG91XCA7CivnmbrmoYggPiBoYXRzdWFuXCA7CivnlKPph48gPiBzYW5yeW91XCA7Civou5/nkIMgPiBuYW5reXV1XCA7CivliKXkuosgPiBiZXRzdWppXCA7Civkv67pjKwgPiBzaHV1cmVuXCA7Civnm7TlpY8gPiBqaWtpc291XCA7CivluILluoEgPiBzaGljaG91XCA7CivoiKrntpogPiBrb3V6b2t1XCA7Civoia/nlLAgPiByeW91ZGVuXCA7CivotrPpn7MgPiBhc2hpb3RvXCA7CivlhYjmo5IgPiBzYWtpYm91XCA7CivliIjlhaUgPiBrYXJpaXJlXCA7Civnmb3mnKggPiBzaGlyYWtpXCA7CivmqJnmnKwgPiBoeW91aG9uXCA7Civnmofml48gPiBrb3V6b2t1XCA7Civlh7rli6QgPiBzaHVra2luXCA7Civnmb3mm7ggPiBoYWt1c2hvXCA7CivovrrlooMgPiBoZW5reW91XCA7CivpgIHkv6EgPiBzb3VzaGluXCA7Civou43nlKggPiBndW4nJ3lvdVwgOwor5Yid5LmzID4gc2hvbnl1dVwgOwor5bmz5L+hID4gaGVpc2hpblwgOwor55m+5pmvID4gaHlha2tlaVwgOwor6I2S5aOBID4gYXJha2FiZVwgOwor5YWr5o6bID4gaGFra2FrZVwgOwor6Lyq5qWtID4gcmluZ3lvdVwgOwor6Iy25a+uID4gY2hhcnlvdVwgOwor5bmz5L2cID4gaGVpc2FrdVwgOwor55uy5Z+3ID4gbW91c2h1dVwgOwor55SY6YWSID4gYW1hemFrZVwgOwor5YWJ5p2fID4ga291c29rdVwgOwor5YWD5qCTID4gbW90b3NlblwgOwor5YWr5oy6ID4gaGF0Y2hvdVwgOwor55yf5YmjID4gc2hpbmtlblwgOwor5Ye55Ye4ID4gb3V0b3RzdVwgOwor6L6b5a2QID4ga2FyYXNoaVwgOwor5Ye45Ye5ID4gdG90c3VvdVwgOwor55m+5pa5ID4gaHlhcHBvdVwgOwor5bmz5LyPID4gaGVpZnVrdVwgOwor5YaF5b+DID4gbmFpc2hpblwgOwor5YG06IOMID4gc29rdWhhaVwgOwor55mC5rOVID4gcnlvdWhvdVwgOwor5YWl5o6bID4gaXJla2FrdVwgOwor6L+35L+hID4gbWVpc2hpblwgOwor5Ye25YiDID4ga3lvdWppblwgOwor5Ye65YW4ID4gc2h1dHRlblwgOwor5Ye65YW1ID4gc2h1cHBlaVwgOwor55m95paRID4gaGFrdWhhblwgOwor5YiA5YK3ID4gdG91c2hvdVwgOwor6YCA5LqsID4gdGFpa3lvdVwgOwor55m95paHID4gaGFrdWJ1blwgOwor5Ye45YaGID4gdG90c3VlblwgOwor5bGx6LOKID4gc2Fuem9rdVwgOwor55y85LitID4gZ2FuY2h1dVwgOwor5YG06IGeID4gc29rdWJ1blwgOwor5qWt56iuID4gZ3lvdXNodVwgOwor5YWH5pq0ID4ga3lvdWJvdVwgOwor5YWr5omLID4geWF0c3VkZVwgOwor6Imy54mpID4gaXJvbW9ub1wgOwor5YWD5pydID4gZ2VuY2hvdVwgOwor55ez55eFID4gcmluYnlvdVwgOwor5YWD5pyNID4gZ2VucHVrdVwgOwor5L+u6YGTID4gc2h1dWRvdVwgOwor5Ye25YWaID4ga3lvdXRvdVwgOwor5YWL5piOID4ga29rdW1laVwgOwor5bm05LiKID4gdG9zaGl1ZVwgOwor5L+h6YeRID4gc2hpbmtpblwgOwor5YWJ5piOID4ga291bXlvdVwgOwor5YWx5oSfID4ga3lvdWthblwgOwor5bel5bugID4ga291c2hvdVwgOwor6auY57WmID4ga291a3l1dVwgOwor5L+d6YeIID4gaG9zaGFrdVwgOwor5YWl5omLID4gbnl1dXNodVwgOwor5YWl5omAID4gbnl1dXNob1wgOwor6L+w5L2cID4ganVzc2FrdVwgOwor5YaF5bmVID4gbmFpbWFrdVwgOwor5qmf5a+GID4ga2ltaXRzdVwgOwor6LiP6KWyID4gdG91c2h1dVwgOwor6auY57SaID4ga291a3l1dVwgOwor55u05Za2ID4gY2hva3VlaVwgOwor55u05ZapID4gY2hva3V5dVwgOwor5bCP6Z2iID4gc2hvdW1lblwgOwor5bC/6YW4ID4gbnlvdXNhblwgOwor6L6b5aS3ID4ga29idXNoaVwgOwor5YWt5oOFID4gcm9rdWpvdVwgOwor6auY57KxID4ga291cnlhblwgOwor5bCP6ZujID4gc2hvdW5hblwgOwor5bGA6YOoID4ga3lva3VidVwgOwor5bid5Zu9ID4gdGVpa29rdVwgOwor5Ye65LyaID4gc2h1a2thaVwgOwor5bCP6ZqKID4gc2hvdXRhaVwgOwor6ayx54S2ID4gdXRzdXplblwgOwor5YWx5b25ID4ga3lvdWVraVwgOwor5Ye65LuVID4gc2h1c3NoaVwgOwor5YK355eVID4gc2hvdWtvblwgOwor5YaN5a+pID4gc2Fpc2hpblwgOwor55yM5YaFID4ga2VuJyduYWlcIDsKK+eUs+iriyA+IHNoaW5zZWlcIDsKK+eZuuaMryA+IGhhc3NoaW5cIDsKK+Wwv+mBkyA+IG55b3Vkb3VcIDsKK+WBtOe3miA+IHNva3VzZW5cIDsKK+WFrOW+syA+IGtvdXRva3VcIDsKK+WwkemWoiA+IHNob3VrYW5cIDsKK+W4uOWLnSA+IGpvdXNob3VcIDsKK+WwkemWkSA+IHNob3VrYW5cIDsKK+WGpeWigyA+IG1laWt5b3VcIDsKK+ecn+S6uiA+IHNoaW5qaW5cIDsKK+eZveaJhyA+IGhha3VzZW5cIDsKK+Wwj+mWkSA+IHNob3VrYW5cIDsKK+WGt+WYsiA+IHJlaWNob3VcIDsKK+WFqOW/gyA+IHplbnNoaW5cIDsKK+eXm+eXkiA+IHRzdXV5b3VcIDsKK+mmtOm5vyA+IHRvbmFrYWlcIDsKK+ebtOWPgiA+IGppa2lzYW5cIDsKK+WFpeW/tSA+IG55dXVuZW5cIDsKK+iEiumrhCA+IHNla2l6dWlcIDsKK+ecn+S4iyA+IG1hc2hpdGFcIDsKK+WGhuWuiSA+IGVuJyd5YXN1XCA7CivlsIrplbcgPiBzb25jaG91XCA7CivlhazluoEgPiBrb3VjaG91XCA7Civov5Tkv6EgPiBoZW5zaGluXCA7Civlgb3nrYYgPiBnaWhpdHN1XCA7Civnm7jliYsgPiBzb3Vrb2t1XCA7CivluKvljKAgPiBzaGlzaG91XCA7Civohp3ooYwgPiBzaGlra291XCA7Civou6Lms6ggPiB0ZW5jaHV1XCA7CivlhaXlu7cgPiBueXV1dGVpXCA7Civkv5fovKkgPiB6b2t1aGFpXCA7CivohJrpn7sgPiBreWFrdWluXCA7Civlt6XlraYgPiBrb3VnYWt1XCA7Civlh6Hkv5cgPiBib256b2t1XCA7Civlr5LprpIgPiBrYW5idW5hXCA7Civmpa3nl4UgPiBnb3VieW91XCA7CivovrLljZogPiBub3VoYWt1XCA7CivovrLljZQgPiBub3VreW91XCA7CivlhYfmiYsgPiBreW91c2h1XCA7CivlhajluYUgPiB6ZW5wdWt1XCA7Civlhavlt54gPiB5YXNoaW1hXCA7CivlhajluK0gPiB6ZW5zZWtpXCA7Civpq5jnpoQgPiBrb3Vyb2t1XCA7Civov5HkvZwgPiBraW5zYWt1XCA7CivojbfkuLsgPiBuaW51c2hpXCA7Civoia/muK8gPiByeW91a291XCA7Civlr7jpmpkgPiBzdW5nZWtpXCA7Civlh6HkvZwgPiBib25zYWt1XCA7Civmpa3nlYwgPiBneW91a2FpXCA7Civnm7jlhYsgPiBzb3Vrb2t1XCA7Civnm67liY0gPiBtb2t1emVuXCA7CivlsqnogowgPiBpd2FoYWRhXCA7Civlh6HkurogPiBib24nJ25pblwgOwor5L+h6LKpID4gc2hpbnBhblwgOwor5L+X6LajID4gem9rdXNodVwgOwor5L+u6KuWID4gc2h1dXJvblwgOwor5ben5aaZID4ga291bXlvdVwgOwor5YW15a2mID4gaGVpZ2FrdVwgOwor55Sw6J66ID4gdGFuaXNoaVwgOwor55m65b+DID4gaG9zc2hpblwgOwor5YeN5YK3ID4gdG91c2hvdVwgOwor55Sj6KSlID4gc2Fuam9rdVwgOwor5bCP6YqDID4gc2hvdWp1dVwgOwor6Imv5rOVID4gcnlvdWhvdVwgOwor5YWH5oKqID4ga3lvdWFrdVwgOwor5L6/6YCaID4gYmVudHN1dVwgOwor5bCP6YmiID4ga29iYWNoaVwgOwor6Iul5bm0ID4gamFrdW5lblwgOwor5YWH5oKNID4ga3lvdWthblwgOwor6LWk6aOvID4gc2VraWhhblwgOwor5bid5YqHID4gdGVpZ2VraVwgOwor5YWx5a2YID4ga3lvdXpvblwgOwor55yB5LukID4gc2hvdXJlaVwgOwor6Ieq57KbID4gamlzaHVrdVwgOwor55m+5bqmID4gaHlha3Vkb1wgOwor5YaF5aOBID4gbmFpaGVraVwgOwor5L+u6KiCID4gc2h1dXRlaVwgOwor5YWN5b25ID4gbWVuJydla2lcIDsKK+eWvueXhSA+IHNoaXBwZWlcIDsKK+WFg+aCqiA+IGdlbicnYWt1XCA7Civnlrznl5sgPiB0b3V0c3V1XCA7CivlrrPps6UgPiBnYWljaG91XCA7Civlgo3nmb0gPiBib3VoYWt1XCA7CivmpJzntKIgPiBrZW5zYWt1XCA7Civoia/msJEgPiByeW91bWluXCA7Civlhajlr64gPiB6ZW5yeW91XCA7CivlhaXlsYUgPiBueXV1a3lvXCA7CivnlLLomasgPiBrb3VjaHV1XCA7CivouoHnl4UgPiBzb3VieW91XCA7CivnmbvluoEgPiB0b3VjaG91XCA7CivlhajlrrkgPiB6ZW4nJ3lvdVwgOwor5YWl5bCEID4gbnl1dXNoYVwgOwor55Sw6JmrID4gdGFtdXNoaVwgOwor55uy5L+hID4gbW91c2hpblwgOwor55m95biGID4gc2hpcmFob1wgOwor6auY55u0ID4ga291amlraVwgOwor6Ia/6IO4ID4gbm91a3lvdVwgOwor5bCK6YeNID4gc29uY2hvdVwgOwor55Sf6KGAID4gbmFtYWNoaVwgOwor5YWl5a+HID4gbnl1dWtvdVwgOwor5YWo5a2mID4gemVuZ2FrdVwgOwor5YWH5by+ID4ga3lvdWRhblwgOwor5YWl5a6aID4gbnl1dWpvdVwgOwor6Lui5qWtID4gdGVuZ3lvdVwgOwor5bGI6KiXID4ga3V0dGFrdVwgOwor55u05LydID4gamlraWRlblwgOwor6Iy25YyZID4gY2hhc2FqaVwgOwor6Ieq562GID4gamloaXRzdVwgOwor6IuX5bqKID4gbmFlZG9rb1wgOwor6LWk6Z2iID4gc2VraW1lblwgOwor6L6b5Yq0ID4gc2hpbnJvdVwgOwor5YWE5byfID4ga3lvdWRhaVwgOwor5L+K6LOiID4gc2h1bmtlblwgOwor5YWs5ai8ID4ga291c2hvdVwgOwor5YaF5ZynID4gbmFpYXRzdVwgOwor55eb54K5ID4gdHN1dXRlblwgOwor55u05LqkID4gY2hva2tvdVwgOwor5YWI5bm0ID4gc2VuJyduZW5cIDsKK+eWseeWuSA+IGhvdXNoaW5cIDsKK+S/l+isoSA+IHpva3V5b3VcIDsKK+muruWwkSA+IHNlbnNob3VcIDsKK+Wwj+mBkyA+IGtvbWljaGlcIDsKK+iHqueriyA+IGppcml0c3VcIDsKK+S/ruihjCA+IHNodWd5b3VcIDsKK+WGheWbvSA+IG5haWtva3VcIDsKK+S/l+iruiA+IHpva3VnZW5cIDsKK+iGj+iWrCA+IGtvdXlha3VcIDsKK+iHs+emjyA+IHNoaWZ1a3VcIDsKK+WvuumKrSA+IHRlcmFzZW5cIDsKK+i+suS9nCA+IG5vdXNha3VcIDsKK+S/l+irpiA+IHpva3V0YWlcIDsKK+Wwj+mAlSA+IHNob3VrZWlcIDsKK+S/iuixqiA+IHNodW5nb3VcIDsKK+S/l+irliA+IHpva3Vyb25cIDsKK+eXh+eKtiA+IHNob3Vqb3VcIDsKK+S/l+irhyA+IHpva3VkYW5cIDsKK+WwjumAmiA+IGRvdXRzdXVcIDsKK+mtmuaXjyA+IGd5b3pva3VcIDsKK+WFpeWpvyA+IGlyaW11a29cIDsKK+iHvOegsiA+IGt5dXVob3VcIDsKK+WDu+adkSA+IGhla2lzb25cIDsKK+muqOWxiyA+IHN1c2hpeWFcIDsKK+WBpeelpSA+IGtlbnNob3VcIDsKK+WvhOmjnyA+IGtpc2hva3VcIDsKK+eZveWxsSA+IGhha3VzYW5cIDsKK+eXheeKtiA+IGJ5b3Vqb3VcIDsKK+WFg+W5tCA+IGdhbicnbmVuXCA7CivlsI/ovrIgPiBzaG91bm91XCA7CivluK3kuIogPiBzZWtpam91XCA7CivojZLkuosgPiBhcmFnb3RvXCA7Civnm6Pkv64gPiBrYW5zaHV1XCA7Civlgbjnm5cgPiBjaHV1dG91XCA7Civlg7vmm7ggPiBoZWtpc2hvXCA7CivnlZnnva4gPiByeXV1Y2hpXCA7CivovpvlhZogPiBrYXJhdG91XCA7CivmoLzpl5ggPiBrYWt1dG91XCA7CivnlarntYQgPiBiYW5ndW1pXCA7Civkv5foqIAgPiB6b2t1Z2VuXCA7CivprYLmn7EgPiBrb25jaHV1XCA7CivovKrlu5MgPiByaW5rYWt1XCA7Civnmb7lrpggPiBoeWFra2FuXCA7CivkvZzpoqggPiBzYWt1ZnV1XCA7Civppqzpo58gPiBiYXNob2t1XCA7CivoiabmqYsgPiBrYW5reW91XCA7CivmqJnlrpogPiBoeW91dGVpXCA7CivohqjohLkgPiBib3VjaG91XCA7CivlgJboh6MgPiBrb3VzaGluXCA7CivmqKrlpaogPiBvdWRhdHN1XCA7Civnmb3lrZAgPiBzaGlyb2tvXCA7Civlt6jllYYgPiBreW9zaG91XCA7Civlho3lkYogPiBzYWlrb2t1XCA7Civpp4XplbcgPiBla2ljaG91XCA7Civou43mpb0gPiBndW5nYWt1XCA7CivlsbHoiosgPiB5YW1haW1vXCA7CivluJ3kuqwgPiB0ZWlreW91XCA7CivovLvlsIQgPiBmdWt1c2hhXCA7CivlhaXlo7AgPiBuaXNzaG91XCA7Civou73mjbcgPiBrZWlzaG91XCA7Civlr4bpm7IgPiBtaXRzdXVuXCA7Civlgr7ms6ggPiBrZWljaHV1XCA7CivlhaXloqggPiBpcmV6dW1pXCA7Civlr4bpm4YgPiBtaXNzaHV1XCA7Civog7jplpMgPiBreW91a2FuXCA7CivoibLmn4QgPiBpcm9nYXJhXCA7Civog4zpq5ggPiBzZWl0YWthXCA7CivlsIbou40gPiBzaG91Z3VuXCA7CivmpoLms4EgPiBnYWlreW91XCA7Civlhajln58gPiB6ZW4nJ2lraVwgOwor6Iqz5b+DID4gaG91c2hpblwgOwor5YWl5aC0ID4gbnl1dWpvdVwgOwor55uX5L2cID4gdG91c2FrdVwgOwor5YWJ5a2mID4ga291Z2FrdVwgOwor5bGx6IW5ID4gc2FucHVrdVwgOwor5YWI5a2mID4gc2VuZ2FrdVwgOwor6ISa6YOoID4ga3lha3VidVwgOwor5YWs5Zu9ID4ga291a29rdVwgOwor5YWl5Z+OID4gbnl1dWpvdVwgOwor6IO06ZW3ID4gZG91bmFnYVwgOwor5qmL5Y+wID4ga3lvdWRhaVwgOwor5YOn5pyNID4gc291ZnVrdVwgOwor6aaY6aaWID4ga2FrdXNodVwgOwor5YaN5YudID4gc2Fpc2hvdVwgOwor6IW56JS1ID4gZnVrdXpvdVwgOwor6Imv5p2QID4gcnlvdXphaVwgOwor55mH5oCnID4ga2Fuc2hvdVwgOwor5L2O6aGNID4gdGVpZ2FrdVwgOwor6a2a5ouTID4gZ3lvdGFrdVwgOwor6LyU5by8ID4gaG9oaXRzdVwgOwor5YWo5Zu9ID4gemVuZ29rdVwgOwor5YWl5Z2RID4gbnl1dWtvdVwgOwor6L6b5LqlID4gc2hpbmdhaVwgOwor6Imv5pu4ID4gcnlvdXNob1wgOwor5a6w6aCYID4gc2FpcnlvdVwgOwor55m95aSqID4gc2hpcmF0YVwgOwor55m95aScID4gYnlha3V5YVwgOwor6Lm054iqID4ga2VkenVtZVwgOwor5beo5YygID4ga3lvc2hvdVwgOwor6LWk6YyGID4gYWthc2FiaVwgOwor5YWl5ZujID4gbnl1dWRhblwgOwor5bel5Y2aID4ga291aGFrdVwgOwor5YWE5auBID4gYW5peW9tZVwgOwor5beu5YilID4gc2FiZXRzdVwgOwor5Yaq5LmXID4gYmVraWpvdVwgOwor6LuN5pyNID4gZ3VucHVrdVwgOwor5bel5YygID4ga291c2hvdVwgOwor55Sy6IOEID4ga2F0Y2h1dVwgOwor6Ieq55m6ID4gamloYXRzdVwgOwor55Wi56ufID4gaGlra3lvdVwgOwor5qCh6ZayID4ga291ZXRzdVwgOwor55aO55WlID4gc29yeWFrdVwgOwor5bKp56SBID4gZ2Fuc2hvdVwgOwor5qCh6ZW3ID4ga291Y2hvdVwgOwor5YK35q2OID4gc2hvdXRhblwgOwor6Imy5paHID4gaXJvYnVtaVwgOwor55qH5Zu9ID4ga291a29rdVwgOwor6aaW6aCYID4gc2h1cnlvdVwgOwor6LWk6YeRID4gYWthZ2FuZVwgOwor6amV6IKGID4ga3lvdXNoaVwgOwor5a2m6b2iID4gZ2FrdXJlaVwgOwor5YWx5ZCMID4ga3lvdWRvdVwgOwor5a616ZeHID4geW9peWFtaVwgOwor5bCP6KuWID4gc2hvdXJvblwgOwor5YWH5aSJID4ga3lvdWhlblwgOwor5L2T6ZW3ID4gdGFpY2hvdVwgOwor5YGc55WZID4gdGVpcnl1dVwgOwor5biC5LitID4gc2hpY2h1dVwgOwor5bKp55+zID4gZ2Fuc2VraVwgOwor6IW56Iq4ID4gaGFyYWdlaVwgOwor5YWs5ZGKID4ga291a29rdVwgOwor55m95ZywID4gc2hpcm9qaVwgOwor5qC46YW4ID4ga2FrdXNhblwgOwor5YWt5ZCIID4gcmlrdWdvdVwgOwor6Ii55q2MID4gZnVuYXV0YVwgOwor5a++6LGhID4gdGFpc2hvdVwgOwor6aiw6JC9ID4gdG91cmFrdVwgOwor5qSc55arID4ga2VuJydla2lcIDsKK+iFkOidlSA+IGZ1c2hva3VcIDsKK+WumumhjSA+IHRlaWdha3VcIDsKK+WBj+eZliA+IGhlbnBla2lcIDsKK+Wwj+ioiCA+IHNob3VrZWlcIDsKK+WGheWCtyA+IG5haXNob3VcIDsKK+WFuOWJhyA+IHRlbnNva3VcIDsKK+WFheWhniA+IGp1dXNva3VcIDsKK+ajkue4niA+IGJvdWppbWFcIDsKK+WFreWNgSA+IHJva3VqdXVcIDsKK+i1pOmBkyA+IHNla2lkb3VcIDsKK+S9temAsiA+IGhlaXNoaW5cIDsKK+eUn+iCiSA+IHNlaW5pa3VcIDsKK+akjeeariA+IHNob2t1aGlcIDsKK+Wun+mcgCA+IGppdHN1anVcIDsKK+WFjeWbmiA+IG1lbnNodXVcIDsKK+mnhumAkCA+IGt1Y2hpa3VcIDsKK+mnkOi7iiA+IGNodXVzaGFcIDsKK+agqumHkSA+IGthYnVraW5cIDsKK+iHqueOiSA+IGppZ3lva3VcIDsKK+Wuv+mKrSA+IHlhZG9zZW5cIDsKK+mmlumVtyA+IHNodWNob3VcIDsKK+iFueiDjCA+IGZ1a3VoYWlcIDsKK+WFqOWLnSA+IHplbnNob3VcIDsKK+afsemgrSA+IGNodXV0b3VcIDsKK+eXm+ajkiA+IHRzdXVib3VcIDsKK+eXheatuyA+IGJ5b3VzaGlcIDsKK+WCjea1gSA+IGJvdXJ5dXVcIDsKK+WwhOinkiA+IHNoYWtha3VcIDsKK+WuoumWkyA+IGt5YWt1bWFcIDsKK+W3peS9nCA+IGtvdXNha3VcIDsKK+WEgOW8jyA+IGdpc2hpa2lcIDsKK+i7iuaOjCA+IHNoYXNob3VcIDsKK+eUsOe0syA+IGRlbnNoaW5cIDsKK+WCjeazqCA+IGJvdWNodXVcIDsKK+WvvuiosyA+IHRhaXlha3VcIDsKK+WFvOS/riA+IGtlbnNodXVcIDsKK+i1pOi7jSA+IHNla2lndW5cIDsKK+iEgui6qyA+IGFidXJhbWlcIDsKK+Wzoea5viA+IGt5b3V3YW5cIDsKK+i7jeaLoSA+IGd1bmtha3VcIDsKK+eZvuWRsyA+IGh5YWt1bWlcIDsKK+WvvuinkiA+IHRhaWtha3VcIDsKK+afsemdoiA+IGNodXVtZW5cIDsKK+W3qOS5syA+IGt5b255dXVcIDsKK+WFrOWFsSA+IGtvdWt5b3VcIDsKK+WFseWDjSA+IGt5b3Vkb3VcIDsKK+eUu+ethiA+IGdhaGl0c3VcIDsKK+S+m+impyA+IGt5b3VyYW5cIDsKK+WvuOiplSA+IHN1bnB5b3VcIDsKK+WFseWCrCA+IGt5b3VzYWlcIDsKK+WGheS4rSA+IHVjaGlqdXVcIDsKK+WuuemHjyA+IHlvdXJ5b3VcIDsKK+iFq+iEuSA+IHNodWNob3VcIDsKK+WvhumAmiA+IG1pdHRzdXVcIDsKK+iIn+atjCA+IGZ1bmF1dGFcIDsKK+WAtueZuiA+IGd1aGF0c3VcIDsKK+WFvOS7uyA+IGtlbicnbmluXCA7Civlhazlg5UgPiBrb3Vib2t1XCA7CivlhaXlhqYgPiBueXV1a291XCA7CivkvZPph48gPiB0YWlyeW91XCA7CivlhazlgrcgPiBrb3VzaG91XCA7CivlrpfploAgPiBzaHV1bW9uXCA7Civoh4bnl4UgPiBva3VieW91XCA7CivlhajlhKogPiB6ZW4nJ3l1dVwgOwor6Lu95bCRID4ga2Vpc2hvdVwgOwor5YWl5YWaID4gbnl1dXRvdVwgOwor5L6R6Ke0ID4geXV1c2hvdVwgOwor5YGP54utID4gaGVua3lvdVwgOwor55Wl55S7ID4gcnlha3VnYVwgOwor5L+457WmID4gaG91a3l1dVwgOwor5a6/6YGLID4gc2h1a3V1blwgOwor6Ii55p2/ID4gZnVuYWl0YVwgOwor5L+K6IuxID4gc2h1bicnZWlcIDsKK+iKs+WiqCA+IGhvdWJva3VcIDsKK+WBj+eLgiA+IGhlbmt5b3VcIDsKK+eZvuWMgSA+IGh5YWt1bWVcIDsKK+eUn+e1uSA+IHN1enVzaGlcIDsKK+i7n+W8sSA+IG5hbmpha3VcIDsKK+S8kemkqCA+IGt5dXVrYW5cIDsKK+Wvhui8uCA+IG1pdHN1eXVcIDsKK+WFmuWJhyA+IHRvdXNva3VcIDsKK+S/rue5lSA+IHNodXV6ZW5cIDsKK+WwseiIqiA+IHNodXVrb3VcIDsKK+S8kemkiiA+IGt5dXV5b3VcIDsKK+S+i+iovCA+IHJlaXNob3VcIDsKK+amtOW8viA+IHJ5dXVkYW5cIDsKK+WxseepjSA+IHNhbnNla2lcIDsKK+iItuadpSA+IGhha3VyYWlcIDsKK+WxseeonCA+IHNhbnJ5b3VcIDsKK+i1pOiypyA+IHNla2loaW5cIDsKK+S/rue3tCA+IHNodXVyZW5cIDsKK+iLseWCkSA+IGVpa2V0c3VcIDsKK+alteaakSA+IGdva3VzaG9cIDsKK+eXheajnyA+IGJ5b3V0b3VcIDsKK+iCjOmqqCA+IGtpa290c3VcIDsKK+iJr+aApyA+IHJ5b3VzZWlcIDsKK+i2s+iKuCA+IGFzaGlnZWlcIDsKK+iFuOe3miA+IGNob3VzZW5cIDsKK+WDp+W9oiA+IHNvdWd5b3VcIDsKK+i8quWUsSA+IHJpbnNob3VcIDsKK+WBieeJqSA+IGVyYW1vbm9cIDsKK+eZveWIgyA+IGhha3VqaW5cIDsKK+WFrOS8kSA+IGtvdWt5dXVcIDsKK+S+ruiUkSA+IGJ1YmV0c3VcIDsKK+iLpeWFmiA+IHdha2F0b3VcIDsKK+eXheaguSA+IGJ5b3Vrb25cIDsKK+S8mumbhiA+IGthaXNodXVcIDsKK+WxkeezuCA+IGt1enVpdG9cIDsKK+ain+e9qiA+IGt5b3V6YWlcIDsKK+iLpeWDpyA+IHdha2F6b3VcIDsKK+eZveWFtSA+IGhha3VoZWlcIDsKK+WFiOWLnSA+IHNlbnNob3VcIDsKK+S9jumAnyA+IHRlaXNva3VcIDsKK+WFpeS8miA+IG55dXVrYWlcIDsKK+WxkeexsyA+IGt1enVtYWlcIDsKK+i7veWmmSA+IGtlaW15b3VcIDsKK+iHqua7hSA+IGppbWV0c3VcIDsKK+S8kembuyA+IGt5dXVkZW5cIDsKK+WztuaguSA+IHNoaW1hbmVcIDsKK+WtpumiqCA+IGdha3VmdXVcIDsKK+WDteWxjSA+IGt5b25zaGlcIDsKK+WFq+S4gSA+IGhhdGNob3VcIDsKK+WFiOWIuyA+IHNlbmtva3VcIDsKK+iCiemlhSA+IG5pa3VtYW5cIDsKK+S9teiqrSA+IGhlaWRva3VcIDsKK+mmrOi3syA+IHVtYXRvYmlcIDsKK+i7ouWxniA+IHRlbnpva3VcIDsKK+i1pOiqoCA+IHNla2lzZWlcIDsKK+iJr+W4qyA+IHJ5b3VzaGlcIDsKK+S8mumVtyA+IGthaWNob3VcIDsKK+WFh+WIgyA+IGt5b3VqaW5cIDsKK+WumumHjyA+IHRlaXJ5b3VcIDsKK+iJr+W3pSA+IHJ5b3Vrb3VcIDsKK+agvOiogCA+IGtha3VnZW5cIDsKK+mngeirliA+IGJha3Vyb25cIDsKK+WFg+WHtiA+IGdlbmt5b3VcIDsKK+iCiemhniA+IG5pa3VydWlcIDsKK+iHvOatryA+IGt5dXVzaGlcIDsKK+eWvOacqCA+IGhpaXJhZ2lcIDsKK+i7ouWuhSA+IHRlbnRha3VcIDsKK+aghOmBlCA+IGVpdGF0c3VcIDsKK+i7ouWtpiA+IHRlbmdha3VcIDsKK+eZuuS/oSA+IGhhc3NoaW5cIDsKK+S8kemWkSA+IGt5dXVrYW5cIDsKK+iInuabsiA+IGJ1a3lva3VcIDsKK+iHqua0uyA+IGppa2F0c3VcIDsKK+S/uOemhCA+IGhvdXJva3VcIDsKK+S/uOelvyA+IGhvdXJva3VcIDsKK+iLpeS6uiA+IHdha291ZG9cIDsKK+alveaJjSA+IGdha3VzYWlcIDsKK+WvhuitsCA+IG1pdHN1Z2lcIDsKK+iIiOalrSA+IGtvdWd5b3VcIDsKK+WFg+WFhyA+IGdlbmt5b3VcIDsKK+mmmei7iiA+IGt5b3VzaGFcIDsKK+S/l+e0ryA+IHpva3VydWlcIDsKK+WtpumamyA+IGdha3VzYWlcIDsKK+WBnOaziiA+IHRlaWhha3VcIDsKK+aliuafsyA+IHlvdXJ5dXVcIDsKK+eZveS6uiA+IGhha3VqaW5cIDsKK+S/oeeuoSA+IHNoaW5rYW5cIDsKK+Wwj+iIhSA+IGtvanV1dG9cIDsKK+iHquaxuiA+IGppa2V0c3VcIDsKK+eZvuS6iyA+IGh5YWt1amlcIDsKK+Wyqea8vyA+IGdhbnNob3VcIDsKK+eQhumrqiA+IHJpaGF0c3VcIDsKK+WvhuiqniA+IG1pdHN1Z29cIDsKK+WFhuWAmSA+IGNob3Vrb3VcIDsKK+iDuOilnyA+IGt5b3VraW5cIDsKK+mrmOacqCA+IGtvdWJva3VcIDsKK+Wwv+euoSA+IG55b3VrYW5cIDsKK+msseWxiCA+IHVra3V0c3VcIDsKK+i7jeWxniA+IGd1bnpva3VcIDsKK+eXm+aGpCA+IHRzdXVmdW5cIDsKK+WxseeVqiA+IHlhbWFiYW5cIDsKK+alveaDsyA+IGdha3Vzb3VcIDsKK+iHquauuiA+IGppc2F0c3VcIDsKK+Wwj+iEsyA+IHNob3Vub3VcIDsKK+WEquWLnSA+IHl1dXNob3VcIDsKK+iEseiHvCA+IGRha2t5dXVcIDsKK+mmlui2syA+IHNodXNva3VcIDsKK+iEseiHrSA+IGRhc3NodXVcIDsKK+i7jeWwhiA+IGd1bnNob3VcIDsKK+WCt+aCtCA+IHNob3VzdWlcIDsKK+WBj+a1gSA+IGhlbnJ5dXVcIDsKK+iEs+iGnCA+IG5vdW1ha3VcIDsKK+WvkuihjCA+IGthbmd5b3VcIDsKK+WFiOS7uyA+IHNlbicnbmluXCA7CivlsI/og54gPiBzaG91aG91XCA7Civnl5vmhJ8gPiB0c3V1a2FuXCA7Civnj77pq5ggPiBnZW5kYWthXCA7CivlsI/og4YgPiBzaG91dGFuXCA7Civoh6PmsJEgPiBzaGlubWluXCA7Civou43lrrkgPiBndW4nJ3lvdVwgOwor6ay85amGID4gb25pYmFiYVwgOwor5L2c6KmpID4gc2FrdXNoaVwgOwor5L2c6KmeID4gc2FrdXNoaVwgOwor6ISx6IW4ID4gZGF0Y2hvdVwgOwor5a6F6YWNID4gdGFrdWhhaVwgOwor6LuN5a2mID4gZ3VuZ2FrdVwgOwor5qCh6Ki7ID4ga291Y2h1dVwgOwor5LyR6YyYID4ga3l1dXN1aVwgOwor55Sw55WRID4gZGVucGF0YVwgOwor5YK35b+wID4gc2hvdXN1aVwgOwor5bCR6ICFID4gc2hvdXNoYVwgOwor55eb5oGoID4gdHN1dWtvblwgOwor6Iez5qW1ID4gc2hpZ29rdVwgOwor5qW15oKqID4gZ29rdWFrdVwgOwor5a6J6YC4ID4gYW4nJ2l0c3VcIDsKK+S9k+iqvyA+IHRhaWNob3VcIDsKK+WDu+WcsCA+IGhla2ljaGlcIDsKK+WDu+WcqCA+IGhla2l6YWlcIDsKK+Wumui3oSA+IGpvdXNla2lcIDsKK+mrmOaVmSA+IGtvdWt5b3VcIDsKK+alreaFiyA+IGd5b3V0YWlcIDsKK+i8quS9nCA+IHJpbnNha3VcIDsKK+eXm+W/qyA+IHRzdXVrYWlcIDsKK+WyqeazoiA+IGl3YW5hbWlcIDsKK+Wzu+aLkiA+IHNodW5reW9cIDsKK+S9juiqvyA+IHRlaWNob3VcIDsKK+iJr+WmuyA+IHJ5b3VzYWlcIDsKK+WIu+OAhSA+IGtva2tva3VcIDsKK+iHhua4rCA+IG9rdXNva3VcIDsKK+S9nOijvSA+IHNha3VzZWlcIDsKK+eUo+eXmyA+IHNhbnRzdXVcIDsKK+iBt+majiA+IHNob2trYWlcIDsKK+iJr+WlvSA+IHJ5b3Vrb3VcIDsKK+eVnea6nSA+IHVuZW1pem9cIDsKK+alteW+riA+IGt5b2t1YmlcIDsKK+aenOmjnyA+IGthc2hva3VcIDsKK+ahkeiLlyA+IHNvdWJ5b3VcIDsKK+iGnOeKtiA+IG1ha3Vqb3VcIDsKK+eUmOeariA+IGFtYWthd2FcIDsKK+i1pOiVqiA+IGFrYWthYnVcIDsKK+WxseeKrCA+IHlhbWFpbnVcIDsKK+S/iuerpSA+IHNodW5kb3VcIDsKK+alveW4qyA+IGdha3VzaGlcIDsKK+ahkeiJsiA+IGt1d2Fpcm9cIDsKK+iFleeroCA+IHdhbnNob3VcIDsKK+mmrOihkyA+IGJhanV0c3VcIDsKK+eXheaFiyA+IGJ5b3V0YWlcIDsKK+iFleeriyA+IHVkZXRhdGVcIDsKK+afqei7iiA+IGt5dXVzaGFcIDsKK+iFueeZkiA+IGhhcmFpc2VcIDsKK+iInuaJhyA+IG1haW91Z2lcIDsKK+WDheWwkSA+IGtpbnNob3VcIDsKK+WvruiIjiA+IHJ5b3VzaGFcIDsKK+alteW6piA+IGt5b2t1ZG9cIDsKK+WBlealvSA+IGthaXJha3VcIDsKK+eQg+mdoiA+IGt5dXVtZW5cIDsKK+Wwj+e3qCA+IHNob3VoZW5cIDsKK+iKs+S/oSA+IGhvdXNoaW5cIDsKK+eXheaCoyA+IGJ5b3VrYW5cIDsKK+eUu+eEtiA+IGtha3V6ZW5cIDsKK+eQg+mbuyA+IGt5dXVkZW5cIDsKK+WuouiqniA+IGt5YWt1Z29cIDsKK+aelemgrSA+IGNoaW50b3VcIDsKK+iIueW5hSA+IHNlbnB1a3VcIDsKK+alteW3piA+IGt5b2t1c2FcIDsKK+eToueuqiA+IGh5b3V0YW5cIDsKK+iKuOS6iyA+IGdlaWdvdG9cIDsKK+akjeaouSA+IHNob2t1anVcIDsKK+Wun+ipsSA+IGppdHN1d2FcIDsKK+eWvuaCoyA+IHNoaWtrYW5cIDsKK+mqqOagvCA+IGtva2tha3VcIDsKK+ahg+iJsiA+IG1vbW9pcm9cIDsKK+aknOagoSA+IGtlbmd5b3VcIDsKK+Wun+iovCA+IGppc3Nob3VcIDsKK+S7iumggyA+IGltYWdvcm9cIDsKK+iFsOeXmyA+IHlvdXRzdXVcIDsKK+Wwj+eykiA+IGtvdHN1YnVcIDsKK+alreW4qyA+IHdhemFzaGlcIDsKK+iKseS7oyA+IGhhbmFkYWlcIDsKK+WuouimsyA+IGt5YWtrYW5cIDsKK+S/l+ecvCA+IHpva3VnYW5cIDsKK+S9v+iHoyA+IHNoaXNoaW5cIDsKK+WvkuiPiiA+IGthbmdpa3VcIDsKK+S8kei8iSA+IGt5dXVzYWlcIDsKK+Wwu+ebriA+IHNoaXJpbWVcIDsKK+WumuiplSA+IHRlaWh5b3VcIDsKK+S8kei7oiA+IGt5dXV0ZW5cIDsKK+eXheW8iiA+IGJ5b3VoZWlcIDsKK+WCt+WusyA+IHNob3VnYWlcIDsKK+WumuiosyA+IHRlaXlha3VcIDsKK+i7jeWbvSA+IGd1bmtva3VcIDsKK+mtlOWKmyA+IG1hcnlva3VcIDsKK+aknOadnyA+IGtlbnNva3VcIDsKK+WxheeVmSA+IGt5b3J5dXVcIDsKK+i7veWCtyA+IGtlaXNob3VcIDsKK+mkqOmVtyA+IGthbmNob3VcIDsKK+WyqeajmiA+IGl3YWRhbmFcIDsKK+S7j+mZgCA+IGJ1dHN1ZGFcIDsKK+Wus+iZqyA+IGdhaWNodXVcIDsKK+WwseecoCA+IHNodXVtaW5cIDsKK+iEh+iDvSA+IHdha2lub3VcIDsKK+WEhOWFhiA+IG9rdWNob3VcIDsKK+eXheW3oyA+IGJ5b3Vzb3VcIDsKK+i1pOiGmiA+IGFrYWhhZGFcIDsKK+iznumHkSA+IHNob3VraW5cIDsKK+Wwj+erpSA+IGtvd2FwcGFcIDsKK+S7j+mWoyA+IGJ1a2tha3VcIDsKK+S/kOeZuiA+IHJpaGF0c3VcIDsKK+S7j+mWkyA+IGJ1dHN1bWFcIDsKK+i1pOiFuSA+IGFrYWhhcmFcIDsKK+i7veS/oSA+IGtlaXNoaW5cIDsKK+iFjuefsyA+IGppbnNla2lcIDsKK+WztuW6gSA+IHRvdWNob3VcIDsKK+iJr+WTgSA+IHJ5b3VoaW5cIDsKK+S/l+eUqCA+IHpva3V5b3VcIDsKK+iDg+iiiyA+IGlidWt1cm9cIDsKK+i7veS9uyA+IGtlaWNob3VcIDsKK+Wzu+W2uiA+IHNodW5yZWlcIDsKK+Wzu+W2riA+IHNodW5rZW5cIDsKK+W5tOOAhSA+IG5lbicnbmVuXCA7CivlhJLku48gPiBqdWJ1dHN1XCA7CivprYXlipsgPiBtaXJ5b2t1XCA7Civpq5jlvrMgPiBrb3V0b2t1XCA7CivosrjplpMgPiBrYXNoaW1hXCA7Civog7joh4YgPiBreW91b2t1XCA7CivprZrkv6EgPiBneW9zaGluXCA7CivohZXnmb0gPiB3YW5wYWt1XCA7CivotaTogowgPiBha2FoYWRhXCA7Civog7johbogPiBreW91c2VuXCA7CivkuqzpoqggPiBreW91ZnV1XCA7Civog7johZQgPiBreW91a291XCA7Civmpb3lpKkgPiByYWt1dGVuXCA7Civoia/lj4sgPiByeW91eXV1XCA7CivohLHnqYAgPiBkYWtrb2t1XCA7Civnj63plbcgPiBoYW5jaG91XCA7CivkvJ3oqqYgPiBkZW5zaG91XCA7CivlsIrnp7AgPiBzb25zaG91XCA7CivlgYPmnIggPiBlbmdldHN1XCA7Civkv67nhYkgPiBzaHV1cmVuXCA7Civlr77nrZYgPiB0YWlzYWt1XCA7CivlsI/npL4gPiBzaG91c2hhXCA7Civmpb3lo6sgPiBnYWt1c2hpXCA7CivlgJ/mrL4gPiBzaGFra2FuXCA7Civmpb3lo4cgPiBnYWt1ZGFuXCA7Civkvr/nm4ogPiBiZW4nJ2VraVwgOwor5Lya6KqtID4ga2FpZG9rdVwgOwor5qO65qG2ID4ga2FuJydva2VcIDsKK+i1t+e1kCA+IGtpa2V0c3VcIDsKK+iIquWumSA+IGtvdWNodXVcIDsKK+S9juiQvSA+IHRlaXJha3VcIDsKK+eXheWusyA+IGJ5b3VnYWlcIDsKK+WBieaWuSA+IGVyYWdhdGFcIDsKK+ain+eMmyA+IGt5b3Vtb3VcIDsKK+eVjOaomSA+IGthaWh5b3VcIDsKK+izg+mKrSA+IGNoaW5zZW5cIDsKK+S9nuiHoyA+IG5laXNoaW5cIDsKK+S9meiJsiA+IHlvc2hva3VcIDsKK+mjsumjnyA+IGluc2hva3VcIDsKK+WDmuWPiyA+IHJ5b3V5dXVcIDsKK+S8keismyA+IGt5dXVrb3VcIDsKK+izg+mKgCA+IGNoaW5naW5cIDsKK+WtpuizhyA+IGdha3VzaGlcIDsKK+eUuuawkSA+IGNob3VtaW5cIDsKK+WCvuWbvSA+IGtlaWtva3VcIDsKK+S6pOmfvyA+IGtvdWt5b3VcIDsKK+iJr+WJpCA+IHJ5b3V6YWlcIDsKK+S/gueVmSA+IGtlaXJ5dXVcIDsKK+eUt+awlyA+IG90b2tvZ2lcIDsKK+Wwj+efpSA+IHNob3VjaGlcIDsKK+WvvuensCA+IHRhaXNob3VcIDsKK+izg+mHkSA+IGNoaW5naW5cIDsKK+alk+WxniA+IGZ1dXpva3VcIDsKK+iDg+iWrCA+IGlndXN1cmlcIDsKK+S7memDtyA+IHNlbmt5b3VcIDsKK+agl+iJsiA+IGt1cmlpcm9cIDsKK+izvOiqrSA+IGtvdWRva3VcIDsKK+i7iuWKmyA+IHNoYXJpa2lcIDsKK+alveWboyA+IGdha3VkYW5cIDsKK+iHpeaJgCA+IGZ1c2hpZG9cIDsKK+S9k+iHrSA+IHRhaXNodXVcIDsKK+mmrOiEmiA+IGJha3lha3VcIDsKK+S+jeeriyA+IGppcml0c3VcIDsKK+WvuOenkiA+IHN1bmJ5b3VcIDsKK+eUsuauuyA+IGtvdWtha3VcIDsKK+i1t+ethiA+IGtpaGl0c3VcIDsKK+mnkOexsyA+IGNodXViZWlcIDsKK+S5vumtmiA+IGhvc2hpdW9cIDsKK+iHs+aApSA+IHNoaWt5dXVcIDsKK+iCneimgSA+IGthbicneW91XCA7CivnlJ/mtq8gPiBzaG91Z2FpXCA7CivkvJrooYYgPiBrYWlzaHV1XCA7Civmo67mnpcgPiBzaGlucmluXCA7CivotaTntYQgPiBha2FndW1pXCA7Civou6Lku7sgPiB0ZW4nJ25pblwgOwor5qC857SNID4ga2FrdW5vdVwgOwor6auY5bCaID4ga291c2hvdVwgOwor5bCP55mqID4ga29zaGFrdVwgOwor6LWk57SZID4gYWthZ2FtaVwgOwor6ama5q2OID4ga3lvdXRhblwgOwor6LW356uLID4ga2lyaXRzdVwgOwor5YK35ZiGID4gc2hvdXRhblwgOwor5L2c6ICFID4gc2FrdXNoYVwgOwor6aOf6aSMID4gc2hva3VqaVwgOwor6IW45rqAID4gY2hvdW1hblwgOwor5Luy6LK3ID4gbmFrYWdhaVwgOwor55eF5aSJID4gYnlvdWhlblwgOwor5YOl5YCWID4gZ3lvdWtvdVwgOwor6LOg6LKsID4gYmFpc2VraVwgOwor5YOn5L+XID4gc291em9rdVwgOwor6LOe6LObID4gc2hvdXNhblwgOwor5bCK55qHID4gc29uJydub3VcIDsKK+eOhOm6piA+IGdlbmJha3VcIDsKK+iEiOeuoSA+IG15YWtrYW5cIDsKK+aeoui7uCA+IHN1dWppa3VcIDsKK+iInuWnqyA+IG1haWhpbWVcIDsKK+eXm+WYhiA+IHRzdXV0YW5cIDsKK+WwqOeKrCA+IG11a3VpbnVcIDsKK+ajn+aigSA+IHRvdXJ5b3VcIDsKK+WutuiBtyA+IGthc2hva3VcIDsKK+agueeykiA+IGtvbnJ5dXVcIDsKK+WxoOauuiA+IHRvc2F0c3VcIDsKK+iziui7jSA+IHpva3VndW5cIDsKK+iFuOa2siA+IGNob3Vla2lcIDsKK+iIjuWuhSA+IHNoYXRha3VcIDsKK+WuuOe/sCA+IHNoaW5rYW5cIDsKK+i6q+WRvSA+IHNoaW5tZWlcIDsKK+eWq+WtpiA+IGVraWdha3VcIDsKK+Wwj+eUuiA+IGtvbWFjaGlcIDsKK+Wwj+eUtyA+IGtvb3Rva29cIDsKK+iFsOa5ryA+IGtvc2hpeXVcIDsKK+WwhOeahCA+IHNoYXRla2lcIDsKK+Wwj+eUqCA+IHNob3V5b3VcIDsKK+iEs+eXhyA+IG5vdXNob3VcIDsKK+iEs+eXhSA+IG5vdWJ5b3VcIDsKK+Wwj+eUnyA+IHNob3VzZWlcIDsKK+iHquW+iyA+IGppcml0c3VcIDsKK+WxseakkiA+IHNhbnNob3VcIDsKK+S9s+evgCA+IGthc2V0c3VcIDsKK+S/ruazlSA+IHNodXVob3VcIDsKK+S7iumAsSA+IGtvbnNodXVcIDsKK+iBlumAsSA+IHNlaXNodXVcIDsKK+S9jue/vCA+IHRlaXlva3VcIDsKK+iJsuS6iyA+IGlyb2dvdG9cIDsKK+afv+iJsiA+IGtha2lpcm9cIDsKK+eSsOekgSA+IGthbnNob3VcIDsKK+eUsOalvSA+IGRlbmdha3VcIDsKK+S7iui/hCA+IGltYW1hZGVcIDsKK+S5vumjryA+IGhvc2hpaWlcIDsKK+iJr+S6uiA+IHJ5b3VqaW5cIDsKK+Wuv+e4gSA+IHNodWt1ZW5cIDsKK+iHo+W+kyA+IHNoaW5qdXVcIDsKK+WBtOWwhCA+IHNva3VzaGFcIDsKK+iFueawtCA+IGZ1a3VzdWlcIDsKK+iHqOW6iiA+IHJpbnNob3VcIDsKK+i3i+a4iSA+IGJhc3Nob3VcIDsKK+S+teeKryA+IHNoaW5wYW5cIDsKK+WvvueXhyA+IHRhaXNob3VcIDsKK+S5s+mmmSA+IG55dXVrb3VcIDsKK+S7ruiqrCA+IGthc2V0c3VcIDsKK+WwgueUqCA+IHNlbicneW91XCA7CivnlLrmnZEgPiBjaG91c29uXCA7CivlgJLmnKggPiB0b3Vib2t1XCA7CivlgY/lv4MgPiBoZW5zaGluXCA7Civoh6jluK0gPiByaW5zZWtpXCA7Civos57oqZ4gPiBzaG91c2hpXCA7CivmnrboqK0gPiBrYXNldHN1XCA7Civkv67mraMgPiBzaHV1c2VpXCA7CivmnKjprZogPiBtb2t1Z3lvXCA7CivogbTorJsgPiBjaG91a291XCA7CivlgqzlkYogPiBzYWlrb2t1XCA7Civpq5jlo7AgPiB0YWthZ29lXCA7CivkvbXnp7AgPiBoZWlzaG91XCA7CivkuqTpjK8gPiBrb3VzYWt1XCA7CivmpoLliYcgPiBnYWlzb2t1XCA7Civku67oqK0gPiBrYXNldHN1XCA7CivogJDpnIcgPiB0YWlzaGluXCA7CivmoITogbcgPiBlaXNob2t1XCA7Civku4/ot6EgPiBidXNzZWtpXCA7CivkvpvnlKggPiBreW91eW91XCA7CivosqvpgJogPiBrYW50c3V1XCA7CivogZbouZ8gPiBzZWlzZWtpXCA7Civls7blm70gPiB0b3Vnb2t1XCA7CivlsIrnjosgPiBzb24nJ25vdVwgOwor55Sj5qWtID4gc2FuZ3lvdVwgOwor6IWw5rCXID4ga29zaGlrZVwgOwor6LuK5LitID4gc2hhY2h1dVwgOwor5Luw6KaWID4gZ3lvdXNoaVwgOwor5YK35Ym1ID4gc2hvdXNvdVwgOwor6LuK5LihID4gc2hhcnlvdVwgOwor6aOf6ZaTID4gc2hva2thblwgOwor5Luu6KaqID4ga2FyaW95YVwgOwor6IKy6IuXID4gaWt1YnlvdVwgOwor5a6Y6IO9ID4ga2FuJydub3VcIDsKK+izg+iyuCA+IGNoaW50YWlcIDsKK+WyoeaDmiA+IG9rYWJvcmVcIDsKK+iBlui3oSA+IHNlaXNla2lcIDsKK+aeneixhiA+IGVkYW1hbWVcIDsKK+adkemVtyA+IHNvbmNob3VcIDsKK+iBtOiosSA+IGNob3VreW9cIDsKK+acnemuriA+IGNob3VzZW5cIDsKK+eUn+alrSA+IG5hcml3YWlcIDsKK+S7o+iqrSA+IGRhaWRva3VcIDsKK+ePvuixoSA+IGdlbnNob3VcIDsKK+S5s+mgrSA+IG55dXV0b3VcIDsKK+Wwj+eJhyA+IHNob3VoZW5cIDsKK+Wun+e/kiA+IGppc3NodXVcIDsKK+S7suijgSA+IGNodXVzYWlcIDsKK+Wwj+eIqiA+IGtvZHp1bWVcIDsKK+eWjuWvhiA+IHNvbWl0c3VcIDsKK+iBtOinoyA+IGNob3VrYWlcIDsKK+iyp+i+siA+IGhpbicnbm91XCA7Civku6PoqLogPiBkYWlzaGluXCA7CivogbToppYgPiBjaG91c2hpXCA7Civohbrmp5ggPiBzZW4nJ3lvdVwgOwor5bGe5qC8ID4gem9ra2FrdVwgOwor5YK35YW1ID4gc2hvdWhlaVwgOwor5qW95YW4ID4gZ2FrdXRlblwgOwor55S75pWwID4ga2FrdXN1dVwgOwor5L2O57SaID4gdGVpa3l1dVwgOwor6Ia65oeyID4geW91Y2hvdVwgOwor5YCN5penID4gYmFpa3l1dVwgOwor6auY5ZynID4ga291YXRzdVwgOwor6IKd6JGJID4ga2FuJyd5b3VcIDsKK+eUuuaUvyA+IGNob3VzZWlcIDsKK+S/rualrSA+IHNodWd5b3VcIDsKK+alteWIkSA+IGt5b2trZWlcIDsKK+WyqeW6iiA+IGdhbnNob3VcIDsKK+WvrueUnyA+IHJ5b3VzZWlcIDsKK+eXheWQjSA+IGJ5b3VtZWlcIDsKK+adsemAsiA+IHRvdXNoaW5cIDsKK+agoeeroCA+IGtvdXNob3VcIDsKK+aituajkiA+IGthamlib3VcIDsKK+alteWGoCA+IGt5b2trYW5cIDsKK+alteWGhSA+IGdva3VuYWlcIDsKK+eXheWPiyA+IGJ5b3V5dXVcIDsKK+mqsOWtkCA+IHNhaWtvcm9cIDsKK+WyoeW8lSA+IG9rYWhpa2lcIDsKK+WCtOWDgiA+IHNlbXVzaGlcIDsKK+WBnOWtpiA+IHRlaWdha3VcIDsKK+acsememCA+IHNodXpheWFcIDsKK+Wun+e4viA+IGppc3Nla2lcIDsKK+eXheWOnyA+IGJ5b3VnZW5cIDsKK+alteWFiSA+IGt5b2trb3VcIDsKK+S6qOmAmiA+IGtvdXRzdXVcIDsKK+acrOmgmCA+IGhvbnJ5b3VcIDsKK+S6uui3oSA+IGhpdG9hdG9cIDsKK+S7mOiorSA+IGZ1c2V0c3VcIDsKK+mmlue0miA+IHNodWt5dXVcIDsKK+S+m+eJqSA+IGt1bW90c3VcIDsKK+Wzu+WOsyA+IHNodW5nZW5cIDsKK+ixoemZkCA+IHNob3VnZW5cIDsKK+i6q+S9kyA+IHNoaW50YWlcIDsKK+iHs+WmmSA+IHNoaW15b3VcIDsKK+eUmOaglyA+IGFtYWd1cmlcIDsKK+S7leiosyA+IHNoaXdha2VcIDsKK+iIiOWbvSA+IGtvdWtva3VcIDsKK+S6pOmAmiA+IGtvdXRzdXVcIDsKK+i6jeWLlSA+IHlha3Vkb3VcIDsKK+S7o+ihqCA+IGRhaWh5b3VcIDsKK+S6oumAsiA+IGtvdXNoaW5cIDsKK+eXheWLoiA+IGJ5b3VzZWlcIDsKK+ajsuaBryA+IHNlaXNva3VcIDsKK+iDjOe0hCA+IGhhaXlha3VcIDsKK+WuueepjSA+IHlvdXNla2lcIDsKK+S7j+iqniA+IGJ1dHN1Z29cIDsKK+iFsOakjiA+IHlvdXRzdWlcIDsKK+i6q+S7oyA+IHNoaW5kYWlcIDsKK+eOiemfsyA+IGd5b2t1b25cIDsKK+Wvk+ebriA+IGd1dW1va3VcIDsKK+adpemAsSA+IHJhaXNodXVcIDsKK+iIueWBtCA+IHNlbnNva3VcIDsKK+acrOmchyA+IGhvbnNoaW5cIDsKK+S9k+epjSA+IHRhaXNla2lcIDsKK+acqOmdtCA+IGtpZ3V0c3VcIDsKK+mmmeeusSA+IGtvdWJha29cIDsKK+S8keiIqiA+IGt5dXVrb3VcIDsKK+acnemiqCA+IGFzYWthemVcIDsKK+WvvueFpyA+IHRhaXNob3VcIDsKK+iIt+WBtCA+IGdlbnNva3VcIDsKK+agueeYpCA+IGtvbnJ5dXVcIDsKK+WyqeWxsSA+IGl3YXlhbWFcIDsKK+alveS6uiA+IGdha3VqaW5cIDsKK+ixhumhniA+IG1hbWVydWlcIDsKK+WumOe1piA+IGthbmt5dXVcIDsKK+eOiemcsiA+IGd5b2t1cm9cIDsKK+i6q+S4iiA+IHNoaW5qb3VcIDsKK+iIueS+vyA+IGZ1bmFiaW5cIDsKK+WCrOS/gyA+IHNhaXNva3VcIDsKK+eUn+aWsCA+IHNlaXNoaW5cIDsKK+iEs+a8vyA+IG5vdXNob3VcIDsKK+iEuea6gCA+IGNob3VtYW5cIDsKK+i2heeEtiA+IGNob3V6ZW5cIDsKK+S8nee/kiA+IGRlbnNodXVcIDsKK+eVmeW5tCA+IHJ5dXVuZW5cIDsKK+i0heiCiSA+IHplaW5pa3VcIDsKK+mrmOWPsCA+IHRha2FkYWlcIDsKK+WyqeWupCA+IGl3YW11cm9cIDsKK+S/teaVsCA+IGh5b3VzdXVcIDsKK+aclOmiqCA+IHNha3VmdXVcIDsKK+WtpuiKuCA+IGdha3VnZWlcIDsKK+mmlueroCA+IHNodXNob3VcIDsKK+eUt+aJiyA+IG90b2tvZGVcIDsKK+aiheavkiA+IGJhaWRva3VcIDsKK+akjeWtlyA+IHNob2t1amlcIDsKK+acnemdhCA+IGFzYW1veWFcIDsKK+WxiOacjSA+IGt1cHB1a3VcIDsKK+acnemcpyA+IGFzYWdpcmlcIDsKK+S/oeadoSA+IHNoaW5qb3VcIDsKK+e/sOmVtyA+IGthbmNob3VcIDsKK+iCjOiJsiA+IGhhZGFpcm9cIDsKK+WtpuiIjiA+IGdha3VzaGFcIDsKK+S/oeacmyA+IHNoaW5ib3VcIDsKK+S/ruaVtCA+IHNodXVzZWlcIDsKK+S/oeabuCA+IHNoaW5zaG9cIDsKK+alteS4iiA+IGdva3Vqb3VcIDsKK+eXh+WAmSA+IHNob3Vrb3VcIDsKK+S8keiAlSA+IGt5dXVrb3VcIDsKK+iIueS4rSA+IHNlbmNodXVcIDsKK+S8uOetiyA+IHNoaW5raW5cIDsKK+iCieiJsiA+IG5pa3Vpcm9cIDsKK+S/ruaUuSA+IHNodXVrYWlcIDsKK+WyuOWjgSA+IGdhbnBla2lcIDsKK+WujOe0jSA+IGthbicnbm91XCA7CivkurroqLwgPiBuaW5zaG91XCA7Civkub7phaogPiBrYW5yYWt1XCA7Civnl4fkvosgPiBzaG91cmVpXCA7CivnlaXlrZcgPiByeWFrdWppXCA7CivohqjlvLUgPiBib3VjaG91XCA7CivlsYvmlbcgPiB5YXNoaWtpXCA7Civkv67mkrAgPiBzaHV1c2VuXCA7CivkvI/nvaogPiBmdWt1emFpXCA7Civlr4bnlLsgPiBtaXRzdWdhXCA7Civnl4XkvZMgPiBieW91dGFpXCA7CivogIPph48gPiBrb3VyeW91XCA7CivppKHonJwgPiBhbm1pdHN1XCA7Civlrpjnqq8gPiBrYW4nJ3lvdVwgOwor5LuU6JmrID4gc2hpY2h1dVwgOwor6IC96KqtID4gdGFuZG9rdVwgOwor5bCP5rC0ID4gc2hvdXN1aVwgOwor6IKJ6IWrID4gbmlrdXNodVwgOwor5L+X5pu4ID4gem9rdXNob1wgOwor6ICB6YacID4gcm91c2h1dVwgOwor6amV5oWiID4ga3lvdW1hblwgOwor5YCU5by3ID4ga3Vra3lvdVwgOwor55eF5Lq6ID4gYnlvdW5pblwgOwor5YGP5Z+3ID4gaGVuc2h1dVwgOwor5L+O5p2/ID4gbWFuYWl0YVwgOwor5Lmz6YW4ID4gbnl1dXNhblwgOwor5a2m6ICFID4gZ2FrdXNoYVwgOwor5a6w55u4ID4gc2Fpc2hvdVwgOwor5Li76aCYID4gc2h1cnlvdVwgOwor5bKp5aOBID4gZ2FucGVraVwgOwor5L2v54uCID4geW91a3lvdVwgOwor5Li46aGUID4gbWFydWdhb1wgOwor5puz6aasID4gaGlraXVtYVwgOwor5a++5rWBID4gdGFpcnl1dVwgOwor6aGU6buSID4gZ2FuZ3Vyb1wgOwor5LyP57irID4gZnVzZW51aVwgOwor5puy6aasID4ga3lva3ViYVwgOwor6LWk54eQID4gc2VraXJpblwgOwor5YKR5L2cID4ga2Vzc2FrdVwgOwor55Ge56WlID4genVpc2hvdVwgOwor6amV5oGjID4ga3lvdXNoaVwgOwor5LyP57eaID4gZnVrdXNlblwgOwor5YKA5YShID4ga3VndXRzdVwgOwor54+N6KuHID4gY2hpbmRhblwgOwor5L+X5paHID4gem9rdWJ1blwgOwor5Lqk6KqtID4ga291ZG9rdVwgOwor5YCS5bmVID4gdG91YmFrdVwgOwor5a6255WcID4ga2FjaGlrdVwgOwor5Lit6aOvID4gY2h1dWhhblwgOwor55CD6I+MID4ga3l1dWtpblwgOwor6aaW55u4ID4gc2h1c2hvdVwgOwor5Lit6aKoID4gY2h1dWJ1dVwgOwor6aKo6Y6uID4gZnV1Y2hpblwgOwor5YCf5bGLID4gc2hha3V5YVwgOwor5bO25LitID4gdG91Y2h1dVwgOwor5a6d55+zID4gaG91c2VraVwgOwor6IOG55+zID4gdGFuc2VraVwgOwor5bGx5birID4geWFtYXNoaVwgOwor6aOf6LK7ID4gc2hva3VoaVwgOwor5Lqk6KeSID4ga291a2FrdVwgOwor5pyo6YeRID4gbW9rdWtpblwgOwor5a6a55+zID4gam91c2VraVwgOwor5bGe5oCnID4gem9rdXNlaVwgOwor6ISz5qmLID4gbm91a3lvdVwgOwor5Lit6aCFID4gY2h1dWtvdVwgOwor5p2l6Ki6ID4gcmFpc2hpblwgOwor55CD6IyOID4ga3l1dWtlaVwgOwor5bGx5ba9ID4gc2FuZ2FrdVwgOwor6IKp56ugID4ga2Vuc2hvdVwgOwor55Sf5oGvID4gc2Vpc29rdVwgOwor5L6/5pyNID4gYmVucHVrdVwgOwor5Lqh6KaqID4gYm91c2hpblwgOwor5YGl5YudID4ga2Vuc2hvdVwgOwor5LuV6I2JID4gc2hpZ3VzYVwgOwor5Lmd6YeNID4ga29rb25vZVwgOwor5L+K5pWPID4gc2h1bmJpblwgOwor5p2l6KWyID4gcmFpc2h1dVwgOwor5Li76ZW3ID4gc2h1Y2hvdVwgOwor6LiK5a2XID4gb2RvcmlqaVwgOwor5bGx5bOhID4geWFtYWthaVwgOwor6LWk5r2uID4gYWthc2hpb1wgOwor5pyA6ZW3ID4gc2FpY2hvdVwgOwor5a2m57SaID4gZ2Fra3l1dVwgOwor6IG06IGeID4gY2hvdW1vblwgOwor5bGx5bKzID4gc2FuZ2FrdVwgOwor55Sf5b6XID4gc2VpdG9rdVwgOwor55Wl5ZuzID4gcnlha3V6dVwgOwor5Lih6aCtID4gcnlvdXRvdVwgOwor5bCa5pu0ID4gbmFvc2FyYVwgOwor5bGP5oGvID4gaGVpc29rdVwgOwor5Lit6ZqKID4gY2h1dXRhaVwgOwor5pyo6YCgID4gbW9rdXpvdVwgOwor5Lyd56WoID4gZGVucHlvdVwgOwor5pyd6YWSID4gYXNhemFrZVwgOwor5a6554mpID4gaXJlbW9ub1wgOwor55S75a6aID4ga2FrdXRlaVwgOwor5a+C54S2ID4gc2VraXplblwgOwor55SY5b+DID4ga2Fuc2hpblwgOwor5bCC5qWtID4gc2VuZ3lvdVwgOwor6Leh5b2iID4gYXRva2F0YVwgOwor5YG25L2cID4gZ3V1c2FrdVwgOwor5pu56ZW3ID4gc291Y2hvdVwgOwor5bCP5p+EID4ga29kenVrYVwgOwor5a2d57WMID4ga291a3lvdVwgOwor6IG0572qID4gY2hvdXphaVwgOwor5L2Z54axID4geW9uZXRzdVwgOwor5bGx5a65ID4gc2FuJyd5b3VcIDsKK+S4oemdoiA+IHJ5b3VtZW5cIDsKK+S/oeaEmyA+IHNoaW4nJ2FpXCA7Civkv5fmiY0gPiB6b2t1c2FpXCA7CivlrZjntpogPiBzb256b2t1XCA7CivmnJvpg7cgPiBib3VreW91XCA7CivnjJvps6UgPiBtb3VjaG91XCA7Civlrp3nlJ8gPiBob3VzaG91XCA7Civnvo7pq6ogPiBiaWhhdHN1XCA7CivlsJrml6kgPiBzaG91c291XCA7CivkuK3plpMgPiBjaHV1a2FuXCA7CivkuIDpq6ogPiBpcHBhdHN1XCA7Civku7LntpkgPiBjaHV1a2VpXCA7CivlsIbmoKEgPiBzaG91a291XCA7CivlronnnYAgPiBhbmNoYWt1XCA7CivkuKHpm4QgPiByeW91eXV1XCA7CivlraPnr4AgPiBraXNldHN1XCA7CivkuonoqJ8gPiBzb3VzaG91XCA7CivkuozopqogPiBmdXRhb3lhXCA7CivosZrotrMgPiB0b25zb2t1XCA7CivlrpjnlKggPiBrYW4nJ3lvdVwgOwor5L2Z54OIID4geW9yZXRzdVwgOwor5p2+6JGJID4gbWF0c3ViYVwgOwor5a6J55u0ID4gYW5jaG9rdVwgOwor6aKo6YCfID4gZnV1c29rdVwgOwor6aGO6autID4gYWdvaGlnZVwgOwor57+86LObID4geW9rdXNhblwgOwor5bGe5bO2ID4gem9rdXRvdVwgOwor6IK655eFID4gaGFpYnlvdVwgOwor5bCP5pm6ID4gc2hvdWNoaVwgOwor5a6f55CGID4gaml0c3VyaVwgOwor5bCP5pmvID4gc2hvdWtlaVwgOwor5a2m56ulID4gZ2FrdWRvdVwgOwor5qOL5a6iID4ga2lreWFrdVwgOwor5pyr6LevID4gbWF0c3Vyb1wgOwor5L615pS7ID4gc2hpbmtvdVwgOwor5bCG5p2lID4gc2hvdXJhaVwgOwor5LqG6KejID4gcnlvdWthaVwgOwor55WR5ZywID4gaGF0YWNoaVwgOwor5L+h5b+DID4gc2hpbmppblwgOwor5a++5qC8ID4gdGFpa2FrdVwgOwor5bGI5by3ID4ga3Vra3lvdVwgOwor5a2m56qTID4gZ2FrdXNvdVwgOwor5qKf5oKqID4ga3lvdWFrdVwgOwor55S35ai8ID4gZGFuc2hvdVwgOwor5a2k56uLID4ga29yaXRzdVwgOwor6IW55bivID4gZnVrdXRhaVwgOwor5a2m56m2ID4gZ2Fra3l1dVwgOwor5L+X5oOFID4gem9rdWpvdVwgOwor5LqG6KaLID4gcnlvdWtlblwgOwor5Li46Yu8ID4gbWFydWtvdVwgOwor5L+K5omNID4gc2h1bnNhaVwgOwor5L+X5oKqID4gem9rdWFrdVwgOwor6IG357WEID4gc2hva3Vzb1wgOwor5a+S5rWBID4ga2Fucnl1dVwgOwor576k6ZuGID4gZ3Vuc2h1dVwgOwor576k6ZuEID4gZ3VuJyd5dXVcIDsKK+WxseWnpSA+IHlhbWF1YmFcIDsKK+S4iumhjiA+IGpvdWdha3VcIDsKK+WvneauvyA+IHNoaW5kZW5cIDsKK+WwkeaVsCA+IHNob3VzdXVcIDsKK+eUt+WmviA+IGRhbnNob3VcIDsKK+Wwj+aWjiA+IHNob3VzYWlcIDsKK+iEguawlyA+IGFidXJha2VcIDsKK+WwguaciSA+IHNlbicneXV1XCA7CivlsL3lv6AgPiBqaW5jaHV1XCA7CivlsI/mlbAgPiBzaG91c3V1XCA7CivmnaHomasgPiBqb3VjaHV1XCA7CivnlaXlj5kgPiByeWFrdWpvXCA7Civnvo7po58gPiBiaXNob2t1XCA7CivlsbHlpaUgPiB5YW1hb2t1XCA7Civnj43olLUgPiBjaGluem91XCA7CivlsIrml48gPiBzb256b2t1XCA7Civkv5flv7UgPiB6b2t1bmVuXCA7CivmoLzmrrUgPiBrYWt1ZGFuXCA7CivkuIDpo58gPiBpc3Nob2t1XCA7CivlsIbmmJ8gPiBzaG91c2VpXCA7Civoga/ntaEgPiByZW5yYWt1XCA7Civlrabnpa0gPiBnYWt1c2FpXCA7CivnjYTploAgPiBnb2t1bW9uXCA7Civkv4PmiJAgPiBzb2t1c2VpXCA7CivogIPoqLwgPiBrb3VzaG91XCA7CivlroznkqcgPiBrYW5wZWtpXCA7CivnlJ/lrrMgPiBzaG91Z2FpXCA7CivkubHoqr8gPiByYW5jaG91XCA7Civkurroh6MgPiBqaW5zaGluXCA7CivkuIDpoZ4gPiBpY2hpcnVpXCA7CivkubHoqq0gPiByYW5kb2t1XCA7CivkuoDoo4IgPiBraXJldHN1XCA7Civog7jmsLQgPiBreW91c3VpXCA7CivmnqDnt5ogPiB3YWt1c2VuXCA7CivkvJHnnKAgPiBreXV1bWluXCA7Civoh6jkvJEgPiByaW5reXV1XCA7Civku4TogZ4gPiBzb2t1YnVuXCA7CivkvY7mva4gPiB0ZWljaG91XCA7CivkvI/nm64gPiBmdXNoaW1lXCA7CivkuIfpm6MgPiBiYW4nJ25hblwgOwor6amV5aWiID4ga3lvdXNoYVwgOwor5bGO5bC/ID4gc2hpbnlvdVwgOwor5LiK6Zm4ID4gam91cmlrdVwgOwor5bC65bqmID4gc2hha3Vkb1wgOwor6LOk56ewID4gc2Vuc2hvdVwgOwor5LiH6ZqcID4gYmFuc2hvdVwgOwor5pyA6YGpID4gc2FpdGVraVwgOwor5bCx5b25ID4gc2h1dWVraVwgOwor5LiA6Z2iID4gaWNoaW1lblwgOwor5a++5pW1ID4gdGFpdGVraVwgOwor5pyd6LKiID4gY2hvdWtvdVwgOwor5LuP57iBID4gYnV0c3VlblwgOwor5LuV57WEID4gc2hpa3VtaVwgOwor5qGQ5p2QID4ga2lyaXphaVwgOwor5bCE5pKDID4gc2hhZ2VraVwgOwor5qCh5rOoID4ga291Y2h1dVwgOwor5LiA6ZuoID4gaGl0b2FtZVwgOwor5p+x54q2ID4gY2h1dWpvdVwgOwor5L2c5rOBID4gc2Fra3lvdVwgOwor5LiA6ZujID4gaWNoaW5hblwgOwor5bGx5ZywID4geWFtYWNoaVwgOwor5L+K5b2mID4gc2h1bmdlblwgOwor6IO05qyyID4gZG91eW9rdVwgOwor6aGN6Z2iID4gZ2FrdW1lblwgOwor5LiK6ZW3ID4gam91Y2hvdVwgOwor54+N6Iq4ID4gY2hpbmdlaVwgOwor5qOu5Y6zID4gc2hpbmdlblwgOwor55S35ZuaID4gZGFuc2h1dVwgOwor5qKv5a2QID4gaGFzaGlnb1wgOwor5p6V57W1ID4gbWFrdXJhZVwgOwor55Wq5YKYID4gYmFuZ2FzYVwgOwor5LiA6ZmjID4gaWNoaWppblwgOwor5LuP57WMID4gYnVra3lvdVwgOwor6aCs6autID4gaG9vaGlnZVwgOwor5pyq6KitID4gbWlzZXRzdVwgOwor55Wl5YSAID4gcnlha3VnaVwgOwor6ae/5omNID4gc2h1bnNhaVwgOwor6IO95qW9ID4gbm91Z2FrdVwgOwor5bCP5omNID4gc2hvdXNhaVwgOwor5Li76Lu4ID4gc2h1amlrdVwgOwor6aCs6aqoID4gaG9vYm9uZVwgOwor5Lmx6KGMID4gcmFuZ3lvdVwgOwor5auJ6KaWID4gc2hpc3NoaVwgOwor5bCP5oiQID4gc2hvdXNlaVwgOwor6IKJ55y8ID4gbmlrdWdhblwgOwor5Lit6YGTID4gY2h1dWRvdVwgOwor5bCR5oapID4gc2hvdWtlaVwgOwor5a6i5ryUID4ga3lha3VlblwgOwor5a6M54afID4ga2FuanVrdVwgOwor5LiA6ZaAID4gaWNoaW1vblwgOwor5pqX6ayxID4gYW4nJ3V0c3VcIDsKK+Wwj+aGqSA+IHNob3VrZWlcIDsKK+S4remAgCA+IGNodXV0YWlcIDsKK+akjeS7mCA+IHVldHN1a2VcIDsKK+eQhueqnyA+IHJpa3V0c3VcIDsKK+Wun+a8lCA+IGppdHN1ZW5cIDsKK+S/ruWlvSA+IHNodXVrb3VcIDsKK+WwvOWvuiA+IGFtYWRlcmFcIDsKK+S4rei+siA+IGNodXVub3VcIDsKK+adkeiQvSA+IHNvbnJha3VcIDsKK+acq+ijlCA+IG1hdHN1ZWlcIDsKK+WwuuWvuCA+IHNla2lzdW5cIDsKK+mpmuWYhiA+IGt5b3V0YW5cIDsKK+aiouWtkCA+IHNob3VzaGlcIDsKK+WvuOaPjyA+IHN1bmJ5b3VcIDsKK+acqOijvSA+IG1va3VzZWlcIDsKK+S9l+atjCA+IHdhYml1dGFcIDsKK+S4pumAsiA+IGhlaXNoaW5cIDsKK+S/ruWjqyA+IHNodXVzaGlcIDsKK+miqOiplSA+IGZ1dWh5b3VcIDsKK+eVquS6uiA+IGJhbicnbmluXCA7CivlrrPmr5IgPiBnYWlkb2t1XCA7CivlrabnlJ8gPiBnYWt1c2VpXCA7CivmnJfoqq0gPiByb3Vkb2t1XCA7CivmnJfoqqYgPiByb3VzaG91XCA7Civlrp/muKwgPiBqaXNzb2t1XCA7CivnlJ/lnqMgPiBpa2VnYWtpXCA7CivlsZ7lm70gPiB6b2trb2t1XCA7CivkupToibIgPiBnb3Nob2t1XCA7CivotaTmnK0gPiBha2FmdWRhXCA7Civmnb/nt6AgPiBpdGFqaW1lXCA7Civnj43ogZ4gPiBjaGluYnVuXCA7CivnlLrlkI0gPiBjaG91bWVpXCA7CivmnJ3oposgPiBjaG91a2VuXCA7Civmmq7pm6ogPiBib3NldHN1XCA7Civku5XnqK4gPiBzaGlndXNhXCA7CivkvbPmnIggPiBrYWdldHN1XCA7CivogonnlYwgPiBuaWt1a2FpXCA7Civlrq7mrr8gPiBreXV1ZGVuXCA7CivmnaXogbQgPiByYWljaG91XCA7CivpoK3poJggPiB0b3VyeW91XCA7Civku7vnlKggPiBuaW4nJ3lvdVwgOwor6IO45p2/ID4gbXVuYWl0YVwgOwor5L+h5aWJID4gc2hpbnBvdVwgOwor5qKT5a6uID4gc2hpa3l1dVwgOwor5p2/57SZID4gaXRhZ2FtaVwgOwor6aCt6aCCID4gdG91Y2hvdVwgOwor5LqM6ImyID4gbmlzaG9rdVwgOwor6aeQ5pSvID4gY2h1dXNoaVwgOwor5bCP5b6EID4gc2hvdWtlaVwgOwor5puy6LevID4ga3lva3Vyb1wgOwor5bCR5byfID4gc2hvdXRlaVwgOwor5Lih6LyqID4gcnlvdXJpblwgOwor5pyo6J2LID4gbW9rdXJvdVwgOwor5LiA6YygID4gaWNoaWpvdVwgOwor5a6f5rOBID4gamlra3lvdVwgOwor6LWk5peXID4gYWthaGF0YVwgOwor5bCP5byfID4gc2hvdXRlaVwgOwor5L+X5aeTID4gem9rdXNlaVwgOwor5L+C5bGeID4ga2Vpem9rdVwgOwor5L2z5pelID4ga2FqaXRzdVwgOwor5Lih6LuNID4gcnlvdWd1blwgOwor6IOO5q+SID4gdGFpZG9rdVwgOwor55WZ5Lu7ID4gcnl1dW5pblwgOwor5py96JGJID4ga3VjaGliYVwgOwor5p2+57GfID4gc2hvdXJhaVwgOwor5bCP5bq3ID4gc2hvdWtvdVwgOwor5bGx5YuYID4geWFtYWthblwgOwor5bCR5bm0ID4gc2hvdW5lblwgOwor5LuK56iLID4gaW1haG9kb1wgOwor6aeS5pCNID4ga29tYXNvblwgOwor572q6ZqcID4gemFpc2hvdVwgOwor5bCP5bqXID4gc2hvdXRlblwgOwor5a6/5qC5ID4gc2h1a2tvblwgOwor5pyI6KmVID4gZ2VwcHlvdVwgOwor572y6ZW3ID4gc2hvY2hvdVwgOwor5LuK56eLID4ga29uc2h1dVwgOwor55S65Yi2ID4gY2hvdXNlaVwgOwor5LiL6YOoID4gc2hpbW9iZVwgOwor5bCC5b+1ID4gc2VuJyduZW5cIDsKK+adn+e+pCA+IHNva3VndW5cIDsKK+Wun+avjSA+IGppdHN1Ym9cIDsKK+WwguW/gyA+IHNlbnNoaW5cIDsKK+eMrumFrCA+IGtlbnNodXVcIDsKK+S4gemHjSA+IHRlaWNob3VcIDsKK+S4jemBlCA+IGZ1dGF0c3VcIDsKK+S4u+iqvyA+IHNodWNob3VcIDsKK+S4i+mBlCA+IGthdGF0c3VcIDsKK+mjm+iEmiA+IGhpa3lha3VcIDsKK+eUuuWGhSA+IGNob3VuYWlcIDsKK+aciOimiyA+IHRzdWtpbWlcIDsKK+S/l+WhtSA+IHpva3VqaW5cIDsKK+WAi+WIpSA+IGtvYmV0c3VcIDsKK+WxnuWQjSA+IHpva3VtZWlcIDsKK+WAoeS9ryA+IHNob3V5b3VcIDsKK+S7mOedgCA+IGZ1Y2hha3VcIDsKK+S4iumAsiA+IGpvdXNoaW5cIDsKK+acjeijhSA+IGZ1a3Vzb3VcIDsKK+S9k+agvCA+IHRhaWtha3VcIDsKK+eMn+mKgyA+IHJ5b3VqdXVcIDsKK+S6pOe1oSA+IGtvdXJha3VcIDsKK+ajhOWNtCA+IGtpa3lha3VcIDsKK+S9leafkCA+IG5hbmlib3VcIDsKK+agoeacjSA+IGtvdWZ1a3VcIDsKK+S7leedgCA+IHNoaWtpc2VcIDsKK+acqOiUpiA+IGtpZHp1dGFcIDsKK+iyp+eqriA+IGhpbmt5dXVcIDsKK+iCieeJhyA+IG5pa3VoZW5cIDsKK+WwhuW4pSA+IHNob3VzdWlcIDsKK+eUt+WEqiA+IGRhbicneXV1XCA7CivmnKjok64gPiBtb2t1cmVuXCA7Civmm7LorZwgPiBreW9rdWZ1XCA7CivmopfloZ4gPiBrb3Vzb2t1XCA7CivnlLLlhpEgPiBrYXRjaHV1XCA7CivkvrXlrrMgPiBzaGluZ2FpXCA7CivogqXmupwgPiBrb2VkYW1lXCA7Civos57njqkgPiBzaG91Z2FuXCA7CivlgJ/kurogPiBrYXJpbmluXCA7Civkurrnp7AgPiBuaW5zaG91XCA7Civkv4rlo6sgPiBzaHVuc2hpXCA7CivmnInooYYgPiB5dXVzaHV1XCA7Civmm7joqZUgPiBzaG9oeW91XCA7Civlr4bmlZkgPiBtaWtreW91XCA7CivosarohbkgPiBnb3VmdWt1XCA7CivkuIDpgZMgPiBpY2hpZG91XCA7CivkuIDpgYcgPiBpY2hpZ3V1XCA7Civmm7joqLwgPiBzaG9zaG91XCA7CivosqvnpoQgPiBrYW5yb2t1XCA7CivotorlubQgPiBldHN1bmVuXCA7CivkuIDpgKMgPiBpY2hpcmVuXCA7CivnlJ/ljZQgPiBzZWlreW91XCA7CivkuInou7ggPiBzYW5qaWt1XCA7CivogIHoh6MgPiByb3VzaGluXCA7CivmnaHntIQgPiBqb3V5YWt1XCA7Civkv67lj7IgPiBzaHV1c2hpXCA7CivosYbolLUgPiBtYW1lem91XCA7CivkvZnml6UgPiB5b2ppdHN1XCA7CivnkIPnlYwgPiBreXV1a2FpXCA7CivkvZzmlocgPiBzYWt1YnVuXCA7CivlsI/lr5IgPiBzaG91a2FuXCA7Civos57nirYgPiBzaG91am91XCA7CivmnZzntbYgPiB0b3pldHN1XCA7CivkvY7mnKggPiB0ZWlib2t1XCA7CivlsIrlsZ4gPiBzb256b2t1XCA7CivppqzmlrkgPiB1bWFrYXRhXCA7CivkubHoh6MgPiByYW5zaGluXCA7CivkvZXmmYIgPiBuYW5kb2tpXCA7CivotaTmiYsgPiBzZWtpc2h1XCA7CivlsI/lrpggPiBzaG91a2FuXCA7CivkubPohbogPiBueXV1c2VuXCA7CivlsJHlrZAgPiBzaG91c2hpXCA7CivnjK7ouqsgPiBrZW5zaGluXCA7CivlgJLkvI8gPiB0b3VmdWt1XCA7Civos57niYwgPiBzaG91aGFpXCA7Civmm7Lop6MgPiBreW9ra2FpXCA7Civnj43nrZQgPiBjaGludG91XCA7CivkuIDovKogPiBpY2hpcmluXCA7Civlr7XlubggPiBjaG91a291XCA7CivnlLrkvJogPiBjaG91a2FpXCA7Civlrprmpa0gPiB0ZWlneW91XCA7CivpqZXlgrIgPiBreW91Z291XCA7CivpqZrlgJIgPiBreW91dG91XCA7CivlsIrlrrkgPiBzb24nJ3lvdVwgOwor54++55SoID4gZ2VuJyd5b3VcIDsKK+S4iui2syA+IGpvdXNva3VcIDsKK+WumOalrSA+IGthbmd5b3VcIDsKK+S4oeirliA+IHJ5b3Vyb25cIDsKK+S4gOi7jSA+IGljaGlndW5cIDsKK+eUuuS6uiA+IGNob3VuaW5cIDsKK+S4iui2iiA+IGpvdWV0c3VcIDsKK+WwiuWuhSA+IHNvbnRha3VcIDsKK+mghemgmCA+IGtvdXJ5b3VcIDsKK+mmmeacqCA+IGtvdWJva3VcIDsKK+WxgOWToSA+IGt5b2t1aW5cIDsKK+WwguWxniA+IHNlbnpva3VcIDsKK+S9leaVhSA+IG5hbml5dWVcIDsKK+S6ouernCA+IGtvdXJ5b3VcIDsKK+eMm+mAsiA+IG1vdXNoaW5cIDsKK+S7i+eXhSA+IGthaWJ5b3VcIDsKK+WwhuWumCA+IHNob3VrYW5cIDsKK+S7j+eUuyA+IGJ1dHN1Z2FcIDsKK+iEseWtlyA+IGRhdHN1amlcIDsKK+eMm+i/vSA+IG1vdXRzdWlcIDsKK+i0heayoiA+IHplaXRha3VcIDsKK+S/oeWPtyA+IHNoaW5nb3VcIDsKK+eUsOS9nCA+IGRlbnNha3VcIDsKK+S8r+alvSA+IGJha3Vyb3VcIDsKK+WumuagvCA+IHRlaWtha3VcIDsKK+WxseS4rSA+IHNhbmNodXVcIDsKK+iDuOaHkCA+IGt5b3VrYWlcIDsKK+acrOiFuSA+IGhvbnB1a3VcIDsKK+WvvuWvqSA+IHRhaXNoaW5cIDsKK+S6lOevgCA+IGdvc2V0c3VcIDsKK+S4u+iZuSA+IHNodW5pamlcIDsKK+S4puijvSA+IG5hbWlzZWlcIDsKK+eUmuWFrSA+IGppbnJva3VcIDsKK+eLgumokiA+IGt5b3Vzb3VcIDsKK+i1pOaBpSA+IGFrYWhhamlcIDsKK+acseiCiSA+IHNodW5pa3VcIDsKK+S9meaOpSA+IHlvc2V0c3VcIDsKK+eUsuS5mSA+IGtvdW90c3VcIDsKK+S6leetkiA+IGlkenV0c3VcIDsKK+acrOiDvSA+IGhvbicnbm91XCA7CivkuIfosaEgPiBiYW5zaG91XCA7CivnkaPmnKsgPiBzYW1hdHN1XCA7CivpppnmlpkgPiBrb3VyeW91XCA7Civkv5flkI0gPiB6b2t1bWVpXCA7CivnkIPnirYgPiBreXV1am91XCA7Civog7Tmhb4gPiBkb3V5b2t1XCA7CivkurrnmocgPiBuaW4nJ25vdVwgOwor5Lq655qEID4gamludGVraVwgOwor5LyP5rC0ID4gZnVrdXN1aVwgOwor5bCR5aOuID4gc2hvdXNvdVwgOwor6ISG5byxID4gemVpamFrdVwgOwor6aWR5riHID4ga2lrYXRzdVwgOwor5bCP5aSJID4gc2hvdWhlblwgOwor5Li76JasID4gc2h1eWFrdVwgOwor6LO85rGCID4ga291a3l1dVwgOwor5a6Y5pyJID4ga2FuJyd5dXVcIDsKK+S8keatoiA+IGt5dXVzaGlcIDsKK+S6huewoSA+IHJ5b3VrZW5cIDsKK+S7lueJqSA+IHRhYnV0c3VcIDsKK+e+veiZqyA+IGhhbXVzaGlcIDsKK+eUo+S8kSA+IHNhbmt5dXVcIDsKK+iDjuaVmSA+IHRhaWt5b3VcIDsKK+S9nOaIpiA+IHNha3VzZW5cIDsKK+S8r+aelyA+IGJlcnVyaW5cIDsKK+S9nOaIkCA+IHNha3VzZWlcIDsKK+WvkuW/gyA+IGthbnNoaW5cIDsKK+eLgumiqCA+IGt5b3VmdXVcIDsKK+Wuo+aVmSA+IHNlbmt5b3VcIDsKK+iDjOaVmSA+IGhhaWt5b3VcIDsKK+ixiuiDuCA+IGhvdWt5b3VcIDsKK+afs+adoSA+IHJ5dXVqb3VcIDsKK+WwhuWjqyA+IHNob3VzaGlcIDsKK+eUn+S5syA+IHNlaW55dXVcIDsKK+Wul+aXqCA+IHNodXVzaGlcIDsKK+S+r+WbvSA+IGtvdWtva3VcIDsKK+e+pOihhiA+IGd1bnNodXVcIDsKK+Wul+aXjyA+IHNvdXpva3VcIDsKK+iCieaxoCA+IG5pa3VjaGlcIDsKK+aik+WMoCA+IHNoaXNob3VcIDsKK+S4ieinkiA+IHNhbmtha3VcIDsKK+S4i+imiyA+IHNoaXRhbWlcIDsKK+S8j+aoiyA+IGZ1c2Vkb2lcIDsKK+iCieaxgSA+IG5pa3VqdXVcIDsKK+S5s+ezliA+IG55dXV0b3VcIDsKK+eOhOe/gSA+IGdlbicnbm91XCA7CivkuIDoqqwgPiBpc3NldHN1XCA7Civpp5Dlsa8gPiBjaHV1dG9uXCA7CivlsLHlirQgPiBzaHV1cm91XCA7Civog7jlupUgPiBreW91dGVpXCA7CivlrqPmj5ogPiBzZW4nJ3lvdVwgOwor6LK354mpID4ga2FpbW9ub1wgOwor6aGb6KaGID4gdGVucHVrdVwgOwor5L+u5LqkID4gc2h1dWtvdVwgOwor5bGF5YCZID4gaXNvdXJvdVwgOwor5pyN6Ia6ID4gZnVrdXlvdVwgOwor5a6/5oCoID4gc2h1a3VlblwgOwor6ICM56uLID4gamlyaXRzdVwgOwor5p6v5riHID4ga29rYXRzdVwgOwor6aKo57+SID4gZnV1c2h1dVwgOwor5LmX576DID4gam91YmVraVwgOwor5bGI5Ly4ID4ga3Vzc2hpblwgOwor5L+X5YOnID4gem9rdXNvdVwgOwor6aGV6KaBID4ga2VuJyd5b3VcIDsKK+iCh+atsyA+IGNob3VzYWlcIDsKK+WxiOS8jyA+IGt1cHB1a3VcIDsKK+acrOe1piA+IGhvbmt5dXVcIDsKK+S4reiRiSA+IGNodXV5b3VcIDsKK+e9qui3oSA+IHphaXNla2lcIDsKK+mjm+ekqyA+IHRzdWJ1dGVcIDsKK+adoeebriA+IGpvdW1va3VcIDsKK+S4gOimpyA+IGljaGlyYW5cIDsKK+WvhuW6piA+IG1pdHN1ZG9cIDsKK+S4iuihqCA+IGpvdWh5b3VcIDsKK+S4i+ihgCA+IGdla2V0c3VcIDsKK+acgOiJryA+IHNhaXJ5b3VcIDsKK+i2s+WKtCA+IHNva3Vyb3VcIDsKK+WuiOaXpyA+IHNodWt5dXVcIDsKK+Wwj+WWhCA+IHNob3V6ZW5cIDsKK+S7ruaxuiA+IGtha2V0c3VcIDsKK+Wvm+WuuSA+IGthbicneW91XCA7CivkvJHmoKEgPiBreXV1a291XCA7Civkv6Hku7AgPiBzaGlua291XCA7CivmoJbmga8gPiBzZWlzb2t1XCA7CivkupXnm64gPiBzZWltb2t1XCA7CivlsJrlj4ggPiBuYW9tYXRhXCA7Civmmpfouo0gPiBhbicneWFrdVwgOwor6ICD56m2ID4ga291a3l1dVwgOwor5pmp6ZCYID4gYmFuc2hvdVwgOwor6LKo54mpID4ga2Ftb3RzdVwgOwor5a6f5oqAID4gaml0c3VnaVwgOwor5pys57GkID4gaG9ua3VqaVwgOwor6ISx5Za2ID4gZGF0c3VlaVwgOwor5L2T5b6XID4gdGFpdG9rdVwgOwor5pys57GNID4gaG9uc2VraVwgOwor5pyo57K+ID4gbW9rdXNlaVwgOwor5bCP5ZOBID4gc2hvdWhpblwgOwor5pyJ6IG3ID4geXV1c29rdVwgOwor5L2z5a6iID4ga2FreWFrdVwgOwor576O6KGTID4gYmlqdXRzdVwgOwor572q6LKsID4gemFpc2VraVwgOwor6LWk5a2QID4gc2VraXNoaVwgOwor5a6z5b+DID4gZ2Fpc2hpblwgOwor5L+X5L2TID4gem9rdXRhaVwgOwor5pi86aSQID4gY2h1dXNhblwgOwor5LqM552AID4gbmljaGFrdVwgOwor5L+X5LydID4gem9rdWRlblwgOwor5LqG55+lID4gcnlvdWNoaVwgOwor5qC45a2QID4ga2FrdXNoaVwgOwor5pys566xID4gaG9uYmFrb1wgOwor5pyN572qID4gZnVrdXphaVwgOwor5LqM55u0ID4gbmljaG9rdVwgOwor6aas5biCID4gdW1haWNoaVwgOwor55Kw5aKDID4ga2Fua3lvdVwgOwor5bCP5Y+yID4gc2hvdXNoaVwgOwor5L+X5Lq6ID4gem9rdWppblwgOwor5L2V5bm0ID4gbmFuJyduZW5cIDsKK+eMm+ilsiA+IG1vdXNodXVcIDsKK+Wwj+WPoyA+IGtvZ3VjaGlcIDsKK+advueFpCA+IHNob3ViYWlcIDsKK+acrOetiyA+IGhvbnN1amlcIDsKK+adseeLrCA+IHRvdWRva3VcIDsKK+eNo+iCiSA+IGp1dW5pa3VcIDsKK+S4reiIiCA+IGNodXVrb3VcIDsKK+S6jOeZviA+IG5paHlha3VcIDsKK+absuiIniA+IGt1c2VtYWlcIDsKK+ePjeeNoyA+IGNoaW5qdXVcIDsKK+acrOeroCA+IGhvbnNob3VcIDsKK+S4u+e/vCA+IHNodXlva3VcIDsKK+S/l+S4liA+IHpva3VzZWlcIDsKK+e+pOiQvSA+IGd1bnJha3VcIDsKK+mjtOeOiSA+IGFtZWRhbWFcIDsKK+iAhOeijCA+IG1vdXJva3VcIDsKK+WuruW7tyA+IGt5dXV0ZWlcIDsKK+WwseS7uyA+IHNodXVuaW5cIDsKK+Wmmem9oiA+IG15b3VyZWlcIDsKK+aZgumbqCA+IHNoaWd1cmVcIDsKK+WuruW6rSA+IGt5dXV0ZWlcIDsKK+S4reiEsyA+IGNodXVub3VcIDsKK+acqOeriyA+IGtvZGFjaGlcIDsKK+eOi+eriyA+IG91cml0c3VcIDsKK+Wwj+WLhyA+IHNob3V5dXVcIDsKK+iBt+aoqSA+IHNob2trZW5cIDsKK+S+teWGpiA+IHNoaW5rb3VcIDsKK+ePvuazgSA+IGdlbmt5b3VcIDsKK+WvhOWuvyA+IGtpc2h1a3VcIDsKK+iDjOW+syA+IGhhaXRva3VcIDsKK+e/kue3tCA+IHNodXVyZW5cIDsKK+agvOWkliA+IGtha3VnYWlcIDsKK+S4iuiUnyA+IGpvdXpva3VcIDsKK+S4reiDjCA+IGNodXV6ZWlcIDsKK+i1pOWkliA+IHNla2lnYWlcIDsKK+S4oeiItyA+IHJ5b3VnZW5cIDsKK+Wto+acqyA+IGtpbWF0c3VcIDsKK+afk+aWmSA+IHNlbnJ5b3VcIDsKK+advua/pCA+IHNob3V0b3VcIDsKK+afhOadkyA+IGhpc2hha3VcIDsKK+eLrOi1sCA+IGRva3Vzb3VcIDsKK+S7ruakjSA+IGthc2hva3VcIDsKK+eOieeovyA+IGd5b2trb3VcIDsKK+Wwj+WIgCA+IHNob3V0b3VcIDsKK+S+v+S+qyA+IGJlbicnbmVpXCA7CivpoK3oqLsgPiB0b3VjaHV1XCA7Civku5bmrrogPiB0YXNhdHN1XCA7CivkuIvokYkgPiBzaGl0YWJhXCA7CivotrPku6MgPiBhc2hpZGFpXCA7CivmnInntaYgPiB5dXVreXV1XCA7Civkvr/kvZ4gPiBiZW4nJ25laVwgOwor5Lit6ICBID4gY2h1dXJvdVwgOwor5pyI57WmID4gZ2Vra3l1dVwgOwor6aeQ5ZyoID4gY2h1dXphaVwgOwor6aaW5bitID4gc2h1c2VraVwgOwor5pyJ57WCID4geXV1c2h1dVwgOwor5Lih6IWVID4gcnlvdXVkZVwgOwor542E6IiOID4gZ29rdXNoYVwgOwor6aCt6KeSID4gdG91a2FrdVwgOwor6aGb6JC9ID4gdGVucmFrdVwgOwor5bCP5YWaID4gc2hvdXRvdVwgOwor5L6g5YuHID4ga3lvdXl1dVwgOwor5bCO5YWlID4gZG91bnl1dVwgOwor5Lyd5om/ID4gZGVuc2hvdVwgOwor6IO45aOwID4ga3lvdXNlaVwgOwor5LmZ56iuID4gb3RzdXNodVwgOwor5LmX56mNID4gam91c2VraVwgOwor54md6baPID4gbWVuZG9yaVwgOwor576k6IejID4gZ3Vuc2hpblwgOwor5a2f5pilID4gbW91c2h1blwgOwor5L6b5YuiID4gdG9tb3plaVwgOwor5Lm+55WZID4ga2Fucnl1dVwgOwor5a+p5ZWPID4gc2hpbm1vblwgOwor6LOO5qWtID4gc2VuZ3lvdVwgOwor6LOe5p2vID4gc2hvdWhhaVwgOwor5LuL5q67ID4ga2Fpa2FrdVwgOwor5LiA6JGJID4gaWNoaXlvdVwgOwor5pyA57WCID4gc2Fpc2h1dVwgOwor5Lmz55mMID4gbnl1dWdhblwgOwor5bCG5YW1ID4gc2hvdWhlaVwgOwor54md6bOlID4gbWVuZG9yaVwgOwor5Luw5pybID4gZ3lvdWJvdVwgOwor5a6X5bufID4gc291YnlvdVwgOwor5Lm+55OiID4ga2FucHlvdVwgOwor6IC95rq6ID4gdGFuZGVraVwgOwor5L2P5a6FID4ganV1dGFrdVwgOwor5Lih6ICFID4gcnlvdXNoYVwgOwor6LaF5YukID4gY2hvdWtpblwgOwor6LKr5rWBID4ga2Fucnl1dVwgOwor5a6Y5bqBID4ga2FuY2hvdVwgOwor6ICB55eFID4gcm91YnlvdVwgOwor5a6a5bitID4gam91c2VraVwgOwor6LOT5qC8ID4gaGlua2FrdVwgOwor5pyd56S8ID4gY2hvdXJlaVwgOwor5bCP5L6/ID4gc2hvbmJlblwgOwor5a+45YqHID4gc3VuZ2VraVwgOwor5bCB5YWlID4gZnV1bnl1dVwgOwor6K2m6ZCYID4ga2Vpc2hvdVwgOwor5pil6Zu3ID4gc2h1bnJhaVwgOwor5a+S5Zu9ID4ga2Fua29rdVwgOwor5L6v5LyvID4ga291aGFrdVwgOwor5Lit57eoID4gY2h1dWhlblwgOwor5pyq552AID4gbWljaGFrdVwgOwor5pys55yBID4gaG9uc2hvdVwgOwor5pu457WMID4gc2hva3lvdVwgOwor5a+45Yi7ID4gc3Vua29rdVwgOwor5LqL54mpID4gamlidXRzdVwgOwor5LuV5qWtID4gc2hpd2F6YVwgOwor6aaW5bCGID4gc2h1c2hvdVwgOwor5LyR5oimID4ga3l1dXNlblwgOwor54++5qWtID4gZ2VuZ3lvdVwgOwor5puz57ayID4gaGlraWFtaVwgOwor5bCK5L+hID4gc29uc2hpblwgOwor5Lit57aZID4gY2h1dWtlaVwgOwor6LaF5YehID4gY2hvdWJvblwgOwor5Luy5patID4gY2h1dWRhblwgOwor5bCP5LydID4gc2hvdWRlblwgOwor6Z6m6Z+GID4gYnVyYW5rb1wgOwor6LGq55CDID4gZ291a3l1dVwgOwor5Lmx55SoID4gcmFuJyd5b3VcIDsKK+mgmOinoyA+IHJ5b3VrYWlcIDsKK+S4g+iJsiA+IG5hbmFpcm9cIDsKK+S4iuiGiiA+IGpvdWhha3VcIDsKK+S9leWltCA+IGRveWF0c3VcIDsKK+ael+alrSA+IHJpbmd5b3VcIDsKK+S4gOiKuCA+IGljaGlnZWlcIDsKK+S8keaGqSA+IGt5dXVrZWlcIDsKK+adsea4hSA+IHRvdXNoaW5cIDsKK+eKrOmHmCA+IGludWt1Z2lcIDsKK+eQg+aguSA+IGt5dXVrb25cIDsKK+acqueZuiA+IG1paGF0c3VcIDsKK+Wwj+S6uiA+IHNob3VuaW5cIDsKK+S9l+WjsCA+IHdhYmlnb2VcIDsKK+S4gOiJsiA+IGhpdG9pcm9cIDsKK+S4u+etiyA+IHNodXN1amlcIDsKK+S4i+iEmiA+IGtha3lha3VcIDsKK+S4reezuCA+IGNodXVpdG9cIDsKK+e+pOe+iiA+IGd1bicneW91XCA7Civos4fmoLwgPiBzaGlrYWt1XCA7Civmm7jnsY0gPiBzaG9zZWtpXCA7Civlrr/loLQgPiBzaHVrdWJhXCA7CivmmKXpl5ggPiBzaHVudG91XCA7CivlsILkv64gPiBzZW5zaHV1XCA7CivlsI/kuZcgPiBzaG91am91XCA7CivkvLjlsZUgPiBzaGludGVuXCA7CivkvovliLsgPiByZWlrb2t1XCA7CivmmrTokL0gPiBib3VyYWt1XCA7Civni4LouoEgPiBreW91c291XCA7CivosqjmrpYgPiBrYXNob2t1XCA7CivkuqzmtJsgPiBrZWlyYWt1XCA7CivkvJrlv4MgPiBrYWlzaGluXCA7CivkuK3nsbMgPiBjaHV1YmVpXCA7CivkuqTmuIkgPiBrb3VzaG91XCA7CivpoIzoqZ4gPiBzaG91c2hpXCA7CivkuIfog70gPiBtYW4nJ25vdVwgOwor5LiJ6IKyID4gc2FuJydpa3VcIDsKK+S4ieiCoSA+IHNhbm1hdGFcIDsKK+S4gOiGsyA+IGljaGl6ZW5cIDsKK+WtpuaJjSA+IGdha3VzYWlcIDsKK+eJuembuyA+IHRva3VkZW5cIDsKK+mghuiqvyA+IGp1bmNob3VcIDsKK+e+veeukiA+IGhhYm91a2lcIDsKK+iEmuWFiSA+IGt5YWtrb3VcIDsKK+WumuWuvyA+IGpvdXlhZG9cIDsKK+WvqeWIpCA+IHNoaW5wYW5cIDsKK+eLrOijgSA+IGRva3VzYWlcIDsKK+e+iuiGnCA+IHlvdW1ha3VcIDsKK+acq+eUnyA+IHN1ZW5hcmlcIDsKK+afu+WvnyA+IHNhc2F0c3VcIDsKK+ixqueJqSA+IGVyYW1vbm9cIDsKK+S4reevhyA+IGNodXVoZW5cIDsKK+WwguS7uyA+IHNlbicnbmluXCA7CivnvorohbggPiB5b3VjaG91XCA7CivkuIrnv7wgPiBqb3V5b2t1XCA7CivkvJHmgKAgPiBreXV1dGFpXCA7CivkubHnjbIgPiByYW5rYWt1XCA7CivkuqTmtYEgPiBrb3VyeXV1XCA7Civlp6bpgJogPiBrYW50c3V1XCA7CivnvqnntbYgPiBnaXpldHN1XCA7CivmmIfpoIYgPiBzaG91anVuXCA7Civosp3mr5IgPiBrYWlkb2t1XCA7CivlrpjlraYgPiBrYW5nYWt1XCA7Civnj77mnIkgPiBnZW4nJ3l1dVwgOwor6LKd5q68ID4ga2FpZ2FyYVwgOwor6LKd5q67ID4ga2FpZ2FyYVwgOwor6LOe5o+aID4gc2hvdXlvdVwgOwor5Lit562JID4gY2h1dXRvdVwgOwor54mp6Z+zID4gbW9ub290b1wgOwor5Lmz54q2ID4gbnl1dWpvdVwgOwor5Li756WeID4gc2h1c2hpblwgOwor5p6X5pyoID4gcmluYm9rdVwgOwor546J55K9ID4gZ3lva3VqaVwgOwor5Lya5bitID4ga2Fpc2VraVwgOwor54u86JeJID4gcm91emVraVwgOwor576K6IKJID4geW91bmlrdVwgOwor57+854q2ID4geW9rdWpvdVwgOwor6aCQ6KGAID4geW9rZXRzdVwgOwor6aKo55a5ID4gZnV1c2hpblwgOwor5LyR5bu3ID4ga3l1dXRlaVwgOwor546J55GbID4gZ3lva3VlaVwgOwor5a6u5Z+OID4ga3l1dWpvdVwgOwor6LaF5Lq6ID4gY2hvdWppblwgOwor5a6/5Za2ID4gc2h1a3VlaVwgOwor5p6d5pePID4gc2hpem9rdVwgOwor5LuW5pelID4gdGFqaXRzdVwgOwor6ICB54afID4gcm91anVrdVwgOwor6K6D6LOeID4gc2Fuc2hvdVwgOwor6LOH5paZID4gc2hpcnlvdVwgOwor6aeQ5YW1ID4gY2h1dWhlaVwgOwor5LiA576kID4gaWNoaWd1blwgOwor5L2O5ZynID4gdGVpYXRzdVwgOwor5p2+5qWTID4gc2hvdWZ1dVwgOwor5LuK5pydID4ga29uY2hvdVwgOwor5Li556KnID4gdGFucGVraVwgOwor5pqu6ImyID4gYm9zaG9rdVwgOwor5LuV5pa5ID4gc2hpa2F0YVwgOwor6aOi5riHID4ga2lrYXRzdVwgOwor5LuK5pu0ID4gaW1hc2FyYVwgOwor5a+G5ZGKID4gbWlra29rdVwgOwor5piH6ZmNID4gc2hvdWtvdVwgOwor54qv6LehID4gaGFuc2VraVwgOwor6LK05pytID4ga2lzYXRzdVwgOwor6aOE54S2ID4gaHlvdXplblwgOwor5LuK5pqBID4ga29uZ3lvdVwgOwor5pep6aasID4gaGF5YXVtYVwgOwor5L2c5ZOBID4gc2FrdWhpblwgOwor6LKg5qW1ID4gZnVreW9rdVwgOwor5Lq65qC8ID4gamlua2FrdVwgOwor5pys54mpID4gaG9ubW9ub1wgOwor5LuK5pmCID4gaW1hZG9raVwgOwor5p2l5q20ID4gcmFpcmVraVwgOwor6Z+z6KizID4gb24nJ3lha3VcIDsKK+S7iuaYpSA+IGtvbnNodW5cIDsKK+S7iuaYlCA+IGtvbnNla2lcIDsKK+iBmuaWgiA+IHNodXVyZW5cIDsKK+S7j+aVmSA+IGJ1a2t5b3VcIDsKK+iyr+acqCA+IGNob2Jva3VcIDsKK+acqOeKgCA+IG1va3VzZWlcIDsKK+iyt+aYpSA+IGJhaXNodW5cIDsKK+WvjOWKmyA+IGZ1cnlva3VcIDsKK+S4iue0miA+IGpvdWt5dXVcIDsKK+S4iue0mSA+IHV3YWdhbWlcIDsKK+iBmuaVoyA+IHNodXVzYW5cIDsKK+S4iue0kCA+IHV3YWhpbW9cIDsKK+S4iee0miA+IHNhbmt5dXVcIDsKK+S7iuaWuSA+IGltYWdhdGFcIDsKK+S4oeeoriA+IHJ5b3VzaHVcIDsKK+acqOeJiCA+IG1va3VoYW5cIDsKK+acqOeJhyA+IG1va3VoZW5cIDsKK+WtneW/gyA+IGtvdXNoaW5cIDsKK+eLguipqSA+IGt5b3VzaGlcIDsKK+iDjOWcpyA+IGhhaWF0c3VcIDsKK+S5vua6nCA+IGthbnJ5dXVcIDsKK+iCieW8viA+IG5pa3VkYW5cIDsKK+eNhOeqkyA+IGdva3Vzb3VcIDsKK+WtpuW5tCA+IGdha3VuZW5cIDsKK+iBluaVmSA+IHNlaWt5b3VcIDsKK+WuouWcnyA+IGt5YWt1ZG9cIDsKK+ittOiyrCA+IGtlbnNla2lcIDsKK+acjeeUqCA+IGZ1a3V5b3VcIDsKK+S9juWUsSA+IHRlaXNob3VcIDsKK+aXp+miqCA+IGt5dXVmdXVcIDsKK+eMrue0jSA+IGtlbicnbm91XCA7CivlrZjlv7UgPiB6b24nJ25lblwgOwor546H54i+ID4gc290c3VqaVwgOwor5a2m5bi9ID4gZ2FrdWJvdVwgOwor5piO6Y+hID4gbWVpa3lvdVwgOwor5pys54S2ID4gaG9uJyduZW5cIDsKK+eLguiogCA+IGt5b3VnZW5cIDsKK+S7leaOmyA+IHNoaWtha2VcIDsKK+agquWIuCA+IGthYnVrZW5cIDsKK+mjm+ayqyA+IGhpbWF0c3VcIDsKK+miqOeLgiA+IGZ1dWt5b3VcIDsKK+WtkOaBryA+IHNoaXNva3VcIDsKK+mmrOWMuSA+IGJhaGl0c3VcIDsKK+abuOebriA+IHNob21va3VcIDsKK+S4iueusSA+IHV3YWJha29cIDsKK+iDuOWDjyA+IGt5b3V6b3VcIDsKK+S8j+WwhCA+IGZ1a3VzaGFcIDsKK+iDtOWFgyA+IGRvdW1vdG9cIDsKK+WumuWcpyA+IHRlaWF0c3VcIDsKK+aal+iJsiA+IGFuc2hva3VcIDsKK+WujOWjgSA+IGthbmJla2lcIDsKK+iDhuWaoiA+IHRhbicnbm91XCA7CivosYrnhp8gPiBob3VqdWt1XCA7CivkuIrnrZYgPiBqb3VzYWt1XCA7CivpoY7ntJAgPiBhZ29oaW1vXCA7CivmnKjngq0gPiBtb2t1dGFuXCA7CivkvZnlipsgPiB5b3J5b2t1XCA7CivkvZPljZQgPiB0YWlreW91XCA7CivpppbllLEgPiBzaHVzaG91XCA7CivkuK3nm6QgPiBjaHV1YmFuXCA7CivmoKHliYcgPiBrb3Vzb2t1XCA7CivogLPmoJMgPiBtaW1pc2VuXCA7CivkvZnlibIgPiB5b2thdHN1XCA7CivkuIfnrZYgPiBiYW5zYWt1XCA7Civku6Tmga8gPiByZWlzb2t1XCA7CivniYfpnaIgPiBrYXRhbWVuXCA7Civlr4blhIAgPiBtaXRzdWdpXCA7CivnibnphY0gPiB0b2t1aGFpXCA7CivkubPmuIUgPiBueXV1c2VpXCA7Civml6XpnLIgPiBuaWNoaXJvXCA7CivnjK7nrZYgPiBrZW5zYWt1XCA7CivkvZnliIcgPiB5b3NldHN1XCA7CivkuqvmnIkgPiBreW91eXV1XCA7CivogbTlvpMgPiBjaG91anV1XCA7CivkubPmtrIgPiBueXV1ZWtpXCA7CivmoLjku4EgPiBrYWt1amluXCA7CivlrqLlk6EgPiBreWFrdWluXCA7CivmmJ/ovrAgPiBzZWlzaGluXCA7CivnjK7nq4sgPiBrb25kYXRlXCA7CivkuKHnnLwgPiByeW91Z2FuXCA7CivkvZXlh6YgPiBkb2tvaXJhXCA7CivosYbngq0gPiBtYW1ldGFuXCA7Civlrp/lk6EgPiBqaXRzdWluXCA7CivnibnpgbggPiB0b2t1c2VuXCA7CivlrqPlkYogPiBzZW5rb2t1XCA7CivkvZ3lg4IgPiBzZW11c2hpXCA7Civnj43mnKwgPiBjaGlucG9uXCA7Civku6PlvbkgPiBkYWl5YWt1XCA7CivkubHmtYEgPiByYW5yeXV1XCA7CivkuIDnq68gPiBpcHBhc2hpXCA7CivkuInnp4sgPiBzYW5zaHV1XCA7CivlrrnlhbEgPiB5b3VreW91XCA7CivmoKHlg5UgPiBrb3Vib2t1XCA7Civnj43mm7ggPiBjaGluc2hvXCA7CivkvZXlhbEgPiBuYW50b21vXCA7Civlr5LkuK0gPiBrYW5jaHV1XCA7CivkuJ7nm7ggPiBqb3VzaG91XCA7CivkuK3nk7YgPiBjaHV1YmluXCA7CivkuIfnpo8gPiBtYW5wdWt1XCA7CivmnaXmnJ0gPiByYWljaG91XCA7Civogbflt6UgPiBzaG9ra291XCA7CivlroXlnLAgPiB0YWt1Y2hpXCA7CivkubPmsYEgPiBueXV1anV1XCA7Civlrq7liJEgPiBreXV1a2VpXCA7Civpo7zmlpkgPiBzaGlyeW91XCA7CivkvI/lpY8gPiBmdWt1c291XCA7Civlrp/lj44gPiBqaXNzaHV1XCA7CivmoKHlgIkgPiBhemVrdXJhXCA7Civnv5XnhLYgPiBreXV1emVuXCA7CivmlrDprq4gPiBzaGluc2VuXCA7CivosYrmvIEgPiBob3VyeW91XCA7CivoravoqIAgPiB1d2Fnb3RvXCA7CivmnJ3mva4gPiBhc2FzaGlvXCA7Civpoqjmva4gPiBmdXVjaG91XCA7CivnkIPlvaIgPiBreXV1a2VpXCA7Civog7TkuK0gPiBkb3VuYWthXCA7CivpoJrogokgPiBrZWluaWt1XCA7Civlrp/ljbAgPiBqaXRzdWluXCA7CivkvZzkvosgPiBzYWt1cmVpXCA7CivmnKzmtYEgPiBob25yeXV1XCA7Civlr4bkuosgPiBtaXRzdWppXCA7Civku7DlsbEgPiBneW91c2FuXCA7Civku4/mgakgPiBidXRzdW9uXCA7Civku5blvosgPiB0YXJpdHN1XCA7CivmnaXmmKUgPiByYWloYXJ1XCA7CivkubPmra8gPiBueXV1c2hpXCA7CivkvJHloLQgPiBreXV1am91XCA7Civnj77lvbkgPiBnZW4nJ2VraVwgOwor5LiA56S8ID4gaWNoaXJlaVwgOwor6aCG6ImvID4ganVucnlvdVwgOwor5LuV5b2iID4gc2hpa2F0YVwgOwor5LiK55+zID4gdXdhaXNoaVwgOwor5Lih55SoID4gcnlvdXlvdVwgOwor5Lih55SfID4gcnlvdXNlaVwgOwor5a6f5YuZID4gaml0c3VtdVwgOwor5LqU5pyIID4gc2F0c3VraVwgOwor5a2Q5bGAID4ga29reW9rdVwgOwor5LiN552AID4gZnVjaGFrdVwgOwor5LiL552AID4gc2hpdGFnaVwgOwor5pyq5rG6ID4gbWlrZXRzdVwgOwor5aSn6buSID4gZGFpa29rdVwgOwor5qCh5LqGID4ga291cnlvdVwgOwor5piC6YCyID4ga291c2hpblwgOwor5LuV5bqmID4gc2hpdGFrdVwgOwor5a2m5aSWID4gZ2FrdWdhaVwgOwor5a6f5YipID4gaml0c3VyaVwgOwor5a6X5YygID4gc291c2hvdVwgOwor6aCs57SFID4gaG9vYmVuaVwgOwor5a2Q5a6uID4gc2hpa3l1dVwgOwor6Z2i6ZW3ID4gb21vbmFnYVwgOwor6K2Y6KqeID4gc2hpa2lnb1wgOwor5L2O5L+XID4gdGVpem9rdVwgOwor5a2m5aOrID4gZ2FrdXNoaVwgOwor5LiL55uuID4gc2hpdGFtZVwgOwor5aWH6aqoID4ga2lrb3RzdVwgOwor5p2P5p6XID4ga3lvdXJpblwgOwor5a2R5a2RID4gYm91ZnVyaVwgOwor6IGW5b6zID4gc2VpdG9rdVwgOwor5pqX57eRID4gYW5yeW9rdVwgOwor6aas5Li7ID4gYmFudXNoaVwgOwor54m56LWmID4gdG9rdXNoYVwgOwor5LiN55m6ID4gZnVoYXRzdVwgOwor5Lmd5rOJID4ga3l1dXNlblwgOwor5L2V5Lq6ID4gbmFucGl0b1wgOwor5LyP5ZyoID4gZnVrdXphaVwgOwor6IG35a6JID4gc2hva3VhblwgOwor5a6a5YmHID4gdGVpc29rdVwgOwor5paw6aaZID4gc2hpbmtvdVwgOwor5pmv6ImyID4ga2VzaGlraVwgOwor5a6a5Yi7ID4gdGVpa29rdVwgOwor5p2R5pyJID4gc29uJyd5dXVcIDsKK+adkOacqCA+IHphaW1va3VcIDsKK+acp+awlyA+IG9ib3JvZ2VcIDsKK+S4h+ebriA+IGJhbm1va3VcIDsKK+iyt+W+lyA+IGthaWRva3VcIDsKK+mcsumqqCA+IHJva290c3VcIDsKK+S7j+W6pyA+IGJ1dHN1emFcIDsKK+mjm+acrSA+IGhpc2F0c3VcIDsKK+S8neWUsSA+IGRlbnNob3VcIDsKK+Wkp+m3uiA+IGRhaXNhZ2lcIDsKK+S4iueZvSA+IGpvdWhha3VcIDsKK+irlumngSA+IHJvbmJha3VcIDsKK+miqOa1gSA+IGZ1dXJ5dXVcIDsKK+WtpuWgsSA+IGdha3Vob3VcIDsKK+iCieWjsCA+IG5pa3VzZWlcIDsKK+S7o+WwhiA+IGRhaXNob3VcIDsKK+ixiuaygyA+IGhvdXlva3VcIDsKK+aWsOmkqCA+IHNoaW5rYW5cIDsKK+S8muWVhiA+IGthaXNob3VcIDsKK+iBluW7nyA+IHNlaWJ5b3VcIDsKK+WutuS4uyA+IHlhbnVzaGlcIDsKK+S4gOedgCA+IGl0Y2hha3VcIDsKK+S4gOecvCA+IGljaGlnYW5cIDsKK+S4gOecuCA+IGljaGlib3VcIDsKK+itmOimiyA+IHNoaWtrZW5cIDsKK+afkOWbvSA+IGJvdWtva3VcIDsKK+adieadkCA+IHN1Z2l6YWlcIDsKK+S7geW/gyA+IGppbnNoaW5cIDsKK+S4gOecoCA+IGljaGltaW5cIDsKK+S7geW+syA+IGppbnRva3VcIDsKK+Wum+WFiCA+IGF0ZXNha2lcIDsKK+eQhuWxiCA+IHJpa3V0c3VcIDsKK+aWsOmiqCA+IHNoaW5wdXVcIDsKK+S4gOebtCA+IGl0Y2hva3VcIDsKK+S7iuW5tCA+IGtvbicnbmVuXCA7Civog5rkubMgPiBoYWlueXV1XCA7Civkuozml6UgPiBmdXRzdWthXCA7Civmlq3po58gPiBkYW5qaWtpXCA7Civlrozli50gPiBrYW5zaG91XCA7CivkubPmo5IgPiBueXV1Ym91XCA7CivkuZ3mrbsgPiBreXV1c2hpXCA7CivkuIvnlaUgPiBnZXJ5YWt1XCA7CivnkZ7lhYYgPiB6dWljaG91XCA7CivmlrDpoZQgPiBzaGluZ2FvXCA7CivkuIfnl4UgPiBtYW5ieW91XCA7Civog4zkv6EgPiBoYWlzaGluXCA7CivorpLoh6MgPiB6YW5zaGluXCA7CivkuLvmva4gPiBzaHVjaG91XCA7Civpn7vohJogPiBpbmt5YWt1XCA7CivkuIDnmbogPiBpcHBhdHN1XCA7CivkuIrnlLMgPiBqb3VzaGluXCA7Civnv7zmo58gPiB5b2t1dG91XCA7CivkuInnlLcgPiBzYW4nJ25hblwgOwor5p2Q5paZID4gemFpcnlvdVwgOwor5a6Y5YOaID4ga2FucnlvdVwgOwor5paH6bOlID4gYnVuY2hvdVwgOwor5Lq65b6zID4gbmludG9rdVwgOwor5Luw5aSpID4gZ3lvdXRlblwgOwor6LOK5a6zID4gem9rdWdhaVwgOwor5Lit54K5ID4gY2h1dXRlblwgOwor6aGM55uuID4gZGFpbW9rdVwgOwor5Lq65b2iID4gbmluZ3lvdVwgOwor54mb6LuKID4gZ3l1dXNoYVwgOwor6LOK5a2QID4gem9rdXNoaVwgOwor5pys5qWtID4gaG9uZ3lvdVwgOwor6ICB5p2+ID4gcm91c2hvdVwgOwor5pen6YKmID4ga3l1dWhvdVwgOwor5p6c5a6fID4ga2FqaXRzdVwgOwor5LiA55WzID4gaWNoaWpvdVwgOwor6LKn5byxID4gaGluamFrdVwgOwor54iG6aKoID4gYmFrdWZ1dVwgOwor6ICB5py9ID4gcm91a3l1dVwgOwor5pep6YCfID4gc2Fzc29rdVwgOwor5pen6YGTID4ga3l1dWRvdVwgOwor6ICB5pyoID4gcm91Ym9rdVwgOwor54m56KqNID4gdG9rdW5pblwgOwor5LiA55S3ID4gaWNoaW5hblwgOwor5pys5qOaID4gaG9uZGFuYVwgOwor5aaZ6LajID4gbXlvdXNodVwgOwor6ZyK6bOlID4gcmVpY2hvdVwgOwor54mp6LGhID4gYnVzc2hvdVwgOwor5LuP5a+6ID4gYnV0c3VqaVwgOwor5pyr5qKiID4gbWFzc2hvdVwgOwor6KuW6ZujID4gcm9uJyduYW5cIDsKK+S4iueOiSA+IGpvdWRhbWFcIDsKK+WumuS8kSA+IHRlaWt5dXVcIDsKK+irlumbhiA+IHJvbnNodXVcIDsKK+ael+WtpiA+IHJpbmdha3VcIDsKK+WtpuWVjyA+IGdha3Vtb25cIDsKK+ixquaXjyA+IGdvdXpva3VcIDsKK+iBt+WgtCA+IHNob2t1YmFcIDsKK+acrOagvCA+IGhvbmtha3VcIDsKK+WlvemBqSA+IGtvdXRla2lcIDsKK+S8muWJhyA+IGthaXNva3VcIDsKK+S4u+a1gSA+IHNodXJ5dXVcIDsKK+aXoui/sCA+IGtpanV0c3VcIDsKK+e+qeeDiCA+IGdpcmV0c3VcIDsKK+eJqeitsCA+IGJ1dHN1Z2lcIDsKK+iyuOWutiA+IGthc2hpeWFcIDsKK+acieavkiA+IHl1dWRva3VcIDsKK+aWsOmWiyA+IHNoaW5rYWlcIDsKK+S4i+eJqSA+IGthYnV0c3VcIDsKK+S7meWlsyA+IHNlbicnbnlvXCA7CivniIbpm7cgPiBiYWt1cmFpXCA7CivkvI/li6IgPiBmdXNlemVpXCA7Civnibnoo70gPiB0b2t1c2VpXCA7CivkuIrniakgPiBqb3Vtb25vXCA7Civni4LogIUgPiBreW91c2hhXCA7CivmnqDlpJYgPiB3YWt1Z2FpXCA7CivmnKzmnJ0gPiBob25jaG91XCA7Civnibnoo4UgPiB0b2t1c291XCA7CivpoJjnqbogPiByeW91a3V1XCA7CivlrablkI0gPiBnYWt1bWVpXCA7Civml6fouZ8gPiBmdXJ1YXRvXCA7CivmnKvmnJ8gPiBtYXRzdWdvXCA7CivmnKjmna8gPiBtb2t1aGFpXCA7CivorKzoq5YgPiBieXV1cm9uXCA7CivmnKjmnZAgPiBtb2t1emFpXCA7CivkuqvlubQgPiBreW91bmVuXCA7Civlrablj4sgPiBnYWt1eXV1XCA7CivnjKnnjKkgPiBzaG91am91XCA7CivkvJHliIogPiBreXV1a2FuXCA7CivmnKjmnKwgPiBtb2t1aG9uXCA7CivkuIvnhrEgPiBnZW5ldHN1XCA7CivnianoqLwgPiBidXNzaG91XCA7CivlronkvZogPiBhbicnaXRzdVwgOwor5p2l5b6pID4gcmFpZnVrdVwgOwor5pen6LehID4gZnVydWF0b1wgOwor6Zu36bOlID4gcmFpY2hvdVwgOwor5LuZ5aKDID4gc2Vua3lvdVwgOwor5Li55q+SID4gdGFuZG9rdVwgOwor5pen6La+ID4ga3l1dXNoaVwgOwor5pyo5pucID4gbW9rdXlvdVwgOwor5puy5rWmID4ga3lva3Vob1wgOwor6aGe54S8ID4gcnVpc2hvdVwgOwor6aKo5qC8ID4gZnV1a2FrdVwgOwor55CD5aC0ID4ga3l1dWpvdVwgOwor5p2+5bGLID4gbWF0c3V5YVwgOwor5a6M5LqGID4ga2FucnlvdVwgOwor6aCt55uuID4gdG91bW9rdVwgOwor5Lmd5pyIID4ga3VnYXRzdVwgOwor5LyP5YW1ID4gZnVrdWhlaVwgOwor54m56J6NID4gdG9rdXl1dVwgOwor5Lmx5pKDID4gcmFuZ2VraVwgOwor542j5qyyID4ganV1eW9rdVwgOwor5aSp6aCYID4gdGVucnlvdVwgOwor6LKo5a6iID4ga2FreWFrdVwgOwor6LGG5p2/ID4gbWFtZWl0YVwgOwor5aSp6aCCID4gdGVuY2hvdVwgOwor5pyo5pifID4gbW9rdXNlaVwgOwor5pyf5pyrID4ga2ltYXRzdVwgOwor6LO85YWlID4ga291bnl1dVwgOwor6aSF5bGLID4gbW9jaGl5YVwgOwor5auh5oqrID4gY2hha3VoaVwgOwor5pyd5p2lID4gY2hvdXJhaVwgOwor6Kys6KaLID4gYnl1dWtlblwgOwor6ZyH6aetID4gc2hpbmdhaVwgOwor5LiL54GrID4gc2hpdGFiaVwgOwor6LGG5pysID4gbWFtZWhvblwgOwor6LOe5ZOBID4gc2hvdWhpblwgOwor5a2m5Yi2ID4gZ2FrdXNlaVwgOwor5aaZ6KiIID4gbXlvdWtlaVwgOwor5LuK5aSVID4ga29uJyd5dXVcIDsKK+eMn+eKrCA+IHJ5b3VrZW5cIDsKK+S5neaYnyA+IGt5dXVzZWlcIDsKK+Wnv+e1tSA+IHN1Z2F0YWVcIDsKK+WksemZpSA+IHNoaWtrYW5cIDsKK+iBt+WToSA+IHNob2t1aW5cIDsKK+aWuemHnSA+IGhvdXNoaW5cIDsKK+WknOmjnyA+IHlhc2hva3VcIDsKK+eQg+WboyA+IGt5dXVkYW5cIDsKK+aWsOmLrSA+IHNoaW4nJ2VpXCA7CivkuK3mrrUgPiBjaHV1ZGFuXCA7CivkuKHmtIsgPiByeW91eW91XCA7CivlpJrpo58gPiB0YXNob2t1XCA7Civogpblg48gPiBzaG91em91XCA7CivmnbHlsYsgPiBhenVtYXlhXCA7CivorJvoqq0gPiBrb3Vkb2t1XCA7CivlpKnpm7IgPiBhbWFndW1vXCA7CivkuI3mvZQgPiBmdWtldHN1XCA7CivlrablhoUgPiBnYWt1bmFpXCA7CivkuK3mraMgPiBjaHV1c2VpXCA7CivkuK3mraIgPiBjaHV1c2hpXCA7CivmlofpnakgPiBidW5rYWt1XCA7CivmnZ/luK8gPiBzb2t1dGFpXCA7CivmnJ/ml6UgPiBraWppdHN1XCA7CivorJvoqZUgPiBrb3VoeW91XCA7Civpo5/lvowgPiBzaG9rdWdvXCA7CivkuI3mu4UgPiBmdW1ldHN1XCA7CivnjJvniIYgPiBtb3ViYWt1XCA7Civlrablg6cgPiBnYWt1c291XCA7CivmnJ3mlrkgPiBhc2FnYXRhXCA7CivlpJXpoqggPiB5dXVrYXplXCA7Civpn7Pnr4AgPiBvbnNldHN1XCA7CivlpKfpmbggPiB0YWlyaWt1XCA7CivkubPmiL8gPiBueXV1Ym91XCA7CivkvJHkvJogPiBreXV1a2FpXCA7Civmlofpm4YgPiBidW5zaHV1XCA7CivkuKHmsI8gPiByeW91c2hpXCA7Civku4/lm70gPiBmdWtrb2t1XCA7CivogbTlj5YgPiBjaG91c2h1XCA7CivogbfljbAgPiBzaG9rdWluXCA7Civni6znnLwgPiBkb2t1Z2FuXCA7CivmnJ3mlL8gPiBjaG91c2VpXCA7CivkuIvmua8gPiBzaGltb3l1XCA7CivpoqjmlZkgPiBmdXVreW91XCA7CivmlrDphZIgPiBzaGluc2h1XCA7CivlpJzpnLIgPiB5b3RzdXl1XCA7CivpnaLosqwgPiBtZW5zZWtpXCA7Civkurrlo7AgPiBoaXRvZ29lXCA7Civnj43lrp0gPiBjaGlucG91XCA7CivnupLotrMgPiB0ZW5zb2t1XCA7CivkuLvmoLwgPiBzaHVrYWt1XCA7CivmnZHluoQgPiBzb25zaG91XCA7CivlpoToqZUgPiBtb3VoeW91XCA7Civogbfli5kgPiBzaG9rdW11XCA7Civpo6/lsYsgPiBtZXNoaXlhXCA7CivmmIbomasgPiBrb25jaHV1XCA7Civmnb/lo4EgPiBpdGFrYWJlXCA7CivmlrDpg44gPiBzaGlucm91XCA7CivkurrlooMgPiBqaW5reW91XCA7Civnuo/otrMgPiB0ZW5zb2t1XCA7Civku7LlhqwgPiBjaHV1dG91XCA7Civkub7lvrMgPiBrZW50b2t1XCA7Civmm7jmo5ogPiBzaG9kYW5hXCA7Civlpb3oqr8gPiBrb3VjaG91XCA7CivlpJXpnYQgPiB5dXVtb3lhXCA7CivmlrDpgbggPiBzaGluc2VuXCA7CivmnaXlroUgPiByYWl0YWt1XCA7Civnva7niakgPiBva2ltb25vXCA7CivnjYTmrbsgPiBnb2t1c2hpXCA7CivmnKvmioAgPiBtYXRzdWdpXCA7CivmnK3miYAgPiBmdWRhc2hvXCA7CivlpJXpnKcgPiB5dXVnaXJpXCA7CivpoJLnmb0gPiBoYW5wYWt1XCA7Civml6foprMgPiBreXV1a2FuXCA7CivkuIrmtbcgPiBzaGFuaGFpXCA7CivmlqTph48gPiBraW5yeW91XCA7CivmlrDpgZMgPiBzaGluZG91XCA7Civku7LlhYQgPiBjaHV1a2VpXCA7Civml6LoqK0gPiBraXNldHN1XCA7Civos4rlkI0gPiB6b2t1bWVpXCA7Civmmannp4sgPiBiYW5zaHV1XCA7Civlpb3oqZUgPiBrb3VoeW91XCA7CivkuIrmtYEgPiBqb3VyeXV1XCA7CivlrIzlp78gPiBreW91c2hpXCA7CivmlrDpgKAgPiBzaGluem91XCA7CivkuZfmj5sgPiBub3Jpa2FlXCA7CivkuInmtYEgPiBzYW5yeXV1XCA7CivkuIrmtJsgPiBqb3VyYWt1XCA7Civpm4zpto8gPiBtZW5kb3JpXCA7CivmnKvmiJAgPiB1cmFuYXJpXCA7CivniYfopqogPiBrYXRhb3lhXCA7Civos6DlhJ8gPiBiYWlzaG91XCA7CivkuInmtIsgPiBzYW4nJ3lvdVwgOwor57+M5pmpID4geW9rdWJhblwgOwor5Lmd5oudID4ga3l1dWhhaVwgOwor5Luu5YWNID4ga2FyaW1lblwgOwor5Li45p2QID4gbWFydXphaVwgOwor5Lu75L6gID4gbmlua3lvdVwgOwor5Lqs5aSnID4ga3lvdWRhaVwgOwor5pen6KO9ID4ga3l1dXNlaVwgOwor5Li45pysID4gbWFydWJvblwgOwor6IKJ5L2TID4gbmlrdXRhaVwgOwor5pyI5pelID4gdHN1a2loaVwgOwor5Lih5qeYID4gcnlvdXlvdVwgOwor6ZyK6ZW3ID4gcmVpY2hvdVwgOwor5pyJ5paZID4geXV1cnlvdVwgOwor6ZuM6bOlID4gbWVuZG9yaVwgOwor5pW16ZmjID4gdGVraWppblwgOwor6aCF55uuID4ga291bW9rdVwgOwor5aSJ6Z2pID4gaGVua2FrdVwgOwor5Lmx5b+DID4gcmFuc2hpblwgOwor5LiA5rWqID4gaWNoaXJvdVwgOwor5pS+6bOlID4gaG91Y2hvdVwgOwor5ayM5aOwID4ga3lvdXNlaVwgOwor5paZ6YeRID4gcnlvdWtpblwgOwor6ICB5byxID4gcm91amFrdVwgOwor5aSV6ZeHID4geXV1eWFtaVwgOwor5pWw6Zq7ID4gc3V1c2VraVwgOwor5py95buDID4ga3l1dWhhaVwgOwor6LGh5b2iID4gc2hvdWtlaVwgOwor5paw6LuKID4gc2hpbnNoYVwgOwor5Lit5p6iID4gY2h1dXN1dVwgOwor5LqL5bGAID4gamlreW9rdVwgOwor5paH6Y6uID4gYnVuY2hpblwgOwor5Lih5qOyID4gcnlvdXNlaVwgOwor5Luu5YCfID4ga2FzaGFrdVwgOwor5Lit5p2xID4gY2h1dXRvdVwgOwor5Luj5YWlID4gZGFpbnl1dVwgOwor5LiA5rOhID4gaGl0b2F3YVwgOwor5pWZ6aSKID4ga3lvdXlvdVwgOwor6Zuo6aKoID4gYW1la2F6ZVwgOwor5LiL5q2vID4gc2hpdGFiYVwgOwor6LGq5beeID4gZ291c2h1dVwgOwor5pyA5pawID4gc2Fpc2hpblwgOwor5Luj5YSfID4gZGFpc2hvdVwgOwor6Z2p6KOFID4ga2F3YXNvdVwgOwor5LuP5Y2wID4gZnV0c3VpblwgOwor5Li75pWZID4gc2h1a3lvdVwgOwor5LiA5rG6ID4gaWtrZXRzdVwgOwor5LqL5a6fID4gamlqaXRzdVwgOwor5Lit5pu0ID4gY2h1dWtvdVwgOwor5LqI5a+fID4geW9zYXRzdVwgOwor5LiA5rGXID4gaGl0b2FzZVwgOwor6Ku46KizID4gc2hvd2FrZVwgOwor5pyd5oayID4gY2hvdWtlblwgOwor5aem562WID4ga2Fuc2FrdVwgOwor5Luy5LuVID4gbmFrYXNoaVwgOwor5pys5b+DID4gaG9uc2hpblwgOwor5Luy5LuLID4gY2h1dWthaVwgOwor5Luy5Lq6ID4gbmFrb3Vkb1wgOwor5Lqs5ZywID4ga3lvdWNoaVwgOwor5pys5b6pID4gaG9ucHVrdVwgOwor6LK35Y+OID4gYmFpc2h1dVwgOwor5pWZ6aCtID4ga3lvdXRvdVwgOwor5LiA5q+rID4gaWNoaWdvdVwgOwor5p6g5YaFID4gd2FrdW5haVwgOwor5Lit5pmvID4gY2h1dWtlaVwgOwor5LiA5q+bID4gaWNoaW1vdVwgOwor6ICz5Z6iID4gbWltaWFrYVwgOwor54mn6I2JID4gYm9rdXNvdVwgOwor5pmC56+AID4gamlzZXRzdVwgOwor6aGV5q2jID4ga2Vuc2hvdVwgOwor5p2x5Zu9ID4gdG91Z29rdVwgOwor5aSn6YePID4gdGFpcnlvdVwgOwor5pWZ6Z6tID4ga3lvdWJlblwgOwor6aSo5YaFID4ga2FuJyduYWlcIDsKK+S4reaXrCA+IGNodXVqdW5cIDsKK+eLqeeMnyA+IHNodXJ5b3VcIDsKK+abtOaWsCA+IGtvdXNoaW5cIDsKK+e4pumalCA+IGp1dWtha3VcIDsKK+S4reaWrSA+IGNodXVkYW5cIDsKK+mbkemngSA+IHphcHBha3VcIDsKK+mgk+eLgiA+IHRvbmt5b3VcIDsKK+mbqOmbsiA+IGFtYWd1bW9cIDsKK+WksemAjyA+IHNoaXR0b3VcIDsKK+S4oeabvyA+IHJ5b3VnYWVcIDsKK+mbqumaoCA+IHNldGNoaW5cIDsKK+aXp+iXqSA+IGt5dXVoYW5cIDsKK+S4reaVsCA+IGNodXVzdXVcIDsKK+acq+W6pyA+IG1hdHN1emFcIDsKK+mjtOWdiiA+IGFtZW5ib3VcIDsKK+S7o+S9nCA+IGRhaXNha3VcIDsKK+acrOW6gSA+IGhvbmNob3VcIDsKK+S4uOaQjSA+IG1hcnV6b25cIDsKK+ael+WGhSA+IHJpbicnbmFpXCA7CivmnKzlubQgPiBob24nJ25lblwgOwor6Kun6Kq/ID4ga2FpY2hvdVwgOwor5pyr5bqDID4gc3VlaGlyb1wgOwor5Lit5pSvID4gY2h1dXNoaVwgOwor5peB6Ki7ID4gYm91Y2h1dVwgOwor5Luj5LyRID4gZGFpa3l1dVwgOwor54mn6IiOID4gYm9rdXNoYVwgOwor5LuP5YW3ID4gYnV0c3VndVwgOwor5Lqh5Zu9ID4gYm91a29rdVwgOwor6K2m56ybID4ga2VpdGVraVwgOwor5pyr5bitID4gbWFzc2VraVwgOwor6Ky56IG0ID4ga2luY2hvdVwgOwor6Ku46KGMID4gc2hvZ3lvdVwgOwor546J5bqnID4gZ3lva3V6YVwgOwor6ICB5bCRID4gcm91c2hvdVwgOwor5pys5beeID4gaG9uc2h1dVwgOwor5pen6JS1ID4ga3l1dXpvdVwgOwor5LmF5oeQID4ga3l1dWthaVwgOwor6ICB5bCGID4gcm91c2hvdVwgOwor54yb5q+SID4gbW91ZG9rdVwgOwor57eY6buZID4ga2FubW9rdVwgOwor5LuL5YWlID4ga2Fpbnl1dVwgOwor5pio57SZID4gc2FrdXNoaVwgOwor5LiA5qeYID4gaWNoaXlvdVwgOwor57+S5oWjID4gc2h1dWthblwgOwor5pud5pu4ID4gYmFrdXNob1wgOwor5Lih5pa5ID4gcnlvdWhvdVwgOwor6LG55aSJID4gaHlvdWhlblwgOwor5pWR6ZujID4ga3l1dW5hblwgOwor55CD5L2TID4ga3l1dXRhaVwgOwor5Lih5patID4gcnlvdWRhblwgOwor5aWl6KGMID4gb2t1eXVraVwgOwor5pyd5bu3ID4gY2hvdXRlaVwgOwor5paH6YCaID4gYnVudHN1dVwgOwor6aOf5aGpID4gc2hva3VlblwgOwor54ax6ZuyID4gbmV0c3V1blwgOwor6Zu76YuzID4gZGVuY2h1dVwgOwor5pWZ6ZaAID4ga3lvdW1vblwgOwor6ZuR6Z+zID4gemF0c3VvblwgOwor5pa56KeSID4gaG91Z2FrdVwgOwor54ub54qsID4ga29tYWludVwgOwor54+N5ZWPID4gY2hpbm1vblwgOwor5aSx6LiqID4gc2hpc3NvdVwgOwor54mb6IiOID4gZ3l1dXNoYVwgOwor5LuZ5Lq6ID4gc2VuJyduaW5cIDsKK+mbgemmliA+IGdhbmt1YmlcIDsKK+aapuazlSA+IHJla2lob3VcIDsKK+Wkqei7uCA+IHRlbmppa3VcIDsKK+iqnumHiCA+IGdvc2hha3VcIDsKK+S6uuWJjSA+IGhpdG9tYWVcIDsKK+ePvuS7uyA+IGdlbicnbmluXCA7CivlpJzpgZMgPiB5b21pY2hpXCA7Civoq5boqr8gPiByb25jaG91XCA7CivkuZnlt6EgPiBvdHN1anVuXCA7CivlpI/ph44gPiBuYXRzdW5vXCA7Civnv5LmgKcgPiBzaHV1c2VpXCA7CivlpJbpg60gPiBnYWlrYWt1XCA7Civnj43lk4EgPiBjaGlucGluXCA7CivmnJ3luIIgPiBhc2FpY2hpXCA7CivlpYnoqq0gPiBob3Vkb2t1XCA7CivlrIzlkI0gPiBreW91bWVpXCA7CivmmLznpLwgPiBjaHV1cmVpXCA7CivniafogIUgPiBib2t1c2hhXCA7CivnjaPmhb4gPiBqdXV5b2t1XCA7CivmnKvlsL4gPiBtYXRzdWJpXCA7CivkuIvmnJ8gPiBzaGltb2tpXCA7CivlpKfouqsgPiB0YWlzaGluXCA7CivpoK3ms6ggPiB0b3VjaHV1XCA7CivmlbDph48gPiBzdXVyeW91XCA7Civnh5fphZIgPiBrYW56YWtlXCA7Civku5XkuosgPiBzaGlnb3RvXCA7CivmlrDoqIIgPiBzaGludGVpXCA7Civoq5boqZUgPiByb25weW91XCA7CivkuIrmnI0gPiB1d2FmdWt1XCA7CivmnKjlsaUgPiBwb2trdXJpXCA7CivmnKvlr7ogPiBtYXRzdWppXCA7Civoq5boqLwgPiByb25zaG91XCA7Civniannva4gPiBtb25vb2tpXCA7CivmnI3lvpMgPiBmdWt1anV1XCA7CivkuInmnIggPiBtaXRzdWtpXCA7CivmnI3lvbkgPiBmdWt1ZWtpXCA7CivkuKHmkI0gPiByeW91em9uXCA7CivniZvohIIgPiBneXV1c2hpXCA7CivniafnvoogPiBib2t1eW91XCA7CivmlofouqsgPiBidW5zaGluXCA7Civlo6vplbcgPiBzaGljaG91XCA7CivlpInph48gPiBoZW5yeW91XCA7CivkuIfmnIkgPiBiYW4nJ3l1dVwgOwor5pys5a6FID4gaG9udGFrdVwgOwor5puy5oqAID4ga3lva3VnaVwgOwor6Z2S6JuZID4gYW9nYWVydVwgOwor5pyJ5b6zID4geXV1dG9rdVwgOwor54m557SaID4gdG9ra3l1dVwgOwor54yu5pyoID4ga2VuYm9rdVwgOwor6aOb5ZywID4gdG9iaWNoaVwgOwor54yr5p2/ID4gbmVrb2l0YVwgOwor5pel6IuxID4gbmljaGllaVwgOwor5LuP5LqLID4gYnV0c3VqaVwgOwor6KuL6KyBID4gc2VpZXRzdVwgOwor5piT57WMID4gZWtpa3lvdVwgOwor6Kmp6ZuGID4gc2hpc2h1dVwgOwor6LKd5YmyID4ga2Fpd2FyaVwgOwor5LiN5pelID4gZnVqaXRzdVwgOwor5pqW5rWBID4gZGFucnl1dVwgOwor5LiA5p2hID4gaWNoaWpvdVwgOwor6Z2S6JmrID4gYW9tdXNoaVwgOwor6KuS6KejID4gcnlvdWthaVwgOwor5pS56Z2pID4ga2Fpa2FrdVwgOwor5LiK5piHID4gam91c2hvdVwgOwor5LiJ5pilID4gc2Fuc2h1blwgOwor5py95aOKID4ga3l1dWthaVwgOwor5LiA5pytID4gaXNzYXRzdVwgOwor6ICQ5ZynID4gdGFpYXRzdVwgOwor5LiA5pybID4gaWNoaWJvdVwgOwor5paw6KOFID4gc2hpbnNvdVwgOwor57ir6YedID4gbnVpYmFyaVwgOwor5LuB5L6gID4gamlua3lvdVwgOwor6aCC54K5ID4gY2hvdXRlblwgOwor5LiA5puyID4gaWtreW9rdVwgOwor5Li55b+1ID4gdGFuJyduZW5cIDsKK+mfs+eJqSA+IGlubW90c3VcIDsKK+aXpeiIniA+IG5pY2hpYnVcIDsKK+aXp+iHmCA+IGt5dXVyb3VcIDsKK+eNo+W/gyA+IGp1dXNoaW5cIDsKK+iri+iolyA+IHNlaXRha3VcIDsKK+S4ueW/gyA+IHRhbnNoaW5cIDsKK+iAgeWigyA+IHJvdWt5b3VcIDsKK+S4u+W9uSA+IHNodXlha3VcIDsKK+Wkp+izniA+IHRhaXNob3VcIDsKK+S7iuS4gCA+IGltYWljaGlcIDsKK+S4h+aWmyA+IGJhbmtva3VcIDsKK+S4ieaVmSA+IHNhbmt5b3VcIDsKK+S4gOaZqSA+IGhpdG9iYW5cIDsKK+mgmOa1tyA+IHJ5b3VrYWlcIDsKK+S4u+W8tSA+IHNodWNob3VcIDsKK+WkqeixoSA+IHRlbnNob3VcIDsKK+aZqeeGnyA+IGJhbmp1a3VcIDsKK+Wmpee1kCA+IGRha2V0c3VcIDsKK+aYpeeniyA+IGhhcnVha2lcIDsKK+iyqeS/gyA+IGhhbnNva3VcIDsKK+eJm+e8tiA+IGd5dXVrYW5cIDsKK+acgOW8tyA+IHNhaWt5b3VcIDsKK+WkiemAnyA+IGhlbnNva3VcIDsKK+WkiemAmiA+IGhlbnRzdXVcIDsKK+eLgueKrCA+IGt5b3VrZW5cIDsKK+e/jOW5tCA+IHlva3VuZW5cIDsKK+aZqeeFpyA+IGJhbnNob3VcIDsKK+ism+e/kiA+IGtvdXNodXVcIDsKK+aWh+iyrCA+IGJ1bnNla2lcIDsKK+aal+auuiA+IGFuc2F0c3VcIDsKK+aVtei7jSA+IHRla2lndW5cIDsKK+eJueetiSA+IHRva3V0b3VcIDsKK+eJh+iFlSA+IGthdGF1ZGVcIDsKK+Wlh+ihkyA+IGtpanV0c3VcIDsKK+S4gOaXrCA+IGljaGlqdW5cIDsKK+S5nuWpvyA+IGtvaW11a29cIDsKK+mguOakjiA+IGtlaXRzdWlcIDsKK+iyrOS7uyA+IHNla2luaW5cIDsKK+mhlOaWmSA+IGdhbnJ5b3VcIDsKK+iqlei+sCA+IHRhbnNoaW5cIDsKK+aWnOinkiA+IHNoYWtha3VcIDsKK+acq+WlsyA+IG1hdHN1am9cIDsKK+mhleaVmSA+IGtlbmt5b3VcIDsKK+S4reaApyA+IGNodXVzZWlcIDsKK+acseWiqCA+IHNodWJva3VcIDsKK+S4geaVsCA+IGNob3VzdXVcIDsKK+S4gOaWhyA+IGljaGltb25cIDsKK+aXl+iJsiA+IGhhdGFpcm9cIDsKK+aal+asnSA+IGFuJyd1dHN1XCA7CivlpbPoibIgPiBqb3Nob2t1XCA7Civml6fogZ4gPiBreXV1YnVuXCA7CivniYfogrogPiBrYXRhaGFpXCA7CivkuLvluK0gPiBzaHVzZWtpXCA7CivmlK/pmpwgPiBzaGlzaG91XCA7CivmnLHloZcgPiBzaHVudXJpXCA7Civku4DkuIAgPiBqdXVpY2hpXCA7CivpoJjmsLQgPiByeW91c3VpXCA7CivpnaLoiLUgPiBvbW9rYWppXCA7CivpoJjmsJEgPiByeW91bWluXCA7CivkuLjluK8gPiBtYXJ1b2JpXCA7Civnt4/pq5ggPiBzb3VkYWthXCA7CivorIDoh6MgPiBib3VzaGluXCA7Civlo7Dph48gPiBzZWlyeW91XCA7CivmnKflpJwgPiBvYm9yb3lvXCA7CivlpInouqsgPiBoZW5zaGluXCA7Civlo4HpnaIgPiBoZWtpbWVuXCA7Civnv7DloqggPiBrYW5ib2t1XCA7CivkuZnlp6sgPiBvdG9oaW1lXCA7CivnjoTlppkgPiBnZW5teW91XCA7CivnvrjlvLEgPiBydWlqYWt1XCA7CivlpKnoqoUgPiB0ZW5jaHV1XCA7CivkuZ3lpKkgPiBreXV1dGVuXCA7CivkuZ3lpKcgPiBreXV1ZGFpXCA7CivkuInmjK8gPiBzYW5zaGluXCA7CivkuozljYEgPiBoYXRhY2hpXCA7CivkuI3mipwgPiBmdWJhdHN1XCA7CivkuK3lurggPiBjaHV1eW91XCA7CivpoZXmj5ogPiBrZW4nJ3lvdVwgOwor5aSn6KmwID4gb29kenVtZVwgOwor5Lih5oCnID4gcnlvdXNlaVwgOwor6Kq/6KO9ID4gY2hvdXNlaVwgOwor6LGq5ZWGID4gZ291c2hvdVwgOwor5paH6Kq/ID4gYnVuY2hvdVwgOwor5aSn6KmUID4gdGFpc2hvdVwgOwor5puy5bqmID4ga3lva3Vkb1wgOwor5Lit5bm0ID4gY2h1dW5lblwgOwor57eo6ZuGID4gaGVuc2h1dVwgOwor5LiA5o+hID4gaWNoaWFrdVwgOwor5puy5bqHID4ga3lva3VoaVwgOwor5amJ5puyID4gZW5reW9rdVwgOwor6Kqs6KutID4gc2V0c3V5dVwgOwor54uC54C+ID4ga3lvdXJhblwgOwor5Lqk5L+hID4ga291c2hpblwgOwor5Lit5bi9ID4gY2h1dWJvdVwgOwor5pil55ygID4gc2h1bm1pblwgOwor6aCs5qGBID4gaG9vZ2V0YVwgOwor5Lit5be7ID4gY2h1dWthblwgOwor54mn56ulID4gYm9rdWRvdVwgOwor5p2x5LqsID4gdG91a3lvdVwgOwor5pys5Zu9ID4gaG9uZ29rdVwgOwor6Kqs6KmxID4gc2V0c3V3YVwgOwor6aOf5Yi4ID4gc2hva2tlblwgOwor5Li75bCGID4gc2h1c2hvdVwgOwor5p2l5L+hID4gcmFpc2hpblwgOwor5pyA5bCRID4gc2Fpc2hvdVwgOwor5pyA5bCPID4gc2Fpc2hvdVwgOwor5Li75a+pID4gc2h1c2hpblwgOwor5LqM5YiXID4gbmlyZXRzdVwgOwor5LiA5ousID4gaWtrYXRzdVwgOwor6Z2e6IG3ID4gaGlzaG9rdVwgOwor5pS56YuzID4ga2FpY2h1dVwgOwor54yb5pKDID4gbW91Z2VraVwgOwor5pWP6YCfID4gYmluc29rdVwgOwor6aCs5p2WID4gaG9vZHp1ZVwgOwor5paw6JGXID4gc2hpbmNob1wgOwor54+N5LuAID4gY2hpbmp1dVwgOwor576e5oGlID4gc2h1dWNoaVwgOwor5Lmd5ZywID4ga3l1dWNoaVwgOwor5piO56K6ID4gbWVpa2FrdVwgOwor57eP6aGNID4gc291Z2FrdVwgOwor5LqM5YWrID4gbmloYWNoaVwgOwor6Kur6IejID4ga2Fuc2hpblwgOwor6Z2Z6IG0ID4gc2VpY2hvdVwgOwor5pmv5rOBID4ga2Vpa3lvdVwgOwor57eP6aCYID4gc291cnlvdVwgOwor5pel57WmID4gbmlra3l1dVwgOwor5aSn6KGGID4gdGFpc2h1dVwgOwor5pyx5ZSHID4gc2h1c2hpblwgOwor6ZuG6YeRID4gc2h1dWtpblwgOwor6Zuo6LazID4gYW1lYXNoaVwgOwor5pW06Kq/ID4gc2VpY2hvdVwgOwor5pW36KitID4gZnVzZXRzdVwgOwor5pqm5pWwID4gcmVraXN1dVwgOwor5paw6Iy2ID4gc2hpbmNoYVwgOwor6aKo5ZynID4gZnV1YXRzdVwgOwor57eP6Z2pID4gc291Z2F3YVwgOwor5Lit5bCKID4gY2h1dXpvblwgOwor5aSW6KeSID4gZ2Fpa2FrdVwgOwor5Lit5bCGID4gY2h1dWpvdVwgOwor5piO556tID4gbWVpcnlvdVwgOwor57i36KqsID4gcnVzZXRzdVwgOwor6ZuG6YWNID4gc2h1dWhhaVwgOwor5pyI5aSuID4gZ2V0c3VvdVwgOwor5Lit5a6uID4gY2h1dWd1dVwgOwor57a/6aO0ID4gd2F0YWFtZVwgOwor5pyI5aScID4gdHN1a2l5b1wgOwor54mI57GNID4gaGFuc2VraVwgOwor5aSJ6Kq/ID4gaGVuY2hvdVwgOwor5LiJ5b6zID4gc2FudG9rdVwgOwor6Zmw6ayxID4gaW4nJ3V0c3VcIDsKK+e3kemZsCA+IHJ5b2t1aW5cIDsKK+aVteimliA+IHRla2lzaGlcIDsKK+ism+eptiA+IGtvdWt5dXVcIDsKK+aUvumAuCA+IGhvdWl0c3VcIDsKK+S4iuW9uSA+IHV3YXlha3VcIDsKK+Wil+mhjSA+IHpvdWdha3VcIDsKK+S4gOaBryA+IGhpdG9pa2lcIDsKK+aWsOiIiCA+IHNoaW5rb3VcIDsKK+S5s+WJpCA+IG55dXV6YWlcIDsKK+aYjueZvSA+IG1laWhha3VcIDsKK+aUuemAsiA+IGthaXNoaW5cIDsKK+S4i+W6pyA+IHNoaW1vemFcIDsKK+ismeensCA+IGtlbnNob3VcIDsKK+mgmOaciSA+IHJ5b3V5dXVcIDsKK+S4gOW/tSA+IGljaGluZW5cIDsKK+S4h+W8lSA+IG1hbmJpa2lcIDsKK+iAleS9nCA+IGtvdXNha3VcIDsKK+eJueeUoyA+IHRva3VzYW5cIDsKK+mhleW9sCA+IGtlbnNob3VcIDsKK+acqOWPoyA+IGtpZ3VjaGlcIDsKK+S4gOW+uSA+IGl0dGV0c3VcIDsKK+mhlOW9uSA+IGthb3lha3VcIDsKK+e/u+WIuyA+IGhvbmtva3VcIDsKK+mjn+S6iyA+IHNob2t1amlcIDsKK+e3j+mVtyA+IHNvdWNob3VcIDsKK+S4ieW5tCA+IHNhbicnbmVuXCA7Civml6Xnq4sgPiBoaXRhY2hpXCA7CivmlZHosqcgPiBreXV1aGluXCA7Civmlq3ohbggPiBkYW5jaG91XCA7CivkuIrluK0gPiBqb3VzZWtpXCA7Civoqo3oqLwgPiBuaW5zaG91XCA7CivmnY/ku4EgPiBreW91bmluXCA7CivkuIflubQgPiBtYW4nJ25lblwgOwor54mp55qEID4gYnV0dGVraVwgOwor5pen56i/ID4ga3l1dWtvdVwgOwor6Zm46aKoID4gcmlrdWZ1dVwgOwor5LiA5byPID4gaXNzaGlraVwgOwor5pyX5ZSxID4gcm91c2hvdVwgOwor54uC5q27ID4ga3lvdXNoaVwgOwor6ICB5YOVID4gcm91Ym9rdVwgOwor576k5bCPID4gZ3Vuc2hvdVwgOwor54q25rOBID4gam91a3lvdVwgOwor5paw6IGeID4gc2hpbmJ1blwgOwor5Lit5aStID4gY2h1dXlvdVwgOwor5pys5YmHID4gaG9uc29rdVwgOwor5Lit5aSpID4gY2h1dXRlblwgOwor57ax6aCYID4ga291cnlvdVwgOwor5Lit5aSWID4gY2h1dWdhaVwgOwor5pWZ6KqoID4ga3lvdWthaVwgOwor5aW0562JID4geWF0c3VyYVwgOwor54us5patID4gZG9rdWRhblwgOwor6Kmw6LKsID4ga2lzc2VraVwgOwor6ICQ5LmFID4gdGFpa3l1dVwgOwor6ZqK6ZW3ID4gdGFpY2hvdVwgOwor6Zuj6KqtID4gbmFuZG9rdVwgOwor6aGn5a6iID4ga29reWFrdVwgOwor54us5paHID4gZG9rdWJ1blwgOwor5LiA5biWID4gaWNoaWpvdVwgOwor5peX56u/ID4gaGF0YXphb1wgOwor6ZyK6JasID4gcmVpeWFrdVwgOwor5LiA5behID4gaWNoaWp1blwgOwor54S86aaZID4gc2hvdWtvdVwgOwor5pWZ6KiTID4ga3lvdWt1blwgOwor5LiN5bGIID4gZnVrdXRzdVwgOwor5pyo5YiAID4gYm9rdXRvdVwgOwor57aa6aiwID4gem9rdXRvdVwgOwor5paw576FID4gc2hpcmFnaVwgOwor5aOw6Kq/ID4gc2VpY2hvdVwgOwor5aKX6ZW3ID4gem91Y2hvdVwgOwor5pqB5pifID4gZ3lvdXNlaVwgOwor6Zm66ZujID4ga2VuJyduYW5cIDsKK+S4iuWxpSA+IHV3YWJha2lcIDsKK+acrOWFgyA+IGhvbm1vdG9cIDsKK+S4reWghSA+IGNodXVrZW5cIDsKK+S4reWggiA+IGNodXVkb3VcIDsKK+Wkj+ialSA+IG5hdHN1Z29cIDsKK+S4ieWwuiA+IHNhbmpha3VcIDsKK+WkqeiNiSA+IHRlbmd1c2FcIDsKK+aciOWVhiA+IGdlc3Nob3VcIDsKK+e3mumHjyA+IHNlbnJ5b3VcIDsKK+S4jeWunyA+IGZ1aml0c3VcIDsKK+mdouepjSA+IG1lbnNla2lcIDsKK+S4i+WuvyA+IGdlc2h1a3VcIDsKK+itsOaxuiA+IGdpa2V0c3VcIDsKK+S5seS9nCA+IHJhbnNha3VcIDsKK+S4i+WutiA+IHNoaXRheWFcIDsKK+S4iuWuvyA+IGpvdXlhZG9cIDsKK+ixiuWHtiA+IGhvdWt5b3VcIDsKK+eMn+W4qyA+IHJ5b3VzaGlcIDsKK+aXp+efpSA+IGt5dXVjaGlcIDsKK+eJm+eXmCA+IGd5dXV0b3VcIDsKK+ips+irliA+IHNob3Vyb25cIDsKK+eJqeeQhiA+IGJ1dHN1cmlcIDsKK+abtOWcsCA+IHNhcmFjaGlcIDsKK+eJm+eWqyA+IGd5dXVla2lcIDsKK+acqOWDjyA+IG1va3V6b3VcIDsKK+acneWIiiA+IGNob3VrYW5cIDsKK+acneWHqiA+IGFzYW5hZ2lcIDsKK+S4u+WUsSA+IHNodXNob3VcIDsKK+e3qOi8ryA+IGhlbnNodXVcIDsKK+S4gOWxgCA+IGlra3lva3VcIDsKK+S4gOWwuiA+IGlzc2hha3VcIDsKK+eLrOaOoiA+IGRva3V0YW5cIDsKK+e3kemHjiA+IHJ5b2t1eWFcIDsKK+S4g+WunSA+IHNoaXBwb3VcIDsKK+ips+iogCA+IHNob3VnZW5cIDsKK+e3j+mHjyA+IHNvdXJ5b3VcIDsKK+aXp+ebpCA+IGt5dXViYW5cIDsKK+ips+inoyA+IHNob3VrYWlcIDsKK+Wlkee0hCA+IGtlaXlha3VcIDsKK+mbo+ihjCA+IG5hbmd5b3VcIDsKK+aciOWPjiA+IGdlc3NodXVcIDsKK+mbkeipsSA+IHphdHN1d2FcIDsKK+aXp+ebhiA+IGt5dXVib25cIDsKK+S4gOWuvyA+IGlzc2h1a3VcIDsKK+S5seS4gSA+IHJhbmNob3VcIDsKK+eEoemqqCA+IGJ1a290c3VcIDsKK+WjsuihjCA+IHVyZXl1a2lcIDsKK+mggeaVsCA+IHDEk2ppc3V1XCA7Civmlq3ntpogPiBkYW56b2t1XCA7Civpn7Pmm7IgPiBvbmd5b2t1XCA7CivkuIDlrZggPiBpY2hpem9uXCA7CivlpJXoj4UgPiB5dXVzdWdlXCA7Civmlr3nrZYgPiBzaGlzYWt1XCA7Civml6Xnmb0gPiBuaXBwYWt1XCA7CivlpKfohbggPiBkYWljaG91XCA7CivniaLnjYQgPiByb3Vnb2t1XCA7CivniqzmqYcgPiBpbnV6b3JpXCA7CivkuI7lpaogPiB5b2RhdHN1XCA7CivmnKzkurogPiBob24nJ25pblwgOwor6Zmk6ZuqID4gam9zZXRzdVwgOwor54af6KuHID4ganVrdWRhblwgOwor5aSx6ICDID4gc2hpa2tvdVwgOwor54mh54yrID4gb3N1bmVrb1wgOwor5pmp5pilID4gYmFuc2h1blwgOwor5aSc6ImyID4geWFzaG9rdVwgOwor54us5oi/ID4gZG9rdWJvdVwgOwor5pmv5pWZID4ga2Vpa3lvdVwgOwor5Lit5ZWTID4gY2h1dWtlaVwgOwor5paw57GzID4gc2hpbm1haVwgOwor5pa5562WID4gaG91c2FrdVwgOwor54qs5qeZID4gaW51bWFraVwgOwor5pyo5LuPID4ga2lidXRzdVwgOwor5pep55WqID4gaGF5YWJhblwgOwor5aSa6ImyID4gdGFzaG9rdVwgOwor5pqm5bm0ID4gcmVraW5lblwgOwor5pys5Li4ID4gaG9ubWFydVwgOwor5pmp5pa5ID4gYmFuZ2F0YVwgOwor5aSp6IG0ID4gdGVuY2hvdVwgOwor57mt57SsID4ga2VuY2h1dVwgOwor54yf5a6YID4gcnlvdWthblwgOwor6Z2S56WoID4gc2VpaHlvdVwgOwor6LGK5L2cID4gaG91c2FrdVwgOwor54yb5bCGID4gbW91c2hvdVwgOwor6aKo5L+XID4gZnV1em9rdVwgOwor54uC5pq0ID4ga3lvdWJvdVwgOwor5LiK5aOwID4gam91c2hvdVwgOwor5LiI5aSrID4gbWFzdXJhb1wgOwor5pyI5YipID4gZ2V0c3VyaVwgOwor5pS56KizID4ga2FpeWFrdVwgOwor5aKX6YePID4gem91cnlvdVwgOwor6Zu26JC9ID4gcmVpcmFrdVwgOwor5Li45Y2BID4gbWFydWp1dVwgOwor6ZuG6KiIID4gc2h1dWtlaVwgOwor6Kmx6KGTID4gd2FqdXRzdVwgOwor54md54qsID4gbWVzdWludVwgOwor54af6KanID4ganVrdXJhblwgOwor54af6KaWID4ganVrdXNoaVwgOwor6Z2i55uuID4gbWVubW9rdVwgOwor54WO6Y2LID4gaXJpbmFiZVwgOwor546E5Lq6ID4ga3Vyb3V0b1wgOwor5pat566xID4gZGFuYmFrb1wgOwor5pyd5LyaID4gY2hvdWthaVwgOwor5aGr6ZqZID4gdGVuZ2VraVwgOwor5LiK5aGXID4gdXdhbnVyaVwgOwor5LiA5aaCID4gaWNoaW55b1wgOwor5LiN5Z+SID4gZnVyYWNoaVwgOwor57eK6L+rID4ga2lucGFrdVwgOwor5LiH5aKDID4gYmFua3lvdVwgOwor6KuW562WID4gcm9uc2FrdVwgOwor6Kiz6LyJID4geWFrdXNhaVwgOwor5pyJ5YSfID4geXV1c2hvdVwgOwor5piO5r6EID4gbWVpY2hvdVwgOwor5LiA5aSnID4gaWNoaWRhaVwgOwor6KmV6KuWID4gaHlvdXJvblwgOwor6Kq/57e0ID4gY2hvdXJlblwgOwor5Lit5Y6fID4gY2h1dWdlblwgOwor6Kqk6ISxID4gZ29kYXRzdVwgOwor54uC5paHID4ga3lvdWJ1blwgOwor6Kqt6ICFID4gZG9rdXNoYVwgOwor5aOy6JasID4gYmFpeWFrdVwgOwor6LGG5LmzID4gdG91bnl1dVwgOwor5LiA5aOwID4gaGl0b2tvZVwgOwor6ZyK6IKJID4gcmVpbmlrdVwgOwor5Lit5Y2KID4gY2h1dWhhblwgOwor5paZ57SZID4gcnlvdXNoaVwgOwor5pW06IW4ID4gc2VpY2hvdVwgOwor5LiL5ZywID4gc2hpdGFqaVwgOwor5paw56iuID4gc2hpbnNodVwgOwor5aKX6YCyID4gem91c2hpblwgOwor6Z2i55aUID4gbWVuY2hvdVwgOwor6aCC5oi0ID4gY2hvdWRhaVwgOwor6KuW56m2ID4gcm9ua3l1dVwgOwor5paw56iOID4gc2hpbnplaVwgOwor6ZmN6Zu5ID4ga291aHlvdVwgOwor6Z2Z55qEID4gc2VpdGVraVwgOwor6KmV6KiAID4gaHlvdWdlblwgOwor5LiL5ZuzID4gc2hpdGF6dVwgOwor5LiA5aGBID4gaWNoaXJ1aVwgOwor5pS56KGMID4ga2FpZ3lvdVwgOwor5LiA5aC0ID4gaWNoaWpvdVwgOwor5Li45YWsID4gbWFydWtvdVwgOwor6Kqe6ISIID4gZ29teWFrdVwgOwor5aW955CDID4ga291a3l1dVwgOwor5LiJ5Zu9ID4gc2FuZ29rdVwgOwor5Lih5ZCNID4gcnlvdW1laVwgOwor6ZqP6LqrID4genVpc2hpblwgOwor5LiA5aCCID4gaWNoaWRvdVwgOwor5LiH5Zu9ID4gYmFua29rdVwgOwor54Sh6ZuRID4gbXV6YXRzdVwgOwor5Lit5YmNID4gY2h1dXplblwgOwor6Kaq6bieID4gc2hpbnJhblwgOwor5paZ57ChID4gcnlvdWtlblwgOwor6Zu76ISzID4gZGVuJydub3VcIDsKK+S4reWIpCA+IGNodXViYW5cIDsKK+S4reWIhiA+IGNodXVidW5cIDsKK+e1tumggiA+IHpldGNob3VcIDsKK+mgkeW8tyA+IGdhbmt5b3VcIDsKK+aXp+eJiCA+IGt5dXViYW5cIDsKK+e5i+e4myA+IGtlaWJha3VcIDsKK+aXj+eUnyA+IHpva3VzZWlcIDsKK+irh+eskSA+IGRhbnNob3VcIDsKK+WkquezuCA+IGZ1dG9pdG9cIDsKK+Wni+alrSA+IHNoaWd5b3VcIDsKK+S4gOWboyA+IGljaGlkYW5cIDsKK+iomOi/sCA+IGtpanV0c3VcIDsKK+aXqeeGnyA+IHNvdWp1a3VcIDsKK+iqh+iJsiA+IGtvc2hva3VcIDsKK+iol+mAgSA+IHRha3Vzb3VcIDsKK+ioiOmHjyA+IGtlaXJ5b3VcIDsKK+e1semgmCA+IHRvdXJ5b3VcIDsKK+mbjOiYgiA+IG1lc2hpYmVcIDsKK+S4reWFgyA+IGNodXVnZW5cIDsKK+mghuW/nCA+IGp1bicnbm91XCA7CivpmbjpgIEgPiByaWt1c291XCA7CivmnIjkuosgPiBnZXRzdWppXCA7Civopqrps6UgPiBveWFkb3JpXCA7CivntabppIogPiBreXV1eW91XCA7CivnibnmrrUgPiB0b2t1ZGFuXCA7CivkuKHliY0gPiByeW91bWFlXCA7CivlpKfnspIgPiBvb3RzdWJ1XCA7CivkuInllLEgPiBzYW5zaG91XCA7CivkuIrllIcgPiBqb3VzaGluXCA7CivoqJPov6ogPiBrdW50ZWtpXCA7CivnibnmroogPiB0b2t1c2h1XCA7CivoqqzntYwgPiBzZWtreW91XCA7CivlooPpgYcgPiBreW91Z3V1XCA7Civml6XnhacgPiBuaXNzaG91XCA7CivmlZHojZIgPiBreXV1a291XCA7CivoqabolqwgPiBzaGl5YWt1XCA7CivoqZDooZMgPiBzYWp1dHN1XCA7CivkuKHliIYgPiByeW91YnVuXCA7Civpm4zolYogPiBtZXNoaWJlXCA7CivkuKHliIAgPiByeW91dG91XCA7CivmkqXpn7MgPiBoYXRzdW9uXCA7Civmm7jkv6EgPiBzaG9zaGluXCA7CivmmYLml6UgPiBqaWppdHN1XCA7CivkuIDllp0gPiBpa2thdHN1XCA7CivkuI3lkIkgPiBmdWtpdHN1XCA7Civnt6nooZ0gPiBrYW5zaG91XCA7CivkuIrlkYogPiBqb3Vrb2t1XCA7CivkuKHlhaggPiByeW91emVuXCA7Civpmbjou40gPiByaWt1Z3VuXCA7CivkuKHlhZogPiByeW91dG91XCA7CivkuIDllY8gPiBpY2hpbW9uXCA7CivoqLzoqIAgPiBzaG91Z2VuXCA7CivmmIfmsZ4gPiBzaG91a291XCA7Civpm6johJogPiBhbWVhc2hpXCA7CivmlrDnm6QgPiBzaGluYmFuXCA7CivoqLvop6MgPiBjaHV1a2FpXCA7Civpn7vlvosgPiBpbnJpdHN1XCA7CivmmrTlnKcgPiBib3VhdHN1XCA7CivlpKnnq7ogPiB0ZW5qaWt1XCA7CivoqLHoq74gPiBreW9kYWt1XCA7CivniIbnoJUgPiBiYWt1c2FpXCA7CivkuKHlg48gPiByeW91em91XCA7Civni4LmhYsgPiBreW91dGFpXCA7CivlpKfnrJEgPiB0YWlzaG91XCA7Civlqb/lhaUgPiBtdWtvaXJpXCA7CivoqLPoqakgPiB5YWt1c2hpXCA7CivmmIfmrr8gPiBzaG91ZGVuXCA7Civpm6LohLEgPiByaWRhdHN1XCA7CivoqLPoqZ4gPiB5YWt1c2hpXCA7CivmmIfmrrUgPiBzaG91ZGFuXCA7CivniafmsJEgPiBib2t1bWluXCA7CivlpKnnqpMgPiB0ZW5tYWRvXCA7CivkuIDlkb0gPiBpY2hpbWVpXCA7CivmlZnogrIgPiBreW91aWt1XCA7CivkuIDlkbMgPiBoaXRvYWppXCA7CivlpLHnpoEgPiBzaGlra2luXCA7Civnt4/oqZUgPiBzb3VoeW91XCA7Civlppnms5UgPiBteW91aG91XCA7Civntabpm7sgPiBreXV1ZGVuXCA7CivkuK3ku5UgPiBuYWthc2hpXCA7CivopqrpqqggPiBveWFib25lXCA7Civmlofnq6AgPiBidW5zaG91XCA7Civmm7jkuK0gPiBzaG9jaHV1XCA7CivkuIfljZogPiBiYW5wYWt1XCA7CivkuIDlkI0gPiBpY2hpbWVpXCA7CivkuIDlkIwgPiBpY2hpZG91XCA7Civpn7PlvosgPiBvbnJpdHN1XCA7CivkuIvliqMgPiBnZXJldHN1XCA7Civpm6PogbQgPiBuYW5jaG91XCA7CivkuIDlj7cgPiBpY2hpZ291XCA7CivkuIDlj7AgPiBpY2hpZGFpXCA7Civpm6LogbcgPiByaXNob2t1XCA7CivkuInliqkgPiBzYW5zdWtlXCA7CivkuKHkvr8gPiByeW91YmVuXCA7CivmmKXmnKwgPiBzaHVucG9uXCA7CivkuIPljYEgPiBuYW5hanV1XCA7CivkuK3kuJYgPiBjaHV1c2VpXCA7Civopr/pnaIgPiB0ZWtpbWVuXCA7CivlpKnnpo8gPiB0ZW5wdWt1XCA7CivmlrDnlLAgPiBzaGluZGVuXCA7CivkuIflipsgPiBtYW5yaWtpXCA7CivmlrDnlJ8gPiBzaGluc2VpXCA7CivkuIrliLsgPiBqb3Vrb2t1XCA7CivkuIHljYogPiBjaG91aGFuXCA7CivlpKfnpo8gPiBkYWlmdWt1XCA7CivpoZjlipsgPiBnYW5yaWtpXCA7CivlpKnnpZAgPiB0ZW4nJ3l1dVwgOwor5pio5pmpID4gc2FrdWJhblwgOwor5pmp5bm0ID4gYmFuJyduZW5cIDsKK+eFp+impyA+IHNob3VyYW5cIDsKK+aYpeaaliA+IHNodW5kYW5cIDsKK+e3iuimgSA+IGtpbicneW91XCA7CivkuIDli7ogPiBpc3NoYWt1XCA7CivoqpPntIQgPiBzZWl5YWt1XCA7CivmmbrlsIYgPiBjaGlzaG91XCA7Civlpqjmpa0gPiBib3VneW91XCA7CivoqanoiIggPiBzaGlreW91XCA7CivkuKHkurogPiByeW91bmluXCA7CivoprPpn7MgPiBrYW4nJ25vblwgOwor5pmC5oqYID4gdG9raW9yaVwgOwor54m95p2fID4ga2Vuc29rdVwgOwor5pKw6YyyID4gc2Vucm9rdVwgOwor5pS56ImvID4ga2FpcnlvdVwgOwor5pa954mpID4gc2Vtb3RzdVwgOwor5aWu5r+AID4gZnVuZ2VraVwgOwor5Lih5LiJID4gcnlvdXNhblwgOwor6Zu7566XID4gZGVuc29yb1wgOwor6Kaq6aGeID4gc2hpbnJ1aVwgOwor54us5aWPID4gZG9rdXNvdVwgOwor57WQ6ZyyID4ga2V0c3Vyb1wgOwor5pen5rOVID4ga3l1dWhvdVwgOwor5pWZ57e0ID4ga3lvdXJlblwgOwor54m55pyJID4gdG9rdXl1dVwgOwor5LiK5YG0ID4gdXdhZ2F3YVwgOwor5pm25a2QID4gc2hvdXNoaVwgOwor57im57O4ID4gdGF0ZWl0b1wgOwor5LiA5YaKID4gaXNzYXRzdVwgOwor5aem5oKqID4ga2FuJydha3VcIDsKK+inkumMkCA+IGtha3VzdWlcIDsKK+e1kOmbhiA+IGtlc3NodXVcIDsKK+S4i+WApCA+IHNoaXRhbmVcIDsKK+Wls+a5ryA+IG9uJyduYXl1XCA7CivkuIDlhYMgPiBpY2hpZ2VuXCA7CivnvoXliJcgPiByYXJldHN1XCA7Civmmpblm70gPiBkYW5rb2t1XCA7CivniL3mtrwgPiBzb3VyeW91XCA7CivlpKnnnJ8gPiB0ZW5zaGluXCA7CivpmbPorJ0gPiBjaGluc2hhXCA7CivmlpHnmb0gPiBoYW5wYWt1XCA7CivkuIDlhIQgPiBpY2hpb2t1XCA7CivoqJPoqq0gPiBrdW5kb2t1XCA7CivkuJjkuIogPiBreXV1am91XCA7CivniJvnhp8gPiByYW5qdWt1XCA7Civlpb3ms4EgPiBrb3VreW91XCA7Civml6LmsbogPiBraWtldHN1XCA7CivoqabogbQgPiBzaGljaG91XCA7CivmmI7mnJ0gPiBtaW5jaG91XCA7CivoqJfoqIAgPiB0YWt1Z2VuXCA7CivpoJjln58gPiByeW91aWtpXCA7CivmmoHlpKkgPiBneW91dGVuXCA7CivoqIDosqwgPiBnZW5zZWtpXCA7CivmlrDniYggPiBzaGlucGFuXCA7Civopqrpm7sgPiBzaGluZGVuXCA7CivlpKrnmb0gPiB0YWloYWt1XCA7Civnibnml6ggPiB0b2t1c2hpXCA7CivkuIrkvZwgPiBqb3VzYWt1XCA7CivlpKnnmocgPiB0ZW4nJ25vdVwgOwor5LiK5Ly4ID4gam91c2hpblwgOwor5pWw56eSID4gc3V1YnlvdVwgOwor5pWj562WID4gc2Fuc2FrdVwgOwor5paH55u4ID4gYnVuc2hvdVwgOwor5aOy57SEID4gYmFpeWFrdVwgOwor5LiJ5Ly4ID4gc2Fuc2hpblwgOwor5pen5q2TID4ga3l1dWthblwgOwor5aSn55m9ID4gdGFpaGFrdVwgOwor5LiH5L2cID4gbWFuc2FrdVwgOwor5piO5pmwID4gbWVpc2VraVwgOwor5pmp5a2mID4gYmFuZ2FrdVwgOwor6aCY5ZywID4gcnlvdWNoaVwgOwor54Sm6LqBID4gc2hvdXNvdVwgOwor5piO5pmpID4gbXlvdWJhblwgOwor5LiA5YCNID4gaWNoaWJhaVwgOwor5pWs56ewID4ga2Vpc2hvdVwgOwor57WC6Zu7ID4gc2h1dWRlblwgOwor5LiK5Lq6ID4gc2hvdW5pblwgOwor5pel5qynID4gbmljaGlvdVwgOwor5LiK5LqsID4gam91a3lvdVwgOwor5piO5pifID4gbXlvdWpvdVwgOwor5LiJ5Lq6ID4gc2FuJyduaW5cIDsKK+e4puesmyA+IHRhdGVidWVcIDsKK+mbhue+pCA+IHNodXVndW5cIDsKK+S4h+S6uiA+IG1hbicnbmluXCA7CivmlZnnr4QgPiBreW91aGFuXCA7CivkuIDkvosgPiBpY2hpcmVpXCA7CivlpKfnl4UgPiB0YWlieW91XCA7CivmlaznpZ4gPiBrZWlzaGluXCA7CivnibnmkrAgPiB0b2t1c2VuXCA7Civoqr/nkLQgPiBjaG91a2luXCA7CivpoK3lj5YgPiB0b3Vkb3JpXCA7CivpoIblooMgPiBqdW5reW91XCA7Civpm6jnrKAgPiBhbWFnYXNhXCA7Civntabph5EgPiBreXV1a2luXCA7CivoqbPntLAgPiBzaG91c2FpXCA7CivnuKbnqbQgPiB0YXRlYW5hXCA7CivkuIDku7sgPiBpY2hpbmluXCA7CivlpKfnlLcgPiBvb290b2tvXCA7CivkuIDku6MgPiBpY2hpZGFpXCA7CivnvbDliYcgPiBiYXNzb2t1XCA7CivpnIfnm6ogPiBzaGludG91XCA7CivpnIrnmoQgPiByZWl0ZWtpXCA7CivpnZnms6ggPiBqb3VjaHV1XCA7CivlpJbnm7ggPiBnYWlzaG91XCA7CivlpJrnmbogPiB0YWhhdHN1XCA7Civpm6jnqbogPiBhbWF6b3JhXCA7CivnhLboq74gPiB6ZW5kYWt1XCA7Civoqa7ntKIgPiBzZW5zYWt1XCA7CivnuYvnlZkgPiBrZWlyeXV1XCA7CivmlaPnpaggPiBzYW5weW91XCA7Civnt7Tnv5IgPiByZW5zaHV1XCA7CivoqZXogIUgPiBoeW91c2hhXCA7Civnhp/nt7QgPiBqdWt1cmVuXCA7CivkuIDkuLggPiBpY2hpZ2FuXCA7CivlpJbnmoQgPiBnYWl0ZWtpXCA7Civni6zlloQgPiBkb2t1emVuXCA7CivlpI/nnYAgPiBuYXRzdWdpXCA7CivoqanntYwgPiBzaGlreW91XCA7CivnibnmjZwgPiB0b2t1c291XCA7CivlpKnnkIMgPiB0ZW5reXV1XCA7Civml6fmo7IgPiBreXV1c2VpXCA7CivlprvmiLggPiB0c3VtYWRvXCA7CivmlZnnqIsgPiBreW91dGVpXCA7CivmlpHnjKsgPiBoYW5teW91XCA7CivmmYvlsbEgPiBzaGluemFuXCA7CivnjJ/kurogPiByeW91amluXCA7Civml4vmr5sgPiB0c3VtdWppXCA7CivloLHphawgPiBob3VzaHV1XCA7Civng4jpnIcgPiByZXNzaGluXCA7CivmmKXmg4UgPiBzaHVuam91XCA7Civnt6znvoogPiBtZW4nJ3lvdVwgOwor5pen5qCWID4ga3l1dXNlaVwgOwor57if56S8ID4gam9rdXJlaVwgOwor5aSn542EID4gdGFpZ29rdVwgOwor5aSn54yfID4gdGFpcnlvdVwgOwor54uC5aWUID4ga3lvdWhvblwgOwor5aKo6ImyID4gc3VtaWlyb1wgOwor57eP6IqxID4gc291YmFuYVwgOwor5pWm552mID4gdG9uYm9rdVwgOwor6KaB6aCYID4geW91cnlvdVwgOwor54us5ZCfID4gZG9rdWdpblwgOwor6KaG6Z2iID4gZnVrdW1lblwgOwor57mU54mpID4gb3JpbW9ub1wgOwor5pWs55m9ID4ga2VpaGFrdVwgOwor5aWU5rWBID4gaG9ucnl1dVwgOwor5pen5p2lID4ga3l1dXJhaVwgOwor5pep5pydID4gc291Y2hvdVwgOwor5pen5p2RID4ga3l1dXNvblwgOwor5pmC5bGAID4gamlreW9rdVwgOwor5pSv57WmID4gc2hpa3l1dVwgOwor5pS/562WID4gc2Vpc2FrdVwgOwor54us5Y2gID4gZG9rdXNlblwgOwor5aSJ55eHID4gaGVuc2hvdVwgOwor5pel5pydID4gbml0Y2hvdVwgOwor5pSv57SiID4gc2hpc2FrdVwgOwor5aaC5pyIID4gbmlnYXRzdVwgOwor5pep5pqBID4gc291Z3lvdVwgOwor5aSx54K5ID4gc2hpdHRlblwgOwor6ZuR56mAID4gemFra29rdVwgOwor6KWf6auqID4gZXJpZ2FtaVwgOwor6Kaq6YeMID4gb3lhemF0b1wgOwor54Wn6IeoID4gc2hvdXJpblwgOwor5pep5pilID4gc291c2h1blwgOwor5pio5bm0ID4gc2FrdW5lblwgOwor6Ky55oWOID4ga2luc2hpblwgOwor6Kej6KqtID4ga2FpZG9rdVwgOwor5aSp54S2ID4gdGVuJyduZW5cIDsKK+aWsOazlSA+IHNoaW5wb3VcIDsKK+WlpeanmCA+IG9rdXNhbWFcIDsKK+eLrOWJtSA+IGRva3Vzb3VcIDsKK+aXpeaZgiA+IG5pY2hpamlcIDsKK+e3keiCpSA+IHJ5b2t1aGlcIDsKK+mgmOWIhiA+IHJ5b3VidW5cIDsKK+e3r+ezuCA+IHlva29pdG9cIDsKK+mbqueZvSA+IHNlcHBha3VcIDsKK+eJueaApyA+IHRva3VzZWlcIDsKK+eJueaApSA+IHRva2t5dXVcIDsKK+aUu+eptiA+IGtvdWt5dXVcIDsKK+mgmOWGhSA+IHJ5b3VuYWlcIDsKK+mZhOiorSA+IGZ1c2V0c3VcIDsKK+mbu+eQgyA+IGRlbmt5dXVcIDsKK+eJveW8tyA+IGtlbmt5b3VcIDsKK+eJh+aWuSA+IGthdGFob3VcIDsKK+aVmeeahyA+IGt5b3Vrb3VcIDsKK+ipnueroCA+IHNoaXNob3VcIDsKK+ios+iAhSA+IHlha3VzaGFcIDsKK+eJueW+hSA+IHRva3V0YWlcIDsKK+iln+mmliA+IGVyaWt1YmlcIDsKK+WlquagvCA+IGRha2tha3VcIDsKK+aVteeKtiA+IHRla2lqb3VcIDsKK+aSg+mAgCA+IGdla2l0YWlcIDsKK+mbo+eZliA+IG5hbmt1c2VcIDsKK+aUueensCA+IGthaXNob3VcIDsKK+WmmeaJiyA+IG15b3VzaHVcIDsKK+aYpeW1kCA+IHNodW5yYW5cIDsKK+ilsumbtyA+IHNodXVyYWlcIDsKK+WmmeaJgCA+IG15b3VzaG9cIDsKK+imqui/kSA+IHNoaW5raW5cIDsKK+aYjuW+tCA+IG1laWNob3VcIDsKK+aYjuW+syA+IG1laXRva3VcIDsKK+mbo+eXhyA+IG5hbnNob3VcIDsKK+mbo+eXhSA+IG5hbmJ5b3VcIDsKK+eEoeihgCA+IG11a2V0c3VcIDsKK+immumGkiA+IGtha3VzZWlcIDsKK+e3oOe0hCA+IHRlaXlha3VcIDsKK+itmOWtlyA+IHNoaWtpamlcIDsKK+mYsuirnCA+IGJvdWNob3VcIDsKK+aageWFiSA+IGd5b3Vrb3VcIDsKK+aVmeeUnyA+IGt5b3VzZWlcIDsKK+aYlOW5tCA+IHNla2luZW5cIDsKK+iri+axgiA+IHNlaWt5dXVcIDsKK+Wkp+a8gSA+IHRhaXJ5b3VcIDsKK+eCkumjryA+IGNoYWFoYW5cIDsKK+mgg+WIuyA+IGtlaWtva3VcIDsKK+mZpeiQvSA+IGthbnJha3VcIDsKK+iqmOeIhiA+IHl1dWJha3VcIDsKK+mdkuadviA+IHNlaXNob3VcIDsKK+WklueCuiA+IGdhaXRhbWVcIDsKK+iovOe0mSA+IHNob3VzaGlcIDsKK+mch+eBvSA+IHNoaW5zYWlcIDsKK+aZr+WLnSA+IGtlaXNob3VcIDsKK+aYpeWvkiA+IHNodW5rYW5cIDsKK+e1seimmiA+IHRvdWtha3VcIDsKK+eIhuatuyA+IGJha3VzaGlcIDsKK+e2suiGnCA+IG1vdW1ha3VcIDsKK+eGn+efpSA+IGp1a3VjaGlcIDsKK+aYjuW5tCA+IG15b3VuZW5cIDsKK+Wkqea4rCA+IHRlbnNva3VcIDsKK+Wkqea4myA+IHRlbmJpa2lcIDsKK+Wlj+alvSA+IHNvdWdha3VcIDsKK+mgmOS8miA+IHJ5b3VrYWlcIDsKK+iqv+azlSA+IGNob3Vob3VcIDsKK+aYjOW5syA+IHNob3VoZWlcIDsKK+WnieWpvyA+IGFuZW11a29cIDsKK+e1gui7iiA+IHNodXVzaGFcIDsKK+aakeS4rSA+IHNob2NodXVcIDsKK+e2v+e+iiA+IG1lbicneW91XCA7Civnsr7puqYgPiBzZWliYWt1XCA7Civnhp/nnaEgPiBqdWt1c3VpXCA7CivnuKvniakgPiBudWltb25vXCA7Civmlq/mpa0gPiBzaGlneW91XCA7CivmmbblhYkgPiBzaG91a291XCA7Civnt4rnuJsgPiBraW5iYWt1XCA7CivoprPos54gPiBrYW5zaG91XCA7Civpn5Plm70gPiBrYW5rb2t1XCA7Civpm6PnkIMgPiBuYW5reXV1XCA7Civnhp/nnKAgPiBqdWt1bWluXCA7Civloqjns7ggPiBzdW1paXRvXCA7CivpmbDohrMgPiBrYWdlemVuXCA7CivoqannmoQgPiBzaGl0ZWtpXCA7CivpoJjkuLsgPiByeW91c2h1XCA7CivmmJ/lraYgPiBzZWlnYWt1XCA7CivlpKnmtKUgPiB0ZW5zaGluXCA7CivpnZLmmKUgPiBzZWlzaHVuXCA7CivmmofkurogPiBoaW1hamluXCA7CivoprPosaEgPiBrYW5zaG91XCA7Civpn7PlipsgPiBvbnJ5b2t1XCA7CivngrrpioAgPiB0YW1lZ2luXCA7CivoqJPogrIgPiBrdW4nJ2lrdVwgOwor5aWl5pa5ID4gb2t1Z2F0YVwgOwor54up5Lq6ID4ga2FyeXVkb1wgOwor57Sv6YCyID4gcnVpc2hpblwgOwor5aSp5rOjID4gdGVua3l1dVwgOwor5aWu5pKDID4gZnVuZ2VraVwgOwor54S86IqLID4geWFraWltb1wgOwor5pen5oeQID4ga3l1dWthaVwgOwor6Zmq6IejID4gYmFpc2hpblwgOwor54mn5birID4gYm9rdXNoaVwgOwor5paw5qGIID4gc2hpbicnYW5cIDsKK+mch+a6kCA+IHNoaW5nZW5cIDsKK+aXp+aFoyA+IGt5dXVrYW5cIDsKK+majue0miA+IGthaWt5dXVcIDsKK+aXp+aFiyA+IGt5dXV0YWlcIDsKK+eJueWumiA+IHRva3V0ZWlcIDsKK+aYqOWklSA+IHNha3V5dXVcIDsKK+mau+ecvCA+IHNla2lnYW5cIDsKK+eHg+eEvCA+IG5lbnNob3VcIDsKK+aWsOadpSA+IHNoaW5yYWlcIDsKK+aYk+WtpiA+IGVraWdha3VcIDsKK+Wil+e1piA+IHpvdWt5dXVcIDsKK+aXp+aCqiA+IGt5dXVha3VcIDsKK+aVsOa7tCA+IHN1dXRla2lcIDsKK+e2vue1uSA+IGF5YWdpbnVcIDsKK+e0oumBkyA+IHNha3Vkb3VcIDsKK+Wmu+WmviA+IHNhaXNob3VcIDsKK+aXp+aBqCA+IGt5dXVrb25cIDsKK+aXqeaApSA+IHNvdWt5dXVcIDsKK+e1kOiqniA+IGtldHN1Z29cIDsKK+aWsOabuCA+IHNoaW5zaG9cIDsKK+e0lOmHjyA+IGp1bnJ5b3VcIDsKK+Wls+aJiyA+IG9uJyduYWRlXCA7CivnhrHni4IgPiBuZWtreW91XCA7CivlpbPmiL8gPiBueW91Ym91XCA7CivlpJbmtbcgPiBzb3RvdW1pXCA7CivlpKfmraMgPiB0YWlzaG91XCA7CivlpLHmqKkgPiBzaGlra2VuXCA7CivlpKfmrLIgPiB0YWl5b2t1XCA7CivntZDoqJcgPiBrZXR0YWt1XCA7CivlpJbms6ggPiBnYWljaHV1XCA7CivpmLLomasgPiBib3VjaHV1XCA7CivlpJbms4ogPiBnYWloYWt1XCA7CivmlrDmmJ8gPiBzaGluc2VpXCA7CivopobovKogPiBmdWt1cmluXCA7CivmlbTmtYEgPiBzZWlyeXV1XCA7CivpoILkuIogPiBjaG91am91XCA7CivnhrHnh5cgPiBhdHN1a2FuXCA7Civml6XlvZMgPiBoaWF0YXJpXCA7Civns6Dpm6ggPiBudWthYW1lXCA7Civnt4/np7AgPiBzb3VzaG91XCA7Civml6flvIogPiBreXV1aGVpXCA7Civngavpo58gPiBrYXNob2t1XCA7CivnibnlpKcgPiB0b2t1ZGFpXCA7CivopqroqLEgPiBveWFtb3RvXCA7CivmmKXlnYogPiBoYXJ1Ym91XCA7CivoqavnirYgPiB3YWJpam91XCA7Civpm7vmtYEgPiBkZW5yeXV1XCA7CivorablkYogPiBrZWlrb2t1XCA7Civnibnlo7IgPiB0b2t1YmFpXCA7CivmlrDmlL8gPiBzaGluc2VpXCA7CivmlqzmlrAgPiB6YW5zaGluXCA7Civniq/liYcgPiBoYW5zb2t1XCA7Civpmpznoo0gPiBzaG91Z2FpXCA7CivnhKHoibIgPiBtdXNob2t1XCA7CivlpJbmrrsgPiBnYWlrYWt1XCA7Civpm4zniqwgPiBtZXN1aW51XCA7CivlpKnmpa0gPiB0ZW5neW91XCA7Civoq5bmlbUgPiByb250ZWtpXCA7Civpm4DnkIMgPiBqYW5reXV1XCA7Civmlofmp5ggPiBtb24nJ3lvdVwgOwor5aSn5qWtID4gdGFpZ3lvdVwgOwor5pen5birID4ga3l1dXNoaVwgOwor5peF5omAID4gdGFiaXNob1wgOwor57O46Yu4ID4gaXRvbm9rb1wgOwor5paw5pKwID4gc2hpbnNlblwgOwor6Kaz6KGGID4ga2Fuc2h1dVwgOwor5pS+54mnID4gaG91Ym9rdVwgOwor54m55aCxID4gdG9rdWhvdVwgOwor5paH5qW9ID4gYnVucmFrdVwgOwor54Sh6IWwID4gbXVnb3NoaVwgOwor6Kaq6KOBID4gc2hpbnNhaVwgOwor6Z2i5b2xID4gb21va2FnZVwgOwor54WZ56qBID4gZW50b3RzdVwgOwor5aKT56m0ID4gYm9rZXRzdVwgOwor54uC5Lq6ID4ga3lvdWppblwgOwor6Kq/5pu4ID4gY2hvdXNob1wgOwor5piH5aSpID4gc2hvdXRlblwgOwor6Kaq6KGbID4gc2hpbicnZWlcIDsKK+eLguS5sSA+IGt5b3VyYW5cIDsKK+mdqeW4ryA+IGthd2FvYmlcIDsKK+WkqeafsSA+IHRlbmNodXVcIDsKK+aXheaEgSA+IHJ5b3NodXVcIDsKK+ino+iEsSA+IGdlZGF0c3VcIDsKK+aYvOWJjSA+IGhpcnVtYWVcIDsKK+e2mue3qCA+IHpva3VoZW5cIDsKK+eGsea8lCA+IG5ldHN1ZW5cIDsKK+mbqua0niA+IGJvbmJvcmlcIDsKK+eEoeiBtyA+IG11c2hva3VcIDsKK+e3j+edoyA+IHNvdXRva3VcIDsKK+mWk+mamSA+IGthbmdla2lcIDsKK+imluiouiA+IHNoaXNoaW5cIDsKK+mWk+malCA+IGthbmtha3VcIDsKK+mdtOWxiyA+IGt1dHN1eWFcIDsKK+WgheiqvyA+IGtlbmNob3VcIDsKK+aWjuacjSA+IHNhaWZ1a3VcIDsKK+aXp+WxhSA+IGt5dXVreW9cIDsKK+e3qeeQgyA+IGthbmt5dXVcIDsKK+e2mee2miA+IGtlaXpva3VcIDsKK+WkqeacnSA+IHRlbmNob3VcIDsKK+imluinkiA+IHNoaWtha3VcIDsKK+aXp+WwgSA+IGt5dXVob3VcIDsKK+iqpOakjSA+IGdvc2hva3VcIDsKK+mZi+e/kiA+IHJvdXNodXVcIDsKK+Wkp+acqCA+IHRhaWJva3VcIDsKK+WfjumDrSA+IGpvdWtha3VcIDsKK+aVkea4iCA+IGt5dXVzYWlcIDsKK+imluimmiA+IHNoaWtha3VcIDsKK+e3j+eariA+IHNvdWdhd2FcIDsKK+mZuOeosiA+IHJpa3V0b3VcIDsKK+aVmeazlSA+IGt5b3Vob3VcIDsKK+iqv+aVtCA+IGNob3VzZWlcIDsKK+aXp+WumCA+IGt5dXVrYW5cIDsKK+WkseaVrCA+IHNoaWtrZWlcIDsKK+mWi+mZsyA+IGthaWNoaW5cIDsKK+WkseaVlyA+IHNoaXBwYWlcIDsKK+WlveWwmiA+IGtvdXNob3VcIDsKK+Wlh+aKnCA+IGtpYmF0c3VcIDsKK+WkseaUvyA+IHNoaXNzZWlcIDsKK+iojueptiA+IHRvdWt5dXVcIDsKK+mciuafqSA+IHJlaWt5dXVcIDsKK+iqreacrCA+IGRva3Vob25cIDsKK+mYsuiHrSA+IGJvdXNodXVcIDsKK+iqreabuCA+IGRva3VzaG9cIDsKK+eKr+S6uiA+IGhhbicnbmluXCA7CivlpaXluq0gPiBva3VuaXdhXCA7CivoqqzmnI0gPiBzZXBwdWt1XCA7CivlporlqKAgPiBuaW5zaGluXCA7CivlpaXlupUgPiBva3V6b2tvXCA7CivniaflnLAgPiBib2t1Y2hpXCA7CivmlabmqLggPiB0b25ib2t1XCA7Civlpb3lraYgPiBrb3VnYWt1XCA7Civnt6jniakgPiBhbWltb25vXCA7Civntprnr4cgPiB6b2t1aGVuXCA7CivlpKnmlbUgPiB0ZW50ZWtpXCA7CivntYzolLUgPiBreW91em91XCA7CivpnIrmnKggPiByZWlib2t1XCA7CivlpJzmm7IgPiB5YWt5b2t1XCA7Civnt4/nlLsgPiBzb3VrYWt1XCA7CivlpKfmlbUgPiB0YWl0ZWtpXCA7Civnibnlkb0gPiB0b2t1bWVpXCA7CivpmaPnrKAgPiBqaW5nYXNhXCA7Civpmobnm5sgPiByeXV1c2VpXCA7CivoqZXngrkgPiBoeW91dGVuXCA7CivmlrDmgqMgPiBzaGlua2FuXCA7CivmlZHmsJEgPiBreXV1bWluXCA7CivopoHoqLMgPiB5b3V5YWt1XCA7Civml6flp5MgPiBreXV1c2VpXCA7CivpmY3ntaYgPiBrb3VreXV1XCA7Civml6flprsgPiBreXV1c2FpXCA7CivmlofmlZkgPiBidW5reW91XCA7CivpnaLlrrkgPiBtZW4nJ3lvdVwgOwor5aSJ5qKDID4gaGVudGVrb1wgOwor57Gz6bqmID4gYmVpYmFrdVwgOwor57Sw6J66ID4ga2lzaGFnb1wgOwor54ax5rCXID4gbmV0c3VrZVwgOwor5pio5YasID4gc2FrdXRvdVwgOwor5pil5YiGID4gc2h1bmJ1blwgOwor6Kaz6I+KID4ga2FuZ2lrdVwgOwor5pen5aW9ID4ga3l1dWtvdVwgOwor6Zu75p+xID4gZGVuY2h1dVwgOwor6ZaL6ZG/ID4ga2Fpc2FrdVwgOwor6ZW36ZuoID4gbmFnYWFtZVwgOwor5aSJ5qC8ID4gaGVua2FrdVwgOwor5pen5aWXID4ga3l1dXRvdVwgOwor6Kqe5pyrID4gZ29tYXRzdVwgOwor57On6YGTID4gcnlvdWRvdVwgOwor6KWf6LazID4gZXJpYXNoaVwgOwor6Ky55ZGKID4ga2lua29rdVwgOwor6Kqs5pWZID4gc2Vra3lvdVwgOwor5pGY6KaBID4gdGVraXlvdVwgOwor6K2J5Yi4ID4gc2hvdWtlblwgOwor5pWZ5qipID4ga3lvdWtlblwgOwor5pem5aSVID4gdGFuc2VraVwgOwor5pat5b+1ID4gZGFuJyduZW5cIDsKK+aXpeWknCA+IG5pY2hpeWFcIDsKK+Wfjui3oSA+IGpvdXNla2lcIDsKK+aXpeWklSA+IG5pc3Nla2lcIDsKK+aYpeWFiSA+IHNodW5rb3VcIDsKK+aUvua1gSA+IGhvdXJ5dXVcIDsKK+mch+aXpiA+IHNoaW50YW5cIDsKK+WlpeWxsSA+IG9rdXlhbWFcIDsKK+aXp+WinyA+IGt5dXVreW9cIDsKK+mdmeWvgiA+IHNlaWpha3VcIDsKK+ino+e0hCA+IGthaXlha3VcIDsKK+WkseaKlSA+IHNoaXR0b3VcIDsKK+e2seebriA+IGtvdW1va3VcIDsKK+eBq+mJoiA+IGhpYmFjaGlcIDsKK+e1tue4gSA+IHpldHN1ZW5cIDsKK+WkleaWuSA+IHl1dWdhdGFcIDsKK+Wft+ihjCA+IHNoaWtrb3VcIDsKK+eyl+mjnyA+IHNvc2hva3VcIDsKK+aVrOacjSA+IGtlaWZ1a3VcIDsKK+WkluaVtSA+IGdhaXRla2lcIDsKK+aVheauuiA+IGtvc2F0c3VcIDsKK+imgeihnSA+IHlvdXNob3VcIDsKK+WmhOWftyA+IG1vdXNodXVcIDsKK+Wig+ebriA+IHNha2FpbWVcIDsKK+Wkj+aXpSA+IGthaml0c3VcIDsKK+mch+aSvCA+IHNoaW5rYW5cIDsKK+aVpuactCA+IHRvbmJva3VcIDsKK+WjsOalvSA+IHNlaWdha3VcIDsKK+aXp+WeiyA+IGt5dXVrZWlcIDsKK+aXheWuoiA+IHJ5b2tha3VcIDsKK+mdouWmliA+IG1lbicneW91XCA7CivmmK3ku6MgPiBzaG91ZGFpXCA7CivnhKHnrYYgPiBtdWhpdHN1XCA7CivnibnlhpkgPiB0b2t1c2hhXCA7CivlpLHmhYsgPiBzaGl0dGFpXCA7Civml6flnYAgPiBreXV1c2hpXCA7CivntZDohbggPiBrZXRjaG91XCA7Civml6flnLAgPiBreXV1Y2hpXCA7CivnibnlhbggPiB0b2t1dGVuXCA7CivloKrog70gPiB0YW4nJ25vdVwgOwor6KO96Z2pID4gc2Vpa2FrdVwgOwor5aSx5oSPID4gc2hpdHN1aVwgOwor54iG5by+ID4gYmFrdWRhblwgOwor54m55YWNID4gdG9rdW1lblwgOwor5pSv5rWBID4gc2hpcnl1dVwgOwor5o+a6Zm4ID4geW91cmlrdVwgOwor6Kaq6Ii5ID4gb3lhYnVuZVwgOwor6Zm455SjID4gcmlrdXNhblwgOwor6Zm455SfID4gcmlrdXNlaVwgOwor6Z2i5aOBID4gbWVucGVraVwgOwor5o6i6bOlID4gdGFuY2hvdVwgOwor6Kaq6IeoID4gc2hpbnJpblwgOwor57SE6KiAID4geWFrdWdlblwgOwor5aKD55WMID4ga3lvdWthaVwgOwor5pWZ5p2hID4ga3lvdWpvdVwgOwor57KX6ZuRID4gc296YXRzdVwgOwor5pWZ5p2QID4ga3lvdXphaVwgOwor5pWZ5pysID4ga3lvdWhvblwgOwor6Zu75pKDID4gZGVuZ2VraVwgOwor5pWZ5pu4ID4ga3lvdXNob1wgOwor6ZmN56WeID4ga291c2hpblwgOwor6ZaT6L+RID4gbWFkamlrYVwgOwor5paw5bGFID4gc2hpbmt5b1wgOwor57S66ImyID4ga29uJydpcm9cIDsKK+e2meebriA+IHRzdWdpbWVcIDsKK+mbt+aSgyA+IHJhaWdla2lcIDsKK+WhvueUnyA+IGp1a3VzZWlcIDsKK+iqv+W8piA+IGNob3VnZW5cIDsKK+WkseW9kyA+IHNoaXR0b3VcIDsKK+eHg+aWmSA+IG5lbnJ5b3VcIDsKK+ioiOeUuyA+IGtlaWtha3VcIDsKK+eJueS+iyA+IHRva3VyZWlcIDsKK+maoOa7hSA+IGlubWV0c3VcIDsKK+eJueS9vyA+IHRva3VzaGlcIDsKK+Wkp+aBryA+IHRhaXNva3VcIDsKK+mbhuaoqSA+IHNodXVrZW5cIDsKK+mWi+mAmiA+IGthaXRzdXVcIDsKK+mZo+eXmyA+IGppbnRzdXVcIDsKK+WkluaImiA+IGdhaXNla2lcIDsKK+WkqeW/gyA+IHRlbnNoaW5cIDsKK+e1hOiBtyA+IHNvc2hva3VcIDsKK+e2sueMnyA+IGFtaXJ5b3VcIDsKK+aWr+WtpiA+IHNoaWdha3VcIDsKK+aVteaJiyA+IHRla2lzaHVcIDsKK+WjsuaYpSA+IGJhaXNodW5cIDsKK+Wkp+W+syA+IGRhaXRva3VcIDsKK+mbouaXpSA+IHJpbmljaGlcIDsKK+eyvumAsiA+IHNob3VqaW5cIDsKK+Wkp+W9uSA+IHRhaXlha3VcIDsKK+eyvumAmiA+IHNlaXRzdXVcIDsKK+eFieeNhCA+IHJlbmdva3VcIDsKK+imque9siA+IHNoaW5zaG9cIDsKK+iruOWbvSA+IHNob2tva3VcIDsKK+aXp+WQjSA+IGt5dXVtZWlcIDsKK+eJm+WIgCA+IGd5dXV0b3VcIDsKK+mbo+aVtSA+IG5hbnRla2lcIDsKK+aXp+WPtyA+IGt5dXVnb3VcIDsKK+eAnemdkiA+IHJla2lzZWlcIDsKK+Wkp+W8kyA+IGRhaWt5dXVcIDsKK+aXp+WPiyA+IGt5dXV5dXVcIDsKK+e1kOe4gSA+IGtlY2hpZW5cIDsKK+iinum+jSA+IGtvbnJ5b3VcIDsKK+aWsOWpmiA+IHNoaW5rb25cIDsKK+aWh+W8sSA+IGJ1bmpha3VcIDsKK+aXpeWPjiA+IG5pc3NodXVcIDsKK+mbkeacqCA+IHpvdWJva3VcIDsKK+iqrOW+lyA+IHNldHRva3VcIDsKK+mdluWbvSA+IHNlaWtva3VcIDsKK+aYjuS6riA+IG1laXJ5b3VcIDsKK+WkqeW5lSA+IHRlbm1ha3VcIDsKK+Wjq+aXjyA+IHNoaXpva3VcIDsKK+eGn+afvyA+IGp1a3VzaGlcIDsKK+mWsuimpyA+IGV0c3VyYW5cIDsKK+mdqeWRvSA+IGtha3VtZWlcIDsKK+e5lOW4gyA+IHNob2t1ZnVcIDsKK+aXpeWNsCA+IG5pY2hpaW5cIDsKK+e5iuW8sSA+IHNlbmpha3VcIDsKK+e0sOiFlSA+IGhvc291ZGVcIDsKK+e5lOW3pSA+IHNob2trb3VcIDsKK+eFp+a6liA+IHNob3VqdW5cIDsKK+mbtuaIpiA+IHplcm9zZW5cIDsKK+aVteaDhSA+IHRla2lqb3VcIDsKK+aYh+S7uyA+IHNob3VuaW5cIDsKK+immuiAhSA+IGtha3VzaGFcIDsKK+imluiBtCA+IHNoaWNob3VcIDsKK+e1hOe5lCA+IHNvc2hpa2lcIDsKK+mVt+mAnSA+IGNob3VzZWlcIDsKK+mZhOedgCA+IGZ1Y2hha3VcIDsKK+isrOS8nSA+IGJ5dXVkZW5cIDsKK+WkluW/gyA+IGdhaXNoaW5cIDsKK+aVteaApyA+IHRla2lzZWlcIDsKK+iqoOW/oCA+IHNlaWNodXVcIDsKK+iqmOaDkSA+IHl1dXdha3VcIDsKK+eJp+S6uiA+IGJva3VqaW5cIDsKK+aXp+WItiA+IGt5dXVzZWlcIDsKK+e1jOezuCA+IHRhdGVpdG9cIDsKK+mVt+i+uiA+IGNob3VoZW5cIDsKK+iqoOW/gyA+IHNlaXNoaW5cIDsKK+mciuW7nyA+IHJlaWJ5b3VcIDsKK+ipruaWuSA+IHNlbmthdGFcIDsKK+aXp+WIiiA+IGt5dXVrYW5cIDsKK+aXreWFiSA+IGt5b2trb3VcIDsKK+WkseWvviA+IHNoaXR0YWlcIDsKK+eJh+WJjSA+IGthdGFtYWVcIDsKK+irnOWgsSA+IGNob3Vob3VcIDsKK+WiqOaxoCA+IGJva3VjaGlcIDsKK+Wegui/uSA+IHN1aWpha3VcIDsKK+aVtOW+qSA+IHNlaWZ1a3VcIDsKK+aXp+WGrCA+IGt5dXV0b3VcIDsKK+aUr+afsSA+IHNoaWNodXVcIDsKK+WiqOaxgSA+IGJva3VqdXVcIDsKK+aUueaapiA+IGthaXJla2lcIDsKK+aWsOWgsSA+IHNoaW5wb3VcIDsKK+WkluW7kyA+IGdhaWtha3VcIDsKK+mYquelniA+IGhhbnNoaW5cIDsKK+iqv+WtkCA+IGNob3VzaGlcIDsKK+aXp+WFuCA+IGt5dXV0ZW5cIDsKK+aVteW8viA+IHRla2lkYW5cIDsKK+mWgOi3oSA+IG1vbnpla2lcIDsKK+eyl+mHkSA+IGFyYWdhbmVcIDsKK+aUv+aVtSA+IHNlaXRla2lcIDsKK+imquexsyA+IHNoaW5iZWlcIDsKK+aVj+aNtyA+IGJpbnNob3VcIDsKK+eJiOWFgyA+IGhhbm1vdG9cIDsKK+aUv+aVmSA+IHNlaWt5b3VcIDsKK+ippuaWmSA+IHNoaXJ5b3VcIDsKK+ilgeikkyA+IG11dHN1a2lcIDsKK+e0lOiJryA+IGp1bnJ5b3VcIDsKK+WkieW/gyA+IGhlbnNoaW5cIDsKK+aVmeaIkiA+IGt5b3VrYWlcIDsKK+Wkp+WwjyA+IGRhaXNob3VcIDsKK+Wkp+WwhiA+IGRhaXNob3VcIDsKK+aXp+WCtSA+IGt5dXVzYWlcIDsKK+mWk+irnCA+IGthbmNob3VcIDsKK+imi+e/kiA+IG1pbmFyYWlcIDsKK+aUueaWsCA+IGthaXNoaW5cIDsKK+aWsOWcsCA+IHNoaW5jaGlcIDsKK+e5i+WxniA+IGtlaXpva3VcIDsKK+aUvuaTsiA+IGhvdXRla2lcIDsKK+aVt+W4gyA+IHNoaWtpZnVcIDsKK+mbhuaVoyA+IHNodXVzYW5cIDsKK+aOoembhiA+IHNhaXNodXVcIDsKK+eJm+S4vCA+IGd5dXVkb25cIDsKK+inkuebhiA+IGtha3Vib25cIDsKK+eIveWHiSA+IHNvdXJ5b3VcIDsKK+iplOabuCA+IHNob3VzaG9cIDsKK+Wkp+WtpiA+IGRhaWdha3VcIDsKK+imquetiSA+IHNoaW50b3VcIDsKK+WjgeadvyA+IGthYmVpdGFcIDsKK+WmhOS/oSA+IG1vdXNoaW5cIDsKK+aWh+WtpiA+IGJ1bmdha3VcIDsKK+aUu+aSgyA+IGtvdWdla2lcIDsKK+e3keaouSA+IHJ5b2t1anVcIDsKK+eIquWNsCA+IHRzdW1laW5cIDsKK+aXp+S+iyA+IGt5dXVyZWlcIDsKK+aUr+aXjyA+IHNoaXpva3VcIDsKK+eznuidvyA+IGt1c29iYWVcIDsKK+WinOatuyA+IHRzdWlzaGlcIDsKK+WlqOWKsSA+IHNob3VyZWlcIDsKK+e5lOWnqyA+IG9yaWhpbWVcIDsKK+iqv+WjsCA+IGNob3VzZWlcIDsKK+ikkuizniA+IGhvdXNob3VcIDsKK+e0heiJsiA+IGJlbmlpcm9cIDsKK+mZuOa1tyA+IHJpa3VrYWlcIDsKK+e1guerryA+IHNodXV0YW5cIDsKK+aXpeS8ryA+IG5pcHBha3VcIDsKK+aXi+WJiiA+IHNlbnNha3VcIDsKK+inkueVqiA+IGthZG9iYW5cIDsKK+eyvuiqrSA+IHNlaWRva3VcIDsKK+e5lOWlsyA+IHNob2t1am9cIDsKK+aXp+S6pCA+IGt5dXVrb3VcIDsKK+aXpeS7mCA+IGhpZHp1a2VcIDsKK+eGseaEmyA+IG5ldHN1YWlcIDsKK+Wig+a2ryA+IGt5b3VnYWlcIDsKK+mcnOWknCA+IHNoaW1veW9cIDsKK+eEpueHpSA+IHNob3Vzb3VcIDsKK+Wls+WCkSA+IGpva2V0c3VcIDsKK+WkqeWlsyA+IHRlbicnbnlvXCA7Civop5Lnk7YgPiBrYWt1YmluXCA7CivntKHnuL4gPiBib3VzZWtpXCA7CivoqanmioQgPiBzaGlzaG91XCA7Civml6fkuLsgPiBreXV1c2h1XCA7CivlpKflpbMgPiBvb29uJyduYVwgOwor5pW15a++ID4gdGVraXRhaVwgOwor6KiI5risID4ga2Vpc29rdVwgOwor5paw5ZOBID4gc2hpbnBpblwgOwor5aWJ5ZSxID4gaG91c2hvdVwgOwor6Kaq56WtID4gc2hpbnNhaVwgOwor5paZ5ZywID4gcnlvdWNoaVwgOwor54Sh54axID4gbXVuZXRzdVwgOwor57WQ55+zID4ga2Vzc2VraVwgOwor6ZW36KybID4gY2hvdWtvdVwgOwor57eP5qGQID4gc291Z2lyaVwgOwor54Sm54K5ID4gc2hvdXRlblwgOwor54af5oiQID4ganVrdXNlaVwgOwor6Ki85pu4ID4gc2hvdXNob1wgOwor6KuW5ZGKID4gcm9ua29rdVwgOwor54ax5b+DID4gbmVzc2hpblwgOwor6Kej54axID4gZ2VuZXRzdVwgOwor5aWJ5ZGKID4gaG91a29rdVwgOwor5aSx5ZywID4gc2hpdGNoaVwgOwor5paw5Y+CID4gc2hpbnphblwgOwor6ZuG5oiQID4gc2h1dXNlaVwgOwor5pWw5a2mID4gc3V1Z2FrdVwgOwor5pWZ5birID4ga3lvdXNoaVwgOwor5pKD56CVID4gZ2VraXNhaVwgOwor6Kqt5aOyID4geW9taXVyaVwgOwor5o6Y6ZG/ID4ga3Vzc2FrdVwgOwor6Zu55a6zID4gaHlvdWdhaVwgOwor57eP5p+EID4gc291Z2FyYVwgOwor6ZyK5aaZID4gcmVpbXlvdVwgOwor5aSJ5a65ID4gaGVuJyd5b3VcIDsKK+aXheWDpyA+IHRhYmlzb3VcIDsKK+ijuOi2syA+IGhhZGFzaGlcIDsKK+irluWPiiA+IHJvbmt5dXVcIDsKK+aOoemMsiA+IHNhaXJva3VcIDsKK+eGn+aFriA+IGp1a3VyeW9cIDsKK+imgee0hCA+IHlvdXlha3VcIDsKK+eCjuiJsiA+IGVuc2hva3VcIDsKK+eGseW7tiA+IG5ldHN1ZW5cIDsKK+ios+acrCA+IHlha3Vob25cIDsKK+iovOaYjiA+IHNob3VtZWlcIDsKK+WiqOabuCA+IGJva3VzaG9cIDsKK+e0m+ezviA+IGZ1bmt5dXVcIDsKK+ios+abuCA+IHlha3VzaG9cIDsKK+aOqOmHjyA+IHN1aXJ5b3VcIDsKK+aSnueQgyA+IGRvdWt5dXVcIDsKK+WkmeWknCA+IHNodWt1eWFcIDsKK+eGseW6piA+IG5ldHN1ZG9cIDsKK+mch+WkriA+IHNoaW4nJ291XCA7CivloIbnqY0gPiB0YWlzZWtpXCA7CivntK/nqY0gPiBydWlzZWtpXCA7CivpmrvmiYsgPiBzZWtpc2h1XCA7CivlpKnlm70gPiB0ZW5nb2t1XCA7Civoo4/ph5ggPiB1cmFrdWdpXCA7Civoo4/ph5EgPiB1cmFnYW5lXCA7CivmlKrmi4wgPiBrYWt1aGFuXCA7CivnhJnng5kgPiBob3Vyb2t1XCA7CivpmbjmqYsgPiByaWtreW91XCA7Civoqo3lrrkgPiBuaW4nJ3lvdVwgOwor6Ki85paHID4gc2hvdW1vblwgOwor6Ki65patID4gc2hpbmRhblwgOwor5aSn5Zu9ID4gdGFpa29rdVwgOwor6Zmw5qydID4gaW4nJ3V0c3VcIDsKK+iou+aWhyA+IGNodXVtb25cIDsKK+e0uueipyA+IGtvbnBla2lcIDsKK+aWsOWItiA+IHNoaW5zZWlcIDsKK+aUueaCmyA+IGthaXNodW5cIDsKK+ipqeW/gyA+IHNoaXNoaW5cIDsKK+e1tueEoSA+IHpldHN1bXVcIDsKK+WkluWjgSA+IGdhaWhla2lcIDsKK+eGn+aAnSA+IGp1a3VzaGlcIDsKK+aWsOWIiiA+IHNoaW5rYW5cIDsKK+aWsOWIgCA+IHNoaW50b3VcIDsKK+mchOWjjCA+IHNob3Vqb3VcIDsKK+aUvuW/gyA+IGhvdXNoaW5cIDsKK+eMqeOAhSA+IHNob3Vqb3VcIDsKK+Whnua6kCA+IHNva3VnZW5cIDsKK+Wkp+WYtCA+IG9vaGFzaGlcIDsKK+e1guebpCA+IHNodXViYW5cIDsKK+e0jee1jCA+IG5vdWt5b3VcIDsKK+aVmeWwjiA+IGt5b3Vkb3VcIDsKK+aWsOWFtSA+IHNoaW5wZWlcIDsKK+eEvOatuyA+IHNob3VzaGlcIDsKK+ios+aWhyA+IHlha3VidW5cIDsKK+aWsOWFmiA+IHNoaW50b3VcIDsKK+aUueW/gyA+IGthaXNoaW5cIDsKK+eFp+aYnyA+IHNob3VzZWlcIDsKK+aOm+mHkSA+IGtha2VraW5cIDsKK+aVl+WwhiA+IGhhaXNob3VcIDsKK+aOqOmAsiA+IHN1aXNoaW5cIDsKK+eFp+aYjiA+IHNob3VtZWlcIDsKK+mbhOW/gyA+IHl1dXNoaW5cIDsKK+mZuOajsiA+IHJpa3VzZWlcIDsKK+ikh+imliA+IGZ1a3VzaGlcIDsKK+eyvuiZqyA+IHNlaWNodXVcIDsKK+aVteWhgSA+IHRla2lydWlcIDsKK+e2suajmiA+IGFtaWRhbmFcIDsKK+mZuOajmiA+IHJpa3Vob3VcIDsKK+aVmeWumCA+IGt5b3VrYW5cIDsKK+WbvemiqCA+IGtva3VmdXVcIDsKK+mahuabvyA+IHJ5dXV0YWlcIDsKK+e3muaPjyA+IHNlbmJ5b3VcIDsKK+imi+elniA+IGtlbnNoaW5cIDsKK+ijgemHjyA+IHNhaXJ5b3VcIDsKK+iqv+WQiCA+IGNob3Vnb3VcIDsKK+aUv+W6gSA+IHNlaWNob3VcIDsKK+iqv+WPtyA+IGNob3Vnb3VcIDsKK+mZsOaltSA+IGlua3lva3VcIDsKK+Wkj+WgtCA+IG5hdHN1YmFcIDsKK+e0hee1hCA+IGFrYWd1bWlcIDsKK+inkueBryA+IGtha3V0b3VcIDsKK+ikh+ijvSA+IGZ1a3VzZWlcIDsKK+WkluWcpyA+IGdhaWF0c3VcIDsKK+aWieWUsSA+IHNlaXNob3VcIDsKK+eGn+W5tCA+IGp1a3VuZW5cIDsKK+e1kOeQgyA+IGtla2t5dXVcIDsKK+WghuefsyA+IHRhaXNla2lcIDsKK+WkluWbvSA+IGdhaWtva3VcIDsKK+aOpei+niA+IHNldHN1amlcIDsKK+eyvuiWhCA+IHNlaWhha3VcIDsKK+aVteWcsCA+IHRla2ljaGlcIDsKK+aNlemjnyA+IGhvc2hva3VcIDsKK+aVteWbvSA+IHRla2tva3VcIDsKK+e1gueUnyA+IHNodXVzZWlcIDsKK+ino+a2iCA+IGthaXNob3VcIDsKK+WkieWfnyA+IGhlbicnaWtpXCA7Civpmb3mmqYgPiB5b3VyZWtpXCA7CivlpKflkI0gPiBkYWlteW91XCA7CivlpLHlirkgPiBzaGlra291XCA7CivmlrDkvZMgPiBzaGludGFpXCA7Civlm73pm7sgPiBrb2t1ZGVuXCA7CivlpKflj6MgPiBvb2d1Y2hpXCA7CivmjpjpgLIgPiBrdXNzaGluXCA7Civoqr/liaQgPiBjaG91emFpXCA7Civpmbjmm7kgPiByaWt1c291XCA7Civlm73pm6MgPiBrb2t1bmFuXCA7Civnt6nmgKUgPiBrYW5reXV1XCA7CivmlK/luqYgPiBzaGl0YWt1XCA7Civpmb3mmKUgPiB5b3VzaHVuXCA7Civlm73pmpsgPiBrb2t1c2FpXCA7CivlpKfljoQgPiB0YWl5YWt1XCA7CivntIvnq6AgPiBtb25zaG91XCA7CivmlK/luoEgPiBzaGljaG91XCA7CivlnLDpgZMgPiBqaW1pY2hpXCA7CivopqrnjokgPiBveWFkYW1hXCA7CivmlrDkurogPiBzaGluamluXCA7CivmlYXlrp8gPiBrb2ppdHN1XCA7CivlpJbllYYgPiBnYWlzaG91XCA7Civlm73pmLIgPiBrb2t1Ym91XCA7CivmlL7lsL8gPiBob3VueW91XCA7Civop6PmsLcgPiBrYWloeW91XCA7CivmlofljZogPiBidW5oYWt1XCA7Civmk6/mlqUgPiBoaW5zZWtpXCA7CivlpKfli50gPiB0YWlzaG91XCA7CivmlZnlo4cgPiBreW91ZGFuXCA7CivnuK7lm7MgPiBzaHVrdXp1XCA7CivplpPohpwgPiBrYW5tYWt1XCA7CivlpKflipsgPiBkYWlyaWtpXCA7Civmk43mpa0gPiBzb3VneW91XCA7CivlpKnliYcgPiB0ZW5zb2t1XCA7Civmjqjos54gPiBzdWlzaG91XCA7CivnhKHmrKAgPiBtdWtldHN1XCA7CivoqanlraYgPiBzaGlnYWt1XCA7Civmv4Dpl5ggPiBnZWtpdG91XCA7CivoprPnhacgPiBrYW5zaG91XCA7CivlpJblkaggPiBnYWlzaHV1XCA7CivplpPohLMgPiBrYW4nJ25vdVwgOwor5pWZ5aC0ID4ga3lvdWpvdVwgOwor5Zuw6ZujID4ga29uJyduYW5cIDsKK+e4puWdkSA+IHRhdGVrb3VcIDsKK+e1pua6kCA+IGt5dXVnZW5cIDsKK+mcsuS7jyA+IHJvZnV0c3VcIDsKK+iqoeWRiiA+IGthaWtva3VcIDsKK+e1pua5ryA+IGt5dXV0b3VcIDsKK+WcsOi7uCA+IGNoaWppa3VcIDsKK+eCuuedgCA+IHNoaWtpc2VcIDsKK+Wkp+WHtiA+IGRhaWt5b3VcIDsKK+imgeebriA+IHlvdW1va3VcIDsKK+aUu+WtpiA+IGtvdWdha3VcIDsKK+e1hOeJiCA+IGt1bWloYW5cIDsKK+iqv+WBnCA+IGNob3V0ZWlcIDsKK+aUueWulyA+IGthaXNodXVcIDsKK+e5lOWFgyA+IG9yaW1vdG9cIDsKK+iln+eroCA+IGVyaXNob3VcIDsKK+mWi+iFuSA+IGthaWZ1a3VcIDsKK+mbm+WjhyA+IGhpbmFkYW5cIDsKK+Wkp+WFtSA+IGRhaWh5b3VcIDsKK+eHreWFiSA+IHNob2trb3VcIDsKK+ihqOmhjCA+IGh5b3VkYWlcIDsKK+mch+WLlSA+IHNoaW5kb3VcIDsKK+aVmeWboyA+IGt5b3VkYW5cIDsKK+e0lOecnyA+IGp1bnNoaW5cIDsKK+mat+WxniA+IHJlaXpva3VcIDsKK+aWnOS6pCA+IGhhc3VrYWlcIDsKK+e5geWKhyA+IGhhbmdla2lcIDsKK+eFqeaCqSA+IGJvbicnbm91XCA7Civoo73olqwgPiBzZWl5YWt1XCA7Civlo7Llm70gPiBiYWlrb2t1XCA7CivlpLHkvZMgPiBzaGl0dGFpXCA7CivntJTnm4ogPiBqdW4nJ2VraVwgOwor5paZ5LqtID4gcnlvdXRlaVwgOwor6Kaq54KZID4gc2hpbnNoYVwgOwor6KSH6JGJID4gZnVrdXlvdVwgOwor6Kmz5aCxID4gc2hvdWhvdVwgOwor57ee5bizID4gZG9uY2hvdVwgOwor5pW15YuiID4gdGVraXplaVwgOwor6KGo6Z2iID4gaHlvdW1lblwgOwor6ZW36IqLID4gbmFnYWltb1wgOwor6Zqj5bitID4gcmluc2VraVwgOwor57SU55m9ID4ganVucGFrdVwgOwor6KmV5a6aID4gaHlvdXRlaVwgOwor6Ziy5q+SID4gYm91ZG9rdVwgOwor5pWw5Yy5ID4gc3V1aGlraVwgOwor5aSV5Yi7ID4geXV1a29rdVwgOwor6Zu75Y2TID4gZGVudGFrdVwgOwor57WC54K5ID4gc2h1dXRlblwgOwor57eK5oClID4ga2lua3l1dVwgOwor6ZmN5qC8ID4ga291a2FrdVwgOwor57Wm5rC0ID4ga3l1dXN1aVwgOwor57K+6IKJID4gc2VpbmlrdVwgOwor5pW15YmNID4gdGVraXplblwgOwor5aSV5YeqID4geXV1bmFnaVwgOwor5aGe5qCTID4gc29rdXNlblwgOwor57ma5LmxID4gcnlvdXJhblwgOwor5aSp5L2RID4gdGVuJyd5dXVcIDsKK+ipqeWigyA+IHNoaWt5b3VcIDsKK+e4hOWiqCA+IGpvdWJva3VcIDsKK+Wkp+S9nCA+IHRhaXNha3VcIDsKK+imqua9riA+IG95YXNoaW9cIDsKK+Wbo+mVtyA+IGRhbmNob3VcIDsKK+mXmOeXhSA+IHRvdWJ5b3VcIDsKK+ijnOihgCA+IGhva2V0c3VcIDsKK+ims+a4rCA+IGthbnNva3VcIDsKK+eFruW5siA+IG5pYm9zaGlcIDsKK+Wbm+mYvyA+IGF6dW1heWFcIDsKK+e2seaJiyA+IHRzdW5hZGVcIDsKK+mZuOaIpiA+IHJpa3VzZW5cIDsKK+WkqeS6uiA+IHRlbicnbmluXCA7CivngYzohbggPiBrYW5jaG91XCA7Civnt4rlvLUgPiBraW5jaG91XCA7Civpm4blobUgPiBzaHV1amluXCA7CivpmpTlubQgPiBrYWt1bmVuXCA7CivpmY3mnI0gPiBrb3VmdWt1XCA7CivlpJblgrcgPiBnYWlzaG91XCA7CivlpInliYcgPiBoZW5zb2t1XCA7Civpm4bloYogPiBzaHV1a2FpXCA7CivnhKHmnK0gPiBtdXNhdHN1XCA7CivntIXnmb0gPiBrb3VoYWt1XCA7Civop6PmnpAgPiBrYWlzZWtpXCA7CivnhKHmnIggPiBtdWdldHN1XCA7CivlopflvrQgPiB6b3VjaG91XCA7CivopbLnlKggPiBzaHV1eW91XCA7CivoqqzkvI8gPiBzZXBwdWt1XCA7CivnhrHllLEgPiBuZXNzaG91XCA7CivmlonkuIAgPiBzZWlpdHN1XCA7CivlpJbkv6EgPiBnYWlzaGluXCA7CivmlofkuK0gPiBidW5jaHV1XCA7CivlopflvLcgPiB6b3VreW91XCA7CivpmbrmgqogPiBrZW4nJ2FrdVwgOwor6ZW36ICDID4gY2hvdWtvdVwgOwor6ZW36ICBID4gY2hvdXJvdVwgOwor6KGM6aCtID4gZ3lvdXRvdVwgOwor57ea5a+pID4gc2Vuc2hpblwgOwor6KW/54usID4gc2VpZG9rdVwgOwor5pWR5ZG9ID4ga3l1dW1laVwgOwor6Zqg5a+GID4gb25taXRzdVwgOwor6Zao56eAID4ga2Vpc2h1dVwgOwor6ZyN5LmxID4ga2FrdXJhblwgOwor5Zu96YGTID4ga29rdWRvdVwgOwor57WQ5rC3ID4ga2VwcHlvdVwgOwor6ZuG5ZujID4gc2h1dWRhblwgOwor5Zu96YCjID4ga29rdXJlblwgOwor6Zmz5oOFID4gY2hpbmpvdVwgOwor54Gr5664ID4gaGliYXNoaVwgOwor5aOy5Y2cID4gYmFpYm9rdVwgOwor5pWX5YyXID4gaGFpYm9rdVwgOwor6Zqc5a6zID4gc2hvdWdhaVwgOwor5aKX5bmFID4gem91ZnVrdVwgOwor5pOy5by+ID4gdGVraWRhblwgOwor5r2u6aiSID4gc2hpb3NhaVwgOwor57Si54S2ID4gc2FrdXplblwgOwor54S85oiQID4gc2hvdXNlaVwgOwor6Zu75L+hID4gZGVuc2hpblwgOwor57aa5oqVID4gem9rdXRvdVwgOwor5r+r6KqtID4gcmFuZG9rdVwgOwor57aZ5om/ID4ga2Vpc2hvdVwgOwor57a+5biDID4gYXlhbnVub1wgOwor57KY6IacID4gbmVubWFrdVwgOwor5pGC55CGID4gc2V0c3VyaVwgOwor6Zuq5YakID4gc2V0c3VlblwgOwor5pS/5ZWGID4gc2Vpc2hvdVwgOwor5aKo5a6IID4gYm9rdXNodVwgOwor57KJ6Iy2ID4ga29uYWNoYVwgOwor6KeS5p2QID4ga2FrdXphaVwgOwor57WM5q20ID4ga2VpcmVraVwgOwor6Zui5YilID4gcmliZXRzdVwgOwor6ZeY54mbID4gdG91Z3l1dVwgOwor54Wn5bCEID4gc2hvdXNoYVwgOwor5pGp5ruFID4gbWFtZXRzdVwgOwor5Zu96LuNID4ga29rdWd1blwgOwor5aGX5pOmID4gdG9zYXRzdVwgOwor5r+r6Ke0ID4gcmFuc2hvdVwgOwor6ZW357eoID4gY2hvdWhlblwgOwor5pWZ5YW4ID4ga3lvdXRlblwgOwor5Zyw6KGoID4gY2hpaHlvdVwgOwor6Kmy5Y2aID4gZ2FpaGFrdVwgOwor5o6o6JasID4gc3VpeWFrdVwgOwor6Zmz5byBID4gY2hpbmJlblwgOwor57O455OcID4gaGVjaGltYVwgOwor54Ks54e1ID4ga290YXRzdVwgOwor6KGM6ZaTID4gZ3lvdWthblwgOwor6Zuo5YKYID4gYW1hZ2FzYVwgOwor6ZaL56uLID4ga2Fpcnl1dVwgOwor57WC5q2iID4gc2h1dXNoaVwgOwor5pKe5pyoID4gc2h1bW9rdVwgOwor6ZuR5YuZID4gemF0c3VtdVwgOwor57Sw5rWBID4gc2Fpcnl1dVwgOwor6KiO5bmVID4gdG91YmFrdVwgOwor6ZuG5ZCIID4gc2h1dWdvdVwgOwor5o2o6LGhID4gc2hhc2hvdVwgOwor54Ku54OZID4gaG91cm9rdVwgOwor5Zyw6JyCID4gamliYWNoaVwgOwor6Zm65bO7ID4ga2Vuc2h1blwgOwor6Kaq5qipID4gc2hpbmtlblwgOwor6KGX6YyyID4gZ2Fpcm9rdVwgOwor6KSH57eaID4gZnVrdXNlblwgOwor6ZuR5YmHID4gemFzc29rdVwgOwor6KOF6JasID4gc291eWFrdVwgOwor5Zu96LOTID4ga29rdWhpblwgOwor54K55ru0ID4gdGVudGVraVwgOwor6Zm45bK4ID4gcmlrdWdhblwgOwor5aGX5oq5ID4gdG9tYXRzdVwgOwor6Kmp5YqHID4gc2hpZ2VraVwgOwor6ZaL56WoID4ga2FpaHlvdVwgOwor5pK55ouMID4ga2FrdWhhblwgOwor6Zm95bCEID4gaGl6YXNoaVwgOwor54ax5YK3ID4gbmVzc2hvdVwgOwor6Zai55m9ID4ga2FucGFrdVwgOwor6KOc6ImyID4gaG9zaG9rdVwgOwor54Sm5oWuID4gc2hvdXJ5b1wgOwor6Zmq5bitID4gYmFpc2VraVwgOwor57WQ5qC4ID4ga2Vra2FrdVwgOwor5oyv6Yi0ID4gc2hpbnJlaVwgOwor5pWZ5LyaID4ga3lvdWthaVwgOwor6ZuR5YW1ID4gem91aHlvdVwgOwor6Zqj5Zu9ID4gcmluZ29rdVwgOwor57WD5qW9ID4gZ2VuZ2FrdVwgOwor6ZuA5Y2TID4gamFudGFrdVwgOwor6Zm45bCBID4gcmlrdWZ1dVwgOwor6Zuq5LitID4gc2V0Y2h1dVwgOwor5aKo5aCkID4gYm9rdXRlaVwgOwor6KiX5a6jID4gdGFrdXNlblwgOwor57K+56WeID4gc2Vpc2hpblwgOwor5pCN55uKID4gc29uJydla2lcIDsKK+mZo+W5lSA+IGppbm1ha3VcIDsKK+eBsOeavyA+IGhhaXphcmFcIDsKK+eyl+e4hCA+IGFyYW5hd2FcIDsKK+aMjOmXmCA+IGtha3V0b3VcIDsKK+aMuumAsiA+IHRlaXNoaW5cIDsKK+ezuOeIqiA+IGhlY2hpbWFcIDsKK+ikkueroCA+IGhvdXNob3VcIDsKK+e1kOadnyA+IGtlc3Nva3VcIDsKK+eBsOeZvSA+IGthaWhha3VcIDsKK+aVmeS4uyA+IGt5b3VzaHVcIDsKK+inpuaEnyA+IHNob2trYW5cIDsKK+aLm+mtgiA+IHNob3Vrb25cIDsKK+imquagqiA+IG95YWthYnVcIDsKK+eyvueiuiA+IHNlaWtha3VcIDsKK+WbveirliA+IGtva3Vyb25cIDsKK+e3keWcnyA+IHJ5b2t1ZG9cIDsKK+mbhuWFiSA+IHNodXVrb3VcIDsKK+e1kOaZtiA+IGtlc3Nob3VcIDsKK+ijnOiBtyA+IGhvc2hva3VcIDsKK+a/gOirliA+IGdla2lyb25cIDsKK+ips+S8nSA+IHNob3VkZW5cIDsKK+e0hea9riA+IGtvdWNob3VcIDsKK+aVkeS4liA+IGt5dXVzZWlcIDsKK+imgeaxgiA+IHlvdWt5dXVcIDsKK+mZquWvqSA+IGJhaXNoaW5cIDsKK+aMuui6qyA+IHRlaXNoaW5cIDsKK+eGseS4rSA+IG5ldGNodXVcIDsKK+imquabuCA+IHNoaW5zaG9cIDsKK+ijj+iFuSA+IHVyYWhhcmFcIDsKK+ipleWIpCA+IGh5b3ViYW5cIDsKK+e0jea2vCA+IG5vdXJ5b3VcIDsKK+Wbs+iqrCA+IHp1c2V0c3VcIDsKK+ipqeS9nCA+IHNoaXNha3VcIDsKK+mWk+eUtyA+IG1hb3Rva29cIDsKK+aRuuacrCA+IHNob3Vob25cIDsKK+mbkeS6iyA+IHphdHN1amlcIDsKK+aUueS/riA+IGthaXNodXVcIDsKK+mbjOS8jyA+IHNoaWZ1a3VcIDsKK+e1jOaWhyA+IGt5b3Vtb25cIDsKK+e1tuaBryA+IHplc3Nva3VcIDsKK+mZo+WuuSA+IGppbicneW91XCA7CivoqabkvZwgPiBzaGlzYWt1XCA7CivpmbjlpKcgPiByaWt1ZGFpXCA7CivopKXnmKEgPiBqb2t1c291XCA7CivnspfnrYsgPiBhcmFzdWppXCA7Civnsr7nmb0gPiBzZWloYWt1XCA7CivooYzpgLIgPiBrb3VzaGluXCA7Civplbfnn60gPiBjaG91dGFuXCA7CivmjqPogpggPiBzZWljaHV1XCA7CivopqrmlrkgPiBveWFrYXRhXCA7CivmlLnkvZwgPiBrYWlzYWt1XCA7CivoqK3llrYgPiBzZXRzdWVpXCA7Civpm4bkvJogPiBzaHV1a2FpXCA7Civln7fmqKkgPiBzaGlra2VuXCA7CivntbXlv4MgPiBlZ29rb3JvXCA7Civmi53poJggPiBoYWlyeW91XCA7CivntbblvowgPiB6ZXRzdWdvXCA7CivopqrmlL8gPiBzaGluc2VpXCA7CivnrqHpoJggPiBrYW5yeW91XCA7CivnspjnqKAgPiBuZW5jaHV1XCA7Civmkq7lvbEgPiBzYXRzdWVpXCA7CivloanlrrMgPiBzaGlvZ2FpXCA7Civoo5zntrQgPiBob3RldHN1XCA7Civnr6TovrIgPiB0b2t1bm91XCA7Civmj67nmbogPiBraWhhdHN1XCA7CivoqLPlkI0gPiB5YWt1bWVpXCA7Civng4/mnKggPiBrb2t1dGFuXCA7CivpmorllYYgPiB0YWlzaG91XCA7CivloIbmnLEgPiB0c3Vpc2h1XCA7CivpmbjlnLAgPiByaWt1Y2hpXCA7CivlooPln58gPiBreW91aWtpXCA7CivmjIfph50gPiBzaGlzaGluXCA7Civlm57oqq0gPiBrYWlkb2t1XCA7CivnhaflkIggPiBzaG91Z291XCA7CivoqLzliLggPiBzaG91a2VuXCA7CivoqZXkvJ0gPiBoeW91ZGVuXCA7CivngbjngrkgPiBreXV1dGVuXCA7CivlnovnlaogPiBrYXRhYmFuXCA7CivnhLzlo7IgPiBzaHV1bWFpXCA7Civlm57oqLogPiBrYWlzaGluXCA7CivopIfnnLwgPiBmdWt1Z2FuXCA7CivoqZTku6QgPiBzaG91cmVpXCA7CivlooPlnLAgPiBreW91Y2hpXCA7Civnt6jkv64gPiBoZW5zaHV1XCA7CivntbHluZUgPiB0b3ViYWt1XCA7Civngavnh7UgPiBrb3RhdHN1XCA7Civmkq3lt54gPiBiYW5zaHV1XCA7CivnhKHlrr8gPiBtdXNodWt1XCA7Civop5LluL0gPiBrYWt1Ym91XCA7CivngavnhrEgPiBrYW5ldHN1XCA7CivplbfnlLcgPiBjaG91bmFuXCA7CivopqrmjIcgPiBveWF5dWJpXCA7Civop5LluK8gPiBrYWt1b2JpXCA7CivnhKHlrp8gPiBtdWppdHN1XCA7CivplbfnlJ8gPiBjaG91c2VpXCA7CivntKLmnaEgPiBzYWt1am91XCA7Civooajop6MgPiBoeW91a2FpXCA7Civnt4/liYcgPiBzb3Vzb2t1XCA7Civlm5vop5IgPiBzaGlrYWt1XCA7CivntIvmp5ggPiBtb24nJ3lvdVwgOwor5aKX5Y+OID4gem91c2h1dVwgOwor6KGM6LOeID4ga291c2hvdVwgOwor566h6ZW3ID4ga2FuY2hvdVwgOwor57a+5Y+WID4gYXlhdG9yaVwgOwor57aa5aCxID4gem9rdWhvdVwgOwor5o6i57SiID4gdGFuc2FrdVwgOwor6KGA6LevID4ga2V0c3Vyb1wgOwor5aCx5b6zID4gaG91dG9rdVwgOwor5pGp5pOmID4gbWFzYXRzdVwgOwor5aCx5b6pID4gaG91ZnVrdVwgOwor5o+Q552jID4gdGVpdG9rdVwgOwor6KaL5paZID4ga2VucnlvdVwgOwor6KGo6KOFID4gaHlvdXNvdVwgOwor57WC5oimID4gc2h1dXNlblwgOwor5Zu96JGsID4ga29rdXNvdVwgOwor6KW/5pqmID4gc2VpcmVraVwgOwor57Gg57WhID4gcm91cmFrdVwgOwor57KX55quID4gYXJha2F3YVwgOwor54Kt5p+xID4gdGFuY2h1dVwgOwor5aCq5b+NID4ga2FuJyduaW5cIDsKK+imquaEmyA+IHNoaW4nJ2FpXCA7CivooZPoqp4gPiBqdXRzdWdvXCA7CivoprPlv7UgPiBrYW4nJ25lblwgOwor57SU5py0ID4ganVuYm9rdVwgOwor6KiT5ZGKID4ga3Vua29rdVwgOwor6KW/5pelID4gbmlzaGliaVwgOwor6KWy5p2lID4gc2h1dXJhaVwgOwor57Gz56mAID4gYmVpa29rdVwgOwor56+A6L+rID4gc2VwcGFrdVwgOwor5Z+35pS/ID4gc2hpc3NlaVwgOwor5pOB5aOBID4geW91aGVraVwgOwor6Kit5YKZID4gc2V0c3ViaVwgOwor6KGA6LGGID4gY2hpbWFtZVwgOwor6Ki85Lq6ID4gc2hvdW5pblwgOwor5Zyn57iuID4gYXNzaHVrdVwgOwor5o6M57eoID4gc2hvdWhlblwgOwor57eS5L2cID4gc2hvc2FrdVwgOwor5aGB5a+pID4gcnVpc2hpblwgOwor5aKz5LiYID4gZnVua3l1dVwgOwor57KX55WlID4gc29yeWFrdVwgOwor57Sa5pWwID4ga3l1dXN1dVwgOwor57SL5pyNID4gbW9ucHVrdVwgOwor6KOV56aPID4geXV1ZnVrdVwgOwor5o6b566XID4ga2FrZXphblwgOwor6KGG6KuWID4gc2h1dXJvblwgOwor5Zue6JmrID4ga2FpY2h1dVwgOwor5o6o56ewID4gc3Vpc2hvdVwgOwor57W15ae/ID4gZXN1Z2F0YVwgOwor6KaB5pKDID4geW91Z2VraVwgOwor5Zyw57GNID4gY2hpc2VraVwgOwor5o6i56m2ID4gdGFua3l1dVwgOwor5o6M57SLID4gc2hvdW1vblwgOwor57KS55WMID4gcnl1dWthaVwgOwor5o2n6IW5ID4gaG91ZnVrdVwgOwor5pCN5rWBID4gc29ucnl1dVwgOwor5ryG6aOfID4gc2hpa2t1aVwgOwor54Wn5LyaID4gc2hvdWthaVwgOwor5oyZ6Ki8ID4ga3lvc2hvdVwgOwor54K55o+PID4gdGVuYnlvdVwgOwor5Zyo57GNID4gemFpc2VraVwgOwor5ouT6YqAID4gdGFrdWdpblwgOwor57W25aOBID4gemVwcGVraVwgOwor6ZqU5LiWID4ga2FrdXNlaVwgOwor6Zm45YW1ID4gcmlrdWhlaVwgOwor57ax5YW3ID4gdHN1bmFndVwgOwor57KX546JID4gYXJhdGFtYVwgOwor57ay5YWDID4gYW1pbW90b1wgOwor6KiA5Y+KID4gZ2Vua3l1dVwgOwor57O45p6gID4gaXRvd2FrdVwgOwor6Zmk5Y20ID4gam9reWFrdVwgOwor5ryr6YyyID4gbWFucm9rdVwgOwor6ZqP5LiAID4genVpaWNoaVwgOwor57O45p2JID4gaXRvc3VnaVwgOwor54Gw5q67ID4gaGFpZ2FyYVwgOwor6Kiq5LitID4gaG91Y2h1dVwgOwor5pGC5pS/ID4gc2Vzc2hvdVwgOwor5aGp5ZGzID4gc2hpb2FqaVwgOwor5Zyw56mNID4gY2hpc2VraVwgOwor57WQ5bC+ID4ga2V0c3ViaVwgOwor57SE5pWwID4geWFrdXN1dVwgOwor6Ziy5aOBID4gYm91aGVraVwgOwor57O+5piOID4ga3l1dW1laVwgOwor5aGB5aOBID4gcnVpaGVraVwgOwor57WQ5a+pID4ga2Vzc2hpblwgOwor57Sw5b+DID4gc2Fpc2hpblwgOwor5o6h55+zID4gc2Fpc2VraVwgOwor5aCF5b+NID4ga2VuJyduaW5cIDsKK+eykueKtiA+IHJ5dXVqb3VcIDsKK+aLmemAnyA+IHNlc3Nva3VcIDsKK+a9ruinoyA+IGNob3VrYWlcIDsKK+aSruWcnyA+IHNhdHN1ZG9cIDsKK+a8uOmAsiA+IHplbnNoaW5cIDsKK+imquWxlSA+IHNoaW50ZW5cIDsKK+imj+W+iyA+IGtpcml0c3VcIDsKK+aMgeiqrCA+IGppc2V0c3VcIDsKK+imluW6iiA+IHNoaXNob3VcIDsKK+inkuWcsCA+IGthZG9jaGlcIDsKK+e1jOWtpiA+IGtlaWdha3VcIDsKK+eyi+eLgiA+IHN1aWt5b3VcIDsKK+ijj+eZvSA+IHVyYWppcm9cIDsKK+WhteWFpSA+IGdvbWlpcmVcIDsKK+WgseWlqCA+IGhvdXNob3VcIDsKK+e0sOW4ryA+IGhvc29vYmlcIDsKK+imquWtkCA+IHNoaW5zaGlcIDsKK+eEoeWPoyA+IG11a3VjaGlcIDsKK+Wft+W/tSA+IHNodXVuZW5cIDsKK+mZuOS4iiA+IHJpa3Vqb3VcIDsKK+a8q+mBiiA+IG1hbicneXV1XCA7CivntbbllLEgPiB6ZXNzaG91XCA7Civlm57ohbggPiBrYWljaG91XCA7CivplbfmsZ8gPiBjaG91a291XCA7CivlnLDnm64gPiBjaGltb2t1XCA7Civmi43ou4ogPiBoYWt1c2hhXCA7CivnhKHlipsgPiBtdXJ5b2t1XCA7Civmir3pgbggPiBjaHV1c2VuXCA7CivmjZzntKIgPiBzb3VzYWt1XCA7Civplovmpa0gPiBrYWlneW91XCA7Civntbblj6sgPiB6ZWtreW91XCA7Civlm73nsosgPiBrb2t1c3VpXCA7CivmjpvnlZkgPiBrZWlyeXV1XCA7Civopqrlpb0gPiBzaGlua291XCA7Civplonmpa0gPiBoZWlneW91XCA7CivloLHlm70gPiBob3Vrb2t1XCA7CivnsbPni6wgPiBiZWlkb2t1XCA7CivmjK/oiJ4gPiBmdXJ1bWFpXCA7CivnrrToqIAgPiBzaGluZ2VuXCA7CivntYLlp4sgPiBzaHV1c2hpXCA7CivplbfmrY4gPiBjaG91dGFuXCA7CivplbfmrYwgPiBuYWdhdXRhXCA7CivmjK/oiIggPiBzaGlua291XCA7CivoppblraYgPiBzaGlnYWt1XCA7CivpmZ7ku7sgPiBzaG91bmluXCA7CivntJnluYUgPiBzaGlmdWt1XCA7CivntJnluLMgPiBzaGljaG91XCA7CivntYzloIIgPiBreW91ZG91XCA7CivpmaPkuK0gPiBqaW5jaHV1XCA7CivntI3lvpcgPiBuYXR0b2t1XCA7Civntbbli50gPiB6ZXNzaG91XCA7CivnspjmtrIgPiBuZW4nJ2VraVwgOwor5Zyf552AID4gZG9jaGFrdVwgOwor5Zu9562JID4ga29rdXRvdVwgOwor5aCC5a6IID4gZG91bW9yaVwgOwor5oud6KyBID4gaGFpZXRzdVwgOwor5pKk5Y+OID4gdGVzc2h1dVwgOwor57Gg55CDID4gcm91a3l1dVwgOwor54Gv5piOID4gdG91bXlvdVwgOwor5oud6KqtID4gaGFpZG9rdVwgOwor6J+26LKdID4gbWF0ZWdhaVwgOwor562J6ZaRID4gbmFvemFyaVwgOwor5oub6KuLID4gc2hvdXNlaVwgOwor6Y+k6aqoID4gcnVrb3RzdVwgOwor6KaL5a2mID4ga2VuZ2FrdVwgOwor5oqV6YyoID4gdG91YnlvdVwgOwor57WM5Zu9ID4ga2Vpa29rdVwgOwor5Zyo55WZID4gemFpcnl1dVwgOwor5pCN5paZID4gc29ucnlvdVwgOwor57SQ5bivID4gY2h1dXRhaVwgOwor6Y+h6auYID4ga3lvdWtvdVwgOwor5Zyt55KnID4ga2VpaGVraVwgOwor5o+P5rOVID4gYnlvdWhvdVwgOwor6KO95rC3ID4gc2VpaHlvdVwgOwor5Zyw55CDID4gY2hpa3l1dVwgOwor6ZGR6LOeID4ga2Fuc2hvdVwgOwor5Zu956iOID4ga29rdXplaVwgOwor5r+r55SoID4gcmFuJyd5b3VcIDsKK+e0gOW+iyA+IGtpcml0c3VcIDsKK+mWgOafsSA+IG1vbmNodXVcIDsKK+mZjeS8jyA+IGtvdWZ1a3VcIDsKK+WgseWRiiA+IGhvdWtva3VcIDsKK+e0s+WjqyA+IHNoaW5zaGlcIDsKK+ezvuW8viA+IGt5dXVkYW5cIDsKK+ihkuiAgCA+IGdlbicneW91XCA7Civlm7Dnqq4gPiBrb25reXV1XCA7CivooajntJkgPiBoeW91c2hpXCA7Civng4jlpbMgPiByZXRzdWpvXCA7CivpmLLlhbEgPiBib3VreW91XCA7CivmkrDkv64gPiBzZW5zaHV1XCA7Civpl5jlsIYgPiB0b3VzaG91XCA7CivopqrlloQgPiBzaGluemVuXCA7Civmv6vnjbIgPiByYW5rYWt1XCA7CivmvKvoqq0gPiBtYW5kb2t1XCA7CivplqLmiYAgPiBzZWtpc2hvXCA7CivngJ/mtJIgPiBzaG91c2hhXCA7Civln47lu5MgPiBqb3VrYWt1XCA7Civns7jlupUgPiBpdG96b2tvXCA7CivmvKvoqZUgPiBtYW5weW91XCA7CivngYzmnKggPiBrYW5ib2t1XCA7CivopovlooMgPiBtaXNha2FpXCA7CivntYzlj7IgPiBreW91c2hpXCA7CivmipjovrwgPiBvcmlrb21pXCA7Civlm57nq6AgPiBrYWlzaG91XCA7CivmjojniLUgPiBqdXNoYWt1XCA7CivnrYnph48gPiB0b3VyeW91XCA7Civpj6HpnaIgPiBreW91bWVuXCA7CivntYzljZQgPiBrZWlreW91XCA7Civlm7rnnYAgPiBrb2NoYWt1XCA7CivmjqjmuKwgPiBzdWlzb2t1XCA7Civlm73nm4ogPiBrb2t1ZWtpXCA7Civmu7LpgI8gPiBzaGludG91XCA7CivoprPliocgPiBrYW5nZWtpXCA7CivntITlrpogPiB5YWt1am91XCA7CivloLHlhJ8gPiBob3VzaG91XCA7CivopIfmnKwgPiBmdWt1aG9uXCA7CivplbfmlocgPiBjaG91YnVuXCA7CivmkqnkubEgPiByeW91cmFuXCA7CivmjqLmuKwgPiB0YW5zb2t1XCA7CivmipXouqsgPiB0b3VzaGluXCA7CivntbHkuIAgPiB0b3VpdHN1XCA7Civplovmi5MgPiBrYWl0YWt1XCA7CivplqLlv4MgPiBrYW5zaGluXCA7Civoo5zmrrogPiBob3NhdHN1XCA7Civns7jlsZEgPiBpdG9rdXp1XCA7CivmkoPliaMgPiBnZWtpa2VuXCA7CivmiYHpoY0gPiBoZW5nYWt1XCA7CivmvJToqqwgPiBlbnpldHN1XCA7CivlnoLmlZkgPiBzdWlreW91XCA7CivopIfmmJ8gPiBmdWt1c2VpXCA7CivnrYnpgJ8gPiB0b3Vzb2t1XCA7CivmiYDpoJggPiBzaG9yeW91XCA7Civnq7nppqwgPiBjaGlrdWJhXCA7Civoo5zmrKAgPiBob2tldHN1XCA7Civlm73nlKMgPiBrb2t1c2FuXCA7CivooYDnuIEgPiBrZXRzdWVuXCA7CivopIfmlrkgPiBmdWt1aG91XCA7CivnspfmnKsgPiBzb21hdHN1XCA7CivooZPnrZYgPiBqdXNzYWt1XCA7CivopIfmlocgPiBmdWt1YnVuXCA7Civmv4DnlJogPiBnZWtpamluXCA7Civpjq7prYIgPiBjaGluZ29uXCA7CivopIfmlbAgPiBmdWt1c3V1XCA7Civnga/lv4MgPiB0b3VzaGluXCA7CivmkI3lvpcgPiBzb250b2t1XCA7CivloJXlipsgPiBkYXJ5b2t1XCA7CivntYLliIogPiBzaHV1a2FuXCA7CivmjqLmsYIgPiB0YW5reXV1XCA7CivopqrlhYMgPiBveWFtb3RvXCA7CivmiJDps6UgPiBzZWljaG91XCA7Civpj6HpkZEgPiBreW91a2FuXCA7CivooYDns4ogPiBjaGlub3JpXCA7CivnrYnouqsgPiB0b3VzaGluXCA7CivmvLjokL0gPiB6ZW5yYWt1XCA7CivnspfmlrkgPiBhcmFrYXRhXCA7Civns7jlp6sgPiBpdG9oaW1lXCA7Civnr4DnvqkgPiBzZXRzdWdpXCA7CivnrYbouZ8gPiBoaXNzZWtpXCA7CivplbfmiYAgPiBjaG91c2hvXCA7CivnrYbot6EgPiBoaXNzZWtpXCA7Civmva7ntIUgPiBjaG91a291XCA7CivmiYDplbcgPiBzaG9jaG91XCA7CivntYLlgKQgPiBvd2FyaW5lXCA7CivntLDliYcgPiBzYWlzb2t1XCA7CivooYDnrYsgPiBjaGlzdWppXCA7CivmvYXohbggPiBrYW5jaG91XCA7Civln47lo4EgPiBqb3VoZWtpXCA7CivlnLDmrrsgPiBjaGlrYWt1XCA7CivmkZjlj5YgPiB0ZWtpc2h1XCA7Civmi5voh7QgPiBzaG91Y2hpXCA7CivnrZborIAgPiBzYWt1Ym91XCA7CivopqrkuqQgPiBzaGlua291XCA7Civnsr7lvLcgPiBzZWlreW91XCA7Civmipjop5IgPiBzZWtrYWt1XCA7Civono3pgJogPiB5dXVkenV1XCA7CivplovluZUgPiBrYWltYWt1XCA7CivllqvpqZogPiBiaWtrdXJpXCA7CivplovluLMgPiBrYWljaG91XCA7CivnsIfnlJ8gPiB6b2t1c2VpXCA7CivlnZHmnKggPiBrb3Vib2t1XCA7CivntJrlj4sgPiBreXV1eXV1XCA7CivplonluZUgPiBoZWltYWt1XCA7CivpjpbpqqggPiBzYWtvdHN1XCA7CivmuoDpoY0gPiBtYW5nYWt1XCA7CivooZfnnYAgPiBtYWNoaWdpXCA7CivmjK/nm6ogPiBzaGludG91XCA7Civopb/ljJcgPiBzZWlob2t1XCA7CivopobliLsgPiBmdWtrb2t1XCA7CivlnKfmrrogPiBhc3NhdHN1XCA7Civpjq7pnZkgPiBjaGluc2VpXCA7Civon4von4AgPiBrb29yb2dpXCA7Civmv6DmtLIgPiBnb3VzaHV1XCA7Civmi53ogbQgPiBoYWljaG91XCA7CivmiY3ph48gPiBzYWlyeW91XCA7Civmv4HngrkgPiBkYWt1dGVuXCA7CivntYLkuJYgPiBzaHV1c2VpXCA7CivooI/nvLYgPiBrYW5pa2FuXCA7Civnq5zpoZQgPiByeW91Z2FuXCA7CivplbflvoQgPiBjaG91a2VpXCA7CivplbflvoEgPiBjaG91c2VpXCA7Civln7fliIAgPiBzaGl0dG91XCA7CivmipjoobcgPiBzZXRjaHV1XCA7CivopbLlkI0gPiBzaHV1bWVpXCA7Civmi5vogZggPiBzaG91aGVpXCA7CivmipjooZ0gPiBzZXNzaG91XCA7CivntLnku4sgPiBzaG91a2FpXCA7CivntIXllIcgPiBrb3VzaGluXCA7Civooajnj74gPiBoeW91Z2VuXCA7Civlm5vnkIMgPiBzaGlreXV1XCA7CivlnoLlv4MgPiBzdWlzaGluXCA7CivmjqjmnI0gPiBzdWlmdWt1XCA7CivooYbnn6UgPiBzaHV1Y2hpXCA7CivplpHlr4IgPiBrYW5qYWt1XCA7Civns77llY8gPiBreXV1bW9uXCA7Civoo4/mm7ggPiB1cmFnYWtpXCA7CivnrYboqoUgPiBoaXRjaHV1XCA7Civmib/oqo0gPiBzaG91bmluXCA7CivplbflubwgPiBjaG91eW91XCA7CivplbflubQgPiBuYWdhbmVuXCA7CivplqPlpJYgPiBrYWt1Z2FpXCA7CivopoHlhJ8gPiB5b3VzaG91XCA7CivnrYnop5IgPiB0b3VrYWt1XCA7CivlmIbos54gPiB0YW5zaG91XCA7CivnrYnopqogPiB0b3VzaGluXCA7CivmkL7lj5YgPiBzYWt1c2h1XCA7CivloIXkurogPiBrYXRhamluXCA7Civoo4XmnZ8gPiBzb3V6b2t1XCA7CivlnJ/mqYsgPiBkb2Jhc2hpXCA7CivlnLDmoLggPiBjaGlrYWt1XCA7CivmiYvov5EgPiB0ZWRqaWthXCA7Civoo4/mlrkgPiB1cmFrYXRhXCA7Civns77lkIggPiBreXV1Z291XCA7Civon7nnvLYgPiBrYW5pa2FuXCA7Civmv4DmuJsgPiBnZWtpZ2VuXCA7Civnspflv70gPiBzb2tvdHN1XCA7CivntI3lhaUgPiBub3VueXV1XCA7CivmioDooZMgPiBnaWp1dHN1XCA7CivmipXolqwgPiB0b3V5YWt1XCA7Civmv4DmtaogPiBnZWtpcm91XCA7CivntITliIYgPiB5YWt1YnVuXCA7Civlm73ms5UgPiBrb2t1aG91XCA7CivmiYvouZ8gPiBzaHVzZWtpXCA7CivmiJDplbcgPiBzZWljaG91XCA7CivnspLlvoQgPiByeXV1a2VpXCA7CivplbflrpggPiBjaG91a2FuXCA7CivmiYvot6EgPiBzaHVzZWtpXCA7CivplbflrZAgPiBjaG91c2hpXCA7Civlm73msJEgPiBrb2t1bWluXCA7Civnsr7lppkgPiBzZWlteW91XCA7Civmv4HmsLQgPiBkYWt1c3VpXCA7Civom5/pvo0gPiBrb3VyeW91XCA7CivmjpLmlqUgPiBoYWlzZWtpXCA7CivplonloZ4gPiBoZWlzb2t1XCA7CivooYznirYgPiBneW91am91XCA7Civonbbosp0gPiBjaG91Z2FpXCA7CivopZ/lhYMgPiBlcmltb3RvXCA7CivooYDnkIMgPiBrZWtreXV1XCA7Civmi5nnrZYgPiBzZXNzYWt1XCA7Civmh7jpmpQgPiBrZW5rYWt1XCA7Civoo4/mioAgPiB1cmF3YXphXCA7CivlnKjmlrkgPiB6YWlrYXRhXCA7Civnq7novKogPiBjaGlrdXdhXCA7CivmjpLmkoMgPiBoYWlnZWtpXCA7Civnr4Dnm64gPiBmdXNoaW1lXCA7CivmjqHmip4gPiBzYWl0YWt1XCA7CivmjZXmrrogPiBob3NhdHN1XCA7Civplovlm70gPiBrYWlrb2t1XCA7Civonp/omasgPiBtZWljaHV1XCA7Civngb3ljoQgPiBzYWl5YWt1XCA7CivlnJ/ml6UgPiBkb25pY2hpXCA7CivopJLlpaggPiBob3VzaG91XCA7CivplbflpKcgPiBjaG91ZGFpXCA7CivmiJDpioAgPiBuYXJpZ2luXCA7Civnr4TnlocgPiBoYW5jaHV1XCA7Civlm57mtYEgPiBrYWlyeXV1XCA7Civnspflr4YgPiBzb21pdHN1XCA7Civmjozmj6EgPiBzaG91YWt1XCA7CivmiJDph5EgPiBuYXJpa2luXCA7CivmvZTnmb0gPiBrZXBwYWt1XCA7CivmvZTnmZYgPiBrZXBwZWtpXCA7CivmvKLnsY0gPiBrYW5zZWtpXCA7CivlnKfmjqUgPiBhc3NldHN1XCA7Civmir3nsaQgPiBjaHV1c2VuXCA7Civnq7botbAgPiBreW91c291XCA7CivnspLlrZAgPiByeXV1c2hpXCA7CivmiY3oppogPiBzYWlrYWt1XCA7Civngavlj6MgPiBoaWd1Y2hpXCA7CivmiYDorIIgPiBpd2F5dXJ1XCA7CivnrJHopqcgPiBzaG91cmFuXCA7CivplpPlj6MgPiBtYWd1Y2hpXCA7CivmkI/li5UgPiBoYWt1ZG91XCA7CivmiKbot6EgPiBzZW5zZWtpXCA7CivplqPlhoUgPiBrYWt1bmFpXCA7CivmuoDouqsgPiBtYW5zaGluXCA7Civlm73mnKwgPiBrb2t1aG9uXCA7Civoo4/luq0gPiB1cmFuaXdhXCA7Civoo4/lupcgPiB1cmFkYW5hXCA7Civlm73mnIkgPiBrb2t1eXV1XCA7Civlm73mm7ggPiBrb2t1c2hvXCA7CivngavlipsgPiBrYXJ5b2t1XCA7CivplbflmIYgPiBjaG91dGFuXCA7Civnq5zou4ogPiByeXV1c2hhXCA7CivmiJHovKkgPiB3YWdhaGFpXCA7CivmuoDotrMgPiBtYW56b2t1XCA7CivooYDmva4gPiBjaGlzaGlvXCA7CivmvIbntbUgPiB1cnVzaGllXCA7Civnspflo4EgPiBhcmFrYWJlXCA7CivooYDmvL8gPiBrZXNzaG91XCA7CivpvbfpvaogPiBha3VzZWt1XCA7Civmv4DmmpEgPiBnZWtpc2hvXCA7CivllYbprYIgPiBzaG91a29uXCA7CivlnLDlv4MgPiBjaGlzaGluXCA7CivnqbrppqwgPiBrYXJhdW1hXCA7CivplbfllIQgPiBuYWdhdXRhXCA7CivmkI3lgrcgPiBzb25zaG91XCA7Civnrpfnm6QgPiBzb3JvYmFuXCA7Civlm73mlocgPiBrb2t1YnVuXCA7CivplovliYogPiBrYWlzYWt1XCA7CivmiYDooYwgPiBzaG9neW91XCA7Civlm73mlZkgPiBrb2treW91XCA7Civplbflkb0gPiBjaG91bWVpXCA7Civlm73mlL8gPiBrb2t1c2VpXCA7CivmuqLooYAgPiBpa2tldHN1XCA7CivnsbPlr6kgPiBiZWlzaGluXCA7CivlnanloJ0gPiBydXRzdWJvXCA7Civnr4DnhZkgPiBzZXRzdWVuXCA7Civlm6PmoJcgPiBkb25ndXJpXCA7CivmuJvpoY0gPiBnZW5nYWt1XCA7Civlm7PmmJ8gPiB6dWJvc2hpXCA7Civoo4/lsbEgPiB1cmF5YW1hXCA7CivmipjntJkgPiBvcmlnYW1pXCA7Civmi5jnlZkgPiBrb3VyeXV1XCA7CivooYzmsLQgPiBneW91enVpXCA7Civnsonlo4EgPiBmdW5wZWtpXCA7Civnq4vouqsgPiByaXNzaGluXCA7CivmjqXlsL4gPiBzZXRzdWJpXCA7Civnq7noo70gPiB0YWtlc2VpXCA7CivllYbppKggPiBzaG91a2FuXCA7CivnrpfnlKggPiBzYW4nJ3lvdVwgOwor6KGA5rKIID4ga2V0Y2hpblwgOwor6ZaT5L2cID4ga2Fuc2FrdVwgOwor5omL6JSTID4gdGVkenVydVwgOwor6KSH5ZCIID4gZnVrdWdvdVwgOwor6ZW35YmjID4gY2hvdWtlblwgOwor54Gr5LuYID4gaGl0c3VrZVwgOwor5ZSQ6buNID4gdG91a2liaVwgOwor5Zyw5bOhID4gY2hpa3lvdVwgOwor56+J5rivID4gY2hpa2tvdVwgOwor5o+Q5ZSxID4gdGVpc2hvdVwgOwor56m66ZqZID4ga3V1Z2VraVwgOwor5oqc56m0ID4gbnVrZWFuYVwgOwor6ZaR5Lq6ID4gaGltYWppblwgOwor56m66Zm4ID4ga3V1cmlrdVwgOwor6J2Z6J2gID4gaGVucHVrdVwgOwor5oqE57SZID4gc2hvdXNoaVwgOwor5Zue5pilID4ga2Fpc2h1blwgOwor6ZaT5LitID4gYWlkYWp1dVwgOwor5om/57aZID4gc2hvdWtlaVwgOwor562J57SaID4gdG91a3l1dVwgOwor5o6S5bC/ID4gaGFpbnlvdVwgOwor5o235b6EID4gc2hvdWtlaVwgOwor5Zu95omLID4ga29rdXNodVwgOwor5o6o5aWoID4gc3Vpc2hvdVwgOwor6KGM5qW9ID4ga291cmFrdVwgOwor6ZW35YWEID4gY2hvdWtlaVwgOwor6KGo5piOID4gaHlvdW1laVwgOwor5r+A5oimID4gZ2VraXNlblwgOwor5Zue5pWZID4ga2Fpa3lvdVwgOwor5Zyw5a2mID4gY2hpZ2FrdVwgOwor5ryB56SBID4gZ3lvc2hvdVwgOwor6KGo5pWsID4gaHlvdWtlaVwgOwor5oaC6ayxID4geXV1dXRzdVwgOwor5oe46LOeID4ga2Vuc2hvdVwgOwor5r+A5oakID4gZ2VraWZ1blwgOwor56m/6ZG/ID4gc2Vuc2FrdVwgOwor5r2k5rKiID4ganVudGFrdVwgOwor5oyv5pu/ID4gZnVyaWthZVwgOwor56+m5qOSID4gYmVyYWJvdVwgOwor6KSH5YaZID4gZnVrdXNoYVwgOwor5oqV56WoID4gdG91aHlvdVwgOwor5Zu95oOFID4ga29rdWpvdVwgOwor5Zyo5a6FID4gemFpdGFrdVwgOwor5Zyo5a2mID4gemFpZ2FrdVwgOwor5oeQ6YO3ID4ga2Fpa3lvdVwgOwor5r+A5oOFID4gZ2VraWpvdVwgOwor57K+5LiAID4gc2VpaXRzdVwgOwor5Zmo54mpID4ga2lidXRzdVwgOwor57Gz5Zu9ID4gYmVpa29rdVwgOwor56uL6Ki8ID4gcmlzc2hvdVwgOwor5o6b5aOwID4ga2FrZWdvZVwgOwor6KGM5pyrID4geXVrdXN1ZVwgOwor6KGM5pu4ID4gZ3lvdXNob1wgOwor5ri+6LqrID4ga29uc2hpblwgOwor5omB6IifID4gaGVuc2h1dVwgOwor5oqV55+zID4gdG91c2VraVwgOwor5oyH5qiZID4gc2hpaHlvdVwgOwor5Zuw5oORID4ga29ud2FrdVwgOwor5oyf5pu4ID4ga3lvdXNob1wgOwor5o+P5YaZID4gYnlvdXNoYVwgOwor6KGG5pybID4gc2h1dWJvdVwgOwor6ZW35LiKID4gY2hvdWpvdVwgOwor6KG35oOFID4gY2h1dWpvdVwgOwor5rib6YePID4gZ2VucnlvdVwgOwor5r6E5piOID4gY2hvdW1laVwgOwor6KGG5pm6ID4gc2h1dWNoaVwgOwor5ZiJ56+AID4ga2FzZXRzdVwgOwor6KGM5pWwID4gZ3lvdXN1dVwgOwor5Zuz5byPID4genVzaGlraVwgOwor6KGM5pS/ID4gZ3lvdXNlaVwgOwor5oiQ6JmrID4gc2VpY2h1dVwgOwor5ry/5rayID4gc2hvdWVraVwgOwor5Zyw5Z2qID4gaml0c3Vib1wgOwor56mA6aGeID4ga29rdXJ1aVwgOwor5ryg54S2ID4gYmFrdXplblwgOwor56u26ImHID4ga3lvdXRlaVwgOwor6KO95L2cID4gc2Vpc2FrdVwgOwor56qB6YCyID4gdG9zc2hpblwgOwor5o+Q5L6bID4gdGVpa3lvdVwgOwor5rex6ZaRID4gc2hpbmthblwgOwor57Gz5Y+OID4gYmVpc2h1dVwgOwor56m/6YCaID4gc2VudHN1dVwgOwor5rib6YCfID4gZ2Vuc29rdVwgOwor6KGo5oOFID4gaHlvdWpvdVwgOwor56ym56+AID4gZnVzZXRzdVwgOwor5Zm05rWBID4gZnVucnl1dVwgOwor5om/55+lID4gc2hvdWNoaVwgOwor56iu6aasID4gdGFuZXVtYVwgOwor5reh6ZuqID4gYXdheXVraVwgOwor5ZWT6L+qID4ga2VpdGVraVwgOwor5o6l5Y+XID4gc2V0c3VqdVwgOwor5oyo5ou2ID4gYWlzYXRzdVwgOwor5oyr5oqYID4gemFzZXRzdVwgOwor5o6l5Y+OID4gc2Vzc2h1dVwgOwor5omL57axID4gdGFkenVuYVwgOwor6KGw5byxID4gc3VpamFrdVwgOwor5Zue5b+DID4ga2Fpc2hpblwgOwor5Zu95a++ID4ga29rdXRhaVwgOwor5ryB542yID4gZ3lva2FrdVwgOwor5Zue5b6pID4ga2FpZnVrdVwgOwor562U55SzID4gdG91c2hpblwgOwor5omJ57W1ID4gdG9iaXJhZVwgOwor5Zu95a6dID4ga29rdWhvdVwgOwor5ryB54yfID4gZ3lvcnlvdVwgOwor5Zu95a6aID4ga29rdXRlaVwgOwor5Zu95a6IID4ga29rdXNodVwgOwor56yR57SNID4gc2hvdW5vdVwgOwor5oqV55CDID4gdG91a3l1dVwgOwor5Zua5b25ID4gc2h1dWVraVwgOwor5ZSH6Z+zID4gc2hpbicnb25cIDsKK+aNt+WgsSA+IHNob3Vob3VcIDsKK+aOouWLnSA+IHRhbnNob3VcIDsKK+aKleeNhCA+IHRvdWdva3VcIDsKK+ihjOaIkCA+IGlraW5hcmlcIDsKK+a7keefsyA+IGthc3Nla2lcIDsKK+a4hemBqSA+IHNlaXRla2lcIDsKK+a6gOiFuSA+IG1hbnB1a3VcIDsKK+m8u+mqqCA+IGJpa290c3VcIDsKK+WcsOWPoyA+IGppZ3VjaGlcIDsKK+aJi+eukiA+IHRlYm91a2lcIDsKK+a8gueEtiA+IGh5b3V6ZW5cIDsKK+WUkOmWgCA+IGthcmFtb25cIDsKK+a2vOmiqCA+IHJ5b3VmdXVcIDsKK+a7nueVmSA+IHRhaXJ5dXVcIDsKK+aMh+aRmCA+IHNoaXRla2lcIDsKK+a2temkiiA+IGthbicneW91XCA7CivmirnmtoggPiBtYXNzaG91XCA7Civnq5zohLMgPiByeXV1bm91XCA7Civlm73lpKcgPiBrb2t1ZGFpXCA7CivnsbPkv5cgPiBiZWl6b2t1XCA7Civlm73lpJYgPiBrb2t1Z2FpXCA7CivmjpjliYogPiBrdXNzYWt1XCA7CivooZPlvowgPiBqdXRzdWdvXCA7Civlm73lo6sgPiBrb2t1c2hpXCA7Civoo4/lgbQgPiB1cmFnYXdhXCA7Civmv4Hlo7AgPiBkYW1pZ29lXCA7CivnsbPkvZwgPiBiZWlzYWt1XCA7Civmv4DlpIkgPiBnZWtpaGVuXCA7CivllLHpgZMgPiBzaG91ZG91XCA7CivllY/osqwgPiBtb25zZWtpXCA7CivmjJHmiKYgPiBjaG91c2VuXCA7Civlm73looMgPiBrb2treW91XCA7CivooajlsaQgPiBoeW91c291XCA7CivnqbrosLcgPiBrdXVrb2t1XCA7CivmiKbnuL4gPiBzZW5zZWtpXCA7Civmv4DlopcgPiBnZWtpem91XCA7Civmh4fopqogPiBrb25zaGluXCA7Civnq6/ntrEgPiBoYWR6dW5hXCA7Civmt7HpgaAgPiBzaGluJydlblwgOwor5riT6LC3ID4ga2Vpa29rdVwgOwor56+k5b+XID4gdG9rdXNoaVwgOwor6KOP5L2cID4gdXJhc2FrdVwgOwor5Zac6ImyID4ga2lzaG9rdVwgOwor6KOC5YK3ID4gcmVzc2hvdVwgOwor6Juu6KWfID4gYmFua2FyYVwgOwor57Gz5LitID4gYmVpY2h1dVwgOwor56uL6IW5ID4gcmlwcHVrdVwgOwor56iO6aGNID4gemVpZ2FrdVwgOwor5oub5p2lID4gc2hvdXJhaVwgOwor56u/56u5ID4gc2FvZGFrZVwgOwor5ryr5qW9ID4gbWFuZ2FrdVwgOwor5rer6YC4ID4gaW4nJ2l0c3VcIDsKK+aLmOadnyA+IGtvdXNva3VcIDsKK+epuuiqvyA+IGt1dWNob3VcIDsKK+eqgeinkiA+IHRva2tha3VcIDsKK+iZq+mhniA+IGNodXVydWlcIDsKK+aNuuWNsCA+IG5hdHN1aW5cIDsKK+ihhuW6tiA+IHNodXVzaG9cIDsKK+erueervyA+IHRha2V6YW9cIDsKK+WVj+iouiA+IG1vbnNoaW5cIDsKK+aLk+acrCA+IHRha3Vob25cIDsKK+a8gua1qiA+IGh5b3Vyb3VcIDsKK+aLoeaVoyA+IGtha3VzYW5cIDsKK+ibueiZqyA+IHlvdWNodXVcIDsKK+mLs+mLvCA+IGNodXVrb3VcIDsKK+epjei8iSA+IHNla2lzYWlcIDsKK+a1t+mzpSA+IGthaWNob3VcIDsKK+WbveWWqiA+IGtva3Vzb3VcIDsKK+WVhuirhyA+IHNob3VkYW5cIDsKK+epuuilsiA+IGt1dXNodXVcIDsKK+aIkOe4viA+IHNlaXNla2lcIDsKK+euhuajkiA+IGJlcmFib3VcIDsKK+WcqOS/lyA+IHphaXpva3VcIDsKK+aLseaJiyA+IGt5b3VzaHVcIDsKK+WWhOiJryA+IHplbnJ5b3VcIDsKK+ihkuWtpiA+IGdlbmdha3VcIDsKK+mLs+mHkSA+IGNodXVraW5cIDsKK+epuuihjCA+IGt1dWd5b3VcIDsKK+WcsOS4uyA+IGppbnVzaGlcIDsKK+WcsOS4rSA+IGNoaWNodXVcIDsKK+aIkOe0hCA+IHNlaXlha3VcIDsKK+Wbg+WtkCA+IGhheWFzaGlcIDsKK+engOm6lyA+IHNodXVyZWlcIDsKK+a/q+S9nCA+IHJhbnNha3VcIDsKK+ihl+WovCA+IGdhaXNob3VcIDsKK+WbveWQjSA+IGtva3VtZWlcIDsKK+WbveWPuCA+IGtva3VzaGlcIDsKK+WbveWPtyA+IGtva3Vnb3VcIDsKK+WbveWPsiA+IGtva3VzaGlcIDsKK+mMr+inkiA+IHNha2tha3VcIDsKK+WcqOS6rCA+IHphaWt5b3VcIDsKK+ihneWkqSA+IHNob3V0ZW5cIDsKK+euh+aciCA+IGthZ2V0c3VcIDsKK+Wcj+WGhSA+IGtlbicnbmFpXCA7CivpjK/oppogPiBzYWtrYWt1XCA7Civmi43mlbAgPiBoYWt1c3V1XCA7CivmvKLmnJ0gPiBrYW5jaG91XCA7CivnrqHmjowgPiBrYW5zaG91XCA7CivlnKjkuK0gPiB6YWljaHV1XCA7CivmvZzlv4MgPiBzZW5zaGluXCA7Civlm57lm70gPiBrYWlrb2t1XCA7CivmvZvlv4MgPiBzZW5zaGluXCA7CivooajlnKggPiBoeW91emFpXCA7Civmu7TmsLQgPiB0ZWtpc3VpXCA7CivmiZPnjocgPiBkYXJpdHN1XCA7Civpi7PpgKAgPiBjaHV1em91XCA7Civlm73li6IgPiBrb2t1c2VpXCA7Civlm5vlm70gPiBzaGlrb2t1XCA7Civlm73lirQgPiBrb2t1cm91XCA7Civmt7HorJ0gPiBzaGluc2hhXCA7Civmi53mib8gPiBoYWlzaG91XCA7Civmt7HorIAgPiBzaGluYm91XCA7Civlmq7lsI4gPiBreW91ZG91XCA7Civmv4Dli5UgPiBnZWtpZG91XCA7Civnq4vnsbMgPiByeXV1YmVpXCA7CivnrYvms6ggPiBraW5jaHV1XCA7Civmv4DlirEgPiBnZWtpcmVpXCA7CivmipHmraIgPiB5b2t1c2hpXCA7CivmvKLml48gPiBrYW56b2t1XCA7CivmuoDnpaggPiBtYW5weW91XCA7Civnr4DluqYgPiBzZXRzdWRvXCA7Civnpr3ps6UgPiBraW5jaG91XCA7CivmiLTnmb0gPiB0YWloYWt1XCA7Civmi5nmioAgPiBzZXRzdWdpXCA7CivmvIHmpa0gPiBneW9neW91XCA7CivmvJTmm7IgPiBlbmt5b2t1XCA7CivmtrLph48gPiBla2lyeW91XCA7Civom4fooI0gPiBkYWthdHN1XCA7Civlm73lhoUgPiBrb2t1bmFpXCA7CivpvI7pnakgPiB0ZWlrYWt1XCA7Civom5TomasgPiBrYWljaHV1XCA7Civlm73lhbggPiBrb2t1dGVuXCA7CivonYvnn7MgPiByb3VzZWtpXCA7Civnq5znpZ4gPiByeXV1amluXCA7CivmtojpmLIgPiBzaG91Ym91XCA7CivmtYHpupcgPiByeXV1cmVpXCA7Civnq6/nmoQgPiB0YW50ZWtpXCA7CivmuKnoibIgPiBvbnNob2t1XCA7Civom4fonY4gPiBkYWthdHN1XCA7Civlm73lgrUgPiBrb2t1c2FpXCA7CivmupbnlKggPiBqdW4nJ3lvdVwgOwor56m06JS1ID4gYW5hZ3VyYVwgOwor5ouN5omLID4gaGFrdXNodVwgOwor5raI6ZaRID4gc2hvdWthblwgOwor5omL54etID4gdGVzaG9rdVwgOwor5Zaq56WeID4gc291c2hpblwgOwor5Zub5ZGoID4gc2hpc2h1dVwgOwor5Zue5Y+OID4ga2Fpc2h1dVwgOwor566x5birID4gaGFrb3NoaVwgOwor6KGo5Y+3ID4gaHlvdWdvdVwgOwor6buE6bq7ID4gdHN1bmFzb1wgOwor6Jmr6YW4ID4gbXVzaGl6dVwgOwor5rqA55uuID4gbWFubW9rdVwgOwor5oud5b6pID4gaGFpZnVrdVwgOwor6ZCY5qW8ID4gc2hvdXJvdVwgOwor56uL56eLID4gcmlzc2h1dVwgOwor56eL6aKoID4gc2h1dWZ1dVwgOwor5oq85o26ID4gb3VuYXRzdVwgOwor5Zu95L2/ID4ga29rdXNoaVwgOwor5oub5b6FID4gc2hvdXRhaVwgOwor5rWm6aKoID4gdXJha2F6ZVwgOwor56m66Iy2ID4ga2FyYWNoYVwgOwor5Zu95L2TID4ga29rdXRhaVwgOwor56uc55y8ID4gcnl1dWdhblwgOwor5rW36Zm4ID4ga2FpcmlrdVwgOwor56iA6YeIID4ga2lzaGFrdVwgOwor56iO6L68ID4gemVpa29taVwgOwor6buS6a+bID4ga3Vyb2RhaVwgOwor56m66ImyID4gc29yYWlyb1wgOwor5oyZ5Zu9ID4ga3lva29rdVwgOwor5Zu95Li7ID4ga29rdXNodVwgOwor6KGw5YWGID4gc3VpY2hvdVwgOwor5Zu95LitID4ga3VuaWp1dVwgOwor56eL6ZycID4gc2h1dXNvdVwgOwor5ZaJ56ybID4gbm9kb2J1ZVwgOwor56eL6ZyWID4gc2h1dXJpblwgOwor6Juu57+SID4gYmFuc2h1dVwgOwor6buE6bOlID4ga291Y2hvdVwgOwor6KGM5ZWTID4gZ3lvdWtlaVwgOwor56eL6ZuoID4gYWtpc2FtZVwgOwor56m66IW5ID4ga3V1ZnVrdVwgOwor5ruL5q6WID4gamlzaG9rdVwgOwor6KGd5YuVID4gc2hvdWRvdVwgOwor5oy/5YWlID4gc291bnl1dVwgOwor5ZKM6aOfID4gd2FzaG9rdVwgOwor5oqc5pOiID4gYmF0dGVraVwgOwor5rqv5rqQID4gc2FrdWdlblwgOwor5oqb5pOyID4gaG91dGVraVwgOwor5ZWG6Ii5ID4gc2hvdXNlblwgOwor6Y2156m0ID4ga2FnaWFuYVwgOwor5oyv5YuVID4gc2hpbmRvdVwgOwor6J+75be7ID4gYXJpbWFraVwgOwor5om25qSNID4gZnVzaG9rdVwgOwor5oqE5pysID4gc2hvdWhvblwgOwor5oyH5ZynID4gc2hpYXRzdVwgOwor5oqV5pOyID4gdG91dGVraVwgOwor5oyH5ZuzID4gc2FzaGl6dVwgOwor5rq65rC0ID4gZGVraXN1aVwgOwor56+J5ZywID4gdHN1a2lqaVwgOwor6buS6aKoID4ga29rdWZ1dVwgOwor6J2L54etID4gcm91c29rdVwgOwor5rq65q27ID4gZGVraXNoaVwgOwor5ouZ5a6FID4gc2V0dGFrdVwgOwor5omL5rKiID4gc2h1dGFrdVwgOwor5oOj6aCYID4gc291cnlvdVwgOwor56aB6bOlID4ga2luY2hvdVwgOwor5oqR5o+aID4geW9rdXlvdVwgOwor5Zua5Lq6ID4gc2h1dWppblwgOwor5riF6IG0ID4gc2VpY2hvdVwgOwor56yK5rOVID4gemFydWhvdVwgOwor5oeH56+kID4ga29udG9rdVwgOwor56u25ryVID4ga3lvdXNvdVwgOwor5rez6ImvID4ganVucnlvdVwgOwor5rib57WmID4gZ2Vua3l1dVwgOwor6Y+W5q66ID4gb3VzYXRzdVwgOwor5ZSQ6JavID4ga2FyYWltb1wgOwor56iO6Kq/ID4gemVpY2hvdVwgOwor56yR5q2iID4gc2hvdXNoaVwgOwor6Jit6YuzID4gcmFuY2h1dVwgOwor5ouh5aSnID4ga2FrdWRhaVwgOwor6YqF6ZC4ID4gZG91dGFrdVwgOwor5ouN5a2QID4gaHlvdXNoaVwgOwor6YqF6Y+hID4gZG91a3lvdVwgOwor5rW46YCPID4gc2hpbnRvdVwgOwor562W5oimID4gc2FrdXNlblwgOwor5oiQ54afID4gc2VpanVrdVwgOwor5rqc5rGgID4gdGFtZWlrZVwgOwor5rWm6YeMID4gdXJhemF0b1wgOwor5rmv54aoID4geXVub3NoaVwgOwor5Zar54WZID4ga2l0c3VlblwgOwor5ZiJ5pelID4ga2FqaXRzdVwgOwor5rqA5r2uID4gbWFuY2hvdVwgOwor56ew6LObID4gc2hvdXNhblwgOwor5ZqH5ZqHID4ga2Fra2FrdVwgOwor5ZWG57WMID4gc2hvdWtlaVwgOwor5ouT5aSnID4gdGFrdWRhaVwgOwor5rqQ5rWBID4gZ2Vucnl1dVwgOwor56mO6ISxID4gZWlkYXRzdVwgOwor56qB56uvID4gdG9wcGFuYVwgOwor6KGM5L2TID4gZ3lvdXRhaVwgOwor5ryi5a2mID4ga2FuZ2FrdVwgOwor6buE6ZuAID4ga291amFrdVwgOwor5ZaA55ewID4ga2FrdXRhblwgOwor6by76KGAID4gaGFuYWRqaVwgOwor6Yyv57acID4gc2FrdXNvdVwgOwor5rex6ICVID4gc2hpbmtvdVwgOwor6KGT5LitID4ganV0Y2h1dVwgOwor5rS+6ZalID4gaGFiYXRzdVwgOwor5ZaE55SoID4gemVuJyd5b3VcIDsKK+ibn+ernCA+IGtvdXJ5b3VcIDsKK+a8huW3pSA+IHNoaWtrb3VcIDsKK+aGsueroCA+IGtlbnNob3VcIDsKK+m6u+mbgCA+IG1hemVqYW5cIDsKK+aIpuazgSA+IHNlbmt5b3VcIDsKK+a8geW4qyA+IHJ5b3VzaGlcIDsKK+evhuWIuyA+IHRlbmtva3VcIDsKK+ihhuS6uiA+IHNodXVqaW5cIDsKK+aJgOalrSA+IHNob2d5b3VcIDsKK+eptuernyA+IGt1a2t5b3VcIDsKK+WYsuW8hCA+IGNob3Vyb3VcIDsKK+aIr+atjCA+IHphcmV1dGFcIDsKK+igouWLlSA+IHNodW5kb3VcIDsKK+WUkOiHvCA+IGthcmF1c3VcIDsKK+a6gOa0siA+IG1hbnNodXVcIDsKK+a5vua1gSA+IHdhbnJ5dXVcIDsKK+WWhOeOiSA+IHplbmRhbWFcIDsKK+engemAmiA+IHNoaXRzdXVcIDsKK+eoruiLlyA+IHNodWJ5b3VcIDsKK+a1t+iziiA+IGthaXpva3VcIDsKK+eoruiKiyA+IHRhbmVpbW9cIDsKK+a5rua7hSA+IGlubWV0c3VcIDsKK+aIpuattCA+IHNlbnJla2lcIDsKK+aMh+WApCA+IHNhc2hpbmVcIDsKK+a1t+ixuSA+IGthaWh5b3VcIDsKK+a1t+ixoSA+IHNlaXVjaGlcIDsKK+eqrueKtiA+IGt5dXVqb3VcIDsKK+aKvOWjsiA+IG9zaGl1cmlcIDsKK+WTgeiplSA+IGhpbnB5b3VcIDsKK+aDqOmFtyA+IHphbmtva3VcIDsKK+aCqumjnyA+IGFrdWppa2lcIDsKK+ibrueahCA+IGJhbnRla2lcIDsKK+a3see0hSA+IHNoaW5rb3VcIDsKK+elnumrhCA+IHNoaW56dWlcIDsKK+iYh+mJhCA+IHNvdGV0c3VcIDsKK+etieW8tSA+IHRvdWNob3VcIDsKK+ifhOWxhSA+IGNoaWtreW9cIDsKK+aEmuiqrCA+IGd1c2V0c3VcIDsKK+aHuOa/gSA+IGtlbmRha3VcIDsKK+WVhuekviA+IHNob3VzaGFcIDsKK+mKg+i6qyA+IGp1dXNoaW5cIDsKK+a6neadvyA+IGRvYnVpdGFcIDsKK+a4heeniyA+IHNlaXNodXVcIDsKK+aEn+immiA+IGthbmtha3VcIDsKK+a4heemjyA+IHNlaWZ1a3VcIDsKK+a4m+ebiiA+IGdlbicnZWtpXCA7CivmuIXnpaUgPiBzZWlzaG91XCA7CivlmqLkuK0gPiBub3VjaHV1XCA7CivnpZ7ppYwgPiBzaGluc2VuXCA7Civpvo3npZ4gPiByeXV1amluXCA7Civnp5joqKMgPiBoaWtldHN1XCA7Civnqbrnmb0gPiBrdXVoYWt1XCA7CivmvZzkvI8gPiBzZW5wdWt1XCA7CivlmIbmga8gPiB0YW5zb2t1XCA7CivombnoibIgPiBuaWppaXJvXCA7CivnrZblrpogPiBzYWt1dGVpXCA7CivmtYHpgKMgPiByeXV1cmVuXCA7Civmta7oqqwgPiBmdXNldHN1XCA7CivnqY3nrpcgPiBzZWtpc2FuXCA7CivmgqrpmLsgPiB0c3V3YXJpXCA7Civmhrbnl4UgPiBva3VieW91XCA7CivmhaPnv5IgPiBrYW5zaHV1XCA7Civmt7HnqpMgPiBzaGluc291XCA7CivmiK/mm7IgPiBnaWt5b2t1XCA7CivmiYvmjowgPiBzaHVzaG91XCA7CivmgqPpm6MgPiBrYW4nJ25hblwgOwor5ouh5YWFID4ga2FrdWp1dVwgOwor56We6Z+7ID4gc2hpbicnaW5cIDsKK+epgOeyiSA+IGtva3VmdW5cIDsKK+WTqOiIjiA+IHNob3VzaGFcIDsKK+euoeWGhSA+IGthbicnbmFpXCA7Civpkb/kupUgPiBzYWt1c2VpXCA7CivllJDns7ggPiBrYXJhaXRvXCA7CivpiYTpjpogPiB0ZXR0c3VpXCA7Civnqbrnk7YgPiBrYXJhYmluXCA7CivmuoDmoKogPiBtYW5rYWJ1XCA7Civpi7zntKIgPiBrb3VzYWt1XCA7Civmi43li5UgPiBoYWt1ZG91XCA7CivmiYvmioQgPiBzaHVzaG91XCA7Civnp5jooZMgPiBoaWp1dHN1XCA7Civmu5HluK0gPiBrYXNzZWtpXCA7CivnpZ7pnIogPiBzaGlucmVpXCA7CivmiJDmpa0gPiBzZWlneW91XCA7Civom4vnmb0gPiB0YW5wYWt1XCA7CivlkajpgYogPiBzaHV1eXV1XCA7CivmgqDplbcgPiB5dXVjaG91XCA7CivllYbnlKggPiBzaG91eW91XCA7Civmu4XluqYgPiBtZXRzdWRvXCA7CivmuoDmm7QgPiBtYW56YXJhXCA7CivnrZblo6sgPiBzYWt1c2hpXCA7CivlkajovrogPiBzaHV1aGVuXCA7CivmiJDmoYIgPiBuYXJpa2VpXCA7Civmtbfom4cgPiB1bWloZWJpXCA7CivmtLvot68gPiBrYXRzdXJvXCA7Civpu5LosoIgPiBrdXJvdGVuXCA7CivpkJjlo7AgPiBzaG91c2VpXCA7Civmi5nkvZwgPiBzZXNzYWt1XCA7Civpiq3okbUgPiB6ZW5pYW9pXCA7CivmvIbllrAgPiBzaGlra3VpXCA7Civms6Lpn7MgPiBuYW1pb3RvXCA7CivnqJznt5ogPiByeW91c2VuXCA7Civnqq7msJEgPiBreXV1bWluXCA7CivmiY3lvrMgPiBzYWl0b2t1XCA7Civnq4vmoYggPiByaXRzdWFuXCA7Civpu5noqo0gPiBtb2t1bmluXCA7Civmhbbnpo8gPiBrZWlmdWt1XCA7CivlkbXosqwgPiBrYXNoYWt1XCA7CivnqbrniIYgPiBrdXViYWt1XCA7CivlkIPpqZogPiBiaWtrdXJpXCA7Civonb/luLMgPiBoYWljaG91XCA7Civnqq7mrbsgPiBreXV1c2hpXCA7CivlkITpp4UgPiBrYWt1ZWtpXCA7CivllYbnirYgPiBzaG91am91XCA7Civnp4vompUgPiBzaHV1c2FuXCA7CivmirzlhaUgPiBvc2hpaXJlXCA7Civmt7fnlKggPiBrb24nJ3lvdVwgOwor5rim5r2uID4gdXp1c2hpb1wgOwor6buZ6KaWID4gbW9rdXNoaVwgOwor6Jit6JmrID4gcmFuY2h1dVwgOwor6Yej6a2aID4gY2hvdWd5b1wgOwor5oiR5pa5ID4gd2FnYWhvdVwgOwor5ZCM6aGNID4gZG91Z2FrdVwgOwor56m054aKID4gYW5hZ3VtYVwgOwor5rWB6KqsID4gcnVzZXRzdVwgOwor5omA5b6XID4gc2hvdG9rdVwgOwor5rqc5oGvID4gdGFtZWlraVwgOwor5rex55SaID4gc2hpbmppblwgOwor5oGt6aCGID4ga3lvdWp1blwgOwor5ryP5Yi7ID4gcm91a29rdVwgOwor6Jap6ZW3ID4gc2F0Y2hvdVwgOwor5rWB6KiAID4gcnl1dWdlblwgOwor5ouF5Lu7ID4gdGFuJyduaW5cIDsKK+aEn+iIiCA+IGthbmt5b3VcIDsKK+a3oeeZvSA+IHRhbnBha3VcIDsKK+eri+aYpSA+IHJpc3NodW5cIDsKK+eqr+alrSA+IHlvdWd5b3VcIDsKK+aKnOWOuyA+IGJha2t5b3VcIDsKK+aKl+WRiiA+IGtvdWtva3VcIDsKK+a4qea1tCA+IG9uJyd5b2t1XCA7CivnpoHotrMgPiBraW5zb2t1XCA7CivmupbmgKUgPiBqdW5reXV1XCA7CivlkIPpn7MgPiBraXRzdW9uXCA7CivpiYTot68gPiB0ZXRzdXJvXCA7CivnpL7plbcgPiBzaGFjaG91XCA7CivnqbrmvKAgPiBrdXViYWt1XCA7CivlkITpnaIgPiBrYWt1bWVuXCA7Civpu5LooYAgPiBrdXJvY2hpXCA7CivmtojogJcgPiBzaG91bW91XCA7Civnq6PmiJAgPiBzaHVuc2VpXCA7CivmtJfotrMgPiBzZW5zb2t1XCA7Civpu5Lon7sgPiBrdXJvYXJpXCA7CivmhrbmuKwgPiBva3Vzb2t1XCA7CivmtYHooYwgPiByeXV1a291XCA7CivnqpLmrbsgPiBjaGlzc2hpXCA7Civph5Hpq5ggPiBraW5kYWthXCA7CivnrbrkvZMgPiBreW91dGFpXCA7CivlkITpmo4gPiBrYWt1a2FpXCA7CivlkKvph48gPiBnYW5yeW91XCA7Civnp4vojYkgPiBha2lrdXNhXCA7CivmiY3lraYgPiBzYWlnYWt1XCA7CivnpZ7pgZMgPiBzaGludG91XCA7CivlkL7ovKkgPiB3YWdhaGFpXCA7CivmhqTmv4AgPiBmdW5nZWtpXCA7Civmg4Xoqr8gPiBqb3VjaG91XCA7CivmhInoibIgPiB5dXNob2t1XCA7CivnqK7nm64gPiBzaHVtb2t1XCA7CivmuIXmv4EgPiBzZWlkYWt1XCA7CivnrZbli5UgPiBzYWt1ZG91XCA7CivlkajopqcgPiBzaHV1cmFuXCA7CivmuIXmvoQgPiBzZWljaG91XCA7CivmiYDlsZ4gPiBzaG96b2t1XCA7CivnrZblirEgPiBzYWt1cmVpXCA7CivmiKblvbkgPiBzZW4nJ2VraVwgOwor6JaE6ZuyID4gdXN1Z3Vtb1wgOwor6JaE6ZuqID4gdXN1eXVraVwgOwor56Wd6L6eID4gc2h1a3VqaVwgOwor5oqR5Yi2ID4geW9rdXNlaVwgOwor5oGL6aKoID4ga29pa2F6ZVwgOwor5ZWG5rivID4gc2hvdWtvdVwgOwor56We6Ly/ID4gbWlrb3NoaVwgOwor6JWB6bq7ID4gaXJha3VzYVwgOwor5riT5rWBID4ga2Vpcnl1dVwgOwor5rm/5oCnID4gc2hpc3NlaVwgOwor56ul5b+DID4gZG91c2hpblwgOwor5oiS5oWOID4ga2Fpc2hpblwgOwor5oqV5YWlID4gdG91bnl1dVwgOwor6bm/6L+9ID4gc2hpa2FvaVwgOwor56WW6L+wID4gc29qdXRzdVwgOwor5reL55eFID4gcmluYnlvdVwgOwor5oiK5oiMID4gYm9qdXRzdVwgOwor6Jas6YWSID4geWFrdXNodVwgOwor5ZGq6KGTID4ganVqdXRzdVwgOwor5Y+k6aGUID4gZnVydWdhb1wgOwor5rWF6JaEID4gc2VucGFrdVwgOwor5omL5aa7ID4gdGVkenVtYVwgOwor5re35r+BID4ga29uZGFrdVwgOwor6YeR6aGNID4ga2luZ2FrdVwgOwor6Ymk6JmrID4ga291Y2h1dVwgOwor5rWj6IW4ID4ga2FuY2hvdVwgOwor5riF5ra8ID4gc2VpcnlvdVwgOwor5oOo6JC9ID4gc2FucmFrdVwgOwor5ZWG5rOVID4gc2hvdWhvdVwgOwor5oWj55SoID4ga2FuJyd5b3VcIDsKK+mKheiHrSA+IGRvdXNodXVcIDsKK+eskeWjsCA+IHNob3VzZWlcIDsKK+iYiuiThCA+IHVuY2hpa3VcIDsKK+mKgOiJsiA+IGdpbicnaXJvXCA7Civpuqbop5IgPiBiYWtrYWt1XCA7CivmiJLlv4MgPiBrYWlzaGluXCA7CivmipXkv6EgPiB0b3VzaGluXCA7CivmuIXmtYEgPiBzZWlyeXV1XCA7Civnp4HohbkgPiBzaGlmdWt1XCA7CivmuoDluYUgPiBtYW5wdWt1XCA7Civlj7DplqMgPiBkYWlrYWt1XCA7CivmuoDluK0gPiBtYW5zZWtpXCA7Civmib/liY0gPiBzaG91emVuXCA7Civllqzlv5cgPiBreW91c2hpXCA7Civmt7Hmva0gPiBzaGludGFuXCA7Civlj43pp4EgPiBoYW5wYWt1XCA7Civnq6Plt6UgPiBzaHVua291XCA7CivmuoDlt54gPiBtYW5zaHV1XCA7Civllqrlv4MgPiBzb3VzaGluXCA7CivlkIzph48gPiBkb3VyeW91XCA7CivnpZ3os4AgPiBzaHVrdWdhXCA7CivmgqroqZUgPiBha3VoeW91XCA7Civlk4TnrJEgPiBrb3VzaG91XCA7CivmgqroqLMgPiBha3V5YWt1XCA7CivmgKXpqLAgPiBreXV1dG91XCA7Civolarpm5EgPiBidXphdHN1XCA7Civpu5LojLYgPiBrdXJvY2hhXCA7CivnqI7nm64gPiB6ZWltb2t1XCA7CivmipjkuK0gPiBzZXRjaHV1XCA7Civnp5jntZAgPiBoaWtldHN1XCA7CivlkIzpg7cgPiBkb3VreW91XCA7Civmh7LmiJIgPiBjaG91a2FpXCA7CivnpLrpgZQgPiBqaXRhdHN1XCA7Civph43pmb0gPiBjaG91eW91XCA7Civmt7Hmt7UgPiBzaGluJydlblwgOwor5oeQ5penID4ga2Fpa3l1dVwgOwor562Q5L2TID4ga3lvdXRhaVwgOwor6JmO56m0ID4ga29rZXRzdVwgOwor5ZaY5oGvID4gemVuc29rdVwgOwor5Y+N6Z+/ID4gaGFua3lvdVwgOwor6Y6u5a6aID4gY2hpbnRlaVwgOwor5rex5rW3ID4gc2hpbmthaVwgOwor5ZWG5qipID4gc2hvdWtlblwgOwor562S5LqVID4gdHN1dHN1aVwgOwor5rex5rWFID4gc2hpbnNlblwgOwor5ZOy55CGID4gdGV0c3VyaVwgOwor6YiN6LazID4gZG9uc29rdVwgOwor56m65qG2ID4ga2FyYW9rZVwgOwor6JaE6YiNID4gdXN1bm9yb1wgOwor5oey5oKqID4gY2hvdWFrdVwgOwor56m65qCqID4ga3V1a2FidVwgOwor6Juu5pePID4gYmFuem9rdVwgOwor6JWJ6aKoID4gc2hvdWZ1dVwgOwor56yb5ZC5ID4gZnVlZnVraVwgOwor5rOV6LqrID4gaG9zc2hpblwgOwor56uc5a6uID4gcnl1dWd1dVwgOwor56Wd6KiAID4gc2h1dWdlblwgOwor6Y+h5Y+wID4ga3lvdWRhaVwgOwor5oGl6L6xID4gY2hpam9rdVwgOwor5rKI6Z2ZID4gY2hpbnNlaVwgOwor5oey5b25ID4gY2hvdWVraVwgOwor5ZaE5oKqID4gemVuJydha3VcIDsKK+a7nuS6rCA+IHRhaWt5b3VcIDsKK+mHjemOriA+IGp1dWNoaW5cIDsKK+WQjei3oSA+IG1laXNla2lcIDsKK+aApemboyA+IGt5dXVuYW5cIDsKK+iWhOmBhyA+IGhha3VndXVcIDsKK+WPgumbhiA+IHNhbnNodXVcIDsKK+a3oeaziiA+IHRhbnBha3VcIDsKK+aJi+WPoyA+IHRlZ3VjaGlcIDsKK+ayiOmZjSA+IGNoaW5rb3VcIDsKK+a1uOekvCA+IHNoaW5yZWlcIDsKK+WRqOiIqiA+IHNodXVrb3VcIDsKK+WWhOW/gyA+IHplbnNoaW5cIDsKK+WWhOW+syA+IHplbnRva3VcIDsKK+aJk+WKmyA+IGRhcnlva3VcIDsKK+a3q+assiA+IGluJyd5b2t1XCA7CivpioDntJkgPiBnaW5nYW1pXCA7CivpiLTomK0gPiBzdXp1cmFuXCA7CivmiKbln58gPiBzZW4nJ2lraVwgOwor5ZCf6KqmID4gZ2luc2hvdVwgOwor56m25piOID4ga3l1dW1laVwgOwor5ZOB55uuID4gaGlubW9rdVwgOwor6Yac6aGeID4gc2h1dXJ1aVwgOwor6b2y5q2vID4gbXVzaGliYVwgOwor5Y+s6YKEID4gc2hvdWthblwgOwor5rOo6KejID4gY2h1dWthaVwgOwor5Y+v6YCGID4ga2FneWFrdVwgOwor5oaC5qydID4geXV1dXRzdVwgOwor6YqF566UID4gZG91aGFrdVwgOwor5rOo6KaWID4gY2h1dXNoaVwgOwor6YeN6YePID4ganV1cnlvdVwgOwor5oim5Zu9ID4gc2VuZ29rdVwgOwor5omA5Y+OID4gc2hvc2h1dVwgOwor5oSb552AID4gYWljaGFrdVwgOwor6YiN6KeSID4gZG9ua2FrdVwgOwor6bqm6Iy2ID4gbXVnaWNoYVwgOwor6buS57eaID4ga29rdXNlblwgOwor5oSa55u0ID4gZ3VjaG9rdVwgOwor6YqA566UID4gZ2lucGFrdVwgOwor6Y+h5YOPID4ga3lvdXpvdVwgOwor6Jek6ImyID4gZnVqaWlyb1wgOwor5Y+y6LmfID4gc2hpc2VraVwgOwor5oi45Y+jID4gdG9ndWNoaVwgOwor56m65o+aID4ga2FyYWFnZVwgOwor6YqA56ybID4gZ2ludGVraVwgOwor5rm/5ZywID4gc2hpdGNoaVwgOwor5rW355u4ID4ga2Fpc2hvdVwgOwor56ys5LiAID4gZGFpaWNoaVwgOwor5riF5pawID4gc2Vpc2hpblwgOwor5oGt6KyZID4ga3lvdWtlblwgOwor6YeO6YGTID4gbm9taWNoaVwgOwor5ZSQ5q2MID4ga2FyYXV0YVwgOwor5ZCM6Kq/ID4gZG91Y2hvdVwgOwor5Y+y6LehID4gc2hpc2VraVwgOwor6be56Zq8ID4geW91c2h1blwgOwor56u25ZCIID4ga3lvdWdvdVwgOwor5ZCN6KizID4gbWVpeWFrdVwgOwor5Y+O6YeRID4gc2h1dWtpblwgOwor5ZCI6Kq/ID4gZ291Y2hvdVwgOwor5Y+j6LyqID4ga3VjaGl3YVwgOwor5rez5py0ID4ganVuYm9rdVwgOwor6buE57eRID4gb3VyeW9rdVwgOwor5b+g6a2CID4gY2h1dWtvblwgOwor5ZCE6KuWID4ga2FrdXJvblwgOwor5ra45riHID4ga29rYXRzdVwgOwor5ZCI6KmVID4gZ2FwcHlvdVwgOwor5Y+Z6L+wID4gam9qdXRzdVwgOwor5rex5pu0ID4gc2hpbmtvdVwgOwor5rSX6ISzID4gc2VuJydub3VcIDsKK+aIuOWIpSA+IGtvYmV0c3VcIDsKK+elnuiRrCA+IHNoaW5zb3VcIDsKK+eri+WgtCA+IHRhY2hpYmFcIDsKK+WUkOanmCA+IGthcmF5b3VcIDsKK+m6u+e4hCA+IGFzYW5hd2FcIDsKK+m2uum0kiA+IHNla2lyZWlcIDsKK+aCquiHrSA+IGFrdXNodXVcIDsKK+epjeacqCA+IHRzdW1pa2lcIDsKK+WPpOi3oSA+IGZ1cnVhdG9cIDsKK+a6luWJhyA+IGp1bnNva3VcIDsKK+aIpuWPiyA+IHNlbicneXV1XCA7CivmtbTnlKggPiB5b2t1eW91XCA7CivlkJDooYAgPiB0b2tldHN1XCA7CivpiI7omasgPiBrb3VjaHV1XCA7CivoloTorJ0gPiBoYWt1c2hhXCA7Civpjq7lj7AgPiBjaGluZGFpXCA7CivmsojphZQgPiBjaGluc3VpXCA7CivllYbmiY0gPiBzaG91c2FpXCA7Civpu5nnpbcgPiBtb2t1dG91XCA7Civph5HotaQgPiBraW4nJ2FrYVwgOwor5omA5L+hID4gc2hvc2hpblwgOwor5ZWG5oimID4gc2hvdXNlblwgOwor56uL5Zu9ID4gcmlra29rdVwgOwor6buZ56S8ID4gbW9rdXJlaVwgOwor6buZ56S6ID4gbW9rdXNoaVwgOwor6JqV5qWtID4gc2FuZ3lvdVwgOwor5oim5YudID4gc2Vuc2hvdVwgOwor5Y+b6LehID4gaGFuc2VraVwgOwor5oCd6YePID4gc2hpcnlvdVwgOwor5omL5LitID4gc2h1Y2h1dVwgOwor5raI54eIID4gc2hvdXRvdVwgOwor56We6IuRID4gc2hpbicnZW5cIDsKK+aJi+S4iyA+IHRlc2hpdGFcIDsKK+WPjui8iSA+IHNodXVzYWlcIDsKK+aApemBvSA+IGt5dXVreW9cIDsKK+engeeahCA+IHNoaXRla2lcIDsKK+a6gOWNkyA+IG1hbnRha3VcIDsKK+aApemAoCA+IGt5dXV6b3VcIDsKK+aApemAnSA+IGt5dXVzZWlcIDsKK+a4puW3uyA+IHV6dW1ha2lcIDsKK+a1t+eMqyA+IHVtaW5la29cIDsKK+aEmueJqSA+IGd1YnV0c3VcIDsKK+mHjeiyrCA+IGp1dXNla2lcIDsKK+m8u+axlyA+IGhhbmFhc2VcIDsKK+WPjei6qyA+IGhhbnNoaW5cIDsKK+aApemAgSA+IGt5dXVzb3VcIDsKK+aIkuWRiiA+IGthaWtva3VcIDsKK+WWhOWlsyA+IHplbicnbnlvXCA7CivnpZ7oiIggPiBtaWtvc2hpXCA7Civmgqrnv5IgPiBha3VzaHV1XCA7Civlj6zoq4sgPiBzaG91c2VpXCA7CivpiZvnrYYgPiBlbnBpdHN1XCA7Civlj5vos4ogPiBoYW56b2t1XCA7CivmiJLlkI0gPiBrYWlteW91XCA7CivljrPphbcgPiBnZW5rb2t1XCA7Civnq6Plip8gPiBzaHVua291XCA7CivllJDmnJ0gPiB0b3VjaG91XCA7Civmtojnga8gPiBzaG91dG91XCA7Civlv4PprYIgPiBzaGlua29uXCA7CivljoTpm6MgPiB5YWt1bmFuXCA7CivmiL/kuK0gPiBib3VjaHV1XCA7Civlj43ot7MgPiBoYW5jaG91XCA7CivmtbfniZsgPiBrYWlneXV1XCA7CivpibHnn7MgPiBrb3VzZWtpXCA7CivolqzojqIgPiB5YWtreW91XCA7CivpvLvmrYwgPiBoYW5hdXRhXCA7CivmhpHmi6AgPiBoeW91a3lvXCA7CivpiYTntKIgPiB0ZXNzYWt1XCA7Civlv4Ppq4QgPiBzaGluenVpXCA7CivmgKXou6IgPiBreXV1dGVuXCA7Civlj43otoogPiBoYW5ldHN1XCA7CivlkLnogbQgPiBmdWljaG91XCA7Civmua/lj6MgPiB5dWd1Y2hpXCA7CivmiKblgrcgPiBzZW5zaG91XCA7Civlj6ToqqwgPiBrb3NldHN1XCA7CivmsLTpo7QgPiBtaXp1YW1lXCA7CivlkI3olqwgPiBtZWl5YWt1XCA7CivnqL/mlpkgPiBrb3VyeW91XCA7CivljbPpoYwgPiBzb2t1ZGFpXCA7Civlv6DpnIogPiBjaHV1cmVpXCA7Civlj6PoqqwgPiBrdXpldHN1XCA7Civlj6PoqqYgPiBrb3VzaG91XCA7CivolqzojYkgPiB5YWt1c291XCA7CivnqK7mnb8gPiB0YW5laXRhXCA7CivomavmsJcgPiBtdXNoaWtlXCA7CivnqbrluK0gPiBrdXVzZWtpXCA7CivmuKzlrpogPiBzb2t1dGVpXCA7CivmtYHnoIIgPiByeXV1c2hhXCA7Civmub7lhoUgPiB3YW4nJ25haVwgOwor5oSV54S2ID4gZ2FrdXplblwgOwor56iu5pysID4gdGFuZWhvblwgOwor56We6IGWID4gc2hpbnNlaVwgOwor5Y+O6LOEID4gc2h1dXdhaVwgOwor5Y+N6LOKID4gaGFuem9rdVwgOwor5oSf5r+AID4ga2FuZ2VraVwgOwor6ba06aaWID4ga2FrdXNodVwgOwor6Jmr5q2vID4gbXVzaGliYVwgOwor5ZCE6JepID4ga2FrdWhhblwgOwor5rSq56mNID4ga291c2VraVwgOwor56u25LqJID4ga3lvdXNvdVwgOwor5Y+j6KeSID4ga291a2FrdVwgOwor56qu5ZywID4ga3l1dWNoaVwgOwor5ZWG5bqXID4gc2hvdXRlblwgOwor5rC36Z2iID4gaHlvdW1lblwgOwor6YeN6KizID4ganV1eWFrdVwgOwor6YiN6ImyID4gbmliaWlyb1wgOwor5Y2D6bOlID4gY2hpZG9yaVwgOwor5Y+Z6KqsID4gam9zZXRzdVwgOwor5b+X6ZuGID4gc2hpc2h1dVwgOwor56qq5ZywID4ga3Vib2NoaVwgOwor5oaU5oK0ID4gc2hvdXN1aVwgOwor5rex5oWuID4gc2hpbnJ5b1wgOwor56aP56WJID4gZnVrdXNoaVwgOwor56aO56WlID4gdGVpc2hvdVwgOwor5rCX6aqoID4ga2lrb3RzdVwgOwor56iu5pePID4gc2h1em9rdVwgOwor6YeM6KaqID4gc2F0b295YVwgOwor5ZWG5belID4gc2hvdWtvdVwgOwor5rib5bCRID4gZ2Vuc2hvdVwgOwor6buS55ejID4ga3Vyb2F6YVwgOwor6YaL6YW4ID4gc2FrdXNhblwgOwor6bqm56ybID4gbXVnaWJ1ZVwgOwor5ZCb6IejID4ga3Vuc2hpblwgOwor5rSe56m0ID4gaG9yYWFuYVwgOwor5oe45ZCKID4ga2VuY2hvdVwgOwor6YqD54yfID4ganV1cnlvdVwgOwor5b+D6aGYID4gc2hpbmdhblwgOwor5rer5oW+ID4gaW4nJ3lva3VcIDsKK+a1uOa9pCA+IHNoaW5qdW5cIDsKK+a6gOS9nCA+IG1hbnNha3VcIDsKK+WPpOihgCA+IGZ1cnVjaGlcIDsKK+aGguaImiA+IHl1dXNla2lcIDsKK+WQq+e+niA+IGdhbnNodXVcIDsKK+epuuWwhiA+IGt1dXNob3VcIDsKK+W/g+mgrSA+IHNoaW50b3VcIDsKK+WUkOaPmiA+IGthcmFhZ2VcIDsKK+aIpuS4rSA+IHNlbmNodXVcIDsKK+awtOmZuCA+IHN1aXJpa3VcIDsKK+WNoOmgmCA+IHNlbnJ5b3VcIDsKK+a1uOa8rCA+IHNoaW5zaGlcIDsKK+W/g+mfsyA+IHNoaW4nJ29uXCA7Civlkajnn6UgPiBzaHV1Y2hpXCA7CivllZPlraYgPiBrZWlnYWt1XCA7CivolqvogrIgPiBrdW4nJ2lrdVwgOwor5oSB54S2ID4gc2h1dXplblwgOwor6buE55m9ID4ga291aGFrdVwgOwor5Y+N6Ki8ID4gaGFuc2hvdVwgOwor5rWB55SoID4gcnl1dXlvdVwgOwor5rqA5LqGID4gbWFucnlvdVwgOwor5rWB55SjID4gcnl1dXphblwgOwor56mN5oKqID4gc2VraWFrdVwgOwor6Ymb55u0ID4gZW5jaG9rdVwgOwor5oKq562WID4gYWt1c2FrdVwgOwor6bqm56eLID4gbXVnaWFraVwgOwor6YeR6J6NID4ga2luJyd5dXVcIDsKK+W/hemcgCA+IGhpdHN1anVcIDsKK+aGguaEgSA+IHl1dXNodXVcIDsKK+elnue1jCA+IHNoaW5rZWlcIDsKK+W/g+mciiA+IHNoaW5yZWlcIDsKK+aEn+azoyA+IGthbmt5dXVcIDsKK+WPjuimpyA+IHNodXVyYW5cIDsKK+WQjOiInyA+IGRvdXNodXVcIDsKK+aDh+edpiA+IHRvbmJva3VcIDsKK+a1t+a3sSA+IGthaXNoaW5cIDsKK+ibruWigyA+IGJhbmt5b3VcIDsKK+WPjeimhiA+IGhhbnB1a3VcIDsKK+emj+ebuCA+IGZ1a3Vzb3VcIDsKK+eqgeWmgiA+IHRvdHN1am9cIDsKK+a2suaZtiA+IGVraXNob3VcIDsKK+WQjOiFuSA+IGRvdWZ1a3VcIDsKK+a1t+a1gSA+IGthaXJ5dXVcIDsKK+WQhOiIrCA+IGtha3VoYW5cIDsKK+a4rOWcsCA+IHNva3VjaGlcIDsKK+aGguW/gyA+IHl1dXNoaW5cIDsKK+epjeW8iiA+IHNla2loZWlcIDsKK+iZmualrSA+IGt5b2d5b3VcIDsKK+ayueiPnCA+IGFidXJhbmFcIDsKK+WNiumhjSA+IGhhbmdha3VcIDsKK+axuuitsCA+IGtldHN1Z2lcIDsKK+mJhOefsyA+IHRlc3Nla2lcIDsKK+W/q+mBqSA+IGthaXRla2lcIDsKK+epjeW5tCA+IHNla2luZW5cIDsKK+a1uOawtCA+IHNoaW5zdWlcIDsKK+mFt+mBhyA+IGtva3VndXVcIDsKK+enmOaxuiA+IGhpa2V0c3VcIDsKK+W/q+mAnyA+IGthaXNva3VcIDsKK+m7meeEtiA+IG1va3VuZW5cIDsKK+mFqumFuCA+IHJha3VzYW5cIDsKK+elnuerpSA+IHNoaW5kb3VcIDsKK+mHieiWrCA+IHl1dXlha3VcIDsKK+WUseWwjiA+IHNob3Vkb3VcIDsKK+WRiuefpSA+IGtva3VjaGlcIDsKK+aApeihjCA+IGt5dXVrb3VcIDsKK+WVhuWkpyA+IHNob3VkYWlcIDsKK+a3seWxpCA+IHNoaW5zb3VcIDsKK+WVhuWjsiA+IHNob3ViYWlcIDsKK+aBi+iNiSA+IGtvaWd1c2FcIDsKK+aFtuW8lCA+IGtlaWNob3VcIDsKK+mFoumFuCA+IHNha3VzYW5cIDsKK+axgumBkyA+IGt5dXVkb3VcIDsKK+a1puazoiA+IHVyYW5hbWlcIDsKK+iWrOexoCA+IHlha3Vyb3VcIDsKK+a4ieWkliA+IHNob3VnYWlcIDsKK+m7kueCuSA+IGtva3V0ZW5cIDsKK+m7kueCrSA+IGtva3V0YW5cIDsKK+awtOmHjyA+IHN1aXJ5b3VcIDsKK+epuuWcpyA+IGt1dWF0c3VcIDsKK+eni+awtCA+IHNodXVzdWlcIDsKK+WPs+iFlSA+IG1pZ2l1ZGVcIDsKK+WPo+iMtiA+IGt1Y2hpamFcIDsKK+WTgeagvCA+IGhpbmtha3VcIDsKK+W+kumjnyA+IHRvc2hva3VcIDsKK+mFqui+siA+IHJha3Vub3VcIDsKK+iWhOiCiSA+IHVzdW5pa3VcIDsKK+WPrOiHtCA+IHNob3VjaGlcIDsKK+WMl+muriA+IGhva3VzZW5cIDsKK+m7tOavkiA+IGJhaWRva3VcIDsKK+m7hOeGnyA+IGtvdWp1a3VcIDsKK+WRqueJqSA+IGp1YnV0c3VcIDsKK+W/q+i2syA+IGthaXNva3VcIDsKK+WPjuiUtSA+IHNodXV6b3VcIDsKK+WPpOiJsiA+IGtvc2hva3VcIDsKK+a1tOanvSA+IHlva3Vzb3VcIDsKK+a2vOaEnyA+IHJ5b3VrYW5cIDsKK+mHkeiJsiA+IGtvbmppa2lcIDsKK+mFkumHjyA+IHNodXJ5b3VcIDsKK+aFouW/gyA+IG1hbnNoaW5cIDsKK+WQjOe0miA+IGRvdWt5dXVcIDsKK+WOn+iouyA+IGdlbmNodXVcIDsKK+aEgeatjiA+IHNodXV0YW5cIDsKK+WPo+iHrSA+IGtvdXNodXVcIDsKK+Wah+OAhSA+IGtha2tha3VcIDsKK+aCqueXhyA+IGFrdXNob3VcIDsKK+aCqueXhSA+IGFrdWJ5b3VcIDsKK+WMlumqqCA+IGtha290c3VcIDsKK+mHjOiKiyA+IHNhdG9pbW9cIDsKK+mGnOihjCA+IHNodXVrb3VcIDsKK+WTqOaIkiA+IHNob3VrYWlcIDsKK+WPjeiQvSA+IGhhbnJha3VcIDsKK+WNiumQmCA+IGhhbnNob3VcIDsKK+iWrOeoriA+IHlha3VzaHVcIDsKK+WPo+iFuSA+IGtvdWZ1a3VcIDsKK+W/g+mFlCA+IHNoaW5zdWlcIDsKK+W/g+mFjSA+IHNoaW5wYWlcIDsKK+emgeeNhCA+IGtpbmdva3VcIDsKK+awt+i8qiA+IGh5b3VyaW5cIDsKK+aEn+acjSA+IGthbnB1a3VcIDsKK+avkumtmiA+IGRva3VneW9cIDsKK+emgeeMnyA+IGtpbnJ5b3VcIDsKK+mHjeiHoyA+IGp1dXNoaW5cIDsKK+WWhOS6uiA+IHplbicnbmluXCA7CivlkLjnm6QgPiBreXV1YmFuXCA7Civom67li4cgPiBiYW4nJ3l1dVwgOwor5rex5aWlID4gc2hpbicnb3VcIDsKK+WQhOe0mSA+IGtha3VzaGlcIDsKK+engeassiA+IHNoaXlva3VcIDsKK+m5v+egpiA+IHJva3VzYWlcIDsKK+elieemjyA+IHNoaWZ1a3VcIDsKK+WPm+iHoyA+IGhhbnNoaW5cIDsKK+ekvueroCA+IHNoYXNob3VcIDsKK+eqruS5jyA+IGt5dXVib3VcIDsKK+a1uOafkyA+IHNoaW5zZW5cIDsKK+mLs+W3pSA+IGNodXVrb3VcIDsKK+a3seWknCA+IHNoaW4nJ3lhXCA7Civnorroqo0gPiBrYWt1bmluXCA7CivmuJvlj44gPiBnZW5zaHV1XCA7CivolqznpLwgPiB5YWt1cmVpXCA7CivpjKjlnLAgPiBieW91Y2hpXCA7CivoloTnuIEgPiB1c3ViZXJpXCA7CivmsrvnuL4gPiBjaGlzZWtpXCA7CivmtojmlaMgPiBzaG91c2FuXCA7CivnpajnlLAgPiBoeW91ZGVuXCA7CivnorroqIAgPiBrYWt1Z2VuXCA7CivoloTntbkgPiB1c3VnaW51XCA7Civlv6voq74gPiBrYWlkYWt1XCA7CivljJfpoqggPiBob2t1ZnV1XCA7CivoloTntaYgPiBoYWtreXV1XCA7Civph43ogbQgPiBqdXVjaG91XCA7CivllYblk4EgPiBzaG91aGluXCA7Civlv6voqr8gPiBrYWljaG91XCA7Civpipjmn4QgPiBtZWlnYXJhXCA7CivmgqrnjokgPiBha3VkYW1hXCA7Civnp5jmm7IgPiBoaWt5b2t1XCA7CivoloTntJkgPiB1c3VnYW1pXCA7CivoloTntIUgPiB1c3ViZW5pXCA7Civnp7Dmj5ogPiBzaG91eW91XCA7Civok5rphbggPiBzaHV1c2FuXCA7CivmuIvlkbMgPiBzaGlidW1pXCA7CivljZfpgLIgPiBuYW5zaGluXCA7Civpu5nmraIgPiBtb2t1c2hpXCA7CivpipjmnKggPiBtZWlib2t1XCA7CivpibHmr5IgPiBrb3Vkb2t1XCA7CivlkI3np7AgPiBtZWlzaG91XCA7CivllYblj7cgPiBzaG91Z291XCA7CivmgKjoibIgPiBlbnNob2t1XCA7CivmtYHmsZcgPiByeXV1a2FuXCA7CivljJfpnaIgPiBob2t1bWVuXCA7CivmgonnmoYgPiBzaGlra2FpXCA7CivmtYHmsLQgPiByeXV1c3VpXCA7CivnqoHlhYggPiB0b3NzYWtpXCA7CivmtLvms4EgPiBrYWtreW91XCA7Civph4jnvqkgPiBzaGFrdWdpXCA7CivlvqnphY0gPiBmdWt1aGFpXCA7Civlv6DoqqAgPiBjaHV1c2VpXCA7Civljp/omasgPiBnZW5jaHV1XCA7CivlkITnqK4gPiBrYWt1c2h1XCA7Civlj7LnsY0gPiBzaGlzZWtpXCA7CivlkInnpaUgPiBraXNzaG91XCA7CivnoavphbggPiByeXV1c2FuXCA7Civmh5DkuK0gPiBrYWljaHV1XCA7CivljZjouqsgPiB0YW5zaGluXCA7CivlvLHpvaIgPiBqYWt1cmVpXCA7CivphK3ph40gPiB0ZWljaG91XCA7Civlv6DoqIAgPiBjaHV1Z2VuXCA7Civms6Hnm5sgPiBhd2Ftb3JpXCA7CivljJfpmZAgPiBob2t1Z2VuXCA7CivljYfpgbcgPiBzaG91c2VuXCA7Civnp4vmmbQgPiBha2liYXJlXCA7CivnqbTlh7kgPiBhbmFib2tvXCA7Civph5HntrIgPiBrYW5hYW1pXCA7Civlj7fnrJsgPiBnb3V0ZWtpXCA7Civom4flj6MgPiBqYWd1Y2hpXCA7Civpu5LmqoAgPiBrb2t1dGFuXCA7Civmt5HlpbMgPiBzaHVrdWpvXCA7CivmhoLlm70gPiB5dXVrb2t1XCA7CivmtJfmv68gPiBzZW50YWt1XCA7CivlkITnpL4gPiBrYWt1c2hhXCA7Civlj4znv7wgPiBzb3V5b2t1XCA7CivljYrovrIgPiBoYW4nJ25vdVwgOwor56aB5ryBID4ga2lucnlvdVwgOwor5Y+j57SEID4ga291eWFrdVwgOwor5riF5YudID4gc2Vpc2hvdVwgOwor6YiN55ebID4gZG9udHN1dVwgOwor56eB5pyNID4gc2hpZnVrdVwgOwor5Y+j57OnID4ga291cnlvdVwgOwor6YeR57SNID4ga2luJydub3VcIDsKK+WMl+mWgCA+IGtpdGFtb25cIDsKK+WQuOeJqSA+IHN1aW1vbm9cIDsKK+WOmuiWhCA+IGtvdWhha3VcIDsKK+mJsealrSA+IGtvdWd5b3VcIDsKK+WNgemAsiA+IGppc3NoaW5cIDsKK+iWrOeUqCA+IHlha3V5b3VcIDsKK+awuOiooyA+IGVpa2V0c3VcIDsKK+epjeWWhCA+IHNla2l6ZW5cIDsKK+mKgOadjyA+IGdpbicnbmFuXCA7CivmuKHku48gPiB0b2Z1dHN1XCA7CivnoZ3phbggPiBzaG91c2FuXCA7Civno4rokL0gPiByYWlyYWt1XCA7CivomZrlv4MgPiBreW9zaGluXCA7CivmuJvkvZwgPiBnZW5zYWt1XCA7CivljYrouqsgPiBoYW5zaGluXCA7Civmg4Xms4EgPiBqb3VreW91XCA7CivmtJfmu4wgPiBzZW5kZWtpXCA7CivmsLfop6MgPiBoeW91a2FpXCA7CivlkI3nm64gPiBtZWltb2t1XCA7Civlj6Xnr4AgPiBrdXNldHN1XCA7CivlkIznnIEgPiBkb3VzaG91XCA7CivmtKXms6IgPiB0c3VuYW1pXCA7Civlj47nua0gPiBzaHV1a2VuXCA7Civms5XnmoQgPiBob3V0ZWtpXCA7Civms4nnn7MgPiBzZW5zZWtpXCA7CivmspbnuIQgPiBva2luYXdhXCA7CivmsJHouIogPiBtaW4nJ3lvdVwgOwor6Jma5byxID4ga3lvamFrdVwgOwor5Y2U6LObID4ga3lvdXNhblwgOwor5Y2z6KO9ID4gc29rdXNlaVwgOwor6YeR566UID4ga2lucGFrdVwgOwor5Y+k562GID4ga29oaXRzdVwgOwor5b6M6YecID4gYXRvZ2FtYVwgOwor5rex5Y6aID4gc2hpbmtvdVwgOwor5b6h6Ly/ID4gbWlrb3NoaVwgOwor6YeN56+kID4ganV1dG9rdVwgOwor5re75YmKID4gdGVuc2FrdVwgOwor6YeR562WID4ga2luc2FrdVwgOwor6Ymx5p+xID4ga291Y2h1dVwgOwor6YeR562LID4ga2luc3VqaVwgOwor5b6X6YGTID4gdG9rdWRvdVwgOwor56Sm55+zID4ga291c2VraVwgOwor6YO36ZaiID4ga3lvdWthblwgOwor6YeN566xID4ganV1YmFrb1wgOwor5ZCE55yMID4ga2FrdWtlblwgOwor5Y6p6IiOID4ga3l1dXNoYVwgOwor5Y+v56WdID4ga2FzaGlrdVwgOwor5ZCM55eFID4gZG91YnlvdVwgOwor5oOF5qyyID4gam91eW9rdVwgOwor5Y+O57SNID4gc2h1dW5vdVwgOwor56m65LitID4ga3V1Y2h1dVwgOwor6buS5p2/ID4ga29rdWJhblwgOwor56We54GvID4gc2hpbnRvdVwgOwor6JeB54GwID4gd2FyYWJhaVwgOwor5ZCM55S6ID4gZG91Y2hvdVwgOwor6Jmr5a6zID4gY2h1dWdhaVwgOwor5oSf5b+cID4ga2FuJydub3VcIDsKK+WVhuS8miA+IHNob3VrYWlcIDsKK+aEn+W/gyA+IGthbnNoaW5cIDsKK+WNmOiqvyA+IHRhbmNob3VcIDsKK+mKg+aSgyA+IGp1dWdla2lcIDsKK+m7hOaioiA+IGtvdXNob3VcIDsKK+aEn+W+lyA+IGthbnRva3VcIDsKK+aDh+aouCA+IHRvbmJva3VcIDsKK+efs+mvmyA+IGlzaGlkYWlcIDsKK+mGnOiBniA+IHNodXVidW5cIDsKK+WVhuS6uiA+IHNob3VuaW5cIDsKK+W+jOmAuCA+IGtvdWl0c3VcIDsKK+W+jOmAsiA+IGtvdXNoaW5cIDsKK+mHjeepjSA+IGp1dXNla2lcIDsKK+WPsOefsyA+IGRhaWlzaGlcIDsKK+WNk+irliA+IHRha3Vyb25cIDsKK+auv+mWoyA+IGRlbmtha3VcIDsKK+iWhOeariA+IHVzdWthd2FcIDsKK+WOmuiHvCA+IGF0c3V1c3VcIDsKK+WNmuimpyA+IGhha3VyYW5cIDsKK+WNmOinkiA+IHRhbmtha3VcIDsKK+iZjuW3uyA+IHRvcmFrYW5cIDsKK+W9k+mZkCA+IHRvdWdpcmlcIDsKK+epjeWIhiA+IHNla2lidW5cIDsKK+aChOeEtiA+IHNob3V6ZW5cIDsKK+awkeisoSA+IG1pbicneW91XCA7CivpjK/kubEgPiBzYWt1cmFuXCA7Civpu5LmlpEgPiBrb2t1aGFuXCA7CivmtYHmmJ8gPiByeXV1c2VpXCA7CivmsrvnmYIgPiBjaGlyeW91XCA7Civlj7LnmoQgPiBzaGl0ZWtpXCA7Civmt7fkv6EgPiBrb25zaGluXCA7Civpg6HplbcgPiBndW5jaG91XCA7CivljZjopIcgPiB0YW5wdWt1XCA7Civmrovpq5ggPiB6YW5kYWthXCA7CivmgJ3ntKIgPiBzaGlzYWt1XCA7Civlj4rnrKwgPiBreXV1ZGFpXCA7Civnp4DmiY0gPiBzaHV1c2FpXCA7CivpiYTmqYsgPiB0ZWtreW91XCA7CivlvLfpoqggPiBreW91ZnV1XCA7Civolqrngq0gPiBzaGludGFuXCA7Civmt7fkvZwgPiBrb25zYWt1XCA7Civph5Hnn7MgPiBraW5zZWtpXCA7CivpiYTmp4wgPiB0ZXR0c3VpXCA7Civlj47nqI4gPiBzaHV1emVpXCA7Civmg5zmlZcgPiBzZWtpaGFpXCA7CivnqLLlj6IgPiBpbmFtdXJhXCA7Civnp4Hmhb4gPiBzaGl5b2t1XCA7Civnoazoqr8gPiBrb3VjaG91XCA7CivljYrop5IgPiBoYW5rYWt1XCA7Civlvavph5EgPiBjaG91a2luXCA7Civmr5LphZIgPiBkb2t1c2h1XCA7Civmta7lvasgPiB1a2lib3JpXCA7Civnp4vmgJ0gPiBzaHV1c2hpXCA7CivlvozotrMgPiBhdG9hc2hpXCA7CivljJfovrogPiBob2t1aGVuXCA7CivllK/ku4ogPiB0YWRhaW1hXCA7Civph6Pnk7YgPiB0c3VydWJlXCA7CivmhZ/lk60gPiBkb3Vrb2t1XCA7Civmg5HmmJ8gPiB3YWt1c2VpXCA7CivljYropZ8gPiBoYW4nJ2VyaVwgOwor5oOH5py0ID4gdG9uYm9rdVwgOwor5q276a2EID4gc2hpaGFrdVwgOwor5by36Z2tID4ga3lvdWppblwgOwor5ZC45rC0ID4ga3l1dXN1aVwgOwor56K66IGeID4ga2FrdWJ1blwgOwor5oGL55eFID4ga29peWFtaVwgOwor6YeR55qEID4ga2ludGVraVwgOwor5rex5LqkID4gc2hpbmtvdVwgOwor5ZGo5piTID4gc2h1dWVraVwgOwor55+v6aKoID4ga3lvdWZ1dVwgOwor5oW25YWGID4ga2VpY2hvdVwgOwor5Y2K6KKWID4gaGFuc29kZVwgOwor5ZC45q67ID4gc3VpZ2FyYVwgOwor6YO36YKRID4ga3lvdXl1dVwgOwor6Jmr5Z6CID4gY2h1dXN1aVwgOwor5ZGo5peLID4gc2h1dXNlblwgOwor5q2j6bWgID4gc2Vpa29rdVwgOwor5rCR6KGGID4gbWluc2h1dVwgOwor5rW35bOhID4ga2Fpa3lvdVwgOwor6YmE5p+1ID4gdGVzc2FrdVwgOwor6YmE5p+xID4gdGV0Y2h1dVwgOwor5q+O6YCxID4gbWFpc2h1dVwgOwor56eB5b+DID4gc2hpc2hpblwgOwor56We5q6/ID4gc2hpbmRlblwgOwor5q6L6aGNID4gemFuZ2FrdVwgOwor5oGv54G9ID4gc29rdXNhaVwgOwor5byx6Zu7ID4gamFrdWRlblwgOwor6JS157GzID4ga3VyYW1haVwgOwor5rW35bGxID4gdW1peWFtYVwgOwor5q6L6Z+/ID4gemFua3lvdVwgOwor5rSL5qW9ID4geW91Z2FrdVwgOwor56mA5YCJID4ga29rdXNvdVwgOwor6YeN55eHID4ganV1c2hvdVwgOwor6YeN55eFID4ganV1YnlvdVwgOwor6Jas5rayID4geWFrdWVraVwgOwor5rW35bCGID4ga2Fpc2hvdVwgOwor6JaE54mpID4gdXN1bW9ub1wgOwor5Y6f57SaID4gZ2Vua3l1dVwgOwor6YeN55WzID4gY2hvdWpvdVwgOwor6JaE54mHID4gaGFrdWhlblwgOwor6buZ5oOzID4gbW9rdXNvdVwgOwor6YeP55SjID4gcnlvdXNhblwgOwor5rOl5rW3ID4gZG9yb3VtaVwgOwor6by75ZSEID4gaGFuYXV0YVwgOwor5ZCm5rG6ID4gaGlrZXRzdVwgOwor5b6h6KKLID4gb2Z1a3Vyb1wgOwor5oCq55+zID4ga2Fpc2VraVwgOwor5rC06Iq4ID4gbWl6dWdlaVwgOwor6YeN55SoID4gY2hvdXlvdVwgOwor6JC96aaWID4gcmFrdXNodVwgOwor5Y2z6IiIID4gc29ra3lvdVwgOwor56eY5a+GID4gaGltaXRzdVwgOwor5ZKr5bC6ID4gc2hpc2VraVwgOwor5b2T6YePID4gdG91cnlvdVwgOwor5Y+O55ujID4gc2h1dWthblwgOwor5Y216IacID4gcmFubWFrdVwgOwor5Y+N55uuID4gaGFubW9rdVwgOwor5rC06ImyID4gbWl6dWlyb1wgOwor56Cy6LqrID4gaG91c2hpblwgOwor5Y+O55uKID4gc2h1dWVraVwgOwor56We5qipID4gc2hpbmtlblwgOwor5Y6f57GNID4gZ2Vuc2VraVwgOwor5oKy5puyID4gaGlreW9rdVwgOwor6JWD56WeID4gYmFuc2hpblwgOwor6Yed54q2ID4gaGFyaWpvdVwgOwor5q6J6ZujID4ganVuJyduYW5cIDsKK+W+i+iqniA+IHJpdHN1Z29cIDsKK+mKg+W6iiA+IGp1dXNob3VcIDsKK+m7meaAnSA+IG1va3VzaGlcIDsKK+azqOawtCA+IGNodXVzdWlcIDsKK+WPrOeKtiA+IHNob3Vqb3VcIDsKK+m7meW/tSA+IG1va3VuZW5cIDsKK+aBi+eMqyA+IGtvaW5la29cIDsKK+mBqem9oiA+IHRla2lyZWlcIDsKK+atpumqqCA+IGJ1a290c3VcIDsKK+WSjOW8jyA+IHdhc2hpa2lcIDsKK+iZnOWbmiA+IHJ5b3NodXVcIDsKK+a1geaEnyA+IHJ5dXVrYW5cIDsKK+mKmuWtkCA+IGNob3VzaGlcIDsKK+emgeaVmSA+IGtpbmt5b3VcIDsKK+WNmOiRiSA+IHRhbicneW91XCA7Civpu5nlvpMgPiBtb2t1anV1XCA7Civph5HnjokgPiBraW50YW1hXCA7CivpioDluZUgPiBnaW5tYWt1XCA7CivolqrmsLQgPiBzaGluc3VpXCA7Civnn6LpnaIgPiB5YW9tb3RlXCA7CivnqI7lj44gPiB6ZWlzaHV1XCA7CivnqLLkvZwgPiBpbmFzYWt1XCA7CivmtIvmnI0gPiB5b3VmdWt1XCA7Civnpa3mnI0gPiBzYWlmdWt1XCA7CivmgKfnmoQgPiBzZWl0ZWtpXCA7Civlj47nlKggPiBzaHV1eW91XCA7CivljbDogokgPiBpbicnbmlrdVwgOwor5oCn55mWID4gc2VpaGVraVwgOwor6YWS6IiIID4gc2h1a3lvdVwgOwor5byB6aeBID4gYmVucGFrdVwgOwor6Jit5a2mID4gcmFuZ2FrdVwgOwor5ZCN5rWBID4gbWVpcnl1dVwgOwor5oG15rKiID4ga2VpdGFrdVwgOwor5b2i6LehID4ga2Vpc2VraVwgOwor5ZCM5rWBID4gZG91cnl1dVwgOwor6YeN54qvID4gY2hvdWhhblwgOwor56CC6YmEID4gc2F0ZXRzdVwgOwor5oCn55eFID4gc2VpYnlvdVwgOwor5ZGK5paHID4ga29rdWJ1blwgOwor5b+D6IeTID4gc2hpbnpvdVwgOwor5byU6Zu7ID4gY2hvdWRlblwgOwor6JC96Zu3ID4gcmFrdXJhaVwgOwor5Y+M55KnID4gc291aGVraVwgOwor5oKq5pa5ID4gYWt1Z2F0YVwgOwor6Ymx5bqKID4ga291c2hvdVwgOwor5ZCI5rWBID4gZ291cnl1dVwgOwor6JC96ZuBID4gcmFrdWdhblwgOwor5rWB5by+ID4gcnl1dWRhblwgOwor56S+5q20ID4gc2hhcmVraVwgOwor56eB5a6FID4gc2hpdGFrdVwgOwor6JC96Zm9ID4gcmFrdXlvdVwgOwor6YeN54iGID4ganV1YmFrdVwgOwor56K6562UID4ga2FrdXRvdVwgOwor6bOp6aaWID4ga3l1dXNodVwgOwor56eB5a2mID4gc2hpZ2FrdVwgOwor5Y+C55S7ID4gc2Fua2FrdVwgOwor5Yun6L6yID4ga2FuJydub3VcIDsKK+WOn+elqCA+IGdlbnB5b3VcIDsKK+ato+miqCA+IHNob3VmdXVcIDsKK+aApeeUqCA+IGt5dXV5b3VcIDsKK+m7kuW4ryA+IGt1cm9vYmlcIDsKK+WLlemHjyA+IGRvdXJ5b3VcIDsKK+WTqOWFtSA+IHNob3VoZWlcIDsKK+mKgOWwhiA+IGdpbnNob3VcIDsKK+WPmeeItSA+IGpvc2hha3VcIDsKK+W/g+iDhiA+IHNoaW50YW5cIDsKK+aDheaFviA+IGpvdXlva3VcIDsKK+WMl+ilvyA+IGhva3VzZWlcIDsKK+a1tOWgtCA+IHlva3Vqb3VcIDsKK+W9ouixoSA+IGtlaXNob3VcIDsKK+awl+iJsiA+IGtpc2hva3VcIDsKK+W/g+iCnSA+IHNoaW5rYW5cIDsKK+W/oOe0lCA+IGNodXVqdW5cIDsKK+ejkOefsyA+IGJhbmpha3VcIDsKK+elqOaVsCA+IGh5b3VzdXVcIDsKK+WPo+eBqyA+IGt1Y2hpYmlcIDsKK+WPlOeItiA+IHNodWt1ZnVcIDsKK+WPjeeLrCA+IGhhbmRva3VcIDsKK+engeWovCA+IHNoaXNob3VcIDsKK+azpeajkiA+IGRvcm9ib3VcIDsKK+eni+WjsCA+IHNodXVzZWlcIDsKK+elnuaYjiA+IHNoaW5tZWlcIDsKK+axgeeyiSA+IHNoaXJ1a29cIDsKK+W8semFuCA+IGpha3VzYW5cIDsKK+a1t+WbvSA+IGthaWtva3VcIDsKK+iUteebuCA+IHpvdXNob3VcIDsKK+WNg+iNiSA+IGNoaWd1c2FcIDsKK+WLmOmAsiA+IGthbnNoaW5cIDsKK+WNmuiBniA+IGhha3VidW5cIDsKK+WQq+aciSA+IGdhbicneXV1XCA7Civlj43niakgPiB0YW5tb25vXCA7Civljp/nn7MgPiBnZW5zZWtpXCA7CivljZzogIUgPiBib2t1c2hhXCA7Civps6XpoZ4gPiBjaG91cnVpXCA7Civnp7Dlj7cgPiBzaG91Z291XCA7CivlvIHpm6MgPiBiZW4nJ25hblwgOwor5Y2z57SNID4gc29rdW5vdVwgOwor56S+5qWtID4gc2hhZ3lvdVwgOwor5rCX6ISIID4ga2lteWFrdVwgOwor5Y+35rOjID4gZ291a3l1dVwgOwor56S85qW9ID4gcmVpZ2FrdVwgOwor56We5pS/ID4gc2hpbnNlaVwgOwor55+t6YedID4gdGFuc2hpblwgOwor5q+N6KaqID4gaGFoYW95YVwgOwor6YW356iOID4ga29rdXplaVwgOwor56e75Ye6ID4gaXNodXRzdVwgOwor5b6z6IKyID4gdG9rdWlrdVwgOwor56OB55+zID4gamlzaGFrdVwgOwor5q6L6YW3ID4gemFua29rdVwgOwor5rOV5qW9ID4gaG91cmFrdVwgOwor5Y+N54WnID4gaGFuc2hvdVwgOwor5raI5Y67ID4gc2hvdWt5b1wgOwor6Yac55S3ID4gYnVvdG9rb1wgOwor56C06KOCID4gaGFyZXRzdVwgOwor5rC057K+ID4gc3Vpc2hvdVwgOwor5ZGo5bm0ID4gc2h1dW5lblwgOwor6JSR56ewID4gYmVzc2hvdVwgOwor5raI5Y2wID4ga2VzaGlpblwgOwor5ZCM5qWtID4gZG91Z3lvdVwgOwor56eB5aG+ID4gc2hpanVrdVwgOwor5Yun6LOeID4ga2Fuc2hvdVwgOwor5oKq5oivID4gaXRhenVyYVwgOwor5YuV6Lu4ID4gZG91amlrdVwgOwor5rWF5a2mID4gc2VuZ2FrdVwgOwor56Kn56m6ID4gaGVraWt1dVwgOwor5YqI6aCtID4gaGVraXRvdVwgOwor5Y6a55u4ID4ga291c2hvdVwgOwor5Yqb6ZeYID4gcmlraXRvdVwgOwor55+z6YCgID4gc2VraXpvdVwgOwor5rK55rCXID4gYWJ1cmFrZVwgOwor6Jit5Zu9ID4gcmFua29rdVwgOwor5b+D57eSID4gc2hpbmNob1wgOwor5Y+v5rG6ID4ga2FrZXRzdVwgOwor5YuH6YCyID4geXV1c2hpblwgOwor5Y2z562UID4gc29rdXRvdVwgOwor5byx6LypID4gamFrdWhhaVwgOwor6YmE5b+DID4gdGVzc2hpblwgOwor5q+b6JmrID4ga2VtdXNoaVwgOwor5byU6YqDID4gY2hvdWp1dVwgOwor5Y+C54WnID4gc2Fuc2hvdVwgOwor5oGL5rKzID4ga29pa2F3YVwgOwor6YWN57WmID4gaGFpa3l1dVwgOwor5ZCM5qC8ID4gZG91a2FrdVwgOwor5rOo5paHID4gY2h1dW1vblwgOwor5Y+x5q2jID4gc2hpc3NlaVwgOwor6Jas5pa5ID4geWFrdWhvdVwgOwor5rS75a2XID4ga2F0c3VqaVwgOwor5Y6f55SxID4gZ2VuJyd5dXVcIDsKK+WTgOWIpSA+IGFpYmV0c3VcIDsKK+W+kuiKsSA+IGFkYWJhbmFcIDsKK+mAsem9oSA+IHNodXVyZWlcIDsKK+ekvOacjSA+IHJlaWZ1a3VcIDsKK+mBuOmbhiA+IHNlbnNodXVcIDsKK+aBi+awtCA+IGtvaW1penVcIDsKK+WTgOWIhyA+IGFpc2V0c3VcIDsKK+WQiOagvCA+IGdvdWtha3VcIDsKK+aEgeWYhiA+IHNodXV0YW5cIDsKK+ekpualrSA+IGtvdWd5b3VcIDsKK+a1t+WOnyA+IHVuYWJhcmFcIDsKK+m6u+WxkSA+IGFzYWt1enVcIDsKK+WPpOaxoCA+IGZ1cnVpa2VcIDsKK+m2j+iCiSA+IGtlaW5pa3VcIDsKK+azleacjSA+IGhvdWZ1a3VcIDsKK+WLmOiyrCA+IGthbnNla2lcIDsKK+aEmuWKoyA+IGd1cmV0c3VcIDsKK+a2iOWFiSA+IHNob3Vrb3VcIDsKK+WNmOe0miA+IHRhbmt5dXVcIDsKK+WQjeacqCA+IG1laWJva3VcIDsKK+efrei7uCA+IHRhbmppa3VcIDsKK+WLh+i6jSA+IHl1dXlha3VcIDsKK+mGnOeKtiA+IHNodXVqb3VcIDsKK+WQhOagoSA+IGtha3Vrb3VcIDsKK+WPouawtyA+IHNvdWh5b3VcIDsKK+aBi+atuyA+IGtvaWppbmlcIDsKK+WLp+iqmCA+IGthbicneXV1XCA7CivmgqrlvrMgPiBha3V0b2t1XCA7CivmsJfntbYgPiBraXpldHN1XCA7Civpu5Llo4cgPiBrb2t1dGFuXCA7Civlv4PnrpcgPiBzaGluemFuXCA7CivmsojmvrEgPiBjaGluZGVuXCA7CivlvLfosaogPiBreW91Z291XCA7CivmgqrlvbkgPiBha3V5YWt1XCA7CivliojplosgPiBoZWtpa2FpXCA7CivmgqrlvaIgPiBha3VnYXRhXCA7Civlv4PnrYsgPiBzaGlua2luXCA7Civlj6TmrYwgPiBmdXJ1dXRhXCA7CivokL3pgbggPiByYWt1c2VuXCA7CivmsojmvZwgPiBjaGluc2VuXCA7CivnpZ7mha4gPiBzaGlucnlvXCA7Civlia/poYwgPiBmdWt1ZGFpXCA7CivlvI/pg6ggPiBzaGlraWJ1XCA7CivlvJPpgZMgPiBreXV1ZG91XCA7CivmraPpipggPiBzaG91bWVpXCA7CivljZznra4gPiBib2t1emVpXCA7CivlkYLlvosgPiByb3JldHN1XCA7CivokYnouqsgPiB5b3VzaGluXCA7CivlvpDohIggPiBqb215YWt1XCA7CivmhJ/lgrcgPiBrYW5zaG91XCA7CivnoqfnnLwgPiBoZWtpZ2FuXCA7CivlvozohbkgPiBhdG9iYXJhXCA7CivmtIvlvJMgPiB5b3VreXV1XCA7CivnnqzplpMgPiBzaHVua2FuXCA7Civnn63otrMgPiB0YW5zb2t1XCA7CivnpLrmlZkgPiBzaGlreW91XCA7Civljb/nm7ggPiBrZWlzaG91XCA7CivmrbTpgYogPiByZWtpeXV1XCA7Civmsojmu54gPiBjaGludGFpXCA7CivlkIzml48gPiBkb3V6b2t1XCA7CivlibPpnZIgPiBpcmV6dW1pXCA7CivlvazolJogPiBoaW51dHN1XCA7CivnpoXlr7ogPiB6ZW5kZXJhXCA7CivlvozohJogPiBhdG9hc2hpXCA7CivmgJ3mva4gPiBzaGljaG91XCA7Civmta7lipsgPiBmdXJ5b2t1XCA7Civno6jmu4UgPiBtYW1ldHN1XCA7Civmrbvou7ggPiBzaGlqaWt1XCA7CivmraPph5EgPiBzaG91a2luXCA7CivmtYHln58gPiByeXV1aWtpXCA7CivnpoXlrpcgPiB6ZW5zaHV1XCA7CivptrTnp5EgPiB0c3VydWthXCA7Civol6nlraYgPiBoYW5nYWt1XCA7Civmga3mlawgPiBreW91a2VpXCA7CivmsY7nlKggPiBoYW4nJ3lvdVwgOwor5oCl5ribID4ga3l1dWdlblwgOwor56We5oCnID4gc2hpbnNlaVwgOwor5oKU5oKbID4ga2Fpc2h1blwgOwor56aF5a2mID4gemVuZ2FrdVwgOwor5Y+U5q+NID4gc2h1a3Vib1wgOwor5byP6L6eID4gc2hpa2lqaVwgOwor56eA5ZCfID4gc2h1dWdpblwgOwor6YGO6aOfID4ga2FzaG9rdVwgOwor5Y6f54iGID4gZ2VuYmFrdVwgOwor6bOl6YqDID4gY2hvdWp1dVwgOwor5YmN6auqID4gbWFlZ2FtaVwgOwor5ZKA5Zq8ID4gc29zaGFrdVwgOwor56ef5YCfID4gc29zaGFrdVwgOwor5q666JmrID4gc2F0Y2h1dVwgOwor5Yuk6KGMID4gZ29uZ3lvdVwgOwor5oKW5b6zID4gaGFpdG9rdVwgOwor5q+S6I2JID4gZG9rdXNvdVwgOwor5Y2155m9ID4gcmFucGFrdVwgOwor56eL5YiGID4gc2h1dWJ1blwgOwor5Y+C5rSbID4gc2FucmFrdVwgOwor5ZKs5YK3ID4ga291c2hvdVwgOwor5b6L576pID4gcmljaGlnaVwgOwor56eL5Ya3ID4gc2h1dXJlaVwgOwor5by36KaBID4ga3lvdXlvdVwgOwor6YeR5qOSID4ga2FuYWJvdVwgOwor6JaE5piOID4gaGFrdW1laVwgOwor5bqn6aqoID4gemFrb3RzdVwgOwor5Ymj6ZujID4ga2VuJyduYW5cIDsKK+W+tOeojiA+IGNob3V6ZWlcIDsKK+W+qeetlCA+IGZ1a3V0b3VcIDsKK+WLheirrSA+IGNob2t1eXVcIDsKK+WKtOizgyA+IHJvdWNoaW5cIDsKK+W8seimliA+IGpha3VzaGlcIDsKK+WQiOaOjCA+IGdhc3Nob3VcIDsKK+WLheiqniA+IGNob2t1Z29cIDsKK+efreiqvyA+IHRhbmNob3VcIDsKK+WPuOaVmSA+IHNoaWt5b3VcIDsKK+ayiOauvyA+IGNoaW5kZW5cIDsKK+m1rOe/vCA+IGhvdXlva3VcIDsKK+WLheiosSA+IGNob2treW9cIDsKK+efreiplSA+IHRhbnB5b3VcIDsKK+enmOS7jyA+IGhpYnV0c3VcIDsKK+aApeatuyA+IGt5dXVzaGlcIDsKK+W8t+ihjCA+IGt5b3Vrb3VcIDsKK+aAp+assiA+IHNlaXlva3VcIDsKK+a1t+S6gCA+IHVtaWdhbWVcIDsKK+avkuiFuiA+IGRva3VzZW5cIDsKK+WPsuaWmSA+IHNoaXJ5b3VcIDsKK+awt+eUsCA+IGh5b3VkZW5cIDsKK+W/g+ecvCA+IHNoaW5nYW5cIDsKK+mCgemAsiA+IG1haXNoaW5cIDsKK+WPpOacrCA+IGZ1cnVib25cIDsKK+eiuueEtiA+IGtha3V6ZW5cIDsKK+a0i+WtpiA+IHlvdWdha3VcIDsKK+W9ueiAhSA+IHlha3VzaGFcIDsKK+aDsOWKmyA+IGRhcnlva3VcIDsKK+WPjeanmCA+IGthaXNhbWFcIDsKK+awkeemjyA+IG1pbnB1a3VcIDsKK+WJjemhjSA+IHplbmdha3VcIDsKK+a1t+S4rSA+IGthaWNodXVcIDsKK+W+jOe2miA+IGtvdXpva3VcIDsKK+WPpOabsiA+IGtva3lva3VcIDsKK+mBhemcnCA+IG9zb2ppbW9cIDsKK+WRqOWbniA+IHNodXVrYWlcIDsKK+a0m+WkliA+IHJha3VnYWlcIDsKK+WNiuelniA+IGhhbnNoaW5cIDsKK+W9k+iQvSA+IHRvdXJha3VcIDsKK+mFkueZliA+IHNodWhla2lcIDsKK+mCquiqrCA+IGphc2V0c3VcIDsKK+asoOmZpCA+IGtldHN1am9cIDsKK+awj+elniA+IHVqaWdhbWlcIDsKK+mHkeabnCA+IGtpbicneW91XCA7CivmrrXokL0gPiBkYW5yYWt1XCA7Civluqfpo58gPiB6YXNob2t1XCA7CivlkbvlkJ8gPiBzaGluZ2luXCA7CivpiYTlo4EgPiB0ZXBwZWtpXCA7Civnp4vkvZwgPiBha2lzYWt1XCA7CivljYPnp4sgPiBzZW5zaHV1XCA7CivljLrnq4sgPiBrdXJpdHN1XCA7Civlv6DniqwgPiBjaHV1a2VuXCA7CivlkITmiYAgPiBrYWt1c2hvXCA7CivliofpgZMgPiBnZWtpZG91XCA7Civmg6jliocgPiBzYW5nZWtpXCA7CivmgYvmlocgPiBrb2lidW1pXCA7CivpioPlgrcgPiBqdXVzaG91XCA7Civms5XmgqYgPiBob3VldHN1XCA7Civnn6XoppogPiBjaGlrYWt1XCA7CivpgqboqLMgPiBob3V5YWt1XCA7CivmsLTnkIMgPiBzdWlreXV1XCA7Civnp4Hkv6EgPiBzaGlzaGluXCA7CivlipvotbAgPiByaWtpc291XCA7CivmtabkurogPiB1cmFiaXRvXCA7Civlj43moLggPiBoYW5rYWt1XCA7Civlub3ps6UgPiB5dXVjaG91XCA7CivolqzluKsgPiB5YWt1c2hpXCA7CivnpZ7lrp0gPiBzaGlucG91XCA7CivnpZ7lrpggPiBzaGlua2FuXCA7CivnpZ3lrrQgPiBzaHVrdWVuXCA7CivpioDlgbQgPiBnaW5nYXdhXCA7Civlj5bmm78gPiB0b3Jpa2FlXCA7CivlvJToqZ4gPiBjaG91c2hpXCA7CivljaDnlKggPiBzZW4nJ3lvdVwgOwor5YmN6ZmzID4gemVuY2hpblwgOwor55+z6J2LID4gc2VraXJvdVwgOwor5q276KeSID4gc2hpa2FrdVwgOwor6JOs55SfID4geW9tb2dpdVwgOwor5rWB5YuVID4gcnl1dWRvdVwgOwor5Y6E54G9ID4geWFrdXNhaVwgOwor5Y+r5o+bID4ga3lvdWthblwgOwor5oCg5qWtID4gdGFpZ3lvdVwgOwor5q206KiqID4gcmVraWhvdVwgOwor5ZCM5b+DID4gZG91c2hpblwgOwor5Y6f5rOoID4gZ2VuY2h1dVwgOwor6YCG6bGXID4gZ2VraXJpblwgOwor55+l6KGMID4gY2hpZ3lvdVwgOwor5oCn5qC8ID4gc2Vpa2FrdVwgOwor5ZCM5b25ID4gZG91eWFrdVwgOwor6YW45ry/ID4gaG9venVraVwgOwor5ZCJ5b60ID4ga2l0Y2hvdVwgOwor5q206KanID4gcmVraXJhblwgOwor5rC054miID4gbWl6dXJvdVwgOwor5rC054mbID4gc3VpZ3l1dVwgOwor5ZCI5b6TID4gZ2Fzc2hvdVwgOwor5Y2K55m9ID4gaGFucGFrdVwgOwor6bOl6LKdID4gdG9yaWdhaVwgOwor5rGg5rK8ID4gY2hpc2hvdVwgOwor6YWN55CDID4gaGFpa3l1dVwgOwor5bm96ayxID4geXV1dXRzdVwgOwor5rC054iGID4gc3VpYmFrdVwgOwor5YyX57GzID4gaG9rdWJlaVwgOwor5Y2T55SoID4gdGFrdXlvdVwgOwor6JWD5qSSID4gYmFuc2hvdVwgOwor5Ym96Lu9ID4gaHlvdWtpblwgOwor5rOo5bCEID4gY2h1dXNoYVwgOwor5b6055SoID4gY2hvdXlvdVwgOwor6YWU54uCID4gc3Vpa3lvdVwgOwor5ZKO5Lq6ID4gdG9nYW5pblwgOwor6JGJ6JyCID4gaGFiYWNoaVwgOwor5b+D54y/ID4gc2hpbicnZW5cIDsKK+W+s+eUqCA+IHRva3V5b3VcIDsKK+aBsOW5hSA+IGthcHB1a3VcIDsKK+i/t+mzpSA+IG1laWNob3VcIDsKK+mAmumiqCA+IHRzdXVmdXVcIDsKK+WNgeebriA+IGp1dW1va3VcIDsKK+iWhOaDhSA+IGhha3Vqb3VcIDsKK+ato+iqvyA+IHNlaWNob3VcIDsKK+WQjOW4rSA+IGRvdXNla2lcIDsKK+WPguacnSA+IHNhbmNob3VcIDsKK+ecn+m7kiA+IG1ha2t1cm9cIDsKK+WKo+inkiA+IHJla2tha3VcIDsKK+iWrOWusyA+IHlha3VnYWlcIDsKK+aBouW+qSA+IGthaWZ1a3VcIDsKK+mAsemWkyA+IHNodXVrYW5cIDsKK+emhOWRvSA+IHJva3VtZWlcIDsKK+WPpOaLmSA+IGtvc2V0c3VcIDsKK+WIu+mZkCA+IGtva3VnZW5cIDsKK+WPjuaWgiA+IHNodXVyZW5cIDsKK+elnuWkiSA+IHNoaW5wZW5cIDsKK+awt+eCuSA+IGh5b3V0ZW5cIDsKK+W8geiovCA+IGJlbnNob3VcIDsKK+awt+eCrSA+IGh5b3V0YW5cIDsKK+atjuizniA+IHRhbnNob3VcIDsKK+WQuOWhtSA+IGt5dXVqaW5cIDsKK+WQm+WvtSA+IGt1bmNob3VcIDsKK+W5sumtmiA+IGhvc2hpdW9cIDsKK+WPjuaUryA+IHNodXVzaGlcIDsKK+WPjuaUrCA+IHNodXVyYW5cIDsKK+WQhOW6lyA+IGtha3V0ZW5cIDsKK+WNk+eQgyA+IHRha2t5dXVcIDsKK+aBkOaFjCA+IGt5b3Vrb3VcIDsKK+WPo+aJvyA+IGtvdXNob3VcIDsKK+WOs+agvCA+IGdlbmtha3VcIDsKK+iWhOW/lyA+IGhha3VzaGlcIDsKK+emgOWRiiA+IHJpbmtva3VcIDsKK+WRqOWIsCA+IHNodXV0b3VcIDsKK+axl+awtCA+IGFzZW1penVcIDsKK+WMl+erryA+IGhva3V0YW5cIDsKK+WNmOeLrCA+IHRhbmRva3VcIDsKK+WQhOW4giA+IGtha3VzaGlcIDsKK+WPjeaSgyA+IGhhbmdla2lcIDsKK+a1geS9kyA+IHJ5dXV0YWlcIDsKK+m7kuS6uiA+IGtva3VqaW5cIDsKK+W9vOeoiyA+IGFyZWhvZG9cIDsKK+ekvuWuhSA+IHNoYXRha3VcIDsKK+a1geS8miA+IHJ5dXVrYWlcIDsKK+WNiueQgyA+IGhhbmt5dXVcIDsKK+mBiumDrSA+IHl1dWtha3VcIDsKK+mBk+i+uiA+IG1pY2hpYmVcIDsKK+W6l+mVtyA+IHRlbmNob3VcIDsKK+aBkuW/gyA+IGtvdXNoaW5cIDsKK+atpuihkyA+IGJ1anV0c3VcIDsKK+aui+iPiiA+IHphbmdpa3VcIDsKK+WQjeWwhiA+IG1laXNob3VcIDsKK+ayoeaIkSA+IGJvdHN1Z2FcIDsKK+WQjOWwjyA+IGRvdXNob3VcIDsKK+a1geS6oSA+IHJ5dXVib3VcIDsKK+WInemfsyA+IGhhdHN1bmVcIDsKK+mDveeriyA+IHRvcml0c3VcIDsKK+WQjuWuriA+IGtvdWt5dXVcIDsKK+WIpemboiA+IGJldHN1cmlcIDsKK+W+k+eahCA+IGp1dXRla2lcIDsKK+WRveS4rSA+IG1laWNodXVcIDsKK+egtOeruSA+IGhhY2hpa3VcIDsKK+iSvOeZvSA+IHNvdWhha3VcIDsKK+awtOa7tCA+IHN1aXRla2lcIDsKK+mHj+aEnyA+IHJ5b3VrYW5cIDsKK+azleWtpiA+IGhvdWdha3VcIDsKK+WKh+irliA+IGdla2lyb25cIDsKK+WNkueIviA+IHNvdHN1amlcIDsKK+WKh+irhyA+IGdla2lkYW5cIDsKK+aAneaWmSA+IHNoaXJ5b3VcIDsKK+ehrOeQgyA+IGtvdWt5dXVcIDsKK+WKm+ihjCA+IHJ5b2trb3VcIDsKK+WQjOWulyA+IGRvdXNodXVcIDsKK+iVg+aXjyA+IGJhbnpva3VcIDsKK+emgeWJhyA+IGtpbnNva3VcIDsKK+mBuOiplSA+IHNlbnB5b3VcIDsKK+ekq+WyqSA+IHJla2lnYW5cIDsKK+WQhOWxpCA+IGtha3Vzb3VcIDsKK+WIpemZoiA+IGJldHN1aW5cIDsKK+WQjOWtpiA+IGRvdWdha3VcIDsKK+ejgealtSA+IGppa3lva3VcIDsKK+mAmumWoiA+IHRzdXVrYW5cIDsKK+WLneiAhSA+IHNob3VzaGFcIDsKK+WKh+ipqSA+IGdla2lzaGlcIDsKK+W5sumjryA+IGhvc2hpaWlcIDsKK+mJhOWJhyA+IHRlc3Nva3VcIDsKK+mBhemAnyA+IGNoaXNva3VcIDsKK+eip+awtCA+IGhla2lzdWlcIDsKK+efs+iHvCA+IGlzaGl1c3VcIDsKK+W5tOmhjSA+IG5lbmdha3VcIDsKK+W8t+iCqSA+IGt5b3VrZW5cIDsKK+WPsOW4syA+IGRhaWNob3VcIDsKK+awtOa3sSA+IHN1aXNoaW5cIDsKK+awt+a1tyA+IGh5b3VrYWlcIDsKK+azsOWbvSA+IHRhaWtva3VcIDsKK+WIpemWkyA+IGJldHN1bWFcIDsKK+axgeawlyA+IHNoaXJ1a2VcIDsKK+a0m+WGhSA+IHJha3VuYWlcIDsKK+avjuenkiA+IG1haWJ5b3VcIDsKK+W+rueGsSA+IGJpbmV0c3VcIDsKK+awtOa1tCA+IHN1aXlva3VcIDsKK+aDkeS5sSA+IHdha3VyYW5cIDsKK+iQveiRiSA+IHJha3V5b3VcIDsKK+WKoOiZkCA+IGthZ3lha3VcIDsKK+W8t+iAhSA+IGt5b3VzaGFcIDsKK+WPpOW8jyA+IGtvc2hpa2lcIDsKK+iSuOeVmSA+IGpvdXJ5dXVcIDsKK+mHjeW/gyA+IGp1dXNoaW5cIDsKK+WNiueGnyA+IGhhbmp1a3VcIDsKK+awtOa1gSA+IHN1aXJ5dXVcIDsKK+ecn+mrhCA+IHNoaW56dWlcIDsKK+WJjemAsiA+IHplbnNoaW5cIDsKK+WJjemAsSA+IHplbnNodXVcIDsKK+WOn+acqCA+IGdlbmJva3VcIDsKK+mHjeW9uSA+IGp1dXlha3VcIDsKK+WPm+W/gyA+IGhhbnNoaW5cIDsKK+WLpOe2miA+IGtpbnpva3VcIDsKK+mAvOi/qyA+IGhpcHBha3VcIDsKK+WNiueEvCA+IGhhbnNob3VcIDsKK+elnuWTgSA+IHNoaW5waW5cIDsKK+WOmuadvyA+IGF0c3VpdGFcIDsKK+ayoeW+jCA+IGJvdHN1Z29cIDsKK+azpeWdiiA+IGRvcm9ib3VcIDsKK+W8seiAhSA+IGpha3VzaGFcIDsKK+WNteauuyA+IHJhbmtha3VcIDsKK+mHkeW5syA+IGtpbnBpcmFcIDsKK+WNseawlyA+IGFidW5hZ2VcIDsKK+aApeaJgCA+IGt5dXVzaG9cIDsKK+auu+ervyA+IGthcmFzYW9cIDsKK+mGh+actCA+IGp1bmJva3VcIDsKK+WPluW+lyA+IHNodXRva3VcIDsKK+WNs+atuyA+IHNva3VzaGlcIDsKK+m0h+iJsiA+IHRva2lpcm9cIDsKK+WPsOWwuyA+IGRhaWppcmlcIDsKK+WQm+WbvSA+IGt1bmtva3VcIDsKK+aAp+aFviA+IHNlaXlva3VcIDsKK+i/vemajyA+IHRzdWl6dWlcIDsKK+WLsueroCA+IGt1bnNob3VcIDsKK+mAsumAgCA+IHNoaW50YWlcIDsKK+mAo+mHjyA+IHJlbnJ5b3VcIDsKK+WJjei6qyA+IHplbnNoaW5cIDsKK+WOn+aWmSA+IGdlbnJ5b3VcIDsKK+atu+iHrSA+IHNoaXNodXVcIDsKK+mCkeiQvSA+IHl1dXJha3VcIDsKK+WJr+ipniA+IGZ1a3VzaGlcIDsKK+WQiOWjgSA+IGdhcHBla2lcIDsKK+WJjei5pCA+IHplbnNob3VcIDsKK+WPsuWtpiA+IHNoaWdha3VcIDsKK+WPjeW/nCA+IGhhbicnbm91XCA7Civlh7rpoY0gPiBkZWJpdGFpXCA7CivliLnpgqMgPiBzZXRzdW5hXCA7CivlubTplbcgPiBuZW5jaG91XCA7Civlj43lvqkgPiBoYW5wdWt1XCA7Civlh7rpoK0gPiBzaHV0dG91XCA7CivliIfpmaQgPiBzZXRzdWpvXCA7Civoka3nsIAgPiB5b3NoaXp1XCA7Civlh7bpoZ4gPiBreW91cnVpXCA7Civnoofms4ogPiB0ZWloYWt1XCA7CivmgKXmgqMgPiBreXV1a2FuXCA7CivliY3otrMgPiBtYWVhc2hpXCA7CivlkJ/llLEgPiBnaW5zaG91XCA7CivmtIvlgpggPiB5b3VnYXNhXCA7CivnoJTnqbYgPiBrZW5reXV1XCA7CivpgLLou40gPiBzaGluZ3VuXCA7CivmgKfmgKUgPiBzZWlreXV1XCA7CivnpoHkuK0gPiBraW5jaHV1XCA7CivnpZ7liaMgPiBzaGlua2VuXCA7CivphZLmr5IgPiBzaHVkb2t1XCA7CivnpZ7liY0gPiBzaGluemVuXCA7Civph5HlsZ4gPiBraW56b2t1XCA7CivmgKXmgKcgPiBreXV1c2VpXCA7CivokabnsL4gPiB5b3NoaXp1XCA7Civolqzlk4EgPiB5YWt1aGluXCA7CivmsojmgJ0gPiBjaGluc2hpXCA7CivljZfmtIsgPiBuYW4nJ3lvdVwgOwor5ZCM5Zu9ID4gZG91a29rdVwgOwor5q276IKJID4gc2hpbmlrdVwgOwor5oCn5b60ID4gc2VpY2hvdVwgOwor5bmz6ZG/ID4gaGVpc2FrdVwgOwor6JGm57CAID4geW9zaGl6dVwgOwor5Yud566XID4gc2hvdXNhblwgOwor6YeR5bCGID4ga2luc2hvdVwgOwor5oCd5oORID4gb21vd2FrdVwgOwor6bO26ImyID4gdG9iaWlyb1wgOwor55+z57a/ID4gc2VraW1lblwgOwor6JC96IOGID4gcmFrdXRhblwgOwor6bOl6JGsID4gY2hvdXNvdVwgOwor5Y2x5qW1ID4ga2lreW9rdVwgOwor5rKi5bGxID4gdGFrdXNhblwgOwor5b6X54K5ID4gdG9rdXRlblwgOwor5Y+J5bqrID4gYXpla3VyYVwgOwor6YW35pqRID4ga29rdXNob1wgOwor5Y+M5bmFID4gc291ZnVrdVwgOwor5b2T56K6ID4gdG91a2FrdVwgOwor5Yi66LqrID4gc2FzaGltaVwgOwor5bqD6YePID4ga291cnlvdVwgOwor5ZCE5ZywID4ga2FrdWNoaVwgOwor6JaE5aKoID4gdXN1enVtaVwgOwor5rOK5ZywID4gaGFrdWNoaVwgOwor5Y6o5oi/ID4gY2h1dWJvdVwgOwor5Y+b5bCGID4gaGFuc2hvdVwgOwor5ZCE5Zu9ID4ga2Fra29rdVwgOwor6JGm56ybID4gYXNoaWJ1ZVwgOwor6YeN5a6dID4gY2hvdWhvdVwgOwor6YeP5a2QID4gcnlvdXNoaVwgOwor5bmV6Zu7ID4gbWFrdWRlblwgOwor5Yml6KO9ID4gaGFrdXNlaVwgOwor6Yac5oWLID4gc2h1dXRhaVwgOwor5Yqf6IejID4ga291c2hpblwgOwor55+t57WhID4gdGFucmFrdVwgOwor6Jas5YyFID4geWFrdWhvdVwgOwor5rCR5rOKID4gbWlucGFrdVwgOwor56S+5ZGKID4gc2hha29rdVwgOwor5byB6IacID4gYmVubWFrdVwgOwor6YCy6LKiID4gc2hpbmtvdVwgOwor5bi46aeQID4gam91Y2h1dVwgOwor6Yac5oKqID4gc2h1dWFrdVwgOwor5rG65b+DID4ga2Vzc2hpblwgOwor56CV55+zID4gc2Fpc2VraVwgOwor5q2j6IW5ID4gc2VpZnVrdVwgOwor6bOp6IiOID4ga3l1dXNoYVwgOwor6Jas5YmkID4geWFrdXphaVwgOwor5q+U546HID4gaGlyaXRzdVwgOwor5ZCI5ZSxID4gZ2Fzc2hvdVwgOwor5Yu+55WZID4ga291cnl1dVwgOwor5Yil6L6eID4gYmV0c3VqaVwgOwor5byK57+SID4gaGVpc2h1dVwgOwor5b2554mbID4gZWtpZ3l1dVwgOwor6YCN6YGlID4gc2hvdXlvdVwgOwor5rK85ZywID4gbnVtYWNoaVwgOwor6YCN6YGZID4gc2hvdXlvdVwgOwor6I6r6YCjID4gYmFrdXJlblwgOwor5rOV5ZCNID4gaG91bXlvdVwgOwor5bu36IejID4gdGVpc2hpblwgOwor55+z562NID4gc2VraWp1blwgOwor56We5L2TID4gc2hpbnRhaVwgOwor5Y+O5a65ID4gc2h1dXlvdVwgOwor5oKg5LmFID4geXV1a3l1dVwgOwor5rK75Zu9ID4gY2hpa29rdVwgOwor5Yid6YCfID4gc2hvc29rdVwgOwor5ZCN5Y+3ID4gbXlvdWdvdVwgOwor5b+D5qOSID4gc2hpbmJvdVwgOwor56We5LuZID4gc2hpbnNlblwgOwor6YCy6KybID4gc2hpbmtvdVwgOwor5rOV5Y2aID4gaG91aGFrdVwgOwor56We5Lq6ID4gc2hpbmppblwgOwor6YCG6YGLID4gZ3lha3V1blwgOwor55yJ6ZuqID4gYmlzZXRzdVwgOwor6YG46ImvID4gc2VucnlvdVwgOwor5Ye46Y+hID4gdG9ra3lvdVwgOwor6JK45rqcID4gam91cnl1dVwgOwor5ZCI5Y+jID4gYWlrdWNoaVwgOwor56S+5YmHID4gc2hhc29rdVwgOwor5qyd6KGAID4gdWtrZXRzdVwgOwor5rC05pm2ID4gc3Vpc2hvdVwgOwor6I2S6aeSID4gYXJhZ29tYVwgOwor5ZCN5YygID4gbWVpc2hvdVwgOwor5rC45pelID4gZWlqaXRzdVwgOwor5q6655SfID4gc2Vzc2hvdVwgOwor5Y2z5patID4gc29rdWRhblwgOwor5YiG6YedID4gZnVuc2hpblwgOwor5Y2D5q2zID4gY2hpdG9zZVwgOwor5YiG6YePID4gYnVucnlvdVwgOwor5ZCN5YudID4gbWVpc2hvdVwgOwor5Yil6LevID4gYmV0c3Vyb1wgOwor5rOV5YqbID4gaG91cmlraVwgOwor5q+U54axID4gaGluZXRzdVwgOwor5Yuk55qHID4ga2luJydub3VcIDsKK+W8t+ehrCA+IGt5b3Vrb3VcIDsKK+azleWJhyA+IGhvdXNva3VcIDsKK+mAsuiogCA+IHNoaW5nZW5cIDsKK+W7g+iZmiA+IGhhaWt5b1wgOwor5b+/5oCSID4gZnVuJydudVwgOwor6YCB6L+OID4gc291Z2VpXCA7Civov4Xpm7cgPiBqaW5yYWlcIDsKK+W/l+aTjSA+IHNoaXNvdVwgOwor6YCa6LKoID4gdHN1dWthXCA7CivlkI3liLogPiBtZWlzaGlcIDsKK+WQjOWJjSA+IGRvdXplblwgOwor56S85YW4ID4gcmVpdGVuXCA7CivliY3ooZsgPiB6ZW4nJ2VpXCA7Civnn6LnrYggPiB5YWhhenVcIDsKK+mHkeWdkSA+IGtpbmtvdVwgOwor5Y6f5b2iID4gZ2Vua2VpXCA7CivlvqnmqKkgPiBmdWtrZW5cIDsKK+WJjeihjCA+IHplbmtvdVwgOwor5ZCN5YiGID4gbWVpYnVuXCA7CivlvaLnirYgPiBrZWlqb3VcIDsKK+WIl+i7iiA+IHJlc3NoYVwgOwor5ZCN5YiAID4gbWVpdG91XCA7Civlu4Pol6kgPiBoYWloYW5cIDsKK+mFjeacrCA+IGhhaWhvblwgOwor5Y6a5b+XID4ga291c2hpXCA7CivoloTlkbMgPiBoYWt1bWlcIDsKK+ekvuWDpyA+IHNoYXNvdVwgOwor5ZCI5YmkID4gZ291emFpXCA7CivlkIzlh6YgPiBkb3VzaG9cIDsKK+azleWFuCA+IGhvdXRlblwgOwor56S+5YK1ID4gc2hhc2FpXCA7CivlubTovKogPiBuZW5yaW5cIDsKK+W5tOi8qSA+IG5lbnBhaVwgOwor56OB5b+DID4gamlzaGluXCA7CivliIbpgaMgPiBidW5rZW5cIDsKK+WPi+WlvSA+IHl1dWtvdVwgOwor5Yuk55WqID4ga2luYmFuXCA7Civnn7PnopEgPiBzZWtpaGlcIDsKK+WQiOWIhyA+IGdhc3NhaVwgOwor6YCA6LuiID4gdGFpdGVuXCA7CivmraPnt6ggPiBzZWloZW5cIDsKK+WPjeWkiSA+IGhhbnBlblwgOwor5Y+x5ZKkID4gc2hpdHRhXCA7CivlkIzlhZogPiBkb3V0b3VcIDsKK+W5vei2oyA+IHl1dXNodVwgOwor5Yqg57WmID4ga2FreXV1XCA7CivlkI3lhKogPiBtZWl5dXVcIDsKK+WOs+WwgSA+IGdlbnB1dVwgOwor5biv6Zu7ID4gdGFpZGVuXCA7Civlvovms5UgPiByaXBwb3VcIDsKK+WHjOmbsiA+IHJ5b3V1blwgOwor5b+r5oSfID4ga2Fpa2FuXCA7CivpgbjogIMgPiBzZW5rb3VcIDsKK+efoueoriA+IHlhZGFuZVwgOwor5rGO5oSbID4gaGFuJydhaVwgOwor5by355uXID4gZ291dG91XCA7CivljrPlr5IgPiBnZW5rYW5cIDsKK+mHj+WZqCA+IHJ5b3VraVwgOwor5ZCN5YOnID4gbWVpc291XCA7CivmraPntbEgPiBzZWl0b3VcIDsKK+mBiuiVqSA+IHl1dXRvdVwgOwor5rG65a6aID4ga2V0dGVpXCA7CivokrjmsJEgPiBqb3VtaW5cIDsKK+W8vueXlSA+IGRhbmtvblwgOwor6YeN5Zm4ID4ganV1dG9uXCA7Civov4Lpl4ogPiB1a2F0c3VcIDsKK+mAoOipoyA+IHpvdWtlaVwgOwor5reh44CFID4gdGFudGFuXCA7CivljrPlroggPiBnZW5zaHVcIDsKK+WPsOWQjSA+IHRhaW1laVwgOwor5Y6z5a2YID4gZ2Vuc29uXCA7CivmraPns7sgPiBzZWlrZWlcIDsKK+mCquelniA+IGphc2hpblwgOwor6L666ZmsID4gaGVuc3V1XCA7CivpgKDoqIAgPiB6b3VnZW5cIDsKK+mAg+i1sCA+IHRvdXNvdVwgOwor6YCa6KqeID4gdHN1dWdvXCA7CivliIbovIkgPiBidW5zYWlcIDsKK+mFuOaApyA+IHNhbnNlaVwgOwor55u46ZaiID4gc291a2FuXCA7CivlvozmrrUgPiBrb3VkYW5cIDsKK+ekvuS8miA+IHNoYWthaVwgOwor6YCa6KmxID4gdHN1dXdhXCA7CivlvqnmoKEgPiBmdWtrb3VcIDsKK+WQjOWApCA+IGRvdWNoaVwgOwor5YiH6LqrID4ga2lyaW1pXCA7CivlkJvkuLsgPiBrdW5zaHVcIDsKK+iNiemeiyA+IHdhcmFqaVwgOwor5rOV5L6LID4gaG91cmVpXCA7CivmsrPljp8gPiBrYXdhcmFcIDsKK+WItuijgSA+IHNlaXNhaVwgOwor5Y2X5pa5ID4gbmFucG91XCA7CivljJfmtbcgPiBob2trYWlcIDsKK+W/oOaEmyA+IGNodXVhaVwgOwor6YeR5ZOhID4ga2luJydpblwgOwor5Y2Y5paHID4gdGFuYnVuXCA7CivnorrluqYgPiBrYWt1ZG9cIDsKK+awkeacmyA+IG1pbmJvdVwgOwor6JaE5YipID4gaGFrdXJpXCA7CivnpL7kuqQgPiBzaGFrb3VcIDsKK+W+ruacjSA+IGJpZnVrdVwgOwor5rGC5oSbID4ga3l1dWFpXCA7CivljZjmlbAgPiB0YW5zdXVcIDsKK+W/heaQuiA+IGhpa2tlaVwgOwor6YeR5ZOBID4ga2lucGluXCA7CivliqPnrYkgPiByZXR0b3VcIDsKK+ebpOmdoiA+IGJhbm1lblwgOwor5Yyg5rCXID4gc2hvdWtpXCA7Civli5XnlKMgPiBkb3VzYW5cIDsKK+W7tue0jSA+IGVuJydub3VcIDsKK+egleeJhyA+IHNhaWhlblwgOwor55yf6YCGID4gbWFzYWthXCA7CivlkIzkvZMgPiBkb3V0YWlcIDsKK+ays+WMlyA+IGthaG9rdVwgOwor56S+5Li7ID4gc2hhc2h1XCA7CivljZfmlK8gPiBuYW5zaGlcIDsKK+WPo+WQuyA+IGtvdWZ1blwgOwor5by+55C0ID4gZGFua2luXCA7CivluKvploAgPiBzaGltb25cIDsKK+awl+aXqSA+IGtpYmF5YVwgOwor5rOV5LukID4gaG91cmVpXCA7CivmgKXloLQgPiBreXV1YmFcIDsKK+WQjOS8tCA+IGRvdWhhblwgOwor6YCj6KGhID4gcmVua291XCA7Civlj6PlkJ8gPiBrb3VnaW5cIDsKK+mAo+ihjCA+IHJlbmtvdVwgOwor5rOV5Lq6ID4gaG91amluXCA7CivlhrfpnZkgPiByZWlzZWlcIDsKK+i/lOmHkSA+IGhlbmtpblwgOwor5Y+C5aCCID4gc2FuZG91XCA7Civlv6vlvIEgPiBrYWliZW5cIDsKK+W/oOaBlSA+IGNodXVqb1wgOwor5Y+s5YufID4gc2hvdWJvXCA7CivlkIjkvbUgPiBnb3VoZWlcIDsKK+WQkOS5syA+IHRvbnl1dVwgOwor6L+36LWwID4gbWVpc291XCA7CivmraPnrZQgPiBzZWl0b3VcIDsKK+WQjeS6uiA+IG1laWppblwgOwor5ZCI5L2TID4gZ2F0dGFpXCA7CivoloTlhYkgPiBoYWtrb3VcIDsKK+iUk+W7tiA+IG1hbicnZW5cIDsKK+W9k+eEtiA+IHRvdXplblwgOwor5Y+N5ZmsID4gaGFuemVpXCA7Civljp/lr7ggPiBnZW5zdW5cIDsKK+WQjOS7gSA+IGRvdWppblwgOwor5ZCM5Lq6ID4gZG91bmluXCA7CivlhbjpupcgPiB0ZW5yZWlcIDsKK+WQkeS4iiA+IGtvdWpvdVwgOwor5bej6baPID4gc3Vkb3JpXCA7CivljYHmnKwgPiBqdXBwb25cIDsKK+W7g+iJpiA+IGhhaWthblwgOwor5rGf5bGxID4ga291emFuXCA7CivluqfolqwgPiB6YXlha3VcIDsKK+iQjue4riA+IGlzaHVrdVwgOwor6YeN5ZCIID4ganV1Z291XCA7CivluoPoqIAgPiBrb3VnZW5cIDsKK+W7g+iIuSA+IGhhaXNlblwgOwor5buQ6IKlID4ga3l1dWhpXCA7CivlkIzkuZcgPiBkb3Vqb3VcIDsKK+W/nOaApSA+IG91a3l1dVwgOwor6YeR5Y2wID4ga2luJydpblwgOwor6YGK6Iq4ID4geXV1Z2VpXCA7Civmrovnl5UgPiB6YW5rb25cIDsKK+WJjeiRlyA+IHplbmNob1wgOwor6I+W6JKyID4gc2hvdWJ1XCA7Civph47ljp8gPiBub2hhcmFcIDsKK+axuuWjiiA+IGtla2thaVwgOwor5Y6f5a2QID4gZ2Vuc2hpXCA7Civmr5vmsIggPiBtb3VzZW5cIDsKK+WNoOaLoCA+IHNlbmt5b1wgOwor5ZCM5LiKID4gZG91am91XCA7CivliKXoo70gPiBiZXNzZWlcIDsKK+W8iuekviA+IGhlaXNoYVwgOwor5q+U5rOBID4gaGlreW91XCA7CivpgI/oppYgPiB0b3VzaGlcIDsKK+WNiuaVsCA+IGhhbnN1dVwgOwor6Yac5aWzID4gc2h1dWpvXCA7Civlirnnm64gPiBraWtpbWVcIDsKK+awkeaUvyA+IG1pbnNlaVwgOwor6bO056a9ID4gbWVpa2luXCA7CivmsJHmlL4gPiBtaW5wb3VcIDsKK+i/kemDtyA+IGtpbmdvdVwgOwor6YWS5omLID4gc2FrYXRlXCA7Civov5TpgoQgPiBoZW5rYW5cIDsKK+W8k+efoiA+IHl1bWl5YVwgOwor5YmN6I+cID4gemVuc2FpXCA7Civlj43llY8gPiBoYW5tb25cIDsKK+WHpumBhyA+IHNob2d1dVwgOwor5b+D5oqAID4gc2hpbmdpXCA7Civov5Hpg4ogPiBraW5rb3VcIDsKK+iWhOWAliA+IGhha2tvdVwgOwor5Yid6KaLID4gc2hva2VuXCA7CivmrKDoiKogPiBrZWtrb3VcIDsKK+ebl+mbuyA+IHRvdWRlblwgOwor5beo6a+oID4ga3lvZ2VpXCA7CivmsoPlnJ8gPiB5b2t1ZG9cIDsKK+W3u+mmliA+IGthbnNodVwgOwor5Ye66LazID4gZGVhc2hpXCA7CivmrovnlJ8gPiB6YW5zZWlcIDsKK+WMl+aspyA+IGhva3VvdVwgOwor55uX6ZujID4gdG91bmFuXCA7CivliqDnpoQgPiBrYXJva3VcIDsKK+WPt+S/uCA+IGdvdWhvdVwgOwor5q2755u4ID4gc2hpc291XCA7CivljbHmgKUgPiBraWt5dXVcIDsKK+WJm+iHhiA+IGdvdW9rdVwgOwor5by+54mHID4gZGFucGVuXCA7CivnnIzpgZMgPiBrZW5kb3VcIDsKK+WNs+W/nCA+IHNva3VvdVwgOwor5q2m56WeID4gYnVzaGluXCA7Civov5TpgIEgPiBoZW5zb3VcIDsKK+W+qeaUuSA+IGZ1a2thaVwgOwor6YeR5YmbID4ga29uZ291XCA7CivluaPosqIgPiBoZWlrb3VcIDsKK+mFjeaJgCA+IGhhaXNob1wgOwor5Y215b2iID4gcmFua2VpXCA7Civph5HliLggPiBraW5rZW5cIDsKK+mFlOaFiyA+IHN1aXRhaVwgOwor5bm76KaWID4gZ2Vuc2hpXCA7Civlt6jprYEgPiBreW9rYWlcIDsKK+iVg+WcsCA+IGJhbmNoaVwgOwor5Y2B5pWwID4ganV1c3V1XCA7Civmsb3lnKcgPiBraWF0c3VcIDsKK+WHoemAgCA+IGJvbnRhaVwgOwor6YGU6ICFID4gdGFzc2hhXCA7CivlvpPmnaUgPiBqdXVyYWlcIDsKK+mBuOeuoSA+IHNlbmthblwgOwor5YiG6K2yID4gYnVuam91XCA7Civlj7jkvJogPiBzaGlrYWlcIDsKK+W+oeaWmSA+IGdvcnlvdVwgOwor5YaG6auYID4gZW5kYWthXCA7Civov5HovrogPiBraW5wZW5cIDsKK+WOn+WniyA+IGdlbnNoaVwgOwor5Y+j5YaFID4ga291bmFpXCA7Civlh7rosrsgPiBzaHVwcGlcIDsKK+mHkeWGoCA+IGtpbmthblwgOwor5Y2w5b2iID4gaW5neW91XCA7Civlj7jku6QgPiBzaGlyZWlcIDsKK+mHjeWIkSA+IGp1dWtlaVwgOwor6L+96Ki0ID4gdHN1aXNvXCA7Civlj7fku6QgPiBnb3VyZWlcIDsKK+WKoOehqyA+IGthcnl1dVwgOwor5Ymb6IOGID4gZ291dGFuXCA7Civph5HlhbcgPiBrYW5hZ3VcIDsKK+WPjuWPlyA+IHNodXVqdVwgOwor6YWN5oWuID4gaGFpcnlvXCA7Civov7foq5YgPiBtZWlyb25cIDsKK+avjuavjiA+IG1haW1haVwgOwor6L+96KiYID4gdHN1aWtpXCA7CivnnaHok64gPiBzdWlyZW5cIDsKK+W/g+aEjyA+IHNoaW4nJ2lcIDsKK+WJsue3miA+IGthc3NlblwgOwor5YiH6KuMID4gc2Vra2FuXCA7Civlv5jlubQgPiBib3VuZW5cIDsKK+WNs+W6pyA+IHNva3V6YVwgOwor5be76aCtID4ga2FudG91XCA7CivlirnnlKggPiBrb3V5b3VcIDsKK+WKq+eblyA+IGdvdXRvdVwgOwor6JKy5p+zID4gaG9yeXV1XCA7CivmgZLkvosgPiBrb3VyZWlcIDsKK+WPsuS8nSA+IHNoaWRlblwgOwor5b+N5b6TID4gbmluanV1XCA7Civphbflr5IgPiBrb2trYW5cIDsKK+W4gumbuyA+IHNoaWRlblwgOwor5YuH54ybID4geXV1bW91XCA7Civmr6zmnpwgPiBreXV1a2FcIDsKK+iNt+i2syA+IG5pYXNoaVwgOwor5bi46YGTID4gam91ZG91XCA7CivliIboqZ4gPiBidW5zaGlcIDsKK+ayu+S5sSA+IGNoaXJhblwgOwor5Y215bejID4gcmFuc291XCA7CivmrbvnlKMgPiBzaGl6YW5cIDsKK+atu+eUnyA+IHNoaXNlaVwgOwor5Y2a5oSbID4gaGFrdWFpXCA7CivluLjpgKMgPiBqb3VyZW5cIDsKK+WGkumgrSA+IGJvdXRvdVwgOwor5oCn5ZCRID4gc2Vpa291XCA7CivluLDpg7cgPiBraWt5b3VcIDsKK+awtOW5syA+IHN1aWhlaVwgOwor5rK75LiWID4gY2hpc2VpXCA7CivlvJXnlKggPiBpbicneW91XCA7Civprq7pupcgPiBzZW5yZWlcIDsKK+ebrumHmCA+IG1la3VnaVwgOwor5Y+N5YuVID4gaGFuZG91XCA7CivliY3ohZUgPiBtYWV1ZGVcIDsKK+WPsuS5lyA+IHNoaWpvdVwgOwor5YiG6KejID4gYnVua2FpXCA7Civlj4LlkJEgPiBzYW5rb3VcIDsKK+WPs+S4iiA+IG1pZ2l1ZVwgOwor6YGj57GzID4ga2VuYmVpXCA7Civlj6Tkv5cgPiBrb3pva3VcIDsKK+W+jOaZryA+IGtvdWtlaVwgOwor5Y+y5LiKID4gc2hpam91XCA7CivljpblpKcgPiBib3VkYWlcIDsKK+mAgOihjCA+IHRhaWtvdVwgOwor5Y+v5LmfID4ga2FuYXJpXCA7CivlubPooaEgPiBoZWlrb3VcIDsKK+W6p+iIiCA+IHpha3lvdVwgOwor5q2j55y8ID4gc2VpZ2FuXCA7CivlubPooYwgPiBoZWlrb3VcIDsKK+W+heacmyA+IHRhaWJvdVwgOwor56OB5aOBID4gamloZWtpXCA7Civlt67poY0gPiBzYWdha3VcIDsKK+aui+eJhyA+IHphbnBlblwgOwor5Y+l5L2cID4ga3VzYWt1XCA7CivlvozmmIYgPiBrb3Vrb25cIDsKK+ato+ebriA+IG1hc2FtZVwgOwor55+i546JID4geWFkYW1hXCA7CivljYHmjIcgPiBqdXNzaGlcIDsKK+WNmOaApyA+IHRhbnNlaVwgOwor5Y6f5Z6LID4gZ2Vua2VpXCA7Civmr5vmoLkgPiBtb3Vrb25cIDsKK+W4gumWgCA+IHNoaW1vblwgOwor6JK45pWjID4gam91c2FuXCA7CivlvozmlrkgPiBrb3Vob3VcIDsKK+mFjeW9kyA+IGhhaXRvdVwgOwor5Yqg55mCID4ga2FyeW91XCA7Civlvovml4sgPiByaXNzZW5cIDsKK+WPo+S8nSA+IGtvdWRlblwgOwor6YWS5bqXID4gc2h1dGVuXCA7CivluKvpgZMgPiBzaGlkb3VcIDsKK+W6leiNtyA+IHNva29uaVwgOwor5YiK6KGMID4ga2Fua291XCA7Civlh7roqLQgPiBzaHVzc29cIDsKK+WNmuW+kiA+IGJha3V0b1wgOwor5buD57eaID4gaGFpc2VuXCA7CivnoILmvKAgPiBzYWJha3VcIDsKK+aApeWLnyA+IGt5dXVib1wgOwor5byx54GrID4geW93YWJpXCA7CivliY3ogIUgPiB6ZW5zaGFcIDsKK+aApeWLmSA+IGt5dXVtdVwgOwor5beo6aCtID4ga3lvdG91XCA7CivokYnniakgPiBoYW1vbm9cIDsKK+WIhuiigiA+IGJ1bmJlaVwgOwor5YaG6aCCID4gZW5jaG91XCA7CivmsJfmga8gPiBraXNva3VcIDsKK+W+jOaUuyA+IGtvdWtvdVwgOwor6bOp55uuID4gaGF0b21lXCA7Civph43kvZMgPiBqdXV0YWlcIDsKK+WOs+WRvSA+IGdlbm1laVwgOwor5YaS6Zm6ID4gYm91a2VuXCA7Civljp/lm6AgPiBnZW4nJ2luXCA7CivlhoXpoIUgPiBuYWlrb3VcIDsKK+WJjee/hSA+IHplbnNoaVwgOwor5bqm6IO4ID4gZG9reW91XCA7CivnnIvosqsgPiBrYW5rYW5cIDsKK+WNkeaAryA+IGhpa3lvdVwgOwor5Y2a5byVID4gaGFrdWluXCA7CivmqZ/plbcgPiBraWNob3VcIDsKK+WJsuespiA+IHdhcmlmdVwgOwor5rCX5oCnID4ga2lzaG91XCA7CivljYHmiJIgPiBqaWtrYWlcIDsKK+WPi+WFmiA+IHl1dXRvdVwgOwor5Y+X5L+hID4ganVzaGluXCA7Civnm67pgJQgPiBtb2t1dG9cIDsKK+i+sumBkyA+IG5vdWRvdVwgOwor55+z54GwID4gc2Vra2FpXCA7CivmsJHmg4UgPiBtaW5qb3VcIDsKK+WOmuWcsCA+IGF0c3VqaVwgOwor6YeN5Lu7ID4ganV1bmluXCA7Civov47os5MgPiBnZWloaW5cIDsKK+WOs+WQmyA+IGdlbmt1blwgOwor5YmN572uID4gemVuY2hpXCA7Civph43ku6MgPiBqdXVkYWlcIDsKK+WIl+iXqSA+IHJlcHBhblwgOwor6bOl55uuID4gdG9yaW1lXCA7CivljZjlvIEgPiB0YW5iZW5cIDsKK+auteautSA+IGRhbmRhblwgOwor5rC05bGLID4gbWl6dXlhXCA7CivlvoDmmJQgPiBvdXNla2lcIDsKK+mHkeS4uyA+IGtpbnNodVwgOwor56C05qC8ID4gaGFrYWt1XCA7CivljYPmha4gPiBzZW5yeW9cIDsKK+WOu+WLoiA+IGt5b3NlaVwgOwor5Y+j5LiKID4ga291am91XCA7CivlvZPmrbMgPiB0b3VzYWlcIDsKK+earumdqSA+IGhpa2FrdVwgOwor5YaF6Z2iID4gbmFpbWVuXCA7Civlt7fplpMgPiBrb3VrYW5cIDsKK+WGt+mFkiA+IHJlaXNodVwgOwor5Y215a2QID4gcmFuc2hpXCA7CivmgKrlhYkgPiBrYWlrb3VcIDsKK+WFvOmhjCA+IGtlbmRhaVwgOwor5qqA6YKjID4gZGFuJyduYVwgOwor6YeO5LitID4gbm9uYWthXCA7CivpgKDoiLkgPiB6b3VzZW5cIDsKK+WPguWGhSA+IHNhbmRhaVwgOwor5rC05a6zID4gc3VpZ2FpXCA7CivlvrnlupUgPiB0ZXR0ZWlcIDsKK+awl+W8sSA+IGtpeW93YVwgOwor5Y+b5LmxID4gaGFucmFuXCA7CivlvqHmhbYgPiBneW9rZWlcIDsKK+ecjOitpiA+IGtlbmtlaVwgOwor5bid6YGTID4gdGVpZG91XCA7CivliKXojZggPiBiZXNzb3VcIDsKK+eigeW4rSA+IGdvc2VraVwgOwor5Yid6JGJID4gc2hveW91XCA7CivlvbzmlrkgPiBrYW5hdGFcIDsKK+ebn+mCpiA+IG1laWhvdVwgOwor5b+r5aCxID4ga2FpaG91XCA7Civljq3ljq0gPiBpeWFpeWFcIDsKK+awtOWtkCA+IG1penVnb1wgOwor5YaN6ZaLID4gc2Fpa2FpXCA7CivpgaDnp7AgPiBlbnNob3VcIDsKK+WMl+aWuSA+IGhvcHBvdVwgOwor5YaF6ZmjID4gbmFpamluXCA7CivljYrlvoQgPiBoYW5rZWlcIDsKK+iRm+a5ryA+IGt1enV5dVwgOwor6a6u6a2aID4gc2VuZ3lvXCA7CivlhrfpgYcgPiByZWlndXVcIDsKK+WNiuW9sSA+IGhhbicnZWlcIDsKK+WPjeS+iyA+IGhhbnJlaVwgOwor5bej6ZubID4gc3VoaW5hXCA7Civlvq7lvLEgPiBiaWpha3VcIDsKK+mDt+adkSA+IGdvdXNvblwgOwor56Gs5oCnID4ga291c2VpXCA7CivphZLlsYsgPiBzYWtheWFcIDsKK+WFrOmkqCA+IGtvdWthblwgOwor5YmN57eoID4gemVucGVuXCA7CivpgIDolLUgPiB0YWl6b3VcIDsKK+WHneitsCA+IGd5b3VnaVwgOwor5YmN57eaID4gemVuc2VuXCA7Civmra/nirYgPiBzaGlqb3VcIDsKK+W3nemdoiA+IGthd2Ftb1wgOwor5Y6f5ZOBID4gZ2VucGluXCA7CivlvJXnhacgPiBpbnNob3VcIDsKK+WNoOWxhSA+IHNlbmt5b1wgOwor5YWo6aSoID4gemVua2FuXCA7CivljrPliJEgPiBnZW5rZWlcIDsKK+i/keipoCA+IGtpbicnZWlcIDsKK+iSmeaYpyA+IG1vdW1haVwgOwor5q6L5ruTID4gemFuc2hpXCA7CivmspnkuJggPiBzYWt5dXVcIDsKK+atu+eCuSA+IHNoaXRlblwgOwor55u46LKMID4gc291Ym91XCA7CivpgIHokawgPiBzb3Vzb3VcIDsKK+eZvemtlCA+IGhha3VtYVwgOwor5Y2c5bGFID4gYm9ra3lvXCA7Civnoo3lrZAgPiBnYWlzaGlcIDsKK+avjuaZqSA+IG1haWJhblwgOwor5Y6z5YasID4gZ2VudG91XCA7CivmrbvngbAgPiBzaGlrYWlcIDsKK+WPi+S6uiA+IHl1dWppblwgOwor55uK6YeRID4gZWtpa2luXCA7CivlirTngb0gPiByb3VzYWlcIDsKK+WPjeS5sSA+IGhhbnJhblwgOwor5Y2X5bK4ID4gbmFuZ2FuXCA7CivnnYDojbcgPiBjaGFra2FcIDsKK+WPi+S6pCA+IHl1dWtvdVwgOwor6JGm5q+bID4gYXNoaWdlXCA7CivmrKHnrKwgPiBzaGlkYWlcIDsKK+WOmuWRsyA+IGF0c3VtaVwgOwor5YW16ZujID4gaGVpbmFuXCA7CivljbPlpJwgPiBzb2t1eWFcIDsKK+W9ouacqCA+IGthdGFnaVwgOwor5bir6LOHID4gc2hpc2hpXCA7CivljZflsbEgPiBuYW56YW5cIDsKK+W/l+WjqyA+IHNoaXNoaVwgOwor55yL6KaWID4ga2Fuc2hpXCA7Civov5HoppYgPiBraW5zaGlcIDsKK+W3jOmgrSA+IGdhbnRvdVwgOwor6Iy26YGTID4gY2hhZG91XCA7CivmrKHnq6AgPiBqaXNob3VcIDsKK+WFt+mZsyA+IGd1Y2hpblwgOwor5oCq5Lq6ID4ga2FpamluXCA7Civnmbvpq5ggPiB0b3Vrb3VcIDsKK+ebpOi4niA+IGJhbmt5b1wgOwor5YW16ZqKID4gaGVpdGFpXCA7CivpgKPnvbIgPiByZW5zaG9cIDsKK+ato+eKryA+IHNlaWhhblwgOwor5Y2Y5bCEID4gdGFuc2hhXCA7Civlj4LkvJogPiBzYW5rYWlcIDsKK+WKh+eUuyA+IGdla2lnYVwgOwor5YWo6Z+zID4gemVuJydvblwgOwor5Y215aGUID4gcmFudG91XCA7CivlhZrpppYgPiB0b3VzaHVcIDsKK+mBjuensCA+IGthc2hvdVwgOwor5oCn5LqkID4gc2Vpa291XCA7CivljYHlubIgPiBqaWtrYW5cIDsKK+iLsemgmCA+IGVpcnlvdVwgOwor5Y2R5bGsID4gaGl6b2t1XCA7Civlt6jpkJggPiBvb2dhbmVcIDsKK+aoqumgmCA+IG91cnlvdVwgOwor5Y2R5bGeID4gaGl6b2t1XCA7Civnn7PmsrkgPiBzZWtpeXVcIDsKK+W7u+eKtiA+IGthaWpvdVwgOwor5YmN56+HID4gemVucGVuXCA7CivpgZTno6ggPiBkYXJ1bWFcIDsKK+WOn+WLlSA+IGdlbmRvdVwgOwor5Y2X5a6LID4gbmFuc291XCA7Civlhazpm7sgPiBrb3VkZW5cIDsKK+W8seawlyA+IHlvd2FraVwgOwor5YWo6Z2iID4gemVubWVuXCA7CivlvqHlubggPiBtaXl1a2lcIDsKK+W+mOW+iiA+IGhhaWthaVwgOwor6YO15pS/ID4geXV1c2VpXCA7CivljYrls7YgPiBoYW50b3VcIDsKK+WNkeWwjyA+IGhpc2hvdVwgOwor55m96aasID4gaGFrdWJhXCA7Civnm7joq4cgPiBzb3VkYW5cIDsKK+asneepjSA+IHVzc2VraVwgOwor5b6B5oimID4gc2Vpc2VuXCA7CivlibLnm64gPiB3YXJlbWVcIDsKK+iPjOezuCA+IGtpbnNoaVwgOwor5YWo6ZyKID4gemVucmVpXCA7CivlvozmgqMgPiBrb3VrYW5cIDsKK+W4gumBkyA+IHNoaWRvdVwgOwor6YCj57mLID4gcmVua2VpXCA7CivlvZPmnb8gPiBhdGVpdGFcIDsKK+WPguS4jiA+IHNhbicneW9cIDsKK+W+jOaClCA+IGtvdWthaVwgOwor5Y+C5LiKID4gc2Fuam91XCA7CivmsojkuIsgPiBjaGlua2FcIDsKK+ecn+iWryA+IHNoaW5qb1wgOwor5Ye96JOLID4ga2FuZ2FpXCA7Civljp/liJ0gPiBnZW5zaG9cIDsKK+WJjeerryA+IHplbnRhblwgOwor5b+r5ZOJID4ga2Fpc2FpXCA7CivmsJflraYgPiBraWdha3VcIDsKK+awtOWfnyA+IHN1aWlraVwgOwor5b6u5bCRID4gYmlzaG91XCA7Civlvq7lsI8gPiBiaXNob3VcIDsKK+WFqOmaiiA+IHplbnRhaVwgOwor6YCB6Ie0ID4gc291Y2hpXCA7CivpgKPntr8gPiByZW5tZW5cIDsKK+WJteeXlSA+IHNvdWtvblwgOwor5qyy55uuID4geW9rdW1lXCA7CivlvpfluqYgPiB0b2t1ZG9cIDsKK+W+k+W8nyA+IGp1dXRlaVwgOwor6YOo5pePID4gYnV6b2t1XCA7CivolYPkurogPiBiYW5qaW5cIDsKK+iPnOeoriA+IG5hdGFuZVwgOwor55u06Ki0ID4gamlraXNvXCA7Civljp/lhbggPiBnZW50ZW5cIDsKK+WFrOmWiyA+IGtvdWthaVwgOwor6bGX6IyOID4gcmlua2VpXCA7CivlhaXpmaIgPiBueXV1aW5cIDsKK+efreavmyA+IHRhbm1vdVwgOwor5bm76IKiID4gZ2Vuc2hpXCA7CivojZLoqpUgPiBrb3V0YW5cIDsKK+WIneiAgSA+IHNob3JvdVwgOwor6YW35ZCPID4ga29rdXJpXCA7CivpgKPntK8gPiByZW5ydWlcIDsKK+atu+a1tyA+IHNoaWthaVwgOwor6JWD5Li7ID4gYmFuc2h1XCA7CivluKvoqJMgPiBzaGlrdW5cIDsKK+aoqemZkCA+IGtlbmdlblwgOwor5YuY5qScID4ga2Fua2VuXCA7CivpgbrniakgPiBpYnV0c3VcIDsKK+WHhuiosSA+IGp1bmt5b1wgOwor6YWS5aC0ID4gc2FrYWJhXCA7CivlhajplosgPiB6ZW5rYWlcIDsKK+auieatuyA+IGp1bnNoaVwgOwor5Y6f5YOPID4gZ2Vuem91XCA7Civlu7bnhLwgPiBlbnNob3VcIDsKK+ebruiosSA+IG1lbW90b1wgOwor5rC05ZqiID4gc3Vpbm91XCA7CivlvZPmlrkgPiB0b3Vob3VcIDsKK+WHuuiNtyA+IHNodWtrYVwgOwor55yf6I+wID4gbWFrb21vXCA7CivlhYPpppYgPiBnZW5zaHVcIDsKK+WNl+WkqSA+IG5hbnRlblwgOwor55uu6KeSID4gbWVrYWRvXCA7Civlho3pgbggPiBzYWlzZW5cIDsKK+W7g+ebpCA+IGhhaWJhblwgOwor56Gr5a6JID4gcnl1dWFuXCA7CivmqZ/ou7ggPiBraWppa3VcIDsKK+WLouacmyA+IHNlaWJvdVwgOwor5qip6ZaAID4ga2VubW9uXCA7CivpipjjgIUgPiBtZWltZWlcIDsKK+WLmOahiCA+IGthbicnYW5cIDsKK+W+jOW5tCA+IGtvdW5lblwgOwor5Yy75bGAID4gaWt5b2t1XCA7Civlho3pgYogPiBzYWl5dXVcIDsKK+egsuaJiyA+IGhvdXNodVwgOwor55m96ZyyID4gaGFrdXJvXCA7CivoirHps6UgPiBrYWNob3VcIDsKK+i/veiCpSA+IHRzdWloaVwgOwor5YuY5qChID4ga2Fua291XCA7Civlv7XlhpkgPiBuZW5zaGFcIDsKK+efpeatryA+IGNoaXNoaVwgOwor5biG6LWwID4gaGFuc291XCA7CivlvoDlvqkgPiBvdWZ1a3VcIDsKK+efs+amtCA+IHpha3Vyb1wgOwor55m96ZuyID4gaGFrdXVuXCA7Civlho3pgIEgPiBzYWlzb3VcIDsKK+WFiemgrSA+IGtvdXRvdVwgOwor5b6L5birID4gcmlzc2hpXCA7CivmhIjjgIUgPiBpeW9peW9cIDsKK+WFtemLkiA+IGhlaWhvdVwgOwor5Ye66IqxID4gZGViYW5hXCA7CivmranmuKwgPiBob3Nva3VcIDsKK+WFiOmgrSA+IHNlbnRvdVwgOwor5bqD57iBID4gaGlyb2VuXCA7CivmtarjgIUgPiByb3Vyb3VcIDsKK+WKm+a8lCA+IHJpa2llblwgOwor6YKq5qyyID4gamF5b2t1XCA7Civlv4PlnJ8gPiBzaGluZG9cIDsKK+W+ruWmmSA+IGJpbXlvdVwgOwor5b6E5bqtID4ga2VpdGVpXCA7CivliKXntJkgPiBiZXNzaGlcIDsKK+W/nOWPrCA+IG91c2hvdVwgOwor5Ye66Ii5ID4gZGVmdW5lXCA7CivphbfliJEgPiBrb2trZWlcIDsKK+W/q+WIgCA+IGthaXRvdVwgOwor55+z5qO6ID4gc2Vra2FuXCA7CivlhYjpnq0gPiBzZW5iZW5cIDsKK+W3p+mBhSA+IGtvdWNoaVwgOwor5bqn56SBID4gemFzaG91XCA7Civpgbjngq0gPiBzZW50YW5cIDsKK+W8gea4iCA+IGJlbnNhaVwgOwor5Y2K5aSpID4gaGFudGVuXCA7Civlv5flkJEgPiBzaGlrb3VcIDsKK+ebo+imliA+IGthbnNoaVwgOwor5Ye66IeNID4gZGViZXNvXCA7CivlvbflvqggPiBob3Vrb3VcIDsKK+WNiuWknCA+IGhhbicneWFcIDsKK+WItuepuiA+IHNlaWt1dVwgOwor5Y6f5Lq6ID4gZ2VuamluXCA7Civlho3ou6IgPiBzYWl0ZW5cIDsKK+W9ouaIkCA+IGtlaXNlaVwgOwor5biC6LKpID4gc2hpaGFuXCA7Civlt57pg70gPiBzaHV1dG9cIDsKK+WFiembuyA+IGtvdWRlblwgOwor56Gd5a6JID4gc2hvdWFuXCA7CivliJ3ntYwgPiBzaG9rZWlcIDsKK+WNiuWjiiA+IGhhbmthaVwgOwor5byU5q2MID4gY2hvdWthXCA7Civov5HokZcgPiBraW5jaG9cIDsKK+iQveasviA+IHJha2thblwgOwor5YiH5769ID4ga2lyaWhhXCA7CivnoZ3lrZAgPiBnYXJhc3VcIDsKK+W5uee3miA+IGthbnNlblwgOwor6YO95b+DID4gdG9zaGluXCA7Civnorrkv50gPiBrYWt1aG9cIDsKK+ats+atsyA+IHNhaXNhaVwgOwor5YWF6Zu7ID4ganV1ZGVuXCA7CivmsaDkuq0gPiBjaGl0ZWlcIDsKK+WGhei8qiA+IHVjaGl3YVwgOwor6YGL55SoID4gdW4nJ3lvdVwgOwor55ub6KazID4gc2Vpa2FuXCA7CivljYPlpJwgPiBzZW4nJ3lhXCA7Civluo/nq6AgPiBqb3Nob3VcIDsKK+WItuempiA+IHNlaWd5b1wgOwor5YiG572yID4gYnVuc2hvXCA7CivlvaLmhYsgPiBrZWl0YWlcIDsKK+ehrOWkiSA+IGtvdWhlblwgOwor5YWI6ZmjID4gc2VuamluXCA7CivmsJflnKcgPiBraWF0c3VcIDsKK+WFrOmHkSA+IGtvdWtpblwgOwor6bOl5rihID4gY2hvdHRvXCA7CivpgYXnlaogPiBvc29iYW5cIDsKK+WKm+azsyA+IHJpa2llaVwgOwor5q2j5rK5ID4gc2hvdXl1XCA7CivljbDljKMgPiBpbmJha29cIDsKK+WNs+WKuSA+IHNva2tvdVwgOwor6I236Ii5ID4gbmlidW5lXCA7CivluoPnr4QgPiBrb3VoYW5cIDsKK+efs+acqCA+IGlzaGlraVwgOwor5rGf5LiKID4ga291am91XCA7CivljbPlip8gPiBzb2trb3VcIDsKK+eiqeWEkiA+IHNla2lqdVwgOwor6JGX5pu4ID4gY2hvc2hvXCA7Civlt53ovrogPiBrYXdhYmVcIDsKK+mzqea0viA+IGhhdG9oYVwgOwor5q+N5b6hID4gaGFoYWdvXCA7CivphK3lo7AgPiB0ZWlzZWlcIDsKK+egsuW8viA+IGhvdWRhblwgOwor5b2T5omAID4gdG91c2hvXCA7Civnm5voo4UgPiBzZWlzb3VcIDsKK+iKs+mmmSA+IGhvdWtvdVwgOwor5b+r5L6/ID4ga2FpYmVuXCA7CivmsLTli6IgPiBzdWlzZWlcIDsKK+mDveW6gSA+IHRvY2hvdVwgOwor5YWt6YOoID4gcm9rdWJ1XCA7CivmraLmsLQgPiBzaGlzdWlcIDsKK+murumLrSA+IHNlbicnZWlcIDsKK+mFkuWQjSA+IHNodW1laVwgOwor55ub6KGwID4gc2Vpc3VpXCA7CivmsJHlm6MgPiBtaW5kYW5cIDsKK+iKuOmiqCA+IGdlaWZ1dVwgOwor5bym5p2QID4gZ2VuemFpXCA7CivliJ3nrYkgPiBzaG90b3VcIDsKK+WFrOmCuCA+IGtvdXRlaVwgOwor5Y2w5Yi7ID4gaW5rb2t1XCA7CivlibLng7kgPiBrYXBwb3VcIDsKK+iTruWPsCA+IHJlbmRhaVwgOwor5q2j5q6/ID4gc2VpZGVuXCA7CivlhqDoqZ4gPiBrYW5zaGlcIDsKK+WGjeiyqSA+IHNhaWhhblwgOwor5YiH57eaID4gc2Vzc2VuXCA7CivliaPnirYgPiBrZW5qb3VcIDsKK+WNteWGhiA+IHJhbicnZW5cIDsKK+mFt+S8vCA+IGtva3VqaVwgOwor5Yil56iuID4gYmVzc2h1XCA7CivnnaXnnaggPiBoZWlnZWlcIDsKK+iRieafhCA+IHlvdWhlaVwgOwor6JGX5piOID4gY2hvbWVpXCA7CivlvpPlp4kgPiBqdXVzaGlcIDsKK+auuuaEjyA+IHNhdHN1aVwgOwor6L6e6KGoID4gamloeW91XCA7CivlhazpgbggPiBrb3VzZW5cIDsKK+W+k+WmuSA+IGp1dW1haVwgOwor5Yip56aPID4gcmlmdWt1XCA7CivljaDlj5YgPiBzZW5zaHVcIDsKK+atr+anvSA+IHNoaXNvdVwgOwor55yf576pID4gc2hpbmdpXCA7Civmr47lubQgPiBtYWluZW5cIDsKK+aui+aakSA+IHphbnNob1wgOwor5YWs6YGTID4ga291ZG91XCA7CivmraPmraMgPiBzZWlzZWlcIDsKK+W5s+exsyA+IGhlaWJlaVwgOwor6YWN5ZCIID4gaGFpZ291XCA7CivmsLTliIYgPiBzdWlidW5cIDsKK+ecn+e+jiA+IHNoaW5iaVwgOwor5bmE6IiOID4gYWt1c2hhXCA7CivprZrpsZcgPiBneW9yaW5cIDsKK+efouafhCA+IHlhZ2FyYVwgOwor5YWl6YOoID4gbnl1dWJ1XCA7Civnn7PmlqcgPiBzZWtpZnVcIDsKK+WGl+irhyA+IGpvdWRhblwgOwor5rC05Ya3ID4gc3VpcmVpXCA7CivlhbXou4ogPiBoZWlzaGFcIDsKK+efruaYnyA+IHdhaXNlaVwgOwor6JK85aSpID4gc291dGVuXCA7CivlhajpgZMgPiB6ZW5kb3VcIDsKK+W5vOerpSA+IHlvdWRvdVwgOwor6L2f6L2fID4gZ291Z291XCA7CivnnaHnnKAgPiBzdWltaW5cIDsKK+W3qOizhyA+IGt5b3NoaVwgOwor6JGJ5pu4ID4gaGFnYWtpXCA7CivlhazovrogPiBrb3VoZW5cIDsKK+WMheW4ryA+IGhvdXRhaVwgOwor5Y6E5LuLID4geWFra2FpXCA7CivmsJHllrYgPiBtaW4nJ2VpXCA7Civli4fmlq0gPiB5dXVkYW5cIDsKK+WLleaPuiA+IGRvdXlvdVwgOwor5q6/5b6hID4gdG9ub2dvXCA7CivmsLTlhbUgPiBzdWloZWlcIDsKK+WNgeWbniA+IGp1a2thaVwgOwor5Y2B5ZubID4ganV1eW9uXCA7Civlt6josqEgPiBreW96YWlcIDsKK+WNlOWSjCA+IGt5b3V3YVwgOwor5bm956qTID4geXV1c291XCA7Civlt53ot68gPiBrYXdhamlcIDsKK+W3t+irhyA+IGtvdWRhblwgOwor55uu6JOLID4gbWFidXRhXCA7Civli4fmlaIgPiB5dXVrYW5cIDsKK+W3qOixoSA+IGt5b3pvdVwgOwor5qip6YGTID4ga2VuZG91XCA7CivlhpfoqIAgPiBqb3VnZW5cIDsKK+efreaWhyA+IHRhbmJ1blwgOwor5qyg54mHID4ga2FrZXJhXCA7CivpgKPnm58gPiByZW5tZWlcIDsKK+W5vOeomiA+IHlvdWNoaVwgOwor5b6M5aSpID4ga291dGVuXCA7CivlhbfotrMgPiBndXNva3VcIDsKK+mxl+eyiSA+IHJpbnB1blwgOwor5YyW5a2mID4ga2FnYWt1XCA7CivpgbXms5UgPiBqdW5wb3VcIDsKK+eZvemHkSA+IGhha2tpblwgOwor5YWs6LuiID4ga291dGVuXCA7CivpganmuKkgPiB0ZWtpb25cIDsKK+WNl+WNiiA+IG5hbmhhblwgOwor6YC455CDID4gaWtreXV1XCA7CivphY3liaQgPiBoYWl6YWlcIDsKK+eah+mBkyA+IGtvdWRvdVwgOwor5q2v5qC5ID4gc2hpa29uXCA7CivljZLljrsgPiBzb2treW9cIDsKK+WGjeiqlSA+IHNhaXRhblwgOwor5YWI6YutID4gc2VuJydlaVwgOwor6YG45rCRID4gc2VubWluXCA7CivluILooZcgPiBzaGlnYWlcIDsKK+W1qemrmCA+IHN1dWtvdVwgOwor5YWI6YuSID4gc2VucG91XCA7CivnnJ/ntr8gPiBtYXdhdGFcIDsKK+aso+eEtiA+IGtpbnplblwgOwor5b6M5aG1ID4ga291amluXCA7Civlhajou40gPiB6ZW5ndW5cIDsKK+mAgeeovyA+IHNvdWtvdVwgOwor5Ya36JS1ID4gcmVpem91XCA7CivphY3liIYgPiBoYWlidW5cIDsKK+W+qeWToSA+IGZ1a3VpblwgOwor5Ye657SNID4gc3VpdG91XCA7Civlh6bnva4gPiBzaG9jaGlcIDsKK+W+mOWbniA+IGhhaWthaVwgOwor6L+3562UID4gbWVpdG91XCA7CivnmbrphbUgPiBoYWtrb3VcIDsKK+WGjeioqiA+IHNhaWhvdVwgOwor5b6M5aCxID4ga291aG91XCA7CivojYnokYkgPiBrdXNhYmFcIDsKK+W9qeWxpCA+IHNhaXNvdVwgOwor5bm056iOID4gbmVuemVpXCA7Civlho3oqIIgPiBzYWl0ZWlcIDsKK+iLm+mFtyA+IGtha29rdVwgOwor5by35omTID4ga3lvdWRhXCA7CivpgqrmlZkgPiBqYWt5b3VcIDsKK+efouaWhyA+IHlhYnVtaVwgOwor5YaF6KuHID4gbmFpZGFuXCA7CivmsI/lkI0gPiBzaGltZWlcIDsKK+WFt+ixoSA+IGd1c2hvdVwgOwor55yf57SFID4gc2hpbmt1XCA7CivljZPlirkgPiB0YWtrb3VcIDsKK+iJpum9oiA+IGthbnJlaVwgOwor5Yuk5oCgID4ga2ludGFpXCA7CivljbPku4ogPiBzb2trb25cIDsKK+mAo+eVqiA+IHJlbmJhblwgOwor5b605YufID4gY2hvdWJvXCA7CivpgqbmlocgPiBob3VidW5cIDsKK+W9k+W6lyA+IHRvdXRlblwgOwor5qyg54K5ID4ga2V0dGVuXCA7CivlvIrmnZEgPiBoZWlzb25cIDsKK+W9k+W5tCA+IHRvdW5lblwgOwor5bm056WtID4gbmVuc2FpXCA7CivlvbzlpbMgPiBrYW5vam9cIDsKK+atu+aWkSA+IHNoaWhhblwgOwor6I2357iEID4gbmluYXdhXCA7CivmrbvmlocgPiBzaGlidW5cIDsKK+iNj+iLkiA+IGppbnplblwgOwor5q2z5pmpID4gc2FpYmFuXCA7CivljIXlrrkgPiBob3V5b3VcIDsKK+i+suiKuCA+IG5vdWdlaVwgOwor5bm056S8ID4gbmVucmVpXCA7CivlvJTml5cgPiBjaG91a2lcIDsKK+mAgOekviA+IHRhaXNoYVwgOwor5Y2K5Y2KID4gaGFuaGFuXCA7CivliKXnm4MgPiBiZXBwYWlcIDsKK+mBjua/gCA+IGthZ2VraVwgOwor5YaF6KiTID4gbmFpa3VuXCA7Civnmofou40gPiBrb3VndW5cIDsKK+WGheiojCA+IG5haWtvdVwgOwor5rC05LuZID4gc3Vpc2VuXCA7CivojYnojYkgPiBzb3Vzb3VcIDsKK+WNtOS4iyA+IGt5YWtrYVwgOwor5YuV5oWLID4gZG91dGFpXCA7Civlho3oo70gPiBzYWlzZWlcIDsKK+ats+aYnyA+IHNhaXNlaVwgOwor5by35oWiID4gZ291bWFuXCA7Civlt6foqIAgPiBrb3VnZW5cIDsKK+W4jOiWhCA+IGtpaGFrdVwgOwor5Y2Y5YWDID4gdGFuZ2VuXCA7CivpgaDmtYUgPiB0b29hc2FcIDsKK+i9hui9pCA+IHJva3Vyb1wgOwor5q+S5ammID4gZG9rdWZ1XCA7CivmrbPml6YgPiBzYWl0YW5cIDsKK+WNl+WFiSA+IG5hbmtvdVwgOwor5Y2B5Y+wID4ganV1ZGFpXCA7CivphY3lgbYgPiBoYWlndXVcIDsKK+WGheimsyA+IG5haWthblwgOwor55m66YCBID4gaGFzc291XCA7CivlvqHlkYogPiBvdHN1Z2VcIDsKK+WGheimpyA+IG5haXJhblwgOwor6YGg5rSLID4gZW4nJ3lvdVwgOwor5by+5oCnID4gZGFuc2VpXCA7CivlhoXoposgPiBuYWlrZW5cIDsKK+W9ouWuuSA+IGtlaXlvdVwgOwor6YOo5bGeID4gYnV6b2t1XCA7CivmraPmnbEgPiBzZWl0b3VcIDsKK+W8t+aDhSA+IGdvdWpvdVwgOwor5Y2D5Y2DID4gY2hpZGppXCA7Civov5HnuIEgPiBraW4nJ2VuXCA7CivnnJ/nrocgPiBzaGlua29cIDsKK+mtmumhniA+IGd5b3J1aVwgOwor5YuH5oimID4geXV1c2VuXCA7Civpto/lj6MgPiBrZWlrb3VcIDsKK+W4uOe9riA+IGpvdWNoaVwgOwor5Y2S5YWIID4gc29zc2VuXCA7Civlh7rnq68gPiBkZWJhbmFcIDsKK+mBoOayiCA+IGVuY2hpblwgOwor5q2j5pysID4gc2VpaG9uXCA7CivmraPmnKggPiBtYXNha2lcIDsKK+WFqOiyjCA+IHplbmJvdVwgOwor6YOo5bCGID4gYnVzaG91XCA7CivlhYjpgaMgPiBzZW5rZW5cIDsKK+ehq+WMliA+IHJ5dXVrYVwgOwor6YGh5rGCID4gc29reXV1XCA7CivnnLznnrwgPiBnYW5rZW5cIDsKK+WNiuWIhiA+IGhhbnB1blwgOwor5YiG56S+ID4gYnVuc2hhXCA7CivmraPmm7ggPiBzZWlzaG9cIDsKK+WFpeiyuyA+IG55dXVoaVwgOwor55+t5omAID4gdGFuc2hvXCA7CivljYjliLsgPiBnb2tva3VcIDsKK+eZu+i8iSA+IHRvdXNhaVwgOwor5byK5pa5ID4gaGVpaG91XCA7CivljaDkvY8gPiBzZW5qdXVcIDsKK+W3oeimpyA+IGp1bnJhblwgOwor5rCX5YSYID4ga2ltYW1hXCA7Civlv4zkuK0gPiBraWNodXVcIDsKK+WGheijhSA+IG5haXNvdVwgOwor5Yun5belID4ga2Fua291XCA7CivlvbnloLQgPiB5YWt1YmFcIDsKK+mtlOmiqCA+IG1ha2F6ZVwgOwor5Ye656qTID4gZGVtYWRvXCA7Civlvozll6MgPiBrb3VzaGlcIDsKK+ebruiEgiA+IG1leWFuaVwgOwor5beh6KaWID4ganVuc2hpXCA7CivliqnmlZkgPiBqb2t5b3VcIDsKK+mFkuS7mSA+IHNodXNlblwgOwor6baP5Y21ID4ga2VpcmFuXCA7CivnnJ/nq7kgPiBtYWRha2VcIDsKK+eci+e1jCA+IGthbmtpblwgOwor5bu65p2QID4ga2VuemFpXCA7Civnmbrou4ogPiBoYXNzaGFcIDsKK+awkeWFtSA+IG1pbnBlaVwgOwor5b6p5YiKID4gZnVra2FuXCA7CivljYrlhoYgPiBoYW4nJ2VuXCA7Civli5jlvZMgPiBrYW5kb3VcIDsKK+W8iuaUvyA+IGhlaXNlaVwgOwor5YyI5aW0ID4ga3lvdWRvXCA7CivphZLkubEgPiBzaHVyYW5cIDsKK+ebsuiAhSA+IG1vdXNoYVwgOwor5buD5rayID4gaGFpZWtpXCA7Civnn4fmmKcgPiBtb3VtYWlcIDsKK+W3puihqCA+IHNhaHlvdVwgOwor6YGF5rueID4gY2hpdGFpXCA7CivliIDnpLwgPiB0b3VyZWlcIDsKK+W8geaYjiA+IGJlbm1laVwgOwor5b+D5LqLID4gc2hpbmppXCA7Civli5jlvIEgPiBrYW5iZW5cIDsKK+assuawlyA+IHlva3VrZVwgOwor55+t5oWuID4gdGFucnlvXCA7CivljYPliIYgPiBzZW5idW5cIDsKK+WKo+aVlyA+IHJlcHBhaVwgOwor5q+O5aSVID4gbWFpeXV1XCA7CivnoLLlo7AgPiBob3VzZWlcIDsKK+WFiei8qiA+IGtvdXJpblwgOwor5Y2S5YCSID4gc290dG91XCA7CivljZjkvZMgPiB0YW50YWlcIDsKK+eZvui2syA+IG11a2FkZVwgOwor5qyn5rSyID4gb3VzaHV1XCA7Civli4XmhI8gPiBjaG9rdWlcIDsKK+WFrOirliA+IGtvdXJvblwgOwor5Y2B5YiGID4ganVwcHVuXCA7CivprZrpm7cgPiBneW9yYWlcIDsKK+WFiOi8qSA+IHNlbnBhaVwgOwor5bmz55uuID4gaGlyYW1lXCA7Civpg7flo6sgPiBnb3VzaGlcIDsKK+atpOaWuSA+IGtvbmF0YVwgOwor5Ymj5rOVID4ga2VucG91XCA7Civlvq7lgrcgPiBiaXNob3VcIDsKK+iMtuiMtiA+IGNoYWNoYVwgOwor5q2j5pa5ID4gc2VpaG91XCA7CivmrabmlZkgPiBidWt5b3VcIDsKK+WJquavmyA+IHNlbm1vdVwgOwor6L6b6IumID4gc2hpbmt1XCA7CivphY3kuZcgPiBoYWlqb3VcIDsKK+W4guiRrCA+IHNoaXNvdVwgOwor55+c5oyBID4ga3lvdWppXCA7CivovrLogJUgPiBub3Vrb3VcIDsKK+WNkeS/lyA+IGhpem9rdVwgOwor5Y2D5YaGID4gc2VuJydlblwgOwor5Yid55SfID4gc2hvc2VpXCA7Civlhazoqo0gPiBrb3VuaW5cIDsKK+W3oeihjCA+IGp1bmtvdVwgOwor5Yy65YqDID4ga3VrYWt1XCA7CivmraPmlocgPiBzZWlidW5cIDsKK+WFrOippiA+IGtvdXNoaVwgOwor5rCX5L6tID4ga2ltYW1hXCA7CivmrYzmoLwgPiBrYWtha3VcIDsKK+W5veeVjCA+IHl1dWthaVwgOwor5q2j5pWwID4gc2Vpc3V1XCA7CivlvozlkbMgPiBhdG9hamlcIDsKK+egsuWhlCA+IGhvdXRvdVwgOwor56Gd5YyWID4gc2hvdWthXCA7CivlhbzooYwgPiBrZW5rb3VcIDsKK+W8t+W6piA+IGt5b3Vkb1wgOwor5b2r5aGRID4gY2hvdXNvXCA7CivljYHlhaggPiBqdXV6ZW5cIDsKK+WFrOiosSA+IGtvdWt5b1wgOwor55m66LWwID4gaGFzc291XCA7CivljZfkuqwgPiBuYW5raW5cIDsKK+efpeaFriA+IGNoaXJ5b1wgOwor5q275omAID4gc2hpc2hvXCA7CivlubznlJ8gPiB5b3VzZWlcIDsKK+mBk+awkSA+IGRvdW1pblwgOwor5Y2K5YCkID4gaGFuJyduZVwgOwor5YWs6KiAID4ga291Z2VuXCA7CivmgrbjgIUgPiBtb25tb25cIDsKK+i/lOetlCA+IGhlbnRvdVwgOwor6Iy26ImyID4gY2hhaXJvXCA7CivmqKnorIAgPiBrZW5ib3VcIDsKK+m2j+WGoCA+IHRvc2FrYVwgOwor55m+6LKoID4gaHlha2thXCA7Civlu7vmlocgPiBrYWlidW5cIDsKK+WLgeaCjSA+IGtlaWthblwgOwor5YWD6LuNID4gZ2VuZ3VuXCA7CivljYHlhIQgPiBqdXVva3VcIDsKK+W8leaJiyA+IGhpa2l0ZVwgOwor5b2i5aOwID4ga2Vpc2VpXCA7CivprZTpmpwgPiBtYXNob3VcIDsKK+WIh+ebriA+IGtpcmVtZVwgOwor5byV5oi4ID4gaGlraWRvXCA7Civou5/poqggPiBuYW5wdXVcIDsKK+W5uOeUmiA+IGtvdWppblwgOwor5b6F5ZG9ID4gdGFpbWVpXCA7CivnnLznlYwgPiBnYW5rYWlcIDsKK+iMtuiHvCA+IGNoYXVzdVwgOwor6YG45pu4ID4gc2Vuc2hvXCA7Civoi7HoqLMgPiBlaXlha3VcIDsKK+i7oumfsyA+IHRlbicnb25cIDsKK+aui+W9sSA+IHphbicnZWlcIDsKK+W+jOWNiiA+IGtvdWhhblwgOwor6Iqz6YaHID4gaG91anVuXCA7CivlubTnlKMgPiBuZW5zYW5cIDsKK+W5tOeUnyA+IG5lbnNlaVwgOwor5Y2D5YCNID4gc2VuYmFpXCA7Civlu4PmrosgPiBoYWl6YW5cIDsKK+iJr+mmrCA+IHJ5b3ViYVwgOwor5b6T5YmNID4ganV1emVuXCA7CivlubPnlJ8gPiBoZWl6ZWlcIDsKK+mDt+WcnyA+IGt5b3Vkb1wgOwor6YGK5rCRID4geXV1bWluXCA7CivokZvluIMgPiBrdXp1ZnVcIDsKK+W7g+atoiA+IGhhaXNoaVwgOwor6Lyq6LuiID4gcmludGVuXCA7CivluIboiLkgPiBob2J1bmVcIDsKK+WNgeWAjSA+IGp1dWJhaVwgOwor55+l5oCnID4gY2hpc2VpXCA7CivliZvmr5sgPiBnb3Vtb3VcIDsKK+avjuWbniA+IG1haWthaVwgOwor5q+N5Zu9ID4gYm9rb2t1XCA7CivmsJHkurogPiBtaW5qaW5cIDsKK+ecn+eggiA+IG1hc2Fnb1wgOwor5Yqp5omLID4gc3VrZXRlXCA7CivmraLmj5ogPiBzaGl5b3VcIDsKK+W5veeOhCA+IHl1dWdlblwgOwor6Iq46YGTID4gZ2VpZG91XCA7CivlhYjos6IgPiBzZW5rZW5cIDsKK+WKoOaMryA+IGthc2hpblwgOwor55ub6ICFID4gam91c2hhXCA7Civlvbnlk6EgPiB5YWt1aW5cIDsKK+W+ruS5syA+IGJpbnl1dVwgOwor55yM56iOID4ga2VuemVpXCA7CivluLPnsL8gPiBjaG91Ym9cIDsKK+mCquW/gyA+IGphc2hpblwgOwor5YSq6YGHID4geXV1Z3V1XCA7Civnn7Plt6UgPiBzZWtrb3VcIDsKK+WGheiUtSA+IG5haXpvdVwgOwor6Ii56b2iID4gc2VucmVpXCA7CivmsJHkuLsgPiBtaW5zaHVcIDsKK+WIneeKryA+IHNob2hhblwgOwor5b6M5Yi7ID4gZ29rb2t1XCA7Civmrr/loIIgPiBkZW5kb3VcIDsKK+W+qeS6pCA+IGZ1a2tvdVwgOwor5bq25rCRID4gc2hvbWluXCA7CivnnqzmmYIgPiBzaHVuamlcIDsKK+WEqumAgCA+IHl1dXRhaVwgOwor5Ye555uuID4ga3Vib21lXCA7CivlvpPlhYQgPiBqdXVrZWlcIDsKK+WKo+aJjSA+IHJlc3NhaVwgOwor5Y2D5LutID4gc2VuamluXCA7CivliIbnlYwgPiBidW5rYWlcIDsKK+WNg+S7niA+IHNlbmppblwgOwor6Lyq6LedID4gcmlua3lvXCA7CivoiabpppYgPiBrYW5zaHVcIDsKK+i/lOekvCA+IGhlbnJlaVwgOwor5YiA55eVID4gdG91a29uXCA7CivliJ3niYggPiBzaG9oYW5cIDsKK+mztOaIuCA+IG5hcnV0b1wgOwor5Y2B5LujID4ganV1ZGFpXCA7Civli5jlrpogPiBrYW5qb3VcIDsKK+WGheiSmSA+IG5haW1vdVwgOwor55uu57OeID4gbWVrdXNvXCA7CivluqfmtbQgPiB6YXlva3VcIDsKK+aomeiqniA+IGh5b3Vnb1wgOwor55m96KmxID4gaGFrdXdhXCA7CivliKTnhLYgPiBoYW56ZW5cIDsKK+egguWtkCA+IHN1bmFnb1wgOwor5byB5omNID4gYmVuc2FpXCA7CivmgqDjgIUgPiB5dXV5dXVcIDsKK+aoqeihoSA+IGtlbmtvdVwgOwor5Yq05b25ID4gcm91ZWtpXCA7CivojJfojbcgPiBteW91Z2FcIDsKK+ebruexoCA+IG1la2Fnb1wgOwor552A54mpID4ga2ltb25vXCA7Civou4rpoqggPiBzaGFmdXVcIDsKK+aomeiomCA+IGh5b3VraVwgOwor6aya6auvID4gc2h1emVuXCA7CivliY3mrrUgPiB6ZW5kYW5cIDsKK+mBruaWrSA+IHNoYWRhblwgOwor6IyO6JGJID4ga2VpeW91XCA7CivpganmmYIgPiB0ZWtpamlcIDsKK+W4q+evhCA+IHNoaWhhblwgOwor6I2J57SZID4gc291c2hpXCA7CivokL3lvowgPiByYWt1Z29cIDsKK+ebsueuoSA+IG1vdWthblwgOwor5Y2B5LiJID4ganV1c2FuXCA7CivljYHkuIcgPiBqdXVtYW5cIDsKK+avkuWRsyA+IGRva3VtaVwgOwor6JGJ5be7ID4gaGFtYWtpXCA7CivluILogoYgPiBzaGlzaGlcIDsKK+W8teWtkCA+IGhhcmlrb1wgOwor55+z5bGLID4gaXNoaXlhXCA7CivlvqHkuLsgPiBvbnVzaGlcIDsKK+mDveWQiCA+IHRzdWdvdVwgOwor5bm754eIID4gZ2VudG91XCA7CivlvqHkuK0gPiBvbmNodXVcIDsKK+iKsei8qiA+IGhhbmF3YVwgOwor5byB5oW2ID4gYmVua2VpXCA7CivlhY3oqLEgPiBtZW5reW9cIDsKK+W5sueKryA+IGthbnBhblwgOwor5Ymq5p6dID4gc2Vuc2hpXCA7CivoirHou7ggPiBrYWppa3VcIDsKK+W5veeEtiA+IHl1dXplblwgOwor5Ye555SwID4ga3Vib3RhXCA7Civoi6boobcgPiBrdWNodXVcIDsKK+eZuuimiyA+IGhha2tlblwgOwor5YWO6KeSID4gdG9rYWt1XCA7CivlvZPlnLAgPiB0b3VjaGlcIDsKK+W5sueJqSA+IGhpbW9ub1wgOwor5bmz54mIID4gaGVpaGFuXCA7Civoi6booYwgPiBrdWd5b3VcIDsKK+mvqOiEgiA+IGdlaXNoaVwgOwor5YaN6IiIID4gc2Fpa291XCA7CivokL3luqYgPiBvY2hpZG9cIDsKK+egsuWPsCA+IGhvdWRhaVwgOwor5YaN6IeoID4gc2FpcmluXCA7CivnoLLlj6MgPiBob3Vrb3VcIDsKK+ecn+eUsCA+IHNhbmFkYVwgOwor5Yqp5b25ID4gam95YWt1XCA7Civmr47lj7cgPiBtYWlnb3VcIDsKK+WKo+aApyA+IHJlc3NlaVwgOwor55uu56yKID4gbWV6YXJ1XCA7Civmra/lvaIgPiBoYWdhdGFcIDsKK+W8vuWljyA+IGRhbnNvdVwgOwor5YyF5ZCrID4gaG91Z2FuXCA7Civlu4PmoKEgPiBoYWlrb3VcIDsKK+W+jOS+vyA+IGtvdWJpblwgOwor6YG45oyZID4gc2Vua3lvXCA7CivljI3ljJAgPiBob2Z1a3VcIDsKK+mDiuWkliA+IGtvdWdhaVwgOwor5by35aemID4gZ291a2FuXCA7Civnmb3ooaMgPiBieWFrdWVcIDsKK+WJluaknCA+IGJvdWtlblwgOwor5beo6ImmID4ga3lva2FuXCA7CivpgLLmrakgPiBzaGlucG9cIDsKK+WHoeecvCA+IGJvbmdhblwgOwor5YOn6ZaAID4gc291bW9uXCA7Civov5Tnm4MgPiBoZW5wYWlcIDsKK+W3peiKuCA+IGtvdWdlaVwgOwor6LuN6ZqKID4gZ3VudGFpXCA7Civov5HnnIwgPiBraW5rZW5cIDsKK+iQveW3riA+IHJha3VzYVwgOwor5bm754GvID4gZ2VudG91XCA7Civlt6joiLkgPiBreW9zZW5cIDsKK+mxl+eKtiA+IHJpbmpvdVwgOwor5YaF6IiqID4gbmFpa291XCA7CivlhYjoposgPiBzZW5rZW5cIDsKK+i7jemZoyA+IGd1bmppblwgOwor6Lyq6KybID4gcmlua291XCA7CivmrovlrZggPiB6YW56b25cIDsKK+edgOeBqyA+IGNoYWtrYVwgOwor5bmz54S2ID4gaGVpemVuXCA7CivliIfniYcgPiBzZXBwZW5cIDsKK+eZuuihjCA+IGhha2tvdVwgOwor5YyX5YWJID4gaG9ra291XCA7CivmrablvrMgPiBidXRva3VcIDsKK+ecieebriA+IGJpbW9rdVwgOwor55yI55yIID4gdGFudGFuXCA7CivnnLzngrkgPiBnYW50ZW5cIDsKK+WLleWkqSA+IGRvdXRlblwgOwor5Yqf5b6zID4ga3Vkb2t1XCA7Civlvozku7sgPiBrb3VuaW5cIDsKK+W7g+adkCA+IGhhaXphaVwgOwor5YaF6IeTID4gbmFpem91XCA7Civlvozku7YgPiBrb3VrZW5cIDsKK+iJpumaiiA+IGthbnRhaVwgOwor6IuX6KOUID4gYnlvdWVpXCA7CivliqDlvbkgPiBrYXlha3VcIDsKK+mBuOaJiyA+IHNlbnNodVwgOwor5b6M5LujID4ga291ZGFpXCA7CivpsZfniYcgPiByaW5wZW5cIDsKK+W8iuW6lyA+IGhlaXRlblwgOwor55yf55CGID4gc2hpbnJpXCA7CivliIPniakgPiBoYW1vbm9cIDsKK+WElei8qSA+IHNhaWhhaVwgOwor55qu6IacID4gaGltYWt1XCA7CivlvozkurogPiBrb3VqaW5cIDsKK+W9ueWEgCA+IHlha3VnaVwgOwor55yf54+gID4gc2hpbmp1XCA7CivlkKbjgIUgPiBpeWFpeWFcIDsKK+WJquaWrSA+IHNlbmRhblwgOwor5YWs6JGsID4ga291c291XCA7CivnoILloLQgPiBzdW5hYmFcIDsKK+W8geW9kyA+IGJlbnRvdVwgOwor5YaF6IWUID4gbmFpa291XCA7CivpgJPmuJsgPiB0ZWlnZW5cIDsKK+W3oeiIqiA+IGp1bmtvdVwgOwor5b6A5L+hID4gb3VzaGluXCA7Civou43ploAgPiBndW5tb25cIDsKK+W6p+aomSA+IHphaHlvdVwgOwor5q2j5b2TID4gc2VpdG91XCA7CivojZLnpZ4gPiBrb3VqaW5cIDsKK+mtmumBkyA+IGd5b2RvdVwgOwor5q275bGNID4gc2hpc2hpXCA7CivoiYfpppYgPiB0ZWlzaHVcIDsKK+mCquWulyA+IGphc2h1dVwgOwor5q2j5bymID4gc2VpZ2VuXCA7CivojYnnqL8gPiBzb3Vrb3VcIDsKK+WLh+WnvyA+IHl1dXNoaVwgOwor5YaN6ICDID4gc2Fpa291XCA7CivliIbnhZkgPiBidW4nJ2VuXCA7CivmrKDmnKwgPiBrZXBwb25cIDsKK+W+jOS4liA+IGtvdXNlaVwgOwor5YWI6KGMID4gc2Vua291XCA7Civou5/pi7wgPiBuYW5rb3VcIDsKK+avjuWIhiA+IG1haWZ1blwgOwor5Yi25q2iID4gc2Vpc2hpXCA7Civpg7XliLggPiB5dXVrZW5cIDsKK+iNkuejryA+IGFyYWlzb1wgOwor6Lu96LypID4ga2VpaGFpXCA7Civoj6/ml48gPiBrYXpva3VcIDsKK+W9ouWLoiA+IGtlaXNlaVwgOwor5qeL6YCgID4ga291em91XCA7CivokZflpKcgPiBjaG9kYWlcIDsKK+WHuueJqSA+IGRlbW9ub1wgOwor6IyF6IiOID4gYm91c2hhXCA7Civluqfmpa0gPiB6YWd5b3VcIDsKK+WLneWboCA+IHNob3VpblwgOwor55m96Jm5ID4gaGFra291XCA7Civnmq7ogokgPiBoaW5pa3VcIDsKK+WJjeagvSA+IHNlbnphaVwgOwor6auY6b2iID4ga291cmVpXCA7CivnoLLlhbUgPiBob3VoZWlcIDsKK+WGheiBniA+IG5haWJ1blwgOwor5YiG54K5ID4gYnVudGVuXCA7CivmrbvlroggPiBzaGlzaHVcIDsKK+W6leatoiA+IHRlaXNoaVwgOwor5YW16Ii5ID4gaGVpc2VuXCA7CivliKXms5UgPiBiZXBwb3VcIDsKK+WHuOeJiCA+IHRvcHBhblwgOwor5YWr6I2SID4gaGFra291XCA7CivpgJrmsJcgPiB0c3V1a2lcIDsKK+WKoOW3niA+IGthc2h1dVwgOwor5q2j5bi9ID4gc2VpYm91XCA7CivlhbXoiI4gPiBoZWlzaGFcIDsKK+ato+W4uCA+IHNlaWpvdVwgOwor5bu75buKID4ga2Fpcm91XCA7CivpgJ/mrakgPiBzb2t1aG9cIDsKK+W5sua9nyA+IGhpZ2F0YVwgOwor6Lu96LqBID4ga2Vpc291XCA7CivpgaXmi50gPiB5b3VoYWlcIDsKK+mBiuaYnyA+IHl1dXNlaVwgOwor6Iq46KuHID4gZ2VpZGFuXCA7CivpgY7mlpkgPiBrYXJ5b3VcIDsKK+WLh+WjriA+IHl1dXNvdVwgOwor5YuH5aOrID4geXV1c2hpXCA7Civnm6PnpoEgPiBrYW5raW5cIDsKK+W3p+iAhSA+IGtvdXNoYVwgOwor5YSq6KuaID4geXV1am91XCA7Civps6nluqcgPiBoYXRvemFcIDsKK+efreWkpyA+IHRhbmRhaVwgOwor5bem57+8ID4gc2F5b2t1XCA7CivojLbnrYUgPiBjaGFzZW5cIDsKK+WJjeadvyA+IG1hZWl0YVwgOwor5YO76YGgID4gaGVraWVuXCA7Civpq5jpupcgPiBrb3VyYWlcIDsKK+i6q+mggyA+IG1pZ29yb1wgOwor55+z5aGKID4gc2Vra2FpXCA7CivliY3mnaEgPiB6ZW5qb3VcIDsKK+WFpeiNtyA+IG55dXVrYVwgOwor5bSH6auYID4gc3V1a291XCA7CivlibLmi6AgPiBrYWtreW9cIDsKK+W8t+WbuiA+IGt5b3Vrb1wgOwor5q2T5b6FID4ga2FudGFpXCA7CivlubPmupYgPiBoZWlqdW5cIDsKK+iIuemmliA+IHNlbnNodVwgOwor5byf5aa5ID4gdGVpbWFpXCA7Civnl5vpo7IgPiB0c3V1aW5cIDsKK+WKvuWljyA+IGdhaXNvdVwgOwor5bmy5rqAID4ga2FubWFuXCA7CivliY3mm7ggPiB6ZW5zaG9cIDsKK+W7tuW5tCA+IGVuJyduZW5cIDsKK+eXhemtlCA+IGJ5b3VtYVwgOwor5bqD5rGOID4ga291aGFuXCA7CivliKnmrLIgPiByaXlva3VcIDsKK+mDreWFrCA+IGtha2tvdVwgOwor5YWs6IiOID4ga291c2hhXCA7Civluq3mnKggPiBuaXdha2lcIDsKK+alvemfsyA+IGdha3VvblwgOwor5q6L5aGBID4gemFucnVpXCA7CivlhaXoi5EgPiBueXV1ZW5cIDsKK+iLpeiRiSA+IHdha2FiYVwgOwor5YeG55yLID4ganVua2FuXCA7Civlho3nt6ggPiBzYWloZW5cIDsKK+WHjeeYoSA+IHRvdXNvdVwgOwor5bi455SoID4gam91eW91XCA7Civli7Llip8gPiBrdW5rb3VcIDsKK+W8iuWusyA+IGhlaWdhaVwgOwor5q2k5bK4ID4gc2hpZ2FuXCA7CivlhajoiLkgPiB6ZW5zZW5cIDsKK+W5s+a3oSA+IGhlaXRhblwgOwor5YWo6IisID4gemVucGFuXCA7CivliY3mma8gPiB6ZW5rZWlcIDsKK+mBoOaImiA+IGVuc2VraVwgOwor5q665YiwID4gc2F0dG91XCA7Civlh7rngasgPiBzaHVra2FcIDsKK+ebruebmyA+IG1lbW9yaVwgOwor6Iul6I+cID4gd2FrYW5hXCA7CivluIbnq4sgPiBob3RhdGVcIDsKK+mDoeWItiA+IGd1bnNlaVwgOwor6YO15L6/ID4geXV1YmluXCA7Civou6LpgIEgPiB0ZW5zb3VcIDsKK+mBt+W7tiA+IHNlbicnZW5cIDsKK+atpuWwhiA+IGJ1c2hvdVwgOwor55uu55m9ID4gbWVqaXJvXCA7CivlurbmlL8gPiBzaG9zZWlcIDsKK+ebquebqiA+IHRvdXRvdVwgOwor5Yid5q61ID4gc2hvZGFuXCA7CivlvZPliJ0gPiB0b3VzaG9cIDsKK+iIuemgrSA+IHNlbmRvdVwgOwor5b2T5YiGID4gdG91YnVuXCA7CivpgLHmnJ8gPiBzaHV1a2lcIDsKK+mDjuWQmyA+IHJvdWt1blwgOwor5byY5aSnID4ga291ZGFpXCA7Civov5HnirYgPiBraW5qb3VcIDsKK+W3qOe3qCA+IGt5b2hlblwgOwor5q6L5ZyoID4gemFuem9uXCA7CivoirHoposgPiBoYW5hbWlcIDsKK+avgOWCtyA+IGtpc2hvdVwgOwor5YaF57eaID4gbmFpc2VuXCA7Civlt6fnt7sgPiBrb3VjaGlcIDsKK+asoOaQjSA+IGtlc3NvblwgOwor5YaF57eSID4gbmFpc2hvXCA7CivpgbflubggPiBzZW5rb3VcIDsKK+WIkeazlSA+IGtlaWhvdVwgOwor6bO05a2QID4gbmFydWtvXCA7CivliY3mlocgPiB6ZW5idW5cIDsKK+iIt+mgrSA+IGdlbnRvdVwgOwor5q2m5a2mID4gYnVnYWt1XCA7CivpgaPmgrYgPiBrZW5tb25cIDsKK+WHuua9riA+IGRlc2hpb1wgOwor5bit55S7ID4gc2VraWdhXCA7CivpgIbmr5sgPiBzYWthZ2VcIDsKK+mBqeW/nCA+IHRla2lvdVwgOwor6a2a6LKdID4gZ3lvYmFpXCA7Civoi6Xoir0gPiB3YWthbWVcIDsKK+i7oui8iSA+IHRlbnNhaVwgOwor5Ya355y8ID4gcmVpZ2FuXCA7Civli6Tli4kgPiBraW5iZW5cIDsKK+WKseWjsCA+IHJlaXNlaVwgOwor5qub5q+UID4gc2hpcHBpXCA7CivpgIHmsLQgPiBzb3VzdWlcIDsKK+WLpOWKtCA+IGtpbnJvdVwgOwor5biC56iOID4gc2hpemVpXCA7CivnoLLkuLggPiBob3VnYW5cIDsKK+avjeS5syA+IGJvbnl1dVwgOwor6Lui6LuiID4gdGVudGVuXCA7CivpgZTmiJAgPiB0YXNzZWlcIDsKK+WGhee0myA+IG5haWZ1blwgOwor5Yu/5L2TID4gbW90dGFpXCA7Civli5jlkIggPiBrYW5nb3VcIDsKK+iMtueilyA+IGNoYXdhblwgOwor6LuN6YWNID4gZ3VuYmFpXCA7CivlubPmsLQgPiBoZWlzdWlcIDsKK+W8mOWgsSA+IGtvdWhvdVwgOwor6bOl5bGLID4gdG9yaXlhXCA7CivmrL7lvoUgPiBrYW50YWlcIDsKK+W5s+awkSA+IGhlaW1pblwgOwor5bmz5rCPID4gaGVpc2hpXCA7Civnmb7oirEgPiBoeWFra2FcIDsKK+mAo+aenSA+IHJlbnNoaVwgOwor5q+N5LiKID4gaGFoYXVlXCA7Civli5XlkJEgPiBkb3Vrb3VcIDsKK+eWvumnhiA+IHNoaWtrdVwgOwor5Ye95rigID4ga2Fua3lvXCA7CivovrLnlKMgPiBub3VzYW5cIDsKK+WIkeatuyA+IGtlaXNoaVwgOwor5qW86ZaAID4gcm91bW9uXCA7CivlhaznvbIgPiBrb3VzaG9cIDsKK+eekeaDsyA+IG1laXNvdVwgOwor5bm05q2vID4gbmVuc2hpXCA7CivpgKDmnpcgPiB6b3VyaW5cIDsKK+iIuemaiiA+IHNlbnRhaVwgOwor6YGg5b+DID4gZW5zaGluXCA7Civoi5voi5sgPiBpcmFpcmFcIDsKK+W8seWRsyA+IHlvd2FtaVwgOwor6YGp5bqmID4gdGVraWRvXCA7CivliYrmkakgPiBzYWt1bWFcIDsKK+i8quiUtSA+IHJpbnpvdVwgOwor5by+5Yq+ID4gZGFuZ2FpXCA7CivpgZTmhI8gPiB0YXRzdWlcIDsKK+W6leacrCA+IHRlaWhvblwgOwor5Yiw5p2lID4gdG91cmFpXCA7CivnmbroiaYgPiBoYWtrYW5cIDsKK+WIjuatuyA+IGZ1bnNoaVwgOwor6LuN6YGTID4gZ3VuZG91XCA7CivlibXlu7ogPiBzb3VrZW5cIDsKK+WJjeaPkCA+IHplbnRlaVwgOwor5q275ZywID4gc2hpY2hpXCA7CivlhqznnYAgPiBmdXl1Z2lcIDsKK+mAoOacrCA+IHpvdWhvblwgOwor55yL54K5ID4ga2FudGVuXCA7CivmrKPmh5AgPiBraW5rYWlcIDsKK+iWhOOAhSA+IHVzdXVzdVwgOwor5YmN5o6yID4gemVua2VpXCA7CivlhqznnKAgPiB0b3VtaW5cIDsKK+eZuuiIqiA+IGhha2tvdVwgOwor5Yud5YipID4gc2hvdXJpXCA7Civlt6jnr4cgPiBreW9oZW5cIDsKK+eZu+iHqCA+IHRvdXJpblwgOwor6LuK6YGTID4gc2hhZG91XCA7CivlvLfljJYgPiBreW91a2FcIDsKK+ato+WmuyA+IHNlaXNhaVwgOwor6L6b55uuID4ga2FyYW1lXCA7Civli5Xli6IgPiBkb3VzZWlcIDsKK+eXtOmIjSA+IGNoaWRvblwgOwor6JGX5ZCNID4gY2hvbWVpXCA7Civmrovlk4EgPiB6YW5waW5cIDsKK+W6uOaJjSA+IHlvdXNhaVwgOwor5YuV5Yq0ID4gZG91cm91XCA7Civou5LovIogPiBrZW5jaGlcIDsKK+WFieiKkiA+IGtvdWJvdVwgOwor5biv54q2ID4gb2Jpam91XCA7Civoi6bogokgPiBrdW5pa3VcIDsKK+mzs+WjsCA+IGhvdXNlaVwgOwor6YCj5pifID4gcmVuc2VpXCA7CivnmofogIMgPiBrb3Vrb3VcIDsKK+ebrueOiSA+IG1lZGFtYVwgOwor6auY6aiwID4ga291dG91XCA7CivojLbnm4YgPiBjaGFib25cIDsKK+mDjuWFmiA+IHJvdWRvdVwgOwor5biD55+zID4gZnVzZWtpXCA7Civoh6Xpvo0gPiBnYXJ5b3VcIDsKK+W8geWkqSA+IGJlbnRlblwgOwor5YiH5q2vID4gc2Vzc2hpXCA7Civou73oppYgPiBrZWlzaGlcIDsKK+efreWRvSA+IHRhbm1laVwgOwor5bej566xID4gc3ViYWtvXCA7Civmrr/kuIogPiB0ZW5qb3VcIDsKK+iIt+mWgCA+IGdlbm1vblwgOwor6YG45a6aID4gc2VudGVpXCA7Civli4flkI0gPiB5dXVtZWlcIDsKK+ato+WkpyA+IHNlaWRhaVwgOwor6auR6auPID4gZG9rdXJvXCA7CivliKnmnK0gPiByaWZ1ZGFcIDsKK+mBt+WuriA+IHNlbmd1dVwgOwor6Lui6LK4ID4gdGVudGFpXCA7Civlub3mo7IgPiB5dXVzZWlcIDsKK+atr+WeoiA+IHNoaWtvdVwgOwor5byB5aOrID4gYmVuc2hpXCA7CivpgZPlv7UgPiBkb3VuZW5cIDsKK+ees+WtlCA+IGRvdWtvdVwgOwor556z5a2QID4gZG91c2hpXCA7Civmra/lnosgPiBoYWdhdGFcIDsKK+W9k+S7oyA+IHRvdWRhaVwgOwor5bqK5py6ID4gc2hvdWdpXCA7CivliKXmna8gPiBiZXBwYWlcIDsKK+WFiOiIrCA+IHNlbnBhblwgOwor5b2T5LuKID4gdG91a29uXCA7Civli6TlgLkgPiBraW5rZW5cIDsKK+WJm+aDhSA+IGdvdWpvdVwgOwor5b2T5Lq6ID4gdG91bmluXCA7CivpgbXlroggPiBqdW5zaHVcIDsKK+i7iui8qiA+IHNoYXJpblwgOwor5Yid5qChID4gc2hva291XCA7Civou43ou4ogPiBndW5zaGFcIDsKK+atjOWtpiA+IGthZ2FrdVwgOwor6YCj5pWXID4gcmVucGFpXCA7Civlhajnt6ggPiB6ZW5wZW5cIDsKK+W6leaVsCA+IHRlaXN1dVwgOwor5Ye65rC0ID4gZGVtaXp1XCA7Civlhajnt5ogPiB6ZW5zZW5cIDsKK+i7veijhSA+IGtlaXNvdVwgOwor6Lqr6YqtID4gbWl6ZW5pXCA7CivoiabovIkgPiBrYW5zYWlcIDsKK+WCjemhjCA+IGJvdWRhaVwgOwor6YGV5byPID4gaXNoaWtpXCA7CivluoPmnbEgPiBrYW50b25cIDsKK+W4g+ebriA+IG51bm9tZVwgOwor5YW456+EID4gdGVucGFuXCA7CivlvZPkuLsgPiB0b3VzaHVcIDsKK+eXhemZoiA+IGJ5b3VpblwgOwor6YCB5qScID4gc291a2VuXCA7Civls7DpoK0gPiBob3V0b3VcIDsKK+efpeWRvSA+IGNoaW1laVwgOwor5bm95qCWID4geXV1c2VpXCA7Civnm5fnlKggPiB0b3V5b3VcIDsKK+WJm+aApyA+IGdvdXNlaVwgOwor5qyj5b+rID4ga2lua2FpXCA7CivlvZPkuJYgPiB0b3VzZWlcIDsKK+WFq+e0mCA+IGhha2tvdVwgOwor5YuJ5YqxID4gYmVucmVpXCA7CivpgJ/mlLsgPiBzb2trb3VcIDsKK+WHuuauuyA+IGRlZ2FyYVwgOwor5YWO6IKJID4gdG9uaWt1XCA7CivnnKDmsJcgPiBuZW11a2VcIDsKK+iMtueVqiA+IGNoYWJhblwgOwor55yf5rC0ID4gbWFtaXp1XCA7Civlt6bnqIsgPiBzYWhvZG9cIDsKK+WIhuaoqSA+IGJ1bmtlblwgOwor6auY6aKoID4ga291ZnV1XCA7Civnn6XlkI0gPiBjaGltZWlcIDsKK+W3peeoiyA+IGtvdXRlaVwgOwor5bm95p6XID4geXV1cmluXCA7Civov5TmuIggPiBoZW5zYWlcIDsKK+WFqOe0mSA+IHplbnNoaVwgOwor5Yas55OcID4gdG91Z2FuXCA7Civmrorli7IgPiBzaHVrdW5cIDsKK+WFieiDjCA+IGtvdWhhaVwgOwor6LuM6LehID4ga2lzZWtpXCA7CivlvLHlhqAgPiBqYWtrYW5cIDsKK+W8vuWAiSA+IGRhbnNvdVwgOwor55+l5Y+LID4gY2hpeXV1XCA7CivliqDlnKcgPiBrYWF0c3VcIDsKK+iMtueTtiA+IGNoYWJpblwgOwor6YCj5pC6ID4gcmVua2VpXCA7CivliJ3mm7QgPiBzaG9rb3VcIDsKK+WIqeaVtSA+IHJpdGVraVwgOwor5Yik5piOID4gaGFubWVpXCA7Civmrbvlkb0gPiBzaGltZWlcIDsKK+mBqeWunCA+IHRla2lnaVwgOwor5q6K5YqfID4gc2h1a291XCA7CivlvKXli5IgPiBtaXJva3VcIDsKK+WGpeeVjCA+IG1laWthaVwgOwor6Iqt6JWJID4gYmFzaG91XCA7CivpgYvlvJMgPiB1bmt5dXVcIDsKK+WJo+W4ryA+IGtlbnRhaVwgOwor6YCA5qChID4gdGFpa291XCA7Civpq5jpn7MgPiB0YWthbmVcIDsKK+iJr+iyqCA+IHJ5b3VrYVwgOwor5YW156uvID4gaGVpdGFuXCA7Civnn63liaMgPiB0YW5rZW5cIDsKK+WFiOiBliA+IHNlbnNlaVwgOwor5YWo57GzID4gemVuYmVpXCA7Civnm7LngrkgPiBtb3V0ZW5cIDsKK+WIpOaWrSA+IGhhbmRhblwgOwor5YW156uZID4gaGVpdGFuXCA7CivmrZPlo7AgPiBrYW5zZWlcIDsKK+asveWumiA+IGtpbnRlaVwgOwor6YCP5piOID4gdG91bWVpXCA7Civph43jgIUgPiBqdXVqdXVcIDsKK+i7n+irliA+IG5hbnJvblwgOwor6YK45YaFID4gdGVpbmFpXCA7CivnmofntbEgPiBrb3V0b3VcIDsKK+i/kea1tyA+IGtpbmthaVwgOwor5YWN572qID4gbWVuemFpXCA7Civlu4PluJ0gPiBoYWl0ZWlcIDsKK+WFiOiAgyA+IHNlbmtvdVwgOwor55+t5YiAID4gdGFudG91XCA7Civli5jkvosgPiBrYW5yZWlcIDsKK+WFrOeulyA+IGtvdXNhblwgOwor6IiM6aCtID4gemV0dG91XCA7CivpgbjlpJYgPiBzZW5nYWlcIDsKK+atu+WOuyA+IHNoaWt5b1wgOwor6LuN6LOHID4gZ3Vuc2hpXCA7CivmrKflt54gPiBvdXNodXVcIDsKK+W8leWQiCA+IGhpa2lhaVwgOwor5bm95pmvID4geXV1a2VpXCA7CivpgYrlupUgPiB5dXV0ZWlcIDsKK+efpeWLhyA+IGNoaXl1dVwgOwor55+p5YmHID4ga3Vzb2t1XCA7Civlt6HnpLwgPiBqdW5yZWlcIDsKK+mBteWliSA+IGp1bnBvdVwgOwor5bm05p2lID4gbmVucmFpXCA7CivliJ3ml6wgPiBzaG9qdW5cIDsKK+W5s+advyA+IGhlaWJhblwgOwor5YSA6KGoID4gZ2loeW91XCA7CivmrY7lo7AgPiB0YW5zZWlcIDsKK+WFqOevhyA+IHplbnBlblwgOwor5YW156iuID4gaGVpc2h1XCA7Civlt6jnoLIgPiBreW9ob3VcIDsKK+eahue0jSA+IGthaW5vdVwgOwor6Iez6auYID4gc2hpa291XCA7Civlub3mmI4gPiB5dXVtZWlcIDsKK+aui+WFmiA+IHphbnRvdVwgOwor5qyh5bitID4gamlzZWtpXCA7CivmrYzlo7AgPiB1dGFnb2VcIDsKK+aooee0oiA+IG1vc2FrdVwgOwor5q6L5YWJID4gemFua291XCA7Civli5XkvZMgPiBkb3V0YWlcIDsKK+WFg+iAgSA+IGdlbnJvdVwgOwor6a6u57SFID4gc2Vua291XCA7Civlia/lrpggPiBmdWtrYW5cIDsKK+iKs+iNiSA+IGhvdXNvdVwgOwor55yf5qiqID4gbWF5b2tvXCA7Civlhavnq68gPiBoYXR0YW5cIDsKK+W3p+efpSA+IGtvdWNoaVwgOwor5YiG5qChID4gYnVua291XCA7CivpgKPmipUgPiByZW50b3VcIDsKK+WFuOekvCA+IHRlbnJlaVwgOwor55uX54qvID4gdG91aGFuXCA7CivlvL7kuLggPiBkYW5nYW5cIDsKK+atjOWigyA+IGtha3lvdVwgOwor5YaZ55SfID4gc2hhc2VpXCA7Civmrovlg48gPiB6YW56b3VcIDsKK+WKtOWLlSA+IHJvdWRvdVwgOwor5q2p5ZOoID4gaG9zaG91XCA7CivnnIzmsJEgPiBrZW5taW5cIDsKK+WLh+WBpSA+IHl1dWtlblwgOwor5YaX55SoID4gam91eW91XCA7CivliarlrpogPiBzZW50ZWlcIDsKK+WJo+WxsSA+IGtlbnphblwgOwor5Yq05YqfID4gcm91a291XCA7CivpgKPmiKYgPiByZW5zZW5cIDsKK+WGt+eEtiA+IHJlaXplblwgOwor56CC5LiYID4gc2FreXV1XCA7Civli5XkubEgPiBkb3VyYW5cIDsKK+WItuaGsiA+IHNlaWtlblwgOwor5byT5YuiID4geXVuemVpXCA7CivlhoXnnIEgPiBuYWlzZWlcIDsKK+W7g+WxsSA+IGhhaXphblwgOwor5YmN5bqtID4gemVudGVpXCA7CivlubPmmI4gPiBoZWltZWlcIDsKK+atu+WIkSA+IHNoaWtlaVwgOwor5Ym15aeLID4gc291c2hpXCA7CivnnInmr5sgPiBtYXl1Z2VcIDsKK+mAoOaIkCA+IHpvdXNlaVwgOwor5beo55uXID4ga3lvdG91XCA7Civlu4PlsYsgPiBoYWlva3VcIDsKK+WIh+abvyA+IHNldHRhaVwgOwor5YWs56eBID4ga291c2hpXCA7Civmrbvlh6YgPiBzaGlzaG9cIDsKK+mAg+aVoyA+IHRvdXNhblwgOwor6Lqr6Lu9ID4gbWlnYXJ1XCA7CivlhYnnt5ogPiBrb3VzZW5cIDsKK+W7o+WgsSA+IGtvdWhvdVwgOwor55+i5YWIID4geWFzYWtpXCA7CivlubPmlrkgPiBoZWlob3VcIDsKK+i7jeirhyA+IGd1bmRhblwgOwor6I+v5a6iID4ga2FrYWt1XCA7CivpgY7lsJEgPiBrYXNob3VcIDsKK+mBjuWwjyA+IGthc2hvdVwgOwor5bm05pWwID4gbmVuc3V1XCA7CivmraPlkbMgPiBzaG91bWlcIDsKK+mAgOaVoyA+IHRhaXNhblwgOwor5YWs56S+ID4ga291c2hhXCA7Civoirjog70gPiBnZWlub3VcIDsKK+mAo+aDsyA+IHJlbnNvdVwgOwor5YaN55SfID4gc2Fpc2VpXCA7CivmrovkvZkgPiB6YW4nJ3lvXCA7CivpgY7lrqIgPiBrYWtha3VcIDsKK+mBo+WkliA+IGtlbmdhaVwgOwor5Yag54q2ID4ga2Fuam91XCA7CivmrKHlsIYgPiBqaXNob3VcIDsKK+W8geWPoyA+IGJlbmtvdVwgOwor5bmy5pSvID4ga2Fuc2hpXCA7CivnmpPnpKwgPiBrb3ViYW5cIDsKK+ato+WPtyA+IHNlaWdvdVwgOwor5q2j5Y+yID4gc2Vpc2hpXCA7Civoi6bnrJEgPiBrdXNob3VcIDsKK+WFqOekviA+IHplbnNoYVwgOwor5YiG5piOID4gYnVubWVpXCA7CivlvJPlhbcgPiBreXV1Z3VcIDsKK+mAsuW6piA+IHNoaW5kb1wgOwor55mM6IWrID4gZ2Fuc2h1XCA7CivliqPli6IgPiByZXNzZWlcIDsKK+WKtOWDjSA+IHJvdWRvdVwgOwor55+u5Lq6ID4gd2FpamluXCA7Civlu7vlkJEgPiBrYWlrb3VcIDsKK+iNkua1tyA+IGFyYXVtaVwgOwor6bO05YuVID4gbWVpZG91XCA7CivlhoXnlYwgPiBuYWlrYWlcIDsKK+W6p+W4rSA+IHphc2VraVwgOwor5q2j5Y2XID4gc2VpbmFuXCA7CivoirjogIUgPiBnZWlzaGFcIDsKK+mBiuWtkCA+IHl1dXNoaVwgOwor5q2j5Y2IID4gc2hvdWdvXCA7CivlhoXnlKggPiBuYWl5b3VcIDsKK+WIpeaHhyA+IGJla2tvblwgOwor5Yi25b6hID4gc2VpZ3lvXCA7CivliIbmlbAgPiBidW5zdXVcIDsKK+WIhuaVoyA+IGJ1bnNhblwgOwor5YSq6ICFID4geXV1c2hhXCA7CivnmbvnrKwgPiB0b3VkYWlcIDsKK+atr+WGoCA+IHNoaWthblwgOwor5YaN54++ID4gc2FpZ2VuXCA7Civlurflr6cgPiBrb3VuZWlcIDsKK+WFrOefpSA+IGtvdWNoaVwgOwor5Yqf5Yq0ID4ga291cm91XCA7CivmrITlubIgPiByYW5rYW5cIDsKK+WIl+aMmSA+IHJla2t5b1wgOwor5YmN5bGxID4gemVuemFuXCA7CivlvKXkuYUgPiBiaWt5dXVcIDsKK+eZuuerryA+IGhvdHRhblwgOwor5Yid5oimID4gc2hvc2VuXCA7Civou43oo4UgPiBndW5zb3VcIDsKK+WIpeaEjyA+IGJldHN1aVwgOwor5Ye65pmCID4gZGVkb2tpXCA7CivpgKPlvL4gPiByZW5kYW5cIDsKK+WFqOefpSA+IHplbmNoaVwgOwor55+l5Lq6ID4gY2hpamluXCA7CivojKvnhLYgPiBib3V6ZW5cIDsKK+i8lOe/vCA+IGhveW9rdVwgOwor6L6y5rOVID4gbm91aG91XCA7CivmrYzllLEgPiBrYXNob3VcIDsKK+WIqeaBryA+IHJpc29rdVwgOwor5bqc5bqBID4gZnVjaG91XCA7CivnnJ/mmpcgPiBtYWt1cmFcIDsKK+W6tuWtkCA+IHNob3NoaVwgOwor6I+v5aWiID4ga3lhc2hhXCA7Civoh7Ppm6MgPiBzaGluYW5cIDsKK+WHjeatuyA+IHRvdXNoaVwgOwor5Yq05L2/ID4gcm91c2hpXCA7Civlu4nlo7IgPiByZW5iYWlcIDsKK+mAoOW9oiA+IHpvdWtlaVwgOwor5q275L2TID4gc2hpdGFpXCA7CivpgKLlvJUgPiBhaWJpa2lcIDsKK+WBnOmgkyA+IHRlaXRvblwgOwor55m+56eRID4gaHlha2thXCA7CivpgbrlkYogPiB5dWlnb3VcIDsKK+WHveaVsCA+IGthbnN1dVwgOwor5Ya35rehID4gcmVpdGFuXCA7CivpgIbmiYsgPiBzYWthdGVcIDsKK+ecn+aYvCA+IG1haGlydVwgOwor5Ye65pa5ID4gZGVrYXRhXCA7CivpgZPlo6sgPiBkb3VzaGlcIDsKK+WJjeWumCA+IHplbmthblwgOwor5Ymj5aOrID4ga2Vuc2hpXCA7Civlhaznm4ogPiBrb3Vla2lcIDsKK+iIuei3ryA+IGZ1bmFqaVwgOwor6YKm5Lq6ID4gaG91amluXCA7Civnlo7pmpQgPiBzb2tha3VcIDsKK+WItuW4vSA+IHNlaWJvdVwgOwor5Yqg5YWlID4ga2FueXV1XCA7Civlho3niq8gPiBzYWloYW5cIDsKK+WFiOerryA+IHNlbnRhblwgOwor6L6y5rCRID4gbm91bWluXCA7CivpgaDlm70gPiBvbmdva3VcIDsKK+WFt+eUsyA+IGd1c2hpblwgOwor6I235pytID4gbmlmdWRhXCA7CivluK3mrKEgPiBzZWtpamlcIDsKK+WIqeW+lyA+IHJpdG9rdVwgOwor5YWo55uyID4gemVubW91XCA7CivmrbvkuqEgPiBzaGlib3VcIDsKK+W3qOeNoyA+IGt5b2p1dVwgOwor5bK46aCtID4gZ2FudG91XCA7CivokL3kvI0gPiByYWt1Z29cIDsKK+ato+WFtSA+IHNlaWhlaVwgOwor5YWo55ubID4gemVuc2VpXCA7CivouYjpnrQgPiB0YXRhcmFcIDsKK+mAo+W4ryA+IHJlbnRhaVwgOwor6YCf5bqmID4gc29rdWRvXCA7CivliLDlupUgPiB0b3V0ZWlcIDsKK+WFjeeojiA+IG1lbnplaVwgOwor5YaN54mIID4gc2FpaGFuXCA7Civlia/lm6AgPiBmdWt1aW5cIDsKK+eZuuemgSA+IGhha2tpblwgOwor6IiM6YuSID4gemVwcG91XCA7CivpgKDluaMgPiB6b3VoZWlcIDsKK+mBk+WgtCA+IGRvdWpvdVwgOwor5qiZ56S6ID4gaHlvdWppXCA7Civlu4Plop8gPiBoYWlreW9cIDsKK+W5s+aJiyA+IGhpcmF0ZVwgOwor6L+U5p2vID4gaGVucGFpXCA7CivlgZzpm7sgPiB0ZWlkZW5cIDsKK+WBpemXmCA+IGtlbnRvdVwgOwor6Iif6YGLID4gc2h1dXVuXCA7CivmqKrnm64gPiB5b2tvbWVcIDsKK+W5s+aIkCA+IGhlaXNlaVwgOwor5Yex5peLID4gZ2Fpc2VuXCA7Civljq3jgIUgPiBpeWFpeWFcIDsKK+ebruasoSA+IG1va3VqaVwgOwor5Ya35rOJID4gcmVpc2VuXCA7CivlhajnmZIgPiB6ZW4nJ3l1XCA7Civnmb3no4EgPiBoYWt1amlcIDsKK+i/lOacrCA+IGhlbnBvblwgOwor5Yil5b2iID4gYmVra2VpXCA7Civlubvmg7MgPiBnZW5zb3VcIDsKK+eci+advyA+IGthbmJhblwgOwor5YaN54eDID4gc2FpbmVuXCA7CivnnYDmhI8gPiBjaGFrdWlcIDsKK+WGheeKtiA+IG5haWpvdVwgOwor5Yil5b2TID4gYmV0dG91XCA7Civov5HmnbEgPiBraW50b3VcIDsKK+W7uuWFtyA+IHRhdGVndVwgOwor6L+R5p2lID4ga2lucmFpXCA7Civov5Tmm7ggPiBoZW5zaG9cIDsKK+W6j+W5lSA+IGpvbWFrdVwgOwor5YG06Y6WID4gc29rdXNhXCA7CivmpoLoq5YgPiBnYWlyb25cIDsKK+eXhei6ryA+IGJ5b3VrdVwgOwor5qW96K2cID4gZ2FrdWZ1XCA7CivlhrfmsZcgPiByZWlrYW5cIDsKK+WIhuaLhSA+IGJ1bnRhblwgOwor6L6j5rK5ID4gcmF6ZXl1XCA7Civpq5jphY0gPiBrb3VoYWlcIDsKK+W7t+WGhSA+IHRlaW5haVwgOwor5YqH5YyWID4gZ2VraWthXCA7CivlhrfmsLQgPiByZWlzdWlcIDsKK+WIneW/lyA+IHNob3NoaVwgOwor5YWs55SwID4ga291ZGVuXCA7CivpgoTlhYMgPiBrYW5nZW5cIDsKK+mAleW6rSA+IGtlaXRlaVwgOwor5Yip5bmFID4gcmloYWJhXCA7CivlhaznlKggPiBrb3V5b3VcIDsKK+WHoeabuCA+IGJvbnNob1wgOwor6YCj5bOwID4gcmVucG91XCA7Civliofli5kgPiBnZWtpbXVcIDsKK+W3oeeLqSA+IGp1bnNodVwgOwor5YiH5omLID4ga2lyZXRlXCA7CivlubvmgKogPiBnZW5rYWlcIDsKK+i/veaFlSA+IHRzdWlib1wgOwor5q2m5L6gID4gYnVreW91XCA7CivnmbrnoLIgPiBoYXBwb3VcIDsKK+W7g+WdkSA+IGhhaWtvdVwgOwor6Lqr6KixID4gbWltb3RvXCA7CivpganlkKYgPiB0ZWtpaGlcIDsKK+WHuuaOmyA+IGRlZ2FrZVwgOwor5YaG54afID4gZW5qdWt1XCA7CivlhajnlLIgPiB6ZW5rb3VcIDsKK+i/keaZryA+IGtpbmtlaVwgOwor5q2M5YqHID4ga2FnZWtpXCA7CivpgKPlsbEgPiByZW56YW5cIDsKK+mrmOmCgSA+IGtvdW1haVwgOwor5YmN5aWPID4gemVuc291XCA7CivlupflsYsgPiBtaXNleWFcIDsKK+WHpuaWuSA+IHNob2hvdVwgOwor6Iiq6LWwID4ga291c291XCA7Civlh6bmlq0gPiBzaG9kYW5cIDsKK+mBjeWcqCA+IGhlbnphaVwgOwor5q2j5L2/ID4gc2Vpc2hpXCA7CivliLvlrZcgPiBrb2t1amlcIDsKK+WIpeW3uyA+IGJla2thblwgOwor5YaX5ryrID4gam91bWFuXCA7CivmpoLoprMgPiBnYWlrYW5cIDsKK+WJjeWknCA+IHplbicneWFcIDsKK+W7uuWApCA+IHRhdGVuZVwgOwor5bm75b2xID4gZ2VuJydlaVwgOwor6YCj5bCEID4gcmVuc2hhXCA7CivliY3lo7IgPiBtYWV1cmlcIDsKK+amguimgSA+IGdhaXlvdVwgOwor5YKN6LypID4gaG91YmFpXCA7Civnmb3nnIkgPiBoYWt1YmlcIDsKK+WzoemDqCA+IGt5b3VidVwgOwor5Yi25a6aID4gc2VpdGVpXCA7CivmraPkvJ0gPiBzZWlkZW5cIDsKK+i7vee9qiA+IGtlaXphaVwgOwor55Wq6aCtID4gYmFudG91XCA7CivliJ3lubQgPiBzaG9uZW5cIDsKK+i/sOaHkCA+IGp1a2thaVwgOwor6L6b5rCXID4gc2hpbmtpXCA7Civmpb3oprMgPiByYWtrYW5cIDsKK+WJsuWQiCA+IHdhcmlhaVwgOwor5qW86KazID4gcm91a2FuXCA7Civoi6bnl5sgPiBrdXRzdXVcIDsKK+W4jOaxgiA+IGtpa3l1dVwgOwor5bm+5bm0ID4gaWt1bmVuXCA7Civlhqzmr5sgPiBmdXl1Z2VcIDsKK+WFiOefpSA+IHNlbmNoaVwgOwor5bqX5a2QID4gdGFuYWtvXCA7CivprZrnvqQgPiBneW9ndW5cIDsKK+mBoeWPiiA+IHNva3l1dVwgOwor6YCA5b25ID4gdGFpZWtpXCA7CivlubzlubQgPiB5b3VuZW5cIDsKK+i/guabsiA+IHVreW9rdVwgOwor5YSq562JID4geXV1dG91XCA7Civou43okawgPiBndW5zb3VcIDsKK+WJsuWNsCA+IHdhcmlpblwgOwor6I+v5ZWGID4ga2FzaG91XCA7CivliKnlsL8gPiByaW55b3VcIDsKK+WFteeHuSA+IGhlaXNlblwgOwor5bu25Ly4ID4gZW5zaGluXCA7CivluorlsYsgPiB0b2tveWFcIDsKK+mAgOW7tyA+IHRhaXRlaVwgOwor5qip54++ID4gZ29uZ2VuXCA7CivlgbTpg6ggPiBzb2t1YnVcIDsKK+W4sOacnSA+IGtpY2hvdVwgOwor5biw5pyNID4ga2lmdWt1XCA7CivnnLzlupUgPiBnYW50ZWlcIDsKK+mAgOW7gyA+IHRhaWhhaVwgOwor5Yil5bGFID4gYmVra3lvXCA7CivnlZnpo7IgPiByeXV1aW5cIDsKK+WIquWumiA+IHNhbnRlaVwgOwor6YGu5YWJID4gc2hha291XCA7CivliY3lnYogPiB6ZW5ib3VcIDsKK+i7n+iGjyA+IG5hbmtvdVwgOwor5qyE5aSWID4gcmFuZ2FpXCA7CivlhqDmsLQgPiBrYW5zdWlcIDsKK+WIpeWwgSA+IGJlcHB1dVwgOwor55y85bivID4gZ2FudGFpXCA7CivlubPlubQgPiBoZWluZW5cIDsKK+W5s+W5syA+IGhlaWhlaVwgOwor6IeG6Z2iID4gb2t1bWVuXCA7Civlu4Plk4EgPiBoYWloaW5cIDsKK+i/t+W9qSA+IG1laXNhaVwgOwor5biC5rCRID4gc2hpbWluXCA7CivluoTlsYsgPiBzaG91eWFcIDsKK+iJsuiJsiA+IGlyb2lyb1wgOwor6auY6LiPID4ga291dG91XCA7CivlhqDmr5sgPiBrYW5tb3VcIDsKK+W3qOa8oiA+IGt5b2thblwgOwor5bi45pWwID4gam91c3V1XCA7CivlibXliIogPiBzb3VrYW5cIDsKK+WFiOeZuyA+IHNlbnRvdVwgOwor5YmN5ZueID4gemVua2FpXCA7CivovrLmnpcgPiBub3VyaW5cIDsKK+W5s+W4uCA+IGhlaWpvdVwgOwor6IuU55msID4gdGFpc2VuXCA7CivnmbLnmYcgPiB0ZW5rYW5cIDsKK+iNieaguSA+IHNvdWtvblwgOwor55m755SoID4gdG91eW91XCA7Civpq5jot50gPiBrb3VreW9cIDsKK+WIpOWumiA+IGhhbnRlaVwgOwor5Yik5a6YID4gaGFuZ2FuXCA7Civlt53ngKwgPiBrYXdhc2VcIDsKK+W7t+S4gSA+IHRlaXRlaVwgOwor55m655SfID4gaGFzc2VpXCA7CivovrLmnZEgPiBub3Vzb25cIDsKK+WBtOi/kSA+IHNva2tpblwgOwor55uk5qC5ID4gYmFua29uXCA7CivojprluK0gPiBlbnNla2lcIDsKK+ecn+aEjyA+IHNoaW4nJ2lcIDsKK+mtguiDhiA+IGtvbnRhblwgOwor5YiX5bO2ID4gcmV0dG91XCA7CivovZ/nhLYgPiBnb3V6ZW5cIDsKK+W7g+WQiCA+IGhhaWdvdVwgOwor5Yil5ayqID4gYmVwcGluXCA7CivmrKDlk4EgPiBrZXBwaW5cIDsKK+mtmue2siA+IGd5b21vdVwgOwor6YCj5aWPID4gcmVuc291XCA7CivlhoXmua8gPiB1Y2hpeXVcIDsKK+eUn+m6qSA+IG5hbWFmdVwgOwor5bm95bGFID4geXV1a3lvXCA7CivpgKPlpJwgPiByZW4nJ3lhXCA7Civlt6HmvJQgPiBqdW4nJ2VuXCA7CivliIblupcgPiBidW50ZW5cIDsKK+atjOS8miA+IHV0YWthaVwgOwor5YaF5rivID4gbmFpa291XCA7CivlhaznhLYgPiBrb3V6ZW5cIDsKK+W3u+avmyA+IG1ha2lnZVwgOwor6LuN6ImmID4gZ3Vua2FuXCA7CivpgKPlo7AgPiByZW5qb3VcIDsKK+iHqumHjSA+IGppY2hvdVwgOwor5YaF5riIID4gbmFpc2FpXCA7CivlhYjnlaogPiBzZW5iYW5cIDsKK+mBiuWQnyA+IHl1dWdpblwgOwor6YGK5ZCbID4geXV1a3VuXCA7Civou43oiLkgPiBndW5zZW5cIDsKK+iPr+WMlyA+IGthaG9rdVwgOwor6I2J5pysID4gc291aG9uXCA7Civnm7Lmlq0gPiBtb3VkYW5cIDsKK+edgOWwuiA+IGtpamFrdVwgOwor6Imo6ImfID4gbW91ZG91XCA7Civov5TmiLsgPiBoZW5yZWlcIDsKK+WFiOeUnyA+IHNlbnNlaVwgOwor5Ymq5YiAID4gc2VudG91XCA7Civlgb3otrMgPiBnaXNva3VcIDsKK+iNieabuCA+IHNvdXNob1wgOwor5YWo54S2ID4gemVuemVuXCA7CivliJflr6cgPiByZWVuaW5cIDsKK+mtmueyviA+IGd5b3NlaVwgOwor6Imm6ImHID4ga2FudGVpXCA7CivoiaboiLkgPiBrYW5zZW5cIDsKK+WGhea1tyA+IG5haWthaVwgOwor55uu5pa5ID4gbWVrYXRhXCA7Civlh6HmiY0gPiBib25zYWlcIDsKK+WHoeaJiyA+IGJvbnNodVwgOwor5YWJ55KwID4ga291a2FuXCA7CivlhYXnlKggPiBqdXV5b3VcIDsKK+i8neefsyA+IGtpc2VraVwgOwor6a2a57KJID4gZ3lvZnVuXCA7Civlh6HmiKYgPiBib25zZW5cIDsKK+W6uOWQmyA+IHlvdWt1blwgOwor5YCk6aCDID4gbmVnb3JvXCA7Civlh7blvpIgPiBreW91dG9cIDsKK+eWjumAmiA+IHNvdHN1dVwgOwor6Iez6L+RID4gc2hpa2luXCA7CivluaLluaEgPiBkb3ViYW5cIDsKK+W5s+WxiyA+IGhpcmF5YVwgOwor6YGF5Y+CID4gY2hpc2FuXCA7CivpgIblrZAgPiBzYWthZ29cIDsKK+eZveeLkCA+IGJ5YWtrb1wgOwor5YCk6Z6YID4gbmV6YXlhXCA7Civlh7rluqsgPiBzaHVra29cIDsKK+i/veWwviA+IHRzdWliaVwgOwor5YiA5belID4gdG91a291XCA7Civlh7rlupwgPiBzaHVwcHVcIDsKK+WIneWpmiA+IHNob2tvblwgOwor5Ye65bqXID4gZGVtaXNlXCA7CivlhoXmsrsgPiBuYWljaGlcIDsKK+i+suaUvyA+IG5vdXNlaVwgOwor5Ymb5YuHID4gZ291eXV1XCA7CivmrKDli6QgPiBrZWtraW5cIDsKK+WFsea8lCA+IGt5b3VlblwgOwor6Ieq6YGpID4gaml0ZWtpXCA7Civlh6Hmha4gPiBib25yeW9cIDsKK+W7g+WIiiA+IGhhaWthblwgOwor6YCA5a6YID4gdGFpa2FuXCA7CivnnLzlrZQgPiBnYW5rb3VcIDsKK+eVjOmdoiA+IGthaW1lblwgOwor5bel5rOVID4ga291aG91XCA7Civpga/kuJYgPiB0b25zZWlcIDsKK+W5s+WumiA+IGhlaXRlaVwgOwor6I+v5YaRID4ga2FjaHV1XCA7CivovKrnlaogPiByaW5iYW5cIDsKK+W5suWusyA+IGthbmdhaVwgOwor5Ye65birID4gc3Vpc2hpXCA7CivpgKDlnosgPiB6b3VrZWlcIDsKK+iIquihjCA+IGtvdWtvdVwgOwor5YmN5ZCNID4gemVubWVpXCA7Civlh73ltrogPiBrYW5yZWlcIDsKK+mBk+WFgyA+IGRvdWdlblwgOwor55mM56CUID4gZ2Fua2VuXCA7CivliY3lj7cgPiB6ZW5nb3VcIDsKK+WIpOWjqyA+IGhhbnNoaVwgOwor5YmN5Y+yID4gemVuc2hpXCA7CivovKrnlJ8gPiByaW5zZWlcIDsKK+WGheawlyA+IHVjaGlraVwgOwor5YKN6KiTID4gYm91a3VuXCA7CivnnLjlrZAgPiBib3VzaGlcIDsKK+mBheWKuSA+IGNoaWtvdVwgOwor55ub5pqRID4gc2Vpc2hvXCA7Civov5Hmg4UgPiBraW5qb3VcIDsKK+W7g+WFtSA+IGhhaWhlaVwgOwor5YWN54q2ID4gbWVuam91XCA7CivlhajmvbAgPiB6ZW5rYWlcIDsKK+W6g+WkpyA+IGtvdWRhaVwgOwor6auY6KuWID4ga291cm9uXCA7CivluIbmoYEgPiBob2dldGFcIDsKK+mrmOirhyA+IGtvdWRhblwgOwor5qmf5qWtID4ga2lneW91XCA7CivpgJPlopcgPiB0ZWl6b3VcIDsKK+W5leW6nCA+IGJha3VmdVwgOwor5bit5o2yID4gc2Vra2VuXCA7CivojbflvbkgPiBuaXlha3VcIDsKK+W5u+WnvyA+IGdlbnNoaVwgOwor5YaF5q6/ID4gbmFpZGVuXCA7CivluoPlo64gPiBrb3Vzb3VcIDsKK+WCjeimsyA+IGJvdWthblwgOwor6I+v5YORID4ga2FreW91XCA7CivluJ3mlL8gPiB0ZWlzZWlcIDsKK+eVjOmaiCA+IGthaXdhaVwgOwor5YiG5bCBID4gYnVucG91XCA7CivliKXloLEgPiBiZXBwb3VcIDsKK+WFrOa6liA+IGtvdWp1blwgOwor5YKN6KaWID4gd2FraW1pXCA7CivliY3ljYogPiB6ZW5wYW5cIDsKK+eZveeFmSA+IGhha3VlblwgOwor5bm95aWRID4geXV1a2VpXCA7CivnlJ/prq4gPiBzZWlzZW5cIDsKK+iLlOeKtiA+IHRhaWpvdVwgOwor6a2U56ybID4gbWF0ZWtpXCA7CivlibXkuJYgPiBzb3VzZWlcIDsKK+ebhuagvSA+IGJvbnNhaVwgOwor6auY6KiAID4ga291Z2VuXCA7Civot7PppqwgPiBjaG91YmFcIDsKK+W4uOaFiyA+IGpvdXRhaVwgOwor5bqD5aC0ID4gaGlyb2JhXCA7CivluoPloLEgPiBrb3Vob3VcIDsKK+WxsemhmyA+IHNhbnRlblwgOwor5YiG5a2QID4gYnVuc2hpXCA7Civoh6rouqsgPiBqaXNoaW5cIDsKK+WFteazlSA+IGhlaWhvdVwgOwor5YGc6LuKID4gdGVpc2hhXCA7CivlubTlp4sgPiBuZW5zaGlcIDsKK+mrmOimpyA+IGtvdXJhblwgOwor55SY6a+bID4gYW1hZGFpXCA7Civov5HlvbEgPiBraW4nJ2VpXCA7CivluoPln58gPiBrb3Vpa2lcIDsKK+aoqua6oiA+IG91aXRzdVwgOwor5Yas5pelID4gZnV5dWJpXCA7Civpq5joposgPiB0YWthbWlcIDsKK+WDp+e2sSA+IHNvdWdvdVwgOwor5YmN5YmNID4gbWFlbWFlXCA7CivluqfljZMgPiB6YXRha3VcIDsKK+WFrOa1tyA+IGtvdWthaVwgOwor5Yag5pyoID4ga2FidWtpXCA7Civoia/nuIEgPiByeW91ZW5cIDsKK+WJm+WBpSA+IGdvdWtlblwgOwor5YG96Ki8ID4gZ2lzaG91XCA7CivpgY7kv6EgPiBrYXNoaW5cIDsKK+W4guaciSA+IHNoaXl1dVwgOwor5bqt5YmNID4gdGVpemVuXCA7CivlhKrnlJ8gPiB5dXVzZWlcIDsKK+aknOi7iiA+IGtlbnNoYVwgOwor5bqX5ZOhID4gdGVuJydpblwgOwor6YCy5YyWID4gc2hpbmthXCA7CivmqLnmsLcgPiBqdWh5b3VcIDsKK+W6hOWckiA+IHNob3VlblwgOwor6Ieq6LazID4gamlzb2t1XCA7CivpqqjouqsgPiBob25lbWlcIDsKK+WFreazlSA+IHJvcHBvdVwgOwor5Ye65a62ID4gc2h1a2tlXCA7CivlubLlpKkgPiBrYW50ZW5cIDsKK+WHoeW6tiA+IGJvbnNob1wgOwor6auY6KOBID4ga291c2FpXCA7CivnlLvpm4YgPiBnYXNodXVcIDsKK+WFrOazlSA+IGtvdWhvdVwgOwor5YiG5aipID4gYnVuYmVuXCA7CivovKrnirYgPiByaW5qb3VcIDsKK+iJsuezuCA+IGlyb2l0b1wgOwor55S76ZqcID4gZ2FzaG91XCA7CivlubPlo4wgPiBoZWlqb3VcIDsKK+WxsemciiA+IHNhbnJlaVwgOwor5YaZ5pysID4gc2hhaG9uXCA7CivlhaXmtbcgPiBpcml1bWlcIDsKK+i5gui6qiA+IGp1dXJpblwgOwor6LmC6LqZID4ganV1cmluXCA7CivluZXlsYsgPiBtYWt1eWFcIDsKK+msvOexjSA+IGtpc2VraVwgOwor5Yi75Y2wID4ga29rdWluXCA7CivlhYnngrkgPiBrb3V0ZW5cIDsKK+WHoeW4uCA+IGJvbmpvdVwgOwor6L+35aaEID4gbWVpbW91XCA7Civnl5voi6YgPiB0c3V1a3VcIDsKK+ebhuaZryA+IGJvbmtlaVwgOwor6Ii56I23ID4gZnVuYW5pXCA7CivpgKPlkJ8gPiByZW5naW5cIDsKK+WIneWbniA+IHNob2thaVwgOwor5buD5Lq6ID4gaGFpamluXCA7CivliZvkvZMgPiBnb3V0YWlcIDsKK+i7iue3miA+IHNoYXNlblwgOwor5Yeg5bizID4ga2ljaG91XCA7CivlhajmsrsgPiB6ZW5jaGlcIDsKK+mAo+WQjSA+IHJlbm1laVwgOwor6YCj5ZCIID4gcmVuZ291XCA7CivnmobmuIggPiBrYWlzYWlcIDsKK+ebsuaDsyA+IG1vdXNvdVwgOwor5YiR5aC0ID4ga2Vpam91XCA7CivlubTloLEgPiBuZW5wb3VcIDsKK+mAgOWgtCA+IHRhaWpvdVwgOwor5YaF5qScID4gbmFpa2VuXCA7Civlho3moKEgPiBzYWlrb3VcIDsKK+ebuOaApyA+IGFpc2hvdVwgOwor6Iul5rmvID4gd2FrYXl1XCA7CivpgYvkvJEgPiB1bmt5dXVcIDsKK+ebuOaAnSA+IHNvdXNoaVwgOwor5YWs5rCRID4ga291bWluXCA7CivluILml6UgPiBpY2hpYmlcIDsKK+iKseeSsCA+IGhhbmF3YVwgOwor5qeY55u4ID4geW91c291XCA7Civoj6/kuK0gPiBrYWNodXVcIDsKK+WBuOimliA+IHRvdXNoaVwgOwor5YmN5YK+ID4gemVua2VpXCA7CivpsYjlrZAgPiB0YXJha29cIDsKK+WxjemquCA+IHNoaWdhaVwgOwor6Ieq6LKsID4gamlzZWtpXCA7CivliIblpJYgPiBidW5nYWlcIDsKK+ebo+aIvyA+IGthbmJvdVwgOwor5biD5pWZID4gZnVreW91XCA7CivpgKDlj40gPiB6b3VoYW5cIDsKK+WIhuWjsiA+IGJ1bmJhaVwgOwor5YeE5oOoID4gc2Vpc2FuXCA7Civnm5vmjJkgPiBzZWlreW9cIDsKK+W5suWfjiA+IGthbmpvdVwgOwor6Lu955uuID4ga2FydW1lXCA7CivluLDlv4MgPiBraXNoaW5cIDsKK+iMmOaenSA+IHJlaXNoaVwgOwor55u45b25ID4gYWl5YWt1XCA7CivluILmlL8gPiBzaGlzZWlcIDsKK+W6p+WFgyA+IHphbW90b1wgOwor5YaN5p2lID4gc2FpcmFpXCA7CivlhazmraMgPiBrb3VzZWlcIDsKK+WFvOalrSA+IGtlbmdvdVwgOwor55u+5bqnID4gdGF0ZXphXCA7CivlhrfmiL8gPiByZWlib3VcIDsKK+WItuWLlSA+IHNlaWRvdVwgOwor6Im256yRID4gZW5zaG91XCA7Civnm7jlvZMgPiBzb3V0b3VcIDsKK+W3oeaknCA+IGp1bmtlblwgOwor5bmz5Z2mID4gaGVpdGFuXCA7CivlhbXmqKkgPiBoZWlrZW5cIDsKK+WGt+aIpiA+IHJlaXNlblwgOwor55m+5riIID4ga3VkYXJhXCA7CivlhajmrrUgPiB6ZW5kYW5cIDsKK+iHs+irliA+IHNoaXJvblwgOwor6Ii56ImZID4gc2Vuc291XCA7CivpgJ3ljrsgPiBzZWlreW9cIDsKK+WxsemWkyA+IHlhbWFhaVwgOwor5Yi65Yi6ID4gaXJhaXJhXCA7CivnmpPmra8gPiBrb3VzaGlcIDsKK+WIpeWTgSA+IGJlcHBpblwgOwor5bmz5Z2HID4gaGVpa2luXCA7CivlsbHploAgPiBzYW5tb25cIDsKK+WCreiIuSA+IHlvdXNlblwgOwor5YaG5p+xID4gZW5jaHV1XCA7CivnlJ/poZ4gPiBzZWlydWlcIDsKK+W5s+WcsCA+IGhlaWNoaVwgOwor6YCj5YuVID4gcmVuZG91XCA7CivliY3kvr8gPiB6ZW5iaW5cIDsKK+iHs+iqoCA+IHNoaXNlaVwgOwor5bq45Lq6ID4geW91amluXCA7CivlubTlm54gPiBuZW5rYWlcIDsKK+mAgOWboyA+IHRhaWRhblwgOwor55uy5b6TID4gbW91anV1XCA7CivliY3kvosgPiB6ZW5yZWlcIDsKK+WGl+aWhyA+IGpvdWJ1blwgOwor5qmL5p62ID4ga3lvdWthXCA7CivlhajmrKcgPiB6ZW4nJ291XCA7Civou5/npoEgPiBuYW5raW5cIDsKK+mAn+WKuSA+IHNva2tvdVwgOwor552+5Li4ID4ga291Z2FuXCA7Civoh7PoqIAgPiBzaGlnZW5cIDsKK+W3qOadkCA+IGt5b3phaVwgOwor5YWJ5rqQID4ga291Z2VuXCA7CivpgKPliKQgPiByZW5wYW5cIDsKK+i7kuerryA+IG5va2liYVwgOwor5bir5byfID4gc2hpdGVpXCA7CivliY3ku7YgPiB6ZW5rZW5cIDsKK+WFrOaoqSA+IGtvdWtlblwgOwor5bGP6aKoID4gYnlvdWJ1XCA7Civnm7jluK0gPiBhaXNla2lcIDsKK+WJjeS7oyA+IHplbmRhaVwgOwor55Sf6Z2iID4gc2VpbWVuXCA7Civoi6bmsYEgPiBuaWdhcmlcIDsKK+WJjeS6uiA+IHplbmppblwgOwor5YiH5ZywID4ga2lyZWppXCA7CivljYrjgIUgPiBoYW5oYW5cIDsKK+mBgeS4liA+IHRvbnNlaVwgOwor6Iez6KaBID4gc2hpeW91XCA7Civlh7blpKIgPiBreW91bXVcIDsKK+WIhuWcsCA+IGJ1bmNoaVwgOwor55yL5a6IID4ga2Fuc2h1XCA7Civoibbnpo8gPiBlbnB1a3VcIDsKK+WFhea6gCA+IGp1dW1hblwgOwor6Iul5rCXID4gd2FrYWdlXCA7Civnl4Xoi6YgPiBieW91a3VcIDsKK+WFqOaoqSA+IHplbmtlblwgOwor6I2S5buDID4ga291aGFpXCA7Civnmbrms6EgPiBoYXBwb3VcIDsKK+eUo+mZoiA+IHNhbicnaW5cIDsKK+WIhuWboyA+IGJ1bmRhblwgOwor6Ieq6Ki7ID4gamljaHV1XCA7CivluoPljp8gPiBrb3VnZW5cIDsKK+WIneWPtyA+IHNob2dvdVwgOwor5bit5be7ID4gc2Vra2VuXCA7Civlho3mlZcgPiBzYWloYWlcIDsKK+WJjeS4liA+IHplbnNlaVwgOwor6YCg5YW1ID4gem91aGVpXCA7CivpgLjkuosgPiBpdHN1amlcIDsKK+WDu+ebriA+IGhpZ2FtZVwgOwor5YKt6IGYID4geW91aGVpXCA7CivprLHnqY0gPiB1c3Nla2lcIDsKK+W3qOaYnyA+IGt5b3NlaVwgOwor5YiA5ZytID4gdG91a2VpXCA7CivlhormlbAgPiBzYXNzdXVcIDsKK+W5vOWQmyA+IHlvdWt1blwgOwor55m65rGXID4gaGFra2FuXCA7CivnlLvpi7IgPiBnYWJ5b3VcIDsKK+WHuuWfjiA+IGRlamlyb1wgOwor5bm85ZCNID4geW91bWVpXCA7Civou4rnqpMgPiBzaGFzb3VcIDsKK+Wwj+m8uyA+IGtvYmFuYVwgOwor5YaF5peoID4gbmFpc2hpXCA7Civnl5vnvbUgPiB0c3V1YmFcIDsKK+iHquimmiA+IGppa2FrdVwgOwor55a+6IumID4gc2hpa2t1XCA7CivlhoXmlrkgPiBuYWlob3VcIDsKK+WBveiWrCA+IGdpeWFrdVwgOwor55eF6IelID4gYnlvdWdhXCA7CivluL3lrZAgPiBib3VzaGlcIDsKK+WFseaghCA+IGt5b3VlaVwgOwor6LuK56iuID4gc2hhc2h1XCA7CivlgKTpgYcgPiBjaGlndXVcIDsKK+W5tuWRkSA+IGhlaWRvblwgOwor5bqK5YegID4gc2hvdWdpXCA7Civlub7ljYMgPiBpa3VzZW5cIDsKK+mrmOiRlyA+IGtvdWNob1wgOwor6L6y5belID4gbm91a291XCA7CivlsI/puqYgPiBrb211Z2lcIDsKK+aknOiojiA+IGtlbnRvdVwgOwor5YiG5Za2ID4gYnVuJydlaVwgOwor5qOS6Yu8ID4gYm91a291XCA7CivpgIHlkYggPiBzb3V0ZWlcIDsKK+W6p+S4rSA+IHphY2h1dVwgOwor5YaF5pS/ID4gbmFpc2VpXCA7CivlhoXmlLsgPiBuYWlrb3VcIDsKK+W5tuWQiCA+IGhlaWdvdVwgOwor5YWs5qC9ID4ga291c2FpXCA7Civkv67pmaIgPiBzaHV1aW5cIDsKK+W6leWApCA+IHNva29uZVwgOwor5biw5bGeID4ga2l6b2t1XCA7Civlt6XmlbAgPiBrb3VzdXVcIDsKK+WFteabuSA+IGhlaXNvdVwgOwor5YW15pu4ID4gaGVpc2hvXCA7CivliJHlkI0gPiBrZWltZWlcIDsKK+i7jeekvCA+IGd1bnJlaVwgOwor5qi55pyoID4ganVtb2t1XCA7Civpq5joj5wgPiB0YWthbmFcIDsKK+ebuOWvviA+IHNvdXRhaVwgOwor6YCj5L+CID4gcmVua2VpXCA7CivlubTlj7cgPiBuZW5nb3VcIDsKK+aknOimliA+IGtlbnNoaVwgOwor5Yal5oOzID4gbWVpc291XCA7CivoirHngasgPiBoYW5hYmlcIDsKK+WxlemWiyA+IHRlbmthaVwgOwor55u45a6/ID4gYWl5YWRvXCA7CivoiJ7oiJ4gPiBtYWltYWlcIDsKK+mAgOWOuyA+IHRhaWt5b1wgOwor5YWo5qChID4gemVua291XCA7CivluK/lsIEgPiBvYmlmdXVcIDsKK+WHjeWvkiA+IHRvdWthblwgOwor5bmz5Y6fID4gaGVpZ2VuXCA7CivnnIzlpJYgPiBrZW5nYWlcIDsKK+WHjeWusyA+IHRvdWdhaVwgOwor5bGx6YeOID4gc2FuJyd5YVwgOwor6YCP5YaZID4gdG91c2hhXCA7CivliLbku6QgPiBzZWlyZWlcIDsKK+WFreacrCA+IHJvcHBvblwgOwor6Ium5qW9ID4ga3VyYWt1XCA7CivluLDlroUgPiBraXRha3VcIDsKK+ebsuWwhCA+IG1vdXNoYVwgOwor55a96IWrID4gc29zaG91XCA7CivmqKrmoLkgPiB5b2tvbmVcIDsKK+W5vuWIhiA+IGlrdWJ1blwgOwor55Ww6KqsID4gaXNldHN1XCA7CivprZTnkIMgPiBtYWt5dXVcIDsKK+WHtuWZqCA+IGt5b3VraVwgOwor5Yid5YasID4gc2hvdG91XCA7Civkv53pnakgPiBob2tha3VcIDsKK+WGjeaMmSA+IHNhaWt5b1wgOwor55uu5bGOID4gbWVrdXNvXCA7Civkv4rppqwgPiBzaHVubWVcIDsKK+eUsumIkSA+IGtvdWJhblwgOwor5YWr5pysID4gaGFwcG9uXCA7CivlhazmnIkgPiBrb3V5dXVcIDsKK+WBj+imiyA+IGhlbmtlblwgOwor5bqc5LitID4gZnVjaHV1XCA7Civnm67lsLsgPiBtZWppcmlcIDsKK+WFtuaWuSA+IHNvbmF0YVwgOwor55ub5bm0ID4gc2VpbmVuXCA7CivlsI/ptKggPiBrb2dhbW9cIDsKK+WGjeaLnSA+IHNhaWhhaVwgOwor6YCA5YuiID4gdGFpc2VpXCA7Civov5TloLEgPiBoZW5wb3VcIDsKK+mAo+S6mCA+IHJlbmtvdVwgOwor5bm95YalID4geXV1bWVpXCA7CivovInngq0gPiBzYWl0YW5cIDsKK+WGheaOoiA+IG5haXRhblwgOwor5qip5p+EID4ga2VucGVpXCA7CivlsI/ps6UgPiBrb3RvcmlcIDsKK+W5tOWKnyA+IG5lbmtvdVwgOwor55Sw6YeOID4gZGVuJyd5YVwgOwor5YW15pWwID4gaGVpc3V1XCA7Civnm6rlsL0gPiB0b3VqaW5cIDsKK+ecvOWJjSA+IGdhbnplblwgOwor5YWo5pu4ID4gemVuc2hvXCA7CivoiabnoLIgPiBrYW5wb3VcIDsKK+W6l+S4uyA+IHRlbnNodVwgOwor6Lui55SfID4gdGVuc2VpXCA7CivotrPpp4QgPiBhc2hpZGFcIDsKK+WFq+aZryA+IGhha2tlaVwgOwor55m75qW8ID4gdG91cm91XCA7Civkv53pmpwgPiBob3Nob3VcIDsKK+ebruWuiSA+IG1leWFzdVwgOwor5YaF5oy/ID4gbmFpc291XCA7CivmpoLnrpcgPiBnYWlzYW5cIDsKK+WIhuWOmCA+IGJ1bnJpblwgOwor6L+95YqgID4gdHN1aWthXCA7CivmqKrmnKggPiB5b2tvZ2lcIDsKK+WEqua4pSA+IHl1dWFrdVwgOwor5YaN5oimID4gc2Fpc2VuXCA7CivluIblvbEgPiBob2thZ2VcIDsKK+W5tOWInSA+IG5lbnNob1wgOwor6IWw6ZaTID4geW91a2FuXCA7CivojYnlsYsgPiBzb3Vva3VcIDsKK+WFrOaYjiA+IGtvdW1laVwgOwor5bm05YiKID4gbmVua2FuXCA7CivlubTliIYgPiBuZW5idW5cIDsKK+WFqOaZuiA+IHplbmNoaVwgOwor6YCG5YWQID4gc2FrYWdvXCA7Civlhajmma8gPiB6ZW5rZWlcIDsKK+W5leWWtiA+IGJha3VlaVwgOwor5bCP6bCtID4ga29oYWRhXCA7CivliKXkvb8gPiBiZXNzaGlcIDsKK+W5s+WIhiA+IGhlaWJ1blwgOwor55u45aemID4gc291a2FuXCA7Civlha3mlrkgPiByb3Bwb3VcIDsKK+WIpOS+iyA+IGhhbnJlaVwgOwor5bmz5YehID4gaGVpYm9uXCA7CivnmIvnmbIgPiBmdXV0ZW5cIDsKK+W5u+WDjyA+IGdlbnpvdVwgOwor5YWr5pa5ID4gaGFwcG91XCA7Civov73liIYgPiBvaXdha2VcIDsKK+mwpeWkqyA+IHlhbW9tZVwgOwor55So6YeRID4geW91a2luXCA7CivprZTniakgPiBtYW1vbm9cIDsKK+WFrOaWhyA+IGtvdWJ1blwgOwor55y85YWJID4gZ2Fua291XCA7CivojLblt74gPiBjaGFraW5cIDsKK+ebuOWlvSA+IHNvdWdvdVwgOwor5YiR5YW4ID4ga2VpdGVuXCA7Civov5HlnKggPiBraW56YWlcIDsKK+WIpeS7tiA+IGJla2tlblwgOwor6YCT5LydID4gdGVpZGVuXCA7CivlsbHovrogPiB5YW1hYmVcIDsKK+WGheaJgCA+IG5haXNob1wgOwor55Wl6KiYID4gcnlha2tpXCA7Civlt6fmiYsgPiBrb3VzaHVcIDsKK+WGheaIpiA+IG5haXNlblwgOwor55yf5ZGzID4gc2hpbm1pXCA7CivouqvnqbogPiBtaXNvcmFcIDsKK+i/keWboCA+IGtpbicnaW5cIDsKK+iNieWtkCA+IHNvdXNoaVwgOwor6IqL54mIID4gaW1vYmFuXCA7CivlhajmlocgPiB6ZW5idW5cIDsKK+W3oeaLnSA+IGp1bnBhaVwgOwor55Sj6YeRID4gc2Fua2luXCA7CivnmbvmoKEgPiB0b3Vrb3VcIDsKK+WFqOaVsCA+IHplbnN1dVwgOwor55uj5a6IID4ga2Fuc2h1XCA7Civlt6XmiYsgPiBrb3VzaHVcIDsKK+W3peaIvyA+IGtvdWJvdVwgOwor5YWo5pWXID4gemVucGFpXCA7CivnnJ/lkKYgPiBzaGlucGlcIDsKK+iLpeacqCA+IHdha2FnaVwgOwor5YiX5YCZID4gcmVra291XCA7Civov73lhLogPiB0c3VpbmFcIDsKK+WGt+WusyA+IHJlaWdhaVwgOwor5bqK5LiKID4geXVrYXVlXCA7Civlgb3ohpwgPiBnaW1ha3VcIDsKK+W4huW4gyA+IGhvbnVub1wgOwor5Yed5Zu6ID4gZ3lvdWtvXCA7CivpgJTkuK0gPiB0b2NodXVcIDsKK+WGheaGgiA+IG5haXl1dVwgOwor5L+X6ZaTID4gem9ra2FuXCA7Civkv4Ppn7MgPiBzb2t1b25cIDsKK+Wwj+mqqCA+IGtvYm9uZVwgOwor5bm95L2TID4geXV1dGFpXCA7Civlhbjmi6AgPiB0ZW5reW9cIDsKK+eZu+advyA+IHRvdWJhblwgOwor5Yid5LujID4gc2hvZGFpXCA7CivliIDliaMgPiB0b3VrZW5cIDsKK+W4s+WgtCA+IGNob3ViYVwgOwor5bmV5ZCPID4gYmFrdXJpXCA7CivprZrnga8gPiBneW90b3VcIDsKK+iGmui6qyA+IGhhZGFtaVwgOwor55mW5q+bID4ga3VzZWdlXCA7Civlubjkvr8gPiBrb3ViaW5cIDsKK+WDreeOiyA+IHNlbicnb3VcIDsKK+W5o+WItiA+IGhlaXNlaVwgOwor5YaN5oCdID4gc2Fpc2hpXCA7CivnnIzllrYgPiBrZW4nJ2VpXCA7Civprq7mmI4gPiBzZW5tZWlcIDsKK+iNkuWkqSA+IGtvdXRlblwgOwor55Sf6YWSID4ga2l6YWtlXCA7CivliIblhZogPiBidW50b3VcIDsKK+W5tOS/uCA+IG5lbnBvdVwgOwor5YiG5YWJID4gYnVua291XCA7CivliIDliIMgPiB0b3VqaW5cIDsKK+W5vuS6uiA+IGlrdW5pblwgOwor6ISz6auEID4gbm91enVpXCA7CivpqaXotrMgPiBraXNva3VcIDsKK+WGheaDhSA+IG5haWpvdVwgOwor55yf5YyXID4gbWFraXRhXCA7Civlt6jmgqogPiBreW9ha3VcIDsKK+WGheaCoyA+IG5haWthblwgOwor6I2K5aa7ID4ga2Vpc2FpXCA7CivlhajmkI0gPiB6ZW5zb25cIDsKK+WIg+WFiCA+IGhhc2FraVwgOwor5bGx6LevID4geWFtYWppXCA7Civlho3lvoEgPiBzYWlzZWlcIDsKK+mnv+mmrCA+IHNodW5tZVwgOwor55Sj6YGTID4gc2FuZG91XCA7CivluK/ln58gPiB0YWlpa2lcIDsKK+W4jOWwkSA+IGtpc2hvdVwgOwor6Ii556qTID4gc2Vuc291XCA7Civov5Tlk4EgPiBoZW5waW5cIDsKK+Wwj+mmliA+IGtva3ViaVwgOwor5bm05L2ZID4gbmVuJyd5b1wgOwor55SY6YW4ID4ga2Fuc2FuXCA7CivnlJ/pgoQgPiBzZWlrYW5cIDsKK+iIt+eqkyA+IGdlbnNvdVwgOwor6aiS6ZyKID4gc291cmVpXCA7CivluYXlk6EgPiBmdWt1aW5cIDsKK+WFieadpSA+IGtvdXJhaVwgOwor6Iez6Iq4ID4gc2hpZ2VpXCA7CivlubTkvJogPiBuZW5rYWlcIDsKK+mAgOS8miA+IHRhaWthaVwgOwor5a+h6buZID4ga2Ftb2t1XCA7CivliIPlgrcgPiBuaW5qb3VcIDsKK+WGjeW7uiA+IHNhaWtvblwgOwor5qW156eYID4gZ29rdWhpXCA7CivpgIPkuqEgPiB0b3Vib3VcIDsKK+mAgOS7uyA+IHRhaW5pblwgOwor5YaG5b+DID4gZW5zaGluXCA7CivlubTku6QgPiBuZW5yZWlcIDsKK+W5tOS7oyA+IG5lbmRhaVwgOwor5YKN57eaID4gYm91c2VuXCA7CivmqJnml5cgPiBoeW91a2lcIDsKK+ecgeWWtiA+IHNob3VlaVwgOwor5biw5Zu9ID4ga2lrb2t1XCA7CivnnYDkuIggPiBraXRha2VcIDsKK+i+suWgtCA+IG5vdWpvdVwgOwor6Lu95ribID4ga2VpZ2VuXCA7CivpqqjokaMgPiBrb3R0b3VcIDsKK+iNkuWfjiA+IGtvdWpvdVwgOwor6Le16LiPID4gc2VudG91XCA7CivojZjlnJIgPiBzaG91ZW5cIDsKK+eZguayuyA+IHJ5b3VqaVwgOwor6L665ZywID4gaGVuY2hpXCA7Civpp53ps6UgPiBkYWNob3VcIDsKK+WGheW+hCA+IG5haWtlaVwgOwor6IW56YOoID4gZnVrdWJ1XCA7Civlh7rlhYggPiBkZXNha2lcIDsKK+WFg+adpSA+IGdhbnJhaVwgOwor55yf5YasID4gbWFmdXl1XCA7CivovKrmoL0gPiByaW5zYWlcIDsKK+W3qOW8viA+IGt5b2RhblwgOwor5YWD5pysID4gZ2VucG9uXCA7CivlhYnmma8gPiBrb3VrZWlcIDsKK+WHtuWFtyA+IGt5b3VndVwgOwor6Ieq6IulID4gamlqYWt1XCA7CivlubTkuK0gPiBuZW5qdXVcIDsKK+eci+WPliA+IGthbnNodVwgOwor55m65pWjID4gaGFzc2FuXCA7CivluKvlm6MgPiBzaGlkYW5cIDsKK+mnsemnnSA+IHJha3VkYVwgOwor5YaF5bu3ID4gbmFpdGVpXCA7Civlgo3ns7sgPiBib3VrZWlcIDsKK+WIhuS9kyA+IGJ1bnRhaVwgOwor6L+O5ZCIID4gZ2VpZ291XCA7Civmr47jgIUgPiBtYWltYWlcIDsKK+S/rumAoCA+IHNodXpvdVwgOwor55m75pSAID4gdG91aGFuXCA7CivojYnloIIgPiBzb3Vkb3VcIDsKK+W5suS4jiA+IGthbicneW9cIDsKK+WIhuS8miA+IGJ1bmthaVwgOwor6auA6IKJID4gaGluaWt1XCA7CivmqZ/lsYsgPiBoYXRheWFcIDsKK+WGheW6rSA+IG5haXRlaVwgOwor6L6y5ZywID4gbm91Y2hpXCA7CivlhazmhqQgPiBrb3VmdW5cIDsKK+ebm+WkpyA+IHNlaWRhaVwgOwor6Iiq56m6ID4ga291a3V1XCA7CivluILlrZAgPiBpY2hpa29cIDsKK+WwiumhlCA+IHNvbmdhblwgOwor6LuN54qsID4gZ2Vua2VuXCA7CivlhYjmlrkgPiBzZW5wb3VcIDsKK+S/rui+niA+IHNodXVqaVwgOwor55Sf6LqrID4gbmFtYW1pXCA7CivmqKrmiYsgPiB5b2tvdGVcIDsKK+WBnOiIuSA+IHRlaXNlblwgOwor55yM5YuiID4ga2Vuc2VpXCA7Civlha3mhJ8gPiByb2trYW5cIDsKK+ecn+WBvSA+IHNoaW5naVwgOwor6Iiq56iLID4ga291dGVpXCA7CivliIbkuZcgPiBidW5qb3VcIDsKK+iNieWcsCA+IHNvdWNoaVwgOwor5YWD5pemID4gZ2FudGFuXCA7CivlhYjmlLsgPiBzZW5rb3VcIDsKK+WHpuWIkSA+IHNob2tlaVwgOwor55S76Kq/ID4gZ2FjaG91XCA7CivlhpflrpggPiBqb3VrYW5cIDsKK+WHpuWIhiA+IHNob2J1blwgOwor6Lu95rC0ID4ga2Vpc3VpXCA7Civoh6rohbkgPiBqaWJhcmFcIDsKK+ecn+WAiyA+IHNoaW5rb1wgOwor5L6h6aGNID4ga2FnYWt1XCA7CivliIbkuI4gPiBidW4nJ3lvXCA7CivovIPmraMgPiBrb3VzZWlcIDsKK+WHpuWHpiA+IHNob3Nob1wgOwor6IqS5rSLID4gYm91eW91XCA7CivlsI/pm6ogPiBrb3l1a2lcIDsKK+Wwj+mbqCA+IGtvc2FtZVwgOwor5beh5bm4ID4ganVua291XCA7CivlsI7pm7sgPiBkb3VkZW5cIDsKK+WFteW9uSA+IGhlaWVraVwgOwor5bCP6ZuAID4ga29nYXJhXCA7CivnnJ/kvqEgPiBzaGlua2FcIDsKK+i/keWIiiA+IGtpbmthblwgOwor5Ye95Lq6ID4ga2FuamluXCA7Civnm5floYEgPiB0b3VydWlcIDsKK+WFvOW4ryA+IGtlbnRhaVwgOwor6Ium5omLID4gbmlnYXRlXCA7Civlr77poZQgPiB0YWlnYW5cIDsKK+iLpeaJiyA+IHdha2F0ZVwgOwor5beo5bOwID4ga3lvaG91XCA7CivlhqzloLQgPiBmdXl1YmFcIDsKK+WCrOecoCA+IHNhaW1pblwgOwor5YSq5p+UID4geXV1anV1XCA7CivoirjmnpcgPiBnZWlyaW5cIDsKK+i7kueBryA+IGtlbnRvdVwgOwor55u45Y+NID4gc291aGFuXCA7Civlt6jlsqkgPiBreW9nYW5cIDsKK+W4r+WQjCA+IHRhaWRvdVwgOwor5bi45YukID4gam91a2luXCA7CivojZjlj7ggPiBzaG91amlcIDsKK+WFrOW9uSA+IGtvdWVraVwgOwor5YWo5b+rID4gemVua2FpXCA7CivlhoXlsaQgPiBuYWlzb3VcIDsKK+mrmOetiSA+IGtvdXRvdVwgOwor5YeN5Y6fID4gdG91Z2VuXCA7Civmpb3nlYwgPiBnYWtrYWlcIDsKK+iKseafsyA+IGthcnl1dVwgOwor6Iqx5p+xID4ga2FjaHV1XCA7CivojZjljrMgPiBzb3Vnb25cIDsKK+WHuuS4liA+IHNodXNzZVwgOwor5Ye25LqLID4ga3lvdWppXCA7CivluILlpJYgPiBzaGlnYWlcIDsKK+eXmOeYoSA+IHRvdXNvdVwgOwor5YeE5ZGzID4gc3Vnb21pXCA7Civoh6rnv5IgPiBqaXNodXVcIDsKK+WHoeWDpyA+IGJvbnNvdVwgOwor5a++6Z2iID4gdGFpbWVuXCA7CivnlarojLYgPiBiYW5jaGFcIDsKK+WGiuWtkCA+IHNvdXNoaVwgOwor55Ww6ImyID4gaXNob2t1XCA7CivluKvlj4sgPiBzaGl5dXVcIDsKK+eXmOeXlSA+IHRvdWtvblwgOwor5YaG5a+CID4gZW5qYWt1XCA7CivlhajlvaIgPiB6ZW5rZWlcIDsKK+auteOAhSA+IGRhbmRhblwgOwor5bee5bSOID4gc3VzYWtpXCA7Civov5Hlgo0gPiBraW5ib3VcIDsKK+WFpeW+oSA+IG55dXVnb1wgOwor5YaF5a65ID4gbmFpeW91XCA7CivlhoXlrq4gPiBuYWlndXVcIDsKK+WFrOW6rSA+IGtvdXRlaVwgOwor5YaF5a6aID4gbmFpdGVpXCA7CivluILlobUgPiBzaGlqaW5cIDsKK+i3teiogCA+IHNlbmdlblwgOwor6Iqz5pu4ID4gaG91c2hvXCA7CivnlKjoq4cgPiB5b3VkYW5cIDsKK+iKseacqCA+IGthYm9rdVwgOwor6I2S5Y6fID4ga291Z2VuXCA7CivlhazlubMgPiBrb3VoZWlcIDsKK+WGheWtqyA+IG5haXNvblwgOwor5biC5aC0ID4gc2hpam91XCA7CivnlLfoo4UgPiBkYW5zb3VcIDsKK+S/nei6qyA+IGhvc2hpblwgOwor55m65oakID4gaGFwcHVuXCA7Civlho3lqZogPiBzYWlrb25cIDsKK+iIjOerryA+IHpldHRhblwgOwor5YWo5buDID4gemVucGFpXCA7CivlhYjmipUgPiBzZW50b3VcIDsKK+WBleiAgSA+IGthaXJvdVwgOwor5YWo5bqXID4gemVudGVuXCA7Civnm7Lli5UgPiBtb3Vkb3VcIDsKK+WvvumZoyA+IHRhaWppblwgOwor5L6L6aGMID4gcmVpZGFpXCA7CivluK/liaMgPiB0YWlrZW5cIDsKK+W4neWRvSA+IHRlaW1laVwgOwor6Luf5rOlID4gbmFuZGVpXCA7CivojIXlsYsgPiBib3Vva3VcIDsKK+WFpeW6qyA+IG55dXVrb1wgOwor55So6KiAID4geW91Z2VuXCA7CivnmbrmhI8gPiBoYXRzdWlcIDsKK+WFpeW6nCA+IG55dXVmdVwgOwor6Iq45paHID4gZ2VpYnVuXCA7Civlh6HkvosgPiBoYW5yZWlcIDsKK+WwgumWgCA+IHNlbm1vblwgOwor55m65oOzID4gaGFzc291XCA7CivluK/liIAgPiB0YWl0b3VcIDsKK+i/keS9kyA+IGtpbnRhaVwgOwor6Ium5b+DID4ga3VzaGluXCA7CivmqoDlkJsgPiBkYW5rdW5cIDsKK+WFvOWumCA+IGtlbmthblwgOwor5YWo5biCID4gemVuc2hpXCA7CivlsJbpi60gPiBzZW4nJ2VpXCA7Civlhajlt7sgPiB6ZW5rYW5cIDsKK+Wwv+i3ryA+IG55b3Vyb1wgOwor55yM5LyaID4ga2Vua2FpXCA7Civnm6Tlj7AgPiBiYW5kYWlcIDsKK+W4g+WcsCA+IG51bm9qaVwgOwor6Iez57SUID4gc2hpanVuXCA7CivojYnljp8gPiBzb3VnZW5cIDsKK+iHque4myA+IGppYmFrdVwgOwor5qKF6YWSID4gdW1lc2h1XCA7CivlhYPmiYsgPiBtb3RvZGVcIDsKK+ecjOS7pCA+IGtlbnJlaVwgOwor5a+d6aaWID4gbmVrdWJpXCA7CivnlJ/oqpUgPiBzZWl0YW5cIDsKK+S/s+irpyA+IGhhaWthaVwgOwor6Luf5rC0ID4gbmFuc3VpXCA7Civov5Hku6MgPiBraW5kYWlcIDsKK+ecjOS6uiA+IGtlbmppblwgOwor55uG5ZywID4gYm9uY2hpXCA7Civlho3lpIkgPiBzYWloZW5cIDsKK+WBveensCA+IGdpc2hvdVwgOwor6LuN5rivID4gZ3Vua291XCA7CivlhZrlvIogPiB0b3VoZWlcIDsKK+WHpuS4liA+IHNob3NlaVwgOwor5Ya35Y6zID4gcmVpZ2VuXCA7Civoh63ntKAgPiBzaHV1c29cIDsKK+WGheWmuyA+IG5haXNhaVwgOwor6IyE5a2QID4gbmFzdWJpXCA7Civnm5/lj4sgPiBtZWl5dXVcIDsKK+ebl+WTgSA+IHRvdWhpblwgOwor55Sf6KiIID4gc2Vpa2VpXCA7CivoiJfnn7MgPiBob3Nla2lcIDsKK+iHque1piA+IGppa3l1dVwgOwor6L+U5LiKID4gaGVuam91XCA7CivprZrmoq8gPiBneW90ZWlcIDsKK+ebm+WQjSA+IHNlaW1laVwgOwor5YWo5bO2ID4gemVudG91XCA7Civota3poZQgPiBzaGFnYW5cIDsKK+WFseWvnSA+IHRvbW9uZVwgOwor5bCP6YqtID4ga296ZW5pXCA7CivnmofluJ0gPiBrb3V0ZWlcIDsKK+WGheWljyA+IG5haXNvdVwgOwor6L+R5LiWID4ga2luc2VpXCA7Civoh6jntYIgPiByaW5qdXVcIDsKK+W4uOS+iyA+IGpvdXJlaVwgOwor6I2J5Ym1ID4gc291c291XCA7CivlhajlsrggPiB6ZW5nYW5cIDsKK+W3qOWkpyA+IGt5b2RhaVwgOwor6L6b5ZGzID4ga2FyYW1pXCA7CivlhoXlpJYgPiBuYWlnYWlcIDsKK+iLpeW5siA+IGpha2thblwgOwor5bGN6KuMID4gc2hpa2FuXCA7Civnm67lhYggPiBtZXNha2lcIDsKK+W4q+WDpyA+IHNoaXNvdVwgOwor5bi45L2TID4gam91dGFpXCA7Civnm67lhYMgPiBtZW1vdG9cIDsKK+W4uOS9jyA+IGpvdWp1dVwgOwor5YWo5bGxID4gemVuemFuXCA7CivovrLlhbUgPiBub3VoZWlcIDsKK+WCjeebriA+IGhhdGFtZVwgOwor5bGV6KazID4gdGVua2FuXCA7CivlsZXopqcgPiB0ZW5yYW5cIDsKK+eUmOiogCA+IGthbmdlblwgOwor5bi45LyaID4gam91a2FpXCA7Civlt6XlpKcgPiBrb3VkYWlcIDsKK+WFrOWusyA+IGtvdWdhaVwgOwor5bil5YWIID4gc29zc2VuXCA7CivluLjku7sgPiBqb3VuaW5cIDsKK+S/r+inkiA+IGZ1a2FrdVwgOwor6Iul5biDID4gd2FrYW1lXCA7CivluJ3liLYgPiB0ZWlzZWlcIDsKK+eXtOa8oiA+IGNoaWthblwgOwor5YWs5a6aID4ga291dGVpXCA7Civou43ms5UgPiBndW5wb3VcIDsKK+Wwj+mHkSA+IGtvZ2FuZVwgOwor55m75bq4ID4gdG91eW91XCA7CivlhajlsIQgPiB6ZW5zaGFcIDsKK+iNiuWGoCA+IGtlaWthblwgOwor5Ya35YmbID4gcmVpZ291XCA7CivluLjkurogPiBqb3VqaW5cIDsKK+mtmuadvyA+IGd5b2JhblwgOwor5bSp5r2wID4gaG91a2FpXCA7CivlhazlrZAgPiBrb3VzaGlcIDsKK+WDp+atoyA+IHNvdWpvdVwgOwor5qGR6ZaAID4gc291bW9uXCA7CivlhoXloLEgPiBuYWlob3VcIDsKK+WFgeaBrSA+IGlua3lvdVwgOwor5YWJ5b2pID4ga291c2FpXCA7Civou7jmnKggPiBqaWt1Z2lcIDsKK+WFh+W+kiA+IGt5b3V0b1wgOwor55u45LydID4gc291ZGVuXCA7CivotrPoubQgPiBhc2hpZ2VcIDsKK+W4neWGoCA+IHRlaWthblwgOwor5L216Z+zID4gcGluJydpblwgOwor6auY55uuID4gdGFrYW1lXCA7Civlhobln58gPiBlbicnaWtpXCA7Civlr5LpoqggPiBrYW5wdXVcIDsKK+mnhemgrSA+IGVraXRvdVwgOwor5YK+54CJID4ga2Vpc2hhXCA7Civlhrflh40gPiByZWl0b3VcIDsKK+i7jeawkSA+IGd1bm1pblwgOwor6aqo57KJID4ga29wcHVuXCA7Civnl4XnkIYgPiBieW91cmlcIDsKK+W4sOS8kSA+IGtpa3l1dVwgOwor5biw5LyPID4ga2lmdWt1XCA7CivluLjkuJYgPiB0b2tveW9cIDsKK+WCsueEtiA+IGdvdXplblwgOwor6Ia16IeTID4gc3Vpem91XCA7CivlhbblpbQgPiBzb2l0c3VcIDsKK+WFheW9kyA+IGp1dXRvdVwgOwor5L+u6KOcID4gc2h1dWhvXCA7CivluIPlkYogPiBmdWtva3VcIDsKK+eah+WxhSA+IGtvdWt5b1wgOwor6IiO55ujID4gc2hha2FuXCA7CivnlrHnmKEgPiBob3Vzb3VcIDsKK+aoqeWumCA+IGtlbmthblwgOwor5YSS5pWZID4ganVreW91XCA7CivluLDkuqwgPiBraWt5b3VcIDsKK+S/l+itsCA+IHpva3VnaVwgOwor5Ya35YWJID4gcmVpa291XCA7Civnm7jkuZcgPiBzb3Vqb3VcIDsKK+WvnemamyA+IG5lZ2l3YVwgOwor5bir5LydID4gc2hpZGVuXCA7CivlhoXlnLAgPiBuYWljaGlcIDsKK+WFieW5tCA+IGtvdW5lblwgOwor55qE5bGLID4gdGVraXlhXCA7Civnm4rlj4sgPiBla2l5dXVcIDsKK+WGheWcqCA+IG5haXphaVwgOwor5YW15aSJID4gaGVpaGVuXCA7CivlsbHokbUgPiB3YXNhYmlcIDsKK+Wwj+mBjiA+IHNob3VrYVwgOwor5YW15aOrID4gaGVpc2hpXCA7CivlgbXnn6UgPiB0ZWljaGlcIDsKK+eWq+eZmCA+IGVraXJlaVwgOwor55uy5Lq6ID4gbW91amluXCA7Civnmoflrq4gPiBrb3VndXVcIDsKK+iDvemdoiA+IG5vdW1lblwgOwor55ub5YW4ID4gc2VpdGVuXCA7Civkv53oqLwgPiBob3Nob3VcIDsKK+aknOeulyA+IGtlbnphblwgOwor55qH5a6XID4ga291c291XCA7CivlhYjluKsgPiBzZW5zaGlcIDsKK+WFiOW4nSA+IHNlbnRlaVwgOwor5qC56ZuqID4gbmV5dWtpXCA7CivojIXloLQgPiBrYXlhYmFcIDsKK+W4sOS4gCA+IGtpaXRzdVwgOwor55qH5a2rID4ga291c29uXCA7Civkvq7ovrEgPiBidWpva3VcIDsKK+eVque3miA+IGJhbnNlblwgOwor6L6y5LyaID4gbm91a2FpXCA7Civkv5foqp4gPiB6b2t1Z29cIDsKK+ebruS7iiA+IG1va2tvblwgOwor5Yal5YqgID4gbXlvdWdhXCA7Civoh6Xnq5wgPiBnYXJ5b3VcIDsKK+ebtOS4iyA+IGNob2trYVwgOwor5bC46KuMID4gc2hpa2FuXCA7CivlsbHoj5wgPiBzYW5zYWlcIDsKK+i7ouagoSA+IHRlbmtvdVwgOwor6Lyq5b2iID4gcmlua2VpXCA7Civkv5foqbEgPiB6b2t1d2FcIDsKK+eWpeeZrCA+IGthaXNlblwgOwor6Ii554GvID4gc2VudG91XCA7Civoh6rnp7AgPiBqaXNob3VcIDsKK+iLpuWtpiA+IGt1Z2FrdVwgOwor5YWD5bilID4gZ2Vuc3VpXCA7CivojYnkvZMgPiBzb3V0YWlcIDsKK+eZveWvvyA+IGhha3VqdVwgOwor5Yal5YipID4gbXlvdXJpXCA7CivluILli6IgPiBzaGlzZWlcIDsKK+S9k+mokyA+IHRhaWtlblwgOwor55m65bGVID4gaGF0dGVuXCA7Civlt6Hlm54gPiBqdW5rYWlcIDsKK+ani+aWhyA+IGtvdWJ1blwgOwor6Ii354GvID4gZ2VudG91XCA7CivovKrlu7sgPiByaW4nJ25lXCA7CivlhbjlnosgPiB0ZW5rZWlcIDsKK+WxseiNmCA+IHNhbnNvdVwgOwor5YWs5aOyID4ga291YmFpXCA7CivppqjpppkgPiBrZWlrb3VcIDsKK+iEsemAgCA+IGRhdHRhaVwgOwor5L+X6KejID4gem9ra2FpXCA7Civog4zpsK0gPiBzZWJpcmVcIDsKK+eZuuWwhCA+IGhhc3NoYVwgOwor5YOa5qmfID4gcnlvdWtpXCA7CivlhajlpKkgPiB6ZW50ZW5cIDsKK+agoemiqCA+IGtvdWZ1dVwgOwor6LWk6ZaAID4gYWthbW9uXCA7CivlhqXlhqUgPiBtZWltZWlcIDsKK+WxjeidiyA+IHNoaXJvdVwgOwor55Wd57mUID4gdW5lb3JpXCA7Civkv5foposgPiB6b2trZW5cIDsKK+WAieiNtyA+IGt1cmFuaVwgOwor6Iqz5oOFID4gaG91am91XCA7CivluILliLYgPiBzaGlzZWlcIDsKK+mmlumtgSA+IHNodWthaVwgOwor5YWl5aSrID4gbnl1dWZ1XCA7Civlhajlo4ogPiB6ZW5rYWlcIDsKK+eUn+iWkSA+IHNob3VnYVwgOwor5YWs5aCxID4ga291aG91XCA7CivlhKrmgKcgPiB5dXVzZWlcIDsKK+WFteWboyA+IGhlaWRhblwgOwor5a++6YGHID4gdGFpZ3V1XCA7CivnlJ/olYMgPiBzZWliYW5cIDsKK+S+m+mAsiA+IGd1c2hpblwgOwor5YWN5a6YID4gbWVua2FuXCA7CivmoZ/pgZMgPiBzYW5kb3VcIDsKK+WFiOWwjiA+IHNlbmRvdVwgOwor5biC5YaFID4gc2hpbmFpXCA7CivlsI/ot68gPiBzaG91amlcIDsKK+i7veaMmSA+IGtlaWt5b1wgOwor6Imv5qGIID4gcnlvdWFuXCA7CivlrrnpoZQgPiB5b3VnYW5cIDsKK+WFvOWWtiA+IGtlbicnZWlcIDsKK+WGhuWRsyA+IG1hcnVtaVwgOwor55ub5LyaID4gc2Vpa2FpXCA7CivlhoblkaggPiBlbnNodXVcIDsKK+iKuOW9kyA+IGdlaXRvdVwgOwor5YSq5b6FID4geXV1dGFpXCA7CivnlJjolq8gPiBrYW5zaG9cIDsKK+WGheWRvSA+IG5haW1laVwgOwor6LuK5qScID4gc2hha2VuXCA7CivoirPlv5cgPiBob3VzaGlcIDsKK+Wwj+i2syA+IGtvYXNoaVwgOwor55qH5aSpID4ga291dGVuXCA7Civlr77ovrogPiB0YWloZW5cIDsKK+i2hemBjiA+IGNob3VrYVwgOwor55ub5LujID4gc2VpZGFpXCA7Civoi5flrZcgPiBteW91amlcIDsKK+iDjOmqqCA+IHNlYm9uZVwgOwor5YaF5ZCrID4gbmFpZ2FuXCA7CivppqzpnakgPiBiYWtha3VcIDsKK+ebn+S4uyA+IG1laXNodVwgOwor5YaF5ZCRID4gbmFpa291XCA7CivlhYnlrZAgPiBrb3VzaGlcIDsKK+mmmemmmSA+IGtvdWtvdVwgOwor5YaF5ZCIID4gbmFpZ291XCA7CivoiLnmuKAgPiBzZW5reW9cIDsKK+eUmOiUlyA+IGthbnNob1wgOwor5beo5Y+jID4ga3lva291XCA7Civlhazlm6MgPiBrb3VkYW5cIDsKK+WGjeWLpCA+IHNhaWtpblwgOwor5biC5YK1ID4gc2hpc2FpXCA7CivlsqnnqbQgPiBpd2FhbmFcIDsKK+WFg+WvhyA+IGdlbmtvdVwgOwor5L2Z6ZyHID4geW9zaGluXCA7CivlhajlnLAgPiB6ZW5jaGlcIDsKK+eVj+e4riA+IGlzaHVrdVwgOwor5YaV5YagID4gYmVua2FuXCA7CivojLbkvJogPiBjaGFrYWlcIDsKK+eRtumhlCA+IHlvdWdhblwgOwor5L2O6aCtID4gdGVpdG91XCA7CivlhobljZMgPiBlbnRha3VcIDsKK+WvhumWiSA+IG1pcHBlaVwgOwor5bGx6IOMID4geWFtYXNlXCA7Civmp5jmhYsgPiB5b3V0YWlcIDsKK+iMtuS7oyA+IGNoYWRhaVwgOwor5L2T6Z2iID4gdGFpbWVuXCA7CivlgqzmtpkgPiBzYWlydWlcIDsKK+iDjOmmsyA+IGhhaWNoaVwgOwor5YWx5Za2ID4ga3lvdWVpXCA7CivohLHotbAgPiBkYXNzb3VcIDsKK+eZvuWknCA+IG1vbW95b1wgOwor6Ium5aKDID4ga3VreW91XCA7Civlhpnlg48gPiBzaGF6b3VcIDsKK+Wun+mokyA+IGppa2tlblwgOwor5YWl5ZySID4gbnl1dWVuXCA7CivojLbkurogPiBjaGFqaW5cIDsKK+iLpuWhqSA+IG5pZ2FyaVwgOwor55m65aWuID4gaGFwcHVuXCA7Civoi7Hlm70gPiBlaWtva3VcIDsKK+WGheWMhSA+IG5haWhvdVwgOwor5YaN5YiKID4gc2Fpa2FuXCA7CivnlKjoiLkgPiB5b3VzZW5cIDsKK+mrmOeHpSA+IGtvdXNvdVwgOwor5YaF5YukID4gbmFpa2luXCA7CivoirHluoogPiBrYXNob3VcIDsKK+iCuumtmiA+IGhhaWd5b1wgOwor6Ieq55m9ID4gamloYWt1XCA7Civlrrbpm4YgPiBrYXNodXVcIDsKK+i7jeabuSA+IGd1bnNvdVwgOwor6LuN5pu4ID4gZ3Vuc2hvXCA7Civlgo3ngrkgPiBib3V0ZW5cIDsKK+S+v+impyA+IGJlbnJhblwgOwor55m65aOwID4gaGFzc2VpXCA7Civnmbvlo4cgPiB0b3VkYW5cIDsKK+ani+aIkCA+IGtvdXNlaVwgOwor5qSc55y8ID4ga2VuZ2FuXCA7Civlho3lho0gPiBzYWlzYWlcIDsKK+WAkue9riA+IHRvdWNoaVwgOwor5qCh6ZaAID4ga291bW9uXCA7CivpppbpoYwgPiBzaHVkYWlcIDsKK+WGheWJmyA+IG5haWdvdVwgOwor6LuS5piCID4ga2Vua291XCA7CivlhYjlprsgPiBzZW5zYWlcIDsKK+W3neWOnyA+IGthd2FyYVwgOwor5biC5LyaID4gc2hpa2FpXCA7Civpqqjnm7ggPiBrb3Nzb3VcIDsKK+i7ouaPmyA+IHRlbmthblwgOwor5YWx5ZKMID4ga3lvdXdhXCA7CivnlJjojYkgPiBrYW56b3VcIDsKK+WGheWIhiA+IG5haWJ1blwgOwor55SY6Iy2ID4gYW1hY2hhXCA7CivnmbvloLQgPiB0b3Vqb3VcIDsKK+WvnemFkiA+IG5lemFrZVwgOwor5YWE5aeJID4ga2Vpc2hpXCA7CivmraPjgIUgPiBzZWlzZWlcIDsKK+W4guS6uiA+IHNoaWppblwgOwor5YWE5aa5ID4ga2VpbWFpXCA7CivlhaXllrYgPiBueXV1ZWlcIDsKK+WFvOWLpCA+IGtlbmtpblwgOwor5YWD5aeLID4gZ2Vuc2hpXCA7Civoho/ogpMgPiBrb3Vrb3VcIDsKK+mrmOeCuSA+IGtvdXRlblwgOwor6LuS5pWwID4ga2Vuc3V1XCA7CivlhYjlpKkgPiBzZW50ZW5cIDsKK+WFiOWknCA+IHNlbicneWFcIDsKK+W4guS6lSA+IHNoaXNlaVwgOwor5YaG5YaFID4gZW4nJ25haVwgOwor5YaF5YaFID4gbmFpbmFpXCA7Civou43ml4UgPiBndW5yeW9cIDsKK+WGheWFuCA+IG5haXRlblwgOwor6Lu95b+rID4ga2Vpa2FpXCA7CivoiKrmtbcgPiBrb3VrYWlcIDsKK+ani+aDsyA+IGtvdXNvdVwgOwor5a626ZW3ID4ga2FjaG91XCA7Civlhajlk6EgPiB6ZW4nJ2luXCA7Civoh6jnlYwgPiByaW5rYWlcIDsKK+mrmOeArCA+IHRha2FzZVwgOwor5YWo5ZOBID4gemVucGluXCA7CivmpJznl7AgPiBrZW50YW5cIDsKK+WFpeWUkCA+IG5pdHRvdVwgOwor5biC5LiKID4gc2hpam91XCA7CivlsI/oqbEgPiBzaG91d2FcIDsKK+eah+WXoyA+IGtvdXNoaVwgOwor5bel5YW1ID4ga291aGVpXCA7Civog4zpnakgPiBzZWdhd2FcIDsKK+W3qOWEhCA+IGt5b29rdVwgOwor6IOM6Z2iID4gaGFpbWVuXCA7Civou43mlL8gPiBndW5zZWlcIDsKK+WCteaoqSA+IHNhaWtlblwgOwor5YWI5aGUID4gc2VudG91XCA7Civlhazlj7ggPiBrb3VzaGlcIDsKK+i8quWnpiA+IHJpbmthblwgOwor6Iiq5rOVID4ga291aG91XCA7Civlt6jlg48gPiBreW96b3VcIDsKK+eWkeeNhCA+IGdpZ29rdVwgOwor5bCP6KiAID4ga29nb3RvXCA7CivlhoXlgrUgPiBuYWlzYWlcIDsKK+aknOeVqiA+IGtlbmJhblwgOwor5YWF5aGrID4ganV1dGVuXCA7CivlsaTnvqQgPiBzb3VndW5cIDsKK+iKseWxiyA+IGhhbmF5YVwgOwor6Luf5oqVID4gbmFudG91XCA7CivlhoXlgbUgPiBuYWl0ZWlcIDsKK+WFqOWPsiA+IHplbnNoaVwgOwor6Lui5oimID4gdGVuc2VuXCA7CivlgbbnhLYgPiBndXV6ZW5cIDsKK+eUn+iCsiA+IHNlaWlrdVwgOwor6IaA6IOxID4gYm91a291XCA7Civou6LmiJAgPiB0ZW5zZWlcIDsKK+WFteWItiA+IGhlaXNlaVwgOwor5bKp55ukID4gZ2FuYmFuXCA7CivprZTmgKcgPiBtYXNob3VcIDsKK+WFseWKqSA+IGt5b3Vqb1wgOwor6LyD5beuID4ga2FrdXNhXCA7Civmo5Lnt5ogPiBib3VzZW5cIDsKK+WFq+WNgSA+IHlhc29qaVwgOwor5YW15YiDID4gaGVpamluXCA7Civlho3kvJogPiBzYWlrYWlcIDsKK+iKseWuoiA+IGtha2FrdVwgOwor6Iqx5a6fID4gaGFuYW1pXCA7Civoi5flnIMgPiBieW91aG9cIDsKK+WGjeS7uyA+IHNhaW5pblwgOwor5L2Z6YyyID4geW9yb2t1XCA7Civnl4XmsJcgPiBieW91a2lcIDsKK+iDuOmDqCA+IGt5b3VidVwgOwor6aeF6YCTID4gZWtpdGVpXCA7CivlhYjlnKggPiBzZW56YWlcIDsKK+Wun+mamyA+IGppc3NhaVwgOwor55Sf6ICFID4gc2hvdWphXCA7CivnlLHnt5IgPiB5dWlzaG9cIDsKK+S/s+iBliA+IGhhaXNlaVwgOwor5bGx57O7ID4gc2Fua2VpXCA7CivnlLfns7sgPiBkYW5rZWlcIDsKK+S9s+i+sCA+IGthc2hpblwgOwor5a++6KuWID4gdGFpcm9uXCA7CivmqKnljp8gPiBrZW5nZW5cIDsKK+WvruiyuyA+IHJ5b3VoaVwgOwor5a++6KuHID4gdGFpZGFuXCA7Civouqvmn4QgPiBtaWdhcmFcIDsKK+WAq+ekviA+IHJpbnNoYVwgOwor5beo5L2TID4ga3lvdGFpXCA7CivlhoXkvY8gPiBuYWlqdXVcIDsKK+eah+WQjiA+IGtvdWdvdVwgOwor5bCP6KKWID4ga29zb2RlXCA7Civlr77oqp4gPiB0c3VpZ29cIDsKK+iDvei+ryA+IG5vdWJlblwgOwor6Ium5ZGzID4gbmlnYW1pXCA7Civlg6fmiL8gPiBzb3Vib3VcIDsKK+WFrOWIpCA+IGtvdWhhblwgOwor6a2F5oORID4gbWl3YWt1XCA7CivlhazliIogPiBrb3VrYW5cIDsKK+WGjeS4iSA+IHNhaXNhblwgOwor5YWH5ZmoID4ga3lvdWtpXCA7Civls7bmsJEgPiB0b3VtaW5cIDsKK+aoqeWLoiA+IGtlbnNlaVwgOwor5beo5Lq6ID4ga3lvamluXCA7CivlhoXkuokgPiBuYWlzb3VcIDsKK+WwhuijnCA+IHNob3Vob1wgOwor5YaF5LmxID4gbmFpcmFuXCA7CivlhY7llIcgPiB0b3NoaW5cIDsKK+WFvOS9tSA+IGtlbnBlaVwgOwor5bel5Lq6ID4ga291amluXCA7CivoirjlpKcgPiBnZWlkYWlcIDsKK+WFrOWFmiA+IGtvdXRvdVwgOwor6Ieq54iGID4gamliYWt1XCA7CivoiLfmoq8gPiBnZW50ZWlcIDsKK+iEseihoyA+IGRhdHN1aVwgOwor5YaG5LiYID4gZW5reXV1XCA7CivkvJrppKggPiBrYWlrYW5cIDsKK+iKneWxhSA+IHNoaWJhaVwgOwor6Luf5oCnID4gbmFuc2VpXCA7Civnmobli6QgPiBrYWlraW5cIDsKK+W3qOS4hyA+IGt5b21hblwgOwor6LuN5omHID4gZ3Vuc2VuXCA7Civmn7vplrIgPiBzYWV0c3VcIDsKK+WvuOiogCA+IHN1bmdlblwgOwor5a+G6YCBID4gbWlzc291XCA7CivovKrlm54gPiByaW4nJ25lXCA7CivnlKjntJkgPiB5b3VzaGlcIDsKK+WvhOmAsiA+IGtpc2hpblwgOwor55eU5qC4ID4gamlrYWt1XCA7CivlhajlhY0gPiB6ZW5tZW5cIDsKK+eZuuWQkSA+IGhha2tvdVwgOwor5L2T6YeNID4gdGFpanV1XCA7CivlhazlgrUgPiBrb3VzYWlcIDsKK+WFmuWLoiA+IHRvdXNlaVwgOwor5qOE57SEID4ga2l5YWt1XCA7Civkvo3oqq0gPiBqaWRva3VcIDsKK+mqqOeJjCA+IGthcnV0YVwgOwor5YG05rqdID4gc29ra291XCA7Civlr6norbAgPiBzaGluZ2lcIDsKK+mqqOeJhyA+IGtvcHBlblwgOwor5YK+5pacID4ga2Vpc2hhXCA7CivlhJLlraYgPiBqdWdha3VcIDsKK+iHqueEtiA+IHNoaXplblwgOwor5bCC6KGMID4gc2Vua291XCA7CivotaTotaQgPiBha2Fha2FcIDsKK+iJsuaCqiA+IGlyb2FrdVwgOwor6Ium5YqbID4ga3V1cmlpXCA7CivouqvmlrkgPiBtaWthdGFcIDsKK+alt+abuCA+IGthaXNob1wgOwor5a6d6ZGRID4gaG91a2FuXCA7CivkvJrpoK0gPiBrYWl0b3VcIDsKK+S/oeiAhSA+IHNoaW5qYVwgOwor6LW36KuLID4ga2lzaG91XCA7Civohr/nmI0gPiBub3V5b3VcIDsKK+amguaVsCA+IGdhaXN1dVwgOwor6Iq45Z+fID4gZ2VpaWtpXCA7CivlsI/omY4gPiBrb2RvcmFcIDsKK+iJsuaBiyA+IGlyb2tvaVwgOwor6IK66ZaAID4gaGFpbW9uXCA7CivlhbXku5cgPiBoZWlqb3VcIDsKK+WutumDtyA+IGtha3lvdVwgOwor55Wi55SfID4gaGlzc2VpXCA7Civkv6HnvqkgPiBzaGluZ2lcIDsKK+Wys+eItiA+IGdha3VmdVwgOwor6auY5q61ID4ga291ZGFuXCA7CivnlJ/ntJkgPiBraWdhbWlcIDsKK+iGv+eWsSA+IG5vdWhvdVwgOwor5L6L6KiAID4gcmVpZ2VuXCA7CivnmoflhbggPiBrb3V0ZW5cIDsKK+WFiOWQmyA+IHNlbmt1blwgOwor5L2z6LOeID4ga2FzaG91XCA7Civlhazkvq8gPiBrb3Vrb3VcIDsKK+i1pOiynSA+IGFrYWdhaVwgOwor5L6L6KejID4gcmVpa2FpXCA7CivnmoblhbUgPiBrYWloZWlcIDsKK+i7jeaDhSA+IGd1bmpvdVwgOwor6auY5q2vID4gdGFrYWJhXCA7CivlhbXkubEgPiBoZWlyYW5cIDsKK+S9lemBjSA+IG5hbmJlblwgOwor5YWs5L2/ID4ga291c2hpXCA7CivlhYjlj5YgPiBzZW5zaHVcIDsKK+eZuuWLgSA+IGhha2tlaVwgOwor6aeE6LODID4gZGFjaGluXCA7CivnmbrlirkgPiBoYWtrb3VcIDsKK+Wwvue/vCA+IGJpeW9rdVwgOwor6auE5rayID4genVpZWtpXCA7CivlsIHonYsgPiBmdXVyb3VcIDsKK+WFmuWGhSA+IHRvdW5haVwgOwor55So566LID4geW91c2VuXCA7CivlhazkvY8gPiBrb3VqdXVcIDsKK+WFqOS+vyA+IHplbmJpblwgOwor55Sf57KLID4ga2lzc3VpXCA7CivnlLLnqK4gPiBrb3VzaHVcIDsKK+S/l+iAsyA+IHpva3VqaVwgOwor6auY5qyEID4ga291cmFuXCA7Civmob/oj4wgPiBrYW5raW5cIDsKK+WFrOS8miA+IGtvdWthaVwgOwor6Iie5qW9ID4gYnVnYWt1XCA7CivlrrTpgYogPiBlbicneXV1XCA7CivlhYPlj7cgPiBnZW5nb3VcIDsKK+mqqOeCrSA+IGtvdHRhblwgOwor55m65Yi4ID4gaGFra2VuXCA7CivlgbTms7MgPiBzb2JhZWlcIDsKK+iLseS/iiA+IGVpc2h1blwgOwor55Ww54mpID4gaWJ1dHN1XCA7CivlhajkvZMgPiB6ZW50YWlcIDsKK+eSsOimliA+IGthbnNoaVwgOwor6ISx6JepID4gZGFwcGFuXCA7CivnmbrliIogPiBoYWtrYW5cIDsKK+WFrOS6uiA+IGtvdWppblwgOwor5YSA5a64ID4gZ2lzaGluXCA7Civkv4LoiLkgPiBrZWlzZW5cIDsKK+aflOmghiA+IGp1dWp1blwgOwor5YWo5LyaID4gemVua2FpXCA7CivnlarniqwgPiBiYW5rZW5cIDsKK+mmrOi6qyA+IGJhc2hpblwgOwor55m95YWJID4gaGFra291XCA7Civnl5nmlKMgPiBrZWlyZW5cIDsKK+S9jui/tyA+IHRlaW1laVwgOwor6Iqv5ZywID4gc2hpbmppXCA7Civkvr/oiLkgPiBiaW5zZW5cIDsKK+WFqOS6uiA+IHplbmppblwgOwor6IWO6IeTID4gamluem91XCA7CivpprPotbAgPiBjaGlzb3VcIDsKK+eZuuWFiSA+IGhha2tvdVwgOwor5YWD5YuyID4gZ2Vua3VuXCA7CivohYvoh60gPiB3YWtpZ2FcIDsKK+WBnOa7niA+IHRlaXRhaVwgOwor5YWI5Yi2ID4gc2Vuc2VpXCA7CivpppnpgZMgPiBrb3Vkb3VcIDsKK+iLseS6rCA+IGVpa3lvdVwgOwor55e05oWLID4gY2hpdGFpXCA7CivlsbHnoKYgPiBzYW5zYWlcIDsKK+WvneiogCA+IG5lZ290b1wgOwor5L2z6Kq/ID4ga2FjaG91XCA7Civpq5jmpbwgPiBrb3Vyb3VcIDsKK+i7ouWxhSA+IHRlbmt5b1wgOwor5YGJ54OIID4gaXJldHN1XCA7CivlhYnlhqAgPiBrb3VrYW5cIDsKK+mtr+WbvSA+IHJva29rdVwgOwor6ISH6KaLID4gd2FraW1pXCA7CivlhYXliIYgPiBqdXVidW5cIDsKK+aooeS9nCA+IG1vc2FrdVwgOwor55qG5LydID4ga2FpZGVuXCA7Civnl7Tmg4UgPiBjaGlqb3VcIDsKK+WtnemkiiA+IGtvdXlvdVwgOwor6Ieo5rivID4gcmlua291XCA7CivltIfmlawgPiBzdXVrZWlcIDsKK+i7ouWvnSA+IGdvcm9uZVwgOwor6IWQ6IKJID4gZnVuaWt1XCA7Civlrpjph5EgPiBrYW5raW5cIDsKK+i8uOWFpSA+IHl1bnl1dVwgOwor5YWI5YW1ID4gc2VucGVpXCA7Civou43luL0gPiBndW5ib3VcIDsKK+WFh+WFtyA+IGt5b3VndVwgOwor5L+X57iBID4gem9rdWVuXCA7Civou43luKsgPiBndW5zaGlcIDsKK+iFueetiyA+IGZ1a2tpblwgOwor6Ieq5racID4gaml0b2t1XCA7CivohprnnYAgPiBoYWRhZ2lcIDsKK+i1sOihjCA+IHNvdWtvdVwgOwor5a656LWmID4geW91c2hhXCA7CivlsL/ntKAgPiBueW91c29cIDsKK+aghOmAsiA+IGVpc2hpblwgOwor5qeL5aSWID4ga291Z2FpXCA7CivmpZPmnpcgPiBmdXVyaW5cIDsKK+WFmuS6uiA+IHRvdWppblwgOwor6Ieo5rW3ID4gcmlua2FpXCA7CivkvZnos4ogPiB5b3pva3VcIDsKK+aknOa4qSA+IGtlbicnb25cIDsKK+Wvk+iogCA+IGd1dWdlblwgOwor5YWa5LqJID4gdG91c291XCA7CivpgYXjgIUgPiBjaGljaGlcIDsKK+mmlui8qiA+IGt1Yml3YVwgOwor6Iq45ZCNID4gZ2VpbWVpXCA7CivlgaXmsJcgPiBrZW5hZ2VcIDsKK+mrmOagoSA+IGtvdWtvdVwgOwor5a2d6aCGID4ga291anVuXCA7CivogpvploAgPiBrb3Vtb25cIDsKK+iHquazqCA+IGppY2h1dVwgOwor5qCE6L6xID4gZWlqb2t1XCA7CivlrpjpgrggPiBrYW50ZWlcIDsKK+i1pOijuCA+IHNla2lyYVwgOwor6Ie05q27ID4gY2hpc2hpXCA7CivlsI/oiLkgPiBrb2J1bmVcIDsKK+S8jemVtyA+IGdvY2hvdVwgOwor6Im25a65ID4gZW4nJ3lvdVwgOwor5bGI562LID4ga3Vra2luXCA7CivlrrnosowgPiB5b3Vib3VcIDsKK+Wwj+iInyA+IGtvYnVuZVwgOwor55m65LyaID4gaGFra2FpXCA7Civoh6rmsoggPiBqaWNoaW5cIDsKK+WumOmBuCA+IGthbnNlblwgOwor55eb5omTID4gdHN1dWRhXCA7Civoh63msJcgPiBzaHV1a2lcIDsKK+WutuizgyA+IHlhY2hpblwgOwor55m75LuZID4gdG91c2VuXCA7CivoirPlkI0gPiBob3VtZWlcIDsKK+WtpumZoiA+IGdha3VpblwgOwor6a2U5aKDID4gbWFreW91XCA7CivoiIzmoLkgPiB6ZWtrb25cIDsKK+WAieeahyA+IHNvdWtvdVwgOwor5bSp5b6hID4gaG91Z3lvXCA7CivkvZPosowgPiB0YWlib3VcIDsKK+mlhemgrSA+IG1hbmp1dVwgOwor5L2c6K2cID4gc2FrdWZ1XCA7CivkvbXooYwgPiBoZWlrb3VcIDsKK+WFiOS+vyA+IHNlbmJpblwgOwor5bCP6IadID4ga29oaXphXCA7CivliY3jgIUgPiBtYWVtYWVcIDsKK+WyrOa5viA+IGtvdXdhblwgOwor5YCS55SjID4gdG91c2FuXCA7CivlsI/ohbkgPiBrb2JhcmFcIDsKK+WFiOS+iyA+IHNlbnJlaVwgOwor5YWD5YCkID4gbW90b25lXCA7CivkvY7os4cgPiB0ZWlzaGlcIDsKK+mqqOazlSA+IGtvcHBvdVwgOwor55Sf56GsID4gc2Vpa291XCA7Civoia/lrrYgPiByeW91a2VcIDsKK+WFieS9kyA+IGtvdXRhaVwgOwor5a6Y6L66ID4ga2FucGVuXCA7Civoi5/kuJQgPiBrb3VzaG9cIDsKK+WxpOebuCA+IHNvdXNvdVwgOwor5a6f6LuKID4gamlzc2hhXCA7CivlhYjkvY8gPiBzZW5qdXVcIDsKK+WvhuioiCA+IG1pa2tlaVwgOwor5YSq5YuiID4geXV1c2VpXCA7CivlgrLmhaIgPiBnb3VtYW5cIDsKK+S7i+mxlyA+IGthaXJpblwgOwor6IO46KOPID4ga3lvdXJpXCA7CivlsI/ohIcgPiBrb3dha2lcIDsKK+WvhOiolyA+IGtpdGFrdVwgOwor5bSH5oudID4gc3V1aGFpXCA7CivmpoLlv7UgPiBnYWluZW5cIDsKK+eUqOebiiA+IHlvdWVraVwgOwor5bGv55SwID4gdG9uZGVuXCA7Civohr7ngpkgPiBrYWlzaGFcIDsKK+eZuOS4kSA+IGtpY2h1dVwgOwor5YWI5LujID4gc2VuZGFpXCA7Civpp5jolakgPiB0YWl0b3VcIDsKK+WBnOatoiA+IHRlaXNoaVwgOwor5bCP6IKhID4ga29tYXRhXCA7CivlhYjkurogPiBzZW5qaW5cIDsKK+i7ouWkiSA+IHRlbnBlblwgOwor6Lui5aOyID4gdGVuYmFpXCA7CivlgbTmoLkgPiBzb2trb25cIDsKK+WujOmBgiA+IGthbnN1aVwgOwor5a6f6Le1ID4gamlzc2VuXCA7Civlrpjou40gPiBrYW5ndW5cIDsKK+iDjOi1sCA+IGhhaXNvdVwgOwor6Lqr5b2iID4gbWluYXJpXCA7CivmoKHoqJMgPiBrb3VrdW5cIDsKK+Wwj+iAsyA+IGtvbWltaVwgOwor6IG06Z+zID4gY2hvdW9uXCA7CivmoKHoqIIgPiBrb3V0ZWlcIDsKK+iIiOabvyA+IGtvdXRhaVwgOwor5a656KqNID4geW91bmluXCA7CivohLHohIIgPiBkYXNzaGlcIDsKK+WFiOS4uyA+IHNlbnNodVwgOwor5Lya6YeIID4gZXNoYWt1XCA7CivlrZTpm4AgPiBrdWpha3VcIDsKK+aknOatuyA+IGtlbnNoaVwgOwor5bCP6ICFID4ga29tb25vXCA7Civku6PpoZggPiBkYWlnYW5cIDsKK+mkium2jyA+IHlvdWtlaVwgOwor5L+C57SvID4ga2VpcnVpXCA7Civogp3pipggPiBrYW5tZWlcIDsKK+S9k+iqjSA+IHRhaW5pblwgOwor5L2Z6KeSID4geW9rYWt1XCA7CivohLHogpsgPiBkYWtrb3VcIDsKK+WvneiXgSA+IG5ld2FyYVwgOwor5YSq5YWIID4geXV1c2VuXCA7Civos73piq0gPiBzYWlzZW5cIDsKK+WBtuaciSA+IGd1dXl1dVwgOwor5a+G6KGMID4gbWlra291XCA7CivlhYPkuIkgPiBnYW56YW5cIDsKK+iGoOeKtiA+IGtvdWpvdVwgOwor5L2T6KiAID4gdGFpZ2VuXCA7CivlgaXmo5IgPiBrZW5ib3VcIDsKK+WIuuOAhSA+IGlyYWlyYVwgOwor6Lqr5bmFID4gbWloYWJhXCA7Civku7LplpMgPiBuYWthbWFcIDsKK+S8nemBkyA+IGRlbmRvdVwgOwor5Ly06LWwID4gYmFuc291XCA7Civouqvlt74gPiBtaWhhYmFcIDsKK+WtlOmWgCA+IGtvdW1vblwgOwor6Lui5ZywID4gdGVuY2hpXCA7Civoia/lpJwgPiByeW91eWFcIDsKK+S9k+imgSA+IHRhaXlvdVwgOwor5Lyd6YCBID4gZGVuc291XCA7CivotIvpgKAgPiBnYW56b3VcIDsKK+mujuS4piA+IGFpbmFtZVwgOwor6Ii55b2xID4gc2VuJydlaVwgOwor6IiI5pWXID4ga291aGFpXCA7Civou6Llm54gPiB0ZW5rYWlcIDsKK+iHqOaknCA+IHJpbmtlblwgOwor5a++6IGvID4gdGFpcmVuXCA7CivnmYjlhbUgPiBoYWloZWlcIDsKK+mmluisgCA+IHNodWJvdVwgOwor5YOV5amiID4gYm9rdWhpXCA7Civmo5LnirYgPiBib3Vqb3VcIDsKK+mrmOaPmiA+IGtvdXlvdVwgOwor5LuW6aCYID4gdGFyeW91XCA7Civoga/pmoogPiByZW50YWlcIDsKK+WvuOiDtCA+IHp1bmRvdVwgOwor5YOn5aCCID4gc291ZG91XCA7Civkvo3oh6MgPiBqaXNoaW5cIDsKK+mok+eulyA+IGtlbnphblwgOwor55Sf55SjID4gc2Vpc2FuXCA7CivnlJ/nlJ8gPiBzZWlzZWlcIDsKK+S6uumtmiA+IG5pbmd5b1wgOwor5L2T6KOBID4gdGVpc2FpXCA7Civou43lo6sgPiBndW5zaGlcIDsKK+S+v+euoSA+IGJlbmthblwgOwor5YG25pWwID4gZ3V1c3V1XCA7Civkvr/nrosgPiBiaW5zZW5cIDsKK+mkiumtmiA+IHlvdWd5b1wgOwor5bCO57eaID4gZG91c2VuXCA7CivogZbppJAgPiBzZWlzYW5cIDsKK+WujOi1sCA+IGthbnNvdVwgOwor5LyJ6YWNID4ga291aGFpXCA7Civppqzonb8gPiB1bWFiYWVcIDsKK+iKseS/oSA+IGthc2hpblwgOwor5a6j6KqTID4gc2Vuc2VpXCA7Civku6TplqggPiByZWlrZWlcIDsKK+WDp+WdiiA+IHNvdWJvdVwgOwor5a++572uID4gdGFpY2hpXCA7Civpp5Doi7EgPiBjaHV1ZWlcIDsKK+iCqei6qyA+IGthdGFtaVwgOwor5LuK6aKoID4gaW1hZnV1XCA7CivpgJnjgIUgPiBob3Vob3VcIDsKK+iKuOS6uiA+IGdlaW5pblwgOwor5p+U6YGTID4ganV1ZG91XCA7CivlsaTnirYgPiBzb3Vqb3VcIDsKK+iEsee3miA+IGRhc3NlblwgOwor5qC56I+cID4ga29uc2FpXCA7CivlrqPoqIAgPiBzZW5nZW5cIDsKK+iDoeidtiA+IGtvY2hvdVwgOwor5bCP57OgID4ga29udWthXCA7CivmpJzmoYggPiBrZW4nJ2FuXCA7Civmnp3pmoogPiBzaGl0YWlcIDsKK+WumuirliA+IHRlaXJvblwgOwor5qW95bGLID4gZ2FrdXlhXCA7Civpq5jmiYAgPiBrb3VzaG9cIDsKK+eXheW+jCA+IGJ5b3Vnb1wgOwor6Ia/5rGBID4gbm91anV1XCA7CivlgrLlsrggPiBnb3VnYW5cIDsKK+Wwj+exsyA+IGtvZ29tZVwgOwor5a2m6YOoID4gZ2FrdWJ1XCA7Civoh6jmm7ggPiByaW5zaG9cIDsKK+afu+iqrSA+IHNhZG9rdVwgOwor6IWr55iNID4gc2h1eW91XCA7Civmpb3lr50gPiByYWt1bmVcIDsKK+Wwgee3mCA+IGZ1dWthblwgOwor5qC56IyOID4ga29ua2VpXCA7CivohqjmuoAgPiBib3VtYW5cIDsKK+S/rueQhiA+IHNodXVyaVwgOwor6ISx57OeID4gZGFwcHVuXCA7Civkv6HnlpEgPiBzaGluZ2lcIDsKK+Wun+imiyA+IGppa2tlblwgOwor6LuN5ZujID4gZ3VuZGFuXCA7Civoh5jmooUgPiByb3ViYWlcIDsKK+WumuiogCA+IHRlaWdlblwgOwor5p+76Ki8ID4gc2FzaG91XCA7CivlgJLmvbAgPiB0b3VrYWlcIDsKK+iIjOaIpiA+IHplc3NlblwgOwor5bCW56uvID4gc2VudGFuXCA7CivlrpjoqLEgPiBrYW5reW9cIDsKK+mrmOaFoiA+IGtvdW1hblwgOwor5p+U6LufID4ganV1bmFuXCA7CivlsI/nrrEgPiBrb2Jha29cIDsKK+iBlumciiA+IHNlaXJlaVwgOwor55mI5Lq6ID4gaGFpamluXCA7Civou6LlkJEgPiB0ZW5rb3VcIDsKK+WvhuiRrCA+IG1pc3NvdVwgOwor5bC955iBID4gamluc3VpXCA7CivkvbPoia8gPiBrYXJ5b3VcIDsKK+WwiuewoSA+IHNvbmthblwgOwor5bCO566hID4gZG91a2VuXCA7CivlsITnsr4gPiBzaGFzZWlcIDsKK+WumuimiyA+IHRlaWtlblwgOwor5L+d55WZID4gaG9yeXV1XCA7Civmp4vlhoUgPiBrb3VuYWlcIDsKK+eTpuekqyA+IGdhcmVraVwgOwor5a6f6KOFID4gamlzc291XCA7CivmpbXlr5IgPiBnb2trYW5cIDsKK+mnheiIjiA+IGVraXNoYVwgOwor5p2l6a6uID4gcmFpc2VuXCA7CivkurrpoZ4gPiBqaW5ydWlcIDsKK+ael+mWkyA+IHJpbmthblwgOwor5a6X6KaPID4gc2h1dWtpXCA7Civlr6nnvo4gPiBzaGluYmlcIDsKK+W0qeWjiiA+IGhvdWthaVwgOwor5Lqh6a2CID4gYm91a29uXCA7CivotIjos4QgPiB6b3V3YWlcIDsKK+S9v+iBmCA+IHNoaWhlaVwgOwor5Lq66aCtID4gamludG91XCA7CivotbDogIUgPiBzb3VzaGFcIDsKK+WtnemBkyA+IGtvdWRvdVwgOwor5a6f6KGMID4gamlra291XCA7Civou43llrYgPiBndW4nJ2VpXCA7Civlg63lj5YgPiBzZW5zaHVcIDsKK+anmOS9kyA+IHlvdXRhaVwgOwor6LOc6YeRID4gc2hpa2luXCA7CivmoKHokawgPiBrb3Vzb3VcIDsKK+i7veS+vyA+IGtlaWJlblwgOwor5L2/6ICFID4gc2hpc2hhXCA7Civlrpjoo70gPiBrYW5zZWlcIDsKK+WBtuaIkCA+IGd1dXNlaVwgOwor5L+X55WMID4gem9ra2FpXCA7Civou6Lli6QgPiB0ZW5raW5cIDsKK+S6pOmpqSA+IGtvdWthblwgOwor5L+X55S7ID4gem9rdWdhXCA7Civmnb7pn7sgPiBzaG91aW5cIDsKK+WvvuexsyA+IHRhaWJlaVwgOwor5a6L6KmeID4gc291c2hpXCA7CivlubPjgIUgPiBoZWloZWlcIDsKK+i3neeIqiA+IGt5b3NvdVwgOwor5YOn5Y+3ID4gc291Z291XCA7CivohILogqogPiBzaGlib3VcIDsKK+S6uumdoiA+IGppbm1lblwgOwor5bCC566hID4gc2Vua2FuXCA7CivogozouqsgPiBoYWRhbWlcIDsKK+iJr+WQpiA+IHJ5b3VoaVwgOwor6aO86aSKID4gc2hpeW91XCA7Civls7bltrwgPiB0b3VzaG9cIDsKK+iAgem9oiA+IHJvdXJlaVwgOwor6Imv5ZCPID4gcnlvdXJpXCA7Civmnb7pnLIgPiBzaG91cm9cIDsKK+WwgeetkiA+IGZ1dXRvdVwgOwor6aOb6bOlID4gaGljaG91XCA7CivohJrntYYgPiBreWFoYW5cIDsKK+WBtuaEnyA+IGd1dWthblwgOwor6LKd6aGeID4ga2FpcnVpXCA7Civku5jpjLIgPiBmdXJva3VcIDsKK+WBj+aXgSA+IGhlbmJvdVwgOwor5Luj6YeRID4gZGFpa2luXCA7Civpq5jlvJ8gPiBrb3V0ZWlcIDsKK+izvOiytyA+IGtvdWJhaVwgOwor6ISx56i/ID4gZGFra291XCA7CivlgY/mlpwgPiBoZW5zaGFcIDsKK+Wxsea1tyA+IHNhbmthaVwgOwor5a+G6IiqID4gbWlra291XCA7Civlr5LogqUgPiBrYW5nb2VcIDsKK+WvvuetiSA+IHRhaXRvdVwgOwor6Lui5YaZID4gdGVuc2hhXCA7CivkvJroq4cgPiBrYWlkYW5cIDsKK+iIjuW8nyA+IHNoYXRlaVwgOwor5YK+5Z+OID4ga2Vpc2VpXCA7CivlgaXmipUgPiBrZW50b3VcIDsKK+mmtOiHtCA+IGp1bmNoaVwgOwor6a2a5LuLID4gZ3lva2FpXCA7CivlgpjlsYsgPiBrYXNheWFcIDsKK+mrmOW5tCA+IGtvdW5lblwgOwor5L21572uID4gaGVpY2hpXCA7CivlsITnqIsgPiBzaGF0ZWlcIDsKK+S8neiogCA+IGRlbmdvblwgOwor6LuK5Y+wID4gc2hhZGFpXCA7CivnlbPmlbAgPiBqb3VzdXVcIDsKK+WvvuepuiA+IHRhaWt1dVwgOwor5Lya6KiIID4ga2Fpa2VpXCA7CivkvZzoiIggPiBzYWtrb3VcIDsKK+iBr+mCpiA+IHJlbnBvdVwgOwor6IW454KOID4gY2hvdWVuXCA7CivkurrplpMgPiBuaW5nZW5cIDsKK+WtpuiyuyA+IGdha3VoaVwgOwor5p2x6Z2iID4gdG91bWVuXCA7Civpq5jlt6UgPiBrb3Vrb3VcIDsKK+agoeiIjiA+IGtvdXNoYVwgOwor5bCP56C0ID4gc2hvdWhhXCA7Civos4fph5EgPiBzaGlraW5cIDsKK+mrmOW2uiA+IHRha2FuZVwgOwor6aOb6a2aID4gdG9iaXVvXCA7CivlsbHmsLQgPiBzYW5zdWlcIDsKK+S9meiIiCA+IHlva3lvdVwgOwor5bGx5rCXID4geWFtYWtlXCA7CivlsI/nn7MgPiBrb2lzaGlcIDsKK+iIiOW7gyA+IGtvdWhhaVwgOwor6LuN5YuiID4gZ3VuemVpXCA7CivkvZnoh60gPiB5b3NodXVcIDsKK+S8muimiyA+IGthaWtlblwgOwor5YCS5q27ID4gdG91c2hpXCA7CivlsIHnpoUgPiBob3V6ZW5cIDsKK+i0heiogCA+IHplaWdlblwgOwor54++6YeRID4gZ2Vua2luXCA7CivlsYXnhLYgPiBreW96ZW5cIDsKK+WEhOS4hyA+IG9rdW1hblwgOwor5qSc5oyZID4ga2Vua3lvXCA7Civou43lip8gPiBndW5rb3VcIDsKK+i7ouWAkiA+IHRlbnRvdVwgOwor55S65q2pID4gY2hvdWJ1XCA7Civlg6flhbUgPiBzb3VoZWlcIDsKK+eWkeaDkSA+IGdpd2FrdVwgOwor5bO25a6IID4gdG91c2h1XCA7Civku6Pov5QgPiBkYWloZW5cIDsKK+WBnOaIpiA+IHRlaXNlblwgOwor5qW95ZyfID4gcmFrdWRvXCA7Civoh6jmiKYgPiByaW5zZW5cIDsKK+WuneiUtSA+IGhvdXpvdVwgOwor5qW95ZySID4gcmFrdWVuXCA7Civoh7Pmg4UgPiBzaGlqb3VcIDsKK+mrmOWzsCA+IGtvdWhvdVwgOwor5p6X6YeOID4gcmluJyd5YVwgOwor6LuN5Yi2ID4gZ3Vuc2VpXCA7CivkuqzpmKogPiBrZWloYW5cIDsKK+i1pOe3miA+IGFrYXNlblwgOwor5a626IejID4ga2FzaGluXCA7CivkuqTpnIogPiBrb3VyZWlcIDsKK+S7lumDtyA+IHRha3lvdVwgOwor6LuN5YiAID4gZ3VudG91XCA7CivpppnojYkgPiBrb3Vzb3VcIDsKK+eXtOWRhiA+IGNoaWhvdVwgOwor5p2h6aCFID4gam91a291XCA7Civou5/kvr8gPiBuYW5iZW5cIDsKK+Wwj+ebriA+IGtvbW9rdVwgOwor5p+Q6KqMID4gYm91c2hpXCA7CivmoITokL0gPiBlaXJha3VcIDsKK+i7iuWIuCA+IHNoYWtlblwgOwor6Lui5L2PID4gdGVuanV1XCA7CivnlKjms5UgPiB5b3Vob3VcIDsKK+iJmeWPoyA+IHNvdWtvdVwgOwor6IeG5patID4gb2t1ZGFuXCA7Civpq5jlsbEgPiBrb3V6YW5cIDsKK+i6jeWmgiA+IHlha3Vqb1wgOwor6auY5bGkID4ga291c291XCA7CivlsI/nmr8gPiBrb3phcmFcIDsKK+Wwj+eauiA+IGtvaml3YVwgOwor5Lqh6ZyKID4gYm91cmVpXCA7CivkuqTpmpsgPiBrb3VzYWlcIDsKK+iIueWeiyA+IHNlbmtlaVwgOwor6LWk57WMID4gc2Vra2VpXCA7CivkvZ7ogIUgPiBuZWlzaGFcIDsKK+alreWgsSA+IGdvdWhvdVwgOwor6aas6IKJID4gYmFuaWt1XCA7CivkvZPohZQgPiB0YWlrb3VcIDsKK+WBleaIkCA+IGthaXNlaVwgOwor55aR5b+DID4gZ2lzaGluXCA7Civou43lhbUgPiBndW5wZWlcIDsKK+adpembuyA+IHJhaWRlblwgOwor5p2x6ZaAID4gdG91bW9uXCA7Civpq5jlsIIgPiBrb3VzZW5cIDsKK+WBpeW/mCA+IGtlbmJvdVwgOwor55So5rC0ID4geW91c3VpXCA7Civou4rlhoUgPiBzaGFuYWlcIDsKK+mmreiAhSA+IGd5b3NoYVwgOwor6a2F5LqGID4gbWlyeW91XCA7Civkuozpo58gPiBuaWppa2lcIDsKK+iIueWboyA+IHNlbmRhblwgOwor6ISC57KJID4gc2hpZnVuXCA7Civnj77pgIEgPiBnZW5zb3VcIDsKK+mrmOWumCA+IGtvdWthblwgOwor6Iez5b2TID4gc2hpdG91XCA7CivnjoTpu4QgPiBnZW5rb3VcIDsKK+S9k+iCsiA+IHRhaWlrdVwgOwor6LuN5YOnID4gZ3Vuc291XCA7CivlsaXmrbQgPiByaXJla2lcIDsKK+WDp+S+tiA+IHNvdXJ5b1wgOwor5p6X6YGTID4gcmluZG91XCA7CivosrTph40gPiBraWNob3VcIDsKK+S9mee/kiA+IHlvc2h1dVwgOwor6LGK6bqXID4gaG91cmVpXCA7CivlgKTmnK0gPiBuZWZ1ZGFcIDsKK+S9juiDvSA+IHRlaW5vdVwgOwor5p2l6ZiqID4gcmFpaGFuXCA7Civlg6fkvZMgPiBzb3V0YWlcIDsKK+S+i+elrSA+IHJlaXNhaVwgOwor6LK06YWsID4ga2lzaHV1XCA7Civog5rog44gPiBoYWl0YWlcIDsKK+WDp+S8vSA+IHNvdWd5YVwgOwor5qGn55quID4gaGl3YWRhXCA7Civlgr7lkJEgPiBrZWlrb3VcIDsKK+WtkOixmiA+IGtvYnV0YVwgOwor6LKv6YeRID4gY2hva2luXCA7Civmpb3lk6EgPiBnYWt1aW5cIDsKK+WBpeW6tyA+IGtlbmtvdVwgOwor6Ieq5b6XID4gaml0b2t1XCA7Civlg63kuLsgPiBzZW5zaHVcIDsKK+S7o+i1sCA+IGRhaXNvdVwgOwor5Luj6LWtID4gdGFpc2hhXCA7CivogrrokYkgPiBoYWl5b3VcIDsKK+WDreS4iiA+IHNlbmpvdVwgOwor6Ieo5b6hID4gcmluZ3lvXCA7CivosqfpibEgPiBoaW5rb3VcIDsKK+WBj+aEmyA+IGhlbicnYWlcIDsKK+WBveWtpiA+IGdpZ2FrdVwgOwor5YKR5aOrID4ga2Vzc2hpXCA7CivpppbohLMgPiBzaHVub3VcIDsKK+i7jeS9vyA+IGd1bnNoaVwgOwor55Sf5q6LID4gc2VpemFuXCA7CivnlJ/mrbsgPiBzZWlzaGlcIDsKK+adv+mHkSA+IGJhbmtpblwgOwor5qOf5pyoID4gbXVuYWdpXCA7CivnlarmiYAgPiBiYW5zaG9cIDsKK+i3r+aomSA+IHJvaHlvdVwgOwor55yI44CFID4gdGFudGFuXCA7CivnlLfmoLkgPiBkYW5rb25cIDsKK+S9jue9riA+IHRlaWNoaVwgOwor6aaW6IKvID4gc2h1a291XCA7Civou4rkvZMgPiBzaGF0YWlcIDsKK+iIueWToSA+IHNlbicnaW5cIDsKK+eXheWboCA+IGJ5b3VpblwgOwor5a2X6KizID4gaml5YWt1XCA7Civou43ku6QgPiBndW5yZWlcIDsKK+WBj+aApyA+IGhlbnNlaVwgOwor5qON5qOSID4ga29uYm91XCA7CivlsaTmpbwgPiBzb3Vyb3VcIDsKK+WBnOW5tCA+IHRlaW5lblwgOwor5YKY5ZywID4ga2FzYWppXCA7Civoh6jlubggPiByaW5rb3VcIDsKK+i7jeS6uiA+IGd1bmppblwgOwor6Ieq5bitID4gamlzZWtpXCA7CivkuojpnIcgPiB5b3NoaW5cIDsKK+WumOiIjiA+IGthbnNoYVwgOwor6aiS54S2ID4gc291emVuXCA7Civpq5jlpKcgPiBrb3VkYWlcIDsKK+iHpeW6iiA+IGdhc2hvdVwgOwor5bGx5p6XID4gc2FucmluXCA7CivmpbXlj7MgPiBreW9rdXVcIDsKK+acqOmtgiA+IGtvZGFtYVwgOwor6auY5aOrID4ga291c2hpXCA7CivohY7ngo4gPiBqaW4nJ2VuXCA7CivlsbHmnZEgPiBzYW5zb25cIDsKK+S6uumBuCA+IGppbnNlblwgOwor5bCP54yrID4ga29uZWtvXCA7Civku67oqJcgPiBrYXRha3VcIDsKK+WvvueUnyA+IHRhaXNlaVwgOwor5qOS5p2tID4gYm91Z3VpXCA7CivoiLnlj7AgPiBzZW5kYWlcIDsKK+S6uumBkyA+IGppbmRvdVwgOwor6aqo5bm5ID4ga29ra2FuXCA7Civmo5LmnZkgPiBib3VndWlcIDsKK+mmrOezpyA+IGJhcnlvdVwgOwor6LOH6LKhID4gc2hpemFpXCA7Civppqzns54gPiBtYWd1c29cIDsKK+S6uumAoCA+IGppbnpvdVwgOwor5YOF5YOFID4ga2lua2luXCA7CivmpbXljbAgPiBnb2t1aW5cIDsKK+S7o+isnSA+IHRhaXNoYVwgOwor5Luj6KybID4gZGFpa291XCA7CivkvJrokawgPiBrYWlzb3VcIDsKK+WtneihjCA+IGtvdWtvdVwgOwor55Sy5p2/ID4ga291aGFuXCA7Civou4rkuIogPiBzaGFqb3VcIDsKK+iHs+WwiiA+IHNoaXNvblwgOwor6IiF5aeRID4ga3l1dWtvXCA7Civkuonpl5ggPiBzb3V0b3VcIDsKK+iIiOWlriA+IGtvdWZ1blwgOwor6Imm5LiKID4ga2Fuam91XCA7Civogrroh5MgPiBoYWl6b3VcIDsKK+i6q+WGhSA+IG1pdWNoaVwgOwor5bCP54mpID4ga29tb25vXCA7Civpq5jloIIgPiBrb3Vkb3VcIDsKK+Wwj+eJmyA+IGtvdXNoaVwgOwor6Lqr5YWxID4gbWlkb21vXCA7Civnkbbnt5ggPiB5b3VrYW5cIDsKK+WCteWIuCA+IHNhaWtlblwgOwor6Iez5a6dID4gc2hpaG91XCA7CivkvZPns7sgPiB0YWlrZWlcIDsKK+WBj+W5syA+IGhlbnBlaVwgOwor6Lqr5YWDID4gbWltb3RvXCA7Civlr5/nn6UgPiBzYXRjaGlcIDsKK+eUn+aknCA+IHNlaWtlblwgOwor5Lqs6YO9ID4ga3lvdXRvXCA7CivmnKvpppkgPiBtYWtrb3VcIDsKK+iHs+WtnSA+IHNoaWtvdVwgOwor5pyo6aasID4gbW9rdWJhXCA7CivlgbTlpbMgPiBzb2JhbWVcIDsKK+acrOmkqCA+IGhvbmthblwgOwor5Luj6KiAID4gZGFpZ2VuXCA7CivmnbHpg4ogPiB0b3Vrb3VcIDsKK+iCuuiDniA+IGhhaWhvdVwgOwor6auY5ZywID4ga291Y2hpXCA7CivmnbHpgqYgPiB0b3Vob3VcIDsKK+iBluizoiA+IHNlaWtlblwgOwor5Lq66LuKID4gamluc2hhXCA7Civnl7TkurogPiBjaGlqaW5cIDsKK+acsemhlCA+IHNodWdhblwgOwor5Lq66LqrID4gaGl0b21pXCA7CivnlKjmnZAgPiB5b3V6YWlcIDsKK+S6pOmFjSA+IGtvdWhhaVwgOwor5p2x6YG3ID4gdG91c2VuXCA7Civogrrogp0gPiBoYWlrYW5cIDsKK+i2s+a5ryA+IGFzaGl5dVwgOwor5a6a572uID4gdGVpY2hpXCA7Civlgr7lgJIgPiBrZWl0b3VcIDsKK+alreWLmSA+IGd5b3VtdVwgOwor5YCN5pWwID4gYmFpc3V1XCA7CivmoZHnlLAgPiBzb3VkZW5cIDsKK+iAgembhCA+IHJvdXl1dVwgOwor6Ii55Ye6ID4gZnVuYWRlXCA7Civoh6rlroUgPiBqaXRha3VcIDsKK+iEh+ebriA+IHdha2ltZVwgOwor5qSc5bGNID4ga2Vuc2hpXCA7CivmnKzpoZggPiBob25nYW5cIDsKK+acrOmhjCA+IGhvbmRhaVwgOwor5Lmx6ZuyID4gcmFuJyd1blwgOwor55a+5ZG8ID4gc2hpa2tvXCA7Civlgq3lhbUgPiB5b3VoZWlcIDsKK+iIueWFtyA+IGZ1bmFndVwgOwor5a62562LID4gaWVzdWppXCA7CivosYrppZIgPiBob3Vqb3VcIDsKK+acrOmfsyA+IGhvbicnbmVcIDsKK+S7mOiolyA+IGZ1dGFrdVwgOwor5Lya6IiYID4ga2Fpa2FuXCA7CivmnKvpoIUgPiBtYWtrb3VcIDsKK+eUn+adpSA+IHNlaXJhaVwgOwor5Lqk6YGKID4ga291eXV1XCA7CivlgKbmhoogPiBrZW5wYWlcIDsKK+aeouimgSA+IHN1dXlvdVwgOwor6aKx6aKoID4gdGFpZnV1XCA7Civlrp/nt5ogPiBqaXNzZW5cIDsKK+WvneeZliA+IG5lZ3VzZVwgOwor6IeN5bivID4gc2VpdGFpXCA7CivmpJzlrpogPiBrZW50ZWlcIDsKK+adpemCuCA+IHJhaXRlaVwgOwor6IW55qGIID4gZnVrdWFuXCA7CivnlJ/mnKggPiBuYW1ha2lcIDsKK+iNieOAhSA+IHNvdXNvdVwgOwor5L2Z56iLID4geW9ob2RvXCA7Civku6PooYwgPiBkYWlrb3VcIDsKK+WztuWPuCA+IHRvdXNoaVwgOwor5YKy5YCoID4gZ291a3lvXCA7CivpqqjlrZAgPiBrb3NzaGlcIDsKK+iHs+WkpyA+IHNoaWRhaVwgOwor5L2/55SoID4gc2hpeW91XCA7CivkubHpl5ggPiByYW50b3VcIDsKK+adpemBiiA+IHJhaXl1dVwgOwor5p2x6LuNID4gdG91Z3VuXCA7CivlsZXmnJsgPiB0ZW5ib3VcIDsKK+iAs+i8qiA+IG1pbWl3YVwgOwor5L2Z56aEID4geW9yb2t1XCA7CivlsI/mva4gPiBrb3NoaW9cIDsKK+WvqeeQhiA+IHNoaW5yaVwgOwor5qK25pyoID4ga2FqaWtpXCA7Civosqfos6QgPiBoaW5zZW5cIDsKK+iyp+izjiA+IGhpbnNlblwgOwor5p2l6L+OID4gcmFpZ291XCA7CivmnInpq6ogPiB1aGF0c3VcIDsKK+i1pOeXoiA+IHNla2lyaVwgOwor5L6/5rOVID4gYmVucG91XCA7CivoiLnlgIkgPiBzZW5zb3VcIDsKK+S9juepuiA+IHRlaWt1dVwgOwor5pyo6ZyKID4ga29kYW1hXCA7CivkvJ3ogZ4gPiBkZW5idW5cIDsKK+acrOmaiiA+IGhvbnRhaVwgOwor5bKp5bGkID4gZ2Fuc291XCA7Civogp3oh5MgPiBrYW56b3VcIDsKK+acnemhlCA+IGFzYWdhb1wgOwor6Lqr5LiIID4gbWl0YWtlXCA7CivlgKbmgKAgPiBrZW50YWlcIDsKK+acrOmZoyA+IGhvbmppblwgOwor5pys6ZmiID4gaG9uJydpblwgOwor5bCo5q+bID4gbXVrdWdlXCA7CivlrprntIsgPiBqb3Vtb25cIDsKK+mkiuixmiA+IHlvdXRvblwgOwor5LuY6KGoID4gZnVoeW91XCA7CivlrrbnpoQgPiBrYXJva3VcIDsKK+acsemWgCA+IHNodW1vblwgOwor6IKd6IWOID4ga2FuamluXCA7CivkvbXnlKggPiBoZWl5b3VcIDsKK+mrmOWQnyA+IGtvdWdpblwgOwor5pyo6ZmwID4ga29rYWdlXCA7CivoiLnkvZMgPiBzZW50YWlcIDsKK+mrmOWQjSA+IGtvdW1laVwgOwor5YCS5oe4ID4gdG91a2VuXCA7CivlgrXkuLsgPiBzYWlzaHVcIDsKK+ePvuihjCA+IGdlbmtvdVwgOwor55Kw54q2ID4ga2Fuam91XCA7CivmnaXou4ogPiByYWlzaGFcIDsKK+iDjOetiyA+IGhhaWtpblwgOwor5bGx5omLID4geWFtYXRlXCA7CivohYvmr5sgPiB3YWtpZ2VcIDsKK+S/s+aWhyA+IGhhaWJ1blwgOwor5L6/5q6/ID4gYmVuZGVuXCA7CivmnIDpq5ggPiBzYWlrb3VcIDsKK+ail+amgiA+IGtvdWdhaVwgOwor6IKd6IOGID4ga2FudGFuXCA7Civpq5jljp8gPiBrb3VnZW5cIDsKK+acnemcsiA+IGNob3Vyb1wgOwor5bGv5omAID4gdG9uc2hvXCA7Civlgq3kurogPiB5b3VuaW5cIDsKK+izgOihqCA+IGdhaHlvdVwgOwor5pyd6ZyeID4gY2hvdWthXCA7Civlrp3nrpcgPiBob3VzYW5cIDsKK+iMtuOAhSA+IGNoYWNoYVwgOwor6aKo6ZycID4gZnV1c291XCA7CivotbfniIYgPiBraWJha3VcIDsKK+iIiOWRsyA+IGt5b3VtaVwgOwor6ICQ6YW4ID4gdGFpc2FuXCA7CivlgaXlnKggPiBrZW56YWlcIDsKK+iCieiKvSA+IG5pa3VnYVwgOwor6Ieo5aC0ID4gcmluam91XCA7Civls7blhoUgPiB0b3VuYWlcIDsKK+eUqOaNqCA+IHlvdXNoYVwgOwor5a2k6IifID4ga29zaHV1XCA7CivkuozpgLIgPiBuaXNoaW5cIDsKK+adkemBkyA+IHNvbmRvdVwgOwor5YGP5aW9ID4gaGVua291XCA7CivkuozpgJogPiBuaXRzdXVcIDsKK+WGpeOAhSA+IG1laW1laVwgOwor5a2Q6JGJID4gc2hpeW91XCA7Civogq/ntq4gPiBrb3VrZWlcIDsKK+S9qeeUqCA+IGhhaXlvdVwgOwor5LmX6ZmNID4gam91a291XCA7Civkuovov7kgPiBqaXNla2lcIDsKK+WumOetiSA+IGthbnRvdVwgOwor5YCk5bmFID4gbmVoYWJhXCA7CivnjoTplqIgPiBnZW5rYW5cIDsKK+miqOmYsiA+IGZ1dWJvdVwgOwor5bCa5q2mID4gc2hvdWJ1XCA7Civmnq/okYkgPiBrYXJlaGFcIDsKK+WutuedoyA+IGthdG9rdVwgOwor5YG25ZCfID4gZ3V1a2luXCA7CivkvJ3nt5ogPiBkZW5zZW5cIDsKK+WApOW3viA+IG5laGFiYVwgOwor6Ieq5Zu9ID4gamlrb2t1XCA7Civoh6jlnKggPiByaW56YWlcIDsKK+S9meeZvSA+IHlvaGFrdVwgOwor5a6/55e+ID4gc2h1a3VhXCA7Civlr4bnlJ8gPiBtaXNzZWlcIDsKK+WvhOeVmSA+IGtpcnl1dVwgOwor5p2l6LOTID4gcmFpaGluXCA7Civoh7PlloQgPiBzaGl6ZW5cIDsKK+S8nee1sSA+IGRlbnRvdVwgOwor55S75b+DID4gZ2FzaGluXCA7CivlsI7msLQgPiBkb3VzdWlcIDsKK+adpeiyoiA+IHJhaWtvdVwgOwor55S35oCnID4gZGFuc2VpXCA7CivlsYXmlbcgPiBpc2hpa2lcIDsKK+iEseazlSA+IGRhcHBvdVwgOwor5YCk5bWpID4gbmVnYXNhXCA7CivmpJzlnLAgPiBrZW5jaGlcIDsKK+ixqumCuCA+IGdvdXRlaVwgOwor5YGl5ZWWID4ga2VudGFuXCA7CivkvZnnl4UgPiB5b2J5b3VcIDsKK+iHquWYsiA+IGppY2hvdVwgOwor6LKg6KiXID4gZnV0YWt1XCA7CivogIHphZIgPiByb3VzaHVcIDsKK+S4u+mhjCA+IHNodWRhaVwgOwor5L2O55uuID4gaGlrdW1lXCA7CivkvZznlLsgPiBzYWt1Z2FcIDsKK+eNo+mhniA+IGp1dXJ1aVwgOwor6LGq6YKBID4gZ291bWFpXCA7CivlsITms5UgPiBzaGFob3VcIDsKK+S6pOitsiA+IGtvdWpvdVwgOwor5LqL6LmfID4gamlzZWtpXCA7CivlsbHlvoQgPiBzYW5rZWlcIDsKK+eSsOa/oCA+IGthbmdvdVwgOwor6aeE54mpID4gZGFtb25vXCA7CivohLHmsLQgPiBkYXNzdWlcIDsKK+ixqumBiiA+IGdvdXl1dVwgOwor6aOb6LqNID4gaGl5YWt1XCA7Civpq5jlg6cgPiBrb3Vzb3VcIDsKK+iHtOWRvSA+IGNoaW1laVwgOwor5Lmx6YWUID4gcmFuc3VpXCA7CivkubHphZIgPiByYW5zaHVcIDsKK+iIjuWFhCA+IHNoYWtlaVwgOwor5Luw6IelID4gZ3lvdWdhXCA7CivnlarlpJYgPiBiYW5nYWlcIDsKK+WyqeWhqSA+IGdhbicnZW5cIDsKK+eUn+aIkCA+IHNlaXNlaVwgOwor5YGP5ZyoID4gaGVuemFpXCA7Civkuovot6EgPiBqaXNla2lcIDsKK+S9leeVqiA+IG5hbmJhblwgOwor5pu46aKoID4gc2hvZnV1XCA7CivohLPmrbsgPiBub3VzaGlcIDsKK+S6jOi2syA+IG5pc29rdVwgOwor5a6X56WWID4gc2h1dXNvXCA7Civnvr3poqggPiBoYWthemVcIDsKK+ixqui+siA+IGdvdW5vdVwgOwor5bO25Lq6ID4gdG91amluXCA7CivkvqDmsJcgPiBreW91a2lcIDsKK+eUu+W5hSA+IGdhZnVrdVwgOwor5pyJ6ZmQID4geXV1Z2VuXCA7Civmm7jpoZ4gPiBzaG9ydWlcIDsKK+mmmeebkiA+IGtvdWdvdVwgOwor55S75bizID4gZ2FjaG91XCA7CivnlJ/mho4gPiBhaW5pa3VcIDsKK+mrmOWApCA+IHRha2FuZVwgOwor5Lit6aObID4gY2h1dWhpXCA7Civmnp3okYkgPiBzaGl5b3VcIDsKK+iwt+mWkyA+IHRhbmltYVwgOwor5Lqk6KmiID4ga291anVuXCA7CivkuLnpnZIgPiB0YW5zZWlcIDsKK+adseilvyA+IHRvdXphaVwgOwor6Iet5ZGzID4gc2h1dW1pXCA7CivnkLTnt5ogPiBraW5zZW5cIDsKK+iDoeeTnCA+IGt5dXVyaVwgOwor5YaN44CFID4gc2Fpc2FpXCA7Civpo5votoogPiBoaWV0c3VcIDsKK+eUn+aFiyA+IHNlaXRhaVwgOwor5bO25Li7ID4gdG91c2h1XCA7CivmnaXoq4cgPiByYWlkYW5cIDsKK+WAieW7qSA+IHNvdXJpblwgOwor6IWQ5py9ID4gZnVreXV1XCA7CivlronnqY8gPiBhbicnbm9uXCA7CivlgKTlrokgPiBuZXlhc3VcIDsKK+S7o+iJpiA+IGRhaWthblwgOwor5a+45rOVID4gc3VucG91XCA7Civog47nm6QgPiB0YWliYW5cIDsKK+iAgei+siA+IHJvdW5vdVwgOwor5Lmx6YCgID4gcmFuem91XCA7Civlgo3kurogPiBib3VqaW5cIDsKK+WxiOaMhyA+IGt1c3NoaVwgOwor6IKy56iuID4gaWt1c2h1XCA7CivmpJzllY8gPiBrZW5tb25cIDsKK+aiheaelyA+IGJhaXJpblwgOwor5pyo6YeYID4ga2lrdWdpXCA7CivmnInplpEgPiB5dXVrYW5cIDsKK+eUqOW/gyA+IHlvdWppblwgOwor55S35belID4gZGFua291XCA7CivosbzosoUgPiBoaWt5dXVcIDsKK+aciOmWkyA+IGdla2thblwgOwor5bGx5beTID4gc2FudGVuXCA7Civku4/okawgPiBidXNzb3VcIDsKK+WAn+WutiA+IHNoYWtrYVwgOwor5pu46Z2iID4gc2hvbWVuXCA7CivlsbHltrogPiBzYW5yZWlcIDsKK+adpeioqiA+IHJhaWhvdVwgOwor5Lit6Z+zID4gY2h1dW9uXCA7CivnlKjlvbkgPiB5b3Vla2lcIDsKK+ePquiXuyA+IGtlaXNvdVwgOwor6LSI562UID4gem91dG91XCA7CivogIHovKkgPiByb3VoYWlcIDsKK+iBvuiAhSA+IHJvdXNoYVwgOwor5qGR5rW3ID4gc291a2FpXCA7CivlsI/mpa8gPiBrb2RhdGVcIDsKK+afseekjiA+IGNodXVzb1wgOwor6aSK6JyCID4geW91aG91XCA7Civlrp/nm7ggPiBqaXNzb3VcIDsKK+S6i+ixoSA+IGppc2hvdVwgOwor5a+S54K5ID4ga2FudGVuXCA7CivogZrokL0gPiBqdXJha3VcIDsKK+aknOWTgSA+IGtlbnBpblwgOwor5YaF44CFID4gbmFpbmFpXCA7Civlgbblg48gPiBndXV6b3VcIDsKK+WtmOe9riA+IHNvbmNoaVwgOwor5pys6YK4ID4gaG9udGVpXCA7CivkvZPnj74gPiB0YWlnZW5cIDsKK+eVquWcsCA+IGJhbmNoaVwgOwor5p2x6KGMID4gdG91a291XCA7CivmnKzpgqYgPiBob25wb3VcIDsKK+eUsuW3oSA+IGtvdWp1blwgOwor5p2l6KazID4gcmFpa2FuXCA7CivppIrompUgPiB5b3VzYW5cIDsKK+acrOmBuCA+IGhvbnNlblwgOwor6aC96b2iID4gdGFpcmVpXCA7CivnkrDmtbcgPiBrYW5rYWlcIDsKK+acqOmDqCA+IG1va3VidVwgOwor5qGD5rqQID4gdG91Z2VuXCA7CivmnKzpgZMgPiBob25kb3VcIDsKK+WxheaJgCA+IGt5b3Nob1wgOwor6aKo6Yi0ID4gZnV1cmluXCA7Civot6/luoogPiByb3Nob3VcIDsKK+WBveS9nCA+IGdpc2FrdVwgOwor5Lmx6LuNID4gcmFuZ3VuXCA7Civos57nvo4gPiBzaG91YmlcIDsKK+WxleaApyA+IHRlbnNlaVwgOwor6LKv6JS1ID4gY2hvem91XCA7CivlsILmqKogPiBzZW4nJ291XCA7CivlsILmqKkgPiBzZW5rZW5cIDsKK+WAoeWppiA+IHNob3VmdVwgOwor5pyd6YeOID4gY2hvdXlhXCA7Civog5rnj6AgPiBoYWlzaHVcIDsKK+acqumAsiA+IG1pc2hpblwgOwor5LyR56ymID4ga3l1dWZ1XCA7CivnlJ/lvakgPiBzZWlzYWlcIDsKK+miqOmHhyA+IGZ1dXNhaVwgOwor6IOO55SfID4gdGFpc2VpXCA7CivnlKPlu4MgPiBzYW5wYWlcIDsKK+S7pOiBniA+IHJlaWJ1blwgOwor5L+z5b6KID4gaGFpa2FpXCA7Civoh6rlipsgPiBqaXJpa2lcIDsKK+S/guaVsCA+IGtlaXN1dVwgOwor5Lit6ZmwID4gY2h1dWluXCA7CivmpJzljbAgPiBrZW4nJ2luXCA7CivnlLrlrrYgPiBjaG91a2FcIDsKK+WwkeaelyA+IHNob3JpblwgOwor5YGl5YWoID4ga2VuemVuXCA7CivlgY/lkJEgPiBoZW5rb3VcIDsKK+WvruavjSA+IHJ5b3Vib1wgOwor6IiI5LqhID4ga291Ym91XCA7CivnlLvlraYgPiBnYWdha3VcIDsKK+WwhuajiyA+IHNob3VnaVwgOwor5LqS6KeSID4gZ29rYWt1XCA7Civos6rntKAgPiBzaGlzc29cIDsKK+aguea6kCA+IGtvbmdlblwgOwor5p+z55yJID4gcnl1dWJpXCA7Civkuonoq5YgPiBzb3Vyb25cIDsKK+i1sOazlSA+IHNvdWhvdVwgOwor5LiK6aiwID4gam91dG91XCA7CivlsbHlrrYgPiB5YW1hZ2FcIDsKK+S8muekviA+IGthaXNoYVwgOwor5a6f55SfID4gbWlzaG91XCA7CivmnKvovKkgPiBtYXBwYWlcIDsKK+WxnuW3riA+IHpva3VzYVwgOwor5LiN6aa0ID4gZnVuYXJlXCA7CivnlJ/lubQgPiBzZWluZW5cIDsKK+mokuaTviA+IHNvdWpvdVwgOwor5qS/5LqLID4gY2hpbmppXCA7Civlr67mrYwgPiByeW91a2FcIDsKK+mmluePrSA+IHNodWhhblwgOwor5a6a55WqID4gdGVpYmFuXCA7CivlgbbkurogPiBndXVqaW5cIDsKK+eUt+WtkCA+IGRhbnNoaVwgOwor5Luj572yID4gZGFpc2hvXCA7Civku6Pnva4gPiBkYWljaGlcIDsKK+iCuueZjCA+IGhhaWdhblwgOwor5L6h5qC8ID4ga2FrYWt1XCA7Civoh6jlhpkgPiByaW5zaGFcIDsKK+WumOeVjCA+IGthbmthaVwgOwor6aWM57GzID4gc2VubWFpXCA7CivotqPml6ggPiBzaHVzaGlcIDsKK+S7iuiIrCA+IGtvbnBhblwgOwor5bCK5p2lID4gc29ucmFpXCA7Civmoq/lvaIgPiB0ZWlrZWlcIDsKK+i9n+OAhSA+IGdvdWdvdVwgOwor6Iao5aSnID4gYm91ZGFpXCA7CivkuozoposgPiBmdXRhbWlcIDsKK+iHquWEmCA+IGppbWFtYVwgOwor5p6c6IKJID4ga2FuaWt1XCA7CivmpJzliIYgPiBrZW5idW5cIDsKK+S4oemZoiA+IHJ5b3VpblwgOwor55Sy5a2QID4ga2Fzc2hpXCA7CivkuIDpqZogPiBpa2t5b3VcIDsKK+WwkeaZgiA+IHNob3VqaVwgOwor5LqU6KGMID4gZ29neW91XCA7CivnvqTpnZIgPiBndW5qb3VcIDsKK+iHs+S+vyA+IHNoaWJlblwgOwor5bCK5pu4ID4gc29uc2hvXCA7CivkuojoppogPiB5b2tha3VcIDsKK+Wwj+aYvCA+IGtvaGlydVwgOwor5L2V54K5ID4gbmFudGVuXCA7Civmm53pnLIgPiBiYWt1cm9cIDsKK+Wwj+aYpSA+IGtvaGFydVwgOwor5L2Z54CdID4geW9yZWtpXCA7Civlrp3nj6AgPiBob3VzaHVcIDsKK+WvvuagoSA+IHRhaWtvdVwgOwor5a2Q57SwID4gc2hpc2FpXCA7CivnjK7ppYwgPiBrZW5zZW5cIDsKK+S/oeW+kiA+IHNoaW50b1wgOwor55Wq5Y+3ID4gYmFuZ291XCA7Civnlarlj7AgPiBiYW5kYWlcIDsKK+S4gOmnhCA+IGljaGlkYVwgOwor6ISH5q+bID4gd2FraWdlXCA7CivpoZ7poYwgPiBydWlkYWlcIDsKK+abnOmciiA+IHlvdXJlaVwgOwor5qC55rK7ID4ga29uY2hpXCA7Civlr7rmoLwgPiBqaWtha3VcIDsKK+WBieWKmyA+IGlyeW9rdVwgOwor5a+h5qyyID4ga2F5b2t1XCA7CivmnInphY0gPiB5dXVoYWlcIDsKK+iHtOS7lSA+IGNoaXNoaVwgOwor5LmX6LuKID4gam91c2hhXCA7Civoh6rkv64gPiBqaXNodXVcIDsKK+iHquS/oSA+IGppc2hpblwgOwor5LuV572uID4gc2hpb2tpXCA7Civpoqjou4ogPiBmdXVzaGFcIDsKK+aal+m7mSA+IGFubW9rdVwgOwor5bGx5aWzID4geWFtYW1lXCA7CivkuqzokYkgPiBrZWl5b3VcIDsKK+aal+m7kiA+IGFua29rdVwgOwor5bCB5pu4ID4gZnV1c2hvXCA7Civku4/ogIUgPiBidXNzaGFcIDsKK+ajhOWtkCA+IHN1dGVnb1wgOwor5YC55ZCdID4ga2VucmluXCA7Civog7jms7MgPiBreW91ZWlcIDsKK+WxnuWumCA+IHpva2thblwgOwor5YCS5aOKID4gdG91a2FpXCA7Civoh6rkvpsgPiBqaWt5b3VcIDsKK+S4iemfkyA+IHNhbmthblwgOwor5LqI6KGoID4geW9oeW91XCA7CivkuIfpoIMgPiBiYW5rZWlcIDsKK+S4gOmjmyA+IGljaGloaVwgOwor6LW35qWtID4ga2lneW91XCA7CivlgY/lhYkgPiBoZW5rb3VcIDsKK+ahlOailyA+IGtpa3lvdVwgOwor5qC55q+bID4ga29ubW91XCA7CivkvZnmu7QgPiB5b3Rla2lcIDsKK+WAjeWkpyA+IGJhaWRhaVwgOwor6Ieq5L2cID4gamlzYWt1XCA7CivogrLnlJ8gPiBpa3VzZWlcIDsKK+eUu+WigyA+IGdha3lvdVwgOwor5pyo6LOKID4gdG9rdXNhXCA7CivlsIrmlawgPiBzb25rZWlcIDsKK+eUt+WjsCA+IGRhbnNlaVwgOwor5LiK6Z2iID4gam91bWVuXCA7CivlsYXluLggPiBreW9qb3VcIDsKK+S7o+e0jSA+IGRhaW5vdVwgOwor5a+S5rCXID4gc2FtdWtlXCA7Civoh7PkuIogPiBzaGlqb3VcIDsKK+S4iemdoiA+IHNhbm1lblwgOwor5bCK5pSYID4gc29uam91XCA7CivlgZzkvJogPiB0ZWlrYWlcIDsKK+WAjeWilyA+IGJhaXpvdVwgOwor5qSc5L6/ID4ga2VuYmVuXCA7CivnlJ/lrZggPiBzZWl6b25cIDsKK+WxkeWxiyA+IGt1enV5YVwgOwor6aGY6Z2iID4gZ2FubWVuXCA7CivlsbHloZ4gPiBzYW5zYWlcIDsKK+miqOi2oyA+IGZ1dXNodVwgOwor55Sy5aOwID4ga2FuZ29lXCA7CivmmrTpqLAgPiBib3V0b3VcIDsKK+WxseWhiiA+IHNhbmthaVwgOwor5bCC5patID4gc2VuZGFuXCA7Civog7jmr5sgPiBtdW5hZ2VcIDsKK+WxseWgtCA+IHlhbWFiYVwgOwor5bGP5bGFID4gaGVpa3lvXCA7CivkuIfpm7cgPiBiYW5yYWlcIDsKK+aknOS9kyA+IGtlbnRhaVwgOwor5a6Y54mIID4ga2FucGFuXCA7CivkuInpmo4gPiBzYW5nYWlcIDsKK+WvneanmCA+IG5lemFtYVwgOwor6aGU6Z2iID4gZ2FubWVuXCA7CivkuIrpmZAgPiBqb3VnZW5cIDsKK+aci+i8qSA+IGhvdWJhaVwgOwor5bCC5pS7ID4gc2Vua291XCA7Civku4HogIUgPiBqaW5zaGFcIDsKK+eVquWFtSA+IGJhbnBlaVwgOwor5Lmx6KaWID4gcmFuc2hpXCA7CivmnJ3os4AgPiBjaG91Z2FcIDsKK+WvvuaVsCA+IHRhaXN1dVwgOwor5a+p5p+7ID4gc2hpbnNhXCA7Civlr53mpa0gPiBuZXdhemFcIDsKK+acrOirliA+IGhvbnJvblwgOwor5YCf5ZWPID4gc2hhbW9uXCA7Civmm77pgYogPiBzb3V5dXVcIDsKK+iHo+S6iyA+IHNoaW5qaVwgOwor55Ci56OoID4gdGFrdW1hXCA7CivohbnlrZAgPiBoYXJha29cIDsKK+ahn+aVtyA+IHNhamlraVwgOwor5a++5pSvID4gdGFpc2hpXCA7CivppIrogrIgPiB5b3Vpa3VcIDsKK+miqOiyjCA+IGZ1dWJvdVwgOwor5Lyv54i2ID4gaGFrdWZ1XCA7CivmnKzoqowgPiBob25zaGlcIDsKK+WtkOeoriA+IGtvZGFuZVwgOwor5LuU57SwID4gc2hpc2FpXCA7CivmnbHoiKogPiB0b3Vrb3VcIDsKK+Wwj+aMhyA+IGtveXViaVwgOwor5pyA6L+RID4gc2Fpa2luXCA7CivmnKroqq0gPiBtaWRva3VcIDsKK+S7ruensCA+IGthc2hvdVwgOwor5L2T5rayID4gdGFpZWtpXCA7CivkuIDpmrsgPiBpc3Nla2lcIDsKK+WvuOaWrSA+IHN1bmRhblwgOwor55Sf5aecID4gc2hvdWdhXCA7CivkuInploAgPiBzYW5tb25cIDsKK+iAgeihsCA+IHJvdXN1aVwgOwor6Iub44CFID4gaXJhaXJhXCA7CivkvY7muJsgPiB0ZWlnZW5cIDsKK+iHo+S4iyA+IHNoaW5rYVwgOwor5YCh5ZKMID4gc2hvdXdhXCA7CivmnKroqbMgPiBtaXNob3VcIDsKK+iFkOW/gyA+IGZ1c2hpblwgOwor5pq06aKoID4gYm91ZnV1XCA7CivkvZnmsqIgPiB5b3Rha3VcIDsKK+WumueCuSA+IHRlaXRlblwgOwor5pu46YGTID4gc2hvZG91XCA7CivkuK3pg6ggPiBjaHV1YnVcIDsKK+WBj+S6uiA+IGhlbmppblwgOwor5YCm5Y6tID4ga2VuJydlblwgOwor5a2m55ujID4gZ2Fra2FuXCA7CivppIrogIEgPiB5b3Vyb3VcIDsKK+iCjOedgCA+IGhhZGFnaVwgOwor55Sj5aOwID4gdWJ1Z29lXCA7Civpo7ToibIgPiBhbWVpcm9cIDsKK+eUsOWcsCA+IGRlbmNoaVwgOwor5pyd6K2wID4gY2hvdWdpXCA7CivnlLDlnJIgPiBkZW4nJ2VuXCA7CivlsI/miJEgPiBzaG91Z2FcIDsKK+WppumVtyA+IGZ1Y2hvdVwgOwor6aaZ5rivID4gaG9ua29uXCA7CivmorXlprsgPiBib25zYWlcIDsKK+ahguaelyA+IGtlaXJpblwgOwor5LiA6ZaTID4gaGl0b21hXCA7CivlrZjnn6UgPiB6b25jaGlcIDsKK+S4remAlCA+IGNodXV0b1wgOwor55C655GvID4gaG91cm91XCA7CivnlLvllYYgPiBnYXNob3VcIDsKK+adpeiIqiA+IHJhaWtvdVwgOwor6aC76aC7ID4gaGlucGluXCA7CivlsLvlsL4gPiBzaGlwcG9cIDsKK+agoeatoyA+IGtvdXNlaVwgOwor5L6L5paHID4gcmVpYnVuXCA7CivnlJrlpKcgPiBqaW5kYWlcIDsKK+S+i+aVsCA+IHJlaXN1dVwgOwor5LqM6JGJID4gZnV0YWJhXCA7Civpo7zogrIgPiBzaGlpa3VcIDsKK+S/s+WjhyA+IGhhaWRhblwgOwor5bGv5Za2ID4gdG9uJydlaVwgOwor5p2l6IeoID4gcmFpcmluXCA7CivmorXlpKkgPiBib250ZW5cIDsKK+eUqOWcsCA+IHlvdWNoaVwgOwor6LK057SzID4ga2lzaGluXCA7CivmmrTpnLIgPiBiYWt1cm9cIDsKK+WvkuaihSA+IGthbmJhaVwgOwor5qC55p+iID4ga29udGVpXCA7CivlsITmiYsgPiBzaGFzaHVcIDsKK+S9leatsyA+IG5hbnNhaVwgOwor55G25rGgID4geW91Y2hpXCA7CivlrabnlYwgPiBnYWtrYWlcIDsKK+agl+avmyA+IGt1cmlnZVwgOwor5bCK5oWuID4gc29ucnlvXCA7CivkvY/msJEgPiBqdXVtaW5cIDsKK+mpmuWWnCA+IGt5b3VraVwgOwor5bCR5oGpID4gc2hvdW9uXCA7CivnlKPlnLAgPiBzYW5jaGlcIDsKK+S/l+WtlyA+IHpva3VqaVwgOwor5a++5oqXID4gdGFpa291XCA7CivkvIHnlLsgPiBraWtha3VcIDsKK+eUmOWhqSA+IGFtYWppb1wgOwor6LWk5pysID4gYWthaG9uXCA7Civpoqjop6MgPiBmdXVrYWlcIDsKK+S9teaciSA+IGhlaXl1dVwgOwor5bGL5aSWID4gb2t1Z2FpXCA7CivppqzmqYcgPiBiYXNvcmlcIDsKK+S4rei6qyA+IG5ha2FtaVwgOwor55CG56WeID4gcmlzaGluXCA7CivkvbPmnKggPiBrYWJva3VcIDsKK+agueacrCA+IG5lbW90b1wgOwor6IGW566XID4gc2Vpc2FuXCA7CivkurrntbkgPiBqaW5rZW5cIDsKK+S4u+izkyA+IHNodWhpblwgOwor55Sf5ZywID4gc2VpY2hpXCA7CivpoqjoposgPiBrYXphbWlcIDsKK+WvvuaIpiA+IHRhaXNlblwgOwor5LuW56ewID4gdGFzaG91XCA7CivmnJvoposgPiBib3VrZW5cIDsKK+mmmeawtCA+IGtvdXN1aVwgOwor5a+S5p2RID4ga2Fuc29uXCA7CivmnYnoj5wgPiBzdWdpbmFcIDsKK+eVmeS/nSA+IHJ5dXVob1wgOwor6IO95pu4ID4gbm91c2hvXCA7CivkvZzmpa0gPiBzYWd5b3VcIDsKK+S7mOelqCA+IGZ1aHlvdVwgOwor5YCo5YKyID4ga3lvZ291XCA7CivmoLnmmpcgPiBuZWt1cmFcIDsKK+i3oeWcsCA+IGF0b2NoaVwgOwor5Lq657OeID4gamlucHVuXCA7CivlrabnkIYgPiBnYWt1cmlcIDsKK+iEs+aApyA+IG5vdXNlaVwgOwor55S75YygID4gZ2FzaG91XCA7CivkvZnmpa0gPiB5b2d5b3VcIDsKK+Wwj+W9oiA+IGtvZ2F0YVwgOwor5L+h5aOrID4gc2hpbmppXCA7CivohavlpKcgPiBzaHVkYWlcIDsKK+S5vuiPnCA+IGthbnNhaVwgOwor5pyI6KydID4gZ2Vzc2hhXCA7Civlr4bmoJMgPiBtaXNzZW5cIDsKK+WvkuaaliA+IGthbmRhblwgOwor5a+S5pqRID4ga2Fuc2hvXCA7CivlrZDnmYcgPiBzaGlrYW5cIDsKK+miqOiiiyA+IGZ1dXRhaVwgOwor5YCl5YGsID4ga291c291XCA7CivlsI/lvJUgPiBzaG91aW5cIDsKK+S9k+anmCA+IHRhaXlvdVwgOwor5Lq657GfID4gamlucmFpXCA7CivkuInph40gPiBzYW5qdXVcIDsKK+iyoee1jCA+IHphaWtlaVwgOwor5a2Y55SfID4gem9uam91XCA7CivlrZfnlLsgPiBqaWtha3VcIDsKK+S4h+mHkSA+IG1hbmtpblwgOwor5bCK5b2xID4gc29uJydlaVwgOwor5qC55pa5ID4gbmVrYXRhXCA7CivnlKjlk4EgPiB5b3VoaW5cIDsKK+S7rueXhSA+IGtlYnlvdVwgOwor5LiK6YWSID4gam91c2h1XCA7CivlrpfmtL4gPiBzaHV1aGFcIDsKK+WumuazlSA+IGpvdWhvdVwgOwor5a625qWtID4ga2FneW91XCA7CivnjK7ph5EgPiBrZW5raW5cIDsKK+eSsOaMhyA+IGthbnNoaVwgOwor55So5ZG9ID4geW91bWVpXCA7Civog6HmpJIgPiBrb3Nob3VcIDsKK+iBr+ebnyA+IHJlbm1laVwgOwor6IOG5rGBID4gdGFuanV1XCA7CivnkKXnj4AgPiBrb2hha3VcIDsKK+iDveaWhyA+IG5vdWJ1blwgOwor5bGF5Z+OID4ga3lvam91XCA7CivkuLvorIAgPiBzaHVib3VcIDsKK+Wul+azlSA+IHNvdWhvdVwgOwor5bCP5bmFID4ga29oYWJhXCA7CivlraTni6wgPiBrb2Rva3VcIDsKK+eUo+WTgSA+IHNhbnBpblwgOwor6aGY6YWSID4gZ2Fuc2h1XCA7CivmnbHntYwgPiB0b3VrZWlcIDsKK+S5vuiKuyA+IGthbnN1dVwgOwor5a6M5riIID4ga2Fuc2FpXCA7CivkuI3pgakgPiBmdXRla2lcIDsKK+WvhuabuCA+IG1pc3Nob1wgOwor6IKh54GrID4gbWF0YWJpXCA7CivpoIjpq68gPiBzaHV6ZW5cIDsKK+WwjuW4qyA+IGRvdXNoaVwgOwor576O6YacID4gYmlzaHV1XCA7CivlsILlvpMgPiBzZW5qdXVcIDsKK+S4gOmHjCA+IGljaGlyaVwgOwor5a+15oSbID4gY2hvdWFpXCA7Civlrp3mrr8gPiBob3VkZW5cIDsKK+S5s+iPkyA+IG55dXVrYVwgOwor5bCP5beuID4gc2hvdXNhXCA7Civnj6DnrpcgPiBzaHV6YW5cIDsKK+S4jemAmiA+IGZ1dHN1dVwgOwor6ISz5bm5ID4gbm91a2FuXCA7Civkvpvlv5wgPiBreW91b3VcIDsKK+eOieiXuyA+IHRhbWFtb1wgOwor6IKd54KOID4ga2FuJydlblwgOwor5LiJ6YG4ID4gc2Fuc2VuXCA7CivlsIvluLggPiBqaW5qb3VcIDsKK+S/ruWWtiA+IHNodXVlaVwgOwor5Li56KqgID4gdGFuc2VpXCA7Civog6HmoYMgPiBrdXJ1bWlcIDsKK+S4h+mCpiA+IGJhbnBvdVwgOwor6ICB6I2YID4gcm91c291XCA7CivlrpjmsJEgPiBrYW5taW5cIDsKK+S5vuiItyA+IGthbmdlblwgOwor5bGe5ZCPID4gem9rdXJpXCA7CivmnqHnm64gPiBtYXN1bWVcIDsKK+S4gemFiSA+IHRlaXl1dVwgOwor6IGe55+lID4gYnVuY2hpXCA7CivlrrbmoLwgPiBrYWtha3VcIDsKK+i2iuW+jCA+IGVjaGlnb1wgOwor55Sf5ZG9ID4gc2VpbWVpXCA7CivlsJrlsJogPiBuYW9uYW9cIDsKK+S4iemAoyA+IHNhbnJlblwgOwor576p6LazID4gZ2lzb2t1XCA7CivkuLvoqIggPiBzaHVrZWlcIDsKK+agoeacrCA+IGtvdWhvblwgOwor5pqu6ZCYID4gYm9zaG91XCA7CivlsIHlu7ogPiBob3VrZW5cIDsKK+WvvuW9kyA+IHRhaXRvdVwgOwor5pyo6JStID4ga29rYWdlXCA7CivlgJLlg48gPiB0b3V6b3VcIDsKK+e+hemHnSA+IHJhc2hpblwgOwor5bCE5bm4ID4gc2hha291XCA7CivmorXllIQgPiBib25iYWlcIDsKK+S4iui+uiA+IGpvdWhlblwgOwor5LiA6YOtID4gaWtrYWt1XCA7CivkuIDpg6ggPiBpY2hpYnVcIDsKK+WumuasviA+IHRlaWthblwgOwor5L2V5p6aID4gbmFubWFpXCA7Civlr7jlv5cgPiBzdW5zaGlcIDsKK+S9nuaZuiA+IG5laWNoaVwgOwor5Li76KazID4gc2h1a2FuXCA7Civlrrbmn4QgPiBpZWdhcmFcIDsKK+Wwj+WztiA+IGtvamltYVwgOwor5pys6JGsID4gaG9uc291XCA7CivnlKPljbUgPiBzYW5yYW5cIDsKK+S6uueoriA+IGppbnNodVwgOwor5a6M5rK7ID4ga2FuY2hpXCA7CivkvZXmnaEgPiBuYW5qb3VcIDsKK+S4u+imgSA+IHNodXlvdVwgOwor5Luj55SoID4gZGFpeW91XCA7Civmm7joqowgPiBzaG9zaGlcIDsKK+eUsuWFtSA+IGtvdWhlaVwgOwor5Lyv5q+NID4gaGFrdWJvXCA7Civkv7PlkI0gPiBoYWltZWlcIDsKK+Wun+aoqSA+IGppa2tlblwgOwor5L+z5Y+3ID4gaGFpZ291XCA7CivotorluqYgPiBvY2hpZG9cIDsKK+mjm+e/lCA+IGhpc2hvdVwgOwor5LqI57+SID4geW9zaHV1XCA7Civnvqnos4ogPiBnaXpva3VcIDsKK+WvneaKgCA+IG5ld2F6YVwgOwor5bCP5bGxID4ga295YW1hXCA7CivkuInovKogPiBzYW5yaW5cIDsKK+WwiuW0hyA+IHNvbnN1dVwgOwor5L+z5Y+LID4gaGFpeXV1XCA7CivkuIDpgLEgPiBpc3NodXVcIDsKK+S8kea8lCA+IGt5dXVlblwgOwor5LiA6YCaID4gaXR0c3V1XCA7CivohIfmiLggPiB3YWtpZG9cIDsKK+S4iei7vSA+IHNhbmtlaVwgOwor5bC/5ZmoID4gbnlvdWtpXCA7Civlr53miYAgPiBzaGluam9cIDsKK+WwqOWkpyA+IGJvdWRhaVwgOwor5LiJ6LuNID4gc2FuZ3VuXCA7Civni63pnKcgPiBzYWdpcmlcIDsKK+WtkOeMqyA+IGtvbmVrb1wgOwor5qC55ougID4ga29ua3lvXCA7Civlr6Hmhb4gPiBrYXlva3VcIDsKK+S6lee2sSA+IGlkenVuYVwgOwor5LiH6LuNID4gYmFuZ3VuXCA7CivpqZXlhZAgPiBreW91amlcIDsKK+ixquiDhiA+IGdvdXRhblwgOwor5p2x56uvID4gdG91dGFuXCA7CivmnKzojYkgPiBob256b3VcIDsKK+eUn+WLlSA+IHNlaWRvdVwgOwor6LK755uuID4gaGltb2t1XCA7Civmm7joposgPiBzaG9rZW5cIDsKK+S7meeVjCA+IHNlbmthaVwgOwor5a6Y5qipID4ga2Fua2VuXCA7Civmm7ToqIIgPiBrb3V0ZWlcIDsKK+eUo+WJjSA+IHNhbnplblwgOwor5bCP5a60ID4gc2hvdWVuXCA7Civnjonoj5wgPiB0YW1hbmFcIDsKK+eUo+WItiA+IHNhbnNlaVwgOwor5a2U54mIID4ga291aGFuXCA7CivmnKvojLYgPiBtYXRjaGFcIDsKK+mjr+exsyA+IGhhbm1haVwgOwor6aCG6aKoID4ganVucHV1XCA7CivmnLHoibIgPiBzaHVpcm9cIDsKK+Wun+aknCA+IGppa2tlblwgOwor5Lyd5rOVID4gZGVucG91XCA7CivnlLvkvK8gPiBnYWhha3VcIDsKK+eUqOWFtSA+IHlvdWhlaVwgOwor54ut6ZqYID4ga3lvdWFpXCA7CivnjaPooYwgPiBqdXVrb3VcIDsKK+S4jei2syA+IGZ1c29rdVwgOwor6LOH55SjID4gc2hpc2FuXCA7Civlq4Hoj5wgPiB5b21lbmFcIDsKK+S6lOe1jCA+IGdva3lvdVwgOwor6aeF5omLID4gZWtpc2h1XCA7CivlrInnrJEgPiBraXNob3VcIDsKK+S6i+e4viA+IGppc2VraVwgOwor55Sf5YmNID4gc2VpemVuXCA7Civmo4TlhZAgPiBzdXRlZ29cIDsKK+WtkOeJmyA+IGtvdXNoaVwgOwor5LuW55SfID4gdGFzaG91XCA7CivkuIvotrMgPiBnZXNva3VcIDsKK+S9leaWuSA+IGRvbmF0YVwgOwor6LGa6IiOID4gdG9uc2hhXCA7CivotrPloLQgPiBhc2hpYmFcIDsKK+WutuaXjyA+IGthem9rdVwgOwor6aCG6aCGID4ganVuanVuXCA7CivkuIDouqsgPiBpc3NoaW5cIDsKK+acrOiIuSA+IGhvbnNlblwgOwor6IKl5rKDID4gaGl5b2t1XCA7Civlr77lsrggPiB0YWlnYW5cIDsKK+aiseWMhSA+IGtvbnBvdVwgOwor5LiA6Lm0ID4gaXNzaHV1XCA7CivmnpfnlKMgPiByaW5zYW5cIDsKK+S6uuefpSA+IGppbmNoaVwgOwor572w6YeRID4gYmFra2luXCA7CivlrrbmlZkgPiBrYWt5b3VcIDsKK+S7pOeKtiA+IHJlaWpvdVwgOwor5L6L5bm0ID4gcmVpbmVuXCA7Civni63plpMgPiBoYXphbWFcIDsKK+iEm+W3viA+IGhhYmFraVwgOwor6Laj5aW9ID4gc2h1a291XCA7CivlsaXkv64gPiByaXNodXVcIDsKK+S/oeWPlyA+IHNoaW5qdVwgOwor6Iad5LiLID4gc2hpa2thXCA7CivkuozntJogPiBuaWt5dXVcIDsKK+i1q+aAkiA+IGtha3Vkb1wgOwor5pys6IazID4gaG9uemVuXCA7CivotbfluoogPiBraXNob3VcIDsKK+S4gOi3ryA+IGljaGlyb1wgOwor6ISG5oCnID4gemVpc2VpXCA7CivkvZPmk40gPiB0YWlzb3VcIDsKK+S9v+W9uSA+IHNoaWVraVwgOwor5Lit6KGbID4gY2h1dWVpXCA7CivmmanppJAgPiBiYW5zYW5cIDsKK+S7i+eUsiA+IGthaWtvdVwgOwor6IKd5rK5ID4ga2FuJyd5dVwgOwor5bGx5LiKID4gc2Fuam91XCA7CivnvqToq5YgPiBndW5yb25cIDsKK+Wwj+WnkyA+IGtvc2hvdVwgOwor55So5L6/ID4geW91YmVuXCA7Civkv7PlhKogPiBoYWl5dXVcIDsKK+S7iueUnyA+IGtvbmpvdVwgOwor5bCR5aWzID4gc2hvdWpvXCA7Civkurrnm7ggPiBuaW5zb3VcIDsKK+S6iOe0hCA+IHlveWFrdVwgOwor5L6b5a60ID4ga3lvdWVuXCA7Civkurrnm64gPiBoaXRvbWVcIDsKK+eUqOS+iyA+IHlvdXJlaVwgOwor55SY5YWaID4gYW1hdG91XCA7Civosqfnm7ggPiBoaW5zb3VcIDsKK+iDjOaZryA+IGhhaWtlaVwgOwor6aeS5bqnID4ga29tYXphXCA7Civkv5flkI8gPiB6b2t1cmlcIDsKK+WuiealvSA+IGFucmFrdVwgOwor5qC55oCnID4ga29uam91XCA7CivlsJbloZQgPiBzZW50b3VcIDsKK+S4luiplSA+IHNlaHlvdVwgOwor5LmX6ImmID4gam91a2FuXCA7CivkuKbooYwgPiBoZWlrb3VcIDsKK+ePreeUsCA+IGhhbmRlblwgOwor5pyJ6JOLID4geXV1Z2FpXCA7Civku5TnjKsgPiBrb25la29cIDsKK+WumuacrCA+IHRlaWhvblwgOwor55So5Lu2ID4geW91a2VuXCA7CivkuZfoiLkgPiBqb3VzZW5cIDsKK+mosOWLoiA+IHRvdXNlaVwgOwor5a6f5pmvID4gamlra2VpXCA7CivlsYvlhoUgPiBva3VuYWlcIDsKK+Wtpua0viA+IGdha3VoYVwgOwor6aKo6Ii5ID4gZnV1c2VuXCA7CivnlKjkurogPiB5b3VuaW5cIDsKK+aflOavmyA+IGp1dW1vdVwgOwor5p2l56S+ID4gcmFpc2hhXCA7Civnj77nirYgPiBnZW5qb3VcIDsKK+mfs+mfvyA+IG9ua3lvdVwgOwor5pyo6IKMID4ga2loYWRhXCA7CivlsIrlpKcgPiBzb25kYWlcIDsKK+iEs+WkqSA+IG5vdXRlblwgOwor5aqa6JasID4gYml5YWt1XCA7Civpoqjoh7QgPiBmdXVjaGlcIDsKK+S4jeiqvyA+IGZ1Y2hvdVwgOwor5a+d5bqKID4gbmVkb2tvXCA7Civmn5DmsI8gPiBib3VzaGlcIDsKK+S6lOepgCA+IGdva29rdVwgOwor5LiW6KWyID4gc2VzaHV1XCA7CivogIHnt7QgPiByb3VyZW5cIDsKK+eUn+S9kyA+IHNlaXRhaVwgOwor5LuU54mbID4ga291c2hpXCA7CivkuI3oqbMgPiBmdXNob3VcIDsKK+Wun+aWvSA+IGppc3NoaVwgOwor6aC46LyqID4ga3ViaXdhXCA7CivkuIforJ0gPiBiYW5zaGFcIDsKK+S4ieirliA+IHNhbnJvblwgOwor5LiN6KmVID4gZnVoeW91XCA7Civkv5fli5kgPiB6b2t1bXVcIDsKK+mnheW8gSA+IGVraWJlblwgOwor5pmp6ZycID4gYmFuc291XCA7CivkvqDlpbMgPiBreW91am9cIDsKK+acrOe9siA+IGhvbnNob1wgOwor5a+d5be7ID4gbmVtYWtpXCA7CivmnZHnq6UgPiBzb25kb3VcIDsKK+Wun+aVsCA+IGppc3N1dVwgOwor6IO95byBID4gbm91YmVuXCA7CivkurrnlJ8gPiBqaW5zZWlcIDsKK+WuiOagqiA+IHNodXNodVwgOwor5L2V5omNID4gbmFuc2FpXCA7Civkuonnq68gPiBzb3V0YW5cIDsKK+agueW6lSA+IGtvbnRlaVwgOwor5Lit6JiHID4gY2h1dXNvXCA7CivkuIDorbAgPiBpY2hpZ2lcIDsKK+S8tOaYnyA+IGJhbnNlaVwgOwor6aOb56ucID4gaGlyeXV1XCA7CivmoLnlubkgPiBrb25rYW5cIDsKK+i1pOW4vSA+IGFrYWJvdVwgOwor5bCP5Z6LID4ga29nYXRhXCA7CivppIrnlJ8gPiB5b3Vqb3VcIDsKK+adr+ebpCA+IGhhaWJhblwgOwor5pq06LWwID4gYm91c291XCA7CivkuIroqIggPiBqb3VrZWlcIDsKK+WwiuWggiA+IHNvbmRvdVwgOwor5qC85beuID4ga2FrdXNhXCA7CivlsILlo7IgPiBzZW5iYWlcIDsKK+Wuv+aEjyA+IHNodWt1aVwgOwor5LiN6KaaID4gZnVrYWt1XCA7Civkv7PkurogPiBoYWlqaW5cIDsKK+WujOacrCA+IGthbnBvblwgOwor6ICz55uuID4gamltb2t1XCA7CivlrprmlbAgPiB0ZWlzdXVcIDsKK+S9nuaCqiA+IG5laWFrdVwgOwor5L+v5LyPID4gZnVmdWt1XCA7CivnjK7oqaAgPiBrZW4nJ2VpXCA7Civlr4zlvLcgPiBmdWt5b3VcIDsKK+momeWPliA+IGhlbnNodVwgOwor5L+v5LuwID4gZnVneW91XCA7CivkuIropqcgPiBqb3VyYW5cIDsKK+S4h+iogCA+IG1hbmdlblwgOwor5a++5aSWID4gdGFpZ2FpXCA7CivkvY/miYAgPiBqdXVzaG9cIDsKK+iyoeeVjCA+IHphaWthaVwgOwor6ICV56iuID4ga291c2h1XCA7CivpoqjogZ4gPiBmdXVidW5cIDsKK+S4iuimhiA+IHV3YW9vaVwgOwor5a655oWLID4geW91ZGFpXCA7CivlsITloLQgPiBzaGFqb3VcIDsKK+WxjeS9kyA+IHNoaXRhaVwgOwor6LKh55SjID4gemFpc2FuXCA7CivkuIDoqp4gPiBpY2hpZ29cIDsKK+WvkuW4ryA+IGthbnRhaVwgOwor5a+15aerID4gY2hvdWtpXCA7CivnjK7oqIAgPiBrZW5nZW5cIDsKK+S8neafkyA+IGRlbnNlblwgOwor5a+h5bCRID4ga2FzaG91XCA7CivkuKHomY4gPiByeW91a29cIDsKK+eMpeirhyA+IHdhaWRhblwgOwor6LaK5aKDID4gZWtreW91XCA7CivlsI/lmaggPiBzaG91a2lcIDsKK+S4iuijvSA+IGpvdXNlaVwgOwor5pys57eaID4gaG9uc2VuXCA7CivkvI7mpb0gPiBnaWdha3VcIDsKK+S9k+aEnyA+IHRhaWthblwgOwor5L+X5YSSID4gem9rdWp1XCA7CivkuYPoh7MgPiBuYWlzaGlcIDsKK+S4iuijgSA+IGpvdXNhaVwgOwor5Lyd5p2lID4gZGVucmFpXCA7CivoibLjgIUgPiBpcm9pcm9cIDsKK+WvneWwjyA+IG5lc2hvdVwgOwor5pys57W5ID4gaG9ua2VuXCA7Civpo6/nm5IgPiBoYW5nb3VcIDsKK+S4i+ihqCA+IGthaHlvdVwgOwor6LOk5rCRID4gc2VubWluXCA7CivlsYXkvY8gPiBreW9qdXVcIDsKK+iFleWJjSA+IHVkZW1hZVwgOwor5Luu5rOKID4ga2FoYWt1XCA7CivkvZnlvrMgPiB5b3Rva3VcIDsKK+acrOe0mSA+IGhvbnNoaVwgOwor6Lao5ZCRID4gc3V1a291XCA7CivkvZ7lvIEgPiBuZWliZW5cIDsKK+S4reiPryA+IGNodXVrYVwgOwor5L2Z5b6XID4geW90b2t1XCA7CivlrrPmgqogPiBnYWlha3VcIDsKK+WwgeWcsCA+IGhvdWNoaVwgOwor5a6M5pWXID4ga2FucGFpXCA7CivkuqTnlaogPiBrb3ViYW5cIDsKK+S/muS/lyA+IHJpem9rdVwgOwor6aGM6KiAID4gZGFpZ2VuXCA7CivlsYvkuIogPiBva3Vqb3VcIDsKK+acqOe1hCA+IGtpZ3VtaVwgOwor5pyJ6IO9ID4geXV1bm91XCA7CivlsJrlj6QgPiBzaG91a29cIDsKK+mokuWLlSA+IHNvdWRvdVwgOwor6IOM5oi7ID4gaGFpcmVpXCA7CivkvovlpJYgPiByZWlnYWlcIDsKK+Wuo+aIpiA+IHNlbnNlblwgOwor6ICz55KwID4gbWltaXdhXCA7CivkupTnm64gPiBnb21va3VcIDsKK+Wvk+WxhSA+IGd1dWt5b1wgOwor6Laj5ZCRID4gc2h1a291XCA7CivosqLnjK4gPiBrb3VrZW5cIDsKK+eLrOmAuCA+IGRvaXRzdVwgOwor5qCh5bqtID4ga291dGVpXCA7Civos4fmupAgPiBzaGlnZW5cIDsKK+WvoeWppiA+IHlhbW9tZVwgOwor5bCL5ZWPID4gamlubW9uXCA7CivmmrToq5YgPiBib3Vyb25cIDsKK+adoeeXlSA+IGpvdWtvblwgOwor5qC85a2QID4ga291c2hpXCA7CivkvIHmpa0gPiBraWd5b3VcIDsKK+S9teWtmCA+IGhlaXpvblwgOwor6aOy55SoID4gaW4nJ3lvdVwgOwor5L2T5b2iID4gdGFpa2VpXCA7Civlr4zlsrMgPiBmdWdha3VcIDsKK+Wun+aIpiA+IGppc3NlblwgOwor5Li76ISzID4gc2h1bm91XCA7Civog6HlvJMgPiBrb2t5dXVcIDsKK+aYvOmkiSA+IGhpcnVnZVwgOwor55C05p+xID4ga290b2ppXCA7Civotqjli6IgPiBzdXVzZWlcIDsKK+S+neWYsSA+IGlzaG9rdVwgOwor5pi86aOfID4gaGlydWdlXCA7Civlr5LlrrMgPiBrYW5nYWlcIDsKK+mgkei/tyA+IGdhbm1laVwgOwor5a6b5omAID4gYXRlc2hvXCA7Civmn5Dmn5AgPiBib3Vib3VcIDsKK+eNo+iEgiA+IGp1dXNoaVwgOwor5L2O5b6KID4gdGVpa2FpXCA7CivmnKznrqEgPiBob25rYW5cIDsKK+iyr+eCrSA+IGNob3RhblwgOwor5LqM55uuID4gZnV0YW1lXCA7CivlsI/lkI8gPiBzaG91cmlcIDsKK+S6uueFmSA+IGppbicnZW5cIDsKK+aatOiogCA+IGJvdWdlblwgOwor5L+K5YGJID4gc2h1bicnaVwgOwor5bCK5ZG9ID4gc29ubWVpXCA7CivlrpjmiL8gPiBrYW5ib3VcIDsKK+advueFmSA+IHNob3VlblwgOwor6IKl5paZID4gaGlyeW91XCA7CivkvJHmmocgPiBreXV1a2FcIDsKK+S/l+S6iyA+IHpva3VqaVwgOwor5a6f5oWLID4gaml0dGFpXCA7CivmnKjnrrEgPiBraWJha29cIDsKK+aciee9qiA+IHl1dXphaVwgOwor54ut6LuMID4ga3lvdWtpXCA7Civos7zmm7ggPiBrb3VzaG9cIDsKK+WtpuagoSA+IGdha2tvdVwgOwor5pyo566hID4gbW9ra2FuXCA7CivnjoTnsbMgPiBnZW5tYWlcIDsKK+ePiOeQsiA+IGtvdWhpaVwgOwor6aKo57SLID4gZnV1bW9uXCA7CivmoKrlsYsgPiBrYWJ1eWFcIDsKK+Wun+aEnyA+IGppa2thblwgOwor5bCK5ZCbID4gc29ua3VuXCA7Civlrp/mhI8gPiBqaXRzdWlcIDsKK+WwiuWQjSA+IHNvbm1laVwgOwor5L2O5buJID4gdGVpcmVuXCA7Civpo7zniqwgPiBrYWlpbnVcIDsKK+WwiuWPtyA+IHNvbmdvdVwgOwor5LuW5rWBID4gdGFyeXV1XCA7CivlsIrlj7AgPiBzb25kYWlcIDsKK+acq+erryA+IG1hdHRhblwgOwor5a6Y5oayID4ga2Fua2VuXCA7Civku5jms6ggPiBmdWNodXVcIDsKK+mjm+eZvSA+IGthc3VyaVwgOwor6LOO5rCRID4gc2VubWluXCA7CivkvZDluZUgPiBzYWJha3VcIDsKK+S6uueBvSA+IGppbnNhaVwgOwor5LiL6JasID4gZ2V5YWt1XCA7Civlr4blsIEgPiBtaXBwdXVcIDsKK+WutOW4rSA+IGVuc2VraVwgOwor5bCP5YyZID4ga29zYWppXCA7CivlsIrljrMgPiBzb25nZW5cIDsKK+iCieahgiA+IG5pa2tlaVwgOwor6LWw5aGBID4gc291cnVpXCA7CivmoLzlpb0gPiBrYWtrb3VcIDsKK+S8neaQrCA+IGRlbnBhblwgOwor5a+b5aSnID4ga2FuZGFpXCA7CivmnKznqL8gPiBob25rb3VcIDsKK+abuOiChiA+IHNob3NoaVwgOwor5a6M5oqVID4ga2FudG91XCA7CivlrZDmp5ggPiBrb3NhbWFcIDsKK+Wuv+WxiyA+IHlhZG95YVwgOwor5pu46IGWID4gc2hvc2VpXCA7Civlr7/lkb0gPiBqdW15b3VcIDsKK+S4ieiUtSA+IHNhbnpvdVwgOwor6Z+z6YePID4gb25yeW91XCA7CivkuqHnirYgPiBib3Vqb3VcIDsKK+iyu+a2iCA+IGhpc2hvdVwgOwor5bCW5YW1ID4gc2VucGVpXCA7CivkuZfnrpcgPiBqb3V6YW5cIDsKK+aatOihjCA+IGJvdWtvdVwgOwor5qC55aSqID4gbmVidXRvXCA7CivorbDplbcgPiBnaWNob3VcIDsKK+S5vuebgyA+IGthbnBhaVwgOwor5a6M5oiQID4ga2Fuc2VpXCA7CivlsI/liKkgPiBzaG91cmlcIDsKK+abuOe/sCA+IHNob2thblwgOwor5p2l54q2ID4gcmFpam91XCA7CivmnInnt5ogPiB5dXVzZW5cIDsKK+S7j+azlSA+IGJ1cHBvdVwgOwor5a6J5omLID4geWFzdWRlXCA7Civlg4XjgIUgPiBraW5raW5cIDsKK+WvvuWQkSA+IHRhaWtvdVwgOwor5a6a5oCnID4gdGVpc2VpXCA7Civosarnm5sgPiBnb3VzZWlcIDsKK+S5vueZrCA+IGthbnNlblwgOwor5a++5Y+lID4gdHN1aWt1XCA7CivkuK3ogLMgPiBjaHV1amlcIDsKK+iCsuaIkCA+IGlrdXNlaVwgOwor5a6I5oimID4gc2h1c2VuXCA7CivmoKHlrpogPiBrb3V0ZWlcIDsKK+WvkuWkqSA+IGthbnRlblwgOwor5pys56S+ID4gaG9uc2hhXCA7CivkuIvokL0gPiBnZXJha3VcIDsKK+itpumYsiA+IGtlaWJvdVwgOwor5a+S5aScID4ga2FuJyd5YVwgOwor5a6I5oiQID4gc2h1c2VpXCA7Civnibnpq5ggPiB0b2trb3VcIDsKK+acq+ekviA+IG1hc3NoYVwgOwor6IO45aWlID4ga3lvdW91XCA7CivkvbPlooMgPiBrYWt5b3VcIDsKK+aZrumAmiA+IGZ1dHN1dVwgOwor5L2X5a+dID4gd2FiaW5lXCA7Civlrp/lvJ8gPiBqaXR0ZWlcIDsKK+eOsueTjyA+IHJlaXJvdVwgOwor6ICB55y8ID4gcm91Z2FuXCA7CivosYrnqaMgPiBob3Vqb3VcIDsKK+agveWfuSA+IHNhaWJhaVwgOwor576p6IejID4gZ2lzaGluXCA7CivniaHpto8gPiBvbmRvcmlcIDsKK+Wwj+WFtSA+IGtvaHlvdVwgOwor5pyI57WMID4gZ2Vra2VpXCA7Civog4zluoMgPiBzZWJpcm9cIDsKK+Wto+aYpSA+IGtpc2h1blwgOwor5bCP5YWQID4gc2hvdW5pXCA7CivosYrnqJQgPiBob3VuZW5cIDsKK+eJnem3hCA+IGhpbmtlaVwgOwor5a6a5b2iID4gdGVpa2VpXCA7CivmnaHniYcgPiBqb3VoZW5cIDsKK+S/guS6iSA+IGtlaXNvdVwgOwor6LGh55y8ID4gem91Z2FuXCA7CivnjrPnkYEgPiB0YWltYWlcIDsKK+aal+iqpiA+IGFuc2hvdVwgOwor6aiS5Lq6ID4gc291amluXCA7CivlrpflvpIgPiBzaHV1dG9cIDsKK+WtkOagqiA+IGtva2FidVwgOwor5pi86ZaTID4gaGlydW1hXCA7CivkvY7lsaQgPiB0ZWlzb3VcIDsKK+agueWfjiA+IG5lamlyb1wgOwor5LqA55SyID4ga2lra291XCA7Civos4DmraMgPiBnYXNob3VcIDsKK+mhleiRlyA+IGtlbmNob1wgOwor54mh6bOlID4gb25kb3JpXCA7CivpqJLkubEgPiBzb3VyYW5cIDsKK+WwiuWFrCA+IHNvbmtvdVwgOwor5a615a6uID4geW9taXlhXCA7CivkuqTngrkgPiBrb3V0ZW5cIDsKK+S9j+WwgiA+IGp1dXNlblwgOwor6Z+z6YCfID4gb25zb2t1XCA7CivkvJDmjqEgPiBiYXNzYWlcIDsKK+WutuWuhSA+IGthdGFrdVwgOwor6aOb55CDID4gaGlreXV1XCA7CivmmpfoqLwgPiBhbnNob3VcIDsKK+WwiuWFhCA+IHNvbmtlaVwgOwor5L6/5LmXID4gYmluam91XCA7CivlsILliLYgPiBzZW5zZWlcIDsKK+S5vueUsCA+IGthbmRlblwgOwor5a625a2mID4ga2FnYWt1XCA7CivkvLjluqYgPiBzaGluZG9cIDsKK+S8muaJgCA+IGthaXNob1wgOwor5L2/5Ze+ID4gc2hpc291XCA7CivosYbnp5EgPiBtYW1la2FcIDsKK+iEseWFmiA+IGRhdHRvdVwgOwor5Lya5oimID4ga2Fpc2VuXCA7CivkvZ7lp6YgPiBuZWlrYW5cIDsKK+S9j+WutiA+IHN1bWlrYVwgOwor546y546yID4gcmVpcmVpXCA7CivkvrbkvLQgPiByeW9oYW5cIDsKK+iDnuWtkCA+IGhvdXNoaVwgOwor5a6a5bm0ID4gdGVpbmVuXCA7CivmmYLpkJggPiBqaXNob3VcIDsKK+iznOadryA+IHNoaWhhaVwgOwor6LKh5rqQID4gemFpZ2VuXCA7CivkuKbnva4gPiBoZWljaGlcIDsKK+WuieaBryA+IGFuc29rdVwgOwor5bCK5YOPID4gc29uem91XCA7CivkuI3oia8gPiBmdXJ5b3VcIDsKK+S7leaooyA+IHNoaXlvdVwgOwor5p2x5ry4ID4gdG91emVuXCA7CivlrprluLggPiB0ZWlqb3VcIDsKK+S9nuWluCA+IG5laWthblwgOwor54yu6Iy2ID4ga2VuY2hhXCA7CivkuIDoj4ogPiBpa2tpa3VcIDsKK+WuruWutiA+IG1peWFrZVwgOwor6aKo56WeID4gZnV1amluXCA7Civog5rlrZAgPiBoYWlzaGlcIDsKK+WtneaVrCA+IGtvdWtlaVwgOwor5a++5YemID4gdGFpc2hvXCA7CivkuKHnvqkgPiByeW91Z2lcIDsKK+S4ueeyviA+IHRhbnNlaVwgOwor5LuV5qeYID4gc2hpeW91XCA7Civlr5LlnLAgPiBrYW5jaGlcIDsKK+S4jeiIiCA+IGZ1a3lvdVwgOwor5LiH6Iq4ID4gYmFuZ2VpXCA7CivkuI3oh6MgPiBmdXNoaW5cIDsKK+iEmuWNiiA+IGt5YWhhblwgOwor6LOi5piOID4ga2VubWVpXCA7CivkuIroiLkgPiBqb3VzZW5cIDsKK+iyr+awtCA+IGNob3N1aVwgOwor5a655ae/ID4geW91c2hpXCA7CivkuIroiKogPiBqb3Vrb3VcIDsKK+WwkeS9kCA+IHNob3VzYVwgOwor5p6v5pyoID4ga2FyZWtpXCA7CivkuIDojZggPiBpaWNoYW5cIDsKK+WvuOWJjSA+IHN1bnplblwgOwor5a6P5byBID4ga291YmVuXCA7Civlr77lhoUgPiB0YWluYWlcIDsKK+iAgeeUnyA+IHJvdXNlaVwgOwor5Lu25pWwID4ga2Vuc3V1XCA7CivkuIvoh6MgPiBrYXNoaW5cIDsKK+eNuuelrSA+IGRhc3NhaVwgOwor54us6KqeID4gZG9rdWdvXCA7CivkuIroh7wgPiB1d2F1c3VcIDsKK+Wwj+S9nCA+IGtvc2FrdVwgOwor5pys55uXID4gaG9udG91XCA7Civpo73muoAgPiBob3VtYW5cIDsKK+agoeWkliA+IGtvdWdhaVwgOwor5a+45YiGID4gc3VuYnVuXCA7Civni6zoqbEgPiBkb2t1d2FcIDsKK+WwjuS9kyA+IGRvdXRhaVwgOwor5LiH6IisID4gYmFucGFuXCA7CivkuIroh4ggPiBqb3Vyb3VcIDsKK+aYn+mcnCA+IHNlaXNvdVwgOwor5L2/5ZG9ID4gc2hpbWVpXCA7CivnianpqJIgPiBidXNzb3VcIDsKK+acqOebriA+IG1va3VtZVwgOwor5Li7566hID4gc2h1a2FuXCA7Civku6TmnJsgPiByZWlib3VcIDsKK+S4iuiFvyA+IGpvdXRhaVwgOwor5a6m5a6YID4ga2FuZ2FuXCA7Civlr4zlm70gPiBmdWtva3VcIDsKK+abtOe0lyA+IHNhcmFzYVwgOwor5Lq65rCXID4gaGl0b2tlXCA7CivmnKjnmr8gPiBraXphcmFcIDsKK+S6uuawkSA+IGppbm1pblwgOwor5bCE5YCWID4gc2hha291XCA7CivkuIrohZUgPiBqb3V3YW5cIDsKK+WwiuS9kyA+IHNvbnRhaVwgOwor5pyo55quID4gbW9rdWhpXCA7Civku6Pmm78gPiBkYWl0YWlcIDsKK+S7o+abuCA+IGRhaXNob1wgOwor5p+Q5omAID4gYm91c2hvXCA7CivmmILpqLAgPiBrb3V0b3VcIDsKK+WtkOaWuSA+IGtva2F0YVwgOwor5bCP5LqLID4gc2hvdWppXCA7CivkvZzloLQgPiBzYWt1YmFcIDsKK+iyp+awkSA+IGhpbm1pblwgOwor5LuK5qeYID4gaW1heW91XCA7Civlrp/lsIQgPiBqaXNzaGFcIDsKK+WvvuWBtiA+IHRhaWd1dVwgOwor5Lqs5rWcID4ga2VpaGluXCA7Civmm7jnsKEgPiBzaG9rYW5cIDsKK+S4jeiCliA+IGZ1c2hvdVwgOwor5p2x5rW3ID4gdG91a2FpXCA7CivmnInnqI4gPiB5dXV6ZWlcIDsKK+S9k+WkliA+IHRhaWdhaVwgOwor5p6c5qC4ID4ga2FrYWt1XCA7CivpoJDoqJcgPiB5b3Rha3VcIDsKK+iEseS8miA+IGRha2thaVwgOwor5LiA6IiIID4gaWtreW91XCA7CivkuIrog4wgPiB1d2F6ZWlcIDsKK+WvteWFkCA+IGNob3VqaVwgOwor5a6M5belID4ga2Fua291XCA7CivkuIrogqIgPiBqb3VzaGlcIDsKK+aZuuisgCA+IGNoaWJvdVwgOwor6aGe6IGaID4gcnVpanV1XCA7CivmnKznlaogPiBob25iYW5cIDsKK+adsea0iyA+IHRvdXlvdVwgOwor54m56ZyAID4gdG9rdWp1XCA7CivosrTmp5ggPiBraXNhbWFcIDsKK+iBsOaYjiA+IHNvdW1laVwgOwor6aKo55y8ID4gZnV1Z2FuXCA7CivkuIrogZ4gPiBqb3VidW5cIDsKK+Wun+WtkCA+IGppc3NoaVwgOwor6ICB542qID4gcm91a2FpXCA7Civmna/mtJcgPiBoYWlzZW5cIDsKK+WutuWhviA+IGthanVrdVwgOwor5Luk5peoID4gcmVpc2hpXCA7CivkvbXlkZEgPiBoZWlkb25cIDsKK+izh+adkCA+IHNoaXphaVwgOwor5L2O5aOwID4gdGVpc2VpXCA7CivkuonngrkgPiBzb3V0ZW5cIDsKK+izh+acrCA+IHNoaWhvblwgOwor5L2c5ZyfID4gc2FrdWRvXCA7CivlsIrkuIogPiBzb25qb3VcIDsKK+Wvm+WOsyA+IGthbmdlblwgOwor5Lya5byPID4gZXNoaWtpXCA7CivnvprnvoogPiByZWl5b3VcIDsKK+S9teWQiCA+IGhlaWdvdVwgOwor5Lm+54elID4ga2Fuc291XCA7CivkvLblrpggPiByZWlrYW5cIDsKK+Wvm+WOmiA+IGthbmtvdVwgOwor5LiJ6ICFID4gc2Fuc2hhXCA7CivosarniL0gPiBnb3Vzb3VcIDsKK+S9nOWbsyA+IHNha3V6dVwgOwor54yr6IOMID4gbmVrb3plXCA7Civpo5vngasgPiB0b2JpaGlcIDsKK+eJh+mxlyA+IGhlbnJpblwgOwor6K2m6YaSID4ga2Vpc2VpXCA7Civpp4XlkI0gPiBla2ltZWlcIDsKK+S7o+aVsCA+IGRhaXN1dVwgOwor6aaZ5aWgID4ga291ZGVuXCA7CivosZDnlLAgPiB0b3lvdGFcIDsKK+e/lOegtCA+IHNob3VoYVwgOwor54us6KGMID4gZG9ra291XCA7CivmoLnlj7cgPiBrb25nb3VcIDsKK+iCneW/gyA+IGthbmppblwgOwor54mb6aasID4gZ3l1dWJhXCA7CivkurrmqKkgPiBqaW5rZW5cIDsKK+iCuuWwliA+IGhhaXNlblwgOwor5Li456eYID4gbWFydWhpXCA7Civpo5vngJEgPiBoaWJha3VcIDsKK+S9k+WeiyA+IHRhaWtlaVwgOwor6aCS6KGMID4gaGFua291XCA7CivmnbHmr44gPiB0b3VtYWlcIDsKK+mgiOimgSA+IHNodXlvdVwgOwor5a++5Lq6ID4gdGFpamluXCA7Civog6Hlm70gPiBrb2tva3VcIDsKK+ahiOWGhSA+IGFuJyduYWlcIDsKK+S9leWbniA+IG5hbmthaVwgOwor5pmu6KuLID4gZnVzaGluXCA7CivmmYLpgJ8gPiBqaXNva3VcIDsKK+WtpOaEgSA+IGtvc2h1dVwgOwor6K236LqrID4gZ29zaGluXCA7CivmnKjnkLQgPiBtb2traW5cIDsKK+Wun+WniSA+IGppc3NoaVwgOwor5LuP5pu4ID4gYnVzc2hvXCA7CivlrozlsIEgPiBrYW5wdXVcIDsKK+iAs+auuyA+IGppa2FrdVwgOwor6aGe57qCID4gcnVpc2FuXCA7CivpnZLpu7QgPiBhb2thYmlcIDsKK+acqOeQhiA+IG1va3VyaVwgOwor5L6b5LiOID4ga3lvdXlvXCA7CivogaHmmI4gPiBzb3VtZWlcIDsKK+iukuislyA+IHphbmJvdVwgOwor5a+d5YiDID4gbmV0YWJhXCA7CivkuIDnvr0gPiBpY2hpd2FcIDsKK+iCieaEnyA+IG5pa2thblwgOwor6LOi5omNID4ga2Vuc2FpXCA7CivkuIDnvqkgPiBpY2hpZ2lcIDsKK+S9juWcsCA+IHRlaWNoaVwgOwor5qGC5YagID4ga2Vpa2FuXCA7Civlronlr6cgPiBhbicnbmVpXCA7Civog73li5UgPiBub3Vkb3VcIDsKK+e+iue+uSA+IHlvdWthblwgOwor6aWX5b+cID4ga3lvdW91XCA7Civnvornvq4gPiB5b3VrYW5cIDsKK+iBluabuCA+IHNlaXNob1wgOwor5Li756CyID4gc2h1aG91XCA7CivkvY7lm54gPiB0ZWlrYWlcIDsKK+WvneWFtyA+IHNoaW5ndVwgOwor6LK/5piTID4gYm91ZWtpXCA7Civnj77mlbAgPiBnZW5zdXVcIDsKK+mfs+iqvyA+IG9uY2hvdVwgOwor5Lqk5q2TID4ga291a2FuXCA7Civpp4XliY0gPiBla2ltYWVcIDsKK+WuiOWuriA+IHlhbW9yaVwgOwor5pmv6KazID4ga2Vpa2FuXCA7Civpn7Poqq0gPiBvbmRva3VcIDsKK+S6pOasviA+IGtvdWthblwgOwor5p6a5pWwID4gbWFpc3V1XCA7CivogaHmlY8gPiBzb3ViaW5cIDsKK+iyp+ajkiA+IGJpbmJvdVwgOwor5LiK57eaID4gam91c2VuXCA7CivpoIbooYwgPiBqdW5rb3VcIDsKK+aciOebuCA+IGdlc3NvdVwgOwor5a2Q5oi/ID4gc2hpYm91XCA7CivkvovkvJogPiByZWlrYWlcIDsKK+acgOefrSA+IHNhaXRhblwgOwor6Z2S6be6ID4gYW9zYWdpXCA7CivlrablvpIgPiBnYWt1dG9cIDsKK+S4ueeggiA+IHRhbnNoYVwgOwor5pyJ55uKID4geXV1ZWtpXCA7Civku4rmmakgPiBrb25iYW5cIDsKK+S6leaziSA+IHNlaXNlblwgOwor5a+S5YmkID4ga2FuemFpXCA7Civos6Lmha4gPiBrZW5yeW9cIDsKK+WtneaCjCA+IGtvdXRlaVwgOwor6IKv5a6aID4ga291dGVpXCA7CivkuIvntbUgPiBzaGl0YWVcIDsKK+iukuiogCA+IHphbmdlblwgOwor6LWm5YWNID4gc2hhbWVuXCA7CivkuojmuKwgPiB5b3Nva3VcIDsKK+e/u+eEtiA+IGhvbnplblwgOwor5Ly05aWPID4gYmFuc291XCA7Civos5vmiJAgPiBzYW5zZWlcIDsKK+miqOeQtCA+IGZ1dWtpblwgOwor5Lyd5bCOID4gZGVuZG91XCA7CivmnpfmlL8gPiByaW5zZWlcIDsKK+agueWGoCA+IGtvbmthblwgOwor6LW35LyPID4ga2lmdWt1XCA7CivkuIvntJogPiBrYWt5dXVcIDsKK+S4u+ecvCA+IHNodWdhblwgOwor5LiJ57WEID4gbWlrdW1pXCA7CivkuInntYMgPiBzYW5nZW5cIDsKK+WuneWhlCA+IGhvdXRvdVwgOwor6IGW5peoID4gc2Vpc2hpXCA7CivkuI3nsr4gPiBidXNob3VcIDsKK+S4iue0jSA+IGpvdW5vdVwgOwor546L54mpID4gb3Vtb25vXCA7CivkuIDnuLcgPiBpY2hpcnVcIDsKK+S6jOa1gSA+IG5pcnl1dVwgOwor6ISa5LiLID4ga3lha2thXCA7CivmoLnlhYMgPiBuZW1vdG9cIDsKK+WvkuWGtyA+IGthbnJlaVwgOwor6IGW5patID4gc2VpZGFuXCA7CivkvanliaMgPiBoYWlrZW5cIDsKK+WrjOeFmSA+IGtlbicnZW5cIDsKK+agoeWQiCA+IGtvdWdvdVwgOwor5p2h5qy+ID4gam91a2FuXCA7CivlrablupwgPiBnYWt1ZnVcIDsKK+S7geaZuiA+IGppbmNoaVwgOwor5Lq65p2QID4gamluemFpXCA7CivmoKHlj4sgPiBrb3V5dXVcIDsKK+S9qeWIgCA+IGhhaXRvdVwgOwor5pyq54afID4gbWlqdWt1XCA7CivmnLHngrkgPiBzaHV0ZW5cIDsKK+S4iuexsyA+IGpvdW1haVwgOwor5Lit56C0ID4gY2h1dWhhXCA7CivkurrmnJsgPiBqaW5ib3VcIDsKK+iytOaXjyA+IGtpem9rdVwgOwor5a+h5L2cID4ga2FzYWt1XCA7CivlrpjloLEgPiBrYW5wb3VcIDsKK+S4reegpSA+IG5ha2F0b1wgOwor5a6P5aSnID4ga291ZGFpXCA7Civpoq/niL0gPiBzYXNzb3VcIDsKK+Wun+WcsCA+IGppdGNoaVwgOwor5a2d5byfID4ga291dGVpXCA7Civmnb/mm7ggPiBiYW5zaG9cIDsKK+iDjOWaoiA+IGhhaW5vdVwgOwor6LOm5b25ID4gYnV5YWt1XCA7CivmnInnlKggPiB5dXV5b3VcIDsKK+Wuj+WjriA+IGtvdXNvdVwgOwor5pyJ55SjID4geXV1c2FuXCA7CivkuJnnqK4gPiBoZWlzaHVcIDsKK+WumuWeiyA+IHRlaWtlaVwgOwor5pyI55SjID4gZ2Vzc2FuXCA7CivkvI/lsYsgPiBmdXNleWFcIDsKK+S4gOe0miA+IGlra3l1dVwgOwor5Lq65pm6ID4gamluY2hpXCA7Civlrozlo7IgPiBrYW5iYWlcIDsKK+adkeawkSA+IHNvbm1pblwgOwor55CD5oqAID4ga3l1dWdpXCA7CivmnprmjJkgPiBtYWlreW9cIDsKK+aXpemggyA+IGhpZ29yb1wgOwor5LiL562WID4gZ2VzYWt1XCA7CivpnZLprqsgPiBhb3phbWVcIDsKK+Wtl+W8lSA+IGppYmlraVwgOwor5LuB5pS/ID4gamluc2VpXCA7CivkvY7lkJ8gPiB0ZWlnaW5cIDsKK+aXpemfkyA+IG5pa2thblwgOwor55CD5oivID4ga3l1dWdpXCA7CivkvZXljYMgPiBuYW56ZW5cIDsKK+S9leWNgSA+IG5hbmp1dVwgOwor6LOi5byfID4ga2VudGVpXCA7CivkuIrnrYkgPiBqb3V0b3VcIDsKK+mmrOWKmyA+IGJhcmlraVwgOwor5a2Y5buDID4gem9ucGFpXCA7Civoga/mg7MgPiByZW5zb3VcIDsKK+S9v+S4gSA+IHNoaXRlaVwgOwor5LiJ562JID4gc2FudG91XCA7CivkuLvnlKggPiBzaHV5b3VcIDsKK+S4gOexjCA+IGl0Y2h1dVwgOwor5L2z5L2cID4ga2FzYWt1XCA7Civlr5vku4EgPiBrYW5qaW5cIDsKK+eRtuWPsCA+IHlvdWRhaVwgOwor5a2Q5b25ID4ga295YWt1XCA7CivkvI/lrZcgPiBmdXNlamlcIDsKK+iAkOawtCA+IHRhaXN1aVwgOwor5LiK56uvID4gam91dGFuXCA7Civpp4TkvZwgPiBkYXNha3VcIDsKK+S4ueeUsCA+IHRhbmRlblwgOwor5LiJ56u/ID4gc2Fua2FuXCA7CivkurrmlocgPiBqaW5tb25cIDsKK+mnheS8nSA+IGVraWRlblwgOwor5L2T5YuiID4gdGFpc2VpXCA7CivlrZfluZUgPiBqaW1ha3VcIDsKK+S8neWljyA+IGRlbnNvdVwgOwor5a2Q5byfID4gc2hpdGVpXCA7CivkuIfnq68gPiBiYW50YW5cIDsKK+S4iuepuiA+IGpvdWt1dVwgOwor542w54ybID4gbmVpbW91XCA7CivpppnlkIggPiBrb3Vnb3VcIDsKK+eJh+mbsiA+IGhlbicndW5cIDsKK+eLrOiLsSA+IGRva3VlaVwgOwor5qCh5YaFID4ga291bmFpXCA7Civml6Xpm4AgPiBoaWdhcmFcIDsKK+mhjOewvSA+IGRhaXNlblwgOwor5a+G5YG1ID4gbWl0dGVpXCA7CivpoLvnuYEgPiBoaW5wYW5cIDsKK+S4gOetliA+IGlzc2FrdVwgOwor5L2V5YiGID4gbmFucHVuXCA7Civnib3pgKMgPiBrZW5yZW5cIDsKK+Wtq+WtkCA+IG1hZ29rb1wgOwor5LuL5oqxID4ga2FpaG91XCA7CivkuInnqK4gPiBzYW5zaHVcIDsKK+S9k+WItiA+IHRhaXNlaVwgOwor6aWX5a60ID4ga3lvdWVuXCA7CivkuIrnqIsgPiBqb3V0ZWlcIDsKK+aXpemZsCA+IGhpa2FnZVwgOwor5pu455SfID4gc2hvc2VpXCA7Civml6zplpMgPiBqdW5rYW5cIDsKK+mmrOWFiyA+IG1hcnVrdVwgOwor5a6Y5Za2ID4ga2FuJydlaVwgOwor5L2T5YiRID4gdGFpa2VpXCA7Civnvr3nlLAgPiBoYW5lZGFcIDsKK+mhhueykiA+IGthcnl1dVwgOwor5Li754+tID4gc2h1aGFuXCA7CivkuIDnrJEgPiBpc3Nob3VcIDsKK+mdoumgrCA+IG1lbnBvb1wgOwor5pel6ZmQID4gaGlnaXJpXCA7CivkuI3npaUgPiBmdXNob3VcIDsKK+S4oeebriA+IHJ5b3VtZVwgOwor5pys5rqQID4gaG9uZ2VuXCA7CivogonlsYsgPiBuaWt1eWFcIDsKK+iDtOS9kyA+IGRvdXRhaVwgOwor5aem6KiIID4ga2Fua2VpXCA7CivkuqTmm78gPiBrb3V0YWlcIDsKK+mdmemkiiA+IHNlaXlvdVwgOwor6LKh5pS/ID4gemFpc2VpXCA7CivlraTlrqIgPiBrb2tha3VcIDsKK+S7pOW8nyA+IHJlaXRlaVwgOwor5qCq5L6hID4ga2FidWthXCA7Civnvo7nqbogPiBtaXNvcmFcIDsKK+abtOeUnyA+IGtvdXNlaVwgOwor5a+E5L+hID4ga2lzaGluXCA7CivogZbmiKYgPiBzZWlzZW5cIDsKK+S4reeUnyA+IG5ha2F0ZVwgOwor5L2T5YaFID4gdGFpbmFpXCA7Civog4zlj40gPiBoYWloYW5cIDsKK+eLrOiHqiA+IGRva3VqaVwgOwor5Luj5byBID4gZGFpYmVuXCA7Civlr4bkvb8gPiBtaXNzaGlcIDsKK+adseaWuSA+IHRvdWhvdVwgOwor6Ky56YG4ID4ga2luc2VuXCA7CivosYrmvaQgPiBob3VqdW5cIDsKK+S8muWgtCA+IGthaWpvdVwgOwor5Lya5aCxID4ga2FpaG91XCA7CivmmYLoqZUgPiBqaWh5b3VcIDsKK+WutuWFgyA+IGllbW90b1wgOwor54mn6YeOID4gYm9rdXlhXCA7CivpnaLpnaIgPiBtZW5tZW5cIDsKK+izh+aApyA+IHNoaXNlaVwgOwor5LqL5qWtID4gamlneW91XCA7CivkuIHnqJogPiBkZXRjaGlcIDsKK+adpeabuCA+IHJhaXNob1wgOwor5pel6ZW3ID4gaGluYWdhXCA7CivkupTmoYEgPiBnb2tldGFcIDsKK+S8muWggiA+IGthaWRvdVwgOwor576O56ewID4gYmlzaG91XCA7Civlr4bkvJogPiBtaWtrYWlcIDsKK+iziuW+kiA+IHpva3V0b1wgOwor54yr56eRID4gbmVrb2thXCA7Civml4XppKggPiByeW9rYW5cIDsKK+iDtOS5sSA+IGRvdXJhblwgOwor5Lu75a6YID4gbmlua2FuXCA7Civosp7mk40gPiB0ZWlzb3VcIDsKK+S6pOaYkyA+IGtvdWVraVwgOwor5a6Y5ZG9ID4ga2FubWVpXCA7Civlrrblg5UgPiBrYWJva3VcIDsKK+S4u+eKryA+IHNodWhhblwgOwor572r57eaID4ga2Vpc2VuXCA7CivlrZ/lrZAgPiBtb3VzaGlcIDsKK+e+pOebsiA+IGd1bm1vdVwgOwor6IOO5YuVID4gdGFpZG91XCA7CivmmI/ov7cgPiBrb25tZWlcIDsKK+S4pueUqCA+IGhlaXlvdVwgOwor5Lmz5q+NID4gbnl1dWJvXCA7CivnvqTnm5cgPiBndW50b3VcIDsKK+S7luW/gyA+IHRhc2hpblwgOwor6ICB5q27ID4gcm91c2hpXCA7CivlrZ3lrZAgPiBrb3VzaGlcIDsKK+e6j+mgrSA+IHRlbnRvdVwgOwor54qv6KGMID4gaGFua291XCA7CivosYrmuoAgPiBob3VtYW5cIDsKK+S9j+WDpyA+IGp1dXNvdVwgOwor5a6Y5ZCNID4ga2FubWVpXCA7CivkuIDnpaggPiBpcHB5b3VcIDsKK+WllOmosCA+IGhvbnRvdVwgOwor5p+75Y+OID4gc2FzaHV1XCA7CivkuozmoLggPiBuaWtha3VcIDsKK+Wun+WLoiA+IGppc3NlaVwgOwor5Luu5bGLID4ga2FyaXlhXCA7CivkvZ7kurogPiBuZWlqaW5cIDsKK+acq+azlSA+IG1hcHBvdVwgOwor6aaZ5YW4ID4ga291ZGVuXCA7Civlrp/lirkgPiBqaWtrb3VcIDsKK+adpeaWuSA+IGtpa2F0YVwgOwor6K2m6KaWID4ga2Vpc2hpXCA7Civpo7LmlpkgPiBpbnJ5b3VcIDsKK+WutuS/oSA+IGthc2hpblwgOwor5a6Y5Y2wID4ga2FuJydpblwgOwor5Lq65omNID4gamluc2FpXCA7CivkurrmiYsgPiBoaXRvZGVcIDsKK+abuOeKtiA+IHNob2pvdVwgOwor5a655L2TID4geW91ZGFpXCA7Civku67lr50gPiBrYXJpbmVcIDsKK+WtlOWtnyA+IGtvdW1vdVwgOwor5Luu5a62ID4ga2FyaWllXCA7CivlrZTlrZAgPiBrb3VzaGlcIDsKK+iDjuWGhSA+IHRhaW5haVwgOwor5LuB5oSbID4gamluJydhaVwgOwor5p2l5pS7ID4gcmFpa291XCA7Civlrp3liaMgPiBob3VrZW5cIDsKK+WutuS9nCA+IGthc2FrdVwgOwor5aSn6bqmID4gb29tdWdpXCA7Civni63nvqkgPiBreW91Z2lcIDsKK+isnemHkSA+IHNoYWtpblwgOwor5a6f5YiRID4gamlra2VpXCA7CivppIrmiJAgPiB5b3VzZWlcIDsKK+adoeaWhyA+IGpvdWJ1blwgOwor5qCh5Li7ID4ga291c2h1XCA7CivlrZDlroggPiBrb21vcmlcIDsKK+Wuv+S4liA+IHN1a3VzZVwgOwor5aWu6ZeYID4gZnVudG91XCA7Civlrpfli5kgPiBzaHV1bXVcIDsKK+WpmuekvCA+IGtvbnJlaVwgOwor5a2Q5a2rID4gc2hpc29uXCA7CivkuInnnIEgPiBzYW5zZWlcIDsKK+acrOauvyA+IGhvbmRlblwgOwor5LiJ55u4ID4gc2Fuc291XCA7CivnjJvnpr0gPiBtb3VraW5cIDsKK+WuneWIgCA+IGhvdXRvdVwgOwor576k55SfID4gZ3Vuc2VpXCA7CivkuIDnn7MgPiBpc3Nla2lcIDsKK+Wun+WGmSA+IGppc3NoYVwgOwor5LuB5oG1ID4gamlua2VpXCA7CivkupTml6UgPiBpdHN1a2FcIDsKK+miqOa1qiA+IGZ1dXJvdVwgOwor5pm66IO9ID4gY2hpbm91XCA7CivkuIrnmocgPiBqb3Vrb3VcIDsKK+S6pOaPmyA+IGtvdWthblwgOwor5Lqr5oyBID4ga3lvdWppXCA7CivkuIDnnqwgPiBpc3NodW5cIDsKK+WuneWGoCA+IGhvdWthblwgOwor5a6Y5Yi2ID4ga2Fuc2VpXCA7Civlrp/lhYQgPiBqaWtrZWlcIDsKK+WuneWFuCA+IGhvdXRlblwgOwor6aKo5rSeID4gZnV1ZG91XCA7CivmlqzpppYgPiB6YW5zaHVcIDsKK+aXpemKrSA+IGhpemVuaVwgOwor5LmX5rOVID4gam91aG91XCA7CivmnKzmrIQgPiBob25yYW5cIDsKK+eMruebgyA+IGtlbnBhaVwgOwor5Lq65oOFID4gbmluam91XCA7CivkvY/kurogPiBqdXVuaW5cIDsKK+S7j+W4qyA+IGJ1c3NoaVwgOwor5a625LitID4ga2FjaHV1XCA7CivlrrbkuKYgPiB5YW5hbWlcIDsKK+ixiuawtCA+IGhvdXN1aVwgOwor6LOi5aa7ID4ga2Vuc2FpXCA7Civku6PlrpggPiBkYWlrYW5cIDsKK+S4geebriA+IGNob3VtZVwgOwor5Luk5a2rID4gcmVpc29uXCA7Civku4/lt6UgPiBidWtrb3VcIDsKK+S4gOebriA+IGhpdG9tZVwgOwor6IKJ5aGKID4gbmlra2FpXCA7CivkuqzmiJAgPiBrZWlzZWlcIDsKK+aarueniyA+IGJvc2h1dVwgOwor5pm66ICFID4gY2hpc2hhXCA7CivmlrnpnaIgPiBob3VtZW5cIDsKK+S5vuadvyA+IGthbnBhblwgOwor5a2Y5aSWID4gem9uZ2FpXCA7Civku6TlrKIgPiByZWlqb3VcIDsKK+e+jueahCA+IGJpdGVraVwgOwor5Ly25YSqID4gcmVpeXV1XCA7Civkub7mna8gPiBrYW5wYWlcIDsKK+S6uuaApyA+IGppbnNlaVwgOwor5LmX5rCXID4gbm9yaWtpXCA7CivkuIrnlaogPiBqb3ViYW5cIDsKK+eLl+iCiSA+IGt1bmlrdVwgOwor6aKo5rC0ID4gZnV1c3VpXCA7Civkub7mnZAgPiBrYW56YWlcIDsKK+itnOihqCA+IGZ1aHlvdVwgOwor5LuY5bGeID4gZnV6b2t1XCA7CivkuIrnlYwgPiBqb3VrYWlcIDsKK+S4ieeVqiA+IHNhbmJhblwgOwor5a2m5ZySID4gZ2FrdWVuXCA7Civml6jphZIgPiBzaGlzaHVcIDsKK+ismemBnCA+IGtlbnNvblwgOwor5LiK55SwID4gam91ZGVuXCA7CivkuInnlYwgPiBzYW5nYWlcIDsKK+WknOm3uSA+IHlvdGFrYVwgOwor5Luy5aSPID4gY2h1dWthXCA7Civlrojli6IgPiBzaHVzZWlcIDsKK+i0iOWRiCA+IHpvdXRlaVwgOwor6KuW6aGMID4gcm9uZGFpXCA7CivkvLTlg6cgPiBiYW5zb3VcIDsKK+S8muWQjCA+IGthaWRvdVwgOwor5Lya5ZCIID4ga2FpZ291XCA7CivnkIblraYgPiByaWdha3VcIDsKK+S8uuWAmSA+IHNoaWtvdVwgOwor5Luk5am/ID4gcmVpc2VpXCA7CivnkIPlrrQgPiBreXV1ZW5cIDsKK+S6pOaIpiA+IGtvdXNlblwgOwor5pen6YO9ID4ga3l1dXRvXCA7CivkvK/lhYQgPiBoYWtrZWlcIDsKK+i0iOWPtyA+IHpvdWdvdVwgOwor5Lit54GrID4gY2h1dWJpXCA7CivkvJ3ljZggPiBkZW50YW5cIDsKK+Wuo+S8nSA+IHNlbmRlblwgOwor5pyo5qe/ID4gbXVrdWdlXCA7CivmlrnpmaMgPiBob3VqaW5cIDsKK+i0i+WNsCA+IG5pc2VpblwgOwor5Luk5aiYID4gcmVpam91XCA7Civog4zku7sgPiBoYWluaW5cIDsKK+e/u+ahiCA+IGhvbicnYW5cIDsKK+eOi+anmCA+IG91c2FtYVwgOwor5Lu75ZywID4gbmluY2hpXCA7Civlrp/kvZMgPiBqaXR0YWlcIDsKK+S4gOeWiyA+IGlwcGlraVwgOwor6ICB5p2lID4gcm91cmFpXCA7Civnianos4cgPiBidXNzaGlcIDsKK+S7luWulyA+IHRhc2h1dVwgOwor5pem6YKjID4gZGFuJyduYVwgOwor5aW96YWNID4ga291aGFpXCA7CivogIHmnYkgPiByb3VzYW5cIDsKK+S7pOWniSA+IHJlaXNoaVwgOwor5LuV5a6YID4gc2hpa2FuXCA7CivlrozlhaggPiBrYW56ZW5cIDsKK+S8neWLlSA+IGRlbmRvdVwgOwor5pat6Z2iID4gZGFubWVuXCA7Civku6TlprkgPiByZWltYWlcIDsKK+WknOmzpSA+IHlhY2hvdVwgOwor54yb55yBID4gbW91c2VpXCA7CivkuIDnlLsgPiBpa2tha3VcIDsKK+aflOWSjCA+IG55dXV3YVwgOwor5pep6YCAID4gc291dGFpXCA7CivlrprkvosgPiB0ZWlyZWlcIDsKK+ePvuWtmCA+IGdlbnpvblwgOwor5Lmx5p2tID4gcmFuZ3VpXCA7CivkvLTkvrYgPiBoYW5yeW9cIDsKK+S6pOaEnyA+IGtvdWthblwgOwor5a6a5L2PID4gdGVpanV1XCA7Civoq4vpoZggPiBzZWlnYW5cIDsKK+WuiOWFtSA+IHNodWhlaVwgOwor6LKh5b2iID4gemFpa2VpXCA7Civog4zkuK0gPiBzZW5ha2FcIDsKK+eJueiosSA+IHRva2t5b1wgOwor6Kq/6aasID4gY2hvdWJhXCA7CivlrZjlnKggPiBzb256YWlcIDsKK+iDjOS4iCA+IHNldGFrZVwgOwor54m56KiTID4gdG9ra3VuXCA7CivkuI3njJ8gPiBmdXJ5b3VcIDsKK+eIhumfsyA+IGJha3VvblwgOwor5Lqk5oOFID4ga291am91XCA7CivmnKzmoYggPiBob24nJ2FuXCA7CivkuIvnjYQgPiBnZWdva3VcIDsKK+S7iuWwmiA+IGltYW5hb1wgOwor5pys5qChID4gaG9ua291XCA7Civkurrlt6UgPiBqaW5rb3VcIDsKK+S5seaatCA+IHJhbmJvdVwgOwor5pyb5qiTID4gYm91cm91XCA7CivkuInnjL8gPiBtaXphcnVcIDsKK+irlumZoyA+IHJvbmppblwgOwor6aGV54++ID4ga2VuZ2VuXCA7CivkvLbkurogPiByZWlqaW5cIDsKK+adseW+gSA+IHRvdXNlaVwgOwor5pac6aC4ID4gc2hha2VpXCA7CivosarmlL4gPiBnb3Vob3VcIDsKK+S4gOeQhiA+IGljaGlyaVwgOwor5Li75rOVID4gc2h1aG91XCA7CivorLnoqIAgPiBraW5nZW5cIDsKK+acseabuCA+IHNodXNob1wgOwor6aSo5aiDID4ga2FuJydhaVwgOwor54mH6LyqID4ga2F0YXdhXCA7CivmnJvmpbwgPiBib3Vyb3VcIDsKK+WuieWApCA+IHlhc3VuZVwgOwor5pys5p2lID4gaG9ucmFpXCA7CivmmI7oqIAgPiBtZWlnZW5cIDsKK+e/sOaelyA+IGthbnJpblwgOwor5Luk5aCCID4gcmVpZG91XCA7CivmmI7op6MgPiBtZWlrYWlcIDsKK+S4h+eKtiA+IGJhbmpvdVwgOwor5a6X5Li7ID4gc291c2h1XCA7CivpnIrprYIgPiByZWlrb25cIDsKK+acrOacqCA+IG1vdG9raVwgOwor6Z2S6YqFID4gc2VpZG91XCA7CivkuIDnjbIgPiBpa2tha3VcIDsKK+acrOacmyA+IGhvbm1vdVwgOwor572555eFID4gcmlieW91XCA7CivpoZjnirYgPiBnYW5qb3VcIDsKK+acq+acqyA+IHN1ZXp1ZVwgOwor5a2Q5ZqiID4gc2hpbm91XCA7CivmnKzmm7ggPiBob25zaG9cIDsKK+aal+ekgSA+IGFuc2hvdVwgOwor5piO6KaWID4gbWVpc2hpXCA7CivmlpzpnaIgPiBzaGFtZW5cIDsKK+eJh+i6qyA+IGthdGFtaVwgOwor5LqM5omLID4gZnV0YXRlXCA7Civoq5Lpl4cgPiByeW91YW5cIDsKK+S5seaVsCA+IHJhbnN1dVwgOwor6Kq/6Z+zID4gY2hvdW9uXCA7CivmmKXompUgPiBoYXJ1Z29cIDsKK+Wlvei7oiA+IGtvdXRlblwgOwor5pyo5pyrID4ga29udXJlXCA7CivogozlkIggPiBoYWRhYWlcIDsKK+S6rOW4qyA+IGtlaXNoaVwgOwor546L5pydID4gb3VjaG91XCA7CivppKjlpJYgPiBrYW5nYWlcIDsKK+S8geWPiiA+IGtpa3l1dVwgOwor6Ky56KO9ID4ga2luc2VpXCA7CivniqzoiI4gPiBrZW5zaGFcIDsKK+mbt+mztCA+IHJhaW1laVwgOwor5Lu75ZG9ID4gbmlubWVpXCA7Civmm7jms5UgPiBzaG9ob3VcIDsKK+S7gOWunSA+IGp1dWhvdVwgOwor5Lq65bGLID4gaGl0b3lhXCA7CivmnKbmnKcgPiBtb3Vyb3VcIDsKK+acpuacpiA+IG1vdW1vdVwgOwor5Luj5ZywID4gZGFpY2hpXCA7CivkuK3mtLIgPiBuYWthc3VcIDsKK+izm+WYhiA+IHNhbnRhblwgOwor5pel6LazID4gaGlhc2hpXCA7CivpnZLphbggPiBzZWlzYW5cIDsKK+aWnOmZvSA+IHNoYXlvdVwgOwor5aSn6aKoID4gb29rYXplXCA7Civoq7jpgZMgPiBzaG9kb3VcIDsKK+WlqumChCA+IGRha2thblwgOwor5Lit5rOiID4gY2h1dWhhXCA7Civpn7Pnt6AgPiBuZWppbWVcIDsKK+mciumokyA+IHJlaWdlblwgOwor5LiN54K6ID4gZnV0YW1lXCA7CivlpKnpoZQgPiB0ZW5nYW5cIDsKK+eJqeimiyA+IG1vbm9taVwgOwor5pys5peoID4gaG9uc2hpXCA7Civlo67pvaIgPiBzb3VyZWlcIDsKK+WtpuWLmSA+IGdha3VtdVwgOwor5pu/5q2MID4ga2FldXRhXCA7CivlrZjlkb0gPiB6b25tZWlcIDsKK+Wlrui/hSA+IGZ1bmppblwgOwor6LOt5Y2aID4gdG9iYWt1XCA7CivlpKfpoZggPiB0YWlnYW5cIDsKK+adieaIuCA+IHN1Z2lkb1wgOwor6LKn5a+SID4gaGlua2FuXCA7Civlqr7mm7MgPiBhaWJpa2lcIDsKK+acieanmCA+IGFyaXlvdVwgOwor5pys5paHID4gaG9ubW9uXCA7Civku7blkI0gPiBrZW5tZWlcIDsKK+adpeW6lyA+IHJhaXRlblwgOwor5pys5pWwID4gaG9uc3V1XCA7Civmlqfpkb8gPiBmdXNha3VcIDsKK+adpeW5tCA+IHJhaW5lblwgOwor54yb542jID4gbW91anV1XCA7CivmlofpoYwgPiBidW5kYWlcIDsKK+eOi+aXjyA+IG91em9rdVwgOwor5LyB5YqDID4ga2lrYWt1XCA7CivkupTlvrMgPiBnb3Rva3VcIDsKK+S4ieeBvSA+IHNhbnNhaVwgOwor5aW96LWwID4ga291c291XCA7CivkuIfngrkgPiBtYW50ZW5cIDsKK+S7iuWknCA+IGtvbicneWFcIDsKK+mjr+W6lyA+IGhhbnRlblwgOwor6aSK5a2QID4geW91c2hpXCA7CivkuK3msJcgPiBjaHV1a2lcIDsKK+mhleeEtiA+IGtlbnplblwgOwor5Luk5ZejID4gcmVpc2hpXCA7CivorJnorbIgPiBrZW5qb3VcIDsKK+Wjrum6lyA+IHNvdXJlaVwgOwor5p2x5bK4ID4gdG91Z2FuXCA7CivkvJ3ku6QgPiBkZW5yZWlcIDsKK+S7j+WhlCA+IGJ1dHRvdVwgOwor6Zyc6ZuwID4gc291ZnVuXCA7Civos57lkbMgPiBzaG91bWlcIDsKK+mgreeXmyA+IHp1dHN1dVwgOwor5Li75qipID4gc2h1a2VuXCA7Civpm7fprZogPiByYWlneW9cIDsKK+S4h+eBryA+IG1hbmRvdVwgOwor6IGW5aOHID4gc2VpZGFuXCA7CivosqHlrp0gPiB6YWlob3VcIDsKK+ism+irhyA+IGtvdWRhblwgOwor5aSc6aKoID4geW9rYXplXCA7CivosqrlqaogPiBkb25yYW5cIDsKK+eMrueBryA+IGtlbnRvdVwgOwor5LyQ5YCSID4gYmF0dG91XCA7Civnj77lnLAgPiBnZW5jaGlcIDsKK+iCouS9kyA+IHNoaXRhaVwgOwor54yb54qsID4gbW91a2VuXCA7Civmm7TmraMgPiBrb3VzZWlcIDsKK+WkqembtyA+IHRlbnJhaVwgOwor5pyd5pmpID4gYXNhYmFuXCA7Civnj77lnKggPiBnZW56YWlcIDsKK+S7luWbvSA+IHRha29rdVwgOwor5pyX5pyXID4gcm91cm91XCA7Civku67lkI0gPiBrZW15b3VcIDsKK+miqOaZryA+IGZ1dWtlaVwgOwor6KuW6YuSID4gcm9ucG91XCA7CivmlofpnaIgPiBidW5tZW5cIDsKK+S8juWAhiA+IGdpcnlvdVwgOwor6aSD5a2QID4gZ3lvdXphXCA7CivkupXlupUgPiBzZWl0ZWlcIDsKK+WtpuWFhCA+IGdha2tlaVwgOwor54qv572qID4gaGFuemFpXCA7CivlpKfpm6MgPiB0YWluYW5cIDsKK+S4reaspyA+IGNodXVvdVwgOwor5Lyd5LiWID4gZGVuc2VpXCA7Civos5vlkIwgPiBzYW5kb3VcIDsKK+S4jea8gSA+IGZ1cnlvdVwgOwor5aSq6Zm9ID4gdGFpeW91XCA7CivlpKnpmpsgPiB0ZW5zYWlcIDsKK+aatOeKtiA+IGJvdWpvdVwgOwor5peL6LuiID4gc2VudGVuXCA7CivlpJrpoY0gPiB0YWdha3VcIDsKK+WkqemZuiA+IHRlbmtlblwgOwor6IGW5aCCID4gc2VpZG91XCA7CivogIHmiYsgPiByb3VzaHVcIDsKK+S8muS4uyA+IGthaXNodVwgOwor5p2x5a6uID4gdG91Z3V1XCA7CivmnbHlrp0gPiB0b3Vob3VcIDsKK+iBluWfnyA+IHNlaWlraVwgOwor5aSn6ZqKID4gZGFpdGFpXCA7Civku6Plk4EgPiBkYWloaW5cIDsKK+aciOahgiA+IGdla2tlaVwgOwor6aCT55+lID4gdG9uY2hpXCA7CivogIHmiJAgPiByb3VzZWlcIDsKK+iAkOaApyA+IHRhaXNlaVwgOwor5pW16aObID4gdGVraWhpXCA7CivpoIbnpLwgPiBqdW5yZWlcIDsKK+S5l+aVsCA+IGpvdXN1dVwgOwor5aSV6aGUID4geXV1Z2FvXCA7CivkubHmiKYgPiByYW5zZW5cIDsKK+aZgue/kiA+IGppc2h1dVwgOwor6ICD5oWuID4ga291cnlvXCA7Civmlq3ph5EgPiBkYW5raW5cIDsKK+S4jea4rCA+IGZ1c29rdVwgOwor5LuL5ZyoID4ga2FpemFpXCA7CivlpKrplqQgPiB0YWlrb3VcIDsKK+aXp+iqvCA+IGt5dXVnaVwgOwor5pW06aKoID4gc2VpZnV1XCA7Civku7vlhY0gPiBuaW5tZW5cIDsKK+WtmOWIhiA+IHpvbmJ1blwgOwor5Luk5ZCNID4gcmVpbWVpXCA7Civpo7LlsYsgPiBub21peWFcIDsKK+iBluWcsCA+IHNlaWNoaVwgOwor5Lq65aSWID4gbmluZ2FpXCA7CivmlqfpiZ4gPiBmdWV0c3VcIDsKK+WknOmcpyA+IHlvZ2lyaVwgOwor54yb54S2ID4gbW91emVuXCA7Civoga/lkIggPiByZW5nb3VcIDsKK+S6uuWjqyA+IGppbnNoaVwgOwor6Z2i6LKMID4gbWVuYm91XCA7Civosqnlo7IgPiBoYW5iYWlcIDsKK+S5vuaApyA+IGthbnNlaVwgOwor5Li75qC5ID4gc2h1a29uXCA7CivlpKfplqIgPiBvb3pla2lcIDsKK+aXp+ipoCA+IGt5dXVlaVwgOwor5LuK5ZueID4ga29ua2FpXCA7Civml6XoqowgPiBuaXNzaGlcIDsKK+aXqeioiCA+IHNvdWtlaVwgOwor5Luj5Y+CID4gZGFpc2FuXCA7CivlpKfploAgPiBkYWltb25cIDsKK+acrOaLoCA+IGhvbmt5b1wgOwor5pyJ5pybID4geXV1Ym91XCA7Civni6Hnn6UgPiBrb3VjaGlcIDsKK+mjruWxiyA+IG5vbWl5YVwgOwor5pW06aCTID4gc2VpdG9uXCA7Civml6foqJggPiBreXV1a2lcIDsKK+iqsumVtyA+IGthY2hvdVwgOwor5aaE6KiAID4gbW91Z2VuXCA7Civoq7jos6IgPiBzaG9rZW5cIDsKK+aZqeeosiA+IGJhbnRvdVwgOwor5Lqb5bCRID4gc2FzaG91XCA7CivkuqHlrZAgPiBib3VzaGlcIDsKK+iytOWbvSA+IGtpa29rdVwgOwor5peF6LevID4gdGFiaWppXCA7Civosarlv6sgPiBnb3VrYWlcIDsKK+aXpeioiCA+IG5pa2tlaVwgOwor5pep6KaLID4gaGF5YW1pXCA7Civpm7vpoZUgPiBkZW5rZW5cIDsKK+mkqOWToSA+IGthbicnaW5cIDsKK+izouWFhCA+IGtlbmtlaVwgOwor5aSW6Zu7ID4gZ2FpZGVuXCA7Civnj77lk6EgPiBnZW4nJ2luXCA7Civmnb/loYAgPiBpdGFiZWlcIDsKK+eJh+iogCA+IGhlbmdlblwgOwor5Lqk5aq+ID4ga291a291XCA7CivkuIvmtYEgPiBrYXJ5dXVcIDsKK+e9queKtiA+IHphaWpvdVwgOwor5pen6KaPID4ga3l1dWtpXCA7Civmlq/pgZMgPiBzaGlkb3VcIDsKK+ePvuWTgSA+IGdlbnBpblwgOwor546p5byEID4gZ2Fucm91XCA7CivmlL7pt7kgPiBob3V5b3VcIDsKK+WtpuS8miA+IGdha2thaVwgOwor5aWJ6YKEID4gaG91a2FuXCA7CivkuI3ms4EgPiBmdWt5b3VcIDsKK+WliemBtyA+IGhvdXNlblwgOwor6KqT6aGYID4gc2VpZ2FuXCA7CivmnKzmh5AgPiBob25rYWlcIDsKK+S4ueacsSA+IHRhbnNodVwgOwor5aSn6ZGRID4gdGFpa2FuXCA7CivkuLjmnKggPiBtYXJ1a2lcIDsKK+WtpuS6iyA+IGdha3VqaVwgOwor5pyI5pemID4gZ2V0dGFuXCA7CivlpJzplbcgPiB5b25hZ2FcIDsKK+adseWkqSA+IHRvdXRlblwgOwor5aWJ6YCBID4gaG91c291XCA7CivmnbHlpKcgPiB0b3VkYWlcIDsKK+mdouirhyA+IG1lbmRhblwgOwor5aWJ6L+OID4gaG91Z2VpXCA7Civmm7jmnpcgPiBzaG9yaW5cIDsKK+WluOioiCA+IGthbmtlaVwgOwor54eV6ZuAID4gZW5qYWt1XCA7CivmnInmlbAgPiB5dXVzdXVcIDsKK+eLvOeLvSA+IHJvdWJhaVwgOwor5aqS5p+TID4gYmFpc2VuXCA7CivnuYHplpEgPiBoYW5rYW5cIDsKK+S7suWApCA+IG5ha2FuZVwgOwor5LiK5rC0ID4gam91c3VpXCA7Civoqpjpm7sgPiB5dXVkZW5cIDsKK+aZgue1piA+IGppa3l1dVwgOwor6ZuE6baPID4gb25kb3JpXCA7CivmmbTnnYAgPiBoYXJlZ2lcIDsKK+e9sOeCuSA+IGJhdHRlblwgOwor5Lqh5aeJID4gYm91c2hpXCA7CivlpKfpjowgPiBvb2dhbWFcIDsKK+S6oeWmuyA+IGJvdXNhaVwgOwor6Z2S6LGGID4gYW9tYW1lXCA7Civosqflm7AgPiBoaW5rb25cIDsKK+S7suS/nSA+IGNodXVob1wgOwor54+N5aWHID4gY2hpbmtpXCA7CivorIDoqIggPiBib3VrZWlcIDsKK+S4u+aXqCA+IHNodXNoaVwgOwor5Lqi5aWuID4ga291ZnVuXCA7CivniYjooYwgPiBoYW5rb3VcIDsKK+Wkp+mNiyA+IG9vbmFiZVwgOwor5pq05ryiID4gYm91a2FuXCA7CivkuIrmrrUgPiBqb3VkYW5cIDsKK+acgOaXqSA+IG1vaGF5YVwgOwor6Zu36Zu7ID4gcmFpZGVuXCA7CivkuIfmsJEgPiBiYW5taW5cIDsKK+iAgeW7gyA+IHJvdWhhaVwgOwor5Luk5YWEID4gcmVpa2VpXCA7Civlp5TnuK4gPiBpc2h1a3VcIDsKK+S5l+aJiyA+IG5vcml0ZVwgOwor5LuP5Y+CID4gYnVzc2FuXCA7CivmmIfoj68gPiBzaG91a2FcIDsKK+S4gOaziiA+IGlwcGFrdVwgOwor6Ku36KuMID4gZnV1a2FuXCA7CivkuLvmlocgPiBzaHVidW5cIDsKK+mbhOmzpSA+IG9uZG9yaVwgOwor54++5YuiID4gZ2Vuc2VpXCA7CivogIHlubwgPiByb3V5b3VcIDsKK+iqnumVtyA+IGdvY2hvdVwgOwor5aWU6LWwID4gaG9uc291XCA7CivogIHlubQgPiByb3VuZW5cIDsKK+S4reacnyA+IGNodXVraVwgOwor5LiJ5q27ID4gc2Fuc2hpXCA7Civku5blipsgPiB0YXJpa2lcIDsKK+acrOaApyA+IGhvbnNlaVwgOwor5LuY5YmHID4gZnVzb2t1XCA7Civnv7vlvIQgPiBob25yb3VcIDsKK+iyoeWboyA+IHphaWRhblwgOwor6KyZ6JmaID4ga2Vua3lvXCA7Civku6Plg6cgPiBkYWlzb3VcIDsKK+S6iOWvqSA+IHlvc2hpblwgOwor5Li75pS7ID4gc2h1a291XCA7CivoqozpnaIgPiBzaGltZW5cIDsKK+S4h+atuyA+IGJhbnNoaVwgOwor6ICB5birID4gcm91c2hpXCA7CivkuIfmrbMgPiBtYW56YWlcIDsKK+WtkOS+myA+IGtvZG9tb1wgOwor5a2Y5LqhID4gc29uYm91XCA7CivkuozlrZAgPiBmdXRhZ29cIDsKK+S4iuashCA+IGpvdXJhblwgOwor5Luu5L2cID4ga2FzYWt1XCA7CivpoIbnlaogPiBqdW5iYW5cIDsKK+izouS6uiA+IGtlbmppblwgOwor6Zuy6ZuGID4gdW5zaHV1XCA7Civoq7PoqqYgPiBhbnNob3VcIDsKK+mbsumbgCA+IGhpYmFyaVwgOwor54++5YmNID4gZ2VuemVuXCA7CivogIHlt6cgPiByb3Vrb3VcIDsKK+S7i+WNtSA+IGthaXJhblwgOwor5aSn6YmIID4gb29uYXRhXCA7CivoqanprYIgPiBzaGlrb25cIDsKK+Wlh+i5nyA+IGtpc2VraVwgOwor576K5rC0ID4geW91c3VpXCA7CivnvqTmo7IgPiBndW5zZWlcIDsKK+mbo+mhjCA+IG5hbmRhaVwgOwor5aSp6YeRID4gdGVua2luXCA7CivmnKzlvbEgPiBob24nJ2VpXCA7CivogJDlr5IgPiB0YWlrYW5cIDsKK+WkqemHjSA+IHRlbmp1dVwgOwor5Lim5pyoID4gbmFtaWtpXCA7CivmnKzlvZMgPiBob250b3VcIDsKK+aWnOi+uiA+IHNoYWhlblwgOwor6LOi5Li7ID4ga2Vuc2h1XCA7Civmm7jmlo4gPiBzaG9zYWlcIDsKK+e+iuavmyA+IHlvdW1vdVwgOwor5aSn6YeRID4gdGFpa2luXCA7CivpnZnoprMgPiBzZWlrYW5cIDsKK+Wlh+i3oSA+IGtpc2VraVwgOwor5LuB5ZCbID4gamlua3VuXCA7CivkuI3mp5ggPiBidXphbWFcIDsKK+S6uuWToSA+IGppbicnaW5cIDsKK+S4reaXpSA+IG5ha2FiaVwgOwor5pyr5byfID4gbWF0dGVpXCA7Civkurrlk4EgPiBqaW5waW5cIDsKK+S4ieaoqSA+IHNhbmtlblwgOwor6Kuu6KmiID4gc2hpanVuXCA7CivnuKbpmoogPiBqdXV0YWlcIDsKK+S4gOasoSA+IGljaGlqaVwgOwor54ax6aKoID4gbmVwcHV1XCA7CivosaHltYwgPiB6b3VnYW5cIDsKK+Wkp+mFlCA+IHRhaXN1aVwgOwor5LiK5qeYID4gdWV6YW1hXCA7CivlpKfphZIgPiBvb3pha2VcIDsKK+S6uuWRvSA+IGppbm1laVwgOwor57im6ZmjID4ganV1amluXCA7Civlq4HlvqEgPiB5b21lZ29cIDsKK+iznuS4jiA+IHNob3V5b1wgOwor5pyd5oGpID4gY2hvdW9uXCA7CivmnKzlupcgPiBob250ZW5cIDsKK+mbsumWkyA+IGt1bW9tYVwgOwor5aeL57WCID4gc2hpanV1XCA7Civoq5bos5sgPiByb25zYW5cIDsKK+abtOaUuSA+IGtvdWthaVwgOwor5pWi6ZeYID4ga2FudG91XCA7CivkurrlkJsgPiBqaW5rdW5cIDsKK+ePvuWDjyA+IGdlbnpvdVwgOwor5Lq65ZCNID4gamlubWVpXCA7CivlpK3pgJ0gPiB5b3VzZWlcIDsKK+aVo+mWiyA+IHNhbmthaVwgOwor5LuP5YW4ID4gYnV0dGVuXCA7CivkuInmpa0gPiBzYW5nb3VcIDsKK+irq+iogCA+IGthbmdlblwgOwor5Luj5Lu7ID4gZGFpbmluXCA7CivnvqjmnJsgPiBzZW5ib3VcIDsKK+ippumokyA+IHNoaWtlblwgOwor5LiW5p+EID4geW9nYXJhXCA7Civkurrlj6MgPiBqaW5rb3VcIDsKK+iqnumMsiA+IGdvcm9rdVwgOwor5piT6ICFID4gZWtpc2hhXCA7CivlpKnpgZMgPiB0ZW5kb3VcIDsKK+S6uuWPgiA+IG5pbmppblwgOwor5aSp6YGNID4gdGVucGVuXCA7CivlpKnpgYsgPiB0ZW4nJ3VuXCA7CivkuIDmqLkgPiBpY2hpanVcIDsKK+S7o+S6uiA+IGRhaW5pblwgOwor5LuK5YasID4ga29udG91XCA7CivkuIrmo58gPiBqb3V0b3VcIDsKK+Wkp+mBkyA+IGRhaWRvdVwgOwor6Zui6ZqUID4gcmlrYWt1XCA7Civku4/lg6cgPiBidXNzb3VcIDsKK+WkmumHjyA+IHRhcnlvdVwgOwor5pel6JStID4gaGlrYWdlXCA7CivogZblhbggPiBzZWl0ZW5cIDsKK+aatOawkSA+IGJvdW1pblwgOwor6Zui6Zm4ID4gcmlyaWt1XCA7CivogIHlrrMgPiByb3VnYWlcIDsKK+aWh+mBuCA+IGJ1bnNlblwgOwor5LiK5qKTID4gam91c2hpXCA7CivmnKjlt6UgPiBtb2trb3VcIDsKK+S5seWwhCA+IHJhbnNoYVwgOwor5aSp6L66ID4gdGVwcGVuXCA7Civosqzli5kgPiBzZWtpbXVcIDsKK+aWh+mBiyA+IGJ1bicndW5cIDsKK+aXheijhSA+IHJ5b3NvdVwgOwor6Kum6KazID4gdGVpa2FuXCA7CivogIHlrZAgPiByb3VzaGlcIDsKK+ixiuW5tCA+IGhvdW5lblwgOwor5aSn6L6yID4gZGFpbm91XCA7CivmlrnoqIAgPiBob3VnZW5cIDsKK+Wlj+iriyA+IHNvdXNlaVwgOwor5LiJ5qGBID4gbWlrZXRhXCA7CivmnKzls7YgPiBob250b3VcIDsKK+S4u+aIpiA+IHNodXNlblwgOwor6ICB5ayiID4gcm91am91XCA7CivogZblg48gPiBzZWl6b3VcIDsKK+S4ieagoSA+IHNhbmtvdVwgOwor5peF6KGMID4gcnlva291XCA7Civpm6PplqIgPiBuYW5rYW5cIDsKK+aWsOiqniA+IHNoaW5nb1wgOwor5aSn6LyqID4gdGFpcmluXCA7CivkuI3mnL0gPiBmdWt5dXVcIDsKK+aUvumhjCA+IGhvdWRhaVwgOwor5pys5bGxID4gaG9uemFuXCA7CivlpKnou40gPiB0ZW5ndW5cIDsKK+S4ieaemiA+IHNhbm1haVwgOwor5p2/5YmNID4gaXRhbWFlXCA7Civnj77ku6MgPiBnZW5kYWlcIDsKK+mgu+atuyA+IGhpbnNoaVwgOwor54eQ6YmxID4gcmlua291XCA7Civku4HlhYQgPiBqaW5rZWlcIDsKK+acrOWxiyA+IGhvbicneWFcIDsKK+S4jeacjSA+IGZ1ZnVrdVwgOwor6Zu76Yi0ID4gZGVucmVpXCA7CivkuInmnb8gPiBzYW5wYW5cIDsKK+mhnuacrCA+IHJ1aWhvblwgOwor5aOw6ZaAID4gc2VpbW9uXCA7Civmm5rmmKcgPiBtb3VtYWlcIDsKK+ePvuS7iiA+IGdlbmtvblwgOwor6aKo5bivID4gZnV1dGFpXCA7Civkuqvlj5cgPiBreW91anVcIDsKK+miqOW4qyA+IGZ1dXNoaVwgOwor5LuZ5Li5ID4gc2VudGFuXCA7Civkurrlh7ogPiBoaXRvZGVcIDsKK+mhnuabuCA+IHJ1aXNob1wgOwor5pys5bCKID4gaG9uem9uXCA7CivkuIrmnJ8gPiBrYW1pa2lcIDsKK+eGsemXmCA+IG5ldHRvdVwgOwor54+N5ZGzID4gY2hpbm1pXCA7Civmm7jmiL8gPiBzaG9ib3VcIDsKK+S4gOahiCA+IGljaGlhblwgOwor5LiJ5pysID4gc2FuYm9uXCA7CivppIrliIYgPiB5b3VidW5cIDsKK+acieaApyA+IHl1dXNlaVwgOwor5LiH5p2lID4gYmFucmFpXCA7CivosarlpaIgPiBnb3VzaGFcIDsKK+aUuemhjCA+IGthaWRhaVwgOwor5LiK5pu4ID4gam91c2hvXCA7CivmnKjlsZEgPiBraWt1enVcIDsKK+S7j+S8miA+IGJ1dHN1ZVwgOwor6aSo5Li7ID4ga2Fuc2h1XCA7CivkuInmm7kgPiBzYW5zb3VcIDsKK+S4ieabtCA+IHNhbmtvdVwgOwor54yu5p2vID4ga2VucGFpXCA7CivkuqHlkb0gPiBib3VtZWlcIDsKK+adseWNiiA+IHRvdWhhblwgOwor5pWF6ZqcID4ga29zaG91XCA7Civmlq3oqIAgPiBkYW5nZW5cIDsKK+WklumBiiA+IGdhaXl1dVwgOwor5pyJ5b+XID4geXV1c2hpXCA7CivmnKzlrpggPiBob25rYW5cIDsKK+eOieWxiyA+IHRhbWF5YVwgOwor5Lqk5ZCIID4ga291Z291XCA7CivmlrDopo8gPiBzaGlua2lcIDsKK+iAgeWmuyA+IHJvdXNhaVwgOwor546L5bCGID4gb3VzaG91XCA7Civku5XkuIogPiBzaGlhZ2VcIDsKK+ixquWjriA+IGdvdXNvdVwgOwor6aGY5pybID4gZ2FubW91XCA7CivniKzomasgPiBoYWNodXVcIDsKK+iBluS9kyA+IHNlaXRhaVwgOwor54yu5pysID4ga2VucG9uXCA7CivogJXlnLAgPiBrb3VjaGlcIDsKK+S4reaJiyA+IG5ha2F0ZVwgOwor5LiK5pm6ID4gam91Y2hpXCA7CivmnIDmgqogPiBzYWlha3VcIDsKK+eHkOmFuCA+IHJpbnNhblwgOwor54us5ryUID4gZG9rdWVuXCA7CivlpLHosrsgPiBzaGlwcGlcIDsKK+S6pOWPiyA+IGtvdXl1dVwgOwor6aGY5pu4ID4gZ2Fuc2hvXCA7CivmnKvlrasgPiBtYXNzb25cIDsKK+S6oeWQmyA+IGJvdWt1blwgOwor6K2m56CyID4ga2VpaG91XCA7CivmmpfmtYEgPiBhbnJ5dXVcIDsKK+iBluS8nSA+IHNlaWRlblwgOwor5pyr5a2QID4gbWFzc2hpXCA7CivkuInmma8gPiBzYW5rZWlcIDsKK+eOi+WuriA+IG91a3l1dVwgOwor5auM5auMID4gaXlhaXlhXCA7CivmlL7pm7sgPiBob3VkZW5cIDsKK+mbjOmbhCA+IHNoaXl1dVwgOwor5pyJ5b2iID4geXV1a2VpXCA7Civnv6DltZAgPiBzdWlyYW5cIDsKK+mjn+WZqCA+IHNob2traVwgOwor5aSn6LazID4gb29hc2hpXCA7CivogZbku6MgPiBzZWlkYWlcIDsKK+S6oeWPiyA+IGJvdXl1dVwgOwor576O5pyNID4gYmlmdWt1XCA7Civku4rku4ogPiBpbWFpbWFcIDsKK+S4ieaYpyA+IHNhbm1haVwgOwor5LiA5py2ID4gaWNoaWRhXCA7Civku4rkurogPiBrb25qaW5cIDsKK+iBluS6uiA+IHNlaWppblwgOwor542j5oCnID4ganV1c2VpXCA7Civpm7Lph48gPiB1bnJ5b3VcIDsKK+S4iuaXrCA+IGpvdWp1blwgOwor5aSn6LWmID4gdGFpc2hhXCA7CivkuIrml6ggPiBqb3VzaGlcIDsKK+S4gOacnSA+IGl0Y2hvdVwgOwor5aSi6LevID4geXVtZWppXCA7CivkuIDmnI0gPiBpcHB1a3VcIDsKK+Wlh+ilsiA+IGtpc2h1dVwgOwor5LiN5pW1ID4gZnV0ZWtpXCA7Civoq4foq5YgPiBkYW5yb25cIDsKK+S4oeaLsyA+IGphbmtlblwgOwor5LiK5pa5ID4gam91aG91XCA7CivnjonlrZAgPiB0YW1hZ29cIDsKK+mjr+WPsCA+IGhhbmRhaVwgOwor5pel6IiqID4gbmlra291XCA7CivmmI7ntLAgPiBtZWlzYWlcIDsKK+e+iOadnyA+IGtpc29rdVwgOwor57235qWtID4gaGlneW91XCA7CivkurrlgY8gPiBuaW5iZW5cIDsKK+Wklui8qiA+IGdhaXJpblwgOwor5aSp6LOcID4gdGVuc2hpXCA7CivkuInmlrkgPiBzYW5wb3VcIDsKK+mdkuiXjSA+IHNlaXJhblwgOwor5aSp6LOHID4gdGVuc2hpXCA7Civpn7LniakgPiBhZW1vbm9cIDsKK+S4iuaWhyA+IGpvdWJ1blwgOwor5Li75b6TID4gc2h1anV1XCA7Civmlq3oo4EgPiBkYW5zYWlcIDsKK+S6uuWAqyA+IGppbnJpblwgOwor6KuL6KiTID4gc2Vpa3VuXCA7CivnjKXmnKwgPiB3YWlob25cIDsKK+S5vuWdpCA+IGtlbmtvblwgOwor5Lmx5aOyID4gcmFuYmFpXCA7CivkuInmlocgPiBzYW5tb25cIDsKK+Wkp+izoiA+IHRhaWtlblwgOwor5LiH5pa5ID4gYmFucG91XCA7CivlpInpgbcgPiBoZW5zZW5cIDsKK+mhjOadkCA+IGRhaXphaVwgOwor5LuK5LiKID4ga2luam91XCA7CivogZbkuIogPiBzZWlqb3VcIDsKK+Wklui7iiA+IGdhaXNoYVwgOwor6Zu76YCBID4gZGVuc291XCA7CivnjoTlrasgPiBnZW5zb25cIDsKK+aUu+mYsiA+IGtvdWJvdVwgOwor5Lih5omLID4gcnlvdXRlXCA7CivkuIPml6UgPiBuYW5va2FcIDsKK+aWreihjCA+IGRhbmtvdVwgOwor5pyd5a62ID4gY2hvdWthXCA7CivlpInpgKAgPiBoZW56b3VcIDsKK+mhmOaWhyA+IGdhbm1vblwgOwor5pys5aeTID4gaG9uc2VpXCA7CivkuIDmmKggPiBpc3Nha3VcIDsKK+WlieihjCA+IGJ1Z3lvdVwgOwor6LKg5YK3ID4gZnVzaG91XCA7Civku4HkurogPiBqaW5qaW5cIDsKK+acrOWmuyA+IGhvbnNhaVwgOwor6aKo5a6zID4gZnV1Z2FpXCA7Civlq4nlpqwgPiBzaGl0dG9cIDsKK+isnee9qiA+IHNoYXphaVwgOwor54yf5pyfID4gcnlvdWtpXCA7CivkurrkvZMgPiBuaW50ZWlcIDsKK+aXpeiEmiA+IGhpYXNoaVwgOwor5paH6LGqID4gYnVuZ291XCA7CivkuIDmlrAgPiBpc3NoaW5cIDsKK+S4u+W5uSA+IHNodWthblwgOwor5pa96JasID4gc2V5YWt1XCA7Civni6zms7MgPiBkb2t1ZWlcIDsKK+aWnOimliA+IHNoYXNoaVwgOwor5aSp6K20ID4gdGVua2VuXCA7CivmlbDou5IgPiBzdXVrZW5cIDsKK+WkqeitpiA+IHRlbmtlaVwgOwor6Kq56KunID4gaGFpa2FpXCA7Civnvarmpa0gPiB6YWlnb3VcIDsKK+aUr+maiiA+IHNoaXRhaVwgOwor5pep6ICBID4gc291cm91XCA7Civpm7vou4ogPiBkZW5zaGFcIDsKK+eNo+W4ryA+IGp1dXRhaVwgOwor5LiA5pSrID4gaWtrYWt1XCA7CivkuLvluIYgPiBzaHVoYW5cIDsKK+mhnuaOqCA+IHJ1aXN1aVwgOwor5piO562UID4gbWVpdG91XCA7CivkuIrmj5AgPiBqb3V0ZWlcIDsKK+e3mummmSA+IHNlbmtvdVwgOwor5aSJ6LuiID4gaGVudGVuXCA7CivkuIDmk7IgPiBpdHRla2lcIDsKK+S4iuaOsiA+IGpvdWtlaVwgOwor5p2l5YamID4gcmFpa291XCA7CivnjJvmmpEgPiBtb3VzaG9cIDsKK+iruOiKuCA+IHNob2dlaVwgOwor5Lqh5YWEID4gYm91a2VpXCA7CivkuojlkYogPiB5b2tva3VcIDsKK+S4jeaMryA+IGZ1c2hpblwgOwor5pu45bqXID4gc2hvdGVuXCA7CivkurrkuJYgPiBqaW5zZWlcIDsKK+acrOWhgSA+IGhvbnJ1aVwgOwor6LKn5LmPID4gYmluYm91XCA7CivmnaXlhYkgPiByYWlrb3VcIDsKK+WkluizhyA+IGdhaXNoaVwgOwor54e76KO9ID4ga3Vuc2VpXCA7Civpoqjlp78gPiBmdXVzaGlcIDsKK+mboumDtyA+IHJpa3lvdVwgOwor5pys5aCCID4gaG9uZG91XCA7CivkuZ3lpI8gPiBreXV1a2FcIDsKK+mdkuiNiSA+IGFva3VzYVwgOwor6Ku46IisID4gc2hvaGFuXCA7CivlpJbosowgPiBnYWlib3VcIDsKK+aXoue/kiA+IGtpc2h1dVwgOwor5Lit5bqnID4gY2h1dXphXCA7CivniqznjL8gPiBrZW4nJ2VuXCA7CivkuLvls7AgPiBzaHVob3VcIDsKK+S4jeaJvyA+IGZ1c2hvdVwgOwor572w5p2vID4gYmFwcGFpXCA7CivpoLjmnKggPiBrdWJpa2lcIDsKK+S4ieaLnSA+IHNhbnBhaVwgOwor5aaW57K+ID4geW91c2VpXCA7CivkuZnlpJwgPiBvdHN1eWFcIDsKK+mgk+atuyA+IHRvbnNoaVwgOwor5pyJ5a6zID4geXV1Z2FpXCA7Civnv5LlrZcgPiBzaHV1amlcIDsKK+Wkp+ioiCA+IHRhaWtlaVwgOwor5pil552AID4gaGFydWdpXCA7CivkuIDmjqwgPiBpa2tpa3VcIDsKK+e3qOmaiiA+IGhlbnRhaVwgOwor5Lqt5LqtID4gdGVpdGVpXCA7CivlpKnopqcgPiB0ZW5yYW5cIDsKK+iqreiqpiA+IGRva3VqdVwgOwor6aCG5rOVID4ganVucG91XCA7CivkuqzkurogPiBrZWlqaW5cIDsKK+aVl+mAgCA+IGhhaXRhaVwgOwor54yb5pS7ID4gbW91a291XCA7CivlpKfoprMgPiB0YWlrYW5cIDsKK+S6jOWJsiA+IG5pd2FyaVwgOwor5pyo5Z6LID4ga2lnYXRhXCA7CivkuInmiY0gPiBzYW5zYWlcIDsKK+acm+WkliA+IGJvdWdhaVwgOwor5Lit5beeID4gbmFrYXN1XCA7Civnvqnlv4MgPiBnaXNoaW5cIDsKK+Wkp+imgSA+IHRhaXlvdVwgOwor5LiA5oy6ID4gaXRjaG91XCA7Civmmq7mmKUgPiBib3NodW5cIDsKK+S4u+WwjiA+IHNodWRvdVwgOwor5aiv5qW9ID4gZ29yYWt1XCA7Civkuq3kuLsgPiB0ZWlzaHVcIDsKK+S4h+aJjSA+IG1hbnphaVwgOwor5pq05pS/ID4gYm91c2VpXCA7CivoqqTorKwgPiBnb2J5dXVcIDsKK+aXp+e4gSA+IGt5dXVlblwgOwor5LqA5Y2cID4ga2lib2t1XCA7Civoqq3op6MgPiBkb2trYWlcIDsKK+S4u+WusCA+IHNodXNhaVwgOwor546L5Zu9ID4gb3Vrb2t1XCA7CivlpJroqq0gPiB0YWRva3VcIDsKK+miqOWhtSA+IGZ1dWppblwgOwor5aOr6YGTID4gc2hpZG91XCA7CivpoIzmrYwgPiBzaG91a2FcIDsKK+S6pOS7oyA+IGtvdXRhaVwgOwor5LmX5aC0ID4gbm9yaWJhXCA7CivmnbHkuIogPiB0b3Vqb3VcIDsKK+WkouimiyA+IHl1bWVtaVwgOwor5Lih5bqmID4gcnlvdWRvXCA7CivlpInosowgPiBoZW5ib3VcIDsKK+mgu+aVsCA+IGhpbnN1dVwgOwor6Kqk6KqtID4gZ29kb2t1XCA7CivkuIDmioogPiBpY2hpd2FcIDsKK+mgreabuCA+IHRvdXNob1wgOwor5pmm5riLID4ga2FpanV1XCA7CivkuI3mg5EgPiBmdXdha3VcIDsKK+ePjeS6iyA+IGNoaW5qaVwgOwor5pWX6LuNID4gaGFpZ3VuXCA7CivmnaXkvJogPiByYWlrYWlcIDsKK+S4gOaJkyA+IGljaGlkYVwgOwor5p2h5L6LID4gam91cmVpXCA7CivkuIDmiYsgPiBoaXRvdGVcIDsKK+adpeS7uyA+IHJhaW5pblwgOwor5pm65q2vID4gY2hpc2hpXCA7Civmm77lrasgPiBoaW1hZ29cIDsKK+iqpOiouiA+IGdvc2hpblwgOwor6Kqk6KizID4gZ295YWt1XCA7Civmm73lrasgPiBoaW1hZ29cIDsKK+e4pui1sCA+IGp1dXNvdVwgOwor5pys5Za2ID4gaG9uJydlaVwgOwor5pel57WMID4gbmlra2VpXCA7CivmnJfloLEgPiByb3Vob3VcIDsKK+WkmuinkiA+IHRha2FrdVwgOwor5LiH5oSfID4gYmFua2FuXCA7CivlpYjokL0gPiBuYXJha3VcIDsKK+WmqOeijSA+IGJvdWdhaVwgOwor6Kqe6Kq/ID4gZ29jaG91XCA7CivlpJzopbIgPiB5YXNodXVcIDsKK+eKoOeJmyA+IGdpZ3l1dVwgOwor6LGq5YuiID4gZ291c2VpXCA7CivkuI3mgKUgPiBmdWt5dXVcIDsKK+aXpeezuyA+IG5pa2tlaVwgOwor5pil55S7ID4gc2h1bmdhXCA7CivmnaHku7YgPiBqb3VrZW5cIDsKK+mbhemHjyA+IGdhcnlvdVwgOwor5p2h5LukID4gam91cmVpXCA7Civosarli4cgPiBnb3V5dXVcIDsKK+aVo+iyoSA+IHNhbnphaVwgOwor54aU6YqRID4geW91c2VuXCA7CivkuI3lv6AgPiBmdWNodXVcIDsKK+aXoue0hCA+IGtpeWFrdVwgOwor5aSW6KazID4gZ2Fpa2FuXCA7Civpmo/poIYgPiB6dWlqdW5cIDsKK+adpeS4liA+IHJhaXNlaVwgOwor57im6LKrID4ganV1a2FuXCA7CivkuI3lvrMgPiBmdXRva3VcIDsKK+e3kembqCA+IHJ5b2t1dVwgOwor5pys5ZOhID4gaG9uJydpblwgOwor6Zu76KuLID4gZGVuc2VpXCA7CivlpJboposgPiBzb3RvbWlcIDsKK+S4ieaAnSA+IHNhbnNoaVwgOwor5piP552hID4ga29uc3VpXCA7CivoqanpgbggPiBzaGlzZW5cIDsKK+mdoue5iyA+IG9tb2dhaVwgOwor6Zqb6ZmQID4gc2FpZ2VuXCA7CivmlrDoir0gPiBzaGlubWVcIDsKK+acieWjsCA+IHl1dXNlaVwgOwor5Lmz5YyWID4gbnl1dWthXCA7CivmlZfotbAgPiBoYWlzb3VcIDsKK+aUv+mBkyA+IHNlaWRvdVwgOwor5pWw6KmeID4gc3V1c2hpXCA7CivoqKrpn5MgPiBob3VrYW5cIDsKK+aYjuecuCA+IG1laWJvdVwgOwor6aCt5pWwID4gdG91c3V1XCA7CivmmrTmjJkgPiBib3VreW9cIDsKK+eNo+WnpiA+IGp1dWthblwgOwor6ZqU6ZuiID4ga2FrdXJpXCA7CivmnKzlkb0gPiBob25tZWlcIDsKK+mhnuW9oiA+IHJ1aWtlaVwgOwor5Lit5a2QID4gbmFrYWdvXCA7CivogIHlip8gPiByb3Vrb3VcIDsKK+abs+WtkCA+IGhpa2lrb1wgOwor5aSp6JqVID4gdGVuc2FuXCA7CivmlL7pgIEgPiBob3Vzb3VcIDsKK+WkquiZmiA+IHRhaWt5b1wgOwor5aSW6KOFID4gZ2Fpc291XCA7CivmnKzlkI0gPiBob25tZWlcIDsKK+aUuemBuCA+IGthaXNlblwgOwor5LiK5bymID4gam91Z2VuXCA7CivlpbPntaYgPiBqb2t5dXVcIDsKK+mbu+inoyA+IGRlbmthaVwgOwor5LiJ5bymID4gc2FuZ2VuXCA7Civnva7mj5sgPiBjaGlrYW5cIDsKK+iqk+ipniA+IHNlaXNoaVwgOwor5LqM5Ly4ID4gbmlzaGluXCA7CivmnIjloLEgPiBnZXBwb3VcIDsKK+acgOWkpyA+IHNhaWRhaVwgOwor54e76JK4ID4ga3Vuam91XCA7CivkupHkupEgPiB1bicnbnVuXCA7CivpmpnplpMgPiBzdWtpbWFcIDsKK+acgOWkliA+IHNhaWdhaVwgOwor5amm5b6zID4gZnV0b2t1XCA7CivmmrTmiLsgPiBib3VyZWlcIDsKK+aUuemAoCA+IGthaXpvdVwgOwor5aSn6JmOID4gb29kb3JhXCA7CivpmbXpp5UgPiByeW91Z2FcIDsKK+WjsuiytyA+IGJhaWJhaVwgOwor5pSv6YWNID4gc2hpaGFpXCA7CivkuKblrZggPiBoZWl6b25cIDsKK+S4uOWkqiA+IG1hcnV0YVwgOwor5p2R5LyaID4gc29ua2FpXCA7Civnvo7lvrMgPiBiaXRva3VcIDsKK+acquWPjiA+IG1pc2h1dVwgOwor5LiA5b+cID4gaWNoaW91XCA7CivoqaDpgLIgPiBlaXNoaW5cIDsKK+e+pOWztiA+IGd1bnRvdVwgOwor6KqT6KiAID4gc2VpZ2VuXCA7CivnvqTls7AgPiBndW5wb3VcIDsKK+acjeWcsCA+IGZ1a3VqaVwgOwor6Kyd56S8ID4gc2hhcmVpXCA7CivkuIDlv4MgPiBpc3NoaW5cIDsKK+acqOWPoiA+IGtvbXVyYVwgOwor5Lih5a62ID4gcnlvdWtlXCA7CivkuIDlvrMgPiBpdHRva3VcIDsKK+S6jOS6uiA+IGZ1dGFyaVwgOwor6ICB5YW1ID4gcm91aGVpXCA7Civni4LmsJcgPiBreW91a2lcIDsKK+S4gOW+lyA+IGl0dG9rdVwgOwor57eP6ZaAID4gc291bW9uXCA7CivogIHlhawgPiByb3Vrb3VcIDsKK+eJh+erryA+IGthdGF3YVwgOwor542E5bGLID4gZ29rdXlhXCA7CivorJvnpL4gPiBrb3VzaGFcIDsKK+S4gOW+gCA+IGljaGlvdVwgOwor6aCM5qCEID4gc2hvdWVpXCA7CivnhY7ppIUgPiBzZW5iZWlcIDsKK+S4iuW4ryA+IHV3YW9iaVwgOwor6ZuR6LiPID4gemF0dG91XCA7Civmm7Tlp4sgPiBrb3VzaGlcIDsKK+aWh+iXuyA+IGJ1bnNvdVwgOwor5LiK5bidID4gam91dGVpXCA7CivogIHlhKogPiByb3V5dXVcIDsKK+eGseizmyA+IG5lc3NhblwgOwor5pWZ6K23ID4ga3lvdWdvXCA7CivkubPlhZAgPiBueXV1amlcIDsKK+S4gOW8tSA+IGl0Y2hvdVwgOwor5LiK5be7ID4gam91a2FuXCA7CivmmrTmhaIgPiBib3VtYW5cIDsKK+S4iuW3syA+IGpvdXNoaVwgOwor576k5bGFID4gZ3Vua3lvXCA7Civnuo/ntr8gPiB0ZW5tZW5cIDsKK+WqvuWQiCA+IGtvdWdvdVwgOwor6ICB5YOnID4gcm91c291XCA7CivkuonkubEgPiBzb3VyYW5cIDsKK+eMm+aCqiA+IG1vdWFrdVwgOwor5aWP6IGeID4gc291bW9uXCA7CivlpKfolLUgPiBvb2t1cmFcIDsKK+WkieijhSA+IGhlbnNvdVwgOwor5LiH5be7ID4gbWFuZ2FuXCA7CivpoJPmmbogPiB0b25jaGlcIDsKK+eLguatjCA+IGt5b3VrYVwgOwor5pel56iLID4gbml0dGVpXCA7Civlp6bmt6sgPiBrYW4nJ2luXCA7CivkuIHluqYgPiBjaG91ZG9cIDsKK+WkqeiTiyA+IHRlbmdhaVwgOwor5pWZ6KutID4ga3lvdXl1XCA7CivnjYXlrZAgPiBzaGlzaGlcIDsKK+S4gOW6pyA+IGljaGl6YVwgOwor5Lit5aSuID4gY2h1dW91XCA7CivlpY/ogIUgPiBzb3VzaGFcIDsKK+S4geW5tCA+IHRlaW5lblwgOwor5LmX5ZCIID4gbm9yaWFpXCA7Civpn7PmqJkgPiBvbnB5b3VcIDsKK+aVo+imiyA+IHNhbmtlblwgOwor5LmX5Y+3ID4gam91Z291XCA7CivmmrTmgqogPiBib3Vha3VcIDsKK+acrOWInSA+IGhvbnNob1wgOwor6aKo5ZCRID4gZnV1a291XCA7CivoqanotqMgPiBzaGlzaHVcIDsKK+acrOWIhiA+IGhvbmJ1blwgOwor5pWR6K23ID4ga3l1dWdvXCA7CivnuKbopqcgPiBqdXVyYW5cIDsKK+S4gOW5hSA+IGlwcHVrdVwgOwor6ICQ5LmPID4gdGFpYm91XCA7CivmnI3llqogPiBmdWt1bW9cIDsKK+acqOWJoyA+IGJva2tlblwgOwor57ir6KO9ID4gaG91c2VpXCA7CivkuIDluK0gPiBpc3Nla2lcIDsKK+Wkp+iRrCA+IHRhaXNvdVwgOwor5aSn6JGXID4gdGFpY2hvXCA7Civmk6zpnakgPiBnaWtha3VcIDsKK+S4luWtkCA+IHNlaXNoaVwgOwor6KuW6ICFID4gcm9uc2hhXCA7Civoq5bogIMgPiByb25rb3VcIDsKK+mfs+alvSA+IG9uZ2FrdVwgOwor5pyX5ZCfID4gcm91Z2luXCA7Civpm6roposgPiB5dWtpbWlcIDsKK+eJqeeUoyA+IGJ1c3NhblwgOwor5Lmx5YCrID4gcmFucmluXCA7Civpm7LooaggPiB1bnB5b3VcIDsKK+eJm+eariA+IGd5dXVoaVwgOwor5LiK5bGkID4gam91c291XCA7Civpm6PoqJMgPiBuYW5rdW5cIDsKK+S5s+S+oSA+IG55dXVrYVwgOwor5LiN5a+pID4gZnVzaGluXCA7Civnv7vlgJIgPiBob250b3VcIDsKK+iAgeS9kyA+IHJvdXRhaVwgOwor6Zm46ZuiID4gcmlrdXJpXCA7Civmk6HpoK0gPiB0YWl0b3VcIDsKK+Wlh+e/kiA+IGtpc2h1dVwgOwor6Zuj6KejID4gbmFua2FpXCA7Civmlq3nvaogPiBkYW56YWlcIDsKK+iok+mbuyA+IGt1bmRlblwgOwor54mi55WqID4gcm91YmFuXCA7CivmmYLmtYEgPiBqaXJ5dXVcIDsKK+aWrOe9qiA+IHphbnphaVwgOwor5peF57GgID4gaGF0YWdvXCA7CivmlaLooYwgPiBrYW5rb3VcIDsKK+i1pOOAhSA+IGFrYWFrYVwgOwor5pm05pyXID4gc2Vpcm91XCA7CivkuInlsIEgPiBzYW5wdXVcIDsKK+eGseiqoCA+IG5lc3NlaVwgOwor5LiJ5a+4ID4gc2FuenVuXCA7CivkuI3lraYgPiBmdWdha3VcIDsKK+S4h+WwiyA+IGJhbmppblwgOwor6ICB5Lq6ID4gcm91amluXCA7CivnjLblrZAgPiB5dXVzaGlcIDsKK+aZtOabhyA+IHNlaWRvblwgOwor5LiK5a6YID4gam91a2FuXCA7CivkuInlrp0gPiBzYW5wb3VcIDsKK+miqOWJjSA+IGZ1dXplblwgOwor6Zmj6aKoID4gamlucHV1XCA7CivnjoTlhqwgPiBnZW50b3VcIDsKK+mbhuiyqCA+IHNodXVrYVwgOwor546H5YWIID4gc29zc2VuXCA7CivpoqjliLogPiBmdXVzaGlcIDsKK+map+mBkyA+IHN1aWRvdVwgOwor5aOu6KazID4gc291a2FuXCA7CivmnIDlloQgPiBzYWl6ZW5cIDsKK+e9quaCqiA+IHphaWFrdVwgOwor5LiH5a6dID4gYmFucG91XCA7CivmmpbmiL8gPiBkYW5ib3VcIDsKK+aVrOiZlCA+IGtlaWtlblwgOwor6Zqj6YKmID4gcmlucG91XCA7CivkubHkuqQgPiByYW5rb3VcIDsKK+iAgeS4rSA+IHJvdWp1dVwgOwor5pys5L+4ID4gaG9ucG91XCA7CivlpbPnpZ4gPiBtZWdhbWlcIDsKK+eKrOatryA+IGtlbnNoaVwgOwor6Z2S562LID4gYW9zdWppXCA7Civoq7jnqK4gPiBzaG9zaHVcIDsKK+mZo+mgrSA+IGppbnRvdVwgOwor6aC95buDID4gdGFpaGFpXCA7CivmnInlkI0gPiB5dXVtZWlcIDsKK+aci+WPiyA+IGhvdXl1dVwgOwor5paH6Iq4ID4gYnVuZ2VpXCA7CivpmbDpmb0gPiBvbicneW91XCA7CivmnInlj7ggPiB5dXVzaGlcIDsKK+acieWPsiA+IHl1dXNoaVwgOwor6Kmz6KiYID4gc2hvdWtpXCA7CivkuIHlr6cgPiB0ZWluZWlcIDsKK+S4gOWwhiA+IGlzc2hvdVwgOwor5LiA5a++ID4gaXR0c3VpXCA7Civnvqnlob4gPiBnaWp1a3VcIDsKK+S4gOWvuCA+IGNob3R0b1wgOwor5aSn6Ii5ID4gb29idW5lXCA7CivpnZLnq7kgPiBhb2Rha2VcIDsKK+S4gOWvqSA+IGlzc2hpblwgOwor6Z2p56ClID4ga2F3YXRvXCA7Civpm5HoqowgPiB6YXNzaGlcIDsKK+eJh+ecvCA+IGthdGFtZVwgOwor5pat57eaID4gZGFuc2VuXCA7CivkubHkuJYgPiByYW5zZWlcIDsKK+eGn+itsCA+IGp1a3VnaVwgOwor5LiW5aSJID4gc2VpaGVuXCA7CivmnKzkvZMgPiBob250YWlcIDsKK+miqOWFiSA+IGZ1dWtvdVwgOwor5Li75ZG9ID4gc2h1bWVpXCA7CivpmqDpgLggPiBpbml0c3VcIDsKK+Wkp+iHoyA+IGRhaWppblwgOwor576O5a2mID4gYmlnYWt1XCA7CivkuIDlrpcgPiBpc3NodXVcIDsKK+ipqeirliA+IHNoaXJvblwgOwor54mH55uuID4ga2F0YW1lXCA7CivmlL/oq5YgPiBzZWlyb25cIDsKK+S4geWtkCA+IGNob3VqaVwgOwor546H5YCSID4gc290dG91XCA7CivmnI3li5kgPiBmdWt1bXVcIDsKK+mdkuepuiA+IGFvem9yYVwgOwor5pS/6KuHID4gc2VpZGFuXCA7CivmnInljYogPiB5dXVoYW5cIDsKK+S4gOWtlyA+IGljaGlqaVwgOwor6ZuR6KiAID4gem91Z29uXCA7CivnuYvoiLkgPiBrZWlzZW5cIDsKK+acrOS7tiA+IGhvbmtlblwgOwor5pS+6KuHID4gaG91ZGFuXCA7CivkuLvlkJsgPiBzaHVrdW5cIDsKK+S4uOWRsyA+IG1hcnVtaVwgOwor5pys5LujID4gaG9uZGFpXCA7CivlpKfohb8gPiBkYWl0YWlcIDsKK+ippuirliA+IHNoaXJvblwgOwor5pmp5pmvID4gYmFua2VpXCA7CivkuIvlp5MgPiBnZXNob3VcIDsKK+WjruihjCA+IHNvdWtvdVwgOwor5aaZ546LID4gbXlvdW91XCA7CivlpKfohLMgPiBkYWlub3VcIDsKK+aXheeoiyA+IHJ5b3RlaVwgOwor5aWJ57SNID4gaG91bm91XCA7Civnhp/oqp4gPiBqdWt1Z29cIDsKK+mciuiKnSA+IHJlaXNoaVwgOwor5pyJ5Yq5ID4geXV1a291XCA7Civni5nmkoMgPiBzb2dla2lcIDsKK+acieWKnyA+IHl1dWtvdVwgOwor54y25aSqID4geXVkYXlhXCA7CivlpJzoiLkgPiB5b2Z1bmVcIDsKK+acquS6hiA+IG1pcnlvdVwgOwor5aeT5rCPID4gc2Vpc2hpXCA7CivkuIrlpY8gPiBqb3Vzb3VcIDsKK+aUvuiogCA+IGhvdWdlblwgOwor5aSn6IOGID4gZGFpdGFuXCA7CivkuIrlpKkgPiBqb3V0ZW5cIDsKK+aXqeeUoyA+IHNvdXphblwgOwor5aSn6IKhID4gb29tYXRhXCA7CivmnIDljZcgPiBzYWluYW5cIDsKK+WkqeiBniA+IHRlbmJ1blwgOwor6Ki06L+9ID4gc290c3VpXCA7CivnjJvlsIQgPiBtb3VzaGFcIDsKK+ipoOiqpiA+IGVpc2hvdVwgOwor5pmm5pelID4gbWlzb2thXCA7Civnua3ns7ggPiBrZW5zaGlcIDsKK+aUv+imiyA+IHNlaWtlblwgOwor54yf5a2jID4gcnlvdWtpXCA7CivlpoTnlKggPiBib3V5b3VcIDsKK+abueWPuCA+IHNvdXNoaVwgOwor6KiY6YyyID4ga2lyb2t1XCA7Civmm7jlkI0gPiBzaG9tZWlcIDsKK+Wkp+iBliA+IHRhaXNlaVwgOwor5pyI5YiKID4gZ2Vra2FuXCA7CivkuIflpKkgPiBiYW50ZW5cIDsKK+S4ieWjqyA+IHNhbnNoaVwgOwor5Lit5ZKMID4gY2h1dXdhXCA7CivkuLvli5UgPiBzaHVkb3VcIDsKK+aUueiogiA+IGthaXRlaVwgOwor5Lit5ZGzID4gbmFrYW1pXCA7Civml6XnlKMgPiBuaXNzYW5cIDsKK+mdouebuCA+IG1lbnNvdVwgOwor576O5aaZID4gYmlteW91XCA7CivoqZXorbAgPiBoeW91Z2lcIDsKK+aWnOe3miA+IHNoYXNlblwgOwor5aSn6ICBID4gdGFpcm91XCA7CivmnIvlhZogPiBob3V0b3VcIDsKK+miqOS9kyA+IGZ1dXRlaVwgOwor54md54mbID4gbWV1c2hpXCA7CivlopfphY0gPiB6b3VoYWlcIDsKK+mdoueasCA+IG1lbmJvdVwgOwor5LmD5YWsID4gbmFpa291XCA7CivpmaPploAgPiBqaW5tb25cIDsKK+aYgueEtiA+IGtvdXplblwgOwor5LiA5aWzID4gaWNoaWpvXCA7CivkuIrloLQgPiBqb3Vqb3VcIDsKK+mZjemghiA+IGtvdWp1blwgOwor5aSn576kID4gdGFpZ3VuXCA7CivpmaLplbcgPiBpbmNob3VcIDsKK+S4reWPpSA+IGNodXVrdVwgOwor5LiJ5aGBID4gc2FucnVpXCA7CivmnIDliY0gPiBzYWl6ZW5cIDsKK+mau+iqniA+IHNla2lnb1wgOwor5puH5aSpID4gZG9udGVuXCA7CivmnIjlhYkgPiBnZWtrb3VcIDsKK+isneeKtiA+IHNoYWpvdVwgOwor6ZyK6IO9ID4gcmVpbm91XCA7CivkuLvliJEgPiBzaHVrZWlcIDsKK+e2mumWiyA+IHpva2thaVwgOwor5ae75pePID4gaW56b2t1XCA7CivkuLnliY0gPiB0YW56ZW5cIDsKK+WlieetlCA+IGhvdXRvdVwgOwor5Li45YmkID4gZ2FuemFpXCA7CivlpKfnvaogPiBkYWl6YWlcIDsKK+S4gOWkoiA+IGljaGltdVwgOwor5pyA5YidID4gc2Fpc2hvXCA7CivkuIDlpJwgPiBoaXRveW9cIDsKK+S4gOWklSA+IGlzc2VraVwgOwor5LiH5aC0ID4gbWFuam91XCA7Civoq7jnm7ggPiBzaG9zb3VcIDsKK+mhnuWeiyA+IHJ1aWtlaVwgOwor5aWH562WID4ga2lzYWt1XCA7CivoqZXoqp4gPiBoeW91Z29cIDsKK+WpmuWnuyA+IGtvbicnaW5cIDsKK+S4juWcpyA+IHlvYXRzdVwgOwor54aU6KejID4geW91a2FpXCA7Civop6PpoYwgPiBrYWlkYWlcIDsKK+WkmuiCiSA+IHRhbmlrdVwgOwor5LiO5Zu9ID4geW9rb2t1XCA7CivmlLnoo4UgPiBrYWlzb3VcIDsKK+ippuihjCA+IHNoaWtvdVwgOwor5pqX5bmVID4gYW5tYWt1XCA7CivpmobpgYsgPiByeXV1dW5cIDsKK+aXi+ebpCA+IHNlbmJhblwgOwor6ZmN6ZycID4ga291c291XCA7Civoqpjoh7QgPiB5dXVjaGlcIDsKK+aaluW4ryA+IGRhbnRhaVwgOwor5LiL5Zu9ID4gZ2Vrb2t1XCA7CivmmqvlrpogPiB6YW50ZWlcIDsKK+aZuuaFriA+IGNoaXJ5b1wgOwor6K2m5qOSID4ga2VpYm91XCA7Civmlq3nqK4gPiBkYW5zaHVcIDsKK+eLrOW+gCA+IGRva3VvdVwgOwor6Z+c5pmmID4gdG91a2FpXCA7CivmmYvmm7ggPiBzaGluam9cIDsKK+eMn+WlhyA+IHJ5b3VraVwgOwor5LiJ5ZuyID4gbWl0c3VpXCA7CivlpJbogZ4gPiBnYWlidW5cIDsKK+S4ieWbniA+IHNhbmthaVwgOwor5pyI5L+4ID4gZ2VwcG91XCA7CivnibnmtL4gPiB0b2t1aGFcIDsKK+S4u+WCrCA+IHNodXNhaVwgOwor5Li75YKYID4gc2h1c2FuXCA7Civpm4HooYwgPiBnYW5rb3VcIDsKK+Wkqee2siA+IHRlbm1vdVwgOwor6Zm26YWUID4gdG91c3VpXCA7Civmm7jlhpkgPiBzaG9zaGFcIDsKK+aWkee0iyA+IGhhbm1vblwgOwor6aGV5ZyoID4ga2VuemFpXCA7CivmnInkvZMgPiB5dXV0YWlcIDsKK+Wkp+e2sSA+IHRhaWtvdVwgOwor5aem5pm6ID4ga2FuY2hpXCA7Civnho/oo70gPiBrdW5zZWlcIDsKK+eNhOWQjyA+IGdva3VyaVwgOwor54us5bqnID4gZG9rdXphXCA7Civnt6nop6MgPiBrYW5rYWlcIDsKK+S4ieWYhiA+IHNhbnRhblwgOwor5aWJ56WAID4gaG91c2hpXCA7CivkuIDlm70gPiBpa2tva3VcIDsKK+WovOWutiA+IHNob3VrYVwgOwor5pmD5pucID4ga291eW91XCA7CivnjJ/loLQgPiByeW91YmFcIDsKK+mgmOW4gyA+IHJ5b3VmdVwgOwor54mH54mHID4gaGVucGVuXCA7CivkuIDlm6AgPiBpY2hpaW5cIDsKK+mcp+esmyA+IG11dGVraVwgOwor6Zm46YGLID4gcmlrdXVuXCA7CivmnInkurogPiB5dXVqaW5cIDsKK+eEoemXhyA+IG11eWFtaVwgOwor5pmp5oiQID4gYmFuc2VpXCA7Civpm4TonIIgPiBvYmFjaGlcIDsKK+mYsumiqCA+IGJvdWZ1dVwgOwor6Kmp6Je7ID4gc2hpc291XCA7CivlpKfns7sgPiB0YWlrZWlcIDsKK+e1uembsiA+IGtlbicndW5cIDsKK+eFruixhiA+IG5pbWFtZVwgOwor54aU6J6NID4geW91eXV1XCA7CivkuLvkvZMgPiBzaHV0YWlcIDsKK+iok+mAoyA+IGt1bnJlblwgOwor5LiH5ZaEID4gbWFuemVuXCA7CivlpKnnsZ8gPiB0ZW5yYWlcIDsKK+aWh+ezuyA+IGJ1bmtlaVwgOwor5pyA5L2OID4gc2FpdGVpXCA7CivnuYvntK8gPiBrZWlydWlcIDsKK+iqree1jCA+IGRva3lvdVwgOwor57mK57SwID4gc2Vuc2FpXCA7Civmlr3nmYIgPiBzZXJ5b3VcIDsKK+S4u+S7uyA+IHNodW5pblwgOwor5pWs6ICBID4ga2Vpcm91XCA7CivpoIblvZMgPiBqdW50b3VcIDsKK+mZvei7oiA+IHlvdXRlblwgOwor5Lih5YiDID4gcnlvdWJhXCA7CivntZ7pppYgPiBrb3VzaHVcIDsKK+aXpeeEvCA+IGhpeWFrZVwgOwor5LiK5ZOBID4gam91Ym9uXCA7CivmlL7olakgPiBob3V0b3VcIDsKK+S4u+S6uiA+IHNodWppblwgOwor6aGr5YuVID4gc2VuZG91XCA7Civpm4TomIIgPiB5dXV6dWlcIDsKK+mYu+malCA+IHNva2FrdVwgOwor6Zuj6Ii5ID4gbmFuc2VuXCA7CivpmobotbcgPiByeXV1a2lcIDsKK+mghuW7tiA+IGp1bicnZW5cIDsKK+mbo+iIqiA+IG5hbmtvdVwgOwor5ai85ammID4gc2hvdWZ1XCA7Civlp5Tmm7IgPiBpa3lva3VcIDsKK+S4reWApCA+IG5ha2FuZVwgOwor5aWH55+vID4ga2lreW91XCA7Civnt6nooYwgPiBrYW5rb3VcIDsKK+Wklue3miA+IGdhaXNlblwgOwor5ae75oiaID4gaW5zZWtpXCA7CivmmK3moIQgPiBzaG91ZWlcIDsKK+mhnuWQjCA+IHJ1aWRvdVwgOwor6Kqm57WMID4genVreW91XCA7Civml6nngKwgPiBoYXlhc2VcIDsKK+ipnuiXuyA+IHNoaXNvdVwgOwor5pu45L2TID4gc2hvdGFpXCA7CivkuK3kv50gPiBjaHV1aG9cIDsKK+e3kuirliA+IGNob3JvblwgOwor5LiK5ZCRID4gam91a291XCA7CivoqLvoqJggPiBjaHV1a2lcIDsKK+S4u+S4iiA+IHNodWpvdVwgOwor5pyA5LitID4gbW9uYWthXCA7CivkuIrlj7ggPiBqb3VzaGlcIDsKK+Wnv+aFiyA+IHNoaXRhaVwgOwor6ZuR6I+MID4gemFra2luXCA7Civmlofnr4QgPiBidW5wYW5cIDsKK+aWsOebhiA+IG5paWJvblwgOwor5aKX6LOHID4gem91c2hpXCA7Civpm4TolYogPiB5dXV6dWlcIDsKK+acgOS4iiA+IG1vZ2FtaVwgOwor5aSn562LID4gb29zdWppXCA7CivlqpLkvZMgPiBiYWl0YWlcIDsKK+eIhuegtCA+IGJha3VoYVwgOwor57eP6KuWID4gc291cm9uXCA7CivkuIDlk6EgPiBpY2hpaW5cIDsKK+WkqeerpSA+IHRlbmRvdVwgOwor54yu5ZGIID4ga2VudGVpXCA7Civni6zlsYUgPiBkb2treW9cIDsKK+WovOWmkyA+IHNob3VnaVwgOwor54m55qipID4gdG9ra2VuXCA7CivoqLPoqp4gPiB5YWt1Z29cIDsKK+Wklue0mSA+IGdhaXNoaVwgOwor5Lit5L2QID4gY2h1dXNhXCA7CivkuIflj6MgPiBiYW5rb3VcIDsKK+mbkeiNiSA+IHphc3NvdVwgOwor5LiK5Y2KID4gam91aGFuXCA7Civpmbjot68gPiByaWt1cm9cIDsKK+WqkuS7iyA+IGJhaWthaVwgOwor5aSp56m6ID4gdGVua3V1XCA7Civnt5LoqIAgPiBjaG9nZW5cIDsKK+abtOS7oyA+IGtvdXRhaVwgOwor6Ki06KifID4gc29zaG91XCA7CivpnIDntaYgPiBqdWt5dXVcIDsKK+mgreWjsCA+IHRvdXNlaVwgOwor5LiJ5Y2DID4gc2FuemVuXCA7CivkuInljYEgPiBzYW5qdXVcIDsKK+aUueiRrCA+IGthaXNvdVwgOwor5LiO5YqbID4geW9yaWtpXCA7CivntYzpqJMgPiBrZWlrZW5cIDsKK+aXqea8jyA+IHNvdXJvdVwgOwor6Zu757eaID4gZGVuc2VuXCA7CivlpKfnqbogPiBvb3pvcmFcIDsKK+WkluexsyA+IGdhaW1haVwgOwor57eP6KiIID4gc291a2VpXCA7CivkuIfljYMgPiBiYW5zZW5cIDsKK+WkqeeonyA+IHRlbnBpblwgOwor6Kiz6KejID4geWFra2FpXCA7CivnuYHnsKEgPiBoYW5rYW5cIDsKK+S4reS6jCA+IGNodXVuaVwgOwor5aWH55mWID4ga2loZWtpXCA7CivmlY/ohZUgPiBiaW53YW5cIDsKK+WkqeenpCA+IHRlbmJpblwgOwor57Si6bq6ID4gc291bWVuXCA7Civnt4/opqcgPiBzb3VyYW5cIDsKK+e+pOWDjyA+IGd1bnpvdVwgOwor57eP6KaLID4gc291a2VuXCA7CivntKDpurogPiBzb3VtZW5cIDsKK+abmeWFiSA+IHNob2tvdVwgOwor5pWX6ICFID4gaGFpc2hhXCA7Civlpa7nhLYgPiBmdW56ZW5cIDsKK+S4h+WKqyA+IG1hbmdvdVwgOwor5LiK5YmNID4gdXdhbWFlXCA7CivoqK3oqIggPiBzZWtrZWlcIDsKK+aWr+eVjCA+IHNoaWthaVwgOwor5paw55SrID4gc2hpbnBvXCA7Civpm4bojbcgPiBzaHV1a2FcIDsKK+mZhOmMsiA+IGZ1cm9rdVwgOwor5pWZ576pID4ga3lvdWdpXCA7Civpm4zoirEgPiBtZWJhbmFcIDsKK+Wlh+eXhSA+IGtpYnlvdVwgOwor5pm05bWQID4gc2VpcmFuXCA7CivpnZLniakgPiBhb21vbm9cIDsKK+eJouatuyA+IHJvdXNoaVwgOwor54q25oWLID4gam91dGFpXCA7CivlpKnnpZ4gPiB0ZW5qaW5cIDsKK+eEtui/hCA+IHNhbWFkZVwgOwor6aGM5ZCNID4gZGFpbWVpXCA7CivkuIDljYcgPiBpc3Nob3VcIDsKK+Wlvea8oiA+IGtvdWthblwgOwor5LiA5Yy5ID4gaXBwaWtpXCA7CivpoYzlj7cgPiBkYWlnb3VcIDsKK+Wkp+elrSA+IHRhaXNhaVwgOwor5LiJ5YiGID4gc2FucHVuXCA7CivnvqnkvqAgPiBnaWt5b3VcIDsKK+eGj+iSuCA+IGt1bmpvdVwgOwor6Zu257SwID4gcmVpc2FpXCA7CivlpKfnpL4gPiB0YWlzaGFcIDsKK+Wkp+ekvCA+IHRhaXJlaVwgOwor6KqT57SZID4gc2Vpc2hpXCA7Civnt4/oo48gPiBzb3V1cmFcIDsKK+eJqeaoqSA+IGJ1a2tlblwgOwor5aSc56m6ID4geW96b3JhXCA7CivkuIDli50gPiBpc3Nob3VcIDsKK+WjruiAhSA+IHNvdXNoYVwgOwor57eP6KOBID4gc291c2FpXCA7CivnhKHph48gPiBtdXJ5b3VcIDsKK+S4ieWGrCA+IHNhbnRvdVwgOwor5LiA5YqpID4gaWNoaWpvXCA7Civpm4DojZggPiBqYW5zb3VcIDsKK+e3iuikjCA+IGtpbmtvblwgOwor5LiW5L+XID4gc2V6b2t1XCA7CivpoL3llJAgPiB0YWl0b3VcIDsKK+e4pue3miA+IGp1dXNlblwgOwor54mb5q2pID4gZ3l1dWhvXCA7CivkuIflhoYgPiBtYW4nJ2VuXCA7CivlopfoqIIgPiB6b3V0ZWlcIDsKK+mghuWuiCA+IGp1bnNodVwgOwor5LiH5YWoID4gbWFuemVuXCA7CivkuIDliLsgPiBpa2tva3VcIDsKK+aXp+a0viA+IGt5dXVoYVwgOwor576F5YyXID4gcmFob2t1XCA7Civpm6rnt5ogPiBzZXNzZW5cIDsKK+e+pOS9kyA+IGd1bnRhaVwgOwor5LiL5YOaID4ga2FyeW91XCA7CivntLDprZogPiBzYXlvcmlcIDsKK+S4i+WDlSA+IGdlYm9rdVwgOwor5LiA5YipID4gaWNoaXJpXCA7CivlpKfnoLIgPiB0YWlob3VcIDsKK+aatOWQmyA+IGJvdWt1blwgOwor5pen5rOiID4ga3l1dWhhXCA7CivmlbDnrYkgPiBzdXV0b3VcIDsKK+Wls+a7nSA+IG1lZGFraVwgOwor5LiW5LydID4gc2VpZGVuXCA7CivorabmiYsgPiBrZWlzaHVcIDsKK+maj+ihjCA+IHp1aWtvdVwgOwor5pON6LuKID4gc291c2hhXCA7CivlpoLms5UgPiBueW9ob3VcIDsKK+S4juS/oSA+IHlvc2hpblwgOwor6KiY6KqmID4ga2lzaG91XCA7Civpm7fnrqEgPiByYWlrYW5cIDsKK+WkmuelpSA+IHRhc2hvdVwgOwor5LiA5YaGID4gaWNoaWVuXCA7CivkuIDlhbcgPiBpY2hpZ3VcIDsKK+S4jeS/oSA+IGZ1c2hpblwgOwor57eo6JGXID4gaGVuY2hvXCA7CivorabmiJIgPiBrZWlrYWlcIDsKK+WhiumJsSA+IGthaWtvdVwgOwor54ib54ibID4gcmFucmFuXCA7CivmmpblnLAgPiBkYW5jaGlcIDsKK+e2uOiogCA+IHJpbmdlblwgOwor5pS+6IOGID4gaG91dGFuXCA7CivoqJPoq60gPiBrdW4nJ3l1XCA7Civmm6DkuJYgPiBrb3VzZWlcIDsKK+WkqeecvCA+IHRlbmdhblwgOwor6Kqt56C0ID4gZG9rdWhhXCA7CivkuInlgI0gPiBzYW5iYWlcIDsKK+mhm+WAkiA+IHRlbnRvdVwgOwor5peB54K5ID4gYm91dGVuXCA7CivoqanogZYgPiBzaGlzZWlcIDsKK+eMm+WLhyA+IG1vdXl1dVwgOwor5pS+6IKGID4gaG91c2hpXCA7CivlpYnnjK4gPiBob3VrZW5cIDsKK+S4gOWEgCA+IGljaGlnaVwgOwor57aZ6LWwID4ga2Vpc291XCA7Civml6XmsLggPiBoaW5hZ2FcIDsKK+mhnuS+iyA+IHJ1aXJlaVwgOwor6KiT6KqhID4ga3Vua2FpXCA7CivkuI3kvZwgPiBmdXNha3VcIDsKK+iogOizqiA+IGdlbmNoaVwgOwor6Ky55pu4ID4ga2luc2hvXCA7CivnvbLlkI0gPiBzaG9tZWlcIDsKK+aYjuaclyA+IG1laXJvdVwgOwor5LiK5L6LID4gam91cmVpXCA7Civpl5jpto8gPiB0b3VrZWlcIDsKK+WkqeebgyA+IHRlbnBhaVwgOwor5LiK5L2/ID4gam91c2hpXCA7CivmmJTmmYIgPiBzZWtpamlcIDsKK+aatOWLlSA+IGJvdWRvdVwgOwor5aCk6ZiyID4gdGVpYm91XCA7CivoqI7oq5YgPiB0b3Vyb25cIDsKK+aXpeavjiA+IGhpZ290b1wgOwor5LiK5L2TID4gam91dGFpXCA7CivkuI3ku7IgPiBmdW5ha2FcIDsKK+iqsuebriA+IGthbW9rdVwgOwor5aSn55uDID4gdGFpaGFpXCA7CivlpKfnmr8gPiBvb3phcmFcIDsKK+S4ieS9kyA+IHNhbnRhaVwgOwor5paH55uyID4gbW9ubW91XCA7CivnhrHnt5ogPiBuZXNzZW5cIDsKK+mgveWLoiA+IHRhaXNlaVwgOwor54af6ICDID4ganVra291XCA7CivlpInnqK4gPiBoZW5zaHVcIDsKK+aWreeJhyA+IGRhbnBlblwgOwor54yf5YW3ID4gcnlvdWd1XCA7Civmn5DjgIUgPiBib3Vib3VcIDsKK+Wik+ihqCA+IGJvaHlvdVwgOwor6KiT6KejID4ga3Vua2FpXCA7CivmmLXmh4cgPiBqaWtrb25cIDsKK+Wls+a1gSA+IGpvcnl1dVwgOwor6Z+z5a65ID4gb24nJ3lvdVwgOwor6ZmN6LuKID4ga291c2hhXCA7CivpnIrnn6UgPiByZWljaGlcIDsKK+WjsOe0iyA+IHNlaW1vblwgOwor5LiK5LujID4gam91ZGFpXCA7CivlpYfnibkgPiBraWRva3VcIDsKK+mgmOWcnyA+IHJ5b3Vkb1wgOwor576O5L+XID4gYml6b2t1XCA7CivpoIblpYkgPiBqdW5wb3VcIDsKK+aYk+aWrSA+IGVraWRhblwgOwor5LiJ5LujID4gc2FuZGFpXCA7CivkuIDkv7UgPiBpcHB5b3VcIDsKK+e2seimgSA+IGtvdXlvdVwgOwor5pS+572uID4gaG91Y2hpXCA7Civpl4fpu5IgPiBhbmtva3VcIDsKK+S4jeS5mSA+IGZ1aXRzdVwgOwor54yu5L2TID4ga2VudGFpXCA7CivnvarlkI0gPiB6YWltZWlcIDsKK+aYj+aYjyA+IGtvbmtvblwgOwor6ZuR57qCID4gemFzc2FuXCA7CivlppnmoYggPiBteW91YW5cIDsKK+Wls+azoiA+IG1lbmFtaVwgOwor5piO5piOID4gYWthYWthXCA7CivkuIfku54gPiBiYW5qaW5cIDsKK+mbouexjSA+IHJpc2VraVwgOwor5LiN5LiAID4gZnVpdHN1XCA7CivmlpnnkIYgPiByeW91cmlcIDsKK+S4iuS5lyA+IGpvdWpvdVwgOwor5pqX5ZSxID4gYW5zaG91XCA7CivkuInkuZcgPiBzYW5qb3VcIDsKK+aYjuaWrSA+IG1laWRhblwgOwor57S66Z2SID4ga29uam91XCA7CivmlaznpLwgPiBrZWlyZWlcIDsKK+mbt+elniA+IHJhaWppblwgOwor6Zm26KO9ID4gdG91c2VpXCA7CivkuIrkuJYgPiBqb3VzZWlcIDsKK+S4iuS4iiA+IGpvdWpvdVwgOwor5piO5paHID4gbWVpYnVuXCA7CivmmbTlpKkgPiBzZWl0ZW5cIDsKK+S4h+S5lyA+IGJhbmpvdVwgOwor6Kq/55CGID4gY2hvdXJpXCA7Civmlq3nhLYgPiBkYW56ZW5cIDsKK+WkqeeUoyA+IHRlbnNhblwgOwor5aSp55SfID4gdGVuc2VpXCA7CivmmanlqZogPiBiYW5rb25cIDsKK+aYjuaVjyA+IG1laWJpblwgOwor6aGY5Li7ID4gZ2Fuc2h1XCA7CivniYjmqKkgPiBoYW5rZW5cIDsKK+eDiOmiqCA+IHJlcHB1dVwgOwor57WE6ZajID4gc29rYWt1XCA7CivkuIfkuIggPiBiYW5qb3VcIDsKK+S4h+S4hyA+IG1hbm1hblwgOwor6KiA6KuWID4gZ2Vucm9uXCA7CivpmbjooYwgPiByaWtrb3VcIDsKK+Wkp+eUnyA+IGRhaXNlaVwgOwor6ZuA576FID4gamFrdXJhXCA7CivkuIHkuqUgPiB0ZWlnYWlcIDsKK+itsOW4rSA+IGdpc2VraVwgOwor576O5LqLID4gbWlnb3RvXCA7Civlp5Hmga8gPiBrb3Nva3VcIDsKK+e5geebmyA+IGhhbmpvdVwgOwor5LiA5Lq6ID4gaGl0b3JpXCA7CivmlL7nuKYgPiBob3VqdXVcIDsKK+irlueCuSA+IHJvbnRlblwgOwor6Kmp57eoID4gc2hpaGVuXCA7CivnjK7kuIogPiBrZW5qb3VcIDsKK+aXpeanmCA+IGhpc2FtYVwgOwor6Zmq6KazID4gYmFpa2FuXCA7CivkuIDkuowgPiBpY2hpbmlcIDsKK+S4gOS6iyA+IGljaGlqaVwgOwor57Sg6aaWID4gc29rdWJpXCA7CivniJvmvKsgPiByYW5tYW5cIDsKK+mXmOmtgiA+IHRvdWtvblwgOwor54m55o6qID4gdG9rdXNvXCA7CivmlL/ntrEgPiBzZWlrb3VcIDsKK+ippue3tCA+IHNoaXJlblwgOwor6KqH56ewID4ga29zaG91XCA7CivlpYnnga8gPiBob3V0b3VcIDsKK+iogOiosyA+IGlpd2FrZVwgOwor5Z+56aSKID4gYmFpeW91XCA7CivmlK/nvbIgPiBzaGlzaG9cIDsKK+S4geS4gSA+IHRvdXRvdVwgOwor6Ku45rCPID4gc2hvc2hpXCA7CivoqIDoqIAgPiBnZW5nZW5cIDsKK+S4gOS4gSA+IGl0Y2hvdVwgOwor57eP6I+cID4gc291emFpXCA7CivmlL/ntYwgPiBzZWlrZWlcIDsKK+WkmueXhSA+IHRhYnlvdVwgOwor6Zu256CVID4gcmVpc2FpXCA7CivmkqTpgIAgPiB0ZXR0YWlcIDsKK+imi+mggyA+IG1pZ29yb1wgOwor5pS557eoID4ga2FpaGVuXCA7CivnhKHos4MgPiBtdWNoaW5cIDsKK+ioiOijhSA+IGtlaXNvdVwgOwor6ZuE57eoID4geXV1aGVuXCA7CivmlZnnp5EgPiBreW91a2FcIDsKK+e2nOimpyA+IHNvdXJhblwgOwor6ZyK55WMID4gcmVpa2FpXCA7CivmmbrlmqIgPiBjaGlub3VcIDsKK+e4gee1hCA+IGVuZ3VtaVwgOwor5aSa55SfID4gdGFzaG91XCA7CivorJvmm7ggPiBrb3VzaG9cIDsKK+e0q+mbuyA+IHNoaWRlblwgOwor6Z2Z5q2iID4gc2Vpc2hpXCA7CivnibnmioAgPiB0b2t1Z2lcIDsKK+eLrOWSjCA+IGRva3V3YVwgOwor5pWZ56WWID4ga3lvdXNvXCA7CivmlZnnpLogPiBreW91amlcIDsKK+WghemZoyA+IGtlbmppblwgOwor6KqN55+lID4gbmluY2hpXCA7Civni4LlpbMgPiBreW91am9cIDsKK+WklueUqCA+IGdhaXlvdVwgOwor54mp5pCNID4gYnVzc29uXCA7CivopoHpoIUgPiB5b3Vrb3VcIDsKK+imgemggiA+IHlvdWtvdVwgOwor54K56aCtID4gdGVudG91XCA7CivmlK/nt5ogPiBzaGlzZW5cIDsKK+e9sOS/uCA+IGJhcHBvdVwgOwor5paH54yuID4gYnVua2VuXCA7Civoqannr4cgPiBzaGloZW5cIDsKK+aXpeafhCA+IGhpZ2FyYVwgOwor5aeJ5byfID4gc2hpbWFpXCA7CivnuIHnsY0gPiBlbnNla2lcIDsKK+mbouekgSA+IHJpc2hvdVwgOwor6Z+z5Z+fID4gb24nJ2lraVwgOwor6KiA6KGMID4gZ2Vua291XCA7Civop5Lot50gPiBrYWtreW9cIDsKK+WgsemBkyA+IGhvdWRvdVwgOwor5pa55rOVID4gaG91aG91XCA7Civml63mmokgPiBreW9ra2lcIDsKK+e1tuizmyA+IHplc3NhblwgOwor5aaC5p2lID4gbnlvcmFpXCA7CivlpKfniakgPiBvb21vbm9cIDsKK+aYguaPmiA+IGtvdXlvdVwgOwor6Zyy5ru0ID4gcm90ZWtpXCA7CivntprooYwgPiB6b2trb3VcIDsKK+ippueulyA+IHNoaXNhblwgOwor6Kur5q27ID4ga2Fuc2hpXCA7CivpmY3oqpUgPiBrb3V0YW5cIDsKK+eJiOacrCA+IGhhbnBvblwgOwor6Kur5q2iID4ga2Fuc2hpXCA7CivmmpblhqwgPiBkYW50b3VcIDsKK+mbu+eVqiA+IGRlbmJhblwgOwor6Zu755WMID4gZGVua2FpXCA7CivorprlmIYgPiBzYW50YW5cIDsKK+aXqeaZqSA+IHNvdWJhblwgOwor6ZyK542jID4gcmVpanV1XCA7Civnt6jnuoIgPiBoZW5zYW5cIDsKK+aZguWulyA+IGppc2h1dVwgOwor5paw5rS+ID4gc2hpbnBhXCA7Civml63ml5cgPiBreW9ra2lcIDsKK+mbhOevhyA+IHl1dWhlblwgOwor6ZuR56iuID4gemFzc2h1XCA7CivntJnpnaIgPiBzaGltZW5cIDsKK+Wlj+azlSA+IHNvdWhvdVwgOwor5aSx54GrID4gc2hpa2thXCA7CivmlpHngrkgPiBoYW50ZW5cIDsKK+mbquebriA+IHl1a2ltZVwgOwor5aW95pybID4ga291Ym91XCA7Civml6fmmYIgPiBreXV1amlcIDsKK+iqleeUnyA+IHRhbmpvdVwgOwor5pi85a+dID4gaGlydW5lXCA7Civmk43ooYwgPiBzb3Vrb3VcIDsKK+eJueaBtSA+IHRva2tlaVwgOwor5pi85a+QID4gaGlydW5lXCA7CivnhZnojYkgPiB0YWJha29cIDsKK+ipqeeovyA+IHNoaWtvdVwgOwor6K2m5a6YID4ga2Vpa2FuXCA7CivntbboroMgPiB6ZXNzYW5cIDsKK+aWueatoyA+IGhvdXNlaVwgOwor6KuW5rOVID4gcm9ucG91XCA7CivniJvmrbsgPiByYW5zaGlcIDsKK+aVteeOiyA+IHRla2lvdVwgOwor6Z6F5o6MID4gb3VzaG91XCA7CivorITmnKwgPiB0b3Vob25cIDsKK+aUueerhCA+IGthaXphblwgOwor5aaE5patID4gbW91ZGFuXCA7Civnibnlv6sgPiB0b2trYWlcIDsKK+WkqeeBvSA+IHRlbnNhaVwgOwor6Z2S5qW8ID4gc2Vpcm91XCA7CivpmYToqJcgPiBmdXRha3VcIDsKK+aXp+aVhSA+IGt5dXVrb1wgOwor54m95byVID4ga2VuJydpblwgOwor5pmv5ZOBID4ga2VpaGluXCA7Civml6XmlbAgPiBoaWthenVcIDsKK+eJiOaVsCA+IGhhbnN1dVwgOwor5pat5rC0ID4gZGFuc3VpXCA7CivntabosrsgPiBreXV1aGlcIDsKK+eHpueEtiA+IHNhbnplblwgOwor5aaZ5oqAID4gbXlvdWdpXCA7CivntIXpoZQgPiBrb3VnYW5cIDsKK+Wmu+W4ryA+IHNhaXRhaVwgOwor6ZuF56ewID4gZ2FzaG91XCA7CivlqIHllp0gPiBpa2F0c3VcIDsKK+mgkeWGpSA+IGdhbm1laVwgOwor6Kqt54K5ID4gdG91dGVuXCA7CivnhY7ojLYgPiBzZW5jaGFcIDsKK+aYjuW/qyA+IG1laWthaVwgOwor5aas5b+DID4gdG9zaGluXCA7Civmmbrli4cgPiBjaGl5dXVcIDsKK+itq+WmhCA+IHNlbm1vdVwgOwor5pm25YyWID4gc2hvdWthXCA7CivmlbTniYggPiBzZWloYW5cIDsKK+mbt+eNoyA+IHJhaWp1dVwgOwor6Z2S5qGQID4gYW9naXJpXCA7CivlpKfmva4gPiBvb3NoaW9cIDsKK+aZruWPiiA+IGZ1a3l1dVwgOwor54uC5ZacID4ga3lvdWtpXCA7CivlpKnmvKIgPiB0ZW5rYW5cIDsKK+mZtuiKuCA+IHRvdWdlaVwgOwor5peX5pelID4gaGF0YWJpXCA7CivpnZLmn7MgPiBhb3lhZ2lcIDsKK+ioree9riA+IHNldGNoaVwgOwor54mp5oCnID4gYnVzc2VpXCA7CivpmYTooaggPiBmdWh5b3VcIDsKK+mbo+eUoyA+IG5hbnphblwgOwor6K6S5Y+jID4gemFua291XCA7Civku4rjgIUgPiBpbWFpbWFcIDsKK+mgkeWBpSA+IGdhbmtlblwgOwor5pqX5LitID4gYW5jaHV1XCA7Civorbflm70gPiBnb2tva3VcIDsKK+aYvOWknCA+IGNodXV5YVwgOwor6KiA6JGJID4ga290b2JhXCA7CivopqrouqsgPiBzaGlubWlcIDsKK+aVtOeEtiA+IHNlaXplblwgOwor57Sh6YyYID4gYm91c3VpXCA7Civoq4zmraIgPiBrYW5zaGlcIDsKK+WklueBryA+IGdhaXRvdVwgOwor5aaE5oyZID4gYm91a3lvXCA7CivnuIHnn7MgPiBlbnNla2lcIDsKK+WfvOmKgCA+IHNhaWdpblwgOwor6ZaT6bSoID4gYWlnYW1vXCA7CivpnKfmsLcgPiBtdWh5b3VcIDsKK+aUr+ekviA+IHNoaXNoYVwgOwor6Z2S5pu4ID4gc2Vpc2hvXCA7CivmmKXlraMgPiBzaHVua2lcIDsKK+aVmeeQhiA+IGt5b3VyaVwgOwor6Ku45pa5ID4gc2hvaG91XCA7Civlopfnva4gPiB6b3VjaGlcIDsKK+Wkqea2ryA+IHRlbmdhaVwgOwor6KmQ56ewID4gc2FzaG91XCA7CivmkYLplqIgPiBzZWtrYW5cIDsKK+itpuWgsSA+IGtlaWhvdVwgOwor57a+576FID4gcnlvdXJhXCA7Civnt4/ntbEgPiBzb3V0b3VcIDsKK+mgmOS6iyA+IHJ5b3VqaVwgOwor54uC5Y+lID4ga3lvdWt1XCA7CivlppbmgKogPiB5b3VrYWlcIDsKK+aVmeeOiyA+IGt5b3VvdVwgOwor6Ku45pS/ID4gc2hvc2VpXCA7Civmlr3mnaEgPiBzaGlqb3VcIDsKK+mZs+iFkCA+IGNoaW5wdVwgOwor5aSn5rW3ID4gdGFpa2FpXCA7Civlp4nlprkgPiBzaGltYWlcIDsKK+WgseisnSA+IGhvdXNoYVwgOwor5aa75a2QID4gc2Fpc2hpXCA7Civni6zkuZkgPiBkb2l0c3VcIDsKK+eFqee0ryA+IGhhbnJ1aVwgOwor54mH5omLID4ga2F0YXRlXCA7Civpm7vnga8gPiBkZW50b3VcIDsKK+eJh+aIuCA+IGthdGFkb1wgOwor5aSn5rSLID4gdGFpeW91XCA7Civlp7/li6IgPiBzaGlzZWlcIDsKK+inkuihjCA+IGtha2tvdVwgOwor5aiB5YqbID4gaXJ5b2t1XCA7Civlpb3mipUgPiBrb3V0b3VcIDsKK+aWkeawlyA+IG11cmFraVwgOwor5pWm54WMID4gdG9ua291XCA7Civpm6rniYcgPiBzZXBwZW5cIDsKK+Wkp+azoiA+IG9vbmFtaVwgOwor5aSJ54G9ID4gaGVuc2FpXCA7CivlpKfms5UgPiB0YWlob3VcIDsKK+mbtueCuSA+IHJlaXRlblwgOwor5aW95omLID4ga291c2h1XCA7CivmmanlhqwgPiBiYW50b3VcIDsKK+WlveaIpiA+IGtvdXNlblwgOwor5pat5qGIID4gZGFuJydhblwgOwor5paH5rOVID4gYnVucG91XCA7CivlpKnmsLQgPiB0ZW5zdWlcIDsKK+mgkeS4iCA+IGdhbmpvdVwgOwor5aSW5rmvID4gc290b3l1XCA7CivmlofmsrsgPiBidW5jaGlcIDsKK+aVoueEtiA+IGthbnplblwgOwor5pmm5YalID4ga2FpbWVpXCA7CivmlZnniLYgPiBreW91ZnVcIDsKK+WmhOaDsyA+IG1vdXNvdVwgOwor57SU6YqAID4ganVuZ2luXCA7CivlpK3mrbsgPiB5b3VzaGlcIDsKK+aUv+eVjCA+IHNlaWthaVwgOwor5aSn5rC0ID4gb29taXp1XCA7Civntr/ntr8gPiBtZW5tZW5cIDsKK+Wklua4ryA+IGdhaWtvdVwgOwor6Kqs5rOVID4gc2VwcG91XCA7CivopovovrwgPiBtaWtvbWlcIDsKK+ioquexsyA+IGhvdWJlaVwgOwor6Kmm55SoID4gc2hpeW91XCA7CivntLDouqsgPiBob3NvbWlcIDsKK+WfjumWgCA+IGpvdW1vblwgOwor5paH5rCRID4gYnVubWluXCA7Civngq3pibEgPiB0YW5rb3VcIDsKK+aXp+aBqSA+IGt5dXVvblwgOwor57a/57ShID4gbWVuYm91XCA7Civlpb3mhJ8gPiBrb3VrYW5cIDsKK+e0lOmHkSA+IGp1bmtpblwgOwor6KW/6YOKID4gc2Vpa291XCA7CivlpJzms4ogPiB5YWhha3VcIDsKK+aWveaUvyA+IHNoaXNlaVwgOwor5pen5oCoID4ga3l1dWVuXCA7CivmlrnmlrkgPiBob3Vib3VcIDsKK+e2v+ezuCA+IG1lbnNoaVwgOwor5peo5b+1ID4gc2hpbmVuXCA7Civmk43oiLkgPiBzb3VzZW5cIDsKK+WmqOWusyA+IGJvdWdhaVwgOwor6ZyK5rOJID4gcmVpc2VuXCA7Civntr7ns7ggPiBheWFpdG9cIDsKK+mbu+a6kCA+IGRlbmdlblwgOwor5aaE5b+1ID4gbW91bmVuXCA7Civnirbli6IgPiBqb3VzZWlcIDsKK+WnlOWYsSA+IGlzaG9rdVwgOwor57mK5q+bID4gc2VubW91XCA7CivplqLpoK0gPiBrYW50b3VcIDsKK+WlieabuCA+IGhvdXNob1wgOwor5aSW5rSLID4gZ2FpeW91XCA7Civopb/pgYogPiBzZWl5dXVcIDsKK+e5lOapnyA+IHNob2traVwgOwor5aWu5oimID4gZnVuc2VuXCA7CivorJvluKsgPiBrb3VzaGlcIDsKK+mciuawtCA+IHJlaXN1aVwgOwor54Kt6YW4ID4gdGFuc2FuXCA7CivlpZTmlL4gPiBob25wb3VcIDsKK+e0jemHkSA+IG5vdWtpblwgOwor5pmv5LuwID4ga2Vpa291XCA7CivntI3ph4cgPiBub3VzYWlcIDsKK+aWg+atuyA+IGhlaXNoaVwgOwor6Kaz6KanID4ga2FucmFuXCA7Civoq7jmiYsgPiBtb3JvdGVcIDsKK+mfs+S/oSA+IG9uc2hpblwgOwor57OW6aGeID4gdG91cnVpXCA7Civnsr7prYIgPiBzZWlrb25cIDsKK+iok+e3tCA+IGt1bnJlblwgOwor5Z+66Lu4ID4ga2lqaWt1XCA7Civpm6PngrkgPiBuYW50ZW5cIDsKK+WknOavjiA+IHlvZ290b1wgOwor5pel5b2xID4gaGlrYWdlXCA7CivmlaPmvKsgPiBzYW5tYW5cIDsKK+e3qeebriA+IHl1cnVtZVwgOwor54mH5b2xID4gaGVuJydlaVwgOwor54G96ZujID4gc2FpbmFuXCA7CivlpoTlvIEgPiBib3ViZW5cIDsKK+mciuauvyA+IHJlaWRlblwgOwor5pei5b6XID4ga2l0b2t1XCA7CivlpKfmqKkgPiB0YWlrZW5cIDsKK+irluaXqCA+IHJvbnNoaVwgOwor57K+6auEID4gc2VpenVpXCA7Civmlq/mlocgPiBzaGlidW5cIDsKK+WftOi8qiA+IGhhbml3YVwgOwor6KuW5patID4gcm9uZGFuXCA7Civoq5bmlocgPiByb25idW5cIDsKK+eFmeeuoSA+IGtpc2VydVwgOwor54i95b+rID4gc291a2FpXCA7CivpmY3oh6ggPiBrb3VyaW5cIDsKK+Wkp+amgiA+IHRhaWdhaVwgOwor6Kq/5p+7ID4gY2hvdXNhXCA7CivpnZnmhYsgPiBzZWl0YWlcIDsKK+mbjOeJmyA+IG1ldXNoaVwgOwor57eg55ufID4gdGVpbWVpXCA7CivplovppKggPiBrYWlrYW5cIDsKK+iqsualrSA+IGthZ3lvdVwgOwor54Sh6IetID4gbXVzaHV1XCA7CivlpInms5UgPiBoZW5wb3VcIDsKK+mdseW4ryA+IGppbnRhaVwgOwor5piO5aSnID4gbWVpZGFpXCA7CivniZ/lrZAgPiBib3VzaGlcIDsKK+mbu+axoCA+IGRlbmNoaVwgOwor6ZaJ6aSoID4gaGVpa2FuXCA7Civoq7jmgqogPiBzaG9ha3VcIDsKK+aYn+WboyA+IHNlaWRhblwgOwor5aOB55S7ID4gaGVraWdhXCA7Civlp5PlkI0gPiBzZWltZWlcIDsKK+e0oOi2syA+IHN1YXNoaVwgOwor5pW15q2pID4gdGVraWZ1XCA7Civpm6rmuJMgPiBzZWtrZWlcIDsKK+mbhOeKrCA+IG9zdWludVwgOwor6Z2t5bivID4gamludGFpXCA7CivlopfnqI4gPiB6b3V6ZWlcIDsKK+aZguWIuyA+IGppa29rdVwgOwor5aK+55SwID4ga29uZGVuXCA7CivmlLnniYggPiBrYWloYW5cIDsKK+eItuW+oSA+IHRldGVnb1wgOwor6Zai6ZaAID4ga2FubW9uXCA7CivntLDorLkgPiBzYWlraW5cIDsKK+WhiuiMjiA+IGthaWtlaVwgOwor6ZqV55+zID4gaW5zZWtpXCA7CivmmK3lkowgPiBzaG91d2FcIDsKK+Wkp+aguSA+IGRhaWtvblwgOwor5paR5p2hID4gaGFuam91XCA7CivplpHpnZkgPiBrYW5zZWlcIDsKK+mWkemdliA+IGthbnNlaVwgOwor6Z2Z5oCdID4gc2Vpc2hpXCA7Civml7HlrrMgPiBrYW5nYWlcIDsKK+mbkeeCiiA+IHpvdXN1aVwgOwor5aSc5qWtID4geWFneW91XCA7CivoqJjnq6AgPiBraXNob3VcIDsKK+aYguWlriA+IGtvdWZ1blwgOwor57Sw6KuWID4gc2Fpcm9uXCA7CivoqabnhYkgPiBzaGlyZW5cIDsKK+eJp+WkqyA+IGJva3VmdVwgOwor5paH5qGIID4gYnVuJydhblwgOwor5peF5oOFID4gcnlvam91XCA7CivkupHjgIUgPiB1bicnbnVuXCA7CivlpInmrbsgPiBoZW5zaGlcIDsKK+mbo+a4iyA+IG5hbmp1dVwgOwor5aSW5qeYID4gdG96YW1hXCA7CivlpKfmn4QgPiBvb2dhcmFcIDsKK+iruOW9piA+IHNob2dlblwgOwor6ZaT6ZqbID4gbWFnaXdhXCA7CivlpKnmna8gPiB0ZW5wYWlcIDsKK+WkqeadpSA+IHRlbnJhaVwgOwor5aSn5p6aID4gdGFpbWFpXCA7CivnhKHogYogPiBidXJ5b3VcIDsKK+mVt+mnhiA+IGNob3VrdVwgOwor5aeL5Y6fID4gc2hpZ2VuXCA7CivmlaPmsLQgPiBzYW5zdWlcIDsKK+Wkp+adryA+IHRhaWhhaVwgOwor6Zuy5q+NID4ga2lyYXJhXCA7Civml6nlr50gPiBoYXlhbmVcIDsKK+ilv+iyoiA+IHNhaWdvblwgOwor5pWZ5rS+ID4ga3lvdWhhXCA7Civmk43nuKYgPiBzb3VqdXVcIDsKK+e3j+eboyA+IHNvdWthblwgOwor5aSn5pysID4gdGFpaG9uXCA7CivnhrHmua8gPiBuZXR0b3VcIDsKK+Wkp+acmyA+IHRhaW1vdVwgOwor6KuW5ougID4gcm9ua3lvXCA7Civml6XlsIQgPiBuaXNzaGFcIDsKK+e0r+ioiCA+IHJ1aWtlaVwgOwor6Ki755aPID4gY2h1dXNvXCA7CivlpYnmi50gPiBob3VoYWlcIDsKK+Wkp+abuCA+IHRhaXNob1wgOwor5pen5a62ID4ga3l1dWthXCA7CivniafloLQgPiBtYWtpYmFcIDsKK+ioiOeulyA+IGtlaXNhblwgOwor5peL5bu7ID4gc2Vua2FpXCA7CivpmaTnsY0gPiBqb3Nla2lcIDsKK+Wni+WLlSA+IHNoaWRvdVwgOwor57Sw6KaLID4gc2Fpa2VuXCA7CivnuYrmnaEgPiBzZW5qb3VcIDsKK+ezuOmBiiA+IGl0b3l1dVwgOwor5pen5a2XID4ga3l1dWppXCA7CivlpKfmmpEgPiB0YWlzaG9cIDsKK+mbo+ayuyA+IG5hbmNoaVwgOwor5aKo55eVID4gYm9ra29uXCA7CivnhZnnoZ0gPiBlbnNob3VcIDsKK+mWoumNtSA+IGthbmtlblwgOwor6KuW5oimID4gcm9uc2VuXCA7Civnsr7pnIogPiBzZWlyZWlcIDsKK+aXpeWtkCA+IG5pc3NoaVwgOwor5aWJ5oi0ID4gaG91dGFpXCA7CivlpKnmmI4gPiB0ZW5tZWlcIDsKK+WfuuiqvyA+IGtpY2hvdVwgOwor57mB5qCEID4gaGFuJydlaVwgOwor5aKT55+zID4gYm9zZWtpXCA7Civopovop6MgPiBrZW5rYWlcIDsKK+aUvua8qyA+IGhvdW1hblwgOwor5aW95a6IID4ga291c2h1XCA7Civpm4zmu50gPiBtZWRha2lcIDsKK+WnpuS6uiA+IGthbmppblwgOwor5aKo55S7ID4gYm9rdWdhXCA7Civpm6PmsJEgPiBuYW5taW5cIDsKK+aXqeWpmiA+IHNvdWtvblwgOwor57Sg6KqtID4gc29kb2t1XCA7CivopoHoq6YgPiB5b3V0ZWlcIDsKK+WkqeaWhyA+IHRlbm1vblwgOwor5aSn5pa5ID4gb29rYXRhXCA7CivopoHoq4sgPiB5b3VzZWlcIDsKK+aUr+eCuSA+IHNoaXRlblwgOwor6KaB6KuHID4geW91ZGFuXCA7CivmlofmmI4gPiBidW5tZWlcIDsKK+mdkuW5tCA+IHNlaW5lblwgOwor6ZaL6ZaJID4ga2FpaGVpXCA7Civoqp7moLwgPiBnb2tha3VcIDsKK+mVt+mfsyA+IGNob3VvblwgOwor5pen5ammID4ga3l1dWZ1XCA7CivplovploAgPiBrYWltb25cIDsKK+aXseWkqSA+IGthbnRlblwgOwor5pCs6YCBID4gaGFuc291XCA7Civpno/lm7ogPiBreW91a29cIDsKK+aWh+aXpiA+IGJ1bnRhblwgOwor6Ky55ZWTID4ga2lua2VpXCA7Civnt7Tngq0gPiByZW50YW5cIDsKK+Wkp+aVsCA+IHRhaXN1dVwgOwor6Kej57qcID4ga2FpcmFuXCA7CivplonploAgPiBoZWltb25cIDsKK+itsOS6hiA+IGdpcnlvdVwgOwor5aWl5beeID4gb3VzaHV1XCA7CivmlZfmrosgPiBoYWl6YW5cIDsKK+Wil+ebiiA+IHpvdWVraVwgOwor5aSn5pWXID4gdGFpaGFpXCA7CivorJvlo4cgPiBrb3VkYW5cIDsKK+WkluadpSA+IGdhaXJhaVwgOwor6ZeH6LevID4geWFtaWppXCA7Civoq7jls7YgPiBzaG90b3VcIDsKK+WkluadkCA+IGdhaXphaVwgOwor5aSn5pS/ID4gdGFpc2VpXCA7CivlpbPlsIYgPiBqb3Nob3VcIDsKK+mWgOmZoiA+IG1vbicnaW5cIDsKK+e0jeixhiA+IG5hdHRvdVwgOwor6ZaA6ZmQID4gbW9uZ2VuXCA7CivmlrnlvaIgPiBob3VrZWlcIDsKK+mZpeepvSA+IGthbnNlaVwgOwor6ZyK5pm6ID4gcmVpY2hpXCA7CivmlofmlL8gPiBidW5zZWlcIDsKK+Wls+WumCA+IG55b2thblwgOwor5pCt6LyJID4gdG91c2FpXCA7CivnhKHntaYgPiBtdWt5dXVcIDsKK+aXqeWkqSA+IHNvdXRlblwgOwor5pep5aSnID4gc291ZGFpXCA7CivorJvloIIgPiBrb3Vkb3VcIDsKK+imgeimpyA+IHlvdXJhblwgOwor6Z2S5bWQID4gc2VpcmFuXCA7Civpm5vmrrUgPiBzdXVkYW5cIDsKK+mdouWtkCA+IG1lbnRzdVwgOwor6Ky55ZGIID4ga2ludGVpXCA7CivmlbDmnpogPiBzdXVtYWlcIDsKK+mbqOaoiyA+IGFtYWRvaVwgOwor5pen5aSrID4ga3l1dWZ1XCA7Civml6flpKIgPiBreXV1bXVcIDsKK+mbhOa4viA+IHl1dWtvblwgOwor57mB5piMID4gaGFuam91XCA7CivmlL7mtaogPiBob3Vyb3VcIDsKK+e2mueovyA+IHpva2tvdVwgOwor6ZuR5rKTID4gemF0dG91XCA7CivopIfpn7MgPiBmdWt1b25cIDsKK+aYjuWQmyA+IG1laWt1blwgOwor5pes5aCxID4ganVucG91XCA7Civpmbrnm7ggPiBrZW5zb3VcIDsKK+eEoeeyviA+IGJ1c2hvdVwgOwor6K2m5LmXID4ga2Vpam91XCA7CivorLnljrMgPiBraW5nZW5cIDsKK+eEtueoiyA+IHNhaG9kb1wgOwor54m55YuZID4gdG9rdW11XCA7Civnianlk4EgPiBidXBwaW5cIDsKK+itpuS4liA+IGtlaXNlaVwgOwor5aKX55SjID4gem91c2FuXCA7CivmkI3ph5EgPiBzb25raW5cIDsKK+mdkuWxsSA+IHNlaXphblwgOwor54m55Yq5ID4gdG9ra291XCA7Civoq7jlrZAgPiBzaG9zaGlcIDsKK+eJveWItiA+IGtlbnNlaVwgOwor5aW95aSpID4ga291dGVuXCA7Civnibnlip8gPiB0b2trb3VcIDsKK+WkieabtCA+IGhlbmtvdVwgOwor6ZW36ZaRID4gbm9kb2thXCA7Civoqp7ml48gPiBnb3pva3VcIDsKK+irluW8gSA+IHJvbmJlblwgOwor5pel5aCxID4gbmlwcG91XCA7CivploDpkZEgPiBtb25rYW5cIDsKK+Wkp+aMmSA+IHRhaWt5b1wgOwor5aCV6JC9ID4gZGFyYWt1XCA7CivplqLpgKMgPiBrYW5yZW5cIDsKK+eFrueJqSA+IG5pbW9ub1wgOwor5peF5a+dID4gdGFiaW5lXCA7Civlq4zjgIUgPiBpeWFpeWFcIDsKK+aUvuawtCA+IGhvdXN1aVwgOwor5piH5Y+ZID4gc2hvdWpvXCA7Civntbnns7ggPiBrZW5zaGlcIDsKK+mZjeetiSA+IGtvdXRvdVwgOwor6Zmz55quID4gY2hpbnBpXCA7CivmlbTmlokgPiBzZWlzZWlcIDsKK+aVtOaVsCA+IHNlaXN1dVwgOwor5aSn5oq1ID4gdGFpdGVpXCA7CivntKvomK0gPiBzaGlyYW5cIDsKK+mWi+mKgCA+IGthaWdpblwgOwor54Sh562WID4gbXVzYWt1XCA7CivorKblkrMgPiBrZWlnYWlcIDsKK+WmpeWNlCA+IGRha3lvdVwgOwor5paO5oiSID4gc2Fpa2FpXCA7CivlpKnmiY0gPiB0ZW5zYWlcIDsKK+acq+OAhSA+IHN1ZXp1ZVwgOwor5aWJ5bmjID4gaG91aGVpXCA7CivlpKfmioAgPiBvb3dhemFcIDsKK+eyvumMrCA+IHNlaXJlblwgOwor5pen5ZyfID4ga3l1dWRvXCA7Civpm7vmlq0gPiBkZW5kYW5cIDsKK+mcsOW8viA+IHNhbmRhblwgOwor5pWZ5qGIID4ga3lvdWFuXCA7CivlpKnmiJAgPiB0ZW5zZWlcIDsKK+e5iuaMhyA+IHNlbnNoaVwgOwor5aaZ5ZGzID4gbXlvdW1pXCA7Civpm7vmlocgPiBkZW5idW5cIDsKK+Wkp+aIpiA+IHRhaXNlblwgOwor6Ku45aeJID4gc2hvc2hpXCA7Civop6PnrZQgPiBrYWl0b3VcIDsKK+aYjuWInSA+IG1laXNob1wgOwor57We572qID4ga291emFpXCA7CivlpKfmiJAgPiB0YWlzZWlcIDsKK+eEoeeqriA+IG11a3l1dVwgOwor5paH5omNID4gYnVuc2FpXCA7CivmmKjku4ogPiBzYWtrb25cIDsKK+eyvumKhSA+IHNlaWRvdVwgOwor5aSJ5pWwID4gaGVuc3V1XCA7Civntajnt54gPiBqdXV0YW5cIDsKK+aWueWvuCA+IGhvdXN1blwgOwor6KqT5paHID4gc2VpbW9uXCA7CivlpInmlLkgPiBoZW5rYWlcIDsKK+aUueatoyA+IGthaXNlaVwgOwor57mK5omLID4gc2Vuc2h1XCA7CivlpKfmhbYgPiB0YWlrZWlcIDsKK+mbtuaVlyA+IHJlaWhhaVwgOwor6ZaT6YGTID4ga2FuZG91XCA7Civoo73pmbYgPiBzZWl0b3VcIDsKK+aWreW0liA+IGRhbmdhaVwgOwor6KWv6KGjID4gc2hpbicnaVwgOwor5aWl5aaZID4gb3VteW91XCA7Civnt4/ngrkgPiBzb3V0ZW5cIDsKK+aUv+aoqSA+IHNlaWtlblwgOwor6Zuq5pmvID4gc2Vra2VpXCA7Civmk43nn60gPiBzb3V0YW5cIDsKK+e0sOiPjCA+IHNhaWtpblwgOwor5pWj5paHID4gc2FuYnVuXCA7CivlpKnmgbUgPiB0ZW5rZWlcIDsKK+aVo+aVoyA+IHNhbnphblwgOwor5aSp5oGpID4gdGVuJydvblwgOwor5aSn5oKjID4gdGFpa2FuXCA7Civmlq3lsaQgPiBkYW5zb3VcIDsKK+Wcn+m+jSA+IG1vZ3VyYVwgOwor57im5patID4ganV1ZGFuXCA7Civlo7DmnJsgPiBzZWlib3VcIDsKK+ismuWPtyA+IHNoaWdvdVwgOwor5aSp5oCnID4gdGVuc2VpXCA7CivpnZLlpKkgPiBzZWl0ZW5cIDsKK+mbu+aOoiA+IGRlbnRhblwgOwor6Kej56aBID4ga2Fpa2luXCA7CivlpInmj5sgPiBoZW5rYW5cIDsKK+aYj+WAkiA+IGtvbnRvdVwgOwor5pyX44CFID4gcm91cm91XCA7Civoqr/luqYgPiBjaG91ZG9cIDsKK+Wls+WbmiA+IGpvc2h1dVwgOwor5aSr5b25ID4gYnV5YWt1XCA7CivpmYTnpaggPiBmdWh5b3VcIDsKK+aWsOWtlyA+IHNoaW5qaVwgOwor5pKa57O4ID4gbmVuc2hpXCA7CivlpKflv5cgPiB0YWlzaGlcIDsKK+aWreWumiA+IGRhbnRlaVwgOwor6KuW5a6aID4gcm9udGVpXCA7Civnsonpm6ogPiBrb3l1a2lcIDsKK+eyvumBuCA+IHNlaXNlblwgOwor5aG155WMID4gamlua2FpXCA7Civpm4Xmpb0gPiBnYWdha3VcIDsKK+mciuaEnyA+IHJlaWthblwgOwor5pC66KGMID4ga2Vpa291XCA7Civoq5blrZ8gPiByb25tb3VcIDsKK+aXpeWSjCA+IGhpeW9yaVwgOwor57ay54q2ID4gbW91am91XCA7Civoqpjmi5AgPiB5dXVrYWlcIDsKK+WjsOaYjiA+IHNlaW1laVwgOwor5aSn5b2iID4gb29neW91XCA7Civpm6PmlocgPiBuYW5idW5cIDsKK+irp+WjsCA+IGthaXNlaVwgOwor57Gz6aOvID4gYmVpaGFuXCA7CivntrLniYggPiBhbWloYW5cIDsKK+WjsuaWhyA+IGJhaWJ1blwgOwor5pel5ZCRID4gaGluYXRhXCA7Civnsr7ovrIgPiBzZWlub3VcIDsKK+aWsOWppiA+IHNoaW5wdVwgOwor5aWq5ZueID4gZGFra2FpXCA7CivngavotrMgPiBoaWFzaGlcIDsKK+eEpueciSA+IHNob3ViaVwgOwor5pS+5qChID4gaG91a291XCA7CivpmLLnqbogPiBib3VrdXVcIDsKK+WkqeW6lSA+IHRlbnRlaVwgOwor5aSq5bmzID4gdGFpaGVpXCA7Civoqq3lvowgPiBkb2t1Z29cIDsKK+aXpeWPgiA+IG5pc3NhblwgOwor6Zqb5ravID4gc2FpZ2FpXCA7Civml4vlm54gPiBzZW5rYWlcIDsKK+WlpeWcsCA+IG9rdWNoaVwgOwor5aSp5bmzID4gdGVuYmluXCA7CivpnIrmgKcgPiByZWlzZWlcIDsKK+Wkp+W6lyA+IG9vZGFuYVwgOwor5aSW5oKjID4gZ2Fpa2FuXCA7Civpm5Hmm7ggPiB6YXNzaG9cIDsKK+mWo+itsCA+IGtha3VnaVwgOwor54Gw6LKdID4gaGFpZ2FpXCA7CivlpInmiJAgPiBoZW5zZWlcIDsKK+WkqeW4nSA+IHRlbnRlaVwgOwor57WM57eaID4ga2Vpc2VuXCA7CivniankvZMgPiBtb3R0YWlcIDsKK+Wkp+W5hSA+IG9vaGFiYVwgOwor57WM57a4ID4ga2VpcmluXCA7CivmmI7kuLsgPiBtZWlzaHVcIDsKK+Wkp+W4qyA+IGRhaXNoaVwgOwor5aSp5belID4gdGVua291XCA7CivlpKfluJ0gPiB0YWl0ZWlcIDsKK+ijvemMrCA+IHNlaXJlblwgOwor5aaE5YuVID4gbW91ZG91XCA7CivnhJTnoZ0gPiBlbnNob3VcIDsKK+e1kOe0jSA+IHl1aW5vdVwgOwor5peF5ZujID4gcnlvZGFuXCA7CivnuYHlv5kgPiBoYW5ib3VcIDsKK+WcsOmrqiA+IGppZ2FtaVwgOwor6Ziy56amID4gYm91Z3lvXCA7CivntLDog54gPiBzYWlib3VcIDsKK+eJqeS7tiA+IGJ1a2tlblwgOwor5aSp5bauID4gdGVua2VuXCA7Civoo73pi7wgPiBzZWlrb3VcIDsKK+aXpeWLpCA+IG5pa2tpblwgOwor5aSn5benID4gdGFpa291XCA7CivngrnojLYgPiB0ZW5jaGFcIDsKK+aXrOWIiiA+IGp1bmthblwgOwor57SF6Je7ID4ga291c291XCA7CivmlrDlpYcgPiBzaGlua2lcIDsKK+mZtueEtiA+IHRvdXplblwgOwor6ZW36YCUID4gY2hvdXRvXCA7CivmkZjoir0gPiB0ZWtpZ2FcIDsKK+WkieaFiyA+IGhlbnRhaVwgOwor5o+b6YeRID4ga2Fua2luXCA7CivmlZnmjoggPiBreW91anVcIDsKK+aVheaXpyA+IGtva3l1dVwgOwor6ZuE5p2+ID4gb21hdHN1XCA7Civml6nlh7ogPiBoYXlhZGVcIDsKK+Wlh+WmmSA+IGtpbXlvdVwgOwor5aSW5b6EID4gZ2Fpa2VpXCA7CivlpJblvoEgPiBnYWlzZWlcIDsKK+aOpemgrSA+IHNldHRvdVwgOwor5aSW5b2iID4gZ2Fpa2VpXCA7CivoqJPngrkgPiBrdW50ZW5cIDsKK+irluWkliA+IHJvbmdhaVwgOwor6ZmQ55WMID4gZ2Vua2FpXCA7CivlpJzlupcgPiB5b21pc2VcIDsKK+e1g+e3miA+IGdlbnNlblwgOwor6Ku+5ZCmID4gZGFrdWhpXCA7CivmjqLpoYwgPiB0YW5kYWlcIDsKK+e5iuW3pyA+IHNlbmtvdVwgOwor54Sh55ebID4gbXV0c3V1XCA7CivnhKHnl4UgPiBtdWJ5b3VcIDsKK+aXpeWIiiA+IG5pa2thblwgOwor5pWR5o+0ID4ga3l1dWVuXCA7Civoq5blo4cgPiByb25kYW5cIDsKK+Wjn+aWrSA+IHJvdWRhblwgOwor54mH5YiDID4ga2F0YWhhXCA7CivmlbXlvbEgPiB0ZWtpZWlcIDsKK+e1ueebriA+IGtpbnVtZVwgOwor54Wu5rGBID4gbmlqaXJ1XCA7Civoo77ph44gPiBzdXNvbm9cIDsKK+iotOaxgiA+IHNva3l1dVwgOwor54WJ54KtID4gcmVudGFuXCA7CivpnIfluqYgPiBzaGluZG9cIDsKK+aVtOW9oiA+IHNlaWtlaVwgOwor5aSc5biCID4geW9pY2hpXCA7CivlopfmuJsgPiB6b3VnZW5cIDsKK+mbgeabuCA+IGdhbnNob1wgOwor57mD5bivID4gaG91dGFpXCA7CivoqanmlocgPiBzaGlidW5cIDsKK+WkieaApyA+IGhlbnNlaVwgOwor6KaL6IGeID4ga2VubW9uXCA7CivlpKflsbEgPiB0YWl6YW5cIDsKK+iruOWQmyA+IHNob2t1blwgOwor6Kuu5ZWPID4gc2hpbW9uXCA7CivplqLopb8gPiBrYW5zYWlcIDsKK+mVt+i6ryA+IGNob3VrdVwgOwor5aSn5bGkID4gdGFpc291XCA7CivpnJzlrrMgPiBzb3VnYWlcIDsKK+e4hOaWhyA+IGpvdW1vblwgOwor5pel5YWJID4gbmlra291XCA7CivmlLnmmJMgPiBrYWlla2lcIDsKK+aXp+WEgCA+IGt5dXVnaVwgOwor5aSn5bC9ID4gZGFpamluXCA7Civlo67mjJkgPiBzb3VreW9cIDsKK+e0heiRiSA+IG1vbWlqaVwgOwor5pS+5pWjID4gaG91c2FuXCA7Civmlo7lrq4gPiBzYWlndXVcIDsKK+imi+iAhSA+IGtlbnNoYVwgOwor6Zuj5omAID4gbmFuc2hvXCA7CivmlZfmiKYgPiBoYWlzZW5cIDsKK+WlquWPliA+IGRhc3NodVwgOwor5pG457SiID4gbW9zYWt1XCA7CivniYDlh6AgPiBzaG91Z2lcIDsKK+WkquWuiCA+IHRhaXNodVwgOwor5paJ5bCEID4gc2Vpc2hhXCA7CivntbHnm6MgPiB0b3VrYW5cIDsKK+Wkp+WvkiA+IGRhaWthblwgOwor5Z2K6ZaTID4gYm91a2FuXCA7CivlpKvlrZAgPiBmdXVzaGlcIDsKK+WkqeWuiCA+IHRlbnNodVwgOwor5aSJ5b2iID4gaGVua2VpXCA7CivntKDogowgPiBzdWhhZGFcIDsKK+mbhOaWrSA+IHl1dWRhblwgOwor5aSq5a2XID4gZnV0b2ppXCA7CivlpKrlrZAgPiB0YWlzaGlcIDsKK+WkqeWtqyA+IHRlbnNvblwgOwor6ZuR5pCNID4gemFzc29uXCA7CivplpHoq4cgPiBrYW5kYW5cIDsKK+aXpeWCmCA+IGhpZ2FzYVwgOwor5aSn5a6XID4gdGFpc291XCA7CivlpKnlrZAgPiB0ZW5zaGlcIDsKK+mdqeWFtyA+IGthd2FndVwgOwor6Z2i5YmNID4gbWVuemVuXCA7CivpnIrls7AgPiByZWlob3VcIDsKK+mat+abuCA+IHJlaXNob1wgOwor6KeS55quID4ga2FrdWhpXCA7CivorITlhpkgPiB0b3VzaGFcIDsKK+aOoumZuiA+IHRhbmtlblwgOwor6KaW57eaID4gc2hpc2VuXCA7CivmlbDlubQgPiBzdXVuZW5cIDsKK+WlruWKsSA+IGZ1bnJlaVwgOwor6Z2e5YqbID4gaGlyaWtpXCA7Civoq63lkYogPiB5dWtva3VcIDsKK+mWi+ismyA+IGthaWtvdVwgOwor5paH5a6YID4gYnVua2FuXCA7Civml6zkvZkgPiBqdW4nJ3lvXCA7Civpmo7mrrUgPiBrYWlkYW5cIDsKK+mdkuWPsiA+IHNlaXNoaVwgOwor57SZ6IOMID4gc2hpaGFpXCA7CivntIXojLYgPiBrb3VjaGFcIDsKK+e0sOe3uyA+IHNhaWNoaVwgOwor5Z+L6JS1ID4gbWFpem91XCA7Civoo73pgKAgPiBzZWl6b3VcIDsKK+mciuWxsSA+IHJlaXphblwgOwor54ax5oimID4gbmVzc2VuXCA7Civoo4/ploAgPiB1cmFtb25cIDsKK+WkieW5uyA+IGhlbmdlblwgOwor6ZyK5bGLID4gdGFtYXlhXCA7CivlopfmsLQgPiB6b3VzdWlcIDsKK+ism+S4rSA+IGtvdWp1dVwgOwor6Zui5oSBID4gcmlzaHV1XCA7Civpm7vlt6UgPiBkZW5rb3VcIDsKK+aVo+W8viA+IHNhbmRhblwgOwor5pac5aGUID4gc2hhdG91XCA7CivlpJrlsJEgPiB0YXNob3VcIDsKK+WknOWvkiA+IHlvemFtdVwgOwor6Ku35Yi6ID4gZnV1c2hpXCA7Civloannha4gPiBzaGlvbmlcIDsKK+WknOWuriA+IHlvbWl5YVwgOwor6Zyy5Zu9ID4gcm9rb2t1XCA7Civoq7jliIMgPiBtb3JvaGFcIDsKK+WkluWxpCA+IGdhaXNvdVwgOwor5Z+L6JGsID4gbWFpc291XCA7Civntr/mr5sgPiB3YXRhZ2VcIDsKK+e1kOekviA+IGtlc3NoYVwgOwor6KSS6LK2ID4gaG91aGVuXCA7CivntK/ntK8gPiBydWlydWlcIDsKK+WcsOmciiA+IGNoaXJlaVwgOwor6ZyK5a6dID4gcmVpaG91XCA7CivlnLDpnIcgPiBqaXNoaW5cIDsKK+WgseefpSA+IGhvdWNoaVwgOwor57Sw57O4ID4gc2Fpc2hpXCA7CivlpJzlraYgPiB5YWdha3VcIDsKK+iqpOWvqSA+IGdvc2hpblwgOwor5pel5LyKID4gbmljaGlpXCA7CivpmLLnlqsgPiBib3Vla2lcIDsKK+inkueVjCA+IGtha2thaVwgOwor5pWP5oSfID4gYmlua2FuXCA7CivmlbflsYUgPiBzaGlraWlcIDsKK+eCreiCuiA+IHRhbmhhaVwgOwor5aW95L6LID4ga291cmVpXCA7CivlpZTlkb0gPiBob25tZWlcIDsKK+eFmeavkiA+IGVuZG9rdVwgOwor6KqH5by1ID4ga29jaG91XCA7CivnhrHmhI8gPiBuZXRzdWlcIDsKK+aWueWQkSA+IGhvdWtvdVwgOwor57Sr57S6ID4gc2hpa29uXCA7CivlnLDpmo4gPiBjaGlrYWlcIDsKK+aVmeW+kiA+IGt5b3V0b1wgOwor6KaP57SEID4ga2l5YWt1XCA7Civoq7jlhYQgPiBzaG9rZWlcIDsKK+iruOWFgyA+IHNob2dlblwgOwor5pep5LiWID4gc291c2VpXCA7CivplovopZ8gPiBrYWlraW5cIDsKK+aWnOWdkSA+IHNoYWtvdVwgOwor57ir5belID4gaG91a291XCA7Civml4XliLggPiByeW9rZW5cIDsKK+mao+adkSA+IHJpbnNvblwgOwor5aSp5aSWID4gdGVuZ2FpXCA7CivoqanmiY0gPiBzaGlzYWlcIDsKK+WgoeekgSA+IGhvc2hvdVwgOwor5aSp5aSJID4gdGVucGVuXCA7CivpnaLlgJIgPiBtZW5kb3VcIDsKK+aXpeS4rSA+IGhpbmFrYVwgOwor5aSp5aOwID4gdGVuc2VpXCA7Civml4vlhYkgPiBzZW5rb3VcIDsKK+WlkeWQiCA+IGtlaWdvdVwgOwor6ZyK5aqSID4gcmVpYmFpXCA7Civnt5rmnaEgPiBzZW5qb3VcIDsKK+ino+eJiCA+IGthaWhhblwgOwor5pW05a65ID4gc2VpeW91XCA7CivmlrDlkbMgPiBzaGlubWlcIDsKK+WkqeWjjCA+IHRlbmpvdVwgOwor5aSn5aSJID4gdGFpaGVuXCA7CivntprmvJQgPiB6b2t1ZW5cIDsKK+WjruW/qyA+IHNvdWthaVwgOwor6KO46LqrID4gcmFzaGluXCA7CivnsbPpiq0gPiBiZWlzZW5cIDsKK+eGseaApyA+IG5lc3NlaVwgOwor6Kqe5a2mID4gZ29nYWt1XCA7CivoqpjlsI4gPiB5dXVkb3VcIDsKK+mbkeaEnyA+IHpha2thblwgOwor5paO5aC0ID4gc2Fpam91XCA7CivopoHntrEgPiB5b3Vrb3VcIDsKK+e0r+eulyA+IHJ1aXNhblwgOwor5paH5aOrID4gYnVuc2hpXCA7Civngrnnt5ogPiB0ZW5zZW5cIDsKK+Wls+S9kyA+IG55b3RhaVwgOwor57iB5oiaID4gZW5zZWtpXCA7CivpnaLkvZMgPiBtZW50ZWlcIDsKK+aWh+WjhyA+IGJ1bmRhblwgOwor5aWJ5ZGIID4gaG91dGVpXCA7CivmkoPnoLQgPiBnZWtpaGFcIDsKK+eyvuijvSA+IHNlaXNlaVwgOwor6Z2i5LyaID4gbWVua2FpXCA7CivntKHns7ggPiBib3VzaGlcIDsKK+WkqeWggiA+IHRlbmRvdVwgOwor6Zui5bqKID4gcmlzaG91XCA7CivlopPmqJkgPiBib2h5b3VcIDsKK+majuairyA+IGthaXRlaVwgOwor5aOy5bqXID4gYmFpdGVuXCA7Civoq5blj6IgPiByb25zb3VcIDsKK+iruOS+ryA+IHNob2tvdVwgOwor6Zu75a2QID4gZGVuc2hpXCA7CivniLXkvY0gPiBzaGFrdWlcIDsKK+ilv+e1jCA+IHNlaWtlaVwgOwor6Kmp5oOzID4gc2hpc291XCA7CivloYrnirYgPiBrYWlqb3VcIDsKK+ims+ebuCA+IGthbnNvdVwgOwor5aWz5Lq6ID4gbnlvbmluXCA7CivmlLnmhrIgPiBrYWlrZW5cIDsKK+Wkp+WfnyA+IHRhaWlraVwgOwor57W254mIID4gemVwcGFuXCA7Civpm6rltKkgPiBuYWRhcmVcIDsKK+ipqeaDhSA+IHNoaWpvdVwgOwor5aSW5aeTID4gZ2Fpc2VpXCA7CivoqIDmtbcgPiBnZW5rYWlcIDsKK+eFp+afuyA+IHNob3VzYVwgOwor5pS/5oOFID4gc2Vpam91XCA7CivntJvntJsgPiBmdW5wdW5cIDsKK+Wlj+WKuSA+IHNvdWtvdVwgOwor5aOu5bm0ID4gc291bmVuXCA7CivlpKflnosgPiBvb2dhdGFcIDsKK+WjsOW4ryA+IHNlaXRhaVwgOwor5LiK44CFID4gam91am91XCA7CivlpY/lip8gPiBzb3Vrb3VcIDsKK+e0lOe2vyA+IGp1bm1lblwgOwor5aSp5ZywID4gdGVuY2hpXCA7Civloanmua8gPiBzaGlveXVcIDsKK+ipsuW9kyA+IGdhaXRvdVwgOwor5Z2R6YGTID4ga291ZG91XCA7CivlpbPkuK0gPiBqb2NodXVcIDsKK+a/gOmrmCA+IGdla2tvdVwgOwor5o6i6YmxID4gdGFua291XCA7Civnt4/mm7ggPiBzb3VzaG9cIDsKK+WkluWllyA+IGdhaXRvdVwgOwor57a/5qOSID4gbWVuYm91XCA7CivmlK/miYAgPiBzaGlzaG9cIDsKK+aOoemJsSA+IHNhaWtvdVwgOwor5aSn5ZywID4gZGFpY2hpXCA7CivntJTntbkgPiBqdW5rZW5cIDsKK+aUvuaBoyA+IGhvdXNoaVwgOwor5paH5Z6LID4gYnVua2VpXCA7CivploDooZsgPiBtb24nJ2VpXCA7Civpm4zmgKcgPiBzaGlzZWlcIDsKK+S4h+OAhSA+IG1hbm1hblwgOwor5Z6C6KiTID4gc3Vpa3VuXCA7CivlpKflnI8gPiB0YWlrZW5cIDsKK+mYsueKryA+IGJvdWhhblwgOwor6KqN5a6aID4gbmludGVpXCA7CivngavolqwgPiBrYXlha3VcIDsKK+eGseW4ryA+IG5ldHRhaVwgOwor57e05oiQID4gcmVuc2VpXCA7CivnhJrngasgPiB0YWtpYmlcIDsKK+aUueaCqiA+IGthaWFrdVwgOwor5pS+5b+1ID4gaG91bmVuXCA7CivlpYfli50gPiBraXNob3VcIDsKK+mciuWgtCA+IHJlaWpvdVwgOwor57SU57O7ID4ganVua2VpXCA7CivlpaLkvoggPiBzaGFzaGlcIDsKK+WlpeS8nSA+IG9rdWRlblwgOwor5aGp5rW0ID4gZW55b2t1XCA7Civoq4flkIggPiBkYW5nb3VcIDsKK+S4geOAhSA+IHRvdXRvdVwgOwor6Kmp5b2iID4gc2hpa2VpXCA7CivpnIrln58gPiByZWlpa2lcIDsKK+irluWIpCA+IHJvbnBhblwgOwor54Wu5pa5ID4gbmlrYXRhXCA7CivnhormiYsgPiBrdW1hZGVcIDsKK+e0lOeyiyA+IGp1bnN1aVwgOwor6Kqt5ZuzID4gZG9rdXp1XCA7Civpm4TmgKcgPiB5dXVzZWlcIDsKK+eBq+iTiyA+IGhpYnV0YVwgOwor6KOF6YeYID4gc291dGVpXCA7Civoqr/lkowgPiBjaG91d2FcIDsKK+ioguatoyA+IHRlaXNlaVwgOwor54Wn5pigID4gc2hvdWVpXCA7Civpm4Tlv5cgPiB5dXVzaGlcIDsKK+iqv+WRsyA+IGNob3VtaVwgOwor5o6y6LyJID4ga2Vpc2FpXCA7Civml4XkurogPiByeW9qaW5cIDsKK+aXheS6rSA+IHJ5b3RlaVwgOwor5o+b6KiAID4ga2FuZ2VuXCA7Civnt4/mlbAgPiBzb3VzdXVcIDsKK+mciuWcsCA+IHJlaWNoaVwgOwor5o+a6KiAID4geW91Z2VuXCA7CivlpKfllqogPiB0YWlzb3VcIDsKK+mbkeW3viA+IHpvdWtpblwgOwor5aSp5ZWTID4gdGVua2VpXCA7CivpmoXmnKggPiBzdW1pa2lcIDsKK+WlieWFrCA+IGhvdWtvdVwgOwor57eP5pSsID4gc291cmFuXCA7Civnt6jmiJAgPiBoZW5zZWlcIDsKK+imqueWjiA+IHNoaW5zb1wgOwor5pa55L6/ID4gaG91YmVuXCA7Civpm6Llrq4gPiByaWt5dXVcIDsKK+e1oueImyA+IGtlbnJhblwgOwor5aSW5ZywID4gZ2FpY2hpXCA7CivlpJblnKggPiBnYWl6YWlcIDsKK+WhqeawlyA+IHNoaW9rZVwgOwor5o6l6L+RID4gc2Vra2luXCA7Civpm4TlvIEgPiB5dXViZW5cIDsKK+exs+i7jSA+IGJlaWd1blwgOwor6Kmp5be7ID4gc2hpa2FuXCA7CivmlLnlu4MgPiBrYWloYWlcIDsKK+majuaVsCA+IGthaXN1dVwgOwor5ZyS6ZW3ID4gZW5jaG91XCA7CivlnLDph5EgPiBqaWdhbmVcIDsKK+e3qeaFoiA+IGthbm1hblwgOwor6Zu75aCxID4gZGVucG91XCA7Civoqr/ljbAgPiBjaG91aW5cIDsKK+mYsueBvSA+IGJvdXNhaVwgOwor5aSp5ZG9ID4gdGVubWVpXCA7CivnsaTpgYsgPiBrdWppdW5cIDsKK+ijnOi2syA+IGhvc29rdVwgOwor5r+B6Z+zID4gZGFrdW9uXCA7CivlpKflkowgPiB5YW1hdG9cIDsKK+irh+WIpCA+IGRhbnBhblwgOwor5pW05ZywID4gc2VpY2hpXCA7CivlpKflkb0gPiB0YWltZWlcIDsKK+mVt+ibhyA+IGNob3VkYVwgOwor5pa55LuKID4gaG91a29uXCA7Civmj5DoqIAgPiB0ZWlnZW5cIDsKK+iovOaLoCA+IHNob3Vrb1wgOwor57SF57KJID4gYmVuaWtvXCA7CivlpKrlkI4gPiB0YWlrb3VcIDsKK+WcsOmFkiA+IGppemFrZVwgOwor6Zq75b2xID4gc2VraWVpXCA7Civlo6vlrpggPiBzaGlrYW5cIDsKK+Wcn+mNiyA+IGRvbmFiZVwgOwor5aSp5ZCOID4gdGVua291XCA7CivngbDoibIgPiBoYWlpcm9cIDsKK+WkqeWPsCA+IHRlbmRhaVwgOwor57O757WxID4ga2VpdG91XCA7CivlpKflkJsgPiB0YWlrdW5cIDsKK+mZsOaguCA+IGlua2FrdVwgOwor5aSn5ZCMID4gZGFpZG91XCA7CivpmrflvpMgPiByZWlqdXVcIDsKK+e0sOebriA+IGhvc29tZVwgOwor5pSv5byBID4gc2hpYmVuXCA7Civmj5DopoEgPiB0ZWl5b3VcIDsKK+eBq+iKsSA+IGhpYmFuYVwgOwor5aSJ5Z6LID4gaGVua2VpXCA7CivntJTnqK4gPiBqdW5zaHVcIDsKK+mbkeWxhSA+IHpha2t5b1wgOwor6ZmN5rC0ID4ga291c3VpXCA7CivmlrnkuIggPiBob3Vqb3VcIDsKK+Wfi+e3miA+IG1haXNlblwgOwor5pWw5ZueID4gc3V1a2FpXCA7CivmloflkI0gPiBidW5tZWlcIDsKK+WlleS4liA+IGVraXNlaVwgOwor57ep5oCgID4ga2FudGFpXCA7Civop6Pms5UgPiBrYWlob3VcIDsKK+aUr+W6lyA+IHNoaXRlblwgOwor5Z+655+zID4ga2lzZWtpXCA7Civoo73ooosgPiBzZWl0YWlcIDsKK+mgu+OAhSA+IGhpbnBpblwgOwor5pac5YWJID4gc2hha291XCA7CivlpYnkvZMgPiBob3V0YWlcIDsKK+mZhOazqCA+IGZ1Y2h1dVwgOwor5pal5YCZID4gc2Vra291XCA7CivplqLoga8gPiBrYW5yZW5cIDsKK+WlieS8uiA+IGhvdXNoaVwgOwor5aSn5Y2KID4gdGFpaGFuXCA7CivopJDol7sgPiBrYXNzb3VcIDsKK+eFveaDhSA+IHNlbmpvdVwgOwor5pW15Za2ID4gdGVraWVpXCA7CivnhKHmr5IgPiBtdWRva3VcIDsKK+Wkp+WMmSA+IG9vc2FqaVwgOwor5Zyo6YO3ID4gemFpZ291XCA7CivntbbmtbcgPiB6ZWtrYWlcIDsKK+mbhOWzsCA+IHl1dWhvdVwgOwor5aWJ5LuVID4gaG91c2hpXCA7CivntI3nqI4gPiBub3V6ZWlcIDsKK+Wcn+mHnCA+IGRvZ2FtYVwgOwor5aSn5YuiID4gdGFpemVpXCA7CivlpY/kuIogPiBzb3Vqb3VcIDsKK+aWreS6pCA+IGRhbmtvdVwgOwor57eS5oimID4gY2hvc2VuXCA7CivmlL7lsIQgPiBob3VzaGFcIDsKK+Wkp+WLhyA+IHRhaXl1dVwgOwor6KaW55WMID4gc2hpa2FpXCA7Civoq5bkuokgPiByb25zb3VcIDsKK+ijs+ijviA+IG1vc3Vzb1wgOwor6Kmm5bCEID4gc2hpc2hhXCA7CivpmaTmoLggPiBqb2tha3VcIDsKK+Wkp+WKnyA+IHRhaWtvdVwgOwor6Kej5q+SID4gZ2Vkb2t1XCA7CivoqanlrpcgPiBzaGlzb3VcIDsKK+aWh+WLoiA+IGJ1bnNlaVwgOwor6Zmw5pqmID4gaW5yZWtpXCA7CivnhKHmrLIgPiBtdXlva3VcIDsKK+WkquWInSA+IHRhaXNob1wgOwor5pWj5ZyoID4gc2FuemFpXCA7Civngq3npKYgPiB0YW5rb3VcIDsKK+eBq+iEmiA+IGhpYXNoaVwgOwor6Kqj5ZGKID4gYnVrb2t1XCA7CivlpKnliJEgPiB0ZW5rZWlcIDsKK+WkqeWIhiA+IHRlbmJ1blwgOwor5aOu5aSnID4gc291ZGFpXCA7CivoobDpoL0gPiBzdWl0YWlcIDsKK+eCueedmyA+IHRlbnNlaVwgOwor5aSn5YiGID4gZGFpYnVuXCA7Civlo67lo6sgPiBzb3VzaGlcIDsKK+aVl+WgsSA+IGhhaWhvdVwgOwor5aSW5ZCRID4gZ2Fpa291XCA7CivlpKfliIAgPiBkYWl0b3VcIDsKK+aUu+WuiCA+IGtvdXNodVwgOwor6ZuR5amaID4gemFra29uXCA7CivmkI3ogJcgPiBzb25tb3VcIDsKK+eCueecvCA+IHRlbmdhblwgOwor5Zyn6L+rID4gYXBwYWt1XCA7CivlpJblj7IgPiBnYWlzaGlcIDsKK+Wkp+WHoSA+IG9veW9zb1wgOwor5r+r6YCgID4gcmFuem91XCA7CivnhpTlsqkgPiB5b3VnYW5cIDsKK+maj+aJgCA+IHp1aXNob1wgOwor5pS55a6aID4ga2FpdGVpXCA7Civpm4XlrqIgPiBnYWtha3VcIDsKK+e1seayuyA+IHRvdWNoaVwgOwor5aSp5YW1ID4gdGVucGVpXCA7CivoprPngrkgPiBrYW50ZW5cIDsKK+maoOW/jSA+IGluJyduaW5cIDsKK+Wkp+WFuCA+IHRhaXRlblwgOwor6Zmk5pyNID4gam9mdWt1XCA7CivlpKflhawgPiB0YWlrb3VcIDsKK+Wkp+WFqCA+IHRhaXplblwgOwor5pW05ZCIID4gc2VpZ291XCA7Civnsr7oiI4gPiBzaG91amFcIDsKK+Wkp+WFhCA+IHRhaWtlaVwgOwor6Kme5a6XID4gc2hpc291XCA7Civlo7Dln58gPiBzZWlpa2lcIDsKK+mbu+WRvSA+IGRlbm1laVwgOwor6KOc6Ki7ID4gaG9jaHV1XCA7CivooaPpo58gPiBpc2hva3VcIDsKK+eEoeanmCA+IGJ1emFtYVwgOwor5pG454mMID4gbW91cGFpXCA7CivmloflhbggPiBidW50ZW5cIDsKK+e3muW9oiA+IHNlbmtlaVwgOwor6ZyK5YmjID4gcmVpa2VuXCA7CivmlbDlkI0gPiBzdXVtZWlcIDsKK+ihqOmfsyA+IGh5b3VvblwgOwor5aSW5YukID4gZ2Fpa2luXCA7CivpnIrliY0gPiByZWl6ZW5cIDsKK+ijnOinkiA+IGhva2FrdVwgOwor6ZqP5oSfID4genVpa2FuXCA7Civngq/nnLwgPiBrZWlnYW5cIDsKK+eFqeaCtiA+IGhhbm1vblwgOwor6KiI5pWwID4ga2Vpc3V1XCA7CivlpJzlh6ogPiB5b25hZ2lcIDsKK+maj+aDsyA+IHp1aXNvdVwgOwor6Ziy5rC0ID4gYm91c3VpXCA7Civmjqjoq5YgPiBzdWlyb25cIDsKK+WkieWQjSA+IGhlbm1laVwgOwor57Wm5rK5ID4ga3l1dXl1XCA7CivoqIDmmI4gPiBnZW5tZWlcIDsKK+WkqeWAmSA+IHRlbmtvdVwgOwor57WC54SJID4gc2h1dWVuXCA7CivnhrHlnosgPiBuZWtrZWlcIDsKK+mbt+WQjSA+IHJhaW1laVwgOwor6Zu35ZCMID4gcmFpZG91XCA7CivpnKfkuK0gPiBtdWNodXVcIDsKK+Wbm+mdoiA+IHNoaW1lblwgOwor57Of57OgID4gc291a291XCA7CivmlbDljYMgPiBzdXVzZW5cIDsKK+aVsOWNgSA+IHN1dWp1dVwgOwor6KaB55SoID4geW91eW91XCA7CivntprmmKAgPiB6b2t1ZWlcIDsKK+mZpOaWpSA+IGpvc2VraVwgOwor6ZuE5ae/ID4geXV1c2hpXCA7CivmlLnlp5MgPiBrYWlzZWlcIDsKK+WkluWIhiA+IGdhaWJ1blwgOwor54WW5oi/ID4gZGFuYm91XCA7CivmlL/lpIkgPiBzZWloZW5cIDsKK+WftOeUnyA+IGhhbnl1dVwgOwor5aSW5Ye6ID4gc290b2RlXCA7Civpm7LlkZEgPiB3YW50YW5cIDsKK+WkleWIiiA+IHl1dWthblwgOwor54Wp5b+ZID4gaGFuYm91XCA7CivntZDmu54gPiBrZXR0YWlcIDsKK+e1qOavryA+IGp1dXRhblwgOwor54KJ56uvID4gcm9iYXRhXCA7Civpm5HloLEgPiB6YXBwb3VcIDsKK+ipqeWjhyA+IHNoaWRhblwgOwor5aSn5L6/ID4gZGFpYmVuXCA7Civntajmr5sgPiBqdXVtb3VcIDsKK+WkqeS9vyA+IHRlbnNoaVwgOwor6Ziy5q2iID4gYm91c2hpXCA7CivntK/niq8gPiBydWloYW5cIDsKK+aOqOioiCA+IHN1aWtlaVwgOwor54Wn5b+cID4gc2hvdW91XCA7CivlpKnkvZMgPiB0ZW50YWlcIDsKK+e4q+WQiCA+IGhvdWdvdVwgOwor6Zu75YuVID4gZGVuZG91XCA7CivnhLbmlq8gPiBzb3Vrb3VcIDsKK+Wkp+S9vyA+IHRhaXNoaVwgOwor6Ki85bemID4gc2hvdXNhXCA7Civlm5vpmqMgPiBzaGlyaW5cIDsKK+mbu+WKuSA+IGRlbmtvdVwgOwor5aSW5YW4ID4gZ2FpdGVuXCA7CivntLDniYcgPiBzYWloZW5cIDsKK+imi+eMvyA+IG1pemFydVwgOwor5aSn5L2TID4gZGFpdGFpXCA7Civlm5vpmoUgPiB5b3N1bWlcIDsKK+WgheeJoiA+IGtlbnJvdVwgOwor54Gr57iEID4gaGluYXdhXCA7CivmlabljpogPiB0b25rb3VcIDsKK+aUueWkiSA+IGthaWhlblwgOwor5aSJ5YuVID4gaGVuZG91XCA7CivnhaflvbEgPiBzaG91ZWlcIDsKK+maj+W+kyA+IHp1aWp1dVwgOwor6ZuE5aSnID4geXV1ZGFpXCA7CivmlofkvosgPiBidW5yZWlcIDsKK+mZjeadvyA+IGtvdWJhblwgOwor5aSn5LyaID4gdGFpa2FpXCA7Civpm6PllY8gPiBuYW5tb25cIDsKK+aVmeWUhiA+IGt5b3VzYVwgOwor5o6i6KiqID4gdGFuYm91XCA7Civmjbvou6IgPiBuZW50ZW5cIDsKK+ihl+mgrSA+IGdhaXRvdVwgOwor5aSn5Lu7ID4gdGFpbmluXCA7Civpm4Tlo64gPiB5dXVzb3VcIDsKK+aWh+S9kyA+IGJ1bnRhaVwgOwor5aSn5LuwID4gb29neW91XCA7CivmlZnlk6EgPiBreW91aW5cIDsKK+Wbs+mMsiA+IHp1cm9rdVwgOwor5aSn5LujID4gZGFpZGFpXCA7CivlpKnkupUgPiB0ZW5qb3VcIDsKK+aOpeimiyA+IHNla2tlblwgOwor6KOP6KWfID4gdXJhZXJpXCA7CivlnJ/otrMgPiBkb3Nva3VcIDsKK+Wkp+S6uiA+IGRhaW5pblwgOwor5paO5Li7ID4gc2Fpc2h1XCA7CivoqJPmiJIgPiBrdW5rYWlcIDsKK+WkluWCtSA+IGdhaXNhaVwgOwor5pWF5Zu9ID4ga29rb2t1XCA7Civmjojos54gPiBqdXNob3VcIDsKK+ipqeWeiyA+IHNoaWtlaVwgOwor6KaL54mpID4gbWltb25vXCA7CivntYzmuIggPiBrZWl6YWlcIDsKK+e3j+W4pSA+IHNvdXN1aVwgOwor5aSp5Li8ID4gdGVuZG9uXCA7CivlpKnkuLsgPiB0ZW5zaHVcIDsKK+Wkp+S5sSA+IHRhaXJhblwgOwor54Kt55SwID4gdGFuZGVuXCA7CivnhafluqYgPiBzaG91ZG9cIDsKK+maiuW9oiA+IHRhaWtlaVwgOwor5Z+O56CmID4gam91c2FpXCA7CivntYLmvJQgPiBzaHV1ZW5cIDsKK+aWh+S6uiA+IGJ1bmppblwgOwor6Kqt5LyaID4gZG9ra2FpXCA7CivlpKfkuZcgPiBkYWlqb3VcIDsKK+WjsuWTgSA+IGJhaWhpblwgOwor5aSp5LiOID4gdGVuJyd5b1wgOwor5aSp5LiKID4gdGVuam91XCA7CivlnYfooaEgPiBraW5rb3VcIDsKK+aUu+WfjiA+IGtvdWpvdVwgOwor5Zyw6KyhID4gaml1dGFpXCA7CivoppbngrkgPiBzaGl0ZW5cIDsKK+aSkuawtCA+IHNhbnN1aVwgOwor6KO96Iy2ID4gc2VpY2hhXCA7Civnga/nsaAgPiB0b3Vyb3VcIDsKK+iqpOS/oSA+IGdvc2hpblwgOwor6Zu75YWJID4gZGVua291XCA7CivlpJzkvL0gPiB5b3RvZ2lcIDsKK+e5i+S6iSA+IGtlaXNvdVwgOwor54Sh5pqXID4gbXV5YW1pXCA7Civoo4HoqLEgPiBzYWlreW9cIDsKK+aTheaWrSA+IHNlbmRhblwgOwor5aSa5L2cID4gdGFzYWt1XCA7Civnh5DlhYkgPiByaW5rb3VcIDsKK+mVt+iAhSA+IGNob3VqYVwgOwor5pWj5YmkID4gc2FuemFpXCA7CivlnLDoqowgPiBjaGlzaGlcIDsKK+WjsuWQjSA+IGJhaW1laVwgOwor6Zm95oCnID4geW91c2VpXCA7CivlpKLkuK0gPiBtdWNodXVcIDsKK+mbt+WFiSA+IHJhaWtvdVwgOwor5aGK5qC5ID4ga2Fpa29uXCA7CivnhJrmm7ggPiBmdW5zaG9cIDsKK+ikque0hSA+IHRhaWtvdVwgOwor5pGC55SfID4gc2Vzc2VpXCA7CivplqLnqbogPiBrYW5rdXVcIDsKK+eEoeaYjiA+IG11bXlvdVwgOwor5pWZ5Yy6ID4ga3lvdWt1XCA7Civnsr7nt7sgPiBzZWljaGlcIDsKK+eyvue3tCA+IHNlaXJlblwgOwor5Zu96YGLID4ga29rdXVuXCA7CivplonntYwgPiBoZWlrZWlcIDsKK+aVmeWMliA+IGt5b3VrYVwgOwor57W55pysID4ga2VucG9uXCA7CivooYDppIUgPiBrZXBwZWlcIDsKK+WkluS8nSA+IGdhaWRlblwgOwor6Zu75YGcID4gZGVudGVpXCA7CivpoIbjgIUgPiBqdW5qdW5cIDsKK+aVsOWApCA+IHN1dWNoaVwgOwor6Zai56iOID4ga2FuemVpXCA7CivmlZnli5kgPiBreW91bXVcIDsKK+aVsOWAjSA+IHN1dWJhaVwgOwor54Sh5paZID4gbXVyeW91XCA7CivlpJzkuK0gPiB5b25ha2FcIDsKK+ino+aYjiA+IGthaW1laVwgOwor54Sh5pW1ID4gbXV0ZWtpXCA7CivmlaPlhbUgPiBzYW5wZWlcIDsKK+e1jOawtCA+IGtlaXN1aVwgOwor5aSW5Lq6ID4gZ2FpamluXCA7CivntJnniYcgPiBzaGloZW5cIDsKK+WkluS6pCA+IGdhaWtvdVwgOwor5aOH5aC0ID4gZGFuam91XCA7CivmlaPlhYkgPiBzYW5rb3VcIDsKK+aNqOi6qyA+IHN1dGVtaVwgOwor6Zqc5a2QID4gc2hvdWppXCA7Civnsr7ntLAgPiBzZWlzYWlcIDsKK+Whl+aWmSA+IHRvcnlvdVwgOwor57Sg54S8ID4gc3V5YWtpXCA7CivntpnmipUgPiBrZWl0b3VcIDsKK+eFmeW5lSA+IGVubWFrdVwgOwor5aSW5LmxID4gZ2FpcmFuXCA7Civpm5Hlk4EgPiB6YXBwaW5cIDsKK+ino+aVoyA+IGthaXNhblwgOwor57K+57OWID4gc2VpdG91XCA7Civpl5jniqwgPiB0b3VrZW5cIDsKK+aTseW6pyA+IGtha3V6YVwgOwor57K+57K+ID4gc2VpemVpXCA7Civop6PmlL4gPiBrYWlob3VcIDsKK+e1tuaZryA+IHpla2tlaVwgOwor6Kmm5ZWPID4gc2hpbW9uXCA7CivoqLHlrrkgPiBreW95b3VcIDsKK+majuWxpCA+IGthaXNvdVwgOwor5Zyw6KOBID4gY2hpc2FpXCA7Civnsr7nsosgPiBzZWlzdWlcIDsKK+eyvueyiSA+IHNlaWZ1blwgOwor5o+657GDID4geW91cmFuXCA7CivmjZXpgLggPiBob2l0c3VcIDsKK+e0m+eEtiA+IGZ1bnplblwgOwor5pWR5YqpID4ga3l1dWpvXCA7Civnsr7nsbMgPiBzZWltYWlcIDsKK+aUueWWhCA+IGthaXplblwgOwor5aSJ5L2TID4gaGVudGFpXCA7CivmlazkvZMgPiBrZWl0YWlcIDsKK+imgeeCuSA+IHlvdXRlblwgOwor5Zyn6KaaID4gYWtrYWt1XCA7CivmlbDkurogPiBzdXVuaW5cIDsKK+mZsOW+syA+IGludG9rdVwgOwor5pWZ5YW3ID4ga3lvdWd1XCA7CivngavnqK4gPiBoaWRhbmVcIDsKK+eCueeCuSA+IHRlbnRlblwgOwor6KiY5bizID4ga2ljaG91XCA7CivoqK3lrpogPiBzZXR0ZWlcIDsKK+aOqOiWpiA+IHN1aXNlblwgOwor54KO55eHID4gZW5zaG91XCA7CivmjoPoqI4gPiBzb3V0b3VcIDsKK+ihhumZoiA+IHNodXVpblwgOwor6Kmp5ZCfID4gc2hpZ2luXCA7Civngrnnga8gPiB0ZW50b3VcIDsKK+eDneawkSA+IGpvdW1pblwgOwor6Kmg5ZSxID4gZWlzaG91XCA7CivlpInkurogPiBoZW5qaW5cIDsKK+e0r+a4myA+IHJ1aWdlblwgOwor57GQ6KO9ID4gdG91c2VpXCA7CivntrHluLggPiBrb3Vqb3VcIDsKK+eyvueuoSA+IHNlaWthblwgOwor57SU54S2ID4ganVuemVuXCA7CivpmLLmmpEgPiBib3VzaG9cIDsKK+eyvueulyA+IHNlaXNhblwgOwor5pWw5LiHID4gc3V1bWFuXCA7CivlnoLnt5ogPiBzdWlzZW5cIDsKK+mWieerryA+IGhlaXRhblwgOwor5aSJ5LmxID4gaGVucmFuXCA7CivplqLnn6UgPiBrYW5jaGlcIDsKK+ipqeWPiyA+IHNoaXl1dVwgOwor57WQ5qeLID4ga2Vra291XCA7Civlo6vliIYgPiBzaGlidW5cIDsKK+mZquW+kyA+IGJhaWp1dVwgOwor6KGj6YmiID4gaWhhdHN1XCA7Civlm5vph40gPiBzaGlqdXVcIDsKK+a9rumfsyA+IGNob3VvblwgOwor6KKr6KaGID4gaGlmdWt1XCA7Civlo7DlhKogPiBzZWl5dXVcIDsKK+mZtuW3pSA+IHRvdWtvdVwgOwor5pWj5LyaID4gc2Fua2FpXCA7CivmjIfpoK0gPiBzaGl0b3VcIDsKK+aUueWQjSA+IGthaW1laVwgOwor54Kv54KvID4ga2Vpa2VpXCA7CivmlLnlj7cgPiBrYWlnb3VcIDsKK+ijvee8tiA+IHNlaWthblwgOwor6KqM5LujID4gc2hpZGFpXCA7Civopb/mvLggPiBzZWl6ZW5cIDsKK+ihsOmAgCA+IHN1aXRhaVwgOwor5pWj5LmxID4gc2FucmFuXCA7CivpmaPlvaIgPiBqaW5rZWlcIDsKK+eCreeBqyA+IHN1bWliaVwgOwor5Zu96LK7ID4ga29rdWhpXCA7CivmlL/lirQgPiBzZWlyb3VcIDsKK+WcsOiZqyA+IG1pbWl6dVwgOwor5aOu5YGlID4gc291a2VuXCA7CivoprPmooUgPiBrYW5iYWlcIDsKK+WbnumBiiA+IGthaXl1dVwgOwor6Kaz5qGcID4ga2FuJydvdVwgOwor5pS75YuiID4ga291c2VpXCA7CivoqozkuIogPiBzaGlqb3VcIDsKK+e0sOawkSA+IHNhaW1pblwgOwor5Zue6YCBID4ga2Fpc291XCA7CivopoHmuK8gPiB5b3Vrb3VcIDsKK+WgheawlyA+IGthdGFnaVwgOwor6ZuE5YuBID4geXV1a2VpXCA7CivlnoLnr4QgPiBzdWloYW5cIDsKK+eEoeaFviA+IG11eW9rdVwgOwor6Zm95a2QID4geW91c2hpXCA7Civpm6Pku7YgPiBuYW5rZW5cIDsKK+mZpOW5lSA+IGpvbWFrdVwgOwor57Wi5paHID4ga2VuYnVuXCA7CivoqJPlsI4gPiBrdW5kb3VcIDsKK+Wbm+i+uiA+IHNoaWhlblwgOwor5pWX5LqhID4gaGFpYm91XCA7Civpm6LkuqwgPiByaWt5b3VcIDsKK+e0heeBryA+IGtvdXRvdVwgOwor5aOy5Lq6ID4gYmFpbmluXCA7CivmlL/lhZogPiBzZWl0b3VcIDsKK+ippuWGmSA+IHNoaXNoYVwgOwor5r2u6ZaTID4gc2hpb21hXCA7Civpm6LkubMgPiByaW55dXVcIDsKK+aUvuWFjSA+IGhvdW1lblwgOwor6KOP6Iq4ID4gdXJhZ2VpXCA7CivmlL7lhYkgPiBob3Vrb3VcIDsKK+ims+acmyA+IGthbmJvdVwgOwor5Zue6LuiID4ga2FpdGVuXCA7CivoqI7lsIsgPiB0b3VqaW5cIDsKK+ijvee0mSA+IHNlaXNoaVwgOwor5aC05pWwID4gYmFrYXp1XCA7Civngavnmr8gPiBoaXphcmFcIDsKK+evhumatyA+IHRlbnJlaVwgOwor6KO957O4ID4gc2Vpc2hpXCA7Civoo73ns5YgPiBzZWl0b3VcIDsKK+Wil+WkpyA+IHpvdWRhaVwgOwor6KW/5rSLID4gc2VpeW91XCA7CivnuIHlhYggPiBlbnNha2lcIDsKK+e1jOacqCA+IGt5b3VnaVwgOwor5aOy5LiKID4gdXJpYWdlXCA7Civpm5Hkv7MgPiB6YXBwYWlcIDsKK+WbveiqniA+IGtva3Vnb1wgOwor6KO957KJID4gc2VpZnVuXCA7CivntYzmm7ggPiBrZWlzaG9cIDsKK+e3tOWKnyA+IHJlbmtvdVwgOwor5pS55YWDID4ga2FpZ2VuXCA7Civmj5vnrpcgPiBrYW56YW5cIDsKK+mWi+ecvCA+IGthaWdlblwgOwor6KGM6YeRID4ga291a2luXCA7CivnspfnspcgPiBhcmFhcmFcIDsKK+eCiueIqCA+IHN1aXNhblwgOwor5r+A6KqeID4gZ2VraWdvXCA7CivooZfpgZMgPiBrYWlkb3VcIDsKK+e0oeavmyA+IGJvdW1vdVwgOwor5aOu5LiBID4gc291dGVpXCA7CivnhKHlv4MgPiBtdXNoaW5cIDsKK+e0q+aqgCA+IHNoaXRhblwgOwor54K55rC0ID4gdGVuc3VpXCA7CivnuIHlgbQgPiBlbmdhd2FcIDsKK+ijnOe/kiA+IGhvc2h1dVwgOwor6Zmj5bGLID4gamluJyd5YVwgOwor6ZuR5Lu2ID4gemFra2VuXCA7CivmjoPolakgPiBzb3V0b3VcIDsKK+mYsuaIpiA+IGJvdXNlblwgOwor57WC5pyfID4gc2h1dWtpXCA7Civpm5HkurogPiB6b3VuaW5cIDsKK+e3tOWFtSA+IHJlbnBlaVwgOwor5aKT5aC0ID4gaGFrYWJhXCA7CivlnoLnpLogPiBzdWlzaGlcIDsKK+aUv+S9kyA+IHNlaXRhaVwgOwor6ZuF5L+XID4gZ2F6b2t1XCA7CivntJTmsLQgPiBqdW5zdWlcIDsKK+ipqeS7mSA+IHNoaXNlblwgOwor5pS/5LukID4gc2VpcmVpXCA7CivmlL7ku7sgPiBob3VuaW5cIDsKK+eyieezoCA+IGtvbnVrYVwgOwor6Kmp5Lq6ID4gc2hpamluXCA7CivmjqjogIMgPiBzdWlrb3VcIDsKK+mZveWgsSA+IHlvdWhvdVwgOwor57eo5Yi2ID4gaGVuc2VpXCA7CivntJTmr5sgPiBqdW5tb3VcIDsKK+aLs+mXmCA+IGtlbnRvdVwgOwor57SF5raZID4ga291cnVpXCA7CivmlL/kuokgPiBzZWlzb3VcIDsKK+e1guaYoCA+IHNodXVlaVwgOwor57Sg5qi4ID4gc29ib2t1XCA7Civmi53poZQgPiBoYWlnYW5cIDsKK+e0hea1tyA+IGtvdWthaVwgOwor6ZmL5be3ID4gcm91a291XCA7Civnt5jlj6MgPiBrYW5rb3VcIDsKK+eyieexsyA+IGtvZ29tZVwgOwor5o6i6IGeID4gdGFuYnVuXCA7CivlmbTpo68gPiBmdW5wYW5cIDsKK+eFveWLlSA+IHNlbmRvdVwgOwor57aZ5a2QID4gbWFtYWtvXCA7CivntJTmraMgPiBqdW5zZWlcIDsKK+imh+alrSA+IGhhZ3lvdVwgOwor6Zm15aKTID4gcnlvdWJvXCA7CivnsKHoo4EgPiBrYW5zYWlcIDsKK+iovOWNsCA+IHNob3VpblwgOwor6Kmm5LmXID4gc2hpam91XCA7CivpmqDljL8gPiBpbnRva3VcIDsKK+imj+agvCA+IGtpa2FrdVwgOwor54Gr546JID4gaGlkYW1hXCA7CivoqKrllY8gPiBob3Vtb25cIDsKK+mVt+ebriA+IG5hZ2FtZVwgOwor5pON5a6IID4gc291c2h1XCA7CivntbHlvqEgPiB0b3VneW9cIDsKK+ifu+mjnyA+IGFyaWt1aVwgOwor5pC+5rK5ID4gc2FrdXl1XCA7Civoob/oo48gPiBlcml1cmFcIDsKK+aMr+i1tyA+IHNoaW5raVwgOwor57eP5ZCIID4gc291Z291XCA7Civoo5zntaYgPiBob2t5dXVcIDsKK+aRguawjyA+IHNlc3NoaVwgOwor6KGM6LuNID4ga291Z3VuXCA7CivoqZXkvqEgPiBoeW91a2FcIDsKK+mWgOeVqiA+IG1vbmJhblwgOwor5aCF5p2QID4ga2VuemFpXCA7Civlm7PooaggPiB6dWh5b3VcIDsKK+WgheacqCA+IGthdGFnaVwgOwor5o+055SoID4gZW4nJ3lvdVwgOwor6Ziy5b6hID4gYm91Z3lvXCA7CivnsbPntr8gPiBiZWltZW5cIDsKK+eBsOeHvCA+IGthaWppblwgOwor54K55qScID4gdGVua2VuXCA7Civlobnlo5UgPiB6YW5nb3VcIDsKK+e0heavmyA+IGtvdW1vdVwgOwor57ea5YiGID4gc2VuYnVuXCA7Civnt5HljJYgPiByeW9ra2FcIDsKK+mZi+WxiyA+IHJvdW9rdVwgOwor5Zyw6IKMID4gamloYWRhXCA7CivpmLLlvL4gPiBib3VkYW5cIDsKK+mZkOWumiA+IGdlbnRlaVwgOwor6KOF572uID4gc291Y2hpXCA7Civpmo7lkI0gPiBrYWltZWlcIDsKK+iogOWkliA+IGdlbmdhaVwgOwor6KeS5bqmID4ga2FrdWRvXCA7CivlnqPniYYgPiBlbnNob3VcIDsKK+e3j+WLoiA+IHNvdXplaVwgOwor5Zue6KiTID4ga2Fpa3VuXCA7Civlo4rkubEgPiBrYWlyYW5cIDsKK+e1seW4pSA+IHRvdXN1aVwgOwor6Kaz5oimID4ga2Fuc2VuXCA7CivmjqXnt5ogPiBzZXNzZW5cIDsKK+e1kOaIkCA+IGtlc3NlaVwgOwor57SE5qy+ID4geWFra2FuXCA7CivooajoqJggPiBoeW91a2lcIDsKK+aSpOW7gyA+IHRlcHBhaVwgOwor6ZmE5bGeID4gZnV6b2t1XCA7Civlm6DopbIgPiBpbnNodXVcIDsKK+WbnuimpyA+IGthaXJhblwgOwor57Gz57KJID4gYmVpZnVuXCA7CivnhanlirQgPiBoYW5yb3VcIDsKK+WiqOWIkSA+IGJva2tlaVwgOwor54Sh5a2mID4gbXVnYWt1XCA7CivooqvohpwgPiBoaW1ha3VcIDsKK+WfjuaxoCA+IGpvdWNoaVwgOwor5o+P56C0ID4gYnlvdWhhXCA7CivmkZjmnpwgPiB0ZWtpa2FcIDsKK+e1tuWztiA+IHpldHRvdVwgOwor6Zmw5ZqiID4gZnVndXJpXCA7Civlo4fkuIogPiBkYW5qb3VcIDsKK+ijj+e0iyA+IHVyYW1vblwgOwor57Sg5py0ID4gc29ib2t1XCA7CivplpPnhLYgPiBrYW56ZW5cIDsKK+aKuemmmSA+IG1ha2tvdVwgOwor5ouz6YqDID4ga2VuanV1XCA7CivntKvmlpEgPiBzaGloYW5cIDsKK+imgeacmyA+IHlvdWJvdVwgOwor6Kaz5oOzID4ga2Fuc291XCA7Civnr4DphZIgPiBzZXNzaHVcIDsKK+imi+aWuSA+IG1pa2F0YVwgOwor57SN5qO6ID4gbm91a2FuXCA7Civoo4HnuKsgPiBzYWlob3VcIDsKK+WZtOmWgCA+IGZ1bm1vblwgOwor54K65pu/ID4ga2F3YXNlXCA7Civooajoo48gPiBoeW91cmlcIDsKK+maj+WIhiA+IHp1aWJ1blwgOwor57W25a++ID4gemV0dGFpXCA7Civpmo/lh6YgPiB6dWlzaG9cIDsKK+eyl+ebriA+IHphcmFtZVwgOwor6Zmj5ZywID4gamluY2hpXCA7CivmvKLpn7MgPiBrYW4nJ29uXCA7CivmjIfovKogPiB5dWJpd2FcIDsKK+aOqOeulyA+IHN1aXNhblwgOwor5Z2H562JID4ga2ludG91XCA7Civngrnmma8gPiB0ZW5rZWlcIDsKK+mZkOWkliA+IGdlbmdhaVwgOwor57KJ56CVID4gZnVuc2FpXCA7Civln7rmlZkgPiBraWt5b3VcIDsKK+mZsOWUhyA+IGluc2hpblwgOwor6KaB5peoID4geW91c2hpXCA7CivoqIrllY8gPiBqaW5tb25cIDsKK+mao+S6uiA+IHJpbmppblwgOwor57Gz56qBID4gbcSTdG9ydVwgOwor57Sg5pW1ID4gc3V0ZWtpXCA7CivlopfliIogPiB6b3VrYW5cIDsKK+Wil+WIhiA+IHpvdWJ1blwgOwor57K+54WJID4gc2VpcmVuXCA7Civmva7ot68gPiBzaGlvamlcIDsKK+e0heaihSA+IGtvdWJhaVwgOwor6ZmN5aOHID4ga291ZGFuXCA7Civopb/mlrkgPiBzZWlob3VcIDsKK+ihk+ioiCA+IGp1a2tlaVwgOwor5o6h566XID4gc2Fpc2FuXCA7CivntI3mna8gPiBub3VoYWlcIDsKK+a9sOi1sCA+IGthaXNvdVwgOwor6KGG6K2wID4gc2h1dWdpXCA7CivopJLnirYgPiBob3Vqb3VcIDsKK+mYsuWvkiA+IGJvdWthblwgOwor6Zqb5LyaID4gc2Fpa2FpXCA7CivngrnmlbAgPiB0ZW5zdXVcIDsKK+e0jeacrCA+IG5vdWhvblwgOwor5ouz6YGTID4ga29uZG91XCA7CivlopflhbUgPiB6b3VoZWlcIDsKK+aYjuOAhSA+IGFrYWFrYVwgOwor6Zmj5Za2ID4gamluJydlaVwgOwor5Z2Q56SBID4gemFzaG91XCA7CivntJnmlbAgPiBzaGlzdXVcIDsKK+e2meWXoyA+IGtlaXNoaVwgOwor57eP5L2TID4gc291dGFpXCA7Civmj4/nlLsgPiBieW91Z2FcIDsKK+e0m+aTviA+IGZ1bmpvdVwgOwor54G45rK7ID4ga3l1dWppXCA7Civnt4/kvJogPiBzb3VrYWlcIDsKK+aOpeeoriA+IHNlc3NodVwgOwor57eP5LujID4gc291ZGFpXCA7CivploDnga8gPiBtb250b3VcIDsKK+aLoOmHkSA+IGt5b2tpblwgOwor6ZaA54GrID4ga2Fkb2JpXCA7CivnhY7liaQgPiBzZW56YWlcIDsKK+e1tuWlvSA+IHpla2tvdVwgOwor54Sm5ZyfID4gc2hvdWRvXCA7CivntKDmj48gPiBzb2J5b3VcIDsKK+e0huabsiA+IHVreW9rdVwgOwor5oud6YeRID4gaGFpa2luXCA7CivoorHntJcgPiBmdWt1c2FcIDsKK+maj+S8tCA+IHp1aWhhblwgOwor6Zm95YWJID4geW91a291XCA7CivntYzluLggPiBrZWlqb3VcIDsKK+aPkOeQtCA+IHRlaWtpblwgOwor57WM5birID4ga3lvdWppXCA7CivoqJjlhaUgPiBraW55dXVcIDsKK+WcqOexsyA+IHphaWJlaVwgOwor6Kaa5oKfID4ga2FrdWdvXCA7Civlopfkv7ggPiB6b3Vob3VcIDsKK+iioue6jyA+IGhhbnRlblwgOwor6ZaL5rivID4ga2Fpa291XCA7Civlopfkvr8gPiB6b3ViaW5cIDsKK+e2nOWQiCA+IHNvdWdvdVwgOwor6Zmw5Yi7ID4gaW5rb2t1XCA7CivmvI/pm7sgPiByb3VkZW5cIDsKK+ikkOeCrSA+IGthdHRhblwgOwor6ZqO5LmXID4ga2Fpam91XCA7Civmjrvnl5IgPiBzb3V5b3VcIDsKK+eCieajmiA+IHJvZGFuYVwgOwor6Kej5ZujID4ga2FpZGFuXCA7CivlooPlhoUgPiBrZWlkYWlcIDsKK+majuS4iiA+IGthaWpvdVwgOwor6Zme5Y+ZID4gc2hvdWpvXCA7Civmjqjnn6UgPiBzdWljaGlcIDsKK+aTvuS5sSA+IGpvdXJhblwgOwor54Gr5rC0ID4gaGltaXp1XCA7Civoo73niYggPiBzZWloYW5cIDsKK+evpOihjCA+IHRva2tvdVwgOwor6KaB5omAID4geW91c2hvXCA7CivlnLDnqI4gPiBjaGl6ZWlcIDsKK+e1ueWcsCA+IGtpbnVqaVwgOwor6KiA5YuVID4gZ2VuZG91XCA7Civnsr7mtrIgPiBzZWlla2lcIDsKK+mYsuWhtSA+IGJvdWppblwgOwor5o6i55+lID4gdGFuY2hpXCA7CivloIXlv5cgPiBrZW5zaGlcIDsKK+mYsuWhniA+IGJvdXNhaVwgOwor5Zmo6YePID4ga2lyeW91XCA7CivmjJnooYwgPiBreW9rb3VcIDsKK+eBjOa8kSA+IGthbmdhaVwgOwor6Ziq5aSnID4gaGFuZGFpXCA7CivooYDooYwgPiBrZWtrb3VcIDsKK+mVt+a5ryA+IG5hZ2F5dVwgOwor57aa5YiKID4gem9ra2FuXCA7CivlnJ/nq5wgPiBtb2d1cmFcIDsKK+a8uOi/kSA+IHplbmtpblwgOwor5Zyf56qvID4gZG9nYW1hXCA7CivpmaLlhoUgPiBpbicnbmFpXCA7CivloLTlpJYgPiBqb3VnYWlcIDsKK+ijveeCrSA+IHNlaXRhblwgOwor5Z6C5rqWID4gc3VpanVuXCA7CivnsonnirYgPiBmdW5qb3VcIDsKK+eEoeWRiiA+IG11a29rdVwgOwor6KiT5LukID4ga3VucmVpXCA7CivopovlvZMgPiBrZW50b3VcIDsKK+e0r+W5tCA+IHJ1aW5lblwgOwor5Zue6Ii5ID4ga2Fpc2VuXCA7CivpmY3lj4IgPiBrb3VzYW5cIDsKK+Wcp+elniA+IGFzc2hpblwgOwor57Gz55SjID4gYmVpc2FuXCA7CivntZDlqZogPiBrZWtrb25cIDsKK+WbnuiIqiA+IGthaWtvdVwgOwor6ZaJ5q2iID4gaGVpc2hpXCA7CivntI3miYAgPiBuYXNzaG9cIDsKK+aSpOWbniA+IHRla2thaVwgOwor57Gg55uuID4ga2Fnb21lXCA7CivntJTmhJsgPiBqdW4nJ2FpXCA7CivmipXpmY0gPiB0b3Vrb3VcIDsKK+e0uuWxiyA+IGtvbicneWFcIDsKK+aJi+m8uyA+IHRlYmFuYVwgOwor6ZW35rOiID4gY2hvdWhhXCA7Civmk43lhbggPiBzb3V0ZW5cIDsKK+Wegua2jiA+IHp1aXplblwgOwor57Si5byVID4gc2FrdWluXCA7CivntJTmg4UgPiBqdW5qb3VcIDsKK+eCueW/gyA+IHRlbmppblwgOwor6Zai5p2xID4ga2FudG91XCA7CivnhYnkuLkgPiByZW50YW5cIDsKK+e1tuWTgSA+IHplcHBpblwgOwor5o6i55WqID4gdGFuYmFuXCA7CivoqIzkuokgPiBrb3Vzb3VcIDsKK+mWgOatryA+IG1vbnNoaVwgOwor5r+D57S6ID4gbm91a29uXCA7CivntITmiYsgPiB5YWt1dGVcIDsKK+WcsOebuCA+IGNoaXNvdVwgOwor6KGw6ICXID4gc3VpbW91XCA7CivnrYbpoK0gPiBoaXR0b3VcIDsKK+aOoeeUqCA+IHNhaXlvdVwgOwor54GM5rC0ID4ga2Fuc3VpXCA7CivmjZXnuJsgPiBob2Jha3VcIDsKK+ijgueXlCA+IGtpcmVqaVwgOwor57KJ54KtID4gZnVudGFuXCA7CivpmarkuZcgPiBiYWlqb3VcIDsKK+Wbm+iCoiA+IHNoaXNoaVwgOwor566h6LKhID4ga2FuemFpXCA7Civoo4XnlLIgPiBzb3Vrb3VcIDsKK+ijheeUqCA+IHNvdXlvdVwgOwor6KiI5LiKID4ga2Vpam91XCA7Civpl5jlv5cgPiB0b3VzaGlcIDsKK+Wcp+edgCA+IGF0c3VnaVwgOwor5Z6j5qC5ID4ga2FraW5lXCA7Civlm6Dnv5IgPiBpbnNodXVcIDsKK+mdouOAhSA+IG1lbm1lblwgOwor5Zub6IGWID4gc2hpc2VpXCA7Civop6PliZYgPiBrYWlib3VcIDsKK+e1seWQiCA+IHRvdWdvdVwgOwor5Zyf55+zID4gZG9zZWtpXCA7CivplovmorEgPiBrYWlrb25cIDsKK+mZhOWJhyA+IGZ1c29rdVwgOwor5r2c6KGMID4gc2Vua291XCA7CivntJnluaMgPiBzaGloZWlcIDsKK+iln+aHkCA+IGtpbmthaVwgOwor6Kej5YeNID4ga2FpdG91XCA7CivlnLDnlaogPiBjaGliYW5cIDsKK+eEmuWIkSA+IGZ1bmtlaVwgOwor5Z6C5q27ID4gc3Vpc2hpXCA7CivntLDlrZcgPiBob3NvamlcIDsKK+e0sOWtlCA+IHNhaWtvdVwgOwor5aCF5a6IID4ga2Vuc2h1XCA7CivnhKHlhJ8gPiBtdXNob3VcIDsKK+eBq+acqCA+IGthbW9rdVwgOwor57WC5aScID4gc2h1dXlhXCA7CivlnLDnlYwgPiBjaGlrYWlcIDsKK+mWouaVsCA+IGthbnN1dVwgOwor57WD5aOwID4gZ2Vuc2VpXCA7CivoqIDkuIogPiBnb25qb3VcIDsKK+mWi+agoSA+IGthaWtvdVwgOwor5oud6KydID4gaGFpc2hhXCA7CivplpPmnI0gPiBhaWZ1a3VcIDsKK+ino+WFmiA+IGthaXRvdVwgOwor6ZaJ5qChID4gaGVpa291XCA7CivnhKHlgrcgPiBtdWtpenVcIDsKK+aPmuawtCA+IHlvdXN1aVwgOwor5pKk5Y67ID4gdGVra3lvXCA7Civoo73ms5UgPiBzZWlob3VcIDsKK+a7numZoyA+IHRhaWppblwgOwor57K+5qC5ID4gc2Vpa29uXCA7Civlm6DnuIEgPiBpbicnbmVuXCA7Civopb/lsrggPiBzZWlnYW5cIDsKK+WYhumhmCA+IHRhbmdhblwgOwor5r6x57KJID4gZGVucHVuXCA7CivntbHliLYgPiB0b3VzZWlcIDsKK+aMgeiWrCA+IGppeWFrdVwgOwor5Zue57eaID4ga2Fpc2VuXCA7CivplpPmlq0gPiBrYW5kYW5cIDsKK+aLneimsyA+IGhhaWthblwgOwor6KaB5a6zID4geW91Z2FpXCA7CivntJnlsYsgPiBrYW1peWFcIDsKK+mZjeS7uyA+IGtvdW5pblwgOwor5oud6KaLID4gaGFpa2VuXCA7Civon6DouJ4gPiBiYW5reW9cIDsKK+mWk+aVsCA+IG1ha2F6dVwgOwor5Zu956aBID4ga29ra2luXCA7CivmjL/ntbUgPiBzYXNoaWVcIDsKK+WcsOeNhCA+IGppZ29rdVwgOwor54Sh5LyRID4gbXVreXV1XCA7CivlnoLmpYogPiBzdWl5b3VcIDsKK+aOjOeQhiA+IHNob3VyaVwgOwor57Sw5aSnID4gc2FpZGFpXCA7CivplpHmlaMgPiBrYW5zYW5cIDsKK+mWi+aYjiA+IGthaW1laVwgOwor5Zyf55SjID4gbWl5YWdlXCA7Civop6PkvZMgPiBrYWl0YWlcIDsKK+aOpeeCuSA+IHNldHRlblwgOwor5Zu956SOID4ga29rdXNvXCA7Civmu5HpmY0gPiBrYWtrb3VcIDsKK+mWqOaIvyA+IGtlaWJvdVwgOwor6ZaL5pa5ID4ga2FpaG91XCA7Civnq6/pupcgPiB0YW5yZWlcIDsKK+ihgOiGvyA+IGNoaXVtaVwgOwor6Kej5Lu7ID4ga2FpbmluXCA7CivmlrnjgIUgPiBob3Vib3VcIDsKK+e1tuWAkiA+IHpldHRvdVwgOwor57SZ5a2QID4ga2FtaWtvXCA7Civngq3lsaQgPiB0YW5zb3VcIDsKK+aSpOWFtSA+IHRlcHBlaVwgOwor57Sr5aSWID4gc2hpZ2FpXCA7CivntK/lopcgPiBydWl6b3VcIDsKK+ihjOiAhSA+IGd5b3VqYVwgOwor5o6h54K5ID4gc2FpdGVuXCA7CivmkLrluK8gPiBrZWl0YWlcIDsKK+aOoeeCrSA+IHNhaXRhblwgOwor54OI5aOrID4gcmVzc2hpXCA7CivplovmlL4gPiBrYWlob3VcIDsKK+a8q+irhyA+IG1hbmRhblwgOwor5omL6aeSID4gdGVnb21hXCA7CivloIXloYEgPiBrZW5ydWlcIDsKK+aJi+mmliA+IHRla3ViaVwgOwor5aCC5aGUID4gZG91dG91XCA7CivplbfmnJ8gPiBjaG91a2lcIDsKK+WgheWfjiA+IGtlbmpvdVwgOwor54KJ5b+DID4gcm9zaGluXCA7CivnrYbpi5IgPiBoaXBwb3VcIDsKK+WgguWggiA+IGRvdWRvdVwgOwor5ryr6KiAID4gbWFuZ2VuXCA7Civlm57nrZQgPiBrYWl0b3VcIDsKK+imquWSjCA+IHNoaW53YVwgOwor57WM5Y+jID4ga2Vpa291XCA7Civln47luIIgPiBqb3VzaGlcIDsKK+e1tuS6pCA+IHpla2tvdVwgOwor5Z6C5pyoID4gdGFydWtpXCA7CivloLTlhoUgPiBqb3VuYWlcIDsKK+aMieiFuSA+IGFucHVrdVwgOwor6KOc5rOoID4gaG9jaHV1XCA7CivlnLDngrkgPiBjaGl0ZW5cIDsKK+a8ouipqSA+IGthbnNoaVwgOwor6ZeH5bGLID4geWFtaXlhXCA7CivntbbkuJYgPiB6ZXNzZWlcIDsKK+aKgOmHjyA+IGdpcnlvdVwgOwor5omL6aC4ID4gdGVrdWJpXCA7CivntYTlkIggPiBrdW1pYWlcIDsKK+eCieW6iiA+IHJvc2hvdVwgOwor5omL6aCDID4gdGVnb3JvXCA7CivopovlnLAgPiBrZW5jaGlcIDsKK+imgeWhniA+IHlvdXNhaVwgOwor6KKr54iGID4gaGliYWt1XCA7Civon7fonoIgPiB0b3Vyb3VcIDsKK+imhuWcnyA+IGZ1a3Vkb1wgOwor5Z+55ZywID4gYmFpY2hpXCA7CivmvZzoiKogPiBzZW5rb3VcIDsKK+ilv+WfnyA+IHNlaWlraVwgOwor57Wm5LuYID4ga3l1dWZ1XCA7Civntabku5UgPiBreXV1amlcIDsKK+WbnuekvCA+IGthaXJlaVwgOwor5omA6aGYID4gc2hvZ2FuXCA7Civpl5jlo6sgPiB0b3VzaGlcIDsKK+e1kOWFmiA+IGtldHRvdVwgOwor54CV5q27ID4gaGluc2hpXCA7CivntJTlopcgPiBqdW56b3VcIDsKK+mWi+aIpiA+IGthaXNlblwgOwor6Kaz5YWJID4ga2Fua291XCA7Civoo73mnZAgPiBzZWl6YWlcIDsKK+a6nOmjsiA+IHJ5dXVpblwgOwor6KGo56S6ID4gaHlvdWppXCA7CivopoHlnLAgPiB5b3VjaGlcIDsKK+ijveacrCA+IHNlaWhvblwgOwor54OZ5Y2wID4gcmFrdWluXCA7CivmiYvpmpsgPiB0ZWdpd2FcIDsKK+aJi+mamSA+IHRlc3VraVwgOwor57WM5YW4ID4ga2VpdGVuXCA7CivopqrliIYgPiBveWFidW5cIDsKK+e0meWeiyA+IHNoaWtlaVwgOwor562J6L66ID4gdG91aGVuXCA7CivngrnlnKggPiB0ZW56YWlcIDsKK+WcsOa6nSA+IGNoaWtvdVwgOwor57Wm5LiOID4ga3l1dXlvXCA7Civngq3lobUgPiB0YW5qaW5cIDsKK+WbveeSvSA+IGtva3VqaVwgOwor57KX5pyNID4gc29mdWt1XCA7CivooYDntbEgPiBrZXR0b3VcIDsKK+eBq+aApSA+IGtha3l1dVwgOwor5Z+f5aSWID4gaWtpZ2FpXCA7Civnq7/poK0gPiBrYW50b3VcIDsKK+e0sOWQmyA+IHNhaWt1blwgOwor54Gv5b2xID4gaG9rYWdlXCA7CivmipXos4cgPiB0b3VzaGlcIDsKK+aLmeiRlyA+IHNldGNob1wgOwor6KGA57OWID4ga2V0dG91XCA7CivmiYvplbcgPiB0ZW5hZ2FcIDsKK+eBq+W9sSA+IGhva2FnZVwgOwor5o6S5rayID4gaGFpZWtpXCA7Civngq3lnZEgPiB0YW5rb3VcIDsKK+mXh+WknCA+IHlhbWl5b1wgOwor5Zu9546LID4ga29rdW91XCA7CivntIXlobUgPiBrb3VqaW5cIDsKK+imi+WPsCA+IGtlbmRhaVwgOwor57KJ5pysID4gZnVucG9uXCA7CivplbfmiZMgPiBjaG91ZGFcIDsKK+imi+WPgiA+IGtlbnphblwgOwor57K+5oKNID4gc2Vpa2FuXCA7CivlnI/ngrkgPiBrZW50ZW5cIDsKK+eBq+W6iiA+IGhpZG9rb1wgOwor6KGA566hID4ga2Vra2FuXCA7CivntYzkvJ0gPiBrZWlkZW5cIDsKK+aNleeQgyA+IGhva3l1dVwgOwor5oiQ6a2aID4gc2VpZ3lvXCA7Civooajnmq4gPiBoeW91aGlcIDsKK+ihjOeoiyA+IGtvdXRlaVwgOwor5o+a5o+aID4geW91eW91XCA7Civln47lpJYgPiBqb3VnYWlcIDsKK+aMh+e0iyA+IHNoaW1vblwgOwor5o6S5rC0ID4gaGFpc3VpXCA7Civlm73niLYgPiBrb2t1ZnVcIDsKK+e0sOWIhiA+IHNhaWJ1blwgOwor54G95a6zID4gc2FpZ2FpXCA7Civplovlu7cgPiBrYWl0ZWlcIDsKK+WYiei+sCA+IGthc2hpblwgOwor5o2V542yID4gaG9rYWt1XCA7CivmjIHntpogPiBqaXpva3VcIDsKK+a6tumKkSA+IHlvdXNlblwgOwor6KaP5YmHID4ga2lzb2t1XCA7Civplonlu7cgPiBoZWl0ZWlcIDsKK+aPoeaJiyA+IGFrdXNodVwgOwor6ZaL5bqXID4ga2FpdGVuXCA7Civnsr7lvakgPiBzZWlzYWlcIDsKK+aPkOaQuiA+IHRlaWtlaVwgOwor5omL6Y2LID4gdGVuYWJlXCA7CivmjoPmtbcgPiBzb3VrYWlcIDsKK+ernOmmrCA+IHJ5dXVtZVwgOwor5Z+O5aGeID4gam91c2FpXCA7CivntYzkuJYgPiBrZWlzZWlcIDsKK+mWi+W5syA+IGthaWhlaVwgOwor5oqX6KiAID4ga291Z2VuXCA7Civnqq7pvKAgPiBreXV1c29cIDsKK+mWieW6lyA+IGhlaXRlblwgOwor5Z+O5aGBID4gam91cnVpXCA7Civmu5Hou4ogPiBrYXNzaGFcIDsKK+erpemhlCA+IGRvdWdhblwgOwor5Zue55SfID4ga2Fpc2VpXCA7CivmuoDpoZggPiBtYW5nYW5cIDsKK+mWi+W3uyA+IGthaWthblwgOwor6KW/5Y2XID4gc2VpbmFuXCA7CivmjqLmpJwgPiB0YW5rZW5cIDsKK+mWgOW8nyA+IG1vbnRlaVwgOwor5oim6ZuyID4gc2VuJyd1blwgOwor5omL6YmkID4gdGVrYWdpXCA7Civmub7poK0gPiB3YW50b3VcIDsKK+e0jeWTgSA+IG5vdWhpblwgOwor5Zan6aiSID4ga2Vuc291XCA7CivmkI3lrrMgPiBzb25nYWlcIDsKK+exs+adkCA+IGJlaXphaVwgOwor5Z+O5Z2AID4gam91c2hpXCA7CivmiKbpmoogPiBzZW50YWlcIDsKK+aLneiBniA+IGhhaWJ1blwgOwor6Jya6bOlID4gaGljaG91XCA7CivmiKbpmaMgPiBzZW5qaW5cIDsKK+eyvuW3pyA+IHNlaWtvdVwgOwor57K+5bejID4gc2Vpc291XCA7CivmuoDpnaIgPiBtYW5tZW5cIDsKK+mWkeWxhSA+IGthbmt5b1wgOwor56uc6aCtID4gcnl1dXp1XCA7Civmu5HotbAgPiBrYXNzb3VcIDsKK+WWq+mjryA+IGtpcHBhblwgOwor57Si5YW3ID4gc2FrdWd1XCA7Civoo4/mnb8gPiB1cmFpdGFcIDsKK+idpumMoCA+IGViaWpvdVwgOwor54Gr5a6FID4ga2F0YWt1XCA7CivmiKbpl5ggPiBzZW50b3VcIDsKK+aJi+mFjCA+IHRlamFrdVwgOwor5ouZ6ICFID4gc2Vzc2hhXCA7CivplovlsbEgPiBrYWlzYW5cIDsKK+mVt+W6pyA+IGNob3V6YVwgOwor5ryi6IuxID4ga2FuJydlaVwgOwor6ZaJ5bGxID4gaGVpemFuXCA7CivlmInos54gPiBrYXNob3VcIDsKK+WcsOaknCA+IGNoaWtlblwgOwor6ZaJ5bGFID4gaGVpa3lvXCA7CivplovlsIEgPiBrYWlmdXVcIDsKK+aRguWPliA+IHNlc3NodVwgOwor6Zai5aSnID4ga2FuZGFpXCA7Civlm73mvKIgPiBrb2trYW5cIDsKK+eCueWFiSA+IHRlbmtvdVwgOwor54Kt5Yq0ID4gdGFucm91XCA7CivmirnojLYgPiBtYXRjaGFcIDsKK+WbnueKtiA+IGthaWpvdVwgOwor57Sv5LujID4gcnVpZGFpXCA7Civmi5jnva4gPiBrb3VjaGlcIDsKK+e0lOWIhiA+IGp1bmJ1blwgOwor5Z2m5oeQID4gdGFua2FpXCA7CivlnYfmlokgPiBraW5zZWlcIDsKK+a6gOmWiyA+IG1hbmthaVwgOwor5Z2H5pW0ID4ga2luc2VpXCA7CivntK/kuZcgPiBydWlqb3VcIDsKK+aOqOaWrSA+IHN1aWRhblwgOwor5pWj44CFID4gc2FuemFuXCA7CivmibnoqZUgPiBoaWh5b3VcIDsKK+aOiOalrSA+IGp1Z3lvdVwgOwor6J6N6LOHID4geXV1c2hpXCA7CivmjqjmlbIgPiBzdWlrb3VcIDsKK+e0r+S4liA+IHJ1aXNlaVwgOwor6KGA55u4ID4ga2Vzc291XCA7CivnspjmgKcgPiBuZW5zZWlcIDsKK+ikh+W6pyA+IGZ1a3V6YVwgOwor5r+D5rehID4gbm91dGFuXCA7CivmjrLmj5ogPiBrZWl5b3VcIDsKK+imi+S6iyA+IG1pZ290b1wgOwor57K+5a2QID4gc2Vpc2hpXCA7CivloILkuIogPiBkb3Vqb3VcIDsKK+ies+iegiA+IHRvdXJvdVwgOwor5omL6Lu9ID4gdGVnYXJ1XCA7CivngbDlobUgPiBoYWlqaW5cIDsKK+WcqOagoSA+IHphaWtvdVwgOwor6KSl5ammID4gam9rdWZ1XCA7CivmvJXoiYcgPiBzb3V0ZWlcIDsKK+mVt+WxiyA+IG5hZ2F5YVwgOwor6KGA55ewID4ga2V0dGFuXCA7Civplovlp4sgPiBrYWlzaGlcIDsKK+ihhueUnyA+IHNodWpvdVwgOwor6KaB5Lu2ID4geW91a2VuXCA7CivooYDnl5UgPiBrZWtrb25cIDsKK+Wfn+WGhSA+IGlraW5haVwgOwor6ZW35a+/ID4gY2hvdWp1XCA7CivopoHkurogPiB5b3VqaW5cIDsKK+WcqOadpSA+IHphaXJhaVwgOwor5oyZ55SoID4ga3lveW91XCA7CivplbflrrYgPiBuYWdheWFcIDsKK+ijgeaWrSA+IHNhaWRhblwgOwor5oqc6JCDID4gYmFzc3VpXCA7CivntJvkuokgPiBmdW5zb3VcIDsKK+aJgOi8iSA+IHNob3NhaVwgOwor5omL6LazID4gdGVhc2hpXCA7CivlnKfmnI0gPiBhcHB1a3VcIDsKK+e0m+S5sSA+IGZ1bnJhblwgOwor5r2w55iNID4ga2FpeW91XCA7Civplovlor4gPiBrYWlrb25cIDsKK+WcsOaWuSA+IGNoaWhvdVwgOwor5o6o5oyZID4gc3Vpa3lvXCA7Civlm73mr40gPiBrb2t1Ym9cIDsKK+eykuW6piA+IHJ5dXVkb1wgOwor5Zyw5paHID4gY2hpbW9uXCA7CivooZfnh4ggPiBnYWl0b3VcIDsKK+a4uOmtmiA+IHl1dWd5b1wgOwor5oqX6I+MID4ga291a2luXCA7CivntJnkuIogPiBzaGlqb3VcIDsKK+mWi+WgtCA+IGthaWpvdVwgOwor6J6N6KejID4geXV1a2FpXCA7Civlm57mvJUgPiBrYWlzb3VcIDsKK+Wcn+acqCA+IGRvYm9rdVwgOwor6ZaJ5aC0ID4gaGVpam91XCA7CivooqvmnI0gPiBoaWZ1a3VcIDsKK+WWiemgrSA+IGtvdXRvdVwgOwor6ZaR5ZywID4ga2FuY2hpXCA7CivnsbPmh4cgPiBiZWlrb25cIDsKK+mXmOS6iSA+IHRvdXNvdVwgOwor57SN5LyaID4gbm91a2FpXCA7Civplovln44gPiBrYWlqb3VcIDsKK+mWo+WToSA+IGtha3VpblwgOwor6ZaA5aSWID4gbW9uZ2FpXCA7Civmjbrmn5MgPiBuYXNzZW5cIDsKK+iiq+abnSA+IGhpYmFrdVwgOwor5o6o5oi0ID4gc3VpdGFpXCA7Civln47lhoUgPiBqb3VuYWlcIDsKK+euoeerryA+IGthbnRhblwgOwor5Z+O5YW1ID4gam91aGVpXCA7CivmvIHoiLkgPiBneW9zZW5cIDsKK+mXh+WApCA+IHlhbWluZVwgOwor5ryU57+SID4gZW5zaHV1XCA7CivmjqXmiKYgPiBzZXNzZW5cIDsKK+Wbnua4uCA+IGthaXl1dVwgOwor6KGX54GvID4gZ2FpdG91XCA7Civnq7bovKogPiBrZWlyaW5cIDsKK+aMgeeXhSA+IGppYnlvdVwgOwor6ZW35aWzID4gY2hvdWpvXCA7Civlm73mqKkgPiBrb2trZW5cIDsKK+e0iuS5sSA+IGJ1bnJhblwgOwor6ZW35aScID4gY2hvdXlhXCA7CivmjIfnkrAgPiB5dWJpd2FcIDsKK+aLmeeovyA+IHNla2tvdVwgOwor5Zyf5pa5ID4gZG9rYXRhXCA7CivmiZPoqLogPiBkYXNoaW5cIDsKK+WWhOmciiA+IHplbnJlaVwgOwor5oud56S8ID4gaGFpcmVpXCA7Civlm5vmtbcgPiBzaGlrYWlcIDsKK+Wcp+aQviA+IGFzc2FrdVwgOwor5rq26KejID4geW91a2FpXCA7CivmvJTnubkgPiBlbicnZWtpXCA7Civoo5zlvLcgPiBob2t5b3VcIDsKK+mWgOWcsCA+IG1vbmNoaVwgOwor5ouY56aBID4ga291a2luXCA7Civnq4vpjJAgPiByaXNzdWlcIDsKK+eyvuWaoiA+IHNlaW5vdVwgOwor5ZaE6ZqjID4gemVucmluXCA7CivnrJHoqbEgPiBzaG91d2FcIDsKK+mOlOmKkSA+IHlvdXNlblwgOwor5oim6LuKID4gc2Vuc2hhXCA7CivlnZHlupUgPiBrb3V0ZWlcIDsKK+eBr+WPsCA+IHRvdWRhaVwgOwor566X56iLID4gc2FudGVpXCA7CivmiYvoqLEgPiB0ZW1vdG9cIDsKK+a4oOmtgSA+IGt5b2thaVwgOwor6KGw5q6LID4gc3VpemFuXCA7CivoobDmrbsgPiBzdWlzaGlcIDsKK+eyieWxiyA+IGtvbmF5YVwgOwor5Z+O5LujID4gam91ZGFpXCA7CivmiYDoq5YgPiBzaG9yb25cIDsKK+Wbm+awkSA+IHNoaW1pblwgOwor5Zuj5qySID4gZGFucmFuXCA7CivmuoDovIkgPiBtYW5zYWlcIDsKK+aOpeW+hSA+IHNldHRhaVwgOwor5rqA6LuKID4gbWFuc2hhXCA7CivmiYDoqa4gPiBzaG9zZW5cIDsKK+WfjuS4uyA+IGpvdXNodVwgOwor5Zyo5omAID4gemFpc2hvXCA7CivngJHluIMgPiBiYWt1ZnVcIDsKK+exs+W4nSA+IGJlaXRlaVwgOwor57OW5YiGID4gdG91YnVuXCA7CivmkK3kuZcgPiB0b3Vqb3VcIDsKK+WWnemHhyA+IGthc3NhaVwgOwor6ZaL5Y+jID4ga2Fpa291XCA7Civmurbono0gPiB5b3V5dXVcIDsKK+eBsOWIhiA+IGthaWJ1blwgOwor5Ziy5721ID4gY2hvdWJhXCA7CivnrYvohasgPiBraW5zaHVcIDsKK+mWieWPoyA+IGhlaWtvdVwgOwor6Juu6aKoID4gYmFucHV1XCA7Civmh4fpoZggPiBrb25nYW5cIDsKK+ethuiHtCA+IGhpdGNoaVwgOwor5omA6KaLID4gc2hva2VuXCA7CivmiYDopoEgPiBzaG95b3VcIDsKK+Wbs+afhCA+IHp1Z2FyYVwgOwor6KOF5by+ID4gc291ZGFuXCA7CivmiIrovrAgPiBib3NoaW5cIDsKK+a8gee2siA+IGd5b21vdVwgOwor5Zu95pivID4ga29rdXplXCA7Civnga/lhYkgPiB0b3Vrb3VcIDsKK+eznuS+vyA+IGZ1bmJlblwgOwor6J206J22ID4ga29jaG91XCA7Civmva7ngKwgPiBzaGlvc2VcIDsKK+mWouS/giA+IGthbmtlaVwgOwor56ul6LKeID4gZG91dGVpXCA7CivnqoHpoqggPiB0b3BwdXVcIDsKK+a/gOaYgiA+IGdla2tvdVwgOwor5oqY57eaID4gc2Vzc2VuXCA7CivngavlhYggPiBob3Nha2lcIDsKK+exs+WxiyA+IGtvbWV5YVwgOwor54Gr5YWDID4gaGltb3RvXCA7CivlnLDlvaIgPiBjaGlrZWlcIDsKK+a6gOiyqyA+IG1hbmdhblwgOwor6KOF5bmAID4gc291dGVpXCA7Civmj7rli5UgPiB5b3Vkb3VcIDsKK+ewoeaYjiA+IGthbm1laVwgOwor5oiv6KmVID4gZ2loeW91XCA7Civnsr7li6QgPiBzZWlraW5cIDsKK+aKnOezuCA+IGJhc3NoaVwgOwor6KGA5riFID4ga2Vzc2VpXCA7CivnqbTppqwgPiBhbmF1bWFcIDsKK+eyvuWKsSA+IHNlaXJlaVwgOwor54Gr5YK3ID4geWFrZWRvXCA7Civmu4Xoj4wgPiBtZWtraW5cIDsKK+ethuiAlSA+IGhpa2tvdVwgOwor6Y6u6K23ID4gY2hpbmdvXCA7Civom67pmrcgPiBiYW5yZWlcIDsKK+ethuiAhSA+IGhpc3NoYVwgOwor5oqc57KLID4gYmFzc3VpXCA7CivlnLDlupUgPiBjaGl0ZWlcIDsKK+WcqOW9uSA+IHphaWVraVwgOwor5omN6Je7ID4gc2Fpc291XCA7CivlnLDlubMgPiBjaGloZWlcIDsKK+eyvuWIsCA+IHNlaXRvdVwgOwor5o+b5ZapID4ga2FuJyd5dVwgOwor57KJ5aG1ID4gZnVuamluXCA7CivlnLDluK8gPiBjaGl0YWlcIDsKK+evgOeCuSA+IHNldHRlblwgOwor5o6o5a6aID4gc3VpdGVpXCA7Civnq6XorKEgPiBkb3V5b3VcIDsKK+WVj+mhjCA+IG1vbmRhaVwgOwor6ZaA5YmNID4gbW9uemVuXCA7Civlm5vmoYEgPiB5b2tldGFcIDsKK+ihjOauiiA+IGd5b3Vqb1wgOwor5Z2m5Z2mID4gdGFudGFuXCA7Civnqbrpn7MgPiBzb3JhbmVcIDsKK+mWouS4jiA+IGthbicneW9cIDsKK+Wcp+W7tiA+IGF0c3VlblwgOwor6KGw5pu/ID4gc3VpdGFpXCA7CivplovlgqwgPiBrYWlzYWlcIDsKK+mWgOWHuiA+IGthZG9kZVwgOwor57K+5YW1ID4gc2VpaGVpXCA7CivmjqHlr7ggPiBzYWlzdW5cIDsKK+mWi+WCmCA+IGthaXNhblwgOwor5om257+8ID4gZnV5b2t1XCA7CivmkI3kuqEgPiBzb25ib3VcIDsKK+mWg+WFiSA+IHNlbmtvdVwgOwor57Gg5bGFID4gcm91a3lvXCA7CivlnZHlpJYgPiBrb3VnYWlcIDsKK+aHuOi7jSA+IGtlbmd1blwgOwor6b6N6aasID4gcnl1dW1lXCA7Civnqbrpm7sgPiBrdXVkZW5cIDsKK+Wbm+abuCA+IHNoaXNob1wgOwor5oyZ5q2iID4ga3lvc2hpXCA7Civoo73lk4EgPiBzZWloaW5cIDsKK+epuumamyA+IGt1dXNhaVwgOwor5ZaE6YGTID4gemVuZG91XCA7CivmuIXpoqggPiBzZWlmdXVcIDsKK+euoeeKtiA+IGthbmpvdVwgOwor6Y2b6YysID4gdGFucmVuXCA7CivlnLDlsaQgPiBjaGlzb3VcIDsKK+eBq+S4rSA+IGthY2h1dVwgOwor5Zu95oqAID4ga29rdWdpXCA7CivpjLLpn7MgPiByb2t1b25cIDsKK+mNm+mLvCA+IHRhbmtvdVwgOwor6KOB5a6aID4gc2VpdGVpXCA7CivmiYDolLUgPiBzaG96b3VcIDsKK+mVt+WGhiA+IGNob3VlblwgOwor6ZaL5LyaID4ga2Fpa2FpXCA7CivmuKzpjpYgPiBzb2t1c2FcIDsKK+a9n+a5liA+IHNla2lrb1wgOwor5ZaJ6LyqID4gbm9kb3dhXCA7CivmuIvpnaIgPiBqdXVtZW5cIDsKK+mWieS8miA+IGhlaWthaVwgOwor5Zue5peLID4ga2Fpc2VuXCA7CivnrYbntJkgPiBoaXNzaGlcIDsKK+aNleaNiSA+IGhvc29rdVwgOwor56m66ZaoID4ga3V1a2VpXCA7Civmva7msJcgPiBzaGlva2VcIDsKK+WbnuaWhyA+IGthaWJ1blwgOwor5ryU55uuID4gZW5tb2t1XCA7CivnqbrplpMgPiBrdXVrYW5cIDsKK+WbveaGsiA+IGtva2tlblwgOwor5Zue5pWwID4ga2Fpc3V1XCA7CivmipXnqL8gPiB0b3Vrb3VcIDsKK+WbveaFtiA+IGtva2tlaVwgOwor5omN6Iq4ID4gc2FpZ2VpXCA7CivopIfliKkgPiBmdWt1cmlcIDsKK+ijj+WjsCA+IHVyYWdvZVwgOwor5rue57SNID4gdGFpbm91XCA7Civlm5vmlaMgPiBzaGlzYW5cIDsKK+a4k+mWkyA+IGtlaWthblwgOwor5oug54K5ID4ga3lvdGVuXCA7CivmiYvoirggPiBzaHVnZWlcIDsKK+a4rOmJmyA+IHNva3VlblwgOwor5Zyo5a6YID4gemFpa2FuXCA7CivlmbTnhZkgPiBmdW4nJ2VuXCA7Civmu57nsbMgPiB0YWliZWlcIDsKK+a8gueggiA+IGh5b3VzYVwgOwor6ZaA5Lq6ID4gbW9uamluXCA7CivnrYbnrpcgPiBoaXNzYW5cIDsKK+WbveaBqSA+IGtva3VvblwgOwor5o6D5bCEID4gc291c2hhXCA7CivpjpTop6MgPiB5b3VrYWlcIDsKK+ethuetlCA+IGhpdHRvdVwgOwor5omN6IWVID4gc2Fpd2FuXCA7Civlm7DmhoogPiBrb25wYWlcIDsKK+evgOawtCA+IHNlc3N1aVwgOwor5r2F5ryRID4ga2FuZ2FpXCA7CivnrYbnq68gPiBoaXR0YW5cIDsKK+etlOekvCA+IHRvdXJlaVwgOwor5omL6IWVID4gc2h1d2FuXCA7CivmvZzmsLQgPiBzZW5zdWlcIDsKK+a/gOaAkiA+IGdla2lkb1wgOwor5omN6IO9ID4gc2Fpbm91XCA7Civoo4XloasgPiBzb3V0ZW5cIDsKK+aLs+azlSA+IGtlbnBvdVwgOwor5riF6ZaRID4gc2Vpa2FuXCA7CivmjqXlnLAgPiBzZXRjaGlcIDsKK+mNm+mAoCA+IHRhbnpvdVwgOwor56uc6J2mID4gaXNlZWJpXCA7CivlnLDlpIkgPiBjaGloZW5cIDsKK+ihgOagkyA+IGtlc3NlblwgOwor5o6S5aSWID4gaGFpZ2FpXCA7Civlm6PmiYcgPiB1Y2hpd2FcIDsKK+aJi+iBtyA+IHRlam9rdVwgOwor56qT6L66ID4gbWFkb2JlXCA7CivooZPmlbAgPiBqdXNzdXVcIDsKK+exoOWfjiA+IHJvdWpvdVwgOwor5ryr54S2ID4gbWFuemVuXCA7Civmu57nqbogPiB0YWlrdXVcIDsKK+a3sembqiA+IG1peXVraVwgOwor5Zyw5aGKID4gY2hpa2FpXCA7Civlm57miKYgPiBrYWlzZW5cIDsKK+a/geW6piA+IGRha3Vkb1wgOwor5omL57+wID4gc2h1a2FuXCA7CivlnKjlpKkgPiB6YWl0ZW5cIDsKK+ihjOaXhSA+IGtvdXJ5b1wgOwor56i96aaWID4ga2Vpc2h1XCA7Civnq5zomY4gPiByeW91a29cIDsKK+WcqOWkliA+IHphaWdhaVwgOwor6KGw5oWLID4gc3VpdGFpXCA7CivooYzmlocgPiBrb3VidW5cIDsKK+ihgOabuCA+IGtlc3Nob1wgOwor6KOC5ZywID4ga2lyZWppXCA7CivlnZHlj6MgPiBrb3Vrb3VcIDsKK+WcsOWfnyA+IGNoaWlraVwgOwor5rib6YWNID4gZ2VucGFpXCA7CivnqY3pm7IgPiBzZWtpdW5cIDsKK+a6gOiSmSA+IG1hbm1vdVwgOwor5ry45ribID4gemVuZ2VuXCA7Civlm57mg7MgPiBrYWlzb3VcIDsKK+a7keepuiA+IGtha2t1dVwgOwor5rex6ZaTID4gZnVrYW1hXCA7Civmu5HnqL0gPiBrb2trZWlcIDsKK+a8q+a8qyA+IG1hbm1hblwgOwor6Yys6Yu8ID4gcmVua291XCA7CivooYDmlpEgPiBrZXBwYW5cIDsKK+eomumwpCA+IHdhcmFzYVwgOwor5rib6YCAID4gZ2VudGFpXCA7Civnq6/oiYcgPiB0YW50ZWlcIDsKK+aOpeWQuyA+IHNlcHB1blwgOwor5o6o5Y+CID4gc3Vpc2FuXCA7Civmi5jms6UgPiBrb3VkZWlcIDsKK+eti+ebriA+IHN1amltZVwgOwor5oim6ImmID4gc2Vua2FuXCA7Civoo5zliYcgPiBob3Nva3VcIDsKK+aNqOWtkCA+IHN1dGVnb1wgOwor5Zm05rOJID4gZnVuc2VuXCA7CivnqJrpro4gPiBjaGlheXVcIDsKK+icpeictCA+IHRva2FnZVwgOwor5oud5q6/ID4gaGFpZGVuXCA7CivnqJrprZogPiBjaGlneW9cIDsKK+Wdh+WLoiA+IGtpbnNlaVwgOwor5Zu95a+MID4ga29rdWZ1XCA7CivmjqHlj5YgPiBzYWlzaHVcIDsKK+WdkeWGhSA+IGtvdW5haVwgOwor5Zm05rC0ID4gZnVuc3VpXCA7CivmiYvntJkgPiB0ZWdhbWlcIDsKK+eul+azlSA+IHNhbnBvdVwgOwor5Zu95a2XID4ga29rdWppXCA7Civlm5rlvpIgPiBzaHV1dG9cIDsKK+ihsOW5oyA+IHN1aWhlaVwgOwor56+G5pu4ID4gdGVuc2hvXCA7CivnqK7poZ4gPiBzaHVydWlcIDsKK+a4hemFkiA+IHNlaXNodVwgOwor57KJ5L2TID4gZnVudGFpXCA7CivlnI/lpJYgPiBrZW5nYWlcIDsKK+ijnOWEnyA+IGhvc2hvdVwgOwor5ZWG6YGLID4gc2hvdXVuXCA7Civlm57lu4ogPiBrYWlyb3VcIDsKK+epuui7oiA+IGt1dXRlblwgOwor5Z2H5YiGID4ga2luYnVuXCA7Civmu4Xnp4EgPiBtZXNzaGlcIDsKK+epuui7jSA+IGt1dWd1blwgOwor56m66LuKID4ga3V1c2hhXCA7CivnsovkurogPiBzdWlqaW5cIDsKK+aJi+exoCA+IHRla2Fnb1wgOwor56m66LqrID4ga2FyYW1pXCA7CivmjIfmlbAgPiBzaGlzdXVcIDsKK+WWhOihjCA+IHplbmtvdVwgOwor6Yya6YyaID4gc291c291XCA7CivmiYvnsKEgPiBzaHVrYW5cIDsKK+eul+autSA+IHNhbmRhblwgOwor5riF6YGKID4gc2VpeXV1XCA7CivlnLDlkI0gPiBjaGltZWlcIDsKK+a6gOiFlCA+IG1hbmtvdVwgOwor5oqr54CdID4gaGlyZWtpXCA7Civmi5LmraIgPiBreW9zaGlcIDsKK+aJi+eusSA+IHRlYmFrb1wgOwor5omL566hID4gdGVrdWRhXCA7CivnrYbnlJ8gPiBoaXNzZWlcIDsKK+ijnOS/riA+IGhvc2h1dVwgOwor5o6l5YaZID4gc2Vzc2hhXCA7Civlm5vlt50gPiBzaGlzZW5cIDsKK+aJi+etiyA+IHRlc3VqaVwgOwor5omL562IID4gdGVoYXp1XCA7CivmjJnmiYsgPiBreW9zaHVcIDsKK+eqgeiyqyA+IHRva2thblwgOwor6KGh5bmzID4ga291aGVpXCA7CivmupbnuIQgPiBqdW5qb3VcIDsKK+eruee4gSA+IHRha2VlblwgOwor5o6S5Y21ID4gaGFpcmFuXCA7Civmua/oirEgPiB5dWJhbmFcIDsKK+a4m+izhyA+IGdlbnNoaVwgOwor6KGA5oimID4ga2Vzc2VuXCA7Civmh4foq4sgPiBrb25zZWlcIDsKK+aHh+irhyA+IGtvbmRhblwgOwor5o2o5aC0ID4gc3V0ZWJhXCA7CivmjqHlhYkgPiBzYWlrb3VcIDsKK+WcsOWLoiA+IGNoaXNlaVwgOwor5rmv6Ii5ID4geXVidW5lXCA7CivnrZLnirYgPiB0b3Vqb3VcIDsKK+ihhuaEmiA+IHNodXVndVwgOwor56iy6ZaAID4gdG91bW9uXCA7Civoo4HliKQgPiBzYWliYW5cIDsKK+ernOiDhiA+IHJpbmRvdVwgOwor5omA566hID4gc2hva2FuXCA7Civmt7Hpg6ggPiBzaGluYnVcIDsKK+aIuOexjSA+IGtvc2VraVwgOwor5o6i5YG1ID4gdGFudGVpXCA7Civnr4Dmk40gPiBzZXNzb3VcIDsKK+iiq+WRiiA+IGhpa29rdVwgOwor5re36L+3ID4ga29ubWVpXCA7Civmu4Xnm7ggPiBtZXNzb3VcIDsKK+err+e3miA+IHRhbnNlblwgOwor56uv57eSID4gdGFuY2hvXCA7CivlnKjli6QgPiB6YWlraW5cIDsKK+a9lOaWjiA+IGtlc3NhaVwgOwor5oiQ6IKyID4gc2VpaWt1XCA7CivonIjomqMgPiBtdWthZGVcIDsKK+Wcp+WLnSA+IGFzc2hvdVwgOwor5rW36bygID4gbmFtYWtvXCA7CivmiKbnt5ogPiBzZW5zZW5cIDsKK+a8v+aenCA+IHNob3VrYVwgOwor5Zu65Z+3ID4ga29zaHV1XCA7CivmjqXkvLQgPiBzZXBwYW5cIDsKK+erueewgCA+IHRha2VzdVwgOwor5Zmo5qW9ID4ga2lnYWt1XCA7CivlnLDlhYMgPiBqaW1vdG9cIDsKK+a3t+i8iSA+IGtvbnNhaVwgOwor5ray6Z2iID4gZWtpbWVuXCA7Civom4fotrMgPiBkYXNva3VcIDsKK+a7vua7viA+IGtvbmtvblwgOwor5Zu95ZyfID4ga29rdWRvXCA7CivombnpnJMgPiBrb3VnZWlcIDsKK+ihjOW5uCA+IG1peXVraVwgOwor6KGM5bm0ID4ga291bmVuXCA7Civnqbroq5YgPiBrdXVyb25cIDsKK+epuuirhyA+IGt1dWRhblwgOwor5ryB5rivID4gZ3lva291XCA7CivmuIXosqcgPiBzZWloaW5cIDsKK+aJjeefpSA+IHNhaWNoaVwgOwor6J2L57SZID4gcm91c2hpXCA7CivmhJvps6UgPiBhaWNob3VcIDsKK+ibruihjCA+IGJhbmtvdVwgOwor5ryP5rC0ID4gcm91c3VpXCA7CivllYborbAgPiBzaG91Z2lcIDsKK+igseaDkSA+IGtvd2FrdVwgOwor5oiv56yRID4gZ2lzaG91XCA7CivnrYvngo4gPiBraW4nJ2VuXCA7CivmjpLkvr8gPiBoYWliZW5cIDsKK+WbveWWtiA+IGtva3VlaVwgOwor5Zub5aeTID4gc2hpc2VpXCA7Civmi67mja4gPiBraWtreW9cIDsKK+aKq+attCA+IGhpcmVraVwgOwor5o2V5ZuaID4gaG9zaHV1XCA7Civlm57lpKkgPiBrYWl0ZW5cIDsKK+aMr+WtkCA+IGZ1cmlrb1wgOwor5Zm45pWwID4gdG9uc3V1XCA7CivmvIHms5UgPiBneW9ob3VcIDsKK+ijheS4gSA+IHNvdXRlaVwgOwor5Zuj5aGKID4gZGFua2FpXCA7CivmjaflkYggPiBob3V0ZWlcIDsKK+a4m+ihsCA+IGdlbnN1aVwgOwor5Zyw5LujID4gY2hpZGFpXCA7CivmiKbnq68gPiBzZW50YW5cIDsKK+WWq+e3iiA+IGtpa2tpblwgOwor5Zub5aOwID4gc2hpc2VpXCA7CivmiYvnmZYgPiB0ZWt1c2VcIDsKK+aLruaKlyA+IGtpa2tvdVwgOwor6Yyv6KqkID4gc2FrdWdvXCA7CivnqI7plqIgPiB6ZWlrYW5cIDsKK+a8geawkSA+IGd5b21pblwgOwor5Zyo5L2PID4gemFpanV1XCA7CivomorpiaQgPiBrYWJhcmlcIDsKK+aMh+W8viA+IHNoaWRhblwgOwor5Zue5aCxID4ga2FpaG91XCA7CivlnLDkuIogPiBjaGlqb3VcIDsKK+WcqOS7uyA+IHphaW5pblwgOwor5Zyn5LyPID4gYXBwdWt1XCA7Civmva7lubIgPiBzaGlvaGlcIDsKK+a1t+mtmiA+IGthaWd5b1wgOwor5Zec55ygID4gc2hpbWluXCA7CivnrpfmlbAgPiBzYW5zdXVcIDsKK+Wcn+S/tSA+IGRvaHlvdVwgOwor5ZyS5YaFID4gZW4nJ25haVwgOwor5Zuj5ZywID4gZGFuY2hpXCA7CivlnJ/kv5cgPiBkb3pva3VcIDsKK+iaiumHnSA+IGthYmFyaVwgOwor6KGG5a+hID4gc2h1dWthXCA7Civmipzmra8gPiBiYXNzaGlcIDsKK+a9ruW3riA+IGNob3VzYVwgOwor5r+D5Y6aID4gbm91a291XCA7CivmvKLmm7ggPiBrYW5zaG9cIDsKK+aJk+eQgyA+IGRha3l1dVwgOwor6by76Y+hID4gYmlreW91XCA7CivnrKbniZIgPiBmdWNob3VcIDsKK+WcqOS4liA+IHphaXNlaVwgOwor5o6I5LmzID4ganVueXV1XCA7CivmtbfpqaIgPiBhc2hpa2FcIDsKK+a8q+aWhyA+IG1hbmJ1blwgOwor6KGo5ZyfID4gaHlvdWRvXCA7CivmiJDnrpcgPiBzZWlzYW5cIDsKK+WbveWLmSA+IGtva3VtdVwgOwor5raI6Z+zID4gc2hvdW9uXCA7CivnsKHljZggPiBrYW50YW5cIDsKK+aIkeetiSA+IHdhcmVyYVwgOwor5oy95ZueID4gYmFua2FpXCA7CivmipjmqrsgPiBzZWtrYW5cIDsKK+epuuiZmiA+IGt1dWt5b1wgOwor5r+A5YuZID4gZ2VraW11XCA7CivlnJ/kuK0gPiBkb2NodXVcIDsKK+aJgOeUqCA+IHNob3lvdVwgOwor5omA55SjID4gc2hvc2FuXCA7CivmvKLmlrkgPiBrYW5wb3VcIDsKK+a3uuimiyA+IHNlbmtlblwgOwor6J6N54K5ID4geXV1dGVuXCA7Civlm73liKkgPiBrb2t1cmlcIDsKK+a8ouaWhyA+IGthbmJ1blwgOwor5omL546JID4gdGVkYW1hXCA7Civmu5Tmu5QgPiB0b3V0b3VcIDsKK+WWqueroCA+IG1vc2hvdVwgOwor5oiQ56m6ID4gc2Vpa3V1XCA7CivlmofmgJIgPiBrYWt1ZG9cIDsKK+Wbo+WToSA+IGRhbicnaW5cIDsKK+ethuazlSA+IGhpcHBvdVwgOwor5rW36aKoID4ga2FpZnV1XCA7CivmiYvni60gPiB0ZXplbWFcIDsKK+WbveWFiSA+IGtva2tvdVwgOwor5oyH5bCOID4gc2hpZG91XCA7CivpvL7phZQgPiBrYW5zdWlcIDsKK+mKgOmxlyA+IGdpbnJpblwgOwor5oSf6Zu7ID4ga2FuZGVuXCA7CivllZPokpkgPiBrZWltb3VcIDsKK+ihhuWkmiA+IHNodXV0YVwgOwor56iO6YeRID4gemVpa2luXCA7CivmjIflrpogPiBzaGl0ZWlcIDsKK+a4qeiJryA+IG9ucnlvdVwgOwor5Zaq56WtID4gc291c2FpXCA7Civmh5Dog44gPiBrYWl0YWlcIDsKK+a1t+mdoiA+IGthaW1lblwgOwor6buS6bWQID4ga3Vyb2ppXCA7CivntK/jgIUgPiBydWlydWlcIDsKK+a8q+aJjSA+IG1hbnphaVwgOwor6KCP5bqnID4ga2FuaXphXCA7CivoobDli6IgPiBzdWlzZWlcIDsKK+a8geadkSA+IGd5b3NvblwgOwor5rW36ZujID4ga2FpbmFuXCA7CivloILjgIUgPiBkb3Vkb3VcIDsKK+WbguWbgiA+IGdvdWdvdVwgOwor5ryB5pyfID4gcnlvdWtpXCA7CivnqbrojbcgPiBrYXJhbmlcIDsKK+aKseaTgSA+IGhvdXlvdVwgOwor6Yuz6LKoID4gY2h1dWthXCA7CivooYDloYogPiBrZWtrYWlcIDsKK+Wbm+WNgyA+IHlvbnNlblwgOwor5Zub5Y2BID4geW9uanV1XCA7CivnsKHkvr8gPiBrYW5iZW5cIDsKK+WbveS8miA+IGtva2thaVwgOwor566h5bymID4ga2FuZ2VuXCA7CivmtbfpmLIgPiBrYWlib3VcIDsKK+WUkOipqSA+IHRvdXNoaVwgOwor6by76LyqID4gaGFuYXdhXCA7Civlm73kuqQgPiBrb2trb3VcIDsKK+WbveS6iyA+IGtva3VqaVwgOwor5rW36ZaiID4ga2Fpa2FuXCA7CivmipXmm7ggPiB0b3VzaG9cIDsKK+a1t+mWgCA+IGthaW1vblwgOwor5Zuz5L2TID4genV1dGFpXCA7CivnrrHlsYsgPiBoYWtveWFcIDsKK+a7heazlSA+IG1lcHBvdVwgOwor5Zub5YiGID4gc2hpYnVuXCA7CivmirXmipcgPiB0ZWlrb3VcIDsKK+mRveWtlCA+IHNhbmtvdVwgOwor5r+B5LiWID4gZGFrdXNlXCA7CivngrnjgIUgPiB0ZW50ZW5cIDsKK+m9suidlSA+IHVzaG9rdVwgOwor5omL5ryJID4gdGVzdWtpXCA7CivooajlhbcgPiBoeW91Z3VcIDsKK+mNm+e3tCA+IHRhbnJlblwgOwor6J+55bqnID4ga2FuaXphXCA7Civomq/ompMgPiBtaW1penVcIDsKK+a6tua2siA+IHlvdWVraVwgOwor5ryB5pKIID4gZ3lvcm91XCA7Civnr4DlpY8gPiBzZXNzb3VcIDsKK+WVhuiIlyA+IHNob3Vob1wgOwor6Yu86KO9ID4ga291c2VpXCA7Civmi5DluK8gPiBrYWl0YWlcIDsKK+a4m+iAlyA+IGdlbm1vdVwgOwor56uv54mpID4gaGFtb25vXCA7CivmhJ/pipggPiBrYW5tZWlcIDsKK+aIpueKryA+IHNlbnBhblwgOwor5oqx5oeQID4gaG91a2FpXCA7CivooYzlj7ggPiBneW91amlcIDsKK+aLheW9kyA+IHRhbnRvdVwgOwor56+J5Z+OID4gdHN1aWtpXCA7CivnqpLntKAgPiBjaGlzc29cIDsKK+Wbo+S9kyA+IGRhbnRhaVwgOwor5oug5a6IID4ga3lvc2h1XCA7Civpi63op5IgPiBlaWtha3VcIDsKK+enmOmMsiA+IGhpcm9rdVwgOwor5oub5a60ID4gc2hvdWVuXCA7Civnp4Hpl5ggPiBzaGl0b3VcIDsKK+ihsOS6oSA+IHN1aWJvdVwgOwor56uc546LID4gcnl1dW91XCA7Civnq6/nhLYgPiB0YW56ZW5cIDsKK+Wbo+S6pCA+IGRhbmtvdVwgOwor5Zm05bCEID4gZnVuc2hhXCA7CivooYzli5UgPiBrb3Vkb3VcIDsKK+WVj+e9qiA+IG1vbnphaVwgOwor5omL5rOVID4gc2h1aG91XCA7Civpu5vpnZIgPiB0YWlzZWlcIDsKK+aLmeWuiCA+IHNlc3NodVwgOwor6KGw5LiWID4gc3Vpc2VpXCA7Civom4fohbkgPiBqYWJhcmFcIDsKK+etieaWuSA+IHRvdWhvdVwgOwor5ZG96aGMID4gbWVpZGFpXCA7CivmvZzlnKggPiBzZW56YWlcIDsKK+aFo+ihjCA+IGthbmtvdVwgOwor5omL5rC0ID4gdGVtaXp1XCA7CivmirXlvZMgPiB0ZWl0b3VcIDsKK+aEm+mDtyA+IGFpa3lvdVwgOwor56yR5rCXID4gc2hvdWtpXCA7Civmup3muKAgPiBrb3VreW9cIDsKK+aKl+aLkiA+IGtvdWt5b1wgOwor5oim54G9ID4gc2Vuc2FpXCA7CivpipjpipggPiBtZWltZWlcIDsKK+aJi+avrCA+IHRlbWFyaVwgOwor5oqY5oqYID4gb3Jpb3JpXCA7Civmua/njokgPiB5dWRhbWFcIDsKK+aMq+WCtyA+IHphc2hvdVwgOwor566X5a6aID4gc2FudGVpXCA7Civnq7bmvJQgPiBreW91ZW5cIDsKK+aMmeWLlSA+IGt5b2RvdVwgOwor5rWB6Z+zID4gcnl1dW9uXCA7CivmiYvmrrUgPiBzaHVkYW5cIDsKK+aIkOeKrCA+IHNlaWtlblwgOwor6Y6u54GrID4gY2hpbmthXCA7CivmipfmiKYgPiBrb3VzZW5cIDsKK+m7kumbsiA+IGtva3V1blwgOwor5oqV5omLID4gdG91c2h1XCA7CivmuoDngrkgPiBtYW50ZW5cIDsKK+ihjOWEgCA+IGd5b3VnaVwgOwor6Y2155ukID4ga2VuYmFuXCA7CivmtYHpnLIgPiByeXV1cm9cIDsKK+aKiuaNiSA+IGhhc29rdVwgOwor5oyH5ZCRID4gc2hpa291XCA7CivooYDliKQgPiBrZXBwYW5cIDsKK+aMh+WQjSA+IHNoaW1laVwgOwor6Je76aGeID4gc291cnVpXCA7CivmtYHpm6IgPiByeXV1cmlcIDsKK+mKmOmFkiA+IG1laXNodVwgOwor5rW36YGTID4ga2FpZG91XCA7CivpvKDos4ogPiBzb3pva3VcIDsKK+aMmeWFtSA+IGt5b2hlaVwgOwor5rip56qBID4gb25kb3J1XCA7CivmiYvmqZ8gPiB0ZWJhdGFcIDsKK+mRkeWumiA+IGthbnRlaVwgOwor5oyZ5YWaID4ga3lvdG91XCA7Civmi7fllY8gPiBnb3Vtb25cIDsKK+aMh+WNlyA+IHNoaW5hblwgOwor6J6N5pyXID4geXV1cm91XCA7CivpurrpoZ4gPiBtZW5ydWlcIDsKK+a4m+eulyA+IGdlbnphblwgOwor6YqF6YqtID4gZG91c2VuXCA7Civnq7bms7MgPiBreW91ZWlcIDsKK+ihjOS9vyA+IGtvdXNoaVwgOwor5oi45q+OID4ga29nb3RvXCA7CivpioXpibEgPiBkb3Vrb3VcIDsKK+a4m+etiSA+IGdlbnRvdVwgOwor5omL5qWtID4gdGV3YXphXCA7CivmvLjlopcgPiB6ZW56b3VcIDsKK+emj+mfsyA+IGZ1a3VpblwgOwor5rqQ5rOJID4gZ2Vuc2VuXCA7Civmtbfou40gPiBrYWlndW5cIDsKK+a2iOiyuyA+IHNob3VoaVwgOwor5rqA5rqAID4gbWFubWFuXCA7CivmtarpgJ8gPiBuYW5pd2FcIDsKK+mKgOmJsSA+IGdpbmtvdVwgOwor6KGM5Lq6ID4ga291amluXCA7CivllY/nrZQgPiBtb25kb3VcIDsKK+WQuemztCA+IHN1aW1laVwgOwor562G5omNID4gaGlzc2FpXCA7CivooYzkuosgPiBneW91amlcIDsKK+mKgOmItCA+IGdpbnJlaVwgOwor5riF57SUID4gc2VpanVuXCA7CivnrYbmiKYgPiBoaXNzZW5cIDsKK+enu+iorSA+IGlzZXRzdVwgOwor6Jma6KqVID4ga3lvdGFuXCA7CivmiKbms5UgPiBzZW5wb3VcIDsKK+a3i+iPjCA+IHJpbmtpblwgOwor5rq25p2QID4geW91emFpXCA7CivmuJvnqI4gPiBnZW56ZWlcIDsKK+aKl+W8gSA+IGtvdWJlblwgOwor562W5b+cID4gc2FrdW91XCA7CivnqbrnqbogPiBrdXVrdXVcIDsKK+ertuatqSA+IGt5b3Vob1wgOwor5riF57KLID4gc2Vpc3VpXCA7Civnp4HpgrggPiBzaGl0ZWlcIDsKK+m6qumhniA+IG1lbnJ1aVwgOwor5rip55+zID4gb25qYWt1XCA7CivomZroqIAgPiBreW9nZW5cIDsKK+m7kumNtSA+IGtva2tlblwgOwor5omL5p+EID4gdGVnYXJhXCA7Civnp4HpgbggPiBzaGlzZW5cIDsKK+aJi+aetyA+IHRla2FzZVwgOwor5re357eaID4ga29uc2VuXCA7Civnp4HpgZMgPiBzaGlkb3VcIDsKK+ethuaEjyA+IGhpdHN1aVwgOwor56+A5Yi2ID4gc2Vzc2VpXCA7Civnq6/mraMgPiB0YW5zZWlcIDsKK+aJi+acrSA+IHRlZnVkYVwgOwor5riF566XID4gc2Vpc2FuXCA7CivnrZTlvIEgPiB0b3ViZW5cIDsKK+aJgeahgyA+IGhlbnRvdVwgOwor5r2c5Ye9ID4gc2Vua2FuXCA7CivmtJfpoZQgPiBzZW5nYW5cIDsKK+aLneWVkyA+IGhhaWtlaVwgOwor5oim5q27ID4gc2Vuc2hpXCA7CivmiYvmm7ggPiBzaHVzaG9cIDsKK+a3t+e0oSA+IGtvbmJvdVwgOwor5ZOA6Kq/ID4gYWljaG91XCA7CivmtZzovrogPiBoYW1hYmVcIDsKK+aEn+isnSA+IGthbnNoYVwgOwor6buS6YmbID4ga29rdWVuXCA7CivmiY3mmbogPiBzYWljaGlcIDsKK+WTgeipniA+IGhpbnNoaVwgOwor5rqA5rC0ID4gbWFuc3VpXCA7CivmiLjmo5ogPiB0b2RhbmFcIDsKK+a0i+mkqCA+IHlvdWthblwgOwor6byO6KuHID4gdGVpZGFuXCA7Civmub/msJcgPiBzaGlra2VcIDsKK+igleWLlSA+IHplbmRvdVwgOwor5oiR5rWBID4gZ2FyeXV1XCA7CivllYbnp5EgPiBzaG91a2FcIDsKK+aLneWRvSA+IGhhaW1laVwgOwor5oKq6aKoID4gYWt1ZnV1XCA7CivmtJfpnaIgPiBzZW5tZW5cIDsKK+aLneWRiCA+IGhhaXRlaVwgOwor5r2w5LmxID4ga2FpcmFuXCA7CivmtIvpoqggPiB5b3VmdXVcIDsKK+epuuegsiA+IGt1dWhvdVwgOwor5r2c5YOPID4gc2Vuem91XCA7CivmhJvoqq0gPiBhaWRva3VcIDsKK+aJi+aXlyA+IHRlYmF0YVwgOwor5oSb6KqmID4gYWlzaG91XCA7CivmiYDmnJsgPiBzaG9tb3VcIDsKK+aJgOaciSA+IHNob3l1dVwgOwor6buS6YWSID4ga3Vyb2tpXCA7CivmiZPmkrIgPiBkYWJva3VcIDsKK+aMh+S7pCA+IHNoaXJlaVwgOwor56qD55uXID4gc2V0dG91XCA7CivpioDovKogPiBnaW5yaW5cIDsKK+emhemWgCA+IHplbm1vblwgOwor5omT5pKDID4gZGFnZWtpXCA7Civnr4DlgLkgPiBzZWtrZW5cIDsKK+aJv+W8lSA+IHNob3VpblwgOwor56+E5L6LID4gaGFucmVpXCA7Civpu4TpioUgPiBrb3Vkb3VcIDsKK+aEj+itmCA+IGlzaGlraVwgOwor5rSe6ZaAID4gZG91bW9uXCA7CivnpZ7ppqwgPiBzaGlubWVcIDsKK+aKleWwhCA+IHRvdXNoYVwgOwor566d5Y+jID4ga2Fua291XCA7CivllqvmsLQgPiBraXNzdWlcIDsKK+WQuOmjsiA+IGt5dXVpblwgOwor56m655uuID4gc29yYW1lXCA7Civlk4HooYwgPiBoaW5rb3VcIDsKK+a5r+awtCA+IHl1bWl6dVwgOwor5omB5peBID4gaGVuYm91XCA7CivmgqrpnIogPiBha3VyZWlcIDsKK+m7hOmHkSA+IGtvZ2FuZVwgOwor5omL5pG6ID4gdGVzdXJpXCA7CivnqIDoloQgPiBraWhha3VcIDsKK+eri+azlSA+IHJpcHBvdVwgOwor5oyB5LmFID4gamlreXV1XCA7Civnr4DkvJogPiBzZWNoaWVcIDsKK+aIkeassiA+IGdheW9rdVwgOwor5rmv5q6/ID4geXVkb25vXCA7Civnq6/moKogPiBoYWthYnVcIDsKK+evgOS7iyA+IHNla2thaVwgOwor57K+44CFID4gc2VpemVpXCA7Civmi5Dlj5YgPiBrYWlzaHVcIDsKK+engeiyoSA+IHNoaXphaVwgOwor5ZC46Z+zID4ga3l1dW9uXCA7CivnrqHliLYgPiBrYW5zZWlcIDsKK+a5p+awtCA+IHl1dXN1aVwgOwor6J2L5qKFID4gcm91YmFpXCA7CivmuJrnlZQgPiBzaG9oYW5cIDsKK+WWtualrSA+IGVpZ3lvdVwgOwor5rib55SjID4gZ2Vuc2FuXCA7Civpi7znt5ogPiBrb3VzZW5cIDsKK+a6luaYnyA+IGp1bnNlaVwgOwor5ZCI6bSoID4gYWlnYW1vXCA7CivmiYvmjIcgPiBzaHVzaGlcIDsKK+m7hOmBkyA+IGtvdWRvdVwgOwor5omL5outID4gdGVmdWtpXCA7Civnq7bmmKAgPiBreW91ZWlcIDsKK+WQuembqiA+IGZ1YnVraVwgOwor5rq65oSbID4gZGVraWFpXCA7Civmua/mp70gPiB5dWJ1bmVcIDsKK+eti+WtkCA+IHN1amlrb1wgOwor5oSB6Ki0ID4gc2h1dXNvXCA7CivolqvpppkgPiBrdW5rb3VcIDsKK+mJhOmLvCA+IHRla2tvdVwgOwor56eB6KuWID4gc2hpcm9uXCA7CivmvKLlkI0gPiBrYW5tZWlcIDsKK+a5luayvCA+IGtvc2hvdVwgOwor6JqV57SZID4gc2Fuc2hpXCA7CivompXns7ggPiBzYW5zaGlcIDsKK+aCjOmghiA+IHRlaWp1blwgOwor5rSX6YysID4gc2VucmVuXCA7CivmuoDmna8gPiBtYW5wYWlcIDsKK+iWrOmkjCA+IHlha3VqaVwgOwor6Y285rK7ID4gc2hpbmppXCA7CivpiYTpibEgPiB0ZWtrb3VcIDsKK+emj+mBiyA+IGZ1a3V1blwgOwor5oq85Y+OID4gb3VzaHV1XCA7Civnq6/mlbQgPiB0YW5zZWlcIDsKK+iWq+miqCA+IGt1bnB1dVwgOwor56m255CGID4ga3l1dXJpXCA7CivpjLLnlLsgPiByb2t1Z2FcIDsKK+mKk+ihoSA+IHNlbmtvdVwgOwor5rKz6bm/ID4ga2FqaWthXCA7Civpi7znrqEgPiBrb3VrYW5cIDsKK+m8u+e/vCA+IGJpeW9rdVwgOwor5ryG5ZmoID4gc2hpa2tpXCA7CivnpoHphZIgPiBraW5zaHVcIDsKK+iXqemCuCA+IGhhbnRlaVwgOwor5oim5pWXID4gc2VucGFpXCA7Civnp4HoposgPiBzaGlrZW5cIDsKK+a1hOiyoSA+IGpvdXphaVwgOwor6JmO6JC9ID4gbW9nYXJpXCA7CivmtbfomL8gPiBmdW5vcmlcIDsKK+aJgOaHkCA+IHNob2thaVwgOwor5rip54G4ID4gb25reXV1XCA7Civmtbfol7sgPiBrYWlzb3VcIDsKK+aJh+aDhSA+IHNlbmpvdVwgOwor56eB6KO9ID4gc2hpc2VpXCA7Civmgqrpiq0gPiBha3VzZW5cIDsKK+ekvumiqCA+IHNoYWZ1dVwgOwor5ZCN6aaZID4gbWVpa291XCA7CivlkozoqLMgPiB3YXlha3VcIDsKK+mKheijvSA+IGRvdXNlaVwgOwor5rqW5ougID4ganVua3lvXCA7CivmtpnohbogPiBydWlzZW5cIDsKK+etieWkliA+IHRvdWdhaVwgOwor5oqx5Y21ID4gaG91cmFuXCA7CivmiZXlupUgPiBmdXR0ZWlcIDsKK+aJgOaEnyA+IHNob2thblwgOwor5rSL6YqAID4geW91Z2luXCA7Civnp5jolqwgPiBoaXlha3VcIDsKK+mOruaSqyA+IGNoaW5idVwgOwor56S+6aCtID4gc2hhdG91XCA7Civnp4HooYwgPiBzaGlrb3VcIDsKK+WWquacjSA+IG1vZnVrdVwgOwor566X5L2TID4gc2FudGFpXCA7CivlkozopqogPiB3YXNoaW5cIDsKK+aJi+W9uSA+IHRleWFrdVwgOwor6YqA6KO9ID4gZ2luc2VpXCA7Civpu5noqLEgPiBtb2treW9cIDsKK+aJi+W9oiA+IHRlZ2F0YVwgOwor56u25oqAID4ga3lvdWdpXCA7CivompXnqK4gPiBzYW5zaHVcIDsKK+aJk+W4rSA+IGRhc2VraVwgOwor5riv5rm+ID4ga291d2FuXCA7CivolqvpmbYgPiBrdW50b3VcIDsKK+aJi+W8lSA+IHRlYmlraVwgOwor5ri+5rKMID4ga29udG9uXCA7CivmuJvngrkgPiBnZW50ZW5cIDsKK+aJh+W9oiA+IHNlbmtlaVwgOwor5ryU5YqHID4gZW5nZWtpXCA7CivmgqrphZIgPiBha3VzaHVcIDsKK+aJgOaAnSA+IHNob3NoaVwgOwor56aB6Ly4ID4ga2luJyd5dVwgOwor5rWu6JaEID4gZnVoYWt1XCA7CivlkIzpoZ4gPiBkb3VydWlcIDsKK+mKgOihjCA+IGdpbmtvdVwgOwor5omN5bm5ID4gc2Fpa2FuXCA7CivmtIvphZIgPiB5b3VzaHVcIDsKK+m+jeeOiyA+IHJ5dXVvdVwgOwor5oOF6LajID4gam91c2h1XCA7CivmiJDmlocgPiBzZWlidW5cIDsKK+aHuOahiCA+IGtlbicnYW5cIDsKK+aJi+W4syA+IHRlY2hvdVwgOwor5oiQ5pWXID4gc2VpYmFpXCA7CivomZrogZ4gPiBreW9idW5cIDsKK+aLheS9kyA+IHRhbnRhaVwgOwor5omL5biWID4gdGVjaG91XCA7CivpiI3plpMgPiBub3JvbWFcIDsKK+mHnemtmiA+IGhhcml5b1wgOwor5omL5belID4gc2h1a291XCA7Civms6LplpMgPiBuYW1pbWFcIDsKK+m8k+iGnCA+IGtvbWFrdVwgOwor5oar54S2ID4gYmluemVuXCA7CivmgqrpgZMgPiBha3Vkb3VcIDsKK+a1heimiyA+IHNlbmtlblwgOwor6YeO6bOlID4geWFjaG91XCA7Civms6LplbcgPiBoYWNob3VcIDsKK+m8k+iFuSA+IGtvZnVrdVwgOwor6byT6IW4ID4ga29jaG91XCA7CivmsrvpqJMgPiBjaGlrZW5cIDsKK+a6tuWyqSA+IHlvdWdhblwgOwor5rW36I2JID4ga2Fpc291XCA7Civms5Xpm6MgPiBob3VuYW5cIDsKK+WRs+iqrSA+IG1pZG9rdVwgOwor5rSX6LuKID4gc2Vuc2hhXCA7CivlkYrovp4gPiBrb2t1amlcIDsKK+WQhOmghSA+IGtha2tvdVwgOwor5rK46aiwID4gZnV0dG91XCA7CivmuKnmtbcgPiBhdHN1bWlcIDsKK+WWhOalrSA+IHplbmdvdVwgOwor5omB5bmzID4gaGVucGVpXCA7Civnq4vmlrkgPiByaXBwb3VcIDsKK+esoOWtkCA+IGthc2Fnb1wgOwor5rS76KiIID4ga2Fra2VpXCA7CivmipXlkIggPiB0b3Vnb3VcIDsKK+aGpOeEtiA+IGZ1bnplblwgOwor5Y+36aSoID4gZ291a2FuXCA7Civmu57lnKggPiB0YWl6YWlcIDsKK+a4oea4iSA+IHRvc2hvdVwgOwor5omA5bivID4gc2hvdGFpXCA7Civmipfljp8gPiBrb3VnZW5cIDsKK+a4pua1gSA+IGthcnl1dVwgOwor5ryi5Lq6ID4ga2FuamluXCA7CivmvIHlirQgPiBneW9yb3VcIDsKK+a1quiPryA+IG5hbml3YVwgOwor5oqY5Y2KID4gc2VwcGFuXCA7Civph5HprZogPiBraW5neW9cIDsKK+WYhuWjsCA+IHRhbnNlaVwgOwor6YqY6Iy2ID4gbWVpY2hhXCA7Civnp7Dnvo4gPiBzaG91YmlcIDsKK+engeiUtSA+IHNoaXpvdVwgOwor5ZGz6KaaID4gbWlrYWt1XCA7CivpvpXnga8gPiBnYW5kb3VcIDsKK+m7tOiPjCA+IGJhaWtpblwgOwor5oqc5YmjID4gYmFra2VuXCA7CivlloTmoLkgPiB6ZW5rb25cIDsKK+WQjemWgCA+IG1laW1vblwgOwor56m65rivID4ga3V1a291XCA7CivlkIzploAgPiBkb3Vtb25cIDsKK+ibruawkSA+IGJhbm1pblwgOwor5oqc5YiAID4gYmF0dG91XCA7Civlj7DpoqggPiB0YWlmdXVcIDsKK+aFp+ecvCA+IGtlaWdhblwgOwor5omN5a2QID4gc2Fpc2hpXCA7CivpjJjnirYgPiBzdWlqb3VcIDsKK+a6tuWqkiA+IHlvdWJhaVwgOwor56aF6K2yID4gemVuam91XCA7Civmsr/pnakgPiBlbmtha3VcIDsKK+a1quiKsSA+IG5hbml3YVwgOwor56uv5b25ID4gaGF5YWt1XCA7Civlj7DpoZQgPiBkYWlnYW5cIDsKK+WRiei2iiA+IGdvZXRzdVwgOwor5Y+w6aCtID4gdGFpdG91XCA7CivmuIvmu54gPiBqdXV0YWlcIDsKK+a3t+eEtiA+IGtvbnplblwgOwor562L5ZCIID4gc3VqaWFpXCA7CivmuJvms5UgPiBnZW5wb3VcIDsKK+aKleWHvSA+IHRvdWthblwgOwor5ZaE5pu4ID4gemVuc2hvXCA7CivnqbrmtJ4gPiBrdXVkb3VcIDsKK+mIkemHkSA+IGJhbmtpblwgOwor5rqQ5bmzID4gZ2VucGVpXCA7CivlkI3pkZEgPiBtZWlrYW5cIDsKK+etieWPtyA+IHRvdWdvdVwgOwor5Zej5a2QID4gc2hpc2hpXCA7Civph47pp5IgPiBub2dvbWFcIDsKK+a1ruiFqyA+IG11a3VtaVwgOwor5rib5rC0ID4gZ2Vuc3VpXCA7Civpurvoo48gPiBhc2F1cmFcIDsKK+eorueXmCA+IHNodXRvdVwgOwor6YiN6YeNID4gZG9uanV1XCA7Civlj6npoK0gPiBrb3V0b3VcIDsKK+aGsuazlSA+IGtlbnBvdVwgOwor5omA5a6aID4gc2hvdGVpXCA7Civph5jpoK0gPiB0ZWl0b3VcIDsKK+emgOiriyA+IHJpbnNlaVwgOwor5raZ566hID4gcnVpa2FuXCA7CivmiYDlrZggPiBzaG96b25cIDsKK+azpemFlCA+IGRlaXN1aVwgOwor5rib5q66ID4gZ2Vuc2FpXCA7CivmuJvmrrUgPiBnZW50YW5cIDsKK+mOruW6pyA+IGNoaW56YVwgOwor56mC54q2ID4gc3Vpam91XCA7Civlj6PpoK0gPiBrb3V0b3VcIDsKK+a4hea4hSA+IHNlaXNlaVwgOwor5ZCI6Y21ID4gYWlrYWdpXCA7CivnrYbli6IgPiBoaXNzZWlcIDsKK+eri+aGsiA+IHJpa2tlblwgOwor5ZaE5pS/ID4gemVuc2VpXCA7CivmtJ7oposgPiBkb3VrZW5cIDsKK+ekvOmHkSA+IHJlaWtpblwgOwor5oeQ5p+UID4ga2FpanV1XCA7Civlj43pqLAgPiBoYW50b3VcIDsKK+iYmuiLlCA+IHNlbnRhaVwgOwor5rqA5bmyID4gbWFua2FuXCA7Civnpr3oiI4gPiBraW5zaGFcIDsKK+WRiuirrSA+IGtva3V5dVwgOwor5riF5rWEID4gc2Vpam91XCA7CivnrYnliIYgPiB0b3VidW5cIDsKK+epuuashCA+IGt1dXJhblwgOwor5rKh6aCtID4gYm90dG91XCA7CivmipfkvZMgPiBrb3V0YWlcIDsKK+WPpembhiA+IGt1c2h1dVwgOwor5omL5aGpID4gdGVzaGlvXCA7Civmub/luIMgPiBzaGlwcHVcIDsKK+err+WxsSA+IGhheWFtYVwgOwor5oOj6I+cID4gc291emFpXCA7CivmiJDlvaIgPiBzZWlrZWlcIDsKK+ernOW6pyA+IHJ5dXV6YVwgOwor6YmE6KO9ID4gdGVzc2VpXCA7CivlkYroqLQgPiBrb2t1c29cIDsKK+a1t+e2vyA+IGthaW1lblwgOwor5Zec5aW9ID4gc2hpa291XCA7Civlj5fpoJggPiBqdXJ5b3VcIDsKK+ethuWGmSA+IGhpc3NoYVwgOwor5riH5rC0ID4ga2Fzc3VpXCA7CivmuIjmsJEgPiBzYWltaW5cIDsKK+emgeihmyA+IGtpbicnZWlcIDsKK+aKl+S6iSA+IGtvdXNvdVwgOwor5riF5rC0ID4gc2Vpc3VpXCA7CivlkIjph5EgPiBnb3VraW5cIDsKK+a3t+a3hiA+IGtvbmtvdVwgOwor5ZOB562JID4gaGludG91XCA7Civmib/lhYEgPiBzaG91aW5cIDsKK+aCquiogCA+IGFrdWdlblwgOwor56S86YGHID4gcmVpZ3V1XCA7CivllpzmgqYgPiBraWV0c3VcIDsKK+eri+W/lyA+IHJpc3NoaVwgOwor6byT56ybID4ga290ZWtpXCA7CivmiJDlubQgPiBzZWluZW5cIDsKK+engeiAgyA+IHNoaWtvdVwgOwor5oak5q27ID4gZnVuc2hpXCA7CivpurvolqwgPiBtYXlha3VcIDsKK+a4h+atuyA+IGthc3NoaVwgOwor56uv5a2QID4gdGFuc2hpXCA7Civmh4fmnJsgPiBrb25tb3VcIDsKK+iZmuekvCA+IGt5b3JlaVwgOwor6J6N5ZCIID4geXV1Z291XCA7CivlkIzpgqYgPiBkb3Vob3VcIDsKK+ayiOmmmSA+IGppbmtvdVwgOwor5oeH5pu4ID4ga29uc2hvXCA7Civpu4TokYkgPiBrb3V5b3VcIDsKK+etieWApCA+IHRvdWNoaVwgOwor5rm+5bK4ID4gd2FuZ2FuXCA7CivmuoDlsbEgPiBtYW56YW5cIDsKK+ieouWFiSA+IGtlaWtvdVwgOwor5Y+M6aCtID4gc291dG91XCA7CivllYbmqZ8gPiBzaG91a2lcIDsKK+aJjeWZuCA+IHNhaXRvblwgOwor5ZCM6YGTID4gZG91ZG91XCA7CivnqLLnhrEgPiBpbW9jaGlcIDsKK+mOruWuiCA+IGNoaW5qdVwgOwor5ru05LiLID4gdGVraWthXCA7Civlk4HnqK4gPiBoaW5zaHVcIDsKK+m7hOiPiiA+IGtpZ2lrdVwgOwor5oqA5YCGID4gZ2lyeW91XCA7CivmhJrnrZYgPiBndXNha3VcIDsKK+a3t+ayjCA+IGtvbnRvblwgOwor5ZCE6YOoID4ga2FrdWJ1XCA7Civms6Lot68gPiBuYW1pamlcIDsKK+WPjemdoiA+IGhhbm1lblwgOwor5ZaE5oimID4gemVuc2VuXCA7CivmtIvoo4UgPiB5b3Vzb3VcIDsKK+a0i+ijgSA+IHlvdXNhaVwgOwor5omA5ZyoID4gc2hvemFpXCA7CivmgqrooYAgPiBva2V0c3VcIDsKK+elnuipsSA+IHNoaW53YVwgOwor5oWo54S2ID4gZ2FpemVuXCA7Civnq7blo7IgPiBrZWliYWlcIDsKK+iXu+iNiSA+IG1vZ3VzYVwgOwor56e7552AID4gaWNoYWt1XCA7CivnpZ3oqZ4gPiBub3JpdG9cIDsKK+a0i+ihjCA+IHlvdWtvdVwgOwor5ZCM6LypID4gZG91aGFpXCA7CivmgKXpoIggPiBreXV1c3VcIDsKK+enmOetliA+IGhpc2FrdVwgOwor5raI56OoID4gc2hvdW1hXCA7Civpu5nogIMgPiBtb2trb3VcIDsKK+aGjuawlyA+IG5pa3VnZVwgOwor5ZCM6LuKID4gZG91c2hhXCA7Civmtojno4EgPiBzaG91amlcIDsKK+WUseatjCA+IHNob3VrYVwgOwor5oSb56ewID4gYWlzaG91XCA7CivmuZblv4MgPiBrb3NoaW5cIDsKK+a3oea3oSA+IHRhbnRhblwgOwor5ZaE5oSfID4gemVua2FuXCA7CivmspnploAgPiBzaGFtb25cIDsKK+eorueBqyA+IHRhbmViaVwgOwor6YqF57eaID4gZG91c2VuXCA7CivmgKjpnIogPiBvbnJ5b3VcIDsKK+aJi+WTgSA+IHRlamluYVwgOwor5oiR5a62ID4gd2FnYXlhXCA7Civnqbrmm7kgPiBrdXVzb3VcIDsKK+aIpuWjqyA+IHNlbnNoaVwgOwor5Y+N6ZaTID4gaGFua2FuXCA7CivmiY3lkI0gPiBzYWltZWlcIDsKK+ekvuizkyA+IHNoYWhpblwgOwor5ray54q2ID4gZWtpam91XCA7CivmgbXotIggPiBrZWl6b3VcIDsKK+WPo+mKrSA+IGtvdXNlblwgOwor5ZaE5oCnID4gemVuc2VpXCA7CivnpLzos5sgPiByYWlzYW5cIDsKK+aIpuWhtSA+IHNlbmppblwgOwor6YeR6YqtID4ga2luc2VuXCA7Civmh7jlt6MgPiBrYWtlc3VcIDsKK+epguazoiA+IGhvbmFtaVwgOwor5oeQ5oqxID4ga2FpaG91XCA7Civlj4LpmaIgPiBzYW4nJ2luXCA7Civpj6TliLsgPiBydWtva3VcIDsKK+mHkemKgCA+IGtpbmdpblwgOwor6YqA57WMID4gZ2lua2VpXCA7CivmiKbloLQgPiBzZW5qb3VcIDsKK+mHkemJsSA+IGtpbmtvdVwgOwor5oa25patID4gb2t1ZGFuXCA7CivmuJvmlbAgPiBnZW5zdXVcIDsKK+a6gOWkqSA+IG1hbnRlblwgOwor5ZKM57a0ID4gd2F0b2ppXCA7CivmtYTnvaogPiBqb3V6YWlcIDsKK+aEn+efpSA+IGthbmNoaVwgOwor5rOw6KW/ID4gdGFpc2VpXCA7CivmtIvomK0gPiB5b3VyYW5cIDsKK+mKgOezuCA+IGdpbnNoaVwgOwor5reh5rC0ID4gdGFuc3VpXCA7CivmurbliaQgPiB5b3V6YWlcIDsKK+epuuaWhyA+IGt1dWJ1blwgOwor6buE6IKMID4ga2loYWRhXCA7CivmiJDlqZogPiBzZWlrb25cIDsKK+azqOiomCA+IGNodXVraVwgOwor5ZCf6KmgID4gZ2luJydlaVwgOwor5oe45bSWID4ga2VuZ2FpXCA7CivpjZvmiJAgPiB0YW5zZWlcIDsKK+mKgOeyiSA+IGdpbnB1blwgOwor5oem5byxID4gZGFqYWt1XCA7Civmga3os4AgPiBreW91Z2FcIDsKK+WNtem7hCA+IHJhbicnb3VcIDsKK+aJi+WLlSA+IHNodWRvdVwgOwor6JeN6Je7ID4gcmFuc291XCA7CivmhrLmlL8gPiBrZW5zZWlcIDsKK+aIpuWcsCA+IHNlbmNoaVwgOwor56S86K6DID4gcmFpc2FuXCA7CivmuoDloYEgPiBtYW5ydWlcIDsKK+WQiOizhyA+IGdvdXNoaVwgOwor5rqA5aC0ID4gbWFuam91XCA7Civlj7fou4ogPiBnb3VzaGFcIDsKK+azo+iotCA+IGt5dXVzb1wgOwor6YeN6YeNID4ganV1anV1XCA7Civmganos54gPiBvbnNob3VcIDsKK+a4heabuCA+IHNlaXNob1wgOwor5rqA5aCCID4gbWFuZG91XCA7CivmiYfli5UgPiBzZW5kb3VcIDsKK+aJjeWIhiA+IHNhaWJ1blwgOwor5rib5pCNID4gZ2Vuc29uXCA7CivmsLTpu70gPiBhbWVuYm9cIDsKK+elnuibhyA+IHNoaW5qYVwgOwor5ZOA55ebID4gYWl0c3V1XCA7CivmiJLlo4cgPiBrYWlkYW5cIDsKK+m6puiKvSA+IGJha3VnYVwgOwor5Y+w6LuKID4gZGFpc2hhXCA7Civlk4HnlaogPiBoaW5iYW5cIDsKK+iWq+ijvSA+IGt1bnNlaVwgOwor5omL5YaZID4gc2h1c2hhXCA7CivmuIXmmI4gPiBzZWltZWlcIDsKK+azleirliA+IGhvdXJvblwgOwor5rG66ZeYID4ga2V0dG91XCA7Civms5Xoq4cgPiBob3VkYW5cIDsKK+WOn+mhjCA+IGdlbmRhaVwgOwor5omL5YW1ID4gc2h1aGVpXCA7CivmiYDlirQgPiBzaG9yb3VcIDsKK+WOn+mgrSA+IGdlbnRvdVwgOwor6YeH6YWNID4gc2FpaGFpXCA7CivlkI3oq5YgPiBtZWlyb25cIDsKK+a1hee0hSA+IHNlbmtvdVwgOwor56ys5LiJID4gZGFpc2FuXCA7Civmt7vmm7ggPiB0ZW5zaG9cIDsKK+aJi+WFiCA+IHRlc2FraVwgOwor5omL5YWDID4gdGVtb3RvXCA7CivmganorpAgPiBvbnNodXVcIDsKK+aBqeiujiA+IG9uc2h1dVwgOwor5Y+j6L66ID4ga291aGVuXCA7Civljp/pn7MgPiBnZW4nJ29uXCA7CivmiJHln7cgPiBnYXNodXVcIDsKK+epuuaMuiA+IGt1dXRlaVwgOwor5rS757eaID4ga2Fzc2VuXCA7CivlkIzoqowgPiBkb3VzaGlcIDsKK+WOmumhlCA+IGtvdWdhblwgOwor5ZCN6KmeID4gbWVpc2hpXCA7CivpiI3ooYwgPiBkb25rb3VcIDsKK+aHh+aDhSA+IGtvbmpvdVwgOwor5re75pmvID4gdGVua2VpXCA7CivmiYvlgrcgPiB0ZWtpenVcIDsKK+epuuaLsyA+IGt1dWtlblwgOwor6Yed6LevID4gc2hpbnJvXCA7CivnrKbkuIEgPiBmdWNob3VcIDsKK+WQjeiogCA+IG1laWdlblwgOwor5ZCM6KiTID4gZG91a3VuXCA7Civph5HovKogPiBrYW5hd2FcIDsKK+aIkOWeiyA+IHNlaWtlaVwgOwor5rKi6L66ID4gc2F3YWJlXCA7Civms5XopoEgPiBob3V5b3VcIDsKK+enkeebriA+IGthbW9rdVwgOwor6byI55SyID4gYmVra291XCA7CivonILlt6MgPiBob3Vzb3VcIDsKK+epuuaJiyA+IGthcmF0ZVwgOwor56S86KOFID4gcmVpc291XCA7CivlkIzoppYgPiBkb3VzaGlcIDsKK+WWhOWwjiA+IHplbmRvdVwgOwor56m65omAID4ga3V1c2hvXCA7Civlv7XpoZggPiBuZW5nYW5cIDsKK+WQiOioiCA+IGdvdWtlaVwgOwor6bq757mUID4gYXNhb3JpXCA7Civlj6TouZ8gPiBrb3Nla2lcIDsKK+WRque4myA+IGp1YmFrdVwgOwor56m65oimID4ga3V1c2VuXCA7CivmhajmrY4gPiBnYWl0YW5cIDsKK+axl+mhlCA+IGthbmdhblwgOwor5b+16aCtID4gbmVudG91XCA7Civnp5Hnmb0gPiBzZXJpZnVcIDsKK+WOn+maiiA+IGdlbnRhaVwgOwor6Ya16YeRID4ga3lva2luXCA7CivnqLzmpa0gPiBrYWd5b3VcIDsKK+err+WOsyA+IHRhbmdlblwgOwor6Jau6JqKID4geWFidWthXCA7CivlkajnuIEgPiBzaHV1ZW5cIDsKK+WWmuWjsCA+IGthbnNlaVwgOwor5rW355SjID4ga2Fpc2FuXCA7CivmiKblj7IgPiBzZW5zaGlcIDsKK+a6gOWToSA+IG1hbicnaW5cIDsKK+WPm+i7jSA+IGhhbmd1blwgOwor6buE57KJID4ga2luYWtvXCA7CivnqI7mupAgPiB6ZWlnZW5cIDsKK+WPi+mCpiA+IHl1dWhvdVwgOwor6Y6W5Zu9ID4gc2Frb2t1XCA7Civnq7nliIAgPiBzaGluYWlcIDsKK+aEgeeciSA+IHNodXViaVwgOwor6buZ56eYID4gbW9rdWhpXCA7CivmuIXmjoMgPiBzZWlzb3VcIDsKK+m6u+e1siA+IGFzYWl0b1wgOwor6YqD56CyID4ganV1aG91XCA7CivmiY3kurogPiBzYWlqaW5cIDsKK+a4rOW6piA+IHNva3Vkb1wgOwor5ZCM6KG+ID4gZG91a2luXCA7CivpjZvlt6UgPiB0YW5rb3VcIDsKK+mFuOmhniA+IHNhbnJ1aVwgOwor5ra85rCXID4gcnlvdWtpXCA7Civnq4vlnLAgPiByaXRjaGlcIDsKK+WQjOihjCA+IGRvdWtvdVwgOwor56m65oOzID4ga3V1c291XCA7CivmiYvkuqQgPiBzaHVrb3VcIDsKK+m7kuepgiA+IGt1cm9ib1wgOwor5oOF57eSID4gam91Y2hvXCA7CivmsoPph44gPiB5b2t1eWFcIDsKK+m6u+ezuCA+IGFzYWl0b1wgOwor5Zan5ZmqID4ga2Vuc291XCA7CivmuKnluoogPiBvbnNob3VcIDsKK+aEn+eKtiA+IGthbmpvdVwgOwor5ZCI6KG+ID4gZ291a2luXCA7CivmhJvnjKsgPiBhaWJ5b3VcIDsKK+mGuOmAoCA+IGpvdXpvdVwgOwor5oim5YqfID4gc2Vua291XCA7Civnp4Hnm4ogPiBzaGlla2lcIDsKK+a5vuWPoyA+IHdhbmtvdVwgOwor5Y+y6KuWID4gc2hpcm9uXCA7CivpioPnnLwgPiBqdXVnYW5cIDsKK+WPsuirhyA+IHNoaWRhblwgOwor56ug5Y+lID4gc2hvdWt1XCA7CivpioXnm6QgPiBkb3ViYW5cIDsKK+aGtuW/tSA+IG9rdW5lblwgOwor5ZG856ewID4ga29zaG91XCA7CivmiKbliY0gPiBzZW56ZW5cIDsKK+m4nui8vyA+IHJhbicneW9cIDsKK+aGp+aGrCA+IGRvdWtlaVwgOwor5Y+M6LyqID4gc291cmluXCA7Civlj4LpgZMgPiBzYW5kb3VcIDsKK+a2suaxgSA+IGVraWp1dVwgOwor56i/5pysID4ga291aG9uXCA7CivmtbfnjaMgPiBrYWlqdXVcIDsKK+aGpOaHoyA+IGZ1bm1hblwgOwor5Y+y6KmpID4gc2hpc2hpXCA7Civlj43ou6IgPiBoYW50ZW5cIDsKK+WPjei7jSA+IGhhbmd1blwgOwor5Y+v6KqtID4ga2Fkb2t1XCA7Civmh7jlnoIgPiBrZW5zdWlcIDsKK+eojuazlSA+IHplaWhvdVwgOwor5Y6z6YeNID4gZ2VuanV1XCA7CivolqvokrggPiBrdW5qb3VcIDsKK+WPsOipniA+IHNlcmlmdVwgOwor6Yys5oiQID4gcmVuc2VpXCA7CivpioDnm6QgPiBnaW5iYW5cIDsKK+WPi+i7jSA+IHl1dWd1blwgOwor5ZKM552mID4gd2Fib2t1XCA7CivpioDnm4MgPiBnaW5wYWlcIDsKK+aGpOaFqCA+IGZ1bmdhaVwgOwor5ZSQ5pysID4gdG91aG9uXCA7CivpiYTnt5ogPiB0ZXNzZW5cIDsKK+mLvOadvyA+IGtvdWJhblwgOwor6by75q+bID4gaGFuYWdlXCA7Civlj7LoprMgPiBzaGlrYW5cIDsKK+WPjOi5hCA+IHNvdXRlaVwgOwor5Y+X6LOeID4ganVzaG91XCA7CivmtojngasgPiBzaG91a2FcIDsKK+aIkuWOsyA+IGthaWdlblwgOwor6Yu85p2QID4ga291emFpXCA7CivmtJfnt7QgPiBzZW5yZW5cIDsKK+WPsOimpyA+IHRhaXJhblwgOwor56eB55SoID4gc2hpeW91XCA7Civlv5fpoZggPiBzaGlnYW5cIDsKK+WQjOiXqSA+IGRvdWhhblwgOwor5Y+j6KuWID4ga291cm9uXCA7Civlj6Poqr8gPiBrdWNob3VcIDsKK+WPouirhyA+IHNvdWRhblwgOwor5Y6z6YG4ID4gZ2Vuc2VuXCA7Civnq6/lgKogPiB0YW5nZWlcIDsKK+mHkeirhyA+IGtpbmRhblwgOwor5re35oimID4ga29uc2VuXCA7CivmiK/kvZwgPiBnZXNha3VcIDsKK+a3t+aIkCA+IGtvbnNlaVwgOwor5Zaa5ZWPID4ga2FubW9uXCA7CivnpL7okawgPiBzaGFzb3VcIDsKK+aGpOaAkiA+IGZ1bicnbnVcIDsKK+WPpOiouyA+IGtvY2h1dVwgOwor5rWB55+zID4gc2FzdWdhXCA7CivpiYTnsokgPiB0ZXBwdW5cIDsKK+mGl+mFtSA+IGhha2tvdVwgOwor5Y6f6YmxID4gZ2Vua291XCA7CivmuKnlrrkgPiBvbicneW91XCA7CivpuqbnsokgPiBtdWdpa29cIDsKK+aIkOWKnyA+IHNlaWtvdVwgOwor5rex5omLID4gZnVrYWRlXCA7Civpu5Lnm64gPiBrdXJvbWVcIDsKK+mHkeiogCA+IGtpbmdlblwgOwor5rSX57GzID4gc2VubWFpXCA7CivmhpDmhqsgPiByZW5iaW5cIDsKK+WOn+mHjiA+IGdlbicneWFcIDsKK+awl+mthCA+IGtpaGFrdVwgOwor5Y+X6Ku+ID4ganVkYWt1XCA7CivmsJfprLEgPiBraXV0c3VcIDsKK+aIkOWIhiA+IHNlaWJ1blwgOwor6Jas6IiXID4geWFrdWhvXCA7CivlkI3okZcgPiBtZWljaG9cIDsKK+mJhOeuoSA+IHRla2thblwgOwor6YeN6KiAID4ganV1Z29uXCA7CivmsLfpnKcgPiBoeW91bXVcIDsKK+aEjeeEtiA+IGJpbnplblwgOwor6YeR6KW0ID4ga2lucmFuXCA7Civmh5DlpoogPiBrYWluaW5cIDsKK+awtOmdoiA+IG1pbm9tb1wgOwor56aN56aPID4ga2FmdWt1XCA7CivmsLfpm6ggPiBoaXNhbWVcIDsKK+mJhOetiyA+IHRla2tpblwgOwor5oe45ZG9ID4ga2VubWVpXCA7CivphZTpoZQgPiBzdWlnYW5cIDsKK+aGkOaEjSA+IHJlbmJpblwgOwor5rSL57SZID4geW91c2hpXCA7Civph43oppYgPiBqdXVzaGlcIDsKK+aIkOWFuCA+IHNlaXRlblwgOwor6Yqt5rmvID4gc2VudG91XCA7CivmuIXlu4kgPiBzZWlyZW5cIDsKK+a0i+e0hSA+IHlvdWtvdVwgOwor6YeN6KaBID4ganV1eW91XCA7Civph5Hoo70gPiBraW5zZWlcIDsKK+mFkumhniA+IHNodXJ1aVwgOwor5ZCI6JGXID4gZ291Y2hvXCA7Civpto/ps7QgPiBrZWltZWlcIDsKK+emveeNoyA+IGtpbmp1dVwgOwor5rC06Zu3ID4gc3VpcmFpXCA7Civlj5foqLsgPiBqdWNodXVcIDsKK+WPl+iouiA+IGp1c2hpblwgOwor5Y+j6KOFID4ga291c291XCA7Civmt7HmhI8gPiBzaGluJydpXCA7Civno4Hph50gPiBqaXNoaW5cIDsKK+aGkOaDhSA+IHJlbmpvdVwgOwor5rC06ZujID4gc3VpbmFuXCA7CivlkJvoh6ggPiBrdW5yaW5cIDsKK+aIpuS6iSA+IHNlbnNvdVwgOwor5Y+X6KiXID4ganV0YWt1XCA7CivmiKbkubEgPiBzZW5yYW5cIDsKK+a1qeeEtiA+IGtvdXplblwgOwor56qT5aSWID4gc291Z2FpXCA7CivllY/lsYsgPiB0b24nJ3lhXCA7CivpiYTnqpMgPiB0ZXNzb3VcIDsKK+WQjeiMtiA+IG1laWNoYVwgOwor5oWn5pWPID4ga2VpYmluXCA7CivmuK/lpJYgPiBrb3VnYWlcIDsKK+ibh+W6pyA+IGhlYml6YVwgOwor56m/5a2UID4gc2Vua291XCA7Civmua/lhYMgPiB5dW1vdG9cIDsKK+m8u+aigSA+IGJpcnlvdVwgOwor56eB54mIID4gc2hpaGFuXCA7Civlj43oq5YgPiBoYW5yb25cIDsKK+epuuWvnSA+IHNvcmFuZVwgOwor5rWE55WMID4gam91a2FpXCA7CivoloToloQgPiB1c3V1c3VcIDsKK+awtOmYsiA+IHN1aWJvdVwgOwor6YqF54mMID4gZG91aGFpXCA7CivllpzliocgPiBraWdla2lcIDsKK+aGguaGpCA+IHl1dWZ1blwgOwor5oSf5raZID4ga2FucnVpXCA7CivnqbTlsYUgPiBrZWtreW9cIDsKK+eri+WGrCA+IHJpdHRvdVwgOwor5oaC5oWuID4geXV1cnlvXCA7Civmtbfmup0gPiBrYWlrb3VcIDsKK+eri+WFmiA+IHJpdHRvdVwgOwor5Y6a6YGHID4ga291Z3V1XCA7Civlkozni6wgPiB3YWRva3VcIDsKK+aAquirhyA+IGthaWRhblwgOwor5rWp54CaID4ga291a2FuXCA7Civph5Honb8gPiBraW5iYWVcIDsKK+mKgOeJjCA+IGdpbnBhaVwgOwor5rC06ZaAID4gc3VpbW9uXCA7Civom67lo7AgPiBiYW5zZWlcIDsKK+WWhOWTiSA+IHplbnphaVwgOwor5ZCP6IetID4gcmlzaHV1XCA7CivlkIzoiLkgPiBkb3VzZW5cIDsKK+WNmOmghSA+IHRhbmtvdVwgOwor5Y2Y6Z+zID4gdGFuJydvblwgOwor5rW35rivID4ga2Fpa291XCA7CivpiZvnmb0gPiBlbnBha3VcIDsKK+WPguisgCA+IHNhbmJvdVwgOwor5oKq56ulID4gYWt1ZG91XCA7CivmhoLmgrYgPiB5dXVtb25cIDsKK+aGguaCoyA+IHl1dWthblwgOwor5rWu5ryCID4gZnVoeW91XCA7CivpvLvmnKggPiBoYW5hZ2lcIDsKK+mFjembuyA+IGhhaWRlblwgOwor5ZKM54mbID4gd2FneXV1XCA7CivoloTokYkgPiB1c3V5b3VcIDsKK+aIkOS9kyA+IHNlaXRhaVwgOwor5ZSQ5omLID4ga2FyYXRlXCA7Civmt6vlv4MgPiBpbnNoaW5cIDsKK+WVhuWutiA+IHNob3VrYVwgOwor5ZSQ5oi4ID4ga2FyYWRvXCA7CivmtJfnpLwgPiBzZW5yZWlcIDsKK+WQiOiHtCA+IGdhdGNoaVwgOwor5Y2X6Z2iID4gbmFubWVuXCA7Civlj4LoqaMgPiBzYW5rZWlcIDsKK+aGguaAnSA+IHl1dXNoaVwgOwor5ZCR6IOMID4ga291aGFpXCA7Civmt7HluqYgPiBzaGluZG9cIDsKK+aFt+aFqCA+IGtvdWdhaVwgOwor5oOo54q2ID4gc2Fuam91XCA7CivlkL7nrYkgPiB3YXJlcmFcIDsKK+a1t+a1nCA+IGthaWhpblwgOwor5rCR6aKoID4gbWlucHV1XCA7CivomZrmp4sgPiBreW9rb3VcIDsKK+WNmumbhSA+IGJha3VnYVwgOwor5oiQ5Lq6ID4gc2VpamluXCA7CivmgqrnqI4gPiBha3V6ZWlcIDsKK+m7hOeTnCA+IGt5dXVyaVwgOwor5ZC5566hID4gc3Vpa2FuXCA7CivmtIvnqK4gPiB5b3VzaHVcIDsKK+a1t+a0iyA+IGthaXlvdVwgOwor56e75qSNID4gaXNob2t1XCA7CivpiYTnoLIgPiB0ZXBwb3VcIDsKK+WQhOiHqiA+IGtha3VqaVwgOwor6bq755a5ID4gbWFzaGluXCA7CivllqfkvJ0gPiBrZW5kZW5cIDsKK+iWhOiMtiA+IHVzdWNoYVwgOwor5Y+C6KazID4gc2Fua2FuXCA7CivlkYrnpLogPiBrb2t1amlcIDsKK+aEn+atjiA+IGthbnRhblwgOwor5Y2X6ZqFID4gbmFuZ3V1XCA7CivlkKvns5YgPiBnYW50b3VcIDsKK+ibruWcsCA+IGJhbmNoaVwgOwor5oKq56WeID4gYWt1amluXCA7CivlkI3ogZ4gPiBtZWlidW5cIDsKK+eri+S9kyA+IHJpdHRhaVwgOwor5Y2K6Z+zID4gaGFuJydvblwgOwor5Y2X6ZmQID4gbmFuZ2VuXCA7Civmg4Xnl7QgPiBqb3VjaGlcIDsKK+eqgeWgpCA+IHRvdHRlaVwgOwor5Zaq5LitID4gbW9jaHV1XCA7CivmuJvloakgPiBnZW4nJ2VuXCA7CivmuKXlnLAgPiBha3VjaGlcIDsKK+a3oeW9qSA+IHRhbnNhaVwgOwor5rW35rC0ID4ga2Fpc3VpXCA7Civmta7mtYEgPiBmdXJ5dXVcIDsKK+elreelniA+IHNhaWppblwgOwor56We56ymID4gc2hpbnB1XCA7Civph5HolLUgPiBraW56b3VcIDsKK+aEm+assiA+IGFpeW9rdVwgOwor56Wt56WAID4gc2Fpc2hpXCA7CivljrPoq4cgPiBnZW5kYW5cIDsKK+iWhOiJsiA+IHVzdWlyb1wgOwor56Wt56S8ID4gc2FpcmVpXCA7CivmsJHpnZIgPiBtaW5zZWlcIDsKK+WNiumdoiA+IGhhbm1lblwgOwor5Y+j6JOLID4ga291Z2FpXCA7CivmtarmtaogPiByb3Vyb3VcIDsKK+a4k+WjsCA+IGtlaXNlaVwgOwor6Jma5qC5ID4ga3lva29uXCA7Civlvq7pnIcgPiBiaXNoaW5cIDsKK+W/nOmFrCA+IG91c2h1dVwgOwor5Y2X6ZaAID4gbmFubW9uXCA7Civljp/os4cgPiBnZW5zaGlcIDsKK+a0l+ecvCA+IHNlbmdhblwgOwor6YWp6YWKID4gbWVpdGVpXCA7CivmgKfooYwgPiBzZWlrb3VcIDsKK+WWhOWHpiA+IHplbnNob1wgOwor5ZCM572qID4gZG91emFpXCA7Civmta7msoggPiBmdWNoaW5cIDsKK+awtOmKgCA+IHN1aWdpblwgOwor6buS54WZID4ga29rdWVuXCA7CivlvqHpoYwgPiBneW9kYWlcIDsKK+WOs+iokyA+IGdlbmt1blwgOwor5Y2z6YeRID4gc29ra2luXCA7Civlk4Dmpb0gPiBhaXJha3VcIDsKK+epuuWfnyA+IGt1dWlraVwgOwor6YqA5ryiID4gZ2lua2FuXCA7Civmt7HlsbEgPiBtaXlhbWFcIDsKK+mHjuiSnCA+IG5vYmlydVwgOwor5rWu5rC3ID4gZnVoeW91XCA7Civpto/poK0gPiBrZWl0b3VcIDsKK+eni+azoiA+IHNodXVoYVwgOwor5rS754mIID4ga2FwcGFuXCA7CivnpL7nt5ogPiBzaGFzZW5cIDsKK+awl+mVtyA+IGtpbmFnYVwgOwor56We56eYID4gc2hpbnBpXCA7CivnqbrlnLAgPiBha2ljaGlcIDsKK+WPsOiHqCA+IHRhaXJpblwgOwor5oOo5r65ID4gc2FudGFuXCA7CivmhJvmpb0gPiBhaWd5b3VcIDsKK+mHjuiPiiA+IG5vZ2lrdVwgOwor56eL5rCXID4gc2h1dWtpXCA7Civms5Xnt5ogPiBob3VzZW5cIDsKK+awkemWkyA+IG1pbmthblwgOwor5oeH5ZG9ID4ga29ubWVpXCA7CivmuK/lj6MgPiBrb3Vrb3VcIDsKK+aCquebuCA+IGFrdXNvdVwgOwor5b6h6ZyKID4gbWl0YW1hXCA7Civmsbroo4EgPiBrZXNzYWlcIDsKK+WNiumWiyA+IGhhbmthaVwgOwor5rOV57ayID4gaG91bW91XCA7CivmgrLnl5sgPiBoaXRzdXVcIDsKK+m6pueUsCA+IG11Z2l0YVwgOwor6bWe6bOlID4gZ2FjaG91XCA7CivmsLTpg7cgPiBzdWlnb3VcIDsKK+WQiOe5iiA+IGdvdXNlblwgOwor56eB5rOVID4gc2hpaG91XCA7CivptZ3ps6UgPiBnYWNob3VcIDsKK+aFo+aApyA+IGthbnNlaVwgOwor5Y6f6KuWID4gZ2Vucm9uXCA7CivmsbrooYwgPiBrZWtrb3VcIDsKK+aFouaApyA+IG1hbnNlaVwgOwor5b6h6Zm1ID4gZ29yeW91XCA7Civlv6votbAgPiBrYWlzb3VcIDsKK+W+k+mghiA+IGp1dWp1blwgOwor6byg5pePID4gc296b2t1XCA7CivmsrvogIUgPiBjaGlzaGFcIDsKK+WOn+ipqSA+IGdlbnNoaVwgOwor5rC06YGTID4gc3VpZG91XCA7CivmhJ/mn5MgPiBrYW5zZW5cIDsKK+aHkOWJoyA+IGthaWtlblwgOwor5oOF54q2ID4gam91am91XCA7CivlkIzntJkgPiBkb3VzaGlcIDsKK+mJsea7kyA+IGtvdXNoaVwgOwor5ZCR57GzID4ga291YmVpXCA7CivpiYTnkLQgPiB0ZWtraW5cIDsKK+WQjOezuyA+IGRvdWtlaVwgOwor56qu5L2ZID4ga3l1dXlvXCA7Civmta7mqJkgPiBmdWh5b3VcIDsKK+mKgOazpSA+IGdpbmRlaVwgOwor5Y+v6IG0ID4ga2FjaG91XCA7CivomZrmlbAgPiBreW9zdXVcIDsKK+a1t+ajoCA+IGthaWRvdVwgOwor5oKq55arID4gYWt1ZWtpXCA7CivmuJvlk6EgPiBnZW4nJ2luXCA7CivlkIPnt4ogPiBraWtraW5cIDsKK+aBqee1piA+IG9ua3l1dVwgOwor5rC06L66ID4gbWl6dWJlXCA7CivlvqHploAgPiBtaWthZG9cIDsKK+WPjOiRiSA+IGZ1dGFiYVwgOwor5b6M6aCFID4ga291a291XCA7CivnqJ/mgKcgPiBoaW5zZWlcIDsKK+a3t+WjsCA+IGtvbnNlaVwgOwor5Y+j6IWUID4ga291a291XCA7CivpjZvlhrYgPiB0YW4nJ3lhXCA7CivmgqrnlKggPiBha3V5b3VcIDsKK+eqg+WPliA+IHNlc3NodVwgOwor5oSJ5qW9ID4geXVyYWt1XCA7Civnp4DmrYwgPiBzaHV1a2FcIDsKK+WMuumVtyA+IGt1Y2hvdVwgOwor5rib5Y+3ID4gZ2VuZ291XCA7CivmuK/lhoUgPiBrb3VuYWlcIDsKK+awtOi7iiA+IHN1aXNoYVwgOwor5rib5Y+NID4gZ2VudGFuXCA7CivphZLpgKAgPiBzaHV6b3VcIDsKK+iZjuaWkSA+IHRvcmFmdVwgOwor6buS5rW3ID4ga29ra2FpXCA7CivlkI3nrZQgPiBtZWl0b3VcIDsKK+W+jOmboyA+IGtvdW5hblwgOwor56m65ZCNID4ga3V1bWVpXCA7CivmtYXmtbcgPiBzZW5rYWlcIDsKK+mMpuWcsCA+IGtpbmNoaVwgOwor5Y+N6IuxID4gaGFuJydlaVwgOwor5ZCM562JID4gZG91dG91XCA7CivmtrLmgKcgPiBla2lzZWlcIDsKK+m8u+aBryA+IGJpc29rdVwgOwor5oKq55CDID4gYWtreXV1XCA7CivlkIjnrpcgPiBnYXNzYW5cIDsKK+WPjeiKuyA+IGhhbnN1dVwgOwor5rSL55C0ID4geW91a2luXCA7Civnp4HmqKkgPiBzaGlrZW5cIDsKK+mJhOeJhyA+IHRlcHBlblwgOwor56G86YW4ID4gaG91c2FuXCA7CivpibHms4kgPiBrb3VzZW5cIDsKK+a1t+aciCA+IGt1cmFnZVwgOwor5rW35pu5ID4ga2Fpc291XCA7CivphY3pgIEgPiBoYWlzb3VcIDsKK+W+jOmZoyA+IGtvdWppblwgOwor5Y2X6YOKID4gbmFua291XCA7CivmsY7oq5YgPiBoYW5yb25cIDsKK+WUkOWtkCA+IGthcmFrb1wgOwor5rWB5rS+ID4gcnl1dWhhXCA7CivoloTntJcgPiBoYWt1c2FcIDsKK+iZueW9qSA+IGtvdXNhaVwgOwor5re35ZyoID4ga29uemFpXCA7CivlkIznqpMgPiBkb3Vzb3VcIDsKK+emgeeFmSA+IGtpbicnZW5cIDsKK+mKmOadvyA+IG1laWJhblwgOwor6Ymx5rC0ID4ga291c3VpXCA7Civlvq7ph48gPiBiaXJ5b3VcIDsKK+ayuee1tSA+IGFidXJhZVwgOwor5rW35pmvID4ga2Fpa2VpXCA7CivnqbrljIUgPiBrdXVob3VcIDsKK+WNiumHkSA+IGhhbmtpblwgOwor5q+b6aCtID4gbW91dG91XCA7CivmhJvmlawgPiBhaWt5b3VcIDsKK+WQjOeoriA+IGRvdXNodVwgOwor56m/5Yi6ID4gc2Vuc2hpXCA7CivlvaLpqrggPiBrZWlnYWlcIDsKK+aDqOatuyA+IHphbnNoaVwgOwor5rW35pifID4gaGl0b2RlXCA7CivmhYjlv4MgPiBqaXNoaW5cIDsKK+W+jOmWgCA+IGtvdW1vblwgOwor5rWE5rC0ID4gam91c3VpXCA7CivmuJvliJEgPiBnZW5rZWlcIDsKK+mHjee9qiA+IGp1dXphaVwgOwor6YWi6LGaID4gc3VidXRhXCA7CivljYPpiJ4gPiBzZW5raW5cIDsKK+m7hOa1tyA+IGtvdWthaVwgOwor5Y+w57SZID4gZGFpc2hpXCA7CivphY3ou4ogPiBoYWlzaGFcIDsKK+elnueSvSA+IHNoaW5qaVwgOwor56m65YmNID4ga3V1emVuXCA7CivmtJfnhYkgPiBzZW5yZW5cIDsKK+a0i+eKrCA+IHlvdWtlblwgOwor5rS45rS4ID4ga291a291XCA7CivljbDosaEgPiBpbnNob3VcIDsKK+WNg+mHkSA+IHNlbmtpblwgOwor56iu5a2QID4gc2h1c2hpXCA7CivmtLjmtIsgPiBrb3V5b3VcIDsKK+eni+acnyA+IHNodXVraVwgOwor5rCX6L+rID4ga2loYWt1XCA7CivlkIznpL4gPiBkb3VzaGFcIDsKK+W9semfvyA+IGVpa3lvdVwgOwor6JSR6KaWID4gYmVzc2hpXCA7Civlv5zoq74gPiBvdWRha3VcIDsKK+a4m+WFjSA+IGdlbm1lblwgOwor5rCR6YG4ID4gbWluc2VuXCA7CivnqbrlhrcgPiBrdXVyZWlcIDsKK+aDmuawlyA+IG5vcm9rZVwgOwor56S856CyID4gcmVpaG91XCA7CivljZjou4ogPiB0YW5zaGFcIDsKK+aFtuWkpyA+IGtlaWRhaVwgOwor5ZKM5qW9ID4gd2FyYWt1XCA7CivmgKrohZUgPiBrYWl3YW5cIDsKK+WQiOelrSA+IGdvdXNhaVwgOwor5Y+M6IKpID4gc291a2VuXCA7CivllYbli5kgPiBzaG91bXVcIDsKK+aCqueGsSA+IGFuZXRzdVwgOwor5ZCI56WAID4gZ291c2hpXCA7CivmgKfohbogPiBzZWlzZW5cIDsKK+aGsuWFtSA+IGtlbnBlaVwgOwor5rib5YK1ID4gZ2Vuc2FpXCA7Civpu4TmsLQgPiBraW1penVcIDsKK+mKmOaWhyA+IG1laWJ1blwgOwor5Y+j57W1ID4ga3VjaGllXCA7Civnp5HmlpkgPiBrYXJ5b3VcIDsKK+W+oemFjCA+IG9zaGFrdVwgOwor5rCX6Lu9ID4ga2lnYXJ1XCA7CivmgKfog70gPiBzZWlub3VcIDsKK+WRhueEtiA+IGJvdXplblwgOwor5rOo55aPID4gY2h1dXNvXCA7Civms6jnlo4gPiBjaHV1c29cIDsKK+WVhuWIqSA+IHNob3VyaVwgOwor6YqF5p2/ID4gZG91YmFuXCA7CivphZLosqkgPiBzaHVoYW5cIDsKK+ibruS6uiA+IGJhbmppblwgOwor5ZSx5ZKMID4gc2hvdXdhXCA7Civlkajms6IgPiBzaHV1aGFcIDsKK+a1t+aQjSA+IGthaXNvblwgOwor5oCq6IGeID4ga2FpYnVuXCA7Civnp4HmnIkgPiBzaGl5dXVcIDsKK+aFruWkliA+IHJ5b2dhaVwgOwor6YWS6LGqID4gc2h1Z291XCA7Civnp4Hmm7ggPiBzaGlzaG9cIDsKK+mHkeezuCA+IGtpbnNoaVwgOwor5rib5L+4ID4gZ2VucG91XCA7CivljYrovKogPiBoYW5yaW5cIDsKK+azleecvCA+IGhvdWdlblwgOwor5re35ZCMID4ga29uZG91XCA7CivpioDmna8gPiBnaW5wYWlcIDsKK+a3t+WQiCA+IGtvbmdvdVwgOwor55+z6bm4ID4gc2Vra2VuXCA7Civph5HnsokgPiBraW5wdW5cIDsKK+mJm+avkiA+IGVuZG9rdVwgOwor5b2T6aeFID4gdG91ZWtpXCA7CivlvqHpgYogPiBneW95dXVcIDsKK+a4puS4rSA+IGthY2h1dVwgOwor5rOV55u4ID4gaG9zc291XCA7Civmt7HlkbMgPiBmdWthbWlcIDsKK+elnueItiA+IHNoaW5wdVwgOwor5Y6f6JGXID4gZ2VuY2hvXCA7CivmgqDnhLYgPiB5dXV6ZW5cIDsKK+aEn+aHkCA+IGthbmthaVwgOwor6bqm5rmvID4gbXVnaXl1XCA7Civmg7PmnJsgPiBzb3Vib3VcIDsKK+WPguiAgyA+IHNhbmtvdVwgOwor5ZCM55yMID4gZG91a2VuXCA7CivlkI3nm6QgPiBtZWliYW5cIDsKK+WPuOelrSA+IHNoaXNhaVwgOwor5Y+X57WmID4ganVreXV1XCA7CivlkIznm7ggPiBkb3Vzb3VcIDsKK+WQjOebnyA+IGRvdW1laVwgOwor5rSq5rC0ID4ga291enVpXCA7Civlk4DmhIEgPiBhaXNodXVcIDsKK+aEn+aFqCA+IGthbmdhaVwgOwor5Y2D6LyJID4gc2VuemFpXCA7Civom43lhYkgPiBrZWlrb3VcIDsKK+WTgOaDnCA+IGFpc2VraVwgOwor5ZCJ55u4ID4ga2lzc291XCA7CivnqbrkvLwgPiBzb3JhbmlcIDsKK+WSjOacjSA+IHdhZnVrdVwgOwor56Gs6LufID4ga291bmFuXCA7Civph5HnrqEgPiBraW5rYW5cIDsKK+iWrOeQhiA+IHlha3VyaVwgOwor5oSb5oaOID4gYWluaWt1XCA7Civlj6PnrZQgPiBrb3V0b3VcIDsKK+W+jOmHkSA+IGF0b2tpblwgOwor5oSb5oW+ID4gYWl5b2t1XCA7CivmhJ/mg7MgPiBrYW5zb3VcIDsKK+ekvueUqCA+IHNoYXlvdVwgOwor6YqA5pigID4gZ2luJydlaVwgOwor6bm1542yID4gcm9rYWt1XCA7CivnoLLploAgPiBob3Vtb25cIDsKK+a1t+aIpiA+IGthaXNlblwgOwor5oSf5oOFID4ga2Fuam91XCA7CivmgJ3ogIMgPiBzaGlrb3VcIDsKK+WTgeaApyA+IGhpbnNlaVwgOwor5b6p6LevID4gZnVrdXJvXCA7Civlkb3moLkgPiBtZWlrb25cIDsKK+aDheatuyA+IGpvdXNoaVwgOwor6Yyg5YmkID4gam91emFpXCA7Civmt7HljJYgPiBzaGlua2FcIDsKK+WNs+ihjCA+IHNva2tvdVwgOwor6Yyg5YmNID4gam91bWFlXCA7CivmsJfosaEgPiBraXNob3VcIDsKK+aEm+aDnCA+IGFpc2VraVwgOwor5Y+356CyID4gZ291aG91XCA7Civms5XnlYwgPiBob2trYWlcIDsKK+WVk+S4iiA+IGtlaWpvdVwgOwor5rSX5rWEID4gc2Vuam91XCA7CivmhJ/mgKcgPiBrYW5zZWlcIDsKK+elnueBqyA+IHNoaW5rYVwgOwor5Y+M57SZID4gc291c2hpXCA7CivlkI3nlKMgPiBtZWlzYW5cIDsKK+aEm+aBryA+IGFpc29rdVwgOwor6Jek5rCPID4gdG91c2hpXCA7CivljZTorbAgPiBreW91Z2lcIDsKK+m7kuacqCA+IGt1cm9raVwgOwor5oSa5oGvID4gZ3Vzb2t1XCA7Civlj6Tnp7AgPiBrb3Nob3VcIDsKK+m0lemzpSA+IGRhY2hvdVwgOwor5rOl54q2ID4gZGVpam91XCA7CivlvZPpnaIgPiB0b3VtZW5cIDsKK+W/heimiyA+IGhpa2tlblwgOwor6byT5byTID4ga29reXV1XCA7Civlk4DlvJQgPiBhaWNob3VcIDsKK+aCsuazgSA+IGhpa3lvdVwgOwor5rOw54S2ID4gdGFpemVuXCA7Civlj43nsbMgPiBoYW5iZWlcIDsKK+a0u+agkyA+IGthc3NlblwgOwor5rWE5pu4ID4gam91c2hvXCA7CivnoLTpj6EgPiBoYWt5b3VcIDsKK+eogOWwkSA+IGtpc2hvdVwgOwor5ZWG5LqLID4gc2hvdWppXCA7CivnpoHmraIgPiBraW5zaGlcIDsKK+W+jOmAgSA+IGtvdXNvdVwgOwor5b6M6YCAID4ga291dGFpXCA7Civlj5fnq6AgPiBqdXNob3VcIDsKK+mHjeeojiA+IGp1dXplaVwgOwor6YWi6Ju4ID4gc3VkYWtvXCA7Civmra/pvaYgPiBzaGlnaW5cIDsKK+WQhOeVjCA+IGtha2thaVwgOwor5Y+i56WgID4gaG9rb3JhXCA7CivmhajlmIYgPiBnYWl0YW5cIDsKK+W+k+i7jSA+IGp1dWd1blwgOwor5q+b6YiOID4ga2ViYXJpXCA7Civpg6jplbcgPiBidWNob3VcIDsKK+WPsuecvCA+IHNoaWdhblwgOwor5oK25q27ID4gbW9uc2hpXCA7CivmrrXpmo4gPiBkYW5rYWlcIDsKK+m8vuWjsCA+IGthbnNlaVwgOwor5oOo5pWXID4gemFucGFpXCA7Civmgqrms5UgPiBha3Vob3VcIDsKK+W+hemBhyA+IHRhaWd1dVwgOwor5rSL5rSLID4geW91eW91XCA7Civpurrmo5IgPiBtZW5ib3VcIDsKK+WPs+ebriA+IG1pZ2ltZVwgOwor5b+F6KGwID4gaGlzc3VpXCA7Civmra/pu5IgPiBoYWd1cm9cIDsKK+mHjeelmiA+IGNob3Vzb1wgOwor5b6M6LyqID4ga291cmluXCA7CivlvozovKkgPiBrb3VoYWlcIDsKK+m7juaYjiA+IHJlaW1laVwgOwor5oSI5oSIID4gaXlvaXlvXCA7CivnpLznirYgPiByZWlqb3VcIDsKK+awkeirliA+IG1pbnJvblwgOwor5Y+C57GgID4gc2Fucm91XCA7CivmgqrmsLQgPiBha3VzdWlcIDsKK+a7vuOAhSA+IGtvbmtvblwgOwor5Yyq6LqsID4gaGlreXV1XCA7Civlvozou40gPiBrb3VndW5cIDsKK+W+jOi7iiA+IGtvdXNoYVwgOwor5oSJ5oKmID4geXVldHN1XCA7Civph53nm64gPiBoYXJpbWVcIDsKK+WMl+mDqCA+IGhva3VidVwgOwor5by+6aCtID4gZGFudG91XCA7CivmgqrmsJcgPiB3YXJ1Z2lcIDsKK+efoumxiCA+IHlhdGFyYVwgOwor56SO55+zID4gc29zZWtpXCA7CivmtbTlvowgPiB5b2t1Z29cIDsKK+WNk+imiyA+IHRha2tlblwgOwor5ZG95pWwID4gbWVpc3V1XCA7CivljJfpg4ogPiBob2trb3VcIDsKK+aui+mquCA+IHphbmdhaVwgOwor5oqY44CFID4gb3Jpb3JpXCA7Civms6Xngq0gPiBkZWl0YW5cIDsKK+mHkeeggiA+IGtpbnNoYVwgOwor5ZCN54q2ID4gbWVpam91XCA7Civli6fpmY0gPiBrYW5rb3VcIDsKK+iRm+mkoSA+IGt1enVhblwgOwor5rWu5b+DID4gZnVzaGluXCA7Civph43noLIgPiBqdXVob3VcIDsKK+engeaGpCA+IHNoaWZ1blwgOwor5rGX6IW6ID4ga2Fuc2VuXCA7CivmtbflupUgPiBrYWl0ZWlcIDsKK+aAquerpSA+IGthaWRvdVwgOwor5rK855SwID4gbnVtYWRhXCA7Civnpa3mrr8gPiBzYWlkZW5cIDsKK+WNmOihjCA+IHRhbmtvdVwgOwor56Cy6YeRID4gaG91a2luXCA7Civlj6TnnYAgPiBmdXJ1Z2lcIDsKK+WNiuinoyA+IGhhbmthaVwgOwor5Y2X6KGMID4gbmFua291XCA7CivpioDmiYcgPiBnaW5zZW5cIDsKK+mHjeefsyA+IG9tb3NoaVwgOwor5rK755SjID4gY2hpc2FuXCA7Civli5/pm4YgPiBib3NodXVcIDsKK+a3u+S5lyA+IHRlbmpvdVwgOwor6YO36YeMID4ga3lvdXJpXCA7CivlkajmnJ8gPiBzaHV1a2lcIDsKK+WOn+e9qiA+IGdlbnphaVwgOwor6Yym5LiKID4ga2luam91XCA7CivlkbPmlrkgPiBtaWthdGFcIDsKK+eoruWQjSA+IHNodW1laVwgOwor5by36Z+zID4ga3lvdW9uXCA7Civmt7fkuqQgPiBrb25rb3VcIDsKK+ialeWNtSA+IHNhbnJhblwgOwor56eB5oSfID4gc2hpa2FuXCA7CivljYHoqqEgPiBqaWtrYWlcIDsKK+aui+mmmSA+IHphbmtvdVwgOwor6bqq5qOSID4gbWVuYm91XCA7CivmsZrogbcgPiBvc2hva3VcIDsKK+iXqeagoSA+IGhhbmtvdVwgOwor5re35LmxID4ga29ucmFuXCA7CivnqYLlhYggPiBob3Nha2lcIDsKK+mHkeebriA+IGthbmVtZVwgOwor56eB5oOFID4gc2hpam91XCA7CivmtbfltrogPiBrYWlyZWlcIDsKK+WLlemdmSA+IGRvdXNlaVwgOwor5oGS55SjID4ga291c2FuXCA7Civph4/nm64gPiByeW91bWVcIDsKK+W+s+ihjCA+IHRva2tvdVwgOwor56CU6ZG9ID4ga2Vuc2FuXCA7CivlvLHpn7MgPiB5b3dhbmVcIDsKK+WMquiziiA+IGhpem9rdVwgOwor5ZC45rCXID4ga3l1dWtpXCA7Civli6LploAgPiBzZWltb25cIDsKK+W/q+iFlSA+IGthaXdhblwgOwor56eB5oGoID4gc2hpa29uXCA7Civmrovpo68gPiB6YW5wYW5cIDsKK+awtOiRrCA+IHN1aXNvdVwgOwor5Y2K6KOBID4gaGFuc2FpXCA7CivnpoXmnpcgPiB6ZW5yaW5cIDsKK+WUr+S4gCA+IHl1aXRzdVwgOwor6YeN55uXID4ganV1dG91XCA7CivlkIznhLYgPiBkb3V6ZW5cIDsKK+atu+mquCA+IHNoaWdhaVwgOwor5b6h6KiXID4gZ290YWt1XCA7Civlvq7oobcgPiBiaWNodXVcIDsKK+W+oeiogCA+IG1pa290b1wgOwor5rC36I+TID4gaHlvdWthXCA7CivnpZ7msJcgPiBzaGlua2lcIDsKK+WKuemokyA+IGtvdWtlblwgOwor5Y2X6JuuID4gbmFuYmFuXCA7CivljYroob8gPiBoYW5lcmlcIDsKK+iZmuWmhCA+IGt5b21vdVwgOwor5rG6566XID4ga2Vzc2FuXCA7CivmhJ/lrpggPiBrYW5rYW5cIDsKK+WMlui6qyA+IGtlc2hpblwgOwor5oGs54S2ID4gdGVuemVuXCA7Civmg4Xmma8gPiBqb3VrZWlcIDsKK+iWrOa5ryA+IHlha3V5dVwgOwor5rG956ybID4ga2l0ZWtpXCA7Civms5Xnga8gPiBob3V0b3VcIDsKK+a2vOWRsyA+IHJ5b3VtaVwgOwor5ZCM54K5ID4gZG91dGVuXCA7CivmsLToj5wgPiBtaXp1bmFcIDsKK+a1t+WyuCA+IGthaWdhblwgOwor5Yu+6YWNID4ga291YmFpXCA7Civmgqrmpa0gPiBha3Vnb3VcIDsKK+WPguemhSA+IHNhbnplblwgOwor5Y6f57a/ID4gZ2VubWVuXCA7Civmg6jmhrogPiBzYW50YW5cIDsKK+iXpOacrCA+IHRvdWhvblwgOwor6YmE5p2/ID4gdGVwcGFuXCA7Civpg7XpgIEgPiB5dXVzb3VcIDsKK+avlOi8gyA+IGhpa2FrdVwgOwor5rWF5omNID4gc2Vuc2FpXCA7Civnn63pn7MgPiB0YW4nJ29uXCA7CivnpoHmm7ggPiBraW5zaG9cIDsKK+iRiemiqCA+IGhha2F6ZVwgOwor5Y+i55SfID4gc291c2VpXCA7CivlvqHoo70gPiBneW9zZWlcIDsKK+iTtOiPnCA+IGp1bnNhaVwgOwor5ZCr5rC0ID4gZ2Fuc3VpXCA7Civmg7Plv7UgPiBzb3VuZW5cIDsKK+W9sei6qyA+IGthZ2VtaVwgOwor5Y6f57SZID4gZ2Vuc2hpXCA7CivmhJvlrIwgPiBhaWt5b3VcIDsKK+mKt+WkjyA+IHNob3VrYVwgOwor5q+b6LazID4ga2Vhc2hpXCA7Civljp/ns7ggPiBnZW5zaGlcIDsKK+atr+mrhCA+IHNoaXp1aVwgOwor5rW35a65ID4ga2FpeW91XCA7CivpioPlvL4gPiBqdXVkYW5cIDsKK+iZmuWgsSA+IGt5b2hvdVwgOwor5Y6f57OWID4gZ2VudG91XCA7CivokL3ppqwgPiByYWt1YmFcIDsKK+mHkeeSsCA+IGtpbmthblwgOwor56CV6YmxID4gc2Fpa291XCA7CivlvJPppqwgPiBreXV1YmFcIDsKK+WPjOecvCA+IHNvdWdhblwgOwor5Y+M55y4ID4gc291Ym91XCA7CivpubnmsLQgPiBrYW5zdWlcIDsKK+egsui7iiA+IGhvdXNoYVwgOwor5oaC5LiWID4geXV1c2VpXCA7Civlj43nnIEgPiBoYW5zZWlcIDsKK+azqOayuSA+IGNodXV5dVwgOwor5rWF5oWuID4gc2VucnlvXCA7Civpg7fou40gPiBnb3VndW5cIDsKK+aDheaTjSA+IGpvdXNvdVwgOwor56We5qi5ID4gc2hpbmp1XCA7CivmtojlpI8gPiBzaG91a2FcIDsKK+ayiOeggiA+IGNoaW5zYVwgOwor5Yun6YqAID4ga2FuZ2luXCA7CivljLvooZMgPiBpanV0c3VcIDsKK+mCpumhjCA+IGhvdWRhaVwgOwor6JWD56S+ID4gYmFuc2hhXCA7CivnqL/kurogPiBrb3VqaW5cIDsKK+emgeaWrSA+IGtpbmRhblwgOwor6JCM6buOID4gaG91cmVpXCA7Civmg7DlvLEgPiBkYWpha3VcIDsKK+W+i+ipqSA+IHJpc3NoaVwgOwor5oSf5aWuID4ga2FucHVuXCA7CivljrPnpoEgPiBnZW5raW5cIDsKK+a2meWaoiA+IHJ1aW5vdVwgOwor56mC5LimID4gaG9uYW1pXCA7CivljbXog54gPiByYW5ob3VcIDsKK+WQjOa6kCA+IGRvdWdlblwgOwor5oSb5aa+ID4gYWlzaG91XCA7CivlkI3mua8gPiBtZWl0b3VcIDsKK+mHjueQgyA+IHlha3l1dVwgOwor5oCq55uXID4ga2FpdG91XCA7CivlkYnmnI0gPiBnb2Z1a3VcIDsKK+elnualvSA+IGthZ3VyYVwgOwor5b+g576pID4gY2h1dWdpXCA7CivokbfphZIgPiBrdW5zaHVcIDsKK+awtOiFqyA+IHN1aXNodVwgOwor56eR5a2mID4ga2FnYWt1XCA7Civol43mn5MgPiBhaXpvbWVcIDsKK+WUkOS6uiA+IHRvdWppblwgOwor5rK554S2ID4geXV1emVuXCA7Civmgqrmm7ggPiBha3VzaG9cIDsKK+W9k+mBuCA+IHRvdXNlblwgOwor5rSL5pysID4geW91aG9uXCA7CivlvozoposgPiBrb3VrZW5cIDsKK+WQm+awkSA+IGt1bm1pblwgOwor5rSL5pu4ID4geW91c2hvXCA7CivokYnpmbAgPiBoYWthZ2VcIDsKK+mKgOW2uiA+IGdpbnJlaVwgOwor56S85rOVID4gcmVpaG91XCA7CivmsrjngrkgPiBmdXR0ZW5cIDsKK+eni+WtoyA+IHNodXVraVwgOwor5oWL5YuiID4gdGFpc2VpXCA7CivlkozluIMgPiB3YWthbWVcIDsKK+aBrOa3oSA+IHRlbnRhblwgOwor6buZ5bqnID4gbW9rdXphXCA7CivmtrLliaQgPiBla2l6YWlcIDsKK+atu+mciiA+IHNoaXJlaVwgOwor5q6/6LuNID4gZGVuZ3VuXCA7Civpu5LlvbEgPiBrb2t1ZWlcIDsKK+W8iumiqCA+IGhlaWZ1dVwgOwor5Y+M55SfID4gc291c2VpXCA7Civlv4Xoh7MgPiBoaXNzaGlcIDsKK+W+gOiouiA+IG91c2hpblwgOwor5b6B6KiOID4gc2VpdG91XCA7CivolJfns5YgPiBzaG90b3VcIDsKK+mHkeeJjCA+IGtpbnBhaVwgOwor6YWN6Ii5ID4gaGFpc2VuXCA7CivpioXlsbEgPiBkb3V6YW5cIDsKK+aFo+S+iyA+IGthbnJlaVwgOwor5rOV5rK7ID4gaG91Y2hpXCA7CivmtbflpJYgPiBrYWlnYWlcIDsKK+WOn+eovyA+IGdlbmtvdVwgOwor5Y6f56iuID4gZ2Vuc2h1XCA7CivmsLTogJUgPiBzdWlrb3VcIDsKK+mDteiyryA+IHl1dWNob1wgOwor6YeO54mbID4geWFneXV1XCA7CivmtLvmgKcgPiBrYXNzZWlcIDsKK+ekvuauvyA+IHNoYWRlblwgOwor5oSb5Z+3ID4gYWlzaHV1XCA7Civli6fpgLIgPiBrYW5qaW5cIDsKK+mHjeeJiCA+IGp1dWhhblwgOwor5oKq5paHID4gYWt1YnVuXCA7CivnoILph5EgPiBzaGFraW5cIDsKK+ato+mkkCA+IHNlaXNhblwgOwor6YWN6IazID4gaGFpemVuXCA7CivmsYLnuIEgPiBreXV1ZW5cIDsKK+mKgOWxsSA+IGdpbnphblwgOwor56iO5Yi2ID4gemVpc2VpXCA7Civlv43ogJAgPiBuaW50YWlcIDsKK+aCquaUvyA+IGFrdXNlaVwgOwor5q2v6Z2iID4gc2hpbWVuXCA7CivlkIjms5UgPiBnb3Vob3VcIDsKK+atu+mXmCA+IHNoaXRvdVwgOwor56Wt5paHID4gc2FpbW9uXCA7CivlkITmtL4gPiBrYWt1aGFcIDsKK+mBuumrqiA+IGloYXRzdVwgOwor5Y2X6IiqID4gbmFua291XCA7CivmhajkuJYgPiBnYWlzZWlcIDsKK+enmOWigyA+IGhpa3lvdVwgOwor6YWS6IK0ID4gc2h1a291XCA7CivmsYDnt5ogPiB0ZWlzZW5cIDsKK+WOu+eXsCA+IGt5b3RhblwgOwor5rW35aChID4ga2FpaG91XCA7CivlkIzmsI8gPiBkb3VzaGlcIDsKK+elreaUvyA+IHNhaXNlaVwgOwor6YG66aqoID4gaWtvdHN1XCA7Civpu5Llt74gPiBrdXJvZ29cIDsKK+aBqeayoiA+IG9udGFrdVwgOwor5rW35Z+fID4ga2FpaWtpXCA7CivlvoTooYwgPiBrZWlrb3VcIDsKK+aEm+WbvSA+IGFpa29rdVwgOwor6YmE5ouzID4gdGVra2VuXCA7CivlkI3mrosgPiBuYWdvcmlcIDsKK+ayvOa5liA+IHNob3Vrb1wgOwor6JGs6YCBID4gc291c291XCA7CivnoLToqr8gPiBoYWNob3VcIDsKK+aDs+WumiA+IHNvdXRlaVwgOwor5oOF5oSfID4gam91a2FuXCA7CivomZrlkI0gPiBreW9tZWlcIDsKK+WOmuekvCA+IGtvdXJlaVwgOwor56aB5omAID4ga2luc2hvXCA7CivlvL7pgZMgPiBkYW5kb3VcIDsKK+awkeiKuCA+IG1pbmdlaVwgOwor5oSf5ZiGID4ga2FudGFuXCA7Civlk7rkubMgPiBob255dXVcIDsKK+mHjeeCuSA+IGp1dXRlblwgOwor5ZCD5rC0ID4ga2lzc3VpXCA7Civnp7DlkbwgPiBzaG91a29cIDsKK+WPsOa5viA+IHRhaXdhblwgOwor5rOJ5rC0ID4gc2Vuc3VpXCA7CivpiYTmiYcgPiB0ZXNzZW5cIDsKK+aAqueNoyA+IGthaWp1dVwgOwor5ZGo5b+MID4gc2h1dWtpXCA7CivmsLjntpogPiBlaXpva3VcIDsKK+ato+mdoiA+IG1hdG9tb1wgOwor6YeN54GwID4ganV1a2FpXCA7CivmsLTnt7QgPiBzdWlyZW5cIDsKK+efremKgyA+IHRhbmp1dVwgOwor5ZOA5ZOtID4gYWlrb2t1XCA7CivmsLTnt5ogPiBzdWlzZW5cIDsKK+mJseWxsSA+IGtvdXphblwgOwor5Y2x57W1ID4gYWJ1bmFlXCA7CivpibHlsaQgPiBrb3Vzb3VcIDsKK+aBpeavmyA+IGNoaW1vdVwgOwor5YyX6KGMID4gaG9ra291XCA7CivmspvnhLYgPiBoYWl6ZW5cIDsKK+aut+izkSA+IGluc2hpblwgOwor5q+S6KaLID4gZG9rdW1pXCA7CivliqnplbcgPiBqb2Nob3VcIDsKK+a2suS9kyA+IGVraXRhaVwgOwor5Y+45rOVID4gc2hpaG91XCA7CivpiI3moLkgPiBkb25rb25cIDsKK+aDheW/tSA+IGpvdW5lblwgOwor5oK95oOoID4gc2Vpc2FuXCA7Civmg6jlrrMgPiBzYW5nYWlcIDsKK+iZmuWLoiA+IGt5b3NlaVwgOwor56KH572uID4gdGVpY2hpXCA7CivphY3nva4gPiBoYWljaGlcIDsKK+awl+iDuCA+IGtpa3lvdVwgOwor5ZKz5Ze9ID4gZ2Fpc291XCA7Civmrovph5EgPiB6YW5raW5cIDsKK+W+qeiIqiA+IGZ1a2tvdVwgOwor5ZCM5qipID4gZG91a2VuXCA7Civmr6zol7sgPiBtYXJpbW9cIDsKK+iWq+afkyA+IGt1bnNlblwgOwor56eB5aSnID4gc2hpZGFpXCA7Civmr5von7kgPiBrZWdhbmlcIDsKK+W+qeiIiCA+IGZ1a2tvdVwgOwor5oSb5ZSxID4gYWlzaG91XCA7CivmgKfnirYgPiBzZWlqb3VcIDsKK+WTgeWQjSA+IGhpbm1laVwgOwor6Ymx5a6zID4ga291Z2FpXCA7CivlkIzmp5ggPiBkb3V5b3VcIDsKK+WNg+iIrCA+IHNlbnBhblwgOwor5rC057O7ID4gc3Vpa2VpXCA7CivmgqDmj5ogPiB5dXV5b3VcIDsKK+aCquaKlSA+IGFrdXRvdVwgOwor5Y6f55ukID4gZ2VuYmFuXCA7Civps7TploAgPiBuYXJ1dG9cIDsKK+WLlei8qiA+IGRvdXJpblwgOwor5rKz5rWBID4ga2FyeXV1XCA7CivljprnnYAgPiBhdHN1Z2lcIDsKK+aCquaJjSA+IGFrdXNhaVwgOwor5oKq5omLID4gYWt1c2h1XCA7CivmhJ/lkJ8gPiBrYW5naW5cIDsKK+ayvOawlyA+IHNob3VraVwgOwor5rK75rC0ID4gY2hpc3VpXCA7CivmgqrmiYAgPiBha3VzaG9cIDsKK+mKg+WjsCA+IGp1dXNlaVwgOwor5Y21566hID4gcmFua2FuXCA7CivmrY7poZggPiB0YW5nYW5cIDsKK+m7kuWtlyA+IGt1cm9qaVwgOwor6buS5a2QID4gaG9rdXJvXCA7CivmgrbmgrYgPiBtb25tb25cIDsKK+aCquaIpiA+IGFrdXNlblwgOwor5YuV6LuiID4gZG91dGVuXCA7CivnpoDmgKcgPiByaW5zZWlcIDsKK+WLh+mCgSA+IHl1dW1haVwgOwor5Y2x56+kID4ga2l0b2t1XCA7Civnp4HloLEgPiBzaGlob3VcIDsKK+aCsuaEgSA+IGhpc2h1dVwgOwor5raI5YyWID4gc2hvdWthXCA7CivmraPplo8gPiBzZWlqdW5cIDsKK+ato+mWgCA+IHNlaW1vblwgOwor5b2i6KaLID4ga2F0YW1pXCA7CivlkIzmo7IgPiBkb3VzZWlcIDsKK+m2j+iIjiA+IGtlaXNoYVwgOwor5YyF6KOFID4gaG91c291XCA7CivlvrPnvqkgPiB0b2t1Z2lcIDsKK+iRiemFuCA+IHlvdXNhblwgOwor5Yq06YqAID4gcm91Z2luXCA7CivljbDnrrEgPiBpbmJha29cIDsKK+W+jOiRiSA+IGtvdXlvdVwgOwor6YO16KKLID4geXV1dGFpXCA7CivphY3nt5ogPiBoYWlzZW5cIDsKK+WLh+mAgCA+IHl1dXRhaVwgOwor5ZC55oyZID4gc3Vpa3lvXCA7CivmrorpgYcgPiBzaHVndXVcIDsKK+iSvOiMqyA+IHNvdWJvdVwgOwor5rC0566hID4gc3Vpa2FuXCA7CivnpZ7mjoggPiBzaGluanVcIDsKK+aCquaFiyA+IGFrdXRhaVwgOwor5Y+k5rWBID4ga29yeXV1XCA7CivljYHog70gPiBqdXVub3VcIDsKK+mKgOWhiiA+IGdpbmthaVwgOwor6Je75bGRID4gbW9rdXp1XCA7CivomZrlg48gPiBreW96b3VcIDsKK+mFkueyviA+IHNodXNlaVwgOwor5ZCM5qC5ID4gZG91a29uXCA7CivmspnmvKAgPiBzYWJha3VcIDsKK+awtOetkiA+IHN1aXRvdVwgOwor6buZ5aWRID4gbW9ra2VpXCA7CivmhJ/li5UgPiBrYW5kb3VcIDsKK+WQjOagoSA+IGRvdWtvdVwgOwor6YeN5rayID4ganV1ZWtpXCA7Civlj6Tms6ggPiBrb2NodXVcIDsKK+WNmOe3miA+IHRhbnNlblwgOwor5b2T6KmyID4gdG91Z2FpXCA7CivljbDnq6AgPiBpbnNob3VcIDsKK+avkuibviA+IGRva3VnYVwgOwor5Y6f55SjID4gZ2Vuc2FuXCA7Civli53osqAgPiBzaG91YnVcIDsKK+WOn+eUnyA+IGdlbnNlaVwgOwor5bu26ZW3ID4gZW5jaG91XCA7Civph5Hms6UgPiBrb25kZWlcIDsKK+efpemBhyA+IGNoaWd1dVwgOwor5q2M6ZuGID4ga2FzaHV1XCA7CivmsaDnlZQgPiBjaGloYW5cIDsKK+WNpueulyA+IGtlaXNhblwgOwor6buS5aW0ID4ga29rdWRvXCA7CivmgKXngasgPiBreXV1a2FcIDsKK+elnuaKgCA+IHNoaW5naVwgOwor6YqA5Z2RID4gZ2lua291XCA7Civms5Xmm7kgPiBob3Vzb3VcIDsKK+WQjOadkSA+IGRvdXNvblwgOwor5Y6a55SfID4ga291c2VpXCA7CivlkI3mnK0gPiBuYWZ1ZGFcIDsKK+aCquaApyA+IGFrdXNlaVwgOwor5Y2Y57SUID4gdGFuanVuXCA7CivlkI3mnJsgPiBtZWlib3VcIDsKK+WLp+iqrCA+IGthbnplaVwgOwor5ZCR5pqRID4ga291c2hvXCA7CivomIrlpaUgPiB1bicnbm91XCA7Civlv6vnnKAgPiBrYWltaW5cIDsKK+aCquW/tSA+IGFrdW5lblwgOwor5Y2K57qPID4gaGFudGVuXCA7CivlvqHogIUgPiBneW9zaGFcIDsKK+awtOeosiA+IHN1aXRvdVwgOwor5ZCM5pyLID4gZG91Ym91XCA7CivlkIjmnb8gPiBnb3ViYW5cIDsKK+WQjOabuCA+IGRvdXNob1wgOwor6YeR5rCXID4ga2FuYWtlXCA7Civnp5jljL8gPiBoaXRva3VcIDsKK+aEn+WGkiA+IGthbmJvdVwgOwor56aP5a+/ID4gZnVrdWp1XCA7CivmgKrmvKIgPiBrYWlrYW5cIDsKK+mJhOW3pSA+IHRla2tvdVwgOwor5ZCI5pysID4gZ2FwcG9uXCA7Civpga3pm6MgPiBzb3VuYW5cIDsKK+mHjeawtCA+IGp1dXN1aVwgOwor5rC056a9ID4gc3Vpa2luXCA7CivmhJ/lhYkgPiBrYW5rb3VcIDsKK+iZmuS8nSA+IGt5b2RlblwgOwor5ZCI5pyNID4gYWlmdWt1XCA7CivmgqDmgqAgPiB5dXV5dXVcIDsKK+WNl+exsyA+IG5hbmJlaVwgOwor6baP576kID4ga2VpZ3VuXCA7CivphY3nrqEgPiBoYWlrYW5cIDsKK+WTgOWCtyA+IGFpc2hvdVwgOwor5Y+X5rOoID4ganVjaHV1XCA7CivlirTpgKMgPiByb3VyZW5cIDsKK+WLpuiojiA+IHNvdXRvdVwgOwor5Y6z54S2ID4gZ2VuemVuXCA7CivpiZflrZAgPiBrYW5zaGlcIDsKK+WNmOewoSA+IHRhbmthblwgOwor6JS154mIID4gem91aGFuXCA7CivmsLTnpZ4gPiBzdWlqaW5cIDsKK+aCquW8iiA+IGFrdWhlaVwgOwor5Ym16Z2iID4gc291bWVuXCA7CivlirTovrIgPiByb3Vub3VcIDsKK+W+qee4gSA+IGZ1a3VlblwgOwor56We5oSPID4gc2hpbicnaVwgOwor6bu95YuJID4gYmluYmVuXCA7CivmhI/lipsgPiBpcnlva3VcIDsKK+W9k+ihjCA+IHRvdWtvdVwgOwor56aF5bC8ID4gemVuJyduaVwgOwor56Wd5oSPID4gc2h1a3VpXCA7Civms5XmlocgPiBob3VidW5cIDsKK+WKoOmHjSA+IGthY2hvdVwgOwor5ZCM5patID4gZG91ZGFuXCA7Civlj5bmsLQgPiBzaHVzdWlcIDsKK+a1hOWfnyA+IGpvdWlraVwgOwor5ZCN5paHID4gbWVpYnVuXCA7CivljYrntJkgPiBoYW5zaGlcIDsKK+W8lOi+niA+IGNob3VqaVwgOwor6Ymx5Z2RID4ga291a291XCA7CivlkI3mlbAgPiBtZWlzdXVcIDsKK+mFkueojiA+IHNodXplaVwgOwor5ZCM5paHID4gZG91YnVuXCA7Civli53oqLQgPiBzaG91c29cIDsKK+WOn+eKtiA+IGdlbmpvdVwgOwor5rW35YaFID4ga2FpZGFpXCA7CivlkIzmlbAgPiBkb3VzdXVcIDsKK+a1t+WFtSA+IGthaWhlaVwgOwor5b6T6ICFID4ganV1c2hhXCA7CivljIXolLUgPiBob3V6b3VcIDsKK+W+veeroCA+IGtpc2hvdVwgOwor5q+b6Iy4ID4gbW91am91XCA7CivnpoXlrpogPiB6ZW5qb3VcIDsKK+WQiOaWuSA+IGFpa2F0YVwgOwor6buS5ZywID4ga3Vyb2ppXCA7CivmsojmuKMgPiBjaGluc2FcIDsKK+W+jOiCoiA+IGtvdXNoaVwgOwor6buS5ZyfID4ga29rdWRvXCA7Civljp/niYggPiBnZW5wYW5cIDsKK+iWhOadvyA+IHVzdWl0YVwgOwor55+t6LOHID4gdGFuc2hpXCA7Civph5HmqKkgPiBraW5rZW5cIDsKK+WNl+erryA+IG5hbnRhblwgOwor5by36KuLID4gZ291c2VpXCA7CivlvLfoq4cgPiBnb3VkYW5cIDsKK+mKmOWIgCA+IG1laXRvdVwgOwor5oKU5oGoID4ga2Fpa29uXCA7CivpgaDpmpQgPiBlbmtha3VcIDsKK+axuua9sCA+IGtla2thaVwgOwor6Jam5oyZID4gc2Vua3lvXCA7Civpu4TlobUgPiBrb3VqaW5cIDsKK+WLleipniA+IGRvdXNoaVwgOwor56eA5Y+lID4gc2h1dWt1XCA7Civph6PmnpwgPiBjaG91a2FcIDsKK+WPpOalvSA+IGtvZ2FrdVwgOwor5Y+45pu4ID4gc2hpc2hvXCA7CivlvozogIUgPiBrb3VzaGFcIDsKK+WMl+iIqiA+IGhva2tvdVwgOwor6YiN5omNID4gZG9uc2FpXCA7CivlkLjlvJUgPiBreXV1aW5cIDsKK+W7g+mgvSA+IGhhaXRhaVwgOwor6Je75aGpID4gbW9zaGlvXCA7CivpioPlj6MgPiBqdXVrb3VcIDsKK+W8t+iomCA+IGt5b3VraVwgOwor5oCl5rS+ID4ga3l1dWhhXCA7CivlibXplosgPiBzb3VrYWlcIDsKK+WPjeavmyA+IGhhbm1vdVwgOwor6JaE5pquID4gaGFrdWJvXCA7Civnn6nosaEgPiBrdXNob3VcIDsKK+awtOedgCA+IG1penVnaVwgOwor5rqA44CFID4gbWFubWFuXCA7CivnopHnn7MgPiBoaXNla2lcIDsKK+aEmuS9nCA+IGd1c2FrdVwgOwor5Yqg6YCfID4ga2Fzb2t1XCA7Civlvoznva4gPiBrb3VjaGlcIDsKK+axmueJqSA+IG9idXRzdVwgOwor5Y+y5pu4ID4gc2hpc2hvXCA7CivmtKrlpKcgPiBrb3VkYWlcIDsKK+WPsOacrCA+IGRhaWhvblwgOwor6baP57OeID4ga2VpZnVuXCA7CivmsLTnm6QgPiBzdWliYW5cIDsKK+WMheiOliA+IGhvdWtlaVwgOwor5ZKG5ZOuID4gaG91a291XCA7CivnpLzmi50gPiByZWloYWlcIDsKK+W+rueskSA+IGJpc2hvdVwgOwor5Yml6ZuiID4gaGFrdXJpXCA7CivpgbjpibEgPiBzZW5rb3VcIDsKK+WOn+eCuSA+IGdlbnRlblwgOwor6JKQ6I23ID4gc2h1dWthXCA7CivljYPnr4cgPiBzZW5wZW5cIDsKK+WPpOagvCA+IGtva2FrdVwgOwor5rG65riIID4ga2Vzc2FpXCA7CivljZHnp7AgPiBoaXNob3VcIDsKK+mIjeaEnyA+IGRvbmthblwgOwor5YyF6IyOID4gaG91a2VpXCA7Civmr5vohJsgPiBrZXp1bmVcIDsKK+avm+iEmiA+IGtlYXNoaVwgOwor6bOz6LymID4gaG91cmVuXCA7CivlirTos4cgPiByb3VzaGlcIDsKK+aAquatuyA+IGthaXNoaVwgOwor56Cy6ImmID4gaG91a2FuXCA7Civnp4HliJEgPiBzaGlrZWlcIDsKK+mFlOecvCA+IHN1aWdhblwgOwor5bm86b2iID4geW91cmVpXCA7Civlu7vpgIEgPiBrYWlzb3VcIDsKK+W7uumAoCA+IGtlbnpvdVwgOwor5Yi66a2aID4gdG9nZXVvXCA7Civpg6jokL0gPiBidXJha3VcIDsKK+WPt+aVsCA+IGdvdXN1dVwgOwor6YqD5Ym1ID4ganV1c291XCA7CivnpZblu58gPiBzb2J5b3VcIDsKK+WNteeUnyA+IHJhbnNlaVwgOwor6YqD5YmjID4ganV1a2VuXCA7Civlj4Lmrr8gPiBzYW5kZW5cIDsKK+W8leiyrCA+IGluc2VraVwgOwor6Jep5aOrID4gaGFuc2hpXCA7CivmsLTnl5ggPiBzdWl0b3VcIDsKK+mHkeafkSA+IGtpbmthblwgOwor55+t6KmpID4gdGFuc2hpXCA7CivmgZLmmJ8gPiBrb3VzZWlcIDsKK+aDheWgsSA+IGpvdWhvdVwgOwor6bqX5a65ID4gcmVpeW91XCA7CivphK3nrosgPiB0ZWlzZW5cIDsKK+awtOeWsSA+IHN1aWhvdVwgOwor5Y+i5p6XID4gc291cmluXCA7Civlj7PmlocgPiB5dXVidW5cIDsKK+mKg+WIkSA+IGp1dWtlaVwgOwor6YO16Ii5ID4geXV1c2VuXCA7CivlkI3miYsgPiBtZWlzaHVcIDsKK+W+jOe3qCA+IGtvdWhlblwgOwor56eB5YW1ID4gc2hpaGVpXCA7CivlkI3miYAgPiBtZWlzaG9cIDsKK+mCgumAhSA+IGthaWtvdVwgOwor5Y+k5pyoID4ga29ib2t1XCA7Civph5Hmna8gPiBraW5wYWlcIDsKK+efpeisgCA+IGNoaWJvdVwgOwor56eB5YWaID4gc2hpdG91XCA7CivlkIzmiYAgPiBkb3VzaG9cIDsKK+WQjOaIvyA+IGRvdWJvdVwgOwor5ZCb5oGpID4ga3VuJydvblwgOwor5ZCI5oqxID4gZ291aG91XCA7Civmg7PliLAgPiBzb3V0b3VcIDsKK+WOn+a9nCA+IGdlbnNlblwgOwor6Yak5rK5ID4gc2hvdXl1XCA7Civlvq7npoQgPiBiaXJva3VcIDsKK+eigeefsyA+IGdvaXNoaVwgOwor5b6M57aZID4ga291a2VpXCA7Civms7DlubMgPiB0YWloZWlcIDsKK+WPsOaVsCA+IGRhaXN1dVwgOwor5rC055SwID4gc3VpZGVuXCA7CivmtbfkuIogPiBrYWlqb3VcIDsKK+awtOeUoyA+IHN1aXNhblwgOwor5bm06b2iID4gbmVucmVpXCA7CivmsLTnlJ8gPiBzdWlzZWlcIDsKK+mBvOmBoCA+IHJ5b3VlblwgOwor5bqV6a2aID4gc29rb3VvXCA7CivmgZLmlbAgPiBrb3VzdXVcIDsKK+enmOS4rSA+IGhpY2h1dVwgOwor5YmN6aCFID4gemVua291XCA7Civlj6Lmm7ggPiBzb3VzaG9cIDsKK+auuuiPjCA+IHNha2tpblwgOwor5bu76LuiID4ga2FpdGVuXCA7CivmrKDpmaUgPiBrZWtrYW5cIDsKK+mKmOS7mSA+IG1laXNlblwgOwor55+t6KaLID4gdGFua2VuXCA7CivlkbzlkLggPiBrb2t5dXVcIDsKK+W8seihjCA+IGpha2tvdVwgOwor5ZG95ZCNID4gbWVpbWVpXCA7CivnpoXloIIgPiB6ZW5kb3VcIDsKK+WQiOaIpiA+IGthc3NlblwgOwor5ZG85ZCNID4geW9iaW5hXCA7CivmrZPpgIEgPiBrYW5zb3VcIDsKK+WQiOaIkCA+IGdvdXNlaVwgOwor5rG65rC0ID4ga2Vzc3VpXCA7CivlkIzmhoIgPiBkb3V5dXVcIDsKK+mKheWDjyA+IGRvdXpvdVwgOwor5ZCM5oW2ID4gZG91a2VpXCA7CivljZjnnLwgPiB0YW5nYW5cIDsKK+atk+i/jiA+IGthbmdlaVwgOwor6YeN5pu5ID4ganV1c291XCA7CivliY3pnaIgPiB6ZW5tZW5cIDsKK+WPpOaYlCA+IGtvc2VraVwgOwor6JK457GgID4gc2Vpcm91XCA7Civmr5Tnv7wgPiBoaXlva3VcIDsKK+WQiOaGsiA+IGdvdWtlblwgOwor5Y2Y55u4ID4gdGFuc291XCA7CivpiYTloZQgPiB0ZXR0b3VcIDsKK+WQjOaEnyA+IGRvdWthblwgOwor5rWq5Lq6ID4gcm91bmluXCA7CivliZTpmaQgPiB0ZWtpam9cIDsKK+WQiOaGjiA+IGFpbmlrdVwgOwor5rKh5pu4ID4gYm9zc2hvXCA7CivmrKHplbcgPiBqaWNob3VcIDsKK+m3uea0viA+IHRha2FoYVwgOwor5oKq5aa7ID4gYWt1c2FpXCA7Civpupflp78gPiByZWlzaGlcIDsKK+WJjembuyA+IHplbmRlblwgOwor55+l6KaLID4gY2hpa2VuXCA7CivmsbrmrbsgPiBrZXNzaGlcIDsKK+aDs+WDjyA+IHNvdXpvdVwgOwor5Y+W5p2QID4gc2h1emFpXCA7CivlkIzmg4UgPiBkb3Vqb3VcIDsKK+WItummrSA+IHNlaWd5b1wgOwor5ZCR5oCnID4ga291c2VpXCA7CivomK3kurogPiByYW5qaW5cIDsKK+auv+iIjiA+IGRlbnNoYVwgOwor6I+M6aGeID4ga2lucnVpXCA7CivnpZ7lrq4gPiBqaW5ndXVcIDsKK+aCsuWigyA+IGhpa3lvdVwgOwor5Y6z5q2jID4gZ2Vuc2VpXCA7CivokL3oqp4gPiByYWt1Z29cIDsKK+m7hOWQuyA+IGtvdWZ1blwgOwor6YeN5pifID4ganV1c2VpXCA7Civlj6PmlbAgPiBrb3VzdXVcIDsKK+WNteeKtiA+IHJhbmpvdVwgOwor5q2j6LOTID4gc2VpaGluXCA7CivlvJXoqLwgPiBpbnNob3VcIDsKK+aCquWkqSA+IGFrdXRlblwgOwor5b6M56+HID4ga291aGVuXCA7Civpu4Tlj6MgPiBrb3Vrb3VcIDsKK+WQjOaApyA+IGRvdXNlaVwgOwor5oKq5aOwID4gYWt1c2VpXCA7Civms7DlsbEgPiB0YWl6YW5cIDsKK+mBremBhyA+IHNvdWd1dVwgOwor6YeN5paHID4ganV1YnVuXCA7CivliYrpmaQgPiBzYWt1am9cIDsKK+WNiuedoSA+IGhhbnN1aVwgOwor5ZCM5b+XID4gZG91c2hpXCA7CivlkL7lprkgPiB3YWdpbW9cIDsKK+WNiuecvCA+IGhhbmdhblwgOwor5ZCI5oCnID4gYWlzaG91XCA7Civnp4HkurogPiBzaGlqaW5cIDsKK+WPs+aKmCA+IHVzZXRzdVwgOwor56Wt5aOHID4gc2FpZGFuXCA7Civljp/msrkgPiBnZW4nJ3l1XCA7CivmrbPoqIggPiBzYWlrZWlcIDsKK+aAp+aguSA+IHNob3VuZVwgOwor6JGb6JekID4ga2F0dG91XCA7CivljYrnm7IgPiBoYW5tb3VcIDsKK+W+jOerryA+IGtvdXRhblwgOwor5rWE5YaZID4gam91c2hhXCA7CivlkIzlvaIgPiBkb3VrZWlcIDsKK+WJjemWgCA+IHplbm1vblwgOwor5oKq5aC0ID4gd2FydWJhXCA7CivmgqrloLEgPiBha3Vob3VcIDsKK+azleW7tyA+IGhvdXRlaVwgOwor5Y+z5omLID4gbWlnaXRlXCA7Civlj4zmm7ggPiBzb3VzaG9cIDsKK+W/g+eQhiA+IHNoaW5yaVwgOwor5Y+L5pyLID4geXV1aG91XCA7Civlv6vmvKIgPiBrYWlrYW5cIDsKK+WNh+ebriA+IG1hc3VtZVwgOwor56S85bi9ID4gcmVpYm91XCA7Civlh7rpvLsgPiBkZWJhbmFcIDsKK+WPieacqCA+IG1hdGFnaVwgOwor5q2p6Kq/ID4gaG9jaG91XCA7CivlupfpoK0gPiB0ZW50b3VcIDsKK+elreWgtCA+IHNhaWpvdVwgOwor5bm96a2CID4geXV1a29uXCA7CivnpZ7lqIEgPiBzaGluJydpXCA7Civlj4jmnKggPiBtYXRhZ2lcIDsKK+W5vOmtmiA+IHlvdWd5b1wgOwor5Yi66Z2SID4gc2hpc2VpXCA7Civljp/msJEgPiBnZW5taW5cIDsKK+WJtemAoCA+IHNvdXpvdVwgOwor5oGw5bqmID4gY2hvdWRvXCA7CivlkLnlpY8gPiBzdWlzb3VcIDsKK+WQjeW6lyA+IG1laXRlblwgOwor5Yi46Z2iID4ga2VubWVuXCA7Civljp/mr5sgPiBnZW5tb3VcIDsKK+mKg+S4uCA+IGp1dWdhblwgOwor5bmy6bGIID4gaGlkYXJhXCA7CivlkIzlupcgPiBkb3V0ZW5cIDsKK+WPr+aIkCA+IGthbmFyaVwgOwor5Yiw6aCtID4gdG91dG91XCA7CivlkIjlvIEgPiBnb3ViZW5cIDsKK+azleW4qyA+IGhvdXNoaVwgOwor5byB6KuWID4gYmVucm9uXCA7Civlj43mmKAgPiBoYW4nJ2VpXCA7CivlkIzlubQgPiBkb3VuZW5cIDsKK+azleW4liA+IGhvdWpvdVwgOwor5rWB5YSAID4gcnl1dWdpXCA7CivmraPoq5YgPiBzZWlyb25cIDsKK+aDheWPsiA+IGpvdXNoaVwgOwor5rS75YaZID4ga2Fzc2hhXCA7CivmsLTnha4gPiBtaXp1bmlcIDsKK+WKseihjCA+IHJlaWtvdVwgOwor5oOH5Y6aID4gdG9ua291XCA7CivluqfplbcgPiB6YWNob3VcIDsKK+aBkOaHvCA+IGt5b3VrdVwgOwor5Yil6aSoID4gYmVra2FuXCA7Civmr5LntKAgPiBkb2t1c29cIDsKK+WQjeW3pSA+IG1laWtvdVwgOwor5ZCM5biCID4gZG91c2hpXCA7CivmsL7mv6sgPiBoYW5yYW5cIDsKK+W6lemdoiA+IHRlaW1lblwgOwor5Y+M5pa5ID4gc291aG91XCA7CivljYrnlbMgPiBoYW5qb3VcIDsKK+egtOe0hCA+IGhheWFrdVwgOwor5b28562JID4ga2FyZXJhXCA7CivpgY7ph48gPiBrYXJ5b3VcIDsKK+WOmOavmyA+IHJpbm1vdVwgOwor5Y+N5pWwID4gaGFuc3V1XCA7CivmsJHnlJ8gPiBtaW5zZWlcIDsKK+avm+euoSA+IG1vdWthblwgOwor5Y2K55SfID4gaGFuc2VpXCA7CivmraPoqJMgPiBzZWlrdW5cIDsKK+WPjeaUuyA+IGhhbmtvdVwgOwor5Y675p2lID4ga3lvcmFpXCA7CivlvIHop6MgPiBiZW5rYWlcIDsKK+mBi+mHnSA+IHVuc2hpblwgOwor6YGO6YW3ID4ga2Frb2t1XCA7Civlj6TmiYsgPiBmdXJ1dGVcIDsKK+ato+inoyA+IHNlaWthaVwgOwor5Yi26ZmQID4gc2VpZ2VuXCA7Civmr5vnrYsgPiBrZXN1amlcIDsKK+ekvuWxiyA+IHNoYW9rdVwgOwor5rCX55CDID4ga2lreXV1XCA7Civlj6/mg5wgPiBhdHRhcmFcIDsKK+mAo+maiiA+IHJlbnRhaVwgOwor6YGK6YeRID4geXV1a2luXCA7Civlj6PmiY0gPiBrb3VzYWlcIDsKK+mGh+atoyA+IGp1bnNlaVwgOwor5oOF5YuiID4gam91c2VpXCA7Civlub3pppkgPiB5dXVrb3VcIDsKK+mHkeaJhyA+IGtpbnNlblwgOwor5q2j6KaWID4gc2Vpc2hpXCA7CivlkJvlrZAgPiBrdW5zaGlcIDsKK+atouimsyA+IHNoaWthblwgOwor5Yip6Z6YID4gcml6YXlhXCA7CivliKXpoIUgPiBiZWtrb3VcIDsKK+ato+ilvyA+IHNlaXNlaVwgOwor56aP5YipID4gZnVrdXJpXCA7CivpgYXpiI0gPiBjaGlkb25cIDsKK+WPluaNqCA+IHNodXNoYVwgOwor5Ymj6YGTID4ga2VuZG91XCA7CivmgKjmlbUgPiBvbnRla2lcIDsKK+W+queSsCA+IGp1bmthblwgOwor5bu66KiAID4ga2VuZ2VuXCA7CivmgYvmhJsgPiByZW4nJ2FpXCA7CivmrKDphY0gPiBrZXBwYWlcIDsKK+m1rOeoiyA+IGhvdXRlaVwgOwor6JWD5pu4ID4gYmFuc2hvXCA7CivmgZLmgKcgPiBrb3VzZWlcIDsKK+W7u+impyA+IGthaXJhblwgOwor5ZG95LukID4gbWVpcmVpXCA7CivlkI3lsbEgPiBtZWl6YW5cIDsKK+ecn+m0qCA+IG1hZ2Ftb1wgOwor6YCj6ZaiID4gcmVua2FuXCA7CivlkJHlr5IgPiBrb3VrYW5cIDsKK+axgOa4miA+IHRlaXNob1wgOwor5oGL5oOFID4gcmVuam91XCA7CivmrZPoq4cgPiBrYW5kYW5cIDsKK+aBkOaAliA+IGt5b3VmdVwgOwor5q2j6KOFID4gc2Vpc291XCA7Civlj4LmlL8gPiBzYW5zZWlcIDsKK+WQjOWxhSA+IGRvdWt5b1wgOwor5Yid6aCtID4gc2hvdG91XCA7CivpgYXphY0gPiBjaGloYWlcIDsKK+W7g+mAgCA+IGhhaXRhaVwgOwor5rGB5rayID4ganV1ZWtpXCA7CivpgJrpmaIgPiB0c3V1aW5cIDsKK+aBteWtmCA+IGtlaXpvblwgOwor6JaE5bm4ID4gaGFra291XCA7CivlkIzlsIEgPiBkb3VmdXVcIDsKK+WPsOW9oiA+IGRhaWtlaVwgOwor5rOV5a6aID4gaG91dGVpXCA7Civms5XlrpggPiBob3VrYW5cIDsKK+aBi+aBiyA+IHJlbnJlblwgOwor55+z6IuxID4gc2VraWVpXCA7CivlvannrqEgPiBzYWlrYW5cIDsKK+mBoOi2syA+IGVuc29rdVwgOwor5Yy655S7ID4ga3VrYWt1XCA7CivljrPmmpEgPiBnZW5zaG9cIDsKK+asoemAsSA+IGppc2h1dVwgOwor5YmN6YeRID4gbWFla2luXCA7Civph43mhYsgPiBqdXV0YWlcIDsKK+atu+iUtSA+IHNoaXpvdVwgOwor5rK75bmzID4gY2hpaGVpXCA7CivmtIvlk4EgPiB5b3VoaW5cIDsKK+WQjOWumiA+IGRvdXRlaVwgOwor5ZCN5a2XID4gbXlvdWppXCA7CivliaXouqsgPiBtdWtpbWlcIDsKK+awtOa6liA+IHN1aWp1blwgOwor5rC05rqQID4gc3VpZ2VuXCA7CivnpoHliLYgPiBraW5zZWlcIDsKK+mAgemiqCA+IHNvdWZ1dVwgOwor6YG66KiAID4geXVpZ29uXCA7Civmga/lrZAgPiBtdXN1a29cIDsKK+aBqeWvtSA+IG9uY2hvdVwgOwor6YGF6YGFID4gY2hpY2hpXCA7CivmgqrlkI0gPiBha3VtZWlcIDsKK+iUteacrCA+IHpvdWhvblwgOwor5Y6z5peoID4gZ2Vuc2hpXCA7Civljp/moYggPiBnZW4nJ2FuXCA7Civph43mgqMgPiBqdXVrYW5cIDsKK+WPjeaKlyA+IGhhbmtvdVwgOwor56WW5Zu9ID4gc29rb2t1XCA7Civlu4Pou4ogPiBoYWlzaGFcIDsKK+iUteabuCA+IHpvdXNob1wgOwor5oKq5Y+LID4gYWt1eXV1XCA7CivphZTmvKIgPiBzdWlrYW5cIDsKK+mHjeaBqSA+IGNob3VvblwgOwor5bm06aCtID4gbmVudG91XCA7CivmsrPluoogPiBrYXNob3VcIDsKK+a0l+WJpCA+IHNlbnphaVwgOwor5bm96ZyKID4geXV1cmVpXCA7Civnpa3lj7ggPiBzYWlzaGlcIDsKK+WLmOiAgyA+IGthbmtvdVwgOwor5oGS5bi4ID4ga291am91XCA7CivmgrLliocgPiBoaWdla2lcIDsKK+W6p+mHkSA+IHphZ2FuZVwgOwor56aF5YOnID4gemVuc291XCA7Civlj6PlvoQgPiBrb3VrZWlcIDsKK+WPjOaJiyA+IG1vcm90ZVwgOwor55+z6IaPID4gc2Vra291XCA7Civnn63oiYcgPiB0YW50ZWlcIDsKK+awtOa2ryA+IHN1aWdhaVwgOwor5Y+N5oimID4gaGFuc2VuXCA7CivliI7poLggPiBmdW5rZWlcIDsKK+W6pumHjyA+IGRvcnlvdVwgOwor6JK855SfID4gc291c2VpXCA7CivliIbppKggPiBidW5rYW5cIDsKK+WIhumkkCA+IGJ1bnNhblwgOwor6YGK6LuNID4geXV1Z3VuXCA7Civljp/mnb8gPiBnZW5wYW5cIDsKK+mDteeojiA+IHl1dXplaVwgOwor6YeO5b+DID4geWFzaGluXCA7Civli4PoiIggPiBib2trb3VcIDsKK+WMluefsyA+IGthc2VraVwgOwor56S+5aSWID4gc2hhZ2FpXCA7CivmgK/mh6YgPiBreW91ZGFcIDsKK+WPo+W8gSA+IGtvdWJlblwgOwor5Y+k5bufID4ga29ieW91XCA7CivlvZPnsaQgPiB0b3VzZW5cIDsKK+W6g+mWkyA+IGhpcm9tYVwgOwor5Y6f5pysID4gZ2VucG9uXCA7CivmsLTmtJcgPiBzdWlzZW5cIDsKK+awt+aysyA+IGh5b3VnYVwgOwor6Ya45oiQID4gam91c2VpXCA7Civlj4Lmi50gPiBzYW5wYWlcIDsKK+W5s+mdoiA+IGhlaW1lblwgOwor5bmz6Z2ZID4gaGVpc2VpXCA7CivlkIzlp5MgPiBkb3VzZWlcIDsKK+iXieWPoyA+IHNoYWtvdVwgOwor5Y6f5pu4ID4gZ2Vuc2hvXCA7CivlkKvll70gPiBnYW5zb3VcIDsKK+awtOazoSA+IHN1aWhvdVwgOwor5ZC75ZCIID4gZnVuZ291XCA7Civpg7fnpL4gPiBnb3VzaGFcIDsKK+mAgembuyA+IHNvdWRlblwgOwor5YiG6aGeID4gYnVucnVpXCA7CivmsrvlsbEgPiBjaGlzYW5cIDsKK+W+jOeUnyA+IGdvc2hvdVwgOwor5oGw5aW9ID4ga2Fra291XCA7CivliqDolqwgPiBrYXlha3VcIDsKK+W/q+alvSA+IGtlcmFrdVwgOwor5Y+N5oSfID4gaGFua2FuXCA7CivlkIzlpb0gPiBkb3Vrb3VcIDsKK+iWrOWckiA+IHlha3VlblwgOwor6Jep5L6vID4gaGFua291XCA7Civmga/lpbMgPiBzb2t1am9cIDsKK+azleWkliA+IGhvdWdhaVwgOwor6YmE5YKYID4gdGVzc2FuXCA7CivmsZ/mnZEgPiBrb3Vzb25cIDsKK+W/teagoSA+IG5lbmtvdVwgOwor5Y2Y5ryiID4gdGFua2FuXCA7Civno4HmnZ8gPiBqaXNva3VcIDsKK+WQjeWkpyA+IG1laWRhaVwgOwor5bm96ZaRID4geXV1a2FuXCA7Civlub3plokgPiB5dXVoZWlcIDsKK+W/jeazlSA+IG5pbnBvdVwgOwor5bm96ZaAID4geXV1bW9uXCA7Civlj4LmiKYgPiBzYW5zZW5cIDsKK+WQjOWkpyA+IGRvdWRhaVwgOwor5Yuy562JID4ga3VudG91XCA7Civlvbnnm64gPiB5YWt1bWVcIDsKK+aDheS6uiA+IGpvdW5pblwgOwor6JGX6ICFID4gY2hvc2hhXCA7CivnnqXoposgPiBiZWtrZW5cIDsKK+WQjeWjsCA+IG1laXNlaVwgOwor5oOF5LqkID4gam91a291XCA7Civlj6Tlt6MgPiBmdXJ1c3VcIDsKK+WQjeWjqyA+IG1laXNoaVwgOwor6YG16KGMID4ganVua291XCA7CivpgIDpmaMgPiB0YWlqaW5cIDsKK+WJo+ixqiA+IGtlbmdvdVwgOwor5rC05rCXID4gbWl6dWtlXCA7CivlkIzlo6sgPiBkb3VzaGlcIDsKK+W5tOmZkCA+IG5lbmdlblwgOwor5Y+L5oOFID4geXV1am91XCA7CivmsqLlurUgPiB0YWt1YW5cIDsKK+mBjuizniA+IGthc2hvdVwgOwor5q+S55+iID4gZG9rdXlhXCA7CivljrPmjqIgPiBnZW50YW5cIDsKK+WQiOWljyA+IGdhc3NvdVwgOwor5oKy5YK3ID4gaGlzaG91XCA7Civph5Hlt6UgPiBraW5rb3VcIDsKK+avm+eariA+IGtlZ2F3YVwgOwor5Y2X5rqfID4gbmFubWVpXCA7CivokYnohYsgPiB5b3Vla2lcIDsKK+WJjei7jSA+IHplbmd1blwgOwor5YuH6ICFID4geXV1c2hhXCA7CivliY3ou4ogPiB6ZW5zaGFcIDsKK+awtOavjSA+IGt1cmFnZVwgOwor55uu6by7ID4gbWVoYW5hXCA7Civpg73nnaMgPiB0b3Rva3VcIDsKK+WNl+a6gCA+IG5hbm1hblwgOwor5oKq5YWaID4gYWt1dG91XCA7Civlj7LlrpggPiBzaGlrYW5cIDsKK+mBi+izgyA+IHVuY2hpblwgOwor5oCn5oSfID4gc2Vpa2FuXCA7CivmsLTmrbsgPiBzdWlzaGlcIDsKK+WOn+aWhyA+IGdlbmJ1blwgOwor6YGK6LOHID4geXV1c2hpXCA7CivpuqbkvqEgPiBiYWt1a2FcIDsKK+mHjeW3pSA+IGp1dWtvdVwgOwor55+l6IO9ID4gY2hpbm91XCA7CivlibXoposgPiBzb3VrZW5cIDsKK+elreWFuCA+IHNhaXRlblwgOwor5YuV57eaID4gZG91c2VuXCA7Civlv7Xmm7ggPiBuZW5zaG9cIDsKK+W5tOmWkyA+IG5lbmthblwgOwor5b+F5rK7ID4gaGl0Y2hpXCA7CivnpoHku6QgPiBraW5yZWlcIDsKK+atr+iMjiA+IGhhZ3VraVwgOwor5oCn5oOFID4gc2Vpam91XCA7Civmgqrlg6cgPiBha3Vzb3VcIDsKK+W+k+eKryA+IGp1dWhhblwgOwor56We5YyWID4gc2hpbmthXCA7Civol6nkuLsgPiBoYW5zaHVcIDsKK+WNoOazlSA+IHNlbnBvdVwgOwor55+l6IKyID4gY2hpaWt1XCA7CivnpL7lm6MgPiBzaGFkYW5cIDsKK+WKueiDvSA+IGtvdW5vdVwgOwor5YiG6ZqbID4gYnVuemFpXCA7CivpgYHotbAgPiB0b25zb3VcIDsKK+iQteiLoyA+IGNoaXNoYVwgOwor5ZCJ5aCxID4ga2lwcG91XCA7CivliIbpmoogPiBidW50YWlcIDsKK+WPjeW9sSA+IGhhbicnZWlcIDsKK+aAoOaFoiA+IHRhaW1hblwgOwor56C055uuID4gd2FyZW1lXCA7CivpgKDphZIgPiB6b3VzaHVcIDsKK+WJteijvSA+IHNvdXNlaVwgOwor5YiG6ZmiID4gYnVuJydpblwgOwor56We5YqpID4gc2hpbmpvXCA7CivliIbpmZAgPiBidW5nZW5cIDsKK+WNl+a1tyA+IG5hbmthaVwgOwor5ZCM5Z6LID4gZG91a2VpXCA7CivmgJ3mha4gPiBzaGlyeW9cIDsKK+axuuaIpiA+IGtlc3NlblwgOwor6YCj6YKmID4gcmVucG91XCA7Civlh7HpoqggPiBnYWlmdXVcIDsKK+aAqOW/tSA+IG9uJyduZW5cIDsKK+WMlueUnyA+IGtlc2hvdVwgOwor6YeR5bGxID4ga2luemFuXCA7Civnn6XogIUgPiBjaGlzaGFcIDsKK+WQpuWQpiA+IGl5YWl5YVwgOwor5Y6z5oiSID4gZ2Vua2FpXCA7Civlh7bpn7MgPiBreW91aW5cIDsKK+W/g+awlyA+IHNoaW5raVwgOwor5oKf5YWlID4gZ29ueXV1XCA7CivlkIzlnLAgPiBkb3VjaGlcIDsKK+ehneeFmSA+IHNob3VlblwgOwor6YWN5rC0ID4gaGFpc3VpXCA7CivpgLjotrMgPiBpc3Nva3VcIDsKK+aAneaDsyA+IHNoaXNvdVwgOwor56Cl55+zID4gdG9pc2hpXCA7CivliIfplosgPiBzZWtrYWlcIDsKK+W5tOmRkSA+IG5lbmthblwgOwor5b+F5q27ID4gaGlzc2hpXCA7Civlj6TlrrYgPiBmdXJ1aWVcIDsKK+W9k+ekviA+IHRvdXNoYVwgOwor6JC96IOkID4gcmFrdWluXCA7CivolqzlkbMgPiB5YWt1bWlcIDsKK+awtOanvSA+IHN1aXNvdVwgOwor6YOO562JID4gcm91ZG91XCA7Civph43lsaQgPiBqdXVzb3VcIDsKK+WJjeizoiA+IHplbmtlblwgOwor55y86Y+hID4gbWVnYW5lXCA7CivnnJ/pnaIgPiBtYXRvbW9cIDsKK+aCquS+iyA+IGFrdXJlaVwgOwor5Y+j5a6jID4ga291c2VuXCA7Civnn6Lnvr0gPiB5YWJhbmVcIDsKK+ecn+mdkiA+IG1hc3Nhb1wgOwor5Y2K5ribID4gaGFuZ2VuXCA7CivmsJfmtYEgPiBraXJ5dXVcIDsKK+mAsui3ryA+IHNoaW5yb1wgOwor5Y+k5a2mID4ga29nYWt1XCA7Civlj7flpJYgPiBnb3VnYWlcIDsKK+iSvOeEtiA+IHNvdXplblwgOwor5qyg6KybID4ga2Vra291XCA7CivolanlsL0gPiB0b3VqaW5cIDsKK+WPjeW4nSA+IGhhbnRlaVwgOwor5q276ICFID4gc2hpc2hhXCA7Civlv6vmmbQgPiBrYWlzZWlcIDsKK+mBlOimsyA+IHRha2thblwgOwor5Ye66ZqbID4gZGVnaXdhXCA7Civlj47lt64gPiBzaHV1c2FcIDsKK+W9ouebuCA+IGtlaXNvdVwgOwor5rG65oSPID4ga2V0c3VpXCA7CivlupXovrogPiB0ZWloZW5cIDsKK+mBk+imsyA+IGRvdWthblwgOwor5ZCb5ZG9ID4ga3VubWVpXCA7CivpgZToposgPiB0YWtrZW5cIDsKK+mHjuWuvyA+IG5vanVrdVwgOwor6YGK6KqsID4geXV1emVpXCA7Civnn63nt6ggPiB0YW5wZW5cIDsKK+WJquijgSA+IHNlbnNhaVwgOwor6JGb57KJID4ga3V6dWtvXCA7Civmgqrku6QgPiBha3VyZWlcIDsKK+mAmumBjiA+IHRzdXVrYVwgOwor5oCd5b+1ID4gc2hpbmVuXCA7CivpgJrpgYsgPiB0c3V1dW5cIDsKK+iWhOWhqSA+IHVzdWppb1wgOwor55yf6ZqbID4gbWFnaXdhXCA7CivlkITlm54gPiBrYWtrYWlcIDsKK+aCquS6uiA+IGFrdW5pblwgOwor5q27572qID4gc2hpemFpXCA7CivpgKPovIkgPiByZW5zYWlcIDsKK+elneWEgCA+IHNodXVnaVwgOwor5rC05qOyID4gc3Vpc2VpXCA7Civmraboh6MgPiBidXNoaW5cIDsKK+WIpemCuCA+IGJldHRlaVwgOwor5b+r5pa5ID4ga2FpaG91XCA7Civms6Llj4ogPiBoYWt5dXVcIDsKK+mAmemAmSA+IGhvdWhvdVwgOwor5Y6f5ougID4gZ2Vua3lvXCA7CivolqjljrsgPiBrb3VreW9cIDsKK+W8qee0miA+IGRva3l1dVwgOwor5q+b546JID4ga2VkYW1hXCA7CivpupfkurogPiByZWlqaW5cIDsKK+mHjOWtkCA+IHNhdG9nb1wgOwor56S+5ZG9ID4gc2hhbWVpXCA7Civlv4PmqZ8gPiBzaGlua2lcIDsKK+atr+iCiSA+IGhhbmlrdVwgOwor6I236Z6NID4gbmlndXJhXCA7Civnn7PnsokgPiBpc2hpa29cIDsKK+aCqeS5sSA+IG5vdXJhblwgOwor5rCR5rOVID4gbWlucG91XCA7CivphbjmlZcgPiBzYW5wYWlcIDsKK+WOhOaXpSA+IHlha3ViaVwgOwor5ZGI5LiKID4gdGVpam91XCA7CivljZfmrKcgPiBuYW4nJ291XCA7Civph5HlqZogPiBraW5rb25cIDsKK+mBiuimpyA+IHl1dXJhblwgOwor5riF44CFID4gc2Vpc2VpXCA7Civlu7voiLkgPiBrYWlzZW5cIDsKK+WMjeeQgyA+IGhva3l1dVwgOwor6YGu6JS9ID4gc2hhaGVpXCA7CivnpL7lkI0gPiBzaGFtZWlcIDsKK+iWrOWKuSA+IHlha2tvdVwgOwor6JGs56WtID4gc291c2FpXCA7CivmgJ3lvIEgPiBzaGliZW5cIDsKK+WIpemAgSA+IGJlc3NvdVwgOwor56S+5Y+yID4gc2hhc2hpXCA7Civnpa3kuLsgPiBzYWlzaHVcIDsKK+a0i+S4iiA+IHlvdWpvdVwgOwor5rC05qCTID4gc3Vpc2VuXCA7Civoj6/ooaggPiBrYWh5b3VcIDsKK+WQjeWTgSA+IG1laWhpblwgOwor6JGs56S8ID4gc291cmVpXCA7CivpgJPpgIEgPiB0ZWlzb3VcIDsKK+ekvuWPiyA+IHNoYXl1dVwgOwor6YOh55yMID4gZ3Vua2VuXCA7Civph43lqZogPiBqdXVrb25cIDsKK+W8m+e3qSA+IGNoaWthblwgOwor5b+X5pybID4gc2hpYm91XCA7CivpgIHph5EgPiBzb3VraW5cIDsKK+WOmuaJiyA+IGF0c3VkZVwgOwor5bmV6ZaTID4gbWFrdWFpXCA7CivlubTph5EgPiBuZW5raW5cIDsKK+WPjeWwhCA+IGhhbnNoYVwgOwor5Y+N5a++ID4gaGFudGFpXCA7CivmsLfmnJ8gPiBoeW91a2lcIDsKK+aCn+S6hiA+IGdvcnlvdVwgOwor5b+/5oejID4gZnVubWFuXCA7Civms5Xlj7cgPiBob3Vnb3VcIDsKK+WKo+iAhSA+IHJlc3NoYVwgOwor5q2757eaID4gc2hpc2VuXCA7Civlj4zlsIQgPiBzb3VzaGFcIDsKK+WQjeWQnyA+IG1laWdpblwgOwor5Y+M5a++ID4gc291dGFpXCA7CivlkI3lkJsgPiBtZWlrdW5cIDsKK+ebrumrmCA+IG1lZGFrYVwgOwor6L+U6Zu7ID4gaGVuZGVuXCA7Civlub3pgoMgPiB5dXVzdWlcIDsKK+mIjeWIgCA+IGRvbnRvdVwgOwor56C0542EID4gaGFnb2t1XCA7Civlj6PlpJYgPiBrb3VnYWlcIDsKK+ayueWcpyA+IHl1YXRzdVwgOwor5YeM6aeVID4gcnlvdWdhXCA7CivlkIzlkI0gPiBkb3VtZWlcIDsKK+efreevhyA+IHRhbnBlblwgOwor5Y2v5pyIID4gdWR6dWtpXCA7CivmsLTmnKggPiBtaXp1a2lcIDsKK+WNiuatuyA+IGhhbnNoaVwgOwor56CC56SrID4gc2FyZWtpXCA7CivmrKHooaggPiBqaWh5b3VcIDsKK+aAkuW8tSA+IGRvY2hvdVwgOwor5ZCE5ZOhID4ga2FrdWluXCA7CivlubTphY0gPiBuZW5wYWlcIDsKK+WJjeiogCA+IHplbmdlblwgOwor56Gs5rC0ID4ga291c3VpXCA7CivnpZ7ku6MgPiBqaW5kYWlcIDsKK+mBiuihjCA+IHl1dWtvdVwgOwor5Y+k5aKoID4ga29ib2t1XCA7Civlj7DlnLAgPiBkYWljaGlcIDsKK+WIhumKhSA+IGZ1bmRvdVwgOwor6YC46KmxID4gaXRzdXdhXCA7CivojYnprZogPiBzb3VneW9cIDsKK+WNs+aZgiA+IHNva3VqaVwgOwor5rC05pucID4gc3VpeW91XCA7Civph43lpY8gPiBqdXVzb3VcIDsKK+W8geiAhSA+IGJlbnNoYVwgOwor6YCa6LevID4gdHN1dXJvXCA7Civok67moLkgPiByZW5rb25cIDsKK+W6reiokyA+IHRlaWtpblwgOwor5Y+M5a2QID4gZnV0YWdvXCA7CivlkIjlkIwgPiBnb3Vkb3VcIDsKK+mHjeWkpyA+IGp1dWRhaVwgOwor6L+R6ZqjID4ga2lucmluXCA7CivnpZ7kuosgPiBzaGluamlcIDsKK+WHjemkkiA+IHRvdWRhaVwgOwor6YeN5aSJID4ganV1aGVuXCA7Civmr5LniZkgPiBkb2t1Z2FcIDsKK+W/jOacjSA+IGtpZnVrdVwgOwor5b6S5riJID4gdG9zaG91XCA7Civlip/nvaogPiBrb3V6YWlcIDsKK+mAgemChCA+IHNvdWthblwgOwor6I2S6aasID4gYXJhdW1hXCA7Civph5HloYogPiBraW5rYWlcIDsKK+W/q+aMmSA+IGthaWt5b1wgOwor5YiG6YeOID4gYnVuJyd5YVwgOwor5b2T55WqID4gdG91YmFuXCA7CivmsLTmmJ8gPiBzdWlzZWlcIDsKK+WOmuaDhSA+IGtvdWpvdVwgOwor6YWS5p2vID4gc2h1aGFpXCA7CivmsLTmmI4gPiBzdWltZWlcIDsKK+WQjOWLoiA+IGRvdXplaVwgOwor6YeR5aCCID4ga29uZG91XCA7Civlj67lmoAgPiB0ZWluZWlcIDsKK+mBguihjCA+IHN1aWtvdVwgOwor5rCX5qW9ID4ga2lyYWt1XCA7CivokrzmtbcgPiBzb3VrYWlcIDsKK+awkeaoqSA+IG1pbmtlblwgOwor5YiD6YedID4gaGFiYXJpXCA7CivlvZPnlKggPiB0b3V5b3VcIDsKK+W5h+mWkyA+IGhvdWthblwgOwor5Yqx57K+ID4gcmVpc2VpXCA7Civlj4Llrq4gPiBzYW5ndXVcIDsKK+WQjOWKtCA+IGRvdXJvdVwgOwor6YeR5Z+OID4ga2luam91XCA7CivliKXotqMgPiBiZXNzaHVcIDsKK+WJjeijhSA+IHplbnNvdVwgOwor56S+5YaFID4gc2hhbmFpXCA7CivliIbphY0gPiBidW5wYWlcIDsKK+azleWItiA+IGhvdXNlaVwgOwor6YG66ISxID4gaWRhdHN1XCA7Civnnr3ogIUgPiBrb3NoYVwgOwor5ZCN5YmNID4gbmFtYWVcIDsKK+WPpOWdgCA+IGtvc2hpXCA7CivluLDpoIYgPiBraWp1blwgOwor5bqn6KaWID4gemFzaGlcIDsKK+W/q+aJkyA+IGthaWRhXCA7CivpgIHovp4gPiBzb3VqaVwgOwor5ZCN5YipID4gbWVpcmlcIDsKK+eciemWkyA+IG1pa2VuXCA7Civno4HmgKcgPiBqaXNlaVwgOwor6Jas5L6hID4geWFra2FcIDsKK+egsueFmSA+IGhvdWVuXCA7CivnpLzlhIAgPiByZWlnaVwgOwor5rOV5YW3ID4gaG91Z3VcIDsKK+WQj+WFmiA+IHJpdG91XCA7Civnm67poZQgPiBtZWdhb1wgOwor56KR5paHID4gaGlidW5cIDsKK+mAo+iqniA+IHJlbmdvXCA7Civph43lm7IgPiBjaG91aVwgOwor5rKu5ZaqID4gc29zb3VcIDsKK+mBuue/kiA+IGlzaHV1XCA7CivpgbjogIUgPiBzZW5qYVwgOwor5q2M6IGWID4ga2FzZWlcIDsKK+mAoOiqniA+IHpvdWdvXCA7CivnoLLngasgPiBob3VrYVwgOwor6JK45rCXID4gam91a2lcIDsKK+aAquWlhyA+IGthaWtpXCA7CivpgKPoqJggPiByZW5raVwgOwor6YeN5ZmoID4ganV1a2lcIDsKK+WKoOezliA+IGthdG91XCA7CivmganlhbggPiBvbnRlblwgOwor5b6S5q27ID4gdG9zaGlcIDsKK+W6j+irliA+IGpvcm9uXCA7Civmr4XnhLYgPiBraXplblwgOwor5Yi26KaHID4gc2VpaGFcIDsKK+atjue+jiA+IHRhbmJpXCA7CivpgIDot68gPiB0YWlyb1wgOwor5b+c5omLID4gb3VzaHVcIDsKK+mAn+iomCA+IHNva2tpXCA7Civms6LkubEgPiBoYXJhblwgOwor5b+c5oimID4gb3VzZW5cIDsKK+mAo+imhyA+IHJlbnBhXCA7CivmgKjlo7AgPiBlbnNlaVwgOwor5rK55Y2YID4geXV0YW5cIDsKK+W6j+ipniA+IGpvc2hpXCA7CivljLvmpa0gPiBpZ3lvdVwgOwor5bqP6KiAID4gam9nZW5cIDsKK+W/mOaIkSA+IGJvdWdhXCA7Civojbfph40gPiBrYWp1dVwgOwor5Yy65qScID4ga3VrZW5cIDsKK+WNl+aWlyA+IG5hbnRvXCA7Civmsr3liLggPiBrb2tlblwgOwor5Y2K5pyfID4gaGFua2lcIDsKK+WQjOS+oSA+IGRvdWthXCA7Civli5XnlLsgPiBkb3VnYVwgOwor5rKz5Y2XID4ga2FuYW5cIDsKK+iWhOWIgyA+IHVzdWJhXCA7CivliqDnrpcgPiBrYXNhblwgOwor5bm06LOmID4gbmVucHVcIDsKK+WPo+WRsyA+IGtvdW1pXCA7Civov7fot68gPiBtZWlyb1wgOwor5rK55YmkID4geXV6YWlcIDsKK+W5tOizgCA+IG5lbmdhXCA7Civlj6/li5UgPiBrYWRvdVwgOwor5bm06LKiID4gbmVuZ3VcIDsKK+W+oeagqiA+IG9rYWJ1XCA7CivljqjlrZAgPiB6dXNoaVwgOwor5Yil6KiYID4gYmVra2lcIDsKK+WPpOWPsiA+IGtvc2hpXCA7CivlkI/kurogPiByaWppblwgOwor5ZCE5YCLID4ga2Fra29cIDsKK+mCquefpSA+IGphY2hpXCA7Civlj6Tlj4IgPiBrb3NhblwgOwor5rOV5LqLID4gaG91amlcIDsKK+iVg+WktyA+IGJhbicnaVwgOwor6YeN5ZGzID4gb21vbWlcIDsKK+aouem9oiA+IGp1cmVpXCA7CivljYPmnKggPiBjaGlnaVwgOwor5q2v56eRID4gc2hpa2FcIDsKK+aBteS4jiA+IGtlaXlvXCA7CivphbjluqYgPiBzYW5kb1wgOwor5Yqx56OBID4gcmVpamlcIDsKK+WJo+iIniA+IGtlbmJ1XCA7Civms5XkuLsgPiBob3NzdVwgOwor5q+N5rivID4gYm9rb3VcIDsKK+mHjuWQiCA+IHlhZ291XCA7CivlkIzkuosgPiBkb3VqaVwgOwor5Y+v5YiGID4ga2FidW5cIDsKK+mHjuWPsiA+IHlhc2hpXCA7Civliqnnpa0gPiBqb3NhaVwgOwor5Y2K5peXID4gaGFua2lcIDsKK+WQhOS9jSA+IGtha3VpXCA7CivlvqHmnK0gPiBvZnVkYVwgOwor6YGO6IisID4ga2FoYW5cIDsKK+WIhuizpiA+IGJ1bnB1XCA7CivnqK7jgIUgPiBzaHVqdVwgOwor5b+Y5oGpID4gYm91b25cIDsKK+W+heapnyA+IHRhaWtpXCA7CivmgankurogPiBvbmppblwgOwor5bm06K2cID4gbmVucHVcIDsKK+W/jOaGmiA+IGtpdGFuXCA7CivpgYvoiKogPiB1bmtvdVwgOwor5rKz5YaFID4gaGFub2lcIDsKK+aBqOS6iyA+IGtvbmppXCA7CivmgKflmaggPiBzZWlraVwgOwor5oCS5aOwID4gZG9zZWlcIDsKK+apn+mmliA+IGtpc2h1XCA7CivliJfoqJggPiByZWtraVwgOwor5Y+k5Yi2ID4ga29zZWlcIDsKK+WPjeWTuiA+IGhhbnBvXCA7CivljYHml6UgPiB0b29rYVwgOwor5b6h5pi8ID4gb2hpcnVcIDsKK+mDveawkSA+IHRvbWluXCA7CivnnIvpgY4gPiBrYW5rYVwgOwor5Y+k5YiAID4ga290b3VcIDsKK+W8peeUnyA+IHlheW9pXCA7CivpgIHoqbEgPiBzb3V3YVwgOwor5bmz6KqeID4gaGVpZ29cIDsKK+avkuawlyA+IGRva2tlXCA7Civnn5vnm74gPiBtdWp1blwgOwor56C05rC0ID4gaGFzdWlcIDsKK+mHkeWIqSA+IGtpbnJpXCA7Civms4nkuIsgPiBzZW5rYVwgOwor6L+U6L6eID4gaGVuamlcIDsKK+m1nuavmyA+IGdhbW91XCA7Civlj5nli7IgPiBqb2t1blwgOwor5rKW5ZCIID4gb2tpYWlcIDsKK+m1neavmyA+IGdhbW91XCA7Civlj6TlhbggPiBrb3RlblwgOwor6a+o6aOyID4gZ2VpaW5cIDsKK+mHjeWIqSA+IGp1dXJpXCA7CivljbDlvbEgPiBpbicnZWlcIDsKK+WNmOaJkyA+IHRhbmRhXCA7CivlvqHmlbAgPiBva2F6dVwgOwor5Y+X5YuVID4ganVkb3VcIDsKK+mBk+e+qSA+IGRvdWdpXCA7CivlvozmnrYgPiBrb3VrYVwgOwor6YGg57iBID4gdG9vZW5cIDsKK+WIhuiqsiA+IGJ1bmthXCA7CivpgqbnlLsgPiBob3VnYVwgOwor6YeO5YWaID4geWF0b3VcIDsKK+edgOihoyA+IHlha3VpXCA7Civlj5fliJEgPiBqdWtlaVwgOwor5q+O5qyhID4gbWFpamlcIDsKK+W+jOacnyA+IGtvdWtpXCA7CivolanlhZAgPiB0b3VqaVwgOwor5rK55LqVID4geXVzZWlcIDsKK+W7uueikSA+IGtlbnBpXCA7CivlhqXpl4cgPiBtZWlhblwgOwor5biD6ZmjID4gZnVqaW5cIDsKK+iNkumHjiA+IGtvdXlhXCA7CivmsrvkuIsgPiBjaGlrYVwgOwor6L666YSZID4gaGVucGlcIDsKK+mFkuW+kiA+IHNodXRvXCA7CivmqZ/pm7cgPiBraXJhaVwgOwor5q2M56i/ID4ga2Frb3VcIDsKK+W8p+eKtiA+IGtvam91XCA7Civpgbfnp7sgPiBzZW4nJ2lcIDsKK+mBuOenkSA+IHNlbmthXCA7CivluLDpgoQgPiBraWthblwgOwor5q2v55ebID4gaGFpdGFcIDsKK+awkeaIuCA+IG1pbmtvXCA7CivliqDnm58gPiBrYW1laVwgOwor6I+K6IqxID4ga2lra2FcIDsKK+WPpOS+iyA+IGtvcmVpXCA7Civlj7DkuIsgPiBkYWlrYVwgOwor5Yi76IumID4ga29ra3VcIDsKK+avjeaoqSA+IGJva2VuXCA7Civlj6TkvZMgPiBrb3RhaVwgOwor5b6A5p2lID4gb3VyYWlcIDsKK+WPl+WDjyA+IGp1em91XCA7Civlj6XkvJogPiBrdWthaVwgOwor5Y+k5LydID4ga29kZW5cIDsKK+W/nOWvviA+IG91dGFpXCA7CivljbHls7AgPiBraWhvdVwgOwor5q665rCXID4gc2Fra2lcIDsKK+WKqeeUoyA+IGpvc2FuXCA7CivluLjou4wgPiBqb3VraVwgOwor5biw6L6yID4ga2lub3VcIDsKK+WPpOS7oyA+IGtvZGFpXCA7Civlj6Tku4ogPiBrb2tvblwgOwor5Y+k5Lq6ID4ga29qaW5cIDsKK+mBlee0hCA+IGl5YWt1XCA7Civljp/lm7MgPiBnZW56dVwgOwor5Y2B5omLID4gaml0dGVcIDsKK+apn+mWoiA+IGtpa2FuXCA7CivmsJHmhI8gPiBtaW4nJ2lcIDsKK+WPguWKoCA+IHNhbmthXCA7Civlhrbph5EgPiB5YWtpblwgOwor55+z54GrID4gc2Vra2FcIDsKK+WFtemmrCA+IGhlaWJhXCA7CivlvqHmiYAgPiBnb3Nob1wgOwor6YeO5Lq6ID4geWFqaW5cIDsKK+W8geeWjyA+IGJlbnNvXCA7Civljp/lmaggPiBnZW5raVwgOwor6YCg6IqxID4gem91a2FcIDsKK+W4nemDvSA+IHRlaXRvXCA7Civoi7HprYIgPiBlaWtvblwgOwor6YeM5Lq6ID4gcmlqaW5cIDsKK+WOreWRsyA+IGl5YW1pXCA7CivljbHlrrMgPiBraWdhaVwgOwor5bqX6IiXID4gdGVucG9cIDsKK+mFjeW4gyA+IGhhaWZ1XCA7CivmrrXmrakgPiB0YW5idVwgOwor5Y2Y5bqnID4gdGFuemFcIDsKK+WPmeS7uyA+IGpvbmluXCA7CivmrKfnsbMgPiBvdWJlaVwgOwor5byn54GvID4ga290b3VcIDsKK+aAkuWPtyA+IGRvZ291XCA7CivmsLjlrZggPiBlaXpvblwgOwor5bel6Z2iID4ga3VtZW5cIDsKK+WGhemcgCA+IG5haWp1XCA7Civlj5fku7sgPiBqdW5pblwgOwor5q+N5qChID4gYm9rb3VcIDsKK+W+jOaPtCA+IGtvdWVuXCA7CivnnIzorbAgPiBrZW5naVwgOwor5Yuk5rGCID4gZ29uZ3VcIDsKK+eci+ittyA+IGthbmdvXCA7CivlhobpmaMgPiBlbmppblwgOwor6YW45Z+6ID4gc2Fua2lcIDsKK+eiuuWbuiA+IGtha2tvXCA7CivluLDotqggPiBraXN1dVwgOwor5biw6LajID4ga2lzaHVcIDsKK+W9k+apnyA+IHRvdWtpXCA7CivlvIHnkIYgPiBiZW5yaVwgOwor5q+N5p2QID4gYm96YWlcIDsKK+W+kuaJiyA+IHRvc2h1XCA7Civnm5vpgYsgPiBzZWl1blwgOwor5q2v54mZID4gc2hpZ2FcIDsKK+awkeW6piA+IG1pbmRvXCA7CivpgYvnrpcgPiB1bnphblwgOwor5b+c5aSJID4gb3VoZW5cIDsKK+mFkuWutiA+IHNodWthXCA7CivlvKXmvKsgPiBiaW1hblwgOwor6YWS5a60ID4gc2h1ZW5cIDsKK+mun+mxhyA+IGFua291XCA7CivovZ/pn7MgPiBnb3VvblwgOwor5b6h5b+1ID4gZ29uZW5cIDsKK+W+l+aEjyA+IHRva3VpXCA7CivmqZ/pi5IgPiBraWhvdVwgOwor5YW46ZuFID4gdGVuZ2FcIDsKK+WPjOS6kiA+IHNvdWdvXCA7Civli5jmsJcgPiBrYW5raVwgOwor5q+O5pmCID4gbWFpamlcIDsKK+i+numAgCA+IGppdGFpXCA7Civljp/lj6UgPiBnZW5rdVwgOwor6YG655WZID4gaXJ5dXVcIDsKK+apn+mKgyA+IGtpanV1XCA7Civpg73mlL8gPiB0b3NlaVwgOwor5YuV5rCXID4gZG91a2lcIDsKK+W/nOWgsSA+IG91aG91XCA7Civlubzoir0gPiB5b3VnYVwgOwor56Gs5bqmID4ga291ZG9cIDsKK+W+qeW4sCA+IGZ1a2tpXCA7CivmrLrnnp4gPiBnaW1hblwgOwor6YGg55+iID4gdG9veWFcIDsKK+mBjueoiyA+IGthdGVpXCA7CivmsLTlpKsgPiBzdWlmdVwgOwor5q+N5paRID4gYm9oYW5cIDsKK+aAnOS/kCA+IHJlaXJpXCA7CivluILpg6ggPiBzaGlidVwgOwor5Yqr54GrID4gZ291a2FcIDsKK+WGpemAlCA+IG1laWRvXCA7Civlj4LkuosgPiBzYW5qaVwgOwor5b6h5bmjID4gZ29oZWlcIDsKK+W8vuapnyA+IGRhbmtpXCA7CivpgaDnnLwgPiBlbmdhblwgOwor56C05pGnID4gaGFzYWlcIDsKK+i/keihmyA+IGtvbm9lXCA7Civnn63ms6IgPiB0YW5wYVwgOwor6YGg55uuID4gdG9vbWVcIDsKK+mGh+WMliA+IGp1bmthXCA7CivliKTogIUgPiBoYW5qYVwgOwor56C05pCNID4gaGFzb25cIDsKK+mBk+egtCA+IGRvdWhhXCA7Civoi7HpnIogPiBlaXJlaVwgOwor5YuH5rCXID4geXV1a2lcIDsKK+W9k+acnyA+IHRvdWtpXCA7Civli5XmqZ8gPiBkb3VraVwgOwor5rCX5a2UID4ga2lrb3VcIDsKK+WKoOeCuSA+IGthdGVuXCA7CivphbjlkbMgPiBzYW5taVwgOwor5Yag6L6eID4ga2FuamlcIDsKK+iLsembhCA+IGVpeXV1XCA7Civlv6vlkbMgPiBrYWltaVwgOwor5Y2x5ZywID4ga2ljaGlcIDsKK+W5s+iHpSA+IGhlaWdhXCA7CivljprliKkgPiBrb3VyaVwgOwor5b6S5byfID4gdG90ZWlcIDsKK+efreawlyA+IHRhbmtpXCA7CivmsJHlrrYgPiBtaW5rYVwgOwor5YyW5oiQID4ga2FzZWlcIDsKK+W3rumHkSA+IHNha2luXCA7CivmqKrpmoogPiBvdXRhaVwgOwor6YOo5pWwID4gYnVzdXVcIDsKK+W6g+e+qSA+IGtvdWdpXCA7Civli4fmraYgPiB5dXVidVwgOwor5YWI6aeGID4gc2Vua3VcIDsKK+mCquazlSA+IGphaG91XCA7CivljYrlraMgPiBoYW5raVwgOwor5b+M5Z6jID4gaWdha2lcIDsKK+W9k+aZgiA+IHRvdWppXCA7CivliY3np5EgPiB6ZW5rYVwgOwor5rCP5a2QID4gdWppa29cIDsKK+W3rumFjSA+IHNhaGFpXCA7Civnn63mrYwgPiB0YW5rYVwgOwor55uj6K23ID4ga2FuZ29cIDsKK+WGhemHjiA+IG5haXlhXCA7Civnm7joo5wgPiBzb3Vob1wgOwor5bym5q2MID4gZ2Vua2FcIDsKK+WNg+WutiA+IHNlbmtlXCA7Civoi6bpm6MgPiBrdW5hblwgOwor5byY5rOVID4gZ3Vob3VcIDsKK+WOreS6uiA+IGVuamluXCA7CivphbjljJYgPiBzYW5rYVwgOwor5qmf6LuiID4ga2l0ZW5cIDsKK+egtOaIkiA+IGhha2FpXCA7Civmr4DmkI0gPiBraXNvblwgOwor5Y2B5a2XID4ganV1amlcIDsKK+W3rumBoyA+IHNha2VuXCA7CivlvqHlrrQgPiBneW9lblwgOwor5YuY5p+7ID4ga2Fuc2FcIDsKK+efruaouSA+IHdhaWp1XCA7Civnmb3pm6ggPiBoYWt1dVwgOwor5Y6t5LiWID4gZW5zZWlcIDsKK+W+oeWuhSA+IG90YWt1XCA7CivlhoXpg6ggPiBuYWlidVwgOwor5Y6f5L6hID4gZ2Vua2FcIDsKK+WGt+iqniA+IHJlaWdvXCA7CivluqfnpoUgPiB6YXplblwgOwor6I236JGJID4ga2F5b3VcIDsKK+iLpumXmCA+IGt1dG91XCA7Civovp7orbIgPiBqaWpvdVwgOwor5Yy75a2mID4gaWdha3VcIDsKK+WKoOa4myA+IGthZ2VuXCA7CivluqfnpLwgPiB6YXJlaVwgOwor6YWS5ZmoID4gc2h1a2lcIDsKK+W3pumBtyA+IHNhc2VuXCA7CivnmbvpmaIgPiB0b3VpblwgOwor6I+v55SyID4ga2Frb3VcIDsKK+WFiOmdniA+IHNlbnBpXCA7CivpgYvnl7QgPiB1bmNoaVwgOwor5biC6LK7ID4gc2hpaGlcIDsKK+W+gOW5tCA+IG91bmVuXCA7CivlupznqI4gPiBmdXplaVwgOwor56CU5pGpID4ga2VubWFcIDsKK+W3oemCjyA+IGp1bnJhXCA7CivliaPnkr0gPiBrZW5qaVwgOwor5YWN6ZmkID4gbWVuam9cIDsKK+iKsemtgSA+IG9pcmFuXCA7Civlu7bmu54gPiBlbnRhaVwgOwor5bem6L66ID4gc2FoZW5cIDsKK+W+ruWhtSA+IG1pamluXCA7Civpg6jmiYAgPiBidXNob1wgOwor5Yy55ammID4gaGlwcHVcIDsKK+WFiemZsCA+IGtvdWluXCA7CivmrKHnlLcgPiBqaW5hblwgOwor5Yqg5rOVID4ga2Fob3VcIDsKK+W+jOWwviA+IGtvdWJpXCA7Civlhobou6IgPiBlbnRlblwgOwor6YGT55CGID4gZG91cmlcIDsKK+ats+asoSA+IHNhaWppXCA7CivlhpfosrsgPiBqb3VoaVwgOwor5Yil566HID4gYmVra29cIDsKK+iMtuipsSA+IGNoYXdhXCA7Civmr43mgKcgPiBib3NlaVwgOwor6YGF55aRID4gY2hpZ2lcIDsKK+awl+WcjyA+IGtpa2VuXCA7Civlt6jouq8gPiBreW9rdVwgOwor5biC6K2wID4gc2hpZ2lcIDsKK+awl+WboyA+IGtpZGFuXCA7Civlv5zliIYgPiBvdWJ1blwgOwor5b6h5aSnID4gb250YWlcIDsKK+WKoOawtCA+IGthc3VpXCA7CivljJblt6UgPiBrYWtvdVwgOwor5q+b5biDID4gbW91ZnVcIDsKK+WGjei1tyA+IHNhaWtpXCA7CivmsLjliqsgPiBlaWdvdVwgOwor5rCX5ZqiID4ga2lub3VcIDsKK+awtOWMliA+IHN1aWthXCA7CivpgJTnq68gPiB0b3RhblwgOwor6YO95bqmID4gdHN1ZG9cIDsKK+avjeW9oiA+IGJva2VpXCA7CivmraPmsJcgPiBzZWlraVwgOwor5Yy55aSrID4gaGlwcHVcIDsKK+W5s+e0oCA+IGhlaXNvXCA7CivoirHpppkgPiBrYWtvdVwgOwor5Yu/5oCqID4gbW9ra2VcIDsKK+WGmeitnCA+IHNoYWZ1XCA7CivnorrkuY4gPiBrYWtrb1wgOwor55+t5pyfID4gdGFua2lcIDsKK+ato+avlCA+IHNlaWhpXCA7CivlvbzlsrggPiBoaWdhblwgOwor5Y2w5YikID4gaW5wYW5cIDsKK+mDveW4giA+IHRvc2hpXCA7Civmr47luqYgPiBtYWlkb1wgOwor5YWo6YO9ID4gemVudG9cIDsKK+WNsOWIgCA+IGludG91XCA7Civlhajpg6ggPiB6ZW5idVwgOwor5rC05YipID4gc3VpcmlcIDsKK+mAo+egtCA+IHJlbnBhXCA7CivlvanluqYgPiBzYWlkb1wgOwor5b2i5b2xID4ga2VpZWlcIDsKK+WIpeenkSA+IGJla2thXCA7CivpgaDngasgPiB0b29iaVwgOwor6JGJ5pyrID4gaGF6dWVcIDsKK+WKueaenCA+IGtvdWthXCA7Civlv6vkuosgPiBrYWlqaVwgOwor5bqc55yMID4gZnVrZW5cIDsKK+WGl+iqniA+IGpvdWdvXCA7CivljLrln58gPiBrdWlraVwgOwor5Yu+5byVID4ga291aW5cIDsKK+W3qOiyuyA+IGt5b2hpXCA7CivlvqHlnYogPiBnb2JvdVwgOwor55+i5p2lID4geWFyYWlcIDsKK+WMluWwjiA+IGtlZG91XCA7Civoi7HpgoEgPiBlaW1haVwgOwor5b6M5aa7ID4gZ29zYWlcIDsKK+avlOWztiA+IGhpdG91XCA7CivljZjlj6UgPiB0YW5rdVwgOwor5rCX5ZOBID4ga2loaW5cIDsKK+WGjeitsCA+IHNhaWdpXCA7Civlt6XosrsgPiBrb3VoaVwgOwor5Yud5omLID4ga2F0dGVcIDsKK+atu+acnyA+IHNoaWtpXCA7CivnnLznqqkgPiBnYW5rYVwgOwor5biD6KKLID4gaG90ZWlcIDsKK+iJtum6lyA+IGVucmVpXCA7CivlhKrpm4UgPiB5dXVnYVwgOwor5q+b5a2UID4ga2VhbmFcIDsKK+egtOWxiyA+IGhhb2t1XCA7Civli6Tmg7AgPiBraW5kYVwgOwor5YaF6K2wID4gbmFpZ2lcIDsKK+i9l+i7uyA+IGthbmthXCA7CivmrZTmrLcgPiBreW9raVwgOwor6Ly46YqAID4geXVnaW5cIDsKK+WFqOi6ryA+IHplbmt1XCA7CivlubPnqY8gPiBoZWlvblwgOwor5Y2z5L2NID4gc29rdWlcIDsKK+W4sOiJpiA+IGtpa2FuXCA7Civluo/nm6QgPiBqb2JhblwgOwor6L+R57+SID4ga2luanVcIDsKK+aooemAoCA+IG1vem91XCA7Civmr43lsYsgPiBvbW95YVwgOwor6a2R6a2FID4gY2hpbWlcIDsKK+awuOS9jyA+IGVpanV1XCA7CivnnLznp5EgPiBnYW5rYVwgOwor55uu6Iy2ID4gbWVjaGFcIDsKK+WFrOi3ryA+IGtvdXJvXCA7CivliIfnrKYgPiBraXBwdVwgOwor5biw6IiqID4ga2lrb3VcIDsKK+aoqui7oiA+IG91dGVuXCA7CivlubTnp58gPiBuZW5zb1wgOwor6LuN6byTID4gZ3Vua29cIDsKK+WNiuWPryA+IGhhbmthXCA7CivljYrlj6UgPiBoYW5rdVwgOwor6YG45q2MID4gc2Vua2FcIDsKK+WNmOWIqSA+IHRhbnJpXCA7CivlvrPljJYgPiB0b2trYVwgOwor5Yip55uKID4gcmlla2lcIDsKK+asoeeCuSA+IGppdGVuXCA7CivlvZPluqcgPiB0b3V6YVwgOwor5b6T5ZugID4ganV1aW5cIDsKK+awuOS7oyA+IGVpdGFpXCA7CivmsJfli6IgPiBraXNlaVwgOwor5q2v5py2ID4gc2hpZGFcIDsKK+ats+aariA+IHNlaWJvXCA7Civmr43lrrYgPiBvbW95YVwgOwor5b285aW0ID4gYWl0c3VcIDsKK+awl+WKnyA+IGtpa291XCA7Civlvqnlj6QgPiBmdWtrb1wgOwor55uu6ImyID4gbWVpcm9cIDsKK+WHhOiJtiA+IHNlaWVuXCA7Civmr43lrZAgPiBib3NoaVwgOwor6YGg5rW3ID4gZW5rYWlcIDsKK+awl+WJjSA+IGtpbWFlXCA7CivljYPlj6QgPiBzZW5rb1wgOwor5Ya36I+TID4gcmVpa2FcIDsKK+W8leaVsCA+IGluc3V1XCA7CivljKrlm6MgPiBoaWRhblwgOwor6YWN5YKZID4gaGFpYmlcIDsKK+W+ruWLlSA+IGJpZG91XCA7CivmsLjkuJYgPiBlaXNlaVwgOwor5q615beuID4gZGFuc2FcIDsKK+W9ueWkqyA+IGVraWZ1XCA7CivmsJfliIYgPiBraWJ1blwgOwor6YWS5L+dID4gc2h1aG9cIDsKK+WFrOiyuyA+IGtvdWhpXCA7CivlvLfmhI8gPiBreW91aVwgOwor5YaF6KaPID4gbmFpa2lcIDsKK+mBoOazsyA+IGVuJydlaVwgOwor6I2J6IqxID4gc291a2FcIDsKK+WIhuenkSA+IGJ1bmthXCA7CivphZTkvZkgPiBzdWl5b1wgOwor5YuV5oK4ID4gZG91a2lcIDsKK+iSsuWboyA+IGZ1dG9uXCA7CivlvqHlj7AgPiBtaWRhaVwgOwor6LuN6baPID4gc2hhbW9cIDsKK+mAo+eQhiA+IHJlbnJpXCA7CivpgqrmjqggPiBqYXN1aVwgOwor5rCR5YipID4gbWlucmlcIDsKK+mBuualrSA+IGlneW91XCA7CivpgYvmvJUgPiB1bnNvdVwgOwor56Gs5YyWID4ga291a2FcIDsKK+mAo+ePoCA+IHJlbmp1XCA7CivliKnnlKggPiByaXlvdVwgOwor5b6u5YiGID4gYmlidW5cIDsKK+efreaJkyA+IHRhbmRhXCA7CivljYjliY0gPiBnb3plblwgOwor6Iux6LOHID4gZWlzaGlcIDsKK+WGheijjyA+IGRhaXJpXCA7CivovLjpgIEgPiB5dXNvdVwgOwor5YWI6YCUID4gc2VuZG9cIDsKK+WFteiqniA+IGhlaWdvXCA7CivliqnmlLsgPiBqb2tvdVwgOwor5q6/5a6HID4gZGVuJyd1XCA7Civoip/pmaQgPiBzYW5qb1wgOwor5YiH56OLID4gc2Vzc2FcIDsKK+awkeWFtyA+IG1pbmd1XCA7CivlhazorbAgPiBrb3VnaVwgOwor6bWE5bC+ID4gc2hpYmlcIDsKK+WMu+WNmiA+IGloYWt1XCA7CivojLboj5MgPiBjaGFrYVwgOwor5b6u5YWJID4gYmlrb3VcIDsKK+WNmOS+oSA+IHRhbmthXCA7CivphY3ku5ggPiBoYWlmdVwgOwor5q2p5pWwID4gaG9zdXVcIDsKK+egtOWjiiA+IGhha2FpXCA7Civmr47lpJwgPiBtYWl5b1wgOwor5q2m5patID4gYnVkYW5cIDsKK+WNmOS9jSA+IHRhbicnaVwgOwor5YWJ6LydID4ga291a2lcIDsKK+awl+WAmSA+IGtpa291XCA7Civlhbzoo5wgPiBrZW5wb1wgOwor5Yqg5pWwID4ga2FzdXVcIDsKK+W+oeWJjSA+IGdvemVuXCA7CivlhazoqrIgPiBrb3VrYVwgOwor5b2T5a62ID4gdG91a2VcIDsKK+W8t+W8lSA+IGdvdWluXCA7CivlvpLlkI0gPiBhZGFuYVwgOwor5b6h5Ye4ID4gb2Rla29cIDsKK+W9k+WtlyA+IGF0ZWppXCA7CivphY3kuIsgPiBoYWlrYVwgOwor5YWs6Ki0ID4ga291c29cIDsKK+W5s+eZkiA+IGhlaXl1XCA7CivnmbrotbcgPiBob2traVwgOwor6YG45p6cID4gc2Vua2FcIDsKK+awl+S9kyA+IGtpdGFpXCA7CivpgqrmhbMgPiBqYWtlblwgOwor5Yy65YiGID4ga3VidW5cIDsKK+iPr+awjyA+IGthc2hpXCA7Civpgb/mmpEgPiBoaXNob1wgOwor6YGK5rOzID4geXV1ZWlcIDsKK+WMuuWHpiA+IGt1c2hvXCA7Civmr43loIIgPiBib2RvdVwgOwor5b6h5YWNID4gZ29tZW5cIDsKK+W+oeWFiCA+IG9zYWtpXCA7Civlhqzoh7MgPiB0b3VqaVwgOwor6Iy26IiXID4gY2hhaG9cIDsKK+iLseipqSA+IGVpc2hpXCA7Civli4flvoAgPiB5dXVvdVwgOwor5byT5omLID4geXVuZGVcIDsKK+WNiuS+oSA+IGhhbmthXCA7CivljZfkuIsgPiBuYW5rYVwgOwor5Yy65YaFID4ga3VuYWlcIDsKK+iJsummmSA+IGlyb2thXCA7CivlvpLlirQgPiB0b3JvdVwgOwor5q+N5Z6LID4gYm9rZWlcIDsKK+mBk+atjCA+IGRvdWthXCA7CivlhZrorbAgPiB0b3VnaVwgOwor6YKq5oKqID4gamFha3VcIDsKK+W5tOeUqyA+IG5lbnBvXCA7Civpg6jlpJYgPiBidWdhaVwgOwor5q2M5pu4ID4ga2FzaG9cIDsKK+WJm+awlyA+IGdvdWtpXCA7CivlvKflvaIgPiBrb2tlaVwgOwor5Yui5a62ID4gc2Vpa2FcIDsKK+WKg+acnyA+IGtha2tpXCA7CivnoILlsqkgPiBzYWdhblwgOwor6YKq5oGLID4gamFyZW5cIDsKK+W4sOe0jSA+IGtpbm91XCA7CivlvJTmhbAgPiBjaG91aVwgOwor5rCX5LiIID4ga2lqb3VcIDsKK+WJm+avhSA+IGdvdWtpXCA7CivlvqnkvY0gPiBmdWt1aVwgOwor5b6S5YiRID4gdG9rZWlcIDsKK+ebrue3miA+IG1lc2VuXCA7CivokIzmnKggPiBtb2VnaVwgOwor5Ya35721ID4gcmVpYmFcIDsKK+awkeS6iyA+IG1pbmppXCA7Civnn6nlvaIgPiBrdWtlaVwgOwor6YG65pePID4gaXpva3VcIDsKK+avm+WUkCA+IGtldG91XCA7Civlhajoo7ggPiB6ZW5yYVwgOwor6YKq5b+1ID4gamFuZW5cIDsKK+WKqeaIkCA+IGpvc2VpXCA7Civou43ppqwgPiBndW5iYVwgOwor5byU5oSPID4gY2hvdWlcIDsKK+WJteahiCA+IHNvdWFuXCA7CivmqKHoqaYgPiBtb3NoaVwgOwor6YGK5q2pID4geXV1aG9cIDsKK+WHueecvCA+IG91Z2FuXCA7CivlvZPlpJwgPiB0b3V5YVwgOwor6LuK6aasID4gc2hhYmFcIDsKK+WKoOaLhSA+IGthdGFuXCA7CivptKjlsYUgPiBrYW1vaVwgOwor5b6h5L6bID4gb3RvbW9cIDsKK+W+kuWFmiA+IHRvdG91XCA7Civlhobok4sgPiBlbmdhaVwgOwor5Y2D5LujID4gY2hpeW9cIDsKK+WFhOiytCA+IGFuaWtpXCA7Civoi6boqIAgPiBrdWdlblwgOwor5b6h5Ly9ID4gb3RvZ2lcIDsKK+WMluWQiCA+IGthZ291XCA7CivliKnngrkgPiByaXRlblwgOwor6ay86Z2iID4ga2ltZW5cIDsKK+i8v+irliA+IHlvcm9uXCA7CivlhZropo8gPiB0b3VraVwgOwor5Y2B5LqUID4ganV1Z29cIDsKK+atu+W+jCA+IHNoaWdvXCA7CivljYHkuowgPiBqdXVuaVwgOwor5qiq6KGMID4gb3Vrb3VcIDsKK+WMu+S8ryA+IGloYWt1XCA7CivlvqHku4EgPiBnb2ppblwgOwor5b6M5YWJID4gZ29rb3VcIDsKK+WNg+S4liA+IGNoaXlvXCA7CivlhYjorbAgPiBzZW5naVwgOwor5Yy65LyaID4ga3VrYWlcIDsKK+mBoOadpSA+IGVucmFpXCA7CivptJ/lsL4gPiBzaGliaVwgOwor55m76KiYID4gdG91a2lcIDsKK+WJjeatryA+IG1hZWJhXCA7CivpgaDmnJsgPiBlbmJvdVwgOwor5Ye655WqID4gZGViYW5cIDsKK+efpeW3sSA+IGNoaWtpXCA7CivlirHlvKcgPiByZWlrb1wgOwor5b6M5YKZID4ga291YmlcIDsKK+eci+egtCA+IGthbnBhXCA7CivlvqHkuIogPiBva2FtaVwgOwor5YWN6Ki0ID4gbWVuc29cIDsKK+W9ueWLmSA+IGVraW11XCA7CivmqZ/og70gPiBraW5vdVwgOwor6JKZ5Y+kID4gbW91a29cIDsKK+WGoOiAhSA+IGthbmphXCA7Civlu4Pmo4QgPiBoYWlraVwgOwor5Yip5r2kID4gcmlqdW5cIDsKK+WDp+mZoiA+IHNvdWluXCA7Civou43pnbQgPiBndW5rYVwgOwor5Yak572qID4gZW56YWlcIDsKK+mBoOaZryA+IGVua2VpXCA7CivlhoXoi5EgPiBuYWllblwgOwor5buD5qGIID4gaGFpYW5cIDsKK+avjeWQjiA+IGJva291XCA7Civou43pnIAgPiBndW5qdVwgOwor5biD572uID4gZnVjaGlcIDsKK+msvOmWgCA+IGtpbW9uXCA7CivlhJLpgZMgPiBqdWRvdVwgOwor6YGg5pa5ID4gZW5wb3VcIDsKK+W+k+S6iyA+IGp1dWppXCA7CivlgrXprLwgPiBzYWlraVwgOwor5bem6Ii3ID4gc2FnZW5cIDsKK+WFgeiosSA+IGlua3lvXCA7CivluLDnpL4gPiBraXNoYVwgOwor5Yqj5bynID4gcmVra29cIDsKK+mDqOWTgSA+IGJ1aGluXCA7CivnoILlobUgPiBzYWppblwgOwor5Ymb5p6cID4gZ291a2FcIDsKK+WInea8lCA+IHNob2VuXCA7Civmranlu4ogPiBob3JvdVwgOwor5q2M5omLID4ga2FzaHVcIDsKK+W+jOS6iyA+IGtvdWppXCA7Civli4flqaYgPiB5dXVmdVwgOwor5q2q5bqmID4gd2FpZG9cIDsKK+W5s+eCiSA+IGhlaXJvXCA7CivovrLnp5EgPiBub3VrYVwgOwor5qyh5p2hID4gamlqb3VcIDsKK+atpuW8gSA+IGJ1YmVuXCA7Civou4zplpMgPiBraWthblwgOwor6YO95YaFID4gdG9uYWlcIDsKK+W8n+WtkCA+IGRlc2hpXCA7Civlt6bohLMgPiBzYW5vdVwgOwor5bu25oCnID4gZW5zZWlcIDsKK+mCpuWutiA+IGhvdWthXCA7CivliqDlubQgPiBrYW5lblwgOwor6L+R55W/ID4ga2lua2lcIDsKK+W8geW6pyA+IGJlbnphXCA7CivliKXmtL4gPiBiZXBwYVwgOwor5q2j5bqnID4gc2VpemFcIDsKK+W8leWwjiA+IGluZG91XCA7CivpgKPmrYwgPiByZW5nYVwgOwor6a2U6YGTID4gbWFkb3VcIDsKK+W9seWDjyA+IGVpem91XCA7Civlt6vogIUgPiBmdXNoYVwgOwor6YKm5a2XID4gaG91amlcIDsKK+WHueeJiCA+IG91YmFuXCA7CivlhoXogLMgPiBuYWlqaVwgOwor5Yqg5belID4ga2Frb3VcIDsKK+WLh+WkqyA+IHl1dWZ1XCA7CivmrKfmlocgPiBvdWJ1blwgOwor5b2T5ZCmID4gdG91aGlcIDsKK+WIqeawtCA+IHJpc3VpXCA7CivpgKDmrKEgPiB6b3VqaVwgOwor5YWt6IqxID4gcmlra2FcIDsKK+WHpueQhiA+IHNob3JpXCA7Civlu7blvJUgPiBlbicnaW5cIDsKK+edv+aZuiA+IGVpY2hpXCA7Civlhavoi6YgPiBoYWtrdVwgOwor5q+U5YCrID4gaGlyaW5cIDsKK+W4sOecgSA+IGtpc2VpXCA7CivpgY7mlY8gPiBrYWJpblwgOwor5bqP5q2vID4gam9zaGlcIDsKK+W7tuW7tiA+IGVuJydlblwgOwor5YuV5ZugID4gZG91aW5cIDsKK+W8iuWxpSA+IGhlaXJpXCA7CivpgbrlvrMgPiBpdG9rdVwgOwor56C05YCrID4gaGFyaW5cIDsKK+WMl+S6rCA+IHBla2luXCA7CivnoILlmLQgPiBzYXNoaVwgOwor5YmN5pyfID4gemVua2lcIDsKK+asoeaVsCA+IGppc3V1XCA7CivpgKDmqZ8gPiB6b3VraVwgOwor5q+U5L6LID4gaGlyZWlcIDsKK+mDqOWIhiA+IGJ1YnVuXCA7CivlubPmuKkgPiBoZWlvblwgOwor5YaN57iBID4gc2FpZW5cIDsKK+ebruecqSA+IG1lbWFpXCA7CivmqLnohIIgPiBqdXNoaVwgOwor5q6L5Z+6ID4gemFua2lcIDsKK+mAuOabuCA+IGlzc2hvXCA7Civpg73kvJogPiB0b2thaVwgOwor5qy95oWVID4ga2luYm9cIDsKK+mDqOWGhSA+IGJ1bmFpXCA7Civlha3ohZEgPiByb3BwdVwgOwor6YCT5qyhID4gdGVpamlcIDsKK+mDveS6uiA+IHRvamluXCA7CivpgYvmkKwgPiB1bnBhblwgOwor5YmN5pelID4gbWFlYmlcIDsKK+avjeS9kyA+IGJvdGFpXCA7CivliKnmqKkgPiByaWtlblwgOwor5YaF57iBID4gbmFpZW5cIDsKK+mBt+W6pyA+IHNlbnphXCA7CivliqDlrrMgPiBrYWdhaVwgOwor6YGg5oWuID4gZW5yeW9cIDsKK+WLp+WMliA+IGthbmdlXCA7Civli4flm7MgPiB5dXV0b1wgOwor6I+p5o+QID4gYm9kYWlcIDsKK+WDp+mDvSA+IHNvdXp1XCA7CivmrablrpggPiBidWthblwgOwor5Yid5q2pID4gc2hvaG9cIDsKK+efs+WZqCA+IHNla2tpXCA7CivpgIDmsrsgPiB0YWlqaVwgOwor5YuV5ZOhID4gZG91aW5cIDsKK+iPsuaJjSA+IGhpc2FpXCA7Civli6Tli5kgPiBraW5tdVwgOwor5byl5ZubID4geWFzaGlcIDsKK+ato+WtlyA+IHNlaWppXCA7Civlt6jntLAgPiBrb3NhaVwgOwor6YGL5oyHID4gdW5zaGlcIDsKK+mzpeWxhSA+IHRvcmlpXCA7CivlubPmsJcgPiBoZWlraVwgOwor6YCj5p62ID4gcmVua2FcIDsKK+WIhua0viA+IGJ1bnBhXCA7Civou43pg6ggPiBndW5idVwgOwor5YWs576pID4ga291Z2lcIDsKK+WHuua5ryA+IGlkZXl1XCA7CivmqZ/nqK4gPiBraXNodVwgOwor5bqm5pWwID4gZG9zdXVcIDsKK+mBiuaKgCA+IHl1dWdpXCA7CivpgIDmrakgPiB0YWlob1wgOwor55qH6IOkID4ga291aW5cIDsKK+mCpuWcnyA+IGhvdWRvXCA7Civpgb/lr5IgPiBoaWthblwgOwor6YOo5LyaID4gYnVrYWlcIDsKK+WIqeaguSA+IHJpa29uXCA7CivltI7pmb0gPiBraXlvdVwgOwor5bm05qyhID4gbmVuamlcIDsKK+mBiuaIryA+IHl1dWdpXCA7CivpgaDlvoEgPiBlbnNlaVwgOwor5beu562JID4gc2F0b3VcIDsKK+i7jOmBkyA+IGtpZG91XCA7CivpgbrlsL8gPiBpbnlvdVwgOwor5q275ZugID4gc2hpaW5cIDsKK+WLsuS9jSA+IGt1bicnaVwgOwor6JGs5YW3ID4gc291Z3VcIDsKK+WGhuetkiA+IGVudG91XCA7CivliIbmr40gPiBidW5ib1wgOwor6Iy255uuID4gY2hhbWVcIDsKK+W6l+aYryA+IHRlbnplXCA7Civli5/lhbUgPiBib2hlaVwgOwor5q6/5LiLID4gZGVua2FcIDsKK+asneaGpCA+IHVwcHVuXCA7CivokazlhIAgPiBzb3VnaVwgOwor6YGV5b+DID4gaXNoaW5cIDsKK+W8seWMliA+IGpha2thXCA7CivliqDlopcgPiBrYXpvdVwgOwor6YGK5oOwID4geXV1ZGFcIDsKK+WLn+WCtSA+IGJvc2FpXCA7Civnn63lj6UgPiB0YW5rdVwgOwor5b2T5LqLID4gdG91amlcIDsKK+mBjuaAoCA+IGthdGFpXCA7Civlh7rmsYEgPiBkYXNoaVwgOwor55+z5YyWID4gc2Vra2FcIDsKK+ebo+eQhiA+IGthbnJpXCA7CivliY3miK8gPiB6ZW5naVwgOwor5bir54i2ID4gc2hpZnVcIDsKK+ato+WhqSA+IHNlaWVuXCA7CivmqZ/nn6UgPiBraWNoaVwgOwor5bq45oSaID4geW91Z3VcIDsKK+W8leWWqSA+IGluJyd5dVwgOwor5bid546LID4gdGVpb3VcIDsKK+mBv+WmiiA+IGhpbmluXCA7CivlhoXnp5EgPiBuYWlrYVwgOwor6YCu5o2VID4gdGFpaG9cIDsKK+W6j+aWhyA+IGpvYnVuXCA7CivpgY7lvZMgPiBrYXRvdVwgOwor6LuN6LevID4gZ3Vucm9cIDsKK+W6j+aVsCA+IGpvc3V1XCA7Civmrovli5kgPiB6YW5tdVwgOwor5Yid5pyfID4gc2hva2lcIDsKK+mBoOWztiA+IGVudG91XCA7Civlt6Xnp5EgPiBrb3VrYVwgOwor6Lqr6YeNID4gbWlvbW9cIDsKK+W6p+aJgCA+IHphc2hvXCA7CivlhoXnpLogPiBuYWlqaVwgOwor5q2j5Z2QID4gc2VpemFcIDsKK+i8quiIniA+IHJpbmJ1XCA7CivpgJTmlrkgPiB0b2hvdVwgOwor5YSA6KOFID4gZ2lzb3VcIDsKK+W5veaalyA+IHl1dWFuXCA7Civoi7HnsbMgPiBlaWJlaVwgOwor6LuN6LK7ID4gZ3VucGlcIDsKK+mtlOihlyA+IG1hZ2FpXCA7Civou6LoqJsgPiB0ZW5rYVwgOwor6Lui6KiYID4gdGVua2lcIDsKK+WHseatjCA+IGdhaWthXCA7CivmrKHlubQgPiBqaW5lblwgOwor6YG65aKoID4gaWJva3VcIDsKK+eah+e0gCA+IGtvdWtpXCA7CivpgYXlu7YgPiBjaGllblwgOwor5bm85pmCID4geW91amlcIDsKK+ebhueUuyA+IGJvbmdhXCA7CivliJHmnJ8gPiBrZWlraVwgOwor5bm05pyfID4gbmVua2lcIDsKK+WLleS9nCA+IGRvdXNhXCA7Civlh7rmp5ggPiBkZXlvdVwgOwor6Iq46IuRID4gZ2VpZW5cIDsKK+W8p+WFiSA+IGtva291XCA7CivmrYzlo4cgPiBrYWRhblwgOwor5YW156eRID4gaGVpa2FcIDsKK+WKqeWRvSA+IGpvbWVpXCA7Civpq5jpm4UgPiBrb3VnYVwgOwor5bi45ripID4gam91b25cIDsKK+WFmue0gCA+IHRvdWtpXCA7CivliY3lvowgPiB6ZW5nb1wgOwor5YW156aNID4gaGVpa2FcIDsKK+apn+eUsiA+IGtpa291XCA7CivmrabllY8gPiBidW1vblwgOwor5Yq05YuZID4gcm91bXVcIDsKK+W3ruebiiA+IHNhZWtpXCA7CivpgKPmiZMgPiByZW5kYVwgOwor5YSq6Im2ID4geXV1ZW5cIDsKK+W6tuW5viA+IHNob2tpXCA7CivoirHojI4gPiBrYWtlaVwgOwor56CC5LiKID4gc2Fqb3VcIDsKK+i7jeitsCA+IGd1bmdpXCA7Civou6Loo5wgPiB0ZW5wb1wgOwor5bmz5pmCID4gaGVpamlcIDsKK+WGhuebpCA+IGVuYmFuXCA7Civlgb3pm7sgPiBnaWRlblwgOwor55qu55u4ID4gaGlzb3VcIDsKK+W4sOa4ryA+IGtpa291XCA7Civov5TmrYwgPiBoZW5rYVwgOwor5YmN5bqnID4gemVuemFcIDsKK+WFrOennyA+IGtvdXNvXCA7Civnl6nouq8gPiBzb3VrdVwgOwor5YiG5pyoID4gYnVuZ2lcIDsKK+ato+WToSA+IHNlaWluXCA7CivlhoXnmq4gPiBuYWloaVwgOwor6YGT5a62ID4gZG91a2FcIDsKK+aooeevhCA+IG1vaGFuXCA7Civoir3og54gPiBnYWhvdVwgOwor5YiA5p62ID4gdG91a2FcIDsKK+i8ieiNtyA+IHNhaWthXCA7Civnmq7nmawgPiBoaXplblwgOwor6YGK5bGxID4geXVzYW5cIDsKK+atpuWQjSA+IGJ1bWVpXCA7Civlhajnp5EgPiB6ZW5rYVwgOwor5Yqg5Y+3ID4ga2Fnb3VcIDsKK+iKmeiTiSA+IGZ1eW91XCA7Civlu4PlrrYgPiBoYWlrYVwgOwor5YWs56S6ID4ga291amlcIDsKK+atu+WFkCA+IHNoaWppXCA7CivmraPlkKYgPiBzZWloaVwgOwor5bqV5oSPID4gc29rb2lcIDsKK+iHqummliA+IGppc2h1XCA7Civou43oqJggPiBndW5raVwgOwor6I2S5rerID4ga291aW5cIDsKK+WKo+WMliA+IHJla2thXCA7CivpgaDlpKcgPiBlbmRhaVwgOwor5Yil5oi4ID4gYmVra29cIDsKK+atk+WWnCA+IGthbmtpXCA7CivlhbfnnLwgPiBndWdhblwgOwor5qyh5a6YID4gamlrYW5cIDsKK+ecqeaaiCA+IG1lbWFpXCA7Civou43opo8gPiBndW5raVwgOwor5qyh5a2QID4gamlzaGlcIDsKK+atpuWLsiA+IGJ1a3VuXCA7Civlu7blkb0gPiBlbm1laVwgOwor5Yqg5YuiID4ga2FzZWlcIDsKK+WFg+e0oCA+IGdlbnNvXCA7Civmrabli4cgPiBidXl1dVwgOwor5q2m5YqfID4gYnVrb3VcIDsKK+W7t+WQjyA+IHRlaXJpXCA7CivlhobnkrAgPiBlbmthblwgOwor5bKp6a2aID4gaXdhbmFcIDsKK+WIneaJiyA+IHNob3RlXCA7CivnmofnpZYgPiBrb3Vzb1wgOwor5YSq576OID4geXV1YmlcIDsKK+WEkuiJryA+IGp1Z29uXCA7CivlhJLoia4gPiBqdWdvblwgOwor5YWQ56ulID4gamlkb3VcIDsKK+atk+WRvCA+IGthbmtvXCA7CivliqDliKQgPiBrYWhhblwgOwor5Yqf5YipID4ga291cmlcIDsKK+mzs+WHsCA+IGhvdW91XCA7Civnn6XkuosgPiBjaGlqaVwgOwor6YGT5aSuID4gZG91b3VcIDsKK+i7jeihoyA+IGd1bicnaVwgOwor5Yi25bqmID4gc2VpZG9cIDsKK+atqeWFtSA+IGhvaGVpXCA7Civoi7Hnn6UgPiBlaWNoaVwgOwor5YGc6Z+zID4gdGVpb25cIDsKK+W8leS+iyA+IGlucmVpXCA7Civnl7ToqbEgPiBjaGl3YVwgOwor5Yqg5YagID4ga2FrYW5cIDsKK+mAo+W6pyA+IHJlbnphXCA7CivoiaToo4UgPiBnaXNvdVwgOwor6YGg5ZywID4gZW5jaGlcIDsKK+iPr+WjhyA+IGthZGFuXCA7Civnmbvnp5EgPiB0b3VrYVwgOwor55m956aNID4gaGFra2FcIDsKK+mBjuWkpyA+IGthZGFpXCA7Civoi5vnqI4gPiBrYXplaVwgOwor6YGg5ZugID4gZW4nJ2luXCA7CivpgYrlpbMgPiB5dXVqb1wgOwor6Lyd57eaID4ga2lzZW5cIDsKK+WFpeebuCA+IGlyaWFpXCA7CivlhY3np58gPiBtZW5zb1wgOwor6IqL6IyOID4genVpa2lcIDsKK+iPk+WtkCA+IGthc2hpXCA7CivlubLmiIggPiBrYW5rYVwgOwor55aO6ZaLID4gc29rYWlcIDsKK+WJjeWppiA+IHplbnB1XCA7CivlgY/poJcgPiBoZW5wYVwgOwor6YG35YyWID4gc2VuZ2VcIDsKK+iQveS4iyA+IHJha2thXCA7Civlhbfnj74gPiBndWdlblwgOwor5Yqg5L+4ID4ga2Fob3VcIDsKK+WGt+awlyA+IHJlaWtpXCA7CivlhJLogIUgPiBqdXNoYVwgOwor6IiX6YGTID4gaG9kb3VcIDsKK+WFiOelliA+IHNlbnpvXCA7CivoiKrot68gPiBrb3Vyb1wgOwor55m656C0ID4gaGFwcGFcIDsKK+eVs+mfuyA+IGpvdWluXCA7Civnm7jmo5IgPiBhaWJvdVwgOwor5bm95b6uID4geXV1YmlcIDsKK+iKs+e0gCA+IGhvdWtpXCA7Civlu4PlnJIgPiBoYWllblwgOwor5q2j5L6hID4gc2Vpa2FcIDsKK+i/keaZgiA+IGtpbmppXCA7CivprZrogqUgPiBneW9oaVwgOwor6LqN6LW3ID4geWFra2lcIDsKK+mrmOmBoCA+IGtvdWVuXCA7CivliY3lpKsgPiB6ZW5wdVwgOwor6Iqx57SLID4ga2Ftb25cIDsKK+WFg+elliA+IGdhbnNvXCA7CivlibDlk6EgPiBqb3VpblwgOwor6Iqx57O4ID4ga2FzaGlcIDsKK+ebl+axlyA+IG5lYXNlXCA7CivlhaznkIYgPiBrb3VyaVwgOwor5q2m5Lq6ID4gYnVqaW5cIDsKK+iKseeyiSA+IGthZnVuXCA7CivluLDmoKEgPiBraWtvdVwgOwor6Iie6LmIID4gYnV0b3VcIDsKK+W5vuW6piA+IGlrdWRvXCA7CivmrKHlm54gPiBqaWthaVwgOwor5bm05b+MID4gbmVua2lcIDsKK+iInui4jyA+IGJ1dG91XCA7CivprLHokrwgPiB1c3NvdVwgOwor6Iie6LiKID4gYnV5b3VcIDsKK+WGheeCjiA+IG5haWVuXCA7CivovKrnpo0gPiByaW5rYVwgOwor5YiR5b6SID4ga2VpdG9cIDsKK+W5tOW+jCA+IG5lbmdvXCA7CivpgKPlrZAgPiByZW5qaVwgOwor55u45p2/ID4gYWliYW5cIDsKK+WJjeWgtCA+IHplbmJhXCA7CivnlLDpuqkgPiBkZW5idVwgOwor5Ye55omAID4gb3VzaG9cIDsKK+WBvemAoCA+IGdpem91XCA7CivluLDmnaUgPiBraXJhaVwgOwor6Ium55WMID4ga3VnYWlcIDsKK+WGjea8lCA+IHNhaWVuXCA7CivluLDmnZEgPiBraXNvblwgOwor5bi45pmCID4gam91amlcIDsKK+W7tuS8miA+IGVua2FpXCA7CivmrKPllpwgPiBraW5raVwgOwor6YKE5LuYID4ga2FucHVcIDsKK+mBi+WWtiA+IHVuJydlaVwgOwor6I+c5ZySID4gc2FpZW5cIDsKK+W5tOW6piA+IG5lbmRvXCA7CivpgK7lpJwgPiB0YWl5YVwgOwor6YCA5bqnID4gdGFpemFcIDsKK+WIqeWusyA+IHJpZ2FpXCA7CivoibHoi6YgPiBrYW5rdVwgOwor5qyh5ZaEID4gaml6ZW5cIDsKK+WIqeWtkCA+IHJpc2hpXCA7Civojbfmi4UgPiBrYXRhblwgOwor5Yil5a62ID4gYmVra2VcIDsKK+mBuuS9nCA+IGlzYWt1XCA7CivojYnmoYggPiBzb3VhblwgOwor6I2S5pyoID4gYXJha2lcIDsKK+WyqemWkyA+IGl3YW1hXCA7Civluq3lnJIgPiB0ZWllblwgOwor6a+o5rOiID4gZ2VpaGFcIDsKK+W5tOW3riA+IG5lbnNhXCA7Civpr6jmsrkgPiBnZWl5dVwgOwor6Lm26LW3ID4ga2Vra2lcIDsKK+WGhua6gCA+IGVubWFuXCA7CivoirHnqYIgPiBrYXN1aVwgOwor6L6y5pyfID4gbm91a2lcIDsKK+WIpOWtkCA+IGhhbmtvXCA7Civoj6/ljrMgPiBrZWdvblwgOwor6YGg5Ye6ID4gdG9vZGVcIDsKK+mBi+WRvSA+IHVubWVpXCA7CivlhbXngasgPiBoZWlrYVwgOwor55uj5p+7ID4ga2Fuc2FcIDsKK+iPr+WNlyA+IGthbmFuXCA7CivpgZPljJYgPiBkb3VrZVwgOwor5q2M5LuZID4ga2FzZW5cIDsKK+i7oue+qSA+IHRlbmdpXCA7CivmrKHlj7cgPiBqaWdvdVwgOwor5q2M5Lq6ID4ga2FqaW5cIDsKK+mrmOiytCA+IGtvdWtpXCA7CivpgY7ljYogPiBrYWhhblwgOwor5YiG5biDID4gYnVucHVcIDsKK+ebuOaSsiA+IHN1bW91XCA7CivoibbogZ4gPiBlbmJ1blwgOwor5bqP5aWPID4gam9zb3VcIDsKK+i/keaJgCA+IGtpbmpvXCA7Civlh6HmiZMgPiBib25kYVwgOwor5Ye55b2iID4gb3VrZWlcIDsKK+iIiOi1tyA+IGtvdWtpXCA7CivoiI7osrsgPiBzaGFoaVwgOwor6YGO5YukID4ga2FraW5cIDsKK+mAmuWknCA+IHRzdXlhXCA7CivpgY7lirQgPiBrYXJvdVwgOwor6Ieq6YK4ID4gaml0ZWlcIDsKK+mBi+WLoiA+IHVuc2VpXCA7Civlt6jms6IgPiBreW9oYVwgOwor6YGL5YuVID4gdW5kb3VcIDsKK+i+nuafhCA+IGppaGVpXCA7CivpgY7libAgPiBrYWpvdVwgOwor55Wd6ZaTID4gdW5lbWFcIDsKK+iHqumBuCA+IGppc2VuXCA7Civovp7mnpcgPiBqaXJpblwgOwor55ub5pyfID4gc2Vpa2lcIDsKK+W5s+WutiA+IGhlaWtlXCA7CivpgKPlnZAgPiByZW56YVwgOwor6YC45ZOBID4gaXBwaW5cIDsKK+mBk+WFtyA+IGRvdWd1XCA7CivpgY7liIYgPiBrYWJ1blwgOwor5bmz5a6JID4gaGVpYW5cIDsKK+W5tOWtoyA+IG5lbmtpXCA7CivnmobnhKEgPiBrYWltdVwgOwor5Yeh5oSaID4gYm9uZ3VcIDsKK+apn+aniyA+IGtpa291XCA7CivliIblspAgPiBidW5raVwgOwor5YmN5Y+kID4gemVua29cIDsKK+eUu+mkhSA+IGdhYmVpXCA7CivlhazmvJQgPiBrb3VlblwgOwor6L6e5pu4ID4gamlzaG9cIDsKK+mAoOWckiA+IHpvdWVuXCA7CivlhqzmnJ8gPiB0b3VraVwgOwor6auY6Kq8ID4ga291Z2lcIDsKK+WJsOS9mSA+IGpvdXlvXCA7Civlurbli5kgPiBzaG9tdVwgOwor55S76aKoID4gZ2FmdXVcIDsKK+ebm+aZgiA+IHNlaWppXCA7CivlhIDnr4QgPiBnaWhhblwgOwor6Iqz55yJID4gaG91YmlcIDsKK+WIneWknCA+IHNob3lhXCA7Civlgo3oposgPiBva2FtaVwgOwor5qi55rayID4ganVla2lcIDsKK+WIneWkjyA+IHNob2thXCA7CivluIzmnJsgPiBraWJvdVwgOwor5beo5q2pID4ga3lvaG9cIDsKK+W5vOWlsyA+IHlvdWpvXCA7CivnlLvpoYwgPiBnYWRhaVwgOwor5YiG5a62ID4gYnVua2VcIDsKK+W4jOabuCA+IGtpc2hvXCA7CivluLDmipUgPiBraXRvdVwgOwor5Yak5p6JID4gZW4nJ291XCA7CivmqLnmtbcgPiBqdWthaVwgOwor5bm+5aScID4gaWt1eW9cIDsKK+W5vuWkmiA+IGlrdXRhXCA7CivmrKHlhYQgPiBqaWtlaVwgOwor5qyh5YWDID4gamlnZW5cIDsKK+i/t+WtkCA+IG1haWdvXCA7Civoh6rou6IgPiBqaXRlblwgOwor5qmf5qKwID4ga2lrYWlcIDsKK+W6p+WPsyA+IHpheXV1XCA7CivlubvlpKIgPiBnZW5tdVwgOwor5buJ5L6hID4gcmVua2FcIDsKK+WFiOeItiA+IHNlbnB1XCA7CivpgaHkuIogPiBzb2pvdVwgOwor5qmf5qC5ID4ga2lrb25cIDsKK+WBveiqkyA+IGdpc2VpXCA7CivoiIfoq5YgPiB5b3JvblwgOwor6YCg5Za2ID4gem91ZWlcIDsKK+WGpeaalyA+IG1laWFuXCA7CivoiJfoo4UgPiBob3NvdVwgOwor55Ww6YO3ID4gaWt5b3VcIDsKK+eUu+mdoiA+IGdhbWVuXCA7CivlgI3pn7MgPiBiYWlvblwgOwor5qOL6aKoID4ga2lmdXVcIDsKK+eZuueBqyA+IGhha2thXCA7Civlgb3oqIggPiBnaWtlaVwgOwor55u45oSbID4gc291YWlcIDsKK+WBveiogCA+IGdpZ2VuXCA7CivlhYnnhJQgPiBrb3VlblwgOwor5YG26KqeID4gZ3V1Z29cIDsKK+apn+adkCA+IGtpemFpXCA7CivmrKHkvr8gPiBqaWJpblwgOwor6YCj5ZG8ID4gcmVua29cIDsKK+W3puanmCA+IHNheW91XCA7CivlgbboqaAgPiBndXVlaVwgOwor6a2U56WeID4gbWFqaW5cIDsKK+W7iuS4iyA+IHJvdWthXCA7CivpqZ/pm6ggPiBzaHV1dVwgOwor55uy5oSbID4gbW91YWlcIDsKK+iKseeTtiA+IGthYmluXCA7CivlhYnngo4gPiBrb3VlblwgOwor5YaN5qGIID4gc2FpYW5cIDsKK+WEgOekvCA+IGdpcmVpXCA7Civoh6ros5sgPiBqaXNhblwgOwor6YCj5Y+lID4gcmVua3VcIDsKK+i3r+mgrSA+IHJvdG91XCA7CivmrKHkvJogPiBqaWthaVwgOwor6L+35aSiID4gbWVpbXVcIDsKK+iLseazlSA+IGVpaG91XCA7Civoh6rosqkgPiBqaWhhblwgOwor5qmf5pm6ID4ga2ljaGlcIDsKK+iLpua4iyA+IGt1anV1XCA7Civlgb3oo4UgPiBnaXNvdVwgOwor55u45b+cID4gc291b3VcIDsKK+asoeS7oyA+IGppZGFpXCA7Civou43ntIAgPiBndW5raVwgOwor5bC+6bCtID4gb2JpcmVcIDsKK+W4q+aBqSA+IHNoaW9uXCA7CivlhazmraYgPiBrb3VidVwgOwor6Lui56e7ID4gdGVuJydpXCA7Civot6/pnaIgPiByb21lblwgOwor5bKh6L66ID4gb2thYmVcIDsKK+WBiei5nyA+IGlzZWtpXCA7Civou6Lnp5EgPiB0ZW5rYVwgOwor6IeA6YOoID4gZGVuYnVcIDsKK+WFmua0viA+IHRvdWhhXCA7CivpgYvkuIogPiB1bmpvdVwgOwor5qWt6IumID4gZ291a3VcIDsKK+WxpOmbsiA+IHNvdXVuXCA7Civluqflg48gPiB6YXpvdVwgOwor5bi35bmVID4gaWJha3VcIDsKK+mAoOWMliA+IHpvdWthXCA7CivluLfluLMgPiBpY2hvdVwgOwor6Ieq6K6DID4gamlzYW5cIDsKK+WIqeWPoyA+IHJpa291XCA7CivmqZ/mlY8gPiBraWJpblwgOwor6Ieq6K2mID4gamlrZWlcIDsKK+WBiei3oSA+IGlzZWtpXCA7CivlhaXmra8gPiBpcmViYVwgOwor5bq25LqLID4gc2hvamlcIDsKK+mtlOedoSA+IG1hc3VpXCA7CivmqKrmrbsgPiBvdXNoaVwgOwor6LuM56+EID4ga2loYW5cIDsKK+WGhuacrCA+IGVucG9uXCA7CivlhJLnlJ8gPiBqdXNlaVwgOwor5beh5p+7ID4ganVuc2FcIDsKK+WGjeaYoCA+IHNhaWVpXCA7CivlurXkuLsgPiBhbnNodVwgOwor6Ieq6KqNID4gamluaW5cIDsKK+WCmeiNkiA+IGJpa291XCA7CivluLDluIYgPiBraWhhblwgOwor6Iqx54mHID4ga2FoZW5cIDsKK+msvOelniA+IGtpamluXCA7CivohrPpg6ggPiB6ZW5idVwgOwor6Ly45rayID4geXVla2lcIDsKK+eUmOmcsiA+IGthbnJvXCA7CivmqoDlvpIgPiBkYW50b1wgOwor5Yip5YiDID4gcmlqaW5cIDsKK+WIqeWIgCA+IHJpdG91XCA7CivnlbDosaEgPiBpc2hvdVwgOwor6IyC5p6XID4gbW9yaW5cIDsKK+S/nemkiiA+IGhveW91XCA7CivlhYnms6IgPiBrb3VoYVwgOwor6Led6ZuiID4ga3lvcmlcIDsKK+W3puaWuSA+IHNhaG91XCA7CivluqfkuZcgPiB6YWpvdVwgOwor6I2J5bq1ID4gc291YW5cIDsKK+aoueaelyA+IGp1cmluXCA7CivprZTnlYwgPiBtYWthaVwgOwor5bmz5ZKMID4gaGVpd2FcIDsKK+ecgeWtlyA+IHNlaWppXCA7CivlhbfmnIkgPiBndXl1dVwgOwor6bCl5a+hID4ga2Fua2FcIDsKK+WFrOahiCA+IGtvdWFuXCA7Civoh6roo70gPiBqaXNlaVwgOwor5Yem5aWzID4gc2hvam9cIDsKK+W4neW6pyA+IHRlaXphXCA7CivliJHlkI8gPiBrZWlyaVwgOwor6YCB5Y+XID4gc291anVcIDsKK+W3ruaQjSA+IHNhc29uXCA7CivmqKHmp5ggPiBtb3lvdVwgOwor5qmf5omNID4ga2lzYWlcIDsKK+eVs+iqniA+IGpvdWdvXCA7Civlh6HlpKsgPiBib25wdVwgOwor5a+/6b2iID4ganVyZWlcIDsKK+WFg+awlyA+IGdlbmtpXCA7CivliLvkuIsgPiBrb2trYVwgOwor6YCA5YyWID4gdGFpa2FcIDsKK+WHhuWwiSA+IGp1bicnaVwgOwor5Ya25belID4geWFrb3VcIDsKK+W4q+WutiA+IHNoaWthXCA7CivmqKrmn4QgPiBvdWhlaVwgOwor5YW45pWFID4gdGVua29cIDsKK+iJsuebriA+IGlyb21lXCA7CivliKnkvr8gPiByaWJlblwgOwor5YWs5pqHID4ga291a2FcIDsKK+WCmeiAgyA+IGJpa291XCA7CivliKXlgIsgPiBiZWtrb1wgOwor55S76YGTID4gZ2Fkb3VcIDsKK+i3r+mKgCA+IHJvZ2luXCA7CivlubzlhZAgPiB5b3VqaVwgOwor6L6y5a62ID4gbm91a2FcIDsKK+iNieWxpSA+IHpvdXJpXCA7Civkv53pmbogPiBob2tlblwgOwor5bm05YipID4gbmVucmlcIDsKK+iLseabuCA+IGVpc2hvXCA7Civlha3ml6UgPiBtdWlrYVwgOwor5YiG5Yy6ID4gYnVua3VcIDsKK+WFq+aXpSA+IHlvdWthXCA7CivliIbljJYgPiBidW5rYVwgOwor5YWs5pa5ID4ga3Vib3VcIDsKK+aoquaatCA+IG91Ym91XCA7CivlhqXlupwgPiBtZWlmdVwgOwor5YiR5YW3ID4ga2VpZ3VcIDsKK+W3p+aKgCA+IGtvdWdpXCA7Civoi6bmna8gPiBrdWhhaVwgOwor6Iux5piOID4gZWltZWlcIDsKK+aqgOWutiA+IGRhbmthXCA7CivmqKHmnKwgPiBtb2hvblwgOwor5YWl5pelID4gaXJpaGlcIDsKK+iHquiWpiA+IGppc2VuXCA7CivlsL7plbcgPiBvbmFnYVwgOwor6L6y5ammID4gbm91ZnVcIDsKK+Wwj+msoiA+IGtvYmluXCA7Civmo4vpgZMgPiBraWRvdVwgOwor5Yik5LqLID4gaGFuamlcIDsKK+WIhuWIqSA+IGJ1bnJpXCA7Civoi7Hmlq0gPiBlaWRhblwgOwor5YKF6IKyID4gZnVpa3VcIDsKK+aoquaWrSA+IG91ZGFuXCA7Civoi7HmlocgPiBlaWJ1blwgOwor5Yeh5ZmoID4gYm9ua2lcIDsKK+iLseaVsCA+IGVpc3V1XCA7CivmqKrmlocgPiBvdWJ1blwgOwor5Ya05a+SID4gZ29rYW5cIDsKK+mAlOS4iiA+IHRvam91XCA7CivlsbHou4ogPiBkYXNoaVwgOwor5biD5be+ID4gZnVraW5cIDsKK+ebuOWgtCA+IHNvdWJhXCA7Civnm5vlrrQgPiBzZWllblwgOwor6aiS6Z+zID4gc291b25cIDsKK+eahuaXoiA+IGthaWtpXCA7CivlhZrmmK8gPiB0b3V6ZVwgOwor6L6y5aW0ID4gbm91ZG9cIDsKK+eUqOmAlCA+IHlvdXRvXCA7CivlhYnmoIQgPiBrb3VlaVwgOwor6Iy25bGLID4gY2hheWFcIDsKK+iKs+awlyA+IGhvdWtpXCA7CivovL/mnJsgPiB5b2JvdVwgOwor6L6y5aSrID4gbm91ZnVcIDsKK+iHquiRlyA+IGppY2hvXCA7CivlhZDmm7kgPiBqaXNvdVwgOwor5Ye65YmNID4gZGVtYWVcIDsKK+W5s+S+oSA+IGhlaWthXCA7CivlsI/ppqwgPiBrb3VtYVwgOwor5qmf5benID4ga2lrb3VcIDsKK+WIkeS9mSA+IGtlaXlvXCA7Civojbflj7AgPiBuaWRhaVwgOwor55SY6YWiID4gYW1henVcIDsKK+WGrOWtoyA+IHRvdWtpXCA7Civoi5fmnKggPiBuYWVnaVwgOwor5YW15oiIID4gaGVpa2FcIDsKK+W5ueS6iyA+IGthbmppXCA7Civpp7vppqwgPiBrYW5iYVwgOwor55S76LObID4gZ2FzYW5cIDsKK+eZveaXlyA+IGhha2tpXCA7CivpgIHku5ggPiBzb3VmdVwgOwor5YaF5b+cID4gbmFpb3VcIDsKK+WHjeWcnyA+IHRvdWRvXCA7CivluK/lnLAgPiBvYmlqaVwgOwor5YaN5bqmID4gc2FpZG9cIDsKK+i+uuWcnyA+IGhlbmRvXCA7CivlsL7pjKAgPiBiaWpvdVwgOwor5YiR5LqLID4ga2VpamlcIDsKK+WGhuW8viA+IGVuZGFuXCA7Civnm67lnqIgPiBtZWFrYVwgOwor55y85LiLID4gZ2Fua2FcIDsKK+WGjeW4sCA+IHNhaWtpXCA7CivlhrflpI8gPiByZWlrYVwgOwor6L+R5Y+kID4ga2lua29cIDsKK+W3seW3syA+IGtpc2hpXCA7Civou73mta4gPiBrZWlmdVwgOwor6I2S5ZyfID4ga291ZG9cIDsKK+iLm+aWgiA+IGthcmVuXCA7Civou6LngokgPiB0ZW5yb1wgOwor5YWo5oi4ID4gemVua29cIDsKK+iLm+aUvyA+IGthc2VpXCA7CivnlLvorpogPiBnYXNhblwgOwor55S76K6DID4gZ2FzYW5cIDsKK+i+suWckiA+IG5vdWVuXCA7Civlt7vlsL4gPiBrYW5iaVwgOwor55ub5aSPID4gc2Vpa2FcIDsKK+S9s+m6lyA+IGthcmVpXCA7CivoibbnhLYgPiBlbnplblwgOwor6Iux5omNID4gZWlzYWlcIDsKK+iFsOmDqCA+IHlvdWJ1XCA7Civou73msrkgPiBrZWl5dVwgOwor5bmH5YqpID4gaG91am9cIDsKK+WGheW4kSA+IG5haWRvXCA7CivnlLvoq4cgPiBnYWRhblwgOwor5YaZ5a2XID4gc2hhamlcIDsKK+S+m+mkiiA+IGt1eW91XCA7CivlgJLoqp4gPiB0b3Vnb1wgOwor55m65o+uID4gaGFra2lcIDsKK+msvOeBqyA+IG9uaWJpXCA7CivprZrmsrkgPiBneW95dVwgOwor5bid5ZyfID4gdGVpZG9cIDsKK+apn+WrjCA+IGtpZ2VuXCA7CivnlJ/otbcgPiBzZWlraVwgOwor6Iqx5qKoID4ga2FyaW5cIDsKK+WFjOaPmyA+IGRha2FuXCA7CivliIDkuIsgPiB0b3VrYVwgOwor6a2U5rOVID4gbWFob3VcIDsKK+iLpuaIpiA+IGt1c2VuXCA7Civlgrfnl40gPiBzaG91aVwgOwor5YCZ6KOcID4ga291aG9cIDsKK+W4uOWLmSA+IGpvdW11XCA7CivluLDlj4IgPiBraXNhblwgOwor5bem5bK4ID4gc2FnYW5cIDsKK+WGhuWxhSA+IG1hZG9pXCA7Civnmq7lsaQgPiBoaXNvdVwgOwor5qi55bm5ID4ganVrYW5cIDsKK+iLpuaFriA+IGt1cnlvXCA7CivppqzpvaIgPiBiYXJlaVwgOwor5L2Z6b2iID4geW9yZWlcIDsKK+i7veapnyA+IGtlaWtpXCA7Civnl5TnmLsgPiBqaXJvdVwgOwor5beo5a+MID4ga3lvZnVcIDsKK+WGjeWrgSA+IHNhaWthXCA7CivlhoXlrrQgPiBuYWllblwgOwor6Ieq572yID4gamlzaG9cIDsKK+WFrOW6qyA+IGtvdWtvXCA7CivlgpnnoLIgPiBiaWhvdVwgOwor5YWs5bqPID4ga291am9cIDsKK+iLpuaDhSA+IGt1am91XCA7CivojLblnJIgPiBjaGFlblwgOwor6Ium5oK2ID4ga3Vtb25cIDsKK+iLpuaCqSA+IGt1bm91XCA7CivnlbDoh60gPiBpc2h1dVwgOwor55So6KqeID4geW91Z29cIDsKK+W3puWumCA+IHNha2FuXCA7Civmp5DmqLkgPiBrYWlqdVwgOwor5YaX5aSaID4gam91dGFcIDsKK+i7n+a0viA+IG5hbnBhXCA7CivlhqXlnJ8gPiBtZWlkb1wgOwor5YWs5biDID4ga291ZnVcIDsKK+eVsOiFuSA+IGlmdWt1XCA7CivlhYjmiYsgPiBzZW50ZVwgOwor5YWs5beuID4ga291c2FcIDsKK+iMtuWZqCA+IGNoYWtpXCA7Civoh5PohZEgPiB6b3VmdVwgOwor6L+R5L6NID4ga2luamlcIDsKK+mssea7niA+IHV0dGFpXCA7CivmoYLppqwgPiBrZWltYVwgOwor6L+R5Ly8ID4ga2luamlcIDsKK+i/lOS7mCA+IGhlbnB1XCA7Civpq5jnpZYgPiBrb3Vzb1wgOwor5qKF6YWiID4gdW1lenVcIDsKK+i+suWLmSA+IG5vdW11XCA7CivluLjlgpkgPiBqb3ViaVwgOwor6Ium5b25ID4ga3Vla2lcIDsKK+W4g+WboyA+IGZ1dG9uXCA7Civov5TkuosgPiBoZW5qaVwgOwor6IiM56aNID4gemVra2FcIDsKK+WFteWutiA+IGhlaWthXCA7Civov5HkuosgPiBraW5qaVwgOwor5bWQ5rCXID4gcmFua2lcIDsKK+muruW6piA+IHNlbmRvXCA7Civoi5vmgKcgPiBrYXNlaVwgOwor5qK16KqeID4gYm9uZ29cIDsKK+mosOiytCA+IHRvdWtpXCA7CivlsaXooYwgPiByaWtvdVwgOwor55yM5LiLID4ga2Vua2FcIDsKK+WGheWlpSA+IG5haW91XCA7CivohZXovKogPiB1ZGV3YVwgOwor6LW36Zu7ID4ga2lkZW5cIDsKK+W4q+WEkiA+IHNoaWp1XCA7CivlrrbptKggPiBhaGlydVwgOwor5a+d6aGUID4gbmVnYW9cIDsKK+i+suWFtyA+IG5vdWd1XCA7CivluILllrYgPiBzaGllaVwgOwor5YaG5aKzID4gZW5wdW5cIDsKK+iJsuawlyA+IGlyb2tlXCA7Civlt6XlpKsgPiBrb3VmdVwgOwor6L6e5Y67ID4gamlreW9cIDsKK+i7ouapnyA+IHRlbmtpXCA7CivprLzmra8gPiBvbmliYVwgOwor5bCB6Y6WID4gZnV1c2FcIDsKK+iLseWxryA+IGVpdG9uXCA7CivlhazlrokgPiBrb3VhblwgOwor5bCW6YOoID4gc2VuYnVcIDsKK+i+reWFuCA+IGppdGVuXCA7CivluLjkuosgPiBqb3VqaVwgOwor5YWo5a62ID4gemVua2FcIDsKK+ebuOS8vCA+IHNvdWppXCA7CivlgYnnuL4gPiBpc2VraVwgOwor5bel5aC0ID4ga291YmFcIDsKK+eZuuW4gyA+IGhhcHB1XCA7CivluLDku7sgPiBraW5pblwgOwor5YWE5b6MID4gYW5pZ29cIDsKK+ebuOS6kiA+IHNvdWdvXCA7CivlgLbogIUgPiBrdXNoYVwgOwor5L+a6KyhID4gcml5b3VcIDsKK+WFieW6piA+IGtvdWRvXCA7CivpprPpp4YgPiBjaGlrdVwgOwor5L+a6Ku6ID4gcmlnZW5cIDsKK+WFiOW6piA+IHNlbmRvXCA7Civkv47osYYgPiBzb3RvdVwgOwor5YaX5ZOhID4gam91aW5cIDsKK+i7jeatjCA+IGd1bmthXCA7CivnlJ/onYsgPiBraXJvdVwgOwor5YWL5bexID4ga29ra2lcIDsKK+WGheWboCA+IG5haWluXCA7Civot5vooYwgPiBoYWtvdVwgOwor55uy5LqAID4gbW91a2lcIDsKK+W4q+S6iyA+IHNoaWppXCA7Civoi6blr5IgPiBrdWthblwgOwor6L6e5YW4ID4gaml0ZW5cIDsKK+eWq+eXoiA+IGVraXJpXCA7Civnm5vlhIAgPiBzZWlnaVwgOwor5biC5Yy6ID4gc2hpa3VcIDsKK+mmrOmmliA+IGJhc2h1XCA7Civkv5roqIAgPiByaWdlblwgOwor5L2Z6aaZID4geW9rb3VcIDsKK+eZu+WxsSA+IHRvemFuXCA7CivnlrXnkZUgPiBzaGlrYVwgOwor6LuN5qmfID4gZ3Vua2lcIDsKK+iLseWnvyA+IGVpc2hpXCA7Civlhpflj6UgPiBqb3VrdVwgOwor6L6y5LqLID4gbm91amlcIDsKK+aoqeWogSA+IGtlbicnaVwgOwor55uu5LiLID4gbW9ra2FcIDsKK+W2ruWyqCA+IGtlbnNvXCA7Civmpa3ngasgPiBnb3VrYVwgOwor6Ieq56S+ID4gamlzaGFcIDsKK+eWo+eXlCA+IGlib2ppXCA7CivkvZnpoqggPiB5b2Z1dVwgOwor5qmf5YuVID4ga2lkb3VcIDsKK+S9memhniA+IHlvcnVpXCA7CivlhZDlrasgPiBqaXNvblwgOwor55uj5LqLID4ga2FuamlcIDsKK+mmrOmgrSA+IGJhdG91XCA7CivlgLnntKAgPiBrZW5zb1wgOwor55SY6Je7ID4gYW1hbW9cIDsKK+eah+WmgyA+IGtvdWhpXCA7CivlsL7ooYwgPiBiaWtvdVwgOwor55qH5aWzID4ga291am9cIDsKK+WutumiqCA+IGthZnV1XCA7Civlt6Xlk6EgPiBrb3VpblwgOwor5YW15ZmoID4gaGVpa2lcIDsKK+iJtuabuCA+IGVuc2hvXCA7CivlhKrlvKcgPiB5dXVrb1wgOwor5YWs5ZySID4ga291ZW5cIDsKK+i+nuS7uyA+IGppbmluXCA7Civnm5vkuosgPiBzZWlqaVwgOwor6L6e5LukID4gamlyZWlcIDsKK+ajieiKsSA+IG1lbmthXCA7CivmqZ/lhoUgPiBraW5haVwgOwor5YWs5ZuzID4ga291enVcIDsKK+WFteWWtiA+IGhlaWVpXCA7CivnlLDoiI4gPiBpbmFrYVwgOwor5bem5Y+zID4gc2F5dXVcIDsKK+apn+WFiCA+IGtpc2VuXCA7CivlhajlnJ8gPiB6ZW5kb1wgOwor5YWo5ZuzID4gemVuenVcIDsKK+iDr+mWkyA+IGtva2FuXCA7CivnlbDnp7AgPiBpc2hvdVwgOwor55S76IGWID4gZ2FzZWlcIDsKK+WFrOWZqCA+IGtvdWtpXCA7CivkvY7pn7MgPiB0ZWlvblwgOwor6Ieq55yBID4gamlzZWlcIDsKK+W4jOS7oyA+IGtpZGFpXCA7Civovp7kuJYgPiBqaXNlaVwgOwor5YWI5ammID4gc2VucHVcIDsKK+i7jOadoSA+IGtpam91XCA7CivlsI/osYYgPiBhenVraVwgOwor5YW15ZOhID4gaGVpaW5cIDsKK+ahiOmFjSA+IGFuYmFpXCA7Civlrrbpm7sgPiBrYWRlblwgOwor5YaF5YuZID4gbmFpbXVcIDsKK+WwiuiytCA+IHNvbmtpXCA7CivluILkvqEgPiBzaGlrYVwgOwor5beu5YiGID4gc2FidW5cIDsKK+WFrOWWtiA+IGtvdWVpXCA7CivlhoXliqkgPiBuYWlqb1wgOwor55Om6KejID4gZ2FrYWlcIDsKK+WGoOS9jSA+IGthbicnaVwgOwor6Iux5Zm4ID4gZWl0b25cIDsKK+aiheimiyA+IHVtZW1pXCA7Civlt6Xli5kgPiBrb3VtdVwgOwor5qih5Z6LID4gbW9rZWlcIDsKK+W4jOS4liA+IGtpc2VpXCA7CivmoITppIogPiBlaXlvdVwgOwor5L+Y6JmcID4gZnVyeW9cIDsKK+mtlOaJiyA+IG1hc2h1XCA7CivnlJ/oirEgPiBzZWlrYVwgOwor5YG954mIID4gZ2loYW5cIDsKK+S9jumbsiA+IHRlaXVuXCA7CivlhYjlpqMgPiBzZW5waVwgOwor5biD5LukID4gZnVyZWlcIDsKK+W3qOWIqSA+IGt5b3JpXCA7Civnmb3loIogPiBoYWt1YVwgOwor5qOL6IGWID4ga2lzZWlcIDsKK+WFiOWkqyA+IHplbnB1XCA7Civlhbzli5kgPiBrZW5tdVwgOwor5qmf5L2TID4ga2l0YWlcIDsKK+eUmOiLpiA+IGthbmt1XCA7CivpppnpnLIgPiBrb3Vyb1wgOwor6auY54KJID4ga291cm9cIDsKK+eZu+WfjiA+IHRvam91XCA7Civou43ml5cgPiBndW5raVwgOwor5L2z6Ya4ID4ga2Fqb3VcIDsKK+i3r+iCqSA+IHJva2VuXCA7CivmqZ/kvJogPiBraWthaVwgOwor5Ly86aGUID4gbmlnYW9cIDsKK+eUsue+hSA+IGtvdXJhXCA7CivlrrbploAgPiBrYW1vblwgOwor6Ieq55SxID4gaml5dXVcIDsKK+ajhOiDjCA+IGtpaGFpXCA7Civkvr/ooaMgPiBiZW4nJ2lcIDsKK+WGhuWFiSA+IGVua291XCA7Civoh6rnlKggPiBqaXlvdVwgOwor6Ieq55SfID4gamlzZWlcIDsKK+S9v+mAlCA+IHNoaXRvXCA7Civou73lvq4gPiBrZWliaVwgOwor5YW15YyqID4gaGVpaGlcIDsKK+S9s+mFkiA+IGthc2h1XCA7Civlt6XlhbcgPiBrb3VndVwgOwor55m75Z2CID4gdG9oYW5cIDsKK+WvjOmJsSA+IGZ1a291XCA7CivlhazlkI8gPiBrb3VyaVwgOwor5YaF5YSAID4gbmFpZ2lcIDsKK+S+ruiogCA+IGJ1Z2VuXCA7CivpqI7ooYwgPiBraWtvdVwgOwor6Ly/5ZywID4geW9jaGlcIDsKK+W7tuOAhSA+IGVuJydlblwgOwor5qOE6ICBID4ga2lyb3VcIDsKK+iKuOWtkCA+IGdlaWtvXCA7Civog4zpm6IgPiBoYWlyaVwgOwor5bem5YK+ID4gc2FrZWlcIDsKK+S/neiPjCA+IGhva2luXCA7CivmqZ/kuIogPiBraWpvdVwgOwor5YWs5Y2wID4ga291aW5cIDsKK+i8lOWwjiA+IGhvZG91XCA7CivlhavljaYgPiBoYWtrZVwgOwor6Lu95bqmID4ga2VpZG9cIDsKK+W3tOS6uiA+IGhhamluXCA7CivnlLvntJkgPiBnYXNoaVwgOwor6Iux5ZCNID4gZWltZWlcIDsKK+iFueiFlCA+IGZ1a2tvXCA7Civlhazli58gPiBrb3Vib1wgOwor5YWs5YuZID4ga291bXVcIDsKK+eVquebriA+IGJhbm1lXCA7CivlhZrlk6EgPiB0b3VpblwgOwor5YaF5L6NID4gbmFpamlcIDsKK+WFvOWCmSA+IGtlbmJpXCA7CivprLzmiY0gPiBraXNhaVwgOwor5a+E6YeRID4ga2lraW5cIDsKK+i1sOi3ryA+IHNvdXJvXCA7CivprZTlvL4gPiBtYWRhblwgOwor5bKh55uuID4gb2thbWVcIDsKK+WumOmcgCA+IGthbmp1XCA7CivlhIDlvaIgPiBnaWtlaVwgOwor5YSq5amJID4geXV1ZW5cIDsKK+eRnumbsiA+IHp1aXVuXCA7Civpq5jmuKkgPiBrb3VvblwgOwor5bC+6IqxID4gb2JhbmFcIDsKK+WvvuipsSA+IHRhaXdhXCA7CivkvJ3ppqwgPiB0ZW5tYVwgOwor6L2N5Y+JID4gdGVzc2FcIDsKK+S+neiolyA+IGl0YWt1XCA7CivohLPoo6EgPiBub3VyaVwgOwor5qip5YyWID4gZ29uZ2VcIDsKK+iEs+ijjyA+IG5vdXJpXCA7Civoi6blkJ8gPiBrdWdpblwgOwor6Iq45aaTID4gZ2VpZ2lcIDsKK+i3r+e3miA+IHJvc2VuXCA7CivotaTouqsgPiBha2FtaVwgOwor5YW15YKZID4gaGVpYmlcIDsKK+WGheS6iyA+IG5haWppXCA7CivnlJjnvo4gPiBrYW5iaVwgOwor5a+M6L6yID4gZnVub3VcIDsKK+S/rue+hSA+IHNodXJhXCA7CivoiqXlrZAgPiBrZXNoaVwgOwor55aR54K5ID4gZ2l0ZW5cIDsKK+W3peS6iyA+IGtvdWppXCA7CivmqL3kv44gPiBzb25zb1wgOwor5L6N6KybID4gamlrb3VcIDsKK+i7jeaJiyA+IGd1bnRlXCA7CivmqKnliKkgPiBrZW5yaVwgOwor5Lya6aOyID4ga2FpaW5cIDsKK+WFuOS+jSA+IHRlbmppXCA7CivlhazlhIAgPiBrb3VnaVwgOwor5a6J6Z2ZID4gYW5zZWlcIDsKK+mnhei3ryA+IGVraXJvXCA7CivlhJLlrpggPiBqdWthblwgOwor5YWl5YaFID4ganVkYWlcIDsKK+WFmuWLmSA+IHRvdW11XCA7CivlhbfkvZMgPiBndXRhaVwgOwor55m65Y+lID4gaG9ra3VcIDsKK+S9tei1tyA+IGhlaWtpXCA7CivprLHmhqQgPiB1cHB1blwgOwor6Ium5Yq0ID4ga3Vyb3VcIDsKK+S9s+i2oyA+IGthc2h1XCA7Civmp5jlrZAgPiB5b3VzdVwgOwor5L+d6IKyID4gaG9pa3VcIDsKK+eUu+eovyA+IGdha291XCA7CivlsbHnqqkgPiBzYW5rYVwgOwor5L6L6KmxID4gcmVpd2FcIDsKK+WFheWToSA+IGp1dWluXCA7CivoirHlo4cgPiBrYWRhblwgOwor5YWo5YKZID4gemVuYmlcIDsKK+WFmuWIqSA+IHRvdXJpXCA7CivouI/noLQgPiB0b3VoYVwgOwor5a2k6auYID4ga29rb3VcIDsKK+iHqueCiiA+IGppc3VpXCA7Civmpa3mnpwgPiBnb3VrYVwgOwor5L2z6LOTID4ga2FoaW5cIDsKK+eUn+ezuCA+IGtpaXRvXCA7CivlhbXkuosgPiBoZWlqaVwgOwor5YWI5Y+kID4gc2Vua29cIDsKK+aooeWGmSA+IG1vc2hhXCA7Civlg6flvpIgPiBzb3V0b1wgOwor6IOD6Y+hID4gaWt5b3VcIDsKK+mrmOatjCA+IGtvdWthXCA7Civkvovopo8gPiByZWlraVwgOwor6auY5qyhID4ga291amlcIDsKK+eWjua8jyA+IHNvcm91XCA7CivlronplpEgPiBhbmthblwgOwor5qi55LiKID4ganVqb3VcIDsKK+S9mei8qSA+IHlvaGFpXCA7CivmooXoirEgPiBiYWlrYVwgOwor5YSA5a65ID4gZ2l5b3VcIDsKK+eUsOennyA+IGRlbnNvXCA7Civlg6flurUgPiBzb3VhblwgOwor6aas6LuKID4gYmFzaGFcIDsKK+WFrOS6iyA+IGtvdWppXCA7CivlhYjli5kgPiBzZW5tdVwgOwor5L+6562JID4gb3JlcmFcIDsKK+WvjOiytCA+IGZ1a2tpXCA7Civlr6HoqIAgPiBrYWdlblwgOwor6aaW6YO9ID4gc2h1dG9cIDsKK+aooeWAoyA+IG1vaG91XCA7Civlr4zosaogPiBmdWdvdVwgOwor6aWR6aWJID4ga2lraW5cIDsKK+mmrOi5hCA+IGJhdGVpXCA7Civot7XnpZogPiBzZW5zb1wgOwor6Lev56iLID4gcm90ZWlcIDsKK+WvhOi0iCA+IGtpem91XCA7CivkvZPouq8gPiB0YWlrdVwgOwor55e05oSaID4gY2hpZ3VcIDsKK+iDjOmDqCA+IGhhaWJ1XCA7Civkv53nt5ogPiBob3NlblwgOwor6Iux5Li7ID4gZWlzaHVcIDsKK+Wto+mhjCA+IGtpZGFpXCA7CivlhYPliKkgPiBnZW5yaVwgOwor5L216KiYID4gaGVpa2lcIDsKK+WAq+eQhiA+IHJpbnJpXCA7Civou4rluqsgPiBzaGFrb1wgOwor6IKh6ZaTID4ga29rYW5cIDsKK+eUo+enkSA+IHNhbmthXCA7Civlr5PoqbEgPiBndXV3YVwgOwor5L2z6KiAID4ga2FnZW5cIDsKK+iHqua1hCA+IGppam91XCA7Civnlo/msLQgPiBzb3N1aVwgOwor55aO5rC0ID4gc29zdWlcIDsKK+S9meiyoSA+IHlvemFpXCA7CivohL7oh58gPiBoaXpvdVwgOwor5a2Q6aasID4ga291bWFcIDsKK+iEvuiHkyA+IGhpem91XCA7Civlg6flsLwgPiBzb3VuaVwgOwor55m65L2cID4gaG9zc2FcIDsKK+i7ouWrgSA+IHRlbmthXCA7Civoh6rmsrsgPiBqaWNoaVwgOwor55mS5ZCIID4geXVnb3VcIDsKK+WFheWCmSA+IGp1dWJpXCA7Civlg6flr7ogPiBzb3VqaVwgOwor6IS+6IWrID4gaGlzaHVcIDsKK+mrmOaetiA+IGtvdWthXCA7CivlsL7nsaAgPiBiaXJvdVwgOwor55eb5omLID4gaXRhZGVcIDsKK+eZveS6nCA+IGhha3VhXCA7Civlg6flrrYgPiBzb3VrYVwgOwor5a626LKhID4ga2F6YWlcIDsKK+i7ouWphiA+IHRlbmJhXCA7CivlgaXmrakgPiBrZW5wb1wgOwor6ay85a2QID4gb25pZ29cIDsKK+aliuaenSA+IHlvdWppXCA7CivlsZXnpLogPiB0ZW5qaVwgOwor5a6Y6YCUID4ga2FudG9cIDsKK+iHquawkSA+IGppbWluXCA7Civkv53nrqEgPiBob2thblwgOwor5qCE6LuiID4gZWl0ZW5cIDsKK+aknOazoiA+IGtlbnBhXCA7Civku67poYwgPiBrYWRhaVwgOwor5a2X6Z2iID4gamltZW5cIDsKK+i3r+ebpCA+IHJvYmFuXCA7CivlhYPkvqEgPiBnZW5rYVwgOwor6Ii15omLID4gZGFzaHVcIDsKK+Wuj+mBoCA+IGtvdWVuXCA7CivlrZDpn7MgPiBzaGlpblwgOwor6Imm5bC+ID4ga2FuYmlcIDsKK+S9meirhyA+IHlvZGFuXCA7CivlhIDlnosgPiBnaWtlaVwgOwor5a+M6KOVID4gZnV5dXVcIDsKK+ani+WbsyA+IGtvdXp1XCA7CivnlKPnnYAgPiB1YnVnaVwgOwor5YGP5rOiID4gaGVuaGFcIDsKK+mpmueVsCA+IGt5b3VpXCA7Civlgb3mnKwgPiBnaWhvblwgOwor6Im25ae/ID4gZW5zaGlcIDsKK+WEquWIqSA+IHl1dXJpXCA7CivmpbXmhI8gPiBnb2t1aVwgOwor5Luu6Z2iID4ga2FtZW5cIDsKK+WBveabuCA+IGdpc2hvXCA7CivlsqHmua8gPiBva2F5dVwgOwor5qOL55WMID4ga2lrYWlcIDsKK+S/neeojiA+IGhvemVpXCA7CivkvZnoqIggPiB5b2tlaVwgOwor5YOF5beuID4ga2luc2FcIDsKK+WFhOS6iyA+IGtlaWppXCA7Civouq/lubkgPiBrdWthblwgOwor5YK+5bqmID4ga2VpZG9cIDsKK+S/r+eesCA+IGZ1a2FuXCA7CivmoKHopo8gPiBrb3VraVwgOwor6Ieo5qmfID4gcmlua2lcIDsKK+iCqemDqCA+IGtlbmJ1XCA7CivoiYfluqsgPiB0ZWlrb1wgOwor5bCK6ICFID4gc29uamFcIDsKK+i3oeebriA+IGF0b21lXCA7Civot6/nlKggPiByb3lvdVwgOwor5a626KiTID4ga2FrdW5cIDsKK+Wtl+mWkyA+IGppa2FuXCA7CivlrrboqIggPiBrYWtlaVwgOwor6Iqx5YagID4ga2FrYW5cIDsKK+S9juiqniA+IHRlaWdvXCA7Civlrp/osrsgPiBqaXBwaVwgOwor5YK+5beuID4ga2Vpc2FcIDsKK+eUt+eMqyA+IG9uZWtvXCA7CivnlKbnlJ8gPiBzb3NlaVwgOwor6LW36I2JID4ga2lzb3VcIDsKK+aetumWkyA+IGtha2FuXCA7CivkvZnoo5UgPiB5b3l1dVwgOwor5bWp5ZG8ID4gc3V1a29cIDsKK+WumOiyuyA+IGthbnBpXCA7CivppIrpr4kgPiB5b3VyaVwgOwor6LuN5aSrID4gZ3VucHVcIDsKK+eWjuaelyA+IHNvcmluXCA7Civlrrboo4EgPiBrYXNhaVwgOwor5L+z55S7ID4gaGFpZ2FcIDsKK+i7iuWkqyA+IHNoYWZ1XCA7Civku5bpnaIgPiB0YW1lblwgOwor5bCP57SLID4ga29tb25cIDsKK+ahg+iKsSA+IHRvdWthXCA7CivnlJ/nkIYgPiBzZWlyaVwgOwor6IWL56qpID4gZWtpa2FcIDsKK+S7mOmajyA+IGZ1enVpXCA7Civpq5jmibkgPiBrb3VoaVwgOwor5a626J2/ID4gaWViYWVcIDsKK+aknOafuyA+IGtlbnNhXCA7Civlgpnlv5ggPiBiaWJvdVwgOwor5bCP57KLID4ga29pa2lcIDsKK+Wun+iomCA+IGppa2tpXCA7Civoh6rmm7ggPiBqaXNob1wgOwor6LKr6aaWID4ga2FuanVcIDsKK+WBiealrSA+IGlneW91XCA7CivkurrppqwgPiBqaW5iYVwgOwor5YSE5YqrID4gb2trdXVcIDsKK+iytOmhlSA+IGtpa2VuXCA7Civkvo3ogIUgPiBqaXNoYVwgOwor6Ieq5pq0ID4gamlib3VcIDsKK+S+v+enmCA+IGJlbnBpXCA7CivlrpjoqbEgPiBrYW53YVwgOwor5bSO5bSWID4ga2lnYWlcIDsKK+eWjuaUviA+IHNvaG91XCA7CivkvZnolqsgPiB5b2t1blwgOwor6Ieq5piOID4gamltZWlcIDsKK+iHqOaZgiA+IHJpbmppXCA7CivppIzpo58gPiBlamlraVwgOwor6LuN5ZmoID4gZ3Vua2lcIDsKK+WumuimjyA+IGpvdWdpXCA7CivoiLnlsL4gPiBzZW5iaVwgOwor5YSA5YiRID4gZ2lrZWlcIDsKK+S7iumamyA+IGltYXdhXCA7CivlhITlhoYgPiBva3VlblwgOwor5YSA5YiAID4gZ2l0b3VcIDsKK+WuiOittyA+IHNodWdvXCA7CivkvJrosrsgPiBrYWloaVwgOwor5bKp5qC5ID4gaXdhbmVcIDsKK+mli+mChCA+IGtpa2FuXCA7Civlr6HogZ4gPiBrYWJ1blwgOwor6auY5oGpID4ga291b25cIDsKK+eUt+a7nSA+IG9kYWtpXCA7Civou6LljJYgPiB0ZW5rYVwgOwor5YSA5YW4ID4gZ2l0ZW5cIDsKK+eTnOenkSA+IHVyaWthXCA7Civou73kvq4gPiBrZWlidVwgOwor5a626JS1ID4ga2F6b3VcIDsKK+S+m+exsyA+IGt1bWFpXCA7CivmoITonrogPiBzYXphZVwgOwor6Luf5YyWID4gbmFua2FcIDsKK+WApOautSA+IG5lZGFuXCA7CivlraTou40gPiBrb2d1blwgOwor5YG95oKqID4gZ2lha3VcIDsKK+eVsOacnSA+IGljaG91XCA7CivkvbPogrQgPiBrYWtvdVwgOwor55ay5byKID4gaGloZWlcIDsKK+S8muitsCA+IGthaWdpXCA7CivnlJjnha4gPiBhbWFuaVwgOwor5YG95oCnID4gZ2lzZWlcIDsKK+adpemnlSA+IHJhaWdhXCA7CivnlLvms5UgPiBnYWhvdVwgOwor5a+E6IiqID4ga2lrb3VcIDsKK+mrmOW6pyA+IGtvdXphXCA7Civpq5jluqYgPiBrb3Vkb1wgOwor6Imv5Yy7ID4gcnlvdWlcIDsKK+S8neiomCA+IGRlbmtpXCA7CivkvJroqbEgPiBrYWl3YVwgOwor5L2Z6IqzID4geW9ob3VcIDsKK+S5sem6uyA+IHJhbm1hXCA7Civlgpjlr78gPiBzYW5qdVwgOwor5bGx5rKzID4gc2FuZ2FcIDsKK+WwvueKtiA+IGJpam91XCA7CivogLPpoIYgPiBqaWp1blwgOwor5Ly96JeNID4gZ2FyYW5cIDsKK+izm+i+niA+IHNhbmppXCA7Civou43ljLsgPiBndW4nJ2lcIDsKK+WwguenkSA+IHNlbmthXCA7CivnlbDmlZkgPiBpa3lvdVwgOwor5YSA5LuXID4gZ2lqb3VcIDsKK+WuiOihmyA+IHNodWVpXCA7Civlr4zogIUgPiBmdXNoYVwgOwor5Lya6KaPID4ga2Fpa2lcIDsKK+i7jeWLmSA+IGd1bm11XCA7CivnlKPmua8gPiB1YnV5dVwgOwor6aaZ6I+vID4ga291Z2VcIDsKK+iHquaIkiA+IGppa2FpXCA7CivlsL7nh4ggPiBiaXRvdVwgOwor5L6b56WtID4gZ3VzYWlcIDsKK+izk+i+niA+IGhpbmppXCA7Civog5roir0gPiBoYWlnYVwgOwor6LW3566XID4ga2lzYW5cIDsKK+iInuWtkCA+IG1haWtvXCA7CivkvbPnt6ggPiBrYWhlblwgOwor6Ieq5oWiID4gamltYW5cIDsKK+i7ouS9jSA+IHRlbicnaVwgOwor6aOi6aWJID4ga2lraW5cIDsKK+alveWZqCA+IGdha2tpXCA7CivnlpHlv7UgPiBnaW5lblwgOwor5a+656S+ID4gamlzaGFcIDsKK+S9meiBniA+IHlvYnVuXCA7CivkuqTpmYQgPiBrb3VmdVwgOwor5a2m6KqyID4gZ2Fra2FcIDsKK+WDreS9jSA+IHNlbicnaVwgOwor5LuY6L+RID4gZnVraW5cIDsKK+WwvueBryA+IGJpdG91XCA7CivppqzogJUgPiBiYWtvdVwgOwor55Oc55SwID4ga2FkZW5cIDsKK+i4j+afuyA+IHRvdXNhXCA7Civpq5jlrpwgPiBrb3VnaVwgOwor6LW356i/ID4ga2lrb3VcIDsKK+eUu+alvCA+IGdhcm91XCA7CivohLHnmq4gPiBkYXBwaVwgOwor55WP5pyNID4gaWZ1a3VcIDsKK+adpemZoiA+IHJhaWluXCA7Civkvo3npa0gPiBqaXNhaVwgOwor6LuN5YKZID4gZ3VuYmlcIDsKK+eUo+awlyA+IHNhbmtlXCA7CivmpYrlrZAgPiB5b3VqaVwgOwor5bCP55WwID4gc2hvdWlcIDsKK+iInuWmkyA+IG1haWtvXCA7Civmo4TmrbsgPiBraXNoaVwgOwor5L2Z572qID4geW96YWlcIDsKK+eUo+avmyA+IHVidWdlXCA7Civmpa3lm6AgPiBnb3VpblwgOwor5L6L56S6ID4gcmVpamlcIDsKK+WutuiAgSA+IGthcm91XCA7CivnlJ/msJcgPiBzZWlraVwgOwor5LqL6aCFID4gamlrb3VcIDsKK+iFkOeImyA+IGZ1cmFuXCA7CivlsI/nk7YgPiBrb2JpblwgOwor5L2z56+HID4ga2FoZW5cIDsKK+iEseeWvSA+IGRhc3NvXCA7CivlsqnmiLggPiBpd2F0b1wgOwor5a+/55uDID4ganVoYWlcIDsKK+eUn+avjSA+IHNlaWJvXCA7Civoh6rlvIEgPiBqaWJlblwgOwor55Wq5omLID4gYmFudGVcIDsKK+WBuOWuiSA+IHRvdWFuXCA7CivlsI/nkLQgPiBvZ290b1wgOwor5L+E54S2ID4gZ2F6ZW5cIDsKK+ajhOaoqSA+IGtpa2VuXCA7Civosarpo7IgPiBnb3VpblwgOwor5LqA6aCtID4ga2l0b3VcIDsKK+eUu+advyA+IGdhYmFuXCA7CivlrZfoqJMgPiBqaWt1blwgOwor5qKz5q+bID4gc29tb3VcIDsKK+mjm+mbuyA+IGhpZGVuXCA7Civkuozpmo4gPiBuaWthaVwgOwor55S75p2QID4gZ2F6YWlcIDsKK+Wtl+inoyA+IGppa2FpXCA7Civou43kuosgPiBndW5qaVwgOwor55CG6LKhID4gcml6YWlcIDsKK+eUu+acrCA+IGdhaG9uXCA7CivnlLvmnJ8gPiBrYWtraVwgOwor6Ieq5belID4gamlrb3VcIDsKK+iDg+iFuCA+IGljaG91XCA7CivmoKHntIAgPiBrb3VraVwgOwor55W45b2iID4ga2lrZWlcIDsKK+S7o+itsCA+IGRhaWdpXCA7Civku67oqIAgPiBrYWdlblwgOwor6LWw56C0ID4gc291aGFcIDsKK+WCteWLmSA+IHNhaW11XCA7CivouqvliIYgPiBtaWJ1blwgOwor5YCL5p2hID4ga2Fqb3VcIDsKK+i1pOemjSA+IHNla2thXCA7CivkuojpmLIgPiB5b2JvdVwgOwor5YGJ5b6zID4gaXRva3VcIDsKK+izhOizgiA+IHdhaXJvXCA7CivogrLoi7EgPiBpa3VlaVwgOwor5bCP54qsID4ga29pbnVcIDsKK+aghOiAgCA+IGVpeW91XCA7CivnlLHmnaUgPiB5dXJhaVwgOwor55Ww5b+DID4gaXNoaW5cIDsKK+iIueWMuyA+IHNlbicnaVwgOwor5qSw5a2QID4geWFzaGlcIDsKK+Wutue0iyA+IGthbW9uXCA7Civlrrbns7sgPiBrYWtlaVwgOwor55Ww5b2iID4gaWd5b3VcIDsKK+S8vee+hSA+IGt5YXJhXCA7CivogrrohZEgPiBoYWlmdVwgOwor5LuP6LKoID4gZnVra2FcIDsKK+adsemDvSA+IHRvdXRvXCA7CivmnbHpg6ggPiB0b3VidVwgOwor5Luu6KOFID4ga2Fzb3VcIDsKK+iHquWwvSA+IGppamluXCA7CivnkIboq5YgPiByaXJvblwgOwor5YGP5beuID4gaGVuc2FcIDsKK+WwiueItiA+IHNvbnB1XCA7Civoh6rlsIogPiBqaXNvblwgOwor5YG95aCxID4gZ2lob3VcIDsKK+Wumue+qSA+IHRlaWdpXCA7Civlgpnlk4EgPiBiaWhpblwgOwor6LKo6LuKID4ga2FzaGFcIDsKK+S/l+awlyA+IHpva2tlXCA7Civoh6rlrrMgPiBqaWdhaVwgOwor6LK46LK7ID4gdGFpaGlcIDsKK+WvhOeovyA+IGtpa291XCA7CivnlZnmhI8gPiByeXV1aVwgOwor5L2V566HID4gbmFua29cIDsKK+WAi+aVsCA+IGtvc3V1XCA7Civlr53nm7ggPiBuZXpvdVwgOwor6aK26aKoID4gZ3VmdXVcIDsKK+iytOizpCA+IGtpc2VuXCA7Civoh6rlrZggPiBqaXNvblwgOwor5qGC55quID4ga2VpaGlcIDsKK+mjsumFkiA+IGluc2h1XCA7CivosrTos5MgPiBraWhpblwgOwor5Lqo6YGLID4ga291dW5cIDsKK+eQhuinoyA+IHJpa2FpXCA7CivosrTos44gPiBraXNlblwgOwor6LW355SoID4ga2l5b3VcIDsKK+S9leetiSA+IG5hbnJhXCA7Civosqnot68gPiBoYW5yb1wgOwor5pyf6aaWID4ga2lzaHVcIDsKK+S/l+atjCA+IHpva2thXCA7CivkuZfppqwgPiBqb3ViYVwgOwor5LuY6KiAID4gZnVnZW5cIDsKK+i1pOebriA+IGFrYW1lXCA7Civku4vorbcgPiBrYWlnb1wgOwor5LuW6KiAID4gdGFnb25cIDsKK+S6gOmRkSA+IGtpa2FuXCA7CivohLPngo4gPiBub3VlblwgOwor5qSc5a2XID4ga2VuamlcIDsKK+S6lOmHjSA+IGdvanV1XCA7Civos4DoqZ4gPiBnYXNoaVwgOwor6Iie5Y+wID4gYnV0YWlcIDsKK+acnemkiSA+IGFzYWdlXCA7Civlr6HnlLcgPiB5YW1vb1wgOwor5LuW6KaLID4gdGFrZW5cIDsKK+iIjuWWtiA+IHNoYWVpXCA7CivkvI7oirggPiBnaWdlaVwgOwor55aO5aSWID4gc29nYWlcIDsKK+WBtuWboCA+IGd1dWluXCA7Civlronnva4gPiBhbmNoaVwgOwor6LKo6LKhID4ga2F6YWlcIDsKK+WCjeWPlyA+IGJvdWp1XCA7Civog7TnnYAgPiBkb3VnaVwgOwor5a6256a9ID4ga2FraW5cIDsKK+WyqeWxiyA+IGl3YXlhXCA7Civkuozph40gPiBmdXRhZVwgOwor6IKl6IKyID4gaGlpa3VcIDsKK+Wwj+a7nSA+IG90YWtpXCA7CivkuojpiLQgPiB5b3JlaVwgOwor5YG95ZaEID4gZ2l6ZW5cIDsKK+aip+ahkCA+IGdvdG91XCA7CivosqLos6YgPiBrb3VmdVwgOwor55S75omNID4gZ2FzYWlcIDsKK+eUu+aJiyA+IGdhc2h1XCA7CivlrpjntIAgPiBrYW5raVwgOwor6LK06KqMID4ga2lzaGlcIDsKK+miqOmfuyA+IGZ1dWluXCA7CivnlbPlrZcgPiBqb3VqaVwgOwor5LuW6KGMID4gdGFrb3VcIDsKK+iCoeiCsSA+IGtva291XCA7CivosqHosqggPiB6YWlrYVwgOwor55Ww5a6XID4gaXNodXVcIDsKK+S6kumBuCA+IGdvc2VuXCA7Civoh6rlo4ogPiBqaWthaVwgOwor5qOE5pCNID4ga2lzb25cIDsKK+miqOmdoSA+IGZ1dWJpXCA7CivppIrorbcgPiB5b3Vnb1wgOwor6LKd6LKoID4gYmFpa2FcIDsKK+S8juiDvSA+IGdpbm91XCA7CivmnKrplosgPiBtaWthaVwgOwor5YCL5omAID4ga2FzaG9cIDsKK+iytOimpyA+IGtpcmFuXCA7CivotbDni5cgPiBzb3VrdVwgOwor6aKo6ZuyID4gZnV1dW5cIDsKK+S5lumboiA+IGthaXJpXCA7CivnlrLlirQgPiBoaXJvdVwgOwor5Luu6JGsID4ga2Fzb3VcIDsKK+WBveWQjSA+IGdpbWVpXCA7Civkurroqp4gPiBqaW5nb1wgOwor6aKo6ZuFID4gZnV1Z2FcIDsKK+S6lOi8qiA+IGdvcmluXCA7Civlgb3lj7IgPiBnaXNoaVwgOwor5pyf6ZmQID4ga2lnZW5cIDsKK+S6iOmBuCA+IHlvc2VuXCA7CivkuZfpmaQgPiBqb3Vqb1wgOwor5YGP5aWHID4gaGVua2lcIDsKK+S4u+mmrCA+IHNodW1lXCA7Civkv53mnIkgPiBob3l1dVwgOwor6Ieq5ZyoID4gaml6YWlcIDsKK+mrmOWIqSA+IGtvdXJpXCA7CivmnJ/plpMgPiBraWthblwgOwor6LW354K5ID4ga2l0ZW5cIDsKK+S6jOi8qiA+IG5pcmluXCA7CivmnJ3plpMgPiBhc2FtYVwgOwor6ISz5rOiID4gbm91aGFcIDsKK+Wun+enkSA+IGppa2thXCA7Civlrrbnm7ggPiBrYXNvdVwgOwor5p2l6LOAID4gcmFpZ2FcIDsKK+WxoOaJgCA+IHRvc2hvXCA7CivnlpHllY8gPiBnaW1vblwgOwor6IiO5YipID4gc2hhcmlcIDsKK+WvhOeUnyA+IGtpc2VpXCA7Civkuozou40gPiBuaWd1blwgOwor5YCS5b2xID4gdG91ZWlcIDsKK+S7luiWpiA+IHRhemVuXCA7CivlgIvmgKcgPiBrb3NlaVwgOwor6aeE54qsID4gZGFrZW5cIDsKK+mjm+i7iiA+IGhpc2hhXCA7CivlsbnluqYgPiBraXR0b1wgOwor5L2c55SoID4gc2F5b3VcIDsKK+WAreWvhyA+IHdha291XCA7CivlsI/mrYwgPiBrb3V0YVwgOwor5Li76Z+zID4gc2h1b25cIDsKK+eVsOWigyA+IGlreW91XCA7CivlrrnnlpEgPiB5b3VnaVwgOwor55S75buKID4gZ2Fyb3VcIDsKK+S9meeUnyA+IHlvc2VpXCA7Civnvo7pupcgPiBiaXJlaVwgOwor5a6a56SOID4gdGVpc29cIDsKK+WBj+WcnyA+IGhlbmRvXCA7CivlsqnloLQgPiBpd2FiYVwgOwor6Ieq5ZWPID4gamltb25cIDsKK+WBveWFtSA+IGdpaGVpXCA7CivkuqToqrwgPiBrb3VnaVwgOwor6IWV5pyoID4gdWRlZ2lcIDsKK+WCmOS4iyA+IHNhbmthXCA7CivlgaXlkKYgPiBrZW5waVwgOwor55S75birID4gZ2FzaGlcIDsKK+eUu+W4liA+IGdham91XCA7CivlrrbnlKMgPiBrYXNhblwgOwor55S75belID4gZ2Frb3VcIDsKK+i1t+a6kCA+IGtpZ2VuXCA7Civnvr3pn7MgPiBoYW90b1wgOwor6auY5L6hID4ga291a2FcIDsKK+WAieW6qyA+IHNvdWtvXCA7Civmnpzoj5wgPiBrYXNhaVwgOwor5py66L66ID4ga2loZW5cIDsKK+WvvuavlCA+IHRhaWhpXCA7CivnlbDlm70gPiBpa29rdVwgOwor5p2R6LK7ID4gc29ucGlcIDsKK+izouiAhSA+IGtlbmphXCA7CivmnKzpg6ggPiBob25idVwgOwor5LqS6K2yID4gZ29qb3VcIDsKK+iHk+WZqCA+IHpvdWtpXCA7Civlr77mrKcgPiB0YWlvdVwgOwor6ICB6LqvID4gcm91a3VcIDsKK+eUo+W+jCA+IHNhbmdvXCA7CivnlKjluqYgPiB5b3Vkb1wgOwor5pu46ZmiID4gc2hvaW5cIDsKK+ahkOayuSA+IHRvdXl1XCA7CivmnKrpgYIgPiBtaXN1aVwgOwor55Sf5b6SID4gc2VpdG9cIDsKK+eUn+W+jCA+IHNlaWdvXCA7CivmnaHopo8gPiBqb3VraVwgOwor6ISa5rCXID4ga2Fra2VcIDsKK+mrmOS4iyA+IGtvdWdlXCA7Civoh6rli5UgPiBqaWRvdVwgOwor546L6YGTID4gb3Vkb3VcIDsKK+izm+e+jiA+IHNhbmJpXCA7CivohZDmlZcgPiBmdWhhaVwgOwor6LmE5Y+JID4gdGVpc2FcIDsKK+S6ieitsCA+IHNvdWdpXCA7CivmnKjpgJogPiBha2ViaVwgOwor5LuV6IieID4gamltYWlcIDsKK+i2iuaoqSA+IGVra2VuXCA7Civot4vmiYggPiBiYWtrb1wgOwor5L2Z54e8ID4geW9qaW5cIDsKK+WAi+WxlSA+IGtvdGVuXCA7Civoh6rliY0gPiBqaW1hZVwgOwor6Ieq5Yi2ID4gamlzZWlcIDsKK+WBpeWFkCA+IGtlbmppXCA7Civog4Pnl5sgPiBpdHN1dVwgOwor5LqI6KyAID4geW9ib3VcIDsKK+mqqOWMliA+IGtva2thXCA7CivlsI/mnp0gPiBrb2VkYVwgOwor6IOD55eFID4gaWJ5b3VcIDsKK+iHquWIhiA+IGppYnVuXCA7Civoh6rliIMgPiBqaWppblwgOwor6LW35q+bID4ga2ltb3VcIDsKK+eRqueRmSA+IG1lbm91XCA7CivpoqjpgqogPiBmdXVqYVwgOwor6LW35q27ID4ga2lzaGlcIDsKK+aetue3miA+IGthc2VuXCA7CivkuIrppqwgPiBqb3ViYVwgOwor5L2c54K6ID4gc2FrdWlcIDsKK+iDjOeQhiA+IGhhaXJpXCA7CivlronnnKAgPiBhbm1pblwgOwor6Ieq5YWaID4gaml0b3VcIDsKK+Wwv+aEjyA+IG55b3VpXCA7CivmnJvpgaAgPiBib3VlblwgOwor55Sw5a62ID4gZGVua2FcIDsKK+S6iOiogCA+IHlvZ2VuXCA7CivkuZ3ovKogPiBrdXJpblwgOwor5Lmx6LK7ID4gcmFucGlcIDsKK+S7luiBniA+IHRhYnVuXCA7CivmnKrouI8gPiBtaXRvdVwgOwor5LqJ6KaHID4gc291aGFcIDsKK+WvneaxlyA+IG5lYXNlXCA7CivlgaXkv50gPiBrZW5wb1wgOwor5a++5qGIID4gdGFpYW5cIDsKK+eRleeWtSA+IGthc2hpXCA7CivkuojoposgPiB5b2tlblwgOwor5LiL6aKoID4ga2FmdXVcIDsKK+S7luiAhSA+IHRhc2hhXCA7Civnlb/lhoUgPiBraW5haVwgOwor5Luu57SNID4ga2Fub3VcIDsKK+eMqummliA+IGlrdWJpXCA7CivlrprnkIYgPiB0ZWlyaVwgOwor5LiN6aCGID4gZnVqdW5cIDsKK+S4gOmmliA+IGlzc2h1XCA7CivnlKPlsYsgPiB1YnV5YVwgOwor5Luu57KnID4ga2V3YWlcIDsKK+ixquiqniA+IGdvdWdvXCA7CivpoZ7pn7sgPiBydWlpblwgOwor6aGe6Z+zID4gcnVpb25cIDsKK+WvkuazoiA+IGthbnBhXCA7CivnlKjlrZcgPiB5b3VqaVwgOwor5a2m56eRID4gZ2Fra2FcIDsKK+iyp+iLpiA+IGhpbmt1XCA7CivnlLflpbMgPiBkYW5qb1wgOwor6ICD6KqyID4ga291a2FcIDsKK+agueawlyA+IGtvbmtpXCA7CivotaTmr5sgPiBha2FnZVwgOwor5LiA6aOvID4gaXBwYW5cIDsKK+eUu+WjhyA+IGdhZGFuXCA7Civlr4TmuK8gPiBraWtvdVwgOwor6aaZ54WZID4ga291ZW5cIDsKK+e+jumiqCA+IGJpZnV1XCA7Civpo5vooYwgPiBoaWtvdVwgOwor5LqI6KGMID4geW9rb3VcIDsKK+S6rOiPryA+IGtlaWthXCA7CivlronnlKMgPiBhbnphblwgOwor6Ieq5L2TID4gaml0YWlcIDsKK+S4gOmiqCA+IGlwcHV1XCA7Civnvo7poZQgPiBiaWdhblwgOwor55Sf5a62ID4gc2Vpa2FcIDsKK+Wun+eItiA+IGppcHB1XCA7Civoh6rkvJ0gPiBqaWRlblwgOwor6IGW6ICFID4gc2VpamFcIDsKK+S+v+aJgCA+IGJlbmpvXCA7CivnlLvloLEgPiBnYWhvdVwgOwor6Ieq5Lu7ID4gamluaW5cIDsKK+S4lumWkyA+IHNla2VuXCA7CivkuIDpoK0gPiBpdHRvdVwgOwor55Sy5aScID4ga291eWFcIDsKK+iHquS7iiA+IGppa29uXCA7CivkuI3pmo8gPiBmdXp1aVwgOwor6aaZ54KJID4ga291cm9cIDsKK+S4u+mDqCA+IHNodWJ1XCA7CivkuIDpoIUgPiBpa2tvdVwgOwor6aiO5omLID4ga2lzaHVcIDsKK+eUsOWkqyA+IGRlbnB1XCA7Civos6bnqI4gPiBmdXplaVwgOwor6aOb6J2XID4gYmF0dGFcIDsKK+eSveabuCA+IGppc2hvXCA7CivlsLvluqcgPiBrb3V6YVwgOwor6LK057+wID4ga2lrYW5cIDsKK+eQhuezuyA+IHJpa2VpXCA7Civoh6rkuZcgPiBqaWpvdVwgOwor55Sj5ammID4gc2FucHVcIDsKK+S4i+mZkCA+IGthZ2VuXCA7CivkuIvpmY0gPiBrYWtvdVwgOwor5LiK6ZmiID4gam91aW5cIDsKK+iHquS4uyA+IGppc2h1XCA7Civlr7jmmocgPiBzdW5rYVwgOwor5p6256m6ID4ga2FrdXVcIDsKK+eUo+WphiA+IHNhbmJhXCA7Civmo4vlo6sgPiBraXNoaVwgOwor6LGM6LGGID4gZW5kb3VcIDsKK+S4i+mYqiA+IGdlaGFuXCA7Civlr7jmmYIgPiBzdW5qaVwgOwor5qK15a2XID4gYm9uamlcIDsKK+eUmOWtkCA+IGFtYWdvXCA7CivkvZPmuKkgPiB0YWlvblwgOwor5L6/5oSPID4gYmVuJydpXCA7Civku4HnvqkgPiBqaW5naVwgOwor5a6b54S2ID4gZW56ZW5cIDsKK+S9nOazlSA+IHNhaG91XCA7CivmpJzkuosgPiBrZW5qaVwgOwor5Li76L6eID4gc2h1amlcIDsKK+aatOmjsiA+IGJvdWluXCA7Civlr53mo7ogPiBuZWthblwgOwor5p6c57OWID4ga2F0b3VcIDsKK+S9jua4qSA+IHRlaW9uXCA7CivotbDmn7sgPiBzb3VzYVwgOwor5LiA6ZqOID4gaWtrYWlcIDsKK+acrOiotCA+IGhvbnNvXCA7CivkuIDpmoogPiBpdHRhaVwgOwor5pu56YGUID4gc291ZGFcIDsKK+eVuOS6uiA+IGtpamluXCA7CivosqfogIUgPiBoaW5qYVwgOwor5L+Q5benID4gcmlrb3VcIDsKK+S+i+aZgiA+IHJlaWppXCA7Civlrrbms5UgPiBrYWhvdVwgOwor55Sw5ZyDID4gZGVucG9cIDsKK+WxoOWgtCA+IHRvam91XCA7Civku5jnrosgPiBmdXNlblwgOwor5pyq6KaLID4gbWlrZW5cIDsKK+iAs+iFlCA+IGppa291XCA7CivkuIDploMgPiBpc3NlblwgOwor5bCR5oWwID4gc2hvdWlcIDsKK+S+ruaFoiA+IGJ1bWFuXCA7CivkvZzmrYwgPiBzYWtrYVwgOwor5qGD5p2OID4gdG91cmlcIDsKK+agoeatjCA+IGtvdWthXCA7Civnvqnph5EgPiBnaWtpblwgOwor5L+d5a6IID4gaG9zaHVcIDsKK+miqOirrSA+IGZ1dXl1XCA7CivkuJbpioAgPiBzZWdpblwgOwor5L+d5a2YID4gaG96b25cIDsKK+iCuueCjiA+IGhhaWVuXCA7CivnlJjlpKIgPiBrYW5tdVwgOwor5bCk5bqmID4geXV1ZG9cIDsKK+iAvee+jiA+IHRhbmJpXCA7Civmm6Dph44gPiBrb3V5YVwgOwor6LK057SZID4ga2lzaGlcIDsKK+aciOizpiA+IGdlcHB1XCA7CivlsZXlopMgPiB0ZW5ib1wgOwor5L6/5bqnID4gYmVuemFcIDsKK+S6lOiKkiA+IGdvYm91XCA7Civnj6rntKAgPiBrZWlzb1wgOwor5qC45p6cID4ga2Fra2FcIDsKK+WwiuaEjyA+IHNvbicnaVwgOwor6aaZ5rK5ID4ga291eXVcIDsKK+eUqOWZqCA+IHlvdWtpXCA7CivmoYjmlocgPiBhbm1vblwgOwor5Luu552hID4ga2FzdWlcIDsKK+acl+ipoCA+IHJvdWVpXCA7CivlgJLlj6UgPiB0b3VrdVwgOwor5YCS5Y+ZID4gdG91am9cIDsKK+S7ruecoCA+IGthbWluXCA7CivosrTnsKEgPiBraWthblwgOwor6IeN5LiLID4gc2Vpa2FcIDsKK+Wumua4qSA+IHRlaW9uXCA7Civku67nm7ggPiBrYXNvdVwgOwor5LqU6IeTID4gZ296b3VcIDsKK+iDjOazsyA+IGhhaWVpXCA7CivpppnmsJcgPiBrb3VraVwgOwor5Lqh6ICFID4gbW91amFcIDsKK+iGoOWMliA+IGtvdWthXCA7CivpoK3pn7sgPiB0b3VpblwgOwor5L2z5pmvID4ga2FrZWlcIDsKK+WwluW6piA+IHNlbmRvXCA7Civku5bnpL4gPiB0YXNoYVwgOwor6LGq6I+vID4gZ291a2FcIDsKK+WvjOaciSA+IGZ1eXV1XCA7CivkuJbpgJQgPiBzZWl0b1wgOwor5Luu55eYID4ga2F0b3VcIDsKK+S4h+mHjCA+IGJhbnJpXCA7CivnkIbnn6UgPiByaWNoaVwgOwor5LiY6L66ID4gb2thYmVcIDsKK+iFueWbsiA+IGZ1a3VpXCA7CivkvZDmp5ggPiBzYXlvdVwgOwor5LuP56WWID4gYnVzc29cIDsKK+mnhOaWhyA+IGRhYnVuXCA7Civnvqnou40gPiBnaWd1blwgOwor5YCN5YqgID4gYmFpa2FcIDsKK+WAreS6uiA+IHdhamluXCA7CivkuIPph40gPiBuYW5hZVwgOwor5LiL6YOOID4gZ2Vyb3VcIDsKK+S4iumDqCA+IGpvdWJ1XCA7CivpoJPppqwgPiB0b25tYVwgOwor5LiJ6YOoID4gc2FuYnVcIDsKK+iytOeoriA+IGtpc2h1XCA7CivkuI3pgZwgPiBmdXNvblwgOwor5bCE5b2xID4gc2hhZWlcIDsKK+S4jemBhyA+IGZ1Z3V1XCA7CivkuIDph40gPiBoaXRvZVwgOwor5Li76KqeID4gc2h1Z29cIDsKK+S+v+WunCA+IGJlbmdpXCA7CivpqI7lsIQgPiBraXNoYVwgOwor5a+E5pu4ID4ga2lzaG9cIDsKK+S4jemAniA+IGZ1dGVpXCA7CivlsI/lt50gPiBvZ2F3YVwgOwor5a++5b+cID4gdGFpb3VcIDsKK+S4jemAgCA+IGZ1dGFpXCA7Civnvo7phZIgPiBiaXNodVwgOwor55Ge5rCXID4genVpa2lcIDsKK+S4u+iotCA+IHNodXNvXCA7Civmmpfpm7IgPiBhbicndW5cIDsKK+iytOekviA+IGtpc2hhXCA7CivnlLflhZAgPiBkYW5qaVwgOwor5LqM6ICFID4gbmlzaGFcIDsKK+eUu+WDjyA+IGdhem91XCA7Civku5bnnIwgPiB0YWtlblwgOwor5L+z5ZGzID4gaGFpbWlcIDsKK+S9muabuCA+IGlzc2hvXCA7CivlqabpgbggPiBmdXNlblwgOwor55So5YuZID4geW91bXVcIDsKK+WppumBkyA+IGZ1ZG91XCA7CivmnZHnv4EgPiBzb25vdVwgOwor5a6J5rOwID4gYW50YWlcIDsKK+iCpea6gCA+IGhpbWFuXCA7CivkuIvovKkgPiBnZWhhaVwgOwor5a625p2lID4ga2VyYWlcIDsKK+WvvuW6pyA+IHRhaXphXCA7CivlgKTkuIogPiBuZWFnZVwgOwor55SY5ZGzID4ga2FubWlcIDsKK+S/s+WPpSA+IGhhaWt1XCA7CivkuIDpgY0gPiBpcHBlblwgOwor6ICB6IiXID4gcm91aG9cIDsKK+aal+mXmCA+IGFudG91XCA7Civmm7joqJggPiBzaG9raVwgOwor5LiL6LuKID4gZ2VzaGFcIDsKK+WwkeWwiSA+IHNob3VpXCA7CivnlJrlj6UgPiBqaW5rdVwgOwor5a625pu4ID4ga2FzaG9cIDsKK+S6m+e0sCA+IHNhc2FpXCA7CivnkIbnlLEgPiByaXl1dVwgOwor5Lq656WWID4gamluc29cIDsKK+Wwj+WwiSA+IHNob3VpXCA7CivmoKHml5cgPiBrb3VraVwgOwor5Lmx6IieID4gcmFuYnVcIDsKK+S6lOe3miA+IGdvc2VuXCA7CivnlJjlj5cgPiBrYW5qdVwgOwor5LiA6L66ID4gaXBwZW5cIDsKK+S+jeW+kyA+IGppanV1XCA7CivlraTnga8gPiBrb3RvdVwgOwor5Luj55CGID4gZGFpcmlcIDsKK+iyouennyA+IGtvdXNvXCA7CivlqIPprJ8gPiBhaWthblwgOwor5Lya5rS+ID4ga2FpaGFcIDsKK+WtkOeKrCA+IGtvaW51XCA7Civoga/nj6AgPiByZW5qdVwgOwor55So5YW3ID4geW91Z3VcIDsKK+eUu+S8miA+IGdha2FpXCA7Civku5bnlYwgPiB0YWthaVwgOwor5LqU57WDID4gZ29nZW5cIDsKK+Wwj+WtlyA+IGtvYXphXCA7CivlsYvlj7cgPiB5YWdvdVwgOwor5bGL5Y+wID4geWF0YWlcIDsKK+WwiuWutiA+IHNvbmthXCA7CivkuIDou6IgPiBpdHRlblwgOwor55S75Lq6ID4gZ2FqaW5cIDsKK+mhjOi+niA+IGRhaWppXCA7CivkuIDou5IgPiBpa2tlblwgOwor5a6f5qKFID4gbWl1bWVcIDsKK+WAi+S9kyA+IGtvdGFpXCA7CivpqI7lo6sgPiBraXNoaVwgOwor5a++5bOZID4gdGFpamlcIDsKK+eUo+WFkCA+IHNhbmppXCA7Civot6/lgo0gPiByb2JvdVwgOwor5pys6IiXID4gaG9ucG9cIDsKK+e+pOitsCA+IGd1bmdpXCA7CivkuI3osrcgPiBmdWJhaVwgOwor5a625pS/ID4ga2FzZWlcIDsKK+S4i+izpCA+IGdlc2VuXCA7Civlr53mga8gPiBuZWlraVwgOwor5LiN6LKeID4gZnV0ZWlcIDsKK+S4i+iznCA+IGthc2hpXCA7CivkuIvos44gPiBnZXNlblwgOwor5p6v54elID4ga29zb3VcIDsKK+WAi+S6uiA+IGtvamluXCA7CivmnKjoiJ4gPiBrb21haVwgOwor5L2/5b6SID4gc2hpdG9cIDsKK+iAgee/gSA+IHJvdW91XCA7Civnvr3on7sgPiBoYWFyaVwgOwor5a+b5oGVID4ga2Fuam9cIDsKK+iyu+eUqCA+IGhpeW91XCA7CivpoLjpg6ggPiBrZWlidVwgOwor5Luj54i2ID4gZGFpZnVcIDsKK+iyq+ebriA+IGthbm1lXCA7CivlsI/lp5QgPiBzaG91aVwgOwor576p6KiTID4gZ2lrdW5cIDsKK+S6iOe0jSA+IHlvbm91XCA7CivkuIfosqggPiBiYW5rYVwgOwor5LiW6KuWID4geW9yb25cIDsKK+ixiuiJtiA+IGhvdWVuXCA7Civotbflt6UgPiBraWtvdVwgOwor5p2/55uuID4gaXRhbWVcIDsKK+mgremHjSA+IHp1b21vXCA7CivmooXlnJIgPiBiYWllblwgOwor6LK055S3ID4gdGFrYW9cIDsKK+WumuacqCA+IGpvdWdpXCA7CivlrprmnJ8gPiB0ZWlraVwgOwor5bCP5aOyID4ga291cmlcIDsKK+e+juiyjCA+IGJpYm91XCA7CivlsI/lo7AgPiBrb2dvZVwgOwor5qGC5bq1ID4ga2VpYW5cIDsKK+S4gOiyqyA+IGlra2FuXCA7CivkuIrorbAgPiBqb3VnaVwgOwor55Sf5L+dID4gc2VpaG9cIDsKK+S+v+WZqCA+IGJlbmtpXCA7CivkuI7oq5YgPiB5b3JvblwgOwor5pyq6IGeID4gbWltb25cIDsKK+mfs+mfuyA+IG9uJydpblwgOwor55So5LqLID4geW91amlcIDsKK+aZr+mbsiA+IGtlaXVuXCA7CivpoK3pg6ggPiB0b3VidVwgOwor5LuU54qsID4ga29pbnVcIDsKK+S6jOetiSA+IG5pdG91XCA7CivnvarpgY4gPiB6YWlrYVwgOwor5LiK6KutID4gam91eXVcIDsKK+S/l+WMliA+IHpva2thXCA7CivlrZfmupAgPiBqaWdlblwgOwor5LqI566XID4geW9zYW5cIDsKK+mhnuiqniA+IHJ1aWdvXCA7Civot6/kuIogPiByb2pvdVwgOwor5pys576pID4gaG9uZ2lcIDsKK+izgOeKtiA+IGdham91XCA7CivlrprmmYIgPiB0ZWlqaVwgOwor5qOE5LiWID4ga2lzZWlcIDsKK+ixhuiFkCA+IHRvdWZ1XCA7Civpp4TlvIEgPiBkYWJlblwgOwor5amm6K2mID4gZnVrZWlcIDsKK+i1t+WxhSA+IGtpa3lvXCA7CivnjYTooaMgPiBnb2t1aVwgOwor5p2/55S7ID4gaGFuZ2FcIDsKK+S4jeiogCA+IGZ1Z2VuXCA7CivkvY/mjIEgPiBqdXVqaVwgOwor5L2T5oqAID4gdGFpZ2lcIDsKK+S/neWGtyA+IGhvcmVpXCA7CivkvZnmhqQgPiB5b2Z1blwgOwor5LiK6Ki0ID4gam91c29cIDsKK+S4iuiomCA+IGpvdWtpXCA7CivkvZnmhbYgPiB5b2tlaVwgOwor5L2c5oSPID4gc2FrdWlcIDsKK+S/neWFqCA+IGhvemVuXCA7CivkuoznqK4gPiBuaXNodVwgOwor5p6c54S2ID4ga2F6ZW5cIDsKK+S4jeimgSA+IGZ1eW91XCA7Civpn7Ppmo4gPiBvbmthaVwgOwor576O6KuHID4gYmlkYW5cIDsKK+WutuaGsiA+IGtha2VuXCA7CivkuojnqL8gPiB5b2tvdVwgOwor5bCO5ZugID4gZG91aW5cIDsKK+S7o+a8lCA+IGRhaWVuXCA7CivkvZnmg4UgPiB5b2pvdVwgOwor5a+h5bGFID4ga2FreW9cIDsKK+eKrOmmrCA+IGtlbmJhXCA7CivppJPni7wgPiBnYXJvdVwgOwor5bC85YOnID4gbmlzb3VcIDsKK+S/neWBpSA+IGhva2VuXCA7Civnv6Hnv6AgPiBoaXN1aVwgOwor5p6v5rehID4ga290YW5cIDsKK+mgmumDqCA+IGtlaWJ1XCA7CivmnKrnt7QgPiBtaXJlblwgOwor5LiA6KiIID4gaWtrZWlcIDsKK+e+juimsyA+IGJpa2FuXCA7CivpoJDph5EgPiB5b2tpblwgOwor5L2Z5b+1ID4geW9uZW5cIDsKK+S4i+ihjCA+IGtha291XCA7CivpoYzoqaAgPiBkYWllaVwgOwor5pyo57a/ID4gbW9tZW5cIDsKK+S4ueiKsSA+IHRhbmthXCA7CivkuIDoposgPiBpa2tlblwgOwor5Li56ImyID4gbmlpcm9cIDsKK+eOi+e1sSA+IG91dG91XCA7CivkvJrmnJ8gPiBrYWlraVwgOwor5bCB5ZyfID4gaG91ZG9cIDsKK+i2o+WRsyA+IHNodW1pXCA7Civos6Lmr40gPiBrZW5ib1wgOwor5pqX6LuiID4gYW50ZW5cIDsKK+acque0jSA+IG1pbm91XCA7Civlr77lnZAgPiB0YWl6YVwgOwor5L2Z5bymID4geW9nZW5cIDsKK+itsOmhjCA+IGdpZGFpXCA7CivogZbngasgPiBzZWlrYVwgOwor5bCP5ZSEID4ga291dGFcIDsKK+S9meW8iiA+IHlvaGVpXCA7CivohZDliJEgPiBmdWtlaVwgOwor5L2z5a65ID4ga2F5b3VcIDsKK+WutuW+kyA+IGthanV1XCA7CivotaTlrZcgPiBha2FqaVwgOwor6aSK54i2ID4geW91ZnVcIDsKK+adpeeUsSA+IHJhaXl1XCA7Civkuojnn6UgPiB5b2NoaVwgOwor5Luu5q27ID4ga2FzaGlcIDsKK+S4gOihjCA+IGlra291XCA7Civkvr/liKkgPiBiZW5yaVwgOwor5Luu5q2vID4ga2FzaGlcIDsKK+agueWtkCA+IG5la2tvXCA7Civlr7jlnJ8gPiBzdW5kb1wgOwor5L2V5bqmID4gbmFuZG9cIDsKK+S6jOebuCA+IG5pc291XCA7Civog6HluqcgPiBhZ3VyYVwgOwor6LOb5q2MID4gc2Fua2FcIDsKK+ePiueRmiA+IHNhbmdvXCA7CivmoYjlpJYgPiBhbmdhaVwgOwor5LqL55u4ID4gamlzb3VcIDsKK+WutuW6rSA+IGthdGVpXCA7Civmnq/mrbsgPiBrb3NoaVwgOwor6ISF5aiBID4ga3lvdWlcIDsKK+abs+iIqiA+IGVpa291XCA7CivnkIbms5UgPiByaWhvdVwgOwor6aKo57SAID4gZnV1a2lcIDsKK+S7o+avjSA+IGRhaWJvXCA7Civnk6blhaggPiBnYXplblwgOwor5a625bi4ID4ga2Fqb3VcIDsKK+S6uueCuiA+IGppbicnaVwgOwor5Lyd5pKtID4gZGVucGFcIDsKK+e9teiogCA+IGJhZ2VuXCA7CivpqI7lhbUgPiBraWhlaVwgOwor5L2O5bqmID4gdGVpZG9cIDsKK+ahkeWckiA+IHNvdWVuXCA7CivkupLnlKggPiBnb3lvdVwgOwor5Li7576pID4gc2h1Z2lcIDsKK+adoeeQhiA+IGpvdXJpXCA7CivlsI/li6IgPiBrb3plaVwgOwor5a+E5a+TID4ga2lndXVcIDsKK+WwiuWNkSA+IHNvbnBpXCA7CivlrabmnJ8gPiBnYWtraVwgOwor5LqM55WqID4gbmliYW5cIDsKK+aZgumZkCA+IGppZ2VuXCA7Civog4zlvowgPiBoYWlnb1wgOwor54mh6bm/ID4gb2ppa2FcIDsKK+S8geacmyA+IGtpYm91XCA7CivmnKznp5EgPiBob25rYVwgOwor5p6c5rGBID4ga2FqdXVcIDsKK+mmrOWxiyA+IHVtYXlhXCA7Civpp4XlpKsgPiBla2lmdVwgOwor5Lyd5o6IID4gZGVuanVcIDsKK+S6i+eUsSA+IGppeXV1XCA7Civkv47kuIogPiBzb2pvdVwgOwor5bCP5YikID4ga29iYW5cIDsKK+S5vueariA+IGthbnBpXCA7Civnvr3nv7wgPiB1eW9rdVwgOwor5p6d5q+bID4gZWRhZ2VcIDsKK+Wvv+WPuCA+IHN1c2hpXCA7CivkvZzlrrYgPiBzYWtrYVwgOwor6aaW5bqnID4gc2h1emFcIDsKK+aZrumBuCA+IGZ1c2VuXCA7CivpppblupwgPiBzaHVmdVwgOwor5Lqh54i2ID4gYm91ZnVcIDsKK+aZrumBjSA+IGZ1aGVuXCA7CivkvZnlr5IgPiB5b2thblwgOwor5pmC6ZaTID4gamlrYW5cIDsKK+WwgeWNsCA+IGZ1dWluXCA7CivorZzpnaIgPiBmdW1lblwgOwor5Lu75pyfID4gbmlua2lcIDsKK+i1reWcnyA+IHNoYWRvXCA7CivlrrblsYsgPiBrYW9rdVwgOwor5a625bGFID4ga2FreW9cIDsKK+iumui+niA+IHNhbmppXCA7CivogZbmsrkgPiBzZWl5dVwgOwor6IWQ5LmxID4gZnVyYW5cIDsKK+WwguWLmSA+IHNlbm11XCA7CivnjJ/omY4gPiByYWtrb1wgOwor5pmu6L66ID4gZnVoZW5cIDsKK+WvneWdiiA+IG5lYm91XCA7Civpo7Tnha4gPiBhbWVuaVwgOwor5p6i5qmfID4gc3V1a2lcIDsKK+e+pOiIniA+IGd1bmJ1XCA7CivmoLnln7ogPiBrb25raVwgOwor5L2P5bGFID4gc3VtYWlcIDsKK+iDg+W8sSA+IGlqYWt1XCA7CivkvJ3miYsgPiB0c3V0ZVwgOwor5a615a+dID4geW9pbmVcIDsKK+Wuo+W4gyA+IHNlbnB1XCA7CivotrPkuIsgPiBzb2trYVwgOwor5bCP5YOnID4ga296b3VcIDsKK+WuneW6qyA+IGhvdWtvXCA7CivpoIbot68gPiBqdW5yb1wgOwor5LiK6I23ID4gdXdhbmlcIDsKK+WutuWunSA+IGthaG91XCA7CivlsITliKkgPiBzaGFyaVwgOwor54yb6JmOID4gbW91a29cIDsKK+Wtl+abuCA+IGppc2hvXCA7CivkuIDokaYgPiBpY2hpaVwgOwor5a6u5bGFID4gbWl5YWlcIDsKK+i1pOWcsCA+IGFrYWppXCA7CivkvZDlrpggPiBzYWthblwgOwor6ISx5YWOID4gZGF0dG9cIDsKK+iBluavjSA+IHNlaWJvXCA7Civnvr3nuZQgPiBoYW9yaVwgOwor6IWL5LiLID4gZWtpa2FcIDsKK+e+qeiCoiA+IGdpc2hpXCA7CivpqI7kuZcgPiBraWpvdVwgOwor5L6N5Y+yID4gamlzaGlcIDsKK+WumOW6nCA+IGthbnB1XCA7CivmnKrnn6UgPiBtaWNoaVwgOwor5pqX6KaWID4gYW5zaGlcIDsKK+ael+aqjiA+IHJpbmdvXCA7Civku6PmoYggPiBkYWlhblwgOwor6IGW5q2MID4gc2Vpa2FcIDsKK+S7iuasoSA+IGtvbmppXCA7CivosrTmrr8gPiBraWRlblwgOwor5LiL6Ii5ID4gZ2VzZW5cIDsKK+S6i+eKryA+IGppaGFuXCA7CivpppblsL4gPiBzaHViaVwgOwor6LaK5YasID4gZXR0b3VcIDsKK+WuieW/gyA+IGFuamluXCA7CivnjK7oirEgPiBrZW5rYVwgOwor6ICz5ryPID4gamlyb3VcIDsKK+iznOaahyA+IHNoaWthXCA7CivkuIDojI4gPiBpa2tlaVwgOwor6LW35Y6fID4ga2lnZW5cIDsKK+iDuOWbsiA+IGt5b3VpXCA7CivlrZfmlbAgPiBqaXN1dVwgOwor6LKq5rGaID4gdGFuJydvXCA7Civnj63mrKEgPiBoYW5qaVwgOwor5LiL6IW/ID4ga2F0YWlcIDsKK+mkk+atuyA+IGdhc2hpXCA7CivmmJ/pm7IgPiBzZWl1blwgOwor5a+/5YOPID4ganV6b3VcIDsKK+S+oeWApCA+IGthY2hpXCA7CivkuI3og70gPiBmdW5vdVwgOwor5aaW6a2UID4geW91bWFcIDsKK+eSsOWMliA+IGthbmthXCA7CivkuIDoiZggPiBpc3NvdVwgOwor5p2l5ryUID4gcmFpZW5cIDsKK+WrjOeWkSA+IGtlbmdpXCA7Civotbfli5UgPiBraWRvdVwgOwor5Luu5pWwID4ga2FzdXVcIDsKK+S9meWhtSA+IHlvamluXCA7Civmma7os6IgPiBmdWdlblwgOwor5LiA6IisID4gaXBwYW5cIDsKK+S8keaEjyA+IGt5dXVpXCA7CivppIrmr40gPiB5b3Vib1wgOwor5a625aOwID4ga2FzZWlcIDsKK+Wun+WutiA+IGppa2thXCA7CivkuIvogqIgPiBrYXNoaVwgOwor6aCQ6KiAID4geW9nZW5cIDsKK+S4gOiHtCA+IGl0Y2hpXCA7Civpp4Xlk6EgPiBla2lpblwgOwor5Lya5b6XID4gZXRva3VcIDsKK+WvneWPsCA+IG5lZGFpXCA7CivkuIvogZ4gPiBrYWJ1blwgOwor5L2z5ZOBID4ga2FoaW5cIDsKK+WvoeWNoCA+IGthc2VuXCA7CivkuI3ogIEgPiBmdXJvdVwgOwor6LWk5ZGzID4gYWthbWlcIDsKK+itt+mAgSA+IGdvc291XCA7Civlr77kvqEgPiB0YWlrYVwgOwor5L6P5YSSID4gc2h1anVcIDsKK+WwiuS4iyA+IHNvbmthXCA7Civku5bmnZEgPiB0YXNvblwgOwor5p2c5ryPID4genVyb3VcIDsKK+WvoeWLoiA+IGthemVpXCA7CivlrpvlrZcgPiBhdGVqaVwgOwor5p+75a6aID4gc2F0ZWlcIDsKK+Wul+WutiA+IHNvdWtlXCA7Civkvo3lg6cgPiBqaXNvdVwgOwor5L2Z5ZywID4geW9jaGlcIDsKK+eJnemmrCA+IGhpbmJhXCA7Civnvo7ogrIgPiBiaWlrdVwgOwor5qGI5YiGID4gYW5idW5cIDsKK+iDveWQjyA+IG5vdXJpXCA7Civku4/mnpwgPiBidWtrYVwgOwor6ICQ54GrID4gdGFpa2FcIDsKK+iAgeeIuiA+IHJvdXlhXCA7CivogIHniLYgPiByb3VmdVwgOwor6K2m6YOoID4ga2VpYnVcIDsKK+mgreiTiyA+IHp1Z2FpXCA7CivotaTljJYgPiBzZWtrYVwgOwor55CG5pWwID4gcmlzdXVcIDsKK+S6nOa1gSA+IGFyeXV1XCA7CivotbflgrUgPiBraXNhaVwgOwor6LGh54mZID4gem91Z2VcIDsKK+S4gOiAgyA+IGlra291XCA7CivmnbHmrYwgPiB0b3VrYVwgOwor6K2m6YKPID4ga2VpcmFcIDsKK+WuieWxhSA+IGFua3lvXCA7CivmnbHmrKcgPiB0b3VvdVwgOwor6aeG5YuVID4ga3Vkb3VcIDsKK+WuueWZqCA+IHlvdWtpXCA7CivotJTlsZMgPiBoaWlraVwgOwor5a+h5YW1ID4ga2FoZWlcIDsKK+S4lue0gCA+IHNlaWtpXCA7Civku5bmlrkgPiB0YWhvdVwgOwor5LuK5pyfID4ga29ua2lcIDsKK+aenOaWrSA+IGthZGFuXCA7Civku7vmhI8gPiBuaW4nJ2lcIDsKK+mhnue4gSA+IHJ1aWVuXCA7CivkvZnllpggPiB5b3plblwgOwor6K6S6KqjID4gemFuYnVcIDsKK+S6oeavjSA+IGJvdWJvXCA7CivmnpzmlaIgPiBrYWthblwgOwor5a6J5a6aID4gYW50ZWlcIDsKK+S4i+e3miA+IGthc2VuXCA7CivkuIvnt5IgPiBzYWdlb1wgOwor5a6H5a6ZID4gdWNodXVcIDsKK+iukuiotCA+IHphbnNvXCA7CivlrpjlpbMgPiBrYW5qb1wgOwor6Z+z6KmpID4gb25zaGlcIDsKK+S4jee0lCA+IGZ1anVuXCA7CivkuI3ntI0gPiBmdW5vdVwgOwor5LyO5belID4gZ2lrb3VcIDsKK+mfs+iokyA+IG9ua3VuXCA7Civos6LmhJogPiBrZW5ndVwgOwor6IOD5aOBID4gaWhla2lcIDsKK+S9meWRvSA+IHlvbWVpXCA7CivkvJ3lrrYgPiBkZW5rYVwgOwor5p2c5rCPID4gdG91amlcIDsKK+S4jeeyiyA+IGJ1c3VpXCA7Civlppbpm7IgPiB5b3V1blwgOwor6LW05Lu7ID4gZnVuaW5cIDsKK+izpuaApyA+IGZ1c2VpXCA7CivpprTljJYgPiBqdW5rYVwgOwor5LiA57eaID4gaXNzZW5cIDsKK+S4gOe3kiA+IGlzc2hvXCA7Civku6PmiZMgPiBkYWlkYVwgOwor5Luu5oOzID4ga2Fzb3VcIDsKK+ahiOS7tiA+IGFua2VuXCA7CivnjaPnmq4gPiBqdXVoaVwgOwor5LqU5q61ID4gZ29kYW5cIDsKK+izm+aEjyA+IHNhbicnaVwgOwor5p2/5pyoID4gaGFuZ2lcIDsKK+iytOaWuSA+IGtpaG91XCA7Civpo6LmsJEgPiBraW1pblwgOwor5LiA57WxID4gaXR0b3VcIDsKK+mjm+aziSA+IGhpc2VuXCA7CivmnKrnhLYgPiBtaXplblwgOwor6aeQ5LyKID4gY2h1dWlcIDsKK+WlvemkjCA+IGtvdWppXCA7CivmmKDphY0gPiBlaWhhaVwgOwor5a625ZCbID4ga2FrdW5cIDsKK+WtpOW4hiA+IGtvaGFuXCA7CivlrrblkI0gPiBrYW1laVwgOwor5LiA57O7ID4gaWtrZWlcIDsKK+WvoeS6uiA+IGthamluXCA7Civku67mgKcgPiBrYXNlaVwgOwor5L2c5YuVID4gc2Fkb3VcIDsKK+S4gOezuCA+IGlzc2hpXCA7CivlrZflvaIgPiBqaWtlaVwgOwor5LiN562JID4gZnV0b3VcIDsKK+agoeWLmSA+IGtvdW11XCA7CivkurrmmYIgPiBuaW5qaVwgOwor576I57WGID4ga2loYW5cIDsKK+mgreiEsyA+IHp1bm91XCA7CivkvZnli6IgPiB5b3NlaVwgOwor5LiL562JID4ga2F0b3VcIDsKK+mnhuS9vyA+IGt1c2hpXCA7CivkvbPkvosgPiBrYXJlaVwgOwor5LqM5q27ID4gbmlzaGlcIDsKK+WuneWZqCA+IGhvdWtpXCA7CivmnKjngbAgPiBraWJhaVwgOwor5LiL56uvID4ga2F0YW5cIDsKK+S9meWJsCA+IHlvam91XCA7CivnvoXntJcgPiByYXNoYVwgOwor5aWH6bqXID4ga2lyZWlcIDsKK+S7leaJiyA+IHNoaXRlXCA7CivlraTls7YgPiBrb3RvdVwgOwor6aas5Yi4ID4gYmFrZW5cIDsKK+WuruWPuCA+IGd1dWppXCA7CivpppnlkbMgPiBrb3VtaVwgOwor5L2Z5YiGID4geW9idW5cIDsKK+S8neWlhyA+IGRlbmtpXCA7CivnkIbmg7MgPiByaXNvdVwgOwor5L2z5LuAID4ga2FqdXVcIDsKK+S9s+S6uiA+IGthamluXCA7CivkuIDnrqEgPiBpa2thblwgOwor5a6l5ZKMID4geXV1d2FcIDsKK+S9keWKqSA+IHl1dWpvXCA7CivmoKHlhbcgPiBrb3VndVwgOwor6K2w6KuWID4gZ2lyb25cIDsKK+S4gOetiSA+IGl0dG91XCA7Civmm7jnlLsgPiBzaG9nYVwgOwor542y54mpID4gZW1vbm9cIDsKK+iDveS6iyA+IG5vdWppXCA7Civlpa7po5sgPiBmdW5waVwgOwor6IKl5aSnID4gaGlkYWlcIDsKK+S9meWFmiA+IHlvdG91XCA7CivkvZnlhYkgPiB5b2tvdVwgOwor6LGq5rCXID4gZ291a2lcIDsKK+eQhuaApyA+IHJpc2VpXCA7CivmmYLoq5YgPiBqaXJvblwgOwor6K2m6K23ID4ga2VpZ29cIDsKK+iyoOaVsCA+IGZ1c3V1XCA7Civkuozmp5ggPiBuaXlvdVwgOwor576p55y8ID4gZ2lnYW5cIDsKK+afu+WVjyA+IHNhbW9uXCA7CivnkIblv7UgPiByaW5lblwgOwor6Z2S6aasID4gYW91bWFcIDsKK+S9juWIqSA+IHRlaXJpXCA7Civoravoqp4gPiBzZW5nb1wgOwor5pyq5rqAID4gbWltYW5cIDsKK+WutuWGhSA+IGthbmFpXCA7CivkuJbnn6UgPiBzZWNoaVwgOwor5a6a5ZOhID4gdGVpaW5cIDsKK+iyt+aJiyA+IGthaXRlXCA7CivlrrnlhIAgPiB5b3VnaVwgOwor5a6f5ZCmID4gamlwcGlcIDsKK+adpeacnyA+IHJhaWtpXCA7CivkuYPniLYgPiBkYWlmdVwgOwor5a625YWEID4ga2FrZWlcIDsKK+Wto+WtkCA+IGtpc2hpXCA7CivkupXmoYEgPiBpZ2V0YVwgOwor5pqX57+zID4gYW4nJ2VpXCA7CivmnKrmuIggPiBtaXNhaVwgOwor6LK05omAID4ga2lzaG9cIDsKK+WnieiytCA+IGFuZWtpXCA7CivmmYLoqIggPiB0b2tlaVwgOwor6ICB5q+NID4gcm91Ym9cIDsKK+S7luW/tSA+IHRhbmVuXCA7CivlrpvlkI0gPiBhdGVuYVwgOwor5aWz6ZujID4gam9uYW5cIDsKK+WltOmatyA+IGRvcmVpXCA7CivkuJbnm7ggPiBzZXNvdVwgOwor5Luy5bGFID4gbmFrYWlcIDsKK+mhleekuiA+IGtlbmppXCA7CivkuI3nn6UgPiBmdWNoaVwgOwor5a6Y5ZCPID4ga2FucmlcIDsKK+acq+a0viA+IG1hcHBhXCA7CivkvZXlgIsgPiBuYW5rb1wgOwor6Z2e6ZujID4gaGluYW5cIDsKK+S4i+efpSA+IGdlZGppXCA7CivlpKrpvJMgPiB0YWlrb1wgOwor5LiL556wID4ga2FrYW5cIDsKK+mmmeWFtyA+IGtvdWd1XCA7CivpoIjoh74gPiBzaHV5dVwgOwor5pyd5rmvID4gYXNheXVcIDsKK+S6lOabuCA+IGdvc2hvXCA7CivkupTmm7QgPiBnb2tvdVwgOwor5aWU6aasID4gaG9uYmFcIDsKK+iBluaBqSA+IHNlaW9uXCA7Civlq4zmsJcgPiBrZW5raVwgOwor5aeU6KiXID4gaXRha3VcIDsKK+S4jeecoCA+IGZ1bWluXCA7Civkupzml48gPiBhem9rdVwgOwor546L5rOVID4gb3Vob3VcIDsKK+S7geaFiCA+IGppbmppXCA7Civku67lr5MgPiBrYWd1dVwgOwor5LuP5b6SID4gYnV0dG9cIDsKK+eQhuW3pSA+IHJpa291XCA7Civmnb/miLggPiBpdGFkb1wgOwor5Lq65oiRID4gamluZ2FcIDsKK+WutuS+iyA+IGthcmVpXCA7CivosqfmiZMgPiBoaW5kYVwgOwor5L2Z5Lq6ID4geW9uaW5cIDsKK+S7luW6lyA+IHRhdGVuXCA7CivlpKfpu4QgPiBkYWlvdVwgOwor5LiK552AID4gdXdhZ2lcIDsKK+Wkp+m6uyA+IHRhaW1hXCA7CivmnKzmsJcgPiBob25raVwgOwor5Luu5a6aID4ga2F0ZWlcIDsKK+S7luW5tCA+IHRhbmVuXCA7CivogIHmqLkgPiByb3VqdVwgOwor5LuY5bivID4gZnV0YWlcIDsKK+iDjuWFkCA+IHRhaWppXCA7CivmmK/oqo0gPiB6ZW5pblwgOwor6LKg5ouFID4gZnV0YW5cIDsKK+WutuS8nSA+IGthZGVuXCA7Civmmpfnt5ogPiBhbnNlblwgOwor5LiK55uuID4gdXdhbWVcIDsKK+aghOWGoCA+IGVpa2FuXCA7CivkvY7kvqEgPiB0ZWlrYVwgOwor546L5rC0ID4gb3VzdWlcIDsKK+S7iuW+jCA+IGtvbmdvXCA7CivogZblvpIgPiBzZWl0b1wgOwor5LiW55WMID4gc2VrYWlcIDsKK+aghOWFuCA+IGVpdGVuXCA7CivlrZ/lpbMgPiBtb3Vqb1wgOwor6aOb5p2lID4gaGlyYWlcIDsKK+WutuS7pCA+IGthcmVpXCA7Civkuozmm7kgPiBuaXNvdVwgOwor5LqM5pu0ID4gbmlrb3VcIDsKK+WutOS8miA+IGVua2FpXCA7CivpnZLpm7IgPiBzZWl1blwgOwor6aas5LiKID4gYmFqb3VcIDsKK+S4iueariA+IGpvdWhpXCA7CivkuIDnn6IgPiBpc3NoaVwgOwor5L2Z5LiWID4geW9zZWlcIDsKK+mmrOS4gSA+IGJhdGVpXCA7Civlrrbku4AgPiBrYWp1dVwgOwor5qCE5YWJID4gZWlrb3VcIDsKK+WutuS6uiA+IGtlbmluXCA7CivorabooZsgPiBrZWllaVwgOwor5a2d5aWzID4ga291am9cIDsKK+S7geaBlSA+IGppbmpvXCA7CivlrZ/lpI8gPiBtb3VrYVwgOwor5paR6bOpID4gaWthcnVcIDsKK+miqOazoiA+IGZ1dWhhXCA7CivmnaXmj7QgPiByYWllblwgOwor5LuK5bqmID4ga29uZG9cIDsKK+S4i+eWsyA+IGdla2FuXCA7CivkvJrlk6EgPiBrYWlpblwgOwor5Lm+5p6vID4ga2Fua29cIDsKK+WtpOWfjiA+IGtvam91XCA7Civpn7PoibIgPiBuZWlyb1wgOwor5Lm+5p6cID4ga2Fua2FcIDsKK+iAjOadpSA+IGppcmFpXCA7CivmnZzmkrAgPiB6dXNhblwgOwor6K2O6KmQID4ga2lzc2FcIDsKK+S4iueWjyA+IGpvdXNvXCA7CivkuIvnlaogPiBrYWJhblwgOwor5LiN55SoID4gZnV5b3VcIDsKK+iAg+ahiCA+IGtvdWFuXCA7CivkuIvnlYwgPiBnZWthaVwgOwor5LiL55S3ID4gZ2VuYW5cIDsKK+S4i+eUsCA+IGdlZGVuXCA7CivkvY7kuIsgPiB0ZWlrYVwgOwor55CG5a65ID4gcml5b3VcIDsKK+aaluewviA+IG5vcmVuXCA7CivosrTlupcgPiBraXRlblwgOwor5Lm+5pyfID4ga2Fua2lcIDsKK+iAg+afuyA+IGtvdXNhXCA7Civku5blsbEgPiB0YXphblwgOwor5Lyd5Y+XID4gZGVuanVcIDsKK+S4u+a8lCA+IHNodWVuXCA7CivorJ3ovp4gPiBzaGFqaVwgOwor5LqI5patID4geW9kYW5cIDsKK+WtkOWlsyA+IHNoaWpvXCA7CivkurrlvowgPiBqaW5nb1wgOwor546L5qipID4gb3VrZW5cIDsKK+mjm+aVoyA+IGhpc2FuXCA7CivmmpfnrpcgPiBhbnphblwgOwor6IOO5LuUID4gdGFpamlcIDsKK+S7ruWjsCA+IGthc2VpXCA7CivlrIzmhYsgPiBzaGluYVwgOwor572q56eRID4gemFpa2FcIDsKK+iCpeWOmiA+IGhpa291XCA7CivosqDmgKcgPiBmdXNlaVwgOwor5LqS5o+bID4gZ29rYW5cIDsKK+e+jueUtyA+IGJpbmFuXCA7CivpnLLpoZUgPiByb2tlblwgOwor576O55SwID4gYmlkZW5cIDsKK+S8tuS/kCA+IHJlaXJpXCA7CivlpKnprZQgPiB0ZW5tYVwgOwor5a6a5L6hID4gdGVpa2FcIDsKK+mcsumgrSA+IHJvdG91XCA7Civorprnvo4gPiBzYW5iaVwgOwor5LiA55SfID4gaXNzZWlcIDsKK+WuieWFqCA+IGFuemVuXCA7CivkupTmjIcgPiBnb3NoaVwgOwor6IKy5YWQID4gaWt1amlcIDsKK+e9jOeynyA+IGtlc2hpXCA7CivlrqPkuIsgPiBzZW5nZVwgOwor5LuP5a62ID4gYnVra2VcIDsKK+eJueiomCA+IHRva2tpXCA7CivosqjluaMgPiBrYWhlaVwgOwor5a6Y5L2NID4ga2FuJydpXCA7CivkuIDnkrAgPiBpa2thblwgOwor5pei6YGCID4ga2lzdWlcIDsKK+WtteWNtSA+IGZ1cmFuXCA7CivlrozlgpkgPiBrYW5iaVwgOwor6aGM55S7ID4gZGFpZ2FcIDsKK+WlvemBiyA+IGtvdXVuXCA7CivogZblr78gPiBzZWlqdVwgOwor6aOb5o+aID4gaGl5b3VcIDsKK+eQg+WogSA+IGt5dXVpXCA7CivorLnoqbEgPiBraW53YVwgOwor5LiN54qvID4gZnVib25cIDsKK+S7iuWutSA+IGtveW9pXCA7CivlrojlgpkgPiBzaHViaVwgOwor5LqU5oiSID4gZ29rYWlcIDsKK+eMnOeWkSA+IHNhaWdpXCA7CivlrpjkuosgPiBrYW5qaVwgOwor5p2e5oaCID4ga2l5dXVcIDsKK+S7iuWtoyA+IGtvbmtpXCA7CivnkIblpJYgPiByaWdhaVwgOwor6Z2i6YOoID4gbWVuYnVcIDsKK+aYjuiomCA+IG1laWtpXCA7Civku5blp5MgPiB0YXNlaVwgOwor5aWz6YOOID4gam9yb3VcIDsKK+WkqemmrCA+IHRlbmJhXCA7CivosqHluIMgPiBzYWlmdVwgOwor5pyq5p2lID4gbWlyYWlcIDsKK+S4jeeHgyA+IGZ1bmVuXCA7CivkuIDnjK4gPiBpa2tvblwgOwor5LqU5oSfID4gZ29rYW5cIDsKK+aWvemMoCA+IHNlam91XCA7CivlronkvY8gPiBhbmp1dVwgOwor6ICz5bqVID4gaml0ZWlcIDsKK+mdnumBkyA+IGhpZG91XCA7CivkupTmg4UgPiBnb2pvdVwgOwor6Zyn6ZuwID4gbXVmdW5cIDsKK+adv+WxiyA+IGl0YXlhXCA7CivkuIDniqwgPiBpa2tlblwgOwor5LqU5oKqID4gZ29ha3VcIDsKK+WtpuWMuiA+IGdha2t1XCA7Civkurrlr78gPiBqaW5qdVwgOwor5pyJ5qmfID4geXV1a2lcIDsKK+iug+e+jiA+IHNhbmJpXCA7CivkuI7ngrkgPiB5b3RlblwgOwor5LiA54mIID4gaXBwYW5cIDsKK+S6uuWutiA+IGppbmthXCA7CivpoK3nmq4gPiB0b3VoaVwgOwor5pyq5piOID4gbWltZWlcIDsKK+S6kuaBtSA+IGdva2VpXCA7CivkuovmhYsgPiBqaXRhaVwgOwor5p6c5aCxID4ga2Fob3VcIDsKK+mdoui8qiA+IG9tb3dhXCA7Civosqflr4wgPiBoaW5wdVwgOwor54++5aC0ID4gZ2VuYmFcIDsKK+iyp+WutiA+IGhpbmthXCA7CivppIrlrrYgPiB5b3VrYVwgOwor6Kqy6aGMID4ga2FkYWlcIDsKK+mhnueBqyA+IHJ1aWthXCA7CivlrZjlkKYgPiB6b25waVwgOwor5Lqk5beuID4ga291c2FcIDsKK+adv+WtkCA+IGl0YWdvXCA7CivlpaDpg70gPiB0ZW50b1wgOwor5LqL5oOFID4gamlqb3VcIDsKK+iytOWniSA+IGtpc2hpXCA7CivkuojmhJ8gPiB5b2thblwgOwor6IGW5aScID4gc2VpeWFcIDsKK+S7iuWkjyA+IGtvbmthXCA7CivlrZflj7cgPiBqaWdvdVwgOwor5LqI5oOzID4geW9zb3VcIDsKK+S6lOW9qSA+IGdvc2FpXCA7Civku7vli5kgPiBuaW5tdVwgOwor5pa56YeMID4gaG91cmlcIDsKK+eOi+aUvyA+IG91c2VpXCA7CivlraPliIogPiBraWthblwgOwor5p625Y+wID4ga2FkYWlcIDsKK+e+jueCuSA+IGJpdGVuXCA7Civkuozlv7UgPiBuaW5lblwgOwor6Kyb6KmxID4ga291d2FcIDsKK+S4gOeCuSA+IGl0dGVuXCA7Civos5vlkKYgPiBzYW5waVwgOwor5aSn6ZuoID4gb29hbWVcIDsKK+WklemkiSA+IHl1dWdlXCA7CivlpKrpmbAgPiB0YWlpblwgOwor5pyd5pelID4gYXNhaGlcIDsKK+S7o+WToSA+IGRhaWluXCA7CivkuIrmvJQgPiBqb3VlblwgOwor6Zuy6auYID4gdW5rb3VcIDsKK+S6lOW4uCA+IGdvam91XCA7Civmlofpm4UgPiBidW5nYVwgOwor5Lqk5bC+ID4ga291YmlcIDsKK+S4jea6gCA+IGZ1bWFuXCA7CivotIjkuI4gPiB6b3V5b1wgOwor5Lmx5omTID4gcmFuZGFcIDsKK+WklumhjCA+IGdlZGFpXCA7CivniaHooKMgPiBib3JlaVwgOwor5aWu6LW3ID4gZnVua2lcIDsKK+S6uuWkqyA+IG5pbnB1XCA7CivogLblrKIgPiB5YWpvdVwgOwor5LqS5biCID4gZ29zaGlcIDsKK+mkiuWlsyA+IHlvdWpvXCA7CivlpoToqp4gPiBtb3Vnb1wgOwor6LKe5ammID4gdGVpZnVcIDsKK+e+qeawkSA+IGdpbWluXCA7CivlpJrpnaIgPiB0YW1lblwgOwor6ICz5a2UID4gamlrb3VcIDsKK+iqnumhniA+IGdvcnVpXCA7CivmlrnpgJQgPiBob3V0b1wgOwor5LuP5ZmoID4gYnVra2lcIDsKK+S6pOWunCA+IGtvdWdpXCA7Civml6XoqrIgPiBuaWtrYVwgOwor6IGv5Y+lID4gcmVua3VcIDsKK+iqnumgrSA+IGdvdG91XCA7CivkupzlsZ4gPiBhem9rdVwgOwor5pyJ5pyfID4geXV1a2lcIDsKK+izm+WKqSA+IHNhbmpvXCA7Civoqp7poIYgPiBnb2p1blwgOwor5Li75p+7ID4gc2h1c2FcIDsKK+Wto+WAmSA+IGtpa291XCA7CivlpJrpm6MgPiB0YW5hblwgOwor5a2X5YW4ID4gaml0ZW5cIDsKK+iytOWcsCA+IGtpY2hpXCA7Civku6PljbAgPiBkYWlpblwgOwor576p5q2vID4gZ2lzaGlcIDsKK+WlveiqvCA+IGtvdWdpXCA7CivkuI3mtYQgPiBmdWpvdVwgOwor5pel6KiYID4gbmlra2lcIDsKK+S7peWMlyA+IGlob2t1XCA7CivlrZDliIYgPiBrb2J1blwgOwor54yb54GrID4gbW91a2FcIDsKK+WklumcgCA+IGdhaWp1XCA7CivlrabkvY0gPiBnYWt1aVwgOwor5pys5omLID4gaG9udGVcIDsKK+adpeWtoyA+IHJhaWtpXCA7Civosp7lpbMgPiB0ZWlqb1wgOwor6Z+z56iLID4gb250ZWlcIDsKK+e/u+aEjyA+IGhvbicnaVwgOwor6KyA6K2wID4gYm91Z2lcIDsKK+S4jeazlSA+IGZ1aG91XCA7Civnvo7muK8gPiBiaWtvdVwgOwor5Luj5YuZID4gZGFpbXVcIDsKK+S4jeayuyA+IGZ1Y2hpXCA7CivnvoXmvKIgPiByYWthblwgOwor6aSs5Y+jID4ga29rb3VcIDsKK+e9ueeBvSA+IHJpc2FpXCA7CivmnKrmiJAgPiBtaXNlaVwgOwor5pyA5pyfID4gc2FpZ29cIDsKK+mbqumnhCA+IHNldHRhXCA7CivlpJXpmb0gPiB5dXVoaVwgOwor5aSc6ZaTID4geWFrYW5cIDsKK+S6oeWppiA+IGJvdWZ1XCA7CivlpYfpgYcgPiBraWd1dVwgOwor5pu45p62ID4gc2hva2FcIDsKK+iAgeW+jCA+IHJvdWdvXCA7Civku4DlmaggPiBqdXVraVwgOwor5peF6LK7ID4gcnlvaGlcIDsKK+S6leWuiCA+IGltb3JpXCA7CivpnZLosp0gPiBhb2dhaVwgOwor5LiL5rC0ID4gZ2VzdWlcIDsKK+S6lOWumCA+IGdva2FuXCA7CivlpYjovrogPiBuYWhlblwgOwor5pW06ZmkID4gc2Vpam9cIDsKK+S4jeavmyA+IGZ1bW91XCA7CivkuIvmsJEgPiBnZW1pblwgOwor5pys5oSPID4gaG9uJydpXCA7Civlq4zmgqogPiBrZW4nJ29cIDsKK+aXp+ihoyA+IGt5dXVpXCA7CivosqflnJ8gPiBoaW5kb1wgOwor5pei6KO9ID4ga2lzZWlcIDsKK+mbu+mboiA+IGRlbnJpXCA7CivkuIrmsJcgPiBqb3VraVwgOwor6aGe5q+UID4gcnVpaGlcIDsKK+mjouWvkiA+IGtpa2FuXCA7CivkuIDmtJcgPiBpc3NlblwgOwor5LiL5q6/ID4gZ2VkZW5cIDsKK+S4jeatuyA+IGZ1c2hpXCA7CivkuIvmrrUgPiBnZWRhblwgOwor6Zu26ZyyID4gcmVpcm9cIDsKK+S4jeatoyA+IGZ1c2VpXCA7CivkuozlsIEgPiBuaWZ1dVwgOwor6Zu36ZuyID4gcmFpdW5cIDsKK+Wtl+S9kyA+IGppdGFpXCA7CivmnJ/miJAgPiBraXNlaVwgOwor5LuW5YuVID4gdGFkb3VcIDsKK+mhnuatjCA+IHJ1aWthXCA7CivorIHoposgPiBla2tlblwgOwor5Lqh5aSrID4gYm91ZnVcIDsKK+S4iuatryA+IHV3YWJhXCA7Civkuozlrq4gPiBuaWd1dVwgOwor5paX6YWSID4gdG9zaHVcIDsKK+S7luWKsSA+IHRhcmVpXCA7CivkuI3mrIQgPiBmdXJhblwgOwor54+t5ZOhID4gaGFuaW5cIDsKK+irt+iqpiA+IGZ1dWp1XCA7Civlq4zlv4wgPiBrZW5naVwgOwor5LuK5Y+kID4ga2lua29cIDsKK+irruitsCA+IHNoaWdpXCA7CivkuInmrKEgPiBzYW5qaVwgOwor5LiA5rC0ID4gaXNzdWlcIDsKK+S7h+WQjSA+IGFkYW5hXCA7CivkuojlrpogPiB5b3RlaVwgOwor6LK05ZCbID4ga2lrdW5cIDsKK+aWrei3ryA+IGRhbnJvXCA7Civni7znhZkgPiByb3VlblwgOwor6LK05ZCNID4ga2ltZWlcIDsKK+iytOWPsCA+IGtpZGFpXCA7Civku67ku6QgPiB0YXRvZVwgOwor5LiA5q61ID4gaXR0YW5cIDsKK+Wls+ijhSA+IGpvc291XCA7CivniZvokqEgPiBnb2JvdVwgOwor5pqX54S2ID4gYW56ZW5cIDsKK+S4gOatuyA+IGlzc2hpXCA7CivkuIDmrbMgPiBpc3NhaVwgOwor5p2l5aC0ID4gcmFpYmFcIDsKK+iqsumHkSA+IGtha2luXCA7Civpn7Pnm6QgPiBvbmJhblwgOwor5LuL5YqpID4ga2Fpam9cIDsKK+S4h+apnyA+IGJhbmtpXCA7Civpo6/loLQgPiBoYW5iYVwgOwor576K5q2vID4gc2hpZGFcIDsKK+miqOaDhSA+IGZ1emVpXCA7Civku6PkvqEgPiBkYWlrYVwgOwor5p625LiKID4ga2Fqb3VcIDsKK+WjsOmfsyA+IHNlaW9uXCA7CivmmpfngrkgPiBhbnRlblwgOwor54u854GrID4gcm91a2FcIDsKK+S7leWEgCA+IHNoaWdpXCA7CivmmpbngokgPiBkYW5yb1wgOwor6Z2e6KGMID4gaGlrb3VcIDsKK+S5vuWtoyA+IGthbmtpXCA7CivlpKfpg6ggPiBkYWlidVwgOwor5aWJ6LOAID4gaG91Z2FcIDsKK+ixquWutiA+IGdvdWthXCA7CivmmYLnqbogPiBqaWt1dVwgOwor6Z+z55e0ID4gb25jaGlcIDsKK+acn+W+hSA+IGtpdGFpXCA7Civmlofpg6ggPiBtb25idVwgOwor5LqV5aCwID4gaXNla2lcIDsKK+Wkp+mBjiA+IHRhaWthXCA7CivmmpfmvrkgPiBhbnRhblwgOwor546L5birID4gb3VzaGlcIDsKK+ipsemhjCA+IHdhZGFpXCA7CivkuovlpKcgPiBqaWRhaVwgOwor5aSa6YeNID4gdGFqdXVcIDsKK+ipsemgrSA+IHdhdG91XCA7Civkuozlo6sgPiBuaXNoaVwgOwor5LqL5aSJID4gamloZW5cIDsKK+aZqeeUnyA+IG9rdXRlXCA7Civpm6jplpMgPiBhbWFhaVwgOwor5aaW6Im2ID4geW91ZW5cIDsKK+WklumHjiA+IGdhaXlhXCA7CivkuIvmoKEgPiBnZWtvdVwgOwor54++5L6hID4gZ2Vua2FcIDsKK+irluitsCA+IHJvbmdpXCA7CivosqDlj7cgPiBmdWdvdVwgOwor6Kmm6aOyID4gc2hpaW5cIDsKK+iqremBjiA+IGRva2thXCA7CivmmI7nvo4gPiBtZWliaVwgOwor5LuY5LyaID4gZnVrYWlcIDsKK+iytOWFrCA+IGtpa291XCA7Civoq4vosqAgPiB1a2VvaVwgOwor5Li75oiRID4gc2h1Z2FcIDsKK+mjveWSjCA+IGhvdXdhXCA7CivkuozloYEgPiBuaXJ1aVwgOwor6Kqk6YWNID4gZ29oYWlcIDsKK+iytOWFhCA+IGtpa2VpXCA7CivlpYforaYgPiBraWtlaVwgOwor6Zui6ZaTID4gcmlrYW5cIDsKK+e/u+WtlyA+IGhvbmppXCA7Civpo5vloLEgPiBoaWhvdVwgOwor6LK05YOnID4ga2lzb3VcIDsKK+e5i+i+niA+IGtlaWppXCA7Civml6Xoj68gPiBuaWtrYVwgOwor5LqI5aCxID4geW9ob3VcIDsKK+S7luS6uiA+IHRhbmluXCA7Civpm4Tpo5sgPiB5dXVoaVwgOwor5aSW6YOoID4gZ2FpYnVcIDsKK+irluiqniA+IHJvbmdvXCA7Civmm5zml6UgPiB5b3ViaVwgOwor6ICB5ammID4gcm91ZnVcIDsKK+WklumDjiA+IHVpcm91XCA7CivpnZLonb8gPiBhb2JhZVwgOwor572o5rOVID4gYW5wb3VcIDsKK+aal+a4oCA+IGFua3lvXCA7CivogIHlqYYgPiByb3ViYVwgOwor5aWH6KuHID4ga2lkYW5cIDsKK+iyoeWLmSA+IHphaW11XCA7CivkuIvmm7ggPiBnZXNob1wgOwor5Lqt5Y2IID4gdGVpZ29cIDsKK+aWveihjCA+IHNla291XCA7CivkuIDmoKEgPiBpa2tvdVwgOwor5pyA5oSbID4gc2FpYWlcIDsKK+abluaYpyA+IGFpbWFpXCA7Civml6noi5cgPiBzYW5hZVwgOwor5LiH5py2ID4gYmFuZGFcIDsKK+acrOWutiA+IGhvbmtlXCA7CivlpJbpgZMgPiBnZWRvdVwgOwor5aqa5oWLID4gYml0YWlcIDsKK+aZguefrSA+IGppdGFuXCA7CivmmpfmtpkgPiBhbnJ1aVwgOwor5pyJ5b+DID4gdXNoaW5cIDsKK+ePvuS4liA+IGdlbnplXCA7Civkuozlm54gPiBuaWthaVwgOwor54++5LiLID4gZ2Vua2FcIDsKK+aaouawlyA+IG5vbmtpXCA7CivogIHlppMgPiByb3VnaVwgOwor5pyq5a6aID4gbWl0ZWlcIDsKK+iAleWcnyA+IGtvdWRvXCA7CivmnKzlrZcgPiBob25qaVwgOwor5LiN5piTID4gZnVla2lcIDsKK+S6pOWPiSA+IGtvdXNhXCA7CivmnKrlrowgPiBtaWthblwgOwor5aWH6KiIID4ga2lrZWlcIDsKK+S4jeaYjiA+IGZ1bWVpXCA7Civosrzku5ggPiB0ZW5wdVwgOwor5pyr5a2jID4gbWFra2lcIDsKK+iAgeWlsyA+IHJvdWpvXCA7CivkuLvmgakgPiBzaHVvblwgOwor5LiA5p2vID4gaXBwYWlcIDsKK+e+juacrCA+IGJpaG9uXCA7CivkuInmmYIgPiBzYW5qaVwgOwor5LiK5pigID4gam91ZWlcIDsKK+Wlh+imsyA+IGtpa2FuXCA7CivnjovlrasgPiBvdXNvblwgOwor5LiL5pesID4gZ2VqdW5cIDsKK+S4jeaWrSA+IGZ1ZGFuXCA7CivkuIDmnKwgPiBpcHBvblwgOwor5LiN5paJID4gZnVzZWlcIDsKK+S4jeaWhyA+IGZ1YnVuXCA7CivmnZDlmaggPiB6YWlraVwgOwor5LiL5pa5ID4ga2Fob3VcIDsKK+S4jeaVtCA+IGZ1c2VpXCA7CivkuI3mlawgPiBmdWtlaVwgOwor5LiJ5pelID4gbWlra2FcIDsKK+S4gOabuSA+IGlzc291XCA7CivkuIDmm7ggPiBpc3Nob1wgOwor5pmC55u4ID4gamlzb3VcIDsKK+S4gOabtCA+IGlra291XCA7Civlp4vnpZYgPiBzaGlzb1wgOwor5LiN5pWXID4gZnVoYWlcIDsKK+S4jeaVjyA+IGZ1YmluXCA7CivlpKnos6YgPiB0ZW5wdVwgOwor6LGO5a2QID4ganVzaGlcIDsKK+ixiuWvjCA+IGhvdWZ1XCA7Civnvo7mma8gPiBiaWtlaVwgOwor6Zyy6KaLID4gcm9rZW5cIDsKK+e+qeaMmSA+IGdpa3lvXCA7CivkuIvmlL4gPiBrYWhvdVwgOwor6KuH6KmxID4gZGFud2FcIDsKK+acgOW+jCA+IHNhaWdvXCA7CivosrTkurogPiBraWppblwgOwor5pWs6YGgID4ga2VpZW5cIDsKK+acquWpmiA+IG1pa29uXCA7CivmnJ3lr50gPiBhc2FuZVwgOwor6LK45LiOID4gdGFpeW9cIDsKK+S6mOWPpCA+IGtvdWtvXCA7CivmmpbmsJcgPiBub25raVwgOwor5Lm+5Zu6ID4ga2Fua29cIDsKK+S4jeaSkyA+IGZ1dG91XCA7CivntrrpupcgPiBraXJlaVwgOwor6LKg5YK1ID4gZnVzYWlcIDsKK+S5meWtkCA+IG90b2dvXCA7CivlqZrmnJ8gPiBrb25raVwgOwor5aSn6LGGID4gZGFpenVcIDsKK+ism+e+qSA+IGtvdWdpXCA7Civpm6jph48gPiB1cnlvdVwgOwor5LiA5pemID4gaXR0YW5cIDsKK+Wlh+ihjCA+IGtpa291XCA7CivkurrkvY0gPiBqaW4nJ2lcIDsKK+e+qeaJiyA+IGdpc2h1XCA7Civnvo7mlocgPiBiaWJ1blwgOwor5LiA5pa5ID4gaXBwb3VcIDsKK+aakeawlyA+IHNob2tpXCA7CivkuIDmlqQgPiBpa2tpblwgOwor576p5oimID4gZ2lzZW5cIDsKK+S4gOaWkSA+IGlwcGFuXCA7CivkuIDmlokgPiBpc3NlaVwgOwor6Kq56KyXID4gaGlib3VcIDsKK+aXl+iJpiA+IGtpa2FuXCA7Civnt4vpr4kgPiBoaWdvaVwgOwor5LiA5pWXID4gaXBwYWlcIDsKK+e+iOaXhSA+IGtpcnlvXCA7CivkupTljYEgPiBnb2p1dVwgOwor576p5oakID4gZ2lmdW5cIDsKK+S6jOWQmyA+IG5pa3VuXCA7CivkuJbmiY0gPiBzZXNhaVwgOwor6LKr5Li7ID4ga2FuanVcIDsKK+S6jOWPtyA+IG5pZ291XCA7CivmnIDlt6YgPiBzYWlzYVwgOwor5pyq5aK+ID4gbWlrb25cIDsKK+S6oeWFkCA+IGJvdWppXCA7Civmm7jluqsgPiBzaG9rb1wgOwor5pys5aC0ID4gaG9uYmFcIDsKK+mbu+i3ryA+IGRlbnJvXCA7CivlpJbosqggPiBnYWlrYVwgOwor5LmZ5aWzID4gb3RvbWVcIDsKK+aWh+iqniA+IGJ1bmdvXCA7CivkuJbmhYsgPiBzZXRhaVwgOwor546p5ZGzID4gZ2FubWlcIDsKK+mhp+aFriA+IGtvcnlvXCA7CivoqpjotbcgPiB5dXVraVwgOwor5LiN5omNID4gZnVzYWlcIDsKK+WknOitpiA+IHlha2VpXCA7CivpmqDpoZUgPiBpbmtlblwgOwor5LiN5oimID4gZnVzZW5cIDsKK+eOi+WfjiA+IG91am91XCA7CivkuIDmjoMgPiBpc3NvdVwgOwor5LiK5omLID4gam91enVcIDsKK+acrOWcnyA+IGhvbmRvXCA7CivkuJbmg4UgPiBzZWpvdVwgOwor5LiK5oi4ID4gam91Z29cIDsKK+e+juaMmSA+IGJpa3lvXCA7CivlpJrorJ0gPiB0YXNoYVwgOwor5LiN5oarID4gZnViaW5cIDsKK+S6i+WJjSA+IGppemVuXCA7CivkuIDmjJkgPiBpa2t5b1wgOwor6Zui6L6yID4gcmlub3VcIDsKK+S4h+aIuCA+IGJhbmtvXCA7CivkuIDmjIcgPiBpc3NoaVwgOwor6Z+z5rqQID4gb25nZW5cIDsKK+S4jeaFriA+IGZ1cnlvXCA7CivogLPku4sgPiBqaWthaVwgOwor5LqM5YiGID4gbmlidW5cIDsKK+aaq+aZgiA+IHphbmppXCA7CivmmI7npLogPiBtZWlqaVwgOwor5aOu6YCUID4gc291dG9cIDsKK+S4u+WutiA+IHNodWthXCA7CivpmqDpnaIgPiBpbm1lblwgOwor5Lqk5LuYID4ga291ZnVcIDsKK+iotOmhmCA+IHNvZ2FuXCA7CivkuI3mhI0gPiBmdWJpblwgOwor576p5byfID4gZ2l0ZWlcIDsKK+eItuiAgSA+IGZ1cm91XCA7CivnjoflnJ8gPiBzb3R0b1wgOwor5Lqk5LqSID4ga291Z29cIDsKK+iqpOiqjSA+IGdvbmluXCA7Civpm6rouI8gPiBzZXR0YVwgOwor5aSp6KGjID4gdGVuJydpXCA7CivpnaLnvbUgPiBtZW5iYVwgOwor5LiA5omNID4gaXNzYWlcIDsKK+S6i+WFuCA+IGppdGVuXCA7CivlpJboqp4gPiBnYWlnb1wgOwor5aSa6KiAID4gdGFnZW5cIDsKK+S4gOaIpiA+IGlzc2VuXCA7CivkuIvmg4UgPiBrYWpvdVwgOwor5LqU5YCrID4gZ29yaW5cIDsKK+iAleWFtyA+IGtvdWd1XCA7CivkupTlgI0gPiBnb2JhaVwgOwor6aCG5qyhID4ganVuamlcIDsKK+eKoOeJsiA+IGdpc2VpXCA7CivoqqTop6MgPiBnb2thaVwgOwor6Kqj6KiAID4gZnVnZW5cIDsKK+abuOWutiA+IHNob2thXCA7CivpoZjmhI8gPiBnYW4nJ2lcIDsKK+iqnuiqjCA+IGdvc2hpXCA7Civoqa3pgZMgPiBraWRvdVwgOwor5Li75ammID4gc2h1ZnVcIDsKK+aZr+awlyA+IGtlaWtpXCA7CivkuI3lv6sgPiBmdWthaVwgOwor6aKo5ZyfID4gZnV1ZG9cIDsKK+S4reWwiSA+IGNodXVpXCA7Civpm6Pot68gPiBuYW5yb1wgOwor54eD6LK7ID4gbmVucGlcIDsKK+e+juaEnyA+IGJpa2FuXCA7CivmnInlpKsgPiB5dXVmdVwgOwor5LqU5L2TID4gZ290YWlcIDsKK+iAgeWMliA+IHJvdWthXCA7CivmnInlpI8gPiB5dXVrYVwgOwor5auM5ZGzID4gaXlhbWlcIDsKK+S4gOaEjyA+IGljaGlpXCA7Civmma7mrrUgPiBmdWRhblwgOwor5LqM5YCNID4gbmliYWlcIDsKK+iumuatjCA+IHNhbmthXCA7CivkuIvlvqEgPiBnZWd5b1wgOwor546p5YW3ID4gZ2FuZ3VcIDsKK+iprei+ryA+IGtpYmVuXCA7CivkuI3lvZMgPiBmdXRvdVwgOwor5aWl576pID4gb2t1Z2lcIDsKK+mbu+ipsSA+IGRlbndhXCA7CivkuJbluK8gPiBzZXRhaVwgOwor5pmC54K5ID4gaml0ZW5cIDsKK+aVrOiqniA+IGtlaWdvXCA7CivlpJzooYwgPiB5YWtvdVwgOwor54yb5omTID4gbW91ZGFcIDsKK+mcgOimgSA+IGp1eW91XCA7CivlpKfom4cgPiBkYWlqYVwgOwor5LiL5bymID4ga2FnZW5cIDsKK+acseWNsCA+IHNodWluXCA7CivkuovkvosgPiBqaXJlaVwgOwor5aSW6KKrID4gZ2FpaGlcIDsKK+S6i+S9kyA+IGppdGFpXCA7CivmnIDlpJogPiBzYWl0YVwgOwor54m555WwID4gdG9rdWlcIDsKK+S4jeW5uCA+IGZ1a291XCA7CivpoqjllqkgPiBmdXV5dVwgOwor5LiN5bmzID4gZnVoZWlcIDsKK+mhleW+riA+IGtlbmJpXCA7CivlpbPns7sgPiBqb2tlaVwgOwor6LC35ZywID4geWFjaGlcIDsKK+S4iuW6pyA+IGpvdXphXCA7CivnuIHovrogPiBlbnBlblwgOwor6ZuE6YCUID4geXV1dG9cIDsKK+S6i+S7tiA+IGppa2VuXCA7CivkuInluqYgPiBzYW5kb1wgOwor5LiJ5bqcID4gc2FucHVcIDsKK+aUr+mDqCA+IHNoaWJ1XCA7Civnvo7lvaIgPiBiaWtlaVwgOwor5aq+5ZKMID4ga291d2FcIDsKK+eItuezuyA+IGZ1a2VpXCA7CivkuZflk6EgPiBqb3VpblwgOwor5LqI5LukID4geW9yZWlcIDsKK+aUr+mCoyA+IHNoaW5hXCA7CivkuIvlt7sgPiBnZWthblwgOwor5LqM5LmXID4gbmlqb3VcIDsKK+S4iuW4gyA+IGpvdWZ1XCA7CivogIHlhJIgPiByb3VqdVwgOwor5pys5YuZID4gaG9ubXVcIDsKK+S6jOS4liA+IG5pc2VpXCA7CivkuozkuIkgPiBuaXNhblwgOwor6K2y5rihID4gam91dG9cIDsKK+miqOWRsyA+IGZ1dW1pXCA7CivnvqnlrZAgPiBnaXNoaVwgOwor5Lmd5Y2BID4ga3VqdXVcIDsKK+e9ueaCoyA+IHJpa2FuXCA7CivmnKrliLAgPiBtaXRvdVwgOwor6K235rOVID4gZ29ob3VcIDsKK+iAjOS7iiA+IGppa29uXCA7CivosZrlhZAgPiB0b25qaVwgOwor5LiA5bivID4gaXR0YWlcIDsKK+iug+atjCA+IHNhbmthXCA7Civml7rnm5sgPiBvdXNlaVwgOwor5pyq5YiKID4gbWlrYW5cIDsKK+mbo+iqniA+IG5hbmdvXCA7CivmlYXosrcgPiBrb2JhaVwgOwor6ZuR6LK7ID4gemFwcGlcIDsKK+eOi+WItiA+IG91c2VpXCA7CivkuLvlm6AgPiBzaHVpblwgOwor5pyx5YSSID4gc2h1anVcIDsKK+mbkeiyqCA+IHpha2thXCA7CivlpYfogZ4gPiBraWJ1blwgOwor5LiN5bC9ID4gZnVqaW5cIDsKK+S4i+WxsSA+IGdlemFuXCA7CivmlZfoqLQgPiBoYWlzb1wgOwor5LiL5bGkID4ga2Fzb3VcIDsKK+WjsOiqiSA+IHNlaXlvXCA7Civpm4XotqMgPiBnYXNodVwgOwor5LiK5bGLID4gdXdheWFcIDsKK+eOi+WGoCA+IG91a2FuXCA7CivpoqjljJYgPiBmdXVrYVwgOwor5aOu6KqeID4gc291Z29cIDsKK+S5l+WLmSA+IGpvdW11XCA7CivmmrTlvpIgPiBib3V0b1wgOwor546L5YWsID4gb3Vrb3VcIDsKK+e+qeWniSA+IGdpc2hpXCA7CivkuI3lrqMgPiBmdXNlblwgOwor576p5aa5ID4gZ2ltYWlcIDsKK+eOi+WFmiA+IG91dG91XCA7CivkuI3lrpogPiBmdXRlaVwgOwor5LiJ5bCJID4gc2FuJydpXCA7CivpmbrpmLsgPiBrZW5zb1wgOwor5LiN5a2dID4gZnVrb3VcIDsKK+S4h+WvvyA+IGJhbmp1XCA7Civoqa7orbAgPiBzZW5naVwgOwor6aGe5a2XID4gcnVpamlcIDsKK+mZjemtlCA+IGdvdW1hXCA7CivlpKnoirEgPiB0ZW5rYVwgOwor6Z+z5qCTID4gb25zZW5cIDsKK+e+qeWjqyA+IGdpc2hpXCA7CivkuIDlsaQgPiBpc3NvdVwgOwor6Z+75pu4ID4gaW5zaG9cIDsKK+aWveexsyA+IHNlbWFpXCA7CivoqZ7os6YgPiBzaGlmdVwgOwor5pyf5YaFID4ga2luYWlcIDsKK+aXouefpSA+IGtpY2hpXCA7CivorbLmrakgPiBqb3Vob1wgOwor6Kmt6KyAID4ga2lib3VcIDsKK+aWh+iLkSA+IGJ1bmVuXCA7CivpnZnnqY8gPiBzZWlvblwgOwor5py65LiKID4ga2lqb3VcIDsKK+mZsOmZuiA+IGlua2VuXCA7CivkuIDlsIkgPiBpY2hpaVwgOwor5LiA5bCBID4gaXBwdXVcIDsKK+e+juWuuSA+IGJpeW91XCA7CivmmanmnJ8gPiBiYW5raVwgOwor57mB6I+vID4gaGFua2FcIDsKK+mgu+W6piA+IGhpbmRvXCA7Civoq4fnvqkgPiBkYW5naVwgOwor6Zqg6YGBID4gaW50b25cIDsKK+mdnuekvCA+IGhpcmVpXCA7CivmnKzkvY0gPiBob24nJ2lcIDsKK+S4gOWumiA+IGl0dGVpXCA7Civnjovkvq8gPiBvdWtvdVwgOwor6aCT5oyrID4gdG9uemFcIDsKK+S4geWtlyA+IHRlaWppXCA7Civpm5HoqJggPiB6YWtraVwgOwor5LiN5aeZID4gZnVuaW5cIDsKK+maoOmAgCA+IGludGFpXCA7CivpnbHnmq4gPiBqaW5waVwgOwor6aKo5YSAID4gZnV1Z2lcIDsKK+ipqeiqniA+IHNoaWdvXCA7Civoqa3oqIggPiBraWtlaVwgOwor6Zmk6ZycID4gam9zb3VcIDsKK+WogeacjSA+IGlmdWt1XCA7CivpmaTpnIogPiBqb3JlaVwgOwor5LiN5aaKID4gZnVuaW5cIDsKK+WhqemhniA+IGVucnVpXCA7CivpmbDploAgPiBpbm1vblwgOwor5pen55e+ID4ga3l1dWFcIDsKK+mfu+aWhyA+IGluYnVuXCA7CivnuIHoq4cgPiBlbmRhblwgOwor6Z2t55quID4gamlucGlcIDsKK+acgOWPpCA+IHNhaWtvXCA7CivnuYHojIIgPiBoYW5tb1wgOwor5aSa6Iq4ID4gdGFnZWlcIDsKK+mZpOmaiiA+IGpvdGFpXCA7CivlqZrlrrYgPiBrb25rYVwgOwor5LiN5aSJID4gZnVoZW5cIDsKK+mhjOWtlyA+IGRhaWppXCA7CivkuInlpbMgPiBzYW5qb1wgOwor5aSW6IuRID4gZ2FpZW5cIDsKK+acq+S4liA+IG1hc3NlXCA7CivmnInliKkgPiB5dXVyaVwgOwor5LiL5aOrID4ga2FzaGlcIDsKK+S4ieWkjyA+IHNhbmthXCA7CivniaHniZsgPiBvdXNoaVwgOwor5LiH5aSrID4gYmFucHVcIDsKK+S4u+WLmSA+IHNodW11XCA7CivniYjnlLsgPiBoYW5nYVwgOwor6Kut56S6ID4geXVzaGlcIDsKK+mbu+iNtyA+IGRlbmthXCA7Civpm4XoqIAgPiBnYWdlblwgOwor5LiN5aCqID4gZnVrYW5cIDsKK+aal+W9sSA+IGFuJydlaVwgOwor6Z2S56OBID4gc2VpamlcIDsKK+eEoemiqCA+IG11ZnV1XCA7CivpnaLnmq4gPiBtZW5waVwgOwor6aCt5be+ID4genVraW5cIDsKK+Wkp+e+qSA+IHRhaWdpXCA7CivnhKHpoZ4gPiBtdXJ1aVwgOwor576O5aSnID4gYmlkYWlcIDsKK+e3mui3ryA+IHNlbnJvXCA7CivnhKHpoYwgPiBtdWRhaVwgOwor54Sh6aC8ID4gYnVyYWlcIDsKK+ippuijnCA+IHNoaWhvXCA7CivpoJHmhJogPiBnYW5ndVwgOwor5LiA5aSpID4gaXR0ZW5cIDsKK+e+juWjsCA+IGJpc2VpXCA7CivlpJrog70gPiB0YW5vdVwgOwor5LiL5Z+OID4gZ2Vqb3VcIDsKK+aYr+atoyA+IHplc2VpXCA7CivkuIDlpIkgPiBpcHBlblwgOwor57235a6YID4gaGlrYW5cIDsKK+aVo+iPryA+IHNhbmdlXCA7CivkuIDlo6sgPiBpc3NoaVwgOwor5LiL5Z6CID4ga2FzdWlcIDsKK+Wkj+iHsyA+IGdlc2hpXCA7Civnt4/ouqsgPiBzb3VtaVwgOwor5LiN5ZyoID4gZnV6YWlcIDsKK+S4reWMuyA+IGNodXVpXCA7CivoqqTogZ4gPiBnb2J1blwgOwor5LiA5aCxID4gaXBwb3VcIDsKK+S4iuWbsyA+IGpvdXp1XCA7CivpnaLnlLsgPiBtZW5nYVwgOwor54WZ6YGTID4gZW5kb3VcIDsKK+Wls+eUnyA+IGpvc2VpXCA7CivnhKHpm7sgPiBtdWRlblwgOwor54Sh6ZujID4gYnVuYW5cIDsKK+WkluiAsyA+IGdhaWppXCA7CivpnZ7nlaogPiBoaWJhblwgOwor6aGn5ZWPID4ga29tb25cIDsKK+acieS+oSA+IHl1dWthXCA7CivmnInkvZkgPiB5dXV5b1wgOwor6Kej6ZuiID4ga2FpcmlcIDsKK+eEoemZkCA+IG11Z2VuXCA7Civop6Ppm4cgPiBrYWlrb1wgOwor5LiN5ZaEID4gZnV6ZW5cIDsKK+mbquiKsSA+IHNla2thXCA7Civmm6Dlj6QgPiBrb3Vrb1wgOwor6Kej6ZmkID4ga2Fpam9cIDsKK+S4jeWVjyA+IGZ1bW9uXCA7CivkuIDlm54gPiBpa2thaVwgOwor6ZmE6ZqPID4gZnV6dWlcIDsKK+e5iue2rSA+IHNlbicnaVwgOwor5pyJ5LqLID4geXV1amlcIDsKK+S4i+WVjyA+IGthbW9uXCA7CivmmI7msrsgPiBtZWlqaVwgOwor5LiZ5Y2IID4gaGVpZ29cIDsKK+e+qeWLhyA+IGdpeXV1XCA7CivpoJLluIMgPiBoYW5wdVwgOwor6KuW56C0ID4gcm9ucGFcIDsKK+e9teWjsCA+IGJhc2VpXCA7CivkuIvlk4EgPiBnZWhpblwgOwor6Ziy6Z+zID4gYm91b25cIDsKK+aciOS4iyA+IGdla2thXCA7CivoqJjovIkgPiBraXNhaVwgOwor6KiT6L6eID4ga3VuamlcIDsKK+WkoueyviA+IG11c2VpXCA7CivkuIvlkb0gPiBrYW1laVwgOwor5Li75LqLID4gc2h1amlcIDsKK+Wklue4gSA+IGdhaWVuXCA7CivkuI3lkIwgPiBmdWRvdVwgOwor6Z+z5oSfID4gb25rYW5cIDsKK+aZguaWhyA+IGppYnVuXCA7CivlpYfnn6UgPiBraWNoaVwgOwor57eP6K2cID4gc291ZnVcIDsKK+S4i+WQkSA+IGdla291XCA7CivkuIvlkI0gPiBrYW1laVwgOwor6Kyb5ryUID4ga291ZW5cIDsKK+S4jeWPgiA+IGZ1c2FuXCA7CivpoIbluo8gPiBqdW5qb1wgOwor6aGe5Y+lID4gcnVpa3VcIDsKK+S4iuWPpSA+IGpvdWt1XCA7CivkuIrlj6QgPiBqb3Vrb1wgOwor5pyA5LiLID4gc2Fpa2FcIDsKK+maoOimiyA+IGlua2VuXCA7CivnvqnlhbUgPiBnaWhlaVwgOwor5LiJ5Y+JID4gc2Fuc2FcIDsKK+S4gOWTgSA+IGlwcGluXCA7CivnvqnlhYQgPiBnaWtlaVwgOwor5LiH5Y+kID4gYmFua29cIDsKK+mZuui3ryA+IGtlbnJvXCA7Civlp4vmnJ8gPiBzaGlraVwgOwor5LiL5Y2KID4ga2FoYW5cIDsKK+mYsumZpCA+IGJvdWpvXCA7CivkuI3li6IgPiBidXplaVwgOwor6Kmx6Iq4ID4gd2FnZWlcIDsKK+S4jeWLlSA+IGZ1ZG91XCA7CivkuI3lirQgPiBmdXJvdVwgOwor576O5ZCNID4gYmltZWlcIDsKK+WhqemFuCA+IGVuc2FuXCA7CivlpKfnqbQgPiBvb2FuYVwgOwor54yq5Y+jID4gY2hva29cIDsKK+mcsuebpCA+IHJvYmFuXCA7CivkuIfljJYgPiBiYW5rYVwgOwor5aiB5b6zID4gaXRva3VcIDsKK+S4gOWPjSA+IGl0dGFuXCA7CivkuIDlj4wgPiBpc3NvdVwgOwor5pak55uuID4ga2lubWVcIDsKK+eJp+atjCA+IGJva2thXCA7CivkuIvliaQgPiBnZXphaVwgOwor54Sh6YqtID4gbXVzZW5cIDsKK+WgtOmdoiA+IGJhbWVuXCA7CivoqIDovp4gPiBnZW5qaVwgOwor6Kqy56iOID4ga2F6ZWlcIDsKK+iqsueoiyA+IGthdGVpXCA7CivnhKHpipggPiBtdW1laVwgOwor6Kqk566XID4gZ29zYW5cIDsKK+S4jeWHoSA+IGZ1Ym9uXCA7CivniKrniZkgPiBzb3VnYVwgOwor5aSq56WWID4gdGFpc29cIDsKK+aal+WknCA+IGFuJyd5YVwgOwor5LiN5YeNID4gZnV0b3VcIDsKK+WkqeelliA+IHRlbnNvXCA7CivkuIDljYogPiBpcHBhblwgOwor5LiA5Y2DID4gaXNzZW5cIDsKK+WmluawlyA+IHlvdWtpXCA7Civlpb3mvJQgPiBrb3VlblwgOwor6Kqk562UID4gZ290b3VcIDsKK+aWh+enkSA+IGJ1bmthXCA7CivorbfmhrIgPiBnb2tlblwgOwor5aSa56uvID4gdGF0YW5cIDsKK+S4juWFmiA+IHlvdG91XCA7CivkuI3lhaggPiBmdXplblwgOwor6Kmg6I2JID4gZWlzb3VcIDsKK+S4jeWFmiA+IGZ1dG91XCA7Civpm4ToirEgPiBvYmFuYVwgOwor5pei5riIID4ga2lzYWlcIDsKK+Wjrue+jiA+IHNvdWJpXCA7CivlopPoqowgPiBib3NoaVwgOwor5aSa56iuID4gdGFzaHVcIDsKK+e2uuirhyA+IGtpZGFuXCA7CivnhKHphY0gPiBtdWhhaVwgOwor54qv5oSPID4gaGFuJydpXCA7CivkuIvlg6cgPiBnZXNvdVwgOwor576p5Lq6ID4gZ2lqaW5cIDsKK+S4gOWIhyA+IGlzc2FpXCA7CivkuIDliIYgPiBpcHB1blwgOwor5LiA5YiAID4gaXR0b3VcIDsKK+Wlh+eRniA+IGtpenVpXCA7Civoq5bnkIYgPiByb25yaVwgOwor5aSn56C0ID4gdGFpaGFcIDsKK+S4jeWBjyA+IGZ1aGVuXCA7Civpm4Xoh7QgPiBnYWNoaVwgOwor5LiN5YCrID4gZnVyaW5cIDsKK+ipseiAhSA+IHdhc2hhXCA7CivnvbLlk6EgPiBzaG9pblwgOwor6Kyb5q2mID4ga291YnVcIDsKK+aXpeazoiA+IG5pcHBvXCA7CivkuJbku6MgPiBzZWRhaVwgOwor5LiA5YaNID4gaXNzYWlcIDsKK+S4luS6uiA+IHNlamluXCA7CivmlYXogIEgPiBrb3JvdVwgOwor54y/5Lq6ID4gZW5qaW5cIDsKK+aYn+aWlyA+IHNlaXRvXCA7CivkuIrlgKQgPiB1d2FuZVwgOwor5LiA5YWaID4gaXR0b3VcIDsKK+eEoemBkyA+IG11ZG91XCA7CivkuI3kvr8gPiBmdWJlblwgOwor6KiO6K2wID4gdG91Z2lcIDsKK+Wil+ijnCA+IHpvdWhvXCA7CivkuI3kvosgPiBmdXJlaVwgOwor57mU55uuID4gb3JpbWVcIDsKK+e2mei1tyA+IGtlaWtpXCA7CivoqJPoqbEgPiBrdW53YVwgOwor54Sh6L66ID4gbXVoZW5cIDsKK+S4luS4iiA+IHNlam91XCA7CivkuI7ku7YgPiB5b2tlblwgOwor5LiL5L2TID4ga2F0YWlcIDsKK+mhnuS8vCA+IHJ1aWppXCA7CivpmqDolL0gPiBpbnBlaVwgOwor576F5YW4ID4gcmF0ZW5cIDsKK+mZsOisgCA+IGluYm91XCA7CivoqJPoqYEgPiBrdW5rb1wgOwor5LiJ5L2QID4gc2Fuc2FcIDsKK+S4ieS9jSA+IHNhbm1pXCA7CivlqJHlqYYgPiBzaGFiYVwgOwor5LiN5LuBID4gZnVqaW5cIDsKK+S4iOS9mSA+IGpvdXlvXCA7CivmmI7mmpcgPiBtZWlhblwgOwor5aaT5qW8ID4gZ2lyb3VcIDsKK+aWh+ebriA+IGF5YW1lXCA7Civlpb3msJcgPiBrb3VraVwgOwor54y25LqIID4geXV1eW9cIDsKK+WkieenuyA+IGhlbicnaVwgOwor6ZmE6L+RID4gZnVraW5cIDsKK+S4i+S6uiA+IGdlbmluXCA7CivmmrTliKkgPiBib3VyaVwgOwor5pqX5ZapID4gYW4nJ3l1XCA7CivloZHpgKAgPiBzb3pvdVwgOwor5ama5YSAID4ga29uZ2lcIDsKK+S4i+S5lyA+IGdlam91XCA7Civmk6zoo70gPiBnaXNlaVwgOwor57SZ6a2aID4gc2hpbWlcIDsKK+S4h+S6iyA+IGJhbmppXCA7Civmk6zoo4UgPiBnaXNvdVwgOwor5LiA5L2TID4gaXR0YWlcIDsKK+S4gOS9jSA+IGljaGlpXCA7Civoq7jmtL4gPiBzaG9oYVwgOwor5LiK5LiLID4gam91Z2VcIDsKK+WknOeblyA+IHlhdG91XCA7CivkuInkuJYgPiBzYW56ZVwgOwor6Zu756OBID4gZGVuamlcIDsKK+aZtOWknCA+IHNlaXlhXCA7CivlqabkurogPiBmdWppblwgOwor6aCR5Zu6ID4gZ2Fua29cIDsKK+aZguW8iiA+IGppaGVpXCA7CivkuIDku7YgPiBpa2tlblwgOwor576O5Lq6ID4gYmlqaW5cIDsKK+S4gOS7iyA+IGlra2FpXCA7CivnvbflhY0gPiBoaW1lblwgOwor5aSn55O2ID4gb29iaW5cIDsKK+iogOiqniA+IGdlbmdvXCA7Civlpb3mqZ8gPiBrb3VraVwgOwor5pWF57SZID4ga29zaGlcIDsKK+Wkt+eLhCA+IGl0ZWtpXCA7CivmmpflkJsgPiBhbmt1blwgOwor5aSW55quID4gZ2FpaGlcIDsKK+aal+WQiCA+IGFuZ291XCA7Civmmpflj7cgPiBhbmdvdVwgOwor6K235bK4ID4gZ29nYW5cIDsKK+S4gOS4liA+IGlzc2VpXCA7CivnianmlYUgPiBidWtrb1wgOwor5aSp55CGID4gdGVucmlcIDsKK+Wkj+ecoCA+IGthbWluXCA7CivntKDppIogPiBzb3lvdVwgOwor5aeQ5b6hID4gYW5lZ29cIDsKK+WknOeVqiA+IHlvYmFuXCA7CivpnLLngrkgPiByb3RlblwgOwor5pmp5aSPID4gYmFua2FcIDsKK+mfs+WkpyA+IG9uZGFpXCA7Civpn7Plo7AgPiBvbnNlaVwgOwor5paH55CGID4gYnVucmlcIDsKK+WkmueUqCA+IHRheW91XCA7CivlpJrnlKMgPiB0YXNhblwgOwor5aSn546LID4gZGFpb3VcIDsKK+e9teWAkiA+IGJhdG91XCA7CivntKDpoZQgPiBzdWdhb1wgOwor5pS557WEID4ga2Fpc29cIDsKK+e0q+mbsiA+IHNoaXVuXCA7Civnt6jogIUgPiBoZW5qYVwgOwor5aWz5qipID4gam9rZW5cIDsKK+iqpOeUqCA+IGdveW91XCA7Civlp4nlvqEgPiBhbmVnb1wgOwor5aSW55WMID4gZ2VrYWlcIDsKK+aTgeittyA+IHlvdWdvXCA7CivlpKnni5cgPiB0ZW5ndVwgOwor54i25qipID4gZnVrZW5cIDsKK+WlpeatryA+IG9rdWJhXCA7Civml6nmnJ8gPiBzb3VraVwgOwor57Sg6Z2iID4gc3VtZW5cIDsKK+itsOWumiA+IGdpdGVpXCA7CivlpKnniLYgPiB0ZW5wdVwgOwor6ZyA55SoID4ganV5b3VcIDsKK+e4q+ebriA+IG51aW1lXCA7CivnhKHorIAgPiBtdWJvdVwgOwor5peF5qyhID4gcnlvamlcIDsKK+aXpeacrCA+IG5paG9uXCA7CivniYjmnKggPiBoYW5naVwgOwor6Z2I5rCjID4gcmVpa2lcIDsKK+eEoeirliA+IG11cm9uXCA7CivpnZ7mpa0gPiBoaWdvdVwgOwor5aGr6KOcID4gdGVucG9cIDsKK+mbo+egtCA+IG5hbnBhXCA7Civml6bmmq4gPiB0YW5ib1wgOwor5aSJ55WwID4gaGVuJydpXCA7Civml6LmnJsgPiBraWJvdVwgOwor6Zmb6KGbID4gaGVpZWlcIDsKK+ezuOmtmiA+IGl0b3lvXCA7Civpm6jnnYAgPiBhbWFnaVwgOwor5aiB5ZynID4gaWF0c3VcIDsKK+WlveacnyA+IGtvdWtpXCA7Civlp6blqaYgPiBrYW5wdVwgOwor6Kej6KqeID4ga2FpZ29cIDsKK+aVtOeQhiA+IHNlaXJpXCA7CivnhKHoqIAgPiBtdWdvblwgOwor5aaC5pivID4gbnlvemVcIDsKK+eIvuadpSA+IGppcmFpXCA7CivniYfmmYIgPiBoZW5qaVwgOwor57a/6IqxID4gbWVua2FcIDsKK+mZsOiUvSA+IGlucGVpXCA7CivlpKnngrogPiB0ZW4nJ2lcIDsKK+WogeWahyA+IGlrYWt1XCA7CivnhKHoppYgPiBtdXNoaVwgOwor5pWw55CGID4gc3V1cmlcIDsKK+e1jOmBjiA+IGtlaWthXCA7CivnhrHnoIIgPiBuZXNzYVwgOwor5pif5bqnID4gc2VpemFcIDsKK+WkqeeBqyA+IHRlbnBpXCA7Civln6DpoK0gPiBmdXRvdVwgOwor54yK5LiLID4gZ2Vpa2FcIDsKK+mZhOiogCA+IGZ1Z2VuXCA7CivlpKfngasgPiB0YWlrYVwgOwor5aem5aSrID4ga2FucHVcIDsKK+mghuWMliA+IGp1bmthXCA7CivpmLLorbcgPiBib3Vnb1wgOwor6Z2e5pybID4gaGlib3VcIDsKK+mgreS4iiA+IHp1am91XCA7CivorbDlo6sgPiBnaXNoaVwgOwor5pmC5aW9ID4gamlrb3VcIDsKK+mdkuaihSA+IGFvdW1lXCA7CivloZfoo4UgPiB0b3NvdVwgOwor6Kmp56KRID4gc2hpaGlcIDsKK+aVheefpSA+IGtvY2hpXCA7CivpmqDnt5ogPiBpbnNlblwgOwor5aWR5qmfID4ga2Vpa2lcIDsKK+imlumHjiA+IHNoaXlhXCA7CivorbDloLQgPiBnaWpvdVwgOwor5pG46YCgID4gbW96b3VcIDsKK+mZsOiMjiA+IGlua2VpXCA7CivmlqfmraMgPiBmdXNlaVwgOwor6Z2S5p6cID4gc2Vpa2FcIDsKK+eHoOeBqyA+IG9raWJpXCA7Civpn7PlkI0gPiBvbm1laVwgOwor5piO5bqmID4gbWVpZG9cIDsKK+WmpeW9kyA+IGRhdG91XCA7CivmmYLloLEgPiBqaWhvdVwgOwor57WM6LevID4ga2Vpcm9cIDsKK+aWr+anmCA+IGtheW91XCA7CivloanolLUgPiBlbnpvdVwgOwor5pig5bCEID4gZWlzaGFcIDsKK+mgkuS+oSA+IGhhbmthXCA7Civoq7rmlocgPiBvbm1vblwgOwor5aKo57W1ID4gc3VtaWVcIDsKK+e0sOmDqCA+IHNhaWJ1XCA7Civnt7Tno6ggPiByZW5tYVwgOwor6Zmk6I2JID4gam9zb3VcIDsKK+itj+WrjCA+IGtpZ2VuXCA7CivlpaXml6ggPiBvdXNoaVwgOwor5Z+66YeRID4ga2lraW5cIDsKK+e1jOiyuyA+IGtlaWhpXCA7CivoqJjogIUgPiBraXNoYVwgOwor6Kyd5oGpID4gc2hhb25cIDsKK+aYhuW4gyA+IGtvbmJ1XCA7Civpm7LnhZkgPiB1bicnZW5cIDsKK+WkqeaysyA+IHRlbmdhXCA7Civoq63ml6ggPiB5dXNoaVwgOwor54eQ54GrID4gcmlua2FcIDsKK+WlveaJkyA+IGtvdWRhXCA7Civml6LmiJAgPiBraXNlaVwgOwor6Ziy6KGbID4gYm91ZWlcIDsKK+Wkp+aysyA+IHRhaWdhXCA7Civpm7fngasgPiByYWlrYVwgOwor57eH57SgID4gc2hpc29cIDsKK+e2sue+hSA+IG1vdXJhXCA7CivlpKnmsJcgPiB0ZW5raVwgOwor6aCG5L2NID4ganVuJydpXCA7CivoqJPnvqkgPiBrdW5naVwgOwor5pio5aScID4geXV1YmVcIDsKK+Wkp+awlyA+IHRhaWtpXCA7CivnhKHok4sgPiBtdWdhaVwgOwor6Kqe5rqQID4gZ29nZW5cIDsKK+imh+mBkyA+IGhhZG91XCA7Civmma7lgY8gPiBmdWhlblwgOwor5pWi54K6ID4ga2FuJydpXCA7CivpmbDnv7MgPiBpbicnZWlcIDsKK+aXl+aJiyA+IGtpc2h1XCA7Civopb/pg6ggPiBzZWlidVwgOwor6ZuH55SoID4ga295b3VcIDsKK+mfs+WDjyA+IG9uem91XCA7CivlprvlpbMgPiBzYWlqb1wgOwor5pON6Ii1ID4gc291ZGFcIDsKK+Wkp+atjCA+IG9vdXRhXCA7CivorJvluqcgPiBrb3V6YVwgOwor5paH5q6KID4gbW9uanVcIDsKK+aYn+WknCA+IHNlaXlhXCA7CivnhKHoj4wgPiBtdWtpblwgOwor5paH5q2mID4gYnVuYnVcIDsKK+mdnuaJjSA+IGhpc2FpXCA7CivlpYfmm7ggPiBraXNob1wgOwor5aSr5qipID4gZnVrZW5cIDsKK+WkqeapnyA+IHRlbmtpXCA7CivpnIrmsJcgPiByZWlraVwgOwor5piO5aqaID4gbWVpYmlcIDsKK+eEoeiMtiA+IG11Y2hhXCA7Civpn7Pkvr8gPiBvbmJpblwgOwor54mi5bGLID4gcm91eWFcIDsKK+Wlh+aZuiA+IGtpY2hpXCA7CivlpJrmr5sgPiB0YW1vdVwgOwor5aiB5L+hID4gaXNoaW5cIDsKK+iqnuazlSA+IGdvaG91XCA7CivlpKfmqLkgPiB0YWlqdVwgOwor5aSW5rCXID4gZ2Fpa2lcIDsKK+eEoeiKuCA+IG11Z2VpXCA7CivlpKfmp5ggPiBvb3lvdVwgOwor5aWl5omLID4gb2t1dGVcIDsKK+e2see0gCA+IGtvdWtpXCA7Civoo73pursgPiBzZWltYVwgOwor57eP56S+ID4gc291amFcIDsKK+mbu+azoiA+IGRlbnBhXCA7CivmmYLljYogPiBqaWhhblwgOwor6K2m5Y+lID4ga2Vpa3VcIDsKK+mdnuaDhSA+IGhpam91XCA7Civoq4vmmocgPiBzZWlrYVwgOwor5pmC5YyWID4gc2hpa2VcIDsKK+Wls+aApyA+IGpvc2VpXCA7Civpm6jmu7QgPiB1dGVraVwgOwor5aWH5pWwID4ga2lzdXVcIDsKK+mbhOeMqyA+IG9uZWtvXCA7CivmmYLli6IgPiBqaXNlaVwgOwor5pan5pakID4gZnVraW5cIDsKK+mbsua1tyA+IHVua2FpXCA7Civpm5Hnha4gPiB6b3VuaVwgOwor5pmC5Yq5ID4gamlrb3VcIDsKK+aYn+WbsyA+IHNlaXp1XCA7CivniLbmgKcgPiBmdXNlaVwgOwor6KaB6LevID4geW91cm9cIDsKK+Wls+W+oSA+IG55b2dvXCA7Civpm7vmsJcgPiBkZW5raVwgOwor5pah5peLID4gYXNzZW5cIDsKK+mbsuazpSA+IHVuZGVpXCA7Civorabli5kgPiBrZWltdVwgOwor5pmC5Yi2ID4gamlzZWlcIDsKK+mbhOeJmyA+IG91c2hpXCA7CivmmYLliIYgPiBqaWJ1blwgOwor54Sh6IO9ID4gbXVub3VcIDsKK+WkmuanmCA+IHRheW91XCA7CivniqzlhJIgPiBrZW5qdVwgOwor54Gr6ZujID4ga2FuYW5cIDsKK+aVsOasoSA+IHN1dWppXCA7CivlppblqaYgPiB5b3VmdVwgOwor5pW15qmfID4gdGVra2lcIDsKK+mbsuawtCA+IHVuc3VpXCA7CivlppblqYYgPiB5b3ViYVwgOwor5peX5bmfID4ga2lzaGlcIDsKK+mdkuaBryA+IGFvaWtpXCA7CivplpHpm4UgPiBrYW5nYVwgOwor5aSn5p6dID4gb29lZGFcIDsKK+Wjsua3qyA+IGJhaWluXCA7CivpnKfmlaMgPiBtdXNhblwgOwor5aWz5bidID4gam90ZWlcIDsKK+mbqOazqCA+IHVjaHV1XCA7CivmlL7ngasgPiBob3VrYVwgOwor5aWJ5oyBID4gaG91amlcIDsKK+Wls+W3pSA+IGpva291XCA7Civpm7vmqZ8gPiBkZW5raVwgOwor57ea55S7ID4gc2VuZ2FcIDsKK+mdnuW4uCA+IGhpam91XCA7CivlppblpbMgPiB5b3Vqb1wgOwor5paw5omLID4gYXJhdGVcIDsKK+mdmeW6pyA+IHNlaXphXCA7CivnhKHnvaogPiBtdXphaVwgOwor5pWj5q2pID4gc2FucG9cIDsKK+mbqOawtyA+IHVoeW91XCA7Civmlofmm7ggPiBtb25qb1wgOwor6ZaL6ZmiID4ga2FpaW5cIDsKK+WmiuWppiA+IG5pbnB1XCA7CivmmYLlgJkgPiBqaWtvdVwgOwor6ZaJ6ZmiID4gaGVpaW5cIDsKK+aXouWumiA+IGtpdGVpXCA7CivorablgpkgPiBrZWliaVwgOwor5aWH5omNID4ga2lzYWlcIDsKK+Wlh+aJiyA+IGtpc2h1XCA7CivlpKnml6UgPiB0ZW5waVwgOwor5aSn5pigID4gZGFpZWlcIDsKK+WknOadpSA+IHlhcmFpXCA7Civlpb3lrpwgPiBrb3VnaVwgOwor57Sb6K2wID4gZnVuZ2lcIDsKK+mZpOeulyA+IGpvemFuXCA7Civml6LlrZggPiBraXNvblwgOwor6K2w5LyaID4gZ2lrYWlcIDsKK+mbouawtCA+IHJpc3VpXCA7CivoqJPnpLogPiBrdW5qaVwgOwor6Kmm5ryUID4gc2hpZW5cIDsKK+aSq+iCsiA+IGJ1aWt1XCA7CivpmLLohZAgPiBib3VmdVwgOwor6Kqe5qC5ID4gZ29rb25cIDsKK+aSsOiAhSA+IHNlbmphXCA7CivnhrHms6IgPiBuZXBwYVwgOwor5aSa5pybID4gdGFib3VcIDsKK+mZtuejgSA+IHRvdWppXCA7CivlpbPlsIogPiBqb3NvblwgOwor5aWH5oWLID4ga2l0YWlcIDsKK+aZguS7oyA+IGppZGFpXCA7CivorbLkuI4gPiBqb3V5b1wgOwor54Sh57eaID4gbXVzZW5cIDsKK+eJouWbuiA+IHJvdWtvXCA7CivlpJzmma8gPiB5YWtlaVwgOwor5pGY6KiYID4gdGVra2lcIDsKK+aXouWpmiA+IGtpa29uXCA7CivmmYLkurogPiBqaWppblwgOwor6ZuE5rudID4gb2Rha2lcIDsKK+eJmeWfjiA+IGdham91XCA7CivlpYfmg7MgPiBraXNvdVwgOwor5aOr5rCXID4gc2hpa2lcIDsKK+ipseazlSA+IHdhaG91XCA7CivngonovrogPiByb2hlblwgOwor5aWz5a2QID4gam9zaGlcIDsKK+eFqeeRoyA+IGhhbnNhXCA7Civnt4/nkIYgPiBzb3VyaVwgOwor5pmC5LiWID4gamlzZWlcIDsKK+eItuWtkCA+IGZ1c2hpXCA7CivnhKHns5YgPiBtdXRvdVwgOwor6Zm955quID4geW91aGlcIDsKK+aWveW3pSA+IHNla291XCA7CivlpKfmkI0gPiBvb3pvblwgOwor6Kej57WEID4ga2Fpc29cIDsKK+Wlh+aAqiA+IGtpa2FpXCA7Civoq7jlrrYgPiBzaG9rYVwgOwor54m55YyWID4gdG9ra2FcIDsKK+mcsuaCqiA+IHJvYWt1XCA7CivnioDliKkgPiBzYWlyaVwgOwor5aSa5pWwID4gdGFzdXVcIDsKK+Wkp+aPmiA+IG9veW91XCA7CivnhKHnsosgPiBidXN1aVwgOwor57ay55uuID4gYW1pbWVcIDsKK+WkqeaOiCA+IHRlbmp1XCA7CivmmKDlhpkgPiBlaXNoYVwgOwor5aSV5pelID4geXV1aGlcIDsKK+Wls+WpvyA+IGpvc2VpXCA7Civlpb3lpYcgPiBrb3VraVwgOwor5aSW5pa5ID4gc29wcG9cIDsKK+aUv+ayuyA+IHNlaWppXCA7CivnspfppJAgPiBzb3NhblwgOwor57KX6aOvID4gc29oYW5cIDsKK+mWiemOliA+IGhlaXNhXCA7CivntKDooYwgPiBzb2tvdVwgOwor57W557W1ID4ga2ludWVcIDsKK+itnOS7oyA+IGZ1ZGFpXCA7CivoqLTnirYgPiBzb2pvdVwgOwor5aWH5b2iID4ga2lrZWlcIDsKK+WhqeeojiA+IGVuemVpXCA7CivmmKDlg48gPiBlaXpvdVwgOwor57W157W5ID4gZWdpbnVcIDsKK+mbkeatjCA+IHpvdWthXCA7CivpmqDnhLYgPiBpbnplblwgOwor5aWH5byBID4ga2liZW5cIDsKK+iqnuaVsCA+IGdvc3V1XCA7Civml6LloLEgPiBraWhvdVwgOwor6Zm955S7ID4geW91Z2FcIDsKK+eBq+mFkiA+IGthc2h1XCA7CivntKvomIcgPiBzaGlzb1wgOwor6KO96Z20ID4gc2Vpa2FcIDsKK+mbtuaZgiA+IHJlaWppXCA7CivmmKDlgKsgPiBlaXJpblwgOwor6Kmp5q2MID4gc2hpa2FcIDsKK+eyvumLrSA+IHNlaWVpXCA7CivlpbPlo7AgPiBqb3NlaVwgOwor5pS+5q2MID4gaG91a2FcIDsKK+mZhOeuiyA+IGZ1c2VuXCA7Civns7vorZwgPiBrZWlmdVwgOwor6Zuy5pmvID4gdW5rZWlcIDsKK+iqieacmyA+IHlvYm91XCA7CivniYjlm7MgPiBoYW50b1wgOwor6Zyy5bqXID4gcm90ZW5cIDsKK+Wlh+W3jCA+IGtpZ2FuXCA7Civlp4nkuIogPiBhbmV1ZVwgOwor5pac5b2xID4gc2hhZWlcIDsKK+eEoeeovSA+IG11a2VpXCA7CivopbLooaMgPiBzaHV1aVwgOwor6ZaT6YGgID4gbWFkb29cIDsKK+mcsuW4nSA+IHJvdGVpXCA7Civpm4TmraYgPiB5dXVidVwgOwor54Sh56iOID4gbXV6ZWlcIDsKK+WkqeaEjyA+IHRlbicnaVwgOwor6Kmg5q2OID4gZWl0YW5cIDsKK+mdmeWknCA+IHNlaXlhXCA7CivorJvlkowgPiBrb3V3YVwgOwor5aSn5oSaID4gdGFpZ3VcIDsKK+eEoeengSA+IG11c2hpXCA7CivnhYnnk6YgPiByZW5nYVwgOwor6Zuy5pWjID4gdW5zYW5cIDsKK+mbouadkSA+IHJpc29uXCA7CivlpJzmiKYgPiB5YXNlblwgOwor57SA6KaBID4ga2l5b3VcIDsKK+eFpOeFmSA+IGJhaWVuXCA7CivntbXnrYYgPiBlZnVkZVwgOwor5aSa5omNID4gdGFzYWlcIDsKK+aWh+aEjyA+IGJ1bicnaVwgOwor6KWk6KS4ID4gcmFucnVcIDsKK+Wkp+aCnyA+IGRhaWdvXCA7CivnibnkvqEgPiB0b2trYVwgOwor5aWH5bKpID4ga2lnYW5cIDsKK+eEoeekvCA+IGJ1cmVpXCA7CivnubvlrZAgPiBzaHVzdVwgOwor6ZaL6YGLID4ga2FpdW5cIDsKK+Wkp+aBqSA+IGRhaW9uXCA7CivoqbLmoYggPiBnYWlhblwgOwor5aSi5oOzID4gbXVzb3VcIDsKK+ilpuiioiA+IGp1YmFuXCA7Civpm6PmmJMgPiBuYW4nJ2lcIDsKK+aXqOWRsyA+IHVtYW1pXCA7CivoqbHmn4QgPiB3YWhlaVwgOwor5aWJ5a6JID4gaG91YW5cIDsKK+WgleiDjiA+IGRhdGFpXCA7CivntIDooYwgPiBraWtvdVwgOwor5pS+5qOEID4gaG91a2lcIDsKK+WkmuaEnyA+IHRha2FuXCA7Civmkq3nqK4gPiBoYXNodVwgOwor6Kqy5b25ID4ga2Fla2lcIDsKK+mZoueUnyA+IGluc2VpXCA7Civoo5zpoYwgPiBob2RhaVwgOwor5aSa5oOFID4gdGFqb3VcIDsKK+eEoeefpSA+IG11Y2hpXCA7Civpm6LmlaMgPiByaXNhblwgOwor6Kmm5qGIID4gc2hpYW5cIDsKK+WkqeW6nCA+IHRlbnB1XCA7CivlpJrmgaggPiB0YWtvblwgOwor5aSn5bqmID4gdGFpZG9cIDsKK+eJqeS+oSA+IGJ1a2thXCA7Civoqp7mhJ8gPiBnb2thblwgOwor5pW15oSPID4gdGVraWlcIDsKK+WlveWPpCA+IGtvdWtvXCA7CivmlofluqsgPiBidW5rb1wgOwor5aSa5b+ZID4gdGFib3VcIDsKK+imi+iIniA+IG1pbWFpXCA7CivnhZbngokgPiBkYW5yb1wgOwor5aCV572qID4gZGF6YWlcIDsKK+WhqeeUsCA+IGVuZGVuXCA7CivmlYXmmbogPiBrb2NoaVwgOwor54Sh55uKID4gbXVla2lcIDsKK+mZveeCjiA+IHlvdWVuXCA7CivlpKflt64gPiB0YWlzYVwgOwor57mK5bqmID4gc2VuZG9cIDsKK+Wkp+W3pSA+IGRhaWt1XCA7Civoq7fllqkgPiBmdXV5dVwgOwor5aSa5b2pID4gdGFzYWlcIDsKK+mWiei3ryA+IGhlaXJvXCA7CivlpJrlvaIgPiB0YWtlaVwgOwor5pWs5oWVID4ga2VpYm9cIDsKK+WghuiCpSA+IHRhaWhpXCA7Civml6XliqAgPiBuaWtrYVwgOwor5o+06LuNID4gZW5ndW5cIDsKK+eyl+mLvCA+IHNva291XCA7CivmlazmhJsgPiBrZWlhaVwgOwor5aSa5byBID4gdGFiZW5cIDsKK+WjsOaPtCA+IHNlaWVuXCA7CivnhqjmlpcgPiBub3NoaVwgOwor6Z2e5ZG9ID4gaGltZWlcIDsKK+isgOWPmyA+IG11aG9uXCA7CivlpbPlj7IgPiBqb3NoaVwgOwor6KyA5Y+NID4gbXVob25cIDsKK+eyl+mKhSA+IHNvZG91XCA7CivopJLovp4gPiBob3VqaVwgOwor5pGp6ICXID4gbWFtb3VcIDsKK+eyl+mJsSA+IHNva291XCA7CivniLblkJsgPiBmdWt1blwgOwor5pS+5pigID4gaG91ZWlcIDsKK+WkluW7tiA+IGdhaWVuXCA7CivlpJrlubggPiB0YWtvdVwgOwor5aSa5bm0ID4gdGFuZW5cIDsKK+e0heiTriA+IGd1cmVuXCA7Civpm4HmnKggPiBnYW5naVwgOwor5aWH5aOwID4ga2lzZWlcIDsKK+iqnuW9oiA+IGdva2VpXCA7CivlpYTlpYQgPiBlbicnZW5cIDsKK+ijj+mdoiA+IHJpbWVuXCA7Civml6LliIogPiBraWthblwgOwor5pa55ZuzID4gaG91enVcIDsKK+mbqOaIuCA+IGFtYWRvXCA7CivpnLLlpKkgPiByb3RlblwgOwor6KOc6ZaTID4gaG9rYW5cIDsKK+iqnuW8iiA+IGdvaGVpXCA7CivniaLkuY4gPiByb3Vrb1wgOwor54Sh55SoID4gbXV5b3VcIDsKK+eEoeeUoyA+IG11c2FuXCA7CivniaHkuLkgPiBib3RhblwgOwor5aSn5bC+ID4gdGFpYmlcIDsKK+WkqeWvvyA+IHRlbmp1XCA7Civoqp7lubkgPiBnb2thblwgOwor57KX6YWSID4gc29zaHVcIDsKK+aOp+mZpCA+IGtvdWpvXCA7Civlo7LmiYsgPiB1cml0ZVwgOwor5aKX5rS+ID4gem91aGFcIDsKK+iqmOW8lSA+IHl1dWluXCA7CivlpKflrrYgPiB0YWlrZVwgOwor6ZuF5paHID4gZ2FidW5cIDsKK+imh+iAhSA+IGhhc2hhXCA7CivmlonlrrYgPiBzZWlrYVwgOwor6Zyy5aC0ID4gcm9qb3VcIDsKK+Wkp+WuiSA+IGRhaWFuXCA7CivmlbDluqYgPiBzdXVkb1wgOwor5aSn5a2XID4gb29hemFcIDsKK+mWkeipsSA+IGthbndhXCA7CivlnLDpoK0gPiBqaXRvdVwgOwor6Zm45rmvID4gb2theXVcIDsKK+aWreWbuiA+IGRhbmtvXCA7Civpm7LlvbEgPiB1bicnZWlcIDsKK+aWh+WtlyA+IG1vbmppXCA7Civnh5Xlt6MgPiBlbnNvdVwgOwor5aWl5Y2wID4gb2t1aW5cIDsKK+Wkq+WppiA+IG1lb3RvXCA7CivlpJrlsaQgPiB0YXNvdVwgOwor6Ki05qipID4gc29rZW5cIDsKK+mbtuW6piA+IHJlaWRvXCA7CivngrnogIUgPiB0ZW5qYVwgOwor57W155S7ID4ga2FpZ2FcIDsKK+maoOajsiA+IGluc2VpXCA7CivopoHnvqkgPiB5b3VnaVwgOwor6Z2e5YehID4gaGlib25cIDsKK+ioquaspyA+IGhvdW91XCA7CivlnLDpnaIgPiBqaW1lblwgOwor5aW95YCLID4ga291a29cIDsKK+Wls+WEqiA+IGpveXV1XCA7CivlpKnlqIEgPiB0ZW4nJ2lcIDsKK+Wkq+WmuyA+IGZ1c2FpXCA7CivoqqTlsIQgPiBnb3NoYVwgOwor54i25YWEID4gZnVrZWlcIDsKK+WcsOmbtyA+IGppcmFpXCA7CivoqJjms5UgPiBraWhvdVwgOwor54WW5rCXID4gZGFua2lcIDsKK+maoOagliA+IGluc2VpXCA7CivlpJrlrZQgPiB0YWtvdVwgOwor5aSW5a6uID4gZ2VrdXVcIDsKK+eFmeatuyA+IGVuc2hpXCA7CivlpKrlpKsgPiB0YXl1dVwgOwor6Zm95rCXID4geW91a2lcIDsKK+Wfuue3miA+IGtpc2VuXCA7CivlpKflpaUgPiBvb29rdVwgOwor5o6S6ZmkID4gaGFpam9cIDsKK+WkluWtlyA+IGdhaWppXCA7CivmlaPluIMgPiBzYW5wdVwgOwor5aWH5ZWPID4ga2ltb25cIDsKK+WmguS4iiA+IGpvam91XCA7Civlpb3kuosgPiBrb3V6dVwgOwor5aSn5aOwID4gb29nb2VcIDsKK+iqsuWkliA+IGthZ2FpXCA7CivlpLflm70gPiBpa29rdVwgOwor5pSv5o+0ID4gc2hpZW5cIDsKK+aTrOavmyA+IGdpbW91XCA7CivntKDntbkgPiBzb2tlblwgOwor5aWR5Y2wID4ga2VpaW5cIDsKK+mbo+W6piA+IG5hbmRvXCA7Civopo/nr4QgPiBraWhhblwgOwor5pOs5q27ID4gZ2lzaGlcIDsKK+aVsOWtlyA+IHN1dWppXCA7CivlpJrlprsgPiB0YXNhaVwgOwor5paO5Z6jID4gaWdha2lcIDsKK+imgee0oCA+IHlvdXNvXCA7Civml5fkuq0gPiBraXRlaVwgOwor5pSv5oyBID4gc2hpamlcIDsKK+mbheaHkCA+IGdha2FpXCA7Civmj5DotbcgPiB0ZWlraVwgOwor6Zuy5bGFID4ga3Vtb2lcIDsKK+mcsuWRvSA+IHJvbWVpXCA7CivnhKHnga8gPiBtdXRvdVwgOwor6Zmw5q+bID4gaW5tb3VcIDsKK+WkieWtlyA+IGhlbmppXCA7Civopb/ntIAgPiBzZWlraVwgOwor57mU5ZywID4gb3JpamlcIDsKK+mciuWkoiA+IHJlaW11XCA7CivpnLLlkYggPiByb3RlaVwgOwor5aSa5aSnID4gdGFkYWlcIDsKK+aOg+mZpCA+IHNvdWppXCA7CivloZfngq0gPiB0b3RhblwgOwor5o2V6a+oID4gaG9nZWlcIDsKK+mdnuS6uiA+IGhpbmluXCA7CivlpJrlo7IgPiB0YWJhaVwgOwor6Zyy5Y+wID4gcm9kYWlcIDsKK+e5geWkmiA+IGhhbnRhXCA7CivpmaTms5UgPiBqb2hvdVwgOwor54Sc54KJID4ga29ucm9cIDsKK+aWueWGhiA+IGhvdWVuXCA7Civoq7jkuosgPiBzaG9qaVwgOwor5pS55oKfID4ga2FpZ29cIDsKK+e2meazsyA+IGtlaWVpXCA7CivlpYnliqAgPiBob3VnYVwgOwor6KaP56iLID4ga2l0ZWlcIDsKK+mbouWztiA+IHJpdG91XCA7CivlpYflirkgPiBraWtvdVwgOwor6Kmt5byBID4ga2liZW5cIDsKK+maleaYnyA+IGluc2VpXCA7CivlpKflmaggPiB0YWlraVwgOwor6Zui5bK4ID4gcmlnYW5cIDsKK+eCree0oCA+IHRhbnNvXCA7CivoqqTloLEgPiBnb2hvdVwgOwor5aSW5aC0ID4gZ2FpYmFcIDsKK+aVsOWlhyA+IHN1dWtpXCA7Civpm6LlsbEgPiByaXphblwgOwor5aSn5ZiYID4gb291c29cIDsKK+ezluiPkyA+IHRvdWthXCA7CivmlbDlpJogPiBzdXV0YVwgOwor5o+Q6K2wID4gdGVpZ2lcIDsKK+maj+aZgiA+IHp1aWppXCA7CivntYznlLEgPiBrZWl5dVwgOwor54Gr6JGsID4ga2Fzb3VcIDsKK+mciuWckiA+IHJlaWVuXCA7CivmlL/lupwgPiBzZWlmdVwgOwor5aWH5YW1ID4ga2loZWlcIDsKK+mYv+a8lSA+IGFrb2dpXCA7CivpmLLngo4gPiBib3VlblwgOwor5paX5Y2XID4gdG9uYW5cIDsKK+WjsuWtkCA+IHVyaWtvXCA7Civpm7vloLQgPiBkZW5iYVwgOwor5aSW5ZugID4gZ2FpaW5cIDsKK+mYsueBqyA+IGJvdWthXCA7Civmj5DoqLQgPiB0ZWlzb1wgOwor6Zyy5YWJID4gcm9rb3VcIDsKK+Wkq+WQmyA+IGZ1a3VuXCA7CivopIfooaMgPiBmdWt1aVwgOwor57WM55CGID4ga2VpcmlcIDsKK+Wkp+WRvCA+IHRhaWtvXCA7CivlpKflkbMgPiBvb2FqaVwgOwor5pa95Li7ID4gc2VzaHVcIDsKK+mbsuWjjCA+IHVuam91XCA7CivlpYflgbYgPiBraWd1dVwgOwor5aSq5Y+kID4gdGFpa29cIDsKK+eEoeazlSA+IG11aG91XCA7CivmlYXlsbEgPiBrb3phblwgOwor5r+D6ZynID4gbm91bXVcIDsKK+mbouWpmiA+IHJpa29uXCA7CivlpKflj7AgPiBvb2RhaVwgOwor5Zyo6YeOID4gemFpeWFcIDsKK+eCueekuiA+IHRlbmppXCA7CivmlZnlp5QgPiBreW91aVwgOwor6KqH5aSnID4ga29kYWlcIDsKK+eBq+iJsiA+IGhpaXJvXCA7CivnhLbmp5ggPiBzYXlvdVwgOwor6KGj6a2aID4gc2hpbWlcIDsKK+iqmOWboCA+IHl1dWluXCA7Civnspfoo70gPiBzb3NlaVwgOwor5paH5Y+lID4gbW9ua3VcIDsKK+eEoeawtCA+IG11c3VpXCA7Civng73ngasgPiBob3VrYVwgOwor57K+6I+vID4gc2Vpa2FcIDsKK+Wlh+S9kyA+IGtpdGFpXCA7CivnhKHmr5sgPiBtdW1vdVwgOwor57mt5L6hID4ga2Vua2FcIDsKK+mbu+WZqCA+IGRlbmtpXCA7Civlm7PpnaIgPiB6dW1lblwgOwor57ep5b6QID4ga2Fuam9cIDsKK+aUvuWxgSA+IGhvdWhpXCA7Civlo7LlpbMgPiBiYWl0YVwgOwor5aSp5YqpID4gdGVuam9cIDsKK+exs+iyqCA+IGJlaWthXCA7Civlm7rpmYsgPiBrb3JvdVwgOwor54Sh5q6LID4gbXV6YW5cIDsKK+mWi+iKsSA+IGthaWthXCA7CivnhKHmrbsgPiBtdXNoaVwgOwor5paH5YyWID4gYnVua2FcIDsKK+Wlh+S6uiA+IGtpamluXCA7Civmlq3kuY4gPiBkYW5rb1wgOwor5aKX5o+0ID4gem91ZW5cIDsKK+WknOWPiSA+IHlhc2hhXCA7Civln7rnm6QgPiBraWJhblwgOwor5aSq5YiAID4gdGFjaGlcIDsKK+mZsOaZtCA+IGluc2VpXCA7Civlo6vlpbMgPiBzaGlqb1wgOwor5aSn5YikID4gb29iYW5cIDsKK+e0oOebtCA+IHN1bmFvXCA7CivopqrniLogPiBveWFqaVwgOwor6Kaq54i2ID4gb3lhamlcIDsKK+iqsuWItiA+IGthc2VpXCA7CivpnIDlk4EgPiBqdWhpblwgOwor6KOc6KybID4gaG9rb3VcIDsKK+mbo+WgtCA+IG5hbmJhXCA7Civntq3mlrAgPiBpc2hpblwgOwor5aOy5aC0ID4gdXJpYmFcIDsKK+Wkt+S/lyA+IGl6b2t1XCA7Civlm57poacgPiBrYWlrb1wgOwor5aSc5YukID4geWFraW5cIDsKK+Wkp+WGhiA+IGRhaWVuXCA7CivoqIjmmYIgPiBrZWlqaVwgOwor5aGp5qKFID4gYW5iYWlcIDsKK+mZsOaWhyA+IGluYnVuXCA7CivpmaLmnKwgPiBpbnBvblwgOwor5aSa5YuiID4gdGF6ZWlcIDsKK+malOaEjyA+IGtha3VpXCA7Civlm5vpoacgPiBzaGlrb1wgOwor6ZaT6ICFID4ga2FuamFcIDsKK+Wkp+WEkiA+IGRhaWp1XCA7Civoqp7ljp8gPiBnb2dlblwgOwor5aSn5YSAID4gdGFpZ2lcIDsKK+WknOWJjSA+IHlhemVuXCA7Civoo5zoqIIgPiBob3RlaVwgOwor57Gz6KqeID4gYmVpZ29cIDsKK+mYu+atoiA+IHNvc2hpXCA7CivlpJbli5kgPiBnYWltdVwgOwor6ZuR5aSaID4gemF0dGFcIDsKK+WknOWIhiA+IHlhYnVuXCA7CivmlZflm6AgPiBoYWlpblwgOwor57Gz6KmxID4gYmVpd2FcIDsKK+WdkOimliA+IHphc2hpXCA7CivmlonlgpkgPiBzZWliaVwgOwor5aSa5YiGID4gdGFidW5cIDsKK+Wik+aJgCA+IGJvc2hvXCA7Civoqp7li6IgPiBnb3NlaVwgOwor6Kqk5YikID4gZ29oYW5cIDsKK+aOoeitnCA+IHNhaWZ1XCA7Civlo4flrrYgPiBkYW5rYVwgOwor5aOu5ZuzID4gc291dG9cIDsKK+Wbs+mRkSA+IHp1a2FuXCA7CivlpJzlhYkgPiB5YWtvdVwgOwor54K555S7ID4gdGVuZ2FcIDsKK+mZpOaVsCA+IGpvc3V1XCA7Civpm7vljJYgPiBkZW5rYVwgOwor6Kqk5YaZID4gZ29zaGFcIDsKK+aOp+iotCA+IGtvdXNvXCA7CivlpJrlhYMgPiB0YWdlblwgOwor5aSp5L2NID4gdGVuJydpXCA7Civpm7Llj7AgPiB1bmRhaVwgOwor6KW/55OcID4gc3Vpa2FcIDsKK+iqjeWQpiA+IG5pbnBpXCA7CivnhKHmoLkgPiBtdWtvblwgOwor5aSJ5YyWID4gaGVuZ2VcIDsKK+mZouaUvyA+IGluc2VpXCA7CivlpKfkvZAgPiB0YWlzYVwgOwor6KqN5Y+vID4gbmlua2FcIDsKK+Wkq+S6uiA+IGZ1amluXCA7Civngavnt5ogPiBrYXNlblwgOwor57ay5oi4ID4gYW1pZG9cIDsKK+eyvue+qSA+IHNlaWdpXCA7CivoqrDkvZUgPiBzdWlrYVwgOwor6KiY5oa2ID4ga2lva3VcIDsKK+ijveiPkyA+IHNlaWthXCA7CivlpKfkuosgPiBkYWlqaVwgOwor5r+r6LK7ID4gcmFucGlcIDsKK+WkqeS4iyA+IHRlbmthXCA7CivmlofkuosgPiBidW5qaVwgOwor5pOs5oWLID4gZ2l0YWlcIDsKK+maoOWxhSA+IGlua3lvXCA7CivmlbTlgpkgPiBzZWliaVwgOwor57Sr54WZID4gc2hpZW5cIDsKK+aVrOWFtyA+IGtlaWd1XCA7CivnspfojLYgPiBzb2NoYVwgOwor5aSc5LyaID4geWFrYWlcIDsKK+eEoeaZuiA+IG11Y2hpXCA7CivpmqPlrrYgPiByaW5rYVwgOwor57SU55CGID4ganVucmlcIDsKK+mbouWQiCA+IHJpZ291XCA7Civpm6Plj6UgPiBuYW5rdVwgOwor57OK57K+ID4ga29zZWlcIDsKK+e3nuWtkCA+IGRvbnN1XCA7Civpm6Llj40gPiByaWhhblwgOwor57Sg54mHID4gc29oZW5cIDsKK+eFmeW8viA+IGVuZGFuXCA7CivoqqTkvJ0gPiBnb2RlblwgOwor6Zuq5YqgID4gc2Vra2FcIDsKK+ezuOebriA+IGl0b21lXCA7CivntbXmn4QgPiBlZ2FyYVwgOwor6KiY5b+1ID4ga2luZW5cIDsKK+ikkue+jiA+IGhvdWJpXCA7Civpm4Tlm7MgPiB5dXV0b1wgOwor54G956aNID4gc2Fpa2FcIDsKK+eEoeaWrSA+IG11ZGFuXCA7Civng4jngasgPiByZWtrYVwgOwor5pWw5YCLID4gc3V1a29cIDsKK+mZsOaDqCA+IGluc2FuXCA7CivnhKHmlbAgPiBtdXN1dVwgOwor57W15pytID4gZWZ1ZGFcIDsKK+WkluS6iyA+IGdhaWppXCA7CivmlbDkvqEgPiBzdXVrYVwgOwor57a/5biDID4gbWVucHVcIDsKK+igp+mtmiA+IHNoaW1pXCA7Civln7rngrkgPiBraXRlblwgOwor6Zmw5oCnID4gaW5zZWlcIDsKK+mbu+S9jSA+IGRlbicnaVwgOwor6Kmg5ZiGID4gZWl0YW5cIDsKK+eyvueylyA+IHNlaXNvXCA7Civpm6jlhbcgPiBhbWFndVwgOwor5aSJ5L2NID4gaGVuJydpXCA7CivpmbDlvbEgPiBpbicnZWlcIDsKK+imj+a6liA+IGtpanVuXCA7Civnt4/lq4EgPiBzb3VrYVwgOwor54K554GrID4gdGVua2FcIDsKK+mbouWFmiA+IHJpdG91XCA7CivmjqnolL0gPiBlbnBlaVwgOwor5aSJ5LqLID4gaGVuamlcIDsKK+ipqeWPpSA+IHNoaWt1XCA7Civpm6PlhIAgPiBuYW5naVwgOwor57WD5q2MID4gZ2Vua2FcIDsKK+ippuWQiCA+IHNoaWFpXCA7CivpmqDlo6sgPiBpbnNoaVwgOwor5o6p6JOLID4gZW5nYWlcIDsKK+Wis+WikyA+IGZ1bmJvXCA7CivnuIHlj7AgPiBlbmRhaVwgOwor6Zuy5LqVID4ga3Vtb2lcIDsKK+ihsOmBiyA+IHN1aXVuXCA7Civln7rmupYgPiBraWp1blwgOwor6Zu25LiLID4gcmVpa2FcIDsKK+mbheWPtyA+IGdhZ291XCA7Civln7rmupAgPiBraWdlblwgOwor6Kmg5ZCfID4gZWlnaW5cIDsKK+Wcn+ijvSA+IGRvc2VpXCA7CivoqaDlj7IgPiBlaXNoaVwgOwor54WZ5a6zID4gZW5nYWlcIDsKK+aUv+WLmSA+IHNlaW11XCA7CivloLTmnKsgPiBiYXN1ZVwgOwor5Zue6YG/ID4ga2FpaGlcIDsKK+mbsuS4iiA+IHVuam91XCA7CivmlLnljbAgPiBrYWlpblwgOwor57a+5a2QID4gcmluenVcIDsKK+eEoeaJjSA+IG11c2FpXCA7CivngqzngasgPiBreW9rYVwgOwor6ZaL56WWID4ga2Fpc29cIDsKK+eBq+egsiA+IGthaG91XCA7CivplovnpLogPiBrYWlqaVwgOwor5aOy5L6hID4gYmFpa2FcIDsKK+exs+iLsSA+IGJlaWVpXCA7CivnhanlpJogPiBoYW50YVwgOwor5aOw5L6hID4gc2Vpa2FcIDsKK+maoOWdiiA+IG9uYm91XCA7CivntrjlrZAgPiByaW56dVwgOwor6Zq75Y+lID4gc2Vra3VcIDsKK+eEoeaFriA+IG11cnlvXCA7Civpm6rkuIsgPiBzZWtrYVwgOwor5aCA5rGfID4gaG9yaWVcIDsKK+mbouS7uyA+IHJpbmluXCA7CivntZDmnpwgPiBrZWtrYVwgOwor6Zuo5LitID4gdWNodXVcIDsKK+ihsOi6ryA+IHN1aWt1XCA7CivntIXngo4gPiBrb3VlblwgOwor57a05a2XID4gdGVpamlcIDsKK+mbo+S6iyA+IG5hbmppXCA7CivlnLDolLUgPiBqaXpvdVwgOwor54Sh5oOzID4gbXVzb3VcIDsKK+eEoeaDqCA+IG11emFuXCA7CivntK/mrKEgPiBydWlqaVwgOwor54Sh5oOFID4gbXVqb3VcIDsKK+e3qeWSjCA+IGthbndhXCA7Civopo/mraMgPiBraXNlaVwgOwor6KmQ5Y+WID4gc2FzaHVcIDsKK+eEoeaBpSA+IG11Y2hpXCA7Civoo4XojbcgPiBzb3VrYVwgOwor54Sh5oCnID4gbXVzZWlcIDsKK+mbheWFhCA+IGdha2VpXCA7Civnspfns5YgPiBzb3RvdVwgOwor6Zqg5ZapID4gaW4nJ3l1XCA7CivnhKHlv7UgPiBtdW5lblwgOwor5Zue6LevID4ga2Fpcm9cIDsKK+mbh+WCrSA+IGtveW91XCA7CivopqrmnKggPiBveWFnaVwgOwor6ZuR5L2cID4gem91c2FcIDsKK+eEoeW9oiA+IG11a2VpXCA7CivpmZDluqYgPiBnZW5kb1wgOwor54WZ5aG1ID4gZW5qaW5cIDsKK+WhgeaJkyA+IHJ1aWRhXCA7CivmlYXkurogPiBrb2ppblwgOwor5Zyf6JS1ID4gZG96b3VcIDsKK+ilv+atpiA+IHNlaWJ1XCA7Civngo7ngo4gPiBlbicnZW5cIDsKK+imi+anmCA+IG1peW91XCA7CivmlYXkuLsgPiBrb3NodVwgOwor6KW/5qynID4gc2Vpb3VcIDsKK+imh+aoqSA+IGhha2VuXCA7CivpmaLlrqMgPiBpbnplblwgOwor57KX56yoID4gc29ob25cIDsKK+e0oeapnyA+IGJvdWtpXCA7Civlm7Pop6MgPiB6dWthaVwgOwor5Zyo6I23ID4gemFpa2FcIDsKK+mXmOawlyA+IHRvdWtpXCA7CivlnLDoibIgPiBqaWlyb1wgOwor54Sh5bi9ID4gbXVib3VcIDsKK+eEoeW4uCA+IG11am91XCA7CivlnJ/okawgPiBkb3NvdVwgOwor5pS/5LqLID4gc2VpamlcIDsKK+aOque9riA+IHNvY2hpXCA7CivlopPlnLAgPiBib2NoaVwgOwor57eP5ZOhID4gc291aW5cIDsKK+maj+WWnCA+IHp1aWtpXCA7CivlnKjoi7EgPiB6YWllaVwgOwor57Oc54ibID4gYmlyYW5cIDsKK+e3j+WSjCA+IHNvdXdhXCA7Civpm4XkurogPiBnYWppblwgOwor5aC05omAID4gYmFzaG9cIDsKK+ihl+i3ryA+IGdhaXJvXCA7CivpmYTluK8gPiBmdXRhaVwgOwor5aGX5belID4gdG9rb3VcIDsKK+WbnuitsCA+IGthaWdpXCA7Civpmo/lk6EgPiB6dWlpblwgOwor5aCF5p6cID4ga2Vua2FcIDsKK+ioseWQpiA+IGt5b2hpXCA7Civmi5fpn7MgPiB5b3VvblwgOwor6Kix5Y+vID4ga3lva2FcIDsKK+imi+aghCA+IG1pYmFlXCA7CivntbnluIMgPiBrZW5wdVwgOwor6ZqK5ZOhID4gdGFpaW5cIDsKK+mZtuWcnyA+IHRvdWRvXCA7Civmj5DnpLogPiB0ZWlqaVwgOwor5oyJ6YWNID4gYW5iYWlcIDsKK+eEoeWwvSA+IG11amluXCA7CivpmaTlpJYgPiBqb2dhaVwgOwor5aKX5ZOhID4gem91aW5cIDsKK+e1teW3uyA+IGVtYWtpXCA7CivooYzot68gPiBrb3Vyb1wgOwor5oy/6KmxID4gc291d2FcIDsKK+imi+acrCA+IG1paG9uXCA7CivpmaLlpJYgPiBpbmdhaVwgOwor57eP5YuZID4gc291bXVcIDsKK+mXiuatqSA+IGthcHBvXCA7Civlmarpn7MgPiBzb3VvblwgOwor5Z+65p2/ID4ga2liYW5cIDsKK+mZtuWZqCA+IHRvdWtpXCA7CivntpnlpKsgPiBrZWlmdVwgOwor54Sh5a6zID4gbXVnYWlcIDsKK+maoOWFgyA+IGluZ2VuXCA7CivnhKHlrpggPiBtdWthblwgOwor6KiD5aCxID4gZnVob3VcIDsKK+WfuuacrCA+IGtpaG9uXCA7CivnspfnoKUgPiBhcmF0b1wgOwor5aCx5oGpID4gaG91b25cIDsKK+mat+S4iyA+IHJlaWthXCA7CivntKDmnZAgPiBzb3phaVwgOwor6ZmN5auBID4ga291a2FcIDsKK+e3j+WHuiA+IHNvdWRlXCA7CivopovmmKAgPiBtaWJhZVwgOwor57a95ZCNID4gYWRhbmFcIDsKK+WckuiKuCA+IGVuZ2VpXCA7Civnga/ngasgPiB0b3VrYVwgOwor6Kej5a2XID4ga2FpamlcIDsKK+aNleiZnCA+IGhvcnlvXCA7CivpmqPkv50gPiByaW5wb1wgOwor5aKT5Y+CID4gYm9zYW5cIDsKK+eBq+eBvSA+IGthc2FpXCA7CivoqIjlmaggPiBrZWlraVwgOwor57WE5oiQID4gc29zZWlcIDsKK+ijuOecvCA+IHJhZ2FuXCA7Civnspfnm7ggPiBzb3NvdVwgOwor5ou+6YG6ID4gc2h1dWlcIDsKK+e1tuWutiA+IHpla2tlXCA7CivoqJjlkI0gPiBraW1laVwgOwor6KGj6KOzID4gaXNob3VcIDsKK+Wil+WKoCA+IHpvdWthXCA7CivoqJjlj7cgPiBraWdvdVwgOwor5r++57SZID4gcm9zaGlcIDsKK+mYu+WusyA+IHNvZ2FpXCA7CivlnLDnuIEgPiBjaGllblwgOwor54Sh5aeLID4gbXVzaGlcIDsKK+WbmuihoyA+IHNodXVpXCA7CivooaPoo4UgPiBpc2hvdVwgOwor5pGp5pCNID4gbWFzb25cIDsKK+WfuuaVsCA+IGtpc3V1XCA7CivooZvoppYgPiBlaXNoaVwgOwor5Zu96I+vID4ga29ra2FcIDsKK+WhlOWphiA+IHRvdWJhXCA7CivntKDmlbAgPiBzb3N1dVwgOwor5Z2Q56aFID4gemF6ZW5cIDsKK+Wik+WJjSA+IGJvemVuXCA7CivpmqDkuqEgPiBvbmJvdVwgOwor54Sh5aOwID4gbXVzZWlcIDsKK+WcsOe0iyA+IGppbW9uXCA7CivmjrLnpLogPiBrZWlqaVwgOwor5ryU6aGMID4gZW5kYWlcIDsKK+e0jeacnyA+IG5vdWtpXCA7CivmkpLluIMgPiBzYW5wdVwgOwor5aCF5oyBID4ga2VuamlcIDsKK+aTrOWLoiA+IGdpc2VpXCA7Civlm73oirEgPiBrb2trYVwgOwor5Zyw57GzID4gamltYWlcIDsKK+imquW+oSA+IG95YWdvXCA7Civngrnmkq0gPiB0ZW5wYVwgOwor5r+D6Im2ID4gbm91ZW5cIDsKK+iotOS6uiA+IHNvbmluXCA7CivooZfooaIgPiBnYWlrdVwgOwor6ZaL5ryUID4ga2FpZW5cIDsKK+iojuWMqiA+IHRvdWhpXCA7CivntYzluqYgPiBrZWlkb1wgOwor5pOs5Yi2ID4gZ2lzZWlcIDsKK+e0i+aXpSA+IG1vbmJpXCA7Civmjojnsr4gPiBqdXNlaVwgOwor6Zmk5ZCNID4gam9tZWlcIDsKK+eBr+ayuSA+IHRvdXl1XCA7CivpmaTlj7cgPiBqb2dvdVwgOwor6Zm25Ya2ID4gdG91eWFcIDsKK+WbsOiLpiA+IGtvbmt1XCA7CivmiqvpnLIgPiBoaXJvdVwgOwor6Zmk5Y67ID4gam9reW9cIDsKK+mZouWPtyA+IGluZ291XCA7CivpmorkvI0gPiB0YWlnb1wgOwor57SF5peXID4ga291a2lcIDsKK+majuS4iyA+IGthaWthXCA7CivmipXpo5sgPiB0b3VoaVwgOwor6J+76YW4ID4gZ2lzYW5cIDsKK+e0oOaHkCA+IHNva2FpXCA7CivlnLDnp58gPiBjaGlzb1wgOwor57Sw5b6uID4gc2FpYmlcIDsKK+iom+S8nSA+IGthZGVuXCA7Civmi53ovp4gPiBoYWlqaVwgOwor5Zyf566hID4gZG9rYW5cIDsKK+WcsOelhyA+IGNoaWdpXCA7CivloYrlnJ8gPiBrYWlkb1wgOwor6KOP55uuID4gdXJhbWVcIDsKK+aMgeirliA+IGppcm9uXCA7CivoppbluqYgPiBzaGlkb1wgOwor54KO5pqRID4gZW5zaG9cIDsKK+eyvuayuSA+IHNlaXl1XCA7Civnspfnha4gPiBhcmFuaVwgOwor6ZeY5oqAID4gdG91Z2lcIDsKK+aMv+iKsSA+IHNvdWthXCA7Civmk6zkurogPiBnaWppblwgOwor57K+5rCXID4gc2Vpa2lcIDsKK+imluW3riA+IHNoaXNhXCA7CivnhKHlkI0gPiBtdW1laVwgOwor57Sg5oCnID4gc3Vqb3VcIDsKK+imquWtlyA+IG95YWppXCA7CivpmLvllqogPiBzb3NvdVwgOwor57SN5oi4ID4gbmFuZG9cIDsKK+eEoeWPjCA+IG11c291XCA7CivloanliIYgPiBlbmJ1blwgOwor57Sg5b+XID4gc29zaGlcIDsKK+e0sOW3pSA+IHNhaWt1XCA7Civpmarkvo0gPiBiYWlqaVwgOwor5aCw5aCkID4gZW50ZWlcIDsKK+eEoeWLoiA+IGJ1emVpXCA7Civln7rlupUgPiBraXRlaVwgOwor5o6754isID4gc291aGFcIDsKK+Wcp+eglSA+IGFzc2FpXCA7Civln7rlubkgPiBraWthblwgOwor5o+u5q+rID4ga2lnb3VcIDsKK+eEoeWKuSA+IG11a291XCA7CivlnLDnm6QgPiBqaWJhblwgOwor5Zuy57meID4gaW55b3VcIDsKK+aLneizgCA+IGhhaWdhXCA7CivngavmobYgPiBoaW9rZVwgOwor5o6o55CGID4gc3VpcmlcIDsKK+eyl+a8jyA+IHNvcm91XCA7CivmibbppIogPiBmdXlvdVwgOwor5o2V57iEID4gaG9qb3VcIDsKK+e1tuWPpSA+IHpla2t1XCA7Civlm5vogqEgPiBzaGlrb1wgOwor57Ch57SgID4ga2Fuc29cIDsKK+aKvOmAgSA+IG91c291XCA7CivlnJ/noIIgPiBkb3NoYVwgOwor54Sh5YagID4gbXVrYW5cIDsKK+eCueW3riA+IHRlbnNhXCA7CivloKHloYEgPiBob3J1aVwgOwor5pON5L2cID4gc291c2FcIDsKK+e0lOW6piA+IGp1bmRvXCA7CivoqIDkuIsgPiBnZW5rYVwgOwor6KaP5a6aID4ga2l0ZWlcIDsKK+eBq+abnCA+IGtheW91XCA7Civmu4vppIogPiBqaXlvdVwgOwor5o+b5rCXID4ga2Fua2lcIDsKK+mWi+aetiA+IGthaWthXCA7CivlnKfnl5UgPiBha2tvblwgOwor5om56ZujID4gaGluYW5cIDsKK+ijveayuSA+IHNlaXl1XCA7CivlmajosqEgPiBraXphaVwgOwor6ZaR5pqHID4ga2Fua2FcIDsKK+eBq+aYnyA+IGthc2VpXCA7CivpmZvkuIsgPiBoZWlrYVwgOwor6KeS5YqbID4gc3Vtb3VcIDsKK+eyvuafuyA+IHNlaXNhXCA7CivlnLDnkIYgPiBjaGlyaVwgOwor5aC05ZGzID4gYmFhamlcIDsKK+eul+itnCA+IHNhbnB1XCA7Civng4jlqaYgPiByZXBwdVwgOwor5aGR5YOPID4gc296b3VcIDsKK+aOiOeUoyA+IGp1c2FuXCA7CivnhKHkvZMgPiBtdXRhaVwgOwor6KGM6ISaID4gYW5neWFcIDsKK+eEoeS9jyA+IG11anV1XCA7Civmj7rmm7MgPiB5b3VlaVwgOwor57Sg5a2QID4gc29zaGlcIDsKK+e1jOWWtiA+IGtlaWVpXCA7CivlnJ/nlKggPiBkb3lvdVwgOwor54Sh5LujID4gbXVkYWlcIDsKK+igkeieuiA+IHNhemFlXCA7CivonrrpiL8gPiByYWRlblwgOwor54K55a2XID4gdGVuamlcIDsKK+eEoeS6uiA+IG11bmluXCA7CivlnJ/nk7YgPiBkb2JpblwgOwor5aCC5aWlID4gZG91b3VcIDsKK+mYsuWFtyA+IGJvdWd1XCA7CivpmY3kuIsgPiBrb3VrYVwgOwor57S65ZywID4ga29uamlcIDsKK+mVt+afhCA+IG5hZ2FlXCA7CivopZ/luqYgPiBraW5kb1wgOwor54Sh5LiKID4gbXVqb3VcIDsKK+iho+ezpyA+IGlyeW91XCA7CivntbbkvbMgPiB6ZWtrYVwgOwor57Sg5aeTID4gc3Vqb3VcIDsKK+mYsuWCmSA+IGJvdWJpXCA7Civlm7PnpLogPiB6dXNoaVwgOwor57WQ5Y+lID4ga2Vra3VcIDsKK+WfjuW6nCA+IGpvdWZ1XCA7Civono3pmaQgPiB5dXVqb1wgOwor5omj6ZmkID4ga291am9cIDsKK+mYv+S6gCA+IG9rYW1lXCA7CivmiZPpoIYgPiBkYWp1blwgOwor5oqx6LKgID4gaG91ZnVcIDsKK+aOkueFmSA+IGhhaWVuXCA7CivmvKLoqp4gPiBrYW5nb1wgOwor5pGC5a62ID4gc2Vra2VcIDsKK+WgheWbuiA+IGtlbmdvXCA7CivngavmiYsgPiBrYXNodVwgOwor5omL6aCGID4gdGVqdW5cIDsKK+aJk+mbuyA+IGRhZGVuXCA7CivnrZTovp4gPiB0b3VqaVwgOwor5o+Q5qGIID4gdGVpYW5cIDsKK+WfuuWcsCA+IGtpY2hpXCA7CivlnKfngrkgPiBhdHRlblwgOwor6ZaL5omJID4ga2FpaGlcIDsKK+ijnOatoyA+IGhvc2VpXCA7Civmj6HmlqcgPiBha3VmdVwgOwor5oqr6KybID4gaGlrb3VcIDsKK+aJk+mWiyA+IGRha2FpXCA7CivopoHlm7MgPiB5b3V6dVwgOwor6KW/5ZyfID4gc2VpZG9cIDsKK+imgeWboCA+IHlvdWluXCA7Civnq7bppqwgPiBrZWliYVwgOwor57KX5pyoID4gYXJha2lcIDsKK+a8j+ipsSA+IHJvdXdhXCA7CivmjqHmsrkgPiBzYWl5dVwgOwor6KKr54G9ID4gaGlzYWlcIDsKK+WgtOS7oyA+IGJhZGFpXCA7CivnspfmmrQgPiBzb2JvdVwgOwor5Zyw5ripID4gY2hpb25cIDsKK+aOquatoiA+IHNvc2hpXCA7Civoo4/mr5sgPiB1cmFrZVwgOwor6ZaA5omJID4gbW9ucGlcIDsKK+mWgOaIuCA+IG1vbmtvXCA7Civns5bluqYgPiB0b3Vkb1wgOwor6ZaL5oKfID4ga2FpZ29cIDsKK+e0meWZqCA+IHNoaWtpXCA7CivmiqvoposgPiBoaWtlblwgOwor5pG45YaZID4gbW9zaGFcIDsKK+ihqOedgCA+IHV3YWdpXCA7Civngq3lm6MgPiB0YWRvblwgOwor5Zue55uuID4ga2FpbWVcIDsKK+aKl+itsCA+IGtvdWdpXCA7Civmu4Xph5EgPiBtZWtraVwgOwor57KX5pS+ID4gc29ob3VcIDsKK+imgeWToSA+IHlvdWluXCA7CivmiZPpjbUgPiBkYWtlblwgOwor57Sv5YqgID4gcnVpa2FcIDsKK+idn+mbhiA+IGlzaHV1XCA7CivngorlqaYgPiBzdWlmdVwgOwor54K55ZG8ID4gdGVua29cIDsKK+aOkuawlyA+IGhhaWtpXCA7CivmkbjlgKMgPiBtb2hvdVwgOwor6KaP5Yi2ID4ga2lzZWlcIDsKK+eCjuWkqSA+IGVudGVuXCA7Civlm6DnlLEgPiBpbicneXVcIDsKK+WcsOatqSA+IGNoaWhvXCA7CivmiYvpjKAgPiB0ZWpvdVwgOwor5r+25q2pID4ga2FwcG9cIDsKK+WcsOatjCA+IGppdXRhXCA7CivploDlvpIgPiBtb250b1wgOwor5Za26aSKID4gZWl5b3VcIDsKK+eCiuWkqyA+IHN1aWZ1XCA7CivmjL/nlLsgPiBzb3VnYVwgOwor5Zuz54mIID4genVoYW5cIDsKK+eyvuW6piA+IHNlaWRvXCA7Civmj7TlvJUgPiBlbicnaW5cIDsKK+a7nuiyqCA+IHRhaWthXCA7CivopoHli5kgPiB5b3VtdVwgOwor54Gr5bGxID4ga2F6YW5cIDsKK+ezu+WbsyA+IGtlaXp1XCA7CivlnKfmrbsgPiBhc3NoaVwgOwor5omL6YeRID4gdGVraW5cIDsKK+Wcn+awkSA+IGRvbWluXCA7CivngrnliY0gPiB0ZW1hZVwgOwor5o6i5p+7ID4gdGFuc2FcIDsKK+e0lOWMliA+IGp1bmthXCA7CivntI3lj5cgPiBub3VqdVwgOwor5omL6YWNID4gdGVoYWlcIDsKK+aLieiHtCA+IHJhY2hpXCA7CivooZvnlJ8gPiBlaXNlaVwgOwor6KOc5pW0ID4gaG9zZWlcIDsKK+imgeWFtyA+IHlvdWd1XCA7Civoo5zmlbAgPiBob3N1dVwgOwor54Kt5YyWID4gdGFua2FcIDsKK+aOiOaoqSA+IGp1a2VuXCA7CivntJTliKkgPiBqdW5yaVwgOwor562G6KiYID4gaGlra2lcIDsKK+e0sOS6iyA+IHNhaWppXCA7CivmjIfnpLogPiBzaGlqaVwgOwor57KX5oKqID4gc29ha3VcIDsKK+e0oOS9kyA+IHNvdGFpXCA7CivmvJToirggPiBlbmdlaVwgOwor57Oe5ZyfID4gZnVuZG9cIDsKK+mVt+WxhSA+IG5hZ2FpXCA7CivmvKvnvbUgPiBtYW5iYVwgOwor57SZ5L6hID4gc2hpa2FcIDsKK+err+mKrSA+IGhhc2VuXCA7CivlmInoqIAgPiBrYWdlblwgOwor57KY5bqmID4gbmVuZG9cIDsKK+euquespSA+IHRhbnN1XCA7CivntIDlhYMgPiBraWdlblwgOwor5Zuz5rOVID4genVob3VcIDsKK+a9pOebriA+IHVydW1lXCA7Civlm73mrYwgPiBrb2trYVwgOwor6ZaL5Z+6ID4ga2Fpa2lcIDsKK+a5lumdoiA+IGtvbWVuXCA7Civmj5rlsYsgPiBhZ2V5YVwgOwor5Zyf5pucID4gZG95b3VcIDsKK+e0jeS7mCA+IG5vdWZ1XCA7Civoo4/miYsgPiB1cmF0ZVwgOwor6J6f6Ju+ID4gbWVpZ2FcIDsKK+Wcp+aUvyA+IGFzc2VpXCA7CivplovlnJIgPiBrYWllblwgOwor5Zyf5pifID4gZG9zZWlcIDsKK+eCjuWFiSA+IGVua291XCA7CivmirzntbUgPiBvc2hpZVwgOwor5rmv6YqtID4geXVzZW5cIDsKK+mWsuWFtSA+IGVwcGVpXCA7Civoo5zlvKYgPiBob2dlblwgOwor57O45L6hID4gc2hpa2FcIDsKK+ihjOeBryA+IGFuZG9uXCA7CivmiYvoqbEgPiBzaHV3YVwgOwor5Zyn5o6SID4gYXBwYWlcIDsKK+aJi+iomCA+IHNodWtpXCA7CivllrbpgKAgPiBlaXpvdVwgOwor5Zyw5omAID4gamlzaG9cIDsKK+ezluWMliA+IHRvdWthXCA7CivllrbovrIgPiBlaW5vdVwgOwor6KOc5be7ID4gaG9rYW5cIDsKK+ijleW6piA+IHl1dWRvXCA7Civns4rlj6MgPiBrb2tvdVwgOwor5oqA6Iq4ID4gZ2lnZWlcIDsKK+mWueS6uiA+IGVuamluXCA7CivmjZzmn7sgPiBzb3VzYVwgOwor5omL6KO9ID4gdGVzZWlcIDsKK+WfjuS4iyA+IGpvdWthXCA7Civngavli6IgPiBrYXNlaVwgOwor5oud55yJID4gaGFpYmlcIDsKK+aMveatjCA+IGJhbmthXCA7CivmjojmiJIgPiBqdWthaVwgOwor57KX5aSnID4gc29kYWlcIDsKK+aIpuiyuyA+IHNlbnBpXCA7Civlm7rmnIkgPiBrb3l1dVwgOwor5rip6aGUID4gb25nYW5cIDsKK+eCiuS6iyA+IHN1aWppXCA7Civngo7kuIogPiBlbmpvdVwgOwor5o275oyrID4gbmVuemFcIDsKK+ijveWhqSA+IHNlaWVuXCA7CivngavliJEgPiBrYWtlaVwgOwor5ryU566XID4gZW56YW5cIDsKK+a4qemghiA+IG9uanVuXCA7CivplovljJYgPiBrYWlrYVwgOwor6KOc5bCOID4gaG9kb3VcIDsKK+WboOalrSA+IGluZ291XCA7CivmioDog70gPiBnaW5vdVwgOwor56qB6aObID4gdG9wcGlcIDsKK+WbveaXlyA+IGtva2tpXCA7Civlm7Pmm7ggPiB0b3Nob1wgOwor54Gr5YWJID4ga2Frb3VcIDsKK+ijnOWujCA+IGhva2FuXCA7CivnsKHmmJMgPiBrYW4nJ2lcIDsKK+ihkuawlyA+IGdlbmtpXCA7CivnsbPlr78gPiBiZWlqdVwgOwor5oqV57ayID4gdG9hbWlcIDsKK+ijveWbsyA+IHNlaXp1XCA7CivnspjlnJ8gPiBuZW5kb1wgOwor5pCN5L+dID4gc29ucG9cIDsKK+ijj+WxiyA+IHVyYXlhXCA7CivmjqrlrpogPiBzb3RlaVwgOwor5om26IKyID4gZnVpa3VcIDsKK+mWo+S4iyA+IGtha2thXCA7CivmiKboqJggPiBzZW5raVwgOwor5omL6JaEID4gdGV1c3VcIDsKK+euoeeQhiA+IGthbnJpXCA7CivlnKjluqsgPiB6YWlrb1wgOwor5o2n5oyBID4gaG91amlcIDsKK+erpeipsSA+IGRvdXdhXCA7Civonabom4QgPiBzaGFrb1wgOwor5o+05YW1ID4gZW5wZWlcIDsKK+WdkeWkqyA+IGtvdWZ1XCA7CivooqvlvL4gPiBoaWRhblwgOwor6KGA5rCXID4ga2Vra2lcIDsKK+WYieiCtCA+IGtha291XCA7CivlmajnlKggPiBraXlvdVwgOwor6ZaT5LujID4gbWFkYWlcIDsKK+Wcp+W3uyA+IGFra2FuXCA7CivmiJLorbcgPiBrYWlnb1wgOwor54Gv5LiLID4gdG91a2FcIDsKK+a8q+eUuyA+IG1hbmdhXCA7Civmj5rlj6UgPiBhZ2VrdVwgOwor5Zaa6LW3ID4ga2Fua2lcIDsKK+ijnOWhqyA+IGhvdGVuXCA7CivooaPmnI0gPiBpZnVrdVwgOwor57KX5ZOBID4gc29oaW5cIDsKK+Wcn+W3pSA+IGRva291XCA7CivmuIXpn7MgPiBzZWlvblwgOwor5Zug5pWwID4gaW5zdXVcIDsKK+aIkOiqniA+IHNlaWdvXCA7Civlm5vml6UgPiB5b2trYVwgOwor5omL6I2SID4gdGVhcmFcIDsKK+exs+WhqSA+IGJlaWVuXCA7Civmjqnlo5UgPiBlbmdvdVwgOwor5ZiG576OID4gdGFuYmlcIDsKK+idl+iZqyA+IGJhdHRhXCA7CivooaPmlpkgPiBpcnlvdVwgOwor5o2V5omLID4gaG9zaHVcIDsKK+WcqOWutiA+IHphaWtlXCA7Civoo5zlm54gPiBob2thaVwgOwor6KGb5pifID4gZWlzZWlcIDsKK+mWgOS4iyA+IG1vbmthXCA7CivooYzmnY4gPiBrb3VyaVwgOwor5Zm054GrID4gZnVua2FcIDsKK+eyl+WIqSA+IGFyYXJpXCA7CivooqvlrrMgPiBoaWdhaVwgOwor56+A5rCXID4gc2Vra2lcIDsKK+ijj+WcsCA+IHVyYWppXCA7CivpjY3ph5EgPiBtZWtraVwgOwor5ZiJ57SNID4ga2Fub3VcIDsKK+a3q+miqCA+IGlucHV1XCA7CivmiZPogIUgPiBkYXNoYVwgOwor5Zyw5aOwID4gamlnb2VcIDsKK+icv+ickiA+IGVuJydlblwgOwor5re76ZmEID4gdGVucHVcIDsKK+WbuuW9oiA+IGtva2VpXCA7Civmipjnm64gPiBvcmltZVwgOwor5Zu95bqrID4ga29ra29cIDsKK+a/g+W6piA+IG5vdWRvXCA7CivnrYbnpo0gPiBoaWtrYVwgOwor6Jy76JuJID4gdG9uYm9cIDsKK+ihjOaWuSA+IHl1a3VlXCA7CivooY3mlocgPiBlbmJ1blwgOwor6KO45YOPID4gcmF6b3VcIDsKK+Wbm+aJiyA+IHNoaWRlXCA7Civlm7PlvaIgPiB6dWtlaVwgOwor5Z6C5LiLID4gc3Vpa2FcIDsKK+icgui1tyA+IGhvdWtpXCA7CivvvLDvvKMgPiBwxKtzaMSrXCA7CivmiZPnt5ogPiBkYXNlblwgOwor5Zyw5ZuzID4gY2hpenVcIDsKK+ihqOaEjyA+IGh5b3VpXCA7CivmioDnoJQgPiBnaWtlblwgOwor5Zyf5aOMID4gZG9qb3VcIDsKK+aJi+e5lCA+IHRlb3JpXCA7Civoo7jkvZMgPiByYXRhaVwgOwor5Zuz5belID4genVrb3VcIDsKK+ihm+aJgCA+IGVpc2hvXCA7CivoobDlvq4gPiBzdWliaVwgOwor6KOP5ZCNID4gdXJhbmFcIDsKK+Wcn+WhiiA+IGRva2FpXCA7CivmiYvnt7QgPiB0ZXJlblwgOwor5Zyf5aGBID4gZG9ydWlcIDsKK+Wcn+WhgCA+IGRvYmVpXCA7CivllJDpn7MgPiB0b3VvblwgOwor5Zug5b6qID4gaW5qdW5cIDsKK+ewv+WkliA+IGJvZ2FpXCA7Civlm57lv4wgPiBrYWlraVwgOwor5o6h5ZCmID4gc2FpaGlcIDsKK+aKgOeboyA+IGdpa2FuXCA7Civlm73lrrYgPiBrb2trYVwgOwor5oiO6JG1ID4ganV1a2lcIDsKK+WZtOawlyA+IGZ1bmtpXCA7CivnqbrovLggPiBrdXV5dVwgOwor5Zyf5ZywID4gdG9jaGlcIDsKK+ijnOWFhSA+IGhvanV1XCA7CivlnZHlhJIgPiBrb3VqdVwgOwor5Zu65a6aID4ga290ZWlcIDsKK+WcsOWUhCA+IGppdXRhXCA7Civlm7rlroggPiBrb3NodVwgOwor5oyZ5o6qID4ga3lvc29cIDsKK+aJk+eulyA+IGRhc2FuXCA7CivlnZDlg48gPiB6YXpvdVwgOwor5Zyf5ZqiID4gZG9ub3VcIDsKK+ijgeWPryA+IHNhaWthXCA7CivlnLDlkbMgPiBjaGltaVwgOwor56qB6LW3ID4gdG9ra2lcIDsKK+WWtuiIjiA+IGVpc2hhXCA7Civlm57luLAgPiBrYWlraVwgOwor5ry45qyhID4gemVuamlcIDsKK+WWq+iMtiA+IGtpc3NhXCA7Civnqbrot68gPiBrdXVyb1wgOwor5Zu95aiBID4ga29rdWlcIDsKK+a9nOaZgiA+IHNlbmppXCA7CivlnLDljLogPiBjaGlrdVwgOwor5oyH5o+uID4gc2hpa2lcIDsKK+aMieaOkiA+IGFuYmFpXCA7Civoo5zku7sgPiBob25pblwgOwor5ryr5q2pID4gbWFucG9cIDsKK+exs+S+oSA+IGJlaWthXCA7CivooYbmhI8gPiBzaHV1aVwgOwor5ryB54GrID4gZ3lva2FcIDsKK+aHh+ipsSA+IGtvbndhXCA7CivnqbrosrsgPiBrdXVoaVwgOwor6JyJ6J2jID4gZnV5dXVcIDsKK+ibruiqniA+IGJhbmdvXCA7Civoo4XlhbcgPiBzb3VndVwgOwor5oiv57W1ID4gemFyZWVcIDsKK+WdkOS5lyA+IHpham91XCA7Civlm6PlrZAgPiBkYW5nb1wgOwor5Zyf5Y+wID4gZG9kYWlcIDsKK+a2vOmbqCA+IHJ5b3V1XCA7Civoo4XlgpkgPiBzb3ViaVwgOwor5Zug5a2QID4gaW5zaGlcIDsKK+aMieaJiyA+IGFuc2h1XCA7CivlnYrkuLsgPiBib3V6dVwgOwor6KGG5b6SID4gc2h1dG9cIDsKK+a8j+a0qSA+IHJvdWVpXCA7CivlnKfliLYgPiBhc3NlaVwgOwor5Zub5a2jID4gc2hpa2lcIDsKK+WWtue5lSA+IGVpemVuXCA7CivlmajmorAgPiBraWthaVwgOwor56e76aeQID4gaWNodXVcIDsKK+aMgeaIkiA+IGppa2FpXCA7CivomY7prZogPiBva296ZVwgOwor566X5pyoID4gc2FuZ2lcIDsKK+WcsOS+oSA+IGNoaWthXCA7CivmiYvnm7ggPiB0ZXNvdVwgOwor5Zmo5p2QID4ga2l6YWlcIDsKK+mRkeafuyA+IGthbnNhXCA7CivlnKflgJIgPiBhdHRvdVwgOwor5rW36bC7ID4gYW5hZ29cIDsKK+aLheaetiA+IHRhbmthXCA7Civpi63pi5IgPiBlaWhvdVwgOwor5o6S5LuWID4gaGFpdGFcIDsKK+aGgui6qyA+IHVraW1pXCA7CivmibnngrkgPiBoaXRlblwgOwor5Zyf5YG2ID4gZG9ndXVcIDsKK+ihjOWuriA+IGFuZ3V1XCA7CivlnLDkuIsgPiBjaGlrYVwgOwor566H5p2hID4ga2Fqb3VcIDsKK+Wcn+S+ryA+IGRva291XCA7CivmiKbnpo0gPiBzZW5rYVwgOwor562J5ripID4gdG91b25cIDsKK+a/g+WMliA+IG5vdWthXCA7Civlk4DpoZggPiBhaWdhblwgOwor5oy/5ZuzID4gc291enVcIDsKK+Wcn+S6uiA+IGRvamluXCA7Civmv4DljJYgPiBnZWtrYVwgOwor5oSb6aSQID4gYWlzYW5cIDsKK+WSvemgrSA+IGludG91XCA7CivnrofmlbAgPiBrb3N1dVwgOwor5ZaE576OID4gemVuYmlcIDsKK+aKleapnyA+IHRvdWtpXCA7Civom4fooYwgPiBkYWtvdVwgOwor5oqA5rOVID4gZ2lob3VcIDsKK+ihoeWZqCA+IGtvdWtpXCA7CivmtYXpu4QgPiBhc2FnaVwgOwor5oW26LOAID4ga2VpZ2FcIDsKK+aLrOW8pyA+IGtha2tvXCA7CivnrYnmr5QgPiB0b3VoaVwgOwor5oqb5qOEID4gaG91a2lcIDsKK+ihl+WbsyA+IGdhaXp1XCA7CivlnJLkuIEgPiBlbnRlaVwgOwor5ouH5oyHID4gYm9zaGlcIDsKK+aKleajhCA+IHRvdWtpXCA7CivmiZPngrkgPiBkYXRlblwgOwor5rW36ZynID4ga2FpbXVcIDsKK+a8j+aWlyA+IHJvdXRvXCA7Civnr4blrZcgPiB0ZW5qaVwgOwor5rih6Ii5ID4gdG9zZW5cIDsKK+a4oeiIqiA+IHRva291XCA7Civmu57mrKcgPiB0YWlvdVwgOwor5rer6KGMID4gaW5rb3VcIDsKK+evgOWtoyA+IHNla2tpXCA7CivnrofmiYAgPiBrYXNob1wgOwor5Zu65L2TID4ga290YWlcIDsKK+etlOahiCA+IHRvdWFuXCA7Civmi5jlvJUgPiBrb3VpblwgOwor56ul55S7ID4gZG91Z2FcIDsKK+a4qee/kiA+IHNhcmFpXCA7Civnr4DlqaYgPiBzZXBwdVwgOwor5ouQ5byVID4ga2FpaW5cIDsKK+WWneegtCA+IGthcHBhXCA7CivooYzlk6EgPiBrb3VpblwgOwor6KGX5Yy6ID4gZ2Fpa3VcIDsKK+m7hOmvmyA+IGtpZGFpXCA7CivlkozpoqggPiB3YWZ1dVwgOwor6J665peLID4gcmFzZW5cIDsKK+eon+itsCA+IHJpbmdpXCA7CivmhoLomZ4gPiB5dXVndVwgOwor5omL5rerID4gc2h1aW5cIDsKK+mLkui1tyA+IGhvdWtpXCA7CivmiZPms5UgPiBkYWhvdVwgOwor5rer6JWpID4gaW50b3VcIDsKK+enmOmNtSA+IGhpa2VuXCA7CivmibbmoZEgPiBmdXNvdVwgOwor6Jma6L6eID4ga3lvamlcIDsKK+ihm+WFtSA+IGVpaGVpXCA7CivmuKbnt5ogPiBrYXNlblwgOwor56q655+lID4ga2ljaGlcIDsKK+aEmumIjSA+IGd1ZG9uXCA7CivooYzli5kgPiBrb3VtdVwgOwor6byg6LypID4gc29oYWlcIDsKK+aMmeWPpSA+IGFnZWt1XCA7Civlm57ku5ggPiBrYWlmdVwgOwor56+E5ZuyID4gaGFuJydpXCA7CivmuKbntIsgPiBrYW1vblwgOwor5omN5rCXID4gc2Fpa2lcIDsKK+a1t+mHjCA+IGthaXJpXCA7CivpvKDouYogPiBzb2tlaVwgOwor5oim54GrID4gc2Vua2FcIDsKK+aKiuaPoSA+IGhhYWt1XCA7CivmgrLps7QgPiBoaW1laVwgOwor5rih57GzID4gdG9iZWlcIDsKK+aLs+WbuiA+IGdlbmtvXCA7CivmipXmiZMgPiB0b3VkYVwgOwor5oyH5ZG8ID4gc2hpa29cIDsKK+m6kum6nyA+IGtpcmluXCA7Civmi7flmaggPiBnb3VraVwgOwor5Zmo5a6YID4ga2lrYW5cIDsKK+mOlueKtiA+IHNham91XCA7CivmuqLmsLQgPiBpc3N1aVwgOwor5oWI6KiTID4gamlrdW5cIDsKK+a5lueVlCA+IGtvaGFuXCA7CivmtbfpgYsgPiBrYWl1blwgOwor5oaC6IumID4geXV1a3VcIDsKK+WXn+atjiA+IHNhdGFuXCA7CivmtbfovrogPiB1bWliZVwgOwor5oSb6LuKID4gYWlzaGFcIDsKK+aKiuaJiyA+IGhhc2h1XCA7CivmjIHlj4IgPiBqaXNhblwgOwor5omT5qOSID4gZGFib3VcIDsKK+a5r+eFjiA+IHl1c2VuXCA7Civmta7pgYogPiBmdXl1dVwgOwor5ryi5a2XID4ga2FuamlcIDsKK+aKkuaDhSA+IGpvam91XCA7Civnr4Dlj6UgPiBzZWtrdVwgOwor56e76Kq/ID4gaWNob3VcIDsKK+aMieWIhiA+IGFuYnVuXCA7CivmgqrprZQgPiBha3VtYVwgOwor5oqA5omLID4gZ2lzaHVcIDsKK+a5r+eBjCA+IHl1a2FuXCA7CivmiYvmobYgPiB0ZW9rZVwgOwor56iy6I23ID4gaW5hcmlcIDsKK+a6kOawjyA+IGdlbmppXCA7CivmipXlvbEgPiB0b3VlaVwgOwor5rW36LevID4ga2Fpcm9cIDsKK+aJtuaMgSA+IGZ1Y2hpXCA7CivmtabovrogPiB1cmFiZVwgOwor5ZKM6YeRID4gd2FraW5cIDsKK+m6nemmmSA+IGpha291XCA7CivpiI3pursgPiBkb25tYVwgOwor5ZWT56S6ID4ga2VpamlcIDsKK+aCqummrCA+IGFrdW1lXCA7CivmiYvmnKwgPiB0ZWhvblwgOwor5rib56OoID4gZ2VubWFcIDsKK+aCsumhmCA+IGhpZ2FuXCA7CivnqoHnoLQgPiB0b3BwYVwgOwor5rW36LGaID4gaXJ1a2FcIDsKK+aHkOeWkSA+IGthaWdpXCA7Civom4fnrqEgPiBqYWthblwgOwor5ZOA6KmpID4gYWlzaGlcIDsKK+a9ruS9jSA+IGNob3VpXCA7Civlk4DoqZ4gPiBhaXNoaVwgOwor5omT5pWwID4gZGFzdXVcIDsKK+aEmuirliA+IGd1cm9uXCA7CivmiKbmqZ8gPiBzZW5raVwgOwor5omA5pyfID4gc2hva2lcIDsKK+a8geWutiA+IGd5b2thXCA7CivmiYvmlqcgPiB0ZW9ub1wgOwor5ryU5aWPID4gZW5zb3VcIDsKK+m7memBjiA+IG1va2thXCA7Civmi53lj5cgPiBoYWlqdVwgOwor5rWq6LK7ID4gcm91aGlcIDsKK+aJi+aVsCA+IHRlc3V1XCA7CivmiLjmnb8gPiB0b2l0YVwgOwor5ryi5ZyfID4ga2FuZG9cIDsKK+a8lOWjhyA+IGVuZGFuXCA7CivmhJroqIggPiBndWtlaVwgOwor5rmv5rK7ID4gdG91amlcIDsKK+mJm+mMmCA+IGVuc3VpXCA7Civnr4DkvpsgPiBzZWtrdVwgOwor56uL5rS+ID4gcmlwcGFcIDsKK+azpemwjCA+IGRvam91XCA7CivnrYnlt64gPiB0b3VzYVwgOwor566h5Yy6ID4ga2Fua3VcIDsKK+aEmuimiyA+IGd1a2VuXCA7CivmioDluKsgPiBnaXNoaVwgOwor5oO56LW3ID4gamFra2lcIDsKK+aLkuWQpiA+IGt5b2hpXCA7CivpiZvpibEgPiBlbmtvdVwgOwor5ZGz6YaCID4gbWlyaW5cIDsKK+WRvemBiyA+IG1laXVuXCA7CivmioDlt6cgPiBnaWtvdVwgOwor5oqA5belID4gZ2lrb3VcIDsKK+m8u+iMuCA+IGJpam91XCA7CivpjKzno6ggPiByZW5tYVwgOwor56eY6KiIID4gaGlrZWlcIDsKK+engeiyuyA+IHNoaWhpXCA7CivmhI/oqLMgPiBpeWFrdVwgOwor6JiH6YCjID4gc29yZW5cIDsKK+WTuuiCsiA+IGhvaWt1XCA7CivmtL7pgaMgPiBoYWtlblwgOwor5oOz6LW3ID4gc291a2lcIDsKK+mKheiyqCA+IGRvdWthXCA7Civmgo3ppqwgPiBrYW5iYVwgOwor5oiv5pu4ID4gZ2lzaG9cIDsKK+mKmOiomCA+IG1laWtpXCA7CivmhJrooYwgPiBndWtvdVwgOwor56m655aOID4ga3V1c29cIDsKK+a1ruiogCA+IGZ1Z2VuXCA7CivmvIHlpKsgPiBneW9mdVwgOwor5oud5YW3ID4gaGFpZ3VcIDsKK+aIuOaVsCA+IGtvc3V1XCA7Civms6Lpq5ggPiBoYWtvdVwgOwor5oim5p6cID4gc2Vua2FcIDsKK+mKgOiyqCA+IGdpbmthXCA7Civnq6/mnKwgPiBoYWhvblwgOwor6bq76YWUID4gbWFzdWlcIDsKK+a0i+mWkyA+IHlvdW1hXCA7CivpiYTpjpYgPiB0ZXNzYVwgOwor56eB6K2wID4gc2hpZ2lcIDsKK+emgemMriA+IGtpbmtvXCA7CivmtYHou6IgPiBydXRlblwgOwor5ryi5ZKMID4ga2Fud2FcIDsKK+aJi+aKgCA+IHNodWdpXCA7CivpvLvohZQgPiBiaWtvdVwgOwor5rW06KGjID4geW9rdWlcIDsKK+a8geWgtCA+IGd5b2JhXCA7CivmuKbnirYgPiBrYWpvdVwgOwor5oSP6KGoID4gaWh5b3VcIDsKK+aIr+aWhyA+IGdpYnVuXCA7CivmtrLogqUgPiBla2loaVwgOwor5oqA5a6YID4gZ2lrYW5cIDsKK+engeiqniA+IHNoaWdvXCA7CivmiKbmmYIgPiBzZW5qaVwgOwor5rer56WgID4gaW5zaGlcIDsKK+epuueQhiA+IGt1dXJpXCA7CivmiYDmjIEgPiBzaG9qaVwgOwor5oeQ54KJID4ga2Fpcm9cIDsKK+a6gOacnyA+IG1hbmtpXCA7CivllrbmnpcgPiBlaXJpblwgOwor5rmW5rC0ID4ga29zdWlcIDsKK+WSjOiumiA+IHdhc2FuXCA7Civnp4HoqJggPiBzaGlraVwgOwor5oim5peXID4gc2Vua2lcIDsKK+err+aVsCA+IGhhc3V1XCA7CivlmJjlrZcgPiB1c29qaVwgOwor5oiQ5qGIID4gc2VpYW5cIDsKK+eliOmhmCA+IGtpZ2FuXCA7CivmuKnngrkgPiBvbnRlblwgOwor5rOi6aCtID4gaGF0b3VcIDsKK+aIkOaenCA+IHNlaWthXCA7CivmhJvolLUgPiBhaXpvdVwgOwor6bqm6YWSID4gYmlpcnVcIDsKK+WQjemmrCA+IG1laWJhXCA7CivlkozoqJMgPiB3YWt1blwgOwor5oi45oi4ID4ga29rb3VcIDsKK+WSjOinoyA+IHdha2FpXCA7Civms6LpnaIgPiBoYW1lblwgOwor566h5LiLID4ga2Fua2FcIDsKK+aJi+W9kyA+IHRlYXRlXCA7Civmgrzovp4gPiB0b3VqaVwgOwor56eY6JS1ID4gaGl6b3VcIDsKK+eosuepgiA+IGluYWhvXCA7CivpvLvnt5IgPiBoYW5hb1wgOwor5ZKM6KO9ID4gd2FzZWlcIDsKK+mLpOewviA+IGpvcmVuXCA7CivnqK7nqK4gPiBzaHVqdVwgOwor5ri45rOzID4geXV1ZWlcIDsKK+WSjOijhSA+IHdhc291XCA7Civmi4Xkv50gPiB0YW5wb1wgOwor5ZKM6KOBID4gd2FzYWlcIDsKK+aGguebriA+IHVraW1lXCA7Civph47pto8gPiB5YWtlaVwgOwor5rip5rmvID4gb250b3VcIDsKK+WQjOmfsyA+IGRvdW9uXCA7Civmhq7nhLYgPiBidXplblwgOwor5oKq6YGLID4gYWt1dW5cIDsKK+aHuOaetiA+IGtlbmdhXCA7CivmgqPpg6ggPiBrYW5idVwgOwor5ryB5Yy6ID4gZ3lva3VcIDsKK+aLieS4gSA+IHJhdGVuXCA7CivolqzpkbUgPiB5YWthblwgOwor6YqY6I+TID4gbWVpa2FcIDsKK+icnOafkSA+IG1pa2FuXCA7Civpu5LooaMgPiBrb2t1ZVwgOwor5rip5rOJID4gb25zZW5cIDsKK+aCoOmBoCA+IHl1dWVuXCA7CivmiKbmhI8gPiBzZW4nJ2lcIDsKK+aCn+mBkyA+IGdvZG91XCA7CivlkbPoposgPiBhamltaVwgOwor5rih5rW3ID4gdG9rYWlcIDsKK+WWtuaJgCA+IGVpc2hvXCA7CivmuKnmsLQgPiBvbnN1aVwgOwor6by756uvID4gYml0YW5cIDsKK+a4oea0iyA+IHRveW91XCA7CivmhJvogrIgPiBhaWlrdVwgOwor5ruF5aSaID4gbWV0dGFcIDsKK+WPt+mfsyA+IGdvdW9uXCA7Civmt6vnjKUgPiBpbndhaVwgOwor5ZaE5p6cID4gemVua2FcIDsKK+aDheiqvCA+IGpvdWdpXCA7CivmvIHlhbcgPiBneW9ndVwgOwor5oKq6LevID4gYWt1cm9cIDsKK+a1heiciiA+IGFzYXJpXCA7Civmg4XoqbEgPiBqb3V3YVwgOwor56iu55quID4gc2h1aGlcIDsKK+aEmuiAhSA+IGd1c2hhXCA7CivmhJrogIMgPiBndWtvdVwgOwor5oim5b6MID4gc2VuZ29cIDsKK+mJm+ijvSA+IGVuc2VpXCA7CivnpoDorbAgPiByaW5naVwgOwor5omN5aqbID4gc2FpZW5cIDsKK+aJh+WtkCA+IHNlbnN1XCA7CivmhbDnlZkgPiBpcnl1dVwgOwor56e757GNID4gaXNla2lcIDsKK+mHjummrCA+IG5vdW1hXCA7Civnq6/luqcgPiB0YW56YVwgOwor56aF6KmxID4gemVud2FcIDsKK+aIkeaFoiA+IGdhbWFuXCA7CivllpzmjaggPiBraXNoYVwgOwor5Y+k6aKoID4ga29mdXVcIDsKK+eosueUsCA+IGluYWRhXCA7Civlj5fpqJMgPiBqdWtlblwgOwor56m65rCXID4ga3V1a2lcIDsKK+aIkeaDhSA+IGdham91XCA7CivmiY3lpbMgPiBzYWlqb1wgOwor56m65q+NID4ga3V1Ym9cIDsKK+WUvua2siA+IGRhZWtpXCA7CivmuoDluqcgPiBtYW56YVwgOwor5Za25bqtID4gZWl0ZWlcIDsKK+emgeijoSA+IGtpbnJpXCA7CivnpoHoo48gPiBraW5yaVwgOwor5ZGz6JW+ID4gbWlyYWlcIDsKK+iZmuepuiA+IGtva3V1XCA7CivmgrLoprMgPiBoaWthblwgOwor5re15rqQID4gZW5nZW5cIDsKK+WSjOiIuSA+IHdhc2VuXCA7CivmtIvoqp4gPiB5b3Vnb1wgOwor5oWI55y8ID4gamlnZW5cIDsKK+WWtuW3oyA+IGVpc291XCA7CivnpL7pgYsgPiBzaGF1blwgOwor5om55YikID4gaGloYW5cIDsKK+aJi+WeoiA+IHRlYWthXCA7Civono3lkowgPiB5dXV3YVwgOwor5oKq6KiIID4gYWtrZWlcIDsKK+aJueWHhiA+IGhpanVuXCA7CivpvJPnq6UgPiBrb2RvdVwgOwor5ZCP6YGTID4gcm9kb3VcIDsKK+aKleS4jiA+IHRvdXlvXCA7CivmipXkuIsgPiB0b3VrYVwgOwor5oe45oOzID4ga2Vzb3VcIDsKK+WPl+mboyA+IGp1bmFuXCA7CivmiLjlpJYgPiBrb2dhaVwgOwor5oe65oKUID4gemFuZ2VcIDsKK+mLs+eJqSA+IGltb25vXCA7CivmiY3lmaggPiBzYWlraVwgOwor56uq5a2QID4ganVzaGlcIDsKK+espuWQiCA+IGZ1Z291XCA7Civmt7vmsLQgPiBzb3V6dVwgOwor56ym5Y+3ID4gZnVnb3VcIDsKK+aKgOWAkiA+IGdpdG91XCA7CivmuKnmmpYgPiBvbmRhblwgOwor562J5L6hID4gdG91a2FcIDsKK+a4oeadpSA+IHRvcmFpXCA7CivlkI3ovp4gPiBtZWlqaVwgOwor5oGl6YOoID4gY2hpYnVcIDsKK+erpeWtkCA+IGRvdWppXCA7Civmh7jlv7UgPiBrZW5lblwgOwor5oKq6KGMID4gYWtrb3VcIDsKK+mFuOm8uyA+IHNhbmJpXCA7Civmt6HmuZYgPiB0YW5rb1wgOwor6buE6IqxID4ga291a2FcIDsKK+aIkOWwsSA+IGpvdWp1XCA7Civnp5/nqI4gPiBzb3plaVwgOwor5ZaE5oSPID4gemVuJydpXCA7Civll5/lmIYgPiBzYXRhblwgOwor5riF5qWaID4gc2Vpc29cIDsKK+m8oOeblyA+IHNvdG91XCA7Civms7Doqp4gPiB0YWlnb1wgOwor5oSb56S+ID4gYWlzaGFcIDsKK+ayv+mBkyA+IGVuZG91XCA7CivllqrlrrYgPiBzb3VrYVwgOwor5Y+k6YqtID4ga29zZW5cIDsKK+ekvuiyuyA+IHNoYWhpXCA7Civnq6XlpbMgPiBkb3Vqb1wgOwor5ZCm6KqNID4gaGluaW5cIDsKK+a6tuWMliA+IHlvdWthXCA7CivmuZblupUgPiBrb3RlaVwgOwor5reL5ryTID4gcmlucmlcIDsKK+aJgOWToSA+IHNob2luXCA7CivlmInkvosgPiBrYXJlaVwgOwor5riF5qCEID4gc2VpZWlcIDsKK+m8oOeWqyA+IHNvZWtpXCA7CivlloTlvowgPiB6ZW5nb1wgOwor56WI6KuLID4ga2lzZWlcIDsKK+azleiyqCA+IGhvdWthXCA7CivnpYjoqpMgPiBraXNlaVwgOwor5rWB572qID4gcnV6YWlcIDsKK+err+WdkCA+IHRhbnphXCA7Civll5rlkr0gPiBvZXRzdVwgOwor5oGp6LWmID4gb25zaGFcIDsKK+WSjOe0mSA+IHdhc2hpXCA7CivmiYvli6IgPiB0ZXplaVwgOwor5rib5pGpID4gZ2VubWFcIDsKK+WPsOi+niA+IGRhaWppXCA7Civmt5jmsbAgPiB0b3V0YVwgOwor5oGp6LOcID4gb25zaGlcIDsKK+a0kuiQvSA+IHNoYXJlXCA7CivmtbfnoIIgPiBrYWlzYVwgOwor5omL5YmNID4gdGVtYWVcIDsKK+WPsOi8qiA+IGRhaXdhXCA7CivmuZblsrggPiBrb2dhblwgOwor5rS1576OID4ganVuYmlcIDsKK+WPpOmBkyA+IGtvZG91XCA7CivnrKzkupQgPiBkYWlnb1wgOwor56ys5LqMID4gZGFpbmlcIDsKK+ekuuirhyA+IGppZGFuXCA7Civph47pg44gPiB5YXJvdVwgOwor6YeO6YG4ID4geWFzZW5cIDsKK+azleiqniA+IGhvdWdvXCA7CivlkIjorbAgPiBnb3VnaVwgOwor5rOV6KmxID4gaG91d2FcIDsKK+axl+mmrCA+IGthbmJhXCA7Civmh4fmhI8gPiBrb24nJ2lcIDsKK+aHiuaCqSA+IG91bm91XCA7CivmiZPlgJIgPiBkYXRvdVwgOwor5ZCN6KqJID4gbWVpeW9cIDsKK+aEmueXtCA+IGd1Y2hpXCA7Civllrblm6MgPiBlaWRhblwgOwor5rC06baPID4ga3VpbmFcIDsKK+WPiemKgyA+IHNhanV1XCA7CivmuKnmg4UgPiBvbmpvdVwgOwor56e754mSID4gaWNob3VcIDsKK+eri+WkjyA+IHJpa2thXCA7CivllJDmqpwgPiB0b3VoaVwgOwor5oOF576pID4gam91Z2lcIDsKK+mMpuaXlyA+IGtpbmtpXCA7CivmhJvnlKggPiBhaXlvdVwgOwor5rOV6KaPID4gaG91a2lcIDsKK+aHiOaAoCA+IGdldGFpXCA7Civnp5/nlYwgPiBzb2thaVwgOwor5oSa55SfID4gZ3VzZWlcIDsKK+mHiOi/piA+IHNoYWthXCA7Civmua/lnqIgPiB5dWFrYVwgOwor5oGL6LevID4ga29pamlcIDsKK+a0vuexsyA+IGhhYmVpXCA7CivmiJDlm6AgPiBzZWlpblwgOwor5Y6m6ZaAID4ga2Ftb25cIDsKK+azleiiqyA+IGhhcHBpXCA7CivmtIvoiJ4gPiB5b3VidVwgOwor6JmO54u8ID4ga29yb3VcIDsKK+WPpOi2viA+IGtvc2hpXCA7Civol43oibIgPiBhaWlyb1wgOwor56uv5Y2IID4gdGFuZ29cIDsKK+iZmueEoSA+IGt5b211XCA7CivmiYvku6MgPiB0ZWRhaVwgOwor5oSb546pID4gYWlnYW5cIDsKK+WPl+i6qyA+IHVrZW1pXCA7Civmg6jnpo0gPiBzYW5rYVwgOwor5rih5b6hID4gdG9neW9cIDsKK+awtOmtlCA+IHN1aW1hXCA7Civph47otqMgPiB5YXNodVwgOwor5Y+k6LOiID4ga29rZW5cIDsKK+aIpuWLmSA+IHNlbm11XCA7Civmta7nlJ8gPiBmdXNlaVwgOwor5b+r6Z+zID4ga2Fpb25cIDsKK+WWp+WYqSA+IGtlbmthXCA7CivnqJrmsJcgPiBjaGlraVwgOwor5rip5bivID4gb250YWlcIDsKK+aJgOS9nCA+IHNob3NhXCA7Civlj6TosaogPiBrb2dvdVwgOwor6YeR6LKoID4ga2lua2FcIDsKK+aEm+eKrCA+IGFpa2VuXCA7CivmtbfnjbogPiByYWtrb1wgOwor5oiQ5ZOhID4gc2VpaW5cIDsKK+a6luWCmSA+IGp1bmJpXCA7Civmg6PnpL4gPiBzb3VqYVwgOwor56Ov6L66ID4gaXNvYmVcIDsKK+mJm+euoSA+IGVua2FuXCA7CivpvLvmsYEgPiBiaWp1dVwgOwor5rW354u4ID4ga2FpcmlcIDsKK+aDsOecoCA+IGRhbWluXCA7CivmiL/kuosgPiBib3VqaVwgOwor5Y+Z6LOcID4gam9zaGlcIDsKK+aIkOWQpiA+IHNlaWhpXCA7Civlj5fotIggPiBqdXpvdVwgOwor5oKq5721ID4gYWt1YmFcIDsKK+aIkOWPpSA+IHNlaWt1XCA7CivmiYDkuI4gPiBzaG95b1wgOwor5oKj6ICFID4ga2FuamFcIDsKK+WPpOiruiA+IGtvZ2VuXCA7Civlj6/oppYgPiBrYXNoaVwgOwor5Y+l6KqtID4ga3V0b3VcIDsKK+m7hOemjSA+IGtvdWthXCA7CivnqLLmnKggPiBpbmFnaVwgOwor5oim5YKZID4gc2VuYmlcIDsKK+WPo+iqniA+IGtvdWdvXCA7Civlj6ToqakgPiBrb3NoaVwgOwor5oi45Li7ID4ga29zaHVcIDsKK+mHjOisoSA+IHJpeW91XCA7Civlj6ToqJMgPiBrb2t1blwgOwor56m65bejID4gYWtpc3VcIDsKK+WPpOiogCA+IGtvZ2VuXCA7CivmgqrnuIEgPiBha3VlblwgOwor5rip5a2YID4gb256b25cIDsKK+WPl+ismyA+IGp1a291XCA7CivljbDpnaIgPiBpbm1lblwgOwor5rG96LuKID4ga2lzaGFcIDsKK+WPoeimpyA+IGVpcmFuXCA7Civpu4TnoIIgPiBrb3VzYVwgOwor56mO5omNID4gZWlzYWlcIDsKK+mHjOiogCA+IHJpZ2VuXCA7CivljZjpqI4gPiB0YW5raVwgOwor6YaN6YaQID4gZGFpZ29cIDsKK+a4iOW6piA+IHNhaWRvXCA7CivljbHpm6MgPiBraW5hblwgOwor5rOz6ICFID4gZWlzaGFcIDsKK+WQjeiPkyA+IG1laWthXCA7Civlj4Los4AgPiBzYW5nYVwgOwor5Y2x6Zm6ID4ga2lrZW5cIDsKK+WWtuWAiSA+IGVpc291XCA7CivllqrlhbcgPiBzb3VndVwgOwor5b+F6aCIID4gaGlzc3VcIDsKK+aGguaHvCA+IHl1dWt1XCA7Civlj43oqp4gPiBoYW5nb1wgOwor6by75qC5ID4gYmlrb25cIDsKK+WPi+iqvCA+IHl1dWdpXCA7CivlkI3oirEgPiBtZWlrYVwgOwor5rG66LW3ID4ga2Vra2lcIDsKK+m6u+edoSA+IG1hc3VpXCA7Civlj43oqLQgPiBoYW5zb1wgOwor6Yut5pWPID4gZWliaW5cIDsKK+iYh+eUnyA+IHNvc2VpXCA7CivmhJvmtrIgPiBhaWVraVwgOwor5Y+C6K2wID4gc2FuZ2lcIDsKK+WQjeiIlyA+IG1laWhvXCA7CivmtL7nlJ8gPiBoYXNlaVwgOwor56eY5rmvID4gaGl0b3VcIDsKK+m7hOeWuCA+IG91ZGFuXCA7CivmsJfpoqggPiBraWZ1dVwgOwor5rW35re1ID4ga2FpZW5cIDsKK+eptOWtkCA+IGFuYWdvXCA7Civlloflj60gPiByYXBwYVwgOwor6Y285Yy7ID4gaGFyaWlcIDsKK+aAquionSA+IGtlZ2VuXCA7CivolqznvZAgPiB5YWthblwgOwor6Jas57y2ID4geWFrYW5cIDsKK+aAneitsCA+IHNoaWdpXCA7CivnqY/lvZMgPiBvbnRvdVwgOwor6YeO6JuuID4geWFiYW5cIDsKK+WNsOmRkSA+IGlua2FuXCA7CivmgKjoqIAgPiBlbmdlblwgOwor5Y2I6aSQID4gZ29zYW5cIDsKK+W+rumiqCA+IGJpZnV1XCA7CivmuK/lm7MgPiBrb3V6dVwgOwor5rGa6L6xID4gb2pva3VcIDsKK+WTgOatkyA+IGFpa2FuXCA7Civmta7muLggPiBmdXl1dVwgOwor6JaE6I23ID4gaGFra2FcIDsKK+mKg+eBqyA+IGp1dWthXCA7CivmhJrmsJEgPiBndW1pblwgOwor56eY5rOVID4gaGlob3VcIDsKK+WRiOekuiA+IHRlaWppXCA7CivllqrkuLsgPiBtb3NodVwgOwor5Y2X6Zi/ID4gbmFuJydhXCA7Civmta7mtaogPiBmdXJvdVwgOwor6buE54+tID4gb3VoYW5cIDsKK+a4vuWQjSA+IGFkYW5hXCA7CivmtbfmsJcgPiBrYWlraVwgOwor5b6h6aOvID4gZ29oYW5cIDsKK+awl+majyA+IGtpenVpXCA7CivlkI3nvqkgPiBtZWlnaVwgOwor5rOi57eaID4gaGFzZW5cIDsKK+aymeialSA+IGdva2FpXCA7CivlkIznvqkgPiBkb3VnaVwgOwor5Y2R6ZmLID4gaGlyb3VcIDsKK+awkemcgCA+IG1pbmp1XCA7CivnqIDmm7ggPiBraXNob1wgOwor6Jma5qCEID4ga3lvZWlcIDsKK+a2heangyA+IG5laGFuXCA7Civmt7vlrZcgPiBzb2VqaVwgOwor5ZCI5769ID4ga2FwcGFcIDsKK+WToeaVsCA+IGluenV1XCA7Civmta7msJcgPiB1d2FraVwgOwor5rOi57SLID4gaGFtb25cIDsKK+emheeUuyA+IHplbmdhXCA7CivnqbTloLQgPiBhbmFiYVwgOwor56KR6YqYID4gaGltZWlcIDsKK+WSjOa8oiA+IHdha2FuXCA7Civmh5Dlj6QgPiBrYWlrb1wgOwor5oSP5qyyID4gaXlva3VcIDsKK+aDheeQhiA+IGpvdXJpXCA7Civpi63mhJ8gPiBlaWthblwgOwor6YeO6I+cID4geWFzYWlcIDsKK+WPpOiMtiA+IGtvY2hhXCA7CivnpZ7npYcgPiBqaW5naVwgOwor5rWE54GrID4gam91a2FcIDsKK+elnuekviA+IGppbmphXCA7Civpu4Tnh5AgPiBvdXJpblwgOwor5rWF54CsID4gYXNhc2VcIDsKK+ayueiEgiA+IHl1c2hpXCA7CivlvqHpm6MgPiBnb25hblwgOwor6Ymb54mIID4gZW5iYW5cIDsKK+mHjeiNtyA+IGp1dWthXCA7Civom7nljJYgPiB5b3VrYVwgOwor6YeO6I2JID4geWFzb3VcIDsKK+W+oemZsCA+IG9rYWdlXCA7Civlj6/og70gPiBrYW5vdVwgOwor5Y6f6KqeID4gZ2VuZ29cIDsKK+ialeW6pyA+IHNhbnphXCA7CivmsLTpgYsgPiBzdWl1blwgOwor5rip5Y6aID4gb25rb3VcIDsKK+a5luS4iiA+IGtvam91XCA7Civlj7Pnv7wgPiB1eW9rdVwgOwor6YqA5rOiID4gZ2lucGFcIDsKK+WOmuiqvCA+IGtvdWdpXCA7CivlvozpoacgPiBrb3Vrb1wgOwor6YqA5rKzID4gZ2luZ2FcIDsKK+aFleaDhSA+IGJvam91XCA7CivlkozmtIsgPiB3YXlvdVwgOwor5ZWW5ZG1ID4gdGFua2FcIDsKK+WQjeewvyA+IG1laWJvXCA7CivljLvplbcgPiBpY2hvdVwgOwor5Yy66ZaTID4ga3VrYW5cIDsKK+a0i+eUuyA+IHlvdWdhXCA7Civmt4vlt7QgPiByaW5wYVwgOwor5ZaE5LqLID4gemVuamlcIDsKK+a4puWLlSA+IGthZG91XCA7Civolqznpo0gPiB5YWtrYVwgOwor5oWH5oeDID4gaW5naW5cIDsKK+W/teiqpiA+IG5lbmp1XCA7CivmhJvmm7ggPiBhaXNob1wgOwor56WI56W3ID4ga2l0b3VcIDsKK+WMlemmliA+IGhpc2h1XCA7Civmsr/nt5ogPiBlbnNlblwgOwor6YeR6IKlID4ga2lucGlcIDsKK+WPpOiBliA+IGtvc2VpXCA7Civmg4XnhJQgPiBqb3VlblwgOwor5Y6f6KKrID4gZ2VucGlcIDsKK+iVl+iNiSA+IHJvc291XCA7Civmt6vlpZQgPiBpbnBvblwgOwor5Y+j6ICzID4ga291amlcIDsKK+WPpOiAgSA+IGtvcm91XCA7CivmsJfph40gPiBraW9tb1wgOwor5Y2X6YO9ID4gbmFudG9cIDsKK+WNl+mDqCA+IG5hbmJ1XCA7CivpibHmsrkgPiBrb3V5dVwgOwor5oOF54KOID4gam91ZW5cIDsKK+a3q+WjsiA+IGluYmFpXCA7Civnp5jmnKwgPiBoaWhvblwgOwor5oSa5pinID4gZ3VtYWlcIDsKK+a1gea1qiA+IHJ1cm91XCA7Civmg4XngasgPiBqb3VrYVwgOwor5rC06LevID4gc3Vpcm9cIDsKK+aFiOaBtSA+IGppa2VpXCA7Civnp5jmm7ggPiBoaXNob1wgOwor5rCX6YWNID4ga2VoYWlcIDsKK+iWrOeglCA+IHlhZ2VuXCA7Civlj5fog44gPiBqdXRhaVwgOwor5b6u6Ya6ID4gYmlrdW5cIDsKK+WNiumHjCA+IGhhbnJpXCA7Civms5Xnp5EgPiBob3VrYVwgOwor5rK557SZID4geXVzaGlcIDsKK+eosuWtkCA+IGluYWdvXCA7CivmsJfpgZMgPiBraWRvdVwgOwor5q+U6aGeID4gaGlydWlcIDsKK+a1geawkSA+IHJ1bWluXCA7CivljYPph4wgPiBzZW5yaVwgOwor56eY5pa5ID4gaGlob3VcIDsKK+WQjOelliA+IGRvdXNvXCA7CivmhYvluqYgPiB0YWlkb1wgOwor6YmE54GrID4gdGVra2FcIDsKK+ays+ezuyA+IGtha2VpXCA7Civnp4HmoYggPiBzaGlhblwgOwor56aN5rqQID4ga2FnZW5cIDsKK+egtOmhlCA+IGhhZ2FuXCA7CivljZHov5EgPiBoaWtpblwgOwor6buE5rKzID4ga291Z2FcIDsKK+W+oemHnCA+IG9rYW1hXCA7CivlvqHph5EgPiBva2FuZVwgOwor5rWm5puyID4gdXJhd2FcIDsKK+a0u+awlyA+IGtha2tpXCA7CivljYrpgJQgPiBoYW50b1wgOwor56iL5bqmID4gdGVpZG9cIDsKK+mHjee4gSA+IGp1dWVuXCA7Civlj6TntJkgPiBrb3NoaVwgOwor6YOo6aaWID4gYnVzaHVcIDsKK+mDvembuyA+IHRvZGVuXCA7CivpvJPmiYsgPiBrb3NodVwgOwor6YqD5p62ID4ganV1a2FcIDsKK+a3t+WSjCA+IGtvbndhXCA7Civmsb3oiYcgPiBraXRlaVwgOwor5rG96Ii5ID4ga2lzZW5cIDsKK+avlOmaoyA+IGhpcmluXCA7CivmhJrmjJkgPiBndWt5b1wgOwor5Y+L576pID4geXV1Z2lcIDsKK+WPpOexsyA+IGtvbWFpXCA7Civlk4DmhqsgPiBhaWJpblwgOwor5rib5L6hID4gZ2Vua2FcIDsKK+WTgOaGkCA+IGFpcmVuXCA7Civlvanpm7IgPiBzYWl1blwgOwor5rKz56ulID4ga2FwcGFcIDsKK+a3teWPoiA+IGVuc291XCA7Civpg6jpoZ4gPiBidXJ1aVwgOwor5ZOA5oSfID4gYWlrYW5cIDsKK+azleeahyA+IGhvdW91XCA7Civlk4DmhI0gPiBhaWJpblwgOwor6JSs6I+cID4gc29zYWlcIDsKK+ejqOiAlyA+IG1hbW91XCA7Civmta7mj5ogPiBmdXlvdVwgOwor5ZKM5pysID4gd2Fob25cIDsKK+a2suWuiSA+IGVraWFuXCA7CivnqbrkvZAgPiBrdXVzYVwgOwor5rih5LiWID4gdG9zZWlcIDsKK+WPl+e0jSA+IGp1bm91XCA7CivllJDlnJ8gPiB0b3Vkb1wgOwor5re75YqgID4gdGVua2FcIDsKK+WTgOaDhSA+IGFpam91XCA7Civlk4DmgrwgPiBhaXRvdVwgOwor5ZKM5pu4ID4gd2FzaG9cIDsKK+aEm+aGkCA+IGFpcmVuXCA7CivnoLTploAgPiBoYW1vblwgOwor5Y+X57K+ID4ganVzZWlcIDsKK+aCqua8oiA+IGFra2FuXCA7CivljZHos6QgPiBoaXNlblwgOwor5oaC5ZOtID4gdWtpbmVcIDsKK+WNkeizjiA+IGhpc2VuXCA7Civlj5fnsokgPiBqdWZ1blwgOwor6YOo6Z2iID4gYnVtZW5cIDsKK+m8u+WtlCA+IGJpa291XCA7Civnp5HmjJkgPiBrYWt5b1wgOwor55+u6baPID4gY2hhYm9cIDsKK+avq+mHkCA+IGdvdXJpXCA7CivmhJvmg7MgPiBhaXNvdVwgOwor5oOF5q2MID4gam91a2FcIDsKK+m7hOaliiA+IHRzdWdlXCA7CivmhJvmg4UgPiBhaWpvdVwgOwor6Yuz5Z6LID4gaWdhdGFcIDsKK+W+ruizpCA+IGJpc2VuXCA7Civlvq7os44gPiBiaXNlblwgOwor5b6M6YOoID4ga291YnVcIDsKK+WNsOihjCA+IGlua291XCA7CivlkI3nlLsgPiBtZWlnYVwgOwor6byg5bejID4gc29zb3VcIDsKK+mDqOmaiiA+IGJ1dGFpXCA7CivlkozmlocgPiB3YWJ1blwgOwor5rG9572QID4ga2lrYW5cIDsKK+axvee8tiA+IGtpa2FuXCA7CivmhI/mhb4gPiBpeW9rdVwgOwor5Y2Y6KqeID4gdGFuZ29cIDsKK+iWhOedgCA+IHVzdWdpXCA7Civmg4XmqZ8gPiBqb3VraVwgOwor5rOi54q2ID4gaGFqb3VcIDsKK+ekuuePviA+IGppZ2VuXCA7Civpu4TmoYMgPiBvdXRvdVwgOwor5Y+k56WgID4ga29zaGlcIDsKK+iWhOebriA+IHVzdW1lXCA7CivlkZHmsJcgPiBub25raVwgOwor5b6S6LypID4gdG9oYWlcIDsKK+azleeQhiA+IGhvdXJpXCA7Civph4znqIsgPiByaXRlaVwgOwor5Y2Y6KiYID4gdGFua2lcIDsKK+ehrOiyqCA+IGtvdWthXCA7Civph47npr0gPiB5YWtpblwgOwor6YeN56eRID4ganV1a2FcIDsKK+mDqOmWgCA+IGJ1bW9uXCA7CivlvoXpgb8gPiB0YWloaVwgOwor5oWI5aeRID4ga3V3YWlcIDsKK+ibh+S9kyA+IGphdGFpXCA7CivmhJ/luqYgPiBrYW5kb1wgOwor6byO5bqnID4gdGVpemFcIDsKK+azleeOiyA+IGhvdW91XCA7CivnqL3lj6QgPiBrZWlrb1wgOwor5oSa5byfID4gZ3V0ZWlcIDsKK+aEmuW8hCA+IGd1cm91XCA7CivpvLvlo7AgPiBiaXNlaVwgOwor6Jar54WZID4ga3VuZW5cIDsKK+WPo+eikSA+IGtvdWhpXCA7CivlvoDpgoQgPiBvdWthblwgOwor5rKD57SgID4geW91c29cIDsKK+WQiOeQhiA+IGdvdXJpXCA7CivmsrvnmZIgPiBjaGl5dVwgOwor5oKy5q2OID4gaGl0YW5cIDsKK+axmuiHrSA+IG9zaHV1XCA7CivljZHoqIAgPiBoaWdlblwgOwor5Yqg6b2iID4ga2FyZWlcIDsKK+W+gemAlCA+IHNlaXRvXCA7CivpvKDlrrMgPiBzb2dhaVwgOwor5byn6auYID4ga29rb3VcIDsKK+mJm+advyA+IGVuYmFuXCA7CivmsJHoqbEgPiBtaW53YVwgOwor5q+U6YeNID4gaGlqdXVcIDsKK+WNkeimiyA+IGhpa2VuXCA7Civlk6HlpJYgPiBpbmdhaVwgOwor5b6A6L+UID4gb3VoZW5cIDsKK+emjeaguSA+IGtha29uXCA7CivomZrlrZcgPiBreW9qaVwgOwor5re75LuYID4gdGVucHVcIDsKK+aGkeS+nSA+IGh5b3VpXCA7Civph47noLIgPiB5YWhvdVwgOwor5Y+h55+lID4gZWljaGlcIDsKK+eovOWLlSA+IGthZG91XCA7CivljZjooaMgPiBoaXRvZVwgOwor5oSJ5b+rID4geXVrYWlcIDsKK+epj+WBpSA+IG9ua2VuXCA7Civljp/nvqkgPiBnZW5naVwgOwor5rOi54C+ID4gaGFyYW5cIDsKK+ayueeUsCA+IHl1ZGVuXCA7CivlvL7pm6ggPiBkYW4nJ3VcIDsKK+epj+S+vyA+IG9uYmluXCA7Civms6Lmv6QgPiBoYXRvdVwgOwor5Y+w55SrID4gdGFpaG9cIDsKK+mDvemCkSA+IHRveXV1XCA7CivlkozmiKYgPiB3YXNlblwgOwor5Y+v55SoID4ga2F5b3VcIDsKK+m5uea5liA+IGthbmtvXCA7CivmsrPnlZQgPiBrYWhhblwgOwor5YuH6aObID4geXV1aGlcIDsKK+WNiuijuCA+IGhhbnJhXCA7CivlvoTot68gPiBrZWlyb1wgOwor5b6h6KmgID4gZ3lvZWlcIDsKK+mHjeebriA+IG9tb21lXCA7CivljYrooqsgPiBoYXBwaVwgOwor56eB5oCoID4gc2hpZW5cIDsKK+eggumYsiA+IHNhYm91XCA7Civlvq7ooYwgPiBiaWtvdVwgOwor5ZGq5paHID4ganVtb25cIDsKK+azs+azlSA+IGVpaG91XCA7CivlvqHopqcgPiBnb3JhblwgOwor56i85YONID4ga2Fkb3VcIDsKK+WQkOeAiSA+IHRvc2hhXCA7Civmt6vkubEgPiBpbnJhblwgOwor5Y+X55uKID4ganVla2lcIDsKK+elnuatpiA+IGppbm11XCA7CivlkIjngrkgPiBnYXRlblwgOwor5oSb5a2rID4gYWlzb25cIDsKK+a1heaJiyA+IGFzYWRlXCA7CivmhJvlrYMgPiBhaWpvdVwgOwor6JqV5YW3ID4gc2FuZ3VcIDsKK+mKg+W+jCA+IGp1dWdvXCA7CivmhJvlrKIgPiBhaWpvdVwgOwor5Y6f57SgID4gZ2Vuc29cIDsKK+ialeWFkCA+IHNhbmppXCA7CivmhYjlloQgPiBqaXplblwgOwor5oOw5oCnID4gZGFzZWlcIDsKK+ayueeKtiA+IHl1am91XCA7Civph47nlJ8gPiB5YXNlaVwgOwor5rOi5rWqID4gaGFyb3VcIDsKK+enmOWunSA+IGhpaG91XCA7Civok67oj68gPiByZW5nZVwgOwor5oSb5am/ID4gYWlzZWlcIDsKK+W/jeiLpiA+IG5pbmt1XCA7CivpioPluqcgPiBqdXV6YVwgOwor5Y6z56eYID4gZ2VucGlcIDsKK+WOn+ewvyA+IGdlbmJvXCA7CivljrPnp5EgPiBnZW5rYVwgOwor6Yut5YW1ID4gZWloZWlcIDsKK+mKgOW6pyA+IGdpbnphXCA7Civpg6Hpg6ggPiBndW5idVwgOwor6by75Y+jID4gYmlrb3VcIDsKK+W+jOiomCA+IGtvdWtpXCA7CivmhJvlprsgPiBhaXNhaVwgOwor5oSa5aa7ID4gZ3VzYWlcIDsKK+aFtuS6iyA+IGtlaWppXCA7CivnqI7lkI8gPiB6ZWlyaVwgOwor5oSb5aW9ID4gYWlrb3VcIDsKK+WKtOmfsyA+IHJvdW9uXCA7Civlj6/nh4MgPiBrYW5lblwgOwor5ray5YyWID4gZWtpa2FcIDsKK+WQneawlyA+IHJpbmtpXCA7CivphJnoposgPiBoaWtlblwgOwor5ZKM5bmzID4gd2FoZWlcIDsKK+mHjueNoyA+IHlhanV1XCA7Civps7Ppp5UgPiBob3VnYVwgOwor6YeO54yqID4geWFjaG9cIDsKK+mCqumZuiA+IGpha2VuXCA7CivlvpLooYwgPiB0b2tvdVwgOwor5rC06IKlID4gc3VpaGlcIDsKK+WPpOeJiCA+IGtvaGFuXCA7Civli5/ph5EgPiBib2tpblwgOwor5b6M6KOUID4ga291ZWlcIDsKK+W+kOihjCA+IGpva291XCA7CivlkIzmtL4gPiBkb3VoYVwgOwor6YW457SgID4gc2Fuc29cIDsKK+W+gOioqiA+IG91aG91XCA7Civph47niqwgPiB5YWtlblwgOwor5bu26auEID4gZW56dWlcIDsKK+eojuWLmSA+IHplaW11XCA7Civmgqrml6UgPiBha3ViaVwgOwor56ia5YWQID4gY2hpZ29cIDsKK+WKoOmkkCA+IGthc2FuXCA7CivliqDppIogPiBrYXlvdVwgOwor5q2v6Z+zID4gc2hpb25cIDsKK+W+jOihmyA+IGtvdWVpXCA7CivphbXntKAgPiBrb3Vzb1wgOwor6YOK6YeOID4ga291eWFcIDsKK+engeWutiA+IHNoaWthXCA7CivpvI7lnZAgPiB0ZWl6YVwgOwor5b+N6ICFID4gbmluamFcIDsKK+WMu+iWrCA+IGl5YWt1XCA7CivnpL7mrYwgPiBzaGFrYVwgOwor6by75YaFID4gYmluYWlcIDsKK+W+oeiUrSA+IG9rYWdlXCA7Civli6LpgYsgPiBzZWl1blwgOwor5ZCM5rCXID4gZG91a2lcIDsKK+WPpeeCuSA+IGt1dGVuXCA7CivnoLToq4cgPiBoYWRhblwgOwor5ZKM5bCaID4gb3Nob3VcIDsKK+WPo+eCjiA+IGtvdWVuXCA7CivlvZPot68gPiB0b3Vyb1wgOwor5oWI5YWEID4gamlrZWlcIDsKK+aDheaEmyA+IGpvdWFpXCA7CivmraPpn7MgPiBzZWlvblwgOwor5ZCN5q2MID4gbWVpa2FcIDsKK+mDqOiyoSA+IGJ1emFpXCA7Civlj6/murYgPiBrYXlvdVwgOwor5rK/5rW3ID4gZW5rYWlcIDsKK+iPr+m6lyA+IGthcmVpXCA7CivpiYTmiYkgPiB0ZXBwaVwgOwor5ZK95ZaJID4gaW5rb3VcIDsKK+a1t+WbsyA+IGthaXp1XCA7CivlvqHoj5wgPiBva2F6dVwgOwor5Y2w57a/ID4gaW5tZW5cIDsKK+a1ruWfjiA+IGZ1am91XCA7CivmgZLmuKkgPiBrb3VvblwgOwor5Y+k5r2tID4ga290YW5cIDsKK+ays+a4ryA+IGtha291XCA7CivmsrPmuIUgPiBrYXNlaVwgOwor5Y2w57SZID4gaW5zaGlcIDsKK+awl+iDniA+IGtpaG91XCA7Civlj6PmvJQgPiBrb3VlblwgOwor6byT5ZC5ID4ga29zdWlcIDsKK+aEmuWVjyA+IGd1bW9uXCA7CivmsLTntKAgPiBzdWlzb1wgOwor6JmO5Y+jID4ga29rb3VcIDsKK+W+oeiLkSA+IGd5b2VuXCA7CivokrLolqYgPiBob3NlblwgOwor5ZOA5Y+3ID4gYWlnb3VcIDsKK+aCsuaGpCA+IGhpZnVuXCA7Civlk4Dlj7IgPiBhaXNoaVwgOwor6bq75bm5ID4gb2dhcmFcIDsKK+W/nOetlCA+IG91dG91XCA7CivljbDnsaAgPiBpbnJvdVwgOwor5q2M6aKoID4ga2FmdXVcIDsKK+atpumWgCA+IGJ1bW9uXCA7Civlkozlp6YgPiB3YWthblwgOwor56e75YWlID4gaW55dXVcIDsKK+aCsuaEtCA+IGhpc291XCA7Civmrovpg6ggPiB6YW5idVwgOwor5rOw5paXID4gdGFpdG9cIDsKK+aEn+WPlyA+IGthbmp1XCA7CivmrYzpoYwgPiBrYWRhaVwgOwor5oKy5oOoID4gaGlzYW5cIDsKK+emgeW/jCA+IGtpbmtpXCA7CivmhJvlkJ8gPiBhaWdpblwgOwor5rW35ZOhID4ga2FpaW5cIDsKK+mBv+mboyA+IGhpbmFuXCA7Civph43mua8gPiBvbW95dVwgOwor5oOj5auBID4gc291a2FcIDsKK+m8k+WLlSA+IGtvZG91XCA7CivmrLrpqJkgPiBnaWhlblwgOwor5rOV5qGIID4gaG91YW5cIDsKK+W+oeiFuSA+IG9uYWthXCA7Civlkozlo7AgPiB3YXNlaVwgOwor5rKz5rC0ID4ga2FzdWlcIDsKK+WQjeahiCA+IG1laWFuXCA7CivmgrLmgYsgPiBoaXJlblwgOwor5oSf5YyWID4ga2Fua2FcIDsKK+atpumRkSA+IGJ1a2FuXCA7Civpgbrpm4YgPiBpc2h1dVwgOwor5Y+l5rOVID4ga3Vob3VcIDsKK+aAqueBqyA+IGthaWthXCA7Civlvq7nvaogPiBiaXphaVwgOwor5Y6f55S7ID4gZ2VuZ2FcIDsKK+WNl+e3ryA+IG5hbicnaVwgOwor5Y+k5rOVID4ga29ob3VcIDsKK+iZmuWBvSA+IGt5b2dpXCA7Civli7LoqJggPiBrdW5raVwgOwor5Ymj6ay8ID4ga2Vua2lcIDsKK+mHkeazoiA+IGtpbnBhXCA7Civmtbflj4IgPiBpcmlrb1wgOwor56eY5Y+yID4gaGlzaGlcIDsKK+mCqumBkyA+IGphZG91XCA7CivnqIDku6MgPiBraWRhaVwgOwor5Y6z54i2ID4gZ2VucHVcIDsKK+mJseWkqyA+IGtvdWZ1XCA7CivmiLjjgIUgPiBrb2tvdVwgOwor6YqA5ZywID4gZ2luamlcIDsKK+ekvuaYryA+IHNoYXplXCA7Civno4HnlYwgPiBqaWthaVwgOwor5rW35Yy6ID4ga2Fpa3VcIDsKK+WNsOeojiA+IGluemVpXCA7Civlj6PmsJcgPiBrb3VraVwgOwor5ZCM5pyfID4gZG91a2lcIDsKK+mHjeayuSA+IGp1dXl1XCA7CivpioXlmaggPiBkb3VraVwgOwor55+u6LqvID4gd2Fpa3VcIDsKK+ayruatoiA+IHNvc2hpXCA7Civmsrnmp70gPiB5dXNvdVwgOwor55+t6LqvID4gdGFua3VcIDsKK+aBi+atjCA+IHJlbmthXCA7Civnp5HlkI0gPiBrYW1laVwgOwor5oKq5b+DID4gb3NoaW5cIDsKK+mKg+WZqCA+IGp1dWtpXCA7CivlvJjpgaAgPiBrb3VlblwgOwor5Y6f55CGID4gZ2VucmlcIDsKK+axl+eWuSA+IGFzZW1vXCA7CivmsZfnlqMgPiBhc2Vtb1wgOwor5oKq5b6SID4gYWt1dG9cIDsKK+ehvOe0oCA+IGhvdXNvXCA7Civlj5fmtJcgPiBqdXNlblwgOwor56iA5LiWID4ga2lzZWlcIDsKK+engeWWtiA+IHNoaWVpXCA7CivmhI/ljKAgPiBpc2hvdVwgOwor6YqA5ZmoID4gZ2lua2lcIDsKK+awtOemjSA+IHN1aWthXCA7Civnpo3lrrMgPiBrYWdhaVwgOwor5b+r55mSID4ga2FpeXVcIDsKK+mHkeatryA+IGtpbmJhXCA7CivlkIzmmYIgPiBkb3VqaVwgOwor55+t6LevID4gdGFucm9cIDsKK+mBoOmfsyA+IHRvb25lXCA7CivlvJXpgIAgPiBpbnRhaVwgOwor6YKj6L66ID4gbmFoZW5cIDsKK+aDheWunCA+IGpvdWdpXCA7CivmhJrlhYQgPiBndWtlaVwgOwor5oKf5oCnID4gZ29zZWlcIDsKK+W+rue0sCA+IGJpc2FpXCA7Civli5XorbAgPiBkb3VnaVwgOwor5rWu5YuVID4gZnVkb3VcIDsKK+WLg+i1tyA+IGJva2tpXCA7CivmhJrlg6cgPiBndXNvdVwgOwor5b6M6IOkID4ga291aW5cIDsKK+emheWutiA+IHplbmtlXCA7Civpu4TlpIkgPiBvdWhlblwgOwor5Yqg6YWNID4ga2FoYWlcIDsKK+WTgeS9jSA+IGhpbicnaVwgOwor5b6A6IiqID4gb3Vrb3VcIDsKK+mBoOmbtyA+IGVucmFpXCA7Civlv7Xnj6AgPiBuZW5qdVwgOwor5oKU5oKfID4ga2FpZ29cIDsKK+awl+euoSA+IGtpa2FuXCA7CivmrKfpoqggPiBvdWZ1dVwgOwor5rWE5ZyfID4gam91ZG9cIDsKK+WQq+aEjyA+IGdhbicnaVwgOwor5oOF5ammID4gam91ZnVcIDsKK+mHjeapnyA+IGp1dWtpXCA7Civmgqflt6cgPiByaWtvdVwgOwor5rCX562SID4ga2l0b3VcIDsKK+aAkua/pCA+IGRvdG91XCA7Civmg7nlj6UgPiBqYWtrdVwgOwor5q2p6YGTID4gaG9kb3VcIDsKK+ejqOa3rCA+IG1hc2FpXCA7Civmr5voibIgPiBrZWlyb1wgOwor5rC455ygID4gZWltaW5cIDsKK+W8t+iotCA+IGdvdXNvXCA7CivlkoTll58gPiB0b3NzYVwgOwor56eB5Y2wID4gc2hpaW5cIDsKK+atpumBkyA+IGJ1ZG91XCA7CivmraPpgqogPiBzZWlqYVwgOwor5Y+N5q+UID4gaGFucGlcIDsKK+WKn+mBjiA+IGtvdWthXCA7CivljbDnm7ggPiBpbnpvdVwgOwor5YyW6Ia/ID4ga2Fub3VcIDsKK+asoemhniA+IGppcnVpXCA7Civlj43mra8gPiBzb3BwYVwgOwor5Y+N5q2pID4gdGFuYnVcIDsKK+WJqumZpCA+IHNlbmpvXCA7Civlj7DmnKggPiBkYWlnaVwgOwor5rOo5oSPID4gY2h1dWlcIDsKK+WPjeatjCA+IGhhbmthXCA7Civphrjmr40gPiBqb3Vib1wgOwor5YmN6aeGID4gemVua3VcIDsKK+atpui+uiA+IGJ1aGVuXCA7Civluqfpq5ggPiB6YWtvdVwgOwor5oOF5aSrID4gam91ZnVcIDsKK+WSjOWQjSA+IHdhbWVpXCA7CivmhJvkurogPiBhaWppblwgOwor5ZKM5ZCIID4gd2Fnb3VcIDsKK+WKsei1tyA+IHJlaWtpXCA7CivljYrnq68gPiBoYW5wYVwgOwor6JaE5pelID4gdXN1YmlcIDsKK+aEmuS6uiA+IGd1amluXCA7Civpu4TlnJ8gPiBrb3Vkb1wgOwor5b+c55SoID4gb3V5b3VcIDsKK+mCpuiyqCA+IGhvdWthXCA7Civnp4HliKkgPiBzaGlyaVwgOwor56C06Ii5ID4gaGFzZW5cIDsKK+WQpuW/nCA+IGl5YW91XCA7CivljLvnsY0gPiBpc2VraVwgOwor5YyW6IKyID4ga2Fpa3VcIDsKK+enmOS8nSA+IGhpZGVuXCA7Civmr43oiaYgPiBib2thblwgOwor5Y+X5qScID4ganVrZW5cIDsKK+ayueaWrSA+IHl1ZGFuXCA7CivnnaHprZQgPiBzdWltYVwgOwor5q+N6Ii5ID4gYm9zZW5cIDsKK+ekjuadkCA+IHNvemFpXCA7Civlu4PpmaQgPiBoYWlqb1wgOwor5Y+k5p2lID4ga29yYWlcIDsKK+a1t+S6iyA+IGthaWppXCA7CivmsLjnlJ8gPiBlaXNlaVwgOwor5Yqp6LWwID4gam9zb3VcIDsKK+mBiumboiA+IHl1dXJpXCA7CivmgJLmtpsgPiBkb3RvdVwgOwor56WI5b+1ID4ga2luZW5cIDsKK+ats+iyuyA+IHNhaWhpXCA7CivnpZbluKsgPiBzb3NoaVwgOwor5Y+k5pu4ID4ga29zaG9cIDsKK+WRqOWbsiA+IHNodXVpXCA7CivmsbrmsrMgPiBrZWtrYVwgOwor6YG36YO9ID4gc2VudG9cIDsKK+axveawtCA+IGtpc3VpXCA7Civmr5TogqkgPiBoaWtlblwgOwor5Y2w55KwID4gaW5rYW5cIDsKK+mHjuacqyA+IG5venVlXCA7Civph47mnJsgPiB5YWJvdVwgOwor5oSP5LitID4gaWNodXVcIDsKK+aCquWppiA+IGFrdWZ1XCA7Civlkbzlj7cgPiBrb2dvdVwgOwor5q2j6LevID4gc2Vpcm9cIDsKK+mJseWMuiA+IGtvdWt1XCA7CivmgqrlqYYgPiBha3ViYVwgOwor6Ymx5YyWID4ga291a2FcIDsKK+azouW9oiA+IGhha2VpXCA7Civpgqboqp4gPiBob3Vnb1wgOwor5Y+h5pm6ID4gZWljaGlcIDsKK+WQhOaIuCA+IGtha2tvXCA7CivliY3pnZ4gPiB6ZW5waVwgOwor5rGa5r+BID4gb2Rha3VcIDsKK+avjeiDjiA+IGJvdGFpXCA7CivmrYzpgZMgPiBrYWRvdVwgOwor56KB55ukID4gZ29iYW5cIDsKK+atu+iqniA+IHNoaWdvXCA7Civlj6/mkpMgPiBrYXRvdVwgOwor5oKy5aOuID4gaGlzb3VcIDsKK+W8mOiqkyA+IGd1emVpXCA7Civmta7kuJYgPiB1a2l5b1wgOwor5bqn6aCtID4gemF0b3VcIDsKK+WQkOaBryA+IHRvaWtpXCA7Civmta7kuIogPiBmdWpvdVwgOwor5Y+k5pa5ID4ga29ob3VcIDsKK+a1hOWMliA+IGpvdWthXCA7Civlj6Hml6ggPiBlaXNoaVwgOwor6YKq6KaLID4gamFrZW5cIDsKK+WPpOaWhyA+IGtvbW9uXCA7CivmgqrlpbMgPiBha3Vqb1wgOwor5YyW57mKID4ga2FzZW5cIDsKK+WNiOegsiA+IGdvaG91XCA7Civmr5vnuZQgPiBrZW9yaVwgOwor5rGf5rmWID4gZ291a29cIDsKK+aBqeaEmyA+IG9uJydhaVwgOwor5rCX55u4ID4ga2lzb3VcIDsKK+aCsuWgsSA+IGhpaG91XCA7CivlvqHnpL4gPiBvbnNoYVwgOwor5oKq5aSiID4gYWt1bXVcIDsKK+WMl+e3ryA+IGhva3VpXCA7Civlj5nmma8gPiBqb2tlaVwgOwor5q2j6LKoID4gc2Vpa2FcIDsKK+ato+iyoCA+IHNlaWZ1XCA7CivnpoHlm7ogPiBraW5rb1wgOwor5ZCR5b6MID4ga291Z29cIDsKK+ehhee0oCA+IGtlaXNvXCA7Civmganmg4UgPiBvbmpvdVwgOwor5Y+b5peXID4gaGFua2lcIDsKK+iWhOaJiyA+IHVzdWRlXCA7CivmganmgbUgPiBvbmtlaVwgOwor5rC454miID4gZWlyb3VcIDsKK+mBuui5nyA+IGlzZWtpXCA7Civph4zmlbAgPiByaXN1dVwgOwor5Y2I552hID4gZ29zdWlcIDsKK+W8leimiyA+IGlua2VuXCA7CivnpZblrpcgPiBzb3NvdVwgOwor5rWB5YiRID4gcnVrZWlcIDsKK+WKqeipniA+IGpvc2hpXCA7CivpioDkvY0gPiBnaW4nJ2lcIDsKK+WPmeaWhyA+IGpvYnVuXCA7CivljZfnlLsgPiBuYW5nYVwgOwor56S65bqmID4gc2hpZG9cIDsKK+mBuui3oSA+IGlzZWtpXCA7CivpiYTlmaggPiB0ZWtraVwgOwor6YGl6YGgID4geW91ZW5cIDsKK+W8geittyA+IGJlbmdvXCA7Civli6Toi6YgPiBraW5rdVwgOwor5q+b57O4ID4ga2VpdG9cIDsKK+WKqeiogCA+IGpvZ29uXCA7Civms5XluqYgPiBoYXR0b1wgOwor5Y2X55OcID4gbmFua2FcIDsKK+W5vemsvCA+IHl1dWtpXCA7CivljJbnsqcgPiBrZXdhaVwgOwor5oOF5ZGzID4gam91bWlcIDsKK+axn+aysyA+IGtvdWdhXCA7CivlkKblrpogPiBoaXRlaVwgOwor56C057eaID4gaGFzZW5cIDsKK+W9see1tSA+IGthZ2VlXCA7CivlkIzluqcgPiBkb3V6YVwgOwor56C057a7ID4gaGF0YW5cIDsKK+WPo+aOiCA+IGtvdWp1XCA7CivmtL7lhbUgPiBoYWhlaVwgOwor5oCd5qGIID4gc2hpYW5cIDsKK+iRoeiQhCA+IGJ1ZG91XCA7Civlu7rorbAgPiBrZW5naVwgOwor5q2j6KqyID4gc2Vpa2FcIDsKK+avjee3miA+IGJvc2VuXCA7Civlj43ml5cgPiBoYW5raVwgOwor5q2j6KqkID4gc2VpZ29cIDsKK+aCsuWYhiA+IGhpdGFuXCA7CivnpoXlkbMgPiB6ZW5taVwgOwor6YOo572yID4gYnVzaG9cIDsKK+WPr+aGkCA+IGthcmVuXCA7Civmgqrlm6AgPiBha3VpblwgOwor6JKU57W1ID4gbWFraWVcIDsKK+mBjumHjSA+IGthanV1XCA7CivljJXnrrggPiBoaWNob1wgOwor5Y2K55SwID4gaGFuZGFcIDsKK+ashOmWkyA+IHJhbm1hXCA7CivokYnomK0gPiBoYXJhblwgOwor5oGp5birID4gb25zaGlcIDsKK+avjeezuyA+IGJva2VpXCA7CivpgYrph4wgPiB5dXVyaVwgOwor5rC054GrID4gc3Vpa2FcIDsKK+aDqOS6iyA+IHNhbmppXCA7Civnpa3lmaggPiBzYWlraVwgOwor5oGo5biDID4ga29uYnVcIDsKK+ayueaApyA+IHl1c2VpXCA7CivmraPopo8gPiBzZWlraVwgOwor56aB5Y+lID4ga2lua3VcIDsKK+ekvuWvuiA+IHNoYWppXCA7CivmgYvmhZUgPiByZW5ib1wgOwor5Yy755mCID4gaXJ5b3VcIDsKK+iPr+mBkyA+IGthZG91XCA7Civph47miYsgPiB5YXNodVwgOwor56S+5a62ID4gc2hha2VcIDsKK+mHjeaJiyA+IG9tb2RlXCA7Civmraboo4UgPiBidXNvdVwgOwor6YeO5oimID4geWFzZW5cIDsKK+atqeihjCA+IGhva291XCA7Civmr5vnqbQgPiBrZWFuYVwgOwor5Y2R54ylID4gaGl3YWlcIDsKK+egtOeulyA+IGhhc2FuXCA7CivlkZHlkJAgPiBkb250b1wgOwor5rK55b2pID4geXVzYWlcIDsKK+WPoeaFriA+IGVpcnlvXCA7CivlvqHnlKggPiBnb3lvdVwgOwor5rWB5Lq6ID4gcnVuaW5cIDsKK+WPoeaEnyA+IGVpa2FuXCA7CivmrYzorKEgPiBrYXlvdVwgOwor5ZCN5a62ID4gbWVpa2FcIDsKK+W+oeeSvSA+IGd5b2ppXCA7Civlj5bmiYsgPiB0b3R0ZVwgOwor5ZCN5a6bID4gbmFhdGVcIDsKK+WQjOWutiA+IGRvdWtlXCA7CivnnYDpoZ4gPiBraXJ1aVwgOwor5Y+X5oiSID4ganVrYWlcIDsKK+mBi+mAgSA+IHVuc291XCA7Civpu4TkvZMgPiBvdXRhaVwgOwor5q2M6KuWID4ga2Fyb25cIDsKK+mFteavjSA+IGtvdWJvXCA7CivnpZblnosgPiBzb2tlaVwgOwor6YeN5oSbID4ganV1YWlcIDsKK+elnuWZqCA+IGppbmdpXCA7CivlkIzlrZcgPiBkb3VqaVwgOwor5Y+w5bqnID4gZGFpemFcIDsKK+WJsuizpiA+IHdhcHB1XCA7CivnnJ/pr5sgPiBtYWRhaVwgOwor5Y+b5oSPID4gaGFuJydpXCA7CivmrYzoqZ4gPiBrYXNoaVwgOwor55yf6a+JID4gbWFnb2lcIDsKK+aui+iKsSA+IHphbmthXCA7Civpu4TkurogPiBvdWppblwgOwor5rC05ripID4gc3Vpb25cIDsKK+mBi+i8uCA+IHVuJyd5dVwgOwor6Jep5YSSID4gaGFuanVcIDsKK+WJsOiyuyA+IGpvdWhpXCA7CivliY3pg6ggPiB6ZW5idVwgOwor6bqX5Y+lID4gcmVpa3VcIDsKK+ejqOaQjSA+IG1hc29uXCA7Civph47mgKcgPiB5YXNlaVwgOwor6JGJ6Iy2ID4gaGFkamFcIDsKK+WPmeaDhSA+IGpvam91XCA7CivlvqHnjokgPiBvdGFtYVwgOwor6YGT6LevID4gZG91cm9cIDsKK+mBi+i7oiA+IHVudGVuXCA7Civlub3pm4UgPiB5dXVnYVwgOwor5Yid6ZmjID4gdWlqaW5cIDsKK+ayv+WyuCA+IGVuZ2FuXCA7CivpgKPpjpYgPiByZW5zYVwgOwor6JGJ6Iq9ID4geW91Z2FcIDsKK+ays+W3nSA+IGthc2VuXCA7CivpgYHovp4gPiB0b25qaVwgOwor5YmN6YCUID4gemVudG9cIDsKK+mBjei3ryA+IGhlbnJvXCA7CivpiZvkuLkgPiBlbnRhblwgOwor5rC05rOzID4gc3VpZWlcIDsKK+WQjuWmgyA+IGtvdWhpXCA7CivlkI3lppMgPiBtZWlnaVwgOwor5Y+j5bqnID4ga291emFcIDsKK+W/l+awlyA+IHNoaWtpXCA7Civlj5vlvpIgPiBoYW50b1wgOwor6YeR5bqrID4ga2lua29cIDsKK+WNsOaxoCA+IGluY2hpXCA7Civms6XlnJ8gPiBkZWlkb1wgOwor5rK55bGkID4geXVzb3VcIDsKK+WKtOiLpiA+IHJvdWt1XCA7Civlj4vmhJsgPiB5dXVhaVwgOwor6YGg6KyAID4gZW5ib3VcIDsKK+WQjOWknCA+IGRvdXlhXCA7Civph43luqYgPiBqdXVkb1wgOwor5YmN6LyqID4gbWFld2FcIDsKK+mAgOmZoiA+IHRhaWluXCA7Civmg4XkuosgPiBqb3VqaVwgOwor56C056CVID4gaGFzYWlcIDsKK+WNseauhiA+IGtpdGFpXCA7CivmsrvlrokgPiBjaGlhblwgOwor5Ymw6KqeID4gam91Z29cIDsKK+mHjuW4qyA+IHlhc2hpXCA7CivokL3oirEgPiByYWtrYVwgOwor5Y+y5a62ID4gc2hpa2FcIDsKK+mIjeWZqCA+IGRvbmtpXCA7CivmgKfmhJsgPiBzZWlhaVwgOwor5byV6IiqID4gaW5rb3VcIDsKK+eggue1tSA+IHN1bmFlXCA7CivlvpfniakgPiBlbW9ub1wgOwor5rKZ5bylID4gc2hhbWlcIDsKK+elreWFtyA+IHNhaWd1XCA7CivlkKvlkbMgPiBnYW5taVwgOwor5b6A55SfID4gb3Vqb3VcIDsKK+WIhumboiA+IGJ1bnJpXCA7CivphY3mtYEgPiBoYWlydVwgOwor5byV6Ie0ID4gaW5jaGlcIDsKK+WPjeW+kiA+IGhhbnRvXCA7CivliIjpmaQgPiBnYWlqb1wgOwor5oCo5oGoID4gZW5rb25cIDsKK+mBoOimliA+IGVuc2hpXCA7Civnpa3lhIAgPiBzYWlnaVwgOwor6YSZ54ylID4gaGl3YWlcIDsKK+atr+iKvSA+IHNoaWdhXCA7CivpgaDoposgPiB0b29taVwgOwor6bm55ZGzID4ga2FubWlcIDsKK+iNt+mmrCA+IG5pdW1hXCA7CivnnJ/poZQgPiBtYWdhb1wgOwor56CC57OWID4gc2F0b3VcIDsKK+mFkuawlyA+IHNodWtpXCA7Civpt7nmj5ogPiBvdXlvdVwgOwor5Yip6YiNID4gcmlkb25cIDsKK+aAneaFlSA+IHNoaWJvXCA7CivmgKDmg7AgPiB0YWlkYVwgOwor5Yip6YeRID4gcmlraW5cIDsKK+ayruWusyA+IHNvZ2FpXCA7CivlkIzlnZAgPiBkb3V6YVwgOwor5Yy654K5ID4ga3V0ZW5cIDsKK+WPi+W8lSA+IHl1dWluXCA7CivphZTmrakgPiBzdWlob1wgOwor5Ye56Z2iID4gb3VtZW5cIDsKK+mBk+ipsSA+IGRvdXdhXCA7CivljIXnmq4gPiBob3VoaVwgOwor6YC46LWwID4gaXNzb3VcIDsKK+W7g+iqniA+IGhhaWdvXCA7CivlkJ/lkbMgPiBnaW5taVwgOwor5Y6t5oimID4gZW5zZW5cIDsKK+atpuiKuCA+IGJ1Z2VpXCA7CivpgaHooYwgPiBzb2tvdVwgOwor5ZCN5ZmoID4gbWVpa2lcIDsKK+iPr+iogCA+IGthZ2VuXCA7CivlvbHnlLsgPiBrYWdlZVwgOwor5b6S54S2ID4gdG96ZW5cIDsKK+mAo+i+niA+IHJlbmppXCA7CivluoPph44gPiBrb3V5YVwgOwor5rCX5rOhID4ga2lob3VcIDsKK+mHkeWtlyA+IGtpbmppXCA7CivlvKXnuKsgPiBiaWhvdVwgOwor6YeR5a2QID4ga2luc3VcIDsKK+W8p+e3miA+IGtvc2VuXCA7CivmrKDoqrIgPiBrZWtrYVwgOwor5Y2Y5q+UID4gdGFucGlcIDsKK+mBjuiogCA+IGthZ29uXCA7CivnoLTnlKMgPiBoYXNhblwgOwor56S+5ZOhID4gc2hhaW5cIDsKK+WNsOajiSA+IGlubWVuXCA7CivnoJTno6ggPiBrZW5tYVwgOwor5oKq5LqLID4gYWt1amlcIDsKK+ekuuWUhiA+IHNoaXNhXCA7Civlj6/lpIkgPiBrYWhlblwgOwor5b2p55S7ID4gc2FpZ2FcIDsKK+iWq+WMliA+IGt1bmthXCA7Civlj5flrrkgPiBqdXlvdVwgOwor56Wt5LqLID4gc2FpamlcIDsKK+elluWFiCA+IHNvc2VuXCA7CivpiI3ljJYgPiBkb25rYVwgOwor5oCn5beuID4gc2Vpc2FcIDsKK+iQoOiKvSA+IGhvdWdhXCA7CivliKXpgJQgPiBiZXR0b1wgOwor6YGO6KSSID4ga2Fob3VcIDsKK+iNt+mbuyA+IGthZGVuXCA7CivnoazmtL4gPiBrb3VoYVwgOwor5Y+w5aC0ID4gZGFpYmFcIDsKK+WQvuS6uiA+IGdvamluXCA7Civms6Lli5UgPiBoYWRvdVwgOwor6JaE5ZywID4gdXN1amlcIDsKK+mAj+mBjiA+IHRvdWthXCA7CivljZjmqZ8gPiB0YW5raVwgOwor5q6355ubID4gaW5zZWlcIDsKK+ekvuWNsCA+IHNoYWluXCA7CivljbDmnZAgPiBpbnphaVwgOwor5bmz6YeOID4gaGVpeWFcIDsKK+WNsOacrCA+IGlucG9uXCA7Civmga/lkLkgPiBpYnVraVwgOwor5bm56YOoID4ga2FuYnVcIDsKK+WNsOabuCA+IGluc2hvXCA7Civlub3pgaAgPiB5dXVlblwgOwor5ZCN5Y+lID4gbWVpa3VcIDsKK+WJjeiomCA+IHplbmtpXCA7CivpgYvooYwgPiB1bmtvdVwgOwor5q2m6ICFID4gbXVzaGFcIDsKK+ekvuWLmSA+IHNoYW11XCA7Civljp/mhI8gPiBnZW4nJ2lcIDsKK+WPpOWisyA+IGtvZnVuXCA7Civmganlkb0gPiBvbm1laVwgOwor5Y+L5a6cID4geXV1Z2lcIDsKK+mHjuWkqSA+IG5vdGVuXCA7CivlkIjlkKYgPiBnb3VoaVwgOwor5Yq057WEID4gcm91c29cIDsKK+mHjuWkliA+IHlhZ2FpXCA7Civluqfoq4cgPiB6YWRhblwgOwor5byX57SgID4gZnVzc29cIDsKK+mAg+mBvyA+IHRvdWhpXCA7CivlubjpgYsgPiBrb3V1blwgOwor56C054miID4gaGFyb3VcIDsKK+mBuuiHoyA+IGlzaGluXCA7CivluoPou4wgPiBrb3VraVwgOwor5q2j576pID4gc2VpZ2lcIDsKK+azleWLmSA+IGhvdW11XCA7CivnoLTniYcgPiBoYWhlblwgOwor5ZCM5YyWID4gZG91a2FcIDsKK+mAgOmBvyA+IHRhaWhpXCA7Civlj6Tln44gPiBrb2pvdVwgOwor5ZCQ5YmkID4gdG96YWlcIDsKK+awl+amgiA+IGtpZ2FpXCA7CivlupzoraYgPiBmdWtlaVwgOwor5b6h5q6/ID4gZ290ZW5cIDsKK+iQjOiKvSA+IGhvdWdhXCA7CivljLrmsJEgPiBrdW1pblwgOwor5Y6a5oGpID4ga291b25cIDsKK+W/nOaPtCA+IG91ZW5cIDsKK+W6q+ijjyA+IGt1cmlcIDsKK+WPpOWZqCA+IGtva2lcIDsKK+WHjembqCA+IHRvdXVcIDsKK+W+kuatqSA+IHRvaG9cIDsKK+WPr+WQpiA+IGthaGlcIDsKK+W+kOatqSA+IGpvaG9cIDsKK+W6h+ittyA+IGhpZ29cIDsKK+mHjuWWtiA+IHlhZWlcIDsKK+azleS8miA+IGhvdWVcIDsKK+WQjOS9jSA+IGRvdWlcIDsKK+WNseaHvCA+IGtpZ3VcIDsKK+WPpeWPpSA+IGt1a3VcIDsKK+WPpOWPpSA+IGtva3VcIDsKK+WPo+WPlyA+IGt1anVcIDsKK+ayu+WFtyA+IGppZ3VcIDsKK+WGt+mbqCA+IHJlaXVcIDsKK+W9k+eCuiA+IHRvdWlcIDsKK+WPs+WFmiA+IHV0b3VcIDsKK+WNseaDpyA+IGtpZ3VcIDsKK+mBuueyviA+IGlzZWlcIDsKK+mHjuWNkSA+IHlhaGlcIDsKK+WPs+WCviA+IHVrZWlcIDsKK+WMu+abuCA+IGlzaG9cIDsKK+mBleiDjCA+IGloYWlcIDsKK+aAqOWXnyA+IGVuc2FcIDsKK+m4muWTpSA+IGlua29cIDsKK+egtOavgCA+IGhha2lcIDsKK+WPjeWQkCA+IGhlZG9cIDsKK+WPjeWPpCA+IGhvZ29cIDsKK+WPpOWEgCA+IGtvZ2lcIDsKK+iPr+e+jiA+IGthYmlcIDsKK+WNsOW6piA+IGluZG9cIDsKK+mBuueovyA+IGlrb3VcIDsKK+ebuOmBlSA+IHNvdWlcIDsKK+W6p+iHpSA+IHphZ2FcIDsKK+W4sOmAlCA+IGtpdG9cIDsKK+W/oOWunyA+IG1hbWVcIDsKK+WGhumhsSA+IGVucm9cIDsKK+ejgeWgtCA+IGppYmFcIDsKK+WPpOS6iyA+IGtvamlcIDsKK+egtOajhCA+IGhha2lcIDsKK+awuOWvvyA+IGVpanVcIDsKK+atjOeikSA+IGthaGlcIDsKK+W+gOaZgiA+IG91amlcIDsKK+ejgeWcnyA+IGppZG9cIDsKK+m0ieeJhyA+IGFoZW5cIDsKK+WNsOWtlyA+IGluamlcIDsKK+mBleeulyA+IGlzYW5cIDsKK+WPmeS6iyA+IGpvamlcIDsKK+ejgeWZqCA+IGppa2lcIDsKK+W+ruW+riA+IGJpYmlcIDsKK+W4sOi3ryA+IGtpcm9cIDsKK+W+oeaEjyA+IGd5b2lcIDsKK+eggua0siA+IHNhc3VcIDsKK+WNiOW+jCA+IGdvZ29cIDsKK+avgOajhCA+IGtpa2lcIDsKK+mBoOelliA+IGVuc29cIDsKK+W+jOaJiyA+IGdvdGVcIDsKK+W5suiRiSA+IGhpYmFcIDsKK+W8leeBqyA+IGlua2FcIDsKK+W+oeW9sSA+IGdvZWlcIDsKK+mBuueUoyA+IGlzYW5cIDsKK+aouemZsCA+IGp1aW5cIDsKK+iLsemfsyA+IGVpb25cIDsKK+axmuWQjSA+IG9tZWlcIDsKK+ejgeWMuiA+IGppa3VcIDsKK+mCqua3qyA+IGphaW5cIDsKK+i/guiogCA+IHVnZW5cIDsKK+ejgeWMliA+IGppa2FcIDsKK+WMu+W4qyA+IGlzaGlcIDsKK+W9vOaIkSA+IGhpZ2FcIDsKK+WNseWdkCA+IGtpemFcIDsKK+WJteeXjSA+IHNvdWlcIDsKK+apn+mBiyA+IGtpdW5cIDsKK+WMquW+kiA+IGhpdG9cIDsKK+WKqea8lCA+IGpvZW5cIDsKK+mCquawlyA+IGpha2lcIDsKK+W8peasoSA+IHlhamlcIDsKK+W+oeWuhyA+IGd5b3VcIDsKK+W+gOW+gCA+IG91b3VcIDsKK+WIgOiHqiA+IHRvamlcIDsKK+W+oeWtkCA+IG1pa29cIDsKK+WMu+WumCA+IGlrYW5cIDsKK+WKoOa4qSA+IGthb25cIDsKK+mBjueWjiA+IGthc29cIDsKK+WIgOiDjCA+IG1pbmVcIDsKK+W/nOWLnyA+IG91Ym9cIDsKK+mBuua8jyA+IGlyb3VcIDsKK+W+jOWutiA+IGdva2VcIDsKK+WMu+WkpyA+IGlkYWlcIDsKK+autOaJkyA+IG91ZGFcIDsKK+atqeatpiA+IGhvYnVcIDsKK+mBleeKryA+IGloYW5cIDsKK+WGhuiyqCA+IGVua2FcIDsKK+awl+WRsyA+IGdpbWlcIDsKK+awl+WQiCA+IGtpYWlcIDsKK+W4g+ihjSA+IGZ1ZW5cIDsKK+mtlOmthSA+IG1hbWlcIDsKK+W+jOWgtCA+IGdvYmFcIDsKK+egtOWutiA+IGJha2FcIDsKK+awl+WMliA+IGtpa2FcIDsKK+W+geWktyA+IHNlaWlcIDsKK+WNiOWQjiA+IGdvZ29cIDsKK+awtOS9jSA+IHN1aWlcIDsKK+awuOS5hSA+IHRvd2FcIDsKK+W3puiomCA+IHNha2lcIDsKK+WGhuimjyA+IGVua2lcIDsKK+ebiOiZpyA+IGVpa2lcIDsKK+mBuuaniyA+IGlrb3VcIDsKK+W+oeWQjSA+IG1pbmFcIDsKK+mDqOWxiyA+IGhleWFcIDsKK+iLseiyqCA+IGVpa2FcIDsKK+mBjua4oSA+IGthdG9cIDsKK+mBleazlSA+IGlob3VcIDsKK+aut+WvjCA+IGlucHVcIDsKK+W7tuacnyA+IGVua2lcIDsKK+aoquitsCA+IG91Z2lcIDsKK+egguW3niA+IHNhc3VcIDsKK+iMo+iTmSA+IGdvemFcIDsKK+iLseiqniA+IGVpZ29cIDsKK+mBi+aysyA+IHVuZ2FcIDsKK+mBuuabuCA+IGlzaG9cIDsKK+efpeaBtSA+IGNoaWVcIDsKK+mBi+awlyA+IHVua2lcIDsKK+i8uOi0jyA+IHl1ZWlcIDsKK+WNkeS4iyA+IGhpZ2VcIDsKK+WLouWtkCA+IHNla29cIDsKK+WMheWbsiA+IGhvdWlcIDsKK+W+gOWPpCA+IG91a29cIDsKK+WKoOaMgSA+IGthamlcIDsKK+W8p+W6piA+IGtvZG9cIDsKK+mDveWWtiA+IHRvZWlcIDsKK+avlOWWqSA+IGhpeXVcIDsKK+mBuuaWhyA+IGlidW5cIDsKK+mAoueArCA+IG91c2VcIDsKK+WHuuebriA+IGRlbWVcIDsKK+W9meWgsSA+IGlob3VcIDsKK+atpuaKgCA+IGJ1Z2lcIDsKK+i8nei8nSA+IGtpa2lcIDsKK+W6p+a0siA+IHphc3VcIDsKK+W+oeS7oyA+IG1peW9cIDsKK+WLouWogSA+IHNlaWlcIDsKK+WMu+S8miA+IGlrYWlcIDsKK+W+l+S9kyA+IGV0YWlcIDsKK+W+oeS4liA+IG1peW9cIDsKK+W9seWNsCA+IGVpaW5cIDsKK+ato+aEjyA+IHNlaWlcIDsKK+WGhuiIniA+IGVuYnVcIDsKK+m1nOWMoCA+IHVqb3VcIDsKK+avjeWNsCA+IGJvaW5cIDsKK+mAuOapnyA+IGlra2lcIDsKK+mDqOWToSA+IGJ1aW5cIDsKK+mBuuaIkiA+IGlrYWlcIDsKK+earuiGmiA+IGhpZnVcIDsKK+mBuuaGviA+IGlrYW5cIDsKK+WIt+avmyA+IGhha2VcIDsKK+atqeW6piA+IGhvZG9cIDsKK+asoeacnyA+IGppa2lcIDsKK+atpuW6qyA+IGJ1a29cIDsKK+apn+e4gSA+IGtpZW5cIDsKK+egguWcnyA+IHNhZG9cIDsKK+mBuuaBqCA+IGlrb25cIDsKK+W+gOS6iyA+IG91amlcIDsKK+iKseitnCA+IGthZnVcIDsKK+mBuuW/lyA+IGlzaGlcIDsKK+W6j+asoSA+IGpvamlcIDsKK+avlOS+oSA+IGhpa2FcIDsKK+mAlOasoSA+IHRvamlcIDsKK+WJteaEjyA+IHNvdWlcIDsKK+atpuWutiA+IGJ1a2VcIDsKK+aoquiHpSA+IG91Z2FcIDsKK+mssemHkSA+IHVrb25cIDsKK+avlOS4mCA+IGJpa3VcIDsKK+mDveS4iyA+IHRva2FcIDsKK+efouWgtCA+IHlhYmFcIDsKK+iKseiiqyA+IGthaGlcIDsKK+mBleaGsiA+IGlrZW5cIDsKK+W7tuWvvyA+IGVuanVcIDsKK+eZvuiIjCA+IG1venVcIDsKK+atpuWkqyA+IGJ1ZnVcIDsKK+egguWIqSA+IGphcmlcIDsKK+mDqOS4iyA+IGJ1a2FcIDsKK+mBuuWtkCA+IGlzaGlcIDsKK+eeveWlsyA+IGdvemVcIDsKK+WPpeOAhSA+IGt1a3VcIDsKK+WHuuatryA+IGRlYmFcIDsKK+mBjuW6piA+IGthZG9cIDsKK+atpuWZqCA+IGJ1a2lcIDsKK+mBi+W6pyA+IHVuemFcIDsKK+asoeW6jyA+IGppam9cIDsKK+aooeeziiA+IG1va29cIDsKK+iKseiKvSA+IGthZ2FcIDsKK+mBuuWdgCA+IGlzaGlcIDsKK+W5s+aYkyA+IGhlaWlcIDsKK+WKoOWRsyA+IGthbWlcIDsKK+atqeWQiCA+IGJ1YWlcIDsKK+asp+WtlyA+IG91amlcIDsKK+WHuuadpSA+IGRla2lcIDsKK+WDp+ihoyA+IHNvdWlcIDsKK+eWjumfsyA+IHNvaW5cIDsKK+W6p+W3niA+IHphc3VcIDsKK+aoueeariA+IGp1aGlcIDsKK+W6nOW6qyA+IGZ1a29cIDsKK+mBuuWTgSA+IGloaW5cIDsKK+eWkembsiA+IGdpdW5cIDsKK+mBuuWRvSA+IGltZWlcIDsKK+atpOWHpiA+IGtva29cIDsKK+atpuWFtyA+IGJ1Z3VcIDsKK+mBjuWkmiA+IGthdGFcIDsKK+asoeWlsyA+IGppam9cIDsKK+WHoOahiCA+IGtpYW5cIDsKK+atpuWCmSA+IGJ1YmlcIDsKK+i/veaJiyA+IG90dGVcIDsKK+mBuuWKnyA+IGlrb3VcIDsKK+eVsOmiqCA+IGlmdXVcIDsKK+mBuuWItiA+IGlzZWlcIDsKK+eVsOmhniA+IGlydWlcIDsKK+WIqeW3sSA+IHJpa29cIDsKK+ato+S9jSA+IHNlaWlcIDsKK+WIt+WtkCA+IGhha2VcIDsKK+atpuS6iyA+IGJ1amlcIDsKK+iNiuajmCA+IGJhcmFcIDsKK+mtlOe+hSA+IG1hcmFcIDsKK+mBuuS9kyA+IGl0YWlcIDsKK+mBleWPjSA+IGloYW5cIDsKK+mBuuS8nSA+IGlkZW5cIDsKK+mBjuWOuyA+IGtha29cIDsKK+asp+WMliA+IG91a2FcIDsKK+eWjumBoCA+IHNvZW5cIDsKK+eWkei+niA+IGdpamlcIDsKK+W3pua0viA+IHNhaGFcIDsKK+iJtue+jiA+IGVuYmlcIDsKK+mpoummrCA+IHJvYmFcIDsKK+WykOmYnCA+IGdpZnVcIDsKK+W6p+WToSA+IHphaW5cIDsKK+awuOOAhSA+IGVpZWlcIDsKK+ecn+W4hiA+IG1haG9cIDsKK+ebuOaJiyA+IGFpdGVcIDsKK+W6puWQiCA+IGRvYWlcIDsKK+mBleS+iyA+IGlyZWlcIDsKK+WIqeWZqCA+IHJpa2lcIDsKK+iJsue1tSA+IGlyb2VcIDsKK+eVsOmCpiA+IGlob3VcIDsKK+mBleS7pCA+IGlyZWlcIDsKK+W7g+S9jSA+IGhhaWlcIDsKK+W4g+aWvSA+IGZ1c2VcIDsKK+iHquiyuyA+IGppaGlcIDsKK+iHquiyoCA+IGppZnVcIDsKK+WFpeaxnyA+IGlyaWVcIDsKK+iLseawlyA+IGVpa2lcIDsKK+movummrCA+IHJhYmFcIDsKK+iKseeOiyA+IGthb3VcIDsKK+aji+mZoiA+IGtpaW5cIDsKK+W4t+W5hCA+IGlha3VcIDsKK+iLseatpiA+IGVpYnVcIDsKK+eVsOi2oyA+IGlzaHVcIDsKK+WFt+ahiCA+IGd1YW5cIDsKK+WHuuWgtCA+IGRlYmFcIDsKK+iHquiomCA+IGppa2lcIDsKK+W6p+S4uyA+IHphc3VcIDsKK+iHquihmyA+IGppZWlcIDsKK+eVsOirliA+IGlyb25cIDsKK+WykOi3ryA+IGtpcm9cIDsKK+ebuOWtkCA+IGFpa29cIDsKK+W6nOS4iyA+IGZ1a2FcIDsKK+mtlOeOiyA+IG1hb3VcIDsKK+WBieimsyA+IGlrYW5cIDsKK+eVsOimiyA+IGlrZW5cIDsKK+WIqeS7liA+IHJpdGFcIDsKK+mojummrCA+IGtpYmFcIDsKK+apn+W+riA+IGtpYmlcIDsKK+apn+W9sSA+IGtpZWlcIDsKK+W5vuS9lSA+IGtpa2FcIDsKK+W+gOOAhSA+IG91b3VcIDsKK+eZuuadoSA+IGJhbmVcIDsKK+WGheaEjyA+IG5haWlcIDsKK+apn+W6jyA+IGtpam9cIDsKK+eZuOacqiA+IGtpYmlcIDsKK+W4neWogSA+IHRlaWlcIDsKK+i/guWbniA+IHVrYWlcIDsKK+mAgOS9jSA+IHRhaWlcIDsKK+WHuuWIgyA+IGRlYmFcIDsKK+aihembqCA+IGJhaXVcIDsKK+aooeaTrCA+IG1vZ2lcIDsKK+WGhuW8pyA+IGVua29cIDsKK+eXsueXuiA+IG1haGlcIDsKK+ebruWcsCA+IG1lamlcIDsKK+WGhuW6pyA+IGVuemFcIDsKK+apn+WwviA+IGtpYmlcIDsKK+iKseaouSA+IGthanVcIDsKK+W4sOWWtiA+IGtpZWlcIDsKK+eUu+itnCA+IGdhZnVcIDsKK+apn+WunCA+IGtpZ2lcIDsKK+WwvumDqCA+IGJpYnVcIDsKK+ebsuWUliA+IG1vdWFcIDsKK+S+nemhmCA+IGlnYW5cIDsKK+S+nemgvCA+IGlyYWlcIDsKK+eWkee+qSA+IGdpZ2lcIDsKK+ecn+S8vCA+IG1hbmVcIDsKK+aji+itnCA+IGtpZnVcIDsKK+W4sOWMliA+IGtpa2FcIDsKK+WFkOaIryA+IGppZ2lcIDsKK+ecn+S4iiA+IG1hdWVcIDsKK+W3q+WtkCA+IG1pa29cIDsKK+W4jOWcnyA+IGtpZG9cIDsKK+iKseacnyA+IGtha2lcIDsKK+W4jOWbsyA+IGtpdG9cIDsKK+mmrOm5vyA+IGJha2FcIDsKK+iHmeiEgiA+IGVuamlcIDsKK+WBg+iHpSA+IGVuZ2FcIDsKK+iDoem6uyA+IGdvbWFcIDsKK+agl+m8oCA+IHJpc3VcIDsKK+WvuumZoiA+IGppaW5cIDsKK+eVsOiBniA+IGlidW5cIDsKK+W3q+WlsyA+IG1pa29cIDsKK+ebruWHpiA+IG1lZG9cIDsKK+mnhOmmrCA+IGRhYmFcIDsKK+msvOawlyA+IGtpa2lcIDsKK+WHoOS4iyA+IGtpa2FcIDsKK+apn+WZqCA+IGtpa2lcIDsKK+WFrOWutiA+IGt1Z2VcIDsKK+iJtuatjCA+IGVua2FcIDsKK+S/neittyA+IGhvZ29cIDsKK+WFteWogSA+IGhlaWlcIDsKK+msseawlyA+IHVra2lcIDsKK+i7veaYkyA+IGtlaWlcIDsKK+iLseWtlyA+IGVpamlcIDsKK+iKseaKvCA+IGthb3VcIDsKK+S/muiqniA+IHJpZ29cIDsKK+eah+WtkCA+IG91amlcIDsKK+WxoOiYhyA+IHRvc29cIDsKK+WGgOWbsyA+IGtpdG9cIDsKK+mnhumZpCA+IGt1am9cIDsKK+WvnemWkyA+IG5lbWFcIDsKK+i+nuWEgCA+IGppZ2lcIDsKK+ebruS4iiA+IG1ldWVcIDsKK+W4neS9jSA+IHRlaWlcIDsKK+apn+WMliA+IGtpa2FcIDsKK+i8quW3riA+IHdhc2FcIDsKK+S9memfuyA+IHlvaW5cIDsKK+eVsOerryA+IGl0YW5cIDsKK+i8neW6piA+IGtpZG9cIDsKK+WvhOmZhCA+IGtpZnVcIDsKK+apn+WFtyA+IGtpZ3VcIDsKK+W3peWQiCA+IGd1YWlcIDsKK+eVsOeoriA+IGlzaHVcIDsKK+WFkOWlsyA+IGppam9cIDsKK+iKseW6jyA+IGtham9cIDsKK+WFt+WQiCA+IGd1YWlcIDsKK+i2s+iiiyA+IHRhYmlcIDsKK+Wxsee+iiA+IHlhZ2lcIDsKK+iLpuWcnyA+IGt1ZG9cIDsKK+S9jemajiA+IGlrYWlcIDsKK+Wvv+izgCA+IGp1Z2FcIDsKK+iHqueUuyA+IGppZ2FcIDsKK+iLseWSjCA+IGVpd2FcIDsKK+WFrOWNvyA+IGt1Z2VcIDsKK+eUu+e0oCA+IGdhc29cIDsKK+WFtuWHpiA+IHNva29cIDsKK+aiqOiKsSA+IHJpa2FcIDsKK+eUsee4gSA+IHl1ZW5cIDsKK+WGhuS+oSA+IGVua2FcIDsKK+iKseWtoyA+IGtha2lcIDsKK+mtmuW6pyA+IHVvemFcIDsKK+WFt+WCmSA+IGd1YmlcIDsKK+i2iuiotCA+IGVzc29cIDsKK+iCpemmrCA+IGhpYmFcIDsKK+eZvuWQiCA+IHl1cmlcIDsKK+earuS4iyA+IGhpa2FcIDsKK+WEkuWutiA+IGp1a2FcIDsKK+iHqueBqyA+IGppa2FcIDsKK+i1t+iotCA+IGtpc29cIDsKK+S/muiAsyA+IHJpamlcIDsKK+WutumBiyA+IGthdW5cIDsKK+eVsOeKtiA+IGlqb3VcIDsKK+almualmiA+IHNvc29cIDsKK+WFgeWPryA+IGlua2FcIDsKK+S+jeihmyA+IGppZWlcIDsKK+mlkemkkyA+IGtpZ2FcIDsKK+iKseWZqCA+IGtha2lcIDsKK+eah+S9jSA+IGtvdWlcIDsKK+S9s+ipsSA+IGthd2FcIDsKK+iDg+mFuCA+IGlzYW5cIDsKK+WFiOWFiCA+IG1hbWFcIDsKK+Wutui3ryA+IGllamlcIDsKK+ahp+iRiSA+IGhpYmFcIDsKK+mtlOWlsyA+IG1ham9cIDsKK+mlgumjqSA+IHVkb25cIDsKK+Wtl+mfsyA+IGppb25cIDsKK+WvhOiqniA+IGtpZ29cIDsKK+iKseWNiSA+IGtha2lcIDsKK+WutuitnCA+IGthZnVcIDsKK+iDtOihoyA+IGRvdWlcIDsKK+msvOWlsyA+IGtpam9cIDsKK+iAs+m8uyA+IGppYmlcIDsKK+mkk+msvCA+IGdha2lcIDsKK+iDpOijlCA+IGluZWlcIDsKK+WEsuS9jSA+IGNob2lcIDsKK+iHquajhCA+IHlha2VcIDsKK+eQhumdniA+IHJpaGlcIDsKK+S7pemZjSA+IGlrb3VcIDsKK+WEquS9jSA+IHl1dWlcIDsKK+i1t+iHpSA+IGtpZ2FcIDsKK+iDnuihoyA+IGhvdWlcIDsKK+aghOiqiSA+IGVpeW9cIDsKK+WssOmfsyA+IGVpb25cIDsKK+i8lOS9kCA+IGhvc2FcIDsKK+S8iumBlCA+IGRhdGVcIDsKK+eVsOanmCA+IGl5b3VcIDsKK+S9meiYiiA+IHlvdW5cIDsKK+WutuiaiiA+IGlla2FcIDsKK+WwvOeUqyA+IGppaG9cIDsKK+WBieadkCA+IGl6YWlcIDsKK+eVsOacrCA+IGlob25cIDsKK+akjeacqCA+IHVla2lcIDsKK+iDvOiDnSA+IHRha29cIDsKK+iIquWuhyA+IGtvdXVcIDsKK+eWkeaHvCA+IGdpa3VcIDsKK+eVsOaWhyA+IGlidW5cIDsKK+eVsOaVsCA+IGlzdXVcIDsKK+eWkeaDpyA+IGdpZ3VcIDsKK+iHquaIkSA+IGppZ2FcIDsKK+mnleexoCA+IGthZ29cIDsKK+mtgeWBiSA+IGthaWlcIDsKK+S/neeEoSA+IGhvbXVcIDsKK+mnleevrSA+IGthZ29cIDsKK+mjoumkkyA+IGtpZ2FcIDsKK+iHquaEmyA+IGppYWlcIDsKK+aghOiPryA+IGVpZ2FcIDsKK+WBieaMmSA+IGlreW9cIDsKK+Wto+iqniA+IGtpZ29cIDsKK+iCmuijjyA+IHRvcmlcIDsKK+WDp+S9jSA+IHNvdWlcIDsKK+WBieaJjSA+IGlzYWlcIDsKK+eVsOaJjSA+IGlzYWlcIDsKK+iyu+mAlCA+IGhpdG9cIDsKK+eQhui3ryA+IHJpcm9cIDsKK+izpuiqsiA+IGZ1a2FcIDsKK+izpuipoCA+IGZ1ZWlcIDsKK+eVj+aVrCA+IGlrZWlcIDsKK+S/nea4qSA+IGhvb25cIDsKK+iHquW6jyA+IGppam9cIDsKK+eUu+aetiA+IGdha2FcIDsKK+S9jee9riA+IGljaGlcIDsKK+S6jOmZoiA+IG5paW5cIDsKK+iHquW3sSA+IGppa29cIDsKK+eVsOaApyA+IGlzZWlcIDsKK+eVsOW9qSA+IGlzYWlcIDsKK+eWkeWtlyA+IGdpamlcIDsKK+ixqumbqCA+IGdvdXVcIDsKK+S7mOitsCA+IGZ1Z2lcIDsKK+S/neavjSA+IGhvYm9cIDsKK+WuieiHpSA+IGFuZ2FcIDsKK+S7peilvyA+IGlzZWlcIDsKK+S6nOmItCA+IGFyZWlcIDsKK+iHquWutiA+IGppa2FcIDsKK+eVsOW4uCA+IGlqb3VcIDsKK+S+m+eKoCA+IGt1Z2lcIDsKK+S7mOiomCA+IGZ1a2lcIDsKK+Wwj+eBqyA+IGJveWFcIDsKK+mnhOebriA+IGRhbWVcIDsKK+Wxi+aguSA+IHlhbmVcIDsKK+S+neeEtiA+IGl6ZW5cIDsKK+S8iuiJpiA+IGlrYW5cIDsKK+WBieWuuSA+IGl5b3VcIDsKK+aiqOaenCA+IHJpa2FcIDsKK+eVsOWtmCA+IGl6b25cIDsKK+S6jOmDqCA+IG5pYnVcIDsKK+miqOmbqCA+IGZ1dXVcIDsKK+ajhOaNkCA+IGtpZW5cIDsKK+alleWGhiA+IGRhZW5cIDsKK+WBveWNsCA+IGdpaW5cIDsKK+iCjOiGmiA+IGtpZnVcIDsKK+eVsOWnkyA+IGlzZWlcIDsKK+WBieWkpyA+IGlkYWlcIDsKK+eVsOWkiSA+IGloZW5cIDsKK+eVmeWuiCA+IHJ1c3VcIDsKK+S9jeebuCA+IGlzb3VcIDsKK+S4gOm8kyA+IGlra29cIDsKK+iHquWWtiA+IGppZWlcIDsKK+eUqOaEjyA+IHlvdWlcIDsKK+iAs+iqniA+IGppZ29cIDsKK+eVsOWfnyA+IGlpa2lcIDsKK+eUu+W4gyA+IGdhZnVcIDsKK+mrmOS9jSA+IGtvdWlcIDsKK+Wtl+e+qSA+IGppZ2lcIDsKK+iHquWPmSA+IGppam9cIDsKK+S/neaMgSA+IGhvamlcIDsKK+mppeWwviA+IGtpYmlcIDsKK+WAmuWtkCA+IGlzaGlcIDsKK+iHquWKqSA+IGppam9cIDsKK+iDg+eZjCA+IGlnYW5cIDsKK+eUu+WutiA+IGdha2FcIDsKK+iIiOS6nCA+IGtvdWFcIDsKK+eTpuaWryA+IGdhc3VcIDsKK+iHquWIqSA+IGppcmlcIDsKK+WutueItiA+IGthZnVcIDsKK+mjm+iqniA+IGhpZ29cIDsKK+S9meeFmSA+IHlvZW5cIDsKK+S4i+mnhCA+IGdldGFcIDsKK+S4i+mmrCA+IGdlYmFcIDsKK+WBh+WQjSA+IGthbmFcIDsKK+eVsOWQjSA+IGltZWlcIDsKK+S9jeeJjCA+IGloYWlcIDsKK+eVsOWQjCA+IGlkb3VcIDsKK+iAtuiYhyA+IHlhc29cIDsKK+S9meeCjiA+IHlvZW5cIDsKK+eRoOeSgyA+IHJ1cmlcIDsKK+S4gOmojiA+IGlra2lcIDsKK+eWkeS8vCA+IGdpamlcIDsKK+WBieWLsiA+IGlrdW5cIDsKK+WBieWKuSA+IGlrb3VcIDsKK+WBieWKnyA+IGlrb3VcIDsKK+eVsOWLlSA+IGlkb3VcIDsKK+iyoOiNtyA+IGZ1a2FcIDsKK+S5hemBoCA+IGt1b25cIDsKK+iHquS9mSA+IGppeW9cIDsKK+S4jemboiA+IGZ1cmlcIDsKK+S4gOmhpyA+IGlra29cIDsKK+iHquS7liA+IGppdGFcIDsKK+e+jumfsyA+IGJpb25cIDsKK+WtkOetiSA+IGtvcmFcIDsKK+S4i+mZoiA+IGthaW5cIDsKK+i1t+ahiCA+IGtpYW5cIDsKK+S4jemWkyA+IGJ1bWFcIDsKK+eUu+WboCA+IGdhaW5cIDsKK+S9meazoiA+IHlvaGFcIDsKK+eVj+WPiyA+IGl5dXVcIDsKK+eVsOS+iyA+IGlyZWlcIDsKK+Wwj+aJiyA+IGtvdGVcIDsKK+eVsOS9kyA+IGl0YWlcIDsKK+i2o+aEjyA+IHNodWlcIDsKK+WFiOOAhSA+IG1hbWFcIDsKK+WBieS6uiA+IGlqaW5cIDsKK+eVsOS6uiA+IGlqaW5cIDsKK+S/neWuiSA+IGhvYW5cIDsKK+S9meaugyA+IHlvb3VcIDsKK+i3r+WcsCA+IHJvamlcIDsKK+S+neaLoCA+IGlreW9cIDsKK+eQteeQtiA+IGJpd2FcIDsKK+eQhuenkSA+IHJpa2FcIDsKK+aarumbsiA+IGJvdW5cIDsKK+S/neWnhiA+IGhvYm9cIDsKK+iDg+a2siA+IGlla2lcIDsKK+WxheWjqyA+IGtvamlcIDsKK+S6nOiBliA+IGFzZWlcIDsKK+adjuiKsSA+IHJpa2FcIDsKK+S4i+mHjiA+IGdleWFcIDsKK+S4iumHjiA+IHVlbm9cIDsKK+iCjOeQhiA+IGtpbWVcIDsKK+mmtOafkyA+IG5hamlcIDsKK+S6nOe+pCA+IGFndW5cIDsKK+S4lui+niA+IHNlamlcIDsKK+S4jemBiyA+IGZ1dW5cIDsKK+S9meaghCA+IHlvZWlcIDsKK+iFsOWbsiA+IHlvdWlcIDsKK+aiqOWckiA+IHJpZW5cIDsKK+S+m+W+oSA+IGd1Z29cIDsKK+aig+WtkCA+IHRla29cIDsKK+i3r+WKoCA+IHJ1a2FcIDsKK+S6nOe2sSA+IGFrb3VcIDsKK+aenOeariA+IGthaGlcIDsKK+S4jei7jCA+IGZ1a2lcIDsKK+S9meaahyA+IHlva2FcIDsKK+S4gOmBjiA+IGlra2FcIDsKK+Wwj+WxiyA+IGtveWFcIDsKK+S4gOmAlCA+IGl0dG9cIDsKK+e+jui+niA+IGJpamlcIDsKK+WuieawlyA+IGFua2lcIDsKK+eQieeSgyA+IHJ1cmlcIDsKK+WuueaYkyA+IHlvdWlcIDsKK+WAi+WAiyA+IGtva29cIDsKK+S4jei1tyA+IGZ1a2lcIDsKK+WwieWumCA+IGlrYW5cIDsKK+aghOaeryA+IGVpa29cIDsKK+i1t+W6pyA+IGtpemFcIDsKK+Wvk+aEjyA+IGd1dWlcIDsKK+S+neWtmCA+IGl6b25cIDsKK+S4luipsSA+IHNld2FcIDsKK+S6nOeoriA+IGFzaHVcIDsKK+aZtOmbqCA+IHNlaXVcIDsKK+Wwj+WknCA+IHNheW9cIDsKK+WogemiqCA+IGlmdXVcIDsKK+mjm+ewtyA+IGhpZW5cIDsKK+mfs+mgrSA+IG9uZG9cIDsKK+S9meaKgCA+IHlvZ2lcIDsKK+S4jeiqniA+IGZ1Z29cIDsKK+S9meaJgCA+IHlvc29cIDsKK+eOi+iAhSA+IG91amFcIDsKK+WutuaJtiA+IGthZnVcIDsKK+S4i+iomCA+IGtha2lcIDsKK+aal+mDqCA+IGFuYnVcIDsKK+S+m+WliSA+IGd1YnVcIDsKK+iDg+aVoyA+IGlzYW5cIDsKK+S7geeOiyA+IG5pb3VcIDsKK+S+jeWpoiA+IGppaGlcIDsKK+S6iOenkSA+IHlva2FcIDsKK+Wus+aEjyA+IGdhaWlcIDsKK+S6iOekuiA+IHlvamlcIDsKK+WuieaYkyA+IGFuJydpXCA7CivkuIvooYYgPiBnZXN1XCA7CivkuIrooaMgPiBqb3VpXCA7Civkvo3lpbMgPiBqaWpvXCA7CivlrZfmr40gPiBqaWJvXCA7Civog4zmiLggPiBzZWRvXCA7Civlr4TluK0gPiB5b3NlXCA7CivkvbPlrrQgPiBrYWVuXCA7CivniqDpo5sgPiBnaWhpXCA7CivkuI3omZ4gPiBmdWd1XCA7CivohZDlhJIgPiBmdWp1XCA7CivnvbXoqYggPiBiYXJpXCA7Civlr4zlrrYgPiBmdWthXCA7Civku5bmtL4gPiB0YWhhXCA7CivorbDpmaIgPiBnaWluXCA7Civotbflm6AgPiBraWluXCA7CivnjrvnkoMgPiBoYXJpXCA7CivlronmiZMgPiBhbmRhXCA7CivmmpforZwgPiBhbnB1XCA7CivppqzlrZAgPiBtYWdvXCA7CivmmK/pnZ4gPiB6ZWhpXCA7CivkuovnkIYgPiBqaXJpXCA7CivlrrblrrYgPiBpZWllXCA7CivmnrjmnZ4gPiBrdWtvXCA7CivkuoznjosgPiBuaW91XCA7CivnjL/oh4IgPiBlbnBpXCA7CivmmpfoqJggPiBhbmtpXCA7CivmnpzmqLkgPiBrYWp1XCA7CivkvY3lrpggPiBpa2FuXCA7CivkupHniL4gPiB1bmppXCA7Civkupzngq0gPiBhdGFuXCA7CivkuIDojbcgPiBpa2thXCA7Civotbflj6UgPiBraWt1XCA7CivkvJrmhI8gPiBrYWlpXCA7Civku6XmnbEgPiBpdG91XCA7Civku6XmnaUgPiBpcmFpXCA7Civpo5vnh5UgPiBoaWVuXCA7CivlronluqcgPiBhbnphXCA7Civml5fpvJMgPiBraWtvXCA7CivppqzloLQgPiBiYWJhXCA7Civpno3ppqwgPiBhbmJhXCA7CivkuIDoh4IgPiBpcHBpXCA7CivkvbPlkbMgPiBrYW1pXCA7CivkuI3nvqkgPiBmdWdpXCA7CivkuI3nvoggPiBmdWtpXCA7CivkuI3nvocgPiBmdWtpXCA7CivkvbPlj6UgPiBrYWt1XCA7CivmnKjnk5wgPiBib2tlXCA7Civpp4Tlj6UgPiBkYWt1XCA7Civogqnlt74gPiBoaXJlXCA7CivmmYLpgYsgPiBqaXVuXCA7Civpn7voqp4gPiBpbmdvXCA7CivmpZrjgIUgPiBzb3NvXCA7Civpn7PorZwgPiBvbnB1XCA7CivkuI3nuIEgPiBmdWVuXCA7CivkvY3lnLAgPiBpY2hpXCA7CivmnofmnbcgPiBiaXdhXCA7CivkuIrntbUgPiB1d2FlXCA7CivlraTlvbEgPiBrb2VpXCA7CivmoYjkvqEgPiBhbmthXCA7CivnjJvogIUgPiBtb3NhXCA7CivmoKHljLsgPiBrb3VpXCA7Civnvr3nm64gPiBoYW1lXCA7CivmoYjkuIsgPiBhbmthXCA7Civmn5rlrZAgPiB5dXp1XCA7CivorbforKggPiBnb211XCA7Civku5bmiYAgPiB5b3NvXCA7CivkuozmrKEgPiBuaWppXCA7CivlpoLpnLIgPiBqb3JvXCA7CivkuI3nqY8gPiBmdW9uXCA7CivlronloLUgPiBhbmRvXCA7CivkuIDnrocgPiBpa2tvXCA7CivkuIvnqK4gPiBnZXN1XCA7CivppqzlhbcgPiBiYWd1XCA7CivkvY3li7IgPiBpa3VuXCA7Civku5bmhJsgPiB0YWFpXCA7Civlrrblh7ogPiBpZWRlXCA7CivkvZnlhIAgPiB5b2dpXCA7Civlronlm7ogPiBhbmtvXCA7CivlrrblhbcgPiBrYWd1XCA7CivkuI3no6ggPiBmdW1hXCA7CivlrrblhY4gPiBrYXRvXCA7Civml6XplpMgPiBoaWFpXCA7CivkvI7lpbMgPiBnaWpvXCA7Civlp5TorbIgPiBpam91XCA7CivkvY3lhqAgPiBpa2FuXCA7CivorbfooZsgPiBnb2VpXCA7Civku4vmhI8gPiBrYWlpXCA7Civlr4Tku5ggPiBraWZ1XCA7Civpno3pg6ggPiBhbmJ1XCA7CivmnInngrogPiB5dXVpXCA7Civlr4TkuI4gPiBraXlvXCA7CivkvZPkvY0gPiB0YWlpXCA7CivkvZnkuosgPiB5b2ppXCA7CivpnZLpnZIgPiBhb2FvXCA7Civku67lrZcgPiBrYW5hXCA7CivkuozmnJ8gPiBuaWtpXCA7CivkvY7kvY0gPiB0ZWlpXCA7CivlronlkKYgPiBhbnBpXCA7Civog6HkubEgPiB1cm9uXCA7CivkuojmnJ8gPiB5b2tpXCA7CivlrrbkuosgPiBrYWppXCA7CivnvqnnkIYgPiBnaXJpXCA7CivorY/oqrkgPiBraWhpXCA7CivkuIvnl6IgPiBnZXJpXCA7CivlronljbEgPiBhbmtpXCA7Civos63loLQgPiB0b2JhXCA7CivpppbkvY0gPiBzaHVpXCA7CivlrInmiK8gPiBraWdpXCA7CivkuovmlYUgPiBqaWtvXCA7CivkvIHlm7MgPiBraXRvXCA7CivnvqnniLYgPiBnaWZ1XCA7Civku5blrrYgPiB0YWtlXCA7CivkuI3nkIYgPiBmdXJpXCA7Civos4DlrrQgPiBnYWVuXCA7CivlrprkvY0gPiB0ZWlpXCA7CivlroflhoUgPiB1ZGFpXCA7Civku6XlpJYgPiBpZ2FpXCA7CivnkaPkuosgPiBzYWppXCA7CivlpKLprZQgPiBtdW1hXCA7CivmnaXmhI8gPiByYWlpXCA7CivlrbXljJYgPiBmdWthXCA7CivosrTlrrYgPiBraWthXCA7CivmmpfnpLogPiBhbmppXCA7Civlronkv50gPiBhbnBvXCA7CivlronkvqEgPiBhbmthXCA7CivmnKjmnKggPiBraWdpXCA7CivpnZ7pgYsgPiBoaXVuXCA7Civogb7llJYgPiByb3VhXCA7CivotI/kvZkgPiBlaXlvXCA7Civnvr3mr5sgPiB1bW91XCA7Civpn7PntKAgPiBvbnNvXCA7CivlrZflj6UgPiBqaWt1XCA7CivotIjkvY0gPiB6b3VpXCA7CivosrTlpbMgPiBraWpvXCA7Civku5jlm7MgPiBmdXp1XCA7CivogonliLogPiBtYW1lXCA7CivkuovlvowgPiBqaWdvXCA7CivkuojlvowgPiB5b2dvXCA7CivkuozluqYgPiBuaWRvXCA7Civpn7PnrKYgPiBvbnB1XCA7CivnvqnmsJcgPiBnaWtpXCA7CivlgIvjgIUgPiBrb2tvXCA7Civnvqnmr40gPiBnaWJvXCA7Civoqp7pn7MgPiBnb29uXCA7Civku6XljZcgPiBpbmFuXCA7CivogIzlvowgPiBqaWdvXCA7CivlpJzpmbAgPiB5YWluXCA7Civku5jlkowgPiBmdXdhXCA7CivniaHom44gPiBrYWtpXCA7CivnjovmiYsgPiBvdXRlXCA7Civnvr3moLkgPiBoYW5lXCA7CivmnKjmiLggPiBraWRvXCA7Civku6XliY0gPiBpemVuXCA7CivmnbHlpLcgPiB0b3VpXCA7CivpnZ7orbAgPiBoaWdpXCA7Civpn4vnt6ggPiBpaGVuXCA7Civku6XlhoUgPiBpbmFpXCA7CivkuIDmtL4gPiBpcHBhXCA7CivkuInmr5sgPiBtaWtlXCA7Civpm7fpm6ggPiByYWl1XCA7Civoq7PorZwgPiBhbnB1XCA7Civku5jliqAgPiBmdWthXCA7CivkuI3mrKEgPiBmdWppXCA7Civpm5HprZogPiBqYWtvXCA7CivorbfnrKYgPiBnb2Z1XCA7Civpm7LpnKcgPiB1bm11XCA7CivkuovlrpwgPiBqaWdpXCA7Civmm7Pmm7MgPiBlaWVpXCA7CivkuozlrZcgPiBuaWppXCA7CivkuIDmsJcgPiBpa2tpXCA7Civos6bkuI4gPiBmdXlvXCA7CivmnY/lrZAgPiBhbnp1XCA7Civlp5TntLAgPiBpc2FpXCA7Civoq7PoqJggPiBhbmtpXCA7CivlpKfph44gPiBvb25vXCA7CivkuIDmrakgPiBpcHBvXCA7Civmlo7pg6ggPiBpbmJlXCA7Civku6PkvY0gPiBkYWlpXCA7Civni5DnlpEgPiBrb2dpXCA7CivnjovluqcgPiBvdXphXCA7Civku6Pku6MgPiB5b3lvXCA7CivlpYfosqggPiBraWthXCA7Civku6XkuIogPiBpam91XCA7Civnvqnml5cgPiBnaWtpXCA7CivnkIbkuosgPiByaWppXCA7CivmnInmhI8gPiB5dXVpXCA7CivmnInmg4UgPiB1am91XCA7CivkuI3mnJ8gPiBmdWtpXCA7Civku5bkuosgPiB0YWppXCA7Civni5Lni5IgPiBoaWhpXCA7Civku5jkuI4gPiBmdXlvXCA7CivkuLvmhI8gPiBzaHVpXCA7Civni5Dni7ggPiBrb3JpXCA7CivkuJbmlYUgPiBzZWtvXCA7CivkuI3mmYIgPiBmdWppXCA7CivpnLLoqp4gPiByb2dvXCA7CivlpKfot68gPiBvb2ppXCA7CivnjovlrrYgPiBvdWtlXCA7Civnvqnmj7QgPiBnaWVuXCA7CivnjovlrZAgPiBvdWppXCA7CivkuIDmnJ8gPiBpa2tpXCA7CivnvqnmjZAgPiBnaWVuXCA7CivoqrnorbAgPiBoaWdpXCA7CivosrTkuIsgPiBraWthXCA7CivkuIDmlpcgPiBpdHRvXCA7CivnjovlpoMgPiBvdWhpXCA7CivnjovlpbMgPiBvdWpvXCA7CivpnZLokYkgPiBhb2JhXCA7Civoqp7ot68gPiBnb3JvXCA7CivpnZLoj5wgPiBhb25hXCA7CivkupLliqkgPiBnb2pvXCA7CivmnKjloLQgPiBraWJhXCA7CivkupTliIYgPiBnb2J1XCA7CivkuIDmj4YgPiBpa2tpXCA7Civkuovli5kgPiBqaW11XCA7CivkuIvmiYsgPiBoZXRhXCA7CivkuIvmiLggPiBnZWtvXCA7CivmnbHkup4gPiB0b3VhXCA7CivmnbHkupwgPiB0b3VhXCA7CivmnKjlnLAgPiBraWppXCA7CivnjovlnJ8gPiBvdWRvXCA7Civnvo7mioAgPiBiaWdpXCA7CivkuIrmhI8gPiBqb3VpXCA7CivkuIDmiLggPiBpa2tvXCA7Civni6zmpb0gPiBrb21hXCA7CivoqqToqJggPiBnb2tpXCA7Civpn7Pms6IgPiBvbnBhXCA7CivkupvkuosgPiBzYWppXCA7Civpn7vmr40gPiBpbmJvXCA7CivmmKDnlLsgPiBlaWdhXCA7CivkuojlgpkgPiB5b2JpXCA7CivkuozkvqEgPiBuaWthXCA7Civmlr3ogqUgPiBzZWhpXCA7CivpoYzmhI8gPiBkYWlpXCA7CivkuozkvZAgPiBuaXNhXCA7CivkuojkvqEgPiB5b2thXCA7CivlpJbooaMgPiBnYWlpXCA7CivkuI3luLAgPiBmdWtpXCA7CivmlbfooY0gPiBmdWVuXCA7Civml6nnqLIgPiB3YXNlXCA7CivoqJvpn7MgPiBrYW9uXCA7Civnvr3lpKogPiBoYXRhXCA7CivnhZnpnKcgPiBlbm11XCA7CivnjovljJYgPiBvdWthXCA7CivnhZnpnJ4gPiBlbmthXCA7CivnhZnpm6ggPiBlbicndVwgOwor6aKo5ZGCID4gZnVyb1wgOwor5Lm+5L2NID4ga2VuaVwgOwor5pOs6Z+zID4gZ2lvblwgOwor5aiB5qipID4gaWtlblwgOwor5LiA5bexID4gaWtrb1wgOwor57iB6LW3ID4gZW5naVwgOwor5Lmd5YiGID4ga3VidVwgOwor5LiN5a6JID4gZnVhblwgOwor5aaW55WwID4geW91aVwgOwor6KiD6Z+zID4gZnVvblwgOwor5py65LiLID4ga2lrYVwgOwor54i256WWID4gZnVzb1wgOwor5LiL5amiID4ga2FoaVwgOwor5LiA5a62ID4gaWtrZVwgOwor6Zmw6ZicID4gaW5mdVwgOwor5aWH57iBID4ga2llblwgOwor5pqX5oSaID4gYW5ndVwgOwor5LiO5aSqID4geW90YVwgOwor5LiL5aWzID4gZ2Vqb1wgOwor54Sh6aeEID4gbXVkYVwgOwor57iB6KqeID4gZW5nb1wgOwor6ZuF6KqeID4gZ2Fnb1wgOwor546L5LqLID4gb3VqaVwgOwor5pmC5qmfID4gamlraVwgOwor5pep55SfID4gd2FzZVwgOwor542j5Yy7ID4ganV1aVwgOwor576O5aerID4gYmlraVwgOwor5amm5aWzID4gZnVqb1wgOwor576O5aaTID4gYmlnaVwgOwor6aKo5L2NID4gZnV1aVwgOwor576O5aWzID4gYmlqb1wgOwor5Lmd5LmdID4ga3VrdVwgOwor6Z2S56ClID4gYW90b1wgOwor5a6244CFID4gaWVpZVwgOwor54Sh6Z+zID4gbXVvblwgOwor6K2w5qGIID4gZ2lhblwgOwor5LiN5ZuzID4gZnV0b1wgOwor6ZqY6LevID4gYWlyb1wgOwor54yb5aiBID4gbW91aVwgOwor6ZmN6ZuoID4ga291dVwgOwor5pm65oWnID4gY2hpZVwgOwor5LiN5ZmoID4gZnVraVwgOwor5aSa576pID4gdGFnaVwgOwor5pq05aiBID4gYm91aVwgOwor5aSa576FID4gdGFyYVwgOwor5pmC5pyfID4gamlraVwgOwor6Kqe576pID4gZ29naVwgOwor6Zmw6YOoID4gaW5idVwgOwor5aWz546LID4gam9vdVwgOwor5Li75L2NID4gc2h1aVwgOwor6Z2e55CGID4gaGlyaVwgOwor6Zuy6ISCID4gZnVrZVwgOwor576p5YuZID4gZ2ltdVwgOwor6Zui6IumID4gcmlrdVwgOwor5pqu5aScID4gYm95YVwgOwor6Z2S55SwID4gYW90YVwgOwor5LiN5ZKMID4gZnV3YVwgOwor5LiN5ZGzID4gZnVtaVwgOwor6Zqg6KqeID4gaW5nb1wgOwor6K235pGpID4gZ29tYVwgOwor5LiJ5ZGzID4gc2FtaVwgOwor5LiN5Y+vID4gZnVrYVwgOwor5LiL5ZCPID4ga2FyaVwgOwor5LiL5Y+4ID4gZ2VzdVwgOwor5LiL5Y+lID4gZ2VrdVwgOwor57i357i3ID4gcnVydVwgOwor5pu05L2NID4ga291aVwgOwor5aOB6J2oID4gZGFuaVwgOwor576O5ZGzID4gYmltaVwgOwor5LiL5Y2RID4gZ2ViaVwgOwor6Kyz5q2MID4gb3VrYVwgOwor6K235oyBID4gZ29qaVwgOwor5LiA5Y+lID4gaWtrdVwgOwor5LiN5YipID4gZnVyaVwgOwor54Sh6YmbID4gbXVlblwgOwor576O5YyWID4gYmlrYVwgOwor5LiA5Yy6ID4gaWtrdVwgOwor6aCt5Z6iID4gZnVrZVwgOwor5LiN5YW3ID4gZnVndVwgOwor6aCt5ZuyID4gdG91aVwgOwor6KiY6K2cID4ga2lmdVwgOwor5LiN5YKZID4gZnViaVwgOwor6Kib6KqeID4ga2Fnb1wgOwor54qg5omTID4gZ2lkYVwgOwor5aSW56eRID4gZ2VrYVwgOwor6Zui57iBID4gcmllblwgOwor5LiW5LqLID4gc2VqaVwgOwor6Z+75a2XID4gaW5qaVwgOwor5LiW5LiWID4geW95b1wgOwor5aSn55uuID4gb29tZVwgOwor54Sh6L6cID4gbXVrb1wgOwor5LiK5L2NID4gam91aVwgOwor5LiL5LuYID4ga2FmdVwgOwor57iB6ICFID4gZW5qYVwgOwor5pel5q2pID4gaGlidVwgOwor5LiN5LqMID4gZnVqaVwgOwor5LiN5LqIID4gZnV5b1wgOwor5LiA5YCLID4gaWtrb1wgOwor54i+5rGdID4gamlqb1wgOwor5aiB5a65ID4gaXlvdVwgOwor6Z+z5a2XID4gb25qaVwgOwor5aSc552AID4geW9naVwgOwor6Zmi6K2wID4gaW5naVwgOwor5aSc55uuID4geW9tZVwgOwor5LiA5L2QID4gaXNzYVwgOwor54i25q+NID4gZnVib1wgOwor6Z2e5q+AID4gaGlraVwgOwor5pmC5beuID4gamlzYVwgOwor57Sw6ZuoID4gc2FpdVwgOwor6ZyK55WwID4gcmVpaVwgOwor6KqH56S6ID4ga29qaVwgOwor5Z+66Z+zID4ga2lvblwgOwor57ev57eaID4gaXNlblwgOwor6ZmE6K2wID4gZnVnaVwgOwor5pmC5a6cID4gamlnaVwgOwor5Luj44CFID4geW95b1wgOwor6Zqg6ICFID4gaW5qYVwgOwor5pmC5a2jID4gamlraVwgOwor6Za76a2UID4gZW5tYVwgOwor5pel5pelID4gaGliaVwgOwor5pWw54+gID4ganV6dVwgOwor6ZmE6KiYID4gZnVraVwgOwor6aCk5L2/ID4gaXNoaVwgOwor6Zmw6JCOID4gaW4nJ2lcIDsKK+mfs+WQkCA+IG9udG9cIDsKK+mfs+WPiSA+IG9uc2FcIDsKK+WogeWQjSA+IGltZWlcIDsKK+mdkuacqCA+IGFva2lcIDsKK+WogeWOsyA+IGlnZW5cIDsKK+isneaEjyA+IHNoYWlcIDsKK+e2uue+hSA+IGtpcmFcIDsKK+WogeWLoiA+IGlzZWlcIDsKK+WfuumDqCA+IGtpYnVcIDsKK+WmguaEjyA+IG55b2lcIDsKK+itrOWWqSA+IGhpeXVcIDsKK+itsOWToSA+IGdpaW5cIDsKK+WogeWFiSA+IGlrb3VcIDsKK+WlveaEjyA+IGtvdWlcIDsKK+WlveaCqiA+IGtvdW9cIDsKK+WknOawlyA+IHlha2lcIDsKK+mfs+S+oSA+IG9ua2FcIDsKK+mfu+S6iyA+IGluamlcIDsKK+iomOe0gCA+IGtpa2lcIDsKK+aXouW+gCA+IGtpb3VcIDsKK+iqnuawlyA+IGdva2lcIDsKK+eIvuW+jCA+IGppZ29cIDsKK+WogeS7pCA+IGlyZWlcIDsKK+aZguWLmSA+IGppbXVcIDsKK+WlpeaEjyA+IG9rdWlcIDsKK+WeoumboiA+IGtvcmlcIDsKK+mbsuawlyA+IHVua2lcIDsKK+mWk+mWkyA+IG1hbWFcIDsKK+Wik+eikSA+IGJvaGlcIDsKK+mbqOawtCA+IHVzdWlcIDsKK+itsuS9jSA+IGpvdWlcIDsKK+Whqee0oCA+IGVuc29cIDsKK+aZguS+oSA+IGppa2FcIDsKK+itsOS6iyA+IGdpamlcIDsKK+eEoee4gSA+IG11ZW5cIDsKK+WknOaalyA+IHlhYW5cIDsKK+aZguS6iyA+IGppamlcIDsKK+aZguS4iyA+IGppa2FcIDsKK+Wkj+acnyA+IGtha2lcIDsKK+WnlOS7uyA+IGluaW5cIDsKK+WltOWpoiA+IG51aGlcIDsKK+e4iuatuyA+IGlzaGlcIDsKK+Wkp+aJiyA+IG9vZGVcIDsKK+acqOOAhSA+IGtpZ2lcIDsKK+mcsuW6pyA+IHJvemFcIDsKK+mbheatjCA+IGdha2FcIDsKK+ipoOatjCA+IGVpa2FcIDsKK+mZsOeUuyA+IGluZ2FcIDsKK+Wkp+aEjyA+IHRhaWlcIDsKK+WjiuatuyA+IGVzaGlcIDsKK+eEoeeijSA+IG11Z2VcIDsKK+ipkOasuiA+IHNhZ2lcIDsKK+iqoOaEjyA+IHNlaWlcIDsKK+eFmeeBqyA+IGVua2FcIDsKK+e1jOe3ryA+IGtlaWlcIDsKK+mdkuWcsCA+IGFvamlcIDsKK+mdkuWbsyA+IGFvenVcIDsKK+aVrOaEjyA+IGtlaWlcIDsKK+aRqee+hSA+IG1hcmFcIDsKK+eyl+mHjiA+IHNveWFcIDsKK+Wkp+WxiyA+IG9veWFcIDsKK+iqpOW3riA+IGdvc2FcIDsKK+Wkp+WwiSA+IHRhaWlcIDsKK+abs+OAhSA+IGVpZWlcIDsKK+e4geaVhSA+IGVua29cIDsKK+eEoeeQhiA+IG11cmlcIDsKK+WkouWvkCA+IG11YmlcIDsKK+e3r+abuCA+IGlzaG9cIDsKK+WkmuWykCA+IHRha2lcIDsKK+eFmeazoiA+IGVucGFcIDsKK+ezluihoyA+IHRvdWlcIDsKK+mcsuWcsCA+IHJvamlcIDsKK+Wls+WFkCA+IGpvamlcIDsKK+WkmuWvoSA+IHRha2FcIDsKK+aPtOittyA+IGVuZ29cIDsKK+aXp+S6iyA+IGt1amlcIDsKK+iqnuWwviA+IGdvYmlcIDsKK+iqpOWtlyA+IGdvamlcIDsKK+eIvuS9mSA+IGppeW9cIDsKK+mcsuWWtiA+IHJvZWlcIDsKK+S4luOAhSA+IHlveW9cIDsKK+WkpeWkmiA+IGthdGFcIDsKK+eEoeeFmSA+IG11ZW5cIDsKK+aVsOWvhCA+IHN1a2lcIDsKK+Wkj+WtoyA+IGtha2lcIDsKK+mYv+eJhyA+IGFoZW5cIDsKK+mZsOawlyA+IGlua2lcIDsKK+WknOWknCA+IHlveW9cIDsKK+WkmuWkmiA+IHRhdGFcIDsKK+aXl+S4iyA+IGtpa2FcIDsKK+Wcn+mWkyA+IGRvbWFcIDsKK+aOqui+niA+IHNvamlcIDsKK+e4geW6pyA+IGVuemFcIDsKK+aWueS9jSA+IGhvdWlcIDsKK+WkluWbsiA+IGdhaWlcIDsKK+iqsuWToSA+IGthaW5cIDsKK+WfuuekjiA+IGtpc29cIDsKK+eEoea0viA+IG11aGFcIDsKK+imj+efqSA+IGtpa3VcIDsKK+WknOWWtiA+IHlhZWlcIDsKK+a/vumBjiA+IHJva2FcIDsKK+mbqOWkqSA+IHV0ZW5cIDsKK+WliOS9lSA+IGlrYW5cIDsKK+mbqOWjsCA+IHVzZWlcIDsKK+eEoeavlCA+IG11aGlcIDsKK+imi+ebriA+IG1pbWVcIDsKK+mbqOWfnyA+IHVpa2lcIDsKK+e4geWutiA+IGVua2FcIDsKK+WknOWNiiA+IHlvd2FcIDsKK+mbieWtkCA+IGtpamlcIDsKK+iho+mmmSA+IGlrb3VcIDsKK+iqnuWRgiA+IGdvcm9cIDsKK+eEoeapnyA+IG11a2lcIDsKK+ijnOiqniA+IGhvZ29cIDsKK+e3j+aEjyA+IHNvdWlcIDsKK+maoOW+riA+IGluYmlcIDsKK+iqnuWPpSA+IGdva3VcIDsKK+aOqeittyA+IGVuZ29cIDsKK+ijnOiomCA+IGhva2lcIDsKK+maj+aEjyA+IHp1aWlcIDsKK+Wkt+S6uiA+IGlqaW5cIDsKK+iho+mhniA+IGlydWlcIDsKK+WknOWFtyA+IHlhZ3VcIDsKK+eEoeacnyA+IG11a2lcIDsKK+eyl+iPkyA+IHNva2FcIDsKK+WkmuS+oSA+IHRha2FcIDsKK+mciuS9jSA+IHJlaWlcIDsKK+aUu+WbsiA+IGtvdWlcIDsKK+WkmuS6iyA+IHRhamlcIDsKK+eBq+eurSA+IGhpeWFcIDsKK+e1teacrCA+IGVob25cIDsKK+Wbuui+niA+IGtvamlcIDsKK+eLkuOAhSA+IGhpaGlcIDsKK+Wcn+iqniA+IGRvZ29cIDsKK+WcsOihoyA+IGNoaWlcIDsKK+aUmOWktyA+IGpvdWlcIDsKK+mbh+WToSA+IGtvaW5cIDsKK+eEoeaPtCA+IG11ZW5cIDsKK+mbheWRsyA+IGdhbWlcIDsKK+ewv+iomCA+IGJva2lcIDsKK+eEoeaJiyA+IG11dGVcIDsKK+eEoeaIkSA+IG11Z2FcIDsKK+eBq+efoiA+IGhpeWFcIDsKK+mYv+aIvyA+IGFob3VcIDsKK+imh+awlyA+IGhha2lcIDsKK+ijnOiCpSA+IGhvaGlcIDsKK+iotOWboCA+IHNvaW5cIDsKK+imj+aooSA+IGtpYm9cIDsKK+mbhOWBiSA+IHl1dWlcIDsKK+aVheS6iyA+IGtvamlcIDsKK+iiiOijnyA+IGtlc2FcIDsKK+Whl+W4gyA+IHRvZnVcIDsKK+e1teW4qyA+IGVzaGlcIDsKK+mZpOWknCA+IGpveWFcIDsKK+eEoeWtoyA+IG11a2lcIDsKK+eBq+eElCA+IGthZW5cIDsKK+eBq+eCjiA+IGthZW5cIDsKK+eBq+eCiSA+IGthcm9cIDsKK+aKvOmfuyA+IG91aW5cIDsKK+WhqeWfuiA+IGVua2lcIDsKK+aTrOWPpCA+IGdpa29cIDsKK+eCuuaUvyA+IGlzZWlcIDsKK+eEoeWhqSA+IG11ZW5cIDsKK+aOqOenuyA+IHN1aWlcIDsKK+eEoeWeoiA+IG11a3VcIDsKK+eEoeWcsCA+IG11amlcIDsKK+mZhOWbsyA+IGZ1enVcIDsKK+e0oOaJiyA+IHN1ZGVcIDsKK+eBq+awlyA+IGtha2lcIDsKK+aTrOS8vCA+IGdpamlcIDsKK+WhqeWMliA+IGVua2FcIDsKK+iomOS6iyA+IGtpamlcIDsKK+eEoeWRsyA+IG11bWlcIDsKK+aXpeOAhSA+IGhpYmlcIDsKK+mYv+WRhiA+IGFob3VcIDsKK+WcsOeVsCA+IGNoaWlcIDsKK+mXh+aEmiA+IGFuZ3VcIDsKK+mZouS4uyA+IGluanVcIDsKK+WgguWuhyA+IGRvdXVcIDsKK+mdkuOAhSA+IGFvYW9cIDsKK+mYv+WFhCA+IGFrZWlcIDsKK+eEoeS+oSA+IG11a2FcIDsKK+WgtOWQiCA+IGJhYWlcIDsKK+e1teWDjyA+IGV6b3VcIDsKK+eEoeS6jCA+IG11bmlcIDsKK+eEoeS6iyA+IGJ1amlcIDsKK+iho+e0iyA+IGVtb25cIDsKK+e0jeWxiyA+IG5heWFcIDsKK+imi+WgtCA+IG1pYmFcIDsKK+mYv+S4liA+IGFzZWlcIDsKK+eskemhlCA+IGVnYW9cIDsKK+aPtuaPhCA+IHlheXVcIDsKK+WfuuWboCA+IGtpaW5cIDsKK+e0oOWcsCA+IHNvamlcIDsKK+e0oOWboCA+IHNvaW5cIDsKK+eyl+actiA+IHNvZGFcIDsKK+aJi+mWkyA+IHRlbWFcIDsKK+Wbs+eUuyA+IHp1Z2FcIDsKK+eroOmtmiA+IHRha29cIDsKK+WknOOAhSA+IHlveW9cIDsKK+WkmuOAhSA+IHRhdGFcIDsKK+eBq+WxiyA+IGhveWFcIDsKK+aJueitsCA+IGhpZ2lcIDsKK+eArOaIuCA+IHNldG9cIDsKK+ieu+ibhCA+IGtlcmFcIDsKK+eBq+WkqyA+IGthZnVcIDsKK+mWk+WkqyA+IG1hYnVcIDsKK+aMgeeigSA+IGppZ29cIDsKK+a8lOiIniA+IGVuYnVcIDsKK+eziuWhlyA+IGtvdG9cIDsKK+eyl+W4gyA+IHNvZnVcIDsKK+a8lOiAhSA+IGVuamFcIDsKK+eBq+WZqCA+IGtha2lcIDsKK+ibmem7vSA+IGFib3VcIDsKK+a8lOe+qSA+IGVuZ2lcIDsKK+aOj+aRuCA+IHN1cmlcIDsKK+ihjOeCuiA+IGtvdWlcIDsKK+exoOaJiyA+IGtvdGVcIDsKK+ihjOeBqyA+IGFua2FcIDsKK+euh+euhyA+IGtva29cIDsKK+ijuOWppiA+IHJhZnVcIDsKK+Wbs+ahiCA+IHp1YW5cIDsKK+Wcn+aJiyA+IGRvdGVcIDsKK+a4qembhSA+IG9uZ2FcIDsKK+aPtOWKqSA+IGVuam9cIDsKK+idpuifhyA+IGdhbWFcIDsKK+WboOaenCA+IGluZ2FcIDsKK+iho+ahgSA+IGlrb3VcIDsKK+m9n+m9rCA+IHNvZ29cIDsKK+eBq+S6iyA+IGthamlcIDsKK+WbuuaMgSA+IGtvamlcIDsKK+Wbm+aZgiA+IHlvamlcIDsKK+Wbm+aWuSA+IHlvbW9cIDsKK+idjOiaqiA+IGthdG9cIDsKK+WbveW6nCA+IGtvZnVcIDsKK+aNu+WtkCA+IG5lamlcIDsKK+WcsOWgtCA+IGppYmFcIDsKK+a3q+mdoSA+IGluYmlcIDsKK+aJi+e+vSA+IHRlYmFcIDsKK+icmuiqniA+IGhpZ29cIDsKK+a3q+mbqCA+IGluJyd1XCA7Civoo5zliqkgPiBob2pvXCA7CivmjanlrZAgPiBuZWppXCA7Civmua/okYkgPiB5dWJhXCA7CivmhbDpnIogPiBpcmVpXCA7CivlnJ/lmaggPiBkb2tpXCA7CivonJjom5sgPiBrdW1vXCA7CivmjInmkakgPiBhbm1hXCA7CivooaPluK8gPiBpdGFpXCA7Civoo5zkvZAgPiBob3NhXCA7Civmjojlj5cgPiBqdWp1XCA7CivmiZPnoLQgPiBkYWhhXCA7Civmi7/mjZUgPiBkYWhvXCA7CivpvLvpn7MgPiBiaW9uXCA7CivlnJ/ljKogPiBkb2hpXCA7CivllJbpiLQgPiBhcmVpXCA7CivmvJTmraYgPiBlbmJ1XCA7CivmvJTmrYwgPiBlbmthXCA7CivlnLDkvY0gPiBjaGlpXCA7Civnp7vpoIUgPiBpa291XCA7CivlnKjkvY0gPiB6YWlpXCA7CivooY3lrZcgPiBlbmppXCA7CivlnJLlhZAgPiBlbmppXCA7CivmhJvppqwgPiBhaWJhXCA7CivmjojkuI4gPiBqdXlvXCA7Civlm5vlm7IgPiBzaGlpXCA7Civlm7rljJYgPiBrb2thXCA7CivmjZXlkI8gPiBob3JpXCA7CivmhJvpo7IgPiBhaWluXCA7Civlk4Dpn7MgPiBhaW9uXCA7CivmtbfppqwgPiB0b2RvXCA7CivmhJvpoacgPiBhaWtvXCA7CivmtbfpnpggPiBob3lhXCA7Civlm57lkJEgPiBla291XCA7CivmuKHoi7EgPiB0b2VpXCA7CivmiK/nlLsgPiBnaWdhXCA7CivmhbDorJ0gPiBpc2hhXCA7Civpu7Tpm6ggPiBiYWl1XCA7CivmvJTmioAgPiBlbmdpXCA7CivooaPlhqAgPiBpa2FuXCA7CivmvJTmiK8gPiBlbmdpXCA7Civnp7vpgIEgPiBpc291XCA7Civlkozpn7MgPiB3YW9uXCA7Civmirzlv40gPiBvc3N1XCA7Civnp7vou6IgPiBpdGVuXCA7CivpioXpkbwgPiBkb3JhXCA7CivmhbDol4kgPiBpc2hhXCA7CivmiormjIEgPiBoYWppXCA7CivmhJvovJ0gPiBhaWtpXCA7Civmua/nha4gPiB5dW5pXCA7Civnp7vorbIgPiBpam91XCA7CivmgqrprLwgPiBha2tpXCA7CivmhI/otqMgPiBpc2h1XCA7CivmhJvorbcgPiBhaWdvXCA7Civnp7vooYwgPiBpa291XCA7Civlk4DoqbEgPiBhaXdhXCA7Civlk4DoqLQgPiBhaXNvXCA7CivlkYnpoIggPiBnb3N1XCA7CivplpPjgIUgPiBtYW1hXCA7CivlkYnpn7MgPiBnb29uXCA7Civpu4TpiZsgPiBvdWVuXCA7Civnp5joqbEgPiBoaXdhXCA7Civmua/msJcgPiB5dWdlXCA7CivonrrlrZAgPiBuZWppXCA7CivmhI/oposgPiBpa2VuXCA7Civmi4fljbAgPiBib2luXCA7Civpu4TouqsgPiBraW1pXCA7CivlkozorbAgPiB3YWdpXCA7CivmirzljbAgPiBvdWluXCA7CivlmajlhbcgPiBraWd1XCA7Civlkozoqp4gPiB3YWdvXCA7CivmgrLpgYsgPiBoaXVuXCA7CivpvJPoiJ4gPiBrb2J1XCA7CivlkJDpnLIgPiB0b3JvXCA7CivmganpoacgPiBvbmtvXCA7CivmgbXpm6ggPiBrZWl1XCA7Civmta7oj68gPiBmdWthXCA7Civmtbfoi5QgPiBub3JpXCA7CivmtbfoiosgPiBrYWl1XCA7CivnpZ7phZIgPiBtaWtpXCA7CivmtYTooaMgPiBqb3VlXCA7CivmsrPppqwgPiBrYWJhXCA7CivolY7puqYgPiBzb2JhXCA7CivmirzkuIsgPiBvdWthXCA7CivmuKHmsrMgPiB0b2thXCA7CivpuJrptaEgPiBvdW11XCA7CivlkIjplpMgPiBhaW1hXCA7Civlj7PpnaIgPiB1bWVuXCA7CivpvLvnpZYgPiBiaXNvXCA7CivmgqrosqggPiBha2thXCA7CivmuKHmrKcgPiB0b291XCA7Civnp7vnrqEgPiBpa2FuXCA7CivlkKbpgYsgPiBoaXVuXCA7Civlj6Tpn7MgPiBrb29uXCA7CivlmJTlkJAgPiBvdXRvXCA7CivmgrLoqbEgPiBoaXdhXCA7Civlkozoi7EgPiB3YWVpXCA7Civlj6Tpm4UgPiBrb2dhXCA7Civmu4vlkbMgPiBqaW1pXCA7CivmibbliqkgPiBmdWpvXCA7CivllJbnhLYgPiBhemVuXCA7CivomIfoirMgPiBzdW91XCA7CivnrYnkvY0gPiB0b3VpXCA7Civol43opLggPiBib3JvXCA7CivmgqrooaMgPiBha3VpXCA7CivnpZboqp4gPiBzb2dvXCA7CivmgKrpm6ggPiBrYWl1XCA7Civmua/lsYsgPiB5dXlhXCA7CivllL7mo4QgPiBkYWtpXCA7Civlj7PovrogPiB1aGVuXCA7CivmhYjniLYgPiBqaWZ1XCA7Civllpzlr78gPiBraWp1XCA7Civlj6Tpg70gPiBrb3RvXCA7Civmsr/ot68gPiBlbnJvXCA7Civph47phJkgPiB5YWhpXCA7Civmua/lpbMgPiB5dW5hXCA7Civljq3pm6IgPiBvbnJpXCA7CivpvLvngo4gPiBiaWVuXCA7Civph47ovrogPiBub2JlXCA7Civpu4Tnt68gPiBrb3VpXCA7Civolarovp4gPiBidWppXCA7CivmganoqrwgPiBvbmdpXCA7CivnqY7mnpwgPiBlaWthXCA7Civpi63msJcgPiBlaWtpXCA7CivllrbllrYgPiBlaWVpXCA7Civms5XooaMgPiBob3VlXCA7CivmsrPosZogPiBmdWd1XCA7Civph47ot68gPiBub2ppXCA7CivmuKnluqYgPiBvbmRvXCA7Civms5XonrogPiBob3JhXCA7Civok5bpursgPiBoaW1hXCA7CivmiYDku6UgPiB5dWVuXCA7CivlkarnrKYgPiBqdWZ1XCA7CivmhYjmr40gPiBqaWJvXCA7Civlj6Toqp4gPiBrb2dvXCA7CivllrbliKkgPiBlaXJpXCA7Civlj6ToqJggPiBrb2tpXCA7Civlv5zpnIAgPiBvdWp1XCA7CivolpTolocgPiBiYXJhXCA7CivmiJHliKkgPiBnYXJpXCA7Civnp7vmsJEgPiBpbWluXCA7CivlloflmJsgPiByYW1hXCA7Civmho7mgqogPiB6b3VvXCA7CivnqbrlsIkgPiBrdXVpXCA7CivnqY7mgp8gPiBlaWdvXCA7CivmsJfpn7sgPiBraWluXCA7Civlj7PokYkgPiB1eW91XCA7Civpurvnl7ogPiBtYWhpXCA7Civlk4DmrYwgPiBhaWthXCA7CivmsJfpmpwgPiBraXphXCA7Civlj5fomIogPiBqdXVuXCA7CivlvqHpoZQgPiBva2FvXCA7CivmhJvmqZ8gPiBhaWtpXCA7Civlj7PoiLcgPiB1Z2VuXCA7CivpubXnsL8gPiByb2JvXCA7CivmgannvqkgPiBvbmdpXCA7CivljYHpm6ggPiBqdXV1XCA7Civlj7PohLMgPiB1bm91XCA7CivmuKnlkowgPiBvbndhXCA7CivmsLjpgaAgPiBlaWVuXCA7CivmhJrmoYggPiBndWFuXCA7Civph47oia8gPiBub3JhXCA7Civlv4zpgb8gPiBraWhpXCA7Civokr/pm4AgPiBhb2ppXCA7Civmt6vlqaYgPiBpbnB1XCA7CivmsJfpi60gPiBraWVpXCA7Civmg7DmsJcgPiBkYWtpXCA7CivlkozmsJcgPiB3YWtpXCA7CivomorluLMgPiBrYXlhXCA7Civmtbfmnb4gPiBtaXJ1XCA7CivmhYjmhJsgPiBqaWFpXCA7CivmhYjmgrIgPiBqaWhpXCA7Civlj6XnvqkgPiBrdWdpXCA7Civlj6TnvqkgPiBrb2dpXCA7CivlkozmrYwgPiB3YWthXCA7CivmsZrooYwgPiBva291XCA7CivlkbzmsJcgPiBrb2tpXCA7CivmsJfpgYsgPiBraXVuXCA7CivomorlsYsgPiBrYXlhXCA7CivnoLTpoqggPiBoYWZ1XCA7CivmhJvmkqsgPiBhaWJ1XCA7Civpu4Tms4kgPiB5b21pXCA7CivljbDorZwgPiBpbnB1XCA7Civlv5zoqLQgPiBvdXNvXCA7CivlvqHphZIgPiBtaWtpXCA7Civmr43pn7MgPiBib2luXCA7Civpg73pm4UgPiB0b2dhXCA7Civpu4Tmq6ggPiBoYXplXCA7Civlv4zoq7EgPiBraWtpXCA7Civlk4DmhZUgPiBhaWJvXCA7CivljLvpgZMgPiBpZG91XCA7CivlkIjnnYAgPiBhaWdpXCA7CivnqY/lkowgPiBvbndhXCA7CivnqbrkvY0gPiBrdXVpXCA7Civnp5jmioAgPiBoaWdpXCA7CivnpZbniLYgPiBzb2Z1XCA7CivmhJvmhZUgPiBhaWJvXCA7CivlvqHouqsgPiBvbm1pXCA7CivlkIznlbAgPiBkb3VpXCA7Civlj6TnqIAgPiBrb2tpXCA7CivmrrrpmaMgPiB0YXRlXCA7CivmhbDllY8gPiBpbW9uXCA7CivljZHoqp4gPiBoaWdvXCA7CivljbHomZ4gPiBraWd1XCA7CivmhI/mgJ0gPiBpc2hpXCA7CivmgrLmrYwgPiBoaWthXCA7CivljLrosrsgPiBrdWhpXCA7CivmhI/lv5cgPiBpc2hpXCA7CivlkYbmsJcgPiBha2tlXCA7CivpgqrprZQgPiBqYW1hXCA7CivpgqrprLwgPiBqYWtpXCA7Civpg73phJkgPiB0b2hpXCA7CivljLrorbAgPiBrdWdpXCA7Civnp4HmhI8gPiBzaGlpXCA7CivlvpLosrsgPiB0b2hpXCA7CivmhbDlirQgPiBpcm91XCA7CivnoLTpgqogPiBoYWphXCA7CivlvoDot68gPiBvdXJvXCA7Civmt6vkuosgPiBpbmppXCA7Civlj6TnlLsgPiBrb2dhXCA7Civpgqrpo5sgPiBqYWhpXCA7CivnpZbmr40gPiBzb2JvXCA7CivlvqHooaMgPiBneW9pXCA7Civpi63liKkgPiBlaXJpXCA7CivmtL7miYsgPiBoYWRlXCA7CivmgqrmnpwgPiBha2thXCA7CivmsrnnhZkgPiB5dWVuXCA7CivlvKXpmYAgPiBtaWRhXCA7Civph47njL8gPiB5YWVuXCA7Civlj5fnkIYgPiBqdXJpXCA7Civlkbzlv5wgPiBrb291XCA7Civnp5jlpaUgPiBoaW91XCA7CivmgKrnlbAgPiBrYWlpXCA7Civpg73orbAgPiB0b2dpXCA7CivmhI/lpJYgPiBpZ2FpXCA7Civmr5Toq60gPiBoaXl1XCA7CivpgbrpqrggPiBpZ2FpXCA7CivmsZrnqaIgPiBvd2FpXCA7CivmhJrlm7MgPiBndXp1XCA7CivlvoHooaMgPiBzZWlpXCA7Civmg4XmhI8gPiBqb3VpXCA7CivmtYHluIMgPiBydWZ1XCA7Civmr43oqp4gPiBib2dvXCA7CivpgbrpppkgPiBpa291XCA7Civph47ngasgPiBub2JpXCA7CivlkozlrZcgPiB3YWppXCA7CivlkIjmrZMgPiBuZW11XCA7Civnp7vli5UgPiBpZG91XCA7CivljbDntqwgPiBpbmp1XCA7CivliqDpmaQgPiBrYWpvXCA7CivlvqHojLYgPiBvY2hhXCA7CivmhI/lmq4gPiBpa291XCA7CivpgbrpoqggPiBpZnV1XCA7Civmr4DoqokgPiBraXlvXCA7CivpurvluIMgPiBtYWZ1XCA7CivpvLvkuIsgPiBiaWthXCA7CivmgqrmhJ8gPiBva2FuXCA7CivmgqrmhI8gPiBha3VpXCA7CivmhI/lkJEgPiBpa291XCA7Civnp7vkvY8gPiBpanV1XCA7CivomZrkvY0gPiBreW9pXCA7CivljLvogIUgPiBpc2hhXCA7CivmgbXmlrkgPiBlaG91XCA7CivomZrku64gPiBrb2tlXCA7Civnp7vkuZcgPiBpam91XCA7CivmhJvlhZAgPiBhaWppXCA7CivliqDph4wgPiBrYXJpXCA7Civph47mrKEgPiB5YWppXCA7CivmspnmsbAgPiBzYXRhXCA7Civnp5jlhIAgPiBoaWdpXCA7Civliqnovp4gPiBqb2ppXCA7CivmrabpgYsgPiBidXVuXCA7CivmrKfpnLIgPiBvdXJvXCA7CivlvqHnsL4gPiBtaXN1XCA7Civmgqrlr5IgPiBva2FuXCA7CivljbHnlpEgPiBraWdpXCA7CivlkbPlmYwgPiBtaXNvXCA7Civlj7PmlrkgPiB1aG91XCA7CivljbDnlLsgPiBpbmdhXCA7Civlu4jploAgPiBhbW9pXCA7Civnp5jkuosgPiBoaWppXCA7CivmsZrngrkgPiBvdGVuXCA7CivljbDnkr0gPiBpbmppXCA7Civmr5vnvr0gPiBrZWJhXCA7Civnpo3lm6AgPiBrYWluXCA7Civph47mmq4gPiB5YWJvXCA7CivlkbXlkbUgPiBrYWthXCA7CivlkIzmhI8gPiBkb3VpXCA7CivmgJLmsJcgPiBkb2tpXCA7CivlkIjmhI8gPiBnb3VpXCA7CivlvqHnpLwgPiBvcmVpXCA7Civms6LluIMgPiBoYWJ1XCA7CivlvqHnopcgPiBvd2FuXCA7CivmgaPmhI8gPiBzaGlpXCA7CivokbXoirEgPiBraWthXCA7CivliqDorbcgPiBrYWdvXCA7CivpgbrotIggPiBpem91XCA7CivmsZrms6UgPiBvZGVpXCA7Civpgbros6IgPiBpa2VuXCA7Civno4HmsJcgPiBqaWtpXCA7CivpgbrosqEgPiBpemFpXCA7Civnn7Pok7QgPiBhb3NhXCA7CivlvqHnm4YgPiBvYm9uXCA7CivmgrLllpwgPiBoaWtpXCA7CivmsZrmsLQgPiBvc3VpXCA7Civlj43mlYUgPiBob2dvXCA7CivlvIrooaMgPiBoZWlpXCA7CivmgrLlk4AgPiBoaWFpXCA7CivpgaDot68gPiBlbnJvXCA7CivljLvnlYwgPiBpa2FpXCA7CivpgbroqqEgPiBpa2FpXCA7CivljLvnlKggPiBpeW91XCA7CivpgbroqJMgPiBpa3VuXCA7CivljZfnhKEgPiBuYW11XCA7CivlvoHnn6IgPiBzb3lhXCA7Civov73poqggPiBvaXRlXCA7CivmgqrljJYgPiBha2thXCA7CivmsJfngo4gPiBraWVuXCA7CivnoJLntKAgPiBoaXNvXCA7CivmgKrmiJEgPiBrZWdhXCA7Civlj7PlsrggPiB1Z2FuXCA7Civpur7kuIsgPiBraWthXCA7CivmsLjmsLggPiBlaWVpXCA7CivmsZrmn5MgPiBvc2VuXCA7CivmganlqIEgPiBvbicnaVwgOwor56WH5ZySID4gZ2lvblwgOwor5Y+k5biMID4ga29raVwgOwor6I236aeEID4gbmlkYVwgOwor5Y2x5qmfID4ga2lraVwgOwor5rCX5ripID4ga2lvblwgOwor5b6S54i+ID4gdG9qaVwgOwor5oCd5oOfID4gc2hpaVwgOwor5b6u5ripID4gYmlvblwgOwor6YGO6KqkID4ga2Fnb1wgOwor5Y+k5a2XID4ga29qaVwgOwor5ZCI5ZuzID4gYWl6dVwgOwor56C055OcID4gaGFrYVwgOwor6YG66JGXID4gaWNob1wgOwor5bm+6YeNID4gaWt1ZVwgOwor5rGa5pCNID4gb3NvblwgOwor5ZCP5ZOhID4gcmlpblwgOwor5Y6t5oKqID4gZW4nJ29cIDsKK+WPr+WhkSA+IGthc29cIDsKK+WOu+W5tCA+IGtvem9cIDsKK+mBuuiNiSA+IGlzb3VcIDsKK+iOq+i/piA+IGJha2FcIDsKK+mBuuiKsyA+IGlob3VcIDsKK+WQjeWMuyA+IG1laWlcIDsKK+WOmuaEjyA+IGtvdWlcIDsKK+WQj+WLmSA+IHJpbXVcIDsKK+atjOiIniA+IGthYnVcIDsKK+i/gumBoCA+IHVlblwgOwor5b6u5oSPID4gYmlpXCA7Civlj5nkvY0gPiBqb2lcIDsKK+i/gui3ryA+IHVyb1wgOwor5b6X5omLID4gZXRlXCA7CivmsJflrocgPiBraXVcIDsKK+W3rumBlSA+IHNhaVwgOwor5Yy75a62ID4gaWthXCA7Civlhavph40gPiB5YWVcIDsKK+WMu+WToSA+IGlpblwgOwor6YG65qOEID4gaWtpXCA7CivljLvli5kgPiBpbXVcIDsKK+WMu+S6iyA+IGlqaVwgOwor6YG65oSbID4gaWFpXCA7CivpgbrlvbEgPiBpZWlcIDsKK+mDqOS9jSA+IGJ1aVwgOwor5q2m5aiBID4gYnVpXCA7CivpgbrlraQgPiBpa29cIDsKK+W3rueVsCA+IHNhaVwgOwor55Ww6Z+zID4gaW9uXCA7CivpgbrlhZAgPiBpamlcIDsKK+mBleWSjCA+IGl3YVwgOwor6YG65LqLID4gaWppXCA7CivluIzmnIkgPiBrZXVcIDsKK+i/guaEmiA+IHVndVwgOwor5qyn5LqcID4gb3VhXCA7CivmrKHkvY0gPiBqaWlcIDsKK+asoeS6nCA+IGppYVwgOwor55yJ5a6HID4gYml1XCA7Civovp7mhI8gPiBqaWlcIDsKK+eVsOitsCA+IGlnaVwgOwor6L6e5b2ZID4gamlpXCA7CivlsYXplpMgPiBpbWFcIDsKK+eVsOe+qSA+IGlnaVwgOwor5biw5L6dID4ga2llXCA7CivpppnprZogPiBheXVcIDsKK+apn+S9jSA+IGtpaVwgOwor5Ly86Z2eID4gZXNlXCA7CivlsL7nvr0gPiBvaGFcIDsKK+eVsOeItiA+IGlmdVwgOwor5Lya6ZmwID4gZWluXCA7CivkvY3oqJggPiBpa2lcIDsKK+eVsOavjSA+IGlib1wgOwor5Lqc6bq7ID4gYW1hXCA7Civku6XpgaAgPiBpZW5cIDsKK+S8iuiqniA+IGlnb1wgOwor6Ieq5oWwID4gamlpXCA7CivlronoirggPiBha2lcIDsKK+S6nOmJmyA+IGFlblwgOwor55Sy5paQID4ga2FpXCA7CivnlY/mh7wgPiBpa3VcIDsKK+eVj+aAliA+IGlmdVwgOwor5bC+5qC5ID4gb25lXCA7CivnlLvmhI8gPiBnYWlcIDsKK+akheWtkCA+IGlzdVwgOwor55Ww5ZuzID4gaXRvXCA7CivnlbDljJYgPiBpa2FcIDsKK+iDg+eCjiA+IGllblwgOwor5L2N5qyhID4gaWppXCA7Civkvp3mgJkgPiBla29cIDsKK+S6nOenkSA+IGFrYVwgOwor5L2Z5oSPID4geW9pXCA7Civku67mnIkgPiBrZXVcIDsKK+S+jeWMuyA+IGppaVwgOwor5LqR54K6ID4gdW5pXCA7Civkvp3kvLAgPiBla29cIDsKK+S6nOaspyA+IGFvdVwgOwor5Lul5b6MID4gaWdvXCA7Civku6XlvoAgPiBpb3VcIDsKK+S7luaEjyA+IHRhaVwgOwor6LOA5oSPID4gZ2FpXCA7CivmnInnhKEgPiB1bXVcIDsKK+iytOaEjyA+IGtpaVwgOwor5Lya5Y6tID4gZWVuXCA7CivmoITkvY0gPiBlaWlcIDsKK+S6leaIuCA+IGlkb1wgOwor6Z2e6YGVID4gaGlpXCA7CivlpJzpm6ggPiB5YXVcIDsKK+WkmumbqCA+IHRhdVwgOwor5LqM5bCJID4gbmlpXCA7Civpm6jpnLIgPiB1cm9cIDsKK+S7peS4iyA+IGlrYVwgOwor5aKo6a2aID4gaWthXCA7CivkuI3mhI8gPiBmdWlcIDsKK+S4i+aEjyA+IGthaVwgOwor5LqM5L2NID4gbmlpXCA7CivlqIHmraYgPiBpYnVcIDsKK+acieWNpiA+IHVrZVwgOwor546L5L2NID4gb3VpXCA7CivnvoXlrocgPiByYW9cIDsKK+e+veWMliA+IHVrYVwgOwor57W16aasID4gZW1hXCA7Civlp5Tmo4QgPiBpa2lcIDsKK+Wlh+eVsCA+IGtpaVwgOwor5LiL5L2NID4ga2FpXCA7CivpmL/oq5sgPiBheXVcIDsKK+WogeWEgCA+IGlnaVwgOwor5aOK55a9ID4gZXNvXCA7Civng4/os4ogPiBpa2FcIDsKK+WnlOWToSA+IGlpblwgOwor6Zuo5rCXID4gdWtpXCA7Civlp5Tku5ggPiBpZnVcIDsKK+mbqOacnyA+IHVraVwgOwor6Kqe5oSPID4gZ29pXCA7Civoqp7lvZkgPiBnb2lcIDsKK+Wls+WMuyA+IGpvaVwgOwor5aaC5L2VID4gZG91XCA7Civpm6jlvowgPiB1Z29cIDsKK+aVheaEjyA+IGtvaVwgOwor54Sh54K6ID4gbXVpXCA7Civoo5zpgbogPiBob2lcIDsKK+mbqOWtoyA+IHVraVwgOwor57ev5bqmID4gaWRvXCA7CivpmL/mr5QgPiBhYmlcIDsKK+e2reaMgSA+IGlqaVwgOwor6Zuy5Li5ID4gdW5pXCA7CivnhKHmhI8gPiBtdWlcIDsKK+mYv+WtlyA+IGFqaVwgOwor6Zi/5aq9ID4gYW1hXCA7CivngbDmsYEgPiBha3VcIDsKK+e1teWbsyA+IGV6dVwgOwor6KaL5b6XID4gbWllXCA7CivpmL/lkL0gPiBhdW5cIDsKK+eEoeS9jSA+IG11aVwgOwor5ruL6ZuoID4gaml1XCA7Civlm7LnooEgPiBpZ29cIDsKK+e0huS9mSA+IHV5b1wgOwor6KGj5p62ID4gaWthXCA7CivmhYjpm6ggPiBqaXVcIDsKK+a1t+mrqiA+IG9nb1wgOwor5oSP6aasID4gaWJhXCA7Civlm7PkvJogPiB6dWVcIDsKK+aJgOeCuiA+IHNlaVwgOwor5oKq6ZyyID4gb3JvXCA7Civmtbfog4YgPiB1bmlcIDsKK+a1t+iAgSA+IGViaVwgOwor5oiR5oSPID4gZ2FpXCA7CivpurvooaMgPiBtYWlcIDsKK+aEj+e+qSA+IGlnaVwgOwor6J2m5aS3ID4gZXpvXCA7Civnoavpu4QgPiBpb3VcIDsKK+aFsOaSqyA+IGlidVwgOwor5b6u6ZuoID4gYml1XCA7CivmhI/msJcgPiBpa2lcIDsKK+mLreaEjyA+IGVpaVwgOwor56mi5aSaID4gZXRhXCA7CivljLvpmaIgPiBpaW5cIDsKK+epouWcnyA+IGVkb1wgOwor5Y+z57iBID4gdWVuXCA7CivmhbDlrokgPiBpYW5cIDsKK+WNgemHjSA+IHRvZVwgOwor5oSa5oSPID4gZ3VpXCA7CivmtbflpbMgPiBhbWFcIDsKK+aEj+WcsCA+IGlqaVwgOwor5oSP5ZuzID4gaXRvXCA7Civlj7PmtL4gPiB1aGFcIDsKK+aEj+WRsyA+IGltaVwgOwor6JCO6Z2hID4gaWJpXCA7CivmtbfkurogPiBhbWFcIDsKK+WMu+enkSA+IGlrYVwgOwor5bm06a2aID4gYXl1XCA7Civlj6XmhI8gPiBrdWlcIDsKK+WPpOaEjyA+IGtvaVwgOwor6YG66KmgID4gaWVpXCA7CivnpLrlqIEgPiBqaWlcIDsKK+axn+aIuCA+IGVkb1wgOwor5LyK5LqVID4gaWlcIDsKK+WXmuWRvCA+IGFhXCA7Civou5YgPiB0c3VtdWdpa3VydW1hXCA7Civns44gPiBzZW5jaGltZWl0b3J1XCA7CivnsqggPiBoZWt1dG9tZWV0b3J1XCA7CivniKsgPiB0c3VtZWthbm11cmlcIDsKK+W/hCA+IHJpdHN1c2hpbmJlblwgOwor5b+XID4ga29rb3JvemFzaGlcIDsKK+aUvyA+IG1hdHN1cmlnb3RvXCA7Civpto4gPiBraWt1aXRhZGFraVwgOwor57KNID4gbWlyaW1laXRvcnVcIDsKK+eygSA+IGtpcm9tZWl0b3J1XCA7CivnsbUgPiBkZWthbWVldG9ydVwgOwor56uwID4gc2VuY2hpcml0dG9cIDsKK+eroSA+IGhla3V0b3JpdHRvXCA7Civnq5MgPiBtaXJpcml0dG9ydVwgOwor56uPID4ga2lyb3JpdHRvcnVcIDsKK+eTsCA+IGRlc2hpZ3VyYW11XCA7Civlt7EgPiB0c3VjaGlub3RvXCA7CivlsaEgPiBzaGliYXNoaWJhXCA7CivorIAgPiBoYWthcmlnb3RvXCA7Civnhp8gPiB0c3VrdWR6dWt1XCA7CivlmLQgPiBrdWNoaWJhc2hpXCA7CivjgIUgPiBrdXJpa2Flc2hpXCA7CivphZsgPiBzYWtlbm9tb3RvXCA7CivoqZQgPiBtaWtvdG9ub3JpXCA7CivonZ8gPiBoYXJpbmV6dW1pXCA7CivokJkgPiBrdXRhYmlyZXJ1XCA7Civnq5UgPiBkZXNoaXJpdHRvXCA7CivnlIUgPiBzZW5jaGlndXJhXCA7Civnk7ggPiBoZWt1dG9ndXJhXCA7Civnk7EgPiBtaXJpZ3VyYW11XCA7Civnk6kgPiBraXJvZ3VyYW11XCA7Civnk6cgPiBkZWthZ3VyYW11XCA7Civmk4UgPiBob3NoaWltYW1hXCA7Civli4UgPiBtaWtvdG9ub3JpXCA7CivlgKkgPiB0c3VyYXRzdXJhXCA7CivlubsgPiBtYWJvcm9zaGlcIDsKK+WxjSA+IHNoaWthYmFuZVwgOwor5a2kID4gbWluYXNoaWdvXCA7CivnjKogPiBpbm9zaGlzaGlcIDsKK+WUhyA+IGt1Y2hpYmlydVwgOwor5qqjID4gaG9iYXNoaXJhXCA7CivmqZggPiB0YWNoaWJhbmFcIDsKK+WFtSA+IHRzdXdhbW9ub1wgOwor6YqAID4gc2hpcm9nYW5lXCA7CivpgqogPiB5b2tvc2hpbWFcIDsKK+mvkCA+IHN1YmFzaGlyaVwgOwor6a6XID4ga29ub3NoaXJvXCA7CivpmJ0gPiBrb3phdG9oZW5cIDsKK+i4nSA+IGt1cnVidXNoaVwgOwor6KODID4ga2FtaXNoaW1vXCA7CivooaQgPiBrb3JvbW9oZW5cIDsKK+erjSA+IGRla2FyaXR0b1wgOwor54qtID4ga2Vtb25vaGVuXCA7CivmpLQgPiB0b2RvbWF0c3VcIDsKK+W1mSA+IHlhbWFzaGluYVwgOwor5bC4ID4gc2hpa2FiYW5lXCA7Civlh6kgPiBrb2dhcmFzaGlcIDsKK+S6pSA+IGlub3NoaXNoaVwgOwor5byxID4gbmF5b25heW9cIDsKK+i5siA+IHRzdWt1YmFpXCA7Civlp5EgPiBzaHV1dG9tZVwgOwor5aGKID4ga2F0YW1hcmlcIDsKK+WgpCA+IHRzdXRzdW1pXCA7CivpvJMgPiB0c3VkenVtaVwgOwor5rqQID4gbWluYW1vdG9cIDsKK+m2jyA+IG5pd2F0b3JpXCA7Civlj6IgPiBrdXNhbXVyYVwgOwor5Y2wID4gc2hpcnVzaGlcIDsKK+mtgiA+IHRhbWFzaGlpXCA7CivohbggPiBoYXJhd2F0YVwgOwor5p2vID4gc2FrYXp1a2lcIDsKK+mbtyA+IGthbWluYXJpXCA7Civpm4EgPiBrYXJpZ2FuZVwgOwor5pqBID4gYWthdHN1a2lcIDsKK+e0qyA+IG11cmFzYWtpXCA7CivmjowgPiB0ZW5vaGlyYVwgOwor5oqRID4gc29tb3NvbW9cIDsKK+aHkCA+IGZ1dG9rb3JvXCA7Civpu5sgPiBtYXl1enVtaVwgOwor6bGpID4gaGF0YWhhdGFcIDsKK+mwsCA+IGhhdGFoYXRhXCA7Civpr5EgPiBrYXp1bm9rb1wgOwor6a2BID4gc2FraWdha2VcIDsKK+msoyA+IHRhdGVnYW1pXCA7CivppJ4gPiBoYW5hbXVrZVwgOwor6aCRID4ga2F0YWt1bmFcIDsKK+mavCA+IGhheWFidXNhXCA7CivpmbUgPiBtaXNhc2FnaVwgOwor6ZaKID4gdHN1a2FlcnVcIDsKK+mLuCA+IG5va29naXJpXCA7Civour4gPiBzaGl0c3VrZVwgOwor6Ku6ID4ga290b3dhemFcIDsKK+ikjCA+IGZ1bmRvc2hpXCA7Civom6QgPiBoYW1hZ3VyaVwgOwor6JKcID4gbmluJyduaWt1XCA7Civogb4gPiBtaW1pc2hpaVwgOwor57a0ID4gdHN1ZHp1cmlcIDsKK+evgSA+IHRha2FtdXJhXCA7CivnrY0gPiB0YWtlbm9rb1wgOwor56KRID4gaXNoaWJ1bWlcIDsKK+eZuCA+IG1penVub3RvXCA7CivmvKMgPiBzYXphbmFtaVwgOwor5qWgID4ga3VzdW5va2lcIDsKK+W3qyA+IGthbicnbmFnaVwgOwor5a+/ID4ga290b2J1a2lcIDsKK+WclSA+IHRvc2hva2FuXCA7CivlvaIgPiBrYXRhY2hpXCA7CivovY0gPiB3YWRhY2hpXCA7Civlt7cgPiBjaGltYXRhXCA7Civot6MgPiBoYWRhc2hpXCA7CivotqMgPiBvbW9tdWtpXCA7CivlsYAgPiB0c3Vib25lXCA7Civlr6cgPiBtdXNoaXJvXCA7CivnjbogPiBrYXdhdXNvXCA7Civni5AgPiBraXRzdW5lXCA7Civlq4IgPiBhbml5b21lXCA7CivoqbEgPiBoYW5hc2hpXCA7Civnh5UgPiB0c3ViYW1lXCA7Civmu7QgPiBzaGl6dWt1XCA7CivmuZYgPiBtaXp1dW1pXCA7CivliaMgPiB0c3VydWdpXCA7Civlh50gPiBzaGlrb3JpXCA7CivlhqAgPiBrYW5tdXJpXCA7CivmpL8gPiB0c3ViYWtpXCA7Civmop8gPiBmdWt1cm91XCA7CivpoIIgPiBpdGFkYWtpXCA7Civmn7EgPiBoYXNoaXJhXCA7Civkv44gPiBtYW5haXRhXCA7CivmnpcgPiBoYXlhc2hpXCA7Civkvo0gPiBzYW11cmFpXCA7CivnvoogPiBoaXRzdWppXCA7CivmnbEgPiBoaWdhc2hpXCA7CivmmJQgPiBtdWthc2hpXCA7CivntYwgPiB0YXRlaXRvXCA7CivnrbUgPiBtdXNoaXJvXCA7CivpjKYgPiBuaXNoaWtpXCA7Civnp4EgPiB3YXRhc2hpXCA7Civnpa0gPiBtYXRzdXJpXCA7CivnpL4gPiB5YXNoaXJvXCA7CivnorogPiB0YXNoaWthXCA7CivpgrggPiB5YXNoaWtpXCA7CivpvbIgPiBtdXNoaWJhXCA7Civpu6UgPiBpcmV6dW1pXCA7CivptqsgPiB0c3VndW1pXCA7CivptaQgPiBpa2FydWdhXCA7CivptYYgPiBjaGlkb3JpXCA7CivpsJggPiBtdXJvYWppXCA7Civpr7MgPiBzdWtlc291XCA7CivprJggPiBrYXRzdXJhXCA7Civpm6sgPiBzaGl6dWt1XCA7CivpjrkgPiBrYXN1Z2FpXCA7Civpi6kgPiBraXNzYWtpXCA7Civpi5IgPiBraXNzYWtpXCA7Civpiq8gPiBrYXN1Z2FpXCA7CivouYQgPiBoaWR6dW1lXCA7CivorKwgPiBheWFtYXJpXCA7CivoqrwgPiB5b3NoaW1pXCA7Civoqq4gPiB5YXNhc2hpXCA7CivopYUgPiBjaGloYXlhXCA7CivooI4gPiB1d2FiYW1pXCA7Civona4gPiBtYW11c2hpXCA7CivonIYgPiBzaGlqaW1pXCA7CivombEgPiBzaGlyYW1pXCA7CivomLAgPiBrYXRzdXJhXCA7Civolb4gPiB0c3Vib21pXCA7Civok4YgPiBtdXNoaXJvXCA7CivoiYAgPiBoYXNoaWtlXCA7CivogaIgPiBzaGlrYXRvXCA7Civnv7wgPiB0c3ViYXNhXCA7CivnsaEgPiBzaGluc2hpXCA7CivnpKsgPiB0c3VidXRlXCA7CivnpI4gPiBpc2hpenVlXCA7CivnnasgPiBtYXRzdWdlXCA7CivnlKYgPiB5b21pZ2FlXCA7CivniZwgPiB1c2hpaGVuXCA7Civmr64gPiBtdXNoaXJ1XCA7Civmr58gPiBtdXNoaXJ1XCA7Civmpb8gPiBrYXRzdXJhXCA7Civmo5cgPiBuYXRzdW1lXCA7CivmorsgPiBzaGlraW1pXCA7Civmn4ogPiBoaWlyYWdpXCA7Civmm5kgPiBha2Vib25vXCA7CivmmZIgPiBzYXJhc2hpXCA7Civml4EgPiB0c3VrdXJpXCA7CivmjJggPiBtdXNoaXJ1XCA7Civmi7MgPiBrb2J1c2hpXCA7CivmgLogPiBrb3JhZXJ1XCA7CivlvqQgPiB0YWtlc2hpXCA7Civlt70gPiB0YXRzdW1pXCA7Civlo6wgPiBtaXp1bm9lXCA7Civlmo8gPiBrdXNoYW1pXCA7CivlmbogPiBoYW5hc2hpXCA7Civkv6QgPiBvbW9rYWdlXCA7CivkuLwgPiBkb25idXJpXCA7CivjgIMgPiBvbmFqaWt1XCA7CivnnrwgPiBtYWJ1dGFcIDsKK+i+tyA+IHN1YmVydVwgOwor556zID4gaGl0b21pXCA7CivovKkgPiB5YWthcmFcIDsKK+ebsiA+IG1lc2hpaVwgOwor6LuKID4ga3VydW1hXCA7Civluo8gPiB0c3VpZGVcIDsKK+eahiA+IG1pbicnbmFcIDsKK+W5lSA+IHRvYmFyaVwgOwor5bizID4gdG9iYXJpXCA7CivluJ0gPiBtaWthZG9cIDsKK+W3piA+IGhpZGFyaVwgOwor55a+ID4gc2hpdHN1XCA7CivnlbMgPiB0YXRhbWlcIDsKK+eVoCA+IGhhdGFrZVwgOwor55WRID4gaGF0YWtlXCA7Civnk6YgPiBrYXdhcmFcIDsKK+WyrCA+IG1pc2FraVwgOwor5bGKID4gdG9kb2tlXCA7CivlsIogPiBtaWtvdG9cIDsKK+WunSA+IHRha2FyYVwgOwor542jID4ga2Vtb25vXCA7Civni7wgPiBvb2thbWlcIDsKK+eLrCA+IGRvaXRzdVwgOwor5auJID4gc2hpdHN1XCA7CivoqqAgPiBtYWtvdG9cIDsKK+iovCA+IGFrYXNoaVwgOwor54i2ID4gY2hpY2hpXCA7CivoqJsgPiBuYW1hcmlcIDsKK+WomCA+IG11c3VtZVwgOwor5ae/ID4gc3VnYXRhXCA7Civlpr4gPiB3YXJhd2FcIDsKK+WmuSA+IGltb3V0b1wgOwor6KaBID4ga2FuYW1lXCA7CivopbcgPiB0YXN1a2lcIDsKK+eFmSA+IGtlbXVyaVwgOwor6KWWID4gZnVzdW1hXCA7CivlpLEgPiBzaGl0c3VcIDsKK+ijuCA+IGhhZGFrYVwgOwor6KK0ID4gaGFrYW1hXCA7CivooosgPiBmdWt1cm9cIDsKK+ihoyA+IGtvcm9tb1wgOwor5Z+3ID4gc2hpdHN1XCA7Civmv5UgPiBzaGl0c3VcIDsKK+ifiyA+IHNoaXRzdVwgOwor5Z+DID4gaG9rb3JpXCA7Civon4AgPiBzaHV0c3VcIDsKK+m8rCA+IGl0YWNoaVwgOwor6bygID4gbmV6dW1pXCA7CivlnJ8gPiB0c3VjaGlcIDsKK+a8hiA+IHVydXNoaVwgOwor6Ju5ID4gc2FuYWdpXCA7Civom5kgPiBrYXdhenVcIDsKK+a5vyA+IHNoaXRzdVwgOwor5ZmoID4gdXRzdXdhXCA7CivmuK8gPiBtaW5hdG9cIDsKK+iWrCA+IGt1c3VyaVwgOwor6JaqID4gdGFraWdpXCA7CivmtpkgPiBuYW1pZGFcIDsKK+iWhyA+IHplbm1haVwgOwor6JaEID4gc3VzdWtpXCA7CivptIkgPiBrYXJhc3VcIDsKK+WPsSA+IHNoaXRzdVwgOwor5Y6oID4ga3VyaXlhXCA7CivljbggPiBvcm9zaGlcIDsKK+WNtSA+IHRhbWFnb1wgOwor5q2qID4gaWJpdHN1XCA7CivprZogPiBzYWthbmFcIDsKK+WNlyA+IG1pbmFtaVwgOwor5YygID4gdGFrdW1pXCA7Civmq7sgPiBzYWt1cmFcIDsKK+iLuiA+IGljaGlnb1wgOwor5YuiID4gaGF6dW1pXCA7CivmqpwgPiBoaW5va2lcIDsKK+iIhSA+IHNodXV0b1wgOwor5qaKID4gc2FrYWtpXCA7CivlhYkgPiBoaWthcmlcIDsKK+mkqCA+IHlha2F0YVwgOwor6IK0ID4gc2FrYW5hXCA7CivmoZwgPiBzYWt1cmFcIDsKK+WAmSA+IHNvdXJvdVwgOwor6Z+/ID4gaGliaWtpXCA7Civmn7MgPiB5YW5hZ2lcIDsKK+S/pSA+IGt1cnVtYVwgOwor5L+hID4gbWFrb3RvXCA7Civkv4QgPiBuaXdha2FcIDsKK+S/giA+IGtha2FyaVwgOwor5L6/ID4geW9zdWdhXCA7CivmnpUgPiBtYWt1cmFcIDsKK+acuiA+IHRzdWt1ZVwgOwor5LuPID4gaG90b2tlXCA7Civmm4cgPiBrdW1vcmlcIDsKK+mbgCA+IHN1enVtZVwgOwor5LqsID4gbWl5YWtvXCA7CivpmqMgPiB0b25hcmlcIDsKK+S5syA+IGNoaWNoaVwgOwor5LmZID4ga2lub3RvXCA7CivkuY0gPiBuYWdhcmFcIDsKK+S4hyA+IHlvcm96dVwgOwor5LiDID4gc2hpY2hpXCA7CivnuIEgPiB5b3N1Z2FcIDsKK+S4gSA+IGhpbm90b1wgOwor57eRID4gbWlkb3JpXCA7CivntaMgPiBrYXN1cmlcIDsKK+e1hiA+IGtpenVuYVwgOwor57C+ID4gc3VkYXJlXCA7Civpj6EgPiBrYWdhbWlcIDsKK+mOliA+IGt1c2FyaVwgOwor562SID4gdHN1dHN1XCA7CivmjYwgPiBzYWJha2lcIDsKK+mLvCA+IGhhZ2FuZVwgOwor56ulID4gd2FyYWJlXCA7Civpi48gPiBoYXNhbWlcIDsKK+mKgyA+IHRzdXRzdVwgOwor6YmbID4gbmFtYXJpXCA7CivmiYkgPiB0b2JpcmFcIDsKK+aJgCA+IHRva29yb1wgOwor6YO9ID4gbWl5YWtvXCA7CivmgokgPiBzaGl0c3VcIDsKK+m9piA+IGhhZ3VraVwgOwor6byIID4gc3VwcG9uXCA7Civpu5wgPiBjaHV0c3VcIDsKK+m6qSA+IGZ1c3VtYVwgOwor6bqTID4gZnVtb3RvXCA7CivptaUgPiBrYWtlc3VcIDsKK+m0rCA+IHVndWlzdVwgOwor6bSOID4ga2Ftb21lXCA7CivpsbggPiBzdXp1a2lcIDsKK+mxsCA+IHNoaWlyYVwgOwor6bGqID4gc2hpaXJhXCA7CivpsLkgPiBrYXRzdW9cIDsKK+mwryA+IGl3YXNoaVwgOwor6bCuID4gaXdhc2hpXCA7CivpsJogPiBoYXJha2FcIDsKK+mwiiA+IG5pc2hpblwgOwor6bCGID4gc2F3YXJhXCA7Civpr7EgPiBzaGFjaGlcIDsKK+mvsCA+IG5hbWF6dVwgOwor6a+oID4ga3VqaXJhXCA7Civpr6MgPiBzdXJ1bWVcIDsKK+muqiA+IG1hZ3Vyb1wgOwor6a6WID4ga2FqaWthXCA7CivproMgPiBoaXJhbWVcIDsKK+mtuCA+IG5hbWF6dVwgOwor6aitID4gc2hpdHN1XCA7CivpoqogPiBvcm9zaGlcIDsKK+mekCA+IGtvaGF6ZVwgOwor6ZyeID4ga2FzdW1pXCA7CivpnJkgPiBtaXpvcmVcIDsKK+mbmyA+IGhpeW9rb1wgOwor6ZqyID4gc2hpdHN1XCA7CivpmrAgPiBzaGl0c3VcIDsKK+mRoiA+IHlhc3VyaVwgOwor6ZGVID4gc2hpdHN1XCA7CivpjrogPiBoYWJha2lcIDsKK+mMuiA+IGthemFyaVwgOwor6YqNID4gY2hpdHN1XCA7CivpioogPiBzaHV0c3VcIDsKK+mJpSA+IHNodXRzdVwgOwor6YmLID4ga2FuJyduYVwgOwor6YioID4gaGFiYWtpXCA7CivphqogPiBtb3JvbWlcIDsKK+mDhSA+IHNoaXRzdVwgOwor6YGWID4gYXBwYXJlXCA7Civov5ogPiB0b3RlbW9cIDsKK+i7iCA+IHlhZ2F0ZVwgOwor6LuFID4geWFnYXRlXCA7CivoursgPiB1dHN1a2VcIDsKK+i6riA+IHNlZ2FyZVwgOwor6Li1ID4ga2FrYXRvXCA7Civos4kgPiBzaHV0c3VcIDsKK+iyrSA+IHNoaXRzdVwgOwor6LGRID4gY2hpdHN1XCA7CivoqIEgPiBnb25iZW5cIDsKK+iioCA+IGNoaXRzdVwgOwor6KKfID4gY2hpdHN1XCA7Civoob4gPiBmdXN1bWFcIDsKK+igjSA+IHNhc29yaVwgOwor6J+EID4gY2hpdHN1XCA7CivonaggPiBzaGl0c3VcIDsKK+ibjSA+IGhvdGFydVwgOwor6Ja6ID4gbmF6dW5hXCA7CivolaggPiB3YXJhYmlcIDsKK+iUtiA+IHNvbm9rb1wgOwor6JOsID4geW9tb2dpXCA7CivokrogPiBzaGl0c3VcIDsKK+iShSA+IHN1a3Vtb1wgOwor6JKBID4gc2h1dHN1XCA7CivojqggPiB0YWJha29cIDsKK+iMuCA+IGtpbm9rb1wgOwor6IajID4gY2hpdHN1XCA7CivohqAgPiBuaWthd2FcIDsKK+iFnyA+IGNoaXRzdVwgOwor57qDID4ga2FzdXJpXCA7CivnuIUgPiBvZG9zaGlcIDsKK+e3lSA+IGthc3VyaVwgOwor57WAID4gY2h1dHN1XCA7Civns5ggPiBzdWt1bW9cIDsKK+ezkiA+IGhvc2hpaVwgOwor57KtID4gc3VrdW1vXCA7CivnrIIgPiB1dHN1Ym9cIDsKK+eriCA+IGthbWFkb1wgOwor56qSID4gY2hpdHN1XCA7CivnqosgPiBjaHV0c3VcIDsKK+enqSA+IGNoaXRzdVwgOwor56ekID4gaGFrYXJpXCA7CivnpoogPiBtaXNvZ2lcIDsKK+elkSA+IGNoaXRzdVwgOwor56SpID4gc2hpdHN1XCA7CivnobIgPiBoYXphbWFcIDsKK+egpiA+IHRvcmlkZVwgOwor55SpID4gc2h1dHN1XCA7Civnk7wgPiBzYXJha2VcIDsKK+eSsSA+IHNoaXRzdVwgOwor55GfID4gc2hpdHN1XCA7Civni7ggPiB0YW51a2lcIDsKK+eJgyA+IG91Y2hvdVwgOwor54OPID4ga2FyYXN1XCA7CivmuJogPiBuYWdpc2FcIDsKK+a2jiA+IHlvZGFyZVwgOwor5rOPID4gY2h1dHN1XCA7CivmsaIgPiB0c3VjaGlcIDsKK+axgCA+IG1pZ2l3YVwgOwor5rC1ID4gc2FuenVpXCA7CivmqZkgPiBkYWlkYWlcIDsKK+aotSA+IGtpa29yaVwgOwor5qiuID4gaG9rdXNvXCA7CivmpZQgPiBrdXNhYmlcIDsKK+aliiA+IHlhbmFnaVwgOwor5qS5ID4gc2F3YXJhXCA7CivmpKogPiBrdW51Z2lcIDsKK+akoSA+IGt1bnVnaVwgOwor5qSbID4gbW9taWppXCA7CivmpJogPiBrdW51Z2lcIDsKK+aiuiA+IGZ1bW90b1wgOwor5qG8ID4gc2hpdHN1XCA7CivmoY4gPiBzaGl0c3VcIDsKK+agniA+IHNoaW9yaVwgOwor5p+SID4gc2hpdHN1XCA7CivmnY4gPiBzdW1vbW9cIDsKK+aapiA+IGtveW9taVwgOwor5pmKID4gc2hpdHN1XCA7CivmmLQgPiBzdWJhcnVcIDsKK+aRlCA+IHNodXRzdVwgOwor5oyDID4gY2hpdHN1XCA7CivmirYgPiBjaGl0c3VcIDsKK+aJliA+IGhhbWVydVwgOwor5oaWID4gbmFtYWppXCA7CivmhLEgPiBzaGl0c3VcIDsKK+W9oCA+IGt1d2FrdVwgOwor5b2PID4ga3V3YWt1XCA7CivlvY0gPiBrdXdha3VcIDsKK+W9iSA+IGt1d2FrdVwgOwor5buTID4ga3VydXdhXCA7CivluqIgPiBjaGl0c3VcIDsKK+W5nyA+IG5vYm9yaVwgOwor5bmJID4gdGF6dW5hXCA7CivluJkgPiBjaGl0c3VcIDsKK+W1kCA+IGFyYXNoaVwgOwor5bSSID4gc2h1dHN1XCA7CivlsoAgPiBzaHV0c3VcIDsKK+WvoSA+IHlhbW9tZVwgOwor5aufID4gaml5dWt1XCA7CivlprcgPiBjaGl0c3VcIDsKK+WijiA+IGt1d2FrdVwgOwor5aCyID4gc2hpdHN1XCA7CivloJsgPiBoaXlva3VcIDsKK+WctyA+IGFrdXRzdVwgOwor5ZKwID4gc2h1dHN1XCA7CivlkI4gPiBraXNha2lcIDsKK+WPuiA+IGthbWFzdVwgOwor5Y6gID4ga2F3YXlhXCA7CivljpQgPiBzaGl0c3VcIDsKK+WOgCA+IHNoaXRzdVwgOwor5Y2bID4gc2h1dHN1XCA7CivlipUgPiBzaGl0c3VcIDsKK+WFnCA+IGthYnV0b1wgOwor5YSoID4gc2hpdHN1XCA7CivlgaogPiBoaXlva3VcIDsKK+WArSA+IHlhbWF0b1wgOwor5L6EID4gc2hpdHN1XCA7CivkvKEgPiBrdXJ1bWFcIDsKK+S7nSA+IGRvdWpvdVwgOwor5LuHID4ga2F0YWtpXCA7CivjgJIgPiB5dXViaW5cIDsKK+i/sCA+IGp1dHN1XCA7Civlv4UgPiBoaXRzdVwgOwor6L67ID4gdHN1amlcIDsKK+W+uSA+IHRldHN1XCA7CivnnqUgPiBiZXRzdVwgOwor5b6MID4gbm9jaGlcIDsKK+W+iyA+IHJpdHN1XCA7CivnnYAgPiBjaGFrdVwgOwor5byPID4gc2hpa2lcIDsKK+eauiA+IHNoaXdhXCA7CivouoUgPiBjaG9rdVwgOwor55m+ID4gaHlha3VcIDsKK+eZvSA+IHNoaXJvXCA7CivnmbwgPiBob3RzdVwgOwor55m6ID4gaGF0c3VcIDsKK+W5uCA+IHNhY2hpXCA7CivlubQgPiB0b3NoaVwgOwor55mqID4gc2hha3VcIDsKK+W3tCA+IHRvbW9lXCA7Civnl4UgPiB5YW1haVwgOwor55WlID4gcnlha3VcIDsKK+eVoiA+IGhpdHN1XCA7CivnlZwgPiBjaGlrdVwgOwor55S6ID4gbWFjaGlcIDsKK+eUtyA+IG90b2tvXCA7CivnlLEgPiB5b3NoaVwgOwor5bO2ID4gc2hpbWFcIDsKK+izqiA+IHRhY2hpXCA7CivlsrggPiBraXNoaVwgOwor5bGIID4ga3V0c3VcIDsKK+WwuyA+IHNoaXJpXCA7CivlsLogPiBzaGFrdVwgOwor5a+mID4gaml0c3VcIDsKK+WvnyA+IHNhdHN1XCA7Civlr4YgPiBtaXRzdVwgOwor5a60ID4gdXRhZ2VcIDsKK+WuoiA+IGt5YWt1XCA7CivnjocgPiByaXRzdVwgOwor6K2YID4gc2hpa2lcIDsKK+eMviA+IGthdHN1XCA7CivoqqwgPiBzZXRzdVwgOwor6KmwID4ga2l0c3VcIDsKK+eIuiA+IGppamlpXCA7CivniLUgPiBzaGFrdVwgOwor6KitID4gc2V0c3VcIDsKK+eIqiA+IHRzdW1lXCA7CivoqKMgPiBrZXRzdVwgOwor6Ke4ID4gc2hva3VcIDsKK+eHrSA+IHNob2t1XCA7Civop6YgPiBzaG9rdVwgOwor6KeSID4gdHN1bm9cIDsKK+WmuyA+IHRzdW1hXCA7CivnhrEgPiBuZXRzdVwgOwor6KW/ID4gbmlzaGlcIDsKK+WltCA+IHlhdHN1XCA7CivlpaogPiBkYXRzdVwgOwor5aSPID4gbmF0c3VcIDsKK+eDiCA+IHJldHN1XCA7Civoo4IgPiByZXRzdVwgOwor6KK3ID4gYXdhc2VcIDsKK+eCjiA+IGhvbm9vXCA7CivlooMgPiBzYWthaVwgOwor54G8ID4gc2hha3VcIDsKK+WhtSA+IGNoaXJpXCA7CivloZogPiB0c3VrYVwgOwor6KGXID4gbWFjaGlcIDsKK+WfuiA+IG1vdG9pXCA7Civmv7YgPiBrYXRzdVwgOwor5Z+SID4gcmFjaGlcIDsKK+WfjiA+IHNoaXJvXCA7CivpvaIgPiB5b3dhaVwgOwor6J2VID4gc2hva3VcIDsKK+a9lCA+IGtldHN1XCA7CivpvL4gPiBpYmlraVwgOwor6JyCID4gaGFjaGlcIDsKK+icgCA+IHNob2t1XCA7Civpu5AgPiBtb2NoaVwgOwor5ruRID4ga2F0c3VcIDsKK+a7hSA+IG1ldHN1XCA7CivompUgPiBrYWlrb1wgOwor5rqMID4gaGF0c3VcIDsKK+m5vyA+IHNoaWthXCA7CivomasgPiBtdXNoaVwgOwor6JmeID4gb3NvcmVcIDsKK+WZgiA+IHV3YXNhXCA7CivmuIcgPiBrYXRzdVwgOwor5re1ID4gZnVjaGlcIDsKK+m3siA+IHdhc2hpXCA7Civmt5EgPiBzaHVrdVwgOwor5ZeHID4gc2hva3VcIDsKK+m2tCA+IHRzdXJ1XCA7CivolpQgPiBzaG9rdVwgOwor5ZaHID4gcmF0c3VcIDsKK+WVnCA+IHNldHN1XCA7CivllL4gPiB0c3ViYVwgOwor5rS7ID4ga2F0c3VcIDsKK+iUkSA+IGJldHN1XCA7Civlk7IgPiB0ZXRzdVwgOwor5rOJID4gaXp1bWlcIDsKK+iThCA+IGNoaWt1XCA7CivmsrkgPiBhYnVyYVwgOwor5rKhID4gYm90c3VcIDsKK+WShCA+IHRvdHN1XCA7CivmsbogPiBrZXRzdVwgOwor6JGmID4geW9zaGlcIDsKK+iRlyA+IGNoYWt1XCA7CivmsYEgPiB0c3V5dVwgOwor6bCMID4gZG9qb3VcIDsKK+WQiSA+IGtpY2hpXCA7Civlj60gPiBoYXRzdVwgOwor5Y+jID4ga3VjaGlcIDsKK+WPlCA+IHNodWt1XCA7CivmrrogPiBzYXRzdVwgOwor5q6WID4gc2hva3VcIDsKK+WNtCA+IGt5YWt1XCA7CivljZggPiBoaXRvZVwgOwor5Y2SID4gc290c3VcIDsKK+WMuSA+IGhpdHN1XCA7CivmrKEgPiB0c3VnaVwgOwor5Yu/ID4gbW9jaGlcIDsKK+mrriA+IGhhdHN1XCA7Civmq5sgPiBrdXNoaVwgOwor5YqjID4gcmV0c3VcIDsKK+iKnSA+IHNoaWJhXCA7CivlipsgPiByeW9rdVwgOwor6Im2ID4gdHN1eWFcIDsKK+apiyA+IGhhc2hpXCA7CivliLkgPiBzZXRzdVwgOwor5Yi3ID4gc2F0c3VcIDsKK+aoqyA+IGthc2hpXCA7CivliKUgPiBiZXRzdVwgOwor5YidID4gaGF0c3VcIDsKK+WIlyA+IHJldHN1XCA7CivmqJIgPiBtaXRzdVwgOwor6IiMID4gc2hpdGFcIDsKK+WIhyA+IHNldHN1XCA7CivliIMgPiB5YWliYVwgOwor5YaMID4gc2F0c3VcIDsKK+WGiiA+IHNhdHN1XCA7CivohbAgPiBrb3NoaVwgOwor5YWrID4geWF0c3VcIDsKK+WFjiA+IHVzYWdpXCA7CivlhYAgPiBrb3RzdVwgOwor6ISxID4gZGF0c3VcIDsKK+akjSA+IHNob2t1XCA7CivohIggPiBteWFrdVwgOwor6aSFID4gbW9jaGlcIDsKK+mjviA+IHNob2t1XCA7Civpo68gPiBtZXNoaVwgOwor6aOfID4gc2hva3VcIDsKK+aiqCA+IG5hc2hpXCA7CivmoqIgPiBrb3p1ZVwgOwor5qKTID4gYXp1c2FcIDsKK+WCkSA+IGtldHN1XCA7CivogoUgPiBzaHVrdVwgOwor6IG3ID4gc2hva3VcIDsKK+mhjSA+IGhpdGFpXCA7CivlgJ8gPiBzaGFrdVwgOwor6aCBID4gcGVpamlcIDsKK+afhCA+IHRzdWthXCA7Civnv4EgPiBva2luYVwgOwor6Z6tID4gbXVjaGlcIDsKK+mehCA+IGthYmFuXCA7Civmnb4gPiBtYXRzdVwgOwor6Z20ID4ga3V0c3VcIDsKK+e9sCA+IGJhdHN1XCA7CivnvaogPiB0c3VtaVwgOwor5p2fID4gdHN1a2FcIDsKK+S9myA+IGJ1dHN1XCA7CivmnZMgPiBzaGFrdVwgOwor5L2NID4ga3VyYWlcIDsKK+e8uiA+IGtldHN1XCA7CivkvLggPiBub3NoaVwgOwor6ZyyID4gdHN1eXVcIDsKK+mcsCA+IGFyYXJlXCA7CivmnKsgPiBtYXRzdVwgOwor6ZycID4gc2hpbW9cIDsKK+aciCA+IHRzdWtpXCA7Civmm7IgPiBreW9rdVwgOwor6ZucID4gemF0c3VcIDsKK+S7mSA+IHNlbnRvXCA7Civpm5EgPiB6YXRzdVwgOwor6ZuHID4geWF0b2lcIDsKK+S5viA+IGhvc2hpXCA7CivkuZ4gPiBrb3RzdVwgOwor5Li7ID4gbnVzaGlcIDsKK+e4riA+IHNodWt1XCA7CivmmJ8gPiBob3NoaVwgOwor57ieID4gc2hpbWFcIDsKK+S4iyA+IHNoaXRhXCA7CivntrEgPiB0c3VuYVwgOwor57W2ID4gemV0c3VcIDsKK+e1kCA+IGtldHN1XCA7CivntYIgPiBvd2FyaVwgOwor5pONID4gbWlzYW9cIDsKK+aSriA+IHNhdHN1XCA7CivpkLUgPiB0ZXRzdVwgOwor6ZChID4gdGV0c3VcIDsKK+eviSA+IGNoaWt1XCA7Civnr4AgPiBidXNoaVwgOwor5664ID4gaGFzaGlcIDsKK+aOpSA+IHNldHN1XCA7CivmjqAgPiByeWFrdVwgOwor5o6YID4ga3V0c3VcIDsKK+eukiA+IGhvdWtpXCA7CivmjakgPiByZXRzdVwgOwor562UID4ga290YWVcIDsKK+aLtiA+IHNhdHN1XCA7Civmi60gPiBzaGlraVwgOwor5ousID4ga2F0c3VcIDsKK+aLmSA+IHNldHN1XCA7Civmi5QgPiBiYXRzdVwgOwor56uLID4gcml0c3VcIDsKK+eriiA+IHNldHN1XCA7Civmi4IgPiBmdXRzdVwgOwor5oqcID4gYmF0c3VcIDsKK+aKiSA+IGtldHN1XCA7CivnqoEgPiB0b3RzdVwgOwor56m0ID4ga2V0c3VcIDsKK+mJoiA+IGhhY2hpXCA7CivmiZUgPiBmdXRzdVwgOwor6YmEID4gdGV0c3VcIDsKK+aIqiA+IHNldHN1XCA7CivmiKYgPiBpa3VzYVwgOwor6YeLID4gc2hha3VcIDsKK+mHiCA+IHNoYWt1XCA7CivnpZ0gPiBzaHVrdVwgOwor6YWMID4gc2hha3VcIDsKK+aFhCA+IHJpdHN1XCA7Civmg5ogPiBrb3RzdVwgOwor6YGUID4gdGFjaGlcIDsKK+mBkyA+IG1pY2hpXCA7CivpgLkgPiB0YXRzdVwgOwor6YCQID4gY2hpa3VcIDsKK+mAhiA+IGd5YWt1XCA7Civlv70gPiBrb3RzdVwgOwor6b6eID4gYmV0c3VcIDsKK+m9pyA+IGtldHN1XCA7CivpvZUgPiBrb3RzdVwgOwor6b2DID4ga2F0c3VcIDsKK+m8vyA+IGdvdHN1XCA7CivpvI4gPiBrYW5hZVwgOwor6bu7ID4gZnV0c3VcIDsKK+m7oCA+IGthdHN1XCA7CivpurkgPiBrb3VqaVwgOwor6berID4gc2h1a3VcIDsKK+m3qSA+IGhldHN1XCA7CivptrsgPiBrb3RzdVwgOwor6bahID4ga2F0c3VcIDsKK+m2jSA+IGlzdWthXCA7CivptokgPiB1enVyYVwgOwor6bWTID4gaG90c3VcIDsKK+m0sCA+IGthdHN1XCA7CivptKsgPiBzaGlnaVwgOwor6bSDID4ga2V0c3VcIDsKK+m0giA+IGtldHN1XCA7Civpsr4gPiBoeWFrdVwgOwor6bKsID4ga29jaGlcIDsKK+mxlyA+IHVyb2tvXCA7CivpsZAgPiBzaHVrdVwgOwor6bGJID4gYmV0c3VcIDsKK+mxgSA+IGNoaWt1XCA7CivpsLsgPiB1bmFnaVwgOwor6bCSID4gYXdhYmlcIDsKK+mwjyA+IGh5b2t1XCA7CivpsI0gPiBpbmFkYVwgOwor6bCJID4gaGlnYWlcIDsKK+mwiCA+IGthcmVpXCA7Civpr7IgPiBkb2pvdVwgOwor6a+SID4ga29jaGlcIDsKK+mvjyA+IGFzYXJpXCA7Civprq0gPiBzaGFrZVwgOwor6a6oID4gc3VzaGlcIDsKK+mumiA+IGtpdHN1XCA7CivprpMgPiBzdXNoaVwgOwor6a6RID4gYXdhYmlcIDsKK+muhSA+IGhpdHN1XCA7CivproQgPiBmdXRzdVwgOwor6a2pID4gaGFjaGlcIDsKK+mtgyA+IGJhdHN1XCA7CivprLsgPiBzaHVrdVwgOwor6aygID4ga2F0c3VcIDsKK+msjiA+IHJhdHN1XCA7Civpq7ogPiBnYXRzdVwgOwor6au0ID4gZnV0c3VcIDsKK+mpliA+IHRldHN1XCA7CivpqYwgPiBzaHVrdVwgOwor6amLID4gaGF0c3VcIDsKK+mohCA+IHJ5b2t1XCA7Civpp5wgPiBoaXRzdVwgOwor6aeDID4ga2V0c3VcIDsKK+mmuSA+IGppdHN1XCA7Civppp0gPiBoaXRzdVwgOwor6aabID4gaGF0c3VcIDsKK+mlhiA+IGhpdHN1XCA7CivppK4gPiB0ZXRzdVwgOwor6aSfID4gdGV0c3VcIDsKK+mknSA+IHNob2t1XCA7CivppJEgPiBob3RzdVwgOwor6aO2ID4gaGl0c3VcIDsKK+mjrSA+IGNob2t1XCA7CivporMgPiBrYXRzdVwgOwor6aKwID4gaGF0c3VcIDsKK+miryA+IHNhdHN1XCA7CivpoaMgPiBzaHVrdVwgOwor6aChID4ga2l0c3VcIDsKK+mgiiA+IGt5b2t1XCA7Civpn6QgPiBiYXRzdVwgOwor6Z+hID4gc2FrYW5cIDsKK+mfoCA+IGhpdHN1XCA7Civpn40gPiBmdXRzdVwgOwor6Z+IID4gYmV0c3VcIDsKK+mfgyA+IGRhdHN1XCA7CivpnrggPiBoaXRzdVwgOwor6Z6oID4ga2F0c3VcIDsKK+mduiA+IG1hdHN1XCA7CivpnbkgPiBrZXRzdVwgOwor6Z2oID4gZWt1Ym9cIDsKK+maiSA+IGdldHN1XCA7CivpmZ8gPiBjaG9rdVwgOwor6ZiiID4gZ290c3VcIDsKK+mXpSA+IHRhdHN1XCA7Civpl5UgPiBrZXRzdVwgOwor6ZeRID4gZ2V0c3VcIDsKK+mXiyA+IGtldHN1XCA7Civpl4ogPiBrYXRzdVwgOwor6ZamID4gc2h1a3VcIDsKK+mWpSA+IGJhdHN1XCA7CivpkoMgPiBzaG9rdVwgOwor6ZGgID4gc2hha3VcIDsKK+mQvSA+IHRhdHN1XCA7CivpkK8gPiBzaGFrdVwgOwor6ZCNID4gdGV0c3VcIDsKK+mPuiA+IGhhdHN1XCA7Civpj4kgPiBzaHl1dVwgOwor6Y+FID4gc2h5dXVcIDsKK+mOpyA+IHlvcm9pXCA7CivpjosgPiBrYXRzdVwgOwor6Y2lID4ga2V0c3VcIDsKK+mNmCA+IHNhdHN1XCA7CivpjZQgPiB0c3ViYVwgOwor6YyoID4gaWthcmlcIDsKK+mMmCA+IHRzdW11XCA7Civpi6ggPiB0ZXRzdVwgOwor6YudID4gcmV0c3VcIDsKK+mLjSA+IGhvdHN1XCA7Civpir0gPiBrYXRzdVwgOwor6YqrID4gc2hva3VcIDsKK+mKlSA+IHRldHN1XCA7Civpib0gPiBzaHVrdVwgOwor6YmYID4gZnV0c3VcIDsKK+mIuiA+IGd5b2t1XCA7CivpiLggPiBoYXRzdVwgOwor6YivID4gdG90c3VcIDsKK+mIpCA+IGppdHN1XCA7CivpiIUgPiBnZXRzdVwgOwor6YewID4gaml0c3VcIDsKK+mHnyA+IGhhdHN1XCA7CivphrEgPiBoYXRzdVwgOwor6YaXID4gaGF0c3VcIDsKK+mGlCA+IHNoeXV1XCA7CivphoogPiB0ZXRzdVwgOwor6YaBID4gcnlva3VcIDsKK+mFqyA+IHNldHN1XCA7CivphaYgPiBoYXRzdVwgOwor6YSQID4gY2hpa3VcIDsKK+mCsiA+IGhpdHN1XCA7CivpgLwgPiBoaXRzdVwgOwor6YCvID4gcnlva3VcIDsKK+mAgiA+IGthdHN1XCA7Civov74gPiByZXRzdVwgOwor6L+tID4gdGV0c3VcIDsKK+i+viA+IHRhdHN1XCA7CivovrYgPiBjaGFrdVwgOwor6L61ID4gY2hha3VcIDsKK+i+sCA+IHRhdHN1XCA7CivovqUgPiBzZXRzdVwgOwor6L6jID4gcmF0c3VcIDsKK+i+nCA+IHRzdW1pXCA7CivovZUgPiBrYXRzdVwgOwor6L2EID4ga2F0c3VcIDsKK+i8vyA+IGtvc2hpXCA7CivovLUgPiBrYXRzdVwgOwor6LyfID4gdGV0c3VcIDsKK+i8giA+IGt5b2t1XCA7Civou74gPiBzaG9rdVwgOwor6Lu3ID4gaGF0c3VcIDsKK+i7jyA+IGdldHN1XCA7Civou4QgPiBzaG9rdVwgOwor6Lq1ID4gbmVyYXVcIDsKK+i6qSA+IGt5YWt1XCA7CivouoIgPiB0YXRzdVwgOwor6Lm2ID4ga2V0c3VcIDsKK+i5qSA+IGhldHN1XCA7CivouZwgPiBzaHVrdVwgOwor6LmZID4gc2h1a3VcIDsKK+i5lSA+IGhpdHN1XCA7CivouKcgPiBzaHVrdVwgOwor6LiLID4ga3lha3VcIDsKK+i3vCA+IGt5b2t1XCA7Civot5sgPiBiaWtrb1wgOwor6LeMID4gdGV0c3VcIDsKK+i3iyA+IGJhdHN1XCA7Civot4AgPiBnZXRzdVwgOwor6La5ID4ga2V0c3VcIDsKK+i2tyA+IGtvdHN1XCA7Civotp4gPiBzaGFrdVwgOwor6LaQID4ga2V0c3VcIDsKK+i1qSA+IGt5b2t1XCA7CivotJYgPiBzaG9rdVwgOwor6LOhID4gc2hva3VcIDsKK+iynCA+IGt5YWt1XCA7CivosYEgPiBrYXRzdVwgOwor6K6eID4gZ2V0c3VcIDsKK+itjiA+IGtpdHN1XCA7CivorJYgPiBzaG9rdVwgOwor6KyUID4gZ3lha3VcIDsKK+iskCA+IGhpdHN1XCA7Civoq5QgPiBzaHVrdVwgOwor6KqzID4ga3V0c3VcIDsKK+iqqiA+IHNldHN1XCA7CivoqpYgPiBob3RzdVwgOwor6KmnID4gc2F0c3VcIDsKK+ipmCA+IGt1dHN1XCA7CivoqKUgPiB0b3RzdVwgOwor6KiWID4ga2l0c3VcIDsKK+iokCA+IGtldHN1XCA7Civop7EgPiBoaXRzdVwgOwor6KeWID4ga2V0c3VcIDsKK+imlSA+IGJldHN1XCA7Civopa0gPiBrZXRzdVwgOwor6KWqID4gYmV0c3VcIDsKK+iloSA+IHNob2t1XCA7CivopZIgPiBoZXRzdVwgOwor6KWPID4gaGF0c3VcIDsKK+iljSA+IHphdHN1XCA7CivopLsgPiBzZXRzdVwgOwor6KSQID4ga2F0c3VcIDsKK+ikhCA+IHRzdW1hXCA7Civoo7AgPiB0YXRzdVwgOwor6KK6ID4ga2V0c3VcIDsKK+iinCA+IGJhdHN1XCA7CivoopogPiBoYXRzdVwgOwor6KG1ID4gaml0c3VcIDsKK+ihiyA+IGt5b2t1XCA7CivooYogPiBiZXRzdVwgOwor6KC8ID4ga3lha3VcIDsKK+igniA+IHNldHN1XCA7CivooJsgPiBiZXRzdVwgOwor6KCYID4gc2V0c3VcIDsKK+igiyA+IHNob2t1XCA7Civon5kgPiBzaG9rdVwgOwor6J2yID4gcmF0c3VcIDsKK+idjiA+IGthdHN1XCA7CivonJwgPiBtaXRzdVwgOwor6JyHID4gdGV0c3VcIDsKK+ibpSA+IHNldHN1XCA7Civom6MgPiBraXRzdVwgOwor6JueID4ga2F0c3VcIDsKK+ibmiA+IHJldHN1XCA7CivomZAgPiBneWFrdVwgOwor6JiWID4gZ2V0c3VcIDsKK+iXnCA+IGFrYXphXCA7Civol5ogPiBzaG9rdVwgOwor6JapID4gc2F0c3VcIDsKK+iWpSA+IHNob2t1XCA7CivolpsgPiBzZXRzdVwgOwor6JaYID4gdGF0c3VcIDsKK+iWiiA+IGF6YW1pXCA7CivolZ8gPiBoaXRzdVwgOwor6JWdID4gc2V0c3VcIDsKK+iVgCA+IGt5b2t1XCA7CivolKYgPiB0c3V0YVwgOwor6JSkID4gYml0c3VcIDsKK+iUjiA+IHNldHN1XCA7Civok78gPiBzaHVrdVwgOwor6JO9ID4gaGl0c3VcIDsKK+iThyA+IGtvdHN1XCA7CivokacgPiBob3RzdVwgOwor6JGcID4ga2F0c3VcIDsKK+iRliA+IHRvdHN1XCA7CivokY4gPiByaXRzdVwgOwor6I+9ID4gc2h1a3VcIDsKK+iPnSA+IGhhdHN1XCA7Civoj4kgPiByeW9rdVwgOwor6I6tID4gc2V0c3VcIDsKK+iOgiA+IGhldHN1XCA7CivojbggPiBob3RzdVwgOwor6I2XID4gc2hva3VcIDsKK+iMqCA+IGliYXJhXCA7CivojKIgPiByZXRzdVwgOwor6IycID4gYWthbmVcIDsKK+iMjSA+IGt5b2t1XCA7CivojIkgPiBtYXRzdVwgOwor6IyHID4gaGF0c3VcIDsKK+iMgSA+IHNhdHN1XCA7CivojIAgPiBodXRzdVwgOwor6Iu+ID4gaGl0c3VcIDsKK+iLtiA+IGRldHN1XCA7CivoirQgPiBidXRzdVwgOwor6IqNID4gc2hha3VcIDsKK+iJtCA+IGhvdHN1XCA7CivoiLMgPiBjaGlrdVwgOwor6IidID4ga2F0c3VcIDsKK+iIhCA+IHNoYWt1XCA7CivoiIMgPiBzaGFrdVwgOwor6Ie4ID4gaml0c3VcIDsKK+iHsiA+IGdldHN1XCA7Civoh4UgPiBzaG9rdVwgOwor6IW3ID4gaHlva3VcIDsKK+iFryA+IHRvdHN1XCA7CivohKsgPiBkYXRzdVwgOwor6ISWID4gaG90c3VcIDsKK+iEiSA+IG15YWt1XCA7Civog4ggPiBoYXRzdVwgOwor6IK4ID4ga2l0c3VcIDsKK+iCrSA+IGRvdHN1XCA7CivogosgPiBhYmFyYVwgOwor6IGSID4ga2F0c3VcIDsKK+iBgCA+IHNob2t1XCA7CivogIsgPiB0ZXRzdVwgOwor6ICKID4gdGV0c3VcIDsKK+e+ryA+IGthdHN1XCA7Civnvo0gPiB0YXRzdVwgOwor5724ID4gYmF0c3VcIDsKK+e8vSA+IGhhY2hpXCA7CivnvLwgPiBrZXRzdVwgOwor57qIID4ga2V0c3VcIDsKK+e5syA+IHNoYWt1XCA7CivnuZggPiBraXRzdVwgOwor57isID4gc2h1a3VcIDsKK+e3pCA+IHNldHN1XCA7Civntr0gPiBzaGFrdVwgOwor57agID4gcnlva3VcIDsKK+e2jSA+IGh1dHN1XCA7CivntbAgPiB0ZXRzdVwgOwor57WcID4ga2V0c3VcIDsKK+e1lyA+IGtvdHN1XCA7CivntZUgPiB6ZXRzdVwgOwor57WPID4gc2V0c3VcIDsKK+e0vCA+IGh1dHN1XCA7CivntLIgPiBzZXRzdVwgOwor57SxID4gaHV0c3VcIDsKK+e0riA+IHNhdHN1XCA7CivntIcgPiBrb3RzdVwgOwor57O1ID4gZ2V0c3VcIDsKK+ezjyA+IHNldHN1XCA7Civns4AgPiBrb3VqaVwgOwor57KbID4gc2h1a3VcIDsKK+eykiA+IHRzdWJ1XCA7CivnsZkgPiByeW9rdVwgOwor56++ID4gYmV0c3VcIDsKK+evsyA+IGhpdHN1XCA7Civnr6kgPiBmdXJ1aVwgOwor56+lID4gcml0c3VcIDsKK+euuyA+IHJpdHN1XCA7CivnrpogPiBzYXRzdVwgOwor562RID4gY2hpa3VcIDsKK+etjyA+IGlrYWRhXCA7CivnrYEgPiBreW9rdVwgOwor56y9ID4gc291a2VcIDsKK+essCA+IGh1dHN1XCA7CivnrJQgPiBoaXRzdVwgOwor56yPID4ga290c3VcIDsKK+errSA+IGtldHN1XCA7CivnqqMgPiBzb3RzdVwgOwor56qfID4ga3V0c3VcIDsKK+eqgyA+IHNldHN1XCA7CivnqaEgPiBzaG9rdVwgOwor56i3ID4gc2hva3VcIDsKK+eorSA+IGthdHN1XCA7CivnqKsgPiBoeW9rdVwgOwor56ihID4gc290c3VcIDsKK+eomSA+IGNob2t1XCA7Civnp7ggPiBrYXRzdVwgOwor56erID4gam90c3VcIDsKK+enoyA+IG1hdHN1XCA7Civnp6EgPiBoYXRzdVwgOwor56adID4gc2hva3VcIDsKK+elkyA+IGZ1dHN1XCA7Civno4YgPiBrYXRzdVwgOwor56K/ID4gc290c3VcIDsKK+eioyA+IGtldHN1XCA7Civnop8gPiBrYXRzdVwgOwor56KPID4gc2hha3VcIDsKK+ehiCA+IGthdHN1XCA7Civnn7sgPiBrb3RzdVwgOwor55+aID4gc2hva3VcIDsKK+eflyA+IGNoaWt1XCA7Civnnq4gPiB0ZXRzdVwgOwor556OID4ga2F0c3VcIDsKK+edsCA+IGJhdHN1XCA7CivnnJwgPiBiYXRzdVwgOwor55uLID4gaGF0c3VcIDsKK+earSA+IHNoYWt1XCA7CivnmpUgPiBoeW9rdVwgOwor55qMID4gYmF0c3VcIDsKK+eZtiA+IGhhdHN1XCA7CivnmaQgPiBzZXRzdVwgOwor55mfID4gaGV0c3VcIDsKK+eYpyA+IGd5YWt1XCA7CivnmJwgPiBzaG9rdVwgOwor55iMID4gcmF0c3VcIDsKK+eYhCA+IHNoYWt1XCA7CivnmIMgPiBzaG9rdVwgOwor55eGID4gZGF0c3VcIDsKK+eWmSA+IGdpdHN1XCA7CivnlbcgPiB0ZXRzdVwgOwor55WnID4gcnlha3VcIDsKK+eVnyA+IHNob2t1XCA7CivnlLYgPiBmdXRzdVwgOwor55OeID4gdGV0c3VcIDsKK+eRriA+IHJpdHN1XCA7Civnj78gPiBzaHVrdVwgOwor54+MID4gaGl0c3VcIDsKK+eOpiA+IGtldHN1XCA7CivnjqUgPiBnZXRzdVwgOwor546QID4gaGF0c3VcIDsKK+eOgyA+IGt5YWt1XCA7CivnjaYgPiBrYXRzdVwgOwor542dID4ga2l0c3VcIDsKK+eNlyA+IGtldHN1XCA7CivnjLIgPiBrYXRzdVwgOwor54ydID4gc290c3VcIDsKK+eLmCA+IGtldHN1XCA7Civniq4gPiBoYXRzdVwgOwor54idID4gc2hha3VcIDsKK+eIjSA+IHNoYWt1XCA7CivniIcgPiB6ZXRzdVwgOwor54e1ID4gdGF0c3VcIDsKK+eGmiA+IGhpdHN1XCA7CivnhZ4gPiBzYXRzdVwgOwor54SvID4gc2hha3VcIDsKK+eEqyA+IHpldHN1XCA7CivnhJQgPiBob25vb1wgOwor54SPID4ga3lva3VcIDsKK+eDlSA+IGtldHN1XCA7CivngJIgPiBzaG9rdVwgOwor5r+HID4gc2hva3VcIDsKK+a+iCA+IHRldHN1XCA7CivmvZogPiBzaHVrdVwgOwor5r2RID4gaGF0c3VcIDsKK+a9jyA+IGtldHN1XCA7Civmu60gPiBoaXRzdVwgOwor5ruAID4gY2hpa3VcIDsKK+a6rSA+IHNob2t1XCA7CivmuqcgPiByaXRzdVwgOwor5rqCID4gcmF0c3VcIDsKK+a5oiA+IGh5b2t1XCA7CivmuZwgPiBzaG9rdVwgOwor5ri0ID4ga2F0c3VcIDsKK+a4qyA+IHNldHN1XCA7CivmuKQgPiBib3RzdVwgOwor5riLID4gc2hpYnVcIDsKK+a3iCA+IGtvdHN1XCA7CivmtoUgPiBuZXRzdVwgOwor5rWsID4ga2FpcmlcIDsKK+a1oSA+IGhvdHN1XCA7CivmtZkgPiBzZXRzdVwgOwor5rSvID4ga2V0c3VcIDsKK+a0qyA+IGt5b2t1XCA7CivmtIwgPiByZXRzdVwgOwor5rOsID4ga2V0c3VcIDsKK+azkCA+IHJ5b2t1XCA7Civms4wgPiBoaXRzdVwgOwor5rK4ID4gZnV0c3VcIDsKK+ayqyA+IG1hdHN1XCA7CivmspUgPiBidXRzdVwgOwor5rKSID4gYm90c3VcIDsKK+axlCA+IGtpdHN1XCA7CivmsJ8gPiBodXRzdVwgOwor5rCSID4ga2V0c3VcIDsKK+aumyA+IGt5b2t1XCA7CivmroEgPiBib3RzdVwgOwor5q2/ID4gYm90c3VcIDsKK+atviA+IGJvdHN1XCA7Civmrb0gPiBzZXRzdVwgOwor5q25ID4gZ2F0c3VcIDsKK+atoCA+IHNldHN1XCA7CivmrZggPiBrdXRzdVwgOwor5q2HID4ga2V0c3VcIDsKK+asuyA+IGt1dHN1XCA7CivmrK8gPiBraXRzdVwgOwor5qygID4ga2V0c3VcIDsKK+asnyA+IHRzdWtpXCA7Civmq7EgPiBnZXRzdVwgOwor5quBID4gbWl0c3VcIDsKK+aqqyA+IHNhdHN1XCA7CivmqosgPiBreW9rdVwgOwor5qmbID4ga2V0c3VcIDsKK+aotCA+IHNob2t1XCA7Civmp60gPiBzaHVrdVwgOwor5qa+ID4ga290c3VcIDsKK+amjSA+IHNldHN1XCA7CivmpoAgPiBrb21haVwgOwor5qW+ID4gaGF6b3VcIDsKK+alrCA+IGtldHN1XCA7CivmpKMgPiBzaGlkZVwgOwor5qSKID4gc290c3VcIDsKK+akhCA+IHNldHN1XCA7Civmo4EgPiBzZXRzdVwgOwor5qKyID4gc2V0c3VcIDsKK+ahsiA+IGhvdHN1XCA7CivmobAgPiBrYXRzdVwgOwor5qGbID4ga2FzZWlcIDsKK+ahlCA+IGtpdHN1XCA7CivmoYAgPiBrZXRzdVwgOwor5qC7ID4gY2hva3VcIDsKK+agsCA+IGhhdHN1XCA7CivmoKggPiBzZXRzdVwgOwor5qCDID4gdG9jaGlcIDsKK+aftyA+IHNodWt1XCA7Civmn64gPiB0b3RzdVwgOwor5p2wID4ga2V0c3VcIDsKK+adpCA+IHRvY2hpXCA7CivmnYwgPiBnb3RzdVwgOwor5p2BID4gZWJ1cmlcIDsKK+acuCA+IHJ5b2t1XCA7CivmnLMgPiBoYXRzdVwgOwor5pyvID4ganV0c3VcIDsKK+acriA+IGp1dHN1XCA7CivmnIUgPiBrZXRzdVwgOwor5pu3ID4ga2F0c3VcIDsKK+aavCA+IGhldHN1XCA7CivmmrEgPiBqaXRzdVwgOwor5pmiID4gc2V0c3VcIDsKK+aYtSA+IGppdHN1XCA7CivmmLMgPiB0ZXRzdVwgOwor5pipID4gYmF0c3VcIDsKK+aYoiA+IGhvdHN1XCA7CivmmJIgPiBrb3RzdVwgOwor5petID4gYXNhaGlcIDsKK+aWqyA+IHNoYWt1XCA7CivmlqMgPiBzaHVrdVwgOwor5pWqID4gdGF0c3VcIDsKK+aVoCA+IHRhdHN1XCA7CivmlZUgPiBjaG9rdVwgOwor5pSdID4gc2V0c3VcIDsKK+aTvSA+IHJ5YWt1XCA7Civmk7cgPiBrZXRzdVwgOwor5pOmID4gc2F0c3VcIDsKK+aSuyA+IHRhY2hpXCA7CivmkqUgPiBiYWNoaVwgOwor5pKkID4gdGV0c3VcIDsKK+aShyA+IGhldHN1XCA7CivmkoUgPiBrZXRzdVwgOwor5pGLID4gc2F0c3VcIDsKK+aRgiA+IHNldHN1XCA7CivmkLAgPiBrb3RzdVwgOwor5pCpID4ga2V0c3VcIDsKK+aQkCA+IGNoaWt1XCA7Civmj7MgPiBzZXRzdVwgOwor5o+yID4gc2V0c3VcIDsKK+aPrCA+IHRvdHN1XCA7Civmj6AgPiBzYXRzdVwgOwor5o+RID4gZ2V0c3VcIDsKK+aOnyA+IG9raXRlXCA7CivmjocgPiB0YXRzdVwgOwor5o29ID4gc290c3VcIDsKK+aNuiA+IG5hdHN1XCA7CivmjbggPiB0b3RzdVwgOwor5o2dID4gdGF0c3VcIDsKK+aNjyA+IGRldHN1XCA7CivmjYsgPiByYXRzdVwgOwor5oy2ID4ga3lva3VcIDsKK+aMqSA+IHRhdHN1XCA7CivmjIggPiBrZXRzdVwgOwor5ouuID4ga2l0c3VcIDsKK+aLiSA+IHJhdHN1XCA7CivmirkgPiBtYXRzdVwgOwor5oqQID4gZG90c3VcIDsKK+aKiCA+IGdldHN1XCA7CivmiaQgPiBnb3RzdVwgOwor5omOID4gc2F0c3VcIDsKK+aIoCA+IHNob2t1XCA7CivmiJ4gPiBrYXRzdVwgOwor5oicID4gdGV0c3VcIDsKK+aImyA+IGthdHN1XCA7CivmiIQgPiBreWFrdVwgOwor5oekID4gY2h5dXVcIDsKK+aHjiA+IHNob2t1XCA7CivmhqAgPiBrZXRzdVwgOwor5oafID4gc2hva3VcIDsKK+aGiyA+IGhldHN1XCA7CivmhI4gPiBoeW9rdVwgOwor5oSKID4gaHlva3VcIDsKK+aEgiA+IGJvdHN1XCA7Civmg5kgPiB0ZXRzdVwgOwor5oKKID4gdGV0c3VcIDsKK+aBpCA+IGp1dHN1XCA7CivmgLUgPiBqdXRzdVwgOwor5oCtID4gaGl0c3VcIDsKK+aAqyA+IGZ1dHN1XCA7CivmgJsgPiBkYXRzdVwgOwor5b+UID4ga2l0c3VcIDsKK+W+jyA+IGNob2t1XCA7Civlvb8gPiBmdXRzdVwgOwor5b20ID4gc2hha3VcIDsKK+W9gyA+IGhpdHN1XCA7CivlvYIgPiBob3RzdVwgOwor5by8ID4gaGl0c3VcIDsKK+W8uyA+IGhpdHN1XCA7CivlvKYgPiB0c3VydVwgOwor5byhID4ga3V0c3VcIDsKK+W7kCA+IHVtYXlhXCA7CivluoIgPiBzaG9rdVwgOwor5bmvID4gc2V0c3VcIDsKK+W5rSA+IGJldHN1XCA7CivluLQgPiBzYXRzdVwgOwor5bilID4gc290c3VcIDsKK+W4miA+IGhvdWtpXCA7CivluJUgPiBiYXRzdVwgOwor5be/ID4gaHV0c3VcIDsKK+W3gCA+IHNhdHN1XCA7CivltrEgPiBrYXRzdVwgOwor5batID4gZ2F0c3VcIDsKK+W2jSA+IHNoaWh1XCA7Civltb0gPiB0ZXRzdVwgOwor5bWyID4gZ2V0c3VcIDsKK+W1pSA+IGtldHN1XCA7CivltZEgPiBrZXRzdVwgOwor5bWCID4gcml0c3VcIDsKK+W0sSA+IHNob2t1XCA7CivltKsgPiBrdXRzdVwgOwor5bSbID4ga3V0c3VcIDsKK+WzoCA+IHRvdWdlXCA7Civls5ogPiBiaXRzdVwgOwor5bOMID4gdGV0c3VcIDsKK+WyqiA+IGh1dHN1XCA7CivlsqQgPiBrZXRzdVwgOwor5bKPID4gZ3V3YW5cIDsKK+WyiiA+IHNldHN1XCA7CivlsokgPiBidXRzdVwgOwor5bG8ID4gZ290c3VcIDsKK+WxuSA+IGtpdHN1XCA7CivlsbUgPiBnYXRzdVwgOwor5bG0ID4gcnlva3VcIDsKK+WxqyA+IGt5YWt1XCA7CivlsakgPiBreWFrdVwgOwor5bCzID4ga290c3VcIDsKK+WwlyA+IHNodWt1XCA7CivlsJAgPiBzZXRzdVwgOwor5a+jID4ga290c3VcIDsKK+WvlCA+IHNob2t1XCA7CivlrrsgPiBtaXRzdVwgOwor5a6TID4gYml0c3VcIDsKK+WuiiA+IHRvdHN1XCA7Civlrb0gPiBnZXRzdVwgOwor5a28ID4gZ2V0c3VcIDsKK+WtsCA+IGl6dXJlXCA7CivlrZsgPiBib3RzdVwgOwor5a2SID4ga2V0c3VcIDsKK+WtkSA+IGtldHN1XCA7CivlrY4gPiBzaG9rdVwgOwor5ayHID4ga3V3YWlcIDsKK+WsgiA+IHNob2t1XCA7Civlq7MgPiBoZXRzdVwgOwor5auhID4gY2hha3VcIDsKK+WqnyA+IHNldHN1XCA7CivlqbwgPiBzaGFrdVwgOwor5amMID4gc2h1a3VcIDsKK+WojiA+IGtldHN1XCA7Civlp7QgPiByZXRzdVwgOwor5aehID4ga2F0c3VcIDsKK+WnniA+IGtpdHN1XCA7CivlprogPiBiYXRzdVwgOwor5aayID4gZGF0c3VcIDsKK+WmsCA+IGNoYWt1XCA7Civlpq0gPiBoYXRzdVwgOwor5aaBID4gc2hha3VcIDsKK+WlryA+IGthdHN1XCA7CivlpZEgPiBzZXRzdVwgOwor5aS3ID4gZWJpc3VcIDsKK+WkrCA+IGtldHN1XCA7CivlpKggPiBzaG9rdVwgOwor5aSZID4gc2h1a3VcIDsKK+WjtyA+IHRzdWJvXCA7CivloqIgPiBoYXRzdVwgOwor5aKMID4gc2hha3VcIDsKK+WihiA+IHRldHN1XCA7CivloZsgPiByaXRzdVwgOwor5aCoID4gZ2V0c3VcIDsKK+WftCA+IHNob2t1XCA7Civln7EgPiBzaHl1dVwgOwor5Z+TID4gcmFjaGlcIDsKK+WepCA+IHRldHN1XCA7CivlnqEgPiBoYXRzdVwgOwor5Z6UID4gc2h5b3VcIDsKK+WejyA+IHJvdHN1XCA7CivlnoMgPiByYXRzdVwgOwor5Z26ID4gaGF0c3VcIDsKK+WduSA+IGtldHN1XCA7CivlnbIgPiBodXRzdVwgOwor5Z2qID4gdHN1Ym9cIDsKK+WcvyA+IGthdHN1XCA7CivlnL0gPiBib3RzdVwgOwor5Zy0ID4gc2hha3VcIDsKK+WcqiA+IGdpdHN1XCA7CivlnKMgPiBrdXRzdVwgOwor5ZuuID4gb3RvcmlcIDsKK+WbqyA+IGtvdHN1XCA7Civlm5MgPiBrZXRzdVwgOwor5ZuRID4gc2hva3VcIDsKK+WbkCA+IHNhdHN1XCA7Civlm4sgPiBzYXRzdVwgOwor5Zq9ID4gc2V0c3VcIDsKK+WavCA+IHNoYWt1XCA7Civlmp4gPiB0ZXRzdVwgOwor5Zm2ID4ga2F0c3VcIDsKK+WZsiA+IGt1d2FpXCA7CivlmbEgPiBreWFrdVwgOwor5ZmgID4gdGF0c3VcIDsKK+WZmCA+IGtldHN1XCA7CivlmYggPiBzaHVrdVwgOwor5ZmEID4ga2l0c3VcIDsKK+WYsSA+IHNob2t1XCA7CivlmKAgPiBrYXRzdVwgOwor5ZiOID4ga2F0c3VcIDsKK+WXtiA+IGhpdHN1XCA7Civll6cgPiBnYXJvblwgOwor5ZeiID4gcmF0c3VcIDsKK+WXliA+IHNodWh1XCA7Civll5UgPiBzaG9rdVwgOwor5ZeQID4ga2F0c3VcIDsKK+WWqyA+IGtpdHN1XCA7Civllp0gPiBrYXRzdVwgOwor5ZaMID4gc2h1a3VcIDsKK+WWhiA+IHRldHN1XCA7CivllaAgPiB0ZXRzdVwgOwor5ZWSID4ga290c3VcIDsKK+WUvyA+IGtvdHN1XCA7CivllLAgPiBzZXRzdVwgOwor5ZO+ID4geWF0c3VcIDsKK+WTtyA+IHJldHN1XCA7Civlk7MgPiB0YXRzdVwgOwor5ZOxID4gaG90c3VcIDsKK+WTqyA+IHNob2t1XCA7Civlk5ggPiBzYXNvdVwgOwor5ZOLID4gdGV0c3VcIDsKK+WSsSA+IHNhdHN1XCA7Civlkq0gPiBraXRzdVwgOwor5ZKnID4gcmV0c3VcIDsKK+WSiCA+IGh1dHN1XCA7CivlkocgPiBoZXRzdVwgOwor5ZG+ID4gdGF0c3VcIDsKK+WRkCA+IHRvdHN1XCA7CivlkLcgPiBrZXRzdVwgOwor5ZC2ID4gdG90c3VcIDsKK+WQoSA+IGhpdHN1XCA7CivlkIsgPiBpbmNoaVwgOwor5ZCDID4ga2l0c3VcIDsKK+WPlSA+IHRldHN1XCA7Civlj5AgPiBoYXRzdVwgOwor5Y6pID4gdW1heWFcIDsKK+WOpSA+IGtldHN1XCA7CivljbwgPiBnb3RzdVwgOwor5Y27ID4ga3lha3VcIDsKK+WNuSA+IGp1dHN1XCA7CivljakgPiBzZXRzdVwgOwor5Y2oID4gc2V0c3VcIDsKK+WNjSA+IG1hbmppXCA7CivljYYgPiBzb3RzdVwgOwor5YyxID4gaGl0c3VcIDsKK+WMqyA+IGtvdHN1XCA7CivljKQgPiBreWFrdVwgOwor5YyiID4ga290c3VcIDsKK+WMgyA+IGthdHN1XCA7CivljIEgPiBtb25tZVwgOwor5Yu6ID4gc2hha3VcIDsKK+WLtiA+IGtldHN1XCA7Civli6ogPiBreWFrdVwgOwor5YuWID4ga3lha3VcIDsKK+WLgyA+IGJvdHN1XCA7Civlir0gPiByZXRzdVwgOwor5Yq8ID4ga2F0c3VcIDsKK+WKmiA+IGNoYWt1XCA7CivlioQgPiBzYXRzdVwgOwor5YqCID4ga2V0c3VcIDsKK+WKgCA+IGthdHN1XCA7CivliZ8gPiB0ZXRzdVwgOwor5YmOID4gc2F0c3VcIDsKK+WJjCA+IHJhdHN1XCA7CivliK4gPiBrYXRzdVwgOwor5YirID4gYmV0c3VcIDsKK+WInCA+IGh1dHN1XCA7CivliJYgPiBnZXRzdVwgOwor5YiUID4ga2V0c3VcIDsKK+WHkyA+IHJpdHN1XCA7Civlhr0gPiByZXRzdVwgOwor5Ya5ID4gaHV0c3VcIDsKK+WGsyA+IGtldHN1XCA7CivlhLIgPiBtb3VrZVwgOwor5YOqID4ga2l0c3VcIDsKK+WDpiA+IHNoeXV1XCA7Civlg4EgPiBzZXRzdVwgOwor5YKgID4gaGF0c3VcIDsKK+WCiCA+IHJpdHN1XCA7CivlgoQgPiBrYXRzdVwgOwor5YGwID4gc2V0c3VcIDsKK+WBnyA+IGt1d2F1XCA7CivlgYggPiBrZXRzdVwgOwor5YCUID4ga3V0c3VcIDsKK+WAkCA+IHNodWt1XCA7CivlgI8gPiBzaHVrdVwgOwor5YCMID4ga3V3YW5cIDsKK+S/tiA+IHNodWt1XCA7CivkvrwgPiBob3RzdVwgOwor5L67ID4gdGF0c3VcIDsKK+S+tyA+IGt5b2t1XCA7CivkvpkgPiBjaG9rdVwgOwor5L6TID4gcm90c3VcIDsKK+S+kCA+IGt5b2t1XCA7CivkvbggPiBrYXRzdVwgOwor5L22ID4ga2l0c3VcIDsKK+S9qiA+IGt1d2FpXCA7CivkvZogPiB0ZXRzdVwgOwor5L2WID4gaGl0c3VcIDsKK+S8tSA+IGt5b2t1XCA7CivkvLMgPiBzZXRzdVwgOwor5LycID4gc290c3VcIDsKK+S8kCA+IGJhdHN1XCA7Civku7QgPiBnYXRzdVwgOwor5LuhID4ga2l0c3VcIDsKK+S7iCA+IGhhdHN1XCA7Civkup8gPiBreW9rdVwgOwor5LqNID4gY2hva3VcIDsKK+S6hSA+IGtldHN1XCA7CivkubQgPiBzZXRzdVwgOwor5LmEID4gc2hpbWVcIDsKK+S5gCA+IGZ1dHN1XCA7CivkuL8gPiBoZXRzdVwgOwor5LiyID4ga3VzaGlcIDsKK+OAhiA+IHNoaW1lXCA7Civnn7MgPiBrb2t1XCA7Civov6sgPiBoYWt1XCA7Civov4QgPiBtYWRlXCA7Civlv4MgPiBzaGluXCA7CivovrwgPiBrb211XCA7CivlvrQgPiBjaG91XCA7CivlvrMgPiB0b2t1XCA7CivovrEgPiBqb2t1XCA7Civnnq0gPiByeW91XCA7CivnnqwgPiBzaHVuXCA7CivlvqkgPiBmdWt1XCA7CivovpsgPiBzaGluXCA7CivlvpcgPiB0b2t1XCA7CivlvbwgPiBrYXJlXCA7CivlvbkgPiB5YWt1XCA7CivlvbEgPiBrYWdlXCA7CivlvasgPiBjaG91XCA7CivnnaYgPiBib2t1XCA7CivnnaMgPiB0b2t1XCA7CivlvL4gPiB0YW1hXCA7CivnnLogPiBjaG91XCA7CivlvLcgPiBreW91XCA7CivlvLUgPiBjaG91XCA7CivovK8gPiBzaHV1XCA7CivnnJ4gPiBzaGluXCA7CivlvJQgPiBjaG91XCA7CivnnIkgPiBtYXl1XCA7CivovIMgPiBrYWt1XCA7Civnm7QgPiBoaXRhXCA7Civou5IgPiBub2tpXCA7Civnm4ogPiB5YWt1XCA7Civlu4IgPiBzaG91XCA7Civnmr8gPiBzYXJhXCA7CivlurUgPiBpb3JpXCA7Civnmq4gPiBrYXdhXCA7Civluq0gPiBuaXdhXCA7CivlupcgPiBtaXNlXCA7CivlupUgPiBzb2tvXCA7CivoupEgPiB0ZWtpXCA7Civouo0gPiB5YWt1XCA7CivouoogPiBjaHV1XCA7CivluoogPiB5dWthXCA7CivnmoQgPiBtYXRvXCA7CivluoEgPiBjaG91XCA7CivlubkgPiBtaWtpXCA7CivoubQgPiBzaHV1XCA7CivlubMgPiBoaXJhXCA7CivouaAgPiBzZWtpXCA7CivouZ8gPiBzZWtpXCA7CivnmZYgPiBrdXNlXCA7CivluYUgPiBoYWJhXCA7CivnmYIgPiByeW91XCA7CivluLggPiB0b3dhXCA7CivluK0gPiBzZWtpXCA7CivluIwgPiBtYXJlXCA7CivluIMgPiBudW5vXCA7Civlt7sgPiBtYWtpXCA7Civot7MgPiBjaG91XCA7Civlt50gPiBrYXdhXCA7Civnl4cgPiBzaG91XCA7CivotrMgPiBhc2hpXCA7CivotoogPiBldHN1XCA7CivotoUgPiBjaG91XCA7CivotasgPiBrYWt1XCA7CivnlasgPiBrYWt1XCA7CivotaQgPiBzZWtpXCA7CivnlZkgPiByeXV1XCA7CivnlLsgPiBrYWt1XCA7CivnlLMgPiBzYXJ1XCA7CivnlJ8gPiBuYW1hXCA7CivnlJogPiBzaGluXCA7CivltJYgPiBnYWtlXCA7CivltI4gPiBzYWtpXCA7Civls7AgPiBtaW5lXCA7Civos5EgPiBzaGluXCA7Civos4ogPiB6b2t1XCA7Civos4MgPiBjaGluXCA7CivosqwgPiBzZWtpXCA7CivlsbEgPiB5YW1hXCA7CivlsawgPiB6b2t1XCA7CivlsZ4gPiB6b2t1XCA7CivlsZEgPiBrdXp1XCA7CivosYYgPiBtYW1lXCA7CivnkLQgPiBrb3RvXCA7CivlsLEgPiBzaHV1XCA7CivlsJEgPiBzaG91XCA7CivlsI8gPiBzaG91XCA7CivlsIYgPiBzaG91XCA7CivnkIMgPiB0YW1hXCA7Civlr74gPiB0c3VpXCA7Civlr7ogPiB0ZXJhXCA7Civlr7UgPiBjaG91XCA7Civlr6kgPiBzaGluXCA7Civlr6UgPiByeW91XCA7Civlr6IgPiBzaGluXCA7Civnj40gPiBjaGluXCA7Civlr4wgPiB0b21pXCA7Civlr4IgPiBzYWJpXCA7Civlrr8gPiB5YWRvXCA7Civlrq4gPiBtaXlhXCA7CivlrqQgPiBtdXJvXCA7CivlrpcgPiBzaHV1XCA7CivnjpYgPiBreXV1XCA7CivnjokgPiBkYW1hXCA7CivlrokgPiB5YXN1XCA7CivlroggPiBtb3JpXCA7CivlroUgPiB0YWt1XCA7CivoroAgPiB0b2t1XCA7CivlrbggPiBnYWt1XCA7CivnjbIgPiBrYWt1XCA7Civora8gPiB5YWt1XCA7CivlrasgPiBtYWdvXCA7CivnjaggPiBkb2t1XCA7CivlraYgPiBnYWt1XCA7CivorYkgPiBzaG91XCA7CivnjYQgPiBnb2t1XCA7CivnjL8gPiBzYXJ1XCA7CivnjKsgPiBuZWtvXCA7CivorKEgPiB1dGFpXCA7CivorI4gPiBuYXpvXCA7CivlrIwgPiBreW91XCA7CivorIEgPiBldHN1XCA7Civni7kgPiBreW91XCA7Civni60gPiBreW91XCA7Civni4IgPiBreW91XCA7Civlq4EgPiB5b21lXCA7Civoqr8gPiBjaG91XCA7CivoqrAgPiBkYXJlXCA7Civoqq0gPiB0b2t1XCA7CivoqoIgPiBjaG91XCA7Civlqb8gPiBtdWtvXCA7CivnibkgPiB0b2t1XCA7CivoqbMgPiBzaG91XCA7CivniakgPiBtb25vXCA7CivniacgPiBib2t1XCA7CivniZsgPiB1c2hpXCA7CivoqZUgPiBoeW91XCA7CivniZIgPiBjaG91XCA7CivlqYYgPiBiYWJhXCA7CivoqLogPiBzaGluXCA7CivoqLMgPiB3YWtlXCA7CivoqJ8gPiBzaG91XCA7CivlqKAgPiBzaGluXCA7CivoqJcgPiB0YWt1XCA7CivniIYgPiBiYWt1XCA7Civlp6sgPiBoaW1lXCA7Civnh5IgPiBzaG91XCA7CivoprogPiBrYWt1XCA7CivoppogPiBrYWt1XCA7CivlppkgPiBteW91XCA7CivnhoogPiBrdW1hXCA7CivopoYgPiBmdWt1XCA7CivopbIgPiBzaHV1XCA7CivnhacgPiBzaG91XCA7CivnhaQgPiBzdXN1XCA7CivopYEgPiBreW91XCA7CivnhLwgPiB5YWtpXCA7CivlpKsgPiBvdHRvXCA7CivnhKYgPiBzaG91XCA7CivlpKIgPiB5dW1lXCA7CivlpJwgPiB5b3J1XCA7CivlpJYgPiBob2thXCA7CivopIcgPiBmdWt1XCA7Civoo74gPiBzdXNvXCA7Civlo7EgPiBpY2hpXCA7Civlo5MgPiBhdHN1XCA7Civlo4EgPiBrYWJlXCA7CivngrogPiB0YW1lXCA7Civngq0gPiBzdW1pXCA7CivloqggPiBzdW1pXCA7CivoopYgPiBzb2RlXCA7CivlopMgPiBoYWthXCA7CivoobcgPiBjaHV1XCA7CivooaggPiBoeW91XCA7CivloakgPiBzaGlvXCA7CivooZ0gPiBzaG91XCA7CivloZ4gPiBzb2t1XCA7CivooZMgPiBzdWJlXCA7CivooYwgPiBneW91XCA7CivooYYgPiBzaHV1XCA7CivooKIgPiBzaHVuXCA7CivngJ0gPiByZWtpXCA7CivloIAgPiBob3JpXCA7Civmv68gPiB0YWt1XCA7Civmv4EgPiBkYWt1XCA7Civmv4AgPiBnZWtpXCA7CivmvqQgPiB0YWt1XCA7CivlnqMgPiBrYWtpXCA7CivlnosgPiBrYXRhXCA7CivmvoQgPiBjaG91XCA7Civmva4gPiBzaGlvXCA7CivonaAgPiBmdWt1XCA7CivonYkgPiBzZW1pXCA7CivlnYIgPiBzYWthXCA7CivmvL8gPiBzaG91XCA7CivpvLsgPiBoYW5hXCA7CivmvLIgPiBjaG91XCA7CivlnKcgPiBhdHN1XCA7CivmvKAgPiBiYWt1XCA7CivlnJIgPiBzb25vXCA7CivlnIsgPiBrb2t1XCA7CivonIMgPiBzaGluXCA7CivmvIIgPiBoeW91XCA7CivmvIEgPiByeW91XCA7Civlm70gPiBrdW5pXCA7Civpu7QgPiBrYWJpXCA7Civpu5kgPiBtb2t1XCA7Civpu5ggPiBtb2t1XCA7Civpu5IgPiBrdXJvXCA7Civpu40gPiBraWJpXCA7Civom4cgPiBoZWJpXCA7Civlm4EgPiBzaG91XCA7CivmurogPiBkZWtpXCA7CivpuqYgPiBtdWdpXCA7CivpuqUgPiBiYWt1XCA7CivomqQgPiBub21pXCA7CivmuqIgPiBpdHN1XCA7Civmup0gPiBtaXpvXCA7CivmupwgPiByeXV1XCA7CivomY4gPiB0b3JhXCA7CivmuKwgPiBzb2t1XCA7CivlmJcgPiBzaG91XCA7CivmuIkgPiBzaG91XCA7Civpt7kgPiB0YWthXCA7Civmt7EgPiBzaGluXCA7Civol6UgPiB5YWt1XCA7Civol6QgPiBmdWppXCA7Civll4UgPiBreXV1XCA7Civol4EgPiB3YXJhXCA7CivmtrwgPiByeW91XCA7CivmtpwgPiB0b2t1XCA7CivllosgPiBjaG91XCA7CivllokgPiBub2RvXCA7CivmtoggPiBzaG91XCA7CivmtbggPiBzaGluXCA7CivmtbQgPiB5b2t1XCA7CivmtZwgPiBoYW1hXCA7CivmtZogPiBzaHVuXCA7CivolY4gPiBreW91XCA7CivllYYgPiBzaG91XCA7CivmtYEgPiByeXV1XCA7CivmtLIgPiBzaHV1XCA7CivllLEgPiBzaG91XCA7CivllK8gPiB0YWRhXCA7CivolK0gPiBrYWdlXCA7CivmtKUgPiBzaGluXCA7CivmtJ4gPiBob3JhXCA7CivmtJsgPiByYWt1XCA7CivllJYgPiBvc2hpXCA7Civok64gPiBoYXN1XCA7Civlk60gPiBrb2t1XCA7Civps6kgPiBoYXRvXCA7Civms6ggPiBjaHV1XCA7Civps6UgPiB0b3JpXCA7Civms6UgPiBkb3JvXCA7Civms6MgPiBreXV1XCA7Civms6IgPiBuYW1pXCA7Civok4sgPiBmdXRhXCA7Civms4ogPiBoYWt1XCA7Civms4EgPiBreW91XCA7Civlkr0gPiBub2RvXCA7CivmsrwgPiBudW1hXCA7CivokrsgPiBqYWt1XCA7CivmsrMgPiBrYXdhXCA7CivokrIgPiBnYW1hXCA7CivlkrMgPiBzZWtpXCA7CivlkrIgPiBzaG91XCA7CivmsqIgPiBzYXdhXCA7Civlko4gPiBreXV1XCA7CivmsoggPiBjaGluXCA7CivmsbIgPiBreXV1XCA7CivlkaggPiBzaHV1XCA7CivpsYggPiB0YXJhXCA7CivlkYogPiBrb2t1XCA7CivmsYIgPiBreXV1XCA7CivokL0gPiBvY2hpXCA7CivlkLggPiBreXV1XCA7CivmsLQgPiBtaXp1XCA7CivmsJEgPiB0YW1pXCA7CivlkIogPiBjaG91XCA7CivlkIQgPiBrYWt1XCA7Civlj7MgPiBtaWdpXCA7Civoj68gPiBoYW5hXCA7Civmr6wgPiBreXV1XCA7Civlj6wgPiBzaG91XCA7Civlj6sgPiBreW91XCA7Civlj6ogPiB0YWRhXCA7Civlj6QgPiBmdXJ1XCA7Civlj5YgPiB0b3JpXCA7Civmr5IgPiBkb2t1XCA7Civlj44gPiBzaHV1XCA7Civmr40gPiBoYWhhXCA7Civlj4wgPiBmdXRhXCA7Civoj4ogPiBraWt1XCA7Civlj4sgPiB0b21vXCA7Civlj4ogPiBreXV1XCA7Civlj4ggPiBtYXRhXCA7Civmrr8gPiBkb25vXCA7CivmrrsgPiBrYXJhXCA7CivojqIgPiBzYXlhXCA7Civljp8gPiBoYXJhXCA7CivljoQgPiB5YWt1XCA7CivmrbQgPiByZWtpXCA7CivljbMgPiBzb2t1XCA7CivljZogPiBiYWt1XCA7CivljZQgPiBreW91XCA7CivljZMgPiB0YWt1XCA7CivojYkgPiBrdXNhXCA7CivljYcgPiBtYXN1XCA7CivprLEgPiB1dHN1XCA7CivmrLIgPiB5b2t1XCA7CivmrJ0gPiB1dHN1XCA7CivprJogPiBoaWdlXCA7CivljJkgPiBzYWppXCA7CivljJcgPiBob2t1XCA7CivojI4gPiBrdWtpXCA7CivojIUgPiBrYXlhXCA7CivljIIgPiBuaW91XCA7Civpq7cgPiBtYWdlXCA7Civpq60gPiBoaWdlXCA7Civpq6ogPiBrYW1pXCA7Civoi6UgPiBqYWt1XCA7Civli50gPiBzaG91XCA7Civpq5ggPiB0YWthXCA7Civoi5QgPiBrb2tlXCA7CivoirEgPiBoYW5hXCA7CivpqqggPiBob25lXCA7CivliqkgPiBzdWtlXCA7CivliocgPiBnZWtpXCA7CivlioMgPiBrYWt1XCA7Civlib0gPiBoeW91XCA7CivlibIgPiB3YXJpXCA7Civoia8gPiByeW91XCA7CivliaUgPiBoYWt1XCA7CivmqZ8gPiBoYXRhXCA7CivpqZogPiBreW91XCA7CivliYogPiBzYWt1XCA7CivliYcgPiBzb2t1XCA7CivliLsgPiBrb2t1XCA7CivoiLkgPiBmdW5lXCA7CivliLogPiB0b2dlXCA7CivoiLYgPiBoYWt1XCA7CivmqKogPiB5b2tvXCA7CivoiJ8gPiBmdW5lXCA7CivmqJkgPiBoeW91XCA7CivoiI4gPiBzZWtpXCA7CivoiIogPiBreXV1XCA7CivliIggPiBrYXJpXCA7CivmqIUgPiBtb21pXCA7CivmqIIgPiBnYWt1XCA7Civoh60gPiBzaHV1XCA7Civoh6MgPiBzaGluXCA7Civpp5IgPiBrb21hXCA7Civpp5AgPiBjaHV1XCA7Civoh40gPiBoZXNvXCA7Civmp4wgPiB0c3VpXCA7Civlh4wgPiByeW91XCA7Civmp4cgPiBtYWtpXCA7CivpprQgPiBzaHVuXCA7CivlhqwgPiBmdXl1XCA7Civohp0gPiBoaXphXCA7CivohpwgPiBtYWt1XCA7CivmppsgPiBzaGluXCA7CivpppkgPiBreW91XCA7CivpppYgPiBrdWJpXCA7CivlhoYgPiBtYXJ1XCA7CivlhoUgPiB1Y2hpXCA7Civmpb0gPiByYWt1XCA7CivohbkgPiBoYXJhXCA7CivmpbUgPiBnb2t1XCA7CivlhbEgPiBkb21vXCA7Civmpa0gPiB3YXphXCA7Civlha0gPiByb2t1XCA7CivlhakgPiByeW91XCA7CivlhaUgPiBueXV1XCA7CivlhYMgPiBtb3RvXCA7CivohKMgPiBzaGluXCA7CivlhJ8gPiBzaG91XCA7CivohJogPiBhc2hpXCA7CivlhJggPiBtYW1hXCA7CivmpI4gPiB0c3VpXCA7CivohIogPiBzZWtpXCA7CivohIcgPiB3YWtpXCA7CivohIUgPiBreW91XCA7CivohIIgPiB5YW5pXCA7Civog70gPiB5b2t1XCA7Civog7ggPiBtdW5lXCA7Civmo64gPiBtb3JpXCA7Civmo5ogPiB0YW5hXCA7Civlg5ogPiByeW91XCA7Civlg5UgPiBib2t1XCA7Civlg5EgPiBreW91XCA7CivlgrcgPiBzaG91XCA7CivogqkgPiBrYXRhXCA7Civogp0gPiBraW1vXCA7CivogpggPiBoaWppXCA7CivlgpggPiBrYXNhXCA7CivogpYgPiBzaG91XCA7CivogowgPiBoYWRhXCA7Civlgo0gPiB3YWtpXCA7CivogokgPiBuaWt1XCA7CivmooMgPiB0ZWtvXCA7Civogb0gPiBjaG91XCA7Civlgb0gPiBuaXNlXCA7CivogbQgPiBjaG91XCA7CivogbMgPiBzaG91XCA7CivlgbQgPiBoYXRhXCA7CivogZogPiBzaHV1XCA7CivmoZAgPiBraXJpXCA7CivogYogPiByeW91XCA7CivmoYMgPiBtb21vXCA7CivmoYEgPiBrZXRhXCA7CivmoLwgPiBrYWt1XCA7CivpoLggPiBrdWJpXCA7CivogLMgPiBtaW1pXCA7CivpoKwgPiBob2hvXCA7CivpoJggPiByeW91XCA7CivmoJcgPiBrdXJpXCA7CivogIUgPiBtb25vXCA7CivpoIMgPiBnb3JvXCA7Civmn78gPiBrYWtpXCA7Civmn7UgPiBzYWt1XCA7Civkv64gPiBzaHV1XCA7Civmn5ogPiB5dXp1XCA7Civkv5cgPiB6b2t1XCA7Civmn5QgPiBueXV1XCA7Civnv5IgPiBzaHV1XCA7Civnv4wgPiB5b2t1XCA7Civkv4MgPiBzb2t1XCA7CivkvrUgPiBzaGluXCA7CivkvqEgPiBhdGFpXCA7Civnvp4gPiBzaHV1XCA7CivkvpsgPiB0b21vXCA7CivpnpggPiBzYXlhXCA7CivpnakgPiBrYXdhXCA7CivkvZwgPiBzYWt1XCA7CivmnZYgPiB0c3VlXCA7CivmnZEgPiBtdXJhXCA7CivmnY8gPiBhbnp1XCA7CivmnYkgPiBzdWdpXCA7CivkvL0gPiB0b2dpXCA7CivmnLQgPiBib2t1XCA7CivkvLQgPiB0b21vXCA7CivkvK8gPiBoYWt1XCA7CivmnK0gPiBmdWRhXCA7CivmnKwgPiBtb3RvXCA7CivpnKcgPiBraXJpXCA7CivkvJEgPiBreXV1XCA7CivkvI8gPiBmdWt1XCA7CivmnI0gPiBmdWt1XCA7CivpnIcgPiBzaGluXCA7Civpm7IgPiBrdW1vXCA7Civku7IgPiBuYWthXCA7Civku7AgPiBneW91XCA7Civku64gPiBrYXJpXCA7Civpm6ogPiB5dWtpXCA7Civmm50gPiBiYWt1XCA7Civku5YgPiBob2thXCA7Civpm4wgPiBtZXN1XCA7Civpm4YgPiBzaHV1XCA7Civku4QgPiBzb2t1XCA7CivkurogPiBoaXRvXCA7CivkuqsgPiBreW91XCA7CivkuqYgPiBtYXRhXCA7CivmmqIgPiBjaG91XCA7CivpmpwgPiBzaG91XCA7CivpmpkgPiBzdWtpXCA7CivpmpQgPiBrYWt1XCA7CivnuowgPiB6b2t1XCA7CivkuosgPiBrb3RvXCA7CivpmoYgPiByeXV1XCA7CivmmocgPiBoaW1hXCA7CivpmoUgPiBzdW1pXCA7CivkuoYgPiByeW91XCA7CivpmbggPiByb2t1XCA7CivmmbYgPiBzaG91XCA7CivpmbAgPiBrYWdlXCA7CivmmZ0gPiBjaHV1XCA7CivkuYsgPiBrb3JlXCA7CivkuYUgPiBreXV1XCA7CivmmYIgPiB0b2tpXCA7CivmmLwgPiBoaXJ1XCA7CivkuLggPiBtYXJ1XCA7CivmmK0gPiBzaG91XCA7CivkuK0gPiBuYWthXCA7CivmmKggPiBzYWt1XCA7CivnuKYgPiB0YXRlXCA7CivmmKUgPiBoYXJ1XCA7CivkuKEgPiByeW91XCA7CivnuJsgPiBiYWt1XCA7CivnuIsgPiB0c3VpXCA7CivkuIggPiBkYWtlXCA7CivmmIcgPiBzaG91XCA7CivnuIQgPiBuYXdhXCA7CivkuIAgPiBpY2hpXCA7Civml6ggPiBtdW5lXCA7Civml5cgPiBoYXRhXCA7Civml48gPiB6b2t1XCA7Civpl4cgPiB5YW1pXCA7Civml4UgPiB0YWJpXCA7Civntr8gPiB3YXRhXCA7Civplr4gPiB5b2t1XCA7Civntr4gPiByeW91XCA7CivplrIgPiBldHN1XCA7CivmlrAgPiBzaGluXCA7CivplqMgPiBrYWt1XCA7CivmlqUgPiBzZWtpXCA7CivplqIgPiBzZWtpXCA7CivntpogPiB6b2t1XCA7CivmlpkgPiByeW91XCA7CivplpEgPiBoaW1hXCA7CivmlpEgPiBtdXJhXCA7Civmlo4gPiB0b2tpXCA7CivntbkgPiBraW51XCA7CivmlbUgPiB0ZWtpXCA7CivntaYgPiBreXV1XCA7CivntaEgPiByYWt1XCA7CivmlZkgPiBreW91XCA7CivmlZEgPiBreXV1XCA7CivntYQgPiBrdW1pXCA7CivntLkgPiBzaG91XCA7CivmlLYgPiBzaHV1XCA7CivntLMgPiBzaGluXCA7CivmlKsgPiBrYWt1XCA7CivntKIgPiBzYWt1XCA7CivntJogPiBreXV1XCA7CivntJkgPiBrYW1pXCA7CivntJAgPiBoaW1vXCA7CivntIUgPiBiZW5pXCA7CivntIQgPiB5YWt1XCA7Civmk7EgPiBrYWt1XCA7Civns6cgPiByeW91XCA7CivmkrIgPiBib2t1XCA7CivnsqcgPiBzaG91XCA7CivnsqUgPiBrYXl1XCA7CivnsokgPiBrb25hXCA7CivmkoMgPiBnZWtpXCA7CivmkbogPiBzaG91XCA7CivnsbMgPiBrb21lXCA7CivnsaAgPiBrYWdvXCA7CivnsY0gPiBzZWtpXCA7CivpkJggPiBrYW5lXCA7CivpkJAgPiByeW91XCA7Civmj7ogPiB5dXJpXCA7Civnr60gPiBrYWdvXCA7Civnr6QgPiB0b2t1XCA7Civmj48gPiBieW91XCA7CivmjrQgPiBrYWt1XCA7CivnrrEgPiBoYWtvXCA7CivnrqEgPiBrdWRhXCA7CivpjbUgPiBrYWdpXCA7Civpja4gPiBjaHV1XCA7CivnrZYgPiBzYWt1XCA7CivpjYsgPiBuYWJlXCA7CivnrYsgPiBzdWppXCA7CivnrYkgPiBuYWRvXCA7CivnrYggPiBoYXp1XCA7CivnrYYgPiBmdWRlXCA7CivmjL4gPiBreW91XCA7CivnrLkgPiBzYXNhXCA7CivpjLIgPiByb2t1XCA7CivpjK8gPiBzYWt1XCA7CivmjK8gPiBzaGluXCA7CivnrKAgPiBrYXNhXCA7CivnrJEgPiBzaG91XCA7CivpjJAgPiBraXJpXCA7CivmjIcgPiB5dWJpXCA7Civnq7kgPiB0YWtlXCA7Civnq7YgPiBreW91XCA7Civnq68gPiBoYW5hXCA7Civnq6AgPiBzaG91XCA7Civmi5sgPiBzaG91XCA7Civmi40gPiBoYWt1XCA7Civmir0gPiBjaHV1XCA7Civnqq4gPiBreXV1XCA7CivnqpMgPiBtYWRvXCA7CivpipEgPiB6dWt1XCA7CivmioAgPiB3YXphXCA7Civmib8gPiBzaG91XCA7CivnqbogPiBzb3JhXCA7CivnqbYgPiBreXV1XCA7CivnqY0gPiBzZWtpXCA7CivmiYcgPiBvdWdpXCA7CivmiL8gPiBmdXNhXCA7CivpiLQgPiBzdXp1XCA7CivnqLEgPiBzaG91XCA7CivnqK4gPiB0YW5lXCA7CivmiJ8gPiBnZWtpXCA7CivmiJogPiBzZWtpXCA7CivmiJEgPiB3YXJlXCA7CivnqI0gPiB5YXlhXCA7CivnqIsgPiBob2RvXCA7CivnqIAgPiBtYXJlXCA7Civnp7AgPiBzaG91XCA7Civph6MgPiBjaG91XCA7Civph50gPiBoYXJpXCA7Civph5wgPiBrYW1hXCA7Civph5ggPiBrdWdpXCA7Civnp5IgPiBieW91XCA7Civnp4AgPiBzaHV1XCA7Civnpr8gPiBoYWdlXCA7CivmhqkgPiBpa29pXCA7CivphqQgPiBzaG91XCA7CivphpwgPiBzaHV1XCA7CivmhpQgPiBzaG91XCA7CivmhpEgPiBoeW91XCA7Civnpo8gPiBmdWt1XCA7CivnpoQgPiByb2t1XCA7Civmhb4gPiB5b2t1XCA7CivphbcgPiBrb2t1XCA7CivphawgPiBzaHV1XCA7CivnpZ4gPiBrYW1pXCA7CivphZIgPiBzYWtlXCA7CivmhYsgPiB6YW1hXCA7CivmhJUgPiBnYWt1XCA7Civpg7cgPiBreW91XCA7Civpg60gPiBrYWt1XCA7Civmg5wgPiBzZWtpXCA7Civmg5EgPiB3YWt1XCA7CivmgqogPiB3YXJ1XCA7CivnoqcgPiBoZWtpXCA7CivnoowgPiByb2t1XCA7CivmgoQgPiBzaG91XCA7Civmga0gPiBreW91XCA7CivpgakgPiB0ZWtpXCA7CivmgaUgPiBoYWppXCA7CivnoZ0gPiBzaG91XCA7CivmgZAgPiBreW91XCA7CivpgLggPiBpdHN1XCA7CivpgLIgPiBzaGluXCA7CivpgLEgPiBzaHV1XCA7CivmgK8gPiBreW91XCA7CivmgKUgPiBreXV1XCA7CivpgJ8gPiBzb2t1XCA7CivpgJogPiB0c3V1XCA7CivmgI4gPiBzaGluXCA7CivnoIIgPiBzdW5hXCA7Civov70gPiB0c3VpXCA7CivpvqUgPiB5YWt1XCA7CivpvqMgPiBrYWt1XCA7CivpvqAgPiB5YWt1XCA7Civpvp0gPiBzaHV1XCA7CivpvpQgPiBreW91XCA7Civpvo8gPiBreW91XCA7Civpvo0gPiByeXV1XCA7CivpvbogPiBzaHV1XCA7CivpvbEgPiBzZWt1XCA7CivpvbAgPiBzYWt1XCA7CivpvaogPiBzb2t1XCA7CivpvaggPiBreXV1XCA7CivpvaMgPiBrb21hXCA7CivpvaAgPiBjaG91XCA7CivpvZogPiBzYWt1XCA7CivpvZQgPiBzaGluXCA7CivpvZMgPiBzaGluXCA7CivpvYUgPiBreXV1XCA7CivpvLwgPiBneW91XCA7CivpvKsgPiBzZWtpXCA7CivpvKYgPiBjaG91XCA7CivpvJogPiBjaG91XCA7CivpvI8gPiBiZWtpXCA7CivpvIIgPiBjaG91XCA7Civpu7cgPiB0b2t1XCA7Civpu7AgPiBzaGluXCA7Civpu5EgPiBrb2t1XCA7Civpur8gPiBtYXJvXCA7CivpurQgPiBraWt1XCA7Civpuq8gPiBraWt1XCA7CivpuqggPiBzaG91XCA7Civpup4gPiBzaG91XCA7CivpupggPiBreW91XCA7Civpuo4gPiBzaGluXCA7CivpubYgPiBreW91XCA7CivpuaIgPiBnZWtpXCA7CivpuaEgPiBzZWtpXCA7CivpuLQgPiBrYWt1XCA7CivpuJkgPiB5YWt1XCA7CivpuJYgPiBrYWt1XCA7CivpuJEgPiBnYWt1XCA7CivpuJAgPiB0ZWtpXCA7CivpuIogPiBoZWtpXCA7Civpt70gPiBrYWt1XCA7Civpt7ggPiBpdHN1XCA7Civpt68gPiByeW91XCA7Civpt64gPiBreW91XCA7Civpt6YgPiBzaG91XCA7Civpt58gPiBzYWt1XCA7Civpt5ogPiByeXV1XCA7Civpt4ogPiBnZWtpXCA7Civpt4EgPiBnZWtpXCA7CivptrogPiBzZWtpXCA7CivptrkgPiByeXV1XCA7CivptrggPiBqYWt1XCA7Civptq4gPiBrb2t1XCA7CivptqogPiBrZWtpXCA7CivptqkgPiBib2t1XCA7CivptpogPiBnYWt1XCA7CivptpYgPiBzaHV1XCA7CivptpMgPiBieW91XCA7CivptpIgPiBzZWtpXCA7CivptoMgPiBnZWtpXCA7CivptbIgPiBqYWt1XCA7CivptbAgPiBjaG91XCA7CivptakgPiBmdWt1XCA7CivptaIgPiBzaGluXCA7CivptaAgPiBrb2t1XCA7CivptZ8gPiBreW91XCA7CivptZkgPiBtb3p1XCA7CivptZQgPiBzaHVuXCA7CivptYcgPiB0b2tpXCA7CivptYUgPiByYWt1XCA7CivptYMgPiBjaHV1XCA7CivptYIgPiBreXV1XCA7CivptKogPiBpdHN1XCA7CivptKggPiBrYW1vXCA7CivptJcgPiByeXV1XCA7CivptIcgPiB0b2tpXCA7CivptIYgPiBjaGluXCA7Civps6YgPiBpdHN1XCA7CivpsowgPiBoYWt1XCA7CivpsbcgPiBnYWt1XCA7CivpsbYgPiBmdWthXCA7CivpsbUgPiBzaGluXCA7CivpsbIgPiByeW91XCA7CivpsaggPiBzaG91XCA7CivpsacgPiBoYW1vXCA7CivpsZwgPiBreW91XCA7CivpsZogPiBraXN1XCA7CivpsZggPiBzaGluXCA7CivpsZIgPiBtYXN1XCA7CivpsY8gPiBzaGluXCA7CivpsY4gPiBreW91XCA7CivpsYogPiBpdHN1XCA7CivpsYYgPiBzaG91XCA7CivpsYUgPiBzaG91XCA7CivpsYMgPiBzaHV1XCA7CivpsYIgPiBzaG91XCA7CivpsL4gPiBoeW91XCA7CivpsL0gPiBzaHV1XCA7CivpsLcgPiBjaG91XCA7CivpsK0gPiBoaXJlXCA7CivpsKggPiBjaG91XCA7CivpsKQgPiBidXJpXCA7CivpsKEgPiByeXV1XCA7CivpsJkgPiBoYXlhXCA7CivpsJAgPiB3YW5pXCA7CivpsIIgPiBzb2t1XCA7Civpr70gPiBzZWtpXCA7Civpr6ogPiByeW91XCA7Civpr6cgPiBzaG91XCA7Civpr6UgPiByaWt1XCA7Civpr5cgPiBzaG91XCA7Civpr5YgPiBzYWJhXCA7Civpr5QgPiBib3JhXCA7Civpr44gPiB1Z3VpXCA7Civpr4ogPiBoYXplXCA7Civprr8gPiBjaG91XCA7CivprrwgPiBzaGluXCA7CivprrkgPiB0YWtvXCA7CivprrQgPiBnb3JpXCA7CivprrIgPiBtYXRlXCA7CivprrEgPiBib3JhXCA7CivprqsgPiBzYW1lXCA7CivprqAgPiBoYXlhXCA7Civprp0gPiBzaG91XCA7CivprpIgPiBmdW5hXCA7CivproogPiBoYWt1XCA7CivprokgPiBjaG91XCA7CivprbkgPiB0b2RvXCA7CivprasgPiBzaGluXCA7CivpraEgPiB0ZWtpXCA7CivprZcgPiBzaHV1XCA7CivprY4gPiByeW91XCA7CivprYggPiBzaG91XCA7CivprYQgPiBoYWt1XCA7CivprLogPiBzaG91XCA7CivprLIgPiByZWtpXCA7CivprLAgPiB1dHN1XCA7CivprK8gPiBjaG91XCA7CivprK4gPiBreXV1XCA7CivprKkgPiBnZWtpXCA7CivprJsgPiByeW91XCA7CivprJIgPiBzaGluXCA7CivprIYgPiBzaG91XCA7Civpq7kgPiBreXV1XCA7Civpq6sgPiBjaG91XCA7Civpq6QgPiBreXV1XCA7Civpq58gPiBoeW91XCA7Civpq5wgPiBreW91XCA7Civpq5EgPiB0b2t1XCA7Civpq44gPiByeW91XCA7Civpq4YgPiBoYWt1XCA7CivpqrwgPiBrYWt1XCA7CivpqrIgPiBoYWt1XCA7Civpqq4gPiB5b2t1XCA7Civpqq0gPiBoYWdpXCA7Civpqo4gPiBzaGluXCA7CivpqokgPiBoeXV1XCA7CivpqasgPiBoeXV1XCA7CivpqZ8gPiBzaHV1XCA7CivpqZ0gPiB0YWt1XCA7CivpqZUgPiBreW91XCA7CivpqZEgPiByeXV1XCA7CivpqY0gPiBneW91XCA7CivpqYMgPiBoeW91XCA7CivpqYAgPiBiYWt1XCA7CivpqLYgPiBzaHV1XCA7CivpqLMgPiB0b2t1XCA7CivpqK4gPiByeXV1XCA7CivpqJ4gPiBrYWt1XCA7Civpp78gPiBzaHVuXCA7Civpp7ggPiBzaGluXCA7Civpp7UgPiByeXV1XCA7Civpp7IgPiBzaHV1XCA7Civpp7EgPiByYWt1XCA7Civpp64gPiBoYWt1XCA7Civpp6ogPiBzaGluXCA7Civpp4EgPiBiYWt1XCA7Civppr0gPiBjaHV1XCA7CivpprIgPiB0YWt1XCA7CivpprAgPiB0ZWtpXCA7Civppq4gPiBoeW91XCA7CivppqUgPiBmdWt1XCA7CivpppggPiBrYWt1XCA7CivppZ8gPiBzaG91XCA7CivppZcgPiBreW91XCA7CivppYggPiBzaHV1XCA7CivppL4gPiByeXV1XCA7CivppLogPiBoYWt1XCA7CivppKYgPiBjaG91XCA7CivppJcgPiBzb2t1XCA7CivppJUgPiBzaHVuXCA7CivppIkgPiBzaG91XCA7Civpo6UgPiB0YWt1XCA7Civpo4ggPiBoeW91XCA7Civpo4cgPiBoeW91XCA7Civpo4YgPiBoeW91XCA7Civpo4UgPiByeXV1XCA7Civpo4QgPiBoeW91XCA7Civpo4MgPiBoeW91XCA7Civpo4IgPiByeXV1XCA7CivporcgPiBoeW91XCA7Civpoq4gPiBoeW91XCA7CivpobMgPiBzaG91XCA7CivpoaYgPiBzaG91XCA7CivpoZYgPiBzaGluXCA7CivpoZIgPiBneW91XCA7CivpoLAgPiBreW91XCA7CivpoKMgPiBzaGluXCA7CivpoJ4gPiBhdHN1XCA7CivpoJkgPiBzYWt1XCA7CivpoJQgPiB0ZWtpXCA7CivpoIwgPiBzaG91XCA7Civpn7cgPiByYWt1XCA7Civpn7YgPiBzaG91XCA7Civpn64gPiBuaXJhXCA7Civpn60gPiBreXV1XCA7Civpn5ggPiBzaG91XCA7Civpn5QgPiBjaG91XCA7Civpn4cgPiB0b2t1XCA7Civpn4EgPiBreW91XCA7CivpnrkgPiBrYWt1XCA7CivpnrQgPiBmdWt1XCA7CivpnqsgPiBraWt1XCA7CivpnqYgPiBzaHV1XCA7CivpnqIgPiBzaG91XCA7CivpnqAgPiBtYXJpXCA7Civpnp8gPiBrYWt1XCA7Civpno8gPiBreW91XCA7CivpnoYgPiB0b21vXCA7Civpna4gPiB0ZWtpXCA7CivpnZUgPiBzaGluXCA7CivpnY8gPiBrYWt1XCA7CivpnY4gPiBrYWt1XCA7CivpnYQgPiBtb3lhXCA7CivpnYMgPiBrYWt1XCA7CivpnYIgPiByZWtpXCA7CivpnLkgPiBoZWtpXCA7CivpnLggPiBoYWt1XCA7CivpnLMgPiByeXV1XCA7CivpnLEgPiBpdHN1XCA7CivpnKQgPiByeXV1XCA7CivpnKIgPiBiYWt1XCA7CivpnKEgPiBiYWt1XCA7CivpnI0gPiBrYWt1XCA7CivpnIUgPiBzaG91XCA7CivpnIQgPiBzaG91XCA7CivpnIMgPiBjaGluXCA7CivpnIIgPiBib2t1XCA7Civpm7kgPiBoeW91XCA7Civpm5ggPiB3YWt1XCA7Civpm5UgPiBjaG91XCA7Civpm5IgPiByYWt1XCA7Civpm4kgPiBraWppXCA7CivpmrsgPiBzZWtpXCA7CivpmrogPiBrb2t1XCA7Civpmp8gPiBnZWtpXCA7Civpmb8gPiBreW91XCA7CivpmbMgPiBjaGluXCA7CivpmZ4gPiBzaG91XCA7CivpmZcgPiBzaG91XCA7CivpmYwgPiBoYWt1XCA7CivpmJ4gPiByb2t1XCA7Civpl6IgPiBoZWtpXCA7Civpl58gPiBreXV1XCA7Civpl50gPiBoeW91XCA7Civpl5YgPiBjaGluXCA7Civpl4MgPiBnZWtpXCA7CivplrYgPiBzaG91XCA7CivplrQgPiBrZWtpXCA7CivplrEgPiBldHN1XCA7CivplqAgPiB0YW1hXCA7CivplpYgPiB5dXJ1XCA7CivploQgPiBrb2t1XCA7CivplbkgPiBreXV1XCA7CivplbggPiBjaG91XCA7CivplaAgPiByeXV1XCA7CivplLogPiBzaG91XCA7CivpkoEgPiBrYWt1XCA7Civpkb8gPiBub21pXCA7CivpkbAgPiB5YWt1XCA7Civpka4gPiBoYWt1XCA7CivpkaMgPiBoeW91XCA7CivpkaEgPiBzYWt1XCA7CivpkZ8gPiB0b2t1XCA7CivpkZwgPiBzaG91XCA7CivpkZMgPiB5YXJpXCA7CivpkYogPiBrYWt1XCA7CivpkYQgPiBjaHV1XCA7CivpkYMgPiB0eW91XCA7CivpkLggPiB0YWt1XCA7CivpkLQgPiBoZWtpXCA7CivpkLIgPiB0YWt1XCA7CivpkJQgPiBzaGluXCA7CivpkI4gPiBzaG91XCA7CivpkIggPiBreW91XCA7CivpkIIgPiByeXV1XCA7Civpj70gPiBzaHV1XCA7Civpj7kgPiBreW91XCA7Civpj7cgPiBob2t1XCA7Civpj6YgPiBzaG91XCA7Civpj6UgPiBzaHV1XCA7Civpj6IgPiBoeW91XCA7Civpj5sgPiBzaG91XCA7Civpj5ggPiBzaG91XCA7Civpj5EgPiB0ZWtpXCA7Civpj5AgPiByeXV1XCA7Civpj4wgPiBiYWt1XCA7Civpj4ogPiBneW91XCA7Civpj4MgPiB6b2t1XCA7CivpjrQgPiBzb2t1XCA7CivpjrAgPiBpdHN1XCA7Civpjq4gPiBjaGluXCA7Civpjq0gPiBjaGluXCA7CivpjqggPiBzaHVuXCA7CivpjqYgPiByeXV1XCA7CivpjpsgPiBoYWt1XCA7CivpjpogPiB0c3VpXCA7CivpjpggPiByZWtpXCA7CivpjpAgPiBzb2t1XCA7Civpjo8gPiByeXV1XCA7Civpjo0gPiBzYWt1XCA7CivpjowgPiBrYW1hXCA7CivpjoAgPiBzaHV1XCA7Civpjb4gPiBzaG91XCA7CivpjbwgPiBoYXJpXCA7CivpjbYgPiBzaG91XCA7CivpjawgPiBrdXdhXCA7CivpjZYgPiBjaGluXCA7CivpjLcgPiBhdHN1XCA7CivpjLYgPiBoeW91XCA7CivpjLQgPiByb2t1XCA7CivpjKsgPiBzdXp1XCA7CivpjKkgPiBzaG91XCA7CivpjJ4gPiBzaHVuXCA7CivpjIYgPiBzYWJpXCA7CivpjIQgPiByb2t1XCA7CivpjIIgPiByeW91XCA7Civpi78gPiBzaG91XCA7Civpi7kgPiBjaG91XCA7Civpi7MgPiBjaHV1XCA7Civpi7IgPiBieW91XCA7Civpi6QgPiBzdWtpXCA7Civpi6AgPiBzaGluXCA7Civpi5wgPiBzYWt1XCA7Civpi4ggPiB5b2t1XCA7Civpir8gPiBzaG91XCA7CivpirkgPiBzaHV1XCA7CivpirggPiBzaG91XCA7CivpircgPiBzaG91XCA7CivpirYgPiBreXV1XCA7CivpipsgPiBtb3JpXCA7Civpio4gPiBreW91XCA7CivpiokgPiBpdHN1XCA7Civpib4gPiBob2tvXCA7CivpibsgPiByYWt1XCA7Civpia4gPiBzaGluXCA7CivpiaYgPiBrYW5lXCA7CivpiZ4gPiBldHN1XCA7CivpiZ0gPiByeXV1XCA7CivpiZogPiByeXV1XCA7CivpiZEgPiBoYWt1XCA7CivpiZAgPiBzZWtpXCA7CivpiYogPiBzaG91XCA7CivpiL4gPiBjaHV1XCA7CivpiLwgPiBzYWt1XCA7CivpiKwgPiB0YWt1XCA7CivpiJUgPiBjaHV1XCA7CivpiJQgPiBzaG91XCA7CivpiI4gPiBrYWdpXCA7CivpiIwgPiBldHN1XCA7CivpiIogPiBzaGluXCA7Civph70gPiBoZWtpXCA7Civph7sgPiBreXV1XCA7Civph6UgPiBzaG91XCA7Civph54gPiBzaHV1XCA7Civph5sgPiBrb2t1XCA7Civph5ogPiBreXV1XCA7Civph5kgPiBoYWt1XCA7Civph5cgPiBzaG91XCA7Civph5QgPiBpdHN1XCA7Civph5MgPiBoeXV1XCA7Civph48gPiByeW91XCA7Civph4IgPiBzaG91XCA7CivphrsgPiBzaHV1XCA7Civphq4gPiBzaG91XCA7Civphq0gPiBob2t1XCA7CivphqwgPiBzaG91XCA7CivphpUgPiBzaHVuXCA7CivphosgPiBzYWt1XCA7CivphocgPiBzaHVuXCA7CivphbEgPiBzaG91XCA7CivphaogPiByYWt1XCA7CivphacgPiBzaHV1XCA7CivphZkgPiBzaGluXCA7CivphY4gPiBjaHV1XCA7CivphYsgPiBzaHV1XCA7CivphYkgPiB0b3JpXCA7CivphLkgPiBzaHV1XCA7CivphLQgPiBneW91XCA7CivphKkgPiBzaGluXCA7CivphKUgPiBreW91XCA7CivphKMgPiBzaG91XCA7CivphJogPiBiYWt1XCA7CivphJkgPiBoaW5hXCA7CivphJUgPiBreW91XCA7CivphIkgPiBreW91XCA7CivphIIgPiBnYWt1XCA7CivphIAgPiBqYWt1XCA7Civpg7QgPiBjaGluXCA7Civpg7AgPiBzaHV1XCA7Civpg6QgPiBnZWtpXCA7Civpg50gPiBrYWt1XCA7Civpg4cgPiBzaHVuXCA7Civpg4QgPiBrZWtpXCA7CivpgrUgPiBzaG91XCA7CivpgrEgPiBreXV1XCA7CivpgqYgPiBrdW5pXCA7CivpgqUgPiBzaGluXCA7CivpgpsgPiBreW91XCA7CivpgosgPiByeW91XCA7CivpgoggPiBiYWt1XCA7CivpgbwgPiByeW91XCA7CivpgbkgPiBpdHN1XCA7CivpgawgPiBzb2t1XCA7CivpgacgPiBzaG91XCA7CivpgZsgPiByeXV1XCA7CivpgZIgPiBzaHV1XCA7CivpgY8gPiBhdHN1XCA7CivpgYwgPiBnYWt1XCA7CivpgLcgPiBrZWtpXCA7CivpgLQgPiB0YWt1XCA7CivpgKogPiBzYWt1XCA7CivpgKkgPiBrYW11XCA7CivpgKcgPiBzYWtvXCA7CivpgKEgPiBzaHVuXCA7CivpgJsgPiBreW91XCA7CivpgJYgPiB0ZWtpXCA7CivpgJEgPiBreXV1XCA7CivpgI4gPiBzaHV1XCA7CivpgI0gPiBzaG91XCA7Civov7kgPiBzZWtpXCA7Civov64gPiBzYWt1XCA7Civov6ogPiB0ZWtpXCA7Civov6IgPiBjaG91XCA7Civov6AgPiBzaG91XCA7Civov40gPiBjaHVuXCA7CivovrggPiBzaG91XCA7Civovp8gPiBoZWtpXCA7CivovaMgPiByZWtpXCA7CivovaIgPiByZWtpXCA7CivovY4gPiBreW91XCA7CivovYwgPiBzb3JpXCA7CivovYYgPiByb2t1XCA7CivovYMgPiBzaGluXCA7CivovYIgPiBrb2t1XCA7CivovLsgPiBmdWt1XCA7CivovLkgPiBmdWt1XCA7CivovLQgPiBjaHVuXCA7CivovKwgPiByeW91XCA7CivovKcgPiBieW91XCA7CivovJsgPiByeW91XCA7CivovJkgPiBjaG91XCA7CivovJggPiByeW91XCA7CivovJYgPiBzaHV1XCA7CivovJIgPiBjaG91XCA7CivovIwgPiByeW91XCA7CivovIggPiBjaHV1XCA7Civou78gPiBieW91XCA7Civou7wgPiBpdHN1XCA7Civou7ggPiBqaWt1XCA7Civou60gPiBreW91XCA7Civou6sgPiBzaGluXCA7Civou4sgPiBhdHN1XCA7CivourMgPiBreXV1XCA7CivouqwgPiBreXV1XCA7Civoup4gPiBzaG91XCA7CivoupIgPiByZWtpXCA7CivoupAgPiByeW91XCA7CivouoQgPiBoZWtpXCA7CivouoMgPiBoZWtpXCA7CivoubwgPiBib2t1XCA7CivoubsgPiBreW91XCA7CivoubogPiBreW91XCA7CivoubEgPiBzaG91XCA7CivoubAgPiBzaHV1XCA7CivouaQgPiBzaG91XCA7CivouaIgPiB0ZWtpXCA7CivouZAgPiBzZWtpXCA7CivouYwgPiBzaG91XCA7CivouYAgPiBjaG91XCA7CivouLggPiBjaGluXCA7CivouLMgPiBzaHVuXCA7CivouLEgPiB0YWt1XCA7CivouKogPiBzaG91XCA7CivouKIgPiB0ZWtpXCA7CivouJYgPiBzZWtpXCA7CivouIkgPiByeW91XCA7CivouIYgPiBzaHVuXCA7CivouIQgPiBoYWt1XCA7Civot6sgPiBreW91XCA7Civot5YgPiBzZWtpXCA7Civot5UgPiBjaG91XCA7Civot4UgPiB0YWt1XCA7CivotrsgPiBjaGluXCA7CivotrUgPiBoYWt1XCA7CivotqwgPiBreW91XCA7CivotqsgPiBreW91XCA7CivotqAgPiB0YWt1XCA7CivotpkgPiBjaG91XCA7CivotoIgPiBjaGluXCA7CivotoEgPiBjaGluXCA7CivotbMgPiBreXV1XCA7CivotaUgPiBrZWtpXCA7CivotJAgPiBzaGluXCA7CivotIsgPiBuaXNlXCA7Civos74gPiBzYWt1XCA7Civos7AgPiBzaHVuXCA7Civos60gPiBrYWtlXCA7Civos6wgPiBjaG91XCA7Civos54gPiBzaG91XCA7Civos50gPiBjaGluXCA7Civos5kgPiBzaHV1XCA7Civos5UgPiBreXV1XCA7CivosrogPiBreW91XCA7CivospggPiBiYWt1XCA7CivospMgPiBieW91XCA7CivosoogPiBoYWt1XCA7CivosokgPiBrYWt1XCA7CivosoUgPiBreXV1XCA7CivosoIgPiBjaG91XCA7CivosbkgPiBoeW91XCA7CivosZogPiBidXRhXCA7CivorqwgPiB0YWt1XCA7Civorp8gPiB0b2t1XCA7CivorpYgPiBzaGluXCA7CivorpAgPiBzaHV1XCA7Civoro4gPiBzaHV1XCA7Civoro0gPiBnYWt1XCA7CivorosgPiBzaG91XCA7CivoroUgPiBzaGluXCA7CivoroEgPiB0YWt1XCA7CivorbggPiBjaHV1XCA7CivorZsgPiBzaGluXCA7CivorZkgPiBzaG91XCA7CivorZYgPiBzaGluXCA7CivorYUgPiBzaHV1XCA7CivorLcgPiBneW91XCA7CivorKsgPiB0YWt1XCA7CivorJ4gPiBrYWt1XCA7CivorIsgPiBrYWt1XCA7Civoq78gPiBzaHV1XCA7Civoq74gPiBkYWt1XCA7Civoq7YgPiBzaGluXCA7Civoq6QgPiBnYWt1XCA7Civoq5wgPiBjaG91XCA7Civoq5cgPiBzaGluXCA7Civoq5IgPiByeW91XCA7Civoq5EgPiB0YWt1XCA7Civoq4ogPiBraWt1XCA7Civoq4MgPiBjaGluXCA7Civoqq8gPiBzaG91XCA7CivoqqYgPiBzaG91XCA7CivoqpogPiBzaG91XCA7CivoqpEgPiBreW91XCA7CivoqoYgPiBreW91XCA7CivoqoUgPiBjaHV1XCA7Civoqb4gPiBreW91XCA7CivoqbsgPiBnYWt1XCA7CivoqbYgPiBzaHV1XCA7CivoqbUgPiBzaGluXCA7CivoqZcgPiBreW91XCA7CivoqLsgPiBjaHV1XCA7CivoqLcgPiBzaGluXCA7CivoqKsgPiBzaGluXCA7CivoqKYgPiBzaGluXCA7CivoqKAgPiBzaGluXCA7CivoqIUgPiBreXV1XCA7CivoqIQgPiBreXV1XCA7Civop7QgPiBzaG91XCA7Civop7MgPiBrb2t1XCA7Civop6sgPiBzb2t1XCA7Civop6kgPiBreXV1XCA7Civopr8gPiB0ZWtpXCA7CivopqEgPiBnZWtpXCA7CivoppwgPiBjaG91XCA7CivoppsgPiBiaWtpXCA7CivoppMgPiBiZWtpXCA7CivoppAgPiBrYWt1XCA7CivopoggPiBrYWt1XCA7CivopbUgPiBzaG91XCA7Civopa8gPiBzaGluXCA7Civopa4gPiBoYWt1XCA7CivopasgPiBzZWtpXCA7CivopZ4gPiBoaWRhXCA7CivopZcgPiB0YWt1XCA7CivopYYgPiBob2t1XCA7CivopYIgPiBzaGluXCA7CivopYAgPiBzZWtpXCA7CivopL4gPiBoeW91XCA7CivopLogPiBjaG91XCA7CivopLYgPiBjaG91XCA7CivopLEgPiBrYWllXCA7CivopKUgPiBqb2t1XCA7CivopI4gPiBzaHV1XCA7CivopIEgPiBzZWtpXCA7Civoo7wgPiBzZWtpXCA7Civoo7IgPiByeW91XCA7Civoo7EgPiBoeW91XCA7Civoo68gPiBjaHV1XCA7Civoo5sgPiB5b3V1XCA7Civoo5ggPiBreXV1XCA7Civoo5MgPiBrb2t1XCA7Civoo5EgPiBzaGluXCA7Civoo4QgPiB5dWtpXCA7CivoorEgPiBmdWt1XCA7CivoorAgPiBob3JvXCA7CivoopcgPiBzaGluXCA7CivoobEgPiBreW91XCA7CivooaAgPiBzaHVuXCA7CivooYkgPiBrYWt1XCA7CivooYQgPiBqaWt1XCA7CivooYIgPiBqaWt1XCA7CivooLAgPiBzaG91XCA7CivooK4gPiBldHN1XCA7CivooKggPiBzaG91XCA7CivooJogPiBrYWt1XCA7CivooJYgPiBrYWt1XCA7CivooIEgPiBreW91XCA7Civon7kgPiBrYW5pXCA7Civon68gPiBneW91XCA7Civon60gPiBzaG91XCA7Civon58gPiByeW91XCA7Civon5wgPiBreW91XCA7Civon44gPiBkYW5pXCA7Civon4kgPiByeXV1XCA7Civon4ggPiBrYWt1XCA7Civon4cgPiBoaWtpXCA7Civon4YgPiBoaWtpXCA7Civonr8gPiBzaG91XCA7Civonr0gPiBzaHV1XCA7CivonrUgPiBoeW91XCA7CivonqsgPiBzZWtpXCA7CivonpMgPiBzaGluXCA7CivonosgPiBzaHV1XCA7CivonbYgPiBjaG91XCA7CivonaQgPiBzaHV1XCA7CivonY0gPiBzb2t1XCA7CivonL0gPiByeW91XCA7CivonK4gPiB5b2t1XCA7CivonKkgPiBjaG91XCA7CivonKggPiBzaG91XCA7CivonKUgPiBzZWtpXCA7CivonKMgPiBreW91XCA7CivonJkgPiBzaG91XCA7CivonJAgPiBreW91XCA7CivonIQgPiBzaGluXCA7Civom7ogPiBreW91XCA7Civom7ggPiB0YWtvXCA7Civom60gPiBoaXJ1XCA7Civom6wgPiBreW91XCA7Civom6kgPiBreW91XCA7Civom5IgPiBrYWt1XCA7Civom4EgPiBjaG91XCA7CivomrggPiByZWtpXCA7CivomrEgPiBzYWt1XCA7Civomq8gPiBreXV1XCA7CivomosgPiBidXlvXCA7CivombkgPiBuaWppXCA7Civoma8gPiBreXV1XCA7CivomawgPiBreXV1XCA7CivomakgPiBrZWtpXCA7CivomZkgPiBodWt1XCA7CivomYggPiBreW91XCA7CivomL0gPiByeXV1XCA7CivomJcgPiBoYWt1XCA7CivomJIgPiBoYWdpXCA7CivomIYgPiBhc2hpXCA7CivomIAgPiB0YWt1XCA7Civol78gPiBrYWt1XCA7Civol7YgPiByZWtpXCA7Civol60gPiBreXV1XCA7Civol6ogPiB5YWJ1XCA7Civol6ggPiBoeW91XCA7Civol6AgPiBreW91XCA7Civol5AgPiBiYWt1XCA7Civol44gPiBzaGluXCA7Civol4sgPiBjaG91XCA7Civolr0gPiBzaGluXCA7CivolrwgPiBjaGluXCA7CivolrggPiBoeW91XCA7CivolpwgPiBoZWtpXCA7CivolpMgPiBzaGluXCA7CivolpEgPiBreW91XCA7Civolo8gPiB5b2t1XCA7CivolowgPiBreW91XCA7CivolbogPiBzaHV1XCA7Civola0gPiBzaG91XCA7CivolaogPiBrYWJ1XCA7CivolaMgPiBzaHVuXCA7CivolZogPiBnYWt1XCA7CivolZcgPiBmdWtpXCA7CivolZAgPiBrdXdhXCA7CivolYkgPiBzaG91XCA7CivolYggPiBzaGluXCA7CivolK8gPiBjaGluXCA7CivolKMgPiBzaG91XCA7CivolJ8gPiB6b2t1XCA7CivolJogPiB1dHN1XCA7CivolJggPiBzaGluXCA7CivolJUgPiBoZXRhXCA7CivolJQgPiBmdWt1XCA7CivolJAgPiB0ZWtpXCA7CivolI8gPiBzaG91XCA7CivolIwgPiBzb2t1XCA7CivolIcgPiBraWtlXCA7CivolIYgPiByeW91XCA7CivolIMgPiBreW91XCA7Civok7wgPiB0YWRlXCA7Civok7sgPiBzaHV1XCA7Civok7QgPiBzaHVuXCA7Civok7IgPiBreXV1XCA7Civok6cgPiBzaG91XCA7Civok5ogPiBjaG91XCA7Civok5EgPiBtaW5vXCA7Civok5AgPiBqb2t1XCA7Civok4EgPiBzaGluXCA7CivokrQgPiBzYWt1XCA7CivokqogPiBoYWt1XCA7CivokqYgPiB3YWt1XCA7CivokpYgPiBzaGluXCA7CivokpAgPiBzaHV1XCA7CivokosgPiBzaG91XCA7CivokbogPiBzaHV1XCA7CivokbQgPiBzaGluXCA7CivokbEgPiBuZWdpXCA7Civoka8gPiB5YWt1XCA7CivokaQgPiBjaHV1XCA7CivokaAgPiBzaGluXCA7CivokZsgPiBrdXp1XCA7CivokZogPiBjaGluXCA7CivokZkgPiBzaG91XCA7CivokY0gPiBodWt1XCA7CivokLwgPiBnYWt1XCA7CivokKogPiBrdXdhXCA7CivokKkgPiBoYWdpXCA7CivokKIgPiB5YWppXCA7CivokJsgPiBreXV1XCA7CivokIcgPiBjaG91XCA7CivokIUgPiBzaHVuXCA7Civoj7EgPiByeW91XCA7Civoj6ggPiBzaG91XCA7Civoj5YgPiBzaG91XCA7Civoj5QgPiBob2t1XCA7Civoj5AgPiBob2t1XCA7CivojpwgPiB0ZWtpXCA7CivojpggPiBzaGluXCA7Civojo0gPiBreXV1XCA7CivojoAgPiBzaGluXCA7CivojY0gPiBreW91XCA7CivojL0gPiBjaHV1XCA7CivojLogPiBzaHV1XCA7CivojK8gPiBmdWt1XCA7CivojK4gPiBzaG91XCA7CivojK0gPiBrZWtpXCA7CivojJ8gPiBpdHN1XCA7CivojJ4gPiBzaGluXCA7CivojJYgPiBrYWt1XCA7Civoi5wgPiBib2t1XCA7Civoi5kgPiByeXV1XCA7Civoi5UgPiBjaG91XCA7Civoi4YgPiBzdXNhXCA7CivoirkgPiBzZXJpXCA7CivoirIgPiBrdXdhXCA7Civoiq8gPiBzaGluXCA7CivoiqggPiBreXV1XCA7CivoipIgPiBub2dpXCA7Civoio4gPiBreXV1XCA7CivoioAgPiBzaG91XCA7Civoib0gPiBreXV1XCA7CivoibsgPiByb2t1XCA7CivoiasgPiB0b21vXCA7CivoiacgPiB3YWt1XCA7CivoiaIgPiBzaG91XCA7CivoiZ0gPiBzb3JpXCA7CivoiY8gPiBzaHV1XCA7CivoiLUgPiBrYWppXCA7CivoiLQgPiB0YWt1XCA7CivoiJwgPiBzaHVuXCA7CivoiI8gPiBreXV1XCA7CivoiIIgPiBzaG91XCA7Civoh7sgPiBzaGluXCA7Civoh7kgPiBzaHV1XCA7Civoh7UgPiBrYWt1XCA7Civoh7AgPiBzaHV1XCA7Civoh6sgPiBreW91XCA7Civoh5sgPiBrb2t1XCA7Civoh5UgPiBoeW91XCA7CivohrIgPiBzaG91XCA7Civohq4gPiBreW91XCA7CivohqQgPiB0YXJhXCA7CivohpggPiBoeW91XCA7CivohpUgPiBrYWt1XCA7CivohpMgPiBjaG91XCA7CivohosgPiByeW91XCA7CivohoogPiBoYWt1XCA7CivohoggPiBrYWt1XCA7CivohoQgPiBzaHV1XCA7CivohoMgPiBvdHN1XCA7Civohb8gPiBtb21vXCA7Civohb0gPiBvdHN1XCA7Civoha0gPiBnYWt1XCA7CivohZggPiBrYWt1XCA7CivohYogPiBzZWtpXCA7CivohLwgPiByeW91XCA7CivohLkgPiBjaG91XCA7CivohKkgPiBzaHV1XCA7CivohKQgPiBzaGluXCA7CivohJsgPiBzdW5lXCA7CivohIsgPiBreW91XCA7Civog7ogPiBhdHN1XCA7Civog7MgPiBrYWt1XCA7Civog6QgPiB0YW5lXCA7Civog5cgPiBzaGluXCA7Civog4QgPiBjaHV1XCA7CivogrEgPiBoaWppXCA7CivogqsgPiBzaHVuXCA7CivogqEgPiBtb21vXCA7CivogoggPiBjaG91XCA7CivogocgPiBjaG91XCA7CivogoEgPiBjaG91XCA7Civogb8gPiBpdHN1XCA7CivogbwgPiBjaG91XCA7CivogYQgPiBzaGluXCA7CivogLQgPiBjaG91XCA7CivogKQgPiBzZWtpXCA7Civnv7kgPiBneW91XCA7Civnv7IgPiBoeW91XCA7Civnv68gPiBrb2t1XCA7Civnv64gPiBrYWt1XCA7Civnv58gPiBrZWtpXCA7Civnv5UgPiBreXV1XCA7Civnv5QgPiBzaG91XCA7Civnv48gPiByeXV1XCA7Civnv4ogPiB5b2t1XCA7Civnv4AgPiBjaHV1XCA7CivnvpcgPiBreW91XCA7CivnvowgPiBreW91XCA7CivnvoMgPiBiZWtpXCA7CivnvoAgPiByeXV1XCA7Civnvb8gPiBzaG91XCA7CivnvbYgPiByeXV1XCA7Civnva0gPiB5b2t1XCA7CivnvacgPiBzaGluXCA7CivnvaAgPiB3YW5hXCA7CivnvYUgPiBoaWJpXCA7CivnupUgPiBzaG91XCA7CivnuoYgPiBib2t1XCA7Civnua4gPiBreW91XCA7Civnua0gPiBtYXl1XCA7CivnuaYgPiBreW91XCA7CivnuaEgPiBzaHV1XCA7CivnuZogPiByeW91XCA7CivnuZIgPiBzaG91XCA7CivnuY0gPiBzaHV1XCA7CivnuYggPiBreW91XCA7CivnuYYgPiBreXV1XCA7CivnuL4gPiBzZWtpXCA7CivnuLkgPiBoeW91XCA7CivnuLYgPiBjaHV1XCA7CivnuKAgPiBrb2t1XCA7CivnuJ8gPiBqb2t1XCA7CivnuJ0gPiBzaGluXCA7CivnuJAgPiBzaHV1XCA7CivnuIkgPiBzaGluXCA7Civnt7IgPiBieW91XCA7Civnt50gPiBzaHV1XCA7Civnt5kgPiBrYWt1XCA7Civnt5cgPiBzaG91XCA7Civnt44gPiB5b2t1XCA7Civnt4YgPiBzZWtpXCA7Civnt4UgPiBzaHV1XCA7Civnt4MgPiBzaG91XCA7CivntrkgPiByeXV1XCA7CivntrYgPiBrdXdhXCA7CivntqcgPiBzaHVuXCA7CivntqIgPiBjaHV1XCA7Civntp0gPiBjaGluXCA7CivntpsgPiBrYXNlXCA7CivntowgPiBrZWtpXCA7CivntoUgPiBzaGluXCA7CivntoMgPiBzaG91XCA7Civntb8gPiBreXV1XCA7CivntYggPiBiYWt1XCA7CivntL4gPiBzaGluXCA7CivntKwgPiBjaHV1XCA7CivntJYgPiBjaGluXCA7CivntIMgPiBzaHVuXCA7CivntIIgPiBjaHV1XCA7Civns74gPiBreXV1XCA7Civns7ogPiBreXV1XCA7Civns7YgPiBjaG91XCA7Civns7QgPiB0ZWtpXCA7Civns6AgPiBudWthXCA7Civns5cgPiBreXV1XCA7Civns5QgPiBzaHV1XCA7Civns5MgPiBrb2t1XCA7Civns4ogPiBub3JpXCA7CivnsrsgPiBjaG91XCA7CivnsrcgPiBraWt1XCA7CivnsrYgPiByb2t1XCA7CivnsrUgPiBldHN1XCA7CivnsrEgPiByeW91XCA7Civnsq4gPiByeW91XCA7CivnsqQgPiBldHN1XCA7CivnspUgPiBoYWt1XCA7CivnsoIgPiBrdW1lXCA7Civnsb4gPiBtb21pXCA7CivnsbAgPiB3YWt1XCA7CivnsaUgPiB5YWt1XCA7CivnsaQgPiBrdWppXCA7CivnsZwgPiB0YWt1XCA7CivnsZUgPiByeXV1XCA7CivnsZIgPiBzaHV1XCA7CivnsY8gPiBoYXRhXCA7CivnsYwgPiBjaHV1XCA7CivnsYogPiB0ZWtpXCA7CivnsYYgPiB3YWt1XCA7CivnsYAgPiBjaHV1XCA7CivnsLYgPiByb2t1XCA7CivnsLEgPiBoYXRhXCA7CivnsKsgPiBzaG91XCA7CivnsKogPiBzaGluXCA7CivnsKggPiBzaHVuXCA7CivnsKUgPiBreW91XCA7CivnsJkgPiBoYWt1XCA7CivnsJggPiBzaG91XCA7CivnsJcgPiB5YW5hXCA7CivnsI8gPiByb2t1XCA7CivnsI4gPiBzYWt1XCA7CivnsIwgPiBzb2t1XCA7CivnsIkgPiBzaHV1XCA7CivnsIAgPiBzYWt1XCA7Civnr7ggPiBzaGluXCA7Civnr7QgPiB0ZWtpXCA7Civnr6AgPiBzaG91XCA7Civnr5sgPiBqYWt1XCA7Civnr5cgPiB3YWt1XCA7Civnr4sgPiBreW91XCA7CivnrrogPiBzaHVuXCA7CivnrrQgPiBzaGluXCA7CivnrrAgPiBzaHVuXCA7CivnrqwgPiBqb2t1XCA7CivnrpkgPiBmdWt1XCA7CivnrpQgPiBoYWt1XCA7Civnro0gPiB0YWdhXCA7CivnroYgPiBoZXJhXCA7Civnrb8gPiBzaG91XCA7CivnrbogPiBreW91XCA7CivnrbQgPiBreW91XCA7CivnrbEgPiBzaG91XCA7CivnrbAgPiBzYWt1XCA7CivnrZAgPiBreW91XCA7CivnrYcgPiBreW91XCA7CivnrL8gPiByYWt1XCA7CivnrK4gPiBzYWt1XCA7CivnrKcgPiBzYWt1XCA7CivnrIogPiB6YXJ1XCA7CivnrIggPiBreXV1XCA7Civnq7sgPiByb2t1XCA7Civnq7ogPiB0b2t1XCA7Civnq7QgPiBzaHVuXCA7Civnq6ggPiBjaG91XCA7Civnq6YgPiBzaG91XCA7Civnq6MgPiBzaHVuXCA7Civnq5wgPiByeXV1XCA7Civnq4YgPiBreXV1XCA7Civnq4UgPiBreW91XCA7Civnqr8gPiByeXV1XCA7CivnqrUgPiBjaG91XCA7Civnqq8gPiBrYW1hXCA7CivnqpUgPiBjaG91XCA7CivnqoQgPiBzYWt1XCA7CivnqoAgPiBjaHVuXCA7CivnqbkgPiBreXV1XCA7CivnqbggPiBzZWtpXCA7CivnqbUgPiBhdHN1XCA7CivnqasgPiBrYWt1XCA7CivnqaogPiBzaG91XCA7CivnqZkgPiBob2t1XCA7CivnqZUgPiBzaG91XCA7CivnqZAgPiBzaHV1XCA7CivnqYYgPiBib2t1XCA7CivnqYAgPiBrb2t1XCA7CivnqLkgPiBzaGluXCA7CivnqLggPiBraWt1XCA7CivnqKAgPiBjaHV1XCA7CivnqJwgPiByeW91XCA7CivnqJUgPiBzaHVuXCA7CivnqJEgPiByaWt1XCA7Civnp6YgPiBzaGluXCA7Civnp50gPiByZWtpXCA7Civnp40gPiBjaHV1XCA7Civnp4MgPiB0b2t1XCA7CivnprQgPiB5YWt1XCA7CivnppsgPiBzaGluXCA7Civnpb8gPiByb2t1XCA7Civnpb4gPiByeW91XCA7CivnpbIgPiBzaGluXCA7CivnpaggPiBoeW91XCA7CivnpacgPiBjaG91XCA7CivnpaUgPiBzaG91XCA7CivnpY8gPiBzZWtpXCA7CivnpL8gPiB5YWt1XCA7CivnpLQgPiBoYWt1XCA7CivnpK0gPiBrYWt1XCA7CivnpJAgPiBrYWt1XCA7CivnpIEgPiBzaG91XCA7Civno78gPiByZWtpXCA7Civno7YgPiBzZWtpXCA7Civno6cgPiBzZWtpXCA7Civno6YgPiBoeW91XCA7Civno58gPiByaWt1XCA7Civno5QgPiB0YWt1XCA7CivnorsgPiBrYWt1XCA7CivnorUgPiBzZWtpXCA7CivnoqogPiBjaGluXCA7CivnoqkgPiBzZWtpXCA7CivnoqEgPiB0b2t1XCA7Civnob4gPiB0c3VpXCA7CivnobogPiB0YWt1XCA7CivnobQgPiBrYWtpXCA7Civnoa4gPiBrYWt1XCA7CivnoasgPiByeXV1XCA7CivnoZ4gPiBrYWt1XCA7CivnoYwgPiByYWt1XCA7CivnoLcgPiBzaGluXCA7CivnoKcgPiBjaGluXCA7CivnoKEgPiBnaWt1XCA7CivnoJ0gPiBreW91XCA7CivnoIkgPiBrZWtpXCA7Civnn7EgPiB3YWt1XCA7Civnn68gPiBreW91XCA7Civnn6ogPiBjaHV1XCA7Civnn6cgPiBzaGluXCA7Civnn6QgPiBzaGluXCA7Civnn6AgPiBzYWt1XCA7Civnn58gPiBzYWt1XCA7Civnn54gPiBpdHN1XCA7Civnn5sgPiBob2tvXCA7Civnn40gPiBrYWt1XCA7Civnnr4gPiBzaG91XCA7CivnnqcgPiBzaG91XCA7Civnnp8gPiBoeW91XCA7CivnnpogPiBzaHVuXCA7CivnnpUgPiBzaG91XCA7CivnnpQgPiBzYWt1XCA7CivnnosgPiBzaGluXCA7CivnnoQgPiBieW91XCA7CivnnZcgPiBzZWtpXCA7CivnnZYgPiBjaG91XCA7CivnnL4gPiBzaHV1XCA7CivnnL0gPiBiYWt1XCA7CivnnLkgPiBjaGluXCA7CivnnLYgPiBreW91XCA7CivnnJUgPiBzaGluXCA7CivnnJIgPiBzaGluXCA7CivnnIcgPiBieW91XCA7Civnm74gPiB0YXRlXCA7Civnm7kgPiBzaHVuXCA7Civnm4UgPiBjaHV1XCA7CivnmrkgPiBoaWJpXCA7CivnmrggPiBoaWJpXCA7CivnmrQgPiBzaHVuXCA7CivnmqogPiByZWtpXCA7CivnmqYgPiBreW91XCA7CivnmqIgPiBreW91XCA7Civnmp8gPiBzYWt1XCA7CivnmpsgPiBreW91XCA7CivnmpkgPiBzZWtpXCA7Civnmo0gPiBzb2t1XCA7CivnmoAgPiBoeXV1XCA7CivnmaggPiBrYWt1XCA7CivnmacgPiByZWtpXCA7CivnmaUgPiBjaG91XCA7CivnmYsgPiBrYWt1XCA7CivnmYUgPiByeXV1XCA7CivnmYQgPiBzaG91XCA7CivnmYMgPiByeXV1XCA7CivnmYEgPiBmdWt1XCA7CivnmLwgPiBiYWt1XCA7CivnmLkgPiBjaG91XCA7CivnmLQgPiBzaG91XCA7CivnmLMgPiBjaHV1XCA7CivnmLIgPiBzaG91XCA7CivnmK4gPiBzaGluXCA7CivnmK0gPiBoeW91XCA7CivnmKQgPiBrb2J1XCA7CivnmKAgPiBzZWtpXCA7CivnmIcgPiBzaG91XCA7Civnl64gPiBjaG91XCA7Civnl58gPiBzaG91XCA7Civnl5wgPiB0b2t1XCA7CivnlrkgPiBzaGluXCA7CivnlqIgPiBjaGluXCA7CivnlpogPiBreXV1XCA7CivnlpQgPiBjaG91XCA7CivnlpIgPiBkYWt1XCA7CivnlocgPiBjaHV1XCA7CivnloYgPiBreW91XCA7CivnloUgPiBreW91XCA7CivnlbwgPiBjaG91XCA7CivnlbsgPiBzaG91XCA7CivnlbogPiBreW91XCA7CivnlbUgPiBrYWt1XCA7CivnlbQgPiBjaHV1XCA7CivnlbEgPiByeXV1XCA7Civnla8gPiBzaHVuXCA7CivnlakgPiBrZXNhXCA7CivnlZsgPiBzaGluXCA7CivnlZAgPiBmdWt1XCA7CivnlYQgPiByeXV1XCA7CivnlYMgPiBzaHVuXCA7CivnlLwgPiBjaG91XCA7CivnlKogPiByb2t1XCA7CivnlKcgPiBzaGluXCA7CivnlKEgPiBzaGluXCA7CivnlJ4gPiBzaG91XCA7CivnlJUgPiBtaWthXCA7CivnlJMgPiBoZWtpXCA7CivnlIMgPiBzaHV1XCA7Civnk7ogPiBjaG91XCA7Civnk6QgPiBzaG91XCA7Civnk6IgPiBoeW91XCA7Civnk58gPiBoYWt1XCA7CivnkrkgPiBzaHV1XCA7CivnkqcgPiBoZWtpXCA7CivnkqIgPiByeXV1XCA7CivnkqEgPiBzaGluXCA7Civnkp4gPiBoYWt1XCA7CivnkpkgPiByeW91XCA7CivnkosgPiBzaG91XCA7CivnkoYgPiBreXV1XCA7CivnkbIgPiBzaG91XCA7CivnkaggPiBzaGluXCA7CivnkacgPiBzaGluXCA7CivnkaAgPiByeXV1XCA7CivnkZUgPiBraXp1XCA7CivnkZIgPiBjaG91XCA7CivnkYMgPiBjaHVuXCA7CivnkLEgPiBjaG91XCA7CivnkK0gPiBrb2t1XCA7CivnkKkgPiBzaG91XCA7CivnkKIgPiB0YWt1XCA7CivnkJsgPiBjaGluXCA7CivnkIkgPiByeXV1XCA7CivnkIcgPiBzaHV1XCA7Civnj6YgPiBreW91XCA7Civnj6MgPiBzaHVuXCA7Civnj54gPiByYWt1XCA7Civnj5kgPiBreW91XCA7Civnj5IgPiBzaGluXCA7Civnj48gPiBrYWt1XCA7Civnj44gPiBjaGluXCA7Civnj4sgPiByeXV1XCA7Civnj4UgPiBzaGluXCA7Civnj4AgPiBoYWt1XCA7Civnjr8gPiBzaG91XCA7CivnjpMgPiB0ZWtpXCA7CivnjoUgPiBteW91XCA7CivnjbYgPiBueW91XCA7CivnjbUgPiByeW91XCA7CivnjaAgPiByeW91XCA7CivnjZ8gPiBneW91XCA7CivnjZAgPiBzaG91XCA7CivnjY8gPiBiYWt1XCA7CivnjY4gPiBzaG91XCA7CivnjY0gPiBreW91XCA7CivnjJ8gPiByeW91XCA7CivnjJYgPiBzaG91XCA7CivnjIsgPiBoeW91XCA7Civni6UgPiBzaHVuXCA7Civni6IgPiBrYWt1XCA7Civni5sgPiBoYWt1XCA7Civni4cgPiBib2t1XCA7Civni4YgPiBjaGluXCA7Civni4QgPiB0ZWtpXCA7CivnirEgPiBrZWtpXCA7CivniqggPiBzaHV1XCA7CivniqIgPiB0b2t1XCA7CivnipYgPiByYWt1XCA7Civnib8gPiBrb2t1XCA7CivniZ4gPiBreXV1XCA7CivniZkgPiBraWJhXCA7CivniZggPiB0b2t1XCA7CivniZQgPiBoYWt1XCA7CivniYYgPiBzaG91XCA7CivniL8gPiBzaG91XCA7CivniLQgPiBrYWt1XCA7CivniK8gPiBzaG91XCA7CivniJogPiB5YWt1XCA7CivniIAgPiBrYWt1XCA7Civnh7ggPiBqaXl1XCA7Civnh64gPiBzaG91XCA7Civnh5ogPiBpdHN1XCA7Civnh5YgPiBzaGluXCA7Civnh44gPiByeW91XCA7Civnh4sgPiBzaG91XCA7CivnhpsgPiBoeW91XCA7CivnhocgPiBrb2t1XCA7CivnhoQgPiBzb2t1XCA7CivnhYEgPiBzaGluXCA7CivnhLsgPiBzaG91XCA7CivnhIwgPiBzaHVuXCA7CivnhIcgPiBzaG91XCA7CivnhIYgPiBldHN1XCA7CivnhIUgPiBrb2t1XCA7CivnhIMgPiBrYWt1XCA7Civng5kgPiByYWt1XCA7CivngrggPiBzYWt1XCA7CivngqQgPiBzaG91XCA7CivngbggPiBreXV1XCA7CivngawgPiBoeW91XCA7CivngaUgPiBzaHVuXCA7CivngYQgPiBzaG91XCA7CivngLkgPiBzZWt1XCA7CivngLcgPiB5b2t1XCA7CivngKcgPiB0YWtpXCA7CivngJ8gPiBzaG91XCA7CivngJMgPiBjaG91XCA7CivngJEgPiBiYWt1XCA7CivngI8gPiByeXV1XCA7CivngIsgPiBzaGluXCA7CivngIYgPiB0b2t1XCA7Civmv7wgPiByb2t1XCA7Civmv7kgPiBib2t1XCA7Civmv64gPiBob2t1XCA7Civmv6wgPiBzaHVuXCA7Civmv6kgPiBrYWt1XCA7Civmv4ggPiBzaHV1XCA7Civmv4UgPiBzaGluXCA7CivmvrwgPiBoZWtpXCA7CivmvrUgPiBzaGluXCA7CivmvqAgPiBzaG91XCA7CivmvpkgPiBzZWtpXCA7CivmvpMgPiBodWt1XCA7CivmvpEgPiByeXV1XCA7CivmvoYgPiBneW91XCA7CivmvoIgPiBjaG91XCA7CivmvZ8gPiBrYXRhXCA7CivmvZ0gPiBreXV1XCA7CivmvZcgPiBzaHV1XCA7CivmvLsgPiByeW91XCA7CivmvLMgPiBzaG91XCA7CivmvJggPiBzaGluXCA7CivmvI0gPiBrYWt1XCA7CivmvIkgPiByb2t1XCA7Civmu7IgPiBzaGluXCA7Civmu64gPiBoeXV1XCA7Civmu6sgPiBzaHV1XCA7Civmu50gPiB0YWtpXCA7Civmu5MgPiBrYXN1XCA7Civmu4wgPiBkZWtpXCA7Civmur0gPiBqb2t1XCA7CivmurEgPiBzaGluXCA7Civmuo0gPiBzaGluXCA7CivmuasgPiBzaG91XCA7CivmuaggPiBrZWtpXCA7CivmuZggPiBzaG91XCA7CivmuZIgPiBzaHV1XCA7CivmuLogPiBieW91XCA7CivmuJ4gPiBzaHV1XCA7CivmuJcgPiBzaGluXCA7CivmuIwgPiByb2t1XCA7Civmt7wgPiBieW91XCA7Civmt7QgPiBvdHN1XCA7Civmt7MgPiBzaHVuXCA7Civmt6kgPiByeW91XCA7Civmt6UgPiByb2t1XCA7Civmt6IgPiB5b2t1XCA7Civmt54gPiBzaG91XCA7Civmt5UgPiByaWt1XCA7Civmt4wgPiBzaG91XCA7Civmt4UgPiBzZWtpXCA7Civmtr8gPiB0b2t1XCA7CivmtokgPiBzaG91XCA7CivmtbkgPiBzaG91XCA7CivmtZ4gPiBzYWt1XCA7CivmtZcgPiBreXV1XCA7CivmtLYgPiBreW91XCA7CivmtLUgPiBzaHVuXCA7CivmtKYgPiBiYWt1XCA7CivmtJ8gPiBoYW5hXCA7CivmtJMgPiBzYWt1XCA7CivmtJEgPiBodWt1XCA7Civms7UgPiByeXV1XCA7Civms6cgPiBldHN1XCA7Civms4YgPiBpdHN1XCA7Civms4UgPiBzaHV1XCA7CivmsrAgPiB0YWt1XCA7CivmspAgPiBib2t1XCA7CivmsokgPiBjaGluXCA7CivmsoMgPiB5b2t1XCA7CivmsoEgPiBzaGluXCA7CivmsbkgPiBreW91XCA7CivmsakgPiBpdHN1XCA7CivmsaggPiBiZWtpXCA7CivmsZsgPiBzaGluXCA7CivmsZAgPiBzZWtpXCA7CivmsYsgPiBzYWt1XCA7CivmsLsgPiByb2t1XCA7CivmsLYgPiBzaG91XCA7CivmsI4gPiBjaG91XCA7CivmsIUgPiBzaG91XCA7Civmr7EgPiBraWt1XCA7Civmr6MgPiBib2t1XCA7Civmr4QgPiBrZWtpXCA7Civmr4MgPiBrYWt1XCA7Civmrr4gPiBzaHVuXCA7CivmrrwgPiBrYWt1XCA7CivmrrAgPiB0b2t1XCA7Civmrq0gPiBreW91XCA7CivmrqQgPiBzaG91XCA7CivmrqAgPiBzaHV1XCA7Civmrp8gPiBvdHN1XCA7CivmrpEgPiBreW91XCA7Civmro0gPiBoeW91XCA7CivmrbUgPiBzYWt1XCA7CivmrbAgPiBzaHV1XCA7CivmrZkgPiBreXV1XCA7CivmrZIgPiB0ZWtpXCA7CivmrYogPiBreW91XCA7CivmrLYgPiBzYWt1XCA7CivmrKsgPiBrZWtpXCA7CivmrIcgPiBzaG91XCA7CivmrIIgPiBoYWt1XCA7Civmq6wgPiBzaGluXCA7Civmq6ogPiByZWtpXCA7Civmq58gPiByZWtpXCA7Civmq50gPiB0b2t1XCA7CivmqrQgPiBrYWt1XCA7CivmqqogPiByZWtpXCA7Civmqp0gPiBzaHV1XCA7CivmqpcgPiBoYWt1XCA7Civmqo0gPiB5b2t1XCA7CivmqoQgPiBnZWtpXCA7Civmqb8gPiBreW91XCA7CivmqbggPiBzaG91XCA7CivmqbMgPiBudWRlXCA7CivmqbIgPiB6dXNhXCA7CivmqaEgPiBzaG91XCA7CivmqZAgPiB0YWt1XCA7CivmqYogPiByeW91XCA7CivmqL4gPiBldHN1XCA7CivmqL0gPiB0YXJ1XCA7CivmqLogPiBrYWJhXCA7CivmqLggPiBib2t1XCA7CivmqLAgPiB0YXJhXCA7CivmqKIgPiBib2t1XCA7CivmqJ8gPiBzaG91XCA7CivmqJsgPiBreXV1XCA7CivmqJogPiByb2t1XCA7CivmqJUgPiBzb2t1XCA7CivmqJEgPiByeW91XCA7CivmqIAgPiB0ZWtpXCA7Civmp7MgPiBzaG91XCA7Civmp7IgPiBrb2t1XCA7Civmp64gPiBzaGluXCA7Civmp6ggPiBrYWt1XCA7Civmp6IgPiBzaHV1XCA7Civmp5cgPiBreW91XCA7Civmp5YgPiB0YWt1XCA7Civmp40gPiB5YXJpXCA7Civmp4ogPiBzYWt1XCA7Civmp4UgPiBrYWt1XCA7CivmprogPiBzaG91XCA7CivmprcgPiBrYWt1XCA7CivmprQgPiByeXV1XCA7CivmprIgPiBvdHN1XCA7CivmpqsgPiBzaHVuXCA7CivmpqcgPiBrYXlhXCA7CivmppYgPiBrb2t1XCA7CivmppIgPiBkb2t1XCA7CivmpoUgPiBvdHN1XCA7CivmpoEgPiBtdXJvXCA7CivmpbggPiBzaHV1XCA7CivmpasgPiBzaHV1XCA7CivmpaIgPiBzaHV1XCA7CivmpYkgPiBqYWt1XCA7CivmpYUgPiBoeWt1XCA7CivmpKggPiB0YWZ1XCA7CivmpKUgPiBuYWdpXCA7CivmpJkgPiBzdWdpXCA7CivmpJMgPiB0YWt1XCA7CivmpJIgPiBzaG91XCA7CivmpIsgPiByeW91XCA7CivmpIggPiBraWt1XCA7CivmpIYgPiBjaHV1XCA7CivmpIEgPiBrYWt1XCA7Civmo70gPiBjaGluXCA7Civmo6sgPiB5b2t1XCA7Civmo58gPiBtdW5lXCA7Civmo5ggPiB0b2dlXCA7Civmo48gPiB0b2t1XCA7Civmoq4gPiBraWt1XCA7CivmoqUgPiBzaG91XCA7CivmoqMgPiBzaGluXCA7CivmopwgPiBreW91XCA7Civmoo8gPiBrb2t1XCA7CivmooIgPiBreXV1XCA7CivmooEgPiBoYXJpXCA7CivmobogPiByeXV1XCA7CivmobcgPiBrYWt1XCA7CivmoZ0gPiBtYXN1XCA7CivmoZggPiB0c3VpXCA7CivmoZUgPiBreXV1XCA7CivmoZEgPiBrdXdhXCA7CivmoYwgPiB0YWt1XCA7CivmoYYgPiBreW91XCA7CivmoL8gPiBmdWt1XCA7CivmoLggPiBrYWt1XCA7CivmoLEgPiBreW91XCA7CivmoKogPiBrYWJ1XCA7CivmoKIgPiBoYWt1XCA7CivmoIUgPiBzYWt1XCA7CivmoIIgPiB0b2dhXCA7Civmn74gPiBreXV1XCA7Civmn6kgPiBreXV1XCA7Civmn54gPiBzYWt1XCA7Civmn50gPiB0YWt1XCA7Civmn5cgPiBzaG91XCA7Civmn48gPiBoYWt1XCA7CivmnrcgPiBrYXNlXCA7CivmnrUgPiBreW91XCA7CivmnqkgPiBzaG91XCA7CivmnqEgPiBtYXN1XCA7CivmnqAgPiB3YWt1XCA7CivmnpAgPiBzZWtpXCA7CivmnoEgPiBreW91XCA7CivmnbsgPiBjaHV1XCA7CivmnbYgPiBjaHVuXCA7CivmnaogPiBieW91XCA7CivmnaYgPiBzdWdpXCA7CivmnaMgPiBzb21hXCA7CivmnaIgPiBtb2t1XCA7CivmnZkgPiB5b2t1XCA7CivmnZQgPiB0YWt1XCA7CivmnL0gPiBreXV1XCA7CivmnJUgPiBjaGluXCA7CivmnJQgPiBzYWt1XCA7CivmnJMgPiBjaG91XCA7CivmnJIgPiBuaWt1XCA7CivmnJAgPiBreW91XCA7Civmm7sgPiBzaG91XCA7Civmm7AgPiBldHN1XCA7Civmm58gPiBzaGluXCA7Civmm48gPiBreW91XCA7Civmm4wgPiBzaG91XCA7Civmm4kgPiBneW91XCA7Civmm4YgPiByZWtpXCA7CivmmrggPiByeW91XCA7CivmmrIgPiBzaG91XCA7CivmmpkgPiBzaHVuXCA7Civmmo0gPiBldHN1XCA7Civmmb8gPiBzaG91XCA7Civmmb4gPiByeW91XCA7CivmmbMgPiBzZWtpXCA7CivmmbAgPiBzZWtpXCA7CivmmasgPiB0YWt1XCA7CivmmaggPiBzaGluXCA7CivmmZkgPiBzaHVuXCA7CivmmZEgPiBreW91XCA7CivmmYwgPiBzaG91XCA7CivmmYsgPiBzaGluXCA7CivmmYkgPiBzaGluXCA7CivmmYEgPiBjaG91XCA7CivmmYAgPiBjaG91XCA7CivmmLYgPiBjaG91XCA7CivmmK4gPiBzaG91XCA7CivmmKMgPiBzaGluXCA7CivmmIwgPiBzaG91XCA7CivmmIMgPiBzb2t1XCA7Civml74gPiBzaHVuXCA7Civml6cgPiBreXV1XCA7Civml5IgPiByeXV1XCA7Civml5AgPiBjaG91XCA7Civml4ggPiByeXV1XCA7CivmlrIgPiB0YWt1XCA7Civmlq4gPiBzYWt1XCA7CivmlqEgPiBhdHN1XCA7CivmlqAgPiBrYWt1XCA7Civmlp8gPiBzaGluXCA7CivmlpsgPiBrb2t1XCA7CivmlpggPiBzaG91XCA7CivmloggPiBnYWt1XCA7Civmlb8gPiBreW91XCA7Civmlb0gPiBreW91XCA7CivmlasgPiBzZWt1XCA7CivmlZ4gPiBzaG91XCA7CivmlZIgPiBjaGluXCA7CivmlZAgPiBzaGluXCA7CivmlY4gPiBreW91XCA7CivmlYsgPiBrYWt1XCA7CivmlYcgPiBzYWt1XCA7CivmlLUgPiBib2t1XCA7CivmlLQgPiBob2t1XCA7CivmlKogPiBrYWt1XCA7CivmlIogPiBmdWtpXCA7CivmlIkgPiBrYWt1XCA7Civmk78gPiB0ZWtpXCA7Civmk7QgPiBrYWt1XCA7Civmk7IgPiB0ZWtpXCA7Civmk6IgPiB0ZWtpXCA7Civmk5ggPiBoYWt1XCA7Civmk5cgPiBoZWtpXCA7Civmk5EgPiBzaG91XCA7Civmk4wgPiBzYWt1XCA7Civmk4ogPiBnZWtpXCA7Civmk4kgPiBzYWt1XCA7Civmk4cgPiB0YWt1XCA7CivmkrkgPiBrYWt1XCA7CivmkqwgPiBreW91XCA7CivmkqkgPiByeW91XCA7CivmkqggPiBzaG91XCA7Civmkp8gPiBreW91XCA7CivmkpEgPiBjaG91XCA7CivmkpAgPiBjaG91XCA7Civmkb0gPiBoeW91XCA7Civmka0gPiBzZWtpXCA7CivmkZ0gPiByb2t1XCA7CivmkZggPiB0ZWtpXCA7CivmkZEgPiBrYWt1XCA7CivmkY8gPiBzaG91XCA7CivmkY4gPiBreXV1XCA7CivmkL8gPiBrYWt1XCA7CivmkL4gPiBzYWt1XCA7CivmkLYgPiBzaG91XCA7CivmkKYgPiBqYWt1XCA7CivmkKIgPiBzaGluXCA7CivmkKAgPiBzYWt1XCA7CivmkI8gPiBoYWt1XCA7CivmkIogPiBzaHV1XCA7CivmkIkgPiBrYWt1XCA7Civmj6ogPiBzaHV1XCA7Civmj5UgPiBjaGluXCA7CivmjrUgPiBoYWJhXCA7CivmjqwgPiBraWt1XCA7CivmjqYgPiB0ZWtpXCA7CivmjqQgPiBoeW91XCA7CivmjpogPiByeW91XCA7CivmjpUgPiByeW91XCA7CivmjbcgPiBzaG91XCA7CivmjZQgPiBrYWt1XCA7CivmjZIgPiBzaG91XCA7CivmjYkgPiBzb2t1XCA7CivmjYQgPiBreXV1XCA7CivmjYEgPiBrYWt1XCA7CivmjJ8gPiBreW91XCA7CivmjJYgPiBhdHN1XCA7CivmjJEgPiBjaG91XCA7CivmjIwgPiBrYWt1XCA7CivmjIsgPiBzaGluXCA7Civmi7IgPiBreW91XCA7Civmi7EgPiBreW91XCA7Civmi6sgPiBzaHV1XCA7Civmi6EgPiBrYWt1XCA7Civmi5MgPiB0YWt1XCA7Civmi4YgPiB0YWt1XCA7CivmirsgPiBzaGluXCA7Civmip4gPiB0YWt1XCA7Civmio0gPiBzaG91XCA7CivmioQgPiBzaG91XCA7CivmioIgPiBreW91XCA7CivmiaggPiBzYXRlXCA7CivmiZogPiBjaG91XCA7CivmiZggPiB0YWt1XCA7CivmiZEgPiBob2t1XCA7CivmiZAgPiByb2t1XCA7CivmiYQgPiBzaG91XCA7CivmiLMgPiB0YWt1XCA7CivmiK4gPiByaWt1XCA7CivmiKsgPiB5b2t1XCA7CivmiKIgPiBzaHV1XCA7CivmiJ0gPiB6b2t1XCA7CivmiJUgPiBzaG91XCA7CivmiIkgPiBldHN1XCA7CivmiIggPiBob2tvXCA7Civmh74gPiBzaG91XCA7Civmh7IgPiBjaG91XCA7Civmh58gPiB0c3VpXCA7Civmh48gPiBzaHVuXCA7Civmhq0gPiByeW91XCA7Civmho0gPiBreW91XCA7CivmhoAgPiByeW91XCA7Civmhb8gPiBoeW91XCA7CivmhbwgPiBzZWtpXCA7CivmhbQgPiBzaG91XCA7Civmha8gPiBzaG91XCA7CivmhasgPiBzaG91XCA7CivmhZ4gPiBzaG91XCA7CivmhZ0gPiB0b2t1XCA7CivmhZMgPiBoeW91XCA7CivmhY4gPiBzaGluXCA7CivmhL0gPiBoYWt1XCA7CivmhLwgPiBzaGluXCA7CivmhLYgPiBreW91XCA7CivmhLUgPiBkZWtpXCA7CivmhKggPiBrYWt1XCA7CivmhJwgPiBreW91XCA7CivmhJkgPiBrYWt1XCA7CivmhJYgPiBzaGluXCA7CivmhIEgPiBzaHV1XCA7CivmhIAgPiBzaG91XCA7Civmg7sgPiBzb2t1XCA7Civmg7cgPiBzaHVuXCA7Civmg7UgPiBjaG91XCA7Civmg6ogPiB0b2t1XCA7Civmg50gPiBzaG91XCA7Civmg5YgPiB0ZWtpXCA7Civmg5UgPiB0ZWtpXCA7Civmg4ogPiByeW91XCA7Civmg4YgPiBjaHV1XCA7Civmg4QgPiBkZWtpXCA7CivmgrUgPiBjaG91XCA7CivmgrMgPiB0b2t1XCA7CivmgqYgPiBldHN1XCA7CivmgqUgPiB5b2t1XCA7CivmgqIgPiByeW91XCA7CivmgpogPiBzaG91XCA7CivmgoUgPiBldHN1XCA7CivmgbcgPiBreXV1XCA7CivmgbEgPiBldHN1XCA7CivmgaogPiBrYWt1XCA7CivmgacgPiBqaWt1XCA7CivmgZ8gPiBreW91XCA7CivmgZQgPiBreW91XCA7CivmgYwgPiBjaG91XCA7CivmgYogPiBreW91XCA7CivmgYcgPiBreW91XCA7CivmgLMgPiBreW91XCA7CivmgJcgPiBjaG91XCA7CivmgI0gPiBzYWt1XCA7CivmgIogPiBjaG91XCA7Civlv7ggPiBqaWt1XCA7Civlv7cgPiBreW91XCA7Civlv7EgPiBzaGluXCA7Civlv6ogPiBzaG91XCA7Civlv6EgPiBjaHV1XCA7Civlv6AgPiBjaHV1XCA7Civlv5IgPiB0b2t1XCA7Civlv5EgPiB0b2t1XCA7Civlv4cgPiByb2t1XCA7CivlvrwgPiBreW91XCA7CivlvrggPiBzaG91XCA7CivlvrcgPiB0b2t1XCA7CivlvrUgPiBjaG91XCA7CivlvrEgPiBoeW91XCA7CivlvqIgPiBzaG91XCA7CivlvpwgPiBzaG91XCA7CivlvocgPiBzaHVuXCA7CivlvbggPiBzaG91XCA7CivlvbYgPiBraWh1XCA7CivlvbMgPiB0ZWtpXCA7CivlvbAgPiBzaG91XCA7CivlvaogPiBoeW91XCA7CivlvZ8gPiBrYWt1XCA7CivlvZQgPiByb2t1XCA7CivlvYogPiBreW91XCA7CivlvYUgPiBuYWdpXCA7CivlvLogPiBreW91XCA7CivlvLYgPiBneWF1XCA7CivlvKsgPiBzaGluXCA7CivlvJwgPiBreW91XCA7CivlvJcgPiBkb3J1XCA7CivlvJMgPiB5dW1pXCA7CivlvIwgPiBpdHN1XCA7CivlvIsgPiB5b2t1XCA7Civlu74gPiBreW91XCA7Civlu7ggPiB0ZWtpXCA7Civlu7MgPiBjaG91XCA7Civlu7AgPiBjaG91XCA7Civlu6sgPiByeW91XCA7Civlu6cgPiBzaGF1XCA7Civlu6YgPiBoZWtpXCA7Civlu6AgPiBzaG91XCA7Civlu58gPiBieW91XCA7Civlu5kgPiB5b2t1XCA7Civlu5ggPiByb2t1XCA7Civlu5YgPiByeW91XCA7Civlu4sgPiBzaHV1XCA7Civlur8gPiBieW91XCA7CivlurQgPiBzZWtpXCA7CivlurEgPiBjaG91XCA7CivluqUgPiBreXV1XCA7CivluqAgPiBzaG91XCA7CivluawgPiBjaHV1XCA7CivluaYgPiBiZWtpXCA7CivluZ4gPiBob2t1XCA7CivluZsgPiBzaG91XCA7CivluZkgPiBiYWt1XCA7CivluZggPiBzYWt1XCA7CivluZcgPiBrYWt1XCA7CivluZYgPiBoeW91XCA7CivluZMgPiBzaGluXCA7CivluY4gPiBiZWtpXCA7CivluYIgPiBiZWtpXCA7CivluKQgPiBnZXlvXCA7CivluKIgPiBrYWh1XCA7CivluJsgPiBoYWt1XCA7Civlt6kgPiBreW91XCA7Civlt6QgPiByZWh1XCA7Civlt5AgPiBjaG91XCA7Civltr0gPiBnYWt1XCA7Civltq8gPiBzaGl1XCA7CivltqsgPiBneW91XCA7CivltqogPiBneW91XCA7CivltqggPiBrYWt1XCA7CivltqIgPiBneW91XCA7CivltqAgPiBreW91XCA7CivltpwgPiBzaGluXCA7CivltpsgPiByeW91XCA7CivltpogPiByeW91XCA7CivltpIgPiBzaG91XCA7CivltpAgPiByeXV1XCA7CivltoggPiBzaGF1XCA7CivltoIgPiBzaG91XCA7Civltb4gPiBzaGluXCA7CivltbkgPiBreW91XCA7CivltbcgPiBzaG91XCA7CivltYogPiBzaG91XCA7CivltYAgPiBjaGl1XCA7CivltL8gPiBnYWt1XCA7CivltLcgPiBzaGl1XCA7CivltKggPiBzZWh1XCA7CivltKcgPiBzaHV1XCA7CivltJogPiByeW91XCA7CivltIggPiBzaHV1XCA7Civls70gPiBreW91XCA7Civls7sgPiBzaHVuXCA7Civls7cgPiBzaGluXCA7Civls60gPiBzaG91XCA7Civls6ogPiB5b2t1XCA7Civls6MgPiBneW91XCA7Civls6EgPiBreW91XCA7Civls4sgPiBzaHVuXCA7Civls4kgPiBnYWt1XCA7Civls4ggPiByYWt1XCA7Civls4YgPiBrYWh1XCA7Civls4UgPiBrdXJhXCA7Civls4AgPiBzaHV1XCA7CivlsrwgPiB5dXJpXCA7CivlsrYgPiBoYWt1XCA7CivlsrMgPiB0YWtlXCA7CivlsqsgPiBzaHV1XCA7CivlsqYgPiByeXV1XCA7Civlsp0gPiBzYWt1XCA7CivlspEgPiBzaGluXCA7CivlsowgPiBreXV1XCA7Civlsb4gPiBzaGluXCA7CivlsbYgPiBuYXRhXCA7CivlsbAgPiBnZWtpXCA7CivlsaogPiByeW91XCA7CivlsZAgPiBnZWtpXCA7CivlsYwgPiBjaG91XCA7CivlsL8gPiBueW91XCA7CivlsLAgPiBzaG91XCA7CivlsK0gPiBneW91XCA7CivlsKYgPiByeW91XCA7CivlsKUgPiByeW91XCA7CivlsJ4gPiByeW91XCA7CivlsJkgPiBzaG91XCA7CivlsIcgPiBzaG91XCA7CivlsIUgPiBrb2t1XCA7Civlr7QgPiBzaGluXCA7Civlr68gPiBzaHVuXCA7Civlr64gPiByeW91XCA7Civlr54gPiBiYWt1XCA7Civlr5YgPiBzaGluXCA7Civlr5EgPiBzaGluXCA7Civlr4kgPiBrYWt1XCA7Civlr4UgPiB0b3JhXCA7CivlrrggPiBzaGluXCA7CivlrrcgPiBzaGluXCA7CivlrqsgPiBreXV1XCA7CivlrqggPiB0ZXdhXCA7CivlrpkgPiBjaHV1XCA7CivlrpIgPiBjaHVuXCA7Civlro0gPiBuaWt1XCA7CivlroYgPiBreW91XCA7CivlrZ4gPiBzaGluXCA7CivlrYcgPiBzYXdhXCA7CivlrLwgPiByaXdhXCA7CivlrLggPiBzaGluXCA7CivlrLYgPiBrYWthXCA7CivlrKcgPiBzaGluXCA7CivlrKYgPiBjaGl1XCA7CivlrKUgPiBjaG91XCA7CivlrJkgPiBzaG91XCA7CivlrIUgPiBrdXdhXCA7Civlq78gPiBrYWt1XCA7Civlq54gPiBzaG91XCA7Civlq5wgPiBzaGF1XCA7Civlq5YgPiBoeW91XCA7Civlq4AgPiBzaGluXCA7CivlqrcgPiBqb2t1XCA7CivlqrMgPiBzZWtpXCA7CivlqrAgPiBzaGl1XCA7Civlqp0gPiBzaHV1XCA7CivlqpsgPiBoaW1lXCA7CivlqosgPiBzaHVuXCA7CivlqoMgPiBqeXV1XCA7CivlqbMgPiBrYWt1XCA7CivlqaQgPiBzaHV1XCA7CivlqZUgPiBzaG91XCA7CivlqYogPiBoeW91XCA7CivlqYggPiByeW91XCA7CivlqYUgPiBraWt1XCA7CivlqLwgPiBzaG91XCA7CivlqLcgPiB0c3VpXCA7CivlqJYgPiBzYWt1XCA7CivlqJUgPiBzYWt1XCA7CivlqIAgPiBzaHV1XCA7Civlp7ogPiBzaGluXCA7Civlp6AgPiBzaG91XCA7Civlp5wgPiBreW91XCA7Civlpr0gPiBzaGluXCA7CivlprEgPiBzaG91XCA7Civlpq8gPiBjaHV1XCA7CivlppUgPiBjaHV1XCA7CivlppAgPiBzaG91XCA7Civlpa0gPiBzZWtpXCA7CivlpawgPiBzaG91XCA7CivlpaggPiBzaG91XCA7CivlpZ4gPiBzaHVuXCA7CivlpZ0gPiBjaG91XCA7CivlpIwgPiByeW91XCA7CivlpIsgPiBzaHVuXCA7Civlo78gPiBzaHVuXCA7Civlo7kgPiBpY2hpXCA7Civlo7MgPiBrYWt1XCA7Civlo6IgPiByZWtpXCA7Civlo5cgPiBtYW1hXCA7Civlo5EgPiBnYWt1XCA7Civlo4YgPiBrYWt1XCA7CivlorwgPiBrZWtpXCA7CivlorsgPiBzaG91XCA7CivlorkgPiBtYW1hXCA7CivloqsgPiBzaHVuXCA7CivloqMgPiBoYWt1XCA7CivlopwgPiB0c3VpXCA7CivlopIgPiBzaG91XCA7CivlopEgPiB0ZWtpXCA7Civloo8gPiBzaG91XCA7CivloosgPiBzaGluXCA7CivloocgPiBzaG91XCA7CivlooQgPiBzb2t1XCA7CivlooIgPiBoeW91XCA7Civlob4gPiBqdWt1XCA7CivlobsgPiBiYWt1XCA7CivlobYgPiBrb2t1XCA7CivloaggPiBreW91XCA7CivloaUgPiBrYWt1XCA7CivloZkgPiBrYWt1XCA7CivloZYgPiBzaG91XCA7CivloZMgPiBiZWtpXCA7CivloY0gPiBzaG91XCA7CivloYkgPiBzZWtpXCA7CivloLsgPiBzaGluXCA7CivloLkgPiBzaG91XCA7CivloK8gPiBneW91XCA7CivloK4gPiBnYWt1XCA7CivloJggPiBzaG91XCA7Civln7sgPiBzaHVuXCA7Civln6sgPiBzaG91XCA7Civln5YgPiBnb21pXCA7Civln5AgPiBzaGluXCA7Civln4ggPiBzaHVuXCA7Civln4YgPiBrYWt1XCA7Civln4EgPiBzaGluXCA7CivlnrMgPiBnYWtlXCA7CivlnqwgPiBreW91XCA7CivlnpggPiBodWt1XCA7CivlnbwgPiB0YWt1XCA7CivlnbYgPiBib2t1XCA7CivlnbUgPiBreW91XCA7CivlnbQgPiByaWt1XCA7CivlnacgPiBzZWtpXCA7CivlnL4gPiBneXV1XCA7CivlnLggPiB5YW1hXCA7CivlnLMgPiBzaGl1XCA7CivlnKUgPiByb2t1XCA7CivlnKQgPiBoYWt1XCA7CivlnKAgPiBhdHN1XCA7CivlnIAgPiBrb2t1XCA7Civlm7sgPiBrb2t1XCA7Civlm7YgPiBrb2t1XCA7Civlm68gPiBrb2t1XCA7Civlm6IgPiBzaHV1XCA7Civlm58gPiBzaGluXCA7Civlm5ogPiBzaHV1XCA7CivlmrMgPiBrb2t1XCA7CivlmqsgPiBzaGluXCA7CivlmqkgPiBoYWt1XCA7CivlmqYgPiByZWtpXCA7CivlmqAgPiByeXV1XCA7Civlmp0gPiBrYWt1XCA7CivlmpcgPiBoYWt1XCA7CivlmpAgPiBzaG91XCA7Civlmo0gPiBzaGluXCA7CivlmosgPiBjaHV1XCA7CivlmocgPiBrYWt1XCA7CivlmoQgPiBrYWt1XCA7CivlmoEgPiB0ZWtpXCA7Civlma0gPiBreW91XCA7CivlmakgPiBrYWt1XCA7CivlmaYgPiBldHN1XCA7CivlmZcgPiBib2t1XCA7CivlmY8gPiBreXV1XCA7CivlmY4gPiBpdHN1XCA7CivlmYogPiBpdHN1XCA7CivlmL8gPiBib2t1XCA7CivlmLwgPiBreXV1XCA7CivlmLogPiBreW91XCA7CivlmLggPiBzYXpvXCA7CivlmK8gPiBzaG91XCA7CivlmKggPiBzaG91XCA7CivlmJ4gPiByb2t1XCA7CivlmJogPiB0b2t1XCA7CivlmJYgPiBzYWt1XCA7CivlmJMgPiBrYWt1XCA7CivlmIIgPiBreW91XCA7CivlmIEgPiBzYWh1XCA7CivlmIAgPiBzYWt1XCA7Civll70gPiB1Z2FpXCA7Civll7wgPiBiYWt1XCA7Civll50gPiBrYWt1XCA7Civll5cgPiBhdHN1XCA7Civll5QgPiBzaGluXCA7Civll5EgPiBrYWh1XCA7Civll40gPiBzYWt1XCA7Civll4sgPiBreW91XCA7Civll4YgPiBzaG91XCA7Civll4AgPiBrYWt1XCA7CivllrIgPiB5YWt1XCA7CivllqwgPiBreW91XCA7CivllqggPiByeW91XCA7CivllqIgPiB0ZWh1XCA7Civllp4gPiBzb2t1XCA7CivlloEgPiBneW91XCA7CivlloAgPiBrYWt1XCA7Civllb4gPiBzaHV1XCA7Civlla8gPiBrYWt1XCA7CivllaYgPiByYWh1XCA7CivllaIgPiByeW91XCA7CivllYsgPiBreW91XCA7CivllYcgPiB0ZWtpXCA7CivllYUgPiB0YWt1XCA7CivllYQgPiB0YWt1XCA7CivllYMgPiBzaHV1XCA7CivllL0gPiBzZWtpXCA7CivllLwgPiBzYWh1XCA7CivllLQgPiBreW91XCA7CivllK4gPiBzaHV1XCA7CivllKcgPiBzb2t1XCA7CivllKEgPiByeW91XCA7CivllJogPiBzaGluXCA7CivllJkgPiB0ZWtpXCA7CivllJIgPiBzaHV1XCA7CivllIogPiBreW91XCA7CivllIMgPiBrb2t1XCA7Civlk6ggPiBzaG91XCA7Civlk40gPiBreW91XCA7Civlk4IgPiBzaGluXCA7CivlkrkgPiBhdHN1XCA7CivlkrYgPiBrdXVpXCA7Civlkq8gPiBrYWt1XCA7CivlkqIgPiBnYWt1XCA7CivlkqAgPiBzaHV1XCA7Civlkp8gPiBrYWt1XCA7CivlkosgPiBzYWt1XCA7CivlkbsgPiBzaGluXCA7CivlkbogPiBreW91XCA7CivlkbkgPiBpdHN1XCA7CivlkasgPiB0ZWh1XCA7CivlkY8gPiBzaG91XCA7CivlkY4gPiBzZWtpXCA7CivlkYwgPiBreW91XCA7CivlkYQgPiBrb2t1XCA7CivlkL8gPiBrb2t1XCA7CivlkLUgPiBieW91XCA7CivlkLIgPiBzaGluXCA7CivlkKMgPiBzaGluXCA7CivlkKIgPiBzaGluXCA7CivlkJwgPiBjaHV1XCA7Civlj7wgPiBjaG91XCA7Civlj7sgPiByb2t1XCA7Civlj7YgPiBreW91XCA7Civlj6AgPiBjaG91XCA7Civlj5IgPiBqYWt1XCA7Civlj4kgPiBtYXRhXCA7CivljrAgPiBzaG91XCA7Civljq8gPiByZWtpXCA7CivljqQgPiByZWtpXCA7Civljp0gPiBzYWt1XCA7CivljpIgPiBrYWh1XCA7CivljosgPiBhdHN1XCA7CivljocgPiB0YWt1XCA7Civljb4gPiBnYWt1XCA7Civljb0gPiBzb2t1XCA7CivljbIgPiBzaG91XCA7Civlja0gPiBreW91XCA7CivljaEgPiBzYWh1XCA7CivljZwgPiBib2t1XCA7CivljZkgPiBzaG91XCA7CivljYwgPiBzaHV1XCA7CivljYIgPiBzaGluXCA7CivljL8gPiB0b2t1XCA7CivljLUgPiB0b2t1XCA7CivljKkgPiBreW91XCA7CivljKcgPiBreW91XCA7CivljKMgPiBoYWtvXCA7CivljKEgPiBreW91XCA7CivljJ4gPiBzaG91XCA7CivljJsgPiBreXV1XCA7CivljJMgPiBreW91XCA7CivljJEgPiBreXV1XCA7CivljJAgPiBob2t1XCA7CivljIogPiBraWt1XCA7CivljIkgPiBoeW91XCA7CivljIggPiBreW91XCA7Civli7wgPiBreXV1XCA7Civli7AgPiBreW91XCA7Civli6UgPiBreW91XCA7Civli6MgPiBzZWtpXCA7Civli6AgPiByaWt1XCA7Civli5IgPiByb2t1XCA7Civli4AgPiBrb2t1XCA7CivlirsgPiBreW91XCA7CivlirAgPiBiYWt1XCA7Civliq4gPiBpdHN1XCA7Civliq0gPiBzaG91XCA7CivliqYgPiBreW91XCA7CivlipwgPiBhdHN1XCA7CivlipAgPiBrYWt1XCA7CivliosgPiBzeW91XCA7CivliokgPiByeXV1XCA7CivlioggPiBoZWtpXCA7CivlioUgPiB0YWt1XCA7CivlioEgPiBzeW91XCA7CivlibkgPiByaWt1XCA7Civlia8gPiBmdWt1XCA7CivliasgPiB0YWt1XCA7CivliaggPiBrYWt1XCA7CivliaIgPiB0b2t1XCA7CivliZ0gPiBoYWt1XCA7CivliZQgPiB0ZWtpXCA7CivliZIgPiBzYWt1XCA7CivliYsgPiBrb2t1XCA7CivliLwgPiBreW91XCA7CivliKYgPiBreW91XCA7CivliJ8gPiBjaG91XCA7CivliJggPiByeXV1XCA7Civlh7ggPiBkZWtvXCA7Civlh7YgPiBreW91XCA7Civlh7QgPiBoeW91XCA7Civlh6ogPiBuYWdpXCA7Civlh6cgPiB0YWtvXCA7Civlh5kgPiB0YWt1XCA7Civlh4sgPiBjaG91XCA7Civlh4kgPiByeW91XCA7Civlh4cgPiBzaG91XCA7Civlhr4gPiBreW91XCA7CivlhrwgPiBzaG91XCA7CivlhrUgPiBreW91XCA7CivlhrIgPiBjaHV1XCA7CivlhrAgPiBoeW91XCA7CivlhqsgPiBoeW91XCA7CivlhqogPiBiZWtpXCA7CivlhqIgPiBjaG91XCA7CivlhpYgPiBiZWtpXCA7CivlhpEgPiBjaHV1XCA7CivlhbggPiBub3JpXCA7CivlhaIgPiBreW91XCA7CivlhZ8gPiBzaGluXCA7CivlhZMgPiBzaGluXCA7CivlhY8gPiBjaG91XCA7CivlhYsgPiBrb2t1XCA7CivlhYcgPiBreW91XCA7CivlhYYgPiBjaG91XCA7CivlhYIgPiBzaGluXCA7CivlhLUgPiBzaHV1XCA7CivlhLQgPiBzaG91XCA7CivlhK4gPiByZWtpXCA7CivlhK0gPiBzaGluXCA7CivlhKwgPiBzaGluXCA7CivlhKYgPiBoeW91XCA7CivlhKAgPiByeW91XCA7CivlhJQgPiBjaHV1XCA7CivlhIEgPiBzaHVuXCA7Civlg70gPiBzaHV1XCA7Civlg7sgPiBoZWtpXCA7Civlg7ogPiBzaG91XCA7Civlg7UgPiBreW91XCA7Civlg7AgPiBob2t1XCA7Civlg6UgPiBneW91XCA7Civlg5ggPiBzaG91XCA7Civlg4cgPiByaWt1XCA7Civlgr0gPiBzaG91XCA7CivlgrkgPiBreW91XCA7CivlgrYgPiBzb2t1XCA7CivlgrEgPiBzaG91XCA7CivlgpUgPiBrYWt1XCA7CivlgbcgPiBjaHV1XCA7CivlgbEgPiBzaHVuXCA7Civlga4gPiBzaHV1XCA7CivlgYYgPiBzaHVuXCA7CivlgYUgPiBzaG91XCA7CivlgYEgPiBzaG91XCA7CivlgLAgPiByeW91XCA7CivlgK8gPiBzaG91XCA7CivlgKwgPiB0YWt1XCA7CivlgKIgPiBzaG91XCA7CivlgKEgPiBzaG91XCA7CivlgJwgPiB0ZWtpXCA7CivlgJggPiBzaG91XCA7CivlgIYgPiByeW91XCA7CivlgIMgPiBreXV1XCA7CivlgIAgPiBjaG91XCA7Civkv7UgPiBoeW91XCA7Civkv6MgPiBtYXRhXCA7Civkv6IgPiBzaHV1XCA7Civkv6AgPiBreW91XCA7Civkv40gPiByeW91XCA7Civkv4sgPiBjaHV1XCA7Civkv4ggPiBrb2t1XCA7Civkv4cgPiBreWF1XCA7Civkv4UgPiBreXV1XCA7CivkvrogPiBzaGluXCA7CivkvrYgPiB0b21vXCA7CivkvrQgPiBjaHV1XCA7CivkvrIgPiBzaGluXCA7CivkvqAgPiBreWFuXCA7CivkvpwgPiBjaHV1XCA7CivkvpogPiBzaHVuXCA7CivkvoIgPiB0YWt1XCA7CivkvoEgPiBzaGluXCA7Civkvb4gPiBpdHN1XCA7CivkvbsgPiBjaG91XCA7CivkvbAgPiBoYWt1XCA7CivkvawgPiByeW91XCA7CivkvasgPiBrYWt1XCA7CivkvZcgPiB3YWJpXCA7CivkvZQgPiBjaGluXCA7CivkvYsgPiBzaG91XCA7CivkvLcgPiBjaHV1XCA7CivkvKkgPiBzaGluXCA7CivkvJQgPiBzaGluXCA7CivkvIsgPiBreXV1XCA7CivkvIggPiBzaGluXCA7CivkvIQgPiBjaG91XCA7CivkvIAgPiBzaG91XCA7Civku7wgPiBreW91XCA7Civku6IgPiBoYWt1XCA7Civku5cgPiB0c3VlXCA7Civku4kgPiBzaG91XCA7Civku4IgPiByb2t1XCA7CivkurwgPiBzaHV1XCA7CivkurMgPiBoYWt1XCA7Civkuq8gPiBreW91XCA7Civkuq4gPiByeW91XCA7CivkuqggPiBreW91XCA7CivkuoAgPiBrYW1lXCA7CivkuaMgPiBreXV1XCA7CivkuZ8gPiBuYXJpXCA7CivkuYcgPiB0YWt1XCA7CivkuYYgPiBreXV1XCA7CivkuLUgPiBzYWt1XCA7CivkuK4gPiBrZWtpXCA7CivkuKkgPiBreXV1XCA7CivkuKQgPiByeW91XCA7CivkuKIgPiBjaHV1XCA7CivkuKAgPiBreXV1XCA7CivkuJ8gPiBjaHV1XCA7CivkuJ4gPiBzaG91XCA7CivkuJIgPiBjaHV1XCA7CivkuJEgPiB1c2hpXCA7CivkuIQgPiBzaG91XCA7CivjgIcgPiBtYXJ1XCA7Civov7cgPiBtZWlcIDsKK+W/tSA+IG5lblwgOwor55+tID4gdGFuXCA7Civlv6sgPiBrYWlcIDsKK+i/pSA+IGtlaVwgOwor55+lID4gY2hpXCA7Civnn5wgPiBraW5cIDsKK+W/mSA+IGJvdVwgOwor5b+YID4gYm91XCA7Civov5QgPiBoZW5cIDsKK+i/kSA+IGtpblwgOwor6L+OID4gZ2VpXCA7Civlv40gPiBuaW5cIDsKK+i/hSA+IGppblwgOwor6L6/ID4gdGVuXCA7CivnnrsgPiBzZW5cIDsKK+i+uiA+IGhlblwgOwor6L6yID4gbm91XCA7Civovq8gPiBiZW5cIDsKK+W+qiA+IGp1blwgOwor556gID4gZG91XCA7Civlvp4gPiBqdXVcIDsKK+W+kyA+IGp1dVwgOwor5b6KID4ga2FpXCA7CivlvoUgPiB0YWlcIDsKK+W+hCA+IGtlaVwgOwor5b2pID4gc2FpXCA7CivnnaggPiBnZWlcIDsKK+edoSA+IHN1aVwgOwor6L2fID4gZ291XCA7CivlvZMgPiB0b3VcIDsKK+i9iSA+IHRlblwgOwor5b2IID4gZGFuXCA7CivnnKkgPiBnZW5cIDsKK+ecoCA+IG1pblwgOwor5byfID4gdGVpXCA7CivlvJsgPiBzaGlcIDsKK+W8mCA+IGtvdVwgOwor6LyVID4ga2VpXCA7CivnnIwgPiBrZW5cIDsKK+eciyA+IGthblwgOwor6LyJID4gc2FpXCA7CivlvIQgPiByb3VcIDsKK+ecgSA+IHNlaVwgOwor5byBID4gYmVuXCA7Civou70gPiBrZWlcIDsKK+W7uyA+IGthaVwgOwor5bu6ID4ga2VuXCA7Civnm7ggPiBzb3VcIDsKK+ebpSA+IGthblwgOwor55ujID4ga2FuXCA7Civou6IgPiB0ZW5cIDsKK+W7oyA+IGtvdVwgOwor5buiID4gaGFpXCA7Civnm6EgPiBqaW5cIDsKK+ebnCA+IHRvdVwgOwor55ubID4gc2VpXCA7Civnm5cgPiB0b3VcIDsKK+i7jSA+IGd1blwgOwor5buKID4gcm91XCA7Civlu4kgPiByZW5cIDsKK+ebhiA+IGJvblwgOwor55uDID4gaGFpXCA7Civlu4MgPiBoYWlcIDsKK+W6uCA+IHlvdVwgOwor5bq3ID4ga291XCA7CivnmrAgPiBob3VcIDsKK+W6miA+IGtvdVwgOwor5bqWID4gaG91XCA7CivoupMgPiBjaGlcIDsKK+i6hyA+IGNob1wgOwor55qHID4ga291XCA7CivluoQgPiBzb3VcIDsKK+W6gyA+IGtvdVwgOwor5bm+ID4gaWt1XCA7Civlub0gPiB5dXVcIDsKK+W5vCA+IHlvdVwgOwor55m7ID4gdG91XCA7CivlubIgPiBrYW5cIDsKK+eZjCA+IGdhblwgOwor55mHID4ga2FuXCA7CivluL0gPiBib3VcIDsKK+W4tiA+IHRhaVwgOwor5bivID4gdGFpXCA7CivluKsgPiBzaGlcIDsKK+i4nyA+IGNoaVwgOwor6LiPID4gdG91XCA7CivouIogPiB5b3VcIDsKK+W4giA+IHNoaVwgOwor5be+ID4ga2luXCA7Civnl7QgPiBjaGlcIDsKK+eXqSA+IHNvdVwgOwor5benID4ga291XCA7Civlt6UgPiBrb3VcIDsKK+i3oSA+IGF0b1wgOwor6LefID4ga29uXCA7Civlt6EgPiBqdW5cIDsKK+i3nSA+IGt5b1wgOwor55eVID4ga29uXCA7Civnl5IgPiB5b3VcIDsKK+W2riA+IGtlblwgOwor55aKID4gam91XCA7CivnlbYgPiB0b3VcIDsKK+i1sCA+IHNvdVwgOwor55WqID4gYmFuXCA7CivotacgPiB0YW5cIDsKK+eVpiA+IGF6ZVwgOwor55WUID4gaGFuXCA7CivnlYwgPiBrYWlcIDsKK+W1jCA+IGthblwgOwor55SyID4ga291XCA7CivltKkgPiBob3VcIDsKK+eUqCA+IHlvdVwgOwor55SjID4gc2FuXCA7CivnlJggPiBrYW5cIDsKK+W0lyA+IGtvdVwgOwor6LSFID4gemVpXCA7Civos70gPiBzYWlcIDsKK+izvCA+IGtvdVwgOwor6LO6ID4gdGFuXCA7Civnk7YgPiBiaW5cIDsKK+izoyA+IGJhaVwgOwor6LOiID4ga2VuXCA7Civnk5wgPiB1cmlcIDsKK+izhyA+IHNoaVwgOwor6LK8ID4gdGVuXCA7CivosrggPiB0YWlcIDsKK+iytyA+IGJhaVwgOwor6LKwID4gc2VpXCA7Civosq8gPiBjaG9cIDsKK+WyqSA+IGl3YVwgOwor6LKnID4gYmluXCA7CivosqEgPiB6YWlcIDsKK+WyoSA+IGtvdVwgOwor6LKeID4gdGVpXCA7Civosp0gPiBrYWlcIDsKK+ixqiA+IGdvdVwgOwor5bGkID4gc291XCA7CivosaEgPiB6b3VcIDsKK+WxlSA+IHRlblwgOwor6LGQID4gaG91XCA7CivlsY8gPiBoZWlcIDsKK+ixiiA+IGhvdVwgOwor5bGGID4ga2FpXCA7CivlsYUgPiBreW9cIDsKK+WwvSA+IGppblwgOwor55CyID4gaGFpXCA7CivlsKQgPiB5dXVcIDsKK+WwoCA+IHNlblwgOwor5bCaID4gbmFvXCA7CivlsJYgPiBzZW5cIDsKK+WwjiA+IGRvdVwgOwor5bCNID4gdGFpXCA7CivlsIsgPiBqaW5cIDsKK+WwiSA+IGpvdVwgOwor5bCIID4gc2VuXCA7CivlsIQgPiBzaGFcIDsKK+WwgSA+IGZ1dVwgOwor54++ID4gZ2VuXCA7Civlr7ggPiBzdW5cIDsKK+WvqyA+IHNoYVwgOwor54+qID4ga2VpXCA7Civlr5IgPiBrYW5cIDsKK+WuuSA+IHlvdVwgOwor5a61ID4geW9pXCA7CivlrrMgPiBnYWlcIDsKK+WusCA+IHNhaVwgOwor546pID4gZ2FuXCA7CivlrqMgPiBzZW5cIDsKK+WumyA+IGF0ZVwgOwor5a6aID4gdGVpXCA7CivlrpggPiBrYW5cIDsKK+WujCA+IGthblwgOwor6K6KID4gaGVuXCA7CivoroMgPiBzYW5cIDsKK+eOhCA+IGdlblwgOwor5427ID4ga2VuXCA7CivnjbggPiBqdXVcIDsKK+itsiA+IGpvdVwgOwor6K2rID4gc2VuXCA7CivoraYgPiBrZWlcIDsKK+WtmCA+IHNvblwgOwor5a2UID4ga291XCA7CivorLkgPiBraW5cIDsKK+eMtiA+IHl1dVwgOwor5ayqID4gaGluXCA7CivlrKIgPiBqb3VcIDsKK+isnSA+IHNoYVwgOwor54ycID4gc2FpXCA7CivorJsgPiBrb3VcIDsKK+ismSA+IGtlblwgOwor54u9ID4gaGFpXCA7Civoq7ggPiBzaG9cIDsKK+irpiA+IHRlaVwgOwor54uhID4ga291XCA7Civni5kgPiBzaG9cIDsKK+eLlyA+IGtvdVwgOwor6KuWID4gcm9uXCA7Civoq4sgPiBzZWlcIDsKK+WrjCA+IGl5YVwgOwor6KuHID4gZGFuXCA7Civni4MgPiBqdXVcIDsKK+eKtiA+IGpvdVwgOwor54qvID4gaGFuXCA7CivniqwgPiBpbnVcIDsKK+iqmCA+IHl1dVwgOwor6KqTID4gc2VpXCA7CivlqpIgPiBiYWlcIDsKK+iqjSA+IG5pblwgOwor6KqMID4gc2hpXCA7CivoqoQgPiBydWlcIDsKK+ipsiA+IGdhaVwgOwor54myID4gc2VpXCA7Civoqa4gPiBzZW5cIDsKK+ipqSA+IHNoaVwgOwor6KmmID4gc2hpXCA7CivniaIgPiByb3VcIDsKK+eJoSA+IG9zdVwgOwor6KmeID4gc2hpXCA7CivlqZogPiBrb25cIDsKK+eJjCA+IHBhaVwgOwor54mIID4gaGFuXCA7CivniYcgPiBoZW5cIDsKK+eJgCA+IHNvdVwgOwor54i9ID4gc291XCA7CivoqLEgPiBreW9cIDsKK+eIrSA+IHNvdVwgOwor6KiqID4gaG91XCA7CivniJsgPiByYW5cIDsKK+WokSA+IHNoYVwgOwor6KiKID4gamluXCA7CivoqIggPiBrZWlcIDsKK+iogCA+IGdlblwgOwor54e7ID4ga3VuXCA7Civop6MgPiBrYWlcIDsKK+WnkyA+IHNlaVwgOwor5aeLID4gc2hpXCA7Civlp4kgPiBhbmVcIDsKK+eHiCA+IHRvdVwgOwor54eDID4gbmVuXCA7Civop4AgPiBrYW5cIDsKK+imvSA+IHJhblwgOwor6KazID4ga2FuXCA7CivopqogPiBveWFcIDsKK+impyA+IHJhblwgOwor6KaXID4gc2hpXCA7CivoppYgPiBzaGlcIDsKK+WmliA+IHlvdVwgOwor5aaKID4gbmluXCA7CivlpoQgPiBib3VcIDsKK+eFvSA+IHNlblwgOwor5aW9ID4ga291XCA7Civnha4gPiBzaGFcIDsKK+WlriA+IGZ1blwgOwor54WpID4gaGFuXCA7CivopaQgPiByYW5cIDsKK+WlpSA+IG9rdVwgOwor5aWiID4gc2hhXCA7CivopZ8gPiBlcmlcIDsKK+WllyA+IHRvdVwgOwor5aWPID4gc291XCA7CivnhY4gPiBzZW5cIDsKK+WliSA+IGhvdVwgOwor5aS+ID4ga291XCA7CivopLggPiByb3VcIDsKK+eEtiA+IHplblwgOwor6KSqID4gdGFpXCA7CivlpKkgPiB0ZW5cIDsKK+WkpyA+IHRhaVwgOwor54SaID4gZnVuXCA7CivlpJUgPiB5dXVcIDsKK+ikkiA+IGhvdVwgOwor5aSJID4gaGVuXCA7Civoo70gPiBzZWlcIDsKK+WjuyA+IHNlaVwgOwor5aOyID4gYmFpXCA7Civlo7AgPiBrb2VcIDsKK+WjryA+IHNvdVwgOwor5aOrID4gc2hpXCA7Civoo50gPiBzb3VcIDsKK+WjniA+IGthaVwgOwor6KOVID4geXV1XCA7Civoo48gPiB1cmFcIDsKK+WjiiA+IGthaVwgOwor5aOHID4gZGFuXCA7Civoo4UgPiBzb3VcIDsKK+ijgSA+IHNhaVwgOwor54K5ID4gdGVuXCA7CivooqIgPiBoYW5cIDsKK+WilyA+IHpvdVwgOwor54KKID4gc3VpXCA7CivoooIgPiBiZWlcIDsKK+eBvSA+IHNhaVwgOwor54GwID4gaGFpXCA7CivooaEgPiBrb3VcIDsKK+WhlCA+IHRvdVwgOwor54GMID4ga2FuXCA7CivooYAgPiBjaGlcIDsKK+WhgCA+IGhlaVwgOwor6KC2ID4gc2FuXCA7CivloLEgPiBob3VcIDsKK+WgqiA+IGthblwgOwor54CVID4gaGluXCA7CivloIYgPiB0YWlcIDsKK+WghSA+IGtlblwgOwor5aCCID4gZG91XCA7Civon7sgPiBhcmlcIDsKK+a/uiA+IHNlblwgOwor5r+xID4gaGluXCA7Civmv58gPiBzYWlcIDsKK+a/mCA+IG5laVwgOwor5Z+LID4gbWFpXCA7Civmv4MgPiBub3VcIDsKK+a+uSA+IHRhblwgOwor6J6iID4ga2VpXCA7CivlnqIgPiBha2FcIDsKK+m+lSA+IGdhblwgOwor6J6NID4geXV1XCA7CivlnoIgPiBzdWlcIDsKK+idvyA+IGhhZVwgOwor5r2wID4ga2FpXCA7CivlnaYgPiB0YW5cIDsKK+m9oSA+IHJlaVwgOwor5r2cID4gc2VuXCA7CivonZkgPiBoZW5cIDsKK+m9jiA+IHNlaVwgOwor6b2KID4gc2VpXCA7CivonYsgPiByb3VcIDsKK+WdiiA+IGJvdVwgOwor5Z2HID4ga2luXCA7CivonLsgPiBzZWlcIDsKK+a8uCA+IHplblwgOwor5ZywID4gY2hpXCA7CivmvKwgPiBzaGlcIDsKK+WcqCA+IHphaVwgOwor5ryiID4ga2FuXCA7CivonJggPiBjaGlcIDsKK+WcmCA+IGRhblwgOwor5ryVID4gc291XCA7CivmvI8gPiByb3VcIDsKK+WcjyA+IGtlblwgOwor5ru/ID4gbWFuXCA7Civlm7AgPiBrb25cIDsKK+a7ryA+IHRhaVwgOwor6buoID4gdG91XCA7Civlm6MgPiBkYW5cIDsKK+m7niA+IHRlblwgOwor5ZueID4ga2FpXCA7Civom5sgPiBzaHVcIDsKK+WbmyA+IHlvblwgOwor6JuJID4gcmVpXCA7Civom4YgPiBzaG9cIDsKK+m6uyA+IGFzYVwgOwor5rq2ID4geW91XCA7CivlmrQgPiBnZW5cIDsKK+a6qiA+IGtlaVwgOwor6bqXID4gcmVpXCA7CivmupYgPiBqdW5cIDsKK+a6gCA+IG1hblwgOwor5rm+ID4gd2FuXCA7CivpubggPiBrZW5cIDsKK+WZqiA+IHNvdVwgOwor5rmnID4geXV1XCA7CivomZ8gPiBnb3VcIDsKK+iZnCA+IHJ5b1wgOwor6JmaID4ga3lvXCA7CivlmZsgPiBnb3VcIDsKK+iZlSA+IHNob1wgOwor5ZmMID4gc291XCA7CivlmLIgPiB0b3VcIDsKK+iYrSA+IHJhblwgOwor5rimID4gdXp1XCA7CivmuKAgPiBreW9cIDsKK+a4myA+IGdlblwgOwor5ZiYID4gdXNvXCA7CivmuIggPiBzYWlcIDsKK+WYhiA+IHRhblwgOwor5riFID4gc2VpXCA7CivomIIgPiB6dWlcIDsKK+a3uyA+IHRlblwgOwor5re6ID4gc2VuXCA7Civmt7cgPiBrb25cIDsKK+iXqSA+IGhhblwgOwor5ZejID4gc2hpXCA7Civmt6EgPiB0YW5cIDsKK+iXnSA+IGdlaVwgOwor5ZecID4gc2hpXCA7Civmt4sgPiByaW5cIDsKK+iXiSA+IHNoYVwgOwor6beEID4ga2VpXCA7CivmtrIgPiBla2lcIDsKK+iWryA+IHNob1wgOwor5ZawID4ga3V1XCA7Civmtq8gPiBnYWlcIDsKK+iWriA+IHNvdVwgOwor5ZauID4gdGFuXCA7CivolqYgPiBzZW5cIDsKK+WWpyA+IGtlblwgOwor5ZaaID4ga2FuXCA7CivllpggPiB6ZW5cIDsKK+a2jCA+IHl1dVwgOwor5ZaEID4gemVuXCA7CivllbwgPiB0ZWlcIDsKK+a1tyA+IHVtaVwgOwor5rWqID4gcm91XCA7CivolakgPiB0b3VcIDsKK+WVoyA+IGthblwgOwor5ZWPID4gbW9uXCA7CivmtYUgPiBzZW5cIDsKK+a1hCA+IGpvdVwgOwor6JS9ID4gaGVpXCA7CivllLggPiB0ZW5cIDsKK+iUtSA+IHNvdVwgOwor5rSXID4gc2VuXCA7CivmtJIgPiBzZWlcIDsKK+WUkCA+IHRvdVwgOwor5rSLID4geW91XCA7Civps7QgPiBtZWlcIDsKK+azoSA+IGF3YVwgOwor5rOVID4gaG91XCA7Civlk4EgPiBoaW5cIDsKK+iSvCA+IHNvdVwgOwor6JK4ID4gam91XCA7CivlkqwgPiBrb3VcIDsKK+iSnyA+IGtvblwgOwor6JKZID4gbW91XCA7CivmspYgPiBva2lcIDsKK+iSlCA+IHNoaVwgOwor5rKMID4gdG9uXCA7Civlkb0gPiBtZWlcIDsKK+WRsyA+IGFqaVwgOwor6JGsID4gc291XCA7CivokaMgPiB0b3VcIDsKK+axoCA+IGlrZVwgOwor5ZGfID4gZ2VuXCA7CivmsZcgPiBhc2VcIDsKK+WRkSA+IGRvblwgOwor5ZGGID4gYm91XCA7CivlkYIgPiByeW9cIDsKK+mwuiA+IGFqaVwgOwor5ZC7ID4gZnVuXCA7CivlkLkgPiBzdWlcIDsKK+iQrCA+IG1hblwgOwor5ZCrID4gZ2FuXCA7CivlkJ0gPiByaW5cIDsKK+WQmyA+IGt1blwgOwor5ZCRID4ga291XCA7CivmsI8gPiB1amlcIDsKK+iQjCA+IGhvdVwgOwor5ZCMID4gZG91XCA7CivmsIggPiBzZW5cIDsKK+WQiCA+IGdvdVwgOwor6JCEID4gdG91XCA7Civlj7ggPiBzaGlcIDsKK+WPsiA+IHNoaVwgOwor5Y+wID4gZGFpXCA7Civoj6sgPiBraW5cIDsKK+avqyA+IGtvdVwgOwor6I+pID4gaGFpXCA7Civlj6kgPiBrb3VcIDsKK+WPpSA+IGtvdVwgOwor5q+OID4gbWFpXCA7Civlj40gPiBoYW5cIDsKK+WPgyA+IHNhblwgOwor5Y+CID4gc2FuXCA7CivljrsgPiBreW9cIDsKK+autSA+IGRhblwgOwor5Y6zID4gZ2VuXCA7Civprq4gPiBzZW5cIDsKK+WOrSA+IGl5YVwgOwor5Y6aID4ga291XCA7CivmrpggPiB6YW5cIDsKK+WOmCA+IHJpblwgOwor5q6LID4gemFuXCA7CivmroogPiBzaHVcIDsKK+auhiA+IHRhaVwgOwor5Y2/ID4ga2VpXCA7CivmrbsgPiBzaGlcIDsKK+WNtyA+IGthblwgOwor5q2zID4gc2FpXCA7CivmraQgPiBzaGlcIDsKK+atoyA+IHNlaVwgOwor5q2iID4gc2hpXCA7CivmraEgPiBrYW5cIDsKK+WNoCA+IHNlblwgOwor5q2UID4ga3lvXCA7CivojZIgPiBrb3VcIDsKK+atjiA+IHRhblwgOwor5q2MID4gdXRhXCA7CivljYogPiBoYW5cIDsKK+WNiCA+IHVtYVwgOwor5Y2DID4gY2hpXCA7CivljYEgPiB0b29cIDsKK+msvCA+IG9uaVwgOwor6Iy2ID4gY2hhXCA7CivojKsgPiBib3VcIDsKK+msoiA+IGhpblwgOwor5YyaID4gaG91XCA7CivmrIogPiBrZW5cIDsKK+WMhiA+IHNvdVwgOwor5qyFID4ga3lvXCA7CivljIUgPiBob3VcIDsKK+WLviA+IGtvdVwgOwor5Yu4ID4ga2FuXCA7Civli6cgPiBrYW5cIDsKK+WLpCA+IGdvblwgOwor5YueID4gcm91XCA7Civoi5cgPiBuYWVcIDsKK+WLmCA+IGthblwgOwor6auUID4gdGVpXCA7Civli5UgPiBkb3VcIDsKK+WLiSA+IGJlblwgOwor5YuHID4geXV1XCA7Civpq4QgPiB6dWlcIDsKK+mquCA+IGthaVwgOwor6Iq4ID4gZ2VpXCA7CivlirkgPiBrb3VcIDsKK+iKsyA+IGhvdVwgOwor5Yq0ID4gcm91XCA7CivlirEgPiByZWlcIDsKK+WKqyA+IGdvdVwgOwor5qqiID4ga2VuXCA7Civlip8gPiBrb3VcIDsKK+WKjSA+IGtlblwgOwor5qqAID4gdGFuXCA7CivoibggPiBzb3VcIDsKK+WJtSA+IHNvdVwgOwor6ImyID4gaXJvXCA7CivpqaIgPiByeW9cIDsKK+WJmyA+IGdvdVwgOwor6amXID4ga2VuXCA7CivliZYgPiBib3VcIDsKK+WJjSA+IG1hZVwgOwor5YmDID4gdGVpXCA7CivpqLcgPiBzb3VcIDsKK+WItiA+IHNlaVwgOwor5YiwID4gdG91XCA7CivoiKwgPiBoYW5cIDsKK+iIqiA+IGtvdVwgOwor5qipID4ga2VuXCA7CivliKQgPiBiYW5cIDsKK+aooyA+IHlvdVwgOwor6aiZID4gaGVuXCA7CivpqJMgPiBrZW5cIDsKK+mokiA+IHNvdVwgOwor5qiTID4gcm91XCA7CivliJEgPiBrZWlcIDsKK+WIiiA+IGthblwgOwor6IiIID4ga291XCA7CivliIYgPiBidW5cIDsKK+WIgCA+IHRvdVwgOwor5qe9ID4gc291XCA7Civoh7wgPiB1c3VcIDsKK+WHvSA+IGthblwgOwor6Ie6ID4gdGFpXCA7Civoh7QgPiBjaGlcIDsKK+iHsyA+IHNoaVwgOwor6IeqID4gc2hpXCA7Civoh6ggPiByaW5cIDsKK+WHpiA+IHNob1wgOwor5YehID4gYm9uXCA7Civoh58gPiB6b3VcIDsKK+mnmyA+IHNoaVwgOwor5qeYID4geW91XCA7Civlh40gPiB0b3VcIDsKK+aniyA+IGtvdVwgOwor6aeFID4gZWtpXCA7Civlh4QgPiBzZWlcIDsKK+iGvyA+IHVtaVwgOwor6Ia9ID4gdGFuXCA7CivmprsgPiB0b3VcIDsKK+WGtyA+IHJlaVwgOwor6aazID4gY2hpXCA7CivohrMgPiB6ZW5cIDsKK+mmrSA+IGd5b1wgOwor6aasID4gdW1hXCA7CivlhpkgPiBzaGFcIDsKK+WGlyA+IGpvdVwgOwor5YaSID4gYm91XCA7Civlho0gPiBzYWlcIDsKK+amgiA+IGdhaVwgOwor5qW8ID4gcm91XCA7CivlhbwgPiBrZW5cIDsKK+iFriA+IHNhaVwgOwor5YWsID4ga291XCA7CivlhaggPiB6ZW5cIDsKK+iFpiA+IG5vdVwgOwor5YWaID4gdG91XCA7CivohZUgPiB1ZGVcIDsKK+mlkiA+IGpvdVwgOwor5qWTID4gZnV1XCA7CivlhY0gPiBtZW5cIDsKK+iFiyA+IGVraVwgOwor6aWFID4gbWFuXCA7CivlhYggPiBzZW5cIDsKK+WFhSA+IGp1dVwgOwor5YWEID4gYW5pXCA7CivohLMgPiBub3VcIDsKK+WEqiA+IHl1dVwgOwor5qScID4ga2VuXCA7CivppJAgPiBzYW5cIDsKK+mkiiA+IHlvdVwgOwor5YSEID4gb2t1XCA7CivmpIAgPiB3YW5cIDsKK+mjvSA+IGhvdVwgOwor6aO8ID4gc2hpXCA7Civmo7ogPiBrYW5cIDsKK+mjtCA+IGFtZVwgOwor6IO0ID4gZG91XCA7Civmo7IgPiBzZWlcIDsKK+WDpyA+IHNvdVwgOwor6IOeID4gaG91XCA7Civpo5wgPiBob25cIDsKK+ajkiA+IGJvdVwgOwor6IOOID4gdGFpXCA7Civlg48gPiB6b3VcIDsKK+iDjCA+IHNlaVwgOwor5YONID4gZG91XCA7Civog4YgPiB0YW5cIDsKK+WDhSA+IGtpblwgOwor5YK+ID4ga2VpXCA7CivogrIgPiBpa3VcIDsKK+WCsyA+IGRlblwgOwor5qKwID4ga2FpXCA7Civogq8gPiBrb3VcIDsKK+airyA+IHRlaVwgOwor5YKsID4gc2FpXCA7CivpoqggPiBmdXVcIDsKK+iCpSA+IGtvZVwgOwor5qKdID4gam91XCA7CivogoYgPiBzaGlcIDsKK+aihSA+IHVtZVwgOwor5qG2ID4gb2tlXCA7CivlgbYgPiBndXVcIDsKK+WBtSA+IHRlaVwgOwor6IGyID4gc2VpXCA7Civpoa8gPiBrZW5cIDsKK+mhqyA+IHNlblwgOwor5qGnID4ga2FpXCA7CivlgaUgPiBrZW5cIDsKK+mhniA+IHJ1aVwgOwor5qGfID4gc2FuXCA7CivogZ4gPiBidW5cIDsKK+mhmyA+IHRlblwgOwor5YGcID4gdGVpXCA7CivpoZggPiBnYW5cIDsKK+iBliA+IHNlaVwgOwor6aGVID4ga2VuXCA7CivpoZQgPiBrYW9cIDsKK+mhjyA+IGdhblwgOwor6aGOID4gYWdvXCA7CivpoYwgPiBkYWlcIDsKK+ahgiA+IGtlaVwgOwor6IC9ID4gdGFuXCA7CivpoLwgPiByYWlcIDsKK+mguyA+IGhpblwgOwor6IC7ID4gY2hpXCA7CivlgLkgPiBrZW5cIDsKK+mgrSA+IHRvdVwgOwor5YCmID4ga2VuXCA7CivmoKEgPiBrb3VcIDsKK+mgmiA+IGtlaVwgOwor6ICVID4ga291XCA7CivpoJMgPiB0b25cIDsKK+agkyA+IHNlblwgOwor5YCSID4gdG91XCA7CivogJAgPiB0YWlcIDsKK+WAiSA+IHNvdVwgOwor6aCGID4ganVuXCA7CivpoIUgPiBrb3VcIDsKK+iAgyA+IGtvdVwgOwor6ICBID4gcm91XCA7Civnv7sgPiBob25cIDsKK+S/uiA+IG9yZVwgOwor5p+0ID4gc2FpXCA7Civmn5MgPiBzZW5cIDsKK+afkCA+IGJvdVwgOwor5765ID4ga291XCA7Civnvq4gPiBrb3VcIDsKK+S+ryA+IGtvdVwgOwor5L6tID4gamluXCA7CivnvqggPiBzZW5cIDsKK+e+pCA+IGd1blwgOwor5p6dID4gZWRhXCA7CivmnpogPiBtYWlcIDsKK+S+iyA+IHJlaVwgOwor5L6GID4gcmFpXCA7Civmnb8gPiBpdGFcIDsKK+S9vyA+IHNoaVwgOwor5p21ID4gc2hvXCA7CivkvbUgPiBoZWlcIDsKK+e9riA+IGNoaVwgOwor5p2lID4gcmFpXCA7CivpnaIgPiBtZW5cIDsKK+adoSA+IGpvdVwgOwor6Z2cID4gc2VpXCA7CivpnZkgPiBzZWlcIDsKK+mdliA+IHNlaVwgOwor5L2VID4gbmFuXCA7CivkvZMgPiB0ZWlcIDsKK+e9kCA+IGthblwgOwor5p2QID4gemFpXCA7CivnvY4gPiB0YW5cIDsKK+S9jyA+IGp1dVwgOwor5L2OID4gdGVpXCA7CivpnYggPiByZWlcIDsKK+S9hyA+IGNob1wgOwor5L2DID4gdGVuXCA7CivkvLogPiBzaGlcIDsKK+acsSA+IGFrYVwgOwor5pynID4gcm91XCA7CivmnKYgPiBib3VcIDsKK+acnSA+IGFzYVwgOwor5LydID4gdGVuXCA7CivmnJsgPiBib3VcIDsKK+S8miA+IGthaVwgOwor5pyXID4gcm91XCA7CivpnIogPiByZWlcIDsKK+aciyA+IGhvdVwgOwor5pyJID4geXV1XCA7CivmnIMgPiBrYWlcIDsKK+acgCA+IHNhaVwgOwor5pu/ID4gdGFpXCA7Civmm74gPiBzb3VcIDsKK+mbuyA+IGRlblwgOwor5pu8ID4gYmFuXCA7Civku7sgPiBuaW5cIDsKK+mbtiA+IHJlaVwgOwor5pu4ID4gc2hvXCA7Civku7YgPiBrZW5cIDsKK+abtCA+IGtvdVwgOwor6ZuoID4gYW1lXCA7Civpm6MgPiBuYW5cIDsKK+S7pCA+IHJlaVwgOwor5pucID4geW91XCA7Civpm5YgPiBzdWlcIDsKK+S7lSA+IHNoaVwgOwor5LuUID4gc2hpXCA7Civku4sgPiBrYWlcIDsKK+S7iiA+IGtvblwgOwor6ZuEID4gb3N1XCA7Civku4EgPiBuaW5cIDsKK+aatCA+IGJvdVwgOwor5LqtID4gdGVpXCA7CivpmqogPiBrZW5cIDsKK+aaqyA+IHphblwgOwor6ZqoID4genVpXCA7CivkuqQgPiBrb3VcIDsKK+S6oSA+IGJvdVwgOwor6ZqbID4gc2FpXCA7CivkupkgPiBrb3VcIDsKK+S6mCA+IHNlblwgOwor5pqWID4gZGFuXCA7CivkupUgPiBzZWlcIDsKK+e6kiA+IHRlblwgOwor5pqRID4gc2hvXCA7Civpmo8gPiB6dWlcIDsKK+e6jyA+IHRlblwgOwor6ZqOID4ga2FpXCA7CivpmoogPiB0YWlcIDsKK+maiCA+IHdhaVwgOwor5LqJID4gc291XCA7CivnuoIgPiBzYW5cIDsKK+S6giA+IHJhblwgOwor6Zm9ID4geW91XCA7CivnubwgPiBrZWlcIDsKK+mZuiA+IGtlblwgOwor5pm6ID4gY2hpXCA7CivpmbYgPiB0b3VcIDsKK+aZtCA+IHNlaVwgOwor57mwID4gc291XCA7CivkubEgPiByYW5cIDsKK+aZryA+IGtlaVwgOwor57mqID4ga2FpXCA7CivnuakgPiBqb3VcIDsKK+aZqSA+IGJhblwgOwor6ZmlID4ga2FuXCA7CivpmaMgPiBqaW5cIDsKK+e5niA+IGpvdVwgOwor5LmYID4gam91XCA7CivnuZUgPiB6ZW5cIDsKK+S5lyA+IGpvdVwgOwor57mUID4gb3JpXCA7CivpmZAgPiBnZW5cIDsKK+mZjSA+IGtvdVwgOwor5LmPID4gYm91XCA7CivnuYEgPiBoYW5cIDsKK+e4vSA+IHNvdVwgOwor6ZiyID4gYm91XCA7CivnuLEgPiBqdXVcIDsKK+e4qyA+IGhvdVwgOwor6ZiqID4gaGFuXCA7CivkuKYgPiBoZWlcIDsKK+S4mCA+IG9rYVwgOwor5LiUID4gc2hhXCA7CivmmJMgPiBla2lcIDsKK+aYjiA+IG1laVwgOwor5LiKID4gam91XCA7CivmmIYgPiBrb25cIDsKK+aYgiA+IGtvdVwgOwor57e0ID4gcmVuXCA7Civnt6wgPiBtZW5cIDsKK+aXrCA+IGp1blwgOwor57epID4ga2FuXCA7Civml6kgPiBzb3VcIDsKK+e3qCA+IGhlblwgOwor5pemID4gdGFuXCA7Civnt6AgPiB0ZWlcIDsKK+mXnCA+IGthblwgOwor57eaID4gc2VuXCA7Civpl5ggPiB0b3VcIDsKK+e3jyA+IHNvdVwgOwor5peLID4gc2VuXCA7Civnt4ogPiBraW5cIDsKK+aWuSA+IGhvdVwgOwor5pa3ID4gZGFuXCA7CivntrIgPiBhbWlcIDsKK+aWryA+IHNoaVwgOwor5patID4gZGFuXCA7CivmlqwgPiB6YW5cIDsKK+mWpCA+IGtvdVwgOwor5pacID4gc2hhXCA7CivntpkgPiBrZWlcIDsKK+e2kyA+IGtlaVwgOwor6ZaLID4ga2FpXCA7CivplokgPiBoZWlcIDsKK+aWiSA+IHNlaVwgOwor5paHID4gYnVuXCA7CivploMgPiBzZW5cIDsKK+aWgyA+IGhlaVwgOwor6ZaAID4gbW9uXCA7CivplbcgPiBvc2FcIDsKK+aVuCA+IHN1dVwgOwor5pW0ID4gc2VpXCA7CivntbIgPiBzaGlcIDsKK+e1sSA+IHRvdVwgOwor5pWwID4gc3V1XCA7CivmlawgPiBrZWlcIDsKK+e1qCA+IGp1dVwgOwor5pWjID4gc2FuXCA7CivmlaIgPiBrYW5cIDsKK+e1niA+IGtvdVwgOwor5pWXID4gaGFpXCA7CivmlY8gPiBiaW5cIDsKK+aViCA+IGtvdVwgOwor5pWFID4geXVlXCA7CivmlL4gPiBob3VcIDsKK+e0uiA+IGtvblwgOwor5pS5ID4ga2FpXCA7CivntLAgPiBzZWlcIDsKK+e0ryA+IHJ1aVwgOwor5pSvID4gc2hpXCA7CivntJsgPiBmdW5cIDsKK+e0lCA+IGp1blwgOwor57SNID4gdG91XCA7CivntIsgPiBtb25cIDsKK+ezuCA+IGl0b1wgOwor5pOnID4ga3lvXCA7Civmk6EgPiB0YWlcIDsKK+ezniA+IGZ1blwgOwor57OWID4gdG91XCA7Civmk5QgPiB0YW5cIDsKK+eyviA+IHNlaVwgOwor57KfID4gYXdhXCA7CivnspcgPiBhcmFcIDsKK+mRtSA+IGthblwgOwor57GWID4gc2VuXCA7CivpkZIgPiBrYW5cIDsKK+exkCA+IHRvdVwgOwor5pC6ID4ga2VpXCA7CivnsKEgPiBrYW5cIDsKK+aQnCA+IHNvdVwgOwor5pCWID4geW91XCA7CivmkI0gPiBzb25cIDsKK+aPoSA+IGFrdVwgOwor5o+bID4ga2FuXCA7Civmj5ogPiB5b3VcIDsKK+aPkCA+IHRlaVwgOwor5o+JID4ganV1XCA7Civnr4QgPiBoYW5cIDsKK+aPgyA+IHNlblwgOwor5o67ID4gc291XCA7CivmjrIgPiBrZWlcIDsKK+euqiA+IHRhblwgOwor5o6oID4gc3VpXCA7CivmjqcgPiBrb3VcIDsKK+aOoyA+IHNlaVwgOwor5o6iID4gdGFuXCA7CivmjqEgPiBzYWlcIDsKK+eulyA+IHNhblwgOwor5o6SID4gaGFpXCA7CivnrosgPiBzZW5cIDsKK+aOgyA+IHNvdVwgOwor5o27ID4gbmVuXCA7CivmjbIgPiBrZW5cIDsKK+aNriA+IGt5b1wgOwor5o2oID4gc2hhXCA7CivnracgPiBrZW5cIDsKK+mNmyA+IHRhblwgOwor5o2cID4gc291XCA7CivmjL8gPiBzb3VcIDsKK+aMvSA+IGJhblwgOwor56ysID4gZGFpXCA7CivnrKUgPiBzaGlcIDsKK+mMoiA+IHNlblwgOwor56ybID4gZnVlXCA7CivmjJkgPiBreW9cIDsKK+eshCA+IGtlaVwgOwor56u/ID4gc2FvXCA7Civmi74gPiBqdXVcIDsKK+aLtSA+IHNvblwgOwor5ougID4ga3lvXCA7Civnq58gPiBrZWlcIDsKK+ernSA+IGhlaVwgOwor5oudID4gaGFpXCA7Civmi5wgPiBoYWlcIDsKK+aLmCA+IGtvdVwgOwor5ouFID4gdGFuXCA7Civnq4MgPiBzb3VcIDsKK+aKtSA+IHRlaVwgOwor5oqxID4gaG91XCA7Civpiq0gPiBzZW5cIDsKK+mKnCA+IGthblwgOwor5oqbID4gaG91XCA7CivpipggPiBtZWlcIDsKK+aKmCA+IG9yaVwgOwor5oqXID4ga291XCA7CivmipUgPiB0b3VcIDsKK+aKkyA+IHNvdVwgOwor6YqFID4gZG91XCA7Civnqb8gPiBzZW5cIDsKK+aJsSA+IHNvdVwgOwor5omuID4gZnVuXCA7CivnqZcgPiBzdWlcIDsKK+aJjSA+IHNhaVwgOwor56mJID4gY2hpXCA7CivnqL8gPiBrb3VcIDsKK+eovSA+IGtlaVwgOwor56i7ID4gdG91XCA7CivmiLsgPiByZWlcIDsKK+aItCA+IHRhaVwgOwor56iyID4gaW5lXCA7CivmiLAgPiBzZW5cIDsKK+eomiA+IGNoaVwgOwor5oiWID4gYXJ1XCA7CivmiJIgPiBrYWlcIDsKK+aIkCA+IHNlaVwgOwor6YiNID4gZG9uXCA7CivnqI4gPiB6ZWlcIDsKK+aIjCA+IGludVwgOwor5oiAID4gcmVuXCA7Civmh7ggPiBrZW5cIDsKK+aHtyA+IGthaVwgOwor6YeRID4ga2luXCA7Civph40gPiBvbW9cIDsKK+eniyA+IGFraVwgOwor5oeJID4geW91XCA7Civph4cgPiBzYWlcIDsKK+aHgyA+IGtpblwgOwor56a9ID4ga2luXCA7CivmhrogPiB0YW5cIDsKK+aGtiA+IG9rdVwgOwor56awID4gZGVpXCA7Civnpq4gPiByZWlcIDsKK+aGrCA+IGtlaVwgOwor5oanID4gZG91XCA7CivmhqQgPiBmdW5cIDsKK+mGkiA+IHNlaVwgOwor5oaQID4gcmVuXCA7Civmho4gPiB6b3VcIDsKK+mGiSA+IHN1aVwgOwor56aFID4gemVuXCA7CivmhoIgPiB5dXVcIDsKK+emgSA+IGtpblwgOwor6YW4ID4gc2FuXCA7CivnpbcgPiB0b3VcIDsKK+aFriA+IHJ5b1wgOwor5oWoID4gZ2FpXCA7CivmhaUgPiB6b3VcIDsKK+aFoyA+IGthblwgOwor5oWiID4gbWFuXCA7CivmhZggPiBzYW5cIDsKK+mFlCA+IHN1aVwgOwor6YWNID4gaGFpXCA7CivmhYwgPiBrb3VcIDsKK+aFiiA+IGtlblwgOwor56S8ID4gcmVpXCA7CivnpLogPiBzaGlcIDsKK+aEnyA+IGthblwgOwor56SZID4gZ2FpXCA7Civpg7UgPiB5dXVcIDsKK+aDsyA+IHNvdVwgOwor5oOxID4gbm91XCA7Civmg6ggPiBzYW5cIDsKK+aDoCA+IGtlaVwgOwor56OQID4gaXdhXCA7Civpg44gPiByb3VcIDsKK+mDiiA+IGtvdVwgOwor5oOFID4gam91XCA7CivmgrwgPiB0b3VcIDsKK+aCtiA+IG1vblwgOwor5oK0ID4gc3VpXCA7CivmgqMgPiBrYW5cIDsKK+aCoCA+IHl1dVwgOwor56KXID4gd2FuXCA7CivmgpYgPiBoYWlcIDsKK+aClCA+IGthaVwgOwor6YKKID4gaGVuXCA7CivpgoQgPiBrYW5cIDsKK+mCgiA+IGthaVwgOwor6YG4ID4gc2VuXCA7CivpgbIgPiBjaGlcIDsKK+aBsCA+IGtvdVwgOwor6YGuID4gc2hhXCA7Civpga0gPiBzb3VcIDsKK+aBryA+IGlraVwgOwor56GsID4ga291XCA7CivmgaggPiBrb25cIDsKK+mBpSA+IHlvdVwgOwor6YGjID4ga2VuXCA7CivpgaAgPiB0b29cIDsKK+mBnCA+IHNvblwgOwor6YGZID4geW91XCA7CivpgZEgPiBrb3VcIDsKK+mBjSA+IGhlblwgOwor5oGNID4ga291XCA7CivpgYogPiB5dXVcIDsKK+aBiyA+IGtvaVwgOwor6YGHID4gZ3V1XCA7CivpgYUgPiBjaGlcIDsKK+mBgiA+IHN1aVwgOwor6YGBID4gdG9uXCA7CivmgKogPiBrYWlcIDsKK+aApyA+IHNlaVwgOwor56ClID4gc2hpXCA7CivpgKMgPiByZW5cIDsKK+mAoiA+IGhvdVwgOwor6YCgID4gem91XCA7CivmgKAgPiB0YWlcIDsKK+mAniA+IHRlaVwgOwor6YCdID4gc2VpXCA7CivmgJ0gPiBzaGlcIDsKK+mAmSA+IGdlblwgOwor56CVID4gc2FpXCA7CivnoJQgPiBrZW5cIDsKK+mAjyA+IHRvdVwgOwor6YCFID4ga291XCA7CivpgIMgPiB0b3VcIDsKK+mAgSA+IHNvdVwgOwor6YCAID4gdGFpXCA7Civlv78gPiBmdW5cIDsKK+m+pCA+IGthaVwgOwor6b6hID4gc3VpXCA7CivpvpggPiB0b3VcIDsKK+m+lyA+IHJlaVwgOwor6b6WID4gdG91XCA7CivpvpIgPiByeXVcIDsKK+m+kCA+IGhvdVwgOwor6b29ID4ga2luXCA7CivpvbcgPiBha3VcIDsKK+m9tiA+IGFnb1wgOwor6b21ID4gZ291XCA7CivpvbMgPiBndW5cIDsKK+m9ryA+IGdlaVwgOwor6b2tID4gc2hvXCA7CivpvawgPiBneW9cIDsKK+m9qSA+IGdvdVwgOwor6b2eID4gZ2VuXCA7CivpvZ0gPiBjaGlcIDsKK+m9mCA+IGthaVwgOwor6b2XID4ga2luXCA7CivpvZIgPiBzaGlcIDsKK+m9jyA+IHNlaVwgOwor6b2LID4gc2FpXCA7CivpvYQgPiBzaGFcIDsKK+m9gSA+IGtvdVwgOwor6by6ID4gcnVpXCA7CivpvLcgPiBrZWlcIDsKK+m8siA+IGtvblwgOwor6byxID4gc2VpXCA7CivpvKogPiBzZWlcIDsKK+m8oiA+IGZ1blwgOwor6byhID4gc2hvXCA7CivpvJ8gPiB0b3VcIDsKK+m8myA+IGtvdVwgOwor6byZID4gaGVpXCA7CivpvJcgPiB0b3VcIDsKK+m8liA+IGZ1blwgOwor6byVID4gdG91XCA7CivpvJIgPiBzaGlcIDsKK+m8kSA+IHRlaVwgOwor6byQID4gZGFpXCA7CivpvIcgPiBnb3VcIDsKK+m8hSA+IGNoaVwgOwor6byDID4gd2FpXCA7Civpu78gPiBnZW5cIDsKK+m7vSA+IGJvdVwgOwor6bu5ID4gY2hpXCA7Civpu7YgPiBhemFcIDsKK+m7tSA+IHRhblwgOwor6buyID4gc2FuXCA7Civpu7EgPiB0YWlcIDsKK+m7riA+IHRhblwgOwor6busID4ga2FuXCA7Civpu6cgPiByZWlcIDsKK+m7nSA+IHl1dVwgOwor6buVID4gdGFuXCA7Civpu5QgPiBrZW5cIDsKK+m7jyA+IG5lblwgOwor6buOID4gcmVpXCA7Civpu4wgPiBrb3VcIDsKK+m7iyA+IGtvdVwgOwor6buIID4gdG91XCA7Civpu4YgPiBrb3VcIDsKK+m7gyA+IGtvdVwgOwor6bq6ID4gbWVuXCA7CivpurUgPiBiZW5cIDsKK+m6syA+IHJhaVwgOwor6bqwID4gYm91XCA7Civpuq4gPiBreW9cIDsKK+m6rSA+IGhvdVwgOwor6bqqID4gbWVuXCA7Civpup8gPiByaW5cIDsKK+m6nSA+IHNoYVwgOwor6bqbID4gYmVpXCA7CivpupYgPiBrZWlcIDsKK+m6lSA+IGtpblwgOwor6bqRID4gZ2VpXCA7Civpuo8gPiBraW5cIDsKK+m6iCA+IHNodVwgOwor6bqHID4ga2luXCA7CivpuoUgPiBob3VcIDsKK+m6gyA+IGhvdVwgOwor6bqAID4geXV1XCA7CivpubwgPiBrZW5cIDsKK+m5uyA+IGthblwgOwor6bm5ID4ga2FuXCA7CivpuLAgPiByZWlcIDsKK+m4niA+IHJhblwgOwor6bibID4ga2FuXCA7CivpuI4gPiB5b3VcIDsKK+m4hyA+IHNlblwgOwor6biCID4ga2VpXCA7Civpt7QgPiBrYW5cIDsKK+m3syA+IGthblwgOwor6betID4gYmFuXCA7Civpt6UgPiBzaGlcIDsKK+m3oCA+IGd5b1wgOwor6beeID4gc291XCA7Civpt5kgPiBzaGlcIDsKK+m3lSA+IHlvdVwgOwor6beUID4gZ291XCA7Civpt5MgPiBzaGFcIDsKK+m3jyA+IHRlblwgOwor6beJID4gdGVpXCA7Civpt4cgPiBrb3VcIDsKK+m3hiA+IHRlblwgOwor6beCID4geW91XCA7Civptr8gPiBzaGlcIDsKK+m2vCA+IGtlblwgOwor6ba1ID4gc3V1XCA7CivptrEgPiBrZW5cIDsKK+m2rCA+IHNvdVwgOwor6bakID4ga29uXCA7CivptpcgPiB0ZWlcIDsKK+m2iiA+IGtvdVwgOwor6baHID4gdG91XCA7CivptoYgPiByYWlcIDsKK+m2hCA+IHNlaVwgOwor6bW+ID4ga29uXCA7CivptbwgPiBrb3VcIDsKK+m1uyA+IHN1aVwgOwor6bWsID4gaG91XCA7CivptasgPiB0b3VcIDsKK+m1pyA+IGhlaVwgOwor6bWjID4gcmFpXCA7CivptZEgPiBrZW5cIDsKK+m1iiA+IGtvdVwgOwor6bWIID4gdGVuXCA7CivptYQgPiBzaGlcIDsKK+m1gSA+IGtvdVwgOwor6bS/ID4ga291XCA7CivptL4gPiBib3VcIDsKK+m0uyA+IGtvdVwgOwor6bS6ID4gdGVpXCA7CivptLQgPiBrb3VcIDsKK+m0siA+IHNoaVwgOwor6bSmID4geW91XCA7CivptJ8gPiBzaGlcIDsKK+m0niA+IHlvdVwgOwor6bScID4gc2hpXCA7CivptJggPiBoZW5cIDsKK+m0kiA+IHJlaVwgOwor6bSLID4gaG91XCA7CivptIggPiBnYW5cIDsKK+mzuSA+IGtlblwgOwor6bO3ID4gc2hpXCA7Civps7MgPiBob3VcIDsKK+mzsiA+IHNoaVwgOwor6bOwID4gbmlvXCA7Civps68gPiBob3VcIDsKK+mzriA+IGtlaVwgOwor6bOrID4gZ2FuXCA7CivpsrkgPiBzb3VcIDsKK+mymSA+IGthaVwgOwor6bKJID4geXV1XCA7CivpsbsgPiBzZW5cIDsKK+mxriA+IHNob1wgOwor6bGkID4ga2FuXCA7CivpsaMgPiB0YW5cIDsKK+mxoCA+IGthaVwgOwor6bGfID4ga291XCA7CivpsZ4gPiBrYW5cIDsKK+mxnSA+IGZ1blwgOwor6bGbID4gZXNvXCA7CivpsZYgPiBrZWlcIDsKK+mxlCA+IHNlblwgOwor6bGTID4gc2VuXCA7CivpsYcgPiBrb3VcIDsKK+mxhCA+IHNlblwgOwor6bC2ID4gc2VpXCA7CivpsLUgPiBiaW5cIDsKK+mwsiA+IGdvdVwgOwor6bCxID4gcmVuXCA7CivpsKogPiBrb3VcIDsKK+mwqSA+IHlvdVwgOwor6bCnID4gdG91XCA7CivpsKYgPiBzaGlcIDsKK+mwpSA+IGthblwgOwor6bCjID4gc2hpXCA7CivpsJwgPiBrZW5cIDsKK+mwlSA+IGViaVwgOwor6bCUID4ga2FuXCA7CivpsJMgPiBlcmFcIDsKK+mwkSA+IHlvdVwgOwor6bCDID4gd2FpXCA7CivpsIEgPiBzZW5cIDsKK+mwgCA+IGthblwgOwor6a+/ID4gaGVuXCA7Civpr7ogPiBzaG9cIDsKK+mvuSA+IHNlaVwgOwor6a+4ID4ga291XCA7Civpr7cgPiB0ZWlcIDsKK+mvtSA+IGFqaVwgOwor6a+vID4gc2VpXCA7Civpr6sgPiBzb3VcIDsKK+mvpCA+IGtvblwgOwor6a+iID4gZ2VpXCA7Civpr58gPiB0b3VcIDsKK+mvmyA+IHRhaVwgOwor6a+YID4gZGFpXCA7Civpr4kgPiBrb2lcIDsKK+mviCA+IHl1dVwgOwor6a+HID4ga2FuXCA7Civpr4EgPiBrb3VcIDsKK+mvgCA+IGtvblwgOwor6a6+ID4gZGFpXCA7CivprrggPiBiZW5cIDsKK+mutyA+IHRlaVwgOwor6a6wID4ga2FpXCA7CivprqkgPiBob3VcIDsKK+mupiA+IHRvdVwgOwor6a6UID4ga3lvXCA7CivprpAgPiB0YWlcIDsKK+mujyA+IHNlaVwgOwor6a6OID4gYXl1XCA7CivprosgPiB5dXVcIDsKK+muhiA+IHNlaVwgOwor6a2/ID4gcmVpXCA7CivprbcgPiB5dXVcIDsKK+mttSA+IGZ1blwgOwor6a20ID4gaG91XCA7CivprbMgPiBzaGlcIDsKK+mtrSA+IGdlblwgOwor6a2sID4gaGFuXCA7CivpraogPiBrYWlcIDsKK+mtqCA+IHRvblwgOwor6a2lID4gZ291XCA7CivpraMgPiBzaG9cIDsKK+mtniA+IGVyaVwgOwor6a2cID4gamluXCA7CivprZsgPiB0b3VcIDsKK+mtliA+IGt5b1wgOwor6a2RID4gY2hpXCA7CivprY0gPiBib3VcIDsKK+mtiyA+IHRhaVwgOwor6ay3ID4gc291XCA7CivprLUgPiBzZW5cIDsKK+mssyA+IGtlblwgOwor6aytID4gdG91XCA7CivprKwgPiB0b3VcIDsKK+msqyA+IGthblwgOwor6ayqID4gdG91XCA7CivprKggPiBrb3VcIDsKK+mspyA+IHRvdVwgOwor6aymID4gdG91XCA7CivprKUgPiB0b3VcIDsKK+msnyA+IGthblwgOwor6aycID4ga2FuXCA7CivprJkgPiBzb3VcIDsKK+msliA+IHNhblwgOwor6ayLID4gc2VuXCA7CivprIkgPiBzb3VcIDsKK+msiCA+IGtlblwgOwor6ayFID4gaG91XCA7CivprIQgPiB0ZWlcIDsKK+msgyA+IHNvdVwgOwor6ayCID4gYmluXCA7CivprIAgPiB0ZWlcIDsKK+mruyA+IGtlaVwgOwor6auzID4gYm91XCA7Civpq7EgPiBob3VcIDsKK+mrryA+IHplblwgOwor6aupID4gYmluXCA7Civpq6cgPiB0YW5cIDsKK+mrpiA+IGJvdVwgOwor6aulID4gemVuXCA7Civpq6MgPiBob3VcIDsKK+mroiA+IHRlaVwgOwor6augID4ga29uXCA7Civpq54gPiBzb3VcIDsKK+mrmyA+IGtvdVwgOwor6auZID4ga291XCA7Civpq5YgPiBrYW5cIDsKK+mrlSA+IGhpblwgOwor6auTID4genVpXCA7Civpq5IgPiBzb3VcIDsKK+mrkCA+IGtvdVwgOwor6auPID4gcm91XCA7Civpq4ggPiBob3VcIDsKK+mrgSA+IGthaVwgOwor6aq/ID4gaGVuXCA7Civpqr4gPiBrb3VcIDsKK+mquSA+IGtvdVwgOwor6aq2ID4gdGVpXCA7CivpqrUgPiB0YWlcIDsKK+mqtCA+IHNoaVwgOwor6aqwID4gdG91XCA7Civpqq8gPiBrb3VcIDsKK+mqlCA+IHNvdVwgOwor6ampID4ga2FuXCA7CivpqaQgPiBqb3VcIDsKK+mpmyA+IGVraVwgOwor6amUID4gdGVuXCA7CivpqZIgPiB0YW5cIDsKK+mpjiA+IHJpblwgOwor6amHID4gY2hpXCA7CivpqYQgPiBzb3VcIDsKK+mpgiA+IHNhblwgOwor6amBID4gZ291XCA7CivpqLogPiBjaGlcIDsKK+mouCA+IHNlblwgOwor6ai1ID4gZ2VuXCA7CivpqLAgPiB0b3VcIDsKK+moqyA+IGtlblwgOwor6aioID4gdGFuXCA7CivpqKMgPiBzb3VcIDsKK+mooCA+IHRlaVwgOwor6aiXID4gaGVuXCA7CivpqJAgPiBrZW5cIDsKK+mojCA+IHNvdVwgOwor6aiLID4gcmFpXCA7CivpqIggPiBoZW5cIDsKK+mohSA+IHN1aVwgOwor6aiDID4gZ2FpXCA7CivpqIIgPiBzZWlcIDsKK+mogSA+IHRlaVwgOwor6ae+ID4gdGFpXCA7Civpp70gPiBrZW5cIDsKK+mnuyA+IGthblwgOwor6ae5ID4gYm91XCA7Civpp7QgPiBrYWlcIDsKK+mnrSA+IGthaVwgOwor6aerID4ga2VpXCA7Civpp6cgPiB0b3VcIDsKK+mnoiA+IGhlblwgOwor6aefID4gc2hpXCA7Civpp5ogPiB5b3VcIDsKK+mnmCA+IHRhaVwgOwor6aeUID4gc291XCA7Civpp4kgPiBrZWlcIDsKK+mmvCA+IGJ1blwgOwor6aa6ID4gc291XCA7CivpprUgPiBzaHVcIDsKK+mmqCA+IGtlaVwgOwor6aamID4ga2VuXCA7CivpppMgPiBzYW5cIDsKK+mlniA+IHNhblwgOwor6aWbID4gYm91XCA7CivppZkgPiBmdW5cIDsKK+mlmCA+IHNlblwgOwor6aWVID4gdG91XCA7CivppZQgPiB5b3VcIDsKK+mljiA+IHNoaVwgOwor6aWNID4gemVuXCA7CivppYwgPiBzZW5cIDsKK+mliiA+IHNhblwgOwor6aWJID4ga2luXCA7CivppYEgPiB5b3VcIDsKK+mlgCA+IHRvdVwgOwor6aS7ID4ga291XCA7CivppLkgPiB0b3VcIDsKK+mktSA+IGRhaVwgOwor6aS0ID4gZnVuXCA7CivppLMgPiB0b3VcIDsKK+mksSA+IGtvdVwgOwor6aSnID4gZGFpXCA7CivppKQgPiB0YW5cIDsKK+mkoiA+IGhvdVwgOwor6aSgID4gaGVpXCA7CivppJsgPiBrb25cIDsKK+mkmiA+IGtvdVwgOwor6aSWID4gdG91XCA7CivppJIgPiBkYWlcIDsKK+mkjCA+IGVzYVwgOwor6aSIID4gc2hpXCA7CivppIMgPiBrb3VcIDsKK+mkgiA+IHRlblwgOwor6aSBID4gamluXCA7Civpo7MgPiBzaHVcIDsKK+mjsCA+IGhhblwgOwor6aOqID4gamluXCA7Civpo6kgPiB0b25cIDsKK+mjpyA+IHNvblwgOwor6aOmID4ga2VuXCA7Civpo6MgPiB0ZWlcIDsKK+mjoSA+IHNhblwgOwor6aOMID4gZnV1XCA7Civpor8gPiBoYW5cIDsKK+miuyA+IHlvdVwgOwor6aK6ID4geW91XCA7CivporggPiBzaGlcIDsKK+mitCA+IHNlblwgOwor6aKxID4gdGFpXCA7Civpoq0gPiBzZW5cIDsKK+mhtCA+IGthblwgOwor6aGwID4gaGluXCA7CivpoaogPiBrYWlcIDsKK+mhpSA+IGtvdVwgOwor6aGiID4gYmFuXCA7CivpoZogPiB0ZW5cIDsKK+mhmSA+IHNvdVwgOwor6aGTID4gc2VuXCA7CivpoZEgPiBrYW5cIDsKK+mhiyA+IHNhaVwgOwor6aGHID4gc3VpXCA7CivpoYQgPiBrYW5cIDsKK+mgviA+IHNoaVwgOwor6aC9ID4gdGFpXCA7CivpoLkgPiB0YWlcIDsKK+mgtyA+IGthblwgOwor6aCzID4gdGVpXCA7CivpoLIgPiB0ZWlcIDsKK+mgryA+IGthaVwgOwor6aCuID4ga2FpXCA7CivpoKYgPiBrYWlcIDsKK+mgoCA+IGdhaVwgOwor6aCcID4ga2FuXCA7CivpoJYgPiBoYW5cIDsKK+mgkiA+IGhhblwgOwor6aCPID4ga291XCA7CivpoIggPiBzaHVcIDsKK+mghyA+IGthblwgOwor6Z+4ID4gaG91XCA7Civpn7QgPiBzb3VcIDsKK+mfsiA+IHNlaVwgOwor6Z+xID4gc2VuXCA7Civpn68gPiBzZW5cIDsKK+mfnSA+IGtvdVwgOwor6Z+cID4gdG91XCA7Civpn5sgPiBoYWlcIDsKK+mfkyA+IGthblwgOwor6Z+QID4ga291XCA7Civpn44gPiBiYWlcIDsKK+mfjCA+IGppblwgOwor6Z+KID4gcmFuXCA7Civpn4kgPiBzZW5cIDsKK+mfhiA+IHNlblwgOwor6Z+FID4ga2VuXCA7Civpn4QgPiBha3VcIDsKK+meuiA+IHRvdVwgOwor6Z62ID4gaGFuXCA7CivpnrMgPiB0b3VcIDsKK+mesiA+IGtvdVwgOwor6Z6xID4gdG91XCA7Civpnq4gPiB0ZWlcIDsKK+merCA+IGtlblwgOwor6Z6jID4ganV1XCA7Civpnp4gPiBoZWlcIDsKK+menCA+IHRvdVwgOwor6Z6aID4ga291XCA7CivpnpkgPiBrZW5cIDsKK+melyA+IHRvdVwgOwor6Z6WID4gc2FpXCA7CivpnpUgPiBnb3VcIDsKK+meiSA+IHRvdVwgOwor6Z6AID4gdG91XCA7Civpnb0gPiBiYW5cIDsKK+mdvCA+IHRhblwgOwor6Z24ID4gc291XCA7CivpnbMgPiBraW5cIDsKK+mdsSA+IGppblwgOwor6Z2tID4gamluXCA7CivpnasgPiBzYWlcIDsKK+mdqiA+IHRlaVwgOwor6Z2nID4ga2FpXCA7CivpnaYgPiB0ZW5cIDsKK+mdpCA+IGhvdVwgOwor6Z2jID4gbWVuXCA7CivpnaAgPiBrb3VcIDsKK+mdmyA+IHRlblwgOwor6Z2aID4gc2VpXCA7CivpnZcgPiB0ZWlcIDsKK+mdkSA+IHNlaVwgOwor6Z2KID4gZnV1XCA7CivpnYYgPiB0YWlcIDsKK+mdgSA+IHJhaVwgOwor6Zy+ID4gYmFpXCA7CivpnL0gPiBzZWlcIDsKK+mcnSA+IHJlaVwgOwor6ZybID4gcmVpXCA7CivpnJogPiBib3VcIDsKK+mcliA+IHJpblwgOwor6ZyTID4gZ2VpXCA7CivpnJEgPiB0ZW5cIDsKK+mcjiA+IHNvdVwgOwor6ZyJID4gYmFpXCA7CivpnIggPiBoYWlcIDsKK+mchiA+IHRlaVwgOwor6ZuxID4gaG91XCA7Civpm7AgPiBmdW5cIDsKK+mbryA+IGJ1blwgOwor6ZufID4ga2VpXCA7Civpm54gPiBrZWlcIDsKK+mbnSA+IHlvdVwgOwor6ZuaID4ga2FuXCA7Civpm5kgPiBzb3VcIDsKK+mbjiA+IHNob1wgOwor6ZuNID4geW91XCA7Civpm4sgPiBzZW5cIDsKK+mbiiA+IGtvdVwgOwor6ZuIID4ga2FuXCA7CivpmrkgPiBzdWlcIDsKK+mauCA+IHJlaVwgOwor6Zq3ID4gcmVpXCA7CivpmrYgPiB0YWlcIDsKK+matCA+IHJvdVwgOwor6ZqvID4gdG91XCA7Civpmq4gPiBzZWlcIDsKK+mapyA+IHN1aVwgOwor6ZqmID4gaGVpXCA7CivpmqUgPiB0b3VcIDsKK+mapCA+IHRhaVwgOwor6ZqdID4gdG91XCA7CivpmpogPiB0b3VcIDsKK+malyA+IGthaVwgOwor6ZqRID4ga2FpXCA7Civpmo0gPiBrb3VcIDsKK+mahCA+IHRlaVwgOwor6ZqDID4gc2h1XCA7Civpmb4gPiBqb3VcIDsKK+mZvCA+IHNob1wgOwor6Zm3ID4ga2FuXCA7CivpmbIgPiBzdWlcIDsKK+mZriA+IHRhaVwgOwor6ZmsID4gc3V1XCA7CivpmaogPiBiYWlcIDsKK+mZpiA+IHRvdVwgOwor6ZmhID4gdG91XCA7CivpmZ0gPiBzZW5cIDsKK+mZnCA+IGtvdVwgOwor6ZmbID4gaGVpXCA7CivpmZggPiBrZWlcIDsKK+mZliA+IGthaVwgOwor6ZmUID4gZ2FpXCA7CivpmYsgPiByb3VcIDsKK+mYuiA+IGt5b1wgOwor6Zi4ID4gYWt1XCA7CivpmLcgPiB0ZWlcIDsKK+mYsyA+IHlvdVwgOwor6ZixID4gc2VpXCA7CivpmK8gPiBzaGlcIDsKK+mYriA+IGdlblwgOwor6ZisID4ga291XCA7CivpmKggPiBha3VcIDsKK+mYpiA+IHlvdVwgOwor6ZikID4gY2hpXCA7CivpmKEgPiBzZW5cIDsKK+mXpiA+IGdvblwgOwor6ZekID4ga2FuXCA7Civpl6EgPiBzZW5cIDsKK+mXoCA+IGthaVwgOwor6ZeZID4ga2VpXCA7Civpl5cgPiBrYW5cIDsKK+mXlCA+IGtvdVwgOwor6ZeTID4ga2FpXCA7Civpl5IgPiB0b3VcIDsKK+mXkCA+IHRlblwgOwor6ZeMID4gcmFuXCA7Civpl4YgPiBoYW5cIDsKK+mWvyA+IGJ1blwgOwor6Za9ID4ga29uXCA7CivplrogPiBiZW5cIDsKK+mWrCA+IHJvdVwgOwor6ZarID4ga29uXCA7CivplqkgPiBiZW5cIDsKK+mWqCA+IGtlaVwgOwor6ZanID4ga291XCA7CivplqEgPiBnYWlcIDsKK+mWniA+IGhlblwgOwor6ZadID4gcmVpXCA7CivplpkgPiB0b3VcIDsKK+mWmCA+IGtvdVwgOwor6ZaUID4gYmluXCA7Civplo8gPiBqdW5cIDsKK+mWjiA+IGtvdVwgOwor6ZaNID4gaG91XCA7CivplowgPiBrb3VcIDsKK+mWiCA+IGthblwgOwor6ZaHID4gaGVpXCA7CivploIgPiBzYW5cIDsKK+mVtCA+IHJvdVwgOwor6ZWuID4ga2FuXCA7CivplL0gPiBrb3VcIDsKK+mTpiA+IHNlblwgOwor6ZOTID4gYm91XCA7Civpk4cgPiBob3VcIDsKK+mShCA+IHJhblwgOwor6ZG+ID4gcmFuXCA7Civpkb0gPiBzYW5cIDsKK+mRtyA+IGpvdVwgOwor6ZGyID4gam91XCA7CivpkbEgPiBzYW5cIDsKK+mRryA+IHNlblwgOwor6ZGtID4gcmFuXCA7CivpkasgPiBraW5cIDsKK+mRqCA+IHJvdVwgOwor6ZGeID4gcm91XCA7CivpkZsgPiBrb3VcIDsKK+mRmiA+IHNhblwgOwor6ZGZID4ga2VpXCA7CivpkZEgPiBrYW5cIDsKK+mRjCA+IGhpblwgOwor6ZGIID4gZ2VpXCA7CivpkYUgPiBrb3VcIDsKK+mRgSA+IGJhblwgOwor6ZC7ID4ga3lvXCA7CivpkLogPiB0b3VcIDsKK+mQtiA+IGthblwgOwor6ZCzID4gcmFpXCA7CivpkLEgPiBzZW5cIDsKK+mQriA+IHJlblwgOwor6ZCrID4gc2VuXCA7CivpkJ8gPiB0ZWlcIDsKK+mQmSA+IHRvdVwgOwor6ZCXID4ga2FuXCA7CivpkJUgPiBzYW5cIDsKK+mQkyA+IHRhaVwgOwor6ZCPID4gc29uXCA7CivpkIkgPiBzZW5cIDsKK+mQhyA+IGhhblwgOwor6ZCEID4ga291XCA7CivpkIMgPiBkb3VcIDsKK+mQgSA+IHNoaVwgOwor6Y+7ID4gcmluXCA7Civpj7ggPiB0ZWlcIDsKK+mPqCA+IHNhblwgOwor6Y+nID4gcm91XCA7Civpj6QgPiByb3VcIDsKK+mPnyA+IHNhblwgOwor6Y+eID4geW91XCA7Civpj50gPiBtYW5cIDsKK+mPnCA+IHRvdVwgOwor6Y+ZID4gc2FpXCA7Civpj5cgPiBrb3VcIDsKK+mPkyA+IHNvdVwgOwor6Y+LID4gYmFuXCA7Civpj4ggPiByZW5cIDsKK+mPhyA+IHNlblwgOwor6Y+GID4ga2FuXCA7Civpj4QgPiB0YW5cIDsKK+mOrCA+IGtvdVwgOwor6Y6rID4gYmFuXCA7CivpjqkgPiBzYWlcIDsKK+mOpCA+IGtvdVwgOwor6Y6hID4gc2hpXCA7Civpjp4gPiBoZWlcIDsKK+mOlyA+IHNvdVwgOwor6Y6VID4gdG91XCA7CivpjpQgPiB5b3VcIDsKK+mOkiA+IGRvdVwgOwor6Y6KID4gaGF1XCA7Civpjb8gPiBzaGlcIDsKK+mNvSA+IGhlblwgOwor6Y20ID4gdGFuXCA7CivpjbMgPiBrYW5cIDsKK+mNsSA+IHlvdVwgOwor6Y2wID4ga2FuXCA7Civpja8gPiBzb3VcIDsKK+mNrSA+IGtvdVwgOwor6Y2qID4gYm91XCA7CivpjakgPiB0ZW5cIDsKK+mNpyA+IGtvdVwgOwor6Y2kID4gc291XCA7CivpjaAgPiBrb3VcIDsKK+mNniA+IGtvdVwgOwor6Y2aID4geW91XCA7CivpjZcgPiB0ZWlcIDsKK+mNlSA+IGt1blwgOwor6Y2SID4ganV1XCA7CivpjZEgPiBodXVcIDsKK+mNkCA+IHNvdVwgOwor6Y2KID4gcmVuXCA7CivpjYkgPiB0ZWlcIDsKK+mNhyA+IGthaVwgOwor6Y2EID4ga2VpXCA7CivpjLUgPiBuaWVcIDsKK+mMsyA+IG1vdVwgOwor6YysID4gcmVuXCA7CivpjKogPiB0ZW5cIDsKK+mMpyA+IGthblwgOwor6YylID4gaWt1XCA7CivpjKMgPiB0ZWlcIDsKK+mMoCA+IGpvdVwgOwor6YyfID4gdGFuXCA7CivpjJ0gPiBzb3VcIDsKK+mMnCA+IGpvdVwgOwor6YyaID4gc291XCA7CivpjJkgPiBzaGlcIDsKK+mMlSA+IGtvblwgOwor6YyUID4gdG91XCA7CivpjJEgPiByYWlcIDsKK+mMiCA+IGtlblwgOwor6YyAID4gcmluXCA7Civpi7sgPiBrZW5cIDsKK+mLriA+IHNlaVwgOwor6YusID4gaGFuXCA7Civpi6cgPiBrZW5cIDsKK+mLpSA+IHRvdVwgOwor6YuhID4ga2FuXCA7Civpi58gPiBzZW5cIDsKK+mLmSA+IGd5b1wgOwor6YuXID4ga2VuXCA7Civpi5UgPiBzaGlcIDsKK+mLkyA+IHRlblwgOwor6YuQID4ga291XCA7Civpi44gPiBrYW5cIDsKK+mLjCA+IHRlaVwgOwor6YuLID4gc2VuXCA7Civpi4cgPiBoYWlcIDsKK+mLhSA+IHNoaVwgOwor6YuDID4gcm91XCA7Civpi4IgPiBiYWlcIDsKK+mLgSA+IHJ5b1wgOwor6YuAID4gdG91XCA7CivpirsgPiB0ZWlcIDsKK+mKuiA+IHNvdVwgOwor6YqyID4ga2FuXCA7CivpiqcgPiBrb3VcIDsKK+mKpCA+IGJlaVwgOwor6YqgID4gcm91XCA7CivpipogPiB5b3VcIDsKK+mKmSA+IGthaVwgOwor6YqXID4ga291XCA7CivpipYgPiBzaHVcIDsKK+mKkyA+IHNlblwgOwor6YqSID4ga2VpXCA7CivpioggPiB0ZWlcIDsKK+mJvyA+IGtvdVwgOwor6Ym8ID4gaGVpXCA7CivpibkgPiBzaGlcIDsKK+mJuCA+IGtvdVwgOwor6Ym3ID4ga291XCA7CivpibYgPiBrZWlcIDsKK+mJtSA+IHRvdVwgOwor6YmxID4ga291XCA7CivpibAgPiBzaGlcIDsKK+mJqSA+IGpvdVwgOwor6YmoID4gZGVpXCA7CivpiacgPiBib3VcIDsKK+mJpCA+IGtvdVwgOwor6YmhID4gaGFuXCA7CivpiZwgPiBmdXVcIDsKK+mJmSA+IHRhaVwgOwor6YmXID4ga2FuXCA7CivpiY8gPiBzaG9cIDsKK+mJjiA+IHNvdVwgOwor6YmJID4ga2VuXCA7CivpiYggPiBzaGFcIDsKK+mJhyA+IHNoaVwgOwor6YmGID4gdGVuXCA7CivpiYUgPiBreW9cIDsKK+mJgyA+IHNoaVwgOwor6YmCID4gc2hpXCA7CivpiYAgPiBrb3VcIDsKK+mIvyA+IHRlblwgOwor6Yi2ID4gc2hpXCA7CivpiLUgPiBoZWlcIDsKK+mIsCA+IHNoaVwgOwor6YiuID4gZGVpXCA7CivpiKMgPiBrYWlcIDsKK+mIniA+IGtpblwgOwor6YicID4ga291XCA7CivpiJYgPiBodW5cIDsKK+mIkyA+IGppblwgOwor6YiSID4gc291XCA7CivpiJEgPiBoYW5cIDsKK+mIkCA+IGtlblwgOwor6YiJID4gZG91XCA7CivpiIQgPiB0b3VcIDsKK+mIgSA+IGhvdVwgOwor6Ye/ID4ga2luXCA7Civph7wgPiBrZW5cIDsKK+mHtiA+IHNoaVwgOwor6YexID4gdGVpXCA7Civph68gPiBib3VcIDsKK+mHriA+IHNlblwgOwor6YetID4ga291XCA7Civph6wgPiBrYW5cIDsKK+mHqSA+IGhhblwgOwor6YenID4gc2VuXCA7Civph6YgPiBrb3VcIDsKK+mHpCA+IHNhblwgOwor6YeWID4gdG91XCA7Civph4kgPiB5dXVcIDsKK+mHhiA+IGhhblwgOwor6YeFID4gZ2VuXCA7Civph4MgPiBzaGlcIDsKK+mHgSA+IGtpblwgOwor6YeAID4gam91XCA7Civphr0gPiByZWlcIDsKK+mGuiA+IGt1blwgOwor6Ya4ID4gam91XCA7CivphrYgPiBnZW5cIDsKK+mGtSA+IGt5b1wgOwor6Ya0ID4gcmVpXCA7CivphrMgPiBla2lcIDsKK+mGsiA+IGpvdVwgOwor6YawID4gdGFuXCA7Civphq8gPiBrZWlcIDsKK+mGpiA+IHNhblwgOwor6YaiID4ga2FpXCA7CivphpggPiBrb3VcIDsKK+mGkyA+IHRhblwgOwor6YaRID4gc2hvXCA7Civpho4gPiBkYWlcIDsKK+mGjSA+IHRlaVwgOwor6YaGID4gc2FuXCA7CivphoUgPiBoYWlcIDsKK+mGgiA+IHJpblwgOwor6YW7ID4gc3VpXCA7CivphbkgPiByYWlcIDsKK+mFtiA+IGJhaVwgOwor6YW1ID4ga291XCA7CivphbIgPiB0ZWlcIDsKK+mFrSA+IHl1dVwgOwor6YWpID4gbWVpXCA7CivphaMgPiBrYW5cIDsKK+mFmiA+IGh1blwgOwor6YWYID4gdG91XCA7CivphZYgPiB0YW5cIDsKK+mFiiA+IHRlaVwgOwor6YWHID4gc2FuXCA7CivphYYgPiBmdXVcIDsKK+mFgyA+IHJlaVwgOwor6YS9ID4gdGVuXCA7CivphLwgPiBzYWJcIDsKK+mEuiA+IGtvdVwgOwor6YS3ID4gaG91XCA7CivphLYgPiBrYWlcIDsKK+mEsiA+IHRhblwgOwor6YSwID4gcmluXCA7CivphK8gPiBzZW5cIDsKK+mEriA+IGJvdVwgOwor6YStID4gdGVpXCA7CivphKcgPiB0b3VcIDsKK+mEniA+IGdpblwgOwor6YSYID4geW91XCA7CivphJcgPiBrb3VcIDsKK+mEkiA+IHN1dVwgOwor6YSNID4gbWVpXCA7CivphIQgPiBrZW5cIDsKK+mDryA+IHRhblwgOwor6YOlID4gaGFpXCA7Civpg6EgPiBndW5cIDsKK+mDnyA+IGtvdVwgOwor6YOeID4gcm91XCA7Civpg5wgPiBrb3VcIDsKK+mDmCA+IHJ5b1wgOwor6YOXID4gY2hpXCA7Civpg5UgPiBzZWlcIDsKK+mDkiA+IHJvdVwgOwor6YOMID4ga2VpXCA7Civpg4ggPiBrb3VcIDsKK+mDgyA+IGtvdVwgOwor6YOBID4gaWt1XCA7Civpgr4gPiBjaHVcIDsKK+mCvSA+IGtlaVwgOwor6YK2ID4gaGFpXCA7CivpgrQgPiBoZWlcIDsKK+mCsCA+IHRhaVwgOwor6YKvID4ga2FuXCA7CivpgqggPiBzb25cIDsKK+mCoiA+IGtlaVwgOwor6YKhID4gaG91XCA7CivpgqAgPiBoaW5cIDsKK+mCmSA+IGJvdVwgOwor6YKXID4ga2FuXCA7CivpgpUgPiB5b3VcIDsKK+mCkSA+IHl1dVwgOwor6YKOID4geXV1XCA7CivpgowgPiByZWlcIDsKK+mCiSA+IGhlblwgOwor6YKFID4ga2VuXCA7CivpgoMgPiBzdWlcIDsKK+mCgSA+IGJhaVwgOwor6YKAID4geW91XCA7Civpgb0gPiBreW9cIDsKK+mBtyA+IHNlblwgOwor6YG2ID4gam91XCA7CivpgbUgPiBqdW5cIDsKK+mBtCA+IHJpblwgOwor6YGwID4gdGVpXCA7Civpga8gPiB0b25cIDsKK+mBqCA+IGdvdVwgOwor6YGmID4ga2FuXCA7CivpgaIgPiB0b3VcIDsKK+mBnyA+IGNoaVwgOwor6YGeID4gdGVpXCA7CivpgZ0gPiB0b3VcIDsKK+mBmCA+IGtvdVwgOwor6YGJID4gdGVpXCA7CivpgYQgPiBzZW5cIDsKK+mBgyA+IGdlblwgOwor6YC/ID4gdG91XCA7CivpgLMgPiBpa3VcIDsKK+mAsCA+IHl1dVwgOwor6YCuID4gdGFpXCA7CivpgK0gPiBrYW5cIDsKK+mArCA+IGhvdVwgOwor6YCoID4gcmFpXCA7CivpgKUgPiBrYWlcIDsKK+mAlyA+IHRvdVwgOwor6YCVID4ga2VpXCA7CivpgJMgPiB0ZWlcIDsKK+mAjCA+IHl1dVwgOwor6YCIID4ga2VpXCA7CivpgIQgPiBob3VcIDsKK+i/uiA+IGRhaVwgOwor6L+4ID4gaG91XCA7Civov7YgPiB5dXVcIDsKK+i/tSA+IHRvdVwgOwor6L+0ID4ga2FpXCA7Civov68gPiB0b3VcIDsKK+i/qCA+IHRhaVwgOwor6L+jID4gc2VpXCA7Civov5IgPiBrb3VcIDsKK+i/iiA+IHNvdVwgOwor6L+BID4gc2VuXCA7Civov4AgPiBrYW5cIDsKK+i+uSA+IGhlblwgOwor6L6uID4gaGVuXCA7CivovqggPiBiZW5cIDsKK+i+pyA+IGJlblwgOwor6L6mID4gaGFuXCA7CivovqEgPiBoZW5cIDsKK+i+oCA+IHNhaVwgOwor6L2lID4gcmluXCA7CivovZ4gPiBrYW5cIDsKK+i9mCA+IGthblwgOwor6L2XID4ga2FuXCA7CivovZQgPiByaW5cIDsKK+i9kyA+IGhhblwgOwor6L2SID4gaHVuXCA7CivovZEgPiByYXVcIDsKK+i9jyA+IHNhblwgOwor6L2HID4ga291XCA7CivovYEgPiB0b3VcIDsKK+i8viA+IHRlblwgOwor6Ly6ID4gc2hpXCA7CivovLcgPiBrb3VcIDsKK+i8tiA+IHl1dVwgOwor6LyzID4gc291XCA7CivovK4gPiBqdXVcIDsKK+i8rSA+IHplblwgOwor6LyoID4ga2FuXCA7CivovKYgPiByZW5cIDsKK+i8pSA+IGtvblwgOwor6LyjID4gaG91XCA7CivovKEgPiBrYW5cIDsKK+i8niA+IGJvdVwgOwor6LycID4gc2hpXCA7CivovJcgPiBnZWlcIDsKK+i8kyA+IGJhblwgOwor6LyQID4ga2FuXCA7CivovI8gPiB5dXVcIDsKK+i8iiA+IGNoaVwgOwor6LyHID4gc2VuXCA7Civou7ogPiB5b3VcIDsKK+i7uSA+IHNoaVwgOwor6LuwID4gaGFpXCA7Civou6ggPiByZWlcIDsKK+i7oyA+IGdvdVwgOwor6LugID4gamluXCA7Civou58gPiBuYW5cIDsKK+i7nCA+IGRvdVwgOwor6LubID4gYWt1XCA7Civou5QgPiBqaW5cIDsKK+i7kSA+IHRlaVwgOwor6LuQID4gc2VuXCA7Civou4cgPiB0b3VcIDsKK+i7hiA+IHRlaVwgOwor6LuBID4gcm91XCA7CivourogPiB0b3VcIDsKK+i6sCA+IHRlaVwgOwor6LqtID4gdGFuXCA7CivouqogPiByaW5cIDsKK+i6pyA+IHNoaVwgOwor6LqiID4gdG91XCA7CivouqEgPiBqb3VcIDsKK+i6nSA+IHJhblwgOwor6LqaID4gc2VuXCA7CivoupkgPiByaW5cIDsKK+i6lSA+IGNodVwgOwor6LqUID4gdGVuXCA7CivouosgPiBzZWlcIDsKK+i6iSA+IHRvblwgOwor6LqBID4gc291XCA7CivoubkgPiB0b3VcIDsKK+i5ryA+IGhhblwgOwor6LmtID4gc291XCA7CivouawgPiB0b3VcIDsKK+i5oyA+IG1hblwgOwor6LmhID4geW91XCA7CivouZ0gPiBzaGlcIDsKK+i5myA+IHRhaVwgOwor6LmUID4gc2FuXCA7CivouY8gPiB0ZWlcIDsKK+i5jiA+IHRlblwgOwor6LmNID4gdGVuXCA7CivouYsgPiB0b3VcIDsKK+i5iiA+IGtlaVwgOwor6LmIID4gdG91XCA7CivouYcgPiBrZW5cIDsKK+i5giA+IGp1dVwgOwor6LmBID4gaGVuXCA7CivouLkgPiBzZW5cIDsKK+i4tiA+IHRlaVwgOwor6Li0ID4geW91XCA7CivouKMgPiBob3VcIDsKK+i4oSA+IGtlblwgOwor6LieID4ga3lvXCA7CivouJQgPiB0b3VcIDsKK+i4kCA+IHNlblwgOwor6LiIID4gc2hvXCA7CivouIUgPiB0ZWlcIDsKK+i4gSA+IGtlaVwgOwor6Le1ID4gc2VuXCA7Civot7QgPiBzYWlcIDsKK+i3siA+IGtvdVwgOwor6LexID4gY2hpXCA7Civot7AgPiBob3VcIDsKK+i3pyA+IHNlblwgOwor6LekID4ga291XCA7Civot5ogPiBzYW5cIDsKK+i3mSA+IHNob1wgOwor6LeRID4gaG91XCA7Civot4ogPiBiYWlcIDsKK+i3iCA+IGRlblwgOwor6LeGID4gdGFpXCA7Civotr4gPiBzaGlcIDsKK+i2vCA+IGdlblwgOwor6LayID4gc2FuXCA7Civotq8gPiBrYW5cIDsKK+i2qCA+IHN1dVwgOwor6LamID4gc2hpXCA7Civotp8gPiB0b3VcIDsKK+i2lSA+IGthblwgOwor6LaRID4gc2hpXCA7Civoto0gPiBjaGlcIDsKK+i2iCA+IHRhblwgOwor6LaEID4gc2hvXCA7Civotb8gPiBjaGlcIDsKK+i1sSA+IHNvdVwgOwor6LWtID4gc2hhXCA7CivotawgPiB0ZWlcIDsKK+i1piA+IHNoYVwgOwor6LScID4gem91XCA7CivotJsgPiBrb3VcIDsKK+i0lyA+IGtlblwgOwor6LSTID4gem91XCA7CivotJIgPiBrZW5cIDsKK+i0jSA+IHNlblwgOwor6LSKID4gc2FuXCA7CivotIkgPiB0YW5cIDsKK+i0iCA+IHpvdVwgOwor6LSEID4gc2hpXCA7CivotIMgPiB3YW5cIDsKK+i0gSA+IGhhaVwgOwor6LO/ID4gcm91XCA7Civos7ggPiB5b3VcIDsKK+iztyA+IHNlaVwgOwor6LO1ID4gaHV1XCA7Civos7QgPiByYWlcIDsKK+izsiA+IGhvdVwgOwor6LOvID4ga2VpXCA7Civos6ggPiBzb3VcIDsKK+izpCA+IHNlblwgOwor6LOgID4gYmFpXCA7Civos5wgPiBzaGlcIDsKK+izmyA+IHNhblwgOwor6LOaID4gcmFpXCA7Civos5YgPiBzaGFcIDsKK+izlCA+IGhpblwgOwor6LOTID4gaGluXCA7Civos5IgPiBzaGFcIDsKK+izjiA+IHNlblwgOwor6LONID4gc291XCA7Civos4sgPiBrb3VcIDsKK+izhiA+IGhlblwgOwor6LOFID4ga2FpXCA7Civos4QgPiB3YWlcIDsKK+iyvyA+IGJvdVwgOwor6LK5ID4gc2VpXCA7CivosrYgPiBoZW5cIDsKK+iysiA+IHNoaVwgOwor6LKrID4ga2FuXCA7CivosqogPiBkb25cIDsKK+iyqSA+IGhhblwgOwor6LKiID4ga291XCA7CivospsgPiBrYW5cIDsKK+iymSA+IGNodVwgOwor6LKSID4gdGFuXCA7Civoso4gPiBnZWlcIDsKK+iyjCA+IGJvdVwgOwor6LKLID4ga2FuXCA7CivosocgPiBrb25cIDsKK+iyhiA+IGthblwgOwor6LG7ID4ga2FuXCA7CivosbogPiBzYWlcIDsKK+ixuCA+IGNoaVwgOwor6LG2ID4gaHVuXCA7CivosbUgPiBzb3VcIDsKK+ixsyA+IGhpblwgOwor6LGsID4gY2hvXCA7CivosakgPiBoaW5cIDsKK+ixpiA+IGt5b1wgOwor6LGkID4ga29uXCA7CivosaMgPiBrZW5cIDsKK+ixoiA+IGtlblwgOwor6LGcID4ga2VuXCA7CivosZsgPiBla2lcIDsKK+ixmCA+IHRvblwgOwor6LGVID4gc2hpXCA7CivosY8gPiBrYW5cIDsKK+ixiyA+IHRvdVwgOwor6LGJID4gc2hpXCA7CivosYcgPiBrb3VcIDsKK+ixhSA+IHJvdVwgOwor6LC/ID4ga2VpXCA7CivosL4gPiBrb3VcIDsKK+iwvSA+IGthblwgOwor6LC5ID4ga291XCA7CivosLggPiBzZW5cIDsKK+iunCA+IHRvdVwgOwor6K6aID4gc2FuXCA7CivorpkgPiBrYW5cIDsKK+iulSA+IHJhblwgOwor6K6TID4gam91XCA7CivorpIgPiBzYW5cIDsKK+itviA+IHNlblwgOwor6K28ID4ga2FuXCA7CivorbkgPiBrb3VcIDsKK+ittiA+IHRvdVwgOwor6K20ID4ga2VuXCA7CivorbEgPiB6ZW5cIDsKK+itoyA+IHNlblwgOwor6K2fID4gc291XCA7CivorZ4gPiBrZW5cIDsKK+itmiA+IHRhblwgOwor6K2UID4gc2VuXCA7CivorZMgPiBrZWlcIDsKK+itjSA+IHlvdVwgOwor6K2IID4gdGFpXCA7CivorYQgPiBzb3VcIDsKK+itgiA+IHNlblwgOwor6Ky+ID4gYmFuXCA7CivorLAgPiByZW5cIDsKK+isrSA+IHNlaVwgOwor6KymID4ga2VpXCA7CivorKAgPiB5b3VcIDsKK+isnyA+IHRvdVwgOwor6KycID4gZ2VuXCA7CivorJogPiBzaGlcIDsKK+islyA+IGJvdVwgOwor6KyRID4ga2VpXCA7CivorIogPiBrb3VcIDsKK+ishyA+IGtlblwgOwor6KyGID4gc2VuXCA7CivorIUgPiBzb3VcIDsKK+ishCA+IHRvdVwgOwor6Ku8ID4ga2VuXCA7Civoq7cgPiBmdXVcIDsKK+irtSA+IG5hblwgOwor6Ku0ID4ga2FuXCA7Civoq7AgPiBzaGlcIDsKK+irriA+IHNoaVwgOwor6KusID4ga2VpXCA7Civoq6sgPiBrYW5cIDsKK+irpyA+IGthaVwgOwor6KuiID4ga29uXCA7Civoq6EgPiBzaGlcIDsKK+iroCA+IGtlblwgOwor6KufID4gc2hpXCA7Civoq54gPiBoZW5cIDsKK+irnSA+IHNob1wgOwor6KuaID4gam91XCA7Civoq5UgPiBrb3VcIDsKK+irkyA+IHNlblwgOwor6KuPID4gc2h1XCA7Civoq40gPiBzb3VcIDsKK+irjCA+IGthblwgOwor6KuJID4genVpXCA7Civoq4ggPiBzdWlcIDsKK+irhCA+IGp1blwgOwor6KuCID4gdGVuXCA7Civoqr4gPiBnaW5cIDsKK+iquyA+IHRvdVwgOwor6Kq3ID4gYm91XCA7CivoqrYgPiBzdWlcIDsKK+iqqSA+IGtlaVwgOwor6KqoID4ga2FpXCA7CivoqqUgPiBrb3VcIDsKK+iqoSA+IGthaVwgOwor6KqfID4ga291XCA7CivoqpkgPiBrb3VcIDsKK+iqlyA+IHRlblwgOwor6KqVID4gdGFuXCA7Civoqo8gPiByb3VcIDsKK+iqgyA+IHNoaVwgOwor6Km/ID4ga2FpXCA7CivoqbwgPiBrYWlcIDsKK+ipuiA+IGJpaVwgOwor6Km5ID4gc2VuXCA7CivoqbcgPiB0b3VcIDsKK+iprCA+IGtvdVwgOwor6KmlID4ga291XCA7CivoqaMgPiBrZWlcIDsKK+ipoiA+IGp1blwgOwor6KmdID4gY2hvXCA7CivoqZwgPiB0b3VcIDsKK+ipkyA+IGt5b1wgOwor6KmSID4gdGFpXCA7CivoqY4gPiBreW9cIDsKK+ipiSA+IGRvdVwgOwor6KmHID4geW91XCA7CivoqYYgPiB0ZWlcIDsKK+iphSA+IHJlaVwgOwor6KmDID4ga2VuXCA7CivoqYAgPiB0YW5cIDsKK+ioviA+IHNoaVwgOwor6Ki9ID4ga291XCA7CivoqLUgPiBjaGlcIDsKK+iorCA+IHNvdVwgOwor6KikID4ga29uXCA7CivoqKIgPiBraW5cIDsKK+ioniA+IHlvdVwgOwor6KiVID4gc2FuXCA7CivoqJQgPiBnaW5cIDsKK+iokyA+IGt1blwgOwor6KiSID4gamluXCA7CivoqJEgPiBzaGlcIDsKK+iojiA+IHRvdVwgOwor6KiMID4ga291XCA7CivoqIcgPiBrb3VcIDsKK+iogiA+IHRlaVwgOwor6Ke/ID4ga2VpXCA7Civop70gPiBrZWlcIDsKK+inuSA+IGtlaVwgOwor6Ke2ID4gc2hpXCA7Civop6cgPiBrYWlcIDsKK+inpSA+IGtvdVwgOwor6KedID4gdGVpXCA7Civop5wgPiBzaGlcIDsKK+inmCA+IHNvdVwgOwor6KeXID4gc2hpXCA7Civop5QgPiBraW5cIDsKK+imuCA+IGthblwgOwor6Ka3ID4gc2h1XCA7CivoprUgPiBrYW5cIDsKK+imtCA+IHRvdVwgOwor6KayID4ga2luXCA7Civopq8gPiBrb3VcIDsKK+impSA+IHRlblwgOwor6KagID4ga2luXCA7Civopp8gPiBzaGlcIDsKK+immCA+IHRlblwgOwor6KaUID4gZWtpXCA7Civopo0gPiBoZW5cIDsKK+imjCA+IGthblwgOwor6KaDID4gdGFuXCA7Civopb4gPiBha2FcIDsKK+ilvSA+IHJhblwgOwor6KW8ID4gZ2VpXCA7CivopbsgPiBoYW5cIDsKK+iluiA+IGtlblwgOwor6KW0ID4gcmFuXCA7CivopbMgPiBzZW5cIDsKK+ilsCA+IHJhaVwgOwor6KWiID4gdGFuXCA7CivopaAgPiB0b3VcIDsKK+ilnCA+IHNlblwgOwor6KWbID4gam91XCA7CivopZogPiBzdWlcIDsKK+illSA+IHJhblwgOwor6KWMID4gdGFuXCA7CivopYkgPiBrYW5cIDsKK+ilhCA+IGpvdVwgOwor6KWDID4gaG91XCA7CivopLkgPiBnZWlcIDsKK+iksCA+IGtlblwgOwor6KSrID4gY2hpXCA7CivopKcgPiBrZWlcIDsKK+ikpiA+IGRhaVwgOwor6KSgID4ga291XCA7CivopJ0gPiB0YW5cIDsKK+iknCA+IGVuYVwgOwor6KSaID4gY2hvXCA7CivopJkgPiBoYWlcIDsKK+ikliA+IHRhblwgOwor6KSPID4geXV1XCA7CivopI0gPiB0YW5cIDsKK+ikiiA+IGhlblwgOwor6KSGID4gc2hpXCA7CivopIIgPiBrYWlcIDsKK+ijtSA+IGhhaVwgOwor6KO0ID4gaGFpXCA7Civoo6ogPiB0YXVcIDsKK+ijpyA+IHNlblwgOwor6KOeID4gc2VpXCA7Civoo5kgPiBrdW5cIDsKK+ijkiA+IGhvdVwgOwor6KOOID4gdGVpXCA7Civoo40gPiBrb25cIDsKK+ijjCA+IGtvdVwgOwor6KOLID4gc2h1XCA7Civoo4ogPiBqb3VcIDsKK+ijiCA+IGtvblwgOwor6KK/ID4ga2VpXCA7Civoor4gPiBjaHVcIDsKK+iitSA+IGppblwgOwor6KKzID4gc2hpXCA7CivooqogPiBreW9cIDsKK+iiqCA+IGtlblwgOwor6KKkID4gYm91XCA7Civoop4gPiBrb25cIDsKK+iimyA+IHRlaVwgOwor6KKSID4gdGFuXCA7Civooo0gPiBob3VcIDsKK+iigCA+IGtpblwgOwor6KG/ID4gZXJpXCA7Civoob0gPiBqaW5cIDsKK+ihuyA+IHplblwgOwor6KGyID4gZG91XCA7Civooa4gPiBrb25cIDsKK+ihqyA+IHNhblwgOwor6KGpID4gc2FpXCA7CivooaYgPiBrYW5cIDsKK+ihnyA+IGRvdVwgOwor6KGcID4gZG91XCA7CivooZkgPiBneW9cIDsKK+ihmCA+IGthblwgOwor6KGWID4ga291XCA7CivooZUgPiB0b3VcIDsKK+ihkiA+IGtlblwgOwor6KGRID4gcmVpXCA7CivooY4gPiBrYW5cIDsKK+ihhSA+IGtpblwgOwor6KGDID4gaGFpXCA7CivooYEgPiBrb3VcIDsKK+iguyA+IGJhblwgOwor6KC6ID4gc2FuXCA7CivooLUgPiBrZWlcIDsKK+igsiA+IGtlblwgOwor6KCtID4gaG91XCA7CivooKMgPiByZWlcIDsKK+igoSA+IHJlaVwgOwor6KCfID4gcm91XCA7CivooJwgPiBoYW5cIDsKK+igmSA+IGhlblwgOwor6KCUID4ga291XCA7CivooJMgPiBib3VcIDsKK+igkiA+IGtlblwgOwor6KCQID4gc2VpXCA7CivooI8gPiBrYWlcIDsKK+igiiA+IHJlblwgOwor6KCJID4ga2VuXCA7CivooIYgPiB0YWlcIDsKK+ighSA+IHlvdVwgOwor6J+/ID4ga2VpXCA7Civon74gPiBzZW5cIDsKK+ifuiA+IHNlblwgOwor6J+4ID4gcmVpXCA7Civon7cgPiB0b3VcIDsKK+iftiA+IHRlaVwgOwor6J+zID4gamluXCA7Civon7EgPiBib3VcIDsKK+ifrCA+IHNlblwgOwor6J+qID4ga2VpXCA7Civon6QgPiBzZW5cIDsKK+ifoCA+IGhhblwgOwor6J+aID4gaG91XCA7Civon5YgPiBzaGlcIDsKK+iflSA+IHN1aVwgOwor6J+SID4gYm91XCA7Civon5AgPiB0b3VcIDsKK+ifiiA+IGJvdVwgOwor6J+BID4gYnVuXCA7CivonrsgPiByb3VcIDsKK+iesyA+IHRvdVwgOwor6J6vID4gZ291XCA7Civonq4gPiB0ZWlcIDsKK+ierSA+IGNoaVwgOwor6J6sID4gc291XCA7CivonqcgPiBlYmlcIDsKK+ieoyA+IHRvdVwgOwor6J6fID4gbWVpXCA7CivonpcgPiB0b3VcIDsKK+ielSA+IGhlaVwgOwor6J6MID4gaGFuXCA7CivonoggPiBnZW5cIDsKK+iehyA+IGtlaVwgOwor6J6GID4gc2hpXCA7CivonoUgPiBzaGlcIDsKK+iehCA+IHNoaVwgOwor6J6DID4gaG91XCA7CivonoIgPiByb3VcIDsKK+iduyA+IG5hblwgOwor6J2xID4gbW91XCA7CivonaogPiB0b3VcIDsKK+idpiA+IGViaVwgOwor6J2lID4gYm91XCA7CivonaMgPiB5dXVcIDsKK+idoSA+IHplblwgOwor6J2XID4ga291XCA7CivonYUgPiBzYW5cIDsKK+idgyA+IHRlaVwgOwor6J2AID4gdG91XCA7CivonLogPiBnZWlcIDsKK+icuSA+IHplaVwgOwor6Jy3ID4ga2VuXCA7CivonLQgPiBla2lcIDsKK+icryA+IGhvdVwgOwor6JyhID4gc2hvXCA7CivonJ8gPiBpa3VcIDsKK+icliA+IGthaVwgOwor6JyVID4gemVpXCA7CivonJQgPiB0ZW5cIDsKK+ickyA+IHRlblwgOwor6JyRID4gdGFuXCA7CivonI8gPiB5dXVcIDsKK+icjSA+IHNob1wgOwor6JyLID4gcm91XCA7Civom70gPiBiYWlcIDsKK+ibvCA+IHNoYVwgOwor6Ju7ID4gemVpXCA7Civom68gPiBlYmlcIDsKK+ibriA+IGJhblwgOwor6JunID4gYm91XCA7Civom6AgPiByZWlcIDsKK+ibnyA+IGtvdVwgOwor6JuXID4gaHV1XCA7Civom5UgPiBrYWlcIDsKK+iblCA+IGthaVwgOwor6JuRID4gYm91XCA7Civom44gPiByZWlcIDsKK+ibiyA+IHRhblwgOwor6JuFID4gemVuXCA7Civom4MgPiBoZWlcIDsKK+ibgCA+IHNodVwgOwor6Jq/ID4ga2VuXCA7CivomrcgPiBreW9cIDsKK+iatiA+IGthblwgOwor6Jq0ID4geXV1XCA7CivomrMgPiBjaGlcIDsKK+iasCA+IHl1dVwgOwor6JqrID4gaG91XCA7CivomqogPiB0b3VcIDsKK+iaqSA+IHNoaVwgOwor6JqnID4ga2FpXCA7CivomqYgPiB6ZW5cIDsKK+iaoyA+IGtvdVwgOwor6JqhID4gaHVuXCA7CivompggPiBrYWlcIDsKK+ialiA+IGdlblwgOwor6JqMID4gaG91XCA7CivomoggPiBrZW5cIDsKK+iZuyA+IGFidVwgOwor6Jm3ID4ga2FuXCA7CivombUgPiBzaGFcIDsKK+iZpCA+IGdhblwgOwor6JmjID4gaG91XCA7CivomaIgPiBob3VcIDsKK+iZoSA+IGt5b1wgOwor6JmgID4ga291XCA7CivomZsgPiBreW9cIDsKK+iZlyA+IGt5b1wgOwor6JmUID4ga2VuXCA7CivomZMgPiBrb3VcIDsKK+iZkiA+IHNoaVwgOwor6JmGID4gcnVpXCA7CivomYAgPiBzZWlcIDsKK+iYuCA+IHNhblwgOwor6JivID4gdG91XCA7CivomKkgPiBoYW5cIDsKK+iYoiA+IHJvdVwgOwor6JieID4gcmVuXCA7CivomJsgPiBpa3VcIDsKK+iYmiA+IHNlblwgOwor6JiYID4gam91XCA7CivomJAgPiBrZW5cIDsKK+iYjyA+IGtlaVwgOwor6JiNID4ga3VuXCA7CivomIsgPiBoaW5cIDsKK+iYhSA+IGtvdVwgOwor6Je+ID4gcmFpXCA7Civol7wgPiBrZW5cIDsKK+iXuiA+IHJpblwgOwor6Je3ID4gc2hvXCA7Civol7MgPiBrb3VcIDsKK+iXnyA+IHJ1aVwgOwor6JeYID4gcnlvXCA7Civol5UgPiBndXVcIDsKK+iXjyA+IHpvdVwgOwor6JeKID4gaGVuXCA7Civol4cgPiBzaG9cIDsKK+iXgiA+IHNvdVwgOwor6Ja+ID4gc2hpXCA7CivolrkgPiB0YWlcIDsKK+iWtiA+IGJhaVwgOwor6Ja0ID4gbm91XCA7CivolrAgPiBrdW5cIDsKK+iWrSA+IGhhaVwgOwor6JarID4ga3VuXCA7CivolqggPiBrb3VcIDsKK+iWpyA+IGtvdVwgOwor6JakID4ga2FpXCA7CivolqIgPiBrYWlcIDsKK+iWoCA+IGhhblwgOwor6JafID4gcmVuXCA7Civolp0gPiBzZW5cIDsKK+iWmSA+IHRlaVwgOwor6JaQID4gcm91XCA7CivolosgPiBzaGlcIDsKK+iWiSA+IHdhaVwgOwor6JaIID4ga2FpXCA7CivoloUgPiBrb3VcIDsKK+iWgSA+IGlrdVwgOwor6JW/ID4ga2VuXCA7Civolb0gPiBkb3VcIDsKK+iVuyA+IGtvdVwgOwor6JW5ID4geW91XCA7Civola8gPiByb3VcIDsKK+iVqyA+IHRvdVwgOwor6JWkID4genVpXCA7CivolaIgPiBrYWlcIDsKK+iVoSA+IGh1blwgOwor6JWeID4gc2FpXCA7CivolZkgPiBrZWlcIDsKK+iVmCA+IGpvdVwgOwor6JWWID4ga3lvXCA7CivolZUgPiB5dXVcIDsKK+iVkiA+IGJhaVwgOwor6JWRID4ga2FuXCA7CivolY8gPiBjaG9cIDsKK+iViyA+IHp1aVwgOwor6JWKID4genVpXCA7CivolYYgPiB0ZW5cIDsKK+iVgyA+IGJhblwgOwor6JWBID4gamluXCA7CivolLMgPiBzZW5cIDsKK+iUsiA+IGtvdVwgOwor6JSqID4gc2VuXCA7CivolKcgPiBzZWlcIDsKK+iUpSA+IHNvdVwgOwor6JShID4gc2FpXCA7CivolJ4gPiByb3VcIDsKK+iUnCA+IGdvdVwgOwor6JSXID4gc2hvXCA7CivolJMgPiBiYW5cIDsKK+iUgiA+IHJ1aVwgOwor6JSAID4gaG91XCA7Civok7ogPiBnZWlcIDsKK+iTtyA+IHRhaVwgOwor6JOxID4gaGVpXCA7Civok7AgPiBzaGlcIDsKK+iTryA+IHNvdVwgOwor6JOqID4gdG91XCA7Civok5wgPiBoYWlcIDsKK+iTkyA+IGhhaVwgOwor6JONID4gc2hpXCA7Civok4kgPiB5b3VcIDsKK+iTiCA+IGtvdVwgOwor6JOCID4gbWVpXCA7Civok4AgPiBzb25cIDsKK+iSvyA+IGtvdVwgOwor6JK+ID4gYmVpXCA7CivokrkgPiBrZW5cIDsKK+iSryA+IGthaVwgOwor6JKtID4gc3V1XCA7CivokqggPiBzZW5cIDsKK+iSoSA+IGhvdVwgOwor6JKTID4ganVuXCA7CivokpIgPiBzaGlcIDsKK+iShCA+IGthblwgOwor6JKCID4gdGVpXCA7Civokb0gPiB5b3VcIDsKK+iRvCA+IHNvdVwgOwor6JG5ID4gc2hpXCA7CivokbggPiBzYWlcIDsKK+iRtyA+IGd1blwgOwor6JG2ID4gdGVpXCA7CivokbUgPiBhb2lcIDsKK+iRsCA+IHN1aVwgOwor6JGuID4gdGFuXCA7CivokaogPiBrZWlcIDsKK+iRpSA+IHNlblwgOwor6JGiID4gZ2FpXCA7CivokZggPiBzaGlcIDsKK+iRkiA+IGtvdVwgOwor6JGRID4gaG91XCA7CivokY8gPiBzZW5cIDsKK+iRiCA+IHNoaVwgOwor6JGHID4ganV1XCA7CivokYUgPiBzaG9cIDsKK+iQuSA+IGhlblwgOwor6JCxID4ga2VuXCA7CivokK8gPiBodXVcIDsKK+iQoCA+IGhvdVwgOwor6JCVID4gc2VpXCA7CivokJEgPiBrYW5cIDsKK+iQjyA+IHRhblwgOwor6JCNID4gaGVpXCA7CivokIsgPiBzZWlcIDsKK+iQiiA+IHJhaVwgOwor6JCDID4gc3VpXCA7Civoj7wgPiB0YW5cIDsKK+iPuyA+IHJpblwgOwor6I+5ID4gc2hvXCA7Civoj7cgPiBzb3VcIDsKK+iPtiA+IGhvdVwgOwor6I+qID4gdG91XCA7Civoj5ggPiBzdXVcIDsKK+iPkSA+IHNoaVwgOwor6I+OID4ga29uXCA7Civoj4wgPiBraW5cIDsKK+iPhSA+IGthblwgOwor6I+BID4gc2VpXCA7Civojr8gPiBzaGlcIDsKK+iOviA+IG1vdVwgOwor6I69ID4gYm91XCA7CivojrEgPiByYWlcIDsKK+iOrCA+IGJ1blwgOwor6I6nID4ga2FuXCA7CivojqYgPiBzb3VcIDsKK+iOoCA+IHl1dVwgOwor6I6fID4ga2FuXCA7Civojp4gPiBrYW5cIDsKK+iOmyA+IHRlaVwgOwor6I6ZID4ga2luXCA7CivojpYgPiBrZWlcIDsKK+iOlSA+IGtvdVwgOwor6I6UID4gbW91XCA7CivojpMgPiBtYWlcIDsKK+iOkiA+IGt5b1wgOwor6I6KID4gc291XCA7CivojokgPiBjaGlcIDsKK+iOhyA+IGNob1wgOwor6I6EID4ga291XCA7Civojb8gPiBzZWlcIDsKK+iNuyA+IG9naVwgOwor6I21ID4gamluXCA7CivojbMgPiB0b3VcIDsKK+iNmCA+IHNvdVwgOwor6I2WID4gaG91XCA7CivojZUgPiBraW5cIDsKK+iNkyA+IGhlaVwgOwor6I2RID4gdGVpXCA7CivojZAgPiBzZW5cIDsKK+iNjiA+IGNoaVwgOwor6I2KID4ga2VpXCA7CivojYcgPiBrb3VcIDsKK+iNhiA+IGtlaVwgOwor6I2FID4gdG91XCA7CivojYQgPiBrYWlcIDsKK+iNgyA+IHNlblwgOwor6I2AID4ganVuXCA7CivojLwgPiB0b3VcIDsKK+iMtyA+IGhhaVwgOwor6Iy0ID4ga2FpXCA7CivojLMgPiBrb3VcIDsKK+iMsSA+IHNodVwgOwor6IysID4gc2hpXCA7CivojJ0gPiBzYWlcIDsKK+iMmyA+IGtvblwgOwor6IyXID4gbWVpXCA7CivojIsgPiBzaGlcIDsKK+iMiiA+IHNoaVwgOwor6IyIID4gc2hpXCA7CivojIYgPiBib3VcIDsKK+iMgyA+IGhhblwgOwor6Iu5ID4gaGVpXCA7Civoi7cgPiBrYW5cIDsKK+iLsyA+IHRvdVwgOwor6IuvID4gaG9uXCA7Civoi60gPiB5b3VcIDsKK+iLqyA+IHNlblwgOwor6IuqID4gaGVpXCA7Civoi6ggPiBkZWlcIDsKK+iLpyA+IGNob1wgOwor6IujID4ga3lvXCA7Civoi6AgPiBiaW5cIDsKK+iLnyA+IGtvdVwgOwor6IueID4gaG91XCA7Civoi5ogPiB5b3VcIDsKK+iLkyA+IHJlaVwgOwor6IuSID4gemVuXCA7Civoi5AgPiB0ZWlcIDsKK+iLhSA+IGdhaVwgOwor6Iq/ID4gam91XCA7CivoirwgPiBib3VcIDsKK+iKuyA+IHN1dVwgOwor6Iq3ID4gc2hpXCA7Civoiq4gPiB6ZWlcIDsKK+iKrCA+IGZ1blwgOwor6IqrID4gZ2VuXCA7CivoiqkgPiBraW5cIDsKK+iKpyA+IGNob1wgOwor6IqlID4ga2FpXCA7CivoiqQgPiBrb3VcIDsKK+iKoyA+IGh1dVwgOwor6IqhID4ga2VuXCA7CivoiqAgPiBidW5cIDsKK+iKnyA+IHNhblwgOwor6IqaID4gdG9uXCA7CivoipYgPiBjaGlcIDsKK+iKiyA+IGltb1wgOwor6IqKID4gc2VuXCA7CivoiokgPiBrYWlcIDsKK+iKhyA+IGJlblwgOwor6IqEID4ga2FuXCA7CivoioMgPiBob3VcIDsKK+iKgSA+IGtvdVwgOwor6Im/ID4gam91XCA7Civoib4gPiBnYWlcIDsKK+iJsSA+IGthblwgOwor6ImuID4ga29uXCA7Civoia0gPiBzb3VcIDsKK+iJqCA+IG1vdVwgOwor6ImmID4ga2FuXCA7CivoiaAgPiB0b3VcIDsKK+iJnyA+IGRvdVwgOwor6ImcID4gdGFpXCA7CivoiZogPiBzb3VcIDsKK+iJmSA+IHNvdVwgOwor6ImYID4gc291XCA7CivoiZEgPiBoZW5cIDsKK+iJjiA+IGtvdVwgOwor6ImLID4gbW91XCA7CivoiYcgPiB0ZWlcIDsKK+iJhiA+IHJvdVwgOwor6ImEID4gc291XCA7CivoiLogPiBrb3VcIDsKK+iItyA+IGtlblwgOwor6IiyID4gcmVpXCA7CivoiKsgPiBob3VcIDsKK+iIqSA+IHNlblwgOwor6IioID4gaGFuXCA7CivoiKIgPiBzYW5cIDsKK+iIoSA+IGtvdVwgOwor6IibID4gc2VuXCA7CivoiJogPiB0ZW5cIDsKK+iImSA+IGt1dVwgOwor6IiYID4ga2FuXCA7CivoiJQgPiB0ZW5cIDsKK+iIkyA+IHNoaVwgOwor6IiQID4gc2hpXCA7CivoiI0gPiBzaGFcIDsKK+iIiSA+IGt5b1wgOwor6IiAID4geW91XCA7Civoh78gPiBzb3VcIDsKK+iHvSA+IGthblwgOwor6Ie2ID4gc2VuXCA7Civoh7EgPiBiZW5cIDsKK+iHpyA+IHpvdVwgOwor6IekID4ga2FuXCA7Civoh6EgPiBkZWlcIDsKK+iHoCA+IHJlblwgOwor6IeaID4gcnlvXCA7Civoh5ggPiByb3VcIDsKK+iHlyA+IGtvblwgOwor6IeTID4gem91XCA7Civoh5EgPiBkYXVcIDsKK+iHjyA+IGhpblwgOwor6IeOID4gc3VpXCA7Civoh4sgPiBkZW5cIDsKK+iHiiA+IHNvdVwgOwor6IeJID4gcmVuXCA7Civoh4ggPiByb3VcIDsKK+iHhiA+IG9rdVwgOwor6IeDID4geW91XCA7Civoh4AgPiBkZW5cIDsKK+iGviA+IGthaVwgOwor6Ia7ID4gdGFuXCA7CivohrogPiB5b3VcIDsKK+iGuCA+IHp1aVwgOwor6Ia1ID4gc3VpXCA7CivohrAgPiBoYW5cIDsKK+iGqCA+IGJvdVwgOwor6IaiID4gcm91XCA7Civohp4gPiBzZW5cIDsKK+iGmyA+IHRvdVwgOwor6IaWID4gaG91XCA7CivohpAgPiByeW9cIDsKK+iGjyA+IGtvdVwgOwor6IaOID4ga2FpXCA7CivohoUgPiB0b3VcIDsKK+iGgiA+IHJ5b1wgOwor6IaBID4ga2VuXCA7CivohoAgPiBob3VcIDsKK+iFuiA+IHNlblwgOwor6IWxID4ga2VuXCA7CivohasgPiBzaHVcIDsKK+iFqSA+IGRhblwgOwor6IWoID4gc2VuXCA7CivohacgPiBzaHVcIDsKK+iFpSA+IHNlaVwgOwor6IWgID4gc291XCA7CivohZQgPiBrb3VcIDsKK+iFkiA+IGt5b1wgOwor6IWOID4gamluXCA7CivohYwgPiB5b3VcIDsKK+iFhyA+IGRhaVwgOwor6IWGID4gdGVuXCA7CivohYUgPiB0YW5cIDsKK+iFgSA+IGhlblwgOwor6IS6ID4gemVpXCA7CivohLAgPiB0b3VcIDsKK+iErCA+IGhvdVwgOwor6ISnID4gc2FpXCA7CivohKAgPiBzZW5cIDsKK+iEmCA+IGthblwgOwor6ISXID4gYnVuXCA7CivohIYgPiB6ZWlcIDsKK+iEgyA+IHplaVwgOwor6IO+ID4gc2hpXCA7Civog7wgPiBoZW5cIDsKK+iDtiA+IGtvdVwgOwor6IOyID4ga2FpXCA7Civog7EgPiBrb3VcIDsKK+iDriA+IGhvdVwgOwor6IOlID4gc2hvXCA7Civog6AgPiBreW9cIDsKK+iDnSA+IGNoaVwgOwor6IObID4ga291XCA7Civog5ogPiBoYWlcIDsKK+iDmCA+IGtlblwgOwor6IOWID4gaGFuXCA7Civog5QgPiBzaGlcIDsKK+iDkiA+IGRlaVwgOwor6IOPID4gc2hpXCA7CivogrogPiBoYWlcIDsKK+iCrCA+IHl1dVwgOwor6IKqID4gYm91XCA7CivogqcgPiBoYWlcIDsKK+iCpiA+IGZ1blwgOwor6IKiID4gc2hpXCA7CivogpwgPiB5dXVcIDsKK+iCmyA+IGtvdVwgOwor6IKTID4ga291XCA7Civogo4gPiBrb3VcIDsKK+iBuSA+IGRlaVwgOwor6IG2ID4gam91XCA7CivogbUgPiBnYWlcIDsKK+iBsSA+IGdvdVwgOwor6IGwID4gc291XCA7Civoga8gPiByZW5cIDsKK+iBriA+IHJlblwgOwor6IGrID4gcmVuXCA7CivogaggPiByZW5cIDsKK+iBpiA+IHNvdVwgOwor6IGkID4gdGVpXCA7CivogaEgPiBzb3VcIDsKK+iBoCA+IGhlaVwgOwor6IGfID4gc2VpXCA7CivogZggPiBoZWlcIDsKK+iBhiA+IHJlaVwgOwor6IC/ID4ga291XCA7CivogL4gPiBrb3VcIDsKK+iAvCA+IHRhblwgOwor6IC5ID4ga2luXCA7CivogLcgPiB0b3VcIDsKK+iAtSA+IHRlaVwgOwor6ICwID4geXV1XCA7CivogK4gPiByb3VcIDsKK+iArCA+IHJvdVwgOwor6ICoID4gZG91XCA7CivogKYgPiBnb3VcIDsKK+iAoCA+IGtvdVwgOwor6ICfID4ga3lvXCA7CivogJ0gPiBzaG9cIDsKK+iAnCA+IHNoaVwgOwor6ICXID4gbW91XCA7CivogJYgPiBzb3VcIDsKK+iAlCA+IHNoaVwgOwor6ICTID4gdGVpXCA7CivogJIgPiByYWlcIDsKK+iAkSA+IHRhblwgOwor6ICOID4gemVuXCA7CivogIkgPiBrb3VcIDsKK+iAiCA+IGtvdVwgOwor6ICHID4ga291XCA7CivogIQgPiBtb3VcIDsKK+iAgCA+IHlvdVwgOwor57+/ID4gdG91XCA7Civnv74gPiBrZW5cIDsKK+e/vSA+IGthaVwgOwor57+6ID4gZ291XCA7Civnv7AgPiBrYW5cIDsKK+e/qyA+IGdhblwgOwor57+pID4gaGVuXCA7Civnv6ggPiBzaGlcIDsKK+e/piA+IHNlblwgOwor57+lID4gc2hvXCA7Civnv6MgPiBzb3VcIDsKK+e/oCA+IHN1aVwgOwor57+bID4geXV1XCA7Civnv44gPiByZWlcIDsKK+e/iCA+IGtvdVwgOwor57+GID4gc3VpXCA7Civnv4UgPiBzaGlcIDsKK+e/gyA+IGtvdVwgOwor576/ID4gZ2VpXCA7CivnvrwgPiBzYW5cIDsKK+e+uCA+IHJ1aVwgOwor5762ID4gc2VuXCA7CivnvrQgPiBzZW5cIDsKK+e+qiA+IHlvdVwgOwor576mID4ga2FuXCA7CivnvqMgPiBndW5cIDsKK+e+oiA+IGpvdVwgOwor576hID4gc2VuXCA7Civnvp0gPiB0ZWlcIDsKK+e+nCA+IGNob1wgOwor576aID4gcmVpXCA7CivnvpggPiBzb3VcIDsKK+e+lCA+IGtvdVwgOwor576RID4geXV1XCA7CivnvpAgPiB5dXVcIDsKK+e+jyA+IHlvdVwgOwor576CID4ga2VuXCA7Civnvb4gPiBzb3VcIDsKK+e9vSA+IGtlaVwgOwor572yID4gc2hvXCA7CivnvbEgPiBndW5cIDsKK+e9qyA+IGtlaVwgOwor572pID4gdG91XCA7CivnvaUgPiBrZW5cIDsKK+e9pCA+IHRlaVwgOwor572jID4ga2FpXCA7CivnvaEgPiBrb3VcIDsKK+e9nSA+IHNoYVwgOwor572cID4gc2h1XCA7CivnvZUgPiBrYW5cIDsKK+e9lCA+IG1vdVwgOwor572TID4gbW91XCA7CivnvZIgPiBtb3VcIDsKK+e9kSA+IGJvdVwgOwor572NID4gcmFpXCA7CivnvYcgPiBzb25cIDsKK+e9hCA+IGtlaVwgOwor57y/ID4gdG91XCA7CivnvL4gPiBoZWlcIDsKK+e8uCA+IGtvdVwgOwor57y3ID4gc2hhXCA7CivnvLYgPiBrYW5cIDsKK+e8kCA+IHNlblwgOwor57u5ID4gdG91XCA7CivnursgPiBjaG9cIDsKK+e6riA+IGtvdVwgOwor57qeID4gcmVuXCA7Civnup0gPiBydWlcIDsKK+e6nCA+IHJhblwgOwor57qbID4gdG91XCA7CivnupogPiBzaGlcIDsKK+e6mCA+IHNhYlwgOwor57qWID4gc2VuXCA7CivnupQgPiBzYW5cIDsKK+e6kCA+IGtvdVwgOwor57qOID4gc2VuXCA7Civnuo0gPiBydWlcIDsKK+e6iiA+IGtvdVwgOwor57qJID4gc2FuXCA7CivnuocgPiByYWlcIDsKK+e6gSA+IGt1blwgOwor57m/ID4gcmFuXCA7Civnub4gPiB0ZW5cIDsKK+e5vSA+IGhpblwgOwor57m5ID4gZWtpXCA7CivnubggPiBzdWlcIDsKK+e5ryA+IGtlblwgOwor57mrID4ga2VpXCA7CivnuaQgPiBzYW5cIDsKK+e5oiA+IGthaVwgOwor57mfID4gc2VuXCA7CivnuZ0gPiBrYW5cIDsKK+e5mSA+IGhhblwgOwor57mWID4gc2FuXCA7CivnuZAgPiBrZWlcIDsKK+e5jiA+IGJpblwgOwor57mLID4ga2VpXCA7CivnuYogPiBzZW5cIDsKK+e5hyA+IHlvdVwgOwor57mFID4gc291XCA7CivnuYMgPiBob3VcIDsKK+e4vyA+IHNhblwgOwor57i6ID4gcmVuXCA7CivnuLUgPiBiYW5cIDsKK+e4tCA+IGtlblwgOwor57izID4gdGVuXCA7CivnuLIgPiBydWlcIDsKK+e4qCA+IGtvdVwgOwor57inID4gdG91XCA7CivnuKMgPiBrZW5cIDsKK+e4oiA+IHRvdVwgOwor57ihID4gc2FpXCA7CivnuJcgPiBzYWlcIDsKK+e4kiA+IHNoaVwgOwor57iRID4ga2VuXCA7CivnuIYgPiBrb3VcIDsKK+e4giA+IHNvdVwgOwor57e7ID4gY2hpXCA7Civnt7ogPiBrYWlcIDsKK+e3uSA+IHRlaVwgOwor57e2ID4gaGVuXCA7Civnt7UgPiBzb3VcIDsKK+e3sSA+IGtvdVwgOwor57erID4gc291XCA7Civnt6ogPiBrb3VcIDsKK+e3piA+IHNoaVwgOwor57elID4gaG91XCA7Civnt6IgPiBib3VcIDsKK+e3oSA+IGJpblwgOwor57eeID4gdGFuXCA7Civnt5wgPiBiZW5cIDsKK+e3mCA+IGthblwgOwor57eWID4gc2hvXCA7Civnt40gPiBiaW5cIDsKK+e3jCA+IHp1aVwgOwor57eHID4gc2hpXCA7Civnt4QgPiBrb25cIDsKK+e3giA+IHRhblwgOwor57a7ID4gdGFuXCA7CivntrggPiByaW5cIDsKK+e2tyA+IHNhaVwgOwor57a1ID4gc2FpXCA7CivntrMgPiBob3VcIDsKK+e2sCA+IHdhblwgOwor57avID4gdG91XCA7Civntq4gPiBrZWlcIDsKK+e2qyA+IHNlblwgOwor57aqID4gc2VuXCA7CivntqMgPiBrZW5cIDsKK+e2nyA+IHJlaVwgOwor57acID4gc291XCA7CivntpcgPiBnZWlcIDsKK+e2kSA+IGtvblwgOwor57aPID4gc3VpXCA7CivntosgPiBrb3VcIDsKK+e2iSA+IHRvdVwgOwor57aIID4gdGVpXCA7CivntoYgPiBrb3VcIDsKK+e2giA+IHRvdVwgOwor57aBID4gaG91XCA7Civntb0gPiByeW9cIDsKK+e1uyA+IGJ1blwgOwor57W6ID4gY2hpXCA7CivntbggPiBrZW5cIDsKK+e1syA+IGtvdVwgOwor57WnID4gdG91XCA7CivntaIgPiBrZW5cIDsKK+e1myA+IGpvdVwgOwor57WaID4ga291XCA7CivntZkgPiBrYW5cIDsKK+e1liA+IGtvdVwgOwor57WTID4ga2FpXCA7CivntZEgPiBzaHVcIDsKK+e1jiA+IGtvdVwgOwor57WNID4gamluXCA7CivntYsgPiBrb3VcIDsKK+e1hSA+IGtlaVwgOwor57WDID4gZ2VuXCA7CivntYEgPiBzaGlcIDsKK+e0vyA+IHRhaVwgOwor57S1ID4gY2hvXCA7CivntK0gPiBrb3VcIDsKK+e0qiA+IHNlaVwgOwor57SjID4gc2FpXCA7CivntKEgPiBib3VcIDsKK+e0niA+IHRhblwgOwor57SdID4gamluXCA7CivntJggPiBrb3VcIDsKK+e0kyA+IHNob1wgOwor57SSID4ga2VpXCA7CivntJEgPiBodXVcIDsKK+e0jyA+IHRvdVwgOwor57SKID4gYmluXCA7CivntIkgPiBqaW5cIDsKK+e0iCA+IGthblwgOwor57O7ID4ga2VpXCA7Civns7IgPiByZWlcIDsKK+ezsCA+IGRhblwgOwor57OrID4ga2FpXCA7Civns6kgPiBrYWlcIDsKK+ezpiA+IHNoaVwgOwor57OkID4gc2FuXCA7Civns58gPiBzb3VcIDsKK+eznSA+IHNhblwgOwor57OaID4gc291XCA7Civns5kgPiBzb3VcIDsKK+ezlSA+IGtvdVwgOwor57ONID4gc2hpXCA7Civns4kgPiBzb3VcIDsKK+eziCA+IHNob1wgOwor57OHID4ga291XCA7Civns4UgPiBqdXVcIDsKK+ezhCA+IGhlblwgOwor57OCID4gc2FuXCA7Civnsr0gPiBzb3VcIDsKK+eyvCA+IHJpblwgOwor57K6ID4gaGFpXCA7CivnsrkgPiBzdWlcIDsKK+eysyA+IGtvdVwgOwor57KyID4gc2FuXCA7CivnsrAgPiBmdXVcIDsKK+eypiA+IHJpblwgOwor57KiID4gc2hpXCA7CivnsqEgPiB0b3VcIDsKK+eyoCA+IGtvdVwgOwor57KeID4gc2VpXCA7CivnspggPiBuZW5cIDsKK+eylCA+IGt5b1wgOwor57KLID4gaWtpXCA7CivnsocgPiBrb3VcIDsKK+exvSA+IHNoaVwgOwor57G8ID4gc2VuXCA7Civnsa0gPiBzaGlcIDsKK+exqSA+IGhlblwgOwor57GnID4ga3lvXCA7CivnsaMgPiByYW5cIDsKK+exnyA+IHJhaVwgOwor57GeID4gZ3lvXCA7CivnsZsgPiBzZW5cIDsKK+exmCA+IHRvdVwgOwor57GTID4gaGFuXCA7CivnsZEgPiBzZW5cIDsKK+exgyA+IHJhblwgOwor57C9ID4gc2VuXCA7CivnsLogPiBzYWlcIDsKK+ewuSA+IHRvdVwgOwor57C0ID4ga3lvXCA7CivnsLMgPiBrYW5cIDsKK+ewpyA+IGtvdVwgOwor57CmID4gdG91XCA7CivnsJ8gPiB0ZW5cIDsKK+ewniA+IHRhblwgOwor57CbID4gc2hpXCA7CivnsJMgPiBzZW5cIDsKK+ewkiA+IHNhblwgOwor57CNID4gcm91XCA7CivnsIcgPiBzb3VcIDsKK+ewhiA+IGtvdVwgOwor57CBID4gc2hpXCA7Civnr7wgPiB0b3VcIDsKK+evuiA+IGhhaVwgOwor56+5ID4gc2FuXCA7Civnr7cgPiBob3VcIDsKK+evtSA+IHNvdVwgOwor56+yID4gc3VpXCA7Civnr6ogPiBjaGlcIDsKK+evqCA+IGNob1wgOwor56+mID4gaGVpXCA7Civnr6EgPiBzYW5cIDsKK+evnSA+IGtvdVwgOwor56+ZID4ga291XCA7Civnr5YgPiB0b3VcIDsKK+evjyA+IGthblwgOwor56+MID4ga291XCA7Civnr4ogPiBrb3VcIDsKK+eviCA+IGhvdVwgOwor56+HID4gaGVuXCA7Civnr4YgPiB0ZW5cIDsKK+evhSA+IHN1aVwgOwor56+CID4gc2VpXCA7Civnrr0gPiB0b3VcIDsKK+euvCA+IG9rdVwgOwor5661ID4gc2VpXCA7CivnrrIgPiBzZW5cIDsKK+euryA+IGhlblwgOwor566tID4gc2VuXCA7CivnrqAgPiBzdWlcIDsKK+eunyA+IGtpblwgOwor566eID4ga2VuXCA7Civnrp0gPiBrYW5cIDsKK+eunCA+IGtvdVwgOwor566YID4ga2luXCA7CivnrpYgPiByaW5cIDsKK+eukSA+IHNvdVwgOwor566QID4gc2VpXCA7Civnro8gPiBzb3VcIDsKK+euiSA+IGthaVwgOwor566EID4gaGFpXCA7CivnrbcgPiBrYWlcIDsKK+etsyA+IHRlaVwgOwor562yID4gc291XCA7Civnra8gPiBjaG9cIDsKK+etriA+IHNlaVwgOwor562tID4gc2FuXCA7CivnrawgPiBzZWlcIDsKK+etqiA+IGtvdVwgOwor562pID4gdG91XCA7CivnraYgPiBrYW5cIDsKK+etpSA+IGt5b1wgOwor562kID4gcm91XCA7CivnrZ0gPiBzb3VcIDsKK+etlSA+IGtvdVwgOwor562MID4gc2VuXCA7CivnrYUgPiBzZW5cIDsKK+etgCA+IGtlaVwgOwor56y2ID4gc2hpXCA7CivnrLUgPiBoYW5cIDsKK+essSA+IGtvdVwgOwor56ytID4gcmVpXCA7CivnrKsgPiBzaGlcIDsKK+esqiA+IHRhblwgOwor56ypID4gaGFpXCA7CivnrKggPiBob25cIDsKK+esoyA+IGhvdVwgOwor56yeID4gY2hpXCA7CivnrJkgPiBzb3VcIDsKK+esmCA+IHNlblwgOwor56yLID4ganVuXCA7CivnrIcgPiBzYW5cIDsKK+erviA+IHNoaVwgOwor56u8ID4gaG91XCA7Civnq7ggPiBrZWlcIDsKK+ersSA+IHNlblwgOwor56urID4gc2VpXCA7Civnq6IgPiBzaGlcIDsKK+ermyA+IHJlaVwgOwor56uaID4gY2hvXCA7Civnq5kgPiB0YW5cIDsKK+erkSA+IGtvdVwgOwor56uOID4gZnV1XCA7Civnq4wgPiBzaG9cIDsKK+eriSA+IHJvdVwgOwor56uHID4gdG91XCA7Civnq4QgPiB6YW5cIDsKK+eqvCA+IHNvdVwgOwor56q7ID4gc291XCA7CivnqrAgPiB5b3VcIDsKK+eqniA+IHRhblwgOwor56qYID4ga2luXCA7CivnqpcgPiBzb3VcIDsKK+eqliA+IGtvdVwgOwor56qUID4geW91XCA7CivnqpEgPiB5b3VcIDsKK+eqkCA+IGtlaVwgOwor56qIID4geW91XCA7CivnqoYgPiBiaW5cIDsKK+eqhSA+IHlvdVwgOwor56qCID4gcm91XCA7Civnqb4gPiB5b3VcIDsKK+epvSA+IHNlaVwgOwor56mwID4gam91XCA7Civnqa0gPiByeW9cIDsKK+eppyA+IHNlaVwgOwor56mjID4gam91XCA7CivnqaAgPiBqb3VcIDsKK+epnyA+IHN1aVwgOwor56mdID4gc2FpXCA7CivnqZwgPiB0b3VcIDsKK+epiCA+IGJvblwgOwor56mHID4gc2FuXCA7CivnqYUgPiBrb3VcIDsKK+ephCA+IHNlaVwgOwor56mDID4geW91XCA7CivnqL4gPiBrb3VcIDsKK+eouiA+IGNoaVwgOwor56i1ID4gc2hpXCA7CivnqLQgPiByZW5cIDsKK+eosCA+IHNob1wgOwor56ivID4gc291XCA7CivnqKcgPiBrZWlcIDsKK+eonyA+IHJpblwgOwor56ibID4ga29uXCA7CivnqJcgPiBoaWVcIDsKK+eolCA+IGppblwgOwor56iKID4gdGVpXCA7CivnqIkgPiBrb3VcIDsKK+eoiCA+IGthblwgOwor56iHID4ga29uXCA7CivnqIUgPiB6ZWlcIDsKK+eogiA+IHJvdVwgOwor56e8ID4gc2h1XCA7Civnp7EgPiB0b3VcIDsKK+enrSA+IHNoaVwgOwor56esID4ga3lvXCA7Civnp6ogPiBjaGlcIDsKK+enpSA+IGRlblwgOwor56eiID4gcmVpXCA7Civnp54gPiB5dXVcIDsKK+enmiA+IGhhblwgOwor56eWID4gc2hpXCA7Civnp5QgPiBrb3VcIDsKK+enjyA+IGtvdVwgOwor56eKID4gbmVuXCA7Civnp4kgPiBoZWlcIDsKK+eniCA+IHNlblwgOwor56eHID4gZ2VpXCA7Civnp4QgPiBzaGlcIDsKK+engiA+IGppblwgOwor56a7ID4gY2hpXCA7CivnprogPiBndXVcIDsKK+emuCA+IGp1dVwgOwor56azID4gam91XCA7CivnprEgPiB0b3VcIDsKK+emryA+IGpvdVwgOwor56arID4gdGFuXCA7CivnpqogPiB6ZW5cIDsKK+emqSA+IHNoaVwgOwor56amID4gZ3lvXCA7CivnppggPiB0ZWlcIDsKK+emliA+IGJhaVwgOwor56aUID4gc2hpXCA7CivnppMgPiB5b3VcIDsKK+emjiA+IHRlaVwgOwor56aMID4gc2hpXCA7CivnpoAgPiByaW5cIDsKK+elvCA+IGthblwgOwor56W5ID4gdG91XCA7CivnpasgPiBrb3VcIDsKK+elqSA+IHNodVwgOwor56WiID4gZGVpXCA7CivnpaAgPiBzaGlcIDsKK+elnyA+IHN1aVwgOwor56WbID4ga3lvXCA7CivnpZggPiBzYW5cIDsKK+ellyA+IHNoaVwgOwor56WQID4geXV1XCA7CivnpYsgPiB0YWlcIDsKK+eliiA+IGhvdVwgOwor56WJID4gc2hpXCA7CivnpYYgPiBrZW5cIDsKK+elhSA+IHlvdVwgOwor56WEID4ga2FpXCA7CivnpYAgPiBzaGlcIDsKK+ekvSA+IGpvdVwgOwor56S7ID4gc2hpXCA7CivnpLUgPiBzb3VcIDsKK+eksSA+IHJvdVwgOwor56SsID4gYmFuXCA7CivnpKogPiByZWlcIDsKK+ekpyA+IHJhaVwgOwor56SmID4ga291XCA7CivnpKUgPiBraW5cIDsKK+eknyA+IGhvdVwgOwor56SeID4gYm91XCA7CivnpJogPiBrYWlcIDsKK+ekkSA+IHRvdVwgOwor56SMID4gcmFpXCA7CivnpIcgPiBpa3VcIDsKK+ekhiA+IGtlblwgOwor56SAID4ga2FuXCA7Civno70gPiBrb3VcIDsKK+ejuyA+IGhhblwgOwor56O6ID4ga291XCA7Civno7cgPiByaW5cIDsKK+ejtCA+IHRvdVwgOwor56OzID4gc291XCA7Civno7IgPiBreW9cIDsKK+ejrCA+IGtlaVwgOwor56OqID4gc2FpXCA7Civno6EgPiBrYW5cIDsKK+ejmyA+IHNhblwgOwor56OaID4gc2VuXCA7Civno5YgPiByb3VcIDsKK+ejlSA+IGthaVwgOwor56OTID4gdGFpXCA7Civno5EgPiBnYWlcIDsKK+ejjiA+IGtlaVwgOwor56OMID4gdGVuXCA7Civno4ogPiByYWlcIDsKK+ejiSA+IHNvdVwgOwor56OHID4gaGVpXCA7Civno4UgPiBob3VcIDsKK+eiviA+IHRlblwgOwor56K9ID4ga291XCA7CivnorMgPiB0YW5cIDsKK+eisiA+IHRlaVwgOwor56KxID4ga2VuXCA7CivnorAgPiBob3VcIDsKK+eiryA+IGRvdVwgOwor56KtID4gdG91XCA7CivnoqggPiB3YWlcIDsKK+einiA+IGdhblwgOwor56KdID4gemVuXCA7CivnopogPiBoYWlcIDsKK+eimCA+IHRlblwgOwor56KTID4gdGFpXCA7Civnoo4gPiBzYWlcIDsKK+eijSA+IGdhaVwgOwor56KKID4gc2VuXCA7CivnoocgPiB0ZWlcIDsKK+ehvCA+IGhvdVwgOwor56GvID4ga2VuXCA7CivnoaggPiBzaGFcIDsKK+ehpCA+IGtvdVwgOwor56GjID4ga291XCA7CivnoaEgPiBrb3VcIDsKK+ehoCA+IHJvdVwgOwor56GcID4ga291XCA7CivnoZkgPiBnYWlcIDsKK+ehkiA+IHNlaVwgOwor56GPID4ga2VuXCA7CivnoY4gPiBrZWlcIDsKK+ehhyA+IGRvdVwgOwor56GFID4ga2VpXCA7CivnoYQgPiBrb3VcIDsKK+ehgyA+IHNodVwgOwor56C/ID4ga291XCA7CivnoLogPiByZWlcIDsKK+egsiA+IGhvdVwgOwor56CwID4gaG91XCA7CivnoK0gPiBoZW5cIDsKK+egoCA+IHNob1wgOwor56COID4ga2FpXCA7CivnoI0gPiBrYW5cIDsKK+egjCA+IHNlaVwgOwor56CFID4gcmVpXCA7Civnn7wgPiBrb3VcIDsKK+efuCA+IGthblwgOwor55+0ID4gdGVpXCA7Civnn7AgPiBzb3VcIDsKK+efriA+IHdhaVwgOwor55+mID4ga291XCA7Civnn5kgPiBrYW5cIDsKK+eflSA+IGJhblwgOwor55+SID4gYm91XCA7Civnn4kgPiBoaW5cIDsKK+efiCA+IGJlblwgOwor55+HID4gbW91XCA7Civnn4MgPiBnZWlcIDsKK+eetSA+IHJpblwgOwor556xID4geW91XCA7CivnnrAgPiBrYW5cIDsKK+eeryA+IGthblwgOwor556qID4gZG91XCA7CivnnqIgPiBib3VcIDsKK+eeniA+IGJhblwgOwor556RID4gbWVpXCA7Civnno0gPiBzb3VcIDsKK+eejCA+IGtvdVwgOwor556AID4gYm91XCA7Civnnb4gPiBrb3VcIDsKK+edvSA+IGtlaVwgOwor5526ID4ga291XCA7CivnnbQgPiBrb25cIDsKK+edsyA+IGtlaVwgOwor552yID4gc2VpXCA7CivnnawgPiBzYWlcIDsKK+edqiA+IGVraVwgOwor552nID4ga29uXCA7CivnnaUgPiBoZWlcIDsKK+edpCA+IGhlaVwgOwor552gID4ga2VuXCA7CivnnZ8gPiBzdWlcIDsKK+edniA+IHJhaVwgOwor552cID4gc2VpXCA7CivnnZsgPiBzZWlcIDsKK+edmiA+IGdhaVwgOwor552SID4gc2VuXCA7CivnnY8gPiBrb25cIDsKK+edjSA+IGtlblwgOwor552HID4gdGVpXCA7CivnnYYgPiBrYW5cIDsKK+edhSA+IGthblwgOwor55y4ID4gYm91XCA7CivnnLcgPiBrZW5cIDsKK+ectSA+IHNoaVwgOwor55y0ID4ga2VuXCA7CivnnK8gPiBiZWlcIDsKK+ecriA+IHRvdVwgOwor55yoID4gc291XCA7CivnnKYgPiBzZWlcIDsKK+ecpSA+IHNlaVwgOwor55ykID4gdGVpXCA7CivnnKIgPiB3YW5cIDsKK+ecmyA+IG1haVwgOwor55yaID4gc2VpXCA7CivnnJkgPiBjaGlcIDsKK+eclCA+IHRvdVwgOwor55yOID4gc2hpXCA7CivnnIogPiBib3VcIDsKK+eciCA+IHRhblwgOwor55yGID4gaG91XCA7CivnnIQgPiBiZW5cIDsKK+ecgCA+IGJlaVwgOwor55u8ID4gaGFuXCA7Civnm7sgPiBrZWlcIDsKK+ebtiA+IGdpblwgOwor55uwID4ga2FuXCA7Civnm6ogPiB0b3VcIDsKK+ebqCA+IHNodVwgOwor55ukID4gYmFuXCA7Civnm6AgPiByZWlcIDsKK+ebnyA+IG1laVwgOwor55ueID4gc2FuXCA7Civnm5YgPiBnYWlcIDsKK+eblCA+IGthaVwgOwor55uSID4ga291XCA7Civnm40gPiBrb3VcIDsKK+ebjCA+IHdhblwgOwor55q9ID4gdGVuXCA7CivnmqggPiBzZWlcIDsKK+eapSA+IGtvdVwgOwor55qjID4geW91XCA7CivnmqAgPiBzYWlcIDsKK+eanSA+IGtvdVwgOwor55qcID4ga291XCA7CivnmpogPiBnYWlcIDsKK+ealiA+IGthblwgOwor55qTID4ga291XCA7CivnmpAgPiBrb3VcIDsKK+eajiA+IGtvdVwgOwor55qLID4ga291XCA7CivnmoUgPiBoYWVcIDsKK+eagyA+IGJvdVwgOwor55qBID4gc291XCA7CivnmbQgPiByZW5cIDsKK+eZsiA+IHRlblwgOwor55mxID4gdGFuXCA7CivnmbAgPiB5b3VcIDsKK+eZrCA+IHNlblwgOwor55mpID4gcmFpXCA7CivnmaIgPiB5b3VcIDsKK+eZoSA+IGNoaVwgOwor55mcID4gZGVuXCA7CivnmZkgPiBzaG9cIDsKK+eZmCA+IHJlaVwgOwor55mVID4geW91XCA7CivnmYkgPiB0YW5cIDsKK+eZiCA+IGhhaVwgOwor55mGID4gcm91XCA7CivnmYAgPiBrb3VcIDsKK+eYuyA+IHJvdVwgOwor55i6ID4gcm91XCA7CivnmLUgPiBzYWlcIDsKK+eYsCA+IHJ1aVwgOwor55ipID4gdG91XCA7CivnmKYgPiBzb3VcIDsKK+eYoyA+IGthaVwgOwor55iiID4gaGFuXCA7CivnmKEgPiBzb3VcIDsKK+eYnSA+IGthblwgOwor55ibID4gc2VpXCA7CivnmJkgPiBzb3VcIDsKK+eYkyA+IHRhblwgOwor55iSID4gZ29uXCA7CivnmI0gPiB5b3VcIDsKK+eYiyA+IGZ1dVwgOwor55iKID4ga291XCA7CivnmIggPiBrZWlcIDsKK+eYgSA+IHN1aVwgOwor55ezID4gcmluXCA7Civnl7AgPiB0YW5cIDsKK+eXryA+IGthblwgOwor55esID4gZWtpXCA7Civnl6MgPiBhemFcIDsKK+eXoCA+IHNhblwgOwor55eZID4ga2VpXCA7Civnl5ggPiB0b3VcIDsKK+eXlyA+IGJhaVwgOwor55eOID4ga2FpXCA7Civnl4wgPiB0b3VcIDsKK+eXiiA+IHNlblwgOwor55eDID4ga2VuXCA7Civnl4EgPiBzZW5cIDsKK+eWvSA+IHNob1wgOwor55a8ID4gdG91XCA7CivnlrogPiBob3VcIDsKK+eWuCA+IHRhblwgOwor55a1ID4gc2hpXCA7CivnlrMgPiBrYW5cIDsKK+eWsSA+IGhvdVwgOwor55arID4gZWtpXCA7CivnlqUgPiBrYWlcIDsKK+eWoyA+IGlib1wgOwor55adID4gc2FuXCA7CivnlpMgPiB6YWlcIDsKK+eWkCA+IGNoaVwgOwor55aJID4gam91XCA7CivnloIgPiBqb3VcIDsKK+eWgSA+IHJ5dVwgOwor55W+ID4gc3VpXCA7Civnlb0gPiB0b25cIDsKK+eVpCA+IHNoaVwgOwor55WhID4ga2FpXCA7CivnlZ4gPiBib3VcIDsKK+eVmiA+IGhvblwgOwor55WXID4gdG91XCA7CivnlY4gPiBrZW5cIDsKK+eVjSA+IGthaVwgOwor55WLID4gdGVuXCA7CivnlYogPiBrb3VcIDsKK+eViCA+IGhhblwgOwor55S/ID4gbW91XCA7CivnlL4gPiBzaGlcIDsKK+eUvSA+IGtlblwgOwor55S5ID4gaGVpXCA7CivnlLggPiB0ZW5cIDsKK+eUtCA+IHNvdVwgOwor55SvID4gbmVpXCA7CivnlKwgPiB5b3VcIDsKK+eUpCA+IHp1aVwgOwor55SiID4gc2FuXCA7CivnlKAgPiBzZWlcIDsKK+eUnCA+IHRlblwgOwor55SbID4gdGVuXCA7CivnlJcgPiBnZW5cIDsKK+eUkSA+IHNvdVwgOwor55SOID4gc2VuXCA7CivnlI0gPiBib3VcIDsKK+eUhiA+IHNoaVwgOwor55SEID4ga2VuXCA7CivnlIEgPiBoZWlcIDsKK+eTvyA+IGhvdVwgOwor55O7ID4gY2hpXCA7Civnk7cgPiBzaGlcIDsKK+eTtCA+IHJpaVwgOwor55OyID4gdG9uXCA7Civnk6sgPiBob25cIDsKK+eTqiA+IGhhblwgOwor55OoID4ga291XCA7Civnk6MgPiBiZW5cIDsKK+eTmyA+IGthblwgOwor55OaID4gc2FuXCA7Civnk5ggPiBrYW5cIDsKK+eTkyA+IHJhblwgOwor55OPID4gcm91XCA7Civnk4wgPiBrYWlcIDsKK+eTiiA+IGtlaVwgOwor55OJID4gc2FuXCA7Civnk4ggPiByZWlcIDsKK+eSvyA+IHNlblwgOwor55K7ID4gc3VpXCA7CivnkrIgPiBzdWlcIDsKK+eSryA+IGthaVwgOwor55KuID4gdGFuXCA7CivnkqsgPiB0b3VcIDsKK+eSqiA+IHNvdVwgOwor55KpID4ga3lvXCA7CivnkqggPiBzYW5cIDsKK+eSoCA+IGhhblwgOwor55KcID4ga291XCA7CivnkpogPiBrZWlcIDsKK+eSmCA+IHJpblwgOwor55KSID4gdG91XCA7Civnko8gPiB0ZWlcIDsKK+eSiSA+IHJpblwgOwor55KHID4gc2VuXCA7CivnkoUgPiBzb3VcIDsKK+eSgSA+IHNvdVwgOwor55KAID4gc2FpXCA7Civnkb4gPiBraW5cIDsKK+eRtiA+IHlvdVwgOwor55GxID4gdGVuXCA7CivnkbAgPiBrYWlcIDsKK+eRryA+IHJvdVwgOwor55GtID4gdG91XCA7CivnkasgPiB0b3VcIDsKK+eRpCA+IHlvdVwgOwor55GiID4geW91XCA7CivnkZ4gPiB6dWlcIDsKK+eRnSA+IGtvdVwgOwor55GZID4gZG91XCA7CivnkZEgPiB0ZW5cIDsKK+eRjSA+IGthblwgOwor55GHID4gdGFpXCA7CivnkYYgPiBzZWlcIDsKK+eRhSA+IHRlaVwgOwor55GEID4gc2VuXCA7CivnkYEgPiBib3VcIDsKK+eQvyA+IGtvblwgOwor55C6ID4gaG91XCA7CivnkLkgPiBraW5cIDsKK+eQsyA+IHJpblwgOwor55CvID4ga2FuXCA7CivnkK4gPiBzb3VcIDsKK+eQqyA+IGhvdVwgOwor55CoID4ga29uXCA7CivnkKQgPiBzb3VcIDsKK+eQmiA+IGt5b1wgOwor55CFID4gcm91XCA7CivnkIQgPiBrZW5cIDsKK+eQgSA+IHplblwgOwor55CAID4ga2FuXCA7Civnj70gPiB0ZWlcIDsKK+ePuyA+IGJhaVwgOwor54+6ID4ga3VuXCA7Civnj7kgPiBzZWlcIDsKK+ePtSA+IHRlaVwgOwor54+uID4gaGFpXCA7Civnj60gPiBoYW5cIDsKK+ePqSA+IGtvdVwgOwor54+nID4geW91XCA7Civnj6IgPiBnaW5cIDsKK+ePoSA+IGtpblwgOwor54+gID4gc2h1XCA7Civnj5YgPiBrb3VcIDsKK+ePkyA+IGtvdVwgOwor54+KID4gc2FuXCA7Civnj4kgPiBiaW5cIDsKK+eOvSA+IGtvdVwgOwor5468ID4gc2VpXCA7CivnjrkgPiBrZW5cIDsKK+eOtyA+IHRlblwgOwor5461ID4gZ2FuXCA7CivnjrMgPiB0YWlcIDsKK+eOsiA+IHJlaVwgOwor546tID4gaGluXCA7CivnjqsgPiBiYWlcIDsKK+eOqiA+IGthblwgOwor546iID4gaGluXCA7CivnjqAgPiBrYWlcIDsKK+eOnyA+IGJpblwgOwor546cID4ga291XCA7CivnjpUgPiBrYW5cIDsKK+eOjiA+IHRlaVwgOwor546BID4ga2VuXCA7CivnjbcgPiBrb3VcIDsKK+eNsSA+IGhpblwgOwor542wID4gZG91XCA7Civnja8gPiBrdW5cIDsKK+eNriA+IHNlblwgOwor542sID4ga2FpXCA7CivnjasgPiBrZW5cIDsKK+eNqiA+IGthaVwgOwor542pID4gd2FpXCA7CivnjacgPiBrZW5cIDsKK+eNniA+IHRvdVwgOwor542YID4gaGVpXCA7CivnjZYgPiBmdW5cIDsKK+eNkiA+IGdvdVwgOwor542KID4gc291XCA7CivnjYUgPiBzaGlcIDsKK+eNgyA+IGdhaVwgOwor54y9ID4gYmVpXCA7CivnjLsgPiBzb25cIDsKK+eMuiA+IHlvdVwgOwor54y3ID4geXV1XCA7CivnjLUgPiBoZW5cIDsKK+eMtCA+IGtvdVwgOwor54yxID4gZG91XCA7CivnjK8gPiB0YW5cIDsKK+eMriA+IGtlblwgOwor54ypID4gc2VpXCA7CivnjKUgPiB3YWlcIDsKK+eMniA+IHNoYVwgOwor54ybID4gbW91XCA7CivnjJkgPiBzb3VcIDsKK+eMmCA+IHNlaVwgOwor54yNID4gcmFpXCA7CivnjIogPiBnZWlcIDsKK+eMhSA+IGhhaVwgOwor54yEID4ga2VpXCA7CivnjIIgPiBrYW5cIDsKK+eLviA+IHNlaVwgOwor54u7ID4gc2FuXCA7Civni7ogPiBnZW5cIDsKK+eLtyA+IGtlblwgOwor54u0ID4gaGVpXCA7Civni6kgPiBzaHVcIDsKK+eLoCA+IGdhblwgOwor54ufID4ga2FuXCA7Civni50gPiBzZW5cIDsKK+eLliA+IHl1dVwgOwor54uOID4ga291XCA7Civni4wgPiBzZWlcIDsKK+eLgCA+IGpvdVwgOwor54q+ID4gZ2luXCA7CivnirkgPiB5dXVcIDsKK+eKtCA+IGthblwgOwor54qyID4gc2FpXCA7CivnipsgPiBib3VcIDsKK+eKkiA+IGtvdVwgOwor54qOID4gaG91XCA7Civnio0gPiBrZW5cIDsKK+eKiSA+IGp1blwgOwor54qHID4gaG9uXCA7CivnioAgPiBzYWlcIDsKK+eJvSA+IGtlblwgOwor54m8ID4ga291XCA7CivnibsgPiBib3VcIDsKK+eJuCA+IHNoaVwgOwor54m3ID4gc2VuXCA7CivnibQgPiB0ZWlcIDsKK+eJriA+IHNlblwgOwor54msID4gaGFpXCA7CivniaggPiBrb3VcIDsKK+eJoyA+IGppblwgOwor54mfID4gYm91XCA7CivniZ0gPiBoaW5cIDsKK+eJmiA+IHRvdVwgOwor54mWID4geXV1XCA7CivniZUgPiBzb3VcIDsKK+eJkyA+IGJvdVwgOwor54mQID4gc291XCA7CivniY8gPiBjaHVcIDsKK+eJjiA+IHNvdVwgOwor54mLID4gc2VuXCA7CivniYUgPiB5b3VcIDsKK+eJgiA+IHNvdVwgOwor54i8ID4gc2hvXCA7CivniLsgPiBrb3VcIDsKK+eIqCA+IHNhblwgOwor54ikID4gcmFuXCA7CivniJ8gPiBrYW5cIDsKK+eIlyA+IHlvdVwgOwor54iJID4gcm91XCA7CivniIggPiByeW9cIDsKK+eHvyA+IHlvdVwgOwor54e+ID4gdG91XCA7Civnh7wgPiBqaW5cIDsKK+eHuSA+IHNlblwgOwor54enID4gc3VpXCA7Civnh6YgPiBzYW5cIDsKK+eHpSA+IHNvdVwgOwor54egID4gb2tpXCA7Civnh5wgPiBtb25cIDsKK+eHmSA+IHRvdVwgOwor54eXID4gcmFuXCA7Civnh5QgPiBoYW5cIDsKK+eHkyA+IGZ1blwgOwor54eQID4gcmluXCA7Civnh4wgPiBmdW5cIDsKK+eHiSA+IHRvblwgOwor54eBID4geW91XCA7Civnh4AgPiBzZW5cIDsKK+eGvyA+IGtvdVwgOwor54a+ID4gc2hpXCA7CivnhrMgPiBtYW5cIDsKK+eGsiA+IGtlaVwgOwor54avID4gemVuXCA7CivnhqwgPiBnb3VcIDsKK+eGoiA+IGhvdVwgOwor54agID4geXV1XCA7CivnhpUgPiBrb3VcIDsKK+eGlCA+IHlvdVwgOwor54aSID4ga2VpXCA7Civnho8gPiBrdW5cIDsKK+eGjCA+IHNlblwgOwor54aAID4geW91XCA7CivnhbkgPiBrb3VcIDsKK+eFrCA+IHlvdVwgOwor54WoID4gd2FpXCA7CivnhaUgPiBrYW5cIDsKK+eFoiA+IGtlaVwgOwor54WgID4geW91XCA7CivnhZwgPiBpa3VcIDsKK+eFmiA+IGtlaVwgOwor54WXID4gZGFuXCA7CivnhZYgPiBkYW5cIDsKK+eFkSA+IHNoYVwgOwor54WMID4ga291XCA7CivnhYsgPiBzZWlcIDsKK+eFiiA+IGtlblwgOwor54WJID4gcmVuXCA7CivnhYUgPiB0YW5cIDsKK+eErSA+IGtlaVwgOwor54SgID4gc2FpXCA7CivnhJ4gPiB0b25cIDsKK+eEnCA+IGtvblwgOwor54SZID4gaG91XCA7CivnhJUgPiBrYW5cIDsKK+eEiyA+IHNvdVwgOwor54SEID4ga3VuXCA7Civng70gPiBob3VcIDsKK+eDuiA+IGtvdVwgOwor54O5ID4gaG91XCA7Civng7EgPiBrZWlcIDsKK+eDpCA+IGtvdVwgOwor54OdID4gam91XCA7Civng5wgPiB0ZW5cIDsKK+eDmCA+IGtvdVwgOwor54OWID4gc2FpXCA7Civng5QgPiB0b3VcIDsKK+eDkSA+IHlvdVwgOwor54OLID4ga291XCA7Civng4ogPiB5b3VcIDsKK+eDiSA+IGthblwgOwor54K3ID4gc2h1XCA7CivngrQgPiB5b3VcIDsKK+eCsyA+IGhlaVwgOwor54KxID4gdGFpXCA7CivngrAgPiBob3VcIDsKK+eCryA+IGtlaVwgOwor54KuID4gaG91XCA7CivngqsgPiBrZW5cIDsKK+eCmyA+IHlvdVwgOwor54KZID4gc2hhXCA7CivngpggPiBraW5cIDsKK+eClyA+IGtvdVwgOwor54KWID4gdG9uXCA7CivngpUgPiBrb3VcIDsKK+eClCA+IGtlaVwgOwor54KSID4gc291XCA7CivngoYgPiBidW5cIDsKK+eChSA+IGtlaVwgOwor54G+ID4gc2FpXCA7CivngbYgPiBzb3VcIDsKK+eBtSA+IHJlaVwgOwor54GuID4ga291XCA7CivngaQgPiByYW5cIDsKK+eBoyA+IHdhblwgOwor54GdID4ga291XCA7CivngZggPiBkYW5cIDsKK+eBkSA+IHNhaVwgOwor54GLID4gaG91XCA7CivngYogPiBzZW5cIDsKK+eBiSA+IHlvdVwgOwor54GDID4gaHV1XCA7CivngL4gPiByYW5cIDsKK+eAvCA+IGpvdVwgOwor54CyID4gcmVuXCA7CivngKggPiByYWlcIDsKK+eApiA+IGNob1wgOwor54CjID4ga2FpXCA7CivngJ4gPiBqb3VcIDsKK+eAmiA+IGthblwgOwor54CXID4ga2VuXCA7CivngI0gPiB0ZW5cIDsKK+eAiSA+IHNoYVwgOwor54CBID4geW91XCA7CivngIAgPiB5dXVcIDsKK+a/viA+IHJ5b1wgOwor5r+9ID4gc2FuXCA7Civmv7UgPiBoaW5cIDsKK+a/syA+IHNlblwgOwor5r+rID4gcmFuXCA7Civmv6ggPiBzaGlcIDsKK+a/pCA+IHRvdVwgOwor5r+gID4gZ291XCA7Civmv5QgPiBkZWlcIDsKK+a/iiA+IGthaVwgOwor5r+GID4gZnVuXCA7Civmv4IgPiByZW5cIDsKK+a+tiA+IHNlblwgOwor5r6zID4gaWt1XCA7CivmvrEgPiB0ZW5cIDsKK+a+sCA+IHJlblwgOwor5r6vID4gc2FuXCA7Civmvq4gPiBrYWlcIDsKK+a+qiA+IHJlaVwgOwor5r6oID4gc2VpXCA7CivmvqcgPiByZWlcIDsKK+a+pSA+IGthaVwgOwor5r6jID4ga2FuXCA7CivmvqEgPiBzb3VcIDsKK+a+nyA+IHJpblwgOwor5r6aID4gaWt1XCA7CivmvpcgPiBrYW5cIDsKK+a+liA+IGthblwgOwor5r6UID4ga291XCA7CivmvpIgPiBrb3VcIDsKK+a+jiA+IGhvdVwgOwor5r6NID4gc2h1XCA7CivmvowgPiBzaGlcIDsKK+a+iyA+IGtvdVwgOwor5r6HID4gcm91XCA7CivmvoMgPiBnZWlcIDsKK+a+gSA+IGp1dVwgOwor5r6AID4ganV1XCA7Civmvb4gPiByaW5cIDsKK+a9vCA+IGRvdVwgOwor5r26ID4gc2FuXCA7CivmvbggPiBzYW5cIDsKK+a9tCA+IGNob1wgOwor5r2vID4gamluXCA7Civmva0gPiB0YW5cIDsKK+a9rCA+IHRhblwgOwor5r2oID4gc291XCA7CivmvaYgPiByb3VcIDsKK+a9pCA+IGp1blwgOwor5r2iID4ga291XCA7CivmvaEgPiB0b25cIDsKK+a9myA+IHNlblwgOwor5r2YID4gaGFuXCA7CivmvZMgPiBrZWlcIDsKK+a9kiA+IHRvdVwgOwor5r2FID4ga2FuXCA7CivmvYAgPiBzb3VcIDsKK+a8viA+IHlvdVwgOwor5ry8ID4gc2FpXCA7CivmvLYgPiBrYW5cIDsKK+a8sSA+IHNvdVwgOwor5rywID4gaG91XCA7CivmvK8gPiB0b3VcIDsKK+a8rSA+IGJvdVwgOwor5ryrID4gbWFuXCA7CivmvKkgPiBzZW5cIDsKK+a8myA+IHRvdVwgOwor5ryWID4ga291XCA7CivmvJEgPiBnYWlcIDsKK+a8jCA+IGtpblwgOwor5ryIID4gc2VpXCA7CivmvIQgPiBnYWlcIDsKK+a7viA+IGtvblwgOwor5ru9ID4geW91XCA7Civmu7sgPiBzYW5cIDsKK+a7oSA+IG1hblwgOwor5rueID4gdGFpXCA7Civmu5ogPiBrb25cIDsKK+a7lSA+IHRvdVwgOwor5ruUID4gdG91XCA7Civmu44gPiBrZWlcIDsKK+a7jSA+IGNoaVwgOwor5ruJID4ga291XCA7Civmu4ggPiBrb3VcIDsKK+a7hyA+IHRlblwgOwor5ruEID4gc291XCA7Civmu4IgPiBib3VcIDsKK+a7gSA+IGNob1wgOwor5rq/ID4gaGFuXCA7CivmursgPiB0b3VcIDsKK+a6tyA+IGtvblwgOwor5rqyID4gc291XCA7Civmuq4gPiBzaGlcIDsKK+a6nyA+IG1laVwgOwor5rqZID4gdGFpXCA7CivmupggPiBrb3VcIDsKK+a6kyA+IHJlblwgOwor5rqPID4gdG91XCA7CivmuokgPiBnYWlcIDsKK+a5vSA+IHNoaVwgOwor5rm7ID4ganVuXCA7CivmubYgPiBzZW5cIDsKK+a5syA+IGRhblwgOwor5rmyID4ga2FuXCA7CivmuaMgPiBiaW5cIDsKK+a5nyA+IGtvdVwgOwor5rmeID4gdG91XCA7CivmuZ0gPiBrYWlcIDsKK+a5myA+IHRhblwgOwor5rmXID4gaG91XCA7CivmuZQgPiBzZW5cIDsKK+a5kyA+IGhvblwgOwor5rmRID4gc2hvXCA7CivmuY8gPiBrYWlcIDsKK+a5jiA+IGJlblwgOwor5rmNID4gdGFuXCA7CivmuYogPiBzb3VcIDsKK+a5iSA+IHRlblwgOwor5rmIID4gYmFpXCA7CivmuYUgPiByZW5cIDsKK+a5gyA+IGhhaVwgOwor5ri+ID4ga29uXCA7CivmuLsgPiBzZWlcIDsKK+a4uSA+IGtvdVwgOwor5ri4ID4geXV1XCA7CivmuLIgPiBzZW5cIDsKK+a4pyA+IHRlaVwgOwor5rilID4gYWt1XCA7CivmuKIgPiBodXVcIDsKK+a4nyA+IHRlaVwgOwor5riZID4ga2FuXCA7CivmuJMgPiBrZWlcIDsKK+a4gCA+IGhvblwgOwor5re4ID4gc2VpXCA7Civmt7YgPiByYWlcIDsKK+a3sCA+IGRlblwgOwor5revID4gaWt1XCA7Civmt64gPiB3YWlcIDsKK+a3rCA+IHNhaVwgOwor5reqID4gcmluXCA7Civmt6ggPiBqb3VcIDsKK+a3piA+IGthblwgOwor5refID4gdGVuXCA7Civmt5sgPiBzZWlcIDsKK+a3miA+IHJ1aVwgOwor5reZID4gc291XCA7Civmt5ggPiB0b3VcIDsKK+a3liA+IGRvdVwgOwor5reSID4gc2VpXCA7Civmt48gPiBrb3VcIDsKK+a3jiA+IGhvdVwgOwor5reKID4ga2FuXCA7Civmt4YgPiBrb3VcIDsKK+a3hCA+IHNoaVwgOwor5reAID4gdGVuXCA7Civmtr0gPiBrb25cIDsKK+a2tyA+IHRvdVwgOwor5ra1ID4ga2FuXCA7CivmtqwgPiBrZWlcIDsKK+a2qiA+IGh1dVwgOwor5rajID4ga2FuXCA7CivmtpsgPiB0b3VcIDsKK+a2miA+IHNlaVwgOwor5raYID4gc2hpXCA7CivmtpcgPiBzZWlcIDsKK+a2liA+IHJlaVwgOwor5raVID4gdGVpXCA7CivmtpQgPiBzYW5cIDsKK+a2kyA+IGtlblwgOwor5raSID4gdG9uXCA7CivmtpEgPiBzb3VcIDsKK+a2hyA+IHRlaVwgOwor5rW8ID4gYmFpXCA7CivmtbAgPiByZW5cIDsKK+a1qSA+IGtvdVwgOwor5rWnID4gdGVpXCA7CivmtaYgPiB1cmFcIDsKK+a1pSA+IHl1dVwgOwor5rWkID4ga291XCA7CivmtaMgPiBrYW5cIDsKK+a1nyA+IHl1dVwgOwor5rS9ID4ga291XCA7CivmtLggPiBrb3VcIDsKK+a0riA+IHRvdVwgOwor5rSqID4ga291XCA7CivmtKggPiBrb3VcIDsKK+a0miA+IGtvdVwgOwor5rSZID4gc2h1XCA7CivmtIogPiBzZW5cIDsKK+a0hCA+IGthaVwgOwor5rO0ID4ga2FuXCA7Civms7IgPiBzZWlcIDsKK+azsCA+IHRhaVwgOwor5rOvID4gYmluXCA7Civms64gPiBoYW5cIDsKK+azqyA+IGtlblwgOwor5rOqID4gcnVpXCA7Civms6kgPiBzb3VcIDsKK+azoCA+IHJlaVwgOwor5rOcID4gdGVpXCA7Civms5sgPiBoYW5cIDsKK+azmiA+IHNlaVwgOwor5rOZID4gaG91XCA7Civms5cgPiBzaGlcIDsKK+azliA+IGJvdVwgOwor5rOUID4ga2FuXCA7Civms5EgPiB5dXVcIDsKK+azjSA+IGhvblwgOwor5rOCID4ga2VpXCA7Civmsr4gPiB0ZW5cIDsKK+ayuiA+IHRlblwgOwor5rK1ID4gZGVpXCA7CivmsrQgPiByZWlcIDsKK+ayriA+IHNob1wgOwor5rKfID4ga291XCA7CivmspwgPiBoYW5cIDsKK+aymyA+IGhhaVwgOwor5rKaID4gc2hpXCA7CivmspcgPiB0ZW5cIDsKK+aylCA+IGJlblwgOwor5rKTID4gdG91XCA7CivmsoYgPiBrb3VcIDsKK+ayhSA+IGdlblwgOwor5rG+ID4gZnVuXCA7CivmsbggPiBob3VcIDsKK+axtiA+IGJ1blwgOwor5rG0ID4gaGVuXCA7CivmsbMgPiBoZW5cIDsKK+axryA+IGtvdVwgOwor5rGtID4gemVpXCA7CivmsasgPiBrZWlcIDsKK+axpyA+IGtlblwgOwor5rGeID4ga291XCA7CivmsZwgPiBzaGlcIDsKK+axlSA+IHNhblwgOwor5rGSID4gYm91XCA7CivmsY8gPiB0YWlcIDsKK+axjiA+IGhhblwgOwor5rGNID4ga2FuXCA7CivmsL4gPiBoYW5cIDsKK+awvSA+IHRvblwgOwor5rC6ID4gc3VpXCA7CivmsLkgPiBrYW5cIDsKK+awriA+IHRhblwgOwor5rCnID4geW91XCA7CivmsKYgPiBnYWlcIDsKK+awmyA+IGZ1blwgOwor5rCZID4gc2VuXCA7CivmsJMgPiBib3VcIDsKK+awkCA+IHRlaVwgOwor5rCJID4gc291XCA7CivmsIQgPiBqdXVcIDsKK+avvyA+IHNhblwgOwor5q+3ID4gYm91XCA7Civmr7MgPiB6ZWlcIDsKK+avryA+IHRhblwgOwor5q+nID4ganV1XCA7Civmr6EgPiBzZW5cIDsKK+avmiA+IHNhblwgOwor5q+TID4gaWt1XCA7Civmr48gPiBtYWlcIDsKK+avjCA+IGthblwgOwor5q69ID4ga291XCA7CivmrrggPiBrZWlcIDsKK+ausyA+IHNodVwgOwor5q6yID4gc2VuXCA7CivmrrEgPiBzZW5cIDsKK+auryA+IGhpblwgOwor5q6uID4gcmVuXCA7CivmrqsgPiB0YW5cIDsKK+auqSA+IHNhblwgOwor5q6oID4ga2FpXCA7CivmrqMgPiBraW5cIDsKK+auoiA+IHRlaVwgOwor5q6XID4geW91XCA7CivmrpUgPiBmdXVcIDsKK+auiSA+IGp1blwgOwor5q6FID4gc291XCA7CivmroQgPiB0ZW5cIDsKK+augyA+IHlvdVwgOwor5q6AID4geW91XCA7CivmrbIgPiBzZWlcIDsKK+atriA+IGp1dVwgOwor5q2rID4ga3lvXCA7CivmrZ0gPiBla2lcIDsKK+atmyA+IGthblwgOwor5q2TID4ga2FuXCA7CivmrYkgPiBrZW5cIDsKK+athiA+IGtpblwgOwor5q2DID4gc291XCA7CivmrL8gPiB0YW5cIDsKK+asviA+IGthblwgOwor5qy9ID4ga2luXCA7CivmrLUgPiBrYW5cIDsKK+asrCA+IGthaVwgOwor5qyjID4gZ29uXCA7CivmrJ4gPiByZWlcIDsKK+aslyA+IHJhblwgOwor5qyWID4gcmFuXCA7CivmrJIgPiByYW5cIDsKK+askSA+IHNhblwgOwor5qyQID4gcmVpXCA7CivmrIkgPiBzb3VcIDsKK+ashiA+IHNvdVwgOwor5qyEID4gcmFuXCA7CivmrIMgPiBzYW5cIDsKK+arvCA+IHNlblwgOwor5qu6ID4gcmVpXCA7Civmq7AgPiBrYWlcIDsKK+arpyA+IHNob1wgOwor5qulID4gY2h1XCA7Civmq6QgPiBzZW5cIDsKK+arnCA+IGtvdVwgOwor5quaID4gcnlvXCA7Civmq5YgPiByeW9cIDsKK+arlSA+IHNhblwgOwor5quUID4gcmVpXCA7Civmq5EgPiByYWlcIDsKK+arkCA+IHJ1aVwgOwor5quMID4geXV1XCA7Civmq4kgPiBjaHVcIDsKK+ariCA+IHRvdVwgOwor5quGID4ga2FpXCA7Civmq4IgPiBrYWlcIDsKK+aqviA+IGtlaVwgOwor5qq7ID4gb3JpXCA7CivmqrggPiBuZWlcIDsKK+aqsyA+IGJpblwgOwor5qqwID4gaGVuXCA7Civmqq8gPiB0YWlcIDsKK+aqriA+IHRvdVwgOwor5qqsID4gYm91XCA7CivmqqkgPiByaW5cIDsKK+aqoCA+IGtlaVwgOwor5qqeID4ga2FpXCA7CivmqpEgPiByYWlcIDsKK+aqiSA+IHRlaVwgOwor5qqHID4gc3VpXCA7CivmqoYgPiBzYW5cIDsKK+aqgSA+IHJpblwgOwor5qm+ID4gc2h1XCA7CivmqaogPiB6ZW5cIDsKK+appyA+IHNvdVwgOwor5qmmID4gdG91XCA7CivmqaQgPiB6dWlcIDsKK+apliA+IHRvdVwgOwor5qmVID4gdG91XCA7CivmqZEgPiByb3VcIDsKK+apjiA+IGhhblwgOwor5qmJID4gcmluXCA7CivmqYggPiBrYWlcIDsKK+aphyA+IHplaVwgOwor5qmEID4ga2FuXCA7CivmqL8gPiBzZW5cIDsKK+aotyA+IHNvdVwgOwor5qi2ID4gc2FpXCA7CivmqKggPiBzZWlcIDsKK+aopCA+IGpvdVwgOwor5qigID4gYm9uXCA7CivmqJ4gPiBzdXVcIDsKK+aolyA+IGNob1wgOwor5qiUID4gc291XCA7CivmqI8gPiBydWlcIDsKK+aojCA+IGthblwgOwor5qiLID4gdG9pXCA7CivmqIogPiBoYW5cIDsKK+aogyA+IHJvdVwgOwor5qiBID4gdG91XCA7Civmp78gPiBraW5cIDsKK+anviA+IGJhblwgOwor5qe5ID4ga291XCA7Civmp7UgPiBrYW5cIDsKK+ansSA+IHl1dVwgOwor5qevID4gc2FpXCA7Civmp6sgPiB0YW5cIDsKK+anqiA+IGdhaVwgOwor5qenID4gc2FuXCA7Civmp54gPiByb3VcIDsKK+annSA+IHRvdVwgOwor5qeZID4gdGVuXCA7Civmp5MgPiBrb3VcIDsKK+ankSA+IGJhaVwgOwor5qeQID4ga2FpXCA7Civmp4ggPiBkb3VcIDsKK+angyA+IGhhblwgOwor5qeBID4ga291XCA7CivmprwgPiBrb3VcIDsKK+amuCA+IHRhaVwgOwor5qaxID4gc3VpXCA7Civmpq8gPiBzaGlcIDsKK+amrSA+IHNoYVwgOwor5qamID4ga2FuXCA7CivmpqUgPiBrb3VcIDsKK+amoCA+IGJlaVwgOwor5qacID4gYm91XCA7CivmppUgPiB5b3VcIDsKK+amlCA+IHJvdVwgOwor5qW7ID4ga291XCA7CivmpbogPiBqdXVcIDsKK+altyA+IGthaVwgOwor5qW0ID4gdGVpXCA7CivmpbMgPiBiYWlcIDsKK+alsSA+IHNvdVwgOwor5qWvID4ganVuXCA7Civmpa4gPiBjaG9cIDsKK+alqiA+IHlvdVwgOwor5qWpID4gaGVuXCA7CivmpaggPiB0ZWlcIDsKK+alpiA+IGtlblwgOwor5qWlID4ga2VuXCA7CivmpaQgPiBzb3VcIDsKK+alniA+IHJvdVwgOwor5qWdID4gcmVuXCA7CivmpZkgPiBib3VcIDsKK+allyA+IGtlblwgOwor5qWOID4ga29uXCA7CivmpL0gPiB0ZW5cIDsKK+aktiA+IHNodVwgOwor5qSzID4gd2FpXCA7CivmpLEgPiBmdXVcIDsKK+akpiA+IGtlblwgOwor5qSiID4ga2FpXCA7CivmpJcgPiB0ZWlcIDsKK+akliA+IGhvdVwgOwor5qSRID4gaGVpXCA7CivmpJAgPiBreW9cIDsKK+akjCA+IGtvdVwgOwor5qSJID4gam91XCA7Civmo7wgPiBodW5cIDsKK+ajuSA+IHNhb1wgOwor5qO2ID4gcmFpXCA7Civmo7UgPiBrYW5cIDsKK+ajsSA+IHJvdVwgOwor5qOwID4gc29pXCA7Civmo68gPiBqaW5cIDsKK+ajrSA+IGVraVwgOwor5qOsID4ga2VuXCA7Civmo6ggPiBrZWlcIDsKK+ajpyA+IHNhblwgOwor5qOlID4gaGFuXCA7Civmo6MgPiB0ZWlcIDsKK+ajoSA+IGtvdVwgOwor5qOgID4gdG91XCA7Civmo5kgPiByZWlcIDsKK+ajliA+IHRvdVwgOwor5qOVID4gc2h1XCA7Civmo5QgPiBrb25cIDsKK+ajkyA+IGhvdVwgOwor5qORID4gaGFpXCA7Civmo40gPiBrb25cIDsKK+ajjCA+IHNhaVwgOwor5qOJID4gbWVuXCA7Civmo4ggPiBzZW5cIDsKK+ajhiA+IHJpblwgOwor5qOFID4gaGVpXCA7CivmorwgPiB0b3VcIDsKK+aiuSA+IGJpblwgOwor5qK1ID4gZnV1XCA7CivmorEgPiBrb25cIDsKK+aiqiA+IHRvdVwgOwor5qKhID4ga2FuXCA7CivmoqAgPiByeW9cIDsKK+aimiA+IGJhblwgOwor5qKYID4ga2VuXCA7CivmopcgPiBrb3VcIDsKK+ailiA+IGhhaVwgOwor5qKUID4gc2hpXCA7Civmoo0gPiBzb3VcIDsKK+aiiCA+IGhvdVwgOwor5qKGID4gaG91XCA7CivmooQgPiB5b3VcIDsKK+ahvyA+IGthblwgOwor5qG+ID4ga3VuXCA7CivmobsgPiBob3VcIDsKK+ahuSA+IHJvdVwgOwor5qG1ID4genVpXCA7CivmobEgPiBrZWlcIDsKK+ahryA+IHRlaVwgOwor5qGuID4gaGFpXCA7CivmoaMgPiB0b3VcIDsKK+ahkyA+IGthblwgOwor5qGSID4gc291XCA7CivmoYogPiBrZW5cIDsKK+ahhSA+IGdhaVwgOwor5qGEID4ga291XCA7CivmoL0gPiBzYWlcIDsKK+agtCA+IHNlblwgOwor5qCzID4gcm91XCA7CivmoLIgPiBnb3VcIDsKK+agryA+IGlrdVwgOwor5qCsID4gc2VpXCA7CivmoKsgPiBzb25cIDsKK+agnyA+IGhlaVwgOwor5qCdID4gdGVuXCA7CivmoJkgPiBrb3VcIDsKK+agliA+IHNlaVwgOwor5qCUID4ga2VpXCA7CivmoIggPiBzYW5cIDsKK+afuSA+IHNoaVwgOwor5p+2ID4gc2hpXCA7Civmn6wgPiBrYW5cIDsKK+afpiA+IHRhblwgOwor5p+iID4gdGVpXCA7Civmn5wgPiBreW9cIDsKK+afmSA+IGtvdVwgOwor5p+YID4gc2hhXCA7Civmn5EgPiBrYW5cIDsKK+afiSA+IGhhblwgOwor5p+IID4gaGFuXCA7Civmn4YgPiByb3VcIDsKK+afgyA+IHJlaVwgOwor5p6+ID4gc2hpXCA7Civmnr0gPiBzb3VcIDsKK+aevCA+IHlvdVwgOwor5p65ID4gaG91XCA7CivmnrQgPiBrYWlcIDsKK+aesiA+IHNoaVwgOwor5p6wID4gaGVpXCA7CivmnqIgPiBzdXVcIDsKK+aemyA+IHNvdVwgOwor5p6YID4gemVpXCA7CivmnpYgPiB5b3VcIDsKK+aekyA+IHNodVwgOwor5p6PID4gZGFuXCA7CivmnowgPiBmdW5cIDsKK+aeiyA+IGhvdVwgOwor5p6FID4ga2VpXCA7CivmnoQgPiBrb3VcIDsKK+advCA+IGNob1wgOwor5p20ID4ga2VuXCA7CivmnbMgPiB5b3VcIDsKK+adsiA+IGtvdVwgOwor5p2uID4gaGFpXCA7Civmna0gPiBrdWlcIDsKK+adrCA+IGdlblwgOwor5p2nID4gbWFuXCA7CivmnaAgPiBrb3VcIDsKK+adnSA+IGNoaVwgOwor5p2VID4gdGVpXCA7CivmnYYgPiBrYW5cIDsKK+acvyA+IHNoaVwgOwor5py+ID4gdG91XCA7CivmnLcgPiB0b3VcIDsKK+acqSA+IHRvdVwgOwor5pyiID4gYm91XCA7CivmnJwgPiB0b25cIDsKK+acmSA+IG1laVwgOwor5pyYID4gc2VuXCA7CivmnJYgPiByb3VcIDsKK+acjiA+IHJlaVwgOwor5pyMID4gaGFuXCA7Civmm7ogPiBzb3VcIDsKK+abuSA+IHNvdVwgOwor5puuID4gZ2FuXCA7Civmm6wgPiBzYWlcIDsKK+abqyA+IHJhblwgOwor5pupID4gZG91XCA7Civmm6ggPiByb3VcIDsKK+aboSA+IGpvdVwgOwor5pugID4ga291XCA7Civmm5sgPiBrdW5cIDsKK+abmiA+IGJvdVwgOwor5puUID4ga2VpXCA7Civmm44gPiBla2lcIDsKK+abiCA+IHRvdVwgOwor5puFID4geW91XCA7Civmm4QgPiB5b3VcIDsKK+abgyA+IHRhaVwgOwor5puCID4ga291XCA7Civmmr4gPiB0b25cIDsKK+aauyA+IGtlaVwgOwor5pq5ID4gc2VuXCA7CivmmrUgPiBrYW5cIDsKK+aarSA+IGtvdVwgOwor5pqkID4ga291XCA7CivmmqAgPiBrb3VcIDsKK+aanyA+IGthaVwgOwor5pqdID4gbWVpXCA7CivmmpogPiB5b3VcIDsKK+aamCA+IHlvdVwgOwor5pqSID4gc2VpXCA7CivmmowgPiBrZWlcIDsKK+aaiyA+IGJpblwgOwor5pqEID4ga2VuXCA7CivmmbkgPiBla2lcIDsKK+aZuCA+IHRlaVwgOwor5pm1ID4ga2VpXCA7CivmmawgPiBzYWlcIDsKK+aZqiA+IHRlblwgOwor5pmnID4ga291XCA7CivmmaYgPiBrYWlcIDsKK+aZoCA+IHNlaVwgOwor5pmfID4gc2VpXCA7CivmmZwgPiBrb25cIDsKK+aZmyA+IGtlblwgOwor5pmaID4gYmFuXCA7CivmmZggPiBrYW5cIDsKK+aZlyA+IGthblwgOwor5pmOID4ga291XCA7CivmmYYgPiBrYWlcIDsKK+aZhSA+IGtlblwgOwor5pmEID4ga291XCA7CivmmYMgPiBrb3VcIDsKK+aYvyA+IGtvdVwgOwor5pi7ID4ga291XCA7CivmmLEgPiBpa3VcIDsKK+aYsCA+IHNoaVwgOwor5pisID4ga29uXCA7CivmmKogPiBoZW5cIDsKK+aYpyA+IG1haVwgOwor5pimID4ga291XCA7CivmmKQgPiByZWlcIDsKK+aYoSA+IGtlblwgOwor5pieID4gaGVpXCA7CivmmJ0gPiBzYW5cIDsKK+aYnCA+IHlvdVwgOwor5piVID4ga2luXCA7CivmmJEgPiBraW5cIDsKK+aYjyA+IGtvblwgOwor5piNID4ga2VuXCA7CivmmIogPiBrb3VcIDsKK+aYiSA+IGhvdVwgOwor5piEID4gaGFuXCA7Civml7sgPiBiaW5cIDsKK+aXtSA+IHRhblwgOwor5peyID4gdGFpXCA7Civml7EgPiBrYW5cIDsKK+aXsCA+IGthblwgOwor5pebID4gaGFuXCA7Civml5kgPiBoYW5cIDsKK+aXmCA+IHNoaVwgOwor5peUID4ga2VuXCA7Civml4wgPiBzZWlcIDsKK+aXhiA+IGhhaVwgOwor5peEID4gYm91XCA7Civml4MgPiBzZW5cIDsKK+aWvyA+IHlvdVwgOwor5pa9ID4gc2hpXCA7CivmlrQgPiByaW5cIDsKK+aWsyA+IGtpblwgOwor5panID4gb25vXCA7CivmlqYgPiBnaW5cIDsKK+aWpCA+IGtpblwgOwor5paVID4gcmFuXCA7CivmlpIgPiBoYW5cIDsKK+aWjCA+IGhpblwgOwor5paKID4gc2VpXCA7CivmloYgPiBrb3VcIDsKK+aWhSA+IGtvdVwgOwor5paCID4gcmVuXCA7CivmloEgPiBla2lcIDsKK+aVuyA+IGtlaVwgOwor5pWyID4ga291XCA7Civmla8gPiBiaW5cIDsKK+aVrSA+IHlvdVwgOwor5pWpID4ga291XCA7CivmlaYgPiB0b25cIDsKK+aVnyA+IHRlblwgOwor5pWdID4gaGVpXCA7CivmlZYgPiBnb3VcIDsKK+aVlCA+IGd5b1wgOwor5pWDID4gYmluXCA7CivmlL0gPiBoYW5cIDsKK+aUvCA+IGthblwgOwor5pS7ID4ga291XCA7CivmlLggPiB5dXVcIDsKK+aUtyA+IGtvdVwgOwor5pSuID4gZG91XCA7CivmlKwgPiByYW5cIDsKK+aUqSA+IHRvdVwgOwor5pSmID4gcmVpXCA7CivmlKQgPiB0YW5cIDsKK+aUoyA+IHJlblwgOwor5pSiID4gc2FuXCA7CivmlJ8gPiBrdW5cIDsKK+aUnCA+IGtlaVwgOwor5pSbID4gc2FuXCA7CivmlJkgPiBzZW5cIDsKK+aUmCA+IGpvdVwgOwor5pSUID4gcmFuXCA7CivmlJMgPiBrZW5cIDsKK+aUjyA+IHJvdVwgOwor5pSIID4ga3VuXCA7CivmlIUgPiBzYW5cIDsKK+aUhCA+IGNob1wgOwor5pSBID4geW91XCA7CivmlIAgPiBoYW5cIDsKK+aTviA+IGpvdVwgOwor5pO7ID4gc291XCA7Civmk7ogPiBoYWlcIDsKK+aTtiA+IHNlblwgOwor5pOwID4gZG91XCA7Civmk68gPiBoaW5cIDsKK+aTrSA+IGt5b1wgOwor5pOqID4geW91XCA7Civmk6UgPiByYW5cIDsKK+aTpCA+IGtvdVwgOwor5pOjID4gdG91XCA7Civmk6AgPiBzZWlcIDsKK+aTmiA+IGt5b1wgOwor5pOVID4ga2VpXCA7Civmk5IgPiBraW5cIDsKK+aTkCA+IGthblwgOwor5pOOID4ga2VpXCA7Civmk4sgPiB0b3VcIDsKK+aThCA+IHJ5b1wgOwor5pOCID4gcmFpXCA7Civmk4EgPiB5b3VcIDsKK+aSvyA+IHJlblwgOwor5pK9ID4ga291XCA7CivmkrwgPiBrYW5cIDsKK+aSsyA+IGtpblwgOwor5pKwID4gc2FuXCA7CivmkqYgPiBzaGFcIDsKK+aSoyA+IHRhblwgOwor5pKhID4gc291XCA7Civmkp4gPiBzaHVcIDsKK+aSmyA+IHJpblwgOwor5pKaID4gbmVuXCA7CivmkpkgPiBzb25cIDsKK+aSmCA+IHRvdVwgOwor5pKVID4gc2VpXCA7CivmkpMgPiBkb3VcIDsKK+aSkiA+IHNhblwgOwor5pKPID4gc2FuXCA7CivmkoggPiByb3VcIDsKK+aRuyA+IHNhblwgOwor5pG2ID4gdGFuXCA7CivmkbQgPiBjaG9cIDsKK+aRsyA+IGtvdVwgOwor5pGvID4gc2hpXCA7CivmkacgPiBzYWlcIDsKK+aRoSA+IGthaVwgOwor5pGgID4gc291XCA7CivmkZ8gPiByb3VcIDsKK+aRnCA+IGthblwgOwor5pGbID4gY2hpXCA7CivmkZogPiB0b3VcIDsKK+aRkyA+IGhvdVwgOwor5pGSID4gaGVpXCA7CivmkYcgPiB5b3VcIDsKK+aQtCA+IGtlblwgOwor5pCvID4gdG91XCA7CivmkK0gPiB0b3VcIDsKK+aQrCA+IGhhblwgOwor5pCqID4gdG91XCA7CivmkKggPiB0b3VcIDsKK+aQpSA+IHRhaVwgOwor5pCkID4gYWt1XCA7CivmkJ4gPiBrb3VcIDsKK+aQmCA+IHNoaVwgOwor5pCXID4gdG91XCA7CivmkJQgPiBzb3VcIDsKK+aQkiA+IGhvdVwgOwor5pCGID4ga291XCA7Civmj7kgPiBoYWlcIDsKK+aPtyA+IHNvdVwgOwor5o+1ID4ga2VuXCA7Civmj60gPiBrZWlcIDsKK+aPqSA+IGthaVwgOwor5o+lID4gdGVpXCA7Civmj6MgPiBzaGlcIDsKK+aPliA+IHl1dVwgOwor5o+UID4gc291XCA7Civmj5MgPiBzaGlcIDsKK+aPkiA+IHNvdVwgOwor5o+OID4gc2VuXCA7Civmj4ggPiBrb3VcIDsKK+aPhSA+IGtlblwgOwor5o+BID4gdGVpXCA7Civmj4AgPiBrYW5cIDsKK+aOvSA+IGhvdVwgOwor5o6vID4ga291XCA7Civmjq4gPiBrZW5cIDsKK+aOrSA+IHRlblwgOwor5o6rID4gc291XCA7CivmjpkgPiBzb3VcIDsKK+aOliA+IGVraVwgOwor5o6UID4ga2FuXCA7CivmjpAgPiBrb3VcIDsKK+aOjyA+IHRvdVwgOwor5o6KID4gaG91XCA7CivmjokgPiB0b3VcIDsKK+aOhCA+IHJvblwgOwor5o6CID4gdGVuXCA7CivmjoAgPiBraW5cIDsKK+aNvyA+IHNlaVwgOwor5o22ID4gc3VpXCA7CivmjbUgPiB0ZW5cIDsKK+aNtCA+IGZ1blwgOwor5o2xID4gZ2FpXCA7Civmja0gPiBoYWlcIDsKK+aNqyA+IG1vblwgOwor5o2nID4gaG91XCA7CivmjaYgPiBraW5cIDsKK+aNpSA+IHdhblwgOwor5o2iID4ga2FuXCA7CivmjZsgPiByeW9cIDsKK+aNmCA+IHNvblwgOwor5o2OID4gc291XCA7CivmjY0gPiBrYW5cIDsKK+aNiiA+IGhvdVwgOwor5o2GID4ga29uXCA7CivmjYMgPiBrdW5cIDsKK+aMuiA+IHRlaVwgOwor5oy5ID4geXV1XCA7CivmjLUgPiByb3VcIDsKK+aMrSA+IGtvdVwgOwor5oyNID4ga291XCA7CivmjIogPiByb3VcIDsKK+aMhCA+IGtvdVwgOwor5oyCID4ga2VpXCA7Civmi7wgPiBob3VcIDsKK+aLtyA+IGdvdVwgOwor5ou0ID4gc2VuXCA7Civmi68gPiBqb3VcIDsKK+aLqiA+IHNlblwgOwor5ouaID4gaGVuXCA7Civmi5IgPiBreW9cIDsKK+aLkSA+IGthblwgOwor5ouQID4ga2FpXCA7Civmi44gPiByZWlcIDsKK+aLjCA+IGhhblwgOwor5ouLID4gaG91XCA7Civmi4ggPiBkZW5cIDsKK+aLhCA+IGNodVwgOwor5oq/ID4gYmluXCA7Civmir4gPiBreW9cIDsKK+aKuiA+IGJhaVwgOwor5oqsID4gdGFpXCA7CivmiqggPiBob3VcIDsKK+aKpiA+IGhlaVwgOwor5oqWID4gdG91XCA7CivmipQgPiBob3VcIDsKK+aKjyA+IGdhblwgOwor5oqDID4gYmVuXCA7Civmib0gPiB0b25cIDsKK+aJvCA+IGFrdVwgOwor5om6ID4gdGVpXCA7CivmibMgPiBoYW5cIDsKK+aJrSA+IGp1dVwgOwor5omjID4ga291XCA7CivmiZ4gPiBrYW5cIDsKK+aJmyA+IGtvdVwgOwor5omUID4gam91XCA7CivmiZIgPiBoYWlcIDsKK+aJjCA+IHNodVwgOwor5omDID4ga2VpXCA7CivmiYIgPiB0ZW5cIDsKK+aJgSA+IGhlblwgOwor5oi+ID4gcmVpXCA7CivmiLwgPiBib3VcIDsKK+aIuSA+IGFrdVwgOwor5oipID4gc2VuXCA7CivmiKcgPiBzb3VcIDsKK+aIoSA+IGthblwgOwor5oiUID4gc2FuXCA7CivmiI4gPiBqdXVcIDsKK+aIhyA+IHRvdVwgOwor5oiDID4gdG91XCA7CivmiIEgPiBkYW5cIDsKK+aHvSA+IGthblwgOwor5oe6ID4gemFuXCA7Civmh7YgPiByYW5cIDsKK+aHtCA+IHphblwgOwor5oetID4ga291XCA7Civmh6wgPiBrb3VcIDsKK+aHqSA+IHlvdVwgOwor5oejID4gbW9uXCA7Civmh6IgPiByYW5cIDsKK+aHniA+IGJvdVwgOwor5oedID4gZ2FpXCA7Civmh5wgPiBib3VcIDsKK+aHlCA+IHJpblwgOwor5oeNID4gcmluXCA7Civmh4wgPiBla2lcIDsKK+aHiyA+IGJvdVwgOwor5oeIID4ga2FpXCA7Civmh4cgPiBrb25cIDsKK+aHhiA+IHNvdVwgOwor5oeCID4gdG91XCA7Civmh4EgPiBrZW5cIDsKK+aHgCA+IHdhaVwgOwor5oa+ID4ga2FuXCA7CivmhrwgPiBrZWlcIDsKK+aGuSA+IGRvdVwgOwor5oa4ID4gc2VuXCA7CivmhrIgPiBrZW5cIDsKK+aGqyA+IGJpblwgOwor5oaqID4ga2FuXCA7CivmhqggPiBrYW5cIDsKK+aGpSA+IHJvdVwgOwor5oadID4gdGFpXCA7CivmhpogPiB0YW5cIDsKK+aGlyA+IGdpblwgOwor5oaTID4ga2VpXCA7CivmhpIgPiBrYWlcIDsKK+aGiiA+IGhhaVwgOwor5oaHID4ga2VpXCA7CivmhoQgPiBjaGlcIDsKK+aGgyA+IHRvdVwgOwor5oaBID4gc291XCA7CivmhbsgPiBrZW5cIDsKK+aFuCA+IHRlaVwgOwor5oW3ID4ga291XCA7CivmhbYgPiBrZWlcIDsKK+aFtSA+IHlvdVwgOwor5oWzID4ga2FuXCA7CivmhbIgPiBiYW5cIDsKK+aFsSA+IHRhblwgOwor5oWtID4gZ2luXCA7CivmhawgPiBraW5cIDsKK+aFpyA+IGtlaVwgOwor5oWgID4gZ291XCA7CivmhZ8gPiBkb3VcIDsKK+aFmiA+IHphblwgOwor5oWZID4gemFuXCA7CivmhYkgPiBraW5cIDsKK+aFhiA+IHRvdVwgOwor5oWFID4gc291XCA7CivmhYIgPiB5b3VcIDsKK+aFgSA+IGtvblwgOwor5oS/ID4gZ2VuXCA7CivmhLkgPiB5b3VcIDsKK+aEtyA+IGthaVwgOwor5oS0ID4gc291XCA7CivmhLAgPiBrYXVcIDsKK+aEoiA+IHNhaVwgOwor5oShID4gc291XCA7CivmhJ4gPiB6ZW5cIDsKK+aElyA+IGJvdVwgOwor5oSTID4gdG91XCA7CivmhJIgPiBrZWlcIDsKK+aEkSA+IHlvdVwgOwor5oSQID4gYmVuXCA7CivmhI0gPiBiaW5cIDsKK+aEjCA+IGthblwgOwor5oSGID4ga2VuXCA7CivmhIMgPiBrZW5cIDsKK+aDvSA+IGtvblwgOwor5oO8ID4gaGVuXCA7Civmg7ogPiBzZWlcIDsKK+aDuCA+IGtlaVwgOwor5oO2ID4ga291XCA7Civmg7QgPiB6dWlcIDsKK+aDpSA+IHlvdVwgOwor5oOjID4gc291XCA7Civmg54gPiBraW5cIDsKK+aDmyA+IGtvblwgOwor5oOYID4gYm91XCA7Civmg5QgPiB0YW5cIDsKK+aDkyA+IGtlblwgOwor5oOPID4gcmFuXCA7Civmg4sgPiB3YW5cIDsKK+aDiSA+IHNlblwgOwor5oOHID4gdG9uXCA7Civmg4IgPiBrYW5cIDsKK+aCviA+IGtvdVwgOwor5oK9ID4gc2VpXCA7CivmgrsgPiBrZWlcIDsKK+aCtyA+IHJlaVwgOwor5oKwID4gc291XCA7CivmgqkgPiBub3VcIDsKK+aCpCA+IHNvdVwgOwor5oKdID4ga2FpXCA7CivmgpsgPiBzZW5cIDsKK+aClyA+IGJhblwgOwor5oKTID4ga2VuXCA7CivmgpIgPiB5dXVcIDsKK+aCjiA+IGtvdVwgOwor5oKNID4ga2FuXCA7CivmgowgPiB0ZWlcIDsKK+aCiyA+IHJpblwgOwor5oKIID4ga2FpXCA7CivmgoMgPiBrb25cIDsKK+aBvyA+IHlvdVwgOwor5oG+ID4gYm91XCA7CivmgbUgPiBrZWlcIDsKK+aBrCA+IHRlblwgOwor5oGrID4gZG91XCA7CivmgaMgPiBzaGlcIDsKK+aBoiA+IGthaVwgOwor5oGhID4gcmluXCA7CivmgaAgPiBrYWlcIDsKK+aBnSA+IGthaVwgOwor5oGZID4geW91XCA7CivmgZYgPiBzaGlcIDsKK+aBkiA+IGtvdVwgOwor5oGJID4gc2hpXCA7CivmgYggPiBib3VcIDsKK+aBhiA+IGtvdVwgOwor5oGCID4ganVuXCA7CivmgYAgPiBzaGlcIDsKK+aAsSA+IHNvdVwgOwor5oCmID4gaG91XCA7CivmgJ8gPiB0ZWlcIDsKK+aAnCA+IHJlaVwgOwor5oCaID4gc2hvXCA7CivmgJQgPiBzZWlcIDsKK+aAkyA+IGRvdVwgOwor5oCQID4ga291XCA7CivmgI8gPiB5b3VcIDsKK+aAhyA+IGt5b1wgOwor5b+8ID4ga291XCA7Civlv7sgPiBraW5cIDsKK+W/uiA+IGtlblwgOwor5b+2ID4ga29uXCA7Civlv7MgPiB0b25cIDsKK+W/siA+IHRhaVwgOwor5b+wID4gc3VpXCA7Civlv64gPiBzaGlcIDsKK+W/rSA+IGhlblwgOwor5b+pID4gc291XCA7Civlv6ggPiBnYW5cIDsKK+W/niA+IGJpblwgOwor5b+dID4gdGVuXCA7Civlv5YgPiBzb25cIDsKK+W/kyA+IGthblwgOwor5b+QID4ga3VuXCA7Civlv4sgPiBrYWlcIDsKK+W/iSA+IHRvdVwgOwor5b+IID4gamluXCA7CivlvrAgPiBzZWlcIDsKK+W+ryA+IGtlaVwgOwor5b6tID4geW91XCA7CivlvqwgPiBob3VcIDsKK+W+qCA+IGtvdVwgOwor5b6nID4gaGVuXCA7CivlvqAgPiByYWlcIDsKK+W+nSA+IGNoaVwgOwor5b6ZID4gc2hpXCA7CivlvpggPiBoYWlcIDsKK+W+liA+IHNvdVwgOwor5b6RID4ga2VpXCA7CivlvokgPiB5b3VcIDsKK+W+iCA+IGtvblwgOwor5b6GID4gc2VpXCA7CivlvoEgPiBzZWlcIDsKK+W9viA+IHJlaVwgOwor5b29ID4gY2hpXCA7CivlvbcgPiBob3VcIDsKK+W9siA+IGNoaVwgOwor5b2vID4gaGV1XCA7Civlva0gPiBob3VcIDsKK+W9rCA+IGhpblwgOwor5b2nID4gaWt1XCA7CivlvaYgPiBnZW5cIDsKK+W9pSA+IGdlblwgOwor5b2kID4gdG91XCA7CivlvaMgPiBidW5cIDsKK+W9oSA+IHNhblwgOwor5b2YID4gdGVpXCA7CivlvZcgPiBzdWlcIDsKK+W9liA+IHRhblwgOwor5b2RID4ga2VpXCA7CivlvZAgPiBrZWlcIDsKK+W9jiA+IHdhblwgOwor5b2LID4ga2F1XCA7CivlvYcgPiB5b3VcIDsKK+W9hCA+IGtvdVwgOwor5b2BID4gc2VpXCA7CivlvYAgPiBrb3VcIDsKK+W8vyA+IGtlblwgOwor5by9ID4geW91XCA7CivlvLkgPiBkYW5cIDsKK+W8uCA+IGhvdVwgOwor5by0ID4gdG9uXCA7CivlvLAgPiBzb3VcIDsKK+W8ryA+IHdhblwgOwor5byuID4ga2VuXCA7CivlvKggPiBzZXVcIDsKK+W8pCA+IHRlaVwgOwor5byiID4gdG91XCA7CivlvJogPiB0YWlcIDsKK+W8kiA+IHNoaVwgOwor5byRID4gc2hpXCA7CivlvI4gPiBzYW5cIDsKK+W8iiA+IGhlaVwgOwor5byJID4gam91XCA7CivlvIggPiBla2lcIDsKK+W8hiA+IGt5b1wgOwor5byFID4gaHVuXCA7Civlu78gPiBqdXVcIDsKK+W7vSA+IGthaVwgOwor5bu8ID4gZGFpXCA7Civlu7cgPiB0ZWlcIDsKK+W7tSA+IGp1blwgOwor5buyID4gcmVpXCA7Civlu7EgPiB5b3VcIDsKK+W7ryA+IHNlblwgOwor5busID4gcnlvXCA7Civlu6ogPiByaW5cIDsKK+W7qSA+IHJpblwgOwor5buoID4ga2FpXCA7Civlu6UgPiBrYWlcIDsKK+W7niA+IGtpblwgOwor5budID4gc2hpXCA7Civlu5sgPiB0ZW5cIDsKK+W7lyA+IHRhaVwgOwor5buUID4gcm91XCA7Civlu5IgPiBnb3VcIDsKK+W7kSA+IGtpblwgOwor5buOID4ga2VpXCA7Civlu4wgPiBjaGlcIDsKK+W7hyA+IHJpdVwgOwor5buGID4ga2FpXCA7Civlu4UgPiBhaHVcIDsKK+W7gSA+IHNoaVwgOwor5buAID4gc291XCA7Civlur0gPiBkb3VcIDsKK+W6uyA+IHNob1wgOwor5bq2ID4gc2hvXCA7CivlurIgPiByYWlcIDsKK+W6sCA+IGhlaVwgOwor5bqsID4gYm91XCA7CivluqggPiBrb3VcIDsKK+W6pCA+IGNoaVwgOwor5bqjID4gdGV1XCA7CivlupsgPiBzaGlcIDsKK+W6jiA+IGthaVwgOwor5bqNID4gaGFpXCA7CivluokgPiB0b25cIDsKK+W6iCA+IGtpblwgOwor5bm/ID4gZ2VuXCA7CivlubogPiB5b3VcIDsKK+W5tyA+IGhlaVwgOwor5bm2ID4gaGVpXCA7CivlubUgPiBrZW5cIDsKK+W5sSA+IHJhblwgOwor5bmwID4ga2VuXCA7Civlua4gPiBjaHVcIDsKK+W5qyA+IGhvdVwgOwor5bmqID4gYm91XCA7CivluakgPiBodW5cIDsKK+W5qCA+IHNlblwgOwor5bmnID4gc2V1XCA7CivluaQgPiBoZWlcIDsKK+W5oyA+IGhlaVwgOwor5bmiID4gdG91XCA7CivluaEgPiBoYW5cIDsKK+W5nSA+IHNlblwgOwor5bmcID4ga2VpXCA7CivluZogPiBob3VcIDsKK+W5lCA+IGJhblwgOwor5bmQID4gdG91XCA7CivluY0gPiB0b3VcIDsKK+W5jCA+IGtvdVwgOwor5bmLID4gaGFuXCA7CivluYogPiBrb3VcIDsKK+W5iCA+IGhlaVwgOwor5bmHID4gaG91XCA7CivluYQgPiBha3VcIDsKK+W5gCA+IHRlaVwgOwor5bi1ID4gd2FuXCA7CivluLIgPiBoZWlcIDsKK+W4riA+IGhvdVwgOwor5bisID4ga3VuXCA7CivluKkgPiBzZXVcIDsKK+W4qCA+IHNlaVwgOwor5bimID4gdGFpXCA7CivluKMgPiBrZW5cIDsKK+W4oSA+IGhlaVwgOwor5bigID4gZ2VpXCA7CivluJ8gPiBla2lcIDsKK+W4mCA+IHJlblwgOwor5biWID4gam91XCA7CivluJIgPiB0YWlcIDsKK+W4jiA+IHRhblwgOwor5biLID4gc2hpXCA7CivluIcgPiBkZW5cIDsKK+W4hCA+IHRlaVwgOwor5biAID4gc291XCA7Civlt7ogPiBzb25cIDsKK+W3uSA+IGtpblwgOwor5be1ID4gc2hpXCA7Civlt6AgPiBrZWlcIDsKK+W3nyA+IGtvdVwgOwor5becID4ga2FpXCA7Civlt5sgPiBzZW5cIDsKK+W3mCA+IGdlblwgOwor5beWID4gZ2FuXCA7Civlt5QgPiB0ZW5cIDsKK+W3kyA+IHRlblwgOwor5beSID4gcmFuXCA7Civlt5EgPiBzYW5cIDsKK+W3jyA+IGtlblwgOwor5beOID4gZG91XCA7Civlt4wgPiBnYW5cIDsKK+W3iSA+IHNhblwgOwor5beGID4ga291XCA7Civlt4MgPiByb3VcIDsKK+W3giA+IHN1aVwgOwor5ba8ID4gc2hvXCA7CivltrogPiByZWlcIDsKK+W2uSA+IHRvdVwgOwor5ba4ID4ga291XCA7CivltrUgPiBzYWlcIDsKK+W2siA+IGtlaVwgOwor5bawID4ga2FpXCA7CivltqkgPiBkYXVcIDsKK+W2pyA+IGVraVwgOwor5bahID4ga2VpXCA7Civltp8gPiBzb25cIDsKK+W2nSA+IHRvdVwgOwor5baZID4gcmluXCA7CivltpUgPiBzZXVcIDsKK+W2lCA+IGtpblwgOwor5baMID4gdG91XCA7CivltosgPiB0b3VcIDsKK+W2iiA+IHN1aVwgOwor5baJID4gc3VpXCA7CivltoYgPiBzYXVcIDsKK+W2hCA+IHNhblwgOwor5baDID4gc2FuXCA7Civltb8gPiB0ZWlcIDsKK+W1vCA+IHNhblwgOwor5bW6ID4gcmV1XCA7CivltbYgPiB0YW9cIDsKK+W1sSA+IHlvdVwgOwor5bWwID4ga2VuXCA7Civlta0gPiBob3VcIDsKK+W1rCA+IGthaVwgOwor5bWqID4ga291XCA7CivltakgPiBzdXVcIDsKK+W1pyA+IHJpdVwgOwor5bWkID4ga2VpXCA7CivltaMgPiB0YXVcIDsKK+W1oiA+IHNvdVwgOwor5bWgID4gZ2VpXCA7CivltZcgPiBzZWlcIDsKK+W1lSA+IHNvdVwgOwor5bWTID4gZ2FuXCA7CivltZIgPiBnYW5cIDsKK+W1jiA+IGd1dVwgOwor5bWJID4gdGVpXCA7CivltYggPiBrYW5cIDsKK+W1hyA+IGtlaVwgOwor5bWGID4ga2VpXCA7CivltYUgPiBrYW5cIDsKK+W1gyA+IGdlblwgOwor5bWBID4ga2FuXCA7CivltL0gPiBzYWlcIDsKK+W0vCA+IHNoaVwgOwor5bS5ID4gdGVpXCA7CivltLggPiB0b25cIDsKK+W0tiA+IGhvdVwgOwor5bS1ID4gc2V1XCA7CivltLQgPiB3YWlcIDsKK+W0siA+IGtvdVwgOwor5bSlID4gaGVpXCA7CivltKQgPiBrb3VcIDsKK+W0oiA+IHNvdVwgOwor5bShID4ga2FuXCA7CivltKAgPiB0b3VcIDsKK+W0nyA+IGdpblwgOwor5bSdID4gc2F1XCA7CivltJkgPiByb25cIDsKK+W0mCA+IHJvblwgOwor5bSVID4gZ2FpXCA7CivltJQgPiBzYWlcIDsKK+W0kSA+IGtvblwgOwor5bSQID4ga29uXCA7CivltI8gPiBiaW5cIDsKK+W0jSA+IHJhaVwgOwor5bSHID4gc3V1XCA7CivltIYgPiBrb3VcIDsKK+W0hCA+IGtlblwgOwor5bSBID4ga2FuXCA7Civls7ogPiBrb3VcIDsKK+WzuCA+IHNlaVwgOwor5bO1ID4ga291XCA7Civls7QgPiBrZW5cIDsKK+WzsSA+IGRvdVwgOwor5bOvID4gaG91XCA7Civls64gPiBraW5cIDsKK+WznyA+IHlvdVwgOwor5bOdID4gdG91XCA7Civls5wgPiBrZWlcIDsKK+WzmCA+IGthblwgOwor5bOVID4gc2hpXCA7Civls5IgPiB0b3VcIDsKK+WzkCA+IGthaVwgOwor5bOOID4gZ29uXCA7Civls4cgPiBrb3VcIDsKK+WyviA+IHNlblwgOwor5bK6ID4gcmVpXCA7CivlsrcgPiBiaW5cIDsKK+WysiA+IGtvdVwgOwor5bKxID4gdGFpXCA7CivlsrAgPiB5b3VcIDsKK+WyrSA+IHJlaVwgOwor5bKnID4gdGV1XCA7CivlsqMgPiBrb3VcIDsKK+WyoCA+IGt5b1wgOwor5bKfID4geW91XCA7CivlspUgPiBrYWlcIDsKK+WykiA+IGtlblwgOwor5bKLID4gZ291XCA7CivlsocgPiBnb3VcIDsKK+WyhSA+IGhhblwgOwor5bG9ID4ga2FuXCA7CivlsbsgPiBqaW5cIDsKK+WxsyA+IHNlblwgOwor5bGvID4gdG9uXCA7CivlsacgPiB0ZWlcIDsKK+WxoyA+IHNoaVwgOwor5bGfID4gdGVpXCA7CivlsZwgPiB0ZWlcIDsKK+WxmyA+IGhlaVwgOwor5bGaID4gcm91XCA7CivlsZYgPiBzZWlcIDsKK+WxlCA+IGRlaVwgOwor5bGOID4gc2hpXCA7CivlsYcgPiB0ZW5cIDsKK+WwvCA+IGFtYVwgOwor5bC3ID4ga2FuXCA7CivlsLYgPiBrYW5cIDsKK+WwtSA+IHRhaVwgOwor5bCyID4ga2FuXCA7CivlsKwgPiBrYWlcIDsKK+WwqCA+IGJvdVwgOwor5bCfID4gc2VuXCA7CivlsIwgPiBzaHVcIDsKK+WwgiA+IHNlblwgOwor5a+9ID4gcmluXCA7Civlr7kgPiB0YWlcIDsKK+WvtiA+IGhvdVwgOwor5a+zID4gaG91XCA7Civlr7EgPiBnZWlcIDsKK+WvsCA+IGthblwgOwor5a+sID4ga2FuXCA7Civlr6ggPiBzYWlcIDsKK+WvnCA+IG5laVwgOwor5a+bID4ga2FuXCA7Civlr5ogPiBob3VcIDsKK+WvmCA+IHNoaVwgOwor5a+XID4gbmVpXCA7Civlr5UgPiBuZWlcIDsKK+WvkyA+IGd1dVwgOwor5a+PID4ga2FuXCA7Civlr44gPiBoZWlcIDsKK+WvjSA+IG5laVwgOwor5a+LID4ga2VuXCA7Civlr4ogPiB0ZWlcIDsKK+WvhyA+IGtvdVwgOwor5a+BID4gc2FuXCA7Civlr4AgPiBzYWlcIDsKK+WuvCA+IGtvdVwgOwor5a66ID4ga291XCA7CivlrrIgPiBob3VcIDsKK+WuryA+IGtvdVwgOwor5a6tID4ga3VuXCA7CivlrqwgPiBzZWlcIDsKK+WuqSA+IHNoaVwgOwor5a6mID4ga2FuXCA7CivlrqUgPiB5dXVcIDsKK+WuliA+IGtvdVwgOwor5a6VID4gdG91XCA7CivlrpQgPiBzaHVcIDsKK+WukSA+IHNlaVwgOwor5a6PID4ga291XCA7CivlrosgPiBzb3VcIDsKK+WugSA+IGNob1wgOwor5a6AID4gYmVuXCA7Civlrb8gPiBzYW5cIDsKK+WtuyA+IGRhaVwgOwor5a2zID4gc2hpXCA7CivlrbEgPiBzZW5cIDsKK+WtryA+IGthblwgOwor5a2uID4gc291XCA7CivlrakgPiBrYWlcIDsKK+WtqCA+IHNlblwgOwor5a2fID4gbW91XCA7CivlrZ0gPiBrb3VcIDsKK+WtnCA+IHNoaVwgOwor5a2WID4gc2hpXCA7CivlrZUgPiB5b3VcIDsKK+WtjSA+IGdlblwgOwor5a2MID4gcmVuXCA7CivlrYggPiBzdWlcIDsKK+WthSA+IHNlblwgOwor5a2DID4gam91XCA7CivlrYEgPiByZWlcIDsKK+WtgCA+IHNvdVwgOwor5ay+ID4gcmFuXCA7CivlrLIgPiBqb3VcIDsKK+WsryA+IHRhaVwgOwor5aytID4gZGFpXCA7CivlrKwgPiBzaHVcIDsKK+WsqCA+IHNoaVwgOwor5ayjID4gdGF1XCA7CivlrKAgPiBzYW5cIDsKK+WsniA+IHRvdVwgOwor5aydID4gam91XCA7CivlrJsgPiBrZW5cIDsKK+WsmiA+IHJlblwgOwor5ayXID4gc2VuXCA7CivlrJYgPiBoZWlcIDsKK+WskyA+IGtldVwgOwor5ayQID4gc2VuXCA7CivlrI8gPiBoYW5cIDsKK+WsjiA+IGhhblwgOwor5ayLID4gc2VuXCA7CivlrIggPiBkZXVcIDsKK+WsgyA+IHNodVwgOwor5ayBID4gdG91XCA7Civlq70gPiByZXVcIDsKK+WruyA+IGthblwgOwor5au6ID4ga2FuXCA7Civlq7kgPiBiYXVcIDsKK+WruCA+IHNlblwgOwor5au2ID4gc2V1XCA7Civlq6wgPiBzaGFcIDsKK+WrqiA+IHJhdVwgOwor5aupID4gZG9uXCA7Civlq6ggPiBrYW5cIDsKK+WrpiA+IGtvdVwgOwor5aulID4gc2VuXCA7Civlq50gPiBrYXVcIDsKK+WrmiA+IGJhblwgOwor5auZID4gc2ViXCA7Civlq5ggPiBydWlcIDsKK+WrkCA+IGpvdVwgOwor5auPID4gcm91XCA7Civlq40gPiB0YXVcIDsKK+WriyA+IGpvdVwgOwor5auIID4gc2V1XCA7Civlq4cgPiBiZWlcIDsKK+WrhiA+IHlvdVwgOwor5auEID4gZ2VuXCA7Civlqr4gPiBrb3VcIDsKK+WquyA+IGhhblwgOwor5aq5ID4gcml1XCA7CivlqrggPiBzaGlcIDsKK+WqtiA+IGpvdVwgOwor5aq1ID4geW91XCA7CivlqrIgPiBoZWlcIDsKK+WqriA+IHRvdVwgOwor5aqtID4gc2h1XCA7CivlqqcgPiBrYWlcIDsKK+WqpSA+IGhlblwgOwor5aqkID4gc2hpXCA7CivlqqIgPiBib3VcIDsKK+WqniA+IHNoaVwgOwor5aqcID4gdGVpXCA7CivlqpcgPiBrZW5cIDsKK+WqlCA+IGJlblwgOwor5aqTID4ga291XCA7Civlqo8gPiB0YW5cIDsKK+WqjCA+IGJvdVwgOwor5aqKID4gc2VuXCA7Civlqb4gPiB0b3VcIDsKK+WpuyA+IGRhblwgOwor5am4ID4gdG91XCA7CivlqbcgPiB0ZWlcIDsKK+WpsCA+IHRlblwgOwor5amqID4gcmFuXCA7CivlqakgPiBnZW5cIDsKK+WppyA+IHNlaVwgOwor5amlID4gZG91XCA7CivlqaAgPiB3YW5cIDsKK+WpniA+IGtlaVwgOwor5amdID4gdGVuXCA7CivlqZwgPiBrYW5cIDsKK+WpmyA+IGtlaVwgOwor5amYID4ga2VuXCA7CivlqZcgPiBnZWlcIDsKK+WpliA+IHRlblwgOwor5amSID4gdGFuXCA7CivlqZEgPiB6dWlcIDsKK+WphyA+IHNhaVwgOwor5amEID4gaG91XCA7CivlqYMgPiBzb3VcIDsKK+WpgiA+IGJlblwgOwor5amBID4gcm91XCA7CivlqL4gPiBnYWlcIDsKK+WouSA+IGtlblwgOwor5ai2ID4gc2h1XCA7CivlqLUgPiBzaHVcIDsKK+WoriA+IGRlblwgOwor5aipID4gYmVuXCA7CivlqKggPiBiYW5cIDsKK+WopyA+IHRhaVwgOwor5aikID4gc291XCA7CivlqKMgPiB0ZWlcIDsKK+WonyA+IGtlblwgOwor5aieID4gZGFpXCA7CivlqJogPiBuYW5cIDsKK+WomSA+IGdvdVwgOwor5aiXID4gdGVpXCA7CivlqI8gPiBib3VcIDsKK+WojSA+IHNlaVwgOwor5aiKID4ga2VuXCA7CivlqIkgPiBoZWlcIDsKK+WnviA+IHNlblwgOwor5ae8ID4gc2hpXCA7Civlp7ggPiBrZW5cIDsKK+WntyA+IHl1dVwgOwor5ae1ID4gaGFpXCA7Civlp7MgPiBiZWlcIDsKK+WnryA+IGtvdVwgOwor5aeuID4ga291XCA7Civlp60gPiBrZW5cIDsKK+WnqiA+IG1laVwgOwor5aepID4gZGVuXCA7Civlp6cgPiBrYW5cIDsKK+WnpiA+IGthblwgOwor5aekID4ga291XCA7Civlp6MgPiBrb3VcIDsKK+WnoiA+IGtlblwgOwor5aefID4ga2FpXCA7Civlp5sgPiB0b3VcIDsKK+WnmiA+IHlvdVwgOwor5aeZID4gbmluXCA7Civlp5ggPiBoaW5cIDsKK+WnlyA+IHNhblwgOwor5aeWID4ga3lvXCA7Civlp5IgPiBzaGlcIDsKK+WnkCA+IGFuZVwgOwor5aePID4gYmFuXCA7Civlp40gPiBzYW5cIDsKK+WnjCA+IHplblwgOwor5aeKID4gc2hpXCA7Civlp4ggPiByZWlcIDsKK+WnhSA+IGhhblwgOwor5aeEID4gYmluXCA7Civlp4MgPiBzZWlcIDsKK+WmtiA+IGtlblwgOwor5aa1ID4gdG91XCA7CivlprMgPiBkYWlcIDsKK+WmqCA+IGJvdVwgOwor5aanID4gZ2VuXCA7CivlpqYgPiBob3VcIDsKK+WmoiA+IGh1blwgOwor5aahID4ga2luXCA7CivlpqAgPiBkb3VcIDsKK+WmniA+IGp1dVwgOwor5aadID4gc291XCA7CivlppsgPiBzaGlcIDsKK+WmmiA+IGh1dVwgOwor5aaXID4gc2VuXCA7Civlpo8gPiBidW5cIDsKK+WmjiA+IGthaVwgOwor5aaNID4ga2VuXCA7CivlpowgPiBzZWlcIDsKK+WmhSA+IGtvdVwgOwor5aW/ID4gZ2FuXCA7Civlpb4gPiBzZW5cIDsKK+WluyA+IGRhblwgOwor5aW5ID4gY2hpXCA7CivlpbggPiBrYW5cIDsKK+WltyA+IHNlblwgOwor5aW2ID4gZGFpXCA7CivlpbUgPiB0ZWlcIDsKK+WlsiA+IHNoYVwgOwor5aWxID4gcmVuXCA7CivlpakgPiByZW5cIDsKK+WloyA+IHdhblwgOwor5aWhID4gZ2F1XCA7CivlpaAgPiB0ZW5cIDsKK+WlnyA+IGtvdVwgOwor5aWbID4ga291XCA7CivlpZogPiBrZWlcIDsKK+WlmSA+IGhvblwgOwor5aWYID4gam91XCA7CivlpZUgPiBla2lcIDsKK+WllCA+IGhvblwgOwor5aWSID4ga2FpXCA7CivlpZAgPiBrYW5cIDsKK+WljiA+IGtlaVwgOwor5aWMID4gdGVuXCA7CivlpYYgPiBrZW5cIDsKK+WlhSA+IGhvdVwgOwor5aWDID4gdGVpXCA7CivlpYAgPiBib3VcIDsKK+WksyA+IHRhaVwgOwor5aSyID4gdG91XCA7CivlpLAgPiBrb3VcIDsKK+WkryA+IGtvdVwgOwor5aStID4geW91XCA7CivlpKMgPiBib3VcIDsKK+WkoCA+IGtvdVwgOwor5aSdID4gc2VpXCA7CivlpJggPiBib3VcIDsKK+WkkiA+IGRvdVwgOwor5aSQID4ga2VpXCA7CivlpIogPiBzdWlcIDsKK+WkhiA+IGhvdVwgOwor5aSFID4ga291XCA7CivlpIIgPiBjaGlcIDsKK+WjviA+IGJvdVwgOwor5aO8ID4ga29uXCA7Civlo7ggPiBrb25cIDsKK+WjtCA+IHNodVwgOwor5aOuID4gc291XCA7Civlo6ggPiByYWlcIDsKK+WjpyA+IGdhblwgOwor5aOlID4gdGVuXCA7Civlo6QgPiBqb3VcIDsKK+WjoyA+IHJpblwgOwor5aOgID4gcm91XCA7Civlo58gPiBva2FcIDsKK+WjnCA+IHRhblwgOwor5aOZID4ga291XCA7Civlo5ggPiBydWlcIDsKK+WjliA+IHplblwgOwor5aOVID4gZ291XCA7Civlo5QgPiB0YXVcIDsKK+WjkCA+IHNoaVwgOwor5aOPID4ga2FuXCA7Civlo44gPiBrZW5cIDsKK+WjjSA+IHphblwgOwor5aOMID4gam91XCA7Civlo4kgPiBreW9cIDsKK+WjhSA+IHlvdVwgOwor5aOCID4gdGVuXCA7Civlor8gPiBla2lcIDsKK+WiviA+IGtvblwgOwor5aK9ID4ga2F1XCA7CivlorggPiBzaG9cIDsKK+WisyA+IGZ1blwgOwor5aKxID4gdG91XCA7Civloq0gPiBzZWlcIDsKK+WirCA+IGNoaVwgOwor5aKpID4gdG9uXCA7CivloqYgPiBoYW5cIDsKK+WipSA+IHRvdVwgOwor5aKhID4gc2VuXCA7CivloqAgPiBzZW5cIDsKK+WinyA+IGt5b1wgOwor5aKeID4gem91XCA7Civlop0gPiBrb3VcIDsKK+WiliA+IHRvdVwgOwor5aKUID4gc2FpXCA7CivlopAgPiBraW5cIDsKK+WiiiA+IHRlblwgOwor5aKJID4geW91XCA7CivlooggPiBrYW5cIDsKK+WihSA+IHNob1wgOwor5aKBID4gYmFuXCA7CivlooAgPiBjaGlcIDsKK+WhvyA+IHJvdVwgOwor5aG9ID4gc2F1XCA7CivlobwgPiBzZW5cIDsKK+WhuiA+IGJhaVwgOwor5aG5ID4gemFuXCA7CivlobQgPiBob3VcIDsKK+WhsiA+IGpvdVwgOwor5aGwID4gYW1hXCA7CivloasgPiB0ZW5cIDsKK+WhpCA+IGtlblwgOwor5aGjID4gdGVpXCA7CivloaEgPiB0ZW5cIDsKK+WhnyA+IHNvdVwgOwor5aGdID4gaGF1XCA7CivloZwgPiBob3VcIDsKK+WhmCA+IHRvdVwgOwor5aGSID4gc2hpXCA7CivloY8gPiBrYWlcIDsKK+WhjiA+IHlvdVwgOwor5aGMID4gdG91XCA7CivloYEgPiBydWlcIDsKK+WgvyA+IGthblwgOwor5aC9ID4ga291XCA7CivloLwgPiBrb3VcIDsKK+WguiA+IGthaVwgOwor5aCtID4ga2F1XCA7CivloKkgPiBrb3VcIDsKK+WgpyA+IHplblwgOwor5aCmID4ga2FpXCA7CivloKUgPiBib3VcIDsKK+WgoSA+IGhvdVwgOwor5aCgID4ga291XCA7CivloJ8gPiB0ZW5cIDsKK+WgniA+IHRldVwgOwor5aCcID4gcmVuXCA7CivloIsgPiBob3VcIDsKK+WgiSA+IGlrdVwgOwor5aCIID4ga291XCA7CivloIcgPiBraW5cIDsKK+WghCA+IGdlblwgOwor5aCDID4ga29uXCA7Civln78gPiBkZWlcIDsKK+WfviA+IHNodVwgOwor5Z+9ID4gc291XCA7Civln7kgPiBiYWlcIDsKK+WfuCA+IGVraVwgOwor5Z+2ID4gZ2VpXCA7Civln7MgPiBrYW5cIDsKK+WfsiA+IGhvdVwgOwor5Z+wID4gc2FpXCA7Civln64gPiB0YW5cIDsKK+WfrSA+IHRhaVwgOwor5Z+sID4gdG91XCA7Civln6kgPiBzYXVcIDsKK+WfpiA+IHdhblwgOwor5Z+lID4gc2VpXCA7Civln6MgPiBzYWlcIDsKK+WfoiA+IGtlblwgOwor5Z+fID4gaWtpXCA7Civln54gPiB0ZWlcIDsKK+WfnSA+IHRlblwgOwor5Z+cID4gc2hvXCA7Civln5UgPiB0ZWlcIDsKK+WfjyA+IHNlblwgOwor5Z+MID4gcm91XCA7Civln4cgPiB5b3VcIDsKK+WfhCA+IGhvdVwgOwor5Z+CID4ga2F1XCA7Civln4AgPiBzdWlcIDsKK+WevyA+IHNob1wgOwor5Z6+ID4ga2FuXCA7Civlnr0gPiBnaW5cIDsKK+WevCA+IGVraVwgOwor5Z67ID4gaGFpXCA7CivlnrkgPiBob3VcIDsKK+WeuCA+IGthblwgOwor5Z62ID4gc2VpXCA7CivlnrAgPiB0YW9cIDsKK+WeqSA+IHNlaVwgOwor5Z6oID4gc2h1XCA7CivlnqcgPiBrZWlcIDsKK+WepSA+IGtldVwgOwor5Z6gID4gZ2luXCA7Civlnp8gPiB5b3VcIDsKK+WemiA+IGdldVwgOwor5Z6ZID4ga3V1XCA7CivlnpcgPiB0ZXVcIDsKK+WelSA+IGtvdVwgOwor5Z6TID4gZ2FpXCA7CivlnpAgPiBzaGlcIDsKK+WejCA+IHRvdVwgOwor5Z6JID4gaG91XCA7CivlnoggPiB0YWlcIDsKK+WegSA+IGNoaVwgOwor5Z2+ID4gY2hvXCA7Civlnb0gPiByZWlcIDsKK+WduyA+IGNoaVwgOwor5Z2wID4ga2VpXCA7Civlna4gPiBkYWlcIDsKK+WdrSA+IGRlaVwgOwor5Z2rID4gdGVuXCA7CivlnakgPiBrYW5cIDsKK+WdpSA+IHNob1wgOwor5Z2kID4ga29uXCA7CivlnaIgPiBoYW5cIDsKK+WdmiA+IGtlblwgOwor5Z2ZID4ga2VpXCA7CivlnZcgPiBrYWlcIDsKK+WdkSA+IGtvdVwgOwor5Z2PID4gaGFpXCA7CivlnY4gPiBrYW5cIDsKK+WdjSA+IHRhblwgOwor5Z2MID4gaG9uXCA7CivlnYsgPiBodW5cIDsKK+WdiSA+IHRvblwgOwor5Z2GID4gYmFpXCA7CivlnYUgPiBraW5cIDsKK+WdgSA+IHNoaVwgOwor5Z2AID4gc2hpXCA7CivlnK0gPiBrZWlcIDsKK+WcpiA+IGlyaVwgOwor5ZyiID4gdGVpXCA7CivlnJ4gPiByYW5cIDsKK+WcnSA+IHJhblwgOwor5ZycID4ga2FuXCA7CivlnJsgPiBla2lcIDsKK+WcmiA+IGthaVwgOwor5ZyMID4gc2VuXCA7CivlnIogPiBzZWlcIDsKK+WciSA+IGd5b1wgOwor5ZyIID4ga2VuXCA7CivlnIcgPiByaW5cIDsKK+WchSA+IGthblwgOwor5ZyEID4gZ3lvXCA7CivlnIIgPiBrb25cIDsKK+WcgSA+IGdpblwgOwor5Zu/ID4geXV1XCA7Civlm7kgPiByZWlcIDsKK+WbtyA+IGtpblwgOwor5ZuxID4gc291XCA7Civlm60gPiBnYW5cIDsKK+WbrCA+IGthaVwgOwor5ZuqID4gc291XCA7Civlm6ggPiBoZW5cIDsKK+WbpyA+IGtlaVwgOwor5ZulID4ga291XCA7Civlm6QgPiB0b25cIDsKK+WboSA+IGp1dVwgOwor5ZudID4ga2VuXCA7Civlm5wgPiBqaW5cIDsKK+WbmCA+IGthaVwgOwor5ZuUID4gZG91XCA7Civlm48gPiBrYW5cIDsKK+WbiiA+IG5vdVwgOwor5ZuIID4gZ2VpXCA7Civlm4YgPiB0YWlcIDsKK+WbhSA+IHRlblwgOwor5ZuDID4gc291XCA7Civlm4IgPiBnb3VcIDsKK+WbgCA+IHRlblwgOwor5Zq+ID4ga2FuXCA7CivlmrsgPiBnb3VcIDsKK+WatyA+IGphdVwgOwor5Zq1ID4gc2FuXCA7Civlmq4gPiBrb3VcIDsKK+WarCA+IGhpblwgOwor5ZqqID4gdGFuXCA7CivlmqggPiByb3VcIDsKK+WaoiA+IG5vdVwgOwor5ZqaID4gZ2luXCA7CivlmpkgPiBnb3VcIDsKK+WalCA+IHRlaVwgOwor5ZqOID4ga2F1XCA7CivlmowgPiBzZWlcIDsKK+WaiCA+IHlvdVwgOwor5ZqGID4ga291XCA7CivlmoMgPiB0b3VcIDsKK+WagiA+IHJhblwgOwor5ZqAID4gZGVpXCA7Civlmb8gPiBzdWlcIDsKK+WZuSA+IHRvdVwgOwor5Zm4ID4gdG9uXCA7CivlmbcgPiBraW5cIDsKK+WZtSA+IGRvdVwgOwor5Zm0ID4gZnVuXCA7CivlmbAgPiB5b3VcIDsKK+WZrCA+IHplaVwgOwor5ZmlID4gZG91XCA7CivlmaQgPiBraW5cIDsKK+WZoyA+IGNodVwgOwor5ZmiID4gaWt1XCA7CivlmaEgPiBzZW5cIDsKK+WZnyA+IHlvdVwgOwor5ZmeID4gZ2VuXCA7CivlmZkgPiBraW5cIDsKK+WZlCA+IHRvdVwgOwor5ZmTID4ga3lvXCA7CivlmY0gPiBzZXVcIDsKK+WZiyA+IHRvblwgOwor5ZmJID4gdGFuXCA7CivlmYcgPiB0b3VcIDsKK+WZhiA+IHNvdVwgOwor5ZmDID4gaGFuXCA7CivlmYAgPiBzb25cIDsKK+WYviA+IHRhblwgOwor5Zi9ID4gdGFuXCA7CivlmLkgPiByZXVcIDsKK+WYtyA+IGtvdVwgOwor5Zi2ID4gc2VpXCA7CivlmLUgPiBrZXVcIDsKK+WYriA+IHRvdVwgOwor5ZitID4gaG91XCA7CivlmKwgPiBzYWlcIDsKK+WYqyA+IGRhbVwgOwor5ZiqID4gYmFpXCA7CivlmJUgPiBrZW5cIDsKK+WYkiA+IGtlaVwgOwor5ZiQID4gaGF1XCA7CivlmI0gPiByb3VcIDsKK+WYjCA+IGhldVwgOwor5ZiKID4gZ2FpXCA7CivlmIggPiBzYXVcIDsKK+WYhSA+IGthaVwgOwor5ZiEID4ga2V1XCA7Civll78gPiB0YW5cIDsKK+WXviA+IHNvdVwgOwor5Ze7ID4gc2hhXCA7Civll7ogPiBzdWlcIDsKK+WXuSA+IHJlblwgOwor5Ze4ID4gZ291XCA7Civll7cgPiBnb3VcIDsKK+WXqCA+IGthaVwgOwor5ZelID4ga291XCA7Civll6QgPiBzaGlcIDsKK+WXoSA+IHJvdVwgOwor5ZeeID4gc2hpXCA7Civll5sgPiBrZW5cIDsKK+WXmSA+IGhvdVwgOwor5ZeYID4ga2VpXCA7Civll5MgPiBzb3VcIDsKK+WXkiA+IHRvdVwgOwor5ZeMID4gZWtpXCA7Civll4ogPiBrb3VcIDsKK+WXiCA+IHlvdVwgOwor5ZeDID4ga291XCA7Civll4EgPiB0ZWlcIDsKK+WWvyA+IHNvdVwgOwor5ZatID4gZ2VuXCA7CivllqYgPiBqb3VcIDsKK+WWpCA+IGtvdVwgOwor5ZabID4ga2FuXCA7CivllpkgPiBrYWlcIDsKK+WWlyA+IGdpblwgOwor5ZaVID4gYmVuXCA7CivllpQgPiBha3VcIDsKK+WWkiA+IHNhblwgOwor5ZaPID4gc2hhXCA7Civllo0gPiBzYWlcIDsKK+WWiiA+IGthblwgOwor5ZaIID4ga2FpXCA7CivlloMgPiBuYW5cIDsKK+WVvyA+IHRhblwgOwor5ZW9ID4gZ2FuXCA7CivllbsgPiBzaGlcIDsKK+WVtCA+IHRhblwgOwor5ZWuID4gZ291XCA7CivllaUgPiBzaGFcIDsKK+WVoSA+IGhhaVwgOwor5ZWfID4ga2VpXCA7CivllZsgPiBzYWlcIDsKK+WVmSA+IHNoaVwgOwor5ZWXID4gdGFuXCA7CivllZYgPiB0YW5cIDsKK+WVlSA+IHRvdVwgOwor5ZWUID4ga2VpXCA7CivllZMgPiBrZWlcIDsKK+WVkSA+IHNvdVwgOwor5ZWQID4gc2FpXCA7CivllY0gPiB0b25cIDsKK+WVjCA+IGtvdVwgOwor5ZWJID4gcmFuXCA7CivllYggPiBrb3VcIDsKK+WVgSA+IHRvdVwgOwor5ZWAID4gZ2FpXCA7CivllLsgPiByYWlcIDsKK+WUtiA+IHNoYVwgOwor5ZSzID4gcmVpXCA7CivllKsgPiBnaW5cIDsKK+WUqiA+IGhvdVwgOwor5ZSkID4ga2FuXCA7CivllJ0gPiBrb3VcIDsKK+WUmCA+IGtlaVwgOwor5ZSXID4gdG91XCA7CivllJUgPiBzb3VcIDsKK+WUkSA+IHplaVwgOwor5ZSNID4ga2FuXCA7CivllIwgPiBzZW5cIDsKK+WUiSA+IGthaVwgOwor5ZSFID4ga2FuXCA7CivllIQgPiB1dGFcIDsKK+WUgSA+IGdlblwgOwor5ZO9ID4ga291XCA7Civlk7wgPiBrb3VcIDsKK+WTuyA+IGthblwgOwor5ZO4ID4gc2FpXCA7Civlk7AgPiByb3VcIDsKK+WTryA+IGtlblwgOwor5ZOuID4ga291XCA7Civlk6QgPiBib3VcIDsKK+WToiA+IHJvdVwgOwor5ZOgID4ga291XCA7Civlk48gPiBrb25cIDsKK+WTjiA+IGdhaVwgOwor5ZOKID4gaWt1XCA7Civlk4ggPiBnb3VcIDsKK+WThiA+IHNoaVwgOwor5ZOFID4ga291XCA7Civlk4QgPiBrb3VcIDsKK+WTgyA+IHRvdVwgOwor5ZK+ID4gcm91XCA7CivlkrogPiBrZW5cIDsKK+WSuCA+IGthblwgOwor5ZK3ID4gdGF1XCA7CivlkrUgPiBrdXVcIDsKK+WStCA+IGthaVwgOwor5ZKuID4gdG91XCA7CivlkqsgPiBzaGlcIDsKK+WSqCA+IHNoaVwgOwor5ZKjID4ga291XCA7CivlkpQgPiByb3VcIDsKK+WSkiA+IHNodVwgOwor5ZKNID4ga2FpXCA7CivlkoYgPiBob3VcIDsKK+WShSA+IHRvdVwgOwor5ZKCID4gc291XCA7CivlkoEgPiBrYW5cIDsKK+WRtyA+IGtvdVwgOwor5ZGyID4gc2hpXCA7CivlkbAgPiBzaGlcIDsKK+WRryA+IGhlaVwgOwor5ZGpID4gc2hpXCA7CivlkacgPiB0ZWlcIDsKK+WRpSA+IHplblwgOwor5ZGkID4gcmVpXCA7CivlkaMgPiBib3VcIDsKK+WRoSA+IGJ1blwgOwor5ZGgID4gaG9uXCA7CivlkZ4gPiBzaGlcIDsKK+WRiCA+IHRlaVwgOwor5ZGHID4ga2VpXCA7CivlkYUgPiBiYWlcIDsKK+WRgyA+IGFrdVwgOwor5ZGBID4ga2luXCA7CivlkLwgPiBrb3VcIDsKK+WQuiA+IHRvdVwgOwor5ZCxID4gc2hpXCA7CivlkLAgPiBrb3VcIDsKK+WQryA+IGtlaVwgOwor5ZCuID4gc2VuXCA7CivlkK0gPiBrb3VcIDsKK+WQrCA+IGtpblwgOwor5ZCqID4gZ3V1XCA7CivlkKkgPiBmdW5cIDsKK+WQqCA+IHRvblwgOwor5ZClID4gaG91XCA7CivlkKQgPiBrYWlcIDsKK+WQoCA+IGhhaVwgOwor5ZCfID4gZ2luXCA7CivlkJ4gPiBkb25cIDsKK+WQmSA+IGt1dVwgOwor5ZCYID4gZ291XCA7CivlkJUgPiByeW9cIDsKK+WQhiA+IHlvdVwgOwor5ZCFID4gdGVuXCA7CivlkIIgPiBib3VcIDsKK+WPtyA+IGdvdVwgOwor5Y+uID4gdGVpXCA7Civlj6ggPiB0b3VcIDsKK+WPpiA+IHJlaVwgOwor5Y+fID4gc291XCA7Civlj50gPiBrb3VcIDsKK+WPmyA+IGhhblwgOwor5Y+YID4gaGVuXCA7Civlj5MgPiBzaGlcIDsKK+WPjyA+IGthaVwgOwor5Y+HID4gdGFpXCA7Civlj4UgPiBzYW5cIDsKK+WPhCA+IHNhblwgOwor5Y+BID4gc2FuXCA7Civlj4AgPiBzZW5cIDsKK+WOvSA+IHJ1aVwgOwor5Y66ID4ga3lvXCA7CivljrkgPiBqaXVcIDsKK+WOuCA+IHJpblwgOwor5Y63ID4ga291XCA7CivljrYgPiBzaGlcIDsKK+WOtSA+IGdlblwgOwor5Y6yID4gcmVpXCA7Civljq4gPiBzaGlcIDsKK+WOqyA+IGdvdVwgOwor5Y6qID4ga2luXCA7CivljqcgPiB0ZW5cIDsKK+WOoSA+IGdlblwgOwor5Y6cID4gc2hpXCA7CivljpkgPiBzaGFcIDsKK+WOlyA+IHRlaVwgOwor5Y6WID4gYm91XCA7CivljpMgPiBnYWlcIDsKK+WOjiA+IHNoaVwgOwor5Y6JID4gcmVpXCA7CivljoggPiBrYW5cIDsKK+WOgyA+IHNlblwgOwor5Y6CID4ga2FuXCA7CivljbogPiBraW5cIDsKK+WNryA+IGJvdVwgOwor5Y2uID4gc2hpXCA7CivljawgPiBnYXVcIDsKK+WNpSA+IHNlaVwgOwor5Y2kID4gc2VpXCA7CivljaMgPiB5dXVcIDsKK+WNniA+IGhlblwgOwor5Y2dID4ga2FuXCA7CivljZUgPiB0YW5cIDsKK+WNkCA+IGJhblwgOwor5Y2LID4gc2VpXCA7CivljYUgPiBzb3VcIDsKK+WNhCA+IGp1dVwgOwor5Yy+ID4gaGVuXCA7CivljLggPiBrZWlcIDsKK+WMtyA+IGt5b1wgOwor5Yy0ID4gc2FuXCA7CivljLMgPiByZW5cIDsKK+WMsiA+IHJlblwgOwor5YywID4gdGFuXCA7CivljK8gPiB3YWlcIDsKK+WMqCA+IHpvdVwgOwor5YylID4gaGVuXCA7CivljJ8gPiBrb3VcIDsKK+WMnSA+IHNvdVwgOwor5YyYID4gZG91XCA7CivljJIgPiB0b3VcIDsKK+WMjyA+IGhvdVwgOwor5YyMID4ga291XCA7CivljIsgPiB0b3VcIDsKK+WMhCA+IGthaVwgOwor5Yu9ID4gYnVuXCA7Civli7kgPiBob3VcIDsKK+WLtyA+IGpvdVwgOwor5Yu1ID4gcmVpXCA7Civli7QgPiByeW9cIDsKK+WLsyA+IGt1blwgOwor5YuyID4ga3VuXCA7Civli7EgPiBiYWlcIDsKK+WLryA+IHRhblwgOwor5YusID4ga2VuXCA7Civli6sgPiBoYW5cIDsKK+WLqCA+IHlvdVwgOwor5YumID4gc291XCA7Civli6EgPiBoZXVcIDsKK+WLmyA+IGt1blwgOwor5YuXID4gYm91XCA7Civli5QgPiBiZW5cIDsKK+WLkyA+IGthaVwgOwor5YuRID4gcmFpXCA7Civli5AgPiBiYXVcIDsKK+WLjyA+IGhvdVwgOwor5YuNID4ga2VpXCA7Civli4wgPiBrZW5cIDsKK+WLiCA+IHlvdVwgOwor5YuGID4gcm91XCA7Civli4QgPiBiaW5cIDsKK+WLgiA+IGtvdVwgOwor5YuBID4ga2VpXCA7Civlir8gPiBzZWlcIDsKK+WKviA+IGdhaVwgOwor5Yq6ID4gYm91XCA7CivlircgPiB5b3VcIDsKK+WKtiA+IGtvdVwgOwor5Yq1ID4ga2VuXCA7CivlirMgPiByb3VcIDsKK+WKsiA+IGtlaVwgOwor5YqvID4gc2hvXCA7CivliqcgPiBzaGlcIDsKK+WKpSA+IGtvdVwgOwor5YqkID4ga2luXCA7Civlip4gPiBoZW5cIDsKK+WKnSA+IGthblwgOwor5YqXID4gc2FuXCA7CivlipYgPiBzYW5cIDsKK+WKlCA+IGtlblwgOwor5YqSID4ga2VuXCA7CivlipEgPiB6YWlcIDsKK+WKjiA+IGtlblwgOwor5YqMID4ga2VpXCA7CivlioogPiBrYWlcIDsKK+WKhiA+IHJlblwgOwor5Ym/ID4gc291XCA7CivlibwgPiBzYW5cIDsKK+WJuyA+IGh1dVwgOwor5Ym4ID4gdGFuXCA7CivlibcgPiBzYW5cIDsKK+WJtCA+IGdhaVwgOwor5YmzID4gdG91XCA7CivlibEgPiBrZW5cIDsKK+WJsCA+IGpvdVwgOwor5YmtID4gb2t1XCA7CivliawgPiB0YW5cIDsKK+WJqiA+IHNlblwgOwor5YmpID4gam91XCA7CivliaQgPiB6YWlcIDsKK+WJoCA+IGtlaVwgOwor5YmcID4gd2FuXCA7CivliZogPiBzaGlcIDsKK+WJmSA+IHNvdVwgOwor5YmXID4gc2FuXCA7CivliY8gPiBzb3VcIDsKK+WJhSA+IHJvdVwgOwor5YmEID4ga2VpXCA7CivliLggPiBrZW5cIDsKK+WIsiA+IGtlaVwgOwor5YixID4gc291XCA7CivliKwgPiBzYW5cIDsKK+WIqiA+IHNhblwgOwor5YioID4gaG91XCA7CivliKcgPiBnb3VcIDsKK+WIoiA+IHJlaVwgOwor5YihID4gYmluXCA7CivliKAgPiBzYW5cIDsKK+WIniA+IHNob1wgOwor5YiTID4gZ3VuXCA7CivliJAgPiB0YW5cIDsKK+WIjiA+IGZ1blwgOwor5YiMID4gc29uXCA7CivliIsgPiBzZW5cIDsKK+WIhSA+IHNvdVwgOwor5YiEID4gamluXCA7CivliIIgPiB0YXVcIDsKK+WIgSA+IHRldVwgOwor5Ye+ID4ga2FuXCA7Civlh7cgPiBrYWlcIDsKK+WHtSA+IGthblwgOwor5YezID4gdG91XCA7Civlh7IgPiBrYW5cIDsKK+WHsSA+IGdhaVwgOwor5YewID4ga291XCA7Civlh64gPiBmdXVcIDsKK+WHrSA+IGhlaVwgOwor5YeoID4gZnV1XCA7Civlh6UgPiBreW9cIDsKK+WHpCA+IGhvdVwgOwor5YejID4gaGFuXCA7Civlh6IgPiBib25cIDsKK+WHnCA+IHJpblwgOwor5YebID4gcmluXCA7Civlh5ggPiBzaGlcIDsKK+WHlyA+IHNhaVwgOwor5YeWID4ganVuXCA7Civlh5UgPiBiZWlcIDsKK+WHlCA+IHNhdVwgOwor5YeRID4gc291XCA7Civlh48gPiBnZW5cIDsKK+WHiiA+IHNlaVwgOwor5YeIID4gc291XCA7Civlh4YgPiBqdW5cIDsKK+WHgiA+IGJhaVwgOwor5Ya/ID4gc2VuXCA7CivlhrogPiBiaW5cIDsKK+WGuCA+IGhhblwgOwor5YatID4gdGFpXCA7CivlhqkgPiBzaGFcIDsKK+WGpiA+IGtvdVwgOwor5YalID4gbWVpXCA7CivlhqMgPiBzaHVcIDsKK+WGoSA+IGJvdVwgOwor5YaVID4gYmVuXCA7CivlhpMgPiBrb3VcIDsKK+WGkCA+IGJvdVwgOwor5YaPID4ga2VpXCA7CivlhosgPiBrZWlcIDsKK+WGiSA+IG5lblwgOwor5YaEID4gemVuXCA7CivlhoMgPiBib3VcIDsKK+WGgiA+IGtlaVwgOwor5YWuID4ga2VpXCA7CivlhacgPiBkYWlcIDsKK+WFpiA+IGJvdVwgOwor5YWkID4ga291XCA7CivlhZggPiBzaGlcIDsKK+WFlSA+IHNoaVwgOwor5YWKID4gdGFpXCA7CivlhL8gPiBqaW5cIDsKK+WEvSA+IHJhaVwgOwor5YS8ID4gZ2VuXCA7CivlhLsgPiB0b3VcIDsKK+WEuSA+IHNhblwgOwor5YS3ID4gcmVpXCA7CivlhLMgPiBzYW5cIDsKK+WEsSA+IHJvdVwgOwor5YSvID4gdG91XCA7CivlhKkgPiBzaGlcIDsKK+WEpyA+IHNhblwgOwor5YSlID4gaWt1XCA7CivlhKQgPiBob3VcIDsKK+WEoyA+IGtvdVwgOwor5YSiID4gcnlvXCA7CivlhKEgPiByYWlcIDsKK+WEnSA+IGtlaVwgOwor5YScID4gZGF1XCA7CivlhJogPiBib3VcIDsKK+WEmSA+IGtlblwgOwor5YSWID4gcmFuXCA7CivlhJUgPiBzZWlcIDsKK+WEkyA+IHRhaVwgOwor5YSRID4gZ2FuXCA7CivlhJAgPiBoaW5cIDsKK+WEjiA+IHNhaVwgOwor5YSMID4ga2V1XCA7CivlhIsgPiB0YW5cIDsKK+WEiiA+IHNob1wgOwor5YSJID4ga2VuXCA7CivlhIggPiBrYWlcIDsKK+WEhyA+IGtlblwgOwor5YSGID4ga2VpXCA7CivlhIUgPiB0b3VcIDsKK+WEgyA+IHNlblwgOwor5YSCID4gZG91XCA7Civlg78gPiBzaGlcIDsKK+WDvCA+IGhvdVwgOwor5YO4ID4ga2luXCA7Civlg7YgPiBiaW5cIDsKK+WDryA+IHJpblwgOwor5YOuID4gZG91XCA7Civlg60gPiBzZW5cIDsKK+WDrCA+IHNldVwgOwor5YOpID4ga2FuXCA7Civlg6ggPiBodW5cIDsKK+WDpCA+IHRhblwgOwor5YOjID4gc2VuXCA7Civlg6IgPiBzZW5cIDsKK+WDoCA+IGZhblwgOwor5YOdID4gc2FuXCA7Civlg5wgPiB0b3VcIDsKK+WDmSA+IGtvdVwgOwor5YOXID4gcmF1XCA7Civlg5QgPiBzb25cIDsKK+WDkyA+IHRhaVwgOwor5YOQID4gc2VuXCA7Civlg44gPiBzZW5cIDsKK+WDjCA+IHlvdVwgOwor5YOLID4gdGFuXCA7Civlg4ogPiBzZW5cIDsKK+WDiSA+IHNlblwgOwor5YOIID4gYmFuXCA7Civlg4YgPiByZW5cIDsKK+WDhCA+IGhldVwgOwor5YOCID4gcm91XCA7Civlg4AgPiB0ZWlcIDsKK+WCuiA+IHRlaVwgOwor5YK4ID4gc2F1XCA7CivlgrUgPiBzYWlcIDsKK+WCsiA+IGdvdVwgOwor5YKwID4gaG91XCA7Civlgq8gPiBzb3VcIDsKK+WCriA+IHNvdVwgOwor5YKtID4geW91XCA7CivlgqogPiBzYW5cIDsKK+WCpCA+IHNhaVwgOwor5YKhID4gaGVpXCA7Civlgp0gPiB0YW5cIDsKK+WCmyA+IHlvdVwgOwor5YKaID4ga291XCA7CivlgpYgPiBzYXVcIDsKK+WClCA+IGtlblwgOwor5YKTID4gc2VuXCA7CivlgpIgPiBrZWlcIDsKK+WCkCA+IGtvdVwgOwor5YKPID4gdG91XCA7Civlgo4gPiB0ZW5cIDsKK+WCiyA+IGthdVwgOwor5YKHID4gam91XCA7CivlgoYgPiBnZW5cIDsKK+WCgiA+IGNoaVwgOwor5YKBID4gc291XCA7CivlgoAgPiBrYWlcIDsKK+WBuyA+IHJvdVwgOwor5YG6ID4gc2FuXCA7CivlgbggPiB0b3VcIDsKK+WBsyA+IHRhblwgOwor5YGyID4gc2hpXCA7Civlga0gPiBiZW5cIDsKK+WBrCA+IHNvdVwgOwor5YGrID4gY2hpXCA7CivlgakgPiBodXVcIDsKK+WBqCA+IHNoaVwgOwor5YGmID4gc2hvXCA7CivlgaIgPiBzZXVcIDsKK+WBoSA+IHRhblwgOwor5YGeID4geW91XCA7CivlgZ0gPiBoYWlcIDsKK+WBmyA+IHNvdVwgOwor5YGZID4gdGVpXCA7CivlgZggPiBrYW5cIDsKK+WBlyA+IHNlaVwgOwor5YGWID4gc2hhXCA7CivlgZUgPiBrYWlcIDsKK+WBkyA+IGFrdVwgOwor5YGSID4gdG91XCA7CivlgZEgPiBodXVcIDsKK+WBkCA+IGdhblwgOwor5YGPID4gaGVuXCA7CivlgY4gPiB3YWlcIDsKK+WBjSA+IHRlaVwgOwor5YGLID4gaGVpXCA7CivlgYQgPiBkYW5cIDsKK+WBgiA+IHNlblwgOwor5YC8ID4gY2hpXCA7CivlgLcgPiBkYWlcIDsKK+WAtCA+IGhvblwgOwor5YCzID4gc2hpXCA7CivlgLIgPiB0b3VcIDsKK+WAsSA+IGtvblwgOwor5YCrID4gcmluXCA7CivlgKogPiBnZWlcIDsKK+WAqCA+IGt5b1wgOwor5YCnID4gc291XCA7CivlgKUgPiBrb3VcIDsKK+WAoyA+IGhvdVwgOwor5YCeID4ga2VpXCA7CivlgJ0gPiBrYW5cIDsKK+WAlyA+IGhvdVwgOwor5YCWID4ga291XCA7CivlgJUgPiBzdWlcIDsKK+WAkyA+IHRhblwgOwor5YCRID4gbW9uXCA7CivlgI4gPiB0ZW5cIDsKK+WAjSA+IGJhaVwgOwor5YCKID4gc291XCA7CivlgIggPiByYWlcIDsKK+WAhSA+IHNhaVwgOwor5YCEID4ga291XCA7CivlgIIgPiBoZWlcIDsKK+WAgSA+IGNoaVwgOwor5L+/ID4gY2hpXCA7Civkv70gPiBraW5cIDsKK+S/vCA+IGlrdVwgOwor5L+4ID4gaG91XCA7Civkv7QgPiBzZW5cIDsKK+S/syA+IGhhaVwgOwor5L+yID4ga291XCA7Civkv6sgPiByYWlcIDsKK+S/nyA+IHNoaVwgOwor5L+cID4gaGVpXCA7Civkv5sgPiBiZW5cIDsKK+S/liA+IGhhaVwgOwor5L+UID4ga2VuXCA7Civkv5MgPiBnYXVcIDsKK+S/kiA+IGtvblwgOwor5L+RID4geW91XCA7Civkv48gPiBzZXVcIDsKK+S/iiA+IGp1blwgOwor5L+GID4gc2hvXCA7Civkv4AgPiB0YWlcIDsKK+S+viA+IGtvdVwgOwor5L69ID4gZGFuXCA7CivkvrkgPiB0ZWlcIDsKK+S+qyA+IG5laVwgOwor5L6jID4gcnlvXCA7Civkvp8gPiBzZW5cIDsKK+S+lyA+IHRvdVwgOwor5L6WID4gcm9uXCA7CivkvpQgPiBib3VcIDsKK+S+kSA+IHl1dVwgOwor5L6PID4gc2h1XCA7CivkvoogPiBrb3VcIDsKK+S+iCA+IHNoaVwgOwor5L6FID4ga2FpXCA7CivkvoMgPiBrYW5cIDsKK+S+gCA+IGtlaVwgOwor5L29ID4gc2hpXCA7CivkvbwgPiBrb3VcIDsKK+S9uiA+IHNlblwgOwor5L23ID4ga291XCA7CivkvbEgPiBob3VcIDsKK+S9ryA+IHlvdVwgOwor5L2uID4ga291XCA7CivkvakgPiBoYWlcIDsKK+S9oyA+IHlvdVwgOwor5L2iID4ga3lvXCA7CivkvaEgPiBrZW5cIDsKK+S9nyA+IHRvdVwgOwor5L2eID4gbmVpXCA7CivkvZ0gPiBrb3VcIDsKK+S9mCA+IHNoYVwgOwor5L2RID4geXV1XCA7CivkvYwgPiBzaGlcIDsKK+S9iSA+IGt5b1wgOwor5L2GID4gdGFuXCA7CivkvYIgPiB5YWlcIDsKK+S9gCA+IHNoaVwgOwor5Ly7ID4gaG91XCA7CivkvLkgPiBzaG9cIDsKK+S8tiA+IHJlaVwgOwor5LytID4ga2VuXCA7CivkvKMgPiBrZW5cIDsKK+S8mCA+IHl1dVwgOwor5LyXID4gZ2luXCA7CivkvJMgPiBoYWlcIDsKK+S8kiA+IGtpblwgOwor5LyJID4ga291XCA7CivkvIcgPiBla2lcIDsKK+S8hSA+IHRvblwgOwor5LyCID4gaGFpXCA7Civku78gPiBob3VcIDsKK+S7viA+IHRlaVwgOwor5Lu9ID4gaGluXCA7Civku7cgPiBrYWlcIDsKK+S7sSA+IGtlblwgOwor5LuvID4gc291XCA7Civku60gPiBqaW5cIDsKK+S7oCA+IGthblwgOwor5LufID4gc2VuXCA7Civku54gPiBqaW5cIDsKK+S7nCA+IGtvdVwgOwor5LuaID4ga2VuXCA7Civku5AgPiBzYW5cIDsKK+S7jiA+IGp1dVwgOwor5LuNID4gam91XCA7Civku4MgPiB0ZWlcIDsKK+S7gCA+IGp1dVwgOwor5Lq+ID4gYm91XCA7CivkurcgPiByZW5cIDsKK+S6tiA+IHRhblwgOwor5LqwID4ga2VpXCA7CivkuqIgPiBrb3VcIDsKK+S6oCA+IHRvdVwgOwor5LqdID4gc2VpXCA7CivkupcgPiBzYWlcIDsKK+S6liA+IHNoaVwgOwor5LqDID4gcmluXCA7CivkuoEgPiBrZW5cIDsKK+S5vyA+IGNoaVwgOwor5Lm5ID4ga2FuXCA7CivkuaogPiBkb3VcIDsKK+S5qSA+IGtlaVwgOwor5LmoID4gc2hpXCA7CivkuaIgPiBnYWlcIDsKK+S5liA+IGthaVwgOwor5LmTID4gaGF1XCA7CivkuZIgPiBoZWlcIDsKK+S5kSA+IGdpblwgOwor5LmCID4gZ2FpXCA7CivkuL4gPiBreW9cIDsKK+S4vSA+IHJlaVwgOwor5Li2ID4gY2h1XCA7CivkuLMgPiBzYW5cIDsKK+S4sSA+IGthblwgOwor5LiwID4gaG91XCA7CivkuK8gPiBrYWlcIDsKK+S4qCA+IGtvblwgOwor5LijID4geXV1XCA7CivkuJkgPiBoZWlcIDsKK+S4lyA+IHNlaVwgOwor5LiTID4gc2VuXCA7CivkuJAgPiBrYWlcIDsKK+S4jyA+IGJlblwgOwor5LiCID4ga291XCA7Civov6YgPiBrYVwgOwor55+iID4geWFcIDsKK+W/nCA+IG91XCA7Civlv4wgPiBraVwgOwor6L6tID4gamlcIDsKK+W+riA+IGJpXCA7CivlvqEgPiBnb1wgOwor6L6eID4gamlcIDsKK+W+kiA+IHRvXCA7CivlvpAgPiBqb1wgOwor5b6DID4gb3VcIDsKK+W+gCA+IG91XCA7CivnnLwgPiBtZVwgOwor6LyqID4gd2FcIDsKK+W8pSA+IG1pXCA7CivnnJ8gPiBtYVwgOwor6LydID4ga2lcIDsKK+W8lSA+IGluXCA7CivlvJAgPiBuaVwgOwor5bu2ID4gZW5cIDsKK+ebriA+IG1lXCA7CivouqsgPiBtaVwgOwor5bqrID4ga29cIDsKK+W6pyA+IHphXCA7CivluqYgPiBkb1wgOwor5bqcID4gZnVcIDsKK+W6hyA+IGhpXCA7CivouLAgPiB5dVwgOwor5biwID4ga2lcIDsKK+eXuiA+IGhpXCA7Civot68gPiByb1wgOwor5beuID4gc2FcIDsKK+i3qiA+IGtpXCA7Civlt6ggPiBrb1wgOwor5bejID4gc3VcIDsKK+W3niA+IHN1XCA7Civnl5sgPiB0c1wgOwor55ayID4gaGlcIDsKK+eWkSA+IGdpXCA7Civnlo4gPiBzb1wgOwor55aLID4gc29cIDsKK+i1tyA+IGtpXCA7CivotbQgPiBmdVwgOwor55SwID4gdGFcIDsKK+eUpSA+IG9pXCA7CivotJQgPiBoaVwgOwor6LK7ID4gaGlcIDsKK+iytCA+IGtpXCA7CivnkrAgPiB3YVwgOwor6LKoID4ga2FcIDsKK+iyoCA+IGZ1XCA7CivosasgPiB5b1wgOwor5bGlID4gcmlcIDsKK+WxkyA+IGtpXCA7CivlsYsgPiB5YVwgOwor6LC3ID4geWFcIDsKK+eQhiA+IHJpXCA7Civlr50gPiBuZVwgOwor5a+QID4gYmlcIDsKK+ePiCA+IGthXCA7Civlr4QgPiBraVwgOwor5a62ID4ga2VcIDsKK+WunyA+IG1pXCA7CivlrpwgPiBnaVwgOwor546LID4gb3VcIDsKK+itvSA+IHlvXCA7CivorbcgPiBnb1wgOwor6K2wID4gZ2lcIDsKK+itrCA+IGhpXCA7CivlraMgPiBraVwgOwor5a2XID4gamlcIDsKK+WtkCA+IG5lXCA7CivlrIkgPiBraVwgOwor5aq8ID4gb3VcIDsKK+iqsiA+IGthXCA7CivoqqQgPiBnb1wgOwor54qgID4gZ2lcIDsKK+iqniA+IGdvXCA7CivlqpogPiBiaVwgOwor6KqJID4geW9cIDsKK+iqhyA+IGtvXCA7CivlqaYgPiBmdVwgOwor5amiID4gaGlcIDsKK+WpiSA+IGVuXCA7CivoqLQgPiBzb1wgOwor6KidID4gZ2FcIDsKK+iomCA+IGtpXCA7CivniJAgPiByb1wgOwor54efID4gZWlcIDsKK+WmrCA+IHRvXCA7CivlppMgPiBraVwgOwor6KaLID4gbWlcIDsKK+WmgiA+IGpvXCA7CivlpbMgPiBqb1wgOwor6KWmID4ganVcIDsKK+WlpyA+IG91XCA7CivlpYggPiBuYVwgOwor5aWHID4ga2lcIDsKK+WkriA+IG91XCA7CivlpKogPiB0YVwgOwor54ShID4gbXVcIDsKK+ikniA+IG9uXCA7CivlpJogPiB0YVwgOwor6KSTID4gaG9cIDsKK+ijsyA+IG1vXCA7Civoo6EgPiByaVwgOwor54OfID4gZW5cIDsKK+ijnCA+IGhvXCA7Civloq4gPiBkYVwgOwor6KKrID4gaGlcIDsKK+ihsCA+IHNhXCA7Civnga8gPiBoaVwgOwor54GrID4gaGlcIDsKK+ihniA+IGVpXCA7CivooZsgPiBlaVwgOwor5aGXID4gdG9cIDsKK+WgtSA+IHRvXCA7CivloLQgPiBiYVwgOwor54CsID4gc2VcIDsKK+WglSA+IGRhXCA7Civon7IgPiBraVwgOwor5r+hID4ganVcIDsKK+ieuiA+IHJhXCA7CivlnZAgPiB6YVwgOwor5ZyWID4gdG9cIDsKK+a8lCA+IGVuXCA7CivlnJMgPiBlblwgOwor5ZyDID4gaG9cIDsKK+WbuiA+IGtvXCA7Civlm7MgPiB6dVwgOwor5ZugID4gaW5cIDsKK+m7hCA+IGtpXCA7Civmuq8gPiBzb1wgOwor6JqKID4ga2FcIDsKK+m5vSA+IGVuXCA7Civmua8gPiB5dVwgOwor5ripID4gb25cIDsKK+WYqSA+IGthXCA7CivmuKEgPiB0b1wgOwor6biaID4gb3VcIDsKK+WYlCA+IG91XCA7CivomIcgPiBzb1wgOwor6be6ID4gcm9cIDsKK+a3uSA+IGVuXCA7Civmt6sgPiBpblwgOwor5ZefID4gYWFcIDsKK+iXjSA+IGFpXCA7CivmtrggPiBrb1wgOwor5ZaqID4gbW9cIDsKK+WWnCA+IGtpXCA7Civmta4gPiBmdVwgOwor6bWhID4gYnVcIDsKK+a0viA+IGhhXCA7CivmtKkgPiBlaVwgOwor5rOzID4gZWlcIDsKK+WTqSA+IHJpXCA7Civlk6EgPiBpblwgOwor5rOEID4gZWlcIDsKK+WTgCA+IGFpXCA7Civmsr8gPiBlblwgOwor5rK7ID4gamlcIDsKK+aymSA+IHNhXCA7CivlkowgPiB3YVwgOwor5rG9ID4ga2lcIDsKK+WRvCA+IGtvXCA7CivmsbAgPiB0YVwgOwor5ZGqID4ganVcIDsKK+iRoSA+IGhvXCA7CivmsZ0gPiBqb1wgOwor6JGJID4gaGFcIDsKK+WRiSA+IGdvXCA7CivlkL4gPiBnb1wgOwor5rC4ID4gZWlcIDsKK+awtyA+IGhpXCA7CivlkKYgPiBoaVwgOwor5rCjID4ga2lcIDsKK+awlyA+IGtpXCA7CivlkJAgPiB0b1wgOwor5ZCPID4gcmlcIDsKK+WQjSA+IG5hXCA7Civlj68gPiBrYVwgOwor6I+cID4gbmFcIDsKK+avmyA+IGtlXCA7Civlj5kgPiBqb1wgOwor5q+YID4gaGlcIDsKK+WPlyA+IGp1XCA7Civmr5QgPiBoaVwgOwor6I+TID4ga2FcIDsKK+avhiA+IG91XCA7CivojqsgPiBib1wgOwor5q24ID4ga2lcIDsKK+iNtyA+IG5pXCA7Civpra8gPiByb1wgOwor5Y2xID4ga2lcIDsKK+atryA+IGhhXCA7CivmrakgPiBob1wgOwor5q2mID4gYnVcIDsKK+atnyA+IHlvXCA7CivprZggPiBlblwgOwor6a2UID4gbWFcIDsKK+WNkSA+IGhpXCA7CivmrZAgPiBvdVwgOwor6a2FID4gbWlcIDsKK+iMuSA+IGpvXCA7CivmrLogPiBnaVwgOwor5qy3ID4ga2lcIDsKK+WMliA+IGthXCA7CivljI0gPiBob1wgOwor6IyEID4ga2FcIDsKK+iMgiA+IG1vXCA7Civoi7EgPiBlaVwgOwor6IumID4ga3VcIDsKK+iLmyA+IGthXCA7Civli5kgPiBtdVwgOwor6IuRID4gZW5cIDsKK+iKvSA+IG1lXCA7CivliqogPiBkb1wgOwor5YqgID4ga2FcIDsKK+aqkCA+IGVuXCA7Civmqo4gPiBnb1wgOwor6amFID4ga3VcIDsKK+aouSA+IGp1XCA7CivliKkgPiByaVwgOwor5qihID4gbW9cIDsKK+iIniA+IGJ1XCA7CivoiIcgPiB5b1wgOwor5Ye6ID4gZGVcIDsKK+iHpSA+IGdhXCA7Civpp4ggPiBrdVwgOwor6aeGID4ga3VcIDsKK+mnhCA+IHRhXCA7CivlhrYgPiB5YVwgOwor6IaaID4gZnVcIDsKK+amjiA+IGthXCA7CivlhbcgPiBndVwgOwor5YW2ID4ga2lcIDsKK+mlkSA+IGtpXCA7CivohZEgPiBmdVwgOwor5YWSID4gamlcIDsKK+iFkCA+IGZ1XCA7CivlhZAgPiBqaVwgOwor6aSYID4geW9cIDsKK+mkkyA+IGdhXCA7CivlhIAgPiBnaVwgOwor5YO5ID4ga2FcIDsKK+mjsiA+IGluXCA7Civpo64gPiBpblwgOwor6aOiID4ga2lcIDsKK+iDoSA+IGtvXCA7Civlg54gPiBnaVwgOwor6aObID4gaGlcIDsKK+ajhCA+IGtpXCA7CivlgpkgPiBiaVwgOwor6aGnID4ga29cIDsKK+WBmiA+IHNhXCA7CivpoYYgPiBrYVwgOwor5qGIID4gYW5cIDsKK+WBhyA+IGthXCA7CivmoLkgPiBuZVwgOwor5YC2ID4ga3VcIDsKK+WApCA+IG5lXCA7CivlgJogPiBraVwgOwor6aCXID4gaGFcIDsKK+mgkCA+IHlvXCA7CivlgIsgPiBrb1wgOwor5qCEID4gZWlcIDsKK+mfuyA+IGluXCA7Civmn7sgPiBzYVwgOwor6Z+zID4gbmVcIDsKK+e/syA+IGVpXCA7Civkv68gPiBmdVwgOwor5L+dID4gaG9cIDsKK+e+vSA+IHdhXCA7CivmnrYgPiBrYVwgOwor5p6vID4ga29cIDsKK+S+riA+IGJ1XCA7CivnvqkgPiBnaVwgOwor5p6cID4ga2FcIDsKK+S+mCA+IHRhXCA7Civnvo4gPiBiaVwgOwor576FID4gcmFcIDsKK+e9uSA+IHJpXCA7CivnvbUgPiBiYVwgOwor6Z2hID4gaGlcIDsKK+mdniA+IGhpXCA7CivkvZkgPiB5b1wgOwor6Z2SID4gYW9cIDsKK+S9kCA+IHNhXCA7CivkvLwgPiBuaVwgOwor5pyqID4gbWlcIDsKK+acqCA+IGtpXCA7CivmnJ8gPiBraVwgOwor5LyOID4gZ2lcIDsKK+S8jSA+IGdvXCA7CivkvIEgPiBraVwgOwor5puzID4gZWlcIDsKK+mboiA+IHJpXCA7Civku6MgPiB5b1wgOwor5LuYID4gZnVcIDsKK+masSA+IGluXCA7Civmmq4gPiBib1wgOwor6ZqgID4gaW5cIDsKK+S6myA+IHNhXCA7CivmmpcgPiBhblwgOwor5LqUID4gZ29cIDsKK+S6kiA+IGdvXCA7CivkupEgPiB1blwgOwor5LqMID4gbmlcIDsKK+S6iCA+IHlvXCA7CivnubsgPiBqdVwgOwor5pmuID4gZnVcIDsKK+mZpCA+IGpvXCA7CivpmaIgPiBpblwgOwor5LmdID4ga3VcIDsKK+mZhCA+IGZ1XCA7CivkuYMgPiBub1wgOwor6ZmAID4gZGFcIDsKK+S4uSA+IG5pXCA7CivmmK8gPiB6ZVwgOwor5pigID4gZWlcIDsKK+S4liA+IHlvXCA7CivkuI4gPiB5b1wgOwor5LiNID4gZnVcIDsKK+S4iSA+IG1pXCA7Civml7ogPiBvdVwgOwor5pelID4gaGlcIDsKK+aXoiA+IGtpXCA7CivntrogPiBraVwgOwor5paXID4gdG9cIDsKK+mWkyA+IG1hXCA7CivmlpAgPiBoaVwgOwor5pW3ID4gZnVcIDsKK+e0oCA+IHNvXCA7CivntIAgPiBraVwgOwor5pOsID4gZ2lcIDsKK+aSqyA+IGJ1XCA7CivmkakgPiBtYVwgOwor57GUID4gc3VcIDsKK+ewvyA+IGJvXCA7CivnsLcgPiBlblwgOwor5o6qID4gc29cIDsKK+aOqSA+IGVuXCA7CivmjpsgPiBrYVwgOwor5o6IID4ganVcIDsKK+euhyA+IGthXCA7CivmjZcgPiBob1wgOwor5o2VID4gaG9cIDsKK+aMqCA+IGFpXCA7CivnrKYgPiBmdVwgOwor5oyBID4gamlcIDsKK+mLrSA+IGVpXCA7Civpi6ogPiBob1wgOwor5oq8ID4gb3VcIDsKK+equiA+IGtpXCA7CivnqrYgPiBrdVwgOwor5oqrID4gaGlcIDsKK+aKkiA+IGpvXCA7CivmibkgPiBoaVwgOwor5om2ID4gZnVcIDsKK+aJkyA+IGRhXCA7CivnqY8gPiBvblwgOwor5omLID4gdGVcIDsKK+epgiA+IGhvXCA7CivnqLwgPiBrYVwgOwor5oi4ID4gdG9cIDsKK+aIsiA+IGdpXCA7CivmiK8gPiBnaVwgOwor5oe8ID4ga3VcIDsKK+enmCA+IGhpXCA7Civnp5EgPiBrYVwgOwor6YeOID4gbm9cIDsKK+mHjCA+IHJpXCA7CivnpZYgPiBzb1wgOwor56WVID4gaGlcIDsKK+aFlSA+IGJvXCA7CivnpYggPiBraVwgOwor5oWHID4gaW5cIDsKK+aEmyA+IGFpXCA7CivmhJogPiBndVwgOwor5oSJID4geXVcIDsKK+aEiCA+IHl1XCA7Civmg7kgPiBqYVwgOwor6YOoID4gYnVcIDsKK+ejqCA+IG1hXCA7CivmgrggPiBraVwgOwor5oKyID4gaGlcIDsKK+mCoyA+IGRhXCA7Civmgp8gPiBnb1wgOwor6YG/ID4gaGlcIDsKK+aBqSA+IG9uXCA7CivpgY4gPiBrYVwgOwor6YGLID4gdW5cIDsKK+egtCA+IGhhXCA7CivmgKggPiBlblwgOwor5oCWID4gZnVcIDsKK+mAlCA+IHRvXCA7CivmgJIgPiBkb1wgOwor6b6iID4ga2FcIDsKK+m+nCA+IGtpXCA7CivpvpEgPiBlblwgOwor6b2uID4gZ2lcIDsKK+m9nyA+IHNvXCA7CivpvZYgPiBnYVwgOwor6b2HID4gc2FcIDsKK+m9hiA+IG91XCA7CivpvL0gPiBndVwgOwor6by5ID4gZW5cIDsKK+m8tCA+IGVuXCA7CivpvK8gPiBnb1wgOwor6byUID4ga29cIDsKK+m8iSA+IHRhXCA7Civpu7wgPiBob1wgOwor6bu4ID4gcm9cIDsKK+m7ryA+IGFuXCA7Civpu60gPiBlblwgOwor6bukID4gZW5cIDsKK+m7oSA+IGVuXCA7Civpu58gPiBlaVwgOwor6bq+ID4ga2lcIDsKK+m6vCA+IG1hXCA7CivpurggPiBmdVwgOwor6bqsID4gZnVcIDsKK+m6pCA+IHNvXCA7CivpupIgPiBraVwgOwor6bqMID4gZ3VcIDsKK+m6iyA+IGJpXCA7CivpuoQgPiBzb1wgOwor6bqCID4ga2lcIDsKK+m6gSA+IHNvXCA7CivpubogPiBzYVwgOwor6bm1ID4gcm9cIDsKK+m5nyA+IG91XCA7CivpuYAgPiBidVwgOwor6bidID4gcmlcIDsKK+m4nCA+IGt1XCA7CivpuJUgPiByb1wgOwor6biSID4geW9cIDsKK+m3sCA+IGVuXCA7Civpt5cgPiBvdVwgOwor6beWID4gZWlcIDsKK+m3gyA+IGFuXCA7CivptrIgPiBvdVwgOwor6bavID4gb3VcIDsKK+m2mCA+IGtvXCA7CivptpUgPiBhblwgOwor6bW6ID4geWFcIDsKK+m1tyA+IGVuXCA7Civpta8gPiBoaVwgOwor6bWqID4gYW5cIDsKK+m1niA+IGdhXCA7CivptZ0gPiBnYVwgOwor6bWQID4gYnVcIDsKK+m0vSA+IGpvXCA7CivptLwgPiByb1wgOwor6bSzID4gYW5cIDsKK+m0ryA+IGppXCA7CivptKMgPiBrb1wgOwor6bSdID4ga3VcIDsKK+m0myA+IGVuXCA7CivptJUgPiB0YVwgOwor6bSRID4gZG9cIDsKK+mztiA+IGVuXCA7Civps6wgPiBmdVwgOwor6bOnID4gZnVcIDsKK+mzgSA+IG9uXCA7Civpso8gPiBoaVwgOwor6bKKID4gc2FcIDsKK+mxqyA+IGFpXCA7CivpsKIgPiBiYVwgOwor6bCbID4gb25cIDsKK+mwliA+IHRhXCA7CivpsIsgPiBlblwgOwor6a+hID4gaGlcIDsKK+mvnSA+IGtvXCA7Civpr4sgPiBzYVwgOwor6a+GID4gaG9cIDsKK+muuyA+IHNhXCA7CivprqwgPiBob1wgOwor6a6fID4gYW5cIDsKK+muniA+IGppXCA7Civpro0gPiBoaVwgOwor6a6HID4gYmlcIDsKK+mugCA+IHRhXCA7CivprbIgPiByb1wgOwor6a2uID4gaGlcIDsKK+mtpiA+IHNhXCA7CivprZUgPiBraVwgOwor6a2PID4gZ2lcIDsKK+mtjCA+IGtpXCA7CivprL0gPiBiaVwgOwor6ay5ID4ga2lcIDsKK+mstiA+IGtpXCA7CivprLQgPiBmdVwgOwor6ayQID4ga2lcIDsKK+msjSA+IGtvXCA7CivprIwgPiB0YVwgOwor6ayBID4gcmlcIDsKK+mrvyA+IHNhXCA7Civpq70gPiBzYVwgOwor6au1ID4gamlcIDsKK+mrsiA+IGhpXCA7Civpq6wgPiBoaVwgOwor6auXID4gcm9cIDsKK+mrgyA+IGd1XCA7Civpq4AgPiBoaVwgOwor6aq7ID4ga2FcIDsKK+mpqiA+IHJpXCA7CivpqaUgPiBraVwgOwor6amKID4ga2FcIDsKK+moviA+IHJhXCA7CivpqKcgPiBrYVwgOwor6aikID4ga2lcIDsKK+mooiA+IGthXCA7CivpqJYgPiBidVwgOwor6aiRID4gaGlcIDsKK+mojyA+IGtpXCA7CivpqI4gPiBraVwgOwor6aewID4gaW5cIDsKK+mnrCA+IGppXCA7Civpp6EgPiBiYVwgOwor6aeeID4gZGFcIDsKK+mnnSA+IHRhXCA7Civpp5kgPiBmdVwgOwor6aeVID4gZ2FcIDsKK+mnkyA+IGhpXCA7Civpp5EgPiBkb1wgOwor6aa/ID4gcm9cIDsKK+mmsSA+IHRhXCA7Civppp8gPiB0b1wgOwor6aaXID4ga2lcIDsKK+mloCA+IHJhXCA7CivppZwgPiBlblwgOwor6aWLID4ga2lcIDsKK+mlhyA+IHlvXCA7CivppYIgPiB1blwgOwor6aS9ID4ga2lcIDsKK+mkvCA+IGtpXCA7CivppLIgPiBlaVwgOwor6aSsID4ga29cIDsKK+mkqyA+IHVuXCA7CivppKEgPiBhblwgOwor6aScID4ga2FcIDsKK+mklCA+IGhvXCA7CivppIcgPiB0b1wgOwor6aOrID4geW9cIDsKK+mitiA+IGt1XCA7CivpoqsgPiBmdVwgOwor6aKVID4gZWlcIDsKK+mhsSA+IHJvXCA7CivpoawgPiBqdVwgOwor6aGXID4gZ2lcIDsKK+mgtSA+IGluXCA7CivpoLQgPiBlaVwgOwor6aCrID4gZnVcIDsKK+mgjiA+IGtpXCA7CivpoI0gPiBnaVwgOwor6Z+6ID4gZWlcIDsKK+mftSA+IGluXCA7Civpn54gPiBvblwgOwor6Z+XID4gdW5cIDsKK+mevyA+IGtpXCA7Civpnr4gPiBrYVwgOwor6Z68ID4ga2lcIDsKK+metSA+IGFpXCA7Civpno0gPiBhblwgOwor6Z6LID4gYWlcIDsKK+mehSA+IG91XCA7CivpnoEgPiBoaVwgOwor6Z2/ID4gb3VcIDsKK+mduyA+IHNvXCA7CivpnbcgPiBpblwgOwor6Z22ID4gaGFcIDsKK+mdiSA+IGFpXCA7CivpnKogPiBpblwgOwor6ZyjID4gaW5cIDsKK+mcjyA+IGhpXCA7CivpnIAgPiBqdVwgOwor6Zu6ID4gbXVcIDsKK+mbhSA+IGdhXCA7CivpmrMgPiBraVwgOwor6ZqpID4gb3VcIDsKK+mamCA+IGFpXCA7CivpmpUgPiBpblwgOwor6ZqQID4gaW5cIDsKK+maiyA+IHRhXCA7CivpmoIgPiBpblwgOwor6ZqBID4gZW5cIDsKK+mZuyA+IGluXCA7CivpmbQgPiBoaVwgOwor6ZmSID4ga2lcIDsKK+mZjyA+IHRhXCA7CivpmYIgPiBoYVwgOwor6ZmBID4gdGFcIDsKK+mYvSA+IGVuXCA7CivpmLwgPiBzb1wgOwor6Zi7ID4gc29cIDsKK+mYpSA+IGluXCA7CivpmJwgPiBmdVwgOwor6ZiHID4gdG9cIDsKK+mXniA+IGtuXCA7Civpl5ogPiBraVwgOwor6ZeNID4gdG9cIDsKK+mXiSA+IGluXCA7CivplrsgPiBlblwgOwor6Za5ID4gZW5cIDsKK+mWrSA+IHJvXCA7Civplp8gPiBoaVwgOwor6ZW+ID4gYmlcIDsKK+mRvCA+IHJhXCA7CivpkaogPiByb1wgOwor6ZCWID4ga2lcIDsKK+mPliA+IG91XCA7Civpj40gPiByYVwgOwor6Y+BID4gc2FcIDsKK+mOtiA+IGthXCA7CivpjrUgPiBrYVwgOwor6Y6jID4gZWlcIDsKK+mOiCA+IHNhXCA7CivpjoIgPiBiaVwgOwor6Y6BID4geWFcIDsKK+mNuiA+IHRhXCA7CivpjZwgPiBrYVwgOwor6Y2NID4gdG9cIDsKK+mNiCA+IGVpXCA7CivpjLsgPiBidVwgOwor6YyuID4ga29cIDsKK+mMpCA+IGtpXCA7CivpjKEgPiBraVwgOwor6YyNID4gaGlcIDsKK+mLuiA+IGVuXCA7Civpi7AgPiByaVwgOwor6YujID4geWFcIDsKK+mLmCA+IGthXCA7Civpi4YgPiBpblwgOwor6Yq8ID4gc2FcIDsKK+mKsyA+IGVpXCA7CivpiqggPiBhblwgOwor6YqfID4gc2FcIDsKK+mJoCA+IGVpXCA7CivpiY0gPiBoaVwgOwor6Yi5ID4gaGlcIDsKK+mItyA+IGtvXCA7CivpiKkgPiByb1wgOwor6YimID4gdGFcIDsKK+mIpSA+IGthXCA7CivpiJ0gPiBpblwgOwor6YiYID4gZ2lcIDsKK+mIhyA+IGh1XCA7CivpiIYgPiBlblwgOwor6YiAID4gaGFcIDsKK+mHuSA+IGpvXCA7Civph7cgPiB0b1wgOwor6Ye1ID4gc2FcIDsKK+mHoSA+IGZ1XCA7Civph5AgPiByaVwgOwor6Ya/ID4gYmlcIDsKK+mGvCA+IGVuXCA7CivphqggPiByaVwgOwor6YahID4gc2FcIDsKK+mGniA+IHVuXCA7CivphpYgPiB1blwgOwor6YaQID4ga29cIDsKK+mGgyA+IGVuXCA7CivphbogPiBob1wgOwor6YW0ID4gdG9cIDsKK+mFsyA+IGluXCA7CivphaUgPiBzb1wgOwor6YWkID4ga29cIDsKK+mFoiA+IHN1XCA7CivphaEgPiB0YVwgOwor6YWXID4ga3VcIDsKK+mFkyA+IGVuXCA7CivphYggPiByaVwgOwor6YSxID4gaGFcIDsKK+mEoiA+IGVuXCA7CivphKAgPiBrb1wgOwor6YScID4gaHVcIDsKK+mEliA+IHVuXCA7CivphIggPiBraVwgOwor6YSGID4gdW5cIDsKK+mEhSA+IGd1XCA7Civpg78gPiBiaVwgOwor6YO+ID4gZW5cIDsKK+mDtiA+IGJ1XCA7Civpg6sgPiBoaVwgOwor6YOiID4gZWlcIDsKK+mDmyA+IGZ1XCA7Civpg5kgPiBodVwgOwor6YKzID4gaGlcIDsKK+mCkCA+IHJpXCA7Civpgo8gPiByYVwgOwor6YKHID4gamlcIDsKK+mBoSA+IHNvXCA7CivpgZAgPiBrYVwgOwor6YC+ID4geXVcIDsKK+mAuiA+IGVuXCA7CivpgLUgPiBraVwgOwor6YCYID4gZ2lcIDsKK+mAiyA+IGhvXCA7Civov7EgPiB0YVwgOwor6L+sID4gb3VcIDsKK+i/qSA+IGppXCA7Civov5UgPiBnb1wgOwor6L+TID4gZ2FcIDsKK+i/kCA+IHVuXCA7Civov4sgPiBvdVwgOwor6L6kID4gamlcIDsKK+i+nSA+IGppXCA7CivovaQgPiByb1wgOwor6L2hID4gaGlcIDsKK+i9nSA+IHlvXCA7CivovZwgPiBqaVwgOwor6L2FID4gZW5cIDsKK+i9gCA+IG9uXCA7CivovLggPiB5dVwgOwor6LygID4ga2FcIDsKK+i8lCA+IGZ1XCA7CivovIUgPiByb1wgOwor6LyAID4gamlcIDsKK+i7uyA+IGthXCA7Civou7EgPiBrb1wgOwor6LuuID4gb3VcIDsKK+i7jCA+IGtpXCA7Civou4MgPiB0YVwgOwor6LuAID4ga3VcIDsKK+i6siA+IHRhXCA7CivourEgPiB0YVwgOwor6LqvID4ga3VcIDsKK+i6myA+IGVpXCA7CivoupcgPiBlaVwgOwor6LmeID4ga2lcIDsKK+i5iSA+IHNhXCA7CivouL0gPiBrdVwgOwor6Li3ID4gdGFcIDsKK+i4piA+IGtpXCA7CivouKAgPiBlblwgOwor6LiRID4ga2lcIDsKK+i3vyA+IHRvXCA7Civot70gPiBraVwgOwor6Le6ID4gdGFcIDsKK+i3rCA+IGtpXCA7Civot6ggPiBrb1wgOwor6LelID4gdGFcIDsKK+i3lyA+IGZ1XCA7Civot5QgPiBrdVwgOwor6LePID4ga2FcIDsKK+i3jiA+IHRhXCA7Civot4cgPiBlaVwgOwor6LeCID4ga2lcIDsKK+i2uiA+IGZ1XCA7Civota4gPiBrYVwgOwor6LWfID4gaW5cIDsKK+i1kSA+IGhpXCA7CivotI8gPiBlaVwgOwor6LSHID4gaW5cIDsKK+izuyA+IGZ1XCA7Civos6YgPiBmdVwgOwor6LOPID4gZWlcIDsKK+iziCA+IGtvXCA7Civos4IgPiByb1wgOwor6LOBID4gaGlcIDsKK+izgCA+IGdhXCA7CivosrMgPiBuaVwgOwor6LKuID4gbmlcIDsKK+iylCA+IGhpXCA7CivospAgPiB5dVwgOwor6LKNID4gcmlcIDsKK+ixviA+IGhpXCA7CivosbwgPiBoaVwgOwor6LGtID4ga2FcIDsKK+ixqCA+IGtpXCA7CivosZ0gPiBoYVwgOwor6LGZID4gZ2lcIDsKK+ixlyA+IGthXCA7CivosZQgPiBlblwgOwor6LGTID4gZW5cIDsKK+ixjiA+IGp1XCA7CivosYwgPiBlblwgOwor6LGIID4ga2lcIDsKK+iwuiA+IGthXCA7CivorpQgPiBpblwgOwor6K6PID4gZWlcIDsKK+iujCA+IGVuXCA7CivoroYgPiBlaVwgOwor6K6EID4gcnVcIDsKK+itrSA+IGtpXCA7CivorZwgPiBmdVwgOwor6K2SID4gaGFcIDsKK+itjyA+IGtpXCA7CivorYwgPiBrYVwgOwor6K2GID4ga2lcIDsKK+itgyA+IGt1XCA7CivorYEgPiBrYVwgOwor6Ky8ID4ga29cIDsKK+issyA+IG91XCA7CivorKggPiBib1wgOwor6KyMID4ga2FcIDsKK+irsyA+IGFuXCA7Civoq7EgPiBraVwgOwor6KutID4geXVcIDsKK+irmyA+IHl1XCA7Civoq4YgPiBraVwgOwor6Kq5ID4gaGlcIDsKK+iqpyA+IGhvXCA7CivoqqMgPiBmdVwgOwor6KqSID4ga2lcIDsKK+iqkCA+IGdhXCA7CivoqosgPiBraVwgOwor6KqAID4gamlcIDsKK+iprSA+IGtpXCA7CivoqasgPiB0YVwgOwor6KmhID4ga3VcIDsKK+ipoCA+IGVpXCA7CivoqZsgPiBzb1wgOwor6KmWID4gaGlcIDsKK+ipkSA+IHRhXCA7CivoqZAgPiBzYVwgOwor6KmNID4gZWlcIDsKK+ipiCA+IHJpXCA7CivoqYEgPiBrb1wgOwor6Ki2ID4ga2FcIDsKK+ioryA+IHNhXCA7CivoqI8gPiBrdVwgOwor6KiDID4gZnVcIDsKK+inrSA+IGtpXCA7Civop5ogPiBrb1wgOwor6KeVID4gc29cIDsKK+imvCA+IHJhXCA7CivoprYgPiByYVwgOwor6KawID4gc29cIDsKK+imrCA+IGtpXCA7CivopqkgPiB0b1wgOwor6KamID4geXVcIDsKK+immSA+IHJhXCA7Civopo8gPiBraVwgOwor6KaKID4ga2lcIDsKK+imiSA+IGtpXCA7CivopocgPiBoYVwgOwor6KWjID4gaGlcIDsKK+iktSA+IHJpXCA7CivopLIgPiBrb1wgOwor6KSoID4gc2FcIDsKK+iklSA+IHl1XCA7Civoo7kgPiBrYVwgOwor6KO3ID4gZW5cIDsKK+ijqCA+IGhpXCA7Civoo58gPiBzYVwgOwor6KOUID4gZWlcIDsKK+ijgCA+IGluXCA7Civoor0gPiBqb1wgOwor6KKuID4gbmVcIDsKK+iimSA+IGhhXCA7CivoooggPiBrYVwgOwor6KKBID4gZW5cIDsKK+ihuSA+IGtpXCA7CivooaIgPiBrdVwgOwor6KGaID4ga29cIDsKK+ihjSA+IGVuXCA7CivooYggPiBqaVwgOwor6KC5ID4gdG9cIDsKK+igsSA+IGtvXCA7CivooKcgPiB0b1wgOwor6KCVID4gZGFcIDsKK+igkSA+IGVpXCA7CivooIMgPiByYVwgOwor6J+rID4gaW5cIDsKK+ifoyA+IGtpXCA7Civon6IgPiBraVwgOwor6J6+ID4gaW5cIDsKK+ieniA+IGJhXCA7CivonpggPiBnaVwgOwor6J24ID4ga2FcIDsKK+idtCA+IGtvXCA7Civona8gPiBlblwgOwor6J2dID4gZW5cIDsKK+idmCA+IGVuXCA7CivonZMgPiB5dVwgOwor6J2MID4ga2FcIDsKK+icvyA+IGVuXCA7CivonL4gPiBrYVwgOwor6JyxID4gaGlcIDsKK+icniA+IGtpXCA7CivonJogPiBoaVwgOwor6JySID4gZW5cIDsKK+icjiA+IGVuXCA7CivonIogPiByaVwgOwor6JyJID4gZnVcIDsKK+iciCA+IGdvXCA7CivonIUgPiBodVwgOwor6Ju+ID4gZ2FcIDsKK+ibhCA+IGtvXCA7CivomrkgPiBodVwgOwor6Jq1ID4ga2FcIDsKK+iarSA+IGppXCA7CivomqggPiBodVwgOwor6JqcID4ga2FcIDsKK+iamiA+IGtpXCA7CivompMgPiBpblwgOwor6JqRID4ga2lcIDsKK+iajSA+IGhpXCA7CivombogPiBraVwgOwor6JmnID4ga2lcIDsKK+iZnSA+IGtvXCA7CivomZggPiBzYVwgOwor6JmWID4ga29cIDsKK+iZjSA+IGtvXCA7CivomYIgPiByb1wgOwor6JmBID4ga2lcIDsKK+iYvyA+IHJhXCA7CivomLwgPiBiaVwgOwor6Ji6ID4gcmlcIDsKK+iYtiA+IGdpXCA7CivomKcgPiBrdVwgOwor6JihID4gb3VcIDsKK+iYmSA+IGVpXCA7CivomJMgPiBzb1wgOwor6JiRID4gbWFcIDsKK+iYjiA+IGtpXCA7CivomIogPiB1blwgOwor6JiEID4ga2lcIDsKK+iXuyA+IG1vXCA7Civol7kgPiBhaVwgOwor6Je0ID4gdW5cIDsKK+iXpiA+IGJhXCA7Civolr8gPiBnaVwgOwor6Ja3ID4ganVcIDsKK+iWlyA+IGVuXCA7CivoloYgPiBhaVwgOwor6JaAID4gdW5cIDsKK+iVtyA+IHlvXCA7CivolbAgPiB1blwgOwor6JWgID4gam9cIDsKK+iVnCA+IGhpXCA7CivolZMgPiB1blwgOwor6JS0ID4gbWFcIDsKK+iUrCA+IHNvXCA7CivolKsgPiBlblwgOwor6JSiID4gaGFcIDsKK+iTmSA+IHphXCA7Civok5YgPiBoaVwgOwor6JOPID4gcmFcIDsKK+iTjCA+IHNhXCA7Civok4ogPiBvdVwgOwor6JK9ID4gb25cIDsKK+iSsSA+IGhvXCA7CivokqkgPiBzb1wgOwor6JKeID4gcmlcIDsKK+iSlSA+IHVuXCA7Civoka0gPiBrYVwgOwor6JGrID4ga29cIDsKK+iRqSA+IGhhXCA7CivokYogPiBhblwgOwor6JGGID4gaG9cIDsKK+iQuCA+IHl1XCA7CivokLUgPiB3YVwgOwor6JCTID4gZ2lcIDsKK+iQhiA+IGhpXCA7CivokIEgPiBraVwgOwor6I+4ID4gZW5cIDsKK+iPtCA+IGFuXCA7Civoj7IgPiBoaVwgOwor6I+wID4ga29cIDsKK+iPoCA+IGhhXCA7Civoj58gPiB0b1wgOwor6I+PID4ga2FcIDsKK+iPhyA+IGtvXCA7Civoj4AgPiBlblwgOwor6I61ID4gdG9cIDsKK+iOqiA+IGdhXCA7CivojqkgPiBodVwgOwor6I6dID4gc2FcIDsKK+iOmiA+IGVuXCA7Civojo4gPiBzYVwgOwor6I6GID4gaHVcIDsKK+iOhSA+IHJpXCA7CivojbwgPiB0b1wgOwor6I2wID4gdG9cIDsKK+iNlCA+IHJpXCA7CivojYIgPiBrYVwgOwor6Iy1ID4gaW5cIDsKK+iMsiA+IGppXCA7CivojLAgPiB5dVwgOwor6IyjID4gZ29cIDsKK+iMmCA+IHJpXCA7Civoi70gPiBrb1wgOwor6Iu7ID4gZnVcIDsKK+iLtCA+IHNvXCA7Civoi6QgPiBoaVwgOwor6Iq+ID4gaGlcIDsKK+iKuiA+IG91XCA7CivoirAgPiBraVwgOwor6IqtID4gYmFcIDsKK+iKqiA+IGtpXCA7CivoiqYgPiByb1wgOwor6IqZID4gZnVcIDsKK+iKmCA+IGhpXCA7CivoipQgPiBraVwgOwor6IqRID4ga2lcIDsKK+iKiCA+IGJhXCA7CivoibcgPiBlblwgOwor6ImqID4gcm9cIDsKK+iJpCA+IGdpXCA7CivoiaMgPiByb1wgOwor6ImWID4gc2FcIDsKK+iJhSA+IHlvXCA7CivoiYMgPiByaVwgOwor6Ii4ID4ga2FcIDsKK+iIriA+IHJvXCA7CivoiJcgPiBob1wgOwor6IiWID4gaG9cIDsKK+iIkiA+IGpvXCA7CivoiIEgPiB5b1wgOwor6Ie+ID4geXVcIDsKK+iHniA+IGt1XCA7Civoh50gPiByYVwgOwor6IeZID4gZW5cIDsKK+iHgiA+IGhpXCA7CivohrQgPiBrb1wgOwor6IapID4gamlcIDsKK+iGhiA+IHNvXCA7CivohbQgPiB5dVwgOwor6IWhID4gcmFcIDsKK+iFlyA+IGhpXCA7CivohZMgPiBoaVwgOwor6IS+ID4gaGlcIDsKK+iEtSA+IGtvXCA7CivohK8gPiBob1wgOwor6ISeID4gc2FcIDsKK+iEnCA+IGp1XCA7Civog7kgPiBqaVwgOwor6IOvID4ga29cIDsKK+iDrSA+IGluXCA7Civog5kgPiBzb1wgOwor6IOVID4gaHVcIDsKK+iDjSA+IGtvXCA7Civog4ogPiBrdVwgOwor6IK5ID4gaGlcIDsKK+iCniA+IHNhXCA7CivogpogPiB0b1wgOwor6IGtID4ga2lcIDsKK+iAuiA+IHVuXCA7CivogLYgPiB5YVwgOwor6IChID4gam9cIDsKK+iAniA+IGthXCA7CivogJkgPiBoYVwgOwor6ICYID4gdW5cIDsKK+iAjyA+IGppXCA7CivogI0gPiBzYVwgOwor6ICMID4gamlcIDsKK+iAhiA+IGtpXCA7Civnv6wgPiBraVwgOwor57+hID4gaGlcIDsKK+e+siA+IGdpXCA7Civnvq0gPiB5dVwgOwor576WID4ga29cIDsKK+e+iyA+IGJhXCA7CivnvoggPiBraVwgOwor576HID4ga2lcIDsKK+e+hiA+IGhpXCA7CivnvbcgPiBoaVwgOwor572oID4gYW5cIDsKK+e9piA+IGh1XCA7CivnvZ8gPiBrb1wgOwor572bID4gcm9cIDsKK+e9mCA+IGZ1XCA7CivnvY8gPiByb1wgOwor572MID4gb3VcIDsKK+e9gyA+IG91XCA7CivnvLsgPiBmdVwgOwor57qTID4gZWlcIDsKK+e6kSA+IHJvXCA7CivnuacgPiB1blwgOwor57mlID4ga2lcIDsKK+e5hCA+IGVpXCA7CivnuLsgPiBiaVwgOwor57i3ID4gcnVcIDsKK+e4ryA+IGVuXCA7CivnuK0gPiByaVwgOwor57icID4gaW5cIDsKK+e4lSA+IHVuXCA7CivnuIogPiBlaVwgOwor57iIID4gZWlcIDsKK+e4gCA+IGthXCA7Civnt6MgPiBlblwgOwor57eLID4gaGlcIDsKK+e2rCA+IGp1XCA7CivntqYgPiBraVwgOwor57aeID4gdGFcIDsKK+e2liA+IGVuXCA7Civnta4gPiBqb1wgOwor57WqID4gaW5cIDsKK+e1pSA+IGhpXCA7CivntZ0gPiBrdVwgOwor57WHID4ga3VcIDsKK+e0vSA+IHRhXCA7CivntKYgPiBoYVwgOwor57ScID4gdW5cIDsKK+e0lyA+IHNhXCA7CivntJUgPiBoaVwgOwor57OvID4gZGFcIDsKK+ezoiA+IGJvXCA7Civns5wgPiBiaVwgOwor57K/ID4ga2FcIDsKK+eyqyA+IGppXCA7CivnspAgPiByb1wgOwor57KPID4gdGFcIDsKK+eyhiA+IHNhXCA7CivnsoMgPiBoaVwgOwor57G5ID4gam9cIDsKK+exsiA+IHl1XCA7Civnsa4gPiByYVwgOwor57GsID4gcmlcIDsKK+exnSA+IGVpXCA7CivnsZogPiByb1wgOwor57C4ID4gaGFcIDsKK+ewrCA+IHJvXCA7CivnsKMgPiBraVwgOwor57CgID4gaHVcIDsKK+ewlCA+IHNhXCA7CivnsJEgPiBzYVwgOwor57CLID4ga2lcIDsKK+ewhCA+IGtvXCA7CivnsIIgPiBrZVwgOwor56+2ID4gZW5cIDsKK+evmiA+IGhpXCA7Civnr5QgPiB1blwgOwor5662ID4ga29cIDsKK+eupSA+IGhhXCA7CivnrpsgPiBrb1wgOwor566VID4ga2lcIDsKK+eujiA+IGtvXCA7CivnraAgPiBpblwgOwor562OID4gam9cIDsKK+estCA+IGthXCA7CivnrLMgPiBrYVwgOwor56yvID4gZG9cIDsKK+esnyA+IGtvXCA7CivnrIYgPiBoYVwgOwor56usID4ga3VcIDsKK+erqiA+IGp1XCA7Civnq6kgPiBnaVwgOwor56uSID4ga2lcIDsKK+equSA+IGdvXCA7CivnqrMgPiB3YVwgOwor56qsID4geXVcIDsKK+eqqiA+IHdhXCA7CivnqqkgPiBrYVwgOwor56qgID4ga2FcIDsKK+eqiiA+IHdhXCA7CivnqakgPiBvblwgOwor56mlID4geW9cIDsKK+epoiA+IGFpXCA7CivnqZYgPiBraVwgOwor56mOID4gZWlcIDsKK+epjCA+IHNvXCA7CivnqLMgPiBvblwgOwor56ieID4ga2FcIDsKK+eomCA+IGtpXCA7CivnqIwgPiB0b1wgOwor56iDID4gaHVcIDsKK+enpyA+IG91XCA7Civnp6AgPiBoaVwgOwor56efID4gc29cIDsKK+enlSA+IGhpXCA7Civnpr4gPiBrYVwgOwor56aoID4ga2lcIDsKK+empyA+IGtpXCA7CivnpqEgPiBiYVwgOwor56acID4gZWlcIDsKK+emkSA+IGd1XCA7Civnpo0gPiBrYVwgOwor56aLID4gaW5cIDsKK+eluyA+IGtvXCA7CivnpbogPiBraVwgOwor56WcID4ga29cIDsKK+elmiA+IHNvXCA7CivnpZkgPiBtaVwgOwor56WUID4gaHVcIDsKK+elhyA+IGtpXCA7CivnpYEgPiBraVwgOwor56SgID4gamlcIDsKK+eknCA+IHlvXCA7CivnpJIgPiBnaVwgOwor56OvID4ga2lcIDsKK+ejpCA+IGluXCA7Civno6AgPiByb1wgOwor56OSID4gaW5cIDsKK+ejiyA+IHNhXCA7Civno4EgPiBqaVwgOwor56K8ID4gYmFcIDsKK+eirCA+IGthXCA7CivnoqQgPiBlaVwgOwor56KVID4ga2lcIDsKK+eilCA+IGJ1XCA7CivnooYgPiBoYVwgOwor56KBID4gZ29cIDsKK+ehqiA+IGdpXCA7CivnoLUgPiBvdVwgOwor56CuID4gZG9cIDsKK+egoyA+IHRhXCA7CivnoKIgPiByYVwgOwor56CSID4gaGlcIDsKK+egkSA+IGdhXCA7CivnoIYgPiBodVwgOwor55+sID4gc2FcIDsKK+efqSA+IGt1XCA7Civnn5EgPiByb1wgOwor556/ID4ga3VcIDsKK+eevSA+IGtvXCA7CivnnrkgPiBhaVwgOwor5562ID4ga2lcIDsKK+eeliA+IGVpXCA7CivnnoYgPiBraVwgOwor552/ID4gZWlcIDsKK+eduSA+IHRvXCA7CivnnbEgPiBrYVwgOwor552iID4ga2lcIDsKK+edjiA+IGtpXCA7CivnnYogPiBlblwgOwor552CID4gYmlcIDsKK+ecrSA+IGtpXCA7CivnnJcgPiBrdVwgOwor55uxID4ga3VcIDsKK+ebrCA+IGtvXCA7Civnm6cgPiByb1wgOwor55umID4gb3VcIDsKK+ebmSA+IGZ1XCA7Civnm44gPiBvdVwgOwor55uJID4ga2FcIDsKK+ebiCA+IGVpXCA7Civnm4EgPiBlaVwgOwor55q3ID4ga29cIDsKK+eapyA+IGFpXCA7CivnmqQgPiBoYVwgOwor55qIID4ga2lcIDsKK+eZryA+IGt1XCA7Civnma4gPiBpblwgOwor55mtID4gZWlcIDsKK+eZkiA+IHl1XCA7CivnmYogPiBpblwgOwor55i4ID4ga2FcIDsKK+eYpSA+IHNhXCA7CivnmJ8gPiBvblwgOwor55ieID4gZWlcIDsKK+eYliA+IGluXCA7CivnmJUgPiBrYVwgOwor55iPID4gdG9cIDsKK+eYiSA+IHl1XCA7CivnmIAgPiB5b1wgOwor55e8ID4ga29cIDsKK+eXuSA+IGhpXCA7Civnl7IgPiBtYVwgOwor55exID4gaGlcIDsKK+eXpyA+IHNhXCA7Civnl6QgPiBzYVwgOwor55eiID4gcmlcIDsKK+eXoSA+IGhvXCA7Civnl54gPiBoaVwgOwor55eUID4gamlcIDsKK+eXhCA+IHNhXCA7Civnl4IgPiBrYVwgOwor55eAID4ga3VcIDsKK+eWvyA+IGhpXCA7CivnlqQgPiBoYVwgOwor55acID4ga2FcIDsKK+eWlSA+IGhpXCA7Civnlo8gPiBzb1wgOwor55W/ID4ga2lcIDsKK+eVuCA+IGtpXCA7CivnlbIgPiB5b1wgOwor55WtID4geW9cIDsKK+eVrCA+IHlvXCA7CivnlZ0gPiBzZVwgOwor55WSID4gaG9cIDsKK+eViSA+IGZ1XCA7CivnlYcgPiBpblwgOwor55WGID4gaG9cIDsKK+eVgCA+IGhpXCA7CivnlKsgPiBob1wgOwor55SWID4gb3VcIDsKK+eUkiA+IGJ1XCA7CivnlIwgPiBvdVwgOwor55OvID4gb3VcIDsKK+eTriA+IG91XCA7Civnk6AgPiBrb1wgOwor55OUID4gZWlcIDsKK+eTkCA+IHJvXCA7Civnkr0gPiBqaVwgOwor55K1ID4geW9cIDsKK+eSpiA+IGFpXCA7CivnkqMgPiBraVwgOwor55KfID4gZWlcIDsKK+eSkSA+IGJ1XCA7CivnkpAgPiByb1wgOwor55KDID4gcmlcIDsKK+eRsyA+IHNhXCA7CivnkaogPiBiYVwgOwor55GpID4gZWlcIDsKK+eRoyA+IHNhXCA7CivnkZwgPiB5dVwgOwor55GbID4gZWlcIDsKK+eRmiA+IGtvXCA7CivnkZcgPiBlblwgOwor55C2ID4gaGFcIDsKK+eQtSA+IGJpXCA7CivnkLAgPiBlblwgOwor55CsID4gZW5cIDsKK+eQqiA+IGtpXCA7CivnkKYgPiBraVwgOwor55ClID4ga29cIDsKK+eQkSA+IHNhXCA7CivnkIogPiB5YVwgOwor54+4ID4gZ29cIDsKK+ePtyA+IGJ1XCA7Civnj7QgPiBnYVwgOwor54+xID4gZWlcIDsKK+ePpSA+IGppXCA7Civnj50gPiBrdVwgOwor54+CID4ga2FcIDsKK+eOuyA+IGhhXCA7Civnjp4gPiBodVwgOwor546YID4ga2lcIDsKK+eOhiA+IGppXCA7CivnjoAgPiByYVwgOwor5428ID4gYmlcIDsKK+eNuSA+IHJvXCA7CivnjKggPiBlblwgOwor54ynID4ga2FcIDsKK+eMpCA+IGtpXCA7CivnjKIgPiBrb1wgOwor54yTID4ga2FcIDsKK+eMkiA+IGVuXCA7CivnjIcgPiBvdVwgOwor54uzID4geW9cIDsKK+eLlSA+IG91XCA7Civni5IgPiBoaVwgOwor54uJID4gaGlcIDsKK+eLgSA+IGluXCA7CivniqcgPiBnaVwgOwor54qTID4gc3VcIDsKK+eKgiA+IHJpXCA7CivnioEgPiByaVwgOwor54m+ID4gZ29cIDsKK+eJsSA+IGthXCA7Civnia8gPiBrb1wgOwor54mrID4ga2FcIDsKK+eJoCA+IHRhXCA7CivniYEgPiBrYVwgOwor54i+ID4gamlcIDsKK+eIuSA+IHRhXCA7CivniLggPiBoYVwgOwor54iwID4gZW5cIDsKK+eIrCA+IGhhXCA7CivniJMgPiBlblwgOwor54esID4ga2lcIDsKK+eHhCA+IGVuXCA7CivnhrogPiBraVwgOwor54a5ID4ga2lcIDsKK+eGsCA+IG91XCA7CivnhpkgPiBraVwgOwor54aIID4ga2lcIDsKK+eGhSA+IHVuXCA7CivnhaYgPiBrdVwgOwor54WVID4ga2lcIDsKK+eFkCA+IGVpXCA7CivnhYcgPiBraVwgOwor54WGID4ga2FcIDsKK+eEuCA+IGtvXCA7CivnhLEgPiBlblwgOwor54SwID4gZW5cIDsKK+eEiSA+IGVuXCA7Civng5MgPiBlaVwgOwor54KsID4ga29cIDsKK+eCiSA+IHJvXCA7CivngoEgPiBraVwgOwor54GpID4gZW5cIDsKK+eBpyA+IGVuXCA7CivngZ4gPiBoYVwgOwor54GVID4gcmlcIDsKK+eBlCA+IGVuXCA7CivngY4gPiBlblwgOwor54GIID4ga3VcIDsKK+eAtCA+IGVpXCA7CivngLAgPiBiaVwgOwor54CvID4gZWlcIDsKK+eAoCA+IGVpXCA7CivngJsgPiBlaVwgOwor54CYID4gcm9cIDsKK+eAhyA+IG91XCA7CivngIUgPiBlaVwgOwor5r+eID4gaGlcIDsKK+a/miA+IGVpXCA7CivmvqYgPiB5b1wgOwor5r6QID4gdW5cIDsKK+a9vSA+IGhvXCA7CivmvZ4gPiByb1wgOwor5r2ZID4ga2lcIDsKK+a9gSA+IGVpXCA7CivmvKYgPiBnaVwgOwor5ryaID4gb3VcIDsKK+a8kyA+IHJpXCA7CivmvIogPiBydVwgOwor5ru5ID4ga29cIDsKK+a7uCA+IGtvXCA7Civmu7cgPiByb1wgOwor5rusID4ga29cIDsKK+a7jyA+IGh1XCA7Civmu4sgPiBqaVwgOwor5ruKID4ga2lcIDsKK+a7gyA+IG91XCA7CivmurMgPiB1blwgOwor5rqrID4gb25cIDsKK+a6piA+IG1pXCA7CivmuqUgPiBob1wgOwor5rqgID4gc2FcIDsKK+a6iCA+IGtpXCA7Civmua4gPiBpblwgOwor5rmEID4gYmlcIDsKK+a4vCA+IGJpXCA7CivmuLYgPiBlaVwgOwor5riuID4ga2FcIDsKK+a4oyA+IHNhXCA7CivmuJ0gPiB5dVwgOwor5riVID4gZW5cIDsKK+a4iiA+IGVuXCA7CivmuIQgPiBoaVwgOwor5rekID4geW9cIDsKK+a3oCA+IGhpXCA7Civmt50gPiBoaVwgOwor5reHID4ga2lcIDsKK+a2uSA+IHdhXCA7CivmtrQgPiBlblwgOwor5raCID4gdG9cIDsKK+a1ryA+IGdvXCA7CivmtLwgPiBhaVwgOwor5rS5ID4gZW5cIDsKK+a0syA+IGpvXCA7CivmtLEgPiBqaVwgOwor5rSPID4gamlcIDsKK+a0jiA+IGtpXCA7CivmtIcgPiBpblwgOwor5rOxID4gb3VcIDsKK+aznSA+IHNvXCA7Civms5MgPiBvdVwgOwor5rOSID4ga29cIDsKK+ayvSA+IGtvXCA7CivmsrIgPiB0YVwgOwor5rKxID4gdGFcIDsKK+aymCA+IGhpXCA7Civmso0gPiBnb1wgOwor5rKHID4gZW5cIDsKK+aygiA+IGtpXCA7CivmsbsgPiBrb1wgOwor5rGqID4gb3VcIDsKK+axiiA+IHNhXCA7CivmsL8gPiBraVwgOwor5rCzID4gdW5cIDsKK+awsiA+IHVuXCA7CivmsKggPiBhblwgOwor5rCkID4gaW5cIDsKK+awlCA+IGtpXCA7CivmsI0gPiBrdVwgOwor5rCCID4gcmlcIDsKK+avuSA+IHl1XCA7Civmr6YgPiBqaVwgOwor5q+WID4gaGlcIDsKK+aviyA+IGJ1XCA7Civmr4UgPiBraVwgOwor5q+BID4ga2lcIDsKK+avgCA+IGtpXCA7CivmrrkgPiBlaVwgOwor5q63ID4gaW5cIDsKK+autCA+IG91XCA7CivmrqwgPiB0b1wgOwor5q6qID4gZWlcIDsKK+auniA+IGluXCA7CivmroIgPiBzb1wgOwor5q2nID4ga2lcIDsKK+atpSA+IGhvXCA7CivmrZYgPiBraVwgOwor5qy4ID4gYWlcIDsKK+asqCA+IGt1XCA7CivmrKcgPiBvdVwgOwor5qykID4geW9cIDsKK+asmyA+IGhhXCA7CivmrI8gPiByYVwgOwor5qu9ID4gaW5cIDsKK+arsiA+IHlvXCA7Civmq6ggPiByb1wgOwor5queID4gZW5cIDsKK+arkyA+IHJvXCA7Civmq4MgPiBraVwgOwor5qq/ID4gZW5cIDsKK+aqvSA+IGppXCA7CivmqrwgPiBpblwgOwor5qqxID4ga2lcIDsKK+aqpSA+IGdpXCA7Civmqp8gPiBrYVwgOwor5qqbID4gdGFcIDsKK+aqgyA+IGluXCA7CivmqbEgPiB6dVwgOwor5qmrID4gb3VcIDsKK+apoiA+IGRhXCA7CivmqZIgPiB1blwgOwor5qmGID4gYnVcIDsKK+aphSA+IGJvXCA7CivmqLsgPiBraVwgOwor5qiyID4gamlcIDsKK+aonSA+IHNhXCA7Civmp7sgPiBraVwgOwor5qelID4gZWlcIDsKK+anjiA+IHNhXCA7Civmpr8gPiBraVwgOwor5qauID4gZWlcIDsKK+amqCA+IHNhXCA7CivmpqEgPiBzb1wgOwor5qaYID4ga3VcIDsKK+amkSA+IGZ1XCA7CivmpoYgPiB5dVwgOwor5qW5ID4gZWlcIDsKK+alsCA+IHl1XCA7CivmpaMgPiBiaVwgOwor5qWhID4geXVcIDsKK+alnCA+IGtvXCA7CivmpZsgPiBrb1wgOwor5qWaID4gc29cIDsKK+allSA+IGRhXCA7CivmpYIgPiBzYVwgOwor5qS7ID4gZW5cIDsKK+aktSA+IGthXCA7CivmpLAgPiB5YVwgOwor5qOqID4gZW5cIDsKK+ajnSA+IGtvXCA7Civmo5wgPiB5b1wgOwor5qOQID4gaGlcIDsKK+ajiyA+IGtpXCA7Civmo4ogPiBraVwgOwor5qK2ID4gYmlcIDsKK+aisyA+IHNvXCA7Civmoq0gPiBzYVwgOwor5qKpID4gcmlcIDsKK+aipyA+IGdvXCA7CivmoqYgPiBtdVwgOwor5qKbID4gZGFcIDsKK+aijiA+IG91XCA7CivmobQgPiBmdVwgOwor5qGrID4gc2FcIDsKK+ahlyA+IHRhXCA7CivmoY0gPiBrb1wgOwor5qCtID4gamlcIDsKK+agqSA+IGt1XCA7CivmoKcgPiBlaVwgOwor5p+yID4gaGlcIDsKK+afsCA+IG5hXCA7Civmn68gPiBrYVwgOwor5p+nID4ga29cIDsKK+afpSA+IHNhXCA7Civmn6QgPiBzYVwgOwor5p+hID4gZWlcIDsKK+afjiA+IGZ1XCA7Civmn4UgPiBqaVwgOwor5p+BID4gdGFcIDsKK+afgCA+IGhpXCA7CivmnrsgPiBlaVwgOwor5p64ID4ga3VcIDsKK+aesyA+IGtpXCA7CivmnqYgPiByb1wgOwor5p6ZID4gZ2FcIDsKK+aekSA+IGtvXCA7Civmno4gPiBodVwgOwor5p6JID4gb3VcIDsKK+aehyA+IGhpXCA7CivmnbcgPiBoYVwgOwor5p2eID4ga29cIDsKK+adnCA+IGRvXCA7CivmnYggPiBzYVwgOwor5py2ID4gZGFcIDsKK+actSA+IGRhXCA7CivmnKAgPiBlaVwgOwor5pyeID4ga2lcIDsKK+acjyA+IGhpXCA7CivmnIcgPiBoaVwgOwor5pu9ID4gem9cIDsKK+abtSA+IGVpXCA7Civmm7EgPiBvdVwgOwor5pumID4gZ2lcIDsKK+abliA+IGFpXCA7Civmm4EgPiBraVwgOwor5puAID4gZWlcIDsKK+aavyA+IGtpXCA7CivmmqggPiBraVwgOwor5pqcID4gZnVcIDsKK+aamyA+IHNhXCA7Civmmo4gPiBlaVwgOwor5pqJID4ga2lcIDsKK+aaiCA+IHVuXCA7CivmmoMgPiBoaVwgOwor5pqAID4gb3VcIDsKK+aZvCA+IGVuXCA7CivmmbsgPiBhblwgOwor5pm3ID4ga2lcIDsKK+aZpCA+IGdvXCA7CivmmaEgPiBob1wgOwor5pmeID4ga2lcIDsKK+aZjyA+IGFuXCA7CivmmLkgPiBhaVwgOwor5pi3ID4gb25cIDsKK+aYqyA+IGt1XCA7CivmmJYgPiBlblwgOwor5piIID4ga29cIDsKK+aYgCA+IGluXCA7Civml78gPiBnb1wgOwor5pe5ID4gamlcIDsKK+aXtCA+IGt1XCA7Civml6MgPiBraVwgOwor5pehID4ga2lcIDsKK+aXoCA+IGJ1XCA7Civml58gPiB5b1wgOwor5peOID4gamlcIDsKK+aXiSA+IGZ1XCA7Civml4IgPiBraVwgOwor5padID4ga2FcIDsKK+aVuiA+IGt1XCA7CivmlacgPiBraVwgOwor5pWYID4gam9cIDsKK+aVjSA+IGpvXCA7CivmlYkgPiBiaVwgOwor5pSxID4ga2lcIDsKK+aUsCA+IGtpXCA7CivmlJ4gPiByYVwgOwor5pSWID4gZWlcIDsKK+aTtSA+IG1hXCA7Civmk6kgPiBqdVwgOwor5pK+ID4gdGFcIDsKK+aSrSA+IGhhXCA7Civmkp0gPiBraVwgOwor5pG4ID4gbW9cIDsKK+aRoyA+IHNhXCA7CivmkL0gPiB0YVwgOwor5pC1ID4gb25cIDsKK+aQmSA+IG51XCA7CivmkJMgPiBzYVwgOwor5o+4ID4gc2FcIDsKK+aPtiA+IHlhXCA7Civmj7QgPiBlblwgOwor5o+uID4ga2lcIDsKK+aPnCA+IGVuXCA7Civmj4YgPiBraVwgOwor5o+EID4geXVcIDsKK+aOviA+IGVuXCA7Civmjp4gPiBlblwgOwor5o6OID4ga2lcIDsKK+aNvCA+IGRhXCA7CivmjawgPiBodVwgOwor5o2TID4gc2VcIDsKK+aNkCA+IGVuXCA7CivmjYIgPiBnb1wgOwor5oy8ID4gZGFcIDsKK+aMqyA+IHphXCA7CivmjKogPiBkYVwgOwor5oynID4ga3VcIDsKK+aMkyA+IHRhXCA7CivmjJAgPiBkYVwgOwor5oyJID4gYW5cIDsKK+aLvyA+IGRhXCA7Civmi70gPiBlaVwgOwor5ouXID4gb3VcIDsKK+aLliA+IHRhXCA7Civmi5UgPiB0YVwgOwor5ouPID4gZGFcIDsKK+aLiiA+IGZ1XCA7Civmi4cgPiBib1wgOwor5oq3ID4gaGlcIDsKK+aKsyA+IGppXCA7Civmio4gPiB1blwgOwor5oqKID4gd2FcIDsKK+aJviA+IGthXCA7Civmia8gPiB0YVwgOwor5omgID4gc2FcIDsKK+aJiCA+IGtvXCA7CivmiL0gPiBrb1wgOwor5oi3ID4ga29cIDsKK+aItiA+IGtvXCA7CivmiLEgPiBnaVwgOwor5oijID4ga2lcIDsKK+aIkyA+IGthXCA7CivmiI0gPiBqdVwgOwor5oiKID4gYm9cIDsKK+aHryA+IGZ1XCA7Civmh6cgPiBkYVwgOwor5oemID4gZGFcIDsKK+aHoSA+IGJhXCA7Civmh5UgPiBlblwgOwor5oeKID4gb3VcIDsKK+aGriA+IGJ1XCA7CivmhpwgPiB0YVwgOwor5oaZID4ga2lcIDsKK+aGmCA+IGtpXCA7CivmhY0gPiB1blwgOwor5oWIID4gamlcIDsKK+aEviA+IGtpXCA7CivmhKwgPiBzb1wgOwor5oSrID4gc29cIDsKK+aEqiA+IHVuXCA7CivmhKcgPiBraVwgOwor5oSgID4gdW5cIDsKK+aElCA+IGluXCA7Civmg7IgPiB1blwgOwor5oOwID4gZGFcIDsKK+aDpyA+IGt1XCA7Civmg6IgPiBzYVwgOwor5oOOID4ga2lcIDsKK+aDiCA+IGthXCA7CivmgrEgPiBoaVwgOwor5oKoID4gamlcIDsKK+aCpyA+IHJpXCA7Civmgp4gPiBnb1wgOwor5oKVID4ga2lcIDsKK+aCkSA+IGhvXCA7CivmgoYgPiB5b1wgOwor5oKCID4gaGlcIDsKK+aCgSA+IGVuXCA7CivmgZcgPiBrb1wgOwor5oGVID4gam9cIDsKK+aBkSA+IGtpXCA7CivmgYMgPiBqaVwgOwor5oGBID4gaW5cIDsKK+aAqSA+IGppXCA7CivmgKQgPiBodVwgOwor5oCZID4ga29cIDsKK+aAmCA+IGtvXCA7CivmgJUgPiBoYVwgOwor5b+vID4ga2lcIDsKK+W/rCA+IHlvXCA7Civlv6QgPiBnb1wgOwor5b+iID4gZ29cIDsKK+W+vSA+IGtpXCA7Civlvo0gPiBhaVwgOwor5b6CID4gc29cIDsKK+W9uiA+IG91XCA7CivlvbUgPiB0YVwgOwor5b2MID4gYmlcIDsKK+W8rSA+IGJpXCA7CivlvKkgPiBkb1wgOwor5bynID4ga29cIDsKK+W8oyA+IGh1XCA7CivlvJ0gPiBoYVwgOwor5byWID4gdGVcIDsKK+W8jSA+IG5pXCA7CivlvIcgPiBlblwgOwor5byDID4ga2lcIDsKK+W7tCA+IGluXCA7Civlu64gPiBlaVwgOwor5buhID4gYnVcIDsKK+W7nCA+IHRvXCA7Civlu5ogPiB6dVwgOwor5buVID4gaW5cIDsKK+W7iCA+IGthXCA7Civlur4gPiB5dVwgOwor5bqzID4gaGlcIDsKK+W6ryA+IGhvXCA7Civluq4gPiBpdVwgOwor5bqqID4ga2lcIDsKK+W6jCA+IGdhXCA7CivluosgPiBraVwgOwor5bqAID4gaGlcIDsKK+W5oCA+IGtvXCA7CivluZEgPiBraVwgOwor5bmPID4ga2FcIDsKK+W5gSA+IHN1XCA7CivluL4gPiB0b1wgOwor5biUID4gaGlcIDsKK+W4kSA+IGRvXCA7CivluI0gPiBrb1wgOwor5biKID4gaGFcIDsKK+W4hiA+IGhvXCA7Civlt7MgPiBtaVwgOwor5beZID4ga2lcIDsKK+W3jSA+IGdpXCA7Civlt4sgPiBraVwgOwor5beHID4ga2lcIDsKK+W2tyA+IGdpXCA7CivltrQgPiBhdVwgOwor5basID4gZ2lcIDsKK+W2niA+IHRhXCA7CivltpMgPiBoYVwgOwor5baHID4ga3VcIDsKK+W2gSA+IHJ1XCA7CivltoAgPiB0b1wgOwor5bWzID4gc2FcIDsKK+W1ryA+IHNhXCA7CivltaEgPiBvdVwgOwor5bWfID4ga2lcIDsKK+W1niA+IHRvXCA7CivltZwgPiBraVwgOwor5bWWID4gc2FcIDsKK+W1iyA+IGJpXCA7CivltLMgPiB5dVwgOwor5bSmID4gZW5cIDsKK+W0iyA+IGthXCA7Civls7kgPiB0b1wgOwor5bOyID4gcmlcIDsKK+WzrCA+IGhvXCA7Civls6sgPiB5YVwgOwor5bOpID4gZ2FcIDsKK+WzqCA+IGdhXCA7Civls54gPiBraVwgOwor5bObID4gcmlcIDsKK+WzmSA+IGppXCA7Civls5cgPiBnaVwgOwor5bOWID4gYW5cIDsKK+WzlCA+IGJvXCA7Civls48gPiBqaVwgOwor5bOKID4gaHVcIDsKK+WyuyA+IGppXCA7CivlsrUgPiBrb1wgOwor5bK0ID4ga3VcIDsKK+WyryA+IGhpXCA7Civlsq4gPiB0YVwgOwor5bKoID4gc29cIDsKK+WypSA+IGhhXCA7CivlspQgPiBzYVwgOwor5bKTID4ga2lcIDsKK+WykCA+IGtpXCA7CivlsoggPiBrYVwgOwor5bKGID4gZXVcIDsKK+WxuiA+IGtpXCA7Civlsa4gPiBzYVwgOwor5bGtID4ga2lcIDsKK+WxqCA+IGt1XCA7CivlsaIgPiBydVwgOwor5bGgID4gdG9cIDsKK+WxhCA+IGhpXCA7CivlsYMgPiBraVwgOwor5bGBID4gaGVcIDsKK+WwuSA+IGluXCA7CivlsK8gPiBraVwgOwor5bCuID4gdGFcIDsKK+WwqyA+IG91XCA7CivlsKogPiBvdVwgOwor5bCpID4gb3VcIDsKK+WwoyA+IG91XCA7CivlsKIgPiBvdVwgOwor5bCUID4gamlcIDsKK+WwkyA+IGppXCA7CivlsJIgPiBqaVwgOwor5bCDID4gaHVcIDsKK+WwgCA+IGhhXCA7Civlr7IgPiBnaVwgOwor5a+kID4gZ29cIDsKK+WvoCA+IGt1XCA7Civlr5kgPiB5dVwgOwor5a+DID4gZW5cIDsKK+WusSA+IHNhXCA7CivlrpAgPiBnaVwgOwor5a6OID4gZXVcIDsKK+WuhCA+IGtpXCA7CivlroMgPiB0YVwgOwor5a2+ID4gZWlcIDsKK+WtuiA+IGp1XCA7CivlrbcgPiByaVwgOwor5a21ID4gZnVcIDsKK+WtpSA+IGRvXCA7CivlrZogPiBmdVwgOwor5a2LID4gcmlcIDsKK+WsvyA+IGVuXCA7CivlrL0gPiBlblwgOwor5ay3ID4gYmFcIDsKK+WstCA+IGVpXCA7CivlrLAgPiBlaVwgOwor5ayuID4gZW5cIDsKK+WspCA+IGJhXCA7CivlrKEgPiBhaVwgOwor5ayUID4gaHVcIDsKK+WsjSA+IGJpXCA7CivlrIAgPiBraVwgOwor5au3ID4gdGFcIDsKK+WrtSA+IGJ1XCA7Civlq7QgPiBrb1wgOwor5auuID4ga29cIDsKK+WrrSA+IGtvXCA7Civlq6sgPiBib1wgOwor5aujID4gZW5cIDsKK+WroiA+IGtpXCA7Civlq6AgPiByaVwgOwor5aubID4gZWlcIDsKK+WrlyA+IG91XCA7Civlq5UgPiBlaVwgOwor5auKID4gc29cIDsKK+WqvyA+IGtpXCA7Civlqr0gPiBib1wgOwor5aq6ID4gYmlcIDsKK+WqtCA+IGVuXCA7CivlqrEgPiBldVwgOwor5aqsID4gaG9cIDsKK+WqqiA+IG91XCA7CivlqqkgPiBrb1wgOwor5aqgID4gdGFcIDsKK+WqliA+IGVpXCA7CivlqpUgPiBlblwgOwor5aqQID4ga2lcIDsKK+WqjiA+IHNvXCA7CivlqoQgPiBiaVwgOwor5am9ID4ga2FcIDsKK+WpuiA+IGJ1XCA7CivlqawgPiBpblwgOwor5amjID4gaW5cIDsKK+WpnyA+IGtvXCA7CivlqZMgPiBoaVwgOwor5amQID4gd2FcIDsKK+WpjSA+IGtpXCA7CivlqLggPiBraVwgOwor5aiwID4gamlcIDsKK+WoryA+IGdvXCA7CivlqK0gPiBraVwgOwor5aisID4gYnVcIDsKK+WoqiA+IGdvXCA7CivlqKUgPiBnYVwgOwor5aicID4gZGFcIDsKK+WomyA+IGdvXCA7CivlqJMgPiBiaVwgOwor5aiSID4gYm9cIDsKK+WojCA+IHJpXCA7CivlqIQgPiBydVwgOwor5ae9ID4ga2lcIDsKK+WnuyA+IGluXCA7Civlp7kgPiB0YVwgOwor5ae2ID4gb3VcIDsKK+WnsiA+IGFuXCA7Civlp7EgPiBrYVwgOwor5aesID4ga2lcIDsKK+WnpSA+IGJvXCA7Civlp50gPiBzdVwgOwor5aeOID4gYXVcIDsKK+WnhyA+IGh1XCA7Civlp4YgPiBib1wgOwor5aeBID4ga3VcIDsKK+WngCA+IGthXCA7CivlprwgPiBoaVwgOwor5aa0ID4gZW5cIDsKK+WmriA+IGppXCA7CivlpqUgPiBkYVwgOwor5aakID4geW9cIDsKK+WmoyA+IGhpXCA7Civlpp8gPiBhblwgOwor5aaYID4gdW5cIDsKK+WmkiA+IHRvXCA7CivlposgPiBmdVwgOwor5aaDID4gaGlcIDsKK+WlvCA+IHRhXCA7CivlpbAgPiBoaVwgOwor5aWrID4gaW5cIDsKK+WlnCA+IGhpXCA7CivlpZMgPiB0YVwgOwor5aWEID4gZW5cIDsKK+WkvyA+IGhhXCA7CivlpLggPiBrb1wgOwor5aS2ID4gaGlcIDsKK+WktSA+IGVuXCA7CivlpKUgPiBrYVwgOwor5aSkID4gaW5cIDsKK+WkoSA+IGtpXCA7CivlpJsgPiB0YVwgOwor5aSXID4gZW5cIDsKK+WklCA+IGtpXCA7CivlpJMgPiBrYVwgOwor5aSOID4gc2FcIDsKK+WkgyA+IGtvXCA7Civlo70gPiBqdVwgOwor5aO6ID4ga29cIDsKK+WjqSA+IGhhXCA7Civlo6EgPiBlaVwgOwor5aObID4gZW5cIDsKK+WjmiA+IHJvXCA7Civlo5IgPiBhaVwgOwor5aOIID4gb25cIDsKK+WjhCA+IHlhXCA7CivlorogPiBvdVwgOwor5aKyID4gYm9cIDsKK+WiryA+IGRhXCA7Civloo0gPiBraVwgOwor5aG4ID4gb3VcIDsKK+WhpyA+IGFpXCA7CivloZUgPiBvdVwgOwor5aGRID4gc29cIDsKK+WhkCA+IHNvXCA7CivloYsgPiBlaVwgOwor5aGIID4ga2lcIDsKK+WguCA+IGh1XCA7CivloLcgPiBhblwgOwor5aC2ID4ga3VcIDsKK+WgsyA+IGJpXCA7CivloLAgPiBlblwgOwor5aCsID4geXVcIDsKK+WgoyA+IGd1XCA7CivloJ0gPiBrYVwgOwor5aCZID4gaW5cIDsKK+WgjSA+IHRvXCA7CivloIwgPiBrb1wgOwor5aCBID4ga2FcIDsKK+WfvCA+IGtpXCA7Civln7UgPiB0YVwgOwor5Z+vID4gZW5cIDsKK+WfpyA+IGt1XCA7Civln6QgPiBoaVwgOwor5Z+gID4gZnVcIDsKK+WflCA+IGhvXCA7CivlnrogPiBodVwgOwor5Z6qID4gaGFcIDsKK+WeniA+IHRhXCA7Civlnp0gPiBraVwgOwor5Z6cID4gZGFcIDsKK+WemyA+IGRhXCA7CivlnoAgPiBrb1wgOwor5Z2/ID4gZnVcIDsKK+WdtyA+IGthXCA7CivlnbMgPiBhdVwgOwor5Z2xID4gYXVcIDsKK+WdryA+IGhpXCA7CivlnawgPiBrYVwgOwor5Z2hID4gaGFcIDsKK+WdkiA+IGhpXCA7CivlnLsgPiBraVwgOwor5ZyuID4gaGlcIDsKK+WcqyA+IGF1XCA7CivlnJcgPiB0b1wgOwor5ZyUID4gb3VcIDsKK+WckSA+IGhvXCA7CivlnI4gPiBlblwgOwor5ZumID4gZW5cIDsKK+WbmSA+IGluXCA7Civlm44gPiBzb1wgOwor5ZuMID4gc29cIDsKK+WbiSA+IHJhXCA7CivlmrYgPiBvdVwgOwor5ZqyID4gdGFcIDsKK+WasSA+IGtpXCA7Civlmq0gPiBoaVwgOwor5ZqnID4gcm9cIDsKK+WapSA+IGVuXCA7Civlmp8gPiByaVwgOwor5ZqcID4gYmlcIDsKK+WamCA+IGl1XCA7CivlmpUgPiByb1wgOwor5ZqKID4gaGlcIDsKK+WahSA+IGp1XCA7Civlmb4gPiBpblwgOwor5ZmzID4gZ3VcIDsKK+WZryA+IGFpXCA7Civlma4gPiBlblwgOwor5ZmrID4gYWFcIDsKK+WZlSA+IGtpXCA7CivlmZAgPiBraVwgOwor5ZmFID4ga2lcIDsKK+WYuyA+IGtpXCA7CivlmLMgPiBraVwgOwor5ZiwID4ga2lcIDsKK+WYnyA+IHRvXCA7CivlmJwgPiBiYVwgOwor5ZibID4gbWFcIDsKK+WYmSA+IGhhXCA7CivlmJEgPiBrb1wgOwor5ZiPID4ga2FcIDsKK+WYiSA+IGthXCA7Civll6kgPiBzYVwgOwor5ZemID4gc2FcIDsKK+WXjyA+IHNhXCA7Civll44gPiBiYVwgOwor5ZeJID4gc29cIDsKK+WXhCA+IHNhXCA7Civll4IgPiBldVwgOwor5Za7ID4geXVcIDsKK+WWtiA+IGVpXCA7CivllrMgPiBzYVwgOwor5ZaxID4gcmlcIDsKK+WWqSA+IHl1XCA7CivllqUgPiB0b1wgOwor5ZajID4ga3VcIDsKK+WWnyA+IGtpXCA7CivllpMgPiBldVwgOwor5ZaRID4gaW5cIDsKK+WWjiA+IGthXCA7CivlloIgPiBraVwgOwor5ZWkID4gaGlcIDsKK+WVnSA+IGthXCA7CivllZogPiBoaVwgOwor5ZWYID4gZW5cIDsKK+WVjiA+IGdvXCA7CivllLkgPiB5b1wgOwor5ZS3ID4geW9cIDsKK+WUtSA+IGFuXCA7CivllLIgPiBqaVwgOwor5ZStID4ga2lcIDsKK+WUrCA+IGthXCA7CivllJQgPiBnb1wgOwor5ZSPID4ga2lcIDsKK+WUjiA+IHJpXCA7CivllIsgPiB0b1wgOwor5ZSIID4gb3VcIDsKK+WUhiA+IHNhXCA7CivllIAgPiBpdVwgOwor5ZO/ID4ga2FcIDsKK+WTuiA+IGhvXCA7Civlk7YgPiBiYVwgOwor5ZOsID4ga2FcIDsKK+WTqiA+IGRhXCA7Civlk6cgPiBrYVwgOwor5ZOmID4gZ2FcIDsKK+WTpSA+IGthXCA7Civlk4kgPiB5YVwgOwor5ZOHID4gYWlcIDsKK+WSvCA+IGthXCA7CivlkrsgPiBrdVwgOwor5ZKqID4gYmlcIDsKK+WSqSA+IGJpXCA7CivlkqUgPiBraVwgOwor5ZKkID4gdGFcIDsKK+WSoSA+IGppXCA7CivlkpwgPiB0YVwgOwor5ZKWID4ga2FcIDsKK+WSlSA+IGtvXCA7CivlkpEgPiBkYVwgOwor5ZKQID4gaG9cIDsKK+WSjyA+IGVpXCA7CivlkoogPiB3YVwgOwor5ZKJID4gYXVcIDsKK+WSgyA+IHRhXCA7CivlkoAgPiBzb1wgOwor5ZG/ID4ga2FcIDsKK+WRuCA+IGhpXCA7CivlkbYgPiBkb1wgOwor5ZG1ID4ga2FcIDsKK+WRtCA+IGt1XCA7CivlkbEgPiBrb1wgOwor5ZGuID4ga2lcIDsKK+WRrSA+IGVpXCA7CivlkawgPiBraVwgOwor5ZGmID4gaXVcIDsKK+WRoiA+IGppXCA7CivlkY0gPiB1blwgOwor5ZGLID4gaHVcIDsKK+WRgCA+IGdhXCA7CivlkL0gPiBpblwgOwor5ZC0ID4gZ29cIDsKK+WQsyA+IGdvXCA7CivlkKcgPiBoYVwgOwor5ZCUID4gc2VcIDsKK+WQkyA+IGthXCA7CivlkJIgPiB0YVwgOwor5ZCBID4ga3VcIDsKK+WPuSA+IGl1XCA7Civlj7UgPiBoYVwgOwor5Y+nID4ga2FcIDsKK+WPoSA+IGVpXCA7Civlj5ogPiBrYVwgOwor5Y+GID4gYWlcIDsKK+WOtCA+IGVuXCA7CivljqwgPiBraVwgOwor5Y6mID4ga2FcIDsKK+WOniA+IGhpXCA7Civljo8gPiBzYVwgOwor5Y6KID4ga2FcIDsKK+WNpiA+IGthXCA7CivljYkgPiBraVwgOwor5Y2AID4ga3VcIDsKK+WMvSA+IGVuXCA7CivljLwgPiBhblwgOwor5Yy6ID4ga3VcIDsKK+WMrSA+IGtpXCA7CivljKwgPiB5dVwgOwor5YyqID4gaGlcIDsKK+WMlSA+IGhpXCA7CivljI4gPiBvdVwgOwor5YyAID4gaW5cIDsKK+WLuyA+IGluXCA7Civli6kgPiBlaVwgOwor5YufID4gYm9cIDsKK+WLnCA+IG91XCA7Civli5ogPiBlaVwgOwor5Yq4ID4gYWlcIDsKK+WKrCA+IGt1XCA7CivlipkgPiByaVwgOwor5YqYID4gYmFcIDsKK+WKkyA+IGdpXCA7CivlibogPiByaVwgOwor5YmuID4ga2FcIDsKK+WJpiA+IGVuXCA7CivliaEgPiBlblwgOwor5YmeID4ga2lcIDsKK+WJmCA+IGtpXCA7CivliZUgPiBoaVwgOwor5YmJID4gc2FcIDsKK+WJhiA+IHJhXCA7CivliYEgPiB0YVwgOwor5Yi1ID4gamlcIDsKK+WItCA+IHRhXCA7CivliLMgPiBrb1wgOwor5YiVID4gcmlcIDsKK+WIkiA+IGthXCA7CivliI8gPiBraVwgOwor5YiJID4ga2lcIDsKK+WHuSA+IG91XCA7Civlh6AgPiBraVwgOwor5YeeID4ga2lcIDsKK+WHkiA+IGdpXCA7Civlh5AgPiBpblwgOwor5YeFID4ga29cIDsKK+WGtCA+IGdvXCA7CivlhrEgPiBnb1wgOwor5YaoID4gZnVcIDsKK+WGpCA+IGVuXCA7Civlhp4gPiBiaVwgOwor5YadID4gZ2lcIDsKK+WGmCA+IGluXCA7CivlhpQgPiBrdVwgOwor5YaOID4ga2FcIDsKK+WGgCA+IGtpXCA7Civlhb4gPiBraVwgOwor5YW5ID4gamlcIDsKK+WFqiA+IHl1XCA7CivlhZcgPiBlblwgOwor5YWUID4gdG9cIDsKK+WFkSA+IGRhXCA7CivlhYwgPiBkYVwgOwor5YWBID4gaW5cIDsKK+WEuiA+IG5hXCA7CivlhLggPiByYVwgOwor5YSeID4gamlcIDsKK+WEmyA+IGJ1XCA7CivlhJcgPiBnaVwgOwor5YSSID4ganVcIDsKK+WEjSA+IHNhXCA7Civlg74gPiBhaVwgOwor5YOxID4ga29cIDsKK+WDnyA+IGtpXCA7Civlg5sgPiBraVwgOwor5YOWID4ga2lcIDsKK+WDgyA+IGJpXCA7Civlgr8gPiBlblwgOwor5YK7ID4gc2FcIDsKK+WCtCA+IGt1XCA7CivlgqIgPiBrYVwgOwor5YKfID4gYXVcIDsKK+WCniA+IHNhXCA7CivlgpwgPiBldVwgOwor5YKMID4gYmFcIDsKK+WCiiA+IGluXCA7CivlgoUgPiBmdVwgOwor5YKDID4gc29cIDsKK+WBuSA+IGJpXCA7CivlgacgPiB0YVwgOwor5YGkID4geXVcIDsKK+WBoyA+IGVuXCA7CivlgaAgPiBldVwgOwor5YGMID4gamFcIDsKK+WBgyA+IGVuXCA7CivlgYAgPiBlaVwgOwor5YC7ID4geWFcIDsKK+WAtSA+IGJ1XCA7CivlgK4gPiByYVwgOwor5YCgID4ga2lcIDsKK+WAmyA+IGtpXCA7CivlgIcgPiBlblwgOwor5L++ID4gaGlcIDsKK+S/uyA+IGJpXCA7Civkv7cgPiBoaVwgOwor5L+xID4ga3VcIDsKK+S/sCA+IGthXCA7Civkv54gPiB5dVwgOwor5L+aID4gcmlcIDsKK+S/mSA+IGtpXCA7Civkv5ggPiBmdVwgOwor5L+QID4gcmlcIDsKK+S/jCA+IGZ1XCA7Civkv4kgPiBnb1wgOwor5L+BID4gZ3VcIDsKK+S+syA+IHNhXCA7CivkvqIgPiBidVwgOwor5L6eID4gam9cIDsKK+S+lSA+IGppXCA7CivkvpIgPiBhblwgOwor5L6OID4gYmlcIDsKK+S+jCA+IGluXCA7CivkvokgPiBrYVwgOwor5L25ID4ga2lcIDsKK+S9tCA+IGppXCA7CivkvbMgPiBrYVwgOwor5L2gID4gamlcIDsKK+S9kiA+IGF1XCA7CivkvYggPiBob1wgOwor5L2BID4gYWlcIDsKK+S8viA+IGhpXCA7CivkvLIgPiBqaVwgOwor5LyxID4gamlcIDsKK+S8sCA+IGtvXCA7CivkvK4gPiBkb1wgOwor5LyZID4ga2FcIDsKK+S8liA+IGRvXCA7CivkvJUgPiBodVwgOwor5LyMID4gYWlcIDsKK+S8gyA+IHlvXCA7Civku7UgPiBrb1wgOwor5LuzID4gaGlcIDsKK+S7qCA+IHNhXCA7Civku5sgPiB0YVwgOwor5LuGID4gZnVcIDsKK+S7hSA+IGh1XCA7CivkurkgPiBiaVwgOwor5Lq4ID4gdGFcIDsKK+S6sSA+IHlhXCA7CivkupMgPiBraVwgOwor5LqKID4gamlcIDsKK+S5tSA+IGVuXCA7CivkuZwgPiBiYVwgOwor5LmaID4gaW5cIDsKK+S5lSA+IGtvXCA7CivkuY4gPiBrYVwgOwor5LmIID4gZXVcIDsKK+S4qiA+IGthXCA7CivkuJUgPiBoaVwgOwor5LiMID4ga2lcIDsKK+S4hSA+IGthXCA7CivluLcgPiBpXCA7CivnlbAgPiBpXCA7CivnlY8gPiBpXCA7CivlsL4gPiBvXCA7CivlrocgPiB1XCA7CivorIIgPiBpXCA7CivniLIgPiBpXCA7CivlqIEgPiBpXCA7Civlp5QgPiBpXCA7CivlnI0gPiBpXCA7Civlm7IgPiBpXCA7Civll5ogPiBvXCA7CivmsZ8gPiBlXCA7CivmsZogPiBvXCA7CivokI4gPiBpXCA7CivljLsgPiBpXCA7CivmpIUgPiBpXCA7Civog4MgPiBpXCA7CivlgYkgPiBpXCA7CivpoKQgPiBpXCA7Civkvp0gPiBlXCA7CivkvIogPiBpXCA7Civku6UgPiBpXCA7Civkup4gPiBhXCA7CivpmL8gPiBhXCA7Civnt5IgPiBvXCA7CivmlrwgPiBvXCA7Civntq0gPiBpXCA7CivntbUgPiBlXCA7Civnp7sgPiBpXCA7CivphqsgPiBpXCA7CivmhbAgPiBpXCA7CivmhI8gPiBpXCA7Civmg6EgPiBvXCA7CivpgbogPiBpXCA7CivpgZUgPiBpXCA7Civpt74gPiBpXCA7Civpt6cgPiBpXCA7CivptbYgPiBhXCA7CivptZwgPiB1XCA7CivpsJ4gPiBvXCA7CivpsIQgPiBpXCA7CivprqcgPiBpXCA7CivpqqwgPiB1XCA7CivpqqsgPiBpXCA7CivpqqogPiBpXCA7CivppZAgPiBpXCA7CivpoYogPiBpXCA7CivpoKUgPiBpXCA7CivpoIkgPiBpXCA7Civpn5kgPiBpXCA7Civpn5EgPiBpXCA7Civpn4sgPiBpXCA7CivpnKggPiBpXCA7Civpm6kgPiB1XCA7CivpmpYgPiBvXCA7Civpl4ggPiBpXCA7CivplrwgPiBhXCA7Civpk5QgPiBhXCA7CivpkL8gPiBpXCA7CivpkJogPiBhXCA7CivpjI8gPiBhXCA7CivpiqUgPiBpXCA7Civpia8gPiBpXCA7CivpiLMgPiBhXCA7Civph6ogPiB1XCA7CivphY8gPiBpXCA7CivphJQgPiBvXCA7CivpgpggPiB1XCA7CivpgLYgPiBpXCA7Civov7sgPiBpXCA7Civov6QgPiBpXCA7Civov4YgPiBpXCA7Civov4IgPiB1XCA7Civosr0gPiBpXCA7CivosqQgPiBpXCA7CivopJggPiBpXCA7CivoopggPiBpXCA7CivonrEgPiBpXCA7CivonqAgPiBpXCA7CivonpAgPiBvXCA7CivonokgPiBvXCA7CivonLwgPiBpXCA7CivonLIgPiBpXCA7Civom5wgPiBpXCA7CivombYgPiB1XCA7CivolL8gPiBpXCA7CivokbMgPiBpXCA7Civojb0gPiBpXCA7CivojY8gPiBlXCA7CivojKEgPiB1XCA7Civoi6IgPiBpXCA7Civoi6EgPiBpXCA7CivoipsgPiBpXCA7Civog7AgPiBpXCA7CivogoQgPiBpXCA7Civnt68gPiBpXCA7Civnt60gPiBpXCA7CivntIYgPiB1XCA7CivnsIMgPiBpXCA7Civnq70gPiB1XCA7CivnprkgPiB1XCA7CivnppUgPiBpXCA7Civno4ggPiBpXCA7Civnn6MgPiBpXCA7Civnm4IgPiB1XCA7CivnmIIgPiBhXCA7Civnl78gPiBpXCA7Civnl74gPiBhXCA7Civnl48gPiBpXCA7Civnl40gPiBpXCA7CivnlrQgPiBhXCA7CivnkaYgPiBvXCA7CivnkYsgPiBpXCA7CivnkYAgPiB1XCA7Civnj4YgPiBpXCA7CivnjpcgPiB1XCA7CivnjKwgPiBpXCA7CivnjJcgPiBpXCA7CivnioQgPiBpXCA7CivnhqggPiBpXCA7CivnhZIgPiBpXCA7Civmv7AgPiBpXCA7CivmvKogPiBpXCA7CivmuYsgPiBpXCA7CivmuK0gPiBpXCA7CivmtL8gPiBvXCA7CivmtKcgPiBpXCA7CivmsaEgPiBvXCA7CivmsZkgPiBvXCA7CivmsKwgPiBhXCA7Civmr4kgPiBpXCA7CivmrY0gPiBvXCA7CivmrLkgPiBpXCA7CivmpbIgPiBpXCA7CivmpLggPiBpXCA7CivmpI8gPiBhXCA7CivmoZkgPiB1XCA7Civmn4IgPiBpXCA7CivmnrEgPiBpXCA7CivmnYcgPiBvXCA7CivmnYUgPiB1XCA7CivmmpAgPiBpXCA7Civml5YgPiBpXCA7CivmlaEgPiBpXCA7CivmlLogPiBpXCA7CivmiZwgPiB1XCA7CivmiYYgPiBpXCA7CivmiYUgPiBpXCA7Civmh78gPiBpXCA7CivmhIcgPiBpXCA7Civmg58gPiBpXCA7CivmgpggPiBpXCA7CivmgZogPiBpXCA7CivmgKEgPiBpXCA7CivlvqsgPiBpXCA7CivlvZ4gPiBpXCA7CivlvZ0gPiBpXCA7CivlvZwgPiBpXCA7CivlvZsgPiBpXCA7CivlvZogPiBpXCA7CivlvZkgPiBpXCA7CivlvKwgPiBpXCA7CivlvJkgPiBvXCA7CivlvIIgPiBpXCA7CivluYMgPiBpXCA7Civlt7ggPiBpXCA7Civlt7IgPiBpXCA7CivltaggPiBvXCA7CivltLogPiBpXCA7CivltKMgPiBpXCA7CivlsZkgPiBhXCA7Civlr6ogPiBpXCA7CivlrbIgPiBhXCA7CivlqqYgPiBpXCA7CivlqpkgPiBpXCA7Civlqa0gPiBhXCA7CivlqYAgPiBhXCA7CivlqL8gPiBhXCA7CivlqIMgPiBhXCA7Civlp6ggPiBpXCA7CivlprggPiBhXCA7Civlo50gPiBpXCA7CivloaIgPiBvXCA7CivloIogPiBhXCA7Civln6EgPiBvXCA7CivlnaggPiBpXCA7CivlnK8gPiBpXCA7CivlnKwgPiBvXCA7CivlnKkgPiB1XCA7Civlm5cgPiBpXCA7CivlmYEgPiBvXCA7CivllrQgPiBpXCA7CivllqEgPiBpXCA7CivllZ4gPiBhXCA7CivllYogPiBhXCA7Civlkr8gPiBpXCA7CivlkqYgPiBpXCA7CivlkJogPiBpXCA7Civlj54gPiBpXCA7CivljJwgPiBpXCA7CivlhLAgPiBpXCA7Civlga8gPiBpXCA7CivlgYogPiB1XCA7CivkvocgPiBpXCA7CivkvL8gPiBpXCA7CivkupwgPiBhXCA7Civkuo8gPiB1XCA7Civkuo4gPiB1XCA7CivkuoQgPiBpXCA7CivkuYEgPiBpXCA7CivkuKsgPiBhXCA7CivjgIIgPD4gJy4nOworIyBFbmQgUkFXIGRhdGEgZm9yIGNvbnZlcnRpbmcgQ0pLIGNoYXJhY3RlcnMKKworCis6OiBrYXRha2FuYS1sYXRpbiAoKTsKKzo6IGhpcmFnYW5hLWxhdGluICgpOworOjogZnVsbHdpZHRoLWhhbGZ3aWR0aCAoKTsKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfSGVicmV3X0xhdGluLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfSGVicmV3X0xhdGluLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYzUwYTQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9IZWJyZXdfTGF0aW4udHh0CkBAIC0wLDAgKzEsMTAwIEBACivvu78jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0F0dGljL1RyYW5zbGl0ZXJhdG9yX0hlYnJld19MYXRpbi50eHQsdiAkCisjICREYXRlOiAyMDAyLzA3LzI2IDE5OjU2OjU1ICQKKyMgJFJldmlzaW9uOiAxLjQgJAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgVHJhbnNsaXRlcmF0aW9uIHRhYmxlIGZvciBIZWJyZXcKKyMgQmFzZWQgb24gdGhlIFVOR0VHTiB0YWJsZSBhdDoKKyMgICBodHRwOi8vd3d3LmVraS5lZS93Z3JzL3JvbTFfaGUucGRmCisjCisjIEV4Y2VwdGlvbnM6CisjIC0gQWNjZW50cyBhcmUgYWRkZWQgdG8gZGlzYW1iaWd1YXRlIGxldHRlcnMKKyMgLSBDb21iaW5hdGlvbnMgb2YgZGFnZXNoLCBzaGluL3NpbiBkb3QgdGhhdCBwcm9kdWNlIGRpZmZlcmVudAorIyAgIGxldHRlcnMgYXJlIG5vdCB5ZXQgZW5jb2RlZC4KKyMKKyMgVG8gdGVzdCwgb3BlbjoKKyMgICBodHRwOi8vb3NzLnNvZnR3YXJlLmlibS5jb20vY2dpLWJpbi9pY3UvdHIKKyMgQ2xpY2sgRWRpdCwgcGFzdGUgaW4gdGhpcyBmaWxlLCBTYXZlIEFzIGhlYnJldy1sYXRpbi9YWFgKKyMgKHdoZXJlIFhYWCBpcyBhIHVzZXJuYW1lKQorIyBOb3cgZ28gYmFjayB0byB0aGUgbWFpbiB3aW5kb3csIGFuZCB0cnkgaXQgb3V0LgorIyBVc2UgaGVicmV3LWxhdGluL1hYWCBmb3IgT3V0cHV0IDEsIGFuZCAoSW52ZXJzZSkgZm9yIE91dHB1dCAyCisjIFBhc3RlIGluIGhlYnJldyB0ZXh0IGluIElucHV0LCBhbmQgaGl0IFRyYW5zbGl0ZXJhdGUuCisjCisjIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUiCisjICAgaHR0cDovL29zcy5zb2Z0d2FyZS5pYm0uY29tL2ljdS91c2VyZ3VpZGUvVHJhbnNsaXRlcmF0aW9uLmh0bWwKKworOjogW1s6SGVicmV3Ol0gW1x1MDVCMC1cdTA1QjlcdTA1QkItXHUwNUJDXHUwNUMxLVx1MDVDMlx1MjEzNS1cdTIxMzjMhFx1MDVCRl1dIDsKKzo6IG5ma2QgKG5mYykgOworJGxldHRlckFmdGVyID0gWzpNOl0qIFs6TDpdIDsKKworIyBtb3ZlIGxvbmdlciBpdGVtcyBoZXJlIHRvIGF2b2lkIG1hc2tpbmcKKwor15cgPD4gaMyxIDsKK9emIDw+IHrMsSB9ICRsZXR0ZXJBZnRlcjsKK9elIDw+IHrMsSA7CivXqSA8PiBzzKcgOwor16ogPD4gdMynIDsKKwor15AgPD4gyrwgOwor15EgPD4gYiA7CivXkiA8PiBnIDsKK9eTIDw+IGQgOwor15QgPD4gaCA7CivXlSA8PiB3IDsKK9eWIDw+IHogOwor15ggPD4gdCA7CivXmSA8PiB5IDsKK9ebIDw+IGsgfSAkbGV0dGVyQWZ0ZXI7CivXmiA8PiBrIDsKK9ecIDw+IGwgOwor154gPD4gbSB9ICRsZXR0ZXJBZnRlcjsKK9edIDw+IG0gOyAKK9egIDw+IG4gIH0gJGxldHRlckFmdGVyOwor158gPD4gbiA7CivXoSA8PiBzIDsKK9eiIDw+IMq7IDsKK9ekIDw+IHAgfSAkbGV0dGVyQWZ0ZXI7CivXoyA8PiBwIDsKK9enIDw+IHEgOwor16ggPD4gciA7CisKKyDXsCA+IHwgINeV15U7ICMgSEVCUkVXIExJR0FUVVJFIFlJRERJU0ggRE9VQkxFIFZBVgorINexID4gfCDXldeZOyAjIEhFQlJFVyBMSUdBVFVSRSBZSURESVNIIFZBViBZT0QKKyDXsiA+IHwg15nXmSA7ICMgSEVCUkVXIExJR0FUVVJFIFlJRERJU0ggRE9VQkxFIFlPRAorCisKK9a8IDw+IMyHIDsgIyBkYWdlc2gganVzdCBnb2VzIHRvIG92ZXJkb3QgZm9yIG5vdwor14EgPD4gzIwgOyAjIHNoaW4gZG90IC0+IHNoCivXgiA8PiDMgiA7ICMgc2luIGRvdCAtPiBzCisKKyMgcG9pbnRzCivWsiA8PiBhzIAgOwor1rggPD4gYcyBIDsKK9axIDw+IGXMgCA7CivWtSA8PiBlzIEgOwor1rAgPD4gZcyCIDsKK9a0IDw+IGkgOwor1rkgPD4gb8yAIDsKK9a7IDw+IHUgOworCivWtyA8PiBhIDsKK9a2IDw+IGUgOwor1rMgPD4gbyA7CisKK1x1MDVCRiA8PiAgIMyEIDsKKworIyBmYWxsYmFja3MKK9enIDwgYyA7CivXpCA8IGYgfSAkbGV0dGVyQWZ0ZXI7CivXoyA8IGYgOwor15YgPCBqIDsKK9eVIDwgdiA7CivXm9ehIDwgeCA7CisKKzo6IChsb3dlcik7Cis6OiBuZmMgKG5mZCkgOworOjogKFtbOkxhdGluOl0gW1x1MDJCQi1cdTAyQkNcdTAzMDAtXHUwMzAyXHUwMzA3XHUwMzBDXHUwMzI3XHUwMzMxXHUwMzQwLVx1MDM0MSAgICDMhCBdXSk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9IaXJhZ2FuYV9LYXRha2FuYS50eHQgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0hpcmFnYW5hX0thdGFrYW5hLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lNTM3YTY5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9IaXJhZ2FuYV9LYXRha2FuYS50eHQKQEAgLTAsMCArMSwyMTEgQEAKK++7vyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb3B5cmlnaHQgKGMpIDE5OTktMjAwMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworIyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQXR0aWMvVHJhbnNsaXRlcmF0b3JfSGlyYWdhbmFfS2F0YWthbmEudHh0LHYgJAorIyAkRGF0ZTogMjAwMi8wMy8wMiAwMDoyNzoyNyAkCisjICRSZXZpc2lvbjogMS41ICQKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIG5vdGU6IGEgZ2xvYmFsIGZpbHRlciBpcyBtb3JlIGVmZmljaWVudCwgYnV0IE1VU1QgaW5jbHVkZSBhbGwgc291cmNlIGNoYXJzCis6OiBbXHUwMDAwLVx1MDA3RSBcdTMwMDFcdTMwMDIgXHUzMDk5LVx1MzA5QyBcdTMwQTEtXHUzMEZDIFx1RkY2MS1cdUZGOUbjg7xbOkhpcmFnYW5hOl0gWzpLYXRha2FuYTpdIFs6bm9uc3BhY2luZyBtYXJrOl1dIDsKKzo6IE5GS0MgKCk7CisKKyMgSGlyYWdhbmEtS2F0YWthbmEKKworIyBUaGlzIGlzIGxhcmdlbHkgYSBvbmUtdG8tb25lIG1hcHBpbmcsIGJ1dCBpdCBoYXMgYQorIyBmZXcga2lua3M6CisKKyMgMS4gVGhlIEthdGFrYW5hIHZhL3ZpL3ZlL3ZvICgzMEY3LTMwRkEpIGhhdmUgbm8KKyMgSGlyYWdhbmEgZXF1aXZhbGVudHMuICBXZSB1c2UgSGlyYWdhbmEgd2Evd2kvd2Uvd28KKyMgKDMwOEYtMzA5Mikgd2l0aCBhIHZvaWNpbmcgbWFyayAoMzA5OSksIHdoaWNoIGlzCisjIHNlbWFudGljYWxseSBlcXVpdmFsZW50LiAgSG93ZXZlciwgdGhpcyBpcyBhIG5vbi0KKyMgcm91bmR0cmlwcGluZyB0cmFuc2Zvcm1hdGlvbi4KKworIyAyLiBUaGUgS2F0YWthbmEgc21hbGwga2Eva2UgKDMwRjUsMzBGNikgaGF2ZSBubworIyBIaXJhZ2FuYSBlcXVpYXZsZW50cy4gIFdlIGNvbnZlcnQgdGhlbSB0byBub3JtYWwKKyMgSGlyYWdhbmEga2Eva2UgKDMwNEIsMzA1MSkuICBUaGlzIGlzIGEgb25lLXdheQorIyBpbmZvcm1hdGlvbi1sb3NpbmcgdHJhbnNmb3JtYXRpb24gYW5kIHByZWNsdWRlcworIyByb3VuZC10cmlwcGluZyBvZiAzMEY1IGFuZCAzMEY2LgorCisjIDMuIFRoZSBjb21iaW5pbmcgbWFya3MgMzA5OS0zMDlDIGFyZSBpbiB0aGUgSGlyYWdhbmEKKyMgYmxvY2ssIGJ1dCB0aGV5IGFwcGx5IHRvIEthdGFrYW5hIGFzIHdlbGwsIHNvIHdlCisjIGxlYXZlIHRoZW0gdW50b3VjaGVkLgorCisjIDQuIFRoZSBLYXRha2FuYSBwcm9sb25nZWQgc291bmQgbWFyayAzMEZDIGRvdWJsZXMgdGhlCisjIHByZWNlZGluZyB2b3dlbC4gIFRoaXMgaXMgYSBvbmUtd2F5IGluZm9ybWF0aW9uLQorIyBsb3NpbmcgdHJhbnNmb3JtYXRpb24gZnJvbSBLYXRha2FuYSB0byBIaXJhZ2FuYS4KKworIyA1LiBUaGUgS2F0YWthbmEgbWlkZGxlIGRvdCBzZXBhcmF0ZXMgd29yZHMgaW4gZm9yZWlnbgorIyBleHByZXNzaW9uczsgd2UgbGVhdmUgdGhpcyB1bm1vZGlmaWVkLgorCisjIFRoZSBhYm92ZSBwb2ludHMgcHJlY2x1ZGUgc3VjY2Vzc2Z1bCByb3VuZC10cmlwCisjIHRyYW5zZm9ybWF0aW9ucyBvZiBhcmJpdHJhcnkgaW5wdXQgdGV4dC4gIEhvd2V2ZXIsCisjIHRoZXkgcHJvdmlkZSBuYXR1cmFsaXN0aWMgcmVzdWx0cyB0aGF0IHNob3VsZCBjb25mb3JtCisjIHRvIHVzZXIgZXhwZWN0YXRpb25zLgorCisKKyMgQ29tYmluaW5nIGVxdWl2YWxlbnRzIHZhL3ZpL3ZlL3ZvCivjgo/jgpkgPD4g44O3Owor44KQ44KZIDw+IOODuDsKK+OCkeOCmSA8PiDjg7k7CivjgpLjgpkgPD4g44O6OworCisjIE9uZS10by1vbmUgbWFwcGluZ3MsIG1haW4gYmxvY2sKKyMgMzA0MTozMDk0IDw+IDMwQTE6MzBGNAorIyAzMDlELEUgPD4gMzBGRCxFCivjgYEgPD4g44KhOwor44GCIDw+IOOCojsKK+OBgyA8PiDjgqM7CivjgYQgPD4g44KkOwor44GFIDw+IOOCpTsKK+OBhiA8PiDjgqY7CivjgYcgPD4g44KnOwor44GIIDw+IOOCqDsKK+OBiSA8PiDjgqk7CivjgYogPD4g44KqOwor44GLIDw+IOOCqzsKK+OBjCA8PiDjgqw7CivjgY0gPD4g44KtOwor44GOIDw+IOOCrjsKK+OBjyA8PiDjgq87CivjgZAgPD4g44KwOwor44GRIDw+IOOCsTsKK+OBkiA8PiDjgrI7CivjgZMgPD4g44KzOwor44GUIDw+IOOCtDsKK+OBlSA8PiDjgrU7CivjgZYgPD4g44K2Owor44GXIDw+IOOCtzsKK+OBmCA8PiDjgrg7CivjgZkgPD4g44K5Owor44GaIDw+IOOCujsKK+OBmyA8PiDjgrs7CivjgZwgPD4g44K8Owor44GdIDw+IOOCvTsKK+OBniA8PiDjgr47CivjgZ8gPD4g44K/Owor44GgIDw+IOODgDsKK+OBoSA8PiDjg4E7CivjgaIgPD4g44OCOwor44GjIDw+IOODgzsKK+OBpCA8PiDjg4Q7CivjgaUgPD4g44OFOwor44GmIDw+IOODhjsKK+OBpyA8PiDjg4c7CivjgaggPD4g44OIOwor44GpIDw+IOODiTsKK+OBqiA8PiDjg4o7CivjgasgPD4g44OLOwor44GsIDw+IOODjDsKK+OBrSA8PiDjg407Civjga4gPD4g44OOOwor44GvIDw+IOODjzsKK+OBsCA8PiDjg5A7CivjgbEgPD4g44OROwor44GyIDw+IOODkjsKK+OBsyA8PiDjg5M7CivjgbQgPD4g44OUOwor44G1IDw+IOODlTsKK+OBtiA8PiDjg5Y7CivjgbcgPD4g44OXOwor44G4IDw+IOODmDsKK+OBuSA8PiDjg5k7CivjgbogPD4g44OaOwor44G7IDw+IOODmzsKK+OBvCA8PiDjg5w7Civjgb0gPD4g44OdOwor44G+IDw+IOODnjsKK+OBvyA8PiDjg587CivjgoAgPD4g44OgOwor44KBIDw+IOODoTsKK+OCgiA8PiDjg6I7CivjgoMgPD4g44OjOwor44KEIDw+IOODpDsKK+OChSA8PiDjg6U7CivjgoYgPD4g44OmOwor44KHIDw+IOODpzsKK+OCiCA8PiDjg6g7CivjgokgPD4g44OpOwor44KKIDw+IOODqjsKK+OCiyA8PiDjg6s7CivjgowgPD4g44OsOwor44KNIDw+IOODrTsKK+OCjiA8PiDjg647Civjgo8gPD4g44OvOwor44KQIDw+IOODsDsKK+OCkSA8PiDjg7E7CivjgpIgPD4g44OyOwor44KTIDw+IOODszsKK+OClCA8PiDjg7Q7Civjgp0gPD4g44O9Owor44KeIDw+IOODvjsKKworIyBPbmUtd2F5IEthdGFrYW5hLUhpcmFnYW5hIHhmb3JtIG9mIHNtYWxsIEsga2Eva2UgdG8KKyMgbm9ybWFsIEgga2Eva2UuCivjgYsgPCDjg7U7CivjgZEgPCDjg7Y7CisKKyMgS2F0YWthbmEgZm9sbG93ZWQgYnkgYSBwcm9sb25nZWQgc291bmQgbWFyayAzMEZDIGhhcworIyBpdHMgZmluYWwgdm93ZWwgZG91YmxlZC4gIFRoaXMgaXMgYSBLYXRha2FuYS1IaXJhZ2FuYQorIyBvbmUtd2F5IGluZm9ybWF0aW9uLWxvc2luZyB0cmFuc2Zvcm1hdGlvbi4gIFdlCisjIGluY2x1ZGUgdGhlIHNtYWxsIEthdGFrYW5hIChlLmcuLCBzbWFsbCBBIDMwNDEpIGFuZAorIyBkbyBub3QgZGlzdGluZ3Vpc2ggdGhlbSBmcm9tIHRoZWlyIGxhcmdlCisjIGNvdW50ZXJwYXJ0cy4gIEl0IGRvZXNuJ3QgbWFrZSBzZW5zZSB0byBkb3VibGUgYQorIyBzbWFsbCBjb3VudGVycGFydCB2b3dlbCBhcyBhIHNtYWxsIEhpcmFnYW5hIHZvd2VsLCBzbworIyB3ZSBkb24ndCBkbyBzby4gIEluIG5hdHVyYWwgdGV4dCB0aGlzIHNob3VsZCBuZXZlcgorIyBvY2N1ciBhbnl3YXkuICBJZiBhIDMwRkMgaXMgc2VlbiB3aXRob3V0IGEgcHJlY2VkaW5nCisjIHZvd2VsIHNvdW5kIChlLmcuLCBhZnRlciBuIDMwRjMpIHdlIGRvIG5vdCBjaGFuZ2UgaXQuCisKKyMjIyAkbG9uZyA9IOODvDsKKworIyBUaGUgZm9sbG93aW5nIGNhdGVnb3JpZXMgYXJlIEhpcmFnYW5hLCBub3QgS2F0YWthbmEKKyMgYXMgbWlnaHQgYmUgZXhwZWN0ZWQsIHNpbmNlIGJ5IHRoZSB0aW1lIHdlIGdldCB0byB0aGUKKyMgMzBGQywgdGhlIHByZWNlZGluZyBjaGFyYWN0ZXIgd2lsbCBoYXZlIGFscmVhZHkgYmVlbgorIyB0cmFuc2Zvcm1lZCB0byBIaXJhZ2FuYS4KKworIyB7VGhlIGZvbGxvd2luZyBtZWNoYW5pY2FsbHkgZ2VuZXJhdGVkIGZyb20gdGhlCisjIFVuaWNvZGUgMy4wIGRhdGE6fQorCiskeGEgPSBbIFwKK+OBgSDjgYIg44GLIOOBjCDjgZUg44GWIFwKK+OBnyDjgaAg44GqIOOBryDjgbAg44GxIFwKK+OBviDjgoMg44KEIOOCiSDjgo4g44KPIFwKK107CisKKyR4aSA9IFsgXAor44GDIOOBhCDjgY0g44GOIOOBlyDjgZggXAor44GhIOOBoiDjgasg44GyIOOBsyDjgbQgXAor44G/IOOCiiDjgpAgXAorXTsKKworJHh1ID0gWyBcCivjgYUg44GGIOOBjyDjgZAg44GZIOOBmiBcCivjgaMg44GkIOOBpSDjgawg44G1IOOBtiBcCivjgbcg44KAIOOChSDjgoYg44KLIOOClCBcCitdOworCiskeGUgPSBbIFwKK+OBhyDjgYgg44GRIOOBkiDjgZsg44GcIFwKK+OBpiDjgacg44GtIOOBuCDjgbkg44G6IFwKK+OCgSDjgowg44KRIFwKK107CisKKyR4byA9IFsgXAor44GJIOOBiiDjgZMg44GUIOOBnSDjgZ4gXAor44GoIOOBqSDjga4g44G7IOOBvCDjgb0gXAor44KCIOOChyDjgogg44KNIOOCkiBcCitdOworCivjgYIgPCAkeGEge+ODvH07CivjgYQgPCAkeGkge+ODvH07CivjgYYgPCAkeHUge+ODvH07CivjgYggPCAkeGUge+ODvH07CivjgYogPCAkeG8ge+ODvH07CisKKzo6IChORktDKSA7CisKKyMgbm90ZTogYSBnbG9iYWwgZmlsdGVyIGlzIG1vcmUgZWZmaWNpZW50LCBidXQgTVVTVCBpbmNsdWRlIGFsbCBzb3VyY2UgY2hhcnMhIQorOjogKFtcdTAwMDAtXHUwMDdFIFx1MzAwMVx1MzAwMiBcdTMwOTktXHUzMDlDIFx1MzBBMS1cdTMwRkMgXHVGRjYxLVx1RkY5RuODvFs6SGlyYWdhbmE6XSBbOkthdGFrYW5hOl0gWzpub25zcGFjaW5nIG1hcms6XV0pOworCisjIGVvZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9IaXJhZ2FuYV9MYXRpbi50eHQgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0hpcmFnYW5hX0xhdGluLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43MjgzOGQyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9IaXJhZ2FuYV9MYXRpbi50eHQKQEAgLTAsMCArMSwxOCBAQAor77u/Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvcHlyaWdodCAoYykgMTk5OS0yMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisjIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9BdHRpYy9UcmFuc2xpdGVyYXRvcl9IaXJhZ2FuYV9MYXRpbi50eHQsdiAkCisjICREYXRlOiAyMDAxLzExLzMwIDIyOjIxOjE1ICQKKyMgJFJldmlzaW9uOiAxLjYgJAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKzo6IFtcdTMwNDEtXHUzMDk0XHUzMDk5XHUzMDlELVx1MzA5RVx1MzBBQ1x1MzBBRVx1MzBCMFx1MzBCMlx1MzBCNFx1MzBCNlx1MzBCOFx1MzBCQVx1MzBCQ1x1MzBCRVx1MzBDMFx1MzBDMlx1MzBDNVx1MzBDN1x1MzBDOVx1MzBEMFx1MzBEM1x1MzBENlx1MzBEOVx1MzBEQ1x1MzBGNFx1MzBGNy1cdTMwRkFcdTMwRkVdIDsKKzo6IE5GRCA7CisKKzo6IEhpcmFnYW5hLUthdGFrYW5hOworOjogS2F0YWthbmEtTGF0aW47CisKKzo6IE5GQyA7Cis6OiAoTG93ZXIpIDsKKzo6IChbJywuQS1aYS16flx1MDBDMC1cdTAwRDZcdTAwRDgtXHUwMEY2XHUwMEY4LVx1MDEwRlx1MDExMi1cdTAxMjVcdTAxMjgtXHUwMTMwXHUwMTM0LVx1MDEzN1x1MDEzOS1cdTAxM0VcdTAxNDMtXHUwMTQ4XHUwMTRDLVx1MDE1MVx1MDE1NC1cdTAxNjVcdTAxNjgtXHUwMTdFXHUwMUEwLVx1MDFBMVx1MDFBRi1cdTAxQjBcdTAxQ0QtXHUwMURDXHUwMURFLVx1MDFFM1x1MDFFNi1cdTAxRURcdTAxRjBcdTAxRjQtXHUwMUY1XHUwMUY4LVx1MDIxQlx1MDIxRS1cdTAyMUZcdTAyMjYtXHUwMjMzXHUwMzA0XHUwNEUyLVx1MDRFM1x1MDRFRS1cdTA0RUZcdTFFMDAtXHUxRTk5XHUxRUEwLVx1MUVGOVx1MUZCMVx1MUZCOVx1MUZEMVx1MUZEOVx1MUZFMVx1MUZFOVx1MjEyQS1cdTIxMkJdKSA7CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0ludGVySW5kaWNfQmVuZ2FsaS50eHQgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0ludGVySW5kaWNfQmVuZ2FsaS50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWQ0ZTEwOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfSW50ZXJJbmRpY19CZW5nYWxpLnR4dApAQCAtMCwwICsxLDEzNCBAQAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvcHlyaWdodCAoYykgMTk5OS0yMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisjIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9BdHRpYy9UcmFuc2xpdGVyYXRvcl9JbnRlckluZGljX0JlbmdhbGkudHh0LHYgJAorIyAkRGF0ZTogMjAwMi8wOC8xNCAwMDo0MDo1OCAkCisjICRSZXZpc2lvbjogMS45ICQKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIEludGVySW5kaWMtQmVuZ2FsaQorIzo6IE5GRCAoTkZDKSA7CitcdUUwMDE+XHUwOTgxOyAgICAgICAgICAjIFNJR04gQ0FORFJBQklORFUKK1x1RTAwMj5cdTA5ODI7ICAgICAgICAgICMgU0lHTiBBTlVTVkFSQQorXHVFMDAzPlx1MDk4MzsgICAgICAgICAgIyBTSUdOIFZJU0FSR0EKK1x1RTAwNT5cdTA5ODU7ICAgICAgICAgICMgTEVUVEVSIEEKK1x1RTAwNj5cdTA5ODY7ICAgICAgICAgICMgTEVUVEVSIEFBCitcdUUwMDc+XHUwOTg3OyAgICAgICAgICAjIExFVFRFUiBJCitcdUUwMDg+XHUwOTg4OyAgICAgICAgICAjIExFVFRFUiBJSQorXHVFMDA5Plx1MDk4OTsgICAgICAgICAgIyBMRVRURVIgVQorXHVFMDBBPlx1MDk4QTsgICAgICAgICAgIyBMRVRURVIgVVUKK1x1RTAwQj5cdTA5OEI7ICAgICAgICAgICMgTEVUVEVSIFZPQ0FMSUMgUgorXHVFMDBDPlx1MDk4QzsgICAgICAgICAgIyBMRVRURVIgVk9DQUxJQyBMCitcdUUwMEQ+XHUwOThGOyAgICAgICAgICAjIEZBTExCQUNLCitcdUUwMEU+XHUwOThGOyAgICAgICAgICAjIEZBTExCQUNLCitcdUUwMEY+XHUwOThGOyAgICAgICAgICAjIExFVFRFUiBFCitcdUUwMTA+XHUwOTkwOyAgICAgICAgICAjIExFVFRFUiBBSQorXHVFMDExPlx1MDk5MzsgICAgICAgICAgIyBGQUxMQkFDSworXHVFMDEyPlx1MDk5MzsgICAgICAgICAgIyBGQUxMQkFDSworXHVFMDEzPlx1MDk5MzsgICAgICAgICAgIyBMRVRURVIgTworXHVFMDE0Plx1MDk5NDsgICAgICAgICAgIyBMRVRURVIgQVUKK1x1RTAxNT5cdTA5OTU7ICAgICAgICAgICMgTEVUVEVSIEtBCitcdUUwMTY+XHUwOTk2OyAgICAgICAgICAjIExFVFRFUiBLSEEKK1x1RTAxNz5cdTA5OTc7ICAgICAgICAgICMgTEVUVEVSIEdBCitcdUUwMTg+XHUwOTk4OyAgICAgICAgICAjIExFVFRFUiBHSEEKK1x1RTAxOT5cdTA5OTk7ICAgICAgICAgICMgTEVUVEVSIE5HQQorXHVFMDFBPlx1MDk5QTsgICAgICAgICAgIyBMRVRURVIgQ0EKK1x1RTAxQj5cdTA5OUI7ICAgICAgICAgICMgTEVUVEVSIENIQQorXHVFMDFDPlx1MDk5QzsgICAgICAgICAgIyBMRVRURVIgSkEKK1x1RTAxRD5cdTA5OUQ7ICAgICAgICAgICMgTEVUVEVSIEpIQQorXHVFMDFFPlx1MDk5RTsgICAgICAgICAgIyBMRVRURVIgTllBCitcdUUwMUY+XHUwOTlGOyAgICAgICAgICAjIExFVFRFUiBUVEEKK1x1RTAyMD5cdTA5QTA7ICAgICAgICAgICMgTEVUVEVSIFRUSEEKK1x1RTAyMT5cdTA5QTE7ICAgICAgICAgICMgTEVUVEVSIEREQQorXHVFMDIyPlx1MDlBMjsgICAgICAgICAgIyBMRVRURVIgRERIQQorXHVFMDIzPlx1MDlBMzsgICAgICAgICAgIyBMRVRURVIgTk5BCitcdUUwMjQ+XHUwOUE0OyAgICAgICAgICAjIExFVFRFUiBUQQorXHVFMDI1Plx1MDlBNTsgICAgICAgICAgIyBMRVRURVIgVEhBCitcdUUwMjY+XHUwOUE2OyAgICAgICAgICAjIExFVFRFUiBEQQorXHVFMDI3Plx1MDlBNzsgICAgICAgICAgIyBMRVRURVIgREhBCitcdUUwMjg+XHUwOUE4OyAgICAgICAgICAjIExFVFRFUiBOQQorXHVFMDI5Plx1MDlBOFx1MDlCQzsgICAgIyBSRU1BUCAoaW5kaWNFeGNlcHRpb25zLnR4dCk6IFx1MDlhOT5cdTA5YTggPSBMRVRURVIgTk5OQT5MRVRURVIgTkEKK1x1RTAyQT5cdTA5QUE7ICAgICAgICAgICMgTEVUVEVSIFBBCitcdUUwMkI+XHUwOUFCOyAgICAgICAgICAjIExFVFRFUiBQSEEKK1x1RTAyQz5cdTA5QUM7ICAgICAgICAgICMgTEVUVEVSIEJBCitcdUUwMkQ+XHUwOUFEOyAgICAgICAgICAjIExFVFRFUiBCSEEKK1x1RTAyRT5cdTA5QUU7ICAgICAgICAgICMgTEVUVEVSIE1BCitcdUUwMkY+XHUwOUFGOyAgICAgICAgICAjIExFVFRFUiBZQQorXHVFMDMwPlx1MDlCMDsgICAgICAgICAgIyBMRVRURVIgUkEKK1x1RTAzMT5cdTA5QjBcdTA5QkM7ICAgICMgRkFMTEJBQ0sgdG8gUkEKK1x1RTAzMj5cdTA5QjI7ICAgICAgICAgICMgTEVUVEVSIExBCitcdUUwMzM+XHUwOUIyOyAgICAgICAgICAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwOWIzPlx1MDliMiA9IExFVFRFUiBMTEE+TEVUVEVSIExBCitcdUUwMzQ+XHUwOUIyOyAgICAgICAgICAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwOWI0Plx1MDliMiA9IExFVFRFUiBMTExBPkxFVFRFUiBMQQorXHVFMDM1Plx1MDlBQzsgICAgICAgICAgIyBSRU1BUCAoaW5kaWNFeGNlcHRpb25zLnR4dCk6IFx1MDliNT5cdTA5YWMgPSBMRVRURVIgVkE+TEVUVEVSIEJBCitcdUUwMzY+XHUwOUI2OyAgICAgICAgICAjIExFVFRFUiBTSEEKK1x1RTAzNz5cdTA5Qjc7ICAgICAgICAgICMgTEVUVEVSIFNTQQorXHVFMDM4Plx1MDlCODsgICAgICAgICAgIyBMRVRURVIgU0EKK1x1RTAzOT5cdTA5Qjk7ICAgICAgICAgICMgTEVUVEVSIEhBCitcdUUwM0M+XHUwOUJDOyAgICAgICAgICAjIFNJR04gTlVLVEEKK1x1RTAzRD47ICAgICAgICAgICAgICAgICMgRkFMTEJBQ0sgQkxPVyBBV0FZIEFWQUdSQUhBCitcdUUwM0U+XHUwOUJFOyAgICAgICAgICAjIFZPV0VMIFNJR04gQUEKK1x1RTAzRj5cdTA5QkY7ICAgICAgICAgICMgVk9XRUwgU0lHTiBJCitcdUUwNDA+XHUwOUMwOyAgICAgICAgICAjIFZPV0VMIFNJR04gSUkKK1x1RTA0MT5cdTA5QzE7ICAgICAgICAgICMgVk9XRUwgU0lHTiBVCitcdUUwNDI+XHUwOUMyOyAgICAgICAgICAjIFZPV0VMIFNJR04gVVUKK1x1RTA0Mz5cdTA5QzM7ICAgICAgICAgICMgVk9XRUwgU0lHTiBWT0NBTElDIFIKK1x1RTA0ND5cdTA5QzQ7ICAgICAgICAgICMgVk9XRUwgU0lHTiBWT0NBTElDIFJSCitcdUUwNDU+XHUwOUM3OyAgICAgICAgICAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwOWM1Plx1MDljNyA9IFZPV0VMIFNJR04gQ0FORFJBIEU+Vk9XRUwgU0lHTiBFCitcdUUwNDY+XHUwOUM3OyAgICAgICAgICAjIEZBTExCQUNLCitcdUUwNDc+XHUwOUM3OyAgICAgICAgICAjIFZPV0VMIFNJR04gRQorXHVFMDQ4Plx1MDlDODsgICAgICAgICAgIyBWT1dFTCBTSUdOIEFJCitcdUUwNDk+XHUwOUM3XHUwOUJFOyAgICAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwOWM5Plx1MDljYiA9IFZPV0VMIFNJR04gQ0FORFJBIE8+Vk9XRUwgU0lHTiBPCitcdUUwNEE+XHUwOUM3XHUwOUJFOyAgICAjIEZBTExCQUNLCitcdUUwNEI+XHUwOUM3XHUwOUJFOyAgICAjIFZPV0VMIFNJR04gTworXHVFMDRDPlx1MDlDN1x1MDlENzsgICAgIyBWT1dFTCBTSUdOIEFVCitcdUUwNEQ+XHUwOUNEOyAgICAgICAgICAjIFNJR04gVklSQU1BCitcdUUwNTA+XHUwOTkzXHUwOTgyOyAgICAjICBJbnRlckluZGljLUJlbmdhbGk6IE9NCitcdWUwNTE+OworXHVlMDUyPjsKK1x1ZTA1Mz47CitcdWUwNTQ+OworXHVFMDU1PjsgICAgICAgICAgICAgICAjIFVOTUFQUEVEIEludGVySW5kaWMtQmVuZ2FsaTogTEVOR1RIIE1BUksKK1x1RTA1Nj5cdTA5Qzg7ICAgICAgICAgICMgUkVNQVAgKGluZGljRXhjZXB0aW9ucy50eHQpOiBcdTA5ZDY+XHUwOWM4ID0gQUkgTEVOR1RIIE1BUks+Vk9XRUwgU0lHTiBBSQorXHVFMDU3Plx1MDlENzsgICAgICAgICAgIyBBVSBMRU5HVEggTUFSSworXHVFMDU4Plx1MDk5NVx1MDlCQzsgICAgIyBGQUxMQkFDSworXHVFMDU5Plx1MDk5Nlx1MDlCQzsgICAgIyBSRU1BUCAoaW5kaWNFeGNlcHRpb25zLnR4dCk6IFx1MDlkOT5cdTA5OTYgPSBMRVRURVIgS0hIQT5MRVRURVIgS0hBCitcdUUwNUE+XHUwOTk3XHUwOUJDOyAgICAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwOWRhPlx1MDk5NyA9IExFVFRFUiBHSEhBPkxFVFRFUiBHQQorXHVFMDVCPlx1MDk5Q1x1MDlCQzsgICAgIyBSRU1BUCAoaW5kaWNFeGNlcHRpb25zLnR4dCk6IFx1MDlkYj5cdTA5OWMgPSBMRVRURVIgWkE+TEVUVEVSIEpBCitcdUUwNUM+XHUwOUExXHUwOUJDOyAgICAjIEZBTExCQUNLCitcdUUwNUQ+XHUwOUEyXHUwOUJDOyAgICAjIExFVFRFUiBSSEEKK1x1RTA1RT5cdTA5QUJcdTA5QkM7ICAgICMgUkVNQVAgKGluZGljRXhjZXB0aW9ucy50eHQpOiBcdTA5ZGU+XHUwOWFiID0gTEVUVEVSIEZBPkxFVFRFUiBQSEEKK1x1RTA1Rj5cdTA5QUZcdTA5QkM7ICAgICMgTEVUVEVSIFlZQQorXHVFMDYwPlx1MDlFMDsgICAgICAgICAgIyBMRVRURVIgVk9DQUxJQyBSUgorXHVFMDYxPlx1MDlFMTsgICAgICAgICAgIyBMRVRURVIgVk9DQUxJQyBMTAorXHVFMDYyPlx1MDlFMjsgICAgICAgICAgIyBWT1dFTCBTSUdOIFZPQ0FMSUMgTAorXHVFMDYzPlx1MDlFMzsgICAgICAgICAgIyBWT1dFTCBTSUdOIFZPQ0FMSUMgTEwKK1x1RTA2ND5cdTA5NjQ7ICAgICAgICAgICMgREFOREEKK1x1RTA2NT5cdTA5NjU7ICAgICAgICAgICMgRE9VQkxFIERBTkRBCitcdUUwNjY+XHUwOUU2OyAgICAgICAgICAjIERJR0lUIFpFUk8KK1x1RTA2Nz5cdTA5RTc7ICAgICAgICAgICMgRElHSVQgT05FCitcdUUwNjg+XHUwOUU4OyAgICAgICAgICAjIERJR0lUIFRXTworXHVFMDY5Plx1MDlFOTsgICAgICAgICAgIyBESUdJVCBUSFJFRQorXHVFMDZBPlx1MDlFQTsgICAgICAgICAgIyBESUdJVCBGT1VSCitcdUUwNkI+XHUwOUVCOyAgICAgICAgICAjIERJR0lUIEZJVkUKK1x1RTA2Qz5cdTA5RUM7ICAgICAgICAgICMgRElHSVQgU0lYCitcdUUwNkQ+XHUwOUVEOyAgICAgICAgICAjIERJR0lUIFNFVkVOCitcdUUwNkU+XHUwOUVFOyAgICAgICAgICAjIERJR0lUIEVJR0hUCitcdUUwNkY+XHUwOUVGOyAgICAgICAgICAjIERJR0lUIE5JTkUKK1x1RTA3MD5cdTA5RjA7ICAgICAgICAgICMgIFVOTUFQUEVEIEJlbmdhbGktSW50ZXJJbmRpYzogTEVUVEVSIFJBIFdJVEggTUlERExFIERJQUdPTkFMCitcdUUwNzE+XHUwOUYxOworMCA+IFx1MDlFNjsgICAgICAgIyBGQUxMQkFDSyBGT1IgVEFNSUwKKzEgPiBcdTA5RTc7CitcdWUwNzI+OworXHVlMDczPjsKK1x1ZTA3ND47CisKK1x1ZTA3NT5cdTA5RjU7CitcdWUwNzY+XHUwOUY2OworXHVlMDc3Plx1MDlGNzsKK1x1ZTA3OD5cdTA5Rjg7CitcdWUwNzk+XHUwOUY5OworXHVlMDdBPlx1MDlGQTsJCSMgSVNTSEFSCisKKyMgICAgOjogTkZDIChORkQpIDsKKyMgZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0ludGVySW5kaWNfRGV2YW5hZ2FyaS50eHQgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0ludGVySW5kaWNfRGV2YW5hZ2FyaS50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTQzNTUzNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfSW50ZXJJbmRpY19EZXZhbmFnYXJpLnR4dApAQCAtMCwwICsxLDE1OSBAQAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvcHlyaWdodCAoYykgMTk5OS0yMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisjIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9BdHRpYy9UcmFuc2xpdGVyYXRvcl9JbnRlckluZGljX0RldmFuYWdhcmkudHh0LHYgJAorIyAkRGF0ZTogMjAwMi8wOC8xNCAwMDo0MDo1OCAkCisjICRSZXZpc2lvbjogMS44ICQKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIEludGVySW5kaWMtRGV2YW5hZ2FyaQorIzo6IE5GRCAoTkZDKSA7IAorI1J1bGVzIGZvciBEZWNvbXBvc2VkIGNoYXJhY3RlcnMKKyBcdWUwMjhcdWUwM2MgPiBcdTA5Mjk7ICAjXHVlMDI5CisgXHVlMDMwXHVlMDNjID4gXHUwOTMxOyAgI1x1ZTAzMQorIFx1ZTAzM1x1ZTAzYyA+IFx1MDkzNDsgICNcdWUwMzQKKyBcdWUwMTVcdWUwM2MgPiBcdTA5NTg7ICAjXHVlMDU4IExFVFRFUiBRQSAgIChGb3IgVXJkdSkKKyBcdWUwMTZcdWUwM2MgPiBcdTA5NTk7ICAjXHVlMDU5IExFVFRFUiBLSEhBIChGb3IgVXJkdSkKKyBcdWUwMTdcdWUwM2MgPiBcdTA5NWE7ICAjXHVlMDVhIExFVFRFUiBHSEhBIChGb3IgVXJkdSkKKyBcdWUwMWNcdWUwM2MgPiBcdTA5NWI7ICAjXHVlMDViIExFVFRFUiBaQSAgIChGb3IgVXJkdSkKKyBcdWUwMjFcdWUwM2MgPiBcdTA5NWM7ICAjXHVlMDVjIExFVFRFUiBERERIQSAocHJvbm91bmNlZCBSUkEpCisgXHVlMDIyXHVlMDNjID4gXHUwOTVkOyAgI1x1ZTA1ZCBMRVRURVIgUkhBICAgKHByb25vdW5jZWQgUlJIQSkKKyBcdWUwMmJcdWUwM2MgPiBcdTA5NWU7ICAjXHVlMDVlIExFVFRFUiBGQQorIFx1ZTAyZlx1ZTAzYyA+IFx1MDk1ZjsgICNcdWUwNWYgTEVUVEVSIFlZQQorIAorICNEZWNvbXBvc2VkIGNvbXBhdGliaWxpdHkgdHJhbnNsaXRlcmF0aW9ucworIFx1ZTAxMlx1ZTA1Nz5cdTA5MTQ7ICAgIyBGQUxMQkFDSyBGT1IgVEFNSUwgQVUKKyAwID4gXHUwOTY2OyAgICAgICAjIEZBTExCQUNLIEZPUiBUQU1JTAorIDEgPiBcdTA5Njc7CisKKyBcdWUwNTU+OyAjIEZBTExCQUNLIEJMT1cgQVdBWSBLQU5OQURBIEFORCBURUxVR1UgTEVOR1RIIE1BUksKKyBcdWUwNTY+OyAjIEZBTExCQUNLIEJMT1cgQVdBWSBLQU5OQURBIEFORCBURUxVR1UgQUkgTEVOR1RIIE1BUksKKyBcdWUwNTc+OyAjIEZBTExCQUNLIEJMT1cgQVdBWSBUQU1JTCBBVSBMRU5HVEggTUFSSworIFx1ZTA3MD47ICMgRkFMTEJBQ0sgQkxPVyBBV0FZIEdVUk1VS0hJIAorIFx1ZTA3MT47ICMgRkFMTEJBQ0sgQkxPVyBBV0FZIEdVUk1VS0hJCisgXHVlMDcyPjsgIyBGQUxMQkFDSyBCTE9XIEFXQVkgR1VSTVVLSEkKKyBcdWUwNzM+OyAjIEZBTExCQUNLIEJMT1cgQVdBWSBHVVJNVUtISQorIFx1ZTA3ND47ICMgRkFMTEJBQ0sgQkxPVyBBV0FZIEdVUk1VS0hJCisKKworIFx1ZTAwMSA+ICBcdTA5MDE7ICAjIFNJR04gQ0FORFJBQklORFUKKyBcdWUwMDIgPiAgXHUwOTAyOyAgIyBTSUdOIEFOVVNWQVJBCisgXHVlMDAzID4gIFx1MDkwMzsgICMgU0lHTiBWSVNBUkdBCisgXHVlMDA1ID4gIFx1MDkwNTsgICMgTEVUVEVSIEEKKyBcdWUwMDYgPiAgXHUwOTA2OyAgIyBMRVRURVIgQUEKKyBcdWUwMDcgPiAgXHUwOTA3OyAgIyBMRVRURVIgSQorIFx1ZTAwOCA+ICBcdTA5MDg7ICAjIExFVFRFUiBJSQorIFx1ZTAwOSA+ICBcdTA5MDk7ICAjIExFVFRFUiBVCisgXHVlMDBhID4gIFx1MDkwYTsgICMgTEVUVEVSIFVVCisgXHVlMDBiID4gIFx1MDkwYjsgICMgTEVUVEVSIFZPQ0FMSUMgUgorIFx1ZTAwYyA+ICBcdTA5MGM7ICAjIExFVFRFUiBWT0NBTElDIEwKKyBcdWUwMGQgPiAgXHUwOTBkOyAgIyBMRVRURVIgQ0FORFJBIEUgKEZvciByZXByZXNlbnRpbmcgRW5nbGlzaCBzb3VuZHMpCisgXHVlMDBlID4gIFx1MDkwZTsgIyBVTk1BUFBFRCBMRVRURVIgU0hPUlQgRShGb3IgU291dGhlcm4gU2NyaXB0cykKKyAjXHVlMDBlID4gIFx1MDkwZjsKKyBcdWUwMGYgPiAgXHUwOTBmOyAgIyBMRVRURVIgRQorIFx1ZTAxMCA+ICBcdTA5MTA7ICAjIExFVFRFUiBBSQorIFx1ZTAxMSA+ICBcdTA5MTE7ICAjIExFVFRFUiBDQU5EUkEgTyAoRm9yIHJlcHJlc2VudGluZyBFbmdsaXNoIHNvdW5kcykKKyBcdWUwMTIgPiAgXHUwOTEyOyAjIFVOTUFQUEVEIExFVFRFUiBTSE9SVCBPIChGb3IgU291dGhlcm4gU2NyaXB0cykKKyAjXHVlMDEyID4gIFx1MDkxMzsgCisgXHVlMDEzID4gIFx1MDkxMzsgICMgTEVUVEVSIE8KKyBcdWUwMTQgPiAgXHUwOTE0OyAgIyBMRVRURVIgQVUKKyBcdWUwMTUgPiAgXHUwOTE1OyAgIyBMRVRURVIgS0EKKyBcdWUwMTYgPiAgXHUwOTE2OyAgIyBMRVRURVIgS0hBCisgXHVlMDE3ID4gIFx1MDkxNzsgICMgTEVUVEVSIEdBCisgXHVlMDE4ID4gIFx1MDkxODsgICMgTEVUVEVSIEdIQQorIFx1ZTAxOSA+ICBcdTA5MTk7ICAjIExFVFRFUiBOR0EKKyBcdWUwMWEgPiAgXHUwOTFhOyAgIyBMRVRURVIgQ0EKKyBcdWUwMWIgPiAgXHUwOTFiOyAgIyBMRVRURVIgQ0hBCisgXHVlMDFjID4gIFx1MDkxYzsgICMgTEVUVEVSIEpBCisgXHVlMDFkID4gIFx1MDkxZDsgICMgTEVUVEVSIEpIQQorIFx1ZTAxZSA+ICBcdTA5MWU7ICAjIExFVFRFUiBOWUEKKyBcdWUwMWYgPiAgXHUwOTFmOyAgIyBMRVRURVIgVFRBCisgXHVlMDIwID4gIFx1MDkyMDsgICMgTEVUVEVSIFRUSEEKKyBcdWUwMjEgPiAgXHUwOTIxOyAgIyBMRVRURVIgRERBCisgXHVlMDIyID4gIFx1MDkyMjsgICMgTEVUVEVSIERESEEKKyBcdWUwMjMgPiAgXHUwOTIzOyAgIyBMRVRURVIgTk5BCisgXHVlMDI0ID4gIFx1MDkyNDsgICMgTEVUVEVSIFRBCisgXHVlMDI1ID4gIFx1MDkyNTsgICMgTEVUVEVSIFRIQQorIFx1ZTAyNiA+ICBcdTA5MjY7ICAjIExFVFRFUiBEQQorIFx1ZTAyNyA+ICBcdTA5Mjc7ICAjIExFVFRFUiBESEEKKyBcdWUwMjggPiAgXHUwOTI4OyAgIyBMRVRURVIgTkEKKyBcdWUwMjkgPiAgXHUwOTI5OyAgIyBMRVRURVIgTk5OQQorIFx1ZTAyYSA+ICBcdTA5MmE7ICAjIExFVFRFUiBQQQorIFx1ZTAyYiA+ICBcdTA5MmI7ICAjIExFVFRFUiBQSEEKKyBcdWUwMmMgPiAgXHUwOTJjOyAgIyBMRVRURVIgQkEKKyBcdWUwMmQgPiAgXHUwOTJkOyAgIyBMRVRURVIgQkhBCisgXHVlMDJlID4gIFx1MDkyZTsgICMgTEVUVEVSIE1BCisgXHVlMDJmID4gIFx1MDkyZjsgICMgTEVUVEVSIFlBCisgXHVlMDMwID4gIFx1MDkzMDsgICMgTEVUVEVSIFJBCisgXHVlMDMxID4gIFx1MDkzMTsgICMgTEVUVEVSIFJSQSAoRXllbGFzaCBSQSBmb3IgU291dGhlcm4gc2NyaXB0cykKKyAjXHVlMDMxID4gIFx1MDkzMDsgIAorIFx1ZTAzMiA+ICBcdTA5MzI7ICAjIExFVFRFUiBMQQorIFx1ZTAzMyA+ICBcdTA5MzM7ICAjIExFVFRFUiBMTEEKKyBcdWUwMzQgPiAgXHUwOTM0OyAgIyBMRVRURVIgTExMQSAoTExMQSBmb3IgU291dGhlcm4gc2NyaXB0cykKKyAjXHVlMDM0ID4gIFx1MDkzMzsgIAorIFx1ZTAzNSA+ICBcdTA5MzU7ICAjIExFVFRFUiBWQQorIFx1ZTAzNiA+ICBcdTA5MzY7ICAjIExFVFRFUiBTSEEKKyBcdWUwMzcgPiAgXHUwOTM3OyAgIyBMRVRURVIgU1NBCisgXHVlMDM4ID4gIFx1MDkzODsgICMgTEVUVEVSIFNBCisgXHVlMDM5ID4gIFx1MDkzOTsgICMgTEVUVEVSIEhBCisgXHVlMDNjID4gIFx1MDkzYzsgICMgU0lHTiBOVUtUQQorIFx1ZTAzZCA+ICBcdTA5M2Q7ICAjIFNJR04gQVZBR1JBSEEKKyBcdWUwM2UgPiAgXHUwOTNlOyAgIyBWT1dFTCBTSUdOIEFBCisgXHVlMDNmID4gIFx1MDkzZjsgICMgVk9XRUwgU0lHTiBJCisgXHVlMDQwID4gIFx1MDk0MDsgICMgVk9XRUwgU0lHTiBJSQorIFx1ZTA0MSA+ICBcdTA5NDE7ICAjIFZPV0VMIFNJR04gVQorIFx1ZTA0MiA+ICBcdTA5NDI7ICAjIFZPV0VMIFNJR04gVVUKKyBcdWUwNDMgPiAgXHUwOTQzOyAgIyBWT1dFTCBTSUdOIFZPQ0FMSUMgUgorIFx1ZTA0NCA+ICBcdTA5NDQ7ICAjIFZPV0VMIFNJR04gVk9DQUxJQyBSUgorIFx1ZTA0NSA+ICBcdTA5NDU7ICAjIFZPV0VMIFNJR04gQ0FORFJBIEUKKyBcdWUwNDYgPiAgXHUwOTQ2OyAjIFVOTUFQUEVEIFZPV0VMIFNJR04gU0hPUlQgRQorICNcdWUwNDYgPiAgXHUwOTQ3OyAKKyBcdWUwNDcgPiAgXHUwOTQ3OyAgIyBWT1dFTCBTSUdOIEUKKyBcdWUwNDggPiAgXHUwOTQ4OyAgIyBWT1dFTCBTSUdOIEFJCisgXHVlMDQ5ID4gIFx1MDk0OTsgICMgVk9XRUwgU0lHTiBDQU5EUkEgTworIFx1ZTA0YSA+ICBcdTA5NGE7ICMgVU5NQVBQRUQgVk9XRUwgU0lHTiBTSE9SVCBPCisgI1x1ZTA0YSA+ICBcdTA5NGI7IAorIFx1ZTA0YiA+ICBcdTA5NGI7ICAjIFZPV0VMIFNJR04gTworIFx1ZTA0YyA+ICBcdTA5NGM7ICAjIFZPV0VMIFNJR04gQVUKKyBcdWUwNGQgPiAgXHUwOTRkOyAgIyBTSUdOIFZJUkFNQQorIFx1ZTA1MCA+ICBcdTA5NTA7ICAjIE9NCisgXHVlMDUxID4gIFx1MDk1MTsgICMgVU5NQVBQRUQgU1RSRVNTIFNJR04gVURBVFRBCisgXHVlMDUyID4gIFx1MDk1MjsgICMgVU5NQVBQRUQgU1RSRVNTIFNJR04gQU5VREFUVEEKKyBcdWUwNTMgPiAgXHUwOTUzOyAgIyBVTk1BUFBFRCBHUkFWRSBBQ0NFTlQKKyBcdWUwNTQgPiAgXHUwOTU0OyAgIyBVTk1BUFBFRCBBQ1VURSBBQ0NFTlQKKyBcdWUwNTggPiAgXHUwOTU4OyAgIyBMRVRURVIgUUEgICAoRm9yIFVyZHUpCisgXHVlMDU5ID4gIFx1MDk1OTsgICMgTEVUVEVSIEtISEEgKEZvciBVcmR1KQorIFx1ZTA1YSA+ICBcdTA5NWE7ICAjIExFVFRFUiBHSEhBIChGb3IgVXJkdSkKKyBcdWUwNWIgPiAgXHUwOTViOyAgIyBMRVRURVIgWkEgICAoRm9yIFVyZHUpCisgXHVlMDVjID4gIFx1MDk1YzsgICMgTEVUVEVSIEREREhBIChwcm9ub3VuY2VkIFJSQSkKKyBcdWUwNWQgPiAgXHUwOTVkOyAgIyBMRVRURVIgUkhBICAgKHByb25vdW5jZWQgUlJIQSkKKyBcdWUwNWUgPiAgXHUwOTVlOyAgIyBMRVRURVIgRkEKKyBcdWUwNWYgPiAgXHUwOTVmOyAgIyBMRVRURVIgWVlBCisgXHVlMDYwID4gIFx1MDk2MDsgICMgTEVUVEVSIFZPQ0FMSUMgUlIKKyBcdWUwNjEgPiAgXHUwOTYxOyAgIyBMRVRURVIgVk9DQUxJQyBMTAorIFx1ZTA2MiA+ICBcdTA5NjI7ICAjIFZPV0VMIFNJR04gVk9DQUxJQyBMCisgXHVlMDYzID4gIFx1MDk2MzsgICMgVk9XRUwgU0lHTiBWT0NBTElDIExMCisgXHVlMDY0ID4gIFx1MDk2NDsgICMgVU5NQVBQRUQgRGV2YW5hZ2FyaS1JbnRlckluZGljOiBEQU5EQQorIFx1ZTA2NSA+ICBcdTA5NjU7ICAjIFVOTUFQUEVEIERldmFuYWdhcmktSW50ZXJJbmRpYzogRE9VQkxFIERBTkRBCisgXHVlMDY2ID4gIFx1MDk2NjsgICMgRElHSVQgWkVSTworIFx1ZTA2NyA+ICBcdTA5Njc7ICAjIERJR0lUIE9ORQorIFx1ZTA2OCA+ICBcdTA5Njg7ICAjIERJR0lUIFRXTworIFx1ZTA2OSA+ICBcdTA5Njk7ICAjIERJR0lUIFRIUkVFCisgXHVlMDZhID4gIFx1MDk2YTsgICMgRElHSVQgRk9VUgorIFx1ZTA2YiA+ICBcdTA5NmI7ICAjIERJR0lUIEZJVkUKKyBcdWUwNmMgPiAgXHUwOTZjOyAgIyBESUdJVCBTSVgKKyBcdWUwNmQgPiAgXHUwOTZkOyAgIyBESUdJVCBTRVZFTgorIFx1ZTA2ZSA+ICBcdTA5NmU7ICAjIERJR0lUIEVJR0hUCisgXHVlMDZmID4gIFx1MDk2ZjsgICMgRElHSVQgTklORQorCitcdWUwNzU+OworXHVlMDc2PjsKK1x1ZTA3Nz47CitcdWUwNzg+OworXHVlMDc5PjsKK1x1ZTA3QT47CisgCisjICAgICAgICAgXHUwOTcwICAjIFVOTUFQUEVEIERldmFuYWdhcmktSW50ZXJJbmRpYzogQUJCUkVWSUFUSU9OIFNJR04KKyMgICAgOjogTkZDOworIyBlb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfSW50ZXJJbmRpY19HdWphcmF0aS50eHQgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0ludGVySW5kaWNfR3VqYXJhdGkudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg2ODkxNTkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0ludGVySW5kaWNfR3VqYXJhdGkudHh0CkBAIC0wLDAgKzEsMTM0IEBACisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0F0dGljL1RyYW5zbGl0ZXJhdG9yX0ludGVySW5kaWNfR3VqYXJhdGkudHh0LHYgJAorIyAkRGF0ZTogMjAwMi8wOC8xNCAwMDo0MDo1OCAkCisjICRSZXZpc2lvbjogMS45ICQKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIEludGVySW5kaWMtR3VqYXJhdGkKKyM6OiBORkQgKE5GQykgOworXHVlMDAxPlx1MGE4MTsgIyBTSUdOIENBTkRSQUJJTkRVCitcdWUwMDI+XHUwYTgyOyAjIFNJR04gQU5VU1ZBUkEKK1x1ZTAwMz5cdTBhODM7ICMgU0lHTiBWSVNBUkdBCitcdWUwMDU+XHUwYTg1OyAjIExFVFRFUiBBCitcdWUwMDY+XHUwYTg2OyAjIExFVFRFUiBBQQorXHVlMDA3Plx1MGE4NzsgIyBMRVRURVIgSQorXHVlMDA4Plx1MGE4ODsgIyBMRVRURVIgSUkKK1x1ZTAwOT5cdTBhODk7ICMgTEVUVEVSIFUKK1x1ZTAwYT5cdTBhOGE7ICMgTEVUVEVSIFVVCitcdWUwMGI+XHUwYThiOyAjIExFVFRFUiBWT0NBTElDIFIKK1x1ZTAwYz5cdTBhYjJcdTBhYzM7ICMgUkVNQVAgKGluZGljRXhjZXB0aW9ucy50eHQpOiBcdTBhOGM+XHUwYWIyXHUwYWMzID0gTEVUVEVSIFZPQ0FMSUMgTD5MRVRURVIgTEEuVk9XRUwgU0lHTiBWT0NBTElDIFIKK1x1ZTAwZD5cdTBhOGQ7ICMgR1VKQVJBVEkgVk9XRUwgQ0FORFJBIEUKK1x1ZTAwZT5cdTBhOGY7ICMgRkFMTEJBQ0sKK1x1ZTAwZj5cdTBhOGY7ICMgIEludGVySW5kaWMtR3VqYXJhdGk6IExFVFRFUiBFRSAoXHUwYThmID0gTEVUVEVSIEUpCitcdWUwMTA+XHUwYTkwOyAjIExFVFRFUiBBSQorXHVlMDExPlx1MGE5MTsgIyBGQUxMQkFDSworXHVlMDEyPlx1MGE5MzsgIyBGQUxMQkFDSworXHVlMDEzPlx1MGE5MzsgIyBVTk1BUFBFRCBJbnRlckluZGljLUd1amFyYXRpOiBMRVRURVIgT08gKFx1MGE5MyA9IExFVFRFUiBPKQorXHVlMDE0Plx1MGE5NDsgIyBMRVRURVIgQVUKK1x1ZTAxNT5cdTBhOTU7ICMgTEVUVEVSIEtBCitcdWUwMTY+XHUwYTk2OyAjIExFVFRFUiBLSEEKK1x1ZTAxNz5cdTBhOTc7ICMgTEVUVEVSIEdBCitcdWUwMTg+XHUwYTk4OyAjIExFVFRFUiBHSEEKK1x1ZTAxOT5cdTBhOTk7ICMgTEVUVEVSIE5HQQorXHVlMDFhPlx1MGE5YTsgIyBMRVRURVIgQ0EKK1x1ZTAxYj5cdTBhOWI7ICMgTEVUVEVSIENIQQorXHVlMDFjPlx1MGE5YzsgIyBMRVRURVIgSkEKK1x1ZTAxZD5cdTBhOWQ7ICMgTEVUVEVSIEpIQQorXHVlMDFlPlx1MGE5ZTsgIyBMRVRURVIgTllBCitcdWUwMWY+XHUwYTlmOyAjIExFVFRFUiBUVEEKK1x1ZTAyMD5cdTBhYTA7ICMgTEVUVEVSIFRUSEEKK1x1ZTAyMT5cdTBhYTE7ICMgTEVUVEVSIEREQQorXHVlMDIyPlx1MGFhMjsgIyBMRVRURVIgRERIQQorXHVlMDIzPlx1MGFhMzsgIyBMRVRURVIgTk5BCitcdWUwMjQ+XHUwYWE0OyAjIExFVFRFUiBUQQorXHVlMDI1Plx1MGFhNTsgIyBMRVRURVIgVEhBCitcdWUwMjY+XHUwYWE2OyAjIExFVFRFUiBEQQorXHVlMDI3Plx1MGFhNzsgIyBMRVRURVIgREhBCitcdWUwMjg+XHUwYWE4OyAjIExFVFRFUiBOQQorXHVlMDI5Plx1MGFhOFx1MGFiYzsgIyBGQUxMQkFDSyB0byBOQStOVUtUQQorXHVlMDJhPlx1MGFhYTsgIyBMRVRURVIgUEEKK1x1ZTAyYj5cdTBhYWI7ICMgTEVUVEVSIFBIQQorXHVlMDJjPlx1MGFhYzsgIyBMRVRURVIgQkEKK1x1ZTAyZD5cdTBhYWQ7ICMgTEVUVEVSIEJIQQorXHVlMDJlPlx1MGFhZTsgIyBMRVRURVIgTUEKK1x1ZTAyZj5cdTBhYWY7ICMgTEVUVEVSIFlBCitcdWUwMzA+XHUwYWIwOyAjIExFVFRFUiBSQQorXHVlMDMxPlx1MGFiMFx1MGFiYzsgIyBGQUxMQkFDSworXHVlMDMyPlx1MGFiMjsgIyBMRVRURVIgTEEKK1x1ZTAzMz5cdTBhYjM7ICMgTEVUVEVSIExMQQorXHVlMDM0Plx1MGFiM1x1MGFiYzsgIyAgTEVUVEVSIExMTEE+TEVUVEVSIExMQStOVUtUQQorXHVlMDM1Plx1MGFiNTsgIyBMRVRURVIgVkEKK1x1ZTAzNj5cdTBhYjY7ICMgTEVUVEVSIFNIQQorXHVlMDM3Plx1MGFiNzsgIyBMRVRURVIgU1NBCitcdWUwMzg+XHUwYWI4OyAjIExFVFRFUiBTQQorXHVlMDM5Plx1MGFiOTsgIyBMRVRURVIgSEEKK1x1ZTAzYz5cdTBhYmM7ICMgU0lHTiBOVUtUQQorXHVlMDNkPlx1MGFiZDsgIyBTSUdOIEFWQUdSQUhBCitcdWUwM2U+XHUwYWJlOyAjIFZPV0VMIFNJR04gQUEKK1x1ZTAzZj5cdTBhYmY7ICMgVk9XRUwgU0lHTiBJCitcdWUwNDA+XHUwYWMwOyAjIFZPV0VMIFNJR04gSUkKK1x1ZTA0MT5cdTBhYzE7ICMgVk9XRUwgU0lHTiBVCitcdWUwNDI+XHUwYWMyOyAjIFZPV0VMIFNJR04gVVUKK1x1ZTA0Mz5cdTBhYzM7ICMgVk9XRUwgU0lHTiBWT0NBTElDIFIKK1x1ZTA0ND5cdTBhYzQ7ICMgVk9XRUwgU0lHTiBWT0NBTElDIFJSCitcdWUwNDU+XHUwYWM1OyAjIFZPV0VMIFNJR04gQ0FORFJBIEUKK1x1ZTA0Nj5cdTBhYzc7ICMgRkFMTEJBQ0sKK1x1ZTA0Nz5cdTBhYzc7ICMgIEludGVySW5kaWMtR3VqYXJhdGk6IFZPV0VMIFNJR04gRUUgKFx1MGFjNyA9IFZPV0VMIFNJR04gRSkKK1x1ZTA0OD5cdTBhYzg7ICMgVk9XRUwgU0lHTiBBSQorXHVlMDQ5Plx1MGFjOTsgIyBWT1dFTCBTSUdOIENBTkRSQSBPCitcdWUwNGE+XHUwYWNiOyAjIEZBTExCQUNLCitcdWUwNGI+XHUwYWNiOyAjIFVOTUFQUEVEIEludGVySW5kaWMtR3VqYXJhdGk6IFZPV0VMIFNJR04gT08gKFx1MGFjYiA9IFZPV0VMIFNJR04gTykKK1x1ZTA0Yz5cdTBhY2M7ICMgVk9XRUwgU0lHTiBBVQorXHVlMDRkPlx1MGFjZDsgIyBTSUdOIFZJUkFNQQorXHVlMDUwPlx1MGFkMDsgIyBPTQorXHVlMDUxPjsKK1x1ZTA1Mj47CitcdWUwNTM+OworXHVlMDU0PjsKK1x1ZTA1NT47ICMgVU5NQVBQRUQgSW50ZXJJbmRpYy1HdWphcmF0aTogTEVOR1RIIE1BUksKK1x1ZTA1Nj5cdTBhYzg7ICMgUkVNQVAgKGluZGljRXhjZXB0aW9ucy50eHQpOiBcdTBhZDY+XHUwYWM4ID0gQUkgTEVOR1RIIE1BUks+Vk9XRUwgU0lHTiBBSQorXHVlMDU3Plx1MGFjYzsgIyBSRU1BUCAoaW5kaWNFeGNlcHRpb25zLnR4dCk6IFx1MGFkNz5cdTBhY2MgPSBBVSBMRU5HVEggTUFSSz5WT1dFTCBTSUdOIEFVCitcdWUwNTg+XHUwYTk1XHUwYWJjOyAjIEZBTExCQUNLCitcdWUwNTk+XHUwYTk2XHUwYWJjOyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwYWQ5Plx1MGE5Nlx1MGFiYyA9IExFVFRFUiBLSEhBPkxFVFRFUiBLSEEuU0lHTiBOVUtUQQorXHVlMDVhPlx1MGE5N1x1MGFiYzsgIyBSRU1BUCAoaW5kaWNFeGNlcHRpb25zLnR4dCk6IFx1MGFkYT5cdTBhOTdcdTBhYmMgPSBMRVRURVIgR0hIQT5MRVRURVIgR0EuU0lHTiBOVUtUQQorXHVlMDViPlx1MGE5Y1x1MGFiYzsgIyBSRU1BUCAoaW5kaWNFeGNlcHRpb25zLnR4dCk6IFx1MGFkYj5cdTBhOWNcdTBhYmMgPSBMRVRURVIgWkE+TEVUVEVSIEpBLlNJR04gTlVLVEEKK1x1ZTA1Yz5cdTBhYTFcdTBhYmM7ICMgRkFMTEJBQ0sKK1x1ZTA1ZD5cdTBhYTJcdTBhYmM7ICMgUkVNQVAgKGluZGljRXhjZXB0aW9ucy50eHQpOiBcdTBhZGQ+XHUwYWEyXHUwYWJjID0gTEVUVEVSIFJIQT5MRVRURVIgRERIQS5TSUdOIE5VS1RBCitcdWUwNWU+XHUwYWFiXHUwYWJjOyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwYWRlPlx1MGFhYlx1MGFiYyA9IExFVFRFUiBGQT5MRVRURVIgUEhBLlNJR04gTlVLVEEKK1x1ZTA1Zj5cdTBhYWZcdTBhYmM7ICMgUkVNQVAgKGluZGljRXhjZXB0aW9ucy50eHQpOiBcdTBhZGY+XHUwYWFmXHUwYWJjID0gTEVUVEVSIFlZQT5MRVRURVIgWUEuU0lHTiBOVUtUQQorXHVlMDYwPlx1MGFlMDsgIyBMRVRURVIgVk9DQUxJQyBSUgorXHVlMDYxPlx1MGFiMlx1MGFjMzsgIyBSRU1BUCAoaW5kaWNFeGNlcHRpb25zLnR4dCk6IFx1MGFlMT5cdTBhYjJcdTBhYzMgPSBMRVRURVIgVk9DQUxJQyBMTD5MRVRURVIgTEEuVk9XRUwgU0lHTiBWT0NBTElDIFIKK1x1ZTA2Mj5cdTBhYmZcdTBhYmM7ICMgUkVNQVAgKGluZGljRXhjZXB0aW9ucy50eHQpOiBcdTBhZTI+XHUwYWJmXHUwYWJjID0gVk9XRUwgU0lHTiBWT0NBTElDIEw+Vk9XRUwgU0lHTiBJLlNJR04gTlVLVEEKK1x1ZTA2Mz5cdTBhYzBcdTBhYmM7ICMgUkVNQVAgKGluZGljRXhjZXB0aW9ucy50eHQpOiBcdTBhZTM+XHUwYWMwXHUwYWJjID0gVk9XRUwgU0lHTiBWT0NBTElDIExMPlZPV0VMIFNJR04gSUkuU0lHTiBOVUtUQQorXHVFMDY0Plx1MDk2NDsgICAgICAgICAgIyBEQU5EQQorXHVFMDY1Plx1MDk2NTsgICAgICAgICAgIyBET1VCTEUgREFOREEKK1x1ZTA2Nj5cdTBhZTY7ICMgRElHSVQgWkVSTworXHVlMDY3Plx1MGFlNzsgIyBESUdJVCBPTkUKK1x1ZTA2OD5cdTBhZTg7ICMgRElHSVQgVFdPCitcdWUwNjk+XHUwYWU5OyAjIERJR0lUIFRIUkVFCitcdWUwNmE+XHUwYWVhOyAjIERJR0lUIEZPVVIKK1x1ZTA2Yj5cdTBhZWI7ICMgRElHSVQgRklWRQorXHVlMDZjPlx1MGFlYzsgIyBESUdJVCBTSVgKK1x1ZTA2ZD5cdTBhZWQ7ICMgRElHSVQgU0VWRU4KK1x1ZTA2ZT5cdTBhZWU7ICMgRElHSVQgRUlHSFQKK1x1ZTA2Zj5cdTBhZWY7ICMgRElHSVQgTklORQorXHVlMDcwID4gIFx1MGFiMDsgICMgRkFMTEJBQ0sgUkEgCitcdWUwNzEgPiAgXHUwYWIwOyAgIyBGQUxMQkFDSyBSQQorXHVlMDcyPjsKK1x1ZTA3Mz47CitcdWUwNzQ+OworXHVlMDc1PjsKK1x1ZTA3Nj47CitcdWUwNzc+OworXHVlMDc4PjsKK1x1ZTA3OT47CitcdWUwN0E+OworMCA+IFx1MGFlNjsgICAgICAgIyBGQUxMQkFDSyBGT1IgVEFNSUwKKzEgPiBcdTBhZTc7CisKKyNcdWUwODA+OyAjIFVOTUFQUEVEIEludGVySW5kaWMtR3VqYXJhdGk6IElTU0hBUgorIyAgICA6OiBORkMgKE5GRCkgOworIyBlb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfSW50ZXJJbmRpY19HdXJtdWtoaS50eHQgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0ludGVySW5kaWNfR3VybXVraGkudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjllYTEzOTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0ludGVySW5kaWNfR3VybXVraGkudHh0CkBAIC0wLDAgKzEsMTQ4IEBACisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0F0dGljL1RyYW5zbGl0ZXJhdG9yX0ludGVySW5kaWNfR3VybXVraGkudHh0LHYgJAorIyAkRGF0ZTogMjAwMi8wOC8xNCAwMDo0MDo1OCAkCisjICRSZXZpc2lvbjogMS45ICQKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIEludGVySW5kaWMtR3VybXVraGkKKyM6OiBORkQgKE5GQykgOworJHZvd2VsID0gW1x1MEEwNS1cdTBBMTQgXHUwQTNlLVx1MEE0RF07CiskY29uc29uYW50ID0gW1x1MEExNS1cdTBBMzldOworCitcdWUwMDE+OyAgICAgICAjIEZBTExCQUNLIEJMT1cgQVdBWSBTSUdOIENIQU5EUkFCSU5EVQorI3J1bGVzIGZvciBCSU5ESQorCisjIEFudXN2YXJhIGlzIGVxdWl2YWxlbnQgdG8gQklOREkgd2hlbiBwcmVjZWVkZWQgYnkgYSB2b3dlbAorJHZvd2Vse1x1ZTAwMj5cdTBhMDI7ICMgU0lHTiBBTlVTVkFSQSAoXHUwYTAyID0gU0lHTiBCSU5ESSkKKyMgZWxzZSBpcyBlcXVpdmFsZW50IHRvIFRJUFBJCiskY29uc29uYW50e1x1ZTAwMj5cdTBhNzA7ICMgU0lHTiBUSVBQSQorXHVlMDAyPlx1MGEwMjsKKworXHVlMDAzPjsgIyBGQUxMQkFDSyBCTE9XIEFXQVkgU0lHTiBWSVNBUkdBCitcdWUwMDU+XHUwYTA1OyAjIExFVFRFUiBBCitcdWUwMDY+XHUwYTA2OyAjIExFVFRFUiBBQQorXHVlMDA3Plx1MGEwNzsgIyBMRVRURVIgSQorXHVlMDA4Plx1MGEwODsgIyBMRVRURVIgSUkKK1x1ZTAwOT5cdTBhMDk7ICMgTEVUVEVSIFUKK1x1ZTAwYT5cdTBhMGE7ICMgTEVUVEVSIFVVCitcdWUwMGI+XHUwYTMwXHUwYTNmOyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwYTBiPlx1MGEzMFx1MGEzZiA9IExFVFRFUiBWT0NBTElDIFI+TEVUVEVSIFJBLlZPV0VMIFNJR04gSQorXHVlMDBjPlx1MGEzMzsgIyBGQUxMQkFDSworXHVlMDBkPlx1MGEwZjsgIyBGQUxMQkFDSworXHVlMDBlPlx1MGEwZjsgIyBGQUxMQkFDSworXHVlMDBmPlx1MGEwZjsgIyBMRVRURVIgRUUKK1x1ZTAxMD5cdTBhMTA7ICMgTEVUVEVSIEFJCitcdWUwMTE+XHUwYTEzOyAjIEZBTExCQUNLCitcdWUwMTI+XHUwYTEzOyAjIEZBTExCQUNLCitcdWUwMTM+XHUwYTEzOyAjIExFVFRFUiBPTworXHVlMDE0Plx1MGExNDsgIyBMRVRURVIgQVUKK1x1ZTAxNT5cdTBhMTU7ICMgTEVUVEVSIEtBCitcdWUwMTY+XHUwYTE2OyAjIExFVFRFUiBLSEEKK1x1ZTAxNz5cdTBhMTc7ICMgTEVUVEVSIEdBCitcdWUwMTg+XHUwYTE4OyAjIExFVFRFUiBHSEEKK1x1ZTAxOT5cdTBhMTk7ICMgTEVUVEVSIE5HQQorXHVlMDFhPlx1MGExYTsgIyBMRVRURVIgQ0EKK1x1ZTAxYj5cdTBhMWI7ICMgTEVUVEVSIENIQQorXHVlMDFjPlx1MGExYzsgIyBMRVRURVIgSkEKK1x1ZTAxZD5cdTBhMWQ7ICMgTEVUVEVSIEpIQQorXHVlMDFlPlx1MGExZTsgIyBMRVRURVIgTllBCitcdWUwMWY+XHUwYTFmOyAjIExFVFRFUiBUVEEKK1x1ZTAyMD5cdTBhMjA7ICMgTEVUVEVSIFRUSEEKK1x1ZTAyMT5cdTBhMjE7ICMgTEVUVEVSIEREQQorXHVlMDIyPlx1MGEyMjsgIyBMRVRURVIgRERIQQorXHVlMDIzPlx1MGEyMzsgIyBMRVRURVIgTk5BCitcdWUwMjQ+XHUwYTI0OyAjIExFVFRFUiBUQQorXHVlMDI1Plx1MGEyNTsgIyBMRVRURVIgVEhBCitcdWUwMjY+XHUwYTI2OyAjIExFVFRFUiBEQQorXHVlMDI3Plx1MGEyNzsgIyBMRVRURVIgREhBCitcdWUwMjg+XHUwYTI4OyAjIExFVFRFUiBOQQorXHVlMDI5Plx1MGEyOFx1MGEzYzsgIyBSRU1BUCAoaW5kaWNFeGNlcHRpb25zLnR4dCk6IFx1MGEyOT5cdTBhMjggPSBMRVRURVIgTk5OQT5MRVRURVIgTkEKK1x1ZTAyYT5cdTBhMmE7ICMgTEVUVEVSIFBBCitcdWUwMmI+XHUwYTJiOyAjIExFVFRFUiBQSEEKK1x1ZTAyYz5cdTBhMmM7ICMgTEVUVEVSIEJBCitcdWUwMmQ+XHUwYTJkOyAjIExFVFRFUiBCSEEKK1x1ZTAyZT5cdTBhMmU7ICMgTEVUVEVSIE1BCitcdWUwMmY+XHUwYTJmOyAjIExFVFRFUiBZQQorXHVlMDMwPlx1MGEzMDsgIyBMRVRURVIgUkEKK1x1ZTAzMT5cdTBhMzBcdTBhM2M7ICMgRkFMTEJBQ0sgTEVUVEVSIFJBK05VS1RBCitcdWUwMzI+XHUwYTMyOyAjIExFVFRFUiBMQQorXHVlMDMzPlx1MGEzMzsgIyBMRVRURVIgTExBCitcdWUwMzQ+XHUwYTMzOyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwYTM0Plx1MGEzMyA9IExFVFRFUiBMTExBPkxFVFRFUiBMTEEKK1x1ZTAzNT5cdTBhMzU7ICMgTEVUVEVSIFZBCitcdWUwMzY+XHUwYTM2OyAjIExFVFRFUiBTSEEKK1x1ZTAzNz5cdTBhMzY7ICMgUkVNQVAgKGluZGljRXhjZXB0aW9ucy50eHQpOiBcdTBhMzc+XHUwYTM2ID0gTEVUVEVSIFNTQT5MRVRURVIgU0hBCitcdWUwMzg+XHUwYTM4OyAjIExFVFRFUiBTQQorXHVlMDM5Plx1MGEzOTsgIyBMRVRURVIgSEEKK1x1ZTAzYz5cdTBhM2M7ICMgU0lHTiBOVUtUQQorXHVlMDNkPjsgIyBGQUxMQkFDSyBCTE9XIEFXQVkgU0lHTiBBVkFHUkFIQQorXHVlMDNlPlx1MGEzZTsgIyBWT1dFTCBTSUdOIEFBCitcdWUwM2Y+XHUwYTNmOyAjIFZPV0VMIFNJR04gSQorXHVlMDQwPlx1MGE0MDsgIyBWT1dFTCBTSUdOIElJCitcdWUwNDE+XHUwYTQxOyAjIFZPV0VMIFNJR04gVQorXHVlMDQyPlx1MGE0MjsgIyBWT1dFTCBTSUdOIFVVCitcdWUwNDM+OyAjIEZBTExCQUNLIEJMT1cgQVdBWSBWT1dFTCBTSUdOIFZPQ0FMSUMgUgorXHVlMDQ0PjsgIyBGQUxMQkFDSyBCTE9XIEFXQVkgVk9XRUwgU0lHTiBWT0NBTElDIFJSCitcdWUwNDU+XHUwYTQ4OyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwYTQ1Plx1MGE0OCA9IFZPV0VMIFNJR04gQ0FORFJBIEU+Vk9XRUwgU0lHTiBBSQorXHVlMDQ2Plx1MGE0NzsgIyBGQUxMQUJDSworXHVlMDQ3Plx1MGE0NzsgIyBWT1dFTCBTSUdOIEVFCitcdWUwNDg+XHUwYTQ4OyAjIFZPV0VMIFNJR04gQUkKK1x1ZTA0OT5cdTBhNGM7ICMgUkVNQVAgKGluZGljRXhjZXB0aW9ucy50eHQpOiBcdTBhNDk+XHUwYTRjID0gVk9XRUwgU0lHTiBDQU5EUkEgTz5WT1dFTCBTSUdOIEFVCitcdWUwNGE+XHUwYTRiOyAjIEZBTExCQUNLCitcdWUwNGI+XHUwYTRiOyAjIFZPV0VMIFNJR04gT08KK1x1ZTA0Yz5cdTBhNGM7ICMgVk9XRUwgU0lHTiBBVQorXHVlMDRkPlx1MGE0ZDsgIyBTSUdOIFZJUkFNQQorXHVlMDUwPlx1MGEwZlx1MGEwMjsgIyAgRkFMTEJBQ0sgdG8gT08rQklOREkgOiBPTQorXHVlMDUxPjsKK1x1ZTA1Mj47CitcdWUwNTM+OworXHVlMDU0PjsKK1x1ZTA1NT47ICMgRkFMTEJBQ0sgQkxPVyBBV0FZIExFTkdUSCBNQVJLCitcdWUwNTY+XHUwYTQ4OyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwYTU2Plx1MGE0OCA9IEFJIExFTkdUSCBNQVJLPlZPV0VMIFNJR04gQUkKK1x1ZTA1Nz5cdTBhNGM7ICMgUkVNQVAgKGluZGljRXhjZXB0aW9ucy50eHQpOiBcdTBhNTc+XHUwYTRjID0gQVUgTEVOR1RIIE1BUks+Vk9XRUwgU0lHTiBBVQorXHVlMDU4Plx1MGExNVx1MGEzYzsgIyBGQUxMQkFDSyBSQSsgTlVLVEEKK1x1ZTA1OT5cdTBhNTk7ICMgTEVUVEVSIEtISEEKK1x1ZTA1YT5cdTBhNWE7ICMgTEVUVEVSIEdISEEKK1x1ZTA1Yj5cdTBhNWI7ICMgTEVUVEVSIFpBCitcdWUwNWM+XHUwYTVjOyAjIExFVFRFUiBSUkEKK1x1ZTA1ZD5cdTBhMjJcdTBhM2M7ICMgUkVNQVAgKGluZGljRXhjZXB0aW9ucy50eHQpOiBcdTBhNWQ+XHUwYTIyXHUwYTNjID0gTEVUVEVSIFJIQT5MRVRURVIgRERIQS5TSUdOIE5VS1RBCitcdWUwNWU+XHUwYTVlOyAjIExFVFRFUiBGQQorXHVlMDVmPlx1MGEyZlx1MGEzYzsgIyBSRU1BUCAoaW5kaWNFeGNlcHRpb25zLnR4dCk6IFx1MGE1Zj5cdTBhMmYgPSBMRVRURVIgWVlBPkxFVFRFUiBZQQorXHVlMDYwPlx1MGEzMFx1MGEzZjsgIyBSRU1BUCAoaW5kaWNFeGNlcHRpb25zLnR4dCk6IFx1MGE2MD5cdTBhMzBcdTBhM2YgPSBMRVRURVIgVk9DQUxJQyBSUj5MRVRURVIgUkEuVk9XRUwgU0lHTiBJCitcdWUwNjE+XHUwYTMzXHUwYTNjOyAjIAorXHVlMDYyPlx1MGEzZlx1MGEzYzsgIyBSRU1BUCAoaW5kaWNFeGNlcHRpb25zLnR4dCk6IFx1MGE2Mj5cdTBhM2ZcdTBhM2MgPSBWT1dFTCBTSUdOIFZPQ0FMSUMgTD5WT1dFTCBTSUdOIEkuU0lHTiBOVUtUQQorXHVlMDYzPlx1MGE0MFx1MGEzYzsgIyBSRU1BUCAoaW5kaWNFeGNlcHRpb25zLnR4dCk6IFx1MGE2Mz5cdTBhNDBcdTBhM2MgPSBWT1dFTCBTSUdOIFZPQ0FMSUMgTEw+Vk9XRUwgU0lHTiBJSS5TSUdOIE5VS1RBCitcdUUwNjQ+XHUwOTY0OyAgICAgICAgICAjIERBTkRBCitcdUUwNjU+XHUwOTY1OyAgICAgICAgICAjIERPVUJMRSBEQU5EQQorXHVlMDY2Plx1MGE2NjsgIyBESUdJVCBaRVJPCitcdWUwNjc+XHUwYTY3OyAjIERJR0lUIE9ORQorXHVlMDY4Plx1MGE2ODsgIyBESUdJVCBUV08KK1x1ZTA2OT5cdTBhNjk7ICMgRElHSVQgVEhSRUUKK1x1ZTA2YT5cdTBhNmE7ICMgRElHSVQgRk9VUgorXHVlMDZiPlx1MGE2YjsgIyBESUdJVCBGSVZFCitcdWUwNmM+XHUwYTZjOyAjIERJR0lUIFNJWAorXHVlMDZkPlx1MGE2ZDsgIyBESUdJVCBTRVZFTgorXHVlMDZlPlx1MGE2ZTsgIyBESUdJVCBFSUdIVAorXHVlMDZmPlx1MGE2ZjsgIyBESUdJVCBOSU5FCitcdWUwNzA+OyAjICBUSVBQSQorXHVlMDcxPjsgIyAgQUREQUsKK1x1ZTA3Mj47ICMgIElSSQorXHVlMDczPjsgIyAgVVJBCitcdWUwNzQ+OyAjICBFSyBPTktBUgorXHVlMDc1PjsKK1x1ZTA3Nj47CitcdWUwNzc+OworXHVlMDc4PjsKK1x1ZTA3OT47CitcdWUwN0E+OworXHVlMDgwPjsgIyBGQUxMQkFDSyBCTE9XIEFXQVkgSVNTSEFSCitcdWUwODE+OyAjIEZBTExCQUNLIEJMT1cgQVdBWSBMRVRURVIgRQorXHVlMDgyPjsgIyBGQUxMQkFDSyBCTE9XIEFXQVkgTEVUVEVSIE8gKFx1MGEwMiA9IFNJR04gQklOREkpCitcdWUwODQ+OyAjIEZBTExCQUNLIEJMT1cgQVdBWSBWT1dFTCBTSUdOIEUKK1x1ZTA4NT47ICMgRkFMTEJBQ0sgQkxPVyBBV0FZIFZPV0VMIFNJR04gTyAoXHUwYTA1ID0gTEVUVEVSIEEpCisKKzAgPiBcdTBhNjY7ICAgICAgICMgRkFMTEJBQ0sgRk9SIFRBTUlMCisxID4gXHUwYTY3OworIyAgICA6OiBORkMgKE5GRCkgOworIyBlb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfSW50ZXJJbmRpY19LYW5uYWRhLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfSW50ZXJJbmRpY19LYW5uYWRhLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xZWI0NzYyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9JbnRlckluZGljX0thbm5hZGEudHh0CkBAIC0wLDAgKzEsMTM5IEBACisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0F0dGljL1RyYW5zbGl0ZXJhdG9yX0ludGVySW5kaWNfS2FubmFkYS50eHQsdiAkCisjICREYXRlOiAyMDAyLzA3LzI1IDIxOjIwOjI2ICQKKyMgJFJldmlzaW9uOiAxLjkgJAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgSW50ZXJJbmRpYy1LYW5uYWRhCisjOjogTkZEIChORkMpIDsKK1x1ZTAyYlx1ZTAzYz5cdTBjZGU7ICMgTEVUVEVSIEZBCitcdWUwMDE+XHUwYzgyOyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwYzgxPlx1MGM4MiA9IFNJR04gQ0FORFJBQklORFU+U0lHTiBBTlVTVkFSQQorXHVlMDAyPlx1MGM4MjsgIyBTSUdOIEFOVVNWQVJBCitcdWUwMDM+XHUwYzgzOyAjIFNJR04gVklTQVJHQQorXHVlMDA1Plx1MGM4NTsgIyBMRVRURVIgQQorXHVlMDA2Plx1MGM4NjsgIyBMRVRURVIgQUEKK1x1ZTAwNz5cdTBjODc7ICMgTEVUVEVSIEkKK1x1ZTAwOD5cdTBjODg7ICMgTEVUVEVSIElJCitcdWUwMDk+XHUwYzg5OyAjIExFVFRFUiBVCitcdWUwMGE+XHUwYzhhOyAjIExFVFRFUiBVVQorXHVlMDBiPlx1MGM4YjsgIyBMRVRURVIgVk9DQUxJQyBSCitcdWUwMGM+XHUwYzhjOyAjIExFVFRFUiBWT0NBTElDIEwKK1x1ZTAwZD5cdTBjOGU7ICMgTEVUVEVSIEUKK1x1ZTAwZT5cdTBjOGU7ICMgRkFMTEJBQ0sKK1x1ZTAwZj5cdTBjOGY7ICMgTEVUVEVSIEVFCitcdWUwMTA+XHUwYzkwOyAjIExFVFRFUiBBSQorXHVlMDExPlx1MGM5MjsgIyBGQUxMQkFDSworXHVlMDEyPlx1MGM5MjsgIyBMRVRURVIgTworXHVlMDEzPlx1MGM5MzsgIyBMRVRURVIgT08KK1x1ZTAxND5cdTBjOTQ7ICMgTEVUVEVSIEFVCitcdWUwMTU+XHUwYzk1OyAjIExFVFRFUiBLQQorXHVlMDE2Plx1MGM5NjsgIyBMRVRURVIgS0hBCitcdWUwMTc+XHUwYzk3OyAjIExFVFRFUiBHQQorXHVlMDE4Plx1MGM5ODsgIyBMRVRURVIgR0hBCitcdWUwMTk+XHUwYzk5OyAjIExFVFRFUiBOR0EKK1x1ZTAxYT5cdTBjOWE7ICMgTEVUVEVSIENBCitcdWUwMWI+XHUwYzliOyAjIExFVFRFUiBDSEEKK1x1ZTAxYz5cdTBjOWM7ICMgTEVUVEVSIEpBCitcdWUwMWQ+XHUwYzlkOyAjIExFVFRFUiBKSEEKK1x1ZTAxZT5cdTBjOWU7ICMgTEVUVEVSIE5ZQQorXHVlMDFmPlx1MGM5ZjsgIyBMRVRURVIgVFRBCitcdWUwMjA+XHUwY2EwOyAjIExFVFRFUiBUVEhBCitcdWUwMjE+XHUwY2ExOyAjIExFVFRFUiBEREEKK1x1ZTAyMj5cdTBjYTI7ICMgTEVUVEVSIERESEEKK1x1ZTAyMz5cdTBjYTM7ICMgTEVUVEVSIE5OQQorXHVlMDI0Plx1MGNhNDsgIyBMRVRURVIgVEEKK1x1ZTAyNT5cdTBjYTU7ICMgTEVUVEVSIFRIQQorXHVlMDI2Plx1MGNhNjsgIyBMRVRURVIgREEKK1x1ZTAyNz5cdTBjYTc7ICMgTEVUVEVSIERIQQorXHVlMDI4Plx1MGNhODsgIyBMRVRURVIgTkEKK1x1ZTAyOT5cdTBjYTg7ICMgUkVNQVAgKGluZGljRXhjZXB0aW9ucy50eHQpOiBcdTBjYTk+XHUwY2E4ID0gTEVUVEVSIE5OTkE+TEVUVEVSIE5BCitcdWUwMmE+XHUwY2FhOyAjIExFVFRFUiBQQQorXHVlMDJiPlx1MGNhYjsgIyBMRVRURVIgUEhBCitcdWUwMmM+XHUwY2FjOyAjIExFVFRFUiBCQQorXHVlMDJkPlx1MGNhZDsgIyBMRVRURVIgQkhBCitcdWUwMmU+XHUwY2FlOyAjIExFVFRFUiBNQQorXHVlMDJmPlx1MGNhZjsgIyBMRVRURVIgWUEKK1x1ZTAzMFx1ZTAzYz5cdTBjYjE7CitcdWUwMzA+XHUwY2IwOyAjIExFVFRFUiBSQQorXHVlMDMxPlx1MGNiMTsgIyBMRVRURVIgUlJBCitcdWUwMzI+XHUwY2IyOyAjIExFVFRFUiBMQQorXHVlMDMzPlx1MGNiMzsgIyBMRVRURVIgTExBCitcdWUwMzQ+XHUwY2IzOyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwY2I0Plx1MGNiMyA9IExFVFRFUiBMTExBPkxFVFRFUiBMTEEKK1x1ZTAzNT5cdTBjYjU7ICMgTEVUVEVSIFZBCitcdWUwMzY+XHUwY2I2OyAjIExFVFRFUiBTSEEKK1x1ZTAzNz5cdTBjYjc7ICMgTEVUVEVSIFNTQQorXHVlMDM4Plx1MGNiODsgIyBMRVRURVIgU0EKK1x1ZTAzOT5cdTBjYjk7ICMgTEVUVEVSIEhBCisKK1x1ZTAzYz47ICMgRkFMTEJBQ0sgQkxPVyBBV0FZIE5VS1RBCitcdWUwM2Q+OyAjIEZBTExCQUNLIEJMT1cgQVdBWSBBVkFHUkFIQQorCitcdWUwM2U+XHUwY2JlOyAjIFZPV0VMIFNJR04gQUEKK1x1ZTAzZj5cdTBjYmY7ICMgVk9XRUwgU0lHTiBJCitcdWUwNDA+XHUwY2MwOyAjIFZPV0VMIFNJR04gSUkKK1x1ZTA0MT5cdTBjYzE7ICMgVk9XRUwgU0lHTiBVCitcdWUwNDI+XHUwY2MyOyAjIFZPV0VMIFNJR04gVVUKK1x1ZTA0Mz5cdTBjYzM7ICMgVk9XRUwgU0lHTiBWT0NBTElDIFIKK1x1ZTA0ND5cdTBjYzQ7ICMgVk9XRUwgU0lHTiBWT0NBTElDIFJSCitcdWUwNDU+XHUwY2M2OyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwY2M1Plx1MGNjNiA9IFZPV0VMIFNJR04gQ0FORFJBIEU+Vk9XRUwgU0lHTiBFCitcdWUwNDY+XHUwY2M2OyAjIFZPV0VMIFNJR04gRQorXHVlMDQ3Plx1MGNjNzsgIyBWT1dFTCBTSUdOIEVFCitcdWUwNDg+XHUwY2M4OyAjIFZPV0VMIFNJR04gQUkKK1x1ZTA0OT5cdTBjY2E7ICMgUkVNQVAgKGluZGljRXhjZXB0aW9ucy50eHQpOiBcdTBjYzk+XHUwY2NhID0gVk9XRUwgU0lHTiBDQU5EUkEgTz5WT1dFTCBTSUdOIE8KK1x1ZTA0YT5cdTBjY2E7ICMgVk9XRUwgU0lHTiBPCitcdWUwNGI+XHUwY2NiOyAjIFZPV0VMIFNJR04gT08KK1x1ZTA0Yz5cdTBjY2M7ICMgVk9XRUwgU0lHTiBBVQorXHVlMDRkPlx1MGNjZDsgIyBTSUdOIFZJUkFNQQorXHVlMDUwPlx1MGM5M1x1MGM4MjsgIyBSRU1BUCAoaW5kaWNFeGNlcHRpb25zLnR4dCk6IFx1MGNkMD5cdTBjOTNcdTBjODIgPSBPTT5MRVRURVIgT08uU0lHTiBBTlVTVkFSQQorXHVlMDUxPjsKK1x1ZTA1Mj47CitcdWUwNTM+OworXHVlMDU0PjsKK1x1ZTA1NT5cdTBjZDU7ICMgTEVOR1RIIE1BUksKK1x1ZTA1Nj5cdTBjZDY7ICMgQUkgTEVOR1RIIE1BUksKK1x1ZTA1Nz5cdTBjY2M7ICMgUkVNQVAgKGluZGljRXhjZXB0aW9ucy50eHQpOiBcdTBjZDc+XHUwY2NjID0gQVUgTEVOR1RIIE1BUks+Vk9XRUwgU0lHTiBBVQorXHVlMDU4Plx1MGM5NTsgIyBGQUxMQkFDSworXHVlMDU5Plx1MGM5NjsgIyBSRU1BUCAoaW5kaWNFeGNlcHRpb25zLnR4dCk6IFx1MGNkOT5cdTBjOTYgPSBMRVRURVIgS0hIQT5MRVRURVIgS0hBCitcdWUwNWE+XHUwYzk3OyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwY2RhPlx1MGM5NyA9IExFVFRFUiBHSEhBPkxFVFRFUiBHQQorXHVlMDViPlx1MGM5YzsgIyBSRU1BUCAoaW5kaWNFeGNlcHRpb25zLnR4dCk6IFx1MGNkYj5cdTBjOWMgPSBMRVRURVIgWkE+TEVUVEVSIEpBCitcdWUwNWM+XHUwY2EyOyAjIEZBTExCQUNLCitcdWUwNWQ+XHUwY2EyOyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwY2RkPlx1MGNhMiA9IExFVFRFUiBSSEE+TEVUVEVSIERESEEKK1x1ZTA1ZT5cdTBjZGU7ICMgTEVUVEVSIEZBCitcdWUwNWY+XHUwY2FmOyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwY2RmPlx1MGNhZiA9IExFVFRFUiBZWUE+TEVUVEVSIFlBCitcdWUwNjA+XHUwY2UwOyAjIExFVFRFUiBWT0NBTElDIFJSCitcdWUwNjE+XHUwY2UxOyAjIExFVFRFUiBWT0NBTElDIExMCitcdWUwNjI+XHUwY2JmOyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwY2UyPlx1MGNiZiA9IFZPV0VMIFNJR04gVk9DQUxJQyBMPlZPV0VMIFNJR04gSQorXHVlMDYzPlx1MGNjMDsgIyBSRU1BUCAoaW5kaWNFeGNlcHRpb25zLnR4dCk6IFx1MGNlMz5cdTBjYzAgPSBWT1dFTCBTSUdOIFZPQ0FMSUMgTEw+Vk9XRUwgU0lHTiBJSQorXHVlMDY0PicuJyAgIDsgIyBGQUxMQkFDSyBGT1IgREFOREEKK1x1ZTA2NT4nLicgICA7ICMgRkFMTEJBQ0sgRk9SIERPVUJMRSBEQU5EQQkKK1x1ZTA2Nj5cdTBjZTY7ICMgRElHSVQgWkVSTworXHVlMDY3Plx1MGNlNzsgIyBESUdJVCBPTkUKK1x1ZTA2OD5cdTBjZTg7ICMgRElHSVQgVFdPCitcdWUwNjk+XHUwY2U5OyAjIERJR0lUIFRIUkVFCitcdWUwNmE+XHUwY2VhOyAjIERJR0lUIEZPVVIKK1x1ZTA2Yj5cdTBjZWI7ICMgRElHSVQgRklWRQorXHVlMDZjPlx1MGNlYzsgIyBESUdJVCBTSVgKK1x1ZTA2ZD5cdTBjZWQ7ICMgRElHSVQgU0VWRU4KK1x1ZTA2ZT5cdTBjZWU7ICMgRElHSVQgRUlHSFQKK1x1ZTA2Zj5cdTBjZWY7ICMgRElHSVQgTklORQorXHVlMDgwPjsgIyBVTk1BUFBFRCBJbnRlckluZGljLUthbm5hZGE6IElTU0hBUgorXHVlMDcwPjsKK1x1ZTA3MT47CitcdWUwNzI+OworXHVlMDczPjsKK1x1ZTA3ND47CitcdWUwNzU+OworXHVlMDc2PjsKK1x1ZTA3Nz47CitcdWUwNzg+OworXHVlMDc5PjsKK1x1ZTA3QT47CiswID4gXHUwY2U2OyAgICAgICAjIEZBTExCQUNLIEZPUiBUQU1JTAorMSA+IFx1MGNlNzsKK1x1ZTBmMCA+ICBcdTBjYjA7ICAjIEZBTExCQUNLIFJBIAorXHVlMGYxID4gIFx1MGNiMDsgICMgRkFMTEJBQ0sgUkEKKyMgICAgOjogTkZDIChORkQpIDsKKyMgZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0ludGVySW5kaWNfTGF0aW4udHh0IGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9JbnRlckluZGljX0xhdGluLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lNjAwZGIzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9JbnRlckluZGljX0xhdGluLnR4dApAQCAtMCwwICsxLDUzMiBAQAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvcHlyaWdodCAoYykgMTk5OS0yMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisjIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9BdHRpYy9UcmFuc2xpdGVyYXRvcl9JbnRlckluZGljX0xhdGluLnR4dCx2ICQKKyMgJERhdGU6IDIwMDIvMDcvMjUgMjE6MjA6MjYgJAorIyAkUmV2aXNpb246IDEuNyAkCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBJbnRlckluZGljLUxhdGluCisgICAjXHUwZTAwIHJlc2VydmVkCisgICAgI2NvbnNvbmFudHMKKyAgICAkY2hhbmRyYWJpbmR1PVx1ZTAwMTsKKyAgICAkYW51c3ZhcmE9XHVlMDAyOworICAgICR2aXNhcmdhPVx1ZTAwMzsKKyAgICAjXHUwZTAwNCByZXNlcnZlZAorICAgICMgdzx2b3dlbD4gcmVwcmVzZW50cyB0aGUgc3RhbmQtYWxvbmUgZm9ybQorICAgICR3YT1cdWUwMDU7CisgICAgJHdhYT1cdWUwMDY7CisgICAgJHdpPVx1ZTAwNzsKKyAgICAkd2lpPVx1ZTAwODsKKyAgICAkd3U9XHVlMDA5OworICAgICR3dXU9XHVlMDBhOworICAgICR3cj1cdWUwMGI7CisgICAgJHdsPVx1ZTAwYzsKKyAgICAkd2NlPVx1ZTAwZDsgIyBMRVRURVIgQ0FORFJBIEUKKyAgICAkd3NlPVx1ZTAwZTsgIyBMRVRURVIgU0hPUlQgRQorICAgICR3ZT1cdWUwMGY7ICAjIFx1MDkwZiBMRVRURVIgRQorICAgICR3YWk9XHVlMDEwOworICAgICR3Y289XHVlMDExOyAjIExFVFRFUiBDQU5EUkEgTworICAgICR3c289XHVlMDEyOyAjIExFVFRFUiBTSE9SVCBPCisgICAgJHdvPVx1ZTAxMzsgICMgXHUwOTEzIExFVFRFUiBPCisgICAgJHdhdT1cdWUwMTQ7CisgICAgJGthPVx1ZTAxNTsKKyAgICAka2hhPVx1ZTAxNjsKKyAgICAkZ2E9XHVlMDE3OworICAgICRnaGE9XHVlMDE4OworICAgICRuZ2E9XHVlMDE5OworICAgICRjYT1cdWUwMWE7CisgICAgJGNoYT1cdWUwMWI7CisgICAgJGphPVx1ZTAxYzsKKyAgICAkamhhPVx1ZTAxZDsKKyAgICAkbnlhPVx1ZTAxZTsKKyAgICAkdHRhPVx1ZTAxZjsKKyAgICAkdHRoYT1cdWUwMjA7CisgICAgJGRkYT1cdWUwMjE7CisgICAgJGRkaGE9XHVlMDIyOworICAgICRubmE9XHVlMDIzOworICAgICR0YT1cdWUwMjQ7CisgICAgJHRoYT1cdWUwMjU7CisgICAgJGRhPVx1ZTAyNjsKKyAgICAkZGhhPVx1ZTAyNzsKKyAgICAkbmE9XHVlMDI4OworICAgICRlbmE9XHVlMDI5OyAjY29tcGF0aWJpbGl0eQorICAgICRwYT1cdWUwMmE7CisgICAgJHBoYT1cdWUwMmI7CisgICAgJGJhPVx1ZTAyYzsKKyAgICAkYmhhPVx1ZTAyZDsKKyAgICAkbWE9XHVlMDJlOworICAgICR5YT1cdWUwMmY7CisgICAgJHJhPVx1ZTAzMDsKKyAgICAkcnJhPVx1ZTAzMTsKKyAgICAkbGE9XHVlMDMyOworICAgICRsbGE9XHVlMDMzOyAKKyAgICAkZWxhPVx1ZTAzNDsgI2NvbXBhdGliaWxpdHkKKyAgICAkdmE9XHVlMDM1OworICAgICRzaGE9XHVlMDM2OworICAgICRzc2E9XHVlMDM3OworICAgICRzYT1cdWUwMzg7CisgICAgJGhhPVx1ZTAzOTsKKyNcdTA5M2EgUmVzZXJ2ZWQKKyNcdTA5M2IgUmVzZXJ2ZWQKKyAgICAkbnVrdGE9XHVlMDNjOworICAgICRhdmFncmFoYT1cdWUwM2Q7ICMgU0lHTiBBVkFHUkFIQQorICAgICMgPHZvd2VsPiByZXByZXNlbnRzIHRoZSBkZXBlbmRlbnQgZm9ybQorICAgICRhYT1cdWUwM2U7CisgICAgJGk9XHVlMDNmOworICAgICRpaT1cdWUwNDA7CisgICAgJHU9XHVlMDQxOworICAgICR1dT1cdWUwNDI7CisgICAgJHJoPVx1ZTA0MzsKKyAgICAkbGg9XHVlMDQ0OworICAgICRjZT1cdWUwNDU7ICNWT1dFTCBTSUdOIENBTkRSQSBFIAorICAgICRzZT1cdWUwNDY7ICNWT1dFTCBTSUdOIFNIT1JUIEUKKyAgICAkZT1cdWUwNDc7CisgICAgJGFpPVx1ZTA0ODsKKyAgICAkY289XHVlMDQ5OyAjIFZPV0VMIFNJR04gQ0FORFJBIE8KKyAgICAkc289XHVlMDRhOyAjIFZPV0VMIFNJR04gU0hPUlQgTworICAgICRvPVx1ZTA0YjsgICMgXHUwOTRiCisgICAgJGF1PVx1ZTA0YzsgICAgCisgICAgJHZpcmFtYT1cdWUwNGQ7CisjIFx1MDk0ZSBSZXNlcnZlZAorIyBcdTA5NGYgUmVzZXJ2ZWQKKyAgICAkb209XHVlMDUwOyAjIE9NCisgICAgXHVlMDUxPjsgICAgICAgICMgVU5NQVBQRUQgU1RSRVNTIFNJR04gVURBVFRBCisgICAgXHVlMDUyPjsgICAgICAgICMgVU5NQVBQRUQgU1RSRVNTIFNJR04gQU5VREFUVEEKKyAgICBcdWUwNTM+OyAgICAgICAgIyBVTk1BUFBFRCBHUkFWRSBBQ0NFTlQKKyAgICBcdWUwNTQ+OyAgICAgICAgIyBVTk1BUFBFRCBBQ1VURSBBQ0NFTlQKKyAgICAkbG0gPSBcdWUwNTU7IyAgVGVsdWd1IExlbmd0aCBNYXJrICAgIAorICAgICRhaWxtPVx1ZTA1NjsjICBBSSBMZW5ndGggTWFyayAKKyAgICAkYXVsbT1cdWUwNTc7IyAgQVUgTGVuZ3RoIE1hcmsgCisgICAgICN1cmR1IGNvbXBhdGliaXR5IGZvcm1zCisgICAgJHVrYT1cdWUwNTg7CisgICAgJHVraGE9XHVlMDU5OworICAgICR1Z2hhPVx1ZTA1YTsKKyAgICAkdWpoYT1cdWUwNWI7CisgICAgJHVkZGhhPVx1ZTA1YzsKKyAgICAkdWRoYT1cdWUwNWQ7CisgICAgJHVmYT1cdWUwNWU7CisgICAgJHV5YT1cdWUwNWY7CisgICAgJHdycj1cdWUwNjA7CisgICAgJHdsbD1cdWUwNjE7CisgICAgJHJyaD1cdWUwNjI7CisgICAgJGxsaD1cdWUwNjM7CisgICAgJGRhbmRhPVx1ZTA2NDsKKyAgICAkZG91YmxlRGFuZGE9XHVlMDY1OworICAgICR6ZXJvPVx1ZTA2NjsgICAgICMgRElHSVQgWkVSTworICAgICRvbmU9XHVlMDY3OyAgICAgICMgRElHSVQgT05FCisgICAgJHR3bz1cdWUwNjg7ICAgICAgIyBESUdJVCBUV08KKyAgICAkdGhyZWU9XHVlMDY5OyAgICAjIERJR0lUIFRIUkVFCisgICAgJGZvdXI9XHVlMDZhOyAgICAgIyBESUdJVCBGT1VSCisgICAgJGZpdmU9XHVlMDZiOyAgICAgIyBESUdJVCBGSVZFCisgICAgJHNpeD1cdWUwNmM7ICAgICAgIyBESUdJVCBTSVgKKyAgICAkc2V2ZW49XHVlMDZkOyAgICAjIERJR0lUIFNFVkVOCisgICAgJGVpZ2h0PVx1ZTA2ZTsgICAgIyBESUdJVCBFSUdIVAorICAgICRuaW5lPVx1ZTA2ZjsgICAgICMgRElHSVQgTklORQorICAgICMgRm9yIGFsbCBvdGhlciBzY3JpcHRzCisgICAgJGVjcDA9XHVlMDcwOworICAgICRlY3AxPVx1ZTA3MTsKKyAgICAkZWNwMj1cdWUwNzI7CisgICAgJGVjcDM9XHVlMDczOworICAgICRlY3A0PVx1ZTA3NDsKKyAgICAkZWNwNT1cdWUwNzU7CisgICAgJGVjcDY9XHVlMDc2OworICAgICRlY3A3PVx1ZTA3NzsKKyAgICAkZWNwOD1cdWUwNzg7CisgICAgJGVjcDk9XHVlMDc5OworICAgICRlY3BBPVx1ZTA3YTsKKyAgICAkZWNwQj1cdWUwN2I7CisgICAgJGVjcEM9XHVlMDdjOworICAgICRlY3BEPVx1ZTA3ZDsKKyAgICAkZWNwRT1cdWUwN2U7CisgICAgJGVjcEY9XHVlMDdmOworIyBcdTA5NzA+OyAjIFVOTUFQUEVEIEFCQlJFVklBVElPTiBTSUdOCisgICAgJGRlcFZvd2VsQWJvdmU9W1x1ZTAzZS1cdWUwNDBcdWUwNDUtXHVlMDRjXTsKKyAgICAkZGVwVm93ZWxCZWxvdz1bXHVlMDQxLVx1ZTA0NF07CisgICAgIyAkeCB3YXMgb3JpZ2luYWxseSBjYWxsZWQgJyYnOyAkeiB3YXMgJyUnCisgICAgJHg9WyRhYSRhaSRhdSRpaSRpJHV1JHUkcnJoJHJoJGxoJGxsaCRlJG8kc2UkY2Ukc28kY29dOworICAgICR6PVtiY2RmZ2hqa2xtbnBxcnN0dnd4eXpdOworICAgICR2b3dlbHM9W2FlaW91clx1MDMwNFx1MDMyNVx1MDMwNl07CisgICAgJGZvcmNlSW5kZXBlbmRlbnRNYXRyYSA9IFteW1s6TDpdW1x1MDMwMC1cdTAzNGNdXV07CisgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworICAgICMgY29udmVydCBmcm9tIE5hdGl2ZSBsZXR0ZXJzIHRvIExhdGluIGxldHRlcnMKKyAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgICAgICN0cmFuc2xpdGVyYXRpb25zIGZvciBhbnVzdmFyYQorICAgICRhbnVzdmFyYX0gWyRrYSRraGEkZ2EkZ2hhJG5nYV0gICAgICAgICAgICAgPiBuXHUwMzA3OworICAgICRhbnVzdmFyYX0gWyRjYSRjaGEkamEkamhhJG55YV0gICAgICAgICAgICAgPiBuXHUwMzA0OworICAgICRhbnVzdmFyYX0gWyR0dGEkdHRoYSRkZGEkZGRoYSRubmFdICAgICAgICAgPiBuXHUwMzIzOworICAgICRhbnVzdmFyYX0gWyR0YSR0aGEkZGEkZGhhJG5hXSAgICAgICAgICAgICAgPiBuICAgICAgOworICAgICRhbnVzdmFyYX0gWyRwYSRwaGEkYmEkYmhhJG1hXSAgICAgICAgICAgICAgPiBtICAgICAgOworICAgICRhbnVzdmFyYX0gWyR5YSRyYSRsbGEkbGEkdmEkc3NhJHNoYSRzYSRoYV0gPiBuICAgICAgOworICAgICRhbnVzdmFyYT4gbVx1MDMwNzsKKworICAgICMgVXJkdSBjb21wYXRpYmlsaXR5CisgICAgJHlhJG51a3RhfSR4ICAgICAgICA+IHlcdTAzMDcgIDsKKyAgICAkeWEkbnVrdGEkdmlyYW1hICAgID4geVx1MDMwNyAgOworICAgICR5YSRudWt0YSAgICAgICAgICAgPiB5XHUwMzA3YSA7ICAgIAorCisgICAgJGxhJG51a3RhIH0keCAgICAgICA+IGxcdTAzMzEgIDsKKyAgICAkbGEkbnVrdGEkdmlyYW1hICAgID4gbFx1MDMzMSAgOworICAgICRsYSRudWt0YSAgICAgICAgICAgPiBsXHUwMzMxYSA7CisKKyAgICAkbmEkbnVrdGEgfSR4ICAgICAgID4gblx1MDMzMSAgOworICAgICRuYSRudWt0YSR2aXJhbWEgICAgPiBuXHUwMzMxICA7CisgICAgJG5hJG51a3RhICAgICAgICAgICA+IG5cdTAzMzFhIDsKKworICAgICRlbmEgfSR4ICAgICAgICAgICAgPiBuXHUwMzMxICA7CisgICAgJGVuYSR2aXJhbWEgICAgICAgICA+IG5cdTAzMzEgIDsKKyAgICAkZW5hICAgICAgICAgICAgICAgID4gblx1MDMzMWEgOworICAgICR1a2EJCT4gcWEgICAgICAgOworICAgICRrYSRudWt0YSB9JHggICAgICAgPiBxICAgICAgICA7CisgICAgJGthJG51a3RhJHZpcmFtYSAgICA+IHEgICAgICAgIDsKKyAgICAka2EkbnVrdGEgICAgICAgICAgID4gcWEgICAgICAgOworICAgICRraGEkbnVrdGEgfSR4ICAgICAgPiBrXHUwMzMxaFx1MDMzMSA7CisgICAgJGtoYSRudWt0YSR2aXJhbWEgICA+IGtcdTAzMzFoXHUwMzMxIDsKKyAgICAka2hhJG51a3RhICAgICAgICAgID4ga1x1MDMzMWhcdTAzMzFhIDsKKyAgICAkdWtoYSR2aXJhbWEgICAgICAgID4ga1x1MDMzMWhcdTAzMzE7CisgICAgJHVraGEgICAgICAgICAgICAgICA+IGtcdTAzMzFoXHUwMzMxYTsKKyAgICAkdWdoYQkJPiBnXHUwMzA3YSA7CisgICAgJGdhJG51a3RhIH0keCAgICAgICA+IGdcdTAzMDcgIDsKKyAgICAkZ2EkbnVrdGEkdmlyYW1hICAgID4gZ1x1MDMwNyAgOworICAgICRnYSRudWt0YSAgICAgICAgICAgPiBnXHUwMzA3YSA7CisgICAgCisgICAgJHVqaGEgICAgICAgICAgICAgICAgPiB6YSAgICAgICA7CQorICAgICRqYSRudWt0YSB9JHggICAgICAgPiB6ICAgICAgICA7CisgICAgJGphJG51a3RhJHZpcmFtYSAgICA+IHogICAgICAgIDsKKyAgICAkamEkbnVrdGEgICAgICAgICAgID4gemEgICAgICAgOworICAgICRkZGhhJG51a3RhfSR4ICAgICAgPiByXHUwMzIzaCA7CisgICAgJGRkaGEkbnVrdGEkdmlyYW1hICA+IHJcdTAzMjNoIDsKKyAgICAkZGRoYSRudWt0YSAgICAgICAgID4gclx1MDMyM2hhOworCisgICAgJHVkZGhhfSR4ICAgICAgICAgICA+IHJcdTAzMjMgIDsKKyAgICAkdWRkaGEkdmlyYW1hICAgICAgID4gclx1MDMyMyA7CisgICAgJHVkZGhhICAgICAgICAgICAgICA+IHJcdTAzMjNhOworICAgIAorICAgICR1ZGhhICAgICAgICAgICAgICAgPiByXHUwMzIzYSA7CisgICAgJGRkYSRudWt0YX0keCAgICAgICA+IHJcdTAzMjMgIDsKKyAgICAkZGRhJG51a3RhJHZpcmFtYSAgID4gclx1MDMyMyAgOworICAgICRkZGEkbnVrdGEgICAgICAgICAgPiByXHUwMzIzYSA7CisgICAgJHBoYSRudWt0YSB9JHggICAgICA+IGYgIDsKKyAgICAkcGhhJG51a3RhJHZpcmFtYSAgID4gZiAgOworICAgICRwaGEkbnVrdGEgICAgICAgICAgPiBmYSA7CisgICAgJHVmYSB9JHggICAgICAgICAgICA+IGYgIDsKKyAgICAkdWZhJHZpcmFtYSAgICAgICAgID4gZiAgOworICAgICR1ZmEgICAgICAgICAgICAgICAgPiBmYSA7CisKKyAgICAkcmEkbnVrdGF9JHggICAgICAgID4gclx1MDMzMTsKKyAgICAkcmEkbnVrdGEkdmlyYW1hICAgID4gclx1MDMzMTsKKyAgICAkcmEkbnVrdGEgICAgICAgICAgID4gclx1MDMzMWE7CisgICAgJGxsYSRudWt0YX0keCAgICAgICA+IGxcdTAzMzE7CisgICAgJGxsYSRudWt0YSR2aXJhbWEgICA+IGxcdTAzMzE7IAorICAgICRsbGEkbnVrdGEgICAgICAgICAgPiBsXHUwMzMxYTsKKworICAgICRlbGF9JHggICAgICAgICAgICAgPiBsXHUwMzMxOworICAgICRlbGEkdmlyYW1hICAgICAgICAgPiBsXHUwMzMxOyAKKyAgICAkZWxhICAgICAgICAgICAgICAgID4gbFx1MDMzMWE7CisKKyAgICAkdXlhfSR4ICAgICAgICAgICAgID4geVx1MDMwNzsKKyAgICAkdXlhJHZpcmFtYSAgICAgICAgID4geVx1MDMwNzsKKyAgICAkdXlhICAgICAgICAgICAgICAgID4geVx1MDMwN2E7CisKKworICAgICMgbm9ybWFsIGNvbnNvbmFudHMKKyAgICAka2EkdmlyYW1hfSRoYT5rJyc7CisgICAgJGthfSR4Pms7CisgICAgJGthJHZpcmFtYT5rOworICAgICRrYT5rYTsKKyAgICAka2hhfSR4PmtoOworICAgICRraGEkdmlyYW1hPmtoOworICAgICRraGE+a2hhOworICAgICRnYSR2aXJhbWF9JGhhPmcnJzsKKyAgICAkZ2F9JHg+ZzsKKyAgICAkZ2EkdmlyYW1hPmc7CisgICAgJGdhPmdhOworCisgICAgJGdoYX0keD5naDsKKyAgICAkZ2hhJHZpcmFtYT5naDsKKyAgICAkZ2hhPmdoYTsKKworICAgICRuZ2F9JHg+blx1MDMwNzsKKyAgICAkbmdhJHZpcmFtYT5uXHUwMzA3OworICAgICRuZ2E+blx1MDMwN2EgIDsKKyAgICAkY2EkdmlyYW1hfSRoYT5jJyc7CisgICAgJGNhfSR4PmM7CisgICAgJGNhJHZpcmFtYT5jOworICAgICRjYT5jYTsKKworICAgICRjaGF9JHg+Y2g7CisgICAgJGNoYSR2aXJhbWE+Y2g7CisgICAgJGNoYT5jaGE7CisgICAgJGphJHZpcmFtYX0kaGE+aicnOworICAgICRqYX0keD5qOworICAgICRqYSR2aXJhbWE+ajsKKyAgICAkamE+amE7CisKKyAgICAkamhhfSR4PmpoOworICAgICRqaGEkdmlyYW1hPmpoOworICAgICRqaGE+amhhOworCisgICAgJG55YSB9JHg+blx1MDMwMyA7CisgICAgJG55YSR2aXJhbWE+blx1MDMwMzsKKyAgICAkbnlhID4gblx1MDMwM2EgIDsKKworCisgICAgJHR0YSR2aXJhbWF9JGhhPnRcdTAzMjMnJzsKKyAgICAkdHRhfSR4PnRcdTAzMjM7CisgICAgJHR0YSR2aXJhbWE+dFx1MDMyMzsKKyAgICAkdHRhPnRcdTAzMjNhOworCisgICAgJHR0aGF9JHg+dFx1MDMyM2g7CisgICAgJHR0aGEkdmlyYW1hPnRcdTAzMjNoOworICAgICR0dGhhPnRcdTAzMjNoYTsKKyAgICAkZGRhfSR4JGhhPmRcdTAzMjMnJzsKKyAgICAkZGRhfSR4PmRcdTAzMjM7CisgICAgJGRkYSR2aXJhbWE+ZFx1MDMyMzsKKyAgICAkZGRhPmRcdTAzMjNhOworCisgICAgJGRkaGF9JHg+ZFx1MDMyM2g7CisgICAgJGRkaGEkdmlyYW1hPmRcdTAzMjNoOworICAgICRkZGhhPmRcdTAzMjNoYTsKKworICAgICRubmF9JHg+blx1MDMyMyAgOworICAgICRubmEkdmlyYW1hPm5cdTAzMjM7CisgICAgJG5uYT5uXHUwMzIzYSAgIDsKKworCisgICAgJHRhJHZpcmFtYX0kaGE+dCcnOworICAgICR0YSR2aXJhbWF9JHR0aGE+dCcnOworICAgICR0YSR2aXJhbWF9JHR0YT50Jyc7CisgICAgJHRhJHZpcmFtYX0kdGhhPnQnJzsKKyAgICAkdGF9JHg+dDsKKyAgICAkdGEkdmlyYW1hPnQ7CisgICAgJHRhPnRhOworICAgICR0aGF9JHg+dGg7CisgICAgJHRoYSR2aXJhbWE+dGg7CisgICAgJHRoYT50aGE7CisKKyAgICAkZGEkdmlyYW1hfSRoYT5kJyc7CisgICAgJGRhJHZpcmFtYX0kZGRoYT5kJyc7CisgICAgJGRhJHZpcmFtYX0kZGRhPmQnJzsKKyAgICAkZGEkdmlyYW1hfSRkaGE+ZCcnOworICAgICRkYX0keD5kOworICAgICRkYSR2aXJhbWE+ZDsKKyAgICAkZGE+ZGE7CisgICAgJGRoYX0keD5kaDsKKyAgICAkZGhhJHZpcmFtYT5kaDsKKyAgICAkZGhhPmRoYTsKKyAgICAkbmEkdmlyYW1hfSRnYT5uJyc7CisgICAgJG5hJHZpcmFtYX0keWE+bicnOworICAgICRuYX0keD5uOworICAgICRuYSR2aXJhbWE+bjsKKyAgICAkbmE+bmE7CisKKworICAgICRwYSR2aXJhbWF9JGhhPnAnJzsKKyAgICAkcGF9JHg+cDsKKyAgICAkcGEkdmlyYW1hPnA7CisgICAgJHBhPnBhOworICAgICRwaGF9JHg+cGg7CisgICAgJHBoYSR2aXJhbWE+cGg7CisgICAgJHBoYT5waGE7CisgICAgJGJhJHZpcmFtYX0kaGE+YicnOworICAgICRiYX0keD5iOworICAgICRiYSR2aXJhbWE+YjsKKyAgICAkYmE+YmE7CisKKyAgICAkYmhhfSR4PmJoOworICAgICRiaGEkdmlyYW1hPmJoOworICAgICRiaGE+YmhhOworCisgICAgJG1hJHZpcmFtYX0kbWE+bScnOworICAgICRtYX0keD5tOworICAgICRtYSR2aXJhbWE+bTsKKyAgICAkbWE+bWE7CisKKyAgICAkeWF9JHg+eTsKKyAgICAkeWEkdmlyYW1hPnk7CisgICAgJHlhPnlhOworICAgICRyYSR2aXJhbWF9JGhhPnInJzsKKyAgICAkcmF9JHg+cjsKKyAgICAkcmEkdmlyYW1hPnI7CisgICAgJHJhPnJhOworICAgICRycmEkdmlyYW1hfSRoYT5yXHUwMzMxJyc7CisgICAgJHJyYX0keD5yXHUwMzMxOworICAgICRycmEkdmlyYW1hPnJcdTAzMzE7CisgICAgJHJyYT5yXHUwMzMxYTsKKyAgICAkbGEkdmlyYW1hfSRoYT5sJyc7CisgICAgJGxhfSR4Pmw7CisgICAgJGxhJHZpcmFtYT5sOworICAgICRsYT5sYTsKKyAgICAkbGxhJHZpcmFtYX0kaGE+bFx1MDMyMycnOworICAgICRsbGF9JHg+bFx1MDMyMzsKKyAgICAkbGxhJHZpcmFtYT5sXHUwMzIzOworICAgICRsbGE+bFx1MDMyM2E7CisgICAgJHZhfSR4PnY7CisgICAgJHZhJHZpcmFtYT52OworICAgICR2YT52YTsKKyAgICAkc2EkdmlyYW1hfSRoYT5zJyc7CisgICAgJHNhJHZpcmFtYX0kc2hhPnMnJzsKKyAgICAkc2EkdmlyYW1hfSRzc2E+cycnOworICAgICRzYSR2aXJhbWF9JHNhPnMnJzsKKyAgICAkc2F9JHg+czsKKyAgICAkc2EkdmlyYW1hPnM7CisKKyAgICAjZm9yIGd1cm11a2hpCisgICAgJHNhJG51a3RhfSR4PnNcdTAzMDE7CisgICAgJHNhJG51a3RhJHZpcmFtYT5zXHUwMzAxOworICAgICRzYSRudWt0YT5zXHUwMzAxYTsKKyAgICAkc2E+c2E7CisKKyAgICAkc2hhfSR4PnNcdTAzMDE7CisgICAgJHNoYSR2aXJhbWE+c1x1MDMwMTsKKyAgICAkc2hhPnNcdTAzMDFhOworCisgICAgJHNzYX0keD5zXHUwMzIzOworICAgICRzc2EkdmlyYW1hPnNcdTAzMjM7CisgICAgJHNzYT5zXHUwMzIzYTsKKyAgICAkaGF9JHg+aDsKKyAgICAkaGEkdmlyYW1hPmg7CisgICAgJGhhPmhhOworCisgICAgIyBkZXBlbmRlbnQgdm93ZWxzIChzaG91bGQgbmV2ZXIgb2NjdXIgZXhjZXB0IGZvbGxvd2luZyBjb25zb25hbnRzKQorICAgICRmb3JjZUluZGVwZW5kZW50TWF0cmF7JGFhICA+IFx1MDMxNGFcdTAzMDQgICAgICAgOworICAgICRmb3JjZUluZGVwZW5kZW50TWF0cmF7JGFpICA+IFx1MDMxNGFpICAgICAgICAgICAgOworICAgICRmb3JjZUluZGVwZW5kZW50TWF0cmF7JGF1ICA+IFx1MDMxNGF1ICAgICAgICAgICAgOworICAgICRmb3JjZUluZGVwZW5kZW50TWF0cmF7JGlpICA+IFx1MDMxNGlcdTAzMDQgICAgICAgOworICAgICRmb3JjZUluZGVwZW5kZW50TWF0cmF7JGkgICA+IFx1MDMxNGkgICAgICAgICAgICAgOworICAgICRmb3JjZUluZGVwZW5kZW50TWF0cmF7JHV1ICA+IFx1MDMxNHVcdTAzMDQgICAgICAgOworICAgICRmb3JjZUluZGVwZW5kZW50TWF0cmF7JHUgICA+IFx1MDMxNHUgICAgICAgICAgICAgOworICAgICRmb3JjZUluZGVwZW5kZW50TWF0cmF7JHJyaCA+IFx1MDMxNHJcdTAzMjVcdTAzMDQgOworICAgICRmb3JjZUluZGVwZW5kZW50TWF0cmF7JHJoICA+IFx1MDMxNHJcdTAzMjUgICAgICAgOworICAgICRmb3JjZUluZGVwZW5kZW50TWF0cmF7JGxsaCA+IFx1MDMxNGxcdTAzMjVcdTAzMDQgOworICAgICRmb3JjZUluZGVwZW5kZW50TWF0cmF7JGxoICA+IFx1MDMxNGxcdTAzMjUgICAgICAgOworICAgICRmb3JjZUluZGVwZW5kZW50TWF0cmF7JGUgICA+IFx1MDMxNGVcdTAzMDQgICAgICAgOworICAgICRmb3JjZUluZGVwZW5kZW50TWF0cmF7JG8gICA+IFx1MDMxNG9cdTAzMDQgICAgICAgOworICAgICNleHRyYSB2b3dlbHMKKyAgICAkZm9yY2VJbmRlcGVuZGVudE1hdHJheyRjZSAgPiBcdTAzMTRlXHUwMzA2ICAgICAgIDsKKyAgICAkZm9yY2VJbmRlcGVuZGVudE1hdHJheyRjbyAgPiBcdTAzMTRvXHUwMzA2ICAgICAgIDsKKyAgICAkZm9yY2VJbmRlcGVuZGVudE1hdHJheyRzZSAgPiBcdTAzMTRlICAgICAgICAgICAgIDsKKyAgICAkZm9yY2VJbmRlcGVuZGVudE1hdHJheyRzbyAgPiBcdTAzMTRvICAgICAgICAgICAgIDsKKyAgICAkZm9yY2VJbmRlcGVuZGVudE1hdHJheyRudWt0YSAgPjsgIyBOdWt0YSBjYW5ub3QgYXBwZWFyIGluZGVwZW5kZW50bHkgb3IgYXMgZmlyc3QgY2hhcmFjdGVyCisgICAgJGZvcmNlSW5kZXBlbmRlbnRNYXRyYXskdmlyYW1hID47ICMgVmlyYW1hIGNhbm5vdCBhcHBlYXIgaW5kZXBlbmRlbnRseSBvciBhcyBmaXJzdCBjaGFyYWN0ZXIKKyAgICAkYWEgID4gYVx1MDMwNCAgICAgICA7CisgICAgJGFpICA+IGFpICAgICAgICAgICAgOworICAgICRhdSAgPiBhdSAgICAgICAgICAgIDsKKyAgICAkaWkgID4gaVx1MDMwNCAgICAgICA7CisgICAgJGkgICA+IGkgICAgICAgICAgICAgOworICAgICR1dSAgPiB1XHUwMzA0ICAgICAgIDsKKyAgICAkdSAgID4gdSAgICAgICAgICAgICA7CisgICAgJHJyaCA+IHJcdTAzMjVcdTAzMDQgOworICAgICRyaCAgPiByXHUwMzI1ICAgICAgIDsKKyAgICAkbGxoID4gbFx1MDMyNVx1MDMwNCA7CisgICAgJGxoICA+IGxcdTAzMjUgICAgICAgOworICAgICRlICAgPiBlXHUwMzA0ICAgICAgIDsKKyAgICAkbyAgID4gb1x1MDMwNCAgICAgICA7CisgICAgI2V4dHJhIHZvd2VscworICAgICRjZSAgPiBlXHUwMzA2ICAgICAgIDsKKyAgICAkY28gID4gb1x1MDMwNiAgICAgICA7CisgICAgJHNlICA+IGUgICAgICAgICAgICAgOworICAgICRzbyAgPiBvICAgICAgICAgICAgIDsKKyAgICAjZGVwZW5kZW50IHZvd2VscyB3aGVuIGZvbGxvd2luZyBpbmRlcGVuZGVudCB2b3dlbHMuIEdlbmVyYWxseSBJbGxlZ2FsIG9ubHkgZm9yIHJvdW5kdHJpcHBpbmcKKyAgICAkd2FhfSAkeCA+IGFcdTAzMDRcdTAzMTQgICAgICAgIDsKKyAgICAkd2FpfSAkeCA+IGFpXHUwMzE0ICAgICAgICAgICAgIDsKKyAgICAkd2F1fSAkeCA+IGF1XHUwMzE0ICAgICAgICAgICAgIDsKKyAgICAkd2lpfSAkeCA+IGlcdTAzMDRcdTAzMTQgICAgICAgIDsKKyAgICAkd2kgfSAkeCA+IGlcdTAzMTQgICAgICAgICAgICAgIDsKKyAgICAkd3V1fSAkeCA+IHVcdTAzMDRcdTAzMTQgICAgICAgIDsKKyAgICAkd3UgfSAkeCA+IHVcdTAzMTQgICAgICAgICAgICAgIDsKKyAgICAkd3JyfSAkeCA+IHJcdTAzMjVcdTAzMDRcdTAzMTQgIDsKKyAgICAkd3IgfSAkeCA+IHJcdTAzMjVcdTAzMTQgICAgICAgIDsKKyAgICAkd2xsfSAkeCA+IGxcdTAzMjVcdTAzMDRcdTAzMTQgIDsKKyAgICAkd2wgfSAkeCA+IGxcdTAzMjVcdTAzMTQgICAgICAgIDsKKyAgICAkd2UgfSAkeCA+IGVcdTAzMDRcdTAzMTQgICAgICAgIDsKKyAgICAkd28gfSAkeCA+IG9cdTAzMDRcdTAzMTQgICAgICAgIDsKKyAgICAkd2EgfSAkeCA+IGFcdTAzMTQgICAgICAgICAgICAgIDsKKyAgICAjZXh0cmEgdm93ZWxzCisgICAgJHdjZX0gJHggPiBlXHUwMzA2XHUwMzE0ICAgICAgICA7CisgICAgJHdjb30gJHggPiBvXHUwMzA2XHUwMzE0ICAgICAgICA7CisgICAgJHdzZX0gJHggPiBlXHUwMzE0ICAgICAgICAgICAgICA7CisgICAgJHdzb30gJHggPiBvXHUwMzE0ICAgICAgICAgICAgICA7CisgICAgJG9tfSAkeCA+ICcnb21cdTAzMTQgICAgICAgICAgICA7CisgICAgICAgICAgIAorICAgICMgaW5kZXBlbmRlbnQgdm93ZWxzIHdoZW4gcHJlY2VlZGVkIGJ5IHZvd2VscworICAgICR2b3dlbHN7JHdhYSAgICA+ICcnYVx1MDMwNCAgICAgICAgIDsKKyAgICAkdm93ZWxzeyR3YWkgICAgPiAnJ2FpICAgICAgICAgICAgICA7CisgICAgJHZvd2Vsc3skd2F1ICAgID4gJydhdSAgICAgICAgICAgICAgOworICAgICR2b3dlbHN7JHdpaSAgICAgPiAnJ2lcdTAzMDQgICAgICAgIDsKKyAgICAkdm93ZWxzeyR3aSAgICAgPiAnJ2kgICAgICAgICAgICAgICA7CisgICAgJHZvd2Vsc3skd3V1ICAgID4gJyd1XHUwMzA0ICAgICAgICAgOworICAgICR2b3dlbHN7JHd1ICAgICA+ICcndSAgICAgICAgICAgICAgIDsKKyAgICAkdm93ZWxzeyR3cnIgICAgPiAnJ3JcdTAzMjVcdTAzMDQgICA7CisgICAgJHZvd2Vsc3skd3IgICAgID4gJydyXHUwMzI1ICAgICAgICAgOworICAgICR2b3dlbHN7JHdsbCAgICA+ICcnbFx1MDMyNVx1MDMwNCAgIDsKKyAgICAkdm93ZWxzeyR3bCAgICAgPiAnJ2xcdTAzMjUgICAgICAgICA7CisgICAgJHZvd2Vsc3skd2UgICAgID4gJydlXHUwMzA0ICAgICAgICAgOworICAgICR2b3dlbHN7JHdvICAgICA+ICcnb1x1MDMwNCAgICAgICAgIDsKKyAgICAkdm93ZWxzeyR3YSAgICAgPiAnJ2EgICAgICAgICAgICAgICA7CisgICAgI2V4dHJhIHZvd2VscworICAgICR2b3dlbHN7JHdjZSAgICA+ICcnZVx1MDMwNiAgICAgICAgIDsKKyAgICAkdm93ZWxzeyR3Y28gICAgPiAnJ29cdTAzMDYgICAgICAgICA7CisgICAgJHZvd2Vsc3skd3NlICAgID4gJydlICAgICAgICAgICAgICAgOworICAgICR2b3dlbHN7JHdzbyAgICA+ICcnbyAgICAgICAgICAgICAgIDsKKworICAgICMgaW5kZXBlbmRlbnQgdm93ZWxzIChvdGhlcndpc2UpCisgICAgJHdhYSA+IGFcdTAzMDQgICAgICAgICAgOworICAgICR3YWkgPiBhaSAgICAgICAgICAgICAgIDsKKyAgICAkd2F1ID4gYXUgICAgICAgICAgICAgICA7CisgICAgJHdpaSA+IGlcdTAzMDQgICAgICAgICAgOworICAgICR3aSAgPiBpICAgICAgICAgICAgICAgIDsKKyAgICAkd3V1ID4gdVx1MDMwNCAgICAgICAgICA7CisgICAgJHd1ICA+IHUgICAgICAgICAgICAgICAgOworICAgICR3cnIgPiByXHUwMzI1XHUwMzA0ICAgIDsKKyAgICAkd3IgID4gclx1MDMyNSAgICAgICAgICA7CisgICAgJHdsbCA+IGxcdTAzMjVcdTAzMDQgICAgOworICAgICR3bCAgPiBsXHUwMzI1ICAgICAgICAgIDsKKyAgICAkd2UgID4gZVx1MDMwNCAgICAgICAgICA7CisgICAgJHdvICA+IG9cdTAzMDQgICAgICAgICAgOworICAgICR3YSAgPiBhICAgICAgICAgICAgICAgIDsKKyAgICAjZXh0cmEgdm93ZWxzCisgICAgJHdjZSA+IGVcdTAzMDYgICAgICAgICAgOworICAgICR3Y28gPiBvXHUwMzA2ICAgICAgICAgIDsKKyAgICAkd3NlID4gZSAgICAgICAgICAgICAgICA7CisgICAgJHdzbyA+IG8gICAgICAgICAgICAgICAgOworICAgICRvbSA+ICcnb20gICAgICAgICAgICAgIDsKKworICAgICNzdHJlc3MgbWFya3MKKyAgICAkYXZhZ3JhaGEgPiBcdTAzMTU7CisgICAgJGNoYW5kcmFiaW5kdSRhbnVzdmFyYT5cdTAzMDM7CisgICAgJGNoYW5kcmFiaW5kdSA+IG1cdTAzMTA7CisgICAgJHZpc2FyZ2E+aFx1MDMyMzsKKyAgICAjbnVtYmVycworICAgICR6ZXJvICA+IDA7IAorICAgICRvbmUgICA+IDE7ICAKKyAgICAkdHdvICAgPiAyOyAgCisgICAgJHRocmVlID4gMzsKKyAgICAkZm91ciAgPiA0OyAKKyAgICAkZml2ZSAgPiA1OyAKKyAgICAkc2l4ICAgPiA2OyAgCisgICAgJHNldmVuID4gNzsKKyAgICAkZWlnaHQgPiA4OworICAgICRuaW5lICA+IDk7CisgICAgJGxtICAgPjsgCisgICAgJGFpbG0gPjsKKyAgICAkYXVsbSA+OworICAgICRlY3AwID47CisgICAgJGVjcDEgPjsKKyAgICAkZWNwMiA+OworICAgICRlY3AzID47CisgICAgJGVjcDQgPjsKKyAgICAkZWNwNSA+OworICAgICRlY3A2ID47CisgICAgJGVjcDcgPjsKKyAgICAkZWNwOCA+OworICAgICRlY3A5ID47CisgICAgJGVjcEEgPjsKKyAgICAkZWNwQiA+OworICAgICRlY3BDID47CisgICAgJGVjcEQgPjsKKyAgICAkZWNwRSA+OworICAgICRlY3BGID47CisgICAgJGRhbmRhPicuJzsKKyAgICAkZG91YmxlRGFuZGE+Jy4nOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfSW50ZXJJbmRpY19NYWxheWFsYW0udHh0IGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9JbnRlckluZGljX01hbGF5YWxhbS50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjZjNzU4NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfSW50ZXJJbmRpY19NYWxheWFsYW0udHh0CkBAIC0wLDAgKzEsMTQxIEBACisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0F0dGljL1RyYW5zbGl0ZXJhdG9yX0ludGVySW5kaWNfTWFsYXlhbGFtLnR4dCx2ICQKKyMgJERhdGU6IDIwMDIvMDcvMjUgMjE6MjA6MjYgJAorIyAkUmV2aXNpb246IDEuOCAkCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBJbnRlckluZGljLU1hbGF5YWxhbQorIzo6IE5GRCAoTkZDKSA7CitcdWUwMDE+XHUwZDAyOyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwZDAxPlx1MGQwMiA9IFNJR04gQ0FORFJBQklORFU+U0lHTiBBTlVTVkFSQQorXHVlMDAyPlx1MGQwMjsgIyBTSUdOIEFOVVNWQVJBCitcdWUwMDM+XHUwZDAzOyAjIFNJR04gVklTQVJHQQorXHVlMDA1Plx1MGQwNTsgIyBMRVRURVIgQQorXHVlMDA2Plx1MGQwNjsgIyBMRVRURVIgQUEKK1x1ZTAwNz5cdTBkMDc7ICMgTEVUVEVSIEkKK1x1ZTAwOD5cdTBkMDg7ICMgTEVUVEVSIElJCitcdWUwMDk+XHUwZDA5OyAjIExFVFRFUiBVCitcdWUwMGE+XHUwZDBhOyAjIExFVFRFUiBVVQorXHVlMDBiPlx1MGQwYjsgIyBMRVRURVIgVk9DQUxJQyBSCitcdWUwMGM+XHUwZDBjOyAjIExFVFRFUiBWT0NBTElDIEwKK1x1ZTAwZD5cdTBkMGU7ICMgRkFMTExCQUNLIExFVFRFUiBFCitcdWUwMGU+XHUwZDBlOyAjIExFVFRFUiBFCitcdWUwMGY+XHUwZDBmOyAjIExFVFRFUiBFRQorXHVlMDEwPlx1MGQxMDsgIyBMRVRURVIgQUkKK1x1ZTAxMT5cdTBkMTI7ICMgRkFMTEJBQ0sgVE8gTworXHVlMDEyPlx1MGQxMjsgIyBMRVRURVIgTworXHVlMDEzPlx1MGQxMzsgIyBMRVRURVIgT08KK1x1ZTAxND5cdTBkMTQ7ICMgTEVUVEVSIEFVCitcdWUwMTU+XHUwZDE1OyAjIExFVFRFUiBLQQorXHVlMDE2Plx1MGQxNjsgIyBMRVRURVIgS0hBCitcdWUwMTc+XHUwZDE3OyAjIExFVFRFUiBHQQorXHVlMDE4Plx1MGQxODsgIyBMRVRURVIgR0hBCitcdWUwMTk+XHUwZDE5OyAjIExFVFRFUiBOR0EKK1x1ZTAxYT5cdTBkMWE7ICMgTEVUVEVSIENBCitcdWUwMWI+XHUwZDFiOyAjIExFVFRFUiBDSEEKK1x1ZTAxYz5cdTBkMWM7ICMgTEVUVEVSIEpBCitcdWUwMWQ+XHUwZDFkOyAjIExFVFRFUiBKSEEKK1x1ZTAxZT5cdTBkMWU7ICMgTEVUVEVSIE5ZQQorXHVlMDFmPlx1MGQxZjsgIyBMRVRURVIgVFRBCitcdWUwMjA+XHUwZDIwOyAjIExFVFRFUiBUVEhBCitcdWUwMjE+XHUwZDIxOyAjIExFVFRFUiBEREEKK1x1ZTAyMj5cdTBkMjI7ICMgTEVUVEVSIERESEEKK1x1ZTAyMz5cdTBkMjM7ICMgTEVUVEVSIE5OQQorXHVlMDI0Plx1MGQyNDsgIyBMRVRURVIgVEEKK1x1ZTAyNT5cdTBkMjU7ICMgTEVUVEVSIFRIQQorXHVlMDI2Plx1MGQyNjsgIyBMRVRURVIgREEKK1x1ZTAyNz5cdTBkMjc7ICMgTEVUVEVSIERIQQorXHVlMDI4Plx1MGQyODsgIyBMRVRURVIgTkEKK1x1ZTAyOT5cdTBkMjg7ICMgUkVNQVAgKGluZGljRXhjZXB0aW9ucy50eHQpOiBcdTBkMjk+XHUwZDI4ID0gTEVUVEVSIE5OTkE+TEVUVEVSIE5BCitcdWUwMmE+XHUwZDJhOyAjIExFVFRFUiBQQQorXHVlMDJiPlx1MGQyYjsgIyBMRVRURVIgUEhBCitcdWUwMmM+XHUwZDJjOyAjIExFVFRFUiBCQQorXHVlMDJkPlx1MGQyZDsgIyBMRVRURVIgQkhBCitcdWUwMmU+XHUwZDJlOyAjIExFVFRFUiBNQQorXHVlMDJmPlx1MGQyZjsgIyBMRVRURVIgWUEKK1x1ZTAzMFx1ZTAzYz5cdTBkMzE7CitcdWUwMzA+XHUwZDMwOyAjIExFVFRFUiBSQQorXHVlMDMxPlx1MGQzMTsgIyBMRVRURVIgUlJBCitcdWUwMzI+XHUwZDMyOyAjIExFVFRFUiBMQQorXHVlMDMzXHVlMDNjPlx1MGQzNDsKK1x1ZTAzMz5cdTBkMzM7ICMgTEVUVEVSIExMQQorXHVlMDM0Plx1MGQzNDsgIyBMRVRURVIgTExMQQorXHVlMDM1Plx1MGQzNTsgIyBMRVRURVIgVkEKK1x1ZTAzNj5cdTBkMzY7ICMgTEVUVEVSIFNIQQorXHVlMDM3Plx1MGQzNzsgIyBMRVRURVIgU1NBCitcdWUwMzg+XHUwZDM4OyAjIExFVFRFUiBTQQorXHVlMDM5Plx1MGQzOTsgIyBMRVRURVIgSEEKKworXHVlMDNjPjsgIyBGQUxMQkFDSyBCTE9XIEFXQVkgTlVLVEEKK1x1ZTAzZD47ICMgRkFMTEJBQ0sgQkxPVyBBV0FZIEFWQUdSQUhBCisKK1x1ZTAzZT5cdTBkM2U7ICMgVk9XRUwgU0lHTiBBQQorXHVlMDNmPlx1MGQzZjsgIyBWT1dFTCBTSUdOIEkKK1x1ZTA0MD5cdTBkNDA7ICMgVk9XRUwgU0lHTiBJSQorXHVlMDQxPlx1MGQ0MTsgIyBWT1dFTCBTSUdOIFUKK1x1ZTA0Mj5cdTBkNDI7ICMgVk9XRUwgU0lHTiBVVQorXHVlMDQzPlx1MGQ0MzsgIyBWT1dFTCBTSUdOIFZPQ0FMSUMgUgorXHVlMDQ0PjsgIyBGQUxMQkFDSyBCTE9XIEFXQVkgVk9XRUwgU0lHTiBWT0NBTElDIFJSCitcdWUwNDU+XHUwZDNlOyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwZDQ1Plx1MGQzZSA9IFZPV0VMIFNJR04gQ0FORFJBIEU+Vk9XRUwgU0lHTiBBQQorXHVlMDQ2Plx1MGQ0NjsgIyBWT1dFTCBTSUdOIEUKK1x1ZTA0Nz5cdTBkNDc7ICMgVk9XRUwgU0lHTiBFRQorXHVlMDQ4Plx1MGQ0ODsgIyBWT1dFTCBTSUdOIEFJCitcdWUwNDk+XHUwZDRiOyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwZDQ5Plx1MGQ0YiA9IFZPV0VMIFNJR04gQ0FORFJBIE8+Vk9XRUwgU0lHTiBPTworXHVlMDRhPlx1MGQ0YTsgIyBWT1dFTCBTSUdOIE8KK1x1ZTA0Yj5cdTBkNGI7ICMgVk9XRUwgU0lHTiBPTworXHVlMDRjPlx1MGQ0YzsgIyBWT1dFTCBTSUdOIEFVCitcdWUwNGQ+XHUwZDRkOyAjIFNJR04gVklSQU1BCitcdWUwNTA+XHUwZDEzXHUwZDAyOyAjIFVOTUFQUEVEIEludGVySW5kaWMtTWFsYXlhbGFtOiBPTQorXHVlMDUxPjsKK1x1ZTA1Mj47CitcdWUwNTM+OworXHVlMDU0PjsKK1x1ZTA1NT47ICMgRkFMTEJBQ0sgQkxPVyBBV0FZIExFTkdUSCBNQVJLCitcdWUwNTY+XHUwZDQ4OyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwZDU2Plx1MGQ0OCA9IEFJIExFTkdUSCBNQVJLPlZPV0VMIFNJR04gQUkKK1x1ZTA1Nz5cdTBkNTc7ICMgQVUgTEVOR1RIIE1BUksKK1x1ZTA1OD5cdTBkMTU7ICMgRkFMTEJBQ0sKK1x1ZTA1OT5cdTBkMTY7ICMgUkVNQVAgKGluZGljRXhjZXB0aW9ucy50eHQpOiBcdTBkNTk+XHUwZDE2ID0gTEVUVEVSIEtISEE+TEVUVEVSIEtIQQorXHVlMDVhPlx1MGQxNzsgIyBSRU1BUCAoaW5kaWNFeGNlcHRpb25zLnR4dCk6IFx1MGQ1YT5cdTBkMTcgPSBMRVRURVIgR0hIQT5MRVRURVIgR0EKK1x1ZTA1Yj5cdTBkMWM7ICMgUkVNQVAgKGluZGljRXhjZXB0aW9ucy50eHQpOiBcdTBkNWI+XHUwZDFjID0gTEVUVEVSIFpBPkxFVFRFUiBKQQorXHVlMDVkPlx1MGQyMjsgIyBSRU1BUCAoaW5kaWNFeGNlcHRpb25zLnR4dCk6IFx1MGQ1ZD5cdTBkMjIgPSBMRVRURVIgUkhBPkxFVFRFUiBEREhBCitcdWUwNWM+XHUwZDIxOyAjIEZBTExCQUNLCitcdWUwNWU+XHUwZDJiOyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwZDVlPlx1MGQyYiA9IExFVFRFUiBGQT5MRVRURVIgUEhBCitcdWUwNWY+XHUwZDJmOyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwZDVmPlx1MGQyZiA9IExFVFRFUiBZWUE+TEVUVEVSIFlBCitcdWUwNjA+XHUwZDYwOyAjIExFVFRFUiBWT0NBTElDIFJSCitcdWUwNjE+XHUwZDYxOyAjIExFVFRFUiBWT0NBTElDIExMCitcdWUwNjI+OyAjIEZBTExCQUNLIEJMT1cgQVdBWSBWT1dFTCBTSUdOIFZPQ0FMSUMgTAorXHVlMDYzPjsgIyBGQUxMQkFDSyBCTE9XIEFXQVkgVk9XRUwgU0lHTiBWT0NBTElDIExMCitcdWUwNjQ+Jy4nICAgOyAjIEZBTExCQUNLIEZPUiBEQU5EQQorXHVlMDY1PicuJyAgIDsgIyBGQUxMQkFDSyBGT1IgRE9VQkxFIERBTkRBCQorXHVlMDY2Plx1MGQ2NjsgIyBESUdJVCBaRVJPCitcdWUwNjc+XHUwZDY3OyAjIERJR0lUIE9ORQorXHVlMDY4Plx1MGQ2ODsgIyBESUdJVCBUV08KK1x1ZTA2OT5cdTBkNjk7ICMgRElHSVQgVEhSRUUKK1x1ZTA2YT5cdTBkNmE7ICMgRElHSVQgRk9VUgorXHVlMDZiPlx1MGQ2YjsgIyBESUdJVCBGSVZFCitcdWUwNmM+XHUwZDZjOyAjIERJR0lUIFNJWAorXHVlMDZkPlx1MGQ2ZDsgIyBESUdJVCBTRVZFTgorXHVlMDZlPlx1MGQ2ZTsgIyBESUdJVCBFSUdIVAorXHVlMDZmPlx1MGQ2ZjsgIyBESUdJVCBOSU5FCitcdWUwODA+OyAjIFVOTUFQUEVEIEludGVySW5kaWMtTWFsYXlhbGFtOiBJU1NIQVIKK1x1ZTA3MD47CitcdWUwNzE+OworXHVlMDcyPjsKK1x1ZTA3Mz47CitcdWUwNzQ+OworXHVlMDc1PjsKK1x1ZTA3Nj47CitcdWUwNzc+OworXHVlMDc4PjsKK1x1ZTA3OT47CitcdWUwN0E+OworMCA+IFx1MGQ2NjsgICAgICAgIyBGQUxMQkFDSyBGT1IgVEFNSUwKKzEgPiBcdTBkNjc7CitcdWUwZjAgPiAgXHUwZDMwOyAgIyBGQUxMQkFDSyBSQSAKK1x1ZTBmMSA+ICBcdTBkMzA7ICAjIEZBTExCQUNLIFJBCisKKworIyAgICA6OiBORkMgKE5GRCkgOworIyBlb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfSW50ZXJJbmRpY19Pcml5YS50eHQgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0ludGVySW5kaWNfT3JpeWEudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM5NGU2ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0ludGVySW5kaWNfT3JpeWEudHh0CkBAIC0wLDAgKzEsMTM0IEBACisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0F0dGljL1RyYW5zbGl0ZXJhdG9yX0ludGVySW5kaWNfT3JpeWEudHh0LHYgJAorIyAkRGF0ZTogMjAwMi8wNy8yNSAyMToyMDoyNiAkCisjICRSZXZpc2lvbjogMS44ICQKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIEludGVySW5kaWMtT3JpeWEKKyM6OiBORkQgKE5GQykgOworXHVlMDAxPlx1MGIwMTsgIyBTSUdOIENBTkRSQUJJTkRVCitcdWUwMDI+XHUwYjAyOyAjIFNJR04gQU5VU1ZBUkEKK1x1ZTAwMz5cdTBiMDM7ICMgU0lHTiBWSVNBUkdBCitcdWUwMDU+XHUwYjA1OyAjIExFVFRFUiBBCitcdWUwMDY+XHUwYjA2OyAjIExFVFRFUiBBQQorXHVlMDA3Plx1MGIwNzsgIyBMRVRURVIgSQorXHVlMDA4Plx1MGIwODsgIyBMRVRURVIgSUkKK1x1ZTAwOT5cdTBiMDk7ICMgTEVUVEVSIFUKK1x1ZTAwYT5cdTBiMGE7ICMgTEVUVEVSIFVVCitcdWUwMGI+XHUwYjBiOyAjIExFVFRFUiBWT0NBTElDIFIKK1x1ZTAwYz5cdTBiMGM7ICMgTEVUVEVSIFZPQ0FMSUMgTAorXHVlMDBkPlx1MGIwZjsgIyBGQUxMQkFDSworXHVlMDBlPlx1MGIwZjsgIyBGQUxMQkFDSworXHVlMDBmPlx1MGIwZjsgIyBMRVRURVIgRQorXHVlMDEwPlx1MGIxMDsgIyBMRVRURVIgQUkKK1x1ZTAxMT5cdTBiMTM7ICMgRkFMTEJBQ0sKK1x1ZTAxMj5cdTBiMTM7ICMgRkFMTEJBQ0sKK1x1ZTAxMz5cdTBiMTM7ICMgVU5NQVBQRUQgSW50ZXJJbmRpYy1Pcml5YTogTEVUVEVSIE9PIChcdTBiMTMgPSBMRVRURVIgTykKK1x1ZTAxND5cdTBiMTQ7ICMgTEVUVEVSIEFVCitcdWUwMTU+XHUwYjE1OyAjIExFVFRFUiBLQQorXHVlMDE2Plx1MGIxNjsgIyBMRVRURVIgS0hBCitcdWUwMTc+XHUwYjE3OyAjIExFVFRFUiBHQQorXHVlMDE4Plx1MGIxODsgIyBMRVRURVIgR0hBCitcdWUwMTk+XHUwYjE5OyAjIExFVFRFUiBOR0EKK1x1ZTAxYT5cdTBiMWE7ICMgTEVUVEVSIENBCitcdWUwMWI+XHUwYjFiOyAjIExFVFRFUiBDSEEKK1x1ZTAxYz5cdTBiMWM7ICMgTEVUVEVSIEpBCitcdWUwMWQ+XHUwYjFkOyAjIExFVFRFUiBKSEEKK1x1ZTAxZT5cdTBiMWU7ICMgTEVUVEVSIE5ZQQorXHVlMDFmPlx1MGIxZjsgIyBMRVRURVIgVFRBCitcdWUwMjA+XHUwYjIwOyAjIExFVFRFUiBUVEhBCitcdWUwMjE+XHUwYjIxOyAjIExFVFRFUiBEREEKK1x1ZTAyMj5cdTBiMjI7ICMgTEVUVEVSIERESEEKK1x1ZTAyMz5cdTBiMjM7ICMgTEVUVEVSIE5OQQorXHVlMDI0Plx1MGIyNDsgIyBMRVRURVIgVEEKK1x1ZTAyNT5cdTBiMjU7ICMgTEVUVEVSIFRIQQorXHVlMDI2Plx1MGIyNjsgIyBMRVRURVIgREEKK1x1ZTAyNz5cdTBiMjc7ICMgTEVUVEVSIERIQQorXHVlMDI4Plx1MGIyODsgIyBMRVRURVIgTkEKK1x1ZTAyOT5cdTBiMjhcdTBiM2M7ICMgUkVNQVAgKGluZGljRXhjZXB0aW9ucy50eHQpOiBcdTBiMjk+XHUwYjI4ID0gTEVUVEVSIE5OTkE+TEVUVEVSIE5BCitcdWUwMmE+XHUwYjJhOyAjIExFVFRFUiBQQQorXHVlMDJiPlx1MGIyYjsgIyBMRVRURVIgUEhBCitcdWUwMmM+XHUwYjJjOyAjIExFVFRFUiBCQQorXHVlMDJkPlx1MGIyZDsgIyBMRVRURVIgQkhBCitcdWUwMmU+XHUwYjJlOyAjIExFVFRFUiBNQQorXHVlMDJmPlx1MGIyZjsgIyBMRVRURVIgWUEKK1x1ZTAzMD5cdTBiMzA7ICMgTEVUVEVSIFJBCitcdWUwMzE+XHUwYjVjOyAjIExFVFRFUiBSUkEKK1x1ZTAzMj5cdTBiMzI7ICMgTEVUVEVSIExBCitcdWUwMzM+XHUwYjMzOyAjIExFVFRFUiBMTEEKK1x1ZTAzND5cdTBiMzNcdTBiM2M7ICMgUkVNQVAgKGluZGljRXhjZXB0aW9ucy50eHQpOiBcdTBiMzQ+XHUwYjMzID0gTEVUVEVSIExMTEE+TEVUVEVSIExMQQorXHVlMDM1Plx1MGIyYzsgIyBSRU1BUCAoaW5kaWNFeGNlcHRpb25zLnR4dCk6IFx1MGIzNT5cdTBiMmMgPSBMRVRURVIgVkE+TEVUVEVSIEJBCitcdWUwMzY+XHUwYjM2OyAjIExFVFRFUiBTSEEKK1x1ZTAzNz5cdTBiMzc7ICMgTEVUVEVSIFNTQQorXHVlMDM4Plx1MGIzODsgIyBMRVRURVIgU0EKK1x1ZTAzOT5cdTBiMzk7ICMgTEVUVEVSIEhBCitcdWUwM2M+XHUwYjNjOyAjIFNJR04gTlVLVEEKK1x1ZTAzZD5cdTBiM2Q7ICMgU0lHTiBBVkFHUkFIQQorXHVlMDNlPlx1MGIzZTsgIyBWT1dFTCBTSUdOIEFBCitcdWUwM2Y+XHUwYjNmOyAjIFZPV0VMIFNJR04gSQorXHVlMDQwPlx1MGI0MDsgIyBWT1dFTCBTSUdOIElJCitcdWUwNDE+XHUwYjQxOyAjIFZPV0VMIFNJR04gVQorXHVlMDQyPlx1MGI0MjsgIyBWT1dFTCBTSUdOIFVVCitcdWUwNDM+XHUwYjQzOyAjIFZPV0VMIFNJR04gVk9DQUxJQyBSCitcdWUwNDQ+XHUwYjQzXHUwYjNjOyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwYjQ0Plx1MGI0M1x1MGIzYyA9IFZPV0VMIFNJR04gVk9DQUxJQyBSUj5WT1dFTCBTSUdOIFZPQ0FMSUMgUi5TSUdOIE5VS1RBCitcdWUwNDU+XHUwYjQ3OyAjIEZBTExCQUNLCitcdWUwNDY+XHUwYjQ3OyAjIEZBTExCQUNLCitcdWUwNDc+XHUwYjQ3OyAjIFZPV0VMIFNJR04gRQorXHVlMDQ4Plx1MGI0ODsgIyBWT1dFTCBTSUdOIEFJCitcdWUwNDk+XHUwYjRiOyAjIEZBTExCQUNLCitcdWUwNGE+XHUwYjRiOyAjIEZBTExCQUNLCitcdWUwNGI+XHUwYjRiOyAjIFZPV0VMIFNJR04gRQorXHVlMDRjPlx1MGI0YzsgIyBWT1dFTCBTSUdOIEFVCitcdWUwNGQ+XHUwYjRkOyAjIFNJR04gVklSQU1BCitcdWUwNTA+XHUwYjEzXHUwYjAxOyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwYjUwPlx1MGIxM1x1MGIwMSA9IE9NPkxFVFRFUiBPLlNJR04gQ0FORFJBQklORFUKK1x1ZTA1MT47CitcdWUwNTI+OworXHVlMDUzPjsKK1x1ZTA1ND47CitcdWUwNTU+OyAjIFVOTUFQUEVEIEludGVySW5kaWMtT3JpeWE6IExFTkdUSCBNQVJLCitcdWUwNTY+XHUwYjU2OyAjIEFJIExFTkdUSCBNQVJLCitcdWUwNTc+XHUwYjU3OyAjIEFVIExFTkdUSCBNQVJLCitcdWUwNTk+XHUwYjE2XHUwYjNjOyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwYjU5Plx1MGIxNlx1MGIzYyA9IExFVFRFUiBLSEhBPkxFVFRFUiBLSEEuU0lHTiBOVUtUQQorXHVlMDU4Plx1MGIxNVx1MGIzYzsgIyBGQUxMQkFDSworXHVlMDVhPlx1MGIxN1x1MGIzYzsgIyBSRU1BUCAoaW5kaWNFeGNlcHRpb25zLnR4dCk6IFx1MGI1YT5cdTBiMTdcdTBiM2MgPSBMRVRURVIgR0hIQT5MRVRURVIgR0EuU0lHTiBOVUtUQQorXHVlMDViPlx1MGIxY1x1MGIzYzsgIyBSRU1BUCAoaW5kaWNFeGNlcHRpb25zLnR4dCk6IFx1MGI1Yj5cdTBiMWNcdTBiM2MgPSBMRVRURVIgWkE+TEVUVEVSIEpBLlNJR04gTlVLVEEKK1x1ZTA1Yz5cdTBiMjFcdTBiM2M7ICMgRkFMTEJBQ0sKK1x1ZTA1ZD5cdTBiNWQ7ICMgTEVUVEVSIFJIQQorXHVlMDVlPlx1MGIyYlx1MGIzYzsgIyBSRU1BUCAoaW5kaWNFeGNlcHRpb25zLnR4dCk6IFx1MGI1ZT5cdTBiMmJcdTBiM2MgPSBMRVRURVIgRkE+TEVUVEVSIFBIQS5TSUdOIE5VS1RBCitcdWUwNWY+XHUwYjVmOyAjIExFVFRFUiBZWUEKK1x1ZTA2MD5cdTBiNjA7ICMgTEVUVEVSIFZPQ0FMSUMgUlIKK1x1ZTA2MT5cdTBiNjE7ICMgTEVUVEVSIFZPQ0FMSUMgTEwKK1x1ZTA2Mj5cdTBiNTZcdTBiM2M7ICMgUkVNQVAgKGluZGljRXhjZXB0aW9ucy50eHQpOiBcdTBiNjI+XHUwYjU2XHUwYjNjID0gVk9XRUwgU0lHTiBWT0NBTElDIEw+QUkgTEVOR1RIIE1BUksuU0lHTiBOVUtUQQorXHVlMDYzPlx1MGI1N1x1MGIzYzsgIyBSRU1BUCAoaW5kaWNFeGNlcHRpb25zLnR4dCk6IFx1MGI2Mz5cdTBiNTdcdTBiM2MgPSBWT1dFTCBTSUdOIFZPQ0FMSUMgTEw+QVUgTEVOR1RIIE1BUksuU0lHTiBOVUtUQQorXHVFMDY0Plx1MDk2NDsgICAgICAgICAgIyBEQU5EQQorXHVFMDY1Plx1MDk2NTsgICAgICAgICAgIyBET1VCTEUgREFOREEKK1x1ZTA2Nj5cdTBiNjY7ICMgRElHSVQgWkVSTworXHVlMDY3Plx1MGI2NzsgIyBESUdJVCBPTkUKK1x1ZTA2OD5cdTBiNjg7ICMgRElHSVQgVFdPCitcdWUwNjk+XHUwYjY5OyAjIERJR0lUIFRIUkVFCitcdWUwNmE+XHUwYjZhOyAjIERJR0lUIEZPVVIKK1x1ZTA2Yj5cdTBiNmI7ICMgRElHSVQgRklWRQorXHVlMDZjPlx1MGI2YzsgIyBESUdJVCBTSVgKK1x1ZTA2ZD5cdTBiNmQ7ICMgRElHSVQgU0VWRU4KK1x1ZTA2ZT5cdTBiNmU7ICMgRElHSVQgRUlHSFQKK1x1ZTA2Zj5cdTBiNmY7ICMgRElHSVQgTklORQorXHVlMDcwPjsgIyBJU1NIQVIKK1x1ZTA3MT47CitcdWUwNzI+OworXHVlMDczPjsKK1x1ZTA3ND47CitcdWUwNzU+OworXHVlMDc2PjsKK1x1ZTA3Nz47CitcdWUwNzg+OworXHVlMDc5PjsKK1x1ZTA3QT47CiswID4gXHUwYjY2OyAgICAgICAjIEZBTExCQUNLIEZPUiBUQU1JTAorMSA+IFx1MGI2NzsKK1x1ZTBmMCA+ICBcdTBiMzA7ICAjIEZBTExCQUNLIFJBIAorXHVlMGYxID4gIFx1MGIzMDsgICMgRkFMTEJBQ0sgUkEKKyMgICAgOjogTkZDIChORkQpIDsKKyMgZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0ludGVySW5kaWNfVGFtaWwudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9JbnRlckluZGljX1RhbWlsLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41MzcwMDY5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9JbnRlckluZGljX1RhbWlsLnR4dApAQCAtMCwwICsxLDE1MSBAQAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvcHlyaWdodCAoYykgMTk5OS0yMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisjIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9BdHRpYy9UcmFuc2xpdGVyYXRvcl9JbnRlckluZGljX1RhbWlsLnR4dCx2ICQKKyMgJERhdGU6IDIwMDIvMDcvMjUgMjE6MjA6MjYgJAorIyAkUmV2aXNpb246IDEuOSAkCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBJbnRlckluZGljLVRhbWlsCisjOjogTkZEIChORkMpIDsKK1x1ZTAwMT5cdTBiODI7ICMgRkFMTEJBQ0sgU0lHTiBDQU5EUkFCSU5EVQorXHVlMDAyPlx1MGI4MjsgIyBTSUdOIEFOVVNWQVJBCitcdWUwMDM+XHUwYjgzOyAjIFNJR04gVklTQVJHQQorXHVlMDA1Plx1MGI4NTsgIyBMRVRURVIgQQorXHVlMDA2Plx1MGI4NjsgIyBMRVRURVIgQUEKK1x1ZTAwNz5cdTBiODc7ICMgTEVUVEVSIEkKK1x1ZTAwOD5cdTBiODg7ICMgTEVUVEVSIElJCitcdWUwMDk+XHUwYjg5OyAjIExFVFRFUiBVCitcdWUwMGE+XHUwYjhhOyAjIExFVFRFUiBVVQorXHVlMDBiPlx1MGJiMFx1MGJiZjsgIyBSRU1BUCAoaW5kaWNFeGNlcHRpb25zLnR4dCk6IFx1MGI4Yj5cdTBiYjBcdTBiYmYgPSBMRVRURVIgVk9DQUxJQyBSPkxFVFRFUiBSQS5WT1dFTCBTSUdOIEkKK1x1ZTAwYz5cdTBiODc7ICMgUkVNQVAgKGluZGljRXhjZXB0aW9ucy50eHQpOiBcdTBiOGM+XHUwYjg3ID0gTEVUVEVSIFZPQ0FMSUMgTD5MRVRURVIgSQorXHVlMDBkPlx1MGI4ZjsgIyBGQUxMQkFDSworXHVlMDBlPlx1MGI4ZTsgIyBMRVRURVIgRQorXHVlMDBmPlx1MGI4ZjsgIyBMRVRURVIgRUUKK1x1ZTAxMD5cdTBiOTA7ICMgTEVUVEVSIEFJCitcdWUwMTE+XHUwYjkyOyAjIEZBTExCQUNLCitcdWUwMTI+XHUwYjkyOyAjIExFVFRFUiBPCitcdWUwMTM+XHUwYjkzOyAjIExFVFRFUiBPTworXHVlMDE0Plx1MGI5NDsgIyBMRVRURVIgQVUKK1x1ZTAxNT5cdTBiOTU7ICMgTEVUVEVSIEtBCitcdWUwMTY+XHUwYjk1OyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwYjk2Plx1MGI5NSA9IExFVFRFUiBLSEE+TEVUVEVSIEtBCitcdWUwMTc+XHUwYjk1OyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwYjk3Plx1MGI5NSA9IExFVFRFUiBHQT5MRVRURVIgS0EKK1x1ZTAxOD5cdTBiOTU7ICMgUkVNQVAgKGluZGljRXhjZXB0aW9ucy50eHQpOiBcdTBiOTg+XHUwYjk1ID0gTEVUVEVSIEdIQT5MRVRURVIgS0EKK1x1ZTAxOT5cdTBiOTk7ICMgTEVUVEVSIE5HQQorXHVlMDFhPlx1MGI5YTsgIyBMRVRURVIgQ0EKK1x1ZTAxYj5cdTBiOWE7ICMgUkVNQVAgKGluZGljRXhjZXB0aW9ucy50eHQpOiBcdTBiOWI+XHUwYjlhID0gTEVUVEVSIENIQT5MRVRURVIgQ0EKK1x1ZTAxYz5cdTBiOWM7ICMgTEVUVEVSIEpBCitcdWUwMWQ+XHUwYjlhOyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwYjlkPlx1MGI5YSA9IExFVFRFUiBKSEE+TEVUVEVSIENBCitcdWUwMWU+XHUwYjllOyAjIExFVFRFUiBOWUEKK1x1ZTAxZj5cdTBiOWY7ICMgTEVUVEVSIFRUQQorXHVlMDIwPlx1MGI5ZjsgIyBSRU1BUCAoaW5kaWNFeGNlcHRpb25zLnR4dCk6IFx1MGJhMD5cdTBiOWYgPSBMRVRURVIgVFRIQT5MRVRURVIgVFRBCitcdWUwMjE+XHUwYjlmOyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwYmExPlx1MGI5ZiA9IExFVFRFUiBEREE+TEVUVEVSIFRUQQorXHVlMDIyPlx1MGI5ZjsgIyBSRU1BUCAoaW5kaWNFeGNlcHRpb25zLnR4dCk6IFx1MGJhMj5cdTBiOWYgPSBMRVRURVIgRERIQT5MRVRURVIgVFRBCitcdWUwMjM+XHUwYmEzOyAjIExFVFRFUiBOTkEKK1x1ZTAyND5cdTBiYTQ7ICMgTEVUVEVSIFRBCitcdWUwMjU+XHUwYmE0OyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwYmE1Plx1MGJhNCA9IExFVFRFUiBUSEE+TEVUVEVSIFRBCitcdWUwMjY+XHUwYmE0OyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwYmE2Plx1MGJhNCA9IExFVFRFUiBEQT5MRVRURVIgVEEKK1x1ZTAyNz5cdTBiYTQ7ICMgUkVNQVAgKGluZGljRXhjZXB0aW9ucy50eHQpOiBcdTBiYTc+XHUwYmE0ID0gTEVUVEVSIERIQT5MRVRURVIgVEEKK1x1ZTAyOFx1ZTAzYz5cdTBiYTk7CitcdWUwMjg+XHUwYmE4OyAjIExFVFRFUiBOQQorXHVlMDI5Plx1MGJhOTsgIyBMRVRURVIgTk5OQQorXHVlMDJhPlx1MGJhYTsgIyBMRVRURVIgUEEKK1x1ZTAyYj5cdTBiYWE7ICMgUkVNQVAgKGluZGljRXhjZXB0aW9ucy50eHQpOiBcdTBiYWI+XHUwYmFhID0gTEVUVEVSIFBIQT5MRVRURVIgUEEKK1x1ZTAyYz5cdTBiYWE7ICMgUkVNQVAgKGluZGljRXhjZXB0aW9ucy50eHQpOiBcdTBiYWM+XHUwYmFhID0gTEVUVEVSIEJBPkxFVFRFUiBQQQorXHVlMDJkPlx1MGJhYTsgIyBSRU1BUCAoaW5kaWNFeGNlcHRpb25zLnR4dCk6IFx1MGJhZD5cdTBiYWEgPSBMRVRURVIgQkhBPkxFVFRFUiBQQQorXHVlMDJlPlx1MGJhZTsgIyBMRVRURVIgTUEKK1x1ZTAyZj5cdTBiYWY7ICMgTEVUVEVSIFlBCitcdWUwMzBcdWUwM2M+XHUwYmIxOworXHVlMDMwPlx1MGJiMDsgIyBMRVRURVIgUkEKK1x1ZTAzMT5cdTBiYjE7ICMgTEVUVEVSIFJSQQorXHVlMDMyPlx1MGJiMjsgIyBMRVRURVIgTEEKK1x1ZTAzM1x1ZTAzYz5cdTBiYjQ7CitcdWUwMzM+XHUwYmIzOyAjIExFVFRFUiBMTEEKK1x1ZTAzND5cdTBiYjQ7ICMgTEVUVEVSIExMTEEKK1x1ZTAzNT5cdTBiYjU7ICMgTEVUVEVSIFZBCitcdWUwMzY+XHUwYmI3OyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwYmI2Plx1MGJiNyA9IExFVFRFUiBTSEE+TEVUVEVSIFNTQQorXHVlMDM3Plx1MGJiNzsgIyBMRVRURVIgU1NBCitcdWUwMzg+XHUwYmI4OyAjIExFVFRFUiBTQQorXHVlMDM5Plx1MGJiOTsgIyBMRVRURVIgSEEKKworXHVlMDNjPjsgIyBGQUxMQkFDSyBCTE9XIEFXQVkgTlVLVEEKK1x1ZTAzZD47ICMgRkFMTEJBQ0sgQkxPVyBBV0FZIEFWQUdSQUhBCisKK1x1ZTAzZT5cdTBiYmU7ICMgVk9XRUwgU0lHTiBBQQorXHVlMDNmPlx1MGJiZjsgIyBWT1dFTCBTSUdOIEkKK1x1ZTA0MD5cdTBiYzA7ICMgVk9XRUwgU0lHTiBJSQorXHVlMDQxPlx1MGJjMTsgIyBWT1dFTCBTSUdOIFUKK1x1ZTA0Mj5cdTBiYzI7ICMgVk9XRUwgU0lHTiBVVQorXHVlMDQzPlx1MGJjZFx1MGJiMFx1MGJiZjsgIyBSRU1BUCAoaW5kaWNFeGNlcHRpb25zLnR4dCk6IFx1MGJjMz5cdTBiY2RcdTBiYjBcdTBiYmYgPSBWT1dFTCBTSUdOIFZPQ0FMSUMgUj5TSUdOIFZJUkFNQS5MRVRURVIgUkEuVk9XRUwgU0lHTiBJCitcdWUwNDQ+XHUwYmNkXHUwYmIwXHUwYmJmOyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwYmM0Plx1MGJjZFx1MGJiMFx1MGJiZiA9IFZPV0VMIFNJR04gVk9DQUxJQyBSUj5TSUdOIFZJUkFNQS5MRVRURVIgUkEuVk9XRUwgU0lHTiBJCitcdWUwNDU+XHUwYmJlOyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwYmM1Plx1MGJiZSA9IFZPV0VMIFNJR04gQ0FORFJBIEU+Vk9XRUwgU0lHTiBBQQorXHVlMDQ2Plx1MGJjNjsgIyBWT1dFTCBTSUdOIEUKK1x1ZTA0Nz5cdTBiYzc7ICMgVk9XRUwgU0lHTiBFRQorXHVlMDQ4Plx1MGJjODsgIyBWT1dFTCBTSUdOIEFJCitcdWUwNDk+XHUwYmJlOyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwYmM5Plx1MGJiZSA9IFZPV0VMIFNJR04gQ0FORFJBIE8+Vk9XRUwgU0lHTiBBQQorXHVlMDRhPlx1MGJjYTsgIyBWT1dFTCBTSUdOIE8KK1x1ZTA0Yj5cdTBiY2I7ICMgVk9XRUwgU0lHTiBPTworXHVlMDRjPlx1MGJjYzsgIyBWT1dFTCBTSUdOIEFVCitcdWUwNGQ+XHUwYmNkOyAjIFNJR04gVklSQU1BCitcdWUwNTA+XHUwYjkzXHUwYmFlXHUwYmNkOyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwYmQwPlx1MGI5M1x1MGJhZVx1MGJjZCA9IE9NPkxFVFRFUiBPTy5MRVRURVIgTUEuU0lHTiBWSVJBTUEKK1x1ZTA1MT47CitcdWUwNTI+OworXHVlMDUzPjsKK1x1ZTA1ND47CitcdWUwNTU+OyAjIFVOTUFQUEVEIEludGVySW5kaWMtVGFtaWw6IExFTkdUSCBNQVJLCitcdWUwNTY+XHUwYmM4OyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwYmQ2Plx1MGJjOCA9IEFJIExFTkdUSCBNQVJLPlZPV0VMIFNJR04gQUkKK1x1ZTA1Nz5cdTBiZDc7ICMgQVUgTEVOR1RIIE1BUksKK1x1ZTA1OD5cdTBiOTU7ICMgRkFMTEJBQ0sKK1x1ZTA1OT5cdTBiOTU7ICMgUkVNQVAgKGluZGljRXhjZXB0aW9ucy50eHQpOiBcdTBiZDk+XHUwYjk1ID0gTEVUVEVSIEtISEE+TEVUVEVSIEtBCitcdWUwNWE+XHUwYjk1OyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwYmRhPlx1MGI5NSA9IExFVFRFUiBHSEhBPkxFVFRFUiBLQQorXHVlMDViPlx1MGI5YzsgIyBSRU1BUCAoaW5kaWNFeGNlcHRpb25zLnR4dCk6IFx1MGJkYj5cdTBiOWMgPSBMRVRURVIgWkE+TEVUVEVSIEpBCitcdWUwNWM+XHUwYmE0OyAjIEZBTExCQUNLCitcdWUwNWQ+XHUwYjlmOyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwYmRkPlx1MGI5ZiA9IExFVFRFUiBSSEE+TEVUVEVSIFRUQQorXHVlMDVlPlx1MGJhYTsgIyBSRU1BUCAoaW5kaWNFeGNlcHRpb25zLnR4dCk6IFx1MGJkZT5cdTBiYWEgPSBMRVRURVIgRkE+TEVUVEVSIFBBCitcdWUwNWY+XHUwYmFmOyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwYmRmPlx1MGJhZiA9IExFVFRFUiBZWUE+TEVUVEVSIFlBCitcdWUwNjA+XHUwYmIwXHUwYmJmOyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwYmUwPlx1MGJiMFx1MGJiZiA9IExFVFRFUiBWT0NBTElDIFJSPkxFVFRFUiBSQS5WT1dFTCBTSUdOIEkKK1x1ZTA2MT5cdTBiODg7ICMgUkVNQVAgKGluZGljRXhjZXB0aW9ucy50eHQpOiBcdTBiZTE+XHUwYjg4ID0gTEVUVEVSIFZPQ0FMSUMgTEw+TEVUVEVSIElJCitcdWUwNjI+XHUwYmJmOyMgRkFMTEJBQ0sgVk9XRUwgU0lHTiBWT0NBTElDIEwKK1x1ZTA2Mz5cdTBiYzA7IyBGQUxMQkFDSyBWT1dFTCBTSUdOIFZPQ0FMSUMgTEwKK1x1ZTA2ND4nLicgICA7ICMgRkFMTEJBQ0sgRk9SIERBTkRBCitcdWUwNjU+Jy4nICAgOyAjIEZBTExCQUNLIEZPUiBET1VCTEUgREFOREEJCisKK1x1ZTA2Nj5cdTAwMzA7ICMgRkFMTEJBQ0sgRElHSVQgWkVSTworCitcdWUwNjdcdWUwNjZcdWUwNjZcdWUwNjY+XHUwYkYyOworXHVlMDY3XHVlMDY2XHVlMDY2Plx1MGJmMTsKK1x1ZTA2N1x1ZTA2Nj5cdTBiRjA7CisKK1x1ZTA2Nz5cdTBiZTc7ICMgRElHSVQgT05FCitcdWUwNjg+XHUwYmU4OyAjIERJR0lUIFRXTworXHVlMDY5Plx1MGJlOTsgIyBESUdJVCBUSFJFRQorXHVlMDZhPlx1MGJlYTsgIyBESUdJVCBGT1VSCitcdWUwNmI+XHUwYmViOyAjIERJR0lUIEZJVkUKK1x1ZTA2Yz5cdTBiZWM7ICMgRElHSVQgU0lYCitcdWUwNmQ+XHUwYmVkOyAjIERJR0lUIFNFVkVOCitcdWUwNmU+XHUwYmVlOyAjIERJR0lUIEVJR0hUCitcdWUwNmY+XHUwYmVmOyAjIERJR0lUIE5JTkUKKworMTAwMCAgPlx1MEJGMjsgICAgICAgICAjIFVOTUFQUEVEIFRhbWlsLUludGVySW5kaWM6IE5VTUJFUiBPTkUgVEhPVVNBTkQKKzEwMCAgID5cdTBCRjE7ICAgICAgICAgIyBVTk1BUFBFRCBUYW1pbC1JbnRlckluZGljOiBOVU1CRVIgT05FIEhVTkRSRUQKKzEwICAgID5cdTBCRjA7ICAgICAgICAgIyBVTk1BUFBFRCBUYW1pbC1JbnRlckluZGljOiBOVU1CRVIgVEVOCisKKworCitcdWUwODA+OyAjIFVOTUFQUEVEIEludGVySW5kaWMtVGFtaWw6IElTU0hBUgorXHVlMDcwPlx1MEJGMDsKK1x1ZTA3MT5cdTBCRjI7CitcdWUwNzI+XHUwQkYxOworXHVlMDczPjsKK1x1ZTA3ND47CitcdWUwNzU+OworXHVlMDc2PjsKK1x1ZTA3Nz47CitcdWUwNzg+OworXHVlMDc5PjsKK1x1ZTA3QT47CitcdWUwZjAgPiAgXHUwYmIwOyAgIyBGQUxMQkFDSyBSQSAKK1x1ZTBmMSA+ICBcdTBiYjA7ICAjIEZBTExCQUNLIFJBCisjICAgIDo6IE5GQyAoTkZEKSA7CisjIGVvZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9JbnRlckluZGljX1RlbHVndS50eHQgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0ludGVySW5kaWNfVGVsdWd1LnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40ZDEzN2IwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9JbnRlckluZGljX1RlbHVndS50eHQKQEAgLTAsMCArMSwxNDEgQEAKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb3B5cmlnaHQgKGMpIDE5OTktMjAwMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworIyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQXR0aWMvVHJhbnNsaXRlcmF0b3JfSW50ZXJJbmRpY19UZWx1Z3UudHh0LHYgJAorIyAkRGF0ZTogMjAwMi8wNy8yNSAyMToyMDoyNiAkCisjICRSZXZpc2lvbjogMS44ICQKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIEludGVySW5kaWMtVGVsdWd1CisjOjogTkZEIChORkMpIDsKK1x1ZTAwMT5cdTBjMDE7ICMgU0lHTiBDQU5EUkFCSU5EVQorXHVlMDAyPlx1MGMwMjsgIyBTSUdOIEFOVVNWQVJBCitcdWUwMDM+XHUwYzAzOyAjIFNJR04gVklTQVJHQQorXHVlMDA1Plx1MGMwNTsgIyBMRVRURVIgQQorXHVlMDA2Plx1MGMwNjsgIyBMRVRURVIgQUEKK1x1ZTAwNz5cdTBjMDc7ICMgTEVUVEVSIEkKK1x1ZTAwOD5cdTBjMDg7ICMgTEVUVEVSIElJCitcdWUwMDk+XHUwYzA5OyAjIExFVFRFUiBVCitcdWUwMGE+XHUwYzBhOyAjIExFVFRFUiBVVQorXHVlMDBiPlx1MGMwYjsgIyBMRVRURVIgVk9DQUxJQyBSCitcdWUwMGM+XHUwYzBjOyAjIExFVFRFUiBWT0NBTElDIEwKK1x1ZTAwZD5cdTBjMEU7ICMgRkFMTEJBQ0sgTUFQUElORworXHVlMDBlPlx1MGMwRTsgIyBMRVRURVIgRQorXHVlMDBmPlx1MGMwZjsgIyBMRVRURVIgRUUKK1x1ZTAxMD5cdTBjMTA7ICMgTEVUVEVSIEFJCitcdWUwMTE+XHUwYzEyOyAjIEZBTEJBQ0sgTUFQUElORworXHVlMDEyPlx1MGMxMjsgIyBMRVRURVIgTworXHVlMDEzPlx1MGMxMzsgIyBMRVRURVIgT08KK1x1ZTAxND5cdTBjMTQ7ICMgTEVUVEVSIEFVCitcdWUwMTU+XHUwYzE1OyAjIExFVFRFUiBLQQorXHVlMDE2Plx1MGMxNjsgIyBMRVRURVIgS0hBCitcdWUwMTc+XHUwYzE3OyAjIExFVFRFUiBHQQorXHVlMDE4Plx1MGMxODsgIyBMRVRURVIgR0hBCitcdWUwMTk+XHUwYzE5OyAjIExFVFRFUiBOR0EKK1x1ZTAxYT5cdTBjMWE7ICMgTEVUVEVSIENBCitcdWUwMWI+XHUwYzFiOyAjIExFVFRFUiBDSEEKK1x1ZTAxYz5cdTBjMWM7ICMgTEVUVEVSIEpBCitcdWUwMWQ+XHUwYzFkOyAjIExFVFRFUiBKSEEKK1x1ZTAxZT5cdTBjMWU7ICMgTEVUVEVSIE5ZQQorXHVlMDFmPlx1MGMxZjsgIyBMRVRURVIgVFRBCitcdWUwMjA+XHUwYzIwOyAjIExFVFRFUiBUVEhBCitcdWUwMjE+XHUwYzIxOyAjIExFVFRFUiBEREEKK1x1ZTAyMj5cdTBjMjI7ICMgTEVUVEVSIERESEEKK1x1ZTAyMz5cdTBjMjM7ICMgTEVUVEVSIE5OQQorXHVlMDI0Plx1MGMyNDsgIyBMRVRURVIgVEEKK1x1ZTAyNT5cdTBjMjU7ICMgTEVUVEVSIFRIQQorXHVlMDI2Plx1MGMyNjsgIyBMRVRURVIgREEKK1x1ZTAyNz5cdTBjMjc7ICMgTEVUVEVSIERIQQorXHVlMDI4Plx1MGMyODsgIyBMRVRURVIgTkEKK1x1ZTAyOT5cdTBjMjg7ICMgUkVNQVAgKGluZGljRXhjZXB0aW9ucy50eHQpOiBcdTBjMjk+XHUwYzI4ID0gTEVUVEVSIE5OTkE+TEVUVEVSIE5BCitcdWUwMmE+XHUwYzJhOyAjIExFVFRFUiBQQQorXHVlMDJiPlx1MGMyYjsgIyBMRVRURVIgUEhBCitcdWUwMmM+XHUwYzJjOyAjIExFVFRFUiBCQQorXHVlMDJkPlx1MGMyZDsgIyBMRVRURVIgQkhBCitcdWUwMmU+XHUwYzJlOyAjIExFVFRFUiBNQQorXHVlMDJmPlx1MGMyZjsgIyBMRVRURVIgWUEKK1x1ZTAzMFx1ZTAzYz5cdTBjMzE7CitcdWUwMzA+XHUwYzMwOyAjIExFVFRFUiBSQQorXHVlMDMxPlx1MGMzMTsgIyBMRVRURVIgUlJBCitcdWUwMzI+XHUwYzMyOyAjIExFVFRFUiBMQQorXHVlMDMzPlx1MGMzMzsgIyBMRVRURVIgTExBCitcdWUwMzQ+XHUwYzMzOyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwYzM0Plx1MGMzMyA9IExFVFRFUiBMTExBPkxFVFRFUiBMTEEKK1x1ZTAzNT5cdTBjMzU7ICMgTEVUVEVSIFZBCitcdWUwMzY+XHUwYzM2OyAjIExFVFRFUiBTSEEKK1x1ZTAzNz5cdTBjMzc7ICMgTEVUVEVSIFNTQQorXHVlMDM4Plx1MGMzODsgIyBMRVRURVIgU0EKK1x1ZTAzOT5cdTBjMzk7ICMgTEVUVEVSIEhBCisKK1x1ZTAzYz47ICMgRkFMTEJBQ0sgQkxPVyBBV0FZIE5VS1RBCitcdWUwM2Q+OyAjIEZBTExCQUNLIEJMT1cgQVdBWSBBVkFHUkFIQQorCitcdWUwM2U+XHUwYzNlOyAjIFZPV0VMIFNJR04gQUEKK1x1ZTAzZj5cdTBjM2Y7ICMgVk9XRUwgU0lHTiBJCitcdWUwNDA+XHUwYzQwOyAjIFZPV0VMIFNJR04gSUkKK1x1ZTA0MT5cdTBjNDE7ICMgVk9XRUwgU0lHTiBVCitcdWUwNDI+XHUwYzQyOyAjIFZPV0VMIFNJR04gVVUKK1x1ZTA0Mz5cdTBjNDM7ICMgVk9XRUwgU0lHTiBWT0NBTElDIFIKK1x1ZTA0ND5cdTBjNDQ7ICMgVk9XRUwgU0lHTiBWT0NBTElDIFJSCitcdWUwNDU+XHUwYzQ2OyAjIFZPV0VMIFNJR04gQ0FORFJBIEU+Vk9XRUwgU0lHTiBFCitcdWUwNDc+XHUwYzQ3OyAjIFZPV0VMIFNJR04gRUUKK1x1ZTA0OD5cdTBjNDg7ICMgVk9XRUwgU0lHTiBBSQorXHVlMDQ5Plx1MGM0YTsgIyBSRU1BUCAoaW5kaWNFeGNlcHRpb25zLnR4dCk6IFx1MGM0OT5cdTBjNGEgPSBWT1dFTCBTSUdOIENBTkRSQSBPPlZPV0VMIFNJR04gTworXHVlMDRiPlx1MGM0YjsgIyBWT1dFTCBTSUdOIE9PCitcdWUwNGM+XHUwYzRjOyAjIFZPV0VMIFNJR04gQVUKK1x1ZTA0ZD5cdTBjNGQ7ICMgU0lHTiBWSVJBTUEKK1x1ZTA1MD5cdTBjMTNcdTBjMDI7ICMgUkVNQVAgKGluZGljRXhjZXB0aW9ucy50eHQpOiBcdTBjNTA+XHUwYzEzXHUwYzAyID0gT00+TEVUVEVSIE9PLlNJR04gQU5VU1ZBUkEKK1x1ZTA1MT47CitcdWUwNTI+OworXHVlMDUzPjsKK1x1ZTA1ND47CitcdWUwNTU+XHUwYzU1OyAjIExFTkdUSCBNQVJLCitcdWUwNTY+XHUwYzU2OyAjIEFJIExFTkdUSCBNQVJLCitcdWUwNTc+XHUwYzRjOyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwYzU3Plx1MGM0YyA9IEFVIExFTkdUSCBNQVJLPlZPV0VMIFNJR04gQVUKK1x1ZTA1OD5cdTBjMTU7ICMgUkVNQVAKK1x1ZTA1OT5cdTBjMTY7ICMgUkVNQVAgKGluZGljRXhjZXB0aW9ucy50eHQpOiBcdTBjNTk+XHUwYzE2ID0gTEVUVEVSIEtISEE+TEVUVEVSIEtIQQorXHVlMDVhPlx1MGMxNzsgIyBSRU1BUCAoaW5kaWNFeGNlcHRpb25zLnR4dCk6IFx1MGM1YT5cdTBjMTcgPSBMRVRURVIgR0hIQT5MRVRURVIgR0EKK1x1ZTA1Yj5cdTBjMWM7ICMgUkVNQVAgKGluZGljRXhjZXB0aW9ucy50eHQpOiBcdTBjNWI+XHUwYzFjID0gTEVUVEVSIFpBPkxFVFRFUiBKQQorXHVlMDVjPlx1MGMyMjsgIyBSRU1BUAorXHVlMDVkPlx1MGMyMjsgIyBSRU1BUCAoaW5kaWNFeGNlcHRpb25zLnR4dCk6IFx1MGM1ZD5cdTBjMjIgPSBMRVRURVIgUkhBPkxFVFRFUiBEREhBCitcdWUwNWU+XHUwYzJiOyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwYzVlPlx1MGMyYiA9IExFVFRFUiBGQT5MRVRURVIgUEhBCitcdWUwNWY+XHUwYzJmOyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwYzVmPlx1MGMyZiA9IExFVFRFUiBZWUE+TEVUVEVSIFlBCitcdWUwNjA+XHUwYzYwOyAjIExFVFRFUiBWT0NBTElDIFJSCitcdWUwNjE+XHUwYzYxOyAjIExFVFRFUiBWT0NBTElDIExMCitcdWUwNjI+XHUwYzNmOyAjIFJFTUFQIChpbmRpY0V4Y2VwdGlvbnMudHh0KTogXHUwYzYyPlx1MGMzZiA9IFZPV0VMIFNJR04gVk9DQUxJQyBMPlZPV0VMIFNJR04gSQorXHVlMDYzPlx1MGM0MDsgIyBSRU1BUCAoaW5kaWNFeGNlcHRpb25zLnR4dCk6IFx1MGM2Mz5cdTBjNDAgPSBWT1dFTCBTSUdOIFZPQ0FMSUMgTEw+Vk9XRUwgU0lHTiBJSQorXHVlMDY0PicuJyAgIDsgIyBGQUxMQkFDSyBGT1IgREFOREEKK1x1ZTA2NT4nLicgICA7ICMgRkFMTEJBQ0sgRk9SIERPVUJMRSBEQU5EQQkKK1x1ZTA2Nj5cdTBjNjY7ICMgRElHSVQgWkVSTworXHVlMDY3Plx1MGM2NzsgIyBESUdJVCBPTkUKK1x1ZTA2OD5cdTBjNjg7ICMgRElHSVQgVFdPCitcdWUwNjk+XHUwYzY5OyAjIERJR0lUIFRIUkVFCitcdWUwNmE+XHUwYzZhOyAjIERJR0lUIEZPVVIKK1x1ZTA2Yj5cdTBjNmI7ICMgRElHSVQgRklWRQorXHVlMDZjPlx1MGM2YzsgIyBESUdJVCBTSVgKK1x1ZTA2ZD5cdTBjNmQ7ICMgRElHSVQgU0VWRU4KK1x1ZTA2ZT5cdTBjNmU7ICMgRElHSVQgRUlHSFQKK1x1ZTA2Zj5cdTBjNmY7ICMgRElHSVQgTklORQorIyBcdWUwODA+OyAjIFVOTUFQUEVEIEludGVySW5kaWMtVGVsdWd1OiBJU1NIQVIKKworCitcdWUwNDY+XHUwYzQ2OyAjIFZPV0VMIFNJR04gRQorXHVlMDRhPlx1MGM0YTsgIyBWT1dFTCBTSUdOIE8KK1x1ZTA3MD47CitcdWUwNzE+OworXHVlMDcyPjsKK1x1ZTA3Mz47CitcdWUwNzQ+OworXHVlMDc1PjsKK1x1ZTA3Nj47CitcdWUwNzc+OworXHVlMDc4PjsKK1x1ZTA3OT47CitcdWUwN0E+OworCiswID4gXHUwYzY2OyAgICAgICAjIEZBTExCQUNLIEZPUiBUQU1JTAorMSA+IFx1MGM2NzsKK1x1ZTBmMCA+ICBcdTBjMzA7ICAjIEZBTExCQUNLIFJBIAorXHVlMGYxID4gIFx1MGMzMDsgICMgRkFMTEJBQ0sgUkEKKyMgICAgOjogTkZDIChORkQpIDsKKyMgZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0thbm5hZGFfSW50ZXJJbmRpYy50eHQgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0thbm5hZGFfSW50ZXJJbmRpYy50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGU1YjYxNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfS2FubmFkYV9JbnRlckluZGljLnR4dApAQCAtMCwwICsxLDk0IEBACisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0F0dGljL1RyYW5zbGl0ZXJhdG9yX0thbm5hZGFfSW50ZXJJbmRpYy50eHQsdiAkCisjICREYXRlOiAyMDAyLzAzLzAyIDAwOjI3OjI3ICQKKyMgJFJldmlzaW9uOiAxLjUgJAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgS2FubmFkYS1JbnRlckluZGljCitcdTBDQzZcdTBDRDU+XHVFMDQ3OyAgICAgICAgIyBWT1dFTCBTSUdOIEVFCitcdTBDQzZcdTBDQ0RcdTBDRDY+XHVFMDQ4XHVlMDRkOyAgICAgICAgIyBWT1dFTCBTSUdOIEFJCitcdTBDQzZcdTBDRDY+XHVFMDQ4OyAgICAgICAgIyBWT1dFTCBTSUdOIEFJCitcdTBDQzZcdTBDQzJcdTBDRDU+XHVFMDRCOyAgIyBWT1dFTCBTSUdOIE9PCitcdTBDQzZcdTBDQzI+XHVFMDRBOyAgICAgICAgIyBWT1dFTCBTSUdOIE8KK1x1MENCRlx1MENENT5cdUUwNDA7ICAgICAgICAjIFZPV0VMIFNJR04gSUkKKworXHUwQzgyPlx1RTAwMjsgICAgICAgICAgICAgICMgU0lHTiBBTlVTVkFSQQorXHUwQzgzPlx1RTAwMzsgICAgICAgICAgICAgICMgU0lHTiBWSVNBUkdBCitcdTBDODU+XHVFMDA1OyAgICAgICAgICAgICAgIyBMRVRURVIgQQorXHUwQzg2Plx1RTAwNjsgICAgICAgICAgICAgICMgTEVUVEVSIEFBCitcdTBDODc+XHVFMDA3OyAgICAgICAgICAgICAgIyBMRVRURVIgSQorXHUwQzg4Plx1RTAwODsgICAgICAgICAgICAgICMgTEVUVEVSIElJCitcdTBDODk+XHVFMDA5OyAgICAgICAgICAgICAgIyBMRVRURVIgVQorXHUwQzhBPlx1RTAwQTsgICAgICAgICAgICAgICMgTEVUVEVSIFVVCitcdTBDOEI+XHVFMDBCOyAgICAgICAgICAgICAgIyBMRVRURVIgVk9DQUxJQyBSCitcdTBDOEM+XHVFMDBDOyAgICAgICAgICAgICAgIyBMRVRURVIgVk9DQUxJQyBMCitcdTBDOEU+XHVFMDBFOyAgICAgICAgICAgICAgIyBMRVRURVIgRQorXHUwQzhGPlx1RTAwRjsgICAgICAgICAgICAgICMgTEVUVEVSIEVFCitcdTBDOTA+XHVFMDEwOyAgICAgICAgICAgICAgIyBMRVRURVIgQUkKK1x1MEM5Mj5cdUUwMTI7ICAgICAgICAgICAgICAjIExFVFRFUiBPCitcdTBDOTM+XHVFMDEzOyAgICAgICAgICAgICAgIyBMRVRURVIgT08KK1x1MEM5ND5cdUUwMTQ7ICAgICAgICAgICAgICAjIExFVFRFUiBBVQorXHUwQzk1Plx1RTAxNTsgICAgICAgICAgICAgICMgTEVUVEVSIEtBCitcdTBDOTY+XHVFMDE2OyAgICAgICAgICAgICAgIyBMRVRURVIgS0hBCitcdTBDOTc+XHVFMDE3OyAgICAgICAgICAgICAgIyBMRVRURVIgR0EKK1x1MEM5OD5cdUUwMTg7ICAgICAgICAgICAgICAjIExFVFRFUiBHSEEKK1x1MEM5OT5cdUUwMTk7ICAgICAgICAgICAgICAjIExFVFRFUiBOR0EKK1x1MEM5QT5cdUUwMUE7ICAgICAgICAgICAgICAjIExFVFRFUiBDQQorXHUwQzlCPlx1RTAxQjsgICAgICAgICAgICAgICMgTEVUVEVSIENIQQorXHUwQzlDPlx1RTAxQzsgICAgICAgICAgICAgICMgTEVUVEVSIEpBCitcdTBDOUQ+XHVFMDFEOyAgICAgICAgICAgICAgIyBMRVRURVIgSkhBCitcdTBDOUU+XHVFMDFFOyAgICAgICAgICAgICAgIyBMRVRURVIgTllBCitcdTBDOUY+XHVFMDFGOyAgICAgICAgICAgICAgIyBMRVRURVIgVFRBCitcdTBDQTA+XHVFMDIwOyAgICAgICAgICAgICAgIyBMRVRURVIgVFRIQQorXHUwQ0ExPlx1RTAyMTsgICAgICAgICAgICAgICMgTEVUVEVSIEREQQorXHUwQ0EyPlx1RTAyMjsgICAgICAgICAgICAgICMgTEVUVEVSIERESEEKK1x1MENBMz5cdUUwMjM7ICAgICAgICAgICAgICAjIExFVFRFUiBOTkEKK1x1MENBND5cdUUwMjQ7ICAgICAgICAgICAgICAjIExFVFRFUiBUQQorXHUwQ0E1Plx1RTAyNTsgICAgICAgICAgICAgICMgTEVUVEVSIFRIQQorXHUwQ0E2Plx1RTAyNjsgICAgICAgICAgICAgICMgTEVUVEVSIERBCitcdTBDQTc+XHVFMDI3OyAgICAgICAgICAgICAgIyBMRVRURVIgREhBCitcdTBDQTg+XHVFMDI4OyAgICAgICAgICAgICAgIyBMRVRURVIgTkEKK1x1MENBQT5cdUUwMkE7ICAgICAgICAgICAgICAjIExFVFRFUiBQQQorXHUwQ0FCPlx1RTAyQjsgICAgICAgICAgICAgICMgTEVUVEVSIFBIQQorXHUwQ0FDPlx1RTAyQzsgICAgICAgICAgICAgICMgTEVUVEVSIEJBCitcdTBDQUQ+XHVFMDJEOyAgICAgICAgICAgICAgIyBMRVRURVIgQkhBCitcdTBDQUU+XHVFMDJFOyAgICAgICAgICAgICAgIyBMRVRURVIgTUEKK1x1MENBRj5cdUUwMkY7ICAgICAgICAgICAgICAjIExFVFRFUiBZQQorXHUwQ0IwPlx1RTAzMDsgICAgICAgICAgICAgICMgTEVUVEVSIFJBCitcdTBDQjE+XHVFMDMxOyAgICAgICAgICAgICAgIyBMRVRURVIgUlJBCitcdTBDQjI+XHVFMDMyOyAgICAgICAgICAgICAgIyBMRVRURVIgTEEKK1x1MENCMz5cdUUwMzM7ICAgICAgICAgICAgICAjIExFVFRFUiBMTEEKK1x1MENCNT5cdUUwMzU7ICAgICAgICAgICAgICAjIExFVFRFUiBWQQorXHUwQ0I2Plx1RTAzNjsgICAgICAgICAgICAgICMgTEVUVEVSIFNIQQorXHUwQ0I3Plx1RTAzNzsgICAgICAgICAgICAgICMgTEVUVEVSIFNTQQorXHUwQ0I4Plx1RTAzODsgICAgICAgICAgICAgICMgTEVUVEVSIFNBCitcdTBDQjk+XHVFMDM5OyAgICAgICAgICAgICAgIyBMRVRURVIgSEEKK1x1MENCRT5cdUUwM0U7ICAgICAgICAgICAgICAjIFZPV0VMIFNJR04gQUEKK1x1MENCRj5cdUUwM0Y7ICAgICAgICAgICAgICAjIFZPV0VMIFNJR04gSQorXHUwQ0MxPlx1RTA0MTsgICAgICAgICAgICAgICMgVk9XRUwgU0lHTiBVCitcdTBDQzI+XHVFMDQyOyAgICAgICAgICAgICAgIyBWT1dFTCBTSUdOIFVVCitcdTBDQzM+XHVFMDQzOyAgICAgICAgICAgICAgIyBWT1dFTCBTSUdOIFZPQ0FMSUMgUgorXHUwQ0M0Plx1RTA0NDsgICAgICAgICAgICAgICMgVk9XRUwgU0lHTiBWT0NBTElDIFJSCitcdTBDQzY+XHVFMDQ2OyAgICAgICAgICAgICAgIyBWT1dFTCBTSUdOIEUKK1x1MENDQz5cdUUwNEM7ICAgICAgICAgICAgICAjIFZPV0VMIFNJR04gQVUKK1x1MENDRD5cdUUwNEQ7ICAgICAgICAgICAgICAjIFNJR04gVklSQU1BCitcdTBDRDU+XHVFMDU1OyAgICAgICAgICAgICAgIyBMRU5HVEggTUFSSworXHUwQ0Q2Plx1RTA1NjsgICAgICAgICAgICAgICMgQUkgTEVOR1RIIE1BUksKK1x1MENERT5cdUUwNUU7ICAgICAgICAgICAgICAjIExFVFRFUiBGQQorXHUwQ0UwPlx1RTA2MDsgICAgICAgICAgICAgICMgTEVUVEVSIFZPQ0FMSUMgUlIKK1x1MENFMT5cdUUwNjE7ICAgICAgICAgICAgICAjIExFVFRFUiBWT0NBTElDIExMCitcdTBDRTY+XHVFMDY2OyAgICAgICAgICAgICAgIyBESUdJVCBaRVJPCitcdTBDRTc+XHVFMDY3OyAgICAgICAgICAgICAgIyBESUdJVCBPTkUKK1x1MENFOD5cdUUwNjg7ICAgICAgICAgICAgICAjIERJR0lUIFRXTworXHUwQ0U5Plx1RTA2OTsgICAgICAgICAgICAgICMgRElHSVQgVEhSRUUKK1x1MENFQT5cdUUwNkE7ICAgICAgICAgICAgICAjIERJR0lUIEZPVVIKK1x1MENFQj5cdUUwNkI7ICAgICAgICAgICAgICAjIERJR0lUIEZJVkUKK1x1MENFQz5cdUUwNkM7ICAgICAgICAgICAgICAjIERJR0lUIFNJWAorXHUwQ0VEPlx1RTA2RDsgICAgICAgICAgICAgICMgRElHSVQgU0VWRU4KK1x1MENFRT5cdUUwNkU7ICAgICAgICAgICAgICAjIERJR0lUIEVJR0hUCitcdTBDRUY+XHVFMDZGOyAgICAgICAgICAgICAgIyBESUdJVCBOSU5FCisKKyMgZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0xhdGluX0ludGVySW5kaWMudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9MYXRpbl9JbnRlckluZGljLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lNjU5YmI1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9MYXRpbl9JbnRlckluZGljLnR4dApAQCAtMCwwICsxLDM4NSBAQAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvcHlyaWdodCAoYykgMTk5OS0yMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisjIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9BdHRpYy9UcmFuc2xpdGVyYXRvcl9MYXRpbl9JbnRlckluZGljLnR4dCx2ICQKKyMgJERhdGU6IDIwMDIvMDMvMDIgMDA6Mjc6MjYgJAorIyAkUmV2aXNpb246IDEuNyAkCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBMYXRpbi1JbnRlckluZGljCisgICAgIzo6IE5GRDsKKyAgICAjXHUwZTAwIHJlc2VydmVkCisgICAgI2NvbnNvbmFudHMKKyAgICAkY2hhbmRyYWJpbmR1PVx1ZTAwMTsKKyAgICAkYW51c3ZhcmE9XHVlMDAyOworICAgICR2aXNhcmdhPVx1ZTAwMzsKKyAgICAjXHUwZTAwNCByZXNlcnZlZAorICAgICMgdzx2b3dlbD4gcmVwcmVzZW50cyB0aGUgc3RhbmQtYWxvbmUgZm9ybQorICAgICR3YT1cdWUwMDU7CisgICAgJHdhYT1cdWUwMDY7CisgICAgJHdpPVx1ZTAwNzsKKyAgICAkd2lpPVx1ZTAwODsKKyAgICAkd3U9XHVlMDA5OworICAgICR3dXU9XHVlMDBhOworICAgICR3cj1cdWUwMGI7CisgICAgJHdsPVx1ZTAwYzsKKyAgICAkd2NlPVx1ZTAwZDsgIyBMRVRURVIgQ0FORFJBIEUKKyAgICAkd3NlPVx1ZTAwZTsgIyBMRVRURVIgU0hPUlQgRQorICAgICR3ZT1cdWUwMGY7ICAjIFx1MDkwZiBMRVRURVIgRQorICAgICR3YWk9XHVlMDEwOworICAgICR3Y289XHVlMDExOyAjIExFVFRFUiBDQU5EUkEgTworICAgICR3c289XHVlMDEyOyAjIExFVFRFUiBTSE9SVCBPCisgICAgJHdvPVx1ZTAxMzsgICMgXHUwOTEzIExFVFRFUiBPCisgICAgJHdhdT1cdWUwMTQ7CisgICAgJGthPVx1ZTAxNTsKKyAgICAka2hhPVx1ZTAxNjsKKyAgICAkZ2E9XHVlMDE3OworICAgICRnaGE9XHVlMDE4OworICAgICRuZ2E9XHVlMDE5OworICAgICRjYT1cdWUwMWE7CisgICAgJGNoYT1cdWUwMWI7CisgICAgJGphPVx1ZTAxYzsKKyAgICAkamhhPVx1ZTAxZDsKKyAgICAkbnlhPVx1ZTAxZTsKKyAgICAkdHRhPVx1ZTAxZjsKKyAgICAkdHRoYT1cdWUwMjA7CisgICAgJGRkYT1cdWUwMjE7CisgICAgJGRkaGE9XHVlMDIyOworICAgICRubmE9XHVlMDIzOworICAgICR0YT1cdWUwMjQ7CisgICAgJHRoYT1cdWUwMjU7CisgICAgJGRhPVx1ZTAyNjsKKyAgICAkZGhhPVx1ZTAyNzsKKyAgICAkbmE9XHVlMDI4OworICAgICRlbmE9XHVlMDI5OyAjY29tcGF0aWJpbGl0eQorICAgICRwYT1cdWUwMmE7CisgICAgJHBoYT1cdWUwMmI7CisgICAgJGJhPVx1ZTAyYzsKKyAgICAkYmhhPVx1ZTAyZDsKKyAgICAkbWE9XHVlMDJlOworICAgICR5YT1cdWUwMmY7CisgICAgJHJhPVx1ZTAzMDsKKyAgICAkcnJhPVx1ZTAzMTsKKyAgICAkbGE9XHVlMDMyOworICAgICRsbGE9XHVlMDMzOyAKKyAgICAkZWxhPVx1ZTAzNDsgI2NvbXBhdGliaWxpdHkKKyAgICAkdmE9XHVlMDM1OworICAgICRzaGE9XHVlMDM2OworICAgICRzc2E9XHVlMDM3OworICAgICRzYT1cdWUwMzg7CisgICAgJGhhPVx1ZTAzOTsKKyNcdTA5M2EgUmVzZXJ2ZWQKKyNcdTA5M2IgUmVzZXJ2ZWQKKyAgICAkbnVrdGE9XHVlMDNjOworICAgICRhdmFncmFoYT1cdWUwM2Q7ICMgU0lHTiBBVkFHUkFIQQorICAgICMgPHZvd2VsPiByZXByZXNlbnRzIHRoZSBkZXBlbmRlbnQgZm9ybQorICAgICRhYT1cdWUwM2U7CisgICAgJGk9XHVlMDNmOworICAgICRpaT1cdWUwNDA7CisgICAgJHU9XHVlMDQxOworICAgICR1dT1cdWUwNDI7CisgICAgJHJoPVx1ZTA0MzsKKyAgICAkbGg9XHVlMDQ0OworICAgICRjZT1cdWUwNDU7ICNWT1dFTCBTSUdOIENBTkRSQSBFIAorICAgICRzZT1cdWUwNDY7ICNWT1dFTCBTSUdOIFNIT1JUIEUKKyAgICAkZT1cdWUwNDc7CisgICAgJGFpPVx1ZTA0ODsKKyAgICAkY289XHVlMDQ5OyAjIFZPV0VMIFNJR04gQ0FORFJBIE8KKyAgICAkc289XHVlMDRhOyAjIFZPV0VMIFNJR04gU0hPUlQgTworICAgICRvPVx1ZTA0YjsgICMgXHUwOTRiCisgICAgJGF1PVx1ZTA0YzsgICAgCisgICAgJHZpcmFtYT1cdWUwNGQ7CisjIFx1MDk0ZSBSZXNlcnZlZAorIyBcdTA5NGYgUmVzZXJ2ZWQKKyAgICRvbSA9IFx1ZTA1MDsgIyBPTQorIyBcdTA5NTE+OyAgICAgICAgIyBVTk1BUFBFRCBTVFJFU1MgU0lHTiBVREFUVEEKKyMgXHUwOTUyPjsgICAgICAgICMgVU5NQVBQRUQgU1RSRVNTIFNJR04gQU5VREFUVEEKKyMgXHUwOTUzPjsgICAgICAgICMgVU5NQVBQRUQgR1JBVkUgQUNDRU5UCisjIFx1MDk1ND47ICAgICAgICAjIFVOTUFQUEVEIEFDVVRFIEFDQ0VOVAorICAgICRsbSA9IFx1ZTA1NTsjICBUZWx1Z3UgTGVuZ3RoIE1hcmsgICAgCisgICAgJGFpbG09XHVlMDU2OyMgIEFJIExlbmd0aCBNYXJrIAorICAgICRhdWxtPVx1ZTA1NzsjICBBVSBMZW5ndGggTWFyayAKKyAgICAgI3VyZHUgY29tcGF0aWJpdHkgZm9ybXMKKyAgICAkdWthPVx1ZTA1ODsKKyAgICAkdWtoYT1cdWUwNTk7CisgICAgJHVnaGE9XHVlMDVhOworICAgICR1amhhPVx1ZTA1YjsKKyAgICAkdWRkaGE9XHVlMDVjOworICAgICR1ZGhhPVx1ZTA1ZDsKKyAgICAkdWZhPVx1ZTA1ZTsKKyAgICAkdXlhPVx1ZTA1ZjsKKyAgICAkd3JyPVx1ZTA2MDsKKyAgICAkd2xsPVx1ZTA2MTsKKyAgICAkcnJoPVx1ZTA2MjsKKyAgICAkbGxoPVx1ZTA2MzsKKyAgICAkZGFuZGE9XHVlMDY0OworICAgICRkb3VibGVEYW5kYT1cdWUwNjU7CisgICAgJHplcm89XHVlMDY2OyAgICAgIyBESUdJVCBaRVJPCisgICAgJG9uZT1cdWUwNjc7ICAgICAgIyBESUdJVCBPTkUKKyAgICAkdHdvPVx1ZTA2ODsgICAgICAjIERJR0lUIFRXTworICAgICR0aHJlZT1cdWUwNjk7ICAgICMgRElHSVQgVEhSRUUKKyAgICAkZm91cj1cdWUwNmE7ICAgICAjIERJR0lUIEZPVVIKKyAgICAkZml2ZT1cdWUwNmI7ICAgICAjIERJR0lUIEZJVkUKKyAgICAkc2l4PVx1ZTA2YzsgICAgICAjIERJR0lUIFNJWAorICAgICRzZXZlbj1cdWUwNmQ7ICAgICMgRElHSVQgU0VWRU4KKyAgICAkZWlnaHQ9XHVlMDZlOyAgICAjIERJR0lUIEVJR0hUCisgICAgJG5pbmU9XHVlMDZmOyAgICAgIyBESUdJVCBOSU5FCisgICAgIyBGb3IgYWxsIG90aGVyIHNjcmlwdHMKKyAgICAkZWNwMD1cdWUwNzA7CisgICAgJGVjcDE9XHVlMDcxOworICAgICRlY3AyPVx1ZTA3MjsKKyAgICAkZWNwMz1cdWUwNzM7CisgICAgJGVjcDQ9XHVlMDc0OworICAgICRlY3A1PVx1ZTA3NTsKKyAgICAkZWNwNj1cdWUwNzY7CisgICAgJGVjcDc9XHVlMDc3OworICAgICRlY3A4PVx1ZTA3ODsKKyAgICAkZWNwOT1cdWUwNzk7CisgICAgJGVjcEE9XHVlMDdhOworICAgICRlY3BCPVx1ZTA3YjsKKyAgICAkZWNwQz1cdWUwN2M7CisgICAgJGVjcEQ9XHVlMDdkOworICAgICRlY3BFPVx1ZTA3ZTsKKyAgICAkZWNwRj1cdWUwN2Y7CisjIFx1MDk3MD47ICMgVU5NQVBQRUQgQUJCUkVWSUFUSU9OIFNJR04KKyAgICAkZGVwVm93ZWxBYm92ZT1bXHVlMDNlLVx1ZTA0MFx1ZTA0NS1cdWUwNGNdOworICAgICRkZXBWb3dlbEJlbG93PVtcdWUwNDEtXHVlMDQ0XTsKKyAgICAkZW5kVGhpbmc9WyRkYW5kYSRkb3VibGVEYW5kYV07CisgICAgIyAkeCB3YXMgb3JpZ2luYWxseSBjYWxsZWQgJyYnOyAkeiB3YXMgJyUnCisgICAgJHg9WyR2aXJhbWEkYWEkYWkkYXUkaWkkaSR1dSR1JHJyaCRyaCRsaCRlJG8kc2UkY2Ukc28kY29dOworICAgICR6PVtiY2RmZ2hqa2xtbnBxcnN0dnd4eXpdOworICAgICRjb25zb25hbnRzPVtbJGthLSRoYV0keltcdTA5MTUtXHUwOTM5XVtcdTA5OTUtXHUwOWI5XVtcdTBhMTUtXHUwYTM5XVtcdTBhOTUtXHUwYWI5XVtcdTBiMTUtXHUwYjM5XVtcdTBiOTUtXHUwYmI5XVtcdTBjMTUtXHUwYzM5XVtcdTBjOTUtXHUwY2I5XVtcdTBkMTUtXHUwZDM5XV07CisgICAgXHUwMzE1ID4gJGF2YWdyYWhhOworICAgIFx1MDMwMz4kY2hhbmRyYWJpbmR1JGFudXN2YXJhOworICAgIG1cdTAzMTA+JGNoYW5kcmFiaW5kdTsKKyAgICBoXHUwMzIzPiR2aXNhcmdhOworICAgIHg+JGthJHZpcmFtYSRzYTsKKyMgY29udmVydCB0byBpbmRlcGVuZGVudCBmb3JtcyBhdCBzdGFydCBvZiB3b3JkIG9yIHN5bGxhYmxlOgorIyBkZXBlbmRlbnQgZm9ybXMgZm9yIHJvdW5kdHJpcAorICAgIFx1MDMxNGFcdTAzMDQ+JGFhOworICAgIFx1MDMxNGFpPiRhaTsKKyAgICBcdTAzMTRhdT4kYXU7CisgICAgXHUwMzE0aWk+JGlpOworICAgIFx1MDMxNGlcdTAzMDQ+JGlpOworICAgIFx1MDMxNGk+JGk7CisgICAgXHUwMzE0dVx1MDMwND4kdXU7CisgICAgXHUwMzE0dT4kdTsKKyAgICBcdTAzMTRyXHUwMzI1XHUwMzA0PiRycmg7CisgICAgXHUwMzE0clx1MDMyNT4kcmg7CisgICAgXHUwMzE0bFx1MDMyNVx1MDMwND4kbGxoOworICAgIFx1MDMxNGxoPiRsaDsKKyAgICBcdTAzMTRsXHUwMzI1PiRsaDsKKyAgICBcdTAzMTRlXHUwMzA0PiRlOworICAgIFx1MDMxNG9cdTAzMDQ+JG87CisgICAgXHUwMzE0YT47CisgICAgXHUwMzE0ZVx1MDMwNj4kY2U7CisgICAgXHUwMzE0b1x1MDMwNj4kY287CisgICAgXHUwMzE0ZT4kc2U7CisgICAgXHUwMzE0bz4kc287CisKKyMgcHJlY2VlZGVkIGJ5IGNvbnNvbmFudHMKKyAgICAkY29uc29uYW50c3sgYVx1MDMwND4kYWE7CisgICAgJGNvbnNvbmFudHN7IGFpPiRhaTsKKyAgICAkY29uc29uYW50c3sgYXU+JGF1OworICAgICRjb25zb25hbnRzeyBpaT4kaWk7CisgICAgJGNvbnNvbmFudHN7IGlcdTAzMDQ+JGlpOworICAgICRjb25zb25hbnRzeyBpPiRpOworICAgICRjb25zb25hbnRzeyB1XHUwMzA0PiR1dTsKKyAgICAkY29uc29uYW50c3sgdT4kdTsKKyAgICAkY29uc29uYW50c3sgclx1MDMyNVx1MDMwND4kcnJoOworICAgICRjb25zb25hbnRzeyByXHUwMzI1YT4kcmg7CisgICAgJGNvbnNvbmFudHN7IHJcdTAzMjU+JHJoOworICAgICRjb25zb25hbnRzeyBsXHUwMzI1XHUwMzA0PiRsbGg7CisgICAgJGNvbnNvbmFudHN7IGxoPiRsaDsKKyAgICAkY29uc29uYW50c3sgbFx1MDMyNT4kbGg7CisgICAgJGNvbnNvbmFudHN7IGVcdTAzMDQ+JGU7CisgICAgJGNvbnNvbmFudHN7IG9cdTAzMDQ+JG87CisgICAgJGNvbnNvbmFudHN7IGVcdTAzMDY+JGNlOworICAgICRjb25zb25hbnRzeyBvXHUwMzA2PiRjbzsKKyAgICAkY29uc29uYW50c3sgZT4kc2U7CisgICAgJGNvbnNvbmFudHN7IG8+JHNvOworCisjIGUuZy4ga2VhaSAtPiB7a2F9e2V9e3dhaX07IGsnYWkgLT4ge2thfXt3YWl9OyAoYWkpIC0+ICh7d2FpfSkKKyAgICBhXHUwMzA0PiR3YWE7CisgICAgYWk+JHdhaTsKKyAgICBhdT4kd2F1OworICAgIGlcdTAzMDQ+JHdpaTsKKyAgICBpPiR3aTsKKyAgICB1XHUwMzA0PiR3dXU7CisgICAgdT4kd3U7CisgICAgclx1MDMyNVx1MDMwND4kd3JyOworICAgIHJcdTAzMjU+JHdyOworICAgIGxcdTAzMjVcdTAzMDQ+JHdsbDsKKyAgICBsaD4kd2w7CisgICAgbFx1MDMyNT4kd2w7CisgICAgZVx1MDMwND4kd2U7CisgICAgb1x1MDMwND4kd287CisgICAgYT4kd2E7CisgICAgZVx1MDMwNj4kd2NlOworICAgIG9cdTAzMDY+JHdjbzsKKyAgICBlPiR3c2U7CisgICAgJydvbT4kb207CisgICAgbz4kd3NvOworICAgIAorICAgICMgcnVsZXMgZm9yIGFudXN2YXJhCisgICAgbn1yXHUwMzI1ICAgICAgICAgICA+ICRuYXwkdmlyYW1hOworICAgIG59bFx1MDMyNSAgICAgICAgICAgPiAkbmF8JHZpcmFtYTsKKyAgICBufW5hICAgICAgICAgICAgICAgID4gJG5hfCR2aXJhbWE7CisgICAgblx1MDMwN31ba2ddICAgICAgICA+ICRhbnVzdmFyYTsKKyAgICBuXHUwMzA3fW5cdTAzMDcgICAgID4gJGFudXN2YXJhOworICAgIG5cdTAzMDR9W2NqXSAgICAgICAgPiAkYW51c3ZhcmE7CisgICAgblx1MDMwNH1uXHUwMzAzICAgICA+ICRhbnVzdmFyYTsKKyAgICBuXHUwMzIzfVt0ZG5dXHUwMzIzID4gJGFudXN2YXJhOworICAgIG59W3Rkbl0gICAgICAgICAgICAgPiAkYW51c3ZhcmE7CisgICAgbX1bcGJtXSAgICAgICAgICAgICA+ICRhbnVzdmFyYTsKKyAgICBufVt5bHZzaHJdICAgICAgICAgID4gJGFudXN2YXJhOworICAgIG1cdTAzMDcgICAgICAgICAgICAgPiAkYW51c3ZhcmE7CisgICAgCisgICAgI3VyZHUgY29tcGF0aWJpbGl0eQorICAgIHE+JHVrYXwkdmlyYW1hOworICAgIGtcdTAzMzFoXHUwMzMxPiR1a2hhIHwkdmlyYW1hOworICAgIGdcdTAzMDc+ICR1Z2hhIHwgJHZpcmFtYTsKKyAgICB6ID4gJHVqaGEgfCR2aXJhbWE7CisgICAgZiA+ICR1ZmF8JHZpcmFtYTsKKyAgICAKKyAgICAjIGRldgorICAgIHlcdTAzMDc+JHV5YXwkdmlyYW1hOworICAgIGxcdTAzMzE+JGVsYXwkdmlyYW1hOworICAgIG5cdTAzMzE+JGVuYXwkdmlyYW1hOworICAgIG5cdTAzMDc+JG5nYXwkdmlyYW1hOworICAgIG5cdTAzMDM+JG55YXwkdmlyYW1hOworICAgIG5cdTAzMjM+JG5uYXwkdmlyYW1hOworICAgIHRcdTAzMjNoPiR0dGhhfCR2aXJhbWE7CisgICAgdFx1MDMyMz4kdHRhfCR2aXJhbWE7CisgICAgclx1MDMyM2g+JHVkaGF8JHZpcmFtYTsKKyAgICByXHUwMzIzPiR1ZGRoYXwkdmlyYW1hOworICAgIGRcdTAzMjNoPiRkZGhhfCR2aXJhbWE7CisgICAgZFx1MDMyMz4kZGRhfCR2aXJhbWE7CisgICAga2g+JGtoYXwkdmlyYW1hOworICAgIGs+JGthfCR2aXJhbWE7CisgICAgZ2g+JGdoYXwkdmlyYW1hOworICAgIGc+JGdhfCR2aXJhbWE7CisgICAgY2g+JGNoYXwkdmlyYW1hOworICAgIGM+JGNhfCR2aXJhbWE7CisgICAgamg+JGpoYXwkdmlyYW1hOworICAgIGo+JGphfCR2aXJhbWE7CisgICAgbnk+JG55YXwkdmlyYW1hOworICAgIHR0aD4kdHRoYXwkdmlyYW1hOworICAgIGRkaD4kZGRoYXwkdmlyYW1hOworICAgIHRoPiR0aGF8JHZpcmFtYTsKKyAgICB0PiR0YXwkdmlyYW1hOworICAgIGRoPiRkaGF8JHZpcmFtYTsKKyAgICBkPiRkYXwkdmlyYW1hOworICAgIG4+JG5hfCR2aXJhbWE7CisgICAgcGg+JHBoYXwkdmlyYW1hOworICAgIHA+JHBhfCR2aXJhbWE7CisgICAgYmg+JGJoYXwkdmlyYW1hOworICAgIGI+JGJhfCR2aXJhbWE7CisgICAgbT4kbWF8JHZpcmFtYTsKKyAgICB5PiR5YXwkdmlyYW1hOworICAgIHJcdTAzMzE+JHJyYXwkdmlyYW1hOworICAgIHI+JHJhfCR2aXJhbWE7CisgICAgbFx1MDMyMz4kbGxhfCR2aXJhbWE7CisgICAgbD4kbGF8JHZpcmFtYTsKKyAgICB2PiR2YXwkdmlyYW1hOworICAgIHc+JHZhfCR2aXJhbWE7CisgICAgc2g+JHNoYXwkdmlyYW1hOworICAgIHNzPiRzc2F8JHZpcmFtYTsKKyAgICBzXHUwMzIzPiRzc2F8JHZpcmFtYTsKKyAgICBzXHUwMzAxPiRzaGF8JHZpcmFtYTsKKyAgICBzPiRzYXwkdmlyYW1hOworICAgIGg+JGhhfCR2aXJhbWE7CisgICAgJy4nPiRkYW5kYTsKKyAgICAkZGFuZGEnLic+JGRvdWJsZURhbmRhOworICAgICRkZXBWb3dlbEFib3Zleyd+Jz4kYW51c3ZhcmE7CisgICAgJGRlcFZvd2VsQmVsb3d7J34nPiRjaGFuZHJhYmluZHU7CisjIGNvbnZlcnQgdG8gZGVwZW5kZW50IGZvcm1zIGFmdGVyIGNvbnNvbmFudCB3aXRoIG5vIHZvd2VsOgorIyBlLmcuIGthaSAtPiB7a2F9e3ZpcmFtYX1haSAtPiB7a2F9e2FpfQorICAgICMkdmlyYW1hIGFhPiRhYTsKKyAgICAkdmlyYW1hIGFcdTAzMDQ+JGFhOworICAgICR2aXJhbWEgYWk+JGFpOworICAgICR2aXJhbWEgYXU+JGF1OworICAgICR2aXJhbWEgaWk+JGlpOworICAgICR2aXJhbWEgaVx1MDMwND4kaWk7CisgICAgJHZpcmFtYSBpPiRpOworICAgICMkdmlyYW1hIHV1PiR1dTsKKyAgICAkdmlyYW1hIHVcdTAzMDQ+JHV1OworICAgICR2aXJhbWEgdT4kdTsKKyAgICAjJHZpcmFtYSBycmg+JHJyaDsKKyAgICAkdmlyYW1hIHJcdTAzMjVcdTAzMDQ+JHJyaDsKKyAgICAjJHZpcmFtYSByaD4kcmg7CisgICAgJHZpcmFtYSByXHUwMzI1YT4kcmg7CisgICAgJHZpcmFtYSByXHUwMzI1PiRyaDsKKyAgICAkdmlyYW1hIGxcdTAzMjVcdTAzMDQ+JGxsaDsKKyAgICAkdmlyYW1hIGxoPiRsaDsKKyAgICAkdmlyYW1hIGxcdTAzMjU+JGxoOworICAgICR2aXJhbWEgZVx1MDMwND4kZTsKKyAgICAkdmlyYW1hIG9cdTAzMDQ+JG87CisgICAgJHZpcmFtYSBhPjsKKyAgICAkdmlyYW1hIGVcdTAzMDY+JGNlOworICAgICR2aXJhbWEgb1x1MDMwNj4kY287CisgICAgJHZpcmFtYSBlPiRzZTsKKyAgICAkdmlyYW1hIG8+JHNvOworCisKKyMgb3RoZXJ3aXNlIGNvbnZlcnQgaW5kZXBlbmRlbnQgZm9ybXMgd2hlbiBzZXBhcmF0ZWQgYnkgJzogaydhaSAtPiB7a2F9e3ZpcmFtYX17d2FpfQorICAgICMkdmlyYW1hJydhYT4kd2FhOworICAgICR2aXJhbWEnJ2FcdTAzMDQ+JHdhYTsKKyAgICAkdmlyYW1hJydhaT4kd2FpOworICAgICR2aXJhbWEnJ2F1PiR3YXU7CisgICAgIyR2aXJhbWEnJ2lpPiR3aWk7CisgICAgJHZpcmFtYScnaVx1MDMwND4kd2lpOworICAgICR2aXJhbWEnJ2k+JHdpOworICAgICMkdmlyYW1hJyd1dT4kd3V1OworICAgICR2aXJhbWEnJ3VcdTAzMDQ+JHd1dTsKKyAgICAkdmlyYW1hJyd1PiR3dTsKKyAgICAjJHZpcmFtYScncnJoPiR3cnI7CisgICAgJHZpcmFtYScnclx1MDMyNVx1MDMwND4kd3JyOworICAgICMkdmlyYW1hJydyaD4kd3I7CisgICAgJHZpcmFtYScnclx1MDMyNT4kd3I7CisgICAgJHZpcmFtYScnbFx1MDMyNVx1MDMwND4kd2xsOworICAgICMkdmlyYW1hJydsaD4kd2w7CisgICAgJHZpcmFtYScnbFx1MDMyNT4kd2w7CisgICAgJHZpcmFtYScnZVx1MDMwND4kd2U7CisgICAgJHZpcmFtYScnb1x1MDMwND4kd287CisgICAgJHZpcmFtYScnYT4kd2E7CisgICAgJHZpcmFtYScnZVx1MDMwNj4kd2NlOworICAgICR2aXJhbWEnJ29cdTAzMDY+JHdjbzsKKyAgICAkdmlyYW1hJydlPiR3c2U7CisgICAgJHZpcmFtYScnbz4kd3NvOworIyBubyB2aXJhbWEKKyAgICAnJ2FcdTAzMDQ+JHdhYTsKKyAgICAnJ2FpPiR3YWk7CisgICAgJydhdT4kd2F1OworICAgICcnaVx1MDMwND4kd2lpOworICAgICcnaT4kd2k7CisgICAgJyd1XHUwMzA0PiR3dXU7CisgICAgJyd1PiR3dTsKKyAgICAnJ3JcdTAzMjVcdTAzMDQ+JHdycjsKKyAgICAnJ3JcdTAzMjU+JHdyOworICAgICcnbFx1MDMyNVx1MDMwND4kd2xsOworICAgICcnbFx1MDMyNT4kd2w7CisgICAgJydlXHUwMzA0PiR3ZTsKKyAgICAnJ29cdTAzMDQ+JHdvOworICAgICcnYT4kd2E7CisgICAgJydlXHUwMzA2PiR3Y2U7CisgICAgJydvXHUwMzA2PiR3Y287CisgICAgJydlPiR3c2U7CisgICAgJydvPiR3c287CisKKyAgICAkdmlyYW1hIH0gWyR6XSA+ICR2aXJhbWE7CisgICAgJHZpcmFtYSB9ICcgJyA+ICR2aXJhbWEgOworICAgICR2aXJhbWF9JGVuZFRoaW5nPjsKKyAgICAwPiR6ZXJvOworICAgIDE+JG9uZTsKKyAgICAyPiR0d287CisgICAgMz4kdGhyZWU7CisgICAgND4kZm91cjsKKyAgICA1PiRmaXZlOworICAgIDY+JHNpeDsKKyAgICA3PiRzZXZlbjsKKyAgICA4PiRlaWdodDsKKyAgICA5PiRuaW5lOworICAgICcnPjsKKyAgICAjOjogTkZDIChORkQpIDsKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfTGF0aW5fSmFtby50eHQgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0xhdGluX0phbW8udHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdjMWYxOTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0xhdGluX0phbW8udHh0CkBAIC0wLDAgKzEsNTI2IEBACisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0F0dGljL1RyYW5zbGl0ZXJhdG9yX0xhdGluX0phbW8udHh0LHYgJAorIyAkRGF0ZTogMjAwMi8wMy8wMiAwMDoyNzoyNyAkCisjICRSZXZpc2lvbjogMS41ICQKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjLSBOLkIuIERPIE5PVCBwdXQgYW55IGZpbHRlcnMsIE5GRCwgZXRjLiBoZXJlIC0tIHRob3NlIGFyZSBhbGlhc2VkIGluCisjLSB0aGUgSU5ERVggZmlsZS4gIFRoaXMgdHJhbnNsaXRlcmF0b3IgaXMsIGJ5IGl0c2VsZiwgbm90CisjLSBpbnN0YW50aWF0ZWQuICBJdCBpcyB1c2VkIGFzIGEgcGFydCBvZiBMYXRpbi1KYW1vLCBMYXRpbi1IYW5ndWwsIG9yCisjLSBpbnZlcnNlcyB0aGVyZW9mLgorCisjIFRyYW5zbGl0ZXJhdGlvbiBmcm9tIExhdGluIGNoYXJhY3RlcnMgdG8gS29yZWFuIHNjcmlwdCBpcyBkb25lIGluCisjIHR3byBzdGVwczogTGF0aW4gdG8gSmFtbywgdGhlbiBKYW1vIHRvIEhhbmd1bC4gIFRoZSBKYW1vLUhhbmd1bAorIyB0cmFuc2xpdGVyYXRpb24gaXMgZG9uZSBhbGdvcml0aG1pY2FsbHkgZm9sbG93aW5nIFVuaWNvZGUgMy4wCisjIHNlY3Rpb24gMy4xMS4gIFRoaXMgZmlsZSBpbXBsZW1lbnRzIHRoZSBMYXRpbiB0byBKYW1vCisjIHRyYW5zbGl0ZXJhdGlvbiB1c2luZyBydWxlcy4KKworIyBKYW1vIG9jY3VweSB0aGUgYmxvY2sgMTEwMC0xMUZGLiAgV2l0aGluIHRoaXMgYmxvY2sgdGhlcmUgYXJlIHRocmVlCisjIGdyb3VwcyBvZiBjaGFyYWN0ZXJzOiBpbml0aWFsIGNvbnNvbmFudHMgb3IgY2hvc2VvbmcgKEkpLCBtZWRpYWwKKyMgdm93ZWxzIG9yIGp1bmdzZW9uZyAoTSksIGFuZCB0cmFpbGluZyBjb25zb25hbnRzIG9yIGpvbmdzZW9uZyAoRikuCisjIFN0YW5kYXJkIEtvcmVhbiBzeWxsYWJsZXMgYXJlIG9mIHRoZSBmb3JtIEkrTStGKi4KKworIyBTZWN0aW9uIDMuMTEgZGVzY3JpYmVzIHRoZSB1c2Ugb2YgJ2ZpbGxlcicgamFtbyB0byBjb252ZXJ0CisjIG5vbnN0YW5kYXJkIHN5bGxhYmxlcyB0byBzdGFuZGFyZCBmb3JtOiB0aGUgY2hvc2VvbmcgZmlsbGVyIDExNUYgYW5kCisjIHRoZSBqdW5zZW9uZyBmaWxsZXIgMTE2MC4gIEluIHRoaXMgdHJhbnNsaXRlcmF0b3IsIHdlIHdpbGwgbm90IHVzZQorIyAxMTVGIG9yIDExNjAuCisKKyMgV2Ugd2lsbCwgaG93ZXZlciwgaW5zZXJ0IHR3byAnbnVsbCcgamFtbyB0byBtYWtlIGZvcmVpZ24gd29yZHMKKyMgY29uZm9ybSB0byBLb3JlYW4gc3lsbGFibGUgc3RydWN0dXJlLiAgVGhlc2UgYXJlIHRoZSBudWxsIGluaXRpYWwKKyMgY29uc29uYW50IDExMEIgKElFVU5HKSBhbmQgdGhlIG51bGwgdm93ZWwgMTE3MyAoRVUpLiAgSW4gTGF0aW4gdGV4dCwKKyMgd2Ugd2lsbCB1c2UgdGhlIHNlcGFyYXRvciBpbiBvcmRlciB0byBkaXNhbWJpZ3VhdGUgc3RyaW5ncywKKyMgZS5nLiAia2FuLWdnYW4iIChpbml0aWFsIEdHKSB2cy4gImthbmdnYW4iIChmaW5hbCBORyArIGluaXRpYWwgRykuCisKKyMgV2Ugd2lsbCBub3QgdXNlIGFsbCBvZiB0aGUgY2hhcmFjdGVycyBpbiB0aGUgamFtbyBibG9jay4gIFdlIHdpbGwKKyMgb25seSB1c2UgdGhlIDE5IGluaXRpYWxzLCAyMSBtZWRpYWxzLCBhbmQgMjcgZmluYWxzIHBvc3Nlc3NpbmcgYQorIyBqYW1vIHNob3J0IG5hbWUgYXMgZGVmaW5lZCBpbiBzZWN0aW9uIDQuNCBvZiB0aGUgVW5pY29kZSBib29rLgorCisjIFJ1bGVzIG9mIHRodW1iLiAgVGhlc2UgZ3VpZGVsaW5lcyBwcm92aWRlIHRoZSBiYXNpYyBmcmFtZXdvcmsKKyMgZm9yIHRoZSBydWxlcy4gIFRoZXkgYXJlIHBocmFzZWQgaW4gdGVybXMgb2YgTGF0aW4tSmFtbyB0cmFuc2xpdGVyYXRpb24uCisjIFRoZSBKYW1vLUxhdGluIHJ1bGVzIGRlcml2ZSBmcm9tIHRoZXNlLCBzaW5jZSB0aGUgSmFtby1MYXRpbiBydWxlcyBhcmUKKyMganVzdCBjb250ZXh0LWZyZWUgdHJhbnNsaXRlcmF0aW9uIG9mIGphbW8gdG8gY29ycmVzcG9uZGluZyBzaG9ydCBuYW1lcywKKyMgd2l0aCB0aGUgYWRkaXRpb24gb2Ygc2VwYXJhdG9ycyB0byBtYWludGFpbiByb3VuZC10cmlwIGludGVncml0eQorIyBpbiB0aGUgY29udGV4dCBvZiB0aGUgTGF0aW4tSmFtbyBydWxlcy4KKworIyBBIHNlcXVlbmNlIG9mIHZvd2VsczoKKyMgLSBUYWtlIHRoZSBsb25nZXN0IHNlcXVlbmNlIHlvdSBjYW4uIElmIHRoZXJlIGFyZSB0b28gbWFueSwgb3IgeW91IGRvbid0CisjICAgaGF2ZSBhIHN0YXJ0aW5nIGNvbnNvbmFudCwgaW50cm9kdWNlIGEgMTEwQiBuZWNlc3NhcnkuCisKKyMgQSBzZXF1ZW5jZSBvZiBjb25zb25hbnRzLgorIyAtIEZpcnN0IGpvaW4gdGhlIGRvdWJsZSBjb25zb25hbnRzOiBHICsgRyAtPiBHRworIyAtIEluIHRoZSByZW1haW5pbmcgbGlzdCwKKyMgLS0gSWYgdGhlcmUgaXMgbm8gcHJlY2VkaW5nIHZvd2VsLCB0YWtlIHRoZSBmaXJzdCBjb25zb25hbnQsIGFuZCBpbnNlcnQgRVUKKyMgICAgYWZ0ZXIgaXQuIENvbnRpbnVlIHdpdGggdGhlIHJlc3Qgb2YgdGhlIGNvbnNvbmFudHMuCisjIC0tIElmIHRoZXJlIGlzIG9uZSBjb25zb25hbnQsIGF0dGFjaCB0byB0aGUgZm9sbG93aW5nIHZvd2VsCisjIC0tIElmIHRoZXJlIGFyZSB0d28gY29uc29uYW50cyBhbmQgYSBmb2xsb3dpbmcgdm93ZWwsIGF0dGFjaCBvbmUgdG8gdGhlCisjICAgIHByZWNlZWRpbmcgdm93ZWwsIGFuZCBvbmUgdG8gdGhlIGZvbGxvd2luZyB2b3dlbC4KKyMgLS0gSWYgdGhlcmUgYXJlIG1vcmUgdGhhbiB0d28gY29uc29uYW50cywgam9pbiB0aGUgZmlyc3QgdHdvIHRvZ2V0aGVyIGlmIHlvdQorIyAgICBjYW46IEwgKyBHID0+IExHCisjIC0tIElmIHlvdSBzdGlsbCBlbmQgdXAgd2l0aCBtb3JlIHRoYW4gMiBjb25zb25hbnRzLCBpbnNlcnQgRVUgYWZ0ZXIgdGhlCisjICAgIGZpcnN0IG9uZSwgYW5kIGNvbnRpbnVlIHdpdGggdGhlIHJlc3Qgb2YgdGhlIGNvbnNvbmFudHMuCisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFZhcmlhYmxlcworCisjIFNvbWUgbGF0aW4gY29uc29uYW50cyBvciBjb25zb25hbnQgcGFpcnMgb25seSBvY2N1ciBhcyBpbml0aWFscywgYW5kCisjIHNvbWUgb25seSBhcyBmaW5hbHMsIGJ1dCBzb21lIG9jY3VyIGFzIGJvdGguICBUaGlzIG1ha2VzIHNvbWUgamFtbworIyBjb25zb25hbnRzIGFtYmlndW91cyB3aGVuIHRyYW5zbGl0ZXJhdGVkIGludG8gbGF0aW4uCisjICAgSW5pdGlhbCBvbmx5OiBJRVVORyBCQiBERCBKSiBSCisjICAgRmluYWwgb25seTogQlMgR1MgTCBMQiBMRyBMSCBMTSBMUCBMUyBMVCBORyBOSCBOSgorIyAgIEluaXRpYWwgYW5kIEZpbmFsOiBCIEMgRCBHIEdHIEggSiBLIE0gTiBQIFMgU1MgVAorCisgICRHaSA9IFx1MTEwMDsKKyAgJEdHaSA9IFx1MTEwMTsKKyAgJE5pID0gXHUxMTAyOworICAkRGkgPSBcdTExMDM7CisgICRERCA9IFx1MTEwNDsKKyAgJFIgPSBcdTExMDU7CisgICRNaSA9IFx1MTEwNjsKKyAgJEJpID0gXHUxMTA3OworICAkQkIgPSBcdTExMDg7CisgICRTaSA9IFx1MTEwOTsKKyAgJFNTaSA9IFx1MTEwQTsKKyAgJElFVU5HID0gXHUxMTBCOyAjIG51bGwgaW5pdGlhbCwgaW5zZXJ0ZWQgZHVyaW5nIExhdGluLUphbW8KKyAgJEppID0gXHUxMTBDOworICAkSkogPSBcdTExMEQ7CisgICRDaSA9IFx1MTEwRTsKKyAgJEtpID0gXHUxMTBGOworICAkVGkgPSBcdTExMTA7CisgICRQaSA9IFx1MTExMTsKKyAgJEhpID0gXHUxMTEyOworCisgICRBID0gXHUxMTYxOworICAkQUUgPSBcdTExNjI7CisgICRZQSA9IFx1MTE2MzsKKyAgJFlBRSA9IFx1MTE2NDsKKyAgJEVPID0gXHUxMTY1OworICAkRSA9IFx1MTE2NjsKKyAgJFlFTyA9IFx1MTE2NzsKKyAgJFlFID0gXHUxMTY4OworICAkTyA9IFx1MTE2OTsKKyAgJFdBID0gXHUxMTZBOworICAkV0FFID0gXHUxMTZCOworICAkT0UgPSBcdTExNkM7CisgICRZTyA9IFx1MTE2RDsKKyAgJFUgPSBcdTExNkU7CisgICRXRU8gPSBcdTExNkY7CisgICRXRSA9IFx1MTE3MDsKKyAgJFdJID0gXHUxMTcxOworICAkWVUgPSBcdTExNzI7CisgICRFVSA9IFx1MTE3MzsgIyBudWxsIG1lZGlhbCwgaW5zZXJ0ZWQgZHVyaW5nIExhdGluLUphbW8KKyAgJFlJID0gXHUxMTc0OworICAkSSA9IFx1MTE3NTsKKworICAkR2YgPSBcdTExQTg7CisgICRHR2YgPSBcdTExQTk7CisgICRHUyA9IFx1MTFBQTsKKyAgJE5mID0gXHUxMUFCOworICAkTkogPSBcdTExQUM7CisgICROSCA9IFx1MTFBRDsKKyAgJERmID0gXHUxMUFFOworICAkTCA9IFx1MTFBRjsKKyAgJExHID0gXHUxMUIwOworICAkTE0gPSBcdTExQjE7CisgICRMQiA9IFx1MTFCMjsKKyAgJExTID0gXHUxMUIzOworICAkTFQgPSBcdTExQjQ7CisgICRMUCA9IFx1MTFCNTsKKyAgJExIID0gXHUxMUI2OworICAkTWYgPSBcdTExQjc7CisgICRCZiA9IFx1MTFCODsKKyAgJEJTID0gXHUxMUI5OworICAkU2YgPSBcdTExQkE7CisgICRTU2YgPSBcdTExQkI7CisgICRORyA9IFx1MTFCQzsKKyAgJEpmID0gXHUxMUJEOworICAkQ2YgPSBcdTExQkU7CisgICRLZiA9IFx1MTFCRjsKKyAgJFRmID0gXHUxMUMwOworICAkUGYgPSBcdTExQzE7CisgICRIZiA9IFx1MTFDMjsKKyAgCisgICRqYW1vSW5pdGlhbCA9IFtcdTExMDAtXHUxMTEyXTsKKworICAkamFtb01lZGlhbCA9IFtcdTExNjEtXHUxMTc1XTsKKworICAkbGF0aW5Jbml0aWFsID0gW2JjZGdoamttbnByc3RdOworCisgICMgQW55IGNoYXJhY3RlciBpbiB0aGUgbGF0aW4gdHJhbnNsaXRlcmF0aW9uIG9mIGEgbWVkaWFsCisgICRsYXRpbk1lZGlhbCA9IFthZWlvdXd5XTsKKworICAjIFRoZSBsYXN0IGNoYXJhY3RlciBvZiB0aGUgbGF0aW4gdHJhbnNsaXRlcmF0aW9uIG9mIGEgbWVkaWFsCisgICRsYXRpbk1lZGlhbEVuZCA9IFthZWlvdV07CisKKyAgIyBEaXNhbWJpZ3VhdGlvbiBzZXBhcmF0b3IKKyAgJHNlcCA9IFwnOworCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBKYW1vLUxhdGluCisKKyMgSmFtbyB0byBsYXRpbiBpcyByZWxhdGl2ZWx5IHNpbXBsZSwgc2luY2UgaXQgaXMgdGhlIGxhdGluIHRoYXQgaXMKKyMgYW1iaWd1b3VzLiAgTW9zdCBydWxlcyBhcmUgc3RyYWlnaHRmb3J3YXJkLCBhbmQgd2UgZW5jb2RlIHRoZW0gYmVsb3cKKyMgYXMgc2ltcGxlIGFkZC1vbiBiYWNrIHJ1bGUsIGUuZy46CisKKyMgICAkamFtb01lZGlhbCB7YnN9ID4gJEJTOworCisjIGJlY29tZXMKKworIyAgICRqYW1vTWVkaWFsIHtic30gPD4gJEJTOworCisjIEZ1cnRoZXJtb3JlLCB3ZSBkb24ndCBjYXJlIGFib3V0IHRoZSBvcmRlcmluZyBmb3IgSmFtby1MYXRpbiBiZWNhdXNlCisjIHdlIGFyZSBnb2luZyBmcm9tIHNpbmdsZSBjaGFyYWN0ZXJzLCBzbyB3ZSBjYW4gdmVyeSBlYXNpbHkgcGlnZ3liYWNrCisjIG9uIHRoZSBMYXRpbi1KYW1vLgorCisjIFRoZSBtYWluIGlzc3VlIHdpdGggSmFtby1MYXRpbiBpcyB3aGVuIHRvIGluc2VydCBzZXBhcmF0b3JzLgorIyBTZXBhcmF0b3JzIGFyZSBpbnNlcnRlZCB0byBvYnRhaW4gY29ycmVjdCByb3VuZCB0cmlwIGJlaGF2aW9yLiAgRm9yCisjIGV4YW1wbGUsIHRoZSBzZXF1ZW5jZSBLaSBBIEdmIEdpIEUsIGlmIHRyYW5zbGl0ZXJhdGVkIHRvICJrYWdnZSIsCisjIHdvdWxkIHRoZW4gcm91bmQgdHJpcCB0byBLaSBBIEdHaSBFLiAgVG8gcHJldmVudCB0aGlzLCB3ZSBpbnNlcnQgYQorIyBzZXBhcmF0b3I6ICJrYWctZ2UiLiAgSU1QT1JUQU5UOiBUaGUgbmVlZCBmb3Igc2VwYXJhdG9ycyBkZXBlbmRzCisjIHZlcnkgc3BlY2lmaWNhbGx5IG9uIHRoZSBiZWhhdmlvciBvZiB0aGUgTGF0aW4tSmFtbyBydWxlcy4gIEEgY2hhbmdlCisjIGluIHRoZSBMYXRpbi1KYW1vIGJlaGF2aW9yIGNhbiBjb21wbGV0ZWx5IGNoYW5nZSB0aGUgd2F5IHRoZQorIyBzZXBhcmF0b3IgaW5zZXJ0aW9uIG11c3QgYmUgZG9uZS4KKworIyBGaXJzdCB0cnkgdG8gcHJlc2VydmUgYWN0dWFsIHNlcGFyYXRvcnMgaW4gdGhlIGphbW8gdGV4dCBieSBkb3VibGluZworIyB0aGVtLiAgVGhpcyBmaXhlcyBwcm9ibGVtcyBsaWtlOgorIyAoRGkpKEEpKEppKShVKShORyktKElFVU5HKShZRU8pKE5mKShHaSkoWUVPKShMKSA9PiBkYWp1bmcteWVvbmd5ZW9sCisjID0+IChEaSkoQSkoSmkpKFUpKE5HKShJRVVORykoWUVPKShOZikoR2kpKFlFTykoTCkuICBUaGlzIGlzIG9wdGlvbmFsCisjIC0tIGlmIHdlIGRvbid0IGNhcmUgYWJvdXQgbG9zaW5nIHNlcGFyYXRvcnMgaW4gdGhlIGphbW8sIHdlIGNhbiBkZWxldGUKKyMgdGhpcyBydWxlLgorCisgICRzZXAgJHNlcCA8PiAkc2VwOworCisjIFRyaXBsZSBjb25zb25hbnRzLiAgRm9yIHRocmVlIGNvbnNvbmFudHMgImF4eHgiIHdlIGluc2VydCBhCisjIHNlcGFyYXRvciBiZXR3ZWVuIHRoZSBmaXJzdCBhbmQgc2Vjb25kICJ4IiBpZiBYWGYsIFhmLCBhbmQgWGkgYWxsCisjIGV4aXN0LCBhbmQgd2UgaGF2ZSBBIFhmIFhYaS4gIFRoaXMgcHJldmVudHMgdGhlIHJldmVyc2UKKyMgdHJhbnNsaXRlcmF0aW9uIHRvIEEgWFhmIFhpLgorCisgICRzZXAgPCAkbGF0aW5NZWRpYWxFbmQgZyB7fSAkR0dpOworICAkc2VwIDwgJGxhdGluTWVkaWFsRW5kIHMge30gJFNTaTsKKworIyBGb3Igdm93ZWxzIHRoZSBydWxlIGlzIHNpbWlsYXIuICBJZiB0aGVyZSBpcyBhIHZvd2VsICJhZSIgc3VjaCB0aGF0CisjICJhIiBieSBpdHNlbGYgYW5kICJlIiBieSBpdHNlbGYgYXJlIHZvd2VscywgdGhlbiB3ZSB3YW50IHRvIG1hcCBBIEUKKyMgdG8gImEtZSIgc28gYXMgbm90IHRvIHJvdW5kIHRyaXAgdG8gQUUuICBIb3dldmVyLCBpbiB0aGUgdGV4dCBLaSBFTworIyBJRVVORyBFIHdlIGRvbid0IG5lZWQgdG8gbWFwIHRvICJrZW8tZSIuICAia2VvZSIgc3VmZmljZXMuICBGb3IKKyMgdm93ZWxzIG9mIHRoZSBmb3JtICJhZWkiLCBib3RoICJhZSIgKyAiaSIgYW5kICJhIiArICJlaSIgbXVzdCBiZQorIyB0ZXN0ZWQuICBOT1RFOiBUaGVzZSBydWxlcyB1c2VkIHRvIGhhdmUgYSBsZWZ0IGNvbnRleHQgb2YKKyMgJGxhdGluSW5pdGlhbCBpbnN0ZWFkIG9mIFteJGxhdGluTWVkaWFsXS4gIFRoZSBwcm9ibGVtIHdpdGggdGhpcyBpcworIyBzZXF1ZW5jZXMgd2hlcmUgYW4gaW5pdGlhbCBJRVVORyBpcyB0cmFuc2xpdGVyYXRlZCBhd2F5OgorIyAgIChJRVVORykoQSkoSUVVTkcpKEVPKSA9PiBhZW8gPT4gKElFVU5HKShBRSkoSUVVTkcpKE8pCisKKyAgJHNlcCA8IFteJGxhdGluTWVkaWFsXSBbeSB3XSBlIHt9IFskTyAkT0VdOworICAkc2VwIDwgW14kbGF0aW5NZWRpYWxdIGUge30gWyRPICRPRSAkVV07CisgICRzZXAgPCBbXiRsYXRpbk1lZGlhbF0gW28gYV0ge30gWyRFICRFTyAkRVVdOworICAkc2VwIDwgW14kbGF0aW5NZWRpYWxdIFt3IHldIGEge30gWyRFICRFTyAkRVVdOworCisjIFNpbWlsYXIgdG8gdGhlIGFib3ZlLCBidXQgd2l0aCBhbiBpbnRlcnZlbmluZyAkSUVVTkcuCisKKyAgJHNlcCA8IFteJGxhdGluTWVkaWFsXSBbeSB3XSBlIHt9ICRJRVVORyBbJE8gJE9FXTsKKyAgJHNlcCA8IFteJGxhdGluTWVkaWFsXSBlIHt9ICRJRVVORyBbJE8gJE9FICRVXTsKKyAgJHNlcCA8IFteJGxhdGluTWVkaWFsXSBbbyBhXSB7fSAkSUVVTkcgWyRFICRFTyAkRVVdOworICAkc2VwIDwgW14kbGF0aW5NZWRpYWxdIFt3IHldIGEge30gJElFVU5HIFskRSAkRU8gJEVVXTsKKworIyBTaW5nbGUgZmluYWxzIGZvbGxvd2VkIGJ5IElFVU5HLiAgVGhlIGphbW8gc2VxdWVuY2UgQSBYZiBJRVVORyBFLAorIyB3aGVyZSBYaSBhbHNvIGV4aXN0cywgbXVzdCBiZSB0cmFuc2xpdGVyYXRlZCBhcyAiYXgtZSIgdG8gcHJldmVudAorIyB0aGUgcm91bmQgdHJpcCBjb252ZXJzaW9uIHRvIEEgWGkgRS4KKworICAkc2VwIDwgJGxhdGluTWVkaWFsRW5kIGIge30gJElFVU5HICRqYW1vTWVkaWFsOworICAkc2VwIDwgJGxhdGluTWVkaWFsRW5kIGMge30gJElFVU5HICRqYW1vTWVkaWFsOworICAkc2VwIDwgJGxhdGluTWVkaWFsRW5kIGQge30gJElFVU5HICRqYW1vTWVkaWFsOworICAkc2VwIDwgJGxhdGluTWVkaWFsRW5kIGcge30gJElFVU5HICRqYW1vTWVkaWFsOworICAkc2VwIDwgJGxhdGluTWVkaWFsRW5kIGgge30gJElFVU5HICRqYW1vTWVkaWFsOworICAkc2VwIDwgJGxhdGluTWVkaWFsRW5kIGoge30gJElFVU5HICRqYW1vTWVkaWFsOworICAkc2VwIDwgJGxhdGluTWVkaWFsRW5kIGsge30gJElFVU5HICRqYW1vTWVkaWFsOworICAkc2VwIDwgJGxhdGluTWVkaWFsRW5kIG0ge30gJElFVU5HICRqYW1vTWVkaWFsOworICAkc2VwIDwgJGxhdGluTWVkaWFsRW5kIG4ge30gJElFVU5HICRqYW1vTWVkaWFsOworICAkc2VwIDwgJGxhdGluTWVkaWFsRW5kIHAge30gJElFVU5HICRqYW1vTWVkaWFsOworICAkc2VwIDwgJGxhdGluTWVkaWFsRW5kIHMge30gJElFVU5HICRqYW1vTWVkaWFsOworICAkc2VwIDwgJGxhdGluTWVkaWFsRW5kIHQge30gJElFVU5HICRqYW1vTWVkaWFsOworCisjIERvdWJsZSBmaW5hbHMgZm9sbG93ZWQgYnkgSUVVTkcuICBTaW1pbGFyIHRvIHRoZSBzaW5nbGUgZmluYWxzCisjIGZvbGxvd2VkIGJ5IElFVU5HLiAgQW55IGxhdGluIGNvbnNvbmFudCBwYWlyIFggWSwgYmV0d2VlbiBtZWRpYWxzLAorIyB0aGF0IHdlIHdvdWxkIHNwbGl0IGJ5IExhdGluLUphbW8sIHdlIG11c3QgaGFuZGxlIHdoZW4gaXQgb2NjdXJzIGFzCisjIHBhcnQgb2YgQSBYWWYgSUVVTkcgRSwgdG8gcHJldmVudCByb3VuZCB0cmlwIGNvbnZlcnNpb24gdG8gQSBYZiBZaQorIyBFLgorCisgICRzZXAgPCAkbGF0aW5NZWRpYWxFbmQgYiBzIHt9ICRJRVVORyAkamFtb01lZGlhbDsKKyAgJHNlcCA8ICRsYXRpbk1lZGlhbEVuZCBnIGcge30gJElFVU5HICRqYW1vTWVkaWFsOworICAkc2VwIDwgJGxhdGluTWVkaWFsRW5kIGcgcyB7fSAkSUVVTkcgJGphbW9NZWRpYWw7CisgICRzZXAgPCAkbGF0aW5NZWRpYWxFbmQgbCBiIHt9ICRJRVVORyAkamFtb01lZGlhbDsKKyAgJHNlcCA8ICRsYXRpbk1lZGlhbEVuZCBsIGcge30gJElFVU5HICRqYW1vTWVkaWFsOworICAkc2VwIDwgJGxhdGluTWVkaWFsRW5kIGwgaCB7fSAkSUVVTkcgJGphbW9NZWRpYWw7CisgICRzZXAgPCAkbGF0aW5NZWRpYWxFbmQgbCBtIHt9ICRJRVVORyAkamFtb01lZGlhbDsKKyAgJHNlcCA8ICRsYXRpbk1lZGlhbEVuZCBsIHAge30gJElFVU5HICRqYW1vTWVkaWFsOworICAkc2VwIDwgJGxhdGluTWVkaWFsRW5kIGwgcyB7fSAkSUVVTkcgJGphbW9NZWRpYWw7CisgICRzZXAgPCAkbGF0aW5NZWRpYWxFbmQgbCB0IHt9ICRJRVVORyAkamFtb01lZGlhbDsKKyAgJHNlcCA8ICRsYXRpbk1lZGlhbEVuZCBuIGcge30gJElFVU5HICRqYW1vTWVkaWFsOworICAkc2VwIDwgJGxhdGluTWVkaWFsRW5kIG4gaCB7fSAkSUVVTkcgJGphbW9NZWRpYWw7CisgICRzZXAgPCAkbGF0aW5NZWRpYWxFbmQgbiBqIHt9ICRJRVVORyAkamFtb01lZGlhbDsKKyAgJHNlcCA8ICRsYXRpbk1lZGlhbEVuZCBzIHMge30gJElFVU5HICRqYW1vTWVkaWFsOworCisjIFNwbGl0IGRvdWJsZXMuICBUZXh0IG9mIHRoZSBmb3JtIEEgWGkgWGYgRSwgd2hlcmUgWFhpIGFsc28gb2NjdXJzLAorIyB3ZSB0cmFuc2xpdGVyYXRlIGFzICJheC14ZSIgdG8gcHJldmVudCByb3VuZCB0cmlwIHRyYW5zbGl0ZXJhdGlvbiBhcworIyBBIFhYaSBFLgorCisgICRzZXAgPCAkbGF0aW5NZWRpYWxFbmQgYiB7fSAkQmkgJGphbW9NZWRpYWw7CisgICRzZXAgPCAkbGF0aW5NZWRpYWxFbmQgZCB7fSAkRGkgJGphbW9NZWRpYWw7CisgICRzZXAgPCAkbGF0aW5NZWRpYWxFbmQgaiB7fSAkSmkgJGphbW9NZWRpYWw7CisgICRzZXAgPCAkbGF0aW5NZWRpYWxFbmQgZyB7fSAkR2kgJGphbW9NZWRpYWw7CisgICRzZXAgPCAkbGF0aW5NZWRpYWxFbmQgcyB7fSAkU2kgJGphbW9NZWRpYWw7CisKKyMgWFlZLiAgVGhpcyBjb3JyZXNwb25kcyB0byB0aGUgWFlZIHJ1bGUgaW4gTGF0aW4tSmFtby4gIEJ5IGRlZmF1bHQKKyMgTGF0aW4tSmFtbyBtYXBzICJ4eXkiIHRvIFhmIFlZaSwgdG8ga2VlcCBZWSB0b2dldGhlci4gIEFzIGEgcmVzdWx0LAorIyAieHl5IiBmb3JtcyB0aGF0IGNvcnJlc3BvbmQgdG8gWFlmIFlpIG11c3QgYmUgdHJhbnNsaXRlcmF0ZWQgYXMKKyMgInh5LXkiLgorCisgICRzZXAgPCAkbGF0aW5NZWRpYWxFbmQgYiBzIHt9IFskU2kgJFNTaV07CisgICRzZXAgPCAkbGF0aW5NZWRpYWxFbmQgZyBzIHt9IFskU2kgJFNTaV07CisgICRzZXAgPCAkbGF0aW5NZWRpYWxFbmQgbCBiIHt9IFskQmkgJEJCXTsKKyAgJHNlcCA8ICRsYXRpbk1lZGlhbEVuZCBsIGcge30gWyRHaSAkR0dpXTsKKyAgJHNlcCA8ICRsYXRpbk1lZGlhbEVuZCBsIHMge30gWyRTaSAkU1NpXTsKKyAgJHNlcCA8ICRsYXRpbk1lZGlhbEVuZCBuIGcge30gWyRHaSAkR0dpXTsKKyAgJHNlcCA8ICRsYXRpbk1lZGlhbEVuZCBuIGoge30gWyRKaSAkSkpdOworCisjIERlbGV0aW9uIG9mIElFVU5HIGlzIGhhbmRsZWQgYmVsb3cuCisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIExhdGluLUphbW8KKworIyBbQmFzaWMsIGNvbnRleHQtZnJlZSBKYW1vLUxhdGluIHJ1bGVzIGFyZSBlbWJlZGRlZCBoZXJlIHRvby4gIFNlZQorIyBhYm92ZS5dCisKKyMgU3BsaXQgZGlncmFwaHM6IFRleHQgb2YgdGhlIGZvcm0gJ2F4eWUnLCB3aGVyZSAneHknIGlzIGEgZmluYWwKKyMgZGlncmFwaCwgJ3gnIGlzIGEgZmluYWwgKGJ5IGl0c2VsZiksICd5JyBpcyBhbiBpbml0aWFsLCBhbmQgJ2EnIGFuZAorIyAnZScgYXJlIG1lZGlhbHMsIHdlIHdhbnQgdG8gdHJhbnNsaXRlcmF0ZSB0aGlzIGFzIEEgWGYgWWkgRSByYXRoZXIKKyMgdGhhbiBBIFhZZiBJRVVORyBFLiAgV2UgZG8gTk9UIGluY2x1ZGUgdGV4dCBvZiB0aGUgZm9ybSAiYXh4ZSIsCisjIHNpbmNlIHRoYXQgaXMgaGFuZGxlZCBkaWZmZXJlbnRseSBiZWxvdy4gIFRoZXNlIHJ1bGVzIGFyZSBnZW5lcmF0ZWQKKyMgcHJvZ3JhbW1hdGljYWxseSBmcm9tIHRoZSBqYW1vIGRhdGEuCisKKyAgJGphbW9NZWRpYWwge2Igc30gJGxhdGluTWVkaWFsID4gJEJmICRTaTsKKyAgJGphbW9NZWRpYWwge2cgc30gJGxhdGluTWVkaWFsID4gJEdmICRTaTsKKyAgJGphbW9NZWRpYWwge2wgYn0gJGxhdGluTWVkaWFsID4gJEwgJEJpOworICAkamFtb01lZGlhbCB7bCBnfSAkbGF0aW5NZWRpYWwgPiAkTCAkR2k7CisgICRqYW1vTWVkaWFsIHtsIGh9ICRsYXRpbk1lZGlhbCA+ICRMICRIaTsKKyAgJGphbW9NZWRpYWwge2wgbX0gJGxhdGluTWVkaWFsID4gJEwgJE1pOworICAkamFtb01lZGlhbCB7bCBwfSAkbGF0aW5NZWRpYWwgPiAkTCAkUGk7CisgICRqYW1vTWVkaWFsIHtsIHN9ICRsYXRpbk1lZGlhbCA+ICRMICRTaTsKKyAgJGphbW9NZWRpYWwge2wgdH0gJGxhdGluTWVkaWFsID4gJEwgJFRpOworICAkamFtb01lZGlhbCB7biBnfSAkbGF0aW5NZWRpYWwgPiAkTmYgJEdpOworICAkamFtb01lZGlhbCB7biBofSAkbGF0aW5NZWRpYWwgPiAkTmYgJEhpOworICAkamFtb01lZGlhbCB7biBqfSAkbGF0aW5NZWRpYWwgPiAkTmYgJEppOworCisjIFNpbmdsZSBjb25zb25hbnRzIGFyZSBpbml0aWFsczogVGV4dCBvZiB0aGUgZm9ybSAnYXhlJywgd2hlcmUgJ3gnCisjIGNhbiBiZSBhbiBpbml0aWFsIG9yIGEgZmluYWwsIGFuZCAnYScgYW5kICdlJyBhcmUgbWVkaWFscywgd2Ugd2FudAorIyB0byB0cmFuc2xpdGVyYXRlIGFzIEEgWGkgRSByYXRoZXIgdGhhbiBBIFhmIElFVU5HIEUuCisKKyAgJGphbW9NZWRpYWwge2J9ICRsYXRpbk1lZGlhbCA+ICRCaTsKKyAgJGphbW9NZWRpYWwge2N9ICRsYXRpbk1lZGlhbCA+ICRDaTsKKyAgJGphbW9NZWRpYWwge2R9ICRsYXRpbk1lZGlhbCA+ICREaTsKKyAgJGphbW9NZWRpYWwge2d9ICRsYXRpbk1lZGlhbCA+ICRHaTsKKyAgJGphbW9NZWRpYWwge2h9ICRsYXRpbk1lZGlhbCA+ICRIaTsKKyAgJGphbW9NZWRpYWwge2p9ICRsYXRpbk1lZGlhbCA+ICRKaTsKKyAgJGphbW9NZWRpYWwge2t9ICRsYXRpbk1lZGlhbCA+ICRLaTsKKyAgJGphbW9NZWRpYWwge219ICRsYXRpbk1lZGlhbCA+ICRNaTsKKyAgJGphbW9NZWRpYWwge259ICRsYXRpbk1lZGlhbCA+ICROaTsKKyAgJGphbW9NZWRpYWwge3B9ICRsYXRpbk1lZGlhbCA+ICRQaTsKKyAgJGphbW9NZWRpYWwge3N9ICRsYXRpbk1lZGlhbCA+ICRTaTsKKyAgJGphbW9NZWRpYWwge3R9ICRsYXRpbk1lZGlhbCA+ICRUaTsKKworIyBEb3VibGVkIGluaXRpYWxzLiAgVGhlIHNlcXVlbmNlICJheHhlIiwgd2hlcmUgWFggZXhpc3RzIGFzIGFuIGluaXRpYWwKKyMgKFhYaSksIGFuZCBhbHNvIFhpIGFuZCBYZiBleGlzdCAodHJ1ZSBvZiBhbGwgZGlncmFwaHMgWFgpLCB3ZSB3YW50CisjIHRvIHRyYW5zbGl0ZXJhdGUgYXMgQSBYWGkgRSwgcmF0aGVyIHRoYW4gc3BsaXQgdG8gQSBYZiBYaSBFLgorCisgICRqYW1vTWVkaWFsIHtiIGJ9ICRsYXRpbk1lZGlhbCA+ICRCQjsKKyAgJGphbW9NZWRpYWwge2QgZH0gJGxhdGluTWVkaWFsID4gJEREOworICAkamFtb01lZGlhbCB7aiBqfSAkbGF0aW5NZWRpYWwgPiAkSko7CisgICRqYW1vTWVkaWFsIHtnIGd9ICRsYXRpbk1lZGlhbCA+ICRHR2k7CisgICRqYW1vTWVkaWFsIHtzIHN9ICRsYXRpbk1lZGlhbCA+ICRTU2k7CisKKyMgWFlZLiAgQmVjYXVzZSBkb3VibGVkIGNvbnNvbmFudHMgYmluZCBtb3JlIHN0cm9uZ2x5IHRoYW4gWFkKKyMgY29uc29uYW50cywgd2UgbXVzdCBoYW5kbGUgdGhlIHNlcXVlbmNlICJheHl5IiBzcGVjaWFsbHkuICBIZXJlIFhZZgorIyBhbmQgWVlpIG11c3QgZXhpc3QuICBJbiB0aGVzZSBjYXNlcywgd2UgbWFwIHRvIFhmIFlZaSByYXRoZXIgdGhhbgorIyBYWWYuCisKKyAgJGphbW9NZWRpYWwge2J9IHMgcyA+ICRCZjsKKyAgJGphbW9NZWRpYWwge2d9IHMgcyA+ICRHZjsKKyAgJGphbW9NZWRpYWwge2x9IGIgYiA+ICRMOworICAkamFtb01lZGlhbCB7bH0gZyBnID4gJEw7CisgICRqYW1vTWVkaWFsIHtsfSBzIHMgPiAkTDsKKyAgJGphbW9NZWRpYWwge259IGcgZyA+ICROZjsKKyAgJGphbW9NZWRpYWwge259IGogaiA+ICROZjsKKworIyBGaW5hbHM6IEF0dGFjaCBjb25zb25hbnQgd2l0aCBwcmVjZWRpbmcgbWVkaWFsIHRvIHByZWNlZGluZyBtZWRpYWwuCisjIERvIHRoaXMgQkVGT1JFIG1hcHBpbmcgY29uc29uYW50cyB0byBpbml0aWFscy4gIExvbmdlciBrZXlzIG11c3QKKyMgcHJlY2VkZSBzaG9ydGVyIGtleXMgdGhhdCB0aGV5IHN0YXJ0IHdpdGgsIGUuZy4sIHRoZSBydWxlIGZvciAnYnMnCisjIG11c3QgcHJlY2VkZSAnYicuCisKKyMgW0JBU0lDIEphbW8tTGF0aW4gRklOQUxTIGhhbmRsZWQgaGVyZS4gIE9yZGVyIGlycmVsZXZhbnQgd2l0aGluIHRoaXMKKyMgYmxvY2sgZm9yIEphbW8tTGF0aW4uXQorCisgICRqYW1vTWVkaWFsIHtic30gPD4gJEJTOworICAkamFtb01lZGlhbCB7Yn0gPD4gJEJmOworICAkamFtb01lZGlhbCB7Y30gPD4gJENmOworICAkamFtb01lZGlhbCB7ZH0gPD4gJERmOworICAkamFtb01lZGlhbCB7Z2d9IDw+ICRHR2Y7CisgICRqYW1vTWVkaWFsIHtnc30gPD4gJEdTOworICAkamFtb01lZGlhbCB7Z30gPD4gJEdmOworICAkamFtb01lZGlhbCB7aH0gPD4gJEhmOworICAkamFtb01lZGlhbCB7an0gPD4gJEpmOworICAkamFtb01lZGlhbCB7a30gPD4gJEtmOworICAkamFtb01lZGlhbCB7bGJ9IDw+ICRMQjsgICRqYW1vTWVkaWFsIHtsZ30gPD4gJExHOworICAkamFtb01lZGlhbCB7bGh9IDw+ICRMSDsKKyAgJGphbW9NZWRpYWwge2xtfSA8PiAkTE07CisgICRqYW1vTWVkaWFsIHtscH0gPD4gJExQOworICAkamFtb01lZGlhbCB7bHN9IDw+ICRMUzsKKyAgJGphbW9NZWRpYWwge2x0fSA8PiAkTFQ7CisgICRqYW1vTWVkaWFsIHtsfSA8PiAkTDsKKyAgJGphbW9NZWRpYWwge219IDw+ICRNZjsKKyAgJGphbW9NZWRpYWwge25nfSA8PiAkTkc7CisgICRqYW1vTWVkaWFsIHtuaH0gPD4gJE5IOworICAkamFtb01lZGlhbCB7bmp9IDw+ICROSjsKKyAgJGphbW9NZWRpYWwge259IDw+ICROZjsKKyAgJGphbW9NZWRpYWwge3B9IDw+ICRQZjsKKyAgJGphbW9NZWRpYWwge3NzfSA8PiAkU1NmOworICAkamFtb01lZGlhbCB7c30gPD4gJFNmOworICAkamFtb01lZGlhbCB7dH0gPD4gJFRmOworCisjIEluaXRpYWxzOiBBdHRhY2ggc2luZ2xlIGNvbnNvbmFudCB0byBmb2xsb3dpbmcgbWVkaWFsLiAgRG8gdGhpcworIyBBRlRFUiBtYXBwaW5nIGZpbmFscy4gIExvbmdlciBrZXlzIG11c3QgcHJlY2VkZSBzaG9ydGVyIGtleXMgdGhhdAorIyB0aGV5IHN0YXJ0IHdpdGgsIGUuZy4sIHRoZSBydWxlIGZvciAnZ2cnIG11c3QgcHJlY2VkZSAnZycuCisKKyMgW0JBU0lDIEphbW8tTGF0aW4gSU5JVElBTFMgaGFuZGxlZCBoZXJlLiAgT3JkZXIgaXJyZWxldmFudCB3aXRoaW4KKyMgdGhpcyBibG9jayBmb3IgSmFtby1MYXRpbi5dCisKKyAge2dnfSAkbGF0aW5NZWRpYWwgPD4gJEdHaTsKKyAge2d9ICRsYXRpbk1lZGlhbCA8PiAkR2k7CisgIHtufSAkbGF0aW5NZWRpYWwgPD4gJE5pOworICB7ZGR9ICRsYXRpbk1lZGlhbCA8PiAkREQ7CisgIHtkfSAkbGF0aW5NZWRpYWwgPD4gJERpOworICB7cn0gJGxhdGluTWVkaWFsIDw+ICRSOworICB7bX0gJGxhdGluTWVkaWFsIDw+ICRNaTsKKyAge2JifSAkbGF0aW5NZWRpYWwgPD4gJEJCOworICB7Yn0gJGxhdGluTWVkaWFsIDw+ICRCaTsKKyAge3NzfSAkbGF0aW5NZWRpYWwgPD4gJFNTaTsKKyAge3N9ICRsYXRpbk1lZGlhbCA8PiAkU2k7CisgIHtqan0gJGxhdGluTWVkaWFsIDw+ICRKSjsKKyAge2p9ICRsYXRpbk1lZGlhbCA8PiAkSmk7CisgIHtjfSAkbGF0aW5NZWRpYWwgPD4gJENpOworICB7a30gJGxhdGluTWVkaWFsIDw+ICRLaTsKKyAge3R9ICRsYXRpbk1lZGlhbCA8PiAkVGk7CisgIHtwfSAkbGF0aW5NZWRpYWwgPD4gJFBpOworICB7aH0gJGxhdGluTWVkaWFsIDw+ICRIaTsKKworIyAncicgaW4gZmluYWwgcG9zaXRpb24uICBCZWNhdXNlIG9mIHRoZSBlcXVpdmFsZW5jeSBvZiB0aGUgJ2wnIGFuZAorIyAncicgamFtbyAodGhlIGdseXBocyBhcmUgdGhlIHNhbWUpLCB3ZSB0cnkgdG8gcHJvdmlkZSB0aGUgc2FtZQorIyBlcXVpdmFsZW5jeSBpbiBMYXRpbi1KYW1vLiAgVGhlICdsJyB0byAncicgY29udmVyc2lvbiBpcyBoYW5kbGVkCisjIGJlbG93LiAgSWYgd2Ugc2VlIGFuICdyJyBpbiBhbiBhcHBhcmVudCBmaW5hbCBwb3NpdGlvbiwgdHJlYXQgaXQKKyMgbGlrZSAnbCcuICBGb3IgZXhhbXBsZSwgImthcmthIiA9PiBLaSBBIFIgRVUgS2kgQSB3aXRob3V0IHRoaXMgcnVsZS4KKyMgSW5zdGVhZCwgd2Ugd2FudCBLaSBBIEwgS2kgQS4KKworICAkamFtb01lZGlhbCB7cn0gJGxhdGluSW5pdGlhbCA+IHwgbDsKKworIyBJbml0aWFsICsgRmluYWw6IElmIHdlIG1hdGNoIHRoZSBuZXh0IHJ1bGUsIHdlIGhhdmUgaW5pdGlhbCB0aGVuCisjIGZpbmFsIGNvbnNvbmFudCB3aXRoIG5vIGludGVydmVuaW5nIG1lZGlhbC4gIFdlIGluc2VydCB0aGUgbnVsbAorIyB2b3dlbCBCRUZPUkUgaXQgdG8gY3JlYXRlIGEgd2VsbC1mb3JtZWQgc3lsbGFibGUuICAoSW4gdGhlIG5leHQgcnVsZQorIyB3ZSBpbnNlcnQgYSBudWxsIHZvd2VsIEFGVEVSIGFuIGFub21hbG91cyBpbml0aWFsLikKKworICAkamFtb0luaXRpYWwge30gW2JjZGdoamtsbW5wc3RdID4gJEVVOworCisjIEluaXRpYWwgKyBYOiBUaGlzIGJsb2NrIG1hdGNoZXMgYW4gaW5pdGlhbCBjb25zb25hbnQgbm90IGZvbGxvd2VkIGJ5CisjIGEgbWVkaWFsLiAgV2UgaW5zZXJ0IHRoZSBudWxsIHZvd2VsIGFmdGVyIGl0LiAgV2UgaGFuZGxlIGRvdWJsZQorIyBpbml0aWFscyBleHBsaWNpdGx5IGhlcmU7IGZvciBzaW5nbGUgaW5pdGlhbCBjb25zb25hbnRzIHdlIGluc2VydCBFVQorIyAoYXMgTGF0aW4pIGFmdGVyIHRoZW0gYW5kIGxldCBzdGFuZGFyZCBydWxlcyBkbyB0aGUgcmVzdC4KKworIyBCUkVBS1MgUk9VTkQgVFJJUCBJTlRFR1JJVFkKKworICBnZyA+ICRHR2kgJEVVOworICBkZCA+ICRERCAkRVU7CisgIGJiID4gJEJCICRFVTsKKyAgc3MgPiAkU1NpICRFVTsKKyAgamogPiAkSkogJEVVOworCisgIChbYmNkZ2hqa21ucHJzdF0pID4gfCAkMSBldTsKKworIyBYICsgRmluYWw6IEZpbmFsbHkgd2UgaGF2ZSB0byBkZWFsIHdpdGggYSBjb25zb25hbnQgdGhhdCBjYW4gb25seSBiZQorIyBpbnRlcnByZXRlZCBhcyBhIGZpbmFsIChub3QgYW4gaW5pdGlhbCkgYW5kIHdoaWNoIGlzIHByZWNlZGVkCisjIG5laXRoZXIgYnkgYW4gaW5pdGlhbCBub3IgYSBtZWRpYWwuICBJdCBpcyB0aGUgc3RhcnQgb2YgdGhlCisjIHN5bGxhYmxlLCBidXQgY2Fubm90IGJlLiAgTW9zdCBvZiB0aGVzZSB3aWxsIGFscmVhZHkgYmUgaGFuZGxlZCBieQorIyB0aGUgYWJvdmUgcnVsZXMuICAnYnMnIHNwbGl0cyBpbnRvIEJpIEVVIFNmLiAgU2ltaWxhciBmb3IgJ2dzJyAnbmcnCisjICduaCcgJ25qJy4gIFRoZSBvbmx5IHByb2JsZW0gaXMgJ2wnIGFuZCBkaWdyYXBocyBzdGFydGluZyB3aXRoICdsJy4KKyMgRm9yIHRoaXMgaXNvbGF0ZWQgY2FzZSwgd2UgY291bGQgYWRkIGEgbnVsbCBpbml0aWFsIGFuZCBtZWRpYWwsCisjIHdoaWNoIHdvdWxkIGdpdmUgImxhIiA9PiBJRVVORyBFVSBMIElFVU5HIEEsIGZvciBleGFtcGxlLiAgQSBtb3JlCisjIGVjb25vbWljYWwgc29sdXRpb24gaXMgdG8gdHJhbnNsaXRlcmF0ZSBpc29sYXRlZCAibCIgKHRoYXQgaXMsCisjIGluaXRpYWwgImwiKSB0byAiciIuICAoT3RoZXIgc2ltaWxhciBjb252ZXJzaW9ucyBvZiBjb25zb25hbnRzIHRoYXQKKyMgb2NjdXIgbmVpdGhlciBhcyBpbml0aWFscyBub3IgYXMgZmluYWxzIGFyZSBoYW5kbGVkIGJlbG93LikKKworICBsID4gfCByOworCisjIE1lZGlhbHMuICBJZiBhIG1lZGlhbCBpcyBwcmVjZWRlZCBieSBhbiBpbml0aWFsLCB0aGVuIHdlIHByb2NlZWQKKyMgbm9ybWFsbHkuICBBcyB1c3VhbCwgbG9uZ2VyIGtleXMgbXVzdCBwcmVjZWRlIHNob3J0ZXIgb25lcy4KKworIyBbQkFTSUMgSmFtby1MYXRpbiBNRURJQUxTIGhhbmRsZWQgaGVyZS4gIE9yZGVyIGlycmVsZXZhbnQgd2l0aGluCisjIHRoaXMgYmxvY2sgZm9yIEphbW8tTGF0aW4uXQorCisgICRqYW1vSW5pdGlhbCB7YWV9IDw+ICRBRTsKKyAgJGphbW9Jbml0aWFsIHthfSA8PiAkQTsKKyAgJGphbW9Jbml0aWFsIHtlb30gPD4gJEVPOworICAkamFtb0luaXRpYWwge2V1fSA8PiAkRVU7CisgICRqYW1vSW5pdGlhbCB7ZX0gPD4gJEU7CisgICRqYW1vSW5pdGlhbCB7aX0gPD4gJEk7CisgICRqYW1vSW5pdGlhbCB7b2V9IDw+ICRPRTsKKyAgJGphbW9Jbml0aWFsIHtvfSA8PiAkTzsKKyAgJGphbW9Jbml0aWFsIHt1fSA8PiAkVTsKKyAgJGphbW9Jbml0aWFsIHt3YWV9IDw+ICRXQUU7CisgICRqYW1vSW5pdGlhbCB7d2F9IDw+ICRXQTsKKyAgJGphbW9Jbml0aWFsIHt3ZW99IDw+ICRXRU87CisgICRqYW1vSW5pdGlhbCB7d2V9IDw+ICRXRTsKKyAgJGphbW9Jbml0aWFsIHt3aX0gPD4gJFdJOworICAkamFtb0luaXRpYWwge3lhZX0gPD4gJFlBRTsKKyAgJGphbW9Jbml0aWFsIHt5YX0gPD4gJFlBOworICAkamFtb0luaXRpYWwge3llb30gPD4gJFlFTzsKKyAgJGphbW9Jbml0aWFsIHt5ZX0gPD4gJFlFOworICAkamFtb0luaXRpYWwge3lpfSA8PiAkWUk7CisgICRqYW1vSW5pdGlhbCB7eW99IDw+ICRZTzsKKyAgJGphbW9Jbml0aWFsIHt5dX0gPD4gJFlVOworCisjIFdlIG1heSBzZWUgYW4gYW5vbWFsb3VzIGlzb2xhdGVkICd3JyBvciAneScuICBJbiB0aGF0IGNhc2UsIHdlCisjIGludGVycHJldCBpdCBhcyAnd2knIGFuZCAneXUnLCByZXNwZWN0aXZlbHkuCisKKyMgQlJFQUtTIFJPVU5EIFRSSVAgSU5URUdSSVRZCisKKyAgJGphbW9Jbml0aWFsIHt3fSA+IHwgd2k7CisgICRqYW1vSW5pdGlhbCB7eX0gPiB8IHl1OworCisjIE90aGVyd2lzZSwgaW5zZXJ0IGEgbnVsbCBjb25zb25hbnQgSUVVTkcgYmVmb3JlIHRoZSBtZWRpYWwgKHdoaWNoIGlzCisjIHN0aWxsIGFuIHVudHJhbnNsaXRlcmF0ZWQgbGF0aW4gdm93ZWwpLgorCisgICgkbGF0aW5NZWRpYWwpID4gJElFVU5HIHwgJDE7CisKKyMgQ29udmVydCBub24tamFtbyBsYXRpbiBjb25zb25hbnRzIHRvIGVxdWl2YWxlbnRzLiAgVGhlc2Ugb2NjdXIgYXMKKyMgbmVpdGhlciBpbml0aWFscyBub3IgZmluYWxzIGluIGphbW8uICAnbCcgb2NjdXJzIGFzIGEgZmluYWwsIGJ1dCBub3QKKyMgYW4gaW5pdGlhbDsgaXQgaXMgaGFuZGxlZCBhYm92ZS4gIFRoZSBmb2xsb3dpbmcgbGV0dGVycyAobGVmdCBoYW5kCisjIHNpZGUpIHdpbGwgbmV2ZXIgYmUgb3V0cHV0IGJ5IEphbW8tTGF0aW4uCisKKyAgZiA+IHwgcDsKKyAgcSA+IHwgazsKKyAgdiA+IHwgYjsKKyAgeCA+IHwga3M7CisgIHogPiB8IHM7CisKKyMgRGVsZXRlIHNlcGFyYXRvcnMgKExhdGluLUphbW8pLgorCisgICRzZXAgPiA7CisKKyMgRGVsZXRlIG51bGwgY29uc29uYW50cyAoSmFtby1MYXRpbikuICBEbyBOT1QgZGVsZXRlIG51bGwgRVUgdm93ZWxzLAorIyBzaW5jZSB0aGVzZSBtYXkgYWxzbyBvY2N1ciBpbiB0ZXh0LgorCisgIDwgJElFVU5HOworCisjLSBOLkIuIERPIE5PVCBwdXQgYW55IGZpbHRlcnMsIE5GRCwgZXRjLiBoZXJlIC0tIHRob3NlIGFyZSBhbGlhc2VkIGluCisjLSB0aGUgSU5ERVggZmlsZS4gIFRoaXMgdHJhbnNsaXRlcmF0b3IgaXMsIGJ5IGl0c2VsZiwgbm90CisjLSBpbnN0YW50aWF0ZWQuICBJdCBpcyB1c2VkIGFzIGEgcGFydCBvZiBMYXRpbi1KYW1vLCBMYXRpbi1IYW5ndWwsIG9yCisjLSBpbnZlcnNlcyB0aGVyZW9mLgorCisjIGVvZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9MYXRpbl9LYXRha2FuYS50eHQgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0xhdGluX0thdGFrYW5hLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xMWM1OTYxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9MYXRpbl9LYXRha2FuYS50eHQKQEAgLTAsMCArMSw0OTkgQEAKK++7vyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb3B5cmlnaHQgKGMpIDE5OTktMjAwMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworIyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQXR0aWMvVHJhbnNsaXRlcmF0b3JfTGF0aW5fS2F0YWthbmEudHh0LHYgJAorIyAkRGF0ZTogMjAwMS8xMi8wMyAwMjoxMDoyNiAkCisjICRSZXZpc2lvbjogMS4xOSAkCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBub3RlOiBhIGdsb2JhbCBmaWx0ZXIgaXMgbW9yZSBlZmZpY2llbnQsIGJ1dCBNVVNUIGluY2x1ZGUgYWxsIHNvdXJjZSBjaGFycworIzo6IFtcdTAwMDAtXHUwMDdFIFx1MzAwMVx1MzAwMiBcdTMwOTktXHUzMDlDIFx1MzBBMS1cdTMwRkMgXHVGRjYxLVx1RkY5RiBbOkxhdGluOl1bOkthdGFrYW5hOl0gWzpub25zcGFjaW5nIG1hcms6XV0gOworIyBNSU5JTUFMIEZJTFRFUiBHRU5FUkFURUQgRk9SOiBMYXRpbi1LYXRha2FuYQorIyMjIFdBUk5JTkcgLS0gbXVzdCBhZGQgd2lkdGggZmlsdGVyLCBib3RoIGhlcmUgYW5kIGJlbG93ISEhICMjIworOjogW1tcdTExMDAtXHUxMTEyXHUxMTFBXHUxMTIxXHUxMTYwLVx1MTE3NVx1MTFBQVx1MTFBQy1cdTExQURcdTExQjAtXHUxMUI1XHUyMTkwLVx1MjE5M1x1MjUwMlx1MjVBMFx1MjVDQlx1MzAwMC1cdTMwMDJcdTMwMEMtXHUzMDBEXHUzMDk5LVx1MzA5QVx1MzBBMS1cdTMwRURcdTMwRUZcdTMwRjItXHUzMEY0XHUzMEY3XHUzMEZBLVx1MzBGQ1x1RkYwMS1cdUZGNUVcdUZGRTAtXHVGRkU2XVsnLC5BLVphLXp+XHUwMEMwLVx1MDBENlx1MDBEOC1cdTAwRjZcdTAwRjgtXHUwMTBGXHUwMTEyLVx1MDEyNVx1MDEyOC1cdTAxMzBcdTAxMzQtXHUwMTM3XHUwMTM5LVx1MDEzRVx1MDE0My1cdTAxNDhcdTAxNEMtXHUwMTUxXHUwMTU0LVx1MDE2NVx1MDE2OC1cdTAxN0VcdTAxQTAtXHUwMUExXHUwMUFGLVx1MDFCMFx1MDFDRC1cdTAxRENcdTAxREUtXHUwMUUzXHUwMUU2LVx1MDFFRFx1MDFGMFx1MDFGNC1cdTAxRjVcdTAxRjgtXHUwMjFCXHUwMjFFLVx1MDIxRlx1MDIyNi1cdTAyMzNcdTAzMDRcdTA0RTItXHUwNEUzXHUwNEVFLVx1MDRFRlx1MUUwMC1cdTFFOTlcdTFFQTAtXHUxRUY5XHUxRkIxXHUxRkI5XHUxRkQxXHUxRkQ5XHUxRkUxXHUxRkU5XHUyMTJBLVx1MjEyQl1dIDsKKworOjogWzpMYXRpbjpdIGZ1bGx3aWR0aC1oYWxmd2lkdGggKCk7Cis6OiBORkQgKE5GQyk7Cis6OiBMb3dlciAoKTsgICAgIyB3aGVuZXZlciB0cmFuc2xpdGVyYXRpbmcgZnJvbSBjYXNlZCB0byB1bmNhc2VkIHNjcmlwdCwgaW5jbHVkZSB0aGlzCisjIDo6IE5GRCAoKSA7ICAgIyB0aGlzIHdvdWxkIGNhdGNoIHRoZSBvZGQgY2FzZXMgd2hlcmUgYSBsb3dlcmNhc2UgaXMgbm90IGluIE5GRCwgYnV0IG5vbmUgYXJlIGltcG9ydGFudCBmb3IgSmFwYW5lc2UKKworIyBVc2VzIG1vZGlmaWVkIEhlcGJ1cm4uIFNtYWxsIGNoYW5nZXMgdG8gbWFrZSAgdW5hbWJpZ3VvdXMuCisKKyMgfCBLdW5yZWktc2hpa2k6IEhlcGJ1cm4vTUhlcGJ1cm4KKyMgfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgfCBzaTogc2hpCisjIHwgc2kgfnlhOiBzaGEKKyMgfCBzaSB+eXU6IHNodQorIyB8IHNpIH55bzogc2hvCisjIHwgemk6IGppCisjIHwgemkgfnlhOiBqYQorIyB8IHppIH55dToganUKKyMgfCB6aSB+eW86IGpvCisjIHwgdGk6IGNoaQorIyB8IHRpIH55YTogY2hhCisjIHwgdGkgfnl1OiBjaHUKKyMgfCB0aSB+eXU6IGNobworIyB8IHR1OiB0c3UKKyMgfCBkaTogamkvZGppCisjIHwgZHU6IHp1L2R6dQorIyB8IGh1OiBmdQorCisjIHwgRm9yIGZvcmVpZ24gd29yZHM6CisjIHwgLS0tLS0tLS0tLS0tLS0tLS0KKyMgfCBzZSB+aSBzaQorIyB8IHNpIH5lIHNoZQorIyB8IAorIyB8IHplIH5pIHppCisjIHwgemkgfmUgamUKKyMgfCAKKyMgfCB0ZSB+aSB0aQorIyB8IHRpIH5lIGNoZQorIyB8IHRlIH51IHR1CisjIHwgCisjIHwgZGUgfmkgZGkKKyMgfCBkZSB+dSBkdQorIyB8IGRlIH5pIGRpCisjIHwgCisjIHwgaGUgfnU6IGh1CisjIHwgaHUgfmEgZmEKKyMgfCBodSB+aSBmaQorIyB8IGh1IH5lIGhlCisjIHwgaHUgfm8gaG8KKworIyBNb3N0IHNtYWxsIGZvcm1zIGFyZSBnZW5lcmF0ZWQsIGJ1dCBpZiBuZWNlc3NhcnkKKyMgZXhwbGljaXQgc21hbGwgZm9ybXMgYXJlIGdpdmVuIHdpdGggfmEsIH55YSwgZXRjLgorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFZhcmlhYmxlcworCiskdm93ZWwgPSBbYWVpb3VdIDsKKyRjb25zb25hbnQgPSBbYmNkZmdoamtsbW5wcXJzdHZ3eHl6XSA7CiskbWFjcm9uID0gXHUwMzA0IDsKKworIyBWYXJpYWJsZXMgdXNlZCBmb3IgZG91YmxlZC1jb25zb25hbnRzIHdpdGggdHN1CisKKyRrYW5hID0gW1x1MzA0MS1cdTMwOTRdIDsKKworJHZvaWNlID0gW1x1MzA5OVx1MzA5Ql07Ciskc2VtaXZvaWNlID0gW1x1MzA5QVx1MzA5Q107CisKKyRrX3N0YXJ0ID0gW+OCq+OCreOCr+OCseOCs+OBi+OBjeOBj+OBkeOBk10gOworCiskc19zdGFydCA9IFvjgrXjgrfjgrnjgrvjgr3jgZXjgZfjgZnjgZvjgZ1dIDsKKworJGpfc3RhcnQgPSBb44K344GXXSAkdm9pY2UgOworCiskdF9zdGFydCA9IFvjgr/jg4Hjg4Tjg4bjg4jjgZ/jgaHjgaTjgabjgahdIDsKKworJG5fc3RhcnQgPSBb44OK44OL44OM44ON44OO44Oz44Gq44Gr44Gs44Gt44GuXSA7CisKKyRoX3N0YXJ0ID0gW+ODj+ODkuODmOODm+OBr+OBsuOBuOOBu10gOworJGZfc3RhcnQgPSBb44OV44G1XSA7CisKKyRtX3N0YXJ0ID0gW+ODnuODn+ODoOODoeODouOBvuOBv+OCgOOCgeOCgl0gOworCiskeV9zdGFydCA9IFvjg6Tjg6bjg6jjgoTjgobjgohdIDsKKworJHJfc3RhcnQgPSBb44Op44Oq44Or44Os44Ot44KJ44KK44KL44KM44KNXSA7CisKKyR3X3N0YXJ0ID0gW+ODr+ODsOODseODsuOCj+OCkOOCkeOCkl0gOworCiskdl9zdGFydCA9IFvjg6/jg7Djg7Hjg7Jd44KZIDsKKworIyBpZiDjg7MgaXMgZm9sbG93ZWQgYnkgJG5fcXVvdGVyLCB0aGVuIGl0IG5lZWRzIGFuCisjIGFwb3N0cm9waGUgYWZ0ZXIgaXRzIHJvbWFqaSBmb3JtIHRvIGRpc2FtYmlndWF0ZSBpdC4KKyMgZS5nLiwg44OzIOOCoiAhID0gIOODiiwgc28gcmVwcmVzZW50IGFzICJuJ2EiLCBub3QgIm5hIi4KKworJG5fcXVvdGVyICA9ICBb44KiIOOCpCDjgqYg44KoIOOCqiDjg4og44OLIOODjCDjg40g44OOIOODpCDjg6Yg44OoIOODs10gOworCiskc21hbGxfeSA9IFvjg6PjgqPjg6Xjgqfjg6ddIDsKKworJGl0ZXJhdGlvbiA9IFx1MzA5RCA7CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMga2F0YWthbmEgcnVsZXMKKworIyBQdW5jdHVhdGlvbgorCisnLicgPD4g44CCOworJywnIDw+IOOAgTsKKyMgJyAnIH0gW2Etel0gPiA7ICMgZGVsZXRlIHNwYWNlcyBiZWZvcmUgbGF0aW4KKyMgJyAnIDwgW14nICdcdTMwQTAtXHUzMGZmXSB7fSBbJ1x1MzBBMC1cdTMwZmZdIDsgI2luc2VydCBzcGFjZXMgYmVmb3JlIGhpcmFnYW5hCisKKyMgSXRlcmF0aW9uIE1hcmsKKyMgQ29weSBwcmV2aW91cyBsZXR0ZXIgJiBtYXJrcworCisjIFRPRE8KKyMgfCAkMSAkMSA8ICgka2FuYSBbWzpNOl0kdm9pY2Ukc2VtaXZvaWNlXT8pICRpdGVyYXRpb24KKworIyBTcGVjaWFscyBmb3Iga2F0YWthbmEgLS0gbm90IHNoYXJlZCB3aXRoIGhpcmFnYW5hCisKK3ZhIDw+IOODr+OCmSA7Cit2aSA8PiDjg7DjgpkgOwordmUgPD4g44Ox44KZIDsKK3ZvIDw+IOODsuOCmSA7CisnfmthJyA8PiDjg7UgOworJ35rZScgPD4g44O2IDsKKworIyB+fn4gYmVnaW4gc2hhcmVkIHJ1bGVzIH5+fgorCisjc3BlY2lhbAorCit5YSA8ICd+J+ODozsKK3lpIDwgJ34n44KjIDsKK3l1IDwgJ34n44OlOworeWUgPCAnfifjgqc7Cit5byA8ICd+J+ODpzsKKworI25vcm1hbAorCithIDw+IOOCoiA7CisKK2IgfCAnficgPCDjg5Ig44KZfSAkc21hbGxfeSA7CitieSB9ICR2b3dlbCA+IOODkuOCmSB8ICd+eScgOworCitiYSA8PiDjg4/jgpkgOworYmkgPD4g44OS44KZIDsKK2J1IDw+IOODleOCmSA7CitiZSA8PiDjg5jjgpkgOworYm8gPD4g44Ob44KZIDsKKworYyB9IGkgPiB8IHMgOworYyB9IGUgPiB8IHMgOworCitkYSA8PiDjgr/jgpkgOworZGkgPD4g44OG44KZ44KjIDsKK2R1IDw+IOODhuOCmeOCpSA7CitkZSA8PiDjg4bjgpkgOworZG8gPD4g44OI44KZIDsKK2R6dSA8PiDjg4TjgpkgOworZGphIDwg44OB44KZ44OjIDsKK2RqaSd+aScgPCDjg4HjgpnjgqMgOyAjIGxpdQorZGp1IDwg44OB44KZ44OlIDsKK2RqZSA8IOODgeOCmeOCpyA7Citkam8gPCDjg4Hjgpnjg6cgOworZGppIDw+IOODgeOCmSA7CitkaiAgfSAkdm93ZWwgPiDjg4HjgpkgfCAnfnknIDsKKworIyBUT0RPOiBRVUVTVElPTjogdXNlIMS1xLTFvMW7IGluc3RlYWQgb2YgZGosIGR6CisKK2NoYSA8IOODgeODoyA7CitjaGknfmknIDwg44OB44KjIDsgIyBsaXUKK2NodSA8IOODgeODpSA7CitjaGUgPCDjg4HjgqcgOworY2hvIDwg44OB44OnIDsKK2NoaSA8PiDjg4EgOworY2ggfSAkdm93ZWwgPiDjg4EgfCAnfnknIDsKKworZSA8PiDjgqggOworCitnIHwgJ34nIDwg44Kt44KZfSAkc21hbGxfeSA7CitneSAgfSAkdm93ZWwgPiDjgq3jgpkgfCAnfnknIDsKKworZ2EgPD4g44Kr44KZIDsKK2dpIDw+IOOCreOCmSA7CitndSA8PiDjgq/jgpkgOworZ2UgPD4g44Kx44KZIDsKK2dvIDw+IOOCs+OCmSA7CisKK2kgPD4g44KkIDsKKworIyBqICB9ICR2b3dlbCA+IOOCt+OCmSB8ICd+eScgOworCitqYSA8PiDjgrfjgpnjg6MgOworamknfmknIDwg44K344KZ44KjIDsgIyBsaXUKK2p1IDw+IOOCt+OCmeODpSA7CitqZSA8PiDjgrfjgpnjgqcgOworam8gPD4g44K344KZ44OnIDsKK2ppIDw+IOOCt+OCmSA7CisKK2sgfCAnficgPCDjgq19ICRzbWFsbF95IDsKK2t5ICB9ICR2b3dlbCA+IOOCrSB8ICd+eScgOworCitrYSA8PiDjgqsgOwora2kgPD4g44KtIDsKK2t1IDw+IOOCryA7CitrZSA8PiDjgrEgOwora28gPD4g44KzIDsKKworbSB8ICd+JyA8IOODn30gJHNtYWxsX3kgOworbXkgIH0gJHZvd2VsID4g44OfIHwgJ355JyA7CisKK21hIDw+IOODniA7CittaSA8PiDjg58gOworbXUgPD4g44OgIDsKK21lIDw+IOODoSA7CittbyA8PiDjg6IgOworCittIH0gW3BiZnZdID4g44OzIDsKKworbiB8ICd+JyA8IOODiyB9ICRzbWFsbF95IDsKK255ICB9ICR2b3dlbCA+IOODiyB8ICd+eScgOworCituYSA8PiDjg4ogOworbmkgPD4g44OLIDsKK251IDw+IOODjCA7CituZSA8PiDjg40gOworbm8gPD4g44OOIDsKKworbyA8PiDjgqogOworCitwIHwgJ34nIDwg44OS44KaIH0gJHNtYWxsX3kgOworcHkgIH0gJHZvd2VsID4g44OS44KaIHwgJ355JyA7CisKK3BhIDw+IOODj+OCmiA7CitwaSA8PiDjg5LjgpogOworcHUgPD4g44OV44KaIDsKK3BlIDw+IOODmOOCmiA7CitwbyA8PiDjg5vjgpogOworCitoIHwgJ34nIDwg44OSIH0gJHNtYWxsX3kgOworaHkgIH0gJHZvd2VsID4g44OSIHwgJ355JyA7CisKK2hhIDw+IOODjyA7CitoaSA8PiDjg5IgOworaHUgPD4g44OY44KlIDsKK2hlIDw+IOODmCA7CitobyA8PiDjg5sgOworCisjIGYgfCAnficgPCDjg5UgfSAkc21hbGxfeSA7CisjIGYgfSAkdm93ZWwgPiDjg5UgfCAnficgOworCitmYSA8PiDjg5XjgqEgOworZmkgPD4g44OV44KjIDsKK2ZlIDw+IOODleOCpyA7CitmbyA8PiDjg5XjgqkgOworZnUgPD4g44OVIDsKKworciB8ICd+JyA8IOODqiB9ICRzbWFsbF95IDsKK3J5ICB9ICR2b3dlbCA+IOODqiB8ICd+eScgOworCityYSA8PiDjg6kgOworcmkgPD4g44OqIDsKK3J1IDw+IOODqyA7CityZSA8PiDjg6wgOworcm8gPD4g44OtIDsKKworemEgPD4g44K144KZIDsKK3ppIDw+IOOCu+OCmeOCoyA7Cit6dSA8PiDjgrnjgpkgOworemUgPD4g44K744KZIDsKK3pvIDw+IOOCveOCmSA7CisKK3NhIDw+IOOCtSA7CitzaSA8PiDjgrvjgqMgOworc3UgPD4g44K5IDsKK3NlIDw+IOOCuyA7CitzbyA8PiDjgr0gOworCitzaGEgPCDjgrfjg6MgOworc2hpJ35pJyA8IOOCt+OCoyA7ICMgbGl1CitzaHUgPCDjgrfjg6UgOworc2hlIDwg44K344KnIDsKK3NobyA8IOOCt+ODpyA7CitzaGkgPD4g44K3IDsKK3NoIH0gJHZvd2VsID4g44K3IHwgJ355JyA7CisKK3RhIDw+IOOCvyA7Cit0aSA8PiDjg4bjgqMgOwordHUgPD4g44OG44KlIDsKK3RlIDw+IOODhiA7Cit0byA8PiDjg4ggOworCit0c3UgPD4g44OEIDsKKworIyB2ICB9ICR2b3dlbCA+IOOCpuOCmSB8ICd+JyA7CisKKyMndn5hJyA8IOOCpuOCmeOCoSA7ICMgbGl1CisjJ3Z+aScgPCDjgqbjgpnjgqMgOyAjIGxpdQorIyd2fmUnIDwg44Km44KZ44KnIDsgIyBsaXUKKyMndn5vJyA8IOOCpuOCmeOCqSA7ICMgbGl1Cit2dSA8PiDjgqbjgpkgOworCit1IDw+IOOCpiA7CisKKyMgdyAgfSAkdm93ZWwgPiDjgqYgfCAnficgOworCit3YSA8PiDjg68gOword2kgPD4g44OwIDsKK3d1ID4g44KmIDsKK3dlIDw+IOODsSA7Cit3byA8PiDjg7IgOworCit5YSA8PiDjg6QgOworeWkgPiDjgqQgOworeXUgPD4g44OmIDsKK3llID4g44KoIDsKK3lvIDw+IOODqCA7CisKKyMgZG91YmxlIGNvbnNvbmFudHMKKworI3NwZWNpYWxzCitzIH0gc2ggPiDjg4MgOwordCB9IGNoID4g44ODIDsKKworI3ZvaWNlZAorCitqIH0gaiA8PiDjg4MgfSAkal9zdGFydCA7CitiIH0gYiA8PiDjg4MgfSBbJGhfc3RhcnQkZl9zdGFydF0gJHZvaWNlOworZCB9IGQgPD4g44ODIH0gJHRfc3RhcnQgJHZvaWNlOworZyB9IGcgPD4g44ODIH0gJGtfc3RhcnQgJHZvaWNlOworcCB9IHAgPD4g44ODIH0gWyRoX3N0YXJ0JGZfc3RhcnRdICRzZW1pdm9pY2U7CisjIHYgfSB2IDw+IOODgyB9IFvjg6/jg7Djgqbjg7Hjg7LjgYZdICAkdm9pY2UgOworeiB9IHogPD4g44ODIH0gJHNfc3RhcnQgJHZvaWNlOwordiB9IHYgPD4g44ODIH0gJHZfc3RhcnQ7CisKKyMgbm9ybWFsCisKK2sgfSBrIDw+IOODgyB9ICRrX3N0YXJ0IDsKK20gfSBtIDw+IOODgyB9ICRtX3N0YXJ0IDsKK24gfSBuIDw+IOODgyB9ICRuX3N0YXJ0IDsKK2ggfSBoIDw+IOODgyB9ICRoX3N0YXJ0IDsKK2YgfSBmIDw+IOODgyB9ICRmX3N0YXJ0IDsKK3IgfSByIDw+IOODgyB9ICRyX3N0YXJ0IDsKK3QgfSB0IDw+IOODgyB9ICR0X3N0YXJ0IDsKK3MgfSBzIDw+IOODgyB9ICRzX3N0YXJ0IDsKKwordyB9IHcgIDw+IOODgyB9ICR3X3N0YXJ0OworeSB9IHkgPD4g44ODIH0gJHlfc3RhcnQ7CisKKyMgY29tcGxldGVuZXNzIAoreCB9IHggPiDjg4MgOworYyB9IGsgPiDjg4MgOworYyB9IGMgPiDjg4MgOworYyB9IHEgPiDjg4MgOworbCB9IGwgPiDjg4MgOworcSB9IHEgPiDjg4MgOworIyB5IH0geSA+IOODgyA7CisjIHcgfSB3ID4g44ODIDsKKworIyBwcm9sb25nZWQgdm93ZWwgbWFyay4gdGhpcyBpbmRpY2F0ZXMgYSBkb3VibGluZyBvZgorIyB0aGUgcHJlY2VkaW5nIHZvd2VsIHNvdW5kCisKKyNhIDwgYSB7IOODvCA7ICMgbGl1CisjZSA8IGUgeyDjg7wgOyAjIGxpdQorI2kgPCBpIHsg44O8IDsgIyBsaXUKKyNvIDwgbyB7IOODvCA7ICMgbGl1CisjdSA8IHUgeyDjg7wgOyAjIGxpdQorCiskbWFjcm9uIDw+IOODvCA7CisKKyMgc21hbGwgZm9ybXMKKworJ35hJyA8PiDjgqEgOworJ35pJyA8PiDjgqMgOworJ351JyA8PiDjgqUgOworJ35lJyA8PiDjgqcgOworJ35vJyA8PiDjgqkgOworJ350c3UnIDw+IOODgyA7CisnfndhJyA8PiDjg64gOworJ355YScgPD4g44OjIDsKKyd+eWknID4g44KjIDsKKyd+eXUnIDw+IOODpSA7CisnfnllJyA+IOOCpyA7CisnfnlvJyA8PiDjg6cgOworCisjIGl0ZXJhdGlvbiBtYXJrcworIyBUT0RPOiBtYWtlIG1vcmUgYWNjdXJhdGUKKworaiAkMSA8IHNoICh5KiAkdm93ZWwpIHvjg70kdm9pY2UgOworZGogJDEgPCBjaCAoeSogJHZvd2VsKSB744O9JHZvaWNlIDsKK2R6ICQxIDwgdHMgKHkqICR2b3dlbCkge+ODvSR2b2ljZSA7CisKK2cgJDEgPCBrICh5KiAkdm93ZWwpIHvjg70kdm9pY2UgOworeiAkMSA8IHMgKHkqICR2b3dlbCkge+ODvSR2b2ljZSA7CitkICQxIDwgdCAoeSogJHZvd2VsKSB744O9JHZvaWNlIDsKK2ggJDEgPCBiICh5KiAkdm93ZWwpIHvjg70kdm9pY2UgOwordiAkMSA8IHcgKHkqICR2b3dlbCkge+ODvSR2b2ljZSA7CisKK3NoICQxIDwgc2ggKHkqICR2b3dlbCkge+ODvSR2b2ljZSA7CitqICQxIDwgaiAoeSogJHZvd2VsKSB744O9JHZvaWNlIDsKK2NoICQxIDwgY2ggKHkqICR2b3dlbCkge+ODvSR2b2ljZSA7CitkaiAkMSA8IGRqKHkqICR2b3dlbCkge+ODvSR2b2ljZSA7Cit0cyAkMSA8IHRzICh5KiAkdm93ZWwpIHvjg70kdm9pY2UgOworZHogJDEgPCBkeiAoeSogJHZvd2VsKSB744O9JHZvaWNlIDsKKworJDEgPCAoJGNvbnNvbmFudCB5KiAkdm93ZWwpIHvjg70kdm9pY2U/IDsKKyQxIDwgKC4pIHvjg70gJHZvaWNlPyA7ICMgb3RoZXJ3aXNlIHJlcGVhdCBsYXN0IGNoYXJhY3RlcgorIDwg44O9ICR2b2ljZT8gOyAjIGRlbGV0ZSBpZiBubyBjaGFyYWN0ZXJzIGZvdW5kCisKKyMgaC0gcnVsZTogbGVuZ3RoZW5zIHZvd2VsIGlmIG5vdCBmb2xsb3dlZCBieSBhIHZvd2VsCisKK1thZWlvdV0gfSBoID4g44O8IDsKKworIyBvbmUtd2F5IGxhdGluLSA+IGthbmEgcnVsZXMuIHRoZXNlIGRvIG5vdCBvY2N1ciBpbgorIyB3ZWxsLWZvcm1lZCByb21hamkgcmVwcmVzZW50aW5nIGFjdHVhbCBqYXBhbmVzZSB0ZXh0LgorIyB0aGVpciBwdXJwb3NlIGlzIHRvIG1ha2UgYWxsIHJvbWFqaSBtYXAgdG8ga2FuYSBvZgorIyBzb21lIHNvcnQuCisKKyMgdGhlIGZvbGxvd2luZyBhcmUgbm90IHJlYWxseSBuZWNlc3NhcnksIGJ1dCBwcm9kdWNlCisjIHNsaWdodGx5IG1vcmUgbmF0dXJhbCByZXN1bHRzLgorCitjeSA+IOOCu+OCoyA7CitkeSA+IOODhuOCmeOCoyA7CitoeSA+IOODkiA7CitzeSA+IOOCu+OCoyA7Cit0eSA+IOODhuOCoyA7Cit6eSA+IOOCu+OCmeOCoyA7CisKK2ggPiDjg5ggOworCisjIGlzb2xhdGVkIGNvbnNvbmFudHMgbGlzdGVkIGhlcmUgc28gYXMgbm90IHRvIG1hc2sKKyMgbG9uZ2VyIHJ1bGVzIGFib3ZlLgorCitjaCA+IOODgTsKK3NoID4g44K3IDsKK2R6ID4g44OE44KZIDsKK2RqID4g44OB44KZOworCitiID4g44OV44KZIDsKK2QgPiDjg4bjgpkgOworZyA+IOOCr+OCmSA7CitrID4g44KvIDsKK20gPiDjg6AgOworbicnIDwg44OzIH0gJG5fcXVvdGVyIDsKK24gPD4g44OzIDsKK3AgPiDjg5XjgpogOworciA+IOODqyA7CitzID4g44K5IDsKK3QgPiDjg4YgOworeSA+IOOCpCA7Cit6ID4g44K544KZIDsKK3YgPiDjgqbjgpkgOworCitmID4g44OVOworaiAgPiDjgrfjgpk7Cit3ID4g44KmOworCivDnyA+IHwgc3MgOworw6YgPiB8IGUgOworw7AgPiB8IGQgOworw7ggPiB8IHUgOworw74gPiB8IHRoIDsKKworIyBzaW1wbGUgc3Vic3RpdHV0aW9ucyB1c2luZyBiYWNrdXAKKworYyA+IHwgayA7CitsID4gfCByIDsKK3EgPiB8IGsgOworeCA+IHwga3MgOworCisjIH5+fiBFTkQgc2hhcmVkIHJ1bGVzIH5+fgorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEZpbmFsIGNsZWFudXAKKworJ34nID4gOyAjIGRlbGV0ZSBzdHJheSB0aWxkZXMgYmV0d2VlbiBsZXR0ZXJzCitbOkthdGFrYW5hOl0geyAnJyB9IFs6TGF0aW46XSA+IDsgIyBkZWxldGUgc3RyYXkgcXVvdGVzIGJldHdlZW4gbGV0dGVycworIyBbXHUwMkJFWzpOb25zcGFjaW5nIE1hcms6XS1bXHUzMDk5LVx1MzA5Q11dID4gOyAjIGRlbGV0ZSBhbnkgbm9uLXNwYWNpbmcgbWFya3MgdGhhdCB3ZSBkaWRuJ3QgdXNlCisKKzo6IE5GQyAoTkZEKSA7IAorOjogKFs6S2F0YWthbmE6XSBoYWxmd2lkdGgtZnVsbHdpZHRoKTsKKworIyBub3RlOiBhIGdsb2JhbCBmaWx0ZXIgaXMgbW9yZSBlZmZpY2llbnQsIGJ1dCBNVVNUIGluY2x1ZGUgYWxsIHNvdXJjZSBjaGFycyEhCisjOjogKFtcdTAwMDAtXHUwMDdFIFx1MzAwMVx1MzAwMiBcdTMwOTktXHUzMDlDIFx1MzBBMS1cdTMwRkMgXHVGRjYxLVx1RkY5RiBbOkxhdGluOl1bOkthdGFrYW5hOl0gWzpub25zcGFjaW5nIG1hcms6XV0pOworIyBNSU5JTUFMIEZJTFRFUiBHRU5FUkFURUQgRk9SOiBMYXRpbi1LYXRha2FuYSBCQUNLV0FSRAorOjogKCBbW1wgLX5cdTAwQTItXHUwMEEzXHUwMEE1LVx1MDBBNlx1MDBBQ1x1MDMwNFx1MjBBOVx1RkY2MS1cdUZGQkVcdUZGQzItXHVGRkM3XHVGRkNBLVx1RkZDRlx1RkZEMi1cdUZGRDdcdUZGREEtXHVGRkRDXHVGRkU4LVx1RkZFRV1bflx1MzAwMS1cdTMwMDJcdTMwNENcdTMwNEVcdTMwNTBcdTMwNTJcdTMwNTRcdTMwNTZcdTMwNThcdTMwNUFcdTMwNUNcdTMwNUVcdTMwNjBcdTMwNjJcdTMwNjVcdTMwNjdcdTMwNjlcdTMwNzAtXHUzMDcxXHUzMDczLVx1MzA3NFx1MzA3Ni1cdTMwNzdcdTMwNzktXHUzMDdBXHUzMDdDLVx1MzA3RFx1MzA5NFx1MzA5OS1cdTMwOUJcdTMwOUVcdTMwQTEtXHUzMEZBXHUzMEZDLVx1MzBGRV1dICkgOworCisjIGVvZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9NYWxheWFsYW1fSW50ZXJJbmRpYy50eHQgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX01hbGF5YWxhbV9JbnRlckluZGljLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zNzllZmUwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9NYWxheWFsYW1fSW50ZXJJbmRpYy50eHQKQEAgLTAsMCArMSw4OSBAQAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvcHlyaWdodCAoYykgMTk5OS0yMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisjIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9BdHRpYy9UcmFuc2xpdGVyYXRvcl9NYWxheWFsYW1fSW50ZXJJbmRpYy50eHQsdiAkCisjICREYXRlOiAyMDAyLzAzLzAyIDAwOjI3OjI2ICQKKyMgJFJldmlzaW9uOiAxLjUgJAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgTWFsYXlhbGFtLUludGVySW5kaWMKKyM6OiBORkQgKE5GQykgOworCitcdTBEMDI+XHVFMDAyOyAgICAgICMgU0lHTiBBTlVTVkFSQQorXHUwRDAzPlx1RTAwMzsgICAgICAjIFNJR04gVklTQVJHQQorXHUwRDA1Plx1RTAwNTsgICAgICAjIExFVFRFUiBBCitcdTBEMDY+XHVFMDA2OyAgICAgICMgTEVUVEVSIEFBCitcdTBEMDc+XHVFMDA3OyAgICAgICMgTEVUVEVSIEkKK1x1MEQwOD5cdUUwMDg7ICAgICAgIyBMRVRURVIgSUkKK1x1MEQwOT5cdUUwMDk7ICAgICAgIyBMRVRURVIgVQorXHUwRDBBPlx1RTAwQTsgICAgICAjIExFVFRFUiBVVQorXHUwRDBCPlx1RTAwQjsgICAgICAjIExFVFRFUiBWT0NBTElDIFIKK1x1MEQwQz5cdUUwMEM7ICAgICAgIyBMRVRURVIgVk9DQUxJQyBMCitcdTBEMEU+XHVFMDBFOyAgICAgICMgTEVUVEVSIEUKK1x1MEQwRj5cdUUwMEY7ICAgICAgIyBMRVRURVIgRUUKK1x1MEQxMD5cdUUwMTA7ICAgICAgIyBMRVRURVIgQUkKK1x1MEQxMj5cdUUwMTI7ICAgICAgIyBMRVRURVIgTworXHUwRDEzPlx1RTAxMzsgICAgICAjIExFVFRFUiBPTworXHUwRDE0Plx1RTAxNDsgICAgICAjIExFVFRFUiBBVQorXHUwRDE1Plx1RTAxNTsgICAgICAjIExFVFRFUiBLQQorXHUwRDE2Plx1RTAxNjsgICAgICAjIExFVFRFUiBLSEEKK1x1MEQxNz5cdUUwMTc7ICAgICAgIyBMRVRURVIgR0EKK1x1MEQxOD5cdUUwMTg7ICAgICAgIyBMRVRURVIgR0hBCitcdTBEMTk+XHVFMDE5OyAgICAgICMgTEVUVEVSIE5HQQorXHUwRDFBPlx1RTAxQTsgICAgICAjIExFVFRFUiBDQQorXHUwRDFCPlx1RTAxQjsgICAgICAjIExFVFRFUiBDSEEKK1x1MEQxQz5cdUUwMUM7ICAgICAgIyBMRVRURVIgSkEKK1x1MEQxRD5cdUUwMUQ7ICAgICAgIyBMRVRURVIgSkhBCitcdTBEMUU+XHVFMDFFOyAgICAgICMgTEVUVEVSIE5ZQQorXHUwRDFGPlx1RTAxRjsgICAgICAjIExFVFRFUiBUVEEKK1x1MEQyMD5cdUUwMjA7ICAgICAgIyBMRVRURVIgVFRIQQorXHUwRDIxPlx1RTAyMTsgICAgICAjIExFVFRFUiBEREEKK1x1MEQyMj5cdUUwMjI7ICAgICAgIyBMRVRURVIgRERIQQorXHUwRDIzPlx1RTAyMzsgICAgICAjIExFVFRFUiBOTkEKK1x1MEQyND5cdUUwMjQ7ICAgICAgIyBMRVRURVIgVEEKK1x1MEQyNT5cdUUwMjU7ICAgICAgIyBMRVRURVIgVEhBCitcdTBEMjY+XHVFMDI2OyAgICAgICMgTEVUVEVSIERBCitcdTBEMjc+XHVFMDI3OyAgICAgICMgTEVUVEVSIERIQQorXHUwRDI4Plx1RTAyODsgICAgICAjIExFVFRFUiBOQQorXHUwRDJBPlx1RTAyQTsgICAgICAjIExFVFRFUiBQQQorXHUwRDJCPlx1RTAyQjsgICAgICAjIExFVFRFUiBQSEEKK1x1MEQyQz5cdUUwMkM7ICAgICAgIyBMRVRURVIgQkEKK1x1MEQyRD5cdUUwMkQ7ICAgICAgIyBMRVRURVIgQkhBCitcdTBEMkU+XHVFMDJFOyAgICAgICMgTEVUVEVSIE1BCitcdTBEMkY+XHVFMDJGOyAgICAgICMgTEVUVEVSIFlBCitcdTBEMzA+XHVFMDMwOyAgICAgICMgTEVUVEVSIFJBCitcdTBEMzE+XHVFMDMxOyAgICAgICMgTEVUVEVSIFJSQQorXHUwRDMyPlx1RTAzMjsgICAgICAjIExFVFRFUiBMQQorXHUwRDMzPlx1RTAzMzsgICAgICAjIExFVFRFUiBMTEEKK1x1MEQzND5cdUUwMzQ7ICAgICAgIyBMRVRURVIgTExMQQorXHUwRDM1Plx1RTAzNTsgICAgICAjIExFVFRFUiBWQQorXHUwRDM2Plx1RTAzNjsgICAgICAjIExFVFRFUiBTSEEKK1x1MEQzNz5cdUUwMzc7ICAgICAgIyBMRVRURVIgU1NBCitcdTBEMzg+XHVFMDM4OyAgICAgICMgTEVUVEVSIFNBCitcdTBEMzk+XHVFMDM5OyAgICAgICMgTEVUVEVSIEhBCitcdTBEM0U+XHVFMDNFOyAgICAgICMgVk9XRUwgU0lHTiBBQQorXHUwRDNGPlx1RTAzRjsgICAgICAjIFZPV0VMIFNJR04gSQorXHUwRDQwPlx1RTA0MDsgICAgICAjIFZPV0VMIFNJR04gSUkKK1x1MEQ0MT5cdUUwNDE7ICAgICAgIyBWT1dFTCBTSUdOIFUKK1x1MEQ0Mj5cdUUwNDI7ICAgICAgIyBWT1dFTCBTSUdOIFVVCitcdTBENDM+XHVFMDQzOyAgICAgICMgVk9XRUwgU0lHTiBWT0NBTElDIFIKK1x1MEQ0Nj5cdUUwNDY7ICAgICAgIyBWT1dFTCBTSUdOIEUKK1x1MEQ0Nz5cdUUwNDc7ICAgICAgIyBWT1dFTCBTSUdOIEVFCitcdTBENDg+XHVFMDQ4OyAgICAgICMgVk9XRUwgU0lHTiBBSQorXHUwRDREPlx1RTA0RDsgICAgICAjIFNJR04gVklSQU1BCitcdTBENTc+XHVFMDU3OyAgICAgICMgQVUgTEVOR1RIIE1BUksKK1x1MEQ2MD5cdUUwNjA7ICAgICAgIyBMRVRURVIgVk9DQUxJQyBSUgorXHUwRDYxPlx1RTA2MTsgICAgICAjIExFVFRFUiBWT0NBTElDIExMCitcdTBENjY+XHVFMDY2OyAgICAgICMgRElHSVQgWkVSTworXHUwRDY3Plx1RTA2NzsgICAgICAjIERJR0lUIE9ORQorXHUwRDY4Plx1RTA2ODsgICAgICAjIERJR0lUIFRXTworXHUwRDY5Plx1RTA2OTsgICAgICAjIERJR0lUIFRIUkVFCitcdTBENkE+XHVFMDZBOyAgICAgICMgRElHSVQgRk9VUgorXHUwRDZCPlx1RTA2QjsgICAgICAjIERJR0lUIEZJVkUKK1x1MEQ2Qz5cdUUwNkM7ICAgICAgIyBESUdJVCBTSVgKK1x1MEQ2RD5cdUUwNkQ7ICAgICAgIyBESUdJVCBTRVZFTgorXHUwRDZFPlx1RTA2RTsgICAgICAjIERJR0lUIEVJR0hUCitcdTBENkY+XHVFMDZGOyAgICAgICMgRElHSVQgTklORQorIyAgICA6OiBORkMgKE5GRCkgOworIyBlb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfT3JpeWFfSW50ZXJJbmRpYy50eHQgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX09yaXlhX0ludGVySW5kaWMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgwODJjODUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX09yaXlhX0ludGVySW5kaWMudHh0CkBAIC0wLDAgKzEsOTUgQEAKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb3B5cmlnaHQgKGMpIDE5OTktMjAwMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworIyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQXR0aWMvVHJhbnNsaXRlcmF0b3JfT3JpeWFfSW50ZXJJbmRpYy50eHQsdiAkCisjICREYXRlOiAyMDAyLzAzLzAyIDAwOjI3OjI3ICQKKyMgJFJldmlzaW9uOiAxLjUgJAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgT3JpeWEtSW50ZXJJbmRpYworIzo6IE5GRCAoTkZDKSA7CisjXHUwQjIxXHUwQjNDPlx1RTA1QzsjIExFVFRFUiBSUkEKKyNcdTBCMjJcdTBCM0M+XHVFMDVEOyMgTEVUVEVSIFJIQQorXHUwQjQ3XHUwQjU2Plx1RTA0ODsjIFZPV0VMIFNJR04gQUkKK1x1MEI0N1x1MEIzRT5cdUUwNEI7IyBWT1dFTCBTSUdOIE8KK1x1MEI0N1x1MEI1Nz5cdUUwNEM7IyBWT1dFTCBTSUdOIEFVCisKK1x1MEIwMT5cdUUwMDE7ICAgICAgIyBTSUdOIENBTkRSQUJJTkRVCitcdTBCMDI+XHVFMDAyOyAgICAgICMgU0lHTiBBTlVTVkFSQQorXHUwQjAzPlx1RTAwMzsgICAgICAjIFNJR04gVklTQVJHQQorXHUwQjA1Plx1RTAwNTsgICAgICAjIExFVFRFUiBBCitcdTBCMDY+XHVFMDA2OyAgICAgICMgTEVUVEVSIEFBCitcdTBCMDc+XHVFMDA3OyAgICAgICMgTEVUVEVSIEkKK1x1MEIwOD5cdUUwMDg7ICAgICAgIyBMRVRURVIgSUkKK1x1MEIwOT5cdUUwMDk7ICAgICAgIyBMRVRURVIgVQorXHUwQjBBPlx1RTAwQTsgICAgICAjIExFVFRFUiBVVQorXHUwQjBCPlx1RTAwQjsgICAgICAjIExFVFRFUiBWT0NBTElDIFIKK1x1MEIwQz5cdUUwMEM7ICAgICAgIyBMRVRURVIgVk9DQUxJQyBMCitcdTBCMEY+XHVFMDBGOyAgICAgICMgTEVUVEVSIEUKK1x1MEIxMD5cdUUwMTA7ICAgICAgIyBMRVRURVIgQUkKK1x1MEIxMz5cdUUwMTM7ICAgICAgIyBMRVRURVIgTworXHUwQjE0Plx1RTAxNDsgICAgICAjIExFVFRFUiBBVQorXHUwQjE1Plx1RTAxNTsgICAgICAjIExFVFRFUiBLQQorXHUwQjE2Plx1RTAxNjsgICAgICAjIExFVFRFUiBLSEEKK1x1MEIxNz5cdUUwMTc7ICAgICAgIyBMRVRURVIgR0EKK1x1MEIxOD5cdUUwMTg7ICAgICAgIyBMRVRURVIgR0hBCitcdTBCMTk+XHVFMDE5OyAgICAgICMgTEVUVEVSIE5HQQorXHUwQjFBPlx1RTAxQTsgICAgICAjIExFVFRFUiBDQQorXHUwQjFCPlx1RTAxQjsgICAgICAjIExFVFRFUiBDSEEKK1x1MEIxQz5cdUUwMUM7ICAgICAgIyBMRVRURVIgSkEKK1x1MEIxRD5cdUUwMUQ7ICAgICAgIyBMRVRURVIgSkhBCitcdTBCMUU+XHVFMDFFOyAgICAgICMgTEVUVEVSIE5ZQQorXHUwQjFGPlx1RTAxRjsgICAgICAjIExFVFRFUiBUVEEKK1x1MEIyMD5cdUUwMjA7ICAgICAgIyBMRVRURVIgVFRIQQorXHUwQjIxPlx1RTAyMTsgICAgICAjIExFVFRFUiBEREEKK1x1MEIyMj5cdUUwMjI7ICAgICAgIyBMRVRURVIgRERIQQorXHUwQjIzPlx1RTAyMzsgICAgICAjIExFVFRFUiBOTkEKK1x1MEIyND5cdUUwMjQ7ICAgICAgIyBMRVRURVIgVEEKK1x1MEIyNT5cdUUwMjU7ICAgICAgIyBMRVRURVIgVEhBCitcdTBCMjY+XHVFMDI2OyAgICAgICMgTEVUVEVSIERBCitcdTBCMjc+XHVFMDI3OyAgICAgICMgTEVUVEVSIERIQQorXHUwQjI4Plx1RTAyODsgICAgICAjIExFVFRFUiBOQQorXHUwQjJBPlx1RTAyQTsgICAgICAjIExFVFRFUiBQQQorXHUwQjJCPlx1RTAyQjsgICAgICAjIExFVFRFUiBQSEEKK1x1MEIyQz5cdUUwMkM7ICAgICAgIyBMRVRURVIgQkEKK1x1MEIyRD5cdUUwMkQ7ICAgICAgIyBMRVRURVIgQkhBCitcdTBCMkU+XHVFMDJFOyAgICAgICMgTEVUVEVSIE1BCitcdTBCMkY+XHVFMDJGOyAgICAgICMgTEVUVEVSIFlBCitcdTBCMzA+XHVFMDMwOyAgICAgICMgTEVUVEVSIFJBCitcdTBCMzI+XHVFMDMyOyAgICAgICMgTEVUVEVSIExBCitcdTBCMzM+XHVFMDMzOyAgICAgICMgTEVUVEVSIExMQQorXHUwQjM2Plx1RTAzNjsgICAgICAjIExFVFRFUiBTSEEKK1x1MEIzNz5cdUUwMzc7ICAgICAgIyBMRVRURVIgU1NBCitcdTBCMzg+XHVFMDM4OyAgICAgICMgTEVUVEVSIFNBCitcdTBCMzk+XHVFMDM5OyAgICAgICMgTEVUVEVSIEhBCitcdTBCM0M+XHVFMDNDOyAgICAgICMgU0lHTiBOVUtUQQorXHUwQjNEPlx1RTAzRDsgICAgICAjIFNJR04gQVZBR1JBSEEKK1x1MEIzRT5cdUUwM0U7ICAgICAgIyBWT1dFTCBTSUdOIEFBCitcdTBCM0Y+XHVFMDNGOyAgICAgICMgVk9XRUwgU0lHTiBJCitcdTBCNDA+XHVFMDQwOyAgICAgICMgVk9XRUwgU0lHTiBJSQorXHUwQjQxPlx1RTA0MTsgICAgICAjIFZPV0VMIFNJR04gVQorXHUwQjQyPlx1RTA0MjsgICAgICAjIFZPV0VMIFNJR04gVVUKK1x1MEI0Mz5cdUUwNDM7ICAgICAgIyBWT1dFTCBTSUdOIFZPQ0FMSUMgUgorXHUwQjQ3Plx1RTA0NzsgICAgICAjIFZPV0VMIFNJR04gRQorIworXHUwQjREPlx1RTA0RDsgICAgICAjIFNJR04gVklSQU1BCitcdTBCNTY+XHVFMDU2OyAgICAgICMgQUkgTEVOR1RIIE1BUksKK1x1MEI1Nz5cdUUwNTc7ICAgICAgIyBBVSBMRU5HVEggTUFSSworIworXHUwQjVGPlx1RTA1RjsgICAgICAjIExFVFRFUiBZWUEKK1x1MEI2MD5cdUUwNjA7ICAgICAgIyBMRVRURVIgVk9DQUxJQyBSUgorXHUwQjYxPlx1RTA2MTsgICAgICAjIExFVFRFUiBWT0NBTElDIExMCitcdTBCNjY+XHVFMDY2OyAgICAgICMgRElHSVQgWkVSTworXHUwQjY3Plx1RTA2NzsgICAgICAjIERJR0lUIE9ORQorXHUwQjY4Plx1RTA2ODsgICAgICAjIERJR0lUIFRXTworXHUwQjY5Plx1RTA2OTsgICAgICAjIERJR0lUIFRIUkVFCitcdTBCNkE+XHVFMDZBOyAgICAgICMgRElHSVQgRk9VUgorXHUwQjZCPlx1RTA2QjsgICAgICAjIERJR0lUIEZJVkUKK1x1MEI2Qz5cdUUwNkM7ICAgICAgIyBESUdJVCBTSVgKK1x1MEI2RD5cdUUwNkQ7ICAgICAgIyBESUdJVCBTRVZFTgorXHUwQjZFPlx1RTA2RTsgICAgICAjIERJR0lUIEVJR0hUCitcdTBCNkY+XHVFMDZGOyAgICAgICMgRElHSVQgTklORQorXHUwQjcwPlx1RTA3MDsgICAgICAjIElTU0hBUgorIyAgICA6OiBORkMgKE5GRCkgOworIyBlb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfVGFtaWxfSW50ZXJJbmRpYy50eHQgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX1RhbWlsX0ludGVySW5kaWMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBhYjlmNDAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX1RhbWlsX0ludGVySW5kaWMudHh0CkBAIC0wLDAgKzEsODAgQEAKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb3B5cmlnaHQgKGMpIDE5OTktMjAwMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworIyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQXR0aWMvVHJhbnNsaXRlcmF0b3JfVGFtaWxfSW50ZXJJbmRpYy50eHQsdiAkCisjICREYXRlOiAyMDAyLzA3LzI1IDIxOjIwOjI2ICQKKyMgJFJldmlzaW9uOiAxLjggJAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgVGFtaWwtSW50ZXJJbmRpYworIzo6IE5GRCAoTkZDKSA7CisKK1x1MEJDNlx1MEJCRT5cdUUwNEE7IyBWT1dFTCBTSUdOIE8KK1x1MEJDN1x1MEJCRT5cdUUwNEI7IyBWT1dFTCBTSUdOIE9PCitcdTBCQzZcdTBCRDc+XHVFMDRDOyMgVk9XRUwgU0lHTiBBVQorXHUwQjkyXHUwQkQ3Plx1RTAxNDsjIExFVFRFUiBBVQorCitcdTBCODI+XHVFMDAyOyAgICAgICMgU0lHTiBBTlVTVkFSQQorXHUwQjgzPlx1RTAwMzsgICAgICAjIFNJR04gVklTQVJHQQorXHUwQjg1Plx1RTAwNTsgICAgICAjIExFVFRFUiBBCitcdTBCODY+XHVFMDA2OyAgICAgICMgTEVUVEVSIEFBCitcdTBCODc+XHVFMDA3OyAgICAgICMgTEVUVEVSIEkKK1x1MEI4OD5cdUUwMDg7ICAgICAgIyBMRVRURVIgSUkKK1x1MEI4OT5cdUUwMDk7ICAgICAgIyBMRVRURVIgVQorXHUwQjhBPlx1RTAwQTsgICAgICAjIExFVFRFUiBVVQorXHUwQjhFPlx1RTAwRTsgICAgICAjIExFVFRFUiBFCitcdTBCOEY+XHVFMDBGOyAgICAgICMgTEVUVEVSIEVFCitcdTBCOTA+XHVFMDEwOyAgICAgICMgTEVUVEVSIEFJCitcdTBCOTI+XHVFMDEyOyAgICAgICMgTEVUVEVSIE8KK1x1MEI5Mz5cdUUwMTM7ICAgICAgIyBMRVRURVIgT08KK1x1MEI5ND5cdUUwMTQ7CSAgICAjIExFVFRFUiBBVQorXHUwQjk1Plx1RTAxNTsgICAgICAjIExFVFRFUiBLQQorXHUwQjk5Plx1RTAxOTsgICAgICAjIExFVFRFUiBOR0EKK1x1MEI5QT5cdUUwMUE7ICAgICAgIyBMRVRURVIgQ0EKK1x1MEI5Qz5cdUUwMUM7ICAgICAgIyBMRVRURVIgSkEKK1x1MEI5RT5cdUUwMUU7ICAgICAgIyBMRVRURVIgTllBCitcdTBCOUY+XHVFMDFGOyAgICAgICMgTEVUVEVSIFRUQQorXHUwQkEzPlx1RTAyMzsgICAgICAjIExFVFRFUiBOTkEKK1x1MEJBND5cdUUwMjQ7ICAgICAgIyBMRVRURVIgVEEKK1x1MEJBOD5cdUUwMjg7ICAgICAgIyBMRVRURVIgTkEKK1x1MEJBOT5cdUUwMjk7ICAgICAgIyBMRVRURVIgTk5OQQorXHUwQkFBPlx1RTAyQTsgICAgICAjIExFVFRFUiBQQQorXHUwQkFFPlx1RTAyRTsgICAgICAjIExFVFRFUiBNQQorXHUwQkFGPlx1RTAyRjsgICAgICAjIExFVFRFUiBZQQorXHUwQkIwPlx1RTAzMDsgICAgICAjIExFVFRFUiBSQQorXHUwQkIxPlx1RTAzMTsgICAgICAjIExFVFRFUiBSUkEKK1x1MEJCMj5cdUUwMzI7ICAgICAgIyBMRVRURVIgTEEKK1x1MEJCMz5cdUUwMzM7ICAgICAgIyBMRVRURVIgTExBCitcdTBCQjQ+XHVFMDM0OyAgICAgICMgTEVUVEVSIExMTEEKK1x1MEJCNT5cdUUwMzU7ICAgICAgIyBMRVRURVIgVkEKK1x1MEJCNz5cdUUwMzc7ICAgICAgIyBMRVRURVIgU1NBCitcdTBCQjg+XHVFMDM4OyAgICAgICMgTEVUVEVSIFNBCitcdTBCQjk+XHVFMDM5OyAgICAgICMgTEVUVEVSIEhBCitcdTBCQkU+XHVFMDNFOyAgICAgICMgVk9XRUwgU0lHTiBBQQorXHUwQkJGPlx1RTAzRjsgICAgICAjIFZPV0VMIFNJR04gSQorXHUwQkMwPlx1RTA0MDsgICAgICAjIFZPV0VMIFNJR04gSUkKK1x1MEJDMT5cdUUwNDE7ICAgICAgIyBWT1dFTCBTSUdOIFUKK1x1MEJDMj5cdUUwNDI7ICAgICAgIyBWT1dFTCBTSUdOIFVVCitcdTBCQzY+XHVFMDQ2OyAgICAgICMgVk9XRUwgU0lHTiBFCitcdTBCQzc+XHVFMDQ3OyAgICAgICMgVk9XRUwgU0lHTiBFRQorXHUwQkM4Plx1RTA0ODsgICAgICAjIFZPV0VMIFNJR04gQUkKKworXHUwQkNEPlx1RTA0RDsgICAgICAjIFNJR04gVklSQU1BCitcdTBCRDc+XHVFMDU3OyAgICAgICMgQVUgTEVOR1RIIE1BUksKK1x1MEJFNz5cdUUwNjc7ICAgICAgIyBESUdJVCBPTkUKK1x1MEJFOD5cdUUwNjg7ICAgICAgIyBESUdJVCBUV08KK1x1MEJFOT5cdUUwNjk7ICAgICAgIyBESUdJVCBUSFJFRQorXHUwQkVBPlx1RTA2QTsgICAgICAjIERJR0lUIEZPVVIKK1x1MEJFQj5cdUUwNkI7ICAgICAgIyBESUdJVCBGSVZFCitcdTBCRUM+XHVFMDZDOyAgICAgICMgRElHSVQgU0lYCitcdTBCRUQ+XHVFMDZEOyAgICAgICMgRElHSVQgU0VWRU4KK1x1MEJFRT5cdUUwNkU7ICAgICAgIyBESUdJVCBFSUdIVAorXHUwQkVGPlx1RTA2RjsgICAgICAjIERJR0lUIE5JTkUKK1x1MEJGMD5cdUUwNjdcdUUwNjY7ICAgICAgICAgIAkjIFVOTUFQUEVEIFRhbWlsLUludGVySW5kaWM6IE5VTUJFUiBURU4KK1x1MEJGMT5cdUUwNjdcdUUwNjZcdUUwNjY7ICAgICAJIyBVTk1BUFBFRCBUYW1pbC1JbnRlckluZGljOiBOVU1CRVIgT05FIEhVTkRSRUQKK1x1MEJGMj5cdUUwNjdcdUUwNjZcdUUwNjZcdUUwNjY7IyBVTk1BUFBFRCBUYW1pbC1JbnRlckluZGljOiBOVU1CRVIgT05FIFRIT1VTQU5ECiswPlx1ZTA2NjsKKworIyAgICA6OiBORkMgKE5GRCkgOworIyBlb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfVGVsdWd1X0ludGVySW5kaWMudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9UZWx1Z3VfSW50ZXJJbmRpYy50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmIwN2VkZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfVGVsdWd1X0ludGVySW5kaWMudHh0CkBAIC0wLDAgKzEsOTQgQEAKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb3B5cmlnaHQgKGMpIDE5OTktMjAwMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworIyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQXR0aWMvVHJhbnNsaXRlcmF0b3JfVGVsdWd1X0ludGVySW5kaWMudHh0LHYgJAorIyAkRGF0ZTogMjAwMi8wOC8xNCAwMDo0MDo1OCAkCisjICRSZXZpc2lvbjogMS43ICQKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIFRlbHVndS1JbnRlckluZGljCisjOjogTkZEIChORkMpIDsKK1x1MGM0Nlx1MGM0ZFx1MGM1Nj5cdWUwNDhcdWUwNGQ7CitcdTBDNDZcdTBDNTY+XHVFMDQ4OyMgVk9XRUwgU0lHTiBBSQorXHUwQzAxPlx1RTAwMTsgICAgICAjIFNJR04gQ0FORFJBQklORFUKK1x1MEMwMj5cdUUwMDI7ICAgICAgIyBTSUdOIEFOVVNWQVJBCitcdTBDMDM+XHVFMDAzOyAgICAgICMgU0lHTiBWSVNBUkdBCitcdTBDMDU+XHVFMDA1OyAgICAgICMgTEVUVEVSIEEKK1x1MEMwNj5cdUUwMDY7ICAgICAgIyBMRVRURVIgQUEKK1x1MEMwNz5cdUUwMDc7ICAgICAgIyBMRVRURVIgSQorXHUwQzA4Plx1RTAwODsgICAgICAjIExFVFRFUiBJSQorXHUwQzA5Plx1RTAwOTsgICAgICAjIExFVFRFUiBVCitcdTBDMEE+XHVFMDBBOyAgICAgICMgTEVUVEVSIFVVCitcdTBDMEI+XHVFMDBCOyAgICAgICMgTEVUVEVSIFZPQ0FMSUMgUgorXHUwQzBDPlx1RTAwQzsgICAgICAjIExFVFRFUiBWT0NBTElDIEwKK1x1MEMwRT5cdUUwMEU7ICAgICAgIyBMRVRURVIgRQorXHUwQzBGPlx1RTAwRjsgICAgICAjIExFVFRFUiBFRQorXHUwQzEwPlx1RTAxMDsgICAgICAjIExFVFRFUiBBSQorXHUwQzEyPlx1RTAxMjsgICAgICAjIExFVFRFUiBPCitcdTBDMTM+XHVFMDEzOyAgICAgICMgTEVUVEVSIE9PCitcdTBDMTQ+XHVFMDE0OyAgICAgICMgTEVUVEVSIEFVCitcdTBDMTU+XHVFMDE1OyAgICAgICMgTEVUVEVSIEtBCitcdTBDMTY+XHVFMDE2OyAgICAgICMgTEVUVEVSIEtIQQorXHUwQzE3Plx1RTAxNzsgICAgICAjIExFVFRFUiBHQQorXHUwQzE4Plx1RTAxODsgICAgICAjIExFVFRFUiBHSEEKK1x1MEMxOT5cdUUwMTk7ICAgICAgIyBMRVRURVIgTkdBCitcdTBDMUE+XHVFMDFBOyAgICAgICMgTEVUVEVSIENBCitcdTBDMUI+XHVFMDFCOyAgICAgICMgTEVUVEVSIENIQQorXHUwQzFDPlx1RTAxQzsgICAgICAjIExFVFRFUiBKQQorXHUwQzFEPlx1RTAxRDsgICAgICAjIExFVFRFUiBKSEEKK1x1MEMxRT5cdUUwMUU7ICAgICAgIyBMRVRURVIgTllBCitcdTBDMUY+XHVFMDFGOyAgICAgICMgTEVUVEVSIFRUQQorXHUwQzIwPlx1RTAyMDsgICAgICAjIExFVFRFUiBUVEhBCitcdTBDMjE+XHVFMDIxOyAgICAgICMgTEVUVEVSIEREQQorXHUwQzIyPlx1RTAyMjsgICAgICAjIExFVFRFUiBEREhBCitcdTBDMjM+XHVFMDIzOyAgICAgICMgTEVUVEVSIE5OQQorXHUwQzI0Plx1RTAyNDsgICAgICAjIExFVFRFUiBUQQorXHUwQzI1Plx1RTAyNTsgICAgICAjIExFVFRFUiBUSEEKK1x1MEMyNj5cdUUwMjY7ICAgICAgIyBMRVRURVIgREEKK1x1MEMyNz5cdUUwMjc7ICAgICAgIyBMRVRURVIgREhBCitcdTBDMjg+XHVFMDI4OyAgICAgICMgTEVUVEVSIE5BCitcdTBDMkE+XHVFMDJBOyAgICAgICMgTEVUVEVSIFBBCitcdTBDMkI+XHVFMDJCOyAgICAgICMgTEVUVEVSIFBIQQorXHUwQzJDPlx1RTAyQzsgICAgICAjIExFVFRFUiBCQQorXHUwQzJEPlx1RTAyRDsgICAgICAjIExFVFRFUiBCSEEKK1x1MEMyRT5cdUUwMkU7ICAgICAgIyBMRVRURVIgTUEKK1x1MEMyRj5cdUUwMkY7ICAgICAgIyBMRVRURVIgWUEKK1x1MEMzMD5cdUUwMzA7ICAgICAgIyBMRVRURVIgUkEKK1x1MEMzMT5cdUUwMzE7ICAgICAgIyBMRVRURVIgUlJBCitcdTBDMzI+XHVFMDMyOyAgICAgICMgTEVUVEVSIExBCitcdTBDMzM+XHVFMDMzOyAgICAgICMgTEVUVEVSIExMQQorXHUwQzM1Plx1RTAzNTsgICAgICAjIExFVFRFUiBWQQorXHUwQzM2Plx1RTAzNjsgICAgICAjIExFVFRFUiBTSEEKK1x1MEMzNz5cdUUwMzc7ICAgICAgIyBMRVRURVIgU1NBCitcdTBDMzg+XHVFMDM4OyAgICAgICMgTEVUVEVSIFNBCitcdTBDMzk+XHVFMDM5OyAgICAgICMgTEVUVEVSIEhBCitcdTBDM0U+XHVFMDNFOyAgICAgICMgVk9XRUwgU0lHTiBBQQorXHUwQzNGPlx1RTAzRjsgICAgICAjIFZPV0VMIFNJR04gSQorXHUwQzQwPlx1RTA0MDsgICAgICAjIFZPV0VMIFNJR04gSUkKK1x1MEM0MT5cdUUwNDE7ICAgICAgIyBWT1dFTCBTSUdOIFUKK1x1MEM0Mj5cdUUwNDI7ICAgICAgIyBWT1dFTCBTSUdOIFVVCitcdTBDNDM+XHVFMDQzOyAgICAgICMgVk9XRUwgU0lHTiBWT0NBTElDIFIKK1x1MEM0ND5cdUUwNDQ7ICAgICAgIyBWT1dFTCBTSUdOIFZPQ0FMSUMgUlIKK1x1MEM0Nj5cdUUwNDY7ICAgICAgIyBWT1dFTCBTSUdOIEUKK1x1MEM0Nz5cdUUwNDc7ICAgICAgIyBWT1dFTCBTSUdOIEVFCitcdTBDNEE+XHVFMDRBOyAgICAgICMgVk9XRUwgU0lHTiBPCitcdTBDNEI+XHVFMDRCOyAgICAgICMgVk9XRUwgU0lHTiBPTworXHUwQzRDPlx1RTA0QzsgICAgICAjIFZPV0VMIFNJR04gQVUKK1x1MEM0RD5cdUUwNEQ7ICAgICAgIyBTSUdOIFZJUkFNQQorXHUwQzU1Plx1RTA1NTsgICAgICAjIExFTkdUSCBNQVJLCitcdTBDNTY+XHVFMDU2OyAgICAgICMgQUkgTEVOR1RIIE1BUksKK1x1MEM2MD5cdUUwNjA7ICAgICAgIyBMRVRURVIgVk9DQUxJQyBSUgorXHUwQzYxPlx1RTA2MTsgICAgICAjIExFVFRFUiBWT0NBTElDIExMCitcdTBDNjY+XHVFMDY2OyAgICAgICMgRElHSVQgWkVSTworXHUwQzY3Plx1RTA2NzsgICAgICAjIERJR0lUIE9ORQorXHUwQzY4Plx1RTA2ODsgICAgICAjIERJR0lUIFRXTworXHUwQzY5Plx1RTA2OTsgICAgICAjIERJR0lUIFRIUkVFCitcdTBDNkE+XHVFMDZBOyAgICAgICMgRElHSVQgRk9VUgorXHUwQzZCPlx1RTA2QjsgICAgICAjIERJR0lUIEZJVkUKK1x1MEM2Qz5cdUUwNkM7ICAgICAgIyBESUdJVCBTSVgKK1x1MEM2RD5cdUUwNkQ7ICAgICAgIyBESUdJVCBTRVZFTgorXHUwQzZFPlx1RTA2RTsgICAgICAjIERJR0lUIEVJR0hUCitcdTBDNkY+XHVFMDZGOyAgICAgICMgRElHSVQgTklORQorIyAgICA6OiBORkMgKE5GRCkgOworIyBlb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfVGhhaUxvZ2ljYWxfTGF0aW4udHh0IGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9UaGFpTG9naWNhbF9MYXRpbi50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmVmOGZmNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfVGhhaUxvZ2ljYWxfTGF0aW4udHh0CkBAIC0wLDAgKzEsMTkxIEBACivvu78jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0F0dGljL1RyYW5zbGl0ZXJhdG9yX1RoYWlMb2dpY2FsX0xhdGluLnR4dCx2ICQKKyMgJERhdGU6IDIwMDIvMDcvMjYgMTk6NTY6NTUgJAorIyAkUmV2aXNpb246IDEuNSAkCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBUaGFpLUxhdGluCisjIFRoaXMgc2V0IG9mIHJ1bGVzIGZvbGxvd3MgSVNPIDExOTQwCisjCXNlZSBodHRwOi8vaG9tZXBhZ2UubWFjLmNvbS9zaXJiaW5rcy9wZGYvVGhhaS5yMi5wZGYKKyMgZXhjZXB0IHRoYXQgdGhhdCBkb2VzIG5vdCBtZW50aW9uIGFuIGltcGxpY2l0IHZvd2VsLCBzbyB3ZSB1c2Ugb8yjCisjCisjIFRoZSB0cmFuc2NyaXB0aW9uIGlzIGZhaXJseSB1Z2x5LCBzbyB3ZSBvdWdodCB0byBhbHNvIGRvIHRoZSBVTkdFR04gdmVyc2lvbgorIwlzZWU6IGh0dHA6Ly93d3cuZWtpLmVlL3dncnMvcm9tMV90aC5wZGYKKyMgYW5kIHByb2JhYmx5IG1ha2UgdGhhdCB0aGUgbWFpbiB2YXJpYW50LgorCisjIE5vdGU6IHRoaXMgaXMgYW4gaW50ZXJuYWwgZmlsZS4gVGhlIE5GRC9ORkMgaXMgaGFuZGxlZCBleHRlcm5hbGx5LCBpbiB0aGUgaW5kZXgKKyMgVGhlIGluc2VydGlvbiBvZiBzcGFjZXMgYmV0d2VlbiB3b3JkcywgdGhlIHJldmVyc2FsIG9mIHRoZSB2b3dlbHMKKyMgYW5kIHRoZSBjb252ZXJzaW9uIG9mIHNwYWNlIHRvIHNlbWljb2xvbiBhcmUgZG9uZSAqb3V0c2lkZSogb2YgdGhlc2UgcnVsZXMuCisjIFNvIGFzIGZhciBhcyB0aGVzZSBydWxlcyBhcmUgY29uY2VybmVkLCB0aGUgdm93ZWxzIGFyZSBpbiBsb2dpY2FsIG9yZGVyIQorCisjIGluc2VydCBpbXBsaWNpdCB2b3dlbCAoYW5kIHJlbW92ZSBpdCBnb2luZyB0aGUgb3RoZXIgd2F5KQorIyBDT01NRU5URUQgb3V0OiB0aGUgaW1wbGljaXQgdm93ZWwgcG9zaXRpb25zIGNhbm5vdCBiZSBwcmVkaWN0ZWQgYWxnb3JpdGhtaWNhbGx5CisjJGNvbnNvbmFudCA9IFvguIEt4LiuXTsKKyMkdm93ZWwgPSBb4LiwLeC4uuC5gC3guYTguYddOworCisjeyAoICRjb25zb25hbnQgKSB9IFteJHZvd2VsIO6AgF0gPiB8ICQxIO6AgCA7Cisj7oCAID4gb8yjIDsKKyMgPCBvzKMgOworCiskbm90QWJvdmUgPSBbXlxwe2NjYz0wfVxwe2NjYz1hYm92ZX1dIDsKKyRub3RCZWxvdyA9IFteXHB7Y2NjPTB9XHB7Y2NjPWJlbG93fV0gOworCisjIENvbnNvbmFudHMKKyMgV2FybmluZzogdGhlICdoJ3MgbmVlZCB0byBiZSBoYW5kbGVkIGNhcmVmdWxseSEKKyMgV2hhdCB3ZSByZWFsbHkgd2FudCB0byBzYXkgaXMgdGhlIGZvbGxvd2luZywgYnV0IHdlIGNhbid0CisjICRub3RIQWNjZW50ID0gISgkbm90QWJvdmUqICAgzIQgfCAkbm90QmVsb3cqICAgzKMpIDsKKworIyBTaW5jZSB0aGUgb25seSBhY2NlbnRzIHdlIGNhcmUgYWJvdXQgdGhhdCBjb3VsZCBjYXVzZSBwcm9ibGVtcyBhcmUgZnJlZS1zdGFuZGluZyBhY2NlbnRzIGJlbG93LCB3ZSB1c2UgaW5zdGVhZDoKKyRmcmVlU3RhbmRpbmdCZWxvdyA9IFtcdTAzMjUgIF07CiskaEFjY2VudCA9ICBbICAgzIQgICAgIMyjXQorJG5vdEhBY2NlbnQwID0gW14kZnJlZVN0YW5kaW5nQmVsb3ckaEFjY2VudF07Ciskbm90SEFjY2VudDEgPSAkZnJlZVN0YW5kaW5nQmVsb3cgW14kaEFjY2VudF07CisKK+C4qyA+IGjMhCA7ICMgVEhBSSBDSEFSQUNURVIgSE8gSElQCisg4LirIHwgJDEgPCBoICgkbm90QWJvdmUqKSAgICDMhDsgIyBiYWNrd2FyZCBjYXNlLCBhY2NvdW50IGZvciByZW9yZGVyaW5nCivguK4gPD4gaMyjIDsgIyBUSEFJIENIQVJBQ1RFUiBITyBOT0tIVUsKKwor4LiCIDw+IGvMhGggOyAjIFRIQUkgQ0hBUkFDVEVSIEtITyBLSEFJCivguIMgPD4ga8yjzIRoIDsgIyBUSEFJIENIQVJBQ1RFUiBLSE8gS0hVQVQKK+C4hSA8PiBryrloIDsgIyBUSEFJIENIQVJBQ1RFUiBLSE8gS0hPTiAgCivguIYgPD4ga8yjaCA7ICMgVEhBSSBDSEFSQUNURVIgS0hPIFJBS0hBTkcKK+C4hCA8IGtoIH0gJG5vdEhBY2NlbnQxIDsgIyBUSEFJIENIQVJBQ1RFUiBLSE8gS0hXQUkgIAor4LiEIDw+IGtoIH0gJG5vdEhBY2NlbnQwIDsgIyBUSEFJIENIQVJBQ1RFUiBLSE8gS0hXQUkgIAor4LiBIDw+IGsgOyAjIFRIQUkgQ0hBUkFDVEVSIEtPIEtBSQorCivguKAgPD4gcMyjaCA7ICMgVEhBSSBDSEFSQUNURVIgUEhPIFNBTVBIQU8KK+C4nCA8PiBwzIRoIDsgIyBUSEFJIENIQVJBQ1RFUiBQSE8gUEhVTkcKK+C4niA8IHBoIH0gJG5vdEhBY2NlbnQxIDsgIyBUSEFJIENIQVJBQ1RFUiBQSE8gUEhBTgor4LieIDw+IHBoIH0gJG5vdEhBY2NlbnQwIDsgIyBUSEFJIENIQVJBQ1RFUiBQSE8gUEhBTgor4LibIDw+IHAgOyAjIFRIQUkgQ0hBUkFDVEVSIFBPIFBMQQorCivguIkgPD4gY8yEaCA7ICMgVEhBSSBDSEFSQUNURVIgQ0hPIENISU5HCivguIwgPD4gY8yjaCA7ICMgVEhBSSBDSEFSQUNURVIgQ0hPIENIT0UKK+C4iiA8IGNoIH0gJG5vdEhBY2NlbnQxIDsgIyBUSEFJIENIQVJBQ1RFUiBDSE8gQ0hBTkcKK+C4iiA8PiBjaCB9ICRub3RIQWNjZW50MCA7ICMgVEhBSSBDSEFSQUNURVIgQ0hPIENIQU5HCivguIggPD4gYyA7ICMgVEhBSSBDSEFSQUNURVIgQ0hPIENIQU4KKwor4LiQIDw+IHTMo8yEaCA7ICMgVEhBSSBDSEFSQUNURVIgVEhPIFRIQU4KK+C4kSA8PiB0zLFoIDsgIyBUSEFJIENIQVJBQ1RFUiBUSE8gTkFOR01PTlRITwor4LiSIDw+IHTKuWggOyAjIFRIQUkgQ0hBUkFDVEVSIFRITyBQSFVUSEFPCivguJYgPD4gdMyEaCA7ICMgVEhBSSBDSEFSQUNURVIgVEhPIFRIVU5HCivguJggPD4gdMyjaCA7ICMgVEhBSSBDSEFSQUNURVIgVEhPIFRIT05HCivguJcgPCB0aCB9ICRub3RIQWNjZW50MSA7ICMgVEhBSSBDSEFSQUNURVIgVEhPIFRIQUhBTgor4LiXIDw+IHRoIH0gJG5vdEhBY2NlbnQwIDsgIyBUSEFJIENIQVJBQ1RFUiBUSE8gVEhBSEFOCisjTm90ZTogVE8gUEFUQUsgZGV2aWF0ZXMgZnJvbSBJU08gc2luY2UgdC1kb3R1bmRlciArIGggd291bGQgYmUgYW1iaWdvdXMuIFNvIGl0IHVzZXMgdmVydGljYWwgdGljay4KK+C4jyA8PiB0zKkgOyAjIFRIQUkgQ0hBUkFDVEVSIFRPIFBBVEFLCivguJUgPD4gdCA7ICMgVEhBSSBDSEFSQUNURVIgVE8gVEFPCisKKyMgc2luY2UgdGhlcmUgaXMgbm8gc2luZ2xldG9uIGcgKGdlbmVyYXRlZCksIGRvbid0IHdvcnJ5IGFib3V0IHRoYXQuCivguIcgPD4gbmcgOyAjIFRIQUkgQ0hBUkFDVEVSIE5HTyBOR1UKK+C4kyA8PiBuzKMgOyAjIFRIQUkgQ0hBUkFDVEVSIE5PIE5FTgor4LiZIDw+IG4gOyAjIFRIQUkgQ0hBUkFDVEVSIE5PIE5VCisKK+C4jSA8PiB5zKMgIDsgIyBUSEFJIENIQVJBQ1RFUiBZTyBZSU5HCivguI4gPD4gZMyjIDsgIyBUSEFJIENIQVJBQ1RFUiBETyBDSEFEQQor4LiUIDw+IGQgOyAjIFRIQUkgQ0hBUkFDVEVSIERPIERFSworCivguJogPD4gYiA7ICMgVEhBSSBDSEFSQUNURVIgQk8gQkFJTUFJCivguJ0gPD4gZsyEIDsgIyBUSEFJIENIQVJBQ1RFUiBGTyBGQQorIOC4nSB8ICQxIDwgZiAoJG5vdEFib3ZlKikgICAgzIQ7ICMgYmFja3dhcmQgY2FzZSwgYWNjb3VudCBmb3IgcmVvcmRlcmluZworCivguKEgPD4gbSA7ICMgVEhBSSBDSEFSQUNURVIgTU8gTUEKK+C4oiA8PiB5IDsgIyBUSEFJIENIQVJBQ1RFUiBZTyBZQUsKK+C4oyA8PiByIDsgIyBUSEFJIENIQVJBQ1RFUiBSTyBSVUEKK+C4pCA8PiB2IDsgIyBUSEFJIENIQVJBQ1RFUiBSVQor4LimIDw+IMWCIDsgIyBUSEFJIENIQVJBQ1RFUiBMVQor4LinIDw+IHcgOyAjIFRIQUkgQ0hBUkFDVEVSIFdPIFdBRU4KKwor4LioIDw+IHPMo8yEIDsgIyBUSEFJIENIQVJBQ1RFUiBTTyBTQUxBKioqCisg4LioIHwgJDEgPCBzICAgIMyjICgkbm90QWJvdmUqKSAgICDMhDsgIyBiYWNrd2FyZCBjYXNlLCBhY2NvdW50IGZvciByZW9yZGVyaW5nCivguKkgPD4gc8yEyrkgOyAjIFRIQUkgQ0hBUkFDVEVSIFNPIFJVU0kKK+C4qiA+IHPMhCA7ICMgVEhBSSBDSEFSQUNURVIgU08gU1VBKioqCisg4LiqIHwgJDEgPCBzICgkbm90QWJvdmUqKSAgICDMhDsgIyBiYWNrd2FyZCBjYXNlLCBhY2NvdW50IGZvciByZW9yZGVyaW5nCisKK+C4rCA8PiBszKMgOyAjIFRIQUkgQ0hBUkFDVEVSIExPIENIVUxBCivguKUgPD4gbCA7ICMgVEhBSSBDSEFSQUNURVIgTE8gTElORwor4LifIDw+IGYgOyAjIFRIQUkgQ0hBUkFDVEVSIEZPIEZBTgorCivguK0gPD4geCA7ICMgVEhBSSBDSEFSQUNURVIgTyBBTkcKK+C4iyA8PiBzIDsgIyBUSEFJIENIQVJBQ1RFUiBTTyBTTworCisjIHZvd2VscworCisg4LixIDw+IGHMoyA7ICMgVEhBSSBDSEFSQUNURVIgTUFJIEhBTi1BS0FUCisKK+C4siA+IGHMhCA7ICMgVEhBSSBDSEFSQUNURVIgU0FSQSBBQQorIOC4siB8ICQxIDwgYSAoJG5vdEFib3ZlKikgICAgzIQ7ICMgYmFja3dhcmQgY2FzZSwgYWNjb3VudCBmb3IgcmVvcmRlcmluZworCisjIFdlIGRldmlhdGUgZnJvbSBJU08gZm9yIFNBUkEgQU0gZm9yIGRpc2FtYmlndWF0aW9uCivguLMgPiBhICDMiTsgIyBUSEFJIENIQVJBQ1RFUiBTQVJBIEFNCisg4LizIHwgJDEgPCBhICgkbm90QWJvdmUqKSAgzIkgOyAjIGJhY2t3YXJkIGNhc2UsIGFjY291bnQgZm9yIHJlb3JkZXJpbmcKKwor4LiwIDw+IGEgOyAjIFRIQUkgQ0hBUkFDVEVSIFNBUkEgQQorIOC4tSA8PiBpzIQgOyAjIFRIQUkgQ0hBUkFDVEVSIFNBUkEgSUkKKyAg4Li1IHwgJDEgPCBpICgkbm90QWJvdmUqKSAgICDMhCAgOyAjIGJhY2t3YXJkIGNhc2UsIGFjY291bnQgZm9yIHJlb3JkZXJpbmcKKworIOC4tyA8PiB1zKPMhCA7ICMgVEhBSSBDSEFSQUNURVIgU0FSQSBVRUUKKyAg4Li3IHwgJDEgPCB1ICAgzKMgKCRub3RBYm92ZSopICAgIMyEICA7ICMgYmFja3dhcmQgY2FzZSwgYWNjb3VudCBmb3IgcmVvcmRlcmluZworCisg4Li2IDw+IHXMoyA7ICMgVEhBSSBDSEFSQUNURVIgU0FSQSBVRQorIOC4uSA8PiB1zIQgOyAjIFRIQUkgQ0hBUkFDVEVSIFNBUkEgVVUKKyDguLkgfCAkMSA8IHUgICgkbm90QWJvdmUqKSAgICDMhCAgOyAjIGJhY2t3YXJkIGNhc2UsIGFjY291bnQgZm9yIHJlb3JkZXJpbmcKKworIOC4uCA8PiB1IDsgIyBUSEFJIENIQVJBQ1RFUiBTQVJBIFUKKwor4LivIDw+IOKAoSA7ICMgVEhBSSBDSEFSQUNURVIgUEFJWUFOTk9JCisKKyMg4Li/IDw+IFhYWCA7ICMgVEhBSSBDVVJSRU5DWSBTWU1CT0wgQkFIVAorCivguYAgPD4gZSA7ICMgVEhBSSBDSEFSQUNURVIgU0FSQSBFCivguYEgPD4gw6YgOyAjIFRIQUkgQ0hBUkFDVEVSIFNBUkEgQUUKK+C5giA8PiBvIDsgIyBUSEFJIENIQVJBQ1RFUiBTQVJBIE8KK+C5gyA8PiDEsSA7ICMgVEhBSSBDSEFSQUNURVIgU0FSQSBBSSBNQUlNVUFOCivguYQgPD4gacyjIDsgIyBUSEFJIENIQVJBQ1RFUiBTQVJBIEFJIE1BSU1BTEFJCivguYUgPD4gyaggOyAjIFRIQUkgQ0hBUkFDVEVSIExBS0tIQU5HWUFPCisg4LmHIDw+IMyGIDsgIyBUSEFJIENIQVJBQ1RFUiBNQUlUQUlLSFUKKyDguYggPD4gzIAgOyAjIFRIQUkgQ0hBUkFDVEVSIE1BSSBFSworIOC5iSA8PiDMgiA7ICMgVEhBSSBDSEFSQUNURVIgTUFJIFRITworIOC5iiA8PiDMgSA7ICMgVEhBSSBDSEFSQUNURVIgTUFJIFRSSQorIOC5iyA8PiDMjCA7ICMgVEhBSSBDSEFSQUNURVIgTUFJIENIQVRUQVdBCisg4LmMIDw+IMySIDsgIyBUSEFJIENIQVJBQ1RFUiBUSEFOVEhBS0hBVAorIOC5jiA8PiAnficgOyAjIFRIQUkgQ0hBUkFDVEVSIFlBTUFLS0FOCisKKyMgV2UgZGV2aWF0ZSBmcm9tIElTTyBmb3IgZGlzYW1iaWd1YXRpb24KKyDguY0gPD4gIMyKIDsgIyBUSEFJIENIQVJBQ1RFUiBOSUtIQUhJVAorCivguY8gPD4gwqcgOyAjIFRIQUkgQ0hBUkFDVEVSIEZPTkdNQU4KKwor4LmQIDw+IDAgOyAjIFRIQUkgRElHSVQgWkVSTwor4LmRIDw+IDEgOyAjIFRIQUkgRElHSVQgT05FCivguZIgPD4gMiA7ICMgVEhBSSBESUdJVCBUV08KK+C5kyA8PiAzIDsgIyBUSEFJIERJR0lUIFRIUkVFCivguZQgPD4gNCA7ICMgVEhBSSBESUdJVCBGT1VSCivguZUgPD4gNSA7ICMgVEhBSSBESUdJVCBGSVZFCivguZYgPD4gNiA7ICMgVEhBSSBESUdJVCBTSVgKK+C5lyA8PiA3IDsgIyBUSEFJIERJR0lUIFNFVkVOCivguZggPD4gOCA7ICMgVEhBSSBESUdJVCBFSUdIVAor4LmZIDw+IDkgOyAjIFRIQUkgRElHSVQgTklORQorCivguZogPD4gJ3x8JyA7ICMgVEhBSSBDSEFSQUNURVIgQU5HS0hBTktIVQorCivguZsgPD4gwrsgOyAjIFRIQUkgQ0hBUkFDVEVSIEtIT01VVAor4LmGIDw+IMKrIDsgIyBUSEFJIENIQVJBQ1RFUiBNQUlZQU1PSworCisjIG1vdmVkIGRvd24gdG8gbWFrZSBzaG9ydGVyIGZpcnN0CisjTm90ZTogUEhJTlRIVSBkZXZpYXRlcyBmcm9tIElTTyBzaW5jZSB1bmRlcnJpbmcgY2F1c2VzIGNhbm9uaWNhbCBwcm9ibGVtcy4gU28gaXQgdXNlcyBzcGFjaW5nIHRpY2sgYmVsb3cuCisg4Li6IDw+IMuMIDsgIyBUSEFJIENIQVJBQ1RFUiBQSElOVEhVCisg4Li0IDw+IGkgOyAjIFRIQUkgQ0hBUkFDVEVSIFNBUkEgSQorCisjIGZhbGxiYWNrcworCit8IGsgPCBnIDsKK3wgayA8IGggOworfCBjIDwgaiA7Cit8IGsgPCBxIDsKK3wgcyA8IHogOworCis6OiAobG93ZXIpOwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9UaGFpX1RoYWlMb2dpY2FsLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfVGhhaV9UaGFpTG9naWNhbC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjBiNDRmMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfVGhhaV9UaGFpTG9naWNhbC50eHQKQEAgLTAsMCArMSwzMCBAQAor77u/Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvcHlyaWdodCAoYykgMTk5OS0yMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisjIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9BdHRpYy9UcmFuc2xpdGVyYXRvcl9UaGFpX1RoYWlMb2dpY2FsLnR4dCx2ICQKKyMgJERhdGU6IDIwMDIvMDcvMjYgMTk6NTY6NTUgJAorIyAkUmV2aXNpb246IDEuMyAkCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBUaGlzIHJldmVyc2VzIHRoZSBUaGFpIExvZ2ljYWxPcmRlckV4Y2VwdGlvbiB2b3dlbHMsIGFuZCBkb2VzIChwYXJ0IG9mKSBzcGFjZXMKKyMgVGhlIHJ1bGVzIHRoYXQgY29udmVydCBzcGFjZSBpbnRvIHNlbWljb2xvbiBhcmUgaW4gYW5vdGhlciBmaWxlOworIyBzaW5jZSB0aGV5IGhhdmUgdG8gY29tZSBCRUZPUkUgdGhlIGJyZWFrIGl0ZXJhdG9yCisKKyR0aGFpID0gW1s6dGhhaTpdIFx1MEUwMS1cdTBFM0FcdTBFNDAtXHUwRTVCXSA7CisKKyMgRmlyc3QgY29udmVydCB0aGUgc2VtaWNvbG9uIGJhY2sKKworJyAnICA8ICR0aGFpIHsgJzsgJyAgfSAkdGhhaTsKKworIyBSZW1vdmUgYW55IG90aGVyIHNwYWNlcyBiZXR3ZWVuIHRoYWkgbGV0dGVycworCis8ICR0aGFpIHsgJyAnIH0gJHRoYWk7CisKKyMgTm93IHZvd2VscworJHRoYWlfcmV2ZXJzaW5nID0gW1s6TG9naWNhbF9PcmRlcl9FeGNlcHRpb246XSAmICR0aGFpXTsKKyR0aGFpX25vbl9yZXZlcnNpbmcgPSBbJHRoYWkgLSAkdGhhaV9yZXZlcnNpbmcgXTsKKworKCAkdGhhaV9yZXZlcnNpbmcgKSAoICR0aGFpX25vbl9yZXZlcnNpbmcgKSA+ICQyICQxOworIyBvdGhlciBkaXJlY3Rpb24KKyQyICQxIDwgKCAkdGhhaV9ub25fcmV2ZXJzaW5nICkgKCAkdGhhaV9yZXZlcnNpbmcgKSA7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9UaGFpX1RoYWlTZW1pLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfVGhhaV9UaGFpU2VtaS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzg4NjJhYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfVGhhaV9UaGFpU2VtaS50eHQKQEAgLTAsMCArMSwxNSBAQAor77u/Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvcHlyaWdodCAoYykgMTk5OS0yMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisjIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9BdHRpYy9UcmFuc2xpdGVyYXRvcl9UaGFpX1RoYWlTZW1pLnR4dCx2ICQKKyMgJERhdGU6IDIwMDIvMDcvMjYgMTk6NTY6NTUgJAorIyAkUmV2aXNpb246IDEuMyAkCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBUaGUgcnVsZXMgdGhhdCBjb252ZXJ0IHNwYWNlIGludG8gc2VtaWNvbG9uIGFyZSBpbiB0aGlzIGZpbGU7CisjIHNpbmNlIHRoZXkgaGF2ZSB0byBjb21lIEJFRk9SRSB0aGUgYnJlYWsgaXRlcmF0b3IuCisKKyR0aGFpID0gW1s6dGhhaTpdIFx1MEUwMS1cdTBFM0FcdTBFNDAtXHUwRTVCXSA7CisKKyR0aGFpIHsgJyAnIH0gJHRoYWkgPiAnOyAnIDsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX2luZGV4LnR4dCBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfaW5kZXgudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmMxOThhOGQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX2luZGV4LnR4dApAQCAtMCwwICsxLDI0OCBAQAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvcHlyaWdodCAoYykgMTk5OS0yMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisjIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9BdHRpYy9UcmFuc2xpdGVyYXRvcl9pbmRleC50eHQsdiAkCisjICREYXRlOiAyMDAyLzA4LzEzIDE4OjU0OjIwICQKKyMgJFJldmlzaW9uOiAxLjM5ICQKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIworIyBUUkFOU0xJVEVSQVRPUiBJTkRFWCBGSUxFLiAgVGhpcyBmaWxlIGxpc3RzIHRoZSBub24tYWxnb3JpdGhtaWMKKyMgc3lzdGVtIHRyYW5zbGl0ZXJhdG9ycy4gIEl0IGFsbG93cyBhcmJpdHJhcnkgbWFwcGluZ3MgYmV0d2VlbgorIyB0cmFuc2xpdGVyYXRvciBJRHMgYW5kIGZpbGUgbmFtZXMsIGFuZCBhbHNvIGFsbG93cyB0aGUgc3lzdGVtIHRvCisjIGRlZmluZSBhbGlhc2VzIGZvciB0cmFuc2xpdGVyYXRvcnMsIHNvIHRoYXQgIkxhdGluLUhhbmd1bCIsIGZvcgorIyBleGFtcGxlLCBjYW4gYmUgaW1wbGVtZW50ZWQgdHJhbnNwYXJlbnRseSBhcyB0aGUgY29tcG91bmQKKyMgIkxhdGluLUphbW87SmFtby1IYW5ndWwiLiAgSW50ZXJuYWwgSURzIG1heSBhbHNvIGJlIGRlZmluZWQ7IHRoZXNlCisjIGFyZSBpbnZpc2libGUgdG8gdGhlIHVzZXIsIGJ1dCBjYW4gYmUgY29tcG9zZWQgdG9nZXRoZXIgYnkgdGhlCisjIHN5c3RlbSB0byBjcmVhdGUgdmlzaWJsZSB0cmFuc2xpdGVyYXRvcnMuCisjCisjIEJsYW5rIGxpbmVzIGFuZCBsaW5lcyBiZWdpbm5pbmcgd2l0aCAnIycgYXJlIGlnbm9yZWQuCisjCisjIExpbmVzIGluIHRoaXMgZmlsZSBoYXZlIG9uZSBvZiB0aGUgZm9sbG93aW5nIGZvcm1zICh0ZXh0IG5vdAorIyBlbmNsb3NlZCBieSA8PiBpcyBsaXRlcmFsKToKKyMKKyMgICA8aWQ+OmZpbGU6PHJlc291cmNlPjo8ZW5jb2Rpbmc+OjxkaXJlY3Rpb24+CisjICAgPGlkPjppbnRlcm5hbDo8cmVzb3VyY2U+OjxlbmNvZGluZz46PGRpcmVjdGlvbj4KKyMgICA8aWQ+OmFsaWFzOjxnZXRJbnN0YW5jZUFyZz4KKyMKKyMgPGlkPiBpcyB0aGUgSUQgb2YgdGhlIHN5c3RlbSB0cmFuc2xpdGVyYXRvciBiZWluZyBkZWZpbmVkLiAgVGhlc2UKKyMgYXJlIHB1YmxpYyBJRHMgZW51bWVyYXRlZCBieSBUcmFuc2xpdGVyYXRvci5nZXRBdmFpbGFibGVJRHMoKSwKKyMgdW5sZXNzIHRoZSBzZWNvbmQgZmllbGQgaXMgImludGVybmFsIi4KKyMKKyMgPHJlc291cmNlPiBpcyBhIFJlc291cmNlUmVhZGVyIHJlc291cmNlIG5hbWUuICBDdXJyZW50bHkgdGhlc2UgcmVmZXIKKyMgdG8gZmlsZSBuYW1lcyB1bmRlciBjb20vaWJtL3RleHQvcmVzb3VyY2VzLiAgVGhpcyBzdHJpbmcgaXMgcGFzc2VkCisjIGRpcmVjdGx5IHRvIFJlc291cmNlUmVhZGVyLCB0b2dldGhlciB3aXRoIDxlbmNvZGluZz4uCisjCisjIDxlbmNvZGluZz4gaXMgdGhlIGNoYXJhY3RlciBlbmNvZGluZyB0byB1c2Ugd2hlbiByZWFkaW5nIDxyZXNvdXJjZT47CisjIHBhc3NlZCBkaXJlY3RseSB0byBSZXNvdXJjZVJlYWRlci4gIEUuZy4sICJVVEY4Ii4KKyMKKyMgPGRpcmVjdGlvbj4gaXMgZWl0aGVyICJGT1JXQVJEIiBvciAiUkVWRVJTRSIuCisjCisjIDxnZXRJbnN0YW5jZUFyZz4gaXMgYSBzdHJpbmcgdG8gYmUgcGFzc2VkIGRpcmVjdGx5IHRvCisjIFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCkuICBUaGUgcmV0dXJuZWQgVHJhbnNsaXRlcmF0b3Igb2JqZWN0CisjIHRoZW4gaGFzIGl0cyBJRCBjaGFuZ2VkIHRvIDxpZD4gYW5kIGlzIHJldHVybmVkLgorCisKKyMgQmlkaXJlY3Rpb25hbCBydWxlIGZpbGVzCisKK0Z1bGx3aWR0aC1IYWxmd2lkdGg6ZmlsZTpUcmFuc2xpdGVyYXRvcl9GdWxsd2lkdGhfSGFsZndpZHRoLnR4dDpVVEY4OkZPUldBUkQKK0hhbGZ3aWR0aC1GdWxsd2lkdGg6ZmlsZTpUcmFuc2xpdGVyYXRvcl9GdWxsd2lkdGhfSGFsZndpZHRoLnR4dDpVVEY4OlJFVkVSU0UKKworTGF0aW4tQ3lyaWxsaWM6ZmlsZTpUcmFuc2xpdGVyYXRvcl9DeXJpbGxpY19MYXRpbi50eHQ6VVRGODpSRVZFUlNFCitDeXJpbGxpYy1MYXRpbjpmaWxlOlRyYW5zbGl0ZXJhdG9yX0N5cmlsbGljX0xhdGluLnR4dDpVVEY4OkZPUldBUkQKKworTGF0aW4tSGVicmV3OmZpbGU6VHJhbnNsaXRlcmF0b3JfSGVicmV3X0xhdGluLnR4dDpVVEY4OlJFVkVSU0UKK0hlYnJldy1MYXRpbjpmaWxlOlRyYW5zbGl0ZXJhdG9yX0hlYnJld19MYXRpbi50eHQ6VVRGODpGT1JXQVJECisKK0xhdGluLUFyYWJpYzpmaWxlOlRyYW5zbGl0ZXJhdG9yX0FyYWJpY19MYXRpbi50eHQ6VVRGODpSRVZFUlNFCitBcmFiaWMtTGF0aW46ZmlsZTpUcmFuc2xpdGVyYXRvcl9BcmFiaWNfTGF0aW4udHh0OlVURjg6Rk9SV0FSRAorCitIYW4tTGF0aW46ZmlsZTpUcmFuc2xpdGVyYXRvcl9IYW5fTGF0aW4udHh0OlVURjg6Rk9SV0FSRAorI0xhdGluLUhhbjpmaWxlOlRyYW5zbGl0ZXJhdG9yX0hhbl9MYXRpbi50eHQ6VVRGODpSRVZFUlNFICMgbm8gcm91bmQgdHJpcCEKK0xhdGluLUhhbjphbGlhczpudWxsCisKKyMgQ29tbWVudCB0aGVzZSBvdXQ7IHRoZXkgYXJlIG9ubHkgZm9yIHRlc3RpbmcKKyMgTGF0aW4tSGFuL2RlZmluaXRpb246ZmlsZTpUcmFuc2xpdGVyYXRvcl9IYW5fTGF0aW5fRGVmaW5pdGlvbi50eHQ6VVRGODpSRVZFUlNFCisjIEhhbi1MYXRpbi9kZWZpbml0aW9uOmZpbGU6VHJhbnNsaXRlcmF0b3JfSGFuX0xhdGluX0RlZmluaXRpb24udHh0OlVURjg6Rk9SV0FSRAorCisjTGF0aW4tSGFuL0VESUNUOmZpbGU6VHJhbnNsaXRlcmF0b3JfSGFuX0xhdGluX0VESUNULnR4dDpVVEY4OlJFVkVSU0UKKyNIYW4tTGF0aW4vRURJQ1Q6ZmlsZTpUcmFuc2xpdGVyYXRvcl9IYW5fTGF0aW5fRURJQ1QudHh0OlVURjg6Rk9SV0FSRAorCitMYXRpbi1HcmVlazpmaWxlOlRyYW5zbGl0ZXJhdG9yX0dyZWVrX0xhdGluLnR4dDpVVEY4OlJFVkVSU0UKK0dyZWVrLUxhdGluOmZpbGU6VHJhbnNsaXRlcmF0b3JfR3JlZWtfTGF0aW4udHh0OlVURjg6Rk9SV0FSRAorCitMYXRpbi1HcmVlay9VTkdFR046ZmlsZTpUcmFuc2xpdGVyYXRvcl9HcmVla19MYXRpbl9VTkdFR04udHh0OlVURjg6UkVWRVJTRQorR3JlZWstTGF0aW4vVU5HRUdOOmZpbGU6VHJhbnNsaXRlcmF0b3JfR3JlZWtfTGF0aW5fVU5HRUdOLnR4dDpVVEY4OkZPUldBUkQKKworTGF0aW4tS2F0YWthbmE6ZmlsZTpUcmFuc2xpdGVyYXRvcl9MYXRpbl9LYXRha2FuYS50eHQ6VVRGODpGT1JXQVJECitLYXRha2FuYS1MYXRpbjpmaWxlOlRyYW5zbGl0ZXJhdG9yX0xhdGluX0thdGFrYW5hLnR4dDpVVEY4OlJFVkVSU0UKKworTGF0aW4tSGlyYWdhbmE6ZmlsZTpUcmFuc2xpdGVyYXRvcl9IaXJhZ2FuYV9MYXRpbi50eHQ6VVRGODpSRVZFUlNFCitIaXJhZ2FuYS1MYXRpbjpmaWxlOlRyYW5zbGl0ZXJhdG9yX0hpcmFnYW5hX0xhdGluLnR4dDpVVEY4OkZPUldBUkQKKworI1RoYWkgU3R1ZmY6IHdpbGwgY2hhbmdlIGlmIHdlIGdldCBcYiBpbnRvIFRyYW5zbGl0ZXJhdG9yCisKK1RoYWktVGhhaVNlbWk6aW50ZXJuYWw6VHJhbnNsaXRlcmF0b3JfVGhhaV9UaGFpU2VtaS50eHQ6VVRGODpGT1JXQVJECisKK1RoYWktVGhhaUxvZ2ljYWw6aW50ZXJuYWw6VHJhbnNsaXRlcmF0b3JfVGhhaV9UaGFpTG9naWNhbC50eHQ6VVRGODpGT1JXQVJECitUaGFpTG9naWNhbC1UaGFpOmludGVybmFsOlRyYW5zbGl0ZXJhdG9yX1RoYWlfVGhhaUxvZ2ljYWwudHh0OlVURjg6UkVWRVJTRQorCitUaGFpTG9naWNhbC1MYXRpbjppbnRlcm5hbDpUcmFuc2xpdGVyYXRvcl9UaGFpTG9naWNhbF9MYXRpbi50eHQ6VVRGODpGT1JXQVJECitMYXRpbi1UaGFpTG9naWNhbDppbnRlcm5hbDpUcmFuc2xpdGVyYXRvcl9UaGFpTG9naWNhbF9MYXRpbi50eHQ6VVRGODpSRVZFUlNFCisKKyMgTXVzdCB1c2UgdGhlIG9yZGVyIGJlbG93IQorIyBXZSBuZWVkIHR3byBzZXBhcmF0ZSBwYXNzZXMgYmVjYXVzZSBvZiB0aGUgVGhhaSB2b3dlbCByZXZlcnNhbAorIyBUaGFpLUxvZ2ljYWwgYWxzbyBjb252ZXJ0cyBzcGFjZXMgdG8gc2VtaWNvbG9ucy4gVGhhdCBoYXMgdG8gYmUgZG9uZSBiZWZvcmUgd2UgaW5zZXJ0IGxhdGluIHNwYWNlcworCitUaGFpLUxhdGluOmFsaWFzOltbOnRoYWk6XSBcdTBFMDEtXHUwRTNBXHUwRTQwLVx1MEU1Ql07TkZEO1RoYWktVGhhaVNlbWk7QW55LUJyZWFrSW50ZXJuYWw7VGhhaS1UaGFpTG9naWNhbDtUaGFpTG9naWNhbC1MYXRpbjtORkMKK0xhdGluLVRoYWk6YWxpYXM6W1s6TGF0aW46XVs6TW46XVs6TWU6XSBcIFw7MC05fH5cdTAwQTdcdTAwQUJcdTAwQkJcdTAyQjlcdTAzNzRcdTIwMjFcdTAyQ0NdO05GRDtMYXRpbi1UaGFpTG9naWNhbDtUaGFpTG9naWNhbC1UaGFpO05GQworCisjIGVuZCBvZiBUaGFpIFN0dWZmCisKK0hpcmFnYW5hLUthdGFrYW5hOmZpbGU6VHJhbnNsaXRlcmF0b3JfSGlyYWdhbmFfS2F0YWthbmEudHh0OlVURjg6Rk9SV0FSRAorS2F0YWthbmEtSGlyYWdhbmE6ZmlsZTpUcmFuc2xpdGVyYXRvcl9IaXJhZ2FuYV9LYXRha2FuYS50eHQ6VVRGODpSRVZFUlNFCisKK0FueS1BY2NlbnRzOmZpbGU6VHJhbnNsaXRlcmF0b3JfQW55X0FjY2VudHMudHh0OlVURjg6Rk9SV0FSRAorQWNjZW50cy1Bbnk6ZmlsZTpUcmFuc2xpdGVyYXRvcl9BbnlfQWNjZW50cy50eHQ6VVRGODpSRVZFUlNFCisKK0FueS1QdWJsaXNoaW5nOmZpbGU6VHJhbnNsaXRlcmF0b3JfQW55X1B1Ymxpc2hpbmcudHh0OlVURjg6Rk9SV0FSRAorUHVibGlzaGluZy1Bbnk6ZmlsZTpUcmFuc2xpdGVyYXRvcl9BbnlfUHVibGlzaGluZy50eHQ6VVRGODpSRVZFUlNFCisKKyMgS29yZWFuCisjIE4uQi4gRG9uJ3QgZW5kIExhdGluLUphbW8gd2l0aCBORkM7IHRoYXQgcHJvZHVjZXMgSGFuZ3VsLiAgRm9yCisjIEhhbmd1bCBvdXRwdXQgdXNlIExhdGluLUhhbmd1bC4KKworTG93ZXJMYXRpbi1KYW1vOmludGVybmFsOlRyYW5zbGl0ZXJhdG9yX0xhdGluX0phbW8udHh0OlVURjg6Rk9SV0FSRAorSmFtby1Mb3dlckxhdGluOmludGVybmFsOlRyYW5zbGl0ZXJhdG9yX0xhdGluX0phbW8udHh0OlVURjg6UkVWRVJTRQorTGF0aW4tSmFtbzphbGlhczpbJ0EtWmEtelx1MDBDMC1cdTAwQzVcdTAwQzctXHUwMENGXHUwMEQxLVx1MDBENlx1MDBEOS1cdTAwRERcdTAwRTAtXHUwMEU1XHUwMEU3LVx1MDBFRlx1MDBGMS1cdTAwRjZcdTAwRjktXHUwMEZEXHUwMEZGLVx1MDEwRlx1MDExMi1cdTAxMjVcdTAxMjgtXHUwMTMwXHUwMTM0LVx1MDEzN1x1MDEzOS1cdTAxM0VcdTAxNDMtXHUwMTQ4XHUwMTRDLVx1MDE1MVx1MDE1NC1cdTAxNjVcdTAxNjgtXHUwMTdFXHUwMUEwLVx1MDFBMVx1MDFBRi1cdTAxQjBcdTAxQ0QtXHUwMURDXHUwMURFLVx1MDFFMVx1MDFFNi1cdTAxRURcdTAxRjBcdTAxRjQtXHUwMUY1XHUwMUY4LVx1MDFGQlx1MDIwMC1cdTAyMUJcdTAyMUUtXHUwMjFGXHUwMjI2LVx1MDIzM1x1MUUwMC1cdTFFOTlcdTFFQTAtXHUxRUY5XHUyMTJBLVx1MjEyQl07TkZEO0xvd2VyO0xvd2VyTGF0aW4tSmFtbworSmFtby1MYXRpbjphbGlhczpbJ1x1MTEwMC1cdTExMTJcdTExNjEtXHUxMTc1XHUxMUE4LVx1MTFDMlx1QUMwMC1cdUQ3QTNdO05GRDtKYW1vLUxvd2VyTGF0aW47TkZDCitMYXRpbi1IYW5ndWw6YWxpYXM6WydBLVphLXpcdTAwQzAtXHUwMEM1XHUwMEM3LVx1MDBDRlx1MDBEMS1cdTAwRDZcdTAwRDktXHUwMEREXHUwMEUwLVx1MDBFNVx1MDBFNy1cdTAwRUZcdTAwRjEtXHUwMEY2XHUwMEY5LVx1MDBGRFx1MDBGRi1cdTAxMEZcdTAxMTItXHUwMTI1XHUwMTI4LVx1MDEzMFx1MDEzNC1cdTAxMzdcdTAxMzktXHUwMTNFXHUwMTQzLVx1MDE0OFx1MDE0Qy1cdTAxNTFcdTAxNTQtXHUwMTY1XHUwMTY4LVx1MDE3RVx1MDFBMC1cdTAxQTFcdTAxQUYtXHUwMUIwXHUwMUNELVx1MDFEQ1x1MDFERS1cdTAxRTFcdTAxRTYtXHUwMUVEXHUwMUYwXHUwMUY0LVx1MDFGNVx1MDFGOC1cdTAxRkJcdTAyMDAtXHUwMjFCXHUwMjFFLVx1MDIxRlx1MDIyNi1cdTAyMzNcdTFFMDAtXHUxRTk5XHUxRUEwLVx1MUVGOVx1MjEyQS1cdTIxMkJdO05GRDtMb3dlcjtMb3dlckxhdGluLUphbW87TkZDCitIYW5ndWwtTGF0aW46YWxpYXM6WydcdTExMDAtXHUxMTEyXHUxMTYxLVx1MTE3NVx1MTFBOC1cdTExQzJcdTMxMzEtXHUzMTNGXHUzMTQxLVx1MzE0M1x1MzE0NS1cdTMxNjNcdTMyMDAtXHUzMjFDXHUzMjYwLVx1MzI3Qlx1QUMwMC1cdUQ3QTNcdUZGMDdcdUZGQTEtXHVGRkFGXHVGRkIxLVx1RkZCM1x1RkZCNS1cdUZGQkVcdUZGQzItXHVGRkM3XHVGRkNBLVx1RkZDRlx1RkZEMi1cdUZGRDdcdUZGREEtXHVGRkRDXTtORktEO0phbW8tTG93ZXJMYXRpbjtORkMKKworIyBJbnRlci1JbmRpYyBjb21wb3NlZCBydWxlcworTGF0aW4tSW50ZXJJbmRpYzppbnRlcm5hbDpUcmFuc2xpdGVyYXRvcl9MYXRpbl9JbnRlckluZGljLnR4dDpVVEY4OkZPUldBUkQKK0RldmFuYWdhcmktSW50ZXJJbmRpYzppbnRlcm5hbDpUcmFuc2xpdGVyYXRvcl9EZXZhbmFnYXJpX0ludGVySW5kaWMudHh0OlVURjg6Rk9SV0FSRAorQmVuZ2FsaS1JbnRlckluZGljOmludGVybmFsOlRyYW5zbGl0ZXJhdG9yX0JlbmdhbGlfSW50ZXJJbmRpYy50eHQ6VVRGODpGT1JXQVJECitHdXJtdWtoaS1JbnRlckluZGljOmludGVybmFsOlRyYW5zbGl0ZXJhdG9yX0d1cm11a2hpX0ludGVySW5kaWMudHh0OlVURjg6Rk9SV0FSRAorR3VqYXJhdGktSW50ZXJJbmRpYzppbnRlcm5hbDpUcmFuc2xpdGVyYXRvcl9HdWphcmF0aV9JbnRlckluZGljLnR4dDpVVEY4OkZPUldBUkQKK09yaXlhLUludGVySW5kaWM6aW50ZXJuYWw6VHJhbnNsaXRlcmF0b3JfT3JpeWFfSW50ZXJJbmRpYy50eHQ6VVRGODpGT1JXQVJECitUYW1pbC1JbnRlckluZGljOmludGVybmFsOlRyYW5zbGl0ZXJhdG9yX1RhbWlsX0ludGVySW5kaWMudHh0OlVURjg6Rk9SV0FSRAorVGVsdWd1LUludGVySW5kaWM6aW50ZXJuYWw6VHJhbnNsaXRlcmF0b3JfVGVsdWd1X0ludGVySW5kaWMudHh0OlVURjg6Rk9SV0FSRAorS2FubmFkYS1JbnRlckluZGljOmludGVybmFsOlRyYW5zbGl0ZXJhdG9yX0thbm5hZGFfSW50ZXJJbmRpYy50eHQ6VVRGODpGT1JXQVJECitNYWxheWFsYW0tSW50ZXJJbmRpYzppbnRlcm5hbDpUcmFuc2xpdGVyYXRvcl9NYWxheWFsYW1fSW50ZXJJbmRpYy50eHQ6VVRGODpGT1JXQVJECisKK0ludGVySW5kaWMtTGF0aW46aW50ZXJuYWw6VHJhbnNsaXRlcmF0b3JfSW50ZXJJbmRpY19MYXRpbi50eHQ6VVRGODpGT1JXQVJECitJbnRlckluZGljLURldmFuYWdhcmk6aW50ZXJuYWw6VHJhbnNsaXRlcmF0b3JfSW50ZXJJbmRpY19EZXZhbmFnYXJpLnR4dDpVVEY4OkZPUldBUkQKK0ludGVySW5kaWMtQmVuZ2FsaTppbnRlcm5hbDpUcmFuc2xpdGVyYXRvcl9JbnRlckluZGljX0JlbmdhbGkudHh0OlVURjg6Rk9SV0FSRAorSW50ZXJJbmRpYy1HdXJtdWtoaTppbnRlcm5hbDpUcmFuc2xpdGVyYXRvcl9JbnRlckluZGljX0d1cm11a2hpLnR4dDpVVEY4OkZPUldBUkQKK0ludGVySW5kaWMtR3VqYXJhdGk6aW50ZXJuYWw6VHJhbnNsaXRlcmF0b3JfSW50ZXJJbmRpY19HdWphcmF0aS50eHQ6VVRGODpGT1JXQVJECitJbnRlckluZGljLU9yaXlhOmludGVybmFsOlRyYW5zbGl0ZXJhdG9yX0ludGVySW5kaWNfT3JpeWEudHh0OlVURjg6Rk9SV0FSRAorSW50ZXJJbmRpYy1UYW1pbDppbnRlcm5hbDpUcmFuc2xpdGVyYXRvcl9JbnRlckluZGljX1RhbWlsLnR4dDpVVEY4OkZPUldBUkQKK0ludGVySW5kaWMtVGVsdWd1OmludGVybmFsOlRyYW5zbGl0ZXJhdG9yX0ludGVySW5kaWNfVGVsdWd1LnR4dDpVVEY4OkZPUldBUkQKK0ludGVySW5kaWMtS2FubmFkYTppbnRlcm5hbDpUcmFuc2xpdGVyYXRvcl9JbnRlckluZGljX0thbm5hZGEudHh0OlVURjg6Rk9SV0FSRAorSW50ZXJJbmRpYy1NYWxheWFsYW06aW50ZXJuYWw6VHJhbnNsaXRlcmF0b3JfSW50ZXJJbmRpY19NYWxheWFsYW0udHh0OlVURjg6Rk9SV0FSRAorCisjTGF0aW4tSW5kaWMgdHJhbnNsaXRlcmF0b3JzCitMYXRpbi1EZXZhbmFnYXJpOmFsaWFzOlsnLjAtOUEtWmEten5cdTAwQzAtXHUwMEM1XHUwMEM3LVx1MDBDRlx1MDBEMS1cdTAwRDZcdTAwRDktXHUwMEREXHUwMEUwLVx1MDBFNVx1MDBFNy1cdTAwRUZcdTAwRjEtXHUwMEY2XHUwMEY5LVx1MDBGRFx1MDBGRi1cdTAxMEZcdTAxMTItXHUwMTI1XHUwMTI4LVx1MDEzMFx1MDEzNC1cdTAxMzdcdTAxMzktXHUwMTNFXHUwMTQzLVx1MDE0OFx1MDE0Qy1cdTAxNTFcdTAxNTQtXHUwMTY1XHUwMTY4LVx1MDE3RVx1MDFBMC1cdTAxQTFcdTAxQUYtXHUwMUIwXHUwMUNELVx1MDFEQ1x1MDFERS1cdTAxRTNcdTAxRTYtXHUwMUVEXHUwMUYwXHUwMUY0LVx1MDFGNVx1MDFGOC1cdTAyMUJcdTAyMUUtXHUwMjFGXHUwMjI2LVx1MDIzM1x1MDMwMVx1MDMwMy1cdTAzMDRcdTAzMDYtXHUwMzA3XHUwMzEwXHUwMzE0LVx1MDMxNVx1MDMyM1x1MDMyNVx1MDMzMVx1MDM0MVx1MDM0NFx1MDM4NS1cdTAzODZcdTAzODgtXHUwMzhBXHUwMzhDXHUwMzhFLVx1MDM5MFx1MDNBQy1cdTAzQjBcdTAzQ0MtXHUwM0NFXHUwM0QzXHUwNDAzXHUwNDBDXHUwNDBFXHUwNDE5XHUwNDM5XHUwNDUzXHUwNDVDXHUwNDVFXHUwNEMxLVx1MDRDMlx1MDREMC1cdTA0RDFcdTA0RDYtXHUwNEQ3XHUwNEUyLVx1MDRFM1x1MDRFRS1cdTA0RUZcdTFFMDAtXHUxRTk5XHUxRUEwLVx1MUVGOVx1MUYwMVx1MUYwMy1cdTFGMDVcdTFGMDdcdTFGMDlcdTFGMEItXHUxRjBEXHUxRjBGXHUxRjExXHUxRjEzLVx1MUYxNVx1MUYxOVx1MUYxQi1cdTFGMURcdTFGMjFcdTFGMjMtXHUxRjI1XHUxRjI3XHUxRjI5XHUxRjJCLVx1MUYyRFx1MUYyRlx1MUYzMVx1MUYzMy1cdTFGMzVcdTFGMzdcdTFGMzlcdTFGM0ItXHUxRjNEXHUxRjNGXHUxRjQxXHUxRjQzLVx1MUY0NVx1MUY0OVx1MUY0Qi1cdTFGNERcdTFGNTFcdTFGNTMtXHUxRjU1XHUxRjU3XHUxRjU5XHUxRjVCXHUxRjVEXHUxRjVGXHUxRjYxXHUxRjYzLVx1MUY2NVx1MUY2N1x1MUY2OVx1MUY2Qi1cdTFGNkRcdTFGNkZcdTFGNzFcdTFGNzNcdTFGNzVcdTFGNzdcdTFGNzlcdTFGN0JcdTFGN0RcdTFGODFcdTFGODMtXHUxRjg1XHUxRjg3XHUxRjg5XHUxRjhCLVx1MUY4RFx1MUY4Rlx1MUY5MVx1MUY5My1cdTFGOTVcdTFGOTdcdTFGOTlcdTFGOUItXHUxRjlEXHUxRjlGXHUxRkExXHUxRkEzLVx1MUZBNVx1MUZBN1x1MUZBOVx1MUZBQi1cdTFGQURcdTFGQUYtXHUxRkIxXHUxRkI0XHUxRkI4LVx1MUZCOVx1MUZCQlx1MUZDNFx1MUZDOVx1MUZDQlx1MUZDRVx1MUZEMC1cdTFGRDFcdTFGRDNcdTFGRDgtXHUxRkQ5XHUxRkRCXHUxRkRFXHUxRkUwLVx1MUZFMVx1MUZFM1x1MUZFNVx1MUZFOC1cdTFGRTlcdTFGRUItXHUxRkVDXHUxRkVFXHUxRkY0XHUxRkY5XHUxRkZCXHUyMTJBLVx1MjEyQlx1RTA0RFx1RTA2NF07TkZEO0xvd2VyO0xhdGluLUludGVySW5kaWM7SW50ZXJJbmRpYy1EZXZhbmFnYXJpO05GQworTGF0aW4tQmVuZ2FsaTphbGlhczpbJy4wLTlBLVphLXp+XHUwMEMwLVx1MDBDNVx1MDBDNy1cdTAwQ0ZcdTAwRDEtXHUwMEQ2XHUwMEQ5LVx1MDBERFx1MDBFMC1cdTAwRTVcdTAwRTctXHUwMEVGXHUwMEYxLVx1MDBGNlx1MDBGOS1cdTAwRkRcdTAwRkYtXHUwMTBGXHUwMTEyLVx1MDEyNVx1MDEyOC1cdTAxMzBcdTAxMzQtXHUwMTM3XHUwMTM5LVx1MDEzRVx1MDE0My1cdTAxNDhcdTAxNEMtXHUwMTUxXHUwMTU0LVx1MDE2NVx1MDE2OC1cdTAxN0VcdTAxQTAtXHUwMUExXHUwMUFGLVx1MDFCMFx1MDFDRC1cdTAxRENcdTAxREUtXHUwMUUzXHUwMUU2LVx1MDFFRFx1MDFGMFx1MDFGNC1cdTAxRjVcdTAxRjgtXHUwMjFCXHUwMjFFLVx1MDIxRlx1MDIyNi1cdTAyMzNcdTAzMDFcdTAzMDMtXHUwMzA0XHUwMzA2LVx1MDMwN1x1MDMxMFx1MDMxNC1cdTAzMTVcdTAzMjNcdTAzMjVcdTAzMzFcdTAzNDFcdTAzNDRcdTAzODUtXHUwMzg2XHUwMzg4LVx1MDM4QVx1MDM4Q1x1MDM4RS1cdTAzOTBcdTAzQUMtXHUwM0IwXHUwM0NDLVx1MDNDRVx1MDNEM1x1MDQwM1x1MDQwQ1x1MDQwRVx1MDQxOVx1MDQzOVx1MDQ1M1x1MDQ1Q1x1MDQ1RVx1MDRDMS1cdTA0QzJcdTA0RDAtXHUwNEQxXHUwNEQ2LVx1MDREN1x1MDRFMi1cdTA0RTNcdTA0RUUtXHUwNEVGXHUxRTAwLVx1MUU5OVx1MUVBMC1cdTFFRjlcdTFGMDFcdTFGMDMtXHUxRjA1XHUxRjA3XHUxRjA5XHUxRjBCLVx1MUYwRFx1MUYwRlx1MUYxMVx1MUYxMy1cdTFGMTVcdTFGMTlcdTFGMUItXHUxRjFEXHUxRjIxXHUxRjIzLVx1MUYyNVx1MUYyN1x1MUYyOVx1MUYyQi1cdTFGMkRcdTFGMkZcdTFGMzFcdTFGMzMtXHUxRjM1XHUxRjM3XHUxRjM5XHUxRjNCLVx1MUYzRFx1MUYzRlx1MUY0MVx1MUY0My1cdTFGNDVcdTFGNDlcdTFGNEItXHUxRjREXHUxRjUxXHUxRjUzLVx1MUY1NVx1MUY1N1x1MUY1OVx1MUY1Qlx1MUY1RFx1MUY1Rlx1MUY2MVx1MUY2My1cdTFGNjVcdTFGNjdcdTFGNjlcdTFGNkItXHUxRjZEXHUxRjZGXHUxRjcxXHUxRjczXHUxRjc1XHUxRjc3XHUxRjc5XHUxRjdCXHUxRjdEXHUxRjgxXHUxRjgzLVx1MUY4NVx1MUY4N1x1MUY4OVx1MUY4Qi1cdTFGOERcdTFGOEZcdTFGOTFcdTFGOTMtXHUxRjk1XHUxRjk3XHUxRjk5XHUxRjlCLVx1MUY5RFx1MUY5Rlx1MUZBMVx1MUZBMy1cdTFGQTVcdTFGQTdcdTFGQTlcdTFGQUItXHUxRkFEXHUxRkFGLVx1MUZCMVx1MUZCNFx1MUZCOC1cdTFGQjlcdTFGQkJcdTFGQzRcdTFGQzlcdTFGQ0JcdTFGQ0VcdTFGRDAtXHUxRkQxXHUxRkQzXHUxRkQ4LVx1MUZEOVx1MUZEQlx1MUZERVx1MUZFMC1cdTFGRTFcdTFGRTNcdTFGRTVcdTFGRTgtXHUxRkU5XHUxRkVCLVx1MUZFQ1x1MUZFRVx1MUZGNFx1MUZGOVx1MUZGQlx1MjEyQS1cdTIxMkJcdUUwNERcdUUwNjRdO05GRDtMb3dlcjtMYXRpbi1JbnRlckluZGljO0ludGVySW5kaWMtQmVuZ2FsaTtORkMKK0xhdGluLUd1cm11a2hpOmFsaWFzOlsnLjAtOUEtWmEten5cdTAwQzAtXHUwMEM1XHUwMEM3LVx1MDBDRlx1MDBEMS1cdTAwRDZcdTAwRDktXHUwMEREXHUwMEUwLVx1MDBFNVx1MDBFNy1cdTAwRUZcdTAwRjEtXHUwMEY2XHUwMEY5LVx1MDBGRFx1MDBGRi1cdTAxMEZcdTAxMTItXHUwMTI1XHUwMTI4LVx1MDEzMFx1MDEzNC1cdTAxMzdcdTAxMzktXHUwMTNFXHUwMTQzLVx1MDE0OFx1MDE0Qy1cdTAxNTFcdTAxNTQtXHUwMTY1XHUwMTY4LVx1MDE3RVx1MDFBMC1cdTAxQTFcdTAxQUYtXHUwMUIwXHUwMUNELVx1MDFEQ1x1MDFERS1cdTAxRTNcdTAxRTYtXHUwMUVEXHUwMUYwXHUwMUY0LVx1MDFGNVx1MDFGOC1cdTAyMUJcdTAyMUUtXHUwMjFGXHUwMjI2LVx1MDIzM1x1MDMwMVx1MDMwMy1cdTAzMDRcdTAzMDYtXHUwMzA3XHUwMzEwXHUwMzE0LVx1MDMxNVx1MDMyM1x1MDMyNVx1MDMzMVx1MDM0MVx1MDM0NFx1MDM4NS1cdTAzODZcdTAzODgtXHUwMzhBXHUwMzhDXHUwMzhFLVx1MDM5MFx1MDNBQy1cdTAzQjBcdTAzQ0MtXHUwM0NFXHUwM0QzXHUwNDAzXHUwNDBDXHUwNDBFXHUwNDE5XHUwNDM5XHUwNDUzXHUwNDVDXHUwNDVFXHUwNEMxLVx1MDRDMlx1MDREMC1cdTA0RDFcdTA0RDYtXHUwNEQ3XHUwNEUyLVx1MDRFM1x1MDRFRS1cdTA0RUZcdTFFMDAtXHUxRTk5XHUxRUEwLVx1MUVGOVx1MUYwMVx1MUYwMy1cdTFGMDVcdTFGMDdcdTFGMDlcdTFGMEItXHUxRjBEXHUxRjBGXHUxRjExXHUxRjEzLVx1MUYxNVx1MUYxOVx1MUYxQi1cdTFGMURcdTFGMjFcdTFGMjMtXHUxRjI1XHUxRjI3XHUxRjI5XHUxRjJCLVx1MUYyRFx1MUYyRlx1MUYzMVx1MUYzMy1cdTFGMzVcdTFGMzdcdTFGMzlcdTFGM0ItXHUxRjNEXHUxRjNGXHUxRjQxXHUxRjQzLVx1MUY0NVx1MUY0OVx1MUY0Qi1cdTFGNERcdTFGNTFcdTFGNTMtXHUxRjU1XHUxRjU3XHUxRjU5XHUxRjVCXHUxRjVEXHUxRjVGXHUxRjYxXHUxRjYzLVx1MUY2NVx1MUY2N1x1MUY2OVx1MUY2Qi1cdTFGNkRcdTFGNkZcdTFGNzFcdTFGNzNcdTFGNzVcdTFGNzdcdTFGNzlcdTFGN0JcdTFGN0RcdTFGODFcdTFGODMtXHUxRjg1XHUxRjg3XHUxRjg5XHUxRjhCLVx1MUY4RFx1MUY4Rlx1MUY5MVx1MUY5My1cdTFGOTVcdTFGOTdcdTFGOTlcdTFGOUItXHUxRjlEXHUxRjlGXHUxRkExXHUxRkEzLVx1MUZBNVx1MUZBN1x1MUZBOVx1MUZBQi1cdTFGQURcdTFGQUYtXHUxRkIxXHUxRkI0XHUxRkI4LVx1MUZCOVx1MUZCQlx1MUZDNFx1MUZDOVx1MUZDQlx1MUZDRVx1MUZEMC1cdTFGRDFcdTFGRDNcdTFGRDgtXHUxRkQ5XHUxRkRCXHUxRkRFXHUxRkUwLVx1MUZFMVx1MUZFM1x1MUZFNVx1MUZFOC1cdTFGRTlcdTFGRUItXHUxRkVDXHUxRkVFXHUxRkY0XHUxRkY5XHUxRkZCXHUyMTJBLVx1MjEyQlx1RTA0RFx1RTA2NF07TkZEO0xvd2VyO0xhdGluLUludGVySW5kaWM7SW50ZXJJbmRpYy1HdXJtdWtoaTtORkMKK0xhdGluLUd1amFyYXRpOmFsaWFzOlsnLjAtOUEtWmEten5cdTAwQzAtXHUwMEM1XHUwMEM3LVx1MDBDRlx1MDBEMS1cdTAwRDZcdTAwRDktXHUwMEREXHUwMEUwLVx1MDBFNVx1MDBFNy1cdTAwRUZcdTAwRjEtXHUwMEY2XHUwMEY5LVx1MDBGRFx1MDBGRi1cdTAxMEZcdTAxMTItXHUwMTI1XHUwMTI4LVx1MDEzMFx1MDEzNC1cdTAxMzdcdTAxMzktXHUwMTNFXHUwMTQzLVx1MDE0OFx1MDE0Qy1cdTAxNTFcdTAxNTQtXHUwMTY1XHUwMTY4LVx1MDE3RVx1MDFBMC1cdTAxQTFcdTAxQUYtXHUwMUIwXHUwMUNELVx1MDFEQ1x1MDFERS1cdTAxRTNcdTAxRTYtXHUwMUVEXHUwMUYwXHUwMUY0LVx1MDFGNVx1MDFGOC1cdTAyMUJcdTAyMUUtXHUwMjFGXHUwMjI2LVx1MDIzM1x1MDMwMVx1MDMwMy1cdTAzMDRcdTAzMDYtXHUwMzA3XHUwMzEwXHUwMzE0LVx1MDMxNVx1MDMyM1x1MDMyNVx1MDMzMVx1MDM0MVx1MDM0NFx1MDM4NS1cdTAzODZcdTAzODgtXHUwMzhBXHUwMzhDXHUwMzhFLVx1MDM5MFx1MDNBQy1cdTAzQjBcdTAzQ0MtXHUwM0NFXHUwM0QzXHUwNDAzXHUwNDBDXHUwNDBFXHUwNDE5XHUwNDM5XHUwNDUzXHUwNDVDXHUwNDVFXHUwNEMxLVx1MDRDMlx1MDREMC1cdTA0RDFcdTA0RDYtXHUwNEQ3XHUwNEUyLVx1MDRFM1x1MDRFRS1cdTA0RUZcdTFFMDAtXHUxRTk5XHUxRUEwLVx1MUVGOVx1MUYwMVx1MUYwMy1cdTFGMDVcdTFGMDdcdTFGMDlcdTFGMEItXHUxRjBEXHUxRjBGXHUxRjExXHUxRjEzLVx1MUYxNVx1MUYxOVx1MUYxQi1cdTFGMURcdTFGMjFcdTFGMjMtXHUxRjI1XHUxRjI3XHUxRjI5XHUxRjJCLVx1MUYyRFx1MUYyRlx1MUYzMVx1MUYzMy1cdTFGMzVcdTFGMzdcdTFGMzlcdTFGM0ItXHUxRjNEXHUxRjNGXHUxRjQxXHUxRjQzLVx1MUY0NVx1MUY0OVx1MUY0Qi1cdTFGNERcdTFGNTFcdTFGNTMtXHUxRjU1XHUxRjU3XHUxRjU5XHUxRjVCXHUxRjVEXHUxRjVGXHUxRjYxXHUxRjYzLVx1MUY2NVx1MUY2N1x1MUY2OVx1MUY2Qi1cdTFGNkRcdTFGNkZcdTFGNzFcdTFGNzNcdTFGNzVcdTFGNzdcdTFGNzlcdTFGN0JcdTFGN0RcdTFGODFcdTFGODMtXHUxRjg1XHUxRjg3XHUxRjg5XHUxRjhCLVx1MUY4RFx1MUY4Rlx1MUY5MVx1MUY5My1cdTFGOTVcdTFGOTdcdTFGOTlcdTFGOUItXHUxRjlEXHUxRjlGXHUxRkExXHUxRkEzLVx1MUZBNVx1MUZBN1x1MUZBOVx1MUZBQi1cdTFGQURcdTFGQUYtXHUxRkIxXHUxRkI0XHUxRkI4LVx1MUZCOVx1MUZCQlx1MUZDNFx1MUZDOVx1MUZDQlx1MUZDRVx1MUZEMC1cdTFGRDFcdTFGRDNcdTFGRDgtXHUxRkQ5XHUxRkRCXHUxRkRFXHUxRkUwLVx1MUZFMVx1MUZFM1x1MUZFNVx1MUZFOC1cdTFGRTlcdTFGRUItXHUxRkVDXHUxRkVFXHUxRkY0XHUxRkY5XHUxRkZCXHUyMTJBLVx1MjEyQlx1RTA0RFx1RTA2NF07TkZEO0xvd2VyO0xhdGluLUludGVySW5kaWM7SW50ZXJJbmRpYy1HdWphcmF0aTtORkMKK0xhdGluLU9yaXlhOmFsaWFzOlsnLjAtOUEtWmEten5cdTAwQzAtXHUwMEM1XHUwMEM3LVx1MDBDRlx1MDBEMS1cdTAwRDZcdTAwRDktXHUwMEREXHUwMEUwLVx1MDBFNVx1MDBFNy1cdTAwRUZcdTAwRjEtXHUwMEY2XHUwMEY5LVx1MDBGRFx1MDBGRi1cdTAxMEZcdTAxMTItXHUwMTI1XHUwMTI4LVx1MDEzMFx1MDEzNC1cdTAxMzdcdTAxMzktXHUwMTNFXHUwMTQzLVx1MDE0OFx1MDE0Qy1cdTAxNTFcdTAxNTQtXHUwMTY1XHUwMTY4LVx1MDE3RVx1MDFBMC1cdTAxQTFcdTAxQUYtXHUwMUIwXHUwMUNELVx1MDFEQ1x1MDFERS1cdTAxRTNcdTAxRTYtXHUwMUVEXHUwMUYwXHUwMUY0LVx1MDFGNVx1MDFGOC1cdTAyMUJcdTAyMUUtXHUwMjFGXHUwMjI2LVx1MDIzM1x1MDMwMVx1MDMwMy1cdTAzMDRcdTAzMDYtXHUwMzA3XHUwMzEwXHUwMzE0LVx1MDMxNVx1MDMyM1x1MDMyNVx1MDMzMVx1MDM0MVx1MDM0NFx1MDM4NS1cdTAzODZcdTAzODgtXHUwMzhBXHUwMzhDXHUwMzhFLVx1MDM5MFx1MDNBQy1cdTAzQjBcdTAzQ0MtXHUwM0NFXHUwM0QzXHUwNDAzXHUwNDBDXHUwNDBFXHUwNDE5XHUwNDM5XHUwNDUzXHUwNDVDXHUwNDVFXHUwNEMxLVx1MDRDMlx1MDREMC1cdTA0RDFcdTA0RDYtXHUwNEQ3XHUwNEUyLVx1MDRFM1x1MDRFRS1cdTA0RUZcdTFFMDAtXHUxRTk5XHUxRUEwLVx1MUVGOVx1MUYwMVx1MUYwMy1cdTFGMDVcdTFGMDdcdTFGMDlcdTFGMEItXHUxRjBEXHUxRjBGXHUxRjExXHUxRjEzLVx1MUYxNVx1MUYxOVx1MUYxQi1cdTFGMURcdTFGMjFcdTFGMjMtXHUxRjI1XHUxRjI3XHUxRjI5XHUxRjJCLVx1MUYyRFx1MUYyRlx1MUYzMVx1MUYzMy1cdTFGMzVcdTFGMzdcdTFGMzlcdTFGM0ItXHUxRjNEXHUxRjNGXHUxRjQxXHUxRjQzLVx1MUY0NVx1MUY0OVx1MUY0Qi1cdTFGNERcdTFGNTFcdTFGNTMtXHUxRjU1XHUxRjU3XHUxRjU5XHUxRjVCXHUxRjVEXHUxRjVGXHUxRjYxXHUxRjYzLVx1MUY2NVx1MUY2N1x1MUY2OVx1MUY2Qi1cdTFGNkRcdTFGNkZcdTFGNzFcdTFGNzNcdTFGNzVcdTFGNzdcdTFGNzlcdTFGN0JcdTFGN0RcdTFGODFcdTFGODMtXHUxRjg1XHUxRjg3XHUxRjg5XHUxRjhCLVx1MUY4RFx1MUY4Rlx1MUY5MVx1MUY5My1cdTFGOTVcdTFGOTdcdTFGOTlcdTFGOUItXHUxRjlEXHUxRjlGXHUxRkExXHUxRkEzLVx1MUZBNVx1MUZBN1x1MUZBOVx1MUZBQi1cdTFGQURcdTFGQUYtXHUxRkIxXHUxRkI0XHUxRkI4LVx1MUZCOVx1MUZCQlx1MUZDNFx1MUZDOVx1MUZDQlx1MUZDRVx1MUZEMC1cdTFGRDFcdTFGRDNcdTFGRDgtXHUxRkQ5XHUxRkRCXHUxRkRFXHUxRkUwLVx1MUZFMVx1MUZFM1x1MUZFNVx1MUZFOC1cdTFGRTlcdTFGRUItXHUxRkVDXHUxRkVFXHUxRkY0XHUxRkY5XHUxRkZCXHUyMTJBLVx1MjEyQlx1RTA0RFx1RTA2NF07TkZEO0xvd2VyO0xhdGluLUludGVySW5kaWM7SW50ZXJJbmRpYy1Pcml5YTtORkMKK0xhdGluLVRhbWlsOmFsaWFzOlsnLjAtOUEtWmEten5cdTAwQzAtXHUwMEM1XHUwMEM3LVx1MDBDRlx1MDBEMS1cdTAwRDZcdTAwRDktXHUwMEREXHUwMEUwLVx1MDBFNVx1MDBFNy1cdTAwRUZcdTAwRjEtXHUwMEY2XHUwMEY5LVx1MDBGRFx1MDBGRi1cdTAxMEZcdTAxMTItXHUwMTI1XHUwMTI4LVx1MDEzMFx1MDEzNC1cdTAxMzdcdTAxMzktXHUwMTNFXHUwMTQzLVx1MDE0OFx1MDE0Qy1cdTAxNTFcdTAxNTQtXHUwMTY1XHUwMTY4LVx1MDE3RVx1MDFBMC1cdTAxQTFcdTAxQUYtXHUwMUIwXHUwMUNELVx1MDFEQ1x1MDFERS1cdTAxRTNcdTAxRTYtXHUwMUVEXHUwMUYwXHUwMUY0LVx1MDFGNVx1MDFGOC1cdTAyMUJcdTAyMUUtXHUwMjFGXHUwMjI2LVx1MDIzM1x1MDMwMVx1MDMwMy1cdTAzMDRcdTAzMDYtXHUwMzA3XHUwMzEwXHUwMzE0LVx1MDMxNVx1MDMyM1x1MDMyNVx1MDMzMVx1MDM0MVx1MDM0NFx1MDM4NS1cdTAzODZcdTAzODgtXHUwMzhBXHUwMzhDXHUwMzhFLVx1MDM5MFx1MDNBQy1cdTAzQjBcdTAzQ0MtXHUwM0NFXHUwM0QzXHUwNDAzXHUwNDBDXHUwNDBFXHUwNDE5XHUwNDM5XHUwNDUzXHUwNDVDXHUwNDVFXHUwNEMxLVx1MDRDMlx1MDREMC1cdTA0RDFcdTA0RDYtXHUwNEQ3XHUwNEUyLVx1MDRFM1x1MDRFRS1cdTA0RUZcdTFFMDAtXHUxRTk5XHUxRUEwLVx1MUVGOVx1MUYwMVx1MUYwMy1cdTFGMDVcdTFGMDdcdTFGMDlcdTFGMEItXHUxRjBEXHUxRjBGXHUxRjExXHUxRjEzLVx1MUYxNVx1MUYxOVx1MUYxQi1cdTFGMURcdTFGMjFcdTFGMjMtXHUxRjI1XHUxRjI3XHUxRjI5XHUxRjJCLVx1MUYyRFx1MUYyRlx1MUYzMVx1MUYzMy1cdTFGMzVcdTFGMzdcdTFGMzlcdTFGM0ItXHUxRjNEXHUxRjNGXHUxRjQxXHUxRjQzLVx1MUY0NVx1MUY0OVx1MUY0Qi1cdTFGNERcdTFGNTFcdTFGNTMtXHUxRjU1XHUxRjU3XHUxRjU5XHUxRjVCXHUxRjVEXHUxRjVGXHUxRjYxXHUxRjYzLVx1MUY2NVx1MUY2N1x1MUY2OVx1MUY2Qi1cdTFGNkRcdTFGNkZcdTFGNzFcdTFGNzNcdTFGNzVcdTFGNzdcdTFGNzlcdTFGN0JcdTFGN0RcdTFGODFcdTFGODMtXHUxRjg1XHUxRjg3XHUxRjg5XHUxRjhCLVx1MUY4RFx1MUY4Rlx1MUY5MVx1MUY5My1cdTFGOTVcdTFGOTdcdTFGOTlcdTFGOUItXHUxRjlEXHUxRjlGXHUxRkExXHUxRkEzLVx1MUZBNVx1MUZBN1x1MUZBOVx1MUZBQi1cdTFGQURcdTFGQUYtXHUxRkIxXHUxRkI0XHUxRkI4LVx1MUZCOVx1MUZCQlx1MUZDNFx1MUZDOVx1MUZDQlx1MUZDRVx1MUZEMC1cdTFGRDFcdTFGRDNcdTFGRDgtXHUxRkQ5XHUxRkRCXHUxRkRFXHUxRkUwLVx1MUZFMVx1MUZFM1x1MUZFNVx1MUZFOC1cdTFGRTlcdTFGRUItXHUxRkVDXHUxRkVFXHUxRkY0XHUxRkY5XHUxRkZCXHUyMTJBLVx1MjEyQlx1RTA0RFx1RTA2NF07TkZEO0xvd2VyO0xhdGluLUludGVySW5kaWM7SW50ZXJJbmRpYy1UYW1pbDtORkMKK0xhdGluLVRlbHVndTphbGlhczpbJy4wLTlBLVphLXp+XHUwMEMwLVx1MDBDNVx1MDBDNy1cdTAwQ0ZcdTAwRDEtXHUwMEQ2XHUwMEQ5LVx1MDBERFx1MDBFMC1cdTAwRTVcdTAwRTctXHUwMEVGXHUwMEYxLVx1MDBGNlx1MDBGOS1cdTAwRkRcdTAwRkYtXHUwMTBGXHUwMTEyLVx1MDEyNVx1MDEyOC1cdTAxMzBcdTAxMzQtXHUwMTM3XHUwMTM5LVx1MDEzRVx1MDE0My1cdTAxNDhcdTAxNEMtXHUwMTUxXHUwMTU0LVx1MDE2NVx1MDE2OC1cdTAxN0VcdTAxQTAtXHUwMUExXHUwMUFGLVx1MDFCMFx1MDFDRC1cdTAxRENcdTAxREUtXHUwMUUzXHUwMUU2LVx1MDFFRFx1MDFGMFx1MDFGNC1cdTAxRjVcdTAxRjgtXHUwMjFCXHUwMjFFLVx1MDIxRlx1MDIyNi1cdTAyMzNcdTAzMDFcdTAzMDMtXHUwMzA0XHUwMzA2LVx1MDMwN1x1MDMxMFx1MDMxNC1cdTAzMTVcdTAzMjNcdTAzMjVcdTAzMzFcdTAzNDFcdTAzNDRcdTAzODUtXHUwMzg2XHUwMzg4LVx1MDM4QVx1MDM4Q1x1MDM4RS1cdTAzOTBcdTAzQUMtXHUwM0IwXHUwM0NDLVx1MDNDRVx1MDNEM1x1MDQwM1x1MDQwQ1x1MDQwRVx1MDQxOVx1MDQzOVx1MDQ1M1x1MDQ1Q1x1MDQ1RVx1MDRDMS1cdTA0QzJcdTA0RDAtXHUwNEQxXHUwNEQ2LVx1MDREN1x1MDRFMi1cdTA0RTNcdTA0RUUtXHUwNEVGXHUxRTAwLVx1MUU5OVx1MUVBMC1cdTFFRjlcdTFGMDFcdTFGMDMtXHUxRjA1XHUxRjA3XHUxRjA5XHUxRjBCLVx1MUYwRFx1MUYwRlx1MUYxMVx1MUYxMy1cdTFGMTVcdTFGMTlcdTFGMUItXHUxRjFEXHUxRjIxXHUxRjIzLVx1MUYyNVx1MUYyN1x1MUYyOVx1MUYyQi1cdTFGMkRcdTFGMkZcdTFGMzFcdTFGMzMtXHUxRjM1XHUxRjM3XHUxRjM5XHUxRjNCLVx1MUYzRFx1MUYzRlx1MUY0MVx1MUY0My1cdTFGNDVcdTFGNDlcdTFGNEItXHUxRjREXHUxRjUxXHUxRjUzLVx1MUY1NVx1MUY1N1x1MUY1OVx1MUY1Qlx1MUY1RFx1MUY1Rlx1MUY2MVx1MUY2My1cdTFGNjVcdTFGNjdcdTFGNjlcdTFGNkItXHUxRjZEXHUxRjZGXHUxRjcxXHUxRjczXHUxRjc1XHUxRjc3XHUxRjc5XHUxRjdCXHUxRjdEXHUxRjgxXHUxRjgzLVx1MUY4NVx1MUY4N1x1MUY4OVx1MUY4Qi1cdTFGOERcdTFGOEZcdTFGOTFcdTFGOTMtXHUxRjk1XHUxRjk3XHUxRjk5XHUxRjlCLVx1MUY5RFx1MUY5Rlx1MUZBMVx1MUZBMy1cdTFGQTVcdTFGQTdcdTFGQTlcdTFGQUItXHUxRkFEXHUxRkFGLVx1MUZCMVx1MUZCNFx1MUZCOC1cdTFGQjlcdTFGQkJcdTFGQzRcdTFGQzlcdTFGQ0JcdTFGQ0VcdTFGRDAtXHUxRkQxXHUxRkQzXHUxRkQ4LVx1MUZEOVx1MUZEQlx1MUZERVx1MUZFMC1cdTFGRTFcdTFGRTNcdTFGRTVcdTFGRTgtXHUxRkU5XHUxRkVCLVx1MUZFQ1x1MUZFRVx1MUZGNFx1MUZGOVx1MUZGQlx1MjEyQS1cdTIxMkJcdUUwNERcdUUwNjRdO05GRDtMb3dlcjtMYXRpbi1JbnRlckluZGljO0ludGVySW5kaWMtVGVsdWd1O05GQworTGF0aW4tS2FubmFkYTphbGlhczpbJy4wLTlBLVphLXp+XHUwMEMwLVx1MDBDNVx1MDBDNy1cdTAwQ0ZcdTAwRDEtXHUwMEQ2XHUwMEQ5LVx1MDBERFx1MDBFMC1cdTAwRTVcdTAwRTctXHUwMEVGXHUwMEYxLVx1MDBGNlx1MDBGOS1cdTAwRkRcdTAwRkYtXHUwMTBGXHUwMTEyLVx1MDEyNVx1MDEyOC1cdTAxMzBcdTAxMzQtXHUwMTM3XHUwMTM5LVx1MDEzRVx1MDE0My1cdTAxNDhcdTAxNEMtXHUwMTUxXHUwMTU0LVx1MDE2NVx1MDE2OC1cdTAxN0VcdTAxQTAtXHUwMUExXHUwMUFGLVx1MDFCMFx1MDFDRC1cdTAxRENcdTAxREUtXHUwMUUzXHUwMUU2LVx1MDFFRFx1MDFGMFx1MDFGNC1cdTAxRjVcdTAxRjgtXHUwMjFCXHUwMjFFLVx1MDIxRlx1MDIyNi1cdTAyMzNcdTAzMDFcdTAzMDMtXHUwMzA0XHUwMzA2LVx1MDMwN1x1MDMxMFx1MDMxNC1cdTAzMTVcdTAzMjNcdTAzMjVcdTAzMzFcdTAzNDFcdTAzNDRcdTAzODUtXHUwMzg2XHUwMzg4LVx1MDM4QVx1MDM4Q1x1MDM4RS1cdTAzOTBcdTAzQUMtXHUwM0IwXHUwM0NDLVx1MDNDRVx1MDNEM1x1MDQwM1x1MDQwQ1x1MDQwRVx1MDQxOVx1MDQzOVx1MDQ1M1x1MDQ1Q1x1MDQ1RVx1MDRDMS1cdTA0QzJcdTA0RDAtXHUwNEQxXHUwNEQ2LVx1MDREN1x1MDRFMi1cdTA0RTNcdTA0RUUtXHUwNEVGXHUxRTAwLVx1MUU5OVx1MUVBMC1cdTFFRjlcdTFGMDFcdTFGMDMtXHUxRjA1XHUxRjA3XHUxRjA5XHUxRjBCLVx1MUYwRFx1MUYwRlx1MUYxMVx1MUYxMy1cdTFGMTVcdTFGMTlcdTFGMUItXHUxRjFEXHUxRjIxXHUxRjIzLVx1MUYyNVx1MUYyN1x1MUYyOVx1MUYyQi1cdTFGMkRcdTFGMkZcdTFGMzFcdTFGMzMtXHUxRjM1XHUxRjM3XHUxRjM5XHUxRjNCLVx1MUYzRFx1MUYzRlx1MUY0MVx1MUY0My1cdTFGNDVcdTFGNDlcdTFGNEItXHUxRjREXHUxRjUxXHUxRjUzLVx1MUY1NVx1MUY1N1x1MUY1OVx1MUY1Qlx1MUY1RFx1MUY1Rlx1MUY2MVx1MUY2My1cdTFGNjVcdTFGNjdcdTFGNjlcdTFGNkItXHUxRjZEXHUxRjZGXHUxRjcxXHUxRjczXHUxRjc1XHUxRjc3XHUxRjc5XHUxRjdCXHUxRjdEXHUxRjgxXHUxRjgzLVx1MUY4NVx1MUY4N1x1MUY4OVx1MUY4Qi1cdTFGOERcdTFGOEZcdTFGOTFcdTFGOTMtXHUxRjk1XHUxRjk3XHUxRjk5XHUxRjlCLVx1MUY5RFx1MUY5Rlx1MUZBMVx1MUZBMy1cdTFGQTVcdTFGQTdcdTFGQTlcdTFGQUItXHUxRkFEXHUxRkFGLVx1MUZCMVx1MUZCNFx1MUZCOC1cdTFGQjlcdTFGQkJcdTFGQzRcdTFGQzlcdTFGQ0JcdTFGQ0VcdTFGRDAtXHUxRkQxXHUxRkQzXHUxRkQ4LVx1MUZEOVx1MUZEQlx1MUZERVx1MUZFMC1cdTFGRTFcdTFGRTNcdTFGRTVcdTFGRTgtXHUxRkU5XHUxRkVCLVx1MUZFQ1x1MUZFRVx1MUZGNFx1MUZGOVx1MUZGQlx1MjEyQS1cdTIxMkJcdUUwNERcdUUwNjRdO05GRDtMb3dlcjtMYXRpbi1JbnRlckluZGljO0ludGVySW5kaWMtS2FubmFkYTtORkMKK0xhdGluLU1hbGF5YWxhbTphbGlhczpbJy4wLTlBLVphLXp+XHUwMEMwLVx1MDBDNVx1MDBDNy1cdTAwQ0ZcdTAwRDEtXHUwMEQ2XHUwMEQ5LVx1MDBERFx1MDBFMC1cdTAwRTVcdTAwRTctXHUwMEVGXHUwMEYxLVx1MDBGNlx1MDBGOS1cdTAwRkRcdTAwRkYtXHUwMTBGXHUwMTEyLVx1MDEyNVx1MDEyOC1cdTAxMzBcdTAxMzQtXHUwMTM3XHUwMTM5LVx1MDEzRVx1MDE0My1cdTAxNDhcdTAxNEMtXHUwMTUxXHUwMTU0LVx1MDE2NVx1MDE2OC1cdTAxN0VcdTAxQTAtXHUwMUExXHUwMUFGLVx1MDFCMFx1MDFDRC1cdTAxRENcdTAxREUtXHUwMUUzXHUwMUU2LVx1MDFFRFx1MDFGMFx1MDFGNC1cdTAxRjVcdTAxRjgtXHUwMjFCXHUwMjFFLVx1MDIxRlx1MDIyNi1cdTAyMzNcdTAzMDFcdTAzMDMtXHUwMzA0XHUwMzA2LVx1MDMwN1x1MDMxMFx1MDMxNC1cdTAzMTVcdTAzMjNcdTAzMjVcdTAzMzFcdTAzNDFcdTAzNDRcdTAzODUtXHUwMzg2XHUwMzg4LVx1MDM4QVx1MDM4Q1x1MDM4RS1cdTAzOTBcdTAzQUMtXHUwM0IwXHUwM0NDLVx1MDNDRVx1MDNEM1x1MDQwM1x1MDQwQ1x1MDQwRVx1MDQxOVx1MDQzOVx1MDQ1M1x1MDQ1Q1x1MDQ1RVx1MDRDMS1cdTA0QzJcdTA0RDAtXHUwNEQxXHUwNEQ2LVx1MDREN1x1MDRFMi1cdTA0RTNcdTA0RUUtXHUwNEVGXHUxRTAwLVx1MUU5OVx1MUVBMC1cdTFFRjlcdTFGMDFcdTFGMDMtXHUxRjA1XHUxRjA3XHUxRjA5XHUxRjBCLVx1MUYwRFx1MUYwRlx1MUYxMVx1MUYxMy1cdTFGMTVcdTFGMTlcdTFGMUItXHUxRjFEXHUxRjIxXHUxRjIzLVx1MUYyNVx1MUYyN1x1MUYyOVx1MUYyQi1cdTFGMkRcdTFGMkZcdTFGMzFcdTFGMzMtXHUxRjM1XHUxRjM3XHUxRjM5XHUxRjNCLVx1MUYzRFx1MUYzRlx1MUY0MVx1MUY0My1cdTFGNDVcdTFGNDlcdTFGNEItXHUxRjREXHUxRjUxXHUxRjUzLVx1MUY1NVx1MUY1N1x1MUY1OVx1MUY1Qlx1MUY1RFx1MUY1Rlx1MUY2MVx1MUY2My1cdTFGNjVcdTFGNjdcdTFGNjlcdTFGNkItXHUxRjZEXHUxRjZGXHUxRjcxXHUxRjczXHUxRjc1XHUxRjc3XHUxRjc5XHUxRjdCXHUxRjdEXHUxRjgxXHUxRjgzLVx1MUY4NVx1MUY4N1x1MUY4OVx1MUY4Qi1cdTFGOERcdTFGOEZcdTFGOTFcdTFGOTMtXHUxRjk1XHUxRjk3XHUxRjk5XHUxRjlCLVx1MUY5RFx1MUY5Rlx1MUZBMVx1MUZBMy1cdTFGQTVcdTFGQTdcdTFGQTlcdTFGQUItXHUxRkFEXHUxRkFGLVx1MUZCMVx1MUZCNFx1MUZCOC1cdTFGQjlcdTFGQkJcdTFGQzRcdTFGQzlcdTFGQ0JcdTFGQ0VcdTFGRDAtXHUxRkQxXHUxRkQzXHUxRkQ4LVx1MUZEOVx1MUZEQlx1MUZERVx1MUZFMC1cdTFGRTFcdTFGRTNcdTFGRTVcdTFGRTgtXHUxRkU5XHUxRkVCLVx1MUZFQ1x1MUZFRVx1MUZGNFx1MUZGOVx1MUZGQlx1MjEyQS1cdTIxMkJcdUUwNERcdUUwNjRdO05GRDtMb3dlcjtMYXRpbi1JbnRlckluZGljO0ludGVySW5kaWMtTWFsYXlhbGFtO05GQworICAgCisjSW5kaWMtTGF0aW4gdHJhbnNsaXRlcmF0b3JzCitEZXZhbmFnYXJpLUxhdGluOmFsaWFzOltcdTA5MDEtXHUwOTAzXHUwOTA1LVx1MDkzOVx1MDkzQy1cdTA5NERcdTA5NTAtXHUwOTU0XHUwOTU4LVx1MDk2Rl07TkZEO0RldmFuYWdhcmktSW50ZXJJbmRpYztJbnRlckluZGljLUxhdGluO05GQworQmVuZ2FsaS1MYXRpbjphbGlhczpbXHUwOTY0LVx1MDk2NVx1MDk4MS1cdTA5ODNcdTA5ODUtXHUwOThDXHUwOThGLVx1MDk5MFx1MDk5My1cdTA5QThcdTA5QUEtXHUwOUIwXHUwOUIyXHUwOUI2LVx1MDlCOVx1MDlCQ1x1MDlCRS1cdTA5QzRcdTA5QzctXHUwOUM4XHUwOUNCLVx1MDlDRFx1MDlEN1x1MDlEQy1cdTA5RERcdTA5REYtXHUwOUUzXHUwOUU2LVx1MDlGQV07TkZEO0JlbmdhbGktSW50ZXJJbmRpYztJbnRlckluZGljLUxhdGluO05GQworR3VybXVraGktTGF0aW46YWxpYXM6W1x1MDk2NC1cdTA5NjVcdTBBMDJcdTBBMDUtXHUwQTBBXHUwQTBGLVx1MEExMFx1MEExMy1cdTBBMjhcdTBBMkEtXHUwQTMwXHUwQTMyLVx1MEEzM1x1MEEzNS1cdTBBMzZcdTBBMzgtXHUwQTM5XHUwQTNDXHUwQTNFLVx1MEE0Mlx1MEE0Ny1cdTBBNDhcdTBBNEItXHUwQTREXHUwQTU5LVx1MEE1Q1x1MEE1RVx1MEE2Ni1cdTBBNzRdO05GRDtHdXJtdWtoaS1JbnRlckluZGljO0ludGVySW5kaWMtTGF0aW47TkZDCitHdWphcmF0aS1MYXRpbjphbGlhczpbXHUwOTY0LVx1MDk2NVx1MEE4MS1cdTBBODNcdTBBODUtXHUwQThCXHUwQThEXHUwQThGLVx1MEE5MVx1MEE5My1cdTBBQThcdTBBQUEtXHUwQUIwXHUwQUIyLVx1MEFCM1x1MEFCNS1cdTBBQjlcdTBBQkMtXHUwQUM1XHUwQUM3LVx1MEFDOVx1MEFDQi1cdTBBQ0RcdTBBRDBcdTBBRTBcdTBBRTYtXHUwQUVGXTtORkQ7R3VqYXJhdGktSW50ZXJJbmRpYztJbnRlckluZGljLUxhdGluO05GQworT3JpeWEtTGF0aW46YWxpYXM6W1x1MEIwMS1cdTBCMDNcdTBCMDUtXHUwQjBDXHUwQjBGLVx1MEIxMFx1MEIxMy1cdTBCMjhcdTBCMkEtXHUwQjMwXHUwQjMyLVx1MEIzM1x1MEIzNi1cdTBCMzlcdTBCM0MtXHUwQjQzXHUwQjQ3LVx1MEI0OFx1MEI0Qi1cdTBCNERcdTBCNTYtXHUwQjU3XHUwQjVDLVx1MEI1RFx1MEI1Ri1cdTBCNjFcdTBCNjYtXHUwQjcwXTtORkQ7T3JpeWEtSW50ZXJJbmRpYztJbnRlckluZGljLUxhdGluO05GQworVGFtaWwtTGF0aW46YWxpYXM6WzBcdTBCODItXHUwQjgzXHUwQjg1LVx1MEI4QVx1MEI4RS1cdTBCOTBcdTBCOTItXHUwQjk1XHUwQjk5LVx1MEI5QVx1MEI5Q1x1MEI5RS1cdTBCOUZcdTBCQTMtXHUwQkE0XHUwQkE4LVx1MEJBQVx1MEJBRS1cdTBCQjVcdTBCQjctXHUwQkI5XHUwQkJFLVx1MEJDMlx1MEJDNi1cdTBCQzhcdTBCQ0EtXHUwQkNEXHUwQkQ3XHUwQkU3LVx1MEJGMl07TkZEO1RhbWlsLUludGVySW5kaWM7SW50ZXJJbmRpYy1MYXRpbjtORkMKK1RlbHVndS1MYXRpbjphbGlhczpbXHUwQzAxLVx1MEMwM1x1MEMwNS1cdTBDMENcdTBDMEUtXHUwQzEwXHUwQzEyLVx1MEMyOFx1MEMyQS1cdTBDMzNcdTBDMzUtXHUwQzM5XHUwQzNFLVx1MEM0NFx1MEM0Ni1cdTBDNDhcdTBDNEEtXHUwQzREXHUwQzU1LVx1MEM1Nlx1MEM2MC1cdTBDNjFcdTBDNjYtXHUwQzZGXTtORkQ7VGVsdWd1LUludGVySW5kaWM7SW50ZXJJbmRpYy1MYXRpbjtORkMKK0thbm5hZGEtTGF0aW46YWxpYXM6W1x1MEM4Mi1cdTBDODNcdTBDODUtXHUwQzhDXHUwQzhFLVx1MEM5MFx1MEM5Mi1cdTBDQThcdTBDQUEtXHUwQ0IzXHUwQ0I1LVx1MENCOVx1MENCRS1cdTBDQzRcdTBDQzYtXHUwQ0M4XHUwQ0NBLVx1MENDRFx1MENENS1cdTBDRDZcdTBDREVcdTBDRTAtXHUwQ0UxXHUwQ0U2LVx1MENFRl07TkZEO0thbm5hZGEtSW50ZXJJbmRpYztJbnRlckluZGljLUxhdGluO05GQworTWFsYXlhbGFtLUxhdGluOmFsaWFzOltcdTBEMDItXHUwRDAzXHUwRDA1LVx1MEQwQ1x1MEQwRS1cdTBEMTBcdTBEMTItXHUwRDI4XHUwRDJBLVx1MEQzOVx1MEQzRS1cdTBENDNcdTBENDYtXHUwRDQ4XHUwRDRBLVx1MEQ0RFx1MEQ1N1x1MEQ2MC1cdTBENjFcdTBENjYtXHUwRDZGXTtORkQ7TWFsYXlhbGFtLUludGVySW5kaWM7SW50ZXJJbmRpYy1MYXRpbjtORkMKKworRGV2YW5hZ2FyaS1CZW5nYWxpOmFsaWFzOltcdTA5MDEtXHUwOTAzXHUwOTA1LVx1MDkzOVx1MDkzQy1cdTA5NERcdTA5NTAtXHUwOTU0XHUwOTU4LVx1MDk2Rl07TkZEO0RldmFuYWdhcmktSW50ZXJJbmRpYztJbnRlckluZGljLUJlbmdhbGk7TkZDCitEZXZhbmFnYXJpLUd1cm11a2hpOmFsaWFzOltcdTA5MDEtXHUwOTAzXHUwOTA1LVx1MDkzOVx1MDkzQy1cdTA5NERcdTA5NTAtXHUwOTU0XHUwOTU4LVx1MDk2Rl07TkZEO0RldmFuYWdhcmktSW50ZXJJbmRpYztJbnRlckluZGljLUd1cm11a2hpO05GQworRGV2YW5hZ2FyaS1HdWphcmF0aTphbGlhczpbXHUwOTAxLVx1MDkwM1x1MDkwNS1cdTA5MzlcdTA5M0MtXHUwOTREXHUwOTUwLVx1MDk1NFx1MDk1OC1cdTA5NkZdO05GRDtEZXZhbmFnYXJpLUludGVySW5kaWM7SW50ZXJJbmRpYy1HdWphcmF0aTtORkMKK0RldmFuYWdhcmktT3JpeWE6YWxpYXM6W1x1MDkwMS1cdTA5MDNcdTA5MDUtXHUwOTM5XHUwOTNDLVx1MDk0RFx1MDk1MC1cdTA5NTRcdTA5NTgtXHUwOTZGXTtORkQ7RGV2YW5hZ2FyaS1JbnRlckluZGljO0ludGVySW5kaWMtT3JpeWE7TkZDCitEZXZhbmFnYXJpLVRhbWlsOmFsaWFzOltcdTA5MDEtXHUwOTAzXHUwOTA1LVx1MDkzOVx1MDkzQy1cdTA5NERcdTA5NTAtXHUwOTU0XHUwOTU4LVx1MDk2Rl07TkZEO0RldmFuYWdhcmktSW50ZXJJbmRpYztJbnRlckluZGljLVRhbWlsO05GQworRGV2YW5hZ2FyaS1UZWx1Z3U6YWxpYXM6W1x1MDkwMS1cdTA5MDNcdTA5MDUtXHUwOTM5XHUwOTNDLVx1MDk0RFx1MDk1MC1cdTA5NTRcdTA5NTgtXHUwOTZGXTtORkQ7RGV2YW5hZ2FyaS1JbnRlckluZGljO0ludGVySW5kaWMtVGVsdWd1O05GQworRGV2YW5hZ2FyaS1LYW5uYWRhOmFsaWFzOltcdTA5MDEtXHUwOTAzXHUwOTA1LVx1MDkzOVx1MDkzQy1cdTA5NERcdTA5NTAtXHUwOTU0XHUwOTU4LVx1MDk2Rl07TkZEO0RldmFuYWdhcmktSW50ZXJJbmRpYztJbnRlckluZGljLUthbm5hZGE7TkZDCitEZXZhbmFnYXJpLU1hbGF5YWxhbTphbGlhczpbXHUwOTAxLVx1MDkwM1x1MDkwNS1cdTA5MzlcdTA5M0MtXHUwOTREXHUwOTUwLVx1MDk1NFx1MDk1OC1cdTA5NkZdO05GRDtEZXZhbmFnYXJpLUludGVySW5kaWM7SW50ZXJJbmRpYy1NYWxheWFsYW07TkZDCisKK0JlbmdhbGktRGV2YW5hZ2FyaTphbGlhczpbXHUwOTY0LVx1MDk2NVx1MDk4MS1cdTA5ODNcdTA5ODUtXHUwOThDXHUwOThGLVx1MDk5MFx1MDk5My1cdTA5QThcdTA5QUEtXHUwOUIwXHUwOUIyXHUwOUI2LVx1MDlCOVx1MDlCQ1x1MDlCRS1cdTA5QzRcdTA5QzctXHUwOUM4XHUwOUNCLVx1MDlDRFx1MDlEN1x1MDlEQy1cdTA5RERcdTA5REYtXHUwOUUzXHUwOUU2LVx1MDlGQV07TkZEO0JlbmdhbGktSW50ZXJJbmRpYztJbnRlckluZGljLURldmFuYWdhcmk7TkZDCitCZW5nYWxpLUd1cm11a2hpOmFsaWFzOltcdTA5NjQtXHUwOTY1XHUwOTgxLVx1MDk4M1x1MDk4NS1cdTA5OENcdTA5OEYtXHUwOTkwXHUwOTkzLVx1MDlBOFx1MDlBQS1cdTA5QjBcdTA5QjJcdTA5QjYtXHUwOUI5XHUwOUJDXHUwOUJFLVx1MDlDNFx1MDlDNy1cdTA5QzhcdTA5Q0ItXHUwOUNEXHUwOUQ3XHUwOURDLVx1MDlERFx1MDlERi1cdTA5RTNcdTA5RTYtXHUwOUZBXTtORkQ7QmVuZ2FsaS1JbnRlckluZGljO0ludGVySW5kaWMtR3VybXVraGk7TkZDCitCZW5nYWxpLUd1amFyYXRpOmFsaWFzOltcdTA5NjQtXHUwOTY1XHUwOTgxLVx1MDk4M1x1MDk4NS1cdTA5OENcdTA5OEYtXHUwOTkwXHUwOTkzLVx1MDlBOFx1MDlBQS1cdTA5QjBcdTA5QjJcdTA5QjYtXHUwOUI5XHUwOUJDXHUwOUJFLVx1MDlDNFx1MDlDNy1cdTA5QzhcdTA5Q0ItXHUwOUNEXHUwOUQ3XHUwOURDLVx1MDlERFx1MDlERi1cdTA5RTNcdTA5RTYtXHUwOUZBXTtORkQ7QmVuZ2FsaS1JbnRlckluZGljO0ludGVySW5kaWMtR3VqYXJhdGk7TkZDCitCZW5nYWxpLU9yaXlhOmFsaWFzOltcdTA5NjQtXHUwOTY1XHUwOTgxLVx1MDk4M1x1MDk4NS1cdTA5OENcdTA5OEYtXHUwOTkwXHUwOTkzLVx1MDlBOFx1MDlBQS1cdTA5QjBcdTA5QjJcdTA5QjYtXHUwOUI5XHUwOUJDXHUwOUJFLVx1MDlDNFx1MDlDNy1cdTA5QzhcdTA5Q0ItXHUwOUNEXHUwOUQ3XHUwOURDLVx1MDlERFx1MDlERi1cdTA5RTNcdTA5RTYtXHUwOUZBXTtORkQ7QmVuZ2FsaS1JbnRlckluZGljO0ludGVySW5kaWMtT3JpeWE7TkZDCitCZW5nYWxpLVRhbWlsOmFsaWFzOltcdTA5NjQtXHUwOTY1XHUwOTgxLVx1MDk4M1x1MDk4NS1cdTA5OENcdTA5OEYtXHUwOTkwXHUwOTkzLVx1MDlBOFx1MDlBQS1cdTA5QjBcdTA5QjJcdTA5QjYtXHUwOUI5XHUwOUJDXHUwOUJFLVx1MDlDNFx1MDlDNy1cdTA5QzhcdTA5Q0ItXHUwOUNEXHUwOUQ3XHUwOURDLVx1MDlERFx1MDlERi1cdTA5RTNcdTA5RTYtXHUwOUZBXTtORkQ7QmVuZ2FsaS1JbnRlckluZGljO0ludGVySW5kaWMtVGFtaWw7TkZDCitCZW5nYWxpLVRlbHVndTphbGlhczpbXHUwOTY0LVx1MDk2NVx1MDk4MS1cdTA5ODNcdTA5ODUtXHUwOThDXHUwOThGLVx1MDk5MFx1MDk5My1cdTA5QThcdTA5QUEtXHUwOUIwXHUwOUIyXHUwOUI2LVx1MDlCOVx1MDlCQ1x1MDlCRS1cdTA5QzRcdTA5QzctXHUwOUM4XHUwOUNCLVx1MDlDRFx1MDlEN1x1MDlEQy1cdTA5RERcdTA5REYtXHUwOUUzXHUwOUU2LVx1MDlGQV07TkZEO0JlbmdhbGktSW50ZXJJbmRpYztJbnRlckluZGljLVRlbHVndTtORkMKK0JlbmdhbGktS2FubmFkYTphbGlhczpbXHUwOTY0LVx1MDk2NVx1MDk4MS1cdTA5ODNcdTA5ODUtXHUwOThDXHUwOThGLVx1MDk5MFx1MDk5My1cdTA5QThcdTA5QUEtXHUwOUIwXHUwOUIyXHUwOUI2LVx1MDlCOVx1MDlCQ1x1MDlCRS1cdTA5QzRcdTA5QzctXHUwOUM4XHUwOUNCLVx1MDlDRFx1MDlEN1x1MDlEQy1cdTA5RERcdTA5REYtXHUwOUUzXHUwOUU2LVx1MDlGQV07TkZEO0JlbmdhbGktSW50ZXJJbmRpYztJbnRlckluZGljLUthbm5hZGE7TkZDCitCZW5nYWxpLU1hbGF5YWxhbTphbGlhczpbXHUwOTY0LVx1MDk2NVx1MDk4MS1cdTA5ODNcdTA5ODUtXHUwOThDXHUwOThGLVx1MDk5MFx1MDk5My1cdTA5QThcdTA5QUEtXHUwOUIwXHUwOUIyXHUwOUI2LVx1MDlCOVx1MDlCQ1x1MDlCRS1cdTA5QzRcdTA5QzctXHUwOUM4XHUwOUNCLVx1MDlDRFx1MDlEN1x1MDlEQy1cdTA5RERcdTA5REYtXHUwOUUzXHUwOUU2LVx1MDlGQV07TkZEO0JlbmdhbGktSW50ZXJJbmRpYztJbnRlckluZGljLU1hbGF5YWxhbTtORkMKKworR3VybXVraGktRGV2YW5hZ2FyaTphbGlhczpbXHUwOTY0LVx1MDk2NVx1MEEwMlx1MEEwNS1cdTBBMEFcdTBBMEYtXHUwQTEwXHUwQTEzLVx1MEEyOFx1MEEyQS1cdTBBMzBcdTBBMzItXHUwQTMzXHUwQTM1LVx1MEEzNlx1MEEzOC1cdTBBMzlcdTBBM0NcdTBBM0UtXHUwQTQyXHUwQTQ3LVx1MEE0OFx1MEE0Qi1cdTBBNERcdTBBNTktXHUwQTVDXHUwQTVFXHUwQTY2LVx1MEE3NF07TkZEO0d1cm11a2hpLUludGVySW5kaWM7SW50ZXJJbmRpYy1EZXZhbmFnYXJpO05GQworR3VybXVraGktQmVuZ2FsaTphbGlhczpbXHUwOTY0LVx1MDk2NVx1MEEwMlx1MEEwNS1cdTBBMEFcdTBBMEYtXHUwQTEwXHUwQTEzLVx1MEEyOFx1MEEyQS1cdTBBMzBcdTBBMzItXHUwQTMzXHUwQTM1LVx1MEEzNlx1MEEzOC1cdTBBMzlcdTBBM0NcdTBBM0UtXHUwQTQyXHUwQTQ3LVx1MEE0OFx1MEE0Qi1cdTBBNERcdTBBNTktXHUwQTVDXHUwQTVFXHUwQTY2LVx1MEE3NF07TkZEO0d1cm11a2hpLUludGVySW5kaWM7SW50ZXJJbmRpYy1CZW5nYWxpO05GQworR3VybXVraGktR3VqYXJhdGk6YWxpYXM6W1x1MDk2NC1cdTA5NjVcdTBBMDJcdTBBMDUtXHUwQTBBXHUwQTBGLVx1MEExMFx1MEExMy1cdTBBMjhcdTBBMkEtXHUwQTMwXHUwQTMyLVx1MEEzM1x1MEEzNS1cdTBBMzZcdTBBMzgtXHUwQTM5XHUwQTNDXHUwQTNFLVx1MEE0Mlx1MEE0Ny1cdTBBNDhcdTBBNEItXHUwQTREXHUwQTU5LVx1MEE1Q1x1MEE1RVx1MEE2Ni1cdTBBNzRdO05GRDtHdXJtdWtoaS1JbnRlckluZGljO0ludGVySW5kaWMtR3VqYXJhdGk7TkZDCitHdXJtdWtoaS1Pcml5YTphbGlhczpbXHUwOTY0LVx1MDk2NVx1MEEwMlx1MEEwNS1cdTBBMEFcdTBBMEYtXHUwQTEwXHUwQTEzLVx1MEEyOFx1MEEyQS1cdTBBMzBcdTBBMzItXHUwQTMzXHUwQTM1LVx1MEEzNlx1MEEzOC1cdTBBMzlcdTBBM0NcdTBBM0UtXHUwQTQyXHUwQTQ3LVx1MEE0OFx1MEE0Qi1cdTBBNERcdTBBNTktXHUwQTVDXHUwQTVFXHUwQTY2LVx1MEE3NF07TkZEO0d1cm11a2hpLUludGVySW5kaWM7SW50ZXJJbmRpYy1Pcml5YTtORkMKK0d1cm11a2hpLVRhbWlsOmFsaWFzOltcdTA5NjQtXHUwOTY1XHUwQTAyXHUwQTA1LVx1MEEwQVx1MEEwRi1cdTBBMTBcdTBBMTMtXHUwQTI4XHUwQTJBLVx1MEEzMFx1MEEzMi1cdTBBMzNcdTBBMzUtXHUwQTM2XHUwQTM4LVx1MEEzOVx1MEEzQ1x1MEEzRS1cdTBBNDJcdTBBNDctXHUwQTQ4XHUwQTRCLVx1MEE0RFx1MEE1OS1cdTBBNUNcdTBBNUVcdTBBNjYtXHUwQTc0XTtORkQ7R3VybXVraGktSW50ZXJJbmRpYztJbnRlckluZGljLVRhbWlsO05GQworR3VybXVraGktVGVsdWd1OmFsaWFzOltcdTA5NjQtXHUwOTY1XHUwQTAyXHUwQTA1LVx1MEEwQVx1MEEwRi1cdTBBMTBcdTBBMTMtXHUwQTI4XHUwQTJBLVx1MEEzMFx1MEEzMi1cdTBBMzNcdTBBMzUtXHUwQTM2XHUwQTM4LVx1MEEzOVx1MEEzQ1x1MEEzRS1cdTBBNDJcdTBBNDctXHUwQTQ4XHUwQTRCLVx1MEE0RFx1MEE1OS1cdTBBNUNcdTBBNUVcdTBBNjYtXHUwQTc0XTtORkQ7R3VybXVraGktSW50ZXJJbmRpYztJbnRlckluZGljLVRlbHVndTtORkMKK0d1cm11a2hpLUthbm5hZGE6YWxpYXM6W1x1MDk2NC1cdTA5NjVcdTBBMDJcdTBBMDUtXHUwQTBBXHUwQTBGLVx1MEExMFx1MEExMy1cdTBBMjhcdTBBMkEtXHUwQTMwXHUwQTMyLVx1MEEzM1x1MEEzNS1cdTBBMzZcdTBBMzgtXHUwQTM5XHUwQTNDXHUwQTNFLVx1MEE0Mlx1MEE0Ny1cdTBBNDhcdTBBNEItXHUwQTREXHUwQTU5LVx1MEE1Q1x1MEE1RVx1MEE2Ni1cdTBBNzRdO05GRDtHdXJtdWtoaS1JbnRlckluZGljO0ludGVySW5kaWMtS2FubmFkYTtORkMKK0d1cm11a2hpLU1hbGF5YWxhbTphbGlhczpbXHUwOTY0LVx1MDk2NVx1MEEwMlx1MEEwNS1cdTBBMEFcdTBBMEYtXHUwQTEwXHUwQTEzLVx1MEEyOFx1MEEyQS1cdTBBMzBcdTBBMzItXHUwQTMzXHUwQTM1LVx1MEEzNlx1MEEzOC1cdTBBMzlcdTBBM0NcdTBBM0UtXHUwQTQyXHUwQTQ3LVx1MEE0OFx1MEE0Qi1cdTBBNERcdTBBNTktXHUwQTVDXHUwQTVFXHUwQTY2LVx1MEE3NF07TkZEO0d1cm11a2hpLUludGVySW5kaWM7SW50ZXJJbmRpYy1NYWxheWFsYW07TkZDCisKK0d1amFyYXRpLURldmFuYWdhcmk6YWxpYXM6W1x1MDk2NC1cdTA5NjVcdTBBODEtXHUwQTgzXHUwQTg1LVx1MEE4Qlx1MEE4RFx1MEE4Ri1cdTBBOTFcdTBBOTMtXHUwQUE4XHUwQUFBLVx1MEFCMFx1MEFCMi1cdTBBQjNcdTBBQjUtXHUwQUI5XHUwQUJDLVx1MEFDNVx1MEFDNy1cdTBBQzlcdTBBQ0ItXHUwQUNEXHUwQUQwXHUwQUUwXHUwQUU2LVx1MEFFRl07TkZEO0d1amFyYXRpLUludGVySW5kaWM7SW50ZXJJbmRpYy1EZXZhbmFnYXJpO05GQworR3VqYXJhdGktQmVuZ2FsaTphbGlhczpbXHUwOTY0LVx1MDk2NVx1MEE4MS1cdTBBODNcdTBBODUtXHUwQThCXHUwQThEXHUwQThGLVx1MEE5MVx1MEE5My1cdTBBQThcdTBBQUEtXHUwQUIwXHUwQUIyLVx1MEFCM1x1MEFCNS1cdTBBQjlcdTBBQkMtXHUwQUM1XHUwQUM3LVx1MEFDOVx1MEFDQi1cdTBBQ0RcdTBBRDBcdTBBRTBcdTBBRTYtXHUwQUVGXTtORkQ7R3VqYXJhdGktSW50ZXJJbmRpYztJbnRlckluZGljLUJlbmdhbGk7TkZDCitHdWphcmF0aS1HdXJtdWtoaTphbGlhczpbXHUwOTY0LVx1MDk2NVx1MEE4MS1cdTBBODNcdTBBODUtXHUwQThCXHUwQThEXHUwQThGLVx1MEE5MVx1MEE5My1cdTBBQThcdTBBQUEtXHUwQUIwXHUwQUIyLVx1MEFCM1x1MEFCNS1cdTBBQjlcdTBBQkMtXHUwQUM1XHUwQUM3LVx1MEFDOVx1MEFDQi1cdTBBQ0RcdTBBRDBcdTBBRTBcdTBBRTYtXHUwQUVGXTtORkQ7R3VqYXJhdGktSW50ZXJJbmRpYztJbnRlckluZGljLUd1cm11a2hpO05GQworR3VqYXJhdGktT3JpeWE6YWxpYXM6W1x1MDk2NC1cdTA5NjVcdTBBODEtXHUwQTgzXHUwQTg1LVx1MEE4Qlx1MEE4RFx1MEE4Ri1cdTBBOTFcdTBBOTMtXHUwQUE4XHUwQUFBLVx1MEFCMFx1MEFCMi1cdTBBQjNcdTBBQjUtXHUwQUI5XHUwQUJDLVx1MEFDNVx1MEFDNy1cdTBBQzlcdTBBQ0ItXHUwQUNEXHUwQUQwXHUwQUUwXHUwQUU2LVx1MEFFRl07TkZEO0d1amFyYXRpLUludGVySW5kaWM7SW50ZXJJbmRpYy1Pcml5YTtORkMKK0d1amFyYXRpLVRhbWlsOmFsaWFzOltcdTA5NjQtXHUwOTY1XHUwQTgxLVx1MEE4M1x1MEE4NS1cdTBBOEJcdTBBOERcdTBBOEYtXHUwQTkxXHUwQTkzLVx1MEFBOFx1MEFBQS1cdTBBQjBcdTBBQjItXHUwQUIzXHUwQUI1LVx1MEFCOVx1MEFCQy1cdTBBQzVcdTBBQzctXHUwQUM5XHUwQUNCLVx1MEFDRFx1MEFEMFx1MEFFMFx1MEFFNi1cdTBBRUZdO05GRDtHdWphcmF0aS1JbnRlckluZGljO0ludGVySW5kaWMtVGFtaWw7TkZDCitHdWphcmF0aS1UZWx1Z3U6YWxpYXM6W1x1MDk2NC1cdTA5NjVcdTBBODEtXHUwQTgzXHUwQTg1LVx1MEE4Qlx1MEE4RFx1MEE4Ri1cdTBBOTFcdTBBOTMtXHUwQUE4XHUwQUFBLVx1MEFCMFx1MEFCMi1cdTBBQjNcdTBBQjUtXHUwQUI5XHUwQUJDLVx1MEFDNVx1MEFDNy1cdTBBQzlcdTBBQ0ItXHUwQUNEXHUwQUQwXHUwQUUwXHUwQUU2LVx1MEFFRl07TkZEO0d1amFyYXRpLUludGVySW5kaWM7SW50ZXJJbmRpYy1UZWx1Z3U7TkZDCitHdWphcmF0aS1LYW5uYWRhOmFsaWFzOltcdTA5NjQtXHUwOTY1XHUwQTgxLVx1MEE4M1x1MEE4NS1cdTBBOEJcdTBBOERcdTBBOEYtXHUwQTkxXHUwQTkzLVx1MEFBOFx1MEFBQS1cdTBBQjBcdTBBQjItXHUwQUIzXHUwQUI1LVx1MEFCOVx1MEFCQy1cdTBBQzVcdTBBQzctXHUwQUM5XHUwQUNCLVx1MEFDRFx1MEFEMFx1MEFFMFx1MEFFNi1cdTBBRUZdO05GRDtHdWphcmF0aS1JbnRlckluZGljO0ludGVySW5kaWMtS2FubmFkYTtORkMKK0d1amFyYXRpLU1hbGF5YWxhbTphbGlhczpbXHUwOTY0LVx1MDk2NVx1MEE4MS1cdTBBODNcdTBBODUtXHUwQThCXHUwQThEXHUwQThGLVx1MEE5MVx1MEE5My1cdTBBQThcdTBBQUEtXHUwQUIwXHUwQUIyLVx1MEFCM1x1MEFCNS1cdTBBQjlcdTBBQkMtXHUwQUM1XHUwQUM3LVx1MEFDOVx1MEFDQi1cdTBBQ0RcdTBBRDBcdTBBRTBcdTBBRTYtXHUwQUVGXTtORkQ7R3VqYXJhdGktSW50ZXJJbmRpYztJbnRlckluZGljLU1hbGF5YWxhbTtORkMKKworT3JpeWEtRGV2YW5hZ2FyaTphbGlhczpbXHUwQjAxLVx1MEIwM1x1MEIwNS1cdTBCMENcdTBCMEYtXHUwQjEwXHUwQjEzLVx1MEIyOFx1MEIyQS1cdTBCMzBcdTBCMzItXHUwQjMzXHUwQjM2LVx1MEIzOVx1MEIzQy1cdTBCNDNcdTBCNDctXHUwQjQ4XHUwQjRCLVx1MEI0RFx1MEI1Ni1cdTBCNTdcdTBCNUMtXHUwQjVEXHUwQjVGLVx1MEI2MVx1MEI2Ni1cdTBCNzBdO05GRDtPcml5YS1JbnRlckluZGljO0ludGVySW5kaWMtRGV2YW5hZ2FyaTtORkMKK09yaXlhLUJlbmdhbGk6YWxpYXM6W1x1MEIwMS1cdTBCMDNcdTBCMDUtXHUwQjBDXHUwQjBGLVx1MEIxMFx1MEIxMy1cdTBCMjhcdTBCMkEtXHUwQjMwXHUwQjMyLVx1MEIzM1x1MEIzNi1cdTBCMzlcdTBCM0MtXHUwQjQzXHUwQjQ3LVx1MEI0OFx1MEI0Qi1cdTBCNERcdTBCNTYtXHUwQjU3XHUwQjVDLVx1MEI1RFx1MEI1Ri1cdTBCNjFcdTBCNjYtXHUwQjcwXTtORkQ7T3JpeWEtSW50ZXJJbmRpYztJbnRlckluZGljLUJlbmdhbGk7TkZDCitPcml5YS1HdXJtdWtoaTphbGlhczpbXHUwQjAxLVx1MEIwM1x1MEIwNS1cdTBCMENcdTBCMEYtXHUwQjEwXHUwQjEzLVx1MEIyOFx1MEIyQS1cdTBCMzBcdTBCMzItXHUwQjMzXHUwQjM2LVx1MEIzOVx1MEIzQy1cdTBCNDNcdTBCNDctXHUwQjQ4XHUwQjRCLVx1MEI0RFx1MEI1Ni1cdTBCNTdcdTBCNUMtXHUwQjVEXHUwQjVGLVx1MEI2MVx1MEI2Ni1cdTBCNzBdO05GRDtPcml5YS1JbnRlckluZGljO0ludGVySW5kaWMtR3VybXVraGk7TkZDCitPcml5YS1HdWphcmF0aTphbGlhczpbXHUwQjAxLVx1MEIwM1x1MEIwNS1cdTBCMENcdTBCMEYtXHUwQjEwXHUwQjEzLVx1MEIyOFx1MEIyQS1cdTBCMzBcdTBCMzItXHUwQjMzXHUwQjM2LVx1MEIzOVx1MEIzQy1cdTBCNDNcdTBCNDctXHUwQjQ4XHUwQjRCLVx1MEI0RFx1MEI1Ni1cdTBCNTdcdTBCNUMtXHUwQjVEXHUwQjVGLVx1MEI2MVx1MEI2Ni1cdTBCNzBdO05GRDtPcml5YS1JbnRlckluZGljO0ludGVySW5kaWMtR3VqYXJhdGk7TkZDCitPcml5YS1UYW1pbDphbGlhczpbXHUwQjAxLVx1MEIwM1x1MEIwNS1cdTBCMENcdTBCMEYtXHUwQjEwXHUwQjEzLVx1MEIyOFx1MEIyQS1cdTBCMzBcdTBCMzItXHUwQjMzXHUwQjM2LVx1MEIzOVx1MEIzQy1cdTBCNDNcdTBCNDctXHUwQjQ4XHUwQjRCLVx1MEI0RFx1MEI1Ni1cdTBCNTdcdTBCNUMtXHUwQjVEXHUwQjVGLVx1MEI2MVx1MEI2Ni1cdTBCNzBdO05GRDtPcml5YS1JbnRlckluZGljO0ludGVySW5kaWMtVGFtaWw7TkZDCitPcml5YS1UZWx1Z3U6YWxpYXM6W1x1MEIwMS1cdTBCMDNcdTBCMDUtXHUwQjBDXHUwQjBGLVx1MEIxMFx1MEIxMy1cdTBCMjhcdTBCMkEtXHUwQjMwXHUwQjMyLVx1MEIzM1x1MEIzNi1cdTBCMzlcdTBCM0MtXHUwQjQzXHUwQjQ3LVx1MEI0OFx1MEI0Qi1cdTBCNERcdTBCNTYtXHUwQjU3XHUwQjVDLVx1MEI1RFx1MEI1Ri1cdTBCNjFcdTBCNjYtXHUwQjcwXTtORkQ7T3JpeWEtSW50ZXJJbmRpYztJbnRlckluZGljLVRlbHVndTtORkMKK09yaXlhLUthbm5hZGE6YWxpYXM6W1x1MEIwMS1cdTBCMDNcdTBCMDUtXHUwQjBDXHUwQjBGLVx1MEIxMFx1MEIxMy1cdTBCMjhcdTBCMkEtXHUwQjMwXHUwQjMyLVx1MEIzM1x1MEIzNi1cdTBCMzlcdTBCM0MtXHUwQjQzXHUwQjQ3LVx1MEI0OFx1MEI0Qi1cdTBCNERcdTBCNTYtXHUwQjU3XHUwQjVDLVx1MEI1RFx1MEI1Ri1cdTBCNjFcdTBCNjYtXHUwQjcwXTtORkQ7T3JpeWEtSW50ZXJJbmRpYztJbnRlckluZGljLUthbm5hZGE7TkZDCitPcml5YS1NYWxheWFsYW06YWxpYXM6W1x1MEIwMS1cdTBCMDNcdTBCMDUtXHUwQjBDXHUwQjBGLVx1MEIxMFx1MEIxMy1cdTBCMjhcdTBCMkEtXHUwQjMwXHUwQjMyLVx1MEIzM1x1MEIzNi1cdTBCMzlcdTBCM0MtXHUwQjQzXHUwQjQ3LVx1MEI0OFx1MEI0Qi1cdTBCNERcdTBCNTYtXHUwQjU3XHUwQjVDLVx1MEI1RFx1MEI1Ri1cdTBCNjFcdTBCNjYtXHUwQjcwXTtORkQ7T3JpeWEtSW50ZXJJbmRpYztJbnRlckluZGljLU1hbGF5YWxhbTtORkMKKworVGFtaWwtRGV2YW5hZ2FyaTphbGlhczpbMFx1MEI4Mi1cdTBCODNcdTBCODUtXHUwQjhBXHUwQjhFLVx1MEI5MFx1MEI5Mi1cdTBCOTVcdTBCOTktXHUwQjlBXHUwQjlDXHUwQjlFLVx1MEI5Rlx1MEJBMy1cdTBCQTRcdTBCQTgtXHUwQkFBXHUwQkFFLVx1MEJCNVx1MEJCNy1cdTBCQjlcdTBCQkUtXHUwQkMyXHUwQkM2LVx1MEJDOFx1MEJDQS1cdTBCQ0RcdTBCRDdcdTBCRTctXHUwQkYyXTtORkQ7VGFtaWwtSW50ZXJJbmRpYztJbnRlckluZGljLURldmFuYWdhcmk7TkZDCitUYW1pbC1CZW5nYWxpOmFsaWFzOlswXHUwQjgyLVx1MEI4M1x1MEI4NS1cdTBCOEFcdTBCOEUtXHUwQjkwXHUwQjkyLVx1MEI5NVx1MEI5OS1cdTBCOUFcdTBCOUNcdTBCOUUtXHUwQjlGXHUwQkEzLVx1MEJBNFx1MEJBOC1cdTBCQUFcdTBCQUUtXHUwQkI1XHUwQkI3LVx1MEJCOVx1MEJCRS1cdTBCQzJcdTBCQzYtXHUwQkM4XHUwQkNBLVx1MEJDRFx1MEJEN1x1MEJFNy1cdTBCRjJdO05GRDtUYW1pbC1JbnRlckluZGljO0ludGVySW5kaWMtQmVuZ2FsaTtORkMKK1RhbWlsLUd1cm11a2hpOmFsaWFzOlswXHUwQjgyLVx1MEI4M1x1MEI4NS1cdTBCOEFcdTBCOEUtXHUwQjkwXHUwQjkyLVx1MEI5NVx1MEI5OS1cdTBCOUFcdTBCOUNcdTBCOUUtXHUwQjlGXHUwQkEzLVx1MEJBNFx1MEJBOC1cdTBCQUFcdTBCQUUtXHUwQkI1XHUwQkI3LVx1MEJCOVx1MEJCRS1cdTBCQzJcdTBCQzYtXHUwQkM4XHUwQkNBLVx1MEJDRFx1MEJEN1x1MEJFNy1cdTBCRjJdO05GRDtUYW1pbC1JbnRlckluZGljO0ludGVySW5kaWMtR3VybXVraGk7TkZDCitUYW1pbC1HdWphcmF0aTphbGlhczpbMFx1MEI4Mi1cdTBCODNcdTBCODUtXHUwQjhBXHUwQjhFLVx1MEI5MFx1MEI5Mi1cdTBCOTVcdTBCOTktXHUwQjlBXHUwQjlDXHUwQjlFLVx1MEI5Rlx1MEJBMy1cdTBCQTRcdTBCQTgtXHUwQkFBXHUwQkFFLVx1MEJCNVx1MEJCNy1cdTBCQjlcdTBCQkUtXHUwQkMyXHUwQkM2LVx1MEJDOFx1MEJDQS1cdTBCQ0RcdTBCRDdcdTBCRTctXHUwQkYyXTtORkQ7VGFtaWwtSW50ZXJJbmRpYztJbnRlckluZGljLUd1amFyYXRpO05GQworVGFtaWwtT3JpeWE6YWxpYXM6WzBcdTBCODItXHUwQjgzXHUwQjg1LVx1MEI4QVx1MEI4RS1cdTBCOTBcdTBCOTItXHUwQjk1XHUwQjk5LVx1MEI5QVx1MEI5Q1x1MEI5RS1cdTBCOUZcdTBCQTMtXHUwQkE0XHUwQkE4LVx1MEJBQVx1MEJBRS1cdTBCQjVcdTBCQjctXHUwQkI5XHUwQkJFLVx1MEJDMlx1MEJDNi1cdTBCQzhcdTBCQ0EtXHUwQkNEXHUwQkQ3XHUwQkU3LVx1MEJGMl07TkZEO1RhbWlsLUludGVySW5kaWM7SW50ZXJJbmRpYy1Pcml5YTtORkMKK1RhbWlsLVRlbHVndTphbGlhczpbMFx1MEI4Mi1cdTBCODNcdTBCODUtXHUwQjhBXHUwQjhFLVx1MEI5MFx1MEI5Mi1cdTBCOTVcdTBCOTktXHUwQjlBXHUwQjlDXHUwQjlFLVx1MEI5Rlx1MEJBMy1cdTBCQTRcdTBCQTgtXHUwQkFBXHUwQkFFLVx1MEJCNVx1MEJCNy1cdTBCQjlcdTBCQkUtXHUwQkMyXHUwQkM2LVx1MEJDOFx1MEJDQS1cdTBCQ0RcdTBCRDdcdTBCRTctXHUwQkYyXTtORkQ7VGFtaWwtSW50ZXJJbmRpYztJbnRlckluZGljLVRlbHVndTtORkMKK1RhbWlsLUthbm5hZGE6YWxpYXM6WzBcdTBCODItXHUwQjgzXHUwQjg1LVx1MEI4QVx1MEI4RS1cdTBCOTBcdTBCOTItXHUwQjk1XHUwQjk5LVx1MEI5QVx1MEI5Q1x1MEI5RS1cdTBCOUZcdTBCQTMtXHUwQkE0XHUwQkE4LVx1MEJBQVx1MEJBRS1cdTBCQjVcdTBCQjctXHUwQkI5XHUwQkJFLVx1MEJDMlx1MEJDNi1cdTBCQzhcdTBCQ0EtXHUwQkNEXHUwQkQ3XHUwQkU3LVx1MEJGMl07TkZEO1RhbWlsLUludGVySW5kaWM7SW50ZXJJbmRpYy1LYW5uYWRhO05GQworVGFtaWwtTWFsYXlhbGFtOmFsaWFzOlswXHUwQjgyLVx1MEI4M1x1MEI4NS1cdTBCOEFcdTBCOEUtXHUwQjkwXHUwQjkyLVx1MEI5NVx1MEI5OS1cdTBCOUFcdTBCOUNcdTBCOUUtXHUwQjlGXHUwQkEzLVx1MEJBNFx1MEJBOC1cdTBCQUFcdTBCQUUtXHUwQkI1XHUwQkI3LVx1MEJCOVx1MEJCRS1cdTBCQzJcdTBCQzYtXHUwQkM4XHUwQkNBLVx1MEJDRFx1MEJEN1x1MEJFNy1cdTBCRjJdO05GRDtUYW1pbC1JbnRlckluZGljO0ludGVySW5kaWMtTWFsYXlhbGFtO05GQworCitUZWx1Z3UtRGV2YW5hZ2FyaTphbGlhczpbXHUwQzAxLVx1MEMwM1x1MEMwNS1cdTBDMENcdTBDMEUtXHUwQzEwXHUwQzEyLVx1MEMyOFx1MEMyQS1cdTBDMzNcdTBDMzUtXHUwQzM5XHUwQzNFLVx1MEM0NFx1MEM0Ni1cdTBDNDhcdTBDNEEtXHUwQzREXHUwQzU1LVx1MEM1Nlx1MEM2MC1cdTBDNjFcdTBDNjYtXHUwQzZGXTtORkQ7VGVsdWd1LUludGVySW5kaWM7SW50ZXJJbmRpYy1EZXZhbmFnYXJpO05GQworVGVsdWd1LUJlbmdhbGk6YWxpYXM6W1x1MEMwMS1cdTBDMDNcdTBDMDUtXHUwQzBDXHUwQzBFLVx1MEMxMFx1MEMxMi1cdTBDMjhcdTBDMkEtXHUwQzMzXHUwQzM1LVx1MEMzOVx1MEMzRS1cdTBDNDRcdTBDNDYtXHUwQzQ4XHUwQzRBLVx1MEM0RFx1MEM1NS1cdTBDNTZcdTBDNjAtXHUwQzYxXHUwQzY2LVx1MEM2Rl07TkZEO1RlbHVndS1JbnRlckluZGljO0ludGVySW5kaWMtQmVuZ2FsaTtORkMKK1RlbHVndS1HdXJtdWtoaTphbGlhczpbXHUwQzAxLVx1MEMwM1x1MEMwNS1cdTBDMENcdTBDMEUtXHUwQzEwXHUwQzEyLVx1MEMyOFx1MEMyQS1cdTBDMzNcdTBDMzUtXHUwQzM5XHUwQzNFLVx1MEM0NFx1MEM0Ni1cdTBDNDhcdTBDNEEtXHUwQzREXHUwQzU1LVx1MEM1Nlx1MEM2MC1cdTBDNjFcdTBDNjYtXHUwQzZGXTtORkQ7VGVsdWd1LUludGVySW5kaWM7SW50ZXJJbmRpYy1HdXJtdWtoaTtORkMKK1RlbHVndS1HdWphcmF0aTphbGlhczpbXHUwQzAxLVx1MEMwM1x1MEMwNS1cdTBDMENcdTBDMEUtXHUwQzEwXHUwQzEyLVx1MEMyOFx1MEMyQS1cdTBDMzNcdTBDMzUtXHUwQzM5XHUwQzNFLVx1MEM0NFx1MEM0Ni1cdTBDNDhcdTBDNEEtXHUwQzREXHUwQzU1LVx1MEM1Nlx1MEM2MC1cdTBDNjFcdTBDNjYtXHUwQzZGXTtORkQ7VGVsdWd1LUludGVySW5kaWM7SW50ZXJJbmRpYy1HdWphcmF0aTtORkMKK1RlbHVndS1Pcml5YTphbGlhczpbXHUwQzAxLVx1MEMwM1x1MEMwNS1cdTBDMENcdTBDMEUtXHUwQzEwXHUwQzEyLVx1MEMyOFx1MEMyQS1cdTBDMzNcdTBDMzUtXHUwQzM5XHUwQzNFLVx1MEM0NFx1MEM0Ni1cdTBDNDhcdTBDNEEtXHUwQzREXHUwQzU1LVx1MEM1Nlx1MEM2MC1cdTBDNjFcdTBDNjYtXHUwQzZGXTtORkQ7VGVsdWd1LUludGVySW5kaWM7SW50ZXJJbmRpYy1Pcml5YTtORkMKK1RlbHVndS1UYW1pbDphbGlhczpbXHUwQzAxLVx1MEMwM1x1MEMwNS1cdTBDMENcdTBDMEUtXHUwQzEwXHUwQzEyLVx1MEMyOFx1MEMyQS1cdTBDMzNcdTBDMzUtXHUwQzM5XHUwQzNFLVx1MEM0NFx1MEM0Ni1cdTBDNDhcdTBDNEEtXHUwQzREXHUwQzU1LVx1MEM1Nlx1MEM2MC1cdTBDNjFcdTBDNjYtXHUwQzZGXTtORkQ7VGVsdWd1LUludGVySW5kaWM7SW50ZXJJbmRpYy1UYW1pbDtORkMKK1RlbHVndS1LYW5uYWRhOmFsaWFzOltcdTBDMDEtXHUwQzAzXHUwQzA1LVx1MEMwQ1x1MEMwRS1cdTBDMTBcdTBDMTItXHUwQzI4XHUwQzJBLVx1MEMzM1x1MEMzNS1cdTBDMzlcdTBDM0UtXHUwQzQ0XHUwQzQ2LVx1MEM0OFx1MEM0QS1cdTBDNERcdTBDNTUtXHUwQzU2XHUwQzYwLVx1MEM2MVx1MEM2Ni1cdTBDNkZdO05GRDtUZWx1Z3UtSW50ZXJJbmRpYztJbnRlckluZGljLUthbm5hZGE7TkZDCitUZWx1Z3UtTWFsYXlhbGFtOmFsaWFzOltcdTBDMDEtXHUwQzAzXHUwQzA1LVx1MEMwQ1x1MEMwRS1cdTBDMTBcdTBDMTItXHUwQzI4XHUwQzJBLVx1MEMzM1x1MEMzNS1cdTBDMzlcdTBDM0UtXHUwQzQ0XHUwQzQ2LVx1MEM0OFx1MEM0QS1cdTBDNERcdTBDNTUtXHUwQzU2XHUwQzYwLVx1MEM2MVx1MEM2Ni1cdTBDNkZdO05GRDtUZWx1Z3UtSW50ZXJJbmRpYztJbnRlckluZGljLU1hbGF5YWxhbTtORkMKKworS2FubmFkYS1EZXZhbmFnYXJpOmFsaWFzOltcdTBDODItXHUwQzgzXHUwQzg1LVx1MEM4Q1x1MEM4RS1cdTBDOTBcdTBDOTItXHUwQ0E4XHUwQ0FBLVx1MENCM1x1MENCNS1cdTBDQjlcdTBDQkUtXHUwQ0M0XHUwQ0M2LVx1MENDOFx1MENDQS1cdTBDQ0RcdTBDRDUtXHUwQ0Q2XHUwQ0RFXHUwQ0UwLVx1MENFMVx1MENFNi1cdTBDRUZdO05GRDtLYW5uYWRhLUludGVySW5kaWM7SW50ZXJJbmRpYy1EZXZhbmFnYXJpO05GQworS2FubmFkYS1CZW5nYWxpOmFsaWFzOltcdTBDODItXHUwQzgzXHUwQzg1LVx1MEM4Q1x1MEM4RS1cdTBDOTBcdTBDOTItXHUwQ0E4XHUwQ0FBLVx1MENCM1x1MENCNS1cdTBDQjlcdTBDQkUtXHUwQ0M0XHUwQ0M2LVx1MENDOFx1MENDQS1cdTBDQ0RcdTBDRDUtXHUwQ0Q2XHUwQ0RFXHUwQ0UwLVx1MENFMVx1MENFNi1cdTBDRUZdO05GRDtLYW5uYWRhLUludGVySW5kaWM7SW50ZXJJbmRpYy1CZW5nYWxpO05GQworS2FubmFkYS1HdXJtdWtoaTphbGlhczpbXHUwQzgyLVx1MEM4M1x1MEM4NS1cdTBDOENcdTBDOEUtXHUwQzkwXHUwQzkyLVx1MENBOFx1MENBQS1cdTBDQjNcdTBDQjUtXHUwQ0I5XHUwQ0JFLVx1MENDNFx1MENDNi1cdTBDQzhcdTBDQ0EtXHUwQ0NEXHUwQ0Q1LVx1MENENlx1MENERVx1MENFMC1cdTBDRTFcdTBDRTYtXHUwQ0VGXTtORkQ7S2FubmFkYS1JbnRlckluZGljO0ludGVySW5kaWMtR3VybXVraGk7TkZDCitLYW5uYWRhLUd1amFyYXRpOmFsaWFzOltcdTBDODItXHUwQzgzXHUwQzg1LVx1MEM4Q1x1MEM4RS1cdTBDOTBcdTBDOTItXHUwQ0E4XHUwQ0FBLVx1MENCM1x1MENCNS1cdTBDQjlcdTBDQkUtXHUwQ0M0XHUwQ0M2LVx1MENDOFx1MENDQS1cdTBDQ0RcdTBDRDUtXHUwQ0Q2XHUwQ0RFXHUwQ0UwLVx1MENFMVx1MENFNi1cdTBDRUZdO05GRDtLYW5uYWRhLUludGVySW5kaWM7SW50ZXJJbmRpYy1HdWphcmF0aTtORkMKK0thbm5hZGEtT3JpeWE6YWxpYXM6W1x1MEM4Mi1cdTBDODNcdTBDODUtXHUwQzhDXHUwQzhFLVx1MEM5MFx1MEM5Mi1cdTBDQThcdTBDQUEtXHUwQ0IzXHUwQ0I1LVx1MENCOVx1MENCRS1cdTBDQzRcdTBDQzYtXHUwQ0M4XHUwQ0NBLVx1MENDRFx1MENENS1cdTBDRDZcdTBDREVcdTBDRTAtXHUwQ0UxXHUwQ0U2LVx1MENFRl07TkZEO0thbm5hZGEtSW50ZXJJbmRpYztJbnRlckluZGljLU9yaXlhO05GQworS2FubmFkYS1UYW1pbDphbGlhczpbXHUwQzgyLVx1MEM4M1x1MEM4NS1cdTBDOENcdTBDOEUtXHUwQzkwXHUwQzkyLVx1MENBOFx1MENBQS1cdTBDQjNcdTBDQjUtXHUwQ0I5XHUwQ0JFLVx1MENDNFx1MENDNi1cdTBDQzhcdTBDQ0EtXHUwQ0NEXHUwQ0Q1LVx1MENENlx1MENERVx1MENFMC1cdTBDRTFcdTBDRTYtXHUwQ0VGXTtORkQ7S2FubmFkYS1JbnRlckluZGljO0ludGVySW5kaWMtVGFtaWw7TkZDCitLYW5uYWRhLVRlbHVndTphbGlhczpbXHUwQzgyLVx1MEM4M1x1MEM4NS1cdTBDOENcdTBDOEUtXHUwQzkwXHUwQzkyLVx1MENBOFx1MENBQS1cdTBDQjNcdTBDQjUtXHUwQ0I5XHUwQ0JFLVx1MENDNFx1MENDNi1cdTBDQzhcdTBDQ0EtXHUwQ0NEXHUwQ0Q1LVx1MENENlx1MENERVx1MENFMC1cdTBDRTFcdTBDRTYtXHUwQ0VGXTtORkQ7S2FubmFkYS1JbnRlckluZGljO0ludGVySW5kaWMtVGVsdWd1O05GQworS2FubmFkYS1NYWxheWFsYW06YWxpYXM6W1x1MEM4Mi1cdTBDODNcdTBDODUtXHUwQzhDXHUwQzhFLVx1MEM5MFx1MEM5Mi1cdTBDQThcdTBDQUEtXHUwQ0IzXHUwQ0I1LVx1MENCOVx1MENCRS1cdTBDQzRcdTBDQzYtXHUwQ0M4XHUwQ0NBLVx1MENDRFx1MENENS1cdTBDRDZcdTBDREVcdTBDRTAtXHUwQ0UxXHUwQ0U2LVx1MENFRl07TkZEO0thbm5hZGEtSW50ZXJJbmRpYztJbnRlckluZGljLU1hbGF5YWxhbTtORkMKKworTWFsYXlhbGFtLURldmFuYWdhcmk6YWxpYXM6W1x1MEQwMi1cdTBEMDNcdTBEMDUtXHUwRDBDXHUwRDBFLVx1MEQxMFx1MEQxMi1cdTBEMjhcdTBEMkEtXHUwRDM5XHUwRDNFLVx1MEQ0M1x1MEQ0Ni1cdTBENDhcdTBENEEtXHUwRDREXHUwRDU3XHUwRDYwLVx1MEQ2MVx1MEQ2Ni1cdTBENkZdO05GRDtNYWxheWFsYW0tSW50ZXJJbmRpYztJbnRlckluZGljLURldmFuYWdhcmk7TkZDCitNYWxheWFsYW0tQmVuZ2FsaTphbGlhczpbXHUwRDAyLVx1MEQwM1x1MEQwNS1cdTBEMENcdTBEMEUtXHUwRDEwXHUwRDEyLVx1MEQyOFx1MEQyQS1cdTBEMzlcdTBEM0UtXHUwRDQzXHUwRDQ2LVx1MEQ0OFx1MEQ0QS1cdTBENERcdTBENTdcdTBENjAtXHUwRDYxXHUwRDY2LVx1MEQ2Rl07TkZEO01hbGF5YWxhbS1JbnRlckluZGljO0ludGVySW5kaWMtQmVuZ2FsaTtORkMKK01hbGF5YWxhbS1HdXJtdWtoaTphbGlhczpbXHUwRDAyLVx1MEQwM1x1MEQwNS1cdTBEMENcdTBEMEUtXHUwRDEwXHUwRDEyLVx1MEQyOFx1MEQyQS1cdTBEMzlcdTBEM0UtXHUwRDQzXHUwRDQ2LVx1MEQ0OFx1MEQ0QS1cdTBENERcdTBENTdcdTBENjAtXHUwRDYxXHUwRDY2LVx1MEQ2Rl07TkZEO01hbGF5YWxhbS1JbnRlckluZGljO0ludGVySW5kaWMtR3VybXVraGk7TkZDCitNYWxheWFsYW0tR3VqYXJhdGk6YWxpYXM6W1x1MEQwMi1cdTBEMDNcdTBEMDUtXHUwRDBDXHUwRDBFLVx1MEQxMFx1MEQxMi1cdTBEMjhcdTBEMkEtXHUwRDM5XHUwRDNFLVx1MEQ0M1x1MEQ0Ni1cdTBENDhcdTBENEEtXHUwRDREXHUwRDU3XHUwRDYwLVx1MEQ2MVx1MEQ2Ni1cdTBENkZdO05GRDtNYWxheWFsYW0tSW50ZXJJbmRpYztJbnRlckluZGljLUd1amFyYXRpO05GQworTWFsYXlhbGFtLU9yaXlhOmFsaWFzOltcdTBEMDItXHUwRDAzXHUwRDA1LVx1MEQwQ1x1MEQwRS1cdTBEMTBcdTBEMTItXHUwRDI4XHUwRDJBLVx1MEQzOVx1MEQzRS1cdTBENDNcdTBENDYtXHUwRDQ4XHUwRDRBLVx1MEQ0RFx1MEQ1N1x1MEQ2MC1cdTBENjFcdTBENjYtXHUwRDZGXTtORkQ7TWFsYXlhbGFtLUludGVySW5kaWM7SW50ZXJJbmRpYy1Pcml5YTtORkMKK01hbGF5YWxhbS1UYW1pbDphbGlhczpbXHUwRDAyLVx1MEQwM1x1MEQwNS1cdTBEMENcdTBEMEUtXHUwRDEwXHUwRDEyLVx1MEQyOFx1MEQyQS1cdTBEMzlcdTBEM0UtXHUwRDQzXHUwRDQ2LVx1MEQ0OFx1MEQ0QS1cdTBENERcdTBENTdcdTBENjAtXHUwRDYxXHUwRDY2LVx1MEQ2Rl07TkZEO01hbGF5YWxhbS1JbnRlckluZGljO0ludGVySW5kaWMtVGFtaWw7TkZDCitNYWxheWFsYW0tVGVsdWd1OmFsaWFzOltcdTBEMDItXHUwRDAzXHUwRDA1LVx1MEQwQ1x1MEQwRS1cdTBEMTBcdTBEMTItXHUwRDI4XHUwRDJBLVx1MEQzOVx1MEQzRS1cdTBENDNcdTBENDYtXHUwRDQ4XHUwRDRBLVx1MEQ0RFx1MEQ1N1x1MEQ2MC1cdTBENjFcdTBENjYtXHUwRDZGXTtORkQ7TWFsYXlhbGFtLUludGVySW5kaWM7SW50ZXJJbmRpYy1UZWx1Z3U7TkZDCitNYWxheWFsYW0tS2FubmFkYTphbGlhczpbXHUwRDAyLVx1MEQwM1x1MEQwNS1cdTBEMENcdTBEMEUtXHUwRDEwXHUwRDEyLVx1MEQyOFx1MEQyQS1cdTBEMzlcdTBEM0UtXHUwRDQzXHUwRDQ2LVx1MEQ0OFx1MEQ0QS1cdTBENERcdTBENTdcdTBENjAtXHUwRDYxXHUwRDY2LVx1MEQ2Rl07TkZEO01hbGF5YWxhbS1JbnRlckluZGljO0ludGVySW5kaWMtS2FubmFkYTtORkMKKworIyBlb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvaW52dWNhLmljdSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvaW52dWNhLmljdQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYTM3YzJlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9pbnZ1Y2EuaWN1CkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvcGFja2FnZS5odG1sIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODA5NjdkZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvcGFja2FnZS5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCAzLjIgRmluYWwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworICAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL3BhY2thZ2UuaHRtbCx2ICQKKyAgJFJldmlzaW9uOiAxLjEgJAorICAkRGF0ZTogMjAwMC8wMy8xNSAyMTozNTo1MiAkCistLT4KKzwvaGVhZD4KKzxib2R5IGJnY29sb3I9IndoaXRlIj4KK1Jlc291cmNlIGRhdGEgdXNlZCBieSBjbGFzc2VzIGluIGNvbS5pYm0udGV4dC4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL3RoYWlfZGljdCBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvdGhhaV9kaWN0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjlmOGY3N2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL3RoYWlfZGljdApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL3VjYWRhdGEuaWN1IGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS91Y2FkYXRhLmljdQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NWMwY2E1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS91Y2FkYXRhLmljdQpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL3VuYW1lcy5pY3UgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL3VuYW1lcy5pY3UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzA5ZTI1NAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvdW5hbWVzLmljdQpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL3Vub3JtLmljdSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvdW5vcm0uaWN1Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkOWI3ODcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL3Vub3JtLmljdQpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL3Vwcm9wcy5pY3UgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL3Vwcm9wcy5pY3UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmZmMGEyNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvdXByb3BzLmljdQpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzRjZWM0YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VDaGFyYWN0ZXIuamF2YQpAQCAtMCwwICsxLDE4OTkgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyLmphdmEsdiAkIAorKiAkRGF0ZTogMjAwMi8wNy8zMCAwMjozODoxMSAkIAorKiAkUmV2aXNpb246IDEuNDUgJAorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5sYW5nOworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlJhbmdlVmFsdWVJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlZhbHVlSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5WZXJzaW9uSW5mbzsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLk5vcm1hbGl6ZXJJbXBsOworCisvKioKKyogPHA+CisqIFRoZSBVQ2hhcmFjdGVyIGNsYXNzIHByb3ZpZGVzIGV4dGVuc2lvbnMgdG8gdGhlIAorKiA8YSBocmVmPWh0dHA6Ly9qYXZhLnN1bi5jb20vajJzZS8xLjMvZG9jcy9hcGkvamF2YS9sYW5nL0NoYXJhY3Rlci5odG1sPgorKiBqYXZhLmxhbmcuQ2hhcmFjdGVyPC9hPiBjbGFzcy4gVGhlc2UgZXh0ZW5zaW9ucyBwcm92aWRlIHN1cHBvcnQgZm9yIAorKiBVbmljb2RlIDMuMSBwcm9wZXJ0aWVzIGFuZCB0b2dldGhlciB3aXRoIHRoZSA8YSBocmVmPVVURjE2Lmh0bWw+VVRGMTY8L2E+IAorKiBjbGFzcywgcHJvdmlkZSBzdXBwb3J0IGZvciBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMgKHRob3NlIHdpdGggY29kZSAKKyogcG9pbnRzIGFib3ZlIFUrRkZGRikuCisqIDwvcD4KKyogPHA+CisqIENvZGUgcG9pbnRzIGFyZSByZXByZXNlbnRlZCBpbiB0aGVzZSBBUEkgdXNpbmcgaW50cy4gV2hpbGUgaXQgd291bGQgYmUgCisqIG1vcmUgY29udmVuaWVudCBpbiBKYXZhIHRvIGhhdmUgYSBzZXBhcmF0ZSBwcmltaXRpdmUgZGF0YXR5cGUgZm9yIHRoZW0sIAorKiBpbnRzIHN1ZmZpY2UgaW4gdGhlIG1lYW50aW1lLgorKiA8L3A+CisqIDxwPgorKiBUbyB1c2UgdGhpcyBjbGFzcyBwbGVhc2UgYWRkIHRoZSBqYXIgZmlsZSBuYW1lIGljdTRqLmphciB0byB0aGUgCisqIGNsYXNzIHBhdGgsIHNpbmNlIGl0IGNvbnRhaW5zIGRhdGEgZmlsZXMgd2hpY2ggc3VwcGx5IHRoZSBpbmZvcm1hdGlvbiB1c2VkIAorKiBieSB0aGlzIGZpbGUuPGJyPgorKiBFLmcuIEluIFdpbmRvd3MgPGJyPgorKiA8Y29kZT5zZXQgQ0xBU1NQQVRIPSVDTEFTU1BBVEglOyRKQVJfRklMRV9QQVRIL3VjaGFyYWN0ZXIuamFyPC9jb2RlPi48YnI+CisqIE90aGVyd2lzZSwgYW5vdGhlciBtZXRob2Qgd291bGQgYmUgdG8gY29weSB0aGUgZmlsZXMgdXByb3BzLmRhdCBhbmQgCisqIHVuYW1lcy5pY3UgZnJvbSB0aGUgaWN1NGogc291cmNlIHN1YmRpcmVjdG9yeSAKKyogPGk+JElDVTRKX1NSQy9zcmMvY29tLmlibS5pY3UuaW1wbC5kYXRhPC9pPiB0byB5b3VyIGNsYXNzIGRpcmVjdG9yeSAKKyogPGk+JElDVTRKX0NMQVNTL2NvbS5pYm0uaWN1LmltcGwuZGF0YTwvaT4uCisqIDwvcD4KKyogPHA+CisqIEFzaWRlIGZyb20gdGhlIGFkZGl0aW9ucyBmb3IgVVRGLTE2IHN1cHBvcnQsIGFuZCB0aGUgdXBkYXRlZCBVbmljb2RlIDMuMQorKiBwcm9wZXJ0aWVzLCB0aGUgbWFpbiBkaWZmZXJlbmNlcyBiZXR3ZWVuIFVDaGFyYWN0ZXIgYW5kIENoYXJhY3RlciBhcmU6CisqIDx1bD4KKyogPGxpPiBVQ2hhcmFjdGVyIGlzIG5vdCBkZXNpZ25lZCB0byBiZSBhIGNoYXIgd3JhcHBlciBhbmQgZG9lcyBub3QgaGF2ZSAKKyogICAgICBBUElzIHRvIHdoaWNoIGludm9sdmVzIG1hbmFnZW1lbnQgb2YgdGhhdCBzaW5nbGUgY2hhci48YnI+CisqICAgICAgVGhlc2UgaW5jbHVkZTogCisqICAgICAgPHVsPgorKiAgICAgICAgPGxpPiBjaGFyIGNoYXJWYWx1ZSgpLCAKKyogICAgICAgIDxsaT4gaW50IGNvbXBhcmVUbyhqYXZhLmxhbmcuQ2hhcmFjdGVyLCBqYXZhLmxhbmcuQ2hhcmFjdGVyKSwgZXRjLgorKiAgICAgIDwvdWw+CisqIDxsaT4gVUNoYXJhY3RlciBkb2VzIG5vdCBpbmNsdWRlIENoYXJhY3RlciBBUElzIHRoYXQgYXJlIGRlcHJlY2F0ZWQsIG5vdCAKKyogICAgICBkb2VzIGl0IGluY2x1ZGUgdGhlIEphdmEtc3BlY2lmaWMgY2hhcmFjdGVyIGluZm9ybWF0aW9uLCBzdWNoIGFzIAorKiAgICAgIGJvb2xlYW4gaXNKYXZhSWRlbnRpZmllclBhcnQoY2hhciBjaCkuCisqIDxsaT4gQ2hhcmFjdGVyIG1hcHMgY2hhcmFjdGVycyAnQScgLSAnWicgYW5kICdhJyAtICd6JyB0byB0aGUgbnVtZXJpYyAKKyogICAgICB2YWx1ZXMgJzEwJyAtICczNScuIFVDaGFyYWN0ZXIgYWxzbyBkb2VzIHRoaXMgaW4gZGlnaXQgYW5kCisqICAgICAgZ2V0TnVtZXJpY1ZhbHVlLCB0byBhZGhlcmUgdG8gdGhlIGphdmEgc2VtYW50aWNzIG9mIHRoZXNlCisqICAgICAgbWV0aG9kcy4gIE5ldyBtZXRob2RzIHVuaWNvZGVEaWdpdCwgYW5kCisqICAgICAgZ2V0VW5pY29kZU51bWVyaWNWYWx1ZSBkbyBub3QgdHJlYXQgdGhlIGFib3ZlIGNvZGUgcG9pbnRzIAorKiAgICAgIGFzIGhhdmluZyBudW1lcmljIHZhbHVlcy4gIFRoaXMgaXMgYSBzZW1hbnRpYyBjaGFuZ2UgZnJvbSBJQ1U0SiAxLjMuMS4KKyogPC91bD4KKyogPHA+CisqIEZ1cnRoZXIgZGV0YWlsIGRpZmZlcmVuY2VzIGNhbiBiZSBkZXRlcm1pbmVkIGZyb20gdGhlIHByb2dyYW0gCisqICAgICAgICA8YSBocmVmID0gaHR0cDovL29zcy5zb2Z0d2FyZS5pYm0uY29tL2RldmVsb3BlcndvcmtzL29wZW5zb3VyY2UvY3ZzL2ljdTRqL35jaGVja291dH4vaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVUNoYXJhY3RlckNvbXBhcmUuamF2YT4KKyogICAgICAgIGNvbS5pYm0uaWN1LmRldi50ZXN0LmxhbmcuVUNoYXJhY3RlckNvbXBhcmU8L2E+CisqIDwvcD4KKyogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyogQHNpbmNlIG9jdCAwNiAyMDAwCisqIEBzZWUgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyQ2F0ZWdvcnkKKyogQHNlZSBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXJEaXJlY3Rpb24KKyovCisKK3B1YmxpYyBmaW5hbCBjbGFzcyBVQ2hhcmFjdGVyCit7IAorICAgIC8vIHB1YmxpYyBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgCisgICAgLyoqIAorICAgICogVGhlIGxvd2VzdCBVbmljb2RlIGNvZGUgcG9pbnQgdmFsdWUuCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNSU5fVkFMVUUgPSBVVEYxNi5DT0RFUE9JTlRfTUlOX1ZBTFVFOworCisgICAgLyoqCisgICAgKiBUaGUgaGlnaGVzdCBVbmljb2RlIGNvZGUgcG9pbnQgdmFsdWUgKHNjYWxhciB2YWx1ZSkgYWNjb3JkaW5nIHRvIHRoZSAKKyAgICAqIFVuaWNvZGUgU3RhbmRhcmQuIAorICAgICogVGhpcyBpcyBhIDIxLWJpdCB2YWx1ZSAoMjEgYml0cywgcm91bmRlZCB1cCkuPGJyPgorICAgICogVXAtdG8tZGF0ZSBVbmljb2RlIGltcGxlbWVudGF0aW9uIG9mIGphdmEubGFuZy5DaGFyYWN0ZXIuTUlOX1ZBTFVFCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNQVhfVkFMVUUgPSBVVEYxNi5DT0RFUE9JTlRfTUFYX1ZBTFVFOyAKKyAgICAgIAorICAgIC8qKgorICAgICogVGhlIG1pbmltdW0gdmFsdWUgZm9yIFN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFID0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5TVVBQTEVNRU5UQVJZX01JTl9WQUxVRTsKKyAgICAgIAorICAgIC8qKgorICAgICogVW5pY29kZSB2YWx1ZSB1c2VkIHdoZW4gdHJhbnNsYXRpbmcgaW50byBVbmljb2RlIGVuY29kaW5nIGZvcm0gYW5kIHRoZXJlIAorICAgICogaXMgbm8gZXhpc3RpbmcgY2hhcmFjdGVyLgorICAgICovCisJcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUkVQTEFDRU1FTlRfQ0hBUiA9ICdcdUZGRkQnOworICAgIAkKKwkKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAKKyAgICAvKioKKyAgICAqIFJldHJpZXZlcyB0aGUgbnVtZXJpYyB2YWx1ZSBvZiBhIGRlY2ltYWwgZGlnaXQgY29kZSBwb2ludC4KKyAgICAqIDxicj5UaGlzIG1ldGhvZCBvYnNlcnZlcyB0aGUgc2VtYW50aWNzIG9mCisgICAgKiA8Y29kZT5qYXZhLmxhbmcuQ2hhcmFjdGVyLmRpZ2l0KCk8L2NvZGU+LiAgTm90ZSB0aGF0IHRoaXMKKyAgICAqIHdpbGwgcmV0dXJuIHBvc2l0aXZlIHZhbHVlcyBmb3IgY29kZSBwb2ludHMgZm9yIHdoaWNoIGlzRGlnaXQKKyAgICAqIHJldHVybnMgZmFsc2UsIGp1c3QgbGlrZSBqYXZhLmxhbmcuQ2hhcmFjdGVyLgorICAgICogPGJyPjxlbT5TZW1hbnRpYyBDaGFuZ2U6PC9lbT4gSW4gcmVsZWFzZSAxLjMuMSBhbmQKKyAgICAqIHByaW9yLCB0aGlzIGRpZCBub3QgdHJlYXQgdGhlIEV1cm9wZWFuIGxldHRlcnMgYXMgaGF2aW5nIGEKKyAgICAqIGRpZ2l0IHZhbHVlLCBhbmQgYWxzbyB0cmVhdGVkIG51bWVyaWMgbGV0dGVycyBhbmQgb3RoZXIgbnVtYmVycyBhcyAKKyAgICAqIGRpZ2l0cy4gIAorICAgICogVGhpcyBoYXMgYmVlbiBjaGFuZ2VkIHRvIGNvbmZvcm0gdG8gdGhlIGphdmEgc2VtYW50aWNzLgorICAgICogPGJyPkEgY29kZSBwb2ludCBpcyBhIHZhbGlkIGRpZ2l0IGlmIGFuZCBvbmx5IGlmOgorICAgICogPHVsPgorICAgICogICA8bGk+Y2ggaXMgYSBkZWNpbWFsIGRpZ2l0IG9yIG9uZSBvZiB0aGUgZXVyb3BlYW4gbGV0dGVycywgYW5kCisgICAgKiAgIDxsaT50aGUgdmFsdWUgb2YgY2ggaXMgbGVzcyB0aGFuIHRoZSBzcGVjaWZpZWQgcmFkaXguCisgICAgKiA8L3VsPgorICAgICogQHBhcmFtIGNoIHRoZSBjb2RlIHBvaW50IHRvIHF1ZXJ5CisgICAgKiBAcGFyYW0gcmFkaXggdGhlIHJhZGl4CisgICAgKiBAcmV0dXJuIHRoZSBudW1lcmljIHZhbHVlIHJlcHJlc2VudGVkIGJ5IHRoZSBjb2RlIHBvaW50IGluIHRoZQorICAgICogc3BlY2lmaWVkIHJhZGl4LCBvciAtMSBpZiB0aGUgY29kZSBwb2ludCBpcyBub3QgYSBkZWNpbWFsIGRpZ2l0CisgICAgKiBvciBpZiBpdHMgdmFsdWUgaXMgdG9vIGxhcmdlIGZvciB0aGUgcmFkaXgKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGRpZ2l0KGludCBjaCwgaW50IHJhZGl4KQorICAgIHsKKyAgICAgICAgaW50IHByb3BzICAgICAgID0gZ2V0UHJvcHMoY2gpOworICAgICAgICBpbnQgbnVtZXJpY1R5cGUgPSBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0TnVtZXJpY1R5cGUocHJvcHMpOworICAgICAgICAKKyAgICAgICAgaW50IHJlc3VsdCA9IC0xOworICAgICAgICBpZiAobnVtZXJpY1R5cGUgPT0gVUNoYXJhY3RlclByb3BlcnR5LkRFQ0lNQUxfRElHSVRfTlVNRVJJQ19UWVBFXykgeworICAgICAgICAJLy8gaWYgcHJvcHMgPT0gMCwgaXQgd2lsbCBqdXN0IGZhbGwgdGhyb3VnaCBhbmQgcmV0dXJuIC0xCisgICAgICAgIAlpZiAoIVVDaGFyYWN0ZXJQcm9wZXJ0eS5pc0V4Y2VwdGlvbkluZGljYXRvcihwcm9wcykpIHsKKyAgICAgICAgICAgIAkvLyBub3QgY29udGFpbmVkIGluIGV4Y2VwdGlvbiBkYXRhCisgICAgICAgICAgICAJcmVzdWx0ID0gVUNoYXJhY3RlclByb3BlcnR5LmdldFNpZ25lZFZhbHVlKHByb3BzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgCWludCBpbmRleCA9IFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRFeGNlcHRpb25JbmRleChwcm9wcyk7CisgICAgICAgICAgICAJaWYgKFBST1BFUlRZXy5oYXNFeGNlcHRpb25WYWx1ZShpbmRleCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJQcm9wZXJ0eS5FWENfTlVNRVJJQ19WQUxVRV8pKSB7CisgICAgICAgICAgICAgICAgCXJldHVybiBQUk9QRVJUWV8uZ2V0RXhjZXB0aW9uKGluZGV4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3RlclByb3BlcnR5LkVYQ19OVU1FUklDX1ZBTFVFXyk7IAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKHJlc3VsdCA8IDAgJiYgcmFkaXggPiAxMCkgeworICAgICAgICAgICAgcmVzdWx0ID0gZ2V0RXVyb3BlYW5EaWdpdChjaCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChyZXN1bHQgPCAwIHx8IHJlc3VsdCA+PSByYWRpeCkgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogUmV0cmlldmVzIHRoZSBudW1lcmljIHZhbHVlIG9mIGEgZGVjaW1hbCBkaWdpdCBjb2RlIHBvaW50LgorICAgICogPGJyPlRoaXMgaXMgYSBjb252ZW5pZW5jZSBvdmVybG9hZCBvZiA8Y29kZT5kaWdpdChpbnQsIGludCk8L2NvZGU+IAorICAgICogdGhhdCBwcm92aWRlcyBhIGRlY2ltYWwgcmFkaXguCisgICAgKiA8YnI+PGVtPlNlbWFudGljIENoYW5nZTo8L2VtPiBJbiByZWxlYXNlIDEuMy4xIGFuZCBwcmlvciwgdGhpcworICAgICogdHJlYXRlZCBudW1lcmljIGxldHRlcnMgYW5kIG90aGVyIG51bWJlcnMgYXMgZGlnaXRzLiAgVGhpcyBoYXMKKyAgICAqIGJlZW4gY2hhbmdlZCB0byBjb25mb3JtIHRvIHRoZSBqYXZhIHNlbWFudGljcy4KKyAgICAqIEBwYXJhbSBjaCB0aGUgY29kZSBwb2ludCB0byBxdWVyeQorICAgICogQHJldHVybiB0aGUgbnVtZXJpYyB2YWx1ZSByZXByZXNlbnRlZCBieSB0aGUgY29kZSBwb2ludCwKKyAgICAqIG9yIC0xIGlmIHRoZSBjb2RlIHBvaW50IGlzIG5vdCBhIGRlY2ltYWwgZGlnaXQgb3IgaWYgaXRzCisgICAgKiB2YWx1ZSBpcyB0b28gbGFyZ2UgZm9yIGEgZGVjaW1hbCByYWRpeCAKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGRpZ2l0KGludCBjaCkKKyAgICB7CisgICAgICAgIHJldHVybiBkaWdpdChjaCwgREVDSU1BTF9SQURJWF8pOworICAgIH0KKworICAgLyoqCisgICAgKiBSZXR1cm5zIHRoZSBudW1lcmljIHZhbHVlIG9mIHRoZSBjb2RlIHBvaW50IGFzIGEgbm9ubmVnYXRpdmUgCisgICAgKiBpbnRlZ2VyLgorICAgICogPGJyPklmIHRoZSBjb2RlIHBvaW50IGRvZXMgbm90IGhhdmUgYSBudW1lcmljIHZhbHVlLCB0aGVuIC0xIGlzIHJldHVybmVkLiAKKyAgICAqIDxicj4KKyAgICAqIElmIHRoZSBjb2RlIHBvaW50IGhhcyBhIG51bWVyaWMgdmFsdWUgdGhhdCBjYW5ub3QgYmUgcmVwcmVzZW50ZWQgYXMgYSAKKyAgICAqIG5vbm5lZ2F0aXZlIGludGVnZXIgKGZvciBleGFtcGxlLCBhIGZyYWN0aW9uYWwgdmFsdWUpLCB0aGVuIC0yIGlzIAorICAgICogcmV0dXJuZWQuCisgICAgKiA8YnI+PGVtPlNlbWFudGljIENoYW5nZTo8L2VtPiBJbiByZWxlYXNlIDEuMy4xIGFuZAorICAgICogcHJpb3IsIHRoaXMgcmV0dXJuZWQgLTEgZm9yIEFTQ0lJIGxldHRlcnMgYW5kIHRoZWlyCisgICAgKiBmdWxsd2lkdGggY291bnRlcnBhcnRzLiAgVGhpcyBoYXMgYmVlbiBjaGFuZ2VkIHRvCisgICAgKiBjb25mb3JtIHRvIHRoZSBqYXZhIHNlbWFudGljcy4KKyAgICAqIEBwYXJhbSBjaCB0aGUgY29kZSBwb2ludCB0byBxdWVyeQorICAgICogQHJldHVybiB0aGUgbnVtZXJpYyB2YWx1ZSBvZiB0aGUgY29kZSBwb2ludCwgb3IgLTEgaWYgaXQgaGFzIG5vIG51bWVyaWMgCisgICAgKiB2YWx1ZSwgb3IgLTIgaWYgaXQgaGFzIGEgbnVtZXJpYyB2YWx1ZSB0aGF0IGNhbm5vdCBiZSByZXByZXNlbnRlZCBhcyBhIAorICAgICogbm9ubmVnYXRpdmUgaW50ZWdlcgorICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0TnVtZXJpY1ZhbHVlKGludCBjaCkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXROdW1lcmljVmFsdWVJbnRlcm5hbChjaCwgdHJ1ZSk7CisgICAgfQorCisgICAvKioKKyAgICAqIFJldHVybnMgdGhlIFVuaWNvZGUgbnVtZXJpYyB2YWx1ZSBvZiB0aGUgY29kZSBwb2ludCBhcyBhIG5vbm5lZ2F0aXZlIAorICAgICogaW50ZWdlci4KKyAgICAqIDxicj5JZiB0aGUgY29kZSBwb2ludCBkb2VzIG5vdCBoYXZlIGEgbnVtZXJpYyB2YWx1ZSwgdGhlbiAtMSBpcyByZXR1cm5lZC4gPGJyPgorICAgICogSWYgdGhlIGNvZGUgcG9pbnQgaGFzIGEgbnVtZXJpYyB2YWx1ZSB0aGF0IGNhbm5vdCBiZSByZXByZXNlbnRlZCBhcyBhIAorICAgICogbm9ubmVnYXRpdmUgaW50ZWdlciAoZm9yIGV4YW1wbGUsIGEgZnJhY3Rpb25hbCB2YWx1ZSksIHRoZW4gLTIgaXMgCisgICAgKiByZXR1cm5lZC4KKyAgICAqIFRoaXMgcmV0dXJucyB2YWx1ZXMgb3RoZXIgdGhhbiAtMSBmb3IgYWxsIGFuZCBvbmx5IHRob3NlIGNvZGUgcG9pbnRzIAorICAgICogd2hvc2UgdHlwZSBpcyBhIG51bWVyaWMgdHlwZS4KKyAgICAqIEBwYXJhbSBjaCB0aGUgY29kZSBwb2ludCB0byBxdWVyeQorICAgICogQHJldHVybiB0aGUgbnVtZXJpYyB2YWx1ZSBvZiB0aGUgY29kZSBwb2ludCwgb3IgLTEgaWYgaXQgaGFzIG5vIG51bWVyaWMgCisgICAgKiB2YWx1ZSwgb3IgLTIgaWYgaXQgaGFzIGEgbnVtZXJpYyB2YWx1ZSB0aGF0IGNhbm5vdCBiZSByZXByZXNlbnRlZCBhcyBhIAorICAgICogbm9ubmVnYXRpdmUgaW50ZWdlcgorICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0VW5pY29kZU51bWVyaWNWYWx1ZShpbnQgY2gpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0TnVtZXJpY1ZhbHVlSW50ZXJuYWwoY2gsIGZhbHNlKTsKKyAgICB9CisgIAorICAgIC8qKgorICAgICogUmV0dXJucyBhIHZhbHVlIGluZGljYXRpbmcgYSBjb2RlIHBvaW50J3MgVW5pY29kZSBjYXRlZ29yeS4KKyAgICAqIFVwLXRvLWRhdGUgVW5pY29kZSBpbXBsZW1lbnRhdGlvbiBvZiBqYXZhLmxhbmcuQ2hhcmFjdGVyLmdldFR5cGUoKSBleGNlcHQgCisgICAgKiBmb3IgdGhlIGFib3ZlIG1lbnRpb25lZCBjb2RlIHBvaW50cyB0aGF0IGhhZCB0aGVpciBjYXRlZ29yeSBjaGFuZ2VkLjxicj4KKyAgICAqIFJldHVybiByZXN1bHRzIGFyZSBjb25zdGFudHMgZnJvbSB0aGUgaW50ZXJmYWNlIAorICAgICogPGEgaHJlZj1VQ2hhcmFjdGVyQ2F0ZWdvcnkuaHRtbD5VQ2hhcmFjdGVyQ2F0ZWdvcnk8L2E+CisgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB3aG9zZSB0eXBlIGlzIHRvIGJlIGRldGVybWluZWQKKyAgICAqIEByZXR1cm4gY2F0ZWdvcnkgd2hpY2ggaXMgYSB2YWx1ZSBvZiBVQ2hhcmFjdGVyQ2F0ZWdvcnkKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldFR5cGUoaW50IGNoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRQcm9wVHlwZShnZXRQcm9wcyhjaCkpOworICAgIH0KKyAgICAgICAKKyAgICAvKioKKyAgICAqIERldGVybWluZXMgaWYgYSBjb2RlIHBvaW50IGhhcyBhIGRlZmluZWQgbWVhbmluZyBpbiB0aGUgdXAtdG8tZGF0ZSBVbmljb2RlCisgICAgKiBzdGFuZGFyZC4KKyAgICAqIEUuZy4gc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cyB0aG91Z2ggYWxsb2NhdGVkIHNwYWNlIGFyZSBub3QgZGVmaW5lZCBpbiAKKyAgICAqIFVuaWNvZGUgeWV0Ljxicj4KKyAgICAqIFVwLXRvLWRhdGUgVW5pY29kZSBpbXBsZW1lbnRhdGlvbiBvZiBqYXZhLmxhbmcuQ2hhcmFjdGVyLmlzRGVmaW5lZCgpCisgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB0byBiZSBkZXRlcm1pbmVkIGlmIGl0IGlzIGRlZmluZWQgaW4gdGhlIG1vc3QgY3VycmVudCAKKyAgICAqICAgICAgICB2ZXJzaW9uIG9mIFVuaWNvZGUKKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIGNvZGUgcG9pbnQgaXMgZGVmaW5lZCBpbiB1bmljb2RlCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNEZWZpbmVkKGludCBjaCkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRUeXBlKGNoKSAhPSAwOworICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgLyoqCisgICAgKiBEZXRlcm1pbmVzIGlmIGEgY29kZSBwb2ludCBpcyBhIEphdmEgZGlnaXQuCisgICAgKiA8YnI+VGhpcyBtZXRob2Qgb2JzZXJ2ZXMgdGhlIHNlbWFudGljcyBvZgorICAgICogPGNvZGU+amF2YS5sYW5nLkNoYXJhY3Rlci5pc0RpZ2l0KCk8L2NvZGU+LiAgSXQgcmV0dXJucyB0cnVlIGZvcgorICAgICogZGVjaW1hbCBkaWdpdHMgb25seS4KKyAgICAqIDxicj48ZW0+U2VtYW50aWMgQ2hhbmdlOjwvZW0+IEluIHJlbGVhc2UgMS4zLjEgYW5kIHByaW9yLCB0aGlzCisgICAgKiB0cmVhdGVkIG51bWVyaWMgbGV0dGVycyBhbmQgb3RoZXIgbnVtYmVycyBhcyBkaWdpdHMuICBUaGlzIGhhcworICAgICogYmVlbiBjaGFuZ2VkIHRvIGNvbmZvcm0gdG8gdGhlIGphdmEgc2VtYW50aWNzLgorICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgdG8gcXVlcnkKKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIGNvZGUgcG9pbnQgaXMgYSBkaWdpdCAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0RpZ2l0KGludCBjaCkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRUeXBlKGNoKSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuREVDSU1BTF9ESUdJVF9OVU1CRVI7CisgICAgfQorCisgICAgLyoqCisgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBzcGVjaWZpZWQgY29kZSBwb2ludCBpcyBhbiBJU08gY29udHJvbCBjaGFyYWN0ZXIuCisgICAgKiBBIGNvZGUgcG9pbnQgaXMgY29uc2lkZXJlZCB0byBiZSBhbiBJU08gY29udHJvbCBjaGFyYWN0ZXIgaWYgaXQgaXMgaW4gdGhlIAorICAgICogcmFuZ2UgJiM5MnUwMDAwIHRocm91Z2ggJiM5MnUwMDFGIG9yIGluIHRoZSByYW5nZSAmIzkydTAwN0YgdGhyb3VnaCAKKyAgICAqICYjOTJ1MDA5Ri48YnI+CisgICAgKiBVcC10by1kYXRlIFVuaWNvZGUgaW1wbGVtZW50YXRpb24gb2YgamF2YS5sYW5nLkNoYXJhY3Rlci5pc0lTT0NvbnRyb2woKQorICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgdG8gZGV0ZXJtaW5lIGlmIGl0IGlzIGFuIElTTyBjb250cm9sIGNoYXJhY3RlcgorICAgICogQHJldHVybiB0cnVlIGlmIGNvZGUgcG9pbnQgaXMgYSBJU08gY29udHJvbCBjaGFyYWN0ZXIKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0lTT0NvbnRyb2woaW50IGNoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNoID49IDAgJiYgY2ggPD0gQVBQTElDQVRJT05fUFJPR1JBTV9DT01NQU5EXyAmJiAKKyAgICAgICAgICAgICgoY2ggPD0gVU5JVF9TRVBBUkFUT1JfKSB8fCAoY2ggPj0gREVMRVRFXykpOworICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8qKgorICAgICogRGV0ZXJtaW5lcyBpZiB0aGUgc3BlY2lmaWVkIGNvZGUgcG9pbnQgaXMgYSBsZXR0ZXIuCisgICAgKiBVcC10by1kYXRlIFVuaWNvZGUgaW1wbGVtZW50YXRpb24gb2YgamF2YS5sYW5nLkNoYXJhY3Rlci5pc0xldHRlcigpCisgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB0byBkZXRlcm1pbmUgaWYgaXQgaXMgYSBsZXR0ZXIKKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiBjb2RlIHBvaW50IGlzIGEgbGV0dGVyCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNMZXR0ZXIoaW50IGNoKQorICAgIHsKKyAgICAgICAgaW50IGNhdCA9IGdldFR5cGUoY2gpOworICAgICAgICAvLyBpZiBwcm9wcyA9PSAwLCBpdCB3aWxsIGp1c3QgZmFsbCB0aHJvdWdoIGFuZCByZXR1cm4gZmFsc2UKKyAgICAgICAgcmV0dXJuIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVVBQRVJDQVNFX0xFVFRFUiB8fCAKKyAgICAgICAgICAgIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTE9XRVJDQVNFX0xFVFRFUiB8fCAKKyAgICAgICAgICAgIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVElUTEVDQVNFX0xFVFRFUiB8fCAKKyAgICAgICAgICAgIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTU9ESUZJRVJfTEVUVEVSIHx8CisgICAgICAgICAgICBjYXQgPT0gVUNoYXJhY3RlckNhdGVnb3J5Lk9USEVSX0xFVFRFUjsKKyAgICB9CisgICAgICAgICAgICAgICAgCisgICAgLyoqCisgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBzcGVjaWZpZWQgY29kZSBwb2ludCBpcyBhIGxldHRlciBvciBkaWdpdC4KKyAgICAqIE5vdGUgdGhpcyBtZXRob2QsIHVubGlrZSBqYXZhLmxhbmcuQ2hhcmFjdGVyIGRvZXMgbm90IHJlZ2FyZCB0aGUgYXNjaWkgCisgICAgKiBjaGFyYWN0ZXJzICdBJyAtICdaJyBhbmQgJ2EnIC0gJ3onIGFzIGRpZ2l0cy4KKyAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHRvIGRldGVybWluZSBpZiBpdCBpcyBhIGxldHRlciBvciBhIGRpZ2l0CisgICAgKiBAcmV0dXJuIHRydWUgaWYgY29kZSBwb2ludCBpcyBhIGxldHRlciBvciBhIGRpZ2l0CisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNMZXR0ZXJPckRpZ2l0KGludCBjaCkKKyAgICB7CisgICAgICAgIHJldHVybiBpc0RpZ2l0KGNoKSB8fCBpc0xldHRlcihjaCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAqIERldGVybWluZXMgaWYgdGhlIHNwZWNpZmllZCBjb2RlIHBvaW50IGlzIGEgbG93ZXJjYXNlIGNoYXJhY3Rlci4KKyAgICAqIFVuaWNvZGVEYXRhIG9ubHkgY29udGFpbnMgY2FzZSBtYXBwaW5ncyBmb3IgY29kZSBwb2ludHMgd2hlcmUgdGhleSBhcmUgCisgICAgKiBvbmUtdG8tb25lIG1hcHBpbmdzOyBpdCBhbHNvIG9taXRzIGluZm9ybWF0aW9uIGFib3V0IGNvbnRleHQtc2Vuc2l0aXZlIAorICAgICogY2FzZSBtYXBwaW5ncy48YnI+IEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IFVuaWNvZGUgY2FzZSBtYXBwaW5nIHBsZWFzZSAKKyAgICAqIHJlZmVyIHRvIHRoZSA8YSBocmVmPWh0dHA6Ly93d3cudW5pY29kZS5vcmcvdW5pY29kZS9yZXBvcnRzL3RyMjEvPgorICAgICogVGVjaG5pY2FsIHJlcG9ydCAjMjE8L2E+Ljxicj4KKyAgICAqIFVwLXRvLWRhdGUgVW5pY29kZSBpbXBsZW1lbnRhdGlvbiBvZiBqYXZhLmxhbmcuQ2hhcmFjdGVyLmlzTG93ZXJDYXNlKCkKKyAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHRvIGRldGVybWluZSBpZiBpdCBpcyBpbiBsb3dlcmNhc2UKKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiBjb2RlIHBvaW50IGlzIGEgbG93ZXJjYXNlIGNoYXJhY3RlcgorICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzTG93ZXJDYXNlKGludCBjaCkKKyAgICB7CisgICAgICAgIC8vIGlmIHByb3BzID09IDAsIGl0IHdpbGwganVzdCBmYWxsIHRocm91Z2ggYW5kIHJldHVybiBmYWxzZQorICAgICAgICByZXR1cm4gZ2V0VHlwZShjaCkgPT0gVUNoYXJhY3RlckNhdGVnb3J5LkxPV0VSQ0FTRV9MRVRURVI7CisgICAgfQorICAgICAgIAorICAgIC8qKgorICAgICogRGV0ZXJtaW5lcyBpZiB0aGUgc3BlY2lmaWVkIGNvZGUgcG9pbnQgaXMgYSB3aGl0ZSBzcGFjZSBjaGFyYWN0ZXIuCisgICAgKiBBIGNvZGUgcG9pbnQgaXMgY29uc2lkZXJlZCB0byBiZSBhbiB3aGl0ZXNwYWNlIGNoYXJhY3RlciBpZiBhbmQgb25seQorICAgICogaWYgaXQgc2F0aXNmaWVzIG9uZSBvZiB0aGUgZm9sbG93aW5nIGNyaXRlcmlhOgorICAgICogPHVsPgorICAgICogPGxpPiBJdCBpcyBhIFVuaWNvZGUgc3BhY2Ugc2VwYXJhdG9yIChjYXRlZ29yeSAiWnMiKSwgYnV0IGlzIG5vdAorICAgICogICAgICBhIG5vLWJyZWFrIHNwYWNlICgmIzkydTAwQTAgb3IgJiM5MnUyMDJGIG9yICYjOTJ1RkVGRikuCisgICAgKiA8bGk+IEl0IGlzIGEgVW5pY29kZSBsaW5lIHNlcGFyYXRvciAoY2F0ZWdvcnkgIlpsIikuCisgICAgKiA8bGk+IEl0IGlzIGEgVW5pY29kZSBwYXJhZ3JhcGggc2VwYXJhdG9yIChjYXRlZ29yeSAiWnAiKS4KKyAgICAqIDxsaT4gSXQgaXMgJiM5MnUwMDA5LCBIT1JJWk9OVEFMIFRBQlVMQVRJT04uIAorICAgICogPGxpPiBJdCBpcyAmIzkydTAwMEEsIExJTkUgRkVFRC4gCisgICAgKiA8bGk+IEl0IGlzICYjOTJ1MDAwQiwgVkVSVElDQUwgVEFCVUxBVElPTi4gCisgICAgKiA8bGk+IEl0IGlzICYjOTJ1MDAwQywgRk9STSBGRUVELiAKKyAgICAqIDxsaT4gSXQgaXMgJiM5MnUwMDBELCBDQVJSSUFHRSBSRVRVUk4uIAorICAgICogPGxpPiBJdCBpcyAmIzkydTAwMUMsIEZJTEUgU0VQQVJBVE9SLiAKKyAgICAqIDxsaT4gSXQgaXMgJiM5MnUwMDFELCBHUk9VUCBTRVBBUkFUT1IuIAorICAgICogPGxpPiBJdCBpcyAmIzkydTAwMUUsIFJFQ09SRCBTRVBBUkFUT1IuIAorICAgICogPGxpPiBJdCBpcyAmIzkydTAwMUYsIFVOSVQgU0VQQVJBVE9SLiAKKyAgICAqIDwvdWw+CisgICAgKgorICAgICogVXAtdG8tZGF0ZSBVbmljb2RlIGltcGxlbWVudGF0aW9uIG9mIGphdmEubGFuZy5DaGFyYWN0ZXIuaXNXaGl0ZXNwYWNlKCkuCisgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB0byBkZXRlcm1pbmUgaWYgaXQgaXMgYSB3aGl0ZSBzcGFjZQorICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBzcGVjaWZpZWQgY29kZSBwb2ludCBpcyBhIHdoaXRlIHNwYWNlIGNoYXJhY3RlcgorICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzV2hpdGVzcGFjZShpbnQgY2gpCisgICAgeworICAgICAgICBpbnQgY2F0ID0gZ2V0VHlwZShjaCk7CisgICAgICAgIC8vIGV4Y2x1ZGUgbm8tYnJlYWsgc3BhY2VzCisgICAgICAgIC8vIGlmIHByb3BzID09IDAsIGl0IHdpbGwganVzdCBmYWxsIHRocm91Z2ggYW5kIHJldHVybiBmYWxzZQorICAgICAgICByZXR1cm4gKGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuU1BBQ0VfU0VQQVJBVE9SIHx8IAorICAgICAgICAgICAgICAgIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTElORV9TRVBBUkFUT1IgfHwKKyAgICAgICAgICAgICAgICBjYXQgPT0gVUNoYXJhY3RlckNhdGVnb3J5LlBBUkFHUkFQSF9TRVBBUkFUT1IpICYmIAorICAgICAgICAgICAgICAgIChjaCAhPSBOT19CUkVBS19TUEFDRV8pICYmIAorICAgICAgICAgICAgICAgIChjaCAhPSBOQVJST1dfTk9fQlJFQUtfU1BBQ0VfKSAmJiAKKyAgICAgICAgICAgICAgICAoY2ggIT0gWkVST19XSURUSF9OT19CUkVBS19TUEFDRV8pIHx8CisgICAgICAgICAgICAgICAgLy8gVEFCIFZUIExGIEZGIENSIEZTIEdTIFJTIFVTIE5MIGFyZSBhbGwgY29udHJvbCBjaGFyYWN0ZXJzCisgICAgICAgICAgICAgICAgLy8gdGhhdCBhcmUgd2hpdGUgc3BhY2VzLgorICAgICAgICAgICAgICAgIChjaCA+PSAweDkgJiYgY2ggPD0gMHhkKSB8fCAoY2ggPj0gMHgxYyAmJiBjaCA8PSAweDFmKTsKKyAgICB9CisgICAgICAgCisgICAgLyoqCisgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBzcGVjaWZpZWQgY29kZSBwb2ludCBpcyBhIFVuaWNvZGUgc3BlY2lmaWVkIHNwYWNlIAorICAgICogY2hhcmFjdGVyLCBpLmUuIGlmIGNvZGUgcG9pbnQgaXMgaW4gdGhlIGNhdGVnb3J5IFpzLCBabCBhbmQgWnAuCisgICAgKiBVcC10by1kYXRlIFVuaWNvZGUgaW1wbGVtZW50YXRpb24gb2YgamF2YS5sYW5nLkNoYXJhY3Rlci5pc1NwYWNlQ2hhcigpLgorICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgdG8gZGV0ZXJtaW5lIGlmIGl0IGlzIGEgc3BhY2UKKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgc3BlY2lmaWVkIGNvZGUgcG9pbnQgaXMgYSBzcGFjZSBjaGFyYWN0ZXIKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1NwYWNlQ2hhcihpbnQgY2gpCisgICAgeworICAgICAgICBpbnQgY2F0ID0gZ2V0VHlwZShjaCk7CisgICAgICAgIC8vIGlmIHByb3BzID09IDAsIGl0IHdpbGwganVzdCBmYWxsIHRocm91Z2ggYW5kIHJldHVybiBmYWxzZQorICAgICAgICByZXR1cm4gY2F0ID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5TUEFDRV9TRVBBUkFUT1IgfHwgCisgICAgICAgICAgICBjYXQgPT0gVUNoYXJhY3RlckNhdGVnb3J5LkxJTkVfU0VQQVJBVE9SIHx8CisgICAgICAgICAgICBjYXQgPT0gVUNoYXJhY3RlckNhdGVnb3J5LlBBUkFHUkFQSF9TRVBBUkFUT1I7CisgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgLyoqCisgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBzcGVjaWZpZWQgY29kZSBwb2ludCBpcyBhIHRpdGxlY2FzZSBjaGFyYWN0ZXIuCisgICAgKiBVbmljb2RlRGF0YSBvbmx5IGNvbnRhaW5zIGNhc2UgbWFwcGluZ3MgZm9yIGNvZGUgcG9pbnRzIHdoZXJlIHRoZXkgYXJlIAorICAgICogb25lLXRvLW9uZSBtYXBwaW5nczsgaXQgYWxzbyBvbWl0cyBpbmZvcm1hdGlvbiBhYm91dCBjb250ZXh0LXNlbnNpdGl2ZSAKKyAgICAqIGNhc2UgbWFwcGluZ3MuPGJyPgorICAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgVW5pY29kZSBjYXNlIG1hcHBpbmcgcGxlYXNlIHJlZmVyIHRvIHRoZSAKKyAgICAqIDxhIGhyZWY9aHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHIyMS8+CisgICAgKiBUZWNobmljYWwgcmVwb3J0ICMyMTwvYT4uPGJyPgorICAgICogVXAtdG8tZGF0ZSBVbmljb2RlIGltcGxlbWVudGF0aW9uIG9mIGphdmEubGFuZy5DaGFyYWN0ZXIuaXNUaXRsZUNhc2UoKS4KKyAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHRvIGRldGVybWluZSBpZiBpdCBpcyBpbiB0aXRsZSBjYXNlCisgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHNwZWNpZmllZCBjb2RlIHBvaW50IGlzIGEgdGl0bGVjYXNlIGNoYXJhY3RlcgorICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzVGl0bGVDYXNlKGludCBjaCkKKyAgICB7CisgICAgICAgIGludCBjYXQgPSBnZXRUeXBlKGNoKTsKKyAgICAgICAgLy8gaWYgcHJvcHMgPT0gMCwgaXQgd2lsbCBqdXN0IGZhbGwgdGhyb3VnaCBhbmQgcmV0dXJuIGZhbHNlCisgICAgICAgIHJldHVybiBjYXQgPT0gVUNoYXJhY3RlckNhdGVnb3J5LlRJVExFQ0FTRV9MRVRURVI7CisgICAgfQorICAgICAgIAorICAgIC8qKgorICAgICogRGV0ZXJtaW5lcyBpZiB0aGUgc3BlY2lmaWVkIGNvZGUgcG9pbnQgbWF5IGJlIGFueSBwYXJ0IG9mIGEgVW5pY29kZSAKKyAgICAqIGlkZW50aWZpZXIgb3RoZXIgdGhhbiB0aGUgc3RhcnRpbmcgY2hhcmFjdGVyLgorICAgICogQSBjb2RlIHBvaW50IG1heSBiZSBwYXJ0IG9mIGEgVW5pY29kZSBpZGVudGlmaWVyIGlmIGFuZCBvbmx5IGlmIGl0IGlzIG9uZSAKKyAgICAqIG9mIHRoZSBmb2xsb3dpbmc6IAorICAgICogPHVsPgorICAgICogPGxpPiBMdSBVcHBlcmNhc2UgbGV0dGVyCisgICAgKiA8bGk+IExsIExvd2VyY2FzZSBsZXR0ZXIKKyAgICAqIDxsaT4gTHQgVGl0bGVjYXNlIGxldHRlcgorICAgICogPGxpPiBMbSBNb2RpZmllciBsZXR0ZXIKKyAgICAqIDxsaT4gTG8gT3RoZXIgbGV0dGVyCisgICAgKiA8bGk+IE5sIExldHRlciBudW1iZXIKKyAgICAqIDxsaT4gUGMgQ29ubmVjdGluZyBwdW5jdHVhdGlvbiBjaGFyYWN0ZXIgCisgICAgKiA8bGk+IE5kIGRlY2ltYWwgbnVtYmVyCisgICAgKiA8bGk+IE1jIFNwYWNpbmcgY29tYmluaW5nIG1hcmsgCisgICAgKiA8bGk+IE1uIE5vbi1zcGFjaW5nIG1hcmsgCisgICAgKiA8bGk+IENmIGZvcm1hdHRpbmcgY29kZQorICAgICogPC91bD4KKyAgICAqIFVwLXRvLWRhdGUgVW5pY29kZSBpbXBsZW1lbnRhdGlvbiBvZiAKKyAgICAqIGphdmEubGFuZy5DaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclBhcnQoKS48YnI+CisgICAgKiBTZWUgPGEgaHJlZj1odHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjgvPlVUUiAjODwvYT4uCisgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB0byBkZXRlcm1pbmUgaWYgaXMgY2FuIGJlIHBhcnQgb2YgYSBVbmljb2RlIGlkZW50aWZpZXIKKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiBjb2RlIHBvaW50IGlzIGFueSBjaGFyYWN0ZXIgYmVsb25naW5nIGEgdW5pY29kZSBpZGVudGlmaWVyCisgICAgKiAgICAgICAgIHN1ZmZpeCBhZnRlciB0aGUgZmlyc3QgY2hhcmFjdGVyCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNVbmljb2RlSWRlbnRpZmllclBhcnQoaW50IGNoKQorICAgIHsKKyAgICAgICAgaW50IGNhdCA9IGdldFR5cGUoY2gpOworICAgICAgICAvLyBpZiBwcm9wcyA9PSAwLCBpdCB3aWxsIGp1c3QgZmFsbCB0aHJvdWdoIGFuZCByZXR1cm4gZmFsc2UKKyAgICAgICAgcmV0dXJuIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVVBQRVJDQVNFX0xFVFRFUiB8fCAKKyAgICAgICAgICAgIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTE9XRVJDQVNFX0xFVFRFUiB8fCAKKyAgICAgICAgICAgIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVElUTEVDQVNFX0xFVFRFUiB8fCAKKyAgICAgICAgICAgIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTU9ESUZJRVJfTEVUVEVSIHx8CisgICAgICAgICAgICBjYXQgPT0gVUNoYXJhY3RlckNhdGVnb3J5Lk9USEVSX0xFVFRFUiB8fCAKKyAgICAgICAgICAgIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTEVUVEVSX05VTUJFUiB8fAorICAgICAgICAgICAgY2F0ID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5DT05ORUNUT1JfUFVOQ1RVQVRJT04gfHwKKyAgICAgICAgICAgIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuREVDSU1BTF9ESUdJVF9OVU1CRVIgfHwKKyAgICAgICAgICAgIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuQ09NQklOSU5HX1NQQUNJTkdfTUFSSyB8fCAKKyAgICAgICAgICAgIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTk9OX1NQQUNJTkdfTUFSSyB8fCAKKyAgICAgICAgICAgIC8vIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuRk9STUFUOworICAgICAgICAgICAgaXNJZGVudGlmaWVySWdub3JhYmxlKGNoKTsKKyAgICB9CisgICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8qKgorICAgICogRGV0ZXJtaW5lcyBpZiB0aGUgc3BlY2lmaWVkIGNvZGUgcG9pbnQgaXMgcGVybWlzc2libGUgYXMgdGhlIGZpcnN0IAorICAgICogY2hhcmFjdGVyIGluIGEgVW5pY29kZSBpZGVudGlmaWVyLgorICAgICogQSBjb2RlIHBvaW50IG1heSBzdGFydCBhIFVuaWNvZGUgaWRlbnRpZmllciBpZiBpdCBpcyBvZiB0eXBlIGVpdGhlciAKKyAgICAqIDx1bD4gCisgICAgKiA8bGk+IEx1IFVwcGVyY2FzZSBsZXR0ZXIKKyAgICAqIDxsaT4gTGwgTG93ZXJjYXNlIGxldHRlcgorICAgICogPGxpPiBMdCBUaXRsZWNhc2UgbGV0dGVyCisgICAgKiA8bGk+IExtIE1vZGlmaWVyIGxldHRlcgorICAgICogPGxpPiBMbyBPdGhlciBsZXR0ZXIKKyAgICAqIDxsaT4gTmwgTGV0dGVyIG51bWJlcgorICAgICogPC91bD4KKyAgICAqIFVwLXRvLWRhdGUgVW5pY29kZSBpbXBsZW1lbnRhdGlvbiBvZiAKKyAgICAqIGphdmEubGFuZy5DaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclN0YXJ0KCkuPGJyPgorICAgICogU2VlIDxhIGhyZWY9aHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHI4Lz5VVFIgIzg8L2E+LgorICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgdG8gZGV0ZXJtaW5lIGlmIGl0IGNhbiBzdGFydCBhIFVuaWNvZGUgaWRlbnRpZmllcgorICAgICogQHJldHVybiB0cnVlIGlmIGNvZGUgcG9pbnQgaXMgdGhlIGZpcnN0IGNoYXJhY3RlciBiZWxvbmdpbmcgYSB1bmljb2RlIAorICAgICogICAgICAgICAgICAgIGlkZW50aWZpZXIKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1VuaWNvZGVJZGVudGlmaWVyU3RhcnQoaW50IGNoKQorICAgIHsKKyAgICAgICAgaW50IGNhdCA9IGdldFR5cGUoY2gpOworICAgICAgICAvLyBpZiBwcm9wcyA9PSAwLCBpdCB3aWxsIGp1c3QgZmFsbCB0aHJvdWdoIGFuZCByZXR1cm4gZmFsc2UKKyAgICAgICAgcmV0dXJuIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVVBQRVJDQVNFX0xFVFRFUiB8fCAKKyAgICAgICAgICAgIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTE9XRVJDQVNFX0xFVFRFUiB8fCAKKyAgICAgICAgICAgIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVElUTEVDQVNFX0xFVFRFUiB8fCAKKyAgICAgICAgICAgIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTU9ESUZJRVJfTEVUVEVSIHx8CisgICAgICAgICAgICBjYXQgPT0gVUNoYXJhY3RlckNhdGVnb3J5Lk9USEVSX0xFVFRFUiB8fCAKKyAgICAgICAgICAgIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTEVUVEVSX05VTUJFUjsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIERldGVybWluZXMgaWYgdGhlIHNwZWNpZmllZCBjb2RlIHBvaW50IHNob3VsZCBiZSByZWdhcmRlZCBhcyBhbiBpZ25vcmFibGUKKyAgICAqIGNoYXJhY3RlciBpbiBhIFVuaWNvZGUgaWRlbnRpZmllci4KKyAgICAqIEEgY2hhcmFjdGVyIGlzIGlnbm9yYWJsZSBpbiB0aGUgVW5pY29kZSBzdGFuZGFyZCBpZiBpdCBpcyBvZiB0aGUgdHlwZSBDZiwgCisgICAgKiBGb3JtYXR0aW5nIGNvZGUuPGJyPgorICAgICogVXAtdG8tZGF0ZSBVbmljb2RlIGltcGxlbWVudGF0aW9uIG9mIAorICAgICogamF2YS5sYW5nLkNoYXJhY3Rlci5pc0lkZW50aWZpZXJJZ25vcmFibGUoKS48YnI+CisgICAgKiBTZWUgPGEgaHJlZj1odHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjgvPlVUUiAjODwvYT4uCisgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB0byBiZSBkZXRlcm1pbmVkIGlmIGl0IGNhbiBiZSBpZ25vcmVkIGluIGEgVW5pY29kZSAKKyAgICAqICAgICAgICBpZGVudGlmaWVyLgorICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjb2RlIHBvaW50IGlzIGlnbm9yYWJsZQorICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzSWRlbnRpZmllcklnbm9yYWJsZShpbnQgY2gpCisgICAgeworICAgICAgICAvLyBzZWUgamF2YS5sYW5nLkNoYXJhY3Rlci5pc0lkZW50aWZpZXJJZ25vcmFibGUoKSBvbiByYW5nZSBvZiAKKyAgICAgICAgLy8gaWdub3JhYmxlIGNoYXJhY3RlcnMuCisgICAgICAgIHJldHVybiBjaCA8PSA4IHx8IChjaCA+PSAweGUgJiYgY2ggPD0gMHgxYikgCisgICAgICAgICAgICAgICB8fCAoY2ggPj0gMHg3ZiAmJiBjaCA8PSAweDlmKSAKKyAgICAgICAgICAgICAgIHx8IChjaCA+PSAweDIwMGEgJiYgY2ggPD0gMHgyMDBmKSAKKyAgICAgICAgICAgICAgIHx8IChjaCA+PSAweDIwNmEgJiYgY2ggPD0gMHgyMDZmKSB8fCBjaCA9PSAweGZlZmY7CisgICAgfQorICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8qKgorICAgICogRGV0ZXJtaW5lcyBpZiB0aGUgc3BlY2lmaWVkIGNvZGUgcG9pbnQgaXMgYW4gdXBwZXJjYXNlIGNoYXJhY3Rlci4KKyAgICAqIFVuaWNvZGVEYXRhIG9ubHkgY29udGFpbnMgY2FzZSBtYXBwaW5ncyBmb3IgY29kZSBwb2ludCB3aGVyZSB0aGV5IGFyZSAKKyAgICAqIG9uZS10by1vbmUgbWFwcGluZ3M7IGl0IGFsc28gb21pdHMgaW5mb3JtYXRpb24gYWJvdXQgY29udGV4dC1zZW5zaXRpdmUgCisgICAgKiBjYXNlIG1hcHBpbmdzLjxicj4gCisgICAgKiBGb3IgbGFuZ3VhZ2Ugc3BlY2lmaWMgY2FzZSBjb252ZXJzaW9uIGJlaGF2aW9yLCB1c2UgCisgICAgKiB0b1VwcGVyQ2FzZShsb2NhbGUsIHN0cikuIDxicj4KKyAgICAqIEZvciBleGFtcGxlLCB0aGUgY2FzZSBjb252ZXJzaW9uIGZvciBkb3QtbGVzcyBpIGFuZCBkb3R0ZWQgSSBpbiBUdXJraXNoLAorICAgICogb3IgZm9yIGZpbmFsIHNpZ21hIGluIEdyZWVrLgorICAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgVW5pY29kZSBjYXNlIG1hcHBpbmcgcGxlYXNlIHJlZmVyIHRvIHRoZSAKKyAgICAqIDxhIGhyZWY9aHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHIyMS8+CisgICAgKiBUZWNobmljYWwgcmVwb3J0ICMyMTwvYT4uPGJyPgorICAgICogVXAtdG8tZGF0ZSBVbmljb2RlIGltcGxlbWVudGF0aW9uIG9mIGphdmEubGFuZy5DaGFyYWN0ZXIuaXNVcHBlckNhc2UoKS4KKyAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHRvIGRldGVybWluZSBpZiBpdCBpcyBpbiB1cHBlcmNhc2UKKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgY29kZSBwb2ludCBpcyBhbiB1cHBlcmNhc2UgY2hhcmFjdGVyCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNVcHBlckNhc2UoaW50IGNoKQorICAgIHsKKyAgICAgICAgaW50IGNhdCA9IGdldFR5cGUoY2gpOworICAgICAgICAvLyBpZiBwcm9wcyA9PSAwLCBpdCB3aWxsIGp1c3QgZmFsbCB0aHJvdWdoIGFuZCByZXR1cm4gZmFsc2UKKyAgICAgICAgcmV0dXJuIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVVBQRVJDQVNFX0xFVFRFUjsKKyAgICB9CisgICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8qKgorICAgICogVGhlIGdpdmVuIGNvZGUgcG9pbnQgaXMgbWFwcGVkIHRvIGl0cyBsb3dlcmNhc2UgZXF1aXZhbGVudDsgaWYgdGhlIGNvZGUgCisgICAgKiBwb2ludCBoYXMgbm8gbG93ZXJjYXNlIGVxdWl2YWxlbnQsIHRoZSBjb2RlIHBvaW50IGl0c2VsZiBpcyByZXR1cm5lZC4KKyAgICAqIFVuaWNvZGVEYXRhIG9ubHkgY29udGFpbnMgY2FzZSBtYXBwaW5ncyBmb3IgY29kZSBwb2ludCB3aGVyZSB0aGV5IGFyZSAKKyAgICAqIG9uZS10by1vbmUgbWFwcGluZ3M7IGl0IGFsc28gb21pdHMgaW5mb3JtYXRpb24gYWJvdXQgY29udGV4dC1zZW5zaXRpdmUgCisgICAgKiBjYXNlIG1hcHBpbmdzLjxicj4gCisgICAgKiBGb3IgbGFuZ3VhZ2Ugc3BlY2lmaWMgY2FzZSBjb252ZXJzaW9uIGJlaGF2aW9yLCB1c2UgCisgICAgKiB0b0xvd2VyQ2FzZShsb2NhbGUsIHN0cikuIDxicj4KKyAgICAqIEZvciBleGFtcGxlLCB0aGUgY2FzZSBjb252ZXJzaW9uIGZvciBkb3QtbGVzcyBpIGFuZCBkb3R0ZWQgSSBpbiBUdXJraXNoLAorICAgICogb3IgZm9yIGZpbmFsIHNpZ21hIGluIEdyZWVrLgorICAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgVW5pY29kZSBjYXNlIG1hcHBpbmcgcGxlYXNlIHJlZmVyIHRvIHRoZSAKKyAgICAqIDxhIGhyZWY9aHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHIyMS8+CisgICAgKiBUZWNobmljYWwgcmVwb3J0ICMyMTwvYT4uPGJyPgorICAgICogVXAtdG8tZGF0ZSBVbmljb2RlIGltcGxlbWVudGF0aW9uIG9mIGphdmEubGFuZy5DaGFyYWN0ZXIudG9Mb3dlckNhc2UoKQorICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgd2hvc2UgbG93ZXJjYXNlIGVxdWl2YWxlbnQgaXMgdG8gYmUgcmV0cmlldmVkCisgICAgKiBAcmV0dXJuIHRoZSBsb3dlcmNhc2UgZXF1aXZhbGVudCBjb2RlIHBvaW50CisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCB0b0xvd2VyQ2FzZShpbnQgY2gpCisgICAgeworICAgICAgICBpbnQgcHJvcHMgPSBnZXRQcm9wcyhjaCk7CisgICAgICAgIC8vIGlmIHByb3BzID09IDAsIGl0IHdpbGwganVzdCBmYWxsIHRocm91Z2ggYW5kIHJldHVybiBpdHNlbGYKKyAgICAgICAgaWYoIVVDaGFyYWN0ZXJQcm9wZXJ0eS5pc0V4Y2VwdGlvbkluZGljYXRvcihwcm9wcykpIHsKKyAgICAgICAgICAgIGludCBjYXQgPSBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UHJvcFR5cGUocHJvcHMpOworICAgICAgICAgICAgaWYgKGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVVBQRVJDQVNFX0xFVFRFUiB8fCAKKyAgICAgICAgICAgICAgICBjYXQgPT0gVUNoYXJhY3RlckNhdGVnb3J5LlRJVExFQ0FTRV9MRVRURVIpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2ggKyBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0U2lnbmVkVmFsdWUocHJvcHMpOworICAgICAgICAgICAgfQorICAgICAgICB9IAorICAgICAgICBlbHNlIAorICAgICAgICB7CisgICAgICAgICAgICBpbnQgaW5kZXggPSBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0RXhjZXB0aW9uSW5kZXgocHJvcHMpOworICAgICAgICAgICAgaWYgKFBST1BFUlRZXy5oYXNFeGNlcHRpb25WYWx1ZShpbmRleCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyUHJvcGVydHkuRVhDX0xPV0VSQ0FTRV8pKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFBST1BFUlRZXy5nZXRFeGNlcHRpb24oaW5kZXgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyUHJvcGVydHkuRVhDX0xPV0VSQ0FTRV8pOyAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY2g7CisgICAgfQorCisgICAgLyoqCisgICAgKiBDb252ZXJ0cyBhcmd1bWVudCBjb2RlIHBvaW50IGFuZCByZXR1cm5zIGEgU3RyaW5nIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIAorICAgICogY29kZSBwb2ludCdzIHZhbHVlIGluIFVURjE2IGZvcm1hdC4KKyAgICAqIFRoZSByZXN1bHQgaXMgYSBzdHJpbmcgd2hvc2UgbGVuZ3RoIGlzIDEgZm9yIG5vbi1zdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnRzLCAKKyAgICAqIDIgb3RoZXJ3aXNlLjxicj4KKyAgICAqIGNvbS5pYm0uaWJtLmljdS5VVEYxNiBjYW4gYmUgdXNlZCB0byBwYXJzZSBTdHJpbmdzIGdlbmVyYXRlZCBieSB0aGlzIAorICAgICogZnVuY3Rpb24uPGJyPgorICAgICogVXAtdG8tZGF0ZSBVbmljb2RlIGltcGxlbWVudGF0aW9uIG9mIGphdmEubGFuZy5DaGFyYWN0ZXIudG9TdHJpbmcoKQorICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQKKyAgICAqIEByZXR1cm4gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBjb2RlIHBvaW50LCBudWxsIGlmIGNvZGUgcG9pbnQgaXMgbm90CisgICAgKiAgICAgICAgIGRlZmluZWQgaW4gdW5pY29kZQorICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoaW50IGNoKQorICAgIHsKKyAgICAgICAgaWYgKGNoIDwgTUlOX1ZBTFVFIHx8IGNoID4gTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKGNoIDwgU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUpIHsKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmcudmFsdWVPZigoY2hhciljaCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZShjaCkpOworICAgICAgICByZXN1bHQuYXBwZW5kKFVURjE2LmdldFRyYWlsU3Vycm9nYXRlKGNoKSk7CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAvKioKKyAgICAqIENvbnZlcnRzIHRoZSBjb2RlIHBvaW50IGFyZ3VtZW50IHRvIHRpdGxlY2FzZS4KKyAgICAqIFVuaWNvZGVEYXRhIG9ubHkgY29udGFpbnMgY2FzZSBtYXBwaW5ncyBmb3IgY29kZSBwb2ludHMgd2hlcmUgdGhleSBhcmUgCisgICAgKiBvbmUtdG8tb25lIG1hcHBpbmdzOyBpdCBhbHNvIG9taXRzIGluZm9ybWF0aW9uIGFib3V0IGNvbnRleHQtc2Vuc2l0aXZlIAorICAgICogY2FzZSBtYXBwaW5ncy48YnI+IAorICAgICogVGhlcmUgYXJlIG9ubHkgZm91ciBVbmljb2RlIGNoYXJhY3RlcnMgdGhhdCBhcmUgdHJ1bHkgdGl0bGVjYXNlIGZvcm1zCisgICAgKiB0aGF0IGFyZSBkaXN0aW5jdCBmcm9tIHVwcGVyY2FzZSBmb3Jtcy4KKyAgICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IFVuaWNvZGUgY2FzZSBtYXBwaW5nIHBsZWFzZSByZWZlcgorICAgICogdG8gdGhlIDxhIGhyZWY9aHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHIyMS8+CisgICAgKiBUZWNobmljYWwgcmVwb3J0ICMyMTwvYT4uPGJyPgorICAgICogSWYgbm8gdGl0bGVjYXNlIGlzIGF2YWlsYWJsZSwgdGhlIHVwcGVyY2FzZSBpcyByZXR1cm5lZC4gSWYgbm8gdXBwZXJjYXNlIAorICAgICogaXMgYXZhaWxhYmxlLCB0aGUgY29kZSBwb2ludCBpdHNlbGYgaXMgcmV0dXJuZWQuPGJyPgorICAgICogVXAtdG8tZGF0ZSBVbmljb2RlIGltcGxlbWVudGF0aW9uIG9mIGphdmEubGFuZy5DaGFyYWN0ZXIudG9UaXRsZUNhc2UoKQorICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgIHdob3NlIHRpdGxlIGNhc2UgaXMgdG8gYmUgcmV0cmlldmVkCisgICAgKiBAcmV0dXJuIHRpdGxlY2FzZSBjb2RlIHBvaW50CisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCB0b1RpdGxlQ2FzZShpbnQgY2gpCisgICAgeworICAgICAgICBpbnQgcHJvcHMgPSBnZXRQcm9wcyhjaCk7CisgICAgICAgIC8vIGlmIHByb3BzID09IDAsIGl0IHdpbGwganVzdCBmYWxsIHRocm91Z2ggYW5kIHJldHVybiBpdHNlbGYKKyAgICAgICAgaWYgKCFVQ2hhcmFjdGVyUHJvcGVydHkuaXNFeGNlcHRpb25JbmRpY2F0b3IocHJvcHMpKSB7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3RlclByb3BlcnR5LmdldFByb3BUeXBlKHByb3BzKSA9PSAKKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTE9XRVJDQVNFX0xFVFRFUikgeworICAgICAgICAgICAgICAgIC8vIGhlcmUsIHRpdGxlY2FzZSBpcyBzYW1lIGFzIHVwcGVyY2FzZQorICAgICAgICAgICAgICAgIHJldHVybiBjaCAtIFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRTaWduZWRWYWx1ZShwcm9wcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaW50IGluZGV4ID0gVUNoYXJhY3RlclByb3BlcnR5LmdldEV4Y2VwdGlvbkluZGV4KHByb3BzKTsKKyAgICAgICAgICAgIGlmIChQUk9QRVJUWV8uaGFzRXhjZXB0aW9uVmFsdWUoaW5kZXgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyUHJvcGVydHkuRVhDX1RJVExFQ0FTRV8pKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFBST1BFUlRZXy5nZXRFeGNlcHRpb24oaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJQcm9wZXJ0eS5FWENfVElUTEVDQVNFXyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBoZXJlLCB0aXRsZWNhc2UgaXMgc2FtZSBhcyB1cHBlcmNhc2UKKyAgICAgICAgICAgICAgICBpZiAoUFJPUEVSVFlfLmhhc0V4Y2VwdGlvblZhbHVlKGluZGV4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJQcm9wZXJ0eS5FWENfVVBQRVJDQVNFXykpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFBST1BFUlRZXy5nZXRFeGNlcHRpb24oaW5kZXgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyUHJvcGVydHkuRVhDX1VQUEVSQ0FTRV8pOyAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNoOyAvLyBubyBtYXBwaW5nIC0gcmV0dXJuIGMgaXRzZWxmCisgICAgfQorICAgICAgIAorICAgIC8qKgorICAgICogQ29udmVydHMgdGhlIGNoYXJhY3RlciBhcmd1bWVudCB0byB1cHBlcmNhc2UuCisgICAgKiBVbmljb2RlRGF0YSBvbmx5IGNvbnRhaW5zIGNhc2UgbWFwcGluZ3MgZm9yIGNoYXJhY3RlcnMgd2hlcmUgdGhleSBhcmUgCisgICAgKiBvbmUtdG8tb25lIG1hcHBpbmdzOyBpdCBhbHNvIG9taXRzIGluZm9ybWF0aW9uIGFib3V0IGNvbnRleHQtc2Vuc2l0aXZlIAorICAgICogY2FzZSBtYXBwaW5ncy48YnI+IAorICAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgVW5pY29kZSBjYXNlIG1hcHBpbmcgcGxlYXNlIHJlZmVyCisgICAgKiB0byB0aGUgPGEgaHJlZj1odHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjIxLz4KKyAgICAqIFRlY2huaWNhbCByZXBvcnQgIzIxPC9hPi48YnI+CisgICAgKiBJZiBubyB1cHBlcmNhc2UgaXMgYXZhaWxhYmxlLCB0aGUgY2hhcmFjdGVyIGl0c2VsZiBpcyByZXR1cm5lZC48YnI+CisgICAgKiBVcC10by1kYXRlIFVuaWNvZGUgaW1wbGVtZW50YXRpb24gb2YgamF2YS5sYW5nLkNoYXJhY3Rlci50b1VwcGVyQ2FzZSgpCisgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB3aG9zZSB1cHBlcmNhc2UgaXMgdG8gYmUgcmV0cmlldmVkCisgICAgKiBAcmV0dXJuIHVwcGVyY2FzZSBjb2RlIHBvaW50CisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCB0b1VwcGVyQ2FzZShpbnQgY2gpCisgICAgeworICAgICAgICBpbnQgcHJvcHMgPSBnZXRQcm9wcyhjaCk7CisgICAgICAgIC8vIGlmIHByb3BzID09IDAsIGl0IHdpbGwganVzdCBmYWxsIHRocm91Z2ggYW5kIHJldHVybiBpdHNlbGYKKyAgICAgICAgaWYgKCFVQ2hhcmFjdGVyUHJvcGVydHkuaXNFeGNlcHRpb25JbmRpY2F0b3IocHJvcHMpKSB7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3RlclByb3BlcnR5LmdldFByb3BUeXBlKHByb3BzKSA9PSAKKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTE9XRVJDQVNFX0xFVFRFUikgeworICAgICAgICAgICAgICAgIC8vIGhlcmUsIHRpdGxlY2FzZSBpcyBzYW1lIGFzIHVwcGVyY2FzZSAqLworICAgICAgICAgICAgICAgIHJldHVybiBjaCAtIFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRTaWduZWRWYWx1ZShwcm9wcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSAKKyAgICAgICAgeworICAgICAgICAgICAgaW50IGluZGV4ID0gVUNoYXJhY3RlclByb3BlcnR5LmdldEV4Y2VwdGlvbkluZGV4KHByb3BzKTsKKyAgICAgICAgICAgIGlmIChQUk9QRVJUWV8uaGFzRXhjZXB0aW9uVmFsdWUoaW5kZXgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyUHJvcGVydHkuRVhDX1VQUEVSQ0FTRV8pKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFBST1BFUlRZXy5nZXRFeGNlcHRpb24oaW5kZXgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyUHJvcGVydHkuRVhDX1VQUEVSQ0FTRV8pOyAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY2g7IC8vIG5vIG1hcHBpbmcgLSByZXR1cm4gYyBpdHNlbGYKKyAgICB9CisgICAgICAgCisgICAgLy8gZXh0cmEgbWV0aG9kcyBub3QgaW4gamF2YS5sYW5nLkNoYXJhY3RlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIAorICAgIC8qKgorICAgICogRGV0ZXJtaW5lcyBpZiB0aGUgY29kZSBwb2ludCBpcyBhIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyLgorICAgICogQSBjb2RlIHBvaW50IGlzIGEgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIgaWYgYW5kIG9ubHkgaWYgaXQgaXMgZ3JlYXRlciB0aGFuCisgICAgKiA8YSBocmVmPSNTVVBQTEVNRU5UQVJZX01JTl9WQUxVRT5TVVBQTEVNRU5UQVJZX01JTl9WQUxVRTwvYT4KKyAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHRvIGJlIGRldGVybWluZWQgaWYgaXQgaXMgaW4gdGhlIHN1cHBsZW1lbnRhcnkgcGxhbmUKKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiBjb2RlIHBvaW50IGlzIGEgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1N1cHBsZW1lbnRhcnkoaW50IGNoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNoID49IFVDaGFyYWN0ZXIuU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUgJiYgCisgICAgICAgICAgICBjaCA8PSBVQ2hhcmFjdGVyLk1BWF9WQUxVRTsKKyAgICB9CisgICAgICAKKyAgICAvKioKKyAgICAqIERldGVybWluZXMgaWYgdGhlIGNvZGUgcG9pbnQgaXMgaW4gdGhlIEJNUCBwbGFuZS4KKyAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHRvIGJlIGRldGVybWluZWQgaWYgaXQgaXMgbm90IGEgc3VwcGxlbWVudGFyeSAKKyAgICAqICAgICAgICBjaGFyYWN0ZXIKKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiBjb2RlIHBvaW50IGlzIG5vdCBhIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNCTVAoaW50IGNoKSAKKyAgICB7CisgICAgICAgIHJldHVybiAoY2ggPj0gMCAmJiBjaCA8PSBMQVNUX0NIQVJfTUFTS18pOworICAgIH0KKworICAgIC8qKgorICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgY29kZSBwb2ludCBpcyBhIHByaW50YWJsZSBjaGFyYWN0ZXIgCisgICAgKiBhY2NvcmRpbmcgdG8gdGhlIFVuaWNvZGUgc3RhbmRhcmQuCisgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB0byBiZSBkZXRlcm1pbmVkIGlmIGl0IGlzIHByaW50YWJsZQorICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjb2RlIHBvaW50IGlzIGEgcHJpbnRhYmxlIGNoYXJhY3RlcgorICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzUHJpbnRhYmxlKGludCBjaCkKKyAgICB7CisgICAgICAgIGludCBjYXQgPSBnZXRUeXBlKGNoKTsKKyAgICAgICAgLy8gaWYgcHJvcHMgPT0gMCwgaXQgd2lsbCBqdXN0IGZhbGwgdGhyb3VnaCBhbmQgcmV0dXJuIGZhbHNlCisgICAgICAgIHJldHVybiAoY2F0ICE9IFVDaGFyYWN0ZXJDYXRlZ29yeS5VTkFTU0lHTkVEICYmIAorICAgICAgICAgICAgY2F0ICE9IFVDaGFyYWN0ZXJDYXRlZ29yeS5DT05UUk9MICYmIAorICAgICAgICAgICAgY2F0ICE9IFVDaGFyYWN0ZXJDYXRlZ29yeS5GT1JNQVQgJiYKKyAgICAgICAgICAgIGNhdCAhPSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuUFJJVkFURV9VU0UgJiYKKyAgICAgICAgICAgIGNhdCAhPSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuU1VSUk9HQVRFICYmCisgICAgICAgICAgICBjYXQgIT0gVUNoYXJhY3RlckNhdGVnb3J5LkdFTkVSQUxfT1RIRVJfVFlQRVMpOworICAgIH0KKworICAgIC8qKgorICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgY29kZSBwb2ludCBpcyBvZiBiYXNlIGZvcm0uCisgICAgKiBBIGNvZGUgcG9pbnQgb2YgYmFzZSBmb3JtIGRvZXMgbm90IGdyYXBoaWNhbGx5IGNvbWJpbmUgd2l0aCBwcmVjZWRpbmcgCisgICAgKiBjaGFyYWN0ZXJzLCBhbmQgaXMgbmVpdGhlciBhIGNvbnRyb2wgbm9yIGEgZm9ybWF0IGNoYXJhY3Rlci4KKyAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHRvIGJlIGRldGVybWluZWQgaWYgaXQgaXMgb2YgYmFzZSBmb3JtCisgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNvZGUgcG9pbnQgaXMgb2YgYmFzZSBmb3JtCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNCYXNlRm9ybShpbnQgY2gpCisgICAgeworICAgICAgICBpbnQgY2F0ID0gZ2V0VHlwZShjaCk7CisgICAgICAgIC8vIGlmIHByb3BzID09IDAsIGl0IHdpbGwganVzdCBmYWxsIHRocm91Z2ggYW5kIHJldHVybiBmYWxzZQorICAgICAgICByZXR1cm4gY2F0ID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5ERUNJTUFMX0RJR0lUX05VTUJFUiB8fCAKKyAgICAgICAgICAgIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuT1RIRVJfTlVNQkVSIHx8IAorICAgICAgICAgICAgY2F0ID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5MRVRURVJfTlVNQkVSIHx8IAorICAgICAgICAgICAgY2F0ID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5VUFBFUkNBU0VfTEVUVEVSIHx8IAorICAgICAgICAgICAgY2F0ID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5MT1dFUkNBU0VfTEVUVEVSIHx8IAorICAgICAgICAgICAgY2F0ID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5USVRMRUNBU0VfTEVUVEVSIHx8CisgICAgICAgICAgICBjYXQgPT0gVUNoYXJhY3RlckNhdGVnb3J5Lk1PRElGSUVSX0xFVFRFUiB8fCAKKyAgICAgICAgICAgIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuT1RIRVJfTEVUVEVSIHx8IAorICAgICAgICAgICAgY2F0ID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5OT05fU1BBQ0lOR19NQVJLIHx8IAorICAgICAgICAgICAgY2F0ID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5FTkNMT1NJTkdfTUFSSyB8fAorICAgICAgICAgICAgY2F0ID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5DT01CSU5JTkdfU1BBQ0lOR19NQVJLOworICAgIH0KKworICAgIC8qKgorICAgICogUmV0dXJucyB0aGUgQmlkaXJlY3Rpb24gcHJvcGVydHkgb2YgYSBjb2RlIHBvaW50LgorICAgICogRm9yIGV4YW1wbGUsIDB4MDA0MSAobGV0dGVyIEEpIGhhcyB0aGUgTEVGVF9UT19SSUdIVCBkaXJlY3Rpb25hbCAKKyAgICAqIHByb3BlcnR5Ljxicj4KKyAgICAqIFJlc3VsdCByZXR1cm5lZCBiZWxvbmdzIHRvIHRoZSBpbnRlcmZhY2UgCisgICAgKiA8YSBocmVmPVVDaGFyYWN0ZXJEaXJlY3Rpb24uaHRtbD5VQ2hhcmFjdGVyRGlyZWN0aW9uPC9hPgorICAgICogQHBhcmFtIGNoIHRoZSBjb2RlIHBvaW50IHRvIGJlIGRldGVybWluZWQgaXRzIGRpcmVjdGlvbgorICAgICogQHJldHVybiBkaXJlY3Rpb24gY29uc3RhbnQgZnJvbSBVQ2hhcmFjdGVyRGlyZWN0aW9uLgorICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0RGlyZWN0aW9uKGludCBjaCkKKyAgICB7CisgICAgICAgIGludCBwcm9wcyA9IGdldFByb3BzKGNoKTsKKyAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXREaXJlY3Rpb24ocHJvcHMpOworICAgIH0KKworICAgIC8qKgorICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBjb2RlIHBvaW50IGhhcyB0aGUgIm1pcnJvcmVkIiBwcm9wZXJ0eS4KKyAgICAqIFRoaXMgcHJvcGVydHkgaXMgc2V0IGZvciBjaGFyYWN0ZXJzIHRoYXQgYXJlIGNvbW1vbmx5IHVzZWQgaW4KKyAgICAqIFJpZ2h0LVRvLUxlZnQgY29udGV4dHMgYW5kIG5lZWQgdG8gYmUgZGlzcGxheWVkIHdpdGggYSAibWlycm9yZWQiCisgICAgKiBnbHlwaC4KKyAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHdob3NlIG1pcnJvciBpcyB0byBiZSBkZXRlcm1pbmVkCisgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNvZGUgcG9pbnQgaGFzIHRoZSAibWlycm9yZWQiIHByb3BlcnR5CisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNNaXJyb3JlZChpbnQgY2gpCisgICAgeworICAgICAgICBpbnQgcHJvcHMgPSBnZXRQcm9wcyhjaCk7CisgICAgICAgIC8vIGlmIHByb3BzID09IDAsIGl0IHdpbGwganVzdCBmYWxsIHRocm91Z2ggYW5kIHJldHVybiBmYWxzZQorICAgICAgICByZXR1cm4gVUNoYXJhY3RlclByb3BlcnR5LmlzTWlycm9yZWQocHJvcHMpOworICAgIH0KKworICAgIC8qKgorICAgICogTWFwcyB0aGUgc3BlY2lmaWVkIGNvZGUgcG9pbnQgdG8gYSAibWlycm9yLWltYWdlIiBjb2RlIHBvaW50LgorICAgICogRm9yIGNvZGUgcG9pbnRzIHdpdGggdGhlICJtaXJyb3JlZCIgcHJvcGVydHksIGltcGxlbWVudGF0aW9ucyBzb21ldGltZXMgCisgICAgKiBuZWVkIGEgInBvb3IgbWFuJ3MiIG1hcHBpbmcgdG8gYW5vdGhlciBjb2RlIHBvaW50IHN1Y2ggdGhhdCB0aGUgZGVmYXVsdCAKKyAgICAqIGdseXBoIG1heSBzZXJ2ZSBhcyB0aGUgbWlycm9yLWltYWdlIG9mIHRoZSBkZWZhdWx0IGdseXBoIG9mIHRoZSBzcGVjaWZpZWQKKyAgICAqIGNvZGUgcG9pbnQuPGJyPiAKKyAgICAqIFRoaXMgaXMgdXNlZnVsIGZvciB0ZXh0IGNvbnZlcnNpb24gdG8gYW5kIGZyb20gY29kZXBhZ2VzIHdpdGggdmlzdWFsIAorICAgICogb3JkZXIsIGFuZCBmb3IgZGlzcGxheXMgd2l0aG91dCBnbHlwaCBzZWxlY3Rpb24gY2FwYWJpbGl0aWVzLgorICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgd2hvc2UgbWlycm9yIGlzIHRvIGJlIHJldHJpZXZlZAorICAgICogQHJldHVybiBhbm90aGVyIGNvZGUgcG9pbnQgdGhhdCBtYXkgc2VydmUgYXMgYSBtaXJyb3ItaW1hZ2Ugc3Vic3RpdHV0ZSwgb3IgCisgICAgKiAgICAgICAgIGNoIGl0c2VsZiBpZiB0aGVyZSBpcyBubyBzdWNoIG1hcHBpbmcgb3IgY2ggZG9lcyBub3QgaGF2ZSB0aGUgCisgICAgKiAgICAgICAgICJtaXJyb3JlZCIgcHJvcGVydHkKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldE1pcnJvcihpbnQgY2gpCisgICAgeworICAgICAgICBpbnQgcHJvcHMgPSBnZXRQcm9wcyhjaCk7CisgICAgICAgIC8vIG1pcnJvcmVkIC0gdGhlIHZhbHVlIGlzIGEgbWlycm9yIG9mZnNldAorICAgICAgICAvLyBpZiBwcm9wcyA9PSAwLCBpdCB3aWxsIGp1c3QgZmFsbCB0aHJvdWdoIGFuZCByZXR1cm4gZmFsc2UKKyAgICAgICAgaWYgKFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc01pcnJvcmVkKHByb3BzKSkgeworICAgICAgICAgICAgaWYoIVVDaGFyYWN0ZXJQcm9wZXJ0eS5pc0V4Y2VwdGlvbkluZGljYXRvcihwcm9wcykpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2ggKyBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0U2lnbmVkVmFsdWUocHJvcHMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSAKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpbnQgaW5kZXggPSBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0RXhjZXB0aW9uSW5kZXgocHJvcHMpOworICAgICAgICAgICAgICAgIGlmIChQUk9QRVJUWV8uaGFzRXhjZXB0aW9uVmFsdWUoaW5kZXgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3RlclByb3BlcnR5LkVYQ19NSVJST1JfTUFQUElOR18pKSAKKyAgICAgICAgICAgICAgICByZXR1cm4gUFJPUEVSVFlfLmdldEV4Y2VwdGlvbihpbmRleCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3RlclByb3BlcnR5LkVYQ19NSVJST1JfTUFQUElOR18pOyAgIAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjaDsKKyAgICB9CisgICAgICAKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIGNvbWJpbmluZyBjbGFzcyBvZiB0aGUgYXJndW1lbnQgY29kZXBvaW50CisgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB3aG9zZSBjb21iaW5pbmcgaXMgdG8gYmUgcmV0cmlldmVkCisgICAgKiBAcmV0dXJuIHRoZSBjb21iaW5pbmcgY2xhc3Mgb2YgdGhlIGNvZGVwb2ludAorICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0Q29tYmluaW5nQ2xhc3MoaW50IGNoKQorICAgIHsKKyAgICAJaWYgKGNoIDwgTUlOX1ZBTFVFIHx8IGNoID4gTUFYX1ZBTFVFKSB7CisgICAgCQl0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJDb2RlcG9pbnQgb3V0IG9mIGJvdW5kcyIpOworICAgIAl9CisgICAgCXJldHVybiBOb3JtYWxpemVySW1wbC5nZXRDb21iaW5pbmdDbGFzcyhjaCk7CisgICAgfQorICAgICAgCisgICAgLyoqCisgICAgKiBBIGNvZGUgcG9pbnQgaXMgaWxsZWdhbCBpZiBhbmQgb25seSBpZgorICAgICogPHVsPgorICAgICogPGxpPiBPdXQgb2YgYm91bmRzLCBsZXNzIHRoYW4gMCBvciBncmVhdGVyIHRoYW4gVUNoYXJhY3Rlci5NQVhfVkFMVUUKKyAgICAqIDxsaT4gQSBzdXJyb2dhdGUgdmFsdWUsIDB4RDgwMCB0byAweERGRkYKKyAgICAqIDxsaT4gTm90LWEtY2hhcmFjdGVyLCBoYXZpbmcgdGhlIGZvcm0gMHggeHhGRkZGIG9yIDB4IHh4RkZGRQorICAgICogPC91bD4KKyAgICAqIE5vdGU6IGxlZ2FsIGRvZXMgbm90IG1lYW4gdGhhdCBpdCBpcyBhc3NpZ25lZCBpbiB0aGlzIHZlcnNpb24gb2YgVW5pY29kZS4KKyAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHRvIGRldGVybWluZSBpZiBpdCBpcyBhIGxlZ2FsIGNvZGUgcG9pbnQgYnkgaXRzZWxmCisgICAgKiBAcmV0dXJuIHRydWUgaWYgYW5kIG9ubHkgaWYgbGVnYWwuIAorICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzTGVnYWwoaW50IGNoKSAKKyAgICB7CisgICAgICAgIGlmIChjaCA8IE1JTl9WQUxVRSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmIChjaCA8IFVURjE2LlNVUlJPR0FURV9NSU5fVkFMVUUpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmIChjaCA8PSBVVEYxNi5TVVJST0dBVEVfTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGlzTm9uQ2hhcmFjdGVyKGNoKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiAoY2ggPD0gTUFYX1ZBTFVFKTsKKyAgICB9CisgICAgICAKKyAgICAvKioKKyAgICAqIEEgc3RyaW5nIGlzIGxlZ2FsIGlmZiBhbGwgaXRzIGNvZGUgcG9pbnRzIGFyZSBsZWdhbC4KKyAgICAqIEEgY29kZSBwb2ludCBpcyBpbGxlZ2FsIGlmIGFuZCBvbmx5IGlmCisgICAgKiA8dWw+CisgICAgKiA8bGk+IE91dCBvZiBib3VuZHMsIGxlc3MgdGhhbiAwIG9yIGdyZWF0ZXIgdGhhbiBVQ2hhcmFjdGVyLk1BWF9WQUxVRQorICAgICogPGxpPiBBIHN1cnJvZ2F0ZSB2YWx1ZSwgMHhEODAwIHRvIDB4REZGRgorICAgICogPGxpPiBOb3QtYS1jaGFyYWN0ZXIsIGhhdmluZyB0aGUgZm9ybSAweCB4eEZGRkYgb3IgMHggeHhGRkZFCisgICAgKiA8L3VsPgorICAgICogTm90ZTogbGVnYWwgZG9lcyBub3QgbWVhbiB0aGF0IGl0IGlzIGFzc2lnbmVkIGluIHRoaXMgdmVyc2lvbiBvZiBVbmljb2RlLgorICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgdG8gZGV0ZXJtaW5lIGlmIGl0IGlzIGEgbGVnYWwgY29kZSBwb2ludCBieSBpdHNlbGYKKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiBhbmQgb25seSBpZiBsZWdhbC4gCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNMZWdhbChTdHJpbmcgc3RyKSAKKyAgICB7CisgICAgICAgIGludCBzaXplID0gc3RyLmxlbmd0aCgpOworICAgICAgICBpbnQgY29kZXBvaW50OworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkgKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIGNvZGVwb2ludCA9IFVURjE2LmNoYXJBdChzdHIsIGkpOworICAgICAgICAgICAgaWYgKCFpc0xlZ2FsKGNvZGVwb2ludCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaXNTdXBwbGVtZW50YXJ5KGNvZGVwb2ludCkpIHsKKyAgICAgICAgICAgICAgICBpICsrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICogR2V0cyB0aGUgdmVyc2lvbiBvZiBVbmljb2RlIGRhdGEgdXNlZC4gCisgICAgKiBAcmV0dXJuIHRoZSB1bmljb2RlIHZlcnNpb24gbnVtYmVyIHVzZWQKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVmVyc2lvbkluZm8gZ2V0VW5pY29kZVZlcnNpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFBST1BFUlRZXy5tX3VuaWNvZGVWZXJzaW9uXzsKKyAgICB9CisgICAgICAKKyAgICAvKioKKyAgICAqIFJldHJpZXZlIHRoZSBtb3N0IGN1cnJlbnQgVW5pY29kZSBuYW1lIG9mIHRoZSBhcmd1bWVudCBjb2RlIHBvaW50LCBvciAKKyAgICAqIG51bGwgaWYgdGhlIGNoYXJhY3RlciBpcyB1bmFzc2lnbmVkIG9yIG91dHNpZGUgdGhlIHJhbmdlIAorICAgICogVUNoYXJhY3Rlci5NSU5fVkFMVUUgYW5kIFVDaGFyYWN0ZXIuTUFYX1ZBTFVFIG9yIGRvZXMgbm90IGhhdmUgYSBuYW1lLgorICAgICogPGJyPgorICAgICogTm90ZSBjYWxsaW5nIGFueSBtZXRob2RzIHJlbGF0ZWQgdG8gY29kZSBwb2ludCBuYW1lcywgZS5nLiBnZXQqTmFtZSooKSAKKyAgICAqIGluY3VycyBhIG9uZS10aW1lIGluaXRpYWxpc2F0aW9uIGNvc3QgdG8gY29uc3RydWN0IHRoZSBuYW1lIHRhYmxlcy4KKyAgICAqIEBwYXJhbSBjaCB0aGUgY29kZSBwb2ludCBmb3Igd2hpY2ggdG8gZ2V0IHRoZSBuYW1lCisgICAgKiBAcmV0dXJuIG1vc3QgY3VycmVudCBVbmljb2RlIG5hbWUKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldE5hbWUoaW50IGNoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE5BTUVfLmdldE5hbWUoY2gsIFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLlVfVU5JQ09ERV9DSEFSX05BTUUpOworICAgIH0KKyAgICAgIAorICAgIC8qKgorICAgICogUmV0cmlldmUgdGhlIGVhcmxpZXIgdmVyc2lvbiAxLjAgVW5pY29kZSBuYW1lIG9mIHRoZSBhcmd1bWVudCBjb2RlIHBvaW50LAorICAgICogb3IgbnVsbCBpZiB0aGUgY2hhcmFjdGVyIGlzIHVuYXNzaWduZWQgb3Igb3V0c2lkZSB0aGUgcmFuZ2UgCisgICAgKiBVQ2hhcmFjdGVyLk1JTl9WQUxVRSBhbmQgVUNoYXJhY3Rlci5NQVhfVkFMVUUgb3IgZG9lcyBub3QgaGF2ZSBhIG5hbWUuCisgICAgKiA8YnI+CisgICAgKiBOb3RlIGNhbGxpbmcgYW55IG1ldGhvZHMgcmVsYXRlZCB0byBjb2RlIHBvaW50IG5hbWVzLCBlLmcuIGdldCpOYW1lKigpIAorICAgICogaW5jdXJzIGEgb25lLXRpbWUgaW5pdGlhbGlzYXRpb24gY29zdCB0byBjb25zdHJ1Y3QgdGhlIG5hbWUgdGFibGVzLgorICAgICogQHBhcmFtIGNoIHRoZSBjb2RlIHBvaW50IGZvciB3aGljaCB0byBnZXQgdGhlIG5hbWUKKyAgICAqIEByZXR1cm4gdmVyc2lvbiAxLjAgVW5pY29kZSBuYW1lCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXROYW1lMV8wKGludCBjaCkKKyAgICB7CisgICAgICAgIHJldHVybiBOQU1FXy5nZXROYW1lKGNoLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlck5hbWVDaG9pY2UuVV9VTklDT0RFXzEwX0NIQVJfTkFNRSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogPHA+UmV0cmlldmVzIGEgbmFtZSBmb3IgYSB2YWxpZCBjb2RlcG9pbnQuIFVubGlrZSwgZ2V0TmFtZShpbnQpIGFuZAorICAgICogZ2V0TmFtZTFfMChpbnQpLCB0aGlzIG1ldGhvZCB3aWxsIHJldHVybiBhIG5hbWUgZXZlbiBmb3IgY29kZXBvaW50cyB0aGF0CisgICAgKiBhcmUgbm90IGFzc2lnbmVkIGEgbmFtZSBpbiBVbmljb2RlRGF0YS50eHQuCisgICAgKiA8L3A+CisgICAgKiBUaGUgbmFtZXMgYXJlIHJldHVybmVkIGluIHRoZSBmb2xsb3dpbmcgb3JkZXIuCisgICAgKiA8dWw+CisgICAgKiA8bGk+IE1vc3QgY3VycmVudCBVbmljb2RlIG5hbWUgaWYgdGhlcmUgaXMgYW55CisgICAgKiA8bGk+IFVuaWNvZGUgMS4wIG5hbWUgaWYgdGhlcmUgaXMgYW55CisgICAgKiA8bGk+IEV4dGVuZGVkIG5hbWUgaW4gdGhlIGZvcm0gb2YgIjxjb2RlcG9pbnRfdHlwZS1jb2RlcG9pbnRfaGV4X2RpZ2l0cz4iLiAKKyAgICAqICAgICAgRS5nLiA8bm9uY2hhcmFjdGVyLWZmZmU+CisgICAgKiA8L3VsPgorICAgICogTm90ZSBjYWxsaW5nIGFueSBtZXRob2RzIHJlbGF0ZWQgdG8gY29kZSBwb2ludCBuYW1lcywgZS5nLiBnZXQqTmFtZSooKSAKKyAgICAqIGluY3VycyBhIG9uZS10aW1lIGluaXRpYWxpc2F0aW9uIGNvc3QgdG8gY29uc3RydWN0IHRoZSBuYW1lIHRhYmxlcy4KKyAgICAqIEBwYXJhbSBjaCB0aGUgY29kZSBwb2ludCBmb3Igd2hpY2ggdG8gZ2V0IHRoZSBuYW1lCisgICAgKiBAcmV0dXJuIGEgbmFtZSBmb3IgdGhlIGFyZ3VtZW50IGNvZGVwb2ludAorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RXh0ZW5kZWROYW1lKGludCBjaCkgCisgICAgeworICAgICAgICByZXR1cm4gTkFNRV8uZ2V0TmFtZShjaCwgVUNoYXJhY3Rlck5hbWVDaG9pY2UuVV9FWFRFTkRFRF9DSEFSX05BTUUpOworICAgIH0KKyAgICAgIAorICAgIC8qKgorICAgICogPHA+RmluZCBhIFVuaWNvZGUgY29kZSBwb2ludCBieSBpdHMgbW9zdCBjdXJyZW50IFVuaWNvZGUgbmFtZSBhbmQgCisgICAgKiByZXR1cm4gaXRzIGNvZGUgcG9pbnQgdmFsdWUuIEFsbCBVbmljb2RlIG5hbWVzIGFyZSBpbiB1cHBlcmNhc2UuPC9wPgorICAgICogTm90ZSBjYWxsaW5nIGFueSBtZXRob2RzIHJlbGF0ZWQgdG8gY29kZSBwb2ludCBuYW1lcywgZS5nLiBnZXQqTmFtZSooKSAKKyAgICAqIGluY3VycyBhIG9uZS10aW1lIGluaXRpYWxpc2F0aW9uIGNvc3QgdG8gY29uc3RydWN0IHRoZSBuYW1lIHRhYmxlcy4KKyAgICAqIEBwYXJhbSBuYW1lIG1vc3QgY3VycmVudCBVbmljb2RlIGNoYXJhY3RlciBuYW1lIHdob3NlIGNvZGUgcG9pbnQgaXMgdG8gYmUgCisgICAgKiAgICAgICAgcmV0dXJuZWQKKyAgICAqIEByZXR1cm4gY29kZSBwb2ludCBvciAtMSBpZiBuYW1lIGlzIG5vdCBmb3VuZAorICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0Q2hhckZyb21OYW1lKFN0cmluZyBuYW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE5BTUVfLmdldENoYXJGcm9tTmFtZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyTmFtZUNob2ljZS5VX1VOSUNPREVfQ0hBUl9OQU1FLCBuYW1lKTsKKyAgICB9CisgICAgICAKKyAgICAvKioKKyAgICAqIDxwPkZpbmQgYSBVbmljb2RlIGNoYXJhY3RlciBieSBpdHMgdmVyc2lvbiAxLjAgVW5pY29kZSBuYW1lIGFuZCByZXR1cm4gCisgICAgKiBpdHMgY29kZSBwb2ludCB2YWx1ZS4gQWxsIFVuaWNvZGUgbmFtZXMgYXJlIGluIHVwcGVyY2FzZS48L3A+CisgICAgKiBOb3RlIGNhbGxpbmcgYW55IG1ldGhvZHMgcmVsYXRlZCB0byBjb2RlIHBvaW50IG5hbWVzLCBlLmcuIGdldCpOYW1lKigpIAorICAgICogaW5jdXJzIGEgb25lLXRpbWUgaW5pdGlhbGlzYXRpb24gY29zdCB0byBjb25zdHJ1Y3QgdGhlIG5hbWUgdGFibGVzLgorICAgICogQHBhcmFtIG5hbWUgVW5pY29kZSAxLjAgY29kZSBwb2ludCBuYW1lIHdob3NlIGNvZGUgcG9pbnQgaXMgdG8gCisgICAgKiAgICAgICAgICAgICByZXR1cm5lZAorICAgICogQHJldHVybiBjb2RlIHBvaW50IG9yIC0xIGlmIG5hbWUgaXMgbm90IGZvdW5kCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRDaGFyRnJvbU5hbWUxXzAoU3RyaW5nIG5hbWUpCisgICAgeworICAgICAgICByZXR1cm4gTkFNRV8uZ2V0Q2hhckZyb21OYW1lKAorICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLlVfVU5JQ09ERV8xMF9DSEFSX05BTUUsIG5hbWUpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIDxwPkZpbmQgYSBVbmljb2RlIGNoYXJhY3RlciBieSBlaXRoZXIgaXRzIG5hbWUgYW5kIHJldHVybiBpdHMgY29kZSAKKyAgICAqIHBvaW50IHZhbHVlLiBBbGwgVW5pY29kZSBuYW1lcyBhcmUgaW4gdXBwZXJjYXNlLiAKKyAgICAqIEV4dGVuZGVkIG5hbWVzIGFyZSBhbGwgbG93ZXJjYXNlIGV4Y2VwdCBmb3IgbnVtYmVycyBhbmQgYXJlIGNvbnRhaW5lZAorICAgICogd2l0aGluIGFuZ2xlIGJyYWNrZXRzLjwvcD4KKyAgICAqIFRoZSBuYW1lcyBhcmUgc2VhcmNoZWQgaW4gdGhlIGZvbGxvd2luZyBvcmRlcgorICAgICogPHVsPgorICAgICogPGxpPiBNb3N0IGN1cnJlbnQgVW5pY29kZSBuYW1lIGlmIHRoZXJlIGlzIGFueQorICAgICogPGxpPiBVbmljb2RlIDEuMCBuYW1lIGlmIHRoZXJlIGlzIGFueQorICAgICogPGxpPiBFeHRlbmRlZCBuYW1lIGluIHRoZSBmb3JtIG9mICI8Y29kZXBvaW50X3R5cGUtY29kZXBvaW50X2hleF9kaWdpdHM+Ii4gCisgICAgKiAgICAgIEUuZy4gPG5vbmNoYXJhY3Rlci1GRkZFPgorICAgICogPC91bD4KKyAgICAqIE5vdGUgY2FsbGluZyBhbnkgbWV0aG9kcyByZWxhdGVkIHRvIGNvZGUgcG9pbnQgbmFtZXMsIGUuZy4gZ2V0Kk5hbWUqKCkgCisgICAgKiBpbmN1cnMgYSBvbmUtdGltZSBpbml0aWFsaXNhdGlvbiBjb3N0IHRvIGNvbnN0cnVjdCB0aGUgbmFtZSB0YWJsZXMuCisgICAgKiBAcGFyYW0gbmFtZSBjb2RlcG9pbnQgbmFtZQorICAgICogQHJldHVybiBjb2RlIHBvaW50IGFzc29jaWF0ZWQgd2l0aCB0aGUgbmFtZSBvciAtMSBpZiB0aGUgbmFtZSBpcyBub3QKKyAgICAqICAgICAgICAgZm91bmQuCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRDaGFyRnJvbUV4dGVuZGVkTmFtZShTdHJpbmcgbmFtZSkKKyAgICB7CisgICAgICAgIHJldHVybiBOQU1FXy5nZXRDaGFyRnJvbU5hbWUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlck5hbWVDaG9pY2UuVV9FWFRFTkRFRF9DSEFSX05BTUUsIG5hbWUpOworICAgIH0KKyAgICAgIAorICAgIC8qKgorICAgICogUmV0dXJucyBhIGNvZGUgcG9pbnQgY29ycmVzcG9uZGluZyB0byB0aGUgdHdvIFVURjE2IGNoYXJhY3RlcnMuCisgICAgKiBAcGFyYW0gbGVhZCB0aGUgbGVhZCBjaGFyCisgICAgKiBAcGFyYW0gdHJhaWwgdGhlIHRyYWlsIGNoYXIKKyAgICAqIEByZXR1cm4gY29kZSBwb2ludCBpZiBzdXJyb2dhdGUgY2hhcmFjdGVycyBhcmUgdmFsaWQuCisgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB0aHJvd24gd2hlbiBhcmd1bWVudCBjaGFyYWN0ZXJzIGRvCisgICAgKiAgICAgICAgICAgIG5vdCBmb3JtIGEgdmFsaWQgY29kZXBvaW50CisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRDb2RlUG9pbnQoY2hhciBsZWFkLCBjaGFyIHRyYWlsKSAKKyAgICB7CisgICAgICAgIGlmIChsZWFkID49IFVURjE2LkxFQURfU1VSUk9HQVRFX01JTl9WQUxVRSAmJiAKKwkgICAgICAgIGxlYWQgPD0gVVRGMTYuTEVBRF9TVVJST0dBVEVfTUFYX1ZBTFVFICYmCisgICAgICAgICAgICB0cmFpbCA+PSBVVEYxNi5UUkFJTF9TVVJST0dBVEVfTUlOX1ZBTFVFICYmIAorCSAgICAgICAgdHJhaWwgPD0gVVRGMTYuVFJBSUxfU1VSUk9HQVRFX01BWF9WQUxVRSkgeworICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRSYXdTdXBwbGVtZW50YXJ5KGxlYWQsIHRyYWlsKTsKKyAgICAgICAgfQorICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIHN1cnJvZ2F0ZSBjaGFyYWN0ZXJzIik7CisgICAgfQorICAgICAgCisgICAgLyoqCisgICAgKiBSZXR1cm5zIHRoZSBjb2RlIHBvaW50IGNvcnJlc3BvbmRpbmcgdG8gdGhlIFVURjE2IGNoYXJhY3Rlci4KKyAgICAqIEBwYXJhbSBjaGFyMTYgdGhlIFVURjE2IGNoYXJhY3RlcgorICAgICogQHJldHVybiBjb2RlIHBvaW50IGlmIGFyZ3VtZW50IGlzIGEgdmFsaWQgY2hhcmFjdGVyLgorICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIHdoZW4gY2hhcjE2IGlzIG5vdCBhIHZhbGlkCisgICAgKiAgICAgICAgICAgIGNvZGVwb2ludAorICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0Q29kZVBvaW50KGNoYXIgY2hhcjE2KSAKKyAgICB7CisgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzTGVnYWwoY2hhcjE2KSkgeworICAgICAgICAgICAgcmV0dXJuIGNoYXIxNjsKKyAgICAgICAgfQorICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIGNvZGVwb2ludCIpOworICAgIH0KKyAgICAgIAorICAgIC8qKgorICAgICogR2V0cyB1cHBlcmNhc2UgdmVyc2lvbiBvZiB0aGUgYXJndW1lbnQgc3RyaW5nLiAKKyAgICAqIENhc2luZyBpcyBkZXBlbmRlbnQgb24gdGhlIGRlZmF1bHQgbG9jYWxlIGFuZCBjb250ZXh0LXNlbnNpdGl2ZS4KKyAgICAqIEBwYXJhbSBzdHIgc291cmNlIHN0cmluZyB0byBiZSBwZXJmb3JtZWQgb24KKyAgICAqIEByZXR1cm4gdXBwZXJjYXNlIHZlcnNpb24gb2YgdGhlIGFyZ3VtZW50IHN0cmluZworICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgdG9VcHBlckNhc2UoU3RyaW5nIHN0cikKKyAgICB7CisgICAgICAgIHJldHVybiB0b1VwcGVyQ2FzZShMb2NhbGUuZ2V0RGVmYXVsdCgpLCBzdHIpOworICAgIH0KKyAgICAgIAorICAgIC8qKgorICAgICogR2V0cyBsb3dlcmNhc2UgdmVyc2lvbiBvZiB0aGUgYXJndW1lbnQgc3RyaW5nLiAKKyAgICAqIENhc2luZyBpcyBkZXBlbmRlbnQgb24gdGhlIGRlZmF1bHQgbG9jYWxlIGFuZCBjb250ZXh0LXNlbnNpdGl2ZQorICAgICogQHBhcmFtIHN0ciBzb3VyY2Ugc3RyaW5nIHRvIGJlIHBlcmZvcm1lZCBvbgorICAgICogQHJldHVybiBsb3dlcmNhc2UgdmVyc2lvbiBvZiB0aGUgYXJndW1lbnQgc3RyaW5nCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB0b0xvd2VyQ2FzZShTdHJpbmcgc3RyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRvTG93ZXJDYXNlKExvY2FsZS5nZXREZWZhdWx0KCksIHN0cik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogPHA+R2V0cyB0aGUgdGl0bGVjYXNlIHZlcnNpb24gb2YgdGhlIGFyZ3VtZW50IHN0cmluZy48L3A+CisgICAgKiA8cD5Qb3NpdGlvbiBmb3IgdGl0bGVjYXNpbmcgaXMgZGV0ZXJtaW5lZCBieSB0aGUgYXJndW1lbnQgYnJlYWsgCisgICAgKiBpdGVyYXRvciwgaGVuY2UgdGhlIHVzZXIgY2FuIGN1c3RvbWl6ZWQgaGlzIGJyZWFrIGl0ZXJhdG9yIGZvciAKKyAgICAqIGEgc3BlY2lhbGl6ZWQgdGl0bGVjYXNpbmcuIEluIHRoaXMgY2FzZSBvbmx5IHRoZSBmb3J3YXJkIGl0ZXJhdGlvbiAKKyAgICAqIG5lZWRzIHRvIGJlIGltcGxlbWVudGVkLgorICAgICogSWYgdGhlIGJyZWFrIGl0ZXJhdG9yIHBhc3NlZCBpbiBpcyBudWxsLCB0aGUgZGVmYXVsdCBVbmljb2RlIGFsZ29yaXRobQorICAgICogd2lsbCBiZSB1c2VkIHRvIGRldGVybWluZSB0aGUgdGl0bGVjYXNlIHBvc2l0aW9ucy4KKyAgICAqIDwvcD4KKyAgICAqIDxwPk9ubHkgcG9zaXRpb25zIHJldHVybmVkIGJ5IHRoZSBicmVhayBpdGVyYXRvciB3aWxsIGJlIHRpdGxlIGNhc2VkLAorICAgICogY2hhcmFjdGVyIGluIGJldHdlZW4gdGhlIHBvc2l0aW9ucyB3aWxsIGFsbCBiZSBpbiBsb3dlciBjYXNlLjwvcD4KKyAgICAqIDxwPkNhc2luZyBpcyBkZXBlbmRlbnQgb24gdGhlIGRlZmF1bHQgbG9jYWxlIGFuZCBjb250ZXh0LXNlbnNpdGl2ZTwvcD4KKyAgICAqIEBwYXJhbSBzdHIgc291cmNlIHN0cmluZyB0byBiZSBwZXJmb3JtZWQgb24KKyAgICAqIEBwYXJhbSBicmVha2l0ZXIgYnJlYWsgaXRlcmF0b3IgdG8gZGV0ZXJtaW5lIHRoZSBwb3NpdGlvbnMgaW4gd2hpY2gKKyAgICAqICAgICAgICB0aGUgY2hhcmFjdGVyIHNob3VsZCBiZSB0aXRsZSBjYXNlZC4KKyAgICAqIEByZXR1cm4gbG93ZXJjYXNlIHZlcnNpb24gb2YgdGhlIGFyZ3VtZW50IHN0cmluZworICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgdG9UaXRsZUNhc2UoU3RyaW5nIHN0ciwgQnJlYWtJdGVyYXRvciBicmVha2l0ZXIpCisgICAgeworICAgICAgICByZXR1cm4gdG9UaXRsZUNhc2UoTG9jYWxlLmdldERlZmF1bHQoKSwgc3RyLCBicmVha2l0ZXIpOworICAgIH0KKyAgICAgIAorICAgIC8qKgorICAgICogR2V0cyB1cHBlcmNhc2UgdmVyc2lvbiBvZiB0aGUgYXJndW1lbnQgc3RyaW5nLiAKKyAgICAqIENhc2luZyBpcyBkZXBlbmRlbnQgb24gdGhlIGFyZ3VtZW50IGxvY2FsZSBhbmQgY29udGV4dC1zZW5zaXRpdmUuCisgICAgKiBAcGFyYW0gbG9jYWxlIHdoaWNoIHN0cmluZyBpcyB0byBiZSBjb252ZXJ0ZWQgaW4KKyAgICAqIEBwYXJhbSBzdHIgc291cmNlIHN0cmluZyB0byBiZSBwZXJmb3JtZWQgb24KKyAgICAqIEByZXR1cm4gdXBwZXJjYXNlIHZlcnNpb24gb2YgdGhlIGFyZ3VtZW50IHN0cmluZworICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgdG9VcHBlckNhc2UoTG9jYWxlIGxvY2FsZSwgU3RyaW5nIHN0cikKKyAgICB7CisgICAgCWlmIChsb2NhbGUgPT0gbnVsbCkgeworICAgIAkJbG9jYWxlID0gTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAJfQorICAgICAgICByZXR1cm4gUFJPUEVSVFlfLnRvVXBwZXJDYXNlKGxvY2FsZSwgc3RyLCAwLCBzdHIubGVuZ3RoKCkpOworICAgIH0KKyAgICAgIAorICAgIC8qKgorICAgICogR2V0cyBsb3dlcmNhc2UgdmVyc2lvbiBvZiB0aGUgYXJndW1lbnQgc3RyaW5nLiAKKyAgICAqIENhc2luZyBpcyBkZXBlbmRlbnQgb24gdGhlIGFyZ3VtZW50IGxvY2FsZSBhbmQgY29udGV4dC1zZW5zaXRpdmUKKyAgICAqIEBwYXJhbSBsb2NhbGUgd2hpY2ggc3RyaW5nIGlzIHRvIGJlIGNvbnZlcnRlZCBpbgorICAgICogQHBhcmFtIHN0ciBzb3VyY2Ugc3RyaW5nIHRvIGJlIHBlcmZvcm1lZCBvbgorICAgICogQHJldHVybiBsb3dlcmNhc2UgdmVyc2lvbiBvZiB0aGUgYXJndW1lbnQgc3RyaW5nCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB0b0xvd2VyQ2FzZShMb2NhbGUgbG9jYWxlLCBTdHJpbmcgc3RyKQorICAgIHsKKyAgICAJaW50IGxlbmd0aCA9IHN0ci5sZW5ndGgoKTsKKyAgICAJU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIobGVuZ3RoKTsKKyAgICAJaWYgKGxvY2FsZSA9PSBudWxsKSB7CisgICAgCQlsb2NhbGUgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgIAl9CisgICAgICAgIFBST1BFUlRZXy50b0xvd2VyQ2FzZShsb2NhbGUsIHN0ciwgMCwgbGVuZ3RoLCByZXN1bHQpOworICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogPHA+R2V0cyB0aGUgdGl0bGVjYXNlIHZlcnNpb24gb2YgdGhlIGFyZ3VtZW50IHN0cmluZy48L3A+CisgICAgKiA8cD5Qb3NpdGlvbiBmb3IgdGl0bGVjYXNpbmcgaXMgZGV0ZXJtaW5lZCBieSB0aGUgYXJndW1lbnQgYnJlYWsgCisgICAgKiBpdGVyYXRvciwgaGVuY2UgdGhlIHVzZXIgY2FuIGN1c3RvbWl6ZWQgaGlzIGJyZWFrIGl0ZXJhdG9yIGZvciAKKyAgICAqIGEgc3BlY2lhbGl6ZWQgdGl0bGVjYXNpbmcuIEluIHRoaXMgY2FzZSBvbmx5IHRoZSBmb3J3YXJkIGl0ZXJhdGlvbiAKKyAgICAqIG5lZWRzIHRvIGJlIGltcGxlbWVudGVkLgorICAgICogSWYgdGhlIGJyZWFrIGl0ZXJhdG9yIHBhc3NlZCBpbiBpcyBudWxsLCB0aGUgZGVmYXVsdCBVbmljb2RlIGFsZ29yaXRobQorICAgICogd2lsbCBiZSB1c2VkIHRvIGRldGVybWluZSB0aGUgdGl0bGVjYXNlIHBvc2l0aW9ucy4KKyAgICAqIDwvcD4KKyAgICAqIDxwPk9ubHkgcG9zaXRpb25zIHJldHVybmVkIGJ5IHRoZSBicmVhayBpdGVyYXRvciB3aWxsIGJlIHRpdGxlIGNhc2VkLAorICAgICogY2hhcmFjdGVyIGluIGJldHdlZW4gdGhlIHBvc2l0aW9ucyB3aWxsIGFsbCBiZSBpbiBsb3dlciBjYXNlLjwvcD4KKyAgICAqIDxwPkNhc2luZyBpcyBkZXBlbmRlbnQgb24gdGhlIGFyZ3VtZW50IGxvY2FsZSBhbmQgY29udGV4dC1zZW5zaXRpdmU8L3A+CisgICAgKiBAcGFyYW0gbG9jYWxlIHdoaWNoIHN0cmluZyBpcyB0byBiZSBjb252ZXJ0ZWQgaW4KKyAgICAqIEBwYXJhbSBzdHIgc291cmNlIHN0cmluZyB0byBiZSBwZXJmb3JtZWQgb24KKyAgICAqIEBwYXJhbSBicmVha2l0ZXIgYnJlYWsgaXRlcmF0b3IgdG8gZGV0ZXJtaW5lIHRoZSBwb3NpdGlvbnMgaW4gd2hpY2gKKyAgICAqICAgICAgICB0aGUgY2hhcmFjdGVyIHNob3VsZCBiZSB0aXRsZSBjYXNlZC4KKyAgICAqIEByZXR1cm4gbG93ZXJjYXNlIHZlcnNpb24gb2YgdGhlIGFyZ3VtZW50IHN0cmluZworICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgdG9UaXRsZUNhc2UoTG9jYWxlIGxvY2FsZSwgU3RyaW5nIHN0ciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWtJdGVyYXRvciBicmVha2l0ZXIpCisgICAgeworICAgICAgICBpZiAoYnJlYWtpdGVyID09IG51bGwpIHsKKyAgICAgICAgCWlmIChsb2NhbGUgPT0gbnVsbCkgeworICAgICAgICAJCWxvY2FsZSA9IExvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIAl9CisgICAgICAgICAgICBicmVha2l0ZXIgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZShsb2NhbGUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBQUk9QRVJUWV8udG9UaXRsZUNhc2UobG9jYWxlLCBzdHIsIGJyZWFraXRlcik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogVGhlIGdpdmVuIGNoYXJhY3RlciBpcyBtYXBwZWQgdG8gaXRzIGNhc2UgZm9sZGluZyBlcXVpdmFsZW50IGFjY29yZGluZyB0bworICAgICogVW5pY29kZURhdGEudHh0IGFuZCBDYXNlRm9sZGluZy50eHQ7IGlmIHRoZSBjaGFyYWN0ZXIgaGFzIG5vIGNhc2UgZm9sZGluZyAKKyAgICAqIGVxdWl2YWxlbnQsIHRoZSBjaGFyYWN0ZXIgaXRzZWxmIGlzIHJldHVybmVkLgorICAgICogT25seSAic2ltcGxlIiwgc2luZ2xlLWNvZGUgcG9pbnQgY2FzZSBmb2xkaW5nIG1hcHBpbmdzIGFyZSB1c2VkLgorICAgICogRm9yICJmdWxsIiwgbXVsdGlwbGUtY29kZSBwb2ludCBtYXBwaW5ncyB1c2UgdGhlIEFQSSAKKyAgICAqIGZvbGRDYXNlKFN0cmluZyBzdHIsIGJvb2xlYW4gZGVmYXVsdG1hcHBpbmcpLgorICAgICogQHBhcmFtIGNoICAgICAgICAgICAgIHRoZSBjaGFyYWN0ZXIgdG8gYmUgY29udmVydGVkCisgICAgKiBAcGFyYW0gZGVmYXVsdG1hcHBpbmcgSW5kaWNhdGVzIGlmIGFsbCBtYXBwaW5ncyBkZWZpbmVkIGluIENhc2VGb2xkaW5nLnR4dCAKKyAgICAqICAgICAgICAgICAgICAgICAgICAgICBpcyB0byBiZSB1c2VkLCBvdGhlcndpc2UgdGhlIG1hcHBpbmdzIGZvciBkb3R0ZWQgSSAKKyAgICAqICAgICAgICAgICAgICAgICAgICAgICBhbmQgZG90bGVzcyBpIG1hcmtlZCB3aXRoICdJJyBpbiBDYXNlRm9sZGluZy50eHQgd2lsbCAKKyAgICAqICAgICAgICAgICAgICAgICAgICAgICBiZSBza2lwcGVkLgorICAgICogQHJldHVybiAgICAgICAgICAgICAgIHRoZSBjYXNlIGZvbGRpbmcgZXF1aXZhbGVudCBvZiB0aGUgY2hhcmFjdGVyLCBpZiBhbnk7CisgICAgKiAgICAgICAgICAgICAgICAgICAgICAgb3RoZXJ3aXNlIHRoZSBjaGFyYWN0ZXIgaXRzZWxmLgorICAgICogQHNlZSAgICAgICAgICAgICAgICAgICNmb2xkQ2FzZShTdHJpbmcsIGJvb2xlYW4pCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBmb2xkQ2FzZShpbnQgY2gsIGJvb2xlYW4gZGVmYXVsdG1hcHBpbmcpCisgICAgeworICAgICAgICAvLyBTb21lIHNwZWNpYWwgY2FzZXMgYXJlIGhhcmRjb2RlZCBiZWNhdXNlIHRoZWlyIGNvbmRpdGlvbnMgY2Fubm90IGJlCisgICAgICAgIC8vIHBhcnNlZCBhbmQgcHJvY2Vzc2VkIGZyb20gQ2FzZUZvbGRpbmcudHh0LgorICAgICAgICAvLyBVbmljb2RlIDMuMiBDYXNlRm9sZGluZy50eHQgc3BlY2lmaWVzIGZvciBpdHMgc3RhdHVzIGZpZWxkOgorICAgICAgICAvLyAjIEM6IGNvbW1vbiBjYXNlIGZvbGRpbmcsIGNvbW1vbiBtYXBwaW5ncyBzaGFyZWQgYnkgYm90aCBzaW1wbGUgYW5kIAorICAgICAgICAvLyBmdWxsIG1hcHBpbmdzLgorICAgICAgICAvLyAjIEY6IGZ1bGwgY2FzZSBmb2xkaW5nLCBtYXBwaW5ncyB0aGF0IGNhdXNlIHN0cmluZ3MgdG8gZ3JvdyBpbiAKKyAgICAgICAgLy8gbGVuZ3RoLiBNdWx0aXBsZSBjaGFyYWN0ZXJzIGFyZSBzZXBhcmF0ZWQgYnkgc3BhY2VzLgorICAgICAgICAvLyAjIFM6IHNpbXBsZSBjYXNlIGZvbGRpbmcsIG1hcHBpbmdzIHRvIHNpbmdsZSBjaGFyYWN0ZXJzIHdoZXJlIAorICAgICAgICAvLyBkaWZmZXJlbnQgZnJvbSBGLgorICAgICAgICAvLyAjIFQ6IHNwZWNpYWwgY2FzZSBmb3IgdXBwZXJjYXNlIEkgYW5kIGRvdHRlZCB1cHBlcmNhc2UgSQorICAgICAgICAvLyAjICAgIC0gRm9yIG5vbi1UdXJraWMgbGFuZ3VhZ2VzLCB0aGlzIG1hcHBpbmcgaXMgbm9ybWFsbHkgbm90IHVzZWQuCisgICAgICAgIC8vICMgICAgLSBGb3IgVHVya2ljIGxhbmd1YWdlcyAodHIsIGF6KSwgdGhpcyBtYXBwaW5nIGNhbiBiZSB1c2VkIAorICAgICAgICAvLyBpbnN0ZWFkIG9mIHRoZSBub3JtYWwgbWFwcGluZyBmb3IgdGhlc2UgY2hhcmFjdGVycy4KKyAgICAgICAgLy8gIyBVc2FnZToKKyAgICAgICAgLy8gIyAgQS4gVG8gZG8gYSBzaW1wbGUgY2FzZSBmb2xkaW5nLCB1c2UgdGhlIG1hcHBpbmdzIHdpdGggc3RhdHVzIAorICAgICAgICAvLyBDICsgUy4KKyAgICAgICAgLy8gIyAgQi4gVG8gZG8gYSBmdWxsIGNhc2UgZm9sZGluZywgdXNlIHRoZSBtYXBwaW5ncyB3aXRoIHN0YXR1cyBDICsgRi4KKyAgICAgICAgLy8gIyAgICBUaGUgbWFwcGluZ3Mgd2l0aCBzdGF0dXMgVCBjYW4gYmUgdXNlZCBvciBvbWl0dGVkIGRlcGVuZGluZyBvbiAKKyAgICAgICAgLy8gdGhlIGRlc2lyZWQgY2FzZS1mb2xkaW5nIGJlaGF2aW9yLiAKKyAgICAgICAgLy8gKFRoZSBkZWZhdWx0IG9wdGlvbiBpcyB0byBleGNsdWRlIHRoZW0uKQorICAgICAgICAvLyBVbmljb2RlIDMuMiBoYXMgJ1QnIG1hcHBpbmdzIGFzIGZvbGxvd3M6CisgICAgICAgIC8vIDAwNDk7IFQ7IDAxMzE7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSQorICAgICAgICAvLyAwMTMwOyBUOyAwMDY5OyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBET1QgQUJPVkUKKyAgICAgICAgLy8gd2hpbGUgdGhlIGRlZmF1bHQgbWFwcGluZ3MgZm9yIHRoZXNlIGNvZGUgcG9pbnRzIGFyZToKKyAgICAgICAgLy8gMDA0OTsgQzsgMDA2OTsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJCisgICAgICAgIC8vIDAxMzA7IEY7IDAwNjkgMDMwNzsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRE9UIEFCT1ZFCisgICAgICAgIC8vIFUrMDEzMCBpcyBvdGhlcndpc2UgbG93ZXJjYXNlZCB0byBVKzAwNjkgKFVuaWNvZGVEYXRhLnR4dCkuCisgICAgICAgIC8vIEluIGNhc2UgdGhpcyBjb2RlIGlzIHVzZWQgd2l0aCBDYXNlRm9sZGluZy50eHQgZnJvbSBhbiBvbGRlciB2ZXJzaW9uIAorICAgICAgICAvLyBvZiBVbmljb2RlIHdoZXJlIENhc2VGb2xkaW5nLnR4dCBjb250YWlucyBtYXBwaW5ncyB3aXRoIGEgc3RhdHVzIG9mIAorICAgICAgICAvLyAnSScgdGhhdCBoYXZlIHRoZSBvcHBvc2l0ZSBwb2xhcml0eSAoJ0knIG1hcHBpbmdzIGFyZSBpbmNsdWRlZCBieSAKKyAgICAgICAgLy8gZGVmYXVsdCBidXQgZXhjbHVkZWQgZm9yIFR1cmtpYyksIHdlIG11c3QgYWxzbyBoYXJkY29kZSB0aGUgVW5pY29kZSAKKyAgICAgICAgLy8gMy4yIG1hcHBpbmdzIGZvciB0aGUgY29kZSBwb2ludHMgd2l0aCAnSScgbWFwcGluZ3MuIAorICAgICAgICAvLyBVbmljb2RlIDMuMS4xIGhhcyAnSScgbWFwcGluZ3MgZm9yIFUrMDEzMCBhbmQgVSswMTMxLgorICAgICAgICAvLyBVbmljb2RlIDMuMiBoYXMgYSAnVCcgbWFwcGluZyBmb3IgVSswMTMwLCBhbmQgbG93ZXJjYXNlcyBVKzAxMzEgdG8gCisgICAgICAgIC8vIGl0c2VsZiAoc2VlIFVuaWNvZGVEYXRhLnR4dCkuCisKKyAgICAgICAgaW50IHByb3BzID0gUFJPUEVSVFlfLmdldFByb3BlcnR5KGNoKTsKKyAgICAgICAgaWYgKCFVQ2hhcmFjdGVyUHJvcGVydHkuaXNFeGNlcHRpb25JbmRpY2F0b3IocHJvcHMpKSB7CisgICAgICAgICAgICBpbnQgdHlwZSA9IFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRQcm9wVHlwZShwcm9wcyk7CisgICAgICAgICAgICBpZiAodHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVVBQRVJDQVNFX0xFVFRFUiB8fAorICAgICAgICAgICAgICAgIHR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5LlRJVExFQ0FTRV9MRVRURVIpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2ggKyBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0U2lnbmVkVmFsdWUocHJvcHMpOworICAgICAgICAgICAgfQorICAgICAgICB9IAorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGludCBpbmRleCA9IFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRFeGNlcHRpb25JbmRleChwcm9wcyk7CisgICAgICAgICAgICBpZiAoUFJPUEVSVFlfLmhhc0V4Y2VwdGlvblZhbHVlKGluZGV4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3RlclByb3BlcnR5LkVYQ19DQVNFX0ZPTERJTkdfKSkgeworICAgICAgICAgICAgICAgIGludCBleGNlcHRpb24gPSBQUk9QRVJUWV8uZ2V0RXhjZXB0aW9uKGluZGV4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3RlclByb3BlcnR5LkVYQ19DQVNFX0ZPTERJTkdfKTsKKyAgICAgICAgICAgICAgICBpZiAoZXhjZXB0aW9uICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGZvbGRlZGNhc2VjaCA9IAorICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BFUlRZXy5nZXRGb2xkQ2FzZShleGNlcHRpb24gJiBMQVNUX0NIQVJfTUFTS18pOworICAgICAgICAgICAgICAgICAgICBpZiAoZm9sZGVkY2FzZWNoICE9IDApeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZvbGRlZGNhc2VjaDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gc3BlY2lhbCBjYXNlIGZvbGRpbmcgbWFwcGluZ3MsIGhhcmRjb2RlZAorICAgICAgICAgICAgICAgICAgICBpZiAoZGVmYXVsdG1hcHBpbmcpIHsgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBkZWZhdWx0IG1hcHBpbmdzCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPT0gMHg0OSB8fCBjaCA9PSAweDEzMCkgeyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAwMDQ5OyBDOyAwMDY5OyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBubyBzaW1wbGUgZGVmYXVsdCBtYXBwaW5nIGZvciBVKzAxMzAsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVzZSBVbmljb2RlRGF0YS50eHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3RlclByb3BlcnR5LkxBVElOX1NNQUxMX0xFVFRFUl9JXzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gVHVya2ljIG1hcHBpbmdzIAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNoID09IDB4NDkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAwMDQ5OyBUOyAwMTMxOyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMHgxMzE7CisgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoY2ggPT0gMHgxMzApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAwMTMwOyBUOyAwMDY5OyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBET1QgQUJPVkUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMHg2OTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gY2ggaXRzZWxmIGJlY2F1c2UgaXQgaXMgZXhjbHVkZWQgZnJvbSBjYXNlIGZvbGRpbmcKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoOworICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoUFJPUEVSVFlfLmhhc0V4Y2VwdGlvblZhbHVlKGluZGV4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJQcm9wZXJ0eS5FWENfTE9XRVJDQVNFXykpIHsgIAorICAgICAgICAgICAgICAgIC8vIG5vdCBlbHNlISAtIGFsbG93IHRvIGZhbGwgdGhyb3VnaCBmcm9tIGFib3ZlCisgICAgICAgICAgICAgICAgcmV0dXJuIFBST1BFUlRZXy5nZXRFeGNlcHRpb24oaW5kZXgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyUHJvcGVydHkuRVhDX0xPV0VSQ0FTRV8pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgcmV0dXJuIGNoOyAvLyBubyBtYXBwaW5nIC0gcmV0dXJuIHRoZSBjaGFyYWN0ZXIgaXRzZWxmCisgICAgfQorCisgICAgLyoqCisgICAgKiBUaGUgZ2l2ZW4gc3RyaW5nIGlzIG1hcHBlZCB0byBpdHMgY2FzZSBmb2xkaW5nIGVxdWl2YWxlbnQgYWNjb3JkaW5nIHRvCisgICAgKiBVbmljb2RlRGF0YS50eHQgYW5kIENhc2VGb2xkaW5nLnR4dDsgaWYgYW55IGNoYXJhY3RlciBoYXMgbm8gY2FzZSBmb2xkaW5nIAorICAgICogZXF1aXZhbGVudCwgdGhlIGNoYXJhY3RlciBpdHNlbGYgaXMgcmV0dXJuZWQuCisgICAgKiAiRnVsbCIsIG11bHRpcGxlLWNvZGUgcG9pbnQgY2FzZSBmb2xkaW5nIG1hcHBpbmdzIGFyZSByZXR1cm5lZCBoZXJlLgorICAgICogRm9yICJzaW1wbGUiIHNpbmdsZS1jb2RlIHBvaW50IG1hcHBpbmdzIHVzZSB0aGUgQVBJIAorICAgICogZm9sZENhc2UoaW50IGNoLCBib29sZWFuIGRlZmF1bHRtYXBwaW5nKS4KKyAgICAqIEBwYXJhbSBzdHIgICAgICAgICAgICB0aGUgU3RyaW5nIHRvIGJlIGNvbnZlcnRlZAorICAgICogQHBhcmFtIGRlZmF1bHRtYXBwaW5nIEluZGljYXRlcyBpZiBhbGwgbWFwcGluZ3MgZGVmaW5lZCBpbiBDYXNlRm9sZGluZy50eHQgCisgICAgKiAgICAgICAgICAgICAgICAgICAgICAgaXMgdG8gYmUgdXNlZCwgb3RoZXJ3aXNlIHRoZSBtYXBwaW5ncyBmb3IgZG90dGVkIEkgCisgICAgKiAgICAgICAgICAgICAgICAgICAgICAgYW5kIGRvdGxlc3MgaSBtYXJrZWQgd2l0aCAnSScgaW4gQ2FzZUZvbGRpbmcudHh0IHdpbGwgCisgICAgKiAgICAgICAgICAgICAgICAgICAgICAgYmUgc2tpcHBlZC4KKyAgICAqIEByZXR1cm4gICAgICAgICAgICAgICB0aGUgY2FzZSBmb2xkaW5nIGVxdWl2YWxlbnQgb2YgdGhlIGNoYXJhY3RlciwgaWYgYW55OworICAgICogICAgICAgICAgICAgICAgICAgICAgIG90aGVyd2lzZSB0aGUgY2hhcmFjdGVyIGl0c2VsZi4KKyAgICAqIEBzZWUgICAgICAgICAgICAgICAgICAjZm9sZENhc2UoaW50LCBib29sZWFuKQorICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZm9sZENhc2UoU3RyaW5nIHN0ciwgYm9vbGVhbiBkZWZhdWx0bWFwcGluZykKKyAgICB7CisgICAgICAgIGludCAgICAgICAgICBzaXplICAgPSBzdHIubGVuZ3RoKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKHNpemUpOworICAgICAgICBpbnQgICAgICAgICAgb2Zmc2V0ICA9IDA7CisgICAgICAgIGludCAgICAgICAgICBjaDsKKworICAgICAgICAvLyBjYXNlIG1hcHBpbmcgbG9vcAorICAgICAgICB3aGlsZSAob2Zmc2V0IDwgc2l6ZSkgeworICAgICAgICAgICAgY2ggPSBVVEYxNi5jaGFyQXQoc3RyLCBvZmZzZXQpOworICAgICAgICAgICAgb2Zmc2V0ICs9IFVURjE2LmdldENoYXJDb3VudChjaCk7CisgICAgICAgICAgICBpbnQgcHJvcHMgPSBQUk9QRVJUWV8uZ2V0UHJvcGVydHkoY2gpOworICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyUHJvcGVydHkuaXNFeGNlcHRpb25JbmRpY2F0b3IocHJvcHMpKSB7CisgICAgICAgICAgICAgICAgaW50IHR5cGUgPSBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UHJvcFR5cGUocHJvcHMpOworICAgICAgICAgICAgICAgIGlmICh0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5VUFBFUkNBU0VfTEVUVEVSIHx8CisgICAgICAgICAgICAgICAgICAgIHR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5LlRJVExFQ0FTRV9MRVRURVIpIHsKKyAgICAgICAgICAgICAgICAgICAgY2ggKz0gVUNoYXJhY3RlclByb3BlcnR5LmdldFNpZ25lZFZhbHVlKHByb3BzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ICAKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGludCBpbmRleCA9IFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRFeGNlcHRpb25JbmRleChwcm9wcyk7CisgICAgICAgICAgICAgICAgaWYgKFBST1BFUlRZXy5oYXNFeGNlcHRpb25WYWx1ZShpbmRleCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyUHJvcGVydHkuRVhDX0NBU0VfRk9MRElOR18pKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBleGNlcHRpb24gPSBQUk9QRVJUWV8uZ2V0RXhjZXB0aW9uKGluZGV4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3RlclByb3BlcnR5LkVYQ19DQVNFX0ZPTERJTkdfKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZiAoZXhjZXB0aW9uICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFBST1BFUlRZXy5nZXRGb2xkQ2FzZShleGNlcHRpb24gJiBMQVNUX0NIQVJfTUFTS18sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9uID4+IFNISUZUXzI0XywgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBzcGVjaWFsIGNhc2UgZm9sZGluZyBtYXBwaW5ncywgaGFyZGNvZGVkCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2ggIT0gMHg0OSAmJiBjaCAhPSAweDEzMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiBjaCBpdHNlbGYgYmVjYXVzZSB0aGVyZSBpcyBubyBzcGVjaWFsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1hcHBpbmcgZm9yIGl0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHJlc3VsdCwgY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRlZmF1bHRtYXBwaW5nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGVmYXVsdCBtYXBwaW5ncworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaCA9PSAweDQ5KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDAwNDk7IEM7IDAwNjk7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3RlclByb3BlcnR5LkxBVElOX1NNQUxMX0xFVFRFUl9JXyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGNoID09IDB4MTMwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDAxMzA7IEY7IDAwNjkgMDMwNzsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERPVCBBQk9WRQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3RlclByb3BlcnR5LkxBVElOX1NNQUxMX0xFVFRFUl9JXyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoKGNoYXIpMHgzMDcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFR1cmtpYyBtYXBwaW5ncworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaCA9PSAweDQ5KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDAwNDk7IFQ7IDAxMzE7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKChjaGFyKTB4MTMxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGNoID09IDB4MTMwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDAxMzA7IFQ7IDAwNjk7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBET1QgQUJPVkUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJQcm9wZXJ0eS5MQVRJTl9TTUFMTF9MRVRURVJfSV8pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvLyBkbyBub3QgZmFsbCB0aHJvdWdoIHRvIHRoZSBvdXRwdXQgb2YgYworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoUFJPUEVSVFlfLmhhc0V4Y2VwdGlvblZhbHVlKGluZGV4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3RlclByb3BlcnR5LkVYQ19MT1dFUkNBU0VfKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2ggPSBQUk9QRVJUWV8uZ2V0RXhjZXB0aW9uKGluZGV4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJQcm9wZXJ0eS5FWENfTE9XRVJDQVNFXyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGhhbmRsZSAxOjEgY29kZSBwb2ludCBtYXBwaW5ncyBmcm9tIFVuaWNvZGVEYXRhLnR4dAorICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHJlc3VsdCwgY2gpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogUmV0dXJuIG51bWVyaWMgdmFsdWUgb2YgSGFuIGNvZGUgcG9pbnRzLgorICAgICogPGJyPiBUaGlzIHJldHVybnMgdGhlIHZhbHVlIG9mIEhhbiAnbnVtZXJpYycgY29kZSBwb2ludHMsCisgICAgKiBpbmNsdWRpbmcgdGhvc2UgZm9yIHplcm8sIHRlbiwgaHVuZHJlZCwgdGhvdXNhbmQsIHRlbiB0aG91c2FuZCwKKyAgICAqIGFuZCBodW5kcmVkIG1pbGxpb24uICBVbmljb2RlIGRvZXMgbm90IGNvbnNpZGVyIHRoZXNlIHRvIGJlCisgICAgKiBudW1lcmljLiBUaGlzIGluY2x1ZGVzIGJvdGggdGhlIHN0YW5kYXJkIGFuZCAnY2hlY2t3cml0aW5nJworICAgICogY2hhcmFjdGVycywgdGhlICdiaWcgY2lyY2xlJyB6ZXJvIGNoYXJhY3RlciwgYW5kIHRoZSBzdGFuZGFyZAorICAgICogemVybyBjaGFyYWN0ZXIuCisgICAgKiBAZHJhZnQKKyAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHRvIHF1ZXJ5CisgICAgKiBAcmV0dXJuIHZhbHVlIGlmIGl0IGlzIGEgSGFuICdudW1lcmljIGNoYXJhY3RlciwnIG90aGVyd2lzZSByZXR1cm4gLTEuICAKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldEhhbk51bWVyaWNWYWx1ZShpbnQgY2gpCisgICAgeworICAgICAgICBzd2l0Y2goY2gpCisgICAgICAgIHsKKyAgICAgICAgY2FzZSBJREVPR1JBUEhJQ19OVU1CRVJfWkVST18gOgorICAgICAgICBjYXNlIENKS19JREVPR1JBUEhfQ09NUExFWF9aRVJPXyA6CisgICAgICAgICAgICByZXR1cm4gMDsgLy8gSGFuIFplcm8KKyAgICAgICAgY2FzZSBDSktfSURFT0dSQVBIX0ZJUlNUXyA6CisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9DT01QTEVYX09ORV8gOgorICAgICAgICAgICAgcmV0dXJuIDE7IC8vIEhhbiBPbmUKKyAgICAgICAgY2FzZSBDSktfSURFT0dSQVBIX1NFQ09ORF8gOgorICAgICAgICBjYXNlIENKS19JREVPR1JBUEhfQ09NUExFWF9UV09fIDoKKyAgICAgICAgICAgIHJldHVybiAyOyAvLyBIYW4gVHdvCisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9USElSRF8gOgorICAgICAgICBjYXNlIENKS19JREVPR1JBUEhfQ09NUExFWF9USFJFRV8gOgorICAgICAgICAgICAgcmV0dXJuIDM7IC8vIEhhbiBUaHJlZQorICAgICAgICBjYXNlIENKS19JREVPR1JBUEhfRk9VUlRIXyA6CisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9DT01QTEVYX0ZPVVJfIDoKKyAgICAgICAgICAgIHJldHVybiA0OyAvLyBIYW4gRm91cgorICAgICAgICBjYXNlIENKS19JREVPR1JBUEhfRklGVEhfIDoKKyAgICAgICAgY2FzZSBDSktfSURFT0dSQVBIX0NPTVBMRVhfRklWRV8gOgorICAgICAgICAgICAgcmV0dXJuIDU7IC8vIEhhbiBGaXZlCisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9TSVhUSF8gOgorICAgICAgICBjYXNlIENKS19JREVPR1JBUEhfQ09NUExFWF9TSVhfIDoKKyAgICAgICAgICAgIHJldHVybiA2OyAvLyBIYW4gU2l4CisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9TRVZFTlRIXyA6CisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9DT01QTEVYX1NFVkVOXyA6CisgICAgICAgICAgICByZXR1cm4gNzsgLy8gSGFuIFNldmVuCisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9FSUdIVEhfIDogCisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9DT01QTEVYX0VJR0hUXyA6CisgICAgICAgICAgICByZXR1cm4gODsgLy8gSGFuIEVpZ2h0CisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9OSU5FVEhfIDoKKyAgICAgICAgY2FzZSBDSktfSURFT0dSQVBIX0NPTVBMRVhfTklORV8gOgorICAgICAgICAgICAgcmV0dXJuIDk7IC8vIEhhbiBOaW5lCisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9URU5fIDoKKyAgICAgICAgY2FzZSBDSktfSURFT0dSQVBIX0NPTVBMRVhfVEVOXyA6CisgICAgICAgICAgICByZXR1cm4gMTA7CisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9IVU5EUkVEXyA6CisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9DT01QTEVYX0hVTkRSRURfIDoKKyAgICAgICAgICAgIHJldHVybiAxMDA7CisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9USE9VU0FORF8gOgorICAgICAgICBjYXNlIENKS19JREVPR1JBUEhfQ09NUExFWF9USE9VU0FORF8gOgorICAgICAgICAgICAgcmV0dXJuIDEwMDA7CisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9URU5fVEhPVVNBTkRfIDoKKyAgICAgICAgICAgIHJldHVybiAxMDAwMDsKKyAgICAgICAgY2FzZSBDSktfSURFT0dSQVBIX0hVTkRSRURfTUlMTElPTl8gOgorICAgICAgICAgICAgcmV0dXJuIDEwMDAwMDAwMDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7IC8vIG5vIHZhbHVlCisgICAgfQorICAgIAorICAgIC8qKgorICAgICogPHA+R2V0cyBhbiBpdGVyYXRvciBmb3IgY2hhcmFjdGVyIHR5cGVzLCBpdGVyYXRpbmcgb3ZlciBjb2RlcG9pbnRzLjwvcD4KKyAgICAqIEV4YW1wbGUgb2YgdXNlOjxicj4KKyAgICAqIDxwcmU+CisgICAgKiBSYW5nZVZhbHVlSXRlcmF0b3IgaXRlcmF0b3IgPSBVQ2hhcmFjdGVyLmdldFR5cGVJdGVyYXRvcigpOworICAgICogUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQgZWxlbWVudCA9IG5ldyBSYW5nZVZhbHVlSXRlcmF0b3IuRWxlbWVudCgpOworICAgICogd2hpbGUgKGl0ZXJhdG9yLm5leHQoZWxlbWVudCkpIHsKKyAgICAqICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvZGVwb2ludCBcXHUiICsgCisgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoZWxlbWVudC5zdGFydCkgKyAKKyAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIiB0byBjb2RlcG9pbnQgXFx1IiArCisgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoZWxlbWVudC5saW1pdCAtIDEpICsgCisgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICIgaGFzIHRoZSBjaGFyYWN0ZXIgdHlwZSAiICsgCisgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudmFsdWUpOworICAgICogfQorICAgICogPC9wcmU+CisgICAgKiBAcmV0dXJuIGFuIGl0ZXJhdG9yIAorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHVibGljIHN0YXRpYyBSYW5nZVZhbHVlSXRlcmF0b3IgZ2V0VHlwZUl0ZXJhdG9yKCkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgVUNoYXJhY3RlclR5cGVJdGVyYXRvcihQUk9QRVJUWV8pOworICAgIH0KKworCS8qKgorICAgICogPHA+R2V0cyBhbiBpdGVyYXRvciBmb3IgY2hhcmFjdGVyIG5hbWVzLCBpdGVyYXRpbmcgb3ZlciBjb2RlcG9pbnRzLjwvcD4KKyAgICAqIDxwPlRoaXMgQVBJIG9ubHkgZ2V0cyB0aGUgaXRlcmF0b3IgZm9yIHRoZSBtb2Rlcm4sIG1vc3QgdXAtdG8tZGF0ZSAKKyAgICAqIFVuaWNvZGUgbmFtZXMuIEZvciBvbGRlciAxLjAgVW5pY29kZSBuYW1lcyB1c2UgZ2V0MV8wTmFtZUl0ZXJhdG9yKCkgb3IKKyAgICAqIGZvciBleHRlbmRlZCBuYW1lcyB1c2UgZ2V0RXh0ZW5kZWROYW1lSXRlcmF0b3IoKS48L3A+CisgICAgKiBFeGFtcGxlIG9mIHVzZTo8YnI+CisgICAgKiA8cHJlPgorICAgICogVmFsdWVJdGVyYXRvciBpdGVyYXRvciA9IFVDaGFyYWN0ZXIuZ2V0TmFtZUl0ZXJhdG9yKCk7CisgICAgKiBWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQgZWxlbWVudCA9IG5ldyBWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQoKTsKKyAgICAqIHdoaWxlIChpdGVyYXRvci5uZXh0KGVsZW1lbnQpKSB7CisgICAgKiAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb2RlcG9pbnQgXFx1IiArIAorICAgICogICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKGVsZW1lbnQuY29kZXBvaW50KSArCisgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICIgaGFzIHRoZSBuYW1lICIgKyAoU3RyaW5nKWVsZW1lbnQudmFsdWUpOworICAgICogfQorICAgICogPC9wcmU+CisgICAgKiA8cD5UaGUgbWF4aW1hbCByYW5nZSB3aGljaCB0aGUgbmFtZSBpdGVyYXRvciBpdGVyYXRlcyBpcyBmcm9tIAorICAgICogVUNoYXJhY3Rlci5NSU5fVkFMVUUgdG8gVUNoYXJhY3Rlci5NQVhfVkFMVUUuPC9wPgorICAgICogQHJldHVybiBhbiBpdGVyYXRvciAKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVmFsdWVJdGVyYXRvciBnZXROYW1lSXRlcmF0b3IoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBVQ2hhcmFjdGVyTmFtZUl0ZXJhdG9yKE5BTUVfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyTmFtZUNob2ljZS5VX1VOSUNPREVfQ0hBUl9OQU1FKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiA8cD5HZXRzIGFuIGl0ZXJhdG9yIGZvciBjaGFyYWN0ZXIgbmFtZXMsIGl0ZXJhdGluZyBvdmVyIGNvZGVwb2ludHMuPC9wPgorICAgICogPHA+VGhpcyBBUEkgb25seSBnZXRzIHRoZSBpdGVyYXRvciBmb3IgdGhlIG9sZGVyIDEuMCBVbmljb2RlIG5hbWVzLiAKKyAgICAqIEZvciBtb2Rlcm4sIG1vc3QgdXAtdG8tZGF0ZSBVbmljb2RlIG5hbWVzIHVzZSBnZXROYW1lSXRlcmF0b3IoKSBvcgorICAgICogZm9yIGV4dGVuZGVkIG5hbWVzIHVzZSBnZXRFeHRlbmRlZE5hbWVJdGVyYXRvcigpLjwvcD4KKyAgICAqIEV4YW1wbGUgb2YgdXNlOjxicj4KKyAgICAqIDxwcmU+CisgICAgKiBWYWx1ZUl0ZXJhdG9yIGl0ZXJhdG9yID0gVUNoYXJhY3Rlci5nZXQxXzBOYW1lSXRlcmF0b3IoKTsKKyAgICAqIFZhbHVlSXRlcmF0b3IuRWxlbWVudCBlbGVtZW50ID0gbmV3IFZhbHVlSXRlcmF0b3IuRWxlbWVudCgpOworICAgICogd2hpbGUgKGl0ZXJhdG9yLm5leHQoZWxlbWVudCkpIHsKKyAgICAqICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvZGVwb2ludCBcXHUiICsgCisgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoZWxlbWVudC5jb2RlcG9pbnQpICsKKyAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIiBoYXMgdGhlIG5hbWUgIiArIChTdHJpbmcpZWxlbWVudC52YWx1ZSk7CisgICAgKiB9CisgICAgKiA8L3ByZT4KKyAgICAqIDxwPlRoZSBtYXhpbWFsIHJhbmdlIHdoaWNoIHRoZSBuYW1lIGl0ZXJhdG9yIGl0ZXJhdGVzIGlzIGZyb20gCisgICAgKiBAcmV0dXJuIGFuIGl0ZXJhdG9yIAorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHVibGljIHN0YXRpYyBWYWx1ZUl0ZXJhdG9yIGdldE5hbWUxXzBJdGVyYXRvcigpCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFVDaGFyYWN0ZXJOYW1lSXRlcmF0b3IoTkFNRV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyTmFtZUNob2ljZS5VX1VOSUNPREVfMTBfQ0hBUl9OQU1FKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiA8cD5HZXRzIGFuIGl0ZXJhdG9yIGZvciBjaGFyYWN0ZXIgbmFtZXMsIGl0ZXJhdGluZyBvdmVyIGNvZGVwb2ludHMuPC9wPgorICAgICogPHA+VGhpcyBBUEkgb25seSBnZXRzIHRoZSBpdGVyYXRvciBmb3IgdGhlIGV4dGVuZGVkIG5hbWVzLiAKKyAgICAqIEZvciBtb2Rlcm4sIG1vc3QgdXAtdG8tZGF0ZSBVbmljb2RlIG5hbWVzIHVzZSBnZXROYW1lSXRlcmF0b3IoKSBvcgorICAgICogZm9yIG9sZGVyIDEuMCBVbmljb2RlIG5hbWVzIHVzZSBnZXQxXzBOYW1lSXRlcmF0b3IoKS48L3A+CisgICAgKiBFeGFtcGxlIG9mIHVzZTo8YnI+CisgICAgKiA8cHJlPgorICAgICogVmFsdWVJdGVyYXRvciBpdGVyYXRvciA9IFVDaGFyYWN0ZXIuZ2V0RXh0ZW5kZWROYW1lSXRlcmF0b3IoKTsKKyAgICAqIFZhbHVlSXRlcmF0b3IuRWxlbWVudCBlbGVtZW50ID0gbmV3IFZhbHVlSXRlcmF0b3IuRWxlbWVudCgpOworICAgICogd2hpbGUgKGl0ZXJhdG9yLm5leHQoZWxlbWVudCkpIHsKKyAgICAqICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvZGVwb2ludCBcXHUiICsgCisgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoZWxlbWVudC5jb2RlcG9pbnQpICsKKyAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIiBoYXMgdGhlIG5hbWUgIiArIChTdHJpbmcpZWxlbWVudC52YWx1ZSk7CisgICAgKiB9CisgICAgKiA8L3ByZT4KKyAgICAqIDxwPlRoZSBtYXhpbWFsIHJhbmdlIHdoaWNoIHRoZSBuYW1lIGl0ZXJhdG9yIGl0ZXJhdGVzIGlzIGZyb20gCisgICAgKiBAcmV0dXJuIGFuIGl0ZXJhdG9yIAorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHVibGljIHN0YXRpYyBWYWx1ZUl0ZXJhdG9yIGdldEV4dGVuZGVkTmFtZUl0ZXJhdG9yKCkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgVUNoYXJhY3Rlck5hbWVJdGVyYXRvcihOQU1FXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLlVfRVhURU5ERURfQ0hBUl9OQU1FKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHA+R2V0IHRoZSAiYWdlIiBvZiB0aGUgY29kZSBwb2ludC48L3A+CisgICAgICogPHA+VGhlICJhZ2UiIGlzIHRoZSBVbmljb2RlIHZlcnNpb24gd2hlbiB0aGUgY29kZSBwb2ludCB3YXMgZmlyc3QKKyAgICAgKiBkZXNpZ25hdGVkIChhcyBhIG5vbi1jaGFyYWN0ZXIgb3IgZm9yIFByaXZhdGUgVXNlKSBvciBhc3NpZ25lZCBhIAorICAgICAqIGNoYXJhY3Rlci4KKyAgICAgKiA8cD5UaGlzIGNhbiBiZSB1c2VmdWwgdG8gYXZvaWQgZW1pdHRpbmcgY29kZSBwb2ludHMgdG8gcmVjZWl2aW5nIAorICAgICAqIHByb2Nlc3NlcyB0aGF0IGRvIG5vdCBhY2NlcHQgbmV3ZXIgY2hhcmFjdGVycy48L3A+CisgICAgICogPHA+VGhlIGRhdGEgaXMgZnJvbSB0aGUgVUNEIGZpbGUgRGVyaXZlZEFnZS50eHQuPC9wPgorICAgICAqIEBwYXJhbSBjaCBUaGUgY29kZSBwb2ludC4KKyAgICAgKiBAcmV0dXJuIHRoZSBVbmljb2RlIHZlcnNpb24gbnVtYmVyCisgICAgICogQGRyYWZ0IElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFZlcnNpb25JbmZvIGdldEFnZShpbnQgY2gpIAorICAgIHsKKyAgICAJaWYgKGNoIDwgTUlOX1ZBTFVFIHx8IGNoID4gTUFYX1ZBTFVFKSB7CisgICAgCQl0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJDb2RlcG9pbnQgb3V0IG9mIGJvdW5kcyIpOworICAgIAl9CisgICAgCXJldHVybiBQUk9QRVJUWV8uZ2V0QWdlKGNoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisJICogPHA+Q2hlY2sgYSBiaW5hcnkgVW5pY29kZSBwcm9wZXJ0eSBmb3IgYSBjb2RlIHBvaW50LjwvcD4gCisJICogPHA+VW5pY29kZSwgZXNwZWNpYWxseSBpbiB2ZXJzaW9uIDMuMiwgZGVmaW5lcyBtYW55IG1vcmUgcHJvcGVydGllcyAKKwkgKiB0aGFuIHRoZSBvcmlnaW5hbCBzZXQgaW4gVW5pY29kZURhdGEudHh0LjwvcD4KKwkgKiA8cD5UaGlzIEFQSSBpcyBpbnRlbmRlZCB0byByZWZsZWN0IFVuaWNvZGUgcHJvcGVydGllcyBhcyBkZWZpbmVkIGluIAorCSAqIHRoZSBVbmljb2RlIENoYXJhY3RlciBEYXRhYmFzZSAoVUNEKSBhbmQgVW5pY29kZSBUZWNobmljYWwgUmVwb3J0cyAKKwkgKiAoVVRSKS48L3A+CisJICogPHA+Rm9yIGRldGFpbHMgYWJvdXQgdGhlIHByb3BlcnRpZXMgc2VlIAorCSAqIDxhIGhyZWY9aHR0cDovL3d3dy51bmljb2RlLm9yZy8+aHR0cDovL3d3dy51bmljb2RlLm9yZy88L2E+LjwvcD4KKwkgKiA8cD5Gb3IgbmFtZXMgb2YgVW5pY29kZSBwcm9wZXJ0aWVzIHNlZSB0aGUgVUNEIGZpbGUgCisJICogUHJvcGVydHlBbGlhc2VzLnR4dC48L3A+CisJICogPHA+VGhpcyBBUEkgZG9lcyBub3QgY2hlY2sgdGhlIHZhbGlkaXR5IG9mIHRoZSBjb2RlcG9pbnQuPC9wPgorCSAqIDxwPkltcG9ydGFudDogSWYgSUNVIGlzIGJ1aWx0IHdpdGggVUNEIGZpbGVzIGZyb20gVW5pY29kZSB2ZXJzaW9ucyAKKwkgKiBiZWxvdyAzLjIsIHRoZW4gcHJvcGVydGllcyBtYXJrZWQgd2l0aCAibmV3IiBhcmUgbm90IG9yIAorCSAqIG5vdCBmdWxseSBhdmFpbGFibGUuPC9wPgorCSAqIEBwYXJhbSBjb2RlcG9pbnQgQ29kZSBwb2ludCB0byB0ZXN0LgorCSAqIEBwYXJhbSBwcm9wZXJ0eSBzZWxlY3RvciBjb25zdGFudCBmcm9tIGNvbS5pYm0uaWN1LmxhbmcuVVByb3BlcnR5LCAKKwkgKiAgICAgICAgaWRlbnRpZmllcyB3aGljaCBiaW5hcnkgcHJvcGVydHkgdG8gY2hlY2suCisJICogQHJldHVybiB0cnVlIG9yIGZhbHNlIGFjY29yZGluZyB0byB0aGUgYmluYXJ5IFVuaWNvZGUgcHJvcGVydHkgdmFsdWUgCisJICogICAgICAgICBmb3IgY2guIEFsc28gZmFsc2UgaWYgcHJvcGVydHkgaXMgb3V0IG9mIGJvdW5kcyBvciBpZiB0aGUgCisJICogICAgICAgICBVbmljb2RlIHZlcnNpb24gZG9lcyBub3QgaGF2ZSBkYXRhIGZvciB0aGUgcHJvcGVydHkgYXQgYWxsLCBvciAKKwkgKiAgICAgICAgIG5vdCBmb3IgdGhpcyBjb2RlIHBvaW50LgorCSAqIEBzZWUgY29tLmlibS5pY3UubGFuZy5VUHJvcGVydHkKKwkgKiBAZHJhZnQgSUNVIDIuMQorCSAqLworCXB1YmxpYyBzdGF0aWMgYm9vbGVhbiBoYXNCaW5hcnlQcm9wZXJ0eShpbnQgY2gsIGludCBwcm9wZXJ0eSkgCisJeworCQlpZiAoY2ggPCBNSU5fVkFMVUUgfHwgY2ggPiBNQVhfVkFMVUUpIHsKKyAgICAJCXRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNvZGVwb2ludCBvdXQgb2YgYm91bmRzIik7CisgICAgCX0KKyAgICAJcmV0dXJuIFBST1BFUlRZXy5oYXNCaW5hcnlQcm9wZXJ0eShjaCwgcHJvcGVydHkpOworCX0KKwkKKwkvKioKKwkgKiA8cD5DaGVjayBpZiBhIGNvZGUgcG9pbnQgaGFzIHRoZSBBbHBoYWJldGljIFVuaWNvZGUgcHJvcGVydHkuPC9wPiAKKwkgKiA8cD5TYW1lIGFzIFVDaGFyYWN0ZXIuaGFzQmluYXJ5UHJvcGVydHkoY2gsIFVQcm9wZXJ0eS5BTFBIQUJFVElDKS48L3A+CisJICogPHA+RGlmZmVyZW50IGZyb20gVUNoYXJhY3Rlci5pc0xldHRlcihjaCkhPC9wPiAKKwkgKiBAZHJhZnQgSUNVIDIuMQorCSAqIEBwYXJhbSBjaCBjb2RlcG9pbnQgdG8gYmUgdGVzdGVkCisJICovCisJcHVibGljIHN0YXRpYyBib29sZWFuIGlzVUFscGhhYmV0aWMoaW50IGNoKQorCXsKKwkJcmV0dXJuIGhhc0JpbmFyeVByb3BlcnR5KGNoLCBVUHJvcGVydHkuQUxQSEFCRVRJQyk7CisJfQorCisJLyoqCisJICogPHA+Q2hlY2sgaWYgYSBjb2RlIHBvaW50IGhhcyB0aGUgTG93ZXJjYXNlIFVuaWNvZGUgcHJvcGVydHkuPC9wPgorCSAqIDxwPlNhbWUgYXMgVUNoYXJhY3Rlci5oYXNCaW5hcnlQcm9wZXJ0eShjaCwgVVByb3BlcnR5LkxPV0VSQ0FTRSkuPC9wPgorCSAqIDxwPlRoaXMgaXMgZGlmZmVyZW50IGZyb20gVUNoYXJhY3Rlci5pc0xvd2VyQ2FzZShjaCkhPC9wPgorCSAqIEBwYXJhbSBjaCBjb2RlcG9pbnQgdG8gYmUgdGVzdGVkCisJICogQGRyYWZ0IElDVSAyLjEKKwkgKi8KKwlwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNVTG93ZXJjYXNlKGludCBjaCkgCisJeworCQlyZXR1cm4gaGFzQmluYXJ5UHJvcGVydHkoY2gsIFVQcm9wZXJ0eS5MT1dFUkNBU0UpOworCX0KKworCS8qKgorCSAqIDxwPkNoZWNrIGlmIGEgY29kZSBwb2ludCBoYXMgdGhlIFVwcGVyY2FzZSBVbmljb2RlIHByb3BlcnR5LjwvcD4KKwkgKiA8cD5TYW1lIGFzIFVDaGFyYWN0ZXIuaGFzQmluYXJ5UHJvcGVydHkoY2gsIFVQcm9wZXJ0eS5VUFBFUkNBU0UpLjwvcD4KKwkgKiA8cD5UaGlzIGlzIGRpZmZlcmVudCBmcm9tIFVDaGFyYWN0ZXIuaXNVcHBlckNhc2UoY2gpITwvcD4KKwkgKiBAcGFyYW0gY2ggY29kZXBvaW50IHRvIGJlIHRlc3RlZAorCSAqIEBkcmFmdCBJQ1UgMi4xCisJICovCisJcHVibGljIHN0YXRpYyBib29sZWFuIGlzVVVwcGVyY2FzZShpbnQgY2gpIAorCXsKKwkJcmV0dXJuIGhhc0JpbmFyeVByb3BlcnR5KGNoLCBVUHJvcGVydHkuVVBQRVJDQVNFKTsKKwl9CisKKwkvKioKKwkgKiA8cD5DaGVjayBpZiBhIGNvZGUgcG9pbnQgaGFzIHRoZSBXaGl0ZV9TcGFjZSBVbmljb2RlIHByb3BlcnR5LjwvcD4KKwkgKiA8cD5TYW1lIGFzIFVDaGFyYWN0ZXIuaGFzQmluYXJ5UHJvcGVydHkoY2gsIFVQcm9wZXJ0eS5XSElURV9TUEFDRSkuPC9wPgorCSAqIDxwPlRoaXMgaXMgZGlmZmVyZW50IGZyb20gYm90aCBVQ2hhcmFjdGVyLmlzU3BhY2UoY2gpIGFuZCAKKwkgKiBVQ2hhcmFjdGVyLmlzV2hpdGVzcGFjZShjaCkhPC9wPgorCSAqIEBwYXJhbSBjaCBjb2RlcG9pbnQgdG8gYmUgdGVzdGVkCisJICogQGRyYWZ0IElDVSAyLjEKKwkgKi8KKwlwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNVV2hpdGVTcGFjZShpbnQgY2gpIAorCXsKKwkJcmV0dXJuIGhhc0JpbmFyeVByb3BlcnR5KGNoLCBVUHJvcGVydHkuV0hJVEVfU1BBQ0UpOworCX0KKworICAgIC8vIHByb3RlY3RlZCBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAqIERhdGFiYXNlIHN0b3JpbmcgdGhlIHNldHMgb2YgY2hhcmFjdGVyIG5hbWUKKyAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgVUNoYXJhY3Rlck5hbWUgTkFNRV87CisgICAgICAKKyAgICAvLyBibG9jayB0byBpbml0aWFsaXNlIG5hbWUgZGF0YWJhc2UgYW5kIHVuaWNvZGUgMS4wIGRhdGEgCisgICAgc3RhdGljCisgICAgeworICAgICAgICB0cnkKKyAgICAgICAgeworICAgICAgICAgICAgTkFNRV8gPSBuZXcgVUNoYXJhY3Rlck5hbWUoKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBwcm90ZWN0ZWQgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAKKyAgICAvKioKKyAgICAqIERldGVybWluZXMgaWYgY29kZXBvaW50IGlzIGEgbm9uIGNoYXJhY3RlcgorICAgICogQHBhcmFtIGNoIGNvZGVwb2ludAorICAgICogQHJldHVybiB0cnVlIGlmIGNvZGVwb2ludCBpcyBhIG5vbiBjaGFyYWN0ZXIgZmFsc2Ugb3RoZXJ3aXNlCisgICAgKi8KKyAgICBzdGF0aWMgYm9vbGVhbiBpc05vbkNoYXJhY3RlcihpbnQgY2gpIAorICAgIHsKKyAgICAgICAgaWYgKChjaCAmIE5PTl9DSEFSQUNURVJfU1VGRklYX01JTl8zXzBfKSA9PSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTk9OX0NIQVJBQ1RFUl9TVUZGSVhfTUlOXzNfMF8pIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gY2ggPj0gTk9OX0NIQVJBQ1RFUl9NSU5fM18xXyAmJiBjaCA8PSAgTk9OX0NIQVJBQ1RFUl9NQVhfM18xXzsKKyAgICB9CisgICAgICAgIAorICAgIC8vIHByaXZhdGUgdmFyaWFibGVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAqIERhdGFiYXNlIHN0b3JpbmcgdGhlIHNldHMgb2YgY2hhcmFjdGVyIHByb3BlcnR5CisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBVQ2hhcmFjdGVyUHJvcGVydHkgUFJPUEVSVFlfOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorCS8vIGJsb2NrIHRvIGluaXRpYWxpc2UgY2hhcmFjdGVyIHByb3BlcnR5IGRhdGFiYXNlCisgICAgc3RhdGljCisgICAgeworICAgICAgICB0cnkKKyAgICAgICAgeworICAgICAgICAgICAgUFJPUEVSVFlfID0gVUNoYXJhY3RlclByb3BlcnR5LmdldEluc3RhbmNlKCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKQorICAgICAgICB7CisgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgCisgICAgLyoqCisgICAgKiBUbyBnZXQgdGhlIGxhc3QgY2hhcmFjdGVyIG91dCBmcm9tIGEgZGF0YSB0eXBlCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEFTVF9DSEFSX01BU0tfID0gMHhGRkZGOworICAgICAgCisgICAgLyoqCisgICAgKiBUbyBnZXQgdGhlIGxhc3QgYnl0ZSBvdXQgZnJvbSBhIGRhdGEgdHlwZQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExBU1RfQllURV9NQVNLXyA9IDB4RkY7CisgICAgICAKKyAgICAvKioKKyAgICAqIFNoaWZ0IDE2IGJpdHMKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTSElGVF8xNl8gPSAxNjsKKyAgICAgIAorICAgIC8qKgorICAgICogU2hpZnQgMjQgYml0cworICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNISUZUXzI0XyA9IDI0OworICAgICAgCisgICAgLyoqCisgICAgKiBNaW5pbXVtIHN1ZmZpeCB2YWx1ZSB0aGF0IGluZGljYXRlcyBpZiBhIGNoYXJhY3RlciBpcyBub24gY2hhcmFjdGVyLgorICAgICogVW5pY29kZSAzLjAgbm9uIGNoYXJhY3RlcnMKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOT05fQ0hBUkFDVEVSX1NVRkZJWF9NSU5fM18wXyA9IDB4RkZGRTsKKyAgICAKKyAgICAvKioKKyAgICAqIE5ldyBtaW5pbXVtIG5vbiBjaGFyYWN0ZXIgaW4gVW5pY29kZSAzLjEKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOT05fQ0hBUkFDVEVSX01JTl8zXzFfID0gMHhGREQwOworICAgIAorICAgIC8qKgorICAgICogTmV3IG5vbiBjaGFyYWN0ZXIgcmFuZ2UgaW4gVW5pY29kZSAzLjEKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOT05fQ0hBUkFDVEVSX01BWF8zXzFfID0gMHhGREVGOworICAgICAgCisgICAgLyoqCisgICAgKiBEZWNpbWFsIHJhZGl4CisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVDSU1BTF9SQURJWF8gPSAxMDsKKyAgICAgIAorICAgIC8qKgorICAgICogTm8gYnJlYWsgc3BhY2UgY29kZSBwb2ludAorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5PX0JSRUFLX1NQQUNFXyA9IDB4QTA7CisgICAgICAKKyAgICAvKioKKyAgICAqIE5hcnJvdyBubyBicmVhayBzcGFjZSBjb2RlIHBvaW50CisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTkFSUk9XX05PX0JSRUFLX1NQQUNFXyA9IDB4MjAyRjsKKyAgICAgIAorICAgIC8qKgorICAgICogWmVybyB3aWR0aCBubyBicmVhayBzcGFjZSBjb2RlIHBvaW50CisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgWkVST19XSURUSF9OT19CUkVBS19TUEFDRV8gPSAweEZFRkY7CisgICAgICAKKyAgICAvKioKKyAgICAqIElkZW9ncmFwaGljIG51bWJlciB6ZXJvIGNvZGUgcG9pbnQKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJREVPR1JBUEhJQ19OVU1CRVJfWkVST18gPSAweDMwMDc7CisgICAgICAgICAgICAKKyAgICAvKioKKyAgICAqIENKSyBJZGVvZ3JhcGgsIEZpcnN0IGNvZGUgcG9pbnQKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX0ZJUlNUXyA9IDB4NGUwMDsKKyAgICAgIAorICAgIC8qKgorICAgICogQ0pLIElkZW9ncmFwaCwgU2Vjb25kIGNvZGUgcG9pbnQKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX1NFQ09ORF8gPSAweDRlOGM7CisgICAgICAgICAgICAKKyAgICAvKioKKyAgICAqIENKSyBJZGVvZ3JhcGgsIFRoaXJkIGNvZGUgcG9pbnQKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX1RISVJEXyA9IDB4NGUwOTsKKyAgICAgIAorICAgIC8qKgorICAgICogQ0pLIElkZW9ncmFwaCwgRm91cnRoIGNvZGUgcG9pbnQKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX0ZPVVJUSF8gPSAweDU2ZDg7CisgICAgICAKKyAgICAvKioKKyAgICAqIENKSyBJZGVvZ3JhcGgsIEZJRlRIIGNvZGUgcG9pbnQKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX0ZJRlRIXyA9IDB4NGU5NDsKKyAgICAgIAorICAgIC8qKgorICAgICogQ0pLIElkZW9ncmFwaCwgU2l4dGggY29kZSBwb2ludAorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19JREVPR1JBUEhfU0lYVEhfID0gMHg1MTZkOworICAgICAgICAgICAgCisgICAgLyoqCisgICAgKiBDSksgSWRlb2dyYXBoLCBTZXZlbnRoIGNvZGUgcG9pbnQKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX1NFVkVOVEhfID0gMHg0ZTAzOworICAgICAgCisgICAgLyoqCisgICAgKiBDSksgSWRlb2dyYXBoLCBFaWdodGggY29kZSBwb2ludAorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19JREVPR1JBUEhfRUlHSFRIXyA9IDB4NTE2YjsKKyAgICAgIAorICAgIC8qKgorICAgICogQ0pLIElkZW9ncmFwaCwgTmluZXRoIGNvZGUgcG9pbnQKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX05JTkVUSF8gPSAweDRlNWQ7CisgICAgICAKKyAgICAvKioKKyAgICAqIEFwcGxpY2F0aW9uIFByb2dyYW0gY29tbWFuZCBjb2RlIHBvaW50CisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQVBQTElDQVRJT05fUFJPR1JBTV9DT01NQU5EXyA9IDB4MDA5RjsKKyAgICAgIAorICAgIC8qKgorICAgICogVW5pdCBzZXBhcmF0b3IgY29kZSBwb2ludAorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVOSVRfU0VQQVJBVE9SXyA9IDB4MDAxRjsKKyAgICAgIAorICAgIC8qKgorICAgICogRGVsZXRlIGNvZGUgcG9pbnQKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBERUxFVEVfID0gMHgwMDdGOworICAgICAgCisgICAgLyoqCisgICAgKiBJU08gY29udHJvbCBjaGFyYWN0ZXIgZmlyc3QgcmFuZ2UgdXBwZXIgbGltaXQgMHgwIC0gMHgxRgorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElTT19DT05UUk9MX0ZJUlNUX1JBTkdFX01BWF8gPSAweDFGOworICAgIAorICAgIC8qKgorICAgICogSGFuIGRpZ2l0IGNoYXJhY3RlcnMKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX0NPTVBMRVhfWkVST18gICAgID0gMHg5NmY2OyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0lERU9HUkFQSF9DT01QTEVYX09ORV8gICAgICA9IDB4NThmOTsgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19JREVPR1JBUEhfQ09NUExFWF9UV09fICAgICAgPSAweDhjYjM7ICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX0NPTVBMRVhfVEhSRUVfICAgID0gMHg1M2MzOyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0lERU9HUkFQSF9DT01QTEVYX0ZPVVJfICAgICA9IDB4ODA4NjsgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19JREVPR1JBUEhfQ09NUExFWF9GSVZFXyAgICAgPSAweDRmMGQ7ICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX0NPTVBMRVhfU0lYXyAgICAgID0gMHg5Njc4OyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0lERU9HUkFQSF9DT01QTEVYX1NFVkVOXyAgICA9IDB4NjdkMjsgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19JREVPR1JBUEhfQ09NUExFWF9FSUdIVF8gICAgPSAweDYzNGM7ICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX0NPTVBMRVhfTklORV8gICAgID0gMHg3Mzk2OyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0lERU9HUkFQSF9URU5fICAgICAgICAgICAgICA9IDB4NTM0MTsgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19JREVPR1JBUEhfQ09NUExFWF9URU5fICAgICAgPSAweDYyZmU7ICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX0hVTkRSRURfICAgICAgICAgID0gMHg3NjdlOyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0lERU9HUkFQSF9DT01QTEVYX0hVTkRSRURfICA9IDB4NGY3MDsgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19JREVPR1JBUEhfVEhPVVNBTkRfICAgICAgICAgPSAweDUzNDM7ICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX0NPTVBMRVhfVEhPVVNBTkRfID0gMHg0ZWRmOyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0lERU9HUkFQSF9URU5fVEhPVVNBTkRfICAgICA9IDB4ODI0YzsgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19JREVPR1JBUEhfSFVORFJFRF9NSUxMSU9OXyAgPSAweDUxMDQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAvLyBwcml2YXRlIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAKKyAgICAvKioKKyAgICAqIFByaXZhdGUgY29uc3RydWN0b3IgdG8gcHJldmVudCBpbnN0YW50aWF0aW9uCisgICAgKi8KKyAgICBwcml2YXRlIFVDaGFyYWN0ZXIoKQorICAgIHsKKyAgICB9CisgICAgICAKKyAgICAvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIGNvcnJlY3QgcHJvcGVydHkgaW5mb3JtYXRpb24gZnJvbSBVQ2hhcmFjdGVyUHJvcGVydHkKKyAgICAqIEBwYXJhbSBjaCBjaGFyYWN0ZXIgd2hvc2UgaW5mb3JtYXRpb24gaXMgdG8gYmUgcmV0cmlldmVkCisgICAgKiBAcmV0dXJuIGEgMzIgYml0IGluZm9ybWF0aW9uLCByZXR1cm5zIDAgaWYgbm8gZGF0YSBpcyBmb3VuZC4KKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBnZXRQcm9wcyhpbnQgY2gpCisgICAgeworICAgICAgICBpZiAoY2ggPj0gTUlOX1ZBTFVFICYgY2ggPD0gTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICByZXR1cm4gUFJPUEVSVFlfLmdldFByb3BlcnR5KGNoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGdldEV1cm9wZWFuRGlnaXQoaW50IGNoKSB7CisgICAgICAgIGlmIChjaCA8PSAweDdhKSB7CisgICAgICAgICAgICBpZiAoY2ggPj0gMHg0MSAmJiBjaCA8PSAweDVhKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNoICsgMTAgLSAweDQxOworICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA+PSAweDYxKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNoICsgMTAgLSAweDYxOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKGNoID49IDB4ZmYyMSkgeworICAgICAgICAgICAgaWYgKGNoIDw9IDB4ZmYzYSkgeworICAgICAgICAgICAgICAgIHJldHVybiBjaCArIDEwIC0gMHhmZjIxOworICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA+PSAweGZmNDEgJiYgY2ggPD0gMHhmZjVhKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNoICsgMTAgLSAweGZmNDE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZ2V0TnVtZXJpY1ZhbHVlSW50ZXJuYWwoaW50IGNoLCBib29sZWFuIHVzZUV1cm9wZWFuKQorICAgIHsKKyAgICAgICAgaW50IHByb3BzICAgICAgID0gZ2V0UHJvcHMoY2gpOworICAgICAgICBpbnQgbnVtZXJpY1R5cGUgPSBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0TnVtZXJpY1R5cGUocHJvcHMpOworICAgICAgICAKKyAgICAgICAgaW50IHJlc3VsdCA9IC0xOworICAgICAgICBpZiAobnVtZXJpY1R5cGUgPT0gVUNoYXJhY3RlclByb3BlcnR5Lk5PTl9ESUdJVF9OVU1FUklDX1RZUEVfKSB7CisgICAgICAgICAgICByZXN1bHQgPSAtMjsKKyAgICAgICAgfQorICAgICAgICBpZiAobnVtZXJpY1R5cGUgIT0gVUNoYXJhY3RlclByb3BlcnR5Lk5PTl9OVU1FUklDX1RZUEVfKSB7CisgICAgICAgIAkvLyBpZiBwcm9wcyA9PSAwLCBpdCB3aWxsIGp1c3QgZmFsbCB0aHJvdWdoIGFuZCByZXR1cm4gLTEKKyAgICAgICAgCWlmICghVUNoYXJhY3RlclByb3BlcnR5LmlzRXhjZXB0aW9uSW5kaWNhdG9yKHByb3BzKSkgeworICAgICAgICAgICAgCS8vIG5vdCBjb250YWluZWQgaW4gZXhjZXB0aW9uIGRhdGEKKyAgICAgICAgICAgIAlyZXR1cm4gVUNoYXJhY3RlclByb3BlcnR5LmdldFNpZ25lZFZhbHVlKHByb3BzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorCQkJaW50IGluZGV4ID0gVUNoYXJhY3RlclByb3BlcnR5LmdldEV4Y2VwdGlvbkluZGV4KHByb3BzKTsKKyAgICAgICAgICAgCWlmICghUFJPUEVSVFlfLmhhc0V4Y2VwdGlvblZhbHVlKGluZGV4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyUHJvcGVydHkuRVhDX0RFTk9NSU5BVE9SX1ZBTFVFXykgJiYgCisgICAgICAgICAgICAgICAgUFJPUEVSVFlfLmhhc0V4Y2VwdGlvblZhbHVlKGluZGV4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3RlclByb3BlcnR5LkVYQ19OVU1FUklDX1ZBTFVFXykpIHsKKyAgICAgICAgICAgICAgIAlyZXR1cm4gUFJPUEVSVFlfLmdldEV4Y2VwdGlvbihpbmRleCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3RlclByb3BlcnR5LkVYQ19OVU1FUklDX1ZBTFVFXyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChyZXN1bHQgPCAwICYmIHVzZUV1cm9wZWFuKSB7CisgICAgICAgICAgICBpbnQgZXVyb3BlYW5udW1lcmljID0gZ2V0RXVyb3BlYW5EaWdpdChjaCk7CisgICAgICAgICAgICBpZiAoZXVyb3BlYW5udW1lcmljID49IDApIHsKKyAgICAgICAgICAgIAlyZXR1cm4gZXVyb3BlYW5udW1lcmljOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2xhbmcvVUNoYXJhY3RlckNhdGVnb3J5LmphdmEgYi9zcmMvY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyQ2F0ZWdvcnkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iYzM0NDUzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2xhbmcvVUNoYXJhY3RlckNhdGVnb3J5LmphdmEKQEAgLTAsMCArMSwzMDkgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAkU291cmNlOiAKKyogICAgICAvdXNyL2N2cy9pY3U0ai9pY3U0ai9zcmMvY29tL2libS9pY3UvdGV4dC9VQ2hhcmFjdGVyQ2F0ZWdvcnkuamF2YSAkIAorKiAkRGF0ZTogMjAwMi8wNy8xMSAyMToyNToyNCAkIAorKiAkUmV2aXNpb246IDEuNyAkCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1Lmxhbmc7CisKKy8qKgorKiBFbnVtZXJhdGVkIFVuaWNvZGUgY2F0ZWdvcnkgdHlwZXMgZnJvbSB0aGUgVW5pY29kZURhdGEudHh0IGZpbGUuCisqIFVzZWQgYXMgcmV0dXJuIHJlc3VsdHMgZnJvbSA8YSBocmVmPVVDaGFyYWN0ZXIuaHRtbD5VQ2hhcmFjdGVyPC9hPgorKiBFcXVpdmFsZW50IHRvIGljdSdzIFVDaGFyQ2F0ZWdvcnkuCisqIFJlZmVyIHRvIDxhIGhyZWY9aHR0cDovL3d3dy51bmljb2RlLm9yZy9QdWJsaWMvVU5JREFUQS9Vbmljb2RlRGF0YS5odG1sPgorKiBVbmljb2RlIENvbnNvcnRpdW08L2E+IGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IFVuaWNvZGVEYXRhLnR4dC4KKyogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyogQHNpbmNlIG9jdDAzMDAKKyovCisKK3B1YmxpYyBjbGFzcyBVQ2hhcmFjdGVyQ2F0ZWdvcnkKK3sKKyAgLy8gcHVibGljIHZhcmlhYmxlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIAorICAvKioKKyAgKiBVbmFzc2lnbmVkIGNoYXJhY3RlciB0eXBlCisgICovCisgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVOQVNTSUdORUQgICAgICAgICAgICAgID0gMDsgCisgIC8qKgorICAqIENoYXJhY3RlciB0eXBlIENuCisgICogTm90IEFzc2lnbmVkIChubyBjaGFyYWN0ZXJzIGluIFtVbmljb2RlRGF0YS50eHRdIGhhdmUgdGhpcyBwcm9wZXJ0eSkgCisgICogQGRyYWZ0IDIuMQorICAqLworICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBHRU5FUkFMX09USEVSX1RZUEVTICAgICA9IDA7CisgIC8qKgorICAqIENoYXJhY3RlciB0eXBlIEx1CisgICovCisgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVQUEVSQ0FTRV9MRVRURVIgICAgICAgID0gMTsKKyAgLyoqCisgICogQ2hhcmFjdGVyIHR5cGUgTGwKKyAgKi8KKwlwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMT1dFUkNBU0VfTEVUVEVSICAgICAgICA9IDI7CisJLyoqCisgICogQ2hhcmFjdGVyIHR5cGUgTHQKKyAgKi8KKwlwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUSVRMRUNBU0VfTEVUVEVSICAgICAgICA9IDM7CisJLyoqCisgICogQ2hhcmFjdGVyIHR5cGUgTG0KKyAgKi8KKwlwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNT0RJRklFUl9MRVRURVIgICAgICAgICA9IDQ7CisJLyoqCisgICogQ2hhcmFjdGVyIHR5cGUgTG8KKyAgKi8KKwlwdWJsaWMgc3RhdGljIGZpbmFsIGludCBPVEhFUl9MRVRURVIgICAgICAgICAgICA9IDU7CisJLyoqCisgICogQ2hhcmFjdGVyIHR5cGUgTW4KKyAgKi8KKwlwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOT05fU1BBQ0lOR19NQVJLICAgICAgICA9IDY7CisJLyoqCisgICogQ2hhcmFjdGVyIHR5cGUgTWUKKyAgKi8KKwlwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFTkNMT1NJTkdfTUFSSyAgICAgICAgICA9IDc7CisJLyoqCisgICogQ2hhcmFjdGVyIHR5cGUgTWMKKyAgKi8KKwlwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT01CSU5JTkdfU1BBQ0lOR19NQVJLICA9IDg7CisJLyoqCisgICogQ2hhcmFjdGVyIHR5cGUgTmQKKyAgKi8KKwlwdWJsaWMgc3RhdGljIGZpbmFsIGludCBERUNJTUFMX0RJR0lUX05VTUJFUiAgICA9IDk7CisJLyoqCisgICogQ2hhcmFjdGVyIHR5cGUgTmwKKyAgKi8KKwlwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRVRURVJfTlVNQkVSICAgICAgICAgICA9IDEwOworCQorCS8vIHN0YXJ0IG9mIDExLS0tLS0tLS0tLS0tCisJCisJLyoqCisgICogQ2hhcmFjdGVyIHR5cGUgTm8KKyAgKi8KKwlwdWJsaWMgc3RhdGljIGZpbmFsIGludCBPVEhFUl9OVU1CRVIgICAgICAgICAgICA9IDExOworCS8qKgorICAqIENoYXJhY3RlciB0eXBlIFpzCisgICovCisJcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1BBQ0VfU0VQQVJBVE9SICAgICAgICAgPSAxMjsKKwkvKioKKyAgKiBDaGFyYWN0ZXIgdHlwZSBabAorICAqLworCXB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExJTkVfU0VQQVJBVE9SICAgICAgICAgID0gMTM7CisJLyoqCisgICogQ2hhcmFjdGVyIHR5cGUgWnAKKyAgKi8KKwlwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQQVJBR1JBUEhfU0VQQVJBVE9SICAgICA9IDE0OworCS8qKgorICAqIENoYXJhY3RlciB0eXBlIENjCisgICovCisJcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OVFJPTCAgICAgICAgICAgICAgICAgPSAxNTsKKwkvKioKKyAgKiBDaGFyYWN0ZXIgdHlwZSBDZgorICAqLworCXB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZPUk1BVCAgICAgICAgICAgICAgICAgID0gMTY7CisJLyoqCisgICogQ2hhcmFjdGVyIHR5cGUgQ28KKyAgKi8KKwlwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQUklWQVRFX1VTRSAgICAgICAgICAgICA9IDE3OworCS8qKgorICAqIENoYXJhY3RlciB0eXBlIENzCisgICovCisJcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1VSUk9HQVRFICAgICAgICAgICAgICAgPSAxODsKKwkvKioKKyAgKiBDaGFyYWN0ZXIgdHlwZSBQZAorICAqLworCXB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERBU0hfUFVOQ1RVQVRJT04gICAgICAgID0gMTk7CisJLyoqCisgICogQ2hhcmFjdGVyIHR5cGUgUHMKKyAgKi8KKwlwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTVEFSVF9QVU5DVFVBVElPTiAgICAgICA9IDIwOworCQorCS8vIHN0YXJ0IG9mIDIxIC0tLS0tLS0tLS0tLQorCisJLyoqCisgICogQ2hhcmFjdGVyIHR5cGUgUGUKKyAgKi8KKwlwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFTkRfUFVOQ1RVQVRJT04gICAgICAgICA9IDIxOworCS8qKgorICAqIENoYXJhY3RlciB0eXBlIFBjCisgICovCisJcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OTkVDVE9SX1BVTkNUVUFUSU9OICAgPSAyMjsKKwkvKioKKyAgKiBDaGFyYWN0ZXIgdHlwZSBQbworICAqLworCXB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE9USEVSX1BVTkNUVUFUSU9OICAgICAgID0gMjM7CisJLyoqCisgICogQ2hhcmFjdGVyIHR5cGUgU20KKyAgKi8KKwlwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNQVRIX1NZTUJPTCAgICAgICAgICAgICA9IDI0OworCS8qKgorICAqIENoYXJhY3RlciB0eXBlIFNjCisgICovCisJcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ1VSUkVOQ1lfU1lNQk9MICAgICAgICAgPSAyNTsKKwkvKioKKyAgKiBDaGFyYWN0ZXIgdHlwZSBTaworICAqLworCXB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1PRElGSUVSX1NZTUJPTCAgICAgICAgID0gMjY7CisJLyoqCisgICogQ2hhcmFjdGVyIHR5cGUgU28KKyAgKi8KKwlwdWJsaWMgc3RhdGljIGZpbmFsIGludCBPVEhFUl9TWU1CT0wgICAgICAgICAgICA9IDI3OworCS8qKgorICAqIENoYXJhY3RlciB0eXBlIFBpCisgICovCisJcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSU5JVElBTF9QVU5DVFVBVElPTiAgICAgPSAyODsKKwkvKioKKyAgKiBDaGFyYWN0ZXIgdHlwZSBQZgorICAqLworCXB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZJTkFMX1BVTkNUVUFUSU9OICAgICAgID0gMjk7CisJCisJLy8gc3RhcnQgb2YgMzEgLS0tLS0tLS0tLS0tCisKKwkvKioKKyAgKiBDaGFyYWN0ZXIgdHlwZSBjb3VudAorICAqLworCXB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENIQVJfQ0FURUdPUllfQ09VTlQgICAgID0gMzA7CisJCisJLyoqCisJKiBHZXRzIHRoZSBuYW1lIG9mIHRoZSBhcmd1bWVudCBjYXRlZ29yeQorCSogQHBhcmFtIGNhdGVnb3J5IHRvIHJldHJpZXZlIG5hbWUKKwkqIEByZXR1cm4gY2F0ZWdvcnkgbmFtZQorCSovCisJcHVibGljIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoaW50IGNhdGVnb3J5KQorCXsKKwkgIHN3aXRjaCAoY2F0ZWdvcnkpCisJICB7CisJICAgIGNhc2UgVVBQRVJDQVNFX0xFVFRFUiA6CisJICAgICAgcmV0dXJuICJMZXR0ZXIsIFVwcGVyY2FzZSI7CisJICAgIGNhc2UgTE9XRVJDQVNFX0xFVFRFUiA6CisJICAgICAgcmV0dXJuICJMZXR0ZXIsIExvd2VyY2FzZSI7CisJICAgIGNhc2UgVElUTEVDQVNFX0xFVFRFUiA6CisJICAgICAgcmV0dXJuICJMZXR0ZXIsIFRpdGxlY2FzZSI7CisJICAgIGNhc2UgTU9ESUZJRVJfTEVUVEVSIDoKKwkgICAgICByZXR1cm4gIkxldHRlciwgTW9kaWZpZXIiOworCSAgICBjYXNlIE9USEVSX0xFVFRFUiA6CisJICAgICAgcmV0dXJuICJMZXR0ZXIsIE90aGVyIjsKKwkgICAgY2FzZSBOT05fU1BBQ0lOR19NQVJLIDoKKwkgICAgICByZXR1cm4gIk1hcmssIE5vbi1TcGFjaW5nIjsKKwkgICAgY2FzZSBFTkNMT1NJTkdfTUFSSyA6IAorCSAgICAgIHJldHVybiAiTWFyaywgRW5jbG9zaW5nIjsKKwkgICAgY2FzZSBDT01CSU5JTkdfU1BBQ0lOR19NQVJLIDoKKwkgICAgICByZXR1cm4gIk1hcmssIFNwYWNpbmcgQ29tYmluaW5nIjsKKwkgICAgY2FzZSBERUNJTUFMX0RJR0lUX05VTUJFUiA6CisJICAgICAgcmV0dXJuICJOdW1iZXIsIERlY2ltYWwgRGlnaXQiOworCSAgICBjYXNlIExFVFRFUl9OVU1CRVIgOgorCSAgICAgIHJldHVybiAiTnVtYmVyLCBMZXR0ZXIiOworCSAgICBjYXNlIE9USEVSX05VTUJFUiA6CisJICAgICAgcmV0dXJuICJOdW1iZXIsIE90aGVyIjsKKwkgICAgY2FzZSBTUEFDRV9TRVBBUkFUT1IgOgorCSAgICAgIHJldHVybiAiU2VwYXJhdG9yLCBTcGFjZSI7CisJICAgIGNhc2UgTElORV9TRVBBUkFUT1IgOgorCSAgICAgIHJldHVybiAiU2VwYXJhdG9yLCBMaW5lIjsKKwkgICAgY2FzZSBQQVJBR1JBUEhfU0VQQVJBVE9SIDoKKwkgICAgICByZXR1cm4gIlNlcGFyYXRvciwgUGFyYWdyYXBoIjsKKwkgICAgY2FzZSBDT05UUk9MIDoKKwkgICAgICByZXR1cm4gIk90aGVyLCBDb250cm9sIjsKKwkgICAgY2FzZSBGT1JNQVQgOgorCSAgICAgIHJldHVybiAiT3RoZXIsIEZvcm1hdCI7CisJICAgIGNhc2UgUFJJVkFURV9VU0UgOgorCSAgICAgIHJldHVybiAiT3RoZXIsIFByaXZhdGUgVXNlIjsKKwkgICAgY2FzZSBTVVJST0dBVEUgOgorCSAgICAgIHJldHVybiAiT3RoZXIsIFN1cnJvZ2F0ZSI7CisJICAgIGNhc2UgREFTSF9QVU5DVFVBVElPTiA6CisJICAgICAgcmV0dXJuICJQdW5jdHVhdGlvbiwgRGFzaCI7CisJICAgIGNhc2UgU1RBUlRfUFVOQ1RVQVRJT04gOgorCSAgICAgIHJldHVybiAiUHVuY3R1YXRpb24sIE9wZW4iOworCSAgICBjYXNlIEVORF9QVU5DVFVBVElPTiA6CisJICAgICAgcmV0dXJuICJQdW5jdHVhdGlvbiwgQ2xvc2UiOworCSAgICBjYXNlIENPTk5FQ1RPUl9QVU5DVFVBVElPTiA6CisJICAgICAgcmV0dXJuICJQdW5jdHVhdGlvbiwgQ29ubmVjdG9yIjsKKwkgICAgY2FzZSBPVEhFUl9QVU5DVFVBVElPTiA6CisJICAgICAgcmV0dXJuICJQdW5jdHVhdGlvbiwgT3RoZXIiOworCSAgICBjYXNlIE1BVEhfU1lNQk9MIDoKKwkgICAgICByZXR1cm4gIlN5bWJvbCwgTWF0aCI7CisJICAgIGNhc2UgQ1VSUkVOQ1lfU1lNQk9MIDoKKwkgICAgICByZXR1cm4gIlN5bWJvbCwgQ3VycmVuY3kiOworCSAgICBjYXNlIE1PRElGSUVSX1NZTUJPTCA6CisJICAgICAgcmV0dXJuICJTeW1ib2wsIE1vZGlmaWVyIjsKKwkgICAgY2FzZSBPVEhFUl9TWU1CT0wgOgorCSAgICAgIHJldHVybiAiU3ltYm9sLCBPdGhlciI7CisJICAgIGNhc2UgSU5JVElBTF9QVU5DVFVBVElPTiA6CisJICAgICAgcmV0dXJuICJQdW5jdHVhdGlvbiwgSW5pdGlhbCBxdW90ZSI7CisJICAgIGNhc2UgRklOQUxfUFVOQ1RVQVRJT04gOgorCSAgICAgIHJldHVybiAiUHVuY3R1YXRpb24sIEZpbmFsIHF1b3RlIjsKKwkgIH0KKwkgIHJldHVybiAiVW5hc3NpZ25lZCI7CisJfQorCQorCS8vIHByaXZhdGUgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgCisgICAgLyoqCisgICAgKiBQcml2YXRlIGNvbnN0cnVjdG9yIHRvIHByZXZlbnQgaW5pdGlhbGlzYXRpb24KKyAgICAqLworICAgIHByaXZhdGUgVUNoYXJhY3RlckNhdGVnb3J5KCkKKyAgICB7CisgICAgfQorICAgIAorCS8vIHBhY2thZ2UgcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwkKKwkvKioKKwkqIE5vdCBhIGNoYXJhY3RlciB0eXBlCisJKi8KKwlzdGF0aWMgZmluYWwgaW50IE5PTl9DSEFSQUNURVJfID0gQ0hBUl9DQVRFR09SWV9DT1VOVDsKKwkvKioKKwkqIExlYWQgc3Vycm9nYXRlIHR5cGUKKwkqLworCXN0YXRpYyBmaW5hbCBpbnQgTEVBRF9TVVJST0dBVEVfID0gQ0hBUl9DQVRFR09SWV9DT1VOVCArIDE7CisgICAgLyoqCisJKiBUcmFpbCBzdXJyb2dhdGUgdHlwZQorCSovCisJc3RhdGljIGZpbmFsIGludCBUUkFJTF9TVVJST0dBVEVfID0gQ0hBUl9DQVRFR09SWV9DT1VOVCArIDI7CisJLyoqCisJKiBFeHRlbmRlZCBjYXRlZ29yeSBjb3VudAorCSovCisJc3RhdGljIGZpbmFsIGludCBFWFRFTkRFRF9DQVRFR09SWV8gPSBDSEFSX0NBVEVHT1JZX0NPVU5UICsgMzsKKwkvKioKKyAgICAqIFR5cGUgbmFtZXMgdXNlZCBmb3IgZXh0ZW5kZWQgbmFtZXMKKyAgICAqLworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgVFlQRV9OQU1FU19bXSA9IHsidW5hc3NpZ25lZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVwcGVyY2FzZSBsZXR0ZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsb3dlcmNhc2UgbGV0dGVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGl0bGVjYXNlIGxldHRlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1vZGlmaWVyIGxldHRlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm90aGVyIGxldHRlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5vbiBzcGFjaW5nIG1hcmsiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJlbmNsb3NpbmcgbWFyayIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbWJpbmluZyBzcGFjaW5nIG1hcmsiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZWNpbWFsIGRpZ2l0IG51bWJlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxldHRlciBudW1iZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvdGhlciBudW1iZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzcGFjZSBzZXBhcmF0b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsaW5lIHNlcGFyYXRvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBhcmFncmFwaCBzZXBhcmF0b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb250cm9sIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm9ybWF0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJpdmF0ZSB1c2UgYXJlYSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1cnJvZ2F0ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRhc2ggcHVuY3R1YXRpb24iLCAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGFydCBwdW5jdHVhdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImVuZCBwdW5jdHVhdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbm5lY3RvciBwdW5jdHVhdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm90aGVyIHB1bmN0dWF0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWF0aCBzeW1ib2wiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjdXJyZW5jeSBzeW1ib2wiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb2RpZmllciBzeW1ib2wiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvdGhlciBzeW1ib2wiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbml0aWFsIHB1bmN0dWF0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmluYWwgcHVuY3R1YXRpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJub25jaGFyYWN0ZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsZWFkIHN1cnJvZ2F0ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRyYWlsIHN1cnJvZ2F0ZSJ9OworICAgLyoqCisgICAqIFVua25vd24gdHlwZSBuYW1lCisgICAqLworICAgc3RhdGljIGZpbmFsIFN0cmluZyBVTktOT1dOX1RZUEVfTkFNRV8gPSAidW5rbm93biI7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyRGlyZWN0aW9uLmphdmEgYi9zcmMvY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyRGlyZWN0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWIxMDQ0NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VDaGFyYWN0ZXJEaXJlY3Rpb24uamF2YQpAQCAtMCwwICsxLDE3MSBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICRTb3VyY2U6IAorKiAgICAgL3Vzci9jdnMvaWN1NGovaWN1NGovc3JjL2NvbS9pYm0vaWN1L3RleHQvVUNoYXJhY3RlckRpcmVjdGlvbi5qYXZhICQgCisqICREYXRlOiAyMDAyLzAyLzI4IDIzOjQyOjA0ICQgCisqICRSZXZpc2lvbjogMS40ICQKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UubGFuZzsKKworLyoqCisqIEVudW1lcmF0ZWQgVW5pY29kZSBjaGFyYWN0ZXIgbGluZ3Vpc3RpYyBkaXJlY3Rpb24gY29uc3RhbnRzLgorKiBVc2VkIGFzIHJldHVybiByZXN1bHRzIGZyb20gPGEgaHJlZj1VQ2hhcmFjdGVyLmh0bWw+VUNoYXJhY3RlcjwvYT4KKyogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyogQHNpbmNlIG9jdDAzMDAKKyovCisKK3B1YmxpYyBmaW5hbCBjbGFzcyBVQ2hhcmFjdGVyRGlyZWN0aW9uCit7CisgIC8vIHByaXZhdGUgY29uc3RydWN0b3IgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgCisgIC8qKgorICAqIFByaXZhdGUgY29uc3RydWN0b3IgdG8gcHJldmVudCBpbml0aWFsaXNhdGlvbgorICAqLworICBwcml2YXRlIFVDaGFyYWN0ZXJEaXJlY3Rpb24oKQorICB7CisgIH0KKyAgCisgIC8vIHB1YmxpYyB2YXJpYWJsZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgCisgIC8qKgorICAqIERpcmVjdGlvbmFsIHR5cGUgTAorICAqLworICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRUZUX1RPX1JJR0hUICAgICAgICAgICAgICA9IDA7CisgIC8qKgorICAqIERpcmVjdGlvbmFsIHR5cGUgUgorICAqLworCXB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJJR0hUX1RPX0xFRlQgICAgICAgICAgICAgID0gMTsKKwkvKioKKyAgKiBEaXJlY3Rpb25hbCB0eXBlIEVOCisgICovCisJcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVVST1BFQU5fTlVNQkVSICAgICAgICAgICAgPSAyOworCS8qKgorICAqIERpcmVjdGlvbmFsIHR5cGUgRVMKKyAgKi8KKwlwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFVVJPUEVBTl9OVU1CRVJfU0VQQVJBVE9SICA9IDM7CisJLyoqCisgICogRGlyZWN0aW9uYWwgdHlwZSBFVAorICAqLworCXB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVVUk9QRUFOX05VTUJFUl9URVJNSU5BVE9SID0gNDsKKyAgLyoqCisgICogRGlyZWN0aW9uYWwgdHlwZSBBTgorICAqLwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorCXB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFSQUJJQ19OVU1CRVIgICAgICAgICAgICAgID0gNTsKKwkvKioKKyAgKiBEaXJlY3Rpb25hbCB0eXBlIENTCisgICovCisJcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09NTU9OX05VTUJFUl9TRVBBUkFUT1IgICAgPSA2OworCS8qKgorICAqIERpcmVjdGlvbmFsIHR5cGUgQgorICAqLworCXB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJMT0NLX1NFUEFSQVRPUiAgICAgICAgICAgID0gNzsKKwkvKioKKyAgKiBEaXJlY3Rpb25hbCB0eXBlIFMKKyAgKi8gICAgICAKKwlwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTRUdNRU5UX1NFUEFSQVRPUiAgICAgICAgICA9IDg7CisJLyoqCisgICogRGlyZWN0aW9uYWwgdHlwZSBXUworICAqLworCXB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFdISVRFX1NQQUNFX05FVVRSQUwgICAgICAgID0gOTsKKwkKKwkvLyBzdGFydCBvZiAxMSAtLS0tLS0tLS0tLS0tLS0KKwkKKwkvKioKKyAgKiBEaXJlY3Rpb25hbCB0eXBlIE9OCisgICovCisJcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgT1RIRVJfTkVVVFJBTCAgICAgICAgICAgICAgPSAxMDsKKwkvKioKKyAgKiBEaXJlY3Rpb25hbCB0eXBlIExSRQorICAqLworCXB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFRlRfVE9fUklHSFRfRU1CRURESU5HICAgID0gMTE7CisJLyoqCisgICogRGlyZWN0aW9uYWwgdHlwZSBMUk8KKyAgKi8KKwlwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRUZUX1RPX1JJR0hUX09WRVJSSURFICAgICA9IDEyOyAgCisgIC8qKgorICAqIERpcmVjdGlvbmFsIHR5cGUgQUwKKyAgKi8KKwlwdWJsaWMgc3RhdGljIGZpbmFsIGludCBSSUdIVF9UT19MRUZUX0FSQUJJQyAgICAgICA9IDEzOworCS8qKgorICAqIERpcmVjdGlvbmFsIHR5cGUgUkxFCisgICovCisJcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUklHSFRfVE9fTEVGVF9FTUJFRERJTkcgICAgPSAxNDsKKwkvKioKKyAgKiBEaXJlY3Rpb25hbCB0eXBlIFJMTworICAqLworCXB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJJR0hUX1RPX0xFRlRfT1ZFUlJJREUgICAgID0gMTU7CisJLyoqCisgICogRGlyZWN0aW9uYWwgdHlwZSBQREYKKyAgKi8KKwlwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQT1BfRElSRUNUSU9OQUxfRk9STUFUICAgICA9IDE2OworCS8qKgorICAqIERpcmVjdGlvbmFsIHR5cGUgTlNNCisgICovCisJcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRElSX05PTl9TUEFDSU5HX01BUksgICAgICAgPSAxNzsKKwkvKioKKyAgKiBEaXJlY3Rpb25hbCB0eXBlIEJOCisgICovCisJcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQk9VTkRBUllfTkVVVFJBTCAgICAgICAgICAgPSAxODsKKwkvKioKKyAgKiBOdW1iZXIgb2YgZGlyZWN0aW9uYWwgdHlwZQorICAqLworCXB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENIQVJfRElSRUNUSU9OX0NPVU5UICAgICAgID0gMTk7CisJCisJLyoqCisJKiBHZXRzIHRoZSBuYW1lIG9mIHRoZSBhcmd1bWVudCBkaXJlY3Rpb24KKwkqIEBwYXJhbSBkaXIgZGlyZWN0aW9uIHR5cGUgdG8gcmV0cmlldmUgbmFtZQorCSogQHJldHVybiBkaXJlY3Rpb25hbCBuYW1lCisJKi8KKwlwdWJsaWMgc3RhdGljIFN0cmluZyB0b1N0cmluZyhpbnQgZGlyKQorCXsKKwkgIHN3aXRjaChkaXIpCisJICB7CisJICAgIGNhc2UgTEVGVF9UT19SSUdIVCA6CisJICAgICAgcmV0dXJuICJMZWZ0LXRvLVJpZ2h0IjsKKwkgICAgY2FzZSBSSUdIVF9UT19MRUZUIDoKKwkgICAgICByZXR1cm4gIlJpZ2h0LXRvLUxlZnQiOworCSAgICBjYXNlIEVVUk9QRUFOX05VTUJFUiA6CisJICAgICAgcmV0dXJuICJFdXJvcGVhbiBOdW1iZXIiOworCSAgICBjYXNlIEVVUk9QRUFOX05VTUJFUl9TRVBBUkFUT1IgOgorCSAgICAgIHJldHVybiAiRXVyb3BlYW4gTnVtYmVyIFNlcGFyYXRvciI7CisJICAgIGNhc2UgRVVST1BFQU5fTlVNQkVSX1RFUk1JTkFUT1IgOgorCSAgICAgIHJldHVybiAiRXVyb3BlYW4gTnVtYmVyIFRlcm1pbmF0b3IiOworCSAgICBjYXNlIEFSQUJJQ19OVU1CRVIgOgorCSAgICAgIHJldHVybiAiQXJhYmljIE51bWJlciI7CisJICAgIGNhc2UgQ09NTU9OX05VTUJFUl9TRVBBUkFUT1IgOgorCSAgICAgIHJldHVybiAiQ29tbW9uIE51bWJlciBTZXBhcmF0b3IiOworCSAgICBjYXNlIEJMT0NLX1NFUEFSQVRPUiA6CisJICAgICAgcmV0dXJuICJQYXJhZ3JhcGggU2VwYXJhdG9yIjsKKwkgICAgY2FzZSBTRUdNRU5UX1NFUEFSQVRPUiA6CisJICAgICAgcmV0dXJuICJTZWdtZW50IFNlcGFyYXRvciI7CisJICAgIGNhc2UgV0hJVEVfU1BBQ0VfTkVVVFJBTCA6CisJICAgICAgcmV0dXJuICJXaGl0ZXNwYWNlIjsKKwkgICAgY2FzZSBPVEhFUl9ORVVUUkFMIDoKKwkgICAgICByZXR1cm4gIk90aGVyIE5ldXRyYWxzIjsKKwkgICAgY2FzZSBMRUZUX1RPX1JJR0hUX0VNQkVERElORyA6CisJICAgICAgcmV0dXJuICJMZWZ0LXRvLVJpZ2h0IEVtYmVkZGluZyI7CisJICAgIGNhc2UgTEVGVF9UT19SSUdIVF9PVkVSUklERSA6CisJICAgICAgcmV0dXJuICJMZWZ0LXRvLVJpZ2h0IE92ZXJyaWRlIjsKKwkgICAgY2FzZSBSSUdIVF9UT19MRUZUX0FSQUJJQyA6CisJICAgICAgcmV0dXJuICJSaWdodC10by1MZWZ0IEFyYWJpYyI7CisJICAgIGNhc2UgUklHSFRfVE9fTEVGVF9FTUJFRERJTkcgOgorCSAgICAgIHJldHVybiAiUmlnaHQtdG8tTGVmdCBFbWJlZGRpbmciOworCSAgICBjYXNlIFJJR0hUX1RPX0xFRlRfT1ZFUlJJREUgOgorCSAgICAgIHJldHVybiAiUmlnaHQtdG8tTGVmdCBPdmVycmlkZSI7CisJICAgIGNhc2UgUE9QX0RJUkVDVElPTkFMX0ZPUk1BVCA6CisJICAgICAgcmV0dXJuICJQb3AgRGlyZWN0aW9uYWwgRm9ybWF0IjsKKwkgICAgY2FzZSBESVJfTk9OX1NQQUNJTkdfTUFSSyA6CisJICAgICAgcmV0dXJuICJOb24tU3BhY2luZyBNYXJrIjsKKwkgICAgY2FzZSBCT1VOREFSWV9ORVVUUkFMIDoKKwkgICAgICByZXR1cm4gIkJvdW5kYXJ5IE5ldXRyYWwiOworCSAgfQorCSAgcmV0dXJuICJVbmFzc2lnbmVkIjsKKwl9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyTmFtZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2xhbmcvVUNoYXJhY3Rlck5hbWUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yMDhjNjI0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2xhbmcvVUNoYXJhY3Rlck5hbWUuamF2YQpAQCAtMCwwICsxLDExODEgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAkU291cmNlOiAKKyogICAgIC91c3IvY3ZzL2ljdTRqL2ljdTRqL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VDaGFyYWN0ZXJOYW1lLmphdmEgJCAKKyogJERhdGU6IDIwMDIvMDcvMzAgMDI6Mzg6MTEgJCAKKyogJFJldmlzaW9uOiAxLjE3ICQKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1Lmxhbmc7CisKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworCisvKioKKyogSW50ZXJuYWwgY2xhc3MgdG8gbWFuYWdlIGNoYXJhY3RlciBuYW1lcy4KKyogU2luY2UgZGF0YSBpbiA8YSBocmVmPVVDaGFyYWN0ZXJOYW1lREIuaHRtbD5VQ2hhcmFjdGVyTmFtZURCPC9hPiBpcyBzdG9yZWQKKyogaW4gYW4gYXJyYXkgb2YgY2hhciwgYnkgZGVmYXVsdCBpbmRleGVzIHVzZWQgaW4gdGhpcyBjbGFzcyBpcyByZWZlcmluZyB0byAKKyogYSAyIGJ5dGUgY291bnQsIHVubGVzcyBvdGhlcndpc2Ugc3RhdGVkLiBDYXNlcyB3aGVyZSB0aGUgaW5kZXggaXMgcmVmZXJpbmcgCisqIHRvIGEgYnl0ZSBjb3VudCwgdGhlIGluZGV4IGlzIGhhbHZlZCBhbmQgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIGluZGV4IGlzIAorKiBldmVuIG9yIG9kZCwgdGhlIE1TQiBvciBMU0Igb2YgdGhlIHJlc3VsdCBjaGFyIGF0IHRoZSBoYWx2ZWQgaW5kZXggaXMgCisqIHJldHVybmVkLiBGb3IgaW5kZXhlcyB0byBhbiBhcnJheSBvZiBpbnQsIHRoZSBpbmRleCBpcyBtdWx0aXBsaWVkIGJ5IDIsIAorKiByZXN1bHQgY2hhciBhdCB0aGUgbXVsdGlwbGllZCBpbmRleCBhbmQgaXRzIGZvbGxvd2luZyBjaGFyIGlzIHJldHVybmVkIGFzIGFuIAorKiBpbnQuCisqIDxhIGhyZWY9VUNoYXJhY3Rlci5odG1sPlVDaGFyYWN0ZXI8L2E+IGFjdHMgYXMgYSBwdWJsaWMgZmFjYWRlIGZvciB0aGlzIGNsYXNzCisqIE5vdGUgOiAwIC0gMHgxRiBhcmUgY29udHJvbCBjaGFyYWN0ZXJzIHdpdGhvdXQgbmFtZXMgaW4gVW5pY29kZSAzLjAKKyogSW5mb3JtYXRpb24gb24gcGFyc2luZyBvZiB0aGUgYmluYXJ5IGRhdGEgaXMgbG9jYXRlZCBhdAorKiA8YSBocmVmPW9zcy5zb2Z0d2FyZS5pYm0uY29tL2ljdTRqL2ljdTRqaHRtbC9jb20vaWJtL2ljdS90ZXh0L3JlYWRtZS5odG1sPgorKiBSZWFkTWU8L2E+CisqIEBhdXRob3IgU3luIFdlZSBRdWVrCisqIEBzaW5jZSBub3YwNzAwCisqLworCitmaW5hbCBjbGFzcyBVQ2hhcmFjdGVyTmFtZQoreworICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAqIHRvU3RyaW5nIG1ldGhvZCBmb3IgcHJpbnRpbmcKKyAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKQorICAgIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoIm5hbWVzIGNvbnRlbnQgXG4iKTsKKyAgICAgICAgLypyZXN1bHQuYXBwZW5kKHN1cGVyLnRvU3RyaW5nKCkpOworICAgICAgICByZXN1bHQuYXBwZW5kKCdcbicpOworICAgICAgICByZXN1bHQuYXBwZW5kKCJ0b2tlbiBzdHJpbmcgb2Zmc2V0ICIpOworICAgICAgICByZXN1bHQuYXBwZW5kKG1fdG9rZW5zdHJpbmdvZmZzZXRfKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgiXG4iKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgiZ3JvdXAgb2Zmc2V0ICIpOworICAgICAgICByZXN1bHQuYXBwZW5kKG1fZ3JvdXBzb2Zmc2V0Xyk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoIlxuIik7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoImdyb3VwIHN0cmluZyBvZmZzZXQgIik7CisgICAgICAgIHJlc3VsdC5hcHBlbmQobV9ncm91cHN0cmluZ29mZnNldF8pOworICAgICAgICByZXN1bHQuYXBwZW5kKCJcbiIpOworICAgICAgICByZXN1bHQuYXBwZW5kKCJhbGcgbmFtZXMgb2Zmc2V0ICIpOworICAgICAgICByZXN1bHQuYXBwZW5kKG1fYWxnbmFtZXNvZmZzZXRfKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgiXG4iKTsKKyAgICAgICAgKi8KKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0gCisgICAgCisgICAgLy8gcGFja2FnZSBwcm90ZWN0ZWQgaW5uZXIgY2xhc3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICogQWxnb3JpdGhtaWMgbmFtZSBjbGFzcworICAgICovCisgICAgc3RhdGljIGZpbmFsIGNsYXNzIEFsZ29yaXRobU5hbWUKKyAgICB7CisgICAgICAgIC8vIHByb3RlY3RlZCBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICogQ29uc3RhbnQgdHlwZSB2YWx1ZSBvZiB0aGUgZGlmZmVyZW50IEFsZ29yaXRobU5hbWUKKyAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgVFlQRV8wXyA9IDA7CisgICAgICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IFRZUEVfMV8gPSAxOworICAgICAgICAKKyAgICAgICAgLy8gcHJvdGVjdGVkIGNvbnN0cnVjdG9ycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgKiBDb25zdHJ1Y3RvcgorICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgQWxnb3JpdGhtTmFtZSgpCisgICAgICAgIHsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gcHJvdGVjdGVkIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgKiBTZXRzIHRoZSBpbmZvcm1hdGlvbiBmb3IgYWNjZXNzaW5nIHRoZSBhbGdvcml0aG1pYyBuYW1lcworICAgICAgICAqIEBwYXJhbSByYW5nZXN0YXJ0IHN0YXJ0aW5nIGNvZGUgcG9pbnQgdGhhdCBsaWVzIHdpdGhpbiB0aGlzIG5hbWUgZ3JvdXAKKyAgICAgICAgKiBAcGFyYW0gcmFuZ2VlbmQgZW5kIGNvZGUgcG9pbnQgdGhhdCBsaWVzIHdpdGhpbiB0aGlzIG5hbWUgZ3JvdXAKKyAgICAgICAgKiBAcGFyYW0gdHlwZSBhbGdvcml0aG0gdHlwZS4gVGhlcmUncyAyIGtpbmRzIG9mIGFsZ29yaXRobWljIHR5cGUuIEZpcnN0IAorICAgICAgICAqICAgICAgICB3aGljaCB1c2VzIGNvZGUgcG9pbnQgYXMgcGFydCBvZiBpdHMgbmFtZSBhbmQgdGhlIG90aGVyIHVzZXMgCisgICAgICAgICogICAgICAgIHZhcmlhbnQgcG9zdGZpeCBzdHJpbmdzCisgICAgICAgICogQHBhcmFtIHZhcmlhbnQgYWxnb3JpdGhtaWMgdmFyaWFudAorICAgICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB2YWx1ZXMgYXJlIHZhbGlkCisgICAgICAgICovIAorICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiBzZXRJbmZvKGludCByYW5nZXN0YXJ0LCBpbnQgcmFuZ2VlbmQsIGJ5dGUgdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZSB2YXJpYW50KQorICAgICAgICB7CisgICAgICAgICAgICBpZiAocmFuZ2VzdGFydCA+PSBVQ2hhcmFjdGVyLk1JTl9WQUxVRSAmJiByYW5nZXN0YXJ0IDw9IHJhbmdlZW5kIAorICAgICAgICAgICAgICAgICYmIHJhbmdlZW5kIDw9IFVDaGFyYWN0ZXIuTUFYX1ZBTFVFICYmIAorICAgICAgICAgICAgICAgICh0eXBlID09IFRZUEVfMF8gfHwgdHlwZSA9PSBUWVBFXzFfKSkgeworICAgICAgICAgICAgICAgIG1fcmFuZ2VzdGFydF8gPSByYW5nZXN0YXJ0OworICAgICAgICAgICAgICAgIG1fcmFuZ2VlbmRfID0gcmFuZ2VlbmQ7CisgICAgICAgICAgICAgICAgbV90eXBlXyA9IHR5cGU7CisgICAgICAgICAgICAgICAgbV92YXJpYW50XyA9IHZhcmlhbnQ7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAqIFNldHMgdGhlIGZhY3RvciBkYXRhCisgICAgICAgICogQHBhcmFtIGFycmF5IG9mIGZhY3RvcgorICAgICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBmYWN0b3JzIGFyZSB2YWxpZAorICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiBzZXRGYWN0b3IoY2hhciBmYWN0b3JbXSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGZhY3Rvci5sZW5ndGggPT0gbV92YXJpYW50XykgeworICAgICAgICAgICAgICAgIG1fZmFjdG9yXyA9IGZhY3RvcjsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICogU2V0cyB0aGUgbmFtZSBwcmVmaXgKKyAgICAgICAgKiBAcGFyYW0gcHJlZml4CisgICAgICAgICogQHJldHVybiB0cnVlIGlmIHByZWZpeCBpcyBzZXQKKyAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gc2V0UHJlZml4KFN0cmluZyBwcmVmaXgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChwcmVmaXggIT0gbnVsbCAmJiBwcmVmaXgubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgbV9wcmVmaXhfID0gcHJlZml4OworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgKiBTZXRzIHRoZSB2YXJpYW50IGZhY3Rvcml6ZWQgbmFtZSBkYXRhIAorICAgICAgICAqIEBwYXJhbSBzdHJpbmcgdmFyaWFudCBmYWN0b3JpemVkIG5hbWUgZGF0YQorICAgICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB2YWx1ZXMgYXJlIHNldAorICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiBzZXRGYWN0b3JTdHJpbmcoYnl0ZSBzdHJpbmdbXSkKKyAgICAgICAgeworICAgICAgICAgICAgLy8gZmFjdG9yIGFuZCB2YXJpYW50IHN0cmluZyBjYW4gYmUgZW1wdHkgZm9yIHRoaW5ncyBsaWtlIAorICAgICAgICAgICAgLy8gaGFuZ2d1bCBjb2RlIHBvaW50cworICAgICAgICAgICAgbV9mYWN0b3JzdHJpbmdfID0gc3RyaW5nOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgKiBDaGVja3MgaWYgY29kZSBwb2ludCBsaWVzIGluIEFsZ29yaXRobSBvYmplY3QgYXQgaW5kZXgKKyAgICAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCAKKyAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gY29udGFpbnMoaW50IGNoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbV9yYW5nZXN0YXJ0XyA8PSBjaCAmJiBjaCA8PSBtX3JhbmdlZW5kXzsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICogQXBwZW5kcyBhbGdvcml0aG0gbmFtZSBvZiBjb2RlIHBvaW50IGludG8gU3RyaW5nQnVmZmVyLgorICAgICAgICAqIE5vdGUgdGhpcyBtZXRob2QgZG9lcyBub3QgY2hlY2sgZm9yIHZhbGlkaXR5IG9mIGNvZGUgcG9pbnQgaW4gQWxnb3JpdGhtLAorICAgICAgICAqIHJlc3VsdCBpcyB1bmRlZmluZWQgaWYgY29kZSBwb2ludCBkb2VzIG5vdCBiZWxvbmcgaW4gQWxnb3JpdGhtLgorICAgICAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50CisgICAgICAgICogQHBhcmFtIHN0ciBTdHJpbmdCdWZmZXIgdG8gYXBwZW5kIHRvCisgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCB2b2lkIGFwcGVuZE5hbWUoaW50IGNoLCBTdHJpbmdCdWZmZXIgc3RyKQorICAgICAgICB7CisgICAgICAgICAgICBzdHIuYXBwZW5kKG1fcHJlZml4Xyk7CisgICAgICAgICAgICBzd2l0Y2ggKG1fdHlwZV8pIAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNhc2UgVFlQRV8wXzogCisgICAgICAgICAgICAgICAgICAgIC8vIHByZWZpeCBmb2xsb3dlZCBieSBoZXggZGlnaXRzIGluZGljYXRpbmcgdmFyaWFudHMKKyAgICAgICAgICAgICAgICAgICAgVXRpbGl0eS5oZXgoY2gsIG1fdmFyaWFudF8sIHN0cik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgVFlQRV8xXzogCisgICAgICAgICAgICAgICAgICAgIC8vIHByZWZpeCBmb2xsb3dlZCBieSBmYWN0b3JpemVkLWVsZW1lbnRzCisgICAgICAgICAgICAgICAgICAgIGludCBvZmZzZXQgPSBjaCAtIG1fcmFuZ2VzdGFydF87CisgICAgICAgICAgICAgICAgICAgIGludCBpbmRleGVzW10gPSBuZXcgaW50W21fdmFyaWFudF9dOworICAgICAgICAgICAgICAgICAgICBpbnQgZmFjdG9yOworICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvLyB3cml0ZSBlbGVtZW50cyBhY2NvcmRpbmcgdG8gdGhlIGZhY3RvcnMKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGZhY3Rvcml6ZWQgZWxlbWVudHMgYXJlIGRldGVybWluZWQgYnkgbW9kdWxvIAorICAgICAgICAgICAgICAgICAgICAvLyBhcml0aG1ldGljCisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSBtX3ZhcmlhbnRfIC0gMTsgaSA+IDA7IGkgLS0pIAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBmYWN0b3IgPSBtX2ZhY3Rvcl9baV0gJiAweDAwRkY7CisgICAgICAgICAgICAgICAgICAgICAgICBpbmRleGVzW2ldID0gb2Zmc2V0ICUgZmFjdG9yOworICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0IC89IGZhY3RvcjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvLyB3ZSBkb24ndCBuZWVkIHRvIGNhbGN1bGF0ZSB0aGUgbGFzdCBtb2R1bHVzIGJlY2F1c2UgCisgICAgICAgICAgICAgICAgICAgIC8vIHN0YXJ0IDw9IGNvZGUgPD0gZW5kIGd1YXJhbnRlZXMgaGVyZSB0aGF0IAorICAgICAgICAgICAgICAgICAgICAvLyBjb2RlIDw9IGZhY3RvcnNbMF0KKyAgICAgICAgICAgICAgICAgICAgaW5kZXhlc1swXSA9IG9mZnNldDsKKworICAgICAgICAgICAgICAgICAgICAvLyBqb2luaW5nIHVwIHRoZSBmYWN0b3JpemVkIHN0cmluZ3MgCisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzW10gPSBnZXRGYWN0b3JTdHJpbmcoaW5kZXhlcyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChzICE9IG51bGwgJiYgcy5sZW5ndGggPiAwKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2l6ZSA9IHMubGVuZ3RoOworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpICsrKQorICAgICAgICAgICAgICAgICAgICAgICAgc3RyLmFwcGVuZChzW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICogR2V0cyB0aGUgY2hhcmFjdGVyIGZvciB0aGUgYXJndW1lbnQgYWxnb3JpdGhtaWMgbmFtZQorICAgICAgICAqIEByZXR1cm4gdGhlIGFsZ29yaXRobWljIGNoYXIgb3IgLTEgb3RoZXJ3aXNlLgorICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgaW50IGdldEFsZ29yaXRobUNoYXIoU3RyaW5nIG5hbWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGludCBwcmVmaXhsZW4gPSBtX3ByZWZpeF8ubGVuZ3RoKCk7CisgICAgICAgICAgICBpZiAobmFtZS5sZW5ndGgoKSA8IHByZWZpeGxlbiB8fCAKKyAgICAgICAgICAgICAgICAhbV9wcmVmaXhfLmVxdWFscyhuYW1lLnN1YnN0cmluZygwLCBwcmVmaXhsZW4pKSkgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIHN3aXRjaCAobV90eXBlXykgCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY2FzZSBUWVBFXzBfIDogCisgICAgICAgICAgICAgICAgdHJ5CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gSW50ZWdlci5wYXJzZUludChuYW1lLnN1YnN0cmluZyhwcmVmaXhsZW4pLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTYpOworICAgICAgICAgICAgICAgICAgICAvLyBkb2VzIGl0IGZpdCBpbnRvIHRoZSByYW5nZT8KKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fcmFuZ2VzdGFydF8gPD0gcmVzdWx0ICYmIHJlc3VsdCA8PSBtX3JhbmdlZW5kXykgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaCAoTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGUpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgVFlQRV8xXyA6IAorICAgICAgICAgICAgICAgICAgICAvLyByZXBldGl0YXRpdmUgc3VmZml4IG5hbWUgY29tcGFyaXNvbiBkb25lIGhlcmUKKyAgICAgICAgICAgICAgICAgICAgLy8gb2Zmc2V0IGlzIHRoZSBjaGFyYWN0ZXIgY29kZSAtIHN0YXJ0CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGNoID0gbV9yYW5nZXN0YXJ0XzsgY2ggPD0gbV9yYW5nZWVuZF87IGNoICsrKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gY2ggLSBtX3Jhbmdlc3RhcnRfOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGluZGV4ZXNbXSA9IG5ldyBpbnRbbV92YXJpYW50X107CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZmFjdG9yOworICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyB3cml0ZSBlbGVtZW50cyBhY2NvcmRpbmcgdG8gdGhlIGZhY3RvcnMKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBmYWN0b3JpemVkIGVsZW1lbnRzIGFyZSBkZXRlcm1pbmVkIGJ5IG1vZHVsbyAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFyaXRobWV0aWMKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSBtX3ZhcmlhbnRfIC0gMTsgaSA+IDA7IGkgLS0pIAorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhY3RvciA9IG1fZmFjdG9yX1tpXSAmIDB4MDBGRjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleGVzW2ldID0gb2Zmc2V0ICUgZmFjdG9yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCAvPSBmYWN0b3I7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGRvbid0IG5lZWQgdG8gY2FsY3VsYXRlIHRoZSBsYXN0IG1vZHVsdXMgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBiZWNhdXNlIHN0YXJ0IDw9IGNvZGUgPD0gZW5kIGd1YXJhbnRlZXMgaGVyZSB0aGF0IAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29kZSA8PSBmYWN0b3JzWzBdCisgICAgICAgICAgICAgICAgICAgICAgICBpbmRleGVzWzBdID0gb2Zmc2V0OworCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBqb2luaW5nIHVwIHRoZSBmYWN0b3JpemVkIHN0cmluZ3MgCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29tcGFyZUZhY3RvclN0cmluZyhpbmRleGVzLCBuYW1lLCBwcmVmaXhsZW4pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgKiBBbGdvcml0aG1pYyBkYXRhIGluZm9ybWF0aW9uCisgICAgICAgICovCisgICAgICAgIHByaXZhdGUgaW50IG1fcmFuZ2VzdGFydF87CisgICAgICAgIHByaXZhdGUgaW50IG1fcmFuZ2VlbmRfOworICAgICAgICBwcml2YXRlIGJ5dGUgbV90eXBlXzsKKyAgICAgICAgcHJpdmF0ZSBieXRlIG1fdmFyaWFudF87CisgICAgICAgIHByaXZhdGUgY2hhciBtX2ZhY3Rvcl9bXTsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgbV9wcmVmaXhfOworICAgICAgICBwcml2YXRlIGJ5dGUgbV9mYWN0b3JzdHJpbmdfW107CisgICAgICAgIAorICAgICAgICAvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICogR2V0cyB0aGUgaW5kZXh0aCBzdHJpbmcgaW4gZWFjaCBvZiB0aGUgYXJndW1lbnQgZmFjdG9yIGJsb2NrCisgICAgICAgICogQHBhcmFtIGluZGV4IGFycmF5IHdpdGggZWFjaCBpbmRleCBjb3JyZXNwb25kaW5nIHRvIGVhY2ggZmFjdG9yIGJsb2NrCisgICAgICAgICogQHJldHVybiBhcnJheSBvZiBpbmRleHRoIGZhY3RvciBzdHJpbmcgaW4gZmFjdG9yIGJsb2NrCisgICAgICAgICovCisgICAgICAgIHByaXZhdGUgU3RyaW5nW10gZ2V0RmFjdG9yU3RyaW5nKGludCBpbmRleFtdKQorICAgICAgICB7CisgICAgICAgICAgICBpbnQgc2l6ZSA9IG1fZmFjdG9yXy5sZW5ndGg7CisgICAgICAgICAgICBpZiAoaW5kZXggPT0gbnVsbCB8fCBpbmRleC5sZW5ndGggIT0gc2l6ZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIHJlc3VsdFtdID0gbmV3IFN0cmluZ1tzaXplXTsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBzdHIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICAgICAgaW50IGZhY3RvcjsKKyAgICAgICAgICAgIHNpemUgLS07CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBzaXplOyBpICsrKSB7CisgICAgICAgICAgICAgICAgZmFjdG9yID0gbV9mYWN0b3JfW2ldOworICAgICAgICAgICAgICAgIGNvdW50ID0gVUNoYXJhY3RlclV0aWwuc2tpcE51bGxUZXJtQnl0ZVN1YlN0cmluZygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZmFjdG9yc3RyaW5nXywgY291bnQsIGluZGV4W2ldKTsKKyAgICAgICAgICAgICAgICBjb3VudCA9IFVDaGFyYWN0ZXJVdGlsLmdldE51bGxUZXJtQnl0ZVN1YlN0cmluZygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciwgbV9mYWN0b3JzdHJpbmdfLCBjb3VudCk7CisgICAgICAgICAgICAgICAgaWYgKGkgIT0gc2l6ZSkgeworICAgICAgICAgICAgICAgICAgICBjb3VudCA9IFVDaGFyYWN0ZXJVdGlsLnNraXBOdWxsVGVybUJ5dGVTdWJTdHJpbmcoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2ZhY3RvcnN0cmluZ18sIGNvdW50LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhY3RvciAtIGluZGV4W2ldIC0gMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJlc3VsdFtpXSA9IHN0ci50b1N0cmluZygpOworICAgICAgICAgICAgICAgIHN0ci5kZWxldGUoMCwgc3RyLmxlbmd0aCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAqIENvbXBhcmVzIHRoZSBpbmRleHRoIHN0cmluZyBpbiBlYWNoIG9mIHRoZSBhcmd1bWVudCBmYWN0b3IgYmxvY2sgd2l0aAorICAgICAgICAqIHRoZSBhcmd1bWVudCBzdHJpbmcKKyAgICAgICAgKiBAcGFyYW0gaW5kZXggYXJyYXkgd2l0aCBlYWNoIGluZGV4IGNvcnJlc3BvbmRpbmcgdG8gZWFjaCBmYWN0b3IgYmxvY2sKKyAgICAgICAgKiBAcGFyYW0gc3RyIHN0cmluZyB0byBjb21wYXJlIHdpdGgKKyAgICAgICAgKiBAcGFyYW0gb2Zmc2V0IG9mIHN0ciB0byBzdGFydCBjb21wYXJpc29uCisgICAgICAgICogQHJldHVybiB0cnVlIGlmIHN0cmluZyBtYXRjaGVzCisgICAgICAgICovCisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBjb21wYXJlRmFjdG9yU3RyaW5nKGludCBpbmRleFtdLCBTdHJpbmcgc3RyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldCkKKyAgICAgICAgeworICAgICAgICAgICAgaW50IHNpemUgPSBtX2ZhY3Rvcl8ubGVuZ3RoOworICAgICAgICAgICAgaWYgKGluZGV4ID09IG51bGwgfHwgaW5kZXgubGVuZ3RoICE9IHNpemUpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgICAgIGludCBzdHJjb3VudCA9IG9mZnNldDsKKyAgICAgICAgICAgIGludCBmYWN0b3I7CisgICAgICAgICAgICBzaXplIC0tOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gc2l6ZTsgaSArKykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBmYWN0b3IgPSBtX2ZhY3Rvcl9baV07CisgICAgICAgICAgICAgICAgY291bnQgPSBVQ2hhcmFjdGVyVXRpbC5za2lwTnVsbFRlcm1CeXRlU3ViU3RyaW5nKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9mYWN0b3JzdHJpbmdfLCBjb3VudCwgaW5kZXhbaV0pOworICAgICAgICAgICAgICAgIHN0cmNvdW50ID0gVUNoYXJhY3RlclV0aWwuY29tcGFyZU51bGxUZXJtQnl0ZVN1YlN0cmluZyhzdHIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9mYWN0b3JzdHJpbmdfLCBzdHJjb3VudCwgY291bnQpOworICAgICAgICAgICAgICAgIGlmIChzdHJjb3VudCA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChpICE9IHNpemUpIHsKKyAgICAgICAgICAgICAgICAgICAgY291bnQgPSBVQ2hhcmFjdGVyVXRpbC5za2lwTnVsbFRlcm1CeXRlU3ViU3RyaW5nKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZmFjdG9yc3RyaW5nXywgY291bnQsIGZhY3RvciAtIGluZGV4W2ldKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc3RyY291bnQgIT0gc3RyLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gcHJvdGVjdGVkIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIE1heGltdW0gbnVtYmVyIG9mIGdyb3VwcworICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgbV9ncm91cGNvdW50XyA9IDA7CisgICAgLyoqCisgICAgICogU2l6ZSBvZiBlYWNoIGdyb3VwcworICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgbV9ncm91cHNpemVfID0gMDsKKyAgICAvKioKKyAgICAqIE51bWJlciBvZiBsaW5lcyBwZXIgZ3JvdXAgCisgICAgKiAxIDw8IEdST1VQX1NISUZUXworICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTElORVNfUEVSX0dST1VQXyA9IDEgPDwgNTsKKyAgICAKKyAgICAvLyBwcm90ZWN0ZWQgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgKiA8cD5Qcm90ZWN0ZWQgY29uc3RydWN0b3IgZm9yIHVzZSBpbiBVQ2hhcmFjdGVyLjwvcD4KKyAgICAqIEBleGNlcHRpb24gSU9FeGNlcHRpb24gdGhyb3duIHdoZW4gZGF0YSByZWFkaW5nIGZhaWxzCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgVUNoYXJhY3Rlck5hbWUoKSB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICB7CisgICAgICAgIElucHV0U3RyZWFtIGkgPSBnZXRDbGFzcygpLmdldFJlc291cmNlQXNTdHJlYW0oTkFNRV9GSUxFX05BTUVfKTsKKyAgICAgICAgQnVmZmVyZWRJbnB1dFN0cmVhbSBiID0gbmV3IEJ1ZmZlcmVkSW5wdXRTdHJlYW0oaSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5BTUVfQlVGRkVSX1NJWkVfKTsKKyAgICAgICAgVUNoYXJhY3Rlck5hbWVSZWFkZXIgcmVhZGVyID0gbmV3IFVDaGFyYWN0ZXJOYW1lUmVhZGVyKGIpOworICAgICAgICByZWFkZXIucmVhZCh0aGlzKTsKKyAgICAgICAgaS5jbG9zZSgpOworICAgIH0KKyAgICAgIAorICAgIC8vIHByb3RlY3RlZCBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgCisgICAgLyoqCisgICAgKiBSZXRyaWV2ZSB0aGUgbmFtZSBvZiBhIFVuaWNvZGUgY29kZSBwb2ludC4KKyAgICAqIERlcGVuZGluZyBvbiA8Y29kZT5jaG9pY2U8L2NvZGU+LCB0aGUgY2hhcmFjdGVyIG5hbWUgd3JpdHRlbiBpbnRvIHRoZSAKKyAgICAqIGJ1ZmZlciBpcyB0aGUgIm1vZGVybiIgbmFtZSBvciB0aGUgbmFtZSB0aGF0IHdhcyBkZWZpbmVkIGluIFVuaWNvZGUgCisgICAgKiB2ZXJzaW9uIDEuMC4KKyAgICAqIFRoZSBuYW1lIGNvbnRhaW5zIG9ubHkgImludmFyaWFudCIgY2hhcmFjdGVycworICAgICogbGlrZSBBLVosIDAtOSwgc3BhY2UsIGFuZCAnLScuCisgICAgKgorICAgICogQHBhcmFtIGNoIHRoZSBjb2RlIHBvaW50IGZvciB3aGljaCB0byBnZXQgdGhlIG5hbWUuCisgICAgKiBAcGFyYW0gY2hvaWNlIFNlbGVjdG9yIGZvciB3aGljaCBuYW1lIHRvIGdldC4KKyAgICAqIEByZXR1cm4gaWYgY29kZSBwb2ludCBpcyBhYm92ZSAweDFmZmYsIG51bGwgaXMgcmV0dXJuZWQKKyAgICAqLworICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0TmFtZShpbnQgY2gsIGludCBjaG9pY2UpCisgICAgeworICAgICAgICBpZiAoY2ggPCBVQ2hhcmFjdGVyLk1JTl9WQUxVRSB8fCBjaCA+IFVDaGFyYWN0ZXIuTUFYX1ZBTFVFIHx8IAorICAgICAgICAgICAgY2hvaWNlID49IFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLlVfQ0hBUl9OQU1FX0NIT0lDRV9DT1VOVCkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN0cmluZyByZXN1bHQgPSBudWxsOworICAgICAgICAKKyAgICAgICAgcmVzdWx0ID0gZ2V0QWxnTmFtZShjaCwgY2hvaWNlKTsKKyAgICAgICAgICAKKyAgICAgICAgLy8gZ2V0dGluZyBub3JtYWwgY2hhcmFjdGVyIG5hbWUKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsIHx8IHJlc3VsdC5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgIAlpZiAoY2hvaWNlID09IFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLlVfRVhURU5ERURfQ0hBUl9OQU1FKSB7CSAgCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZ2V0RXh0ZW5kZWROYW1lKGNoKTsJCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGdldEdyb3VwTmFtZShjaCwgY2hvaWNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAgIAorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAgIAorICAgIC8qKgorICAgICogRmluZCBhIGNoYXJhY3RlciBieSBpdHMgbmFtZSBhbmQgcmV0dXJuIGl0cyBjb2RlIHBvaW50IHZhbHVlCisgICAgKiBAcGFyYW0gY2hhcmFjdGVyIG5hbWUKKyAgICAqIEBwYXJhbSBjaG9pY2Ugc2VsZWN0b3IgdG8gaW5kaWNhdGUgaWYgYXJndW1lbnQgbmFtZSBpcyBhIFVuaWNvZGUgMS4wIAorICAgICogICAgICAgIG9yIHRoZSBtb3N0IGN1cnJlbnQgdmVyc2lvbiAKKyAgICAqIEByZXR1cm4gY29kZSBwb2ludAorICAgICovCisgICAgcHJvdGVjdGVkIGludCBnZXRDaGFyRnJvbU5hbWUoaW50IGNob2ljZSwgU3RyaW5nIG5hbWUpCisgICAgeworICAgICAgICAvLyBjaGVja3MgZm9yIGlsbGVnYWwgYXJndW1lbnRzCisgICAgICAgIGlmIChjaG9pY2UgPj0gVUNoYXJhY3Rlck5hbWVDaG9pY2UuVV9DSEFSX05BTUVfQ0hPSUNFX0NPVU5UIHx8IAorICAgICAgICAgICAgbmFtZSA9PSBudWxsIHx8IG5hbWUubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyB0cnkgZXh0ZW5kZWQgbmFtZXMgZmlyc3QgIAorICAgICAgICBpbnQgcmVzdWx0ID0gZ2V0RXh0ZW5kZWRDaGFyKG5hbWUudG9Mb3dlckNhc2UoKSwgY2hvaWNlKTsKKyAgICAgICAgaWYgKHJlc3VsdCA+PSAtMSkgeworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgU3RyaW5nIHVwcGVyQ2FzZU5hbWUgPSBuYW1lLnRvVXBwZXJDYXNlKCk7CisgICAgICAgIC8vIHRyeSBhbGdvcml0aG1pYyBuYW1lcyBmaXJzdCwgaWYgZmFpbHMgdGhlbiB0cnkgZ3JvdXAgbmFtZXMKKyAgICAgICAgLy8gaW50IHJlc3VsdCA9IGdldEFsZ29yaXRobUNoYXIoY2hvaWNlLCB1cHBlcmNhc2VuYW1lKTsKKyAgICAgICAgCisgICAgICAgIGlmIChjaG9pY2UgIT0gVUNoYXJhY3Rlck5hbWVDaG9pY2UuVV9VTklDT0RFXzEwX0NIQVJfTkFNRSkgeworICAgICAgICAJaW50IGNvdW50ID0gMDsKKyAgICAgICAgCWlmIChtX2FsZ29yaXRobV8gIT0gbnVsbCkgeworICAgICAgICAJICAgIGNvdW50ID0gbV9hbGdvcml0aG1fLmxlbmd0aDsKKyAgICAgICAgCX0KKyAgICAgICAgCWZvciAoY291bnQgLS07IGNvdW50ID49IDA7IGNvdW50IC0tKSB7CisgICAgICAgICAJICAgIHJlc3VsdCA9IG1fYWxnb3JpdGhtX1tjb3VudF0uZ2V0QWxnb3JpdGhtQ2hhcih1cHBlckNhc2VOYW1lKTsgCisgICAgICAgICAgCSAgICBpZiAocmVzdWx0ID49IDApIHsKKyAgICAgICAgICAgCSAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIAl9CisgICAgICAgIAl9CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBpZiAoY2hvaWNlID09IFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLlVfRVhURU5ERURfQ0hBUl9OQU1FKSB7CisJICAgICAgICByZXN1bHQgPSBnZXRHcm91cENoYXIodXBwZXJDYXNlTmFtZSwgCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlck5hbWVDaG9pY2UuVV9VTklDT0RFX0NIQVJfTkFNRSk7CisgICAgICAgIAlpZiAocmVzdWx0ID09IC0xKSB7CisJICAgICAgICAgICAgcmVzdWx0ID0gZ2V0R3JvdXBDaGFyKHVwcGVyQ2FzZU5hbWUsIAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLlVfVU5JQ09ERV8xMF9DSEFSX05BTUUpOworICAgICAgICAJfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAJcmVzdWx0ID0gZ2V0R3JvdXBDaGFyKHVwcGVyQ2FzZU5hbWUsIGNob2ljZSk7CisgICAgICAgIH0KKyAgICAJcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBTZXRzIHRoZSB0b2tlbiBkYXRhCisgICAgKiBAcGFyYW0gdG9rZW4gYXJyYXkgb2YgdG9rZW5zCisgICAgKiBAcGFyYW0gdG9rZW5zdHJpbmcgYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcyBvZiB0aGUgdG9rZW5zCisgICAgKiBAcmV0dXJuIGZhbHNlIGlmIHRoZXJlIGlzIGEgZGF0YSBlcnJvcgorICAgICovCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gc2V0VG9rZW4oY2hhciB0b2tlbltdLCBieXRlIHRva2Vuc3RyaW5nW10pCisgICAgeworICAgICAgICBpZiAodG9rZW4gIT0gbnVsbCAmJiB0b2tlbnN0cmluZyAhPSBudWxsICYmIHRva2VuLmxlbmd0aCA+IDAgJiYKKyAgICAgICAgICAgIHRva2Vuc3RyaW5nLmxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgIG1fdG9rZW50YWJsZV8gPSB0b2tlbjsKKyAgICAgICAgICAgIG1fdG9rZW5zdHJpbmdfID0gdG9rZW5zdHJpbmc7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7IAorICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgKiBTZXQgdGhlIGFsZ29yaXRobSBuYW1lIGluZm9ybWF0aW9uIGFycmF5CisgICAgKiBAcGFyYW0gYWxnb3JpdGhtIGluZm9ybWF0aW9uIGFycmF5CisgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGdyb3VwIHN0cmluZyBvZmZzZXQgaGFzIGJlZW4gc2V0IGNvcnJlY3RseQorICAgICovCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gc2V0QWxnb3JpdGhtKEFsZ29yaXRobU5hbWUgYWxnW10pCisgICAgeworICAgICAgICBpZiAoYWxnICE9IG51bGwgJiYgYWxnLmxlbmd0aCAhPSAwKSB7CisgICAgICAgICAgICBtX2FsZ29yaXRobV8gPSBhbGc7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogU2V0cyB0aGUgbnVtYmVyIG9mIGdyb3VwIGFuZCBzaXplIG9mIGVhY2ggZ3JvdXAgaW4gbnVtYmVyIG9mIGNoYXIKKyAgICAqIEBwYXJhbSBjb3VudCBudW1iZXIgb2YgZ3JvdXBzCisgICAgKiBAcGFyYW0gc2l6ZSBzaXplIG9mIGdyb3VwIGluIGNoYXIKKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiBncm91cCBzaXplIGlzIHNldCBjb3JyZWN0bHkKKyAgICAqLworICAgIHByb3RlY3RlZCBib29sZWFuIHNldEdyb3VwQ291bnRTaXplKGludCBjb3VudCwgaW50IHNpemUpCisgICAgeworICAgICAgICBpZiAoY291bnQgPD0gMCB8fCBzaXplIDw9IDApIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBtX2dyb3VwY291bnRfID0gY291bnQ7CisgICAgICAgIG1fZ3JvdXBzaXplXyA9IHNpemU7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAgIAorICAgIC8qKgorICAgICogU2V0cyB0aGUgZ3JvdXAgbmFtZSBkYXRhCisgICAgKiBAcGFyYW0gZ3JvdXAgaW5kZXggaW5mb3JtYXRpb24gYXJyYXkKKyAgICAqIEBwYXJhbSBncm91cHN0cmluZyBuYW1lIGluZm9ybWF0aW9uIGFycmF5CisgICAgKiBAcmV0dXJuIGZhbHNlIGlmIHRoZXJlIGlzIGEgZGF0YSBlcnJvcgorICAgICovCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gc2V0R3JvdXAoY2hhciBncm91cFtdLCBieXRlIGdyb3Vwc3RyaW5nW10pCisgICAgeworICAgICAgICBpZiAoZ3JvdXAgIT0gbnVsbCAmJiBncm91cHN0cmluZyAhPSBudWxsICYmIGdyb3VwLmxlbmd0aCA+IDAgJiYKKyAgICAgICAgICAgIGdyb3Vwc3RyaW5nLmxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgIG1fZ3JvdXBpbmZvXyA9IGdyb3VwOworICAgICAgICAgICAgbV9ncm91cHN0cmluZ18gPSBncm91cHN0cmluZzsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICogUmVhZHMgYSBibG9jayBvZiBjb21wcmVzc2VkIGxlbmd0aHMgb2YgMzIgc3RyaW5ncyBhbmQgZXhwYW5kcyB0aGVtIGludG8gCisgICAgKiBvZmZzZXRzIGFuZCBsZW5ndGhzIGZvciBlYWNoIHN0cmluZy4gTGVuZ3RocyBhcmUgc3RvcmVkIHdpdGggYSAKKyAgICAqIHZhcmlhYmxlLXdpZHRoIGVuY29kaW5nIGluIGNvbnNlY3V0aXZlIG5pYmJsZXM6CisgICAgKiBJZiBhIG5pYmJsZTwweGMsIHRoZW4gaXQgaXMgdGhlIGxlbmd0aCBpdHNlbGYgKDAgPSBlbXB0eSBzdHJpbmcpLgorICAgICogSWYgYSBuaWJibGU+PTB4YywgdGhlbiBpdCBmb3JtcyBhIGxlbmd0aCB2YWx1ZSB3aXRoIHRoZSBmb2xsb3dpbmcgCisgICAgKiBuaWJibGUuCisgICAgKiBUaGUgb2Zmc2V0cyBhbmQgbGVuZ3RocyBhcnJheXMgbXVzdCBiZSBhdCBsZWFzdCAzMyAob25lIG1vcmUpIGxvbmcgCisgICAgKiBiZWNhdXNlIHRoZXJlIGlzIG5vIGNoZWNrIGhlcmUgYXQgdGhlIGVuZCBpZiB0aGUgbGFzdCBuaWJibGUgaXMgc3RpbGwgCisgICAgKiB1c2VkLgorICAgICogQHBhcmFtIGluZGV4IG9mIGdyb3VwIHN0cmluZyBvYmplY3QgaW4gYXJyYXkKKyAgICAqIEBwYXJhbSBvZmZzZXRzIGFycmF5IHRvIHN0b3JlIHRoZSB2YWx1ZSBvZiB0aGUgc3RyaW5nIG9mZnNldHMKKyAgICAqIEBwYXJhbSBsZW5ndGhzIGFycmF5IHRvIHN0b3JlIHRoZSB2YWx1ZSBvZiB0aGUgc3RyaW5nIGxlbmd0aAorICAgICogQHJldHVybiBuZXh0IGluZGV4IG9mIHRoZSBkYXRhIHN0cmluZyBpbW1lZGlhdGVseSBhZnRlciB0aGUgbGVuZ3RocyAKKyAgICAqICAgICAgICAgaW4gdGVybXMgb2YgYnl0ZSBhZGRyZXNzCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGdldEdyb3VwTGVuZ3RocyhpbnQgaW5kZXgsIGNoYXIgb2Zmc2V0c1tdLCBjaGFyIGxlbmd0aHNbXSkgCisgICAgeworICAgICAgICBjaGFyIGxlbmd0aCA9IDB4ZmZmZjsKKyAgICAgICAgYnl0ZSBiID0gMCwKKyAgICAgICAgICAgIG4gPSAwOworICAgICAgICBpbnQgc2hpZnQ7CisgICAgICAgIGluZGV4ID0gaW5kZXggKiBtX2dyb3Vwc2l6ZV87IC8vIGJ5dGUgY291bnQgb2Zmc2V0cyBvZiBncm91cCBzdHJpbmdzCisgICAgICAgIGludCBzdHJpbmdvZmZzZXQgPSBVQ2hhcmFjdGVyVXRpbC50b0ludCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZ3JvdXBpbmZvX1tpbmRleCArIE9GRlNFVF9ISUdIX09GRlNFVF9dLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZ3JvdXBpbmZvX1tpbmRleCArIE9GRlNFVF9MT1dfT0ZGU0VUX10pOworICAgICAgICAgICAgCisgICAgICAgIG9mZnNldHNbMF0gPSAwOworICAgICAgICAKKyAgICAgICAgLy8gYWxsIDMyIGxlbmd0aHMgbXVzdCBiZSByZWFkIHRvIGdldCB0aGUgb2Zmc2V0IG9mIHRoZSBmaXJzdCBncm91cCAKKyAgICAgICAgLy8gc3RyaW5nCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTElORVNfUEVSX0dST1VQXzsgc3RyaW5nb2Zmc2V0ICsrKSB7CisgICAgICAgICAgICBiID0gbV9ncm91cHN0cmluZ19bc3RyaW5nb2Zmc2V0XTsKKyAgICAgICAgICAgIHNoaWZ0ID0gNDsKKyAgICAgICAgICAgICAgCisgICAgICAgICAgICB3aGlsZSAoc2hpZnQgPj0gMCkgeworICAgICAgICAgICAgICAgIC8vIGdldHRpbmcgbmliYmxlCisgICAgICAgICAgICAgICAgbiA9IChieXRlKSgoYiA+PiBzaGlmdCkgJiAweDBGKTsgICAKKyAgICAgICAgICAgICAgICBpZiAobGVuZ3RoID09IDB4ZmZmZiAmJiBuID4gU0lOR0xFX05JQkJMRV9NQVhfKSB7CisgICAgICAgICAgICAgICAgCWxlbmd0aCA9IChjaGFyKSgobiAtIDEyKSA8PCA0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgCWlmIChsZW5ndGggIT0gMHhmZmZmKSB7CisgICAgICAgICAgICAgICAgIAkgICBsZW5ndGhzW2ldID0gKGNoYXIpKChsZW5ndGggfCBuKSArIDEyKTsKKyAgICAgICAgICAgICAgICAJfQorICAgICAgICAgICAgICAgIAllbHNlIHsKKyAgICAgICAgICAgICAgICAgCSAgIGxlbmd0aHNbaV0gPSAoY2hhciluOworICAgICAgICAgICAgICAgIAl9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIAlpZiAoaSA8IExJTkVTX1BFUl9HUk9VUF8pIHsKKyAgICAgICAgICAgICAgICAgCSAgIG9mZnNldHNbaSArIDFdID0gKGNoYXIpKG9mZnNldHNbaV0gKyBsZW5ndGhzW2ldKTsKKyAgICAgICAgICAgICAgICAJfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAJbGVuZ3RoID0gMHhmZmZmOworICAgICAgICAgICAgICAgIAlpICsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBzaGlmdCAtPSA0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBzdHJpbmdvZmZzZXQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogR2V0cyB0aGUgbmFtZSBvZiB0aGUgYXJndW1lbnQgZ3JvdXAgaW5kZXgKKyAgICAqIEBwYXJhbSBpbmRleCBvZiB0aGUgZ3JvdXAgbmFtZSBzdHJpbmcgaW4gYnl0ZSBjb3VudAorICAgICogQHBhcmFtIGxlbmd0aCBvZiB0aGUgZ3JvdXAgbmFtZSBzdHJpbmcKKyAgICAqIEBwYXJhbSBjaG9pY2Ugb2YgVW5pY29kZSAxLjAgbmFtZSBvciB0aGUgbW9zdCBjdXJyZW50IG5hbWUKKyAgICAqIEByZXR1cm4gbmFtZSBvZiB0aGUgZ3JvdXAgCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldEdyb3VwTmFtZShpbnQgaW5kZXgsIGludCBsZW5ndGgsIGludCBjaG9pY2UpIAorICAgIHsKKyAgICAgICAgaWYgKGNob2ljZSA9PSBVQ2hhcmFjdGVyTmFtZUNob2ljZS5VX1VOSUNPREVfMTBfQ0hBUl9OQU1FKSB7CisgICAgICAgIAlpbnQgb2xkaW5kZXggPSBpbmRleDsKKyAgICAgICAgIAlpbmRleCArPSBVQ2hhcmFjdGVyVXRpbC5za2lwQnl0ZVN1YlN0cmluZyhtX2dyb3Vwc3RyaW5nXywgCisgICAgICAgICAJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCwgbGVuZ3RoLCAoYnl0ZSknOycpOyAgIAorICAgICAgICAgCWxlbmd0aCAtPSAoaW5kZXggLSBvbGRpbmRleCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN0cmluZ0J1ZmZlciBzID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBieXRlIGI7CisgICAgICAgIGNoYXIgdG9rZW47CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuZ3RoOykgeworICAgICAgICAgICAgYiA9IG1fZ3JvdXBzdHJpbmdfW2luZGV4ICsgaV07CisgICAgICAgICAgICBpICsrOworICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChiID49IG1fdG9rZW50YWJsZV8ubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgaWYgKGIgPT0gJzsnKSB7CisgICAgICAgICAgICAgICAgCWJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzLmFwcGVuZChiKTsgLy8gaW1wbGljaXQgbGV0dGVyCisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICB0b2tlbiA9IG1fdG9rZW50YWJsZV9bYiAmIDB4MDBmZl07CisgICAgICAgICAgICAgICAgaWYgKHRva2VuID09IDB4RkZGRSkgeworICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIGEgbGVhZCBieXRlIGZvciBhIGRvdWJsZS1ieXRlIHRva2VuCisgICAgICAgICAgICAgICAgICAgIHRva2VuID0gbV90b2tlbnRhYmxlX1tiIDw8IDggfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1fZ3JvdXBzdHJpbmdfW2luZGV4ICsgaV0gJiAweDAwZmYpXTsKKyAgICAgICAgICAgICAgICAgICAgaSArKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHRva2VuID09IDB4RkZGRikgeworICAgICAgICAgICAgICAgICAgICBpZiAoYiA9PSAnOycpIHsKKyAgICAgICAgICAgICAgICAgICAgCS8vIHNraXAgdGhlIHNlbWljb2xvbiBpZiB3ZSBhcmUgc2Vla2luZyBleHRlbmRlZCAKKyAgICAgICAgICAgICAgICAgICAgCS8vIG5hbWVzIGFuZCB0aGVyZSB3YXMgbm8gMi4wIG5hbWUgYnV0IHRoZXJlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBpcyBhIDEuMCBuYW1lLgorICAgICAgICAgICAgICAgICAgICAJaWYgKHMubGVuZ3RoKCkgPT0gMCAmJiBjaG9pY2UgPT0gCisgICAgICAgICAgICAgICAgICAgIAkgICAgICAgVUNoYXJhY3Rlck5hbWVDaG9pY2UuVV9FWFRFTkRFRF9DSEFSX05BTUUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIAljb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgCX0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHMuYXBwZW5kKChjaGFyKShiICYgMHgwMGZmKSk7IC8vIGV4cGxpY2l0IGxldHRlcgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsgLy8gd3JpdGUgdG9rZW4gd29yZAorICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyVXRpbC5nZXROdWxsVGVybUJ5dGVTdWJTdHJpbmcocywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdG9rZW5zdHJpbmdfLCB0b2tlbik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHMubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHMudG9TdHJpbmcoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBSZXRyaWV2ZXMgdGhlIGV4dGVuZGVkIG5hbWUKKyAgICAqLworICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0RXh0ZW5kZWROYW1lKGludCBjaCkgCisgICAgeyAgICAKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IGdldE5hbWUoY2gsIFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLlVfVU5JQ09ERV9DSEFSX05BTUUpOyAgICAKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSB7ICAgICAgICAKKyAgICAgICAgICAgIGlmIChnZXRUeXBlKGNoKSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuQ09OVFJPTCkgeyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHJlc3VsdCA9IGdldE5hbWUoY2gsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlck5hbWVDaG9pY2UuVV9VTklDT0RFXzEwX0NIQVJfTkFNRSk7ICAgICAgICAKKyAgICAgICAgICAgIH0gICAgICAgIAorICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSB7ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZ2V0RXh0ZW5kZWRPcjEwTmFtZShjaCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gICAgCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGdyb3VwIGluZGV4IGZvciB0aGUgY29kZXBvaW50LCBvciB0aGUgZ3JvdXAgYmVmb3JlIGl0LgorICAgICAqIEBwYXJhbSBjb2RlcG9pbnQKKyAgICAgKiBAcmV0dXJuIGdyb3VwIGluZGV4IGNvbnRhaW5pbmcgY29kZXBvaW50IG9yIHRoZSBncm91cCBiZWZvcmUgaXQuCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBnZXRHcm91cChpbnQgY29kZXBvaW50KQorICAgIHsKKyAgICAJaW50IGVuZEdyb3VwID0gbV9ncm91cGNvdW50XzsKKyAgICAJaW50IG1zYiAgICAgID0gZ2V0Q29kZXBvaW50TVNCKGNvZGVwb2ludCk7CisgICAgICAgIGludCByZXN1bHQgICA9IDA7ICAgIAorICAgICAgICAvLyBiaW5hcnkgc2VhcmNoIGZvciB0aGUgZ3JvdXAgb2YgbmFtZXMgdGhhdCBjb250YWlucyB0aGUgb25lIGZvciAKKyAgICAgICAgLy8gY29kZQorICAgICAgICAvLyBmaW5kIHRoZSBncm91cCB0aGF0IGNvbnRhaW5zIGNvZGVwb2ludCwgb3IgdGhlIGhpZ2hlc3QgYmVmb3JlIGl0CisgICAgICAgIHdoaWxlIChyZXN1bHQgPCBlbmRHcm91cCAtIDEpIHsKKyAgICAgICAgICAgIGludCBnaW5kZXggPSAocmVzdWx0ICsgZW5kR3JvdXApID4+IDE7CisgICAgICAgICAgICBpZiAobXNiIDwgZ2V0R3JvdXBNU0IoZ2luZGV4KSkgeworICAgICAgICAgICAgICAgCWVuZEdyb3VwID0gZ2luZGV4OworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAJcmVzdWx0ID0gZ2luZGV4OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGV4dGVuZGVkIGFuZCAxLjAgbmFtZSB3aGVuIHRoZSBtb3N0IGN1cnJlbnQgdW5pY29kZSBuYW1lcworICAgICAqIGZhaWwKKyAgICAgKiBAcGFyYW0gY2ggY29kZXBvaW50CisgICAgICogQHJldHVybiBuYW1lIG9mIGNvZGVwb2ludCBleHRlbmRlZCBvciAxLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldEV4dGVuZGVkT3IxME5hbWUoaW50IGNoKQorICAgIHsKKyAgICAJU3RyaW5nIHJlc3VsdCA9IG51bGw7CisgICAgCWlmIChnZXRUeXBlKGNoKSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuQ09OVFJPTCkgeyAgICAgICAgICAgIAorICAgICAgICAgICAgcmVzdWx0ID0gZ2V0TmFtZShjaCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLlVfVU5JQ09ERV8xMF9DSEFSX05BTUUpOyAgICAgICAgCisgICAgICAgIH0gICAgICAgIAorICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHsgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCB0eXBlID0gZ2V0VHlwZShjaCk7ICAgIAorICAgICAgICAgICAgLy8gUmV0dXJuIHVua25vd24gaWYgdGhlIHRhYmxlIG9mIG5hbWVzIGFib3ZlIGlzIG5vdCB1cCB0byAKKyAgICAgICAgICAgIC8vIGRhdGUuCisgICAgICAgICAgICBpZiAodHlwZSA+PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVFlQRV9OQU1FU18ubGVuZ3RoKSB7ICAgICAgIAorICAgICAgICAgICAgICAgIHJlc3VsdCA9IFVDaGFyYWN0ZXJDYXRlZ29yeS5VTktOT1dOX1RZUEVfTkFNRV87ICAgIAorICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgeyAgICAgICAgCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gVUNoYXJhY3RlckNhdGVnb3J5LlRZUEVfTkFNRVNfW3R5cGVdOyAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB0ZW1wUmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcihyZXN1bHQpOworICAgICAgICAgICAgdGVtcFJlc3VsdC5pbnNlcnQoMCwgJzwnKTsKKyAgICAgICAgICAgIHRlbXBSZXN1bHQuYXBwZW5kKCctJyk7CisgICAgICAgICAgICBTdHJpbmcgY2hTdHIgPSBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNoKS50b1VwcGVyQ2FzZSgpOworICAgICAgICAgICAgaW50IHplcm9zID0gNCAtIGNoU3RyLmxlbmd0aCgpOworICAgICAgICAgICAgd2hpbGUgKHplcm9zID4gMCkgeworICAgICAgICAgICAgICAgIHRlbXBSZXN1bHQuYXBwZW5kKCcwJyk7CisgICAgICAgICAgICAgICAgemVyb3MgLS07CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0ZW1wUmVzdWx0LmFwcGVuZChjaFN0cik7CisgICAgICAgICAgICB0ZW1wUmVzdWx0LmFwcGVuZCgnPicpOworICAgICAgICAgICAgcmVzdWx0ID0gdGVtcFJlc3VsdC50b1N0cmluZygpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIC8vIHRoZXNlIGFyZSBhbGwgVUNoYXJhY3Rlck5hbWVJdGVyYXRvciB1c2UgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgTVNCIGZyb20gdGhlIGdyb3VwIGluZGV4CisgICAgICogQHBhcmFtIGdpbmRleCBncm91cCBpbmRleAorICAgICAqIEByZXR1cm4gdGhlIE1TQiBvZiB0aGUgZ3JvdXAgaWYgZ2luZGV4IGlzIHZhbGlkLCAtMSBvdGhlcndpc2UKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGdldEdyb3VwTVNCKGludCBnaW5kZXgpCisgICAgeworICAgIAlpZiAoZ2luZGV4ID49IG1fZ3JvdXBjb3VudF8pIHsKKyAgICAJCXJldHVybiAtMTsKKyAgICAJfQorICAgIAlyZXR1cm4gbV9ncm91cGluZm9fW2dpbmRleCAqIG1fZ3JvdXBzaXplX107CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIE1TQiBvZiB0aGUgY29kZXBvaW50CisgICAgICogQHBhcmFtIGNvZGVwb2ludCAKKyAgICAgKiBAcmV0dXJuIHRoZSBNU0Igb2YgdGhlIGNvZGVwb2ludAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgZ2V0Q29kZXBvaW50TVNCKGludCBjb2RlcG9pbnQpCisgICAgeworICAgIAlyZXR1cm4gY29kZXBvaW50ID4+IEdST1VQX1NISUZUXzsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbWF4aW11bSBjb2RlcG9pbnQgKyAxIG9mIHRoZSBncm91cAorICAgICAqIEBwYXJhbSBtc2IgbW9zdCBzaWduaWZpY2FudCBieXRlIG9mIHRoZSBncm91cAorICAgICAqIEByZXR1cm4gbGltaXQgY29kZXBvaW50IG9mIHRoZSBncm91cAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgZ2V0R3JvdXBMaW1pdChpbnQgbXNiKQorICAgIHsKKyAgICAJcmV0dXJuIChtc2IgPDwgR1JPVVBfU0hJRlRfKSArIExJTkVTX1BFUl9HUk9VUF87CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIG1pbmltdW0gY29kZXBvaW50IG9mIHRoZSBncm91cAorICAgICAqIEBwYXJhbSBtc2IgbW9zdCBzaWduaWZpY2FudCBieXRlIG9mIHRoZSBncm91cAorICAgICAqIEByZXR1cm4gbWluaW11bSBjb2RlcG9pbnQgb2YgdGhlIGdyb3VwCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBnZXRHcm91cE1pbihpbnQgbXNiKQorICAgIHsKKyAgICAJcmV0dXJuIG1zYiA8PCBHUk9VUF9TSElGVF87CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIG9mZnNldCB0byBhIGdyb3VwCisgICAgICogQHBhcmFtIGNvZGVwb2ludCAKKyAgICAgKiBAcmV0dXJuIG9mZnNldCB0byBhIGdyb3VwCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBnZXRHcm91cE9mZnNldChpbnQgY29kZXBvaW50KQorICAgIHsKKyAgICAJcmV0dXJuIGNvZGVwb2ludCAmIEdST1VQX01BU0tfOworICAgIH0KKworCS8qKgorICAgICAqIEdldHMgdGhlIG1pbmltdW0gY29kZXBvaW50IG9mIGEgZ3JvdXAKKyAgICAgKiBAcGFyYW0gY29kZXBvaW50CisgICAgICogQHJldHVybiBtaW5pbXVtIGNvZGVwb2ludCBpbiB0aGUgZ3JvdXAgd2hpY2ggY29kZXBvaW50IGJlbG9uZ3MgdG8KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGdldEdyb3VwTWluRnJvbUNvZGVwb2ludChpbnQgY29kZXBvaW50KQorICAgIHsKKyAgICAJcmV0dXJuIGNvZGVwb2ludCAmIH5HUk9VUF9NQVNLXzsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0IHRoZSBBbGdvcml0aG0gcmFuZ2UgbGVuZ3RoIAorICAgICAqIEByZXR1cm4gQWxnb3JpdGhtIHJhbmdlIGxlbmd0aAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgZ2V0QWxnb3JpdGhtTGVuZ3RoKCkKKyAgICB7CisgICAgCXJldHVybiBtX2FsZ29yaXRobV8ubGVuZ3RoOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgc3RhcnQgb2YgdGhlIHJhbmdlCisgICAgICogQHBhcmFtIGluZGV4IGFsZ29yaXRobSBpbmRleAorICAgICAqIEByZXR1cm4gYWxnb3JpdGhtIHJhbmdlIHN0YXJ0CisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBnZXRBbGdvcml0aG1TdGFydChpbnQgaW5kZXgpCisgICAgeworICAgICAgCXJldHVybiBtX2FsZ29yaXRobV9baW5kZXhdLm1fcmFuZ2VzdGFydF87CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBlbmQgb2YgdGhlIHJhbmdlCisgICAgICogQHBhcmFtIGluZGV4IGFsZ29yaXRobSBpbmRleAorICAgICAqIEByZXR1cm4gYWxnb3JpdGhtIHJhbmdlIGVuZAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgZ2V0QWxnb3JpdGhtRW5kKGludCBpbmRleCkKKyAgICB7CisgICAgICAJcmV0dXJuIG1fYWxnb3JpdGhtX1tpbmRleF0ubV9yYW5nZWVuZF87CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIEFsZ29yaXRobWljIG5hbWUgb2YgdGhlIGNvZGVwb2ludAorICAgICAqIEBwYXJhbSBpbmRleCBhbGdvcml0aG1pYyByYW5nZSBpbmRleAorICAgICAqIEBwYXJhbSBjb2RlcG9pbnQgCisgICAgICogQHJldHVybiBhbGdvcml0aG1pYyBuYW1lIG9mIGNvZGVwb2ludAorICAgICAqLworICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0QWxnb3JpdGhtTmFtZShpbnQgaW5kZXgsIGludCBjb2RlcG9pbnQpIAorICAgIHsKKyAgICAJU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAJbV9hbGdvcml0aG1fW2luZGV4XS5hcHBlbmROYW1lKGNvZGVwb2ludCwgcmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKyAgICAKKyAgICAgICAgCisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICogRGF0YSB1c2VkIGluIHVuYW1lcy5pY3UKKyAgICAqLworICAgIHByaXZhdGUgY2hhciBtX3Rva2VudGFibGVfW107CisgICAgcHJpdmF0ZSBieXRlIG1fdG9rZW5zdHJpbmdfW107CisgICAgcHJpdmF0ZSBjaGFyIG1fZ3JvdXBpbmZvX1tdOworICAgIHByaXZhdGUgYnl0ZSBtX2dyb3Vwc3RyaW5nX1tdOworICAgIHByaXZhdGUgQWxnb3JpdGhtTmFtZSBtX2FsZ29yaXRobV9bXTsKKyAgICAgIAorICAgIC8qKgorICAgICogR3JvdXAgdXNlCisgICAgKi8KKyAgICBwcml2YXRlIGNoYXIgbV9ncm91cG9mZnNldHNfW10gPSBuZXcgY2hhcltMSU5FU19QRVJfR1JPVVBfICsgMV07CisgICAgcHJpdmF0ZSBjaGFyIG1fZ3JvdXBsZW5ndGhzX1tdID0gbmV3IGNoYXJbTElORVNfUEVSX0dST1VQXyArIDFdOworICAgICAgCSAKKyAgICAvKioKKyAgICAqIERlZmF1bHQgbmFtZSBvZiB0aGUgbmFtZSBkYXRhZmlsZQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIE5BTUVfRklMRV9OQU1FXyA9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvY29tL2libS9pY3UvaW1wbC9kYXRhL3VuYW1lcy5pY3UiOworICAgIC8qKgorICAgICogU2hpZnQgY291bnQgdG8gcmV0cmlldmUgZ3JvdXAgaW5mb3JtYXRpb24KKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBHUk9VUF9TSElGVF8gPSA1OworICAgIC8qKgorICAgICogTWFzayB0byByZXRyaWV2ZSB0aGUgb2Zmc2V0IGZvciBhIHBhcnRpY3VsYXIgY2hhcmFjdGVyIHdpdGhpbiBhIGdyb3VwCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgR1JPVVBfTUFTS18gPSBMSU5FU19QRVJfR1JPVVBfIC0gMTsKKyAgICAvKioKKyAgICAqIERlZmF1bHQgYnVmZmVyIHNpemUgb2YgZGF0YWZpbGUKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOQU1FX0JVRkZFUl9TSVpFXyA9IDEwMDAwMDsKKyAgICAgIAorICAgIC8qKgorICAgICogUG9zaXRpb24gb2Ygb2Zmc2V0aGlnaCBpbiBncm91cCBpbmZvcm1hdGlvbiBhcnJheQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE9GRlNFVF9ISUdIX09GRlNFVF8gPSAxOworICAgICAgCisgICAgLyoqCisgICAgKiBQb3NpdGlvbiBvZiBvZmZzZXRsb3cgaW4gZ3JvdXAgaW5mb3JtYXRpb24gYXJyYXkKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBPRkZTRVRfTE9XX09GRlNFVF8gPSAyOworICAgIC8qKgorICAgICogRG91YmxlIG5pYmJsZSBpbmRpY2F0b3IsIGFueSBuaWJibGUgPiB0aGlzIG51bWJlciBoYXMgdG8gYmUgY29tYmluZWQKKyAgICAqIHdpdGggaXRzIGZvbGxvd2luZyBuaWJibGUKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTSU5HTEVfTklCQkxFX01BWF8gPSAxMTsKKyAgICAgCisgICAgICAKKyAgICAvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIGFsZ29yaXRobWljIG5hbWUgZm9yIHRoZSBhcmd1bWVudCBjaGFyYWN0ZXIKKyAgICAqIEBwYXJhbSBjaCBjaGFyYWN0ZXIgdG8gZGV0ZXJtaW5lIG5hbWUgZm9yCisgICAgKiBAcGFyYW0gY2hvaWNlIG5hbWUgY2hvaWNlCisgICAgKiBAcmV0dXJuIHRoZSBhbGdvcml0aG1pYyBuYW1lIG9yIG51bGwgaWYgbm90IGZvdW5kCisgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBnZXRBbGdOYW1lKGludCBjaCwgaW50IGNob2ljZSkgCisgICAgeworICAgIAkvLyBEbyBub3Qgd3JpdGUgYWxnb3JpdGhtaWMgVW5pY29kZSAxLjAgbmFtZXMgYmVjYXVzZSBVbmloYW4gbmFtZXMgYXJlIAorICAgICAgICAvLyB0aGUgc2FtZSBhcyB0aGUgbW9kZXJuIG9uZXMsIGV4dGVuc2lvbiBBIHdhcyBvbmx5IGludHJvZHVjZWQgd2l0aCAKKyAgICAgICAgLy8gVW5pY29kZSAzLjAsIGFuZCB0aGUgSGFuZ3VsIHN5bGxhYmxlIGJsb2NrIHdhcyBtb3ZlZCBhbmQgY2hhbmdlZCAKKyAgICAgICAgLy8gYXJvdW5kIFVuaWNvZGUgMS4xLjUuCisgICAgICAgIGlmIChjaG9pY2UgIT0gVUNoYXJhY3Rlck5hbWVDaG9pY2UuVV9VTklDT0RFXzEwX0NIQVJfTkFNRSkgeworICAgICAgIAkgCS8vIGluZGV4IGluIHRlcm1zIGludGVnZXIgaW5kZXgKKyAgICAgICAgCVN0cmluZ0J1ZmZlciBzID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAKKyAgICAgICAgCWZvciAoaW50IGluZGV4ID0gbV9hbGdvcml0aG1fLmxlbmd0aCAtIDE7IGluZGV4ID49IDA7IGluZGV4IC0tKSB7CisgICAgICAgICAJICAgaWYgKG1fYWxnb3JpdGhtX1tpbmRleF0uY29udGFpbnMoY2gpKSB7CisgICAgICAgICAgCSAgICAgIG1fYWxnb3JpdGhtX1tpbmRleF0uYXBwZW5kTmFtZShjaCwgcyk7CisgICAgICAgICAgICAJICByZXR1cm4gcy50b1N0cmluZygpOworICAgICAgICAgCSAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisgICAgICAKKyAgICAvKioKKyAgICAqIEdldHRpbmcgdGhlIGNoYXJhY3RlciB3aXRoIHRoZSB0b2tlbml6ZWQgYXJndW1lbnQgbmFtZQorICAgICogQHBhcmFtIG5hbWUgb2YgdGhlIGNoYXJhY3RlcgorICAgICogQHJldHVybiBjaGFyYWN0ZXIgd2l0aCB0aGUgdG9rZW5pemVkIGFyZ3VtZW50IG5hbWUgb3IgLTEgaWYgY2hhcmFjdGVyCisgICAgKiAgICAgICAgIGlzIG5vdCBmb3VuZAorICAgICovCisgICAgcHJpdmF0ZSBzeW5jaHJvbml6ZWQgaW50IGdldEdyb3VwQ2hhcihTdHJpbmcgbmFtZSwgaW50IGNob2ljZSkgCisgICAgeworICAgIAlmb3IgKGludCBpID0gMDsgaSA8IG1fZ3JvdXBjb3VudF87IGkgKyspIHsKKyAgICAgICAgCS8vIHBvcHVsYXRpbmcgdGhlIGRhdGEgc2V0IG9mIGdyb3VwdGFibGUKKyAgICAgICAgCQorICAgICAgICAJaW50IHN0YXJ0Z3BzdHJpbmRleCA9IGdldEdyb3VwTGVuZ3RocyhpLCBtX2dyb3Vwb2Zmc2V0c18sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2dyb3VwbGVuZ3Roc18pOworICAgICAgICAgIAorICAgICAgICAJLy8gc2hpZnQgb3V0IHRvIGZ1bmN0aW9uCisgICAgICAgIAlpbnQgcmVzdWx0ID0gZ2V0R3JvdXBDaGFyKHN0YXJ0Z3BzdHJpbmRleCwgbV9ncm91cGxlbmd0aHNfLCBuYW1lLCAKKyAgICAgICAgCSAgICAgICAgICAgICAgICAgICAgICAgICAgY2hvaWNlKTsKKyAgICAgICAgCWlmIChyZXN1bHQgIT0gLTEpIHsKKyAgICAgICAgICAgIAlyZXR1cm4gKG1fZ3JvdXBpbmZvX1tpICogbV9ncm91cHNpemVfXSA8PCBHUk9VUF9TSElGVF8pIAorICAgICAgICAgICAgCSAgICAgICAgIHwgcmVzdWx0OworICAgICAgICAJfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgICAKKyAgICAvKioKKyAgICAqIENvbXBhcmVzIGFuZCByZXRyaWV2ZSBjaGFyYWN0ZXIgaWYgbmFtZSBpcyBmb3VuZCB3aXRoaW4gdGhlIGFyZ3VtZW50IAorICAgICogZ3JvdXAKKyAgICAqIEBwYXJhbSBpbmRleCBpbmRleCB3aGVyZSB0aGUgc2V0IG9mIG5hbWVzIHJlc2lkZSBpbiB0aGUgZ3JvdXAgYmxvY2sKKyAgICAqIEBwYXJhbSBsZW5ndGggbGlzdCBvZiBsZW5ndGhzIG9mIHRoZSBzdHJpbmdzCisgICAgKiBAcGFyYW0gbmFtZSBjaGFyYWN0ZXIgbmFtZSB0byBzZWFyY2ggZm9yCisgICAgKiBAcGFyYW0gY2hvaWNlIG9mIGVpdGhlciAxLjAgb3IgdGhlIG1vc3QgY3VycmVudCB1bmljb2RlIG5hbWUKKyAgICAqIEByZXR1cm4gcmVsYXRpdmUgY2hhcmFjdGVyIGluIHRoZSBncm91cCB3aGljaCBtYXRjaGVzIG5hbWUsIG90aGVyd2lzZSBpZiAgIAorICAgICogICAgICAgICBub3QgZm91bmQsIC0xIHdpbGwgYmUgcmV0dXJuZWQKKyAgICAqLworICAgIHByaXZhdGUgaW50IGdldEdyb3VwQ2hhcihpbnQgaW5kZXgsIGNoYXIgbGVuZ3RoW10sIFN0cmluZyBuYW1lLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNob2ljZSkKKyAgICB7IAorICAgICAgICBieXRlIGIgPSAwOyAKKyAgICAgICAgY2hhciB0b2tlbjsKKyAgICAgICAgaW50IGxlbjsKKyAgICAgICAgaW50IG5hbWVsZW4gPSBuYW1lLmxlbmd0aCgpOworICAgICAgICBpbnQgbmluZGV4OworICAgICAgICBpbnQgY291bnQ7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCByZXN1bHQgPSAwOyByZXN1bHQgPD0gTElORVNfUEVSX0dST1VQXzsgcmVzdWx0ICsrKSB7CisgICAgICAgICAgICBuaW5kZXggPSAwOworICAgICAgICAgICAgbGVuID0gbGVuZ3RoW3Jlc3VsdF07CisgICAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGNob2ljZSA9PSBVQ2hhcmFjdGVyTmFtZUNob2ljZS5VX1VOSUNPREVfMTBfQ0hBUl9OQU1FKSB7CisgICAgICAgICAgICAgICAgaW50IG9sZGluZGV4ID0gaW5kZXg7CisgICAgICAgICAgICAgICAgaW5kZXggKz0gVUNoYXJhY3RlclV0aWwuc2tpcEJ5dGVTdWJTdHJpbmcobV9ncm91cHN0cmluZ18sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCwgbGVuLCAoYnl0ZSknOycpOworICAgICAgICAgICAgICAgIGxlbiAtPSAoaW5kZXggLSBvbGRpbmRleCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBudW1iZXIgb2YgdG9rZW5zIGlzID4gdGhlIGxlbmd0aCBvZiB0aGUgbmFtZQorICAgICAgICAgICAgLy8gd3JpdGUgZWFjaCBsZXR0ZXIgZGlyZWN0bHksIGFuZCB3cml0ZSBhIHRva2VuIHdvcmQgcGVyIHRva2VuCisgICAgICAgICAgICBmb3IgKGNvdW50ID0gMDsgY291bnQgPCBsZW4gJiYgbmluZGV4ICE9IC0xICYmIG5pbmRleCA8IG5hbWVsZW47CisgICAgICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgYiA9IG1fZ3JvdXBzdHJpbmdfW2luZGV4ICsgY291bnRdOworICAgICAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChiID49IG1fdG9rZW50YWJsZV8ubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChuYW1lLmNoYXJBdChuaW5kZXggKyspICE9IChiICYgMHhGRikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5pbmRleCA9IC0xOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICB0b2tlbiA9IG1fdG9rZW50YWJsZV9bYiAmIDB4RkZdOworICAgICAgICAgICAgICAgICAgICBpZiAodG9rZW4gPT0gMHhGRkZFKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIGEgbGVhZCBieXRlIGZvciBhIGRvdWJsZS1ieXRlIHRva2VuCisgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbiA9IG1fdG9rZW50YWJsZV9bYiA8PCA4IHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtX2dyb3Vwc3RyaW5nX1tpbmRleCArIGNvdW50XSAmIDB4MDBmZildOworICAgICAgICAgICAgICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKHRva2VuID09IDB4RkZGRikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWUuY2hhckF0KG5pbmRleCArKykgIT0gKGIgJiAweEZGKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5pbmRleCA9IC0xOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29tcGFyZSB0b2tlbiB3aXRoIG5hbWUKKyAgICAgICAgICAgICAgICAgICAgICAgIG5pbmRleCA9IFVDaGFyYWN0ZXJVdGlsLmNvbXBhcmVOdWxsVGVybUJ5dGVTdWJTdHJpbmcoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSwgbV90b2tlbnN0cmluZ18sIG5pbmRleCwgdG9rZW4pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobmFtZWxlbiA9PSBuaW5kZXggJiYgCisgICAgICAgICAgICAgICAgKGNvdW50ID09IGxlbiB8fCBtX2dyb3Vwc3RyaW5nX1tpbmRleCArIGNvdW50XSA9PSAnOycpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGluZGV4ICs9IGxlbjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgICAgIAorICAgIC8qKgorICAgICogQmluYXJ5IHNlYXJjaCBmb3IgdGhlIGdyb3VwIHN0cmluZ3Mgc2V0IHRoYXQgY29udGFpbnMgdGhlIGFyZ3VtZW50IFVuaWNvZGUgCisgICAgKiBjb2RlIHBvaW50J3MgbW9zdCBzaWduaWZpY2FudCBiaXRzLgorICAgICogVGhlIHJldHVybiB2YWx1ZSBpcyBhbHdheXMgYSB2YWxpZCBncm91cCBzdHJpbmcgc2V0IHRoYXQgY29udGFpbiBtc2IuCisgICAgKiBJZiBncm91cCBzdHJpbmcgc2V0IGlzIG5vdCBmb3VuZCwgLTEgaXMgcmV0dXJuZWQKKyAgICAqIEBwYXJhbSBjaCB0aGUgY29kZSBwb2ludCB0byBsb29rIGZvcgorICAgICogQHJldHVybiBncm91cCBzdHJpbmcgc2V0IGluZGV4IGluIGRhdGF0YWJsZSBvdGhlcndpc2UgLTEgaXMgcmV0dXJuZWQgaWYgCisgICAgKiAgICAgICAgIGdyb3VwIHN0cmluZyBzZXQgaXMgbm90IGZvdW5kCisgICAgKi8KKyAgICBwcml2YXRlIGludCBnZXRHcm91cFN0cmluZ0luZGV4KGludCBjaCkKKyAgICB7CisgICAgICAgIC8vIGdldHMgdGhlIG1zYgorICAgICAgICBpbnQgbXNiID0gY2ggPj4gR1JPVVBfU0hJRlRfLAorICAgICAgICAgICAgZW5kID0gbV9ncm91cGNvdW50XywKKyAgICAgICAgICAgIHN0YXJ0LAorICAgICAgICAgICAgZ2luZGV4ID0gMDsKKyAgICAgICAgICAgIAorICAgICAgICAvLyBiaW5hcnkgc2VhcmNoIGZvciB0aGUgZ3JvdXAgb2YgbmFtZXMgdGhhdCBjb250YWlucyB0aGUgb25lIGZvciBjb2RlCisgICAgICAgIGZvciAoc3RhcnQgPSAwOyBzdGFydCA8IGVuZCAtIDE7KSB7CisgICAgICAgICAgICBnaW5kZXggPSAoc3RhcnQgKyBlbmQpID4+IDE7CisgICAgICAgICAgICBpZiAobXNiIDwgbV9ncm91cGluZm9fW2dpbmRleCAqIG1fZ3JvdXBzaXplX10pIHsKKyAgICAgICAgICAgICAgICBlbmQgPSBnaW5kZXg7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBzdGFydCA9IGdpbmRleDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIHJldHVybiB0aGlzIGlmIGl0IGlzIGFuIGV4YWN0IG1hdGNoCisgICAgICAgIGlmIChtc2IgPT0gbV9ncm91cGluZm9fW3N0YXJ0ICogbV9ncm91cHNpemVfXSkgeworICAgICAgICAgICAgc3RhcnQgPSBzdGFydCAqIG1fZ3JvdXBzaXplXzsKKyAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyVXRpbC50b0ludCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9ncm91cGluZm9fW3N0YXJ0ICsgT0ZGU0VUX0hJR0hfT0ZGU0VUX10sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2dyb3VwaW5mb19bc3RhcnQgKyBPRkZTRVRfTE9XX09GRlNFVF9dKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogR2V0cyB0aGUgZ3JvdXAgbmFtZSBvZiB0aGUgY2hhcmFjdGVyCisgICAgKiBAcGFyYW0gY2ggY2hhcmFjdGVyIHRvIGdldCB0aGUgZ3JvdXAgbmFtZSAKKyAgICAqIEBwYXJhbSBjaG9pY2UgbmFtZSBjaG9pY2Ugc2VsZWN0b3IgdG8gY2hvb3NlIGEgdW5pY29kZSAxLjAgb3IgbmV3ZXIgbmFtZQorICAgICovCisgICAgcHJpdmF0ZSBzeW5jaHJvbml6ZWQgU3RyaW5nIGdldEdyb3VwTmFtZShpbnQgY2gsIGludCBjaG9pY2UpIAorICAgIHsgICAgICAgICAgICAKKyAgICAgICAgLy8gZ2V0cyB0aGUgbXNiCisgICAgICAgIGludCBtc2IgICA9IGdldENvZGVwb2ludE1TQihjaCk7CisgICAgICAgIGludCBncm91cCA9IGdldEdyb3VwKGNoKTsKKworICAgICAgICAvLyByZXR1cm4gdGhpcyBpZiBpdCBpcyBhbiBleGFjdCBtYXRjaAorICAgICAgICBpZiAobXNiID09IG1fZ3JvdXBpbmZvX1tncm91cCAqIG1fZ3JvdXBzaXplX10pIHsKKyAgICAgICAgICAgIGludCBpbmRleCA9IGdldEdyb3VwTGVuZ3Rocyhncm91cCwgbV9ncm91cG9mZnNldHNfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2dyb3VwbGVuZ3Roc18pOworICAgICAgICAgICAgaW50IG9mZnNldCA9IGNoICYgR1JPVVBfTUFTS187CisgICAgICAgICAgICByZXR1cm4gZ2V0R3JvdXBOYW1lKGluZGV4ICsgbV9ncm91cG9mZnNldHNfW29mZnNldF0sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2dyb3VwbGVuZ3Roc19bb2Zmc2V0XSwgY2hvaWNlKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogR2V0cyB0aGUgY2hhcmFjdGVyIGV4dGVuZGVkIHR5cGUKKyAgICAqIEBwYXJhbSBjaCBjaGFyYWN0ZXIgdG8gYmUgdGVzdGVkCisgICAgKiBAcmV0dXJuIGV4dGVuZGVkIHR5cGUgaXQgaXMgYXNzb2NpYXRlZCB3aXRoCisgICAgKi8KKyAgICBwcml2YXRlIGludCBnZXRUeXBlKGludCBjaCkKKyAgICB7CisgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzTm9uQ2hhcmFjdGVyKGNoKSkgeyAgCisgICAgICAgICAgICAvLyBub3QgYSBjaGFyYWN0ZXIgd2UgcmV0dXJuIGEgaW52YWxpZCBjYXRlZ29yeSBjb3VudAorICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXJDYXRlZ29yeS5OT05fQ0hBUkFDVEVSXzsgICAgCisgICAgICAgIH0gICAgCisgICAgICAgIGludCByZXN1bHQgPSBVQ2hhcmFjdGVyLmdldFR5cGUoY2gpOworICAgICAgICBpZiAocmVzdWx0ID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5TVVJST0dBVEUpIHsgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChjaCA8PSBVVEYxNi5MRUFEX1NVUlJPR0FURV9NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTEVBRF9TVVJST0dBVEVfOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gVUNoYXJhY3RlckNhdGVnb3J5LlRSQUlMX1NVUlJPR0FURV87CisgICAgICAgICAgICB9ICAgIAorICAgICAgICB9ICAgIAorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIEdldHRpbmcgdGhlIGNoYXJhY3RlciB3aXRoIGV4dGVuZGVkIG5hbWUgb2YgdGhlIGZvcm0gPC4uLi4+LgorICAgICogQHBhcmFtIG5hbWUgb2YgdGhlIGNoYXJhY3RlciB0byBiZSBmb3VuZAorICAgICogQHBhcmFtIGNob2ljZSBuYW1lIGNob2ljZQorICAgICogQHJldHVybiBjaGFyYWN0ZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBuYW1lLCAtMSBpZiBzdWNoIGNoYXJhY3RlciBpcyBub3QKKyAgICAqICAgICAgICAgICAgICAgICAgIGZvdW5kIGFuZCAtMiBpZiB3ZSBzaG91bGQgY29udGludWUgd2l0aCB0aGUgc2VhcmNoLgorICAgICovCisgICAgcHJpdmF0ZSBpbnQgZ2V0RXh0ZW5kZWRDaGFyKFN0cmluZyBuYW1lLCBpbnQgY2hvaWNlKQorICAgIHsKKyAgICAgICAgaWYgKG5hbWUuY2hhckF0KDApID09ICc8JykgeyAgICAgICAgCisgICAgICAgICAgICBpZiAoY2hvaWNlID09IFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLlVfRVhURU5ERURfQ0hBUl9OQU1FKSB7ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaW50IGVuZEluZGV4ID0gbmFtZS5sZW5ndGgoKSAtIDE7CisgICAgICAgICAgICAgICAgaWYgKG5hbWUuY2hhckF0KGVuZEluZGV4KSA9PSAnPicpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0SW5kZXggPSBuYW1lLmxhc3RJbmRleE9mKCctJyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdGFydEluZGV4ID49IDApIHsgLy8gV2UndmUgZ290IGEgY2F0ZWdvcnkuICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0SW5kZXggKys7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gLTE7CisgICAgICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IEludGVnZXIucGFyc2VJbnQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZS5zdWJzdHJpbmcoc3RhcnRJbmRleCwgZW5kSW5kZXgpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7ICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBOb3cgdmFsaWRhdGUgdGhlIGNhdGVnb3J5IG5hbWUuIFdlIGNvdWxkIHVzZSBhIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmluYXJ5IHNlYXJjaCwgb3IgYSB0cmllLCBpZiB3ZSByZWFsbHkgd2FudGVkIHRvLiAKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0eXBlID0gbmFtZS5zdWJzdHJpbmcoMSwgc3RhcnRJbmRleCAtIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbmd0aCA9IFVDaGFyYWN0ZXJDYXRlZ29yeS5UWVBFX05BTUVTXy5sZW5ndGg7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0aDsgKysgaSkgeyAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZS5jb21wYXJlVG8oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJDYXRlZ29yeS5UWVBFX05BTUVTX1tpXSkgPT0gMCkgeyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGdldFR5cGUocmVzdWx0KSA9PSBpKSB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7ICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gLTE7IAorICAgICAgICB9ICAgIAorICAgICAgICByZXR1cm4gLTI7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2xhbmcvVUNoYXJhY3Rlck5hbWVDaG9pY2UuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VDaGFyYWN0ZXJOYW1lQ2hvaWNlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTM3ZGQ4MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VDaGFyYWN0ZXJOYW1lQ2hvaWNlLmphdmEKQEAgLTAsMCArMSwzNSBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICRTb3VyY2U6IAorKiAgICAgL3Vzci9jdnMvaWN1NGovaWN1NGovc3JjL2NvbS9pYm0vaWN1L3RleHQvVUNoYXJhY3Rlck5hbWVDaG9pY2VFbnVtLmphdmEgJCAKKyogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDU6NTcgJCAKKyogJFJldmlzaW9uOiAxLjQgJAorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5sYW5nOworCisvKioKKyogSW50ZXJuYWwgY2xhc3MgY29udGFpbmluZyBzZWxlY3RvciBjb25zdGFudHMgZm9yIHRoZSB1bmljb2RlIGNoYXJhY3RlciBuYW1lcy4KKyogQ29uc3RhbnRzIHJlcHJlc2VudGluZyB0aGUgIm1vZGVybiIgbmFtZSBvZiBhIFVuaWNvZGUgY2hhcmFjdGVyIG9yIHRoZSBuYW1lIAorKiB0aGF0IHdhcyBkZWZpbmVkIGluIFVuaWNvZGUgdmVyc2lvbiAxLjAsIGJlZm9yZSB0aGUgVW5pY29kZSBzdGFuZGFyZCAKKyogbWVyZ2VkIHdpdGggSVNPLTEwNjQ2LgorKiBBcmd1bWVudHMgZm9yIDxhIGhyZWY9VUNoYXJhY3Rlck5hbWUuaHRtbD5VQ2hhcmFjdGVyTmFtZTwvYT4KKyogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyogQHNpbmNlIG9jdDA2MDAKKyovCisKK2ludGVyZmFjZSBVQ2hhcmFjdGVyTmFtZUNob2ljZQoreworICAvLyBwdWJsaWMgdmFyaWFibGVzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAKKyAgc3RhdGljIGZpbmFsIGludCBVX1VOSUNPREVfQ0hBUl9OQU1FID0gMDsKKyAgc3RhdGljIGZpbmFsIGludCBVX1VOSUNPREVfMTBfQ0hBUl9OQU1FID0gMTsKKyAgc3RhdGljIGZpbmFsIGludCBVX0VYVEVOREVEX0NIQVJfTkFNRSA9IDI7CisgIHN0YXRpYyBmaW5hbCBpbnQgVV9DSEFSX05BTUVfQ0hPSUNFX0NPVU5UID0gMzsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VDaGFyYWN0ZXJOYW1lSXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VDaGFyYWN0ZXJOYW1lSXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OTZjOThlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2xhbmcvVUNoYXJhY3Rlck5hbWVJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMzM0IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VDaGFyYWN0ZXJOYW1lSXRlcmF0b3IuamF2YSx2ICQKKyogJERhdGU6IDIwMDIvMDQvMDUgMDE6Mzg6MTUgJAorKiAkUmV2aXNpb246IDEuMyAkCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UubGFuZzsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmFsdWVJdGVyYXRvcjsKKworLyoqCisgKiA8cD5DbGFzcyBlbmFibGluZyBpdGVyYXRpb24gb2YgdGhlIGNvZGVwb2ludHMgYW5kIHRoZWlyIG5hbWVzLjwvcD4KKyAqIDxwPlJlc3VsdCBvZiBlYWNoIGl0ZXJhdGlvbiBjb250YWlucyBhIHZhbGlkIGNvZGVwb2ludCB0aGF0IGhhcyB2YWxpZCAKKyAqIG5hbWUuPC9wPgorICogPHA+U2VlIFVDaGFyYWN0ZXIuZ2V0TmFtZUl0ZXJhdG9yKCkgZm9yIGFuIGV4YW1wbGUgb2YgdXNlLjwvcD4KKyAqIEBhdXRob3Igc3lud2VlCisgKiBAc2luY2UgcmVsZWFzZSAyLjEsIE1hcmNoIDUgMjAwMgorICovCitjbGFzcyBVQ2hhcmFjdGVyTmFtZUl0ZXJhdG9yIGltcGxlbWVudHMgVmFsdWVJdGVyYXRvcgoreworCS8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwkKKwkvKioKKyAgICAqIDxwPkdldHMgdGhlIG5leHQgcmVzdWx0IGZvciB0aGlzIGl0ZXJhdGlvbiBhbmQgcmV0dXJucyAKKyAgICAqIHRydWUgaWYgd2UgYXJlIG5vdCBhdCB0aGUgZW5kIG9mIHRoZSBpdGVyYXRpb24sIGZhbHNlIG90aGVyd2lzZS48L3A+CisgICAgKiA8cD5JZiB0aGUgcmV0dXJuIGJvb2xlYW4gaXMgYSBmYWxzZSwgdGhlIGNvbnRlbnRzIG9mIGVsZW1lbnRzIHdpbGwgbm90CisgICAgKiBiZSB1cGRhdGVkLjwvcD4KKyAgICAqIEBwYXJhbSBlbGVtZW50IGZvciBzdG9yaW5nIHRoZSByZXN1bHQgY29kZXBvaW50IGFuZCBuYW1lCisgICAgKiBAcmV0dXJuIHRydWUgaWYgd2UgYXJlIG5vdCBhdCB0aGUgZW5kIG9mIHRoZSBpdGVyYXRpb24sIGZhbHNlIG90aGVyd2lzZS4KKyAgICAqIEBzZWUgRWxlbWVudAorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHVibGljIGJvb2xlYW4gbmV4dChWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQgZWxlbWVudCkKKyAgICB7CisgICAgCWlmIChtX2N1cnJlbnRfID49IG1fbGltaXRfKSB7CisgICAgCQlyZXR1cm4gZmFsc2U7CisgICAgCX0KKyAgICAJCisgICAgCWlmIChtX2Nob2ljZV8gIT0gVUNoYXJhY3Rlck5hbWVDaG9pY2UuVV9VTklDT0RFXzEwX0NIQVJfTkFNRSkgeworICAgIAkJaW50IGxlbmd0aCA9IG1fbmFtZV8uZ2V0QWxnb3JpdGhtTGVuZ3RoKCk7CisgICAgCQlpZiAobV9hbGdvcml0aG1JbmRleF8gPCBsZW5ndGgpIHsKKyAgICAJCQl3aGlsZSAobV9hbGdvcml0aG1JbmRleF8gPCBsZW5ndGgpIHsKKyAgICAJCQkJLy8gZmluZCB0aGUgYWxnb3JpdGhtIHJhbmdlIHRoYXQgY291bGQgY29udGFpbiBtX2N1cnJlbnRfIAorICAgIAkJCQlpZiAobV9hbGdvcml0aG1JbmRleF8gPCAwIHx8CisgICAgCQkJCSAgICBtX25hbWVfLmdldEFsZ29yaXRobUVuZChtX2FsZ29yaXRobUluZGV4XykgPCAKKyAgICAJCQkJICAgIG1fY3VycmVudF8pIHsKKyAgICAJCQkJIAltX2FsZ29yaXRobUluZGV4XyArKzsgICAKKyAgICAJCQkJfQorICAgIAkJCQllbHNlIHsKKyAgICAJCQkJCWJyZWFrOworICAgIAkJCQl9CisgICAgCQkJfQorICAgIAkJCQorICAgIAkJCWlmIChtX2FsZ29yaXRobUluZGV4XyA8IGxlbmd0aCkgeworICAgIAkJCQkvLyBpbnRlcmxlYXZlIHRoZSBkYXRhLWRyaXZlbiBvbmVzIHdpdGggdGhlIGFsZ29yaXRobWljIG9uZXMKKyAgIAkJCQkJLy8gaXRlcmF0ZSBvdmVyIGFsbCBhbGdvcml0aG1pYyByYW5nZXM7IGFzc3VtZSB0aGF0IHRoZXkgYXJlIAorICAgCQkJCQkvLyBpbiBhc2NlbmRpbmcgb3JkZXIKKyAgIAkJCQkJaW50IHN0YXJ0ID0gbV9uYW1lXy5nZXRBbGdvcml0aG1TdGFydChtX2FsZ29yaXRobUluZGV4Xyk7CisgICAJCQkJCWlmIChtX2N1cnJlbnRfIDwgc3RhcnQpIHsKKyAgIAkJCQkJCS8vIHRoaXMgc2hvdWxkIGdldCByaWQgb2YgdGhvc2UgY29kZXBvaW50cyB0aGF0IGFyZSBub3QKKyAgIAkJCQkJCS8vIGluIHRoZSBhbGdvcml0aG1pYyByYW5nZQorICAgCQkJCQkJaW50IGVuZCA9IHN0YXJ0OworICAgICAgICAJCSAgICAJaWYgKG1fbGltaXRfIDw9IHN0YXJ0KSB7CisgICAgICAgICAJCSAJICAgICAgCWVuZCA9IG1fbGltaXRfOworICAgICAgICAgIAkJICAJCX0KKyAgICAgICAgICAgIAkJCWlmICghaXRlcmF0ZUdyb3VwKGVsZW1lbnQsIGVuZCkpIHsKKyAgICAgICAgICAgIAkJCQltX2N1cnJlbnRfICsrOworICAgICAgICAgICAgICAJIAkJIAlyZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIAkJCX0JCisgICAgICAgIAkJCX0KKyAgICAgICAgCQorICAgICAgICAJCQlpZiAobV9jdXJyZW50XyA+PSBtX2xpbWl0XykgeworICAgICAgICAJCQkJLy8gYWZ0ZXIgaXRlcmF0ZUdyb3VwIGZhaWxzLCBjdXJyZW50IGNvZGVwb2ludCBtYXkgYmUKKyAgICAgICAgCQkJCS8vIGdyZWF0ZXIgdGhhbiBsaW1pdAorICAgICAgICAJCQkJcmV0dXJuIGZhbHNlOworICAgICAgICAJCQl9CisgICAgICAgIAkJCQorICAgICAgICAJCQllbGVtZW50LmludGVnZXIgPSBtX2N1cnJlbnRfOworICAgICAgICAJCQllbGVtZW50LnZhbHVlICAgPSBtX25hbWVfLmdldEFsZ29yaXRobU5hbWUobV9hbGdvcml0aG1JbmRleF8sIAorICAgICAgICAJCSAJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRfKTsKKyAgICAgICAgCQkJLy8gcmVzZXQgdGhlIGdyb3VwIGluZGV4IGlmIHdlIGFyZSBpbiB0aGUgYWxnb3JpdGhtaWMgbmFtZXMgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAJCQltX2dyb3VwSW5kZXhfID0gLTE7IAorICAgICAgICAJCQltX2N1cnJlbnRfICsrOworICAgICAgICAJCQlyZXR1cm4gdHJ1ZTsKKyAgICAJCQl9CisgICAgCQl9CisgICAgCX0KKyAgICAJLy8gZW51bWVyYXRlIHRoZSBjaGFyYWN0ZXIgbmFtZXMgYWZ0ZXIgdGhlIGxhc3QgYWxnb3JpdGhtaWMgcmFuZ2UgCisgICAgCWlmICghaXRlcmF0ZUdyb3VwKGVsZW1lbnQsIG1fbGltaXRfKSkgeworICAgIAkJbV9jdXJyZW50XyArKzsKKyAgICAJCXJldHVybiB0cnVlOworICAgIAl9CisgICAgCWVsc2UgaWYgKG1fY2hvaWNlXyA9PSBVQ2hhcmFjdGVyTmFtZUNob2ljZS5VX0VYVEVOREVEX0NIQVJfTkFNRSkgeworICAgIAkJaWYgKCFpdGVyYXRlRXh0ZW5kZWQoZWxlbWVudCwgbV9saW1pdF8pKSB7CisgICAgCQkJbV9jdXJyZW50XyArKzsKKyAgICAJCQlyZXR1cm4gdHJ1ZTsKKyAgICAJCX0KKyAgICAJfQorICAgIAkKKwkJcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIDxwPlJlc2V0cyB0aGUgaXRlcmF0b3IgdG8gc3RhcnQgaXRlcmF0aW5nIGZyb20gdGhlIGludGVnZXIgaW5kZXggCisgICAgKiBVQ2hhcmFjdGVyLk1JTl9WQUxVRSBvciBYIGlmIGEgc2V0UmFuZ2UoWCwgWSkgaGFzIGJlZW4gY2FsbGVkIHByZXZpb3VzbHkuCisgICAgKiA8L3A+CisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZXNldCgpCisgICAgeworICAgIAltX2N1cnJlbnRfICAgICAgICA9IG1fc3RhcnRfOworICAgIAltX2dyb3VwSW5kZXhfICAgICA9IC0xOworICAgIAltX2FsZ29yaXRobUluZGV4XyA9IC0xOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD5SZXN0cmljdHMgdGhlIHJhbmdlIG9mIGludGVnZXJzIHRvIGl0ZXJhdGUgYW5kIHJlc2V0cyB0aGUgaXRlcmF0aW9uIAorICAgICAqIHRvIGJlZ2luIGF0IHRoZSBpbmRleCBhcmd1bWVudCBzdGFydC48L3A+CisgICAgICogPHA+SWYgc2V0UmFuZ2Uoc3RhcnQsIGVuZCkgaXMgbm90IHBlcmZvcm1lZCBiZWZvcmUgbmV4dChlbGVtZW50KSBpcyAKKyAgICAgKiBjYWxsZWQsIHRoZSBpdGVyYXRpb24gd2lsbCBzdGFydCBmcm9tIHRoZSBpbnRlZ2VyIGluZGV4IAorICAgICAqIFVDaGFyYWN0ZXIuTUlOX1ZBTFVFIGFuZCBlbmQgYXQgVUNoYXJhY3Rlci5NQVhfVkFMVUUuPC9wPgorICAgICAqIDxwPgorICAgICAqIElmIHRoaXMgcmFuZ2UgaXMgc2V0IG91dHNpZGUgdGhlIHJhbmdlIG9mIFVDaGFyYWN0ZXIuTUlOX1ZBTFVFIGFuZCAKKyAgICAgKiBVQ2hhcmFjdGVyLk1BWF9WQUxVRSwgbmV4dChlbGVtZW50KSB3aWxsIGFsd2F5cyByZXR1cm4gZmFsc2UuCisgICAgICogPC9wPgorICAgICAqIEBwYXJhbSBzdGFydCBmaXJzdCBpbnRlZ2VyIGluIHJhbmdlIHRvIGl0ZXJhdGUKKyAgICAgKiBAcGFyYW0gbGltaXQgMSBpbnRlZ2VyIGFmdGVyIHRoZSBsYXN0IGludGVnZXIgaW4gcmFuZ2UgCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIHdoZW4gYXR0ZW1wdGluZyB0byBzZXQgYW4gCisgICAgICogICAgICAgICAgICBpbGxlZ2FsIHJhbmdlLiBFLmcgbGltaXQgPD0gc3RhcnQKKyAgICAgKiBAZHJhZnQgMi4xCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UmFuZ2UoaW50IHN0YXJ0LCBpbnQgbGltaXQpCisgICAgeworICAgIAlpZiAoc3RhcnQgPj0gbGltaXQpIHsKKyAgICAJICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgCSAgICAgICAgInN0YXJ0IG9yIGxpbWl0IGhhcyB0byBiZSB2YWxpZCBVbmljb2RlIGNvZGVwb2ludHMgYW5kIHN0YXJ0IDwgbGltaXQiKTsKKyAgICAJfQorICAgIAlpZiAoc3RhcnQgPCBVQ2hhcmFjdGVyLk1JTl9WQUxVRSkgeworICAgIAkJbV9zdGFydF8gPSBVQ2hhcmFjdGVyLk1JTl9WQUxVRTsKKyAgICAJfSAKKyAgICAJZWxzZSB7CisgICAgCQltX3N0YXJ0XyA9IHN0YXJ0OworICAgIAl9CisgICAgCQorICAgIAlpZiAobGltaXQgPiBVQ2hhcmFjdGVyLk1BWF9WQUxVRSArIDEpIHsKKyAgICAJCW1fbGltaXRfID0gVUNoYXJhY3Rlci5NQVhfVkFMVUUgKyAxOworICAgIAl9CisgICAgCWVsc2UgeworICAgIAkJbV9saW1pdF8gPSBsaW1pdDsKKyAgICAJfQorICAgIAltX2N1cnJlbnRfID0gbV9zdGFydF87CisgICAgfQorICAgIAorCS8vIHByb3RlY3RlZCBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAqIENvbnN0cnVjdG9yCisgICAgKiBAcGFyYW0gbmFtZSBuYW1lIGRhdGEKKyAgICAqIEBwYXJhbSBjaG9pY2UgbmFtZSBjaG9pY2UgZnJvbSB0aGUgY2xhc3MgCisgICAgKiAgICAgICAgICAgICAgIGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3Rlck5hbWVDaG9pY2UKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBVQ2hhcmFjdGVyTmFtZUl0ZXJhdG9yKFVDaGFyYWN0ZXJOYW1lIG5hbWUsIGludCBjaG9pY2UpCisgICAgeworICAgIAltX25hbWVfICAgID0gbmFtZTsKKyAgICAJLy8gbm8gZXhwbGljaXQgY2hvaWNlIGluIFVDaGFyYWN0ZXIgc28gbm8gY2hlY2tzIG9uIGNob2ljZQorICAgICAJbV9jaG9pY2VfICA9IGNob2ljZTsKKyAgICAJbV9zdGFydF8gICA9IFVDaGFyYWN0ZXIuTUlOX1ZBTFVFOworICAgIAltX2xpbWl0XyAgID0gVUNoYXJhY3Rlci5NQVhfVkFMVUUgKyAxOworICAgIAltX2N1cnJlbnRfID0gbV9zdGFydF87CisgICAgfQorICAgIAorICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAJCisgIAkvKioKKyAgCSAqIE5hbWUgZGF0YQorICAJICovCisgIAlwcml2YXRlIFVDaGFyYWN0ZXJOYW1lIG1fbmFtZV87CisgIAkvKioKKyAgCSAqIE5hbWUgY2hvaWNlCisgIAkgKi8KKyAgCXByaXZhdGUgaW50IG1fY2hvaWNlXzsKKyAgCSAvKioKKyAgICAgKiBTdGFydCBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX3N0YXJ0XzsKKyAgICAvKioKKyAgICAgKiBFbmQgKyAxIGl0ZXJhdGlvbiByYW5nZQorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fbGltaXRfOworICAgIC8qKgorICAgICAqIEN1cnJlbnQgY29kZXBvaW50CisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9jdXJyZW50XzsKKyAgICAvKioKKyAgICAgKiBHcm91cCBpbmRleAorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fZ3JvdXBJbmRleF8gPSAtMTsKKyAgICAvKioKKyAgICAgKiBBbGdvcml0aG0gaW5kZXgKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX2FsZ29yaXRobUluZGV4XyA9IC0xOworICAgIC8qKgorICAgICogR3JvdXAgdXNlCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyIEdST1VQX09GRlNFVFNfW10gPSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IGNoYXJbVUNoYXJhY3Rlck5hbWUuTElORVNfUEVSX0dST1VQXyArIDFdOworICAgIHByaXZhdGUgc3RhdGljIGNoYXIgR1JPVVBfTEVOR1RIU19bXSA9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgY2hhcltVQ2hhcmFjdGVyTmFtZS5MSU5FU19QRVJfR1JPVVBfICsgMV07CisgICAgCisgICAgLy8gcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogR3JvdXAgbmFtZSBpdGVyYXRpb24sIGl0ZXJhdGUgYWxsIHRoZSBuYW1lcyBpbiB0aGUgY3VycmVudCAzMi1ncm91cCBhbmQgCisgICAgICogcmV0dXJucyB0aGUgZmlyc3QgY29kZXBvaW50IHRoYXQgaGFzIGEgdmFsaWQgbmFtZS4KKyAJICogQHBhcmFtIHJlc3VsdCBzdG9yZXMgdGhlIHJlc3VsdCBjb2RlcG9pbnQgYW5kIG5hbWUKKyAJICogQHBhcmFtIGxpbWl0IGxhc3QgY29kZXBvaW50ICsgMSBpbiByYW5nZSB0byBzZWFyY2gKKyAJICogQHJldHVybiBmYWxzZSBpZiBhIGNvZGVwb2ludCB3aXRoIGEgbmFtZSBpcyBmb3VuZCBpbiBncm91cCBhbmQgd2UgY2FuCisgCSAqICAgICAgICAgYmFpbCBmcm9tIGZ1cnRoZXIgaXRlcmF0aW9uLCB0cnVlIHRvIGNvbnRpbnVlIG9uIHdpdGggdGhlIAorIAkgKiAgICAgICAgIGl0ZXJhdGlvbgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBpdGVyYXRlU2luZ2xlR3JvdXAoVmFsdWVJdGVyYXRvci5FbGVtZW50IHJlc3VsdCwgaW50IGxpbWl0KSAKKyAgICB7CisgICAgCXN5bmNocm9uaXplZChHUk9VUF9PRkZTRVRTXykgeworICAgIAlzeW5jaHJvbml6ZWQoR1JPVVBfTEVOR1RIU18pIHsKKyAJCQlpbnQgaW5kZXggPSBtX25hbWVfLmdldEdyb3VwTGVuZ3RocyhtX2dyb3VwSW5kZXhfLCBHUk9VUF9PRkZTRVRTXywgCisgICAgCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHUk9VUF9MRU5HVEhTXyk7CisgICAgICAgIAl3aGlsZSAobV9jdXJyZW50XyA8IGxpbWl0KSB7CisgICAgICAgIAkJaW50ICAgIG9mZnNldCA9IG1fbmFtZV8uZ2V0R3JvdXBPZmZzZXQobV9jdXJyZW50Xyk7CisgICAgICAgIAkJU3RyaW5nIG5hbWUgICA9IG1fbmFtZV8uZ2V0R3JvdXBOYW1lKAorICAgICAgICAJCSAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggKyBHUk9VUF9PRkZTRVRTX1tvZmZzZXRdLCAKKyAgICAgICAgCSAJICAgICAgICAgICAgICAgICAgICAgICAgICBHUk9VUF9MRU5HVEhTX1tvZmZzZXRdLCBtX2Nob2ljZV8pOworICAgICAgICAJCWlmICgobmFtZSA9PSBudWxsIHx8IG5hbWUubGVuZ3RoKCkgPT0gMCkgJiYgCisgICAgICAgICAgCSAJCW1fY2hvaWNlXyA9PSBVQ2hhcmFjdGVyTmFtZUNob2ljZS5VX0VYVEVOREVEX0NIQVJfTkFNRSkgeworICAgICAgICAgICAJCQluYW1lID0gbV9uYW1lXy5nZXRFeHRlbmRlZE5hbWUobV9jdXJyZW50Xyk7CisgICAgICAgIAkJfQorICAgICAgICAJCWlmIChuYW1lICE9IG51bGwgJiYgbmFtZS5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgCQkJcmVzdWx0LmludGVnZXIgPSBtX2N1cnJlbnRfOworICAgICAgICAJCQlyZXN1bHQudmFsdWUgICA9IG5hbWU7CisgICAgICAgICAgCSAgCSAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAJfQorICAgICAgICAgICAgCSsrIG1fY3VycmVudF87CisgICAgICAgIAl9CisgICAgCX0KKyAgICAJfQorICAgIAlyZXR1cm4gdHJ1ZTsKKwl9CisJCisJLyoqCisgICAgICogR3JvdXAgbmFtZSBpdGVyYXRpb24sIGl0ZXJhdGUgYWxsIHRoZSBuYW1lcyBpbiB0aGUgY3VycmVudCAzMi1ncm91cCBhbmQgCisgICAgICogcmV0dXJucyB0aGUgZmlyc3QgY29kZXBvaW50IHRoYXQgaGFzIGEgdmFsaWQgbmFtZS4KKyAJICogQHBhcmFtIHJlc3VsdCBzdG9yZXMgdGhlIHJlc3VsdCBjb2RlcG9pbnQgYW5kIG5hbWUKKyAJICogQHBhcmFtIGxpbWl0IGxhc3QgY29kZXBvaW50ICsgMSBpbiByYW5nZSB0byBzZWFyY2gKKyAJICogQHJldHVybiBmYWxzZSBpZiBhIGNvZGVwb2ludCB3aXRoIGEgbmFtZSBpcyBmb3VuZCBpbiBncm91cCBhbmQgd2UgY2FuCisgCSAqICAgICAgICAgYmFpbCBmcm9tIGZ1cnRoZXIgaXRlcmF0aW9uLCB0cnVlIHRvIGNvbnRpbnVlIG9uIHdpdGggdGhlIAorIAkgKiAgICAgICAgIGl0ZXJhdGlvbgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBpdGVyYXRlR3JvdXAoVmFsdWVJdGVyYXRvci5FbGVtZW50IHJlc3VsdCwgaW50IGxpbWl0KQorICAgIHsKKyAgICAJaWYgKG1fZ3JvdXBJbmRleF8gPCAwKSB7CisgICAgCQltX2dyb3VwSW5kZXhfID0gbV9uYW1lXy5nZXRHcm91cChtX2N1cnJlbnRfKTsKKyAgICAJfQorICAgIAkKKyAgICAJd2hpbGUgKG1fZ3JvdXBJbmRleF8gPCBtX25hbWVfLm1fZ3JvdXBjb3VudF8gJiYKKyAgICAJICAgICAgIG1fY3VycmVudF8gPCBsaW1pdCkgeyAKKyAgICAJCS8vIGl0ZXJhdGUgdGlsbCB0aGUgbGFzdCBncm91cCBvciB0aGUgbGFzdCBjb2RlcG9pbnQKKyAgICAJCWludCBzdGFydE1TQiA9IG1fbmFtZV8uZ2V0Q29kZXBvaW50TVNCKG1fY3VycmVudF8pOworICAgIAkJaW50IGdNU0IgICAgID0gbV9uYW1lXy5nZXRHcm91cE1TQihtX2dyb3VwSW5kZXhfKTsgLy8gY2FuIGJlIC0xCisgICAgCQlpZiAoc3RhcnRNU0IgPT0gZ01TQikgeworICAgIAkJCWlmIChzdGFydE1TQiA9PSBtX25hbWVfLmdldENvZGVwb2ludE1TQihsaW1pdCAtIDEpKSB7CisgICAgCQkJCS8vIGlmIHN0YXJ0IGFuZCBsaW1pdCAtIDEgYXJlIGluIHRoZSBzYW1lIGdyb3VwLCB0aGVuIGVudW1lcmF0ZSAKKyAgICAJCQkJLy8gb25seSBpbiB0aGF0IG9uZQorICAgIAkJCQlyZXR1cm4gaXRlcmF0ZVNpbmdsZUdyb3VwKHJlc3VsdCwgbGltaXQpOworICAgIAkJCX0KKyAgICAJCQkvLyBlbnVtZXJhdGUgY2hhcmFjdGVycyBpbiB0aGUgcGFydGlhbCBzdGFydCBncm91cAorICAgICAgICAgICAJCS8vIGlmIChtX25hbWVfLmdldEdyb3VwT2Zmc2V0KG1fY3VycmVudF8pICE9IDApIHsKKyAgICAgICAgICAgICAgIAlpZiAoIWl0ZXJhdGVTaW5nbGVHcm91cChyZXN1bHQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgCSAgICAgICAgICAgIG1fbmFtZV8uZ2V0R3JvdXBMaW1pdChnTVNCKSkpIHsKKyAgICAgICAgICAgICAgICAJcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIAkrKyBtX2dyb3VwSW5kZXhfOyAvLyBjb250aW51ZSB3aXRoIHRoZSBuZXh0IGdyb3VwCisgICAgCQl9CQorICAgICAgIAkJZWxzZSBpZiAoc3RhcnRNU0IgPiBnTVNCKSB7CisgICAgICAgICAgIAkJCS8vIG1ha2Ugc3VyZSB0aGF0IHdlIHN0YXJ0IGVudW1lcmF0aW5nIHdpdGggdGhlIGZpcnN0IGdyb3VwIAorICAgICAgICAgICAJCQkvLyBhZnRlciBzdGFydCAKKyAgICAgICAgICAgCQkJbV9ncm91cEluZGV4XyArKzsKKyAgICAgICAJCX0KKyAgICAgICAJCWVsc2UgeyAKKyAgICAgICAJCQlpbnQgZ01JTiA9IG1fbmFtZV8uZ2V0R3JvdXBNaW4oZ01TQik7CisgICAgICAgCQkJaWYgKGdNSU4gPiBsaW1pdCkgeworICAgICAgICAgICAgICAgCQlnTUlOID0gbGltaXQ7CisgICAgICAgICAgICAJfQorICAgICAgIAkJCWlmIChtX2Nob2ljZV8gPT0gVUNoYXJhY3Rlck5hbWVDaG9pY2UuVV9FWFRFTkRFRF9DSEFSX05BTUUpIHsKKwkJCQkJaWYgKCFpdGVyYXRlRXh0ZW5kZWQocmVzdWx0LCBnTUlOKSkgeworCQkgCQkJCXJldHVybiBmYWxzZTsKKwkJCQkJfQorCSAgCQkJfQorCSAgCQkJbV9jdXJyZW50XyA9IGdNSU47CisgICAgICAgIAl9CisgICAgCX0KKyAgICAgICAgCisJCXJldHVybiB0cnVlOworCX0KKwkKKwkvKioKKyAJICogSXRlcmF0ZSBleHRlbmRlZCBuYW1lcy4KKyAJICogQHBhcmFtIHJlc3VsdCBzdG9yZXMgdGhlIHJlc3VsdCBjb2RlcG9pbnQgYW5kIG5hbWUKKyAJICogQHBhcmFtIGxpbWl0IGxhc3QgY29kZXBvaW50ICsgMSBpbiByYW5nZSB0byBzZWFyY2gKKyAJICogQHJldHVybiBmYWxzZSBpZiBhIGNvZGVwb2ludCB3aXRoIGEgbmFtZSBpcyBmb3VuZCBhbmQgd2UgY2FuCisgCSAqICAgICAgICAgYmFpbCBmcm9tIGZ1cnRoZXIgaXRlcmF0aW9uLCB0cnVlIHRvIGNvbnRpbnVlIG9uIHdpdGggdGhlIAorIAkgKiAgICAgICAgIGl0ZXJhdGlvbiAodGhpcyB3aWxsIGFsd2F5cyBiZSBmYWxzZSBmb3IgdmFsaWQgY29kZXBvaW50cykKKyAJICovIAorCXByaXZhdGUgYm9vbGVhbiBpdGVyYXRlRXh0ZW5kZWQoVmFsdWVJdGVyYXRvci5FbGVtZW50IHJlc3VsdCwKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCkKKwl7CisgICAgICAgIHdoaWxlIChtX2N1cnJlbnRfIDwgbGltaXQpIHsKKyAgICAgICAgCVN0cmluZyBuYW1lID0gbV9uYW1lXy5nZXRFeHRlbmRlZE9yMTBOYW1lKG1fY3VycmVudF8pOworICAgICAgICAJaWYgKG5hbWUgIT0gbnVsbCAmJiBuYW1lLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5pbnRlZ2VyID0gbV9jdXJyZW50XzsKKyAgICAgICAgCQlyZXN1bHQudmFsdWUgICA9IG5hbWU7CisgICAgCQkJcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgKysgbV9jdXJyZW50XzsKKyAgICAgICAgfQorICAgIAlyZXR1cm4gdHJ1ZTsKKyAgCX0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyTmFtZVJlYWRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2xhbmcvVUNoYXJhY3Rlck5hbWVSZWFkZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yMjQ3MWJhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2xhbmcvVUNoYXJhY3Rlck5hbWVSZWFkZXIuamF2YQpAQCAtMCwwICsxLDIyMCBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9sYW5nL0F0dGljL1VDaGFyYWN0ZXJOYW1lUmVhZGVyLmphdmEsdiAkIAorKiAkRGF0ZTogMjAwMi8wOC8wMSAxOTo1MDoyNiAkIAorKiAkUmV2aXNpb246IDEuMTEgJAorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UubGFuZzsKKworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5EYXRhSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVQmluYXJ5OworCisvKioKKyogPHA+SW50ZXJuYWwgcmVhZGVyIGNsYXNzIGZvciBJQ1UgZGF0YSBmaWxlIHVuYW1lLmRhdCBjb250YWluaW5nIAorKiBVbmljb2RlIGNvZGVwb2ludCBuYW1lIGRhdGEuPC9wPiAKKyogPHA+VGhpcyBjbGFzcyBzaW1wbHkgcmVhZHMgdW5hbWVzLmljdSwgYXV0aGVudGljYXRlcyB0aGF0IGl0IGlzIGEgdmFsaWQKKyogSUNVIGRhdGEgZmlsZSBhbmQgc3BsaXQgaXRzIGNvbnRlbnRzIHVwIGludG8gYmxvY2tzIG9mIGRhdGEgZm9yIHVzZSBpbgorKiA8YSBocmVmPVVDaGFyYWN0ZXJOYW1lLmh0bWw+Y29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyTmFtZTwvYT4uCisqIDwvcD4gCisqIDxwPkZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBmb3JtYXQgb2YgdW5hbWVzLmljdSByZWZlciB0bworKiA8YSBocmVmPW9zcy5zb2Z0d2FyZS5pYm0uY29tL2ljdTRqL2ljdTRqaHRtbC9jb20vaWJtL2ljdS9sYW5nL3JlYWRtZS5odG1sPgorKiBSZWFkTWU8L2E+LjxccD4KKyogPHA+dW5hbWVzLmljdSB3aGljaCBpcyBpbiBiaWctZW5kaWFuIGZvcm1hdCBpcyBqYXJlZCB0b2dldGhlciB3aXRoIHRoaXMgCisqIHBhY2thZ2UuPC9wPgorKiBAYXV0aG9yIFN5biBXZWUgUXVlaworKiBAc2luY2UgcmVsZWFzZSAyLjEsIEZlYnJ1YXJ5IDFzdCAyMDAyCisqIEBkcmFmdCAyLjEKKyovCisKK2ZpbmFsIGNsYXNzIFVDaGFyYWN0ZXJOYW1lUmVhZGVyCit7ICAgICAgCisgICAgLy8gcHJvdGVjdGVkIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICogPHA+UHJvdGVjdGVkIGNvbnN0cnVjdG9yLjwvcD4KKyAgICAqIEBwYXJhbSBpbnB1dFN0cmVhbSBJQ1UgdXByb3AuZGF0IGZpbGUgaW5wdXQgc3RyZWFtCisgICAgKiBAZXhjZXB0aW9uIElPRXhjZXB0aW9uIHRocm93IGlmIGRhdGEgZmlsZSBmYWlscyBhdXRoZW50aWNhdGlvbiAKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBVQ2hhcmFjdGVyTmFtZVJlYWRlcihJbnB1dFN0cmVhbSBpbnB1dFN0cmVhbSkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgSUNVQmluYXJ5LnJlYWRIZWFkZXIoaW5wdXRTdHJlYW0sIERBVEFfRk9STUFUX0lEXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERBVEFfRk9STUFUX1ZFUlNJT05fKTsKKyAgICAgICAgbV9kYXRhSW5wdXRTdHJlYW1fID0gbmV3IERhdGFJbnB1dFN0cmVhbShpbnB1dFN0cmVhbSk7CisgICAgfQorICAKKyAgICAvLyBwcm90ZWN0ZWQgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAKKyAgICAvKioKKyAgICAqIFJlYWQgYW5kIGJyZWFrIHVwIHRoZSBzdHJlYW0gb2YgZGF0YSBwYXNzZWQgaW4gYXMgYXJndW1lbnRzCisgICAgKiBhbmQgZmlsbHMgdXAgVUNoYXJhY3Rlck5hbWUuCisgICAgKiBJZiB1bnN1Y2Nlc3NmdWwgZmFsc2Ugd2lsbCBiZSByZXR1cm5lZC4KKyAgICAqIEBwYXJhbSBkYXRhIGluc3RhbmNlIG9mIGRhdGFibG9jaworICAgICogQGV4Y2VwdGlvbiB0aHJvd24gd2hlbiB0aGVyZSdzIGEgZGF0YSBlcnJvci4KKyAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIHJlYWQoVUNoYXJhY3Rlck5hbWUgZGF0YSkgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICAvLyByZWFkaW5nIGluZGV4CisgICAgICAgIG1fdG9rZW5zdHJpbmdpbmRleF8gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICBtX2dyb3VwaW5kZXhfICAgICAgID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgbV9ncm91cHN0cmluZ2luZGV4XyA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIG1fYWxnbmFtZXNpbmRleF8gICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICAKKyAgICAgICAgLy8gcmVhZGluZyB0b2tlbnMKKyAgICAgICAgaW50IGNvdW50ID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRDaGFyKCk7CisgICAgICAgIGNoYXIgdG9rZW5bXSA9IG5ldyBjaGFyW2NvdW50XTsKKyAgICAgICAgZm9yIChjaGFyIGkgPSAwOyBpIDwgY291bnQ7IGkgKyspIHsKKyAgICAgICAgICAgIHRva2VuW2ldID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRDaGFyKCk7CisgICAgICAgIH0KKyAgICAgICAgaW50IHNpemUgPSBtX2dyb3VwaW5kZXhfIC0gbV90b2tlbnN0cmluZ2luZGV4XzsKKyAgICAgICAgYnl0ZSB0b2tlbnN0cltdID0gbmV3IGJ5dGVbc2l6ZV07CisgICAgICAgIG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkRnVsbHkodG9rZW5zdHIpOworICAgICAgICBkYXRhLnNldFRva2VuKHRva2VuLCB0b2tlbnN0cik7CisgICAgICAgIAorICAgICAgICAvLyByZWFkaW5nIHRoZSBncm91cCBpbmZvcm1hdGlvbiByZWNvcmRzCisgICAgICAgIGNvdW50ID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRDaGFyKCk7CisgICAgICAgIGRhdGEuc2V0R3JvdXBDb3VudFNpemUoY291bnQsIEdST1VQX0lORk9fU0laRV8pOworICAgICAgICBjb3VudCAqPSBHUk9VUF9JTkZPX1NJWkVfOworICAgICAgICBjaGFyIGdyb3VwW10gPSBuZXcgY2hhcltjb3VudF07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkgKyspIHsKKyAgICAgICAgICAgIGdyb3VwW2ldID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRDaGFyKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHNpemUgPSBtX2FsZ25hbWVzaW5kZXhfIC0gbV9ncm91cHN0cmluZ2luZGV4XzsKKyAgICAgICAgYnl0ZSBncm91cHN0cmluZ1tdID0gbmV3IGJ5dGVbc2l6ZV07CisgICAgICAgIG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkRnVsbHkoZ3JvdXBzdHJpbmcpOworICAgIAorICAgICAgICBkYXRhLnNldEdyb3VwKGdyb3VwLCBncm91cHN0cmluZyk7CisgICAgICAgIAorICAgICAgICBjb3VudCA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIFVDaGFyYWN0ZXJOYW1lLkFsZ29yaXRobU5hbWUgYWxnW10gPSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVQ2hhcmFjdGVyTmFtZS5BbGdvcml0aG1OYW1lW2NvdW50XTsKKyAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkgKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIFVDaGFyYWN0ZXJOYW1lLkFsZ29yaXRobU5hbWUgYW4gPSByZWFkQWxnKCk7CisgICAgICAgICAgICBpZiAoYW4gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbigidW5hbWVzLmljdSByZWFkIGVycm9yOiBBbGdvcml0aG1pYyBuYW1lcyBjcmVhdGlvbiBlcnJvciIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYWxnW2ldID0gYW47CisgICAgICAgIH0KKyAgICAgICAgZGF0YS5zZXRBbGdvcml0aG0oYWxnKTsKKyAgICB9CisgICAgICAKKyAgICAvKioKKyAgICAqIDxwPkNoZWNraW5nIHRoZSBmaWxlIGZvciB0aGUgY29ycmVjdCBmb3JtYXQuPC9wPgorICAgICogQHBhcmFtIGRhdGFmb3JtYXRpZAorICAgICogQHBhcmFtIGRhdGFmb3JtYXR2ZXJzaW8KKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgZmlsZSBmb3JtYXQgdmVyc2lvbiBpcyBjb3JyZWN0CisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBhdXRoZW50aWNhdGUoYnl0ZSBkYXRhZm9ybWF0aWRbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZSBkYXRhZm9ybWF0dmVyc2lvbltdKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEFycmF5cy5lcXVhbHMoREFUQV9GT1JNQVRfSURfLCBkYXRhZm9ybWF0aWQpICYmCisgICAgICAgICAgICAgICBBcnJheXMuZXF1YWxzKERBVEFfRk9STUFUX1ZFUlNJT05fLCBkYXRhZm9ybWF0dmVyc2lvbik7CisgICAgfQorICAgIAorICAgIC8vIHByaXZhdGUgdmFyaWFibGVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgCisgICAgLyoqCisgICAgKiBEYXRhIGlucHV0IHN0cmVhbSBmb3IgbmFtZXMgCisgICAgKi8KKyAgICBwcml2YXRlIERhdGFJbnB1dFN0cmVhbSBtX2RhdGFJbnB1dFN0cmVhbV87CisgICAgLyoqCisgICAgKiBTaXplIG9mIHRoZSBncm91cCBpbmZvcm1hdGlvbiBibG9jayBpbiBudW1iZXIgb2YgY2hhcgorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEdST1VQX0lORk9fU0laRV8gPSAzOworCisgICAgLyoqCisgICAgKiBJbmRleCBvZiB0aGUgb2Zmc2V0IGluZm9ybWF0aW9uCisgICAgKi8KKyAgICBwcml2YXRlIGludCBtX3Rva2Vuc3RyaW5naW5kZXhfOworICAgIHByaXZhdGUgaW50IG1fZ3JvdXBpbmRleF87CisgICAgcHJpdmF0ZSBpbnQgbV9ncm91cHN0cmluZ2luZGV4XzsKKyAgICBwcml2YXRlIGludCBtX2FsZ25hbWVzaW5kZXhfOworICAgICAgCisgICAgLyoqCisgICAgKiBTaXplIG9mIGFuIGFsZ29yaXRobWljIG5hbWUgaW5mb3JtYXRpb24gZ3JvdXAKKyAgICAqIHN0YXJ0IGNvZGUgcG9pbnQgc2l6ZSArIGVuZCBjb2RlIHBvaW50IHNpemUgKyB0eXBlIHNpemUgKyB2YXJpYW50IHNpemUgKyAKKyAgICAqIHNpemUgb2YgZGF0YSBzaXplCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQUxHX0lORk9fU0laRV8gPSAxMjsKKyAgICAgIAorICAgIC8qKgorICAgICogRmlsZSBmb3JtYXQgdmVyc2lvbiBhbmQgaWQgdGhhdCB0aGlzIGNsYXNzIHVuZGVyc3RhbmRzLgorICAgICogTm8gZ3VhcmFudGVlcyBhcmUgbWFkZSBpZiBhIG9sZGVyIHZlcnNpb24gaXMgdXNlZAorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBEQVRBX0ZPUk1BVF9WRVJTSU9OX1tdID0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7KGJ5dGUpMHgxLCAoYnl0ZSkweDAsIChieXRlKTB4MCwgKGJ5dGUpMHgwfTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIERBVEFfRk9STUFUX0lEX1tdID0geyhieXRlKTB4NzUsIChieXRlKTB4NkUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKTB4NjEsIChieXRlKTB4NkR9OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAvKioKKyAgICAqIENvcnJ1cHRlZCBlcnJvciBzdHJpbmcKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDT1JSVVBURURfREFUQV9FUlJPUl8gPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGF0YSBjb3JydXB0ZWQgaW4gY2hhcmFjdGVyIG5hbWUgZGF0YSBmaWxlIjsKKyAgICAgIAorICAgIC8vIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgIAorICAgIC8qKgorICAgICogUmVhZHMgYW4gaW5kaXZpZHVhbCByZWNvcmQgb2YgQWxnb3JpdGhtTmFtZXMKKyAgICAqIEByZXR1cm4gYW4gaW5zdGFuY2Ugb2YgQWxnb3JpdGhOYW1lcyBpZiByZWFkIGlzIHN1Y2Nlc3NmdWwgb3RoZXJ3aXNlIG51bGwKKyAgICAqIEBleGNlcHRpb24gdGhyb3duIHdoZW4gZmlsZSByZWFkIGVycm9yIG9jY3VycyBvciBkYXRhIGlzIGNvcnJ1cHRlZAorICAgICovCisgICAgcHJpdmF0ZSBVQ2hhcmFjdGVyTmFtZS5BbGdvcml0aG1OYW1lIHJlYWRBbGcoKSB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICB7CisgICAgICAgIFVDaGFyYWN0ZXJOYW1lLkFsZ29yaXRobU5hbWUgcmVzdWx0ID0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVUNoYXJhY3Rlck5hbWUuQWxnb3JpdGhtTmFtZSgpOworICAgICAgICBpbnQgcmFuZ2VzdGFydCA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIGludCByYW5nZWVuZCAgID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgYnl0ZSB0eXBlICAgICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEJ5dGUoKTsKKyAgICAgICAgYnl0ZSB2YXJpYW50ICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEJ5dGUoKTsKKyAgICAgICAgaWYgKCFyZXN1bHQuc2V0SW5mbyhyYW5nZXN0YXJ0LCByYW5nZWVuZCwgdHlwZSwgdmFyaWFudCkpIHsKKyAgICAgICAgCXJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGludCBzaXplID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRDaGFyKCk7CisgICAgICAgIGlmICh0eXBlID09IFVDaGFyYWN0ZXJOYW1lLkFsZ29yaXRobU5hbWUuVFlQRV8xXykKKyAgICAgICAgeworICAgICAgICAgICAgY2hhciBmYWN0b3JbXSA9IG5ldyBjaGFyW3ZhcmlhbnRdOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCB2YXJpYW50OyBqICsrKSB7CisgICAgICAgICAgICAgICAgZmFjdG9yW2pdID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRDaGFyKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIHJlc3VsdC5zZXRGYWN0b3IoZmFjdG9yKTsKKyAgICAgICAgICAgIHNpemUgLT0gKHZhcmlhbnQgPDwgMSk7CisgICAgICAgIH0KKyAgICAgICAgICAKKyAgICAgICAgU3RyaW5nQnVmZmVyIHByZWZpeCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgY2hhciBjID0gKGNoYXIpKG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkQnl0ZSgpICYgMHgwMEZGKTsKKyAgICAgICAgd2hpbGUgKGMgIT0gMCkKKyAgICAgICAgeworICAgICAgICAgICAgcHJlZml4LmFwcGVuZChjKTsKKyAgICAgICAgICAgIGMgPSAoY2hhcikobV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRCeXRlKCkgJiAweDAwRkYpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXN1bHQuc2V0UHJlZml4KHByZWZpeC50b1N0cmluZygpKTsKKyAgICAgICAgCisgICAgICAgIHNpemUgLT0gKEFMR19JTkZPX1NJWkVfICsgcHJlZml4Lmxlbmd0aCgpICsgMSk7CisgICAgICAgIAorICAgICAgICBpZiAoc2l6ZSA+IDApCisgICAgICAgIHsKKyAgICAgICAgICAgIGJ5dGUgc3RyaW5nW10gPSBuZXcgYnl0ZVtzaXplXTsKKyAgICAgICAgICAgIG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkRnVsbHkoc3RyaW5nKTsKKyAgICAgICAgICAgIHJlc3VsdC5zZXRGYWN0b3JTdHJpbmcoc3RyaW5nKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2xhbmcvVUNoYXJhY3RlclR5cGVJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2xhbmcvVUNoYXJhY3RlclR5cGVJdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA2OWE0ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyVHlwZUl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSw4MCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyVHlwZUl0ZXJhdG9yLmphdmEsdiAkCisqICREYXRlOiAyMDAyLzAzLzE1IDIyOjQ4OjA3ICQKKyogJFJldmlzaW9uOiAxLjUgJAorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1Lmxhbmc7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlRyaWVJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKKworLyoqCisgKiBDbGFzcyBlbmFibGluZyBpdGVyYXRpb24gb2YgdGhlIGNvZGVwb2ludHMgYWNjb3JkaW5nIHRvIHRoZWlyIHR5cGVzLgorICogUmVzdWx0IG9mIGVhY2ggaXRlcmF0aW9uIGNvbnRhaW5zIHRoZSBpbnRlcnZhbCBvZiBjb2RlcG9pbnRzIHRoYXQgaGF2ZQorICogdGhlIHNhbWUgdHlwZS4KKyAqIEV4YW1wbGUgb2YgdXNlOjxicj4KKyAqIDxwcmU+CisgKiBVQ2hhcmFjdGVyVHlwZUl0ZXJhdG9yIGl0ZXJhdG9yID0gVUNoYXJhY3Rlci5nZXRVQ2hhcmFjdGVyVHlwZUl0ZXJhdG9yKCk7CisgKiB3aGlsZSAoaXRlcmF0b3IubmV4dCgpKSB7CisgKiAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb2RlcG9pbnQgXFx1IiArIAorICogICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKGl0ZXJhdG9yLmdldFN0YXJ0KCkpICsgCisgKiAgICAgICAgICAgICAgICAgICAgICAgICIgdG8gY29kZXBvaW50IFxcdSIgKworICogICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKGl0ZXJhdG9yLmdldExpbWl0KCkgLSAxKSArIAorICogICAgICAgICAgICAgICAgICAgICAgICAiIGhhcyB0aGUgY2hhcmFjdGVyIHR5cGUgIiArIGl0ZXJhdG9yLmdldFZhbHVlKCkpOworICogfQorICogPC9wcmU+CisgKiBAYXV0aG9yIHN5bndlZQorICogQHNlZSBjb20uaWJtLmljdS51dGlsLlRyaWVJdGVyYXRvcgorICogQHNpbmNlIHJlbGVhc2UgMi4xLCBKYW4gMjQgMjAwMgorICovCitjbGFzcyBVQ2hhcmFjdGVyVHlwZUl0ZXJhdG9yIGV4dGVuZHMgVHJpZUl0ZXJhdG9yCit7CisgICAgLy8gcHJvdGVjdGVkIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICogVHJpZUVudW1lcmF0aW9uIGNvbnN0cnVjdG9yCisgICAgKiBAcGFyYW0gcHJvcGVydHkgdGhlIHVuaWNvZGUgY2hhcmFjdGVyIHByb3BlcnRpZXMgdG8gYmUgdXNlZAorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIFVDaGFyYWN0ZXJUeXBlSXRlcmF0b3IoVUNoYXJhY3RlclByb3BlcnR5IHByb3BlcnR5KQorICAgIHsKKyAgICAgICBzdXBlcihwcm9wZXJ0eS5tX3RyaWVfKTsKKyAgICB9CisgICAgCisgICAgLy8gcHJvdGVjdGVkIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICogQ2FsbGVkIGJ5IG5leHRFbGVtZW50KCkgdG8gZXh0cmFjdHMgYSAzMiBiaXQgdmFsdWUgZnJvbSBhIHRyaWUgdmFsdWUKKyAgICAqIHVzZWQgZm9yIGNvbXBhcmlzb24uCisgICAgKiBUaGlzIG1ldGhvZCBpcyB0byBiZSBvdmVyd3JpdHRlbiBpZiBzcGVjaWFsIG1hbmlwdWxhdGlvbiBpcyB0byBiZSBkb25lCisgICAgKiB0byByZXRyaWV2ZSBhIHJlbGV2YW50IGNvbXBhcmlzb24uCisgICAgKiBUaGUgZGVmYXVsdCBmdW5jdGlvbiBpcyB0byByZXR1cm4gdGhlIHZhbHVlIGFzIGl0IGlzLgorICAgICogQHBhcmFtIHZhbHVlIGEgdmFsdWUgZnJvbSB0aGUgdHJpZQorICAgICogQHJldHVybiBleHRyYWN0ZWQgdmFsdWUKKyAgICAqLworICAgIHByb3RlY3RlZCBpbnQgZXh0cmFjdChpbnQgdmFsdWUpCisgICAgeworICAgIAkvLyB0aGlzIGlzIG5lZWRlZCBiZWNhdXNlIFRyaWVJdGVyYXRvcigpIGdldHMgY2FsbGVkIGZpcnN0IGFuZCBpdAorICAgIAkvLyBpbiB0dXJuIGNhbGxzIGV4dHJhY3QgdG8gaW5zdGFudGlhdGUgdGhpcyBkZWZhdWx0IHZhbHVlCisgICAgCS8vIHNvIHNvbWV0aW1lcyBtX3Byb3BlcnR5XyBkb2VzIG5vdCBnZXQgYXNzaWduZWQgcHJvcGVybHkKKyAgICAJaWYgKG1fcHJvcGVydHlfID09IG51bGwpIHsKKyAgICAJCW1fcHJvcGVydHlfID0gVUNoYXJhY3RlclByb3BlcnR5LmdldEluc3RhbmNlKCkubV9wcm9wZXJ0eV87CisgICAgCX0KKyAgICAJcmV0dXJuIFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRQcm9wVHlwZShtX3Byb3BlcnR5X1t2YWx1ZV0pOworICAgIH0KKyAgICAKKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDaGFyYWN0ZXIgcHJvcGVydHkKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX3Byb3BlcnR5X1tdOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VDaGFyYWN0ZXJVdGlsLmphdmEgYi9zcmMvY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyVXRpbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg4YTQyYWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyVXRpbC5qYXZhCkBAIC0wLDAgKzEsMTc2IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L2xhbmcvQXR0aWMvVUNoYXJhY3RlclV0aWwuamF2YSx2ICQgCisqICREYXRlOiAyMDAyLzA3LzIyIDIzOjI4OjIxICQgCisqICRSZXZpc2lvbjogMS42ICQKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1Lmxhbmc7CisKKy8qKgorKiBJbnRlcm5hbCBjaGFyYWN0ZXIgdXRpbGl0eSBjbGFzcyBmb3Igc2ltcGxlIGRhdGEgdHlwZSBjb252ZXJzaW9uIGFuZCBTdHJpbmcgCisqIHBhcnNpbmcgZnVuY3Rpb25zLiBEb2VzIG5vdCBoYXZlIGFuIGFuYWxvZyBpbiB0aGUgSkRLLgorKiBAYXV0aG9yIFN5biBXZWUgUXVlaworKiBAc2luY2Ugc2VwMjkwMAorKi8KKworZmluYWwgY2xhc3MgVUNoYXJhY3RlclV0aWwKK3sKKyAgICAvLyBjb25zdHJ1Y3RvciA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgICAgCisgICAgLyoqCisgICAgKiBwcml2YXRlIGNvbnN0cnVjdG9yIHRvIGF2b2lkIGluaXRpYWxpc2F0aW9uCisgICAgKi8KKyAgICBwcml2YXRlIFVDaGFyYWN0ZXJVdGlsKCkKKyAgICB7CisgICAgfQorICAgICAgCisgICAgLy8gcHJvdGVjdGVkIG1ldGhvZHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAgIAorICAgIC8qKgorICAgICogam9pbmluZyAyIGNoYXJzIHRvIGZvcm0gYW4gaW50CisgICAgKiBAcGFyYW0gbXNjIG1vc3Qgc2lnbmlmaWNhbnQgY2hhcgorICAgICogQHBhcmFtIGxzYyBsZWFzdCBzaWduaWZpY2FudCBjaGFyCisgICAgKiBAcmV0dXJuIGludCBmb3JtCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGludCB0b0ludChjaGFyIG1zYywgY2hhciBsc2MpCisgICAgeworICAgICAgICByZXR1cm4gKChtc2MgPDwgMTYpIHwgbHNjKTsKKyAgICB9CisgICAgICAgCisgICAgLyoqCisgICAgKiBjb252ZXJ0aW5nIDIgYnl0ZXMgaW50byBhIGNoYXIKKyAgICAqIEBwYXJhbSBtc2IgdGhlIG1vc3Qgc2lnbmlmaWNhbnQgYnl0ZQorICAgICogQHBhcmFtIGxzYiB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYnl0ZQorICAgICogQHJldHVybiBjaGFyIGZvcm0KKyAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgY2hhciB0b0NoYXIoYnl0ZSBtc2IsIGJ5dGUgbHNiKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChjaGFyKSgobXNiIDw8IDgpIHwgKGxzYiAmIDB4RkYpKTsKKyAgICB9CisgICAgICAgCisgICAgLyoqCisgICAgKiBSZXRyaWV2ZXMgYSBudWxsIHRlcm1pbmF0ZWQgc3Vic3RyaW5nIGZyb20gYW4gYXJyYXkgb2YgYnl0ZXMuCisgICAgKiBTdWJzdHJpbmcgaXMgYSBzZXQgb2Ygbm9uLXplcm8gYnl0ZXMgc3RhcnRpbmcgZnJvbSBhcmd1bWVudCBzdGFydCB0byB0aGUgCisgICAgKiBuZXh0IHplcm8gYnl0ZS4gSWYgdGhlIGZpcnN0IGJ5dGUgaXMgYSB6ZXJvLCB0aGUgbmV4dCBieXRlIHdpbGwgYmUgdGFrZW4gYXMKKyAgICAqIHRoZSBmaXJzdCBieXRlLgorICAgICogQHBhcmFtIHN0ciBzdHJpbmdidWZmZXIgdG8gc3RvcmUgZGF0YSBpbiwgZGF0YSB3aWxsIGJlIHN0b3JlIHdpdGggZWFjaAorICAgICogICAgICAgICAgICBieXRlIGFzIGEgY2hhcgorICAgICogQHBhcmFtIGFycmF5IGJ5dGUgYXJyYXkKKyAgICAqIEBwYXJhbSBpbmRleCB0byBzdGFydCBzdWJzdHJpbmcgaW4gYnl0ZSBjb3VudAorICAgICogQHJldHVybiB0aGUgZW5kIHBvc2l0aW9uIG9mIHRoZSBzdWJzdHJpbmcgd2l0aGluIHRoZSBjaGFyYWN0ZXIgYXJyYXkKKyAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgaW50IGdldE51bGxUZXJtQnl0ZVN1YlN0cmluZyhTdHJpbmdCdWZmZXIgc3RyLCBieXRlW10gYXJyYXksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaW5kZXgpCisgICAgeworICAgICAgICBieXRlIGIgPSAxOworICAgICAgICAKKyAgICAgICAgd2hpbGUgKGIgIT0gMCkKKyAgICAgICAgeworICAgICAgICAgICAgYiA9IGFycmF5W2luZGV4XTsKKyAgICAgICAgICAgIGlmIChiICE9IDApIHsKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kKChjaGFyKShiICYgMHgwMEZGKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbmRleCArKzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaW5kZXg7CisgICAgfQorICAgICAgIAorICAgIC8qKgorICAgICogQ29tcGFyZXMgYSBudWxsIHRlcm1pbmF0ZWQgc3Vic3RyaW5nIGZyb20gYW4gYXJyYXkgb2YgYnl0ZXMuCisgICAgKiBTdWJzdHJpbmcgaXMgYSBzZXQgb2Ygbm9uLXplcm8gYnl0ZXMgc3RhcnRpbmcgZnJvbSBhcmd1bWVudCBzdGFydCB0byB0aGUgCisgICAgKiBuZXh0IHplcm8gYnl0ZS4gaWYgdGhlIGZpcnN0IGJ5dGUgaXMgYSB6ZXJvLCB0aGUgbmV4dCBieXRlIHdpbGwgYmUgdGFrZW4gYXMKKyAgICAqIHRoZSBmaXJzdCBieXRlLgorICAgICogQHBhcmFtIHN0ciBzdHJpbmcgdG8gY29tcGFyZQorICAgICogQHBhcmFtIGFycmF5IGJ5dGUgYXJyYXkKKyAgICAqIEBwYXJhbSBzdHJpbmRleCBpbmRleCB3aXRoaW4gc3RyIHRvIHN0YXJ0IGNvbXBhcmluZworICAgICogQHBhcmFtIGFpbmRleCBhcnJheSBpbmRleCB0byBzdGFydCBpbiBieXRlIGNvdW50CisgICAgKiBAcmV0dXJuIHRoZSBlbmQgcG9zaXRpb24gb2YgdGhlIHN1YnN0cmluZyB3aXRoaW4gc3RyIGlmIG1hdGNoZXMgb3RoZXJ3aXNlIAorICAgICogICAgICAgICBhIC0xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGludCBjb21wYXJlTnVsbFRlcm1CeXRlU3ViU3RyaW5nKFN0cmluZyBzdHIsIGJ5dGVbXSBhcnJheSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RyaW5kZXgsIGludCBhaW5kZXgpCisgICAgeworICAgICAgICBieXRlIGIgPSAxOworICAgICAgICBpbnQgbGVuZ3RoID0gc3RyLmxlbmd0aCgpOworICAgICAgICAKKyAgICAgICAgd2hpbGUgKGIgIT0gMCkKKyAgICAgICAgeworICAgICAgICAgICAgYiA9IGFycmF5W2FpbmRleF07ICAKKyAgICAgICAgICAgIGFpbmRleCArKzsKKyAgICAgICAgICAgIGlmIChiID09IDApIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGlmIHdlIGhhdmUgcmVhY2hlZCB0aGUgZW5kIG9mIHRoZSBzdHJpbmcgYW5kIHlldCB0aGUgYXJyYXkgaGFzIG5vdCAKKyAgICAgICAgICAgIC8vIHJlYWNoZWQgdGhlIGVuZCBvZiB0aGVpciBzdWJzdHJpbmcgeWV0LCBhYm9ydAorICAgICAgICAgICAgaWYgKHN0cmluZGV4ID09IGxlbmd0aCAKKyAgICAgICAgICAgICAgICB8fCAoc3RyLmNoYXJBdChzdHJpbmRleCkgIT0gKGNoYXIpKGIgJiAweEZGKSkpIHsKKyAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3RyaW5kZXggKys7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN0cmluZGV4OworICAgIH0KKyAgICAgICAKKyAgICAvKioKKyAgICAqIFNraXAgbnVsbCB0ZXJtaW5hdGVkIHN1YnN0cmluZ3MgZnJvbSBhbiBhcnJheSBvZiBieXRlcy4KKyAgICAqIFN1YnN0cmluZyBpcyBhIHNldCBvZiBub24temVybyBieXRlcyBzdGFydGluZyBmcm9tIGFyZ3VtZW50IHN0YXJ0IHRvIHRoZSAKKyAgICAqIG5leHQgemVybyBieXRlLiBJZiB0aGUgZmlyc3QgYnl0ZSBpcyBhIHplcm8sIHRoZSBuZXh0IGJ5dGUgd2lsbCBiZSB0YWtlbiBhcworICAgICogdGhlIGZpcnN0IGJ5dGUuCisgICAgKiBAcGFyYW0gYXJyYXkgYnl0ZSBhcnJheQorICAgICogQHBhcmFtIGluZGV4IHRvIHN0YXJ0IHN1YnN0cmluZ3MgaW4gYnl0ZSBjb3VudAorICAgICogQHBhcmFtIHNraXBjb3VudCBudW1iZXIgb2YgbnVsbCB0ZXJtaW5hdGVkIHN1YnN0cmluZ3MgdG8gc2tpcAorICAgICogQHJldHVybiB0aGUgZW5kIHBvc2l0aW9uIG9mIHRoZSBzdWJzdHJpbmdzIHdpdGhpbiB0aGUgY2hhcmFjdGVyIGFycmF5CisgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGludCBza2lwTnVsbFRlcm1CeXRlU3ViU3RyaW5nKGJ5dGVbXSBhcnJheSwgaW50IGluZGV4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBza2lwY291bnQpCisgICAgeworICAgICAgICBieXRlIGI7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2tpcGNvdW50OyBpICsrKQorICAgICAgICB7CisgICAgICAgICAgICBiID0gMTsKKyAgICAgICAgICAgIHdoaWxlIChiICE9IDApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgYiA9IGFycmF5W2luZGV4XTsKKyAgICAgICAgICAgICAgICBpbmRleCArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaW5kZXg7CisgICAgfQorICAgICAgIAorICAgIC8qKgorICAgICAqIHNraXAgc3Vic3RyaW5ncyBmcm9tIGFuIGFycmF5IG9mIGNoYXJhY3RlcnMsIHdoZXJlIGVhY2ggY2hhcmFjdGVyIGlzIGEgc2V0IAorICAgICAqIG9mIDIgYnl0ZXMuIHN1YnN0cmluZyBpcyBhIHNldCBvZiBub24temVybyBieXRlcyBzdGFydGluZyBmcm9tIGFyZ3VtZW50IAorICAgICAqIHN0YXJ0IHRvIHRoZSBieXRlIG9mIHRoZSBhcmd1bWVudCB2YWx1ZS4gc2tpcHMgdXAgdG8gYSBtYXggbnVtYmVyIG9mIAorICAgICAqIGNoYXJhY3RlcnMKKyAgICAgKiBAcGFyYW0gYXJyYXkgYnl0ZSBhcnJheSB0byBwYXJzZQorICAgICAqIEBwYXJhbSBpbmRleCB0byBzdGFydCBzdWJzdHJpbmdzIGluIGJ5dGUgY291bnQKKyAgICAgKiBAcGFyYW0gbGVuZ3RoIHRoZSBtYXggbnVtYmVyIG9mIGJ5dGVzIHRvIHNraXAKKyAgICAgKiBAcGFyYW0gc2tpcGVuZCB2YWx1ZSBvZiBieXRlIHRvIHNraXAgdG8KKyAgICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgYnl0ZXMgc2tpcHBlZAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgaW50IHNraXBCeXRlU3ViU3RyaW5nKGJ5dGVbXSBhcnJheSwgaW50IGluZGV4LCBpbnQgbGVuZ3RoLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlIHNraXBlbmQpCisgICAgeworICAgICAgICBpbnQgcmVzdWx0OworICAgICAgICBieXRlIGI7CisgICAgICAgIAorICAgICAgICBmb3IgKHJlc3VsdCA9IDA7IHJlc3VsdCA8IGxlbmd0aDsgcmVzdWx0ICsrKQorICAgICAgICB7CisgICAgICAgICAgICBiID0gYXJyYXlbaW5kZXggKyByZXN1bHRdOworICAgICAgICAgICAgaWYgKGIgPT0gc2tpcGVuZCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgKys7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvbGFuZy9VUHJvcGVydHkuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VQcm9wZXJ0eS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkZTY5ZDkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvbGFuZy9VUHJvcGVydHkuamF2YQpAQCAtMCwwICsxLDM2MyBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAxLCBpbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICRTb3VyY2U6IAorKiAgICAgIC91c3IvY3ZzL2ljdTRqL2ljdTRqL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VDaGFyYWN0ZXJDYXRlZ29yeS5qYXZhICQgCisqICREYXRlOiAyMDAyLzA3LzA4IDIzOjUyOjEzICQgCisqICRSZXZpc2lvbjogMS4zICQKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UubGFuZzsKKworLyoqCisgKiA8cD5TZWxlY3Rpb24gY29uc3RhbnRzIGZvciBVbmljb2RlIHByb3BlcnRpZXMuIDwvcD4KKyAqIDxwPlRoZXNlIGNvbnN0YW50cyBhcmUgdXNlZCBpbiBmdW5jdGlvbnMgbGlrZSAKKyAqIFVDaGFyYWN0ZXIuaGFzQmluYXJ5UHJvcGVydHkoaW50KSB0byBzZWxlY3Qgb25lIG9mIHRoZSBVbmljb2RlIHByb3BlcnRpZXMuIAorICogPC9wPgorICogPHA+VGhlIHByb3BlcnRpZXMgQVBJcyBhcmUgaW50ZW5kZWQgdG8gcmVmbGVjdCBVbmljb2RlIHByb3BlcnRpZXMgYXMgCisgKiBkZWZpbmVkIGluIHRoZSBVbmljb2RlIENoYXJhY3RlciBEYXRhYmFzZSAoVUNEKSBhbmQgVW5pY29kZSBUZWNobmljYWwgCisgKiBSZXBvcnRzIChVVFIpLjwvcD4KKyAqIDxwPkZvciBkZXRhaWxzIGFib3V0IHRoZSBwcm9wZXJ0aWVzIHNlZSA8YSBocmVmPWh0dHA6Ly93d3cudW5pY29kZS5vcmc+CisgKiBodHRwOi8vd3d3LnVuaWNvZGUub3JnPC9hPi48L3A+IAorICogPHA+Rm9yIG5hbWVzIG9mIFVuaWNvZGUgcHJvcGVydGllcyBzZWUgdGhlIFVDRCBmaWxlIFByb3BlcnR5QWxpYXNlcy50eHQuCisgKiA8L3A+IAorICogPHA+SW1wb3J0YW50OiBJZiBJQ1UgaXMgYnVpbHQgd2l0aCBVQ0QgZmlsZXMgZnJvbSBVbmljb2RlIHZlcnNpb25zIGJlbG93IAorICogMy4yLCB0aGVuIHByb3BlcnRpZXMgbWFya2VkIHdpdGggIm5ldyIgYXJlIG5vdCBvciBub3QgZnVsbHkgCisgKiBhdmFpbGFibGUuIENoZWNrIFVDaGFyYWN0ZXIuZ2V0VW5pY29kZVZlcnNpb24oKSB0byBiZSBzdXJlLjwvcD4KKyAqIEBhdXRob3IgU3luIFdlZSBRdWVrCisgKiBAc2luY2UgTWFyY2ggOCAyMDAyCisgKiBAc2VlIGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcgorICogQGRyYWZ0IElDVSAyLjEKKyAqLworcHVibGljIGludGVyZmFjZSBVUHJvcGVydHkKK3sKKyAgCS8vIHB1YmxpYyBkYXRhIG1lbWJlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAKKyAgCS8qKiAKKyAgCSAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBBbHBoYWJldGljLiA8L3A+CisgIAkgKiA8cD5Qcm9wZXJ0eSBmb3IgVUNoYXJhY3Rlci5pc1VBbHBoYWJldGljKCksIGRpZmZlcmVudCBmcm9tIHRoZSBwcm9wZXJ0eSAKKyAgCSAqIGluIFVDaGFyYWN0ZXIuaXNhbHBoYSgpLjwvcD4KKyAgCSAqIDxwPkx1ICsgTGwgKyBMdCArIExtICsgTG8gKyBObCArIE90aGVyX0FscGhhYmV0aWMuPC9wPgorICAJICogQGRyYWZ0IElDVSAyLjEgCisgIAkgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQUxQSEFCRVRJQyA9IDA7IAorICAgIC8qKiAKKyAgICAgKiBGaXJzdCBjb25zdGFudCBmb3IgYmluYXJ5IFVuaWNvZGUgcHJvcGVydGllcy4gCisgICAgICogQGRyYWZ0IElDVSAyLjEgCisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJJTkFSWV9TVEFSVCA9IEFMUEhBQkVUSUM7CisgICAgLyoqIAorICAgICAqIEJpbmFyeSBwcm9wZXJ0eSBBU0NJSV9IZXhfRGlnaXQgKDAtOSBBLUYgYS1mKS4KKyAgICAgKiBAZHJhZnQgSUNVIDIuMSAKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQVNDSUlfSEVYX0RJR0lUID0gMTsgCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBCaWRpX0NvbnRyb2wuPC9wPgorICAgICAqIDxwPkZvcm1hdCBjb250cm9scyB3aGljaCBoYXZlIHNwZWNpZmljIGZ1bmN0aW9ucyBpbiB0aGUgQmlkaSBBbGdvcml0aG0uCisgICAgICogPC9wPiAKKyAgICAgKiBAZHJhZnQgSUNVIDIuMSAKKyAgICAgKi8gCisgICAJcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQklESV9DT05UUk9MID0gMjsgCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBCaWRpX01pcnJvcmVkLjwvcD4gCisgICAgICogPHA+Q2hhcmFjdGVycyB0aGF0IG1heSBjaGFuZ2UgZGlzcGxheSBpbiBSVEwgdGV4dC48L3A+IAorICAgICAqIDxwPlByb3BlcnR5IGZvciBVQ2hhcmFjdGVyLmlzTWlycm9yZWQoKS48L3A+IAorICAgICAqIDxwPlNlZSBCaWRpIEFsZ29yaXRobTsgVVRSIDkuPC9wPiAKKyAgICAgKiBAZHJhZnQgSUNVIDIuMSAKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQklESV9NSVJST1JFRCA9IDM7IAorICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgRGFzaC48L3A+IAorICAgICAqIDxwPlZhcmlhdGlvbnMgb2YgZGFzaGVzLjwvcD4gCisgICAgICogQGRyYWZ0IElDVSAyLjEgCisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERBU0ggPSA0OyAKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IERlZmF1bHRfSWdub3JhYmxlX0NvZGVfUG9pbnQgKG5ldykuCisgICAgICogPC9wPiAKKyAgICAgKiA8cD5Qcm9wZXJ0eSB0aGF0IGluZGljYXRlcyBjb2RlcG9pbnQgaXMgaWdub3JhYmxlIGluIG1vc3QgcHJvY2Vzc2luZy4KKyAgICAgKiA8L3A+CisgICAgICogPHA+Q29kZXBvaW50cyAoMjA2MC4uMjA2RiwgRkZGMC4uRkZGQiwgRTAwMDAuLkUwRkZGKSArIAorICAgICAqIE90aGVyX0RlZmF1bHRfSWdub3JhYmxlX0NvZGVfUG9pbnQgKyAoQ2YgKyBDYyArIENzIC0gV2hpdGVfU3BhY2UpPC9wPiAKKyAgICAgKiBAZHJhZnQgSUNVIDIuMSAKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgREVGQVVMVF9JR05PUkFCTEVfQ09ERV9QT0lOVCA9IDU7IAorICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgRGVwcmVjYXRlZCAobmV3KS48L3A+IAorICAgICAqIDxwPlRoZSB1c2FnZSBvZiBkZXByZWNhdGVkIGNoYXJhY3RlcnMgaXMgc3Ryb25nbHkgZGlzY291cmFnZWQuPC9wPiAKKyAgICAgKiBAZHJhZnQgSUNVIDIuMSAKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgREVQUkVDQVRFRCA9IDY7IAorICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgRGlhY3JpdGljLjwvcD4gCisgICAgICogPHA+Q2hhcmFjdGVycyB0aGF0IGxpbmd1aXN0aWNhbGx5IG1vZGlmeSB0aGUgbWVhbmluZyBvZiBhbm90aGVyIAorICAgICAqIGNoYXJhY3RlciB0byB3aGljaCB0aGV5IGFwcGx5LjwvcD4gCisgICAgICogQGRyYWZ0IElDVSAyLjEgCisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERJQUNSSVRJQyA9IDc7IAorICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgRXh0ZW5kZXIuPC9wPiAKKyAgICAgKiA8cD5FeHRlbmQgdGhlIHZhbHVlIG9yIHNoYXBlIG9mIGEgcHJlY2VkaW5nIGFscGhhYmV0aWMgY2hhcmFjdGVyLCBlLmcuCisgICAgICogbGVuZ3RoIGFuZCBpdGVyYXRpb24gbWFya3MuPC9wPiAKKyAgICAgKiBAZHJhZnQgSUNVIDIuMSAKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVhURU5ERVIgPSA4OyAKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IEZ1bGxfQ29tcG9zaXRpb25fRXhjbHVzaW9uLjwvcD4gCisgICAgICogPHA+Q29tcG9zaXRpb25FeGNsdXNpb25zLnR4dCArIFNpbmdsZXRvbiBEZWNvbXBvc2l0aW9ucyArIAorICAgICAqIE5vbi1TdGFydGVyIERlY29tcG9zaXRpb25zLjwvcD4gCisgICAgICogQGRyYWZ0IElDVSAyLjEgCisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZVTExfQ09NUE9TSVRJT05fRVhDTFVTSU9OID0gOTsgCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBHcmFwaGVtZV9CYXNlIChuZXcpLjwvcD4KKyAgICAgKiA8cD5Gb3IgcHJvZ3JhbW1hdGljIGRldGVybWluYXRpb24gb2YgZ3JhcGhlbWUgY2x1c3RlciBib3VuZGFyaWVzLiAKKyAgICAgKiBbMC4uMTBGRkZGXS1DYy1DZi1Dcy1Dby1Dbi1abC1acC1HcmFwaGVtZV9MaW5rLUdyYXBoZW1lX0V4dGVuZC1DR0o8L3A+IAorICAgICAqIEBkcmFmdCBJQ1UgMi4xIAorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBHUkFQSEVNRV9CQVNFID0gMTA7IAorICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgR3JhcGhlbWVfRXh0ZW5kIChuZXcpLjwvcD4gCisgICAgICogPHA+Rm9yIHByb2dyYW1tYXRpYyBkZXRlcm1pbmF0aW9uIG9mIGdyYXBoZW1lIGNsdXN0ZXIgYm91bmRhcmllcy48L3A+IAorICAgICAqIDxwPk1lK01uK01jK090aGVyX0dyYXBoZW1lX0V4dGVuZC1HcmFwaGVtZV9MaW5rLUNHSjwvcD4gCisgICAgICogQGRyYWZ0IElDVSAyLjEgCisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEdSQVBIRU1FX0VYVEVORCA9IDExOyAKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IEdyYXBoZW1lX0xpbmsgKG5ldykuPC9wPiAKKyAgICAgKiA8cD5Gb3IgcHJvZ3JhbW1hdGljIGRldGVybWluYXRpb24gb2YgZ3JhcGhlbWUgY2x1c3RlciBib3VuZGFyaWVzLjwvcD4gCisgICAgICogQGRyYWZ0IElDVSAyLjEgCisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEdSQVBIRU1FX0xJTksgPSAxMjsgCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBIZXhfRGlnaXQuPC9wPiAKKyAgICAgKiA8cD5DaGFyYWN0ZXJzIGNvbW1vbmx5IHVzZWQgZm9yIGhleGFkZWNpbWFsIG51bWJlcnMuPC9wPiAKKyAgICAgKiBAZHJhZnQgSUNVIDIuMSAKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSEVYX0RJR0lUID0gMTM7IAorICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgSHlwaGVuLjwvcD4gCisgICAgICogPHA+RGFzaGVzIHVzZWQgdG8gbWFyayBjb25uZWN0aW9ucyBiZXR3ZWVuIHBpZWNlcyBvZiB3b3JkcywgcGx1cyB0aGUgCisgICAgICogS2F0YWthbmEgbWlkZGxlIGRvdC48L3A+IAorICAgICAqIEBkcmFmdCBJQ1UgMi4xIAorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIWVBIRU4gPSAxNDsgCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBJRF9Db250aW51ZS48L3A+CisgICAgICogPHA+Q2hhcmFjdGVycyB0aGF0IGNhbiBjb250aW51ZSBhbiBpZGVudGlmaWVyLjwvcD4gCisgICAgICogPHA+SURfU3RhcnQrTW4rTWMrTmQrUGM8L3A+IAorICAgICAqIEBkcmFmdCBJQ1UgMi4xIAorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJRF9DT05USU5VRSA9IDE1OyAKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IElEX1N0YXJ0LjwvcD4gCisgICAgICogPHA+Q2hhcmFjdGVycyB0aGF0IGNhbiBzdGFydCBhbiBpZGVudGlmaWVyLjwvcD4gCisgICAgICogPHA+THUrTGwrTHQrTG0rTG8rTmw8L3A+IAorICAgICAqIEBkcmFmdCBJQ1UgMi4xIAorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJRF9TVEFSVCA9IDE2OyAKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IElkZW9ncmFwaGljLjwvcD4gCisgICAgICogPHA+Q0pLViBpZGVvZ3JhcGhzLjwvcD4gCisgICAgICogQGRyYWZ0IElDVSAyLjEgCisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElERU9HUkFQSElDID0gMTc7IAorICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgSURTX0JpbmFyeV9PcGVyYXRvciAobmV3KS48L3A+IAorICAgICAqIDxwPkZvciBwcm9ncmFtbWF0aWMgZGV0ZXJtaW5hdGlvbiBvZiBJZGVvZ3JhcGhpYyBEZXNjcmlwdGlvbiBTZXF1ZW5jZXMuCisgICAgICogPC9wPiAKKyAgICAgKiBAZHJhZnQgSUNVIDIuMSAKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSURTX0JJTkFSWV9PUEVSQVRPUiA9IDE4OyAKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IElEU19UcmluYXJ5X09wZXJhdG9yIChuZXcpLjwvcD4gCisgICAgICogPHA/Rm9yIHByb2dyYW1tYXRpYyBkZXRlcm1pbmF0aW9uIG9mIElkZW9ncmFwaGljIERlc2NyaXB0aW9uIAorICAgICAqIFNlcXVlbmNlcy48L3A+IAorICAgICAqIEBkcmFmdCBJQ1UgMi4xIAorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJRFNfVFJJTkFSWV9PUEVSQVRPUiA9IDE5OyAKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IEpvaW5fQ29udHJvbC48L3A+IAorICAgICAqIDxwPkZvcm1hdCBjb250cm9scyBmb3IgY3Vyc2l2ZSBqb2luaW5nIGFuZCBsaWdhdGlvbi48L3A+IAorICAgICAqIEBkcmFmdCBJQ1UgMi4xIAorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBKT0lOX0NPTlRST0wgPSAyMDsgCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBMb2dpY2FsX09yZGVyX0V4Y2VwdGlvbiAobmV3KS48L3A+IAorICAgICAqIDxwPkNoYXJhY3RlcnMgdGhhdCBkbyBub3QgdXNlIGxvZ2ljYWwgb3JkZXIgYW5kIHJlcXVpcmUgc3BlY2lhbCAKKyAgICAgKiBoYW5kbGluZyBpbiBtb3N0IHByb2Nlc3NpbmcuPC9wPiAKKyAgICAgKiBAZHJhZnQgSUNVIDIuMSAKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTE9HSUNBTF9PUkRFUl9FWENFUFRJT04gPSAyMTsgCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBMb3dlcmNhc2UuPC9wPiAKKyAgICAgKiA8cD5TYW1lIGFzIFVDaGFyYWN0ZXIuaXNVTG93ZXJjYXNlKCksIGRpZmZlcmVudCBmcm9tIAorICAgICAqIFVDaGFyYWN0ZXIuaXNsb3dlcigpLjwvcD4gCisgICAgICogPHA+TGwrT3RoZXJfTG93ZXJjYXNlPC9wPiAKKyAgICAgKiBAZHJhZnQgSUNVIDIuMSAKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTE9XRVJDQVNFID0gMjI7IAorICAgIC8qKiA8cD5CaW5hcnkgcHJvcGVydHkgTWF0aC48L3A+IAorICAgICAqIDxwPlNtK090aGVyX01hdGg8L3A+IAorICAgICAqIEBkcmFmdCBJQ1UgMi4xIAorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNQVRIID0gMjM7IAorICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgTm9uY2hhcmFjdGVyX0NvZGVfUG9pbnQuPC9wPiAKKyAgICAgKiA8cD5Db2RlIHBvaW50cyB0aGF0IGFyZSBleHBsaWNpdGx5IGRlZmluZWQgYXMgaWxsZWdhbCBmb3IgdGhlIGVuY29kaW5nIAorICAgICAqIG9mIGNoYXJhY3RlcnMuPC9wPiAKKyAgICAgKiBAZHJhZnQgSUNVIDIuMSAKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTk9OQ0hBUkFDVEVSX0NPREVfUE9JTlQgPSAyNDsgCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBRdW90YXRpb25fTWFyay48L3A+IAorICAgICAqIEBkcmFmdCBJQ1UgMi4xIAorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBRVU9UQVRJT05fTUFSSyA9IDI1OyAKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IFJhZGljYWwgKG5ldykuPC9wPiAKKyAgICAgKiA8cD5Gb3IgcHJvZ3JhbW1hdGljIGRldGVybWluYXRpb24gb2YgSWRlb2dyYXBoaWMgRGVzY3JpcHRpb24gCisgICAgICogU2VxdWVuY2VzLjwvcD4gCisgICAgICogQGRyYWZ0IElDVSAyLjEgCisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJBRElDQUwgPSAyNjsgCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBTb2Z0X0RvdHRlZCAobmV3KS48L3A+IAorICAgICAqIDxwPkNoYXJhY3RlcnMgd2l0aCBhICJzb2Z0IGRvdCIsIGxpa2UgaSBvciBqLjwvcD4KKyAgICAgKiA8cD5BbiBhY2NlbnQgcGxhY2VkIG9uIHRoZXNlIGNoYXJhY3RlcnMgY2F1c2VzIHRoZSBkb3QgdG8gZGlzYXBwZWFyLjwvcD4gCisgICAgICogQGRyYWZ0IElDVSAyLjEgCisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNPRlRfRE9UVEVEID0gMjc7IAorICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgVGVybWluYWxfUHVuY3R1YXRpb24uPC9wPiAKKyAgICAgKiA8cD5QdW5jdHVhdGlvbiBjaGFyYWN0ZXJzIHRoYXQgZ2VuZXJhbGx5IG1hcmsgdGhlIGVuZCBvZiB0ZXh0dWFsIAorICAgICAqIHVuaXRzLjwvcD4gCisgICAgICogQGRyYWZ0IElDVSAyLjEgCisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFUk1JTkFMX1BVTkNUVUFUSU9OID0gMjg7IAorICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgVW5pZmllZF9JZGVvZ3JhcGggKG5ldykuPC9wPiAKKyAgICAgKiA8cD5Gb3IgcHJvZ3JhbW1hdGljIGRldGVybWluYXRpb24gb2YgSWRlb2dyYXBoaWMgRGVzY3JpcHRpb24gCisgICAgICogU2VxdWVuY2VzLjwvcD4gCisgICAgICogQGRyYWZ0IElDVSAyLjEgCisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVOSUZJRURfSURFT0dSQVBIID0gMjk7IAorICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgVXBwZXJjYXNlLjwvcD4gCisgICAgICogPHA+U2FtZSBhcyBVQ2hhcmFjdGVyLmlzVVVwcGVyY2FzZSgpLCBkaWZmZXJlbnQgZnJvbSAKKyAgICAgKiBVQ2hhcmFjdGVyLmlzVXBwZXJDYXNlKCkuPC9wPiAKKyAgICAgKiA8cD5MdStPdGhlcl9VcHBlcmNhc2U8L3A+IAorICAgICAqIEBkcmFmdCBJQ1UgMi4xIAorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBVUFBFUkNBU0UgPSAzMDsgCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBXaGl0ZV9TcGFjZS48L3A+IAorICAgICAqIDxwPlNhbWUgYXMgVUNoYXJhY3Rlci5pc1VXaGl0ZVNwYWNlKCksIGRpZmZlcmVudCBmcm9tIAorICAgICAqIFVDaGFyYWN0ZXIuaXNTcGFjZSgpIGFuZCBVQ2hhcmFjdGVyLmlzV2hpdGVzcGFjZSgpLjwvcD4gCisgICAgICogU3BhY2UgY2hhcmFjdGVycytUQUIrQ1IrTEYtWldTUC1aV05CU1A8L3A+IAorICAgICAqIEBkcmFmdCBJQ1UgMi4xIAorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXSElURV9TUEFDRSA9IDMxOyAKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IFhJRF9Db250aW51ZS48L3A+IAorICAgICAqIDxwPklEX0NvbnRpbnVlIG1vZGlmaWVkIHRvIGFsbG93IGNsb3N1cmUgdW5kZXIgbm9ybWFsaXphdGlvbiBmb3JtcyAKKyAgICAgKiBORktDIGFuZCBORktELjwvcD4gCisgICAgICogQGRyYWZ0IElDVSAyLjEgCisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFhJRF9DT05USU5VRSA9IDMyOyAKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IFhJRF9TdGFydC48L3A+IAorICAgICAqIDxwPklEX1N0YXJ0IG1vZGlmaWVkIHRvIGFsbG93IGNsb3N1cmUgdW5kZXIgbm9ybWFsaXphdGlvbiBmb3JtcyBORktDIAorICAgICAqIGFuZCBORktELjwvcD4gCisgICAgICogQGRyYWZ0IElDVSAyLjEgCisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFhJRF9TVEFSVCA9IDMzOyAKKyAgICAvKiogCisgICAgICogPHA+T25lIG1vcmUgdGhhbiB0aGUgbGFzdCBjb25zdGFudCBmb3IgYmluYXJ5IFVuaWNvZGUgcHJvcGVydGllcy48L3A+IAorICAgICAqIEBkcmFmdCBJQ1UgMi4xIAorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCSU5BUllfTElNSVQgPSAzNDsKKyAgICAvKiogCisgICAgICogRW51bWVyYXRlZCBwcm9wZXJ0eSBCaWRpX0NsYXNzLgorICAgICAqIFNhbWUgYXMgdV9jaGFyRGlyZWN0aW9uLCByZXR1cm5zIFVDaGFyRGlyZWN0aW9uIHZhbHVlcy4gCisgICAgICogQGRyYWZ0IElDVSAyLjIgCisgICAgICovCisgICAgLy8gcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQklESV9DTEFTUyA9IDB4MTAwMDsKKyAgICAvKiogCisgICAgICogRmlyc3QgY29uc3RhbnQgZm9yIGVudW1lcmF0ZWQvaW50ZWdlciBVbmljb2RlIHByb3BlcnRpZXMuIAorICAgICAqIEBkcmFmdCBJQ1UgMi4yIAorICAgICAqLworICAgIC8vIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElOVF9TVEFSVCA9IEJJRElfQ0xBU1M7CisgICAgLyoqIAorICAgICAqIEVudW1lcmF0ZWQgcHJvcGVydHkgQmxvY2suCisgICAgICogU2FtZSBhcyB1YmxvY2tfZ2V0Q29kZSwgcmV0dXJucyBVQmxvY2tDb2RlIHZhbHVlcy4gCisgICAgICogQGRyYWZ0IElDVSAyLjIgCisgICAgICovCisgICAgLy8gcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQkxPQ0sgPSAweDEwMDE7CisgICAgLyoqIAorICAgICAqIEVudW1lcmF0ZWQgcHJvcGVydHkgQ2Fub25pY2FsX0NvbWJpbmluZ19DbGFzcy4KKyAgICAgKiBTYW1lIGFzIGdldENvbWJpbmluZ0NsYXNzLCByZXR1cm5zIDgtYml0IG51bWVyaWMgdmFsdWVzLiAKKyAgICAgKiBAZHJhZnQgSUNVIDIuMiAKKyAgICAgKi8KKyAgICAvLyBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDQU5PTklDQUxfQ09NQklOSU5HX0NMQVNTID0gMHgxMDAyOworICAgIC8qKiAKKyAgICAgKiBFbnVtZXJhdGVkIHByb3BlcnR5IERlY29tcG9zaXRpb25fVHlwZS4KKyAgICAgKiBSZXR1cm5zIFVEZWNvbXBvc2l0aW9uVHlwZSB2YWx1ZXMuIAorICAgICAqIEBkcmFmdCBJQ1UgMi4yIAorICAgICAqLworICAgIC8vIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERFQ09NUE9TSVRJT05fVFlQRSA9IDB4MTAwMzsKKyAgICAvKiogCisgICAgICogRW51bWVyYXRlZCBwcm9wZXJ0eSBFYXN0X0FzaWFuX1dpZHRoLgorICAgICAqIFNlZSBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9ydHMvdHIxMS8KKyAgICAgKiBSZXR1cm5zIFVFYXN0QXNpYW5XaWR0aCB2YWx1ZXMuIAorICAgICAqIEBkcmFmdCBJQ1UgMi4yIAorICAgICAqLworICAgIC8vIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVBU1RfQVNJQU5fV0lEVEggPSAweDEwMDQ7CisgICAgLyoqIAorICAgICAqIEVudW1lcmF0ZWQgcHJvcGVydHkgR2VuZXJhbF9DYXRlZ29yeS4KKyAgICAgKiBTYW1lIGFzIGNoYXJUeXBlLCByZXR1cm5zIFVDaGFyYWN0ZXJDYXRlZ29yeSB2YWx1ZXMuIAorICAgICAqIEBkcmFmdCBJQ1UgMi4yIAorICAgICAqLworICAgIC8vIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEdFTkVSQUxfQ0FURUdPUlkgPSAweDEwMDU7CisgICAgLyoqIAorICAgICAqIEVudW1lcmF0ZWQgcHJvcGVydHkgSm9pbmluZ19Hcm91cC4KKyAgICAgKiBSZXR1cm5zIFVKb2luaW5nR3JvdXAgdmFsdWVzLiAKKyAgICAgKiBAZHJhZnQgSUNVIDIuMiAKKyAgICAgKi8KKyAgICAvLyBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBKT0lOSU5HX0dST1VQID0gMHgxMDA2OworICAgIC8qKiAKKyAgICAgKiBFbnVtZXJhdGVkIHByb3BlcnR5IEpvaW5pbmdfVHlwZS4KKyAgICAgKiBSZXR1cm5zIFVKb2luaW5nVHlwZSB2YWx1ZXMuIAorICAgICAqIEBkcmFmdCBJQ1UgMi4yIAorICAgICAqLworICAgIC8vIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEpPSU5JTkdfVFlQRSA9IDB4MTAwNzsKKyAgICAvKiogCisgICAgICogRW51bWVyYXRlZCBwcm9wZXJ0eSBMaW5lX0JyZWFrLgorICAgICAqIFJldHVybnMgVUxpbmVCcmVhayB2YWx1ZXMuIAorICAgICAqIEBkcmFmdCBJQ1UgMi4yIAorICAgICAqLworICAgIC8vIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExJTkVfQlJFQUsgPSAweDEwMDg7CisgICAgLyoqIAorICAgICAqIEVudW1lcmF0ZWQgcHJvcGVydHkgTnVtZXJpY19UeXBlLgorICAgICAqIFJldHVybnMgVU51bWVyaWNUeXBlIHZhbHVlcy4gCisgICAgICogQGRyYWZ0IElDVSAyLjIgCisgICAgICovCisgICAgLy8gcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTlVNRVJJQ19UWVBFID0gMHgxMDA5OworICAgIC8qKiAKKyAgICAgKiBFbnVtZXJhdGVkIHByb3BlcnR5IFNjcmlwdC4KKyAgICAgKiBTYW1lIGFzIHVzY3JpcHRfZ2V0U2NyaXB0LCByZXR1cm5zIFVTY3JpcHRDb2RlIHZhbHVlcy4gCisgICAgICogQGRyYWZ0IElDVSAyLjIgCisgICAgICovCisgICAgLy8gcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0NSSVBUID0gMHgxMDBBOworICAgIC8qKiAKKyAgICAgKiBPbmUgbW9yZSB0aGFuIHRoZSBsYXN0IGNvbnN0YW50IGZvciBlbnVtZXJhdGVkL2ludGVnZXIgVW5pY29kZSAKKyAgICAgKiBwcm9wZXJ0aWVzLiAKKyAgICAgKiBAZHJhZnQgSUNVIDIuMiAKKyAgICAgKi8KKyAgICAvLyBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJTlRfTElNSVQgPSAweDEwMEI7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvbGFuZy9VU2NyaXB0LmphdmEgYi9zcmMvY29tL2libS9pY3UvbGFuZy9VU2NyaXB0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2YyYmRiNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VTY3JpcHQuamF2YQpAQCAtMCwwICsxLDQxNCBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1Lmxhbmc7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUxvY2FsZURhdGE7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Mb2NhbGVVdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3RlclByb3BlcnR5OworCitpbXBvcnQgamF2YS51dGlsLlJlc291cmNlQnVuZGxlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworLyoqCisgKiBBIGNsYXNzIHRvIHJlZmxlY3QgVVRSICMyNDogU2NyaXB0IE5hbWVzCisgKiAoYmFzZWQgb24gSVNPIDE1OTI0OjIwMDAsICJDb2RlIGZvciB0aGUgcmVwcmVzZW50YXRpb24gb2YgbmFtZXMgb2YKKyAqIHNjcmlwdHMiKS4gIFVUUiAjMjQgZGVzY3JpYmVzIHRoZSBiYXNpcyBmb3IgYSBuZXcgVW5pY29kZSBkYXRhIGZpbGUsCisgKiBTY3JpcHRzLnR4dC4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFVTY3JpcHQgeworICAgIC8qKgorICAgICAqIFB1dHMgYSBjb3B5cmlnaHQgaW4gdGhlIC5jbGFzcyBmaWxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodE5vdGljZQorICAgICAgICA9ICJDb3B5cmlnaHQgXHUwMGE5MjAwMSBJQk0gQ29ycC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKyAgICAgICAgCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSU5WQUxJRF9DT0RFID0gLTE7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09NTU9OICAgICAgID0gIDA7ICAvKiBaeXl5ICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSU5IRVJJVEVEICAgID0gIDE7ICAvKiBRYWFpICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQVJBQklDICAgICAgID0gIDI7ICAvKiBBcmFiICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQVJNRU5JQU4gICAgID0gIDM7ICAvKiBBcm1uICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQkVOR0FMSSAgICAgID0gIDQ7ICAvKiBCZW5nICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQk9QT01PRk8gICAgID0gIDU7ICAvKiBCb3BvICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0hFUk9LRUUgICAgID0gIDY7ICAvKiBDaGVyICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09QVElDICAgICAgID0gIDc7ICAvKiBRYWFjICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ1lSSUxMSUMgICAgID0gIDg7ICAvKiBDeXJsIChDeXJzKSAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERFU0VSRVQgICAgICA9ICA5OyAgLyogRHNydCAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERFVkFOQUdBUkkgICA9IDEwOyAgLyogRGV2YSAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVUSElPUElDICAgICA9IDExOyAgLyogRXRoaSAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEdFT1JHSUFOICAgICA9IDEyOyAgLyogR2VvciAoR2VvbjsgR2VvYSkgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBHT1RISUMgICAgICAgPSAxMzsgIC8qIEdvdGggKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBHUkVFSyAgICAgICAgPSAxNDsgIC8qIEdyZWsgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBHVUpBUkFUSSAgICAgPSAxNTsgIC8qIEd1anIgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBHVVJNVUtISSAgICAgPSAxNjsgIC8qIEd1cnUgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIQU4gICAgICAgICAgPSAxNzsgIC8qIEhhbmkgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIQU5HVUwgICAgICAgPSAxODsgIC8qIEhhbmcgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIRUJSRVcgICAgICAgPSAxOTsgIC8qIEhlYnIgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBISVJBR0FOQSAgICAgPSAyMDsgIC8qIEhpcmEgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLQU5OQURBICAgICAgPSAyMTsgIC8qIEtuZGEgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLQVRBS0FOQSAgICAgPSAyMjsgIC8qIEthbmEgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLSE1FUiAgICAgICAgPSAyMzsgIC8qIEtobXIgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMQU8gICAgICAgICAgPSAyNDsgIC8qIExhb28gKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMQVRJTiAgICAgICAgPSAyNTsgIC8qIExhdG4gKExhdGY7IExhdGcpICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUFMQVlBTEFNICAgID0gMjY7ICAvKiBNbHltICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTU9OR09MSUFOICAgID0gMjc7ICAvKiBNb25nICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTVlBTk1BUiAgICAgID0gMjg7ICAvKiBNeW1yICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgT0dIQU0gICAgICAgID0gMjk7ICAvKiBPZ2FtICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgT0xEX0lUQUxJQyAgID0gMzA7ICAvKiBJdGFsICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgT1JJWUEgICAgICAgID0gMzE7ICAvKiBPcnlhICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUlVOSUMgICAgICAgID0gMzI7ICAvKiBSdW5yICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0lOSEFMQSAgICAgID0gMzM7ICAvKiBTaW5oICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1lSSUFDICAgICAgID0gMzQ7ICAvKiBTeXJjIChTeXJqOyBTeXJuOyBTeXJlKSAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRBTUlMICAgICAgICA9IDM1OyAgLyogVGFtbCAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFTFVHVSAgICAgICA9IDM2OyAgLyogVGVsdSAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRIQUFOQSAgICAgICA9IDM3OyAgLyogVGhhYSAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRIQUkgICAgICAgICA9IDM4OyAgLyogVGhhaSAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRJQkVUQU4gICAgICA9IDM5OyAgLyogVGlidCAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVDQVMgICAgICAgICA9IDQwOyAgLyogQ2FucyAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFlJICAgICAgICAgICA9IDQxOyAgLyogWWlpaSAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRBR0FMT0cgICAgICA9IDQyOyAgLyogVGdsZyAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhBTlVOT08gICAgICA9IDQzOyAgLyogSGFubyAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJVSElEICAgICAgICA9IDQ0OyAgLyogQnVoZCAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRBR0JBTldBICAgICA9IDQ1OyAgLyogVGFnYiAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPREVfTElNSVQgICA9IDQ2OyAKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBOYW1lQ29kZVBhaXJ7CisgICAgICAgIFN0cmluZyBuYW1lOworICAgICAgICBpbnQgY29kZTsKKyAgICAgICAgcHJpdmF0ZSBOYW1lQ29kZVBhaXIoU3RyaW5nIHN0ciwgaW50IGNkKXsKKyAgICAgICAgICAgIG5hbWUgPSBzdHI7CisgICAgICAgICAgICBjb2RlPWNkOworICAgICAgICB9CisgICAgfQorICAgIAorCXByaXZhdGUgc3RhdGljIGZpbmFsIE5hbWVDb2RlUGFpcltdIHNjcmlwdE5hbWVzPXsKKwkgICBuZXcgTmFtZUNvZGVQYWlyKCAiQVJBQklDIiwgICAgICAgICAgICAgIEFSQUJJQyAgICAgICksCisJICAgbmV3IE5hbWVDb2RlUGFpciggIkFSTUVOSUFOIiwgICAgICAgICAgICBBUk1FTklBTiAgICApLAorCSAgIG5ldyBOYW1lQ29kZVBhaXIoICJCRU5HQUxJIiwgICAgICAgICAgICAgQkVOR0FMSSAgICAgKSwKKwkgICBuZXcgTmFtZUNvZGVQYWlyKCAiQk9QT01PRk8iLCAgICAgICAgICAgIEJPUE9NT0ZPICAgICksCisJICAgbmV3IE5hbWVDb2RlUGFpciggIkJVSElEIiwgICAgICAgICAgICAgICBCVUhJRCAgICAgICApLAorCSAgIG5ldyBOYW1lQ29kZVBhaXIoICJDQU5BRElBTl9BQk9SSUdJTkFMIiwgVUNBUyAgICAgICAgKSwKKwkgICBuZXcgTmFtZUNvZGVQYWlyKCAiQ0hFUk9LRUUiLCAgICAgICAgICAgIENIRVJPS0VFICAgICksCisJICAgbmV3IE5hbWVDb2RlUGFpciggIkNPTU1PTiIsICAgICAgICAgICAgICBDT01NT04gICAgICApLAorICAgICAgIG5ldyBOYW1lQ29kZVBhaXIoICJDT1BUSUMiLCAgICAgICAgICAgICAgQ09QVElDICAgICAgKSwKKwkgICBuZXcgTmFtZUNvZGVQYWlyKCAiQ1lSSUxMSUMiLCAgICAgICAgICAgIENZUklMTElDICAgICksCisJICAgbmV3IE5hbWVDb2RlUGFpciggIkRFU0VSRVQiLCAgICAgICAgICAgICBERVNFUkVUICAgICApLAorCSAgIG5ldyBOYW1lQ29kZVBhaXIoICJERVZBTkFHQVJJIiwgICAgICAgICAgREVWQU5BR0FSSSAgKSwKKwkgICBuZXcgTmFtZUNvZGVQYWlyKCAiRVRISU9QSUMiLCAgICAgICAgICAgIEVUSElPUElDICAgICksCisJICAgbmV3IE5hbWVDb2RlUGFpciggIkdFT1JHSUFOIiwgICAgICAgICAgICBHRU9SR0lBTiAgICApLAorCSAgIG5ldyBOYW1lQ29kZVBhaXIoICJHT1RISUMiLCAgICAgICAgICAgICAgR09USElDICAgICAgKSwKKwkgICBuZXcgTmFtZUNvZGVQYWlyKCAiR1JFRUsiLCAgICAgICAgICAgICAgIEdSRUVLICAgICAgICksCisJICAgbmV3IE5hbWVDb2RlUGFpciggIkdVSkFSQVRJIiwgICAgICAgICAgICBHVUpBUkFUSSAgICApLAorCSAgIG5ldyBOYW1lQ29kZVBhaXIoICJHVVJNVUtISSIsICAgICAgICAgICAgR1VSTVVLSEkgICAgKSwKKwkgICBuZXcgTmFtZUNvZGVQYWlyKCAiSEFOIiwgICAgICAgICAgICAgICAgIEhBTiAgICAgICAgICksCisJICAgbmV3IE5hbWVDb2RlUGFpciggIkhBTkdVTCIsICAgICAgICAgICAgICBIQU5HVUwgICAgICApLAorCSAgIG5ldyBOYW1lQ29kZVBhaXIoICJIQU5VTk9PIiwgICAgICAgICAgICAgSEFOVU5PTyAgICAgKSwKKwkgICBuZXcgTmFtZUNvZGVQYWlyKCAiSEVCUkVXIiwgICAgICAgICAgICAgIEhFQlJFVyAgICAgICksCisJICAgbmV3IE5hbWVDb2RlUGFpciggIkhJUkFHQU5BIiwgICAgICAgICAgICBISVJBR0FOQSAgICApLAorCSAgIG5ldyBOYW1lQ29kZVBhaXIoICJJTkhFUklURUQiLCAgICAgICAgICAgSU5IRVJJVEVEICAgKSwKKwkgICBuZXcgTmFtZUNvZGVQYWlyKCAiS0FOTkFEQSIsICAgICAgICAgICAgIEtBTk5BREEgICAgICksCisJICAgbmV3IE5hbWVDb2RlUGFpciggIktBVEFLQU5BIiwgICAgICAgICAgICBLQVRBS0FOQSAgICApLAorCSAgIG5ldyBOYW1lQ29kZVBhaXIoICJLSE1FUiIsICAgICAgICAgICAgICAgS0hNRVIgICAgICAgKSwKKyAgICAgICBuZXcgTmFtZUNvZGVQYWlyKCAiTEFPIiwgICAgICAgICAgICAgICAgIExBTyAgICAgICAgICksCisJICAgbmV3IE5hbWVDb2RlUGFpciggIkxBVElOIiwgICAgICAgICAgICAgICBMQVRJTiAgICAgICApLAorCSAgIG5ldyBOYW1lQ29kZVBhaXIoICJNQUxBWUFMQU0iLCAgICAgICAgICAgTUFMQVlBTEFNICAgKSwKKwkgICBuZXcgTmFtZUNvZGVQYWlyKCAiTU9OR09MSUFOIiwgICAgICAgICAgIE1PTkdPTElBTiAgICksCisJICAgbmV3IE5hbWVDb2RlUGFpciggIk1ZQU5NQVIiLCAgICAgICAgICAgICBNWUFOTUFSICAgICApLAorCSAgIG5ldyBOYW1lQ29kZVBhaXIoICJPR0hBTSIsICAgICAgICAgICAgICAgT0dIQU0gICAgICAgKSwKKwkgICBuZXcgTmFtZUNvZGVQYWlyKCAiT0xEX0lUQUxJQyIsICAgICAgICAgIE9MRF9JVEFMSUMgICksCisJICAgbmV3IE5hbWVDb2RlUGFpciggIk9SSVlBIiwgICAgICAgICAgICAgICBPUklZQSAgICAgICApLAorCSAgIG5ldyBOYW1lQ29kZVBhaXIoICJSVU5JQyIsICAgICAgICAgICAgICAgUlVOSUMgICAgICAgKSwKKwkgICBuZXcgTmFtZUNvZGVQYWlyKCAiU0lOSEFMQSIsICAgICAgICAgICAgIFNJTkhBTEEgICAgICksCisJICAgbmV3IE5hbWVDb2RlUGFpciggIlNZUklBQyIsICAgICAgICAgICAgICBTWVJJQUMgICAgICApLAorCSAgIG5ldyBOYW1lQ29kZVBhaXIoICJUQUdBTE9HIiwgICAgICAgICAgICAgVEFHQUxPRyAgICAgKSwKKwkgICBuZXcgTmFtZUNvZGVQYWlyKCAiVEFHQkFOV0EiLCAgICAgICAgICAgIFRBR0JBTldBICAgICksCisJICAgbmV3IE5hbWVDb2RlUGFpciggIlRBTUlMIiwgICAgICAgICAgICAgICBUQU1JTCAgICAgICApLAorCSAgIG5ldyBOYW1lQ29kZVBhaXIoICJURUxVR1UiLCAgICAgICAgICAgICAgVEVMVUdVICAgICAgKSwKKwkgICBuZXcgTmFtZUNvZGVQYWlyKCAiVEhBQU5BIiwgICAgICAgICAgICAgIFRIQUFOQSAgICAgICksCisJICAgbmV3IE5hbWVDb2RlUGFpciggIlRIQUkiLCAgICAgICAgICAgICAgICBUSEFJICAgICAgICApLAorCSAgIG5ldyBOYW1lQ29kZVBhaXIoICJUSUJFVEFOIiwgICAgICAgICAgICAgVElCRVRBTiAgICAgKSwKKwkgICBuZXcgTmFtZUNvZGVQYWlyKCAiVUNBUyIsICAgICAgICAgICAgICAgIFVDQVMgICAgICAgICksCisJICAgbmV3IE5hbWVDb2RlUGFpciggIllJIiwgICAgICAgICAgICAgICAgICBZSSAgICAgICAgICApCisgICAgfTsKKwkKKwkvKiBzY3JpcHQgYWJicmV2aWF0aW9ucyB3aXRoIGNvZGVzLCBzb3J0ZWQgYnkgYWJicmV2aWF0aW9ucyAqLworCXByaXZhdGUgc3RhdGljIGZpbmFsIE5hbWVDb2RlUGFpcltdIHNjcmlwdEFiYnI9IHsKKwkgICAgbmV3IE5hbWVDb2RlUGFpciggIkFyYWIiLCAgICAgICBBUkFCSUMgICAgICApLAorCSAgICBuZXcgTmFtZUNvZGVQYWlyKCAiQXJtbiIsICAgICAgIEFSTUVOSUFOICAgICksCisJICAgIG5ldyBOYW1lQ29kZVBhaXIoICJCZW5nIiwgICAgICAgQkVOR0FMSSAgICAgKSwKKwkgICAgbmV3IE5hbWVDb2RlUGFpciggIkJvcG8iLCAgICAgICBCT1BPTU9GTyAgICApLAorCSAgICBuZXcgTmFtZUNvZGVQYWlyKCAiQnVoZCIsICAgICAgIEJVSElEICAgICAgICksCisJICAgIG5ldyBOYW1lQ29kZVBhaXIoICJDYW5zIiwgICAgICAgVUNBUyAgICAgICAgKSwKKwkgICAgbmV3IE5hbWVDb2RlUGFpciggIkNoZXIiLCAgICAgICBDSEVST0tFRSAgICApLAorCSAgICBuZXcgTmFtZUNvZGVQYWlyKCAiQ3lybCIsICAgICAgIENZUklMTElDICAgICksCisJIC8qIG5ldyBOYW1lQ29kZVBhaXIoICJDeXJzIiwgICAgICAgQ1lSSUxMSUMgICAgKSwgKi8KKwkgICAgbmV3IE5hbWVDb2RlUGFpciggIkRldmEiLCAgICAgICBERVZBTkFHQVJJICApLAorCSAgICBuZXcgTmFtZUNvZGVQYWlyKCAiRHNydCIsICAgICAgIERFU0VSRVQgICAgICksCisJICAgIG5ldyBOYW1lQ29kZVBhaXIoICJFdGhpIiwgICAgICAgRVRISU9QSUMgICAgKSwKKwkgLyogbmV3IE5hbWVDb2RlUGFpciggR2VvYSIsICAgICAgIEdFT1JHSUFOICAgICksICovCisJIC8qIG5ldyBOYW1lQ29kZVBhaXIoIEdlb24iLCAgICAgICBHRU9SR0lBTiAgICApLCAqLworCSAgICBuZXcgTmFtZUNvZGVQYWlyKCAiR2VvciIsICAgICAgIEdFT1JHSUFOICAgICksCisJICAgIG5ldyBOYW1lQ29kZVBhaXIoICJHb3RoIiwgICAgICAgR09USElDICAgICAgKSwKKwkgICAgbmV3IE5hbWVDb2RlUGFpciggIkdyZWsiLCAgICAgICBHUkVFSyAgICAgICApLAorCSAgICBuZXcgTmFtZUNvZGVQYWlyKCAiR3VqciIsICAgICAgIEdVSkFSQVRJICAgICksCisJICAgIG5ldyBOYW1lQ29kZVBhaXIoICJHdXJ1IiwgICAgICAgR1VSTVVLSEkgICAgKSwKKwkgICAgbmV3IE5hbWVDb2RlUGFpciggIkhhbmciLCAgICAgICBIQU5HVUwgICAgICApLAorCSAgICBuZXcgTmFtZUNvZGVQYWlyKCAiSGFuaSIsICAgICAgIEhBTiAgICAgICAgICksCisJICAgIG5ldyBOYW1lQ29kZVBhaXIoICJIYW5vIiwgICAgICAgSEFOVU5PTyAgICAgKSwKKwkgICAgbmV3IE5hbWVDb2RlUGFpciggIkhlYnIiLCAgICAgICBIRUJSRVcgICAgICApLAorCSAgICBuZXcgTmFtZUNvZGVQYWlyKCAiSGlyYSIsICAgICAgIEhJUkFHQU5BICAgICksCisJICAgIG5ldyBOYW1lQ29kZVBhaXIoICJJdGFsIiwgICAgICAgT0xEX0lUQUxJQyAgKSwKKwkgICAgbmV3IE5hbWVDb2RlUGFpciggIkthbmEiLCAgICAgICBLQVRBS0FOQSAgICApLAorCSAgICBuZXcgTmFtZUNvZGVQYWlyKCAiS2htciIsICAgICAgIEtITUVSICAgICAgICksCisJICAgIG5ldyBOYW1lQ29kZVBhaXIoICJLbmRhIiwgICAgICAgS0FOTkFEQSAgICAgKSwKKwkgICAgbmV3IE5hbWVDb2RlUGFpciggIkxhbyIsICAgICAgICBMQU8gICAgICAgICApLAorCSAvKiBuZXcgTmFtZUNvZGVQYWlyKCAiTGFvbyIsICAgICAgIExBTyAgICAgICAgICksICovCisJIC8qIG5ldyBOYW1lQ29kZVBhaXIoICJMYXRmIiwgICAgICAgTEFUSU4gICAgICAgKSwgKi8KKwkgLyogbmV3IE5hbWVDb2RlUGFpciggIkxhdGciLCAgICAgICBMQVRJTiAgICAgICApLCAqLworCSAgICBuZXcgTmFtZUNvZGVQYWlyKCAiTGF0biIsICAgICAgIExBVElOICAgICAgICksCisJICAgIG5ldyBOYW1lQ29kZVBhaXIoICJNbHltIiwgICAgICAgTUFMQVlBTEFNICAgKSwKKwkgICAgbmV3IE5hbWVDb2RlUGFpciggIk1vbmciLCAgICAgICBNT05HT0xJQU4gICApLAorCSAgICBuZXcgTmFtZUNvZGVQYWlyKCAiTXltciIsICAgICAgIE1ZQU5NQVIgICAgICksCisJICAgIG5ldyBOYW1lQ29kZVBhaXIoICJPZ2FtIiwgICAgICAgT0dIQU0gICAgICAgKSwKKwkgICAgbmV3IE5hbWVDb2RlUGFpciggIk9yeWEiLCAgICAgICBPUklZQSAgICAgICApLAorCSAgICBuZXcgTmFtZUNvZGVQYWlyKCAiUWFhYyIsICAgICAgIENPUFRJQyAgICAgICksCisJICAgIG5ldyBOYW1lQ29kZVBhaXIoICJRYWFpIiwgICAgICAgSU5IRVJJVEVEICAgKSwKKwkgICAgbmV3IE5hbWVDb2RlUGFpciggIlJ1bnIiLCAgICAgICBSVU5JQyAgICAgICApLAorCSAgICBuZXcgTmFtZUNvZGVQYWlyKCAiU2luaCIsICAgICAgIFNJTkhBTEEgICAgICksCisJICAgIG5ldyBOYW1lQ29kZVBhaXIoICJTeXJjIiwgICAgICAgU1lSSUFDICAgICAgKSwKKwkgLyogbmV3IE5hbWVDb2RlUGFpciggIlN5cmUiLCAgICAgICBTWVJJQUMgICAgICApLCAqLworCSAvKiBuZXcgTmFtZUNvZGVQYWlyKCAiU3lyaiIsICAgICAgIFNZUklBQyAgICAgICksICovCisJIC8qIG5ldyBOYW1lQ29kZVBhaXIoICJTeXJuIiwgICAgICAgU1lSSUFDICAgICAgKSwgKi8KKwkgICAgbmV3IE5hbWVDb2RlUGFpciggIlRhZ2IiLCAgICAgICBUQUdCQU5XQSAgICApLAorCSAgICBuZXcgTmFtZUNvZGVQYWlyKCAiVGFtbCIsICAgICAgIFRBTUlMICAgICAgICksCisJICAgIG5ldyBOYW1lQ29kZVBhaXIoICJUZWx1IiwgICAgICAgVEVMVUdVICAgICAgKSwKKwkgICAgbmV3IE5hbWVDb2RlUGFpciggIlRnbGciLCAgICAgICBUQUdBTE9HICAgICApLAorCSAgICBuZXcgTmFtZUNvZGVQYWlyKCAiVGhhYSIsICAgICAgIFRIQUFOQSAgICAgICksCisJICAgIG5ldyBOYW1lQ29kZVBhaXIoICJUaGFpIiwgICAgICAgVEhBSSAgICAgICAgKSwKKwkgICAgbmV3IE5hbWVDb2RlUGFpciggIlRpYnQiLCAgICAgICBUSUJFVEFOICAgICApLAorCSAgICBuZXcgTmFtZUNvZGVQYWlyKCAiWWlpaSIsICAgICAgIFlJICAgICAgICAgICksCisJICAgIG5ldyBOYW1lQ29kZVBhaXIoICJaeXl5IiwgICAgICAgQ09NTU9OICAgICAgKQorICAgIH07CisKKworCisgICAgLyogYmluYXJ5IHNlYXJjaCB0aGUgc3RyaW5nIGFycmF5ICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGZpbmRTdHJpbmdJbmRleChOYW1lQ29kZVBhaXJbXSBzb3J0ZWRBcnIsIFN0cmluZyB0YXJnZXQpeworICAgICAgICBpbnQgc2l6ZSA9IHNvcnRlZEFyci5sZW5ndGg7CisgICAgICAgIGludCBsZWZ0LCBtaWRkbGUsIHJpZ2h0LHJjOworICAgICAgICBsZWZ0ID0wOworICAgICAgICByaWdodD0gc2l6ZS0xOworICAgICAgICAKKyAgICAgICAgdGFyZ2V0ID0gdGFyZ2V0LnRvVXBwZXJDYXNlKCk7CisgICAgICAgIHdoaWxlKGxlZnQgPD0gcmlnaHQpeworICAgICAgICAgICAgbWlkZGxlID0gKGxlZnQrcmlnaHQpLzI7CisgICAgICAgICAgICByYz1jb21wYXJlUHJvcGVydHlOYW1lcyhzb3J0ZWRBcnJbbWlkZGxlXS5uYW1lLHRhcmdldCk7CisgICAgICAgICAgICBpZihyYzwwKXsKKyAgICAgICAgICAgICAgICBsZWZ0ID0gbWlkZGxlKzE7CisgICAgICAgICAgICB9ZWxzZSBpZihyYyA+MCl7CisgICAgICAgICAgICAgICAgcmlnaHQgPSBtaWRkbGUgLTE7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICByZXR1cm4gbWlkZGxlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICAvKiBsaW5lYXJseSBzZWFyY2ggdGhlIGFycmF5IGFuZCByZXR1cm4gdGhlIGluZGV4ICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGZpbmRDb2RlSW5kZXgoTmFtZUNvZGVQYWlyW10gdW5zb3J0ZWQsIGludCB0YXJnZXQpeworICAgICAgICBpbnQgc2l6ZSA9IHVuc29ydGVkLmxlbmd0aDsKKyAgICAgICAgaW50IGk9MDsKKyAgICAgICAgd2hpbGUoaTxzaXplKXsKKyAgICAgICAgICAgIGlmKHRhcmdldCA9PSB1bnNvcnRlZFtpXS5jb2RlKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGkrKzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTQ1JJUFRfTUFTSyAgID0gMHgwMDAwMDA3ZjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBVQ2hhcmFjdGVyUHJvcGVydHkgcHJvcD0gVUNoYXJhY3RlclByb3BlcnR5LmdldEluc3RhbmNlKCk7CisgICAgCisgICAgLyoqCisgICAgICogSGVscGVyIGZ1bmN0aW9uIHRvIGZpbmQgdGhlIGNvZGUgZnJvbSBsb2NhbGUuCisgICAgICogQHBhcmFtIExvY2FsZSB0aGUgbG9jYWxlLgorICAgICAqIEBleGNlcHRpb24gTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGlmIExvY2FsZVNjcmlwdCBjYW5ub3QgYmUgb3BlbmVkCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50W10gZmluZENvZGVGcm9tTG9jYWxlKExvY2FsZSBsb2NhbGUpIHsKKworICAgICAgICBSZXNvdXJjZUJ1bmRsZSByYiA9IElDVUxvY2FsZURhdGEuZ2V0TG9jYWxlRWxlbWVudHMobG9jYWxlKTsKKworICAgICAgICAvLyBpZiByYiBpcyBub3QgYSBzdHJpY3QgZmFsbGJhY2sgb2YgdGhlIHJlcXVlc3RlZCBsb2NhbGUsIHJldHVybiBudWxsCisgICAgICAgIGlmIChyYj09bnVsbCB8fCAhTG9jYWxlVXRpbGl0eS5pc0ZhbGxiYWNrT2YocmIuZ2V0TG9jYWxlKCksIGxvY2FsZSkpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nW10gc2NyaXB0cyA9IHJiLmdldFN0cmluZ0FycmF5KCJMb2NhbGVTY3JpcHQiKTsKKyAgICAgICAgaW50W10gcmVzdWx0ID0gbmV3IGludFtzY3JpcHRzLmxlbmd0aF07CisgICAgICAgIGludCB3ID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzY3JpcHRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpbnQgc3RySW5kZXggPSBmaW5kU3RyaW5nSW5kZXgoc2NyaXB0QWJiciwgc2NyaXB0c1tpXSk7CisgICAgICAgICAgICBpZiAoc3RySW5kZXggIT0gLTEpIHsKKyAgICAgICAgICAgICAgICByZXN1bHRbdysrXSA9IHNjcmlwdEFiYnJbc3RySW5kZXhdLmNvZGU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAodyA8IHJlc3VsdC5sZW5ndGgpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKCJiYWQgbG9jYWxlIGRhdGEsIGxpc3RlZCAiICsgc2NyaXB0cy5sZW5ndGggKyAiIHNjcmlwdHMgYnV0IGZvdW5kIG9ubHkgIiArIHcpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIGEgc2NyaXB0IGNvZGVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlIG9yIElTTyAxNTkyNCBhYmJyZXZpYXRpb24gb3IgbmFtZS4gCisgICAgICogUmV0dXJucyBNQUxBWUFNIGdpdmVuICJNYWxheWFtIiBPUiAiTWx5bSIuCisgICAgICogUmV0dXJucyBMQVRJTiBnaXZlbiAiZW4iIE9SICJlbl9VUyIgCisgICAgICogQHBhcmFtIGxvY2FsZSBMb2NhbGUKKyAgICAgKiBAcmV0dXJuIFRoZSBzY3JpcHQgY29kZXMgYXJyYXkuIG51bGwgaWYgdGhlIHRoZSBjb2RlIGNhbm5vdCBiZSBmb3VuZC4gCisgICAgICogQGV4Y2VwdGlvbiBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24KKyAgICAgKiBAZHJhZnQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludFtdIGdldENvZGUoTG9jYWxlIGxvY2FsZSkKKyAgICAgICAgdGhyb3dzIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBmaW5kQ29kZUZyb21Mb2NhbGUobG9jYWxlKTsKKyAgICAgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgYSBzY3JpcHQgY29kZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBsb2NhbGUgb3IgSVNPIDE1OTI0IGFiYnJldmlhdGlvbiBvciBuYW1lLiAKKyAgICAgKiBSZXR1cm5zIE1BTEFZQU0gZ2l2ZW4gIk1hbGF5YW0iIE9SICJNbHltIi4KKyAgICAgKiBSZXR1cm5zIExBVElOIGdpdmVuICJlbiIgT1IgImVuX1VTIiAKKyAgICAgKiBAcGFyYW0gbmFtZU9yQWJick9yTG9jYWxlIG5hbWUgb2YgdGhlIHNjcmlwdCBvciBJU08gMTU5MjQgY29kZSBvciBsb2NhbGUKKyAgICAgKiBAcmV0dXJuIFRoZSBzY3JpcHQgY29kZXMgYXJyYXkuIG51bGwgaWYgdGhlIHRoZSBjb2RlIGNhbm5vdCBiZSBmb3VuZC4KKyAgICAgKiBAZHJhZnQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludFtdIGdldENvZGUoU3RyaW5nIG5hbWVPckFiYnJPckxvY2FsZSl7CisgICAgICAgICAgICAKKyAgICAgICAgaW50W10gY29kZSA9IG5ldyBpbnRbMV07CisgICAgICAgIGNvZGVbMF0gPSBJTlZBTElEX0NPREU7CisgICAgICAgIGludCBzdHJJbmRleD0wOworICAgICAgICAKKyAgICAgICAgLyogdHJ5IHRoZSBOYW1lcyBhcnJheSBmaXJzdCAqLworICAgICAgICBzdHJJbmRleCA9IGZpbmRTdHJpbmdJbmRleChzY3JpcHROYW1lcywgbmFtZU9yQWJick9yTG9jYWxlKTsKKyAgICAgICAgCisgICAgICAgIGlmKHN0ckluZGV4Pj0wICYmIHN0ckluZGV4IDwgc2NyaXB0TmFtZXMubGVuZ3RoKXsgCisgICAgICAgICAgICBjb2RlWzBdID0gIHNjcmlwdE5hbWVzW3N0ckluZGV4XS5jb2RlOworICAgICAgICB9CisgICAgICAgIC8qIHdlIGRpZCBub3QgZmluZCBpbiBuYW1lcyBhcnJheSBzbyB0cnkgYWJiciBhcnJheSovCisgICAgICAgIGlmKGNvZGVbMF0gPT0gSU5WQUxJRF9DT0RFKXsKKyAgICAgICAgICAgIHN0ckluZGV4ID0gZmluZFN0cmluZ0luZGV4KHNjcmlwdEFiYnIsIG5hbWVPckFiYnJPckxvY2FsZSk7CisgICAgICAgICAgICBpZihzdHJJbmRleD49MCAmJiBzdHJJbmRleCA8IHNjcmlwdEFiYnIubGVuZ3RoKXsgCisgICAgICAgICAgICAgICAgY29kZVswXSA9ICBzY3JpcHRBYmJyW3N0ckluZGV4XS5jb2RlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8qIHdlIHN0aWxsIGhhdmVuJ3QgZm91bmQgaXQgdHJ5IGxvY2FsZSAqLyAgICAgICAgCisgICAgICAgIGlmKGNvZGVbMF09PUlOVkFMSURfQ09ERSl7ICAgICAgICAgICAgCisgICAgICAgICAgICBjb2RlID0gZmluZENvZGVGcm9tTG9jYWxlKExvY2FsZVV0aWxpdHkuZ2V0TG9jYWxlRnJvbU5hbWUobmFtZU9yQWJick9yTG9jYWxlKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNvZGU7CisgICAgfQorCisgICAgLyoqIAorICAgICAqIEdldHMgdGhlIHNjcmlwdCBjb2RlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gY29kZXBvaW50LgorICAgICAqIFJldHVybnMgVVNjcmlwdC5NQUxBWUFNIGdpdmVuIDB4MEQwMiAKKyAgICAgKiBAcGFyYW0gY29kZXBvaW50IFVDaGFyMzIgY29kZXBvaW50CisgICAgICogQHBhcmFtIGVyciB0aGUgZXJyb3Igc3RhdHVzIGNvZGUuCisgICAgICogQHJldHVybiBUaGUgc2NyaXB0IGNvZGUgCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24KKyAgICAgKiBAZHJhZnQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBnZXRTY3JpcHQoaW50IGNvZGVwb2ludCl7CisgICAgICAgIGlmIChjb2RlcG9pbnQgPj0gVUNoYXJhY3Rlci5NSU5fVkFMVUUgJiBjb2RlcG9pbnQgPD0gVUNoYXJhY3Rlci5NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHJldHVybiAoaW50KShwcm9wLmdldEFkZGl0aW9uYWwoY29kZXBvaW50LDApICYgU0NSSVBUX01BU0spOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oSW50ZWdlci50b1N0cmluZyhjb2RlcG9pbnQpKTsKKyAgICAgICAgfSAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyBhIHNjcmlwdCBuYW1lIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gc2NyaXB0IGNvZGUuIAorICAgICAqIFJldHVybnMgICJNYWxheWFtIiBnaXZlbiBNQUxBWUFNCisgICAgICogQHBhcmFtIHNjcmlwdENvZGUgaW50IHNjcmlwdCBjb2RlCisgICAgICogQHJldHVybiBzY3JpcHQgbmFtZSBhcyBhIHN0cmluZyBpbiBmdWxsIGFzIGdpdmVuIGluIFRSIzI0CisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24KKyAgICAgKiBAZHJhZnQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBnZXROYW1lKGludCBzY3JpcHRDb2RlKXsKKyAgICAgICAgaW50IGluZGV4ID0gLTE7CisgICAgICAgIGlmKHNjcmlwdENvZGUgPiBDT0RFX0xJTUlUKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oSW50ZWdlci50b1N0cmluZyhzY3JpcHRDb2RlKSk7CisgICAgICAgIH0KKyAgICAgICAgaW5kZXggPSBmaW5kQ29kZUluZGV4KHNjcmlwdE5hbWVzLHNjcmlwdENvZGUpOworICAgICAgICBpZihpbmRleCA+PTApeworICAgICAgICAgICAgcmV0dXJuIHNjcmlwdE5hbWVzW2luZGV4XS5uYW1lOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oSW50ZWdlci50b1N0cmluZyhzY3JpcHRDb2RlKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyBhIHNjcmlwdCBuYW1lIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gc2NyaXB0IGNvZGUuIAorICAgICAqIFJldHVybnMgICJNbHltIiBnaXZlbiBNQUxBWUFNCisgICAgICogQHBhcmFtIHNjcmlwdENvZGUgaW50IHNjcmlwdCBjb2RlIAorICAgICAqIEByZXR1cm4gc2NyaXB0IGFiYnJldmlhdGVkIG5hbWUgYXMgYSBzdHJpbmcgIGFzIGdpdmVuIGluIFRSIzI0CisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24KKyAgICAgKiBAZHJhZnQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBnZXRTaG9ydE5hbWUoaW50IHNjcmlwdENvZGUpeworICAgICAgICBpbnQgaW5kZXggPSAtMTsKKyAgICAgICAgaWYoc2NyaXB0Q29kZSA+IENPREVfTElNSVQpeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbihJbnRlZ2VyLnRvU3RyaW5nKHNjcmlwdENvZGUpKTsKKyAgICAgICAgfQorICAgICAgICBpbmRleCA9IGZpbmRDb2RlSW5kZXgoc2NyaXB0QWJicixzY3JpcHRDb2RlKTsKKyAgICAgICAgaWYoaW5kZXggPj0wKXsKKyAgICAgICAgICAgIHJldHVybiBzY3JpcHRBYmJyW2luZGV4XS5uYW1lOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oSW50ZWdlci50b1N0cmluZyhzY3JpcHRDb2RlKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGNvbXBhcmVQcm9wZXJ0eU5hbWVzKCBTdHJpbmcgczEsIFN0cmluZyBzMikgeyAgICAKKwkgICAgaW50IHJjOworCSAgICBjaGFyIGMxLCBjMjsKKwkgICAgY2hhcltdIG5hbWUxID0gczEudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgY2hhcltdIG5hbWUyID0gczIudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgaW50IGk9MDsKKyAgICAgICAgaW50IGo9MDsKKyAgICAgICAgaW50IGVuZEluZGV4MSA9IG5hbWUxLmxlbmd0aC0xOworICAgICAgICBpbnQgZW5kSW5kZXgyID0gbmFtZTIubGVuZ3RoLTE7CisJICAgIGZvcig7OykgeworICAgICAgICAgICAgaWYoKGk+PW5hbWUxLmxlbmd0aCl8fChqPj1uYW1lMi5sZW5ndGgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIChuYW1lMS5sZW5ndGggLSBuYW1lMi5sZW5ndGgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gSWdub3JlIGRlbGltaXRlcnMgJy0nLCAnXycsIGFuZCBBU0NJSSBXaGl0ZV9TcGFjZSAKKwkgICAgICAgIHdoaWxlKChjMT1uYW1lMVtpXSk9PSctJyB8fCBjMT09J18nIHx8CisJICAgICAgICAgICAgICBjMT09JyAnIHx8IGMxPT0nXHQnIHx8IGMxPT0nXG4nIHx8IGMxPT0weDBCIHx8IGMxPT0nXGYnIHx8IGMxPT0nXHInCisJICAgICAgICApIHsKKwkgICAgICAgICAgICArK2k7CisJICAgICAgICB9CisJICAgICAgICB3aGlsZSgoYzI9bmFtZTJbal0pPT0nLScgfHwgYzI9PSdfJyB8fAorCSAgICAgICAgICAgICAgYzI9PScgJyB8fCBjMj09J1x0JyB8fCBjMj09J1xuJyB8fCBjMj09MHgwQiB8fCBjMj09J1xmJyB8fCBjMj09J1xyJworCSAgICAgICAgKSB7CisJICAgICAgICAgICAgKytqOworCSAgICAgICAgfQorCSAgICAgICAgLy8gQ2FzZS1pbnNlbnNpdGl2ZSBjb21wYXJpc29uCisJICAgICAgICBpZihjMSE9YzIpIHsKKwkgICAgICAgICAgICByYz0oaW50KShjaGFyKVVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoYzEpLShpbnQpKGNoYXIpVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShjMik7CisJICAgICAgICAgICAgaWYocmMhPTApIHsKKwkgICAgICAgICAgICAgICAgcmV0dXJuIHJjOworCSAgICAgICAgICAgIH0KKwkgICAgICAgIH0KKwkgICAgICAgIGlmKGk9PWVuZEluZGV4MSAmJiBqPT1lbmRJbmRleDIpeworICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgfQorCSAgICAgICAgKytpOworCSAgICAgICAgKytqOworICAgICAgICB9CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvbGFuZy9VU2NyaXB0UnVuLmphdmEgYi9zcmMvY29tL2libS9pY3UvbGFuZy9VU2NyaXB0UnVuLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWZjNDhhNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VTY3JpcHRSdW4uamF2YQpAQCAtMCwwICsxLDUyOCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UubGFuZzsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcjsKKworLyoqCisgKiA8Y29kZT5VU2NyaXB0UnVuPC9jb2RlPiBpcyB1c2VkIHRvIGZpbmQgcnVucyBvZiBjaGFyYWN0ZXJzIGluCisgKiB0aGUgc2FtZSBzY3JpcHQsIGFzIGRlZmluZWQgaW4gdGhlIDxjb2RlPlVTY3JpcHQ8L2NvZGU+IGNsYXNzLgorICogSXQgaW1wbGVtZW50cyBhIHNpbXBsZSBpdGVyYXRvciBvdmVyIGFuIGFycmF5IG9mIGNoYXJhY3RlcnMuCisgKiBUaGUgaXRlcmF0b3Igd2lsbCBhc3NpZ24gPGNvZGU+Q09NTU9OPC9jb2RlPiBhbmQgPGNvZGU+SU5IRVJJVEVEPC9jb2RlPgorICogY2hhcmFjdGVycyB0byB0aGUgc2FtZSBzY3JpcHQgYXMgdGhlIHByZWNlZWRpbmcgY2hhcmFjdGVycy4gSWYgdGhlCisgKiBDT01NT04gYW5kIElOSEVSSVRFRCBjaGFyYWN0ZXJzIGFyZSBmaXJzdCwgdGhleSB3aWxsIGJlIGFzc2lnbmVkIHRvCisgKiB0aGUgc2FtZSBzY3JpcHQgYXMgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzLgorICoKKyAqIFRoZSBpdGVyYXRvciB3aWxsIHRyeSB0byBtYXRjaCBwYWlyZWQgcHVuY3R1YXRpb24uIElmIGl0IHNlZXMgYW4KKyAqIG9wZW5pbmcgcHVuY3R1YXRpb24gY2hhcmFjdGVyLCBpdCB3aWxsIHJlbWVtYmVyIHRoZSBzY3JpcHQgdGhhdAorICogd2FzIGFzc2lnbmVkIHRvIHRoYXQgY2hhcmFjdGVyLCBhbmQgYXNzaWduIHRoZSBzYW1lIHNjcmlwdCB0byB0aGUKKyAqIG1hdGNoaW5nIGNsb3NpbmcgcHVuY3R1YXRpb24uCisgKgorICogTm8gYXR0ZW1wdCBpcyBtYWRlIHRvIGNvbWJpbmUgcmVsYXRlZCBzY3JpcHRzIGludG8gYSBzaW5nbGUgcnVuLiBJbgorICogcGFydGljdWxhciwgSGlyYWdhbmEsIEthdGFrYW5hLCBhbmQgSGFuIGNoYXJhY3RlcnMgd2lsbCBhcHBlYXIgaW4gc2VwZXJhdGUKKyAqIHJ1bnMuCisKKyAqIEhlcmUgaXMgYW4gZXhhbXBsZSBvZiBob3cgdG8gaXRlcmF0ZSBvdmVyIHNjcmlwdCBydW5zOgorICogPHByZT4KKyAqIHZvaWQgcHJpbnRTY3JpcHRSdW5zKGNoYXJbXSB0ZXh0KQorICogeworICogICAgIFVTY3JpcHRSdW4gc2NyaXB0UnVuID0gbmV3IFVTY3JpcHRSdW4odGV4dCk7CisgKgorICogICAgIHdoaWxlIChzY3JpcHRSdW4ubmV4dCgpKSB7CisgKiAgICAgICAgIGludCBzdGFydCAgPSBzY3JpcHRSdW4uZ2V0U2NyaXB0U3RhcnQoKTsKKyAqICAgICAgICAgaW50IGxpbWl0ICA9IHNjcmlwdFJ1bi5nZXRTY3JpcHRMaW1pdCgpOworICogICAgICAgICBpbnQgc2NyaXB0ID0gc2NyaXB0UnVuLmdldFNjcmlwdENvZGUoKTsKKyAqCisgKiAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU2NyaXB0IFwiIiArIFVTY3JpcHQuZ2V0TmFtZShzY3JpcHQpICsgIlwiIGZyb20gIiArCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCArICIgdG8gIiArIGxpbWl0ICsgIi4iKTsKKyAqICAgICB9CisgKiAgfQorICogPC9wcmU+CisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBVU2NyaXB0UnVuCit7CisgICAgLyoqCisgICAgICogUHV0cyBhIGNvcHlyaWdodCBpbiB0aGUgLmNsYXNzIGZpbGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0Tm90aWNlCisgICAgICAgID0gIkNvcHlyaWdodCBcdTAwYTkxOTk5LTIwMDIgSUJNIENvcnAuICBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYW4gZW1wdHkgPGNvZGU+VVNjcmlwdFJ1bjwvY29kZT4gb2JqZWN0LiBUaGUgPGNvZGU+bmV4dCgpPC9jb2RlPgorICAgICAqIG1ldGhvZCB3aWxsIHJldHVybiA8Y29kZT5mYWxzZTwvY29kZT4gdGhlIGZpcnN0IHRpbWUgaXQgaXMgY2FsbGVkLgorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIFVTY3JpcHRSdW4oKQorICAgIHsKKyAgICAgICAgY2hhcltdIG51bGxDaGFycyA9IG51bGw7CisgICAgICAgIAorICAgICAgICByZXNldChudWxsQ2hhcnMsIDAsIDApOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSA8Y29kZT5VU2NyaXB0UnVuPC9jb2RlPiBvYmplY3Qgd2hpY2ggaXRlcmF0ZXMgb3ZlciB0aGUKKyAgICAgKiBjaGFyYWN0ZXJzIGluIHRoZSBnaXZlbiBzdHJpbmcuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgc3RyaW5nIG9mIGNoYXJhY3RlcnMgb3ZlciB3aGljaCB0byBpdGVyYXRlLgorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIFVTY3JpcHRSdW4oU3RyaW5nIHRleHQpCisgICAgeworICAgICAgICByZXNldCAodGV4dCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIDxjb2RlPlVTY3JpcHRSdW48L2NvZGU+IG9iamVjdCB3aGljaCBpdGVyYXRlcyBvdmVyIGEgc3VicmFuZ2UKKyAgICAgKiBvZiB0aGUgY2hhcmFjZXRycyBpbiB0aGUgZ2l2ZW4gc3RyaW5nLgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgdGhlIHN0cmluZyBvZiBjaGFyYWN0ZXJzIG92ZXIgd2hpY2ggdG8gaXRlcmF0ZS4KKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb3ZlciB3aGljaCB0byBpdGVyYXRlCisgICAgICogQHBhcmFtIGNvdW50IHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBvdmVyIHdoaWNoIHRvIGl0ZXJhdGUKKyAgICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBVU2NyaXB0UnVuKFN0cmluZyB0ZXh0LCBpbnQgc3RhcnQsIGludCBjb3VudCkKKyAgICB7CisgICAgICAgIHJlc2V0KHRleHQsIHN0YXJ0LCBjb3VudCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgPGNvZGU+VVNjcmlwdFJ1bjwvY29kZT4gb2JqZWN0IHdoaWNoIGl0ZXJhdGVzIG92ZXIgdGhlIGdpdmVuCisgICAgICogY2hhcmFjZXRycy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjaGFycyB0aGUgYXJyYXkgb2YgY2hhcmFjdGVycyBvdmVyIHdoaWNoIHRvIGl0ZXJhdGUuCisgICAgICoKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgVVNjcmlwdFJ1bihjaGFyW10gY2hhcnMpCisgICAgeworICAgICAgICByZXNldChjaGFycyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgPGNvZGU+VVNjcmlwdFJ1bjwvY29kZT4gb2JqZWN0IHdoaWNoIGl0ZXJhdGVzIG92ZXIgYSBzdWJyYW5nZQorICAgICAqIG9mIHRoZSBnaXZlbiBjaGFyYWNldHJzLgorICAgICAqCisgICAgICogQHBhcmFtIGNoYXJzIHRoZSBhcnJheSBvZiBjaGFyYWN0ZXJzIG92ZXIgd2hpY2ggdG8gaXRlcmF0ZS4KKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb3ZlciB3aGljaCB0byBpdGVyYXRlCisgICAgICogQHBhcmFtIGNvdW50IHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBvdmVyIHdoaWNoIHRvIGl0ZXJhdGUKKyAgICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBVU2NyaXB0UnVuKGNoYXJbXSBjaGFycywgaW50IHN0YXJ0LCBpbnQgY291bnQpCisgICAgeworICAgICAgICByZXNldChjaGFycywgc3RhcnQsIGNvdW50KTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFJlc2V0IHRoZSBpdGVyYXRvciB0byB0aGUgc3RhcnQgb2YgdGhlIHRleHQuCisgICAgICoKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCByZXNldCgpCisgICAgeworICAgICAgICBzY3JpcHRTdGFydCA9IHRleHRTdGFydDsKKyAgICAgICAgc2NyaXB0TGltaXQgPSB0ZXh0U3RhcnQ7CisgICAgICAgIHNjcmlwdENvZGUgID0gVVNjcmlwdC5JTlZBTElEX0NPREU7CisgICAgICAgIHBhcmVuU1AgICAgID0gLTE7CisgICAgICAgIAorICAgICAgICB0ZXh0LnNldFRvU3RhcnQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXNldCB0aGUgaXRlcmF0b3IgdG8gaXRlcmF0ZSBvdmVyIHRoZSBnaXZlbiByYW5nZSBvZiB0aGUgdGV4dC4gVGhyb3dzCisgICAgICogSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSByYW5nZSBpcyBvdXRzaWRlIG9mIHRoZSBib3VuZHMgb2YgdGhlCisgICAgICogY2hhcmFjdGVyIGFycmF5LgorICAgICAqCisgICAgICogQHBhcmFtIHN0YXJ0IHRoZSBpbmRleCBvZiB0aGUgbmV3IGZpcnN0IGNoYXJhY3RlciBvdmVyIHdoaWNoIHRvIGl0ZXJhdGUKKyAgICAgKiBAcGFyYW0gY291bnQgdGhlIG5ldyBudW1iZXIgb2YgY2hhcmFjdGVycyBvdmVyIHdoaWNoIHRvIGl0ZXJhdGUuCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24KKyAgICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHJlc2V0KGludCBzdGFydCwgaW50IGNvdW50KQorICAgIHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24KKyAgICB7CisgICAgICAgIGludCBsZW4gPSAwOworICAgICAgICAKKyAgICAgICAgaWYgKHRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgbGVuID0gdGV4dC5nZXRMZW5ndGgoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKHN0YXJ0IDwgMCB8fCBjb3VudCA8IDAgfHwgc3RhcnQgPiBsZW4gLSBjb3VudCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0ZXh0U3RhcnQgPSBzdGFydDsKKyAgICAgICAgdGV4dExpbWl0ID0gc3RhcnQgKyBjb3VudDsKKworICAgICAgICByZXNldCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlc2V0IHRoZSBpdGVyYXRvciB0byBpdGVyYXRlIG92ZXIgPGNvZGU+Y291bnQ8L2NvZGU+IGNoYXJhY3RlcnMKKyAgICAgKiBpbiA8Y29kZT5jaGFyczwvY29kZT4gc3RhcnRpbmcgYXQgPGNvZGU+c3RhcnQ8L2NvZGU+LiBUaGlzIGFsbG93cworICAgICAqIGNsaWVudHMgdG8gcmV1c2UgYW4gaXRlcmF0b3IuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2hhcnMgdGhlIG5ldyBhcnJheSBvZiBjaGFyYWN0ZXJzIG92ZXIgd2hpY2ggdG8gaXRlcmF0ZS4KKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb3ZlciB3aGljaCB0byBpdGVyYXRlLgorICAgICAqIEBwYXJhbSBjb3VudCB0aGUgbnViZXIgb2YgY2hhcmFjdGVycyBvdmVyIHdoaWNoIHRvIGl0ZXJhdGUuCisgICAgICoKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCByZXNldChjaGFyW10gY2hhcnMsIGludCBzdGFydCwgaW50IGNvdW50KQorICAgIHsKKyAgICAgICAgaWYgKGNoYXJzID09IG51bGwpIHsKKyAgICAgICAgICAgIGNoYXJzID0gZW1wdHlDaGFyQXJyYXk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRleHQgPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2UoY2hhcnMsIHN0YXJ0LCBzdGFydCArIGNvdW50KTsKKworICAgICAgICByZXNldChzdGFydCwgY291bnQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXNldCB0aGUgaXRlcmF0b3IgdG8gaXRlcmF0ZSBvdmVyIHRoZSBjaGFyYWN0ZXJzCisgICAgICogaW4gPGNvZGU+Y2hhcnM8L2NvZGU+LiBUaGlzIGFsbG93cyBjbGllbnRzIHRvIHJldXNlIGFuIGl0ZXJhdG9yLgorICAgICAqCisgICAgICogQHBhcmFtIGNoYXJzIHRoZSBuZXcgYXJyYXkgb2YgY2hhcmFjdGVycyBvdmVyIHdoaWNoIHRvIGl0ZXJhdGUuCisgICAgICoKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCByZXNldChjaGFyW10gY2hhcnMpCisgICAgeworICAgICAgICBpbnQgbGVuZ3RoID0gMDsKKyAgICAgICAgCisgICAgICAgIGlmIChjaGFycyAhPSBudWxsKSB7CisgICAgICAgICAgICBsZW5ndGggPSBjaGFycy5sZW5ndGg7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJlc2V0KGNoYXJzLCAwLCBsZW5ndGgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXNldCB0aGUgaXRlcmF0b3IgdG8gaXRlcmF0ZSBvdmVyIDxjb2RlPmNvdW50PC9jb2RlPiBjaGFyYWN0ZXJzCisgICAgICogaW4gPGNvZGU+dGV4dDwvY29kZT4gc3RhcnRpbmcgYXQgPGNvZGU+c3RhcnQ8L2NvZGU+LiBUaGlzIGFsbG93cworICAgICAqIGNsaWVudHMgdG8gcmV1c2UgYW4gaXRlcmF0b3IuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgbmV3IHN0cmluZyBvZiBjaGFyYWN0ZXJzIG92ZXIgd2hpY2ggdG8gaXRlcmF0ZS4KKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb3ZlciB3aGljaCB0byBpdGVyYXRlLgorICAgICAqIEBwYXJhbSBjb3VudCB0aGUgbnViZXIgb2YgY2hhcmFjdGVycyBvdmVyIHdoaWNoIHRvIGl0ZXJhdGUuCisgICAgICoKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCByZXNldChTdHJpbmcgdGV4dCwgaW50IHN0YXJ0LCBpbnQgY291bnQpCisgICAgeworICAgICAgICBjaGFyW10gY2hhcnMgPSBudWxsOworICAgICAgICAKKyAgICAgICAgaWYgKHRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgY2hhcnMgPSB0ZXh0LnRvQ2hhckFycmF5KCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJlc2V0KGNoYXJzLCBzdGFydCwgY291bnQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXNldCB0aGUgaXRlcmF0b3IgdG8gaXRlcmF0ZSBvdmVyIHRoZSBjaGFyYWN0ZXJzCisgICAgICogaW4gPGNvZGU+dGV4dDwvY29kZT4uIFRoaXMgYWxsb3dzIGNsaWVudHMgdG8gcmV1c2UgYW4gaXRlcmF0b3IuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgbmV3IHN0cmluZyBvZiBjaGFyYWN0ZXJzIG92ZXIgd2hpY2ggdG8gaXRlcmF0ZS4KKyAgICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHJlc2V0KFN0cmluZyB0ZXh0KQorICAgIHsKKyAgICAgICAgaW50IGxlbmd0aCAgID0gMDsKKyAgICAgICAgCisgICAgICAgIGlmICh0ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGxlbmd0aCA9IHRleHQubGVuZ3RoKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJlc2V0KHRleHQsIDAsIGxlbmd0aCk7CisgICAgfQorICAgICAgICAKKworCisgICAgLyoqCisgICAgICogR2V0IHRoZSBzdGFydGluZyBpbmRleCBvZiB0aGUgY3VycmVudCBzY3JpcHQgcnVuLgorICAgICAqCisgICAgICogQHJldHVybiB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBpbiB0aGUgY3VycmVudCBzY3JpcHQgcnVuLgorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBnZXRTY3JpcHRTdGFydCgpCisgICAgeworICAgICAgICByZXR1cm4gc2NyaXB0U3RhcnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGFmdGVyIHRoZSBjdXJyZW50IHNjcmlwdCBydW4uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGFmdGVyIHRoZSBjdXJyZW50IHNjcmlwdCBydW4uCisgICAgICoKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldFNjcmlwdExpbWl0KCkKKyAgICB7CisgICAgICAgIHJldHVybiBzY3JpcHRMaW1pdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIHNjcmlwdCBjb2RlIGZvciB0aGUgc2NyaXB0IG9mIHRoZSBjdXJyZW50IHNjcmlwdCBydW4uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRoZSBzY3JpcHQgY29kZSBmb3IgdGhlIHNjcmlwdCBvZiB0aGUgY3VycmVudCBzY3JpcHQgcnVuLgorICAgICAqIEBzZWUgY29tLmlibS5pY3UubGFuZy5VU2NyaXB0CisgICAgICoKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldFNjcmlwdENvZGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHNjcmlwdENvZGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogRmluZCB0aGUgbmV4dCBzY3JpcHQgcnVuLiBSZXR1cm5zIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiB0aGVyZQorICAgICAqIGlzbid0IGFub3RoZXIgcnVuLCByZXR1cm5zIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZXJlIGlzLgorICAgICAqCisgICAgICogQHJldHVybiA8Y29kZT5mYWxzZTwvY29kZT4gaWYgdGhlcmUgaXNuJ3QgYW5vdGhlciBydW4sIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZXJlIGlzLgorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGJvb2xlYW4gbmV4dCgpCisJeworCQlpbnQgc3RhcnRTUCAgPSBwYXJlblNQOyAgLy8gdXNlZCB0byBmaW5kIHRoZSBmaXJzdCBuZXcgb3BlbiBjaGFyYWN0ZXIKKworCQkvLyBpZiB3ZSd2ZSBmYWxsZW4gb2ZmIHRoZSBlbmQgb2YgdGhlIHRleHQsIHdlJ3JlIGRvbmUKKwkJaWYgKHNjcmlwdExpbWl0ID49IHRleHRMaW1pdCkgeworCQkJcmV0dXJuIGZhbHNlOworCQl9CisgICAgCisJCXNjcmlwdENvZGUgID0gVVNjcmlwdC5DT01NT047CisgICAgICAgIHNjcmlwdFN0YXJ0ID0gc2NyaXB0TGltaXQ7CisgICAgICAgIAorICAgICAgICBpbnQgY2g7CisgICAgICAgIAorICAgICAgICB3aGlsZSAoKGNoID0gdGV4dC5uZXh0Q29kZVBvaW50KCkpICE9IFVGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworCQkJaW50IHNjID0gVVNjcmlwdC5nZXRTY3JpcHQoY2gpOworCQkJaW50IHBhaXJJbmRleCA9IGdldFBhaXJJbmRleChjaCk7CisKKwkJCS8vIFBhaXJlZCBjaGFyYWN0ZXIgaGFuZGxpbmc6CisJCQkvLworCQkJLy8gaWYgaXQncyBhbiBvcGVuIGNoYXJhY3RlciwgcHVzaCBpdCBvbnRvIHRoZSBzdGFjay4KKwkJCS8vIGlmIGl0J3MgYSBjbG9zZSBjaGFyYWN0ZXIsIGZpbmQgdGhlIG1hdGNoaW5nIG9wZW4gb24gdGhlCisJCQkvLyBzdGFjaywgYW5kIHVzZSB0aGF0IHNjcmlwdCBjb2RlLiBBbnkgbm9uLW1hdGNoaW5nIG9wZW4KKwkJCS8vIGNoYXJhY3RlcnMgYWJvdmUgaXQgb24gdGhlIHN0YWNrIHdpbGwgYmUgcG9wZWQuCisJCQlpZiAocGFpckluZGV4ID49IDApIHsKKwkJCQlpZiAoKHBhaXJJbmRleCAmIDEpID09IDApIHsKKwkJCQkgICAgCisgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAqIElmIHRoZSBwYXJlbiBzdGFjayBpcyBmdWxsLCBlbXB0eSBpdC4gVGhpcworICAgICAgICAgICAgICAgICAgICAgKiBtZWFucyB0aGF0IGRlZXBseSBuZXN0ZWQgcGFpcmVkIHB1bmN0dWF0aW9uCisgICAgICAgICAgICAgICAgICAgICAqIGNoYXJhY3RlcnMgd2lsbCBiZSBpZ25vcmVkLCBidXQgdGhhdCdzIGFuIHVudXN1YWwKKyAgICAgICAgICAgICAgICAgICAgICogY2FzZSwgYW5kIGl0J3MgYmV0dGVyIHRvIGlnbm9yZSB0aGVtIHRoYW4gdG8KKyAgICAgICAgICAgICAgICAgICAgICogd3JpdGUgb2ZmIHRoZSBlbmQgb2YgdGhlIHN0YWNrLi4uCisgICAgICAgICAgICAgICAgICAgICAqLworCQkJCSAgICBpZiAoKytwYXJlblNQID49IFBBUkVOX1NUQUNLX0RFUFRIKSB7CisJCQkJICAgICAgICBwYXJlblNQID0gMDsKKwkJCQkgICAgfQorCQkJCSAgICAKKwkJCQkgICAgcGFyZW5TdGFja1twYXJlblNQXSA9IG5ldyBQYXJlblN0YWNrRW50cnkocGFpckluZGV4LCBzY3JpcHRDb2RlKTsKKwkJCQl9IGVsc2UgaWYgKHBhcmVuU1AgPj0gMCkgeworCQkJCQlpbnQgcGkgPSBwYWlySW5kZXggJiB+MTsKKworCQkJCQl3aGlsZSAocGFyZW5TUCA+PSAwICYmIHBhcmVuU3RhY2tbcGFyZW5TUF0ucGFpckluZGV4ICE9IHBpKSB7CisJCQkJCQlwYXJlblNQIC09IDE7CisJCQkJCX0KKworCQkJCQlpZiAocGFyZW5TUCA8IHN0YXJ0U1ApIHsKKwkJCQkJCXN0YXJ0U1AgPSBwYXJlblNQOworCQkJCQl9CisKKwkJCQkJaWYgKHBhcmVuU1AgPj0gMCkgeworCQkJCQkJc2MgPSBwYXJlblN0YWNrW3BhcmVuU1BdLnNjcmlwdENvZGU7CisJCQkJCX0KKwkJCQl9CisJCQl9CisKKwkJCWlmIChzYW1lU2NyaXB0KHNjcmlwdENvZGUsIHNjKSkgeworCQkJCWlmIChzY3JpcHRDb2RlIDw9IFVTY3JpcHQuSU5IRVJJVEVEICYmIHNjID4gVVNjcmlwdC5JTkhFUklURUQpIHsKKwkJCQkJc2NyaXB0Q29kZSA9IHNjOworCisJCQkJCS8vIG5vdyB0aGF0IHdlIGhhdmUgYSBmaW5hbCBzY3JpcHQgY29kZSwgZml4IGFueSBvcGVuCisJCQkJCS8vIGNoYXJhY3RlcnMgd2UgcHVzaGVkIGJlZm9yZSB3ZSBrbmV3IHRoZSBzY3JpcHQgY29kZS4KKwkJCQkJd2hpbGUgKHN0YXJ0U1AgPCBwYXJlblNQKSB7CisJCQkJCQlwYXJlblN0YWNrWysrc3RhcnRTUF0uc2NyaXB0Q29kZSA9IHNjcmlwdENvZGU7CisJCQkJCX0KKwkJCQl9CisKKwkJCQkvLyBpZiB0aGlzIGNoYXJhY3RlciBpcyBhIGNsb3NlIHBhaXJlZCBjaGFyYWN0ZXIsCisJCQkJLy8gcG9wIGl0IGZyb20gdGhlIHN0YWNrCisJCQkJaWYgKHBhaXJJbmRleCA+PSAwICYmIChwYWlySW5kZXggJiAxKSAhPSAwICYmIHBhcmVuU1AgPj0gMCkgeworCQkJCQlwYXJlblNQIC09IDE7CisJCQkJCXN0YXJ0U1AgLT0gMTsKKwkJCQl9CisJCQl9IGVsc2UgeworCQkJICAgIC8vIFdlJ3ZlIGp1c3Qgc2VlbiB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mCisJCQkgICAgLy8gdGhlIG5leHQgcnVuLiBCYWNrIG92ZXIgaXQgc28gd2UnbGwgc2VlCisJCQkgICAgLy8gaXQgYWdhaW4gdGhlIG5leHQgdGltZS4KKwkJCSAgICB0ZXh0LnByZXZpb3VzQ29kZVBvaW50KCk7CisJCQkgICAgYnJlYWs7CisJCQl9CisJCX0KKworICAgICAgICBzY3JpcHRMaW1pdCA9IHRleHRTdGFydCArIHRleHQuZ2V0SW5kZXgoKTsKKwkJcmV0dXJuIHRydWU7CisJfQorCisgICAgLyoqCisgICAgICogQ29tcGFyZSB0d28gc2NyaXB0IGNvZGVzIHRvIHNlZSBpZiB0aGV5IGFyZSBpbiB0aGUgc2FtZSBzY3JpcHQuIElmIG9uZSBzY3JpcHQgaXMKKyAgICAgKiBhIHN0cm9uZyBzY3JpcHQsIGFuZCB0aGUgb3RoZXIgaXMgSU5IRVJJVEVEIG9yIENPTU1PTiwgaXQgd2lsbCBjb21wYXJlIGVxdWFsLgorICAgICAqCisgICAgICogQHBhcmFtIHNjcmlwdE9uZSBvbmUgb2YgdGhlIHNjcmlwdCBjb2Rlcy4KKyAgICAgKiBAcGFyYW0gc2NyaXB0VHdvIHRoZSBvdGhlciBzY3JpcHQgY29kZS4KKyAgICAgKiBAcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSB0d28gc2NyaXB0cyBhcmUgdGhlIHNhbWUuCisgICAgICogQHNlZSBjb20uaWJtLmljdS5sYW5nLlVTY3JpcHQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIHNhbWVTY3JpcHQoaW50IHNjcmlwdE9uZSwgaW50IHNjcmlwdFR3bykKKwl7CisJCXJldHVybiBzY3JpcHRPbmUgPD0gVVNjcmlwdC5JTkhFUklURUQgfHwgc2NyaXB0VHdvIDw9IFVTY3JpcHQuSU5IRVJJVEVEIHx8IHNjcmlwdE9uZSA9PSBzY3JpcHRUd287CisJfQorCisgICAgLyoKKyAgICAgKiBBbiBpbnRlcm5hbCBjbGFzcyB3aGljaCBob2xkcyBlbnRyaWVzIG9uIHRoZSBwYXJlbiBzdGFjay4KKyAgICAgKi8KKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBQYXJlblN0YWNrRW50cnkKKwl7CisJCWludCBwYWlySW5kZXg7CisJCWludCBzY3JpcHRDb2RlOworCQkKKwkJcHVibGljIFBhcmVuU3RhY2tFbnRyeShpbnQgdGhlUGFpckluZGV4LCBpbnQgdGhlU2NyaXB0Q29kZSkKKwkJeworCQkgICAgcGFpckluZGV4ICA9IHRoZVBhaXJJbmRleDsKKwkJICAgIHNjcmlwdENvZGUgPSB0aGVTY3JpcHRDb2RlOworCQl9CisgICAgfTsKKyAgICAKKyAgICBwcml2YXRlIGNoYXJbXSBlbXB0eUNoYXJBcnJheSA9IHt9OworCisgICAgcHJpdmF0ZSBVQ2hhcmFjdGVySXRlcmF0b3IgdGV4dDsKKworICAgIHByaXZhdGUgaW50ICB0ZXh0U3RhcnQ7CisgICAgcHJpdmF0ZSBpbnQgIHRleHRMaW1pdDsKKyAgICAKKyAgICBwcml2YXRlIGludCAgc2NyaXB0U3RhcnQ7CisgICAgcHJpdmF0ZSBpbnQgIHNjcmlwdExpbWl0OworICAgIHByaXZhdGUgaW50ICBzY3JpcHRDb2RlOworCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IFBBUkVOX1NUQUNLX0RFUFRIID0gMTI4OworICAgIHByaXZhdGUgc3RhdGljIFBhcmVuU3RhY2tFbnRyeSBwYXJlblN0YWNrW10gPSBuZXcgUGFyZW5TdGFja0VudHJ5W1BBUkVOX1NUQUNLX0RFUFRIXTsKKyAgICBwcml2YXRlIGludCAgcGFyZW5TUDsKKworICAgIC8qKgorICAgICAqIEZpbmQgdGhlIGhpZ2hlc3QgYml0IHRoYXQncyBzZXQgaW4gYSB3b3JkLiBVc2VzIGEgYmluYXJ5IHNlYXJjaCB0aHJvdWdoCisgICAgICogdGhlIGJpdHMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbiB0aGUgd29yZCBpbiB3aGljaCB0byBmaW5kIHRoZSBoaWdoZXN0IGJpdCB0aGF0J3Mgc2V0LgorICAgICAqIEByZXR1cm4gdGhlIGJpdCBudW1iZXIgKGNvdW50aW5nIGZyb20gdGhlIGxvdyBvcmRlciBiaXQpIG9mIHRoZSBoaWdoZXN0IGJpdC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIGhpZ2hCaXQoaW50IG4pCisgICAgeworICAgICAgICBpZiAobiA8PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gLTMyOworICAgICAgICB9CisKKyAgICAgICAgYnl0ZSBiaXQgPSAwOworCisgICAgICAgIGlmIChuID49IDEgPDwgMTYpIHsKKyAgICAgICAgICAgIG4gPj49IDE2OworICAgICAgICAgICAgYml0ICs9IDE2OworICAgICAgICB9CisKKyAgICAgICAgaWYgKG4gPj0gMSA8PCA4KSB7CisgICAgICAgICAgICBuID4+PSA4OworICAgICAgICAgICAgYml0ICs9IDg7CisgICAgICAgIH0KKworICAgICAgICBpZiAobiA+PSAxIDw8IDQpIHsKKyAgICAgICAgICAgIG4gPj49IDQ7CisgICAgICAgICAgICBiaXQgKz0gNDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChuID49IDEgPDwgMikgeworICAgICAgICAgICAgbiA+Pj0gMjsKKyAgICAgICAgICAgIGJpdCArPSAyOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG4gPj0gMSA8PCAxKSB7CisgICAgICAgICAgICBuID4+PSAxOworICAgICAgICAgICAgYml0ICs9IDE7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gYml0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFNlYXJjaCB0aGUgcGFpcmVkQ2hhcnMgYXJyYXkgZm9yIHRoZSBnaXZlbiBjaGFyYWN0ZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2ggdGhlIGNoYXJhY3RlciBmb3Igd2hpY2ggdG8gc2VhcmNoLgorICAgICAqIEByZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBjaGFyYWN0ZXIgaW4gdGhlIHRhYmxlLCBvciAtMSBpZiBpdCdzIG5vdCB0aGVyZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZ2V0UGFpckluZGV4KGludCBjaCkKKwl7CisJCWludCBwcm9iZSA9IHBhaXJlZENoYXJQb3dlcjsKKwkJaW50IGluZGV4ID0gMDsKKworCQlpZiAoY2ggPj0gcGFpcmVkQ2hhcnNbcGFpcmVkQ2hhckV4dHJhXSkgeworCQkJaW5kZXggPSBwYWlyZWRDaGFyRXh0cmE7CisJCX0KKworCQl3aGlsZSAocHJvYmUgPiAoMSA8PCAwKSkgeworCQkJcHJvYmUgPj49IDE7CisKKwkJCWlmIChjaCA+PSBwYWlyZWRDaGFyc1tpbmRleCArIHByb2JlXSkgeworCQkJCWluZGV4ICs9IHByb2JlOworCQkJfQorCQl9CisKKwkJaWYgKHBhaXJlZENoYXJzW2luZGV4XSAhPSBjaCkgeworCQkJaW5kZXggPSAtMTsKKwkJfQorCisJCXJldHVybiBpbmRleDsKKwl9CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgcGFpcmVkQ2hhcnNbXSA9IHsKKwkJMHgwMDI4LCAweDAwMjksIC8vIGFzY2lpIHBhaXJlZCBwdW5jdHVhdGlvbgorCQkweDAwM2MsIDB4MDAzZSwKKwkJMHgwMDViLCAweDAwNWQsCisJCTB4MDA3YiwgMHgwMDdkLAorCQkweDAwYWIsIDB4MDBiYiwgLy8gZ3VpbGxlbWV0cworCQkweDIwMTgsIDB4MjAxOSwgLy8gZ2VuZXJhbCBwdW5jdHVhdGlvbgorCQkweDIwMWMsIDB4MjAxZCwKKwkJMHgyMDM5LCAweDIwM2EsCisJCTB4MzAwOCwgMHgzMDA5LCAvLyBjaGluZXNlIHBhaXJlZCBwdW5jdHVhdGlvbgorCQkweDMwMGEsIDB4MzAwYiwKKwkJMHgzMDBjLCAweDMwMGQsCisJCTB4MzAwZSwgMHgzMDBmLAorCQkweDMwMTAsIDB4MzAxMSwKKwkJMHgzMDE0LCAweDMwMTUsCisJCTB4MzAxNiwgMHgzMDE3LAorCQkweDMwMTgsIDB4MzAxOSwKKwkJMHgzMDFhLCAweDMwMWIKKwl9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IHBhaXJlZENoYXJQb3dlciA9IDEgPDwgaGlnaEJpdChwYWlyZWRDaGFycy5sZW5ndGgpOworICAgIHByaXZhdGUgc3RhdGljIGludCBwYWlyZWRDaGFyRXh0cmEgPSBwYWlyZWRDaGFycy5sZW5ndGggLSBwYWlyZWRDaGFyUG93ZXI7Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9tYW5pZmVzdC5zdHViIGIvc3JjL2NvbS9pYm0vaWN1L21hbmlmZXN0LnN0dWIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmEwYTMwNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9tYW5pZmVzdC5zdHViCkBAIC0wLDAgKzEsMTAgQEAKK01hbmlmZXN0LVZlcnNpb246IDEuMAorU3BlY2lmaWNhdGlvbi1UaXRsZTogSUNVIGZvciBKYXZhCitTcGVjaWZpY2F0aW9uLVZlcnNpb246IDIuMgorU3BlY2lmaWNhdGlvbi1WZW5kb3I6IElDVQorSW1wbGVtZW50YXRpb24tVGl0bGU6IElDVSBmb3IgSmF2YQorSW1wbGVtZW50YXRpb24tVmVyc2lvbjogMi4yCitJbXBsZW1lbnRhdGlvbi1WZW5kb3I6IElCTSBDb3Jwb3JhdGlvbgorSW1wbGVtZW50YXRpb24tVmVuZG9yLUlkOiBjb20uaWJtCisKK05hbWU6IGNvbS9pYm0vaWN1CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvbWF0aC9CaWdEZWNpbWFsLmphdmEgYi9zcmMvY29tL2libS9pY3UvbWF0aC9CaWdEZWNpbWFsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODQxZWVkMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9tYXRoL0JpZ0RlY2ltYWwuamF2YQpAQCAtMCwwICsxLDQzNTkgQEAKKy8qIEdlbmVyYXRlZCBmcm9tICdCaWdEZWNpbWFsLm5yeCcgOCBTZXAgMjAwMCAxMToxMDo1MCBbdjIuMDBdICovCisvKiBPcHRpb25zOiBCaW5hcnkgQ29tbWVudHMgQ3Jvc3NyZWYgRm9ybWF0IEphdmEgTG9nbyBTdHJpY3RhcmdzIFN0cmljdGNhc2UgVHJhY2UyIFZlcmJvc2UzICovCitwYWNrYWdlIGNvbS5pYm0uaWN1Lm1hdGg7CitpbXBvcnQgamF2YS5tYXRoLkJpZ0ludGVnZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKy8qIEJpZ0RlY2ltYWwgLS0gRGVjaW1hbCBhcml0aG1ldGljIGZvciBKYXZhICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisvKiBDb3B5cmlnaHQgSUJNIENvcnBvcmF0aW9uLCAxOTk2LCAyMDAwLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogVGhlIEJpZ0RlY2ltYWwgY2xhc3MgcHJvdmlkZXMgaW1tdXRhYmxlIGFyYml0cmFyeS1wcmVjaXNpb24gICAgICAgICovCisvKiBmbG9hdGluZyBwb2ludCAoaW5jbHVkaW5nIGludGVnZXIpIGRlY2ltYWwgbnVtYmVycy4gICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogQXMgdGhlIG51bWJlcnMgYXJlIGRlY2ltYWwsIHRoZXJlIGlzIGFuIGV4YWN0IGNvcnJlc3BvbmRlbmNlICAgICAgICovCisvKiBiZXR3ZWVuIGFuIGluc3RhbmNlIG9mIGEgQmlnRGVjaW1hbCBvYmplY3QgYW5kIGl0cyBTdHJpbmcgICAgICAgICAgKi8KKy8qIHJlcHJlc2VudGF0aW9uOyB0aGUgQmlnRGVjaW1hbCBjbGFzcyBwcm92aWRlcyBkaXJlY3QgY29udmVyc2lvbnMgICAqLworLyogdG8gYW5kIGZyb20gU3RyaW5nIGFuZCBjaGFyYWN0ZXIgYXJyYXkgb2JqZWN0cywgYW5kIHdlbGwgYXMgICAgICAgICovCisvKiBjb252ZXJzaW9ucyB0byBhbmQgZnJvbSB0aGUgSmF2YSBwcmltaXRpdmUgdHlwZXMgKHdoaWNoIG1heSBub3QgICAgKi8KKy8qIGJlIGV4YWN0KS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisvKiBOb3RlczogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogMS4gQSBCaWdEZWNpbWFsIG9iamVjdCBpcyBuZXZlciBjaGFuZ2VkIGluIHZhbHVlIG9uY2UgY29uc3RydWN0ZWQ7ICovCisvKiAgICB0aGlzIGF2b2lkcyB0aGUgbmVlZCBmb3IgbG9ja2luZy4gIE5vdGUgaW4gcGFydGljdWxhciB0aGF0IHRoZSAgKi8KKy8qICAgIG1hbnRpc3NhIGFycmF5IG1heSBiZSBzaGFyZWQgYmV0d2VlbiBtYW55IEJpZ0RlY2ltYWwgb2JqZWN0cywgICAqLworLyogICAgc28gdGhhdCBvbmNlIGV4cG9zZWQgaXQgbXVzdCBub3QgYmUgYWx0ZXJlZC4gICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDIuIFRoaXMgY2xhc3MgbG9va3MgYXQgTWF0aENvbnRleHQgY2xhc3MgZmllbGRzIGRpcmVjdGx5IChmb3IgICAgICAqLworLyogICAgcGVyZm9ybWFuY2UpLiAgSXQgbXVzdCBub3QgYW5kIGRvZXMgbm90IGNoYW5nZSB0aGVtLiAgICAgICAgICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDMuIEV4cG9uZW50IGNoZWNraW5nIGlzIGRlbGF5ZWQgdW50aWwgZmluaXNoKCksIGFzIHdlIGtub3cgICAgICAgICAqLworLyogICAgaW50ZXJtZWRpYXRlIGNhbGN1bGF0aW9ucyBjYW5ub3QgY2F1c2UgMzEtYml0IG92ZXJmbG93LiAgICAgICAgICovCisvKiAgICBbVGhpcyBhc3NlcnRpb24gZGVwZW5kcyBvbiBNQVhfRElHSVRTIGluIE1hdGhDb250ZXh0Ll0gICAgICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogNC4gQ29tbWVudHMgZm9yIHRoZSBwdWJsaWMgQVBJIG5vdyBmb2xsb3cgdGhlIGphdmFkb2MgY29udmVudGlvbnMuICovCisvKiAgICBUaGUgTmV0UmV4eCAtY29tbWVudHMgb3B0aW9uIGlzIHVzZWQgdG8gcGFzcyB0aGVzZSBjb21tZW50cyAgICAgKi8KKy8qICAgIHRocm91Z2ggdG8gdGhlIGdlbmVyYXRlZCBKYXZhIGNvZGUgKHdpdGggLWZvcm1hdCwgaWYgZGVzaXJlZCkuICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiA1LiBTeXN0ZW0uYXJyYXljb3B5IGlzIGZhc3RlciB0aGFuIGV4cGxpY2l0IGxvb3AgYXMgZm9sbG93cyAgICAgICAgKi8KKy8qICAgICAgTWVhbiBsZW5ndGggNDogIGVxdWFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICBNZWFuIGxlbmd0aCA4OiAgeDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgIE1lYW4gbGVuZ3RoIDE2OiB4MyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgTWVhbiBsZW5ndGggMjQ6IHg0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgRnJvbSBwcmlvciBleHBlcmllbmNlLCB3ZSBleHBlY3QgbWVhbiBsZW5ndGggYSBsaXR0bGUgYmVsb3cgOCwgICovCisvKiAgICBidXQgYXJyYXljb3B5IGlzIHN0aWxsIHRoZSBvbmUgdG8gdXNlLCBpbiBnZW5lcmFsLCB1bnRpbCBsYXRlciAgKi8KKy8qICAgIG1lYXN1cmVtZW50cyBzdWdnZXN0IG90aGVyd2lzZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiA2LiAnRE1TUkNOJyByZWZlcnJlZCB0byBiZWxvdyBpcyB0aGUgb3JpZ2luYWwgKDE5ODEpIElCTSBTLzM3MCAgICAgKi8KKy8qICAgIGFzc2VtYmxlciBjb2RlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBhbGdvcml0aG1zIGJlbG93OyBpdCBpcyAgICAqLworLyogICAgbm93IGNhbGxlZCBJWFhSQ04gYW5kIGlzIGF2YWlsYWJsZSB3aXRoIHRoZSBPUy8zOTAgYW5kIFZNL0VTQSAgICovCisvKiAgICBvcGVyYXRpbmcgc3lzdGVtcy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyogQ2hhbmdlIEhpc3Rvcnk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk3LjA5LjAyIEluaXRpYWwgdmVyc2lvbiAoZGVyaXZlZCBmcm9tIG5ldHJleHgubGFuZyBjbGFzc2VzKSAgICAgKi8KKy8qIDE5OTcuMDkuMTIgQWRkIGxvc3REaWdpdHMgY2hlY2tpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogMTk5Ny4xMC4wNiBDaGFuZ2UgbWFudGlzc2EgdG8gYSBieXRlIGFycmF5ICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk3LjExLjIyIFJld29yayBwb3dlciBbZGlkIG5vdCBwcmVwYXJlIGFyZ3VtZW50cywgZXRjLl0gICAgICAgICAgKi8KKy8qIDE5OTcuMTIuMTMgbXVsdGlwbHkgZGlkIG5vdCBwcmVwYXJlIGFyZ3VtZW50cyAgICAgICAgICAgICAgICAgICAgICAqLworLyogMTk5Ny4xMi4xNCBhZGQgZGlkIG5vdCBwcmVwYXJlIGFuZCBhbGlnbiBhcmd1bWVudHMgY29ycmVjdGx5ICAgICAgICovCisvKiAxOTk4LjA1LjAyIDAuMDcgcGFja2FnaW5nIGNoYW5nZXMgc3VnZ2VzdGVkIGJ5IFN1biBhbmQgT3JhY2xlICAgICAgKi8KKy8qIDE5OTguMDUuMjEgYWRqdXN0IHJlbWFpbmRlciBvcGVyYXRvciBmaW5hbGl6YXRpb24gICAgICAgICAgICAgICAgICAqLworLyogMTk5OC4wNi4wNCByZXdvcmsgdG8gcGFzcyBNYXRoQ29udGV4dCB0byBmaW5pc2goKSBhbmQgcm91bmQoKSAgICAgICovCisvKiAxOTk4LjA2LjA2IGNoYW5nZSBmb3JtYXQgdG8gdXNlIHJvdW5kKCk7IHN1cHBvcnQgcm91bmRpbmcgbW9kZXMgICAgKi8KKy8qIDE5OTguMDYuMjUgcmVuYW1lIHRvIEJpZ0RlY2ltYWwgYW5kIGJlZ2luIG1lcmdlICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAgICAgICB6ZXJvIGNhbiBub3cgaGF2ZSB0cmFpbGluZyB6ZXJvcyAoaS5lLiwgZXhwXD0wKSAgICAgICAgICovCisvKiAxOTk4LjA2LjI4IG5ldyBtZXRob2RzOiBtb3ZlUG9pbnRYeHh4LCBzY2FsZSwgdG9CaWdJbnRlZ2VyICAgICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2NhbGVkVmFsdWUsIHZhbHVlb2YgICAgICAgICAgICAgICAgICAgICAqLworLyogMTk5OC4wNy4wMSBpbXByb3ZlIGJ5dGVhZGRzdWIgdG8gYWxsb3cgYXJyYXkgcmV1c2UsIGV0Yy4gICAgICAgICAgICovCisvKiAxOTk4LjA3LjAxIG1ha2UgbnVsbCB0ZXN0aW5nIGV4cGxpY2l0IHRvIGF2b2lkIEpJVCBidWcgW1dpbjMyXSAgICAgKi8KKy8qIDE5OTguMDcuMDcgc2NhbGVkIGRpdmlzaW9uICBbZGl2aWRlKEJpZ0RlY2ltYWwsIGludCwgaW50KV0gICAgICAgICAqLworLyogMTk5OC4wNy4wOCBzZXRTY2FsZSwgZmFzdGVyIGVxdWFscyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk4LjA3LjExIGFsbG93IDFFNiAobm8gc2lnbikgPHNpZ2g+OyBuZXcgZG91YmxlL2Zsb2F0IGNvbnZlcnNpb24gKi8KKy8qIDE5OTguMTAuMTIgY2hhbmdlIHBhY2thZ2UgdG8gY29tLmlibS5pY3UubWF0aCAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTguMTIuMTQgcG93ZXIgb3BlcmF0b3Igbm8gbG9uZ2VyIHJvdW5kcyBSSFMgW3RvIG1hdGNoIEFOU0ldICAgICAqLworLyogICAgICAgICAgICBhZGQgdG9CaWdEZWNpbWFsKCkgYW5kIEJpZ0RlY2ltYWwoamF2YS5tYXRoLkJpZ0RlY2ltYWwpICovCisvKiAxOTk4LjEyLjI5IGltcHJvdmUgYnl0ZWFkZHN1YiBieSB1c2luZyB0YWJsZSBsb29rdXAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTkuMDIuMDQgbG9zdGRpZ2l0cz0wIGJlaGF2aW91ciByb3VuZHMgaW5zdGVhZCBvZiBkaWdpdHMrMSBndWFyZCAqLworLyogMTk5OS4wMi4wNSBjbGVhbmVyIGNvZGUgZm9yIEJpZ0RlY2ltYWwoY2hhcltdKSAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk5LjAyLjA2IGFkZCBqYXZhZG9jIGNvbW1lbnRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTkuMDIuMTEgZm9ybWF0KCkgY2hhbmdlZCBmcm9tIDcgdG8gMiBtZXRob2QgZm9ybSAgICAgICAgICAgICAgICAqLworLyogMTk5OS4wMy4wNSBudWxsIHBvaW50ZXIgY2hlY2tpbmcgaXMgbm8gbG9uZ2VyIGV4cGxpY2l0ICAgICAgICAgICAgICovCisvKiAxOTk5LjAzLjA1IHNpbXBsaWZ5OyBjaGFuZ2VzIGZyb20gZGlzY3Vzc2lvbiB3aXRoIEouIEJsb2NoOiAgICAgICAgKi8KKy8qICAgICAgICAgICAgbnVsbCBubyBsb25nZXIgcGVybWl0dGVkIGZvciBNYXRoQ29udGV4dDsgZHJvcCBib29sZWFuLCAqLworLyogICAgICAgICAgICBieXRlLCBjaGFyLCBmbG9hdCwgc2hvcnQgY29uc3RydWN0b3IsIGRlcHJlY2F0ZSBkb3VibGUgICovCisvKiAgICAgICAgICAgIGNvbnN0cnVjdG9yLCBubyBibGFua3MgaW4gc3RyaW5nIGNvbnN0cnVjdG9yLCBhZGQgICAgICAgKi8KKy8qICAgICAgICAgICAgb2Zmc2V0IGFuZCBsZW5ndGggdmVyc2lvbiBvZiBjaGFyW10gY29uc3RydWN0b3I7ICAgICAgICAqLworLyogICAgICAgICAgICBhZGQgdmFsdWVPZihkb3VibGUpOyBkcm9wIGJvb2xlYW5WYWx1ZSwgY2hhclZhbHVlOyAgICAgICovCisvKiAgICAgICAgICAgIGFkZCAuLi5FeGFjdCB2ZXJzaW9ucyBvZiByZW1haW5pbmcgY29udmVydG9ycyAgICAgICAgICAgKi8KKy8qIDE5OTkuMDMuMTMgYWRkIHRvQmlnSW50ZWdlckV4YWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogMTk5OS4wMy4xMyAxLjAwIHJlbGVhc2UgdG8gSUJNIENlbnRyZSBmb3IgSmF2YSBUZWNobm9sb2d5ICAgICAgICAgICovCisvKiAxOTk5LjA1LjI3IDEuMDEgY29ycmVjdCAwLTAuMiBidWcgdW5kZXIgc2NhbGVkIGFyaXRobWV0aWMgICAgICAgICAgKi8KKy8qIDE5OTkuMDYuMjkgMS4wMiBjb25zdHJ1Y3RvcnMgc2hvdWxkIG5vdCBhbGxvdyBleHBvbmVudCA+IDkgZGlnaXRzICAqLworLyogMTk5OS4wNy4wMyAxLjAzIGxvc3QgZGlnaXRzIHNob3VsZCBub3QgYmUgY2hlY2tlZCBpZiBkaWdpdHM9MCAgICAgICovCisvKiAxOTk5LjA3LjA2ICAgICAgbG9zdCBkaWdpdHMgRXhjZXB0aW9uIG1lc3NhZ2UgY2hhbmdlZCAgICAgICAgICAgICAgKi8KKy8qIDE5OTkuMDcuMTAgMS4wNCBtb3JlIHdvcmsgb24gMC0wLjIgKHNjYWxlZCBhcml0aG1ldGljKSAgICAgICAgICAgICAqLworLyogMTk5OS4wNy4xNyAgICAgIGltcHJvdmUgbWVzc2FnZXMgZnJvbSBwb3cgbWV0aG9kICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk5LjA4LjA4ICAgICAgcGVyZm9ybWFuY2UgdHdlYWtzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTkuMDguMTUgICAgICBmYXN0cGF0aCBpbiBtdWx0aXBseSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogMTk5OS4xMS4wNSAxLjA1IGZpeCBwcm9ibGVtIGluIGludFZhbHVlRXhhY3QgW2UuZy4sIDU1NTU1NTU1NTVdICAgICovCisvKiAxOTk5LjEyLjIyIDEuMDYgcmVtb3ZlIG11bHRpcGx5IGZhc3RwYXRoLCBhbmQgaW1wcm92ZSBwZXJmb3JtYW5jZSAgKi8KKy8qIDIwMDAuMDEuMDEgICAgICBjb3B5cmlnaHQgdXBkYXRlIFtZMksgaGFzIGFycml2ZWRdICAgICAgICAgICAgICAgICAqLworLyogMjAwMC4wNi4xOCAxLjA4IG5vIGxvbmdlciBkZXByZWNhdGUgQmlnRGVjaW1hbChkb3VibGUpICAgICAgICAgICAgICovCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworCisKKworCisvKioKKyAqIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBjbGFzcyBpbXBsZW1lbnRzIGltbXV0YWJsZQorICogYXJiaXRyYXJ5LXByZWNpc2lvbiBkZWNpbWFsIG51bWJlcnMuICBUaGUgbWV0aG9kcyBvZiB0aGUKKyAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGNsYXNzIHByb3ZpZGUgb3BlcmF0aW9ucyBmb3IgZml4ZWQgYW5kCisgKiBmbG9hdGluZyBwb2ludCBhcml0aG1ldGljLCBjb21wYXJpc29uLCBmb3JtYXQgY29udmVyc2lvbnMsIGFuZAorICogaGFzaGluZy4KKyAqIDxwPgorICogQXMgdGhlIG51bWJlcnMgYXJlIGRlY2ltYWwsIHRoZXJlIGlzIGFuIGV4YWN0IGNvcnJlc3BvbmRlbmNlIGJldHdlZW4KKyAqIGFuIGluc3RhbmNlIG9mIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0IGFuZCBpdHMKKyAqIDxjb2RlPlN0cmluZzwvY29kZT4gcmVwcmVzZW50YXRpb247IHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBjbGFzcworICogcHJvdmlkZXMgZGlyZWN0IGNvbnZlcnNpb25zIHRvIGFuZCBmcm9tIDxjb2RlPlN0cmluZzwvY29kZT4gYW5kCisgKiBjaGFyYWN0ZXIgYXJyYXkgKDxjb2RlPmNoYXJbXTwvY29kZT4pIG9iamVjdHMsIGFzIHdlbGwgYXMgY29udmVyc2lvbnMKKyAqIHRvIGFuZCBmcm9tIHRoZSBKYXZhIHByaW1pdGl2ZSB0eXBlcyAod2hpY2ggbWF5IG5vdCBiZSBleGFjdCkgYW5kCisgKiA8Y29kZT5CaWdJbnRlZ2VyPC9jb2RlPi4KKyAqIDxwPgorICogSW4gdGhlIGRlc2NyaXB0aW9ucyBvZiBjb25zdHJ1Y3RvcnMgYW5kIG1ldGhvZHMgaW4gdGhpcyBkb2N1bWVudGF0aW9uLAorICogdGhlIHZhbHVlIG9mIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gbnVtYmVyIG9iamVjdCBpcyBzaG93biBhcyB0aGUKKyAqIHJlc3VsdCBvZiBpbnZva2luZyB0aGUgPGNvZGU+dG9TdHJpbmcoKTwvY29kZT4gbWV0aG9kIG9uIHRoZSBvYmplY3QuCisgKiBUaGUgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24gb2YgYSBkZWNpbWFsIG51bWJlciBpcyBuZWl0aGVyIGRlZmluZWQKKyAqIG5vciBleHBvc2VkLCBhbmQgaXMgbm90IHBlcm1pdHRlZCB0byBhZmZlY3QgdGhlIHJlc3VsdCBvZiBhbnkKKyAqIG9wZXJhdGlvbi4KKyAqIDxwPgorICogVGhlIGZsb2F0aW5nIHBvaW50IGFyaXRobWV0aWMgcHJvdmlkZWQgYnkgdGhpcyBjbGFzcyBpcyBkZWZpbmVkIGJ5CisgKiB0aGUgQU5TSSBYMy4yNzQtMTk5NiBzdGFuZGFyZCwgYW5kIGlzIGFsc28gZG9jdW1lbnRlZCBhdAorICogPGNvZGU+aHR0cDovL3d3dzIuaHVyc2xleS5pYm0uY29tL2RlY2ltYWw8L2NvZGU+CisgKiA8YnI+PGk+W1RoaXMgVVJMIHdpbGwgY2hhbmdlLl08L2k+CisgKgorICogPGgzPk9wZXJhdG9yIG1ldGhvZHM8L2gzPgorICogPHA+CisgKiBPcGVyYXRpb25zIG9uIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG51bWJlcnMgYXJlIGNvbnRyb2xsZWQgYnkgYQorICoge0BsaW5rIE1hdGhDb250ZXh0fSBvYmplY3QsIHdoaWNoIHByb3ZpZGVzIHRoZSBjb250ZXh0IChwcmVjaXNpb24gYW5kCisgKiBvdGhlciBpbmZvcm1hdGlvbikgZm9yIHRoZSBvcGVyYXRpb24uIE1ldGhvZHMgdGhhdCBjYW4gdGFrZSBhCisgKiA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gcGFyYW1ldGVyIGltcGxlbWVudCB0aGUgc3RhbmRhcmQgYXJpdGhtZXRpYworICogb3BlcmF0b3JzIGZvciA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3RzIGFuZCBhcmUga25vd24gYXMKKyAqIDxpPm9wZXJhdG9yIG1ldGhvZHM8L2k+LiAgVGhlIGRlZmF1bHQgc2V0dGluZ3MgcHJvdmlkZWQgYnkgdGhlCisgKiBjb25zdGFudCB7QGxpbmsgTWF0aENvbnRleHQjREVGQVVMVH0gKDxjb2RlPmRpZ2l0cz05LAorICogZm9ybT1TQ0lFTlRJRklDLCBsb3N0RGlnaXRzPWZhbHNlLCByb3VuZGluZ01vZGU9Uk9VTkRfSEFMRl9VUDwvY29kZT4pCisgKiBwZXJmb3JtIGdlbmVyYWwtcHVycG9zZSBmbG9hdGluZyBwb2ludCBhcml0aG1ldGljIHRvIG5pbmUgZGlnaXRzIG9mCisgKiBwcmVjaXNpb24uICBUaGUgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IHBhcmFtZXRlciBtdXN0IG5vdCBiZQorICogPGNvZGU+bnVsbDwvY29kZT4uCisgKiA8cD4KKyAqIEVhY2ggb3BlcmF0b3IgbWV0aG9kIGFsc28gaGFzIGEgdmVyc2lvbiBwcm92aWRlZCB3aGljaCBkb2VzCisgKiBub3QgdGFrZSBhIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBwYXJhbWV0ZXIuICBGb3IgdGhpcyB2ZXJzaW9uIG9mCisgKiBlYWNoIG1ldGhvZCwgdGhlIGNvbnRleHQgc2V0dGluZ3MgdXNlZCBhcmUgPGNvZGU+ZGlnaXRzPTAsCisgKiBmb3JtPVBMQUlOLCBsb3N0RGlnaXRzPWZhbHNlLCByb3VuZGluZ01vZGU9Uk9VTkRfSEFMRl9VUDwvY29kZT47CisgKiB0aGVzZSBzZXR0aW5ncyBwZXJmb3JtIGZpeGVkIHBvaW50IGFyaXRobWV0aWMgd2l0aCB1bmxpbWl0ZWQKKyAqIHByZWNpc2lvbiwgYXMgZGVmaW5lZCBmb3IgdGhlIG9yaWdpbmFsIEJpZ0RlY2ltYWwgY2xhc3MgaW4gSmF2YSAxLjEKKyAqIGFuZCBKYXZhIDEuMi4KKyAqIDxwPgorICogRm9yIG1vbmFkaWMgb3BlcmF0b3JzLCBvbmx5IHRoZSBvcHRpb25hbCA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4KKyAqIHBhcmFtZXRlciBpcyBwcmVzZW50OyB0aGUgb3BlcmF0aW9uIGFjdHMgdXBvbiB0aGUgY3VycmVudCBvYmplY3QuCisgKiA8cD4KKyAqIEZvciBkeWFkaWMgb3BlcmF0b3JzLCBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHBhcmFtZXRlciBpcyBhbHdheXMKKyAqIHByZXNlbnQ7IGl0IG11c3Qgbm90IGJlIDxjb2RlPm51bGw8L2NvZGU+LgorICogVGhlIG9wZXJhdGlvbiBhY3RzIHdpdGggdGhlIGN1cnJlbnQgb2JqZWN0IGJlaW5nIHRoZSBsZWZ0LWhhbmQgb3BlcmFuZAorICogYW5kIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBwYXJhbWV0ZXIgYmVpbmcgdGhlIHJpZ2h0LWhhbmQgb3BlcmFuZC4KKyAqIDxwPgorICogRm9yIGV4YW1wbGUsIGFkZGluZyB0d28gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0cyByZWZlcnJlZCB0bworICogYnkgdGhlIG5hbWVzIDxjb2RlPmF3YXJkPC9jb2RlPiBhbmQgPGNvZGU+ZXh0cmE8L2NvZGU+IGNvdWxkIGJlCisgKiB3cml0dGVuIGFzIGFueSBvZjoKKyAqIDxwPjxjb2RlPgorICogICAgIGF3YXJkLmFkZChleHRyYSkKKyAqIDxicj5hd2FyZC5hZGQoZXh0cmEsIE1hdGhDb250ZXh0LkRFRkFVTFQpCisgKiA8YnI+YXdhcmQuYWRkKGV4dHJhLCBhY29udGV4dCkKKyAqIDwvY29kZT4KKyAqIDxwPgorICogKHdoZXJlIDxjb2RlPmFjb250ZXh0PC9jb2RlPiBpcyBhIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBvYmplY3QpLAorICogd2hpY2ggd291bGQgcmV0dXJuIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0IHdob3NlIHZhbHVlIGlzCisgKiB0aGUgcmVzdWx0IG9mIGFkZGluZyA8Y29kZT5hd2FyZDwvY29kZT4gYW5kIDxjb2RlPmV4dHJhPC9jb2RlPiB1bmRlcgorICogdGhlIGFwcHJvcHJpYXRlIGNvbnRleHQgc2V0dGluZ3MuCisgKiA8cD4KKyAqIFdoZW4gYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvcGVyYXRvciBtZXRob2QgaXMgdXNlZCwgYSBzZXQgb2YKKyAqIHJ1bGVzIGRlZmluZSB3aGF0IHRoZSByZXN1bHQgd2lsbCBiZSAoYW5kLCBieSBpbXBsaWNhdGlvbiwgaG93IHRoZQorICogcmVzdWx0IHdvdWxkIGJlIHJlcHJlc2VudGVkIGFzIGEgY2hhcmFjdGVyIHN0cmluZykuCisgKiBUaGVzZSBydWxlcyBhcmUgZGVmaW5lZCBpbiB0aGUgQmlnRGVjaW1hbCBhcml0aG1ldGljIGRvY3VtZW50YXRpb24KKyAqIChzZWUgdGhlIFVSTCBhYm92ZSksIGJ1dCBpbiBzdW1tYXJ5OgorICogPHVsPgorICogPGxpPlJlc3VsdHMgYXJlIG5vcm1hbGx5IGNhbGN1bGF0ZWQgd2l0aCB1cCB0byBzb21lIG1heGltdW0gbnVtYmVyIG9mCisgKiBzaWduaWZpY2FudCBkaWdpdHMuCisgKiBGb3IgZXhhbXBsZSwgaWYgdGhlIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBwYXJhbWV0ZXIgZm9yIGFuIG9wZXJhdGlvbgorICogd2VyZSA8Y29kZT5NYXRoQ29udGV4dC5ERUZBVUxUPC9jb2RlPiB0aGVuIHRoZSByZXN1bHQgd291bGQgYmUKKyAqIHJvdW5kZWQgdG8gOSBkaWdpdHM7IHRoZSBkaXZpc2lvbiBvZiAyIGJ5IDMgd291bGQgdGhlbiByZXN1bHQgaW4KKyAqIDAuNjY2NjY2NjY3LgorICogPGJyPgorICogWW91IGNhbiBjaGFuZ2UgdGhlIGRlZmF1bHQgb2YgOSBzaWduaWZpY2FudCBkaWdpdHMgYnkgcHJvdmlkaW5nIHRoZQorICogbWV0aG9kIHdpdGggYSBzdWl0YWJsZSA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gb2JqZWN0LiBUaGlzIGxldHMgeW91CisgKiBjYWxjdWxhdGUgdXNpbmcgYXMgbWFueSBkaWdpdHMgYXMgeW91IG5lZWQgLS0gdGhvdXNhbmRzLCBpZiBuZWNlc3NhcnkuCisgKiBGaXhlZCBwb2ludCAoc2NhbGVkKSBhcml0aG1ldGljIGlzIGluZGljYXRlZCBieSB1c2luZyBhCisgKiA8Y29kZT5kaWdpdHM8L2NvZGU+IHNldHRpbmcgb2YgMCAob3Igb21pdHRpbmcgdGhlCisgKiA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gcGFyYW1ldGVyKS4KKyAqIDxicj4KKyAqIFNpbWlsYXJseSwgeW91IGNhbiBjaGFuZ2UgdGhlIGFsZ29yaXRobSB1c2VkIGZvciByb3VuZGluZyBmcm9tIHRoZQorICogZGVmYXVsdCAiY2xhc3NpYyIgYWxnb3JpdGhtLgorICogPGxpPgorICogSW4gc3RhbmRhcmQgYXJpdGhtZXRpYyAodGhhdCBpcywgd2hlbiB0aGUgPGNvZGU+Zm9ybTwvY29kZT4gc2V0dGluZworICogaXMgbm90IDxjb2RlPlBMQUlOPC9jb2RlPiksIGEgemVybyByZXN1bHQgaXMgYWx3YXlzIGV4cHJlc3NlZCBhcyB0aGUKKyAqIHNpbmdsZSBkaWdpdCA8Y29kZT4nMCc8L2NvZGU+ICh0aGF0IGlzLCB3aXRoIG5vIHNpZ24sIGRlY2ltYWwgcG9pbnQsCisgKiBvciBleHBvbmVudCBwYXJ0KS4KKyAqIDxsaT4KKyAqIEV4Y2VwdCBmb3IgdGhlIGRpdmlzaW9uIGFuZCBwb3dlciBvcGVyYXRvcnMgaW4gc3RhbmRhcmQgYXJpdGhtZXRpYywKKyAqIHRyYWlsaW5nIHplcm9zIGFyZSBwcmVzZXJ2ZWQgKHRoaXMgaXMgaW4gY29udHJhc3QgdG8gYmluYXJ5IGZsb2F0aW5nCisgKiBwb2ludCBvcGVyYXRpb25zIGFuZCBtb3N0IGVsZWN0cm9uaWMgY2FsY3VsYXRvcnMsIHdoaWNoIGxvc2UgdGhlCisgKiBpbmZvcm1hdGlvbiBhYm91dCB0cmFpbGluZyB6ZXJvcyBpbiB0aGUgZnJhY3Rpb25hbCBwYXJ0IG9mIHJlc3VsdHMpLgorICogPGJyPgorICogU28sIGZvciBleGFtcGxlOgorICogPHA+PGNvZGU+CisgKiAgICAgbmV3IEJpZ0RlY2ltYWwoIjIuNDAiKS5hZGQoICAgICBuZXcgQmlnRGVjaW1hbCgiMiIpKSAgICAgID0mZ3Q7ICI0LjQwIgorICogPGJyPm5ldyBCaWdEZWNpbWFsKCIyLjQwIikuc3VidHJhY3QobmV3IEJpZ0RlY2ltYWwoIjIiKSkgICAgICA9Jmd0OyAiMC40MCIKKyAqIDxicj5uZXcgQmlnRGVjaW1hbCgiMi40MCIpLm11bHRpcGx5KG5ldyBCaWdEZWNpbWFsKCIyIikpICAgICAgPSZndDsgIjQuODAiCisgKiA8YnI+bmV3IEJpZ0RlY2ltYWwoIjIuNDAiKS5kaXZpZGUoICBuZXcgQmlnRGVjaW1hbCgiMiIpLCBkZWYpID0mZ3Q7ICIxLjIiCisgKiA8L2NvZGU+CisgKiA8cD53aGVyZSB0aGUgdmFsdWUgb24gdGhlIHJpZ2h0IG9mIHRoZSA8Y29kZT49Jmd0OzwvY29kZT4gd291bGQgYmUgdGhlCisgKiByZXN1bHQgb2YgdGhlIG9wZXJhdGlvbiwgZXhwcmVzc2VkIGFzIGEgPGNvZGU+U3RyaW5nPC9jb2RlPiwgYW5kCisgKiA8Y29kZT5kZWY8L2NvZGU+IChpbiB0aGlzIGFuZCBmb2xsb3dpbmcgZXhhbXBsZXMpIHJlZmVycyB0bworICogPGNvZGU+TWF0aENvbnRleHQuREVGQVVMVDwvY29kZT4pLgorICogVGhpcyBwcmVzZXJ2YXRpb24gb2YgdHJhaWxpbmcgemVyb3MgaXMgZGVzaXJhYmxlIGZvciBtb3N0CisgKiBjYWxjdWxhdGlvbnMgKGluY2x1ZGluZyBmaW5hbmNpYWwgY2FsY3VsYXRpb25zKS4KKyAqIElmIG5lY2Vzc2FyeSwgdHJhaWxpbmcgemVyb3MgbWF5IGJlIGVhc2lseSByZW1vdmVkIHVzaW5nIGRpdmlzaW9uIGJ5IDEuCisgKiA8bGk+CisgKiBJbiBzdGFuZGFyZCBhcml0aG1ldGljLCBleHBvbmVudGlhbCBmb3JtIGlzIHVzZWQgZm9yIGEgcmVzdWx0CisgKiBkZXBlbmRpbmcgb24gaXRzIHZhbHVlIGFuZCB0aGUgY3VycmVudCBzZXR0aW5nIG9mIDxjb2RlPmRpZ2l0czwvY29kZT4KKyAqICh0aGUgZGVmYXVsdCBpcyA5IGRpZ2l0cykuCisgKiBJZiB0aGUgbnVtYmVyIG9mIHBsYWNlcyBuZWVkZWQgYmVmb3JlIHRoZSBkZWNpbWFsIHBvaW50IGV4Y2VlZHMgdGhlCisgKiA8Y29kZT5kaWdpdHM8L2NvZGU+IHNldHRpbmcsIG9yIHRoZSBhYnNvbHV0ZSB2YWx1ZSBvZiB0aGUgbnVtYmVyIGlzCisgKiBsZXNzIHRoYW4gPGNvZGU+MC4wMDAwMDE8L2NvZGU+LCB0aGVuIHRoZSBudW1iZXIgd2lsbCBiZSBleHByZXNzZWQgaW4KKyAqIGV4cG9uZW50aWFsIG5vdGF0aW9uOyB0aHVzCisgKiA8cD48Y29kZT4KKyAqICAgbmV3IEJpZ0RlY2ltYWwoIjFlKzYiKS5tdWx0aXBseShuZXcgQmlnRGVjaW1hbCgiMWUrNiIpLCBkZWYpCisgKiA8L2NvZGU+CisgKiA8cD5yZXN1bHRzIGluIDxjb2RlPjFFKzEyPC9jb2RlPiBpbnN0ZWFkIG9mCisgKiA8Y29kZT4xMDAwMDAwMDAwMDAwPC9jb2RlPiwgYW5kCisgKiA8cD48Y29kZT4KKyAqICAgbmV3IEJpZ0RlY2ltYWwoIjEiKS5kaXZpZGUobmV3IEJpZ0RlY2ltYWwoIjNFKzEwIiksIGRlZikKKyAqIDwvY29kZT4KKyAqIDxwPnJlc3VsdHMgaW4gPGNvZGU+My4zMzMzMzMzM0UtMTE8L2NvZGU+IGluc3RlYWQgb2YKKyAqIDxjb2RlPjAuMDAwMDAwMDAwMDMzMzMzMzMzMzwvY29kZT4uCisgKiA8cD4KKyAqIFRoZSBmb3JtIG9mIHRoZSBleHBvbmVudGlhbCBub3RhdGlvbiAoc2NpZW50aWZpYyBvciBlbmdpbmVlcmluZykgaXMKKyAqIGRldGVybWluZWQgYnkgdGhlIDxjb2RlPmZvcm08L2NvZGU+IHNldHRpbmcuCisgKiA8ZXVsPgorICogPHA+CisgKiBUaGUgbmFtZXMgb2YgbWV0aG9kcyBpbiB0aGlzIGNsYXNzIGZvbGxvdyB0aGUgY29udmVudGlvbnMgZXN0YWJsaXNoZWQKKyAqIGJ5IDxjb2RlPmphdmEubGFuZy5OdW1iZXI8L2NvZGU+LCA8Y29kZT5qYXZhLm1hdGguQmlnSW50ZWdlcjwvY29kZT4sCisgKiBhbmQgPGNvZGU+amF2YS5tYXRoLkJpZ0RlY2ltYWw8L2NvZGU+IGluIEphdmEgMS4xIGFuZCBKYXZhIDEuMi4KKyAqCisgKiBAc2VlICAgICBNYXRoQ29udGV4dAorICogQHZlcnNpb24gMS4wOCAyMDAwLjA2LjE4CisgKiBAYXV0aG9yICBNaWtlIENvd2xpc2hhdworICovCisKK3B1YmxpYyBjbGFzcyBCaWdEZWNpbWFsIGV4dGVuZHMgamF2YS5sYW5nLk51bWJlciBpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlLGphdmEubGFuZy5Db21wYXJhYmxleworIHByaXZhdGUgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgJDA9IkJpZ0RlY2ltYWwubnJ4IjsKKyAKKyAKKyAKKyAvKiAtLS0tLSBDb25zdGFudHMgLS0tLS0gKi8KKyAvKiBwcm9wZXJ0aWVzIGNvbnN0YW50IHB1YmxpYyAqLyAvLyB1c2VmdWwgdG8gb3RoZXJzCisgLyoqCisgICogVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGNvbnN0YW50ICIwIi4KKyAgKgorICAqIEBzZWUgI09ORQorICAqIEBzZWUgI1RFTgorICAqIEBzaW5jZSBJQk0gSkRLIDEuMS44CisgICovCisgcHVibGljIHN0YXRpYyBmaW5hbCBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgWkVSTz1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKChsb25nKTApOyAvLyB1c2UgbG9uZyBhcyB3ZSB3YW50IHRoZSBpbnQgY29uc3RydWN0b3IKKyAvLyAuLiB0byBiZSBhYmxlIHRvIHVzZSB0aGlzLCBmb3Igc3BlZWQKKyAKKyAvKioKKyAgKiBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gY29uc3RhbnQgIjEiLgorICAqCisgICogQHNlZSAjVEVOCisgICogQHNlZSAjWkVSTworICAqIEBzaW5jZSBJQk0gSkRLIDEuMS44CisgICovCisgcHVibGljIHN0YXRpYyBmaW5hbCBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgT05FPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoKGxvbmcpMSk7IC8vIHVzZSBsb25nIGFzIHdlIHdhbnQgdGhlIGludCBjb25zdHJ1Y3RvcgorIC8vIC4uIHRvIGJlIGFibGUgdG8gdXNlIHRoaXMsIGZvciBzcGVlZAorIAorIC8qKgorICAqIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBjb25zdGFudCAiMTAiLgorICAqCisgICogQHNlZSAjT05FCisgICogQHNlZSAjWkVSTworICAqIEBzaW5jZSBJQk0gSkRLIDEuMS44CisgICovCisgcHVibGljIHN0YXRpYyBmaW5hbCBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgVEVOPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMTApOworIAorIC8vIHRoZSByb3VuZGluZyBtb2RlcyAoY29waWVkIGhlcmUgZm9yIHVwd2FyZHMgY29tcGF0aWJpbGl0eSkKKyAvKioKKyAgKiBSb3VuZGluZyBtb2RlIHRvIHJvdW5kIHRvIGEgbW9yZSBwb3NpdGl2ZSBudW1iZXIuCisgICogQHNlZSBNYXRoQ29udGV4dCNST1VORF9DRUlMSU5HCisgICovCisgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUk9VTkRfQ0VJTElORz1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0NFSUxJTkc7CisgCisgLyoqCisgICogUm91bmRpbmcgbW9kZSB0byByb3VuZCB0b3dhcmRzIHplcm8uCisgICogQHNlZSBNYXRoQ29udGV4dCNST1VORF9ET1dOCisgICovCisgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUk9VTkRfRE9XTj1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0RPV047CisgCisgLyoqCisgICogUm91bmRpbmcgbW9kZSB0byByb3VuZCB0byBhIG1vcmUgbmVnYXRpdmUgbnVtYmVyLgorICAqIEBzZWUgTWF0aENvbnRleHQjUk9VTkRfRkxPT1IKKyAgKi8KKyBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBST1VORF9GTE9PUj1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0ZMT09SOworIAorIC8qKgorICAqIFJvdW5kaW5nIG1vZGUgdG8gcm91bmQgdG8gbmVhcmVzdCBuZWlnaGJvciwgd2hlcmUgYW4gZXF1aWRpc3RhbnQKKyAgKiB2YWx1ZSBpcyByb3VuZGVkIGRvd24uCisgICogQHNlZSBNYXRoQ29udGV4dCNST1VORF9IQUxGX0RPV04KKyAgKi8KKyBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBST1VORF9IQUxGX0RPV049Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV047CisgCisgLyoqCisgICogUm91bmRpbmcgbW9kZSB0byByb3VuZCB0byBuZWFyZXN0IG5laWdoYm9yLCB3aGVyZSBhbiBlcXVpZGlzdGFudAorICAqIHZhbHVlIGlzIHJvdW5kZWQgdG8gdGhlIG5lYXJlc3QgZXZlbiBuZWlnaGJvci4KKyAgKiBAc2VlIE1hdGhDb250ZXh0I1JPVU5EX0hBTEZfRVZFTgorICAqLworIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJPVU5EX0hBTEZfRVZFTj1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTjsKKyAKKyAvKioKKyAgKiBSb3VuZGluZyBtb2RlIHRvIHJvdW5kIHRvIG5lYXJlc3QgbmVpZ2hib3IsIHdoZXJlIGFuIGVxdWlkaXN0YW50CisgICogdmFsdWUgaXMgcm91bmRlZCB1cC4KKyAgKiBAc2VlIE1hdGhDb250ZXh0I1JPVU5EX0hBTEZfVVAKKyAgKi8KKyBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBST1VORF9IQUxGX1VQPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUDsKKyAKKyAvKioKKyAgKiBSb3VuZGluZyBtb2RlIHRvIGFzc2VydCB0aGF0IG5vIHJvdW5kaW5nIGlzIG5lY2Vzc2FyeS4KKyAgKiBAc2VlIE1hdGhDb250ZXh0I1JPVU5EX1VOTkVDRVNTQVJZCisgICovCisgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUk9VTkRfVU5ORUNFU1NBUlk9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWTsKKyAKKyAvKioKKyAgKiBSb3VuZGluZyBtb2RlIHRvIHJvdW5kIGF3YXkgZnJvbSB6ZXJvLgorICAqIEBzZWUgTWF0aENvbnRleHQjUk9VTkRfVVAKKyAgKi8KKyBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBST1VORF9VUD1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VQOworIAorIC8qIHByb3BlcnRpZXMgY29uc3RhbnQgcHJpdmF0ZSAqLyAvLyBsb2NhbHMKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIGlzcG9zPTE7IC8vIGluZDogaW5kaWNhdGVzIHBvc2l0aXZlIChtdXN0IGJlIDEpCisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBpc3plcm89MDsgLy8gaW5kOiBpbmRpY2F0ZXMgemVybyAgICAgKG11c3QgYmUgMCkKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIGlzbmVnPS0xOyAvLyBpbmQ6IGluZGljYXRlcyBuZWdhdGl2ZSAobXVzdCBiZSAtMSkKKyAvLyBbbGF0ZXIgY291bGQgYWRkIE5hTiwgKy8tIGluZmluaXR5LCBoZXJlXQorIAorIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNaW5FeHA9LTk5OTk5OTk5OTsgLy8gbWluaW11bSBleHBvbmVudCBhbGxvd2VkCisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1heEV4cD05OTk5OTk5OTk7IC8vIG1heGltdW0gZXhwb25lbnQgYWxsb3dlZAorIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNaW5Bcmc9LTk5OTk5OTk5OTsgLy8gbWluaW11bSBhcmd1bWVudCBpbnRlZ2VyCisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1heEFyZz05OTk5OTk5OTk7IC8vIG1heGltdW0gYXJndW1lbnQgaW50ZWdlcgorIAorIHByaXZhdGUgc3RhdGljIGZpbmFsIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgcGxhaW5NQz1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU4pOyAvLyBjb250ZXh0IGZvciBwbGFpbiB1bmxpbWl0ZWQgbWF0aAorIAorIC8qIHByb3BlcnRpZXMgY29uc3RhbnQgcHJpdmF0ZSB1bnVzZWQgKi8gLy8gcHJlc2VudCBidXQgbm90IHJlZmVyZW5jZWQKKyAKKyAvLyBTZXJpYWxpemF0aW9uIHZlcnNpb24KKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQ9ODI0NTM1NTgwNDk3NDE5ODgzMkw7CisgCisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyBjb3B5cmlnaHQ9IiBDb3B5cmlnaHQgKGMpIElCTSBDb3Jwb3JhdGlvbiAxOTk2LCAyMDAwLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIjsKKyAKKyAvKiBwcm9wZXJ0aWVzIHN0YXRpYyBwcml2YXRlICovCisgLy8gUHJlY2FsY3VsYXRlZCBjb25zdGFudCBhcnJheXMgKHVzZWQgYnkgYnl0ZWFkZHN1YikKKyBwcml2YXRlIHN0YXRpYyBieXRlIGJ5dGVjYXJbXT1uZXcgYnl0ZVsoOTArOTkpKzFdOyAvLyBjYXJyeS9ib3Jyb3cgYXJyYXkKKyBwcml2YXRlIHN0YXRpYyBieXRlIGJ5dGVkaWdbXT1kaWdpbml0KCk7IC8vIG5leHQgZGlnaXQgYXJyYXkKKyAKKyAvKiAtLS0tLSBJbnN0YW5jZSBwcm9wZXJ0aWVzIFthbGwgcHJpdmF0ZSBhbmQgaW1tdXRhYmxlXSAtLS0tLSAqLworIC8qIHByb3BlcnRpZXMgcHJpdmF0ZSAqLworIAorIC8qKgorICAqIFRoZSBpbmRpY2F0b3IuIFRoaXMgbWF5IHRha2UgdGhlIHZhbHVlczoKKyAgKiA8dWw+CisgICogPGxpPmlzcG9zICAtLSB0aGUgbnVtYmVyIGlzIHBvc2l0aXZlCisgICogPGxpPmlzemVybyAtLSB0aGUgbnVtYmVyIGlzIHplcm8KKyAgKiA8bGk+aXNuZWcgIC0tIHRoZSBudW1iZXIgaXMgbmVnYXRpdmUKKyAgKiA8L3VsPgorICAqCisgICogQHNlcmlhbAorICAqLworIHByaXZhdGUgYnl0ZSBpbmQ7IC8vIGFzc3VtZWQgdW5kZWZpbmVkCisgLy8gTm90ZTogc29tZSBjb2RlIGJlbG93IGFzc3VtZXMgSU5EID0gU2lnbiBbLTEsIDAsIDFdLCBhdCBwcmVzZW50LgorIC8vIFdlIG9ubHkgbmVlZCB0d28gYml0cyBmb3IgdGhpcywgYnV0IHVzZSBhIGJ5dGUgW2Fsc28gcGVybWl0cworIC8vIHNtb290aCBmdXR1cmUgZXh0ZW5zaW9uXS4KKyAKKyAvKioKKyAgKiBUaGUgZm9ybWF0dGluZyBzdHlsZS4gVGhpcyBtYXkgdGFrZSB0aGUgdmFsdWVzOgorICAqIDx1bD4KKyAgKiA8bGk+TWF0aENvbnRleHQuUExBSU4gICAgICAgIC0tIG5vIGV4cG9uZW50IG5lZWRlZAorICAqIDxsaT5NYXRoQ29udGV4dC5TQ0lFTlRJRklDICAgLS0gc2NpZW50aWZpYyBub3RhdGlvbiByZXF1aXJlZAorICAqIDxsaT5NYXRoQ29udGV4dC5FTkdJTkVFUklORyAgLS0gZW5naW5lZXJpbmcgbm90YXRpb24gcmVxdWlyZWQKKyAgKiA8L3VsPgorICAqIDxwPgorICAqIFRoaXMgcHJvcGVydHkgaXMgYW4gb3B0aW1pemF0aW9uOyBpdCBhbGxvd3MgdXMgdG8gZGVmZXIgbnVtYmVyCisgICogbGF5b3V0IHVudGlsIGl0IGlzIGFjdHVhbGx5IG5lZWRlZCBhcyBhIHN0cmluZywgaGVuY2UgYXZvaWRpbmcKKyAgKiB1bm5lY2Vzc2FyeSBmb3JtYXR0aW5nLgorICAqCisgICogQHNlcmlhbAorICAqLworIHByaXZhdGUgYnl0ZSBmb3JtPShieXRlKWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU47IC8vIGFzc3VtZWQgUExBSU4KKyAvLyBXZSBvbmx5IG5lZWQgdHdvIGJpdHMgZm9yIHRoaXMsIGF0IHByZXNlbnQsIGJ1dCB1c2UgYSBieXRlCisgLy8gW2FnYWluLCB0byBhbGxvdyBmb3Igc21vb3RoIGZ1dHVyZSBleHRlbnNpb25dCisgCisgLyoqCisgICogVGhlIHZhbHVlIG9mIHRoZSBtYW50aXNzYS4KKyAgKiA8cD4KKyAgKiBPbmNlIGNvbnN0cnVjdGVkLCB0aGlzIG1heSBiZWNvbWUgc2hhcmVkIGJldHdlZW4gc2V2ZXJhbCBCaWdEZWNpbWFsCisgICogb2JqZWN0cywgc28gbXVzdCBub3QgYmUgYWx0ZXJlZC4KKyAgKiA8cD4KKyAgKiBGb3IgZWZmaWNpZW5jeSAoc3BlZWQpLCB0aGlzIGlzIGEgYnl0ZSBhcnJheSwgd2l0aCBlYWNoIGJ5dGUKKyAgKiB0YWtpbmcgYSB2YWx1ZSBvZiAwIC0+IDkuCisgICogPHA+CisgICogSWYgdGhlIGZpcnN0IGJ5dGUgaXMgMCB0aGVuIHRoZSB2YWx1ZSBvZiB0aGUgbnVtYmVyIGlzIHplcm8gKGFuZAorICAqIG1hbnQubGVuZ3RoPTEsIGV4Y2VwdCB3aGVuIGNvbnN0cnVjdGVkIGZyb20gYSBwbGFpbiBudW1iZXIsIGZvcgorICAqIGV4YW1wbGUsIDAuMDAwKS4KKyAgKgorICAqIEBzZXJpYWwKKyAgKi8KKyBwcml2YXRlIGJ5dGUgbWFudFtdOyAvLyBhc3N1bWVkIG51bGwKKyAKKyAvKioKKyAgKiBUaGUgZXhwb25lbnQuCisgICogPHA+CisgICogRm9yIGZpeGVkIHBvaW50IGFyaXRobWV0aWMsIHNjYWxlIGlzIDxjb2RlPi1leHA8L2NvZGU+LCBhbmQgY2FuCisgICogYXBwbHkgdG8gemVyby4KKyAgKgorICAqIE5vdGUgdGhhdCB0aGlzIHByb3BlcnR5IGNhbiBoYXZlIGEgdmFsdWUgbGVzcyB0aGFuIE1pbkV4cCB3aGVuCisgICogdGhlIG1hbnRpc3NhIGhhcyBtb3JlIHRoYW4gb25lIGRpZ2l0LgorICAqCisgICogQHNlcmlhbAorICAqLworIHByaXZhdGUgaW50IGV4cDsKKyAvLyBhc3N1bWVkIDAKKyAKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgLyogQ29uc3RydWN0b3JzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKioKKyAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0IGZyb20gYQorICAqIDxjb2RlPmphdmEubWF0aC5CaWdEZWNpbWFsPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gYXMgdGhvdWdoIHRoZSBwYXJhbWV0ZXIgaGFkCisgICogYmVlbiByZXByZXNlbnRlZCBhcyBhIDxjb2RlPlN0cmluZzwvY29kZT4gKHVzaW5nIGl0cworICAqIDxjb2RlPnRvU3RyaW5nPC9jb2RlPiBtZXRob2QpIGFuZCB0aGUKKyAgKiB7QGxpbmsgI0JpZ0RlY2ltYWwoamF2YS5sYW5nLlN0cmluZyl9IGNvbnN0cnVjdG9yIGhhZCB0aGVuIGJlZW4KKyAgKiB1c2VkLgorICAqIFRoZSBwYXJhbWV0ZXIgbXVzdCBub3QgYmUgPGNvZGU+bnVsbDwvY29kZT4uCisgICogPHA+CisgICogPGk+KE5vdGU6IHRoaXMgY29uc3RydWN0b3IgaXMgcHJvdmlkZWQgb25seSBpbiB0aGUKKyAgKiA8Y29kZT5jb20uaWJtLmljdS5tYXRoPC9jb2RlPiB2ZXJzaW9uIG9mIHRoZSBCaWdEZWNpbWFsIGNsYXNzLgorICAqIEl0IHdvdWxkIG5vdCBiZSBwcmVzZW50IGluIGEgPGNvZGU+amF2YS5tYXRoPC9jb2RlPiB2ZXJzaW9uLik8L2k+CisgICoKKyAgKiBAcGFyYW0gYmQgVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHRvIGJlIHRyYW5zbGF0ZWQuCisgICogQHNpbmNlIElCTSBKREsgMS4xLjgKKyAgKi8KKyAKKyBwdWJsaWMgQmlnRGVjaW1hbChqYXZhLm1hdGguQmlnRGVjaW1hbCBiZCl7CisgIHRoaXMoYmQudG9TdHJpbmcoKSk7CisgIHJldHVybjt9CisKKyAvKioKKyAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0IGZyb20gYQorICAqIDxjb2RlPkJpZ0ludGVnZXI8L2NvZGU+LCB3aXRoIHNjYWxlIDAuCisgICogPHA+CisgICogQ29uc3RydWN0cyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdoaWNoIGlzIHRoZSBleGFjdCBkZWNpbWFsCisgICogcmVwcmVzZW50YXRpb24gb2YgdGhlIDxjb2RlPkJpZ0ludGVnZXI8L2NvZGU+LCB3aXRoIGEgc2NhbGUgb2YKKyAgKiB6ZXJvLgorICAqIFRoZSB2YWx1ZSBvZiB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaXMgaWRlbnRpY2FsIHRvIHRoZSB2YWx1ZQorICAqIG9mIHRoZSA8Y29kZT5CaWdJbnRlZ2VyPC9jb2RlPi4KKyAgKiBUaGUgcGFyYW1ldGVyIG11c3Qgbm90IGJlIDxjb2RlPm51bGw8L2NvZGU+LgorICAqIDxwPgorICAqIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aWxsIGNvbnRhaW4gb25seSBkZWNpbWFsIGRpZ2l0cywKKyAgKiBwcmVmaXhlZCB3aXRoIGEgbGVhZGluZyBtaW51cyBzaWduIChoeXBoZW4pIGlmIHRoZQorICAqIDxjb2RlPkJpZ0ludGVnZXI8L2NvZGU+IGlzIG5lZ2F0aXZlLiAgQSBsZWFkaW5nIHplcm8gd2lsbCBiZQorICAqIHByZXNlbnQgb25seSBpZiB0aGUgPGNvZGU+QmlnSW50ZWdlcjwvY29kZT4gaXMgemVyby4KKyAgKgorICAqIEBwYXJhbSBiaSBUaGUgPGNvZGU+QmlnSW50ZWdlcjwvY29kZT4gdG8gYmUgY29udmVydGVkLgorICAqLworIAorIHB1YmxpYyBCaWdEZWNpbWFsKGphdmEubWF0aC5CaWdJbnRlZ2VyIGJpKXsKKyAgdGhpcyhiaS50b1N0cmluZygxMCkpOworICByZXR1cm47fQorIC8vIGV4cCByZW1haW5zIDAKKyAKKyAvKioKKyAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0IGZyb20gYQorICAqIDxjb2RlPkJpZ0ludGVnZXI8L2NvZGU+IGFuZCBhIHNjYWxlLgorICAqIDxwPgorICAqIENvbnN0cnVjdHMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aGljaCBpcyB0aGUgZXhhY3QgZGVjaW1hbAorICAqIHJlcHJlc2VudGF0aW9uIG9mIHRoZSA8Y29kZT5CaWdJbnRlZ2VyPC9jb2RlPiwgc2NhbGVkIGJ5IHRoZQorICAqIHNlY29uZCBwYXJhbWV0ZXIsIHdoaWNoIG1heSBub3QgYmUgbmVnYXRpdmUuCisgICogVGhlIHZhbHVlIG9mIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBpcyB0aGUKKyAgKiA8Y29kZT5CaWdJbnRlZ2VyPC9jb2RlPiBkaXZpZGVkIGJ5IHRlbiB0byB0aGUgcG93ZXIgb2YgdGhlIHNjYWxlLgorICAqIFRoZSA8Y29kZT5CaWdJbnRlZ2VyPC9jb2RlPiBwYXJhbWV0ZXIgbXVzdCBub3QgYmUKKyAgKiA8Y29kZT5udWxsPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2lsbCBjb250YWluIG9ubHkgZGVjaW1hbCBkaWdpdHMsICh3aXRoCisgICogYW4gZW1iZWRkZWQgZGVjaW1hbCBwb2ludCBmb2xsb3dlZCBieSA8Y29kZT5zY2FsZTwvY29kZT4gZGVjaW1hbAorICAqIGRpZ2l0cyBpZiB0aGUgc2NhbGUgaXMgcG9zaXRpdmUpLCBwcmVmaXhlZCB3aXRoIGEgbGVhZGluZyBtaW51cworICAqIHNpZ24gKGh5cGhlbikgaWYgdGhlIDxjb2RlPkJpZ0ludGVnZXI8L2NvZGU+IGlzIG5lZ2F0aXZlLiAgQQorICAqIGxlYWRpbmcgemVybyB3aWxsIGJlIHByZXNlbnQgb25seSBpZiB0aGUgPGNvZGU+QmlnSW50ZWdlcjwvY29kZT4gaXMKKyAgKiB6ZXJvLgorICAqCisgICogQHBhcmFtICBiaSAgICBUaGUgPGNvZGU+QmlnSW50ZWdlcjwvY29kZT4gdG8gYmUgY29udmVydGVkLgorICAqIEBwYXJhbSAgc2NhbGUgVGhlIDxjb2RlPmludDwvY29kZT4gc3BlY2lmeWluZyB0aGUgc2NhbGUuCisgICogQHRocm93cyBOdW1iZXJGb3JtYXRFeGNlcHRpb24gaWYgdGhlIHNjYWxlIGlzIG5lZ2F0aXZlLgorICAqLworIAorIHB1YmxpYyBCaWdEZWNpbWFsKGphdmEubWF0aC5CaWdJbnRlZ2VyIGJpLGludCBzY2FsZSl7CisgIHRoaXMoYmkudG9TdHJpbmcoMTApKTsKKyAgaWYgKHNjYWxlPDApIAorICAgdGhyb3cgbmV3IGphdmEubGFuZy5OdW1iZXJGb3JtYXRFeGNlcHRpb24oIk5lZ2F0aXZlIHNjYWxlOiIrIiAiK3NjYWxlKTsKKyAgZXhwPShpbnQpLXNjYWxlOyAvLyBleHBvbmVudCBpcyAtc2NhbGUKKyAgcmV0dXJuO30KKworIC8qKgorICAqIENvbnN0cnVjdHMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3QgZnJvbSBhbiBhcnJheSBvZiBjaGFyYWN0ZXJzLgorICAqIDxwPgorICAqIENvbnN0cnVjdHMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBhcyB0aG91Z2ggYQorICAqIDxjb2RlPlN0cmluZzwvY29kZT4gaGFkIGJlZW4gY29uc3RydWN0ZWQgZnJvbSB0aGUgY2hhcmFjdGVyIGFycmF5CisgICogYW5kIHRoZSB7QGxpbmsgI0JpZ0RlY2ltYWwoamF2YS5sYW5nLlN0cmluZyl9IGNvbnN0cnVjdG9yIGhhZCB0aGVuCisgICogYmVlbiB1c2VkLiBUaGUgcGFyYW1ldGVyIG11c3Qgbm90IGJlIDxjb2RlPm51bGw8L2NvZGU+LgorICAqIDxwPgorICAqIFVzaW5nIHRoaXMgY29uc3RydWN0b3IgaXMgZmFzdGVyIHRoYW4gdXNpbmcgdGhlCisgICogPGNvZGU+QmlnRGVjaW1hbChTdHJpbmcpPC9jb2RlPiBjb25zdHJ1Y3RvciBpZiB0aGUgc3RyaW5nIGlzCisgICogYWxyZWFkeSBhdmFpbGFibGUgaW4gY2hhcmFjdGVyIGFycmF5IGZvcm0uCisgICoKKyAgKiBAcGFyYW0gaW5jaGFycyBUaGUgPGNvZGU+Y2hhcltdPC9jb2RlPiBhcnJheSBjb250YWluaW5nIHRoZSBudW1iZXIKKyAgKiAgICAgICAgICAgICAgICB0byBiZSBjb252ZXJ0ZWQuCisgICogQHRocm93cyBOdW1iZXJGb3JtYXRFeGNlcHRpb24gaWYgdGhlIHBhcmFtZXRlciBpcyBub3QgYSB2YWxpZAorICAqICAgICAgICAgICAgICAgIG51bWJlci4KKyAgKiBAc2luY2UgSUJNIEpESyAxLjEuOAorICAqLworIAorIHB1YmxpYyBCaWdEZWNpbWFsKGNoYXIgaW5jaGFyc1tdKXsKKyAgdGhpcyhpbmNoYXJzLDAsaW5jaGFycy5sZW5ndGgpOworICByZXR1cm47fQorCisgLyoqCisgICogQ29uc3RydWN0cyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9iamVjdCBmcm9tIGFuIGFycmF5IG9mIGNoYXJhY3RlcnMuCisgICogPHA+CisgICogQ29uc3RydWN0cyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGFzIHRob3VnaCBhCisgICogPGNvZGU+U3RyaW5nPC9jb2RlPiBoYWQgYmVlbiBjb25zdHJ1Y3RlZCBmcm9tIHRoZSBjaGFyYWN0ZXIgYXJyYXkKKyAgKiAob3IgYSBzdWJhcnJheSBvZiB0aGF0IGFycmF5KSBhbmQgdGhlCisgICoge0BsaW5rICNCaWdEZWNpbWFsKGphdmEubGFuZy5TdHJpbmcpfSBjb25zdHJ1Y3RvciBoYWQgdGhlbiBiZWVuCisgICogdXNlZC4gVGhlIGZpcnN0IHBhcmFtZXRlciBtdXN0IG5vdCBiZSA8Y29kZT5udWxsPC9jb2RlPiwgYW5kIHRoZQorICAqIHN1YmFycmF5IG11c3QgYmUgd2hvbGx5IGNvbnRhaW5lZCB3aXRoaW4gaXQuCisgICogPHA+CisgICogVXNpbmcgdGhpcyBjb25zdHJ1Y3RvciBpcyBmYXN0ZXIgdGhhbiB1c2luZyB0aGUKKyAgKiA8Y29kZT5CaWdEZWNpbWFsKFN0cmluZyk8L2NvZGU+IGNvbnN0cnVjdG9yIGlmIHRoZSBzdHJpbmcgaXMKKyAgKiBhbHJlYWR5IGF2YWlsYWJsZSB3aXRoaW4gYSBjaGFyYWN0ZXIgYXJyYXkuCisgICoKKyAgKiBAcGFyYW0gaW5jaGFycyBUaGUgPGNvZGU+Y2hhcltdPC9jb2RlPiBhcnJheSBjb250YWluaW5nIHRoZSBudW1iZXIKKyAgKiAgICAgICAgICAgICAgICB0byBiZSBjb252ZXJ0ZWQuCisgICogQHBhcmFtIG9mZnNldCAgVGhlIDxjb2RlPmludDwvY29kZT4gb2Zmc2V0IGludG8gdGhlIGFycmF5IG9mIHRoZQorICAqICAgICAgICAgICAgICAgIHN0YXJ0IG9mIHRoZSBudW1iZXIgdG8gYmUgY29udmVydGVkLgorICAqIEBwYXJhbSBsZW5ndGggIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IGxlbmd0aCBvZiB0aGUgbnVtYmVyLgorICAqIEB0aHJvd3MgTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGlmIHRoZSBwYXJhbWV0ZXIgaXMgbm90IGEgdmFsaWQKKyAgKiAgICAgICAgICAgICAgICBudW1iZXIgZm9yIGFueSByZWFzb24uCisgICogQHNpbmNlIElCTSBKREsgMS4xLjgKKyAgKi8KKyAKKyBwdWJsaWMgQmlnRGVjaW1hbChjaGFyIGluY2hhcnNbXSxpbnQgb2Zmc2V0LGludCBsZW5ndGgpe3N1cGVyKCk7CisgIGJvb2xlYW4gZXhvdGljOworICBib29sZWFuIGhhZGV4cDsKKyAgaW50IGQ7CisgIGludCBkb3RvZmY7CisgIGludCBsYXN0OworICBpbnQgaT0wOworICBjaGFyIHNpPTA7CisgIGJvb2xlYW4gZW5lZz1mYWxzZTsKKyAgaW50IGs9MDsKKyAgaW50IGVsZW49MDsKKyAgaW50IGo9MDsKKyAgY2hhciBzaj0wOworICBpbnQgZHZhbHVlPTA7CisgIGludCBtYWc9MDsKKyAgLy8gVGhpcyBpcyB0aGUgcHJpbWFyeSBjb25zdHJ1Y3RvcjsgYWxsIGluY29taW5nIHN0cmluZ3MgZW5kIHVwCisgIC8vIGhlcmU7IGl0IHVzZXMgZXhwbGljaXQgKGlubGluZSkgcGFyc2luZyBmb3Igc3BlZWQgYW5kIHRvIGF2b2lkCisgIC8vIGdlbmVyYXRpbmcgaW50ZXJtZWRpYXRlICh0ZW1wb3JhcnkpIG9iamVjdHMgb2YgYW55IGtpbmQuCisgIC8vIDE5OTguMDYuMjU6IGV4cG9uZW50IGZvcm0gYnVpbHQgb25seSBpZiBFL2UgaW4gc3RyaW5nCisgIC8vIDE5OTguMDYuMjU6IHRyYWlsaW5nIHplcm9zIG5vdCByZW1vdmVkIGZvciB6ZXJvCisgIC8vIDE5OTkuMDMuMDY6IG5vIGVtYmVkZGVkIGJsYW5rczsgYWxsb3cgb2Zmc2V0IGFuZCBsZW5ndGgKKyAgaWYgKGxlbmd0aDw9MCkgCisgICBiYWQoaW5jaGFycyk7IC8vIGJhZCBjb252ZXJzaW9uIChlbXB0eSBzdHJpbmcpCisgIC8vIFtiYWQgb2Zmc2V0IHdpbGwgcmFpc2UgYXJyYXkgYm91bmRzIGV4Y2VwdGlvbl0KKyAgCisgIC8qIEhhbmRsZSBhbmQgc3RlcCBwYXN0IHNpZ24gKi8KKyAgaW5kPWlzcG9zOyAvLyBhc3N1bWUgcG9zaXRpdmUKKyAgaWYgKGluY2hhcnNbMF09PSgnLScpKSAKKyAgIHsKKyAgICBsZW5ndGgtLTsKKyAgICBpZiAobGVuZ3RoPT0wKSAKKyAgICAgYmFkKGluY2hhcnMpOyAvLyBub3RoaW5nIGFmdGVyIHNpZ24KKyAgICBpbmQ9aXNuZWc7CisgICAgb2Zmc2V0Kys7CisgICB9CisgIGVsc2UgCisgICBpZiAoaW5jaGFyc1swXT09KCcrJykpIAorICAgIHsKKyAgICAgbGVuZ3RoLS07CisgICAgIGlmIChsZW5ndGg9PTApIAorICAgICAgYmFkKGluY2hhcnMpOyAvLyBub3RoaW5nIGFmdGVyIHNpZ24KKyAgICAgb2Zmc2V0Kys7CisgICAgfQorICAKKyAgLyogV2UncmUgYXQgdGhlIHN0YXJ0IG9mIHRoZSBudW1iZXIgKi8KKyAgZXhvdGljPWZhbHNlOyAvLyBoYXZlIGV4dHJhIGRpZ2l0cworICBoYWRleHA9ZmFsc2U7IC8vIGhhZCBleHBsaWNpdCBleHBvbmVudAorICBkPTA7IC8vIGNvdW50IG9mIGRpZ2l0cyBmb3VuZAorICBkb3RvZmY9LTE7IC8vIG9mZnNldCB3aGVyZSBkb3Qgd2FzIGZvdW5kCisgIGxhc3Q9LTE7IC8vIGxhc3QgY2hhcmFjdGVyIG9mIG1hbnRpc3NhCisgIHtpbnQgJDE9bGVuZ3RoO2k9b2Zmc2V0O2k6Zm9yKDskMT4wOyQxLS0saSsrKXsKKyAgIHNpPWluY2hhcnNbaV07CisgICBpZiAoc2k+PScwJykgIC8vIHRlc3QgZm9yIEFyYWJpYyBkaWdpdAorICAgIGlmIChzaTw9JzknKSAKKyAgICAgeworICAgICAgbGFzdD1pOworICAgICAgZCsrOyAvLyBzdGlsbCBpbiBtYW50aXNzYQorICAgICAgY29udGludWUgaTsKKyAgICAgfQorICAgaWYgKHNpPT0nLicpIAorICAgIHsgLy8gcmVjb3JkIGFuZCBpZ25vcmUKKyAgICAgaWYgKGRvdG9mZj49MCkgCisgICAgICBiYWQoaW5jaGFycyk7IC8vIHR3byBkb3RzCisgICAgIGRvdG9mZj1pLW9mZnNldDsgLy8gb2Zmc2V0IGludG8gbWFudGlzc2EKKyAgICAgY29udGludWUgaTsKKyAgICB9CisgICBpZiAoc2khPSdlJykgCisgICAgaWYgKHNpIT0nRScpIAorICAgICB7IC8vIGV4cGVjdCBhbiBleHRyYSBkaWdpdAorICAgICAgaWYgKCghKGphdmEubGFuZy5DaGFyYWN0ZXIuaXNEaWdpdChzaSkpKSkgCisgICAgICAgYmFkKGluY2hhcnMpOyAvLyBub3QgYSBudW1iZXIKKyAgICAgIC8vIGRlZmVyIHRoZSBiYXNlIDEwIGNoZWNrIHVudGlsIGxhdGVyIHRvIGF2b2lkIGV4dHJhIG1ldGhvZCBjYWxsCisgICAgICBleG90aWM9dHJ1ZTsgLy8gd2lsbCBuZWVkIGNvbnZlcnNpb24gbGF0ZXIKKyAgICAgIGxhc3Q9aTsKKyAgICAgIGQrKzsgLy8gc3RpbGwgaW4gbWFudGlzc2EKKyAgICAgIGNvbnRpbnVlIGk7CisgICAgIH0KKyAgIC8qIEZvdW5kICdlJyBvciAnRScgLS0gbm93IHByb2Nlc3MgZXhwbGljaXQgZXhwb25lbnQgKi8KKyAgIC8vIDE5OTguMDcuMTE6IHNpZ24gbm8gbG9uZ2VyIHJlcXVpcmVkCisgICBpZiAoKGktb2Zmc2V0KT4obGVuZ3RoLTIpKSAKKyAgICBiYWQoaW5jaGFycyk7IC8vIG5vIHJvb20gZm9yIGV2ZW4gb25lIGRpZ2l0CisgICBlbmVnPWZhbHNlOworICAgaWYgKChpbmNoYXJzW2krMV0pPT0oJy0nKSkgCisgICAgeworICAgICBlbmVnPXRydWU7CisgICAgIGs9aSsyOworICAgIH0KKyAgIGVsc2UgCisgICAgaWYgKChpbmNoYXJzW2krMV0pPT0oJysnKSkgCisgICAgIGs9aSsyOworICAgIGVsc2UgCisgICAgIGs9aSsxOworICAgLy8gayBpcyBvZmZzZXQgb2YgZmlyc3QgZXhwZWN0ZWQgZGlnaXQKKyAgIGVsZW49bGVuZ3RoLSgoay1vZmZzZXQpKTsgLy8gcG9zc2libGUgbnVtYmVyIG9mIGRpZ2l0cworICAgaWYgKChlbGVuPT0wKXwoZWxlbj45KSkgCisgICAgYmFkKGluY2hhcnMpOyAvLyAwIG9yIG1vcmUgdGhhbiA5IGRpZ2l0cworICAge2ludCAkMj1lbGVuO2o9aztqOmZvcig7JDI+MDskMi0tLGorKyl7CisgICAgc2o9aW5jaGFyc1tqXTsKKyAgICBpZiAoc2o8JzAnKSAKKyAgICAgYmFkKGluY2hhcnMpOyAvLyBhbHdheXMgYmFkCisgICAgaWYgKHNqPic5JykgCisgICAgIHsgLy8gbWF5YmUgYW4gZXhvdGljIGRpZ2l0CisgICAgICBpZiAoKCEoamF2YS5sYW5nLkNoYXJhY3Rlci5pc0RpZ2l0KHNqKSkpKSAKKyAgICAgICBiYWQoaW5jaGFycyk7IC8vIG5vdCBhIG51bWJlcgorICAgICAgZHZhbHVlPWphdmEubGFuZy5DaGFyYWN0ZXIuZGlnaXQoc2osMTApOyAvLyBjaGVjayBiYXNlCisgICAgICBpZiAoZHZhbHVlPDApIAorICAgICAgIGJhZChpbmNoYXJzKTsgLy8gbm90IGJhc2UgMTAKKyAgICAgfQorICAgIGVsc2UgCisgICAgIGR2YWx1ZT0oKGludCkoc2opKS0oKGludCkoJzAnKSk7CisgICAgZXhwPShleHAqMTApK2R2YWx1ZTsKKyAgICB9CisgICB9LypqKi8KKyAgIGlmIChlbmVnKSAKKyAgICBleHA9KGludCktZXhwOyAvLyB3YXMgbmVnYXRpdmUKKyAgIGhhZGV4cD10cnVlOyAvLyByZW1lbWJlciB3ZSBoYWQgb25lCisgICBicmVhayBpOyAvLyB3ZSBhcmUgZG9uZQorICAgfQorICB9LyppKi8KKyAgCisgIC8qIEhlcmUgd2hlbiBhbGwgaW5zcGVjdGVkICovCisgIGlmIChkPT0wKSAKKyAgIGJhZChpbmNoYXJzKTsgLy8gbm8gbWFudGlzc2EgZGlnaXRzCisgIGlmIChkb3RvZmY+PTApIAorICAgZXhwPShleHArZG90b2ZmKS1kOyAvLyBhZGp1c3QgZXhwb25lbnQgaWYgaGFkIGRvdAorICAKKyAgLyogc3RyaXAgbGVhZGluZyB6ZXJvcy9kb3QgKGxlYXZlIGZpbmFsIGlmIGFsbCAwJ3MpICovCisgIHtpbnQgJDM9bGFzdC0xO2k9b2Zmc2V0O2k6Zm9yKDtpPD0kMztpKyspeworICAgc2k9aW5jaGFyc1tpXTsKKyAgIGlmIChzaT09JzAnKSAKKyAgICB7CisgICAgIG9mZnNldCsrOworICAgICBkb3RvZmYtLTsKKyAgICAgZC0tOworICAgIH0KKyAgIGVsc2UgCisgICAgaWYgKHNpPT0nLicpIAorICAgICB7CisgICAgICBvZmZzZXQrKzsgLy8gc3RlcCBwYXN0IGRvdAorICAgICAgZG90b2ZmLS07CisgICAgIH0KKyAgICBlbHNlIAorICAgICBpZiAoc2k8PSc5JykgCisgICAgICBicmVhayBpOy8qIG5vbi0wICovCisgICAgIGVsc2UgCisgICAgICB7LyogZXhvdGljICovCisgICAgICAgaWYgKChqYXZhLmxhbmcuQ2hhcmFjdGVyLmRpZ2l0KHNpLDEwKSkhPTApIAorICAgICAgICBicmVhayBpOyAvLyBub24tMCBvciBiYWQKKyAgICAgICAvLyBpcyAwIC4uIHN0cmlwIGxpa2UgJzAnCisgICAgICAgb2Zmc2V0Kys7CisgICAgICAgZG90b2ZmLS07CisgICAgICAgZC0tOworICAgICAgfQorICAgfQorICB9LyppKi8KKyAgCisgIC8qIENyZWF0ZSB0aGUgbWFudGlzc2EgYXJyYXkgKi8KKyAgbWFudD1uZXcgYnl0ZVtkXTsgLy8gd2Uga25vdyB0aGUgbGVuZ3RoCisgIGo9b2Zmc2V0OyAvLyBpbnB1dCBvZmZzZXQKKyAgaWYgKGV4b3RpYykgCisgICB7ZXhvdGljYTpkb3sgLy8gc2xvdzogY2hlY2sgZm9yIGV4b3RpY2EKKyAgICB7aW50ICQ0PWQ7aT0wO2k6Zm9yKDskND4wOyQ0LS0saSsrKXsKKyAgICAgaWYgKGk9PWRvdG9mZikgCisgICAgICBqKys7IC8vIGF0IGRvdAorICAgICBzaj1pbmNoYXJzW2pdOworICAgICBpZiAoc2o8PSc5JykgCisgICAgICBtYW50W2ldPShieXRlKSgoKGludCkoc2opKS0oKGludCkoJzAnKSkpOy8qIGVhc3kgKi8KKyAgICAgZWxzZSAKKyAgICAgIHsKKyAgICAgICBkdmFsdWU9amF2YS5sYW5nLkNoYXJhY3Rlci5kaWdpdChzaiwxMCk7CisgICAgICAgaWYgKGR2YWx1ZTwwKSAKKyAgICAgICAgYmFkKGluY2hhcnMpOyAvLyBub3QgYSBudW1iZXIgYWZ0ZXIgYWxsCisgICAgICAgbWFudFtpXT0oYnl0ZSlkdmFsdWU7CisgICAgICB9CisgICAgIGorKzsKKyAgICAgfQorICAgIH0vKmkqLworICAgfXdoaWxlKGZhbHNlKTt9LypleG90aWNhKi8KKyAgZWxzZSAKKyAgIHtzaW1wbGU6ZG97CisgICAge2ludCAkNT1kO2k9MDtpOmZvcig7JDU+MDskNS0tLGkrKyl7CisgICAgIGlmIChpPT1kb3RvZmYpIAorICAgICAgaisrOworICAgICBtYW50W2ldPShieXRlKSgoKGludCkoaW5jaGFyc1tqXSkpLSgoaW50KSgnMCcpKSk7CisgICAgIGorKzsKKyAgICAgfQorICAgIH0vKmkqLworICAgfXdoaWxlKGZhbHNlKTt9LypzaW1wbGUqLworICAKKyAgLyogTG9va3MgZ29vZC4gIFNldCB0aGUgc2lnbiBpbmRpY2F0b3IgYW5kIGZvcm0sIGFzIG5lZWRlZC4gKi8KKyAgLy8gVHJhaWxpbmcgemVyb3MgYXJlIHByZXNlcnZlZAorICAvLyBUaGUgcnVsZSBoZXJlIGZvciBmb3JtIGlzOgorICAvLyAgIElmIG5vIEUtbm90YXRpb24sIHRoZW4gcmVxdWVzdCBwbGFpbiBub3RhdGlvbgorICAvLyAgIE90aGVyd2lzZSBhY3QgYXMgdGhvdWdoIGFkZCgwLERFRkFVTFQpIGFuZCByZXF1ZXN0IHNjaWVudGlmaWMgbm90YXRpb24KKyAgLy8gW2Zvcm0gaXMgYWxyZWFkeSBQTEFJTl0KKyAgaWYgKG1hbnRbMF09PTApIAorICAgeworICAgIGluZD1pc3plcm87IC8vIGZvcmNlIHRvIHNob3cgemVybworICAgIC8vIG5lZ2F0aXZlIGV4cG9uZW50IGlzIHNpZ25pZmljYW50IChlLmcuLCAtMyBmb3IgMC4wMDApIGlmIHBsYWluCisgICAgaWYgKGV4cD4wKSAKKyAgICAgZXhwPTA7IC8vIHBvc2l0aXZlIGV4cG9uZW50IGNhbiBiZSBpZ25vcmVkCisgICAgaWYgKGhhZGV4cCkgCisgICAgIHsgLy8gemVybyBiZWNvbWVzIHNpbmdsZSBkaWdpdCBmcm9tIGFkZAorICAgICAgbWFudD1aRVJPLm1hbnQ7CisgICAgICBleHA9MDsKKyAgICAgfQorICAgfQorICBlbHNlIAorICAgeyAvLyBub24temVybworICAgIC8vIFtpbmQgd2FzIHNldCBlYXJsaWVyXQorICAgIC8vIG5vdyBkZXRlcm1pbmUgZm9ybQorICAgIGlmIChoYWRleHApIAorICAgICB7CisgICAgICBmb3JtPShieXRlKWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuU0NJRU5USUZJQzsKKyAgICAgIC8vIDE5OTkuMDYuMjkgY2hlY2sgZm9yIG92ZXJmbG93CisgICAgICBtYWc9KGV4cCttYW50Lmxlbmd0aCktMTsgLy8gdHJ1ZSBleHBvbmVudCBpbiBzY2llbnRpZmljIG5vdGF0aW9uCisgICAgICBpZiAoKG1hZzxNaW5FeHApfChtYWc+TWF4RXhwKSkgCisgICAgICAgYmFkKGluY2hhcnMpOworICAgICB9CisgICB9CisgIC8vIHNheSAnQkQoY1tdKTogbWFudFswXSBtYW50bGVuIGV4cCBpbmQgZm9ybTonIG1hbnRbMF0gbWFudC5sZW5ndGggZXhwIGluZCBmb3JtCisgIHJldHVybjsKKyAgfQorCisgLyoqCisgICogQ29uc3RydWN0cyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9iamVjdCBkaXJlY3RseSBmcm9tIGEKKyAgKiA8Y29kZT5kb3VibGU8L2NvZGU+LgorICAqIDxwPgorICAqIENvbnN0cnVjdHMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aGljaCBpcyB0aGUgZXhhY3QgZGVjaW1hbAorICAqIHJlcHJlc2VudGF0aW9uIG9mIHRoZSA2NC1iaXQgc2lnbmVkIGJpbmFyeSBmbG9hdGluZyBwb2ludAorICAqIHBhcmFtZXRlci4KKyAgKiA8cD4KKyAgKiBOb3RlIHRoYXQgdGhpcyBjb25zdHJ1Y3RvciBpdCBhbiBleGFjdCBjb252ZXJzaW9uOyBpdCBkb2VzIG5vdCBnaXZlCisgICogdGhlIHNhbWUgcmVzdWx0IGFzIGNvbnZlcnRpbmcgPGNvZGU+bnVtPC9jb2RlPiB0byBhCisgICogPGNvZGU+U3RyaW5nPC9jb2RlPiB1c2luZyB0aGUgPGNvZGU+RG91YmxlLnRvU3RyaW5nKCk8L2NvZGU+IG1ldGhvZAorICAqIGFuZCB0aGVuIHVzaW5nIHRoZSB7QGxpbmsgI0JpZ0RlY2ltYWwoamF2YS5sYW5nLlN0cmluZyl9CisgICogY29uc3RydWN0b3IuCisgICogVG8gZ2V0IHRoYXQgcmVzdWx0LCB1c2UgdGhlIHN0YXRpYyB7QGxpbmsgI3ZhbHVlT2YoZG91YmxlKX0KKyAgKiBtZXRob2QgdG8gY29uc3RydWN0IGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZnJvbSBhCisgICogPGNvZGU+ZG91YmxlPC9jb2RlPi4KKyAgKgorICAqIEBwYXJhbSBudW0gVGhlIDxjb2RlPmRvdWJsZTwvY29kZT4gdG8gYmUgY29udmVydGVkLgorICAqIEB0aHJvd3MgTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGlmIHRoZSBwYXJhbWV0ZXIgaXMgaW5maW5pdGUgb3IKKyAgKiAgICAgICAgICAgIG5vdCBhIG51bWJlci4KKyAgKi8KKyAKKyBwdWJsaWMgQmlnRGVjaW1hbChkb3VibGUgbnVtKXsKKyAgLy8gMTk5OS4wMy4wNjogdXNlIGV4YWN0bHkgdGhlIG9sZCBhbGdvcml0aG0KKyAgLy8gMjAwMC4wMS4wMTogbm90ZSB0aGF0IHRoaXMgY29uc3RydWN0b3IgZG9lcyBnaXZlIGFuIGV4YWN0IHJlc3VsdCwKKyAgLy8gICAgICAgICAgICAgc28gcGVyaGFwcyBpdCBzaG91bGQgbm90IGJlIGRlcHJlY2F0ZWQKKyAgLy8gMjAwMC4wNi4xODogbm8gbG9uZ2VyIGRlcHJlY2F0ZWQKKyAgdGhpcygobmV3IGphdmEubWF0aC5CaWdEZWNpbWFsKG51bSkpLnRvU3RyaW5nKCkpOworICByZXR1cm47fQorCisgLyoqCisgICogQ29uc3RydWN0cyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9iamVjdCBkaXJlY3RseSBmcm9tIGEKKyAgKiA8Y29kZT5pbnQ8L2NvZGU+LgorICAqIDxwPgorICAqIENvbnN0cnVjdHMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aGljaCBpcyB0aGUgZXhhY3QgZGVjaW1hbAorICAqIHJlcHJlc2VudGF0aW9uIG9mIHRoZSAzMi1iaXQgc2lnbmVkIGJpbmFyeSBpbnRlZ2VyIHBhcmFtZXRlci4KKyAgKiBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2lsbCBjb250YWluIG9ubHkgZGVjaW1hbCBkaWdpdHMsCisgICogcHJlZml4ZWQgd2l0aCBhIGxlYWRpbmcgbWludXMgc2lnbiAoaHlwaGVuKSBpZiB0aGUgcGFyYW1ldGVyIGlzCisgICogbmVnYXRpdmUuCisgICogQSBsZWFkaW5nIHplcm8gd2lsbCBiZSBwcmVzZW50IG9ubHkgaWYgdGhlIHBhcmFtZXRlciBpcyB6ZXJvLgorICAqCisgICogQHBhcmFtIG51bSBUaGUgPGNvZGU+aW50PC9jb2RlPiB0byBiZSBjb252ZXJ0ZWQuCisgICogQHNpbmNlIElCTSBKREsgMS4xLjgKKyAgKi8KKyAKKyBwdWJsaWMgQmlnRGVjaW1hbChpbnQgbnVtKXtzdXBlcigpOworICBpbnQgbXVuOworICBpbnQgaT0wOworICAvLyBXZSBmYXN0cGF0aCBjb21tb25lcnMKKyAgaWYgKG51bTw9OSkgCisgICBpZiAobnVtPj0oLTkpKSAKKyAgICB7c2luZ2xlZGlnaXQ6ZG97CisgICAgIC8vIHZlcnkgY29tbW9uIHNpbmdsZSBkaWdpdCBjYXNlCisgICAgIHsvKnNlbGVjdCovCisgICAgIGlmIChudW09PTApCisgICAgICB7CisgICAgICAgbWFudD1aRVJPLm1hbnQ7CisgICAgICAgaW5kPWlzemVybzsKKyAgICAgIH0KKyAgICAgZWxzZSBpZiAobnVtPT0xKQorICAgICAgeworICAgICAgIG1hbnQ9T05FLm1hbnQ7CisgICAgICAgaW5kPWlzcG9zOworICAgICAgfQorICAgICBlbHNlIGlmIChudW09PSgtMSkpCisgICAgICB7CisgICAgICAgbWFudD1PTkUubWFudDsKKyAgICAgICBpbmQ9aXNuZWc7CisgICAgICB9CisgICAgIGVsc2V7CisgICAgICB7CisgICAgICAgbWFudD1uZXcgYnl0ZVsxXTsKKyAgICAgICBpZiAobnVtPjApIAorICAgICAgICB7CisgICAgICAgICBtYW50WzBdPShieXRlKW51bTsKKyAgICAgICAgIGluZD1pc3BvczsKKyAgICAgICAgfQorICAgICAgIGVsc2UgCisgICAgICAgIHsgLy8gbnVtPC0xCisgICAgICAgICBtYW50WzBdPShieXRlKSgoaW50KS1udW0pOworICAgICAgICAgaW5kPWlzbmVnOworICAgICAgICB9CisgICAgICB9CisgICAgIH0KKyAgICAgfQorICAgICByZXR1cm47CisgICAgfXdoaWxlKGZhbHNlKTt9LypzaW5nbGVkaWdpdCovCisgIAorICAvKiBXZSB3b3JrIG9uIG5lZ2F0aXZlIG51bWJlcnMgc28gd2UgaGFuZGxlIHRoZSBtb3N0IG5lZ2F0aXZlIG51bWJlciAqLworICBpZiAobnVtPjApIAorICAgeworICAgIGluZD1pc3BvczsKKyAgICBudW09KGludCktbnVtOworICAgfQorICBlbHNlIAorICAgaW5kPWlzbmVnOy8qIG5lZ2F0aXZlICovIC8vIFswIGNhc2UgYWxyZWFkeSBoYW5kbGVkXQorICAvLyBbaXQgaXMgcXVpY2tlciwgaGVyZSwgdG8gcHJlLWNhbGN1bGF0ZSB0aGUgbGVuZ3RoIHdpdGgKKyAgLy8gb25lIGxvb3AsIHRoZW4gYWxsb2NhdGUgZXhhY3RseSB0aGUgcmlnaHQgbGVuZ3RoIG9mIGJ5dGUgYXJyYXksCisgIC8vIHRoZW4gcmUtZmlsbCBpdCB3aXRoIGFub3RoZXIgbG9vcF0KKyAgbXVuPW51bTsgLy8gd29ya2luZyBjb3B5CisgIHtpPTk7aTpmb3IoOztpLS0peworICAgbXVuPW11bi8xMDsKKyAgIGlmIChtdW49PTApIAorICAgIGJyZWFrIGk7CisgICB9CisgIH0vKmkqLworICAvLyBpIGlzIHRoZSBwb3NpdGlvbiBvZiB0aGUgbGVmdG1vc3QgZGlnaXQgcGxhY2VkCisgIG1hbnQ9bmV3IGJ5dGVbMTAtaV07CisgIHtpPSgxMC1pKS0xO2k6Zm9yKDs7aS0tKXsKKyAgIG1hbnRbaV09KGJ5dGUpLSgoKGJ5dGUpKG51bSUxMCkpKTsKKyAgIG51bT1udW0vMTA7CisgICBpZiAobnVtPT0wKSAKKyAgICBicmVhayBpOworICAgfQorICB9LyppKi8KKyAgcmV0dXJuOworICB9CisKKyAvKioKKyAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0IGRpcmVjdGx5IGZyb20gYQorICAqIDxjb2RlPmxvbmc8L2NvZGU+LgorICAqIDxwPgorICAqIENvbnN0cnVjdHMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aGljaCBpcyB0aGUgZXhhY3QgZGVjaW1hbAorICAqIHJlcHJlc2VudGF0aW9uIG9mIHRoZSA2NC1iaXQgc2lnbmVkIGJpbmFyeSBpbnRlZ2VyIHBhcmFtZXRlci4KKyAgKiBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2lsbCBjb250YWluIG9ubHkgZGVjaW1hbCBkaWdpdHMsCisgICogcHJlZml4ZWQgd2l0aCBhIGxlYWRpbmcgbWludXMgc2lnbiAoaHlwaGVuKSBpZiB0aGUgcGFyYW1ldGVyIGlzCisgICogbmVnYXRpdmUuCisgICogQSBsZWFkaW5nIHplcm8gd2lsbCBiZSBwcmVzZW50IG9ubHkgaWYgdGhlIHBhcmFtZXRlciBpcyB6ZXJvLgorICAqCisgICogQHBhcmFtIG51bSBUaGUgPGNvZGU+bG9uZzwvY29kZT4gdG8gYmUgY29udmVydGVkLgorICAqIEBzaW5jZSBJQk0gSkRLIDEuMS44CisgICovCisgCisgcHVibGljIEJpZ0RlY2ltYWwobG9uZyBudW0pe3N1cGVyKCk7CisgIGxvbmcgbXVuOworICBpbnQgaT0wOworICAvLyBOb3QgcmVhbGx5IHdvcnRoIGZhc3RwYXRoaW5nIGNvbW1vbmVycyBpbiB0aGlzIGNvbnN0cnVjdG9yIFthbHNvLAorICAvLyB3ZSB1c2UgdGhpcyB0byBjb25zdHJ1Y3QgdGhlIHN0YXRpYyBjb25zdGFudHNdLgorICAvLyBUaGlzIGlzIG11Y2ggZmFzdGVyIHRoYW46IHRoaXMoU3RyaW5nLnZhbHVlT2YobnVtKS50b0NoYXJBcnJheSgpKQorICAvKiBXZSB3b3JrIG9uIG5lZ2F0aXZlIG51bSBzbyB3ZSBoYW5kbGUgdGhlIG1vc3QgbmVnYXRpdmUgbnVtYmVyICovCisgIGlmIChudW0+MCkgCisgICB7CisgICAgaW5kPWlzcG9zOworICAgIG51bT0obG9uZyktbnVtOworICAgfQorICBlbHNlIAorICAgaWYgKG51bT09MCkgCisgICAgaW5kPWlzemVybzsKKyAgIGVsc2UgCisgICAgaW5kPWlzbmVnOy8qIG5lZ2F0aXZlICovCisgIG11bj1udW07CisgIHtpPTE4O2k6Zm9yKDs7aS0tKXsKKyAgIG11bj1tdW4vMTA7CisgICBpZiAobXVuPT0wKSAKKyAgICBicmVhayBpOworICAgfQorICB9LyppKi8KKyAgLy8gaSBpcyB0aGUgcG9zaXRpb24gb2YgdGhlIGxlZnRtb3N0IGRpZ2l0IHBsYWNlZAorICBtYW50PW5ldyBieXRlWzE5LWldOworICB7aT0oMTktaSktMTtpOmZvcig7O2ktLSl7CisgICBtYW50W2ldPShieXRlKS0oKChieXRlKShudW0lMTApKSk7CisgICBudW09bnVtLzEwOworICAgaWYgKG51bT09MCkgCisgICAgYnJlYWsgaTsKKyAgIH0KKyAgfS8qaSovCisgIHJldHVybjsKKyAgfQorCisgLyoqCisgICogQ29uc3RydWN0cyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9iamVjdCBmcm9tIGEgPGNvZGU+U3RyaW5nPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZnJvbSB0aGUgcGFyYW1ldGVyLCB3aGljaCBtdXN0CisgICogbm90IGJlIDxjb2RlPm51bGw8L2NvZGU+IGFuZCBtdXN0IHJlcHJlc2VudCBhIHZhbGlkIDxpPm51bWJlcjwvaT4sCisgICogYXMgZGVzY3JpYmVkIGZvcm1hbGx5IGluIHRoZSBkb2N1bWVudGF0aW9uIHJlZmVycmVkIHRvCisgICoge0BsaW5rIEJpZ0RlY2ltYWwgYWJvdmV9LgorICAqIDxwPgorICAqIEluIHN1bW1hcnksIG51bWJlcnMgaW4gPGNvZGU+U3RyaW5nPC9jb2RlPiBmb3JtIG11c3QgaGF2ZSBhdCBsZWFzdAorICAqIG9uZSBkaWdpdCwgbWF5IGhhdmUgYSBsZWFkaW5nIHNpZ24sIG1heSBoYXZlIGEgZGVjaW1hbCBwb2ludCwgYW5kCisgICogZXhwb25lbnRpYWwgbm90YXRpb24gbWF5IGJlIHVzZWQuICBUaGV5IGZvbGxvdyBjb252ZW50aW9uYWwgc3ludGF4LAorICAqIGFuZCBtYXkgbm90IGNvbnRhaW4gYmxhbmtzLgorICAqIDxwPgorICAqIFNvbWUgdmFsaWQgc3RyaW5ncyBmcm9tIHdoaWNoIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gbWlnaHQKKyAgKiBiZSBjb25zdHJ1Y3RlZCBhcmU6CisgICogPHByZT4KKyAgKiAgICAgICAiMCIgICAgICAgICAtLSBaZXJvCisgICogICAgICAiMTIiICAgICAgICAgLS0gQSB3aG9sZSBudW1iZXIKKyAgKiAgICAgIi03NiIgICAgICAgICAtLSBBIHNpZ25lZCB3aG9sZSBudW1iZXIKKyAgKiAgICAgICIxMi43MCIgICAgICAtLSBTb21lIGRlY2ltYWwgcGxhY2VzCisgICogICAgICIrMC4wMDMiICAgICAgLS0gUGx1cyBzaWduIGlzIGFsbG93ZWQKKyAgKiAgICAgICIxNy4iICAgICAgICAtLSBUaGUgc2FtZSBhcyAxNworICAqICAgICAgICAiLjUiICAgICAgIC0tIFRoZSBzYW1lIGFzIDAuNQorICAqICAgICAgIjRFKzkiICAgICAgIC0tIEV4cG9uZW50aWFsIG5vdGF0aW9uCisgICogICAgICAgIjAuNzNlLTciICAgLS0gRXhwb25lbnRpYWwgbm90YXRpb24KKyAgKiA8L3ByZT4KKyAgKiA8cD4KKyAgKiAoRXhwb25lbnRpYWwgbm90YXRpb24gbWVhbnMgdGhhdCB0aGUgbnVtYmVyIGluY2x1ZGVzIGFuIG9wdGlvbmFsCisgICogc2lnbiBhbmQgYSBwb3dlciBvZiB0ZW4gZm9sbG93aW5nIGFuICc8L2NvZGU+RTwvY29kZT4nIHRoYXQKKyAgKiBpbmRpY2F0ZXMgaG93IHRoZSBkZWNpbWFsIHBvaW50IHdpbGwgYmUgc2hpZnRlZC4gIFRodXMgdGhlCisgICogPGNvZGU+IjRFKzkiPC9jb2RlPiBhYm92ZSBpcyBqdXN0IGEgc2hvcnQgd2F5IG9mIHdyaXRpbmcKKyAgKiA8Y29kZT40MDAwMDAwMDAwPC9jb2RlPiwgYW5kIHRoZSA8Y29kZT4iMC43M2UtNyI8L2NvZGU+IGlzIHNob3J0CisgICogZm9yIDxjb2RlPjAuMDAwMDAwMDczPC9jb2RlPi4pCisgICogPHA+CisgICogVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGNvbnN0cnVjdGVkIGZyb20gdGhlIFN0cmluZyBpcyBpbiBhCisgICogc3RhbmRhcmQgZm9ybSwgd2l0aCBubyBibGFua3MsIGFzIHRob3VnaCB0aGUKKyAgKiB7QGxpbmsgI2FkZChCaWdEZWNpbWFsKX0gbWV0aG9kIGhhZCBiZWVuIHVzZWQgdG8gYWRkIHplcm8gdG8gdGhlCisgICogbnVtYmVyIHdpdGggdW5saW1pdGVkIHByZWNpc2lvbi4KKyAgKiBJZiB0aGUgc3RyaW5nIHVzZXMgZXhwb25lbnRpYWwgbm90YXRpb24gKHRoYXQgaXMsIGluY2x1ZGVzIGFuCisgICogPGNvZGU+ZTwvY29kZT4gb3IgYW4gPGNvZGU+RTwvY29kZT4pLCB0aGVuIHRoZQorICAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG51bWJlciB3aWxsIGJlIGV4cHJlc3NlZCBpbiBzY2llbnRpZmljCisgICogbm90YXRpb24gKHdoZXJlIHRoZSBwb3dlciBvZiB0ZW4gaXMgYWRqdXN0ZWQgc28gdGhlcmUgaXMgYSBzaW5nbGUKKyAgKiBub24temVybyBkaWdpdCB0byB0aGUgbGVmdCBvZiB0aGUgZGVjaW1hbCBwb2ludCk7IGluIHRoaXMgY2FzZSBpZgorICAqIHRoZSBudW1iZXIgaXMgemVybyB0aGVuIGl0IHdpbGwgYmUgZXhwcmVzc2VkIGFzIHRoZSBzaW5nbGUgZGlnaXQgMCwKKyAgKiBhbmQgaWYgbm9uLXplcm8gaXQgd2lsbCBoYXZlIGFuIGV4cG9uZW50IHVubGVzcyB0aGF0IGV4cG9uZW50IHdvdWxkCisgICogYmUgMC4gIFRoZSBleHBvbmVudCBtdXN0IGZpdCBpbiBuaW5lIGRpZ2l0cyBib3RoIGJlZm9yZSBhbmQgYWZ0ZXIgaXQKKyAgKiBpcyBleHByZXNzZWQgaW4gc2NpZW50aWZpYyBub3RhdGlvbi4KKyAgKiA8cD4KKyAgKiBBbnkgZGlnaXRzIGluIHRoZSBwYXJhbWV0ZXIgbXVzdCBiZSBkZWNpbWFsOyB0aGF0IGlzLAorICAqIDxjb2RlPkNoYXJhY3Rlci5kaWdpdChjLCAxMCk8L2NvZGU+ICh3aGVyZSA8L2NvZGU+YzwvY29kZT4gaXMgdGhlCisgICogY2hhcmFjdGVyIGluIHF1ZXN0aW9uKSB3b3VsZCBub3QgcmV0dXJuIC0xLgorICAqCisgICogQHBhcmFtIHN0cmluZyBUaGUgPGNvZGU+U3RyaW5nPC9jb2RlPiB0byBiZSBjb252ZXJ0ZWQuCisgICogQHRocm93cyBOdW1iZXJGb3JtYXRFeGNlcHRpb24gaWYgdGhlIHBhcmFtZXRlciBpcyBub3QgYSB2YWxpZAorICAqIG51bWJlci4KKyAgKi8KKyAKKyBwdWJsaWMgQmlnRGVjaW1hbChqYXZhLmxhbmcuU3RyaW5nIHN0cmluZyl7CisgIHRoaXMoc3RyaW5nLnRvQ2hhckFycmF5KCksMCxzdHJpbmcubGVuZ3RoKCkpOworICByZXR1cm47fQorCisgLyogPHNnbWw+IE1ha2UgYSBkZWZhdWx0IEJpZ0RlY2ltYWwgb2JqZWN0IGZvciBsb2NhbCB1c2UuIDwvc2dtbD4gKi8KKyAKKyBwcml2YXRlIEJpZ0RlY2ltYWwoKXtzdXBlcigpOworICByZXR1cm47CisgIH0KKworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAvKiBPcGVyYXRvciBtZXRob2RzIFttZXRob2RzIHdoaWNoIHRha2UgYSBjb250ZXh0IHBhcmFtZXRlcl0gICAgICAgICovCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKgorICAqIFJldHVybnMgYSBwbGFpbiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcyB0aGUgYWJzb2x1dGUKKyAgKiB2YWx1ZSBvZiB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LgorICAqIDxwPgorICAqIFRoZSBzYW1lIGFzIHtAbGluayAjYWJzKE1hdGhDb250ZXh0KX0sIHdoZXJlIHRoZSBjb250ZXh0IGlzCisgICogPGNvZGU+bmV3IE1hdGhDb250ZXh0KDAsIE1hdGhDb250ZXh0LlBMQUlOKTwvY29kZT4uCisgICogPHA+CisgICogVGhlIGxlbmd0aCBvZiB0aGUgZGVjaW1hbCBwYXJ0ICh0aGUgc2NhbGUpIG9mIHRoZSByZXN1bHQgd2lsbAorICAqIGJlIDxjb2RlPnRoaXMuc2NhbGUoKTwvY29kZT4KKyAgKgorICAqIEByZXR1cm4gQSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcyB0aGUgYWJzb2x1dGUKKyAgKiAgICAgICAgIHZhbHVlIG9mIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4uCisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBhYnMoKXsKKyAgcmV0dXJuIHRoaXMuYWJzKHBsYWluTUMpOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMgdGhlIGFic29sdXRlIHZhbHVlCisgICogb2YgdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBJZiB0aGUgY3VycmVudCBvYmplY3QgaXMgemVybyBvciBwb3NpdGl2ZSwgdGhlbiB0aGUgc2FtZSByZXN1bHQgYXMKKyAgKiBpbnZva2luZyB0aGUge0BsaW5rICNwbHVzKE1hdGhDb250ZXh0KX0gbWV0aG9kIHdpdGggdGhlIHNhbWUKKyAgKiBwYXJhbWV0ZXIgaXMgcmV0dXJuZWQuCisgICogT3RoZXJ3aXNlLCB0aGUgc2FtZSByZXN1bHQgYXMgaW52b2tpbmcgdGhlCisgICoge0BsaW5rICNuZWdhdGUoTWF0aENvbnRleHQpfSBtZXRob2Qgd2l0aCB0aGUgc2FtZSBwYXJhbWV0ZXIgaXMKKyAgKiByZXR1cm5lZC4KKyAgKgorICAqIEBwYXJhbSAgc2V0IFRoZSA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gYXJpdGhtZXRpYyBzZXR0aW5ncy4KKyAgKiBAcmV0dXJuICAgICBBIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzIHRoZSBhYnNvbHV0ZQorICAqICAgICAgICAgICAgIHZhbHVlIG9mIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4uCisgICogQHNpbmNlICBJQk0gSkRLIDEuMS44CisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBhYnMoY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBzZXQpeworICBpZiAodGhpcy5pbmQ9PWlzbmVnKSAKKyAgIHJldHVybiB0aGlzLm5lZ2F0ZShzZXQpOworICByZXR1cm4gdGhpcy5wbHVzKHNldCk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSBwbGFpbiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqIDxjb2RlPnRoaXMrcmhzPC9jb2RlPiwgdXNpbmcgZml4ZWQgcG9pbnQgYXJpdGhtZXRpYy4KKyAgKiA8cD4KKyAgKiBUaGUgc2FtZSBhcyB7QGxpbmsgI2FkZChCaWdEZWNpbWFsLCBNYXRoQ29udGV4dCl9LAorICAqIHdoZXJlIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBpcyA8Y29kZT5yaHM8L2NvZGU+LAorICAqIGFuZCB0aGUgY29udGV4dCBpcyA8Y29kZT5uZXcgTWF0aENvbnRleHQoMCwgTWF0aENvbnRleHQuUExBSU4pPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBUaGUgbGVuZ3RoIG9mIHRoZSBkZWNpbWFsIHBhcnQgKHRoZSBzY2FsZSkgb2YgdGhlIHJlc3VsdCB3aWxsIGJlCisgICogdGhlIG1heGltdW0gb2YgdGhlIHNjYWxlcyBvZiB0aGUgdHdvIG9wZXJhbmRzLgorICAqCisgICogQHBhcmFtICByaHMgVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGZvciB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mCisgICogICAgICAgICAgICAgdGhlIGFkZGl0aW9uLgorICAqIEByZXR1cm4gICAgIEEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiAgICAgICAgICAgICA8Y29kZT50aGlzK3JoczwvY29kZT4sIHVzaW5nIGZpeGVkIHBvaW50IGFyaXRobWV0aWMuCisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBhZGQoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyl7CisgIHJldHVybiB0aGlzLmFkZChyaHMscGxhaW5NQyk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcyA8Y29kZT50aGlzK3JoczwvY29kZT4uCisgICogPHA+CisgICogSW1wbGVtZW50cyB0aGUgYWRkaXRpb24gKDxiPjxjb2RlPis8L2NvZGU+PC9iPikgb3BlcmF0b3IKKyAgKiAoYXMgZGVmaW5lZCBpbiB0aGUgZGVjaW1hbCBkb2N1bWVudGF0aW9uLCBzZWUge0BsaW5rIEJpZ0RlY2ltYWwKKyAgKiBjbGFzcyBoZWFkZXJ9KSwKKyAgKiBhbmQgcmV0dXJucyB0aGUgcmVzdWx0IGFzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0LgorICAqCisgICogQHBhcmFtICByaHMgVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGZvciB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mCisgICogICAgICAgICAgICAgdGhlIGFkZGl0aW9uLgorICAqIEBwYXJhbSAgc2V0IFRoZSA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gYXJpdGhtZXRpYyBzZXR0aW5ncy4KKyAgKiBAcmV0dXJuICAgICBBIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogICAgICAgICAgICAgPGNvZGU+dGhpcytyaHM8L2NvZGU+LgorICAqIEBzaW5jZSAgSUJNIEpESyAxLjEuOAorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgYWRkKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByaHMsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBzZXQpeworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbGhzOworICBpbnQgcmVxZGlnOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmVzOworICBieXRlIHVzZWxbXTsKKyAgaW50IHVzZWxsZW47CisgIGJ5dGUgdXNlcltdOworICBpbnQgdXNlcmxlbjsKKyAgaW50IG5ld2xlbj0wOworICBpbnQgdGxlbj0wOworICBpbnQgbXVsdD0wOworICBieXRlIHRbXT1udWxsOworICBpbnQgaWE9MDsKKyAgaW50IGliPTA7CisgIGludCBlYT0wOworICBpbnQgZWI9MDsKKyAgYnl0ZSBjYT0wOworICBieXRlIGNiPTA7CisgIC8qIGRldGVybWluZSByZXF1ZXN0ZWQgZGlnaXRzIGFuZCBmb3JtICovCisgIGlmIChzZXQubG9zdERpZ2l0cykgCisgICBjaGVja2RpZ2l0cyhyaHMsc2V0LmRpZ2l0cyk7CisgIGxocz10aGlzOyAvLyBuYW1lIGZvciBjbGFyaXR5IGFuZCBwcm94eQorICAKKyAgLyogUXVpY2sgZXhpdCBmb3IgYWRkIGZsb2F0aW5nIDAgKi8KKyAgLy8gcGx1cygpIHdpbGwgb3B0aW1pemUgdG8gcmV0dXJuIHNhbWUgb2JqZWN0IGlmIHBvc3NpYmxlCisgIGlmIChsaHMuaW5kPT0wKSAKKyAgIGlmIChzZXQuZm9ybSE9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTikgCisgICAgcmV0dXJuIHJocy5wbHVzKHNldCk7CisgIGlmIChyaHMuaW5kPT0wKSAKKyAgIGlmIChzZXQuZm9ybSE9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTikgCisgICAgcmV0dXJuIGxocy5wbHVzKHNldCk7CisgIAorICAvKiBQcmVwYXJlIG51bWJlcnMgKHJvdW5kLCB1bmxlc3MgdW5saW1pdGVkIHByZWNpc2lvbikgKi8KKyAgcmVxZGlnPXNldC5kaWdpdHM7IC8vIGxvY2FsIGNvcHkgKGhlYXZpbHkgdXNlZCkKKyAgaWYgKHJlcWRpZz4wKSAKKyAgIHsKKyAgICBpZiAobGhzLm1hbnQubGVuZ3RoPnJlcWRpZykgCisgICAgIGxocz1jbG9uZShsaHMpLnJvdW5kKHNldCk7CisgICAgaWYgKHJocy5tYW50Lmxlbmd0aD5yZXFkaWcpIAorICAgICByaHM9Y2xvbmUocmhzKS5yb3VuZChzZXQpOworICAgLy8gW3dlIGNvdWxkIHJldXNlIHRoZSBuZXcgTEhTIGZvciByZXN1bHQgaW4gdGhpcyBjYXNlXQorICAgfQorICAKKyAgcmVzPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoKTsgLy8gYnVpbGQgcmVzdWx0IGhlcmUKKyAgCisgIC8qIE5vdyBzZWUgaG93IG11Y2ggd2UgaGF2ZSB0byBwYWQgb3IgdHJ1bmNhdGUgbGhzIG9yIHJocyBpbiBvcmRlcgorICAgICB0byBhbGlnbiB0aGUgbnVtYmVycy4gIElmIG9uZSBudW1iZXIgaXMgbXVjaCBsYXJnZXIgdGhhbiB0aGUKKyAgICAgb3RoZXIsIHRoZW4gdGhlIHNtYWxsZXIgY2Fubm90IGFmZmVjdCB0aGUgYW5zd2VyIFtidXQgd2UgbWF5CisgICAgIHN0aWxsIG5lZWQgdG8gcGFkIHdpdGggdXAgdG8gRElHSVRTIHRyYWlsaW5nIHplcm9zXS4gKi8KKyAgLy8gTm90ZSBzaWduIG1heSBiZSAwIGlmIGRpZ2l0cyAocmVxZGlnKSBpcyAwCisgIC8vIHVzZWwgYW5kIHVzZXIgd2lsbCBiZSB0aGUgYnl0ZSBhcnJheXMgcGFzc2VkIHRvIHRoZSBhZGRlcjsgd2UnbGwKKyAgLy8gdXNlIHRoZW0gb24gYWxsIHBhdGhzIGV4Y2VwdCBxdWljayBleGl0cworICB1c2VsPWxocy5tYW50OworICB1c2VsbGVuPWxocy5tYW50Lmxlbmd0aDsKKyAgdXNlcj1yaHMubWFudDsKKyAgdXNlcmxlbj1yaHMubWFudC5sZW5ndGg7CisgIHtwYWRkZXI6ZG97LypzZWxlY3QqLworICBpZiAobGhzLmV4cD09cmhzLmV4cCkKKyAgIHsvKiBubyBwYWRkaW5nIG5lZWRlZCAqLworICAgIC8vIFRoaXMgaXMgdGhlIG1vc3QgY29tbW9uLCBhbmQgZmFzdGVzdCwgcGF0aAorICAgIHJlcy5leHA9bGhzLmV4cDsKKyAgIH0KKyAgZWxzZSBpZiAobGhzLmV4cD5yaHMuZXhwKQorICAgeyAvLyBuZWVkIHRvIHBhZCBsaHMgYW5kL29yIHRydW5jYXRlIHJocworICAgIG5ld2xlbj0odXNlbGxlbitsaHMuZXhwKS1yaHMuZXhwOworICAgIC8qIElmLCBhZnRlciBwYWQsIGxocyB3b3VsZCBiZSBsb25nZXIgdGhhbiByaHMgYnkgZGlnaXRzKzEgb3IKKyAgICAgICBtb3JlIChhbmQgZGlnaXRzPjApIHRoZW4gcmhzIGNhbm5vdCBhZmZlY3QgYW5zd2VyLCBzbyB3ZSBvbmx5CisgICAgICAgbmVlZCB0byBwYWQgdXAgdG8gYSBsZW5ndGggb2YgRElHSVRTKzEuICovCisgICAgaWYgKG5ld2xlbj49KCh1c2VybGVuK3JlcWRpZykrMSkpIAorICAgICBpZiAocmVxZGlnPjApIAorICAgICAgeworICAgICAgIC8vIExIUyBpcyBzdWZmaWNpZW50CisgICAgICAgcmVzLm1hbnQ9dXNlbDsKKyAgICAgICByZXMuZXhwPWxocy5leHA7CisgICAgICAgcmVzLmluZD1saHMuaW5kOworICAgICAgIGlmICh1c2VsbGVuPHJlcWRpZykgCisgICAgICAgIHsgLy8gbmVlZCAwIHBhZGRpbmcKKyAgICAgICAgIHJlcy5tYW50PWV4dGVuZChsaHMubWFudCxyZXFkaWcpOworICAgICAgICAgcmVzLmV4cD1yZXMuZXhwLSgocmVxZGlnLXVzZWxsZW4pKTsKKyAgICAgICAgfQorICAgICAgIHJldHVybiByZXMuZmluaXNoKHNldCxmYWxzZSk7CisgICAgICB9CisgICAgLy8gUkhTIG1heSBhZmZlY3QgcmVzdWx0CisgICAgcmVzLmV4cD1yaHMuZXhwOyAvLyBleHBlY3RlZCBmaW5hbCBleHBvbmVudAorICAgIGlmIChuZXdsZW4+KHJlcWRpZysxKSkgCisgICAgIGlmIChyZXFkaWc+MCkgCisgICAgICB7CisgICAgICAgLy8gTEhTIHdpbGwgYmUgbWF4OyBSSFMgdHJ1bmNhdGVkCisgICAgICAgdGxlbj0obmV3bGVuLXJlcWRpZyktMTsgLy8gdHJ1bmNhdGlvbiBsZW5ndGgKKyAgICAgICB1c2VybGVuPXVzZXJsZW4tdGxlbjsKKyAgICAgICByZXMuZXhwPXJlcy5leHArdGxlbjsKKyAgICAgICBuZXdsZW49cmVxZGlnKzE7CisgICAgICB9CisgICAgaWYgKG5ld2xlbj51c2VsbGVuKSAKKyAgICAgdXNlbGxlbj1uZXdsZW47IC8vIG5lZWQgdG8gcGFkIExIUworICAgfQorICBlbHNleyAvLyBuZWVkIHRvIHBhZCByaHMgYW5kL29yIHRydW5jYXRlIGxocworICAgbmV3bGVuPSh1c2VybGVuK3Jocy5leHApLWxocy5leHA7CisgICBpZiAobmV3bGVuPj0oKHVzZWxsZW4rcmVxZGlnKSsxKSkgCisgICAgaWYgKHJlcWRpZz4wKSAKKyAgICAgeworICAgICAgLy8gUkhTIGlzIHN1ZmZpY2llbnQKKyAgICAgIHJlcy5tYW50PXVzZXI7CisgICAgICByZXMuZXhwPXJocy5leHA7CisgICAgICByZXMuaW5kPXJocy5pbmQ7CisgICAgICBpZiAodXNlcmxlbjxyZXFkaWcpIAorICAgICAgIHsgLy8gbmVlZCAwIHBhZGRpbmcKKyAgICAgICAgcmVzLm1hbnQ9ZXh0ZW5kKHJocy5tYW50LHJlcWRpZyk7CisgICAgICAgIHJlcy5leHA9cmVzLmV4cC0oKHJlcWRpZy11c2VybGVuKSk7CisgICAgICAgfQorICAgICAgcmV0dXJuIHJlcy5maW5pc2goc2V0LGZhbHNlKTsKKyAgICAgfQorICAgLy8gTEhTIG1heSBhZmZlY3QgcmVzdWx0CisgICByZXMuZXhwPWxocy5leHA7IC8vIGV4cGVjdGVkIGZpbmFsIGV4cG9uZW50CisgICBpZiAobmV3bGVuPihyZXFkaWcrMSkpIAorICAgIGlmIChyZXFkaWc+MCkgCisgICAgIHsKKyAgICAgIC8vIFJIUyB3aWxsIGJlIG1heDsgTEhTIHRydW5jYXRlZAorICAgICAgdGxlbj0obmV3bGVuLXJlcWRpZyktMTsgLy8gdHJ1bmNhdGlvbiBsZW5ndGgKKyAgICAgIHVzZWxsZW49dXNlbGxlbi10bGVuOworICAgICAgcmVzLmV4cD1yZXMuZXhwK3RsZW47CisgICAgICBuZXdsZW49cmVxZGlnKzE7CisgICAgIH0KKyAgIGlmIChuZXdsZW4+dXNlcmxlbikgCisgICAgdXNlcmxlbj1uZXdsZW47IC8vIG5lZWQgdG8gcGFkIFJIUworICB9CisgIH13aGlsZShmYWxzZSk7fS8qcGFkZGVyKi8KKyAgCisgIC8qIE9LLCB3ZSBoYXZlIGFsaWduZWQgbWFudGlzc2FzLiAgTm93IGFkZCBvciBzdWJ0cmFjdC4gKi8KKyAgLy8gMTk5OC4wNi4yNyBTaWduIG1heSBub3cgYmUgMCBbZS5nLiwgMC4wMDBdIC4uIHRyZWF0IGFzIHBvc2l0aXZlCisgIC8vIDE5OTkuMDUuMjcgQWxsb3cgZm9yIDAwIG9uIGxocyBbaXMgbm90IGxhcmdlciB0aGFuIDIgb24gcmhzXQorICAvLyAxOTk5LjA3LjEwIEFsbG93IGZvciAwMCBvbiByaHMgW2lzIG5vdCBsYXJnZXIgdGhhbiAyIG9uIHJoc10KKyAgaWYgKGxocy5pbmQ9PWlzemVybykgCisgICByZXMuaW5kPWlzcG9zOworICBlbHNlIAorICAgcmVzLmluZD1saHMuaW5kOyAvLyBsaWtlbHkgc2lnbiwgYWxsIHBhdGhzCisgIGlmICgoKGxocy5pbmQ9PWlzbmVnKT8xOjApPT0oKHJocy5pbmQ9PWlzbmVnKT8xOjApKSAgLy8gc2FtZSBzaWduLCAwIG5vbi1uZWdhdGl2ZQorICAgbXVsdD0xOworICBlbHNlIAorICAge3NpZ25kaWZmOmRveyAvLyBkaWZmZXJlbnQgc2lnbnMsIHNvIHN1YnRyYWN0aW9uIGlzIG5lZWRlZAorICAgIG11bHQ9LTE7IC8vIHdpbGwgY2F1c2Ugc3VidHJhY3QKKyAgICAvKiBCZWZvcmUgd2UgY2FuIHN1YnRyYWN0IHdlIG11c3QgZGV0ZXJtaW5lIHdoaWNoIGlzIHRoZSBsYXJnZXIsCisgICAgICAgYXMgb3VyIGFkZC9zdWJ0cmFjdCByb3V0aW5lIG9ubHkgaGFuZGxlcyBub24tbmVnYXRpdmUgcmVzdWx0cworICAgICAgIHNvIHdlIG1heSBuZWVkIHRvIHN3YXAgdGhlIG9wZXJhbmRzLiAqLworICAgIHtzd2FwdGVzdDpkb3svKnNlbGVjdCovCisgICAgaWYgKHJocy5pbmQ9PWlzemVybykKKyAgICAgOyAvLyBvcmlnaW5hbCBBIGJpZ2dlcgorICAgIGVsc2UgaWYgKCh1c2VsbGVuPHVzZXJsZW4pfChsaHMuaW5kPT1pc3plcm8pKQorICAgICB7IC8vIG9yaWdpbmFsIEIgYmlnZ2VyCisgICAgICB0PXVzZWw7CisgICAgICB1c2VsPXVzZXI7CisgICAgICB1c2VyPXQ7IC8vIHN3YXAKKyAgICAgIHRsZW49dXNlbGxlbjsKKyAgICAgIHVzZWxsZW49dXNlcmxlbjsKKyAgICAgIHVzZXJsZW49dGxlbjsgLy8gLi4KKyAgICAgIHJlcy5pbmQ9KGJ5dGUpLXJlcy5pbmQ7IC8vIGFuZCBzZXQgc2lnbgorICAgICB9CisgICAgZWxzZSBpZiAodXNlbGxlbj51c2VybGVuKQorICAgICA7IC8vIG9yaWdpbmFsIEEgYmlnZ2VyCisgICAgZWxzZXsKKyAgICAgey8qIGxvZ2ljYWwgbGVuZ3RocyB0aGUgc2FtZSAqLyAvLyBuZWVkIGNvbXBhcmUKKyAgICAgIC8qIG1heSBzdGlsbCBuZWVkIHRvIHN3YXA6IGNvbXBhcmUgdGhlIHN0cmluZ3MgKi8KKyAgICAgIGlhPTA7CisgICAgICBpYj0wOworICAgICAgZWE9dXNlbC5sZW5ndGgtMTsKKyAgICAgIGViPXVzZXIubGVuZ3RoLTE7CisgICAgICB7Y29tcGFyZTpmb3IoOzspeworICAgICAgIGlmIChpYTw9ZWEpIAorICAgICAgICBjYT11c2VsW2lhXTsKKyAgICAgICBlbHNlIAorICAgICAgICB7CisgICAgICAgICBpZiAoaWI+ZWIpIAorICAgICAgICAgIHsvKiBpZGVudGljYWwgKi8KKyAgICAgICAgICAgaWYgKHNldC5mb3JtIT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOKSAKKyAgICAgICAgICAgIHJldHVybiBaRVJPOworICAgICAgICAgICAvLyBbaWYgUExBSU4gd2UgbXVzdCBkbyB0aGUgc3VidHJhY3QsIGluIGNhc2Ugb2YgMC4wMDAgcmVzdWx0c10KKyAgICAgICAgICAgYnJlYWsgY29tcGFyZTsKKyAgICAgICAgICB9CisgICAgICAgICBjYT0oYnl0ZSkwOworICAgICAgICB9CisgICAgICAgaWYgKGliPD1lYikgCisgICAgICAgIGNiPXVzZXJbaWJdOworICAgICAgIGVsc2UgCisgICAgICAgIGNiPShieXRlKTA7CisgICAgICAgaWYgKGNhIT1jYikgCisgICAgICAgIHsKKyAgICAgICAgIGlmIChjYTxjYikgCisgICAgICAgICAgey8qIHN3YXAgbmVlZGVkICovCisgICAgICAgICAgIHQ9dXNlbDsKKyAgICAgICAgICAgdXNlbD11c2VyOworICAgICAgICAgICB1c2VyPXQ7IC8vIHN3YXAKKyAgICAgICAgICAgdGxlbj11c2VsbGVuOworICAgICAgICAgICB1c2VsbGVuPXVzZXJsZW47CisgICAgICAgICAgIHVzZXJsZW49dGxlbjsgLy8gLi4KKyAgICAgICAgICAgcmVzLmluZD0oYnl0ZSktcmVzLmluZDsKKyAgICAgICAgICB9CisgICAgICAgICBicmVhayBjb21wYXJlOworICAgICAgICB9CisgICAgICAgLyogbWFudGlzc2FzIHRoZSBzYW1lLCBzbyBmYXIgKi8KKyAgICAgICBpYSsrOworICAgICAgIGliKys7CisgICAgICAgfQorICAgICAgfS8qY29tcGFyZSovCisgICAgIH0gLy8gbGVuZ3RocyB0aGUgc2FtZQorICAgIH0KKyAgICB9d2hpbGUoZmFsc2UpO30vKnN3YXB0ZXN0Ki8KKyAgIH13aGlsZShmYWxzZSk7fS8qc2lnbmRpZmYqLworICAKKyAgLyogaGVyZSwgQSBpcyA+IEIgaWYgc3VidHJhY3RpbmcgKi8KKyAgLy8gYWRkIFtBK0IqMV0gb3Igc3VidHJhY3QgW0ErKEIqLTEpXQorICByZXMubWFudD1ieXRlYWRkc3ViKHVzZWwsdXNlbGxlbix1c2VyLHVzZXJsZW4sbXVsdCxmYWxzZSk7CisgIC8vIFtyZXVzZSBwb3NzaWJsZSBvbmx5IGFmdGVyIGNob3A7IGFjY291bnRpbmcgbWFrZXMgbm90IHdvcnRod2hpbGVdCisgIAorICAvLyBGaW5pc2goKSByb3VuZHMgYmVmb3JlIHN0cmlwcGluZyBsZWFkaW5nIDAncywgdGhlbiBzZXRzIGZvcm0sIGV0Yy4KKyAgcmV0dXJuIHJlcy5maW5pc2goc2V0LGZhbHNlKTsKKyAgfQorCisgLyoqCisgICogQ29tcGFyZXMgdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB0byBhbm90aGVyLCB1c2luZyB1bmxpbWl0ZWQKKyAgKiBwcmVjaXNpb24uCisgICogPHA+CisgICogVGhlIHNhbWUgYXMge0BsaW5rICNjb21wYXJlVG8oQmlnRGVjaW1hbCwgTWF0aENvbnRleHQpfSwKKyAgKiB3aGVyZSB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaXMgPGNvZGU+cmhzPC9jb2RlPiwKKyAgKiBhbmQgdGhlIGNvbnRleHQgaXMgPGNvZGU+bmV3IE1hdGhDb250ZXh0KDAsIE1hdGhDb250ZXh0LlBMQUlOKTwvY29kZT4uCisgICoKKyAgKiBAcGFyYW0gIHJocyBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZm9yIHRoZSByaWdodCBoYW5kIHNpZGUgb2YKKyAgKiAgICAgICAgICAgICB0aGUgY29tcGFyaXNvbi4KKyAgKiBAcmV0dXJuICAgICBBbiA8Y29kZT5pbnQ8L2NvZGU+IHdob3NlIHZhbHVlIGlzIC0xLCAwLCBvciAxIGFzCisgICogICAgICAgICAgICAgPGNvZGU+dGhpczwvY29kZT4gaXMgbnVtZXJpY2FsbHkgbGVzcyB0aGFuLCBlcXVhbCB0bywKKyAgKiAgICAgICAgICAgICBvciBncmVhdGVyIHRoYW4gPGNvZGU+cmhzPC9jb2RlPi4KKyAgKiBAc2VlICAgICNjb21wYXJlVG8oT2JqZWN0KQorICAqLworIAorIHB1YmxpYyBpbnQgY29tcGFyZVRvKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByaHMpeworICByZXR1cm4gdGhpcy5jb21wYXJlVG8ocmhzLHBsYWluTUMpOworICB9CisKKyAvKioKKyAgKiBDb21wYXJlcyB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHRvIGFub3RoZXIuCisgICogPHA+CisgICogSW1wbGVtZW50cyBudW1lcmljIGNvbXBhcmlzb24sCisgICogKGFzIGRlZmluZWQgaW4gdGhlIGRlY2ltYWwgZG9jdW1lbnRhdGlvbiwgc2VlIHtAbGluayBCaWdEZWNpbWFsCisgICogY2xhc3MgaGVhZGVyfSksCisgICogYW5kIHJldHVybnMgYSByZXN1bHQgb2YgdHlwZSA8Y29kZT5pbnQ8L2NvZGU+LgorICAqIDxwPgorICAqIFRoZSByZXN1bHQgd2lsbCBiZToKKyAgKiA8dGFibGUgY2VsbHBhZGRpbmc9Mj48dHI+CisgICogPHRkIGFsaWduPXJpZ2h0PjxiPi0xPC9iPjwvdGQ+CisgICogPHRkPmlmIHRoZSBjdXJyZW50IG9iamVjdCBpcyBsZXNzIHRoYW4gdGhlIGZpcnN0IHBhcmFtZXRlcjwvdGQ+CisgICogPC90cj48dHI+CisgICogPHRkIGFsaWduPXJpZ2h0PjxiPjA8L2I+PC90ZD4KKyAgKiA8dGQ+aWYgdGhlIGN1cnJlbnQgb2JqZWN0IGlzIGVxdWFsIHRvIHRoZSBmaXJzdCBwYXJhbWV0ZXI8L3RkPgorICAqIDwvdHI+PHRyPgorICAqIDx0ZCBhbGlnbj1yaWdodD48Yj4xPC9iPjwvdGQ+CisgICogPHRkPmlmIHRoZSBjdXJyZW50IG9iamVjdCBpcyBncmVhdGVyIHRoYW4gdGhlIGZpcnN0IHBhcmFtZXRlci48L3RkPgorICAqIDwvdHI+PC90YWJsZT4KKyAgKiA8cD4KKyAgKiBBIHtAbGluayAjY29tcGFyZVRvKE9iamVjdCl9IG1ldGhvZCBpcyBhbHNvIHByb3ZpZGVkLgorICAqCisgICogQHBhcmFtICByaHMgVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGZvciB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mCisgICogICAgICAgICAgICAgdGhlIGNvbXBhcmlzb24uCisgICogQHBhcmFtICBzZXQgVGhlIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBhcml0aG1ldGljIHNldHRpbmdzLgorICAqIEByZXR1cm4gICAgIEFuIDxjb2RlPmludDwvY29kZT4gd2hvc2UgdmFsdWUgaXMgLTEsIDAsIG9yIDEgYXMKKyAgKiAgICAgICAgICAgICA8Y29kZT50aGlzPC9jb2RlPiBpcyBudW1lcmljYWxseSBsZXNzIHRoYW4sIGVxdWFsIHRvLAorICAqICAgICAgICAgICAgIG9yIGdyZWF0ZXIgdGhhbiA8Y29kZT5yaHM8L2NvZGU+LgorICAqIEBzZWUgICAgI2NvbXBhcmVUbyhPYmplY3QpCisgICogQHNpbmNlICBJQk0gSkRLIDEuMS44CisgICovCisgCisgcHVibGljIGludCBjb21wYXJlVG8oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IHNldCl7CisgIGludCB0aGlzbGVuZ3RoPTA7CisgIGludCBpPTA7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBuZXdyaHM7CisgIC8vIHJocz1udWxsIHdpbGwgcmFpc2UgTnVsbFBvaW50ZXJFeGNlcHRpb24sIGFzIHBlciBDb21wYXJhYmxlIGludGVyZmFjZQorICBpZiAoc2V0Lmxvc3REaWdpdHMpIAorICAgY2hlY2tkaWdpdHMocmhzLHNldC5kaWdpdHMpOworICAvLyBbYWRkIHdpbGwgcmVjaGVjayBpbiBzbG93cGF0aCBjYXNlcyAuLiBidXQgd291bGQgcmVwb3J0IC1yaHNdCisgIGlmICgodGhpcy5pbmQ9PXJocy5pbmQpJih0aGlzLmV4cD09cmhzLmV4cCkpIAorICAgeworICAgIC8qIHNpZ24gJiBleHBvbmVudCB0aGUgc2FtZSBbdmVyeSBjb21tb25dICovCisgICAgdGhpc2xlbmd0aD10aGlzLm1hbnQubGVuZ3RoOworICAgIGlmICh0aGlzbGVuZ3RoPHJocy5tYW50Lmxlbmd0aCkgCisgICAgIHJldHVybiAoYnl0ZSktdGhpcy5pbmQ7CisgICAgaWYgKHRoaXNsZW5ndGg+cmhzLm1hbnQubGVuZ3RoKSAKKyAgICAgcmV0dXJuIHRoaXMuaW5kOworICAgIC8qIGxlbmd0aHMgYXJlIHRoZSBzYW1lOyB3ZSBjYW4gZG8gYSBzdHJhaWdodCBtYW50aXNzYSBjb21wYXJlCisgICAgICAgdW5sZXNzIG1heWJlIHJvdW5kaW5nIFtyb3VuZGluZyBpcyB2ZXJ5IHVudXN1YWxdICovCisgICAgaWYgKCh0aGlzbGVuZ3RoPD1zZXQuZGlnaXRzKXwoc2V0LmRpZ2l0cz09MCkpIAorICAgICB7CisgICAgICB7aW50ICQ2PXRoaXNsZW5ndGg7aT0wO2k6Zm9yKDskNj4wOyQ2LS0saSsrKXsKKyAgICAgICBpZiAodGhpcy5tYW50W2ldPHJocy5tYW50W2ldKSAKKyAgICAgICAgcmV0dXJuIChieXRlKS10aGlzLmluZDsKKyAgICAgICBpZiAodGhpcy5tYW50W2ldPnJocy5tYW50W2ldKSAKKyAgICAgICAgcmV0dXJuIHRoaXMuaW5kOworICAgICAgIH0KKyAgICAgIH0vKmkqLworICAgICAgcmV0dXJuIDA7IC8vIGlkZW50aWNhbAorICAgICB9CisgICAvKiBkcm9wIHRocm91Z2ggZm9yIGZ1bGwgY29tcGFyaXNvbiAqLworICAgfQorICBlbHNlIAorICAgeworICAgIC8qIE1vcmUgZmFzdHBhdGhzIHBvc3NpYmxlICovCisgICAgaWYgKHRoaXMuaW5kPHJocy5pbmQpIAorICAgICByZXR1cm4gLTE7CisgICAgaWYgKHRoaXMuaW5kPnJocy5pbmQpIAorICAgICByZXR1cm4gMTsKKyAgIH0KKyAgLyogY2Fycnkgb3V0IGEgc3VidHJhY3QgdG8gbWFrZSB0aGUgY29tcGFyaXNvbiAqLworICBuZXdyaHM9Y2xvbmUocmhzKTsgLy8gc2FmZSBjb3B5CisgIG5ld3Jocy5pbmQ9KGJ5dGUpLW5ld3Jocy5pbmQ7IC8vIHByZXBhcmUgdG8gc3VidHJhY3QKKyAgcmV0dXJuIHRoaXMuYWRkKG5ld3JocyxzZXQpLmluZDsgLy8gYWRkLCBhbmQgcmV0dXJuIHNpZ24gb2YgcmVzdWx0CisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSBwbGFpbiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqIDxjb2RlPnRoaXMvcmhzPC9jb2RlPiwgdXNpbmcgZml4ZWQgcG9pbnQgYXJpdGhtZXRpYy4KKyAgKiA8cD4KKyAgKiBUaGUgc2FtZSBhcyB7QGxpbmsgI2RpdmlkZShCaWdEZWNpbWFsLCBpbnQpfSwKKyAgKiB3aGVyZSB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaXMgPGNvZGU+cmhzPC9jb2RlPiwKKyAgKiBhbmQgdGhlIHJvdW5kaW5nIG1vZGUgaXMge0BsaW5rIE1hdGhDb250ZXh0I1JPVU5EX0hBTEZfVVB9LgorICAqCisgICogVGhlIGxlbmd0aCBvZiB0aGUgZGVjaW1hbCBwYXJ0ICh0aGUgc2NhbGUpIG9mIHRoZSByZXN1bHQgd2lsbCBiZQorICAqIHRoZSBzYW1lIGFzIHRoZSBzY2FsZSBvZiB0aGUgY3VycmVudCBvYmplY3QsIGlmIHRoZSBsYXR0ZXIgd2VyZQorICAqIGZvcm1hdHRlZCB3aXRob3V0IGV4cG9uZW50aWFsIG5vdGF0aW9uLgorICAqCisgICogQHBhcmFtICByaHMgVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGZvciB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mCisgICogICAgICAgICAgICAgdGhlIGRpdmlzaW9uLgorICAqIEByZXR1cm4gICAgIEEgcGxhaW4gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiAgICAgICAgICAgICA8Y29kZT50aGlzL3JoczwvY29kZT4sIHVzaW5nIGZpeGVkIHBvaW50IGFyaXRobWV0aWMuCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIDxjb2RlPnJoczwvY29kZT4gaXMgemVyby4KKyAgKiBAc2luY2UgIElCTSBKREsgMS4xLjgKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGRpdmlkZShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzKXsKKyAgcmV0dXJuIHRoaXMuZG9kaXZpZGUoJ0QnLHJocyxwbGFpbk1DLC0xKTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIHBsYWluIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogPGNvZGU+dGhpcy9yaHM8L2NvZGU+LCB1c2luZyBmaXhlZCBwb2ludCBhcml0aG1ldGljIGFuZCBhCisgICogcm91bmRpbmcgbW9kZS4KKyAgKiA8cD4KKyAgKiBUaGUgc2FtZSBhcyB7QGxpbmsgI2RpdmlkZShCaWdEZWNpbWFsLCBpbnQsIGludCl9LAorICAqIHdoZXJlIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBpcyA8Y29kZT5yaHM8L2NvZGU+LAorICAqIGFuZCB0aGUgc2Vjb25kIHBhcmFtZXRlciBpcyA8Y29kZT50aGlzLnNjYWxlKCk8L2NvZGU+LCBhbmQKKyAgKiB0aGUgdGhpcmQgaXMgPGNvZGU+cm91bmQ8L2NvZGU+LgorICAqIDxwPgorICAqIFRoZSBsZW5ndGggb2YgdGhlIGRlY2ltYWwgcGFydCAodGhlIHNjYWxlKSBvZiB0aGUgcmVzdWx0IHdpbGwKKyAgKiB0aGVyZWZvcmUgYmUgdGhlIHNhbWUgYXMgdGhlIHNjYWxlIG9mIHRoZSBjdXJyZW50IG9iamVjdCwgaWYgdGhlCisgICogbGF0dGVyIHdlcmUgZm9ybWF0dGVkIHdpdGhvdXQgZXhwb25lbnRpYWwgbm90YXRpb24uCisgICogPHA+CisgICogQHBhcmFtICByaHMgICBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZm9yIHRoZSByaWdodCBoYW5kIHNpZGUgb2YKKyAgKiAgICAgICAgICAgICAgIHRoZSBkaXZpc2lvbi4KKyAgKiBAcGFyYW0gIHJvdW5kIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IHJvdW5kaW5nIG1vZGUgdG8gYmUgdXNlZCBmb3IKKyAgKiAgICAgICAgICAgICAgIHRoZSBkaXZpc2lvbiAoc2VlIHRoZSB7QGxpbmsgTWF0aENvbnRleHR9IGNsYXNzKS4KKyAgKiBAcmV0dXJuICAgICAgIEEgcGxhaW4gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiAgICAgICAgICAgICAgIDxjb2RlPnRoaXMvcmhzPC9jb2RlPiwgdXNpbmcgZml4ZWQgcG9pbnQgYXJpdGhtZXRpYworICAqICAgICAgICAgICAgICAgYW5kIHRoZSBzcGVjaWZpZWQgcm91bmRpbmcgbW9kZS4KKyAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiA8Y29kZT5yb3VuZDwvY29kZT4gaXMgbm90IGEKKyAgKiAgICAgICAgICAgICAgIHZhbGlkIHJvdW5kaW5nIG1vZGUuCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIDxjb2RlPnJoczwvY29kZT4gaXMgemVyby4KKyAgKiBAdGhyb3dzIEFyaXRobWV0aWNFeGNlcHRpb24gaWYgPGNvZGU+cm91bmQ8L2NvZGU+IGlzIHtAbGluaworICAqICAgICAgICAgICAgICAgTWF0aENvbnRleHQjUk9VTkRfVU5ORUNFU1NBUll9IGFuZAorICAqICAgICAgICAgICAgICAgPGNvZGU+dGhpcy5zY2FsZSgpPC9jb2RlPiBpcyBpbnN1ZmZpY2llbnQgdG8KKyAgKiAgICAgICAgICAgICAgIHJlcHJlc2VudCB0aGUgcmVzdWx0IGV4YWN0bHkuCisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBkaXZpZGUoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyxpbnQgcm91bmQpeworICBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IHNldDsKKyAgc2V0PW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTixmYWxzZSxyb3VuZCk7IC8vIFtjaGVja3Mgcm91bmQsIHRvb10KKyAgcmV0dXJuIHRoaXMuZG9kaXZpZGUoJ0QnLHJocyxzZXQsLTEpOyAvLyB0YWtlIHNjYWxlIGZyb20gTEhTCisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSBwbGFpbiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqIDxjb2RlPnRoaXMvcmhzPC9jb2RlPiwgdXNpbmcgZml4ZWQgcG9pbnQgYXJpdGhtZXRpYyBhbmQgYQorICAqIGdpdmVuIHNjYWxlIGFuZCByb3VuZGluZyBtb2RlLgorICAqIDxwPgorICAqIFRoZSBzYW1lIGFzIHtAbGluayAjZGl2aWRlKEJpZ0RlY2ltYWwsIE1hdGhDb250ZXh0KX0sCisgICogd2hlcmUgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGlzIDxjb2RlPnJoczwvY29kZT4sCisgICogPGNvZGU+bmV3IE1hdGhDb250ZXh0KDAsIE1hdGhDb250ZXh0LlBMQUlOLCBmYWxzZSwgcm91bmQpPC9jb2RlPiwKKyAgKiBleGNlcHQgdGhhdCB0aGUgbGVuZ3RoIG9mIHRoZSBkZWNpbWFsIHBhcnQgKHRoZSBzY2FsZSkgdG8gYmUgdXNlZAorICAqIGZvciB0aGUgcmVzdWx0IGlzIGV4cGxpY2l0IHJhdGhlciB0aGFuIGJlaW5nIHRha2VuIGZyb20KKyAgKiA8Y29kZT50aGlzPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBUaGUgbGVuZ3RoIG9mIHRoZSBkZWNpbWFsIHBhcnQgKHRoZSBzY2FsZSkgb2YgdGhlIHJlc3VsdCB3aWxsIGJlCisgICogdGhlIHNhbWUgYXMgdGhlIHNjYWxlIG9mIHRoZSBjdXJyZW50IG9iamVjdCwgaWYgdGhlIGxhdHRlciB3ZXJlCisgICogZm9ybWF0dGVkIHdpdGhvdXQgZXhwb25lbnRpYWwgbm90YXRpb24uCisgICogPHA+CisgICogQHBhcmFtICByaHMgICBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZm9yIHRoZSByaWdodCBoYW5kIHNpZGUgb2YKKyAgKiAgICAgICAgICAgICAgIHRoZSBkaXZpc2lvbi4KKyAgKiBAcGFyYW0gIHNjYWxlIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IHNjYWxlIHRvIGJlIHVzZWQgZm9yIHRoZSByZXN1bHQuCisgICogQHBhcmFtICByb3VuZCBUaGUgPGNvZGU+aW50PC9jb2RlPiByb3VuZGluZyBtb2RlIHRvIGJlIHVzZWQgZm9yCisgICogICAgICAgICAgICAgICB0aGUgZGl2aXNpb24gKHNlZSB0aGUge0BsaW5rIE1hdGhDb250ZXh0fSBjbGFzcykuCisgICogQHJldHVybiAgICAgICBBIHBsYWluIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogICAgICAgICAgICAgICA8Y29kZT50aGlzL3JoczwvY29kZT4sIHVzaW5nIGZpeGVkIHBvaW50IGFyaXRobWV0aWMKKyAgKiAgICAgICAgICAgICAgIGFuZCB0aGUgc3BlY2lmaWVkIHJvdW5kaW5nIG1vZGUuCisgICogQHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgPGNvZGU+cm91bmQ8L2NvZGU+IGlzIG5vdCBhCisgICogICAgICAgICAgICAgICB2YWxpZCByb3VuZGluZyBtb2RlLgorICAqIEB0aHJvd3MgQXJpdGhtZXRpY0V4Y2VwdGlvbiBpZiA8Y29kZT5yaHM8L2NvZGU+IGlzIHplcm8uCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIDxjb2RlPnNjYWxlPC9jb2RlPiBpcyBuZWdhdGl2ZS4KKyAgKiBAdGhyb3dzIEFyaXRobWV0aWNFeGNlcHRpb24gaWYgPGNvZGU+cm91bmQ8L2NvZGU+IGlzIHtAbGluaworICAqICAgICAgICAgICAgICAgTWF0aENvbnRleHQjUk9VTkRfVU5ORUNFU1NBUll9IGFuZCA8Y29kZT5zY2FsZTwvY29kZT4KKyAgKiAgICAgICAgICAgICAgIGlzIGluc3VmZmljaWVudCB0byByZXByZXNlbnQgdGhlIHJlc3VsdCBleGFjdGx5LgorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZGl2aWRlKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByaHMsaW50IHNjYWxlLGludCByb3VuZCl7CisgIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgc2V0OworICBpZiAoc2NhbGU8MCkgCisgICB0aHJvdyBuZXcgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24oIk5lZ2F0aXZlIHNjYWxlOiIrIiAiK3NjYWxlKTsKKyAgc2V0PW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTixmYWxzZSxyb3VuZCk7IC8vIFtjaGVja3Mgcm91bmRdCisgIHJldHVybiB0aGlzLmRvZGl2aWRlKCdEJyxyaHMsc2V0LHNjYWxlKTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzIDxjb2RlPnRoaXMvcmhzPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBJbXBsZW1lbnRzIHRoZSBkaXZpc2lvbiAoPGI+PGNvZGU+LzwvY29kZT48L2I+KSBvcGVyYXRvcgorICAqIChhcyBkZWZpbmVkIGluIHRoZSBkZWNpbWFsIGRvY3VtZW50YXRpb24sIHNlZSB7QGxpbmsgQmlnRGVjaW1hbAorICAqIGNsYXNzIGhlYWRlcn0pLAorICAqIGFuZCByZXR1cm5zIHRoZSByZXN1bHQgYXMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3QuCisgICoKKyAgKiBAcGFyYW0gIHJocyBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZm9yIHRoZSByaWdodCBoYW5kIHNpZGUgb2YKKyAgKiAgICAgICAgICAgICB0aGUgZGl2aXNpb24uCisgICogQHBhcmFtICBzZXQgVGhlIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBhcml0aG1ldGljIHNldHRpbmdzLgorICAqIEByZXR1cm4gICAgIEEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiAgICAgICAgICAgICA8Y29kZT50aGlzL3JoczwvY29kZT4uCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIDxjb2RlPnJoczwvY29kZT4gaXMgemVyby4KKyAgKiBAc2luY2UgIElCTSBKREsgMS4xLjgKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGRpdmlkZShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgc2V0KXsKKyAgcmV0dXJuIHRoaXMuZG9kaXZpZGUoJ0QnLHJocyxzZXQsLTEpOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgcGxhaW4gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMgdGhlIGludGVnZXIKKyAgKiBwYXJ0IG9mIDxjb2RlPnRoaXMvcmhzPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBUaGUgc2FtZSBhcyB7QGxpbmsgI2RpdmlkZUludGVnZXIoQmlnRGVjaW1hbCwgTWF0aENvbnRleHQpfSwKKyAgKiB3aGVyZSB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaXMgPGNvZGU+cmhzPC9jb2RlPiwKKyAgKiBhbmQgdGhlIGNvbnRleHQgaXMgPGNvZGU+bmV3IE1hdGhDb250ZXh0KDAsIE1hdGhDb250ZXh0LlBMQUlOKTwvY29kZT4uCisgICoKKyAgKiBAcGFyYW0gIHJocyBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZm9yIHRoZSByaWdodCBoYW5kIHNpZGUgb2YKKyAgKiAgICAgICAgICAgICB0aGUgaW50ZWdlciBkaXZpc2lvbi4KKyAgKiBAcmV0dXJuICAgICBBIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzIHRoZSBpbnRlZ2VyCisgICogICAgICAgICAgICAgcGFydCBvZiA8Y29kZT50aGlzL3JoczwvY29kZT4uCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIDxjb2RlPnJoczwvY29kZT4gaXMgemVyby4KKyAgKiBAc2luY2UgIElCTSBKREsgMS4xLjgKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGRpdmlkZUludGVnZXIoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyl7CisgIC8vIHNjYWxlIDAgdG8gZHJvcCAuMDAwIHdoZW4gcGxhaW4KKyAgcmV0dXJuIHRoaXMuZG9kaXZpZGUoJ0knLHJocyxwbGFpbk1DLDApOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMgdGhlIGludGVnZXIKKyAgKiBwYXJ0IG9mIDxjb2RlPnRoaXMvcmhzPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBJbXBsZW1lbnRzIHRoZSBpbnRlZ2VyIGRpdmlzaW9uIG9wZXJhdG9yCisgICogKGFzIGRlZmluZWQgaW4gdGhlIGRlY2ltYWwgZG9jdW1lbnRhdGlvbiwgc2VlIHtAbGluayBCaWdEZWNpbWFsCisgICogY2xhc3MgaGVhZGVyfSksCisgICogYW5kIHJldHVybnMgdGhlIHJlc3VsdCBhcyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9iamVjdC4KKyAgKgorICAqIEBwYXJhbSAgcmhzIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBmb3IgdGhlIHJpZ2h0IGhhbmQgc2lkZSBvZgorICAqICAgICAgICAgICAgIHRoZSBpbnRlZ2VyIGRpdmlzaW9uLgorICAqIEBwYXJhbSAgc2V0IFRoZSA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gYXJpdGhtZXRpYyBzZXR0aW5ncy4KKyAgKiBAcmV0dXJuICAgICBBIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzIHRoZSBpbnRlZ2VyCisgICogICAgICAgICAgICAgcGFydCBvZiA8Y29kZT50aGlzL3JoczwvY29kZT4uCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIDxjb2RlPnJoczwvY29kZT4gaXMgemVyby4KKyAgKiBAdGhyb3dzIEFyaXRobWV0aWNFeGNlcHRpb24gaWYgdGhlIHJlc3VsdCB3aWxsIG5vdCBmaXQgaW4gdGhlCisgICogICAgICAgICAgICAgbnVtYmVyIG9mIGRpZ2l0cyBzcGVjaWZpZWQgZm9yIHRoZSBjb250ZXh0LgorICAqIEBzaW5jZSAgSUJNIEpESyAxLjEuOAorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZGl2aWRlSW50ZWdlcihjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgc2V0KXsKKyAgLy8gc2NhbGUgMCB0byBkcm9wIC4wMDAgd2hlbiBwbGFpbgorICByZXR1cm4gdGhpcy5kb2RpdmlkZSgnSScscmhzLHNldCwwKTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIHBsYWluIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogdGhlIG1heGltdW0gb2YgPGNvZGU+dGhpczwvY29kZT4gYW5kIDxjb2RlPnJoczwvY29kZT4uCisgICogPHA+CisgICogVGhlIHNhbWUgYXMge0BsaW5rICNtYXgoQmlnRGVjaW1hbCwgTWF0aENvbnRleHQpfSwKKyAgKiB3aGVyZSB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaXMgPGNvZGU+cmhzPC9jb2RlPiwKKyAgKiBhbmQgdGhlIGNvbnRleHQgaXMgPGNvZGU+bmV3IE1hdGhDb250ZXh0KDAsIE1hdGhDb250ZXh0LlBMQUlOKTwvY29kZT4uCisgICoKKyAgKiBAcGFyYW0gIHJocyBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZm9yIHRoZSByaWdodCBoYW5kIHNpZGUgb2YKKyAgKiAgICAgICAgICAgICB0aGUgY29tcGFyaXNvbi4KKyAgKiBAcmV0dXJuICAgICBBIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogICAgICAgICAgICAgdGhlIG1heGltdW0gb2YgPGNvZGU+dGhpczwvY29kZT4gYW5kIDxjb2RlPnJoczwvY29kZT4uCisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBtYXgoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyl7CisgIHJldHVybiB0aGlzLm1heChyaHMscGxhaW5NQyk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqIHRoZSBtYXhpbXVtIG9mIDxjb2RlPnRoaXM8L2NvZGU+IGFuZCA8Y29kZT5yaHM8L2NvZGU+LgorICAqIDxwPgorICAqIFJldHVybnMgdGhlIGxhcmdlciBvZiB0aGUgY3VycmVudCBvYmplY3QgYW5kIHRoZSBmaXJzdCBwYXJhbWV0ZXIuCisgICogPHA+CisgICogSWYgY2FsbGluZyB0aGUge0BsaW5rICNjb21wYXJlVG8oQmlnRGVjaW1hbCwgTWF0aENvbnRleHQpfSBtZXRob2QKKyAgKiB3aXRoIHRoZSBzYW1lIHBhcmFtZXRlcnMgd291bGQgcmV0dXJuIDxjb2RlPjE8L2NvZGU+IG9yCisgICogPGNvZGU+MDwvY29kZT4sIHRoZW4gdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZQorICAqIHtAbGluayAjcGx1cyhNYXRoQ29udGV4dCl9IG1ldGhvZCBvbiB0aGUgY3VycmVudCBvYmplY3QgKHVzaW5nIHRoZQorICAqIHNhbWUgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IHBhcmFtZXRlcikgaXMgcmV0dXJuZWQuCisgICogT3RoZXJ3aXNlLCB0aGUgcmVzdWx0IG9mIGNhbGxpbmcgdGhlIHtAbGluayAjcGx1cyhNYXRoQ29udGV4dCl9CisgICogbWV0aG9kIG9uIHRoZSBmaXJzdCBwYXJhbWV0ZXIgb2JqZWN0ICh1c2luZyB0aGUgc2FtZQorICAqIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBwYXJhbWV0ZXIpIGlzIHJldHVybmVkLgorICAqCisgICogQHBhcmFtICByaHMgVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGZvciB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mCisgICogICAgICAgICAgICAgdGhlIGNvbXBhcmlzb24uCisgICogQHBhcmFtICBzZXQgVGhlIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBhcml0aG1ldGljIHNldHRpbmdzLgorICAqIEByZXR1cm4gICAgIEEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiAgICAgICAgICAgICB0aGUgbWF4aW11bSBvZiA8Y29kZT50aGlzPC9jb2RlPiBhbmQgPGNvZGU+cmhzPC9jb2RlPi4KKyAgKiBAc2luY2UgIElCTSBKREsgMS4xLjgKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG1heChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgc2V0KXsKKyAgaWYgKCh0aGlzLmNvbXBhcmVUbyhyaHMsc2V0KSk+PTApIAorICAgcmV0dXJuIHRoaXMucGx1cyhzZXQpOworICBlbHNlIAorICAgcmV0dXJuIHJocy5wbHVzKHNldCk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSBwbGFpbiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqIHRoZSBtaW5pbXVtIG9mIDxjb2RlPnRoaXM8L2NvZGU+IGFuZCA8Y29kZT5yaHM8L2NvZGU+LgorICAqIDxwPgorICAqIFRoZSBzYW1lIGFzIHtAbGluayAjbWluKEJpZ0RlY2ltYWwsIE1hdGhDb250ZXh0KX0sCisgICogd2hlcmUgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGlzIDxjb2RlPnJoczwvY29kZT4sCisgICogYW5kIHRoZSBjb250ZXh0IGlzIDxjb2RlPm5ldyBNYXRoQ29udGV4dCgwLCBNYXRoQ29udGV4dC5QTEFJTik8L2NvZGU+LgorICAqCisgICogQHBhcmFtICByaHMgVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGZvciB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mCisgICogICAgICAgICAgICAgdGhlIGNvbXBhcmlzb24uCisgICogQHJldHVybiAgICAgQSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqICAgICAgICAgICAgIHRoZSBtaW5pbXVtIG9mIDxjb2RlPnRoaXM8L2NvZGU+IGFuZCA8Y29kZT5yaHM8L2NvZGU+LgorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbWluKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByaHMpeworICByZXR1cm4gdGhpcy5taW4ocmhzLHBsYWluTUMpOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiB0aGUgbWluaW11bSBvZiA8Y29kZT50aGlzPC9jb2RlPiBhbmQgPGNvZGU+cmhzPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBSZXR1cm5zIHRoZSBzbWFsbGVyIG9mIHRoZSBjdXJyZW50IG9iamVjdCBhbmQgdGhlIGZpcnN0IHBhcmFtZXRlci4KKyAgKiA8cD4KKyAgKiBJZiBjYWxsaW5nIHRoZSB7QGxpbmsgI2NvbXBhcmVUbyhCaWdEZWNpbWFsLCBNYXRoQ29udGV4dCl9IG1ldGhvZAorICAqIHdpdGggdGhlIHNhbWUgcGFyYW1ldGVycyB3b3VsZCByZXR1cm4gPGNvZGU+LTE8L2NvZGU+IG9yCisgICogPGNvZGU+MDwvY29kZT4sIHRoZW4gdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZQorICAqIHtAbGluayAjcGx1cyhNYXRoQ29udGV4dCl9IG1ldGhvZCBvbiB0aGUgY3VycmVudCBvYmplY3QgKHVzaW5nIHRoZQorICAqIHNhbWUgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IHBhcmFtZXRlcikgaXMgcmV0dXJuZWQuCisgICogT3RoZXJ3aXNlLCB0aGUgcmVzdWx0IG9mIGNhbGxpbmcgdGhlIHtAbGluayAjcGx1cyhNYXRoQ29udGV4dCl9CisgICogbWV0aG9kIG9uIHRoZSBmaXJzdCBwYXJhbWV0ZXIgb2JqZWN0ICh1c2luZyB0aGUgc2FtZQorICAqIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBwYXJhbWV0ZXIpIGlzIHJldHVybmVkLgorICAqCisgICogQHBhcmFtICByaHMgVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGZvciB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mCisgICogICAgICAgICAgICAgdGhlIGNvbXBhcmlzb24uCisgICogQHBhcmFtICBzZXQgVGhlIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBhcml0aG1ldGljIHNldHRpbmdzLgorICAqIEByZXR1cm4gICAgIEEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiAgICAgICAgICAgICB0aGUgbWluaW11bSBvZiA8Y29kZT50aGlzPC9jb2RlPiBhbmQgPGNvZGU+cmhzPC9jb2RlPi4KKyAgKiBAc2luY2UgIElCTSBKREsgMS4xLjgKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG1pbihjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgc2V0KXsKKyAgaWYgKCh0aGlzLmNvbXBhcmVUbyhyaHMsc2V0KSk8PTApIAorICAgcmV0dXJuIHRoaXMucGx1cyhzZXQpOworICBlbHNlIAorICAgcmV0dXJuIHJocy5wbHVzKHNldCk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSBwbGFpbiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqIDxjb2RlPnRoaXMqcmhzPC9jb2RlPiwgdXNpbmcgZml4ZWQgcG9pbnQgYXJpdGhtZXRpYy4KKyAgKiA8cD4KKyAgKiBUaGUgc2FtZSBhcyB7QGxpbmsgI2FkZChCaWdEZWNpbWFsLCBNYXRoQ29udGV4dCl9LAorICAqIHdoZXJlIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBpcyA8Y29kZT5yaHM8L2NvZGU+LAorICAqIGFuZCB0aGUgY29udGV4dCBpcyA8Y29kZT5uZXcgTWF0aENvbnRleHQoMCwgTWF0aENvbnRleHQuUExBSU4pPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBUaGUgbGVuZ3RoIG9mIHRoZSBkZWNpbWFsIHBhcnQgKHRoZSBzY2FsZSkgb2YgdGhlIHJlc3VsdCB3aWxsIGJlCisgICogdGhlIHN1bSBvZiB0aGUgc2NhbGVzIG9mIHRoZSBvcGVyYW5kcywgaWYgdGhleSB3ZXJlIGZvcm1hdHRlZAorICAqIHdpdGhvdXQgZXhwb25lbnRpYWwgbm90YXRpb24uCisgICoKKyAgKiBAcGFyYW0gIHJocyBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZm9yIHRoZSByaWdodCBoYW5kIHNpZGUgb2YKKyAgKiAgICAgICAgICAgICB0aGUgbXVsdGlwbGljYXRpb24uCisgICogQHJldHVybiAgICAgQSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqICAgICAgICAgICAgIDxjb2RlPnRoaXMqcmhzPC9jb2RlPiwgdXNpbmcgZml4ZWQgcG9pbnQgYXJpdGhtZXRpYy4KKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG11bHRpcGx5KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByaHMpeworICByZXR1cm4gdGhpcy5tdWx0aXBseShyaHMscGxhaW5NQyk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcyA8Y29kZT50aGlzKnJoczwvY29kZT4uCisgICogPHA+CisgICogSW1wbGVtZW50cyB0aGUgbXVsdGlwbGljYXRpb24gKDxiPjxjb2RlPio8L2NvZGU+PC9iPikgb3BlcmF0b3IKKyAgKiAoYXMgZGVmaW5lZCBpbiB0aGUgZGVjaW1hbCBkb2N1bWVudGF0aW9uLCBzZWUge0BsaW5rIEJpZ0RlY2ltYWwKKyAgKiBjbGFzcyBoZWFkZXJ9KSwKKyAgKiBhbmQgcmV0dXJucyB0aGUgcmVzdWx0IGFzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0LgorICAqCisgICogQHBhcmFtICByaHMgVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGZvciB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mCisgICogICAgICAgICAgICAgdGhlIG11bHRpcGxpY2F0aW9uLgorICAqIEBwYXJhbSAgc2V0IFRoZSA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gYXJpdGhtZXRpYyBzZXR0aW5ncy4KKyAgKiBAcmV0dXJuICAgICBBIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogICAgICAgICAgICAgPGNvZGU+dGhpcypyaHM8L2NvZGU+LgorICAqIEBzaW5jZSAgSUJNIEpESyAxLjEuOAorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbXVsdGlwbHkoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IHNldCl7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBsaHM7CisgIGludCBwYWRkaW5nOworICBpbnQgcmVxZGlnOworICBieXRlIG11bHRlcltdPW51bGw7CisgIGJ5dGUgbXVsdGFuZFtdPW51bGw7CisgIGludCBtdWx0YW5kbGVuOworICBpbnQgYWNjbGVuPTA7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByZXM7CisgIGJ5dGUgYWNjW107CisgIGludCBuPTA7CisgIGJ5dGUgbXVsdD0wOworICBpZiAoc2V0Lmxvc3REaWdpdHMpIAorICAgY2hlY2tkaWdpdHMocmhzLHNldC5kaWdpdHMpOworICBsaHM9dGhpczsgLy8gbmFtZSBmb3IgY2xhcml0eSBhbmQgcHJveHkKKyAgCisgIC8qIFByZXBhcmUgbnVtYmVycyAodHJ1bmNhdGUsIHVubGVzcyB1bmxpbWl0ZWQgcHJlY2lzaW9uKSAqLworICBwYWRkaW5nPTA7IC8vIHRyYWlsaW5nIDAncyB0byBhZGQKKyAgcmVxZGlnPXNldC5kaWdpdHM7IC8vIGxvY2FsIGNvcHkKKyAgaWYgKHJlcWRpZz4wKSAKKyAgIHsKKyAgICBpZiAobGhzLm1hbnQubGVuZ3RoPnJlcWRpZykgCisgICAgIGxocz1jbG9uZShsaHMpLnJvdW5kKHNldCk7CisgICAgaWYgKHJocy5tYW50Lmxlbmd0aD5yZXFkaWcpIAorICAgICByaHM9Y2xvbmUocmhzKS5yb3VuZChzZXQpOworICAgLy8gW3dlIGNvdWxkIHJldXNlIHRoZSBuZXcgTEhTIGZvciByZXN1bHQgaW4gdGhpcyBjYXNlXQorICAgfQorICBlbHNlIAorICAgey8qIHVubGltaXRlZCAqLworICAgIC8vIGZpeGVkIHBvaW50IGFyaXRobWV0aWMgd2lsbCB3YW50IGV2ZXJ5IHRyYWlsaW5nIDA7IHdlIGFkZCB0aGVzZQorICAgIC8vIGFmdGVyIHRoZSBjYWxjdWxhdGlvbiByYXRoZXIgdGhhbiBiZWZvcmUsIGZvciBzcGVlZC4KKyAgICBpZiAobGhzLmV4cD4wKSAKKyAgICAgcGFkZGluZz1wYWRkaW5nK2xocy5leHA7CisgICAgaWYgKHJocy5leHA+MCkgCisgICAgIHBhZGRpbmc9cGFkZGluZytyaHMuZXhwOworICAgfQorICAKKyAgLy8gRm9yIGJlc3Qgc3BlZWQsIGFzIGluIERNU1JDTiwgd2UgdXNlIHRoZSBzaG9ydGVyIG51bWJlciBhcyB0aGUKKyAgLy8gbXVsdGlwbGllciBhbmQgdGhlIGxvbmdlciBhcyB0aGUgbXVsdGlwbGljYW5kLgorICAvLyAxOTk5LjEyLjIyOiBXZSB1c2VkIHRvIHNwZWNpYWwgY2FzZSB3aGVuIHRoZSByZXN1bHQgd291bGQgZml0IGluCisgIC8vICAgICAgICAgICAgIGEgbG9uZywgYnV0IHdpdGggSmF2YSAxLjMgdGhpcyBnYXZlIG5vIGFkdmFudGFnZS4KKyAgaWYgKGxocy5tYW50Lmxlbmd0aDxyaHMubWFudC5sZW5ndGgpIAorICAgeworICAgIG11bHRlcj1saHMubWFudDsKKyAgICBtdWx0YW5kPXJocy5tYW50OworICAgfQorICBlbHNlIAorICAgeworICAgIG11bHRlcj1yaHMubWFudDsKKyAgICBtdWx0YW5kPWxocy5tYW50OworICAgfQorICAKKyAgLyogQ2FsY3VsYXRlIGhvdyBsb25nIHJlc3VsdCBieXRlIGFycmF5IHdpbGwgYmUgKi8KKyAgbXVsdGFuZGxlbj0obXVsdGVyLmxlbmd0aCttdWx0YW5kLmxlbmd0aCktMTsgLy8gZWZmZWN0aXZlIGxlbmd0aAorICAvLyBvcHRpbWl6ZSBmb3IgNzUlIG9mIHRoZSBjYXNlcyB3aGVyZSBhIGNhcnJ5IGlzIGV4cGVjdGVkLi4uCisgIGlmICgobXVsdGVyWzBdKm11bHRhbmRbMF0pPjkpIAorICAgYWNjbGVuPW11bHRhbmRsZW4rMTsKKyAgZWxzZSAKKyAgIGFjY2xlbj1tdWx0YW5kbGVuOworICAKKyAgLyogTm93IHRoZSBtYWluIGxvbmcgbXVsdGlwbGljYXRpb24gbG9vcCAqLworICByZXM9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgpOyAvLyB3aGVyZSB3ZSdsbCBidWlsZCByZXN1bHQKKyAgYWNjPW5ldyBieXRlW2FjY2xlbl07IC8vIGFjY3VtdWxhdG9yLCBhbGwgemVyb3MKKyAgLy8gMTk5OC4wNy4wMTogY2FsY3VsYXRlIGZyb20gbGVmdCB0byByaWdodCBzbyB0aGF0IGFjY3VtdWxhdG9yIGdvZXMKKyAgLy8gdG8gbGlrZWx5IGZpbmFsIGxlbmd0aCBvbiBmaXJzdCBhZGRpdGlvbjsgdGhpcyBhdm9pZHMgYSBvbmUtZGlnaXQKKyAgLy8gZXh0ZW5zaW9uIChhbmQgb2JqZWN0IGFsbG9jYXRpb24pIGVhY2ggdGltZSBhcm91bmQgdGhlIGxvb3AuCisgIC8vIEluaXRpYWwgbnVtYmVyIHRoZXJlZm9yZSBoYXMgdmlydHVhbCB6ZXJvcyBhZGRlZCB0byByaWdodC4KKyAge2ludCAkNz1tdWx0ZXIubGVuZ3RoO249MDtuOmZvcig7JDc+MDskNy0tLG4rKyl7CisgICBtdWx0PW11bHRlcltuXTsKKyAgIGlmIChtdWx0IT0wKSAKKyAgICB7IC8vIFtvcHRpbWl6YXRpb25dCisgICAgIC8vIGFjY3VtdWxhdGUgW2FjY3VtdWxhdG9yIGlzIHJldXNhYmxlIGFycmF5XQorICAgICBhY2M9Ynl0ZWFkZHN1YihhY2MsYWNjLmxlbmd0aCxtdWx0YW5kLG11bHRhbmRsZW4sbXVsdCx0cnVlKTsKKyAgICB9CisgICAvLyBkaXZpZGUgbXVsdGlwbGljYW5kIGJ5IDEwIGZvciBuZXh0IGRpZ2l0IHRvIHJpZ2h0CisgICBtdWx0YW5kbGVuLS07IC8vICd2aXJ0dWFsIGxlbmd0aCcKKyAgIH0KKyAgfS8qbiovCisgIAorICByZXMuaW5kPShieXRlKShsaHMuaW5kKnJocy5pbmQpOyAvLyBmaW5hbCBzaWduCisgIHJlcy5leHA9KGxocy5leHArcmhzLmV4cCktcGFkZGluZzsgLy8gZmluYWwgZXhwb25lbnQKKyAgLy8gW292ZXJmbG93IGlzIGNoZWNrZWQgYnkgZmluaXNoXQorICAKKyAgLyogYWRkIHRyYWlsaW5nIHplcm9zIHRvIHRoZSByZXN1bHQsIGlmIG5lY2Vzc2FyeSAqLworICBpZiAocGFkZGluZz09MCkgCisgICByZXMubWFudD1hY2M7CisgIGVsc2UgCisgICByZXMubWFudD1leHRlbmQoYWNjLGFjYy5sZW5ndGgrcGFkZGluZyk7IC8vIGFkZCB0cmFpbGluZyAwcworICByZXR1cm4gcmVzLmZpbmlzaChzZXQsZmFsc2UpOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgcGxhaW4gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiA8Y29kZT4tdGhpczwvY29kZT4uCisgICogPHA+CisgICogVGhlIHNhbWUgYXMge0BsaW5rICNuZWdhdGUoTWF0aENvbnRleHQpfSwgd2hlcmUgdGhlIGNvbnRleHQgaXMKKyAgKiA8Y29kZT5uZXcgTWF0aENvbnRleHQoMCwgTWF0aENvbnRleHQuUExBSU4pPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBUaGUgbGVuZ3RoIG9mIHRoZSBkZWNpbWFsIHBhcnQgKHRoZSBzY2FsZSkgb2YgdGhlIHJlc3VsdCB3aWxsIGJlCisgICogYmUgPGNvZGU+dGhpcy5zY2FsZSgpPC9jb2RlPgorICAqCisgICoKKyAgKiBAcmV0dXJuIEEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiAgICAgICAgIDxjb2RlPi10aGlzPC9jb2RlPi4KKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG5lZ2F0ZSgpeworICByZXR1cm4gdGhpcy5uZWdhdGUocGxhaW5NQyk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcyA8Y29kZT4tdGhpczwvY29kZT4uCisgICogPHA+CisgICogSW1wbGVtZW50cyB0aGUgbmVnYXRpb24gKFByZWZpeCA8Yj48Y29kZT4tPC9jb2RlPjwvYj4pIG9wZXJhdG9yCisgICogKGFzIGRlZmluZWQgaW4gdGhlIGRlY2ltYWwgZG9jdW1lbnRhdGlvbiwgc2VlIHtAbGluayBCaWdEZWNpbWFsCisgICogY2xhc3MgaGVhZGVyfSksCisgICogYW5kIHJldHVybnMgdGhlIHJlc3VsdCBhcyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9iamVjdC4KKyAgKgorICAqIEBwYXJhbSAgc2V0IFRoZSA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gYXJpdGhtZXRpYyBzZXR0aW5ncy4KKyAgKiBAcmV0dXJuIEEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiAgICAgICAgIDxjb2RlPi10aGlzPC9jb2RlPi4KKyAgKiBAc2luY2UgIElCTSBKREsgMS4xLjgKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG5lZ2F0ZShjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IHNldCl7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByZXM7CisgIC8vIE9yaWdpbmFsbHkgY2FsbGVkIG1pbnVzKCksIGNoYW5nZWQgdG8gbWF0Y2hlZCBKYXZhIHByZWNlZGVudHMKKyAgLy8gVGhpcyBzaW1wbHkgY2xvbmVzLCBmbGlwcyB0aGUgc2lnbiwgYW5kIHBvc3NpYmx5IHJvdW5kcworICBpZiAoc2V0Lmxvc3REaWdpdHMpIAorICAgY2hlY2tkaWdpdHMoKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCludWxsLHNldC5kaWdpdHMpOworICByZXM9Y2xvbmUodGhpcyk7IC8vIHNhZmUgY29weQorICByZXMuaW5kPShieXRlKS1yZXMuaW5kOworICByZXR1cm4gcmVzLmZpbmlzaChzZXQsZmFsc2UpOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgcGxhaW4gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiA8Y29kZT4rdGhpczwvY29kZT4uCisgICogTm90ZSB0aGF0IDxjb2RlPnRoaXM8L2NvZGU+IGlzIG5vdCBuZWNlc3NhcmlseSBhCisgICogcGxhaW4gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4sIGJ1dCB0aGUgcmVzdWx0IHdpbGwgYWx3YXlzIGJlLgorICAqIDxwPgorICAqIFRoZSBzYW1lIGFzIHtAbGluayAjcGx1cyhNYXRoQ29udGV4dCl9LCB3aGVyZSB0aGUgY29udGV4dCBpcworICAqIDxjb2RlPm5ldyBNYXRoQ29udGV4dCgwLCBNYXRoQ29udGV4dC5QTEFJTik8L2NvZGU+LgorICAqIDxwPgorICAqIFRoZSBsZW5ndGggb2YgdGhlIGRlY2ltYWwgcGFydCAodGhlIHNjYWxlKSBvZiB0aGUgcmVzdWx0IHdpbGwgYmUKKyAgKiBiZSA8Y29kZT50aGlzLnNjYWxlKCk8L2NvZGU+CisgICoKKyAgKiBAcmV0dXJuIEEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiAgICAgICAgIDxjb2RlPit0aGlzPC9jb2RlPi4KKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHBsdXMoKXsKKyAgcmV0dXJuIHRoaXMucGx1cyhwbGFpbk1DKTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogPGNvZGU+K3RoaXM8L2NvZGU+LgorICAqIDxwPgorICAqIEltcGxlbWVudHMgdGhlIHBsdXMgKFByZWZpeCA8Yj48Y29kZT4rPC9jb2RlPjwvYj4pIG9wZXJhdG9yCisgICogKGFzIGRlZmluZWQgaW4gdGhlIGRlY2ltYWwgZG9jdW1lbnRhdGlvbiwgc2VlIHtAbGluayBCaWdEZWNpbWFsCisgICogY2xhc3MgaGVhZGVyfSksCisgICogYW5kIHJldHVybnMgdGhlIHJlc3VsdCBhcyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9iamVjdC4KKyAgKiA8cD4KKyAgKiBUaGlzIG1ldGhvZCBpcyB1c2VmdWwgZm9yIHJvdW5kaW5nIG9yIG90aGVyd2lzZSBhcHBseWluZyBhIGNvbnRleHQKKyAgKiB0byBhIGRlY2ltYWwgdmFsdWUuCisgICoKKyAgKiBAcGFyYW0gIHNldCBUaGUgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IGFyaXRobWV0aWMgc2V0dGluZ3MuCisgICogQHJldHVybiBBIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogICAgICAgICA8Y29kZT4rdGhpczwvY29kZT4uCisgICogQHNpbmNlICBJQk0gSkRLIDEuMS44CisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBwbHVzKGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgc2V0KXsKKyAgLy8gVGhpcyBjbG9uZXMgYW5kIGZvcmNlcyB0aGUgcmVzdWx0IHRvIHRoZSBuZXcgc2V0dGluZ3MKKyAgLy8gTWF5IHJldHVybiBzYW1lIG9iamVjdAorICBpZiAoc2V0Lmxvc3REaWdpdHMpIAorICAgY2hlY2tkaWdpdHMoKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCludWxsLHNldC5kaWdpdHMpOworICAvLyBPcHRpbWl6YXRpb246IHJldHVybnMgc2FtZSBvYmplY3QgZm9yIHNvbWUgY29tbW9uIGNhc2VzCisgIGlmIChzZXQuZm9ybT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTikgCisgICBpZiAodGhpcy5mb3JtPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOKSAKKyAgICB7CisgICAgIGlmICh0aGlzLm1hbnQubGVuZ3RoPD1zZXQuZGlnaXRzKSAKKyAgICAgIHJldHVybiB0aGlzOworICAgICBpZiAoc2V0LmRpZ2l0cz09MCkgCisgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisgIHJldHVybiBjbG9uZSh0aGlzKS5maW5pc2goc2V0LGZhbHNlKTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIHBsYWluIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogPGNvZGU+dGhpcyoqcmhzPC9jb2RlPiwgdXNpbmcgZml4ZWQgcG9pbnQgYXJpdGhtZXRpYy4KKyAgKiA8cD4KKyAgKiBUaGUgc2FtZSBhcyB7QGxpbmsgI3BvdyhCaWdEZWNpbWFsLCBNYXRoQ29udGV4dCl9LAorICAqIHdoZXJlIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBpcyA8Y29kZT5yaHM8L2NvZGU+LAorICAqIGFuZCB0aGUgY29udGV4dCBpcyA8Y29kZT5uZXcgTWF0aENvbnRleHQoMCwgTWF0aENvbnRleHQuUExBSU4pPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBUaGUgcGFyYW1ldGVyIGlzIHRoZSBwb3dlciB0byB3aGljaCB0aGUgPGNvZGU+dGhpczwvY29kZT4gd2lsbCBiZQorICAqIHJhaXNlZDsgaXQgbXVzdCBiZSBpbiB0aGUgcmFuZ2UgMCB0aHJvdWdoIDk5OTk5OTk5OSwgYW5kIG11c3QKKyAgKiBoYXZlIGEgZGVjaW1hbCBwYXJ0IG9mIHplcm8uICBOb3RlIHRoYXQgdGhlc2UgcmVzdHJpY3Rpb25zIG1heSBiZQorICAqIHJlbW92ZWQgaW4gdGhlIGZ1dHVyZSwgc28gdGhleSBzaG91bGQgbm90IGJlIHVzZWQgYXMgYSB0ZXN0IGZvciBhCisgICogd2hvbGUgbnVtYmVyLgorICAqIDxwPgorICAqIEluIGFkZGl0aW9uLCB0aGUgcG93ZXIgbXVzdCBub3QgYmUgbmVnYXRpdmUsIGFzIG5vCisgICogPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IGlzIHVzZWQgYW5kIHNvIHRoZSByZXN1bHQgd291bGQgdGhlbgorICAqIGFsd2F5cyBiZSAwLgorICAqCisgICogQHBhcmFtICByaHMgVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGZvciB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mCisgICogICAgICAgICAgICAgdGhlIG9wZXJhdGlvbiAodGhlIHBvd2VyKS4KKyAgKiBAcmV0dXJuICAgICBBIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogICAgICAgICAgICAgPGNvZGU+dGhpcyoqcmhzPC9jb2RlPiwgdXNpbmcgZml4ZWQgcG9pbnQgYXJpdGhtZXRpYy4KKyAgKiBAdGhyb3dzIEFyaXRobWV0aWNFeGNlcHRpb24gaWYgPGNvZGU+cmhzPC9jb2RlPiBpcyBvdXQgb2YgcmFuZ2Ugb3IKKyAgKiAgICAgICAgICAgICBpcyBub3QgYSB3aG9sZSBudW1iZXIuCisgICogQHNpbmNlICBJQk0gSkRLIDEuMS44CisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBwb3coY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyl7CisgIHJldHVybiB0aGlzLnBvdyhyaHMscGxhaW5NQyk7CisgIH0KKyAvLyBUaGUgbmFtZSBmb3IgdGhpcyBtZXRob2QgaXMgaW5oZXJpdGVkIGZyb20gdGhlIHByZWNlZGVudCBzZXQgYnkgdGhlCisgLy8gQmlnSW50ZWdlciBhbmQgTWF0aCBjbGFzc2VzLgorIAorIC8qKgorICAqIFJldHVybnMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcyA8Y29kZT50aGlzKipyaHM8L2NvZGU+LgorICAqIDxwPgorICAqIEltcGxlbWVudHMgdGhlIHBvd2VyICg8Yj48Y29kZT4qKjwvY29kZT48L2I+KSBvcGVyYXRvcgorICAqIChhcyBkZWZpbmVkIGluIHRoZSBkZWNpbWFsIGRvY3VtZW50YXRpb24sIHNlZSB7QGxpbmsgQmlnRGVjaW1hbAorICAqIGNsYXNzIGhlYWRlcn0pLAorICAqIGFuZCByZXR1cm5zIHRoZSByZXN1bHQgYXMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3QuCisgICogPHA+CisgICogVGhlIGZpcnN0IHBhcmFtZXRlciBpcyB0aGUgcG93ZXIgdG8gd2hpY2ggdGhlIDxjb2RlPnRoaXM8L2NvZGU+CisgICogd2lsbCBiZSByYWlzZWQ7IGl0IG11c3QgYmUgaW4gdGhlIHJhbmdlIC05OTk5OTk5OTkgdGhyb3VnaAorICAqIDk5OTk5OTk5OSwgYW5kIG11c3QgaGF2ZSBhIGRlY2ltYWwgcGFydCBvZiB6ZXJvLiAgTm90ZSB0aGF0IHRoZXNlCisgICogcmVzdHJpY3Rpb25zIG1heSBiZSByZW1vdmVkIGluIHRoZSBmdXR1cmUsIHNvIHRoZXkgc2hvdWxkIG5vdCBiZQorICAqIHVzZWQgYXMgYSB0ZXN0IGZvciBhIHdob2xlIG51bWJlci4KKyAgKiA8cD4KKyAgKiBJZiB0aGUgPGNvZGU+ZGlnaXRzPC9jb2RlPiBzZXR0aW5nIG9mIHRoZSA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4KKyAgKiBwYXJhbWV0ZXIgaXMgMCwgdGhlIHBvd2VyIG11c3QgYmUgemVybyBvciBwb3NpdGl2ZS4KKyAgKgorICAqIEBwYXJhbSAgcmhzIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBmb3IgdGhlIHJpZ2h0IGhhbmQgc2lkZSBvZgorICAqICAgICAgICAgICAgIHRoZSBvcGVyYXRpb24gKHRoZSBwb3dlcikuCisgICogQHBhcmFtICBzZXQgVGhlIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBhcml0aG1ldGljIHNldHRpbmdzLgorICAqIEByZXR1cm4gICAgIEEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiAgICAgICAgICAgICA8Y29kZT50aGlzKipyaHM8L2NvZGU+LgorICAqIEB0aHJvd3MgQXJpdGhtZXRpY0V4Y2VwdGlvbiBpZiA8Y29kZT5yaHM8L2NvZGU+IGlzIG91dCBvZiByYW5nZSBvcgorICAqICAgICAgICAgICAgIGlzIG5vdCBhIHdob2xlIG51bWJlci4KKyAgKiBAc2luY2UgIElCTSBKREsgMS4xLjgKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHBvdyhjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgc2V0KXsKKyAgaW50IG47CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBsaHM7CisgIGludCByZXFkaWc7CisgIGludCB3b3JrZGlnaXRzPTA7CisgIGludCBMPTA7CisgIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgd29ya3NldDsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJlczsKKyAgYm9vbGVhbiBzZWVuYml0OworICBpbnQgaT0wOworICBpZiAoc2V0Lmxvc3REaWdpdHMpIAorICAgY2hlY2tkaWdpdHMocmhzLHNldC5kaWdpdHMpOworICBuPXJocy5pbnRjaGVjayhNaW5BcmcsTWF4QXJnKTsgLy8gY2hlY2sgUkhTIGJ5IHRoZSBydWxlcworICBsaHM9dGhpczsgLy8gY2xhcmlmaWVkIG5hbWUKKyAgCisgIHJlcWRpZz1zZXQuZGlnaXRzOyAvLyBsb2NhbCBjb3B5IChoZWF2aWx5IHVzZWQpCisgIGlmIChyZXFkaWc9PTApIAorICAgeworICAgIGlmIChyaHMuaW5kPT1pc25lZykgCisgICAgIHRocm93IG5ldyBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbigiTmVnYXRpdmUgcG93ZXI6IisiICIrcmhzLnRvU3RyaW5nKCkpOworICAgIHdvcmtkaWdpdHM9MDsKKyAgIH0KKyAgZWxzZSAKKyAgIHsvKiBub24tMCBkaWdpdHMgKi8KKyAgICBpZiAoKHJocy5tYW50Lmxlbmd0aCtyaHMuZXhwKT5yZXFkaWcpIAorICAgICB0aHJvdyBuZXcgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24oIlRvbyBtYW55IGRpZ2l0czoiKyIgIityaHMudG9TdHJpbmcoKSk7CisgICAgCisgICAgLyogUm91bmQgdGhlIGxocyB0byBESUdJVFMgaWYgbmVlZCBiZSAqLworICAgIGlmIChsaHMubWFudC5sZW5ndGg+cmVxZGlnKSAKKyAgICAgbGhzPWNsb25lKGxocykucm91bmQoc2V0KTsKKyAgICAKKyAgICAvKiBMIGZvciBwcmVjaXNpb24gY2FsY3VsYXRpb24gW3NlZSBBTlNJIFgzLjI3NC0xOTk2XSAqLworICAgIEw9cmhzLm1hbnQubGVuZ3RoK3Jocy5leHA7IC8vIGxlbmd0aCB3aXRob3V0IGRlY2ltYWwgemVyb3MvZXhwCisgICAgd29ya2RpZ2l0cz0ocmVxZGlnK0wpKzE7IC8vIGNhbGN1bGF0ZSB0aGUgd29ya2luZyBESUdJVFMKKyAgIH0KKyAgCisgIC8qIENyZWF0ZSBhIGNvcHkgb2Ygc2V0IGZvciB3b3JraW5nIHNldHRpbmdzICovCisgIC8vIE5vdGU6IG5vIG5lZWQgdG8gY2hlY2sgZm9yIGxvc3REaWdpdHMgYWdhaW4uCisgIC8vIDE5OTkuMDcuMTcgTm90ZTogdGhpcyBjb25zdHJ1Y3Rpb24gbXVzdCBmb2xsb3cgUkhTIGNoZWNrCisgIHdvcmtzZXQ9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQod29ya2RpZ2l0cyxzZXQuZm9ybSxmYWxzZSxzZXQucm91bmRpbmdNb2RlKTsKKyAgCisgIHJlcz1PTkU7IC8vIGFjY3VtdWxhdG9yCisgIGlmIChuPT0wKSAKKyAgIHJldHVybiByZXM7IC8vIHgqKjAgPT0gMQorICBpZiAobjwwKSAKKyAgIG49KGludCktbjsgLy8gW3Jocy5pbmQgcmVjb3JkcyB0aGUgc2lnbl0KKyAgc2VlbmJpdD1mYWxzZTsgLy8gc2V0IG9uY2Ugd2UndmUgc2VlbiBhIDEtYml0CisgIHtpPTE7aTpmb3IoOztpKyspeyAvLyBmb3IgZWFjaCBiaXQgW3RvcCBiaXQgaWdub3JlZF0KKyAgIG49bituOyAvLyBzaGlmdCBsZWZ0IDEgYml0CisgICBpZiAobjwwKSAKKyAgICB7IC8vIHRvcCBiaXQgaXMgc2V0CisgICAgIHNlZW5iaXQ9dHJ1ZTsgLy8gT0ssIHdlJ3JlIG9mZgorICAgICByZXM9cmVzLm11bHRpcGx5KGxocyx3b3Jrc2V0KTsgLy8gYWNjPWFjYyp4CisgICAgfQorICAgaWYgKGk9PTMxKSAKKyAgICBicmVhayBpOyAvLyB0aGF0IHdhcyB0aGUgbGFzdCBiaXQKKyAgIGlmICgoIXNlZW5iaXQpKSAKKyAgICBjb250aW51ZSBpOyAvLyB3ZSBkb24ndCBoYXZlIHRvIHNxdWFyZSAxCisgICByZXM9cmVzLm11bHRpcGx5KHJlcyx3b3Jrc2V0KTsgLy8gYWNjPWFjYyphY2MgW3NxdWFyZV0KKyAgIH0KKyAgfS8qaSovIC8vIDMyIGJpdHMKKyAgaWYgKHJocy5pbmQ8MCkgIC8vIHdhcyBhICoqLW4gW2hlbmNlIGRpZ2l0cz4wXQorICAgcmVzPU9ORS5kaXZpZGUocmVzLHdvcmtzZXQpOyAvLyAuLiBzbyBhY2M9MS9hY2MKKyAgcmV0dXJuIHJlcy5maW5pc2goc2V0LHRydWUpOyAvLyByb3VuZCBhbmQgc3RyaXAgW29yaWdpbmFsIGRpZ2l0c10KKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIHBsYWluIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogdGhlIHJlbWFpbmRlciBvZiA8Y29kZT50aGlzL3JoczwvY29kZT4sIHVzaW5nIGZpeGVkIHBvaW50IGFyaXRobWV0aWMuCisgICogPHA+CisgICogVGhlIHNhbWUgYXMge0BsaW5rICNyZW1haW5kZXIoQmlnRGVjaW1hbCwgTWF0aENvbnRleHQpfSwKKyAgKiB3aGVyZSB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaXMgPGNvZGU+cmhzPC9jb2RlPiwKKyAgKiBhbmQgdGhlIGNvbnRleHQgaXMgPGNvZGU+bmV3IE1hdGhDb250ZXh0KDAsIE1hdGhDb250ZXh0LlBMQUlOKTwvY29kZT4uCisgICogPHA+CisgICogVGhpcyBpcyBub3QgdGhlIG1vZHVsbyBvcGVyYXRvciAtLSB0aGUgcmVzdWx0IG1heSBiZSBuZWdhdGl2ZS4KKyAgKgorICAqIEBwYXJhbSAgcmhzIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBmb3IgdGhlIHJpZ2h0IGhhbmQgc2lkZSBvZgorICAqICAgICAgICAgICAgIHRoZSByZW1haW5kZXIgb3BlcmF0aW9uLgorICAqIEByZXR1cm4gICAgIEEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMgdGhlIHJlbWFpbmRlcgorICAqICAgICAgICAgICAgIG9mIDxjb2RlPnRoaXMvcmhzPC9jb2RlPiwgdXNpbmcgZml4ZWQgcG9pbnQgYXJpdGhtZXRpYy4KKyAgKiBAdGhyb3dzIEFyaXRobWV0aWNFeGNlcHRpb24gaWYgPGNvZGU+cmhzPC9jb2RlPiBpcyB6ZXJvLgorICAqIEBzaW5jZSAgSUJNIEpESyAxLjEuOAorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmVtYWluZGVyKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByaHMpeworICByZXR1cm4gdGhpcy5kb2RpdmlkZSgnUicscmhzLHBsYWluTUMsLTEpOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMgdGhlIHJlbWFpbmRlciBvZgorICAqIDxjb2RlPnRoaXMvcmhzPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBJbXBsZW1lbnRzIHRoZSByZW1haW5kZXIgb3BlcmF0b3IKKyAgKiAoYXMgZGVmaW5lZCBpbiB0aGUgZGVjaW1hbCBkb2N1bWVudGF0aW9uLCBzZWUge0BsaW5rIEJpZ0RlY2ltYWwKKyAgKiBjbGFzcyBoZWFkZXJ9KSwKKyAgKiBhbmQgcmV0dXJucyB0aGUgcmVzdWx0IGFzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0LgorICAqIDxwPgorICAqIFRoaXMgaXMgbm90IHRoZSBtb2R1bG8gb3BlcmF0b3IgLS0gdGhlIHJlc3VsdCBtYXkgYmUgbmVnYXRpdmUuCisgICoKKyAgKiBAcGFyYW0gIHJocyBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZm9yIHRoZSByaWdodCBoYW5kIHNpZGUgb2YKKyAgKiAgICAgICAgICAgICB0aGUgcmVtYWluZGVyIG9wZXJhdGlvbi4KKyAgKiBAcGFyYW0gIHNldCBUaGUgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IGFyaXRobWV0aWMgc2V0dGluZ3MuCisgICogQHJldHVybiAgICAgQSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcyB0aGUgcmVtYWluZGVyCisgICogICAgICAgICAgICAgb2YgPGNvZGU+dGhpcytyaHM8L2NvZGU+LgorICAqIEB0aHJvd3MgQXJpdGhtZXRpY0V4Y2VwdGlvbiBpZiA8Y29kZT5yaHM8L2NvZGU+IGlzIHplcm8uCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIHRoZSBpbnRlZ2VyIHBhcnQgb2YgdGhlIHJlc3VsdCB3aWxsCisgICogICAgICAgICAgICAgbm90IGZpdCBpbiB0aGUgbnVtYmVyIG9mIGRpZ2l0cyBzcGVjaWZpZWQgZm9yIHRoZQorICAqICAgICAgICAgICAgIGNvbnRleHQuCisgICogQHNpbmNlICBJQk0gSkRLIDEuMS44CisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByZW1haW5kZXIoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IHNldCl7CisgIHJldHVybiB0aGlzLmRvZGl2aWRlKCdSJyxyaHMsc2V0LC0xKTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIHBsYWluIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogPGNvZGU+dGhpcy1yaHM8L2NvZGU+LCB1c2luZyBmaXhlZCBwb2ludCBhcml0aG1ldGljLgorICAqIDxwPgorICAqIFRoZSBzYW1lIGFzIHtAbGluayAjc3VidHJhY3QoQmlnRGVjaW1hbCwgTWF0aENvbnRleHQpfSwKKyAgKiB3aGVyZSB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaXMgPGNvZGU+cmhzPC9jb2RlPiwKKyAgKiBhbmQgdGhlIGNvbnRleHQgaXMgPGNvZGU+bmV3IE1hdGhDb250ZXh0KDAsIE1hdGhDb250ZXh0LlBMQUlOKTwvY29kZT4uCisgICogPHA+CisgICogVGhlIGxlbmd0aCBvZiB0aGUgZGVjaW1hbCBwYXJ0ICh0aGUgc2NhbGUpIG9mIHRoZSByZXN1bHQgd2lsbCBiZQorICAqIHRoZSBtYXhpbXVtIG9mIHRoZSBzY2FsZXMgb2YgdGhlIHR3byBvcGVyYW5kcy4KKyAgKgorICAqIEBwYXJhbSAgcmhzIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBmb3IgdGhlIHJpZ2h0IGhhbmQgc2lkZSBvZgorICAqICAgICAgICAgICAgIHRoZSBzdWJ0cmFjdGlvbi4KKyAgKiBAcmV0dXJuICAgICBBIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogICAgICAgICAgICAgPGNvZGU+dGhpcy1yaHM8L2NvZGU+LCB1c2luZyBmaXhlZCBwb2ludCBhcml0aG1ldGljLgorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgc3VidHJhY3QoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyl7CisgIHJldHVybiB0aGlzLnN1YnRyYWN0KHJocyxwbGFpbk1DKTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzIDxjb2RlPnRoaXMtcmhzPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBJbXBsZW1lbnRzIHRoZSBzdWJ0cmFjdGlvbiAoPGI+PGNvZGU+LTwvY29kZT48L2I+KSBvcGVyYXRvcgorICAqIChhcyBkZWZpbmVkIGluIHRoZSBkZWNpbWFsIGRvY3VtZW50YXRpb24sIHNlZSB7QGxpbmsgQmlnRGVjaW1hbAorICAqIGNsYXNzIGhlYWRlcn0pLAorICAqIGFuZCByZXR1cm5zIHRoZSByZXN1bHQgYXMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3QuCisgICoKKyAgKiBAcGFyYW0gIHJocyBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZm9yIHRoZSByaWdodCBoYW5kIHNpZGUgb2YKKyAgKiAgICAgICAgICAgICB0aGUgc3VidHJhY3Rpb24uCisgICogQHBhcmFtICBzZXQgVGhlIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBhcml0aG1ldGljIHNldHRpbmdzLgorICAqIEByZXR1cm4gICAgIEEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiAgICAgICAgICAgICA8Y29kZT50aGlzLXJoczwvY29kZT4uCisgICogQHNpbmNlICBJQk0gSkRLIDEuMS44CisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBzdWJ0cmFjdChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgc2V0KXsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG5ld3JoczsKKyAgaWYgKHNldC5sb3N0RGlnaXRzKSAKKyAgIGNoZWNrZGlnaXRzKHJocyxzZXQuZGlnaXRzKTsKKyAgLy8gW2FkZCB3aWxsIHJlY2hlY2sgLi4gYnV0IHdvdWxkIHJlcG9ydCAtcmhzXQorICAvKiBjYXJyeSBvdXQgdGhlIHN1YnRyYWN0aW9uICovCisgIC8vIHdlIGNvdWxkIGZhc3RwYXRoIC0wLCBidXQgaXQgaXMgdG9vIHJhcmUuCisgIG5ld3Jocz1jbG9uZShyaHMpOyAvLyBzYWZlIGNvcHkKKyAgbmV3cmhzLmluZD0oYnl0ZSktbmV3cmhzLmluZDsgLy8gcHJlcGFyZSB0byBzdWJ0cmFjdAorICByZXR1cm4gdGhpcy5hZGQobmV3cmhzLHNldCk7IC8vIGFyaXRobWV0aWMKKyAgfQorCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIC8qIE90aGVyIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqCisgICogQ29udmVydHMgdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB0byBhIDxjb2RlPmJ5dGU8L2NvZGU+LgorICAqIElmIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBoYXMgYSBub24temVybyBkZWNpbWFsIHBhcnQgb3IgaXMKKyAgKiBvdXQgb2YgdGhlIHBvc3NpYmxlIHJhbmdlIGZvciBhIDxjb2RlPmJ5dGU8L2NvZGU+ICg4LWJpdCBzaWduZWQKKyAgKiBpbnRlZ2VyKSByZXN1bHQgdGhlbiBhbiA8Y29kZT5Bcml0aG1ldGljRXhjZXB0aW9uPC9jb2RlPiBpcyB0aHJvd24uCisgICoKKyAgKiBAcmV0dXJuIEEgPGNvZGU+Ynl0ZTwvY29kZT4gZXF1YWwgaW4gdmFsdWUgdG8gPGNvZGU+dGhpczwvY29kZT4uCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIDxjb2RlPnRoaXM8L2NvZGU+IGhhcyBhIG5vbi16ZXJvCisgICogICAgICAgICAgICAgICAgIGRlY2ltYWwgcGFydCwgb3Igd2lsbCBub3QgZml0IGluIGEgPGNvZGU+Ynl0ZTwvY29kZT4uCisgICogQHNpbmNlICBJQk0gSkRLIDEuMS44CisgICovCisgCisgcHVibGljIGJ5dGUgYnl0ZVZhbHVlRXhhY3QoKXsKKyAgaW50IG51bTsKKyAgbnVtPXRoaXMuaW50VmFsdWVFeGFjdCgpOyAvLyB3aWxsIGNoZWNrIGRlY2ltYWwgcGFydCB0b28KKyAgaWYgKChudW0+MTI3KXwobnVtPCgtMTI4KSkpIAorICAgdGhyb3cgbmV3IGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uKCJDb252ZXJzaW9uIG92ZXJmbG93OiIrIiAiK3RoaXMudG9TdHJpbmcoKSk7CisgIHJldHVybiAoYnl0ZSludW07CisgIH0KKworIC8qKgorICAqIENvbXBhcmVzIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2l0aCB0aGUgdmFsdWUgb2YgdGhlIHBhcmFtZXRlci4KKyAgKiA8cD4KKyAgKiBJZiB0aGUgcGFyYW1ldGVyIGlzIDxjb2RlPm51bGw8L2NvZGU+LCBvciBpcyBub3QgYW4gaW5zdGFuY2Ugb2YgdGhlCisgICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gdHlwZSwgYW4gZXhjZXB0aW9uIGlzIHRocm93bi4KKyAgKiBPdGhlcndpc2UsIHRoZSBwYXJhbWV0ZXIgaXMgY2FzdCB0byB0eXBlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+CisgICogYW5kIHRoZSByZXN1bHQgb2YgdGhlIHtAbGluayAjY29tcGFyZVRvKEJpZ0RlY2ltYWwpfSBtZXRob2QsCisgICogdXNpbmcgdGhlIGNhc3QgcGFyYW1ldGVyLCBpcyByZXR1cm5lZC4KKyAgKiA8cD4KKyAgKiBUaGUge0BsaW5rICNjb21wYXJlVG8oQmlnRGVjaW1hbCwgTWF0aENvbnRleHQpfSBtZXRob2Qgc2hvdWxkIGJlCisgICogdXNlZCB3aGVuIGEgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IGlzIG5lZWRlZCBmb3IgdGhlIGNvbXBhcmlzb24uCisgICoKKyAgKiBAcGFyYW0gIHJocyBUaGUgPGNvZGU+T2JqZWN0PC9jb2RlPiBmb3IgdGhlIHJpZ2h0IGhhbmQgc2lkZSBvZgorICAqICAgICAgICAgICAgIHRoZSBjb21wYXJpc29uLgorICAqIEByZXR1cm4gICAgIEFuIDxjb2RlPmludDwvY29kZT4gd2hvc2UgdmFsdWUgaXMgLTEsIDAsIG9yIDEgYXMKKyAgKiAgICAgICAgICAgICA8Y29kZT50aGlzPC9jb2RlPiBpcyBudW1lcmljYWxseSBsZXNzIHRoYW4sIGVxdWFsIHRvLAorICAqICAgICAgICAgICAgIG9yIGdyZWF0ZXIgdGhhbiA8Y29kZT5yaHM8L2NvZGU+LgorICAqIEB0aHJvd3MgQ2xhc3NDYXN0RXhjZXB0aW9uIGlmIDxjb2RlPnJoczwvY29kZT4gY2Fubm90IGJlIGNhc3QgdG8KKyAgKiAgICAgICAgICAgICAgICAgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3QuCisgICogQHNlZSAgICAjY29tcGFyZVRvKEJpZ0RlY2ltYWwpCisgICogQHNpbmNlICBKREsxLjIKKyAgKi8KKyAKKyBwdWJsaWMgaW50IGNvbXBhcmVUbyhqYXZhLmxhbmcuT2JqZWN0IHJoc29iail7CisgIC8vIHRoZSBjYXN0IGluIHRoZSBuZXh0IGxpbmUgd2lsbCByYWlzZSBDbGFzc0Nhc3RFeGNlcHRpb24gaWYgbmVjZXNzYXJ5CisgIHJldHVybiBjb21wYXJlVG8oKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbClyaHNvYmoscGxhaW5NQyk7CisgIH0KKworIC8qKgorICAqIENvbnZlcnRzIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gdG8gYSA8Y29kZT5kb3VibGU8L2NvZGU+LgorICAqIElmIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBpcyBvdXQgb2YgdGhlIHBvc3NpYmxlIHJhbmdlIGZvciBhCisgICogPGNvZGU+ZG91YmxlPC9jb2RlPiAoNjQtYml0IHNpZ25lZCBmbG9hdGluZyBwb2ludCkgcmVzdWx0IHRoZW4gYW4KKyAgKiA8Y29kZT5Bcml0aG1ldGljRXhjZXB0aW9uPC9jb2RlPiBpcyB0aHJvd24uCisgICogPHA+CisgICogVGhlIGRvdWJsZSBwcm9kdWNlZCBpcyBpZGVudGljYWwgdG8gcmVzdWx0IG9mIGV4cHJlc3NpbmcgdGhlCisgICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gYXMgYSA8Y29kZT5TdHJpbmc8L2NvZGU+IGFuZCB0aGVuCisgICogY29udmVydGluZyBpdCB1c2luZyB0aGUgPGNvZGU+RG91YmxlKFN0cmluZyk8L2NvZGU+IGNvbnN0cnVjdG9yOworICAqIHRoaXMgY2FuIHJlc3VsdCBpbiB2YWx1ZXMgb2YgPGNvZGU+RG91YmxlLk5FR0FUSVZFX0lORklOSVRZPC9jb2RlPgorICAqIG9yIDxjb2RlPkRvdWJsZS5QT1NJVElWRV9JTkZJTklUWTwvY29kZT4uCisgICoKKyAgKiBAcmV0dXJuIEEgPGNvZGU+ZG91YmxlPC9jb2RlPiBjb3JyZXNwb25kaW5nIHRvIDxjb2RlPnRoaXM8L2NvZGU+LgorICAqLworIAorIHB1YmxpYyBkb3VibGUgZG91YmxlVmFsdWUoKXsKKyAgLy8gV2UgZ28gdmlhIGEgU3RyaW5nIFthcyBkb2VzIEJpZ0RlY2ltYWwgaW4gSkRLIDEuMl0KKyAgLy8gTmV4dCBsaW5lIGNvdWxkIHBvc3NpYmx5IHJhaXNlIE51bWJlckZvcm1hdEV4Y2VwdGlvbgorICByZXR1cm4gamF2YS5sYW5nLkRvdWJsZS52YWx1ZU9mKHRoaXMudG9TdHJpbmcoKSkuZG91YmxlVmFsdWUoKTsKKyAgfQorCisgLyoqCisgICogQ29tcGFyZXMgdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aXRoIDxjb2RlPnJoczwvY29kZT4gZm9yCisgICogZXF1YWxpdHkuCisgICogPHA+CisgICogSWYgdGhlIHBhcmFtZXRlciBpcyA8Y29kZT5udWxsPC9jb2RlPiwgb3IgaXMgbm90IGFuIGluc3RhbmNlIG9mIHRoZQorICAqIEJpZ0RlY2ltYWwgdHlwZSwgb3IgaXMgbm90IGV4YWN0bHkgZXF1YWwgdG8gdGhlIGN1cnJlbnQKKyAgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3QsIHRoZW4gPGk+ZmFsc2U8L2k+IGlzIHJldHVybmVkLgorICAqIE90aGVyd2lzZSwgPGk+dHJ1ZTwvaT4gaXMgcmV0dXJuZWQuCisgICogPHA+CisgICogIkV4YWN0bHkgZXF1YWwiLCBoZXJlLCBtZWFucyB0aGF0IHRoZSA8Y29kZT5TdHJpbmc8L2NvZGU+CisgICogcmVwcmVzZW50YXRpb25zIG9mIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBudW1iZXJzIGFyZQorICAqIGlkZW50aWNhbCAodGhleSBoYXZlIHRoZSBzYW1lIGNoYXJhY3RlcnMgaW4gdGhlIHNhbWUgc2VxdWVuY2UpLgorICAqIDxwPgorICAqIFRoZSB7QGxpbmsgI2NvbXBhcmVUbyhCaWdEZWNpbWFsLCBNYXRoQ29udGV4dCl9IG1ldGhvZCBzaG91bGQgYmUKKyAgKiB1c2VkIGZvciBtb3JlIGdlbmVyYWwgY29tcGFyaXNvbnMuCisgICogQHBhcmFtICByaHMgVGhlIDxjb2RlPk9iamVjdDwvY29kZT4gZm9yIHRoZSByaWdodCBoYW5kIHNpZGUgb2YKKyAgKiAgICAgICAgICAgICB0aGUgY29tcGFyaXNvbi4KKyAgKiBAcmV0dXJuICAgICBBIDxjb2RlPmJvb2xlYW48L2NvZGU+IHdob3NlIHZhbHVlIDxpPnRydWU8L2k+IGlmIGFuZAorICAqICAgICAgICAgICAgIG9ubHkgaWYgdGhlIG9wZXJhbmRzIGhhdmUgaWRlbnRpY2FsIHN0cmluZyByZXByZXNlbnRhdGlvbnMuCisgICogQHRocm93cyBDbGFzc0Nhc3RFeGNlcHRpb24gaWYgPGNvZGU+cmhzPC9jb2RlPiBjYW5ub3QgYmUgY2FzdCB0bworICAqICAgICAgICAgICAgICAgICBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9iamVjdC4KKyAgKiBAc2VlICAgICNjb21wYXJlVG8oT2JqZWN0KQorICAqIEBzZWUgICAgI2NvbXBhcmVUbyhCaWdEZWNpbWFsKQorICAqIEBzZWUgICAgI2NvbXBhcmVUbyhCaWdEZWNpbWFsLCBNYXRoQ29udGV4dCkKKyAgKi8KKyAKKyBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoamF2YS5sYW5nLk9iamVjdCBvYmopeworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzOworICBpbnQgaT0wOworICBjaGFyIGxjYVtdPW51bGw7CisgIGNoYXIgcmNhW109bnVsbDsKKyAgLy8gV2UgYXJlIGVxdWFsIGlmZiB0b1N0cmluZyBvZiBib3RoIGFyZSBleGFjdGx5IHRoZSBzYW1lCisgIGlmIChvYmo9PW51bGwpIAorICAgcmV0dXJuIGZhbHNlOyAvLyBub3QgZXF1YWwKKyAgaWYgKCghKCgob2JqIGluc3RhbmNlb2YgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKSkpKSkgCisgICByZXR1cm4gZmFsc2U7IC8vIG5vdCBhIGRlY2ltYWwKKyAgcmhzPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwpb2JqOyAvLyBjYXN0OyB3ZSBrbm93IGl0IHdpbGwgd29yaworICBpZiAodGhpcy5pbmQhPXJocy5pbmQpIAorICAgcmV0dXJuIGZhbHNlOyAvLyBkaWZmZXJlbnQgc2lnbnMgbmV2ZXIgbWF0Y2gKKyAgaWYgKCgodGhpcy5tYW50Lmxlbmd0aD09cmhzLm1hbnQubGVuZ3RoKSYodGhpcy5leHA9PXJocy5leHApKSYodGhpcy5mb3JtPT1yaHMuZm9ybSkpIAorICAgCisgICB7IC8vIG1hbnRpc3NhcyBzYXkgYWxsCisgICAgLy8gaGVyZSB3aXRoIGVxdWFsLWxlbmd0aCBieXRlIGFycmF5cyB0byBjb21wYXJlCisgICAge2ludCAkOD10aGlzLm1hbnQubGVuZ3RoO2k9MDtpOmZvcig7JDg+MDskOC0tLGkrKyl7CisgICAgIGlmICh0aGlzLm1hbnRbaV0hPXJocy5tYW50W2ldKSAKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgfQorICAgIH0vKmkqLworICAgfQorICBlbHNlIAorICAgeyAvLyBuZWVkIHByb3BlciBsYXlvdXQKKyAgICBsY2E9dGhpcy5sYXlvdXQoKTsgLy8gbGF5b3V0IHRvIGNoYXJhY3RlciBhcnJheQorICAgIHJjYT1yaHMubGF5b3V0KCk7CisgICAgaWYgKGxjYS5sZW5ndGghPXJjYS5sZW5ndGgpIAorICAgICByZXR1cm4gZmFsc2U7IC8vIG1pc21hdGNoCisgICAgLy8gaGVyZSB3aXRoIGVxdWFsLWxlbmd0aCBjaGFyYWN0ZXIgYXJyYXlzIHRvIGNvbXBhcmUKKyAgICB7aW50ICQ5PWxjYS5sZW5ndGg7aT0wO2k6Zm9yKDskOT4wOyQ5LS0saSsrKXsKKyAgICAgaWYgKGxjYVtpXSE9cmNhW2ldKSAKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgfQorICAgIH0vKmkqLworICAgfQorICByZXR1cm4gdHJ1ZTsgLy8gYXJyYXlzIGhhdmUgaWRlbnRpY2FsIGNvbnRlbnQKKyAgfQorCisgLyoqCisgICogQ29udmVydHMgdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB0byBhIDxjb2RlPmZsb2F0PC9jb2RlPi4KKyAgKiBJZiB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaXMgb3V0IG9mIHRoZSBwb3NzaWJsZSByYW5nZSBmb3IgYQorICAqIDxjb2RlPmZsb2F0PC9jb2RlPiAoMzItYml0IHNpZ25lZCBmbG9hdGluZyBwb2ludCkgcmVzdWx0IHRoZW4gYW4KKyAgKiA8Y29kZT5Bcml0aG1ldGljRXhjZXB0aW9uPC9jb2RlPiBpcyB0aHJvd24uCisgICogPHA+CisgICogVGhlIGZsb2F0IHByb2R1Y2VkIGlzIGlkZW50aWNhbCB0byByZXN1bHQgb2YgZXhwcmVzc2luZyB0aGUKKyAgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBhcyBhIDxjb2RlPlN0cmluZzwvY29kZT4gYW5kIHRoZW4KKyAgKiBjb252ZXJ0aW5nIGl0IHVzaW5nIHRoZSA8Y29kZT5GbG9hdChTdHJpbmcpPC9jb2RlPiBjb25zdHJ1Y3RvcjsKKyAgKiB0aGlzIGNhbiByZXN1bHQgaW4gdmFsdWVzIG9mIDxjb2RlPkZsb2F0Lk5FR0FUSVZFX0lORklOSVRZPC9jb2RlPgorICAqIG9yIDxjb2RlPkZsb2F0LlBPU0lUSVZFX0lORklOSVRZPC9jb2RlPi4KKyAgKgorICAqIEByZXR1cm4gQSA8Y29kZT5mbG9hdDwvY29kZT4gY29ycmVzcG9uZGluZyB0byA8Y29kZT50aGlzPC9jb2RlPi4KKyAgKi8KKyAKKyBwdWJsaWMgZmxvYXQgZmxvYXRWYWx1ZSgpeworICByZXR1cm4gamF2YS5sYW5nLkZsb2F0LnZhbHVlT2YodGhpcy50b1N0cmluZygpKS5mbG9hdFZhbHVlKCk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgdGhlIDxjb2RlPlN0cmluZzwvY29kZT4gcmVwcmVzZW50YXRpb24gb2YgdGhpcworICAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LCBtb2RpZmllZCBieSBsYXlvdXQgcGFyYW1ldGVycy4KKyAgKiA8cD4KKyAgKiA8aT5UaGlzIG1ldGhvZCBpcyBwcm92aWRlZCBhcyBhIHByaW1pdGl2ZSBmb3IgdXNlIGJ5IG1vcmUKKyAgKiBzb3BoaXN0aWNhdGVkIGNsYXNzZXMsIHN1Y2ggYXMgPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4sIHRoYXQKKyAgKiBjYW4gYXBwbHkgbG9jYWxlLXNlbnNpdGl2ZSBlZGl0aW5nIG9mIHRoZSByZXN1bHQuICBUaGUgbGV2ZWwgb2YKKyAgKiBmb3JtYXR0aW5nIHRoYXQgaXQgcHJvdmlkZXMgaXMgYSBuZWNlc3NhcnkgcGFydCBvZiB0aGUgQmlnRGVjaW1hbAorICAqIGNsYXNzIGFzIGl0IGlzIHNlbnNpdGl2ZSB0byBhbmQgbXVzdCBmb2xsb3cgdGhlIGNhbGN1bGF0aW9uIGFuZAorICAqIHJvdW5kaW5nIHJ1bGVzIGZvciBCaWdEZWNpbWFsIGFyaXRobWV0aWMuCisgICogSG93ZXZlciwgaWYgdGhlIGZ1bmN0aW9uIGlzIHByb3ZpZGVkIGVsc2V3aGVyZSwgaXQgbWF5IGJlIHJlbW92ZWQKKyAgKiBmcm9tIHRoaXMgY2xhc3MuIDwvaT4KKyAgKiA8cD4KKyAgKiBUaGUgcGFyYW1ldGVycywgZm9yIGJvdGggZm9ybXMgb2YgdGhlIDxjb2RlPmZvcm1hdDwvY29kZT4gbWV0aG9kCisgICogYXJlIGFsbCBvZiB0eXBlIDxjb2RlPmludDwvY29kZT4uCisgICogQSB2YWx1ZSBvZiAtMSBmb3IgYW55IHBhcmFtZXRlciBpbmRpY2F0ZXMgdGhhdCB0aGUgZGVmYXVsdCBhY3Rpb24KKyAgKiBvciB2YWx1ZSBmb3IgdGhhdCBwYXJhbWV0ZXIgc2hvdWxkIGJlIHVzZWQuCisgICogPHA+CisgICogVGhlIHBhcmFtZXRlcnMsIDxjb2RlPmJlZm9yZTwvY29kZT4gYW5kIDxjb2RlPmFmdGVyPC9jb2RlPiwKKyAgKiBzcGVjaWZ5IHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB0byBiZSB1c2VkIGZvciB0aGUgaW50ZWdlciBwYXJ0CisgICogYW5kIGRlY2ltYWwgcGFydCBvZiB0aGUgcmVzdWx0IHJlc3BlY3RpdmVseS4gIEV4cG9uZW50aWFsIG5vdGF0aW9uCisgICogaXMgbm90IHVzZWQuIElmIGVpdGhlciBwYXJhbWV0ZXIgaXMgLTEgKHdoaWNoIGluZGljYXRlcyB0aGUgZGVmYXVsdAorICAqIGFjdGlvbiksIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB1c2VkIHdpbGwgYmUgZXhhY3RseSBhcyBtYW55IGFzCisgICogYXJlIG5lZWRlZCBmb3IgdGhhdCBwYXJ0LgorICAqIDxwPgorICAqIDxjb2RlPmJlZm9yZTwvY29kZT4gbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlcjsgaWYgaXQgaXMgbGFyZ2VyIHRoYW4KKyAgKiBpcyBuZWVkZWQgdG8gY29udGFpbiB0aGUgaW50ZWdlciBwYXJ0LCB0aGF0IHBhcnQgaXMgcGFkZGVkIG9uIHRoZQorICAqIGxlZnQgd2l0aCBibGFua3MgdG8gdGhlIHJlcXVlc3RlZCBsZW5ndGguIElmIDxjb2RlPmJlZm9yZTwvY29kZT4gaXMKKyAgKiBub3QgbGFyZ2UgZW5vdWdoIHRvIGNvbnRhaW4gdGhlIGludGVnZXIgcGFydCBvZiB0aGUgbnVtYmVyCisgICogKGluY2x1ZGluZyB0aGUgc2lnbiwgZm9yIG5lZ2F0aXZlIG51bWJlcnMpIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24uCisgICogPHA+CisgICogPGNvZGU+YWZ0ZXI8L2NvZGU+IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyOyBpZiBpdCBpcyBub3QgdGhlCisgICogc2FtZSBzaXplIGFzIHRoZSBkZWNpbWFsIHBhcnQgb2YgdGhlIG51bWJlciwgdGhlIG51bWJlciB3aWxsIGJlCisgICogcm91bmRlZCAob3IgZXh0ZW5kZWQgd2l0aCB6ZXJvcykgdG8gZml0LiAgU3BlY2lmeWluZyAwIGZvcgorICAqIDxjb2RlPmFmdGVyPC9jb2RlPiB3aWxsIGNhdXNlIHRoZSBudW1iZXIgdG8gYmUgcm91bmRlZCB0byBhbgorICAqIGludGVnZXIgKHRoYXQgaXMsIGl0IHdpbGwgaGF2ZSBubyBkZWNpbWFsIHBhcnQgb3IgZGVjaW1hbCBwb2ludCkuCisgICogVGhlIHJvdW5kaW5nIG1ldGhvZCB3aWxsIGJlIHRoZSBkZWZhdWx0LAorICAqIDxjb2RlPk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVA8L2NvZGU+LgorICAqIDxwPgorICAqIE90aGVyIHJvdW5kaW5nIG1ldGhvZHMsIGFuZCB0aGUgdXNlIG9mIGV4cG9uZW50aWFsIG5vdGF0aW9uLCBjYW4KKyAgKiBiZSBzZWxlY3RlZCBieSB1c2luZyB7QGxpbmsgI2Zvcm1hdChpbnQsaW50LGludCxpbnQsaW50LGludCl9LgorICAqIFVzaW5nIHRoZSB0d28tcGFyYW1ldGVyIGZvcm0gb2YgdGhlIG1ldGhvZCBoYXMgZXhhY3RseSB0aGUgc2FtZQorICAqIGVmZmVjdCBhcyB1c2luZyB0aGUgc2l4LXBhcmFtZXRlciBmb3JtIHdpdGggdGhlIGZpbmFsIGZvdXIKKyAgKiBwYXJhbWV0ZXJzIGFsbCBiZWluZyAtMS4KKyAgKgorICAqIEBwYXJhbSAgYmVmb3JlIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IHNwZWNpZnlpbmcgdGhlIG51bWJlciBvZiBwbGFjZXMKKyAgKiAgICAgICAgICAgICAgICBiZWZvcmUgdGhlIGRlY2ltYWwgcG9pbnQuICBVc2UgLTEgZm9yICdhcyBtYW55IGFzCisgICogICAgICAgICAgICAgICAgYXJlIG5lZWRlZCcuCisgICogQHBhcmFtICBhZnRlciAgVGhlIDxjb2RlPmludDwvY29kZT4gc3BlY2lmeWluZyB0aGUgbnVtYmVyIG9mIHBsYWNlcworICAqICAgICAgICAgICAgICAgIGFmdGVyIHRoZSBkZWNpbWFsIHBvaW50LiAgVXNlIC0xIGZvciAnYXMgbWFueSBhcyBhcmUKKyAgKiAgICAgICAgICAgICAgICBuZWVkZWQnLgorICAqIEByZXR1cm4gICAgICAgIEEgPGNvZGU+U3RyaW5nPC9jb2RlPiByZXByZXNlbnRpbmcgdGhpcworICAqICAgICAgICAgICAgICAgIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LCBsYWlkIG91dCBhY2NvcmRpbmcgdG8gdGhlCisgICogICAgICAgICAgICAgICAgc3BlY2lmaWVkIHBhcmFtZXRlcnMKKyAgKiBAdGhyb3dzIEFyaXRobWV0aWNFeGNlcHRpb24gaWYgdGhlIG51bWJlciBjYW5ub3QgYmUgbGFpZCBvdXQgYXMKKyAgKiAgICAgICAgICAgICAgICByZXF1ZXN0ZWQuCisgICogQHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgYSBwYXJhbWV0ZXIgaXMgb3V0IG9mIHJhbmdlLgorICAqIEBzZWUgICAgI3RvU3RyaW5nCisgICogQHNlZSAgICAjdG9DaGFyQXJyYXkKKyAgKiBAc2luY2UgIElCTSBKREsgMS4xLjgKKyAgKi8KKyAKKyBwdWJsaWMgamF2YS5sYW5nLlN0cmluZyBmb3JtYXQoaW50IGJlZm9yZSxpbnQgYWZ0ZXIpeworICByZXR1cm4gZm9ybWF0KGJlZm9yZSxhZnRlciwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlNDSUVOVElGSUMsUk9VTkRfSEFMRl9VUCk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgdGhlIDxjb2RlPlN0cmluZzwvY29kZT4gcmVwcmVzZW50YXRpb24gb2YgdGhpcworICAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LCBtb2RpZmllZCBieSBsYXlvdXQgcGFyYW1ldGVycyBhbmQgYWxsb3dpbmcKKyAgKiBleHBvbmVudGlhbCBub3RhdGlvbi4KKyAgKiA8cD4KKyAgKiA8aT5UaGlzIG1ldGhvZCBpcyBwcm92aWRlZCBhcyBhIHByaW1pdGl2ZSBmb3IgdXNlIGJ5IG1vcmUKKyAgKiBzb3BoaXN0aWNhdGVkIGNsYXNzZXMsIHN1Y2ggYXMgPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4sIHRoYXQKKyAgKiBjYW4gYXBwbHkgbG9jYWxlLXNlbnNpdGl2ZSBlZGl0aW5nIG9mIHRoZSByZXN1bHQuICBUaGUgbGV2ZWwgb2YKKyAgKiBmb3JtYXR0aW5nIHRoYXQgaXQgcHJvdmlkZXMgaXMgYSBuZWNlc3NhcnkgcGFydCBvZiB0aGUgQmlnRGVjaW1hbAorICAqIGNsYXNzIGFzIGl0IGlzIHNlbnNpdGl2ZSB0byBhbmQgbXVzdCBmb2xsb3cgdGhlIGNhbGN1bGF0aW9uIGFuZAorICAqIHJvdW5kaW5nIHJ1bGVzIGZvciBCaWdEZWNpbWFsIGFyaXRobWV0aWMuCisgICogSG93ZXZlciwgaWYgdGhlIGZ1bmN0aW9uIGlzIHByb3ZpZGVkIGVsc2V3aGVyZSwgaXQgbWF5IGJlIHJlbW92ZWQKKyAgKiBmcm9tIHRoaXMgY2xhc3MuIDwvaT4KKyAgKiA8cD4KKyAgKiBUaGUgcGFyYW1ldGVycyBhcmUgYWxsIG9mIHR5cGUgPGNvZGU+aW50PC9jb2RlPi4KKyAgKiBBIHZhbHVlIG9mIC0xIGZvciBhbnkgcGFyYW1ldGVyIGluZGljYXRlcyB0aGF0IHRoZSBkZWZhdWx0IGFjdGlvbgorICAqIG9yIHZhbHVlIGZvciB0aGF0IHBhcmFtZXRlciBzaG91bGQgYmUgdXNlZC4KKyAgKiA8cD4KKyAgKiBUaGUgZmlyc3QgdHdvIHBhcmFtZXRlcnMgKDxjb2RlPmJlZm9yZTwvY29kZT4gYW5kCisgICogPGNvZGU+YWZ0ZXI8L2NvZGU+KSBzcGVjaWZ5IHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB0byBiZSB1c2VkIGZvcgorICAqIHRoZSBpbnRlZ2VyIHBhcnQgYW5kIGRlY2ltYWwgcGFydCBvZiB0aGUgcmVzdWx0IHJlc3BlY3RpdmVseSwgYXMKKyAgKiBkZWZpbmVkIGZvciB7QGxpbmsgI2Zvcm1hdChpbnQsaW50KX0uCisgICogSWYgZWl0aGVyIG9mIHRoZXNlIGlzIC0xICh3aGljaCBpbmRpY2F0ZXMgdGhlIGRlZmF1bHQgYWN0aW9uKSwgdGhlCisgICogbnVtYmVyIG9mIGNoYXJhY3RlcnMgdXNlZCB3aWxsIGJlIGV4YWN0bHkgYXMgbWFueSBhcyBhcmUgbmVlZGVkIGZvcgorICAqIHRoYXQgcGFydC4KKyAgKiA8cD4KKyAgKiBUaGUgcmVtYWluaW5nIHBhcmFtZXRlcnMgY29udHJvbCB0aGUgdXNlIG9mIGV4cG9uZW50aWFsIG5vdGF0aW9uCisgICogYW5kIHJvdW5kaW5nLiAgVGhyZWUgKDxjb2RlPmV4cGxhY2VzPC9jb2RlPiwgPGNvZGU+ZXhkaWdpdHM8L2NvZGU+LAorICAqIGFuZCA8Y29kZT5leGZvcm08L2NvZGU+KSBjb250cm9sIHRoZSBleHBvbmVudCBwYXJ0IG9mIHRoZSByZXN1bHQuCisgICogQXMgYmVmb3JlLCB0aGUgZGVmYXVsdCBhY3Rpb24gZm9yIGFueSBvZiB0aGVzZSBwYXJhbWV0ZXJzIG1heSBiZQorICAqIHNlbGVjdGVkIGJ5IHVzaW5nIHRoZSB2YWx1ZSAtMS4KKyAgKiA8cD4KKyAgKiA8Y29kZT5leHBsYWNlczwvY29kZT4gbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlcjsgaXQgc2V0cyB0aGUgbnVtYmVyCisgICogb2YgcGxhY2VzIChkaWdpdHMgYWZ0ZXIgdGhlIHNpZ24gb2YgdGhlIGV4cG9uZW50KSB0byBiZSB1c2VkIGZvcgorICAqIGFueSBleHBvbmVudCBwYXJ0LCB0aGUgZGVmYXVsdCAod2hlbiA8Y29kZT5leHBsYWNlczwvY29kZT4gaXMgLTEpCisgICogYmVpbmcgdG8gdXNlIGFzIG1hbnkgYXMgYXJlIG5lZWRlZC4KKyAgKiBJZiA8Y29kZT5leHBsYWNlczwvY29kZT4gaXMgbm90IC0xLCBzcGFjZSBpcyBhbHdheXMgcmVzZXJ2ZWQgZm9yCisgICogYW4gZXhwb25lbnQ7IGlmIG9uZSBpcyBub3QgbmVlZGVkIChmb3IgZXhhbXBsZSwgaWYgdGhlIGV4cG9uZW50CisgICogd2lsbCBiZSAwKSB0aGVuIDxjb2RlPmV4cGxhY2VzPC9jb2RlPisyIGJsYW5rcyBhcmUgYXBwZW5kZWQgdG8gdGhlCisgICogcmVzdWx0LgorICAqIDwhLS0gKFRoaXMgcHJlc2VydmVzIHZlcnRpY2FsIGFsaWdubWVudCBvZiBzaW1pbGFybHkgZm9ybWF0dGVkCisgICogICAgICAgbnVtYmVycyBpbiBhIG1vbm9zcGFjZSBmb250LikgLS0+CisgICogSWYgPGNvZGU+ZXhwbGFjZXM8L2NvZGU+IGlzIG5vdCAtMSBhbmQgaXMgbm90IGxhcmdlIGVub3VnaCB0bworICAqIGNvbnRhaW4gdGhlIGV4cG9uZW50LCBhbiBleGNlcHRpb24gaXMgdGhyb3duLgorICAqIDxwPgorICAqIDxjb2RlPmV4ZGlnaXRzPC9jb2RlPiBzZXRzIHRoZSB0cmlnZ2VyIHBvaW50IGZvciB1c2Ugb2YgZXhwb25lbnRpYWwKKyAgKiBub3RhdGlvbi4gSWYsIGJlZm9yZSBhbnkgcm91bmRpbmcsIHRoZSBudW1iZXIgb2YgcGxhY2VzIG5lZWRlZAorICAqIGJlZm9yZSB0aGUgZGVjaW1hbCBwb2ludCBleGNlZWRzIDxjb2RlPmV4ZGlnaXRzPC9jb2RlPiwgb3IgaWYgdGhlCisgICogYWJzb2x1dGUgdmFsdWUgb2YgdGhlIHJlc3VsdCBpcyBsZXNzIHRoYW4gPGNvZGU+MC4wMDAwMDE8L2NvZGU+LAorICAqIHRoZW4gZXhwb25lbnRpYWwgZm9ybSB3aWxsIGJlIHVzZWQsIHByb3ZpZGVkIHRoYXQKKyAgKiA8Y29kZT5leGRpZ2l0czwvY29kZT4gd2FzIHNwZWNpZmllZC4KKyAgKiBXaGVuIDxjb2RlPmV4ZGlnaXRzPC9jb2RlPiBpcyAtMSwgZXhwb25lbnRpYWwgbm90YXRpb24gd2lsbCBuZXZlcgorICAqIGJlIHVzZWQuIElmIDAgaXMgc3BlY2lmaWVkIGZvciA8Y29kZT5leGRpZ2l0czwvY29kZT4sIGV4cG9uZW50aWFsCisgICogbm90YXRpb24gaXMgYWx3YXlzIHVzZWQgdW5sZXNzIHRoZSBleHBvbmVudCB3b3VsZCBiZSAwLgorICAqIDxwPgorICAqIDxjb2RlPmV4Zm9ybTwvY29kZT4gc2V0cyB0aGUgZm9ybSBmb3IgZXhwb25lbnRpYWwgbm90YXRpb24gKGlmCisgICogbmVlZGVkKS4KKyAgKiBJdCAgbWF5IGJlIGVpdGhlciB7QGxpbmsgTWF0aENvbnRleHQjU0NJRU5USUZJQ30gb3IKKyAgKiB7QGxpbmsgTWF0aENvbnRleHQjRU5HSU5FRVJJTkd9LgorICAqIElmIHRoZSBsYXR0ZXIsIGVuZ2luZWVyaW5nLCBmb3JtIGlzIHJlcXVlc3RlZCwgdXAgdG8gdGhyZWUgZGlnaXRzCisgICogKHBsdXMgc2lnbiwgaWYgbmVnYXRpdmUpIG1heSBiZSBuZWVkZWQgZm9yIHRoZSBpbnRlZ2VyIHBhcnQgb2YgdGhlCisgICogcmVzdWx0ICg8Y29kZT5iZWZvcmU8L2NvZGU+KS4gIE90aGVyd2lzZSwgb25seSBvbmUgZGlnaXQgKHBsdXMKKyAgKiBzaWduLCBpZiBuZWdhdGl2ZSkgaXMgbmVlZGVkLgorICAqIDxwPgorICAqIEZpbmFsbHksIHRoZSBzaXh0aCBhcmd1bWVudCwgPGNvZGU+ZXhyb3VuZDwvY29kZT4sIHNlbGVjdHMgdGhlCisgICogcm91bmRpbmcgYWxnb3JpdGhtIHRvIGJlIHVzZWQsIGFuZCBtdXN0IGJlIG9uZSBvZiB0aGUgdmFsdWVzCisgICogaW5kaWNhdGVkIGJ5IGEgcHVibGljIGNvbnN0YW50IGluIHRoZSB7QGxpbmsgTWF0aENvbnRleHR9IGNsYXNzCisgICogd2hvc2UgbmFtZSBzdGFydHMgd2l0aCA8Y29kZT5ST1VORF88L2NvZGU+LgorICAqIFRoZSBkZWZhdWx0ICg8Y29kZT5ST1VORF9IQUxGX1VQPC9jb2RlPikgbWF5IGFsc28gYmUgc2VsZWN0ZWQgYnkKKyAgKiB1c2luZyB0aGUgdmFsdWUgLTEsIGFzIGJlZm9yZS4KKyAgKiA8cD4KKyAgKiBUaGUgc3BlY2lhbCB2YWx1ZSA8Y29kZT5NYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWTwvY29kZT4gbWF5IGJlCisgICogdXNlZCB0byBkZXRlY3Qgd2hldGhlciBub24temVybyBkaWdpdHMgYXJlIGRpc2NhcmRlZCAtLSBpZgorICAqIDxjb2RlPmV4cm91bmQ8L2NvZGU+IGhhcyB0aGlzIHZhbHVlIHRoYW4gaWYgbm9uLXplcm8gZGlnaXRzIHdvdWxkCisgICogYmUgZGlzY2FyZGVkIChyb3VuZGVkKSBkdXJpbmcgZm9ybWF0dGluZyB0aGVuIGFuCisgICogPGNvZGU+QXJpdGhtZXRpY0V4Y2VwdGlvbjwvY29kZT4gaXMgdGhyb3duLgorICAqCisgICogQHBhcmFtICBiZWZvcmUgICBUaGUgPGNvZGU+aW50PC9jb2RlPiBzcGVjaWZ5aW5nIHRoZSBudW1iZXIgb2YgcGxhY2VzCisgICogICAgICAgICAgICAgICAgICBiZWZvcmUgdGhlIGRlY2ltYWwgcG9pbnQuCisgICogICAgICAgICAgICAgICAgICBVc2UgLTEgZm9yICdhcyBtYW55IGFzIGFyZSBuZWVkZWQnLgorICAqIEBwYXJhbSAgYWZ0ZXIgICAgVGhlIDxjb2RlPmludDwvY29kZT4gc3BlY2lmeWluZyB0aGUgbnVtYmVyIG9mIHBsYWNlcworICAqICAgICAgICAgICAgICAgICAgYWZ0ZXIgdGhlIGRlY2ltYWwgcG9pbnQuCisgICogICAgICAgICAgICAgICAgICBVc2UgLTEgZm9yICdhcyBtYW55IGFzIGFyZSBuZWVkZWQnLgorICAqIEBwYXJhbSAgZXhwbGFjZXMgVGhlIDxjb2RlPmludDwvY29kZT4gc3BlY2lmeWluZyB0aGUgbnVtYmVyIG9mIHBsYWNlcworICAqICAgICAgICAgICAgICAgICAgdG8gYmUgdXNlZCBmb3IgYW55IGV4cG9uZW50LgorICAqICAgICAgICAgICAgICAgICAgVXNlIC0xIGZvciAnYXMgbWFueSBhcyBhcmUgbmVlZGVkJy4KKyAgKiBAcGFyYW0gIGV4ZGlnaXRzIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IHNwZWNpZnlpbmcgdGhlIHRyaWdnZXIKKyAgKiAgICAgICAgICAgICAgICAgIChkaWdpdHMgYmVmb3JlIHRoZSBkZWNpbWFsIHBvaW50KSB3aGljaCBpZgorICAqICAgICAgICAgICAgICAgICAgZXhjZWVkZWQgY2F1c2VzIGV4cG9uZW50aWFsIG5vdGF0aW9uIHRvIGJlIHVzZWQuCisgICogICAgICAgICAgICAgICAgICBVc2UgMCB0byBmb3JjZSBleHBvbmVudGlhbCBub3RhdGlvbi4KKyAgKiAgICAgICAgICAgICAgICAgIFVzZSAtMSB0byBmb3JjZSBwbGFpbiBub3RhdGlvbiAobm8gZXhwb25lbnRpYWwKKyAgKiAgICAgICAgICAgICAgICAgIG5vdGF0aW9uKS4KKyAgKiBAcGFyYW0gIGV4Zm9ybSAgIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IHNwZWNpZnlpbmcgdGhlIGZvcm0gb2YKKyAgKiAgICAgICAgICAgICAgICAgIGV4cG9uZW50aWFsIG5vdGF0aW9uIHRvIGJlIHVzZWQKKyAgKiAgICAgICAgICAgICAgICAgICh7QGxpbmsgTWF0aENvbnRleHQjU0NJRU5USUZJQ30gb3IKKyAgKiAgICAgICAgICAgICAgICAgIHtAbGluayBNYXRoQ29udGV4dCNFTkdJTkVFUklOR30pLgorICAqIEBwYXJhbSAgZXhyb3VuZCAgVGhlIDxjb2RlPmludDwvY29kZT4gc3BlY2lmeWluZyB0aGUgcm91bmRpbmcgbW9kZQorICAqICAgICAgICAgICAgICAgICAgdG8gdXNlLgorICAqICAgICAgICAgICAgICAgICAgVXNlIC0xIGZvciB0aGUgZGVmYXVsdCwge0BsaW5rIE1hdGhDb250ZXh0I1JPVU5EX0hBTEZfVVB9LgorICAqIEByZXR1cm4gICAgICAgICAgQSA8Y29kZT5TdHJpbmc8L2NvZGU+IHJlcHJlc2VudGluZyB0aGlzCisgICogICAgICAgICAgICAgICAgICA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiwgbGFpZCBvdXQgYWNjb3JkaW5nIHRvIHRoZQorICAqICAgICAgICAgICAgICAgICAgc3BlY2lmaWVkIHBhcmFtZXRlcnMKKyAgKiBAdGhyb3dzIEFyaXRobWV0aWNFeGNlcHRpb24gaWYgdGhlIG51bWJlciBjYW5ub3QgYmUgbGFpZCBvdXQgYXMKKyAgKiAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZC4KKyAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBhIHBhcmFtZXRlciBpcyBvdXQgb2YgcmFuZ2UuCisgICogQHNlZSAgICAjdG9TdHJpbmcKKyAgKiBAc2VlICAgICN0b0NoYXJBcnJheQorICAqIEBzaW5jZSAgSUJNIEpESyAxLjEuOAorICAqLworIAorIHB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIGZvcm1hdChpbnQgYmVmb3JlLGludCBhZnRlcixpbnQgZXhwbGFjZXMsaW50IGV4ZGlnaXRzLGludCBleGZvcm1pbnQsaW50IGV4cm91bmQpeworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbnVtOworICBpbnQgbWFnPTA7CisgIGludCB0aGlzYWZ0ZXI9MDsKKyAgaW50IGxlYWQ9MDsKKyAgYnl0ZSBuZXdtYW50W109bnVsbDsKKyAgaW50IGNob3A9MDsKKyAgaW50IG5lZWQ9MDsKKyAgaW50IG9sZGV4cD0wOworICBjaGFyIGFbXTsKKyAgaW50IHA9MDsKKyAgY2hhciBuZXdhW109bnVsbDsKKyAgaW50IGk9MDsKKyAgaW50IHBsYWNlcz0wOworICAKKyAgCisgIC8qIENoZWNrIGFyZ3VtZW50cyAqLworICBpZiAoKGJlZm9yZTwoLTEpKXwoYmVmb3JlPT0wKSkgCisgICBiYWRhcmcoImZvcm1hdCIsMSxqYXZhLmxhbmcuU3RyaW5nLnZhbHVlT2YoYmVmb3JlKSk7CisgIGlmIChhZnRlcjwoLTEpKSAKKyAgIGJhZGFyZygiZm9ybWF0IiwyLGphdmEubGFuZy5TdHJpbmcudmFsdWVPZihhZnRlcikpOworICBpZiAoKGV4cGxhY2VzPCgtMSkpfChleHBsYWNlcz09MCkpIAorICAgYmFkYXJnKCJmb3JtYXQiLDMsamF2YS5sYW5nLlN0cmluZy52YWx1ZU9mKGV4cGxhY2VzKSk7CisgIGlmIChleGRpZ2l0czwoLTEpKSAKKyAgIGJhZGFyZygiZm9ybWF0Iiw0LGphdmEubGFuZy5TdHJpbmcudmFsdWVPZihleHBsYWNlcykpOworICB7LypzZWxlY3QqLworICBpZiAoZXhmb3JtaW50PT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlNDSUVOVElGSUMpCisgICA7CisgIGVsc2UgaWYgKGV4Zm9ybWludD09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5FTkdJTkVFUklORykKKyAgIDsKKyAgZWxzZSBpZiAoZXhmb3JtaW50PT0oLTEpKQorICAgZXhmb3JtaW50PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuU0NJRU5USUZJQzsKKyAgIC8vIG5vdGUgUExBSU4gaXNuJ3QgYWxsb3dlZAorICBlbHNleworICAgYmFkYXJnKCJmb3JtYXQiLDUsamF2YS5sYW5nLlN0cmluZy52YWx1ZU9mKGV4Zm9ybWludCkpOworICB9CisgIH0KKyAgLy8gY2hlY2tpbmcgdGhlIHJvdW5kaW5nIG1vZGUgaXMgZG9uZSBieSB0cnlpbmcgdG8gY29uc3RydWN0IGEKKyAgLy8gTWF0aENvbnRleHQgb2JqZWN0IHdpdGggdGhhdCBtb2RlOyBpdCB3aWxsIGZhaWwgaWYgYmFkCisgIGlmIChleHJvdW5kIT1ST1VORF9IQUxGX1VQKSAKKyAgIHt0cnl7IC8vIGlmIG5vbi1kZWZhdWx0Li4uCisgICAgaWYgKGV4cm91bmQ9PSgtMSkpIAorICAgICBleHJvdW5kPVJPVU5EX0hBTEZfVVA7CisgICAgZWxzZSAKKyAgICAgbmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoOSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlNDSUVOVElGSUMsZmFsc2UsZXhyb3VuZCk7CisgICB9CisgICBjYXRjaCAoamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiAkMTApeworICAgIGJhZGFyZygiZm9ybWF0Iiw2LGphdmEubGFuZy5TdHJpbmcudmFsdWVPZihleHJvdW5kKSk7CisgICB9fQorICAKKyAgbnVtPWNsb25lKHRoaXMpOyAvLyBtYWtlIHByaXZhdGUgY29weQorICAKKyAgLyogSGVyZToKKyAgICAgbnVtICAgICAgIGlzIEJpZ0RlY2ltYWwgdG8gZm9ybWF0CisgICAgIGJlZm9yZSAgICBpcyBwbGFjZXMgYmVmb3JlIHBvaW50IFs+MF0KKyAgICAgYWZ0ZXIgICAgIGlzIHBsYWNlcyBhZnRlciBwb2ludCAgWz49MF0KKyAgICAgZXhwbGFjZXMgIGlzIGV4cG9uZW50IHBsYWNlcyAgICAgWz4wXQorICAgICBleGRpZ2l0cyAgaXMgZXhwb25lbnQgZGlnaXRzICAgICBbPj0wXQorICAgICBleGZvcm1pbnQgaXMgZXhwb25lbnQgZm9ybSAgICAgICBbb25lIG9mIHR3b10KKyAgICAgZXhyb3VuZCAgIGlzIHJvdW5kaW5nIG1vZGUgICAgICAgW29uZSBvZiBlaWdodF0KKyAgICAgJ2JlZm9yZScgdGhyb3VnaCAnZXhkaWdpdHMnIGFyZSAtMSBpZiBub3Qgc3BlY2lmaWVkCisgICovCisgIAorICAvKiBkZXRlcm1pbmUgZm9ybSAqLworICB7c2V0Zm9ybTpkb3svKnNlbGVjdCovCisgIGlmIChleGRpZ2l0cz09KC0xKSkKKyAgIG51bS5mb3JtPShieXRlKWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU47CisgIGVsc2UgaWYgKG51bS5pbmQ9PWlzemVybykKKyAgIG51bS5mb3JtPShieXRlKWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU47CisgIGVsc2V7CisgICAvLyBkZXRlcm1pbmUgd2hldGhlciB0cmlnZ2VycworICAgbWFnPW51bS5leHArbnVtLm1hbnQubGVuZ3RoOworICAgaWYgKG1hZz5leGRpZ2l0cykgCisgICAgbnVtLmZvcm09KGJ5dGUpZXhmb3JtaW50OworICAgZWxzZSAKKyAgICBpZiAobWFnPCgtNSkpIAorICAgICBudW0uZm9ybT0oYnl0ZSlleGZvcm1pbnQ7CisgICAgZWxzZSAKKyAgICAgbnVtLmZvcm09KGJ5dGUpY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTjsKKyAgfQorICB9d2hpbGUoZmFsc2UpO30vKnNldGZvcm0qLworICAKKyAgLyogSWYgJ2FmdGVyJyB3YXMgc3BlY2lmaWVkIHRoZW4gd2UgbWF5IG5lZWQgdG8gYWRqdXN0IHRoZQorICAgICBtYW50aXNzYS4gIFRoaXMgaXMgYSBsaXR0bGUgdHJpY2t5LCBhcyB3ZSBtdXN0IGNvbmZvcm0gdG8gdGhlCisgICAgIHJ1bGVzIG9mIGV4cG9uZW50aWFsIGxheW91dCBpZiBuZWNlc3NhcnkgKGUuZy4sIHdlIGNhbm5vdCBlbmQgdXAKKyAgICAgd2l0aCAxMC4wIGlmIHNjaWVudGlmaWMpLiAqLworICBpZiAoYWZ0ZXI+PTApIAorICAge3NldGFmdGVyOmZvcig7Oyl7CisgICAgLy8gY2FsY3VsYXRlIHRoZSBjdXJyZW50IGFmdGVyLWxlbmd0aAorICAgIHsvKnNlbGVjdCovCisgICAgaWYgKG51bS5mb3JtPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOKQorICAgICB0aGlzYWZ0ZXI9KGludCktbnVtLmV4cDsgLy8gaGFzIGRlY2ltYWwgcGFydAorICAgIGVsc2UgaWYgKG51bS5mb3JtPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlNDSUVOVElGSUMpCisgICAgIHRoaXNhZnRlcj1udW0ubWFudC5sZW5ndGgtMTsKKyAgICBlbHNleyAvLyBlbmdpbmVlcmluZworICAgICBsZWFkPSgoKG51bS5leHArbnVtLm1hbnQubGVuZ3RoKS0xKSklMzsgLy8gZXhwb25lbnQgdG8gdXNlCisgICAgIGlmIChsZWFkPDApIAorICAgICAgbGVhZD0zK2xlYWQ7IC8vIG5lZ2F0aXZlIGV4cG9uZW50IGNhc2UKKyAgICAgbGVhZCsrOyAvLyBudW1iZXIgb2YgbGVhZGluZyBkaWdpdHMKKyAgICAgaWYgKGxlYWQ+PW51bS5tYW50Lmxlbmd0aCkgCisgICAgICB0aGlzYWZ0ZXI9MDsKKyAgICAgZWxzZSAKKyAgICAgIHRoaXNhZnRlcj1udW0ubWFudC5sZW5ndGgtbGVhZDsKKyAgICB9CisgICAgfQorICAgIGlmICh0aGlzYWZ0ZXI9PWFmdGVyKSAKKyAgICAgYnJlYWsgc2V0YWZ0ZXI7IC8vIHdlJ3JlIGluIGx1Y2sKKyAgICBpZiAodGhpc2FmdGVyPGFmdGVyKSAKKyAgICAgeyAvLyBuZWVkIGFkZGVkIHRyYWlsaW5nIHplcm9zCisgICAgICAvLyBbdGhpc2FmdGVyIGNhbiBiZSBuZWdhdGl2ZV0KKyAgICAgIG5ld21hbnQ9ZXh0ZW5kKG51bS5tYW50LChudW0ubWFudC5sZW5ndGgrYWZ0ZXIpLXRoaXNhZnRlcik7CisgICAgICBudW0ubWFudD1uZXdtYW50OworICAgICAgbnVtLmV4cD1udW0uZXhwLSgoYWZ0ZXItdGhpc2FmdGVyKSk7IC8vIGFkanVzdCBleHBvbmVudAorICAgICAgaWYgKG51bS5leHA8TWluRXhwKSAKKyAgICAgICB0aHJvdyBuZXcgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24oIkV4cG9uZW50IE92ZXJmbG93OiIrIiAiK251bS5leHApOworICAgICAgYnJlYWsgc2V0YWZ0ZXI7CisgICAgIH0KKyAgICAvLyBXZSBoYXZlIHRvbyBtYW55IGRpZ2l0cyBhZnRlciB0aGUgZGVjaW1hbCBwb2ludDsgdGhpcyBjb3VsZAorICAgIC8vIGNhdXNlIGEgY2FycnksIHdoaWNoIGNvdWxkIGNoYW5nZSB0aGUgbWFudGlzc2EuLi4KKyAgICAvLyBXYXRjaCBvdXQgZm9yIGltcGxpZWQgbGVhZGluZyB6ZXJvcyBpbiBQTEFJTiBjYXNlCisgICAgY2hvcD10aGlzYWZ0ZXItYWZ0ZXI7IC8vIGRpZ2l0cyB0byBsb3AgW2lzID4wXQorICAgIGlmIChjaG9wPm51bS5tYW50Lmxlbmd0aCkgCisgICAgIHsgLy8gYWxsIGRpZ2l0cyBnbywgbm8gY2hhbmNlIG9mIGNhcnJ5CisgICAgICAvLyBjYXJyeSBvbiB3aXRoIHplcm8KKyAgICAgIG51bS5tYW50PVpFUk8ubWFudDsKKyAgICAgIG51bS5pbmQ9aXN6ZXJvOworICAgICAgbnVtLmV4cD0wOworICAgICAgY29udGludWUgc2V0YWZ0ZXI7IC8vIHJlY2hlY2s6IHdlIG1heSBuZWVkIHRyYWlsaW5nIHplcm9zCisgICAgIH0KKyAgICAvLyB3ZSBoYXZlIGEgZGlnaXQgdG8gaW5zcGVjdCBmcm9tIGV4aXN0aW5nIG1hbnRpc3NhCisgICAgLy8gcm91bmQgdGhlIG51bWJlciBhcyByZXF1aXJlZAorICAgIG5lZWQ9bnVtLm1hbnQubGVuZ3RoLWNob3A7IC8vIGRpZ2l0cyB0byBlbmQgdXAgd2l0aCBbbWF5IGJlIDBdCisgICAgb2xkZXhwPW51bS5leHA7IC8vIHNhdmUgb2xkIGV4cG9uZW50CisgICAgbnVtLnJvdW5kKG5lZWQsZXhyb3VuZCk7CisgICAgLy8gaWYgdGhlIGV4cG9uZW50IGdyZXcgYnkgbW9yZSB0aGFuIHRoZSBkaWdpdHMgd2UgY2hvcHBlZCwgdGhlbgorICAgIC8vIHdlIG11c3QgaGF2ZSBoYWQgYSBjYXJyeSwgc28gd2lsbCBuZWVkIHRvIHJlY2hlY2sgdGhlIGxheW91dAorICAgIGlmICgobnVtLmV4cC1vbGRleHApPT1jaG9wKSAKKyAgICAgYnJlYWsgc2V0YWZ0ZXI7IC8vIG51bWJlciBkaWQgbm90IGhhdmUgY2FycnkKKyAgICAvLyBtYW50aXNzYSBnb3QgZXh0ZW5kZWQgLi4gc28gZ28gYXJvdW5kIGFuZCBjaGVjayBhZ2FpbgorICAgIH0KKyAgIH0vKnNldGFmdGVyKi8KKyAgCisgIGE9bnVtLmxheW91dCgpOyAvLyBsYXkgb3V0LCB3aXRoIGV4cG9uZW50IGlmIHJlcXVpcmVkLCBldGMuCisgIAorICAvKiBIZXJlIHdlIGhhdmUgbGFpZC1vdXQgbnVtYmVyIGluICdhJyAqLworICAvLyBub3cgYXBwbHkgJ2JlZm9yZScgYW5kICdleHBsYWNlcycgYXMgbmVlZGVkCisgIGlmIChiZWZvcmU+MCkgCisgICB7CisgICAgLy8gbG9vayBmb3IgJy4nIG9yICdFJworICAgIHtpbnQgJDExPWEubGVuZ3RoO3A9MDtwOmZvcig7JDExPjA7JDExLS0scCsrKXsKKyAgICAgaWYgKGFbcF09PScuJykgCisgICAgICBicmVhayBwOworICAgICBpZiAoYVtwXT09J0UnKSAKKyAgICAgIGJyZWFrIHA7CisgICAgIH0KKyAgICB9LypwKi8KKyAgICAvLyBwIGlzIG5vdyBvZmZzZXQgb2YgJy4nLCAnRScsIG9yIGNoYXJhY3RlciBhZnRlciBlbmQgb2YgYXJyYXkKKyAgICAvLyB0aGF0IGlzLCB0aGUgY3VycmVudCBsZW5ndGggb2YgYmVmb3JlIHBhcnQKKyAgICBpZiAocD5iZWZvcmUpIAorICAgICBiYWRhcmcoImZvcm1hdCIsMSxqYXZhLmxhbmcuU3RyaW5nLnZhbHVlT2YoYmVmb3JlKSk7IC8vIHdvbid0IGZpdAorICAgIGlmIChwPGJlZm9yZSkgCisgICAgIHsgLy8gbmVlZCBsZWFkaW5nIGJsYW5rcworICAgICAgbmV3YT1uZXcgY2hhclsoYS5sZW5ndGgrYmVmb3JlKS1wXTsKKyAgICAgIHtpbnQgJDEyPWJlZm9yZS1wO2k9MDtpOmZvcig7JDEyPjA7JDEyLS0saSsrKXsKKyAgICAgICBuZXdhW2ldPScgJzsKKyAgICAgICB9CisgICAgICB9LyppKi8KKyAgICAgIGphdmEubGFuZy5TeXN0ZW0uYXJyYXljb3B5KChqYXZhLmxhbmcuT2JqZWN0KWEsMCwoamF2YS5sYW5nLk9iamVjdCluZXdhLGksYS5sZW5ndGgpOworICAgICAgYT1uZXdhOworICAgICB9CisgICAvLyBbaWYgcD1iZWZvcmUgdGhlbiBpdCdzIGp1c3QgdGhlIHJpZ2h0IGxlbmd0aF0KKyAgIH0KKyAgCisgIGlmIChleHBsYWNlcz4wKSAKKyAgIHsKKyAgICAvLyBsb29rIGZvciAnRScgW2Nhbm5vdCBiZSBhdCBvZmZzZXQgMF0KKyAgICB7aW50ICQxMz1hLmxlbmd0aC0xO3A9YS5sZW5ndGgtMTtwOmZvcig7JDEzPjA7JDEzLS0scC0tKXsKKyAgICAgaWYgKGFbcF09PSdFJykgCisgICAgICBicmVhayBwOworICAgICB9CisgICAgfS8qcCovCisgICAgLy8gcCBpcyBub3cgb2Zmc2V0IG9mICdFJywgb3IgMAorICAgIGlmIChwPT0wKSAKKyAgICAgeyAvLyBubyBFIHBhcnQ7IGFkZCB0cmFpbGluZyBibGFua3MKKyAgICAgIG5ld2E9bmV3IGNoYXJbKGEubGVuZ3RoK2V4cGxhY2VzKSsyXTsKKyAgICAgIGphdmEubGFuZy5TeXN0ZW0uYXJyYXljb3B5KChqYXZhLmxhbmcuT2JqZWN0KWEsMCwoamF2YS5sYW5nLk9iamVjdCluZXdhLDAsYS5sZW5ndGgpOworICAgICAge2ludCAkMTQ9ZXhwbGFjZXMrMjtpPWEubGVuZ3RoO2k6Zm9yKDskMTQ+MDskMTQtLSxpKyspeworICAgICAgIG5ld2FbaV09JyAnOworICAgICAgIH0KKyAgICAgIH0vKmkqLworICAgICAgYT1uZXdhOworICAgICB9CisgICAgZWxzZSAKKyAgICAgey8qIGZvdW5kIEUgKi8gLy8gbWF5IG5lZWQgdG8gaW5zZXJ0IHplcm9zCisgICAgICBwbGFjZXM9KGEubGVuZ3RoLXApLTI7IC8vIG51bWJlciBzbyBmYXIKKyAgICAgIGlmIChwbGFjZXM+ZXhwbGFjZXMpIAorICAgICAgIGJhZGFyZygiZm9ybWF0IiwzLGphdmEubGFuZy5TdHJpbmcudmFsdWVPZihleHBsYWNlcykpOworICAgICAgaWYgKHBsYWNlczxleHBsYWNlcykgCisgICAgICAgeyAvLyBuZWVkIHRvIGluc2VydCB6ZXJvcworICAgICAgICBuZXdhPW5ldyBjaGFyWyhhLmxlbmd0aCtleHBsYWNlcyktcGxhY2VzXTsKKyAgICAgICAgamF2YS5sYW5nLlN5c3RlbS5hcnJheWNvcHkoKGphdmEubGFuZy5PYmplY3QpYSwwLChqYXZhLmxhbmcuT2JqZWN0KW5ld2EsMCxwKzIpOyAvLyB0aHJvdWdoIEUgYW5kIHNpZ24KKyAgICAgICAge2ludCAkMTU9ZXhwbGFjZXMtcGxhY2VzO2k9cCsyO2k6Zm9yKDskMTU+MDskMTUtLSxpKyspeworICAgICAgICAgbmV3YVtpXT0nMCc7CisgICAgICAgICB9CisgICAgICAgIH0vKmkqLworICAgICAgICBqYXZhLmxhbmcuU3lzdGVtLmFycmF5Y29weSgoamF2YS5sYW5nLk9iamVjdClhLHArMiwoamF2YS5sYW5nLk9iamVjdCluZXdhLGkscGxhY2VzKTsgLy8gcmVtYWluZGVyIG9mIGV4cG9uZW50CisgICAgICAgIGE9bmV3YTsKKyAgICAgICB9CisgICAgIC8vIFtpZiBwbGFjZXM9ZXhwbGFjZXMgdGhlbiBpdCdzIGp1c3QgdGhlIHJpZ2h0IGxlbmd0aF0KKyAgICAgfQorICAgfQorICByZXR1cm4gbmV3IGphdmEubGFuZy5TdHJpbmcoYSk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgdGhlIGhhc2hjb2RlIGZvciB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LgorICAqIFRoaXMgaGFzaGNvZGUgaXMgc3VpdGFibGUgZm9yIHVzZSBieSB0aGUKKyAgKiA8Y29kZT5qYXZhLnV0aWwuSGFzaHRhYmxlPC9jb2RlPiBjbGFzcy4KKyAgKiA8cD4KKyAgKiBOb3RlIHRoYXQgdHdvIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9iamVjdHMgYXJlIG9ubHkgZ3VhcmFudGVlZAorICAqIHRvIHByb2R1Y2UgdGhlIHNhbWUgaGFzaGNvZGUgaWYgdGhleSBhcmUgZXhhY3RseSBlcXVhbCAodGhhdCBpcywKKyAgKiB0aGUgPGNvZGU+U3RyaW5nPC9jb2RlPiByZXByZXNlbnRhdGlvbnMgb2YgdGhlCisgICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gbnVtYmVycyBhcmUgaWRlbnRpY2FsIC0tIHRoZXkgaGF2ZSB0aGUgc2FtZQorICAqIGNoYXJhY3RlcnMgaW4gdGhlIHNhbWUgc2VxdWVuY2UpLgorICAqCisgICogQHJldHVybiBBbiA8Y29kZT5pbnQ8L2NvZGU+IHRoYXQgaXMgdGhlIGhhc2hjb2RlIGZvciA8Y29kZT50aGlzPC9jb2RlPi4KKyAgKi8KKyAKKyBwdWJsaWMgaW50IGhhc2hDb2RlKCl7CisgIC8vIE1heWJlIGNhbGN1bGF0ZSBvdXJzZWx2ZXMsIGxhdGVyLiAgSWYgc28sIG5vdGUgdGhhdCB0aGVyZSBjYW4gYmUKKyAgLy8gbW9yZSB0aGFuIG9uZSBpbnRlcm5hbCByZXByZXNlbnRhdGlvbiBmb3IgYSBnaXZlbiB0b1N0cmluZygpIHJlc3VsdC4KKyAgcmV0dXJuIHRoaXMudG9TdHJpbmcoKS5oYXNoQ29kZSgpOworICB9CisKKyAvKioKKyAgKiBDb252ZXJ0cyB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHRvIGFuIDxjb2RlPmludDwvY29kZT4uCisgICogSWYgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGhhcyBhIG5vbi16ZXJvIGRlY2ltYWwgcGFydCBpdCBpcworICAqIGRpc2NhcmRlZC4gSWYgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGlzIG91dCBvZiB0aGUgcG9zc2libGUKKyAgKiByYW5nZSBmb3IgYW4gPGNvZGU+aW50PC9jb2RlPiAoMzItYml0IHNpZ25lZCBpbnRlZ2VyKSByZXN1bHQgdGhlbgorICAqIG9ubHkgdGhlIGxvdy1vcmRlciAzMiBiaXRzIGFyZSB1c2VkLiAoVGhhdCBpcywgdGhlIG51bWJlciBtYXkgYmUKKyAgKiA8aT5kZWNhcGl0YXRlZDwvaT4uKSAgVG8gYXZvaWQgdW5leHBlY3RlZCBlcnJvcnMgd2hlbiB0aGVzZQorICAqIGNvbmRpdGlvbnMgb2NjdXIsIHVzZSB0aGUge0BsaW5rICNpbnRWYWx1ZUV4YWN0fSBtZXRob2QuCisgICoKKyAgKiBAcmV0dXJuIEFuIDxjb2RlPmludDwvY29kZT4gY29udmVydGVkIGZyb20gPGNvZGU+dGhpczwvY29kZT4sCisgICogICAgICAgICB0cnVuY2F0ZWQgYW5kIGRlY2FwaXRhdGVkIGlmIG5lY2Vzc2FyeS4KKyAgKi8KKyAKKyBwdWJsaWMgaW50IGludFZhbHVlKCl7CisgIHJldHVybiB0b0JpZ0ludGVnZXIoKS5pbnRWYWx1ZSgpOworICB9CisKKyAvKioKKyAgKiBDb252ZXJ0cyB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHRvIGFuIDxjb2RlPmludDwvY29kZT4uCisgICogSWYgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGhhcyBhIG5vbi16ZXJvIGRlY2ltYWwgcGFydCBvciBpcworICAqIG91dCBvZiB0aGUgcG9zc2libGUgcmFuZ2UgZm9yIGFuIDxjb2RlPmludDwvY29kZT4gKDMyLWJpdCBzaWduZWQKKyAgKiBpbnRlZ2VyKSByZXN1bHQgdGhlbiBhbiA8Y29kZT5Bcml0aG1ldGljRXhjZXB0aW9uPC9jb2RlPiBpcyB0aHJvd24uCisgICoKKyAgKiBAcmV0dXJuIEFuIDxjb2RlPmludDwvY29kZT4gZXF1YWwgaW4gdmFsdWUgdG8gPGNvZGU+dGhpczwvY29kZT4uCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIDxjb2RlPnRoaXM8L2NvZGU+IGhhcyBhIG5vbi16ZXJvCisgICogICAgICAgICAgICAgICAgIGRlY2ltYWwgcGFydCwgb3Igd2lsbCBub3QgZml0IGluIGFuCisgICogICAgICAgICAgICAgICAgIDxjb2RlPmludDwvY29kZT4uCisgICogQHNpbmNlICBJQk0gSkRLIDEuMS44CisgICovCisgCisgcHVibGljIGludCBpbnRWYWx1ZUV4YWN0KCl7CisgIGludCBsb2RpZ2l0OworICBpbnQgdXNlZXhwPTA7CisgIGludCByZXN1bHQ7CisgIGludCBpPTA7CisgIGludCB0b3BkaWc9MDsKKyAgLy8gVGhpcyBkb2VzIG5vdCB1c2UgbG9uZ1ZhbHVlRXhhY3QoKSBhcyB0aGUgbGF0dGVyIGNhbiBiZSBtdWNoCisgIC8vIHNsb3dlci4KKyAgLy8gaW50Y2hlY2sgKGZyb20gcG93KSByZWxpZXMgb24gdGhpcyB0byBjaGVjayBkZWNpbWFsIHBhcnQKKyAgaWYgKGluZD09aXN6ZXJvKSAKKyAgIHJldHVybiAwOyAvLyBlYXN5LCBhbmQgcXVpdGUgY29tbW9uCisgIC8qIHRlc3QgYW5kIGRyb3AgYW55IHRyYWlsaW5nIGRlY2ltYWwgcGFydCAqLworICBsb2RpZ2l0PW1hbnQubGVuZ3RoLTE7CisgIGlmIChleHA8MCkgCisgICB7CisgICAgbG9kaWdpdD1sb2RpZ2l0K2V4cDsgLy8gcmVkdWNlcyBieSAtKC1leHApCisgICAgLyogYWxsIGRlY2ltYWwgcGxhY2VzIG11c3QgYmUgMCAqLworICAgIGlmICgoIShhbGx6ZXJvKG1hbnQsbG9kaWdpdCsxKSkpKSAKKyAgICAgdGhyb3cgbmV3IGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uKCJEZWNpbWFsIHBhcnQgbm9uLXplcm86IisiICIrdGhpcy50b1N0cmluZygpKTsKKyAgICBpZiAobG9kaWdpdDwwKSAKKyAgICAgcmV0dXJuIDA7IC8vIC0xPHRoaXM8MQorICAgIHVzZWV4cD0wOworICAgfQorICBlbHNlIAorICAgey8qID49MCAqLworICAgIGlmICgoZXhwK2xvZGlnaXQpPjkpICAvLyBlYXJseSBleGl0CisgICAgIHRocm93IG5ldyBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbigiQ29udmVyc2lvbiBvdmVyZmxvdzoiKyIgIit0aGlzLnRvU3RyaW5nKCkpOworICAgIHVzZWV4cD1leHA7CisgICB9CisgIC8qIGNvbnZlcnQgdGhlIG1hbnRpc3NhIHRvIGJpbmFyeSwgaW5saW5lIGZvciBzcGVlZCAqLworICByZXN1bHQ9MDsKKyAge2ludCAkMTY9bG9kaWdpdCt1c2VleHA7aT0wO2k6Zm9yKDtpPD0kMTY7aSsrKXsKKyAgIHJlc3VsdD1yZXN1bHQqMTA7CisgICBpZiAoaTw9bG9kaWdpdCkgCisgICAgcmVzdWx0PXJlc3VsdCttYW50W2ldOworICAgfQorICB9LyppKi8KKyAgCisgIC8qIE5vdywgaWYgdGhlIHJpc2t5IGxlbmd0aCwgY2hlY2sgZm9yIG92ZXJmbG93ICovCisgIGlmICgobG9kaWdpdCt1c2VleHApPT05KSAKKyAgIHsKKyAgICAvLyBub3RlIHdlIGNhbm5vdCBqdXN0IHRlc3QgZm9yIC12ZSByZXN1bHQsIGFzIG92ZXJmbG93IGNhbiBtb3ZlIGEKKyAgICAvLyB6ZXJvIGludG8gdGhlIHRvcCBiaXQgW2NvbnNpZGVyIDU1NTU1NTU1NTVdCisgICAgdG9wZGlnPXJlc3VsdC8xMDAwMDAwMDAwOyAvLyBnZXQgdG9wIGRpZ2l0LCBwcmVzZXJ2aW5nIHNpZ24KKyAgICBpZiAodG9wZGlnIT1tYW50WzBdKSAKKyAgICAgeyAvLyBkaWdpdCBtdXN0IG1hdGNoIGFuZCBiZSBwb3NpdGl2ZQorICAgICAgLy8gZXhjZXB0IGluIHRoZSBzcGVjaWFsIGNhc2UgLi4uCisgICAgICBpZiAocmVzdWx0PT1qYXZhLmxhbmcuSW50ZWdlci5NSU5fVkFMVUUpICAvLyBsb29rcyBsaWtlIHRoZSBzcGVjaWFsCisgICAgICAgaWYgKGluZD09aXNuZWcpICAvLyByZWFsbHkgd2FzIG5lZ2F0aXZlCisgICAgICAgIGlmIChtYW50WzBdPT0yKSAKKyAgICAgICAgIHJldHVybiByZXN1bHQ7IC8vIHJlYWxseSBoYWQgdG9wIGRpZ2l0IDIKKyAgICAgIHRocm93IG5ldyBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbigiQ29udmVyc2lvbiBvdmVyZmxvdzoiKyIgIit0aGlzLnRvU3RyaW5nKCkpOworICAgICB9CisgICB9CisgIAorICAvKiBMb29rcyBnb29kICovCisgIGlmIChpbmQ9PWlzcG9zKSAKKyAgIHJldHVybiByZXN1bHQ7CisgIHJldHVybiAoaW50KS1yZXN1bHQ7CisgIH0KKworIC8qKgorICAqIENvbnZlcnRzIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gdG8gYSA8Y29kZT5sb25nPC9jb2RlPi4KKyAgKiBJZiB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaGFzIGEgbm9uLXplcm8gZGVjaW1hbCBwYXJ0IGl0IGlzCisgICogZGlzY2FyZGVkLiBJZiB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaXMgb3V0IG9mIHRoZSBwb3NzaWJsZQorICAqIHJhbmdlIGZvciBhIDxjb2RlPmxvbmc8L2NvZGU+ICg2NC1iaXQgc2lnbmVkIGludGVnZXIpIHJlc3VsdCB0aGVuCisgICogb25seSB0aGUgbG93LW9yZGVyIDY0IGJpdHMgYXJlIHVzZWQuIChUaGF0IGlzLCB0aGUgbnVtYmVyIG1heSBiZQorICAqIDxpPmRlY2FwaXRhdGVkPC9pPi4pICBUbyBhdm9pZCB1bmV4cGVjdGVkIGVycm9ycyB3aGVuIHRoZXNlCisgICogY29uZGl0aW9ucyBvY2N1ciwgdXNlIHRoZSB7QGxpbmsgI2xvbmdWYWx1ZUV4YWN0fSBtZXRob2QuCisgICoKKyAgKiBAcmV0dXJuIEEgPGNvZGU+bG9uZzwvY29kZT4gY29udmVydGVkIGZyb20gPGNvZGU+dGhpczwvY29kZT4sCisgICogICAgICAgICB0cnVuY2F0ZWQgYW5kIGRlY2FwaXRhdGVkIGlmIG5lY2Vzc2FyeS4KKyAgKi8KKyAKKyBwdWJsaWMgbG9uZyBsb25nVmFsdWUoKXsKKyAgcmV0dXJuIHRvQmlnSW50ZWdlcigpLmxvbmdWYWx1ZSgpOworICB9CisKKyAvKioKKyAgKiBDb252ZXJ0cyB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHRvIGEgPGNvZGU+bG9uZzwvY29kZT4uCisgICogSWYgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGhhcyBhIG5vbi16ZXJvIGRlY2ltYWwgcGFydCBvciBpcworICAqIG91dCBvZiB0aGUgcG9zc2libGUgcmFuZ2UgZm9yIGEgPGNvZGU+bG9uZzwvY29kZT4gKDY0LWJpdCBzaWduZWQKKyAgKiBpbnRlZ2VyKSByZXN1bHQgdGhlbiBhbiA8Y29kZT5Bcml0aG1ldGljRXhjZXB0aW9uPC9jb2RlPiBpcyB0aHJvd24uCisgICoKKyAgKiBAcmV0dXJuIEEgPGNvZGU+bG9uZzwvY29kZT4gZXF1YWwgaW4gdmFsdWUgdG8gPGNvZGU+dGhpczwvY29kZT4uCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIDxjb2RlPnRoaXM8L2NvZGU+IGhhcyBhIG5vbi16ZXJvCisgICogICAgICAgICAgICAgICAgIGRlY2ltYWwgcGFydCwgb3Igd2lsbCBub3QgZml0IGluIGEKKyAgKiAgICAgICAgICAgICAgICAgPGNvZGU+bG9uZzwvY29kZT4uCisgICogQHNpbmNlICBJQk0gSkRLIDEuMS44CisgICovCisgCisgcHVibGljIGxvbmcgbG9uZ1ZhbHVlRXhhY3QoKXsKKyAgaW50IGxvZGlnaXQ7CisgIGludCBjc3RhcnQ9MDsKKyAgaW50IHVzZWV4cD0wOworICBsb25nIHJlc3VsdDsKKyAgaW50IGk9MDsKKyAgbG9uZyB0b3BkaWc9MDsKKyAgLy8gSWRlbnRpY2FsIHRvIGludFZhbHVlRXhhY3QgZXhjZXB0IGZvciByZXN1bHQ9bG9uZywgYW5kIGV4cD49MjAgdGVzdAorICBpZiAoaW5kPT0wKSAKKyAgIHJldHVybiAwOyAvLyBlYXN5LCBhbmQgcXVpdGUgY29tbW9uCisgIGxvZGlnaXQ9bWFudC5sZW5ndGgtMTsgLy8gbGFzdCBpbmNsdWRlZCBkaWdpdAorICBpZiAoZXhwPDApIAorICAgeworICAgIGxvZGlnaXQ9bG9kaWdpdCtleHA7IC8vIC0oLWV4cCkKKyAgICAvKiBhbGwgZGVjaW1hbCBwbGFjZXMgbXVzdCBiZSAwICovCisgICAgaWYgKGxvZGlnaXQ8MCkgCisgICAgIGNzdGFydD0wOworICAgIGVsc2UgCisgICAgIGNzdGFydD1sb2RpZ2l0KzE7CisgICAgaWYgKCghKGFsbHplcm8obWFudCxjc3RhcnQpKSkpIAorICAgICB0aHJvdyBuZXcgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24oIkRlY2ltYWwgcGFydCBub24temVybzoiKyIgIit0aGlzLnRvU3RyaW5nKCkpOworICAgIGlmIChsb2RpZ2l0PDApIAorICAgICByZXR1cm4gMDsgLy8gLTE8dGhpczwxCisgICAgdXNlZXhwPTA7CisgICB9CisgIGVsc2UgCisgICB7LyogPj0wICovCisgICAgaWYgKChleHArbWFudC5sZW5ndGgpPjE4KSAgLy8gZWFybHkgZXhpdAorICAgICB0aHJvdyBuZXcgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24oIkNvbnZlcnNpb24gb3ZlcmZsb3c6IisiICIrdGhpcy50b1N0cmluZygpKTsKKyAgICB1c2VleHA9ZXhwOworICAgfQorICAKKyAgLyogY29udmVydCB0aGUgbWFudGlzc2EgdG8gYmluYXJ5LCBpbmxpbmUgZm9yIHNwZWVkICovCisgIC8vIG5vdGUgdGhhdCB3ZSBjb3VsZCBzYWZlbHkgdXNlIHRoZSAndGVzdCBmb3Igd3JhcCB0byBuZWdhdGl2ZScKKyAgLy8gYWxnb3JpdGhtIGhlcmUsIGJ1dCBpbnN0ZWFkIHdlIHBhcmFsbGVsIHRoZSBpbnRWYWx1ZUV4YWN0CisgIC8vIGFsZ29yaXRobSBmb3IgZWFzZSBvZiBjaGVja2luZyBhbmQgbWFpbnRlbmFuY2UuCisgIHJlc3VsdD0obG9uZykwOworICB7aW50ICQxNz1sb2RpZ2l0K3VzZWV4cDtpPTA7aTpmb3IoO2k8PSQxNztpKyspeworICAgcmVzdWx0PXJlc3VsdCoxMDsKKyAgIGlmIChpPD1sb2RpZ2l0KSAKKyAgICByZXN1bHQ9cmVzdWx0K21hbnRbaV07CisgICB9CisgIH0vKmkqLworICAKKyAgLyogTm93LCBpZiB0aGUgcmlza3kgbGVuZ3RoLCBjaGVjayBmb3Igb3ZlcmZsb3cgKi8KKyAgaWYgKChsb2RpZ2l0K3VzZWV4cCk9PTE4KSAKKyAgIHsKKyAgICB0b3BkaWc9cmVzdWx0LzEwMDAwMDAwMDAwMDAwMDAwMDBMOyAvLyBnZXQgdG9wIGRpZ2l0LCBwcmVzZXJ2aW5nIHNpZ24KKyAgICBpZiAodG9wZGlnIT1tYW50WzBdKSAKKyAgICAgeyAvLyBkaWdpdCBtdXN0IG1hdGNoIGFuZCBiZSBwb3NpdGl2ZQorICAgICAgLy8gZXhjZXB0IGluIHRoZSBzcGVjaWFsIGNhc2UgLi4uCisgICAgICBpZiAocmVzdWx0PT1qYXZhLmxhbmcuTG9uZy5NSU5fVkFMVUUpICAvLyBsb29rcyBsaWtlIHRoZSBzcGVjaWFsCisgICAgICAgaWYgKGluZD09aXNuZWcpICAvLyByZWFsbHkgd2FzIG5lZ2F0aXZlCisgICAgICAgIGlmIChtYW50WzBdPT05KSAKKyAgICAgICAgIHJldHVybiByZXN1bHQ7IC8vIHJlYWxseSBoYWQgdG9wIGRpZ2l0IDkKKyAgICAgIHRocm93IG5ldyBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbigiQ29udmVyc2lvbiBvdmVyZmxvdzoiKyIgIit0aGlzLnRvU3RyaW5nKCkpOworICAgICB9CisgICB9CisgIAorICAvKiBMb29rcyBnb29kICovCisgIGlmIChpbmQ9PWlzcG9zKSAKKyAgIHJldHVybiByZXN1bHQ7CisgIHJldHVybiAobG9uZyktcmVzdWx0OworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgcGxhaW4gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgZGVjaW1hbCBwb2ludCBoYXMKKyAgKiBiZWVuIG1vdmVkIHRvIHRoZSBsZWZ0IGJ5IGEgc3BlY2lmaWVkIG51bWJlciBvZiBwb3NpdGlvbnMuCisgICogVGhlIHBhcmFtZXRlciwgPGNvZGU+bjwvY29kZT4sIHNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIHBvc2l0aW9ucyB0bworICAqIG1vdmUgdGhlIGRlY2ltYWwgcG9pbnQuCisgICogVGhhdCBpcywgaWYgPGNvZGU+bjwvY29kZT4gaXMgMCBvciBwb3NpdGl2ZSwgdGhlIG51bWJlciByZXR1cm5lZCBpcworICAqIGdpdmVuIGJ5OgorICAqIDxwPjxjb2RlPgorICAqIHRoaXMubXVsdGlwbHkoVEVOLnBvdyhuZXcgQmlnRGVjaW1hbCgtbikpKQorICAqIDwvY29kZT4KKyAgKiA8cD4KKyAgKiA8Y29kZT5uPC9jb2RlPiBtYXkgYmUgbmVnYXRpdmUsIGluIHdoaWNoIGNhc2UgdGhlIG1ldGhvZCByZXR1cm5zCisgICogdGhlIHNhbWUgcmVzdWx0IGFzIDxjb2RlPm1vdmVQb2ludFJpZ2h0KC1uKTwvY29kZT4uCisgICoKKyAgKiBAcGFyYW0gIG4gVGhlIDxjb2RlPmludDwvY29kZT4gc3BlY2lmeWluZyB0aGUgbnVtYmVyIG9mIHBsYWNlcyB0bworICAqICAgICAgICAgICBtb3ZlIHRoZSBkZWNpbWFsIHBvaW50IGxlZnR3YXJkcy4KKyAgKiBAcmV0dXJuICAgQSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBkZXJpdmVkIGZyb20KKyAgKiAgICAgICAgICAgPGNvZGU+dGhpczwvY29kZT4sIHdpdGggdGhlIGRlY2ltYWwgcG9pbnQgbW92ZWQKKyAgKiAgICAgICAgICAgPGNvZGU+bjwvY29kZT4gcGxhY2VzIHRvIHRoZSBsZWZ0LgorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbW92ZVBvaW50TGVmdChpbnQgbil7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByZXM7CisgIC8vIHZlcnkgbGl0dGxlIHBvaW50IGluIG9wdGltaXppbmcgZm9yIHNoaWZ0IG9mIDAKKyAgcmVzPWNsb25lKHRoaXMpOworICByZXMuZXhwPXJlcy5leHAtbjsKKyAgcmV0dXJuIHJlcy5maW5pc2gocGxhaW5NQyxmYWxzZSk7IC8vIGZpbmlzaCBzZXRzIGZvcm0gYW5kIGNoZWNrcyBleHBvbmVudAorICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgcGxhaW4gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgZGVjaW1hbCBwb2ludCBoYXMKKyAgKiBiZWVuIG1vdmVkIHRvIHRoZSByaWdodCBieSBhIHNwZWNpZmllZCBudW1iZXIgb2YgcG9zaXRpb25zLgorICAqIFRoZSBwYXJhbWV0ZXIsIDxjb2RlPm48L2NvZGU+LCBzcGVjaWZpZXMgdGhlIG51bWJlciBvZiBwb3NpdGlvbnMgdG8KKyAgKiBtb3ZlIHRoZSBkZWNpbWFsIHBvaW50LgorICAqIFRoYXQgaXMsIGlmIDxjb2RlPm48L2NvZGU+IGlzIDAgb3IgcG9zaXRpdmUsIHRoZSBudW1iZXIgcmV0dXJuZWQgaXMKKyAgKiBnaXZlbiBieToKKyAgKiA8cD48Y29kZT4KKyAgKiB0aGlzLm11bHRpcGx5KFRFTi5wb3cobmV3IEJpZ0RlY2ltYWwobikpKQorICAqIDwvY29kZT4KKyAgKiA8cD4KKyAgKiA8Y29kZT5uPC9jb2RlPiBtYXkgYmUgbmVnYXRpdmUsIGluIHdoaWNoIGNhc2UgdGhlIG1ldGhvZCByZXR1cm5zCisgICogdGhlIHNhbWUgcmVzdWx0IGFzIDxjb2RlPm1vdmVQb2ludExlZnQoLW4pPC9jb2RlPi4KKyAgKgorICAqIEBwYXJhbSAgbiBUaGUgPGNvZGU+aW50PC9jb2RlPiBzcGVjaWZ5aW5nIHRoZSBudW1iZXIgb2YgcGxhY2VzIHRvCisgICogICAgICAgICAgIG1vdmUgdGhlIGRlY2ltYWwgcG9pbnQgcmlnaHR3YXJkcy4KKyAgKiBAcmV0dXJuICAgQSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBkZXJpdmVkIGZyb20KKyAgKiAgICAgICAgICAgPGNvZGU+dGhpczwvY29kZT4sIHdpdGggdGhlIGRlY2ltYWwgcG9pbnQgbW92ZWQKKyAgKiAgICAgICAgICAgPGNvZGU+bjwvY29kZT4gcGxhY2VzIHRvIHRoZSByaWdodC4KKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG1vdmVQb2ludFJpZ2h0KGludCBuKXsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJlczsKKyAgcmVzPWNsb25lKHRoaXMpOworICByZXMuZXhwPXJlcy5leHArbjsKKyAgcmV0dXJuIHJlcy5maW5pc2gocGxhaW5NQyxmYWxzZSk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgdGhlIHNjYWxlIG9mIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4uCisgICogUmV0dXJucyBhIG5vbi1uZWdhdGl2ZSA8Y29kZT5pbnQ8L2NvZGU+IHdoaWNoIGlzIHRoZSBzY2FsZSBvZiB0aGUKKyAgKiBudW1iZXIuIFRoZSBzY2FsZSBpcyB0aGUgbnVtYmVyIG9mIGRpZ2l0cyBpbiB0aGUgZGVjaW1hbCBwYXJ0IG9mCisgICogdGhlIG51bWJlciBpZiB0aGUgbnVtYmVyIHdlcmUgZm9ybWF0dGVkIHdpdGhvdXQgZXhwb25lbnRpYWwKKyAgKiBub3RhdGlvbi4KKyAgKgorICAqIEByZXR1cm4gQW4gPGNvZGU+aW50PC9jb2RlPiB3aG9zZSB2YWx1ZSBpcyB0aGUgc2NhbGUgb2YgdGhpcworICAqICAgICAgICAgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4uCisgICovCisgCisgcHVibGljIGludCBzY2FsZSgpeworICBpZiAoZXhwPj0wKSAKKyAgIHJldHVybiAwOyAvLyBzY2FsZSBjYW4gbmV2ZXIgYmUgbmVnYXRpdmUKKyAgcmV0dXJuIChpbnQpLWV4cDsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIHBsYWluIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdpdGggYSBnaXZlbiBzY2FsZS4KKyAgKiA8cD4KKyAgKiBJZiB0aGUgZ2l2ZW4gc2NhbGUgKHdoaWNoIG11c3QgYmUgemVybyBvciBwb3NpdGl2ZSkgaXMgdGhlIHNhbWUgYXMKKyAgKiBvciBncmVhdGVyIHRoYW4gdGhlIGxlbmd0aCBvZiB0aGUgZGVjaW1hbCBwYXJ0ICh0aGUgc2NhbGUpIG9mIHRoaXMKKyAgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB0aGVuIHRyYWlsaW5nIHplcm9zIHdpbGwgYmUgYWRkZWQgdG8gdGhlCisgICogZGVjaW1hbCBwYXJ0IGFzIG5lY2Vzc2FyeS4KKyAgKiA8cD4KKyAgKiBJZiB0aGUgZ2l2ZW4gc2NhbGUgaXMgbGVzcyB0aGFuIHRoZSBsZW5ndGggb2YgdGhlIGRlY2ltYWwgcGFydCAodGhlCisgICogc2NhbGUpIG9mIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gdGhlbiB0cmFpbGluZyBkaWdpdHMKKyAgKiB3aWxsIGJlIHJlbW92ZWQsIGFuZCBpbiB0aGlzIGNhc2UgYW4KKyAgKiA8Y29kZT5Bcml0aG1ldGljRXhjZXB0aW9uPC9jb2RlPiBpcyB0aHJvd24gaWYgYW55IGRpc2NhcmRlZCBkaWdpdHMKKyAgKiBhcmUgbm9uLXplcm8uCisgICogPHA+CisgICogVGhlIHNhbWUgYXMge0BsaW5rICNzZXRTY2FsZShpbnQsIGludCl9LCB3aGVyZSB0aGUgZmlyc3QgcGFyYW1ldGVyCisgICogaXMgdGhlIHNjYWxlLCBhbmQgdGhlIHNlY29uZCBpcworICAqIDxjb2RlPk1hdGhDb250ZXh0LlJPVU5EX1VOTkVDRVNTQVJZPC9jb2RlPi4KKyAgKgorICAqIEBwYXJhbSAgc2NhbGUgVGhlIDxjb2RlPmludDwvY29kZT4gc3BlY2lmeWluZyB0aGUgc2NhbGUgb2YgdGhlCisgICogICAgICAgICAgICAgICByZXN1bHRpbmcgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4uCisgICogQHJldHVybiAgICAgICBBIHBsYWluIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdpdGggdGhlIGdpdmVuIHNjYWxlLgorICAqIEB0aHJvd3MgQXJpdGhtZXRpY0V4Y2VwdGlvbiBpZiA8Y29kZT5zY2FsZTwvY29kZT4gaXMgbmVnYXRpdmUuCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIHJlZHVjaW5nIHNjYWxlIHdvdWxkIGRpc2NhcmQKKyAgKiAgICAgICAgICAgICAgIG5vbi16ZXJvIGRpZ2l0cy4KKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHNldFNjYWxlKGludCBzY2FsZSl7CisgIHJldHVybiBzZXRTY2FsZShzY2FsZSxST1VORF9VTk5FQ0VTU0FSWSk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSBwbGFpbiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aXRoIGEgZ2l2ZW4gc2NhbGUuCisgICogPHA+CisgICogSWYgdGhlIGdpdmVuIHNjYWxlICh3aGljaCBtdXN0IGJlIHplcm8gb3IgcG9zaXRpdmUpIGlzIHRoZSBzYW1lIGFzCisgICogb3IgZ3JlYXRlciB0aGFuIHRoZSBsZW5ndGggb2YgdGhlIGRlY2ltYWwgcGFydCAodGhlIHNjYWxlKSBvZiB0aGlzCisgICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gdGhlbiB0cmFpbGluZyB6ZXJvcyB3aWxsIGJlIGFkZGVkIHRvIHRoZQorICAqIGRlY2ltYWwgcGFydCBhcyBuZWNlc3NhcnkuCisgICogPHA+CisgICogSWYgdGhlIGdpdmVuIHNjYWxlIGlzIGxlc3MgdGhhbiB0aGUgbGVuZ3RoIG9mIHRoZSBkZWNpbWFsIHBhcnQgKHRoZQorICAqIHNjYWxlKSBvZiB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHRoZW4gdHJhaWxpbmcgZGlnaXRzCisgICogd2lsbCBiZSByZW1vdmVkLCBhbmQgdGhlIHJvdW5kaW5nIG1vZGUgZ2l2ZW4gYnkgdGhlIHNlY29uZAorICAqIHBhcmFtZXRlciBpcyB1c2VkIHRvIGRldGVybWluZSBpZiB0aGUgcmVtYWluaW5nIGRpZ2l0cyBhcmUKKyAgKiBhZmZlY3RlZCBieSBhIGNhcnJ5LgorICAqIEluIHRoaXMgY2FzZSwgYW4gPGNvZGU+SWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uPC9jb2RlPiBpcyB0aHJvd24gaWYKKyAgKiA8Y29kZT5yb3VuZDwvY29kZT4gaXMgbm90IGEgdmFsaWQgcm91bmRpbmcgbW9kZS4KKyAgKiA8cD4KKyAgKiBJZiA8Y29kZT5yb3VuZDwvY29kZT4gaXMgPGNvZGU+TWF0aENvbnRleHQuUk9VTkRfVU5ORUNFU1NBUlk8L2NvZGU+LAorICAqIGFuIDxjb2RlPkFyaXRobWV0aWNFeGNlcHRpb248L2NvZGU+IGlzIHRocm93biBpZiBhbnkgZGlzY2FyZGVkCisgICogZGlnaXRzIGFyZSBub24temVyby4KKyAgKgorICAqIEBwYXJhbSAgc2NhbGUgVGhlIDxjb2RlPmludDwvY29kZT4gc3BlY2lmeWluZyB0aGUgc2NhbGUgb2YgdGhlCisgICogICAgICAgICAgICAgICByZXN1bHRpbmcgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4uCisgICogQHBhcmFtICByb3VuZCBUaGUgPGNvZGU+aW50PC9jb2RlPiByb3VuZGluZyBtb2RlIHRvIGJlIHVzZWQgZm9yCisgICogICAgICAgICAgICAgICB0aGUgZGl2aXNpb24gKHNlZSB0aGUge0BsaW5rIE1hdGhDb250ZXh0fSBjbGFzcykuCisgICogQHJldHVybiAgICAgICBBIHBsYWluIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdpdGggdGhlIGdpdmVuIHNjYWxlLgorICAqIEB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIDxjb2RlPnJvdW5kPC9jb2RlPiBpcyBub3QgYQorICAqICAgICAgICAgICAgICAgdmFsaWQgcm91bmRpbmcgbW9kZS4KKyAgKiBAdGhyb3dzIEFyaXRobWV0aWNFeGNlcHRpb24gaWYgPGNvZGU+c2NhbGU8L2NvZGU+IGlzIG5lZ2F0aXZlLgorICAqIEB0aHJvd3MgQXJpdGhtZXRpY0V4Y2VwdGlvbiBpZiA8Y29kZT5yb3VuZDwvY29kZT4gaXMKKyAgKiAgICAgICAgICAgICAgIDxjb2RlPk1hdGhDb250ZXh0LlJPVU5EX1VOTkVDRVNTQVJZPC9jb2RlPiwgYW5kCisgICogICAgICAgICAgICAgICByZWR1Y2luZyBzY2FsZSB3b3VsZCBkaXNjYXJkIG5vbi16ZXJvIGRpZ2l0cy4KKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHNldFNjYWxlKGludCBzY2FsZSxpbnQgcm91bmQpeworICBpbnQgb3Vyc2NhbGU7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByZXM7CisgIGludCBwYWRkaW5nPTA7CisgIGludCBuZXdsZW49MDsKKyAgLy8gYXQgcHJlc2VudCB0aGlzIG5hdWdodGlseSBvbmx5IGNoZWNrcyB0aGUgcm91bmQgdmFsdWUgaWYgaXQgaXMKKyAgLy8gbmVlZGVkICh1c2VkKSwgZm9yIHNwZWVkCisgIG91cnNjYWxlPXRoaXMuc2NhbGUoKTsKKyAgaWYgKG91cnNjYWxlPT1zY2FsZSkgIC8vIGFscmVhZHkgY29ycmVjdCBzY2FsZQorICAgaWYgKHRoaXMuZm9ybT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTikgIC8vIC4uIGFuZCBmb3JtCisgICAgcmV0dXJuIHRoaXM7CisgIHJlcz1jbG9uZSh0aGlzKTsgLy8gbmVlZCBjb3B5CisgIGlmIChvdXJzY2FsZTw9c2NhbGUpIAorICAgeyAvLyBzaW1wbHkgemVyby1wYWRkaW5nL2NoYW5naW5nIGZvcm0KKyAgICAvLyBpZiBvdXJzY2FsZSBpcyAwIHdlIG1heSBoYXZlIGxvdHMgb2YgMHMgdG8gYWRkCisgICAgaWYgKG91cnNjYWxlPT0wKSAKKyAgICAgcGFkZGluZz1yZXMuZXhwK3NjYWxlOworICAgIGVsc2UgCisgICAgIHBhZGRpbmc9c2NhbGUtb3Vyc2NhbGU7CisgICAgcmVzLm1hbnQ9ZXh0ZW5kKHJlcy5tYW50LHJlcy5tYW50Lmxlbmd0aCtwYWRkaW5nKTsKKyAgICByZXMuZXhwPShpbnQpLXNjYWxlOyAvLyBhcyByZXF1ZXN0ZWQKKyAgIH0KKyAgZWxzZSAKKyAgIHsvKiBvdXJzY2FsZT5zY2FsZTogc2hvcnRlbmluZywgcHJvYmFibHkgKi8KKyAgICBpZiAoc2NhbGU8MCkgCisgICAgIHRocm93IG5ldyBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbigiTmVnYXRpdmUgc2NhbGU6IisiICIrc2NhbGUpOworICAgIC8vIFtyb3VuZCgpIHdpbGwgcmFpc2UgZXhjZXB0aW9uIGlmIGludmFsaWQgcm91bmRdCisgICAgbmV3bGVuPXJlcy5tYW50Lmxlbmd0aC0oKG91cnNjYWxlLXNjYWxlKSk7IC8vIFs8PTAgaXMgT0tdCisgICAgcmVzPXJlcy5yb3VuZChuZXdsZW4scm91bmQpOyAvLyByb3VuZCB0byByZXF1aXJlZCBsZW5ndGgKKyAgICAvLyBUaGlzIGNvdWxkIGhhdmUgc2hpZnRlZCBsZWZ0IGlmIHJvdW5kIChzYXkpIDAuOS0+MVsuMF0KKyAgICAvLyBSZXBhaXIgaWYgc28gYnkgYWRkaW5nIGEgemVybyBhbmQgcmVkdWNpbmcgZXhwb25lbnQKKyAgICBpZiAocmVzLmV4cCE9KChpbnQpLXNjYWxlKSkgCisgICAgIHsKKyAgICAgIHJlcy5tYW50PWV4dGVuZChyZXMubWFudCxyZXMubWFudC5sZW5ndGgrMSk7CisgICAgICByZXMuZXhwPXJlcy5leHAtMTsKKyAgICAgfQorICAgfQorICByZXMuZm9ybT0oYnl0ZSljb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOOyAvLyBieSBkZWZpbml0aW9uCisgIHJldHVybiByZXM7CisgIH0KKworIC8qKgorICAqIENvbnZlcnRzIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gdG8gYSA8Y29kZT5zaG9ydDwvY29kZT4uCisgICogSWYgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGhhcyBhIG5vbi16ZXJvIGRlY2ltYWwgcGFydCBvciBpcworICAqIG91dCBvZiB0aGUgcG9zc2libGUgcmFuZ2UgZm9yIGEgPGNvZGU+c2hvcnQ8L2NvZGU+ICgxNi1iaXQgc2lnbmVkCisgICogaW50ZWdlcikgcmVzdWx0IHRoZW4gYW4gPGNvZGU+QXJpdGhtZXRpY0V4Y2VwdGlvbjwvY29kZT4gaXMgdGhyb3duLgorICAqCisgICogQHJldHVybiBBIDxjb2RlPnNob3J0PC9jb2RlPiBlcXVhbCBpbiB2YWx1ZSB0byA8Y29kZT50aGlzPC9jb2RlPi4KKyAgKiBAdGhyb3dzIEFyaXRobWV0aWNFeGNlcHRpb24gaWYgPGNvZGU+dGhpczwvY29kZT4gaGFzIGEgbm9uLXplcm8KKyAgKiAgICAgICAgICAgICAgICAgZGVjaW1hbCBwYXJ0LCBvciB3aWxsIG5vdCBmaXQgaW4gYQorICAqICAgICAgICAgICAgICAgICA8Y29kZT5zaG9ydDwvY29kZT4uCisgICogQHNpbmNlICBJQk0gSkRLIDEuMS44CisgICovCisgCisgcHVibGljIHNob3J0IHNob3J0VmFsdWVFeGFjdCgpeworICBpbnQgbnVtOworICBudW09dGhpcy5pbnRWYWx1ZUV4YWN0KCk7IC8vIHdpbGwgY2hlY2sgZGVjaW1hbCBwYXJ0IHRvbworICBpZiAoKG51bT4zMjc2Nyl8KG51bTwoLTMyNzY4KSkpIAorICAgdGhyb3cgbmV3IGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uKCJDb252ZXJzaW9uIG92ZXJmbG93OiIrIiAiK3RoaXMudG9TdHJpbmcoKSk7CisgIHJldHVybiAoc2hvcnQpbnVtOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIHRoZSBzaWduIG9mIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4sIGFzIGFuCisgICogPGNvZGU+aW50PC9jb2RlPi4KKyAgKiBUaGlzIHJldHVybnMgdGhlIDxpPnNpZ251bTwvaT4gZnVuY3Rpb24gdmFsdWUgdGhhdCByZXByZXNlbnRzIHRoZQorICAqIHNpZ24gb2YgdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPi4KKyAgKiBUaGF0IGlzLCAtMSBpZiB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaXMgbmVnYXRpdmUsIDAgaWYgaXQgaXMKKyAgKiBudW1lcmljYWxseSBlcXVhbCB0byB6ZXJvLCBvciAxIGlmIGl0IGlzIHBvc2l0aXZlLgorICAqCisgICogQHJldHVybiBBbiA8Y29kZT5pbnQ8L2NvZGU+IHdoaWNoIGlzIC0xIGlmIHRoZQorICAqICAgICAgICAgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaXMgbmVnYXRpdmUsIDAgaWYgaXQgaXMKKyAgKiAgICAgICAgIG51bWVyaWNhbGx5IGVxdWFsIHRvIHplcm8sIG9yIDEgaWYgaXQgaXMgcG9zaXRpdmUuCisgICovCisgCisgcHVibGljIGludCBzaWdudW0oKXsKKyAgcmV0dXJuIChpbnQpdGhpcy5pbmQ7IC8vIFtub3RlIHRoaXMgYXNzdW1lcyB2YWx1ZXMgZm9yIGluZC5dCisgIH0KKworIC8qKgorICAqIENvbnZlcnRzIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gdG8gYQorICAqIDxjb2RlPmphdmEubWF0aC5CaWdEZWNpbWFsPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBUaGlzIGlzIGFuIGV4YWN0IGNvbnZlcnNpb247IHRoZSByZXN1bHQgaXMgdGhlIHNhbWUgYXMgaWYgdGhlCisgICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2VyZSBmb3JtYXR0ZWQgYXMgYSBwbGFpbiBudW1iZXIgd2l0aG91dAorICAqIGFueSByb3VuZGluZyBvciBleHBvbmVudCBhbmQgdGhlbiB0aGUKKyAgKiA8Y29kZT5qYXZhLm1hdGguQmlnRGVjaW1hbChqYXZhLmxhbmcuU3RyaW5nKTwvY29kZT4gY29uc3RydWN0b3IKKyAgKiB3ZXJlIHVzZWQgdG8gY29uc3RydWN0IHRoZSByZXN1bHQuCisgICogPHA+CisgICogPGk+KE5vdGU6IHRoaXMgbWV0aG9kIGlzIHByb3ZpZGVkIG9ubHkgaW4gdGhlCisgICogPGNvZGU+Y29tLmlibS5pY3UubWF0aDwvY29kZT4gdmVyc2lvbiBvZiB0aGUgQmlnRGVjaW1hbCBjbGFzcy4KKyAgKiBJdCB3b3VsZCBub3QgYmUgcHJlc2VudCBpbiBhIDxjb2RlPmphdmEubWF0aDwvY29kZT4gdmVyc2lvbi4pPC9pPgorICAqCisgICogQHJldHVybiBUaGUgPGNvZGU+amF2YS5tYXRoLkJpZ0RlY2ltYWw8L2NvZGU+IGVxdWFsIGluIHZhbHVlCisgICogICAgICAgICB0byB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LgorICAqIEBzaW5jZSBJQk0gSkRLIDEuMS44CisgICovCisgCisgcHVibGljIGphdmEubWF0aC5CaWdEZWNpbWFsIHRvQmlnRGVjaW1hbCgpeworICByZXR1cm4gbmV3IGphdmEubWF0aC5CaWdEZWNpbWFsKHRoaXMudW5zY2FsZWRWYWx1ZSgpLHRoaXMuc2NhbGUoKSk7CisgIH0KKworIC8qKgorICAqIENvbnZlcnRzIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gdG8gYQorICAqIDxjb2RlPmphdmEubWF0aC5CaWdJbnRlZ2VyPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBBbnkgZGVjaW1hbCBwYXJ0IGlzIHRydW5jYXRlZCAoZGlzY2FyZGVkKS4KKyAgKiBJZiBhbiBleGNlcHRpb24gaXMgZGVzaXJlZCBzaG91bGQgdGhlIGRlY2ltYWwgcGFydCBiZSBub24temVybywKKyAgKiB1c2Uge0BsaW5rICN0b0JpZ0ludGVnZXJFeGFjdCgpfS4KKyAgKgorICAqIEByZXR1cm4gVGhlIDxjb2RlPmphdmEubWF0aC5CaWdJbnRlZ2VyPC9jb2RlPiBlcXVhbCBpbiB2YWx1ZQorICAqICAgICAgICAgdG8gdGhlIGludGVnZXIgcGFydCBvZiB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LgorICAqLworIAorIHB1YmxpYyBqYXZhLm1hdGguQmlnSW50ZWdlciB0b0JpZ0ludGVnZXIoKXsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJlcz1udWxsOworICBpbnQgbmV3bGVuPTA7CisgIGJ5dGUgbmV3bWFudFtdPW51bGw7CisgIHsvKnNlbGVjdCovCisgIGlmICgoZXhwPj0wKSYoZm9ybT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTikpCisgICByZXM9dGhpczsgLy8gY2FuIGxheW91dCBzaW1wbHkKKyAgZWxzZSBpZiAoZXhwPj0wKQorICAgeworICAgIHJlcz1jbG9uZSh0aGlzKTsgLy8gc2FmZSBjb3B5CisgICAgcmVzLmZvcm09KGJ5dGUpY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTjsgLy8gLi4gYW5kIHJlcXVlc3QgUExBSU4KKyAgIH0KKyAgZWxzZXsKKyAgIHsgLy8gZXhwPDA7IHNjYWxlIHRvIGJlIHRydW5jYXRlZAorICAgIC8vIHdlIGNvdWxkIHVzZSBkaXZpZGVJbnRlZ2VyLCBidXQgd2UgbWF5IGFzIHdlbGwgYmUgcXVpY2tlcgorICAgIGlmICgoKGludCktdGhpcy5leHApPj10aGlzLm1hbnQubGVuZ3RoKSAKKyAgICAgcmVzPVpFUk87IC8vIGFsbCBibG93cyBhd2F5CisgICAgZWxzZSAKKyAgICAgeworICAgICAgcmVzPWNsb25lKHRoaXMpOyAvLyBzYWZlIGNvcHkKKyAgICAgIG5ld2xlbj1yZXMubWFudC5sZW5ndGgrcmVzLmV4cDsKKyAgICAgIG5ld21hbnQ9bmV3IGJ5dGVbbmV3bGVuXTsgLy8gW3Nob3J0ZXJdCisgICAgICBqYXZhLmxhbmcuU3lzdGVtLmFycmF5Y29weSgoamF2YS5sYW5nLk9iamVjdClyZXMubWFudCwwLChqYXZhLmxhbmcuT2JqZWN0KW5ld21hbnQsMCxuZXdsZW4pOworICAgICAgcmVzLm1hbnQ9bmV3bWFudDsKKyAgICAgIHJlcy5mb3JtPShieXRlKWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU47CisgICAgICByZXMuZXhwPTA7CisgICAgIH0KKyAgIH0KKyAgfQorICB9CisgIHJldHVybiBuZXcgQmlnSW50ZWdlcihuZXcgamF2YS5sYW5nLlN0cmluZyhyZXMubGF5b3V0KCkpKTsKKyAgfQorCisgLyoqCisgICogQ29udmVydHMgdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB0byBhCisgICogPGNvZGU+amF2YS5tYXRoLkJpZ0ludGVnZXI8L2NvZGU+LgorICAqIDxwPgorICAqIEFuIGV4Y2VwdGlvbiBpcyB0aHJvd24gaWYgdGhlIGRlY2ltYWwgcGFydCAoaWYgYW55KSBpcyBub24temVyby4KKyAgKgorICAqIEByZXR1cm4gVGhlIDxjb2RlPmphdmEubWF0aC5CaWdJbnRlZ2VyPC9jb2RlPiBlcXVhbCBpbiB2YWx1ZQorICAqICAgICAgICAgdG8gdGhlIGludGVnZXIgcGFydCBvZiB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LgorICAqIEB0aHJvd3MgQXJpdGhtZXRpY0V4Y2VwdGlvbiBpZiA8Y29kZT50aGlzPC9jb2RlPiBoYXMgYSBub24temVybworICAqICAgICAgICAgZGVjaW1hbCBwYXJ0LgorICAqIEBzaW5jZSAgSUJNIEpESyAxLjEuOAorICAqLworIAorIHB1YmxpYyBqYXZhLm1hdGguQmlnSW50ZWdlciB0b0JpZ0ludGVnZXJFeGFjdCgpeworICAvKiB0ZXN0IGFueSB0cmFpbGluZyBkZWNpbWFsIHBhcnQgKi8KKyAgaWYgKGV4cDwwKSAKKyAgIHsgLy8gcG9zc2libGUgZGVjaW1hbCBwYXJ0CisgICAgLyogYWxsIGRlY2ltYWwgcGxhY2VzIG11c3QgYmUgMDsgbm90ZSBleHA8MCAqLworICAgIGlmICgoIShhbGx6ZXJvKG1hbnQsbWFudC5sZW5ndGgrZXhwKSkpKSAKKyAgICAgdGhyb3cgbmV3IGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uKCJEZWNpbWFsIHBhcnQgbm9uLXplcm86IisiICIrdGhpcy50b1N0cmluZygpKTsKKyAgIH0KKyAgcmV0dXJuIHRvQmlnSW50ZWdlcigpOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBhcyBhIGNoYXJhY3RlciBhcnJheS4KKyAgKiBUaGUgcmVzdWx0IG9mIHRoaXMgbWV0aG9kIGlzIHRoZSBzYW1lIGFzIHVzaW5nIHRoZQorICAqIHNlcXVlbmNlIDxjb2RlPnRvU3RyaW5nKCkudG9DaGFyQXJyYXkoKTwvY29kZT4sIGJ1dCBhdm9pZHMgY3JlYXRpbmcKKyAgKiB0aGUgaW50ZXJtZWRpYXRlIDxjb2RlPlN0cmluZzwvY29kZT4gYW5kIDxjb2RlPmNoYXJbXTwvY29kZT4KKyAgKiBvYmplY3RzLgorICAqCisgICogQHJldHVybiBUaGUgPGNvZGU+Y2hhcltdPC9jb2RlPiBhcnJheSBjb3JyZXNwb25kaW5nIHRvIHRoaXMKKyAgKiAgICAgICAgIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LgorICAqIEBzaW5jZSBJQk0gSkRLIDEuMS44CisgICovCisgCisgcHVibGljIGNoYXJbXSB0b0NoYXJBcnJheSgpeworICByZXR1cm4gbGF5b3V0KCk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGFzIGEgPGNvZGU+U3RyaW5nPC9jb2RlPi4KKyAgKiBUaGlzIHJldHVybnMgYSA8Y29kZT5TdHJpbmc8L2NvZGU+IHRoYXQgZXhhY3RseSByZXByZXNlbnRzIHRoaXMKKyAgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiwgYXMgZGVmaW5lZCBpbiB0aGUgZGVjaW1hbCBkb2N1bWVudGF0aW9uCisgICogKHNlZSB7QGxpbmsgQmlnRGVjaW1hbCBjbGFzcyBoZWFkZXJ9KS4KKyAgKiA8cD4KKyAgKiBCeSBkZWZpbml0aW9uLCB1c2luZyB0aGUge0BsaW5rICNCaWdEZWNpbWFsKFN0cmluZyl9IGNvbnN0cnVjdG9yCisgICogb24gdGhlIHJlc3VsdCA8Y29kZT5TdHJpbmc8L2NvZGU+IHdpbGwgY3JlYXRlIGEKKyAgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB0aGF0IGlzIGV4YWN0bHkgZXF1YWwgdG8gdGhlIG9yaWdpbmFsCisgICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4uCisgICoKKyAgKiBAcmV0dXJuIFRoZSA8Y29kZT5TdHJpbmc8L2NvZGU+IGV4YWN0bHkgY29ycmVzcG9uZGluZyB0byB0aGlzCisgICogICAgICAgICA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPi4KKyAgKiBAc2VlICAgICNmb3JtYXQoaW50LCBpbnQpCisgICogQHNlZSAgICAjZm9ybWF0KGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQpCisgICogQHNlZSAgICAjdG9DaGFyQXJyYXkoKQorICAqLworIAorIHB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIHRvU3RyaW5nKCl7CisgIHJldHVybiBuZXcgamF2YS5sYW5nLlN0cmluZyhsYXlvdXQoKSk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgdGhlIG51bWJlciBhcyBhIDxjb2RlPkJpZ0ludGVnZXI8L2NvZGU+IGFmdGVyIHJlbW92aW5nIHRoZQorICAqIHNjYWxlLgorICAqIFRoYXQgaXMsIHRoZSBudW1iZXIgaXMgZXhwcmVzc2VkIGFzIGEgcGxhaW4gbnVtYmVyLCBhbnkgZGVjaW1hbAorICAqIHBvaW50IGlzIHRoZW4gcmVtb3ZlZCAocmV0YWluaW5nIHRoZSBkaWdpdHMgb2YgYW55IGRlY2ltYWwgcGFydCksCisgICogYW5kIHRoZSByZXN1bHQgaXMgdGhlbiBjb252ZXJ0ZWQgdG8gYSA8Y29kZT5CaWdJbnRlZ2VyPC9jb2RlPi4KKyAgKgorICAqIEByZXR1cm4gVGhlIDxjb2RlPmphdmEubWF0aC5CaWdJbnRlZ2VyPC9jb2RlPiBlcXVhbCBpbiB2YWx1ZSB0bworICAqICAgICAgICAgdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBtdWx0aXBsaWVkIGJ5IHRlbiB0byB0aGUKKyAgKiAgICAgICAgIHBvd2VyIG9mIDxjb2RlPnRoaXMuc2NhbGUoKTwvY29kZT4uCisgICogQHNpbmNlIEpESzEuMgorICAqLworIAorIHB1YmxpYyBqYXZhLm1hdGguQmlnSW50ZWdlciB1bnNjYWxlZFZhbHVlKCl7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByZXM9bnVsbDsKKyAgaWYgKGV4cD49MCkgCisgICByZXM9dGhpczsKKyAgZWxzZSAKKyAgIHsKKyAgICByZXM9Y2xvbmUodGhpcyk7IC8vIHNhZmUgY29weQorICAgIHJlcy5leHA9MDsgLy8gZHJvcCBzY2FsZQorICAgfQorICByZXR1cm4gcmVzLnRvQmlnSW50ZWdlcigpOworICB9CisKKyAvKioKKyAgKiBUcmFuc2xhdGVzIGEgPGNvZGU+ZG91YmxlPC9jb2RlPiB0byBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LgorICAqIDxwPgorICAqIFJldHVybnMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aGljaCBpcyB0aGUgZGVjaW1hbAorICAqIHJlcHJlc2VudGF0aW9uIG9mIHRoZSA2NC1iaXQgc2lnbmVkIGJpbmFyeSBmbG9hdGluZyBwb2ludAorICAqIHBhcmFtZXRlci4gSWYgdGhlIHBhcmFtZXRlciBpcyBpbmZpbml0ZSwgb3IgaXMgbm90IGEgbnVtYmVyIChOYU4pLAorICAqIGEgPGNvZGU+TnVtYmVyRm9ybWF0RXhjZXB0aW9uPC9jb2RlPiBpcyB0aHJvd24uCisgICogPHA+CisgICogVGhlIG51bWJlciBpcyBjb25zdHJ1Y3RlZCBhcyB0aG91Z2ggPGNvZGU+bnVtPC9jb2RlPiBoYWQgYmVlbgorICAqIGNvbnZlcnRlZCB0byBhIDxjb2RlPlN0cmluZzwvY29kZT4gdXNpbmcgdGhlCisgICogPGNvZGU+RG91YmxlLnRvU3RyaW5nKCk8L2NvZGU+IG1ldGhvZCBhbmQgdGhlCisgICoge0BsaW5rICNCaWdEZWNpbWFsKGphdmEubGFuZy5TdHJpbmcpfSBjb25zdHJ1Y3RvciBoYWQgdGhlbiBiZWVuIHVzZWQuCisgICogVGhpcyBpcyB0eXBpY2FsbHkgbm90IGFuIGV4YWN0IGNvbnZlcnNpb24uCisgICoKKyAgKiBAcGFyYW0gIGR1YiBUaGUgPGNvZGU+ZG91YmxlPC9jb2RlPiB0byBiZSB0cmFuc2xhdGVkLgorICAqIEByZXR1cm4gICAgIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBlcXVhbCBpbiB2YWx1ZSB0bworICAqICAgICAgICAgICAgIDxjb2RlPmR1YjwvY29kZT4uCisgICogQHRocm93cyBOdW1iZXJGb3JtYXRFeGNlcHRpb24gaWYgdGhlIHBhcmFtZXRlciBpcyBpbmZpbml0ZSBvcgorICAqICAgICAgICAgICAgIG5vdCBhIG51bWJlci4KKyAgKiBAc2luY2UgSUJNIEpESyAxLjEuOAorICAqLworIAorIHB1YmxpYyBzdGF0aWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHZhbHVlT2YoZG91YmxlIGR1Yil7CisgIC8vIFJlbWluZGVyOiBhIHplcm8gZG91YmxlIHJldHVybnMgJzAuMCcsIHNvIHdlIGNhbm5vdCBmYXN0cGF0aCB0bworICAvLyB1c2UgdGhlIGNvbnN0YW50IFpFUk8uICBUaGlzIG1pZ2h0IGJlIGltcG9ydGFudCBlbm91Z2ggdG8ganVzdGlmeQorICAvLyBhIGZhY3RvcnkgYXBwcm9hY2gsIGEgY2FjaGUsIG9yIGEgZmV3IHByaXZhdGUgY29uc3RhbnRzLCBsYXRlci4KKyAgcmV0dXJuIG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoKG5ldyBqYXZhLmxhbmcuRG91YmxlKGR1YikpLnRvU3RyaW5nKCkpOworICB9CisKKyAvKioKKyAgKiBUcmFuc2xhdGVzIGEgPGNvZGU+bG9uZzwvY29kZT4gdG8gYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPi4KKyAgKiBUaGF0IGlzLCByZXR1cm5zIGEgcGxhaW4gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiBlcXVhbCB0byB0aGUgZ2l2ZW4gPGNvZGU+bG9uZzwvY29kZT4uCisgICoKKyAgKiBAcGFyYW0gIGxpbnQgVGhlIDxjb2RlPmxvbmc8L2NvZGU+IHRvIGJlIHRyYW5zbGF0ZWQuCisgICogQHJldHVybiAgICAgIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBlcXVhbCBpbiB2YWx1ZSB0bworICAqICAgICAgICAgICAgICA8Y29kZT5saW50PC9jb2RlPi4KKyAgKi8KKyAKKyBwdWJsaWMgc3RhdGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCB2YWx1ZU9mKGxvbmcgbGludCl7CisgIHJldHVybiB2YWx1ZU9mKGxpbnQsMCk7CisgIH0KKworIC8qKgorICAqIFRyYW5zbGF0ZXMgYSA8Y29kZT5sb25nPC9jb2RlPiB0byBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdpdGggYQorICAqIGdpdmVuIHNjYWxlLgorICAqIFRoYXQgaXMsIHJldHVybnMgYSBwbGFpbiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB1bnNjYWxlZAorICAqIHZhbHVlIGlzIGVxdWFsIHRvIHRoZSBnaXZlbiA8Y29kZT5sb25nPC9jb2RlPiwgYWRqdXN0ZWQgYnkgdGhlCisgICogc2Vjb25kIHBhcmFtZXRlciwgPGNvZGU+c2NhbGU8L2NvZGU+LgorICAqIDxwPgorICAqIFRoZSByZXN1bHQgaXMgZ2l2ZW4gYnk6CisgICogPHA+PGNvZGU+CisgICogKG5ldyBCaWdEZWNpbWFsKGxpbnQpKS5kaXZpZGUoVEVOLnBvdyhuZXcgQmlnRGVjaW1hbChzY2FsZSkpKQorICAqIDwvY29kZT4KKyAgKiA8cD4KKyAgKiBBIDxjb2RlPk51bWJlckZvcm1hdEV4Y2VwdGlvbjwvY29kZT4gaXMgdGhyb3duIGlmIDxjb2RlPnNjYWxlPC9jb2RlPgorICAqIGlzIG5lZ2F0aXZlLgorICAqCisgICogQHBhcmFtICBsaW50ICBUaGUgPGNvZGU+bG9uZzwvY29kZT4gdG8gYmUgdHJhbnNsYXRlZC4KKyAgKiBAcGFyYW0gIHNjYWxlIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IHNjYWxlIHRvIGJlIGFwcGxpZWQuCisgICogQHJldHVybiAgICAgICBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZXF1YWwgaW4gdmFsdWUgdG8KKyAgKiAgICAgICAgICAgICAgIDxjb2RlPmxpbnQ8L2NvZGU+LgorICAqIEB0aHJvd3MgTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGlmIHRoZSBzY2FsZSBpcyBuZWdhdGl2ZS4KKyAgKi8KKyAKKyBwdWJsaWMgc3RhdGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCB2YWx1ZU9mKGxvbmcgbGludCxpbnQgc2NhbGUpeworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmVzPW51bGw7CisgIHsvKnNlbGVjdCovCisgIGlmIChsaW50PT0wKQorICAgcmVzPVpFUk87CisgIGVsc2UgaWYgKGxpbnQ9PTEpCisgICByZXM9T05FOworICBlbHNlIGlmIChsaW50PT0xMCkKKyAgIHJlcz1URU47CisgIGVsc2V7CisgICByZXM9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChsaW50KTsKKyAgfQorICB9CisgIGlmIChzY2FsZT09MCkgCisgICByZXR1cm4gcmVzOworICBpZiAoc2NhbGU8MCkgCisgICB0aHJvdyBuZXcgamF2YS5sYW5nLk51bWJlckZvcm1hdEV4Y2VwdGlvbigiTmVnYXRpdmUgc2NhbGU6IisiICIrc2NhbGUpOworICByZXM9Y2xvbmUocmVzKTsgLy8gc2FmZSBjb3B5IFtkbyBub3QgbXV0YXRlXQorICByZXMuZXhwPShpbnQpLXNjYWxlOyAvLyBleHBvbmVudCBpcyAtc2NhbGUKKyAgcmV0dXJuIHJlczsKKyAgfQorCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIC8qIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyogPHNnbWw+IFJldHVybiBjaGFyIGFycmF5IHZhbHVlIG9mIGEgQmlnRGVjaW1hbCAoY29udmVyc2lvbiBmcm9tCisgICAgICAgQmlnRGVjaW1hbCB0byBsYWlkLW91dCBjYW5vbmljYWwgY2hhciBhcnJheSkuCisgICAgPHA+VGhlIG1hbnRpc3NhIHdpbGwgZWl0aGVyIGFscmVhZHkgaGF2ZSBiZWVuIHJvdW5kZWQgKGZvbGxvd2luZyBhbgorICAgICAgIG9wZXJhdGlvbikgb3Igd2lsbCBiZSBvZiBsZW5ndGggYXBwcm9wcmlhdGUgKGluIHRoZSBjYXNlIG9mCisgICAgICAgY29uc3RydWN0aW9uIGZyb20gYW4gaW50LCBmb3IgZXhhbXBsZSkuCisgICAgPHA+V2UgbXVzdCBub3QgYWx0ZXIgdGhlIG1hbnRpc3NhLCBoZXJlLgorICAgIDxwPidmb3JtJyBkZXNjcmliZXMgd2hldGhlciB3ZSBhcmUgdG8gdXNlIGV4cG9uZW50aWFsIG5vdGF0aW9uIChhbmQKKyAgICAgICBpZiBzbywgd2hpY2gpLCBvciBpZiB3ZSBhcmUgdG8gbGF5IG91dCBhcyBhIHBsYWluL3B1cmUgbnVtZXJpYy4KKyAgICA8L3NnbWw+ICovCisgCisgcHJpdmF0ZSBjaGFyW10gbGF5b3V0KCl7CisgIGNoYXIgY21hbnRbXTsKKyAgaW50IGk9MDsKKyAgamF2YS5sYW5nLlN0cmluZ0J1ZmZlciBzYj1udWxsOworICBpbnQgZXVzZT0wOworICBpbnQgc2lnPTA7CisgIGNoYXIgY3NpZ249MDsKKyAgY2hhciByZWNbXT1udWxsOworICBpbnQgbmVlZHNpZ247CisgIGludCBtYWc7CisgIGludCBsZW49MDsKKyAgY21hbnQ9bmV3IGNoYXJbbWFudC5sZW5ndGhdOyAvLyBjb3B5IGJ5dGVbXSB0byBhIGNoYXJbXQorICB7aW50ICQxOD1tYW50Lmxlbmd0aDtpPTA7aTpmb3IoOyQxOD4wOyQxOC0tLGkrKyl7CisgICBjbWFudFtpXT0oY2hhcikobWFudFtpXSsoKGludCkoJzAnKSkpOworICAgfQorICB9LyppKi8KKyAgCisgIGlmIChmb3JtIT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOKSAKKyAgIHsvKiBleHBvbmVudGlhbCBub3RhdGlvbiBuZWVkZWQgKi8KKyAgICBzYj1uZXcgamF2YS5sYW5nLlN0cmluZ0J1ZmZlcihjbWFudC5sZW5ndGgrMTUpOyAvLyAteC54eHhFKzk5OTk5OTk5OQorICAgIGlmIChpbmQ9PWlzbmVnKSAKKyAgICAgc2IuYXBwZW5kKCctJyk7CisgICAgZXVzZT0oZXhwK2NtYW50Lmxlbmd0aCktMTsgLy8gZXhwb25lbnQgdG8gdXNlCisgICAgLyogc2V0dXAgc2lnPXNpZ25pZmljYW50IGRpZ2l0cyBhbmQgY29weSB0byByZXN1bHQgKi8KKyAgICBpZiAoZm9ybT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDKSAKKyAgICAgeyAvLyBbZGVmYXVsdF0KKyAgICAgIHNiLmFwcGVuZChjbWFudFswXSk7IC8vIHNpZ25pZmljYW50IGNoYXJhY3RlcgorICAgICAgaWYgKGNtYW50Lmxlbmd0aD4xKSAgLy8gaGF2ZSBkZWNpbWFsIHBhcnQKKyAgICAgICBzYi5hcHBlbmQoJy4nKS5hcHBlbmQoY21hbnQsMSxjbWFudC5sZW5ndGgtMSk7CisgICAgIH0KKyAgICBlbHNlIAorICAgICB7ZW5naW5lZXJpbmc6ZG97CisgICAgICBzaWc9ZXVzZSUzOyAvLyBjb21tb24KKyAgICAgIGlmIChzaWc8MCkgCisgICAgICAgc2lnPTMrc2lnOyAvLyBuZWdhdGl2ZSBleHBvbmVudAorICAgICAgZXVzZT1ldXNlLXNpZzsKKyAgICAgIHNpZysrOworICAgICAgaWYgKHNpZz49Y21hbnQubGVuZ3RoKSAKKyAgICAgICB7IC8vIHplcm8gcGFkZGluZyBtYXkgYmUgbmVlZGVkCisgICAgICAgIHNiLmFwcGVuZChjbWFudCwwLGNtYW50Lmxlbmd0aCk7CisgICAgICAgIHtpbnQgJDE5PXNpZy1jbWFudC5sZW5ndGg7Zm9yKDskMTk+MDskMTktLSl7CisgICAgICAgICBzYi5hcHBlbmQoJzAnKTsKKyAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgIH0KKyAgICAgIGVsc2UgCisgICAgICAgeyAvLyBkZWNpbWFsIHBvaW50IG5lZWRlZAorICAgICAgICBzYi5hcHBlbmQoY21hbnQsMCxzaWcpLmFwcGVuZCgnLicpLmFwcGVuZChjbWFudCxzaWcsY21hbnQubGVuZ3RoLXNpZyk7CisgICAgICAgfQorICAgICB9d2hpbGUoZmFsc2UpO30vKmVuZ2luZWVyaW5nKi8KKyAgICBpZiAoZXVzZSE9MCkgCisgICAgIHsKKyAgICAgIGlmIChldXNlPDApIAorICAgICAgIHsKKyAgICAgICAgY3NpZ249Jy0nOworICAgICAgICBldXNlPShpbnQpLWV1c2U7CisgICAgICAgfQorICAgICAgZWxzZSAKKyAgICAgICBjc2lnbj0nKyc7CisgICAgICBzYi5hcHBlbmQoJ0UnKS5hcHBlbmQoY3NpZ24pLmFwcGVuZChldXNlKTsKKyAgICAgfQorICAgIHJlYz1uZXcgY2hhcltzYi5sZW5ndGgoKV07CisgICAgVXRpbGl0eS5nZXRDaGFycyhzYiwgMCxzYi5sZW5ndGgoKSxyZWMsMCk7CisgICAgcmV0dXJuIHJlYzsKKyAgIH0KKyAgCisgIC8qIEhlcmUgZm9yIG5vbi1leHBvbmVudGlhbCAocGxhaW4pIG5vdGF0aW9uICovCisgIGlmIChleHA9PTApIAorICAgey8qIGVhc3kgKi8KKyAgICBpZiAoaW5kPj0wKSAKKyAgICAgcmV0dXJuIGNtYW50OyAvLyBub24tbmVnYXRpdmUgaW50ZWdlcgorICAgIHJlYz1uZXcgY2hhcltjbWFudC5sZW5ndGgrMV07CisgICAgcmVjWzBdPSctJzsKKyAgICBqYXZhLmxhbmcuU3lzdGVtLmFycmF5Y29weSgoamF2YS5sYW5nLk9iamVjdCljbWFudCwwLChqYXZhLmxhbmcuT2JqZWN0KXJlYywxLGNtYW50Lmxlbmd0aCk7CisgICAgcmV0dXJuIHJlYzsKKyAgIH0KKyAgCisgIC8qIE5lZWQgYSAnLicgYW5kL29yIHNvbWUgemVyb3MgKi8KKyAgbmVlZHNpZ249KGludCkoKGluZD09aXNuZWcpPzE6MCk7IC8vIHNwYWNlIGZvciBzaWduPyAgMCBvciAxCisgIAorICAvKiBNQUcgaXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBwb2ludCBpbiB0aGUgbWFudGlzc2EgKGluZGV4IG9mIHRoZQorICAgICBjaGFyYWN0ZXIgaXQgZm9sbG93cykgKi8KKyAgbWFnPWV4cCtjbWFudC5sZW5ndGg7CisgIAorICBpZiAobWFnPDEpIAorICAgey8qIDAuMDB4eHh4IGZvcm0gKi8KKyAgICBsZW49KG5lZWRzaWduKzIpLWV4cDsgLy8gbmVlZHNpZ24rMisoLW1hZykrY21hbnQubGVuZ3RoCisgICAgcmVjPW5ldyBjaGFyW2xlbl07CisgICAgaWYgKG5lZWRzaWduIT0wKSAKKyAgICAgcmVjWzBdPSctJzsKKyAgICByZWNbbmVlZHNpZ25dPScwJzsKKyAgICByZWNbbmVlZHNpZ24rMV09Jy4nOworICAgIHtpbnQgJDIwPShpbnQpLW1hZztpPW5lZWRzaWduKzI7aTpmb3IoOyQyMD4wOyQyMC0tLGkrKyl7IC8vIG1heWJlIG5vbmUKKyAgICAgcmVjW2ldPScwJzsKKyAgICAgfQorICAgIH0vKmkqLworICAgIGphdmEubGFuZy5TeXN0ZW0uYXJyYXljb3B5KChqYXZhLmxhbmcuT2JqZWN0KWNtYW50LDAsKGphdmEubGFuZy5PYmplY3QpcmVjLChuZWVkc2lnbisyKS1tYWcsY21hbnQubGVuZ3RoKTsKKyAgICByZXR1cm4gcmVjOworICAgfQorICAKKyAgaWYgKG1hZz5jbWFudC5sZW5ndGgpIAorICAgey8qIHh4eHgwMDAwIGZvcm0gKi8KKyAgICBsZW49bmVlZHNpZ24rbWFnOworICAgIHJlYz1uZXcgY2hhcltsZW5dOworICAgIGlmIChuZWVkc2lnbiE9MCkgCisgICAgIHJlY1swXT0nLSc7CisgICAgamF2YS5sYW5nLlN5c3RlbS5hcnJheWNvcHkoKGphdmEubGFuZy5PYmplY3QpY21hbnQsMCwoamF2YS5sYW5nLk9iamVjdClyZWMsbmVlZHNpZ24sY21hbnQubGVuZ3RoKTsKKyAgICB7aW50ICQyMT1tYWctY21hbnQubGVuZ3RoO2k9bmVlZHNpZ24rY21hbnQubGVuZ3RoO2k6Zm9yKDskMjE+MDskMjEtLSxpKyspeyAvLyBuZXZlciAwCisgICAgIHJlY1tpXT0nMCc7CisgICAgIH0KKyAgICB9LyppKi8KKyAgICByZXR1cm4gcmVjOworICAgfQorICAKKyAgLyogZGVjaW1hbCBwb2ludCBpcyBpbiB0aGUgbWlkZGxlIG9mIHRoZSBtYW50aXNzYSAqLworICBsZW49KG5lZWRzaWduKzEpK2NtYW50Lmxlbmd0aDsKKyAgcmVjPW5ldyBjaGFyW2xlbl07CisgIGlmIChuZWVkc2lnbiE9MCkgCisgICByZWNbMF09Jy0nOworICBqYXZhLmxhbmcuU3lzdGVtLmFycmF5Y29weSgoamF2YS5sYW5nLk9iamVjdCljbWFudCwwLChqYXZhLmxhbmcuT2JqZWN0KXJlYyxuZWVkc2lnbixtYWcpOworICByZWNbbmVlZHNpZ24rbWFnXT0nLic7CisgIGphdmEubGFuZy5TeXN0ZW0uYXJyYXljb3B5KChqYXZhLmxhbmcuT2JqZWN0KWNtYW50LG1hZywoamF2YS5sYW5nLk9iamVjdClyZWMsKG5lZWRzaWduK21hZykrMSxjbWFudC5sZW5ndGgtbWFnKTsKKyAgcmV0dXJuIHJlYzsKKyAgfQorCisgLyogPHNnbWw+IENoZWNrcyBhIEJpZ0RlY2ltYWwgYXJndW1lbnQgdG8gZW5zdXJlIGl0J3MgYSB0cnVlIGludGVnZXIKKyAgICAgICBpbiBhIGdpdmVuIHJhbmdlLgorICAgIDxwPklmIE9LLCByZXR1cm5zIGl0IGFzIGFuIGludC4gPC9zZ21sPiAqLworIC8vIFtjdXJyZW50bHkgb25seSB1c2VkIGJ5IHBvd10KKyAKKyBwcml2YXRlIGludCBpbnRjaGVjayhpbnQgbWluLGludCBtYXgpeworICBpbnQgaTsKKyAgaT10aGlzLmludFZhbHVlRXhhY3QoKTsgLy8gW2NoZWNrcyBmb3Igbm9uLTAgZGVjaW1hbCBwYXJ0XQorICAvLyBVc2Ugc2FtZSBtZXNzYWdlIGFzIHRob3VnaCBpbnRWYWx1ZUV4YWN0IGZhaWxlZCBkdWUgdG8gc2l6ZQorICBpZiAoKGk8bWluKXwoaT5tYXgpKSAKKyAgIHRocm93IG5ldyBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbigiQ29udmVyc2lvbiBvdmVyZmxvdzoiKyIgIitpKTsKKyAgcmV0dXJuIGk7CisgIH0KKworIC8qIDxzZ21sPiBDYXJyeSBvdXQgZGl2aXNpb24gb3BlcmF0aW9ucy4gPC9zZ21sPiAqLworIC8qCisgICAgQXJnMSBpcyBvcGVyYXRpb24gY29kZTogRD1kaXZpZGUsIEk9aW50ZWdlciBkaXZpZGUsIFI9cmVtYWluZGVyCisgICAgQXJnMiBpcyB0aGUgcmhzLgorICAgIEFyZzMgaXMgdGhlIGNvbnRleHQuCisgICAgQXJnNCBpcyBleHBsaWNpdCBzY2FsZSBpZmYgY29kZT0nRCcgb3IgJ0knICgtMSBpZiBub25lKS4KKyAKKyAgICBVbmRlcmx5aW5nIGFsZ29yaXRobSAoY29tcGxpY2F0aW9ucyBmb3IgUmVtYWluZGVyIGZ1bmN0aW9uIGFuZAorICAgIHNjYWxlZCBkaXZpc2lvbiBhcmUgb21pdHRlZCBmb3IgY2xhcml0eSk6CisgCisgICAgICBUZXN0IGZvciB4LzAgYW5kIHRoZW4gMC94CisgICAgICBFeHAgPUV4cDEgLSBFeHAyCisgICAgICBFeHAgPUV4cCArbGVuKHZhcjEpIC1sZW4odmFyMikKKyAgICAgIFNpZ249U2lnbjEgKiBTaWduMgorICAgICAgUGFkIGFjY3VtdWxhdG9yIChWYXIxKSB0byBkb3VibGUtbGVuZ3RoIHdpdGggMCdzIChwYWQxKQorICAgICAgUGFkIFZhcjIgdG8gc2FtZSBsZW5ndGggYXMgVmFyMQorICAgICAgQjJCPTFzdCB0d28gZGlnaXRzIG9mIHZhcjIsICsxIHRvIGFsbG93IGZvciByb3VuZHVwCisgICAgICBoYXZlPTAKKyAgICAgIERvIHVudGlsIChoYXZlPWRpZ2l0cysxIE9SIHJlc2lkdWU9MCkKKyAgICAgICAgaWYgZXhwPDAgdGhlbiBpZiBpbnRlZ2VyIGRpdmlkZS9yZXNpZHVlIHRoZW4gbGVhdmUKKyAgICAgICAgdGhpc19kaWdpdD0wCisgICAgICAgIERvIGZvcmV2ZXIKKyAgICAgICAgICAgY29tcGFyZSBudW1iZXJzCisgICAgICAgICAgIGlmIDwwIHRoZW4gbGVhdmUgaW5uZXJfbG9vcAorICAgICAgICAgICBpZiA9MCB0aGVuICgtIHF1aWNrIGV4aXQgd2l0aG91dCBzdWJ0cmFjdCAtKSBkbworICAgICAgICAgICAgICB0aGlzX2RpZ2l0PXRoaXNfZGlnaXQrMTsgb3V0cHV0IHRoaXNfZGlnaXQKKyAgICAgICAgICAgICAgbGVhdmUgb3V0ZXJfbG9vcDsgZW5kCisgICAgICAgICAgIENvbXBhcmUgbGVuZ3RocyBvZiBudW1iZXJzIChtYW50aXNzYWUpOgorICAgICAgICAgICBJZiBzYW1lIHRoZW4gQ0E9Zmlyc3RfZGlnaXRfb2ZfVmFyMQorICAgICAgICAgICAgICAgICAgIGVsc2UgQ0E9Zmlyc3RfdHdvX2RpZ2l0c19vZl9WYXIxCisgICAgICAgICAgIG11bHQ9Y2EqMTAvYjJiICAgLS0gR29vZCBhbmQgc2FmZSBndWVzcyBhdCBkaXZpc29yCisgICAgICAgICAgIGlmIG11bHQ9MCB0aGVuIG11bHQ9MQorICAgICAgICAgICB0aGlzX2RpZ2l0PXRoaXNfZGlnaXQrbXVsdAorICAgICAgICAgICBzdWJ0cmFjdAorICAgICAgICAgICBlbmQgaW5uZXJfbG9vcAorICAgICAgICAgaWYgaGF2ZVw9MCB8IHRoaXNfZGlnaXRcPTAgdGhlbiBkbworICAgICAgICAgICBvdXRwdXQgdGhpc19kaWdpdAorICAgICAgICAgICBoYXZlPWhhdmUrMTsgZW5kCisgICAgICAgICB2YXIyPXZhcjIvMTAKKyAgICAgICAgIGV4cD1leHAtMQorICAgICAgICAgZW5kIG91dGVyX2xvb3AKKyAgICAgIGV4cD1leHArMSAgIC0tIHNldCB0aGUgcHJvcGVyIGV4cG9uZW50CisgICAgICBpZiBoYXZlPTAgdGhlbiBnZW5lcmF0ZSBhbnN3ZXI9MAorICAgICAgUmV0dXJuIHRvIEZJTklTSEVECisgICAgICBSZXN1bHQgZGVmaW5lZCBieSBNQVRIVjEKKyAKKyAgICBGb3IgZXh0ZW5kZWQgY29tbWVudGFyeSwgc2VlIERNU1JDTi4KKyAgKi8KKyAKKyBwcml2YXRlIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBkb2RpdmlkZShjaGFyIGNvZGUsY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IHNldCxpbnQgc2NhbGUpeworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbGhzOworICBpbnQgcmVxZGlnOworICBpbnQgbmV3ZXhwOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmVzOworICBpbnQgbmV3bGVuOworICBieXRlIHZhcjFbXTsKKyAgaW50IHZhcjFsZW47CisgIGJ5dGUgdmFyMltdOworICBpbnQgdmFyMmxlbjsKKyAgaW50IGIyYjsKKyAgaW50IGhhdmU7CisgIGludCB0aGlzZGlnaXQ9MDsKKyAgaW50IGk9MDsKKyAgYnl0ZSB2Mj0wOworICBpbnQgYmE9MDsKKyAgaW50IG11bHQ9MDsKKyAgaW50IHN0YXJ0PTA7CisgIGludCBwYWRkaW5nPTA7CisgIGludCBkPTA7CisgIGJ5dGUgbmV3dmFyMVtdPW51bGw7CisgIGJ5dGUgbGFzdGhhdmU9MDsKKyAgaW50IGFjdGRpZz0wOworICBieXRlIG5ld21hbnRbXT1udWxsOworICAKKyAgaWYgKHNldC5sb3N0RGlnaXRzKSAKKyAgIGNoZWNrZGlnaXRzKHJocyxzZXQuZGlnaXRzKTsKKyAgbGhzPXRoaXM7IC8vIG5hbWUgZm9yIGNsYXJpdHkKKyAgCisgIC8vIFtub3RlIHdlIG11c3QgaGF2ZSBjaGVja2VkIGxvc3REaWdpdHMgYmVmb3JlIHRoZSBmb2xsb3dpbmcgY2hlY2tzXQorICBpZiAocmhzLmluZD09MCkgCisgICB0aHJvdyBuZXcgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24oIkRpdmlkZSBieSAwIik7IC8vIGluY2x1ZGVzIDAvMAorICBpZiAobGhzLmluZD09MCkgCisgICB7IC8vIDAveCA9PiAwIFtwb3NzaWJseSB3aXRoIC4wc10KKyAgICBpZiAoc2V0LmZvcm0hPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU4pIAorICAgICByZXR1cm4gWkVSTzsKKyAgICBpZiAoc2NhbGU9PSgtMSkpIAorICAgICByZXR1cm4gbGhzOworICAgIHJldHVybiBsaHMuc2V0U2NhbGUoc2NhbGUpOworICAgfQorICAKKyAgLyogUHJlcGFyZSBudW1iZXJzIGFjY29yZGluZyB0byBCaWdEZWNpbWFsIHJ1bGVzICovCisgIHJlcWRpZz1zZXQuZGlnaXRzOyAvLyBsb2NhbCBjb3B5IChoZWF2aWx5IHVzZWQpCisgIGlmIChyZXFkaWc+MCkgCisgICB7CisgICAgaWYgKGxocy5tYW50Lmxlbmd0aD5yZXFkaWcpIAorICAgICBsaHM9Y2xvbmUobGhzKS5yb3VuZChzZXQpOworICAgIGlmIChyaHMubWFudC5sZW5ndGg+cmVxZGlnKSAKKyAgICAgcmhzPWNsb25lKHJocykucm91bmQoc2V0KTsKKyAgIH0KKyAgZWxzZSAKKyAgIHsvKiBzY2FsZWQgZGl2aWRlICovCisgICAgaWYgKHNjYWxlPT0oLTEpKSAKKyAgICAgc2NhbGU9bGhzLnNjYWxlKCk7CisgICAgLy8gc2V0IHJlcWRpZyB0byBiZSBhdCBsZWFzdCBsYXJnZSBlbm91Z2ggZm9yIHRoZSBjb21wdXRhdGlvbgorICAgIHJlcWRpZz1saHMubWFudC5sZW5ndGg7IC8vIGJhc2UgbGVuZ3RoCisgICAgLy8gbmV4dCBsaW5lIGhhbmRsZXMgYm90aCBwb3NpdGl2ZSBsaHMuZXhwIGFuZCBhbHNvIHNjYWxlIG1pc21hdGNoCisgICAgaWYgKHNjYWxlIT0oKGludCktbGhzLmV4cCkpIAorICAgICByZXFkaWc9KHJlcWRpZytzY2FsZSkrbGhzLmV4cDsKKyAgICByZXFkaWc9KHJlcWRpZy0oKHJocy5tYW50Lmxlbmd0aC0xKSkpLXJocy5leHA7IC8vIHJlZHVjZSBieSBSSFMgZWZmZWN0CisgICAgaWYgKHJlcWRpZzxsaHMubWFudC5sZW5ndGgpIAorICAgICByZXFkaWc9bGhzLm1hbnQubGVuZ3RoOyAvLyBjbGFtcAorICAgIGlmIChyZXFkaWc8cmhzLm1hbnQubGVuZ3RoKSAKKyAgICAgcmVxZGlnPXJocy5tYW50Lmxlbmd0aDsgLy8gLi4KKyAgIH0KKyAgCisgIC8qIHByZWNhbGN1bGF0ZSBleHBvbmVudCAqLworICBuZXdleHA9KChsaHMuZXhwLXJocy5leHApK2xocy5tYW50Lmxlbmd0aCktcmhzLm1hbnQubGVuZ3RoOworICAvKiBJZiBuZXcgZXhwb25lbnQgLXZlLCB0aGVuIHNvbWUgcXVpY2sgZXhpdHMgYXJlIHBvc3NpYmxlICovCisgIGlmIChuZXdleHA8MCkgCisgICBpZiAoY29kZSE9J0QnKSAKKyAgICB7CisgICAgIGlmIChjb2RlPT0nSScpIAorICAgICAgcmV0dXJuIFpFUk87IC8vIGVhc3kgLSBubyBpbnRlZ2VyIHBhcnQKKyAgICAgLyogTXVzdCBiZSAnUic7IHJlbWFpbmRlciBpcyBbZmluaXNoZWQgY2xvbmUgb2ZdIGlucHV0IHZhbHVlICovCisgICAgIHJldHVybiBjbG9uZShsaHMpLmZpbmlzaChzZXQsZmFsc2UpOworICAgIH0KKyAgCisgIC8qIFdlIG5lZWQgc2xvdyBkaXZpc2lvbiAqLworICByZXM9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgpOyAvLyB3aGVyZSB3ZSdsbCBidWlsZCByZXN1bHQKKyAgcmVzLmluZD0oYnl0ZSkobGhzLmluZCpyaHMuaW5kKTsgLy8gZmluYWwgc2lnbiAoZm9yIEQvSSkKKyAgcmVzLmV4cD1uZXdleHA7IC8vIGluaXRpYWwgZXhwb25lbnQgKGZvciBEL0kpCisgIHJlcy5tYW50PW5ldyBieXRlW3JlcWRpZysxXTsgLy8gd2hlcmUgYnVpbGQgdGhlIHJlc3VsdAorICAKKyAgLyogTm93IFt2aXJ0dWFsbHkgcGFkIHRoZSBtYW50aXNzYWUgd2l0aCB0cmFpbGluZyB6ZXJvcyAqLworICAvLyBBbHNvIGNvcHkgdGhlIExIUywgd2hpY2ggd2lsbCBiZSBvdXIgd29ya2luZyBhcnJheQorICBuZXdsZW49KHJlcWRpZytyZXFkaWcpKzE7CisgIHZhcjE9ZXh0ZW5kKGxocy5tYW50LG5ld2xlbik7IC8vIGFsd2F5cyBtYWtlcyBsb25nZXIsIHNvIG5ldyBzYWZlIGFycmF5CisgIHZhcjFsZW49bmV3bGVuOyAvLyBbcmVtYWluaW5nIGRpZ2l0cyBhcmUgMF0KKyAgCisgIHZhcjI9cmhzLm1hbnQ7CisgIHZhcjJsZW49bmV3bGVuOworICAKKyAgLyogQ2FsY3VsYXRlIGZpcnN0IHR3byBkaWdpdHMgb2YgcmhzICh2YXIyKSwgKzEgZm9yIGxhdGVyIGVzdGltYXRpb25zICovCisgIGIyYj0odmFyMlswXSoxMCkrMTsKKyAgaWYgKHZhcjIubGVuZ3RoPjEpIAorICAgYjJiPWIyYit2YXIyWzFdOworICAKKyAgLyogc3RhcnQgdGhlIGxvbmctZGl2aXNpb24gbG9vcHMgKi8KKyAgaGF2ZT0wOworICB7b3V0ZXI6Zm9yKDs7KXsKKyAgIHRoaXNkaWdpdD0wOworICAgLyogZmluZCB0aGUgbmV4dCBkaWdpdCAqLworICAge2lubmVyOmZvcig7Oyl7CisgICAgaWYgKHZhcjFsZW48dmFyMmxlbikgCisgICAgIGJyZWFrIGlubmVyOyAvLyBWMSB0b28gbG93CisgICAgaWYgKHZhcjFsZW49PXZhcjJsZW4pIAorICAgICB7IC8vIGNvbXBhcmUgbmVlZGVkCisgICAgICB7Y29tcGFyZTpkb3sgLy8gY29tcGFyaXNvbgorICAgICAgIHtpbnQgJDIyPXZhcjFsZW47aT0wO2k6Zm9yKDskMjI+MDskMjItLSxpKyspeworICAgICAgICAvLyB2YXIxbGVuIGlzIGFsd2F5cyA8PSB2YXIxLmxlbmd0aAorICAgICAgICBpZiAoaTx2YXIyLmxlbmd0aCkgCisgICAgICAgICB2Mj12YXIyW2ldOworICAgICAgICBlbHNlIAorICAgICAgICAgdjI9KGJ5dGUpMDsKKyAgICAgICAgaWYgKHZhcjFbaV08djIpIAorICAgICAgICAgYnJlYWsgaW5uZXI7IC8vIFYxIHRvbyBsb3cKKyAgICAgICAgaWYgKHZhcjFbaV0+djIpIAorICAgICAgICAgYnJlYWsgY29tcGFyZTsgLy8gT0sgdG8gc3VidHJhY3QKKyAgICAgICAgfQorICAgICAgIH0vKmkqLworICAgICAgIC8qIHJlYWNoIGhlcmUgaWYgbGhzIGFuZCByaHMgYXJlIGlkZW50aWNhbDsgc3VidHJhY3Rpb24gd2lsbAorICAgICAgICAgIGluY3JlYXNlIGRpZ2l0IGJ5IG9uZSwgYW5kIHRoZSByZXNpZHVlIHdpbGwgYmUgMCBzbyB3ZQorICAgICAgICAgIGFyZSBkb25lOyBsZWF2ZSB0aGUgbG9vcCB3aXRoIHJlc2lkdWUgc2V0IHRvIDAgKGluIGNhc2UKKyAgICAgICAgICBjb2RlIGlzICdSJyBvciBST1VORF9VTk5FQ0VTU0FSWSBvciBhIFJPVU5EX0hBTEZfeHh4eCBpcworICAgICAgICAgIGJlaW5nIGNoZWNrZWQpICovCisgICAgICAgdGhpc2RpZ2l0Kys7CisgICAgICAgcmVzLm1hbnRbaGF2ZV09KGJ5dGUpdGhpc2RpZ2l0OworICAgICAgIGhhdmUrKzsKKyAgICAgICB2YXIxWzBdPShieXRlKTA7IC8vIHJlc2lkdWUgdG8gMCBbdGhpcyBpcyBhbGwgd2UnbGwgdGVzdF0KKyAgICAgICAvLyB2YXIxbGVuPTEgICAgICAtLSBbb3B0aW1pemVkIG91dF0KKyAgICAgICBicmVhayBvdXRlcjsKKyAgICAgIH13aGlsZShmYWxzZSk7fS8qY29tcGFyZSovCisgICAgICAvKiBwcmVwYXJlIGZvciBzdWJ0cmFjdGlvbi4gIEVzdGltYXRlIEJBIChsZW5ndGhzIHRoZSBzYW1lKSAqLworICAgICAgYmE9KGludCl2YXIxWzBdOyAvLyB1c2Ugb25seSBmaXJzdCBkaWdpdAorICAgICB9IC8vIGxlbmd0aHMgdGhlIHNhbWUKKyAgICBlbHNlIAorICAgICB7LyogbGhzIGxvbmdlciB0aGFuIHJocyAqLworICAgICAgLyogdXNlIGZpcnN0IHR3byBkaWdpdHMgZm9yIGVzdGltYXRlICovCisgICAgICBiYT12YXIxWzBdKjEwOworICAgICAgaWYgKHZhcjFsZW4+MSkgCisgICAgICAgYmE9YmErdmFyMVsxXTsKKyAgICAgfQorICAgIC8qIHN1YnRyYWN0aW9uIG5lZWRlZDsgVjE+PVYyICovCisgICAgbXVsdD0oYmEqMTApL2IyYjsKKyAgICBpZiAobXVsdD09MCkgCisgICAgIG11bHQ9MTsKKyAgICB0aGlzZGlnaXQ9dGhpc2RpZ2l0K211bHQ7CisgICAgLy8gc3VidHJhY3Q7IHZhcjEgcmV1c2FibGUKKyAgICB2YXIxPWJ5dGVhZGRzdWIodmFyMSx2YXIxbGVuLHZhcjIsdmFyMmxlbiwoaW50KS1tdWx0LHRydWUpOworICAgIGlmICh2YXIxWzBdIT0wKSAKKyAgICAgY29udGludWUgaW5uZXI7IC8vIG1heWJlIGFub3RoZXIgc3VidHJhY3QgbmVlZGVkCisgICAgLyogVjEgbm93IHByb2JhYmx5IGhhcyBsZWFkaW5nIHplcm9zLCByZW1vdmUgbGVhZGluZyAwJ3MgYW5kIHRyeQorICAgICAgIGFnYWluLiAoSXQgY291bGQgYmUgbG9uZ2VyIHRoYW4gVjIpICovCisgICAge2ludCAkMjM9dmFyMWxlbi0yO3N0YXJ0PTA7c3RhcnQ6Zm9yKDtzdGFydDw9JDIzO3N0YXJ0KyspeworICAgICBpZiAodmFyMVtzdGFydF0hPTApIAorICAgICAgYnJlYWsgc3RhcnQ7CisgICAgIHZhcjFsZW4tLTsKKyAgICAgfQorICAgIH0vKnN0YXJ0Ki8KKyAgICBpZiAoc3RhcnQ9PTApIAorICAgICBjb250aW51ZSBpbm5lcjsKKyAgICAvLyBzaGlmdCBsZWZ0CisgICAgamF2YS5sYW5nLlN5c3RlbS5hcnJheWNvcHkoKGphdmEubGFuZy5PYmplY3QpdmFyMSxzdGFydCwoamF2YS5sYW5nLk9iamVjdCl2YXIxLDAsdmFyMWxlbik7CisgICAgfQorICAgfS8qaW5uZXIqLworICAgCisgICAvKiBXZSBoYXZlIHRoZSBuZXh0IGRpZ2l0ICovCisgICBpZiAoKGhhdmUhPTApfCh0aGlzZGlnaXQhPTApKSAKKyAgICB7IC8vIHB1dCB0aGUgZGlnaXQgd2UgZ290CisgICAgIHJlcy5tYW50W2hhdmVdPShieXRlKXRoaXNkaWdpdDsKKyAgICAgaGF2ZSsrOworICAgICBpZiAoaGF2ZT09KHJlcWRpZysxKSkgCisgICAgICBicmVhayBvdXRlcjsgLy8gd2UgaGF2ZSBhbGwgd2UgbmVlZAorICAgICBpZiAodmFyMVswXT09MCkgCisgICAgICBicmVhayBvdXRlcjsgLy8gcmVzaWR1ZSBub3cgMAorICAgIH0KKyAgIC8qIGNhbiBsZWF2ZSBub3cgaWYgYSBzY2FsZWQgZGl2aWRlIGFuZCBleHBvbmVudCBpcyBzbWFsbCBlbm91Z2ggKi8KKyAgIGlmIChzY2FsZT49MCkgCisgICAgaWYgKCgoaW50KS1yZXMuZXhwKT5zY2FsZSkgCisgICAgIGJyZWFrIG91dGVyOworICAgLyogY2FuIGxlYXZlIG5vdyBpZiBub3QgRGl2aWRlIGFuZCBubyBpbnRlZ2VyIHBhcnQgbGVmdCAgKi8KKyAgIGlmIChjb2RlIT0nRCcpIAorICAgIGlmIChyZXMuZXhwPD0wKSAKKyAgICAgYnJlYWsgb3V0ZXI7CisgICByZXMuZXhwPXJlcy5leHAtMTsgLy8gcmVkdWNlIHRoZSBleHBvbmVudAorICAgLyogdG8gZ2V0IGhlcmUsIFYxIGlzIGxlc3MgdGhhbiBWMiwgc28gZGl2aWRlIFYyIGJ5IDEwIGFuZCBnbyBmb3IKKyAgICAgIHRoZSBuZXh0IGRpZ2l0ICovCisgICB2YXIybGVuLS07CisgICB9CisgIH0vKm91dGVyKi8KKyAgCisgIC8qIGhlcmUgd2hlbiB3ZSBoYXZlIGZpbmlzaGVkIGRpdmlkaW5nLCBmb3Igc29tZSByZWFzb24gKi8KKyAgLy8gaGF2ZSBpcyB0aGUgbnVtYmVyIG9mIGRpZ2l0cyB3ZSBjb2xsZWN0ZWQgaW4gcmVzLm1hbnQKKyAgaWYgKGhhdmU9PTApIAorICAgaGF2ZT0xOyAvLyByZXMubWFudFswXSBpcyAwOyB3ZSBhbHdheXMgd2FudCBhIGRpZ2l0CisgIAorICBpZiAoKGNvZGU9PSdJJyl8KGNvZGU9PSdSJykpIAorICAgey8qIGNoZWNrIGZvciBpbnRlZ2VyIG92ZXJmbG93IG5lZWRlZCAqLworICAgIGlmICgoaGF2ZStyZXMuZXhwKT5yZXFkaWcpIAorICAgICB0aHJvdyBuZXcgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24oIkludGVnZXIgb3ZlcmZsb3ciKTsKKyAgICAKKyAgICBpZiAoY29kZT09J1InKSAKKyAgICAge3JlbWFpbmRlcjpkb3sKKyAgICAgIC8qIFdlIHdlcmUgZG9pbmcgUmVtYWluZGVyIC0tIHJldHVybiB0aGUgcmVzaWR1ZSAqLworICAgICAgaWYgKHJlcy5tYW50WzBdPT0wKSAgLy8gbm8gaW50ZWdlciBwYXJ0IHdhcyBmb3VuZAorICAgICAgIHJldHVybiBjbG9uZShsaHMpLmZpbmlzaChzZXQsZmFsc2UpOyAvLyAuLiBzbyByZXR1cm4gbGhzLCBjYW5vbmljYWwKKyAgICAgIGlmICh2YXIxWzBdPT0wKSAKKyAgICAgICByZXR1cm4gWkVSTzsgLy8gc2ltcGxlIDAgcmVzaWR1ZQorICAgICAgcmVzLmluZD1saHMuaW5kOyAvLyBzaWduIGlzIGFsd2F5cyBhcyBMSFMKKyAgICAgIC8qIENhbGN1bGF0ZSB0aGUgZXhwb25lbnQgYnkgc3VidHJhY3RpbmcgdGhlIG51bWJlciBvZiBwYWRkaW5nIHplcm9zCisgICAgICAgICB3ZSBhZGRlZCBhbmQgYWRkaW5nIHRoZSBvcmlnaW5hbCBleHBvbmVudCAqLworICAgICAgcGFkZGluZz0oKHJlcWRpZytyZXFkaWcpKzEpLWxocy5tYW50Lmxlbmd0aDsKKyAgICAgIHJlcy5leHA9KHJlcy5leHAtcGFkZGluZykrbGhzLmV4cDsKKyAgICAgIAorICAgICAgLyogc3RyaXAgaW5zaWduaWZpY2FudCBwYWRkaW5nIHplcm9zIGZyb20gcmVzaWR1ZSwgYW5kIGNyZWF0ZS9jb3B5CisgICAgICAgICB0aGUgcmVzdWx0aW5nIG1hbnRpc3NhIGlmIG5lZWQgYmUgKi8KKyAgICAgIGQ9dmFyMWxlbjsKKyAgICAgIHtpPWQtMTtpOmZvcig7aT49MTtpLS0pe2lmKCEoKHJlcy5leHA8bGhzLmV4cCkmKHJlcy5leHA8cmhzLmV4cCkpKWJyZWFrOworICAgICAgIGlmICh2YXIxW2ldIT0wKSAKKyAgICAgICAgYnJlYWsgaTsKKyAgICAgICBkLS07CisgICAgICAgcmVzLmV4cD1yZXMuZXhwKzE7CisgICAgICAgfQorICAgICAgfS8qaSovCisgICAgICBpZiAoZDx2YXIxLmxlbmd0aCkgCisgICAgICAgey8qIG5lZWQgdG8gcmVkdWNlICovCisgICAgICAgIG5ld3ZhcjE9bmV3IGJ5dGVbZF07CisgICAgICAgIGphdmEubGFuZy5TeXN0ZW0uYXJyYXljb3B5KChqYXZhLmxhbmcuT2JqZWN0KXZhcjEsMCwoamF2YS5sYW5nLk9iamVjdCluZXd2YXIxLDAsZCk7IC8vIHNob3J0ZW4KKyAgICAgICAgdmFyMT1uZXd2YXIxOworICAgICAgIH0KKyAgICAgIHJlcy5tYW50PXZhcjE7CisgICAgICByZXR1cm4gcmVzLmZpbmlzaChzZXQsZmFsc2UpOworICAgICB9d2hpbGUoZmFsc2UpO30vKnJlbWFpbmRlciovCisgICB9CisgICAKKyAgZWxzZSAKKyAgIHsvKiAnRCcgLS0gbm8gb3ZlcmZsb3cgY2hlY2sgbmVlZGVkICovCisgICAgLy8gSWYgdGhlcmUgd2FzIGEgcmVzaWR1ZSB0aGVuIGJ1bXAgdGhlIGZpbmFsIGRpZ2l0IChpZmYgMCBvciA1KQorICAgIC8vIHNvIHRoYXQgdGhlIHJlc2lkdWUgaXMgdmlzaWJsZSBmb3IgUk9VTkRfVVAsIFJPVU5EX0hBTEZfeHh4IGFuZAorICAgIC8vIFJPVU5EX1VOTkVDRVNTQVJZIGNoZWNrcyAoZXRjLikgbGF0ZXIuCisgICAgLy8gW2lmIHdlIGZpbmlzaGVkIGVhcmx5LCB0aGUgcmVzaWR1ZSB3aWxsIGJlIDBdCisgICAgaWYgKHZhcjFbMF0hPTApIAorICAgICB7IC8vIHJlc2lkdWUgbm90IDAKKyAgICAgIGxhc3RoYXZlPXJlcy5tYW50W2hhdmUtMV07CisgICAgICBpZiAoKChsYXN0aGF2ZSU1KSk9PTApIAorICAgICAgIHJlcy5tYW50W2hhdmUtMV09KGJ5dGUpKGxhc3RoYXZlKzEpOworICAgICB9CisgICB9CisgIAorICAvKiBIZXJlIGZvciBEaXZpZGUgb3IgSW50ZWdlciBEaXZpZGUgKi8KKyAgLy8gaGFuZGxlIHNjYWxlZCByZXN1bHRzIGZpcnN0IFsnSScgYWx3YXlzIHNjYWxlIDAsIG9wdGlvbmFsIGZvciAnRCddCisgIGlmIChzY2FsZT49MCkgCisgICB7c2NhbGVkOmRveworICAgIC8vIHNheSAnc2NhbGUgaGF2ZSByZXMuZXhwIGxlbicgc2NhbGUgaGF2ZSByZXMuZXhwIHJlcy5tYW50Lmxlbmd0aAorICAgIGlmIChoYXZlIT1yZXMubWFudC5sZW5ndGgpIAorICAgICAvLyBhbHJlYWR5IHBhZGRlZCB3aXRoIDAncywgc28ganVzdCBhZGp1c3QgZXhwb25lbnQKKyAgICAgcmVzLmV4cD1yZXMuZXhwLSgocmVzLm1hbnQubGVuZ3RoLWhhdmUpKTsKKyAgICAvLyBjYWxjdWxhdGUgbnVtYmVyIG9mIGRpZ2l0cyB3ZSByZWFsbHkgd2FudCBbbWF5IGJlIDBdCisgICAgYWN0ZGlnPXJlcy5tYW50Lmxlbmd0aC0oKCgoaW50KS1yZXMuZXhwKS1zY2FsZSkpOworICAgIHJlcy5yb3VuZChhY3RkaWcsc2V0LnJvdW5kaW5nTW9kZSk7IC8vIHJvdW5kIHRvIGRlc2lyZWQgbGVuZ3RoCisgICAgLy8gVGhpcyBjb3VsZCBoYXZlIHNoaWZ0ZWQgbGVmdCBpZiByb3VuZCAoc2F5KSAwLjktPjFbLjBdCisgICAgLy8gUmVwYWlyIGlmIHNvIGJ5IGFkZGluZyBhIHplcm8gYW5kIHJlZHVjaW5nIGV4cG9uZW50CisgICAgaWYgKHJlcy5leHAhPSgoaW50KS1zY2FsZSkpIAorICAgICB7CisgICAgICByZXMubWFudD1leHRlbmQocmVzLm1hbnQscmVzLm1hbnQubGVuZ3RoKzEpOworICAgICAgcmVzLmV4cD1yZXMuZXhwLTE7CisgICAgIH0KKyAgICByZXR1cm4gcmVzLmZpbmlzaChzZXQsdHJ1ZSk7IC8vIFtzdHJpcCBpZiBub3QgUExBSU5dCisgICB9d2hpbGUoZmFsc2UpO30vKnNjYWxlZCovCisgIAorICAvLyByZWFjaCBoZXJlIG9ubHkgaWYgYSBub24tc2NhbGVkCisgIGlmIChoYXZlPT1yZXMubWFudC5sZW5ndGgpIAorICAgeyAvLyBnb3QgZGlnaXRzKzEgZGlnaXRzCisgICAgcmVzLnJvdW5kKHNldCk7CisgICAgaGF2ZT1yZXFkaWc7CisgICB9CisgIGVsc2UgCisgICB7LyogaGF2ZTw9cmVxZGlnICovCisgICAgaWYgKHJlcy5tYW50WzBdPT0wKSAKKyAgICAgcmV0dXJuIFpFUk87IC8vIGZhc3RwYXRoCisgICAgLy8gbWFrZSB0aGUgbWFudGlzc2EgdHJ1bHkganVzdCAnaGF2ZScgbG9uZworICAgIC8vIFt3ZSBjb3VsZCBsZXQgZmluaXNoIGRvIHRoaXMsIGR1cmluZyBzdHJpcCwgaWYgd2UgYWRqdXN0ZWQKKyAgICAvLyB0aGUgZXhwb25lbnQ7IGhvd2V2ZXIsIHRydW5jYXRpb24gYXZvaWRzIHRoZSBzdHJpcCBsb29wXQorICAgIG5ld21hbnQ9bmV3IGJ5dGVbaGF2ZV07IC8vIHNob3J0ZW4KKyAgICBqYXZhLmxhbmcuU3lzdGVtLmFycmF5Y29weSgoamF2YS5sYW5nLk9iamVjdClyZXMubWFudCwwLChqYXZhLmxhbmcuT2JqZWN0KW5ld21hbnQsMCxoYXZlKTsKKyAgICByZXMubWFudD1uZXdtYW50OworICAgfQorICByZXR1cm4gcmVzLmZpbmlzaChzZXQsdHJ1ZSk7CisgIH0KKworIAorIC8qIDxzZ21sPiBSZXBvcnQgYSBjb252ZXJzaW9uIGV4Y2VwdGlvbi4gPC9zZ21sPiAqLworIAorIHByaXZhdGUgdm9pZCBiYWQoY2hhciBzW10peworICB0aHJvdyBuZXcgamF2YS5sYW5nLk51bWJlckZvcm1hdEV4Y2VwdGlvbigiTm90IGEgbnVtYmVyOiIrIiAiK2phdmEubGFuZy5TdHJpbmcudmFsdWVPZihzKSk7CisgIH0KKworIC8qIDxzZ21sPiBSZXBvcnQgYSBiYWQgYXJndW1lbnQgdG8gYSBtZXRob2QuIDwvc2dtbD4KKyAgICBBcmcxIGlzIG1ldGhvZCBuYW1lCisgICAgQXJnMiBpcyBhcmd1bWVudCBwb3NpdGlvbgorICAgIEFyZzMgaXMgd2hhdCB3YXMgZm91bmQgKi8KKyAKKyBwcml2YXRlIHZvaWQgYmFkYXJnKGphdmEubGFuZy5TdHJpbmcgbmFtZSxpbnQgcG9zLGphdmEubGFuZy5TdHJpbmcgdmFsdWUpeworICB0aHJvdyBuZXcgamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQmFkIGFyZ3VtZW50IisiICIrcG9zKyIgIisidG8iKyIgIituYW1lKyI6IisiICIrdmFsdWUpOworICB9CisKKyAvKiA8c2dtbD4gRXh0ZW5kIGJ5dGUgYXJyYXkgdG8gZ2l2ZW4gbGVuZ3RoLCBwYWRkaW5nIHdpdGggMHMuICBJZiBubworICAgIGV4dGVuc2lvbiBpcyByZXF1aXJlZCB0aGVuIHJldHVybiB0aGUgc2FtZSBhcnJheS4gPC9zZ21sPgorIAorICAgIEFyZzEgaXMgdGhlIHNvdXJjZSBieXRlIGFycmF5CisgICAgQXJnMiBpcyB0aGUgbmV3IGxlbmd0aCAobG9uZ2VyKQorICAgICovCisgCisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZVtdIGV4dGVuZChieXRlIGluYXJyW10saW50IG5ld2xlbil7CisgIGJ5dGUgbmV3YXJyW107CisgIGlmIChpbmFyci5sZW5ndGg9PW5ld2xlbikgCisgICByZXR1cm4gaW5hcnI7CisgIG5ld2Fycj1uZXcgYnl0ZVtuZXdsZW5dOworICBqYXZhLmxhbmcuU3lzdGVtLmFycmF5Y29weSgoamF2YS5sYW5nLk9iamVjdClpbmFyciwwLChqYXZhLmxhbmcuT2JqZWN0KW5ld2FyciwwLGluYXJyLmxlbmd0aCk7CisgIC8vIDAgcGFkZGluZyBpcyBjYXJyaWVkIG91dCBieSB0aGUgSlZNIG9uIGFsbG9jYXRpb24gaW5pdGlhbGl6YXRpb24KKyAgcmV0dXJuIG5ld2FycjsKKyAgfQorCisgLyogPHNnbWw+IEFkZCBvciBzdWJ0cmFjdCB0d28gPj0wIGludGVnZXJzIGluIGJ5dGUgYXJyYXlzCisgICAgPHA+VGhpcyByb3V0aW5lIHBlcmZvcm1zIHRoZSBjYWxjdWxhdGlvbjoKKyAgICA8cHJlPgorICAgIEM9QSsoQipNKQorICAgIDwvcHJlPgorICAgIFdoZXJlIE0gaXMgaW4gdGhlIHJhbmdlIC05IHRocm91Z2ggKzkKKyAgICA8cD4KKyAgICBJZiBNPDAgdGhlbiBBPj1CIG11c3QgYmUgdHJ1ZSwgc28gdGhlIHJlc3VsdCBpcyBhbHdheXMKKyAgICBub24tbmVnYXRpdmUuCisgCisgICAgTGVhZGluZyB6ZXJvcyBhcmUgbm90IHJlbW92ZWQgYWZ0ZXIgYSBzdWJ0cmFjdGlvbi4gIFRoZSByZXN1bHQgaXMKKyAgICBlaXRoZXIgdGhlIHNhbWUgbGVuZ3RoIGFzIHRoZSBsb25nZXIgb2YgQSBhbmQgQiwgb3IgMSBsb25nZXIgdGhhbgorICAgIHRoYXQgKGlmIGEgY2Fycnkgb2NjdXJyZWQpLgorIAorICAgIEEgaXMgbm90IGFsdGVyZWQgdW5sZXNzIEFyZzYgaXMgMS4KKyAgICBCIGlzIG5ldmVyIGFsdGVyZWQuCisgCisgICAgQXJnMSBpcyBBCisgICAgQXJnMiBpcyBBIGxlbmd0aCB0byB1c2UgKGlmIGxvbmdlciB0aGFuIEEsIHBhZCB3aXRoIDAncykKKyAgICBBcmczIGlzIEIKKyAgICBBcmc0IGlzIEIgbGVuZ3RoIHRvIHVzZSAoaWYgbG9uZ2VyIHRoYW4gQiwgcGFkIHdpdGggMCdzKQorICAgIEFyZzUgaXMgTSwgdGhlIG11bHRpcGxpZXIKKyAgICBBcmc2IGlzIDEgaWYgQSBjYW4gYmUgdXNlZCB0byBidWlsZCB0aGUgcmVzdWx0IChpZiBpdCBmaXRzKQorIAorICAgIFRoaXMgcm91dGluZSBpcyBzZXZlcmVseSBwZXJmb3JtYW5jZS1jcml0aWNhbDsgKmFueSogY2hhbmdlIGhlcmUKKyAgICBtdXN0IGJlIG1lYXN1cmVkICh0aW1lZCkgdG8gYXNzdXJlIG5vIHBlcmZvcm1hbmNlIGRlZ3JhZGF0aW9uLgorICAgICovCisgLy8gMTk5Ni4wMi4yMCAtLSBlbmhhbmNlZCB2ZXJzaW9uIG9mIERNU1JDTiBhbGdvcml0aG0gKDE5ODEpCisgLy8gMTk5Ny4xMC4wNSAtLSBjaGFuZ2VkIHRvIGJ5dGUgYXJyYXlzIChmcm9tIGNoYXIgYXJyYXlzKQorIC8vIDE5OTguMDcuMDEgLS0gY2hhbmdlZCB0byBhbGxvdyBkZXN0cnVjdGl2ZSByZXVzZSBvZiBMSFMKKyAvLyAxOTk4LjA3LjAxIC0tIGNoYW5nZWQgdG8gYWxsb3cgdmlydHVhbCBsZW5ndGhzIGZvciB0aGUgYXJyYXlzCisgLy8gMTk5OC4xMi4yOSAtLSB1c2UgbG9va2FzaWRlIGZvciBkaWdpdC9jYXJyeSBjYWxjdWxhdGlvbgorIC8vIDE5OTkuMDguMDcgLS0gYXZvaWQgbXVsdGlwbHkgd2hlbiBtdWx0PTEsIGFuZCBtYWtlIGRiIGFuIGludAorIC8vIDE5OTkuMTIuMjIgLS0gc3BlY2lhbCBjYXNlIG09LTEsIGFsc28gZHJvcCAwIHNwZWNpYWwgY2FzZQorIAorIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGVbXSBieXRlYWRkc3ViKGJ5dGUgYVtdLGludCBhdmxlbixieXRlIGJbXSxpbnQgYnZsZW4saW50IG0sYm9vbGVhbiByZXVzZSl7CisgIGludCBhbGVuZ3RoOworICBpbnQgYmxlbmd0aDsKKyAgaW50IGFwOworICBpbnQgYnA7CisgIGludCBtYXhhcnI7CisgIGJ5dGUgcmViW107CisgIGJvb2xlYW4gcXVpY2ttOworICBpbnQgZGlnaXQ7CisgIGludCBvcD0wOworICBpbnQgZHA5MD0wOworICBieXRlIG5ld2FycltdOworICBpbnQgaT0wOworICAKKyAgCisgIAorICAKKyAgLy8gV2UnbGwgdXN1YWxseSBiZSByaWdodCBpZiB3ZSBhc3N1bWUgbm8gY2FycnkKKyAgYWxlbmd0aD1hLmxlbmd0aDsgLy8gcGh5c2ljYWwgbGVuZ3RocworICBibGVuZ3RoPWIubGVuZ3RoOyAvLyAuLgorICBhcD1hdmxlbi0xOyAvLyAtPiBmaW5hbCAocmlnaHRtb3N0KSBkaWdpdAorICBicD1idmxlbi0xOyAvLyAuLgorICBtYXhhcnI9YnA7CisgIGlmIChtYXhhcnI8YXApIAorICAgbWF4YXJyPWFwOworICByZWI9KGJ5dGVbXSludWxsOyAvLyByZXN1bHQgYnl0ZSBhcnJheQorICBpZiAocmV1c2UpIAorICAgaWYgKChtYXhhcnIrMSk9PWFsZW5ndGgpIAorICAgIHJlYj1hOyAvLyBPSyB0byByZXVzZSBBCisgIGlmIChyZWI9PW51bGwpIAorICAgcmViPW5ldyBieXRlW21heGFycisxXTsgLy8gbmVlZCBuZXcgYXJyYXkKKyAgCisgIHF1aWNrbT1mYWxzZTsgLy8gMSBpZiBubyBtdWx0aXBseSBuZWVkZWQKKyAgaWYgKG09PTEpIAorICAgcXVpY2ttPXRydWU7IC8vIG1vc3QgY29tbW9uCisgIGVsc2UgCisgICBpZiAobT09KC0xKSkgCisgICAgcXVpY2ttPXRydWU7IC8vIGFsc28gY29tbW9uCisgIAorICBkaWdpdD0wOyAvLyBkaWdpdCwgd2l0aCBjYXJyeSBvciBib3Jyb3cKKyAge29wPW1heGFycjtvcDpmb3IoO29wPj0wO29wLS0peworICAgaWYgKGFwPj0wKSAKKyAgICB7CisgICAgIGlmIChhcDxhbGVuZ3RoKSAKKyAgICAgIGRpZ2l0PWRpZ2l0K2FbYXBdOyAvLyB3aXRoaW4gQQorICAgICBhcC0tOworICAgIH0KKyAgIGlmIChicD49MCkgCisgICAgeworICAgICBpZiAoYnA8Ymxlbmd0aCkgCisgICAgICB7IC8vIHdpdGhpbiBCCisgICAgICAgaWYgKHF1aWNrbSkgCisgICAgICAgIHsKKyAgICAgICAgIGlmIChtPjApIAorICAgICAgICAgIGRpZ2l0PWRpZ2l0K2JbYnBdOyAvLyBtb3N0IGNvbW1vbgorICAgICAgICAgZWxzZSAKKyAgICAgICAgICBkaWdpdD1kaWdpdC1iW2JwXTsgLy8gYWxzbyBjb21tb24KKyAgICAgICAgfQorICAgICAgIGVsc2UgCisgICAgICAgIGRpZ2l0PWRpZ2l0KyhiW2JwXSptKTsKKyAgICAgIH0KKyAgICAgYnAtLTsKKyAgICB9CisgICAvKiByZXN1bHQgc28gZmFyIChkaWdpdCkgY291bGQgYmUgLTkwIHRocm91Z2ggOTkgKi8KKyAgIGlmIChkaWdpdDwxMCkgCisgICAgaWYgKGRpZ2l0Pj0wKSAKKyAgICAge3F1aWNrOmRveyAvLyAwLTkKKyAgICAgIHJlYltvcF09KGJ5dGUpZGlnaXQ7CisgICAgICBkaWdpdD0wOyAvLyBubyBjYXJyeQorICAgICAgY29udGludWUgb3A7CisgICAgIH13aGlsZShmYWxzZSk7fS8qcXVpY2sqLworICAgZHA5MD1kaWdpdCs5MDsKKyAgIHJlYltvcF09Ynl0ZWRpZ1tkcDkwXTsgLy8gdGhpcyBkaWdpdAorICAgZGlnaXQ9Ynl0ZWNhcltkcDkwXTsgLy8gY2Fycnkgb3IgYm9ycm93CisgICB9CisgIH0vKm9wKi8KKyAgCisgIGlmIChkaWdpdD09MCkgCisgICByZXR1cm4gcmViOyAvLyBubyBjYXJyeQorICAvLyBmb2xsb3dpbmcgbGluZSB3aWxsIGJlY29tZSBhbiBBc3NlcnQsIGxhdGVyCisgIC8vIGlmIGRpZ2l0PDAgdGhlbiBzaWduYWwgQXJpdGhtZXRpY0V4Y2VwdGlvbigiaW50ZXJuYWwuZXJyb3IgWyJkaWdpdCJdIikKKyAgCisgIC8qIFdlIGhhdmUgY2FycnkgLS0gbmVlZCB0byBtYWtlIHNwYWNlIGZvciB0aGUgZXh0cmEgZGlnaXQgKi8KKyAgbmV3YXJyPShieXRlW10pbnVsbDsKKyAgaWYgKHJldXNlKSAKKyAgIGlmICgobWF4YXJyKzIpPT1hLmxlbmd0aCkgCisgICAgbmV3YXJyPWE7IC8vIE9LIHRvIHJldXNlIEEKKyAgaWYgKG5ld2Fycj09bnVsbCkgCisgICBuZXdhcnI9bmV3IGJ5dGVbbWF4YXJyKzJdOworICBuZXdhcnJbMF09KGJ5dGUpZGlnaXQ7IC8vIHRoZSBjYXJyaWVkIGRpZ2l0IC4uCisgIC8vIC4uIGFuZCBhbGwgdGhlIHJlc3QgW3VzZSBsb2NhbCBsb29wIGZvciBzaG9ydCBudW1iZXJzXQorICBpZiAobWF4YXJyPDEwKSAKKyAgIHtpbnQgJDI0PW1heGFycisxO2k9MDtpOmZvcig7JDI0PjA7JDI0LS0saSsrKXsKKyAgICBuZXdhcnJbaSsxXT1yZWJbaV07CisgICAgfQorICAgfS8qaSovCisgIGVsc2UgCisgICBqYXZhLmxhbmcuU3lzdGVtLmFycmF5Y29weSgoamF2YS5sYW5nLk9iamVjdClyZWIsMCwoamF2YS5sYW5nLk9iamVjdCluZXdhcnIsMSxtYXhhcnIrMSk7CisgIHJldHVybiBuZXdhcnI7CisgIH0KKworIC8qIDxzZ21sPiBJbml0aWFsaXplciBmb3IgZGlnaXQgYXJyYXkgcHJvcGVydGllcyAobG9va2FzaWRlKS4gPC9zZ21sPgorICAgIFJldHVybnMgdGhlIGRpZ2l0IGFycmF5LCBhbmQgaW5pdGlhbGl6ZXMgdGhlIGNhcnJ5IGFycmF5LiAqLworIAorIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGVbXSBkaWdpbml0KCl7CisgIGJ5dGUgd29ya1tdOworICBpbnQgb3A9MDsKKyAgaW50IGRpZ2l0PTA7CisgIHdvcms9bmV3IGJ5dGVbKDkwKzk5KSsxXTsKKyAge29wPTA7b3A6Zm9yKDtvcDw9KDkwKzk5KTtvcCsrKXsKKyAgIGRpZ2l0PW9wLTkwOworICAgaWYgKGRpZ2l0Pj0wKSAKKyAgICB7CisgICAgIHdvcmtbb3BdPShieXRlKShkaWdpdCUxMCk7CisgICAgIGJ5dGVjYXJbb3BdPShieXRlKShkaWdpdC8xMCk7IC8vIGNhbGN1bGF0ZSBjYXJyeQorICAgICBjb250aW51ZSBvcDsKKyAgICB9CisgICAvLyBib3Jyb3dpbmcuLi4KKyAgIGRpZ2l0PWRpZ2l0KzEwMDsgLy8geWVzLCB0aGlzIGlzIHJpZ2h0IFtjb25zaWRlciAtNTBdCisgICB3b3JrW29wXT0oYnl0ZSkoZGlnaXQlMTApOworICAgYnl0ZWNhcltvcF09KGJ5dGUpKChkaWdpdC8xMCktMTApOyAvLyBjYWxjdWxhdGUgYm9ycm93IFtOQjogLSBhZnRlciAlXQorICAgfQorICB9LypvcCovCisgIHJldHVybiB3b3JrOworICB9CisKKyAvKiA8c2dtbD4gQ3JlYXRlIGEgY29weSBvZiBCaWdEZWNpbWFsIG9iamVjdCBmb3IgbG9jYWwgdXNlLgorICAgIDxwPlRoaXMgZG9lcyBOT1QgbWFrZSBhIGNvcHkgb2YgdGhlIG1hbnRpc3NhIGFycmF5LgorICAgIDwvc2dtbD4KKyAgICBBcmcxIGlzIHRoZSBCaWdEZWNpbWFsIHRvIGNsb25lIChub24tbnVsbCkKKyAgICAqLworIAorIHByaXZhdGUgc3RhdGljIGZpbmFsIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBjbG9uZShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZGVjKXsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGNvcHk7CisgIGNvcHk9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgpOworICBjb3B5LmluZD1kZWMuaW5kOworICBjb3B5LmV4cD1kZWMuZXhwOworICBjb3B5LmZvcm09ZGVjLmZvcm07CisgIGNvcHkubWFudD1kZWMubWFudDsKKyAgcmV0dXJuIGNvcHk7CisgIH0KKworIC8qIDxzZ21sPiBDaGVjayBvbmUgb3IgdHdvIG51bWJlcnMgZm9yIGxvc3QgZGlnaXRzLiA8L3NnbWw+CisgICAgQXJnMSBpcyBSSFMgKG9yIG51bGwsIGlmIG5vbmUpCisgICAgQXJnMiBpcyBjdXJyZW50IERJR0lUUyBzZXR0aW5nCisgICAgcmV0dXJucyBxdWlldGx5IG9yIHRocm93cyBhbiBleGNlcHRpb24gKi8KKyAKKyBwcml2YXRlIHZvaWQgY2hlY2tkaWdpdHMoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyxpbnQgZGlnKXsKKyAgaWYgKGRpZz09MCkgCisgICByZXR1cm47IC8vIGRvbid0IGNoZWNrIGlmIGRpZ2l0cz0wCisgIC8vIGZpcnN0IGNoZWNrIGxocy4uLgorICBpZiAodGhpcy5tYW50Lmxlbmd0aD5kaWcpIAorICAgaWYgKCghKGFsbHplcm8odGhpcy5tYW50LGRpZykpKSkgCisgICAgdGhyb3cgbmV3IGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uKCJUb28gbWFueSBkaWdpdHM6IisiICIrdGhpcy50b1N0cmluZygpKTsKKyAgaWYgKHJocz09bnVsbCkgCisgICByZXR1cm47IC8vIG1vbmFkaWMKKyAgaWYgKHJocy5tYW50Lmxlbmd0aD5kaWcpIAorICAgaWYgKCghKGFsbHplcm8ocmhzLm1hbnQsZGlnKSkpKSAKKyAgICB0aHJvdyBuZXcgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24oIlRvbyBtYW55IGRpZ2l0czoiKyIgIityaHMudG9TdHJpbmcoKSk7CisgIHJldHVybjsKKyAgfQorCisgLyogPHNnbWw+IFJvdW5kIHRvIHNwZWNpZmllZCBkaWdpdHMsIGlmIG5lY2Vzc2FyeS4gPC9zZ21sPgorICAgIEFyZzEgaXMgcmVxdWVzdGVkIE1hdGhDb250ZXh0IFt3aXRoIGxlbmd0aCBhbmQgcm91bmRpbmcgbW9kZV0KKyAgICByZXR1cm5zIHRoaXMsIGZvciBjb252ZW5pZW5jZSAqLworIAorIHByaXZhdGUgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJvdW5kKGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgc2V0KXsKKyAgcmV0dXJuIHJvdW5kKHNldC5kaWdpdHMsc2V0LnJvdW5kaW5nTW9kZSk7CisgIH0KKworIC8qIDxzZ21sPiBSb3VuZCB0byBzcGVjaWZpZWQgZGlnaXRzLCBpZiBuZWNlc3NhcnkuCisgICAgQXJnMSBpcyByZXF1ZXN0ZWQgbGVuZ3RoIChkaWdpdHMgdG8gcm91bmQgdG8pCisgICAgICAgICAgICBbbWF5IGJlIDw9MCB3aGVuIGNhbGxlZCBmcm9tIGZvcm1hdCwgZG9kaXZpZGUsIGV0Yy5dCisgICAgQXJnMiBpcyByb3VuZGluZyBtb2RlCisgICAgcmV0dXJucyB0aGlzLCBmb3IgY29udmVuaWVuY2UKKyAKKyAgICBpbmQgYW5kIGV4cCBhcmUgYWRqdXN0ZWQsIGJ1dCBub3QgY2xlYXJlZCBmb3IgYSBtYW50aXNzYSBvZiB6ZXJvCisgCisgICAgVGhlIGxlbmd0aCBvZiB0aGUgbWFudGlzc2EgcmV0dXJuZWQgd2lsbCBiZSBBcmcxLCBleGNlcHQgd2hlbiBBcmcxCisgICAgaXMgMCwgaW4gd2hpY2ggY2FzZSB0aGUgcmV0dXJuZWQgbWFudGlzc2EgbGVuZ3RoIHdpbGwgYmUgMS4KKyAgICA8L3NnbWw+CisgICAgKi8KKyAKKyBwcml2YXRlIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByb3VuZChpbnQgbGVuLGludCBtb2RlKXsKKyAgaW50IGFkanVzdDsKKyAgaW50IHNpZ247CisgIGJ5dGUgb2xkbWFudFtdOworICBib29sZWFuIHJldXNlPWZhbHNlOworICBieXRlIGZpcnN0PTA7CisgIGludCBpbmNyZW1lbnQ7CisgIGJ5dGUgbmV3bWFudFtdPW51bGw7CisgIGFkanVzdD1tYW50Lmxlbmd0aC1sZW47CisgIGlmIChhZGp1c3Q8PTApIAorICAgcmV0dXJuIHRoaXM7IC8vIG5vd3QgdG8gZG8KKyAgCisgIGV4cD1leHArYWRqdXN0OyAvLyBleHBvbmVudCBvZiByZXN1bHQKKyAgc2lnbj0oaW50KWluZDsgLy8gc2F2ZSBbYXNzdW1lcyAtMSwgMCwgMV0KKyAgb2xkbWFudD1tYW50OyAvLyBzYXZlCisgIGlmIChsZW4+MCkgCisgICB7CisgICAgLy8gcmVtb3ZlIHRoZSB1bndhbnRlZCBkaWdpdHMKKyAgICBtYW50PW5ldyBieXRlW2xlbl07CisgICAgamF2YS5sYW5nLlN5c3RlbS5hcnJheWNvcHkoKGphdmEubGFuZy5PYmplY3Qpb2xkbWFudCwwLChqYXZhLmxhbmcuT2JqZWN0KW1hbnQsMCxsZW4pOworICAgIHJldXNlPXRydWU7IC8vIGNhbiByZXVzZSBtYW50aXNzYQorICAgIGZpcnN0PW9sZG1hbnRbbGVuXTsgLy8gZmlyc3Qgb2YgZGlzY2FyZGVkIGRpZ2l0cworICAgfQorICBlbHNlIAorICAgey8qIGxlbjw9MCAqLworICAgIG1hbnQ9WkVSTy5tYW50OworICAgIGluZD1pc3plcm87CisgICAgcmV1c2U9ZmFsc2U7IC8vIGNhbm5vdCByZXVzZSBtYW50aXNzYQorICAgIGlmIChsZW49PTApIAorICAgICBmaXJzdD1vbGRtYW50WzBdOworICAgIGVsc2UgCisgICAgIGZpcnN0PShieXRlKTA7IC8vIFt2aXJ0dWFsIGRpZ2l0XQorICAgfQorICAKKyAgLy8gZGVjaWRlIHJvdW5kaW5nIGFkanVzdG1lbnQgZGVwZW5kaW5nIG9uIG1vZGUsIHNpZ24sIGFuZCBkaXNjYXJkZWQgZGlnaXRzCisgIGluY3JlbWVudD0wOyAvLyBidW1wZXIKKyAge21vZGVzOmRvey8qc2VsZWN0Ki8KKyAgaWYgKG1vZGU9PVJPVU5EX0hBTEZfVVApCisgICB7IC8vIGRlZmF1bHQgZmlyc3QgW21vc3QgY29tbW9uXQorICAgIGlmIChmaXJzdD49NSkgCisgICAgIGluY3JlbWVudD1zaWduOworICAgfQorICBlbHNlIGlmIChtb2RlPT1ST1VORF9VTk5FQ0VTU0FSWSkKKyAgIHsgLy8gZGVmYXVsdCBmb3Igc2V0U2NhbGUoKQorICAgIC8vIGRpc2NhcmRpbmcgYW55IG5vbi16ZXJvIGRpZ2l0cyBpcyBhbiBlcnJvcgorICAgIGlmICgoIShhbGx6ZXJvKG9sZG1hbnQsbGVuKSkpKSAKKyAgICAgdGhyb3cgbmV3IGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uKCJSb3VuZGluZyBuZWNlc3NhcnkiKTsKKyAgIH0KKyAgZWxzZSBpZiAobW9kZT09Uk9VTkRfSEFMRl9ET1dOKQorICAgeyAvLyAwLjUwMDAgZ29lcyBkb3duCisgICAgaWYgKGZpcnN0PjUpIAorICAgICBpbmNyZW1lbnQ9c2lnbjsKKyAgICBlbHNlIAorICAgICBpZiAoZmlyc3Q9PTUpIAorICAgICAgaWYgKCghKGFsbHplcm8ob2xkbWFudCxsZW4rMSkpKSkgCisgICAgICAgaW5jcmVtZW50PXNpZ247CisgICB9CisgIGVsc2UgaWYgKG1vZGU9PVJPVU5EX0hBTEZfRVZFTikKKyAgIHsgLy8gMC41MDAwIGdvZXMgZG93biBpZiBsZWZ0IGRpZ2l0IGV2ZW4KKyAgICBpZiAoZmlyc3Q+NSkgCisgICAgIGluY3JlbWVudD1zaWduOworICAgIGVsc2UgCisgICAgIGlmIChmaXJzdD09NSkgCisgICAgICB7CisgICAgICAgaWYgKCghKGFsbHplcm8ob2xkbWFudCxsZW4rMSkpKSkgCisgICAgICAgIGluY3JlbWVudD1zaWduOworICAgICAgIGVsc2UgLyogMC41MDAwICovCisgICAgICAgIGlmICgoKChtYW50W21hbnQubGVuZ3RoLTFdKSUyKSk9PTEpIAorICAgICAgICAgaW5jcmVtZW50PXNpZ247CisgICAgICB9CisgICB9CisgIGVsc2UgaWYgKG1vZGU9PVJPVU5EX0RPV04pCisgICA7IC8vIG5ldmVyIGluY3JlbWVudAorICBlbHNlIGlmIChtb2RlPT1ST1VORF9VUCkKKyAgIHsgLy8gaW5jcmVtZW50IGlmIGRpc2NhcmRlZCBub24temVybworICAgIGlmICgoIShhbGx6ZXJvKG9sZG1hbnQsbGVuKSkpKSAKKyAgICAgaW5jcmVtZW50PXNpZ247CisgICB9CisgIGVsc2UgaWYgKG1vZGU9PVJPVU5EX0NFSUxJTkcpCisgICB7IC8vIG1vcmUgcG9zaXRpdmUKKyAgICBpZiAoc2lnbj4wKSAKKyAgICAgaWYgKCghKGFsbHplcm8ob2xkbWFudCxsZW4pKSkpIAorICAgICAgaW5jcmVtZW50PXNpZ247CisgICB9CisgIGVsc2UgaWYgKG1vZGU9PVJPVU5EX0ZMT09SKQorICAgeyAvLyBtb3JlIG5lZ2F0aXZlCisgICAgaWYgKHNpZ248MCkgCisgICAgIGlmICgoIShhbGx6ZXJvKG9sZG1hbnQsbGVuKSkpKSAKKyAgICAgIGluY3JlbWVudD1zaWduOworICAgfQorICBlbHNleworICAgdGhyb3cgbmV3IGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkJhZCByb3VuZCB2YWx1ZToiKyIgIittb2RlKTsKKyAgfQorICB9d2hpbGUoZmFsc2UpO30vKm1vZGVzKi8KKyAgCisgIGlmIChpbmNyZW1lbnQhPTApIAorICAge2J1bXA6ZG97CisgICAgaWYgKGluZD09aXN6ZXJvKSAKKyAgICAgeworICAgICAgLy8gd2UgbXVzdCBub3Qgc3VidHJhY3QgZnJvbSAwLCBidXQgcmVzdWx0IGlzIHRyaXZpYWwgYW55d2F5CisgICAgICBtYW50PU9ORS5tYW50OworICAgICAgaW5kPShieXRlKWluY3JlbWVudDsKKyAgICAgfQorICAgIGVsc2UgCisgICAgIHsKKyAgICAgIC8vIG1hbnRpc3NhIGlzIG5vbi0wOyB3ZSBjYW4gc2FmZWx5IGFkZCBvciBzdWJ0cmFjdCAxCisgICAgICBpZiAoaW5kPT1pc25lZykgCisgICAgICAgaW5jcmVtZW50PShpbnQpLWluY3JlbWVudDsKKyAgICAgIG5ld21hbnQ9Ynl0ZWFkZHN1YihtYW50LG1hbnQubGVuZ3RoLE9ORS5tYW50LDEsaW5jcmVtZW50LHJldXNlKTsKKyAgICAgIGlmIChuZXdtYW50Lmxlbmd0aD5tYW50Lmxlbmd0aCkgCisgICAgICAgeyAvLyBoYWQgYSBjYXJyeQorICAgICAgICAvLyBkcm9wIHJpZ2h0bW9zdCBkaWdpdCBhbmQgcmFpc2UgZXhwb25lbnQKKyAgICAgICAgZXhwKys7CisgICAgICAgIC8vIG1hbnQgaXMgYWxyZWFkeSB0aGUgY29ycmVjdCBsZW5ndGgKKyAgICAgICAgamF2YS5sYW5nLlN5c3RlbS5hcnJheWNvcHkoKGphdmEubGFuZy5PYmplY3QpbmV3bWFudCwwLChqYXZhLmxhbmcuT2JqZWN0KW1hbnQsMCxtYW50Lmxlbmd0aCk7CisgICAgICAgfQorICAgICAgZWxzZSAKKyAgICAgICBtYW50PW5ld21hbnQ7CisgICAgIH0KKyAgIH13aGlsZShmYWxzZSk7fS8qYnVtcCovCisgIC8vIHJvdW5kaW5nIGNhbiBpbmNyZWFzZSBleHBvbmVudCBzaWduaWZpY2FudGx5CisgIGlmIChleHA+TWF4RXhwKSAKKyAgIHRocm93IG5ldyBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbigiRXhwb25lbnQgT3ZlcmZsb3c6IisiICIrZXhwKTsKKyAgcmV0dXJuIHRoaXM7CisgIH0KKworIC8qIDxzZ21sPiBUZXN0IGlmIHJpZ2h0bW9zdCBkaWdpdHMgYXJlIGFsbCAwLgorICAgIEFyZzEgaXMgYSBtYW50aXNzYSBhcnJheSB0byB0ZXN0CisgICAgQXJnMiBpcyB0aGUgb2Zmc2V0IG9mIGZpcnN0IGRpZ2l0IHRvIGNoZWNrCisgICAgICAgICAgICBbbWF5IGJlIG5lZ2F0aXZlOyBpZiBzbywgZGlnaXRzIHRvIGxlZnQgYXJlIDAnc10KKyAgICByZXR1cm5zIDEgaWYgYWxsIHRoZSBkaWdpdHMgc3RhcnRpbmcgYXQgQXJnMiBhcmUgMAorIAorICAgIEFyZzIgbWF5IGJlIGJleW9uZCBhcnJheSBib3VuZHMsIGluIHdoaWNoIGNhc2UgMSBpcyByZXR1cm5lZAorICAgIDwvc2dtbD4gKi8KKyAKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIGFsbHplcm8oYnl0ZSBhcnJheVtdLGludCBzdGFydCl7CisgIGludCBpPTA7CisgIGlmIChzdGFydDwwKSAKKyAgIHN0YXJ0PTA7CisgIHtpbnQgJDI1PWFycmF5Lmxlbmd0aC0xO2k9c3RhcnQ7aTpmb3IoO2k8PSQyNTtpKyspeworICAgaWYgKGFycmF5W2ldIT0wKSAKKyAgICByZXR1cm4gZmFsc2U7CisgICB9CisgIH0vKmkqLworICByZXR1cm4gdHJ1ZTsKKyAgfQorCisgLyogPHNnbWw+IENhcnJ5IG91dCBmaW5hbCBjaGVja3MgYW5kIGNhbm9uaWNhbGl6YXRpb24KKyAgICA8cD4KKyAgICBUaGlzIGZpbmlzaGVzIG9mZiB0aGUgY3VycmVudCBudW1iZXIgYnk6CisgICAgICAxLiBSb3VuZGluZyBpZiBuZWNlc3NhcnkgKE5COiBsZW5ndGggaW5jbHVkZXMgbGVhZGluZyB6ZXJvcykKKyAgICAgIDIuIFN0cmlwcGluZyB0cmFpbGluZyB6ZXJvcyAoaWYgcmVxdWVzdGVkIGFuZCBcUExBSU4pCisgICAgICAzLiBTdHJpcHBpbmcgbGVhZGluZyB6ZXJvcyAoYWx3YXlzKQorICAgICAgNC4gU2VsZWN0aW5nIGV4cG9uZW50aWFsIG5vdGF0aW9uIChpZiByZXF1aXJlZCkKKyAgICAgIDUuIENvbnZlcnRpbmcgYSB6ZXJvIHJlc3VsdCB0byBqdXN0ICcwJyAoaWYgXFBMQUlOKQorICAgIEluIHByYWN0aWNlLCB0aGVzZSBvcGVyYXRpb25zIG92ZXJsYXAgYW5kIHNoYXJlIGNvZGUuCisgICAgSXQgYWx3YXlzIHNldHMgZm9ybS4KKyAgICA8L3NnbWw+CisgICAgQXJnMSBpcyByZXF1ZXN0ZWQgTWF0aENvbnRleHQgKGxlbmd0aCB0byByb3VuZCB0bywgdHJpZ2dlciwgYW5kIEZPUk0pCisgICAgQXJnMiBpcyAxIGlmIHRyYWlsaW5nIGluc2lnbmlmaWNhbnQgemVyb3Mgc2hvdWxkIGJlIHJlbW92ZWQgYWZ0ZXIKKyAgICAgICAgIHJvdW5kIChmb3IgZGl2aXNpb24sIGV0Yy4pLCBwcm92aWRlZCB0aGF0IHNldC5mb3JtIGlzbid0IFBMQUlOLgorICAgcmV0dXJucyB0aGlzLCBmb3IgY29udmVuaWVuY2UKKyAgICovCisgCisgcHJpdmF0ZSBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZmluaXNoKGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgc2V0LGJvb2xlYW4gc3RyaXApeworICBpbnQgZD0wOworICBpbnQgaT0wOworICBieXRlIG5ld21hbnRbXT1udWxsOworICBpbnQgbWFnPTA7CisgIGludCBzaWc9MDsKKyAgLyogUm91bmQgaWYgbWFudGlzc2EgdG9vIGxvbmcgYW5kIGRpZ2l0cyByZXF1ZXN0ZWQgKi8KKyAgaWYgKHNldC5kaWdpdHMhPTApIAorICAgaWYgKHRoaXMubWFudC5sZW5ndGg+c2V0LmRpZ2l0cykgCisgICAgdGhpcy5yb3VuZChzZXQpOworICAKKyAgLyogSWYgc3RyaXAgcmVxdWVzdGVkIChhbmQgc3RhbmRhcmQgZm9ybWF0dGluZyksIHJlbW92ZQorICAgICBpbnNpZ25pZmljYW50IHRyYWlsaW5nIHplcm9zLiAqLworICBpZiAoc3RyaXApIAorICAgaWYgKHNldC5mb3JtIT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOKSAKKyAgICB7CisgICAgIGQ9dGhpcy5tYW50Lmxlbmd0aDsKKyAgICAgLyogc2VlIGlmIHdlIG5lZWQgdG8gZHJvcCBhbnkgdHJhaWxpbmcgemVyb3MgKi8KKyAgICAge2k9ZC0xO2k6Zm9yKDtpPj0xO2ktLSl7CisgICAgICBpZiAodGhpcy5tYW50W2ldIT0wKSAKKyAgICAgICBicmVhayBpOworICAgICAgZC0tOworICAgICAgZXhwKys7CisgICAgICB9CisgICAgIH0vKmkqLworICAgICBpZiAoZDx0aGlzLm1hbnQubGVuZ3RoKSAKKyAgICAgIHsvKiBuZWVkIHRvIHJlZHVjZSAqLworICAgICAgIG5ld21hbnQ9bmV3IGJ5dGVbZF07CisgICAgICAgamF2YS5sYW5nLlN5c3RlbS5hcnJheWNvcHkoKGphdmEubGFuZy5PYmplY3QpdGhpcy5tYW50LDAsKGphdmEubGFuZy5PYmplY3QpbmV3bWFudCwwLGQpOworICAgICAgIHRoaXMubWFudD1uZXdtYW50OworICAgICAgfQorICAgIH0KKyAgCisgIGZvcm09KGJ5dGUpY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTjsgLy8gcHJlc2V0CisgIAorICAvKiBOb3cgY2hlY2sgZm9yIGxlYWRpbmctIGFuZCBhbGwtIHplcm9zIGluIG1hbnRpc3NhICovCisgIHtpbnQgJDI2PXRoaXMubWFudC5sZW5ndGg7aT0wO2k6Zm9yKDskMjY+MDskMjYtLSxpKyspeworICAgaWYgKHRoaXMubWFudFtpXSE9MCkgCisgICAgeworICAgICAvLyBub24tMCByZXN1bHQ7IGluZCB3aWxsIGJlIGNvcnJlY3QKKyAgICAgLy8gcmVtb3ZlIGxlYWRpbmcgemVyb3MgW2UuZy4sIGFmdGVyIHN1YnRyYWN0XQorICAgICBpZiAoaT4wKSAKKyAgICAgIHtkZWxlYWQ6ZG97CisgICAgICAgbmV3bWFudD1uZXcgYnl0ZVt0aGlzLm1hbnQubGVuZ3RoLWldOworICAgICAgIGphdmEubGFuZy5TeXN0ZW0uYXJyYXljb3B5KChqYXZhLmxhbmcuT2JqZWN0KXRoaXMubWFudCxpLChqYXZhLmxhbmcuT2JqZWN0KW5ld21hbnQsMCx0aGlzLm1hbnQubGVuZ3RoLWkpOworICAgICAgIHRoaXMubWFudD1uZXdtYW50OworICAgICAgfXdoaWxlKGZhbHNlKTt9LypkZWxlYWQqLworICAgICAvLyBub3cgZGV0ZXJtaW5lIGZvcm0gaWYgbm90IFBMQUlOCisgICAgIG1hZz1leHArbWFudC5sZW5ndGg7CisgICAgIGlmIChtYWc+MCkgCisgICAgICB7IC8vIG1vc3QgY29tbW9uIHBhdGgKKyAgICAgICBpZiAobWFnPnNldC5kaWdpdHMpIAorICAgICAgICBpZiAoc2V0LmRpZ2l0cyE9MCkgCisgICAgICAgICBmb3JtPShieXRlKXNldC5mb3JtOworICAgICAgIGlmICgobWFnLTEpPD1NYXhFeHApIAorICAgICAgICByZXR1cm4gdGhpczsgLy8gbm8gb3ZlcmZsb3c7IHF1aWNrIHJldHVybgorICAgICAgfQorICAgICBlbHNlIAorICAgICAgaWYgKG1hZzwoLTUpKSAKKyAgICAgICBmb3JtPShieXRlKXNldC5mb3JtOworICAgICAvKiBjaGVjayBmb3Igb3ZlcmZsb3cgKi8KKyAgICAgbWFnLS07CisgICAgIGlmICgobWFnPE1pbkV4cCl8KG1hZz5NYXhFeHApKSAKKyAgICAgIHtvdmVyZmxvdzpkb3sKKyAgICAgICAvLyBwb3NzaWJsZSByZXByaWV2ZSBpZiBmb3JtIGlzIGVuZ2luZWVyaW5nCisgICAgICAgaWYgKGZvcm09PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuRU5HSU5FRVJJTkcpIAorICAgICAgICB7CisgICAgICAgICBzaWc9bWFnJTM7IC8vIGxlZnRvdmVyCisgICAgICAgICBpZiAoc2lnPDApIAorICAgICAgICAgIHNpZz0zK3NpZzsgLy8gbmVnYXRpdmUgZXhwb25lbnQKKyAgICAgICAgIG1hZz1tYWctc2lnOyAvLyBleHBvbmVudCB0byB1c2UKKyAgICAgICAgIC8vIDE5OTkuMDYuMjk6IHNlY29uZCB0ZXN0IGhlcmUgbXVzdCBiZSBNYXhFeHAKKyAgICAgICAgIGlmIChtYWc+PU1pbkV4cCkgCisgICAgICAgICAgaWYgKG1hZzw9TWF4RXhwKSAKKyAgICAgICAgICAgYnJlYWsgb3ZlcmZsb3c7CisgICAgICAgIH0KKyAgICAgICB0aHJvdyBuZXcgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24oIkV4cG9uZW50IE92ZXJmbG93OiIrIiAiK21hZyk7CisgICAgICB9d2hpbGUoZmFsc2UpO30vKm92ZXJmbG93Ki8KKyAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgfQorICB9LyppKi8KKyAgCisgIC8vIERyb3AgdGhyb3VnaCB0byBoZXJlIG9ubHkgaWYgbWFudGlzc2EgaXMgYWxsIHplcm9zCisgIGluZD1pc3plcm87CisgIHsvKnNlbGVjdCovCisgIGlmIChzZXQuZm9ybSE9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTikKKyAgIGV4cD0wOyAvLyBzdGFuZGFyZCByZXN1bHQ7IGdvIHRvICcwJworICBlbHNlIGlmIChleHA+MCkKKyAgIGV4cD0wOyAvLyArdmUgZXhwb25lbnQgYWxzbyBnb2VzIHRvICcwJworICBlbHNleworICAgLy8gYSBwbGFpbiBudW1iZXIgd2l0aCAtdmUgZXhwb25lbnQ7IHByZXNlcnZlIGFuZCBjaGVjayBleHBvbmVudAorICAgaWYgKGV4cDxNaW5FeHApIAorICAgIHRocm93IG5ldyBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbigiRXhwb25lbnQgT3ZlcmZsb3c6IisiICIrZXhwKTsKKyAgfQorICB9CisgIG1hbnQ9WkVSTy5tYW50OyAvLyBjYW5vbmljYWwgbWFudGlzc2EKKyAgcmV0dXJuIHRoaXM7CisgIH0KKyB9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvbWF0aC9NYXRoQ29udGV4dC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L21hdGgvTWF0aENvbnRleHQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44YzQyM2M4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L21hdGgvTWF0aENvbnRleHQuamF2YQpAQCAtMCwwICsxLDU4MiBAQAorLyogR2VuZXJhdGVkIGZyb20gJ01hdGhDb250ZXh0Lm5yeCcgOCBTZXAgMjAwMCAxMTowNzo0OCBbdjIuMDBdICovCisvKiBPcHRpb25zOiBCaW5hcnkgQ29tbWVudHMgQ3Jvc3NyZWYgRm9ybWF0IEphdmEgTG9nbyBTdHJpY3RhcmdzIFN0cmljdGNhc2UgVHJhY2UyIFZlcmJvc2UzICovCitwYWNrYWdlIGNvbS5pYm0uaWN1Lm1hdGg7CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyogTWF0aENvbnRleHQgLS0gTWF0aCBjb250ZXh0IHNldHRpbmdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKy8qIENvcHlyaWdodCBJQk0gQ29ycG9yYXRpb24sIDE5OTcsIDIwMDAuICBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgIFRoZSBNYXRoQ29udGV4dCBvYmplY3QgZW5jYXBzdWxhdGVzIHRoZSBzZXR0aW5ncyB1c2VkIGJ5IHRoZSAgICAgKi8KKy8qICAgQmlnRGVjaW1hbCBjbGFzczsgaXQgY291bGQgYWxzbyBiZSB1c2VkIGJ5IG90aGVyIGFyaXRobWV0aWNzLiAgICAqLworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisvKiBOb3RlczogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogMS4gVGhlIHByb3BlcnRpZXMgYXJlIGNoZWNrZWQgZm9yIHZhbGlkaXR5IG9uIGNvbnN0cnVjdGlvbiwgc28gICAgICovCisvKiAgICB0aGUgQmlnRGVjaW1hbCBjbGFzcyBtYXkgYXNzdW1lIHRoYXQgdGhleSBhcmUgY29ycmVjdC4gICAgICAgICAgKi8KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyogQXV0aG9yOiAgICBNaWtlIENvd2xpc2hhdyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk3LjA5LjAzIEluaXRpYWwgdmVyc2lvbiAoZWRpdGVkIGZyb20gbmV0cmV4eC5sYW5nLlJleHhTZXQpICAgICAgKi8KKy8qIDE5OTcuMDkuMTIgQWRkIGxvc3REaWdpdHMgcHJvcGVydHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogMTk5OC4wNS4wMiBNYWtlIHRoZSBjbGFzcyBpbW11dGFibGUgYW5kIGZpbmFsOyBkcm9wIHNldCBtZXRob2RzICAgICovCisvKiAxOTk4LjA2LjA1IEFkZCBSb3VuZCAocm91bmRpbmcgbW9kZXMpIHByb3BlcnR5ICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTguMDYuMjUgUmVuYW1lIGZyb20gRGVjaW1hbENvbnRleHQ7IGFsbG93IGRpZ2l0cz0wICAgICAgICAgICAgICAqLworLyogMTk5OC4xMC4xMiBjaGFuZ2UgdG8gY29tLmlibS5pY3UubWF0aCBwYWNrYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogMTk5OS4wMi4wNiBhZGQgamF2YWRvYyBjb21tZW50cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk5LjAzLjA1IHNpbXBsaWZ5OyBjaGFuZ2VzIGZyb20gZGlzY3Vzc2lvbiB3aXRoIEouIEJsb2NoICAgICAgICAgKi8KKy8qIDE5OTkuMDMuMTMgMS4wMCByZWxlYXNlIHRvIElCTSBDZW50cmUgZm9yIEphdmEgVGVjaG5vbG9neSAgICAgICAgICAqLworLyogMTk5OS4wNy4xMCAxLjA0IGZsYWcgc2VyaWFsaXphdGlvbiB1bnVzZWQgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAyMDAwLjAxLjAxIDEuMDYgY29weXJpZ2h0IHVwZGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisKKworCisvKioKKyAqIFRoZSA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gaW1tdXRhYmxlIGNsYXNzIGVuY2Fwc3VsYXRlcyB0aGUKKyAqIHNldHRpbmdzIHVuZGVyc3Rvb2QgYnkgdGhlIG9wZXJhdG9yIG1ldGhvZHMgb2YgdGhlIHtAbGluayBCaWdEZWNpbWFsfQorICogY2xhc3MgKGFuZCBwb3RlbnRpYWxseSBvdGhlciBjbGFzc2VzKS4gIE9wZXJhdG9yIG1ldGhvZHMgYXJlIHRob3NlCisgKiB0aGF0IGVmZmVjdCBhbiBvcGVyYXRpb24gb24gYSBudW1iZXIgb3IgYSBwYWlyIG9mIG51bWJlcnMuCisgKiA8cD4KKyAqIFRoZSBzZXR0aW5ncywgd2hpY2ggYXJlIG5vdCBiYXNlLWRlcGVuZGVudCwgY29tcHJpc2U6CisgKiA8b2w+CisgKiA8bGk+PGNvZGU+ZGlnaXRzPC9jb2RlPjoKKyAqIHRoZSBudW1iZXIgb2YgZGlnaXRzIChwcmVjaXNpb24pIHRvIGJlIHVzZWQgZm9yIGFuIG9wZXJhdGlvbgorICogPGxpPjxjb2RlPmZvcm08L2NvZGU+OgorICogdGhlIGZvcm0gb2YgYW55IGV4cG9uZW50IHRoYXQgcmVzdWx0cyBmcm9tIHRoZSBvcGVyYXRpb24KKyAqIDxsaT48Y29kZT5sb3N0RGlnaXRzPC9jb2RlPjoKKyAqIHdoZXRoZXIgY2hlY2tpbmcgZm9yIGxvc3QgZGlnaXRzIGlzIGVuYWJsZWQKKyAqIDxsaT48Y29kZT5yb3VuZGluZ01vZGU8L2NvZGU+OgorICogdGhlIGFsZ29yaXRobSB0byBiZSB1c2VkIGZvciByb3VuZGluZy4KKyAqIDwvb2w+CisgKiA8cD4KKyAqIFdoZW4gcHJvdmlkZWQsIGEgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IG9iamVjdCBzdXBwbGllcyB0aGUKKyAqIHNldHRpbmdzIGZvciBhbiBvcGVyYXRpb24gZGlyZWN0bHkuCisgKiA8cD4KKyAqIFdoZW4gPGNvZGU+TWF0aENvbnRleHQuREVGQVVMVDwvY29kZT4gaXMgcHJvdmlkZWQgZm9yIGEKKyAqIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBwYXJhbWV0ZXIgdGhlbiB0aGUgZGVmYXVsdCBzZXR0aW5ncyBhcmUgdXNlZAorICogKDxjb2RlPjksIFNDSUVOVElGSUMsIGZhbHNlLCBST1VORF9IQUxGX1VQPC9jb2RlPikuCisgKiA8cD4KKyAqIEluIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBjbGFzcywgYWxsIG1ldGhvZHMgd2hpY2ggYWNjZXB0IGEKKyAqIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBvYmplY3QgZGVmYXVsdHMpIGFsc28gaGF2ZSBhIHZlcnNpb24gb2YgdGhlCisgKiBtZXRob2Qgd2hpY2ggZG9lcyBub3QgYWNjZXB0IGEgTWF0aENvbnRleHQgcGFyYW1ldGVyLiAgVGhlc2UgdmVyc2lvbnMKKyAqIGNhcnJ5IG91dCB1bmxpbWl0ZWQgcHJlY2lzaW9uIGZpeGVkIHBvaW50IGFyaXRobWV0aWMgKGFzIHRob3VnaCB0aGUKKyAqIHNldHRpbmdzIHdlcmUgKDxjb2RlPjAsIFBMQUlOLCBmYWxzZSwgUk9VTkRfSEFMRl9VUDwvY29kZT4pLgorICogPHA+CisgKiBUaGUgaW5zdGFuY2UgdmFyaWFibGVzIGFyZSBzaGFyZWQgd2l0aCBkZWZhdWx0IGFjY2VzcyAoc28gdGhleSBhcmUKKyAqIGRpcmVjdGx5IGFjY2Vzc2libGUgdG8gdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGNsYXNzKSwgYnV0IG11c3QKKyAqIG5ldmVyIGJlIGNoYW5nZWQuCisgKiA8cD4KKyAqIFRoZSByb3VuZGluZyBtb2RlIGNvbnN0YW50cyBoYXZlIHRoZSBzYW1lIG5hbWVzIGFuZCB2YWx1ZXMgYXMgdGhlCisgKiBjb25zdGFudHMgb2YgdGhlIHNhbWUgbmFtZSBpbiA8Y29kZT5qYXZhLm1hdGguQmlnRGVjaW1hbDwvY29kZT4sIHRvCisgKiBtYWludGFpbiBjb21wYXRpYmlsaXR5IHdpdGggZWFybGllciB2ZXJzaW9ucyBvZgorICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4uCisgKgorICogQHNlZSAgICAgQmlnRGVjaW1hbAorICogQHZlcnNpb24gMS4wOCAyMDAwLjA2LjE4CisgKiBAYXV0aG9yICBNaWtlIENvd2xpc2hhdworICovCisKK3B1YmxpYyBmaW5hbCBjbGFzcyBNYXRoQ29udGV4dCBpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxleworIHByaXZhdGUgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgJDA9Ik1hdGhDb250ZXh0Lm5yeCI7CisgCisgLyogLS0tLS0gUHJvcGVydGllcyAtLS0tLSAqLworIC8qIHByb3BlcnRpZXMgcHVibGljIGNvbnN0YW50ICovCisgLyoqCisgICogUGxhaW4gKGZpeGVkIHBvaW50KSBub3RhdGlvbiwgd2l0aG91dCBhbnkgZXhwb25lbnQuCisgICogVXNlZCBhcyBhIHNldHRpbmcgdG8gY29udHJvbCB0aGUgZm9ybSBvZiB0aGUgcmVzdWx0IG9mIGEKKyAgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvcGVyYXRpb24uCisgICogQSB6ZXJvIHJlc3VsdCBpbiBwbGFpbiBmb3JtIG1heSBoYXZlIGEgZGVjaW1hbCBwYXJ0IG9mIG9uZSBvcgorICAqIG1vcmUgemVyb3MuCisgICoKKyAgKiBAc2VlICNFTkdJTkVFUklORworICAqIEBzZWUgI1NDSUVOVElGSUMKKyAgKi8KKyBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQTEFJTj0wOyAvLyBbbm8gZXhwb25lbnRdCisgCisgLyoqCisgICogU3RhbmRhcmQgZmxvYXRpbmcgcG9pbnQgbm90YXRpb24gKHdpdGggc2NpZW50aWZpYyBleHBvbmVudGlhbAorICAqIGZvcm1hdCwgd2hlcmUgdGhlcmUgaXMgb25lIGRpZ2l0IGJlZm9yZSBhbnkgZGVjaW1hbCBwb2ludCkuCisgICogVXNlZCBhcyBhIHNldHRpbmcgdG8gY29udHJvbCB0aGUgZm9ybSBvZiB0aGUgcmVzdWx0IG9mIGEKKyAgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvcGVyYXRpb24uCisgICogQSB6ZXJvIHJlc3VsdCBpbiBwbGFpbiBmb3JtIG1heSBoYXZlIGEgZGVjaW1hbCBwYXJ0IG9mIG9uZSBvcgorICAqIG1vcmUgemVyb3MuCisgICoKKyAgKiBAc2VlICNFTkdJTkVFUklORworICAqIEBzZWUgI1BMQUlOCisgICovCisgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0NJRU5USUZJQz0xOyAvLyAxIGRpZ2l0IGJlZm9yZSAuCisgCisgLyoqCisgICogU3RhbmRhcmQgZmxvYXRpbmcgcG9pbnQgbm90YXRpb24gKHdpdGggZW5naW5lZXJpbmcgZXhwb25lbnRpYWwKKyAgKiBmb3JtYXQsIHdoZXJlIHRoZSBwb3dlciBvZiB0ZW4gaXMgYSBtdWx0aXBsZSBvZiAzKS4KKyAgKiBVc2VkIGFzIGEgc2V0dGluZyB0byBjb250cm9sIHRoZSBmb3JtIG9mIHRoZSByZXN1bHQgb2YgYQorICAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9wZXJhdGlvbi4KKyAgKiBBIHplcm8gcmVzdWx0IGluIHBsYWluIGZvcm0gbWF5IGhhdmUgYSBkZWNpbWFsIHBhcnQgb2Ygb25lIG9yCisgICogbW9yZSB6ZXJvcy4KKyAgKgorICAqIEBzZWUgI1BMQUlOCisgICogQHNlZSAjU0NJRU5USUZJQworICAqLworIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVOR0lORUVSSU5HPTI7IC8vIDEtMyBkaWdpdHMgYmVmb3JlIC4KKyAKKyAvLyBUaGUgcm91bmRpbmcgbW9kZXMgbWF0Y2ggdGhlIG9yaWdpbmFsIEJpZ0RlY2ltYWwgY2xhc3MgdmFsdWVzCisgLyoqCisgICogUm91bmRpbmcgbW9kZSB0byByb3VuZCB0byBhIG1vcmUgcG9zaXRpdmUgbnVtYmVyLgorICAqIFVzZWQgYXMgYSBzZXR0aW5nIHRvIGNvbnRyb2wgdGhlIHJvdW5kaW5nIG1vZGUgdXNlZCBkdXJpbmcgYQorICAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9wZXJhdGlvbi4KKyAgKiA8cD4KKyAgKiBJZiBhbnkgb2YgdGhlIGRpc2NhcmRlZCBkaWdpdHMgYXJlIG5vbi16ZXJvIHRoZW4gdGhlIHJlc3VsdAorICAqIHNob3VsZCBiZSByb3VuZGVkIHRvd2FyZHMgdGhlIG5leHQgbW9yZSBwb3NpdGl2ZSBkaWdpdC4KKyAgKi8KKyBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBST1VORF9DRUlMSU5HPTI7CisgCisgLyoqCisgICogUm91bmRpbmcgbW9kZSB0byByb3VuZCB0b3dhcmRzIHplcm8uCisgICogVXNlZCBhcyBhIHNldHRpbmcgdG8gY29udHJvbCB0aGUgcm91bmRpbmcgbW9kZSB1c2VkIGR1cmluZyBhCisgICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb3BlcmF0aW9uLgorICAqIDxwPgorICAqIEFsbCBkaXNjYXJkZWQgZGlnaXRzIGFyZSBpZ25vcmVkICh0cnVuY2F0ZWQpLiAgVGhlIHJlc3VsdCBpcworICAqIG5laXRoZXIgaW5jcmVtZW50ZWQgbm9yIGRlY3JlbWVudGVkLgorICAqLworIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJPVU5EX0RPV049MTsKKyAKKyAvKioKKyAgKiBSb3VuZGluZyBtb2RlIHRvIHJvdW5kIHRvIGEgbW9yZSBuZWdhdGl2ZSBudW1iZXIuCisgICogVXNlZCBhcyBhIHNldHRpbmcgdG8gY29udHJvbCB0aGUgcm91bmRpbmcgbW9kZSB1c2VkIGR1cmluZyBhCisgICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb3BlcmF0aW9uLgorICAqIDxwPgorICAqIElmIGFueSBvZiB0aGUgZGlzY2FyZGVkIGRpZ2l0cyBhcmUgbm9uLXplcm8gdGhlbiB0aGUgcmVzdWx0CisgICogc2hvdWxkIGJlIHJvdW5kZWQgdG93YXJkcyB0aGUgbmV4dCBtb3JlIG5lZ2F0aXZlIGRpZ2l0LgorICAqLworIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJPVU5EX0ZMT09SPTM7CisgCisgLyoqCisgICogUm91bmRpbmcgbW9kZSB0byByb3VuZCB0byBuZWFyZXN0IG5laWdoYm9yLCB3aGVyZSBhbiBlcXVpZGlzdGFudAorICAqIHZhbHVlIGlzIHJvdW5kZWQgZG93bi4KKyAgKiBVc2VkIGFzIGEgc2V0dGluZyB0byBjb250cm9sIHRoZSByb3VuZGluZyBtb2RlIHVzZWQgZHVyaW5nIGEKKyAgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvcGVyYXRpb24uCisgICogPHA+CisgICogSWYgdGhlIGRpc2NhcmRlZCBkaWdpdHMgcmVwcmVzZW50IGdyZWF0ZXIgdGhhbiBoYWxmICgwLjUgdGltZXMpCisgICogdGhlIHZhbHVlIG9mIGEgb25lIGluIHRoZSBuZXh0IHBvc2l0aW9uIHRoZW4gdGhlIHJlc3VsdCBzaG91bGQgYmUKKyAgKiByb3VuZGVkIHVwIChhd2F5IGZyb20gemVybykuICBPdGhlcndpc2UgdGhlIGRpc2NhcmRlZCBkaWdpdHMgYXJlCisgICogaWdub3JlZC4KKyAgKi8KKyBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBST1VORF9IQUxGX0RPV049NTsKKyAKKyAvKioKKyAgKiBSb3VuZGluZyBtb2RlIHRvIHJvdW5kIHRvIG5lYXJlc3QgbmVpZ2hib3IsIHdoZXJlIGFuIGVxdWlkaXN0YW50CisgICogdmFsdWUgaXMgcm91bmRlZCB0byB0aGUgbmVhcmVzdCBldmVuIG5laWdoYm9yLgorICAqIFVzZWQgYXMgYSBzZXR0aW5nIHRvIGNvbnRyb2wgdGhlIHJvdW5kaW5nIG1vZGUgdXNlZCBkdXJpbmcgYQorICAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9wZXJhdGlvbi4KKyAgKiA8cD4KKyAgKiBJZiB0aGUgZGlzY2FyZGVkIGRpZ2l0cyByZXByZXNlbnQgZ3JlYXRlciB0aGFuIGhhbGYgKDAuNSB0aW1lcykKKyAgKiB0aGUgdmFsdWUgb2YgYSBvbmUgaW4gdGhlIG5leHQgcG9zaXRpb24gdGhlbiB0aGUgcmVzdWx0IHNob3VsZCBiZQorICAqIHJvdW5kZWQgdXAgKGF3YXkgZnJvbSB6ZXJvKS4gIElmIHRoZXkgcmVwcmVzZW50IGxlc3MgdGhhbiBoYWxmLAorICAqIHRoZW4gdGhlIHJlc3VsdCBzaG91bGQgYmUgcm91bmRlZCBkb3duLgorICAqIDxwPgorICAqIE90aGVyd2lzZSAodGhleSByZXByZXNlbnQgZXhhY3RseSBoYWxmKSB0aGUgcmVzdWx0IGlzIHJvdW5kZWQKKyAgKiBkb3duIGlmIGl0cyByaWdodG1vc3QgZGlnaXQgaXMgZXZlbiwgb3Igcm91bmRlZCB1cCBpZiBpdHMKKyAgKiByaWdodG1vc3QgZGlnaXQgaXMgb2RkICh0byBtYWtlIGFuIGV2ZW4gZGlnaXQpLgorICAqLworIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJPVU5EX0hBTEZfRVZFTj02OworIAorIC8qKgorICAqIFJvdW5kaW5nIG1vZGUgdG8gcm91bmQgdG8gbmVhcmVzdCBuZWlnaGJvciwgd2hlcmUgYW4gZXF1aWRpc3RhbnQKKyAgKiB2YWx1ZSBpcyByb3VuZGVkIHVwLgorICAqIFVzZWQgYXMgYSBzZXR0aW5nIHRvIGNvbnRyb2wgdGhlIHJvdW5kaW5nIG1vZGUgdXNlZCBkdXJpbmcgYQorICAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9wZXJhdGlvbi4KKyAgKiA8cD4KKyAgKiBJZiB0aGUgZGlzY2FyZGVkIGRpZ2l0cyByZXByZXNlbnQgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIGhhbGYKKyAgKiAoMC41IHRpbWVzKSB0aGUgdmFsdWUgb2YgYSBvbmUgaW4gdGhlIG5leHQgcG9zaXRpb24gdGhlbiB0aGUgcmVzdWx0CisgICogc2hvdWxkIGJlIHJvdW5kZWQgdXAgKGF3YXkgZnJvbSB6ZXJvKS4gIE90aGVyd2lzZSB0aGUgZGlzY2FyZGVkCisgICogZGlnaXRzIGFyZSBpZ25vcmVkLgorICAqLworIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJPVU5EX0hBTEZfVVA9NDsKKyAKKyAvKioKKyAgKiBSb3VuZGluZyBtb2RlIHRvIGFzc2VydCB0aGF0IG5vIHJvdW5kaW5nIGlzIG5lY2Vzc2FyeS4KKyAgKiBVc2VkIGFzIGEgc2V0dGluZyB0byBjb250cm9sIHRoZSByb3VuZGluZyBtb2RlIHVzZWQgZHVyaW5nIGEKKyAgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvcGVyYXRpb24uCisgICogPHA+CisgICogUm91bmRpbmcgKHBvdGVudGlhbCBsb3NzIG9mIGluZm9ybWF0aW9uKSBpcyBub3QgcGVybWl0dGVkLgorICAqIElmIGFueSBvZiB0aGUgZGlzY2FyZGVkIGRpZ2l0cyBhcmUgbm9uLXplcm8gdGhlbiBhbgorICAqIDxjb2RlPkFyaXRobWV0aWNFeGNlcHRpb248L2NvZGU+IHNob3VsZCBiZSB0aHJvd24uCisgICovCisgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUk9VTkRfVU5ORUNFU1NBUlk9NzsKKyAKKyAvKioKKyAgKiBSb3VuZGluZyBtb2RlIHRvIHJvdW5kIGF3YXkgZnJvbSB6ZXJvLgorICAqIFVzZWQgYXMgYSBzZXR0aW5nIHRvIGNvbnRyb2wgdGhlIHJvdW5kaW5nIG1vZGUgdXNlZCBkdXJpbmcgYQorICAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9wZXJhdGlvbi4KKyAgKiA8cD4KKyAgKiBJZiBhbnkgb2YgdGhlIGRpc2NhcmRlZCBkaWdpdHMgYXJlIG5vbi16ZXJvIHRoZW4gdGhlIHJlc3VsdCB3aWxsCisgICogYmUgcm91bmRlZCB1cCAoYXdheSBmcm9tIHplcm8pLgorICAqLworIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJPVU5EX1VQPTA7CisgCisgCisgLyogcHJvcGVydGllcyBzaGFyZWQgKi8KKyAvKioKKyAgKiBUaGUgbnVtYmVyIG9mIGRpZ2l0cyAocHJlY2lzaW9uKSB0byBiZSB1c2VkIGZvciBhbiBvcGVyYXRpb24uCisgICogQSB2YWx1ZSBvZiAwIGluZGljYXRlcyB0aGF0IHVubGltaXRlZCBwcmVjaXNpb24gKGFzIG1hbnkgZGlnaXRzCisgICogYXMgYXJlIHJlcXVpcmVkKSB3aWxsIGJlIHVzZWQuCisgICogPHA+CisgICogVGhlIHtAbGluayBCaWdEZWNpbWFsfSBvcGVyYXRvciBtZXRob2RzIHVzZSB0aGlzIHZhbHVlIHRvCisgICogZGV0ZXJtaW5lIHRoZSBwcmVjaXNpb24gb2YgcmVzdWx0cy4KKyAgKiBOb3RlIHRoYXQgbGVhZGluZyB6ZXJvcyAoaW4gdGhlIGludGVnZXIgcGFydCBvZiBhIG51bWJlcikgYXJlCisgICogbmV2ZXIgc2lnbmlmaWNhbnQuCisgICogPHA+CisgICogPGNvZGU+ZGlnaXRzPC9jb2RlPiB3aWxsIGFsd2F5cyBiZSBub24tbmVnYXRpdmUuCisgICoKKyAgKiBAc2VyaWFsCisgICovCisgaW50IGRpZ2l0czsKKyAKKyAvKioKKyAgKiBUaGUgZm9ybSBvZiByZXN1bHRzIGZyb20gYW4gb3BlcmF0aW9uLgorICAqIDxwPgorICAqIFRoZSB7QGxpbmsgQmlnRGVjaW1hbH0gb3BlcmF0b3IgbWV0aG9kcyB1c2UgdGhpcyB2YWx1ZSB0bworICAqIGRldGVybWluZSB0aGUgZm9ybSBvZiByZXN1bHRzLCBpbiBwYXJ0aWN1bGFyIHdoZXRoZXIgYW5kIGhvdworICAqIGV4cG9uZW50aWFsIG5vdGF0aW9uIHNob3VsZCBiZSB1c2VkLgorICAqCisgICogQHNlZSAjRU5HSU5FRVJJTkcKKyAgKiBAc2VlICNQTEFJTgorICAqIEBzZWUgI1NDSUVOVElGSUMKKyAgKiBAc2VyaWFsCisgICovCisgaW50IGZvcm07IC8vIHZhbHVlcyBmb3IgdGhpcyBtdXN0IGZpdCBpbiBhIGJ5dGUKKyAKKyAvKioKKyAgKiBDb250cm9scyB3aGV0aGVyIGxvc3QgZGlnaXRzIGNoZWNraW5nIGlzIGVuYWJsZWQgZm9yIGFuCisgICogb3BlcmF0aW9uLgorICAqIFNldCB0byA8Y29kZT50cnVlPC9jb2RlPiB0byBlbmFibGUgY2hlY2tpbmcsIG9yCisgICogdG8gPGNvZGU+ZmFsc2U8L2NvZGU+IHRvIGRpc2FibGUgY2hlY2tpbmcuCisgICogPHA+CisgICogV2hlbiBlbmFibGVkLCB0aGUge0BsaW5rIEJpZ0RlY2ltYWx9IG9wZXJhdG9yIG1ldGhvZHMgY2hlY2sKKyAgKiB0aGUgcHJlY2lzaW9uIG9mIHRoZWlyIG9wZXJhbmQgb3Igb3BlcmFuZHMsIGFuZCB0aHJvdyBhbgorICAqIDxjb2RlPkFyaXRobWV0aWNFeGNlcHRpb248L2NvZGU+IGlmIGFuIG9wZXJhbmQgaXMgbW9yZSBwcmVjaXNlCisgICogdGhhbiB0aGUgZGlnaXRzIHNldHRpbmcgKHRoYXQgaXMsIGRpZ2l0cyB3b3VsZCBiZSBsb3N0KS4KKyAgKiBXaGVuIGRpc2FibGVkLCBvcGVyYW5kcyBhcmUgcm91bmRlZCB0byB0aGUgc3BlY2lmaWVkIGRpZ2l0cy4KKyAgKgorICAqIEBzZXJpYWwKKyAgKi8KKyBib29sZWFuIGxvc3REaWdpdHM7CisgCisgLyoqCisgICogVGhlIHJvdW5kaW5nIGFsZ29yaXRobSB0byBiZSB1c2VkIGZvciBhbiBvcGVyYXRpb24uCisgICogPHA+CisgICogVGhlIHtAbGluayBCaWdEZWNpbWFsfSBvcGVyYXRvciBtZXRob2RzIHVzZSB0aGlzIHZhbHVlIHRvCisgICogZGV0ZXJtaW5lIHRoZSBhbGdvcml0aG0gdG8gYmUgdXNlZCB3aGVuIG5vbi16ZXJvIGRpZ2l0cyBoYXZlIHRvCisgICogYmUgZGlzY2FyZGVkIGluIG9yZGVyIHRvIHJlZHVjZSB0aGUgcHJlY2lzaW9uIG9mIGEgcmVzdWx0LgorICAqIFRoZSB2YWx1ZSBtdXN0IGJlIG9uZSBvZiB0aGUgcHVibGljIGNvbnN0YW50cyB3aG9zZSBuYW1lIHN0YXJ0cworICAqIHdpdGggPGNvZGU+Uk9VTkRfPC9jb2RlPi4KKyAgKgorICAqIEBzZWUgI1JPVU5EX0NFSUxJTkcKKyAgKiBAc2VlICNST1VORF9ET1dOCisgICogQHNlZSAjUk9VTkRfRkxPT1IKKyAgKiBAc2VlICNST1VORF9IQUxGX0RPV04KKyAgKiBAc2VlICNST1VORF9IQUxGX0VWRU4KKyAgKiBAc2VlICNST1VORF9IQUxGX1VQCisgICogQHNlZSAjUk9VTkRfVU5ORUNFU1NBUlkKKyAgKiBAc2VlICNST1VORF9VUAorICAqIEBzZXJpYWwKKyAgKi8KKyBpbnQgcm91bmRpbmdNb2RlOworIAorIC8qIHByb3BlcnRpZXMgcHJpdmF0ZSBjb25zdGFudCAqLworIC8vIGRlZmF1bHQgc2V0dGluZ3MKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVGQVVMVF9GT1JNPVNDSUVOVElGSUM7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFRkFVTFRfRElHSVRTPTk7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUZBVUxUX0xPU1RESUdJVFM9ZmFsc2U7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFRkFVTFRfUk9VTkRJTkdNT0RFPVJPVU5EX0hBTEZfVVA7CisgCisgLyogcHJvcGVydGllcyBwcml2YXRlIGNvbnN0YW50ICovCisgCisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1JTl9ESUdJVFM9MDsgLy8gc21hbGxlc3QgdmFsdWUgZm9yIERJR0lUUy4KKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0RJR0lUUz05OTk5OTk5OTk7IC8vIGxhcmdlc3QgdmFsdWUgZm9yIERJR0lUUy4gIElmIGluY3JlYXNlZCwKKyAvLyB0aGUgQmlnRGVjaW1hbCBjbGFzcyBtYXkgbmVlZCB1cGRhdGUuCisgLy8gbGlzdCBvZiB2YWxpZCByb3VuZGluZyBtb2RlIHZhbHVlcywgbW9zdCBjb21tb24gdHdvIGZpcnN0CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFJPVU5EU1tdPW5ldyBpbnRbXXtST1VORF9IQUxGX1VQLFJPVU5EX1VOTkVDRVNTQVJZLFJPVU5EX0NFSUxJTkcsUk9VTkRfRE9XTixST1VORF9GTE9PUixST1VORF9IQUxGX0RPV04sUk9VTkRfSEFMRl9FVkVOLFJPVU5EX1VQfTsKKyAKKyAKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIFJPVU5EV09SRFNbXT1uZXcgamF2YS5sYW5nLlN0cmluZ1tdeyJST1VORF9IQUxGX1VQIiwiUk9VTkRfVU5ORUNFU1NBUlkiLCJST1VORF9DRUlMSU5HIiwiUk9VTkRfRE9XTiIsIlJPVU5EX0ZMT09SIiwiUk9VTkRfSEFMRl9ET1dOIiwiUk9VTkRfSEFMRl9FVkVOIiwiUk9VTkRfVVAifTsgLy8gbWF0Y2hpbmcgbmFtZXMgb2YgdGhlIFJPVU5EUyB2YWx1ZXMKKyAKKyAKKyAKKyAKKyAvKiBwcm9wZXJ0aWVzIHByaXZhdGUgY29uc3RhbnQgdW51c2VkICovCisgCisgLy8gU2VyaWFsaXphdGlvbiB2ZXJzaW9uCisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEPTcxNjMzNzY5OTg4OTI1MTUzNzZMOworIAorIC8qIHByb3BlcnRpZXMgcHVibGljIGNvbnN0YW50ICovCisgLyoqCisgICogQSA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gb2JqZWN0IGluaXRpYWxpemVkIHRvIHRoZSBkZWZhdWx0CisgICogc2V0dGluZ3MgZm9yIGdlbmVyYWwtcHVycG9zZSBhcml0aG1ldGljLiAgVGhhdCBpcywKKyAgKiA8Y29kZT5kaWdpdHM9OSBmb3JtPVNDSUVOVElGSUMgbG9zdERpZ2l0cz1mYWxzZQorICAqIHJvdW5kaW5nTW9kZT1ST1VORF9IQUxGX1VQPC9jb2RlPi4KKyAgKgorICAqIEBzZWUgI1NDSUVOVElGSUMKKyAgKiBAc2VlICNST1VORF9IQUxGX1VQCisgICovCisgcHVibGljIHN0YXRpYyBmaW5hbCBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IERFRkFVTFQ9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoREVGQVVMVF9ESUdJVFMsREVGQVVMVF9GT1JNLERFRkFVTFRfTE9TVERJR0lUUyxERUZBVUxUX1JPVU5ESU5HTU9ERSk7CisKKyAKKyAKKyAKKyAvKiAtLS0tLSBDb25zdHJ1Y3RvcnMgLS0tLS0gKi8KKyAKKyAvKioKKyAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiB3aXRoIGEgc3BlY2lmaWVkCisgICogcHJlY2lzaW9uLgorICAqIFRoZSBvdGhlciBzZXR0aW5ncyBhcmUgc2V0IHRvIHRoZSBkZWZhdWx0IHZhbHVlcworICAqIChzZWUge0BsaW5rICNERUZBVUxUfSkuCisgICoKKyAgKiBBbiA8Y29kZT5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L2NvZGU+IGlzIHRocm93biBpZiB0aGUKKyAgKiA8Y29kZT5zZXRkaWdpdHM8L2NvZGU+IHBhcmFtZXRlciBpcyBvdXQgb2YgcmFuZ2UKKyAgKiAoJmx0OzAgb3IgJmd0Ozk5OTk5OTk5OSkuCisgICoKKyAgKiBAcGFyYW0gc2V0ZGlnaXRzICAgICBUaGUgPGNvZGU+aW50PC9jb2RlPiBkaWdpdHMgc2V0dGluZworICAqICAgICAgICAgICAgICAgICAgICAgIGZvciB0aGlzIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPi4KKyAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBwYXJhbWV0ZXIgb3V0IG9mIHJhbmdlLgorICAqLworIAorIHB1YmxpYyBNYXRoQ29udGV4dChpbnQgc2V0ZGlnaXRzKXsKKyAgdGhpcyhzZXRkaWdpdHMsREVGQVVMVF9GT1JNLERFRkFVTFRfTE9TVERJR0lUUyxERUZBVUxUX1JPVU5ESU5HTU9ERSk7CisgIHJldHVybjt9CisKKyAKKyAvKioKKyAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiB3aXRoIGEgc3BlY2lmaWVkCisgICogcHJlY2lzaW9uIGFuZCBmb3JtLgorICAqIFRoZSBvdGhlciBzZXR0aW5ncyBhcmUgc2V0IHRvIHRoZSBkZWZhdWx0IHZhbHVlcworICAqIChzZWUge0BsaW5rICNERUZBVUxUfSkuCisgICoKKyAgKiBBbiA8Y29kZT5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L2NvZGU+IGlzIHRocm93biBpZiB0aGUKKyAgKiA8Y29kZT5zZXRkaWdpdHM8L2NvZGU+IHBhcmFtZXRlciBpcyBvdXQgb2YgcmFuZ2UKKyAgKiAoJmx0OzAgb3IgJmd0Ozk5OTk5OTk5OSksIG9yIGlmIHRoZSB2YWx1ZSBnaXZlbiBmb3IgdGhlCisgICogPGNvZGU+c2V0Zm9ybTwvY29kZT4gcGFyYW1ldGVyIGlzIG5vdCBvbmUgb2YgdGhlIGFwcHJvcHJpYXRlCisgICogY29uc3RhbnRzLgorICAqCisgICogQHBhcmFtIHNldGRpZ2l0cyAgICAgVGhlIDxjb2RlPmludDwvY29kZT4gZGlnaXRzIHNldHRpbmcKKyAgKiAgICAgICAgICAgICAgICAgICAgICBmb3IgdGhpcyA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4uCisgICogQHBhcmFtIHNldGZvcm0gICAgICAgVGhlIDxjb2RlPmludDwvY29kZT4gZm9ybSBzZXR0aW5nCisgICogICAgICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+LgorICAqIEB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHBhcmFtZXRlciBvdXQgb2YgcmFuZ2UuCisgICovCisgCisgcHVibGljIE1hdGhDb250ZXh0KGludCBzZXRkaWdpdHMsaW50IHNldGZvcm0peworICB0aGlzKHNldGRpZ2l0cyxzZXRmb3JtLERFRkFVTFRfTE9TVERJR0lUUyxERUZBVUxUX1JPVU5ESU5HTU9ERSk7CisgIHJldHVybjt9CisKKyAvKioKKyAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiB3aXRoIGEgc3BlY2lmaWVkCisgICogcHJlY2lzaW9uLCBmb3JtLCBhbmQgbG9zdERpZ2l0cyBzZXR0aW5nLgorICAqIFRoZSByb3VuZGluZ01vZGUgc2V0dGluZyBpcyBzZXQgdG8gaXRzIGRlZmF1bHQgdmFsdWUKKyAgKiAoc2VlIHtAbGluayAjREVGQVVMVH0pLgorICAqCisgICogQW4gPGNvZGU+SWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uPC9jb2RlPiBpcyB0aHJvd24gaWYgdGhlCisgICogPGNvZGU+c2V0ZGlnaXRzPC9jb2RlPiBwYXJhbWV0ZXIgaXMgb3V0IG9mIHJhbmdlCisgICogKCZsdDswIG9yICZndDs5OTk5OTk5OTkpLCBvciBpZiB0aGUgdmFsdWUgZ2l2ZW4gZm9yIHRoZQorICAqIDxjb2RlPnNldGZvcm08L2NvZGU+IHBhcmFtZXRlciBpcyBub3Qgb25lIG9mIHRoZSBhcHByb3ByaWF0ZQorICAqIGNvbnN0YW50cy4KKyAgKgorICAqIEBwYXJhbSBzZXRkaWdpdHMgICAgIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IGRpZ2l0cyBzZXR0aW5nCisgICogICAgICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+LgorICAqIEBwYXJhbSBzZXRmb3JtICAgICAgIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IGZvcm0gc2V0dGluZworICAqICAgICAgICAgICAgICAgICAgICAgIGZvciB0aGlzIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPi4KKyAgKiBAcGFyYW0gc2V0bG9zdGRpZ2l0cyBUaGUgPGNvZGU+Ym9vbGVhbjwvY29kZT4gbG9zdERpZ2l0cworICAqICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmcgZm9yIHRoaXMgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+LgorICAqIEB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHBhcmFtZXRlciBvdXQgb2YgcmFuZ2UuCisgICovCisgCisgcHVibGljIE1hdGhDb250ZXh0KGludCBzZXRkaWdpdHMsaW50IHNldGZvcm0sYm9vbGVhbiBzZXRsb3N0ZGlnaXRzKXsKKyAgdGhpcyhzZXRkaWdpdHMsc2V0Zm9ybSxzZXRsb3N0ZGlnaXRzLERFRkFVTFRfUk9VTkRJTkdNT0RFKTsKKyAgcmV0dXJuO30KKworIC8qKgorICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IHdpdGggYSBzcGVjaWZpZWQKKyAgKiBwcmVjaXNpb24sIGZvcm0sIGxvc3REaWdpdHMsIGFuZCByb3VuZGluZ01vZGUgc2V0dGluZy4KKyAgKgorICAqIEFuIDxjb2RlPklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjwvY29kZT4gaXMgdGhyb3duIGlmIHRoZQorICAqIDxjb2RlPnNldGRpZ2l0czwvY29kZT4gcGFyYW1ldGVyIGlzIG91dCBvZiByYW5nZQorICAqICgmbHQ7MCBvciAmZ3Q7OTk5OTk5OTk5KSwgb3IgaWYgdGhlIHZhbHVlIGdpdmVuIGZvciB0aGUKKyAgKiA8Y29kZT5zZXRmb3JtPC9jb2RlPiBvciA8Y29kZT5zZXRyb3VuZGluZ21vZGU8L2NvZGU+IHBhcmFtZXRlcnMgaXMKKyAgKiBub3Qgb25lIG9mIHRoZSBhcHByb3ByaWF0ZSBjb25zdGFudHMuCisgICoKKyAgKiBAcGFyYW0gc2V0ZGlnaXRzICAgICAgIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IGRpZ2l0cyBzZXR0aW5nCisgICogICAgICAgICAgICAgICAgICAgICAgICBmb3IgdGhpcyA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4uCisgICogQHBhcmFtIHNldGZvcm0gICAgICAgICBUaGUgPGNvZGU+aW50PC9jb2RlPiBmb3JtIHNldHRpbmcKKyAgKiAgICAgICAgICAgICAgICAgICAgICAgIGZvciB0aGlzIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPi4KKyAgKiBAcGFyYW0gc2V0bG9zdGRpZ2l0cyAgIFRoZSA8Y29kZT5ib29sZWFuPC9jb2RlPiBsb3N0RGlnaXRzCisgICogICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nIGZvciB0aGlzIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPi4KKyAgKiBAcGFyYW0gc2V0cm91bmRpbmdtb2RlIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IHJvdW5kaW5nTW9kZSBzZXR0aW5nCisgICogICAgICAgICAgICAgICAgICAgICAgICBmb3IgdGhpcyA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4uCisgICogQHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gcGFyYW1ldGVyIG91dCBvZiByYW5nZS4KKyAgKi8KKyAKKyBwdWJsaWMgTWF0aENvbnRleHQoaW50IHNldGRpZ2l0cyxpbnQgc2V0Zm9ybSxib29sZWFuIHNldGxvc3RkaWdpdHMsaW50IHNldHJvdW5kaW5nbW9kZSl7c3VwZXIoKTsKKyAgCisgIAorICAvLyBzZXQgdmFsdWVzLCBhZnRlciBjaGVja2luZworICBpZiAoc2V0ZGlnaXRzIT1ERUZBVUxUX0RJR0lUUykgCisgICB7CisgICAgaWYgKHNldGRpZ2l0czxNSU5fRElHSVRTKSAKKyAgICAgdGhyb3cgbmV3IGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkRpZ2l0cyB0b28gc21hbGw6IisiICIrc2V0ZGlnaXRzKTsKKyAgICBpZiAoc2V0ZGlnaXRzPk1BWF9ESUdJVFMpIAorICAgICB0aHJvdyBuZXcgamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiRGlnaXRzIHRvbyBsYXJnZToiKyIgIitzZXRkaWdpdHMpOworICAgfQorICB7LypzZWxlY3QqLworICBpZiAoc2V0Zm9ybT09U0NJRU5USUZJQykKKyAgIDsgLy8gW21vc3QgY29tbW9uXQorICBlbHNlIGlmIChzZXRmb3JtPT1FTkdJTkVFUklORykKKyAgIDsKKyAgZWxzZSBpZiAoc2V0Zm9ybT09UExBSU4pCisgICA7CisgIGVsc2V7CisgICB0aHJvdyBuZXcgamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQmFkIGZvcm0gdmFsdWU6IisiICIrc2V0Zm9ybSk7CisgIH0KKyAgfQorICBpZiAoKCEoaXNWYWxpZFJvdW5kKHNldHJvdW5kaW5nbW9kZSkpKSkgCisgICB0aHJvdyBuZXcgamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQmFkIHJvdW5kaW5nTW9kZSB2YWx1ZToiKyIgIitzZXRyb3VuZGluZ21vZGUpOworICBkaWdpdHM9c2V0ZGlnaXRzOworICBmb3JtPXNldGZvcm07CisgIGxvc3REaWdpdHM9c2V0bG9zdGRpZ2l0czsgLy8gW25vIGJhZCB2YWx1ZSBwb3NzaWJsZV0KKyAgcm91bmRpbmdNb2RlPXNldHJvdW5kaW5nbW9kZTsKKyAgcmV0dXJuO30KKworIC8qKgorICAqIFJldHVybnMgdGhlIGRpZ2l0cyBzZXR0aW5nLgorICAqIFRoaXMgdmFsdWUgaXMgYWx3YXlzIG5vbi1uZWdhdGl2ZS4KKyAgKgorICAqIEByZXR1cm4gYW4gPGNvZGU+aW50PC9jb2RlPiB3aGljaCBpcyB0aGUgdmFsdWUgb2YgdGhlIGRpZ2l0cworICAqICAgICAgICAgc2V0dGluZworICAqLworIAorIHB1YmxpYyBpbnQgZ2V0RGlnaXRzKCl7CisgIHJldHVybiBkaWdpdHM7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgdGhlIGZvcm0gc2V0dGluZy4KKyAgKiBUaGlzIHdpbGwgYmUgb25lIG9mCisgICoge0BsaW5rICNFTkdJTkVFUklOR30sCisgICoge0BsaW5rICNQTEFJTn0sIG9yCisgICoge0BsaW5rICNTQ0lFTlRJRklDfS4KKyAgKgorICAqIEByZXR1cm4gYW4gPGNvZGU+aW50PC9jb2RlPiB3aGljaCBpcyB0aGUgdmFsdWUgb2YgdGhlIGZvcm0gc2V0dGluZworICAqLworIAorIHB1YmxpYyBpbnQgZ2V0Rm9ybSgpeworICByZXR1cm4gZm9ybTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyB0aGUgbG9zdERpZ2l0cyBzZXR0aW5nLgorICAqIFRoaXMgd2lsbCBiZSBlaXRoZXIgPGNvZGU+dHJ1ZTwvY29kZT4gKGVuYWJsZWQpIG9yCisgICogPGNvZGU+ZmFsc2U8L2NvZGU+IChkaXNhYmxlZCkuCisgICoKKyAgKiBAcmV0dXJuIGEgPGNvZGU+Ym9vbGVhbjwvY29kZT4gd2hpY2ggaXMgdGhlIHZhbHVlIG9mIHRoZSBsb3N0RGlnaXRzCisgICogICAgICAgICAgIHNldHRpbmcKKyAgKi8KKyAKKyBwdWJsaWMgYm9vbGVhbiBnZXRMb3N0RGlnaXRzKCl7CisgIHJldHVybiBsb3N0RGlnaXRzOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIHRoZSByb3VuZGluZ01vZGUgc2V0dGluZy4KKyAgKiBUaGlzIHdpbGwgYmUgb25lIG9mCisgICoge0BsaW5rICAjUk9VTkRfQ0VJTElOR30sCisgICoge0BsaW5rICAjUk9VTkRfRE9XTn0sCisgICoge0BsaW5rICAjUk9VTkRfRkxPT1J9LAorICAqIHtAbGluayAgI1JPVU5EX0hBTEZfRE9XTn0sCisgICoge0BsaW5rICAjUk9VTkRfSEFMRl9FVkVOfSwKKyAgKiB7QGxpbmsgICNST1VORF9IQUxGX1VQfSwKKyAgKiB7QGxpbmsgICNST1VORF9VTk5FQ0VTU0FSWX0sIG9yCisgICoge0BsaW5rICAjUk9VTkRfVVB9LgorICAqCisgICogQHJldHVybiBhbiA8Y29kZT5pbnQ8L2NvZGU+IHdoaWNoIGlzIHRoZSB2YWx1ZSBvZiB0aGUgcm91bmRpbmdNb2RlCisgICogICAgICAgICBzZXR0aW5nCisgICovCisgCisgcHVibGljIGludCBnZXRSb3VuZGluZ01vZGUoKXsKKyAgcmV0dXJuIHJvdW5kaW5nTW9kZTsKKyAgfQorCisgLyoqIFJldHVybnMgdGhlIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBhcyBhIHJlYWRhYmxlIHN0cmluZy4KKyAgKiBUaGUgPGNvZGU+U3RyaW5nPC9jb2RlPiByZXR1cm5lZCByZXByZXNlbnRzIHRoZSBzZXR0aW5ncyBvZiB0aGUKKyAgKiA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gb2JqZWN0IGFzIGZvdXIgYmxhbmstZGVsaW1pdGVkIHdvcmRzCisgICogc2VwYXJhdGVkIGJ5IGEgc2luZ2xlIGJsYW5rIGFuZCB3aXRoIG5vIGxlYWRpbmcgb3IgdHJhaWxpbmcgYmxhbmtzLAorICAqIGFzIGZvbGxvd3M6CisgICogPG9sPgorICAqIDxsaT4KKyAgKiA8Y29kZT5kaWdpdHM9PC9jb2RlPiwgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkKKyAgKiB0aGUgdmFsdWUgb2YgdGhlIGRpZ2l0cyBzZXR0aW5nIGFzIGEgbnVtZXJpYyB3b3JkLgorICAqIDxsaT4KKyAgKiA8Y29kZT5mb3JtPTwvY29kZT4sIGltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5CisgICogdGhlIHZhbHVlIG9mIHRoZSBmb3JtIHNldHRpbmcgYXMgYW4gdXBwZXJjYXNlIHdvcmQKKyAgKiAob25lIG9mIDxjb2RlPlNDSUVOVElGSUM8L2NvZGU+LCA8Y29kZT5QTEFJTjwvY29kZT4sIG9yCisgICogPGNvZGU+RU5HSU5FRVJJTkc8L2NvZGU+KS4KKyAgKiA8bGk+CisgICogPGNvZGU+bG9zdERpZ2l0cz08L2NvZGU+LCBpbW1lZGlhdGVseSBmb2xsb3dlZCBieQorICAqIHRoZSB2YWx1ZSBvZiB0aGUgbG9zdERpZ2l0cyBzZXR0aW5nCisgICogKDxjb2RlPjE8L2NvZGU+IGlmIGVuYWJsZWQsIDxjb2RlPjA8L2NvZGU+IGlmIGRpc2FibGVkKS4KKyAgKiA8bGk+CisgICogPGNvZGU+cm91bmRpbmdNb2RlPTwvY29kZT4sIGltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5CisgICogdGhlIHZhbHVlIG9mIHRoZSByb3VuZGluZ01vZGUgc2V0dGluZyBhcyBhIHdvcmQuCisgICogVGhpcyB3b3JkIHdpbGwgYmUgdGhlIHNhbWUgYXMgdGhlIG5hbWUgb2YgdGhlIGNvcnJlc3BvbmRpbmcgcHVibGljCisgICogY29uc3RhbnQuCisgICogPC9vbD4KKyAgKiA8cD4KKyAgKiBGb3IgZXhhbXBsZToKKyAgKiA8YnI+PGNvZGU+CisgICogZGlnaXRzPTkgZm9ybT1TQ0lFTlRJRklDIGxvc3REaWdpdHM9MCByb3VuZGluZ01vZGU9Uk9VTkRfSEFMRl9VUAorICAqIDwvY29kZT4KKyAgKiA8cD4KKyAgKiBBZGRpdGlvbmFsIHdvcmRzIG1heSBiZSBhcHBlbmRlZCB0byB0aGUgcmVzdWx0IG9mCisgICogPGNvZGU+dG9TdHJpbmc8L2NvZGU+IGluIHRoZSBmdXR1cmUgaWYgbW9yZSBwcm9wZXJ0aWVzIGFyZSBhZGRlZAorICAqIHRvIHRoZSBjbGFzcy4KKyAgKgorICAqIEByZXR1cm4gYSA8Y29kZT5TdHJpbmc8L2NvZGU+IHJlcHJlc2VudGluZyB0aGUgY29udGV4dCBzZXR0aW5ncy4KKyAgKi8KKyAKKyBwdWJsaWMgamF2YS5sYW5nLlN0cmluZyB0b1N0cmluZygpeworICBqYXZhLmxhbmcuU3RyaW5nIGZvcm1zdHI9bnVsbDsKKyAgaW50IHI9MDsKKyAgamF2YS5sYW5nLlN0cmluZyByb3VuZHdvcmQ9bnVsbDsKKyAgey8qc2VsZWN0Ki8KKyAgaWYgKGZvcm09PVNDSUVOVElGSUMpCisgICBmb3Jtc3RyPSJTQ0lFTlRJRklDIjsKKyAgZWxzZSBpZiAoZm9ybT09RU5HSU5FRVJJTkcpCisgICBmb3Jtc3RyPSJFTkdJTkVFUklORyI7CisgIGVsc2V7CisgICBmb3Jtc3RyPSJQTEFJTiI7LyogZm9ybT1QTEFJTiAqLworICB9CisgIH0KKyAge2ludCAkMT1ST1VORFMubGVuZ3RoO3I9MDtyOmZvcig7JDE+MDskMS0tLHIrKyl7CisgICBpZiAocm91bmRpbmdNb2RlPT1ST1VORFNbcl0pIAorICAgIHsKKyAgICAgcm91bmR3b3JkPVJPVU5EV09SRFNbcl07CisgICAgIGJyZWFrIHI7CisgICAgfQorICAgfQorICB9LypyKi8KKyAgcmV0dXJuICJkaWdpdHM9IitkaWdpdHMrIiAiKyJmb3JtPSIrZm9ybXN0cisiICIrImxvc3REaWdpdHM9IisobG9zdERpZ2l0cz8iMSI6IjAiKSsiICIrInJvdW5kaW5nTW9kZT0iK3JvdW5kd29yZDsKKyAgfQorCisgCisgLyogPHNnbWw+IFRlc3Qgd2hldGhlciByb3VuZCBpcyB2YWxpZC4gPC9zZ21sPiAqLworIC8vIFRoaXMgY291bGQgYmUgbWFkZSBzaGFyZWQgZm9yIHVzZSBieSBCaWdEZWNpbWFsIGZvciBzZXRTY2FsZS4KKyAKKyBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzVmFsaWRSb3VuZChpbnQgdGVzdHJvdW5kKXsKKyAgaW50IHI9MDsKKyAge2ludCAkMj1ST1VORFMubGVuZ3RoO3I9MDtyOmZvcig7JDI+MDskMi0tLHIrKyl7CisgICBpZiAodGVzdHJvdW5kPT1ST1VORFNbcl0pIAorICAgIHJldHVybiB0cnVlOworICAgfQorICB9LypyKi8KKyAgcmV0dXJuIGZhbHNlOworICB9CisgfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L21hdGgvcGFja2FnZS5odG1sIGIvc3JjL2NvbS9pYm0vaWN1L21hdGgvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFkYjY2MzkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvbWF0aC9wYWNrYWdlLmh0bWwKQEAgLTAsMCArMSwxOSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMiBGaW5hbC8vRU4iPgorPGh0bWw+CisKKzxoZWFkPjwhLS0gIENvcHlyaWdodCAoQykgMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisgICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9tYXRoL3BhY2thZ2UuaHRtbCx2ICQKKyAgJFJldmlzaW9uOiAxLjEgJAorICAkRGF0ZTogMjAwMC8wNC8wNSAxODowNToxMSAkCistLT4KKworPHRpdGxlPkM6XGN2c1xpY3U0alxzcmNcY29tXGlibVxkZW1vXHBhY2thZ2UuaHRtbDwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5IGJnY29sb3I9IndoaXRlIj4KKworPHA+SUJNIEJpZ0RlY2ltYWwgc3VwcG9ydC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9BbnlUcmFuc2xpdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQW55VHJhbnNsaXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjc0M2RkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQW55VHJhbnNsaXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDMzOCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbgorKiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS90ZXh0L0FueVRyYW5zbGl0ZXJhdG9yLmphdmEsdiAkIAorKiAkUmV2aXNpb246IDEuMSAkCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAwNi8wNi8yMDAyICBhbGl1ICAgICAgICBDcmVhdGlvbi4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVNjcmlwdDsKK2ltcG9ydCBqYXZhLmxhbmcuTWF0aDsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CitpbXBvcnQgamF2YS51dGlsLkhhc2hTZXQ7CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKKworLyoqCisgKiBBIHRyYW5zbGl0ZXJhdG9yIHRoYXQgdHJhbnNsYXRlcyBtdWx0aXBsZSBpbnB1dCBzY3JpcHRzIHRvIGEgc2luZ2xlCisgKiBvdXRwdXQgc2NyaXB0LiAgSXQgaXMgbmFtZWQgQW55LVQgb3IgQW55LVQvViwgd2hlcmUgVCBpcyB0aGUgdGFyZ2V0CisgKiBhbmQgViBpcyB0aGUgb3B0aW9uYWwgdmFyaWFudC4gIFRoZSB0YXJnZXQgVCBpcyBhIHNjcmlwdC4KKyAqIAorICogPHA+QW4gQW55VHJhbnNsaXRlcmF0b3IgcGFydGl0aW9ucyB0ZXh0IGludG8gcnVucyBvZiB0aGUgc2FtZQorICogc2NyaXB0LCB0b2dldGhlciB3aXRoIGFkamFjZW50IENPTU1PTiBvciBJTkhFUklURUQgY2hhcmFjdGVycy4KKyAqIEFmdGVyIGRldGVybWluaW5nIHRoZSBzY3JpcHQgb2YgZWFjaCBydW4sIGl0IHRyYW5zbGl0ZXJhdGVzIGZyb20KKyAqIHRoYXQgc2NyaXB0IHRvIHRoZSBnaXZlbiB0YXJnZXQvdmFyaWFudC4gIEl0IGRvZXMgc28gYnkKKyAqIGluc3RhbnRpYXRpbmcgYSB0cmFuc2xpdGVyYXRvciBmcm9tIHRoZSBzb3VyY2Ugc2NyaXB0IHRvIHRoZQorICogdGFyZ2V0L3ZhcmlhbnQuICBJZiBhIHJ1biBjb25zaXN0cyBvbmx5IG9mIHRoZSB0YXJnZXQgc2NyaXB0LAorICogQ09NTU9OLCBvciBJTkhFUklURUQgY2hhcmFjdGVycywgdGhlbiB0aGUgcnVuIGlzIG5vdCBjaGFuZ2VkLgorICoKKyAqIDxwPkF0IHN0YXJ0dXAsIGFsbCBwb3NzaWJsZSBBbnlUcmFuc2xpdGVyYXRvcnMgYXJlIHJlZ2lzdGVyZWQgd2l0aAorICogdGhlIHN5c3RlbSwgYXMgZGV0ZXJtaW5lZCBieSBleGFtaW5pbmcgdGhlIHJlZ2lzdGVyZWQgc2NyaXB0CisgKiB0cmFuc2xpdGVyYXRvcnMuCisgKiAKKyAqIEBzaW5jZSBJQ1UgMi4yCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKi8KK2NsYXNzIEFueVRyYW5zbGl0ZXJhdG9yIGV4dGVuZHMgVHJhbnNsaXRlcmF0b3IgeworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBDb25zdGFudHMKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgY2hhciBUQVJHRVRfU0VQID0gJy0nOworICAgIHN0YXRpYyBmaW5hbCBjaGFyIFZBUklBTlRfU0VQID0gJy8nOworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQU5ZID0gIkFueSI7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBOVUxMX0lEID0gIk51bGwiOworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgTEFUSU5fUElWT1QgPSAiLUxhdGluO0xhdGluLSI7CisgICAgCisgICAgLyoqCisgICAgICogQ2FjaGUgbWFwcGluZyBVU2NyaXB0Q29kZSB2YWx1ZXMgdG8gVHJhbnNsaXRlcmF0b3IqLgorICAgICAqLworICAgIHByaXZhdGUgTWFwIGNhY2hlOworCisgICAgLyoqCisgICAgICogVGhlIHRhcmdldCBvciB0YXJnZXQvdmFyaWFudCBzdHJpbmcuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgdGFyZ2V0OworCisgICAgLyoqCisgICAgICogVGhlIHRhcmdldCBzY3JpcHQgY29kZS4gIE5ldmVyIFVTQ1JJUFRfSU5WQUxJRF9DT0RFLgorICAgICAqLworICAgIHByaXZhdGUgaW50IHRhcmdldFNjcmlwdDsKKworICAgIC8qKgorICAgICAqIEltcGxlbWVudHMge0BsaW5rIFRyYW5zbGl0ZXJhdG9yI2hhbmRsZVRyYW5zbGl0ZXJhdGV9LgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvc2l0aW9uIHBvcywgYm9vbGVhbiBpc0luY3JlbWVudGFsKSB7CisgICAgICAgIGludCBhbGxTdGFydCA9IHBvcy5zdGFydDsKKyAgICAgICAgaW50IGFsbExpbWl0ID0gcG9zLmxpbWl0OworCisgICAgICAgIFNjcmlwdFJ1bkl0ZXJhdG9yIGl0ID0KKyAgICAgICAgICAgIG5ldyBTY3JpcHRSdW5JdGVyYXRvcih0ZXh0LCBwb3MuY29udGV4dFN0YXJ0LCBwb3MuY29udGV4dExpbWl0KTsKKworICAgICAgICB3aGlsZSAoaXQubmV4dCgpKSB7CisgICAgICAgICAgICAvLyBJZ25vcmUgcnVucyBpbiB0aGUgYW50ZSBjb250ZXh0CisgICAgICAgICAgICBpZiAoaXQubGltaXQgPD0gYWxsU3RhcnQpIGNvbnRpbnVlOworCisgICAgICAgICAgICAvLyBUcnkgdG8gaW5zdGFudGlhdGUgdHJhbnNsaXRlcmF0b3IgZnJvbSBpdC5zY3JpcHRDb2RlIHRvCisgICAgICAgICAgICAvLyBvdXIgdGFyZ2V0IG9yIHRhcmdldC92YXJpYW50CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gZ2V0VHJhbnNsaXRlcmF0b3IoaXQuc2NyaXB0Q29kZSk7CisKKyAgICAgICAgICAgIGlmICh0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAvLyBXZSBoYXZlIG5vIHRyYW5zbGl0ZXJhdG9yLiAgRG8gbm90aGluZywgYnV0IGtlZXAKKyAgICAgICAgICAgICAgICAvLyBwb3Muc3RhcnQgdXAgdG8gZGF0ZS4KKyAgICAgICAgICAgICAgICBwb3Muc3RhcnQgPSBpdC5saW1pdDsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gSWYgdGhlIHJ1biBlbmQgaXMgYmVmb3JlIHRoZSB0cmFuc2xpdGVyYXRpb24gbGltaXQsIGRvCisgICAgICAgICAgICAvLyBhIG5vbi1pbmNyZW1lbnRhbCB0cmFuc2xpdGVyYXRpb24uICBPdGhlcndpc2UgZG8gYW4KKyAgICAgICAgICAgIC8vIGluY3JlbWVudGFsIG9uZS4KKyAgICAgICAgICAgIGJvb2xlYW4gaW5jcmVtZW50YWwgPSBpc0luY3JlbWVudGFsICYmIChpdC5saW1pdCA+PSBhbGxMaW1pdCk7CisKKyAgICAgICAgICAgIHBvcy5zdGFydCA9IE1hdGgubWF4KGFsbFN0YXJ0LCBpdC5zdGFydCk7CisgICAgICAgICAgICBwb3MubGltaXQgPSBNYXRoLm1pbihhbGxMaW1pdCwgaXQubGltaXQpOworICAgICAgICAgICAgaW50IGxpbWl0ID0gcG9zLmxpbWl0OworICAgICAgICAgICAgdC5maWx0ZXJlZFRyYW5zbGl0ZXJhdGUodGV4dCwgcG9zLCBpbmNyZW1lbnRhbCk7CisgICAgICAgICAgICBpbnQgZGVsdGEgPSBwb3MubGltaXQgLSBsaW1pdDsKKyAgICAgICAgICAgIGFsbExpbWl0ICs9IGRlbHRhOworICAgICAgICAgICAgaXQuYWRqdXN0TGltaXQoZGVsdGEpOworCisgICAgICAgICAgICAvLyBXZSdyZSBkb25lIGlmIHdlIGVudGVyIHRoZSBwb3N0IGNvbnRleHQKKyAgICAgICAgICAgIGlmIChpdC5saW1pdCA+PSBhbGxMaW1pdCkgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICAvLyBSZXN0b3JlIGxpbWl0LiAgcG9zLnN0YXJ0IGlzIGZpbmUgd2hlcmUgdGhlIGxhc3QgdHJhbnNsaXRlcmF0b3IKKyAgICAgICAgLy8gbGVmdCBpdCwgb3IgYXQgdGhlIGVuZCBvZiB0aGUgbGFzdCBydW4uCisgICAgICAgIHBvcy5saW1pdCA9IGFsbExpbWl0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFByaXZhdGUgY29uc3RydWN0b3IKKyAgICAgKiBAcGFyYW0gaWQgdGhlIElEIG9mIHRoZSBmb3JtIFMtVCBvciBTLVQvViwgd2hlcmUgVCBpcyB0aGVUYXJnZXQKKyAgICAgKiBhbmQgViBpcyB0aGVWYXJpYW50LiAgTXVzdCBub3QgYmUgZW1wdHkuCisgICAgICogQHBhcmFtIHRoZVRhcmdldCB0aGUgdGFyZ2V0IG5hbWUuICBNdXN0IG5vdCBiZSBlbXB0eSwgYW5kIG11c3QKKyAgICAgKiBuYW1lIGEgc2NyaXB0IGNvcnJlc3BvbmRpbmcgdG8gdGhlVGFyZ2V0U2NyaXB0LgorICAgICAqIEBwYXJhbSB0aGVWYXJpYW50IHRoZSB2YXJpYW50IG5hbWUsIG9yIHRoZSBlbXB0eSBzdHJpbmcgaWYKKyAgICAgKiB0aGVyZSBpcyBubyB2YXJpYW50CisgICAgICogQHBhcmFtIHRoZVRhcmdldFNjcmlwdCB0aGUgc2NyaXB0IGNvZGUgY29ycmVzcG9uZGluZyB0bworICAgICAqIHRoZVRhcmdldC4KKyAgICAgKiBAcGFyYW0gZWMgZXJyb3IgY29kZSwgZmFpbHMgaWYgdGhlIGludGVybmFsIGhhc2h0YWJsZSBjYW5ub3QgYmUKKyAgICAgKiBhbGxvY2F0ZWQKKyAgICAgKi8KKyAgICBwcml2YXRlIEFueVRyYW5zbGl0ZXJhdG9yKFN0cmluZyBpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0aGVUYXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGhlVmFyaWFudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0aGVUYXJnZXRTY3JpcHQpIHsKKyAgICAgICAgc3VwZXIoaWQsIG51bGwpOworICAgICAgICB0YXJnZXRTY3JpcHQgPSB0aGVUYXJnZXRTY3JpcHQ7CisgICAgICAgIGNhY2hlID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgCisgICAgICAgIHRhcmdldCA9IHRoZVRhcmdldDsKKyAgICAgICAgaWYgKHRoZVZhcmlhbnQubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICB0YXJnZXQgPSB0aGVUYXJnZXQgKyBWQVJJQU5UX1NFUCArIHRoZVZhcmlhbnQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgdHJhbnNsaXRlcmF0b3IgZnJvbSB0aGUgZ2l2ZW4gc291cmNlIHRvIG91ciB0YXJnZXQgb3IKKyAgICAgKiB0YXJnZXQvdmFyaWFudC4gIFJldHVybnMgTlVMTCBpZiB0aGUgc291cmNlIGlzIHRoZSBzYW1lIGFzIG91cgorICAgICAqIHRhcmdldCBzY3JpcHQsIG9yIGlmIHRoZSBzb3VyY2UgaXMgVVNDUklQVF9JTlZBTElEX0NPREUuCisgICAgICogQ2FjaGVzIHRoZSByZXN1bHQgYW5kIHJldHVybnMgdGhlIHNhbWUgdHJhbnNsaXRlcmF0b3IgdGhlIG5leHQKKyAgICAgKiB0aW1lLiAgVGhlIGNhbGxlciBkb2VzIE5PVCBvd24gdGhlIHJlc3VsdCBhbmQgbXVzdCBub3QgZGVsZXRlCisgICAgICogaXQuCisgICAgICovCisgICAgcHJpdmF0ZSBUcmFuc2xpdGVyYXRvciBnZXRUcmFuc2xpdGVyYXRvcihpbnQgc291cmNlKSB7CisgICAgICAgIGlmIChzb3VyY2UgPT0gdGFyZ2V0U2NyaXB0IHx8IHNvdXJjZSA9PSBVU2NyaXB0LklOVkFMSURfQ09ERSkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICBJbnRlZ2VyIGtleSA9IG5ldyBJbnRlZ2VyKHNvdXJjZSk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSAoVHJhbnNsaXRlcmF0b3IpIGNhY2hlLmdldChrZXkpOworICAgICAgICBpZiAodCA9PSBudWxsKSB7CisgICAgICAgICAgICBTdHJpbmcgc291cmNlTmFtZSA9IFVTY3JpcHQuZ2V0TmFtZShzb3VyY2UpOworICAgICAgICAgICAgU3RyaW5nIGlkID0gc291cmNlTmFtZSArIFRBUkdFVF9TRVAgKyB0YXJnZXQ7CisgICAgICAgIAorICAgICAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKGlkLCBGT1JXQVJEKTsKKyAgICAgICAgICAgIGlmICh0ID09IG51bGwpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIFRyeSB0byBwaXZvdCBhcm91bmQgTGF0aW4sIG91ciBtb3N0IGNvbW1vbiBzY3JpcHQKKyAgICAgICAgICAgICAgICBpZCA9IHNvdXJjZU5hbWUgKyBMQVRJTl9QSVZPVCArIHRhcmdldDsKKyAgICAgICAgICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoaWQsIEZPUldBUkQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAodCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgY2FjaGUucHV0KGtleSwgdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlcnMgc3RhbmRhcmQgdHJhbnNsaXRlcmF0b3JzIHdpdGggdGhlIHN5c3RlbS4gIENhbGxlZCBieQorICAgICAqIFRyYW5zbGl0ZXJhdG9yIGR1cmluZyBpbml0aWFsaXphdGlvbi4gIFNjYW4gYWxsIGN1cnJlbnQgdGFyZ2V0cworICAgICAqIGFuZCByZWdpc3RlciB0aG9zZSB0aGF0IGFyZSBzY3JpcHRzIFQgYXMgQW55LVQvVi4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCByZWdpc3RlcigpIHsKKworICAgICAgICBIYXNoU2V0IHNlZW4gPSBuZXcgSGFzaFNldCgpOworCisgICAgICAgIGZvciAoRW51bWVyYXRpb24gcz1UcmFuc2xpdGVyYXRvci5nZXRBdmFpbGFibGVTb3VyY2VzKCk7IHMuaGFzTW9yZUVsZW1lbnRzKCk7ICkgeworICAgICAgICAgICAgU3RyaW5nIHNvdXJjZSA9IChTdHJpbmcpIHMubmV4dEVsZW1lbnQoKTsKKworICAgICAgICAgICAgLy8gSWdub3JlIHRoZSAiQW55IiBzb3VyY2UKKyAgICAgICAgICAgIGlmIChzb3VyY2UuZXF1YWxzSWdub3JlQ2FzZShBTlkpKSBjb250aW51ZTsKKworICAgICAgICAgICAgZm9yIChFbnVtZXJhdGlvbiB0PVRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZVRhcmdldHMoc291cmNlKTsKKyAgICAgICAgICAgICAgICAgdC5oYXNNb3JlRWxlbWVudHMoKTsgKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRhcmdldCA9IChTdHJpbmcpIHQubmV4dEVsZW1lbnQoKTsKKworICAgICAgICAgICAgICAgIC8vIE9ubHkgcHJvY2VzcyBlYWNoIHRhcmdldCBvbmNlCisgICAgICAgICAgICAgICAgaWYgKHNlZW4uY29udGFpbnModGFyZ2V0KSkgY29udGludWU7CisgICAgICAgICAgICAgICAgc2Vlbi5hZGQodGFyZ2V0KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIEdldCB0aGUgc2NyaXB0IGNvZGUgZm9yIHRoZSB0YXJnZXQuICBJZiBub3QgYSBzY3JpcHQsIGlnbm9yZS4KKyAgICAgICAgICAgICAgICBpbnQgdGFyZ2V0U2NyaXB0ID0gc2NyaXB0TmFtZVRvQ29kZSh0YXJnZXQpOworICAgICAgICAgICAgICAgIGlmICh0YXJnZXRTY3JpcHQgPT0gVVNjcmlwdC5JTlZBTElEX0NPREUpIGNvbnRpbnVlOworCisgICAgICAgICAgICAgICAgZm9yIChFbnVtZXJhdGlvbiB2PVRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZVZhcmlhbnRzKHNvdXJjZSwgdGFyZ2V0KTsKKyAgICAgICAgICAgICAgICAgICAgIHYuaGFzTW9yZUVsZW1lbnRzKCk7ICkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFyaWFudCA9IChTdHJpbmcpIHYubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGlkOworICAgICAgICAgICAgICAgICAgICBpZCA9IFRyYW5zbGl0ZXJhdG9ySURQYXJzZXIuU1RWdG9JRChBTlksIHRhcmdldCwgdmFyaWFudCk7CisgICAgICAgICAgICAgICAgICAgIEFueVRyYW5zbGl0ZXJhdG9yIHRyYW5zID0gbmV3IEFueVRyYW5zbGl0ZXJhdG9yKGlkLCB0YXJnZXQsIHZhcmlhbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFNjcmlwdCk7CisgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVySW5zdGFuY2UodHJhbnMpOworICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlclNwZWNpYWxJbnZlcnNlKHRhcmdldCwgTlVMTF9JRCwgZmFsc2UpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgc2NyaXB0IGNvZGUgZm9yIGEgZ2l2ZW4gbmFtZSwgb3IKKyAgICAgKiBVU2NyaXB0LklOVkFMSURfQ09ERSBpZiBub3QgZm91bmQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IHNjcmlwdE5hbWVUb0NvZGUoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgaW50W10gY29kZXMgPSBVU2NyaXB0LmdldENvZGUobmFtZSk7CisgICAgICAgIHJldHVybiBjb2RlcyAhPSBudWxsID8gY29kZXNbMF0gOiBVU2NyaXB0LklOVkFMSURfQ09ERTsKKyAgICB9CisgICAgCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBTY3JpcHRSdW5JdGVyYXRvcgorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHNlcmllcyBvZiByYW5nZXMgY29ycmVzcG9uZGluZyB0byBzY3JpcHRzLiBUaGV5IHdpbGwgYmUKKyAgICAgKiBvZiB0aGUgZm9ybToKKyAgICAgKgorICAgICAqIGNjY2NTU2NTU2NjY2NUVGNUY2NjYyAgIC0gYyA9IGNvbW1vbiwgUyA9IGZpcnN0IHNjcmlwdCwgVCA9IHNlY29uZAorICAgICAqIHwgICAgICAgICAgICB8ICAgICAgICAgIC0gZmlyc3QgcnVuIChzdGFydCwgbGltaXQpCisgICAgICogICAgICAgICAgfCAgICAgICAgICAgfCAgLSBzZWNvbmQgcnVuIChzdGFydCwgbGltaXQpCisgICAgICoKKyAgICAgKiBUaGF0IGlzLCB0aGUgcnVucyB3aWxsIG92ZXJsYXAuIFRoZSByZWFzb24gZm9yIHRoaXMgaXMgc28gdGhhdCBhCisgICAgICogdHJhbnNsaXRlcmF0b3IgY2FuIGNvbnNpZGVyIGNvbW1vbiBjaGFyYWN0ZXJzIGJvdGggYmVmb3JlIGFuZCBhZnRlcgorICAgICAqIHRoZSBzY3JpcHRzLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFNjcmlwdFJ1bkl0ZXJhdG9yIHsKKworICAgICAgICBwcml2YXRlIFJlcGxhY2VhYmxlIHRleHQ7CisgICAgICAgIHByaXZhdGUgaW50IHRleHRTdGFydDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgdGV4dExpbWl0OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgY29kZSBvZiB0aGUgY3VycmVudCBydW4sIHZhbGlkIGFmdGVyIG5leHQoKSByZXR1cm5zLiAgTWF5CisgICAgICAgICAqIGJlIFVTY3JpcHQuSU5WQUxJRF9DT0RFIGlmIGFuZCBvbmx5IGlmIHRoZSBlbnRpcmUgdGV4dCBpcworICAgICAgICAgKiBDT01NT04vSU5IRVJJVEVELgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBzY3JpcHRDb2RlOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgc3RhcnQgb2YgdGhlIHJ1biwgaW5jbHVzaXZlLCB2YWxpZCBhZnRlciBuZXh0KCkgcmV0dXJucy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgc3RhcnQ7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBlbmQgb2YgdGhlIHJ1biwgZXhjbHVzaXZlLCB2YWxpZCBhZnRlciBuZXh0KCkgcmV0dXJucy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgbGltaXQ7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbnN0cnVjdHMgYSBydW4gaXRlcmF0b3Igb3ZlciB0aGUgZ2l2ZW4gdGV4dCBmcm9tIHN0YXJ0CisgICAgICAgICAqIChpbmNsdXNpdmUpIHRvIGxpbWl0IChleGNsdXNpdmUpLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFNjcmlwdFJ1bkl0ZXJhdG9yKFJlcGxhY2VhYmxlIHRleHQsIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisgICAgICAgICAgICB0aGlzLnRleHQgPSB0ZXh0OworICAgICAgICAgICAgdGhpcy50ZXh0U3RhcnQgPSBzdGFydDsKKyAgICAgICAgICAgIHRoaXMudGV4dExpbWl0ID0gbGltaXQ7CisgICAgICAgICAgICB0aGlzLmxpbWl0ID0gc3RhcnQ7CisgICAgICAgIH0KKworCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIFRSVUUgaWYgdGhlcmUgYXJlIGFueSBtb3JlIHJ1bnMuICBUUlVFIGlzIGFsd2F5cworICAgICAgICAgKiByZXR1cm5lZCBhdCBsZWFzdCBvbmNlLiAgVXBvbiByZXR1cm4sIHRoZSBjYWxsZXIgc2hvdWxkCisgICAgICAgICAqIGV4YW1pbmUgc2NyaXB0Q29kZSwgc3RhcnQsIGFuZCBsaW1pdC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBib29sZWFuIG5leHQoKSB7CisgICAgICAgICAgICBpbnQgY2g7CisgICAgICAgICAgICBpbnQgczsKKworICAgICAgICAgICAgc2NyaXB0Q29kZSA9IFVTY3JpcHQuSU5WQUxJRF9DT0RFOyAvLyBkb24ndCBrbm93IHNjcmlwdCB5ZXQKKyAgICAgICAgICAgIHN0YXJ0ID0gbGltaXQ7CisKKyAgICAgICAgICAgIC8vIEFyZSB3ZSBkb25lPworICAgICAgICAgICAgaWYgKHN0YXJ0ID09IHRleHRMaW1pdCkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gTW92ZSBzdGFydCBiYWNrIHRvIGluY2x1ZGUgYWRqYWNlbnQgQ09NTU9OIG9yIElOSEVSSVRFRAorICAgICAgICAgICAgLy8gY2hhcmFjdGVycworICAgICAgICAgICAgd2hpbGUgKHN0YXJ0ID4gdGV4dFN0YXJ0KSB7CisgICAgICAgICAgICAgICAgY2ggPSB0ZXh0LmNoYXIzMkF0KHN0YXJ0IC0gMSk7IC8vIGxvb2sgYmFjaworICAgICAgICAgICAgICAgIHMgPSBVU2NyaXB0LmdldFNjcmlwdChjaCk7CisgICAgICAgICAgICAgICAgaWYgKHMgPT0gVVNjcmlwdC5DT01NT04gfHwgcyA9PSBVU2NyaXB0LklOSEVSSVRFRCkgeworICAgICAgICAgICAgICAgICAgICAtLXN0YXJ0OworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gTW92ZSBsaW1pdCBhaGVhZCB0byBpbmNsdWRlIENPTU1PTiwgSU5IRVJJVEVELCBhbmQgY2hhcmFjdGVycworICAgICAgICAgICAgLy8gb2YgdGhlIGN1cnJlbnQgc2NyaXB0LgorICAgICAgICAgICAgd2hpbGUgKGxpbWl0IDwgdGV4dExpbWl0KSB7CisgICAgICAgICAgICAgICAgY2ggPSB0ZXh0LmNoYXIzMkF0KGxpbWl0KTsgLy8gbG9vayBhaGVhZAorICAgICAgICAgICAgICAgIHMgPSBVU2NyaXB0LmdldFNjcmlwdChjaCk7CisgICAgICAgICAgICAgICAgaWYgKHMgIT0gVVNjcmlwdC5DT01NT04gJiYgcyAhPSBVU2NyaXB0LklOSEVSSVRFRCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoc2NyaXB0Q29kZSA9PSBVU2NyaXB0LklOVkFMSURfQ09ERSkgeworICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0Q29kZSA9IHM7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocyAhPSBzY3JpcHRDb2RlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICArK2xpbWl0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBSZXR1cm4gVFJVRSBldmVuIGlmIHRoZSBlbnRpcmUgdGV4dCBpcyBDT01NT04gLyBJTkhFUklURUQsIGluCisgICAgICAgICAgICAvLyB3aGljaCBjYXNlIHNjcmlwdENvZGUgd2lsbCBiZSBVU2NyaXB0LklOVkFMSURfQ09ERS4KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFkanVzdHMgaW50ZXJuYWwgaW5kaWNlcyBmb3IgYSBjaGFuZ2UgaW4gdGhlIGxpbWl0IGluZGV4IG9mIHRoZQorICAgICAgICAgKiBnaXZlbiBkZWx0YS4gIEEgcG9zaXRpdmUgZGVsdGEgbWVhbnMgdGhlIGxpbWl0IGhhcyBpbmNyZWFzZWQuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBhZGp1c3RMaW1pdChpbnQgZGVsdGEpIHsKKyAgICAgICAgICAgIGxpbWl0ICs9IGRlbHRhOworICAgICAgICAgICAgdGV4dExpbWl0ICs9IGRlbHRhOworICAgICAgICB9CisgICAgfQorfQorCisvL2VvZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvQXJhYmljU2hhcGluZy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQXJhYmljU2hhcGluZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFlZDFmNzUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9BcmFiaWNTaGFwaW5nLmphdmEKQEAgLTAsMCArMSwxMTgxIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoQykgMjAwMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworCisvKioKKyAqIFNoYXBlIEFyYWJpYyB0ZXh0IG9uIGEgY2hhcmFjdGVyIGJhc2lzLgorICoKKyAqIDxwPkFyYWJpY1NoYXBpbmcgcGVyZm9ybXMgYmFzaWMgb3BlcmF0aW9ucyBmb3IgInNoYXBpbmciIEFyYWJpYyB0ZXh0LiBJdCBpcyBtb3N0CisgKiB1c2VmdWwgZm9yIHVzZSB3aXRoIGxlZ2FjeSBkYXRhIGZvcm1hdHMgYW5kIGxlZ2FjeSBkaXNwbGF5IHRlY2hub2xvZ3kKKyAqIChzaW1wbGUgdGVybWluYWxzKS4gQWxsIG9wZXJhdGlvbnMgYXJlIHBlcmZvcm1lZCBvbiBVbmljb2RlIGNoYXJhY3RlcnMuPC9wPgorICoKKyAqIDxwPlRleHQtYmFzZWQgc2hhcGluZyBtZWFucyB0aGF0IHNvbWUgY2hhcmFjdGVyIGNvZGUgcG9pbnRzIGluIHRoZSB0ZXh0IGFyZQorICogcmVwbGFjZWQgYnkgb3RoZXJzIGRlcGVuZGluZyBvbiB0aGUgY29udGV4dC4gSXQgdHJhbnNmb3JtcyBvbmUga2luZCBvZiB0ZXh0CisgKiBpbnRvIGFub3RoZXIuIEluIGNvbXBhcmlzb24sIG1vZGVybiBkaXNwbGF5cyBmb3IgQXJhYmljIHRleHQgc2VsZWN0CisgKiBhcHByb3ByaWF0ZSwgY29udGV4dC1kZXBlbmRlbnQgZm9udCBnbHlwaHMgZm9yIGVhY2ggdGV4dCBlbGVtZW50LCB3aGljaCBtZWFucworICogdGhhdCB0aGV5IHRyYW5zZm9ybSB0ZXh0IGludG8gYSBnbHlwaCB2ZWN0b3IuPC9wPgorICoKKyAqIDxwPlRleHQgdHJhbnNmb3JtYXRpb25zIGFyZSBuZWNlc3Nhcnkgd2hlbiBtb2Rlcm4gZGlzcGxheSB0ZWNobm9sb2d5IGlzIG5vdAorICogYXZhaWxhYmxlIG9yIHdoZW4gdGV4dCBuZWVkcyB0byBiZSB0cmFuc2Zvcm1lZCB0byBvciBmcm9tIGxlZ2FjeSBmb3JtYXRzIHRoYXQKKyAqIHVzZSAic2hhcGVkIiBjaGFyYWN0ZXJzLiBTaW5jZSB0aGUgQXJhYmljIHNjcmlwdCBpcyBjdXJzaXZlLCBjb25uZWN0aW5nCisgKiBhZGphY2VudCBsZXR0ZXJzIHRvIGVhY2ggb3RoZXIsIGNvbXB1dGVycyBzZWxlY3QgaW1hZ2VzIGZvciBlYWNoIGxldHRlciBiYXNlZAorICogb24gdGhlIHN1cnJvdW5kaW5nIGxldHRlcnMuIFRoaXMgdXN1YWxseSByZXN1bHRzIGluIGZvdXIgaW1hZ2VzIHBlciBBcmFiaWMKKyAqIGxldHRlcjogaW5pdGlhbCwgbWlkZGxlLCBmaW5hbCwgYW5kIGlzb2xhdGVkIGZvcm1zLiBJbiBVbmljb2RlLCBvbiB0aGUgb3RoZXIKKyAqIGhhbmQsIGxldHRlcnMgYXJlIG5vcm1hbGx5IHN0b3JlZCBhYnN0cmFjdCwgYW5kIGEgZGlzcGxheSBzeXN0ZW0gaXMgZXhwZWN0ZWQKKyAqIHRvIHNlbGVjdCB0aGUgbmVjZXNzYXJ5IGdseXBocy4gKFRoaXMgbWFrZXMgc2VhcmNoaW5nIGFuZCBvdGhlciB0ZXh0CisgKiBwcm9jZXNzaW5nIGVhc2llciBiZWNhdXNlIHRoZSBzYW1lIGxldHRlciBoYXMgb25seSBvbmUgY29kZS4pIEl0IGlzIHBvc3NpYmxlCisgKiB0byBtaW1pYyB0aGlzIHdpdGggdGV4dCB0cmFuc2Zvcm1hdGlvbnMgYmVjYXVzZSB0aGVyZSBhcmUgY2hhcmFjdGVycyBpbgorICogVW5pY29kZSB0aGF0IGFyZSByZW5kZXJlZCBhcyBsZXR0ZXJzIHdpdGggYSBzcGVjaWZpYyBzaGFwZQorICogKG9yIGN1cnNpdmUgY29ubmVjdGl2aXR5KS4gVGhleSB3ZXJlIGluY2x1ZGVkIGZvciBpbnRlcm9wZXJhYmlsaXR5IHdpdGgKKyAqIGxlZ2FjeSBzeXN0ZW1zIGFuZCBjb2RlcGFnZXMsIGFuZCBmb3IgdW5zb3BoaXN0aWNhdGVkIGRpc3BsYXkgc3lzdGVtcy48L3A+CisgKgorICogPHA+QSBzZWNvbmQga2luZCBvZiB0ZXh0IHRyYW5zZm9ybWF0aW9ucyBpcyBzdXBwb3J0ZWQgZm9yIEFyYWJpYyBkaWdpdHM6CisgKiBGb3IgY29tcGF0aWJpbGl0eSB3aXRoIGxlZ2FjeSBjb2RlcGFnZXMgdGhhdCBvbmx5IGluY2x1ZGUgRXVyb3BlYW4gZGlnaXRzLAorICogaXQgaXMgcG9zc2libGUgdG8gcmVwbGFjZSBvbmUgc2V0IG9mIGRpZ2l0cyBieSBhbm90aGVyLCBjaGFuZ2luZyB0aGUKKyAqIGNoYXJhY3RlciBjb2RlIHBvaW50cy4gVGhlc2Ugb3BlcmF0aW9ucyBjYW4gYmUgcGVyZm9ybWVkIGZvciBlaXRoZXIKKyAqIEFyYWJpYy1JbmRpYyBEaWdpdHMgKFUrMDY2MC4uLlUrMDY2OSkgb3IgRWFzdGVybiAoRXh0ZW5kZWQpIEFyYWJpYy1JbmRpYworICogZGlnaXRzIChVKzA2ZjAuLi5VKzA2ZjkpLjwvcD4KKyAqCisgKiA8cD5Tb21lIHJlcGxhY2VtZW50cyBtYXkgcmVzdWx0IGluIG1vcmUgb3IgZmV3ZXIgY2hhcmFjdGVycyAoY29kZSBwb2ludHMpLgorICogQnkgZGVmYXVsdCwgdGhpcyBtZWFucyB0aGF0IHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgbWF5IHJlY2VpdmUgdGV4dCB3aXRoIGEKKyAqIGxlbmd0aCBkaWZmZXJlbnQgZnJvbSB0aGUgc291cmNlIGxlbmd0aC4gU29tZSBsZWdhY3kgc3lzdGVtcyByZWx5IG9uIHRoZQorICogbGVuZ3RoIG9mIHRoZSB0ZXh0IHRvIGJlIGNvbnN0YW50LiBUaGV5IGV4cGVjdCBleHRyYSBzcGFjZXMgdG8gYmUgYWRkZWQKKyAqIG9yIGNvbnN1bWVkIGVpdGhlciBuZXh0IHRvIHRoZSBhZmZlY3RlZCBjaGFyYWN0ZXIgb3IgYXQgdGhlIGVuZCBvZiB0aGUKKyAqIHRleHQuPC9wPgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgQXJhYmljU2hhcGluZyB7CisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgb3B0aW9uczsKKyAgICBwcml2YXRlIGJvb2xlYW4gaXNMb2dpY2FsOyAvLyBjb252ZW5pZW5jZQorCisgICAgLyoqCisgICAgICogQ29udmVydCBhIHJhbmdlIG9mIHRleHQgaW4gdGhlIHNvdXJjZSBhcnJheSwgcHV0dGluZyB0aGUgcmVzdWx0IAorICAgICAqIGludG8gYSByYW5nZSBvZiB0ZXh0IGluIHRoZSBkZXN0aW5hdGlvbiBhcnJheSwgYW5kIHJldHVybiB0aGUgbnVtYmVyCisgICAgICogb2YgY2hhcmFjdGVycyB3cml0dGVuLgorICAgICAqCisgICAgICogQHBhcmFtIHNvdXJjZSBBbiBhcnJheSBjb250YWluaW5nIHRoZSBpbnB1dCB0ZXh0CisgICAgICogQHBhcmFtIHNvdXJjZVN0YXJ0IFRoZSBzdGFydCBvZiB0aGUgcmFuZ2Ugb2YgdGV4dCB0byBjb252ZXJ0CisgICAgICogQHBhcmFtIHNvdXJjZUxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSByYW5nZSBvZiB0ZXh0IHRvIGNvbnZlcnQKKyAgICAgKiBAcGFyYW0gZGVzdCBUaGUgZGVzdGluYXRpb24gYXJyYXkgdGhhdCB3aWxsIHJlY2VpdmUgdGhlIHJlc3VsdC4KKyAgICAgKiAgIEl0IG1heSBiZSA8Y29kZT5OVUxMPC9jb2RlPiBvbmx5IGlmICA8Y29kZT5kZXN0U2l6ZTwvY29kZT4gaXMgMC4gIAorICAgICAqIEBwYXJhbSBkZXN0U3RhcnQgVGhlIHN0YXJ0IG9mIHRoZSByYW5nZSBvZiB0aGUgZGVzdGluYXRpb24gYnVmZmVyIHRvIHVzZS4KKyAgICAgKiBAcGFyYW0gZGVzdFNpemUgVGhlIHNpemUgKGNhcGFjaXR5KSBvZiB0aGUgZGVzdGluYXRpb24gYnVmZmVyLgorICAgICAqICAgSWYgPGNvZGU+ZGVzdFNpemU8L2NvZGU+IGlzIDAsIHRoZW4gbm8gb3V0cHV0IGlzIHByb2R1Y2VkLAorICAgICAqICAgYnV0IHRoZSBuZWNlc3NhcnkgYnVmZmVyIHNpemUgaXMgcmV0dXJuZWQgKCJwcmVmbGlnaHRpbmciKS4gIFRoaXMKKyAgICAgKiAgIGRvZXMgbm90IHZhbGlkYXRlIHRoZSB0ZXh0IGFnYWluc3QgdGhlIG9wdGlvbnMsIGZvciBleGFtcGxlLCAKKyAgICAgKiAgIGlmIGxldHRlcnMgYXJlIGJlaW5nIHVuc2hhcGVkLCBhbmQgc3BhY2VzIGFyZSBiZWluZyBjb25zdW1lZAorICAgICAqICAgZm9sbG93aW5nIGxhbWFsZWYsIHRoaXMgd2lsbCBub3QgZGV0ZWN0IGEgbGFtYWxlZiB3aXRob3V0IGEgCisgICAgICogICBjb3JyZXNwb25kaW5nIHNwYWNlLiAgQW4gZXJyb3Igd2lsbCBiZSB0aHJvd24gd2hlbiB0aGUgYWN0dWFsCisgICAgICogICBjb252ZXJzaW9uIGlzIGF0dGVtcHRlZC4KKyAgICAgKiBAcmV0dXJuIFRoZSBudW1iZXIgb2YgY2hhcnMgd3JpdHRlbiB0byB0aGUgZGVzdGluYXRpb24gYnVmZmVyLgorICAgICAqICAgSWYgYW4gZXJyb3Igb2NjdXJzLCB0aGVuIG5vIG91dHB1dCB3YXMgd3JpdHRlbiwgb3IgaXQgbWF5IGJlCisgICAgICogICBpbmNvbXBsZXRlLgorICAgICAqIEB0aHJvd3MgQXJhYmljU2hhcGluZ0V4Y2VwdGlvbiBpZiB0aGUgdGV4dCBjYW5ub3QgYmUgY29udmVydGVkIGFjY29yZGluZyB0byB0aGUgb3B0aW9ucy4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IHNoYXBlKGNoYXJbXSBzb3VyY2UsIGludCBzb3VyY2VTdGFydCwgaW50IHNvdXJjZUxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBkZXN0LCBpbnQgZGVzdFN0YXJ0LCBpbnQgZGVzdFNpemUpIHRocm93cyBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uIHsKKyAgICAgICAgaWYgKHNvdXJjZSA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJzb3VyY2UgY2FuIG5vdCBiZSBudWxsIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNvdXJjZVN0YXJ0IDwgMCB8fCBzb3VyY2VMZW5ndGggPCAwIHx8IHNvdXJjZVN0YXJ0ICsgc291cmNlTGVuZ3RoID4gc291cmNlLmxlbmd0aCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiYmFkIHNvdXJjZSBzdGFydCAoIiArIHNvdXJjZVN0YXJ0ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIikgb3IgbGVuZ3RoICgiICsgc291cmNlTGVuZ3RoICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIikgZm9yIGJ1ZmZlciBvZiBsZW5ndGggIiArIHNvdXJjZS5sZW5ndGgpOworICAgICAgICB9CisgICAgICAgIGlmIChkZXN0ID09IG51bGwgJiYgZGVzdFNpemUgIT0gMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigibnVsbCBkZXN0IHJlcXVpcmVzIGRlc3RTaXplID09IDAiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoKGRlc3RTaXplICE9IDApICYmCisgICAgICAgICAgICAoZGVzdFN0YXJ0IDwgMCB8fCBkZXN0U2l6ZSA8IDAgfHwgZGVzdFN0YXJ0ICsgZGVzdFNpemUgPiBkZXN0Lmxlbmd0aCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImJhZCBkZXN0IHN0YXJ0ICgiICsgZGVzdFN0YXJ0ICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIpIG9yIHNpemUgKCIgKyBkZXN0U2l6ZSArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKSBmb3IgYnVmZmVyIG9mIGxlbmd0aCAiICsgZGVzdC5sZW5ndGgpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGludGVybmFsU2hhcGUoc291cmNlLCBzb3VyY2VTdGFydCwgc291cmNlTGVuZ3RoLCBkZXN0LCBkZXN0U3RhcnQsIGRlc3RTaXplKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGEgcmFuZ2Ugb2YgdGV4dCBpbiBwbGFjZS4gIFRoaXMgbWF5IG9ubHkgYmUgdXNlZCBpZiB0aGUgTGVuZ3RoIG9wdGlvbgorICAgICAqIGRvZXMgbm90IGdyb3cgb3Igc2hyaW5rIHRoZSB0ZXh0LgorICAgICAqCisgICAgICogQHBhcmFtIHNvdXJjZSBBbiBhcnJheSBjb250YWluaW5nIHRoZSBpbnB1dCB0ZXh0CisgICAgICogQHBhcmFtIHN0YXJ0IFRoZSBzdGFydCBvZiB0aGUgcmFuZ2Ugb2YgdGV4dCB0byBjb252ZXJ0CisgICAgICogQHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSByYW5nZSBvZiB0ZXh0IHRvIGNvbnZlcnQKKyAgICAgKiBAdGhyb3dzIEFyYWJpY1NoYXBpbmdFeGNlcHRpb24gaWYgdGhlIHRleHQgY2Fubm90IGJlIGNvbnZlcnRlZCBhY2NvcmRpbmcgdG8gdGhlIG9wdGlvbnMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2hhcGUoY2hhcltdIHNvdXJjZSwgaW50IHN0YXJ0LCBpbnQgbGVuZ3RoKSB0aHJvd3MgQXJhYmljU2hhcGluZ0V4Y2VwdGlvbiB7CisgICAgICAgIGlmICgob3B0aW9ucyAmIExFTkdUSF9NQVNLKSA9PSBMRU5HVEhfR1JPV19TSFJJTkspIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uKCJDYW5ub3Qgc2hhcGUgaW4gcGxhY2Ugd2l0aCBsZW5ndGggb3B0aW9uIGdyb3cvc2hyaW5rLiIpOworICAgICAgICB9CisgICAgICAgIHNoYXBlKHNvdXJjZSwgc3RhcnQsIGxlbmd0aCwgc291cmNlLCBzdGFydCwgbGVuZ3RoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGEgc3RyaW5nLCByZXR1cm5pbmcgdGhlIG5ldyBzdHJpbmcuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc291cmNlIFRoZSBzdHJpbmcgdG8gY29udmVydC4KKyAgICAgKiBAcmV0dXJuIFRoZSBjb252ZXJ0ZWQgc3RyaW5nLgorICAgICAqIEB0aHJvd3MgQXJhYmljU2hhcGluZ0V4Y2VwdGlvbiBpZiB0aGUgc3RyaW5nIGNhbm5vdCBiZSBjb252ZXJ0ZWQgYWNjb3JkaW5nIHRvIHRoZSBvcHRpb25zLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgc2hhcGUoU3RyaW5nIHRleHQpIHRocm93cyBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uIHsKKyAgICAgICAgY2hhcltdIHNyYyA9IHRleHQudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgY2hhcltdIGRlc3QgPSBzcmM7CisgICAgICAgIGlmICgoKG9wdGlvbnMgJiBMRU5HVEhfTUFTSykgPT0gTEVOR1RIX0dST1dfU0hSSU5LKSAmJgorICAgICAgICAgICAgKChvcHRpb25zICYgTEVUVEVSU19NQVNLKSA9PSBMRVRURVJTX1VOU0hBUEUpKSB7CisKKyAgICAgICAgICAgIGRlc3QgPSBuZXcgY2hhcltzcmMubGVuZ3RoICogMl07IC8vIG1heAorICAgICAgICB9CisgICAgICAgIGludCBsZW4gPSBzaGFwZShzcmMsIDAsIHNyYy5sZW5ndGgsIGRlc3QsIDAsIGRlc3QubGVuZ3RoKTsKKworICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhkZXN0LCAwLCBsZW4pOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBBcmFiaWNTaGFwaW5nIHVzaW5nIHRoZSBvcHRpb25zIGZsYWdzLgorICAgICAqIFRoZSBmbGFncyBhcmUgYXMgZm9sbG93czo8YnI+CisgICAgICogJ0xFTkdUSCcgZmxhZ3MgY29udHJvbCB3aGV0aGVyIHRoZSB0ZXh0IGNhbiBjaGFuZ2Ugc2l6ZSwgYW5kIGlmIG5vdCwKKyAgICAgKiBob3cgdG8gbWFpbnRhaW4gdGhlIHNpemUgb2YgdGhlIHRleHQgd2hlbiBMYW1BbGVmIGxpZ2F0dXJlcyBhcmUgCisgICAgICogZm9ybWVkIG9yIGJyb2tlbi48YnI+CisgICAgICogJ1RFWFRfRElSRUNUSU9OJyBmbGFncyBjb250cm9sIHdoZXRoZXIgdGhlIHRleHQgaXMgcmVhZCBhbmQgd3JpdHRlbgorICAgICAqIGluIHZpc3VhbCBvcmRlciBvciBpbiBsb2dpY2FsIG9yZGVyLjxicj4KKyAgICAgKiAnTEVUVEVSU19TSEFQRScgZmxhZ3MgY29udHJvbCB3aGV0aGVyIGNvbnZlcnNpb24gaXMgdG8gb3IgZnJvbQorICAgICAqIHByZXNlbnRhdGlvbiBmb3Jtcy48YnI+CisgICAgICogJ0RJR0lUUycgZmxhZ3MgY29udHJvbCB3aGV0aGVyIGRpZ2l0cyBhcmUgc2hhcGVkLCBhbmQgd2hldGhlciBmcm9tCisgICAgICogRXVyb3BlYW4gdG8gQXJhYmljLUluZGljIG9yIHZpY2UtdmVyc2EuPGJyPgorICAgICAqICdESUdJVF9UWVBFJyBmbGFncyBjb250cm9sIHdoZXRoZXIgc3RhbmRhcmQgb3IgZXh0ZW5kZWQgQXJhYmljLUluZGljCisgICAgICogZGlnaXRzIGFyZSB1c2VkIHdoZW4gcGVyZm9ybWluZyBkaWdpdCBjb252ZXJzaW9uLgorICAgICAqLworICAgIHB1YmxpYyBBcmFiaWNTaGFwaW5nKGludCBvcHRpb25zKSB7CisgICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7CisgICAgICAgIGlmICgob3B0aW9ucyAmIERJR0lUU19NQVNLKSA+IDB4ODApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImJhZCBESUdJVFMgb3B0aW9ucyIpOworICAgICAgICB9CisgICAgICAgIGlzTG9naWNhbCA9IChvcHRpb25zICYgVEVYVF9ESVJFQ1RJT05fTUFTSykgPT0gVEVYVF9ESVJFQ1RJT05fTE9HSUNBTDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNZW1vcnkgb3B0aW9uOiBhbGxvdyB0aGUgcmVzdWx0IHRvIGhhdmUgYSBkaWZmZXJlbnQgbGVuZ3RoIHRoYW4gdGhlIHNvdXJjZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRU5HVEhfR1JPV19TSFJJTksgPSAwOworCisgICAgLyoqCisgICAgICogTWVtb3J5IG9wdGlvbjogdGhlIHJlc3VsdCBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoIGFzIHRoZSBzb3VyY2UuCisgICAgICogSWYgbW9yZSByb29tIGlzIG5lY2Vzc2FyeSwgdGhlbiB0cnkgdG8gY29uc3VtZSBzcGFjZXMgbmV4dCB0byBtb2RpZmllZCBjaGFyYWN0ZXJzLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFTkdUSF9GSVhFRF9TUEFDRVNfTkVBUiA9IDE7CisKKyAgICAvKioKKyAgICAgKiBNZW1vcnkgb3B0aW9uOiB0aGUgcmVzdWx0IG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGggYXMgdGhlIHNvdXJjZS4KKyAgICAgKiBJZiBtb3JlIHJvb20gaXMgbmVjZXNzYXJ5LCB0aGVuIHRyeSB0byBjb25zdW1lIHNwYWNlcyBhdCB0aGUgZW5kIG9mIHRoZSB0ZXh0LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfRU5EID0gMjsKKworICAgIC8qKgorICAgICAqIE1lbW9yeSBvcHRpb246IHRoZSByZXN1bHQgbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aCBhcyB0aGUgc291cmNlLgorICAgICAqIElmIG1vcmUgcm9vbSBpcyBuZWNlc3NhcnksIHRoZW4gdHJ5IHRvIGNvbnN1bWUgc3BhY2VzIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9CRUdJTk5JTkcgPSAzOworCisgICAgLyoqIAorICAgICAqIEJpdCBtYXNrIGZvciBtZW1vcnkgb3B0aW9ucy4gCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEVOR1RIX01BU0sgPSAzOworCisKKyAgICAvKiogCisgICAgICogRGlyZWN0aW9uIGluZGljYXRvcjogdGhlIHNvdXJjZSBpcyBpbiBsb2dpY2FsIChrZXlib2FyZCkgb3JkZXIuIAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFWFRfRElSRUNUSU9OX0xPR0lDQUwgPSAwOworCisgICAgLyoqIAorICAgICAqIERpcmVjdGlvbiBpbmRpY2F0b3I6IHRoZSBzb3VyY2UgaXMgaW4gdmlzdWFsIChkaXNwbGF5KSBvcmRlciwgdGhhdCBpcywKKyAgICAgKiB0aGUgbGVmdG1vc3QgZGlzcGxheWVkIGNoYXJhY3RlciBpcyBzdG9yZWQgZmlyc3QuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEVYVF9ESVJFQ1RJT05fVklTVUFMX0xUUiA9IDQ7CisKKyAgICAvKiogCisgICAgICogQml0IG1hc2sgZm9yIGRpcmVjdGlvbiBpbmRpY2F0b3JzLiAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBURVhUX0RJUkVDVElPTl9NQVNLID0gNDsKKworCisgICAgLyoqCisgICAgICogTGV0dGVyIHNoYXBpbmcgb3B0aW9uOiBkbyBub3QgcGVyZm9ybSBsZXR0ZXIgc2hhcGluZy4gCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEVUVEVSU19OT09QID0gMDsKKworICAgIC8qKiAKKyAgICAgKiBMZXR0ZXIgc2hhcGluZyBvcHRpb246IHJlcGxhY2Ugbm9ybWF0aXZlIGxldHRlciBjaGFyYWN0ZXJzIGluIHRoZSBVKzA2MDAgKEFyYWJpYykgYmxvY2ssCisgICAgICogYnkgc2hhcGVkIG9uZXMgaW4gdGhlIFUrRkU3MCAoUHJlc2VudGF0aW9uIEZvcm1zIEIpIGJsb2NrLiBQZXJmb3JtcyBMYW0tQWxlZiBsaWdhdHVyZQorICAgICAqIHN1YnN0aXR1dGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRVRURVJTX1NIQVBFID0gODsKKworICAgIC8qKiAKKyAgICAgKiBMZXR0ZXIgc2hhcGluZyBvcHRpb246IHJlcGxhY2Ugc2hhcGVkIGxldHRlciBjaGFyYWN0ZXJzIGluIHRoZSBVK0ZFNzAgKFByZXNlbnRhdGlvbiBGb3JtcyBCKSBibG9jaworICAgICAqIGJ5IG5vcm1hdGl2ZSBvbmVzIGluIHRoZSBVKzA2MDAgKEFyYWJpYykgYmxvY2suICBDb252ZXJ0cyBMYW0tQWxlZiBsaWdhdHVyZXMgdG8gcGFpcnMgb2YgTGFtIGFuZAorICAgICAqIEFsZWYgY2hhcmFjdGVycywgY29uc3VtaW5nIHNwYWNlcyBpZiByZXF1aXJlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRVRURVJTX1VOU0hBUEUgPSAweDEwOworCisgICAgLyoqCisgICAgICogTGV0dGVyIHNoYXBpbmcgb3B0aW9uOiByZXBsYWNlIG5vcm1hdGl2ZSBsZXR0ZXIgY2hhcmFjdGVycyBpbiB0aGUgVSswNjAwIChBcmFiaWMpIGJsb2NrLAorICAgICAqIGV4Y2VwdCBmb3IgdGhlIFRBU0hLRUVMIGNoYXJhY3RlcnMgYXQgVSswNjRCLi4uVSswNjUyLCBieSBzaGFwZWQgb25lcyBpbiB0aGUgVStGZTcwCisgICAgICogKFByZXNlbnRhdGlvbiBGb3JtcyBCKSBibG9jay4gIFRoZSBUQVNIS0VFTCBjaGFyYWN0ZXJzIHdpbGwgYWx3YXlzIGJlIGNvbnZlcnRlZCB0bworICAgICAqIHRoZSBpc29sYXRlZCBmb3JtcyByYXRoZXIgdGhhbiB0byB0aGVpciBjb3JyZWN0IHNoYXBlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFVFRFUlNfU0hBUEVfVEFTSEtFRUxfSVNPTEFURUQgPSAweDE4OworCisgICAgLyoqIAorICAgICAqIEJpdCBtYXNrIGZvciBsZXR0ZXIgc2hhcGluZyBvcHRpb25zLiAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRVRURVJTX01BU0sgPSAweDE4OworCisKKyAgICAvKiogCisgICAgICogRGlnaXQgc2hhcGluZyBvcHRpb246IGRvIG5vdCBwZXJmb3JtIGRpZ2l0IHNoYXBpbmcuIAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERJR0lUU19OT09QID0gMDsKKworICAgIC8qKgorICAgICAqIERpZ2l0IHNoYXBpbmcgb3B0aW9uOiBSZXBsYWNlIEV1cm9wZWFuIGRpZ2l0cyAoVSswMDMwLi4uVSswMDM5KSBieSBBcmFiaWMtSW5kaWMgZGlnaXRzLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERJR0lUU19FTjJBTiA9IDB4MjA7CisKKyAgICAvKioKKyAgICAgKiBEaWdpdCBzaGFwaW5nIG9wdGlvbjogUmVwbGFjZSBBcmFiaWMtSW5kaWMgZGlnaXRzIGJ5IEV1cm9wZWFuIGRpZ2l0cyAoVSswMDMwLi4uVSswMDM5KS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBESUdJVFNfQU4yRU4gPSAweDQwOworCisgICAgLyoqCisgICAgICogRGlnaXQgc2hhcGluZyBvcHRpb246CisgICAgICogUmVwbGFjZSBFdXJvcGVhbiBkaWdpdHMgKFUrMDAzMC4uLlUrMDAzOSkgYnkgQXJhYmljLUluZGljIGRpZ2l0cworICAgICAqIGlmIHRoZSBtb3N0IHJlY2VudCBzdHJvbmdseSBkaXJlY3Rpb25hbCBjaGFyYWN0ZXIKKyAgICAgKiBpcyBhbiBBcmFiaWMgbGV0dGVyIChpdHMgQmlkaSBkaXJlY3Rpb24gdmFsdWUgaXMgUklHSFRfVE9fTEVGVF9BUkFCSUMpLiAKKyAgICAgKiBUaGUgaW5pdGlhbCBzdGF0ZSBhdCB0aGUgc3RhcnQgb2YgdGhlIHRleHQgaXMgYXNzdW1lZCB0byBiZSBub3QgYW4gQXJhYmljLAorICAgICAqIGxldHRlciwgc28gRXVyb3BlYW4gZGlnaXRzIGF0IHRoZSBzdGFydCBvZiB0aGUgdGV4dCB3aWxsIG5vdCBjaGFuZ2UuCisgICAgICogQ29tcGFyZSB0byBESUdJVFNfQUxFTjJBTl9JTklUX0FMLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERJR0lUU19FTjJBTl9JTklUX0xSID0gMHg2MDsKKworICAgIC8qKgorICAgICAqIERpZ2l0IHNoYXBpbmcgb3B0aW9uOgorICAgICAqIFJlcGxhY2UgRXVyb3BlYW4gZGlnaXRzIChVKzAwMzAuLi5VKzAwMzkpIGJ5IEFyYWJpYy1JbmRpYyBkaWdpdHMKKyAgICAgKiBpZiB0aGUgbW9zdCByZWNlbnQgc3Ryb25nbHkgZGlyZWN0aW9uYWwgY2hhcmFjdGVyCisgICAgICogaXMgYW4gQXJhYmljIGxldHRlciAoaXRzIEJpZGkgZGlyZWN0aW9uIHZhbHVlIGlzIFJJR0hUX1RPX0xFRlRfQVJBQklDKS4gCisgICAgICogVGhlIGluaXRpYWwgc3RhdGUgYXQgdGhlIHN0YXJ0IG9mIHRoZSB0ZXh0IGlzIGFzc3VtZWQgdG8gYmUgYW4gQXJhYmljLAorICAgICAqIGxldHRlciwgc28gRXVyb3BlYW4gZGlnaXRzIGF0IHRoZSBzdGFydCBvZiB0aGUgdGV4dCB3aWxsIGNoYW5nZS4KKyAgICAgKiBDb21wYXJlIHRvIERJR0lUU19BTEVOMkFOX0lOVF9MUi4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBESUdJVFNfRU4yQU5fSU5JVF9BTCA9IDB4ODA7CisKKyAgICAvKiogTm90IGEgdmFsaWQgb3B0aW9uIHZhbHVlLiAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBESUdJVFNfUkVTRVJWRUQgPSAweGEwOworCisgICAgLyoqIAorICAgICAqIEJpdCBtYXNrIGZvciBkaWdpdCBzaGFwaW5nIG9wdGlvbnMuIAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERJR0lUU19NQVNLID0gMHhlMDsKKworICAgIC8qKiAKKyAgICAgKiBEaWdpdCB0eXBlIG9wdGlvbjogVXNlIEFyYWJpYy1JbmRpYyBkaWdpdHMgKFUrMDY2MC4uLlUrMDY2OSkuIAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERJR0lUX1RZUEVfQU4gPSAwOworCisgICAgLyoqIAorICAgICAqIERpZ2l0IHR5cGUgb3B0aW9uOiBVc2UgRWFzdGVybiAoRXh0ZW5kZWQpIEFyYWJpYy1JbmRpYyBkaWdpdHMgKFUrMDZmMC4uLlUrMDZmOSkuIAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERJR0lUX1RZUEVfQU5fRVhURU5ERUQgPSAweDEwMDsKKworICAgIC8qKiAKKyAgICAgKiBCaXQgbWFzayBmb3IgZGlnaXQgdHlwZSBvcHRpb25zLiAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBESUdJVF9UWVBFX01BU0sgPSAweDAxMDA7IC8vIDB4M2YwMD8KKworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgcmhzKSB7CisgICAgICAgIHJldHVybiByaHMgIT0gbnVsbCAmJiAKKyAgICAgICAgICAgIHJocy5nZXRDbGFzcygpID09IEFyYWJpY1NoYXBpbmcuY2xhc3MgJiYgCisgICAgICAgICAgICBvcHRpb25zID09ICgoQXJhYmljU2hhcGluZylyaHMpLm9wdGlvbnM7CisgICAgfQorCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgcmV0dXJuIG9wdGlvbnM7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoc3VwZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGJ1Zi5hcHBlbmQoJ1snKTsKKyAgICAgICAgc3dpdGNoIChvcHRpb25zICYgTEVOR1RIX01BU0spIHsKKyAgICAgICAgY2FzZSBMRU5HVEhfR1JPV19TSFJJTks6IGJ1Zi5hcHBlbmQoImdyb3cvc2hyaW5rIik7IGJyZWFrOworICAgICAgICBjYXNlIExFTkdUSF9GSVhFRF9TUEFDRVNfTkVBUjogYnVmLmFwcGVuZCgic3BhY2VzIG5lYXIiKTsgYnJlYWs7CisgICAgICAgIGNhc2UgTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9FTkQ6IGJ1Zi5hcHBlbmQoInNwYWNlcyBhdCBlbmQiKTsgYnJlYWs7CisgICAgICAgIGNhc2UgTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9CRUdJTk5JTkc6IGJ1Zi5hcHBlbmQoInNwYWNlcyBhdCBiZWdpbm5pbmciKTsgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgc3dpdGNoIChvcHRpb25zICYgVEVYVF9ESVJFQ1RJT05fTUFTSykgeworICAgICAgICBjYXNlIFRFWFRfRElSRUNUSU9OX0xPR0lDQUw6IGJ1Zi5hcHBlbmQoIiwgbG9naWNhbCIpOyBicmVhazsKKyAgICAgICAgY2FzZSBURVhUX0RJUkVDVElPTl9WSVNVQUxfTFRSOiBidWYuYXBwZW5kKCIsIHZpc3VhbCIpOyBicmVhazsKKyAgICAgICAgfQorICAgICAgICBzd2l0Y2ggKG9wdGlvbnMgJiBMRVRURVJTX01BU0spIHsKKyAgICAgICAgY2FzZSBMRVRURVJTX05PT1A6IGJ1Zi5hcHBlbmQoIiwgbm8gbGV0dGVyIHNoYXBpbmciKTsgYnJlYWs7CisgICAgICAgIGNhc2UgTEVUVEVSU19TSEFQRTogYnVmLmFwcGVuZCgiLCBzaGFwZSBsZXR0ZXJzIik7IGJyZWFrOworICAgICAgICBjYXNlIExFVFRFUlNfU0hBUEVfVEFTSEtFRUxfSVNPTEFURUQ6IGJ1Zi5hcHBlbmQoIiwgc2hhcGUgbGV0dGVycyB0YXNoa2VlbCBpc29sYXRlZCIpOyBicmVhazsKKyAgICAgICAgY2FzZSBMRVRURVJTX1VOU0hBUEU6IGJ1Zi5hcHBlbmQoIiwgdW5zaGFwZSBsZXR0ZXJzIik7IGJyZWFrOworICAgICAgICB9CisgICAgICAgIHN3aXRjaCAob3B0aW9ucyAmIERJR0lUU19NQVNLKSB7CisgICAgICAgIGNhc2UgRElHSVRTX05PT1A6IGJ1Zi5hcHBlbmQoIiwgbm8gZGlnaXQgc2hhcGluZyIpOyBicmVhazsKKyAgICAgICAgY2FzZSBESUdJVFNfRU4yQU46IGJ1Zi5hcHBlbmQoIiwgc2hhcGUgZGlnaXRzIHRvIEFOIik7IGJyZWFrOworICAgICAgICBjYXNlIERJR0lUU19BTjJFTjogYnVmLmFwcGVuZCgiLCBzaGFwZSBkaWdpdHMgdG8gRU4iKTsgYnJlYWs7CisgICAgICAgIGNhc2UgRElHSVRTX0VOMkFOX0lOSVRfTFI6IGJ1Zi5hcHBlbmQoIiwgc2hhcGUgZGlnaXRzIHRvIEFOIGNvbnRleHR1YWxseTogZGVmYXVsdCBFTiIpOyBicmVhazsKKyAgICAgICAgY2FzZSBESUdJVFNfRU4yQU5fSU5JVF9BTDogYnVmLmFwcGVuZCgiLCBzaGFwZSBkaWdpdHMgdG8gQU4gY29udGV4dHVhbGx5OiBkZWZhdWx0IEFMIik7IGJyZWFrOworICAgICAgICB9CisgICAgICAgIHN3aXRjaCAob3B0aW9ucyAmIERJR0lUX1RZUEVfTUFTSykgeworICAgICAgICBjYXNlIERJR0lUX1RZUEVfQU46IGJ1Zi5hcHBlbmQoIiwgc3RhbmRhcmQgQXJhYmljLUluZGljIGRpZ2l0cyIpOyBicmVhazsKKyAgICAgICAgY2FzZSBESUdJVF9UWVBFX0FOX0VYVEVOREVEOiBidWYuYXBwZW5kKCIsIGV4dGVuZGVkIEFyYWJpYy1JbmRpYyBkaWdpdHMiKTsgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnVmLmFwcGVuZCgiXSIpOworCisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvLworICAgIC8vIHBvcnRlZCBhcGkKKyAgICAvLworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElSUkVMRVZBTlQgPSA0OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMQU1UWVBFID0gMTY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEFMRUZUWVBFID0gMzI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTElOS1IgPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMSU5LTCA9IDI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExJTktfTUFTSyA9IDM7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgaXJyZWxldmFudFBvc1tdID0geyAKKyAgICAgICAgMHgwLCAweDIsIDB4NCwgMHg2LCAweDgsIDB4QSwgMHhDLCAweEUgCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgY29udmVydExhbUFsZWZbXSA9ICB7CisgICAgICAgICdcdTA2MjInLCAvLyBGRUY1IAorICAgICAgICAnXHUwNjIyJywgLy8gRkVGNgorICAgICAgICAnXHUwNjIzJywgLy8gRkVGNworICAgICAgICAnXHUwNjIzJywgLy8gRkVGOAorICAgICAgICAnXHUwNjI1JywgLy8gRkVGOQorICAgICAgICAnXHUwNjI1JywgLy8gRkVGQQorICAgICAgICAnXHUwNjI3JywgLy8gRkVGQgorICAgICAgICAnXHUwNjI3JyAgLy8gRkVGQyAKKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBjb252ZXJ0Tm9ybWFsaXplZExhbUFsZWZbXSA9IHsKKyAgICAgICAgJ1x1MDYyMicsIC8vIDA2NUMKKyAgICAgICAgJ1x1MDYyMycsIC8vIDA2NUQKKyAgICAgICAgJ1x1MDYyNScsIC8vIDA2NUUKKyAgICAgICAgJ1x1MDYyNycsIC8vIDA2NUYKKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50W10gYXJhTGluayA9IHsKKyAgICAgICAgMSAgICAgICAgICAgKyAzMiArIDI1NiAqIDB4MTEsICAvKjB4MDYyMiovCisgICAgICAgIDEgICAgICAgICAgICsgMzIgKyAyNTYgKiAweDEzLCAgLyoweDA2MjMqLworICAgICAgICAxICAgICAgICAgICAgICAgICsgMjU2ICogMHgxNSwgIC8qMHgwNjI0Ki8KKyAgICAgICAgMSAgICAgICAgICAgKyAzMiArIDI1NiAqIDB4MTcsICAvKjB4MDYyNSovCisgICAgICAgIDEgKyAyICAgICAgICAgICAgKyAyNTYgKiAweDE5LCAgLyoweDA2MjYqLworICAgICAgICAxICAgICAgICAgICArIDMyICsgMjU2ICogMHgxRCwgIC8qMHgwNjI3Ki8KKyAgICAgICAgMSArIDIgICAgICAgICAgICArIDI1NiAqIDB4MUYsICAvKjB4MDYyOCovCisgICAgICAgIDEgICAgICAgICAgICAgICAgKyAyNTYgKiAweDIzLCAgLyoweDA2MjkqLworICAgICAgICAxICsgMiAgICAgICAgICAgICsgMjU2ICogMHgyNSwgIC8qMHgwNjJBKi8KKyAgICAgICAgMSArIDIgICAgICAgICAgICArIDI1NiAqIDB4MjksICAvKjB4MDYyQiovCisgICAgICAgIDEgKyAyICAgICAgICAgICAgKyAyNTYgKiAweDJELCAgLyoweDA2MkMqLworICAgICAgICAxICsgMiAgICAgICAgICAgICsgMjU2ICogMHgzMSwgIC8qMHgwNjJEKi8KKyAgICAgICAgMSArIDIgICAgICAgICAgICArIDI1NiAqIDB4MzUsICAvKjB4MDYyRSovCisgICAgICAgIDEgICAgICAgICAgICAgICAgKyAyNTYgKiAweDM5LCAgLyoweDA2MkYqLworICAgICAgICAxICAgICAgICAgICAgICAgICsgMjU2ICogMHgzQiwgIC8qMHgwNjMwKi8KKyAgICAgICAgMSAgICAgICAgICAgICAgICArIDI1NiAqIDB4M0QsICAvKjB4MDYzMSovCisgICAgICAgIDEgICAgICAgICAgICAgICAgKyAyNTYgKiAweDNGLCAgLyoweDA2MzIqLworICAgICAgICAxICsgMiAgICAgICAgICAgICsgMjU2ICogMHg0MSwgIC8qMHgwNjMzKi8KKyAgICAgICAgMSArIDIgICAgICAgICAgICArIDI1NiAqIDB4NDUsICAvKjB4MDYzNCovCisgICAgICAgIDEgKyAyICAgICAgICAgICAgKyAyNTYgKiAweDQ5LCAgLyoweDA2MzUqLworICAgICAgICAxICsgMiAgICAgICAgICAgICsgMjU2ICogMHg0RCwgIC8qMHgwNjM2Ki8KKyAgICAgICAgMSArIDIgICAgICAgICAgICArIDI1NiAqIDB4NTEsICAvKjB4MDYzNyovCisgICAgICAgIDEgKyAyICAgICAgICAgICAgKyAyNTYgKiAweDU1LCAgLyoweDA2MzgqLworICAgICAgICAxICsgMiAgICAgICAgICAgICsgMjU2ICogMHg1OSwgIC8qMHgwNjM5Ki8KKyAgICAgICAgMSArIDIgICAgICAgICAgICArIDI1NiAqIDB4NUQsICAvKjB4MDYzQSovCisgICAgICAgIDAsIDAsIDAsIDAsIDAsICAgICAgICAgICAgICAgICAgLyoweDA2M0ItMHgwNjNGKi8KKyAgICAgICAgMSArIDIsICAgICAgICAgICAgICAgICAgICAgICAgICAvKjB4MDY0MCovCisgICAgICAgIDEgKyAyICAgICAgICAgICAgKyAyNTYgKiAweDYxLCAgLyoweDA2NDEqLworICAgICAgICAxICsgMiAgICAgICAgICAgICsgMjU2ICogMHg2NSwgIC8qMHgwNjQyKi8KKyAgICAgICAgMSArIDIgICAgICAgICAgICArIDI1NiAqIDB4NjksICAvKjB4MDY0MyovCisgICAgICAgIDEgKyAyICAgICAgICsgMTYgKyAyNTYgKiAweDZELCAgLyoweDA2NDQqLworICAgICAgICAxICsgMiAgICAgICAgICAgICsgMjU2ICogMHg3MSwgIC8qMHgwNjQ1Ki8KKyAgICAgICAgMSArIDIgICAgICAgICAgICArIDI1NiAqIDB4NzUsICAvKjB4MDY0NiovCisgICAgICAgIDEgKyAyICAgICAgICAgICAgKyAyNTYgKiAweDc5LCAgLyoweDA2NDcqLworICAgICAgICAxICAgICAgICAgICAgICAgICsgMjU2ICogMHg3RCwgIC8qMHgwNjQ4Ki8KKyAgICAgICAgMSAgICAgICAgICAgICAgICArIDI1NiAqIDB4N0YsICAvKjB4MDY0OSovCisgICAgICAgIDEgKyAyICAgICAgICAgICAgKyAyNTYgKiAweDgxLCAgLyoweDA2NEEqLworICAgICAgICA0LCA0LCA0LCA0LCAgICAgICAgICAgICAgICAgICAgIC8qMHgwNjRCLTB4MDY0RSovCisgICAgICAgIDQsIDQsIDQsIDQsICAgICAgICAgICAgICAgICAgICAgLyoweDA2NEYtMHgwNjUyKi8KKyAgICAgICAgNCwgNCwgNCwgMCwgMCwgICAgICAgICAgICAgICAgICAvKjB4MDY1My0weDA2NTcqLworICAgICAgICAwLCAwLCAwLCAwLCAgICAgICAgICAgICAgICAgICAgIC8qMHgwNjU4LTB4MDY1QiovCisgICAgICAgIDEgICAgICAgICAgICAgICAgKyAyNTYgKiAweDg1LCAgLyoweDA2NUMqLworICAgICAgICAxICAgICAgICAgICAgICAgICsgMjU2ICogMHg4NywgIC8qMHgwNjVEKi8KKyAgICAgICAgMSAgICAgICAgICAgICAgICArIDI1NiAqIDB4ODksICAvKjB4MDY1RSovCisgICAgICAgIDEgICAgICAgICAgICAgICAgKyAyNTYgKiAweDhCLCAgLyoweDA2NUYqLworICAgICAgICAwLCAwLCAwLCAwLCAwLCAgICAgICAgICAgICAgICAgIC8qMHgwNjYwLTB4MDY2NCovCisgICAgICAgIDAsIDAsIDAsIDAsIDAsICAgICAgICAgICAgICAgICAgLyoweDA2NjUtMHgwNjY5Ki8KKyAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwgICAgICAgICAgICAgICAvKjB4MDY2QS0weDA2NkYqLworICAgICAgICA0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qMHgwNjcwKi8KKyAgICAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKjB4MDY3MSovCisgICAgICAgIDEgICAgICAgICAgICsgMzIsICAgICAgICAgICAgICAgLyoweDA2NzIqLworICAgICAgICAxICAgICAgICAgICArIDMyLCAgICAgICAgICAgICAgIC8qMHgwNjczKi8KKyAgICAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKjB4MDY3NCovCisgICAgICAgIDEgICAgICAgICAgICsgMzIsICAgICAgICAgICAgICAgLyoweDA2NzUqLworICAgICAgICAxLCAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qMHgwNjc2LTB4MDY3NyovCisgICAgICAgIDErMiwgMSsyLCAxKzIsIDErMiwgMSsyLCAxKzIsICAgLyoweDA2NzgtMHgwNjdEKi8KKyAgICAgICAgMSsyLCAxKzIsIDErMiwgMSsyLCAxKzIsIDErMiwgICAvKjB4MDY3RS0weDA2ODMqLworICAgICAgICAxKzIsIDErMiwgMSsyLCAxKzIsICAgICAgICAgICAgIC8qMHgwNjg0LTB4MDY4NyovCisgICAgICAgIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsICAgLyoweDA2ODgtMHgwNjkxKi8KKyAgICAgICAgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgICAgICAgICAvKjB4MDY5Mi0weDA2OTkqLworICAgICAgICAxKzIsIDErMiwgMSsyLCAxKzIsIDErMiwgMSsyLCAgIC8qMHgwNjlBLTB4MDZBMyovCisgICAgICAgIDErMiwgMSsyLCAxKzIsIDErMiwgICAgICAgICAgICAgLyoweDA2OUEtMHgwNkEzKi8KKyAgICAgICAgMSsyLCAxKzIsIDErMiwgMSsyLCAxKzIsIDErMiwgICAvKjB4MDZBNC0weDA2QUQqLworICAgICAgICAxKzIsIDErMiwgMSsyLCAxKzIsICAgICAgICAgICAgIC8qMHgwNkE0LTB4MDZBRCovCisgICAgICAgIDErMiwgMSsyLCAxKzIsIDErMiwgMSsyLCAxKzIsICAgLyoweDA2QUUtMHgwNkI3Ki8KKyAgICAgICAgMSsyLCAxKzIsIDErMiwgMSsyLCAgICAgICAgICAgICAvKjB4MDZBRS0weDA2QjcqLworICAgICAgICAxKzIsIDErMiwgMSsyLCAxKzIsIDErMiwgMSsyLCAgIC8qMHgwNkI4LTB4MDZCRiovCisgICAgICAgIDErMiwgMSsyLCAgICAgICAgICAgICAgICAgICAgICAgLyoweDA2QjgtMHgwNkJGKi8KKyAgICAgICAgMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKjB4MDZDMCovCisgICAgICAgIDErMiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoweDA2QzEqLworICAgICAgICAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAgIC8qMHgwNkMyLTB4MDZDQiovCisgICAgICAgIDErMiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoweDA2Q0MqLworICAgICAgICAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qMHgwNkNEKi8KKyAgICAgICAgMSsyLCAxKzIsIDErMiwgMSsyLCAgICAgICAgICAgICAvKjB4MDZDRS0weDA2RDEqLworICAgICAgICAxLCAxICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qMHgwNkQyLTB4MDZEMyovCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludFtdIHByZXNMaW5rID0geworICAgICAgICAxICsgMiwgICAgICAgICAgICAgICAgICAgICAgICAvKjB4RkU3MCovCisgICAgICAgIDEgKyAyLCAgICAgICAgICAgICAgICAgICAgICAgIC8qMHhGRTcxKi8KKyAgICAgICAgMSArIDIsIDAsIDErIDIsIDAsIDErIDIsICAgICAgLyoweEZFNzItMHhGRTc2Ki8KKyAgICAgICAgMSArIDIsICAgICAgICAgICAgICAgICAgICAgICAgLyoweEZFNzcqLworICAgICAgICAxKyAyLCAxICsgMiwgMSsyLCAxICsgMiwgICAgICAvKjB4RkU3OC0weEZFODEqLworICAgICAgICAxKyAyLCAxICsgMiwgMSsyLCAxICsgMiwgICAgICAvKjB4RkU4Mi0weEZFODUqLworICAgICAgICAwLCAwICsgMzIsIDEgKyAzMiwgMCArIDMyLCAgICAvKjB4RkU4Ni0weEZFODkqLworICAgICAgICAxICsgMzIsIDAsIDEsICAwICsgMzIsICAgICAgICAvKjB4RkU4QS0weEZFOEQqLworICAgICAgICAxICsgMzIsIDAsIDIsICAxICsgMiwgICAgICAgICAvKjB4RkU4RS0weEZFOTEqLworICAgICAgICAxLCAwICsgMzIsIDEgKyAzMiwgMCwgICAgICAgICAvKjB4RkU5Mi0weEZFOTUqLworICAgICAgICAyLCAxICsgMiwgMSwgMCwgICAgICAgICAgICAgICAvKjB4RkU5Ni0weEZFOTkqLworICAgICAgICAxLCAwLCAyLCAxICsgMiwgICAgICAgICAgICAgICAvKjB4RkU5QS0weEZFOUQqLworICAgICAgICAxLCAwLCAyLCAxICsgMiwgICAgICAgICAgICAgICAvKjB4RkU5RS0weEZFQTEqLworICAgICAgICAxLCAwLCAyLCAxICsgMiwgICAgICAgICAgICAgICAvKjB4RkVBMi0weEZFQTUqLworICAgICAgICAxLCAwLCAyLCAxICsgMiwgICAgICAgICAgICAgICAvKjB4RkVBNi0weEZFQTkqLworICAgICAgICAxLCAwLCAyLCAxICsgMiwgICAgICAgICAgICAgICAvKjB4RkVBQS0weEZFQUQqLworICAgICAgICAxLCAwLCAxLCAwLCAgICAgICAgICAgICAgICAgICAvKjB4RkVBRS0weEZFQjEqLworICAgICAgICAxLCAwLCAxLCAwLCAgICAgICAgICAgICAgICAgICAvKjB4RkVCMi0weEZFQjUqLworICAgICAgICAxLCAwLCAyLCAxKzIsICAgICAgICAgICAgICAgICAvKjB4RkVCNi0weEZFQjkqLworICAgICAgICAxLCAwLCAyLCAxKzIsICAgICAgICAgICAgICAgICAvKjB4RkVCQS0weEZFQkQqLworICAgICAgICAxLCAwLCAyLCAxKzIsICAgICAgICAgICAgICAgICAvKjB4RkVCRS0weEZFQzEqLworICAgICAgICAxLCAwLCAyLCAxKzIsICAgICAgICAgICAgICAgICAvKjB4RkVDMi0weEZFQzUqLworICAgICAgICAxLCAwLCAyLCAxKzIsICAgICAgICAgICAgICAgICAvKjB4RkVDNi0weEZFQzkqLworICAgICAgICAxLCAwLCAyLCAxKzIsICAgICAgICAgICAgICAgICAvKjB4RkVDQS0weEZFQ0QqLworICAgICAgICAxLCAwLCAyLCAxKzIsICAgICAgICAgICAgICAgICAvKjB4RkVDRS0weEZFRDEqLworICAgICAgICAxLCAwLCAyLCAxKzIsICAgICAgICAgICAgICAgICAvKjB4RkVEMi0weEZFRDUqLworICAgICAgICAxLCAwLCAyLCAxKzIsICAgICAgICAgICAgICAgICAvKjB4RkVENi0weEZFRDkqLworICAgICAgICAxLCAwLCAyLCAxKzIsICAgICAgICAgICAgICAgICAvKjB4RkVEQS0weEZFREQqLworICAgICAgICAxLCAwLCAyLCAxKzIsICAgICAgICAgICAgICAgICAvKjB4RkVERS0weEZFRTEqLworICAgICAgICAxLCAwICsgMTYsIDIgKyAxNiwgMSArIDIgKzE2LCAvKjB4RkVFMi0weEZFRTUqLworICAgICAgICAxICsgMTYsIDAsIDIsIDErMiwgICAgICAgICAgICAvKjB4RkVFNi0weEZFRTkqLworICAgICAgICAxLCAwLCAyLCAxKzIsICAgICAgICAgICAgICAgICAvKjB4RkVFQS0weEZFRUQqLworICAgICAgICAxLCAwLCAyLCAxKzIsICAgICAgICAgICAgICAgICAvKjB4RkVFRS0weEZFRjEqLworICAgICAgICAxLCAwLCAxLCAwLCAgICAgICAgICAgICAgICAgICAvKjB4RkVGMi0weEZFRjUqLworICAgICAgICAxLCAwLCAyLCAxKzIsICAgICAgICAgICAgICAgICAvKjB4RkVGNi0weEZFRjkqLworICAgICAgICAxLCAwLCAxLCAwLCAgICAgICAgICAgICAgICAgICAvKjB4RkVGQS0weEZFRkQqLworICAgICAgICAxLCAwLCAxLCAwLAorICAgICAgICAxCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGludFtdIGNvbnZlcnRGRXRvMDYgPSB7CisgICAgICAgIC8qKioqKioqKioqKjAqKioqKioxKioqKioqMioqKioqKjMqKioqKio0KioqKioqNSoqKioqKjYqKioqKio3KioqKioqOCoqKioqKjkqKioqKipBKioqKioqQioqKioqKkMqKioqKipEKioqKioqRSoqKioqKkYqKiovCisgICAgICAgIC8qRkU3Ki8gICAweDY0QiwgMHg2NEIsIDB4NjRDLCAweDY0QywgMHg2NEQsIDB4NjRELCAweDY0RSwgMHg2NEUsIDB4NjRGLCAweDY0RiwgMHg2NTAsIDB4NjUwLCAweDY1MSwgMHg2NTEsIDB4NjUyLCAweDY1MiwKKyAgICAgICAgLypGRTgqLyAgIDB4NjIxLCAweDYyMiwgMHg2MjIsIDB4NjIzLCAweDYyMywgMHg2MjQsIDB4NjI0LCAweDYyNSwgMHg2MjUsIDB4NjI2LCAweDYyNiwgMHg2MjYsIDB4NjI2LCAweDYyNywgMHg2MjcsIDB4NjI4LAorICAgICAgICAvKkZFOSovICAgMHg2MjgsIDB4NjI4LCAweDYyOCwgMHg2MjksIDB4NjI5LCAweDYyQSwgMHg2MkEsIDB4NjJBLCAweDYyQSwgMHg2MkIsIDB4NjJCLCAweDYyQiwgMHg2MkIsIDB4NjJDLCAweDYyQywgMHg2MkMsCisgICAgICAgIC8qRkVBKi8gICAweDYyQywgMHg2MkQsIDB4NjJELCAweDYyRCwgMHg2MkQsIDB4NjJFLCAweDYyRSwgMHg2MkUsIDB4NjJFLCAweDYyRiwgMHg2MkYsIDB4NjMwLCAweDYzMCwgMHg2MzEsIDB4NjMxLCAweDYzMiwKKyAgICAgICAgLypGRUIqLyAgIDB4NjMyLCAweDYzMywgMHg2MzMsIDB4NjMzLCAweDYzMywgMHg2MzQsIDB4NjM0LCAweDYzNCwgMHg2MzQsIDB4NjM1LCAweDYzNSwgMHg2MzUsIDB4NjM1LCAweDYzNiwgMHg2MzYsIDB4NjM2LAorICAgICAgICAvKkZFQyovICAgMHg2MzYsIDB4NjM3LCAweDYzNywgMHg2MzcsIDB4NjM3LCAweDYzOCwgMHg2MzgsIDB4NjM4LCAweDYzOCwgMHg2MzksIDB4NjM5LCAweDYzOSwgMHg2MzksIDB4NjNBLCAweDYzQSwgMHg2M0EsCisgICAgICAgIC8qRkVEKi8gICAweDYzQSwgMHg2NDEsIDB4NjQxLCAweDY0MSwgMHg2NDEsIDB4NjQyLCAweDY0MiwgMHg2NDIsIDB4NjQyLCAweDY0MywgMHg2NDMsIDB4NjQzLCAweDY0MywgMHg2NDQsIDB4NjQ0LCAweDY0NCwKKyAgICAgICAgLypGRUUqLyAgIDB4NjQ0LCAweDY0NSwgMHg2NDUsIDB4NjQ1LCAweDY0NSwgMHg2NDYsIDB4NjQ2LCAweDY0NiwgMHg2NDYsIDB4NjQ3LCAweDY0NywgMHg2NDcsIDB4NjQ3LCAweDY0OCwgMHg2NDgsIDB4NjQ5LAorICAgICAgICAvKkZFRiovICAgMHg2NDksIDB4NjRBLCAweDY0QSwgMHg2NEEsIDB4NjRBLCAweDY1QywgMHg2NUMsIDB4NjVELCAweDY1RCwgMHg2NUUsIDB4NjVFLCAweDY1RiwgMHg2NUYKKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IHNoYXBlVGFibGVbXVtdW10gPSB7CisgICAgICAgIHsgezAsMCwwLDB9LCB7MCwwLDAsMH0sIHswLDEsMCwzfSwgezAsMSwwLDF9IH0sCisgICAgICAgIHsgezAsMCwyLDJ9LCB7MCwwLDEsMn0sIHswLDEsMSwyfSwgezAsMSwxLDN9IH0sCisgICAgICAgIHsgezAsMCwwLDB9LCB7MCwwLDAsMH0sIHswLDEsMCwzfSwgezAsMSwwLDN9IH0sCisgICAgICAgIHsgezAsMCwxLDJ9LCB7MCwwLDEsMn0sIHswLDEsMSwyfSwgezAsMSwxLDN9IH0KKyAgICB9OworCisgICAgLyoKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIHNoYXBlcyBFdXJvcGVhbiBkaWdpdHMgdG8gQXJhYmljLUluZGljIGRpZ2l0cworICAgICAqIGluLXBsYWNlLCB3cml0aW5nIG92ZXIgdGhlIGlucHV0IGNoYXJhY3RlcnMuICBEYXRhIGlzIGluIHZpc3VhbAorICAgICAqIG9yZGVyLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBzaGFwZVRvQXJhYmljRGlnaXRzV2l0aENvbnRleHQoY2hhcltdIGRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBkaWdpdEJhc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGxhc3RTdHJvbmdXYXNBTCkgeworCisgICAgICAgIGRpZ2l0QmFzZSAtPSAnMCc7IC8vIG1vdmUgY29tbW9uIGFkanVzdG1lbnQgb3V0IG9mIGxvb3AKKworICAgICAgICBmb3IoaW50IGkgPSBzdGFydCArIGxlbmd0aDsgLS1pID49IHN0YXJ0OykgeworICAgICAgICAgICAgY2hhciBjaCA9IGRlc3RbaV07CisgICAgICAgICAgICBzd2l0Y2ggKFVDaGFyYWN0ZXIuZ2V0RGlyZWN0aW9uKGNoKSkgeworICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyRGlyZWN0aW9uLkxFRlRfVE9fUklHSFQ6CisgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVDoKKyAgICAgICAgICAgICAgICBsYXN0U3Ryb25nV2FzQUwgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUX0FSQUJJQzoKKyAgICAgICAgICAgICAgICBsYXN0U3Ryb25nV2FzQUwgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyRGlyZWN0aW9uLkVVUk9QRUFOX05VTUJFUjoKKyAgICAgICAgICAgICAgICBpZiAobGFzdFN0cm9uZ1dhc0FMICYmIGNoIDw9ICdcdTAwMzknKSB7CisgICAgICAgICAgICAgICAgICAgIGRlc3RbaV0gPSAoY2hhcikoY2ggKyBkaWdpdEJhc2UpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICAqIE5hbWUgICAgOiBpbnZlcnRCdWZmZXIKKyAgICAgKiBGdW5jdGlvbjogVGhpcyBmdW5jdGlvbiBpbnZlcnRzIHRoZSBidWZmZXIsIGl0J3MgdXNlZAorICAgICAqICAgICAgICAgICBpbiBjYXNlIHRoZSB1c2VyIHNwZWNpZmllcyB0aGUgYnVmZmVyIHRvIGJlCisgICAgICogICAgICAgICAgIFRFWFRfRElSRUNUSU9OX0xPR0lDQUwKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGludmVydEJ1ZmZlcihjaGFyW10gYnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoKSB7CisKKyAgICAgICAgZm9yKGludCBpID0gc3RhcnQsIGogPSBzdGFydCArIGxlbmd0aCAtIDE7IGkgPCBqOyBpKyssIC0taikgeworICAgICAgICAgICAgY2hhciB0ZW1wID0gYnVmZmVyW2ldOworICAgICAgICAgICAgYnVmZmVyW2ldID0gYnVmZmVyW2pdOworICAgICAgICAgICAgYnVmZmVyW2pdID0gdGVtcDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgICogTmFtZSAgICA6IGNoYW5nZUxhbUFsZWYKKyAgICAgKiBGdW5jdGlvbjogQ29udmVydHMgdGhlIEFsZWYgY2hhcmFjdGVycyBpbnRvIGFuIGVxdWl2YWxlbnQKKyAgICAgKiAgICAgICAgICAgTGFtQWxlZiBsb2NhdGlvbiBpbiB0aGUgMHgwNnh4IFJhbmdlLCB0aGlzIGlzIGFuCisgICAgICogICAgICAgICAgIGludGVybWVkaWF0ZSBzdGFnZSBpbiB0aGUgb3BlcmF0aW9uIG9mIHRoZSBwcm9ncmFtCisgICAgICogICAgICAgICAgIGxhdGVyIGl0J2xsIGJlIGNvbnZlcnRlZCBpbnRvIHRoZSAweEZFeHggTGFtQWxlZnMgCisgICAgICogICAgICAgICAgIGluIHRoZSBzaGFwaW5nIGZ1bmN0aW9uLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGNoYXIgY2hhbmdlTGFtQWxlZihjaGFyIGNoKSB7CisgICAgICAgIHN3aXRjaChjaCkgeworICAgICAgICBjYXNlICdcdTA2MjInOiByZXR1cm4gJ1x1MDY1Qyc7CisgICAgICAgIGNhc2UgJ1x1MDYyMyc6IHJldHVybiAnXHUwNjVEJzsKKyAgICAgICAgY2FzZSAnXHUwNjI1JzogcmV0dXJuICdcdTA2NUUnOworICAgICAgICBjYXNlICdcdTA2MjcnOiByZXR1cm4gJ1x1MDY1Ric7CisgICAgICAgIGRlZmF1bHQ6ICByZXR1cm4gJ1x1MDAwMCc7IC8vIG5vdCBhIGxhbWFsZWYKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgICogTmFtZSAgICA6IHNwZWNpYWxDaGFyCisgICAgICogRnVuY3Rpb246IFNwZWNpYWwgQXJhYmljIGNoYXJhY3RlcnMgbmVlZCBzcGVjaWFsIGhhbmRsaW5nIGluIHRoZSBzaGFwZVVuaWNvZGUKKyAgICAgKiAgICAgICAgICAgZnVuY3Rpb24sIHRoaXMgZnVuY3Rpb24gcmV0dXJucyAxIG9yIDIgZm9yIHRoZXNlIHNwZWNpYWwgY2hhcmFjdGVycworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBzcGVjaWFsQ2hhcihjaGFyIGNoKSB7CisgICAgICAgIGlmICgoY2ggPiAnXHUwNjIxJyAmJiBjaCA8ICdcdTA2MjYnKSB8fCAKKyAgICAgICAgICAgIChjaCA9PSAnXHUwNjI3JykgfHwKKyAgICAgICAgICAgIChjaCA+ICdcdTA2MkUnICYmIGNoIDwgJ1x1MDYzMycpIHx8CisgICAgICAgICAgICAoY2ggPiAnXHUwNjQ3JyAmJiBjaCA8ICdcdTA2NEEnKSB8fAorICAgICAgICAgICAgKGNoID09ICdcdTA2MjknKSkgeworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIH0gZWxzZSBpZiAoY2ggPj0gJ1x1MDY0QicgJiYgY2g8PSAnXHUwNjUyJykgeworICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgIH0gZWxzZSBpZiAoY2ggPj0gMHgwNjUzICYmIGNoIDw9IDB4MDY1NSB8fCAKKyAgICAgICAgICAgICAgICAgICBjaCA9PSAweDA2NzAgfHwKKyAgICAgICAgICAgICAgICAgICBjaCA+PSAweEZFNzAgJiYgY2ggPD0gMHhGRTdGKSB7CisgICAgICAgICAgICByZXR1cm4gMzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qCisgICAgICogTmFtZSAgICA6IGdldExpbmsKKyAgICAgKiBGdW5jdGlvbjogUmVzb2x2ZXMgdGhlIGxpbmsgYmV0d2VlbiB0aGUgY2hhcmFjdGVycyBhcyAKKyAgICAgKiAgICAgICAgICAgQXJhYmljIGNoYXJhY3RlcnMgaGF2ZSBmb3VyIGZvcm1zIDoKKyAgICAgKiAgICAgICAgICAgSXNvbGF0ZWQsIEluaXRpYWwsIE1pZGRsZSBhbmQgRmluYWwgRm9ybQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBnZXRMaW5rKGNoYXIgY2gpIHsKKyAgICAgICAgaWYgKGNoID49ICdcdTA2MjInICYmIGNoIDw9ICdcdTA2RDMnKSB7CisgICAgICAgICAgICByZXR1cm4gYXJhTGlua1tjaCAtICdcdTA2MjInXTsKKyAgICAgICAgfSBlbHNlIGlmIChjaCA9PSAnXHUyMDBEJykgeworICAgICAgICAgICAgcmV0dXJuIDM7CisgICAgICAgIH0gZWxzZSBpZiAoY2ggPj0gJ1x1MjA2RCcgJiYgY2ggPD0gJ1x1MjA2RicpIHsKKyAgICAgICAgICAgIHJldHVybiA0OworICAgICAgICB9IGVsc2UgaWYgKGNoID49ICdcdUZFNzAnICYmIGNoIDw9ICdcdUZFRkMnKSB7CisgICAgICAgICAgICByZXR1cm4gcHJlc0xpbmtbY2ggLSAnXHVGRTcwJ107CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgICogTmFtZSAgICA6IGNvdW50U3BhY2VzCisgICAgICogRnVuY3Rpb246IENvdW50cyB0aGUgbnVtYmVyIG9mIHNwYWNlcworICAgICAqICAgICAgICAgICBhdCBlYWNoIGVuZCBvZiB0aGUgbG9naWNhbCBidWZmZXIKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgY291bnRTcGFjZXNMZWZ0KGNoYXJbXSBkZXN0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb3VudCkgeworICAgICAgICBmb3IgKGludCBpID0gc3RhcnQsIGUgPSBzdGFydCArIGNvdW50OyBpIDwgZTsgKytpKSB7CisgICAgICAgICAgICBpZiAoZGVzdFtpXSAhPSAnXHUwMDIwJykgeworICAgICAgICAgICAgICAgIHJldHVybiBpIC0gc3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNvdW50OworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGludCBjb3VudFNwYWNlc1JpZ2h0KGNoYXJbXSBkZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY291bnQpIHsKKworICAgICAgICBmb3IgKGludCBpID0gc3RhcnQgKyBjb3VudDsgLS1pID49IHN0YXJ0OykgeworICAgICAgICAgICAgaWYgKGRlc3RbaV0gIT0gJ1x1MDAyMCcpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RhcnQgKyBjb3VudCAtIDEgLSBpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjb3VudDsKKyAgICB9CisKKyAgICAvKgorICAgICAqIE5hbWUgICAgOiBpc1Rhc2hrZWVsQ2hhcgorICAgICAqIEZ1bmN0aW9uOiBSZXR1cm5zIDEgZm9yIFRhc2hrZWVsIGNoYXJhY3RlcnMgZWxzZSByZXR1cm4gMAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNUYXNoa2VlbENoYXIoY2hhciBjaCkgeworICAgICAgICByZXR1cm4gY2ggPj0nXHUwNjRCJyAmJiBjaCA8PSAnXHUwNjUyJzsKKyAgICB9CisKKyAgICAvKgorICAgICAqIE5hbWUgICAgOiBpc0FsZWZDaGFyCisgICAgICogRnVuY3Rpb246IFJldHVybnMgMSBmb3IgQWxlZiBjaGFyYWN0ZXJzIGVsc2UgcmV0dXJuIDAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzQWxlZkNoYXIoY2hhciBjaCkgeworICAgICAgICByZXR1cm4gY2ggPT0gJ1x1MDYyMicgfHwgY2ggPT0gJ1x1MDYyMycgfHwgY2ggPT0gJ1x1MDYyNScgfHwgY2ggPT0gJ1x1MDYyNyc7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBOYW1lICAgIDogaXNMYW1BbGVmQ2hhcgorICAgICAqIEZ1bmN0aW9uOiBSZXR1cm5zIDEgZm9yIExhbUFsZWYgY2hhcmFjdGVycyBlbHNlIHJldHVybiAwCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBpc0xhbUFsZWZDaGFyKGNoYXIgY2gpIHsKKyAgICAgICAgcmV0dXJuIGNoID49ICdcdUZFRjUnICYmIGNoIDw9ICdcdUZFRkMnOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNOb3JtYWxpemVkTGFtQWxlZkNoYXIoY2hhciBjaCkgeworICAgICAgICByZXR1cm4gY2ggPj0gJ1x1MDY1QycgJiYgY2ggPD0gJ1x1MDY1Ric7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBOYW1lICAgIDogY2FsY3VsYXRlU2l6ZQorICAgICAqIEZ1bmN0aW9uOiBUaGlzIGZ1bmN0aW9uIGNhbGN1bGF0ZXMgdGhlIGRlc3RTaXplIHRvIGJlIHVzZWQgaW4gcHJlZmxpZ2h0aW5nCisgICAgICogICAgICAgICAgIHdoZW4gdGhlIGRlc3RTaXplIGlzIGVxdWFsIHRvIDAKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBjYWxjdWxhdGVTaXplKGNoYXJbXSBzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc291cmNlU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc291cmNlTGVuZ3RoKSB7CisJCisgICAgICAgIGludCBkZXN0U2l6ZSA9IHNvdXJjZUxlbmd0aDsKKworICAgICAgICBzd2l0Y2ggKG9wdGlvbnMgJiBMRVRURVJTX01BU0spIHsKKyAgICAgICAgY2FzZSBMRVRURVJTX1NIQVBFOgorICAgICAgICBjYXNlIExFVFRFUlNfU0hBUEVfVEFTSEtFRUxfSVNPTEFURUQ6CisgICAgICAgICAgICBpZiAoaXNMb2dpY2FsKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IHNvdXJjZVN0YXJ0LCBlID0gc291cmNlU3RhcnQgKyBzb3VyY2VMZW5ndGggLSAxOyBpIDwgZTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2VbaV0gPT0gJ1x1MDY0NCcgJiYgaXNBbGVmQ2hhcihzb3VyY2VbaSsxXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC0tZGVzdFNpemU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeyAvLyB2aXN1YWwKKyAgICAgICAgICAgICAgICBmb3IoaW50IGkgPSBzb3VyY2VTdGFydCArIDEsIGUgPSBzb3VyY2VTdGFydCArIHNvdXJjZUxlbmd0aDsgaSA8IGU7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlW2ldID09ICdcdTA2NDQnICYmIGlzQWxlZkNoYXIoc291cmNlW2ktMV0pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAtLWRlc3RTaXplOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBMRVRURVJTX1VOU0hBUEU6CisgICAgICAgICAgICBmb3IoaW50IGkgPSBzb3VyY2VTdGFydCwgZSA9IHNvdXJjZVN0YXJ0ICsgc291cmNlTGVuZ3RoOyBpIDwgZTsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKGlzTGFtQWxlZkNoYXIoc291cmNlW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBkZXN0U2l6ZSsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBkZXN0U2l6ZTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIE5hbWUgICAgOiByZW1vdmVMYW1BbGVmU3BhY2VzCisgICAgICogRnVuY3Rpb246IFRoZSBzaGFwZVVuaWNvZGUgZnVuY3Rpb24gY29udmVydHMgTGFtICsgQWxlZiBpbnRvIExhbUFsZWYgKyBzcGFjZSwKKyAgICAgKiAgICAgICAgICAgdGhpcyBmdW5jdGlvbiByZW1vdmVzIHRoZSBzcGFjZXMgYmVoaW5kIHRoZSBMYW1BbGVmcyBhY2NvcmRpbmcgdG8KKyAgICAgKiAgICAgICAgICAgdGhlIG9wdGlvbnMgdGhlIHVzZXIgc3BlY2lmaWVzLCB0aGUgc3BhY2VzIGFyZSByZW1vdmVkIHRvIHRoZSBlbmQKKyAgICAgKiAgICAgICAgICAgb2YgdGhlIGJ1ZmZlciwgb3Igc2hyaW5rIHRoZSBidWZmZXIgYW5kIHJlbW92ZSBzcGFjZXMgZm9yIGdvb2QKKyAgICAgKiAgICAgICAgICAgb3IgbGVhdmUgdGhlIGJ1ZmZlciBhcyBpdCBpcyBMYW1BbGVmICsgc3BhY2UuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgcmVtb3ZlTGFtQWxlZlNwYWNlcyhjaGFyW10gZGVzdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoKSB7CisJCisgICAgICAgIGludCBsZW5PcHRpb25zID0gb3B0aW9ucyAmIExFTkdUSF9NQVNLOworICAgICAgICBpZiAoIWlzTG9naWNhbCkgeworICAgICAgICAgICAgc3dpdGNoIChsZW5PcHRpb25zKSB7CisgICAgICAgICAgICBjYXNlIExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfQkVHSU5OSU5HOiBsZW5PcHRpb25zID0gTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9FTkQ7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBMRU5HVEhfRklYRURfU1BBQ0VTX0FUX0VORDogbGVuT3B0aW9ucyA9IExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfQkVHSU5OSU5HOyBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6IGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKGxlbk9wdGlvbnMgPT0gTEVOR1RIX0ZJWEVEX1NQQUNFU19ORUFSKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gc3RhcnQsIGUgPSBpICsgbGVuZ3RoOyBpIDwgZTsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKGRlc3RbaV0gPT0gJ1x1ZmZmZicpIHsKKyAgICAgICAgICAgICAgICAgICAgZGVzdFtpXSA9ICdcdTAwMjAnOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGZpbmFsIGludCBlID0gc3RhcnQgKyBsZW5ndGg7CisgICAgICAgICAgICBpbnQgdyA9IGU7CisgICAgICAgICAgICBpbnQgciA9IGU7CisgICAgICAgICAgICB3aGlsZSAoLS1yID49IHN0YXJ0KSB7CisgICAgICAgICAgICAgICAgY2hhciBjaCA9IGRlc3Rbcl07CisgICAgICAgICAgICAgICAgaWYgKGNoICE9ICdcdWZmZmYnKSB7CisgICAgICAgICAgICAgICAgICAgIC0tdzsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHcgIT0gcikgeworICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFt3XSA9IGNoOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobGVuT3B0aW9ucyA9PSBMRU5HVEhfRklYRURfU1BBQ0VTX0FUX0VORCkgeworICAgICAgICAgICAgICAgIHdoaWxlICh3ID4gc3RhcnQpIHsKKyAgICAgICAgICAgICAgICAgICAgZGVzdFstLXddID0gJ1x1MDAyMCc7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAodyA+IHN0YXJ0KSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHNoaWZ0LCBhc3N1bWUgc21hbGwgYnVmZmVyIHNpemUgc28gZG9uJ3QgdXNlIGFycmF5Y29weQorICAgICAgICAgICAgICAgICAgICByID0gdzsKKyAgICAgICAgICAgICAgICAgICAgdyA9IHN0YXJ0OworICAgICAgICAgICAgICAgICAgICB3aGlsZSAociA8IGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbdysrXSA9IGRlc3RbcisrXTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHcgPSBlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobGVuT3B0aW9ucyA9PSBMRU5HVEhfR1JPV19TSFJJTkspIHsKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gdyAtIHN0YXJ0OworICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8vIHNwYWNlcyBhdCBiZWdpbm5pbmcKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHcgPCBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0W3crK10gPSAnXHUwMDIwJzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbGVuZ3RoOworICAgIH0KKworICAgIC8qCisgICAgICogTmFtZSAgICA6IGV4cGFuZExhbUFsZWYKKyAgICAgKiBGdW5jdGlvbjogTGFtQWxlZiBuZWVkcyBzcGVjaWFsIGhhbmRsaW5nIGFzIHRoZSBMYW1BbGVmIGlzCisgICAgICogICAgICAgICAgIG9uZSBjaGFyYWN0ZXIgd2hpbGUgZXhwYW5kaW5nIGl0IHdpbGwgZ2l2ZSB0d28KKyAgICAgKiAgICAgICAgICAgY2hhcmFjdGVycyBMYW0gKyBBbGVmLCBzbyB3ZSBuZWVkIHRvIGV4cGFuZCB0aGUgTGFtQWxlZgorICAgICAqICAgICAgICAgICBpbiBuZWFyIG9yIGZhciBzcGFjZXMgYWNjb3JkaW5nIHRvIHRoZSBvcHRpb25zIHRoZSB1c2VyCisgICAgICogICAgICAgICAgIHNwZWNpZmllcyBvciBpbmNyZWFzZSB0aGUgYnVmZmVyIHNpemUuCisgICAgICogICAgICAgICAgIERlc3QgaGFzIGVub3VnaCByb29tIGZvciB0aGUgZXhwYW5zaW9uIGlmIHdlIGFyZSBncm93aW5nLgorICAgICAqICAgICAgICAgICBsYW1hbGVmIGFyZSBub3JtYWxpemVkIHRvIHRoZSAnc3BlY2lhbCBjaGFyYWN0ZXJzJworICAgICAqLworICAgIHByaXZhdGUgaW50IGV4cGFuZExhbUFsZWYoY2hhcltdIGRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxhY291bnQpIHRocm93cyBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uIHsKKworICAgICAgICBpbnQgbGVuT3B0aW9ucyA9IG9wdGlvbnMgJiBMRU5HVEhfTUFTSzsKKyAgICAgICAgaWYgKCFpc0xvZ2ljYWwpIHsKKyAgICAgICAgICAgIHN3aXRjaCAobGVuT3B0aW9ucykgeworICAgICAgICAgICAgY2FzZSBMRU5HVEhfRklYRURfU1BBQ0VTX0FUX0JFR0lOTklORzogbGVuT3B0aW9ucyA9IExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfRU5EOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9FTkQ6IGxlbk9wdGlvbnMgPSBMRU5HVEhfRklYRURfU1BBQ0VTX0FUX0JFR0lOTklORzsgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OiBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHN3aXRjaCAobGVuT3B0aW9ucykgeworICAgICAgICBjYXNlIExFTkdUSF9HUk9XX1NIUklOSzogCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgciA9IHN0YXJ0ICsgbGVuZ3RoLCB3ID0gciArIGxhY291bnQ7IC0tciA+PSBzdGFydDspIHsKKyAgICAgICAgICAgICAgICAgICAgY2hhciBjaCA9IGRlc3Rbcl07CisgICAgICAgICAgICAgICAgICAgIGlmIChpc05vcm1hbGl6ZWRMYW1BbGVmQ2hhcihjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbLS13XSA9ICdcdTA2NDQnOworICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFstLXddID0gY29udmVydE5vcm1hbGl6ZWRMYW1BbGVmW2NoIC0gJ1x1MDY1QyddOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFstLXddID0gY2g7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsZW5ndGggKz0gbGFjb3VudDsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgTEVOR1RIX0ZJWEVEX1NQQUNFU19ORUFSOiAKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAoaXNOb3JtYWxpemVkTGFtQWxlZkNoYXIoZGVzdFtzdGFydF0pKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uKCJubyBzcGFjZSBmb3IgbGFtYWxlZiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gc3RhcnQgKyBsZW5ndGg7IC0taSA+IHN0YXJ0OykgeyAvLyBkb24ndCBjaGVjayBzdGFydCwgYWxyZWFkeSBjaGVja2VkCisgICAgICAgICAgICAgICAgICAgIGNoYXIgY2ggPSBkZXN0W2ldOworICAgICAgICAgICAgICAgICAgICBpZiAoaXNOb3JtYWxpemVkTGFtQWxlZkNoYXIoY2gpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGVzdFtpLTFdID09ICdcdTAwMjAnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFtpXSA9ICdcdTA2NDQnOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbLS1pXSA9IGNvbnZlcnROb3JtYWxpemVkTGFtQWxlZltjaCAtICdcdTA2NUMnXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyYWJpY1NoYXBpbmdFeGNlcHRpb24oIm5vIHNwYWNlIGZvciBsYW1hbGVmIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfRU5EOiAKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAobGFjb3VudCA+IGNvdW50U3BhY2VzTGVmdChkZXN0LCBzdGFydCwgbGVuZ3RoKSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJhYmljU2hhcGluZ0V4Y2VwdGlvbigibm8gc3BhY2UgZm9yIGxhbWFsZWYiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZm9yIChpbnQgciA9IHN0YXJ0ICsgbGFjb3VudCwgdyA9IHN0YXJ0LCBlID0gc3RhcnQgKyBsZW5ndGg7IHIgPCBlOyArK3IpIHsKKyAgICAgICAgICAgICAgICAgICAgY2hhciBjaCA9IGRlc3Rbcl07CisgICAgICAgICAgICAgICAgICAgIGlmIChpc05vcm1hbGl6ZWRMYW1BbGVmQ2hhcihjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbdysrXSA9IGNvbnZlcnROb3JtYWxpemVkTGFtQWxlZltjaCAtICdcdTA2NUMnXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbdysrXSA9ICdcdTA2NDQnOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFt3KytdID0gY2g7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBMRU5HVEhfRklYRURfU1BBQ0VTX0FUX0JFR0lOTklORzogCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKGxhY291bnQgPiBjb3VudFNwYWNlc1JpZ2h0KGRlc3QsIHN0YXJ0LCBsZW5ndGgpKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uKCJubyBzcGFjZSBmb3IgbGFtYWxlZiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmb3IgKGludCByID0gc3RhcnQgKyBsZW5ndGggLSBsYWNvdW50LCB3ID0gc3RhcnQgKyBsZW5ndGg7IC0tciA+PSBzdGFydDspIHsKKyAgICAgICAgICAgICAgICAgICAgY2hhciBjaCA9IGRlc3Rbcl07CisgICAgICAgICAgICAgICAgICAgIGlmIChpc05vcm1hbGl6ZWRMYW1BbGVmQ2hhcihjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbLS13XSA9ICdcdTA2NDQnOworICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFstLXddID0gY29udmVydE5vcm1hbGl6ZWRMYW1BbGVmW2NoIC0gJ1x1MDY1QyddOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFstLXddID0gY2g7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgfQorCisgICAgLyogQ29udmVydCB0aGUgaW5wdXQgYnVmZmVyIGZyb20gRkV4eCBSYW5nZSBpbnRvIDA2eHggUmFuZ2UKKyAgICAgKiB0byBwdXQgYWxsIGNoYXJhY3RlcnMgaW50byB0aGUgMDZ4eCByYW5nZQorICAgICAqIGV2ZW4gdGhlIGxhbWFsZWYgaXMgY29udmVydGVkIHRvIHRoZSBzcGVjaWFsIHJlZ2lvbiBpbgorICAgICAqIHRoZSAwNnh4IHJhbmdlLiAgUmV0dXJuIHRoZSBudW1iZXIgb2YgbGFtYWxlZiBjaGFycyBmb3VuZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBub3JtYWxpemUoY2hhcltdIGRlc3QsIGludCBzdGFydCwgaW50IGxlbmd0aCkgeworICAgICAgICBpbnQgbGFjb3VudCA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSBzdGFydCwgZSA9IGkgKyBsZW5ndGg7IGkgPCBlOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgY2ggPSBkZXN0W2ldOworICAgICAgICAgICAgaWYgKGNoID49ICdcdUZFNzAnICYmIGNoIDw9ICdcdUZFRkMnKSB7CisgICAgICAgICAgICAgICAgaWYgKGlzTGFtQWxlZkNoYXIoY2gpKSB7CisgICAgICAgICAgICAgICAgICAgICsrbGFjb3VudDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZGVzdFtpXSA9IChjaGFyKWNvbnZlcnRGRXRvMDZbY2ggLSAnXHVGRTcwJ107CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxhY291bnQ7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBOYW1lICAgIDogc2hhcGVVbmljb2RlCisgICAgICogRnVuY3Rpb246IENvbnZlcnRzIGFuIEFyYWJpYyBVbmljb2RlIGJ1ZmZlciBpbiAwNnh4IFJhbmdlIGludG8gYSBzaGFwZWQKKyAgICAgKiAgICAgICAgICAgYXJhYmljIFVuaWNvZGUgYnVmZmVyIGluIEZFeHggUmFuZ2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBzaGFwZVVuaWNvZGUoY2hhcltdIGRlc3QsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXN0U2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRhc2hrZWVsRmxhZykgeworCisKKyAgICAgICAgbm9ybWFsaXplKGRlc3QsIHN0YXJ0LCBsZW5ndGgpOworCisgICAgICAgIC8vIHJlc29sdmUgdGhlIGxpbmsgYmV0d2VlbiB0aGUgY2hhcmFjdGVycy4KKyAgICAgICAgLy8gQXJhYmljIGNoYXJhY3RlcnMgaGF2ZSBmb3VyIGZvcm1zOiBJc29sYXRlZCwgSW5pdGlhbCwgTWVkaWFsIGFuZCBGaW5hbC4KKyAgICAgICAgLy8gVGFzaGtlZWwgY2hhcmFjdGVycyBoYXZlIHR3bywgaXNvbGF0ZWQgb3IgbWVkaWFsLCBhbmQgc29tZXRpbWVzIG9ubHkgaXNvbGF0ZWQuCisgICAgICAgIC8vIHRhc2hrZWVsRmxhZyA9PSAwOiBzaGFwZSBub3JtYWxseSwgMTogc2hhcGUgaXNvbGF0ZWQsIDI6IGRvbid0IHNoYXBlCisKKyAgICAgICAgYm9vbGVhbiBsYW1hbGVmX2ZvdW5kID0gZmFsc2U7CisgICAgICAgIGludCBpID0gc3RhcnQgKyBsZW5ndGggLSAxOworICAgICAgICBpbnQgY3VyckxpbmsgPSBnZXRMaW5rKGRlc3RbaV0pOworICAgICAgICBpbnQgbmV4dExpbmsgPSAwOworICAgICAgICBpbnQgcHJldkxpbmsgPSAwOworICAgICAgICBpbnQgbGFzdExpbmsgPSAwOworICAgICAgICBpbnQgcHJldlBvcyA9IGk7CisgICAgICAgIGludCBsYXN0UG9zID0gaTsKKyAgICAgICAgaW50IG54ID0gLTI7CisgICAgICAgIGludCBudyA9IDA7CisKKyAgICAgICAgd2hpbGUgKGkgPj0gMCkgeworICAgICAgICAgICAgLy8gSWYgaGlnaCBieXRlIG9mIGN1cnJMaW5rID4gMCB0aGVuIHRoZXJlIG1pZ2h0IGJlIG1vcmUgdGhhbiBvbmUgc2hhcGUKKyAgICAgICAgICAgIGlmICgoY3VyckxpbmsgJiAnXHVGRjAwJykgPiAwIHx8IGlzVGFzaGtlZWxDaGFyKGRlc3RbaV0pKSB7CisgICAgICAgICAgICAgICAgbncgPSBpIC0gMTsKKyAgICAgICAgICAgICAgICBueCA9IC0yOworICAgICAgICAgICAgICAgIHdoaWxlIChueCA8IDApIHsgLy8gd2UgbmVlZCB0byBrbm93IGFib3V0IG5leHQgY2hhcgorICAgICAgICAgICAgICAgICAgICBpZiAobncgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5leHRMaW5rID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIG54ID0gSW50ZWdlci5NQVhfVkFMVUU7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuZXh0TGluayA9IGdldExpbmsoZGVzdFtud10pOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChuZXh0TGluayAmIElSUkVMRVZBTlQpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBueCA9IG53OworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLW53OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKCgoY3VyckxpbmsgJiBBTEVGVFlQRSkgPiAwKSAmJiAoKGxhc3RMaW5rICYgTEFNVFlQRSkgPiAwKSkgeworICAgICAgICAgICAgICAgICAgICBsYW1hbGVmX2ZvdW5kID0gdHJ1ZTsgCisgICAgICAgICAgICAgICAgICAgIGNoYXIgd0xhbWFsZWYgPSBjaGFuZ2VMYW1BbGVmKGRlc3RbaV0pOyAvLyBnZXQgZnJvbSAweDA2NUMtMHgwNjVmCisgICAgICAgICAgICAgICAgICAgIGlmICh3TGFtYWxlZiAhPSAnXHUwMDAwJykgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVwbGFjZSBhbGVmIGJ5IG1hcmtlciwgaXQgd2lsbCBiZSByZW1vdmVkIGxhdGVyCisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0W2ldID0gJ1x1ZmZmZic7CisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0W2xhc3RQb3NdID0gd0xhbWFsZWY7CisgICAgICAgICAgICAgICAgICAgICAgICBpID0gbGFzdFBvczsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGxhc3RMaW5rID0gcHJldkxpbms7CisgICAgICAgICAgICAgICAgICAgIGN1cnJMaW5rID0gZ2V0TGluayh3TGFtYWxlZik7IC8vIHJlcXVpcmVzICdcdTAwMDAnLCB1bmZvcnR1bmF0ZWx5CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gZ2V0IHRoZSBwcm9wZXIgc2hhcGUgYWNjb3JkaW5nIHRvIGxpbmsgYWJpbGl0eSBvZiBuZWlnaGJvcnMKKyAgICAgICAgICAgICAgICAvLyBhbmQgb2YgY2hhcmFjdGVyOyBkZXBlbmRzIG9uIHRoZSBvcmRlciBvZiB0aGUgc2hhcGVzCisgICAgICAgICAgICAgICAgLy8gKGlzb2xhdGVkLCBpbml0aWFsLCBtaWRkbGUsIGZpbmFsKSBpbiB0aGUgY29tcGF0aWJpbGl0eSBhcmVhCisKKyAgICAgICAgICAgICAgICBpbnQgZmxhZyA9IHNwZWNpYWxDaGFyKGRlc3RbaV0pOworCisgICAgICAgICAgICAgICAgaW50IHNoYXBlID0gc2hhcGVUYWJsZVtuZXh0TGluayAmIExJTktfTUFTS10KKyAgICAgICAgICAgICAgICAgICAgW2xhc3RMaW5rICYgTElOS19NQVNLXQorICAgICAgICAgICAgICAgICAgICBbY3VyckxpbmsgJiBMSU5LX01BU0tdOworCisgICAgICAgICAgICAgICAgaWYgKGZsYWcgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICBzaGFwZSAmPSAweDE7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmbGFnID09IDIpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRhc2hrZWVsRmxhZyA9PSAwICYmCisgICAgICAgICAgICAgICAgICAgICAgICAoKGxhc3RMaW5rICYgTElOS0wpICE9IDApICYmIAorICAgICAgICAgICAgICAgICAgICAgICAgKChuZXh0TGluayAmIExJTktSKSAhPSAwKSAmJiAKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbaV0gIT0gJ1x1MDY0QycgJiYgCisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0W2ldICE9ICdcdTA2NEQnICYmCisgICAgICAgICAgICAgICAgICAgICAgICAhKChuZXh0TGluayAmIEFMRUZUWVBFKSA9PSBBTEVGVFlQRSAmJiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGxhc3RMaW5rICYgTEFNVFlQRSkgPT0gTEFNVFlQRSkpIHsKKwkJCisgICAgICAgICAgICAgICAgICAgICAgICBzaGFwZSA9IDE7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzaGFwZSA9IDA7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoZmxhZyA9PSAyKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh0YXNoa2VlbEZsYWcgPCAyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0W2ldID0gKGNoYXIpKCdcdUZFNzAnICsgaXJyZWxldmFudFBvc1tkZXN0W2ldIC0gJ1x1MDY0QiddICsgc2hhcGUpOworICAgICAgICAgICAgICAgICAgICB9IC8vIGVsc2UgbGVhdmUgdGFzaGtlZWwgYWxvbmUgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGRlc3RbaV0gPSAoY2hhcikoJ1x1RkU3MCcgKyAoY3VyckxpbmsgPj4gOCkgKyBzaGFwZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBtb3ZlIG9uZSBub3RjaCBmb3J3YXJkCisgICAgICAgICAgICBpZiAoKGN1cnJMaW5rICYgSVJSRUxFVkFOVCkgPT0gMCkgeworICAgICAgICAgICAgICAgIHByZXZMaW5rID0gbGFzdExpbms7CisgICAgICAgICAgICAgICAgbGFzdExpbmsgPSBjdXJyTGluazsKKyAgICAgICAgICAgICAgICBwcmV2UG9zID0gbGFzdFBvczsKKyAgICAgICAgICAgICAgICBsYXN0UG9zID0gaTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLS1pOworICAgICAgICAgICAgaWYgKGkgPT0gbngpIHsKKyAgICAgICAgICAgICAgICBjdXJyTGluayA9IG5leHRMaW5rOworICAgICAgICAgICAgICAgIG54ID0gLTI7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGkgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICBjdXJyTGluayA9IGdldExpbmsoZGVzdFtpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBJZiB3ZSBmb3VuZCBhIGxhbS9hbGVmIHBhaXIgaW4gdGhlIGJ1ZmZlciAKKyAgICAgICAgLy8gY2FsbCByZW1vdmVMYW1BbGVmU3BhY2VzIHRvIHJlbW92ZSB0aGUgc3BhY2VzIHRoYXQgd2VyZSBhZGRlZAorCisgICAgICAgIGlmIChsYW1hbGVmX2ZvdW5kKSB7CisgICAgICAgICAgICBkZXN0U2l6ZSA9IHJlbW92ZUxhbUFsZWZTcGFjZXMoZGVzdCwgc3RhcnQsIGxlbmd0aCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkZXN0U2l6ZSA9IGxlbmd0aDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGRlc3RTaXplOworICAgIH0KKworICAgIC8qCisgICAgICogTmFtZSAgICA6IGRlU2hhcGVVbmljb2RlCisgICAgICogRnVuY3Rpb246IENvbnZlcnRzIGFuIEFyYWJpYyBVbmljb2RlIGJ1ZmZlciBpbiBGRXh4IFJhbmdlIGludG8gdW5zaGFwZWQKKyAgICAgKiAgICAgICAgICAgYXJhYmljIFVuaWNvZGUgYnVmZmVyIGluIDA2eHggUmFuZ2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBkZVNoYXBlVW5pY29kZShjaGFyW10gZGVzdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRlc3RTaXplKSB0aHJvd3MgQXJhYmljU2hhcGluZ0V4Y2VwdGlvbiB7CisKKyAgICAgICAgaW50IGxhbWFsZWZfY291bnQgPSBub3JtYWxpemUoZGVzdCwgc3RhcnQsIGxlbmd0aCk7CisKKyAgICAgICAgLy8gSWYgdGhlcmUgd2FzIGEgbGFtYWxlZiBpbiB0aGUgYnVmZmVyIGNhbGwgZXhwYW5kTGFtQWxlZgorICAgICAgICBpZiAobGFtYWxlZl9jb3VudCAhPSAwKSB7CisgICAgICAgICAgICAvLyBuZWVkIHRvIGFkanVzdCBkZXN0IHRvIGZpdCBleHBhbmRlZCBidWZmZXIuLi4gISEhCisgICAgICAgICAgICBkZXN0U2l6ZSA9IGV4cGFuZExhbUFsZWYoZGVzdCwgc3RhcnQsIGxlbmd0aCwgbGFtYWxlZl9jb3VudCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkZXN0U2l6ZSA9IGxlbmd0aDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBkZXN0U2l6ZTsKKyAgICB9CisKKyAgICBwcml2YXRlIGludCBpbnRlcm5hbFNoYXBlKGNoYXJbXSBzb3VyY2UsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNvdXJjZVN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNvdXJjZUxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBkZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRlc3RTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXN0U2l6ZSkgdGhyb3dzIEFyYWJpY1NoYXBpbmdFeGNlcHRpb24geworCisgICAgICAgIGlmIChzb3VyY2VMZW5ndGggPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZGVzdFNpemUgPT0gMCkgeworICAgICAgICAgICAgaWYgKCgob3B0aW9ucyAmIExFVFRFUlNfTUFTSykgIT0gTEVUVEVSU19OT09QKSAmJgorICAgICAgICAgICAgICAgICgob3B0aW9ucyAmIExFTkdUSF9NQVNLKSA9PSBMRU5HVEhfR1JPV19TSFJJTkspKSB7CisJCisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGN1bGF0ZVNpemUoc291cmNlLCBzb3VyY2VTdGFydCwgc291cmNlTGVuZ3RoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHNvdXJjZUxlbmd0aDsgLy8gYnkgZGVmaW5pdGlvbgorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gYWx3YXlzIHVzZSB0ZW1wIGJ1ZmZlcgorICAgICAgICBjaGFyW10gdGVtcCA9IG5ldyBjaGFyW3NvdXJjZUxlbmd0aCAqIDJdOyAvLyBhbGwgbGFtYWxlZnMgcmVxdWlyaW5nIGV4cGFuc2lvbgorICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHNvdXJjZSwgc291cmNlU3RhcnQsIHRlbXAsIDAsIHNvdXJjZUxlbmd0aCk7CisKKyAgICAgICAgaWYgKGlzTG9naWNhbCkgeworICAgICAgICAgICAgaW52ZXJ0QnVmZmVyKHRlbXAsIDAsIHNvdXJjZUxlbmd0aCk7CisgICAgICAgIH0KKworICAgICAgICBpbnQgb3V0cHV0U2l6ZSA9IHNvdXJjZUxlbmd0aDsKKworICAgICAgICBzd2l0Y2ggKG9wdGlvbnMgJiBMRVRURVJTX01BU0spIHsKKyAgICAgICAgY2FzZSBMRVRURVJTX1NIQVBFX1RBU0hLRUVMX0lTT0xBVEVEOgorICAgICAgICAgICAgb3V0cHV0U2l6ZSA9IHNoYXBlVW5pY29kZSh0ZW1wLCAwLCBzb3VyY2VMZW5ndGgsIGRlc3RTaXplLCAxKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgTEVUVEVSU19TSEFQRToKKyAgICAgICAgICAgIG91dHB1dFNpemUgPSBzaGFwZVVuaWNvZGUodGVtcCwgMCwgc291cmNlTGVuZ3RoLCBkZXN0U2l6ZSwgMCk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIExFVFRFUlNfVU5TSEFQRToKKyAgICAgICAgICAgIG91dHB1dFNpemUgPSBkZVNoYXBlVW5pY29kZSh0ZW1wLCAwLCBzb3VyY2VMZW5ndGgsIGRlc3RTaXplKTsKKyAgICAgICAgICAgIGJyZWFrOyAKKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgaWYgKG91dHB1dFNpemUgPiBkZXN0U2l6ZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEFyYWJpY1NoYXBpbmdFeGNlcHRpb24oIm5vdCBlbm91Z2ggcm9vbSBmb3IgcmVzdWx0IGRhdGEiKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgob3B0aW9ucyAmIERJR0lUU19NQVNLKSAhPSBESUdJVFNfTk9PUCkgeworICAgICAgICAgICAgY2hhciBkaWdpdEJhc2UgPSAnXHUwMDMwJzsgLy8gRXVyb3BlYW4gZGlnaXRzCisgICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbnMgJiBESUdJVF9UWVBFX01BU0spIHsKKyAgICAgICAgICAgIGNhc2UgRElHSVRfVFlQRV9BTjoKKyAgICAgICAgICAgICAgICBkaWdpdEJhc2UgPSAnXHUwNjYwJzsgIC8vIEFyYWJpYy1JbmRpYyBkaWdpdHMKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSBESUdJVF9UWVBFX0FOX0VYVEVOREVEOgorICAgICAgICAgICAgICAgIGRpZ2l0QmFzZSA9ICdcdTA2ZjAnOyAgLy8gRWFzdGVybiBBcmFiaWMtSW5kaWMgZGlnaXRzIChQZXJzaWFuIGFuZCBVcmR1KQorICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbnMgJiBESUdJVFNfTUFTSykgeworICAgICAgICAgICAgY2FzZSBESUdJVFNfRU4yQU46CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBpbnQgZGlnaXREZWx0YSA9IGRpZ2l0QmFzZSAtICdcdTAwMzAnOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG91dHB1dFNpemU7ICsraSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBjaCA9IHRlbXBbaV07CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPD0gJ1x1MDAzOScgJiYgY2ggPj0gJ1x1MDAzMCcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wW2ldICs9IGRpZ2l0RGVsdGE7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgRElHSVRTX0FOMkVOOgorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgY2hhciBkaWdpdFRvcCA9IChjaGFyKShkaWdpdEJhc2UgKyA5KTsKKyAgICAgICAgICAgICAgICAgICAgaW50IGRpZ2l0RGVsdGEgPSAnXHUwMDMwJyAtIGRpZ2l0QmFzZTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBvdXRwdXRTaXplOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgY2ggPSB0ZW1wW2ldOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNoIDw9IGRpZ2l0VG9wICYmIGNoID49IGRpZ2l0QmFzZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBbaV0gKz0gZGlnaXREZWx0YTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSBESUdJVFNfRU4yQU5fSU5JVF9MUjoKKyAgICAgICAgICAgICAgICBzaGFwZVRvQXJhYmljRGlnaXRzV2l0aENvbnRleHQodGVtcCwgMCwgb3V0cHV0U2l6ZSwgZGlnaXRCYXNlLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgRElHSVRTX0VOMkFOX0lOSVRfQUw6CisgICAgICAgICAgICAgICAgc2hhcGVUb0FyYWJpY0RpZ2l0c1dpdGhDb250ZXh0KHRlbXAsIDAsIG91dHB1dFNpemUsIGRpZ2l0QmFzZSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoaXNMb2dpY2FsKSB7CisgICAgICAgICAgICBpbnZlcnRCdWZmZXIodGVtcCwgMCwgb3V0cHV0U2l6ZSk7CisgICAgICAgIH0KKyAgICAgIAorICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHRlbXAsIDAsIGRlc3QsIGRlc3RTdGFydCwgb3V0cHV0U2l6ZSk7CisgICAgICAKKyAgICAgICAgcmV0dXJuIG91dHB1dFNpemU7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvQXJhYmljU2hhcGluZ0V4Y2VwdGlvbi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQXJhYmljU2hhcGluZ0V4Y2VwdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhiY2MyZGQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9BcmFiaWNTaGFwaW5nRXhjZXB0aW9uLmphdmEKQEAgLTAsMCArMSwxNyBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKEMpIDIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworLyoqCisgKiBUaHJvd24gYnkgQXJhYmljU2hhcGluZyB3aGVuIHRoZXJlIGlzIGEgc2hhcGluZyBlcnJvci4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIEFyYWJpY1NoYXBpbmdFeGNlcHRpb24gZXh0ZW5kcyBFeGNlcHRpb24geworICAgIEFyYWJpY1NoYXBpbmdFeGNlcHRpb24oU3RyaW5nIG1lc3NhZ2UpIHsKKyAgICAgICAgc3VwZXIobWVzc2FnZSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvQnJlYWtEaWN0aW9uYXJ5LmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9CcmVha0RpY3Rpb25hcnkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41YWY5MTIwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQnJlYWtEaWN0aW9uYXJ5LmphdmEKQEAgLTAsMCArMSwzMDcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS90ZXh0L0JyZWFrRGljdGlvbmFyeS5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA2OjAzICQgCisgKiAkUmV2aXNpb246IDEuNyAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5EYXRhSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5GaWxlTm90Rm91bmRFeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5VbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5GaWxlSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5PdXRwdXRTdHJlYW1Xcml0ZXI7CitpbXBvcnQgamF2YS5pby5QcmludFdyaXRlcjsKK2ltcG9ydCBqYXZhLmlvLkZpbGVPdXRwdXRTdHJlYW07CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNvbXBhY3RCeXRlQXJyYXk7CisKKy8qKgorICogVGhpcyBpcyB0aGUgY2xhc3MgdGhhdCByZXByZXNlbnRzIHRoZSBsaXN0IG9mIGtub3duIHdvcmRzIHVzZWQgYnkKKyAqIERpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IuICBUaGUgY29uY2VwdHVhbCBkYXRhIHN0cnVjdHVyZSB1c2VkCisgKiBoZXJlIGlzIGEgdHJpZTogdGhlcmUgaXMgYSBub2RlIGhhbmdpbmcgb2ZmIHRoZSByb290IG5vZGUgZm9yIGV2ZXJ5CisgKiBsZXR0ZXIgdGhhdCBjYW4gc3RhcnQgYSB3b3JkLiAgRWFjaCBvZiB0aGVzZSBub2RlcyBoYXMgYSBub2RlIGhhbmdpbmcKKyAqIG9mZiBvZiBpdCBmb3IgZXZlcnkgbGV0dGVyIHRoYXQgY2FuIGJlIHRoZSBzZWNvbmQgbGV0dGVyIG9mIGEgd29yZAorICogaWYgdGhpcyBub2RlIGlzIHRoZSBmaXJzdCBsZXR0ZXIsIGFuZCBzbyBvbi4gIFRoZSB0cmllIGlzIHJlcHJlc2VudGVkCisgKiBhcyBhIHR3by1kaW1lbnNpb25hbCBhcnJheSB0aGF0IGNhbiBiZSB0cmVhdGVkIGFzIGEgdGFibGUgb2Ygc3RhdGUKKyAqIHRyYW5zaXRpb25zLiAgSW5kZXhlcyBhcmUgdXNlZCB0byBjb21wcmVzcyB0aGlzIGFycmF5LCB0YWtpbmcKKyAqIGFkdmFudGFnZSBvZiB0aGUgZmFjdCB0aGF0IHRoaXMgYXJyYXkgd2lsbCBhbHdheXMgYmUgdmVyeSBzcGFyc2UuCisgKi8KK3B1YmxpYyBjbGFzcyBCcmVha0RpY3Rpb25hcnkgeworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gdGVzdGluZyBhbmQgZGVidWdnaW5nCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKQorICAgICAgICAgICAgdGhyb3dzIEZpbGVOb3RGb3VuZEV4Y2VwdGlvbiwgVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbiwgSU9FeGNlcHRpb24geworICAgICAgICBTdHJpbmcgZmlsZW5hbWUgPSBhcmdzWzBdOworCisgICAgICAgIEJyZWFrRGljdGlvbmFyeSBkaWN0aW9uYXJ5ID0gbmV3IEJyZWFrRGljdGlvbmFyeShuZXcgRmlsZUlucHV0U3RyZWFtKGZpbGVuYW1lKSk7CisKKyAgICAgICAgUHJpbnRXcml0ZXIgb3V0ID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIGlmKGFyZ3MubGVuZ3RoID49IDIpIHsKKyAgICAgICAgICAgIG91dCA9IG5ldyBQcmludFdyaXRlcihuZXcgT3V0cHV0U3RyZWFtV3JpdGVyKG5ldyBGaWxlT3V0cHV0U3RyZWFtKGFyZ3NbMV0pLCAiVW5pY29kZUxpdHRsZSIpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZGljdGlvbmFyeS5wcmludFdvcmRMaXN0KCIiLCAwLCBvdXQpOworICAgICAgICAKKyAgICAgICAgaWYgKG91dCAhPSBudWxsKSB7CisgICAgICAgICAgICBvdXQuY2xvc2UoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHByaW50V29yZExpc3QoU3RyaW5nIHBhcnRpYWxXb3JkLCBpbnQgc3RhdGUsIFByaW50V3JpdGVyIG91dCkKKyAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGlmIChzdGF0ZSA9PSAweEZGRkYpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihwYXJ0aWFsV29yZCk7CisgICAgICAgICAgICBpZiAob3V0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnRsbihwYXJ0aWFsV29yZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUNvbHM7IGkrKykgeworICAgICAgICAgICAgICAgIGludCBuZXdTdGF0ZSA9IChhdChzdGF0ZSwgaSkpICYgMHhGRkZGOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChuZXdTdGF0ZSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGNoYXIgbmV3Q2hhciA9IHJldmVyc2VDb2x1bW5NYXBbaV07CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBuZXdQYXJ0aWFsV29yZCA9IHBhcnRpYWxXb3JkOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5ld0NoYXIgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFydGlhbFdvcmQgKz0gbmV3Q2hhcjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRXb3JkTGlzdChuZXdQYXJ0aWFsV29yZCwgbmV3U3RhdGUsIG91dCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQSBtYXAgdXNlZCB0byBnbyBmcm9tIGNvbHVtbiBudW1iZXJzIHRvIGNoYXJhY3RlcnMuICBVc2VkIG9ubHkKKyAgICAgKiBmb3IgZGVidWdnaW5nIHJpZ2h0IG5vdy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGNoYXJbXSByZXZlcnNlQ29sdW1uTWFwID0gbnVsbDsKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gZGF0YSBtZW1iZXJzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIE1hcHMgZnJvbSBjaGFyYWN0ZXJzIHRvIGNvbHVtbiBudW1iZXJzLiAgVGhlIG1haW4gdXNlIG9mIHRoaXMgaXMgdG8KKyAgICAgKiBhdm9pZCBtYWtpbmcgcm9vbSBpbiB0aGUgYXJyYXkgZm9yIGVtcHR5IGNvbHVtbnMuCisgICAgICovCisgICAgcHJpdmF0ZSBDb21wYWN0Qnl0ZUFycmF5IGNvbHVtbk1hcCA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbnVtYmVyIG9mIGFjdHVhbCBjb2x1bW5zIGluIHRoZSB0YWJsZQorICAgICAqLworICAgIHByaXZhdGUgaW50IG51bUNvbHM7CisKKyAgICAvKioKKyAgICAgKiBDb2x1bW5zIGFyZSBvcmdhbml6ZWQgaW50byBncm91cHMgb2YgMzIuICBUaGlzIHNheXMgaG93IG1hbnkKKyAgICAgKiBjb2x1bW4gZ3JvdXBzLiAgKFdlIGNvdWxkIGNhbGN1bGF0ZSB0aGlzLCBidXQgd2Ugc3RvcmUgdGhlCisgICAgICogdmFsdWUgdG8gYXZvaWQgaGF2aW5nIHRvIHJlcGVhdGVkbHkgY2FsY3VsYXRlIGl0LikKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBudW1Db2xHcm91cHM7CisKKyAgICAvKioKKyAgICAgKiBUaGUgYWN0dWFsIGNvbXByZXNzZWQgc3RhdGUgdGFibGUuICBFYWNoIGNvbmNlcHR1YWwgcm93IHJlcHJlc2VudHMKKyAgICAgKiBhIHN0YXRlLCBhbmQgdGhlIGNlbGxzIGluIGl0IGNvbnRhaW4gdGhlIHJvdyBudW1iZXJzIG9mIHRoZSBzdGF0ZXMKKyAgICAgKiB0byB0cmFuc2l0aW9uIHRvIGZvciBlYWNoIHBvc3NpYmxlIGxldHRlci4gIDAgaXMgdXNlZCB0byBpbmRpY2F0ZQorICAgICAqIGFuIGlsbGVnYWwgY29tYmluYXRpb24gb2YgbGV0dGVycyAoaS5lLiwgdGhlIGVycm9yIHN0YXRlKS4gIFRoZQorICAgICAqIHRhYmxlIGlzIGNvbXByZXNzZWQgYnkgZWxpbWluYXRpbmcgYWxsIHRoZSB1bnBvcHVsYXRlZCAoaS5lLiwgemVybykKKyAgICAgKiBjZWxscy4gIE11bHRpcGxlIGNvbmNlcHR1YWwgcm93cyBjYW4gdGhlbiBiZSBkb3VibGVkIHVwIGluIGEgc2luZ2xlCisgICAgICogcGh5c2ljYWwgcm93IGJ5IHNsaWRpbmcgdGhlbSB1cCBhbmQgcG9zc2libHkgc2hpZnRpbmcgdGhlbSB0byBvbmUKKyAgICAgKiBzaWRlIG9yIHRoZSBvdGhlciBzbyB0aGUgcG9wdWxhdGVkIGNlbGxzIGRvbid0IGNvbGxpZGUuICBJbmRleGVzCisgICAgICogYXJlIHVzZWQgdG8gaWRlbnRpZnkgdW5wb3B1bGF0ZWQgY2VsbHMgYW5kIHRvIGxvY2F0ZSBwb3B1bGF0ZWQgY2VsbHMuCisgICAgICovCisgICAgcHJpdmF0ZSBzaG9ydFtdIHRhYmxlID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFRoaXMgaW5kZXggbWFwcyBsb2dpY2FsIHJvdyBudW1iZXJzIHRvIHBoeXNpY2FsIHJvdyBudW1iZXJzCisgICAgICovCisgICAgcHJpdmF0ZSBzaG9ydFtdIHJvd0luZGV4ID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIEEgYml0bWFwIGlzIHVzZWQgdG8gdGVsbCB3aGljaCBjZWxscyBpbiB0aGUgY29tY2VwdHVhbCB0YWJsZSBhcmUKKyAgICAgKiBwb3B1bGF0ZWQuICBUaGlzIGFycmF5IGNvbnRhaW5zIGFsbCB0aGUgdW5pcXVlIGJpdCBjb21iaW5hdGlvbnMKKyAgICAgKiBpbiB0aGF0IGJpdG1hcC4gIElmIHRoZSB0YWJsZSBpcyBtb3JlIHRoYW4gMzIgY29sdW1ucyB3aWRlLAorICAgICAqIHN1Y2Nlc3NpdmUgZW50cmllcyBpbiB0aGlzIGFycmF5IGFyZSB1c2VkIGZvciBhIHNpbmdsZSByb3cuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnRbXSByb3dJbmRleEZsYWdzID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFRoaXMgaW5kZXggbWFwcyBmcm9tIGEgbG9naWNhbCByb3cgbnVtYmVyIGludG8gdGhlIGJpdG1hcCB0YWJsZSBhYm92ZS4KKyAgICAgKiAoVGhpcyBrZWVwcyB1cyBmcm9tIHN0b3JpbmcgZHVwbGljYXRlIGJpdG1hcCBjb21iaW5hdGlvbnMuKSAgU2luY2UgdGhlcmUKKyAgICAgKiBhcmUgYSBsb3Qgb2Ygcm93cyB3aXRoIG9ubHkgb25lIHBvcHVsYXRlZCBjZWxsLCBpbnN0ZWFkIG9mIHdhc3Rpbmcgc3BhY2UKKyAgICAgKiBpbiB0aGUgYml0bWFwIHRhYmxlLCB3ZSBqdXN0IHN0b3JlIGEgbmVnYXRpdmUgbnVtYmVyIGluIHRoaXMgaW5kZXggZm9yCisgICAgICogcm93cyB3aXRoIG9uZSBwb3B1bGF0ZWQgY2VsbC4gIFRoZSBhYnNvbHV0ZSB2YWx1ZSBvZiB0aGF0IG51bWJlciBpcworICAgICAqIHRoZSBjb2x1bW4gbnVtYmVyIG9mIHRoZSBwb3B1bGF0ZWQgY2VsbC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHNob3J0W10gcm93SW5kZXhGbGFnc0luZGV4ID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIEZvciBlYWNoIGxvZ2ljYWwgcm93LCB0aGlzIGluZGV4IGNvbnRhaW5zIGEgY29uc3RhbnQgdGhhdCBpcyBhZGRlZCB0bworICAgICAqIHRoZSBsb2dpY2FsIGNvbHVtbiBudW1iZXIgdG8gZ2V0IHRoZSBwaHlzaWNhbCBjb2x1bW4gbnVtYmVyCisgICAgICovCisgICAgcHJpdmF0ZSBieXRlW10gcm93SW5kZXhTaGlmdHMgPSBudWxsOworCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBkZXNlcmlhbGl6YXRpb24KKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgcHVibGljIEJyZWFrRGljdGlvbmFyeShJbnB1dFN0cmVhbSBkaWN0aW9uYXJ5U3RyZWFtKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICByZWFkRGljdGlvbmFyeUZpbGUobmV3IERhdGFJbnB1dFN0cmVhbShkaWN0aW9uYXJ5U3RyZWFtKSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVhZERpY3Rpb25hcnlGaWxlKERhdGFJbnB1dFN0cmVhbSBpbikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgaW50IGw7CisKKyAgICAgICAgLy8gcmVhZCBpbiB0aGUgdmVyc2lvbiBudW1iZXIgKHJpZ2h0IG5vdyB3ZSBqdXN0IGlnbm9yZSBpdCkKKyAgICAgICAgaW4ucmVhZEludCgpOworICAgICAgICAKKyAgICAgICAgLy8gcmVhZCBpbiB0aGUgY29sdW1uIG1hcCAodGhpcyBpcyBzZXJpYWxpemVkIGluIGl0cyBpbnRlcm5hbCBmb3JtOgorICAgICAgICAvLyBhbiBpbmRleCBhcnJheSBmb2xsb3dlZCBieSBhIGRhdGEgYXJyYXkpCisgICAgICAgIGwgPSBpbi5yZWFkSW50KCk7CisgICAgICAgIGNoYXJbXSB0ZW1wID0gbmV3IGNoYXJbbF07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVtcC5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIHRlbXBbaV0gPSAoY2hhcilpbi5yZWFkU2hvcnQoKTsKKyAgICAgICAgbCA9IGluLnJlYWRJbnQoKTsKKyAgICAgICAgYnl0ZVtdIHRlbXAyID0gbmV3IGJ5dGVbbF07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVtcDIubGVuZ3RoOyBpKyspCisgICAgICAgICAgICB0ZW1wMltpXSA9IGluLnJlYWRCeXRlKCk7CisgICAgICAgIGNvbHVtbk1hcCA9IG5ldyBDb21wYWN0Qnl0ZUFycmF5KHRlbXAsIHRlbXAyKTsKKworICAgICAgICAvLyByZWFkIGluIG51bUNvbHMgYW5kIG51bUNvbEdyb3VwcworICAgICAgICBudW1Db2xzID0gaW4ucmVhZEludCgpOworICAgICAgICBudW1Db2xHcm91cHMgPSBpbi5yZWFkSW50KCk7CisKKyAgICAgICAgLy8gcmVhZCBpbiB0aGUgcm93LW51bWJlciBpbmRleAorICAgICAgICBsID0gaW4ucmVhZEludCgpOworICAgICAgICByb3dJbmRleCA9IG5ldyBzaG9ydFtsXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByb3dJbmRleC5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIHJvd0luZGV4W2ldID0gaW4ucmVhZFNob3J0KCk7CisKKyAgICAgICAgLy8gbG9hZCBpbiB0aGUgcG9wdWxhdGVkLWNlbGxzIGJpdG1hcDogaW5kZXggZmlyc3QsIHRoZW4gYml0bWFwIGxpc3QKKyAgICAgICAgbCA9IGluLnJlYWRJbnQoKTsKKyAgICAgICAgcm93SW5kZXhGbGFnc0luZGV4ID0gbmV3IHNob3J0W2xdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJvd0luZGV4RmxhZ3NJbmRleC5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIHJvd0luZGV4RmxhZ3NJbmRleFtpXSA9IGluLnJlYWRTaG9ydCgpOworICAgICAgICBsID0gaW4ucmVhZEludCgpOworICAgICAgICByb3dJbmRleEZsYWdzID0gbmV3IGludFtsXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByb3dJbmRleEZsYWdzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgcm93SW5kZXhGbGFnc1tpXSA9IGluLnJlYWRJbnQoKTsKKworICAgICAgICAvLyBsb2FkIGluIHRoZSByb3ctc2hpZnQgaW5kZXgKKyAgICAgICAgbCA9IGluLnJlYWRJbnQoKTsKKyAgICAgICAgcm93SW5kZXhTaGlmdHMgPSBuZXcgYnl0ZVtsXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByb3dJbmRleFNoaWZ0cy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIHJvd0luZGV4U2hpZnRzW2ldID0gaW4ucmVhZEJ5dGUoKTsKKworICAgICAgICAvLyBmaW5hbGx5LCBsb2FkIGluIHRoZSBhY3R1YWwgc3RhdGUgdGFibGUKKyAgICAgICAgbCA9IGluLnJlYWRJbnQoKTsKKyAgICAgICAgdGFibGUgPSBuZXcgc2hvcnRbbF07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGFibGUubGVuZ3RoOyBpKyspCisgICAgICAgICAgICB0YWJsZVtpXSA9IGluLnJlYWRTaG9ydCgpOworCisgICAgICAgIC8vIHRoaXMgZGF0YSBzdHJ1Y3R1cmUgaXMgb25seSBuZWNlc3NhcnkgZm9yIHRlc3RpbmcgYW5kIGRlYnVnZ2luZyBwdXJwb3NlcworICAgICAgICByZXZlcnNlQ29sdW1uTWFwID0gbmV3IGNoYXJbbnVtQ29sc107CisgICAgICAgIGZvciAoY2hhciBjID0gMDsgYyA8IDB4ZmZmZjsgYysrKSB7CisgICAgICAgICAgICBpbnQgY29sID0gY29sdW1uTWFwLmVsZW1lbnRBdChjKTsKKyAgICAgICAgICAgIGlmIChjb2wgIT0gMCkgeworICAgICAgICAgICAgICAgcmV2ZXJzZUNvbHVtbk1hcFtjb2xdID0gYzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIGNsb3NlIHRoZSBzdHJlYW0KKyAgICAgICAgaW4uY2xvc2UoKTsKKyAgICB9CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIGFjY2VzcyB0byB0aGUgd29yZHMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogVXNlcyB0aGUgY29sdW1uIG1hcCB0byBtYXAgdGhlIGNoYXJhY3RlciB0byBhIGNvbHVtbiBudW1iZXIsIHRoZW4KKyAgICAgKiBwYXNzZXMgdGhlIHJvdyBhbmQgY29sdW1uIG51bWJlciB0byB0aGUgb3RoZXIgdmVyc2lvbiBvZiBhdCgpCisgICAgICogQHBhcmFtIHJvdyBUaGUgY3VycmVudCBzdGF0ZQorICAgICAqIEBwYXJhbSBjaCBUaGUgY2hhcmFjdGVyIHdob3NlIGNvbHVtbiB3ZSdyZSBpbnRlcmVzdGVkIGluCisgICAgICogQHJldHVybiBUaGUgbmV3IHN0YXRlIHRvIHRyYW5zaXRpb24gdG8KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc2hvcnQgYXQoaW50IHJvdywgY2hhciBjaCkgeworICAgICAgICBpbnQgY29sID0gY29sdW1uTWFwLmVsZW1lbnRBdChjaCk7CisgICAgICAgIHJldHVybiBhdChyb3csIGNvbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdmFsdWUgaW4gdGhlIGNlbGwgd2l0aCB0aGUgc3BlY2lmaWVkIChsb2dpY2FsKSByb3cgYW5kCisgICAgICogY29sdW1uIG51bWJlcnMuICBJbiBEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yLCB0aGUgcm93IG51bWJlciBpcworICAgICAqIGEgc3RhdGUgbnVtYmVyLCB0aGUgY29sdW1uIG51bWJlciBpcyBhbiBpbnB1dCwgYW5kIHRoZSByZXR1cm4gdmFsdWUKKyAgICAgKiBpcyB0aGUgcm93IG51bWJlciBvZiB0aGUgbmV3IHN0YXRlIHRvIHRyYW5zaXRpb24gdG8uICAoMCBpcyB0aGUKKyAgICAgKiAiZXJyb3IiIHN0YXRlLCBhbmQgLTEgaXMgdGhlICJlbmQgb2Ygd29yZCIgc3RhdGUgaW4gYSBkaWN0aW9uYXJ5KQorICAgICAqIEBwYXJhbSByb3cgVGhlIHJvdyBudW1iZXIgb2YgdGhlIGN1cnJlbnQgc3RhdGUKKyAgICAgKiBAcGFyYW0gY29sIFRoZSBjb2x1bW4gbnVtYmVyIG9mIHRoZSBpbnB1dCBjaGFyYWN0ZXIgKDAgbWVhbnMgIm5vdCBhCisgICAgICogZGljdGlvbmFyeSBjaGFyYWN0ZXIiKQorICAgICAqIEByZXR1cm4gVGhlIHJvdyBudW1iZXIgb2YgdGhlIG5ldyBzdGF0ZSB0byB0cmFuc2l0aW9uIHRvCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHNob3J0IGF0KGludCByb3csIGludCBjb2wpIHsKKyAgICAgICAgaWYgKGNlbGxJc1BvcHVsYXRlZChyb3csIGNvbCkpIHsKKyAgICAgICAgICAgIC8vIHdlIG1hcCBmcm9tIGxvZ2ljYWwgdG8gcGh5c2ljYWwgcm93IG51bWJlciBieSBsb29raW5nIHVwIHRoZQorICAgICAgICAgICAgLy8gbWFwcGluZyBpbiByb3dJbmRleDsgd2UgbWFwIGZyb20gbG9naWNhbCBjb2x1bW4gbnVtYmVyIHRvCisgICAgICAgICAgICAvLyBwaHlzaWNhbCBjb2x1bW4gbnVtYmVyIGJ5IGxvb2tpbmcgdXAgYSBzaGlmdCB2YWx1ZSBmb3IgdGhpcworICAgICAgICAgICAgLy8gbG9naWNhbCByb3cgYW5kIG9mZnNldHRpbmcgdGhlIGxvZ2ljYWwgY29sdW1uIG51bWJlciBieQorICAgICAgICAgICAgLy8gdGhlIHNoaWZ0IGFtb3VudC4gIFRoZW4gd2UgY2FuIHVzZSBpbnRlcm5hbEF0KCkgdG8gYWN0dWFsbHkKKyAgICAgICAgICAgIC8vIGdldCB0aGUgdmFsdWUgb3V0IG9mIHRoZSB0YWJsZS4KKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbEF0KHJvd0luZGV4W3Jvd10sIGNvbCArIHJvd0luZGV4U2hpZnRzW3Jvd10pOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHaXZlbiAobG9naWNhbCkgcm93IGFuZCBjb2x1bW4gbnVtYmVycywgcmV0dXJucyB0cnVlIGlmIHRoZQorICAgICAqIGNlbGwgaW4gdGhhdCBwb3NpdGlvbiBpcyBwb3B1bGF0ZWQKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gY2VsbElzUG9wdWxhdGVkKGludCByb3csIGludCBjb2wpIHsKKyAgICAgICAgLy8gbG9vayB1cCB0aGUgZW50cnkgaW4gdGhlIGJpdG1hcCBpbmRleCBmb3IgdGhlIHNwZWNpZmllZCByb3cuCisgICAgICAgIC8vIElmIGl0J3MgYSBuZWdhdGl2ZSBudW1iZXIsIGl0J3MgdGhlIGNvbHVtbiBudW1iZXIgb2YgdGhlIG9ubHkKKyAgICAgICAgLy8gcG9wdWxhdGVkIGNlbGwgaW4gdGhlIHJvdworICAgICAgICBpZiAocm93SW5kZXhGbGFnc0luZGV4W3Jvd10gPCAwKSB7CisgICAgICAgICAgICByZXR1cm4gY29sID09IC1yb3dJbmRleEZsYWdzSW5kZXhbcm93XTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIGl0J3MgYSBwb3NpdGl2ZSBudW1iZXIsIGl0J3MgdGhlIG9mZnNldCBvZiBhbiBlbnRyeSBpbiB0aGUgYml0bWFwCisgICAgICAgIC8vIGxpc3QuICBJZiB0aGUgdGFibGUgaXMgbW9yZSB0aGFuIDMyIGNvbHVtbnMgd2lkZSwgdGhlIGJpdG1hcCBpcyBzdG9yZWQKKyAgICAgICAgLy8gc3VjY2Vzc2l2ZSBlbnRyaWVzIGluIHRoZSBiaXRtYXAgbGlzdCwgc28gd2UgaGF2ZSB0byBkaXZpZGUgdGhlIGNvbHVtbgorICAgICAgICAvLyBudW1iZXIgYnkgMzIgYW5kIG9mZnNldCB0aGUgbnVtYmVyIHdlIGdvdCBvdXQgb2YgdGhlIGluZGV4IGJ5IHRoZSByZXN1bHQuCisgICAgICAgIC8vIE9uY2Ugd2UgaGF2ZSB0aGUgYXBwcm9wcmlhdGUgcGllY2Ugb2YgdGhlIGJpdG1hcCwgdGVzdCB0aGUgYXBwcm9wcmlhdGUKKyAgICAgICAgLy8gYml0IGFuZCByZXR1cm4gdGhlIHJlc3VsdC4KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpbnQgZmxhZ3MgPSByb3dJbmRleEZsYWdzW3Jvd0luZGV4RmxhZ3NJbmRleFtyb3ddICsgKGNvbCA+PiA1KV07CisgICAgICAgICAgICByZXR1cm4gKGZsYWdzICYgKDEgPDwgKGNvbCAmIDB4MWYpKSkgIT0gMDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEltcGxlbWVudGF0aW9uIG9mIGF0KCkgd2hlbiB3ZSBrbm93IHRoZSBzcGVjaWZpZWQgY2VsbCBpcyBwb3B1bGF0ZWQuCisgICAgICogQHBhcmFtIHJvdyBUaGUgUEhZU0lDQUwgcm93IG51bWJlciBvZiB0aGUgY2VsbAorICAgICAqIEBwYXJhbSBjb2wgVGhlIFBIWVNJQ0FMIGNvbHVtbiBudW1iZXIgb2YgdGhlIGNlbGwKKyAgICAgKiBAcmV0dXJuIFRoZSB2YWx1ZSBzdG9yZWQgaW4gdGhlIGNlbGwKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIHNob3J0IGludGVybmFsQXQoaW50IHJvdywgaW50IGNvbCkgeworICAgICAgICAvLyB0aGUgdGFibGUgaXMgYSBvbmUtZGltZW5zaW9uYWwgYXJyYXksIHNvIHRoaXMganVzdCBkb2VzIHRoZSBtYXRoIG5lY2Vzc2FyeQorICAgICAgICAvLyB0byB0cmVhdCBpdCBhcyBhIHR3by1kaW1lbnNpb25hbCBhcnJheSAod2UgZG9uJ3QganVzdCB1c2UgYSB0d28tZGltZW5zaW9uYWwKKyAgICAgICAgLy8gYXJyYXkgYmVjYXVzZSB0d28tZGltZW5zaW9uYWwgYXJyYXlzIGFyZSBpbmVmZmljaWVudCBpbiBKYXZhKQorICAgICAgICByZXR1cm4gdGFibGVbcm93ICogbnVtQ29scyArIGNvbF07CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9CcmVha0l0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9CcmVha0l0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODQ2N2JhYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0JyZWFrSXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDYyMSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L3RleHQvQnJlYWtJdGVyYXRvci5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAzLzIwIDA1OjExOjE1ICQgCisgKiAkUmV2aXNpb246IDEuOCAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlRGF0YTsKKworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmxhbmcucmVmLlNvZnRSZWZlcmVuY2U7CitpbXBvcnQgamF2YS5uZXQuVVJMOworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnRleHQuU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworCisvKioKKyAqIEEgY2xhc3MgdGhhdCBsb2NhdGVzIGJvdW5kYXJpZXMgaW4gdGV4dC4gIFRoaXMgY2xhc3MgZGVmaW5lcyBhIHByb3RvY29sIGZvcgorICogb2JqZWN0cyB0aGF0IGJyZWFrIHVwIGEgcGllY2Ugb2YgbmF0dXJhbC1sYW5ndWFnZSB0ZXh0IGFjY29yZGluZyB0byBhIHNldAorICogb2YgY3JpdGVyaWEuICBJbnN0YW5jZXMgb3Igc3ViY2xhc3NlcyBvZiBCcmVha0l0ZXJhdG9yIGNhbiBiZSBwcm92aWRlZCwgZm9yCisgKiBleGFtcGxlLCB0byBicmVhayBhIHBpZWNlIG9mIHRleHQgaW50byB3b3Jkcywgc2VudGVuY2VzLCBvciBsb2dpY2FsIGNoYXJhY3RlcnMKKyAqIGFjY29yZGluZyB0byB0aGUgY29udmVudGlvbnMgb2Ygc29tZSBsYW5ndWFnZSBvciBncm91cCBvZiBsYW5ndWFnZXMuCisgKgorICogV2UgcHJvdmlkZSBmb3VyIGJ1aWx0LWluIHR5cGVzIG9mIEJyZWFrSXRlcmF0b3I6CisgKiA8dWw+PGxpPmdldFNlbnRlbmNlSW5zdGFuY2UoKSByZXR1cm5zIGEgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgYm91bmRhcmllcworICogYmV0d2VlbiBzZW50ZW5jZXMuICBUaGlzIGlzIHVzZWZ1bCBmb3IgdHJpcGxlLWNsaWNrIHNlbGVjdGlvbiwgZm9yIGV4YW1wbGUuCisgKiA8bGk+Z2V0V29yZEluc3RhbmNlKCkgcmV0dXJucyBhIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIGJvdW5kYXJpZXMgYmV0d2VlbgorICogd29yZHMuICBUaGlzIGlzIHVzZWZ1bCBmb3IgZG91YmxlLWNsaWNrIHNlbGVjdGlvbiBvciAiZmluZCB3aG9sZSB3b3JkcyIgc2VhcmNoZXMuCisgKiBUaGlzIHR5cGUgb2YgQnJlYWtJdGVyYXRvciBtYWtlcyBzdXJlIHRoZXJlIGlzIGEgYm91bmRhcnkgcG9zaXRpb24gYXQgdGhlCisgKiBiZWdpbm5pbmcgYW5kIGVuZCBvZiBlYWNoIGxlZ2FsIHdvcmQuICAoTnVtYmVycyBjb3VudCBhcyB3b3JkcywgdG9vLikgIFdoaXRlc3BhY2UKKyAqIGFuZCBwdW5jdHVhdGlvbiBhcmUga2VwdCBzZXBhcmF0ZSBmcm9tIHJlYWwgd29yZHMuCisgKiA8bGk+Z2V0TGluZUluc3RhbmNlKCkgcmV0dXJucyBhIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIHBvc2l0aW9ucyB3aGVyZSBpdCBpcworICogbGVnYWwgZm9yIGEgdGV4dCBlZGl0b3IgdG8gd3JhcCBsaW5lcy4gIFRoaXMgaXMgc2ltaWxhciB0byB3b3JkIGJyZWFraW5nLCBidXQKKyAqIG5vdCB0aGUgc2FtZTogcHVuY3R1YXRpb24gYW5kIHdoaXRlc3BhY2UgYXJlIGdlbmVyYWxseSBrZXB0IHdpdGggd29yZHMgKHlvdSBkb24ndAorICogd2FudCBhIGxpbmUgdG8gc3RhcnQgd2l0aCB3aGl0ZXNwYWNlLCBmb3IgZXhhbXBsZSksIGFuZCBzb21lIHNwZWNpYWwgY2hhcmFjdGVycworICogY2FuIGZvcmNlIGEgcG9zaXRpb24gdG8gYmUgY29uc2lkZXJlZCBhIGxpbmUtYnJlYWsgcG9zaXRpb24gb3IgcHJldmVudCBhIHBvc2l0aW9uCisgKiBmcm9tIGJlaW5nIGEgbGluZS1icmVhayBwb3NpdGlvbi4KKyAqIDxsaT5nZXRDaGFyYWN0ZXJJbnN0YW5jZSgpIHJldHVybnMgYSBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBib3VuZGFyaWVzIGJldHdlZW4KKyAqIGxvZ2ljYWwgY2hhcmFjdGVycy4gIEJlY2F1c2Ugb2YgdGhlIHN0cnVjdHVyZSBvZiB0aGUgVW5pY29kZSBlbmNvZGluZywgYSBsb2dpY2FsCisgKiBjaGFyYWN0ZXIgbWF5IGJlIHN0b3JlZCBpbnRlcm5hbGx5IGFzIG1vcmUgdGhhbiBvbmUgVW5pY29kZSBjb2RlIHBvaW50LiAgKEEgd2l0aCBhbgorICogdW1sYXV0IG1heSBiZSBzdG9yZWQgYXMgYW4gYSBmb2xsb3dlZCBieSBhIHNlcGFyYXRlIGNvbWJpbmluZyB1bWxhdXQgY2hhcmFjdGVyLAorICogZm9yIGV4YW1wbGUsIGJ1dCB0aGUgdXNlciBzdGlsbCB0aGlua3Mgb2YgaXQgYXMgb25lIGNoYXJhY3Rlci4pICBUaGlzIGl0ZXJhdG9yIGFsbG93cworICogdmFyaW91cyBwcm9jZXNzZXMgKGVzcGVjaWFsbHkgdGV4dCBlZGl0b3JzKSB0byB0cmVhdCBhcyBjaGFyYWN0ZXJzIHRoZSB1bml0cyBvZiB0ZXh0CisgKiB0aGF0IGEgdXNlciB3b3VsZCB0aGluayBvZiBhcyBjaGFyYWN0ZXJzLCByYXRoZXIgdGhhbiB0aGUgdW5pdHMgb2YgdGV4dCB0aGF0IHRoZQorICogY29tcHV0ZXIgc2VlcyBhcyAiY2hhcmFjdGVycyIuPC91bD4KKyAqCisgKiBCcmVha0l0ZXJhdG9yJ3MgaW50ZXJmYWNlIGZvbGxvd3MgYW4gIml0ZXJhdG9yIiBtb2RlbCAoaGVuY2UgdGhlIG5hbWUpLCBtZWFuaW5nIGl0CisgKiBoYXMgYSBjb25jZXB0IG9mIGEgImN1cnJlbnQgcG9zaXRpb24iIGFuZCBtZXRob2RzIGxpa2UgZmlyc3QoKSwgbGFzdCgpLCBuZXh0KCksCisgKiBhbmQgcHJldmlvdXMoKSB0aGF0IHVwZGF0ZSB0aGUgY3VycmVudCBwb3NpdGlvbi4gIEFsbCBCcmVha0l0ZXJhdG9ycyB1cGhvbGQgdGhlCisgKiBmb2xsb3dpbmcgaW52YXJpYW50czoKKyAqIDx1bD48bGk+VGhlIGJlZ2lubmluZyBhbmQgZW5kIG9mIHRoZSB0ZXh0IGFyZSBhbHdheXMgdHJlYXRlZCBhcyBib3VuZGFyeSBwb3NpdGlvbnMuCisgKiA8bGk+VGhlIGN1cnJlbnQgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdG9yIGlzIGFsd2F5cyBhIGJvdW5kYXJ5IHBvc2l0aW9uIChyYW5kb20tCisgKiBhY2Nlc3MgbWV0aG9kcyBtb3ZlIHRoZSBpdGVyYXRvciB0byB0aGUgbmVhcmVzdCBib3VuZGFyeSBwb3NpdGlvbiBiZWZvcmUgb3IKKyAqIGFmdGVyIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24sIG5vdCBfdG9fIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24pLgorICogPGxpPkRPTkUgaXMgdXNlZCBhcyBhIGZsYWcgdG8gaW5kaWNhdGUgd2hlbiBpdGVyYXRpb24gaGFzIHN0b3BwZWQuICBET05FIGlzIG9ubHkKKyAqIHJldHVybmVkIHdoZW4gdGhlIGN1cnJlbnQgcG9zaXRpb24gaXMgdGhlIGVuZCBvZiB0aGUgdGV4dCBhbmQgdGhlIHVzZXIgY2FsbHMgbmV4dCgpLAorICogb3Igd2hlbiB0aGUgY3VycmVudCBwb3NpdGlvbiBpcyB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0IGFuZCB0aGUgdXNlciBjYWxscworICogcHJldmlvdXMoKS4KKyAqIDxsaT5CcmVhayBwb3NpdGlvbnMgYXJlIG51bWJlcmVkIGJ5IHRoZSBwb3NpdGlvbnMgb2YgdGhlIGNoYXJhY3RlcnMgdGhhdCBmb2xsb3cKKyAqIHRoZW0uICBUaHVzLCB1bmRlciBub3JtYWwgY2lyY3Vtc3RhbmNlcywgdGhlIHBvc2l0aW9uIGJlZm9yZSB0aGUgZmlyc3QgY2hhcmFjdGVyCisgKiBpcyAwLCB0aGUgcG9zaXRpb24gYWZ0ZXIgdGhlIGZpcnN0IGNoYXJhY3RlciBpcyAxLCBhbmQgdGhlIHBvc2l0aW9uIGFmdGVyIHRoZQorICogbGFzdCBjaGFyYWN0ZXIgaXMgMSBwbHVzIHRoZSBsZW5ndGggb2YgdGhlIHN0cmluZy4KKyAqIDxsaT5UaGUgY2xpZW50IGNhbiBjaGFuZ2UgdGhlIHBvc2l0aW9uIG9mIGFuIGl0ZXJhdG9yLCBvciB0aGUgdGV4dCBpdCBhbmFseXplcywKKyAqIGF0IHdpbGwsIGJ1dCBjYW5ub3QgY2hhbmdlIHRoZSBiZWhhdmlvci4gIElmIHRoZSB1c2VyIHdhbnRzIGRpZmZlcmVudCBiZWhhdmlvciwgaGUKKyAqIG11c3QgaW5zdGFudGlhdGUgYSBuZXcgaXRlcmF0b3IuPC91bD4KKyAqCisgKiBCcmVha0l0ZXJhdG9yIGFjY2Vzc2VzIHRoZSB0ZXh0IGl0IGFuYWx5emVzIHRocm91Z2ggYSBDaGFyYWN0ZXJJdGVyYXRvciwgd2hpY2ggbWFrZXMKKyAqIGl0IHBvc3NpYmxlIHRvIHVzZSBCcmVha0l0ZXJhdG9yIHRvIGFuYWx5emUgdGV4dCBpbiBhbnkgdGV4dC1zdG9yYWdlIHZlaGljbGUgdGhhdAorICogcHJvdmlkZXMgYSBDaGFyYWN0ZXJJdGVyYXRvciBpbnRlcmZhY2UuCisgKgorICogPGI+Tk9URTo8L2I+ICBTb21lIHR5cGVzIG9mIEJyZWFrSXRlcmF0b3IgY2FuIHRha2UgYSBsb25nIHRpbWUgdG8gY3JlYXRlLCBhbmQKKyAqIGluc3RhbmNlcyBvZiBCcmVha0l0ZXJhdG9yIGFyZSBub3QgY3VycmVudGx5IGNhY2hlZCBieSB0aGUgc3lzdGVtLiAgRm9yCisgKiBvcHRpbWFsIHBlcmZvcm1hbmNlLCBrZWVwIGluc3RhbmNlcyBvZiBCcmVha0l0ZXJhdG9yIGFyb3VuZCBhcyBsb25nIGFzIG1ha2VzCisgKiBzZW5zZS4gIEZvciBleGFtcGxlLCB3aGVuIHdvcmQtd3JhcHBpbmcgYSBkb2N1bWVudCwgZG9uJ3QgY3JlYXRlIGFuZCBkZXN0cm95IGEKKyAqIG5ldyBCcmVha0l0ZXJhdG9yIGZvciBlYWNoIGxpbmUuICBDcmVhdGUgb25lIGJyZWFrIGl0ZXJhdG9yIGZvciB0aGUgd2hvbGUgZG9jdW1lbnQKKyAqIChvciB3aGF0ZXZlciBzdHJldGNoIG9mIHRleHQgeW91J3JlIHdyYXBwaW5nKSBhbmQgdXNlIGl0IHRvIGRvIHRoZSB3aG9sZSBqb2Igb2YKKyAqIHdyYXBwaW5nIHRoZSB0ZXh0LgorICoKKyAgKiA8UD4KKyAqIDxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz46PFA+CisgKiBDcmVhdGluZyBhbmQgdXNpbmcgdGV4dCBib3VuZGFyaWVzCisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB7CisgKiAgICAgIGlmIChhcmdzLmxlbmd0aCA9PSAxKSB7CisgKiAgICAgICAgICBTdHJpbmcgc3RyaW5nVG9FeGFtaW5lID0gYXJnc1swXTsKKyAqICAgICAgICAgIC8vcHJpbnQgZWFjaCB3b3JkIGluIG9yZGVyCisgKiAgICAgICAgICBCcmVha0l0ZXJhdG9yIGJvdW5kYXJ5ID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoKTsKKyAqICAgICAgICAgIGJvdW5kYXJ5LnNldFRleHQoc3RyaW5nVG9FeGFtaW5lKTsKKyAqICAgICAgICAgIHByaW50RWFjaEZvcndhcmQoYm91bmRhcnksIHN0cmluZ1RvRXhhbWluZSk7CisgKiAgICAgICAgICAvL3ByaW50IGVhY2ggc2VudGVuY2UgaW4gcmV2ZXJzZSBvcmRlcgorICogICAgICAgICAgYm91bmRhcnkgPSBCcmVha0l0ZXJhdG9yLmdldFNlbnRlbmNlSW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAqICAgICAgICAgIGJvdW5kYXJ5LnNldFRleHQoc3RyaW5nVG9FeGFtaW5lKTsKKyAqICAgICAgICAgIHByaW50RWFjaEJhY2t3YXJkKGJvdW5kYXJ5LCBzdHJpbmdUb0V4YW1pbmUpOworICogICAgICAgICAgcHJpbnRGaXJzdChib3VuZGFyeSwgc3RyaW5nVG9FeGFtaW5lKTsKKyAqICAgICAgICAgIHByaW50TGFzdChib3VuZGFyeSwgc3RyaW5nVG9FeGFtaW5lKTsKKyAqICAgICAgfQorICogfQorICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogUHJpbnQgZWFjaCBlbGVtZW50IGluIG9yZGVyCisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBwdWJsaWMgc3RhdGljIHZvaWQgcHJpbnRFYWNoRm9yd2FyZChCcmVha0l0ZXJhdG9yIGJvdW5kYXJ5LCBTdHJpbmcgc291cmNlKSB7CisgKiAgICAgaW50IHN0YXJ0ID0gYm91bmRhcnkuZmlyc3QoKTsKKyAqICAgICBmb3IgKGludCBlbmQgPSBib3VuZGFyeS5uZXh0KCk7CisgKiAgICAgICAgICBlbmQgIT0gQnJlYWtJdGVyYXRvci5ET05FOworICogICAgICAgICAgc3RhcnQgPSBlbmQsIGVuZCA9IGJvdW5kYXJ5Lm5leHQoKSkgeworICogICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHNvdXJjZS5zdWJzdHJpbmcoc3RhcnQsZW5kKSk7CisgKiAgICAgfQorICogfQorICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogUHJpbnQgZWFjaCBlbGVtZW50IGluIHJldmVyc2Ugb3JkZXIKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIHB1YmxpYyBzdGF0aWMgdm9pZCBwcmludEVhY2hCYWNrd2FyZChCcmVha0l0ZXJhdG9yIGJvdW5kYXJ5LCBTdHJpbmcgc291cmNlKSB7CisgKiAgICAgaW50IGVuZCA9IGJvdW5kYXJ5Lmxhc3QoKTsKKyAqICAgICBmb3IgKGludCBzdGFydCA9IGJvdW5kYXJ5LnByZXZpb3VzKCk7CisgKiAgICAgICAgICBzdGFydCAhPSBCcmVha0l0ZXJhdG9yLkRPTkU7CisgKiAgICAgICAgICBlbmQgPSBzdGFydCwgc3RhcnQgPSBib3VuZGFyeS5wcmV2aW91cygpKSB7CisgKiAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihzb3VyY2Uuc3Vic3RyaW5nKHN0YXJ0LGVuZCkpOworICogICAgIH0KKyAqIH0KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIFByaW50IGZpcnN0IGVsZW1lbnQKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIHB1YmxpYyBzdGF0aWMgdm9pZCBwcmludEZpcnN0KEJyZWFrSXRlcmF0b3IgYm91bmRhcnksIFN0cmluZyBzb3VyY2UpIHsKKyAqICAgICBpbnQgc3RhcnQgPSBib3VuZGFyeS5maXJzdCgpOworICogICAgIGludCBlbmQgPSBib3VuZGFyeS5uZXh0KCk7CisgKiAgICAgU3lzdGVtLm91dC5wcmludGxuKHNvdXJjZS5zdWJzdHJpbmcoc3RhcnQsZW5kKSk7CisgKiB9CisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiBQcmludCBsYXN0IGVsZW1lbnQKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIHB1YmxpYyBzdGF0aWMgdm9pZCBwcmludExhc3QoQnJlYWtJdGVyYXRvciBib3VuZGFyeSwgU3RyaW5nIHNvdXJjZSkgeworICogICAgIGludCBlbmQgPSBib3VuZGFyeS5sYXN0KCk7CisgKiAgICAgaW50IHN0YXJ0ID0gYm91bmRhcnkucHJldmlvdXMoKTsKKyAqICAgICBTeXN0ZW0ub3V0LnByaW50bG4oc291cmNlLnN1YnN0cmluZyhzdGFydCxlbmQpKTsKKyAqIH0KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIFByaW50IHRoZSBlbGVtZW50IGF0IGEgc3BlY2lmaWVkIHBvc2l0aW9uCisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBwdWJsaWMgc3RhdGljIHZvaWQgcHJpbnRBdChCcmVha0l0ZXJhdG9yIGJvdW5kYXJ5LCBpbnQgcG9zLCBTdHJpbmcgc291cmNlKSB7CisgKiAgICAgaW50IGVuZCA9IGJvdW5kYXJ5LmZvbGxvd2luZyhwb3MpOworICogICAgIGludCBzdGFydCA9IGJvdW5kYXJ5LnByZXZpb3VzKCk7CisgKiAgICAgU3lzdGVtLm91dC5wcmludGxuKHNvdXJjZS5zdWJzdHJpbmcoc3RhcnQsZW5kKSk7CisgKiB9CisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiBGaW5kIHRoZSBuZXh0IHdvcmQKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIHB1YmxpYyBzdGF0aWMgaW50IG5leHRXb3JkU3RhcnRBZnRlcihpbnQgcG9zLCBTdHJpbmcgdGV4dCkgeworICogICAgIEJyZWFrSXRlcmF0b3Igd2IgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSgpOworICogICAgIHdiLnNldFRleHQodGV4dCk7CisgKiAgICAgaW50IGxhc3QgPSB3Yi5mb2xsb3dpbmcocG9zKTsKKyAqICAgICBpbnQgY3VycmVudCA9IHdiLm5leHQoKTsKKyAqICAgICB3aGlsZSAoY3VycmVudCAhPSBCcmVha0l0ZXJhdG9yLkRPTkUpIHsKKyAqICAgICAgICAgZm9yIChpbnQgcCA9IGxhc3Q7IHAgPCBjdXJyZW50OyBwKyspIHsKKyAqICAgICAgICAgICAgIGlmIChDaGFyYWN0ZXIuaXNMZXR0ZXIodGV4dC5jaGFyQXQocCkpCisgKiAgICAgICAgICAgICAgICAgcmV0dXJuIGxhc3Q7CisgKiAgICAgICAgIH0KKyAqICAgICAgICAgbGFzdCA9IGN1cnJlbnQ7CisgKiAgICAgICAgIGN1cnJlbnQgPSB3Yi5uZXh0KCk7CisgKiAgICAgfQorICogICAgIHJldHVybiBCcmVha0l0ZXJhdG9yLkRPTkU7CisgKiB9CisgKiA8L3ByZT4KKyAqIChUaGUgaXRlcmF0b3IgcmV0dXJuZWQgYnkgQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoKSBpcyB1bmlxdWUgaW4gdGhhdAorICogdGhlIGJyZWFrIHBvc2l0aW9ucyBpdCByZXR1cm5zIGRvbid0IHJlcHJlc2VudCBib3RoIHRoZSBzdGFydCBhbmQgZW5kIG9mIHRoZQorICogdGhpbmcgYmVpbmcgaXRlcmF0ZWQgb3Zlci4gIFRoYXQgaXMsIGEgc2VudGVuY2UtYnJlYWsgaXRlcmF0b3IgcmV0dXJucyBicmVha3MKKyAqIHRoYXQgZWFjaCByZXByZXNlbnQgdGhlIGVuZCBvZiBvbmUgc2VudGVuY2UgYW5kIHRoZSBiZWdpbm5pbmcgb2YgdGhlIG5leHQuCisgKiBXaXRoIHRoZSB3b3JkLWJyZWFrIGl0ZXJhdG9yLCB0aGUgY2hhcmFjdGVycyBiZXR3ZWVuIHR3byBib3VuZGFyaWVzIG1pZ2h0IGJlIGEKKyAqIHdvcmQsIG9yIHRoZXkgbWlnaHQgYmUgdGhlIHB1bmN0dWF0aW9uIG9yIHdoaXRlc3BhY2UgYmV0d2VlbiB0d28gd29yZHMuICBUaGUKKyAqIGFib3ZlIGNvZGUgdXNlcyBhIHNpbXBsZSBoZXVyaXN0aWMgdG8gZGV0ZXJtaW5lIHdoaWNoIGJvdW5kYXJ5IGlzIHRoZSBiZWdpbm5pbmcKKyAqIG9mIGEgd29yZDogSWYgdGhlIGNoYXJhY3RlcnMgYmV0d2VlbiB0aGlzIGJvdW5kYXJ5IGFuZCB0aGUgbmV4dCBib3VuZGFyeQorICogaW5jbHVkZSBhdCBsZWFzdCBvbmUgbGV0dGVyICh0aGlzIGNhbiBiZSBhbiBhbHBoYWJldGljYWwgbGV0dGVyLCBhIENKSyBpZGVvZ3JhcGgsCisgKiBhIEhhbmd1bCBzeWxsYWJsZSwgYSBLYW5hIGNoYXJhY3RlciwgZXRjLiksIHRoZW4gdGhlIHRleHQgYmV0d2VlbiB0aGlzIGJvdW5kYXJ5CisgKiBhbmQgdGhlIG5leHQgaXMgYSB3b3JkOyBvdGhlcndpc2UsIGl0J3MgdGhlIG1hdGVyaWFsIGJldHdlZW4gd29yZHMuKQorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIEBzZWUgQ2hhcmFjdGVySXRlcmF0b3IKKyAqCisgKi8KKworcHVibGljIGFic3RyYWN0IGNsYXNzIEJyZWFrSXRlcmF0b3IgaW1wbGVtZW50cyBDbG9uZWFibGUKK3sKKyAgICAvKioKKyAgICAgKiBEZWZhdWx0IGNvbnN0cnVjdG9yLiAgVGhlcmUgaXMgbm8gc3RhdGUgdGhhdCBpcyBjYXJyaWVkIGJ5IHRoaXMgYWJzdHJhY3QKKyAgICAgKiBiYXNlIGNsYXNzLgorICAgICAqLworICAgIHByb3RlY3RlZCBCcmVha0l0ZXJhdG9yKCkKKyAgICB7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2xvbmUgbWV0aG9kLiAgQ3JlYXRlcyBhbm90aGVyIEJyZWFrSXRlcmF0b3Igd2l0aCB0aGUgc2FtZSBiZWhhdmlvciBhbmQKKyAgICAgKiBjdXJyZW50IHN0YXRlIGFzIHRoaXMgb25lLgorICAgICAqIEByZXR1cm4gVGhlIGNsb25lLgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiBzdXBlci5jbG9uZSgpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChDbG9uZU5vdFN1cHBvcnRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcigpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRE9ORSBpcyByZXR1cm5lZCBieSBwcmV2aW91cygpIGFuZCBuZXh0KCkgYWZ0ZXIgYWxsIHZhbGlkCisgICAgICogYm91bmRhcmllcyBoYXZlIGJlZW4gcmV0dXJuZWQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRE9ORSA9IC0xOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBmaXJzdCBib3VuZGFyeSBwb3NpdGlvbi4gIFRoaXMgaXMgYWx3YXlzIHRoZSBiZWdpbm5pbmcKKyAgICAgKiBpbmRleCBvZiB0aGUgdGV4dCB0aGlzIGl0ZXJhdG9yIGl0ZXJhdGVzIG92ZXIuICBGb3IgZXhhbXBsZSwgaWYKKyAgICAgKiB0aGUgaXRlcmF0b3IgaXRlcmF0ZXMgb3ZlciBhIHdob2xlIHN0cmluZywgdGhpcyBmdW5jdGlvbiB3aWxsCisgICAgICogYWx3YXlzIHJldHVybiAwLiAgVGhpcyBmdW5jdGlvbiBhbHNvIHVwZGF0ZXMgdGhlIGl0ZXJhdGlvbiBwb3NpdGlvbgorICAgICAqIHRvIHBvaW50IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQuCisgICAgICogQHJldHVybiBUaGUgY2hhcmFjdGVyIG9mZnNldCBvZiB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzdHJldGNoIG9mIHRleHQKKyAgICAgKiBiZWluZyBicm9rZW4uCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBmaXJzdCgpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsYXN0IGJvdW5kYXJ5IHBvc2l0aW9uLiAgVGhpcyBpcyBhbHdheXMgdGhlICJwYXN0LXRoZS1lbmQiCisgICAgICogaW5kZXggb2YgdGhlIHRleHQgdGhpcyBpdGVyYXRvciBpdGVyYXRlcyBvdmVyLiAgRm9yIGV4YW1wbGUsIGlmIHRoZQorICAgICAqIGl0ZXJhdG9yIGl0ZXJhdGVzIG92ZXIgYSB3aG9sZSBzdHJpbmcgKGNhbGwgaXQgInRleHQiKSwgdGhpcyBmdW5jdGlvbgorICAgICAqIHdpbGwgYWx3YXlzIHJldHVybiB0ZXh0Lmxlbmd0aCgpLiAgVGhpcyBmdW5jdGlvbiBhbHNvIHVwZGF0ZWQgdGhlCisgICAgICogaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHBvaW50IHRvIHRoZSBlbmQgb2YgdGhlIHRleHQuCisgICAgICogQHJldHVybiBUaGUgY2hhcmFjdGVyIG9mZnNldCBvZiB0aGUgZW5kIG9mIHRoZSBzdHJldGNoIG9mIHRleHQKKyAgICAgKiBiZWluZyBicm9rZW4uCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBsYXN0KCk7CisKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBzdGVwcyBmb3J3YXJkIGluIHRoZSB0ZXh0IChhIG5lZ2F0aXZlCisgICAgICogbnVtYmVyLCB0aGVyZWZvcmUsIGFkdmFuY2VzIGJhY2t3YXJkcykuICBJZiB0aGlzIGNhdXNlcyB0aGUgaXRlcmF0b3IKKyAgICAgKiB0byBhZHZhbmNlIG9mZiBlaXRoZXIgZW5kIG9mIHRoZSB0ZXh0LCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgRE9ORTsKKyAgICAgKiBvdGhlcndpc2UsIHRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgcG9zaXRpb24gb2YgdGhlIGFwcHJvcHJpYXRlCisgICAgICogYm91bmRhcnkuICBDYWxsaW5nIHRoaXMgZnVuY3Rpb24gaXMgZXF1aXZhbGVudCB0byBjYWxsaW5nIG5leHQoKSBvcgorICAgICAqIHByZXZpb3VzKCkgbiB0aW1lcy4KKyAgICAgKiBAcGFyYW0gbiBUaGUgbnVtYmVyIG9mIGJvdW5kYXJpZXMgdG8gYWR2YW5jZSBvdmVyIChpZiBwb3NpdGl2ZSwgbW92ZXMKKyAgICAgKiBmb3J3YXJkOyBpZiBuZWdhdGl2ZSwgbW92ZXMgYmFja3dhcmRzKS4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgYm91bmRhcnkgbiBib3VuZGFyaWVzIGZyb20gdGhlIGN1cnJlbnQKKyAgICAgKiBpdGVyYXRpb24gcG9zaXRpb24sIG9yIERPTkUgaWYgbW92aW5nIG4gYm91bmRhcmllcyBjYXVzZXMgdGhlIGl0ZXJhdG9yCisgICAgICogdG8gYWR2YW5jZSBvZmYgZWl0aGVyIGVuZCBvZiB0aGUgdGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IG5leHQoaW50IG4pOworCisgICAgLyoqCisgICAgICogQWR2YW5jZXMgdGhlIGl0ZXJhdG9yIGZvcndhcmQgb25lIGJvdW5kYXJ5LiAgVGhlIGN1cnJlbnQgaXRlcmF0aW9uCisgICAgICogcG9zaXRpb24gaXMgdXBkYXRlZCB0byBwb2ludCB0byB0aGUgbmV4dCBib3VuZGFyeSBwb3NpdGlvbiBhZnRlciB0aGUKKyAgICAgKiBjdXJyZW50IHBvc2l0aW9uLCBhbmQgdGhpcyBpcyBhbHNvIHRoZSB2YWx1ZSB0aGF0IGlzIHJldHVybmVkLiAgSWYKKyAgICAgKiB0aGUgY3VycmVudCBwb3NpdGlvbiBpcyBlcXVhbCB0byB0aGUgdmFsdWUgcmV0dXJuZWQgYnkgbGFzdCgpLCBvciB0bworICAgICAqIERPTkUsIHRoaXMgZnVuY3Rpb24gcmV0dXJucyBET05FIGFuZCBzZXRzIHRoZSBjdXJyZW50IHBvc2l0aW9uIHRvCisgICAgICogRE9ORS4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgZmlyc3QgYm91bmRhcnkgcG9zaXRpb24gZm9sbG93aW5nIHRoZQorICAgICAqIGl0ZXJhdGlvbiBwb3NpdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IG5leHQoKTsKKworICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRoZSBpdGVyYXRvciBiYWNrd2FyZCBvbmUgYm91bmRhcnkuICBUaGUgY3VycmVudCBpdGVyYXRpb24KKyAgICAgKiBwb3NpdGlvbiBpcyB1cGRhdGVkIHRvIHBvaW50IHRvIHRoZSBsYXN0IGJvdW5kYXJ5IHBvc2l0aW9uIGJlZm9yZQorICAgICAqIHRoZSBjdXJyZW50IHBvc2l0aW9uLCBhbmQgdGhpcyBpcyBhbHNvIHRoZSB2YWx1ZSB0aGF0IGlzIHJldHVybmVkLiAgSWYKKyAgICAgKiB0aGUgY3VycmVudCBwb3NpdGlvbiBpcyBlcXVhbCB0byB0aGUgdmFsdWUgcmV0dXJuZWQgYnkgZmlyc3QoKSwgb3IgdG8KKyAgICAgKiBET05FLCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgRE9ORSBhbmQgc2V0cyB0aGUgY3VycmVudCBwb3NpdGlvbiB0bworICAgICAqIERPTkUuCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGxhc3QgYm91bmRhcnkgcG9zaXRpb24gcHJlY2VkaW5nIHRoZQorICAgICAqIGl0ZXJhdGlvbiBwb3NpdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IHByZXZpb3VzKCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvcidzIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIGJlIHRoZSBmaXJzdAorICAgICAqIGJvdW5kYXJ5IHBvc2l0aW9uIGZvbGxvd2luZyB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLiAgKFdoZXRoZXIgdGhlCisgICAgICogc3BlY2lmaWVkIHBvc2l0aW9uIGlzIGl0c2VsZiBhIGJvdW5kYXJ5IHBvc2l0aW9uIG9yIG5vdCBkb2Vzbid0CisgICAgICogbWF0dGVyLS0gdGhpcyBmdW5jdGlvbiBhbHdheXMgbW92ZXMgdGhlIGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUKKyAgICAgKiBmaXJzdCBib3VuZGFyeSBhZnRlciB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLikgIElmIHRoZSBzcGVjaWZpZWQKKyAgICAgKiBwb3NpdGlvbiBpcyB0aGUgcGFzdC10aGUtZW5kIHBvc2l0aW9uLCByZXR1cm5zIERPTkUuCisgICAgICogQHBhcmFtIG9mZnNldCBUaGUgY2hhcmFjdGVyIHBvc2l0aW9uIHRvIHN0YXJ0IHNlYXJjaGluZyBmcm9tLgorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBmaXJzdCBib3VuZGFyeSBwb3NpdGlvbiBmb2xsb3dpbmcKKyAgICAgKiAib2Zmc2V0IiAod2hldGhlciBvciBub3QgIm9mZnNldCIgaXRzZWxmIGlzIGEgYm91bmRhcnkgcG9zaXRpb24pLAorICAgICAqIG9yIERPTkUgaWYgIm9mZnNldCIgaXMgdGhlIHBhc3QtdGhlLWVuZCBvZmZzZXQuCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBmb2xsb3dpbmcoaW50IG9mZnNldCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvcidzIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIGJlIHRoZSBsYXN0CisgICAgICogYm91bmRhcnkgcG9zaXRpb24gcHJlY2VkaW5nIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uICAoV2hldGhlciB0aGUKKyAgICAgKiBzcGVjaWZpZWQgcG9zaXRpb24gaXMgaXRzZWxmIGEgYm91bmRhcnkgcG9zaXRpb24gb3Igbm90IGRvZXNuJ3QKKyAgICAgKiBtYXR0ZXItLSB0aGlzIGZ1bmN0aW9uIGFsd2F5cyBtb3ZlcyB0aGUgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZQorICAgICAqIGxhc3QgYm91bmRhcnkgYmVmb3JlIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uKSAgSWYgdGhlIHNwZWNpZmllZAorICAgICAqIHBvc2l0aW9uIGlzIHRoZSBzdGFydGluZyBwb3NpdGlvbiwgcmV0dXJucyBET05FLgorICAgICAqIEBwYXJhbSBvZmZzZXQgVGhlIGNoYXJhY3RlciBwb3NpdGlvbiB0byBzdGFydCBzZWFyY2hpbmcgZnJvbS4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgbGFzdCBib3VuZGFyeSBwb3NpdGlvbiBwcmVjZWRpbmcKKyAgICAgKiAib2Zmc2V0IiAod2hldGhlciBvZiBub3QgIm9mZnNldCIgaXRzZWxmIGlzIGEgYm91bmRhcnkgcG9zaXRpb24pLAorICAgICAqIG9yIERPTkUgaWYgIm9mZnNldCIgaXMgdGhlIHN0YXJ0aW5nIG9mZnNldCBvZiB0aGUgaXRlcmF0b3IuCisgICAgICovCisgICAgcHVibGljIGludCBwcmVjZWRpbmcoaW50IG9mZnNldCkgeworICAgICAgICAvLyBOT1RFOiAgVGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBoZXJlIHNvbGVseSBiZWNhdXNlIHdlIGNhbid0IGFkZCBuZXcKKyAgICAgICAgLy8gYWJzdHJhY3QgbWV0aG9kcyB0byBhbiBleGlzdGluZyBjbGFzcy4gIFRoZXJlIGlzIGFsbW9zdCBBTFdBWVMgYQorICAgICAgICAvLyBiZXR0ZXIsIGZhc3RlciB3YXkgdG8gZG8gdGhpcy4KKyAgICAgICAgaW50IHBvcyA9IGZvbGxvd2luZyhvZmZzZXQpOworICAgICAgICB3aGlsZSAocG9zID49IG9mZnNldCAmJiBwb3MgIT0gRE9ORSkKKyAgICAgICAgICAgIHBvcyA9IHByZXZpb3VzKCk7CisgICAgICAgIHJldHVybiBwb3M7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIHNwZWNmaWVkIHBvc2l0aW9uIGlzIGEgYm91bmRhcnkgcG9zaXRpb24uICBJZiB0aGUKKyAgICAgKiBmdW5jdGlvbiByZXR1cm5zIHRydWUsIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiBpcyBzZXQgdG8gdGhlCisgICAgICogc3BlY2lmaWVkIHBvc2l0aW9uOyBpZiB0aGUgZnVuY3Rpb24gcmV0dXJucyBmYWxzZSwgdGhlIGN1cnJlbnQKKyAgICAgKiBpdGVyYXRpb24gcG9zaXRpb24gaXMgc2V0IGFzIHRob3VnaCBmb2xsb3dpbmcoKSBoYWQgYmVlbiBjYWxsZWQuCisgICAgICogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IHRvIGNoZWNrLgorICAgICAqIEByZXR1cm4gVHJ1ZSBpZiAib2Zmc2V0IiBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9uLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzQm91bmRhcnkoaW50IG9mZnNldCkgeworICAgICAgICAvLyBBZ2FpbiwgdGhpcyBpcyB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiwgd2hpY2ggaXMgcHJvdmlkZWQgc29sZWx5IGJlY2F1c2UKKyAgICAgICAgLy8gd2UgY291bGRuJ3QgYWRkIGEgbmV3IGFic3RyYWN0IG1ldGhvZCB0byBhbiBleGlzdGluZyBjbGFzcy4gIFRoZSByZWFsCisgICAgICAgIC8vIGltcGxlbWVudGF0aW9ucyB3aWxsIHVzdWFsbHkgbmVlZCB0byBkbyBhIGxpdHRsZSBtb3JlIHdvcmsuCisgICAgICAgIGlmIChvZmZzZXQgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIGZvbGxvd2luZyhvZmZzZXQgLSAxKSA9PSBvZmZzZXQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBpdGVyYXRvcidzIGN1cnJlbnQgcG9zaXRpb24uCisgICAgICogQHJldHVybiBUaGUgaXRlcmF0b3IncyBjdXJyZW50IHBvc2l0aW9uLgorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgY3VycmVudCgpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIENoYXJhY3Rlckl0ZXJhdG9yIG92ZXIgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuCisgICAgICogRm9yIGF0IGxlYXN0IHNvbWUgc3ViY2xhc3NlcyBvZiBCcmVha0l0ZXJhdG9yLCB0aGlzIGlzIGEgcmVmZXJlbmNlCisgICAgICogdG8gdGhlIDxiPmFjdHVhbCBpdGVyYXRvciBiZWluZyB1c2VkPC9iPiBieSB0aGUgQnJlYWtJdGVyYXRvciwKKyAgICAgKiBhbmQgdGhlcmVmb3JlLCB0aGlzIGZ1bmN0aW9uJ3MgcmV0dXJuIHZhbHVlIHNob3VsZCBiZSB0cmVhdGVkIGFzCisgICAgICogPHR0PmNvbnN0PC90dD4uICBObyBndWFyYW50ZWVzIGFyZSBtYWRlIGFib3V0IHRoZSBjdXJyZW50IHBvc2l0aW9uCisgICAgICogb2YgdGhpcyBpdGVyYXRvciB3aGVuIGl0IGlzIHJldHVybmVkLiAgSWYgeW91IG5lZWQgdG8gbW92ZSB0aGF0CisgICAgICogcG9zaXRpb24gdG8gZXhhbWluZSB0aGUgdGV4dCwgY2xvbmUgdGhpcyBmdW5jdGlvbidzIHJldHVybiB2YWx1ZSBmaXJzdC4KKyAgICAgKiBAcmV0dXJuIEEgQ2hhcmFjdGVySXRlcmF0b3Igb3ZlciB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgQ2hhcmFjdGVySXRlcmF0b3IgZ2V0VGV4dCgpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gYW5hbHl6ZSBhIG5ldyBwaWVjZSBvZiB0ZXh0LiAgVGhlIG5ldworICAgICAqIHBpZWNlIG9mIHRleHQgaXMgcGFzc2VkIGluIGFzIGEgU3RyaW5nLCBhbmQgdGhlIGN1cnJlbnQKKyAgICAgKiBpdGVyYXRpb24gcG9zaXRpb24gaXMgcmVzZXQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgc3RyaW5nLgorICAgICAqIChUaGUgb2xkIHRleHQgaXMgZHJvcHBlZC4pCisgICAgICogQHBhcmFtIG5ld1RleHQgQSBTdHJpbmcgY29udGFpbmluZyB0aGUgdGV4dCB0byBhbmFseXplIHdpdGgKKyAgICAgKiB0aGlzIEJyZWFrSXRlcmF0b3IuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGV4dChTdHJpbmcgbmV3VGV4dCkKKyAgICB7CisgICAgICAgIHNldFRleHQobmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKG5ld1RleHQpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byBhbmFseXplIGEgbmV3IHBpZWNlIG9mIHRleHQuICBUaGUKKyAgICAgKiBCcmVha0l0ZXJhdG9yIGlzIHBhc3NlZCBhIENoYXJhY3Rlckl0ZXJhdG9yIHRocm91Z2ggd2hpY2gKKyAgICAgKiBpdCB3aWxsIGFjY2VzcyB0aGUgdGV4dCBpdHNlbGYuICBUaGUgY3VycmVudCBpdGVyYXRpb24KKyAgICAgKiBwb3NpdGlvbiBpcyByZXNldCB0byB0aGUgQ2hhcmFjdGVySXRlcmF0b3IncyBzdGFydCBpbmRleC4KKyAgICAgKiAoVGhlIG9sZCBpdGVyYXRvciBpcyBkcm9wcGVkLikKKyAgICAgKiBAcGFyYW0gbmV3VGV4dCBBIENoYXJhY3Rlckl0ZXJhdG9yIHJlZmVycmluZyB0byB0aGUgdGV4dAorICAgICAqIHRvIGFuYWx5emUgd2l0aCB0aGlzIEJyZWFrSXRlcmF0b3IgKHRoZSBpdGVyYXRvcidzIGN1cnJlbnQKKyAgICAgKiBwb3NpdGlvbiBpcyBpZ25vcmVkLCBidXQgaXRzIG90aGVyIHN0YXRlIGlzIHNpZ25pZmljYW50KS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRUZXh0KENoYXJhY3Rlckl0ZXJhdG9yIG5ld1RleHQpOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENIQVJBQ1RFUl9JTkRFWCA9IDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFdPUkRfSU5ERVggPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMSU5FX0lOREVYID0gMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0VOVEVOQ0VfSU5ERVggPSAzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBUSVRMRV9JTkRFWCA9IDQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU29mdFJlZmVyZW5jZVtdIGl0ZXJDYWNoZSA9IG5ldyBTb2Z0UmVmZXJlbmNlWzVdOworCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyB3b3JkIGJvdW5kYXJpZXMuCisgICAgICogVGhpcyBmdW5jdGlvbiBhc3N1bWVzIHRoYXQgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQgaXMgaW4gdGhlIGRlZmF1bHQKKyAgICAgKiBsb2NhbGUncyBsYW5ndWFnZS4KKyAgICAgKiBAcmV0dXJuIEFuIGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIHdvcmQgYm91bmRhcmllcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJyZWFrSXRlcmF0b3IgZ2V0V29yZEluc3RhbmNlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRXb3JkSW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyB3b3JkIGJvdW5kYXJpZXMuCisgICAgICogQHBhcmFtIHdoZXJlIEEgbG9jYWxlIHNwZWNpZnlpbmcgdGhlIGxhbmd1YWdlIG9mIHRoZSB0ZXh0IHRvIGJlCisgICAgICogYW5hbHl6ZWQuCisgICAgICogQHJldHVybiBBbiBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyB3b3JkIGJvdW5kYXJpZXMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBCcmVha0l0ZXJhdG9yIGdldFdvcmRJbnN0YW5jZShMb2NhbGUgd2hlcmUpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0QnJlYWtJbnN0YW5jZSh3aGVyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV09SRF9JTkRFWCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIldvcmRCcmVha1J1bGVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIldvcmRCcmVha0RpY3Rpb25hcnkiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIGxlZ2FsIGxpbmUtCisgICAgICogd3JhcHBpbmcgcG9zaXRpb25zLiAgVGhpcyBmdW5jdGlvbiBhc3N1bWVzIHRoZSB0ZXh0IGJlaW5nIGJyb2tlbgorICAgICAqIGlzIGluIHRoZSBkZWZhdWx0IGxvY2FsZSdzIGxhbmd1YWdlLgorICAgICAqIEByZXR1cm4gQSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgbGVnYWwKKyAgICAgKiBsaW5lLXdyYXBwaW5nIHBvc2l0aW9ucy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJyZWFrSXRlcmF0b3IgZ2V0TGluZUluc3RhbmNlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRMaW5lSW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBsZWdhbCBsaW5lLQorICAgICAqIHdyYXBwaW5nIHBvc2l0aW9ucy4KKyAgICAgKiBAcGFyYW0gd2hlcmUgQSBMb2NhbGUgc3BlY2lmeWluZyB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIHRleHQgYmVpbmcgYnJva2VuLgorICAgICAqIEByZXR1cm4gQSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgbGVnYWwKKyAgICAgKiBsaW5lLXdyYXBwaW5nIHBvc2l0aW9ucy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJyZWFrSXRlcmF0b3IgZ2V0TGluZUluc3RhbmNlKExvY2FsZSB3aGVyZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRCcmVha0luc3RhbmNlKHdoZXJlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSU5FX0lOREVYLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGluZUJyZWFrUnVsZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGluZUJyZWFrRGljdGlvbmFyeSIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgbG9naWNhbC1jaGFyYWN0ZXIKKyAgICAgKiBib3VuZGFyaWVzLiAgVGhpcyBmdW5jdGlvbiBhc3N1bWVzIHRoYXQgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQgaXMKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCBsb2NhbGUncyBsYW5ndWFnZS4KKyAgICAgKiBAcmV0dXJuIEEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIGxvZ2ljYWwtY2hhcmFjdGVyCisgICAgICogYm91bmRhcmllcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJyZWFrSXRlcmF0b3IgZ2V0Q2hhcmFjdGVySW5zdGFuY2UoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldENoYXJhY3Rlckluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgbG9naWNhbC1jaGFyYWN0ZXIKKyAgICAgKiBib3VuZGFyaWVzLgorICAgICAqIEBwYXJhbSB3aGVyZSBBIExvY2FsZSBzcGVjaWZ5aW5nIHRoZSBsYW5ndWFnZSBvZiB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgKiBAcmV0dXJuIEEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIGxvZ2ljYWwtY2hhcmFjdGVyCisgICAgICogYm91bmRhcmllcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJyZWFrSXRlcmF0b3IgZ2V0Q2hhcmFjdGVySW5zdGFuY2UoTG9jYWxlIHdoZXJlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldEJyZWFrSW5zdGFuY2Uod2hlcmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENIQVJBQ1RFUl9JTkRFWCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNoYXJhY3RlckJyZWFrUnVsZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ2hhcmFjdGVyQnJlYWtEaWN0aW9uYXJ5Iik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBzZW50ZW5jZSBib3VuZGFyaWVzLgorICAgICAqIFRoaXMgZnVuY3Rpb24gYXNzdW1lcyB0aGUgdGV4dCBiZWluZyBhbmFseXplZCBpcyBpbiB0aGUgZGVmYXVsdCBsb2NhbGUncworICAgICAqIGxhbmd1YWdlLgorICAgICAqIEByZXR1cm4gQSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgc2VudGVuY2UgYm91bmRhcmllcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJyZWFrSXRlcmF0b3IgZ2V0U2VudGVuY2VJbnN0YW5jZSgpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0U2VudGVuY2VJbnN0YW5jZShMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIHNlbnRlbmNlIGJvdW5kYXJpZXMuCisgICAgICogQHBhcmFtIHdoZXJlIEEgTG9jYWxlIHNwZWNpZnlpbmcgdGhlIGxhbmd1YWdlIG9mIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAqIEByZXR1cm4gQSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgc2VudGVuY2UgYm91bmRhcmllcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJyZWFrSXRlcmF0b3IgZ2V0U2VudGVuY2VJbnN0YW5jZShMb2NhbGUgd2hlcmUpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0QnJlYWtJbnN0YW5jZSh3aGVyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VOVEVOQ0VfSU5ERVgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTZW50ZW5jZUJyZWFrUnVsZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU2VudGVuY2VCcmVha0RpY3Rpb25hcnkiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIHNlbnRlbmNlIGJvdW5kYXJpZXMuCisgICAgICogVGhpcyBmdW5jdGlvbiBhc3N1bWVzIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkIGlzIGluIHRoZSBkZWZhdWx0IGxvY2FsZSdzCisgICAgICogbGFuZ3VhZ2UuCisgICAgICogQHJldHVybiBBIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBzZW50ZW5jZSBib3VuZGFyaWVzLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQnJlYWtJdGVyYXRvciBnZXRUaXRsZUluc3RhbmNlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRUaXRsZUluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgc2VudGVuY2UgYm91bmRhcmllcy4KKyAgICAgKiBAcGFyYW0gd2hlcmUgQSBMb2NhbGUgc3BlY2lmeWluZyB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuCisgICAgICogQHJldHVybiBBIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBzZW50ZW5jZSBib3VuZGFyaWVzLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQnJlYWtJdGVyYXRvciBnZXRUaXRsZUluc3RhbmNlKExvY2FsZSB3aGVyZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRCcmVha0luc3RhbmNlKHdoZXJlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUSVRMRV9JTkRFWCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRpdGxlQnJlYWtSdWxlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUaXRsZUJyZWFrRGljdGlvbmFyeSIpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIEJyZWFrSXRlcmF0b3IgZ2V0QnJlYWtJbnN0YW5jZShMb2NhbGUgd2hlcmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcnVsZXNOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZGljdGlvbmFyeU5hbWUpIHsKKworICAgICAgICBpZiAoaXRlckNhY2hlW3R5cGVdICE9IG51bGwpIHsKKyAgICAgICAgICAgIEJyZWFrSXRlcmF0b3JDYWNoZSBjYWNoZSA9IChCcmVha0l0ZXJhdG9yQ2FjaGUpIGl0ZXJDYWNoZVt0eXBlXS5nZXQoKTsKKyAgICAgICAgICAgIGlmIChjYWNoZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgaWYgKGNhY2hlLmdldExvY2FsZSgpLmVxdWFscyh3aGVyZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhY2hlLmNyZWF0ZUJyZWFrSW5zdGFuY2UoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBCcmVha0l0ZXJhdG9yIHJlc3VsdCA9IGNyZWF0ZUJyZWFrSW5zdGFuY2Uod2hlcmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZXNOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGljdGlvbmFyeU5hbWUpOworICAgICAgICBCcmVha0l0ZXJhdG9yQ2FjaGUgY2FjaGUgPSBuZXcgQnJlYWtJdGVyYXRvckNhY2hlKHdoZXJlLCByZXN1bHQpOworICAgICAgICBpdGVyQ2FjaGVbdHlwZV0gPSBuZXcgU29mdFJlZmVyZW5jZShjYWNoZSk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgQnJlYWtJdGVyYXRvciBjcmVhdGVCcmVha0luc3RhbmNlKExvY2FsZSB3aGVyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBydWxlc05hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkaWN0aW9uYXJ5TmFtZSkgeworCisvLwkJU3lzdGVtLm91dC5wcmludGxuKCJydWxlc05hbWU6ICIrcnVsZXNOYW1lKTsKKy8vCQlTeXN0ZW0ub3V0LnByaW50bG4oImRpY3Rpb25hcnlOYW1lOiAiK2RpY3Rpb25hcnlOYW1lKTsKKyAgICAgICAgUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gSUNVTG9jYWxlRGF0YS5nZXRSZXNvdXJjZUJ1bmRsZSgiQnJlYWtJdGVyYXRvclJ1bGVzIiwgd2hlcmUpOworICAgICAgICBTdHJpbmdbXSBjbGFzc05hbWVzID0gYnVuZGxlLmdldFN0cmluZ0FycmF5KCJCcmVha0l0ZXJhdG9yQ2xhc3NlcyIpOworCisgICAgICAgIFN0cmluZyBydWxlcyA9IGJ1bmRsZS5nZXRTdHJpbmcocnVsZXNOYW1lKTsKKyAgICAgICAgCisgICAgICAgIGlmIChjbGFzc05hbWVzW3R5cGVdLmVxdWFscygiUnVsZUJhc2VkQnJlYWtJdGVyYXRvciIpKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IocnVsZXMpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGNsYXNzTmFtZXNbdHlwZV0uZXF1YWxzKCJEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yIikpIHsKKyAgICAgICAgICAgIHRyeSB7CisJCQkJLy8gU3lzdGVtLm91dC5wcmludGxuKGRpY3Rpb25hcnlOYW1lKTsKKyAgICAgICAgICAgICAgICBPYmplY3QgdCA9IGJ1bmRsZS5nZXRPYmplY3QoZGljdGlvbmFyeU5hbWUpOworCQkJCS8vIFN5c3RlbS5vdXQucHJpbnRsbih0KTsKKyAgICAgICAgICAgICAgICBVUkwgdXJsID0gKFVSTCl0OworICAgICAgICAgICAgICAgIElucHV0U3RyZWFtIGRpY3Rpb25hcnkgPSB1cmwub3BlblN0cmVhbSgpOworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvcihydWxlcywgZGljdGlvbmFyeSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG5ldyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKHJ1bGVzKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGJyZWFrIGl0ZXJhdG9yIGNsYXNzIFwiIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lc1t0eXBlXSArICJcIiIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBsaXN0IG9mIGxvY2FsZXMgZm9yIHdoaWNoIEJyZWFrSXRlcmF0b3JzIGNhbiBiZSB1c2VkLgorICAgICAqIEByZXR1cm4gQW4gYXJyYXkgb2YgTG9jYWxlcy4gIEFsbCBvZiB0aGUgbG9jYWxlcyBpbiB0aGUgYXJyYXkgY2FuCisgICAgICogYmUgdXNlZCB3aGVuIGNyZWF0aW5nIGEgQnJlYWtJdGVyYXRvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCBMb2NhbGVbXSBnZXRBdmFpbGFibGVMb2NhbGVzKCkKKyAgICB7CisJCS8vIHJldHVybnMgYWxsIGxvY2FsZXMKKyAgICAgICAgcmV0dXJuIElDVUxvY2FsZURhdGEuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIEJyZWFrSXRlcmF0b3JDYWNoZSB7CisKKyAgICAgICAgcHJpdmF0ZSBCcmVha0l0ZXJhdG9yIGl0ZXI7CisgICAgICAgIHByaXZhdGUgTG9jYWxlIHdoZXJlOworCisgICAgICAgIEJyZWFrSXRlcmF0b3JDYWNoZShMb2NhbGUgd2hlcmUsIEJyZWFrSXRlcmF0b3IgaXRlcikgeworICAgICAgICAgICAgdGhpcy53aGVyZSA9IHdoZXJlOworICAgICAgICAgICAgdGhpcy5pdGVyID0gKEJyZWFrSXRlcmF0b3IpIGl0ZXIuY2xvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIExvY2FsZSBnZXRMb2NhbGUoKSB7CisgICAgICAgICAgICByZXR1cm4gd2hlcmU7CisgICAgICAgIH0KKworICAgICAgICBCcmVha0l0ZXJhdG9yIGNyZWF0ZUJyZWFrSW5zdGFuY2UoKSB7CisgICAgICAgICAgICByZXR1cm4gKEJyZWFrSXRlcmF0b3IpIGl0ZXIuY2xvbmUoKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0JyZWFrVHJhbnNsaXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0JyZWFrVHJhbnNsaXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNWY0YzZiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQnJlYWtUcmFuc2xpdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMzk0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvdGV4dC9CcmVha1RyYW5zbGl0ZXJhdG9yLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDcvMTMgMDM6Mjc6MDkgJCAKKyAqICRSZXZpc2lvbjogMS4xICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworLy9pbXBvcnQgY29tLmlibS5pY3UuZGV2LmRlbW8uaW1wbC4qOworLy9pbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVHJhbnNsaXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZUZpbHRlcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlJlcGxhY2VhYmxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CisvL2ltcG9ydCBqYXZhLnV0aWwuKjsKKy8vaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CisvL2ltcG9ydCBqYXZhLmlvLio7CisKKy8qKgorICogSW5zZXJ0cyB0aGUgc3BlY2lmaWVkIGNoYXJhY3RlcnMgYXQgd29yZCBicmVha3MuIFRvIHJlc3RyaWN0IGl0IHRvIHBhcnRpY3VsYXIgY2hhcmFjdGVycywgdXNlIGEgZmlsdGVyLgorICogVE9ETzogdGhpcyBpcyBhbiBpbnRlcm5hbCBjbGFzcywgYW5kIG9ubHkgdGVtcG9yYXJ5LiBSZW1vdmUgaXQgb25jZSB3ZSBoYXZlIFxiIG5vdGF0aW9uIGluIFRyYW5zbGl0ZXJhdG9yLgorICovCitmaW5hbCBjbGFzcyBCcmVha1RyYW5zbGl0ZXJhdG9yIGV4dGVuZHMgVHJhbnNsaXRlcmF0b3IgeworICAgIHByaXZhdGUgQnJlYWtJdGVyYXRvciBiaTsKKyAgICBwcml2YXRlIFN0cmluZyBpbnNlcnRpb247CisgICAgcHJpdmF0ZSBpbnRbXSBib3VuZGFyaWVzID0gbmV3IGludFs1MF07CisgICAgcHJpdmF0ZSBpbnQgYm91bmRhcnlDb3VudCA9IDA7CisgICAgCisgICAgcHVibGljIEJyZWFrVHJhbnNsaXRlcmF0b3IoU3RyaW5nIElELCBVbmljb2RlRmlsdGVyIGZpbHRlciwgQnJlYWtJdGVyYXRvciBiaSwgU3RyaW5nIGluc2VydGlvbikgeworICAgICAgICBzdXBlcihJRCwgZmlsdGVyKTsKKyAgICAgICAgaWYgKGJpID09IG51bGwpIGJpID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UobmV3IExvY2FsZSgidGgiLCAiVEgiKSk7CisgICAgICAgIHRoaXMuYmkgPSBiaTsKKyAgICAgICAgdGhpcy5pbnNlcnRpb24gPSBpbnNlcnRpb247CisgICAgfQorICAgIAorICAgIHB1YmxpYyBCcmVha1RyYW5zbGl0ZXJhdG9yKFN0cmluZyBJRCwgVW5pY29kZUZpbHRlciBmaWx0ZXIpIHsKKyAgICAgICAgdGhpcyhJRCwgZmlsdGVyLCBudWxsLCAiICIpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIGdldEluc2VydGlvbigpIHsKKyAgICAgICAgcmV0dXJuIGluc2VydGlvbjsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgc2V0SW5zZXJ0aW9uKFN0cmluZyBpbnNlcnRpb24pIHsKKyAgICAgICAgdGhpcy5pbnNlcnRpb24gPSBpbnNlcnRpb247CisgICAgfQorICAgIAorICAgIHB1YmxpYyBCcmVha0l0ZXJhdG9yIGdldEJyZWFrSXRlcmF0b3IoKSB7CisgICAgICAgIHJldHVybiBiaTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgc2V0QnJlYWtJdGVyYXRvcihCcmVha0l0ZXJhdG9yIGJpKSB7CisgICAgICAgIHRoaXMuYmkgPSBiaTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGZpbmFsIGludCBMRVRURVJfT1JfTUFSS19NQVNLID0gCisgICAgICAgICAgKDE8PENoYXJhY3Rlci5VUFBFUkNBU0VfTEVUVEVSKQorICAgICAgICB8ICgxPDxDaGFyYWN0ZXIuTE9XRVJDQVNFX0xFVFRFUikKKyAgICAgICAgfCAoMTw8Q2hhcmFjdGVyLlRJVExFQ0FTRV9MRVRURVIpCisgICAgICAgIHwgKDE8PENoYXJhY3Rlci5NT0RJRklFUl9MRVRURVIpCisgICAgICAgIHwgKDE8PENoYXJhY3Rlci5PVEhFUl9MRVRURVIpCisgICAgICAgIHwgKDE8PENoYXJhY3Rlci5DT01CSU5JTkdfU1BBQ0lOR19NQVJLKQorICAgICAgICB8ICgxPDxDaGFyYWN0ZXIuTk9OX1NQQUNJTkdfTUFSSykKKyAgICAgICAgfCAoMTw8Q2hhcmFjdGVyLkVOQ0xPU0lOR19NQVJLKQorICAgICAgICA7CisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlVHJhbnNsaXRlcmF0ZShSZXBsYWNlYWJsZSB0ZXh0LCBQb3NpdGlvbiBwb3MsIGJvb2xlYW4gaW5jcmVtZW50YWwpIHsKKyAgICAgICAgYm91bmRhcnlDb3VudCA9IDA7CisgICAgICAgIGludCBib3VuZGFyeSA9IDA7CisgICAgICAgIGJpLnNldFRleHQobmV3IFJlcGxhY2VhYmxlQ2hhcmFjdGVySXRlcmF0b3IodGV4dCwgcG9zLnN0YXJ0LCBwb3MubGltaXQsIHBvcy5zdGFydCkpOworICAgICAgICAvLyBUT0RPOiBmaXggY2x1bXN5IHdvcmthcm91bmQgdXNlZCBiZWxvdy4KKyAgICAgICAgLyoKKyAgICAgICAgY2hhcltdIHRlbXBCdWZmZXIgPSBuZXcgY2hhclt0ZXh0Lmxlbmd0aCgpXTsKKyAgICAgICAgdGV4dC5nZXRDaGFycygwLCB0ZXh0Lmxlbmd0aCgpLCB0ZW1wQnVmZmVyLCAwKTsKKyAgICAgICAgYmkuc2V0VGV4dChuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IobmV3IFN0cmluZyh0ZW1wQnVmZmVyKSwgcG9zLnN0YXJ0LCBwb3MubGltaXQsIHBvcy5zdGFydCkpOworICAgICAgICAqLworICAgICAgICAvLyBlbmQgZGVidWdnaW5nCisgICAgICAgIAorICAgICAgICAvLyBUbyBtYWtlIHRoaW5ncyBtdWNoIGVhc2llciwgd2Ugd2lsbCBzdGFjayB0aGUgYm91bmRhcmllcywgYW5kIHRoZW4gaW5zZXJ0IGF0IHRoZSBlbmQuCisgICAgICAgIC8vIGdlbmVyYWxseSwgd2Ugd29uJ3QgbmVlZCB0b28gbWFueSwgc2luY2Ugd2Ugd2lsbCBiZSBmaWx0ZXJlZC4KKyAgICAgICAgCisgICAgICAgIGZvcihib3VuZGFyeSA9IGJpLmZpcnN0KCk7IGJvdW5kYXJ5ICE9IGJpLkRPTkUgJiYgYm91bmRhcnkgPCBwb3MubGltaXQ7IGJvdW5kYXJ5ID0gYmkubmV4dCgpKSB7CisgICAgICAgICAgICBpZiAoYm91bmRhcnkgPT0gMCkgY29udGludWU7CisgICAgICAgICAgICAvLyBIQUNLOiBDaGVjayB0byBzZWUgdGhhdCBwcmVjZWVkaW5nIGl0ZW0gd2FzIGEgbGV0dGVyCisKKyAgICAgICAgICAgIGludCBjcCA9IFVURjE2LmNoYXJBdCh0ZXh0LCBib3VuZGFyeS0xKTsKKyAgICAgICAgICAgIGludCB0eXBlID0gVUNoYXJhY3Rlci5nZXRUeXBlKGNwKTsKKyAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKEludGVnZXIudG9TdHJpbmcoY3AsMTYpICsgIiAoYmVmb3JlKTogIiArIHR5cGUpOworICAgICAgICAgICAgaWYgKCgoMTw8dHlwZSkgJiBMRVRURVJfT1JfTUFSS19NQVNLKSA9PSAwKSBjb250aW51ZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY3AgPSBVVEYxNi5jaGFyQXQodGV4dCwgYm91bmRhcnkpOworICAgICAgICAgICAgdHlwZSA9IFVDaGFyYWN0ZXIuZ2V0VHlwZShjcCk7CisgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbihJbnRlZ2VyLnRvU3RyaW5nKGNwLDE2KSArICIgKGFmdGVyKTogIiArIHR5cGUpOworICAgICAgICAgICAgaWYgKCgoMTw8dHlwZSkgJiBMRVRURVJfT1JfTUFSS19NQVNLKSA9PSAwKSBjb250aW51ZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGJvdW5kYXJ5Q291bnQgPj0gYm91bmRhcmllcy5sZW5ndGgpIHsgICAgICAgLy8gcmVhbGxvYyBpZiBuZWNlc3NhcnkKKyAgICAgICAgICAgICAgICBpbnRbXSB0ZW1wID0gbmV3IGludFtib3VuZGFyaWVzLmxlbmd0aCAqIDJdOworICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYm91bmRhcmllcywgMCwgdGVtcCwgMCwgYm91bmRhcmllcy5sZW5ndGgpOworICAgICAgICAgICAgICAgIGJvdW5kYXJpZXMgPSB0ZW1wOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBib3VuZGFyaWVzW2JvdW5kYXJ5Q291bnQrK10gPSBib3VuZGFyeTsKKyAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKGJvdW5kYXJ5KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50IGRlbHRhID0gMDsKKyAgICAgICAgaW50IGxhc3RCb3VuZGFyeSA9IDA7CisgICAgICAgIAorICAgICAgICBpZiAoYm91bmRhcnlDb3VudCAhPSAwKSB7IC8vIGlmIHdlIGZvdW5kIHNvbWV0aGluZywgYWRqdXN0CisgICAgICAgICAgICBkZWx0YSA9IGJvdW5kYXJ5Q291bnQgKiBpbnNlcnRpb24ubGVuZ3RoKCk7CisgICAgICAgICAgICBsYXN0Qm91bmRhcnkgPSBib3VuZGFyaWVzW2JvdW5kYXJ5Q291bnQtMV07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIHdlIGRvIHRoaXMgZnJvbSB0aGUgZW5kIGJhY2t3YXJkcywgc28gdGhhdCB3ZSBkb24ndCBoYXZlIHRvIGtlZXAgdXBkYXRpbmcuCisgICAgICAgICAgICAKKyAgICAgICAgICAgIHdoaWxlIChib3VuZGFyeUNvdW50ID4gMCkgeworICAgICAgICAgICAgICAgIGJvdW5kYXJ5ID0gYm91bmRhcmllc1stLWJvdW5kYXJ5Q291bnRdOworICAgICAgICAgICAgICAgIHRleHQucmVwbGFjZShib3VuZGFyeSwgYm91bmRhcnksIGluc2VydGlvbik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIE5vdyBmaXggdXAgdGhlIHJldHVybiB2YWx1ZXMKKyAgICAgICAgcG9zLmNvbnRleHRMaW1pdCArPSBkZWx0YTsKKyAgICAgICAgcG9zLmxpbWl0ICs9IGRlbHRhOworICAgICAgICBwb3Muc3RhcnQgPSBpbmNyZW1lbnRhbCA/IGxhc3RCb3VuZGFyeSArIGRlbHRhIDogcG9zLmxpbWl0OworICAgIH0KKyAgICAKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlcnMgc3RhbmRhcmQgdmFyaWFudHMgd2l0aCB0aGUgc3lzdGVtLiAgQ2FsbGVkIGJ5CisgICAgICogVHJhbnNsaXRlcmF0b3IgZHVyaW5nIGluaXRpYWxpemF0aW9uLgorICAgICAqLworICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyKCkgeworICAgICAgICAvLyBmYWxzZSBtZWFucyB0aGF0IGl0IGlzIGludmlzaWJsZQorICAgICAgICBUcmFuc2xpdGVyYXRvciB0cmFucyA9IG5ldyBCcmVha1RyYW5zbGl0ZXJhdG9yKCJBbnktQnJlYWtJbnRlcm5hbCIsIG51bGwpOworICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3Rlckluc3RhbmNlKHRyYW5zLCBmYWxzZSk7CisgICAgICAgIC8qCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiQW55LUJyZWFrIiwgbmV3IFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkoKSB7CisgICAgICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBCcmVha1RyYW5zbGl0ZXJhdG9yKCJBbnktQnJlYWsiLCBudWxsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgICovCisgICAgfQorICAgIAorICAgIC8vIEhhY2ssIGp1c3QgdG8gZ2V0IGEgcmVhbCBjaGFyYWN0ZXIgaXRlcmF0b3IuCisgICAgCisgICAgc3RhdGljIGZpbmFsIGNsYXNzIFJlcGxhY2VhYmxlQ2hhcmFjdGVySXRlcmF0b3IgaW1wbGVtZW50cyBDaGFyYWN0ZXJJdGVyYXRvcgorICAgIHsKKyAgICAgICAgcHJpdmF0ZSBSZXBsYWNlYWJsZSB0ZXh0OworICAgICAgICBwcml2YXRlIGludCBiZWdpbjsKKyAgICAgICAgcHJpdmF0ZSBpbnQgZW5kOworICAgICAgICAvLyBpbnZhcmlhbnQ6IGJlZ2luIDw9IHBvcyA8PSBlbmQKKyAgICAgICAgcHJpdmF0ZSBpbnQgcG9zOworCisgICAgICAgIC8qKgorICAgICAgICAqIENvbnN0cnVjdHMgYW4gaXRlcmF0b3Igd2l0aCBhbiBpbml0aWFsIGluZGV4IG9mIDAuCisgICAgICAgICovCisgICAgICAgIHB1YmxpYyBSZXBsYWNlYWJsZUNoYXJhY3Rlckl0ZXJhdG9yKFJlcGxhY2VhYmxlIHRleHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXModGV4dCwgMCk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBDb25zdHJ1Y3RzIGFuIGl0ZXJhdG9yIHdpdGggdGhlIHNwZWNpZmllZCBpbml0aWFsIGluZGV4LgorICAgICAgICAqCisgICAgICAgICogQHBhcmFtICB0ZXh0ICAgVGhlIFN0cmluZyB0byBiZSBpdGVyYXRlZCBvdmVyCisgICAgICAgICogQHBhcmFtICBwb3MgICAgSW5pdGlhbCBpdGVyYXRvciBwb3NpdGlvbgorICAgICAgICAqLworICAgICAgICBwdWJsaWMgUmVwbGFjZWFibGVDaGFyYWN0ZXJJdGVyYXRvcihSZXBsYWNlYWJsZSB0ZXh0LCBpbnQgcG9zKQorICAgICAgICB7CisgICAgICAgIHRoaXModGV4dCwgMCwgdGV4dC5sZW5ndGgoKSwgcG9zKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAqIENvbnN0cnVjdHMgYW4gaXRlcmF0b3Igb3ZlciB0aGUgZ2l2ZW4gcmFuZ2Ugb2YgdGhlIGdpdmVuIHN0cmluZywgd2l0aCB0aGUKKyAgICAgICAgKiBpbmRleCBzZXQgYXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4KKyAgICAgICAgKgorICAgICAgICAqIEBwYXJhbSAgdGV4dCAgIFRoZSBTdHJpbmcgdG8gYmUgaXRlcmF0ZWQgb3ZlcgorICAgICAgICAqIEBwYXJhbSAgYmVnaW4gIEluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIKKyAgICAgICAgKiBAcGFyYW0gIGVuZCAgICBJbmRleCBvZiB0aGUgY2hhcmFjdGVyIGZvbGxvd2luZyB0aGUgbGFzdCBjaGFyYWN0ZXIKKyAgICAgICAgKiBAcGFyYW0gIHBvcyAgICBJbml0aWFsIGl0ZXJhdG9yIHBvc2l0aW9uCisgICAgICAgICovCisgICAgICAgIHB1YmxpYyBSZXBsYWNlYWJsZUNoYXJhY3Rlckl0ZXJhdG9yKFJlcGxhY2VhYmxlIHRleHQsIGludCBiZWdpbiwgaW50IGVuZCwgaW50IHBvcykgeworICAgICAgICAgICAgaWYgKHRleHQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhpcy50ZXh0ID0gdGV4dDsKKworICAgICAgICAgICAgaWYgKGJlZ2luIDwgMCB8fCBiZWdpbiA+IGVuZCB8fCBlbmQgPiB0ZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBzdWJzdHJpbmcgcmFuZ2UiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHBvcyA8IGJlZ2luIHx8IHBvcyA+IGVuZCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgcG9zaXRpb24iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGhpcy5iZWdpbiA9IGJlZ2luOworICAgICAgICAgICAgdGhpcy5lbmQgPSBlbmQ7CisgICAgICAgICAgICB0aGlzLnBvcyA9IHBvczsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAqIFJlc2V0IHRoaXMgaXRlcmF0b3IgdG8gcG9pbnQgdG8gYSBuZXcgc3RyaW5nLiAgVGhpcyBwYWNrYWdlLXZpc2libGUKKyAgICAgICAgKiBtZXRob2QgaXMgdXNlZCBieSBvdGhlciBqYXZhLnRleHQgY2xhc3NlcyB0aGF0IHdhbnQgdG8gYXZvaWQgYWxsb2NhdGluZworICAgICAgICAqIG5ldyBSZXBsYWNlYWJsZUNoYXJhY3Rlckl0ZXJhdG9yIG9iamVjdHMgZXZlcnkgdGltZSB0aGVpciBzZXRUZXh0IG1ldGhvZAorICAgICAgICAqIGlzIGNhbGxlZC4KKyAgICAgICAgKgorICAgICAgICAqIEBwYXJhbSAgdGV4dCAgIFRoZSBTdHJpbmcgdG8gYmUgaXRlcmF0ZWQgb3ZlcgorICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBzZXRUZXh0KFJlcGxhY2VhYmxlIHRleHQpIHsKKyAgICAgICAgICAgIGlmICh0ZXh0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTnVsbFBvaW50ZXJFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRoaXMudGV4dCA9IHRleHQ7CisgICAgICAgICAgICB0aGlzLmJlZ2luID0gMDsKKyAgICAgICAgICAgIHRoaXMuZW5kID0gdGV4dC5sZW5ndGgoKTsKKyAgICAgICAgICAgIHRoaXMucG9zID0gMDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAqIEltcGxlbWVudHMgQ2hhcmFjdGVySXRlcmF0b3IuZmlyc3QoKSBmb3IgU3RyaW5nLgorICAgICAgICAqIEBzZWUgQ2hhcmFjdGVySXRlcmF0b3IjZmlyc3QKKyAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGNoYXIgZmlyc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBwb3MgPSBiZWdpbjsKKyAgICAgICAgICAgIHJldHVybiBjdXJyZW50KCk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBJbXBsZW1lbnRzIENoYXJhY3Rlckl0ZXJhdG9yLmxhc3QoKSBmb3IgU3RyaW5nLgorICAgICAgICAqIEBzZWUgQ2hhcmFjdGVySXRlcmF0b3IjbGFzdAorICAgICAgICAqLworICAgICAgICBwdWJsaWMgY2hhciBsYXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGVuZCAhPSBiZWdpbikgeworICAgICAgICAgICAgICAgIHBvcyA9IGVuZCAtIDE7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHBvcyA9IGVuZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBjdXJyZW50KCk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBJbXBsZW1lbnRzIENoYXJhY3Rlckl0ZXJhdG9yLnNldEluZGV4KCkgZm9yIFN0cmluZy4KKyAgICAgICAgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yI3NldEluZGV4CisgICAgICAgICovCisgICAgICAgIHB1YmxpYyBjaGFyIHNldEluZGV4KGludCBwKQorICAgICAgICB7CisgICAgICAgIGlmIChwIDwgYmVnaW4gfHwgcCA+IGVuZCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgaW5kZXgiKTsKKyAgICAgICAgfQorICAgICAgICAgICAgcG9zID0gcDsKKyAgICAgICAgICAgIHJldHVybiBjdXJyZW50KCk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBJbXBsZW1lbnRzIENoYXJhY3Rlckl0ZXJhdG9yLmN1cnJlbnQoKSBmb3IgU3RyaW5nLgorICAgICAgICAqIEBzZWUgQ2hhcmFjdGVySXRlcmF0b3IjY3VycmVudAorICAgICAgICAqLworICAgICAgICBwdWJsaWMgY2hhciBjdXJyZW50KCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHBvcyA+PSBiZWdpbiAmJiBwb3MgPCBlbmQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGV4dC5jaGFyQXQocG9zKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBET05FOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICogSW1wbGVtZW50cyBDaGFyYWN0ZXJJdGVyYXRvci5uZXh0KCkgZm9yIFN0cmluZy4KKyAgICAgICAgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yI25leHQKKyAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGNoYXIgbmV4dCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChwb3MgPCBlbmQgLSAxKSB7CisgICAgICAgICAgICAgICAgcG9zKys7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRleHQuY2hhckF0KHBvcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBwb3MgPSBlbmQ7CisgICAgICAgICAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBJbXBsZW1lbnRzIENoYXJhY3Rlckl0ZXJhdG9yLnByZXZpb3VzKCkgZm9yIFN0cmluZy4KKyAgICAgICAgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yI3ByZXZpb3VzCisgICAgICAgICovCisgICAgICAgIHB1YmxpYyBjaGFyIHByZXZpb3VzKCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHBvcyA+IGJlZ2luKSB7CisgICAgICAgICAgICAgICAgcG9zLS07CisgICAgICAgICAgICAgICAgcmV0dXJuIHRleHQuY2hhckF0KHBvcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gRE9ORTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAqIEltcGxlbWVudHMgQ2hhcmFjdGVySXRlcmF0b3IuZ2V0QmVnaW5JbmRleCgpIGZvciBTdHJpbmcuCisgICAgICAgICogQHNlZSBDaGFyYWN0ZXJJdGVyYXRvciNnZXRCZWdpbkluZGV4CisgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0QmVnaW5JbmRleCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBiZWdpbjsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAqIEltcGxlbWVudHMgQ2hhcmFjdGVySXRlcmF0b3IuZ2V0RW5kSW5kZXgoKSBmb3IgU3RyaW5nLgorICAgICAgICAqIEBzZWUgQ2hhcmFjdGVySXRlcmF0b3IjZ2V0RW5kSW5kZXgKKyAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBnZXRFbmRJbmRleCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBlbmQ7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBJbXBsZW1lbnRzIENoYXJhY3Rlckl0ZXJhdG9yLmdldEluZGV4KCkgZm9yIFN0cmluZy4KKyAgICAgICAgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yI2dldEluZGV4CisgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0SW5kZXgoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gcG9zOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICogQ29tcGFyZXMgdGhlIGVxdWFsaXR5IG9mIHR3byBSZXBsYWNlYWJsZUNoYXJhY3Rlckl0ZXJhdG9yIG9iamVjdHMuCisgICAgICAgICogQHBhcmFtIG9iaiB0aGUgUmVwbGFjZWFibGVDaGFyYWN0ZXJJdGVyYXRvciBvYmplY3QgdG8gYmUgY29tcGFyZWQgd2l0aC4KKyAgICAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIG9iaiBpcyB0aGUgc2FtZSBhcyB0aGlzCisgICAgICAgICogUmVwbGFjZWFibGVDaGFyYWN0ZXJJdGVyYXRvciBvYmplY3Q7IGZhbHNlIG90aGVyd2lzZS4KKyAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmopCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh0aGlzID09IG9iaikgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCEob2JqIGluc3RhbmNlb2YgUmVwbGFjZWFibGVDaGFyYWN0ZXJJdGVyYXRvcikpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFJlcGxhY2VhYmxlQ2hhcmFjdGVySXRlcmF0b3IgdGhhdCA9IChSZXBsYWNlYWJsZUNoYXJhY3Rlckl0ZXJhdG9yKSBvYmo7CisKKyAgICAgICAgICAgIGlmIChoYXNoQ29kZSgpICE9IHRoYXQuaGFzaENvZGUoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghdGV4dC5lcXVhbHModGhhdC50ZXh0KSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChwb3MgIT0gdGhhdC5wb3MgfHwgYmVnaW4gIT0gdGhhdC5iZWdpbiB8fCBlbmQgIT0gdGhhdC5lbmQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAqIENvbXB1dGVzIGEgaGFzaGNvZGUgZm9yIHRoaXMgaXRlcmF0b3IuCisgICAgICAgICogQHJldHVybiBBIGhhc2ggY29kZQorICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHRleHQuaGFzaENvZGUoKSBeIHBvcyBeIGJlZ2luIF4gZW5kOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICogQ3JlYXRlcyBhIGNvcHkgb2YgdGhpcyBpdGVyYXRvci4KKyAgICAgICAgKiBAcmV0dXJuIEEgY29weSBvZiB0aGlzCisgICAgICAgICovCisgICAgICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKQorICAgICAgICB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIFJlcGxhY2VhYmxlQ2hhcmFjdGVySXRlcmF0b3Igb3RoZXIKKyAgICAgICAgICAgICAgICA9IChSZXBsYWNlYWJsZUNoYXJhY3Rlckl0ZXJhdG9yKSBzdXBlci5jbG9uZSgpOworICAgICAgICAgICAgICAgIHJldHVybiBvdGhlcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChDbG9uZU5vdFN1cHBvcnRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgfQorICAgICAgICAKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9DYW5vbmljYWxJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2Fub25pY2FsSXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kNjVmNTRmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2Fub25pY2FsSXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDUyNyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2Fub25pY2FsSXRlcmF0b3IuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wNy8zMSAwMzowMToxOSAkIAorICogJFJldmlzaW9uOiAxLjExICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGphdmEudXRpbC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTm9ybWFsaXplckltcGw7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VU2VyaWFsaXplZFNldDsKKy8qKgorICogVGhpcyBjbGFzcyBhbGxvd3Mgb25lIHRvIGl0ZXJhdGUgdGhyb3VnaCBhbGwgdGhlIHN0cmluZ3MgdGhhdCBhcmUgY2Fub25pY2FsbHkgZXF1aXZhbGVudCB0byBhIGdpdmVuCisgKiBzdHJpbmcuIEZvciBleGFtcGxlLCBoZXJlIGFyZSBzb21lIHNhbXBsZSByZXN1bHRzOgorICogUmVzdWx0cyBmb3I6IHtBIFdJVEggUklORyBBQk9WRX17ZH17RE9UIEFCT1ZFfXtDRURJTExBfQorICogPHByZT4KKyAxOiB7QX17UklORyBBQk9WRX17ZH17RE9UIEFCT1ZFfXtDRURJTExBfQorIDI6IHtBfXtSSU5HIEFCT1ZFfXtkfXtDRURJTExBfXtET1QgQUJPVkV9CisgMzoge0F9e1JJTkcgQUJPVkV9e2QgV0lUSCBET1QgQUJPVkV9e0NFRElMTEF9CisgNDoge0F9e1JJTkcgQUJPVkV9e2QgV0lUSCBDRURJTExBfXtET1QgQUJPVkV9CisgNToge0EgV0lUSCBSSU5HIEFCT1ZFfXtkfXtET1QgQUJPVkV9e0NFRElMTEF9CisgNjoge0EgV0lUSCBSSU5HIEFCT1ZFfXtkfXtDRURJTExBfXtET1QgQUJPVkV9CisgNzoge0EgV0lUSCBSSU5HIEFCT1ZFfXtkIFdJVEggRE9UIEFCT1ZFfXtDRURJTExBfQorIDg6IHtBIFdJVEggUklORyBBQk9WRX17ZCBXSVRIIENFRElMTEF9e0RPVCBBQk9WRX0KKyA5OiB7QU5HU1RST00gU0lHTn17ZH17RE9UIEFCT1ZFfXtDRURJTExBfQorMTA6IHtBTkdTVFJPTSBTSUdOfXtkfXtDRURJTExBfXtET1QgQUJPVkV9CisxMToge0FOR1NUUk9NIFNJR059e2QgV0lUSCBET1QgQUJPVkV9e0NFRElMTEF9CisxMjoge0FOR1NUUk9NIFNJR059e2QgV0lUSCBDRURJTExBfXtET1QgQUJPVkV9CisgKjwvcHJlPgorICo8YnI+Tm90ZTogdGhlIGNvZGUgaXMgaW50ZW5kZWQgZm9yIHVzZSB3aXRoIHNtYWxsIHN0cmluZ3MsIGFuZCBpcyBub3Qgc3VpdGFibGUgZm9yIGxhcmdlciBvbmVzLAorICogc2luY2UgaXQgaGFzIG5vdCBiZWVuIG9wdGltaXplZCBmb3IgdGhhdCBzaXR1YXRpb24uCisgKkBhdXRob3IgTS4gRGF2aXMKKyAqQGRyYWZ0IDIuMgorICpAaW50ZXJuYWwgLS0gbm90IGZvciBwdWJsaWMgdXNlOiB0aGUgQVBJIG1heSBjaGFuZ2Ugd2l0aG91dCB3YXJuaW5nLgorICovCisKK3B1YmxpYyBjbGFzcyBDYW5vbmljYWxJdGVyYXRvciB7CisgICAgLyoqCisgICAgICpAcGFyYW0gc291cmNlIHN0cmluZyB0byBnZXQgcmVzdWx0cyBmb3IKKyAgICAgKi8KKyAgICBwdWJsaWMgQ2Fub25pY2FsSXRlcmF0b3IoU3RyaW5nIHNvdXJjZSkgeworICAgICAgICBzZXRTb3VyY2Uoc291cmNlKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICpAcmV0dXJuIGdldHMgdGhlIHNvdXJjZTogTk9URTogaXQgaXMgdGhlIE5GRCBmb3JtIG9mIHRoZSBzb3VyY2Ugb3JpZ2luYWxseSBwYXNzZWQgaW4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFNvdXJjZSgpIHsKKyAgICAgIHJldHVybiBzb3VyY2U7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJlc2V0cyB0aGUgaXRlcmF0b3Igc28gdGhhdCBvbmUgY2FuIHN0YXJ0IGFnYWluIGZyb20gdGhlIGJlZ2lubmluZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZXNldCgpIHsKKyAgICAgICAgZG9uZSA9IGZhbHNlOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGN1cnJlbnQubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGN1cnJlbnRbaV0gPSAwOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqQHJldHVybiB0aGUgbmV4dCBzdHJpbmcgdGhhdCBpcyBjYW5vbmljYWxseSBlcXVpdmFsZW50LiBUaGUgdmFsdWUgbnVsbCBpcyByZXR1cm5lZCB3aGVuCisgICAgICogdGhlIGl0ZXJhdGlvbiBpcyBkb25lLgorCSAqPGJyPjxiPldhcm5pbmc6IFRoZSBzdHJpbmdzIGFyZSBub3QgZ3VhcmFudGVlZCB0byBiZSBpbiBhbnkgcGFydGljdWxhciBvcmRlci48L2I+CisgICAgICovCisgICAgcHVibGljIFN0cmluZyBuZXh0KCkgeworICAgICAgICBpZiAoZG9uZSkgcmV0dXJuIG51bGw7CisgICAgICAgIAorICAgICAgICAvLyBjb25zdHJ1Y3QgcmV0dXJuIHZhbHVlCisgICAgICAgIAorICAgICAgICBidWZmZXIuc2V0TGVuZ3RoKDApOyAvLyBkZWxldGUgb2xkIGNvbnRlbnRzCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcGllY2VzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHBpZWNlc1tpXVtjdXJyZW50W2ldXSk7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IGJ1ZmZlci50b1N0cmluZygpOworICAgICAgICAKKyAgICAgICAgLy8gZmluZCBuZXh0IHZhbHVlIGZvciBuZXh0IHRpbWUKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSBjdXJyZW50Lmxlbmd0aCAtIDE7IDsgLS1pKSB7CisgICAgICAgICAgICBpZiAoaSA8IDApIHsKKyAgICAgICAgICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGN1cnJlbnRbaV0rKzsKKyAgICAgICAgICAgIGlmIChjdXJyZW50W2ldIDwgcGllY2VzW2ldLmxlbmd0aCkgYnJlYWs7IC8vIGdvdCBzZXF1ZW5jZQorICAgICAgICAgICAgY3VycmVudFtpXSA9IDA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICpAcGFyYW0gc2V0IHRoZSBzb3VyY2Ugc3RyaW5nIHRvIGl0ZXJhdGUgYWdhaW5zdC4gVGhpcyBhbGxvd3MgdGhlIHNhbWUgaXRlcmF0b3IgdG8gYmUgdXNlZAorICAgICAqIHdoaWxlIGNoYW5naW5nIHRoZSBzb3VyY2Ugc3RyaW5nLCBzYXZpbmcgb2JqZWN0IGNyZWF0aW9uLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNvdXJjZShTdHJpbmcgbmV3U291cmNlKSB7CisgICAgICAgIHNvdXJjZSA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKG5ld1NvdXJjZSwgTm9ybWFsaXplci5ORkQpOworICAgICAgICBkb25lID0gZmFsc2U7CisgICAgICAgIAorICAgICAgICAvLyBjYXRjaCBkZWdlbmVyYXRlIGNhc2UKKyAgICAJaWYgKG5ld1NvdXJjZS5sZW5ndGgoKSA9PSAwKSB7CisgICAgCQlwaWVjZXMgPSBuZXcgU3RyaW5nWzFdW107CisgICAgCQljdXJyZW50ID0gbmV3IGludFsxXTsKKyAgICAJCXBpZWNlc1swXSA9IG5ldyBTdHJpbmdbXXsiIn07CisgICAgCQlyZXR1cm47CisgICAgCX0KKyAgICAgICAgCisgICAgICAgIC8vIGZpbmQgdGhlIHNlZ21lbnRzCisgICAgICAgIExpc3QgbGlzdCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgaW50IGNwOworICAgICAgICBpbnQgc3RhcnQgPSAwOworICAgICAgICAKKwkgICAgLy8gaSBzaG91bGQgYmUgdGhlIGVuZCBvZiB0aGUgZmlyc3QgY29kZSBwb2ludAorCSAgICAKKwkgICAgaW50IGkgPSBVVEYxNi5maW5kT2Zmc2V0RnJvbUNvZGVQb2ludChzb3VyY2UsIDEpOworICAgICAgICAKKyAgICAgICAgZm9yICg7IGkgPCBzb3VyY2UubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGkpKSB7CisgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdChzb3VyY2UsIGkpOworICAgICAgICAgICAgaWYgKE5vcm1hbGl6ZXJJbXBsLmlzQ2Fub25TYWZlU3RhcnQoY3ApKSB7CisgICAgICAgICAgICAgICAgbGlzdC5hZGQoc291cmNlLnN1YnN0cmluZyhzdGFydCwgaSkpOyAvLyBhZGQgdXAgdG8gaQorICAgICAgICAgICAgICAgIHN0YXJ0ID0gaTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBsaXN0LmFkZChzb3VyY2Uuc3Vic3RyaW5nKHN0YXJ0LCBpKSk7IC8vIGFkZCBsYXN0IG9uZQorICAgICAgICAKKyAgICAgICAgLy8gYWxsb2NhdGUgdGhlIGFycmF5cywgYW5kIGZpbmQgdGhlIHN0cmluZ3MgdGhhdCBhcmUgQ0UgdG8gZWFjaCBzZWdtZW50CisgICAgICAgIHBpZWNlcyA9IG5ldyBTdHJpbmdbbGlzdC5zaXplKCldW107CisgICAgICAgIGN1cnJlbnQgPSBuZXcgaW50W2xpc3Quc2l6ZSgpXTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IHBpZWNlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKFBST0dSRVNTKSBTeXN0ZW0ub3V0LnByaW50bG4oIlNFR01FTlQiKTsKKyAgICAgICAgICAgIHBpZWNlc1tpXSA9IGdldEVxdWl2YWxlbnRzKChTdHJpbmcpIGxpc3QuZ2V0KGkpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTaW1wbGUgaW1wbGVtZW50YXRpb24gb2YgcGVybXV0YXRpb24uIAorCSAqPGJyPjxiPldhcm5pbmc6IFRoZSBzdHJpbmdzIGFyZSBub3QgZ3VhcmFudGVlZCB0byBiZSBpbiBhbnkgcGFydGljdWxhciBvcmRlci48L2I+CisgICAgICogQHBhcmFtIHNvdXJjZSB0aGUgc3RyaW5nIHRvIGZpbmQgcGVybXV0YXRpb25zIGZvcgorICAgICAqIEBwYXJhbSB0aGUgc2V0IHRvIGFkZCB0aGUgcmVzdWx0cyB0bworICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBwZXJtdXRlKFN0cmluZyBzb3VyY2UsIGJvb2xlYW4gc2tpcFplcm9zLCBTZXQgb3V0cHV0KSB7CisgICAgCS8vIFRPRE86IG9wdGltaXplCisgICAgICAgIC8vaWYgKFBST0dSRVNTKSBTeXN0ZW0ub3V0LnByaW50bG4oIlBlcm11dGU6ICIgKyBzb3VyY2UpOworICAgICAgICAKKyAgICAgICAgLy8gb3B0aW1pemF0aW9uOgorICAgICAgICAvLyBpZiB6ZXJvIG9yIG9uZSBjaGFyYWN0ZXIsIGp1c3QgcmV0dXJuIGEgc2V0IHdpdGggaXQKKyAgICAgICAgLy8gd2UgY2hlY2sgZm9yIGxlbmd0aCA8IDIgdG8ga2VlcCBmcm9tIGNvdW50aW5nIGNvZGUgcG9pbnRzIGFsbCB0aGUgdGltZQorICAgICAgICBpZiAoc291cmNlLmxlbmd0aCgpIDw9IDIgJiYgVVRGMTYuY291bnRDb2RlUG9pbnQoc291cmNlKSA8PSAxKSB7CisgICAgICAgICAgICBvdXRwdXQuYWRkKHNvdXJjZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIG90aGVyd2lzZSBpdGVyYXRlIHRocm91Z2ggdGhlIHN0cmluZywgYW5kIHJlY3Vyc2l2ZWx5IHBlcm11dGUgYWxsIHRoZSBvdGhlciBjaGFyYWN0ZXJzCisgICAgICAgIFNldCBzdWJwZXJtdXRlID0gbmV3IEhhc2hTZXQoKTsKKyAgICAgICAgaW50IGNwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdChzb3VyY2UsIGkpOworICAgICAgICAgICAgCisgICAgICAgIAkvLyBvcHRpbWl6YXRpb246CisgICAgICAgIAkvLyBpZiB0aGUgY2hhcmFjdGVyIGlzIGNhbm9uaWNhbCBjb21iaW5pbmcgY2xhc3MgemVybywKKyAgICAgICAgCS8vIGRvbid0IHBlcm11dGUgaXQKKyAgICAgICAgCWlmIChza2lwWmVyb3MgJiYgaSAhPSAwICYmIFVDaGFyYWN0ZXIuZ2V0Q29tYmluaW5nQ2xhc3MoY3ApID09IDApIHsKKyAgICAgICAgCQkvL1N5c3RlbS5vdXQucHJpbnRsbigiU2tpcHBpbmcgIiArIFV0aWxpdHkuaGV4KFVURjE2LnZhbHVlT2Yoc291cmNlLCBpKSkpOworCSAgICAgICAgCWNvbnRpbnVlOworICAgICAgICAJfSAgICAgICAgICAgIAorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBzZWUgd2hhdCB0aGUgcGVybXV0YXRpb25zIG9mIHRoZSBjaGFyYWN0ZXJzIGJlZm9yZSBhbmQgYWZ0ZXIgdGhpcyBvbmUgYXJlCisgICAgICAgICAgICBzdWJwZXJtdXRlLmNsZWFyKCk7CisgICAgICAgICAgICBwZXJtdXRlKHNvdXJjZS5zdWJzdHJpbmcoMCxpKSAKKyAgICAgICAgICAgIAkrIHNvdXJjZS5zdWJzdHJpbmcoaSArIFVURjE2LmdldENoYXJDb3VudChjcCkpLCBza2lwWmVyb3MsIHN1YnBlcm11dGUpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBwcmVmaXggdGhpcyBjaGFyYWN0ZXIgdG8gYWxsIG9mIHRoZW0KKyAgICAgICAgICAgIFN0cmluZyBjaFN0ciA9IFVURjE2LnZhbHVlT2Yoc291cmNlLCBpKTsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGl0ID0gc3VicGVybXV0ZS5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBwaWVjZSA9IGNoU3RyICsgKFN0cmluZykgaXQubmV4dCgpOworICAgICAgICAgICAgICAgIC8vaWYgKFBST0dSRVNTKSBTeXN0ZW0ub3V0LnByaW50bG4oIiAgUGllY2U6ICIgKyBwaWVjZSk7CisgICAgICAgICAgICAgICAgb3V0cHV0LmFkZChwaWVjZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICAvLyBGT1IgVEVTVElORworICAgIAorICAgIC8qKgorICAgICAqQHJldHVybiB0aGUgc2V0IG9mICJzYWZlIHN0YXJ0cyIsIGNoYXJhY3RlcnMgdGhhdCBhcmUgY2xhc3MgemVybyBBTkQgYXJlIG5ldmVyIG5vbi1pbml0aWFsIGluIGEgZGVjb21wb3NpdGlvbi4KKyAgICAgKkBpbnRlcm5hbAorICAgICAqCisgICAgcHVibGljIHN0YXRpYyBVbmljb2RlU2V0IGdldFNhZmVTdGFydCgpIHsKKyAgICAgICAgcmV0dXJuIChVbmljb2RlU2V0KSBTQUZFX1NUQVJULmNsb25lKCk7CisgICAgfQorICAgICovCisgICAgLyoqCisgICAgICpAcmV0dXJuIHRoZSBzZXQgb2YgY2hhcmFjdGVycyB3aG9zZSBkZWNvbXBvc2l0aW9ucyBzdGFydCB3aXRoIHRoZSBnaXZlbiBjaGFyYWN0ZXIKKyAgICAgKkBpbnRlcm5hbAorICAgICAqCisgICAgcHVibGljIHN0YXRpYyBVbmljb2RlU2V0IGdldFN0YXJ0cyhpbnQgY3ApIHsKKyAgICAgICAgVW5pY29kZVNldCByZXN1bHQgPSBBVF9TVEFSVC5nZXQoY3ApOworICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IEVNUFRZOworICAgICAgICByZXR1cm4gKFVuaWNvZGVTZXQpIHJlc3VsdC5jbG9uZSgpOworICAgIH0KKyAgICAqLworICAgIAorICAgIC8vID09PT09PT09PT09PT09PT09PT09PSBQUklWQVRFUyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAKKyAgICAvLyBkZWJ1ZworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gUFJPR1JFU1MgPSBmYWxzZTsgLy8gZGVidWcgcHJvZ3Jlc3MKKyAgICBwcml2YXRlIHN0YXRpYyBUcmFuc2xpdGVyYXRvciBOQU1FID0gUFJPR1JFU1MgPyBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgibmFtZSIpIDogbnVsbDsKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIFNLSVBfWkVST1MgPSB0cnVlOworIAorICAgIC8vIGZpZWxkcworICAgIHByaXZhdGUgU3RyaW5nIHNvdXJjZTsKKyAgICBwcml2YXRlIGJvb2xlYW4gZG9uZTsKKyAgICBwcml2YXRlIFN0cmluZ1tdW10gcGllY2VzOworICAgIHByaXZhdGUgaW50W10gY3VycmVudDsKKyAgICAvLyBOb3RlOiBDIHdpbGwgbmVlZCB0d28gbW9yZSBmaWVsZHMsIHNpbmNlIGFycmF5cyB0aGVyZSBkb24ndCBoYXZlIGxlbmd0aHMKKyAgICAvLyBpbnQgcGllY2VzX2xlbmd0aDsKKyAgICAvLyBpbnRbXSBwaWVjZXNfbGVuZ3RoczsKKyAgICAKKyAgICAvLyB0cmFuc2llbnQgZmllbGRzCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAKKyAgICAKKyAgICAvLyB3ZSBoYXZlIGEgc2VnbWVudCwgaW4gTkZELiBGaW5kIGFsbCB0aGUgc3RyaW5ncyB0aGF0IGFyZSBjYW5vbmljYWxseSBlcXVpdmFsZW50IHRvIGl0LgorICAgIHByaXZhdGUgU3RyaW5nW10gZ2V0RXF1aXZhbGVudHMoU3RyaW5nIHNlZ21lbnQpIHsKKyAgICAgICAgU2V0IHJlc3VsdCA9IG5ldyBIYXNoU2V0KCk7CisgICAgICAgIFNldCBiYXNpYyA9IGdldEVxdWl2YWxlbnRzMihzZWdtZW50KTsKKyAgICAgICAgU2V0IHBlcm11dGF0aW9ucyA9IG5ldyBIYXNoU2V0KCk7CisgICAgICAgIAorICAgICAgICAvLyBub3cgZ2V0IGFsbCB0aGUgcGVybXV0YXRpb25zCisgICAgICAgIC8vIGFkZCBvbmx5IHRoZSBvbmVzIHRoYXQgYXJlIGNhbm9uaWNhbGx5IGVxdWl2YWxlbnQKKyAgICAgICAgLy8gVE9ETzogb3B0aW1pemUgYnkgbm90IHBlcm11dGluZyBhbnkgY2xhc3MgemVyby4KKyAgICAgICAgSXRlcmF0b3IgaXQgPSBiYXNpYy5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBTdHJpbmcgaXRlbSA9IChTdHJpbmcpIGl0Lm5leHQoKTsKKyAgICAgICAgCXBlcm11dGF0aW9ucy5jbGVhcigpOworICAgICAgICAgICAgcGVybXV0ZShpdGVtLCBTS0lQX1pFUk9TLCBwZXJtdXRhdGlvbnMpOworICAgICAgICAgICAgSXRlcmF0b3IgaXQyID0gcGVybXV0YXRpb25zLml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAoaXQyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBwb3NzaWJsZSA9IChTdHJpbmcpIGl0Mi5uZXh0KCk7CisgICAgICAgICAgICAgICAgCisvKiAgICAgICAgICAgICAgIAorCQkJCVN0cmluZyBhdHRlbXB0ID0gTm9ybWFsaXplci5ub3JtYWxpemUocG9zc2libGUsIE5vcm1hbGl6ZXIuREVDT01QLCAwKTsKKwkJCQlpZiAoYXR0ZW1wdC5lcXVhbHMoc2VnbWVudCkpIHsKKyovCisgICAgICAgICAgICAgICAgaWYgKE5vcm1hbGl6ZXIuY29tcGFyZShwb3NzaWJsZSwgc2VnbWVudCwwKT09MCkgeworICAgICAgICAgICAgIAkgICAgICAgICAgICAgICAJCisgICAgICAgICAgICAJCWlmIChQUk9HUkVTUykgU3lzdGVtLm91dC5wcmludGxuKCJBZGRpbmcgUGVybXV0YXRpb246ICIgKyBOQU1FLnRyYW5zbGl0ZXJhdGUocG9zc2libGUpKTsKKyAgICAgICAgICAgICAgICAJcmVzdWx0LmFkZChwb3NzaWJsZSk7CisKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgCQlpZiAoUFJPR1JFU1MpIFN5c3RlbS5vdXQucHJpbnRsbigiLVNraXBwaW5nIFBlcm11dGF0aW9uOiAiICsgTkFNRS50cmFuc2xpdGVyYXRlKHBvc3NpYmxlKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBjb252ZXJ0IGludG8gYSBTdHJpbmdbXSB0byBjbGVhbiB1cCBzdG9yYWdlCisgICAgICAgIFN0cmluZ1tdIGZpbmFsUmVzdWx0ID0gbmV3IFN0cmluZ1tyZXN1bHQuc2l6ZSgpXTsKKyAgICAgICAgcmVzdWx0LnRvQXJyYXkoZmluYWxSZXN1bHQpOworICAgICAgICByZXR1cm4gZmluYWxSZXN1bHQ7CisgICAgfQorICAgIAorICAgICAKKyAgICBwcml2YXRlIFNldCBnZXRFcXVpdmFsZW50czIoU3RyaW5nIHNlZ21lbnQpIHsKKyAgICAgICAgCisgICAgICAgIFNldCByZXN1bHQgPSBuZXcgSGFzaFNldCgpOworICAgICAgICAKKyAgICAgICAgaWYgKFBST0dSRVNTKSBTeXN0ZW0ub3V0LnByaW50bG4oIkFkZGluZzogIiArIE5BTUUudHJhbnNsaXRlcmF0ZShzZWdtZW50KSk7CisgICAgICAgIAorICAgICAgICByZXN1bHQuYWRkKHNlZ21lbnQpOworICAgICAgICBTdHJpbmdCdWZmZXIgd29ya2luZ0J1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgCisgICAgICAgIC8vIGN5Y2xlIHRocm91Z2ggYWxsIHRoZSBjaGFyYWN0ZXJzCisgICAgICAgIGludCBjcD0wLGVuZD0wOworCSAgICBpbnRbXSByYW5nZSA9IG5ldyBpbnRbMl07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2VnbWVudC5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICAKKwkgICAgICAgIC8vIHNlZSBpZiBhbnkgY2hhcmFjdGVyIGlzIGF0IHRoZSBzdGFydCBvZiBzb21lIGRlY29tcG9zaXRpb24KKwkgICAgICAgIGNwID0gVVRGMTYuY2hhckF0KHNlZ21lbnQsIGkpOzsKKwkgICAgICAgIFVTZXJpYWxpemVkU2V0IHN0YXJ0cyA9IG5ldyBVU2VyaWFsaXplZFNldCgpOworICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICghTm9ybWFsaXplckltcGwuZ2V0Q2Fub25TdGFydFNldChjcCwgc3RhcnRzKSkgeworCSAgICAgICAgICBjb250aW51ZTsKKwkgICAgICAgIH0KKwkgICAgICAgIGludCBqPTA7CisgICAgICAgICAgICAvLyBpZiBzbywgc2VlIHdoaWNoIGRlY29tcG9zaXRpb25zIG1hdGNoIAorCSAgICAgICAgZm9yKGogPSAwLCBjcCA9IGVuZCsxOyBjcCA8PSBlbmQgfHxzdGFydHMuZ2V0U2VyaWFsaXplZFJhbmdlKGorKywgcmFuZ2UpOyArK2NwKSB7CisgICAgICAgICAgICAgICAgaWYoY3A+ZW5kKXsKKyAgICAgICAgICAgICAgICAgICAgY3A9cmFuZ2VbMF07CisgICAgICAgICAgICAgICAgICAgIGVuZD1yYW5nZVsxXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisJICAgICAgICAgICAgU2V0IHJlbWFpbmRlciA9IGV4dHJhY3QoY3AsIHNlZ21lbnQsIGksd29ya2luZ0J1ZmZlcik7CisJICAgICAgICAgICAgaWYgKHJlbWFpbmRlciA9PSBudWxsKSBjb250aW51ZTsKKwkKKwkgICAgICAgICAgICAvLyB0aGVyZSB3ZXJlIHNvbWUgbWF0Y2hlcywgc28gYWRkIGFsbCB0aGUgcG9zc2liaWxpdGllcyB0byB0aGUgc2V0LgorCSAgICAgICAgICAgIFN0cmluZyBwcmVmaXg9IHNlZ21lbnQuc3Vic3RyaW5nKDAsaSk7CisJICAgICAgICAgICAgcHJlZml4ICs9IFVURjE2LnZhbHVlT2YoY3ApOworCSAgICAgICAgICAgIGludCBlbCA9IC0xOworCSAgICAgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSByZW1haW5kZXIuaXRlcmF0b3IoKTsKKwkgICAgICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKwkgICAgICAgICAgICAgICAgU3RyaW5nIGl0ZW0gPSAoU3RyaW5nKSBpdGVyLm5leHQoKTsKKwkgICAgICAgICAgICAgICAgU3RyaW5nIHRvQWRkID0gbmV3IFN0cmluZyhwcmVmaXgpOworCSAgICAgICAgICAgICAgICB0b0FkZCArPSBpdGVtOworCSAgICAgICAgICAgICAgICByZXN1bHQuYWRkKHRvQWRkKTsJCQorCSAgICAgICAgICAgICAgICAvL2lmIChQUk9HUkVTUykgcHJpbnRmKCJBZGRpbmc6ICVzXG4iLCBVVG9TKFRyKCp0b0FkZCkpKTsKKwkgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIH0KKwkgICAgfQorCSAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAvKgorICAgICAgICBTZXQgcmVzdWx0ID0gbmV3IEhhc2hTZXQoKTsKKyAgICAgICAgaWYgKFBST0dSRVNTKSBTeXN0ZW0ub3V0LnByaW50bG4oIkFkZGluZzogIiArIE5BTUUudHJhbnNsaXRlcmF0ZShzZWdtZW50KSk7CisgICAgICAgIHJlc3VsdC5hZGQoc2VnbWVudCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciB3b3JraW5nQnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAKKyAgICAgICAgLy8gY3ljbGUgdGhyb3VnaCBhbGwgdGhlIGNoYXJhY3RlcnMKKyAgICAgICAgaW50IGNwOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzZWdtZW50Lmxlbmd0aCgpOyBpICs9IFVURjE2LmdldENoYXJDb3VudChjcCkpIHsKKyAgICAgICAgICAgIC8vIHNlZSBpZiBhbnkgY2hhcmFjdGVyIGlzIGF0IHRoZSBzdGFydCBvZiBzb21lIGRlY29tcG9zaXRpb24KKyAgICAgICAgICAgIGNwID0gVVRGMTYuY2hhckF0KHNlZ21lbnQsIGkpOworICAgICAgICAgICAgTm9ybWFsaXplckltcGwuZ2V0Q2Fub25TdGFydFNldChjLGZpbGxTZXQpCisgICAgICAgICAgICBVbmljb2RlU2V0IHN0YXJ0cyA9IEFUX1NUQVJULmdldChjcCk7CisgICAgICAgICAgICBpZiAoc3RhcnRzID09IG51bGwpIGNvbnRpbnVlOworICAgICAgICAgICAgVW5pY29kZVNldEl0ZXJhdG9yIHVzaSA9IG5ldyBVbmljb2RlU2V0SXRlcmF0b3Ioc3RhcnRzKTsKKyAgICAgICAgICAgIC8vIGlmIHNvLCBzZWUgd2hpY2ggZGVjb21wb3NpdGlvbnMgbWF0Y2gKKyAgICAgICAgICAgIHdoaWxlICh1c2kubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgaW50IGNwMiA9IHVzaS5jb2RlcG9pbnQ7CisgICAgICAgICAgICAgICAgLy8gd2Uga25vdyB0aGF0IHRoZXJlIGFyZSBubyBzdHJpbmdzIGluIGl0CisgICAgICAgICAgICAgICAgLy8gc28gd2UgZG9uJ3QgaGF2ZSB0byBjaGVjayBDaGFyYWN0ZXJJdGVyYXRvci5JU19TVFJJTkcKKyAgICAgICAgICAgICAgICBTZXQgcmVtYWluZGVyID0gZXh0cmFjdChjcDIsIHNlZ21lbnQsIGksIHdvcmtpbmdCdWZmZXIpOworICAgICAgICAgICAgICAgIGlmIChyZW1haW5kZXIgPT0gbnVsbCkgY29udGludWU7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gdGhlcmUgd2VyZSBzb21lIG1hdGNoZXMsIHNvIGFkZCBhbGwgdGhlIHBvc3NpYmlsaXRpZXMgdG8gdGhlIHNldC4KKyAgICAgICAgICAgICAgICBTdHJpbmcgcHJlZml4ID0gc2VnbWVudC5zdWJzdHJpbmcoMCwgaSkgKyBVVEYxNi52YWx1ZU9mKGNwMik7CisgICAgICAgICAgICAgICAgSXRlcmF0b3IgaXQgPSByZW1haW5kZXIuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBpdGVtID0gKFN0cmluZykgaXQubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBpZiAoUFJPR1JFU1MpIFN5c3RlbS5vdXQucHJpbnRsbigiQWRkaW5nOiAiICsgTkFNRS50cmFuc2xpdGVyYXRlKHByZWZpeCArIGl0ZW0pKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFkZChwcmVmaXggKyBpdGVtKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgKi8KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2VlIGlmIHRoZSBkZWNvbXBvc2l0aW9uIG9mIGNwMiBpcyBhdCBzZWdtZW50IHN0YXJ0aW5nIGF0IHNlZ21lbnRQb3MgCisgICAgICogKHdpdGggY2Fub25pY2FsIHJlYXJyYW5nbWVudCEpCisgICAgICogSWYgc28sIHRha2UgdGhlIHJlbWFpbmRlciwgYW5kIHJldHVybiB0aGUgZXF1aXZhbGVudHMgCisgICAgICovCisgICAgcHJpdmF0ZSBTZXQgZXh0cmFjdChpbnQgY29tcCwgU3RyaW5nIHNlZ21lbnQsIGludCBzZWdtZW50UG9zLCBTdHJpbmdCdWZmZXIgYnVmZmVyKSB7CisgICAgICAgIGlmIChQUk9HUkVTUykgU3lzdGVtLm91dC5wcmludGxuKCIgZXh0cmFjdDogIiArIE5BTUUudHJhbnNsaXRlcmF0ZShVVEYxNi52YWx1ZU9mKGNvbXApKQorICAgICAgICAgICAgKyAiLCAiICsgTkFNRS50cmFuc2xpdGVyYXRlKHNlZ21lbnQuc3Vic3RyaW5nKHNlZ21lbnRQb3MpKSk7CisgICAgICAgICAgICAKKyAgICAgICAgLy9TdHJpbmcgZGVjb21wID0gTm9ybWFsaXplci5ub3JtYWxpemUoVVRGMTYudmFsdWVPZihjb21wKSwgTm9ybWFsaXplci5ERUNPTVAsIDApOworICAgICAgICBTdHJpbmcgZGVjb21wID0gTm9ybWFsaXplci5ub3JtYWxpemUoY29tcCwgTm9ybWFsaXplci5ORkQpOworICAgICAgICAKKyAgICAgICAgLy8gU2VlIGlmIGl0IG1hdGNoZXMgdGhlIHN0YXJ0IG9mIHNlZ21lbnQgKGF0IHNlZ21lbnRQb3MpCisgICAgICAgIGJvb2xlYW4gb2sgPSBmYWxzZTsKKyAgICAgICAgaW50IGNwOworICAgICAgICBpbnQgZGVjb21wUG9zID0gMDsKKyAgICAgICAgaW50IGRlY29tcENwID0gVVRGMTYuY2hhckF0KGRlY29tcCwwKTsKKyAgICAgICAgZGVjb21wUG9zICs9IFVURjE2LmdldENoYXJDb3VudChkZWNvbXBDcCk7IC8vIGFkanVzdCBwb3NpdGlvbiB0byBza2lwIGZpcnN0IGNoYXIKKyAgICAgICAgLy9pbnQgZGVjb21wQ2xhc3MgPSBnZXRDbGFzcyhkZWNvbXBDcCk7CisgICAgICAgIGJ1ZmZlci5zZXRMZW5ndGgoMCk7IC8vIGluaXRpYWxpemUgd29ya2luZyBidWZmZXIsIHNoYXJlZCBhbW9uZyBjYWxsZWVzCisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gc2VnbWVudFBvczsgaSA8IHNlZ21lbnQubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgY3AgPSBVVEYxNi5jaGFyQXQoc2VnbWVudCwgaSk7CisgICAgICAgICAgICBpZiAoY3AgPT0gZGVjb21wQ3ApIHsgLy8gaWYgZXF1YWwsIGVhdCBhbm90aGVyIGNwIGZyb20gZGVjb21wCisgICAgICAgICAgICAgICAgaWYgKFBST0dSRVNTKSBTeXN0ZW0ub3V0LnByaW50bG4oIiAgbWF0Y2hlczogIiArIE5BTUUudHJhbnNsaXRlcmF0ZShVVEYxNi52YWx1ZU9mKGNwKSkpOworICAgICAgICAgICAgICAgIGlmIChkZWNvbXBQb3MgPT0gZGVjb21wLmxlbmd0aCgpKSB7IC8vIGRvbmUsIGhhdmUgYWxsIGRlY29tcCBjaGFyYWN0ZXJzIQorICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHNlZ21lbnQuc3Vic3RyaW5nKGkgKyBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSk7IC8vIGFkZCByZW1haW5pbmcgc2VnbWVudCBjaGFycworICAgICAgICAgICAgICAgICAgICBvayA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBkZWNvbXBDcCA9IFVURjE2LmNoYXJBdChkZWNvbXAsIGRlY29tcFBvcyk7CisgICAgICAgICAgICAgICAgZGVjb21wUG9zICs9IFVURjE2LmdldENoYXJDb3VudChkZWNvbXBDcCk7CisgICAgICAgICAgICAgICAgLy9kZWNvbXBDbGFzcyA9IGdldENsYXNzKGRlY29tcENwKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKFBST0dSRVNTKSBTeXN0ZW0ub3V0LnByaW50bG4oIiAgYnVmZmVyOiAiICsgTkFNRS50cmFuc2xpdGVyYXRlKFVURjE2LnZhbHVlT2YoY3ApKSk7CisgICAgICAgICAgICAgICAgLy8gYnJ1dGUgZm9yY2UgYXBwcm9hY2gKKyAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQoYnVmZmVyLCBjcCk7CisgICAgICAgICAgICAgICAgLyogVE9ETzogb3B0aW1pemUKKyAgICAgICAgICAgICAgICAvLyBzaW5jZSB3ZSBrbm93IHRoYXQgdGhlIGNsYXNzZXMgYXJlIG1vbm90b25pY2FsbHkgaW5jcmVhc2luZywgYWZ0ZXIgemVybworICAgICAgICAgICAgICAgIC8vIGUuZy4gMCA1IDcgOSAwIDMKKyAgICAgICAgICAgICAgICAvLyB3ZSBjYW4gZG8gYW4gb3B0aW1pemF0aW9uCisgICAgICAgICAgICAgICAgLy8gdGhlcmUgYXJlIG9ubHkgYSBmZXcgY2FzZXMgdGhhdCB3b3JrOiB6ZXJvLCBsZXNzLCBzYW1lLCBncmVhdGVyCisgICAgICAgICAgICAgICAgLy8gaWYgYm90aCBjbGFzc2VzIGFyZSB0aGUgc2FtZSwgd2UgZmFpbAorICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBkZWNvbXAgY2xhc3MgPCB0aGUgc2VnbWVudCBjbGFzcywgd2UgZmFpbAorICAgICAgICAKKyAgICAgICAgICAgICAgICBzZWdDbGFzcyA9IGdldENsYXNzKGNwKTsKKyAgICAgICAgICAgICAgICBpZiAoZGVjb21wQ2xhc3MgPD0gc2VnQ2xhc3MpIHJldHVybiBudWxsOworICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFvaykgcmV0dXJuIG51bGw7IC8vIHdlIGZhaWxlZCwgY2hhcmFjdGVycyBsZWZ0IG92ZXIKKyAgICAgICAgaWYgKFBST0dSRVNTKSBTeXN0ZW0ub3V0LnByaW50bG4oIk1hdGNoZXMiKTsKKyAgICAgICAgaWYgKGJ1ZmZlci5sZW5ndGgoKSA9PSAwKSByZXR1cm4gU0VUX1dJVEhfTlVMTF9TVFJJTkc7IC8vIHN1Y2NlZWQsIGJ1dCBubyByZW1haW5kZXIKKyAgICAgICAgU3RyaW5nIHJlbWFpbmRlciA9IGJ1ZmZlci50b1N0cmluZygpOworICAgICAgICAKKyAgICAgICAgLy8gYnJ1dGUgZm9yY2UgYXBwcm9hY2gKKyAgICAgICAgLy8gdG8gY2hlY2sgdG8gbWFrZSBzdXJlIHJlc3VsdCBpcyBjYW5vbmljYWxseSBlcXVpdmFsZW50CisgICAgICAgIC8qCisgICAgICAgIFN0cmluZyB0cmlhbCA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKFVURjE2LnZhbHVlT2YoY29tcCkgKyByZW1haW5kZXIsIE5vcm1hbGl6ZXIuREVDT01QLCAwKTsKKyAgICAgICAgaWYgKCFzZWdtZW50LnJlZ2lvbk1hdGNoZXMoc2VnbWVudFBvcywgdHJpYWwsIDAsIHNlZ21lbnQubGVuZ3RoKCkgLSBzZWdtZW50UG9zKSkgcmV0dXJuIG51bGw7CisgICAgICAgICovCisgICAgICAgIAorICAgICAgICBpZiAoMCE9Tm9ybWFsaXplci5jb21wYXJlKFVURjE2LnZhbHVlT2YoY29tcCkgKyByZW1haW5kZXIsIHNlZ21lbnQuc3Vic3RyaW5nKHNlZ21lbnRQb3MpLCAwKSkgcmV0dXJuIG51bGw7CisgICAgICAgIAorICAgICAgICAvLyBnZXQgdGhlIHJlbWFpbmluZyBjb21iaW5hdGlvbnMKKyAgICAgICAgcmV0dXJuIGdldEVxdWl2YWxlbnRzMihyZW1haW5kZXIpOworICAgIH0KKyAgICAKKyAgICAvKgorICAgIC8vIFRPRE86IGZpeCBvbmNlIHdlIGhhdmUgYSBjb2RlcG9pbnQgaW50ZXJmYWNlIHRvIGdldCB0aGUgY2Fub25pY2FsIGNvbWJpbmluZyBjbGFzcworICAgIC8vIFRPRE86IE5lZWQgcHVibGljIGFjY2VzcyB0byBjYW5vbmljYWwgY29tYmluaW5nIGNsYXNzIGluIFVDaGFyYWN0ZXIhCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGdldENsYXNzKGludCBjcCkgeworICAgICAgICByZXR1cm4gTm9ybWFsaXplci5nZXRDbGFzcygoY2hhciljcCk7CisgICAgfQorICAgICovCisgICAgCisgICAvLyA9PT09PT09PT09PT09PT09PSBCVUlMREVSID09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBUT0RPOiBGbGF0dGVuIHRoaXMgZGF0YSBzbyBpdCBkb2Vzbid0IGhhdmUgdG8gYmUgcmVjb25zdHJ1Y3RlZCBlYWNoIHRpbWUhCisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVW5pY29kZVNldCBFTVBUWSA9IG5ldyBVbmljb2RlU2V0KCk7IC8vIGNvbnN0YW50LCBkb24ndCBjaGFuZ2UKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTZXQgU0VUX1dJVEhfTlVMTF9TVFJJTkcgPSBuZXcgSGFzaFNldCgpOyAvLyBjb25zdGFudCwgZG9uJ3QgY2hhbmdlCisgICAgc3RhdGljIHsKKyAgICAgICAgU0VUX1dJVEhfTlVMTF9TVFJJTkcuYWRkKCIiKTsKKyAgICB9CisgICAgCisgIC8vICBwcml2YXRlIHN0YXRpYyBVbmljb2RlU2V0IFNBRkVfU1RBUlQgPSBuZXcgVW5pY29kZVNldCgpOworICAvLyAgcHJpdmF0ZSBzdGF0aWMgQ2hhck1hcCBBVF9TVEFSVCA9IG5ldyBDaGFyTWFwKCk7CisgICAgCisgICAgICAgIC8vIFRPRE86IFdBUk5JTkcsIE5PUk1BTElaRVIgZG9lc24ndCBoYXZlIHN1cHBsZW1lbnRhcmllcyB5ZXQgISE7CisgICAgICAgIC8vIENoYW5nZSBGRkZGIHRvIDEwRkZGRiBpbiBDLCBhbmQgaW4gSmF2YSB3aGVuIG5vcm1hbGl6ZXIgaXMgdXBncmFkZWQuCisgIC8vICBwcml2YXRlIHN0YXRpYyBpbnQgTEFTVF9VTklDT0RFID0gMHgxMEZGRkY7CisgICAgLyoKKyAgICBzdGF0aWMgeworICAgICAgICBidWlsZERhdGEoKTsKKyAgICB9CisgICAgKi8KKyAgICAvKgorICAgIHByaXZhdGUgc3RhdGljIHZvaWQgYnVpbGREYXRhKCkgeworCisgICAgICAgIGlmIChQUk9HUkVTUykgU3lzdGVtLm91dC5wcmludGxuKCJHZXR0aW5nIFNhZmUgU3RhcnQiKTsKKyAgICAgICAgZm9yIChpbnQgY3AgPSAwOyBjcCA8PSBMQVNUX1VOSUNPREU7ICsrY3ApIHsKKyAgICAgICAgICAgIGlmIChQUk9HUkVTUyAmIChjcCAmIDB4N0ZGKSA9PSAwKSBTeXN0ZW0ub3V0LnByaW50KCcuJyk7CisgICAgICAgICAgICBpbnQgY2MgPSBVQ2hhcmFjdGVyLmdldENvbWJpbmluZ0NsYXNzKGNwKTsKKyAgICAgICAgICAgIGlmIChjYyA9PSAwKSBTQUZFX1NUQVJULmFkZChjcCk7CisgICAgICAgICAgICAvLyB3aWxsIGZpeCB0byBiZSByZWFsbHkgc2FmZSBiZWxvdworICAgICAgICB9CisgICAgICAgIGlmIChQUk9HUkVTUykgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgIAorICAgICAgICBpZiAoUFJPR1JFU1MpIFN5c3RlbS5vdXQucHJpbnRsbigiR2V0dGluZyBDb250YWlubWVudCIpOworICAgICAgICBmb3IgKGludCBjcCA9IDA7IGNwIDw9IExBU1RfVU5JQ09ERTsgKytjcCkgeworICAgICAgICAgICAgaWYgKFBST0dSRVNTICYgKGNwICYgMHg3RkYpID09IDApIFN5c3RlbS5vdXQucHJpbnQoJy4nKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKE5vcm1hbGl6ZXIuaXNOb3JtYWxpemVkKGNwLCBOb3JtYWxpemVyLk5GRCkpIGNvbnRpbnVlOworCisgICAgICAgICAgICAvL1N0cmluZyBpc3RyID0gVVRGMTYudmFsdWVPZihjcCk7CisgICAgICAgICAgICBTdHJpbmcgZGVjb21wID0gTm9ybWFsaXplci5ub3JtYWxpemUoY3AsIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgIC8vaWYgKGRlY29tcC5lcXVhbHMoaXN0cikpIGNvbnRpbnVlOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBhZGQgZWFjaCBjaGFyYWN0ZXIgaW4gdGhlIGRlY29tcG9zaXRpb24gdG8gY2FuQmVJbiAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IGNvbXBvbmVudDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGVjb21wLmxlbmd0aCgpOyBpICs9IFVURjE2LmdldENoYXJDb3VudChjb21wb25lbnQpKSB7CisgICAgICAgICAgICAgICAgY29tcG9uZW50ID0gVVRGMTYuY2hhckF0KGRlY29tcCwgaSk7CisgICAgICAgICAgICAgICAgaWYgKGkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBBVF9TVEFSVC5hZGQoY29tcG9uZW50LCBjcCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChVQ2hhcmFjdGVyLmdldENvbWJpbmluZ0NsYXNzKGNvbXBvbmVudCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBTQUZFX1NUQVJULnJlbW92ZShjb21wb25lbnQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoUFJPR1JFU1MpIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgIH0KKyAgICAgICAgLy8gdGhlIGZvbGxvd2luZyBpcyBqdXN0IGZvciBhIG1hcCBmcm9tIGNoYXJhY3RlcnMgdG8gYSBzZXQgb2YgY2hhcmFjdGVycworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIENoYXJNYXAgeworICAgICAgICBNYXAgc3RvcmFnZSA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgIE11dGFibGVJbnQgcHJvYmUgPSBuZXcgTXV0YWJsZUludCgpOworICAgICAgICBib29sZWFuIGNvbnZlcnRlZCA9IGZhbHNlOworICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgYWRkKGludCBjcCwgaW50IHdoYXRJdElzSW4pIHsKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgcmVzdWx0ID0gKFVuaWNvZGVTZXQpIHN0b3JhZ2UuZ2V0KHByb2JlLnNldChjcCkpOworICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgICAgICAgICBzdG9yYWdlLnB1dChwcm9iZSwgcmVzdWx0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlc3VsdC5hZGQod2hhdEl0SXNJbik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBVbmljb2RlU2V0IGdldChpbnQgY3ApIHsKKyAgICAgICAgICAgIHJldHVybiAoVW5pY29kZVNldCkgc3RvcmFnZS5nZXQocHJvYmUuc2V0KGNwKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgICAgICAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBNdXRhYmxlSW50IHsKKyAgICAgICAgcHVibGljIGludCBjb250ZW50czsKKyAgICAgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsgcmV0dXJuIGNvbnRlbnRzOyB9CisgICAgICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb3RoZXIpIHsKKyAgICAgICAgICAgIHJldHVybiAoKE11dGFibGVJbnQpb3RoZXIpLmNvbnRlbnRzID09IGNvbnRlbnRzOworICAgICAgICB9CisgICAgICAgIC8vIGFsbG93cyBjaGFpbmluZworICAgICAgICBwdWJsaWMgTXV0YWJsZUludCBzZXQoaW50IGNvbnRlbnRzKSB7CisgICAgICAgICAgICB0aGlzLmNvbnRlbnRzID0gY29udGVudHM7CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorICAgIH0KKyAgICAqLworCit9CisgICAgClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2hpbmVzZURhdGVGb3JtYXQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NoaW5lc2VEYXRlRm9ybWF0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzNkNzA0OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NoaW5lc2VEYXRlRm9ybWF0LmphdmEKQEAgLTAsMCArMSwxMjcgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NoaW5lc2VEYXRlRm9ybWF0LmphdmEsdiAkCisgKiAkRGF0ZTogMjAwMi8wMy8wMiAwMDowNzoyOCAkCisgKiAkUmV2aXNpb246IDEuNSAkCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworLyoqCisgKiBBIGNvbmNyZXRlIHtAbGluayBEYXRlRm9ybWF0fSBmb3Ige0BsaW5rIGNvbS5pYm0uaWN1LnV0aWwuQ2hpbmVzZUNhbGVuZGFyfS4KKyAqIFRoaXMgY2xhc3MgaGFuZGxlcyBhIDxjb2RlPkNoaW5lc2VDYWxlbmRhcjwvY29kZT4tc3BlY2lmaWMgZmllbGQsCisgKiA8Y29kZT5DaGluZXNlQ2FsZW5kYXIuSVNfTEVBUF9NT05USDwvY29kZT4uICBJdCBhbHNvIHJlZGVmaW5lcyB0aGUKKyAqIGhhbmRsaW5nIG9mIHR3byBmaWVsZHMsIDxjb2RlPkVSQTwvY29kZT4gYW5kIDxjb2RlPllFQVI8L2NvZGU+LiAgVGhlCisgKiBmb3JtZXIgaXMgZGlzcGxheWVkIG51bWVyaWNhbGx5LCBpbnN0ZWFkIG9mIHN5bWJvbGljYWxseSwgc2luY2UgaXQgaXMKKyAqIHRoZSBudW1lcmljIGN5Y2xlIG51bWJlciBpbiA8Y29kZT5DaGluZXNlQ2FsZW5kYXI8L2NvZGU+LiAgVGhlIGxhdHRlciBpcworICogbnVtZXJpYywgYXMgYmVmb3JlLCBidXQgaGFzIG5vIHNwZWNpYWwgMi1kaWdpdCBZMksgYmVoYXZpb3IuCisgKgorICogPHA+V2l0aCByZWdhcmQgdG8gPGNvZGU+Q2hpbmVzZUNhbGVuZGFyLklTX0xFQVBfTU9OVEg8L2NvZGU+LCB0aGlzCisgKiBjbGFzcyBoYW5kbGVzIHBhcnNpbmcgc3BlY2lhbGx5LiAgSWYgbm8gc3RyaW5nIHN5bWJvbCBpcyBmb3VuZCBhdCBhbGwsCisgKiB0aGlzIGlzIHRha2VuIGFzIGVxdWl2YWxlbnQgdG8gYW4gPGNvZGU+SVNfTEVBUF9NT05USDwvY29kZT4gdmFsdWUgb2YKKyAqIHplcm8uICBUaGlzIGFsbG93cyBmb3JtYXRzIHRvIGRpc3BsYXkgYSBzcGVjaWFsIHN0cmluZyAoZS5nLiwgIioiKSBmb3IKKyAqIGxlYXAgbW9udGhzLCBidXQgbm8gc3RyaW5nIGZvciBub3JtYWwgbW9udGhzLgorICoKKyAqIDxwPlN1bW1hcnkgb2YgZmllbGQgY2hhbmdlcyB2cy4ge0BsaW5rIFNpbXBsZURhdGVGb3JtYXR9OjxwcmU+CisgKiBTeW1ib2wgICBNZWFuaW5nICAgICAgICAgICAgICAgICBQcmVzZW50YXRpb24gICAgICAgIEV4YW1wbGUKKyAqIC0tLS0tLSAgIC0tLS0tLS0gICAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLSAgICAgICAgLS0tLS0tLQorICogRyAgICAgICAgY3ljbGUgICAgICAgICAgICAgICAgICAgKE51bWJlcikgICAgICAgICAgICA3OAorICogeSAgICAgICAgeWVhciBvZiBjeWNsZSAoMS4uNjApICAgKE51bWJlcikgICAgICAgICAgICAxNworICogbCAgICAgICAgaXMgbGVhcCBtb250aCAgICAgICAgICAgKFRleHQpICAgICAgICAgICAgICA0NjM3CisgKiA8L3ByZT4KKyAqCisgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuQ2hpbmVzZUNhbGVuZGFyCisgKiBAc2VlIENoaW5lc2VEYXRlRm9ybWF0U3ltYm9scworICogQGF1dGhvciBBbGFuIExpdQorICovCitwdWJsaWMgY2xhc3MgQ2hpbmVzZURhdGVGb3JtYXQgZXh0ZW5kcyBTaW1wbGVEYXRlRm9ybWF0IHsKKworICAgIC8vIFRPRE8gRmluaXNoIHRoZSBjb25zdHJ1Y3RvcnMKKworICAgIHB1YmxpYyBDaGluZXNlRGF0ZUZvcm1hdChTdHJpbmcgcGF0dGVybiwgTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBzdXBlcihwYXR0ZXJuLCBuZXcgQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzKGxvY2FsZSkpOworICAgIH0KKworICAgIHByb3RlY3RlZCBTdHJpbmcgc3ViRm9ybWF0KGNoYXIgY2gsIGludCBjb3VudCwgaW50IGJlZ2luT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zLCBEYXRlRm9ybWF0U3ltYm9scyBmb3JtYXREYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyIGNhbCkgIHsKKyAgICAgICAgc3dpdGNoIChjaCkgeworICAgICAgICBjYXNlICdHJzogLy8gJ0cnIC0gRVJBCisgICAgICAgICAgICByZXR1cm4gemVyb1BhZGRpbmdOdW1iZXIoY2FsLmdldChDYWxlbmRhci5FUkEpLCAxLCA5KTsKKyAgICAgICAgY2FzZSAnbCc6IC8vICdsJyAtIElTX0xFQVBfTU9OVEgKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMgc3ltYm9scyA9CisgICAgICAgICAgICAgICAgICAgIChDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMpIGZvcm1hdERhdGE7CisgICAgICAgICAgICAgICAgcmV0dXJuIHN5bWJvbHMuZ2V0TGVhcE1vbnRoKGNhbC5nZXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hpbmVzZUNhbGVuZGFyLklTX0xFQVBfTU9OVEgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBzdXBlci5zdWJGb3JtYXQoY2gsIGNvdW50LCBiZWdpbk9mZnNldCwgcG9zLCBmb3JtYXREYXRhLCBjYWwpOworICAgICAgICB9CisgICAgfSAgICAKKworICAgIHByb3RlY3RlZCBpbnQgc3ViUGFyc2UoU3RyaW5nIHRleHQsIGludCBzdGFydCwgY2hhciBjaCwgaW50IGNvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBvYmV5Q291bnQsIGJvb2xlYW5bXSBhbWJpZ3VvdXNZZWFyLCBDYWxlbmRhciBjYWwpIHsKKyAgICAgICAgaWYgKGNoICE9ICdHJyAmJiBjaCAhPSAnbCcgJiYgY2ggIT0gJ3knKSB7CisgICAgICAgICAgICByZXR1cm4gc3VwZXIuc3ViUGFyc2UodGV4dCwgc3RhcnQsIGNoLCBjb3VudCwgb2JleUNvdW50LCBhbWJpZ3VvdXNZZWFyLCBjYWwpOworICAgICAgICB9CisKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbihzdGFydCk7CisKKyAgICAgICAgLy8gSWYgdGhlcmUgYXJlIGFueSBzcGFjZXMgaGVyZSwgc2tpcCBvdmVyIHRoZW0uICBJZiB3ZSBoaXQgdGhlIGVuZAorICAgICAgICAvLyBvZiB0aGUgc3RyaW5nLCB0aGVuIGZhaWwuCisgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgIGlmIChwb3MuZ2V0SW5kZXgoKSA+PSB0ZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC1zdGFydDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNoYXIgYyA9IHRleHQuY2hhckF0KHBvcy5nZXRJbmRleCgpKTsKKyAgICAgICAgICAgIGlmIChjICE9ICcgJyAmJiBjICE9ICdcdCcpIHsgLy8gVE9ETyBTaG91bGRuJ3QgdGhpcyBiZSBpc1doaXRlc3BhY2U/CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwb3Muc2V0SW5kZXgocG9zLmdldEluZGV4KCkrMSk7CisgICAgICAgIH0KKworICAgICAgICBzd2l0Y2ggKGNoKSB7CisgICAgICAgIGNhc2UgJ0cnOiAvLyAnRycgLSBFUkEKKyAgICAgICAgY2FzZSAneSc6IC8vICd5JyAtIFlFQVIsIGJ1dCB3aXRob3V0IHRoZSAyLWRpZ2l0IFkySyBhZGp1c3RtZW50CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgTnVtYmVyIG51bWJlciA9IG51bGw7CisgICAgICAgICAgICAgICAgaWYgKG9iZXlDb3VudCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoKHN0YXJ0K2NvdW50KSA+IHRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbnVtYmVyID0gbnVtYmVyRm9ybWF0LnBhcnNlKHRleHQuc3Vic3RyaW5nKDAsIHN0YXJ0K2NvdW50KSwgcG9zKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBudW1iZXIgPSBudW1iZXJGb3JtYXQucGFyc2UodGV4dCwgcG9zKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtc3RhcnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGludCB2YWx1ZSA9IG51bWJlci5pbnRWYWx1ZSgpOworICAgICAgICAgICAgICAgIGNhbC5zZXQoY2ggPT0gJ0cnID8gQ2FsZW5kYXIuRVJBIDogQ2FsZW5kYXIuWUVBUiwgdmFsdWUpOworICAgICAgICAgICAgICAgIHJldHVybiBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSAnbCc6IC8vICdsJyAtIElTX0xFQVBfTU9OVEgKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMgc3ltYm9scyA9CisgICAgICAgICAgICAgICAgICAgIChDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMpIGdldFN5bWJvbHMoKTsKKyAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gbWF0Y2hTdHJpbmcodGV4dCwgc3RhcnQsIENoaW5lc2VDYWxlbmRhci5JU19MRUFQX01PTlRILAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW1ib2xzLmlzTGVhcE1vbnRoLCBjYWwpOworICAgICAgICAgICAgICAgIC8vIFRyZWF0IHRoZSBhYnNlbmNlIG9mIGFueSBtYXRjaGluZyBzdHJpbmcgYXMgc2V0dGluZworICAgICAgICAgICAgICAgIC8vIElTX0xFQVBfTU9OVEggdG8gZmFsc2UuCisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDwwKSB7CisgICAgICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2hpbmVzZUNhbGVuZGFyLklTX0xFQVBfTU9OVEgsIDApOworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBzdGFydDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiAwOyAvLyBUaGlzIGNhbiBuZXZlciBoYXBwZW4KKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NoaW5lc2VEYXRlRm9ybWF0U3ltYm9scy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjE0NGEwMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NoaW5lc2VEYXRlRm9ybWF0U3ltYm9scy5qYXZhCkBAIC0wLDAgKzEsNjAgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NoaW5lc2VEYXRlRm9ybWF0U3ltYm9scy5qYXZhLHYgJAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6MDQgJAorICogJFJldmlzaW9uOiAxLjIgJAorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLlJlc291cmNlQnVuZGxlOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CisKKy8qKgorICogQSBzdWJjbGFzcyBvZiB7QGxpbmsgRGF0ZUZvcm1hdFN5bWJvbHN9IGZvciB7QGxpbmsgQ2hpbmVzZURhdGVGb3JtYXR9LgorICogVGhpcyBjbGFzcyBjb250YWlucyBhZGRpdGlvbmFsIHN5bWJvbHMgY29ycmVzcG9uZGluZyB0byB0aGUKKyAqIDxjb2RlPkNoaW5lc2VDYWxlbmRhci5JU19MRUFQX01PTlRIPC9jb2RlPiBmaWVsZC4KKyAqCisgKiBAc2VlIENoaW5lc2VEYXRlRm9ybWF0CisgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuQ2hpbmVzZUNhbGVuZGFyCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKi8KK3B1YmxpYyBjbGFzcyBDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMgZXh0ZW5kcyBEYXRlRm9ybWF0U3ltYm9scyB7CisgICAgCisgICAgLyoqCisgICAgICogUGFja2FnZS1wcml2YXRlIGFycmF5IHRoYXQgQ2hpbmVzZURhdGVGb3JtYXQgbmVlZHMgdG8gYmUgYWJsZSB0bworICAgICAqIHJlYWQuCisgICAgICovCisgICAgU3RyaW5nIGlzTGVhcE1vbnRoW107IC8vIERvIE5PVCBhZGQgPW51bGwgaW5pdGlhbGl6ZXIKKworICAgIHB1YmxpYyBDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMoKSB7CisgICAgICAgIHRoaXMoTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgcHVibGljIENoaW5lc2VEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHN1cGVyKENoaW5lc2VDYWxlbmRhci5jbGFzcywgbG9jYWxlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzKENhbGVuZGFyIGNhbCwgTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBzdXBlcihjYWw9PW51bGw/bnVsbDpjYWwuZ2V0Q2xhc3MoKSwgbG9jYWxlKTsKKyAgICB9CisKKyAgICAvLyBOZXcgQVBJCisgICAgcHVibGljIFN0cmluZyBnZXRMZWFwTW9udGgoaW50IGlzTGVhcE1vbnRoKSB7CisgICAgICAgIHJldHVybiB0aGlzLmlzTGVhcE1vbnRoW2lzTGVhcE1vbnRoXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBEYXRlRm9ybWF0U3ltYm9scy4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBjb25zdHJ1Y3RDYWxlbmRhclNwZWNpZmljKFJlc291cmNlQnVuZGxlIGJ1bmRsZSkgeworICAgICAgICBzdXBlci5jb25zdHJ1Y3RDYWxlbmRhclNwZWNpZmljKGJ1bmRsZSk7CisgICAgICAgIGlmIChidW5kbGUgIT0gbnVsbCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpc0xlYXBNb250aCA9IGJ1bmRsZS5nZXRTdHJpbmdBcnJheSgiSXNMZWFwTW9udGgiKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7fQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Db2xsYXRpb25FbGVtZW50SXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jZmYzYjJhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwyNDkyIEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Ob3JtYWxpemVySW1wbDsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VEZWJ1ZzsKKworLyoqCisgKiA8cD48Y29kZT5Db2xsYXRpb25FbGVtZW50SXRlcmF0b3I8L2NvZGU+IGlzIGFuIGl0ZXJhdG9yIGNyZWF0ZWQgYnkKKyAqIGEgUnVsZUJhc2VkQ29sbGF0b3IgdG8gd2FsayB0aHJvdWdoIGEgc3RyaW5nLiBUaGUgcmV0dXJuIHJlc3VsdCBvZgorICogZWFjaCBpdGVyYXRpb24gaXMgYSAzMi1iaXQgY29sbGF0aW9uIGVsZW1lbnQgdGhhdCBkZWZpbmVzIHRoZQorICogb3JkZXJpbmcgcHJpb3JpdHkgb2YgdGhlIG5leHQgY2hhcmFjdGVyIG9yIHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMKKyAqIGluIHRoZSBzb3VyY2Ugc3RyaW5nLjwvcD4KKyAqCisgKiA8cD5Gb3IgaWxsdXN0cmF0aW9uLCBjb25zaWRlciB0aGUgZm9sbG93aW5nIGluIFNwYW5pc2g6CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiAiY2EiIC0+IHRoZSBmaXJzdCBjb2xsYXRpb24gZWxlbWVudCBpcyBjb2xsYXRpb25fZWxlbWVudCgnYycpIGFuZCBzZWNvbmQgCisgKiAgICAgICAgIGNvbGxhdGlvbiBlbGVtZW50IGlzIGNvbGxhdGlvbl9lbGVtZW50KCdhJykuCisgKiAKKyAqIFNpbmNlICJjaCIgaW4gU3BhbmlzaCBzb3J0cyBhcyBvbmUgZW50aXR5LCB0aGUgYmVsb3cgZXhhbXBsZSByZXR1cm5zIG9uZQorICogY29sbGF0aW9uIGVsZW1lbnQgZm9yIHRoZSB0d28gY2hhcmFjdGVycyAnYycgYW5kICdoJworICogCisgKiAiY2hhIiAtPiB0aGUgZmlyc3QgY29sbGF0aW9uIGVsZW1lbnQgaXMgY29sbGF0aW9uX2VsZW1lbnQoJ2NoJykgYW5kIHNlY29uZCAKKyAqICAgICAgICAgIGNvbGxhdGlvbiBlbGVtZW50IGlzIGNvbGxhdGlvbl9lbGVtZW50KCdhJykuCisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqIEFuZCBpbiBHZXJtYW4sCisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBTaW5jZSB0aGUgY2hhcmFjdGVyICcmIzIzMDsnIGlzIGEgY29tcG9zZWQgY2hhcmFjdGVyIG9mICdhJyBhbmQgJ2UnLCB0aGUKKyAqIGl0ZXJhdG9yIHJldHVybnMgdHdvIGNvbGxhdGlvbiBlbGVtZW50cyBmb3IgdGhlIHNpbmdsZSBjaGFyYWN0ZXIgJyYjMjMwOycKKyAqIAorICogIiYjMjMwO2IiIC0+IHRoZSBmaXJzdCBjb2xsYXRpb24gZWxlbWVudCBpcyBjb2xsYXRpb25fZWxlbWVudCgnYScpLCB0aGUgCisgKiAgICAgICAgICAgICAgc2Vjb25kIGNvbGxhdGlvbiBlbGVtZW50IGlzIGNvbGxhdGlvbl9lbGVtZW50KCdlJyksIGFuZCB0aGUgCisgKiAgICAgICAgICAgICAgdGhpcmQgY29sbGF0aW9uIGVsZW1lbnQgaXMgY29sbGF0aW9uX2VsZW1lbnQoJ2InKS4KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogPC9wPgorICoKKyAqIDxwPkZvciBjb2xsYXRpb24gb3JkZXJpbmcgY29tcGFyaXNvbiwgdGhlIGNvbGxhdGlvbiBlbGVtZW50IHJlc3VsdHMKKyAqIGNhbiBub3QgYmUgY29tcGFyZWQgc2ltcGx5IGJ5IHVzaW5nIGJhc2ljIGFyaXRobWV0cmljIG9wZXJhdG9ycywKKyAqIGUuZy4gJmx0OywgPT0gb3IgJmd0OywgZnVydGhlciBwcm9jZXNzaW5nIGhhcyB0byBiZSBkb25lLiBEZXRhaWxzCisgKiBjYW4gYmUgZm91bmQgaW4gdGhlIElDVQorICogPGEgaHJlZj1odHRwOi8vb3NzLnNvZnR3YXJlLmlibS5jb20vaWN1L3VzZXJndWlkZS9Db2xsYXRlX1NlcnZpY2VBcmNoaXRlY3R1cmUuaHRtbD4KKyAqIHVzZXIgZ3VpZGU8L2E+LiBBbiBleGFtcGxlIG9mIHVzaW5nIHRoZSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IKKyAqIGZvciBjb2xsYXRpb24gb3JkZXJpbmcgY29tcGFyaXNvbiBpcyB0aGUgY2xhc3MgCisgKiA8YSBocmVmPVN0cmluZ1NlYXJjaC5odG1sPiBjb20uaWJtLmljdS50ZXh0LlN0cmluZ1NlYXJjaDwvYT4uPC9wPgorICoKKyAqIDxwPlRvIGNvbnN0cnVjdCBhIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBvYmplY3QsIHVzZXJzIAorICogY2FsbCB0aGUgbWV0aG9kIGdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcigpIG9uIGEKKyAqIFJ1bGVCYXNlZENvbGxhdG9yIHRoYXQgZGVmaW5lcyB0aGUgZGVzaXJlZCBzb3J0aW5nIG9yZGVyLjwvcD4KKyAqCisgKiA8cD4gRXhhbXBsZToKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqICBTdHJpbmcgdGVzdFN0cmluZyA9ICJUaGlzIGlzIGEgdGVzdCI7CisgKiAgUnVsZUJhc2VkQ29sbGF0b3IgcmJjID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKCImYW1wO2EmbHQ7YiIpOworICogIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyYXRvciA9IHJiYy5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IodGVzdFN0cmluZyk7CisgKiAgaW50IHByaW1hcnlPcmRlciA9IGl0ZXJhdG9yLklHTk9SQUJMRTsKKyAqICB3aGlsZSAocHJpbWFyeU9yZGVyICE9IGl0ZXJhdG9yLk5VTExPUkRFUikgeworICogICAgICBpbnQgb3JkZXIgPSBpdGVyYXRvci5uZXh0KCk7CisgKiAgICAgIGlmIChvcmRlciAhPSBpdGVyYXRvci5JR05PUkFCTEUgJiYKKyAqICAgICAgICAgIG9yZGVyICE9IGl0ZXJhdG9yLk5VTExPUkRFUikgeworICogICAgICAgICAgLy8gb3JkZXIgaXMgdmFsaWQsIG5vdCBpZ25vcmFibGUgYW5kIHdlIGhhdmUgbm90IHBhc3NlZCB0aGUgZW5kCisgKiAgICAgICAgICAvLyBvZiB0aGUgaXRlcmF0aW9uLCB3ZSBkbyBzb21ldGhpbmcKKyAqICAgICAgICAgIHByaW1hcnlPcmRlciA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIob3JkZXIpOworICogICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJOZXh0IHByaW1hcnkgb3JkZXIgMHgiICsgCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhwcmltYXJ5T3JkZXIpKTsKKyAqICAgICAgfQorICogIH0KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogPC9wPgorICogCisgKiBAc2VlIENvbGxhdG9yCisgKiBAc2VlIFJ1bGVCYXNlZENvbGxhdG9yCisgKiBAc2VlIFN0cmluZ1NlYXJjaAorICogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyAqIEBzaW5jZSByZWxlYXNlIDIuMiwgQXByaWwgMTggMjAwMgorICogQGRyYWZ0IDIuMiAKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciAKK3sKKyAgICAvLyBwdWJsaWMgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgIC8qKgorICAgICAqIDxwPlRoaXMgY29uc3RhbnQgaXMgcmV0dXJuZWQgYnkgdGhlIGl0ZXJhdG9yIGluIHRoZSBtZXRob2RzCisgICAgICogbmV4dCgpIGFuZCBwcmV2aW91cygpIHdoZW4gdGhlIGVuZCBvciB0aGUgYmVnaW5uaW5nIG9mIHRoZQorICAgICAqIHNvdXJjZSBzdHJpbmcgaGFzIGJlZW4gcmVhY2hlZCwgYW5kIHRoZXJlIGFyZSBubyBtb3JlIHZhbGlkCisgICAgICogY29sbGF0aW9uIGVsZW1lbnRzIHRvIHJldHVybi48L3A+CisgICAgICoKKyAgICAgKiA8cD5TZWUgY2xhc3MgZG9jdW1lbnRhdGlvbiBmb3IgYW4gZXhhbXBsZSBvZiB1c2UuPC9wPgorICAgICAqIEBkcmFmdCAyLjIKKyAgICAgKiBAc2VlICNuZXh0CisgICAgICogQHNlZSAjcHJldmlvdXMgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBOVUxMT1JERVIgPSAweGZmZmZmZmZmOworCisgICAgLyoqCisgICAgICogPHA+VGhpcyBjb25zdGFudCBpcyByZXR1cm5lZCBieSB0aGUgaXRlcmF0b3IgaW4gdGhlIG1ldGhvZHMKKyAgICAgKiBuZXh0KCkgYW5kIHByZXZpb3VzKCkgd2hlbiBhIGNvbGxhdGlvbiBlbGVtZW50IHJlc3VsdCBpcyB0byBiZQorICAgICAqIGlnbm9yZWQuPC9wPgorICAgICAqCisgICAgICogPHA+U2VlIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIGFuIGV4YW1wbGUgb2YgdXNlLjwvcD4KKyAgICAgKiBAZHJhZnQgMi4yCisgICAgICogQHNlZSAjbmV4dAorICAgICAqIEBzZWUgI3ByZXZpb3VzICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSUdOT1JBQkxFID0gMDsKKworICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgLy8gcHVibGljIGdldHRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiA8cD5SZXR1cm5zIHRoZSBjaGFyYWN0ZXIgb2Zmc2V0IGluIHRoZSBzb3VyY2Ugc3RyaW5nCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUgbmV4dCBjb2xsYXRpb24gZWxlbWVudC4gSS5lLiwgZ2V0T2Zmc2V0KCkKKyAgICAgKiByZXR1cm5zIHRoZSBwb3NpdGlvbiBpbiB0aGUgc291cmNlIHN0cmluZyBjb3JyZXNwb25kaW5nIHRvIHRoZQorICAgICAqIGNvbGxhdGlvbiBlbGVtZW50IHRoYXQgd2lsbCBiZSByZXR1cm5lZCBieSB0aGUgbmV4dCBjYWxsIHRvCisgICAgICogbmV4dCgpLiBUaGlzIHZhbHVlIGNvdWxkIGJlIGFueSBvZjoKKyAgICAgKiA8dWw+CisgICAgICogPGxpPiBUaGUgaW5kZXggb2YgdGhlIDxiPmZpcnN0PC9iPiBjaGFyYWN0ZXIgY29ycmVzcG9uZGluZyB0bworICAgICAqIHRoZSBuZXh0IGNvbGxhdGlvbiBlbGVtZW50LiAoVGhpcyBtZWFucyB0aGF0IGlmCisgICAgICogPGNvZGU+c2V0T2Zmc2V0KG9mZnNldCk8L2NvZGU+IHNldHMgdGhlIGluZGV4IGluIHRoZSBtaWRkbGUgb2YKKyAgICAgKiBhIGNvbnRyYWN0aW9uLCA8Y29kZT5nZXRPZmZzZXQoKTwvY29kZT4gcmV0dXJucyB0aGUgaW5kZXggb2YKKyAgICAgKiB0aGUgZmlyc3QgY2hhcmFjdGVyIGluIHRoZSBjb250cmFjdGlvbiwgd2hpY2ggbWF5IG5vdCBiZSBlcXVhbAorICAgICAqIHRvIHRoZSBvcmlnaW5hbCBvZmZzZXQgdGhhdCB3YXMgc2V0LiBIZW5jZSBjYWxsaW5nIGdldE9mZnNldCgpCisgICAgICogaW1tZWRpYXRlbHkgYWZ0ZXIgc2V0T2Zmc2V0KG9mZnNldCkgZG9lcyBub3QgZ3VhcmFudGVlIHRoYXQgdGhlCisgICAgICogb3JpZ2luYWwgb2Zmc2V0IHNldCB3aWxsIGJlIHJldHVybmVkLikKKyAgICAgKiA8bGk+IElmIG5vcm1hbGl6YXRpb24gaXMgb24sIHRoZSBpbmRleCBvZiB0aGUgPGI+aW1tZWRpYXRlPC9iPgorICAgICAqIHN1YnNlcXVlbnQgY2hhcmFjdGVyLCBvciBjb21wb3NpdGUgY2hhcmFjdGVyIHdpdGggdGhlIGZpcnN0CisgICAgICogY2hhcmFjdGVyLCBoYXZpbmcgYSBjb21iaW5pbmcgY2xhc3Mgb2YgMC4KKyAgICAgKiA8bGk+IFRoZSBsZW5ndGggb2YgdGhlIHNvdXJjZSBzdHJpbmcsIGlmIGl0ZXJhdGlvbiBoYXMgcmVhY2hlZAorICAgICAqIHRoZSBlbmQuCisgICAgICo8L3VsPgorICAgICAqIDwvcD4KKyAgICAgKiBAcmV0dXJuIFRoZSBjaGFyYWN0ZXIgb2Zmc2V0IGluIHRoZSBzb3VyY2Ugc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gdGhlIAorICAgICAqICAgICAgICAgY29sbGF0aW9uIGVsZW1lbnQgdGhhdCB3aWxsIGJlIHJldHVybmVkIGJ5IHRoZSBuZXh0IGNhbGwgdG8gCisgICAgICogICAgICAgICBuZXh0KCkuCisgICAgICogQGRyYWZ0IDIuMiAqLworICAgIHB1YmxpYyBpbnQgZ2V0T2Zmc2V0KCkKKyAgICB7CisgICAgICAgIGlmIChtX2J1ZmZlck9mZnNldF8gIT0gLTEpIHsKKyAgICAgICAgICAgIGlmIChtX2lzRm9yd2FyZHNfKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1fRkNETGltaXRfOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG1fRkNEU3RhcnRfOworICAgICAgICB9CisgICAgICAgIHJldHVybiBtX3NvdXJjZV8uZ2V0SW5kZXgoKTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIDxwPiBSZXR1cm5zIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhbnkgZXhwYW5zaW9uIHNlcXVlbmNlIHRoYXQgZW5kcyB3aXRoIAorICAgICAqIHRoZSBzcGVjaWZpZWQgY29sbGF0aW9uIGVsZW1lbnQuIElmIHRoZXJlIGlzIG5vIGV4cGFuc2lvbiB3aXRoIHRoaXMKKyAgICAgKiBjb2xsYXRpb24gZWxlbWVudCBhcyB0aGUgbGFzdCBlbGVtZW50LCByZXR1cm5zIDEuCisgICAgICogPC9wPgorICAgICAqIEBwYXJhbSBjZSBhIGNvbGxhdGlvbiBlbGVtZW50IHJldHVybmVkIGJ5IHByZXZpb3VzKCkgb3IgbmV4dCgpLgorICAgICAqIEByZXR1cm4gdGhlIG1heGltdW0gbGVuZ3RoIG9mIGFueSBleHBhbnNpb24gc2VxdWVuY2UgZW5kaW5nCisgICAgICogICAgICAgICB3aXRoIHRoZSBzcGVjaWZpZWQgY29sbGF0aW9uIGVsZW1lbnQuCisgICAgICogQGRyYWZ0IDIuMgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TWF4RXhwYW5zaW9uKGludCBjZSkKKyAgICB7CisgICAgICAgIGludCBzdGFydCA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBpbnQgbGltaXQgPSBtX2NvbGxhdG9yXy5tX2V4cGFuc2lvbkVuZENFXy5sZW5ndGg7CisgICAgICAgIGxvbmcgdW5zaWduZWRjZSA9IGNlICYgMHhGRkZGRkZGRmw7CisgICAgICAgIHdoaWxlIChzdGFydCA8IGxpbWl0IC0gMSkgeworICAgICAgICAgICAgaW50IG1pZCA9IHN0YXJ0ICsgKChsaW1pdCAtIHN0YXJ0KSA+PiAxKTsgICAgICAgICAgICAgIAorICAgICAgICAgICAgbG9uZyBtaWRjZSA9IG1fY29sbGF0b3JfLm1fZXhwYW5zaW9uRW5kQ0VfW21pZF0gJiAweEZGRkZGRkZGbDsKKyAgICAgICAgICAgIGlmICh1bnNpZ25lZGNlIDw9IG1pZGNlKSB7ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBsaW1pdCA9IG1pZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgZWxzZSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBzdGFydCA9IG1pZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICB9ICAgICAgICAgIAorICAgICAgICBpbnQgcmVzdWx0ID0gMTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGlmIChtX2NvbGxhdG9yXy5tX2V4cGFuc2lvbkVuZENFX1tzdGFydF0gPT0gY2UpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG1fY29sbGF0b3JfLm1fZXhwYW5zaW9uRW5kQ0VNYXhTaXplX1tzdGFydF07CisgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGVsc2UgaWYgKGxpbWl0IDwgbV9jb2xsYXRvcl8ubV9leHBhbnNpb25FbmRDRV8ubGVuZ3RoICYmCisgICAgICAgICAgICAgICAgIG1fY29sbGF0b3JfLm1fZXhwYW5zaW9uRW5kQ0VfW2xpbWl0XSA9PSBjZSkgeyAgICAgICAgICAgCisgICAgICAgICAgICByZXN1bHQgPSBtX2NvbGxhdG9yXy5tX2V4cGFuc2lvbkVuZENFTWF4U2l6ZV9bbGltaXRdOyAKKyAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgZWxzZSBpZiAoKGNlICYgMHhGRkZGKSA9PSAweDAwQzApIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IDI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICByZXR1cm4gcmVzdWx0OyAgICAKKyAgICB9CisKKyAgICAvLyBwdWJsaWMgb3RoZXIgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgIC8qKgorICAgICAqIDxwPiBSZXNldHMgdGhlIGN1cnNvciB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzdHJpbmcuIFRoZSBuZXh0CisgICAgICogY2FsbCB0byBuZXh0KCkgb3IgcHJldmlvdXMoKSB3aWxsIHJldHVybiB0aGUgZmlyc3QgYW5kIGxhc3QKKyAgICAgKiBjb2xsYXRpb24gZWxlbWVudCBpbiB0aGUgc3RyaW5nLCByZXNwZWN0aXZlbHkuPC9wPgorICAgICAqCisgICAgICogPHA+SWYgdGhlIFJ1bGVCYXNlZENvbGxhdG9yIHVzZWQgYnkgdGhpcyBpdGVyYXRvciBoYXMgaGFkIGl0cworICAgICAqIGF0dHJpYnV0ZXMgY2hhbmdlZCwgY2FsbGluZyByZXNldCgpIHdpbGwgcmVpbml0aWFsaXplIHRoZQorICAgICAqIGl0ZXJhdG9yIHRvIHVzZSB0aGUgbmV3IGF0dHJpYnV0ZXMuPC9wPgorICAgICAqCisgICAgICogQGRyYWZ0IDIuMiAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZXNldCgpCisgICAgeworICAgICAgICBtX3NvdXJjZV8uc2V0SW5kZXgobV9zb3VyY2VfLmdldEJlZ2luSW5kZXgoKSk7CisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5HZXQgdGhlIG5leHQgY29sbGF0aW9uIGVsZW1lbnQgaW4gdGhlIHNvdXJjZSBzdHJpbmcuPC9wPiAgCisgICAgICoKKyAgICAgKiA8cD5UaGlzIGl0ZXJhdG9yIGl0ZXJhdGVzIG92ZXIgYSBzZXF1ZW5jZSBvZiBjb2xsYXRpb24gZWxlbWVudHMKKyAgICAgKiB0aGF0IHdlcmUgYnVpbHQgZnJvbSB0aGUgc3RyaW5nLiBCZWNhdXNlIHRoZXJlIGlzbid0CisgICAgICogbmVjZXNzYXJpbHkgYSBvbmUtdG8tb25lIG1hcHBpbmcgZnJvbSBjaGFyYWN0ZXJzIHRvIGNvbGxhdGlvbgorICAgICAqIGVsZW1lbnRzLCB0aGlzIGRvZXNuJ3QgbWVhbiB0aGUgc2FtZSB0aGluZyBhcyAicmV0dXJuIHRoZQorICAgICAqIGNvbGxhdGlvbiBlbGVtZW50IFtvciBvcmRlcmluZyBwcmlvcml0eV0gb2YgdGhlIG5leHQgY2hhcmFjdGVyCisgICAgICogaW4gdGhlIHN0cmluZyIuPC9wPgorICAgICAqCisgICAgICogPHA+VGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBjb2xsYXRpb24gZWxlbWVudCB0aGF0IHRoZQorICAgICAqIGl0ZXJhdG9yIGlzIGN1cnJlbnRseSBwb2ludGluZyB0bywgYW5kIHRoZW4gdXBkYXRlcyB0aGUKKyAgICAgKiBpbnRlcm5hbCBwb2ludGVyIHRvIHBvaW50IHRvIHRoZSBuZXh0IGVsZW1lbnQuICBQcmV2aW91cygpCisgICAgICogdXBkYXRlcyB0aGUgcG9pbnRlciBmaXJzdCwgYW5kIHRoZW4gcmV0dXJucyB0aGUgZWxlbWVudC4gVGhpcworICAgICAqIG1lYW5zIHRoYXQgd2hlbiB5b3UgY2hhbmdlIGRpcmVjdGlvbiB3aGlsZSBpdGVyYXRpbmcgKGkuZS4sCisgICAgICogY2FsbCBuZXh0KCkgYW5kIHRoZW4gY2FsbCBwcmV2aW91cygpLCBvciBjYWxsIHByZXZpb3VzKCkgYW5kCisgICAgICogdGhlbiBjYWxsIG5leHQoKSksIHlvdSdsbCBnZXQgYmFjayB0aGUgc2FtZSBlbGVtZW50IHR3aWNlLjwvcD4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdGhlIG5leHQgY29sbGF0aW9uIGVsZW1lbnQgb3IgTlVMTE9SREVSIGlmIHRoZSBlbmQgb2YgdGhlIAorICAgICAqICAgICAgICAgaXRlcmF0aW9uIGhhcyBiZWVuIHJlYWNoZWQuCisgICAgICogQGRyYWZ0IDIuMiAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IG5leHQoKQorICAgIHsKKyAgICAgICAgbV9pc0ZvcndhcmRzXyA9IHRydWU7CisgICAgICAgIGlmIChtX0NFQnVmZmVyU2l6ZV8gPiAwKSB7IAorICAgICAgICAgICAgaWYgKG1fQ0VCdWZmZXJPZmZzZXRfIDwgbV9DRUJ1ZmZlclNpemVfKSB7IAorICAgICAgICAgICAgICAgIC8vIGlmIHRoZXJlIGFyZSBleHBhbnNpb25zIGxlZnQgaW4gdGhlIGJ1ZmZlciwgd2UgcmV0dXJuIGl0CisgICAgICAgICAgICAgICAgcmV0dXJuIG1fQ0VCdWZmZXJfW21fQ0VCdWZmZXJPZmZzZXRfICsrXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fQ0VCdWZmZXJTaXplXyA9IDA7CisgICAgICAgICAgICBtX0NFQnVmZmVyT2Zmc2V0XyA9IDA7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGNoYXIgY2ggPSBuZXh0Q2hhcigpOyAgICAKKyAgICAgICAgLyogU3lzdGVtLm91dC5wcmludGxuKCJjaCAiICsgSW50ZWdlci50b0hleFN0cmluZyhjaCkgKyAiICIgKyAKKyAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhtX3NvdXJjZV8uY3VycmVudCgpKSk7Ki8KKyAgICAgICAgaWYgKGNoID09IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgIHJldHVybiBOVUxMT1JERVI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1fY29sbGF0b3JfLm1faXNIaXJhZ2FuYTRfKSB7CisgICAgICAgICAgICBtX2lzQ29kZVBvaW50SGlyYWdhbmFfID0gKGNoID49IDB4MzA0MCAmJiBjaCA8PSAweDMwOWUpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmICEoY2ggPiAweDMwOTQgJiYgY2ggPCAweDMwOWQpOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgaW50IHJlc3VsdCA9IE5VTExPUkRFUjsKKyAgICAgICAgaWYgKGNoIDw9IDB4RkYpIHsKKyAgICAgICAgICAgIC8vIEZvciBsYXRpbi0xIGNoYXJhY3RlcnMgd2UgbmV2ZXIgbmVlZCB0byBmYWxsIGJhY2sgdG8gdGhlIFVDQSAKKyAgICAgICAgICAgIC8vIHRhYmxlIGJlY2F1c2UgYWxsIG9mIHRoZSBVQ0EgZGF0YSBpcyByZXBsaWNhdGVkIGluIHRoZSAKKyAgICAgICAgICAgIC8vIGxhdGluT25lTWFwcGluZyBhcnJheQorICAgICAgICAgICAgcmVzdWx0ID0gbV9jb2xsYXRvcl8ubV90cmllXy5nZXRMYXRpbjFMaW5lYXJWYWx1ZShjaCk7CisgICAgICAgICAgICBpZiAoUnVsZUJhc2VkQ29sbGF0b3IuaXNTcGVjaWFsKHJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBuZXh0U3BlY2lhbChtX2NvbGxhdG9yXywgcmVzdWx0LCBjaCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXN1bHQgPSBtX2NvbGxhdG9yXy5tX3RyaWVfLmdldExlYWRWYWx1ZShjaCk7CisgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbihJbnRlZ2VyLnRvSGV4U3RyaW5nKHJlc3VsdCkpOworICAgICAgICAgICAgaWYgKFJ1bGVCYXNlZENvbGxhdG9yLmlzU3BlY2lhbChyZXN1bHQpKSB7ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gc3Vycm9nYXRlIGxlYWRzIGFyZSBoYW5kbGVkIGFzIHNwZWNpYWwgY2VzCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbmV4dFNwZWNpYWwobV9jb2xsYXRvcl8sIHJlc3VsdCwgY2gpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBDRV9OT1RfRk9VTkRfKSB7ICAgCisgICAgICAgICAgICAgICAgLy8gY291bGRuJ3QgZmluZCBhIGdvb2QgQ0UgaW4gdGhlIHRhaWxvcmluZworICAgICAgICAgICAgICAgIC8vIGlmIHdlIGdvdCBoZXJlLCB0aGUgY29kZXBvaW50IE1VU1QgYmUgb3ZlciAweEZGIC0gc28gd2UgbG9vayAKKyAgICAgICAgICAgICAgICAvLyBkaXJlY3RseSBpbiB0aGUgVUNBCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9jb2xsYXRvcl8uVUNBXy5tX3RyaWVfLmdldExlYWRWYWx1ZShjaCk7CisgICAgICAgICAgICAgICAgaWYgKFJ1bGVCYXNlZENvbGxhdG9yLmlzU3BlY2lhbChyZXN1bHQpKSB7IAorICAgICAgICAgICAgICAgICAgICAvLyBVQ0EgYWxzbyBnaXZlcyB1cyBhIHNwZWNpYWwgQ0UKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbmV4dFNwZWNpYWwobV9jb2xsYXRvcl8uVUNBXywgcmVzdWx0LCBjaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7IAorICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPkdldCB0aGUgcHJldmlvdXMgY29sbGF0aW9uIGVsZW1lbnQgaW4gdGhlIHNvdXJjZSBzdHJpbmcuPC9wPgorICAgICAqCisgICAgICogPHA+VGhpcyBpdGVyYXRvciBpdGVyYXRlcyBvdmVyIGEgc2VxdWVuY2Ugb2YgY29sbGF0aW9uIGVsZW1lbnRzCisgICAgICogdGhhdCB3ZXJlIGJ1aWx0IGZyb20gdGhlIHN0cmluZy4gQmVjYXVzZSB0aGVyZSBpc24ndAorICAgICAqIG5lY2Vzc2FyaWx5IGEgb25lLXRvLW9uZSBtYXBwaW5nIGZyb20gY2hhcmFjdGVycyB0byBjb2xsYXRpb24KKyAgICAgKiBlbGVtZW50cywgdGhpcyBkb2Vzbid0IG1lYW4gdGhlIHNhbWUgdGhpbmcgYXMgInJldHVybiB0aGUKKyAgICAgKiBjb2xsYXRpb24gZWxlbWVudCBbb3Igb3JkZXJpbmcgcHJpb3JpdHldIG9mIHRoZSBwcmV2aW91cworICAgICAqIGNoYXJhY3RlciBpbiB0aGUgc3RyaW5nIi48L3A+CisgICAgICoKKyAgICAgKiA8cD5UaGlzIGZ1bmN0aW9uIHVwZGF0ZXMgdGhlIGl0ZXJhdG9yJ3MgaW50ZXJuYWwgcG9pbnRlciB0bworICAgICAqIHBvaW50IHRvIHRoZSBjb2xsYXRpb24gZWxlbWVudCBwcmVjZWRpbmcgdGhlIG9uZSBpdCdzIGN1cnJlbnRseQorICAgICAqIHBvaW50aW5nIHRvIGFuZCB0aGVuIHJldHVybnMgdGhhdCBlbGVtZW50LCB3aGlsZSBuZXh0KCkgcmV0dXJucworICAgICAqIHRoZSBjdXJyZW50IGVsZW1lbnQgYW5kIHRoZW4gdXBkYXRlcyB0aGUgcG9pbnRlci4gVGhpcyBtZWFucworICAgICAqIHRoYXQgd2hlbiB5b3UgY2hhbmdlIGRpcmVjdGlvbiB3aGlsZSBpdGVyYXRpbmcgKGkuZS4sIGNhbGwKKyAgICAgKiBuZXh0KCkgYW5kIHRoZW4gY2FsbCBwcmV2aW91cygpLCBvciBjYWxsIHByZXZpb3VzKCkgYW5kIHRoZW4KKyAgICAgKiBjYWxsIG5leHQoKSksIHlvdSdsbCBnZXQgYmFjayB0aGUgc2FtZSBlbGVtZW50IHR3aWNlLjwvcD4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdGhlIHByZXZpb3VzIGNvbGxhdGlvbiBlbGVtZW50LCBvciBOVUxMT1JERVIgd2hlbiB0aGUgc3RhcnQgb2YgCisgICAgICogICAgICAgICAgICAgdGhlIGl0ZXJhdGlvbiBoYXMgYmVlbiByZWFjaGVkLgorICAgICAqIEBkcmFmdCAyLjIgKi8KKyAgICBwdWJsaWMgaW50IHByZXZpb3VzKCkKKyAgICB7CisgICAgICAgIGlmIChtX3NvdXJjZV8uZ2V0SW5kZXgoKSA8PSAwICYmIG1faXNGb3J3YXJkc18pIHsKKyAgICAgICAgICAgIC8vIGlmIGl0ZXJhdG9yIGlzIG5ldyBvciByZXNldCwgd2UgY2FuIGltbWVkaWF0ZSBwZXJmb3JtICBiYWNrd2FyZHMKKyAgICAgICAgICAgIC8vIGl0ZXJhdGlvbiBldmVuIHdoZW4gdGhlIG9mZnNldCBpcyBub3QgcmlnaHQuCisgICAgICAgICAgICBtX3NvdXJjZV8uc2V0SW5kZXgobV9zb3VyY2VfLmdldEVuZEluZGV4KCkpOworICAgICAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZSgpOworICAgICAgICB9CisgICAgICAgIG1faXNGb3J3YXJkc18gPSBmYWxzZTsKKyAgICAgICAgaW50IHJlc3VsdCA9IE5VTExPUkRFUjsKKyAgICAgICAgaWYgKG1fQ0VCdWZmZXJTaXplXyA+IDApIHsKKyAgICAgICAgICAgIGlmIChtX0NFQnVmZmVyT2Zmc2V0XyA+IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbV9DRUJ1ZmZlcl9bLS0gbV9DRUJ1ZmZlck9mZnNldF9dOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbV9DRUJ1ZmZlclNpemVfID0gMDsgCisgICAgICAgICAgICBtX0NFQnVmZmVyT2Zmc2V0XyA9IDA7CisgICAgICAgIH0KKyAgICAgICAgY2hhciBjaCA9IHByZXZpb3VzQ2hhcigpOyAgICAKKyAgICAgICAgaWYgKGNoID09IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgIHJldHVybiBOVUxMT1JERVI7CisgICAgICAgIH0gCisgICAgICAgIGlmIChtX2NvbGxhdG9yXy5tX2lzSGlyYWdhbmE0XykgeworICAgICAgICAgICAgbV9pc0NvZGVQb2ludEhpcmFnYW5hXyA9IChjaCA+PSAweDMwNDAgJiYgY2ggPD0gMHgzMDlmKTsKKyAgICAgICAgfQorICAgICAgICBpZiAobV9jb2xsYXRvcl8uaXNDb250cmFjdGlvbkVuZChjaCkgJiYgIWlzQmFja3dhcmRzU3RhcnQoKSkgeworICAgICAgICAgICAgcmVzdWx0ID0gcHJldmlvdXNTcGVjaWFsKG1fY29sbGF0b3JfLCBDRV9DT05UUkFDVElPTl8sIGNoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmIChjaCA8PSAweEZGKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9jb2xsYXRvcl8ubV90cmllXy5nZXRMYXRpbjFMaW5lYXJWYWx1ZShjaCk7CisgICAgICAgICAgICAgICAgaWYgKFJ1bGVCYXNlZENvbGxhdG9yLmlzU3BlY2lhbChyZXN1bHQpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHByZXZpb3VzU3BlY2lhbChtX2NvbGxhdG9yXywgcmVzdWx0LCBjaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKG1fYnVmZmVyT2Zmc2V0XyA8IDAgJiYgbV9zb3VyY2VfLmdldEluZGV4KCkgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAvLyB3ZSBub3cgcmVhcnJhbmdlIHVuY29uZGl0aW9uYWxseQorICAgICAgICAgICAgICAgICAgICBpZiAoaXNUaGFpUHJlVm93ZWwobV9zb3VyY2VfLnByZXZpb3VzKCkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBDRV9USEFJXzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fY29sbGF0b3JfLm1fdHJpZV8uZ2V0TGVhZFZhbHVlKGNoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBtX3NvdXJjZV8ubmV4dCgpOyAgICAgICAgICAgCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBtX2NvbGxhdG9yXy5tX3RyaWVfLmdldExlYWRWYWx1ZShjaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChSdWxlQmFzZWRDb2xsYXRvci5pc1NwZWNpYWwocmVzdWx0KSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBwcmV2aW91c1NwZWNpYWwobV9jb2xsYXRvcl8sIHJlc3VsdCwgY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IENFX05PVF9GT1VORF8pIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFpc0JhY2t3YXJkc1N0YXJ0KCkgCisgICAgICAgICAgICAgICAgICAgICAgICAmJiBtX2NvbGxhdG9yXy5pc0NvbnRyYWN0aW9uRW5kKGNoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gQ0VfQ09OVFJBQ1RJT05fOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFJ1bGVCYXNlZENvbGxhdG9yLlVDQV8ubV90cmllXy5nZXRMZWFkVmFsdWUoY2gpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZiAoUnVsZUJhc2VkQ29sbGF0b3IuaXNTcGVjaWFsKHJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHByZXZpb3VzU3BlY2lhbChSdWxlQmFzZWRDb2xsYXRvci5VQ0FfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQsIGNoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgcHJpbWFyeSBvcmRlciBvZiB0aGUgc3BlY2lmaWVkIGNvbGxhdGlvbiBlbGVtZW50LCAKKyAgICAgKiBpLmUuIHRoZSBmaXJzdCAxNiBiaXRzLiAgVGhpcyB2YWx1ZSBpcyB1bnNpZ25lZC4KKyAgICAgKiBAcGFyYW0gY2UgdGhlIGNvbGxhdGlvbiBlbGVtZW50CisgICAgICogQHJldHVybiB0aGUgZWxlbWVudCdzIDE2IGJpdHMgcHJpbWFyeSBvcmRlci4KKyAgICAgKiBAZHJhZnQgMi4yCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgcHJpbWFyeU9yZGVyKGludCBjZSkKKyAgICB7CisgICAgICAgIHJldHVybiAoY2UgJiBSdWxlQmFzZWRDb2xsYXRvci5DRV9QUklNQVJZX01BU0tfKSAKKyAgICAgICAgICAgID4+PiBSdWxlQmFzZWRDb2xsYXRvci5DRV9QUklNQVJZX1NISUZUXzsKKyAgICB9CisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzZWNvbmRhcnkgb3JkZXIgb2YgdGhlIHNwZWNpZmllZCBjb2xsYXRpb24gZWxlbWVudCwKKyAgICAgKiBpLmUuIHRoZSAxNnRoIHRvIDIzdGggYml0cywgaW5jbHVzaXZlLiAgVGhpcyB2YWx1ZSBpcyB1bnNpZ25lZC4KKyAgICAgKiBAcGFyYW0gY2UgdGhlIGNvbGxhdGlvbiBlbGVtZW50CisgICAgICogQHJldHVybiB0aGUgZWxlbWVudCdzIDggYml0cyBzZWNvbmRhcnkgb3JkZXIKKyAgICAgKiBAZHJhZnQgMi4yCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgc2Vjb25kYXJ5T3JkZXIoaW50IGNlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChjZSAmIFJ1bGVCYXNlZENvbGxhdG9yLkNFX1NFQ09OREFSWV9NQVNLXykgCisgICAgICAgICAgICA+PiBSdWxlQmFzZWRDb2xsYXRvci5DRV9TRUNPTkRBUllfU0hJRlRfOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHRlcnRpYXJ5IG9yZGVyIG9mIHRoZSBzcGVjaWZpZWQgY29sbGF0aW9uIGVsZW1lbnQsIGkuZS4gdGhlIGxhc3QKKyAgICAgKiA4IGJpdHMuICBUaGlzIHZhbHVlIGlzIHVuc2lnbmVkLgorICAgICAqIEBwYXJhbSBjZSB0aGUgY29sbGF0aW9uIGVsZW1lbnQKKyAgICAgKiBAcmV0dXJuIHRoZSBlbGVtZW50J3MgOCBiaXRzIHRlcnRpYXJ5IG9yZGVyCisgICAgICogQGRyYWZ0IDIuMgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IHRlcnRpYXJ5T3JkZXIoaW50IGNlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNlICYgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfVEVSVElBUllfTUFTS187CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+IFNldHMgdGhlIGl0ZXJhdG9yIHRvIHBvaW50IHRvIHRoZSBjb2xsYXRpb24gZWxlbWVudAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGNoYXJhY3RlciBhdCB0aGUgc3BlY2lmaWVkIG9mZnNldC4gVGhlCisgICAgICogdmFsdWUgcmV0dXJuZWQgYnkgdGhlIG5leHQgY2FsbCB0byBuZXh0KCkgd2lsbCBiZSB0aGUgY29sbGF0aW9uCisgICAgICogZWxlbWVudCBjb3JyZXNwb25kaW5nIHRvIHRoZSBjaGFyYWN0ZXJzIGF0IG9mZnNldC48L3A+CisgICAgICoKKyAgICAgKiA8cD5JZiBvZmZzZXQgaXMgaW4gdGhlIG1pZGRsZSBvZiBhIGNvbnRyYWN0aW5nIGNoYXJhY3RlcgorICAgICAqIHNlcXVlbmNlLCB0aGUgaXRlcmF0b3IgaXMgYWRqdXN0ZWQgdG8gdGhlIHN0YXJ0IG9mIHRoZQorICAgICAqIGNvbnRyYWN0aW5nIHNlcXVlbmNlLiBUaGlzIG1lYW5zIHRoYXQgZ2V0T2Zmc2V0KCkgaXMgbm90CisgICAgICogZ3VhcmFudGVlZCB0byByZXR1cm4gdGhlIHNhbWUgdmFsdWUgc2V0IGJ5IHRoaXMgbWV0aG9kLjwvcD4KKyAgICAgKgorICAgICAqIDxwPklmIHRoZSBkZWNvbXBvc2l0aW9uIG1vZGUgaXMgb24sIGFuZCBvZmZzZXQgaXMgaW4gdGhlIG1pZGRsZQorICAgICAqIG9mIGEgZGVjb21wb3NpYmxlIHJhbmdlIG9mIHNvdXJjZSB0ZXh0LCB0aGUgaXRlcmF0b3IgbWF5IG5vdAorICAgICAqIHJldHVybiBhIGNvcnJlY3QgcmVzdWx0IGZvciB0aGUgbmV4dCBmb3J3YXJkcyBvciBiYWNrd2FyZHMKKyAgICAgKiBpdGVyYXRpb24uICBUaGUgdXNlciBtdXN0IGVuc3VyZSB0aGF0IHRoZSBvZmZzZXQgaXMgbm90IGluIHRoZQorICAgICAqIG1pZGRsZSBvZiBhIGRlY29tcG9zaWJsZSByYW5nZS48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gb2Zmc2V0IHRoZSBjaGFyYWN0ZXIgb2Zmc2V0IGludG8gdGhlIG9yaWdpbmFsIHNvdXJjZSBzdHJpbmcgdG8gCisgICAgICogICAgICAgIHNldC4gTm90ZSB0aGF0IHRoaXMgaXMgbm90IGFuIG9mZnNldCBpbnRvIHRoZSBjb3JyZXNwb25kaW5nIAorICAgICAqICAgICAgICBzZXF1ZW5jZSBvZiBjb2xsYXRpb24gZWxlbWVudHMuCisgICAgICogQGRyYWZ0IDIuMiAqLworICAgIHB1YmxpYyB2b2lkIHNldE9mZnNldChpbnQgb2Zmc2V0KQorICAgIHsgIAorICAgICAgICBtX3NvdXJjZV8uc2V0SW5kZXgob2Zmc2V0KTsKKyAgICAgICAgY2hhciBjaCA9IG1fc291cmNlXy5jdXJyZW50KCk7CisgICAgICAgIGlmIChtX2NvbGxhdG9yXy5pc1Vuc2FmZShjaCkpIHsKKyAgICAgICAgICAgIC8vIGlmIGl0IGlzIHVuc2FmZSB3ZSBuZWVkIHRvIGNoZWNrIGlmIGl0IGlzIHBhcnQgb2YgYSBjb250cmFjdGlvbgorICAgICAgICAgICAgLy8gb3IgYSBzdXJyb2dhdGUgY2hhcmFjdGVyCisgICAgICAgICAgICBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjaCkpIHsKKyAgICAgICAgICAgICAgICAvLyBpZiBpdCBpcyBhIHN1cnJvZ2F0ZSBwYWlyIHdlIG1vdmUgdXAgb25lIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgIGNoYXIgcHJldmNoID0gbV9zb3VyY2VfLnByZXZpb3VzKCk7CisgICAgICAgICAgICAgICAgaWYgKCFVVEYxNi5pc0xlYWRTdXJyb2dhdGUocHJldmNoKSkgeworICAgICAgICAgICAgICAgICAgICBtX3NvdXJjZV8uc2V0SW5kZXgob2Zmc2V0KTsgLy8gZ28gYmFjayB0byB0aGUgc2FtZSBpbmRleAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8vIGNvdWxkIGJlIHBhcnQgb2YgYSBjb250cmFjdGlvbgorICAgICAgICAgICAgICAgIC8vIGJhY2t1cCB0byBhIHNhZmUgcG9pbnQgYW5kIGl0ZXJhdGUgdGlsbCB3ZSBwYXNzIG9mZnNldAorICAgICAgICAgICAgICAgIHdoaWxlIChtX3NvdXJjZV8uZ2V0SW5kZXgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFtX2NvbGxhdG9yXy5pc1Vuc2FmZShjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNoID0gbV9zb3VyY2VfLnByZXZpb3VzKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICAgICAgICAgICAgICBpbnQgcHJldm9mZnNldCA9IDA7CisgICAgICAgICAgICAgICAgd2hpbGUgKG1fc291cmNlXy5nZXRJbmRleCgpIDw9IG9mZnNldCkgeworICAgICAgICAgICAgICAgICAgICBwcmV2b2Zmc2V0ID0gbV9zb3VyY2VfLmdldEluZGV4KCk7CisgICAgICAgICAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgICAgICAgICB9ICAgICAgIAorICAgICAgICAgICAgICAgIG1fc291cmNlXy5zZXRJbmRleChwcmV2b2Zmc2V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+U2V0IGEgbmV3IHNvdXJjZSBzdHJpbmcgZm9yIGl0ZXJhdGlvbiwgYW5kIHJlc2V0IHRoZSBvZmZzZXQKKyAgICAgKiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIG5ldyBzb3VyY2Ugc3RyaW5nIGZvciBpdGVyYXRpb24uCisgICAgICogQGRyYWZ0IDIuMiAqLworICAgIHB1YmxpYyB2b2lkIHNldFRleHQoU3RyaW5nIHNvdXJjZSkKKyAgICB7CisgICAgICAgIG1fc3JjVXRpbEl0ZXJfLnNldFRleHQoc291cmNlKTsgICAKKyAgICAgICAgbV9zb3VyY2VfID0gbV9zcmNVdGlsSXRlcl87CisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5TZXQgYSBuZXcgc291cmNlIHN0cmluZyBpdGVyYXRvciBmb3IgaXRlcmF0aW9uLCBhbmQgcmVzZXQgdGhlIAorICAgICAqIG9mZnNldCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LgorICAgICAqIDwvcD4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSBuZXcgc291cmNlIHN0cmluZyBpdGVyYXRvciBmb3IgaXRlcmF0aW9uLgorICAgICAqIEBkcmFmdCAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUZXh0KENoYXJhY3Rlckl0ZXJhdG9yIHNvdXJjZSkKKyAgICB7ICAgCisgICAgICAgIG1fc291cmNlXyA9IHNvdXJjZTsgICAgIAorICAgICAgICBtX3NvdXJjZV8uc2V0SW5kZXgobV9zb3VyY2VfLmdldEJlZ2luSW5kZXgoKSk7CisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICB9CisgICAgCisgICAgLy8gcHVibGljIG1pc2NlbGxhbmVvdXMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3RzIHRoYXQgYXJndW1lbnQgb2JqZWN0IGlzIGVxdWFscyB0byB0aGlzIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci4KKyAgICAgKiBJdGVyYXRvcnMgYXJlIGVxdWFsIGlmIHRoZSBvYmplY3RzIHVzZXMgdGhlIHNhbWUgUnVsZUJhc2VkQ29sbGF0b3IsCisgICAgICogdGhlIHNhbWUgc291cmNlIHRleHQgYW5kIGhhdmUgdGhlIHNhbWUgY3VycmVudCBwb3NpdGlvbiBpbiBpdGVyYXRpb24uCisgICAgICogQHBhcmFtIHRoYXQgb2JqZWN0IHRvIHRlc3QgaWYgaXQgaXMgZXF1YWxzIHRvIHRoaXMgCisgICAgICogICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCB0aGF0KSAKKyAgICB7CisgICAgICAgIGlmICh0aGF0ID09IHRoaXMpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICh0aGF0IGluc3RhbmNlb2YgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKSB7CisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgdGhhdGNlaXRlciAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IChDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IpdGhhdDsKKyAgICAgICAgICAgIGlmIChtX2NvbGxhdG9yXy5lcXVhbHModGhhdGNlaXRlci5tX2NvbGxhdG9yXykgCisgICAgICAgICAgICAgICAgJiYgbV9zb3VyY2VfLmVxdWFscyh0aGF0Y2VpdGVyLm1fc291cmNlXykpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIC8vIHByb3RlY3RlZCBjb25zdHJ1Y3RvcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogPHA+Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGNvbnN0cnVjdG9yLiBUaGlzIHRha2VzIGEgc291cmNlCisgICAgICogc3RyaW5nIGFuZCBhIFJ1bGVCYXNlZENvbGxhdG9yLiBUaGUgaXRlcmF0b3Igd2lsbCB3YWxrIHRocm91Z2gKKyAgICAgKiB0aGUgc291cmNlIHN0cmluZyBiYXNlZCBvbiB0aGUgcnVsZXMgZGVmaW5lZCBieSB0aGUKKyAgICAgKiBjb2xsYXRvci4gSWYgdGhlIHNvdXJjZSBzdHJpbmcgaXMgZW1wdHksIE5VTExPUkRFUiB3aWxsIGJlCisgICAgICogcmV0dXJuZWQgb24gdGhlIGZpcnN0IGNhbGwgdG8gbmV4dCgpLjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIHNvdXJjZSBzdHJpbmcuCisgICAgICogQHBhcmFtIGNvbGxhdG9yIHRoZSBSdWxlQmFzZWRDb2xsYXRvcgorICAgICAqIEBkcmFmdCAyLjIgKi8KKyAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoU3RyaW5nIHNvdXJjZSwgUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IpIAorICAgIHsKKyAgICAgICAgbV9zcmNVdGlsSXRlcl8gPSBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3Ioc291cmNlKTsKKyAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgbV9zb3VyY2VfID0gbV9zcmNVdGlsSXRlcl87CisgICAgICAgIG1fY29sbGF0b3JfID0gY29sbGF0b3I7CisgICAgICAgIG1fQ0VCdWZmZXJfID0gbmV3IGludFtDRV9CVUZGRVJfSU5JVF9TSVpFX107CisgICAgICAgIG1fYnVmZmVyXyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgbV91dGlsU3BlY2lhbEJhY2tVcF8gPSBuZXcgQmFja3VwKCk7CisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5Db2xsYXRpb25FbGVtZW50SXRlcmF0b3IgY29uc3RydWN0b3IuIFRoaXMgdGFrZXMgYSBzb3VyY2UKKyAgICAgKiBjaGFyYWN0ZXIgaXRlcmF0b3IgYW5kIGEgUnVsZUJhc2VkQ29sbGF0b3IuIFRoZSBpdGVyYXRvciB3aWxsCisgICAgICogd2FsayB0aHJvdWdoIHRoZSBzb3VyY2Ugc3RyaW5nIGJhc2VkIG9uIHRoZSBydWxlcyBkZWZpbmVkIGJ5CisgICAgICogdGhlIGNvbGxhdG9yLiBJZiB0aGUgc291cmNlIHN0cmluZyBpcyBlbXB0eSwgTlVMTE9SREVSIHdpbGwgYmUKKyAgICAgKiByZXR1cm5lZCBvbiB0aGUgZmlyc3QgY2FsbCB0byBuZXh0KCkuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIHNvdXJjZSB0aGUgc291cmNlIHN0cmluZyBpdGVyYXRvci4KKyAgICAgKiBAcGFyYW0gY29sbGF0b3IgdGhlIFJ1bGVCYXNlZENvbGxhdG9yCisgICAgICogQGRyYWZ0IDIuMiAqLworICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihDaGFyYWN0ZXJJdGVyYXRvciBzb3VyY2UsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvcikgCisgICAgeworICAgICAgICBtX3NyY1V0aWxJdGVyXyA9IG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcigiIik7CisgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIG1fc291cmNlXyA9IHNvdXJjZTsKKyAgICAgICAgbV9jb2xsYXRvcl8gPSBjb2xsYXRvcjsKKyAgICAgICAgbV9DRUJ1ZmZlcl8gPSBuZXcgaW50W0NFX0JVRkZFUl9JTklUX1NJWkVfXTsKKyAgICAgICAgbV9idWZmZXJfID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBtX3V0aWxTcGVjaWFsQmFja1VwXyA9IG5ldyBCYWNrdXAoKTsKKyAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZSgpOworICAgIH0KKyAgICAKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgIC8qKgorICAgICAqIHRydWUgaWYgY3VycmVudCBjb2RlcG9pbnQgd2FzIEhpcmFnYW5hCisgICAgICovCisgICAgYm9vbGVhbiBtX2lzQ29kZVBvaW50SGlyYWdhbmFfOworICAgIC8qKgorICAgICAqIFBvc2l0aW9uIGluIHRoZSBvcmlnaW5hbCBzdHJpbmcgdGhhdCBzdGFydHMgd2l0aCBhIG5vbi1GQ0Qgc2VxdWVuY2UKKyAgICAgKi8KKyAgICBpbnQgbV9GQ0RTdGFydF87CisgICAgLyoqIAorICAgICAqIFRoaXMgaXMgdGhlIENFIGZyb20gQ0VzIGJ1ZmZlciB0aGF0IHNob3VsZCBiZSByZXR1cm5lZC4gCisgICAgICogSW5pdGlhbCB2YWx1ZSBpcyAwLgorICAgICAqIEZvcndhcmRzIGl0ZXJhdGlvbiB3aWxsIGVuZCB3aXRoIG1fQ0VCdWZmZXJPZmZzZXRfID09IG1fQ0VCdWZmZXJTaXplXywKKyAgICAgKiBiYWNrd2FyZHMgd2lsbCBlbmQgd2l0aCBtX0NFQnVmZmVyT2Zmc2V0XyA9PSAwLgorICAgICAqIFRoZSBuZXh0L3ByZXZpb3VzIGFmdGVyIHdlIHJlYWNoIHRoZSBlbmQvYmVnaW5uaW5nIG9mIHRoZSBtX0NFQnVmZmVyXworICAgICAqIHdpbGwgY2F1c2UgdGhpcyB2YWx1ZSB0byBiZSByZXNldCB0byAwLgorICAgICAqLworICAgIGludCBtX0NFQnVmZmVyT2Zmc2V0XzsKKworICAgIC8qKiAKKyAgICAgKiBUaGlzIGlzIHRoZSBwb3NpdGlvbiB0byB3aGljaCB3ZSBoYXZlIHN0b3JlZCBwcm9jZXNzZWQgQ0VzLgorICAgICAqIEluaXRpYWwgdmFsdWUgaXMgMC4KKyAgICAgKiBUaGUgbmV4dC9wcmV2aW91cyBhZnRlciB3ZSByZWFjaCB0aGUgZW5kL2JlZ2lubmluZyBvZiB0aGUgbV9DRUJ1ZmZlcl8KKyAgICAgKiB3aWxsIGNhdXNlIHRoaXMgdmFsdWUgdG8gYmUgcmVzZXQgdG8gMC4KKyAgICAgKi8KKyAgICBpbnQgbV9DRUJ1ZmZlclNpemVfOyAKKyAgICAKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY29sbGF0b3IgdXNlZC4KKyAgICAgKiBJbnRlcm5hbCB1c2UsIGFsbCBkYXRhIG1lbWJlcnMgd2lsbCBiZSByZXNldCB0byB0aGUgZGVmYXVsdCB2YWx1ZXMKKyAgICAgKiBAcGFyYW0gY29sbGF0b3IgdG8gc2V0CisgICAgICovCisgICAgdm9pZCBzZXRDb2xsYXRvcihSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvcikgCisgICAgeworICAgICAgICBtX2NvbGxhdG9yXyA9IGNvbGxhdG9yOworICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIDxwPlNldHMgdGhlIGl0ZXJhdG9yIHRvIHBvaW50IHRvIHRoZSBjb2xsYXRpb24gZWxlbWVudCBjb3JyZXNwb25kaW5nIHRvCisgICAgICogdGhlIHNwZWNpZmllZCBjaGFyYWN0ZXIgKHRoZSBwYXJhbWV0ZXIgaXMgYSBDSEFSQUNURVIgb2Zmc2V0IGluIHRoZQorICAgICAqIG9yaWdpbmFsIHN0cmluZywgbm90IGFuIG9mZnNldCBpbnRvIGl0cyBjb3JyZXNwb25kaW5nIHNlcXVlbmNlIG9mCisgICAgICogY29sbGF0aW9uIGVsZW1lbnRzKS4gVGhlIHZhbHVlIHJldHVybmVkIGJ5IHRoZSBuZXh0IGNhbGwgdG8gbmV4dCgpCisgICAgICogd2lsbCBiZSB0aGUgY29sbGF0aW9uIGVsZW1lbnQgY29ycmVzcG9uZGluZyB0byB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uCisgICAgICogaW4gdGhlIHRleHQuIFVubGlrZSB0aGUgcHVibGljIG1ldGhvZCBzZXRPZmZzZXQoaW50KSwgdGhpcyBtZXRob2QgZG9lcyAKKyAgICAgKiBub3QgdHJ5IHRvIHJlYWRqdXN0IHRoZSBvZmZzZXQgdG8gdGhlIHN0YXJ0IG9mIGEgY29udHJhY3Rpbmcgc2VxdWVuY2UuCisgICAgICogZ2V0T2Zmc2V0KCkgaXMgZ3VhcmFudGVlZCB0byByZXR1cm4gdGhlIHNhbWUgdmFsdWUgYXMgd2FzIHBhc3NlZCB0byBhIAorICAgICAqIHByZWNlZGluZyBjYWxsIHRvIHNldE9mZnNldCgpLjwvcD4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IG5ldyBjaGFyYWN0ZXIgb2Zmc2V0IGludG8gdGhlIG9yaWdpbmFsIHRleHQgdG8gc2V0LiAKKyAgICAgKiBAZHJhZnQgMi4yCisgICAgICovCisgICAgdm9pZCBzZXRFeGFjdE9mZnNldChpbnQgb2Zmc2V0KQorICAgIHsgIAorICAgICAgICBtX3NvdXJjZV8uc2V0SW5kZXgob2Zmc2V0KTsKKyAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZSgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDaGVja3MgaWYgaXRlcmF0b3IgaXMgaW4gdGhlIGJ1ZmZlciB6b25lCisgICAgICogQHJldHVybiB0cnVlIGlmIGl0ZXJhdG9yIGlzIGluIGJ1ZmZlciB6b25lLCBmYWxzZSBvdGhlcndpc2UKKyAgICAgKi8KKyAgICBib29sZWFuIGlzSW5CdWZmZXIoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fYnVmZmVyT2Zmc2V0XyA+IDA7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIERldGVybWluZSBpZiBhIGNoYXJhY3RlciBpcyBhIFRoYWkgdm93ZWwsIHdoaWNoIHNvcnRzIGFmdGVyIGl0cyBiYXNlIAorICAgICAqIGNvbnNvbmFudC4KKyAgICAgKiBAcGFyYW0gY2ggY2hhcmFjdGVyIHRvIHRlc3QKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgY2ggaXMgYSBUaGFpIHByZXZvd2VsLCBmYWxzZSBvdGhlcndpc2UKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbiBpc1RoYWlQcmVWb3dlbChjaGFyIGNoKQorICAgIHsgCisgICAgICAgIHJldHVybiAoY2ggPj0gMHhlNDAgJiYgY2ggPD0gMHhlNDQpIHx8IChjaCA+PSAweGVjMCAmJiBjaCA8PSAweGVjNCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIDxwPlNldHMgdGhlIGl0ZXJhdG9yIHRvIHBvaW50IHRvIHRoZSBjb2xsYXRpb24gZWxlbWVudCBjb3JyZXNwb25kaW5nIHRvCisgICAgICogdGhlIHNwZWNpZmllZCBjaGFyYWN0ZXIgKHRoZSBwYXJhbWV0ZXIgaXMgYSBDSEFSQUNURVIgb2Zmc2V0IGluIHRoZQorICAgICAqIG9yaWdpbmFsIHN0cmluZywgbm90IGFuIG9mZnNldCBpbnRvIGl0cyBjb3JyZXNwb25kaW5nIHNlcXVlbmNlIG9mCisgICAgICogY29sbGF0aW9uIGVsZW1lbnRzKS4gVGhlIHZhbHVlIHJldHVybmVkIGJ5IHRoZSBuZXh0IGNhbGwgdG8gbmV4dCgpCisgICAgICogd2lsbCBiZSB0aGUgY29sbGF0aW9uIGVsZW1lbnQgY29ycmVzcG9uZGluZyB0byB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uCisgICAgICogaW4gdGhlIHRleHQuIFVubGlrZSB0aGUgcHVibGljIG1ldGhvZCBzZXRPZmZzZXQoaW50KSwgdGhpcyBtZXRob2QgZG9lcyAKKyAgICAgKiBub3QgdHJ5IHRvIHJlYWRqdXN0IHRoZSBvZmZzZXQgdG8gdGhlIHN0YXJ0IG9mIGEgY29udHJhY3Rpbmcgc2VxdWVuY2UuCisgICAgICogZ2V0T2Zmc2V0KCkgaXMgZ3VhcmFudGVlZCB0byByZXR1cm4gdGhlIHNhbWUgdmFsdWUgYXMgd2FzIHBhc3NlZCB0byBhIAorICAgICAqIHByZWNlZGluZyBjYWxsIHRvIHNldE9mZnNldCgpLjwvcD4KKyAgICAgKiA8L3A+CisgICAgICogQHBhcmFtIHNvdXJjZSB0aGUgbmV3IHNvdXJjZSBzdHJpbmcgaXRlcmF0b3IgZm9yIGl0ZXJhdGlvbi4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IHRvIHRoZSBzb3VyY2UKKyAgICAgKiBAZHJhZnQgMi4yCisgICAgICovCisgICAgdm9pZCBzZXRUZXh0KENoYXJhY3Rlckl0ZXJhdG9yIHNvdXJjZSwgaW50IG9mZnNldCkKKyAgICB7CisgICAgICAgIG1fc291cmNlXyA9IHNvdXJjZTsgICAgIAorICAgICAgICBtX3NvdXJjZV8uc2V0SW5kZXgob2Zmc2V0KTsKKyAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZSgpOworICAgIH0KKyAgICAKKyAgICAvLyBwcml2YXRlIGlubmVyIGNsYXNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogQmFja3VwIGRhdGEgY2xhc3MKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBCYWNrdXAKKyAgICB7CisgICAgICAgIC8vIHByb3RlY3RlZCBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEJhY2t1cCBub24gRkNEIHNlcXVlbmNlIGxpbWl0CisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgaW50IG1fRkNETGltaXRfOworICAgICAgICAvKioKKyAgICAgICAgICogQmFja3VwIG5vbiBGQ0Qgc2VxdWVuY2Ugc3RhcnQKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBpbnQgbV9GQ0RTdGFydF87CisgICAgICAgIC8qKgorICAgICAgICAgKiBCYWNrdXAgaWYgcHJldmlvdXMgQ29kZXBvaW50IGlzIEhpcmFnYW5hIHF1YXRlbmFyeQorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gbV9pc0NvZGVQb2ludEhpcmFnYW5hXzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEJhY2t1cCBidWZmZXIgcG9zaXRpb24gCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgaW50IG1fYnVmZmVyT2Zmc2V0XzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEJhY2t1cCBzb3VyY2UgaXRlcmF0b3Igb2Zmc2V0CisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgaW50IG1fb2Zmc2V0XzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEJhY2t1cCBidWZmZXIgY29udGVudHMKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBTdHJpbmdCdWZmZXIgbV9idWZmZXJfOworICAgICAgICAgICAgICAgIAorICAgICAgICAvLyBwcm90ZWN0ZWQgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEVtcHR5IGNvbnN0cnVjdG9yCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgQmFja3VwKCkKKyAgICAgICAgeworICAgICAgICAgICAgbV9idWZmZXJfID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICB9CisgICAgfQorICAgIC8vIGVuZCBpbm5lciBjbGFzcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBEaXJlY3Rpb24gb2YgdHJhdmVsCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIG1faXNGb3J3YXJkc187CisgICAgLyoqCisgICAgICogU291cmNlIHN0cmluZyBpdGVyYXRvcgorICAgICAqLworICAgIHByaXZhdGUgQ2hhcmFjdGVySXRlcmF0b3IgbV9zb3VyY2VfOworICAgIC8qKiAKKyAgICAgKiBUaGlzIGlzIHBvc2l0aW9uIHRvIHRoZSBtX2J1ZmZlcl8sIC0xIGlmIGl0ZXJhdG9yIGlzIG5vdCBpbiBtX2J1ZmZlcl8KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX2J1ZmZlck9mZnNldF87CisgICAgLyoqCisgICAgICogQnVmZmVyIGZvciB0ZW1wb3Jhcnkgc3RvcmFnZSBvZiBub3JtYWxpemVkIGNoYXJhY3RlcnMsIGRpc2NvbnRpZ3VvdXMKKyAgICAgKiBjaGFyYWN0ZXJzIGFuZCBUaGFpIGNoYXJhY3RlcnMKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciBtX2J1ZmZlcl87CisgICAgLyoqIAorICAgICAqIFBvc2l0aW9uIGluIHRoZSBvcmlnaW5hbCBzdHJpbmcgdG8gY29udGludWUgZm9yd2FyZCBGQ0QgY2hlY2sgZnJvbS4gCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9GQ0RMaW1pdF87IAorICAgIC8qKgorICAgICAqIFRoZSBjb2xsYXRvciB0aGlzIGl0ZXJhdG9yIGlzIGJhc2VkIG9uCisgICAgICovIAorICAgIHByaXZhdGUgUnVsZUJhc2VkQ29sbGF0b3IgbV9jb2xsYXRvcl87CisgICAgLyoqCisgICAgICogdHJ1ZSBpZiBIaXJhZ2FuYSBxdWF0ZW5hcnkgaXMgb24KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gbV9pc0hpcmFnYW5hNF87CisgICAgLyoqCisgICAgICogQ0UgYnVmZmVyCisgICAgICovIAorICAgIHByaXZhdGUgaW50IG1fQ0VCdWZmZXJfW107IAorICAgIC8qKiAKKyAgICAgKiBJbiByZWFsaXR5IHdlIHNob3VsZCBub3QgaGF2ZSB0byBkZWFsIHdpdGggZXhwYW5zaW9uIHNlcXVlbmNlcyBsb25nZXIgCisgICAgICogdGhlbiAxNi4gSG93ZXZlciB0aGlzIHZhbHVlIGNhbiBiZSBjaGFuZ2UgaWYgYSBiaWdnZXIgYnVmZmVyIGlzIG5lZWRlZC4KKyAgICAgKiBOb3RlLCBpZiB0aGUgc2l6ZSBpcyBjaGFuZ2UgdG8gdG9vIHNtYWxsIGEgbnVtYmVyLCBCSUcgdHJvdWJsZS4KKyAgICAgKiBSZWFzb25hYmxlIHNtYWxsIHZhbHVlIGlzIGFyb3VuZCAxMCwgaWYgdGhlcmUncyBubyBBcmFiaWMgb3Igb3RoZXIgCisgICAgICogZnVua3kgY29sbGF0aW9ucyB0aGF0IGhhdmUgbG9uZyBleHBhbnNpb24gc2VxdWVuY2UuIFRoaXMgaXMgdGhlIGxvbmdlc3QgCisgICAgICogZXhwYW5zaW9uIHNlcXVlbmNlIHRoaXMgY2FuIGhhbmRsZSB3aXRob3V0IGJvbWJpbmcgb3V0LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9CVUZGRVJfSU5JVF9TSVpFXyA9IDUxMjsKKyAgICAvKioKKyAgICAgKiBCYWNrdXAgc3RvcmFnZSBmb3Igc3BlY2lhbCBwcm9jZXNzaW5nIGlubmVyIGNhc2VzCisgICAgICovCisgICAgcHJpdmF0ZSBCYWNrdXAgbV91dGlsU3BlY2lhbEJhY2tVcF87CisgICAgLyoqCisgICAgICogQmFja3VwIHN0b3JhZ2UgaW4gc3BlY2lhbCBwcm9jZXNzaW5nIGVudHJ5IHN0YXRlCisgICAgICovCisgICAgcHJpdmF0ZSBCYWNrdXAgbV91dGlsU3BlY2lhbEVudHJ5QmFja1VwXzsKKyAgICAvKioKKyAgICAgKiBCYWNrdXAgc3RvcmFnZSBpbiBzcGVjaWFsIHByb2Nlc3NpbmcgZGlzY29udGlndW91cyBzdGF0ZQorICAgICAqLworICAgIHByaXZhdGUgQmFja3VwIG1fdXRpbFNwZWNpYWxEaXNjb250aWd1b3VzQmFja1VwXzsKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IAorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgbV9zcmNVdGlsSXRlcl87CisgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgbV91dGlsU3RyaW5nQnVmZmVyXzsKKyAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciBtX3V0aWxTa2lwcGVkQnVmZmVyXzsKKyAgICBwcml2YXRlIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBtX3V0aWxDb2xFSXRlcl87CisgICAgLyoqCisgICAgICogT25lIGNoYXJhY3RlciBiZWZvcmUgdGhlIGZpcnN0IG5vbi16ZXJvIGNvbWJpbmluZyBjbGFzcyBjaGFyYWN0ZXIKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRlVMTF9aRVJPX0NPTUJJTklOR19DTEFTU19GQVNUX0xJTUlUXyA9IDB4QzA7CisgICAgLyoqCisgICAgICogT25lIGNoYXJhY3RlciBiZWZvcmUgdGhlIGZpcnN0IGNoYXJhY3RlciB3aXRoIGxlYWRpbmcgbm9uLXplcm8gY29tYmluaW5nIAorICAgICAqIGNsYXNzIAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMRUFEX1pFUk9fQ09NQklOSU5HX0NMQVNTX0ZBU1RfTElNSVRfID0gMHgzMDA7CisgICAgLyoqCisgICAgICogTWFzayBmb3IgdGhlIGxhc3QgYnl0ZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMQVNUX0JZVEVfTUFTS18gPSAweEZGOworICAgIC8qKgorICAgICAqIFNoaWZ0IHZhbHVlIGZvciB0aGUgc2Vjb25kIGxhc3QgYnl0ZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTRUNPTkRfTEFTVF9CWVRFX1NISUZUXyA9IDg7CisKKyAgICAvLyBzcGVjaWFsIGNlIHZhbHVlcyBhbmQgdGFncyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX05PVF9GT1VORF8gPSAweEYwMDAwMDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9FWFBBTlNJT05fID0gMHhGMTAwMDAwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfQ09OVFJBQ1RJT05fID0gMHhGMjAwMDAwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfVEhBSV8gPSAweEYzMDAwMDAwOworICAgIC8qKgorICAgICAqIEluZGljYXRlcyB0aGUgbGFzdCBjZSBoYXMgYmVlbiBjb25zdW1lZC4gQ29tcGFyZSB3aXRoIE5VTExPUkRFUi4gCisgICAgICogTlVMTE9SREVSIGlzIHJldHVybmVkIGlmIGVycm9yIG9jY3Vycy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfTk9fTU9SRV9DRVNfID0gMHgwMDAxMDEwMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfTk9fTU9SRV9DRVNfUFJJTUFSWV8gPSAweDAwMDEwMDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9OT19NT1JFX0NFU19TRUNPTkRBUllfID0gMHgwMDAwMDEwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfTk9fTU9SRV9DRVNfVEVSVElBUllfID0gMHgwMDAwMDAwMTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9OT1RfRk9VTkRfVEFHXyA9IDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX0VYUEFOU0lPTl9UQUdfID0gMTsgICAgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX0NPTlRSQUNUSU9OX1RBR18gPSAyOyAgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX1RIQUlfVEFHXyA9IDM7CisgICAgLyoqIAorICAgICAqIENoYXJzZXQgcHJvY2Vzc2luZywgbm90IHlldCBpbXBsZW1lbnRlZCAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfQ0hBUlNFVF9UQUdfID0gNDsgICAgICAgICAKKyAgICAvKiogCisgICAgICogQUMwMC1EN0FGCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX0hBTkdVTF9TWUxMQUJMRV9UQUdfID0gNjsKKyAgICAvKioKKyAgICAgKiBEODAwLURCRkYKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfTEVBRF9TVVJST0dBVEVfVEFHXyA9IDc7ICAKKyAgICAvKiogCisgICAgICogREMwMC1ERkZGCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX1RSQUlMX1NVUlJPR0FURV9UQUdfID0gODsgCisgICAgLyoqIAorICAgICAqIDB4MzQwMC0weDREQjUsIDB4NEUwMC0weDlGQTUsIDB4RjkwMC0weEZBMkQKKyAgICAgKi8gICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX0NKS19JTVBMSUNJVF9UQUdfID0gOTsgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX0lNUExJQ0lUX1RBR18gPSAxMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfU1BFQ19QUk9DX1RBR18gPSAxMTsKKyAgICAvKiogCisgICAgICogVGhpcyBpcyBhIDMgYnl0ZSBwcmltYXJ5IHdpdGggc3RhcnRpbmcgc2Vjb25kYXJpZXMgYW5kIHRlcnRpYXJpZXMuCisgICAgICogSXQgZml0cyBpbiBhIHNpbmdsZSAzMiBiaXQgQ0UgYW5kIGlzIHVzZWQgaW5zdGVhZCBvZiBleHBhbnNpb24gdG8gc2F2ZQorICAgICAqIHNwYWNlIHdpdGhvdXQgYWZmZWN0aW5nIHRoZSBwZXJmb3JtYW5jZSAoaG9wZWZ1bGx5KS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfTE9OR19QUklNQVJZX1RBR18gPSAxMjsgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX0NFX1RBR1NfQ09VTlQgPSAxMzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfQllURV9DT01NT05fID0gMHgwNTsKKyAgICAgICAgCisgICAgLy8gZW5kIHNwZWNpYWwgY2UgdmFsdWVzIGFuZCB0YWdzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSEFOR1VMX1NCQVNFXyA9IDB4QUMwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSEFOR1VMX0xCQVNFXyA9IDB4MTEwMDsgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEhBTkdVTF9WQkFTRV8gPSAweDExNjE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEhBTkdVTF9UQkFTRV8gPSAweDExQTc7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEhBTkdVTF9WQ09VTlRfID0gMjE7IAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIQU5HVUxfVENPVU5UXyA9IDI4OyAgICAKKyAgICAKKyAgICAvLyBDSksgc3R1ZmYgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19CQVNFXyA9IDB4NEUwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0xJTUlUXyA9IDB4OUZGRisxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfQ09NUEFUX1VTRURfQkFTRV8gPSAweEZBMEU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19DT01QQVRfVVNFRF9MSU1JVF8gPSAweEZBMkYgKyAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfQV9CQVNFXyA9IDB4MzQwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0FfTElNSVRfID0gMHg0REJGICsgMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0JfQkFTRV8gPSAweDIwMDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfQl9MSU1JVF8gPSAweDJBNkRGICsgMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTk9OX0NKS19PRkZTRVRfID0gMHgxMTAwMDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8vIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmVzZXQgdGhlIGl0ZXJhdG9yIGludGVybmFsbHkKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgdXBkYXRlSW50ZXJuYWxTdGF0ZSgpCisgICAgeworICAgICAgICBtX2lzQ29kZVBvaW50SGlyYWdhbmFfID0gZmFsc2U7CisgICAgICAgIG1fYnVmZmVyXy5zZXRMZW5ndGgoMCk7CisgICAgICAgIG1fYnVmZmVyT2Zmc2V0XyA9IC0xOyAKKyAgICAgICAgbV9DRUJ1ZmZlck9mZnNldF8gPSAwOworICAgICAgICBtX0NFQnVmZmVyU2l6ZV8gPSAwOyAKKyAgICAgICAgbV9GQ0RMaW1pdF8gPSAtMTsKKyAgICAgICAgbV9GQ0RTdGFydF8gPSBtX3NvdXJjZV8uZ2V0RW5kSW5kZXgoKTsKKyAgICAgICAgbV9pc0hpcmFnYW5hNF8gPSBtX2NvbGxhdG9yXy5tX2lzSGlyYWdhbmE0XzsKKyAgICAgICAgbV9pc0ZvcndhcmRzXyA9IHRydWU7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBCYWNrdXAgdGhlIGN1cnJlbnQgaW50ZXJuYWwgc3RhdGUKKyAgICAgKiBAcGFyYW0gYmFja3VwIG9iamVjdCB0byBzdG9yZSB0aGUgZGF0YQorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBiYWNrdXBJbnRlcm5hbFN0YXRlKEJhY2t1cCBiYWNrdXApCisgICAgeworICAgICAgICBiYWNrdXAubV9vZmZzZXRfID0gbV9zb3VyY2VfLmdldEluZGV4KCk7CisgICAgICAgIGJhY2t1cC5tX0ZDRExpbWl0XyA9IG1fRkNETGltaXRfOworICAgICAgICBiYWNrdXAubV9GQ0RTdGFydF8gPSBtX0ZDRFN0YXJ0XzsKKyAgICAgICAgYmFja3VwLm1faXNDb2RlUG9pbnRIaXJhZ2FuYV8gPSBtX2lzQ29kZVBvaW50SGlyYWdhbmFfOworICAgICAgICBiYWNrdXAubV9idWZmZXJPZmZzZXRfID0gbV9idWZmZXJPZmZzZXRfOworICAgICAgICBiYWNrdXAubV9idWZmZXJfLnNldExlbmd0aCgwKTsKKyAgICAgICAgaWYgKG1fYnVmZmVyT2Zmc2V0XyA+PSAwKSB7CisgICAgICAgICAgICAvLyBqZGsgMS4zLjEgZG9lcyBub3QgaGF2ZSBhcHBlbmQoU3RyaW5nQnVmZmVyKSB5ZXQKKyAgICAgICAgICAgIGlmKElDVURlYnVnLmlzSkRLMTRPckhpZ2hlcil7CisgICAgICAgICAgICAgICAgYmFja3VwLm1fYnVmZmVyXy5hcHBlbmQobV9idWZmZXJfKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGJhY2t1cC5tX2J1ZmZlcl8uYXBwZW5kKG1fYnVmZmVyXy50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAvKioKKyAgICAgKiBVcGRhdGUgdGhlIGl0ZXJhdG9yIGludGVybmFsbHkgd2l0aCBiYWNrZWQtdXAgc3RhdGUKKyAgICAgKiBAcGFyYW0gYmFja3VwIG9iamVjdCB0aGF0IHN0b3JlZCB0aGUgZGF0YQorICAgICAqLworICAgIHByaXZhdGUgdm9pZCB1cGRhdGVJbnRlcm5hbFN0YXRlKEJhY2t1cCBiYWNrdXApCisgICAgeworICAgICAgICBtX3NvdXJjZV8uc2V0SW5kZXgoYmFja3VwLm1fb2Zmc2V0Xyk7CisgICAgICAgIG1faXNDb2RlUG9pbnRIaXJhZ2FuYV8gPSBiYWNrdXAubV9pc0NvZGVQb2ludEhpcmFnYW5hXzsKKyAgICAgICAgbV9idWZmZXJPZmZzZXRfID0gYmFja3VwLm1fYnVmZmVyT2Zmc2V0XzsKKyAgICAgICAgbV9GQ0RMaW1pdF8gPSBiYWNrdXAubV9GQ0RMaW1pdF87CisgICAgICAgIG1fRkNEU3RhcnRfID0gYmFja3VwLm1fRkNEU3RhcnRfOworICAgICAgICBtX2J1ZmZlcl8uc2V0TGVuZ3RoKDApOworICAgICAgICBpZiAobV9idWZmZXJPZmZzZXRfID49IDApIHsKKyAgICAgICAgICAgIC8vIGpkayAxLjMuMSBkb2VzIG5vdCBoYXZlIGFwcGVuZChTdHJpbmdCdWZmZXIpIHlldAorICAgICAgICAgICAgbV9idWZmZXJfLmFwcGVuZChiYWNrdXAubV9idWZmZXJfLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBBIGZhc3QgY29tYmluaW5nIGNsYXNzIHJldHJpZXZhbCBzeXN0ZW0uCisgICAgICogQHBhcmFtIGNoIFVURjE2IGNoYXJhY3RlcgorICAgICAqIEByZXR1cm4gY29tYmluaW5nIGNsYXNzIG9mIGNoCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZ2V0Q29tYmluaW5nQ2xhc3MoY2hhciBjaCkgCisgICAgeworICAgICAgICBpZiAoY2ggPj0gTEVBRF9aRVJPX0NPTUJJTklOR19DTEFTU19GQVNUX0xJTUlUXyAmJiAKKyAgICAgICAgICAgIG1fY29sbGF0b3JfLmlzVW5zYWZlKGNoKSkgeworICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLmdldENvbWJpbmluZ0NsYXNzKGNoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIDxwPkluY3JlbWVudGFsIG5vcm1hbGl6YXRpb24sIHRoaXMgaXMgYW4gZXNzZW50aWFsIG9wdGltaXphdGlvbi4KKyAgICAgKiBBc3N1bWluZyBGQ0QgY2hlY2tzIGhhcyBiZWVuIGRvbmUsIG5vcm1hbGl6ZSB0aGUgbm9uLUZDRCBjaGFyYWN0ZXJzIGludG8gCisgICAgICogdGhlIGJ1ZmZlci4KKyAgICAgKiBTb3VyY2Ugb2Zmc2V0cyBwb2ludHMgdG8gdGhlIGN1cnJlbnQgcHJvY2Vzc2luZyBjaGFyYWN0ZXIuCisgICAgICogPC9wPgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBub3JtYWxpemUoKSAKKyAgICB7CisgICAgICAgIGludCBzaXplID0gbV9GQ0RMaW1pdF8gLSBtX0ZDRFN0YXJ0XzsKKyAgICAgICAgbV9idWZmZXJfLnNldExlbmd0aCgwKTsKKyAgICAgICAgbV9zb3VyY2VfLnNldEluZGV4KG1fRkNEU3RhcnRfKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpICsrKSB7CisgICAgICAgICAgICBtX2J1ZmZlcl8uYXBwZW5kKG1fc291cmNlXy5jdXJyZW50KCkpOworICAgICAgICAgICAgbV9zb3VyY2VfLm5leHQoKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgZGVjb21wID0gTm9ybWFsaXplci5kZWNvbXBvc2UobV9idWZmZXJfLnRvU3RyaW5nKCksIGZhbHNlKTsKKyAgICAgICAgbV9idWZmZXJfLnNldExlbmd0aCgwKTsKKyAgICAgICAgbV9idWZmZXJfLmFwcGVuZChkZWNvbXApOworICAgICAgICBtX2J1ZmZlck9mZnNldF8gPSAwOworICAgIH0KKyAgICAgICAgCisgICAgLyoqIAorICAgICAqIDxwPkluY3JlbWVudGFsIEZDRCBjaGVjayBhbmQgbm9ybWFsaXphdGlvbi4gR2V0cyB0aGUgbmV4dCBiYXNlIGNoYXJhY3RlcgorICAgICAqIHBvc2l0aW9uIGFuZCBkZXRlcm1pbmVzIGlmIHRoZSBpbi1iZXR3ZWVuIGNoYXJhY3RlcnMgbmVlZHMgbm9ybWFsaXphdGlvbi4KKyAgICAgKiA8L3A+IAorICAgICAqIDxwPldoZW4gZW50ZXJpbmcsIHRoZSBzdGF0ZSBpcyBrbm93biB0byBiZSB0aGlzOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+V2UgYXJlIHdvcmtpbmcgb24gc291cmNlIHN0cmluZywgbm90IHRoZSBidWZmZXIuCisgICAgICogPGxpPlRoZSBsZWFkaW5nIGNvbWJpbmluZyBjbGFzcyBmcm9tIHRoZSBjdXJyZW50IGNoYXJhY3RlciBpcyAwIG9yIHRoZSAKKyAgICAgKiAgICAgdHJhaWxpbmcgY29tYmluaW5nIGNsYXNzIG9mIHRoZSBwcmV2aW91cyBjaGFyIHdhcyB6ZXJvLgorICAgICAqIDwvdWw+CisgICAgICogSW5jb21pbmcgc291cmNlIG9mZnNldHMgcG9pbnRzIHRvIHRoZSBjdXJyZW50IHByb2Nlc3NpbmcgY2hhcmFjdGVyLgorICAgICAqIFJldHVybiBzb3VyY2Ugb2Zmc2V0cyBwb2ludHMgdG8gdGhlIGN1cnJlbnQgcHJvY2Vzc2luZyBjaGFyYWN0ZXIuCisgICAgICogPC9wPgorICAgICAqIEBwYXJhbSBjaCBjdXJyZW50IGNoYXJhY3RlcgorICAgICAqIEBwYXJhbSBvZmZzZXQgY3VycmVudCBjaGFyYWN0ZXIgb2Zmc2V0CisgICAgICogQHJldHVybiB0cnVlIGlmIEZDRENoZWNrIHBhc3NlcywgZmFsc2Ugb3RoZXJ3aXNlCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIEZDRENoZWNrKGNoYXIgY2gsIGludCBvZmZzZXQpIAorICAgIHsKKyAgICAgICAgYm9vbGVhbiByZXN1bHQgPSB0cnVlOworCisgICAgICAgIC8vIEdldCB0aGUgdHJhaWxpbmcgY29tYmluaW5nIGNsYXNzIG9mIHRoZSBjdXJyZW50IGNoYXJhY3Rlci4gIAorICAgICAgICAvLyBJZiBpdCdzIHplcm8sIHdlIGFyZSBPSy4KKyAgICAgICAgbV9GQ0RTdGFydF8gPSBvZmZzZXQ7CisgICAgICAgIG1fc291cmNlXy5zZXRJbmRleChvZmZzZXQpOworICAgICAgICAvLyB0cmllIGFjY2VzcworICAgICAgICBjaGFyIGZjZCA9IE5vcm1hbGl6ZXJJbXBsLmdldEZDRDE2KGNoKTsKKyAgICAgICAgaWYgKGZjZCAhPSAwICYmIFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjaCkpIHsKKyAgICAgICAgICAgIGNoID0gbV9zb3VyY2VfLm5leHQoKTsgLy8gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSBoYXMgMCBmY2QKKyAgICAgICAgICAgIGlmIChVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGNoKSkgeworICAgICAgICAgICAgICAgIGZjZCA9IE5vcm1hbGl6ZXJJbXBsLmdldEZDRDE2RnJvbVN1cnJvZ2F0ZVBhaXIoZmNkLCBjaCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGZjZCA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpbnQgcHJldlRyYWlsQ0MgPSBmY2QgJiBMQVNUX0JZVEVfTUFTS187CisKKyAgICAgICAgaWYgKHByZXZUcmFpbENDICE9IDApIHsKKyAgICAgICAgICAgIC8vIFRoZSBjdXJyZW50IGNoYXIgaGFzIGEgbm9uLXplcm8gdHJhaWxpbmcgQ0MuIFNjYW4gZm9yd2FyZCB1bnRpbCAKKyAgICAgICAgICAgIC8vIHdlIGZpbmQgYSBjaGFyIHdpdGggYSBsZWFkaW5nIGNjIG9mIHplcm8uCisgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgIGNoID0gbV9zb3VyY2VfLm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAoY2ggPT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gdHJpZSBhY2Nlc3MKKyAgICAgICAgICAgICAgICBmY2QgPSBOb3JtYWxpemVySW1wbC5nZXRGQ0QxNihjaCk7CisgICAgICAgICAgICAgICAgaWYgKGZjZCAhPSAwICYmIFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgY2ggPSBtX3NvdXJjZV8ubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZjZCA9IE5vcm1hbGl6ZXJJbXBsLmdldEZDRDE2RnJvbVN1cnJvZ2F0ZVBhaXIoZmNkLCBjaCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmY2QgPSAwOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGludCBsZWFkQ0MgPSBmY2QgPj4+IFNFQ09ORF9MQVNUX0JZVEVfU0hJRlRfOworICAgICAgICAgICAgICAgIGlmIChsZWFkQ0MgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIGEgYmFzZSBjaGFyYWN0ZXIsIHdlIHN0b3AgdGhlIEZDRCBjaGVja3MKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKGxlYWRDQyA8IHByZXZUcmFpbENDKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHByZXZUcmFpbENDID0gZmNkICYgTEFTVF9CWVRFX01BU0tfOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG1fRkNETGltaXRfID0gbV9zb3VyY2VfLmdldEluZGV4KCk7CisgICAgICAgIG1fc291cmNlXy5zZXRJbmRleChtX0ZDRFN0YXJ0Xyk7CisgICAgICAgIG1fc291cmNlXy5uZXh0KCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgICAgICAKKyAgICAvKiogCisgICAgICogPHA+TWV0aG9kIHRyaWVzIHRvIGZldGNoIHRoZSBuZXh0IGNoYXJhY3RlciB0aGF0IGlzIGluIGZjZCBmb3JtLjwvcD4KKyAgICAgKiA8cD5Ob3JtYWxpemF0aW9uIGlzIGRvbmUgaWYgcmVxdWlyZWQuPC9wPgorICAgICAqIDxwPk9mZnNldHMgYXJlIHJldHVybmVkIGF0IHRoZSBuZXh0IGNoYXJhY3Rlci48L3A+CisgICAgICogQHJldHVybiBuZXh0IGZjZCBjaGFyYWN0ZXIKKyAgICAgKi8KKyAgICBwcml2YXRlIGNoYXIgbmV4dENoYXIoKQorICAgIHsKKyAgICAgICAgY2hhciByZXN1bHQ7CisgICAgICAgIAorICAgICAgICAvLyBsb29wIGhhbmRsZXMgdGhlIG5leHQgY2hhcmFjdGVyIHdoZXRoZXIgaXQgaXMgaW4gdGhlIGJ1ZmZlciBvciBub3QuCisgICAgICAgIGlmIChtX2J1ZmZlck9mZnNldF8gPCAwKSB7CisgICAgICAgICAgICAvLyB3ZSdyZSB3b3JraW5nIG9uIHRoZSBzb3VyY2UgYW5kIG5vdCBub3JtYWxpemluZy4gZmFzdCBwYXRoLgorICAgICAgICAgICAgLy8gbm90ZSBUaGFpIHByZS12b3dlbCByZW9yZGVyaW5nIHVzZXMgYnVmZmVyIHRvbworICAgICAgICAgICAgcmVzdWx0ID0gbV9zb3VyY2VfLmN1cnJlbnQoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vIHdlIGFyZSBpbiB0aGUgYnVmZmVyLCBidWZmZXIgb2Zmc2V0IHdpbGwgbmV2ZXIgYmUgMCBoZXJlCisgICAgICAgICAgICBpZiAobV9idWZmZXJPZmZzZXRfID49IG1fYnVmZmVyXy5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIC8vIE51bGwgbWFya2VkIGVuZCBvZiBidWZmZXIsIHJldmVydCB0byB0aGUgc291cmNlIHN0cmluZyBhbmQKKyAgICAgICAgICAgICAgICAvLyBsb29wIGJhY2sgdG8gdG9wIHRvIHRyeSBhZ2FpbiB0byBnZXQgYSBjaGFyYWN0ZXIuCisgICAgICAgICAgICAgICAgbV9zb3VyY2VfLnNldEluZGV4KG1fRkNETGltaXRfKTsKKyAgICAgICAgICAgICAgICBtX2J1ZmZlck9mZnNldF8gPSAtMTsKKyAgICAgICAgICAgICAgICBtX2J1ZmZlcl8uc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgIHJldHVybiBuZXh0Q2hhcigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG1fYnVmZmVyXy5jaGFyQXQobV9idWZmZXJPZmZzZXRfICsrKTsKKyAgICAgICAgfQorICAgICAgICBpbnQgc3RhcnRvZmZzZXQgPSBtX3NvdXJjZV8uZ2V0SW5kZXgoKTsKKyAgICAgICAgaWYgKHJlc3VsdCA8IEZVTExfWkVST19DT01CSU5JTkdfQ0xBU1NfRkFTVF9MSU1JVF8gIAorICAgICAgICAgICAgLy8gRmFzdCBmY2Qgc2FmZSBwYXRoLiB0cmFpbCBjb21iaW5pbmcgY2xhc3MgPT0gMC4KKyAgICAgICAgICAgIHx8IG1fY29sbGF0b3JfLmdldERlY29tcG9zaXRpb24oKSA9PSBDb2xsYXRvci5OT19ERUNPTVBPU0lUSU9OIAorICAgICAgICAgICAgfHwgbV9idWZmZXJPZmZzZXRfID49IDAgfHwgbV9GQ0RMaW1pdF8gPiBzdGFydG9mZnNldCkgeworICAgICAgICAgICAgLy8gc2tpcCB0aGUgZmNkIGNoZWNrcyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9zb3VyY2VfLm5leHQoKTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgaWYgKHJlc3VsdCA8IExFQURfWkVST19DT01CSU5JTkdfQ0xBU1NfRkFTVF9MSU1JVF8pIHsKKyAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gcGVlayBhdCB0aGUgbmV4dCBjaGFyYWN0ZXIgaW4gb3JkZXIgdG8gdGVsbCBpZiB3ZSBhcmUgCisgICAgICAgICAgICAvLyBGQ0QKKyAgICAgICAgICAgIGNoYXIgbmV4dCA9IG1fc291cmNlXy5uZXh0KCk7CisgICAgICAgICAgICBpZiAobmV4dCA9PSBDaGFyYWN0ZXJJdGVyYXRvci5ET05FIAorICAgICAgICAgICAgICAgIHx8IG5leHQgPD0gTEVBRF9aRVJPX0NPTUJJTklOR19DTEFTU19GQVNUX0xJTUlUXykgeworICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7IC8vIGVuZCBvZiBzb3VyY2Ugc3RyaW5nIGFuZCBpZiBuZXh0IGNoYXJhY3RlciAKKyAgICAgICAgICAgICAgICAvLyBzdGFydHMgd2l0aCBhIGJhc2UgY2hhcmFjdGVyIGlzIGFsd2F5cyBmY2QuCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIE5lZWQgYSBtb3JlIGNvbXBsZXRlIEZDRCBjaGVjayBhbmQgcG9zc2libGUgbm9ybWFsaXphdGlvbi4KKyAgICAgICAgaWYgKCFGQ0RDaGVjayhyZXN1bHQsIHN0YXJ0b2Zmc2V0KSkgeworICAgICAgICAgICAgbm9ybWFsaXplKCk7CisgICAgICAgICAgICByZXN1bHQgPSBtX2J1ZmZlcl8uY2hhckF0KDApOworICAgICAgICAgICAgbV9idWZmZXJPZmZzZXRfID0gMTsgICAgICAgICAgCisgICAgICAgIH0gICAgICAgCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiA8cD5JbmNyZW1lbnRhbCBub3JtYWxpemF0aW9uLCB0aGlzIGlzIGFuIGVzc2VudGlhbCBvcHRpbWl6YXRpb24uCisgICAgICogQXNzdW1pbmcgRkNEIGNoZWNrcyBoYXMgYmVlbiBkb25lLCBub3JtYWxpemUgdGhlIG5vbi1GQ0QgY2hhcmFjdGVycyBpbnRvIAorICAgICAqIHRoZSBidWZmZXIuCisgICAgICogU291cmNlIG9mZnNldHMgcG9pbnRzIHRvIHRoZSBjdXJyZW50IHByb2Nlc3NpbmcgY2hhcmFjdGVyLjwvcD4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgbm9ybWFsaXplQmFja3dhcmRzKCkKKyAgICB7CisgICAgICAgIG5vcm1hbGl6ZSgpOworICAgICAgICBtX2J1ZmZlck9mZnNldF8gPSBtX2J1ZmZlcl8ubGVuZ3RoKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+SW5jcmVtZW50YWwgYmFja3dhcmRzIEZDRCBjaGVjayBhbmQgbm9ybWFsaXphdGlvbi4gR2V0cyB0aGUgcHJldmlvdXMgCisgICAgICogYmFzZSBjaGFyYWN0ZXIgcG9zaXRpb24gYW5kIGRldGVybWluZXMgaWYgdGhlIGluLWJldHdlZW4gY2hhcmFjdGVycyAKKyAgICAgKiBuZWVkcyBub3JtYWxpemF0aW9uLgorICAgICAqIDwvcD4gCisgICAgICogPHA+V2hlbiBlbnRlcmluZywgdGhlIHN0YXRlIGlzIGtub3duIHRvIGJlIHRoaXM6CisgICAgICogPHVsPgorICAgICAqIDxsaT5XZSBhcmUgd29ya2luZyBvbiBzb3VyY2Ugc3RyaW5nLCBub3QgdGhlIGJ1ZmZlci4KKyAgICAgKiA8bGk+VGhlIHRyYWlsaW5nIGNvbWJpbmluZyBjbGFzcyBmcm9tIHRoZSBjdXJyZW50IGNoYXJhY3RlciBpcyAwIG9yIHRoZSAKKyAgICAgKiAgICAgbGVhZGluZyBjb21iaW5pbmcgY2xhc3Mgb2YgdGhlIG5leHQgY2hhciB3YXMgemVyby4KKyAgICAgKiA8L3VsPgorICAgICAqIElucHV0IHNvdXJjZSBvZmZzZXRzIHBvaW50cyB0byB0aGUgcHJldmlvdXMgY2hhcmFjdGVyLgorICAgICAqIFJldHVybiBzb3VyY2Ugb2Zmc2V0cyBwb2ludHMgdG8gdGhlIGN1cnJlbnQgcHJvY2Vzc2luZyBjaGFyYWN0ZXIuCisgICAgICogPC9wPgorICAgICAqIEBwYXJhbSBjaCBjdXJyZW50IGNoYXJhY3RlcgorICAgICAqIEBwYXJhbSBvZmZzZXQgY3VycmVudCBjaGFyYWN0ZXIgb2Zmc2V0CisgICAgICogQHJldHVybiB0cnVlIGlmIEZDRENoZWNrIHBhc3NlcywgZmFsc2Ugb3RoZXJ3aXNlCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIEZDRENoZWNrQmFja3dhcmRzKGNoYXIgY2gsIGludCBvZmZzZXQpCisgICAgeworICAgICAgICBib29sZWFuIHJlc3VsdCA9IHRydWU7ICAgIAorICAgICAgICBjaGFyIGZjZCA9IDA7IAorICAgICAgICBtX0ZDRExpbWl0XyA9IG9mZnNldCArIDE7CisgICAgICAgIG1fc291cmNlXy5zZXRJbmRleChvZmZzZXQpOworICAgICAgICBpZiAoIVVURjE2LmlzU3Vycm9nYXRlKGNoKSkgeworICAgICAgICAgICAgZmNkID0gTm9ybWFsaXplckltcGwuZ2V0RkNEMTYoY2gpOworICAgICAgICB9IAorICAgICAgICBlbHNlIGlmIChVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGNoKSAmJiBtX0ZDRExpbWl0XyA+IDApIHsgCisgICAgICAgICAgICAvLyBub3RlIHRyYWlsIHN1cnJvZ2F0ZSBjaGFyYWN0ZXJzIGdldHMgMCBmY2QKKyAgICAgICAgICAgIGNoYXIgdHJhaWxjaCA9IGNoOworICAgICAgICAgICAgY2ggPSBtX3NvdXJjZV8ucHJldmlvdXMoKTsgIAorICAgICAgICAgICAgaWYgKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjaCkpIHsKKyAgICAgICAgICAgICAgICBmY2QgPSBOb3JtYWxpemVySW1wbC5nZXRGQ0QxNihjaCk7CisgICAgICAgICAgICAgICAgaWYgKGZjZCAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGZjZCA9IE5vcm1hbGl6ZXJJbXBsLmdldEZDRDE2RnJvbVN1cnJvZ2F0ZVBhaXIoZmNkLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFpbGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgZmNkID0gMDsgLy8gdW5wYWlyZWQgc3Vycm9nYXRlIAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgbGVhZENDID0gZmNkID4+PiBTRUNPTkRfTEFTVF9CWVRFX1NISUZUXzsKKyAgICAgICAgLy8gVGhlIGN1cnJlbnQgY2hhciBoYXMgYSBub24temVybyBsZWFkaW5nIGNvbWJpbmluZyBjbGFzcy4KKyAgICAgICAgLy8gU2NhbiBiYWNrd2FyZCB1bnRpbCB3ZSBmaW5kIGEgY2hhciB3aXRoIGEgdHJhaWxpbmcgY2Mgb2YgemVyby4KKyAgICAgICAgCisgICAgICAgIHdoaWxlIChsZWFkQ0MgIT0gMCkgeworICAgICAgICAgICAgb2Zmc2V0ID0gbV9zb3VyY2VfLmdldEluZGV4KCk7CisgICAgICAgICAgICBpZiAob2Zmc2V0ID09IDApIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNoID0gbV9zb3VyY2VfLnByZXZpb3VzKCk7CisgICAgICAgICAgICBpZiAoIVVURjE2LmlzU3Vycm9nYXRlKGNoKSkgeworICAgICAgICAgICAgICAgIGZjZCA9IE5vcm1hbGl6ZXJJbXBsLmdldEZDRDE2KGNoKTsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIGlmIChVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGNoKSAmJiBtX3NvdXJjZV8uZ2V0SW5kZXgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBjaGFyIHRyYWlsID0gY2g7CisgICAgICAgICAgICAgICAgY2ggPSBtX3NvdXJjZV8ucHJldmlvdXMoKTsKKyAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGNoKSkgeworICAgICAgICAgICAgICAgICAgICBmY2QgPSBOb3JtYWxpemVySW1wbC5nZXRGQ0QxNihjaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChmY2QgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBmY2QgPSBOb3JtYWxpemVySW1wbC5nZXRGQ0QxNkZyb21TdXJyb2dhdGVQYWlyKGZjZCwgdHJhaWwpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGZjZCA9IDA7IC8vIHVucGFpcmVkIHN1cnJvZ2F0ZQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IHByZXZUcmFpbENDID0gZmNkICYgTEFTVF9CWVRFX01BU0tfOworICAgICAgICAgICAgaWYgKGxlYWRDQyA8IHByZXZUcmFpbENDKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsZWFkQ0MgPSBmY2QgPj4+IFNFQ09ORF9MQVNUX0JZVEVfU0hJRlRfOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBzdG9yaW5nIGNoYXJhY3RlciB3aXRoIDAgbGVhZCBmY2Qgb3IgdGhlIDFzdCBhY2NlbnQgd2l0aCBhIGJhc2UgCisgICAgICAgIC8vIGNoYXJhY3RlciBiZWZvcmUgaXQgICAKKyAgICAgICAgaWYgKGZjZCA9PSAwKSB7CisgICAgICAgICAgICBtX0ZDRFN0YXJ0XyA9IG9mZnNldDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG1fRkNEU3RhcnRfID0gbV9zb3VyY2VfLmdldEluZGV4KCk7CisgICAgICAgIH0gCisgICAgICAgIG1fc291cmNlXy5zZXRJbmRleChtX0ZDRExpbWl0Xyk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgICAgICAKKyAgICAvKiogCisgICAgICogPHA+TWV0aG9kIHRyaWVzIHRvIGZldGNoIHRoZSBwcmV2aW91cyBjaGFyYWN0ZXIgdGhhdCBpcyBpbiBmY2QgZm9ybS48L3A+CisgICAgICogPHA+Tm9ybWFsaXphdGlvbiBpcyBkb25lIGlmIHJlcXVpcmVkLjwvcD4KKyAgICAgKiA8cD5PZmZzZXRzIGFyZSByZXR1cm5lZCBhdCB0aGUgY3VycmVudCBjaGFyYWN0ZXIuPC9wPgorICAgICAqIEByZXR1cm4gcHJldmlvdXMgZmNkIGNoYXJhY3RlcgorICAgICAqLworICAgIHByaXZhdGUgY2hhciBwcmV2aW91c0NoYXIoKQorICAgIHsKKyAgICAgICAgaWYgKG1fYnVmZmVyT2Zmc2V0XyA+PSAwKSB7CisgICAgICAgICAgICBtX2J1ZmZlck9mZnNldF8gLS07CisgICAgICAgICAgICBpZiAobV9idWZmZXJPZmZzZXRfID49IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbV9idWZmZXJfLmNoYXJBdChtX2J1ZmZlck9mZnNldF8pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gQXQgdGhlIHN0YXJ0IG9mIGJ1ZmZlciwgcm91dGUgYmFjayB0byBzdHJpbmcuCisgICAgICAgICAgICAgICAgbV9idWZmZXJfLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICBpZiAobV9GQ0RTdGFydF8gPT0gbV9zb3VyY2VfLmdldEJlZ2luSW5kZXgoKSkgeworICAgICAgICAgICAgICAgICAgICBtX0ZDRFN0YXJ0XyA9IC0xOworICAgICAgICAgICAgICAgICAgICBtX3NvdXJjZV8uc2V0SW5kZXgobV9zb3VyY2VfLmdldEJlZ2luSW5kZXgoKSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBDaGFyYWN0ZXJJdGVyYXRvci5ET05FOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbV9GQ0RMaW1pdF8gPSBtX0ZDRFN0YXJ0XzsKKyAgICAgICAgICAgICAgICAgICAgbV9zb3VyY2VfLnNldEluZGV4KG1fRkNEU3RhcnRfKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzQ2hhcigpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAgICAKKyAgICAgICAgY2hhciByZXN1bHQgPSBtX3NvdXJjZV8ucHJldmlvdXMoKTsKKyAgICAgICAgaW50IHN0YXJ0b2Zmc2V0ID0gbV9zb3VyY2VfLmdldEluZGV4KCk7CisgICAgICAgIGlmIChyZXN1bHQgPCBMRUFEX1pFUk9fQ09NQklOSU5HX0NMQVNTX0ZBU1RfTElNSVRfIAorICAgICAgICAgICAgfHwgbV9jb2xsYXRvcl8uZ2V0RGVjb21wb3NpdGlvbigpID09IENvbGxhdG9yLk5PX0RFQ09NUE9TSVRJT04gCisgICAgICAgICAgICB8fCBtX0ZDRFN0YXJ0XyA8PSBzdGFydG9mZnNldCB8fCBtX3NvdXJjZV8uZ2V0SW5kZXgoKSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgIGNoYXIgY2ggPSBtX3NvdXJjZV8ucHJldmlvdXMoKTsKKyAgICAgICAgaWYgKGNoIDwgRlVMTF9aRVJPX0NPTUJJTklOR19DTEFTU19GQVNUX0xJTUlUXykgeworICAgICAgICAgICAgLy8gaWYgcHJldmlvdXMgY2hhcmFjdGVyIGlzIEZDRCAKKyAgICAgICAgICAgIG1fc291cmNlXy5uZXh0KCk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgIC8vIE5lZWQgYSBtb3JlIGNvbXBsZXRlIEZDRCBjaGVjayBhbmQgcG9zc2libGUgbm9ybWFsaXphdGlvbi4KKyAgICAgICAgaWYgKCFGQ0RDaGVja0JhY2t3YXJkcyhyZXN1bHQsIHN0YXJ0b2Zmc2V0KSkgeworICAgICAgICAgICAgbm9ybWFsaXplQmFja3dhcmRzKCk7CisgICAgICAgICAgICBtX2J1ZmZlck9mZnNldF8gLS07CisgICAgICAgICAgICByZXN1bHQgPSBtX2J1ZmZlcl8uY2hhckF0KG1fYnVmZmVyT2Zmc2V0Xyk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgIAkvLyBmY2QgY2hlY2tzIGFsd2F5IHJlc2V0IG1fc291cmNlXyB0byB0aGUgbGltaXQgb2YgdGhlIEZDRAorICAgICAgICAJbV9zb3VyY2VfLnNldEluZGV4KHN0YXJ0b2Zmc2V0KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyBpZiBpdCBpcyBhdCB0aGUgc3RhcnQgb2Ygc291cmNlIGl0ZXJhdGlvbgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBpdGVyYXRvciBhdCB0aGUgc3RhcnQsIGZhbHNlIG90aGVyd2lzZQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBpc0JhY2t3YXJkc1N0YXJ0KCkgCisgICAgeworICAgICAgICByZXR1cm4gKG1fYnVmZmVyT2Zmc2V0XyA8IDAgJiYgbV9zb3VyY2VfLmdldEluZGV4KCkgPT0gMCkKKyAgICAgICAgICAgIHx8IChtX2J1ZmZlck9mZnNldF8gPT0gMCAmJiBtX0ZDRFN0YXJ0XyA8PSAwKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIENoZWNrcyBpZiBpdGVyYXRvciBpcyBhdCB0aGUgZW5kIG9mIGl0cyBzb3VyY2Ugc3RyaW5nLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBpdCBpcyBhdCB0aGUgZW5kLCBmYWxzZSBvdGhlcndpc2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gaXNFbmQoKSAKKyAgICB7CisgICAgICAgIGlmIChtX2J1ZmZlck9mZnNldF8gPj0gMCkgeworICAgICAgICAgICAgaWYgKG1fYnVmZmVyT2Zmc2V0XyAhPSBtX2J1ZmZlcl8ubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBhdCBlbmQgb2YgYnVmZmVyLiBjaGVjayBpZiBmY2QgaXMgYXQgdGhlIGVuZAorICAgICAgICAgICAgICAgIHJldHVybiBtX0ZDRExpbWl0XyA9PSBtX3NvdXJjZV8uZ2V0RW5kSW5kZXgoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbV9zb3VyY2VfLmdldEVuZEluZGV4KCkgPT0gbV9zb3VyY2VfLmdldEluZGV4KCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiA8cD5TcGVjaWFsIENFIG1hbmFnZW1lbnQgZm9yIHN1cnJvZ2F0ZXM8L3A+CisgICAgICogPHA+TGVhZCBzdXJyb2dhdGUgaXMgZW5jb3VudGVyZWQuIENFIHRvIGJlIHJldHJpZXZlZCBieSB1c2luZyB0aGUgCisgICAgICogZm9sbG93aW5nIGNvZGUgdW5pdC4gSWYgbmV4dCBjaGFyYWN0ZXIgaXMgYSB0cmFpbCBzdXJyb2dhdGUsIGJvdGggCisgICAgICogY2hhcmFjdGVycyB3aWxsIGJlIGNvbWJpbmVkIHRvIHJldHJpZXZlIHRoZSBDRSwgb3RoZXJ3aXNlIGNvbXBsZXRlbHkgCisgICAgICogaWdub3JhYmxlIChVQ0Egc3BlY2lmaWNhdGlvbikgaXMgcmV0dXJuZWQuPC9wPgorICAgICAqIEBwYXJhbSBjb2xsYXRvciBjb2xsYXRvciB0byB1c2UKKyAgICAgKiBAcGFyYW0gY2UgY3VycmVudCBDRQorICAgICAqIEBwYXJhbSB0cmFpbCBjaGFyYWN0ZXIKKyAgICAgKiBAcmV0dXJuIG5leHQgQ0UgZm9yIHRoZSBzdXJyb2dhdGUgY2hhcmFjdGVycworICAgICAqLworICAgIHByaXZhdGUgZmluYWwgaW50IG5leHRTdXJyb2dhdGUoUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IsIGludCBjZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIHRyYWlsKQorICAgIHsKKyAgICAgICAgaWYgKCFVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHRyYWlsKSkgeworICAgICAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZShtX3V0aWxTcGVjaWFsQmFja1VwXyk7CisgICAgICAgICAgICByZXR1cm4gSUdOT1JBQkxFOworICAgICAgICB9IAorICAgICAgICAvLyBUT0RPOiBDRSBjb250YWluIHRoZSBkYXRhIGZyb20gdGhlIHByZXZpb3VzIENFICsgdGhlIG1hc2suIAorICAgICAgICAvLyBJdCBzaG91bGQgYXQgbGVhc3QgYmUgdW5tYXNrZWQKKyAgICAgICAgaW50IHJlc3VsdCA9IGNvbGxhdG9yLm1fdHJpZV8uZ2V0VHJhaWxWYWx1ZShjZSwgdHJhaWwpOworICAgICAgICBpZiAocmVzdWx0ID09IENFX05PVF9GT1VORF8pIHsgCisgICAgICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKG1fdXRpbFNwZWNpYWxCYWNrVXBfKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgQ0UgZXhwYW5zaW9uIG9mZnNldAorICAgICAqIEBwYXJhbSBjb2xsYXRvciBjdXJyZW50IGNvbGxhdG9yCisgICAgICogQHBhcmFtIGNlIGNlIHRvIHRlc3QKKyAgICAgKiBAcmV0dXJuIGV4cGFuc2lvbiBvZmZzZXQKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBnZXRFeHBhbnNpb25PZmZzZXQoUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IsIGludCBjZSkKKyAgICB7CisgICAgICAgIHJldHVybiAoKGNlICYgMHhGRkZGRjApID4+IDQpIC0gY29sbGF0b3IubV9leHBhbnNpb25PZmZzZXRfOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU3dhcHMgdGhlIFRoYWkgYW5kIExhb3MgY2hhcmFjdGVycyBhbmQgcmV0dXJucyB0aGUgQ0VzLgorICAgICAqIEBwYXJhbSBjb2xsYXRvciBjb2xsYXRvciB0byB1c2UKKyAgICAgKiBAcGFyYW0gY2UgY3VycmVudCBjZQorICAgICAqIEBwYXJhbSBjaCBjdXJyZW50IGNoYXJhY3RlcgorICAgICAqIEByZXR1cm4gbmV4dCBDRSBmb3IgVGhhaSBjaGFyYWN0ZXJzCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbmV4dFRoYWkoUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IsIGludCBjZSwgY2hhciBjaCkKKyAgICB7CisgICAgICAgIGlmIChtX2J1ZmZlck9mZnNldF8gIT0gLTEgLy8gYWxyZWFkeSBzd2FwcGVkCisgICAgICAgICAgICB8fCBpc0VuZCgpKSB7CisgICAgICAgICAgICAvLyBUcmVhdCBUaGFpIGFzIGEgbGVuZ3RoIG9uZSBleHBhbnNpb24KKyAgICAgICAgICAgIC8vIGZpbmQgdGhlIG9mZnNldCB0byBleHBhbnNpb24gdGFibGUKKyAgICAgICAgICAgIC8vIHdlIG5vdyByZWFycmFuZ2UgdW5jb25kaXRpb25hbGx5IHNvIGRvIG5vdCBjaGVjayBiYXNlIGNvbnNvbmFudAorICAgICAgICAgICAgcmV0dXJuIGNvbGxhdG9yLm1fZXhwYW5zaW9uX1tnZXRFeHBhbnNpb25PZmZzZXQoY29sbGF0b3IsIGNlKV07IAorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gc3dhcCB0aGUgcHJldm93ZWwgYW5kIHRoZSBmb2xsb3dpbmcgY2hhciBpbnRvIHRoZSAKKyAgICAgICAgICAgIC8vIGJ1ZmZlciB3aXRoIHRoZWlyIG9yZGVyIHN3YXBwZWQKKyAgICAgICAgICAgIC8vIGJ1ZmZlciBpcyBhbHdheXMgY2xlYW4gd2hlbiB3ZSBhcmUgaW4gdGhlIHNvdXJjZSBzdHJpbmcKKyAgICAgICAgICAgIG1fYnVmZmVyXy5hcHBlbmQobmV4dENoYXIoKSk7CisgICAgICAgICAgICBtX2J1ZmZlcl8uYXBwZW5kKGNoKTsKKyAgICAgICAgICAgIG1fRkNETGltaXRfID0gbV9zb3VyY2VfLmdldEluZGV4KCk7CisgICAgICAgICAgICBtX0ZDRFN0YXJ0XyA9IG1fRkNETGltaXRfIC0gMjsgCisgICAgICAgICAgICBtX2J1ZmZlck9mZnNldF8gPSAwOworICAgICAgICAgICAgcmV0dXJuIElHTk9SQUJMRTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgY29udHJhY3Rpb24gY2Ugb2Zmc2V0CisgICAgICogQHBhcmFtIGNvbGxhdG9yIGN1cnJlbnQgY29sbGF0b3IKKyAgICAgKiBAcGFyYW0gY2UgY3VycmVudCBjZQorICAgICAqIEByZXR1cm4gY29udHJhY3Rpb24gb2Zmc2V0CisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZ2V0Q29udHJhY3Rpb25PZmZzZXQoUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IsIGludCBjZSkKKyAgICB7CisgICAgICAgIHJldHVybiAoY2UgJiAweEZGRkZGRikgLSBjb2xsYXRvci5tX2NvbnRyYWN0aW9uT2Zmc2V0XzsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIENoZWNrcyBpZiBDRSBpcyBhIHNwZWNpYWwgdGFnIENFCisgICAgICogQHBhcmFtIGNlIHRvIGNoZWNrCisgICAgICogQHJldHVybiB0cnVlIGlmIENFIGlzIGEgc3BlY2lhbCB0YWcgQ0UsIGZhbHNlIG90aGVyd2lzZQorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBpc1NwZWNpYWxQcmVmaXhUYWcoaW50IGNlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFJ1bGVCYXNlZENvbGxhdG9yLmlzU3BlY2lhbChjZSkgJiYgCisgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5nZXRUYWcoY2UpID09IENFX1NQRUNfUFJPQ19UQUdfOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogPHA+U3BlY2lhbCBwcm9jZXNzaW5nIGdldHRpbmcgYSBDRSB0aGF0IGlzIHByZWNlZGVkIGJ5IGEgY2VydGFpbiAKKyAgICAgKiBwcmVmaXguPC9wPgorICAgICAqIDxwPlVzZWQgZm9yIG9wdGltaXppbmcgSmFwYW5lc2UgbGVuZ3RoIGFuZCBpdGVyYXRpb24gbWFya3MuIFdoZW4gYSAKKyAgICAgKiBzcGVjaWFsIHByb2Nlc3NpbmcgdGFnIGlzIGVuY291bnRlcmVkLCBpdGVyYXRlIGJhY2t3YXJkcyB0byBzZWUgaWYgCisgICAgICogdGhlcmUncyBhIG1hdGNoLjwvcD4gCisgICAgICogPHA+Q29udHJhY3Rpb24gdGFibGVzIGFyZSB1c2VkLCBwcmVmaXggZGF0YSBpcyBzdG9yZWQgYmFja3dhcmRzIGluIHRoZSAKKyAgICAgKiB0YWJsZS48L3A+CisgICAgICogQHBhcmFtIGNvbGxhdG9yIGNvbGxhdG9yIHRvIHVzZQorICAgICAqIEBwYXJhbSBjZSBjdXJyZW50IGNlCisgICAgICogQHBhcmFtIGVudHJ5YmFja3VwIGVudHJ5IGJhY2t1cCBpdGVyYXRvciBzdGF0dXMKKyAgICAgKiBAcmV0dXJuIG5leHQgY29sbGF0aW9uIGVsZW1lbnQKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBuZXh0U3BlY2lhbFByZWZpeChSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciwgaW50IGNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhY2t1cCBlbnRyeWJhY2t1cCkKKyAgICB7CisgICAgICAgIGJhY2t1cEludGVybmFsU3RhdGUobV91dGlsU3BlY2lhbEJhY2tVcF8pOworICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKGVudHJ5YmFja3VwKTsKKyAgICAgICAgcHJldmlvdXNDaGFyKCk7CisgICAgICAgIC8vIFdlIHdhbnQgdG8gbG9vayBhdCB0aGUgY2hhcmFjdGVyIHdoZXJlIHdlIGVudGVyZWQKKyAgICAgICAgCisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAvLyBUaGlzIGxvb3Agd2lsbCBydW4gb25jZSBwZXIgc291cmNlIHN0cmluZyBjaGFyYWN0ZXIsIGZvciBhcyAKKyAgICAgICAgICAgIC8vIGxvbmcgYXMgd2UgYXJlIG1hdGNoaW5nIGEgcG90ZW50aWFsIGNvbnRyYWN0aW9uIHNlcXVlbmNlICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBGaXJzdCB3ZSBwb3NpdGlvbiBvdXJzZWx2ZXMgYXQgdGhlIGJlZ2luaW5nIG9mIGNvbnRyYWN0aW9uIAorICAgICAgICAgICAgLy8gc2VxdWVuY2UgCisgICAgICAgICAgICBpbnQgZW50cnlvZmZzZXQgPSBnZXRDb250cmFjdGlvbk9mZnNldChjb2xsYXRvciwgY2UpOworICAgICAgICAgICAgaW50IG9mZnNldCA9IGVudHJ5b2Zmc2V0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChpc0JhY2t3YXJkc1N0YXJ0KCkpIHsKKyAgICAgICAgICAgICAgICBjZSA9IGNvbGxhdG9yLm1fY29udHJhY3Rpb25DRV9bb2Zmc2V0XTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNoYXIgcHJldmlvdXMgPSBwcmV2aW91c0NoYXIoKTsKKyAgICAgICAgICAgIHdoaWxlIChwcmV2aW91cyA+IGNvbGxhdG9yLm1fY29udHJhY3Rpb25JbmRleF9bb2Zmc2V0XSkgeyAKKyAgICAgICAgICAgICAgICAvLyBjb250cmFjdGlvbiBjaGFyYWN0ZXJzIGFyZSBvcmRlcmVkLCBza2lwIHNtYWxsZXIgY2hhcmFjdGVycworICAgICAgICAgICAgICAgIG9mZnNldCArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBpZiAocHJldmlvdXMgPT0gY29sbGF0b3IubV9jb250cmFjdGlvbkluZGV4X1tvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgLy8gRm91bmQgdGhlIHNvdXJjZSBzdHJpbmcgY2hhciBpbiB0aGUgdGFibGUuCisgICAgICAgICAgICAgICAgLy8gUGljayB1cCB0aGUgY29ycmVzcG9uZGluZyBDRSBmcm9tIHRoZSB0YWJsZS4KKyAgICAgICAgICAgICAgICBjZSA9IGNvbGxhdG9yLm1fY29udHJhY3Rpb25DRV9bb2Zmc2V0XTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAvLyBpZiB0aGVyZSBpcyBhIGNvbXBsZXRlbHkgaWdub3JhYmxlIGNvZGUgcG9pbnQgaW4gdGhlIG1pZGRsZSAKKyAgICAgICAgICAgICAgICAgLy8gb2YgYSBwcmVmaXgsIHdlIG5lZWQgdG8gYWN0IGFzIGlmIGl0J3Mgbm90IHRoZXJlIAorICAgICAgICAgICAgICAgICAvLyBhc3N1bXB0aW9uOiAncmVhbCcgbm9uY2hhcmFjdGVycyAoKmZmZmUsICpmZmZmLCBmZGQwLWZkZWYgCisgICAgICAgICAgICAgICAgIC8vIGFyZSBzZXQgdG8gemVybykgCisgICAgICAgICAgICAgICAgIC8vIGxvbmUgc3Vycm9nYXRlcyBjYW5ub3QgYmUgc2V0IHRvIHplcm8gYXMgaXQgd291bGQgYnJlYWsgCisgICAgICAgICAgICAgICAgIC8vIG90aGVyIHByb2Nlc3NpbmcgCisgICAgICAgICAgICAgICAgIGludCBpc1plcm9DRSA9IGNvbGxhdG9yLm1fdHJpZV8uZ2V0TGVhZFZhbHVlKHByZXZpb3VzKTsgCisgICAgICAgICAgICAgICAgIC8vIGl0J3MgZWFzeSBmb3IgQk1QIGNvZGUgcG9pbnRzIAorICAgICAgICAgICAgICAgICBpZiAoaXNaZXJvQ0UgPT0gMCkgeyAKKyAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAKKyAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgZWxzZSBpZiAoVVRGMTYuaXNTdXJyb2dhdGUocHJldmlvdXMpKSB7IAorICAgICAgICAgICAgICAgICAgICAgLy8gZm9yIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMsIHdlIGhhdmUgdG8gY2hlY2sgdGhlIAorICAgICAgICAgICAgICAgICAgICAgLy8gbmV4dCBvbmUgc2l0dWF0aW9ucyB3aGVyZSB3ZSBhcmUgZ29pbmcgdG8gaWdub3JlIAorICAgICAgICAgICAgICAgICAgICAgLy8gMS4gYmVnaW5uaW5nIG9mIHRoZSBzdHJpbmc6IHNjaGFyIGlzIGEgbG9uZSBzdXJyb2dhdGUgCisgICAgICAgICAgICAgICAgICAgICAvLyAyLiBzY2hhciBpcyBhIGxvbmUgc3Vycm9nYXRlIAorICAgICAgICAgICAgICAgICAgICAgLy8gMy4gc2NoYXIgaXMgYSB0cmFpbCBzdXJyb2dhdGUgaW4gYSB2YWxpZCBzdXJyb2dhdGUgCisgICAgICAgICAgICAgICAgICAgICAvLyBzZXF1ZW5jZSB0aGF0IGlzIGV4cGxpY2l0bHkgc2V0IHRvIHplcm8uIAorICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc0JhY2t3YXJkc1N0YXJ0KCkpIHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBsZWFkID0gcHJldmlvdXNDaGFyKCk7IAorICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChVVEYxNi5pc0xlYWRTdXJyb2dhdGUobGVhZCkpIHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzWmVyb0NFID0gY29sbGF0b3IubV90cmllXy5nZXRMZWFkVmFsdWUobGVhZCk7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoUnVsZUJhc2VkQ29sbGF0b3IuZ2V0VGFnKGlzWmVyb0NFKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IFJ1bGVCYXNlZENvbGxhdG9yLkNFX1NVUlJPR0FURV9UQUdfKSB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGZpbmFsQ0UgPSBjb2xsYXRvci5tX3RyaWVfLmdldFRyYWlsVmFsdWUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzWmVyb0NFLCBwcmV2aW91cyk7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpbmFsQ0UgPT0gMCkgeyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIGEgcmVhbCwgYXNzaWduZWQgY29tcGxldGVseSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZ25vcmFibGUgY29kZSBwb2ludAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvbmUgc3Vycm9nYXRlLCBjb21wbGV0ZWx5IGlnbm9yYWJsZSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dENoYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7IAorICAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dENoYXIoKTsgLy8gc2hpZnQgYmFjayB0byBvcmlnaW5hbCBwb3NpdGlvbgorICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgIGVsc2UgeyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsb25lIHN1cnJvZ2F0ZSBhdCB0aGUgYmVnZ2luaW5nLCBjb21wbGV0ZWx5IGlnbm9yYWJsZSAKKyAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsgCisgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICB9IAorCisgICAgICAgICAgICAgICAgLy8gU291cmNlIHN0cmluZyBjaGFyIHdhcyBub3QgaW4gdGhlIHRhYmxlLCBwcmVmaXggbm90IGZvdW5kCisgICAgICAgICAgICAgICAgY2UgPSBjb2xsYXRvci5tX2NvbnRyYWN0aW9uQ0VfW2VudHJ5b2Zmc2V0XTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBpZiAoIWlzU3BlY2lhbFByZWZpeFRhZyhjZSkpIHsKKyAgICAgICAgICAgICAgICAvLyBUaGUgc291cmNlIHN0cmluZyBjaGFyIHdhcyBpbiB0aGUgY29udHJhY3Rpb24gdGFibGUsIGFuZCAKKyAgICAgICAgICAgICAgICAvLyB0aGUgY29ycmVzcG9uZGluZyBDRSBpcyBub3QgYSBwcmVmaXggQ0UuIFdlIGZvdW5kIHRoZSAKKyAgICAgICAgICAgICAgICAvLyBwcmVmaXgsIGJyZWFrIG91dCBvZiBsb29wLCB0aGlzIENFIHdpbGwgZW5kIHVwIGJlaW5nIAorICAgICAgICAgICAgICAgIC8vIHJldHVybmVkLiBUaGlzIGlzIHRoZSBub3JtYWwgd2F5IG91dCBvZiBwcmVmaXggaGFuZGxpbmcgCisgICAgICAgICAgICAgICAgLy8gd2hlbiB0aGUgc291cmNlIGFjdHVhbGx5IGNvbnRhaW5lZCB0aGUgcHJlZml4LgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChjZSAhPSBDRV9OT1RfRk9VTkRfKSB7IAorICAgICAgICAgICAgLy8gd2UgZm91bmQgc29tZXRoaW5nIGFuZCB3ZSBjYW4gbWVyaWxseSBjb250aW51ZQorICAgICAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZShtX3V0aWxTcGVjaWFsQmFja1VwXyk7CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgeyAvLyBwcmVmaXggc2VhcmNoIHdhcyBhIGZhaWx1cmUsIHdlIGhhdmUgdG8gYmFja3VwIGFsbCB0aGUgd2F5IHRvIAorICAgICAgICAgICAgLy8gdGhlIHN0YXJ0CisgICAgICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKGVudHJ5YmFja3VwKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY2U7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBDaGVja3MgaWYgdGhlIGNlIGlzIGEgY29udHJhY3Rpb24gdGFnCisgICAgICogQHBhcmFtIGNlIGNlIHRvIGNoZWNrCisgICAgICogQHJldHVybiB0cnVlIGlmIGNlIGlzIGEgY29udHJhY3Rpb24gdGFnLCBmYWxzZSBvdGhlcndpc2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gaXNDb250cmFjdGlvblRhZyhpbnQgY2UpCisgICAgeworICAgICAgICByZXR1cm4gUnVsZUJhc2VkQ29sbGF0b3IuaXNTcGVjaWFsKGNlKSAmJiAKKyAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLmdldFRhZyhjZSkgPT0gQ0VfQ09OVFJBQ1RJT05fVEFHXzsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIE1ldGhvZCB0byBjb3B5IHNraXBwZWQgY2hhcmFjdGVycyBpbnRvIHRoZSBidWZmZXIgYW5kIHNldHMgdGhlIGZjZCAKKyAgICAgKiBwb3NpdGlvbi4gVG8gZW5zdXJlIHRoYXQgdGhlIHNraXBwZWQgY2hhcmFjdGVycyBhcmUgY29uc2lkZXJlZCBsYXRlciwgCisgICAgICogd2UgbmVlZCB0byBwbGFjZSBpdCBpbiB0aGUgYXBwcm9wcmlhdGUgcG9zaXRpb24gaW4gdGhlIGJ1ZmZlciBhbmQgCisgICAgICogcmVhc3NpZ24gdGhlIHNvdXJjZSBpbmRleC4gc2ltcGxlIGNhc2UgaWYgaW5kZXggcmVzaWRlIGluIHN0cmluZywgCisgICAgICogc2ltcGx5IGNvcHkgdG8gYnVmZmVyIGFuZCBmY2Rwb3NpdGlvbiA9IHBvcywgcG9zID0gc3RhcnQgb2YgYnVmZmVyLiAKKyAgICAgKiBpZiBwb3MgaW4gbm9ybWFsaXphdGlvbiBidWZmZXIsIHdlJ2xsIGluc2VydCB0aGUgY29weSBpbmZyb250IG9mIHBvcyAKKyAgICAgKiBhbmQgcG9pbnQgcG9zIHRvIHRoZSBzdGFydCBvZiB0aGUgYnVmZmVyLiB3aHkgYW0gaSBkb2luZyB0aGVzZSBjb3BpZXM/CisgICAgICogd2VsbCwgc28gdGhhdCB0aGUgd2hvbGUgY2h1bmsgb2YgY29kZXMgaW4gdGhlIGdldE5leHRDRSwgCisgICAgICogdWNvbF9wcnZfZ2V0U3BlY2lhbENFIGRvZXMgbm90IHJlcXVpcmUgYW55IGNoYW5nZXMsIHdoaWNoIHdpbGwgYmUgCisgICAgICogcmVhbGx5IHBhaW5mdWwuCisgICAgICogQHBhcmFtIHNraXBwZWQgY2hhcmFjdGVyIGJ1ZmZlcgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBzZXREaXNjb250aWd1b3VzKFN0cmluZ0J1ZmZlciBza2lwcGVkKQorICAgIHsKKyAgICAgICAgaWYgKG1fYnVmZmVyT2Zmc2V0XyA+PSAwKSB7CisgICAgICAgICAgICBtX2J1ZmZlcl8ucmVwbGFjZSgwLCBtX2J1ZmZlck9mZnNldF8sIHNraXBwZWQudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtX0ZDRExpbWl0XyA9IG1fc291cmNlXy5nZXRJbmRleCgpOworICAgICAgICAgICAgbV9idWZmZXJfLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgIG1fYnVmZmVyXy5hcHBlbmQoc2tpcHBlZC50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbV9idWZmZXJPZmZzZXRfID0gMDsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgY2hhcmFjdGVyIGZvciBmb3J3YXJkIGl0ZXJhdGlvbgorICAgICAqIEByZXR1cm4gY3VycmVudCBjaGFyYWN0ZXIKKyAgICAgKi8KKyAgICBwcml2YXRlIGNoYXIgY3VycmVudENoYXIoKQorICAgIHsKKyAgICAgICAgaWYgKG1fYnVmZmVyT2Zmc2V0XyA8IDApIHsKKyAgICAgICAgICAgIGNoYXIgcmVzdWx0ID0gbV9zb3VyY2VfLnByZXZpb3VzKCk7CisgICAgICAgICAgICBtX3NvdXJjZV8ubmV4dCgpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAvLyBtX2J1ZmZlck9mZnNldF8gaXMgbmV2ZXIgMCBpbiBub3JtYWwgY2lyY3Vtc3RhbmNlcyBleGNlcHQgYWZ0ZXIgYQorICAgICAgICAvLyBkaXNjb250aWd1b3VzIGNvbnRyYWN0aW9uIHNpbmNlIGl0IGlzIGFsd2F5cyByZXR1cm5lZCBhbmQgbW92ZWQKKyAgICAgICAgLy8gYnkgMSB3aGVuIHdlIGRvIG5leHRDaGFyKCkKKyAgICAgICAgcmV0dXJuIG1fYnVmZmVyXy5jaGFyQXQobV9idWZmZXJPZmZzZXRfIC0gMSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogTWV0aG9kIHRvIGdldCB0aGUgZGlzY29udGlndW91cyBjb2xsYXRpb24gZWxlbWVudCB3aXRoaW4gdGhlIHNvdXJjZS4KKyAgICAgKiBOb3RlIHRoaXMgZnVuY3Rpb24gd2lsbCBzZXQgdGhlIHBvc2l0aW9uIHRvIHRoZSBhcHByb3ByaWF0ZSBwbGFjZXMuCisgICAgICogUGFzc2VkIGluIGNoYXJhY3RlciBvZmZzZXQgcG9pbnRzIHRvIHRoZSBzZWNvbmQgY29tYmluaW5nIGNoYXJhY3RlciAKKyAgICAgKiBhZnRlciB0aGUgc3RhcnQgY2hhcmFjdGVyLgorICAgICAqIEBwYXJhbSBjb2xsYXRvciBjdXJyZW50IGNvbGxhdG9yIHVzZWQKKyAgICAgKiBAcGFyYW0gZW50cnlvZmZzZXQgaW5kZXggdG8gdGhlIHN0YXJ0IGNoYXJhY3RlciBpbiB0aGUgY29udHJhY3Rpb24gdGFibGUKKyAgICAgKiBAcmV0dXJuIGRpc2NvbnRpZ3VvdXMgY29sbGF0aW9uIGVsZW1lbnQgb2Zmc2V0CisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbmV4dERpc2NvbnRpZ3VvdXMoUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IsIGludCBlbnRyeW9mZnNldCkKKyAgICB7CisgICAgICAgIGludCBvZmZzZXQgPSBlbnRyeW9mZnNldDsKKyAgICAgICAgYm9vbGVhbiBtdWx0aWNvbnRyYWN0aW9uID0gZmFsc2U7CisgICAgICAgIC8vIHNpbmNlIGl0IHdpbGwgYmUgc3R1ZmZlZCBpbnRvIHRoaXMgaXRlcmF0b3IgYW5kIHJhbiBvdmVyIGFnYWluCisgICAgICAgIGlmIChtX3V0aWxTa2lwcGVkQnVmZmVyXyA9PSBudWxsKSB7CisgICAgICAgICAgICBtX3V0aWxTa2lwcGVkQnVmZmVyXyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsgCisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtX3V0aWxTa2lwcGVkQnVmZmVyXy5zZXRMZW5ndGgoMCk7CisgICAgICAgIH0KKyAgICAgICAgY2hhciBjaCA9IGN1cnJlbnRDaGFyKCk7CisgICAgICAgIG1fdXRpbFNraXBwZWRCdWZmZXJfLmFwcGVuZChjdXJyZW50Q2hhcigpKTsgCisgICAgICAgIC8vIGFjY2VudCBhZnRlciB0aGUgZmlyc3QgY2hhcmFjdGVyCisgICAgICAgIGlmIChtX3V0aWxTcGVjaWFsRGlzY29udGlndW91c0JhY2tVcF8gPT0gbnVsbCkgeworICAgICAgICAgICAgbV91dGlsU3BlY2lhbERpc2NvbnRpZ3VvdXNCYWNrVXBfID0gbmV3IEJhY2t1cCgpOworICAgICAgICB9CisgICAgICAgIGJhY2t1cEludGVybmFsU3RhdGUobV91dGlsU3BlY2lhbERpc2NvbnRpZ3VvdXNCYWNrVXBfKTsKKyAgICAgICAgY2hhciBuZXh0Y2ggPSBjaDsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGNoID0gbmV4dGNoOworICAgICAgICAgICAgbmV4dGNoID0gbmV4dENoYXIoKTsgCisgICAgICAgICAgICBpZiAobmV4dGNoID09IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkUgCisgICAgICAgICAgICAgICAgfHwgZ2V0Q29tYmluaW5nQ2xhc3MobmV4dGNoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgLy8gaWYgdGhlcmUgYXJlIG5vIG1vcmUgYWNjZW50cyB0byBtb3ZlIGFyb3VuZAorICAgICAgICAgICAgICAgIC8vIHdlIGRvbid0IGhhdmUgdG8gc2hpZnQgcHJldmlvdXNDaGFyLCBzaW5jZSB3ZSBhcmUgcmVzZXR0aW5nCisgICAgICAgICAgICAgICAgLy8gdGhlIG9mZnNldCBsYXRlcgorICAgICAgICAgICAgICAgIGlmIChtdWx0aWNvbnRyYWN0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChuZXh0Y2ggIT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNDaGFyKCk7IC8vIGJhY2t0cmFjaworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHNldERpc2NvbnRpZ3VvdXMobV91dGlsU2tpcHBlZEJ1ZmZlcl8pOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29sbGF0b3IubV9jb250cmFjdGlvbkNFX1tvZmZzZXRdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIG9mZnNldCArKzsgLy8gc2tpcCB0aGUgY29tYmluaW5nIGNsYXNzIG9mZnNldAorICAgICAgICAgICAgd2hpbGUgKG5leHRjaCA+IGNvbGxhdG9yLm1fY29udHJhY3Rpb25JbmRleF9bb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgIG9mZnNldCArKzsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIGludCBjZSA9IENFX05PVF9GT1VORF87CisgICAgICAgICAgICBpZiAobmV4dGNoICE9IGNvbGxhdG9yLm1fY29udHJhY3Rpb25JbmRleF9bb2Zmc2V0XQorICAgICAgICAgICAgICAgICAgICB8fCBnZXRDb21iaW5pbmdDbGFzcyhuZXh0Y2gpID09IGdldENvbWJpbmluZ0NsYXNzKGNoKSkgeworICAgICAgICAgICAgICAgICAgICAvLyB1bm1hdGNoZWQgb3IgYmxvY2tlZCBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICBtX3V0aWxTa2lwcGVkQnVmZmVyXy5hcHBlbmQobmV4dGNoKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGNlID0gY29sbGF0b3IubV9jb250cmFjdGlvbkNFX1tvZmZzZXRdOworICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChjZSA9PSBDRV9OT1RfRk9VTkRfKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSBpZiAoaXNDb250cmFjdGlvblRhZyhjZSkpIHsKKyAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIGEgbXVsdGktY29udHJhY3Rpb24KKyAgICAgICAgICAgICAgICBvZmZzZXQgPSBnZXRDb250cmFjdGlvbk9mZnNldChjb2xsYXRvciwgY2UpOworICAgICAgICAgICAgICAgIGlmIChjb2xsYXRvci5tX2NvbnRyYWN0aW9uQ0VfW29mZnNldF0gIT0gQ0VfTk9UX0ZPVU5EXykgeworICAgICAgICAgICAgICAgICAgICBtdWx0aWNvbnRyYWN0aW9uID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYmFja3VwSW50ZXJuYWxTdGF0ZShtX3V0aWxTcGVjaWFsRGlzY29udGlndW91c0JhY2tVcF8pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBzZXREaXNjb250aWd1b3VzKG1fdXRpbFNraXBwZWRCdWZmZXJfKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUobV91dGlsU3BlY2lhbERpc2NvbnRpZ3VvdXNCYWNrVXBfKTsKKyAgICAgICAgLy8gYmFja3VwIGlzIG9uZSBmb3J3YXJkIG9mIHRoZSBiYXNlIGNoYXJhY3Rlciwgd2UgbmVlZCB0byBtb3ZlIGJhY2sgCisgICAgICAgIC8vIG9uZSBtb3JlCisgICAgICAgIHByZXZpb3VzQ2hhcigpOworICAgICAgICByZXR1cm4gY29sbGF0b3IubV9jb250cmFjdGlvbkNFX1tlbnRyeW9mZnNldF07CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBuZXh0IGNvbnRyYWN0aW9uIGNlCisgICAgICogQHBhcmFtIGNvbGxhdG9yIGNvbGxhdG9yIHRvIHVzZQorICAgICAqIEBwYXJhbSBjZSBjdXJyZW50IGNlCisgICAgICogQHBhcmFtIGVudHJ5YmFja3VwIGVudHJ5IGJhY2t1cCBpdGVyYXRvciBzdGF0dXMKKyAgICAgKiBAcmV0dXJuIGNlIG9mIHRoZSBuZXh0IGNvbnRyYWN0aW9uCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbmV4dENvbnRyYWN0aW9uKFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yLCBpbnQgY2UpCisgICAgeworICAgICAgICBiYWNrdXBJbnRlcm5hbFN0YXRlKG1fdXRpbFNwZWNpYWxCYWNrVXBfKTsKKyAgICAgICAgaW50IGVudHJ5Y2UgPSBDRV9OT1RfRk9VTkRfOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaW50IGVudHJ5b2Zmc2V0ID0gZ2V0Q29udHJhY3Rpb25PZmZzZXQoY29sbGF0b3IsIGNlKTsKKyAgICAgICAgICAgIGludCBvZmZzZXQgPSBlbnRyeW9mZnNldDsgICAKKyAgICAgICAgCisgICAgICAgICAgICBpZiAoaXNFbmQoKSkgeworICAgICAgICAgICAgICAgIGNlID0gY29sbGF0b3IubV9jb250cmFjdGlvbkNFX1tvZmZzZXRdOworICAgICAgICAgICAgICAgIGlmIChjZSA9PSBDRV9OT1RfRk9VTkRfKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGJhY2sgdXAgdGhlIHNvdXJjZSBvdmVyIGFsbCB0aGUgY2hhcnMgd2Ugc2Nhbm5lZCBnb2luZyAKKyAgICAgICAgICAgICAgICAgICAgLy8gaW50byB0aGlzIGNvbnRyYWN0aW9uLgorICAgICAgICAgICAgICAgICAgICBjZSA9IGVudHJ5Y2U7ICAKKyAgICAgICAgICAgICAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZShtX3V0aWxTcGVjaWFsQmFja1VwXyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIC8vIGdldCB0aGUgZGlzY29udGlndW9zIG1heGltdW0gY29tYmluaW5nIGNsYXNzCisgICAgICAgICAgICBieXRlIG1heENDID0gKGJ5dGUpKGNvbGxhdG9yLm1fY29udHJhY3Rpb25JbmRleF9bb2Zmc2V0XSAmIDB4RkYpOyAKKyAgICAgICAgICAgIC8vIGNoZWNrcyBpZiBhbGwgY2hhcmFjdGVycyBoYXZlIHRoZSBzYW1lIGNvbWJpbmluZyBjbGFzcworICAgICAgICAgICAgYnl0ZSBhbGxTYW1lID0gKGJ5dGUpKGNvbGxhdG9yLm1fY29udHJhY3Rpb25JbmRleF9bb2Zmc2V0XSA+PiA4KTsKKyAgICAgICAgICAgIGNoYXIgY2ggPSBuZXh0Q2hhcigpOworICAgICAgICAgICAgb2Zmc2V0ICsrOworICAgICAgICAgICAgd2hpbGUgKGNoID4gY29sbGF0b3IubV9jb250cmFjdGlvbkluZGV4X1tvZmZzZXRdKSB7IAorICAgICAgICAgICAgICAgIC8vIGNvbnRyYWN0aW9uIGNoYXJhY3RlcnMgYXJlIG9yZGVyZWQsIHNraXAgYWxsIHNtYWxsZXIKKyAgICAgICAgICAgICAgICBvZmZzZXQgKys7CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgaWYgKGNoID09IGNvbGxhdG9yLm1fY29udHJhY3Rpb25JbmRleF9bb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgIC8vIEZvdW5kIHRoZSBzb3VyY2Ugc3RyaW5nIGNoYXIgaW4gdGhlIGNvbnRyYWN0aW9uIHRhYmxlLgorICAgICAgICAgICAgICAgIC8vICBQaWNrIHVwIHRoZSBjb3JyZXNwb25kaW5nIENFIGZyb20gdGhlIHRhYmxlLgorICAgICAgICAgICAgICAgIGNlID0gY29sbGF0b3IubV9jb250cmFjdGlvbkNFX1tvZmZzZXRdOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gaWYgdGhlcmUgaXMgYSBjb21wbGV0ZWx5IGlnbm9yYWJsZSBjb2RlIHBvaW50IGluIHRoZSBtaWRkbGUgCisgICAgICAgICAgICAgICAgLy8gb2YgY29udHJhY3Rpb24sIHdlIG5lZWQgdG8gYWN0IGFzIGlmIGl0J3Mgbm90IHRoZXJlIAorICAgICAgICAgICAgICAgIGludCBpc1plcm9DRSA9IGNvbGxhdG9yLm1fdHJpZV8uZ2V0TGVhZFZhbHVlKGNoKTsgCisgICAgICAgICAgICAgICAgLy8gaXQncyBlYXN5IGZvciBCTVAgY29kZSBwb2ludHMgCisgICAgICAgICAgICAgICAgaWYgKGlzWmVyb0NFID09IDApIHsgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7IAorICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgZWxzZSBpZiAoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGNoKSkgeyAKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFpc0VuZCgpKSB7IAorICAgICAgICAgICAgICAgICAgICAgICAgYmFja3VwSW50ZXJuYWxTdGF0ZShtX3V0aWxTcGVjaWFsQmFja1VwXyk7IAorICAgICAgICAgICAgICAgICAgICAgICAgY2hhciB0cmFpbCA9IG5leHRDaGFyKCk7IAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUodHJhaWwpKSB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRvIHN0dWZmIHdpdGggdHJhaWwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFJ1bGVCYXNlZENvbGxhdG9yLmdldFRhZyhpc1plcm9DRSkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IFJ1bGVCYXNlZENvbGxhdG9yLkNFX1NVUlJPR0FURV9UQUdfKSB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZmluYWxDRSA9IGNvbGxhdG9yLm1fdHJpZV8uZ2V0VHJhaWxWYWx1ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNaZXJvQ0UsIHRyYWlsKTsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaW5hbENFID09IDApIHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYnJva2VuIHN1cnJvZ2F0ZSBzZXF1ZW5jZSwgdGh1cyBjb21wbGV0ZWx5IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlnbm9yYWJsZSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbFNwZWNpYWxCYWNrVXBfKTsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7IAorICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUobV91dGlsU3BlY2lhbEJhY2tVcF8pOyAKKyAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7IAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm8gIG1vcmUgY2hhcmFjdGVycywgc28gYnJva2VuIHN1cnJvZ2F0ZSBwYWlyLi4uICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgY29udHJhY3Rpb24gd2lsbCB1bHRpbWF0ZWx5IGZhaWwsIGJ1dCBub3QgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBiZWNhdXNlIG9mIHVzIAorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7ICAKKyAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgIH0gCisKKyAgICAgICAgICAgICAgICAvLyBTb3VyY2Ugc3RyaW5nIGNoYXIgd2FzIG5vdCBpbiBjb250cmFjdGlvbiB0YWJsZS4KKyAgICAgICAgICAgICAgICAvLyBVbmxlc3MgaXQgaXMgYSBkaXNjb250aWd1b3VzIGNvbnRyYWN0aW9uLCB3ZSBhcmUgZG9uZQorICAgICAgICAgICAgICAgIGJ5dGUgc0NDOworICAgICAgICAgICAgICAgIGlmIChtYXhDQyA9PSAwIHx8IChzQ0MgPSAoYnl0ZSlnZXRDb21iaW5pbmdDbGFzcyhjaCkpID09IDAgCisgICAgICAgICAgICAgICAgICAgIHx8IHNDQyA+IG1heENDIHx8IChhbGxTYW1lICE9IDAgJiYgc0NDID09IG1heENDKSB8fCAKKyAgICAgICAgICAgICAgICAgICAgaXNFbmQoKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBDb250cmFjdGlvbiBjYW4gbm90IGJlIGRpc2NvbnRpZ3VvdXMsIGJhY2sgdXAgYnkgb25lCisgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzQ2hhcigpOyAKKyAgICAgICAgICAgICAgICAgICAgY2UgPSBjb2xsYXRvci5tX2NvbnRyYWN0aW9uQ0VfW2VudHJ5b2Zmc2V0XTsKKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBDb250cmFjdGlvbiBpcyBwb3NzaWJseSBkaXNjb250aWd1b3VzLgorICAgICAgICAgICAgICAgICAgICAvLyBmaW5kIHRoZSBuZXh0IGNoYXJhY3RlciBpZiBjaCBpcyBub3QgYSBiYXNlIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICAgICBjaGFyIG5leHRjaCA9IG5leHRDaGFyKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChuZXh0Y2ggIT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNDaGFyKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGdldENvbWJpbmluZ0NsYXNzKG5leHRjaCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNDaGFyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBiYXNlIGNoYXJhY3RlciBub3QgcGFydCBvZiBkaXNjb250aWd1b3VzIGNvbnRyYWN0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICBjZSA9IGNvbGxhdG9yLm1fY29udHJhY3Rpb25DRV9bZW50cnlvZmZzZXRdOworICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNlID0gbmV4dERpc2NvbnRpZ3VvdXMoY29sbGF0b3IsIGVudHJ5b2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBpZiAoY2UgPT0gQ0VfTk9UX0ZPVU5EXykgeworICAgICAgICAgICAgICAgIC8vIHNvdXJjZSBkaWQgbm90IG1hdGNoIHRoZSBjb250cmFjdGlvbiwgcmV2ZXJ0IGJhY2sgb3JpZ2luYWwKKyAgICAgICAgICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKG1fdXRpbFNwZWNpYWxCYWNrVXBfKTsKKyAgICAgICAgICAgICAgICBjZSA9IGVudHJ5Y2U7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBzb3VyY2Ugd2FzIGEgY29udHJhY3Rpb24KKyAgICAgICAgICAgIGlmICghaXNDb250cmFjdGlvblRhZyhjZSkpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAvLyBjY29udGludWUgbG9vcGluZyB0byBjaGVjayBmb3IgdGhlIHJlbWFpbmluZyBjb250cmFjdGlvbi4KKyAgICAgICAgICAgIGlmIChjb2xsYXRvci5tX2NvbnRyYWN0aW9uQ0VfW2VudHJ5b2Zmc2V0XSAhPSBDRV9OT1RfRk9VTkRfKSB7CisgICAgICAgICAgICAgICAgLy8gdGhlcmUgYXJlIGZ1cnRoZXIgY29udHJhY3Rpb25zIHRvIGJlIHBlcmZvcm1lZCwgc28gd2Ugc3RvcmUKKyAgICAgICAgICAgICAgICAvLyB0aGUgc28tZmFyIGNvbXBsZXRlZCBjZSwgc28gdGhhdCBpZiB3ZSBmYWlsIGluIHRoZSBuZXh0CisgICAgICAgICAgICAgICAgLy8gcm91bmQgd2UganVzdCByZXR1cm4gdGhpcyBvbmUuCisgICAgICAgICAgICAgICAgZW50cnljZSA9IGNvbGxhdG9yLm1fY29udHJhY3Rpb25DRV9bZW50cnlvZmZzZXRdOworICAgICAgICAgICAgICAgIGJhY2t1cEludGVybmFsU3RhdGUobV91dGlsU3BlY2lhbEJhY2tVcF8pOworICAgICAgICAgICAgICAgIGlmIChtX3V0aWxTcGVjaWFsQmFja1VwXy5tX2J1ZmZlck9mZnNldF8gPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBtX3V0aWxTcGVjaWFsQmFja1VwXy5tX2J1ZmZlck9mZnNldF8gLS07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtX3V0aWxTcGVjaWFsQmFja1VwXy5tX29mZnNldF8gLS07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIHJldHVybiBjZTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIG5leHQgY2UgZm9yIGxvbmcgcHJpbWFyaWVzLCBzdHVmZnMgdGhlIHJlc3Qgb2YgdGhlIGNvbGxhdGlvbiAKKyAgICAgKiBlbGVtZW50cyBpbnRvIHRoZSBjZSBidWZmZXIKKyAgICAgKiBAcGFyYW0gY2UgY3VycmVudCBjZQorICAgICAqIEByZXR1cm4gbmV4dCBjZQorICAgICAqLworICAgIHByaXZhdGUgaW50IG5leHRMb25nUHJpbWFyeShpbnQgY2UpCisgICAgeworICAgICAgICBtX0NFQnVmZmVyX1sxXSA9ICgoY2UgJiAweEZGKSA8PCAyNCkgCisgICAgICAgICAgICB8IFJ1bGVCYXNlZENvbGxhdG9yLkNFX0NPTlRJTlVBVElPTl9NQVJLRVJfOworICAgICAgICBtX0NFQnVmZmVyT2Zmc2V0XyA9IDE7CisgICAgICAgIG1fQ0VCdWZmZXJTaXplXyA9IDI7CisgICAgICAgIG1fQ0VCdWZmZXJfWzBdID0gKChjZSAmIDB4RkZGRjAwKSA8PCA4KSB8IChDRV9CWVRFX0NPTU1PTl8gPDwgOCkgfCAKKyAgICAgICAgICAgIENFX0JZVEVfQ09NTU9OXzsKKyAgICAgICAgcmV0dXJuIG1fQ0VCdWZmZXJfWzBdOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbnVtYmVyIG9mIGV4cGFuc2lvbgorICAgICAqIEBwYXJhbSBjZSBjdXJyZW50IGNlCisgICAgICogQHJldHVybiBudW1iZXIgb2YgZXhwYW5zaW9uCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZ2V0RXhwYW5zaW9uQ291bnQoaW50IGNlKQorICAgIHsgICAKKyAgICAgICAgcmV0dXJuIGNlICYgMHhGOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbmV4dCBleHBhbnNpb24gY2UgYW5kIHN0dWZmcyB0aGUgcmVzdCBvZiB0aGUgY29sbGF0aW9uIGVsZW1lbnRzCisgICAgICogaW50byB0aGUgY2UgYnVmZmVyCisgICAgICogQHBhcmFtIGNvbGxhdG9yIGN1cnJlbnQgY29sbGF0b3IKKyAgICAgKiBAcGFyYW0gY2UgY3VycmVudCBjZQorICAgICAqIEByZXR1cm4gbmV4dCBleHBhbnNpb24gY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBuZXh0RXhwYW5zaW9uKFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yLCBpbnQgY2UpCisgICAgeworICAgICAgICAvLyBOT1RFOiB3ZSBjYW4gZW5jb3VudGVyIGJvdGggY29udGludWF0aW9ucyBhbmQgZXhwYW5zaW9ucyBpbiBhbiAKKyAgICAgICAgLy8gZXhwYW5zaW9uIQorICAgICAgICAvLyBJIGhhdmUgdG8gZGVjaWRlIHdoZXJlIGNvbnRpbnVhdGlvbnMgYXJlIGdvaW5nIHRvIGJlIGRlYWx0IHdpdGggCisgICAgICAgIGludCBvZmZzZXQgPSBnZXRFeHBhbnNpb25PZmZzZXQoY29sbGF0b3IsIGNlKTsKKyAgICAgICAgbV9DRUJ1ZmZlclNpemVfID0gZ2V0RXhwYW5zaW9uQ291bnQoY2UpOyAKKyAgICAgICAgbV9DRUJ1ZmZlck9mZnNldF8gPSAxOworICAgICAgICBtX0NFQnVmZmVyX1swXSA9IGNvbGxhdG9yLm1fZXhwYW5zaW9uX1tvZmZzZXRdOworICAgICAgICBpZiAobV9DRUJ1ZmZlclNpemVfICE9IDApIHsgCisgICAgICAgICAgICAvLyBpZiB0aGVyZSBhcmUgbGVzcyB0aGFuIDE2IGVsZW1lbnRzIGluIGV4cGFuc2lvbgorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBtX0NFQnVmZmVyU2l6ZV87IGkgKyspIHsKKyAgICAgICAgICAgICAgICBtX0NFQnVmZmVyX1tpXSA9IGNvbGxhdG9yLm1fZXhwYW5zaW9uX1tvZmZzZXQgKyBpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7IAorICAgICAgICAgICAgLy8gY2UgYXJlIHRlcm1pbmF0ZWQKKyAgICAgICAgICAgIG1fQ0VCdWZmZXJTaXplXyA9IDE7CisgICAgICAgICAgICB3aGlsZSAoY29sbGF0b3IubV9leHBhbnNpb25fW29mZnNldF0gIT0gMCkgeworICAgICAgICAgICAgICAgIG1fQ0VCdWZmZXJfW21fQ0VCdWZmZXJTaXplXyArK10gPSAKKyAgICAgICAgICAgICAgICAgICAgY29sbGF0b3IubV9leHBhbnNpb25fWysrIG9mZnNldF07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1fQ0VCdWZmZXJfWzBdOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBuZXh0IGltcGxpY2l0IGNlIGZvciBjb2RlcG9pbnRzCisgICAgICogQHBhcmFtIGNvZGVwb2ludCBjdXJyZW50IGNvZGVwb2ludAorICAgICAqIEByZXR1cm4gaW1wbGljaXQgY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBuZXh0SW1wbGljaXQoaW50IGNvZGVwb2ludCkgCisgICAgeworICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNMZWdhbChjb2RlcG9pbnQpKSB7CisgICAgICAgICAgICAvLyBzeW53ZWUgdG8gY2hlY2sgd2l0aCB2bGFkaW1pciBvbiB0aGUgcmFuZ2Ugb2YgaXNOb25DaGFyKCkKKyAgICAgICAgICAgIC8vIGlsbGVnYWwgY29kZSB2YWx1ZSwgdXNlIGNvbXBsZXRlbHkgaWdub3JlYWJsZSEKKyAgICAgICAgICAgIHJldHVybiBJR05PUkFCTEU7CisgICAgICAgIH0KKyAgICAgICAgaW50IHJlc3VsdCA9IGdldEltcGxpY2l0UHJpbWFyeShjb2RlcG9pbnQpOworICAgICAgICBtX0NFQnVmZmVyX1swXSA9IChyZXN1bHQgJiBSdWxlQmFzZWRDb2xsYXRvci5DRV9QUklNQVJZX01BU0tfKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICB8IDB4MDAwMDA1MDU7CisgICAgICAgIG1fQ0VCdWZmZXJfWzFdID0gKChyZXN1bHQgJiAweDAwMDBGRkZGKSA8PCAxNikgfCAweDAwMDAwMEMwOworICAgICAgICBtX0NFQnVmZmVyT2Zmc2V0XyA9IDE7CisgICAgICAgIG1fQ0VCdWZmZXJTaXplXyA9IDI7CisgICAgICAgIHJldHVybiBtX0NFQnVmZmVyX1swXTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG5leHQgY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBmb2xsb3dpbmcgc3Vycm9nYXRlIGNoYXJhY3RlcnMKKyAgICAgKiBAcGFyYW0gY2ggY3VycmVudCBjaGFyYWN0ZXIKKyAgICAgKiBAcmV0dXJuIGNlCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbmV4dFN1cnJvZ2F0ZShjaGFyIGNoKQorICAgIHsKKyAgICAgICAgY2hhciBuZXh0Y2ggPSBuZXh0Q2hhcigpOworICAgICAgICBpZiAobmV4dGNoICE9IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkUgJiYgCisgICAgICAgICAgICBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKG5leHRjaCkpIHsKKyAgICAgICAgICAgIGludCBjb2RlcG9pbnQgPSBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeShjaCwgbmV4dGNoKTsKKyAgICAgICAgICAgIHJldHVybiBuZXh0SW1wbGljaXQoY29kZXBvaW50KTsKKyAgICAgICAgfSAKKyAgICAgICAgaWYgKG5leHRjaCAhPSBDaGFyYWN0ZXJJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICBwcmV2aW91c0NoYXIoKTsgLy8gcmV2ZXJ0cyBiYWNrIHRvIHRoZSBvcmlnaW5hbCBwb3NpdGlvbgorICAgICAgICB9CisgICAgICAgIHJldHVybiBJR05PUkFCTEU7IC8vIGNvbXBsZXRlbHkgaWdub3JhYmxlCisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBuZXh0IGNlIGZvciBhIGhhbmd1bCBjaGFyYWN0ZXIsIHRoaXMgaXMgYW4gaW1wbGljaXQgCisgICAgICogY2FsY3VsYXRpb24KKyAgICAgKiBAcGFyYW0gY29sbGF0b3IgY3VycmVudCBjb2xsYXRvcgorICAgICAqIEBwYXJhbSBjaCBjdXJyZW50IGNoYXJhY3RlcgorICAgICAqIEByZXR1cm4gaGFuZ3VsIGNlCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbmV4dEhhbmd1bChSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciwgY2hhciBjaCkKKyAgICB7CisgICAgICAgIGNoYXIgTCA9IChjaGFyKShjaCAtIEhBTkdVTF9TQkFTRV8pOworICAgICAgICAgICAgICAgIAorICAgICAgICAvLyBkaXZpZGUgaW50byBwaWVjZXMKKyAgICAgICAgLy8gZG8gaXQgaW4gdGhpcyBvcmRlciBzaW5jZSBzb21lIGNvbXBpbGVycyBjYW4gZG8gJSBhbmQgLyBpbiBvbmUgCisgICAgICAgIC8vIG9wZXJhdGlvbgorICAgICAgICBjaGFyIFQgPSAoY2hhcikoTCAlIEhBTkdVTF9UQ09VTlRfKTsgCisgICAgICAgIEwgLz0gSEFOR1VMX1RDT1VOVF87CisgICAgICAgIGNoYXIgViA9IChjaGFyKShMICUgSEFOR1VMX1ZDT1VOVF8pOworICAgICAgICBMIC89IEhBTkdVTF9WQ09VTlRfOworICAgICAgICAgICAgICAgIAorICAgICAgICAvLyBvZmZzZXQgdGhlbQorICAgICAgICBMICs9IEhBTkdVTF9MQkFTRV87CisgICAgICAgIFYgKz0gSEFOR1VMX1ZCQVNFXzsKKyAgICAgICAgVCArPSBIQU5HVUxfVEJBU0VfOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIC8vIHJldHVybiB0aGUgZmlyc3QgQ0UsIGJ1dCBmaXJzdCBwdXQgdGhlIHJlc3QgaW50byB0aGUgZXhwYW5zaW9uIAorICAgICAgICAvLyBidWZmZXIKKyAgICAgICAgbV9DRUJ1ZmZlclNpemVfID0gMDsKKyAgICAgICAgaWYgKCFjb2xsYXRvci5tX2lzSmFtb1NwZWNpYWxfKSB7IC8vIEZBU1QgUEFUSAorICAgICAgICAgICAgbV9DRUJ1ZmZlcl9bbV9DRUJ1ZmZlclNpemVfICsrXSA9IAorICAgICAgICAgICAgICAgIGNvbGxhdG9yLm1fdHJpZV8uZ2V0TGVhZFZhbHVlKEwpOworICAgICAgICAgICAgbV9DRUJ1ZmZlcl9bbV9DRUJ1ZmZlclNpemVfICsrXSA9IAorICAgICAgICAgICAgICAgIGNvbGxhdG9yLm1fdHJpZV8uZ2V0TGVhZFZhbHVlKFYpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoVCAhPSBIQU5HVUxfVEJBU0VfKSB7CisgICAgICAgICAgICAgICAgbV9DRUJ1ZmZlcl9bbV9DRUJ1ZmZlclNpemVfICsrXSA9IAorICAgICAgICAgICAgICAgICAgICBjb2xsYXRvci5tX3RyaWVfLmdldExlYWRWYWx1ZShUKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fQ0VCdWZmZXJPZmZzZXRfID0gMTsKKyAgICAgICAgICAgIHJldHVybiBtX0NFQnVmZmVyX1swXTsKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7IAorICAgICAgICAgICAgLy8gSmFtbyBpcyBTcGVjaWFsCisgICAgICAgICAgICAvLyBTaW5jZSBIYW5ndWxzIHBhc3MgdGhlIEZDRCBjaGVjaywgaXQgaXMgZ3VhcmFudGVlZCB0aGF0IHdlIAorICAgICAgICAgICAgLy8gd29uJ3QgYmUgaW4gdGhlIG5vcm1hbGl6YXRpb24gYnVmZmVyIGlmIHNvbWV0aGluZyBsaWtlIHRoaXMgCisgICAgICAgICAgICAvLyBoYXBwZW5zCisgICAgICAgICAgICAvLyBNb3ZlIEphbW9zIGludG8gbm9ybWFsaXphdGlvbiBidWZmZXIKKyAgICAgICAgICAgIG1fYnVmZmVyXy5hcHBlbmQoKGNoYXIpTCk7CisgICAgICAgICAgICBtX2J1ZmZlcl8uYXBwZW5kKChjaGFyKVYpOworICAgICAgICAgICAgaWYgKFQgIT0gSEFOR1VMX1RCQVNFXykgeworICAgICAgICAgICAgICAgIG1fYnVmZmVyXy5hcHBlbmQoKGNoYXIpVCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX0ZDRExpbWl0XyA9IG1fc291cmNlXy5nZXRJbmRleCgpOyAgCisgICAgICAgICAgICBtX0ZDRFN0YXJ0XyA9IG1fRkNETGltaXRfIC0gMTsKKyAgICAgICAgICAgIC8vIEluZGljYXRlIHdoZXJlIHRvIGNvbnRpbnVlIGluIG1haW4gaW5wdXQgc3RyaW5nIGFmdGVyIAorICAgICAgICAgICAgLy8gZXhoYXVzdGluZyB0aGUgYnVmZmVyCisgICAgICAgICAgICByZXR1cm4gSUdOT1JBQkxFOworICAgICAgICB9CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiA8cD5TcGVjaWFsIENFIG1hbmFnZW1lbnQuIEV4cGFuc2lvbnMsIGNvbnRyYWN0aW9ucyBldGMuLi48L3A+CisgICAgICogQHBhcmFtIGNvbGxhdG9yIGNhbiBiZSBwbGFpbiBVQ0EgCisgICAgICogQHBhcmFtIGNlIGN1cnJlbnQgY2UKKyAgICAgKiBAcGFyYW0gY2ggY3VycmVudCBjaGFyYWN0ZXIKKyAgICAgKiBAcmV0dXJuIG5leHQgc3BlY2lhbCBjZQorICAgICAqLworICAgIHByaXZhdGUgaW50IG5leHRTcGVjaWFsKFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yLCBpbnQgY2UsIGNoYXIgY2gpIAorICAgIHsKKyAgICAgICAgaW50IGNvZGVwb2ludCA9IGNoOworICAgICAgICBCYWNrdXAgZW50cnliYWNrdXAgPSBtX3V0aWxTcGVjaWFsRW50cnlCYWNrVXBfOworICAgICAgICAvLyB0aGlzIGlzIHRvIGhhbmRsZSByZWN1cnNpdmUgbG9vcGluZworICAgICAgICBpZiAoZW50cnliYWNrdXAgIT0gbnVsbCkgeworICAgICAgICAgICAgbV91dGlsU3BlY2lhbEVudHJ5QmFja1VwXyA9IG51bGw7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBlbnRyeWJhY2t1cCA9IG5ldyBCYWNrdXAoKTsKKyAgICAgICAgfQorICAgICAgICBiYWNrdXBJbnRlcm5hbFN0YXRlKGVudHJ5YmFja3VwKTsKKyAgICAgICAgdHJ5IHsgLy8gZm9yY2VzIGl0IHRvIGFzc2lnbiBtX3V0aWxTcGVjaWFsRW50cnlCYWNrdXBfCisgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgIC8vIFRoaXMgbG9vcCB3aWxsIHJlcGVhdCBvbmx5IGluIHRoZSBjYXNlIG9mIGNvbnRyYWN0aW9ucywgCisgICAgICAgICAgICAgICAgLy8gc3Vycm9nYXRlCisgICAgICAgICAgICAgICAgc3dpdGNoKFJ1bGVCYXNlZENvbGxhdG9yLmdldFRhZyhjZSkpIHsKKyAgICAgICAgICAgICAgICBjYXNlIENFX05PVF9GT1VORF9UQUdfOgorICAgICAgICAgICAgICAgICAgICAvLyBpbXBvc3NpYmxlIGNhc2UgZm9yIGljdTRqCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBjZTsKKyAgICAgICAgICAgICAgICBjYXNlIFJ1bGVCYXNlZENvbGxhdG9yLkNFX1NVUlJPR0FURV9UQUdfOgorICAgICAgICAgICAgICAgICAgICBpZiAoaXNFbmQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIElHTk9SQUJMRTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBiYWNrdXBJbnRlcm5hbFN0YXRlKG1fdXRpbFNwZWNpYWxCYWNrVXBfKTsKKyAgICAgICAgICAgICAgICAgICAgY2hhciB0cmFpbCA9IG5leHRDaGFyKCk7CisgICAgICAgICAgICAgICAgICAgIGNlID0gbmV4dFN1cnJvZ2F0ZShjb2xsYXRvciwgY2UsIHRyYWlsKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gY2FsY3VsYXRlIHRoZSBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQgdmFsdWUsIAorICAgICAgICAgICAgICAgICAgICAvLyBpZiBzdXJyb2dhdGUgd2FzIG5vdCB0YWlsb3JlZCB3ZSBnbyBvbmUgbW9yZSByb3VuZAorICAgICAgICAgICAgICAgICAgICBjb2RlcG9pbnQgPSAKKyAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRSYXdTdXBwbGVtZW50YXJ5KGNoLCB0cmFpbCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQ0VfVEhBSV9UQUdfOgorICAgICAgICAgICAgICAgICAgICBjZSA9IG5leHRUaGFpKGNvbGxhdG9yLCBjZSwgY2gpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIENFX1NQRUNfUFJPQ19UQUdfOgorICAgICAgICAgICAgICAgICAgICBjZSA9IG5leHRTcGVjaWFsUHJlZml4KGNvbGxhdG9yLCBjZSwgZW50cnliYWNrdXApOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIENFX0NPTlRSQUNUSU9OX1RBR186CisgICAgICAgICAgICAgICAgICAgIGNlID0gbmV4dENvbnRyYWN0aW9uKGNvbGxhdG9yLCBjZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQ0VfTE9OR19QUklNQVJZX1RBR186CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXh0TG9uZ1ByaW1hcnkoY2UpOworICAgICAgICAgICAgICAgIGNhc2UgQ0VfRVhQQU5TSU9OX1RBR186CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXh0RXhwYW5zaW9uKGNvbGxhdG9yLCBjZSk7CisgICAgICAgICAgICAgICAgICAgIC8vIHZhcmlvdXMgaW1wbGljaXRzIG9wdGltaXphdGlvbgorICAgICAgICAgICAgICAgIGNhc2UgQ0VfQ0pLX0lNUExJQ0lUX1RBR186ICAgIAorICAgICAgICAgICAgICAgICAgICAvLyAweDM0MDAtMHg0REI1LCAweDRFMDAtMHg5RkE1LCAweEY5MDAtMHhGQTJECisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXh0SW1wbGljaXQoY29kZXBvaW50KTsKKyAgICAgICAgICAgICAgICBjYXNlIENFX0lNUExJQ0lUX1RBR186IC8vIGV2ZXJ5dGhpbmcgdGhhdCBpcyBub3QgZGVmaW5lZCAKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5leHRJbXBsaWNpdChjb2RlcG9pbnQpOworICAgICAgICAgICAgICAgIGNhc2UgQ0VfVFJBSUxfU1VSUk9HQVRFX1RBR186IAorICAgICAgICAgICAgICAgICAgICByZXR1cm4gSUdOT1JBQkxFOyAvLyBEQzAwLURGRkYgYnJva2VuIHN1cnJvZ2F0ZQorICAgICAgICAgICAgICAgIGNhc2UgQ0VfTEVBRF9TVVJST0dBVEVfVEFHXzogIC8vIEQ4MDAtREJGRgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV4dFN1cnJvZ2F0ZShjaCk7CisgICAgICAgICAgICAgICAgY2FzZSBDRV9IQU5HVUxfU1lMTEFCTEVfVEFHXzogLy8gQUMwMC1EN0FGCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXh0SGFuZ3VsKGNvbGxhdG9yLCBjaCk7CisgICAgICAgICAgICAgICAgY2FzZSBDRV9DSEFSU0VUX1RBR186CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBub3QgeWV0IGltcGxlbWVudGVkIHByb2JhYmx5IGFmdGVyIDEuOAorICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ0VfTk9UX0ZPVU5EXzsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBjZSA9IElHTk9SQUJMRTsKKyAgICAgICAgICAgICAgICAgICAgLy8gc3lud2VlIHRvZG8sIHRocm93IGV4Y2VwdGlvbiBvciBzb21ldGhpbmcgaGVyZS4KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFSdWxlQmFzZWRDb2xsYXRvci5pc1NwZWNpYWwoY2UpKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgIG1fdXRpbFNwZWNpYWxFbnRyeUJhY2tVcF8gPSBlbnRyeWJhY2t1cDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY2U7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXR0aW5nIHRoZSBwcmV2aW91cyBUaGFpIGNlCisgICAgICogQHBhcmFtIGNvbGxhdG9yIGN1cnJlbnQgY29sbGF0b3IKKyAgICAgKiBAcGFyYW0gY2ggY3VycmVudCBjaGFyYWN0ZXIKKyAgICAgKiBAcmV0dXJuIHByZXZpb3VzIFRoYWkgY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBwcmV2aW91c1RoYWkoUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IsIGludCBjZSwgY2hhciBjaCkKKyAgICB7CisgICAgICAgIGlmIChtX2J1ZmZlck9mZnNldF8gPj0gMCB8fCBtX3NvdXJjZV8uZ2V0SW5kZXgoKSA9PSAwKSB7CisgICAgICAgICAgICAvLyBpZiB3ZSBoYXZlIGFscmVhZHkgc3dhcHBlZCBvciBhdCB0aGUgc3RhcnQgb2YgdGhlIHNvdXJjZQorICAgICAgICAgICAgLy8gVHJlYXQgVGhhaSBhcyBhIGxlbmd0aCBvbmUgZXhwYW5zaW9uCisgICAgICAgICAgICByZXR1cm4gY29sbGF0b3IubV9leHBhbnNpb25fW2dldEV4cGFuc2lvbk9mZnNldChjb2xsYXRvciwgY2UpXTsKKyAgICAgICAgfQorICAgICAgICBjaGFyIHByZXZjaCA9IHByZXZpb3VzQ2hhcigpOworICAgICAgICBpZiAoIWlzVGhhaVByZVZvd2VsKHByZXZjaCkpIHsKKyAgICAgICAgICAgIC8vIHdlIG5vdyByZWFycmFuZ2UgdW5jb25kaXRpb25hbGx5IGRvIG5vdCBjaGVjayBmb3IgYmFzZSBjb25zb25hbnQKKyAgICAgICAgICAgIGlmIChwcmV2Y2ggIT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgIG5leHRDaGFyKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBUcmVhdCBUaGFpIGFzIGEgbGVuZ3RoIG9uZSBleHBhbnNpb24KKyAgICAgICAgICAgIHJldHVybiBjb2xsYXRvci5tX2V4cGFuc2lvbl9bZ2V0RXhwYW5zaW9uT2Zmc2V0KGNvbGxhdG9yLCBjZSldOyAgIAorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBNb3ZlIHRoZSBwcmV2b3dlbCBhbmQgdGhlIGZvbGxvd2luZyBiYXNlIENvbnNvbmFudCBpbnRvIHRoZQorICAgICAgICAvLyBub3JtYWxpemF0aW9uIGJ1ZmZlciB3aXRoIHRoZWlyIG9yZGVyIHN3YXBwZWQKKyAgICAgICAgLy8gYnVmZmVyIGlzIGFsd2F5cyBjbGVhbiB3aGVuIHdlIGFyZSBpbiB0aGUgc291cmNlIHN0cmluZworICAgICAgICBtX2J1ZmZlcl8uYXBwZW5kKGNoKTsKKyAgICAgICAgbV9idWZmZXJfLmFwcGVuZChwcmV2Y2gpOworICAgICAgICBtX2J1ZmZlck9mZnNldF8gPSAyOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGlmIChtX3NvdXJjZV8uZ2V0SW5kZXgoKSA9PSAwKSB7CisgICAgICAgICAgICBtX0ZDRFN0YXJ0XyA9IDA7CisgICAgICAgICAgICBtX0ZDRExpbWl0XyA9IDI7CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbV9GQ0RTdGFydF8gPSBtX3NvdXJjZV8uZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgIG1fRkNETGltaXRfID0gbV9GQ0RTdGFydF8gKyAyOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gSUdOT1JBQkxFOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU3BlY2lhbCBwcm9jZXNzaW5nIGlzIGdldHRpbmcgYSBDRSB0aGF0IGlzIHByZWNlZGVkIGJ5IGEgY2VydGFpbiBwcmVmaXguCisgICAgICogQ3VycmVudGx5IHRoaXMgaXMgb25seSBuZWVkZWQgZm9yIG9wdGltaXppbmcgSmFwYW5lc2UgbGVuZ3RoIGFuZCAKKyAgICAgKiBpdGVyYXRpb24gbWFya3MuIFdoZW4gd2UgZW5jb3V0ZXIgYSBzcGVjaWFsIHByb2Nlc3NpbmcgdGFnLCB3ZSBnbyAKKyAgICAgKiBiYWNrd2FyZHMgYW5kIHRyeSB0byBzZWUgaWYgd2UgaGF2ZSBhIG1hdGNoLiBDb250cmFjdGlvbiB0YWJsZXMgYXJlIHVzZWQgCisgICAgICogLSBzbyB0aGUgd2hvbGUgcHJvY2VzcyBpcyBub3QgdW5saWtlIGNvbnRyYWN0aW9uLiBwcmVmaXggZGF0YSBpcyBzdG9yZWQgCisgICAgICogYmFja3dhcmRzIGluIHRoZSB0YWJsZS4KKyAgICAgKiBAcGFyYW0gY29sbGF0b3IgY3VycmVudCBjb2xsYXRvcgorICAgICAqIEBwYXJhbSBjZSBjdXJyZW50IGNlCisgICAgICogQHJldHVybiBwcmV2aW91cyBjZQorICAgICAqLworICAgIHByaXZhdGUgaW50IHByZXZpb3VzU3BlY2lhbFByZWZpeChSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciwgaW50IGNlKQorICAgIHsKKyAgICAgICAgYmFja3VwSW50ZXJuYWxTdGF0ZShtX3V0aWxTcGVjaWFsQmFja1VwXyk7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAvLyBwb3NpdGlvbiBvdXJzZWx2ZXMgYXQgdGhlIGJlZ2luaW5nIG9mIGNvbnRyYWN0aW9uIHNlcXVlbmNlIAorICAgICAgICAgICAgaW50IG9mZnNldCA9IGdldENvbnRyYWN0aW9uT2Zmc2V0KGNvbGxhdG9yLCBjZSk7CisgICAgICAgICAgICBpbnQgZW50cnlvZmZzZXQgPSBvZmZzZXQ7CisgICAgICAgICAgICBpZiAoaXNCYWNrd2FyZHNTdGFydCgpKSB7CisgICAgICAgICAgICAgICAgY2UgPSBjb2xsYXRvci5tX2NvbnRyYWN0aW9uQ0VfW29mZnNldF07CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjaGFyIHByZXZjaCA9IHByZXZpb3VzQ2hhcigpOworICAgICAgICAgICAgd2hpbGUgKHByZXZjaCA+IGNvbGxhdG9yLm1fY29udHJhY3Rpb25JbmRleF9bb2Zmc2V0XSkgeyAKKyAgICAgICAgICAgICAgICAvLyBzaW5jZSBjb250cmFjdGlvbiBjb2RlcG9pbnRzIGFyZSBvcmRlcmVkLCB3ZSBza2lwIGFsbCB0aGF0IAorICAgICAgICAgICAgICAgIC8vIGFyZSBzbWFsbGVyCisgICAgICAgICAgICAgICAgb2Zmc2V0ICsrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHByZXZjaCA9PSBjb2xsYXRvci5tX2NvbnRyYWN0aW9uSW5kZXhfW29mZnNldF0pIHsKKyAgICAgICAgICAgICAgICBjZSA9IGNvbGxhdG9yLm1fY29udHJhY3Rpb25DRV9bb2Zmc2V0XTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8vIGlmIHRoZXJlIGlzIGEgY29tcGxldGVseSBpZ25vcmFibGUgY29kZSBwb2ludCBpbiB0aGUgbWlkZGxlIAorICAgICAgICAgICAgICAgIC8vIG9mIGEgcHJlZml4LCB3ZSBuZWVkIHRvIGFjdCBhcyBpZiBpdCdzIG5vdCB0aGVyZSBhc3N1bXB0aW9uOiAKKyAgICAgICAgICAgICAgICAvLyAncmVhbCcgbm9uY2hhcmFjdGVycyAoKmZmZmUsICpmZmZmLCBmZGQwLWZkZWYgYXJlIHNldCB0byAKKyAgICAgICAgICAgICAgICAvLyB6ZXJvKSAKKyAgICAgICAgICAgICAgICAvLyBsb25lIHN1cnJvZ2F0ZXMgY2Fubm90IGJlIHNldCB0byB6ZXJvIGFzIGl0IHdvdWxkIGJyZWFrIAorICAgICAgICAgICAgICAgIC8vIG90aGVyIHByb2Nlc3NpbmcgCisgICAgICAgICAgICAgICAgaW50IGlzWmVyb0NFID0gY29sbGF0b3IubV90cmllXy5nZXRMZWFkVmFsdWUocHJldmNoKTsgCisgICAgICAgICAgICAgICAgLy8gaXQncyBlYXN5IGZvciBCTVAgY29kZSBwb2ludHMgCisgICAgICAgICAgICAgICAgaWYgKGlzWmVyb0NFID09IDApIHsgCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAKKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIGVsc2UgaWYgKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUocHJldmNoKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICB8fCBVVEYxNi5pc0xlYWRTdXJyb2dhdGUocHJldmNoKSkgeyAKKyAgICAgICAgICAgICAgICAgICAgLy8gZm9yIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMsIHdlIGhhdmUgdG8gY2hlY2sgdGhlIG5leHQgb25lIAorICAgICAgICAgICAgICAgICAgICAvLyBzaXR1YXRpb25zIHdoZXJlIHdlIGFyZSBnb2luZyB0byBpZ25vcmUgCisgICAgICAgICAgICAgICAgICAgIC8vIDEuIGJlZ2lubmluZyBvZiB0aGUgc3RyaW5nOiBzY2hhciBpcyBhIGxvbmUgc3Vycm9nYXRlIAorICAgICAgICAgICAgICAgICAgICAvLyAyLiBzY2hhciBpcyBhIGxvbmUgc3Vycm9nYXRlIAorICAgICAgICAgICAgICAgICAgICAvLyAzLiBzY2hhciBpcyBhIHRyYWlsIHN1cnJvZ2F0ZSBpbiBhIHZhbGlkIHN1cnJvZ2F0ZSAKKyAgICAgICAgICAgICAgICAgICAgLy8gICAgc2VxdWVuY2UgdGhhdCBpcyBleHBsaWNpdGx5IHNldCB0byB6ZXJvLiAKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFpc0JhY2t3YXJkc1N0YXJ0KCkpIHsgCisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGxlYWQgPSBwcmV2aW91c0NoYXIoKTsgCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGxlYWQpKSB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzWmVyb0NFID0gY29sbGF0b3IubV90cmllXy5nZXRMZWFkVmFsdWUobGVhZCk7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChSdWxlQmFzZWRDb2xsYXRvci5nZXRUYWcoaXNaZXJvQ0UpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBSdWxlQmFzZWRDb2xsYXRvci5DRV9TVVJST0dBVEVfVEFHXykgeyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGZpbmFsQ0UgPSBjb2xsYXRvci5tX3RyaWVfLmdldFRyYWlsVmFsdWUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzWmVyb0NFICYgMHhGRkZGRkYsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2Y2gpOyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpbmFsQ0UgPT0gMCkgeyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgaXMgYSByZWFsLCBhc3NpZ25lZCBjb21wbGV0ZWx5IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWdub3JhYmxlIGNvZGUgcG9pbnQgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0Q2hhcigpOyAvLyByZXZlcnQgdG8gb3JpZ2luYWwgb2Zmc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbG9uZSBzdXJyb2dhdGUsIGNvbXBsZXRlbHkgaWdub3JhYmxlIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICBuZXh0Q2hhcigpOyAvLyByZXZlcnQgdG8gb3JpZ2luYWwgb2Zmc2V0CisgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgIGVsc2UgeyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsb25lIHN1cnJvZ2F0ZSBhdCB0aGUgYmVnZ2luaW5nLCBjb21wbGV0ZWx5IGlnbm9yYWJsZSAKKyAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsgCisgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgfSAKKworICAgICAgICAgICAgICAgIC8vIGNoYXIgd2FzIG5vdCBpbiB0aGUgdGFibGUuIHByZWZpeCBub3QgZm91bmQKKyAgICAgICAgICAgICAgICBjZSA9IGNvbGxhdG9yLm1fY29udHJhY3Rpb25DRV9bZW50cnlvZmZzZXRdOworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIGlmICghaXNTcGVjaWFsUHJlZml4VGFnKGNlKSkgeworICAgICAgICAgICAgICAgIC8vIGNoYXIgd2FzIGluIHRoZSBjb250cmFjdGlvbiB0YWJsZSwgYW5kIHRoZSBjb3JyZXNwb25kaW5nIGNlIAorICAgICAgICAgICAgICAgIC8vIGlzIG5vdCBhIHByZWZpeCBjZS4gIFdlIGZvdW5kIHRoZSBwcmVmaXgsIGJyZWFrIG91dCBvZiBsb29wLCAKKyAgICAgICAgICAgICAgICAvLyB0aGlzIGNlIHdpbGwgZW5kIHVwIGJlaW5nIHJldHVybmVkLiAKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKG1fdXRpbFNwZWNpYWxCYWNrVXBfKTsKKyAgICAgICAgcmV0dXJuIGNlOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0cmlldmVzIHRoZSBwcmV2aW91cyBjb250cmFjdGlvbiBjZS4gVG8gZW5zdXJlIHRoYXQgdGhlIGJhY2t3YXJkcyBhbmQgCisgICAgICogZm9yd2FyZHMgaXRlcmF0aW9uIG1hdGNoZXMsIHdlIHRha2UgdGhlIGN1cnJlbnQgcmVnaW9uIG9mIG1vc3QgcG9zc2libGUgCisgICAgICogbWF0Y2ggYW5kIHBhc3MgaXQgdGhyb3VnaCB0aGUgZm9yd2FyZCBpdGVyYXRpb24uIFRoaXMgd2lsbCBlbnN1cmUgdGhhdCAKKyAgICAgKiB0aGUgb2JzdGluYXRlIHByb2JsZW0gb2Ygb3ZlcmxhcHBpbmcgY29udHJhY3Rpb25zIHdpbGwgbm90IG9jY3VyLgorICAgICAqIEBwYXJhbSBjb2xsYXRvciBjdXJyZW50IGNvbGxhdG9yCisgICAgICogQHBhcmFtIGNlIGN1cnJlbnQgY2UKKyAgICAgKiBAcGFyYW0gY2ggY3VycmVudCBjaGFyYWN0ZXIKKyAgICAgKiBAcmV0dXJuIHByZXZpb3VzIGNvbnRyYWN0aW9uIGNlCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgcHJldmlvdXNDb250cmFjdGlvbihSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciwgaW50IGNlLCBjaGFyIGNoKQorICAgIHsKKyAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXy5zZXRMZW5ndGgoMCk7CisgICAgICAgIHdoaWxlIChjb2xsYXRvci5pc1Vuc2FmZShjaCkpIHsKKyAgICAgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8uaW5zZXJ0KDAsIGNoKTsKKyAgICAgICAgICAgIGNoID0gcHJldmlvdXNDaGFyKCk7CisgICAgICAgICAgICBpZiAoaXNCYWNrd2FyZHNTdGFydCgpKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gYWRkcyB0aGUgaW5pdGlhbCBiYXNlIGNoYXJhY3RlciB0byB0aGUgc3RyaW5nCisgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8uaW5zZXJ0KDAsIGNoKTsgICAKKyAgICAgICAgCisgICAgICAgIC8vIGEgbmV3IGNvbGxhdGlvbiBlbGVtZW50IGl0ZXJhdG9yIGlzIHVzZWQgdG8gc2ltcGx5IHRoaW5ncywgc2luY2UgCisgICAgICAgIC8vIHVzaW5nIHRoZSBjdXJyZW50IGNvbGxhdGlvbiBlbGVtZW50IGl0ZXJhdG9yIHdpbGwgbWVhbiB0aGF0IHRoZSAKKyAgICAgICAgLy8gZm9yd2FyZCBhbmQgYmFja3dhcmRzIGl0ZXJhdGlvbiB3aWxsIHNoYXJlIGFuZCBjaGFuZ2UgdGhlIHNhbWUgCisgICAgICAgIC8vIGJ1ZmZlcnMuIGl0IGlzIGdvaW5nIHRvIGJlIHBhaW5mdWwuIAorICAgICAgICBpbnQgb3JpZ2luYWxkZWNvbXAgPSBjb2xsYXRvci5nZXREZWNvbXBvc2l0aW9uKCk7CisgICAgICAgIC8vIGZvciBmYXN0ZXIgYWNjZXNzLCBzaW5jZSBzdHJpbmcgd291bGQgaGF2ZSBiZWVuIG5vcm1hbGl6ZWQgYWJvdmUKKyAgICAgICAgY29sbGF0b3Iuc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5OT19ERUNPTVBPU0lUSU9OKTsgCisgICAgICAgIGlmIChtX3V0aWxDb2xFSXRlcl8gPT0gbnVsbCkgeworICAgICAgICAgICAgbV91dGlsQ29sRUl0ZXJfID0gbmV3IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8udG9TdHJpbmcoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxhdG9yKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG1fdXRpbENvbEVJdGVyXy5tX2NvbGxhdG9yXyA9IGNvbGxhdG9yOworICAgICAgICAgICAgbV91dGlsQ29sRUl0ZXJfLnNldFRleHQobV91dGlsU3RyaW5nQnVmZmVyXy50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgICAgICBjZSA9IG1fdXRpbENvbEVJdGVyXy5uZXh0KCk7CisgICAgICAgIG1fQ0VCdWZmZXJTaXplXyA9IDA7CisgICAgICAgIHdoaWxlIChjZSAhPSBOVUxMT1JERVIpIHsKKyAgICAgICAgICAgIGlmIChtX0NFQnVmZmVyU2l6ZV8gPT0gbV9DRUJ1ZmZlcl8ubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgLy8gaW5jcmVhc2luZyBjZWJ1ZmZlciBzaXplCisgICAgICAgICAgICAgICAgICAgIGludCB0ZW1wYnVmZmVyW10gPSBuZXcgaW50W21fQ0VCdWZmZXJfLmxlbmd0aCArIDUwXTsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShtX0NFQnVmZmVyXywgMCwgdGVtcGJ1ZmZlciwgMCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9DRUJ1ZmZlcl8ubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgbV9DRUJ1ZmZlcl8gPSB0ZW1wYnVmZmVyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTExPUkRFUjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX0NFQnVmZmVyX1ttX0NFQnVmZmVyU2l6ZV8gKytdID0gY2U7CisgICAgICAgICAgICBjZSA9IG1fdXRpbENvbEVJdGVyXy5uZXh0KCk7CisgICAgICAgIH0KKyAgICAgICAgY29sbGF0b3Iuc2V0RGVjb21wb3NpdGlvbihvcmlnaW5hbGRlY29tcCk7ICAgICAgIAorICAgICAgICBtX0NFQnVmZmVyT2Zmc2V0XyA9IG1fQ0VCdWZmZXJTaXplXyAtIDE7CisgICAgICAgIHJldHVybiBtX0NFQnVmZmVyX1ttX0NFQnVmZmVyT2Zmc2V0X107CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBwcmV2aW91cyBsb25nIHByaW1hcnkgY2VzCisgICAgICogQHBhcmFtIGNlIGxvbmcgcHJpbWFyeSBjZQorICAgICAqIEByZXR1cm4gcHJldmlvdXMgbG9uZyBwcmltYXJ5IGNlcworICAgICAqLworICAgIHByaXZhdGUgaW50IHByZXZpb3VzTG9uZ1ByaW1hcnkoaW50IGNlKQorICAgIHsKKyAgICAgICAgbV9DRUJ1ZmZlclNpemVfID0gMDsKKyAgICAgICAgbV9DRUJ1ZmZlcl9bbV9DRUJ1ZmZlclNpemVfICsrXSA9IAorICAgICAgICAgICAgKChjZSAmIDB4RkZGRjAwKSA8PCA4KSB8IChDRV9CWVRFX0NPTU1PTl8gPDwgOCkgfCBDRV9CWVRFX0NPTU1PTl87CisgICAgICAgIG1fQ0VCdWZmZXJfW21fQ0VCdWZmZXJTaXplXyArK10gPSAoKGNlICYgMHhGRikgPDwgMjQpIAorICAgICAgICAgICAgfCBSdWxlQmFzZWRDb2xsYXRvci5DRV9DT05USU5VQVRJT05fTUFSS0VSXzsKKyAgICAgICAgbV9DRUJ1ZmZlck9mZnNldF8gPSBtX0NFQnVmZmVyU2l6ZV8gLSAxOworICAgICAgICByZXR1cm4gbV9DRUJ1ZmZlcl9bbV9DRUJ1ZmZlck9mZnNldF9dOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgcHJldmlvdXMgZXhwYW5zaW9uIGNlcworICAgICAqIEBwYXJhbSBjb2xsYXRvciBjdXJyZW50IGNvbGxhdG9yCisgICAgICogQHBhcmFtIGNlIGN1cnJlbnQgY2UKKyAgICAgKiBAcmV0dXJuIHByZXZpb3VzIGV4cGFuc2lvbiBjZQorICAgICAqLworICAgIHByaXZhdGUgaW50IHByZXZpb3VzRXhwYW5zaW9uKFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yLCBpbnQgY2UpCisgICAgeworICAgICAgICAvLyBmaW5kIHRoZSBvZmZzZXQgdG8gZXhwYW5zaW9uIHRhYmxlCisgICAgICAgIGludCBvZmZzZXQgPSBnZXRFeHBhbnNpb25PZmZzZXQoY29sbGF0b3IsIGNlKTsKKyAgICAgICAgbV9DRUJ1ZmZlclNpemVfID0gZ2V0RXhwYW5zaW9uQ291bnQoY2UpOworICAgICAgICBpZiAobV9DRUJ1ZmZlclNpemVfICE9IDApIHsKKyAgICAgICAgICAgIC8vIGxlc3MgdGhhbiAxNiBlbGVtZW50cyBpbiBleHBhbnNpb24KKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbV9DRUJ1ZmZlclNpemVfOyBpICsrKSB7CisgICAgICAgICAgICAgICAgbV9DRUJ1ZmZlcl9baV0gPSBjb2xsYXRvci5tX2V4cGFuc2lvbl9bb2Zmc2V0ICsgaV07CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAvLyBudWxsIHRlcm1pbmF0ZWQgY2VzCisgICAgICAgICAgICB3aGlsZSAoY29sbGF0b3IubV9leHBhbnNpb25fW29mZnNldCArIG1fQ0VCdWZmZXJTaXplX10gIT0gMCkgeworICAgICAgICAgICAgICAgIG1fQ0VCdWZmZXJfW21fQ0VCdWZmZXJTaXplX10gPSAKKyAgICAgICAgICAgICAgICAgICAgY29sbGF0b3IubV9leHBhbnNpb25fW29mZnNldCArIG1fQ0VCdWZmZXJTaXplX107CisgICAgICAgICAgICAgICAgbV9DRUJ1ZmZlclNpemVfICsrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG1fQ0VCdWZmZXJPZmZzZXRfID0gbV9DRUJ1ZmZlclNpemVfIC0gMTsKKyAgICAgICAgcmV0dXJuIG1fQ0VCdWZmZXJfW21fQ0VCdWZmZXJPZmZzZXRfXTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgcHJldmlvdXMgaGFuZ3VsIGNlcworICAgICAqIEBwYXJhbSBjb2xsYXRvciBjdXJyZW50IGNvbGxhdG9yCisgICAgICogQHBhcmFtIGNoIGN1cnJlbnQgY2hhcmFjdGVyCisgICAgICogQHJldHVybiBwcmV2aW91cyBoYW5ndWwgY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBwcmV2aW91c0hhbmd1bChSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciwgY2hhciBjaCkKKyAgICB7CisgICAgICAgIGNoYXIgTCA9IChjaGFyKShjaCAtIEhBTkdVTF9TQkFTRV8pOworICAgICAgICAvLyB3ZSBkbyBpdCBpbiB0aGlzIG9yZGVyIHNpbmNlIHNvbWUgY29tcGlsZXJzIGNhbiBkbyAlIGFuZCAvIGluIG9uZQorICAgICAgICAvLyBvcGVyYXRpb24KKyAgICAgICAgY2hhciBUID0gKGNoYXIpKEwgJSBIQU5HVUxfVENPVU5UXyk7CisgICAgICAgIEwgLz0gSEFOR1VMX1RDT1VOVF87CisgICAgICAgIGNoYXIgViA9IChjaGFyKShMICUgSEFOR1VMX1ZDT1VOVF8pOworICAgICAgICBMIC89IEhBTkdVTF9WQ09VTlRfOworICAgICAgICAKKyAgICAgICAgLy8gb2Zmc2V0IHRoZW0KKyAgICAgICAgTCArPSBIQU5HVUxfTEJBU0VfOworICAgICAgICBWICs9IEhBTkdVTF9WQkFTRV87CisgICAgICAgIFQgKz0gSEFOR1VMX1RCQVNFXzsKKyAgICAgICAgCisgICAgICAgIG1fQ0VCdWZmZXJTaXplXyA9IDA7CisgICAgICAgIGlmICghY29sbGF0b3IubV9pc0phbW9TcGVjaWFsXykgeworICAgICAgICAgICAgbV9DRUJ1ZmZlcl9bbV9DRUJ1ZmZlclNpemVfICsrXSA9CisgICAgICAgICAgICAgICAgY29sbGF0b3IubV90cmllXy5nZXRMZWFkVmFsdWUoTCk7CisgICAgICAgICAgICBtX0NFQnVmZmVyX1ttX0NFQnVmZmVyU2l6ZV8gKytdID0KKyAgICAgICAgICAgICAgICBjb2xsYXRvci5tX3RyaWVfLmdldExlYWRWYWx1ZShWKTsKKyAgICAgICAgICAgIGlmIChUICE9IEhBTkdVTF9UQkFTRV8pIHsKKyAgICAgICAgICAgICAgICBtX0NFQnVmZmVyX1ttX0NFQnVmZmVyU2l6ZV8gKytdID0KKyAgICAgICAgICAgICAgICAgICAgY29sbGF0b3IubV90cmllXy5nZXRMZWFkVmFsdWUoVCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX0NFQnVmZmVyT2Zmc2V0XyA9IG1fQ0VCdWZmZXJTaXplXyAtIDE7CisgICAgICAgICAgICByZXR1cm4gbV9DRUJ1ZmZlcl9bbV9DRUJ1ZmZlck9mZnNldF9dOworICAgICAgICB9IAorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vIFNpbmNlIEhhbmd1bHMgcGFzcyB0aGUgRkNEIGNoZWNrLCBpdCBpcyBndWFyYW50ZWVkIHRoYXQgd2Ugd29uJ3QgCisgICAgICAgICAgICAvLyBiZSBpbiB0aGUgbm9ybWFsaXphdGlvbiBidWZmZXIgaWYgc29tZXRoaW5nIGxpa2UgdGhpcyBoYXBwZW5zCisgICAgICAgICAgICAvLyBNb3ZlIEphbW9zIGludG8gbm9ybWFsaXphdGlvbiBidWZmZXIKKyAgICAgICAgICAgIG1fYnVmZmVyXy5hcHBlbmQoTCk7CisgICAgICAgICAgICBtX2J1ZmZlcl8uYXBwZW5kKFYpOworICAgICAgICAgICAgaWYgKFQgIT0gSEFOR1VMX1RCQVNFXykgeworICAgICAgICAgICAgICAgIG1fYnVmZmVyXy5hcHBlbmQoVCk7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBtX0ZDRFN0YXJ0XyA9IG1fc291cmNlXy5nZXRJbmRleCgpOworICAgICAgICAgICAgbV9GQ0RMaW1pdF8gPSBtX0ZDRFN0YXJ0XyArIDE7CisgICAgICAgICAgICByZXR1cm4gSUdOT1JBQkxFOworICAgICAgICB9CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIGltcGxpY2l0IGNvZGVwb2ludCBjZXMKKyAgICAgKiBAcGFyYW0gY29kZXBvaW50IGN1cnJlbnQgY29kZXBvaW50CisgICAgICogQHJldHVybiBpbXBsaWNpdCBjb2RlcG9pbnQgY2VzCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgcHJldmlvdXNJbXBsaWNpdChpbnQgY29kZXBvaW50KQorICAgIHsKKyAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLmlzTGVnYWwoY29kZXBvaW50KSkgeworICAgICAgICAgICAgcmV0dXJuIElHTk9SQUJMRTsgLy8gaWxsZWdhbCBjb2RlIHZhbHVlLCBjb21wbGV0ZWx5IGlnbm9yZWFibGUhIAorICAgICAgICB9CisgICAgICAgIGludCByZXN1bHQgPSBnZXRJbXBsaWNpdFByaW1hcnkoY29kZXBvaW50KTsKKyAgICAgICAgbV9DRUJ1ZmZlclNpemVfID0gMjsKKyAgICAgICAgbV9DRUJ1ZmZlck9mZnNldF8gPSAxOworICAgICAgICBtX0NFQnVmZmVyX1swXSA9IChyZXN1bHQgJiBSdWxlQmFzZWRDb2xsYXRvci5DRV9QUklNQVJZX01BU0tfKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICB8IDB4MDAwMDA1MDU7CisgICAgICAgIG1fQ0VCdWZmZXJfWzFdID0gKChyZXN1bHQgJiAweDAwMDBGRkZGKSA8PCAxNikgfCAweDAwMDAwMEMwOworICAgICAgICByZXR1cm4gbV9DRUJ1ZmZlcl9bMV07CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBwcmV2aW91cyBzdXJyb2dhdGUgY2UKKyAgICAgKiBAcGFyYW0gY2ggY3VycmVudCBjaGFyYWN0ZXIKKyAgICAgKiBAcmV0dXJuIHByZXZpb3VzIHN1cnJvZ2F0ZSBjZQorICAgICAqLworICAgIHByaXZhdGUgaW50IHByZXZpb3VzU3Vycm9nYXRlKGNoYXIgY2gpCisgICAgeworICAgICAgICBpZiAoaXNCYWNrd2FyZHNTdGFydCgpKSB7CisgICAgICAgICAgICAvLyB3ZSBhcmUgYXQgdGhlIHN0YXJ0IG9mIHRoZSBzdHJpbmcsIHdyb25nIHBsYWNlIHRvIGJlIGF0CisgICAgICAgICAgICByZXR1cm4gSUdOT1JBQkxFOworICAgICAgICB9CisgICAgICAgIGNoYXIgcHJldmNoID0gcHJldmlvdXNDaGFyKCk7IAorICAgICAgICAvLyBIYW5kbGVzIEhhbiBhbmQgU3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIGhlcmUuCisgICAgICAgIGlmIChVVEYxNi5pc0xlYWRTdXJyb2dhdGUocHJldmNoKSkgeworICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzSW1wbGljaXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRSYXdTdXBwbGVtZW50YXJ5KHByZXZjaCwgY2gpKTsKKyAgICAgICAgfSAKKyAgICAgICAgaWYgKHByZXZjaCAhPSBDaGFyYWN0ZXJJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICBuZXh0Q2hhcigpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBJR05PUkFCTEU7IC8vIGNvbXBsZXRlbHkgaWdub3JhYmxlIAorICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAvKioKKyAgICAgKiA8cD5TcGVjaWFsIENFIG1hbmFnZW1lbnQuIEV4cGFuc2lvbnMsIGNvbnRyYWN0aW9ucyBldGMuLi48L3A+CisgICAgICogQHBhcmFtIGNvbGxhdG9yIGNhbiBiZSBwbGFpbiBVQ0EgCisgICAgICogQHBhcmFtIGNlIGN1cnJlbnQgY2UKKyAgICAgKiBAcGFyYW0gY2ggY3VycmVudCBjaGFyYWN0ZXIKKyAgICAgKiBAcmV0dXJuIHByZXZpb3VzIHNwZWNpYWwgY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBwcmV2aW91c1NwZWNpYWwoUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IsIGludCBjZSwgY2hhciBjaCkKKyAgICB7CisgICAgICAgIHdoaWxlKHRydWUpIHsKKyAgICAgICAgICAgIC8vIHRoZSBvbmx5IGNlcyB0aGF0IGxvb3BzIGFyZSB0aGFpLCBzcGVjaWFsIHByZWZpeCBhbmQgCisgICAgICAgICAgICAvLyBjb250cmFjdGlvbnMgCisgICAgICAgICAgICBzd2l0Y2ggKFJ1bGVCYXNlZENvbGxhdG9yLmdldFRhZyhjZSkpIHsKKyAgICAgICAgICAgIGNhc2UgQ0VfTk9UX0ZPVU5EX1RBR186ICAvLyB0aGlzIHRhZyBhbHdheXMgcmV0dXJucworICAgICAgICAgICAgICAgIHJldHVybiBjZTsKKyAgICAgICAgICAgIGNhc2UgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfU1VSUk9HQVRFX1RBR186IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlc3NlbnRpYWx5IGEgZGlzZW5nYWdlZCBsZWFkIHN1cnJvZ2F0ZS4gYSBicm9rZW4gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNlcXVlbmNlIHdhcyBlbmNvdW50ZXJlZCBhbmQgdGhpcyBpcyBhbiBlcnJvcgorICAgICAgICAgICAgICAgIHJldHVybiBJR05PUkFCTEU7CisgICAgICAgICAgICBjYXNlIENFX1RIQUlfVEFHXzoKKyAgICAgICAgICAgICAgICBjZSA9IHByZXZpb3VzVGhhaShjb2xsYXRvciwgY2UsIGNoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ0VfU1BFQ19QUk9DX1RBR186CisgICAgICAgICAgICAgICAgY2UgPSBwcmV2aW91c1NwZWNpYWxQcmVmaXgoY29sbGF0b3IsIGNlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ0VfQ09OVFJBQ1RJT05fVEFHXzoKKyAgICAgICAgICAgICAgICAvLyBtYXkgbG9vcCBmb3IgZmlyc3QgY2hhcmFjdGVyIGUuZy4gIjB4MGY3MSIgZm9yIGVuZ2xpc2gKKyAgICAgICAgICAgICAgICBpZiAoaXNCYWNrd2FyZHNTdGFydCgpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHN0YXJ0IG9mIHN0cmluZyBvciB0aGlzIGlzIG5vdCB0aGUgZW5kIG9mIGFueSBjb250cmFjdGlvbgorICAgICAgICAgICAgICAgICAgICBjZSA9IGNvbGxhdG9yLm1fY29udHJhY3Rpb25DRV9bCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldENvbnRyYWN0aW9uT2Zmc2V0KGNvbGxhdG9yLCBjZSldOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzQ29udHJhY3Rpb24oY29sbGF0b3IsIGNlLCBjaCk7IC8vIGVsc2UKKyAgICAgICAgICAgIGNhc2UgQ0VfTE9OR19QUklNQVJZX1RBR186CisgICAgICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzTG9uZ1ByaW1hcnkoY2UpOworICAgICAgICAgICAgY2FzZSBDRV9FWFBBTlNJT05fVEFHXzogLy8gYWx3YXlzIHJldHVybnMKKyAgICAgICAgICAgICAgICByZXR1cm4gcHJldmlvdXNFeHBhbnNpb24oY29sbGF0b3IsIGNlKTsKKyAgICAgICAgICAgIGNhc2UgQ0VfSEFOR1VMX1NZTExBQkxFX1RBR186IC8vIEFDMDAtRDdBRgorICAgICAgICAgICAgICAgIHJldHVybiBwcmV2aW91c0hhbmd1bChjb2xsYXRvciwgY2gpOworICAgICAgICAgICAgY2FzZSBDRV9MRUFEX1NVUlJPR0FURV9UQUdfOiAgLy8gRDgwMC1EQkZGCisgICAgICAgICAgICAgICAgcmV0dXJuIElHTk9SQUJMRTsgLy8gYnJva2VuIHN1cnJvZ2F0ZSBzZXF1ZW5jZQorICAgICAgICAgICAgY2FzZSBDRV9UUkFJTF9TVVJST0dBVEVfVEFHXzogLy8gREMwMC1ERkZGCisgICAgICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzU3Vycm9nYXRlKGNoKTsKKyAgICAgICAgICAgIGNhc2UgQ0VfQ0pLX0lNUExJQ0lUX1RBR186IAorICAgICAgICAgICAgICAgIC8vIDB4MzQwMC0weDREQjUsIDB4NEUwMC0weDlGQTUsIDB4RjkwMC0weEZBMkQKKyAgICAgICAgICAgICAgICByZXR1cm4gcHJldmlvdXNJbXBsaWNpdChjaCk7CisgICAgICAgICAgICBjYXNlIENFX0lNUExJQ0lUX1RBR186IC8vIGV2ZXJ5dGhpbmcgdGhhdCBpcyBub3QgZGVmaW5lZAorICAgICAgICAgICAgICAgIC8vIFVDQSBpcyBmaWxsZWQgd2l0aCB0aGVzZS4gVGFpbG9yaW5ncyBhcmUgTk9UX0ZPVU5EIAorICAgICAgICAgICAgICAgIHJldHVybiBwcmV2aW91c0ltcGxpY2l0KGNoKTsKKyAgICAgICAgICAgIGNhc2UgQ0VfQ0hBUlNFVF9UQUdfOiAvLyB0aGlzIHRhZyBhbHdheXMgcmV0dXJucworICAgICAgICAgICAgICAgIHJldHVybiBDRV9OT1RfRk9VTkRfOworICAgICAgICAgICAgZGVmYXVsdDogLy8gdGhpcyB0YWcgYWx3YXlzIHJldHVybnMKKyAgICAgICAgICAgICAgICBjZSA9IElHTk9SQUJMRTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghUnVsZUJhc2VkQ29sbGF0b3IuaXNTcGVjaWFsKGNlKSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjZTsKKyAgICB9CisgICAgCisgICAgLyoqIAorICAgICAqIEdFVCBJTVBMSUNJVCBQUklNQVJZIFdFSUdIVFMKKyAgICAgKiBAcGFyYW0gY3AgY29kZXBvaW50CisgICAgICogQHBhcmFtIHZhbHVlIGlzIGxlZnQganVzdGlmaWVkIHByaW1hcnkga2V5CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGdldEltcGxpY2l0UHJpbWFyeShpbnQgY3ApIAorICAgIHsKKyAgICAgICAgY3AgPSBzd2FwQ0pLKGNwKTsKKyAgICAgICAgCisgICAgICAgIC8vaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIkNKSyBzd2FwcGVkOiAiICsgVXRpbGl0eS5oZXgoY3ApKTsKKyAgICAgICAgLy8gd2Ugbm93IGhhdmUgYSByYW5nZSBvZiBudW1iZXJzIGZyb20gMCB0byAyMUZGRkYuCisgICAgICAgIC8vIHdlIG11c3Qgc2tpcCBhbGwgMDAsIDAxLCAwMiBieXRlcywgc28gbW9zdCBieXRlcyBoYXZlIDI1MyB2YWx1ZXMKKyAgICAgICAgLy8gd2UgbXVzdCBsZWF2ZSBhIGdhcCBvZiAwMSBiZXR3ZWVuIGFsbCB2YWx1ZXMgb2YgdGhlIGxhc3QgYnl0ZSwgc28gCisgICAgICAgIC8vIHRoZSBsYXN0IGJ5dGUgaGFzIDEyNiB2YWx1ZXMgKDMgYnl0ZSBjYXNlKQorICAgICAgICAvLyB3ZSBzaGlmdCBzbyB0aGF0IEhBTiBhbGwgaGFzIHRoZSBzYW1lIGZpcnN0IHByaW1hcnksIGZvciAKKyAgICAgICAgLy8gY29tcHJlc3Npb24uCisgICAgICAgIC8vIGZvciB0aGUgNCBieXRlIGNhc2UsIHdlIG1ha2UgdGhlIGdhcCBhcyBsYXJnZSBhcyB3ZSBjYW4gZml0LgorICAgICAgICAvLyBUaHJlZSBieXRlIGZvcm1zIGFyZSBFQyB4eCB4eCwgRUQgeHggeHgsIEVFIHh4IHh4ICh3aXRoIGEgZ2FwIG9mIDEpCisgICAgICAgIC8vIEZvdXIgYnl0ZSBmb3JtcyAobW9zdCBzdXBwbGVtZW50YXJpZXMpIGFyZSBFRiB4eCB4eCB4eCAod2l0aCBhIGdhcCAKKyAgICAgICAgLy8gb2YgTEFTVDJfTVVMVElQTElFUiA9PSAxNCkKKyAgICAgICAgCisgICAgICAgIGludCBsYXN0MCA9IGNwIC0gUnVsZUJhc2VkQ29sbGF0b3IuSU1QTElDSVRfNEJZVEVfQk9VTkRBUllfOworICAgICAgICBpZiAobGFzdDAgPCAwKSB7CisgICAgICAgICAgICBpbnQgbGFzdDEgPSBjcCAvIFJ1bGVCYXNlZENvbGxhdG9yLkxBU1RfQ09VTlRfOworICAgICAgICAgICAgbGFzdDAgPSBjcCAlIFJ1bGVCYXNlZENvbGxhdG9yLkxBU1RfQ09VTlRfOworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgbGFzdDIgPSBsYXN0MSAvIFJ1bGVCYXNlZENvbGxhdG9yLk9USEVSX0NPVU5UXzsKKyAgICAgICAgICAgIGxhc3QxICU9IFJ1bGVCYXNlZENvbGxhdG9yLk9USEVSX0NPVU5UXzsKKyAgICAgICAgICAgIHJldHVybiBSdWxlQmFzZWRDb2xsYXRvci5JTVBMSUNJVF9CQVNFXzNCWVRFXyArIChsYXN0MiA8PCAyNCkgCisgICAgICAgICAgICAgICAgICAgKyAobGFzdDEgPDwgMTYpIAorICAgICAgICAgICAgICAgICAgICsgKChsYXN0MCAqIFJ1bGVCYXNlZENvbGxhdG9yLkxBU1RfTVVMVElQTElFUl8pIDw8IDgpOworICAgICAgICB9IAorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGludCBsYXN0MSA9IGxhc3QwIC8gUnVsZUJhc2VkQ29sbGF0b3IuTEFTVF9DT1VOVDJfOworICAgICAgICAgICAgbGFzdDAgJT0gUnVsZUJhc2VkQ29sbGF0b3IuTEFTVF9DT1VOVDJfOworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgbGFzdDIgPSBsYXN0MSAvIFJ1bGVCYXNlZENvbGxhdG9yLk9USEVSX0NPVU5UXzsKKyAgICAgICAgICAgIGxhc3QxICU9IFJ1bGVCYXNlZENvbGxhdG9yLk9USEVSX0NPVU5UXzsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IGxhc3QzID0gbGFzdDIgLyBSdWxlQmFzZWRDb2xsYXRvci5PVEhFUl9DT1VOVF87CisgICAgICAgICAgICBsYXN0MiAlPSBSdWxlQmFzZWRDb2xsYXRvci5PVEhFUl9DT1VOVF87CisgICAgICAgICAgICByZXR1cm4gUnVsZUJhc2VkQ29sbGF0b3IuSU1QTElDSVRfQkFTRV80QllURV8gKyAobGFzdDMgPDwgMjQpIAorICAgICAgICAgICAgICAgICAgICsgKGxhc3QyIDw8IDE2KSArIChsYXN0MSA8PCA4KSAKKyAgICAgICAgICAgICAgICAgICArIChsYXN0MCAqIFJ1bGVCYXNlZENvbGxhdG9yLkxBU1QyX01VTFRJUExJRVJfKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTd2FwcGluZyBDSksgY2hhcmFjdGVycyBmb3IgaW1wbGljaXQgY2VzCisgICAgICogQHBhcmFtIGNwIGNvZGVwb2ludCBDSksKKyAgICAgKiBAcmV0dXJuIHN3YXBwZWQgcmVzdWx0CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IHN3YXBDSksoaW50IGNwKSAKKyAgICB7CisgICAgICAgIGlmIChjcCA+PSBDSktfQkFTRV8pIHsKKyAgICAgICAgICAgIGlmIChjcCA8IENKS19MSU1JVF8pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gY3AgLSBDSktfQkFTRV87CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY3AgPCBDSktfQ09NUEFUX1VTRURfQkFTRV8pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gY3AgKyBOT05fQ0pLX09GRlNFVF87CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY3AgPCBDSktfQ09NUEFUX1VTRURfTElNSVRfKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNwIC0gQ0pLX0NPTVBBVF9VU0VEX0JBU0VfICsgKENKS19MSU1JVF8gLSBDSktfQkFTRV8pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGNwIDwgQ0pLX0JfQkFTRV8pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gY3AgKyBOT05fQ0pLX09GRlNFVF87CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY3AgPCBDSktfQl9MSU1JVF8pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gY3A7IC8vIG5vbi1CTVAtQ0pLCisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gY3AgKyBOT05fQ0pLX09GRlNFVF87IC8vIG5vbi1DSksKKyAgICAgICAgfQorICAgICAgICBpZiAoY3AgPCBDSktfQV9CQVNFXykgeworICAgICAgICAgICAgcmV0dXJuIGNwICsgTk9OX0NKS19PRkZTRVRfOworICAgICAgICB9CisgICAgICAgIGlmIChjcCA8IENKS19BX0xJTUlUXykgeworICAgICAgICAgICAgcmV0dXJuIGNwIC0gQ0pLX0FfQkFTRV8gKyAoQ0pLX0xJTUlUXyAtIENKS19CQVNFXykgCisgICAgICAgICAgICAgICAgICAgKyAoQ0pLX0NPTVBBVF9VU0VEX0xJTUlUXyAtIENKS19DT01QQVRfVVNFRF9CQVNFXyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNwICsgTk9OX0NKS19PRkZTRVRfOyAvLyBub24tQ0pLCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0aW9uS2V5LmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Db2xsYXRpb25LZXkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iNmE0ZjM4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0aW9uS2V5LmphdmEKQEAgLTAsMCArMSwzNTAgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvdGV4dC9Db2xsYXRpb25LZXkuamF2YSx2ICQgCisqICREYXRlOiAyMDAyLzA4LzAyIDE5OjQwOjE5ICQgCisqICRSZXZpc2lvbjogMS45ICQKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKKy8qKgorICogPHA+QSA8Y29kZT5Db2xsYXRpb25LZXk8L2NvZGU+IHJlcHJlc2VudHMgYSA8Y29kZT5TdHJpbmc8L2NvZGU+CisgKiB1bmRlciB0aGUgcnVsZXMgb2YgYSBzcGVjaWZpYyA8Y29kZT5Db2xsYXRvcjwvY29kZT4KKyAqIG9iamVjdC4gQ29tcGFyaW5nIHR3byA8Y29kZT5Db2xsYXRpb25LZXk8L2NvZGU+cyByZXR1cm5zIHRoZQorICogcmVsYXRpdmUgb3JkZXIgb2YgdGhlIDxjb2RlPlN0cmluZzwvY29kZT5zIHRoZXkgcmVwcmVzZW50LjwvcD4KKyAqCisgKiA8cD5TaW5jZSB0aGUgcnVsZSBzZXQgb2YgPGNvZGU+Q29sbGF0b3I8L2NvZGU+cyBjYW4gZGlmZmVyLCB0aGUKKyAqIHNvcnQgb3JkZXJzIG9mIHRoZSBzYW1lIHN0cmluZyB1bmRlciB0d28gZGlmZmVyZW50CisgKiA8Y29kZT5Db2xsYXRvcjwvY29kZT5zIG1pZ2h0IGRpZmZlci4gIEhlbmNlIGNvbXBhcmluZworICogPGNvZGU+Q29sbGF0aW9uS2V5PC9jb2RlPnMgZ2VuZXJhdGVkIGZyb20gZGlmZmVyZW50CisgKiA8Y29kZT5Db2xsYXRvcjwvY29kZT5zIGNhbiBnaXZlIGluY29ycmVjdCByZXN1bHRzLjwvcD4KKyAqCisgKiA8cD5Cb3RoIHRoZSBtZXRob2QKKyAqIDxjb2RlPkNvbGxhdGlvbktleS5jb21wYXJlVG8oQ29sbGF0aW9uS2V5KTwvY29kZT4gYW5kIHRoZSBtZXRob2QKKyAqIDxjb2RlPkNvbGxhdG9yLmNvbXBhcmUoU3RyaW5nLCBTdHJpbmcpPC9jb2RlPiBjb21wYXJlIHR3byBzdHJpbmdzCisgKiBhbmQgcmV0dXJucyB0aGVpciByZWxhdGl2ZSBvcmRlci4gIFRoZSBwZXJmb3JtYW5jZSBjaGFyYWN0ZXJpY3RpY3MKKyAqIG9mIHRoZXNlIHR3byBhcHByb2FjaGVzIGNhbiBkaWZmZXIuPC9wPgorICoKKyAqIDxwPkR1cmluZyB0aGUgY29uc3RydWN0aW9uIG9mIGEgPGNvZGU+Q29sbGF0aW9uS2V5PC9jb2RlPiwgdGhlCisgKiBlbnRpcmUgc291cmNlIHN0cmluZyBpcyBleGFtaW5lZCBhbmQgcHJvY2Vzc2VkIGludG8gYSBzZXJpZXMgb2YKKyAqIGJpdHMgdGhhdCBhcmUgc3RvcmVkIGluIHRoZSA8Y29kZT5Db2xsYXRpb25LZXk8L2NvZGU+LiBXaGVuCisgKiA8Y29kZT5Db2xsYXRpb25LZXkuY29tcGFyZVRvKENvbGxhdGlvbktleSk8L2NvZGU+IGV4ZWN1dGVzLCBpdAorICogcGVyZm9ybXMgYml0d2lzZSBjb21wYXJpc29uIG9uIHRoZSBiaXQgc2VxdWVuY2VzLiAgVGhpcyBjYW4gaW5jdXJzCisgKiBzdGFydHVwIGNvc3Qgd2hlbiBjcmVhdGluZyB0aGUgPGNvZGU+Q29sbGF0aW9uS2V5PC9jb2RlPiwgYnV0IG9uY2UKKyAqIHRoZSBrZXkgaXMgY3JlYXRlZCwgYmluYXJ5IGNvbXBhcmlzb25zIGFyZSBmYXN0LiAgVGhpcyBhcHByb2FjaCBpcworICogcmVjb21tZW5kZWQgd2hlbiB0aGUgc2FtZSBzdHJpbmdzIGFyZSB0byBiZSBjb21wYXJlZCBvdmVyIGFuZCBvdmVyCisgKiBhZ2Fpbi48L3A+CisgKgorICogPHA+T24gdGhlIG90aGVyIGhhbmQsIGltcGxlbWVudGF0aW9ucyBvZgorICogPGNvZGU+Q29sbGF0b3IuY29tcGFyZShTdHJpbmcsIFN0cmluZyk8L2NvZGU+IGNhbiBleGFtaW5lIGFuZAorICogcHJvY2VzcyB0aGUgc3RyaW5ncyBvbmx5IHVudGlsIHRoZSBmaXJzdCBjaGFyYWN0ZXJzIGRpZmZlcmluZyBpbgorICogb3JkZXIuICBUaGlzIGFwcHJvYWNoIGlzIHJlY29tbWVuZGVkIGlmIHRoZSBzdHJpbmdzIGFyZSB0byBiZQorICogY29tcGFyZWQgb25seSBvbmNlLjwvcD4KKyAqIAorICogPHA+TW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29tcG9zaXRpb24gb2YgdGhlIGJpdCBzZXF1ZW5jZSBjYW4KKyAqIGJlIGZvdW5kIGluIHRoZSAKKyAqIDxhIGhyZWY9Imh0dHA6Ly9vc3Muc29mdHdhcmUuaWJtLmNvbS9pY3UvdXNlcmd1aWRlL0NvbGxhdGVfU2VydmljZUFyY2hpdGVjdHVyZS5odG1sIj4KKyAqIHVzZXIgZ3VpZGU8L2E+LjwvcD4KKyAqCisgKiA8cD5UaGUgZm9sbG93aW5nIGV4YW1wbGUgc2hvd3MgaG93IDxjb2RlPkNvbGxhdGlvbktleTwvY29kZT5zIGNhbiBiZSB1c2VkCisgKiB0byBzb3J0IGEgbGlzdCBvZiA8Y29kZT5TdHJpbmc8L2NvZGU+cy48L3A+CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiAvLyBDcmVhdGUgYW4gYXJyYXkgb2YgQ29sbGF0aW9uS2V5cyBmb3IgdGhlIFN0cmluZ3MgdG8gYmUgc29ydGVkLgorICogQ29sbGF0b3IgbXlDb2xsYXRvciA9IENvbGxhdG9yLmdldEluc3RhbmNlKCk7CisgKiBDb2xsYXRpb25LZXlbXSBrZXlzID0gbmV3IENvbGxhdGlvbktleVszXTsKKyAqIGtleXNbMF0gPSBteUNvbGxhdG9yLmdldENvbGxhdGlvbktleSgiVG9tIik7CisgKiBrZXlzWzFdID0gbXlDb2xsYXRvci5nZXRDb2xsYXRpb25LZXkoIkRpY2siKTsKKyAqIGtleXNbMl0gPSBteUNvbGxhdG9yLmdldENvbGxhdGlvbktleSgiSGFycnkiKTsKKyAqIHNvcnQoIGtleXMgKTsKKyAqIDxicj4KKyAqIC8vLi4uCisgKiA8YnI+CisgKiAvLyBJbnNpZGUgYm9keSBvZiBzb3J0IHJvdXRpbmUsIGNvbXBhcmUga2V5cyB0aGlzIHdheQorICogaWYoIGtleXNbaV0uY29tcGFyZVRvKCBrZXlzW2pdICkgPiAwICkKKyAqICAgIC8vIHN3YXAga2V5c1tpXSBhbmQga2V5c1tqXQorICogPGJyPgorICogLy8uLi4KKyAqIDxicj4KKyAqIC8vIEZpbmFsbHksIHdoZW4gd2UndmUgcmV0dXJuZWQgZnJvbSBzb3J0LgorICogU3lzdGVtLm91dC5wcmludGxuKCBrZXlzWzBdLmdldFNvdXJjZVN0cmluZygpICk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIGtleXNbMV0uZ2V0U291cmNlU3RyaW5nKCkgKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigga2V5c1syXS5nZXRTb3VyY2VTdHJpbmcoKSApOworICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKiA8L3A+CisgKiBAc2VlIENvbGxhdG9yCisgKiBAc2VlIFJ1bGVCYXNlZENvbGxhdG9yCisgKiBAYXV0aG9yIFN5biBXZWUgUXVlaworICogQHNpbmNlIHJlbGVhc2UgMi4yLCBBcHJpbCAxOCAyMDAyCisgKiBAZHJhZnQgMi4yIAorICovCitwdWJsaWMgZmluYWwgY2xhc3MgQ29sbGF0aW9uS2V5IGltcGxlbWVudHMgQ29tcGFyYWJsZSAKK3sKKyAgICAvLyBwdWJsaWMgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogQ29sbGF0aW9uS2V5IGNvbnN0cnVjdG9yLgorICAgICAqIFRoaXMgY29uc3RydWN0b3IgaXMgZ2l2ZW4gcHVibGljIGFjY2VzcywgdW5saWtlIHRoZSBKREsgdmVyc2lvbiwgdG8KKyAgICAgKiBhbGxvdyBhY2Nlc3MgdG8gdXNlcnMgZXh0ZW5kaW5nIHRoZSBDb2xsYXRvciBjbGFzcy4gU2VlIAorICAgICAqIHtAbGluayBDb2xsYXRvciNnZXRDb2xsYXRpb25LZXkoU3RyaW5nKX0uIAorICAgICAqIEBwYXJhbSBzb3VyY2Ugc3RyaW5nIHRoaXMgQ29sbGF0aW9uS2V5IGlzIHRvIHJlcHJlc2VudAorICAgICAqIEBwYXJhbSBrZXkgYXJyYXkgb2YgYnl0ZXMgdGhhdCByZXByZXNlbnQgdGhlIGNvbGxhdGlvbiBvcmRlciBvZiBhcmd1bWVudAorICAgICAqICAgICAgICAgICAgc291cmNlCisgICAgICogQHNlZSBDb2xsYXRvcgorICAgICAqIEBkcmFmdCAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgQ29sbGF0aW9uS2V5KFN0cmluZyBzb3VyY2UsIGJ5dGUga2V5W10pCisgICAgeworICAgICAgICBtX3NvdXJjZV8gPSBzb3VyY2U7CisgICAgICAgIG1fa2V5XyA9IGtleTsKKyAgICAgICAgbV9oYXNoQ29kZV8gPSAwOworICAgIH0KKyAgICAKKyAgICAvLyBwdWJsaWMgZ2V0dGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisJCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzb3VyY2Ugc3RyaW5nIHRoYXQgdGhpcyBDb2xsYXRpb25LZXkgcmVwcmVzZW50cy4KKyAgICAgKiBAcmV0dXJuIHNvdXJjZSBzdHJpbmcgdGhhdCB0aGlzIENvbGxhdGlvbktleSByZXByZXNlbnRzCisgICAgICogQGRyYWZ0IDIuMgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0U291cmNlU3RyaW5nKCkgCisgICAgeworICAgICAgICByZXR1cm4gbV9zb3VyY2VfOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPkR1cGxpY2F0ZXMgYW5kIHJldHVybnMgdGhlIHZhbHVlIG9mIHRoaXMgQ29sbGF0aW9uS2V5IGFzIGEgc2VxdWVuY2UgCisgICAgICogb2YgYmlnLWVuZGlhbiBieXRlcyB0ZXJtaW5hdGVkIGJ5IGEgbnVsbC48L3A+IAorICAgICAqCisgICAgICogPHA+SWYgdHdvIENvbGxhdGlvbktleXMgY2FuIGJlIGxlZ2l0aW1hdGVseSBjb21wYXJlZCwgdGhlbiBvbmUgY2FuCisgICAgICogY29tcGFyZSB0aGUgYnl0ZSBhcnJheXMgb2YgZWFjaCB0byBvYnRhaW4gdGhlIHNhbWUgcmVzdWx0LCBlLmcuCisgICAgICogPHByZT4KKyAgICAgKiBieXRlIGtleTFbXSA9IGNvbGxhdGlvbmtleTEudG9CeXRlQXJyYXkoKTsKKyAgICAgKiBieXRlIGtleTJbXSA9IGNvbGxhdGlvbmtleTIudG9CeXRlQXJyYXkoKTsKKyAgICAgKiBpbnQga2V5LCB0YXJnZXRrZXk7CisgICAgICogaW50IGkgPSAwOworICAgICAqIGRvIHsKKyAgICAgKgkgICBrZXkgPSBrZXkxW2ldICYgMHhGRjsKKyAgICAgKiAgICAgdGFyZ2V0a2V5ID0ga2V5MltpXSAmIDB4RkY7CisgICAgICogICAgIGlmIChrZXkgJmx0OyB0YXJnZXRrZXkpIHsKKyAgICAgKiAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU3RyaW5nIDEgaXMgbGVzcyB0aGFuIHN0cmluZyAyIik7CisgICAgICogICAgICAgICByZXR1cm47CisgICAgICogICAgIH0KKyAgICAgKiAgICAgaWYgKHRhcmdldGtleSAmbHQ7IGtleSkgeworICAgICAqICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJTdHJpbmcgMSBpcyBtb3JlIHRoYW4gc3RyaW5nIDIiKTsKKyAgICAgKiAgICAgfQorICAgICAqICAgICBpICsrOworICAgICAqIH0gd2hpbGUgKGtleSAhPSAwICYmIHRhcmdldEtleSAhPSAwKTsKKyAgICAgKgorICAgICAqIFN5c3RlbS5vdXQucHJpbnRsbigiU3RyaW5ncyBhcmUgZXF1YWwuIik7CisgICAgICogPC9wcmU+CisgICAgICogPC9wPiAgCisgICAgICogQHJldHVybiBDb2xsYXRpb25LZXkgdmFsdWUgaW4gYSBzZXF1ZW5jZSBvZiBiaWctZW5kaWFuIGJ5dGUgYnl0ZXMgCisgICAgICogICAgICAgICB0ZXJtaW5hdGVkIGJ5IGEgbnVsbC4KKyAgICAgKiBAZHJhZnQgMi4yCisgICAgICovCisgICAgcHVibGljIGJ5dGVbXSB0b0J5dGVBcnJheSgpIAorICAgIHsKKyAgICAJaW50IGxlbmd0aCA9IDA7CisgICAgCXdoaWxlICh0cnVlKSB7CisgICAgCSAgICBpZiAobV9rZXlfW2xlbmd0aF0gPT0gMCkgeworICAgIAkJICBicmVhazsKKyAgICAJICAgIH0KKyAgICAJICAgIGxlbmd0aCArKzsKKyAgICAJfQorICAgIAlsZW5ndGggKys7CisgICAgCWJ5dGUgcmVzdWx0W10gPSBuZXcgYnl0ZVtsZW5ndGhdOworICAgIAlTeXN0ZW0uYXJyYXljb3B5KG1fa2V5XywgMCwgcmVzdWx0LCAwLCBsZW5ndGgpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8vIHB1YmxpYyBvdGhlciBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0JCisgCQorICAgIC8qKgorICAgICAqIDxwPkNvbXBhcmUgdGhpcyBDb2xsYXRpb25LZXkgdG8gYW5vdGhlciBDb2xsYXRpb25LZXkuICBUaGUKKyAgICAgKiBjb2xsYXRpb24gcnVsZXMgb2YgdGhlIENvbGxhdG9yIHRoYXQgY3JlYXRlZCB0aGlzIGtleSBhcmUKKyAgICAgKiBhcHBsaWVkLjwvcD4KKyAgICAgKgorICAgICAqIDxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gQ29tcGFyaXNvbiBiZXR3ZWVuIENvbGxhdGlvbktleXMKKyAgICAgKiBjcmVhdGVkIGJ5IGRpZmZlcmVudCBDb2xsYXRvcnMgbWlnaHQgcmV0dXJuIGluY29ycmVjdAorICAgICAqIHJlc3VsdHMuICBTZWUgY2xhc3MgZG9jdW1lbnRhdGlvbi48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHRhcmdldCBDb2xsYXRpb25LZXkKKyAgICAgKiBAcmV0dXJuIGFuIGludGVnZXIgdmFsdWUuICBJZiB0aGUgdmFsdWUgaXMgbGVzcyB0aGFuIHplcm8gdGhpcyBDb2xsYXRpb25LZXkKKyAgICAgKiAgICAgICAgIGlzIGxlc3MgdGhhbiB0aGFuIHRhcmdldCwgaWYgdGhlIHZhbHVlIGlzIHplcm8gdGhleSBhcmUgZXF1YWwsIGFuZAorICAgICAqICAgICAgICAgaWYgdGhlIHZhbHVlIGlzIGdyZWF0ZXIgdGhhbiB6ZXJvIHRoaXMgQ29sbGF0aW9uS2V5IGlzIGdyZWF0ZXIgCisgICAgICogICAgICAgICB0aGFuIHRhcmdldC4KKyAgICAgKiBAZXhjZXB0aW9uIE51bGxQb2ludGVyRXhjZXB0aW9uIGlzIHRocm93biBpZiBhcmd1bWVudCBpcyBudWxsLgorICAgICAqIEBzZWUgQ29sbGF0b3IjY29tcGFyZShTdHJpbmcsIFN0cmluZykKKyAgICAgKiBAZHJhZnQgMi4yICovCisgICAgcHVibGljIGludCBjb21wYXJlVG8oQ29sbGF0aW9uS2V5IHRhcmdldCkKKyAgICB7CisgICAgCWludCBpID0gMDsKKyAgICAJd2hpbGUgKG1fa2V5X1tpXSAhPSAwICYmIHRhcmdldC5tX2tleV9baV0gIT0gMCkgeworICAgICAgICAgICAgYnl0ZSBrZXkgPSBtX2tleV9baV07CisgICAgICAgICAgICBieXRlIHRhcmdldGtleSA9IHRhcmdldC5tX2tleV9baV07CisgICAgICAgICAgICBpZiAoa2V5ID09IHRhcmdldGtleSkgeworICAgICAgICAgICAgICAgIGkgKys7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoa2V5ID49IDApIHsKKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0a2V5IDwgMCB8fCBrZXkgPCB0YXJnZXRrZXkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyB0YXJnZXQga2V5IGhhcyB0byBiZSBwb3NpdGl2ZSBhbmQgbGVzcyB0aGFuIGtleQorICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLy8ga2V5IGlzIG5lZ2F0aXZlCisgICAgICAgICAgICAgICAgaWYgKHRhcmdldGtleSA+PSAwIHx8IGtleSA+IHRhcmdldGtleSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgIAl9CisgICAgCS8vIGxhc3QgY29tcGFyaXNvbiBpZiB3ZSBlbmNvdW50ZXIgYSAwCisgICAgICAgIGlmIChtX2tleV9baV0gPT0gdGFyZ2V0Lm1fa2V5X1tpXSkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1fa2V5X1tpXSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgLy8gdGFyZ2V0IGlzIDAKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+Q29tcGFyZSB0aGlzIENvbGxhdGlvbktleSB3aXRoIHRoZSBzcGVjaWZpZWQgT2JqZWN0LiAgVGhlCisgICAgICogY29sbGF0aW9uIHJ1bGVzIG9mIHRoZSBDb2xsYXRvciB0aGF0IGNyZWF0ZWQgdGhpcyBrZXkgYXJlCisgICAgICogYXBwbGllZC48L3A+CisgICAgICogCisgICAgICogPHA+U2VlIG5vdGUgaW4gY29tcGFyZVRvKENvbGxhdGlvbktleSkgZm9yIHdhcm5pbmdzIGFib3V0IHBvc3NpYmxlCisgICAgICogaW5jb3JyZWN0IHJlc3VsdHMuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIG9iaiB0aGUgT2JqZWN0IHRvIGJlIGNvbXBhcmVkIHRvLgorICAgICAqIEByZXR1cm4gUmV0dXJucyBhIG5lZ2F0aXZlIGludGVnZXIsIHplcm8sIG9yIGEgcG9zaXRpdmUgaW50ZWdlciAKKyAgICAgKiAgICAgICAgIHJlc3BlY3RpdmVseSBpZiB0aGlzIENvbGxhdGlvbktleSBpcyBsZXNzIHRoYW4sIGVxdWFsIHRvLCBvciAKKyAgICAgKiAgICAgICAgIGdyZWF0ZXIgdGhhbiB0aGUgZ2l2ZW4gT2JqZWN0LgorICAgICAqIEBleGNlcHRpb24gQ2xhc3NDYXN0RXhjZXB0aW9uIGlzIHRocm93biB3aGVuIHRoZSBhcmd1bWVudCBpcyBub3QgCisgICAgICogICAgICAgICAgICBhIENvbGxhdGlvbktleS4gIE51bGxQb2ludGVyRXhjZXB0aW9uIGlzIHRocm93biB3aGVuIHRoZSBhcmd1bWVudCAKKyAgICAgKiAgICAgICAgICAgIGlzIG51bGwuCisgICAgICogQHNlZSAjY29tcGFyZVRvKENvbGxhdGlvbktleSkKKyAgICAgKiBAZHJhZnQgMi4yICovCisgICAgcHVibGljIGludCBjb21wYXJlVG8oT2JqZWN0IG9iaikgCisgICAgeworCXJldHVybiBjb21wYXJlVG8oKENvbGxhdGlvbktleSlvYmopOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPkNvbXBhcmUgdGhpcyBDb2xsYXRpb25LZXkgYW5kIHRoZSBzcGVjaWZpZWQgT2JqZWN0IGZvcgorICAgICAqIGVxdWFsaXR5LiAgVGhlIGNvbGxhdGlvbiBydWxlcyBvZiB0aGUgQ29sbGF0b3IgdGhhdCBjcmVhdGVkCisgICAgICogdGhpcyBrZXkgYXJlIGFwcGxpZWQuPC9wPgorICAgICAqCisgICAgICogPHA+U2VlIG5vdGUgaW4gY29tcGFyZVRvKENvbGxhdGlvbktleSkgZm9yIHdhcm5pbmdzIGFib3V0CisgICAgICogcG9zc2libGUgaW5jb3JyZWN0IHJlc3VsdHMuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIHRhcmdldCB0aGUgb2JqZWN0IHRvIGNvbXBhcmUgdG8uCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB0d28ga2V5cyBjb21wYXJlIGFzIGVxdWFsLCBmYWxzZSBvdGhlcndpc2UuCisgICAgICogQHNlZSAjY29tcGFyZVRvKENvbGxhdGlvbktleSkKKyAgICAgKiBAZXhjZXB0aW9uIENsYXNzQ2FzdEV4Y2VwdGlvbiBpcyB0aHJvd24gd2hlbiB0aGUgYXJndW1lbnQgaXMgbm90IAorICAgICAqICAgICAgICAgICAgYSBDb2xsYXRpb25LZXkuICBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpcyB0aHJvd24gd2hlbiB0aGUgYXJndW1lbnQgCisgICAgICogICAgICAgICAgICBpcyBudWxsLgorICAgICAqIEBkcmFmdCAyLjIgCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCB0YXJnZXQpIAorICAgIHsKKyAgICAgICAgaWYgKCEodGFyZ2V0IGluc3RhbmNlb2YgQ29sbGF0aW9uS2V5KSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gZXF1YWxzKChDb2xsYXRpb25LZXkpdGFyZ2V0KTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogQ29tcGFyZSB0aGlzIENvbGxhdGlvbktleSBhbmQgdGhlIGFyZ3VtZW50IHRhcmdldCBDb2xsYXRpb25LZXkgZm9yIAorICAgICAqIGVxdWFsaXR5LgorICAgICAqIFRoZSBjb2xsYXRpb24gCisgICAgICogcnVsZXMgb2YgdGhlIENvbGxhdG9yIG9iamVjdCB3aGljaCBjcmVhdGVkIHRoZXNlIG9iamVjdHMgYXJlIGFwcGxpZWQuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFNlZSBub3RlIGluIGNvbXBhcmVUbyhDb2xsYXRpb25LZXkpIGZvciB3YXJuaW5ncyBvZiBpbmNvcnJlY3QgcmVzdWx0cworICAgICAqIDwvcD4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHRoZSBDb2xsYXRpb25LZXkgdG8gY29tcGFyZSB0by4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdHdvIG9iamVjdHMgYXJlIGVxdWFsLCBmYWxzZSBvdGhlcndpc2UuCisgICAgICogQGV4Y2VwdGlvbiBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpcyB0aHJvd24gd2hlbiB0aGUgYXJndW1lbnQgaXMgbnVsbC4KKyAgICAgKiBAZHJhZnQgMi4yCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKENvbGxhdGlvbktleSB0YXJnZXQpIAorICAgIHsKKyAgICAgICAgaWYgKHRoaXMgPT0gdGFyZ2V0KSB7CisJICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICh0YXJnZXQgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIENvbGxhdGlvbktleSBvdGhlciA9IChDb2xsYXRpb25LZXkpdGFyZ2V0OworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisJICAgIGlmIChtX2tleV9baV0gIT0gb3RoZXIubV9rZXlfW2ldKSB7CisJCXJldHVybiBmYWxzZTsKKwkgICAgfQorCSAgICBpZiAobV9rZXlfW2ldID09IDApIHsKKwkJYnJlYWs7CisJICAgIH0KKwkgICAgaSArKzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5SZXR1cm5zIGEgaGFzaCBjb2RlIGZvciB0aGlzIENvbGxhdGlvbktleS4gVGhlIGhhc2ggdmFsdWUgaXMgY2FsY3VsYXRlZCAKKyAgICAgKiBvbiB0aGUga2V5IGl0c2VsZiwgbm90IHRoZSBTdHJpbmcgZnJvbSB3aGljaCB0aGUga2V5IHdhcyBjcmVhdGVkLiBUaHVzIAorICAgICAqIGlmIHggYW5kIHkgYXJlIENvbGxhdGlvbktleXMsIHRoZW4geC5oYXNoQ29kZSh4KSA9PSB5Lmhhc2hDb2RlKCkgCisgICAgICogaWYgeC5lcXVhbHMoeSkgaXMgdHJ1ZS4gVGhpcyBhbGxvd3MgbGFuZ3VhZ2Utc2Vuc2l0aXZlIGNvbXBhcmlzb24gaW4gYSAKKyAgICAgKiBoYXNoIHRhYmxlLgorICAgICAqIDwvcD4KKyAgICAgKiBAcmV0dXJuIHRoZSBoYXNoIHZhbHVlLgorICAgICAqIEBkcmFmdCAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgCisgICAgeworICAgIAlpZiAobV9oYXNoQ29kZV8gPT0gMCkgeworCSAgICBpbnQgc2l6ZSA9IG1fa2V5Xy5sZW5ndGggPj4gMTsKKwkgICAgU3RyaW5nQnVmZmVyIGtleSA9IG5ldyBTdHJpbmdCdWZmZXIoc2l6ZSk7CisJICAgIGludCBpID0gMDsKKwkgICAgd2hpbGUgKG1fa2V5X1tpXSAhPSAwICYmIG1fa2V5X1tpICsgMV0gIT0gMCkgeworCQlrZXkuYXBwZW5kKChjaGFyKSgobV9rZXlfW2ldIDw8IDgpIHwgbV9rZXlfW2kgKyAxXSkpOworCQlpICs9IDI7CisJICAgIH0KKwkgICAgaWYgKG1fa2V5X1tpXSAhPSAwKSB7CisJCWtleS5hcHBlbmQoKGNoYXIpKG1fa2V5X1tpXSA8PCA4KSk7CisJICAgIH0KKwkgICAgbV9oYXNoQ29kZV8gPSBrZXkudG9TdHJpbmcoKS5oYXNoQ29kZSgpOworICAgIAl9CisgICAgICAgIHJldHVybiBtX2hhc2hDb2RlXzsKKyAgICB9CisKKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBTb3VyY2Ugc3RyaW5nIHRoaXMgQ29sbGF0aW9uS2V5IHJlcHJlc2VudHMKKyAgICAgKi8JCisgICAgcHJpdmF0ZSBTdHJpbmcgbV9zb3VyY2VfOworCisgICAgLyoqCisgICAgICogU2VxdWVuY2Ugb2YgYnl0ZXMgdGhhdCByZXByZXNlbnRzIHRoZSBzb3J0IGtleQorICAgICAqLworICAgIHByaXZhdGUgYnl0ZSBtX2tleV9bXTsKKworICAgIC8qKgorICAgICAqIEhhc2ggY29kZSBmb3IgdGhlIGtleQorICAgICAqLworICAgIHByaXZhdGUgaW50IG1faGFzaENvZGVfOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0aW9uUGFyc2VkUnVsZUJ1aWxkZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbGxhdGlvblBhcnNlZFJ1bGVCdWlsZGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzUyOTYzOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbGxhdGlvblBhcnNlZFJ1bGVCdWlsZGVyLmphdmEKQEAgLTAsMCArMSwzNTg1IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0aW9uUGFyc2VkUnVsZUJ1aWxkZXIuamF2YSx2ICQgCisqICREYXRlOiAyMDAyLzA4LzAxIDIxOjA5OjE3ICQgCisqICRSZXZpc2lvbjogMS40ICQKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisgCitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGphdmEudXRpbC5FbnVtZXJhdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVHJpZUJ1aWxkZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JbnRUcmllQnVpbGRlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlRyaWVJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlckNhdGVnb3J5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTm9ybWFsaXplckltcGw7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5SYW5nZVZhbHVlSXRlcmF0b3I7CisKKy8qKgorKiBDbGFzcyBmb3IgYnVpbGRpbmcgYSBjb2xsYXRvciBmcm9tIGEgbGlzdCBvZiBjb2xsYXRpb24gcnVsZXMuCisqIFRoaXMgY2xhc3MgaXMgdXNlcyBDb2xsYXRpb25SdWxlUGFyc2VyCisqIEBhdXRob3IgU3luIFdlZSBRdWVrCisqIEBzaW5jZSByZWxlYXNlIDIuMiwgSnVuZSAxMSAyMDAyCisqIEBkcmFmdCAyLjIKKyovCitjbGFzcyBDb2xsYXRpb25QYXJzZWRSdWxlQnVpbGRlcgoreyAgICAgCisJLy8gcGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9ycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yCisgICAgICogQHBhcmFtIHJ1bGVzIGNvbGxhdGlvbiBydWxlcworICAgICAqIEBleGNlcHRpb24gUGFyc2VFeGNlcHRpb24gdGhyb3duIHdoZW4gYXJndW1lbnQgcnVsZXMgaGF2ZSBhbiBpbnZhbGlkIAorICAgICAqICAgICAgICAgICAgc3ludGF4IAorICAgICAqLworICAgIENvbGxhdGlvblBhcnNlZFJ1bGVCdWlsZGVyKFN0cmluZyBydWxlcykgdGhyb3dzIFBhcnNlRXhjZXB0aW9uCisgICAgeworICAgICAgICBtX3BhcnNlcl8gPSBuZXcgQ29sbGF0aW9uUnVsZVBhcnNlcihydWxlcyk7CisgICAgICAgIG1fdXRpbENvbEVJdGVyXyA9IFJ1bGVCYXNlZENvbGxhdG9yLlVDQV8uZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIpOworICAgIH0KKyAgICAKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgaW5uZXIgY2xhc3NlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKiAKKyAgICAgKiBJbnZlcnNlIFVDQSB3cmFwcGVyCisgICAgICovCisgICAgc3RhdGljIGNsYXNzIEludmVyc2VVQ0EgCisgICAgeworICAgICAgICAvLyBwYWNrYWdlIHByaXZhdGUgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgICAgICBJbnZlcnNlVUNBKCkgCisgICAgICAgIHsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gcGFja2FnZSBwcml2YXRlIGRhdGEgbWVtYmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFycmF5IGxpc3Qgb2YgY2hhcmFjdGVycworICAgICAgICAgKi8KKyAgICAgICAgaW50IG1fdGFibGVfW107CisgICAgICAgIC8qKgorICAgICAgICAgKiBBcnJheSBsaXN0IG9mIGNvbnRpbnVhdGlvbiBjaGFyYWN0ZXJzCisgICAgICAgICAqLworICAgICAgICBjaGFyIG1fY29udGludWF0aW9uc19bXTsKKyAgICAgICAgCisgICAgICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBtZXRob2QgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgICAgIC8qKgorCSAgICAgKiBSZXR1cm5zIHRoZSBwcmV2aW91cyBpbnZlcnNlIGNlcyBvZiB0aGUgYXJndW1lbnQgY2VzCisJICAgICAqIEBwYXJhbSBjZSBjZSB0byB0ZXN0CisJICAgICAqIEBwYXJhbSBjb250Y2UgY29udGludWF0aW9uIGNlIHRvIHRlc3QKKwkgICAgICogQHBhcmFtIHN0cmVuZ3RoIGNvbGxhdGlvbiBzdHJlbmd0aAorCSAgICAgKiBAcGFyYW0gcHJldnJlc3VsdCBhbiBhcnJheSB0byBzdG9yZSB0aGUgcmV0dXJuIHJlc3VsdHMgcHJldmlvdXMgCisgICAgICAgICAqICAgICAgICAgICAgICAgICAgIGludmVyc2UgY2UgYW5kIHByZXZpb3VzIGludmVyc2UgY29udGludWF0aW9uIGNlCisgICAgICAgICAqIEByZXR1cm4gcmVzdWx0IG9mIHRoZSBpbnZlcnNlIGNlIAorCSAgICAgKi8KKwkgICAgZmluYWwgaW50IGdldEludmVyc2VQcmV2Q0UoaW50IGNlLCBpbnQgY29udGNlLCBpbnQgc3RyZW5ndGgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHByZXZyZXN1bHRbXSkgCisJICAgIHsKKwkJICAgIGludCByZXN1bHQgPSBmaW5kSW52ZXJzZUNFKGNlLCBjb250Y2UpOworCQkKKwkJICAgIGlmIChyZXN1bHQgPCAwKSB7CisJCSAgICAgICAgcHJldnJlc3VsdFswXSA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVI7CisJCSAgICAgICAgcmV0dXJuIC0xOworCQkgICAgfQorCQkKKwkJICAgIGNlICY9IFNUUkVOR1RIX01BU0tfW3N0cmVuZ3RoXTsKKwkJICAgIGNvbnRjZSAmPSBTVFJFTkdUSF9NQVNLX1tzdHJlbmd0aF07CisJCQorICAgICAgICAgICAgcHJldnJlc3VsdFswXSA9IGNlOworCQkgICAgcHJldnJlc3VsdFsxXSA9IGNvbnRjZTsKKwkJCisJCSAgICB3aGlsZSAoKHByZXZyZXN1bHRbMF0gICYgU1RSRU5HVEhfTUFTS19bc3RyZW5ndGhdKSA9PSBjZSAKKwkJICAgICAgICAgICAmJiAocHJldnJlc3VsdFsxXSAgJiBTVFJFTkdUSF9NQVNLX1tzdHJlbmd0aF0pPT0gY29udGNlCisJCSAgICAgICAgICAgJiYgcmVzdWx0ID4gMCkgeyAKKwkJICAgICAgICAgICAgICAgIC8vIHRoaXMgY29uZGl0aW9uIHNob3VsZCBwcmV2ZW50IGZhbGxpbmcgb2ZmIHRoZSBlZGdlIG9mIHRoZSAKKwkJICAgICAgICAgICAgICAgIC8vIHdvcmxkIAorCQkgICAgICAgIC8vIGhlcmUsIHdlIGVuZCB1cCBpbiBhIHNpbmd1bGFyaXR5IC0gemVybworCQkgICAgICAgIHByZXZyZXN1bHRbMF0gPSBtX3RhYmxlX1szICogKC0tIHJlc3VsdCldOworCQkgICAgICAgIHByZXZyZXN1bHRbMV0gPSBtX3RhYmxlX1szICogcmVzdWx0ICsgMV07CisJCSAgIH0KKyAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKwkJfQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEZpbmRpbmcgdGhlIGludmVyc2UgQ0Ugb2YgdGhlIGFyZ3VtZW50IENFcworICAgICAgICAgKiBAcGFyYW0gY2UgQ0UgdG8gYmUgdGVzdGVkCisgICAgICAgICAqIEBwYXJhbSBjb250Y2UgY29udGludWF0aW9uIENFCisgICAgICAgICAqIEByZXR1cm4gaW52ZXJzZSBDRQorICAgICAgICAgKi8KKyAgICAgICAgaW50IGZpbmRJbnZlcnNlQ0UoaW50IGNlLCBpbnQgY29udGNlKSAKKyAgICAgICAgeworICAgICAgICAgICAgaW50IGJvdHRvbSA9IDA7CisgICAgICAgICAgICBpbnQgdG9wID0gbV90YWJsZV8ubGVuZ3RoIC8gMzsKKyAgICAgICAgICAgIGludCByZXN1bHQgPSAwOworICAgIAorICAgICAgICAgICAgd2hpbGUgKGJvdHRvbSA8IHRvcCAtIDEpIHsKKwkJICAgICAgICByZXN1bHQgPSAodG9wICsgYm90dG9tKSA+PiAxOworCQkgICAgICAgIGludCBmaXJzdCA9IG1fdGFibGVfWzMgKiByZXN1bHRdOworCQkgICAgICAgIGludCBzZWNvbmQgPSBtX3RhYmxlX1szICogcmVzdWx0ICsgMV07CisgICAgICAgICAgICAgICAgaW50IGNvbXBhcmlzb24gPSBVdGlsaXR5LmNvbXBhcmVVbnNpZ25lZChmaXJzdCwgY2UpOworCQkJICAgIGlmIChjb21wYXJpc29uID4gMCkgeworCQkJICAgICAgICB0b3AgPSByZXN1bHQ7CisJCQkgICAgfSAKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChjb21wYXJpc29uIDwgMCkgeworCQkJICAgICAgICBib3R0b20gPSByZXN1bHQ7CisJCQkgICAgfSAKKyAgICAgICAgICAgICAgICBlbHNlIHsKKwkJCSAgICAgICAgaWYgKHNlY29uZCA+IGNvbnRjZSkgeworCQkJICAgICAgICAgICAgdG9wID0gcmVzdWx0OworCQkJICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChzZWNvbmQgPCBjb250Y2UpIHsKKwkJCSAgICAgICAgICAgIGJvdHRvbSA9IHJlc3VsdDsKKwkJCSAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisJCQkgICAgICAgICAgICBicmVhazsKKwkJCSAgICAgICAgfQorCQkJICAgIH0KKwkJICAgIH0KKwkJCisJCSAgICByZXR1cm4gcmVzdWx0OworCQl9CisgICAgCisJICAgIC8qKgorCSAgICAgKiBHZXR0aW5nIGdhcCBvZmZzZXRzIGluIHRoZSBpbnZlcnNlIFVDQQorCSAgICAgKiBAcGFyYW0gbGlzdGhlYWRlciBwYXJzZWQgdG9rZW4gbGlzdHMKKwkgICAgICogQGV4Y2VwdGlvbiBFeGNlcHRpb24gdGhyb3duIHdoZW4gZXJyb3Igb2NjdXJzIHdoaWxlIGZpbmRpbmcgdGhlIAorCSAgICAgKiAgICAgICAgICAgIGNvbGxhdGlvbiBnYXBzCisJICAgICAqLworCSAgICB2b2lkIGdldEludmVyc2VHYXBQb3NpdGlvbnMoQ29sbGF0aW9uUnVsZVBhcnNlci5Ub2tlbkxpc3RIZWFkZXIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RoZWFkZXIpCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgRXhjZXB0aW9uIAorCSAgICB7CisJICAgICAgICAvLyByZXNldCBhbGwgdGhlIGdhcHMKKwkJICAgIENvbGxhdGlvblJ1bGVQYXJzZXIuVG9rZW4gdG9rZW4gPSBsaXN0aGVhZGVyLm1fZmlyc3RfOworCSAgICAgICAgaW50IHRva2Vuc3RyZW5ndGggPSB0b2tlbi5tX3N0cmVuZ3RoXzsKKwkKKwkJCWZvciAoaW50IGkgPSAwOyBpIDwgMzsgaSArKykgeworCQkJICAgIGxpc3RoZWFkZXIubV9nYXBzSGlfWzMgKiBpXSA9IDA7CisJCQkgICAgbGlzdGhlYWRlci5tX2dhcHNIaV9bMyAqIGkgKyAxXSA9IDA7CisJCQkgICAgbGlzdGhlYWRlci5tX2dhcHNIaV9bMyAqIGkgKyAyXSA9IDA7CisJCQkgICAgbGlzdGhlYWRlci5tX2dhcHNMb19bMyAqIGldID0gMDsKKwkJCSAgICBsaXN0aGVhZGVyLm1fZ2Fwc0xvX1szICogaSArIDFdID0gMDsKKwkJCSAgICBsaXN0aGVhZGVyLm1fZ2Fwc0xvX1szICogaSArIDJdID0gMDsKKwkJCSAgICBsaXN0aGVhZGVyLm1fbnVtU3RyX1tpXSA9IDA7CisJCQkgICAgbGlzdGhlYWRlci5tX2ZTdHJUb2tlbl9baV0gPSBudWxsOworCQkJICAgIGxpc3RoZWFkZXIubV9sU3RyVG9rZW5fW2ldID0gbnVsbDsKKwkJCSAgICBsaXN0aGVhZGVyLm1fcG9zX1tpXSA9IC0xOworCQkgICAgfQorCQorCSAgICAgICAgaWYgKChsaXN0aGVhZGVyLm1fYmFzZUNFXyA+Pj4gMjQpIAorICAgICAgICAgICAgICAgID49IFJ1bGVCYXNlZENvbGxhdG9yLlVDQV9DT05TVEFOVFNfLlBSSU1BUllfSU1QTElDSVRfTUlOXworCSAgICAgICAgICAgICYmIChsaXN0aGVhZGVyLm1fYmFzZUNFXyA+Pj4gMjQpCisgICAgICAgICAgICAgICAgPCBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5QUklNQVJZX0lNUExJQ0lUX01BWF8pIAorICAgICAgICAgICAgeyAKKwkgICAgICAgICAgICAvLyBpbXBsaWNpdHMgLQorCQkJICAgIGxpc3RoZWFkZXIubV9wb3NfWzBdID0gMDsKKwkJCSAgICBpbnQgdDEgPSBsaXN0aGVhZGVyLm1fYmFzZUNFXzsKKwkJCSAgICBpbnQgdDIgPSBsaXN0aGVhZGVyLm1fYmFzZUNvbnRDRV87CisJCQkgICAgbGlzdGhlYWRlci5tX2dhcHNMb19bMF0gPSBtZXJnZUNFKHQxLCB0MiwgCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlBSSU1BUlkpOworCQkJICAgIGxpc3RoZWFkZXIubV9nYXBzTG9fWzFdID0gbWVyZ2VDRSh0MSwgdDIsIAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5TRUNPTkRBUlkpOworCQkJICAgIGxpc3RoZWFkZXIubV9nYXBzTG9fWzJdID0gbWVyZ2VDRSh0MSwgdDIsIAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5URVJUSUFSWSk7CisJCQkgICAgaWYgKGxpc3RoZWFkZXIubV9iYXNlQ0VfIDwgMHhFRjAwMDAwMCkgeworCQkJICAgICAgICAvLyBmaXJzdCBpbXBsaWNpdHMgaGF2ZSB0aHJlZSBieXRlIHByaW1hcmllcywgd2l0aCBhIGdhcCBvZgorICAgICAgICAgICAgICAgICAgICAvLyBvbmUgc28gd2UgZXNlbnRpYWxseSBuZWVkIHRvIGFkZCAyIHRvIHRoZSB0b3AgYnl0ZSBpbiAKKwkgICAgICAgICAgICAgICAgLy8gbGlzdGhlYWRlci5tX2Jhc2VDb250Q0VfCisJCQkgICAgICAgIHQyICs9IDB4MDIwMDAwMDA7CisJCQkgICAgfSAKKwkgICAgICAgICAgICBlbHNlIHsKKwkJCSAgICAgICAgLy8gc2Vjb25kIGltcGxpY2l0cyBoYXZlIGZvdXIgYnl0ZSBwcmltYXJpZXMsIHdpdGggYSBnYXAgb2YKKyAgICAgICAgICAgICAgICAgICAgLy8gSU1QTElDSVRfTEFTVDJfTVVMVElQTElFUl8KKwkJCSAgICAgICAgLy8gTm93LCB0aGlzIGd1eSBpcyBub3QgcmVhbGx5IGFjY2Vzc2libGUgaGVyZSwgc28gdW50aWwgd2UgCisJICAgICAgICAgICAgICAgIC8vIGZpbmQgYSBiZXR0ZXIgd2F5IHRvIHBhc3MgaXQgYXJvdW5kLCBhc3N1bWUgdGhhdCB0aGUgZ2FwIGlzIDEKKwkJCSAgICAgICAgdDIgKz0gMHgwMDAyMDAwMDsKKwkJCSAgICB9CisJCSAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNIaV9bMF0gPSBtZXJnZUNFKHQxLCB0MiwgCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlBSSU1BUlkpOworCQkgICAgICAgIGxpc3RoZWFkZXIubV9nYXBzSGlfWzFdID0gbWVyZ2VDRSh0MSwgdDIsIAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5TRUNPTkRBUlkpOworCQkgICAgICAgIGxpc3RoZWFkZXIubV9nYXBzSGlfWzJdID0gbWVyZ2VDRSh0MSwgdDIsIAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5URVJUSUFSWSk7CisJCSAgICB9IAorCSAgICAgICAgZWxzZSBpZiAobGlzdGhlYWRlci5tX2luZGlyZWN0XyA9PSB0cnVlIAorICAgICAgICAgICAgICAgICAgICAgJiYgbGlzdGhlYWRlci5tX25leHRDRV8gIT0gMCkgeworCQkgICAgICAgIGxpc3RoZWFkZXIubV9wb3NfWzBdID0gMDsKKwkJCSAgICBpbnQgdDEgPSBsaXN0aGVhZGVyLm1fYmFzZUNFXzsKKwkJCSAgICBpbnQgdDIgPSBsaXN0aGVhZGVyLm1fYmFzZUNvbnRDRV87CisJCQkgICAgbGlzdGhlYWRlci5tX2dhcHNMb19bMF0gPSBtZXJnZUNFKHQxLCB0MiwgCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlBSSU1BUlkpOworCQkJICAgIGxpc3RoZWFkZXIubV9nYXBzTG9fWzFdID0gbWVyZ2VDRSh0MSwgdDIsIAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5TRUNPTkRBUlkpOworCQkJICAgIGxpc3RoZWFkZXIubV9nYXBzTG9fWzJdID0gbWVyZ2VDRSh0MSwgdDIsIAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5URVJUSUFSWSk7CisJCQkgICAgdDEgPSBsaXN0aGVhZGVyLm1fbmV4dENFXzsKKwkJCSAgICB0MiA9IGxpc3RoZWFkZXIubV9uZXh0Q29udENFXzsKKwkJCSAgICBsaXN0aGVhZGVyLm1fZ2Fwc0hpX1swXSA9IG1lcmdlQ0UodDEsIHQyLCAKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuUFJJTUFSWSk7CisJCQkgICAgbGlzdGhlYWRlci5tX2dhcHNIaV9bMV0gPSBtZXJnZUNFKHQxLCB0MiwgCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlNFQ09OREFSWSk7CisJCQkgICAgbGlzdGhlYWRlci5tX2dhcHNIaV9bMl0gPSBtZXJnZUNFKHQxLCB0MiwgCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlRFUlRJQVJZKTsKKwkJCX0gCisJICAgICAgICBlbHNlIHsKKwkJCSAgICB3aGlsZSAodHJ1ZSkgeworCQkJICAgICAgICBpZiAodG9rZW5zdHJlbmd0aCA8IENFX0JBU0lDX1NUUkVOR1RIX0xJTUlUXykgeworCSAgICAgICAgICAgICAgICAgICAgbGlzdGhlYWRlci5tX3Bvc19bdG9rZW5zdHJlbmd0aF0gCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGdldEludmVyc2VOZXh0KGxpc3RoZWFkZXIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbnN0cmVuZ3RoKTsKKwkJCSAgICAgICAgICAgIGlmIChsaXN0aGVhZGVyLm1fcG9zX1t0b2tlbnN0cmVuZ3RoXSA+PSAwKSB7CisJCQkgICAgICAgICAgICAgICAgbGlzdGhlYWRlci5tX2ZTdHJUb2tlbl9bdG9rZW5zdHJlbmd0aF0gPSB0b2tlbjsKKwkJCSAgICAgICAgICAgIH0gCisJICAgICAgICAgICAgICAgICAgICBlbHNlIHsgCisJICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlIENFIG11c3QgYmUgaW1wbGljaXQsIHNpbmNlIGl0J3Mgbm90IGluIHRoZSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0YWJsZSAKKwkJCQkgICAgICAgICAgICAvLyBFcnJvcgorCQkJCSAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oIkludGVybmFsIHByb2dyYW0gZXJyb3IiKTsKKwkJCSAgICAgICAgICAgIH0KKwkJCSAgICAgICAgfQorCQkJCisJCQkgICAgICAgIHdoaWxlICh0b2tlbiAhPSBudWxsICYmIHRva2VuLm1fc3RyZW5ndGhfID49IHRva2Vuc3RyZW5ndGgpIAorICAgICAgICAgICAgICAgICAgICB7CisJCQkJICAgICAgICBpZiAodG9rZW5zdHJlbmd0aCA8IENFX0JBU0lDX1NUUkVOR1RIX0xJTUlUXykgeworCQkJCSAgICAgICAgICAgIGxpc3RoZWFkZXIubV9sU3RyVG9rZW5fW3Rva2Vuc3RyZW5ndGhdID0gdG9rZW47CisJCQkJICAgICAgICB9CisJCQkJICAgICAgICB0b2tlbiA9IHRva2VuLm1fbmV4dF87CisJCQkJICAgIH0KKwkJCSAgICAgICAgaWYgKHRva2Vuc3RyZW5ndGggPCBDRV9CQVNJQ19TVFJFTkdUSF9MSU1JVF8gLSAxKSB7CisJCQkgICAgICAgICAgICAvLyBjaGVjayBpZiBwcmV2aW91cyBpbnRlcnZhbCBpcyB0aGUgc2FtZSBhbmQgbWVyZ2UgdGhlIAorCSAgICAgICAgICAgICAgICAgICAgLy8gaW50ZXJ2YWxzIGlmIGl0IGlzIHNvCisJCQkgICAgICAgICAgICBpZiAobGlzdGhlYWRlci5tX3Bvc19bdG9rZW5zdHJlbmd0aF0gCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBsaXN0aGVhZGVyLm1fcG9zX1t0b2tlbnN0cmVuZ3RoICsgMV0pIHsKKwkJCSAgICAgICAgICAgICAgICBsaXN0aGVhZGVyLm1fZlN0clRva2VuX1t0b2tlbnN0cmVuZ3RoXSAKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBsaXN0aGVhZGVyLm1fZlN0clRva2VuX1t0b2tlbnN0cmVuZ3RoIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgMV07CisJCQkgICAgICAgICAgICAgICAgbGlzdGhlYWRlci5tX2ZTdHJUb2tlbl9bdG9rZW5zdHJlbmd0aCArIDFdID0gbnVsbDsKKwkJCSAgICAgICAgICAgICAgICBsaXN0aGVhZGVyLm1fbFN0clRva2VuX1t0b2tlbnN0cmVuZ3RoICsgMV0gPSBudWxsOworCQkJICAgICAgICAgICAgICAgIGxpc3RoZWFkZXIubV9wb3NfW3Rva2Vuc3RyZW5ndGggKyAxXSA9IC0xOworCQkJICAgICAgICAgICAgfQorCQkJICAgICAgICB9CisJCQkgICAgICAgIGlmICh0b2tlbiAhPSBudWxsKSB7CisJCQkgICAgICAgICAgICB0b2tlbnN0cmVuZ3RoID0gdG9rZW4ubV9zdHJlbmd0aF87CisJCQkgICAgICAgIH0gCisJICAgICAgICAgICAgICAgIGVsc2UgeworCQkJICAgICAgICAgICAgYnJlYWs7CisJCQkgICAgICAgIH0KKwkJCSAgICB9CisJCSAgICAgICAgZm9yIChpbnQgc3QgPSAwOyBzdCA8IDM7IHN0ICsrKSB7CisJICAgICAgICAgICAgICAgIGludCBwb3MgPSBsaXN0aGVhZGVyLm1fcG9zX1tzdF07CisJCSAgICAgICAgICAgIGlmIChwb3MgPj0gMCkgeworCQkgICAgICAgICAgICAgICAgaW50IHQxID0gbV90YWJsZV9bMyAqIHBvc107CisJCSAgICAgICAgICAgICAgICBpbnQgdDIgPSBtX3RhYmxlX1szICogcG9zICsgMV07CisJCSAgICAgICAgICAgICAgICBsaXN0aGVhZGVyLm1fZ2Fwc0hpX1szICogc3RdID0gbWVyZ2VDRSh0MSwgdDIsIAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlBSSU1BUlkpOworCQkgICAgICAgICAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNIaV9bMyAqIHN0ICsgMV0gPSBtZXJnZUNFKHQxLCB0MiwgCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlNFQ09OREFSWSk7CisJCSAgICAgICAgICAgICAgICBsaXN0aGVhZGVyLm1fZ2Fwc0hpX1szICogc3QgKyAyXSA9ICh0MSAmIDB4M2YpIDw8IDI0IAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICh0MiAmIDB4M2YpIDw8IDE2OworCQkgICAgICAgICAgICAgICAgcG9zIC0tOworCQkgICAgICAgICAgICAgICAgdDEgPSBtX3RhYmxlX1szICogcG9zXTsKKwkJICAgICAgICAgICAgICAgIHQyID0gbV90YWJsZV9bMyAqIHBvcyArIDFdOworCQkgICAgICAgICAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNMb19bMyAqIHN0XSA9IG1lcmdlQ0UodDEsIHQyLCAKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5QUklNQVJZKTsKKwkJICAgICAgICAgICAgICAgIGxpc3RoZWFkZXIubV9nYXBzTG9fWzMgKiBzdCArIDFdID0gbWVyZ2VDRSh0MSwgdDIsIAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5TRUNPTkRBUlkpOworCQkgICAgICAgICAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNMb19bMyAqIHN0ICsgMl0gPSAodDEgJiAweDNmKSA8PCAyNCAKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAodDIgJiAweDNmKSA8PCAxNjsKKwkJICAgICAgICAgICAgfQorCQkgICAgICAgIH0KKwkJICAgIH0KKyAgICAgICAgfQorCSAgICAKKwkgICAgLyoqCisJICAgICAqIEdldHMgdGhlIG5leHQgQ0UgaW4gdGhlIGludmVyc2UgdGFibGUKKwkgICAgICogQHBhcmFtIGxpc3RoZWFkZXIgdG9rZW4gbGlzdCBoZWFkZXIKKwkgICAgICogQHBhcmFtIHN0cmVuZ3RoIGNvbGxhdGlvbiBzdHJlbmd0aAorCSAgICAgKiBAcmV0dXJuIG5leHQgY2UKKwkgICAgICovCisJICAgIHByaXZhdGUgZmluYWwgaW50IGdldEludmVyc2VOZXh0KENvbGxhdGlvblJ1bGVQYXJzZXIuVG9rZW5MaXN0SGVhZGVyIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0aGVhZGVyLCAKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0cmVuZ3RoKSAKKwkgICAgeworCQkgICAgaW50IGNlID0gbGlzdGhlYWRlci5tX2Jhc2VDRV87CisJCSAgICBpbnQgc2Vjb25kY2UgPSBsaXN0aGVhZGVyLm1fYmFzZUNvbnRDRV87IAorCQkgICAgaW50IHJlc3VsdCA9IGZpbmRJbnZlcnNlQ0UoY2UsIHNlY29uZGNlKTsKKwkJCQorCQkgICAgaWYgKHJlc3VsdCA8IDApIHsKKwkJICAgICAgICByZXR1cm4gLTE7CisJCSAgICB9CisJCQkKKwkJICAgIGNlICY9IFNUUkVOR1RIX01BU0tfW3N0cmVuZ3RoXTsKKwkJICAgIHNlY29uZGNlICY9IFNUUkVOR1RIX01BU0tfW3N0cmVuZ3RoXTsKKwkJCisJCSAgICBpbnQgbmV4dGNlID0gY2U7CisJCSAgICBpbnQgbmV4dGNvbnRjZSA9IHNlY29uZGNlOworCQkKKwkJICAgIHdoaWxlKChuZXh0Y2UgJiBTVFJFTkdUSF9NQVNLX1tzdHJlbmd0aF0pID09IGNlIAorCQkgICAgICAgICAgJiYgKG5leHRjb250Y2UgICYgU1RSRU5HVEhfTUFTS19bc3RyZW5ndGhdKSA9PSBzZWNvbmRjZSkgeworCQkgICAgICAgIG5leHRjZSA9IG1fdGFibGVfWzMgKiAoKysgcmVzdWx0KV07CisJCSAgICAgICAgbmV4dGNvbnRjZSA9IG1fdGFibGVfWzMgKiByZXN1bHQgKyAxXTsKKwkJICAgIH0KKwkJCQorCQkgICAgbGlzdGhlYWRlci5tX25leHRDRV8gPSBuZXh0Y2U7CisJCSAgICBsaXN0aGVhZGVyLm1fbmV4dENvbnRDRV8gPSBuZXh0Y29udGNlOworCQkKKwkJICAgIHJldHVybiByZXN1bHQ7CisJCX0KKwl9CisKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIEludmVyc2UgVUNBLCBpbnN0YW50aWF0ZSBvbmx5IHdoZW4gcmVxdWlyZWQKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgSW52ZXJzZVVDQSBJTlZFUlNFX1VDQV87IAorICAgIAorICAgIC8qKgorICAgICAqIEluaXRpYWxpemluZyB0aGUgaW52ZXJzZSBVQ0EKKyAgICAgKi8KKyAgICBzdGF0aWMgeworICAgICAgICB0cnkKKyAgICAgICAgeworICAgICAgICAgICAgU3RyaW5nIGludmRhdCA9ICIvY29tL2libS9pY3UvaW1wbC9kYXRhL2ludnVjYS5pY3UiOworICAgICAgICAgICAgSW5wdXRTdHJlYW0gaSA9IGludmRhdC5nZXRDbGFzcygpLmdldFJlc291cmNlQXNTdHJlYW0oaW52ZGF0KTsKKyAgICAgICAgICAgIEJ1ZmZlcmVkSW5wdXRTdHJlYW0gYiA9IG5ldyBCdWZmZXJlZElucHV0U3RyZWFtKGksIDExMDAwMCk7CisgICAgICAgICAgICBJTlZFUlNFX1VDQV8gPSBDb2xsYXRvclJlYWRlci5yZWFkSW52ZXJzZVVDQShiKTsKKyAgICAgICAgICAgIGIuY2xvc2UoKTsKKyAgICAgICAgICAgIGkuY2xvc2UoKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gcGFja2FnZSBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhbmQgc2V0cyB0aGUgY29sbGF0aW9uIHJ1bGVzIGluIHRoZSBhcmd1bWVudCBjb2xsYXRvcgorICAgICAqIEBwYXJhbSBjb2xsYXRvciB0byBzZXQKKyAgICAgKiBAZXhjZXB0aW9uIEV4Y2VwdGlvbiB0aHJvd24gd2hlbiBpbnRlcm5hbCBwcm9ncmFtIGVycm9yIG9jY3VycworICAgICAqLworICAgIHZvaWQgc2V0UnVsZXMoUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IpIHRocm93cyBFeGNlcHRpb24KKyAgICB7CisgICAgICAgIGlmIChtX3BhcnNlcl8ubV9yZXN1bHRMZW5ndGhfID4gMCkgeyAKKwkJICAgIC8vIHdlIGhhdmUgYSBzZXQgb2YgcnVsZXMsIGxldCdzIG1ha2Ugc29tZXRoaW5nIG9mIGl0IAorCQkgICAgYXNzZW1ibGVUYWlsb3JpbmdUYWJsZShjb2xsYXRvcik7CisJCX0gCisJCWVsc2UgeyAvLyBubyBydWxlcywgYnV0IG5vIGVycm9yIGVpdGhlciBtdXN0IGJlIG9ubHkgb3B0aW9ucworCQkgICAgICAgLy8gV2Ugd2lsbCBpbml0IHRoZSBjb2xsYXRvciBmcm9tIFVDQSAgIAorCQkgICAgY29sbGF0b3Iuc2V0V2l0aFVDQVRhYmxlcygpOworCQl9CisgICAgICAgIC8vIEFuZCBzZXQgb25seSB0aGUgb3B0aW9ucworICAgICAgICBtX3BhcnNlcl8uc2V0RGVmYXVsdE9wdGlvbnNJbkNvbGxhdG9yKGNvbGxhdG9yKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogMi4gIEVsaW1pbmF0ZSB0aGUgbmVnYXRpdmUgbGlzdHMgYnkgZG9pbmcgdGhlIGZvbGxvd2luZyBmb3IgZWFjaCAKKyAgICAgKiBub24tbnVsbCBuZWdhdGl2ZSBsaXN0OiAKKyAgICAgKiBvICAgaWYgcHJldmlvdXNDRShiYXNlQ0UsIHN0cm9uZ2VzdE4pICE9IHNvbWUgTGlzdEhlYWRlciBYJ3MgYmFzZUNFLCAKKyAgICAgKiBjcmVhdGUgbmV3IExpc3RIZWFkZXIgWCAKKyAgICAgKiBvICAgcmV2ZXJzZSB0aGUgbGlzdCwgYWRkIHRvIHRoZSBlbmQgb2YgWCdzIHBvc2l0aXZlIGxpc3QuIFJlc2V0IHRoZSAKKyAgICAgKiBzdHJlbmd0aCBvZiB0aGUgZmlyc3QgaXRlbSB5b3UgYWRkLCBiYXNlZCBvbiB0aGUgc3Ryb25nZXIgc3RyZW5ndGggCisgICAgICogbGV2ZWxzIG9mIHRoZSB0d28gbGlzdHMuIAorICAgICAqIAorICAgICAqIDMuICBGb3IgZWFjaCBMaXN0SGVhZGVyIHdpdGggYSBub24tbnVsbCBwb3NpdGl2ZSBsaXN0OiAKKyAgICAgKiBvICAgRmluZCBhbGwgY2hhcmFjdGVyIHN0cmluZ3Mgd2l0aCBDRXMgYmV0d2VlbiB0aGUgYmFzZUNFIGFuZCB0aGUgCisgICAgICogbmV4dC9wcmV2aW91cyBDRSwgYXQgdGhlIHN0cmVuZ3RoIG9mIHRoZSBmaXJzdCB0b2tlbi4gQWRkIHRoZXNlIHRvIHRoZSAKKyAgICAgKiB0YWlsb3JpbmcuIAorICAgICAqICAgICA/IFRoYXQgaXMsIGlmIFVDQSBoYXMgLi4uICB4IDw8PCBYIDw8IHgnIDw8PCBYJyA8IHkgLi4uLCBhbmQgdGhlIAorICAgICAqICAgICAgIHRhaWxvcmluZyBoYXMgJiB4IDwgei4uLiAKKyAgICAgKiAgICAgPyBUaGVuIHdlIGNoYW5nZSB0aGUgdGFpbG9yaW5nIHRvICYgeCAgPDw8IFggPDwgeCcgPDw8IFgnIDwgeiAuLi4gCisgICAgICogCisgICAgICogSXQgaXMgcG9zc2libGUgdGhhdCB0aGlzIHBhcnQgc2hvdWxkIGJlIGRvbmUgZXZlbiB3aGlsZSBjb25zdHJ1Y3RpbmcgbGlzdAorICAgICAqIFRoZSBwcm9ibGVtIGlzIHRoYXQgaXQgaXMgdW5rbm93biB3aGF0IGlzIGdvaW5nIHRvIGJlIHRoZSBzdHJvbmdlc3QgCisgICAgICogd2VpZ2h0LgorICAgICAqIFNvIHdlIG1pZ2h0IGFzIHdlbGwgZG8gaXQgaGVyZQorICAgICAqIG8gICBBbGxvY2F0ZSBDRXMgZm9yIGVhY2ggdG9rZW4gaW4gdGhlIGxpc3QsIGJhc2VkIG9uIHRoZSB0b3RhbCBudW1iZXIgTiAKKyAgICAgKiBvZiB0aGUgbGFyZ2VzdCBsZXZlbCBkaWZmZXJlbmNlLCBhbmQgdGhlIGdhcCBHIGJldHdlZW4gYmFzZUNFIGFuZCBuZXh0Q0UgCisgICAgICogYXQgdGhhdCBsZXZlbC4gVGhlIHJlbGF0aW9uICogYmV0d2VlbiB0aGUgbGFzdCBpdGVtIGFuZCBuZXh0Q0UgaXMgdGhlIAorICAgICAqIHNhbWUgYXMgdGhlIHN0cm9uZ2VzdCBzdHJlbmd0aC4gCisgICAgICogbyAgIEV4YW1wbGU6IGJhc2VDRSA8IGEgPDwgYiA8PDwgcSA8PCBjIDwgZCA8IGUgKiBuZXh0Q0UoWCwxKSAKKyAgICAgKiAgICAgPyBUaGVyZSBhcmUgMyBwcmltYXJ5IGl0ZW1zOiBhLCBkLCBlLiBGaXQgdGhlbSBpbnRvIHRoZSBwcmltYXJ5IGdhcC4gCisgICAgICogICAgIFRoZW4gZml0IGIgYW5kIGMgaW50byB0aGUgc2Vjb25kYXJ5IGdhcCBiZXR3ZWVuIGEgYW5kIGQsIHRoZW4gZml0IHEgCisgICAgICogICAgIGludG8gdGhlIHRlcnRpYXJ5IGdhcCBiZXR3ZWVuIGIgYW5kIGMuIAorICAgICAqIG8gICBFeGFtcGxlOiBiYXNlQ0UgPDwgYiA8PDwgcSA8PCBjICogbmV4dENFKFgsMikgCisgICAgICogICAgID8gVGhlcmUgYXJlIDIgc2Vjb25kYXJ5IGl0ZW1zOiBiLCBjLiBGaXQgdGhlbSBpbnRvIHRoZSBzZWNvbmRhcnkgZ2FwLiAKKyAgICAgKiAgICAgICBUaGVuIGZpdCBxIGludG8gdGhlIHRlcnRpYXJ5IGdhcCBiZXR3ZWVuIGIgYW5kIGMuIAorICAgICAqIG8gICBXaGVuIGluY3JlbWVudGluZyBwcmltYXJ5IHZhbHVlcywgd2Ugd2lsbCBub3QgY3Jvc3MgaGlnaCBieXRlIAorICAgICAqICAgICBib3VuZGFyaWVzIGV4Y2VwdCB3aGVyZSB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlLWJ5dGUgcHJpbWFyeS4gVGhhdCBpcyAKKyAgICAgKiAgICAgdG8gZW5zdXJlIHRoYXQgdGhlIHNjcmlwdCByZW9yZGVyaW5nIHdpbGwgY29udGludWUgdG8gd29yay4gCisgICAgICogQHBhcmFtIGNvbGxhdG9yIHRoZSBydWxlIGJhc2VkIGNvbGxhdG9yIHRvIHVwZGF0ZQorICAgICAqIEBleGNlcHRpb24gRXhjZXB0aW9uIHRocm93biB3aGVuIGludGVybmFsIHByb2dyYW0gZXJyb3Igb2NjdXJzCisgICAgICovCisgICAgdm9pZCBhc3NlbWJsZVRhaWxvcmluZ1RhYmxlKFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yKSB0aHJvd3MgRXhjZXB0aW9uCisgICAgeworICAgICAgICAKKwkgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtX3BhcnNlcl8ubV9yZXN1bHRMZW5ndGhfOyBpICsrKSB7CisJCSAgICAvLyBub3cgd2UgbmVlZCB0byBnZW5lcmF0ZSB0aGUgQ0VzICAKKwkJICAgIC8vIFdlIHN0dWZmIHRoZSBpbml0aWFsIHZhbHVlIGluIHRoZSBidWZmZXJzLCBhbmQgaW5jcmVhc2UgdGhlIAorICAgICAgICAgICAgLy8gYXBwcm9wcmlhdGUgYnVmZmVyIGFjY29yZGluZyB0byBzdHJlbmd0aAorCQkgICAgaW5pdEJ1ZmZlcnMobV9wYXJzZXJfLm1fbGlzdEhlYWRlcl9baV0pOworCSAgICB9CisJCQorICAgICAgICBpZiAobV9wYXJzZXJfLm1fdmFyaWFibGVUb3BfICE9IG51bGwpIHsgCisgICAgICAgICAgICAvLyBzdHVmZiB0aGUgdmFyaWFibGUgdG9wIHZhbHVlCisJCSAgICBtX3BhcnNlcl8ubV9vcHRpb25zXy5tX3ZhcmlhYmxlVG9wVmFsdWVfIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBtX3BhcnNlcl8ubV92YXJpYWJsZVRvcF8ubV9DRV9bMF0gPj4+IDE2OworCQkgICAgLy8gcmVtb3ZlIGl0IGZyb20gdGhlIGxpc3QKKwkJICAgIGlmIChtX3BhcnNlcl8ubV92YXJpYWJsZVRvcF8ubV9saXN0SGVhZGVyXy5tX2ZpcnN0XyAKKyAgICAgICAgICAgICAgICA9PSBtX3BhcnNlcl8ubV92YXJpYWJsZVRvcF8pIHsgLy8gZmlyc3QgaW4gbGlzdAorCQkgICAgICAgIG1fcGFyc2VyXy5tX3ZhcmlhYmxlVG9wXy5tX2xpc3RIZWFkZXJfLm1fZmlyc3RfIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IG1fcGFyc2VyXy5tX3ZhcmlhYmxlVG9wXy5tX25leHRfOworCQkgICAgfQorCQkgICAgaWYgKG1fcGFyc2VyXy5tX3ZhcmlhYmxlVG9wXy5tX2xpc3RIZWFkZXJfLm1fbGFzdF8gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBtX3BhcnNlcl8ubV92YXJpYWJsZVRvcF8pIHsgCisgICAgICAgICAgICAgICAgLy8gZmlyc3QgaW4gbGlzdAorCQkgICAgICAgIG1fcGFyc2VyXy5tX3ZhcmlhYmxlVG9wXy5tX2xpc3RIZWFkZXJfLm1fbGFzdF8gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBtX3BhcnNlcl8ubV92YXJpYWJsZVRvcF8ubV9wcmV2aW91c187ICAgIAorCQkgICAgfQorCQkgICAgaWYgKG1fcGFyc2VyXy5tX3ZhcmlhYmxlVG9wXy5tX25leHRfICE9IG51bGwpIHsKKwkJICAgICAgICBtX3BhcnNlcl8ubV92YXJpYWJsZVRvcF8ubV9uZXh0Xy5tX3ByZXZpb3VzXyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IG1fcGFyc2VyXy5tX3ZhcmlhYmxlVG9wXy5tX3ByZXZpb3VzXzsKKwkJICAgIH0KKwkJICAgIGlmIChtX3BhcnNlcl8ubV92YXJpYWJsZVRvcF8ubV9wcmV2aW91c18gIT0gbnVsbCkgeworCQkgICAgICAgIG1fcGFyc2VyXy5tX3ZhcmlhYmxlVG9wXy5tX3ByZXZpb3VzXy5tX25leHRfIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gbV9wYXJzZXJfLm1fdmFyaWFibGVUb3BfLm1fbmV4dF87CisJCSAgICB9CisJCX0KKwkJCisJCQorCQlCdWlsZFRhYmxlIHQgPSBuZXcgQnVpbGRUYWJsZShtX3BhcnNlcl8pOworCQkKKwkJLy8gQWZ0ZXIgdGhpcywgd2UgaGF2ZSBhc3NpZ25lZCBDRSB2YWx1ZXMgdG8gYWxsIHJlZ3VsYXIgQ0VzIG5vdyB3ZSAKKwkJLy8gd2lsbCBnbyB0aHJvdWdoIGxpc3Qgb25jZSBtb3JlIGFuZCByZXNvbHZlIGV4cGFuc2lvbnMsIG1ha2UgCisJCS8vIFVDQUVsZW1lbnRzIHN0cnVjdHMgYW5kIGFkZCB0aGVtIHRvIHRhYmxlICAgICAgICAgICAgICAgCisJCWZvciAoaW50IGkgPSAwOyBpIDwgbV9wYXJzZXJfLm1fcmVzdWx0TGVuZ3RoXzsgaSArKykgeworCQkgICAgLy8gbm93IHdlIG5lZWQgdG8gZ2VuZXJhdGUgdGhlIENFcyAKKwkJICAgIC8vIFdlIHN0dWZmIHRoZSBpbml0aWFsIHZhbHVlIGluIHRoZSBidWZmZXJzLCBhbmQgaW5jcmVhc2UgdGhlIAorCQkgICAgLy8gYXBwcm9wcmlhdGUgYnVmZmVyIGFjY29yZGluZyB0byBzdHJlbmd0aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworCQkgICAgY3JlYXRlRWxlbWVudHModCwgbV9wYXJzZXJfLm1fbGlzdEhlYWRlcl9baV0pOworCQl9CisJCQorCQlFbGVtZW50cyBlbCA9IG5ldyBFbGVtZW50cygpOworICAgICAgICBlbC5tX2lzVGhhaV8gPSBmYWxzZTsKKwkJZWwubV9wcmVmaXhDaGFyc18gPSBudWxsOworCQlpbnQgY2VbXSA9IG5ldyBpbnRbMjU2XTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHN0ciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgCisJCS8vIGFkZCBsYXRpbi0xIHN0dWZmCisJCWZvciAoY2hhciB1ID0gMDsgdSA8IDB4MTAwOyB1ICsrKSB7CisgICAgICAgICAgICAvLyBpZiAoKENFID0gdWNtcGUzMl9nZXQodC5tX21hcHBpbmcsIHUpKSA9PSBVQ09MX05PVF9GT1VORAorICAgICAgICAgICAgaW50IENFID0gdC5tX21hcHBpbmdfLmdldFZhbHVlKChpbnQpdSk7CisgICAgICAgICAgICBpZiAoQ0UgPT0gQ0VfTk9UX0ZPVU5EXyAKKwkJICAgICAgICAvLyB0aGlzIHRlc3QgaXMgZm9yIGNvbnRyYWN0aW9ucyB0aGF0IGFyZSBtaXNzaW5nIHRoZSBzdGFydGluZyAKKyAgICAgICAgICAgICAgICAvLyBlbGVtZW50LiBMb29rcyBsaWtlIGxhdGluLTEgc2hvdWxkIGJlIGRvbmUgYmVmb3JlIAorICAgICAgICAgICAgICAgIC8vIGFzc2VtYmxpbmcgdGhlIHRhYmxlLCBldmVuIGlmIGl0IHJlc3VsdHMgaW4gbW9yZSBmYWxzZSAKKyAgICAgICAgICAgICAgICAvLyBjbG9zdXJlIGVsZW1lbnRzCisJCSAgICAgICAgfHwgKGlzQ29udHJhY3Rpb25UYWJsZUVsZW1lbnQoQ0UpIAorICAgICAgICAgICAgICAgICAgICYmIGdldENFKHQubV9jb250cmFjdGlvbnNfLCBDRSwgMCkgPT0gQ0VfTk9UX0ZPVU5EXykpIHsKKyAgICAgICAgICAgICAgICBzdHIuZGVsZXRlKDAsIHN0ci5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZCh1KTsKKwkJICAgICAgICBlbC5tX3VjaGFyc18gPSBzdHIudG9TdHJpbmcoKTsKKwkJICAgICAgICBlbC5tX2NQb2ludHNfID0gZWwubV91Y2hhcnNfOworCQkgICAgICAgIGVsLm1fcHJlZml4XyA9IDA7CisgICAgICAgICAgICAgICAgaW50IGNlb2Zmc2V0ID0gMDsKKyAgICAgICAgICAgICAgICBtX3V0aWxDb2xFSXRlcl8uc2V0VGV4dChlbC5tX3VjaGFyc18pOworCQkgICAgICAgIHdoaWxlIChDRSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisJCSAgICAgICAgICAgIENFID0gbV91dGlsQ29sRUl0ZXJfLm5leHQoKTsKKwkJICAgICAgICAgICAgaWYgKENFICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKwkJICAgICAgICAgICAgICAgIGNlW2Nlb2Zmc2V0ICsrXSA9IENFOworCQkgICAgICAgICAgICB9CisJCSAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsLm1fQ0VzXyA9IG5ldyBpbnRbY2VvZmZzZXRdOworICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoY2UsIDAsIGVsLm1fQ0VzXywgMCwgY2VvZmZzZXQpOworCQkgICAgICAgIGFkZEFuRWxlbWVudCh0LCBlbCk7CisJCSAgICB9CisJCX0KKwkJCisgICAgICAgIC8vIGNvcHkgY29udHJhY3Rpb25zIGZyb20gdGhlIFVDQSAtIHRoaXMgaXMgZmVsdCBtb3N0bHkgZm9yIGN5cmlsbGljCisJCWNoYXIgY29udHNbXSA9IFJ1bGVCYXNlZENvbGxhdG9yLlVDQV9DT05UUkFDVElPTlNfOworICAgICAgICBpbnQgb2Zmc2V0ID0gMDsKKwkJd2hpbGUgKGNvbnRzW29mZnNldF0gIT0gMCkgeworCQkgICAgLy8gdGFpbG9yZWRDRSA9IHVjbXBlMzJfZ2V0KHQubV9tYXBwaW5nLCAqY29udHMpOworCQkgICAgaW50IHRhaWxvcmVkQ0UgPSB0Lm1fbWFwcGluZ18uZ2V0VmFsdWUoY29udHNbb2Zmc2V0XSk7CisJCSAgICBpZiAodGFpbG9yZWRDRSAhPSBDRV9OT1RfRk9VTkRfKSB7ICAgICAgICAgCisJCSAgICAgICAgYm9vbGVhbiBuZWVkVG9BZGQgPSB0cnVlOworCQkgICAgICAgIGlmIChpc0NvbnRyYWN0aW9uVGFibGVFbGVtZW50KHRhaWxvcmVkQ0UpKSB7CisJCSAgICAgICAgICAgIGlmIChpc1RhaWxvcmVkKHQubV9jb250cmFjdGlvbnNfLCB0YWlsb3JlZENFLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udHMsIG9mZnNldCArIDEpID09IHRydWUpIHsKKwkJICAgICAgICAgICAgICAgIG5lZWRUb0FkZCA9IGZhbHNlOworCQkgICAgICAgICAgICB9CisJCSAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChuZWVkVG9BZGQgPT0gdHJ1ZSkgeyAKKyAgICAgICAgICAgICAgICAgICAgLy8gd2UgbmVlZCB0byBhZGQgaWYgdGhpcyBjb250cmFjdGlvbiBpcyBub3QgdGFpbG9yZWQuCisJCSAgICAgICAgICAgIGVsLm1fcHJlZml4XyA9IDA7CisJCSAgICAgICAgICAgIGVsLm1fcHJlZml4Q2hhcnNfID0gbnVsbDsKKwkJICAgICAgICAgICAgZWwubV9jUG9pbnRzXyA9IGVsLm1fdWNoYXJzXzsKKyAgICAgICAgICAgICAgICAgICAgc3RyLmRlbGV0ZSgwLCBzdHIubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kKGNvbnRzW29mZnNldF0pOworICAgICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kKGNvbnRzW29mZnNldCArIDFdKTsKKwkJICAgICAgICAgICAgaWYgKGNvbnRzW29mZnNldCArIDJdICE9IDApIHsKKyAgICAJCSAgICAgICAgICAgIHN0ci5hcHBlbmQoY29udHNbb2Zmc2V0ICsgMl0pOworICAgIAkJICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICBlbC5tX3VjaGFyc18gPSBzdHIudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgaW50IGNlb2Zmc2V0ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsQ29sRUl0ZXJfLnNldFRleHQoZWwubV91Y2hhcnNfKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBDRSA9IG1fdXRpbENvbEVJdGVyXy5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoQ0UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlW2Nlb2Zmc2V0ICsrXSA9IENFOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWwubV9DRXNfID0gbmV3IGludFtjZW9mZnNldF07CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoY2UsIDAsIGVsLm1fQ0VzXywgMCwgY2VvZmZzZXQpOworCQkgICAgICAgICAgICBhZGRBbkVsZW1lbnQodCwgZWwpOworICAgICAgICAgICAgICAgIH0KKwkJICAgIH0KKwkJICAgIG9mZnNldCArPSAzOworCQl9CisJCQorICAgICAgICAvLyBBZGQgY29tcGxldGVseSBpZ25vcmFibGUgZWxlbWVudHMKKyAgICAgICAgcHJvY2Vzc1VDQUNvbXBsZXRlSWdub3JhYmxlcyh0KTsKKyAgCisgICAgICAgIC8vIGNhbm9uaWNhbCBjbG9zdXJlIAorICAgICAgICBjYW5vbmljYWxDbG9zdXJlKHQpOworCQkvLyBzdGlsbCBuZWVkIHRvIHByb2R1Y2UgY29tcGF0aWJpbGl0eSBjbG9zdXJlCisJCWFzc2VtYmxlVGFibGUodCwgY29sbGF0b3IpOyAgCisgICAgfQorICAgIAorICAgIC8vIHByaXZhdGUgaW5uZXIgY2xhc3NlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgQ0VHZW5lcmF0b3IgCisgICAgeworICAgICAgICAvLyBwYWNrYWdlIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorCSAgICBXZWlnaHRSYW5nZSBtX3Jhbmdlc19bXTsKKwkgICAgaW50IG1fcmFuZ2VzTGVuZ3RoXzsKKwkgICAgaW50IG1fYnl0ZVNpemVfOyAKKyAgICAgICAgaW50IG1fc3RhcnRfOyAKKyAgICAgICAgaW50IG1fbGltaXRfOworCSAgICBpbnQgbV9tYXhDb3VudF87CisJICAgIGludCBtX2NvdW50XzsKKwkgICAgaW50IG1fY3VycmVudF87CisJICAgIGludCBtX2ZMb3dfOyAvLyBmb3JiaWRkZW4gTG93IAorCSAgICBpbnQgbV9mSGlnaF87IC8vIGZvcmJpZGRlbiBIaWdoIAorICAgICAgICAKKyAgICAgICAgLy8gcGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAgICAgQ0VHZW5lcmF0b3IoKSAKKyAgICAgICAgeworICAgICAgICAgICAgbV9yYW5nZXNfID0gbmV3IFdlaWdodFJhbmdlWzddOyAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDY7IGkgPj0gMDsgaSAtLSkgeworICAgICAgICAgICAgICAgIG1fcmFuZ2VzX1tpXSA9IG5ldyBXZWlnaHRSYW5nZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisJfTsKKworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFdlaWdodFJhbmdlIGltcGxlbWVudHMgQ29tcGFyYWJsZQorICAgIHsKKyAgICAgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbXBhcmVzIHRoaXMgb2JqZWN0IHdpdGggdGFyZ2V0CisgICAgICAgICAqIEBwYXJhbSB0YXJnZXQgb2JqZWN0IHRvIGNvbXBhcmUgd2l0aAorICAgICAgICAgKiBAcmV0dXJuIDAgaWYgZXF1YWxzLCAxIGlmIHRoaXMgaXMgPiB0YXJnZXQsIC0xIG90aGVyd2lzZQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBjb21wYXJlVG8oT2JqZWN0IHRhcmdldCkgCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh0aGlzID09IHRhcmdldCkgeworICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IHRzdGFydCA9ICgoV2VpZ2h0UmFuZ2UpdGFyZ2V0KS5tX3N0YXJ0XzsgICAKKyAgICAgICAgICAgIGlmIChtX3N0YXJ0XyA9PSB0c3RhcnQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChtX3N0YXJ0XyA+IHRzdGFydCkgeworICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBwYWNrYWdlIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorCSAgICBpbnQgbV9zdGFydF87CisgICAgICAgIGludCBtX2VuZF87CisJICAgIGludCBtX2xlbmd0aF87IAorICAgICAgICBpbnQgbV9jb3VudF87CisJICAgIGludCBtX2xlbmd0aDJfOworCSAgICBpbnQgbV9jb3VudDJfOworICAgICAgICAKKyAgICAgICAgLy8gcGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAgICAgV2VpZ2h0UmFuZ2UoKQorICAgICAgICB7CisgICAgICAgICAgICBtX3N0YXJ0XyA9IDA7CisgICAgICAgICAgICBtX2VuZF8gPSAwOworICAgICAgICAgICAgbV9sZW5ndGhfID0gMDsgCisgICAgICAgICAgICBtX2NvdW50XyA9IDA7CisgICAgICAgICAgICBtX2xlbmd0aDJfID0gMDsKKyAgICAgICAgICAgIG1fY291bnQyXyA9IDA7CisgICAgICAgIH0KKwl9OworCQorCXByaXZhdGUgc3RhdGljIGNsYXNzIE1heEphbW9FeHBhbnNpb25UYWJsZQorCXsKKwkJLy8gcGFja2FnZSBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCQkKKwkgICAgVmVjdG9yIG1fZW5kRXhwYW5zaW9uQ0VfOworCSAgICAvLyB2ZWN0b3Igb2YgYm9vbGVhbnMKKwkgICAgVmVjdG9yIG1faXNWXzsKKwkgICAgYnl0ZSBtX21heExTaXplXzsKKwkgICAgYnl0ZSBtX21heFZTaXplXzsKKwkgICAgYnl0ZSBtX21heFRTaXplXzsKKwkgICAgCisJICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwkgICAgCisJICAgIE1heEphbW9FeHBhbnNpb25UYWJsZSgpCisJICAgIHsKKwkgICAgCW1fZW5kRXhwYW5zaW9uQ0VfID0gbmV3IFZlY3RvcigpOworCSAgICAJbV9pc1ZfID0gbmV3IFZlY3RvcigpOworCSAgICAJbV9lbmRFeHBhbnNpb25DRV8uYWRkKG5ldyBJbnRlZ2VyKDApKTsKKwkgICAgCW1faXNWXy5hZGQobmV3IEludGVnZXIoMCkpOworICAgICAgICAgICAgbV9tYXhMU2l6ZV8gPSAxOworICAgICAgICAgICAgbV9tYXhWU2l6ZV8gPSAxOworICAgICAgICAgICAgbV9tYXhUU2l6ZV8gPSAxOworCSAgICB9CisgICAgICAgIAorICAgICAgICBNYXhKYW1vRXhwYW5zaW9uVGFibGUoTWF4SmFtb0V4cGFuc2lvblRhYmxlIHRhYmxlKQorICAgICAgICB7CisgICAgICAgICAgICBtX2VuZEV4cGFuc2lvbkNFXyA9IChWZWN0b3IpdGFibGUubV9lbmRFeHBhbnNpb25DRV8uY2xvbmUoKTsKKyAgICAgICAgICAgIG1faXNWXyA9IChWZWN0b3IpdGFibGUubV9pc1ZfLmNsb25lKCk7CisgICAgICAgICAgICBtX21heExTaXplXyA9IHRhYmxlLm1fbWF4TFNpemVfOworICAgICAgICAgICAgbV9tYXhWU2l6ZV8gPSB0YWJsZS5tX21heFZTaXplXzsKKyAgICAgICAgICAgIG1fbWF4VFNpemVfID0gdGFibGUubV9tYXhUU2l6ZV87CisgICAgICAgIH0KKwl9OworCQorCXByaXZhdGUgc3RhdGljIGNsYXNzIE1heEV4cGFuc2lvblRhYmxlIAorCXsKKwkJLy8gcGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisJCQorCQlNYXhFeHBhbnNpb25UYWJsZSgpIAorCQl7CisJCQltX2VuZEV4cGFuc2lvbkNFXyA9IG5ldyBWZWN0b3IoKTsKKwkJCW1fZXhwYW5zaW9uQ0VTaXplXyA9IG5ldyBWZWN0b3IoKTsKKwkJCW1fZW5kRXhwYW5zaW9uQ0VfLmFkZChuZXcgSW50ZWdlcigwKSk7CisJCQltX2V4cGFuc2lvbkNFU2l6ZV8uYWRkKG5ldyBCeXRlKChieXRlKTApKTsKKwkJfQorICAgICAgICAKKyAgICAgICAgTWF4RXhwYW5zaW9uVGFibGUoTWF4RXhwYW5zaW9uVGFibGUgdGFibGUpIAorICAgICAgICB7CisgICAgICAgICAgICBtX2VuZEV4cGFuc2lvbkNFXyA9IChWZWN0b3IpdGFibGUubV9lbmRFeHBhbnNpb25DRV8uY2xvbmUoKTsKKyAgICAgICAgICAgIG1fZXhwYW5zaW9uQ0VTaXplXyA9IChWZWN0b3IpdGFibGUubV9leHBhbnNpb25DRVNpemVfLmNsb25lKCk7CisgICAgICAgIH0KKwkJCisJCS8vIHBhY2thZ2UgcHJpdmF0ZSBkYXRhIG1lbWJlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCQkKKwkgICAgVmVjdG9yIG1fZW5kRXhwYW5zaW9uQ0VfOworCSAgICBWZWN0b3IgbV9leHBhbnNpb25DRVNpemVfOworCX07CisJCisJcHJpdmF0ZSBzdGF0aWMgY2xhc3MgQmFzaWNDb250cmFjdGlvblRhYmxlIAorCXsKKwkJLy8gcGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9ycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisJCQorCQlCYXNpY0NvbnRyYWN0aW9uVGFibGUoKQorCQl7CisJCQltX0NFc18gPSBuZXcgVmVjdG9yKCk7CisJICAgICAgICBtX2NvZGVQb2ludHNfID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCQl9CisJCQorCQkvLyBwYWNrYWdlIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwkJCisJICAgIFN0cmluZ0J1ZmZlciBtX2NvZGVQb2ludHNfOworCSAgICBWZWN0b3IgbV9DRXNfOworICAgIH07CisgICAgCisJcHJpdmF0ZSBzdGF0aWMgY2xhc3MgQ29udHJhY3Rpb25UYWJsZSAKKwl7CisJCS8vIHBhY2thZ2UgcHJpdmF0ZSBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCQkKKwkJLyoqCisJCSAqIEJ1aWxkcyBhIGNvbnRyYWN0aW9uIHRhYmxlCisJCSAqIEBwYXJhbSBidWlsZHRhYmxlCisJCSAqLworCQlDb250cmFjdGlvblRhYmxlKEludFRyaWVCdWlsZGVyIG1hcHBpbmcpIAorCQl7CisJCSAgICBtX21hcHBpbmdfID0gbWFwcGluZzsKKwkJICAgIG1fZWxlbWVudHNfID0gbmV3IFZlY3RvcigpOworCQkgICAgbV9DRXNfID0gbmV3IFZlY3RvcigpOworCQkgICAgbV9jb2RlUG9pbnRzXyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKwkJICAgIG1fb2Zmc2V0c18gPSBuZXcgVmVjdG9yKCk7CisJCSAgICBtX2N1cnJlbnRUYWdfID0gQ0VfTk9UX0ZPVU5EX1RBR187CisJCX0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb3BpZXMgYSBjb250cmFjdGlvbiB0YWJsZS4KKyAgICAgICAgICogTm90IGFsbCBkYXRhIHdpbGwgYmUgY29waWVkIGludG8gdGhlaXIgb3duIG9iamVjdC4KKyAgICAgICAgICogQHBhcmFtIHRhYmxlCisgICAgICAgICAqLworICAgICAgICBDb250cmFjdGlvblRhYmxlKENvbnRyYWN0aW9uVGFibGUgdGFibGUpIAorICAgICAgICB7CisgICAgICAgICAgICBtX21hcHBpbmdfID0gdGFibGUubV9tYXBwaW5nXzsKKyAgICAgICAgICAgIG1fZWxlbWVudHNfID0gKFZlY3Rvcil0YWJsZS5tX2VsZW1lbnRzXy5jbG9uZSgpOworICAgICAgICAgICAgbV9jb2RlUG9pbnRzXyA9IG5ldyBTdHJpbmdCdWZmZXIodGFibGUubV9jb2RlUG9pbnRzXy50b1N0cmluZygpKTsKKyAgICAgICAgICAgIG1fQ0VzXyA9IChWZWN0b3IpdGFibGUubV9DRXNfLmNsb25lKCk7CisgICAgICAgICAgICBtX29mZnNldHNfID0gKFZlY3Rvcil0YWJsZS5tX29mZnNldHNfLmNsb25lKCk7CisgICAgICAgICAgICBtX2N1cnJlbnRUYWdfID0gdGFibGUubV9jdXJyZW50VGFnXzsKKyAgICAgICAgfQorCQorCSAgICAvLyBwYWNrYWdlIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCSAgICAKKwkJLyoqCisJCSAqIFZlY3RvciBvZiBCYXNpY0NvbnRyYWN0aW9uVGFibGUKKwkJICovCisgICAgICAgIFZlY3RvciBtX2VsZW1lbnRzXzsKKyAgICAgICAgSW50VHJpZUJ1aWxkZXIgbV9tYXBwaW5nXzsKKyAgICAgICAgU3RyaW5nQnVmZmVyIG1fY29kZVBvaW50c187CisJICAgIFZlY3RvciBtX0NFc187CisJICAgIFZlY3RvciBtX29mZnNldHNfOworCSAgICBpbnQgbV9jdXJyZW50VGFnXzsKKwl9OworCisJcHJpdmF0ZSBzdGF0aWMgY2xhc3MgQnVpbGRUYWJsZSBpbXBsZW1lbnRzIFRyaWVCdWlsZGVyLkRhdGFNYW5pcHVsYXRlCisJeworCQkvLyBwYWNrYWdlIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwkJCisJCS8qKgorCQkgKiBGb3IgY29uc3RydWN0aW9uIG9mIHRoZSBUcmllIHRhYmxlcy4KKwkJICogSGFzIHRvIGJlIGxhYmVsZWQgcHVibGljCisJCSAqIEBwYXJhbSB0YWJsZSBidWlsZCB0YWJsZQorCQkgKiBAcGFyYW0gY3AKKwkJICogQHBhcmFtIG9mZnNldAorCQkgKiBAcmV0dXJuIGRhdGEgb2Zmc2V0IG9yIDAgCisJCSAqIEBkcmFmdCAyLjIKKwkJICovCisJCXB1YmxpYyBmaW5hbCBpbnQgZ2V0Rm9sZGVkVmFsdWUoaW50IGNwLCBpbnQgb2Zmc2V0KQorCQl7CisJCSAgICBpbnQgbGltaXQgPSBjcCArIDB4NDAwOworCQkgICAgd2hpbGUgKGNwIDwgbGltaXQpIHsKKwkJICAgIAlpbnQgdmFsdWUgPSBtX21hcHBpbmdfLmdldFZhbHVlKGNwKTsKKwkJICAgIAlib29sZWFuIGluQmxvY2taZXJvID0gbV9tYXBwaW5nXy5pc0luWmVyb0Jsb2NrKGNwKTsKKwkJCSAgICBpbnQgdGFnID0gZ2V0Q0VUYWcodmFsdWUpOworCQkJICAgIGlmIChpbkJsb2NrWmVybyA9PSB0cnVlKSB7CisJCQkgICAgICAgIGNwICs9IFRyaWVCdWlsZGVyLkRBVEFfQkxPQ0tfTEVOR1RIXzsKKwkJCSAgICB9IAorCQkJICAgIGVsc2UgaWYgKCEoaXNTcGVjaWFsKHZhbHVlKSAmJiAodGFnID09IENFX0lNUExJQ0lUX1RBR18gCisJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCB0YWcgPT0gQ0VfTk9UX0ZPVU5EX1RBR18pKSkgeworCQkJICAgICAgICAvLyBUaGVzZSBhcmUgdmFsdWVzIHRoYXQgYXJlIHN0YXJ0aW5nIGluIGVpdGhlciBVQ0EgCisJCQkgICAgICAgIC8vIChJTVBMSUNJVF9UQUcpIG9yIGluIHRoZSB0YWlsb3JpbmdzIChOT1RfRk9VTkRfVEFHKS4gCisJCQkgICAgICAgIC8vIFByZXNlbmNlIG9mIHRoZXNlIHRhZ3MgbWVhbnMgdGhhdCB0aGVyZSBpcyBub3RoaW5nIGluIAorCQkJICAgICAgICAvLyB0aGlzIHBvc2l0aW9uIGFuZCB0aGF0IGl0IHNob3VsZCBiZSBza2lwcGVkLgorCQkJICAgICAgICByZXR1cm4gUnVsZUJhc2VkQ29sbGF0b3IuQ0VfU1BFQ0lBTF9GTEFHXyAKKwkJCSAgICAgICAgICAgICAgIHwgKENFX1NVUlJPR0FURV9UQUdfIDw8IDI0KSB8IG9mZnNldDsKKwkJCSAgICB9IAorCQkJICAgIGVsc2UgeworCQkJICAgICAgICArKyBjcDsKKwkJCSAgICB9CisJCSAgICB9CisJCQlyZXR1cm4gMDsKKwkJfQorCQorCQkvLyBwYWNrYWdlIHByaXZhdGUgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwkJCisJCS8qKgorCQkgKiBSZXR1cm5zIGEgdGFibGUKKwkJICogQHJldHVybiBidWlsZCB0YWJsZQorCQkgKi8KKwkJQnVpbGRUYWJsZShDb2xsYXRpb25SdWxlUGFyc2VyIHBhcnNlcikgCisJCXsKKwkJCW1fY29sbGF0b3JfID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKCk7CisJCQltX2NvbGxhdG9yXy5zZXRXaXRoVUNBRGF0YSgpOworCSAgICAgICAgTWF4RXhwYW5zaW9uVGFibGUgbWF4ZXQgPSBuZXcgTWF4RXhwYW5zaW9uVGFibGUoKTsKKwkgICAgICAgIE1heEphbW9FeHBhbnNpb25UYWJsZSBtYXhqZXQgPSBuZXcgTWF4SmFtb0V4cGFuc2lvblRhYmxlKCk7CisJICAgICAgICBtX29wdGlvbnNfID0gcGFyc2VyLm1fb3B0aW9uc187CisJICAgICAgICBtX2V4cGFuc2lvbnNfID0gbmV3IFZlY3RvcigpOworCSAgICAgICAgLy8gRG8geW91ciBvd24gbWFsbG9jcyBmb3IgdGhlIHN0cnVjdHVyZSwgYXJyYXkgYW5kIGhhdmUgbGluZWFyIAorCSAgICAgICAgLy8gTGF0aW4gMQorCSAgICAgICAgbV9tYXBwaW5nXyA9IG5ldyBJbnRUcmllQnVpbGRlcihudWxsLCAweDEwMDAwMCwgCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5DRV9TUEVDSUFMX0ZMQUdfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IChDRV9OT1RfRk9VTkRfVEFHXyA8PCAyNCksIAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSk7IAorCSAgICAgICAgbV9wcmVmaXhMb29rdXBfID0gbmV3IEhhc2h0YWJsZSgpOworCSAgICAgICAgLy8gdWhhc2hfb3BlbihwcmVmaXhMb29rdXBIYXNoLCBwcmVmaXhMb29rdXBDb21wKTsKKwkgICAgICAgIG1fY29udHJhY3Rpb25zXyA9IG5ldyBDb250cmFjdGlvblRhYmxlKG1fbWFwcGluZ18pOworCSAgICAgICAgLy8gY29weSBVQ0EncyBtYXhleHBhbnNpb24gYW5kIG1lcmdlIGFzIHdlIGdvIGFsb25nCisJCSAgICBtX21heEV4cGFuc2lvbnNfID0gbWF4ZXQ7CisJCSAgICAvLyBhZGRpbmcgYW4gZXh0cmEgaW5pdGlhbCB2YWx1ZSBmb3IgZWFzaWVyIG1hbmlwdWxhdGlvbiAKKwkJICAgIGZvciAoaW50IGkgPSAwOyAKKwkJICAgICAgICAgaSA8IFJ1bGVCYXNlZENvbGxhdG9yLlVDQV8ubV9leHBhbnNpb25FbmRDRV8ubGVuZ3RoOyBpICsrKSB7CisJCSAgICAgICAgIG1heGV0Lm1fZW5kRXhwYW5zaW9uQ0VfLmFkZChuZXcgSW50ZWdlcigKKwkJICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLlVDQV8ubV9leHBhbnNpb25FbmRDRV9baV0pKTsKKwkJICAgICAgICAgbWF4ZXQubV9leHBhbnNpb25DRVNpemVfLmFkZChuZXcgQnl0ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuVUNBXy5tX2V4cGFuc2lvbkVuZENFTWF4U2l6ZV9baV0pKTsKKwkJICAgIH0KKwkJICAgIG1fbWF4SmFtb0V4cGFuc2lvbnNfID0gbWF4amV0OworCQkKKwkJICAgIG1fdW5zYWZlQ1BfID0gbmV3IGJ5dGVbVU5TQUZFQ1BfVEFCTEVfU0laRV9dOworCQkgICAgbV9jb250ckVuZENQXyA9IG5ldyBieXRlW1VOU0FGRUNQX1RBQkxFX1NJWkVfXTsKKwkJICAgIEFycmF5cy5maWxsKG1fdW5zYWZlQ1BfLCAoYnl0ZSkwKTsKKwkJICAgIEFycmF5cy5maWxsKG1fY29udHJFbmRDUF8sIChieXRlKTApOworCQl9CisJCisgICAgICAgIC8qKgorICAgICAgICAgKiBEdXBsaWNhdGluZyBhIEJ1aWxkVGFibGUuCisgICAgICAgICAqIE5vdCBhbGwgZGF0YSB3aWxsIGJlIGR1cGxpY2F0ZWQgaW50byB0aGVpciBvd24gb2JqZWN0LgorICAgICAgICAgKiBAcGFyYW0gdGFibGUgdG8gY2xvbmUKKyAgICAgICAgICovCisgICAgICAgIEJ1aWxkVGFibGUoQnVpbGRUYWJsZSB0YWJsZSkgCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fY29sbGF0b3JfID0gdGFibGUubV9jb2xsYXRvcl87CisgICAgICAgICAgICBtX21hcHBpbmdfID0gbmV3IEludFRyaWVCdWlsZGVyKHRhYmxlLm1fbWFwcGluZ18pOworICAgICAgICAgICAgbV9leHBhbnNpb25zXyA9IChWZWN0b3IpdGFibGUubV9leHBhbnNpb25zXy5jbG9uZSgpOworICAgICAgICAgICAgbV9jb250cmFjdGlvbnNfID0gbmV3IENvbnRyYWN0aW9uVGFibGUodGFibGUubV9jb250cmFjdGlvbnNfKTsKKyAgICAgICAgICAgIG1fY29udHJhY3Rpb25zXy5tX21hcHBpbmdfID0gbV9tYXBwaW5nXzsKKyAgICAgICAgICAgIG1fb3B0aW9uc18gPSB0YWJsZS5tX29wdGlvbnNfOworICAgICAgICAgICAgbV9tYXhFeHBhbnNpb25zXyA9IG5ldyBNYXhFeHBhbnNpb25UYWJsZSh0YWJsZS5tX21heEV4cGFuc2lvbnNfKTsKKyAgICAgICAgICAgIG1fbWF4SmFtb0V4cGFuc2lvbnNfIAorICAgICAgICAgICAgICAgICAgICAgICA9IG5ldyBNYXhKYW1vRXhwYW5zaW9uVGFibGUodGFibGUubV9tYXhKYW1vRXhwYW5zaW9uc18pOworICAgICAgICAgICAgbV91bnNhZmVDUF8gPSBuZXcgYnl0ZVt0YWJsZS5tX3Vuc2FmZUNQXy5sZW5ndGhdOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0YWJsZS5tX3Vuc2FmZUNQXywgMCwgbV91bnNhZmVDUF8sIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdW5zYWZlQ1BfLmxlbmd0aCk7CisgICAgICAgICAgICBtX2NvbnRyRW5kQ1BfID0gbmV3IGJ5dGVbdGFibGUubV9jb250ckVuZENQXy5sZW5ndGhdOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0YWJsZS5tX2NvbnRyRW5kQ1BfLCAwLCBtX2NvbnRyRW5kQ1BfLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2NvbnRyRW5kQ1BfLmxlbmd0aCk7CisgICAgICAgIH0KKyAgICAgICAgCisJCS8vIHBhY2thZ2UgcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCQkKKwkJUnVsZUJhc2VkQ29sbGF0b3IgbV9jb2xsYXRvcl87CisgICAgICAgIEludFRyaWVCdWlsZGVyIG1fbWFwcGluZ187IAorICAgICAgICBWZWN0b3IgbV9leHBhbnNpb25zXzsgCisgICAgICAgIENvbnRyYWN0aW9uVGFibGUgbV9jb250cmFjdGlvbnNfOworCSAgICAvLyBVQ0FUYWJsZUhlYWRlciBpbWFnZTsKKwkgICAgQ29sbGF0aW9uUnVsZVBhcnNlci5PcHRpb25TZXQgbV9vcHRpb25zXzsKKwkgICAgTWF4RXhwYW5zaW9uVGFibGUgbV9tYXhFeHBhbnNpb25zXzsKKwkgICAgTWF4SmFtb0V4cGFuc2lvblRhYmxlIG1fbWF4SmFtb0V4cGFuc2lvbnNfOworCSAgICBieXRlIG1fdW5zYWZlQ1BfW107CisJICAgIGJ5dGUgbV9jb250ckVuZENQX1tdOworCSAgICBIYXNodGFibGUgbV9wcmVmaXhMb29rdXBfOworCX07IAorCQorCXByaXZhdGUgc3RhdGljIGNsYXNzIEVsZW1lbnRzCisJeworCQkvLyBwYWNrYWdlIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwkJCisJCVN0cmluZyBtX3ByZWZpeENoYXJzXzsKKwkgICAgaW50IG1fcHJlZml4XzsKKwkgICAgU3RyaW5nIG1fdWNoYXJzXzsKKwkgICAgLyoqCisJICAgICAqIFdvcmtpbmcgc3RyaW5nCisJICAgICAqLworCSAgICBTdHJpbmcgbV9jUG9pbnRzXzsgICAgCisJICAgIC8qKgorCSAgICAgKiBPZmZzZXQgdG8gdGhlIHdvcmtpbmcgc3RyaW5nCisJICAgICAqLworCSAgICBpbnQgbV9jUG9pbnRzT2Zmc2V0XzsKKwkgICAgLyoqIAorCSAgICAgKiBUaGVzZSBhcmUgY29sbGF0aW9uIGVsZW1lbnRzIC0gdGhlcmUgY291bGQgYmUgbW9yZSB0aGFuIG9uZSAtIGluIAorCSAgICAgKiBjYXNlIG9mIGV4cGFuc2lvbiAKKwkgICAgICovICAgIAorCSAgICBpbnQgbV9DRXNfW107ICAgICAgCisJICAgIC8qKiAKKwkgICAgICogVGhpcyBpcyB0aGUgdmFsdWUgZWxlbWVudCBtYXBzIGluIG9yaWdpbmFsIHRhYmxlICAgCisJICAgICAqLworCSAgICBpbnQgbV9tYXBDRV87ICAgICAgICAgCisJICAgIGludCBtX3NpemVQcmltX1tdOworCSAgICBpbnQgbV9zaXplU2VjX1tdOworCSAgICBpbnQgbV9zaXplVGVyX1tdOworCSAgICBib29sZWFuIG1fdmFyaWFibGVUb3BfOworCSAgICBib29sZWFuIG1fY2FzZUJpdF87CisJICAgIGJvb2xlYW4gbV9pc1RoYWlfOworCSAgICAKKwkJLy8gcGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9ycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisJCQorCQkvKioKKwkJICogUGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9yCisJCSAqLworCQlFbGVtZW50cygpCisJCXsKKwkJCW1fc2l6ZVByaW1fID0gbmV3IGludFsxMjhdOwkKKwkJICAgIG1fc2l6ZVNlY18gPSBuZXcgaW50WzEyOF07CQorCQkgICAgbV9zaXplVGVyXyA9IG5ldyBpbnRbMTI4XTsJCisJCX0KKworICAgICAgICAvKioKKwkJICogUGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9yCisJCSAqLworCQlFbGVtZW50cyhFbGVtZW50cyBlbGVtZW50KQorCQl7CisgICAgICAgICAgICBtX3ByZWZpeENoYXJzXyA9IGVsZW1lbnQubV9wcmVmaXhDaGFyc187CisgICAgICAgICAgICBtX3ByZWZpeF8gPSBlbGVtZW50Lm1fcHJlZml4XzsKKyAgICAgICAgICAgIG1fdWNoYXJzXyA9IGVsZW1lbnQubV91Y2hhcnNfOworICAgICAgICAgICAgbV9jUG9pbnRzXyA9IGVsZW1lbnQubV9jUG9pbnRzXzsgICAgCisgICAgICAgICAgICBtX2NQb2ludHNPZmZzZXRfID0gZWxlbWVudC5tX2NQb2ludHNPZmZzZXRfOyAgICAKKyAgICAgICAgICAgIG1fQ0VzXyA9IGVsZW1lbnQubV9DRXNfOworICAgICAgICAgICAgbV9tYXBDRV8gPSBlbGVtZW50Lm1fbWFwQ0VfOworCQkgICAgbV9zaXplUHJpbV8gPSBlbGVtZW50Lm1fc2l6ZVByaW1fOworCQkgICAgbV9zaXplU2VjXyA9IGVsZW1lbnQubV9zaXplU2VjXzsKKwkJICAgIG1fc2l6ZVRlcl8gPSBlbGVtZW50Lm1fc2l6ZVRlcl87CisJCSAgICBtX3ZhcmlhYmxlVG9wXyA9IGVsZW1lbnQubV92YXJpYWJsZVRvcF87CisJCSAgICBtX2Nhc2VCaXRfID0gZWxlbWVudC5tX2Nhc2VCaXRfOworCQkgICAgbV9pc1RoYWlfID0gZWxlbWVudC5tX2lzVGhhaV87CisJCX0KKworICAgICAgICAvLyBwYWNrYWdlIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogSGFzaGNvZGUgY2FsY3VsYXRpb24gZm9yIHRva2VuCisgICAgICAgICAqIEByZXR1cm4gdGhlIGhhc2hjb2RlCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkKKyAgICAgICAgeworICAgICAgICAJU3RyaW5nIHN0ciA9IG1fY1BvaW50c18uc3Vic3RyaW5nKG1fY1BvaW50c09mZnNldF8pOworCQkgICAgcmV0dXJuIHN0ci5oYXNoQ29kZSgpOworCSAgICB9CisJCQorCQkvKioKKwkgICAgICogRXF1YWxzIGNhbGN1bGF0aW9uCisJICAgICAqIEBwYXJhbSB0YXJnZXQgb2JqZWN0IHRvIGNvbXBhcmUKKwkgICAgICogQHJldHVybiB0cnVlIGlmIHRhcmdldCBpcyB0aGUgc2FtZSBhcyB0aGlzIG9iamVjdAorCSAgICAgKi8KKwkgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCB0YXJnZXQpCisJICAgIHsKKwkgICAgICAgIGlmICh0YXJnZXQgPT0gdGhpcykgeworCSAgICAgICAgICAgIHJldHVybiB0cnVlOworCSAgICAgICAgfQorCSAgICAgICAgaWYgKHRhcmdldCBpbnN0YW5jZW9mIEVsZW1lbnRzKSB7CisJICAgICAgICAJRWxlbWVudHMgdCA9IChFbGVtZW50cyl0YXJnZXQ7CisJICAgICAgICAJaW50IHNpemUgPSBtX2NQb2ludHNfLmxlbmd0aCgpIC0gbV9jUG9pbnRzT2Zmc2V0XzsKKwkgICAgICAgIAlpZiAoc2l6ZSA9PSB0Lm1fY1BvaW50c18ubGVuZ3RoKCkgLSB0Lm1fY1BvaW50c09mZnNldF8pIHsKKwkJCQkgICAgcmV0dXJuIHQubV9jUG9pbnRzXy5yZWdpb25NYXRjaGVzKHQubV9jUG9pbnRzT2Zmc2V0XywgCisJCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2NQb2ludHNfLCAKKwkJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY1BvaW50c09mZnNldF8sIHNpemUpOworCSAgICAgICAgCX0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKwkJfQorCX07CisKKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIE1heGltdW0gc3RyZW5ndGggdXNlZCBpbiBDRSBidWlsZGluZworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9CQVNJQ19TVFJFTkdUSF9MSU1JVF8gPSAzOworICAgIC8qKgorICAgICAqIE1heGltdW0gY29sbGF0aW9uIHN0cmVuZ3RoCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX1NUUkVOR1RIX0xJTUlUXyA9IDE2OworICAgIC8qKgorICAgICAqIFN0cmVuZ3RoIG1hc2sgYXJyYXksIHVzZWQgaW4gaW52ZXJzZSBVQ0EKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1RSRU5HVEhfTUFTS19bXSA9IHsweEZGRkYwMDAwLCAweEZGRkZGRjAwLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGfTsKKyAgICAvKioKKyAgICAgKiBDRSB0YWcgZm9yIG5vdCBmb3VuZAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9OT1RfRk9VTkRfID0gMHhGMDAwMDAwMDsKKyAgICAvKioKKyAgICAgKiBDRSB0YWcgZm9yIG5vdCBmb3VuZAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9OT1RfRk9VTkRfVEFHXyA9IDA7CisgICAgLyoqCisgICAgICogVGhpcyBjb2RlIHBvaW50IHJlc3VsdHMgaW4gYW4gZXhwYW5zaW9uIAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9FWFBBTlNJT05fVEFHXyA9IDE7CisgICAgLyoqIAorICAgICAqIFN0YXJ0IG9mIGEgY29udHJhY3Rpb24gCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX0NPTlRSQUNUSU9OX1RBR18gPSAyOworICAgIC8qKiAKKyAgICAgKiBUaGFpIGNoYXJhY3RlciAtIGRvIHRoZSByZW9yZGVyaW5nIAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9USEFJX1RBR18gPSAzOyAgICAgICAgICAgIAorICAgIC8qKiAKKyAgICAgKiBDaGFyc2V0IHByb2Nlc3NpbmcsIG5vdCB5ZXQgaW1wbGVtZW50ZWQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfQ0hBUlNFVF9UQUdfID0gNDsgICAgICAgICAKKyAgICAvKiogCisgICAgICogTGVhZCBzdXJyb2dhdGUgdGhhdCBpcyB0YWlsb3JlZCBhbmQgZG9lc24ndCBzdGFydCBhIGNvbnRyYWN0aW9uIAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9TVVJST0dBVEVfVEFHXyA9IDU7CisgICAgLyoqIAorICAgICAqIEFDMDAtRDdBRgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9IQU5HVUxfU1lMTEFCTEVfVEFHXyA9IDY7CisgICAgLyoqIAorICAgICAqIEQ4MDAtREJGRgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9MRUFEX1NVUlJPR0FURV9UQUdfID0gNzsKKyAgICAvKiogCisgICAgICogREMwMC1ERkZGCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX1RSQUlMX1NVUlJPR0FURV9UQUdfID0gODsgCisgICAgLyoqIAorICAgICAqIDB4MzQwMC0weDREQjUsIDB4NEUwMC0weDlGQTUsIDB4RjkwMC0weEZBMkQKKyAgICAgKi8gICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX0NKS19JTVBMSUNJVF9UQUdfID0gOTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfSU1QTElDSVRfVEFHXyA9IDEwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9TUEVDX1BST0NfVEFHXyA9IDExOworICAgIC8qKiAKKyAgICAgKiBUaGlzIGlzIGEgdGhyZWUgYnl0ZSBwcmltYXJ5IHdpdGggc3RhcnRpbmcgc2Vjb25kYXJpZXMgYW5kIHRlcnRpYXJpZXMuCisgICAgICogSXQgZml0cyBpbiBhIHNpbmdsZSAzMiBiaXQgQ0UgYW5kIGlzIHVzZWQgaW5zdGVhZCBvZiBleHBhbnNpb24gdG8gc2F2ZQorICAgICAqIHNwYWNlIHdpdGhvdXQgYWZmZWN0aW5nIHRoZSBwZXJmb3JtYW5jZSAoaG9wZWZ1bGx5KSAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfTE9OR19QUklNQVJZX1RBR18gPSAxMjsgIAorICAgIC8qKiAKKyAgICAgKiBVbnNhZmUgVUNoYXIgaGFzaCB0YWJsZSB0YWJsZSBzaXplLiBTaXplIGlzIDMyIGJ5dGVzIGZvciAxIGJpdCBmb3IgZWFjaCAKKyAgICAgKiBsYXRpbiAxIGNoYXIgKyBzb21lIHBvd2VyIG9mIHR3byBmb3IgaGFzaGluZyB0aGUgcmVzdCBvZiB0aGUgY2hhcnMuIAorICAgICAqIFNpemUgaW4gYnl0ZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVOU0FGRUNQX1RBQkxFX1NJWkVfID0gMTA1NjsKKyAgICAvKiogCisgICAgICogTWFzayB2YWx1ZSBkb3duIHRvICJzb21lIHBvd2VyIG9mIHR3byIgLTEuIE51bWJlciBvZiBiaXRzLCBub3QgbnVtIG9mIAorICAgICAqIGJ5dGVzLiAgICAgICAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVU5TQUZFQ1BfVEFCTEVfTUFTS18gPSAweDFmZmY7CisgICAgLyoqCisgICAgICogQ2FzZSB2YWx1ZXMKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVVBQRVJfQ0FTRV8gPSAweDgwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNSVhFRF9DQVNFXyA9IDB4NDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExPV0VSX0NBU0VfID0gMHgwMDsKKyAgICAvKioKKyAgICAgKiBJbml0aWFsIHRhYmxlIHNpemUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSU5JVF9UQUJMRV9TSVpFXyA9IDEwMjg7CisgICAgLyoqCisgICAgICogSGVhZGVyIHNpemUsIGNvcGllZCBmcm9tIElDVTRDLCB0byBiZSBjaGFuZ2VkIHdoZW4gdGhhdCB2YWx1ZSBjaGFuZ2VzCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEhFQURFUl9TSVpFXyA9IDB4QzQ7CisgICAgLyoqCisgICAgICogQ29udHJhY3Rpb24gdGFibGUgbmV3IGVsZW1lbnQgaW5kaWNhdG9yCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENPTlRSQUNUSU9OX1RBQkxFX05FV19FTEVNRU5UXyA9IDB4RkZGRkZGOworICAgIC8qKgorICAgICAqIFBhcnNlciBmb3IgdGhlIHJ1bGVzCisgICAgICovCisgICAgcHJpdmF0ZSBDb2xsYXRpb25SdWxlUGFyc2VyIG1fcGFyc2VyXzsKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IFVDQSBjb2xsYXRpb24gZWxlbWVudCBpdGVyYXRvcgorICAgICAqLworICAgIHByaXZhdGUgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIG1fdXRpbENvbEVJdGVyXzsKKyAgICAKKyAgICAvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIEBwYXJhbSBsaXN0aGVhZGVyIHBhcnNlZCBydWxlIHRva2VucworICAgICAqIEBleGNlcHRpb24gRXhjZXB0aW9uIHRocm93biB3aGVuIGludGVybmFsIGVycm9yIG9jY3VycworICAgICAqLworICAgIHByaXZhdGUgdm9pZCBpbml0QnVmZmVycyhDb2xsYXRpb25SdWxlUGFyc2VyLlRva2VuTGlzdEhlYWRlciBsaXN0aGVhZGVyKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb24KKyAgICB7CisgICAgICAgIENFR2VuZXJhdG9yIGdlbnNbXSA9IHtuZXcgQ0VHZW5lcmF0b3IoKSwgbmV3IENFR2VuZXJhdG9yKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQ0VHZW5lcmF0b3IoKX07CisJCWludCBjZXBhcnRzW10gPSBuZXcgaW50W0NFX0JBU0lDX1NUUkVOR1RIX0xJTUlUX107CisJCUNvbGxhdGlvblJ1bGVQYXJzZXIuVG9rZW4gdG9rZW4gPSBsaXN0aGVhZGVyLm1fbGFzdF87CisJCWludCB0W10gPSBuZXcgaW50W0NFX1NUUkVOR1RIX0xJTUlUX107CisJCUFycmF5cy5maWxsKHQsIDAsIENFX1NUUkVOR1RIX0xJTUlUXywgMCk7CisJCQorCQl0b2tlbi5tX3RvSW5zZXJ0XyA9IDE7CisJCXRbdG9rZW4ubV9zdHJlbmd0aF9dID0gMTsKKwkJCisJCXdoaWxlICh0b2tlbi5tX3ByZXZpb3VzXyAhPSBudWxsKSB7CisJCSAgICBpZiAodG9rZW4ubV9wcmV2aW91c18ubV9zdHJlbmd0aF8gPCB0b2tlbi5tX3N0cmVuZ3RoXykgeyAKKyAgICAgICAgICAgICAgICAvLyBnb2luZyB1cAorCQkgICAgICAgIHRbdG9rZW4ubV9zdHJlbmd0aF9dID0gMDsKKwkJICAgICAgICB0W3Rva2VuLm1fcHJldmlvdXNfLm1fc3RyZW5ndGhfXSArKzsKKwkJICAgIH0gCisgICAgICAgICAgICBlbHNlIGlmICh0b2tlbi5tX3ByZXZpb3VzXy5tX3N0cmVuZ3RoXyA+IHRva2VuLm1fc3RyZW5ndGhfKSB7IAorICAgICAgICAgICAgICAgIC8vIGdvaW5nIGRvd24KKwkJICAgICAgICB0W3Rva2VuLm1fcHJldmlvdXNfLm1fc3RyZW5ndGhfXSA9IDE7CisJCSAgICB9IAorICAgICAgICAgICAgZWxzZSB7CisJCSAgICAgICAgdFt0b2tlbi5tX3N0cmVuZ3RoX10gKys7CisJCSAgICB9CisJCSAgICB0b2tlbiA9IHRva2VuLm1fcHJldmlvdXNfOworCQkgICAgdG9rZW4ubV90b0luc2VydF8gPSB0W3Rva2VuLm1fc3RyZW5ndGhfXTsKKwkJfSAKKwkJCisJCXRva2VuLm1fdG9JbnNlcnRfID0gdFt0b2tlbi5tX3N0cmVuZ3RoX107CisJCUlOVkVSU0VfVUNBXy5nZXRJbnZlcnNlR2FwUG9zaXRpb25zKGxpc3RoZWFkZXIpOworCQkKKwkJdG9rZW4gPSBsaXN0aGVhZGVyLm1fZmlyc3RfOworCQlpbnQgZnN0cmVuZ3RoID0gQ29sbGF0b3IuSURFTlRJQ0FMOworCQlpbnQgaW5pdHN0cmVuZ3RoID0gQ29sbGF0b3IuSURFTlRJQ0FMOworCQkKKwkJY2VwYXJ0c1tDb2xsYXRvci5QUklNQVJZXSA9IG1lcmdlQ0UobGlzdGhlYWRlci5tX2Jhc2VDRV8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0aGVhZGVyLm1fYmFzZUNvbnRDRV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlBSSU1BUlkpOworCQljZXBhcnRzW0NvbGxhdG9yLlNFQ09OREFSWV0gPSBtZXJnZUNFKGxpc3RoZWFkZXIubV9iYXNlQ0VfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0aGVhZGVyLm1fYmFzZUNvbnRDRV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuU0VDT05EQVJZKTsKKwkJY2VwYXJ0c1tDb2xsYXRvci5URVJUSUFSWV0gPSBtZXJnZUNFKGxpc3RoZWFkZXIubV9iYXNlQ0VfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RoZWFkZXIubV9iYXNlQ29udENFXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlRFUlRJQVJZKTsKKwkJd2hpbGUgKHRva2VuICE9IG51bGwpIHsKKwkJICAgIGZzdHJlbmd0aCA9IHRva2VuLm1fc3RyZW5ndGhfOworCQkgICAgaWYgKGZzdHJlbmd0aCA8IGluaXRzdHJlbmd0aCkgeworCQkgICAgICAgIGluaXRzdHJlbmd0aCA9IGZzdHJlbmd0aDsKKwkJICAgICAgICBpZiAobGlzdGhlYWRlci5tX3Bvc19bZnN0cmVuZ3RoXSA9PSAtMSkgeworCQkgICAgICAgICAgICB3aGlsZSAobGlzdGhlYWRlci5tX3Bvc19bZnN0cmVuZ3RoXSA9PSAtMSAmJiBmc3RyZW5ndGggPiAwKSAKKyAgICAgICAgICAgICAgICAgICAgeworCQkgICAgICAgICAgICAgICAgZnN0cmVuZ3RoLS07CisJCSAgICAgICAgICAgIH0KKwkJICAgICAgICAgICAgaWYgKGxpc3RoZWFkZXIubV9wb3NfW2ZzdHJlbmd0aF0gPT0gLTEpIHsKKwkJICAgICAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oIkludGVybmFsIHByb2dyYW0gZXJyb3IiKTsKKwkJICAgICAgICAgICAgfQorCQkgICAgICAgIH0KKwkJICAgICAgICBpZiAoaW5pdHN0cmVuZ3RoID09IENvbGxhdG9yLlRFUlRJQVJZKSB7IAorICAgICAgICAgICAgICAgICAgICAvLyBzdGFydGluZyB3aXRoIHRlcnRpYXJ5CisJCQkgICAgICAgIGNlcGFydHNbQ29sbGF0b3IuUFJJTUFSWV0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gbGlzdGhlYWRlci5tX2dhcHNMb19bZnN0cmVuZ3RoICogM107CisJCQkgICAgICAgIGNlcGFydHNbQ29sbGF0b3IuU0VDT05EQVJZXSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGxpc3RoZWFkZXIubV9nYXBzTG9fW2ZzdHJlbmd0aCAqIDMgKyAxXTsKKwkJCSAgICAgICAgY2VwYXJ0c1tDb2xsYXRvci5URVJUSUFSWV0gPSBnZXRDRUdlbmVyYXRvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5zW0NvbGxhdG9yLlRFUlRJQVJZXSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNMb18sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RoZWFkZXIubV9nYXBzSGlfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbiwgZnN0cmVuZ3RoKTsgCisJCSAgICAgICAgfSAKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChpbml0c3RyZW5ndGggPT0gQ29sbGF0b3IuU0VDT05EQVJZKSB7IAorICAgICAgICAgICAgICAgICAgICAvLyBzZWNvbmRhcmllcworCQkgICAgICAgICAgICBjZXBhcnRzW0NvbGxhdG9yLlBSSU1BUlldIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGxpc3RoZWFkZXIubV9nYXBzTG9fW2ZzdHJlbmd0aCAqIDNdOworCQkgICAgICAgICAgICBjZXBhcnRzW0NvbGxhdG9yLlNFQ09OREFSWV0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBnZXRDRUdlbmVyYXRvcihnZW5zW0NvbGxhdG9yLlNFQ09OREFSWV0sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNMb18sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNIaV8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnN0cmVuZ3RoKTsKKwkJICAgICAgICAgICAgY2VwYXJ0c1tDb2xsYXRvci5URVJUSUFSWV0gPSBnZXRTaW1wbGVDRUdlbmVyYXRvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5zW0NvbGxhdG9yLlRFUlRJQVJZXSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlRFUlRJQVJZKTsKKwkJICAgICAgICB9IAorICAgICAgICAgICAgICAgIGVsc2UgeyAKKyAgICAgICAgICAgICAgICAgICAgLy8gcHJpbWFyaWVzIAorCQkgICAgICAgICAgICBjZXBhcnRzW0NvbGxhdG9yLlBSSU1BUlldID0gZ2V0Q0VHZW5lcmF0b3IoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlbnNbQ29sbGF0b3IuUFJJTUFSWV0sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0aGVhZGVyLm1fZ2Fwc0xvXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RoZWFkZXIubV9nYXBzSGlfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4sIGZzdHJlbmd0aCk7CisJCSAgICAgICAgICAgIGNlcGFydHNbQ29sbGF0b3IuU0VDT05EQVJZXSA9IGdldFNpbXBsZUNFR2VuZXJhdG9yKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Vuc1tDb2xsYXRvci5TRUNPTkRBUlldLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlNFQ09OREFSWSk7CisJCSAgICAgICAgICAgIGNlcGFydHNbQ29sbGF0b3IuVEVSVElBUlldID0gZ2V0U2ltcGxlQ0VHZW5lcmF0b3IoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Vuc1tDb2xsYXRvci5URVJUSUFSWV0sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5URVJUSUFSWSk7CisJCSAgICAgICAgfQorCQkgICAgfSAKKyAgICAgICAgICAgIGVsc2UgeworCQkgICAgICAgIGlmICh0b2tlbi5tX3N0cmVuZ3RoXyA9PSBDb2xsYXRvci5URVJUSUFSWSkgeworCQkgICAgICAgICAgICBjZXBhcnRzW0NvbGxhdG9yLlRFUlRJQVJZXSA9IGdldE5leHRHZW5lcmF0ZWQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5zW0NvbGxhdG9yLlRFUlRJQVJZXSk7CisJCSAgICAgICAgfSAKKyAgICAgICAgICAgICAgICBlbHNlIGlmICh0b2tlbi5tX3N0cmVuZ3RoXyA9PSBDb2xsYXRvci5TRUNPTkRBUlkpIHsKKwkJICAgICAgICAgICAgY2VwYXJ0c1tDb2xsYXRvci5TRUNPTkRBUlldID0gZ2V0TmV4dEdlbmVyYXRlZCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Vuc1tDb2xsYXRvci5TRUNPTkRBUlldKTsKKwkJICAgICAgICAgICAgY2VwYXJ0c1tDb2xsYXRvci5URVJUSUFSWV0gPSBnZXRTaW1wbGVDRUdlbmVyYXRvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5zW0NvbGxhdG9yLlRFUlRJQVJZXSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlRFUlRJQVJZKTsKKwkJICAgICAgICB9IAorICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRva2VuLm1fc3RyZW5ndGhfID09IENvbGxhdG9yLlBSSU1BUlkpIHsKKwkJICAgICAgICAgICAgY2VwYXJ0c1tDb2xsYXRvci5QUklNQVJZXSA9IGdldE5leHRHZW5lcmF0ZWQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Vuc1tDb2xsYXRvci5QUklNQVJZXSk7CisJCSAgICAgICAgICAgIGNlcGFydHNbQ29sbGF0b3IuU0VDT05EQVJZXSA9IGdldFNpbXBsZUNFR2VuZXJhdG9yKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Vuc1tDb2xsYXRvci5TRUNPTkRBUlldLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlNFQ09OREFSWSk7CisJCSAgICAgICAgICAgIGNlcGFydHNbQ29sbGF0b3IuVEVSVElBUlldID0gZ2V0U2ltcGxlQ0VHZW5lcmF0b3IoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5zW0NvbGxhdG9yLlRFUlRJQVJZXSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5URVJUSUFSWSk7CisJCSAgICAgICAgfQorCQkgICAgfQorCQkgICAgZG9DRShjZXBhcnRzLCB0b2tlbik7CisJCSAgICB0b2tlbiA9IHRva2VuLm1fbmV4dF87CisJICAgIH0KKwl9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIG5leHQgZ2VuZXJhdGVkIGNlCisgICAgICogQHBhcmFtIGcgY2UgZ2VuZXJhdG9yCisgICAgICogQHJldHVybiBuZXh0IGdlbmVyYXRlZCBjZSAKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBnZXROZXh0R2VuZXJhdGVkKENFR2VuZXJhdG9yIGcpIAorICAgIHsKKyAgICAgICAgZy5tX2N1cnJlbnRfID0gbmV4dFdlaWdodChnKTsKKyAgICAgICAgcmV0dXJuIGcubV9jdXJyZW50XzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gZyBDRUdlbmVyYXRvcgorICAgICAqIEBwYXJhbSB0b2tlbiBydWxlIHRva2VuCisgICAgICogQHBhcmFtIGZzdHJlbmd0aCAKKyAgICAgKiBAcmV0dXJuIGNlIGdlbmVyYXRvcgorICAgICAqIEBleGNlcHRpb24gRXhjZXB0aW9uIHRocm93biB3aGVuIGludGVybmFsIGVycm9yIG9jY3VycworICAgICAqLworICAgIHByaXZhdGUgaW50IGdldFNpbXBsZUNFR2VuZXJhdG9yKENFR2VuZXJhdG9yIGcsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdGlvblJ1bGVQYXJzZXIuVG9rZW4gdG9rZW4sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdHJlbmd0aCkgdGhyb3dzIEV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgaW50IGhpZ2gsIGxvdywgY291bnQgPSAxOworICAgICAgICBpbnQgbWF4Ynl0ZSA9IChzdHJlbmd0aCA9PSBDb2xsYXRvci5URVJUSUFSWSkgPyAweDNGIDogMHhGRjsKKworCSAgICBpZiAoc3RyZW5ndGggPT0gQ29sbGF0b3IuU0VDT05EQVJZKSB7CisJCSAgICBsb3cgPSBSdWxlQmFzZWRDb2xsYXRvci5DT01NT05fVE9QXzJfIDw8IDI0OworCQkgICAgaGlnaCA9IDB4RkZGRkZGRkY7CisJCSAgICBjb3VudCA9IDB4RkYgLSBSdWxlQmFzZWRDb2xsYXRvci5DT01NT05fVE9QXzJfOworCSAgICB9IAorICAgICAgICBlbHNlIHsKKwkgICAgICAgIGxvdyA9IFJ1bGVCYXNlZENvbGxhdG9yLkJZVEVfQ09NTU9OXyA8PCAyNDsgLy8weDA1MDAwMDAwOworCSAgICAgICAgaGlnaCA9IDB4NDAwMDAwMDA7CisJICAgICAgICBjb3VudCA9IDB4NDAgLSBSdWxlQmFzZWRDb2xsYXRvci5CWVRFX0NPTU1PTl87CisJICAgIH0KKwkKKwkgICAgaWYgKHRva2VuLm1fbmV4dF8gIT0gbnVsbCAmJiB0b2tlbi5tX25leHRfLm1fc3RyZW5ndGhfID09IHN0cmVuZ3RoKSB7CisJICAgICAgICBjb3VudCA9IHRva2VuLm1fbmV4dF8ubV90b0luc2VydF87CisJICAgIH0gCisJCisJICAgIGcubV9yYW5nZXNMZW5ndGhfID0gYWxsb2NhdGVXZWlnaHRzKGxvdywgaGlnaCwgY291bnQsIG1heGJ5dGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnLm1fcmFuZ2VzXyk7CisJICAgIGcubV9jdXJyZW50XyA9IFJ1bGVCYXNlZENvbGxhdG9yLkJZVEVfQ09NTU9OXyA8PCAyNDsKKwkKKwkgICAgaWYgKGcubV9yYW5nZXNMZW5ndGhfID09IDApIHsKKwkgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oIkludGVybmFsIHByb2dyYW0gZXJyb3IiKTsKKwkgICAgfQorCSAgICByZXR1cm4gZy5tX2N1cnJlbnRfOworCX0KKworICAgIC8qKgorICAgICAqIENvbWJpbmVzIDIgY2UgaW50byBvbmUgd2l0aCByZXNwZWN0IHRvIHRoZSBhcmd1bWVudCBzdHJlbmd0aAorICAgICAqIEBwYXJhbSBjZTEgZmlyc3QgY2UKKyAgICAgKiBAcGFyYW0gY2UyIHNlY29uZCBjZQorICAgICAqIEBwYXJhbSBzdHJlbmd0aCBzdHJlbmd0aCB0byB1c2UKKyAgICAgKiBAcmV0dXJuIGNvbWJpbmVkIGNlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IG1lcmdlQ0UoaW50IGNlMSwgaW50IGNlMiwgaW50IHN0cmVuZ3RoKSAKKyAgICB7CisgICAgICAgIGludCBtYXNrID0gUnVsZUJhc2VkQ29sbGF0b3IuQ0VfVEVSVElBUllfTUFTS187CisgICAgICAgIGlmIChzdHJlbmd0aCA9PSBDb2xsYXRvci5TRUNPTkRBUlkpIHsKKyAgICAgICAgICAgIG1hc2sgPSBSdWxlQmFzZWRDb2xsYXRvci5DRV9TRUNPTkRBUllfTUFTS187CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoc3RyZW5ndGggPT0gQ29sbGF0b3IuUFJJTUFSWSkgeworICAgICAgICAgICAgbWFzayA9IFJ1bGVCYXNlZENvbGxhdG9yLkNFX1BSSU1BUllfTUFTS187CisgICAgICAgIH0KKyAgICAgICAgY2UxICY9IG1hc2s7CisgICAgICAgIGNlMiAmPSBtYXNrOworICAgICAgICBzd2l0Y2ggKHN0cmVuZ3RoKSAKKyAgICAgICAgeworICAgICAgICAgICAgY2FzZSBDb2xsYXRvci5QUklNQVJZOgorICAgICAgICAgICAgICAgIHJldHVybiBjZTEgfCBjZTIgPj4+IDE2OworICAgICAgICAgICAgY2FzZSBDb2xsYXRvci5TRUNPTkRBUlk6CisgICAgICAgICAgICAgICAgcmV0dXJuIGNlMSA8PCAxNiB8IGNlMiA8PCA4OworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gY2UxIDw8IDI0IHwgY2UyIDw8IDE2OworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEBwYXJhbSBnIENFR2VuZXJhdG9yCisgICAgICogQHBhcmFtIGxvd3MgbG93IGdhcCBhcnJheQorICAgICAqIEBwYXJhbSBoaWdocyBoaWdoIGdhcCBhcnJheQorICAgICAqIEBwYXJhbSB0b2tlbiBydWxlIHRva2VuCisgICAgICogQHBhcmFtIGZzdHJlbmd0aCAKKyAgICAgKiBAZXhjZXB0aW9uIEV4Y2VwdGlvbiB0aHJvd24gd2hlbiBpbnRlcm5hbCBlcnJvciBvY2N1cnMKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBnZXRDRUdlbmVyYXRvcihDRUdlbmVyYXRvciBnLCBpbnQgbG93c1tdLCBpbnQgaGlnaHNbXSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0aW9uUnVsZVBhcnNlci5Ub2tlbiB0b2tlbiwgaW50IGZzdHJlbmd0aCkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbgorICAgIHsKKwkgICAgaW50IHN0cmVuZ3RoID0gdG9rZW4ubV9zdHJlbmd0aF87CisJICAgIGludCBsb3cgPSBsb3dzW2ZzdHJlbmd0aCAqIDMgKyBzdHJlbmd0aF07CisJICAgIGludCBoaWdoID0gaGlnaHNbZnN0cmVuZ3RoICogMyArIHN0cmVuZ3RoXTsKKwkgICAgaW50IG1heGJ5dGUgPSAoc3RyZW5ndGggPT0gQ29sbGF0b3IuVEVSVElBUlkpID8gMHgzRiA6IDB4RkY7CisJCisJICAgIGludCBjb3VudCA9IHRva2VuLm1fdG9JbnNlcnRfOworCQorCSAgICBpZiAoVXRpbGl0eS5jb21wYXJlVW5zaWduZWQobG93LCBoaWdoKSA+PSAwIAorICAgICAgICAgICAgJiYgc3RyZW5ndGggPiBDb2xsYXRvci5QUklNQVJZKSB7CisJICAgICAgICBpbnQgcyA9IHN0cmVuZ3RoOworCSAgICAgICAgd2hpbGUgKHRydWUpIHsKKwkJICAgICAgICBzIC0tOworCQkgICAgICAgIGlmIChsb3dzW2ZzdHJlbmd0aCAqIDMgKyBzXSAhPSBoaWdoc1tmc3RyZW5ndGggKiAzICsgc10pIHsKKwkJICAgICAgICAgICAgaWYgKHN0cmVuZ3RoID09IENvbGxhdG9yLlNFQ09OREFSWSkgeworCQkgICAgICAgICAgICAgICAgbG93ID0gUnVsZUJhc2VkQ29sbGF0b3IuQ09NTU9OX1RPUF8yXyA8PCAyNDsKKwkJICAgICAgICAgICAgICAgIGhpZ2ggPSAweEZGRkZGRkZGOworCQkgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKwkJICAgICAgICAgICAgICAgIC8vIGxvdyA9IDB4MDIwMDAwMDA7IAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBuZWVkcyB0byBiZSBjaGVja2VkIC0gd2hhdCBpZiBsb3cgaXMKKwkJICAgICAgICAgICAgICAgIC8vIG5vdCBnb29kLi4uCisJCSAgICAgICAgICAgICAgICBoaWdoID0gMHg0MDAwMDAwMDsKKwkJICAgICAgICAgICAgfQorCQkgICAgICAgICAgICBicmVhazsKKwkJICAgICAgICB9CisJCSAgICAgICAgaWYgKHMgPCAwKSB7CisJCSAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oIkludGVybmFsIHByb2dyYW0gZXJyb3IiKTsKKwkJICAgICAgICB9CisJICAgICAgICB9CisJICAgIH0gCisJICAgIGlmIChsb3cgPT0gMCkgeworCSAgICAgICAgbG93ID0gMHgwMTAwMDAwMDsKKwkgICAgfQorCSAgICBpZiAoc3RyZW5ndGggPT0gQ29sbGF0b3IuU0VDT05EQVJZKSB7IC8vIHNpbWlsYXIgYXMgc2ltcGxlIAorCSAgICAgICAgaWYgKFV0aWxpdHkuY29tcGFyZVVuc2lnbmVkKGxvdywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5DT01NT05fQk9UVE9NXzJfIDw8IDI0KSA+PSAwCisgICAgICAgICAgICAgICAgJiYgVXRpbGl0eS5jb21wYXJlVW5zaWduZWQobG93LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkNPTU1PTl9UT1BfMl8gPDwgMjQpIDwgMCkgeworCSAgICAgICAgICAgIGxvdyA9IFJ1bGVCYXNlZENvbGxhdG9yLkNPTU1PTl9UT1BfMl8gPDwgMjQ7CisgICAgICAgICAgICB9CisJICAgICAgICBpZiAoVXRpbGl0eS5jb21wYXJlVW5zaWduZWQoaGlnaCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuQ09NTU9OX0JPVFRPTV8yXyA8PCAyNCkgPiAwIAorICAgICAgICAgICAgICAgICYmIFV0aWxpdHkuY29tcGFyZVVuc2lnbmVkKGhpZ2gsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkNPTU1PTl9UT1BfMl8gPDwgMjQpIDwgMCkgeworCSAgICAgICAgICAgIGhpZ2ggPSBSdWxlQmFzZWRDb2xsYXRvci5DT01NT05fVE9QXzJfIDw8IDI0OworCSAgICAgICAgfSAKKwkgICAgICAgIGlmIChVdGlsaXR5LmNvbXBhcmVVbnNpZ25lZChsb3csIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkNPTU1PTl9CT1RUT01fMl8gPDwgMjQpIDwgMCkgeworCSAgICAgICAgICAgIGcubV9yYW5nZXNMZW5ndGhfID0gYWxsb2NhdGVXZWlnaHRzKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5DT01NT05fVE9QXzJfIDw8IDI0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlnaCwgY291bnQsIG1heGJ5dGUsIGcubV9yYW5nZXNfKTsKKwkgICAgICAgICAgICBnLm1fY3VycmVudF8gPSBSdWxlQmFzZWRDb2xsYXRvci5DT01NT05fQk9UVE9NXzJfOworCSAgICAgICAgICAgIHJldHVybiBnLm1fY3VycmVudF87CisJICAgICAgICB9CisJICAgIH0gCisJCisJICAgIGcubV9yYW5nZXNMZW5ndGhfID0gYWxsb2NhdGVXZWlnaHRzKGxvdywgaGlnaCwgY291bnQsIG1heGJ5dGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnLm1fcmFuZ2VzXyk7CisJICAgIGlmIChnLm1fcmFuZ2VzTGVuZ3RoXyA9PSAwKSB7CisJICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCJJbnRlcm5hbCBwcm9ncmFtIGVycm9yIik7CisJICAgIH0KKwkgICAgZy5tX2N1cnJlbnRfID0gbmV4dFdlaWdodChnKTsKKwkgICAgcmV0dXJuIGcubV9jdXJyZW50XzsKKwl9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gY2VwYXJ0cyBsaXN0IG9mIGNvbGxhdGlvbiBlbGVtZW50cyBwYXJ0cworICAgICAqIEBwYXJhbSB0b2tlbiBydWxlIHRva2VuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGRvQ0UoaW50IGNlcGFydHNbXSwgQ29sbGF0aW9uUnVsZVBhcnNlci5Ub2tlbiB0b2tlbikgCisgICAgeworICAgICAgICAvLyB0aGlzIG9uZSBtYWtlcyB0aGUgdGFibGUgYW5kIHN0dWZmCisJICAgIGludCBub29mYnl0ZXNbXSA9IG5ldyBpbnRbM107CisJICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMzsgaSArKykgeworCSAgICAgICAgbm9vZmJ5dGVzW2ldID0gY291bnRCeXRlcyhjZXBhcnRzW2ldKTsKKwkgICAgfQorCQorCSAgICAvLyBIZXJlIHdlIGhhdmUgdG8gcGFjayBDRXMgZnJvbSBwYXJ0cworCSAgICBpbnQgY2VpID0gMDsKKwkgICAgaW50IHZhbHVlID0gMDsKKwkKKwkgICAgd2hpbGUgKChjZWkgPDwgMSkgPCBub29mYnl0ZXNbMF0gfHwgY2VpIDwgbm9vZmJ5dGVzWzFdIAorICAgICAgICAgICAgICAgfHwgY2VpIDxub29mYnl0ZXNbMl0pIHsKKwkgICAgICAgIGlmIChjZWkgPiAwKSB7CisJICAgICAgICAgICAgdmFsdWUgPSBSdWxlQmFzZWRDb2xsYXRvci5DRV9DT05USU5VQVRJT05fTUFSS0VSXzsKKwkJICAgIH0gZWxzZSB7CisJCSAgICAgICAgdmFsdWUgPSAwOworCQkgICAgfQorCQkKKwkJICAgIGlmICgoY2VpIDw8IDEpIDwgbm9vZmJ5dGVzWzBdKSB7CisJCSAgICAgICAgdmFsdWUgfD0gKChjZXBhcnRzWzBdID4+ICgzMiAtICgoY2VpICsgMSkgPDwgNCkpKSAmIDB4RkZGRikgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAxNjsKKwkJICAgIH0KKwkJICAgIGlmIChjZWkgPCBub29mYnl0ZXNbMV0pIHsKKwkJICAgICAgICB2YWx1ZSB8PSAoKGNlcGFydHNbMV0gPj4gKDMyIC0gKChjZWkgKyAxKSA8PCAzKSkpICYgMHhGRikgPDwgODsKKwkJICAgIH0KKwkJICAgIGlmIChjZWkgPCBub29mYnl0ZXNbMl0pIHsKKwkJICAgICAgICB2YWx1ZSB8PSAoKGNlcGFydHNbMl0gPj4gKDMyIC0gKChjZWkrMSkgPDwgMykpKSAmIDB4M0YpOworCQkgICAgfQorCQkgICAgdG9rZW4ubV9DRV9bY2VpXSA9IHZhbHVlOworCQkgICAgY2VpICsrOworCQkgIH0KKwkJICBpZiAoY2VpID09IDApIHsgLy8gdG90YWxseSBpZ25vcmFibGUKKwkJICAgICAgdG9rZW4ubV9DRUxlbmd0aF8gPSAxOworCQkgICAgICB0b2tlbi5tX0NFX1swXSA9IDA7CisJCSAgfSAKKyAgICAgICAgICBlbHNlIHsgLy8gdGhlcmUgaXMgYXQgbGVhc3Qgc29tZXRoaW5nCisJCSAgICAgIHRva2VuLm1fQ0VMZW5ndGhfID0gY2VpOworCQl9CisJfQorCisgICAgLyoqCisgICAgICogQ291bnQgdGhlIG51bWJlciBvZiBub24temVybyBieXRlcyB1c2VkIGluIHRoZSBjZQorICAgICAqIEBwYXJhbSBjZSAKKyAgICAgKiBAcmV0dXJuIG51bWJlciBvZiBub24temVybyBieXRlcyB1c2VkIGluIGNlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGNvdW50Qnl0ZXMoaW50IGNlKSAgIAorICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisJICAgIGludCBtYXNrID0gMHhGRkZGRkZGRjsgICAKKwkgICAgaW50IHJlc3VsdCA9IDA7ICAgICAgICAgICAgICAKKwkgICAgd2hpbGUgKG1hc2sgIT0gMCkgeyAgICAgICAgICAgIAorCSAgICAgICAgaWYgKChjZSAmIG1hc2spICE9IDApIHsgCisJICAgICAgICAgICAgcmVzdWx0ICsrOyAgICAgICAgICAgIAorCSAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgIAorCSAgICAgICAgbWFzayA+Pj49IDg7ICAgICAgICAgICAgICAgICAKKwkgICAgfSAgIAorICAgICAgICByZXR1cm4gcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgCisJfQorCQorCS8qKgorCSAqIFdlIGFyZSByZWFkeSB0byBjcmVhdGUgY29sbGF0aW9uIGVsZW1lbnRzCisJICogQHBhcmFtIHQgYnVpbGQgdGFibGUgdG8gaW5zZXJ0CisJICogQHBhcmFtIGxoIHJ1bGUgdG9rZW4gbGlzdCBoZWFkZXIKKwkgKiBAZXhjZXB0aW9uIEV4Y2VwdGlvbiB0aHJvd24gd2hlbiBpbnRlcm5hbCBwcm9ncmFtIGVycm9yIG9jY3VycworCSAqLworCXByaXZhdGUgdm9pZCBjcmVhdGVFbGVtZW50cyhCdWlsZFRhYmxlIHQsIAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRpb25SdWxlUGFyc2VyLlRva2VuTGlzdEhlYWRlciBsaCkgCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb24KKyAgICB7CisJICAgIENvbGxhdGlvblJ1bGVQYXJzZXIuVG9rZW4gdG9rID0gbGgubV9maXJzdF87CisJICAgIEVsZW1lbnRzIGVsID0gbmV3IEVsZW1lbnRzKCk7CisJICAgIHdoaWxlICh0b2sgIT0gbnVsbCkgeworCSAgICAJLy8gZmlyc3QsIGNoZWNrIGlmIHRoZXJlIGFyZSBhbnkgZXhwYW5zaW9ucworCSAgICAJLy8gaWYgdGhlcmUgYXJlIGV4cGFuc2lvbnMsIHdlIG5lZWQgdG8gZG8gYSBsaXR0bGUgYml0IG1vcmUgCisJICAgIAkvLyBwcm9jZXNzaW5nIHNpbmNlIHBhcnRzIG9mIGV4cGFuc2lvbiBjYW4gYmUgdGFpbG9yZWQsIHdoaWxlIAorCSAgICAJLy8gb3RoZXJzIGFyZSBub3QKKwkgICAgCWlmICh0b2subV9leHBhbnNpb25fICE9IDApIHsKKwkgICAgICAgICAgICBpbnQgbGVuID0gdG9rLm1fZXhwYW5zaW9uXyA+Pj4gMjQ7CisJICAgICAgICAgICAgaW50IGN1cnJlbnRTZXF1ZW5jZUxlbiA9IGxlbjsKKwkgICAgICAgICAgICBpbnQgZXhwT2Zmc2V0ID0gdG9rLm1fZXhwYW5zaW9uXyAmIDB4MDBGRkZGRkY7CisJICAgICAgICAgICAgQ29sbGF0aW9uUnVsZVBhcnNlci5Ub2tlbiBleHAgCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IG5ldyBDb2xsYXRpb25SdWxlUGFyc2VyLlRva2VuKCk7CisJICAgICAgICAgICAgZXhwLm1fc291cmNlXyA9IGN1cnJlbnRTZXF1ZW5jZUxlbiB8IGV4cE9mZnNldDsKKwkgICAgICAgICAgICBleHAubV9ydWxlc18gPSBtX3BhcnNlcl8ubV9zb3VyY2VfOworCQorCSAgICAgICAgICAgIHdoaWxlIChsZW4gPiAwKSB7CisJCQkgICAgICAgIGN1cnJlbnRTZXF1ZW5jZUxlbiA9IGxlbjsKKwkJCSAgICAgICAgd2hpbGUgKGN1cnJlbnRTZXF1ZW5jZUxlbiA+IDApIHsKKwkJCSAgICAgICAgICAgIGV4cC5tX3NvdXJjZV8gPSAoY3VycmVudFNlcXVlbmNlTGVuIDw8IDI0KSB8IGV4cE9mZnNldDsKKwkJCSAgICAgICAgICAgIENvbGxhdGlvblJ1bGVQYXJzZXIuVG9rZW4gZXhwdCA9IAorCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGF0aW9uUnVsZVBhcnNlci5Ub2tlbikKKwkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXJzZXJfLm1faGFzaFRhYmxlXy5nZXQoZXhwKTsKKwkJCSAgICAgICAgICAgIGlmIChleHB0ICE9IG51bGwgCisJCQkgICAgICAgICAgICAgICAgJiYgZXhwdC5tX3N0cmVuZ3RoXyAKKwkJCSAgICAgICAgICAgICAgICAgICAhPSBDb2xsYXRpb25SdWxlUGFyc2VyLlRPS0VOX1JFU0VUXykgeyAKKwkJCSAgICAgICAgICAgICAgICAvLyBleHBhbnNpb24gaXMgdGFpbG9yZWQKKwkJCSAgICAgICAgICAgICAgICBpbnQgbm9PZkNFc1RvQ29weSA9IGV4cHQubV9DRUxlbmd0aF87CisJCQkgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBub09mQ0VzVG9Db3B5OyBqICsrKSB7CisJCQkgICAgICAgICAgICAgICAgICAgIHRvay5tX2V4cENFX1t0b2subV9leHBDRUxlbmd0aF8gKyBqXSAKKwkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gZXhwdC5tX0NFX1tqXTsKKwkJCSAgICAgICAgICAgICAgICAgfQorCQkJICAgICAgICAgICAgICAgICB0b2subV9leHBDRUxlbmd0aF8gKz0gbm9PZkNFc1RvQ29weTsKKwkJCSAgICAgICAgICAgICAgICAgLy8gbmV2ZXIgdHJ5IHRvIGFkZCBjb2RlcG9pbnRzIGFuZCBDRXMuCisJCQkgICAgICAgICAgICAgICAgIC8vIEZvciBzb21lIG9kZCByZWFzb24sIGl0IHdvbid0IHdvcmsuCisJCQkgICAgICAgICAgICAgICAgIGV4cE9mZnNldCArPSBjdXJyZW50U2VxdWVuY2VMZW47IC8vbm9PZkNFc1RvQ29weTsKKwkJCSAgICAgICAgICAgICAgICAgbGVuIC09IGN1cnJlbnRTZXF1ZW5jZUxlbjsgLy9ub09mQ0VzVG9Db3B5OworCQkJICAgICAgICAgICAgICAgICBicmVhazsKKwkJCSAgICAgICAgICAgICB9IAorCQkJICAgICAgICAgICAgIGVsc2UgeworCQkJICAgICAgICAgICAgICAgICBjdXJyZW50U2VxdWVuY2VMZW4gLS07CisJCQkgICAgICAgICAgICAgfQorCQkJICAgICAgICB9CisJICAgICAgICAgICAgICAgIGlmIChjdXJyZW50U2VxdWVuY2VMZW4gPT0gMCkgeyAKKwkgICAgICAgICAgICAgICAgICAgIC8vIGNvdWxkbid0IGZpbmQgYW55IHRhaWxvcmVkIHN1YnNlcXVlbmNlLCB3aWxsIGhhdmUgdG8gCisJICAgICAgICAgICAgICAgICAgICAvLyBnZXQgb25lIGZyb20gVUNBLiBmaXJzdCwgZ2V0IHRoZSBVQ2hhcnMgZnJvbSB0aGUgCisJICAgICAgICAgICAgICAgICAgICAvLyBydWxlcyB0aGVuIHBpY2sgQ0VzIG91dCB1bnRpbCB0aGVyZSBpcyBubyBtb3JlIGFuZCAKKwkgICAgICAgICAgICAgICAgICAgIC8vIHN0dWZmIHRoZW0gaW50byBleHBhbnNpb24KKwkgICAgICAgICAgICAgICAgICAgIG1fdXRpbENvbEVJdGVyXy5zZXRUZXh0KG1fcGFyc2VyXy5tX3NvdXJjZV8uc3Vic3RyaW5nKAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cE9mZnNldCwgZXhwT2Zmc2V0ICsgMSkpOworCSAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKwkgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb3JkZXIgPSBtX3V0aWxDb2xFSXRlcl8ubmV4dCgpOworCSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcmRlciA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisJICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCSAgICAgICAgICAgICAgICAgICAgICAgIH0KKwkgICAgICAgICAgICAgICAgICAgICAgICB0b2subV9leHBDRV9bdG9rLm1fZXhwQ0VMZW5ndGhfICsrXSA9IG9yZGVyOworCSAgICAgICAgICAgICAgICAgICAgfQorCSAgICAgICAgICAgICAgICAgICAgZXhwT2Zmc2V0ICsrOworCSAgICAgICAgICAgICAgICAgICAgbGVuIC0tOworCSAgICAgICAgICAgICAgICB9CisJICAgICAgICAgICAgfQorCSAgICAgICAgfSAKKwkgICAgICAgIGVsc2UgeworCSAgICAgICAgICAgIHRvay5tX2V4cENFTGVuZ3RoXyA9IDA7CisJICAgICAgICB9CisJCisJICAgICAgICAvLyBzZXQgdGhlIHVjYWVsZW1lbnQgd2l0aCBvYnRhaW5lZCB2YWx1ZXMKKwkgICAgICAgIGVsLm1fQ0VzXyA9IG5ldyBpbnRbdG9rLm1fQ0VMZW5ndGhfICsgdG9rLm1fZXhwQ0VMZW5ndGhfXTsKKwkgICAgICAgIC8vIGNvcHkgQ0VzCisJICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHRvay5tX0NFXywgMCwgZWwubV9DRXNfLCAwLCB0b2subV9DRUxlbmd0aF8pOworCSAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0b2subV9leHBDRV8sIDAsIGVsLm1fQ0VzXywgdG9rLm1fQ0VMZW5ndGhfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rLm1fZXhwQ0VMZW5ndGhfKTsKKwkKKwkgICAgICAgIC8vIGNvcHkgVUNoYXJzIAorCSAgICAgICAgLy8gV2Uga2VwdCBwcmVmaXggYW5kIHNvdXJjZSBraW5kIG9mIHRvZ2V0aGVyLCBhcyBpdCBpcyBhIGtpbmQgb2YgYSAKKwkgICAgICAgIC8vIGNvbnRyYWN0aW9uLiAKKwkgICAgICAgIC8vIEhvd2V2ZXIsIG5vdyB3ZSBoYXZlIHRvIHNsaWNlIHRoZSBwcmVmaXggb2ZmIHRoZSBtYWluIHRoaW5nIC0gCisJICAgICAgICBlbC5tX3ByZWZpeF8gPSAwOy8vIGVsLm1fcHJlZml4Q2hhcnNfOworCSAgICAgICAgZWwubV9jUG9pbnRzT2Zmc2V0XyA9IDA7IC8vZWwubV91Y2hhcnNfOworCSAgICAgICAgaWYgKHRvay5tX3ByZWZpeF8gIT0gMCkgeyAKKwkgICAgICAgIAkvLyB3ZSB3aWxsIGp1c3QgY29weSB0aGUgcHJlZml4IGhlcmUsIGFuZCBhZGp1c3QgYWNjb3JkaW5nbHkgaW4gCisJICAgICAgICAJLy8gdGhlIGFkZFByZWZpeCBmdW5jdGlvbiBpbiB1Y29sX2VsbS4gVGhlIHJlYXNvbiBpcyB0aGF0IHdlIAorCSAgICAgICAgCS8vIG5lZWQgdG8gYWRkIGJvdGggY29tcG9zZWQgQU5EIGRlY29tcG9zZWQgZWxlbWVudHMgdG8gdGhlIAorCSAgICAgICAgCS8vIHVuc2FmZSB0YWJsZS4KKwkJICAgICAgICBpbnQgc2l6ZSA9IHRvay5tX3ByZWZpeF8gPj4gMjQ7CisJCSAgICAgICAgaW50IG9mZnNldCA9IHRvay5tX3ByZWZpeF8gJiAweDAwRkZGRkZGOworCQkgICAgICAgIGVsLm1fcHJlZml4Q2hhcnNfID0gbV9wYXJzZXJfLm1fc291cmNlXy5zdWJzdHJpbmcob2Zmc2V0LCAKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArIHNpemUpOworCQkgICAgICAgIHNpemUgPSAodG9rLm1fc291cmNlXyA+PiAyNCkgLSAodG9rLm1fcHJlZml4XyA+PiAyNCk7IAorCQkgICAgICAgIG9mZnNldCA9ICh0b2subV9zb3VyY2VfICYgMHgwMEZGRkZGRikgKyAodG9rLm1fcHJlZml4XyA+PiAyNCk7CisJCSAgICAgICAgZWwubV91Y2hhcnNfID0gbV9wYXJzZXJfLm1fc291cmNlXy5zdWJzdHJpbmcob2Zmc2V0LCAKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKyBzaXplKTsKKwkJICAgIH0gCisJCSAgICBlbHNlIHsKKwkgICAgICAgICAgICBlbC5tX3ByZWZpeENoYXJzXyA9IG51bGw7CisJICAgICAgICAgICAgaW50IG9mZnNldCA9IHRvay5tX3NvdXJjZV8gJiAweDAwRkZGRkZGOworCSAgICAgICAgICAgIGludCBzaXplID0gdG9rLm1fc291cmNlXyA+Pj4gMjQ7CisJICAgICAgICAgICAgZWwubV91Y2hhcnNfID0gbV9wYXJzZXJfLm1fc291cmNlXy5zdWJzdHJpbmcob2Zmc2V0LCAKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKyBzaXplKTsKKwkgICAgICAgIH0KKwkgICAgICAgIGVsLm1fY1BvaW50c18gPSBlbC5tX3VjaGFyc187CisJICAgICAgICBlbC5tX2lzVGhhaV8gPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuaXNUaGFpUHJlVm93ZWwoCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbC5tX2NQb2ludHNfLmNoYXJBdCgwKSk7CisJICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGVsLm1fY1BvaW50c18ubGVuZ3RoKCkgLSBlbC5tX2NQb2ludHNPZmZzZXRfOyAKKwkgICAgICAgICAgICAgaSArKykgeworCQkgICAgICAgICBpZiAoaXNKYW1vKGVsLm1fY1BvaW50c18uY2hhckF0KGkpKSkgeworCQkgICAgICAgICAgICAgdC5tX2NvbGxhdG9yXy5tX2lzSmFtb1NwZWNpYWxfID0gdHJ1ZTsKKwkJICAgICAgICAgICAgIGJyZWFrOworCQkgICAgICAgIH0KKwkJICAgIH0KKwkKKwkgICAgICAgIC8vIENhc2UgYml0cyBoYW5kbGluZyAKKwkgICAgICAgIGVsLm1fQ0VzX1swXSAmPSAweEZGRkZGRjNGOyAvLyBDbGVhbiB0aGUgY2FzZSBiaXRzIGZpZWxkCisJICAgICAgICBpZiAoZWwubV9jUG9pbnRzXy5sZW5ndGgoKSAtIGVsLm1fY1BvaW50c09mZnNldF8gPiAxKSB7CisJICAgICAgICAgICAgLy8gRG8gaXQgbWFudWFsbHkKKwkgICAgICAgICAgICBlbC5tX0NFc19bMF0gfD0gZ2V0Q2FzZUJpdHMoZWwubV9jUG9pbnRzXyk7CisJICAgICAgICB9IAorCSAgICAgICAgZWxzZSB7CisJICAgICAgICAgICAgLy8gQ29weSBpdCBmcm9tIHRoZSBVQ0EKKwkgICAgICAgICAgICBpbnQgY2FzZUNFID0gZ2V0Rmlyc3RDRShlbC5tX2NQb2ludHNfLmNoYXJBdCgwKSk7CisJICAgICAgICAgICAgZWwubV9DRXNfWzBdIHw9IChjYXNlQ0UgJiAweEMwKTsKKwkgICAgICAgIH0KKwkKKwkgICAgICAgIC8vIGFuZCB0aGVuLCBhZGQgaXQKKwkgICAgICAgIGFkZEFuRWxlbWVudCh0LCBlbCk7CisJICAgICAgICB0b2sgPSB0b2subV9uZXh0XzsKKwkgICAgfSAgIAorCX0KKwkKKwkvKioKKwkgKiBUZXN0aW5nIGlmIHRoZSBzdHJpbmcgYXJndW1lbnQgaGFzIGNhc2UKKwkgKiBAcGFyYW0gc3JjIHN0cmluZworCSAqIEByZXR1cm4gdGhlIGNhc2UgZm9yIHRoaXMgY2hhciBhcnJheQorCSAqIEBleGNlcHRpb24gRXhjZXB0aW9uIHRocm93biB3aGVuIGludGVybmFsIHByb2dyYW0gZXJyb3Igb2NjdXJzCisJICovCisJcHJpdmF0ZSBmaW5hbCBpbnQgZ2V0Q2FzZUJpdHMoU3RyaW5nIHNyYykgdGhyb3dzIEV4Y2VwdGlvbgorCXsKKwkJaW50IHVDb3VudCA9IDA7IAorCQlpbnQgbENvdW50ID0gMDsKKwkJc3JjID0gTm9ybWFsaXplci5kZWNvbXBvc2Uoc3JjLCB0cnVlKTsKKwkJbV91dGlsQ29sRUl0ZXJfLnNldFRleHQoc3JjKTsKKwkJZm9yIChpbnQgaSA9IDA7IGkgPCBzcmMubGVuZ3RoKCk7IGkrKykgeworCQkJbV91dGlsQ29sRUl0ZXJfLnNldFRleHQoc3JjLnN1YnN0cmluZyhpLCBpICsgMSkpOworCQkgICAgaW50IG9yZGVyID0gbV91dGlsQ29sRUl0ZXJfLm5leHQoKTsKKwkJICAgIGlmIChSdWxlQmFzZWRDb2xsYXRvci5pc0NvbnRpbnVhdGlvbihvcmRlcikpIHsKKwkJICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCJJbnRlcm5hbCBwcm9ncmFtIGVycm9yIik7CisJCSAgICB9CisJCSAgICBpZiAoKG9yZGVyICYgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfQ0FTRV9CSVRfTUFTS18pCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gVVBQRVJfQ0FTRV8pIHsKKwkJICAgICAgICB1Q291bnQgKys7CisJCSAgICB9IAorCQkgICAgZWxzZSB7CisJCSAgICAJY2hhciBjaCA9IHNyYy5jaGFyQXQoaSk7CisJCSAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNMb3dlckNhc2UoY2gpKSB7CisJCSAgICAgICAgICAgIGxDb3VudCArKzsKKwkJICAgICAgICB9IAorCQkgICAgICAgIGVsc2UgeworCQkgICAgICAgICAgICBpZiAodG9TbWFsbEthbmEoY2gpID09IGNoICYmIHRvTGFyZ2VLYW5hKGNoKSAhPSBjaCkgeworCQkgICAgICAgICAgICAgICAgbENvdW50ICsrOworCQkgICAgICAgICAgICB9CisJCSAgICAgICAgfQorCQkgICAgfQorCQl9CisJCQorCQlpZiAodUNvdW50ICE9IDAgJiYgbENvdW50ICE9IDApIHsKKwkJICAgIHJldHVybiBNSVhFRF9DQVNFXzsKKwkJfSAKKwkJZWxzZSBpZiAodUNvdW50ICE9IDApIHsKKwkJICAgIHJldHVybiBVUFBFUl9DQVNFXzsKKwkJfSAKKwkJZWxzZSB7CisJCSAgICByZXR1cm4gTE9XRVJfQ0FTRV87CisJCX0KKwl9CisJCisJLyoqCisJICogQ29udmVydHMgYSBjaGFyIHRvIHRoZSB1cHBlcmNhc2UgS2FuYQorCSAqIEBwYXJhbSBjaCBjaGFyYWN0ZXIgdG8gY29udmVydAorCSAqIEByZXR1cm4gdGhlIGNvbnZlcnRlZCBLYW5hIGNoYXJhY3RlcgorCSAqLworCXByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgdG9MYXJnZUthbmEoY2hhciBjaCkgCisJeworCSAgICBpZiAoMHgzMDQyIDwgY2ggJiYgY2ggPCAweDMwZWYpIHsgLy8gS2FuYSByYW5nZSAKKwkgICAgICAgIHN3aXRjaCAoY2ggLSAweDMwMDApIHsKKwkgICAgICAgICAgICBjYXNlIDB4NDE6IAorCSAgICAgICAgICAgIGNhc2UgMHg0MzogCisJICAgICAgICAgICAgY2FzZSAweDQ1OiAKKwkgICAgICAgICAgICBjYXNlIDB4NDc6IAorCSAgICAgICAgICAgIGNhc2UgMHg0OTogCisJICAgICAgICAgICAgY2FzZSAweDYzOiAKKwkgICAgICAgICAgICBjYXNlIDB4ODM6IAorCSAgICAgICAgICAgIGNhc2UgMHg4NTogCisJICAgICAgICAgICAgY2FzZSAweDhFOgorCSAgICAgICAgICAgIGNhc2UgMHhBMTogCisJICAgICAgICAgICAgY2FzZSAweEEzOiAKKwkgICAgICAgICAgICBjYXNlIDB4QTU6IAorCSAgICAgICAgICAgIGNhc2UgMHhBNzogCisJICAgICAgICAgICAgY2FzZSAweEE5OiAKKwkgICAgICAgICAgICBjYXNlIDB4QzM6IAorCSAgICAgICAgICAgIGNhc2UgMHhFMzogCisJICAgICAgICAgICAgY2FzZSAweEU1OiAKKwkgICAgICAgICAgICBjYXNlIDB4RUU6CisJICAgICAgICAgICAgICAgIGNoICsrOworCSAgICAgICAgICAgIGJyZWFrOworCSAgICAgICAgY2FzZSAweEY1OgorCSAgICAgICAgICAgIGNoID0gMHgzMEFCOworCSAgICAgICAgICAgIGJyZWFrOworCSAgICAgICAgY2FzZSAweEY2OgorCSAgICAgICAgICAgIGNoID0gMHgzMEIxOworCSAgICAgICAgICAgIGJyZWFrOworCSAgICAgICAgfQorCSAgICB9CisJICAgIHJldHVybiBjaDsKKwl9CisJCisJLyoqCisJICogQ29udmVydHMgYSBjaGFyIHRvIHRoZSBsb3dlcmNhc2UgS2FuYQorCSAqIEBwYXJhbSBjaCBjaGFyYWN0ZXIgdG8gY29udmVydAorCSAqIEByZXR1cm4gdGhlIGNvbnZlcnRlZCBLYW5hIGNoYXJhY3RlcgorCSAqLworCXByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgdG9TbWFsbEthbmEoY2hhciBjaCkgCisJeworCSAgICBpZiAoMHgzMDQyIDwgY2ggJiYgY2ggPCAweDMwZWYpIHsgLy8gS2FuYSByYW5nZQorCSAgICAgICAgc3dpdGNoIChjaCAtIDB4MzAwMCkgeworCSAgICAgICAgICAgIGNhc2UgMHg0MjogCisJICAgICAgICAgICAgY2FzZSAweDQ0OiAKKwkgICAgICAgICAgICBjYXNlIDB4NDY6IAorCSAgICAgICAgICAgIGNhc2UgMHg0ODogCisJICAgICAgICAgICAgY2FzZSAweDRBOiAKKwkgICAgICAgICAgICBjYXNlIDB4NjQ6IAorCSAgICAgICAgICAgIGNhc2UgMHg4NDogCisJICAgICAgICAgICAgY2FzZSAweDg2OiAKKwkgICAgICAgICAgICBjYXNlIDB4OEY6CisJICAgICAgICAgICAgY2FzZSAweEEyOiAKKwkgICAgICAgICAgICBjYXNlIDB4QTQ6IAorCSAgICAgICAgICAgIGNhc2UgMHhBNjogCisJICAgICAgICAgICAgY2FzZSAweEE4OiAKKwkgICAgICAgICAgICBjYXNlIDB4QUE6IAorCSAgICAgICAgICAgIGNhc2UgMHhDNDogCisJICAgICAgICAgICAgY2FzZSAweEU0OiAKKwkgICAgICAgICAgICBjYXNlIDB4RTY6IAorCSAgICAgICAgICAgIGNhc2UgMHhFRjoKKwkgICAgICAgICAgICAgICAgY2ggLS07CisJICAgICAgICAgICAgICAgIGJyZWFrOworCSAgICAgICAgICAgIGNhc2UgMHhBQjoKKwkgICAgICAgICAgICAgICAgY2ggPSAweDMwRjU7CisJICAgICAgICAgICAgICAgIGJyZWFrOworCSAgICAgICAgICAgIGNhc2UgMHhCMToKKwkgICAgICAgICAgICAgICAgY2ggPSAweDMwRjY7CisJICAgICAgICAgICAgICAgIGJyZWFrOworCSAgICAgICAgfQorCSAgICB9CisJICAgIHJldHVybiBjaDsKKwl9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIHNob3VsZCBiZSBjb25uZWN0ZWQgdG8gc3BlY2lhbCBKYW1vIGhhbmRsaW5nLgorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgaW50IGdldEZpcnN0Q0UoY2hhciBjaCkgCisgICAgeworICAgIAltX3V0aWxDb2xFSXRlcl8uc2V0VGV4dChVQ2hhcmFjdGVyLnRvU3RyaW5nKGNoKSk7CisJICAgIHJldHVybiBtX3V0aWxDb2xFSXRlcl8ubmV4dCgpOworCX0KKwkKKwkvKiogCisJICogVGhpcyBhZGRzIGEgcmVhZCBlbGVtZW50LCB3aGlsZSB0ZXN0aW5nIGZvciBleGlzdGVuY2UgCisJICogQHBhcmFtIHQgYnVpbGQgdGFibGUKKwkgKiBAcGFyYW0gZWxlbWVudCAKKwkgKiBAcmV0dXJuIGNlCisJICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGFkZEFuRWxlbWVudChCdWlsZFRhYmxlIHQsIEVsZW1lbnRzIGVsZW1lbnQpIAorICAgIHsKKyAgCQlWZWN0b3IgZXhwYW5zaW9ucyA9IHQubV9leHBhbnNpb25zXzsKKyAgICAgICAgaWYgKGVsZW1lbnQubV9DRXNfLmxlbmd0aCA9PSAxKSB7CisJICAgIAlpZiAoZWxlbWVudC5tX2lzVGhhaV8gPT0gZmFsc2UpIHsKKwkgICAgICAgICAgICBlbGVtZW50Lm1fbWFwQ0VfID0gZWxlbWVudC5tX0NFc19bMF07CisJICAgICAgICB9IAorCSAgICAgICAgZWxzZSB7IC8vIGFkZCB0aGFpIC0gdG90YWxseSBiYWQgaGVyZQorICAgICAgICAgICAgICAgIC8vIG9taXR0ZWQgdGhlIGV4cGFuc2lvbiBvZmZzZXQgaGVyZSBmb3IgdGhlIGJ1aWxkZXIKKyAgICAgICAgICAgICAgICAvLyAoSEVBREVSX1NJWkVfID4+IDIpCisJICAgICAgICAgICAgaW50IGV4cGFuc2lvbiA9IFJ1bGVCYXNlZENvbGxhdG9yLkNFX1NQRUNJQUxfRkxBR18gCisJICAgICAgICAgICAgICAgICAgICAgICAgfCAoQ0VfVEhBSV9UQUdfIDw8IFJ1bGVCYXNlZENvbGxhdG9yLkNFX1RBR19TSElGVF8pIAorCSAgICAgICAgICAgICAgICAgICAgICAgIHwgKGFkZEV4cGFuc2lvbihleHBhbnNpb25zLCBlbGVtZW50Lm1fQ0VzX1swXSkKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCA0KSAKKwkgICAgICAgICAgICAgICAgICAgICAgICB8IDB4MTsKKwkgICAgICAgICAgICBlbGVtZW50Lm1fbWFwQ0VfID0gZXhwYW5zaW9uOworCSAgICAgICAgfQorCSAgICB9IAorCSAgICBlbHNlIHsgICAgIAorCSAgICAgICAgLy8gdW5mb3J0dW5hdGVseSwgaXQgbG9va3MgbGlrZSB3ZSBoYXZlIHRvIGxvb2sgZm9yIGEgbG9uZyBwcmltYXJ5IAorCSAgICAgICAgLy8gaGVyZSBzaW5jZSBpbiBjYW5vbmljYWwgY2xvc3VyZSB3ZSBhcmUgZ29pbmcgdG8gaGl0IHNvbWUgbG9uZyAKKwkgICAgICAgIC8vIHByaW1hcmllcyBmcm9tIHRoZSBmaXJzdCBwaGFzZSwgYW5kIHRoZXkgd2lsbCBjb21lIGJhY2sgYXMgCisJICAgICAgICAvLyBjb250aW51YXRpb25zL2V4cGFuc2lvbnMgZGVzdHJveWluZyB0aGUgZWZmZWN0IG9mIHRoZSBwcmV2aW91cyAKKwkgICAgICAgIC8vIG9waXRpbWl6YXRpb24uIEEgbG9uZyBwcmltYXJ5IGlzIGEgdGhyZWUgYnl0ZSBwcmltYXJ5IHdpdGggCisJICAgICAgICAvLyBzdGFydGluZyBzZWNvbmRhcmllcyBhbmQgdGVydGlhcmllcy4gSXQgY2FuIGFwcGVhciBpbiBsb25nIHJ1bnMgCisJICAgICAgICAvLyBvZiBvbmx5IHByaW1hcnkgZGlmZmVyZW5jZXMgKGxpa2UgZWFzdCBBc2lhbiB0YWlsb3JpbmdzKSBhbHNvLCAKKwkgICAgICAgIC8vIGl0IHNob3VsZCBub3QgYmUgYW4gZXhwYW5zaW9uLCBhcyBleHBhbnNpb25zIHdvdWxkIGJyZWFrIHdpdGggCisJICAgICAgICAvLyB0aGlzCisJICAgICAgICBpZiAoZWxlbWVudC5tX0NFc18ubGVuZ3RoID09IDIgLy8gYSB0d28gQ0UgZXhwYW5zaW9uIAorCSAgICAgICAgICAgICYmIFJ1bGVCYXNlZENvbGxhdG9yLmlzQ29udGludWF0aW9uKGVsZW1lbnQubV9DRXNfWzFdKSAKKwkgICAgICAgICAgICAmJiAoZWxlbWVudC5tX0NFc19bMV0gCisJICAgICAgICAgICAgICYgKH4oMHhGRiA8PCAyNCB8IFJ1bGVCYXNlZENvbGxhdG9yLkNFX0NPTlRJTlVBVElPTl9NQVJLRVJfKSkpIAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSAwIC8vIHRoYXQgaGFzIG9ubHkgcHJpbWFyaWVzIGluIGNvbnRpbnVhdGlvbgorCSAgICAgICAgICAgICYmICgoKGVsZW1lbnQubV9DRXNfWzBdID4+IDgpICYgMHhGRikgCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBSdWxlQmFzZWRDb2xsYXRvci5CWVRFX0NPTU1PTl8pIAorCSAgICAgICAgICAgIC8vIGEgY29tbW9uIHNlY29uZGFyeQorCSAgICAgICAgICAgICYmICgoZWxlbWVudC5tX0NFc19bMF0gJiAweEZGKSAKKwkgICAgICAgICAgICAgICAgPT0gUnVsZUJhc2VkQ29sbGF0b3IuQllURV9DT01NT05fKSAvLyBhbmQgYSBjb21tb24gdGVydGlhcnkKKwkgICAgICAgICAgICApIHsKKwkgICAgICAgICAgICBlbGVtZW50Lm1fbWFwQ0VfID0gUnVsZUJhc2VkQ29sbGF0b3IuQ0VfU1BFQ0lBTF9GTEFHXyAKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYSBsb25nIHByaW1hcnkgc3BlY2lhbAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IChDRV9MT05HX1BSSU1BUllfVEFHXyA8PCAyNCkgCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZpcnN0IGFuZCBzZWNvbmQgYnl0ZSBvZiBwcmltYXJ5CisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKChlbGVtZW50Lm1fQ0VzX1swXSA+PiA4KSAmIDB4RkZGRjAwKSAKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcmQgYnl0ZSBvZiBwcmltYXJ5CisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKChlbGVtZW50Lm1fQ0VzX1sxXSA+PiAyNCkgJiAweEZGKTsgICAKKwkgICAgICAgIH0gCisJICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBvbWl0dGluZyBleHBhbnNpb24gb2Zmc2V0IGluIGJ1aWxkZXIKKyAgICAgICAgICAgICAgICAvLyAoSEVBREVSX1NJWkVfID4+IDIpCisJICAgICAgICAgICAgaW50IGV4cGFuc2lvbiA9IFJ1bGVCYXNlZENvbGxhdG9yLkNFX1NQRUNJQUxfRkxBR18gCisJICAgICAgICAgICAgICAgICAgICAgICAgfCAoQ0VfRVhQQU5TSU9OX1RBR18gCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCBSdWxlQmFzZWRDb2xsYXRvci5DRV9UQUdfU0hJRlRfKSAKKwkgICAgICAgICAgICAgICAgICAgICAgICB8IChhZGRFeHBhbnNpb24oZXhwYW5zaW9ucywgZWxlbWVudC5tX0NFc19bMF0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDQpICYgMHhGRkZGRjA7CisJCisJICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBlbGVtZW50Lm1fQ0VzXy5sZW5ndGg7IGkgKyspIHsKKwkgICAgICAgICAgICAgICAgIGFkZEV4cGFuc2lvbihleHBhbnNpb25zLCBlbGVtZW50Lm1fQ0VzX1tpXSk7CisJICAgICAgICAgICAgfQorCQkJICAgIGlmIChlbGVtZW50Lm1fQ0VzXy5sZW5ndGggPD0gMHhGKSB7CisJCQkgICAgICAgIGV4cGFuc2lvbiB8PSBlbGVtZW50Lm1fQ0VzXy5sZW5ndGg7CisJCQkgICAgfSAKKwkJCSAgICBlbHNlIHsKKwkJCSAgICAgICAgYWRkRXhwYW5zaW9uKGV4cGFuc2lvbnMsIDApOworCQkJICAgIH0KKwkJCSAgICBlbGVtZW50Lm1fbWFwQ0VfID0gZXhwYW5zaW9uOworCQkJICAgIHNldE1heEV4cGFuc2lvbihlbGVtZW50Lm1fQ0VzX1tlbGVtZW50Lm1fQ0VzXy5sZW5ndGggLSAxXSwKKwkJCSAgICAgICAgICAgICAgICAgICAgKGJ5dGUpZWxlbWVudC5tX0NFc18ubGVuZ3RoLCAKKwkJCSAgICAgICAgICAgICAgICAgICAgdC5tX21heEV4cGFuc2lvbnNfKTsKKwkJCSAgICBpZiAoaXNKYW1vKGVsZW1lbnQubV9jUG9pbnRzXy5jaGFyQXQoMCkpKXsKKwkJCSAgICAgICAgdC5tX2NvbGxhdG9yXy5tX2lzSmFtb1NwZWNpYWxfID0gdHJ1ZTsKKwkJCSAgICAgICAgc2V0TWF4SmFtb0V4cGFuc2lvbihlbGVtZW50Lm1fY1BvaW50c18uY2hhckF0KDApLAorCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQubV9DRXNfW2VsZW1lbnQubV9DRXNfLmxlbmd0aCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSAxXSwKKwkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSllbGVtZW50Lm1fQ0VzXy5sZW5ndGgsCisJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgdC5tX21heEphbW9FeHBhbnNpb25zXyk7CisJCQkgICAgfQorCQkgICAgfQorCSAgICB9CisJCisJICAgIC8vIGhlcmUgd2Ugd2FudCB0byBhZGQgdGhlIHByZWZpeCBzdHJ1Y3R1cmUuCisJICAgIC8vIEkgd2lsbCB0cnkgdG8gcHJvY2VzcyBpdCBhcyBhIHJldmVyc2UgY29udHJhY3Rpb24sIGlmIHBvc3NpYmxlLgorCSAgICAvLyBwcmVmaXggYnVmZmVyIGlzIGFscmVhZHkgcmV2ZXJzZWQuCisJCisJICAgIGlmIChlbGVtZW50Lm1fcHJlZml4Q2hhcnNfICE9IG51bGwgJiYKKyAgICAgICAgICAgIGVsZW1lbnQubV9wcmVmaXhDaGFyc18ubGVuZ3RoKCkgLSBlbGVtZW50Lm1fcHJlZml4XyA+IDApIHsKKwkJICAgIC8vIFdlIGtlZXAgdGhlIHNlZW4gcHJlZml4IHN0YXJ0ZXIgZWxlbWVudHMgaW4gYSBoYXNodGFibGUgd2UgbmVlZCAKKyAgICAgICAgICAgIC8vIGl0IHRvIGJlIGFibGUgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiB0aGUgc2ltcGxlIGNvZGVwb2ludHMgYW5kIAorICAgICAgICAgICAgLy8gcHJlZml4IHN0YXJ0ZXJzLiBBbHNvLCB3ZSBuZWVkIHRvIHVzZSBpdCBmb3IgY2Fub25pY2FsIGNsb3N1cmUuCisJCSAgICBFbGVtZW50cyBjb21wb3NlZCA9IG5ldyBFbGVtZW50cyhlbGVtZW50KTsKKwkJICAgIGNvbXBvc2VkLm1fcHJlZml4XyA9IDA7CisJCSAgICBjb21wb3NlZC5tX3VjaGFyc18gPSBOb3JtYWxpemVyLmNvbXBvc2UoZWxlbWVudC5tX3ByZWZpeENoYXJzXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpOworICAgICAgICAgICAgY29tcG9zZWQubV9jUG9pbnRzXyA9IGNvbXBvc2VkLm1fdWNoYXJzXzsgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjb21wb3NlZC5tX2NQb2ludHNPZmZzZXRfID0gMDsKKwkJICAgIGlmICh0Lm1fcHJlZml4TG9va3VwXyAhPSBudWxsKSB7CisJCSAgICAgICAgRWxlbWVudHMgdUNFID0gKEVsZW1lbnRzKXQubV9wcmVmaXhMb29rdXBfLmdldChlbGVtZW50KTsKKwkJICAgICAgICBpZiAodUNFICE9IG51bGwpIHsgCisgICAgICAgICAgICAgICAgICAgIC8vIHRoZXJlIGlzIGFscmVhZHkgYSBzZXQgb2YgY29kZSBwb2ludHMgaGVyZQorCQkgICAgICAgICAgICBlbGVtZW50Lm1fbWFwQ0VfID0gYWRkUHJlZml4KHQsIHVDRS5tX21hcENFXywgZWxlbWVudCk7CisJCSAgICAgICAgfSAKKyAgICAgICAgICAgICAgICBlbHNlIHsgLy8gbm8gY29kZSBwb2ludHMsIHNvIHRoaXMgc3BvdCBpcyBjbGVhbgorCQkgICAgICAgICAgICBlbGVtZW50Lm1fbWFwQ0VfID0gYWRkUHJlZml4KHQsIENFX05PVF9GT1VORF8sIGVsZW1lbnQpOworCQkgICAgICAgICAgICB1Q0UgPSBuZXcgRWxlbWVudHMoZWxlbWVudCk7CisJCSAgICAgICAgICAgIHVDRS5tX2NQb2ludHNfID0gdUNFLm1fdWNoYXJzXzsKKwkJICAgICAgICAgICAgdC5tX3ByZWZpeExvb2t1cF8ucHV0KHVDRSwgdUNFKTsKKwkJICAgICAgICB9CisJCSAgICAgICAgaWYgKGNvbXBvc2VkLm1fcHJlZml4Q2hhcnNfLmxlbmd0aCgpIAorICAgICAgICAgICAgICAgICAgICAgICAgIT0gZWxlbWVudC5tX3ByZWZpeENoYXJzXy5sZW5ndGgoKSAtIGVsZW1lbnQubV9wcmVmaXhfCisgICAgICAgICAgICAgICAgICAgIHx8ICFjb21wb3NlZC5tX3ByZWZpeENoYXJzXy5yZWdpb25NYXRjaGVzKDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50Lm1fcHJlZml4Q2hhcnNfLCBlbGVtZW50Lm1fcHJlZml4XywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvc2VkLm1fcHJlZml4Q2hhcnNfLmxlbmd0aCgpKSkgeworCQkgICAgICAgICAgICAvLyBkbyBpdCEKKwkJICAgICAgICAgICAgY29tcG9zZWQubV9tYXBDRV8gPSBhZGRQcmVmaXgodCwgZWxlbWVudC5tX21hcENFXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvc2VkKTsKKwkJICAgICAgICB9CisJCSAgICB9CisJICAgIH0KKwkKKwkgICAgLy8gV2UgbmVlZCB0byB1c2UgdGhlIGNhbm9uaWNhbCBpdGVyYXRvciBoZXJlCisJICAgIC8vIHRoZSB3YXkgd2UgZG8gaXQgaXMgdG8gZ2VuZXJhdGUgdGhlIGNhbm9uaWNhbGx5IGVxdWl2YWxlbnQgc3RyaW5ncyAKKwkgICAgLy8gZm9yIHRoZSBjb250cmFjdGlvbiBhbmQgdGhlbiBhZGQgdGhlIHNlcXVlbmNlcyB0aGF0IHBhc3MgRkNEIGNoZWNrCisJICAgIGlmIChlbGVtZW50Lm1fY1BvaW50c18ubGVuZ3RoKCkgLSBlbGVtZW50Lm1fY1BvaW50c09mZnNldF8gPiAxIAorCSAgICAgICAgJiYgIShlbGVtZW50Lm1fY1BvaW50c18ubGVuZ3RoKCkgLSBlbGVtZW50Lm1fY1BvaW50c09mZnNldF8gPT0gMiAKKyAgICAgICAgICAgICYmIFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShlbGVtZW50Lm1fY1BvaW50c18uY2hhckF0KDApKSAKKyAgICAgICAgICAgICYmIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoZWxlbWVudC5tX2NQb2ludHNfLmNoYXJBdCgxKSkpKSB7IAorICAgICAgICAgICAgLy8gdGhpcyBpcyBhIGNvbnRyYWN0aW9uLCB3ZSBzaG91bGQgY2hlY2sgd2hldGhlciBhIGNvbXBvc2VkIGZvcm0gCisgICAgICAgICAgICAvLyBzaG91bGQgYWxzbyBiZSBpbmNsdWRlZAorCSAgICAgICAgQ2Fub25pY2FsSXRlcmF0b3IgaXQgPSBuZXcgQ2Fub25pY2FsSXRlcmF0b3IoZWxlbWVudC5tX2NQb2ludHNfKTsKKwkJICAgIFN0cmluZyBzb3VyY2UgPSBpdC5uZXh0KCk7CisJCSAgICB3aGlsZSAoc291cmNlICE9IG51bGwgJiYgc291cmNlLmxlbmd0aCgpID4gMCkgeworCQkgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soc291cmNlLCBOb3JtYWxpemVyLkZDRCkgCisgICAgICAgICAgICAgICAgICAgICE9IE5vcm1hbGl6ZXIuTk8pIHsKKwkJICAgICAgICAgICAgZWxlbWVudC5tX3VjaGFyc18gPSBzb3VyY2U7CisJCSAgICAgICAgICAgIGVsZW1lbnQubV9jUG9pbnRzXyA9IGVsZW1lbnQubV91Y2hhcnNfOworCQkgICAgICAgICAgICBmaW5hbGl6ZUFkZGl0aW9uKHQsIGVsZW1lbnQpOworCQkgICAgICAgIH0KKwkJICAgICAgICBzb3VyY2UgPSBpdC5uZXh0KCk7CisJCSAgICB9CisJCQorCQkgICAgcmV0dXJuIGVsZW1lbnQubV9tYXBDRV87CisJCX0gCisgICAgICAgIGVsc2UgeworCQkgICAgcmV0dXJuIGZpbmFsaXplQWRkaXRpb24odCwgZWxlbWVudCk7ICAKKwkJfQorCX0KKworICAgIC8qKgorICAgICAqIFBhZHMgdGhlIGFyZ3VtZW50IHZhbHVlIHRvIGEgY291bnQgb2YgNAorICAgICAqIEBwYXJhbSBzb21ldGhpbmcgdmFsdWUgdG8gcGFkCisgICAgICogQHJldHVybiBwYWRkZWQgc29tZXRoaW5nCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IHBhZGRlZHNpemUoaW50IHNvbWV0aGluZykgCisgICAgeworICAgIAlyZXR1cm4gc29tZXRoaW5nICsgKChzb21ldGhpbmcgJSA0KSAhPSAwID8gNCAtIChzb21ldGhpbmcgJSA0KSA6IDApOworICAgIH0gICAgCisgICAgCisgICAgLyoqCisgICAgICogQWRkcyBhbiBleHBhbnNpb24gY2UgdG8gdGhlIGV4cGFuc2lvbiB2ZWN0b3IKKyAgICAgKiBAcGFyYW0gZXhwYW5zaW9ucyB2ZWN0b3IgdG8gYWRkIHRvCisgICAgICogQHBhcmFtIHZhbHVlIG9mIHRoZSBleHBhbnNpb24KKyAgICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IHBvc2l0aW9uIG9mIHRoZSBuZXcgZWxlbWVudAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBhZGRFeHBhbnNpb24oVmVjdG9yIGV4cGFuc2lvbnMsIGludCB2YWx1ZSkgCisgICAgeworCSAgICBleHBhbnNpb25zLmFkZChuZXcgSW50ZWdlcih2YWx1ZSkpOworCSAgICByZXR1cm4gZXhwYW5zaW9ucy5zaXplKCkgLSAxOworCX0KKwkKKwkvKioKKyAJICogTG9va3MgZm9yIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhbGwgZXhwYW5zaW9uIHNlcXVlbmNlcyBlbmRpbmcgd2l0aCB0aGUgCisgCSAqIHNhbWUgY29sbGF0aW9uIGVsZW1lbnQuIFRoZSBzaXplIHJlcXVpcmVkIGZvciBtYXhleHBhbnNpb24gYW5kIG1heHNpemUgCisgCSAqIGlzIHJldHVybmVkIGlmIHRoZSBhcnJheXMgYXJlIHRvbyBzbWFsbC4KKwkgKiBAcGFyYW0gZW5kZXhwYW5zaW9uIHRoZSBsYXN0IGV4cGFuc2lvbiBjb2xsYXRpb24gZWxlbWVudCB0byBiZSBhZGRlZAorCSAqIEBwYXJhbSBleHBhbnNpb25zaXplIHNpemUgb2YgdGhlIGV4cGFuc2lvbgorCSAqIEBwYXJhbSBtYXhleHBhbnNpb24gZGF0YSBzdHJ1Y3R1cmUgdG8gc3RvcmUgdGhlIG1heGltdW0gZXhwYW5zaW9uIGRhdGEuCisJICogQHJldHVybnMgc2l6ZSBvZiB0aGUgbWF4ZXhwYW5zaW9uIGFuZCBtYXhzaXplIHVzZWQuCisJICovCisJcHJpdmF0ZSBzdGF0aWMgaW50IHNldE1heEV4cGFuc2lvbihpbnQgZW5kZXhwYW5zaW9uLCBieXRlIGV4cGFuc2lvbnNpemUsCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXhFeHBhbnNpb25UYWJsZSBtYXhleHBhbnNpb24pCisJeworCSAgICBpbnQgc3RhcnQgPSAwOworCSAgICBpbnQgbGltaXQgPSBtYXhleHBhbnNpb24ubV9lbmRFeHBhbnNpb25DRV8uc2l6ZSgpOworICAgICAgICBsb25nIHVuc2lnbmVkID0gKGxvbmcpZW5kZXhwYW5zaW9uOworICAgICAgICB1bnNpZ25lZCAmPSAweEZGRkZGRkZGbDsKKwkKKwkgICAgLy8gdXNpbmcgYmluYXJ5IHNlYXJjaCB0byBkZXRlcm1pbmUgaWYgbGFzdCBleHBhbnNpb24gZWxlbWVudCBpcyAKKwkgICAgLy8gYWxyZWFkeSBpbiB0aGUgYXJyYXkgCisJICAgIGludCByZXN1bHQgPSAtMTsKKwkgICAgd2hpbGUgKHN0YXJ0IDwgbGltaXQgLSAxKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisJICAgICAgICBpbnQgbWlkID0gc3RhcnQgKyAoKGxpbWl0IC0gc3RhcnQpID4+IDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgbG9uZyB1bnNpZ25lZGNlID0gKChJbnRlZ2VyKW1heGV4cGFuc2lvbi5tX2VuZEV4cGFuc2lvbkNFXy5nZXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaWQpKS5pbnRWYWx1ZSgpOyAKKyAgICAgICAgICAgIHVuc2lnbmVkY2UgJj0gMHhGRkZGRkZGRmw7CisJICAgICAgICBpZiAodW5zaWduZWQgPD0gdW5zaWduZWRjZSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorCSAgICAgICAgICAgIGxpbWl0ID0gbWlkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisJCSAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisJCSAgICBlbHNlIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisJCSAgICAgIHN0YXJ0ID0gbWlkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisJCSAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisJICAgIH0gCisJICAgICAgCisJICAgIGlmICgoKEludGVnZXIpbWF4ZXhwYW5zaW9uLm1fZW5kRXhwYW5zaW9uQ0VfLmdldChzdGFydCkpLmludFZhbHVlKCkgCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gZW5kZXhwYW5zaW9uKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKwkgICAgICAgIHJlc3VsdCA9IHN0YXJ0OyAgCisJICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorCSAgICBlbHNlIGlmICgoKEludGVnZXIpbWF4ZXhwYW5zaW9uLm1fZW5kRXhwYW5zaW9uQ0VfLmdldChsaW1pdCkpLmludFZhbHVlKCkgCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gZW5kZXhwYW5zaW9uKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKwkgICAgICAgICAgICByZXN1bHQgPSBsaW1pdDsgICAgICAKKwkgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisJICAgIGlmIChyZXN1bHQgPiAtMSkgeworCSAgICAgICAgLy8gZm91bmQgdGhlIGNlIGluIGV4cGFuc2lvbiwgd2UnbGwganVzdCBtb2RpZnkgdGhlIHNpemUgaWYgaXQgCisJICAgICAgICAvLyBpcyBzbWFsbGVyCisJICAgICAgICBPYmplY3QgY3VycmVudHNpemUgPSBtYXhleHBhbnNpb24ubV9leHBhbnNpb25DRVNpemVfLmdldChyZXN1bHQpOworCQkgICAgaWYgKCgoQnl0ZSljdXJyZW50c2l6ZSkuYnl0ZVZhbHVlKCkgPCBleHBhbnNpb25zaXplKSB7CisJCSAgICAgICAgbWF4ZXhwYW5zaW9uLm1fZXhwYW5zaW9uQ0VTaXplXy5zZXQocmVzdWx0LCAKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEJ5dGUoZXhwYW5zaW9uc2l6ZSkpOworCQkgICAgfQorCSAgICB9CisJICAgIGVsc2UgeworCQkgICAgLy8gd2UnbGwgbmVlZCB0byBzcXVlZXplIHRoZSB2YWx1ZSBpbnRvIHRoZSBhcnJheS4gaW5pdGlhbCAKKwkJICAgIC8vIGltcGxlbWVudGF0aW9uLiBzaGlmdGluZyB0aGUgc3ViYXJyYXkgZG93biBieSAxCisJCSAgICBtYXhleHBhbnNpb24ubV9lbmRFeHBhbnNpb25DRV8uaW5zZXJ0RWxlbWVudEF0KAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEludGVnZXIoZW5kZXhwYW5zaW9uKSwKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICsgMSk7CisJCSAgICBtYXhleHBhbnNpb24ubV9leHBhbnNpb25DRVNpemVfLmluc2VydEVsZW1lbnRBdCgKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBCeXRlKGV4cGFuc2lvbnNpemUpLAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKyAxKTsKKwkgICAgfQorCSAgICByZXR1cm4gbWF4ZXhwYW5zaW9uLm1fZW5kRXhwYW5zaW9uQ0VfLnNpemUoKTsKKwl9CisJCisJLyoqCisgCSAqIFNldHMgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGFsbCBqYW1vIGV4cGFuc2lvbiBzZXF1ZW5jZXMgZW5kaW5nIHdpdGggdGhlIAorIAkgKiBzYW1lIGNvbGxhdGlvbiBlbGVtZW50LiBUaGUgc2l6ZSByZXF1aXJlZCBmb3IgbWF4ZXhwYW5zaW9uIGFuZCBtYXhzaXplIAorIAkgKiBpcyByZXR1cm5lZCBpZiB0aGUgYXJyYXlzIGFyZSB0b28gc21hbGwuCisJICogQHBhcmFtIGNoIHRoZSBqYW1vIGNvZGVwb2ludAorCSAqIEBwYXJhbSBlbmRleHBhbnNpb24gdGhlIGxhc3QgZXhwYW5zaW9uIGNvbGxhdGlvbiBlbGVtZW50IHRvIGJlIGFkZGVkCisJICogQHBhcmFtIGV4cGFuc2lvbnNpemUgc2l6ZSBvZiB0aGUgZXhwYW5zaW9uCisJICogQHBhcmFtIG1heGV4cGFuc2lvbiBkYXRhIHN0cnVjdHVyZSB0byBzdG9yZSB0aGUgbWF4aW11bSBleHBhbnNpb24gZGF0YS4KKwkgKiBAcmV0dXJucyBzaXplIG9mIHRoZSBtYXhleHBhbnNpb24gYW5kIG1heHNpemUgdXNlZC4KKwkgKi8KKwlwcml2YXRlIHN0YXRpYyBpbnQgc2V0TWF4SmFtb0V4cGFuc2lvbihjaGFyIGNoLCBpbnQgZW5kZXhwYW5zaW9uLAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGUgZXhwYW5zaW9uc2l6ZSwKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXhKYW1vRXhwYW5zaW9uVGFibGUgbWF4ZXhwYW5zaW9uKQorCXsKKwkgICAgYm9vbGVhbiBpc1YgPSB0cnVlOworCSAgICBpZiAoY2ggPj0gMHgxMTAwICYmIGNoIDw9IDB4MTExMikgeworCSAgICAgICAgLy8gZGV0ZXJtaW5lcyBMIGZvciBKYW1vLCBkb2Vzbid0IG5lZWQgdG8gc3RvcmUgdGhpcyBzaW5jZSBpdCBpcyAKKwkgICAgICAgIC8vIG5ldmVyIGF0IHRoZSBlbmQgb2YgYSBleHBhbnNpb24KKwkgICAgICAgIGlmIChtYXhleHBhbnNpb24ubV9tYXhMU2l6ZV8gPCBleHBhbnNpb25zaXplKSB7CisJICAgICAgICAgICAgbWF4ZXhwYW5zaW9uLm1fbWF4TFNpemVfID0gZXhwYW5zaW9uc2l6ZTsKKwkgICAgICAgIH0KKwkgICAgICAgIHJldHVybiBtYXhleHBhbnNpb24ubV9lbmRFeHBhbnNpb25DRV8uc2l6ZSgpOworCSAgICB9CisJCisJICAgIGlmIChjaCA+PSAweDExNjEgJiYgY2ggPD0gMHgxMTc1KSB7CisJICAgICAgICAvLyBkZXRlcm1pbmVzIFYgZm9yIEphbW8KKwkgICAgICAgIGlmIChtYXhleHBhbnNpb24ubV9tYXhWU2l6ZV8gPCBleHBhbnNpb25zaXplKSB7CisJICAgICAgICAgICAgbWF4ZXhwYW5zaW9uLm1fbWF4VlNpemVfID0gZXhwYW5zaW9uc2l6ZTsKKwkgICAgICAgIH0KKwkgICAgfQorCQorCSAgICBpZiAoY2ggPj0gMHgxMUE4ICYmIGNoIDw9IDB4MTFDMikgeworCSAgICAgICAgaXNWID0gZmFsc2U7CisJICAgICAgICAvLyBkZXRlcm1pbmVzIFQgZm9yIEphbW8KKwkgICAgICAgIGlmIChtYXhleHBhbnNpb24ubV9tYXhUU2l6ZV8gPCBleHBhbnNpb25zaXplKSB7CisJICAgICAgICAgICAgbWF4ZXhwYW5zaW9uLm1fbWF4VFNpemVfID0gZXhwYW5zaW9uc2l6ZTsKKwkgICAgICAgIH0KKwkgICAgfQorCisgICAgICAgIGludCBwb3MgPSBtYXhleHBhbnNpb24ubV9lbmRFeHBhbnNpb25DRV8uc2l6ZSgpOwkKKwkJd2hpbGUgKHBvcyA+IDApIHsKKwkJICAgIHBvcyAtLTsKKwkJICAgIGlmICgoKEludGVnZXIpbWF4ZXhwYW5zaW9uLm1fZW5kRXhwYW5zaW9uQ0VfLmdldChwb3MpKS5pbnRWYWx1ZSgpIAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gZW5kZXhwYW5zaW9uKSB7CisJCSAgICAgICAgcmV0dXJuIG1heGV4cGFuc2lvbi5tX2VuZEV4cGFuc2lvbkNFXy5zaXplKCk7CisJCSAgICB9CisJCX0KKwkJbWF4ZXhwYW5zaW9uLm1fZW5kRXhwYW5zaW9uQ0VfLmFkZChuZXcgSW50ZWdlcihlbmRleHBhbnNpb24pKTsKKwkJbWF4ZXhwYW5zaW9uLm1faXNWXy5hZGQobmV3IEJvb2xlYW4oaXNWKSk7CisJCSAgCisJCXJldHVybiBtYXhleHBhbnNpb24ubV9lbmRFeHBhbnNpb25DRV8uc2l6ZSgpOworCX0KKwkKKwkvKioKKwkgKiBBZGRzIGEgcHJlZml4IHRvIHRoZSB0YWJsZQorCSAqIEBwYXJhbSB0IGJ1aWxkIHRhYmxlIHRvIHVwZGF0ZQorCSAqIEBwYXJhbSBDRSBjb2xsYXRpb24gZWxlbWVudCB0byBhZGQKKwkgKiBAcGFyYW0gZWxlbWVudCBydWxlIGVsZW1lbnQgdG8gYWRkCisJICogQHJldHVybiBtb2RpZmllZCBjZQorCSAqLworCXByaXZhdGUgc3RhdGljIGludCBhZGRQcmVmaXgoQnVpbGRUYWJsZSB0LCBpbnQgQ0UsIEVsZW1lbnRzIGVsZW1lbnQpIAorCXsKKwkgICAgLy8gY3VycmVudGx5IHRoZSBsb25nZXN0IHByZWZpeCB3ZSdyZSBzdXBwb3J0aW5nIGluIEphcGFuZXNlIGlzIHR3byAKKwkgICAgLy8gY2hhcmFjdGVycyBsb25nLiBBbHRob3VnaCB0aGlzIHRhYmxlIGNvdWxkIHF1aXRlIGVhc2lseSBtaW1pYyAKKwkgICAgLy8gY29tcGxldGUgY29udHJhY3Rpb24gc3R1ZmYgdGhlcmUgaXMgbm8gZ29vZCByZWFzb24gdG8gbWFrZSBhIGdlbmVyYWwgCisJICAgIC8vIHNvbHV0aW9uLCBhcyBpdCB3b3VsZCByZXF1aXJlIHNvbWUgZXJyb3IgcHJvbmUgbWVzc2luZy4KKwkgICAgQ29udHJhY3Rpb25UYWJsZSBjb250cmFjdGlvbnMgPSB0Lm1fY29udHJhY3Rpb25zXzsKKwkgICAgU3RyaW5nIG9sZENQID0gZWxlbWVudC5tX2NQb2ludHNfOworCSAgICBpbnQgb2xkQ1BPZmZzZXQgPSBlbGVtZW50Lm1fY1BvaW50c09mZnNldF87CisJICAgIAorCSAgICBjb250cmFjdGlvbnMubV9jdXJyZW50VGFnXyA9IENFX1NQRUNfUFJPQ19UQUdfOworCSAgICAvLyBoZXJlLCB3ZSB3aWxsIG5vcm1hbGl6ZSAmIGFkZCBwcmVmaXggdG8gdGhlIHRhYmxlLgorCSAgICBpbnQgc2l6ZSA9IGVsZW1lbnQubV9wcmVmaXhDaGFyc18ubGVuZ3RoKCkgLSBlbGVtZW50Lm1fcHJlZml4XzsKKwkgICAgZm9yIChpbnQgaiA9IDE7IGogPCBzaXplOyBqICsrKSB7ICAgCisJICAgICAgICAvLyBGaXJzdCBhZGQgTkZEIHByZWZpeCBjaGFycyB0byB1bnNhZmUgQ1AgaGFzaCB0YWJsZSAKKwkgICAgICAgIC8vIFVubGVzcyBpdCBpcyBhIHRyYWlsIHN1cnJvZ2F0ZSwgd2hpY2ggaXMgaGFuZGxlZCBhbGdvcml0bWljYWxseSAKKwkgICAgICAgIC8vIGFuZCBzaG91bGRuJ3QgdGFrZSB1cCBzcGFjZSBpbiB0aGUgdGFibGUuCisJICAgICAgICBjaGFyIGNoID0gZWxlbWVudC5tX3ByZWZpeENoYXJzXy5jaGFyQXQoaiArIGVsZW1lbnQubV9wcmVmaXhfKTsKKwkgICAgICAgIGlmICghVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjaCkpIHsKKwkgICAgICAgICAgICB1bnNhZmVDUFNldCh0Lm1fdW5zYWZlQ1BfLCBjaCk7CisJICAgICAgICB9CisJICAgIH0KKwkgICAgCisJICAgIFN0cmluZ0J1ZmZlciByZXZlcnNlZCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKwkgICAgZm9yIChpbnQgaiA9IDA7IGogPCBzaXplOyBqICsrKSB7IAorCSAgICAJLy8gcHJlZml4ZXMgYXJlIGdvaW5nIHRvIGJlIGxvb2tlZCB1cCBiYWNrd2FyZHMKKwkgICAgICAgIC8vIHRoZXJlZm9yZSwgd2Ugd2lsbCBwcm9tcHRseSByZXZlcnNlIHRoZSBwcmVmaXggYnVmZmVyLi4uCisJICAgICAgICBpbnQgb2Zmc2V0ID0gZWxlbWVudC5tX3ByZWZpeENoYXJzXy5sZW5ndGgoKSAtIGogLSAxOworCSAgICAgICAgcmV2ZXJzZWQuYXBwZW5kKGVsZW1lbnQubV9wcmVmaXhDaGFyc18uY2hhckF0KG9mZnNldCkpOworCSAgICB9CisJICAgIGVsZW1lbnQubV9wcmVmaXhDaGFyc18gPSByZXZlcnNlZC50b1N0cmluZygpOworCSAgICBlbGVtZW50Lm1fcHJlZml4XyA9IDA7CisJCisJICAgIC8vIHRoZSBmaXJzdCBjb2RlcG9pbnQgaXMgYWxzbyB1bnNhZmUsIGFzIGl0IGZvcm1zIGEgJ2NvbnRyYWN0aW9uJyB3aXRoIAorCSAgICAvLyB0aGUgcHJlZml4CisJICAgIGlmICghVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShlbGVtZW50Lm1fY1BvaW50c18uY2hhckF0KDApKSkgeworCSAgICAgICAgdW5zYWZlQ1BTZXQodC5tX3Vuc2FmZUNQXywgZWxlbWVudC5tX2NQb2ludHNfLmNoYXJBdCgwKSk7CisJICAgIH0KKwkJCisJICAgIGVsZW1lbnQubV9jUG9pbnRzXyA9IGVsZW1lbnQubV9wcmVmaXhDaGFyc187CisJICAgIGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0XyA9IGVsZW1lbnQubV9wcmVmaXhfOworCQorCSAgICAvLyBBZGQgdGhlIGxhc3QgY2hhciBvZiB0aGUgY29udHJhY3Rpb24gdG8gdGhlIGNvbnRyYWN0aW9uLWVuZCBoYXNoIAorCSAgICAvLyB0YWJsZS4gdW5sZXNzIGl0IGlzIGEgdHJhaWwgc3Vycm9nYXRlLCB3aGljaCBpcyBoYW5kbGVkIAorCSAgICAvLyBhbGdvcml0aG1pY2FsbHkgYW5kIHNob3VsZG4ndCBiZSBpbiB0aGUgdGFibGUKKwkgICAgaWYgKCFVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKAorCSAgICAgICAgICAgIGVsZW1lbnQubV9jUG9pbnRzXy5jaGFyQXQoZWxlbWVudC5tX2NQb2ludHNfLmxlbmd0aCgpIC0gMSkpKSB7CisJICAgICAgICBDb250ckVuZENQU2V0KHQubV9jb250ckVuZENQXywgZWxlbWVudC5tX2NQb2ludHNfLmNoYXJBdCgKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQubV9jUG9pbnRzXy5sZW5ndGgoKSAtIDEpKTsKKwkgICAgfQorCSAgICAvLyBGaXJzdCB3ZSBuZWVkIHRvIGNoZWNrIGlmIGNvbnRyYWN0aW9ucyBzdGFydHMgd2l0aCBhIHN1cnJvZ2F0ZQorCSAgICAvLyBpbnQgY3AgPSBVVEYxNi5jaGFyQXQoZWxlbWVudC5tX2NQb2ludHNfLCBlbGVtZW50Lm1fY1BvaW50c09mZnNldF8pOworCQorCSAgICAvLyBJZiB0aGVyZSBhcmUgYW55IEphbW9zIGluIHRoZSBjb250cmFjdGlvbiwgd2Ugc2hvdWxkIHR1cm4gb24gc3BlY2lhbCAKKwkgICAgLy8gcHJvY2Vzc2luZyBmb3IgSmFtb3MKKwkgICAgaWYgKGlzSmFtbyhlbGVtZW50Lm1fcHJlZml4Q2hhcnNfLmNoYXJBdChlbGVtZW50Lm1fcHJlZml4XykpKSB7CisJICAgICAgICB0Lm1fY29sbGF0b3JfLm1faXNKYW1vU3BlY2lhbF8gPSB0cnVlOworCSAgICB9CisJICAgIC8vIHRoZW4gd2UgbmVlZCB0byBkZWFsIHdpdGggaXQgCisJICAgIC8vIHdlIGNvdWxkIGFyZWFkeSBoYXZlIHNvbWV0aGluZyBpbiB0YWJsZSAtIG9yIHdlIG1pZ2h0IG5vdCAKKwkgICAgaWYgKCFpc1ByZWZpeChDRSkpIHsgCisJICAgICAgICAvLyBpZiBpdCB3YXNuJ3QgY29udHJhY3Rpb24sIHdlIHdvdWxkbid0IGVuZCB1cCBoZXJlCisJICAgICAgICBpbnQgZmlyc3RDb250cmFjdGlvbk9mZnNldCA9IGFkZENvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09OVFJBQ1RJT05fVEFCTEVfTkVXX0VMRU1FTlRfLCAKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpMCwgQ0UpOworCSAgICAgICAgaW50IG5ld0NFID0gcHJvY2Vzc0NvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgZWxlbWVudCwgCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0VfTk9UX0ZPVU5EXyk7CisJICAgICAgICBhZGRDb250cmFjdGlvbihjb250cmFjdGlvbnMsIGZpcnN0Q29udHJhY3Rpb25PZmZzZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX3ByZWZpeENoYXJzXy5jaGFyQXQoZWxlbWVudC5tX3ByZWZpeF8pLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0NFKTsKKwkgICAgICAgIGFkZENvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgZmlyc3RDb250cmFjdGlvbk9mZnNldCwgKGNoYXIpMHhGRkZGLCAKKyAgICAJICAgICAgICAgICAgICAgICAgIENFKTsKKwkgICAgICAgIENFID0gY29uc3RydWN0U3BlY2lhbENFKENFX1NQRUNfUFJPQ19UQUdfLCBmaXJzdENvbnRyYWN0aW9uT2Zmc2V0KTsKKwkgICAgfSAKKwkgICAgZWxzZSB7IAorCSAgICAgICAgLy8gd2UgYXJlIGFkZGluZyB0byBleGlzdGluZyBjb250cmFjdGlvbiAKKwkgICAgICAgIC8vIHRoZXJlIHdlcmUgYWxyZWFkeSBzb21lIGVsZW1lbnRzIGluIHRoZSB0YWJsZSwgc28gd2UgbmVlZCB0byBhZGQgCisJICAgICAgICAvLyBhIG5ldyBjb250cmFjdGlvbiAKKwkgICAgICAgIC8vIFR3byB0aGluZ3MgY2FuIGhhcHBlbiBoZXJlOiBlaXRoZXIgdGhlIGNvZGVwb2ludCBpcyBhbHJlYWR5IGluIAorCSAgICAgICAgLy8gdGhlIHRhYmxlLCBvciBpdCBpcyBub3QKKwkgICAgICAgIGNoYXIgY2ggPSBlbGVtZW50Lm1fcHJlZml4Q2hhcnNfLmNoYXJBdChlbGVtZW50Lm1fcHJlZml4Xyk7CisJICAgICAgICBpbnQgcG9zaXRpb24gPSBmaW5kQ1AoY29udHJhY3Rpb25zLCBDRSwgY2gpOworCSAgICAgICAgaWYgKHBvc2l0aW9uID4gMCkgeyAgICAgICAKKwkgICAgICAgICAgICAvLyBpZiBpdCBpcyB3ZSBqdXN0IGNvbnRpbnVlIGRvd24gdGhlIGNoYWluIAorCSAgICAgICAgICAgIGludCBlQ0UgPSBnZXRDRShjb250cmFjdGlvbnMsIENFLCBwb3NpdGlvbik7CisJICAgICAgICAgICAgaW50IG5ld0NFID0gcHJvY2Vzc0NvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgZWxlbWVudCwgZUNFKTsKKwkgICAgICAgICAgICBzZXRDb250cmFjdGlvbihjb250cmFjdGlvbnMsIENFLCBwb3NpdGlvbiwgY2gsIG5ld0NFKTsKKwkgICAgICAgIH0gCisJICAgICAgICBlbHNlIHsgICAgICAgICAgICAgICAgICAKKwkgICAgICAgICAgICAvLyBpZiBpdCBpc24ndCwgd2Ugd2lsbCBoYXZlIHRvIGNyZWF0ZSBhIG5ldyBzZXF1ZW5jZSAKKwkgICAgICAgICAgICBwcm9jZXNzQ29udHJhY3Rpb24oY29udHJhY3Rpb25zLCBlbGVtZW50LCBDRV9OT1RfRk9VTkRfKTsKKwkgICAgICAgICAgICBpbnNlcnRDb250cmFjdGlvbihjb250cmFjdGlvbnMsIENFLCBjaCwgZWxlbWVudC5tX21hcENFXyk7CisJICAgICAgICB9CisJICAgIH0KKwkKKwkgICAgZWxlbWVudC5tX2NQb2ludHNfID0gb2xkQ1A7CisJICAgIGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0XyA9IG9sZENQT2Zmc2V0OworCQorCSAgICByZXR1cm4gQ0U7CisJfQorCQorCS8qKgorCSAqIENoZWNrcyBpZiB0aGUgYXJndW1lbnQgY2UgaXMgYSBjb250cmFjdGlvbgorCSAqIEBwYXJhbSBDRSBjb2xsYXRpb24gZWxlbWVudAorCSAqIEByZXR1cm4gdHJ1ZSBpZiBhcmd1bWVudCBjZSBpcyBhIGNvbnRyYWN0aW9uCisJICovCisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBpc0NvbnRyYWN0aW9uKGludCBDRSkgCisJeworCQlyZXR1cm4gaXNTcGVjaWFsKENFKSAmJiAoZ2V0Q0VUYWcoQ0UpID09IENFX0NPTlRSQUNUSU9OX1RBR18pOworCX0KKwkKKwkvKioKKwkgKiBDaGVja3MgaWYgdGhlIGFyZ3VtZW50IGNlIGhhcyBhIHByZWZpeAorCSAqIEBwYXJhbSBDRSBjb2xsYXRpb24gZWxlbWVudAorCSAqIEByZXR1cm4gdHJ1ZSBpZiBhcmd1bWVudCBjZSBoYXMgYSBwcmVmaXgKKwkgKi8KKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIGlzUHJlZml4KGludCBDRSkgCisJeworCQlyZXR1cm4gaXNTcGVjaWFsKENFKSAmJiAoZ2V0Q0VUYWcoQ0UpID09IENFX1NQRUNfUFJPQ19UQUdfKTsKKwl9CisJCisJLyoqCisJICogQ2hlY2tzIGlmIHRoZSBhcmd1bWVudCBjZSBpcyBzcGVjaWFsCisJICogQHBhcmFtIENFIGNvbGxhdGlvbiBlbGVtZW50CisJICogQHJldHVybiB0cnVlIGlmIGFyZ3VtZW50IGNlIGlzIHNwZWNpYWwKKwkgKi8KKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIGlzU3BlY2lhbChpbnQgQ0UpIAorCXsKKwkJcmV0dXJuIChDRSAmIFJ1bGVCYXNlZENvbGxhdG9yLkNFX1NQRUNJQUxfRkxBR18pID09IDB4RjAwMDAwMDA7CisJfQorCQorCS8qKgorCSAqIENoZWNrcyBpZiB0aGUgYXJndW1lbnQgY2UgaGFzIGEgcHJlZml4CisJICogQHBhcmFtIENFIGNvbGxhdGlvbiBlbGVtZW50CisJICogQHJldHVybiB0cnVlIGlmIGFyZ3VtZW50IGNlIGhhcyBhIHByZWZpeAorCSAqLworCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBnZXRDRVRhZyhpbnQgQ0UpIAorCXsKKwkgICAgcmV0dXJuIChDRSAmIFJ1bGVCYXNlZENvbGxhdG9yLkNFX1RBR19NQVNLXykgPj4+IAorCSAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfVEFHX1NISUZUXzsKKwl9CisJCisJLyoqCisJICogR2V0cyB0aGUgY2UgYXQgcG9zaXRpb24gaW4gY29udHJhY3Rpb24gdGFibGUKKwkgKiBAcGFyYW0gdGFibGUgY29udHJhY3Rpb24gdGFibGUKKwkgKiBAcGFyYW0gcG9zaXRpb24gb2Zmc2V0IHRvIHRoZSBjb250cmFjdGlvbiB0YWJsZQorCSAqIEByZXR1cm4gY2UKKwkgKi8KKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgZ2V0Q0UoQ29udHJhY3Rpb25UYWJsZSB0YWJsZSwgaW50IGVsZW1lbnQsIAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcG9zaXRpb24pIAorCXsKKwkJZWxlbWVudCAmPSAweEZGRkZGRjsKKyAgICAgICAgQmFzaWNDb250cmFjdGlvblRhYmxlIHRibCA9IG51bGw7CisKKyAgICAgICAgaWYgKGVsZW1lbnQgPT0gMHhGRkZGRkYgfHwgdGFibGUubV9lbGVtZW50c18uZ2V0KGVsZW1lbnQpID09IG51bGwpIHsKKyAgICAgICAgICAgIHRibCA9IG51bGw7CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgeworICAgICAgICAJdGJsID0gKEJhc2ljQ29udHJhY3Rpb25UYWJsZSl0YWJsZS5tX2VsZW1lbnRzXy5nZXQoZWxlbWVudCk7CisgICAgICAgIH0JCisgICAgICAgIAorICAgIAlpZiAodGJsID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBDRV9OT1RfRk9VTkRfOworICAgICAgICB9CisJCWlmIChwb3NpdGlvbiA+IHRibC5tX0NFc18uc2l6ZSgpIHx8IHBvc2l0aW9uID09IC0xKSB7CisJCSAgICByZXR1cm4gQ0VfTk9UX0ZPVU5EXzsKKwkJfSAKKwkJZWxzZSB7CisJCSAgICByZXR1cm4gKChJbnRlZ2VyKXRibC5tX0NFc18uZ2V0KHBvc2l0aW9uKSkuaW50VmFsdWUoKTsKKwkJfQorCX0KKwkKKwkvKioKKwkgKiBTZXRzIHRoZSB1bnNhZmUgY2hhcmFjdGVyCisJICogQHBhcmFtIHRhYmxlIHVuc2FmZSB0YWJsZQorCSAqIEBwYXJhbSBjIGNoYXJhY3RlciB0byBiZSBhZGRlZAorCSAqLworCXByaXZhdGUgc3RhdGljIGZpbmFsIHZvaWQgdW5zYWZlQ1BTZXQoYnl0ZSB0YWJsZVtdLCBjaGFyIGMpIAorCXsKKwkgICAgaW50IGhhc2ggPSBjOworCSAgICBpZiAoaGFzaCA+PSAoVU5TQUZFQ1BfVEFCTEVfU0laRV8gPDwgMykpIHsKKwkgICAgICAgIGlmIChoYXNoID49IDB4ZDgwMCAmJiBoYXNoIDw9IDB4ZjhmZikgeworCSAgICAgICAgICAgIC8vIFBhcnQgb2YgYSBzdXJyb2dhdGUsIG9yIGluIHByaXZhdGUgdXNlIGFyZWEuIAorCSAgICAgICAgICAgIC8vIFRoZXNlIGRvbid0IGdvIGluIHRoZSB0YWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKwkgICAgICAgICAgICByZXR1cm47CisJICAgICAgICB9CisJICAgICAgICBoYXNoID0gKGhhc2ggJiBVTlNBRkVDUF9UQUJMRV9NQVNLXykgKyAyNTY7CisJICAgIH0KKwkgICAgdGFibGVbaGFzaCA+PiAzXSB8PSAoMSA8PCAoaGFzaCAmIDcpKTsKKwl9CisJCisJLyoqCisJICogU2V0cyB0aGUgY29udHJhY3Rpb24gZW5kIGNoYXJhY3RlcgorCSAqIEBwYXJhbSB0YWJsZSBjb250cmFjdGlvbiBlbmQgdGFibGUKKwkgKiBAcGFyYW0gYyBjaGFyYWN0ZXIgdG8gYmUgYWRkZWQKKwkgKi8KKwlwcml2YXRlIHN0YXRpYyBmaW5hbCB2b2lkIENvbnRyRW5kQ1BTZXQoYnl0ZSB0YWJsZVtdLCBjaGFyIGMpIAorCXsKKwkgICAgaW50IGhhc2ggPSBjOworCSAgICBpZiAoaGFzaCA+PSAoVU5TQUZFQ1BfVEFCTEVfU0laRV8gPDwgMykpIHsKKwkgICAgICAgIGhhc2ggPSAoaGFzaCAmIFVOU0FGRUNQX1RBQkxFX01BU0tfKSArIDI1NjsKKwkgICAgfQorCSAgICB0YWJsZVtoYXNoID4+IDNdIHw9ICgxIDw8IChoYXNoICYgNykpOworCX0KKwkKKwkvKiogCisJICogQWRkcyBtb3JlIGNvbnRyYWN0aW9ucyBpbiB0YWJsZS4gSWYgZWxlbWVudCBpcyBub24gZXhpc3RhbnQsIGl0IGNyZWF0ZXMgCisJICogb24uIFJldHVybnMgZWxlbWVudCBoYW5kbGUgCisJICogQHBhcmFtIHRhYmxlIGNvbnRyYWN0aW9uIHRhYmxlCisJICogQHBhcmFtIGVsZW1lbnQgb2Zmc2V0IHRvIHRoZSBjb250cmFjdGlvbiB0YWJsZQorCSAqIEBwYXJhbSBjb2RlUG9pbnQgY29kZXBvaW50IHRvIGFkZAorCSAqIEBwYXJhbSB2YWx1ZQorCSAqIEByZXR1cm4gY29sbGF0aW9uIGVsZW1lbnQKKwkgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgYWRkQ29udHJhY3Rpb24oQ29udHJhY3Rpb25UYWJsZSB0YWJsZSwgaW50IGVsZW1lbnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGNvZGVQb2ludCwgaW50IHZhbHVlKSAKKyAgICB7CisJICAgIEJhc2ljQ29udHJhY3Rpb25UYWJsZSB0YmwgPSBnZXRCYXNpY0NvbnRyYWN0aW9uVGFibGUodGFibGUsIGVsZW1lbnQpOworCSAgICBpZiAodGJsID09IG51bGwpIHsKKwkgICAgICAgIHRibCA9IGFkZEFDb250cmFjdGlvbkVsZW1lbnQodGFibGUpOworCSAgICAgICAgZWxlbWVudCA9IHRhYmxlLm1fZWxlbWVudHNfLnNpemUoKSAtIDE7CisJICAgIH0gCisJCisJICAgIHRibC5tX0NFc18uYWRkKG5ldyBJbnRlZ2VyKHZhbHVlKSk7CisJICAgIHRibC5tX2NvZGVQb2ludHNfLmFwcGVuZChjb2RlUG9pbnQpOworCSAgICByZXR1cm4gY29uc3RydWN0U3BlY2lhbENFKHRhYmxlLm1fY3VycmVudFRhZ18sIGVsZW1lbnQpOworCX0KKworICAgIC8qKgorICAgICAqIEFkZHMgYSBjb250cmFjdGlvbiBlbGVtZW50IHRvIHRoZSB0YWJsZQorICAgICAqIEBwYXJhbSB0YWJsZSBjb250cmFjdGlvbiB0YWJsZSB0byB1cGRhdGUKKyAgICAgKiBAcmV0dXJuIGNvbnRyYWN0aW9uIAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIEJhc2ljQ29udHJhY3Rpb25UYWJsZSBhZGRBQ29udHJhY3Rpb25FbGVtZW50KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRyYWN0aW9uVGFibGUgdGFibGUpIAorICAgIHsKKwkgICAgQmFzaWNDb250cmFjdGlvblRhYmxlIHJlc3VsdCA9IG5ldyBCYXNpY0NvbnRyYWN0aW9uVGFibGUoKTsKKwkgICAgdGFibGUubV9lbGVtZW50c18uYWRkKHJlc3VsdCk7CisJICAgIHJldHVybiByZXN1bHQ7CisJfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIHNwZWNpYWwgY2UKKyAgICAgKiBAcGFyYW0gdGFnIHNwZWNpYWwgdGFnCisgICAgICogQHBhcmFtIGNlIAorICAgICAqIEByZXR1cm4gYSBjb250cmFjdGlvbiBjZQorICAgICAqLworCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBjb25zdHJ1Y3RTcGVjaWFsQ0UoaW50IHRhZywgaW50IENFKSAKKwl7CisJCXJldHVybiBSdWxlQmFzZWRDb2xsYXRvci5DRV9TUEVDSUFMX0ZMQUdfIAorCQkgICAgICAgIHwgKHRhZyA8PCBSdWxlQmFzZWRDb2xsYXRvci5DRV9UQUdfU0hJRlRfKSB8IChDRSAmIDB4RkZGRkZGKTsKKwl9CisJCisJLyoqCisJICogU2V0cyBhbmQgaW5zZXJ0cyB0aGUgZWxlbWVudCB0aGF0IGhhcyBhIGNvbnRyYWN0aW9uCisJICogQHBhcmFtIGNvbnRyYWN0aW9uIHRhYmxlIAorCSAqIEBwYXJhbSBlbGVtZW50IGNvbnRyYWN0aW5nIGVsZW1lbnQKKwkgKiBAcGFyYW0gZXhpc3RpbmdDRQorCSAqIEByZXR1cm4gY29udHJhY3Rpb24gY2UKKwkgKi8KKwlwcml2YXRlIHN0YXRpYyBpbnQgcHJvY2Vzc0NvbnRyYWN0aW9uKENvbnRyYWN0aW9uVGFibGUgY29udHJhY3Rpb25zLCAKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsZW1lbnRzIGVsZW1lbnQsIAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGV4aXN0aW5nQ0UpIAorICAgIHsKKwkgICAgaW50IGZpcnN0Q29udHJhY3Rpb25PZmZzZXQgPSAwOworCSAgICAvLyBlbmQgb2YgcmVjdXJzaW9uIAorCSAgICBpZiAoZWxlbWVudC5tX2NQb2ludHNfLmxlbmd0aCgpIC0gZWxlbWVudC5tX2NQb2ludHNPZmZzZXRfID09IDEpIHsKKwkgICAgICAgIGlmIChpc0NvbnRyYWN0aW9uVGFibGVFbGVtZW50KGV4aXN0aW5nQ0UpIAorCSAgICAgICAgICAgICYmIGdldENFVGFnKGV4aXN0aW5nQ0UpID09IGNvbnRyYWN0aW9ucy5tX2N1cnJlbnRUYWdfKSB7CisJICAgICAgICAgICAgY2hhbmdlQ29udHJhY3Rpb24oY29udHJhY3Rpb25zLCBleGlzdGluZ0NFLCAoY2hhcikwLCAKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50Lm1fbWFwQ0VfKTsKKwkgICAgICAgICAgICBjaGFuZ2VDb250cmFjdGlvbihjb250cmFjdGlvbnMsIGV4aXN0aW5nQ0UsIChjaGFyKTB4RkZGRiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50Lm1fbWFwQ0VfKTsKKwkgICAgICAgICAgICByZXR1cm4gZXhpc3RpbmdDRTsKKwkgICAgICAgIH0gCisJICAgICAgICBlbHNlIHsKKwkgICAgICAgIAkvLyBjYW4ndCBkbyBqdXN0IHRoYXQuIGV4aXN0aW5nQ2UgbWlnaHQgYmUgYSBjb250cmFjdGlvbiwgCisJICAgICAgICAJLy8gbWVhbmluZyB0aGF0IHdlIG5lZWQgdG8gZG8gYW5vdGhlciBzdGVwCisJICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQubV9tYXBDRV87IAorCSAgICAgICAgfQorCSAgICB9CisJCisJICAgIC8vIHRoaXMgcmVjdXJzaW9uIGN1cnJlbnRseSBmZWVkcyBvbiB0aGUgb25seSBlbGVtZW50IHdlIGhhdmUuLi4gCisJICAgIC8vIFdlIHdpbGwgaGF2ZSB0byBjb3B5IGl0IGluIG9yZGVyIHRvIGFjY29tb2RhdGUgZm9yIGJvdGggYmFja3dhcmQgCisJICAgIC8vIGFuZCBmb3J3YXJkIGN5Y2xlcworCSAgICAvLyB3ZSBlbmNvdW50ZXJlZCBlaXRoZXIgYW4gZW1wdHkgc3BhY2Ugb3IgYSBub24tY29udHJhY3Rpb24gZWxlbWVudCAKKwkgICAgLy8gdGhpcyBtZWFucyB3ZSBhcmUgY29uc3RydWN0aW5nIGEgbmV3IGNvbnRyYWN0aW9uIHNlcXVlbmNlIAorCSAgICBlbGVtZW50Lm1fY1BvaW50c09mZnNldF8gKys7CisJICAgIGlmICghaXNDb250cmFjdGlvblRhYmxlRWxlbWVudChleGlzdGluZ0NFKSkgeyAKKwkgICAgICAgIC8vIGlmIGl0IHdhc24ndCBjb250cmFjdGlvbiwgd2Ugd291bGRuJ3QgZW5kIHVwIGhlcmUKKwkgICAgICAgIGZpcnN0Q29udHJhY3Rpb25PZmZzZXQgPSBhZGRDb250cmFjdGlvbihjb250cmFjdGlvbnMsIAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT05UUkFDVElPTl9UQUJMRV9ORVdfRUxFTUVOVF8sIAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcikwLCBleGlzdGluZ0NFKTsKKwkgICAgICAgIGludCBuZXdDRSA9IHByb2Nlc3NDb250cmFjdGlvbihjb250cmFjdGlvbnMsIGVsZW1lbnQsIAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENFX05PVF9GT1VORF8pOworCSAgICAgICAgYWRkQ29udHJhY3Rpb24oY29udHJhY3Rpb25zLCBmaXJzdENvbnRyYWN0aW9uT2Zmc2V0LCAKKwkgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQubV9jUG9pbnRzXy5jaGFyQXQoZWxlbWVudC5tX2NQb2ludHNPZmZzZXRfKSwgCisJICAgICAgICAgICAgICAgICAgICAgICBuZXdDRSk7CisJICAgICAgICBhZGRDb250cmFjdGlvbihjb250cmFjdGlvbnMsIGZpcnN0Q29udHJhY3Rpb25PZmZzZXQsIAorCSAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpMHhGRkZGLCBleGlzdGluZ0NFKTsKKwkgICAgICAgIGV4aXN0aW5nQ0UgPSBjb25zdHJ1Y3RTcGVjaWFsQ0UoY29udHJhY3Rpb25zLm1fY3VycmVudFRhZ18sIAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdENvbnRyYWN0aW9uT2Zmc2V0KTsKKwkgICAgfSAKKwkgICAgZWxzZSB7IAorCSAgICAgICAgLy8gd2UgYXJlIGFkZGluZyB0byBleGlzdGluZyBjb250cmFjdGlvbgorCSAgICAgICAgLy8gdGhlcmUgd2VyZSBhbHJlYWR5IHNvbWUgZWxlbWVudHMgaW4gdGhlIHRhYmxlLCBzbyB3ZSBuZWVkIHRvIGFkZCAKKwkgICAgICAgIC8vIGEgbmV3IGNvbnRyYWN0aW9uIAorCSAgICAgICAgLy8gVHdvIHRoaW5ncyBjYW4gaGFwcGVuIGhlcmU6IGVpdGhlciB0aGUgY29kZXBvaW50IGlzIGFscmVhZHkgaW4gCisJICAgICAgICAvLyB0aGUgdGFibGUsIG9yIGl0IGlzIG5vdAorCSAgICAgICAgaW50IHBvc2l0aW9uID0gZmluZENQKGNvbnRyYWN0aW9ucywgZXhpc3RpbmdDRSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQubV9jUG9pbnRzXy5jaGFyQXQoZWxlbWVudC5tX2NQb2ludHNPZmZzZXRfKSk7CisJICAgICAgICBpZiAocG9zaXRpb24gPiAwKSB7ICAgICAgIAorCSAgICAgICAgICAgIC8vIGlmIGl0IGlzIHdlIGp1c3QgY29udGludWUgZG93biB0aGUgY2hhaW4gCisJICAgICAgICAgICAgaW50IGVDRSA9IGdldENFKGNvbnRyYWN0aW9ucywgZXhpc3RpbmdDRSwgcG9zaXRpb24pOworCSAgICAgICAgICAgIGludCBuZXdDRSA9IHByb2Nlc3NDb250cmFjdGlvbihjb250cmFjdGlvbnMsIGVsZW1lbnQsIGVDRSk7CisJICAgICAgICAgICAgc2V0Q29udHJhY3Rpb24oY29udHJhY3Rpb25zLCBleGlzdGluZ0NFLCBwb3NpdGlvbiwgCisJICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50Lm1fY1BvaW50c18uY2hhckF0KGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0XyksIAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0NFKTsKKwkgICAgICAgIH0gCisJICAgICAgICBlbHNlIHsgIAorCSAgICAgICAgICAgIC8vIGlmIGl0IGlzbid0LCB3ZSB3aWxsIGhhdmUgdG8gY3JlYXRlIGEgbmV3IHNlcXVlbmNlIAorCSAgICAgICAgICAgIGludCBuZXdDRSA9IHByb2Nlc3NDb250cmFjdGlvbihjb250cmFjdGlvbnMsIGVsZW1lbnQsIAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDRV9OT1RfRk9VTkRfKTsKKwkgICAgICAgICAgICBpbnNlcnRDb250cmFjdGlvbihjb250cmFjdGlvbnMsIGV4aXN0aW5nQ0UsIAorCSAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX2NQb2ludHNfLmNoYXJBdChlbGVtZW50Lm1fY1BvaW50c09mZnNldF8pLCAKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdDRSk7CisJICAgICAgICB9CisJICAgIH0KKwkgICAgZWxlbWVudC5tX2NQb2ludHNPZmZzZXRfIC0tOworCSAgICByZXR1cm4gZXhpc3RpbmdDRTsKKwl9CisJCisJLyoqCisJICogQ2hlY2tzIGlmIENFIGJlbG9uZ3MgdG8gdGhlIGNvbnRyYWN0aW9uIHRhYmxlCisJICogQHBhcmFtIENFIGNvbGxhdGlvbiBlbGVtZW50IHRvIHRlc3QKKwkgKiBAcmV0dXJuIHRydWUgaWYgQ0UgYmVsb25ncyB0byB0aGUgY29udHJhY3Rpb24gdGFibGUKKwkgKi8KKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIGlzQ29udHJhY3Rpb25UYWJsZUVsZW1lbnQoaW50IENFKSAKKwl7IAorCQlyZXR1cm4gaXNTcGVjaWFsKENFKSAKKyAgICAgICAgICAgICAgICYmIChnZXRDRVRhZyhDRSkgPT0gQ0VfQ09OVFJBQ1RJT05fVEFHXworCQkgICAgICAgICAgIHx8IGdldENFVGFnKENFKSA9PSBDRV9TUEVDX1BST0NfVEFHXyk7CisJfQorCQorCS8qKgorCSAqIEdldHMgdGhlIGNvZGVwb2ludCAKKwkgKiBAcGFyYW0gdGFibGUgY29udHJhY3Rpb24gdGFibGUKKwkgKiBAcGFyYW0gZWxlbWVudCBvZmZzZXQgdG8gdGhlIGNvbnRyYWN0aW9uIGVsZW1lbnQgaW4gdGhlIHRhYmxlCisJICogQHBhcmFtIGNvZGVQb2ludCBjb2RlIHBvaW50IHRvIGxvb2sgZm9yCisJICogQHJldHVybiB0aGUgb2Zmc2V0IHRvIHRoZSBjb2RlIHBvaW50CisJICovCisJcHJpdmF0ZSBzdGF0aWMgaW50IGZpbmRDUChDb250cmFjdGlvblRhYmxlIHRhYmxlLCBpbnQgZWxlbWVudCwgCisJICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGNvZGVQb2ludCkgCisJeworCQlCYXNpY0NvbnRyYWN0aW9uVGFibGUgdGJsID0gZ2V0QmFzaWNDb250cmFjdGlvblRhYmxlKHRhYmxlLCBlbGVtZW50KTsKKwkJaWYgKHRibCA9PSBudWxsKSB7CisJICAgICAgICByZXR1cm4gLTE7CisJICAgIH0KKwkKKwkgICAgaW50IHBvc2l0aW9uID0gMDsKKwkgICAgd2hpbGUgKGNvZGVQb2ludCA+IHRibC5tX2NvZGVQb2ludHNfLmNoYXJBdChwb3NpdGlvbikpIHsKKwkgICAgICAgICBwb3NpdGlvbiArKzsKKwkgICAgICAgICBpZiAocG9zaXRpb24gPiB0YmwubV9jb2RlUG9pbnRzXy5sZW5ndGgoKSkgeworCSAgICAgICAgICAgICByZXR1cm4gLTE7CisJICAgICAgICAgfQorCSAgICB9CisJICAgIGlmIChjb2RlUG9pbnQgPT0gdGJsLm1fY29kZVBvaW50c18uY2hhckF0KHBvc2l0aW9uKSkgeworCSAgICAgICAgcmV0dXJuIHBvc2l0aW9uOworCSAgICB9IAorCSAgICBlbHNlIHsKKwkgICAgICAgIHJldHVybiAtMTsKKwkgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGNvbnRyYWN0aW9uIGVsZW1lbnQgb3V0IG9mIHRoZSBjb250cmFjdGlvbiB0YWJsZQorICAgICAqIEBwYXJhbSB0YWJsZSBjb250cmFjdGlvbiB0YWJsZQorICAgICAqIEBwYXJhbSBvZmZzZXQgdG8gdGhlIGVsZW1lbnQgaW4gdGhlIGNvbnRyYWN0aW9uIHRhYmxlCisgICAgICogQHJldHVybiBiYXNpYyBjb250cmFjdGlvbiBlbGVtZW50IGF0IG9mZnNldCBpbiB0aGUgY29udHJhY3Rpb24gdGFibGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBCYXNpY0NvbnRyYWN0aW9uVGFibGUgZ2V0QmFzaWNDb250cmFjdGlvblRhYmxlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb250cmFjdGlvblRhYmxlIHRhYmxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0KSAKKyAgICB7CisgICAgCW9mZnNldCAmPSAweEZGRkZGRjsKKyAgICAJaWYgKG9mZnNldCA9PSAweEZGRkZGRikgeworICAgIAkJcmV0dXJuIG51bGw7CisgICAgCX0KKwkgICAgcmV0dXJuIChCYXNpY0NvbnRyYWN0aW9uVGFibGUpdGFibGUubV9lbGVtZW50c18uZ2V0KG9mZnNldCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENoYW5nZXMgdGhlIGNvbnRyYWN0aW9uIGVsZW1lbnQKKyAgICAgKiBAcGFyYW0gdGFibGUgY29udHJhY3Rpb24gdGFibGUKKyAgICAgKiBAcGFyYW0gZWxlbWVudCBvZmZzZXQgdG8gdGhlIGVsZW1lbnQgaW4gdGhlIGNvbnRyYWN0aW9uIHRhYmxlCisgICAgICogQHBhcmFtIGNvZGVQb2ludCBjb2RlcG9pbnQgCisgICAgICogQHBhcmFtIG5ld0NFIG5ldyBjb2xsYXRpb24gZWxlbWVudAorICAgICAqIEByZXR1cm4gYmFzaWMgY29udHJhY3Rpb24gZWxlbWVudCBhdCBvZmZzZXQgaW4gdGhlIGNvbnRyYWN0aW9uIHRhYmxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGNoYW5nZUNvbnRyYWN0aW9uKENvbnRyYWN0aW9uVGFibGUgdGFibGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZWxlbWVudCwgY2hhciBjb2RlUG9pbnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbmV3Q0UpIAorICAgIHsKKwkgICAgQmFzaWNDb250cmFjdGlvblRhYmxlIHRibCA9IGdldEJhc2ljQ29udHJhY3Rpb25UYWJsZSh0YWJsZSwgZWxlbWVudCk7CQorCSAgICBpZiAodGJsID09IG51bGwpIHsKKwkgICAgICAgIHJldHVybiAwOworCSAgICB9CisJICAgIGludCBwb3NpdGlvbiA9IDA7CisJICAgIHdoaWxlIChjb2RlUG9pbnQgPiB0YmwubV9jb2RlUG9pbnRzXy5jaGFyQXQocG9zaXRpb24pKSB7CisJICAgICAgICBwb3NpdGlvbiArKzsKKwkgICAgICAgIGlmIChwb3NpdGlvbiA+IHRibC5tX2NvZGVQb2ludHNfLmxlbmd0aCgpKSB7CisJICAgICAgICAgICAgcmV0dXJuIENFX05PVF9GT1VORF87CisJICAgICAgICB9CisJICAgIH0KKwkgICAgaWYgKGNvZGVQb2ludCA9PSB0YmwubV9jb2RlUG9pbnRzXy5jaGFyQXQocG9zaXRpb24pKSB7CisJICAgICAgICB0YmwubV9DRXNfLnNldChwb3NpdGlvbiwgbmV3IEludGVnZXIobmV3Q0UpKTsKKwkgICAgICAgIHJldHVybiBlbGVtZW50ICYgMHhGRkZGRkY7CisJICAgIH0gCisJICAgIGVsc2UgeworCSAgICAgICAgcmV0dXJuIENFX05PVF9GT1VORF87CisJICAgIH0KKwl9CisJCisJLyoqIAorCSAqIFNldHMgYSBwYXJ0IG9mIGNvbnRyYWN0aW9uIHNlcXVlbmNlIGluIHRhYmxlLiBJZiBlbGVtZW50IGlzIG5vbiAKKwkgKiBleGlzdGFudCwgaXQgY3JlYXRlcyBvbi4gUmV0dXJucyBlbGVtZW50IGhhbmRsZS4KKwkgKiBAcGFyYW0gdGFibGUgY29udHJhY3Rpb24gdGFibGUKKwkgKiBAcGFyYW0gZWxlbWVudCBvZmZzZXQgdG8gdGhlIGNvbnRyYWN0aW9uIHRhYmxlCisJICogQHBhcmFtIG9mZnNldAorCSAqIEBwYXJhbSBjb2RlUG9pbnQgY29udHJhY3Rpb24gY2hhcmFjdGVyCisJICogQHBhcmFtIHZhbHVlIGNlIHZhbHVlCisJICogQHJldHVybiBuZXcgY29udHJhY3Rpb24gY2UKKwkgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgc2V0Q29udHJhY3Rpb24oQ29udHJhY3Rpb25UYWJsZSB0YWJsZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBlbGVtZW50LCBpbnQgb2Zmc2V0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBjb2RlUG9pbnQsIGludCB2YWx1ZSkgCisgICAgeworICAgIAllbGVtZW50ICY9IDB4RkZGRkZGOworCSAgICBCYXNpY0NvbnRyYWN0aW9uVGFibGUgdGJsID0gZ2V0QmFzaWNDb250cmFjdGlvblRhYmxlKHRhYmxlLCBlbGVtZW50KTsJCisJICAgIGlmICh0YmwgPT0gbnVsbCkgeworCSAgICAgICAgdGJsID0gYWRkQUNvbnRyYWN0aW9uRWxlbWVudCh0YWJsZSk7CisJICAgICAgICBlbGVtZW50ID0gdGFibGUubV9lbGVtZW50c18uc2l6ZSgpIC0gMTsKKwkgICAgfQorCQorCSAgICB0YmwubV9DRXNfLnNldChvZmZzZXQsIG5ldyBJbnRlZ2VyKHZhbHVlKSk7CisJICAgIHRibC5tX2NvZGVQb2ludHNfLnNldENoYXJBdChvZmZzZXQsIGNvZGVQb2ludCk7CisJICAgIHJldHVybiBjb25zdHJ1Y3RTcGVjaWFsQ0UodGFibGUubV9jdXJyZW50VGFnXywgZWxlbWVudCk7CisJfQorCQorCS8qKiAKKwkgKiBJbnNlcnRzIGEgcGFydCBvZiBjb250cmFjdGlvbiBzZXF1ZW5jZSBpbiB0YWJsZS4gU2VxdWVuY2VzIGJlaGluZCB0aGUgCisJICogb2Zmc2V0IGFyZSBtb3ZlZCBiYWNrLiBJZiBlbGVtZW50IGlzIG5vbiBleGlzdGVudCwgaXQgY3JlYXRlcyBvbi4gCisJICogQHBhcmFtIHRhYmxlIGNvbnRyYWN0aW9uCisJICogQHBhcmFtIGVsZW1lbnQgb2Zmc2V0IHRvIHRoZSB0YWJsZSBjb250cmFjdGlvbgorCSAqIEBwYXJhbSBjb2RlUG9pbnQgY29kZSBwb2ludAorCSAqIEBwYXJhbSB2YWx1ZSBjb2xsYXRpb24gZWxlbWVudCB2YWx1ZQorCSAqIEByZXR1cm4gY29udHJhY3Rpb24gY29sbGF0aW9uIGVsZW1lbnQKKwkgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgaW5zZXJ0Q29udHJhY3Rpb24oQ29udHJhY3Rpb25UYWJsZSB0YWJsZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBlbGVtZW50LCBjaGFyIGNvZGVQb2ludCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB2YWx1ZSkgCisgICAgeworCSAgICBlbGVtZW50ICY9IDB4RkZGRkZGOworCSAgICBCYXNpY0NvbnRyYWN0aW9uVGFibGUgdGJsID0gZ2V0QmFzaWNDb250cmFjdGlvblRhYmxlKHRhYmxlLCBlbGVtZW50KTsKKwkgICAgaWYgKHRibCA9PSBudWxsKSB7CisJICAgICAgICB0YmwgPSBhZGRBQ29udHJhY3Rpb25FbGVtZW50KHRhYmxlKTsKKwkgICAgICAgIGVsZW1lbnQgPSB0YWJsZS5tX2VsZW1lbnRzXy5zaXplKCkgLSAxOworCSAgICB9CisJCisJICAgIGludCBvZmZzZXQgPSAwOworCSAgICB3aGlsZSAodGJsLm1fY29kZVBvaW50c18uY2hhckF0KG9mZnNldCkgPCBjb2RlUG9pbnQgCisJICAgICAgICAgICAmJiBvZmZzZXQgPCB0YmwubV9jb2RlUG9pbnRzXy5sZW5ndGgoKSkgeworCSAgICAgICAgb2Zmc2V0ICsrOworCSAgICB9CisJCisJICAgIHRibC5tX0NFc18uaW5zZXJ0RWxlbWVudEF0KG5ldyBJbnRlZ2VyKHZhbHVlKSwgb2Zmc2V0KTsKKwkgICAgdGJsLm1fY29kZVBvaW50c18uaW5zZXJ0KG9mZnNldCwgY29kZVBvaW50KTsKKwkKKwkgICAgcmV0dXJuIGNvbnN0cnVjdFNwZWNpYWxDRSh0YWJsZS5tX2N1cnJlbnRUYWdfLCBlbGVtZW50KTsKKwl9CisJCisJLyoqCisJICogRmluYWxpemUgYWRkaXRpb24KKwkgKiBAcGFyYW0gdCBidWlsZCB0YWJsZQorCSAqIEBwYXJhbSBlbGVtZW50IHRvIGFkZAorCSAqLworCXByaXZhdGUgZmluYWwgc3RhdGljIGludCBmaW5hbGl6ZUFkZGl0aW9uKEJ1aWxkVGFibGUgdCwgRWxlbWVudHMgZWxlbWVudCkgCisJeworCQlpbnQgQ0UgPSBDRV9OT1RfRk9VTkRfOworICAgICAgICAvLyBUaGlzIHNob3VsZCBhZGQgYSBjb21wbGV0ZWx5IGlnbm9yYWJsZSBlbGVtZW50IHRvIHRoZSAgCisgICAgICAgIC8vIHVuc2FmZSB0YWJsZSwgc28gdGhhdCBiYWNrd2FyZCBpdGVyYXRpb24gd2lsbCBza2lwIAorICAgICAgICAvLyBvdmVyIGl0IHdoZW4gdHJlYXRpbmcgY29udHJhY3Rpb25zLiAKKyAgICAgICAgaWYgKGVsZW1lbnQubV9tYXBDRV8gPT0gMCkgeyAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZWxlbWVudC5tX2NQb2ludHNfLmxlbmd0aCgpOyBpICsrKSB7IAorICAgICAgICAgICAgICAgIGNoYXIgY2ggPSBlbGVtZW50Lm1fY1BvaW50c18uY2hhckF0KGkpOworICAgICAgICAgICAgICAgIGlmICghVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjaCkpIHsgCisgICAgICAgICAgICAgICAgICAgIHVuc2FmZUNQU2V0KHQubV91bnNhZmVDUF8sIGNoKTsgCisgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIH0gCisgICAgICAgIH0gCisKKwkJaWYgKGVsZW1lbnQubV9jUG9pbnRzXy5sZW5ndGgoKSAtIGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0XyA+IDEpIHsgCisJCSAgICAvLyB3ZSdyZSBhZGRpbmcgYSBjb250cmFjdGlvbgorCQkgICAgaW50IGNwID0gVVRGMTYuY2hhckF0KGVsZW1lbnQubV9jUG9pbnRzXywgZWxlbWVudC5tX2NQb2ludHNPZmZzZXRfKTsKKwkJICAgIENFID0gdC5tX21hcHBpbmdfLmdldFZhbHVlKGNwKTsKKwkJICAgIENFID0gYWRkQ29udHJhY3Rpb24odCwgQ0UsIGVsZW1lbnQpOworCQl9IAorCQllbHNlIHsgCisJCSAgICAvLyBlYXN5IGNhc2UKKwkJICAgIENFID0gdC5tX21hcHBpbmdfLmdldFZhbHVlKGVsZW1lbnQubV9jUG9pbnRzXy5jaGFyQXQoCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50Lm1fY1BvaW50c09mZnNldF8pKTsKKwkJCisJCSAgICBpZiAoQ0UgIT0gQ0VfTk9UX0ZPVU5EXykgeworCQkgICAgICAgIGlmKGlzQ29udHJhY3Rpb25UYWJsZUVsZW1lbnQoQ0UpKSB7IAorCQkgICAgICAgICAgICAvLyBhZGRpbmcgYSBub24gY29udHJhY3Rpb24gZWxlbWVudCAodGhhaSwgZXhwYW5zaW9uLCAKKwkJICAgICAgICAgICAgLy8gc2luZ2xlKSB0byBhbHJlYWR5IGV4aXN0aW5nIGNvbnRyYWN0aW9uIAorCQkJICAgICAgICBpZiAoIWlzUHJlZml4KGVsZW1lbnQubV9tYXBDRV8pKSB7IAorCQkJICAgICAgICAJLy8gd2UgY2Fubm90IHJlZW50ZXIgcHJlZml4IGVsZW1lbnRzIC0gYXMgd2UgYXJlIGdvaW5nIAorCQkJICAgICAgICAJLy8gdG8gY3JlYXRlIGEgZGVhZCBsb29wCisJCQkgICAgICAgICAgICAvLyBPbmx5IGV4cGFuc2lvbnMgYW5kIHJlZ3VsYXIgQ0VzIGNhbiBnbyBoZXJlLi4uIAorCQkJICAgICAgICAgICAgLy8gQ29udHJhY3Rpb25zIHdpbGwgbmV2ZXIgaGFwcGVuIGluIHRoaXMgcGxhY2UKKwkJCSAgICAgICAgICAgIHNldENvbnRyYWN0aW9uKHQubV9jb250cmFjdGlvbnNfLCBDRSwgMCwgKGNoYXIpMCwgCisJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50Lm1fbWFwQ0VfKTsKKwkJCSAgICAgICAgICAgIC8vIFRoaXMgbG9vcCBoYXMgdG8gY2hhbmdlIHRoZSBDRSBhdCB0aGUgZW5kIG9mIAorCQkJICAgICAgICAgICAgLy8gY29udHJhY3Rpb24gUkVETyEKKwkJCSAgICAgICAgICAgIGNoYW5nZUxhc3RDRSh0Lm1fY29udHJhY3Rpb25zXywgQ0UsIGVsZW1lbnQubV9tYXBDRV8pOworCQkJICAgICAgICB9CisJCSAgICAgICAgfSAKKwkJICAgICAgICBlbHNlIHsKKwkJICAgICAgICAgICAgdC5tX21hcHBpbmdfLnNldFZhbHVlKGVsZW1lbnQubV9jUG9pbnRzXy5jaGFyQXQoCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0XyksIAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX21hcENFXyk7CisJCSAgICAgICAgfQorCQkgICAgfSAKKwkJICAgIGVsc2UgeworCQkgICAgICAgIHQubV9tYXBwaW5nXy5zZXRWYWx1ZShlbGVtZW50Lm1fY1BvaW50c18uY2hhckF0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50Lm1fY1BvaW50c09mZnNldF8pLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX21hcENFXyk7CisJCSAgICB9CisJCX0KKwkJcmV0dXJuIENFOworCX0KKwkKKwkvKiogCisJICogTm90ZSByZWdhcmRpbmcgc3Vycm9nYXRlIGhhbmRsaW5nOiBXZSBhcmUgaW50ZXJlc3RlZCBvbmx5IGluIHRoZSBzaW5nbGUKKwkgKiBvciBsZWFkaW5nIHN1cnJvZ2F0ZXMgaW4gYSBjb250cmFjdGlvbi4gSWYgYSBzdXJyb2dhdGUgaXMgc29tZXdoZXJlIGVsc2UKKwkgKiBpbiB0aGUgY29udHJhY3Rpb24sIGl0IGlzIGdvaW5nIHRvIGJlIGhhbmRsZWQgYXMgYSBwYWlyIG9mIGNvZGUgdW5pdHMsCisJICogYXMgaXQgZG9lc24ndCBhZmZlY3QgdGhlIHBlcmZvcm1hbmNlIEFORCBoYW5kbGluZyBzdXJyb2dhdGVzIHNwZWNpYWxseQorCSAqIHdvdWxkIGNvbXBsaWNhdGUgY29kZSB3YXkgdG9vIG11Y2guCisJICovCisJcHJpdmF0ZSBzdGF0aWMgaW50IGFkZENvbnRyYWN0aW9uKEJ1aWxkVGFibGUgdCwgaW50IENFLCBFbGVtZW50cyBlbGVtZW50KSAKKyAgICB7CisJICAgIENvbnRyYWN0aW9uVGFibGUgY29udHJhY3Rpb25zID0gdC5tX2NvbnRyYWN0aW9uc187CisJICAgIGNvbnRyYWN0aW9ucy5tX2N1cnJlbnRUYWdfID0gQ0VfQ09OVFJBQ1RJT05fVEFHXzsKKwkKKwkgICAgLy8gRmlyc3Qgd2UgbmVlZCB0byBjaGVjayBpZiBjb250cmFjdGlvbnMgc3RhcnRzIHdpdGggYSBzdXJyb2dhdGUKKwkgICAgaW50IGNwID0gVVRGMTYuY2hhckF0KGVsZW1lbnQubV9jUG9pbnRzXywgMCk7CisJICAgIGludCBjcHNpemUgPSAxOworCSAgICBpZiAoVUNoYXJhY3Rlci5pc1N1cHBsZW1lbnRhcnkoY3ApKSB7CisJICAgIAljcHNpemUgPSAyOworCSAgICB9CisJICAgIGlmIChjcHNpemUgPCBlbGVtZW50Lm1fY1BvaW50c18ubGVuZ3RoKCkpIHsgCisJICAgIAkvLyBUaGlzIGlzIGEgcmVhbCBjb250cmFjdGlvbiwgaWYgdGhlcmUgYXJlIG90aGVyIGNoYXJhY3RlcnMgYWZ0ZXIgCisJICAgIAkvLyB0aGUgZmlyc3QKKwkgICAgCWludCBzaXplID0gZWxlbWVudC5tX2NQb2ludHNfLmxlbmd0aCgpIC0gZWxlbWVudC5tX2NQb2ludHNPZmZzZXRfOworCSAgICAgICAgZm9yIChpbnQgaiA9IDE7IGogPCBzaXplOyBqICsrKSB7ICAgCisJICAgICAgICAgICAgLy8gRmlyc3QgYWRkIGNvbnRyYWN0aW9uIGNoYXJzIHRvIHVuc2FmZSBDUCBoYXNoIHRhYmxlIAorCSAgICAgICAgICAgIC8vIFVubGVzcyBpdCBpcyBhIHRyYWlsIHN1cnJvZ2F0ZSwgd2hpY2ggaXMgaGFuZGxlZCAKKwkgICAgICAgICAgICAvLyBhbGdvcml0bWljYWxseSBhbmQgc2hvdWxkbid0IHRha2UgdXAgc3BhY2UgaW4gdGhlIHRhYmxlLgorCSAgICAgICAgICAgIGlmICghVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShlbGVtZW50Lm1fY1BvaW50c18uY2hhckF0KAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX2NQb2ludHNPZmZzZXRfICsgaikpKSB7CisJICAgICAgICAgICAgICAgICB1bnNhZmVDUFNldCh0Lm1fdW5zYWZlQ1BfLCAKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQubV9jUG9pbnRzXy5jaGFyQXQoCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0XyArIGopKTsKKwkgICAgICAgICAgICB9CisJICAgICAgICB9CisJICAgICAgICAvLyBBZGQgdGhlIGxhc3QgY2hhciBvZiB0aGUgY29udHJhY3Rpb24gdG8gdGhlIGNvbnRyYWN0aW9uLWVuZCAKKwkgICAgICAgIC8vIGhhc2ggdGFibGUuIHVubGVzcyBpdCBpcyBhIHRyYWlsIHN1cnJvZ2F0ZSwgd2hpY2ggaXMgaGFuZGxlZCAKKwkgICAgICAgIC8vIGFsZ29yaXRobWljYWxseSBhbmQgc2hvdWxkbid0IGJlIGluIHRoZSB0YWJsZQorCSAgICAgICAgaWYgKCFVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGVsZW1lbnQubV9jUG9pbnRzXy5jaGFyQXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQubV9jUG9pbnRzXy5sZW5ndGgoKSAtMSkpKSB7CisJICAgICAgICAgICAgQ29udHJFbmRDUFNldCh0Lm1fY29udHJFbmRDUF8sIAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX2NQb2ludHNfLmNoYXJBdCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50Lm1fY1BvaW50c18ubGVuZ3RoKCkgLTEpKTsKKwkgICAgICAgIH0KKwkKKwkgICAgICAgIC8vIElmIHRoZXJlIGFyZSBhbnkgSmFtb3MgaW4gdGhlIGNvbnRyYWN0aW9uLCB3ZSBzaG91bGQgdHVybiBvbiAKKwkgICAgICAgIC8vIHNwZWNpYWwgcHJvY2Vzc2luZyBmb3IgSmFtb3MKKwkgICAgICAgIGlmIChpc0phbW8oZWxlbWVudC5tX2NQb2ludHNfLmNoYXJBdChlbGVtZW50Lm1fY1BvaW50c09mZnNldF8pKSkgeworCSAgICAgICAgICAgIHQubV9jb2xsYXRvcl8ubV9pc0phbW9TcGVjaWFsXyA9IHRydWU7CisJICAgICAgICB9CisJICAgICAgICAvLyB0aGVuIHdlIG5lZWQgdG8gZGVhbCB3aXRoIGl0IAorCSAgICAgICAgLy8gd2UgY291bGQgYXJlYWR5IGhhdmUgc29tZXRoaW5nIGluIHRhYmxlIC0gb3Igd2UgbWlnaHQgbm90IAorCSAgICAgICAgZWxlbWVudC5tX2NQb2ludHNPZmZzZXRfICs9IGNwc2l6ZTsKKwkgICAgICAgIGlmICghaXNDb250cmFjdGlvbihDRSkpIHsgCisJCSAgICAgICAgLy8gaWYgaXQgd2Fzbid0IGNvbnRyYWN0aW9uLCB3ZSB3b3VsZG4ndCBlbmQgdXAgaGVyZQorCQkgICAgICAgIGludCBmaXJzdENvbnRyYWN0aW9uT2Zmc2V0ID0gYWRkQ29udHJhY3Rpb24oY29udHJhY3Rpb25zLCAKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICBDT05UUkFDVElPTl9UQUJMRV9ORVdfRUxFTUVOVF8sIChjaGFyKTAsIENFKTsKKwkJICAgICAgICBpbnQgbmV3Q0UgPSBwcm9jZXNzQ29udHJhY3Rpb24oY29udHJhY3Rpb25zLCBlbGVtZW50LCAKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0VfTk9UX0ZPVU5EXyk7CisJCSAgICAgICAgYWRkQ29udHJhY3Rpb24oY29udHJhY3Rpb25zLCBmaXJzdENvbnRyYWN0aW9uT2Zmc2V0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX2NQb2ludHNfLmNoYXJBdChlbGVtZW50Lm1fY1BvaW50c09mZnNldF8pLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdDRSk7CisJCSAgICAgICAgYWRkQ29udHJhY3Rpb24oY29udHJhY3Rpb25zLCBmaXJzdENvbnRyYWN0aW9uT2Zmc2V0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcikweEZGRkYsIENFKTsKKwkJICAgICAgICBDRSA9IGNvbnN0cnVjdFNwZWNpYWxDRShDRV9DT05UUkFDVElPTl9UQUdfLCAKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdENvbnRyYWN0aW9uT2Zmc2V0KTsKKwkJICAgIH0gCisJCSAgICBlbHNlIHsgCisJCSAgICAgICAgLy8gd2UgYXJlIGFkZGluZyB0byBleGlzdGluZyBjb250cmFjdGlvbiAKKwkJICAgICAgICAvLyB0aGVyZSB3ZXJlIGFscmVhZHkgc29tZSBlbGVtZW50cyBpbiB0aGUgdGFibGUsIHNvIHdlIG5lZWQgdG8gCisJCSAgICAgICAgLy8gYWRkIGEgbmV3IGNvbnRyYWN0aW9uCisJCSAgICAgICAgLy8gVHdvIHRoaW5ncyBjYW4gaGFwcGVuIGhlcmU6IGVpdGhlciB0aGUgY29kZXBvaW50IGlzIGFscmVhZHkgCisJCSAgICAgICAgLy8gaW4gdGhlIHRhYmxlLCBvciBpdCBpcyBub3QgCisJCSAgICAgICAgaW50IHBvc2l0aW9uID0gZmluZENQKGNvbnRyYWN0aW9ucywgQ0UsIAorICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50Lm1fY1BvaW50c18uY2hhckF0KGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0XykpOworCQkgICAgICAgIGlmIChwb3NpdGlvbiA+IDApIHsgICAgICAgCisJCSAgICAgICAgICAgIC8vIGlmIGl0IGlzIHdlIGp1c3QgY29udGludWUgZG93biB0aGUgY2hhaW4KKwkJICAgICAgICAgICAgaW50IGVDRSA9IGdldENFKGNvbnRyYWN0aW9ucywgQ0UsIHBvc2l0aW9uKTsKKwkJICAgICAgICAgICAgaW50IG5ld0NFID0gcHJvY2Vzc0NvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgZWxlbWVudCwgZUNFKTsKKwkJICAgICAgICAgICAgc2V0Q29udHJhY3Rpb24oY29udHJhY3Rpb25zLCBDRSwgcG9zaXRpb24sIAorCQkgICAgICAgICAgICAgICAgICBlbGVtZW50Lm1fY1BvaW50c18uY2hhckF0KGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0XyksIAorCQkgICAgICAgICAgICAgICAgICBuZXdDRSk7CisJCSAgICAgICAgfSAKKwkJICAgICAgICBlbHNlIHsgICAgICAgICAgICAgICAgICAKKwkJICAgICAgICAgICAgLy8gaWYgaXQgaXNuJ3QsIHdlIHdpbGwgaGF2ZSB0byBjcmVhdGUgYSBuZXcgc2VxdWVuY2UgCisJCSAgICAgICAgICAgIGludCBuZXdDRSA9IHByb2Nlc3NDb250cmFjdGlvbihjb250cmFjdGlvbnMsIGVsZW1lbnQsIAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0VfTk9UX0ZPVU5EXyk7CisJCSAgICAgICAgICAgIGluc2VydENvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgQ0UsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX2NQb2ludHNfLmNoYXJBdChlbGVtZW50Lm1fY1BvaW50c09mZnNldF8pLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3Q0UpOworCQkgICAgICAgIH0KKwkJICAgIH0KKwkJICAgIGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0XyAtPSBjcHNpemU7CisJICAgICAgICB0Lm1fbWFwcGluZ18uc2V0VmFsdWUoY3AsIENFKTsKKwkgICAgfSAKKwkgICAgZWxzZSBpZiAoIWlzQ29udHJhY3Rpb24oQ0UpKSB7IAorCSAgICAgICAgLy8gdGhpcyBpcyBqdXN0IGEgc3Vycm9nYXRlLCBhbmQgdGhlcmUgaXMgbm8gY29udHJhY3Rpb24gCisJICAgICAgICB0Lm1fbWFwcGluZ18uc2V0VmFsdWUoY3AsIGVsZW1lbnQubV9tYXBDRV8pOworCSAgICB9IAorCSAgICBlbHNlIHsgCisJICAgICAgICAvLyBmaWxsIG91dCB0aGUgZmlyc3Qgc3RhZ2Ugb2YgdGhlIGNvbnRyYWN0aW9uIHdpdGggdGhlIHN1cnJvZ2F0ZSAKKwkgICAgICAgIC8vIENFIAorCSAgICAgICAgY2hhbmdlQ29udHJhY3Rpb24oY29udHJhY3Rpb25zLCBDRSwgKGNoYXIpMCwgZWxlbWVudC5tX21hcENFXyk7CisJICAgICAgICBjaGFuZ2VDb250cmFjdGlvbihjb250cmFjdGlvbnMsIENFLCAoY2hhcikweEZGRkYsIGVsZW1lbnQubV9tYXBDRV8pOworCSAgICB9CisJICAgIHJldHVybiBDRTsKKwl9CisJCisJLyoqIAorCSAqIHRoaXMgaXMgZm9yIGFkZGluZyBub24gY29udHJhY3Rpb25zIAorCSAqIEBwYXJhbSB0YWJsZSBjb250cmFjdGlvbiB0YWJsZQorCSAqIEBwYXJhbSBlbGVtZW50IG9mZnNldCB0byB0aGUgY29udHJhY3Rpb24gdGFibGUKKwkgKiBAcGFyYW0gdmFsdWUgY29sbGF0aW9uIGVsZW1lbnQgdmFsdWUKKwkgKiBAcmV0dXJuIG5ldyBjb2xsYXRpb24gZWxlbWVudCAKKwkgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgY2hhbmdlTGFzdENFKENvbnRyYWN0aW9uVGFibGUgdGFibGUsIGludCBlbGVtZW50LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB2YWx1ZSkgCisgICAgeworCSAgICBCYXNpY0NvbnRyYWN0aW9uVGFibGUgdGJsID0gZ2V0QmFzaWNDb250cmFjdGlvblRhYmxlKHRhYmxlLCBlbGVtZW50KTsKKwkgICAgaWYgKHRibCA9PSBudWxsKSB7CisJICAgICAgICByZXR1cm4gMDsKKwkgICAgfQorCQorCSAgICB0YmwubV9DRXNfLnNldCh0YmwubV9DRXNfLnNpemUoKSAtIDEsIG5ldyBJbnRlZ2VyKHZhbHVlKSk7CisJICAgIHJldHVybiBjb25zdHJ1Y3RTcGVjaWFsQ0UodGFibGUubV9jdXJyZW50VGFnXywgZWxlbWVudCAmIDB4RkZGRkZGKTsKKwl9CisgICAgCisgICAgLyoqCisgICAgICogR2l2ZW4gYSBzZXQgb2YgcmFuZ2VzIGNhbGN1bGF0ZWQgYnkgYWxsb2NXZWlnaHRzKCksIGl0ZXJhdGUgdGhyb3VnaCB0aGUgCisgICAgICogd2VpZ2h0cy4gU2V0cyB0aGUgbmV4dCB3ZWlnaHQgaW4gY2VnZW5lcmF0b3IubV9jdXJyZW50Xy4KKyAgICAgKiBAcGFyYW0gY2VnZW5lcmF0b3Igb2JqZWN0IHRoYXQgY29udGFpbnMgcmFuZ2VzIHdlaWdodCByYW5nZSBhcnJheSBhbmQKKyAgICAgKiAgICAgICAgaXRzIHJhbmdlQ291bnQKKyAgICAgKiBAcmV0dXJuIHRoZSBuZXh0IHdlaWdodAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBuZXh0V2VpZ2h0KENFR2VuZXJhdG9yIGNlZ2VuZXJhdG9yKSAKKyAgICB7CisgICAgICAgIGlmIChjZWdlbmVyYXRvci5tX3Jhbmdlc0xlbmd0aF8gPiAwKSB7CisgICAgICAgICAgICAvLyBnZXQgbWF4Qnl0ZSBmcm9tIHRoZSAuY291bnQgZmllbGQKKyAgICAgICAgICAgIGludCBtYXhCeXRlID0gY2VnZW5lcmF0b3IubV9yYW5nZXNfWzBdLm1fY291bnRfOworICAgICAgICAgICAgLy8gZ2V0IHRoZSBuZXh0IHdlaWdodCAKKyAgICAgICAgICAgIGludCB3ZWlnaHQgPSBjZWdlbmVyYXRvci5tX3Jhbmdlc19bMF0ubV9zdGFydF87CisgICAgICAgICAgICBpZiAod2VpZ2h0ID09IGNlZ2VuZXJhdG9yLm1fcmFuZ2VzX1swXS5tX2VuZF8pIHsKKyAgICAgICAgICAgICAgICAvLyB0aGlzIHJhbmdlIGlzIGZpbmlzaGVkLCByZW1vdmUgaXQgYW5kIG1vdmUgdGhlIGZvbGxvd2luZyAKKyAgICAgICAgICAgICAgICAvLyBvbmVzIHVwIAorICAgICAgICAgICAgICAgIGNlZ2VuZXJhdG9yLm1fcmFuZ2VzTGVuZ3RoXyAtLTsKKyAgICAgICAgICAgICAgICBpZiAoY2VnZW5lcmF0b3IubV9yYW5nZXNMZW5ndGhfID4gMCkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGNlZ2VuZXJhdG9yLm1fcmFuZ2VzXywgMSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VnZW5lcmF0b3IubV9yYW5nZXNfLCAwLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWdlbmVyYXRvci5tX3Jhbmdlc0xlbmd0aF8pOworICAgICAgICAgICAgICAgICAgICBjZWdlbmVyYXRvci5tX3Jhbmdlc19bMF0ubV9jb3VudF8gPSBtYXhCeXRlOyAKKyAgICAgICAgICAgICAgICAgICAgLy8ga2VlcCBtYXhCeXRlIGluIHJhbmdlc1swXQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBpbmNyZW1lbnQgdGhlIHdlaWdodCBmb3IgdGhlIG5leHQgdmFsdWUKKyAgICAgICAgICAgICAgICBjZWdlbmVyYXRvci5tX3Jhbmdlc19bMF0ubV9zdGFydF8gCisgICAgICAgICAgICAgICAgICAgICAgPSBpbmNXZWlnaHQod2VpZ2h0LCBjZWdlbmVyYXRvci5tX3Jhbmdlc19bMF0ubV9sZW5ndGgyXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4Qnl0ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gd2VpZ2h0OworICAgICAgICB9CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogSW5jcmVtZW50IHRoZSBjb2xsYXRpb24gd2VpZ2h0CisgICAgICogQHBhcmFtIHdlaWdodCB0byBpbmNyZW1lbnQKKyAgICAgKiBAcGFyYW0gbGVuZ3RoCisgICAgICogQHBhcmFtIG1heEJ5dGUKKyAgICAgKiBAcmV0dXJuIG5ldyBpbmNyZW1lbnRlZCB3ZWlnaHQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgaW5jV2VpZ2h0KGludCB3ZWlnaHQsIGludCBsZW5ndGgsIGludCBtYXhCeXRlKSAKKyAgICB7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpbnQgYiA9IGdldFdlaWdodEJ5dGUod2VpZ2h0LCBsZW5ndGgpOworICAgICAgICAgICAgaWYgKGIgPCBtYXhCeXRlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHNldFdlaWdodEJ5dGUod2VpZ2h0LCBsZW5ndGgsIGIgKyAxKTsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyByb2xsIG92ZXIsIHNldCB0aGlzIGJ5dGUgdG8gQllURV9GSVJTVF9UQUlMT1JFRF8gYW5kIAorICAgICAgICAgICAgICAgIC8vIGluY3JlbWVudCB0aGUgcHJldmlvdXMgb25lCisgICAgICAgICAgICAgICAgd2VpZ2h0ID0gc2V0V2VpZ2h0Qnl0ZSh3ZWlnaHQsIGxlbmd0aCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5CWVRFX0ZJUlNUX1RBSUxPUkVEXyk7CisgICAgICAgICAgICAgICAgLS0gbGVuZ3RoOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIHdlaWdodCBieXRlCisgICAgICogQHBhcmFtIHdlaWdodAorICAgICAqIEBwYXJhbSBpbmRleAorICAgICAqIEByZXR1cm4gYnl0ZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBnZXRXZWlnaHRCeXRlKGludCB3ZWlnaHQsIGludCBpbmRleCkgCisgICAgeworICAgICAgICByZXR1cm4gKHdlaWdodCA+PiAoKDQgLSBpbmRleCkgPDwgMykpICYgMHhmZjsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSB3ZWlnaHQgYnl0ZSBpbiB0YWJsZQorICAgICAqIEBwYXJhbSB3ZWlnaHQgCisgICAgICogQHBhcmFtIGluZGV4CisgICAgICogQHBhcmFtIGIgYnl0ZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBzZXRXZWlnaHRCeXRlKGludCB3ZWlnaHQsIGludCBpbmRleCwgaW50IGIpIAorICAgIHsKKyAgICAgICAgaW5kZXggPDw9IDM7CisgICAgICAgIC8vIDB4ZmZmZmZmZmYgZXhjZXB0IGEgMDAgImhvbGUiIGZvciB0aGUgaW5kZXgtdGggYnl0ZQorICAgICAgICBpbnQgbWFzayA9IDB4ZmZmZmZmZmYgPj4+IGluZGV4OworICAgICAgICBpbmRleCA9IDMyIC0gaW5kZXg7CisgICAgICAgIG1hc2sgfD0gMHhmZmZmZmYwMCA8PCBpbmRleDsKKyAgICAgICAgcmV0dXJuICh3ZWlnaHQgJiBtYXNrKSB8IChiIDw8IGluZGV4KTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ2FsbCBnZXRXZWlnaHRSYW5nZXMgYW5kIHRoZW4gZGV0ZXJtaW5lIGhldXJpc3RpY2FsbHkgd2hpY2ggcmFuZ2VzIHRvIAorICAgICAqIHVzZSBmb3IgYSBnaXZlbiBudW1iZXIgb2Ygd2VpZ2h0cyBiZXR3ZWVuIChleGNsdWRpbmcpIHR3byBsaW1pdHMKKyAgICAgKiBAcGFyYW0gbG93ZXJsaW1pdAorICAgICAqIEBwYXJhbSB1cHBlcmxpbWl0CisgICAgICogQHBhcmFtIG4KKyAgICAgKiBAcGFyYW0gbWF4Qnl0ZQorICAgICAqIEBwYXJhbSByYW5nZXMKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGFsbG9jYXRlV2VpZ2h0cyhpbnQgbG93ZXJMaW1pdCwgaW50IHVwcGVyTGltaXQsIGludCBuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1heEJ5dGUsIFdlaWdodFJhbmdlIHJhbmdlc1tdKSAKKyAgICB7CisgICAgICAgIC8vIG51bWJlciBvZiB1c2FibGUgYnl0ZSB2YWx1ZXMgMy4ubWF4Qnl0ZQorICAgICAgICBpbnQgY291bnRCeXRlcyA9IG1heEJ5dGUgLSBSdWxlQmFzZWRDb2xsYXRvci5CWVRFX0ZJUlNUX1RBSUxPUkVEXyArIDE7CisgICAgICAgIC8vIFswXSB1bnVzZWQsIFs1XSB0byBtYWtlIGluZGV4IGNoZWNrcyB1bm5lY2Vzc2FyeSAKKyAgICAgICAgaW50IGxlbmd0aENvdW50c1tdID0gbmV3IGludFs2XTsgICAgIAorICAgICAgICAvLyBjb3VudEJ5dGVzIHRvIHRoZSBwb3dlciBvZiBpbmRleCAKKyAgICAgICAgbG9uZyBwb3dlcnNbXSA9IG5ldyBsb25nWzVdOyAvLyBmb3IgdW5zaWduZWRuZXNzCisgICAgICAgIC8vIGdjYyByZXF1aXJlcyBleHBsaWNpdCBpbml0aWFsaXphdGlvbiAKKyAgICAgICAgcG93ZXJzWzBdID0gMTsKKyAgICAgICAgcG93ZXJzWzFdID0gY291bnRCeXRlczsKKyAgICAgICAgcG93ZXJzWzJdID0gcG93ZXJzWzFdICogY291bnRCeXRlczsKKyAgICAgICAgcG93ZXJzWzNdID0gcG93ZXJzWzJdICogY291bnRCeXRlczsKKyAgICAgICAgcG93ZXJzWzRdID0gcG93ZXJzWzNdICogY291bnRCeXRlczsKKyAgICAgICAgaW50IHJhbmdlQ291bnQgPSBnZXRXZWlnaHRSYW5nZXMobG93ZXJMaW1pdCwgdXBwZXJMaW1pdCwgbWF4Qnl0ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50Qnl0ZXMsIHJhbmdlcyk7CisgICAgICAgIGlmIChyYW5nZUNvdW50IDw9IDApIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIC8vIHdoYXQgaXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHdlaWdodHMgd2l0aCB0aGVzZSByYW5nZXM/CisgICAgICAgIGxvbmcgbWF4Q291bnQgPSAwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJhbmdlQ291bnQ7ICsrIGkpIHsKKyAgICAgICAgICAgIG1heENvdW50ICs9IChsb25nKXJhbmdlc1tpXS5tX2NvdW50XyAKKyAgICAgICAgICAgICAgICAgICAgICAgICogcG93ZXJzWzQgLSByYW5nZXNbaV0ubV9sZW5ndGhfXTsKKyAgICAgICAgfQorICAgICAgICBpZiAobWF4Q291bnQgPCBuKSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICAvLyBzZXQgdGhlIGxlbmd0aDIgYW5kIGNvdW50MiBmaWVsZHMKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByYW5nZUNvdW50OyArKyBpKSB7CisgICAgICAgICAgICByYW5nZXNbaV0ubV9sZW5ndGgyXyA9IHJhbmdlc1tpXS5tX2xlbmd0aF87CisgICAgICAgICAgICByYW5nZXNbaV0ubV9jb3VudDJfID0gcmFuZ2VzW2ldLm1fY291bnRfOworICAgICAgICB9CisgICAgICAgIC8vIHRyeSB1bnRpbCB3ZSBmaW5kIHN1aXRhYmx5IGxhcmdlIHJhbmdlcworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgLy8gZ2V0IHRoZSBzbWFsbGVzdCBudW1iZXIgb2YgYnl0ZXMgaW4gYSByYW5nZQorICAgICAgICAgICAgaW50IG1pbkxlbmd0aCA9IHJhbmdlc1swXS5tX2xlbmd0aDJfOworICAgICAgICAgICAgLy8gc3VtIHVwIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgdGhhdCBmaXQgaW50byByYW5nZXMgb2YgZWFjaCBieXRlIAorICAgICAgICAgICAgLy8gbGVuZ3RoCisgICAgICAgICAgICBBcnJheXMuZmlsbChsZW5ndGhDb3VudHMsIDApOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByYW5nZUNvdW50OyArKyBpKSB7CisgICAgICAgICAgICAgICAgbGVuZ3RoQ291bnRzW3Jhbmdlc1tpXS5tX2xlbmd0aDJfXSArPSByYW5nZXNbaV0ubV9jb3VudDJfOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gbm93IHRyeSB0byBhbGxvY2F0ZSBuIGVsZW1lbnRzIGluIHRoZSBhdmFpbGFibGUgc2hvcnQgcmFuZ2VzIAorICAgICAgICAgICAgaWYgKG4gPD0gbGVuZ3RoQ291bnRzW21pbkxlbmd0aF0gKyBsZW5ndGhDb3VudHNbbWluTGVuZ3RoICsgMV0pIHsKKyAgICAgICAgICAgICAgICAvLyB0cml2aWFsIGNhc2VzLCB1c2UgdGhlIGZpcnN0IGZldyByYW5nZXMKKyAgICAgICAgICAgICAgICBtYXhDb3VudCA9IDA7CisgICAgICAgICAgICAgICAgcmFuZ2VDb3VudCA9IDA7CisgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICBtYXhDb3VudCArPSByYW5nZXNbcmFuZ2VDb3VudF0ubV9jb3VudDJfOworICAgICAgICAgICAgICAgICAgICArKyByYW5nZUNvdW50OworICAgICAgICAgICAgICAgIH0gd2hpbGUgKG4gPiBtYXhDb3VudCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSBpZiAobiA8PSByYW5nZXNbMF0ubV9jb3VudDJfICogY291bnRCeXRlcykgeworICAgICAgICAgICAgICAgIC8vIGVhc3kgY2FzZSwganVzdCBtYWtlIHRoaXMgb25lIHJhbmdlIGxhcmdlIGVub3VnaCBieSAKKyAgICAgICAgICAgICAgICAvLyBsZW5ndGhlbmluZyBpdCBvbmNlIG1vcmUsIHBvc3NpYmx5IHNwbGl0IGl0CisgICAgICAgICAgICAgICAgcmFuZ2VDb3VudCA9IDE7CisgICAgICAgICAgICAgICAgLy8gY2FsY3VsYXRlIGhvdyB0byBzcGxpdCB0aGUgcmFuZ2UgYmV0d2VlbiBtYXhMZW5ndGgtMSAKKyAgICAgICAgICAgICAgICAvLyAoY291bnQxKSBhbmQgbWF4TGVuZ3RoIChjb3VudDIpIAorICAgICAgICAgICAgICAgIGxvbmcgcG93ZXJfMSA9IHBvd2Vyc1ttaW5MZW5ndGggLSByYW5nZXNbMF0ubV9sZW5ndGhfXTsKKyAgICAgICAgICAgICAgICBsb25nIHBvd2VyID0gcG93ZXJfMSAqIGNvdW50Qnl0ZXM7CisgICAgICAgICAgICAgICAgaW50IGNvdW50MiA9IChpbnQpKChuICsgcG93ZXIgLSAxKSAvIHBvd2VyKTsKKyAgICAgICAgICAgICAgICBpbnQgY291bnQxID0gcmFuZ2VzWzBdLm1fY291bnRfIC0gY291bnQyOworICAgICAgICAgICAgICAgIC8vIHNwbGl0IHRoZSByYW5nZQorICAgICAgICAgICAgICAgIGlmIChjb3VudDEgPCAxKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGxlbmd0aGVuIHRoZSBlbnRpcmUgcmFuZ2UgdG8gbWF4TGVuZ3RoIAorICAgICAgICAgICAgICAgICAgICBsZW5ndGhlblJhbmdlKHJhbmdlcywgMCwgbWF4Qnl0ZSwgY291bnRCeXRlcyk7CisgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVhbGx5IHNwbGl0IHRoZSByYW5nZQorICAgICAgICAgICAgICAgICAgICAvLyBjcmVhdGUgYSBuZXcgcmFuZ2Ugd2l0aCB0aGUgZW5kIGFuZCBpbml0aWFsIGFuZCBjdXJyZW50IAorICAgICAgICAgICAgICAgICAgICAvLyBsZW5ndGggb2YgdGhlIG9sZCBvbmUKKyAgICAgICAgICAgICAgICAgICAgcmFuZ2VDb3VudCA9IDI7CisgICAgICAgICAgICAgICAgICAgIHJhbmdlc1sxXS5tX2VuZF8gPSByYW5nZXNbMF0ubV9lbmRfOworICAgICAgICAgICAgICAgICAgICByYW5nZXNbMV0ubV9sZW5ndGhfID0gcmFuZ2VzWzBdLm1fbGVuZ3RoXzsKKyAgICAgICAgICAgICAgICAgICAgcmFuZ2VzWzFdLm1fbGVuZ3RoMl8gPSBtaW5MZW5ndGg7CisgICAgICAgICAgICAgICAgICAgIC8vIHNldCB0aGUgZW5kIG9mIHRoZSBmaXJzdCByYW5nZSBhY2NvcmRpbmcgdG8gY291bnQxCisgICAgICAgICAgICAgICAgICAgIGludCBpID0gcmFuZ2VzWzBdLm1fbGVuZ3RoXzsKKyAgICAgICAgICAgICAgICAgICAgaW50IGIgPSBnZXRXZWlnaHRCeXRlKHJhbmdlc1swXS5tX3N0YXJ0XywgaSkgKyBjb3VudDEgLSAxOworICAgICAgICAgICAgICAgICAgICAvLyByYW5nZXNbMF0uY291bnQgYW5kIGNvdW50MSBtYXkgYmUgPmNvdW50Qnl0ZXMgZnJvbSAKKyAgICAgICAgICAgICAgICAgICAgLy8gbWVyZ2luZyBhZGphY2VudCByYW5nZXM7IGIgPiBtYXhCeXRlIGlzIHBvc3NpYmxlCisgICAgICAgICAgICAgICAgICAgIGlmIChiIDw9IG1heEJ5dGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlc1swXS5tX2VuZF8gPSBzZXRXZWlnaHRCeXRlKHJhbmdlc1swXS5tX3N0YXJ0XywgaSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiKTsKKyAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICByYW5nZXNbMF0ubV9lbmRfID0gc2V0V2VpZ2h0Qnl0ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNXZWlnaHQocmFuZ2VzWzBdLm1fc3RhcnRfLCBpIC0gMSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heEJ5dGUpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLCBiIC0gY291bnRCeXRlcyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLy8gc2V0IHRoZSBieXRlcyBpbiB0aGUgZW5kIHdlaWdodCBhdCBsZW5ndGggKyAxLi5sZW5ndGgyIAorICAgICAgICAgICAgICAgICAgICAvLyB0byBtYXhCeXRlCisgICAgICAgICAgICAgICAgICAgIGIgPSAobWF4Qnl0ZSA8PCAyNCkgfCAobWF4Qnl0ZSA8PCAxNikgfCAobWF4Qnl0ZSA8PCA4KQorICAgICAgICAgICAgICAgICAgICAgICAgfCBtYXhCeXRlOyAvLyB0aGlzIHVzZWQgdG8gYmUgMHhmZmZmZmZmZiAKKyAgICAgICAgICAgICAgICAgICAgcmFuZ2VzWzBdLm1fZW5kXyA9IHRydW5jYXRlV2VpZ2h0KHJhbmdlc1swXS5tX2VuZF8sIGkpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoYiA+PiAoaSA8PCAzKSkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmIChiIDw8ICgoNCAtIG1pbkxlbmd0aCkgPDwgMykpOworICAgICAgICAgICAgICAgICAgICAvLyBzZXQgdGhlIHN0YXJ0IG9mIHRoZSBzZWNvbmQgcmFuZ2UgdG8gaW1tZWRpYXRlbHkgZm9sbG93IAorICAgICAgICAgICAgICAgICAgICAvLyB0aGUgZW5kIG9mIHRoZSBmaXJzdCBvbmUKKyAgICAgICAgICAgICAgICAgICAgcmFuZ2VzWzFdLm1fc3RhcnRfID0gaW5jV2VpZ2h0KHJhbmdlc1swXS5tX2VuZF8sIG1pbkxlbmd0aCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhCeXRlKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gc2V0IHRoZSBjb3VudCB2YWx1ZXMgKGluZm9ybWF0aW9uYWwpCisgICAgICAgICAgICAgICAgICAgIHJhbmdlc1swXS5tX2NvdW50XyA9IGNvdW50MTsKKyAgICAgICAgICAgICAgICAgICAgcmFuZ2VzWzFdLm1fY291bnRfID0gY291bnQyOworICAgIAorICAgICAgICAgICAgICAgICAgICByYW5nZXNbMF0ubV9jb3VudDJfID0gKGludCkoY291bnQxICogcG93ZXJfMSk7CisgICAgICAgICAgICAgICAgICAgIC8vIHdpbGwgYmUgKmNvdW50Qnl0ZXMgd2hlbiBsZW5ndGhlbmVkIAorICAgICAgICAgICAgICAgICAgICByYW5nZXNbMV0ubV9jb3VudDJfID0gKGludCkoY291bnQyICogcG93ZXJfMSk7IAorICAgIAorICAgICAgICAgICAgICAgICAgICAvLyBsZW5ndGhlbiB0aGUgc2Vjb25kIHJhbmdlIHRvIG1heExlbmd0aAorICAgICAgICAgICAgICAgICAgICBsZW5ndGhlblJhbmdlKHJhbmdlcywgMSwgbWF4Qnl0ZSwgY291bnRCeXRlcyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gbm8gZ29vZCBtYXRjaCwgbGVuZ3RoZW4gYWxsIG1pbkxlbmd0aCByYW5nZXMgYW5kIGl0ZXJhdGUgCisgICAgICAgICAgICBmb3IgKGludCBpPTA7IHJhbmdlc1tpXS5tX2xlbmd0aDJfID09IG1pbkxlbmd0aDsgKysgaSkgeworICAgICAgICAgICAgICAgIGxlbmd0aGVuUmFuZ2UocmFuZ2VzLCBpLCBtYXhCeXRlLCBjb3VudEJ5dGVzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICBpZiAocmFuZ2VDb3VudCA+IDEpIHsKKyAgICAgICAgICAgIC8vIHNvcnQgdGhlIHJhbmdlcyBieSB3ZWlnaHQgdmFsdWVzIAorICAgICAgICAgICAgQXJyYXlzLnNvcnQocmFuZ2VzLCAwLCByYW5nZUNvdW50KTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyBzZXQgbWF4Qnl0ZSBpbiByYW5nZXNbMF0gZm9yIHVjb2xfbmV4dFdlaWdodCgpCisgICAgICAgIHJhbmdlc1swXS5tX2NvdW50XyA9IG1heEJ5dGU7CisgICAgCisgICAgICAgIHJldHVybiByYW5nZUNvdW50OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBVcGRhdGVzIHRoZSByYW5nZSBsZW5ndGgKKyAgICAgKiBAcGFyYW0gcmFuZ2Ugd2VpZ2h0IHJhbmdlIGFycmF5CisgICAgICogQHBhcmFtIG9mZnNldCB0byB3ZWlnaHQgcmFuZ2UgYXJyYXkKKyAgICAgKiBAcGFyYW0gbWF4Qnl0ZQorICAgICAqIEBwYXJhbSBjb3VudEJ5dGVzCisgICAgICogQHJldHVybiBuZXcgbGVuZ3RoCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGxlbmd0aGVuUmFuZ2UoV2VpZ2h0UmFuZ2UgcmFuZ2VbXSwgaW50IG9mZnNldCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1heEJ5dGUsIGludCBjb3VudEJ5dGVzKSAKKyAgICB7CisgICAgICAgIGludCBsZW5ndGggPSByYW5nZVtvZmZzZXRdLm1fbGVuZ3RoMl8gKyAxOworICAgICAgICByYW5nZVtvZmZzZXRdLm1fc3RhcnRfID0gc2V0V2VpZ2h0VHJhaWwocmFuZ2Vbb2Zmc2V0XS5tX3N0YXJ0XywgbGVuZ3RoLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkJZVEVfRklSU1RfVEFJTE9SRURfKTsKKyAgICAgICAgcmFuZ2Vbb2Zmc2V0XS5tX2VuZF8gPSBzZXRXZWlnaHRUcmFpbChyYW5nZVtvZmZzZXRdLm1fZW5kXywgbGVuZ3RoLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhCeXRlKTsKKyAgICAgICAgcmFuZ2Vbb2Zmc2V0XS5tX2NvdW50Ml8gKj0gY291bnRCeXRlczsKKyAgICAgICAgcmFuZ2Vbb2Zmc2V0XS5tX2xlbmd0aDJfID0gbGVuZ3RoOworICAgICAgICByZXR1cm4gbGVuZ3RoOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB3ZWlnaHQgCisgICAgICogQHBhcmFtIHdlaWdodAorICAgICAqIEBwYXJhbSBsZW5ndGgKKyAgICAgKiBAcGFyYW0gdHJhaWwKKyAgICAgKiBAcmV0dXJuIG5ldyB3ZWlnaHQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgc2V0V2VpZ2h0VHJhaWwoaW50IHdlaWdodCwgaW50IGxlbmd0aCwgaW50IHRyYWlsKSAKKyAgICB7CisgICAgICAgIGxlbmd0aCA9ICg0IC0gbGVuZ3RoKSA8PCAzOworICAgICAgICByZXR1cm4gKHdlaWdodCAmICgweGZmZmZmZjAwIDw8IGxlbmd0aCkpIHwgKHRyYWlsIDw8IGxlbmd0aCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIHRha2UgdHdvIENFIHdlaWdodHMgYW5kIGNhbGN1bGF0ZSB0aGUKKyAgICAgKiBwb3NzaWJsZSByYW5nZXMgb2Ygd2VpZ2h0cyBiZXR3ZWVuIHRoZSB0d28gbGltaXRzLCBleGNsdWRpbmcgdGhlbQorICAgICAqIGZvciB3ZWlnaHRzIHdpdGggdXAgdG8gNCBieXRlcyB0aGVyZSBhcmUgdXAgdG8gMio0LTE9NyByYW5nZXMKKyAgICAgKiBAcGFyYW0gbG93ZXJsaW1pdAorICAgICAqIEBwYXJhbSB1cHBlcmxpbWl0CisgICAgICogQHBhcmFtIG1heEJ5dGUKKyAgICAgKiBAcGFyYW0gY291bnRCeXRlcworICAgICAqIEBwYXJhbSByYW5nZXMKKyAgICAgKiBAcmV0dXJuIHdlaWdodCByYW5nZXMKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZ2V0V2VpZ2h0UmFuZ2VzKGludCBsb3dlckxpbWl0LCBpbnQgdXBwZXJMaW1pdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWF4Qnl0ZSwgaW50IGNvdW50Qnl0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWlnaHRSYW5nZSByYW5nZXNbXSkgCisgICAgeworICAgICAgICAvLyBhc3N1bWUgdGhhdCBib3RoIGxvd2VyTGltaXQgJiB1cHBlckxpbWl0IGFyZSBub3QgMCAKKyAgICAgICAgLy8gZ2V0IHRoZSBsZW5ndGhzIG9mIHRoZSBsaW1pdHMgCisgICAgICAgIGludCBsb3dlckxlbmd0aCA9IGxlbmd0aE9mV2VpZ2h0KGxvd2VyTGltaXQpOworICAgICAgICBpbnQgdXBwZXJMZW5ndGggPSBsZW5ndGhPZldlaWdodCh1cHBlckxpbWl0KTsKKyAgICAgICAgaWYgKFV0aWxpdHkuY29tcGFyZVVuc2lnbmVkKGxvd2VyTGltaXQsIHVwcGVyTGltaXQpID49IDApIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIC8vIGNoZWNrIHRoYXQgbmVpdGhlciBpcyBhIHByZWZpeCBvZiB0aGUgb3RoZXIKKyAgICAgICAgaWYgKGxvd2VyTGVuZ3RoIDwgdXBwZXJMZW5ndGgpIHsKKyAgICAgICAgICAgIGlmIChsb3dlckxpbWl0ID09IHRydW5jYXRlV2VpZ2h0KHVwcGVyTGltaXQsIGxvd2VyTGVuZ3RoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIGlmIHRoZSB1cHBlciBsaW1pdCBpcyBhIHByZWZpeCBvZiB0aGUgbG93ZXIgbGltaXQgdGhlbiB0aGUgZWFybGllciAKKyAgICAgICAgLy8gdGVzdCBsb3dlckxpbWl0ID49IHVwcGVyTGltaXQgaGFzIGNhdWdodCBpdAorICAgICAgICAvLyByZXNldCBsb2NhbCB2YXJpYWJsZXMKKyAgICAgICAgLy8gV2l0aCB0aGUgbGltaXQgbGVuZ3RocyBvZiAxLi40LCB0aGVyZSBhcmUgdXAgdG8gNyByYW5nZXMgZm9yIAorICAgICAgICAvLyBhbGxvY2F0aW9uOgorICAgICAgICAvLyByYW5nZSAgICAgbWluaW11bSBsZW5ndGgKKyAgICAgICAgLy8gbG93ZXJbNF0gIDQKKyAgICAgICAgLy8gbG93ZXJbM10gIDMKKyAgICAgICAgLy8gbG93ZXJbMl0gIDIKKyAgICAgICAgLy8gbWlkZGxlICAgIDEKKyAgICAgICAgLy8gdXBwZXJbMl0gIDIKKyAgICAgICAgLy8gdXBwZXJbM10gIDMKKyAgICAgICAgLy8gdXBwZXJbNF0gIDQKKyAgICAgICAgLy8gV2UgYXJlIG5vdyBnb2luZyB0byBjYWxjdWxhdGUgdXAgdG8gNyByYW5nZXMuCisgICAgICAgIC8vIFNvbWUgb2YgdGhlbSB3aWxsIHR5cGljYWxseSBvdmVybGFwLCBzbyB3ZSB3aWxsIHRoZW4gaGF2ZSB0byBtZXJnZSAKKyAgICAgICAgLy8gYW5kIGVsaW1pbmF0ZSByYW5nZXMuCisgICAgICAgIGludCB3ZWlnaHQgPSBsb3dlckxpbWl0OworICAgICAgICBXZWlnaHRSYW5nZSBsb3dlcltdID0ge25ldyBXZWlnaHRSYW5nZSgpLCBuZXcgV2VpZ2h0UmFuZ2UoKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFdlaWdodFJhbmdlKCksIG5ldyBXZWlnaHRSYW5nZSgpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgV2VpZ2h0UmFuZ2UoKX07IAorICAgICAgICBmb3IgKGludCBsZW5ndGggPSBsb3dlckxlbmd0aDsgbGVuZ3RoID49IDI7IC0tIGxlbmd0aCkgeworICAgICAgICAgICAgaW50IHRyYWlsID0gZ2V0V2VpZ2h0Qnl0ZSh3ZWlnaHQsIGxlbmd0aCk7CisgICAgICAgICAgICBpZiAodHJhaWwgPCBtYXhCeXRlKSB7CisgICAgICAgICAgICAgICAgbG93ZXJbbGVuZ3RoXS5tX3N0YXJ0XyA9IGluY1dlaWdodFRyYWlsKHdlaWdodCwgbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICBsb3dlcltsZW5ndGhdLm1fZW5kXyA9IHNldFdlaWdodFRyYWlsKHdlaWdodCwgbGVuZ3RoLCBtYXhCeXRlKTsKKyAgICAgICAgICAgICAgICBsb3dlcltsZW5ndGhdLm1fbGVuZ3RoXyA9IGxlbmd0aDsKKyAgICAgICAgICAgICAgICBsb3dlcltsZW5ndGhdLm1fY291bnRfID0gbWF4Qnl0ZSAtIHRyYWlsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgd2VpZ2h0ID0gdHJ1bmNhdGVXZWlnaHQod2VpZ2h0LCBsZW5ndGggLSAxKTsKKyAgICAgICAgfQorICAgICAgICBXZWlnaHRSYW5nZSBtaWRkbGUgPSBuZXcgV2VpZ2h0UmFuZ2UoKTsgCisgICAgICAgIG1pZGRsZS5tX3N0YXJ0XyA9IGluY1dlaWdodFRyYWlsKHdlaWdodCwgMSk7CisgICAgCisgICAgICAgIHdlaWdodCA9IHVwcGVyTGltaXQ7CisgICAgICAgIC8vIFswXSBhbmQgWzFdIGFyZSBub3QgdXNlZCAtIHRoaXMgc2ltcGxpZmllcyBpbmRleGluZyAKKyAgICAgICAgV2VpZ2h0UmFuZ2UgdXBwZXJbXSA9IHtuZXcgV2VpZ2h0UmFuZ2UoKSwgbmV3IFdlaWdodFJhbmdlKCksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBXZWlnaHRSYW5nZSgpLCBuZXcgV2VpZ2h0UmFuZ2UoKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFdlaWdodFJhbmdlKCl9OyAKKyAgICAgICAgZm9yIChpbnQgbGVuZ3RoID0gdXBwZXJMZW5ndGg7IGxlbmd0aCA+PSAyOyBsZW5ndGggLS0pIHsKKyAgICAgICAgICAgIGludCB0cmFpbCA9IGdldFdlaWdodEJ5dGUod2VpZ2h0LCBsZW5ndGgpOworICAgICAgICAgICAgaWYgKHRyYWlsID4gUnVsZUJhc2VkQ29sbGF0b3IuQllURV9GSVJTVF9UQUlMT1JFRF8pIHsKKyAgICAgICAgICAgICAgICB1cHBlcltsZW5ndGhdLm1fc3RhcnRfID0gc2V0V2VpZ2h0VHJhaWwod2VpZ2h0LCBsZW5ndGgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuQllURV9GSVJTVF9UQUlMT1JFRF8pOworICAgICAgICAgICAgICAgIHVwcGVyW2xlbmd0aF0ubV9lbmRfID0gZGVjV2VpZ2h0VHJhaWwod2VpZ2h0LCBsZW5ndGgpOworICAgICAgICAgICAgICAgIHVwcGVyW2xlbmd0aF0ubV9sZW5ndGhfID0gbGVuZ3RoOworICAgICAgICAgICAgICAgIHVwcGVyW2xlbmd0aF0ubV9jb3VudF8gPSB0cmFpbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gUnVsZUJhc2VkQ29sbGF0b3IuQllURV9GSVJTVF9UQUlMT1JFRF87CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3ZWlnaHQgPSB0cnVuY2F0ZVdlaWdodCh3ZWlnaHQsIGxlbmd0aCAtIDEpOworICAgICAgICB9CisgICAgICAgIG1pZGRsZS5tX2VuZF8gPSBkZWNXZWlnaHRUcmFpbCh3ZWlnaHQsIDEpOworICAgIAorICAgICAgICAvLyBzZXQgdGhlIG1pZGRsZSByYW5nZQorICAgICAgICBtaWRkbGUubV9sZW5ndGhfID0gMTsKKyAgICAgICAgaWYgKG1pZGRsZS5tX2VuZF8gPj0gbWlkZGxlLm1fc3RhcnRfKSB7CisgICAgICAgICAgICBtaWRkbGUubV9jb3VudF8gPSAoKG1pZGRsZS5tX2VuZF8gLSBtaWRkbGUubV9zdGFydF8pID4+IDI0KSArIDE7CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gZWxpbWluYXRlIG92ZXJsYXBzCisgICAgICAgICAgICAvLyByZW1vdmUgdGhlIG1pZGRsZSByYW5nZQorICAgICAgICAgICAgbWlkZGxlLm1fY291bnRfID0gMDsKKyAgICAgICAgICAgIC8vIHJlZHVjZSBvciByZW1vdmUgdGhlIGxvd2VyIHJhbmdlcyB0aGF0IGdvIGJleW9uZCB1cHBlckxpbWl0CisgICAgICAgICAgICBmb3IgKGludCBsZW5ndGggPSA0OyBsZW5ndGggPj0gMjsgLS0gbGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgaWYgKGxvd2VyW2xlbmd0aF0ubV9jb3VudF8+MCAmJiB1cHBlcltsZW5ndGhdLm1fY291bnRfID4gMCkgeworICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQgPSB1cHBlcltsZW5ndGhdLm1fc3RhcnRfOworICAgICAgICAgICAgICAgICAgICBpbnQgZW5kID0gbG93ZXJbbGVuZ3RoXS5tX2VuZF87CisgICAgICAgICAgICAgICAgICAgIGlmIChlbmQgPj0gc3RhcnQgfHwgaW5jV2VpZ2h0KGVuZCwgbGVuZ3RoLCBtYXhCeXRlKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBzdGFydCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gbG93ZXIgYW5kIHVwcGVyIHJhbmdlcyBjb2xsaWRlIG9yIGFyZSBkaXJlY3RseSAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFkamFjZW50OiBtZXJnZSB0aGVzZSB0d28gYW5kIHJlbW92ZSBhbGwgc2hvcnRlciAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJhbmdlcworICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBsb3dlcltsZW5ndGhdLm1fc3RhcnRfOworICAgICAgICAgICAgICAgICAgICAgICAgZW5kID0gbG93ZXJbbGVuZ3RoXS5tX2VuZF8gPSB1cHBlcltsZW5ndGhdLm1fZW5kXzsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1lcmdpbmcgZGlyZWN0bHkgYWRqYWNlbnQgcmFuZ2VzIG5lZWRzIHRvIHN1YnRyYWN0IAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIDAvMSBnYXBzIGluIGJldHdlZW47CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBpdCBtYXkgcmVzdWx0IGluIGEgcmFuZ2Ugd2l0aCBjb3VudD5jb3VudEJ5dGVzCisgICAgICAgICAgICAgICAgICAgICAgICBsb3dlcltsZW5ndGhdLm1fY291bnRfID0gZ2V0V2VpZ2h0Qnl0ZShlbmQsIGxlbmd0aCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIGdldFdlaWdodEJ5dGUoc3RhcnQsIGxlbmd0aCkgKyAxIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgY291bnRCeXRlcyAqIChnZXRXZWlnaHRCeXRlKGVuZCwgbGVuZ3RoIC0gMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBnZXRXZWlnaHRCeXRlKHN0YXJ0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCAtIDEpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHVwcGVyW2xlbmd0aF0ubV9jb3VudF89MDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlICgtLSBsZW5ndGggPj0gMikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvd2VyW2xlbmd0aF0ubV9jb3VudF8gPSB1cHBlcltsZW5ndGhdLm1fY291bnRfIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gY29weSB0aGUgcmFuZ2VzLCBzaG9ydGVzdCBmaXJzdCwgaW50byB0aGUgcmVzdWx0IGFycmF5IAorICAgICAgICBpbnQgcmFuZ2VDb3VudCA9IDA7CisgICAgICAgIGlmIChtaWRkbGUubV9jb3VudF8gPiAwKSB7CisgICAgICAgICAgICByYW5nZXNbMF0gPSBtaWRkbGU7CisgICAgICAgICAgICByYW5nZUNvdW50ID0gMTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBsZW5ndGggPSAyOyBsZW5ndGggPD0gNDsgKysgbGVuZ3RoKSB7CisgICAgICAgICAgICAvLyBjb3B5IHVwcGVyIGZpcnN0IHNvIHRoYXQgbGF0ZXIgdGhlIG1pZGRsZSByYW5nZSBpcyBtb3JlIGxpa2VseSAKKyAgICAgICAgICAgIC8vIHRoZSBmaXJzdCBvbmUgdG8gdXNlCisgICAgICAgICAgICBpZiAodXBwZXJbbGVuZ3RoXS5tX2NvdW50XyA+IDApIHsKKyAgICAgICAgICAgICAgICByYW5nZXNbcmFuZ2VDb3VudF0gPSB1cHBlcltsZW5ndGhdOworICAgICAgICAgICAgICAgICsrIHJhbmdlQ291bnQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobG93ZXJbbGVuZ3RoXS5tX2NvdW50XyA+IDApIHsKKyAgICAgICAgICAgICAgICByYW5nZXNbcmFuZ2VDb3VudF0gPSBsb3dlcltsZW5ndGhdOworICAgICAgICAgICAgICAgICsrIHJhbmdlQ291bnQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJhbmdlQ291bnQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRydW5jYXRlcyB0aGUgd2VpZ2h0IHdpdGggbGVuZ3RoCisgICAgICogQHBhcmFtIHdlaWdodAorICAgICAqIEBwYXJhbSBsZW5ndGgKKyAgICAgKiBAcmV0dXJuIHRydW5jYXRlZCB3ZWlnaHQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgdHJ1bmNhdGVXZWlnaHQoaW50IHdlaWdodCwgaW50IGxlbmd0aCkgCisgICAgeworICAgICAgICByZXR1cm4gd2VpZ2h0ICYgKDB4ZmZmZmZmZmYgPDwgKCg0IC0gbGVuZ3RoKSA8PCAzKSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIExlbmd0aCBvZiB0aGUgd2VpZ2h0CisgICAgICogQHBhcmFtIHdlaWdodAorICAgICAqIEByZXR1cm4gbGVuZ3RoIG9mIHRoZSB3ZWlnaHQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgbGVuZ3RoT2ZXZWlnaHQoaW50IHdlaWdodCkgCisgICAgeworICAgICAgICBpZiAoKHdlaWdodCAmIDB4ZmZmZmZmKSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSBpZiAoKHdlaWdodCAmIDB4ZmZmZikgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgaWYgKCh3ZWlnaHQgJiAweGZmKSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gMzsKKyAgICAgICAgfSAKKyAgICAgICAgcmV0dXJuIDQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEluY3JlbWVudCB0aGUgd2VpZ2h0IHRyYWlsCisgICAgICogQHBhcmFtIHdlaWdodCAKKyAgICAgKiBAcGFyYW0gbGVuZ3RoCisgICAgICogQHJldHVybiBuZXcgd2VpZ2h0CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGluY1dlaWdodFRyYWlsKGludCB3ZWlnaHQsIGludCBsZW5ndGgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIHdlaWdodCArICgxIDw8ICgoNC1sZW5ndGgpIDw8IDMpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNyZW1lbnQgdGhlIHdlaWdodCB0cmFpbAorICAgICAqIEBwYXJhbSB3ZWlnaHQgCisgICAgICogQHBhcmFtIGxlbmd0aAorICAgICAqIEByZXR1cm4gbmV3IHdlaWdodAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBkZWNXZWlnaHRUcmFpbChpbnQgd2VpZ2h0LCBpbnQgbGVuZ3RoKSAKKyAgICB7CisgICAgICAgIHJldHVybiB3ZWlnaHQgLSAoMSA8PCAoKDQgLSBsZW5ndGgpIDw8IDMpKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ2hlY2tzIGlmIHRoZSBzdHJpbmcgaXMgdGFpbG9yZWQgaW4gdGhlIGNvbnRyYWN0aW9uCisgICAgICogQHBhcmFtIHRhYmxlIGNvbnRyYWN0aW9uIHRhYmxlCisgICAgICogQHBhcmFtIGVsZW1lbnQgCisgICAgICogQHBhcmFtIGFycmF5IGNoYXJhY3RlciBhcnJheSB0byBjaGVjaworICAgICAqIEBwYXJhbSBvZmZzZXQgYXJyYXkgb2Zmc2V0CisgICAgICogQHJldHVybiB0cnVlIGlmIGl0IGlzIHRhaWxvcmVkCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGlzVGFpbG9yZWQoQ29udHJhY3Rpb25UYWJsZSB0YWJsZSwgaW50IGVsZW1lbnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgYXJyYXlbXSwgaW50IG9mZnNldCkgCisgICAgeworICAgICAgICB3aGlsZSAoYXJyYXlbb2Zmc2V0XSAhPSAwKSB7CisgICAgICAgICAgICBlbGVtZW50ID0gZ2V0Q0UodGFibGUsIGVsZW1lbnQsIGFycmF5W29mZnNldF0pOworICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gQ0VfTk9UX0ZPVU5EXykgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghaXNDb250cmFjdGlvblRhYmxlRWxlbWVudChlbGVtZW50KSkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb2Zmc2V0ICsrOworICAgICAgICB9CisgICAgICAgIGlmIChnZXRDRSh0YWJsZSwgZWxlbWVudCwgMCkgIT0gQ0VfTk9UX0ZPVU5EXykgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBBc3NlbWJsZSBSdWxlQmFzZWRDb2xsYXRvcgorICAgICAqIEBwYXJhbSB0IGJ1aWxkIHRhYmxlCisgICAgICogQHBhcmFtIGNvbGxhdG9yIHRvIHVwZGF0ZQorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBhc3NlbWJsZVRhYmxlKEJ1aWxkVGFibGUgdCwgUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IpIAorICAgIHsKKyAgICAgICAgSW50VHJpZUJ1aWxkZXIgbWFwcGluZyA9IHQubV9tYXBwaW5nXzsKKyAgICAgICAgVmVjdG9yIGV4cGFuc2lvbnMgPSB0Lm1fZXhwYW5zaW9uc187CisgICAgICAgIENvbnRyYWN0aW9uVGFibGUgY29udHJhY3Rpb25zID0gdC5tX2NvbnRyYWN0aW9uc187CisgICAgICAgIE1heEV4cGFuc2lvblRhYmxlIG1heGV4cGFuc2lvbiA9IHQubV9tYXhFeHBhbnNpb25zXzsKKyAgICAKKyAgICAgICAgLy8gY29udHJhY3Rpb24gb2Zmc2V0IGhhcyB0byBiZSBpbiBzaW5jZSB3ZSBhcmUgYnVpbGRpbmcgb24gdGhlIAorICAgICAgICAvLyBVQ0EgY29udHJhY3Rpb25zIAorICAgICAgICAvLyBpbnQgYmVmb3JlQ29udHJhY3Rpb25zID0gKEhFQURFUl9TSVpFXyAKKyAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgKyBwYWRkZWRzaXplKGV4cGFuc2lvbnMuc2l6ZSgpIDw8IDIpKSA+Pj4gMTsKKyAgICAgICAgY29sbGF0b3IubV9jb250cmFjdGlvbk9mZnNldF8gPSAwOworICAgICAgICBpbnQgY29udHJhY3Rpb25zU2l6ZSA9IGNvbnN0cnVjdFRhYmxlKGNvbnRyYWN0aW9ucyk7CisgICAgCisgICAgICAgIC8vIHRoZSBmb2xsb3dpbmcgb3BlcmF0aW9uIGRlcGVuZHMgb24gdGhlIHRyaWUgZGF0YS4gVGhlcmVmb3JlLCB3ZSBoYXZlIAorICAgICAgICAvLyB0byBkbyBpdCBiZWZvcmUgdGhlIHRyaWUgaXMgY29tcGFjdGVkIAorICAgICAgICAvLyBzZXRzIGphbW8gZXhwYW5zaW9ucworICAgICAgICBnZXRNYXhFeHBhbnNpb25KYW1vKG1hcHBpbmcsIG1heGV4cGFuc2lvbiwgdC5tX21heEphbW9FeHBhbnNpb25zXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xsYXRvci5tX2lzSmFtb1NwZWNpYWxfKTsKKyAgICAgICAgLy8gVE9ETzogTEFUSU4xIGFycmF5IGlzIG5vdyBpbiB0aGUgdXRyaWUgLSBpdCBzaG91bGQgYmUgcmVtb3ZlZCBmcm9tIAorICAgICAgICAvLyB0aGUgY2FsY3VsYXRpb24KKyAgICAgICAgc2V0QXR0cmlidXRlcyhjb2xsYXRvciwgdC5tX29wdGlvbnNfKTsKKyAgICAgICAgLy8gY29weSBleHBhbnNpb25zCisgICAgICAgIGludCBzaXplID0gZXhwYW5zaW9ucy5zaXplKCk7CisgICAgICAgIGNvbGxhdG9yLm1fZXhwYW5zaW9uXyA9IG5ldyBpbnRbc2l6ZV07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSArKykgeworICAgICAgICAgICAgY29sbGF0b3IubV9leHBhbnNpb25fW2ldID0gKChJbnRlZ2VyKWV4cGFuc2lvbnMuZ2V0KGkpKS5pbnRWYWx1ZSgpOworICAgICAgICB9CisgICAgICAgIC8vIGNvbnRyYWN0aW9ucyBibG9jayAKKyAgICAgICAgaWYgKGNvbnRyYWN0aW9uc1NpemUgIT0gMCkgeworICAgICAgICAgICAgLy8gY29weSBjb250cmFjdGlvbiBpbmRleCAKKyAgICAgICAgICAgIGNvbGxhdG9yLm1fY29udHJhY3Rpb25JbmRleF8gPSBuZXcgY2hhcltjb250cmFjdGlvbnNTaXplXTsKKyAgICAgICAgICAgIGNvbnRyYWN0aW9ucy5tX2NvZGVQb2ludHNfLmdldENoYXJzKDAsIGNvbnRyYWN0aW9uc1NpemUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sbGF0b3IubV9jb250cmFjdGlvbkluZGV4XywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKTsKKyAgICAgICAgICAgIC8vIGNvcHkgY29udHJhY3Rpb24gY29sbGF0aW9uIGVsZW1lbnRzCisgICAgICAgICAgICBjb2xsYXRvci5tX2NvbnRyYWN0aW9uQ0VfID0gbmV3IGludFtjb250cmFjdGlvbnNTaXplXTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY29udHJhY3Rpb25zU2l6ZTsgaSArKykgeworICAgICAgICAgICAgICAgIGNvbGxhdG9yLm1fY29udHJhY3Rpb25DRV9baV0gPSAoKEludGVnZXIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udHJhY3Rpb25zLm1fQ0VzXy5nZXQoaSkpLmludFZhbHVlKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gCisgICAgICAgIC8vIGNvcHkgbWFwcGluZyB0YWJsZQorICAgICAgICBjb2xsYXRvci5tX3RyaWVfID0gbWFwcGluZy5zZXJpYWxpemUodCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuRGF0YU1hbmlwdWxhdGUuZ2V0SW5zdGFuY2UoKSk7CisgICAgICAgIC8vIGNvcHkgbWF4IGV4cGFuc2lvbiB0YWJsZQorICAgICAgICAvLyBub3QgY29weWluZyB0aGUgZmlyc3QgZWxlbWVudCB3aGljaCBpcyBhIGR1bW15CisgICAgICAgIC8vIHRvIGJlIGluIHN5bmNoIHdpdGggaWN1NGMncyBidWlsZGVyLCB3ZSBjb250aW51ZSB0byB1c2UgdGhlIAorICAgICAgICAvLyBleHBhbnNpb24gb2Zmc2V0CisgICAgICAgIC8vIG9taXR0aW5nIGV4cGFuc2lvbiBvZmZzZXQgaW4gYnVpbGRlcgorICAgICAgICBjb2xsYXRvci5tX2V4cGFuc2lvbk9mZnNldF8gPSAwOyAKKyAgICAgICAgc2l6ZSA9IG1heGV4cGFuc2lvbi5tX2VuZEV4cGFuc2lvbkNFXy5zaXplKCkgLSAxOworICAgICAgICBjb2xsYXRvci5tX2V4cGFuc2lvbkVuZENFXyA9IG5ldyBpbnRbc2l6ZV07CisgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgc2l6ZTsgaSArKykgeworICAgICAgICAgICAgY29sbGF0b3IubV9leHBhbnNpb25FbmRDRV9baSAtIDFdID0gKChJbnRlZ2VyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhleHBhbnNpb24ubV9lbmRFeHBhbnNpb25DRV8uZ2V0KGkpKS5pbnRWYWx1ZSgpOworICAgICAgICB9CisgICAgICAgIGNvbGxhdG9yLm1fZXhwYW5zaW9uRW5kQ0VNYXhTaXplXyA9IG5ldyBieXRlW3NpemVdOworICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IHNpemU7IGkgKyspIHsKKyAgICAgICAgICAgIGNvbGxhdG9yLm1fZXhwYW5zaW9uRW5kQ0VNYXhTaXplX1tpIC0gMV0gCisgICAgICAgICAgICAgICAgID0gKChCeXRlKW1heGV4cGFuc2lvbi5tX2V4cGFuc2lvbkNFU2l6ZV8uZ2V0KGkpKS5ieXRlVmFsdWUoKTsKKyAgICAgICAgfQorICAgICAgICAvLyBVbnNhZmUgY2hhcnMgdGFibGUuICBGaW5pc2ggaXQgb2ZmLCB0aGVuIGNvcHkgaXQuCisgICAgICAgIHVuc2FmZUNQQWRkQ0NOWih0KTsKKyAgICAgICAgLy8gT3IgaW4gdW5zYWZlYml0cyBmcm9tIFVDQSwgbWFraW5nIGEgY29tYmluZWQgdGFibGUuCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgVU5TQUZFQ1BfVEFCTEVfU0laRV87IGkgKyspIHsgICAgCisgICAgICAgICAgICAgdC5tX3Vuc2FmZUNQX1tpXSB8PSBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfLm1fdW5zYWZlX1tpXTsKKyAgICAgICAgfQorICAgICAgICBjb2xsYXRvci5tX3Vuc2FmZV8gPSB0Lm1fdW5zYWZlQ1BfOworICAgIAorICAgICAgICAvLyBGaW5pc2ggYnVpbGRpbmcgQ29udHJhY3Rpb24gRW5kaW5nIGNoYXJzIGhhc2ggdGFibGUgYW5kIHRoZW4gY29weSBpdCAKKyAgICAgICAgLy8gb3V0LgorICAgICAgICAvLyBPciBpbiB1bnNhZmViaXRzIGZyb20gVUNBLCBtYWtpbmcgYSBjb21iaW5lZCB0YWJsZQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IFVOU0FGRUNQX1RBQkxFX1NJWkVfOyBpICsrKSB7ICAgIAorICAgICAgICAgICAgIHQubV9jb250ckVuZENQX1tpXSB8PSBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfLm1fY29udHJhY3Rpb25FbmRfW2ldOworICAgICAgICB9CisgICAgICAgIGNvbGxhdG9yLm1fY29udHJhY3Rpb25FbmRfID0gdC5tX2NvbnRyRW5kQ1BfOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoaXMgY29sbGF0b3IgdG8gdXNlIHRoZSBhbGwgb3B0aW9ucyBhbmQgdGFibGVzIGluIFVDQS4gCisgICAgICogQHBhcmFtIGNvbGxhdG9yIHdoaWNoIGF0dHJpYnV0ZSBpcyB0byBiZSBzZXQgCisgICAgICogQHBhcmFtIG9wdGlvbiB0byBzZXQgd2l0aAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHZvaWQgc2V0QXR0cmlidXRlcyhSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdGlvblJ1bGVQYXJzZXIuT3B0aW9uU2V0IG9wdGlvbikKKyAgICB7CisgICAgICAgIGNvbGxhdG9yLm1fY2FzZUZpcnN0XyA9IG9wdGlvbi5tX2Nhc2VGaXJzdF87CisgICAgICAgIGNvbGxhdG9yLnNldERlY29tcG9zaXRpb24ob3B0aW9uLm1fZGVjb21wb3NpdGlvbl8pOworICAgICAgICBjb2xsYXRvci5zZXRBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi5tX2lzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkXyk7CisgICAgICAgIGNvbGxhdG9yLnNldENhc2VMZXZlbChvcHRpb24ubV9pc0Nhc2VMZXZlbF8pOworICAgICAgICBjb2xsYXRvci5zZXRGcmVuY2hDb2xsYXRpb24ob3B0aW9uLm1faXNGcmVuY2hDb2xsYXRpb25fKTsKKyAgICAgICAgY29sbGF0b3IubV9pc0hpcmFnYW5hNF8gPSBvcHRpb24ubV9pc0hpcmFnYW5hNF87CisgICAgICAgIGNvbGxhdG9yLnNldFN0cmVuZ3RoKG9wdGlvbi5tX3N0cmVuZ3RoXyk7CisgICAgICAgIGNvbGxhdG9yLm1fdmFyaWFibGVUb3BWYWx1ZV8gPSBvcHRpb24ubV92YXJpYWJsZVRvcFZhbHVlXzsgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdGluZyB0aGUgY29udHJhY3Rpb24gdGFibGUKKyAgICAgKiBAcGFyYW0gdGFibGUgY29udHJhY3Rpb24gdGFibGUKKyAgICAgKiBAcmV0dXJuIAorICAgICAqLworICAgIHByaXZhdGUgaW50IGNvbnN0cnVjdFRhYmxlKENvbnRyYWN0aW9uVGFibGUgdGFibGUpIAorICAgIHsKKyAgICAgICAgLy8gU2VlIGhvdyBtdWNoIG1lbW9yeSB3ZSBuZWVkIAorICAgICAgICBpbnQgdHNpemUgPSB0YWJsZS5tX2VsZW1lbnRzXy5zaXplKCk7CisgICAgICAgIGlmICh0c2l6ZSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICB0YWJsZS5tX29mZnNldHNfLmNsZWFyKCk7CisgICAgICAgIGludCBwb3NpdGlvbiA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdHNpemU7IGkgKyspIHsKKyAgICAgICAgICAgIHRhYmxlLm1fb2Zmc2V0c18uYWRkKG5ldyBJbnRlZ2VyKHBvc2l0aW9uKSk7CisgICAgICAgICAgICBwb3NpdGlvbiArPSAoKEJhc2ljQ29udHJhY3Rpb25UYWJsZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlLm1fZWxlbWVudHNfLmdldChpKSkubV9DRXNfLnNpemUoKTsKKyAgICAgICAgfQorICAgICAgICB0YWJsZS5tX0NFc18uY2xlYXIoKTsKKyAgICAgICAgdGFibGUubV9jb2RlUG9pbnRzXy5kZWxldGUoMCwgdGFibGUubV9jb2RlUG9pbnRzXy5sZW5ndGgoKSk7CisgICAgICAgIC8vIE5vdyBzdHVmZiB0aGUgdGhpbmdzIGluCisgICAgICAgIFN0cmluZ0J1ZmZlciBjcFBvaW50ZXIgPSB0YWJsZS5tX2NvZGVQb2ludHNfOworICAgICAgICBWZWN0b3IgQ0VQb2ludGVyID0gdGFibGUubV9DRXNfOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRzaXplOyBpICsrKSB7CisgICAgICAgICAgICBCYXNpY0NvbnRyYWN0aW9uVGFibGUgYmN0ID0gKEJhc2ljQ29udHJhY3Rpb25UYWJsZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlLm1fZWxlbWVudHNfLmdldChpKTsKKyAgICAgICAgICAgIGludCBzaXplID0gYmN0Lm1fQ0VzXy5zaXplKCk7CisgICAgICAgICAgICBjaGFyIGNjTWF4ID0gMDsKKyAgICAgICAgICAgIGNoYXIgY2NNaW4gPSAyNTU7CisgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gQ0VQb2ludGVyLnNpemUoKTsKKyAgICAgICAgICAgIENFUG9pbnRlci5hZGQoYmN0Lm1fQ0VzXy5nZXQoMCkpOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDE7IGogPCBzaXplOyBqICsrKSB7CisgICAgICAgICAgICAgICAgY2hhciBjaCA9IGJjdC5tX2NvZGVQb2ludHNfLmNoYXJBdChqKTsKKyAgICAgICAgICAgICAgICBjaGFyIGNjID0gKGNoYXIpKFVDaGFyYWN0ZXIuZ2V0Q29tYmluaW5nQ2xhc3MoY2gpICYgMHhGRik7CisgICAgICAgICAgICAgICAgaWYgKGNjID4gY2NNYXgpIHsKKyAgICAgICAgICAgICAgICAgICAgY2NNYXggPSBjYzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGNjIDwgY2NNaW4pIHsKKyAgICAgICAgICAgICAgICAgICAgY2NNaW4gPSBjYzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY3BQb2ludGVyLmFwcGVuZChjaCk7CisgICAgICAgICAgICAgICAgQ0VQb2ludGVyLmFkZChiY3QubV9DRXNfLmdldChqKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjcFBvaW50ZXIuaW5zZXJ0KG9mZnNldCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKSgoKGNjTWluID09IGNjTWF4KSA/IDEgOiAwIDw8IDgpIHwgY2NNYXgpKTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgc2l6ZTsgaiArKykgeworICAgICAgICAgICAgICAgIGlmIChpc0NvbnRyYWN0aW9uVGFibGVFbGVtZW50KCgoSW50ZWdlcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0VQb2ludGVyLmdldChvZmZzZXQgKyBqKSkuaW50VmFsdWUoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGNlID0gKChJbnRlZ2VyKUNFUG9pbnRlci5nZXQob2Zmc2V0ICsgaikpLmludFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgIENFUG9pbnRlci5zZXQob2Zmc2V0ICsgaiwgCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSW50ZWdlcihjb25zdHJ1Y3RTcGVjaWFsQ0UoZ2V0Q0VUYWcoY2UpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoSW50ZWdlcil0YWJsZS5tX29mZnNldHNfLmdldCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0Q29udHJhY3Rpb25PZmZzZXQoY2UpKSkuaW50VmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gMHgxMEZGRkY7IGkgKyspIHsKKyAgICAgICAgICAgIGludCBDRSA9IHRhYmxlLm1fbWFwcGluZ18uZ2V0VmFsdWUoaSk7CisgICAgICAgICAgICBpZiAoaXNDb250cmFjdGlvblRhYmxlRWxlbWVudChDRSkpIHsKKyAgICAgICAgICAgICAgICBDRSA9IGNvbnN0cnVjdFNwZWNpYWxDRShnZXRDRVRhZyhDRSksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoSW50ZWdlcil0YWJsZS5tX29mZnNldHNfLmdldCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRDb250cmFjdGlvbk9mZnNldChDRSkpKS5pbnRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICB0YWJsZS5tX21hcHBpbmdfLnNldFZhbHVlKGksIENFKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcG9zaXRpb247CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldCBjb250cmFjdGlvbiBvZmZzZXQKKyAgICAgKiBAcGFyYW0gY2UgY29sbGF0aW9uIGVsZW1lbnQgCisgICAgICogQHJldHVybiBjb250cmFjdGlvbiBvZmZzZXQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgZ2V0Q29udHJhY3Rpb25PZmZzZXQoaW50IGNlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNlICYgMHhGRkZGRkY7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIG1heGltdW0gSmFtbyBleHBhbnNpb24KKyAgICAgKiBAcGFyYW0gdGFibGUgdHJpZSB0YWJsZQorICAgICAqIEBwYXJhbSBtYXhleHBhbnNpb24gbWF4aW11bSBleHBhbnNpb24gdGFibGUKKyAgICAgKiBAcGFyYW0gbWF4amFtb2V4cGFuc2lvbiBtYXhpbXVtIGphbW8gZXhwYW5zaW9uIHRhYmxlCisgICAgICogQHBhcmFtIGphbW9zcGVjaWFsIGlzIGphbW8gc3BlY2lhbD8KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGdldE1heEV4cGFuc2lvbkphbW8oSW50VHJpZUJ1aWxkZXIgbWFwcGluZywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1heEV4cGFuc2lvblRhYmxlIG1heGV4cGFuc2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF4SmFtb0V4cGFuc2lvblRhYmxlIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhqYW1vZXhwYW5zaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGphbW9zcGVjaWFsKQorICAgIHsKKyAgICAgICAgaW50IFZCQVNFICA9IDB4MTE2MTsKKyAgICAgICAgaW50IFRCQVNFICA9IDB4MTFBODsKKyAgICAgICAgaW50IFZDT1VOVCA9IDIxOworICAgICAgICBpbnQgVENPVU5UID0gMjg7CisgICAgICAgIGludCB2ID0gVkJBU0UgKyBWQ09VTlQgLSAxOworICAgICAgICBpbnQgdCA9IFRCQVNFICsgVENPVU5UIC0gMTsKKyAgICAgICAgCisgICAgICAgIHdoaWxlICh2ID49IFZCQVNFKSB7CisgICAgICAgICAgICBpbnQgY2UgPSBtYXBwaW5nLmdldFZhbHVlKHYpOworICAgICAgICAgICAgaWYgKChjZSAmIFJ1bGVCYXNlZENvbGxhdG9yLkNFX1NQRUNJQUxfRkxBR18pIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBSdWxlQmFzZWRDb2xsYXRvci5DRV9TUEVDSUFMX0ZMQUdfKSB7CisgICAgICAgICAgICAgICAgc2V0TWF4RXhwYW5zaW9uKGNlLCAoYnl0ZSkyLCBtYXhleHBhbnNpb24pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdiAtLTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgd2hpbGUgKHQgPj0gVEJBU0UpCisgICAgICAgIHsKKyAgICAgICAgICAgIGludCBjZSA9IG1hcHBpbmcuZ2V0VmFsdWUodCk7CisgICAgICAgICAgICBpZiAoKGNlICYgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfU1BFQ0lBTF9GTEFHXykgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICE9IFJ1bGVCYXNlZENvbGxhdG9yLkNFX1NQRUNJQUxfRkxBR18pIHsKKyAgICAgICAgICAgICAgICBzZXRNYXhFeHBhbnNpb24oY2UsIChieXRlKTMsIG1heGV4cGFuc2lvbik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0IC0tOworICAgICAgICB9CisgICAgICAgIC8vIEFjY29yZGluZyB0byB0aGUgZG9jcywgOTklIG9mIHRoZSB0aW1lLCB0aGUgSmFtbyB3aWxsIG5vdCBiZSBzcGVjaWFsIAorICAgICAgICBpZiAoamFtb3NwZWNpYWwpIHsKKyAgICAgICAgICAgIC8vIGdldHMgdGhlIG1heCBleHBhbnNpb24gaW4gYWxsIHVuaWNvZGUgY2hhcmFjdGVycworICAgICAgICAgICAgaW50IGNvdW50ID0gbWF4amFtb2V4cGFuc2lvbi5tX2VuZEV4cGFuc2lvbkNFXy5zaXplKCk7CisgICAgICAgICAgICBieXRlIG1heFRTaXplID0gKGJ5dGUpKG1heGphbW9leHBhbnNpb24ubV9tYXhMU2l6ZV8gKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4amFtb2V4cGFuc2lvbi5tX21heFZTaXplXyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heGphbW9leHBhbnNpb24ubV9tYXhUU2l6ZV8pOworICAgICAgICAgICAgYnl0ZSBtYXhWU2l6ZSA9IChieXRlKShtYXhqYW1vZXhwYW5zaW9uLm1fbWF4TFNpemVfICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heGphbW9leHBhbnNpb24ubV9tYXhWU2l6ZV8pOworICAgICAgICAKKyAgICAgICAgICAgIHdoaWxlIChjb3VudCA+IDApIHsKKyAgICAgICAgICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgICAgICAgICBpZiAoKChCb29sZWFuKW1heGphbW9leHBhbnNpb24ubV9pc1ZfLmdldChjb3VudCkpLmJvb2xlYW5WYWx1ZSgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSB0cnVlKSB7CisgICAgICAgICAgICAgICAgICAgIHNldE1heEV4cGFuc2lvbigoKEludGVnZXIpCisgICAgICAgICAgICAgICAgICAgICBtYXhqYW1vZXhwYW5zaW9uLm1fZW5kRXhwYW5zaW9uQ0VfLmdldChjb3VudCkpLmludFZhbHVlKCksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heFZTaXplLCBtYXhleHBhbnNpb24pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgc2V0TWF4RXhwYW5zaW9uKCgoSW50ZWdlcikKKyAgICAgICAgICAgICAgICAgICAgIG1heGphbW9leHBhbnNpb24ubV9lbmRFeHBhbnNpb25DRV8uZ2V0KGNvdW50KSkuaW50VmFsdWUoKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4VFNpemUsIG1heGV4cGFuc2lvbik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKiAgCisgICAgICogVG8gdGhlIFVuc2FmZUNQIGhhc2ggdGFibGUsIGFkZCBhbGwgY2hhcnMgd2l0aCBjb21iaW5pbmcgY2xhc3MgIT0gMCAgICAgCisgICAgICogQHBhcmFtIHQgYnVpbGQgdGFibGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCB2b2lkIHVuc2FmZUNQQWRkQ0NOWihCdWlsZFRhYmxlIHQpIAorICAgIHsKKyAgICAKKyAgICAgICAgZm9yIChjaGFyIGMgPSAwOyBjIDwgMHhmZmZmOyBjICsrKSB7CisgICAgICAgICAgICBjaGFyIGZjZCA9IE5vcm1hbGl6ZXJJbXBsLmdldEZDRDE2KGMpOworICAgICAgICAgICAgaWYgKGZjZCA+PSAweDEwMCB8fCAvLyBpZiB0aGUgbGVhZGluZyBjb21iaW5pbmcgY2xhc3MoYykgPiAwIHx8CisgICAgICAgICAgICAgICAgKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjKSAmJiBmY2QgIT0gMCkpIHsKKyAgICAgICAgICAgICAgICAvLyBjIGlzIGEgbGVhZGluZyBzdXJyb2dhdGUgd2l0aCBzb21lIEZDRCBkYXRhCisgICAgICAgICAgICAgICAgdW5zYWZlQ1BTZXQodC5tX3Vuc2FmZUNQXywgYyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgaWYgKHQubV9wcmVmaXhMb29rdXBfICE9IG51bGwpIHsKKyAgICAgICAgICAgIEVudW1lcmF0aW9uIGVudW0gPSB0Lm1fcHJlZml4TG9va3VwXy5lbGVtZW50cygpOworICAgICAgICAgICAgd2hpbGUgKGVudW0uaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgICAgICBFbGVtZW50cyBlID0gKEVsZW1lbnRzKWVudW0ubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICAvLyBjb2RlcG9pbnRzIGhlcmUgYXJlIGluIHRoZSBORkQgZm9ybS4gV2UgbmVlZCB0byBhZGQgdGhlCisgICAgICAgICAgICAgICAgLy8gZmlyc3QgY29kZSBwb2ludCBvZiB0aGUgTkZDIGZvcm0gdG8gdW5zYWZlLCBiZWNhdXNlIAorICAgICAgICAgICAgICAgIC8vIHN0cmNvbGwgbmVlZHMgdG8gYmFja3VwIG92ZXIgdGhlbS4KKyAgICAgICAgICAgICAgICBTdHJpbmcgZGVjb21wID0gTm9ybWFsaXplci5kZWNvbXBvc2UoZS5tX2NQb2ludHNfLCB0cnVlKTsKKyAgICAgICAgICAgICAgICB1bnNhZmVDUFNldCh0Lm1fdW5zYWZlQ1BfLCBkZWNvbXAuY2hhckF0KDApKTsKKyAgICAgICAgICAgIH0gCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlIGNsb3N1cmUKKyAgICAgKiBAcGFyYW0gdCBidWlsZCB0YWJsZQorICAgICAqIEBwYXJhbSBjb2xsYXRvciBSdWxlQmFzZWRDb2xsYXRvcgorICAgICAqIEBwYXJhbSBjb2xFbCBjb2xsYXRpb24gZWxlbWVudCBpdGVyYXRvcgorICAgICAqIEBwYXJhbSBzdGFydCAKKyAgICAgKiBAcGFyYW0gbGltaXQKKyAgICAgKiBAcGFyYW0gdHlwZSBjaGFyYWN0ZXIgdHlwZQorICAgICAqIEByZXR1cm4gCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBlbnVtQ2F0ZWdvcnlSYW5nZUNsb3N1cmVDYXRlZ29yeShCdWlsZFRhYmxlIHQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGNvbEVsLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCwgaW50IGxpbWl0LCBpbnQgdHlwZSkgCisgICAgeworICAgICAgICBpZiAodHlwZSAhPSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVU5BU1NJR05FRCAKKyAgICAgICAgICAgICYmIHR5cGUgIT0gVUNoYXJhY3RlckNhdGVnb3J5LlBSSVZBVEVfVVNFKSB7IAorICAgICAgICAgICAgLy8gaWYgdGhlIHJhbmdlIGlzIGFzc2lnbmVkIC0gd2UgbWlnaHQgb21taXQgbW9yZSBjYXRlZ29yaWVzIGxhdGVyCisgICAgICAgICAgICBFbGVtZW50cyBlbCA9IG5ldyBFbGVtZW50cygpOworICAgICAgICAgICAgY2hhciBkZWNbXSA9IG5ldyBjaGFyWzI1Nl07CisgICAgICAgICAgICBmb3IgKGludCB1MzIgPSBzdGFydDsgdTMyIDwgbGltaXQ7IHUzMiArKykgeworICAgICAgICAgICAgICAgIGludCBub09mRGVjID0gTm9ybWFsaXplckltcGwuZ2V0RGVjb21wb3NpdGlvbih1MzIsIGZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWMsIDAsIDI1Nik7CisgICAgICAgICAgICAgICAgaWYgKG5vT2ZEZWMgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGlmIHdlJ3JlIHBvc2l0aXZlLCB0aGF0IG1lYW5zIHRoZXJlIGlzIG5vIGRlY29tcG9zaXRpb24KKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGNvbXAgPSBVQ2hhcmFjdGVyLnRvU3RyaW5nKHUzMik7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZWNvbXAgPSBuZXcgU3RyaW5nKGRlYywgMCwgbm9PZkRlYyk7CisgICAgICAgICAgICAgICAgICAgIGlmICghY29sbGF0b3IuZXF1YWxzKGNvbXAsIGRlY29tcCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsLm1fY1BvaW50c18gPSBkZWNvbXA7CisgICAgICAgICAgICAgICAgICAgICAgICBlbC5tX3ByZWZpeF8gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgVmVjdG9yIGNldmVjdG9yID0gbmV3IFZlY3RvcigpOworICAgICAgICAgICAgICAgICAgICAgICAgRWxlbWVudHMgcHJlZml4ID0gKEVsZW1lbnRzKXQubV9wcmVmaXhMb29rdXBfLmdldChlbCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJlZml4ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbC5tX2NQb2ludHNfID0gY29tcDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbC5tX3ByZWZpeF8gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsLm1fcHJlZml4Q2hhcnNfID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbC5tX0NFc18gPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbEVsLnNldFRleHQoZGVjb21wKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2UgPSBjb2xFbC5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGNlICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2V2ZWN0b3IuYWRkKG5ldyBJbnRlZ2VyKGNlKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlID0gY29sRWwubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2l6ZSA9IGNldmVjdG9yLnNpemUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbC5tX0NFc18gPSBuZXcgaW50W3NpemVdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSArKykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbC5tX0NFc19baV0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICgoSW50ZWdlciljZXZlY3Rvci5nZXQoaSkpLmludFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsLm1fY1BvaW50c18gPSBjb21wOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsLm1fcHJlZml4XyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWwubV9wcmVmaXhDaGFyc18gPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsLm1fQ0VzXyA9IG5ldyBpbnRbMV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWwubV9DRXNfWzBdID0gcHJlZml4Lm1fbWFwQ0VfOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgY2hhcmFjdGVyIHVzZXMgYSBwcmVmaXguIFdlIGhhdmUgdG8gYWRkIGl0IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRvIHRoZSB1bnNhZmUgdGFibGUsIGFzIGl0IGRlY29tcG9zZWQgZm9ybSBpcyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbHJlYWR5IGluLiBJbiBKYXBhbmVzZSwgdGhpcyBoYXBwZW5zIGZvciBcdTMwOWUgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gJiBcdTMwZmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTaW5jZSB1bnNhZmVDUFNldCBpcyBzdGF0aWMgaW4gdWNvbF9lbG0sIHdlIGFyZSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBnb2luZyB0byB3cmFwIGl0IHVwIGluIHRoZSB1bnNhZmVDUEFkZENDTlogCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZnVuY3Rpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbC5tX2lzVGhhaV8gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5pc1RoYWlQcmVWb3dlbCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsLm1fY1BvaW50c18uY2hhckF0KDApKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZEFuRWxlbWVudCh0LCBlbCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIC8qKgorIAkgKiBEZXRlcm1pbmUgaWYgYSBjaGFyYWN0ZXIgaXMgYSBKYW1vCisgCSAqIEBwYXJhbSBjaCBjaGFyYWN0ZXIgdG8gdGVzdAorIAkgKiBAcmV0dXJuIHRydWUgaWYgY2ggaXMgYSBKYW1vLCBmYWxzZSBvdGhlcndpc2UKKyAJICovCisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBpc0phbW8oY2hhciBjaCkKKwl7IAorCQlyZXR1cm4gKGNoID49IDB4MTEwMCAmJiBjaCA8PSAweDExMTIpIAorCQkgICAgICAgfHwgKGNoID49IDB4MTE3NSAmJiBjaCA8PSAweDExNjEpIAorCQkgICAgICAgfHwgKGNoID49IDB4MTFBOCAmJiBjaCA8PSAweDExQzIpOworCX0KKyAgICAKKyAgICAvKioKKyAgICAgKiBQcm9kdWNlcyBjYW5vbmljYWwgY2xvc3VyZQorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBjYW5vbmljYWxDbG9zdXJlKEJ1aWxkVGFibGUgdCkgCisgICAgeworICAgICAgICBCdWlsZFRhYmxlIHRlbXAgPSBuZXcgQnVpbGRUYWJsZSh0KTsKKyAgICAgICAgYXNzZW1ibGVUYWJsZSh0ZW1wLCB0ZW1wLm1fY29sbGF0b3JfKTsKKyAgICAgICAgLy8gcHJvZHVjZSBjYW5vbmljYWwgY2xvc3VyZSAKKyAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGNvbGVpdGVyIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gdGVtcC5tX2NvbGxhdG9yXy5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoIiIpOworICAgICAgICBSYW5nZVZhbHVlSXRlcmF0b3IgdHlwZWl0ZXIgPSBVQ2hhcmFjdGVyLmdldFR5cGVJdGVyYXRvcigpOworICAgICAgICBSYW5nZVZhbHVlSXRlcmF0b3IuRWxlbWVudCBlbGVtZW50ID0gbmV3IFJhbmdlVmFsdWVJdGVyYXRvci5FbGVtZW50KCk7CisgICAgICAgIHdoaWxlICh0eXBlaXRlci5uZXh0KGVsZW1lbnQpKSB7CisgICAgICAgICAgICBlbnVtQ2F0ZWdvcnlSYW5nZUNsb3N1cmVDYXRlZ29yeSh0LCB0ZW1wLm1fY29sbGF0b3JfLCBjb2xlaXRlciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zdGFydCwgZWxlbWVudC5saW1pdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBwcm9jZXNzVUNBQ29tcGxldGVJZ25vcmFibGVzKEJ1aWxkVGFibGUgdCkgCisgICAgeworICAgICAgICBUcmllSXRlcmF0b3IgdHJpZWl0ZXJhdG9yIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gbmV3IFRyaWVJdGVyYXRvcihSdWxlQmFzZWRDb2xsYXRvci5VQ0FfLm1fdHJpZV8pOworICAgICAgICBSYW5nZVZhbHVlSXRlcmF0b3IuRWxlbWVudCBlbGVtZW50ID0gbmV3IFJhbmdlVmFsdWVJdGVyYXRvci5FbGVtZW50KCk7CisgICAgICAgIHdoaWxlICh0cmllaXRlcmF0b3IubmV4dChlbGVtZW50KSkgeworICAgICAgICAgICAgaW50IHN0YXJ0ID0gZWxlbWVudC5zdGFydDsKKyAgICAgICAgICAgIGludCBsaW1pdCA9IGVsZW1lbnQubGltaXQ7CisgICAgICAgICAgICBpZiAoZWxlbWVudC52YWx1ZSA9PSAwKSB7CisgICAgICAgICAgICAgICAgd2hpbGUgKHN0YXJ0IDwgbGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IENFID0gdC5tX21hcHBpbmdfLmdldFZhbHVlKHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKENFID09IENFX05PVF9GT1VORF8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEVsZW1lbnRzIGVsID0gbmV3IEVsZW1lbnRzKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBlbC5tX2lzVGhhaV8gPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsLm1fcHJlZml4XyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBlbC5tX3VjaGFyc18gPSBVQ2hhcmFjdGVyLnRvU3RyaW5nKHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsLm1fY1BvaW50c18gPSBlbC5tX3VjaGFyc187CisgICAgICAgICAgICAgICAgICAgICAgICBlbC5tX2NQb2ludHNPZmZzZXRfID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsLm1fQ0VzXyA9IG5ldyBpbnRbMV07CisgICAgICAgICAgICAgICAgICAgICAgICBlbC5tX0NFc19bMF0gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgYWRkQW5FbGVtZW50KHQsIGVsKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBzdGFydCArKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9Db2xsYXRpb25SdWxlUGFyc2VyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Db2xsYXRpb25SdWxlUGFyc2VyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmUzOTIxNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbGxhdGlvblJ1bGVQYXJzZXIuamF2YQpAQCAtMCwwICsxLDE3NzEgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvdGV4dC9Db2xsYXRpb25SdWxlUGFyc2VyLmphdmEsdiAkIAorKiAkRGF0ZTogMjAwMi8wOC8wMSAyMToxMToyNyAkIAorKiAkUmV2aXNpb246IDEuNSAkCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyUHJvcGVydHk7CisKKy8qKgorKiBDbGFzcyBmb3IgcGFyc2luZyBjb2xsYXRpb24gcnVsZXMsIHByb2R1Y2VzIGEgbGlzdCBvZiB0b2tlbnMgdGhhdCB3aWxsIGJlIAorKiB0dXJuZWQgaW50byBjb2xsYXRpb24gZWxlbWVudHMKKyogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyogQHNpbmNlIHJlbGVhc2UgMi4yLCBKdW5lIDcgMjAwMgorKiBAZHJhZnQgMi4yCisqLworY2xhc3MgQ29sbGF0aW9uUnVsZVBhcnNlcgoreyAgICAgCisJLy8gcHVibGljIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwkKKwkvLyBwYWNrYWdlIHByaXZhdGUgY29uc3RydWN0b3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCQorCS8qKgorICAgICAqIDxwPlJ1bGVCYXNlZENvbGxhdG9yIGNvbnN0cnVjdG9yIHRoYXQgdGFrZXMgdGhlIHJ1bGVzLiAKKyAgICAgKiBQbGVhc2Ugc2VlIFJ1bGVCYXNlZENvbGxhdG9yIGNsYXNzIGRlc2NyaXB0aW9uIGZvciBtb3JlIGRldGFpbHMgb24gdGhlIAorICAgICAqIGNvbGxhdGlvbiBydWxlIHN5bnRheC48L3A+CisgICAgICogQHNlZSBqYXZhLnV0aWwuTG9jYWxlCisgICAgICogQHBhcmFtIHJ1bGVzIHRoZSBjb2xsYXRpb24gcnVsZXMgdG8gYnVpbGQgdGhlIGNvbGxhdGlvbiB0YWJsZSBmcm9tLgorICAgICAqIEBleGNlcHRpb24gUGFyc2VFeGNlcHRpb24gdGhyb3duIHdoZW4gYXJndW1lbnQgcnVsZXMgaGF2ZSBhbiBpbnZhbGlkIAorICAgICAqICAgICAgICAgICAgc3ludGF4LgorICAgICAqIEBkcmFmdCAyLjIKKyAgICAgKi8KKyAgICBDb2xsYXRpb25SdWxlUGFyc2VyKFN0cmluZyBydWxlcykgdGhyb3dzIFBhcnNlRXhjZXB0aW9uCisgICAgeworICAgICAgICBtX3NvdXJjZV8gPSBuZXcgU3RyaW5nQnVmZmVyKE5vcm1hbGl6ZXIuZGVjb21wb3NlKHJ1bGVzLCBmYWxzZSkudHJpbSgpKTsKKyAgICAgICAgbV9ydWxlc18gPSBtX3NvdXJjZV8udG9TdHJpbmcoKTsKKyAgICAgICAgbV9jdXJyZW50XyA9IDA7CisgICAgICAgIG1fZXh0cmFDdXJyZW50XyA9IG1fc291cmNlXy5sZW5ndGgoKTsKKyAgICAgICAgbV92YXJpYWJsZVRvcF8gPSBudWxsOworICAgICAgICBtX3BhcnNlZFRva2VuXyA9IG5ldyBQYXJzZWRUb2tlbigpOworICAgICAgICBtX2hhc2hUYWJsZV8gPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgIG1fb3B0aW9uc18gPSBuZXcgT3B0aW9uU2V0KFJ1bGVCYXNlZENvbGxhdG9yLlVDQV8pOworICAgICAgICBtX2xpc3RIZWFkZXJfID0gbmV3IFRva2VuTGlzdEhlYWRlcls1MTJdOworICAgICAgICBtX3Jlc3VsdExlbmd0aF8gPSAwOworCQlhc3NlbWJsZVRva2VuTGlzdCgpOworICAgIH0KKyAgICAKKwkvLyBwYWNrYWdlIHByaXZhdGUgaW5uZXIgY2xhc3NlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIENvbGxhdGlvbiBvcHRpb25zIHNldAorICAgICAqLworICAgIHN0YXRpYyBjbGFzcyBPcHRpb25TZXQgCisgICAgeworCSAgICAvLyBwYWNrYWdlIHByaXZhdGUgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisJICAgIAorCSAgICAvKioKKwkgICAgICogSW5pdGlhbGl6ZXMgdGhlIG9wdGlvbiBzZXQgd2l0aCB0aGUgYXJndW1lbnQgY29sbGF0b3JzCisJICAgICAqIEBwYXJhbSBjb2xsYXRvciBvcHRpb24gdG8gdXNlCisJICAgICAqLworCSAgICBPcHRpb25TZXQoUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IpIAorCSAgICB7CisJCSAgICBtX3ZhcmlhYmxlVG9wVmFsdWVfID0gY29sbGF0b3IubV92YXJpYWJsZVRvcFZhbHVlXzsKKwkJICAgIG1faXNGcmVuY2hDb2xsYXRpb25fID0gY29sbGF0b3IuaXNGcmVuY2hDb2xsYXRpb24oKTsKKwkJICAgIG1faXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWRfIAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGNvbGxhdG9yLmlzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKCk7CisJCSAgICBtX2Nhc2VGaXJzdF8gPSBjb2xsYXRvci5tX2Nhc2VGaXJzdF87CisJCSAgICBtX2lzQ2FzZUxldmVsXyA9IGNvbGxhdG9yLmlzQ2FzZUxldmVsKCk7CisJCSAgICBtX2RlY29tcG9zaXRpb25fID0gY29sbGF0b3IuZ2V0RGVjb21wb3NpdGlvbigpOworCQkgICAgbV9zdHJlbmd0aF8gPSBjb2xsYXRvci5nZXRTdHJlbmd0aCgpOworCQkgICAgbV9pc0hpcmFnYW5hNF8gPSBjb2xsYXRvci5tX2lzSGlyYWdhbmE0XzsKKwkgICAgfQorCSAgICAKKwkgICAgLy8gcGFja2FnZSBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCSAgICAKKwkgICAgaW50IG1fdmFyaWFibGVUb3BWYWx1ZV87CisJICAgIGJvb2xlYW4gbV9pc0ZyZW5jaENvbGxhdGlvbl87CisJICAgIC8qKiAKKwkgICAgICogQXR0cmlidXRlIGZvciBoYW5kbGluZyB2YXJpYWJsZSBlbGVtZW50cworCSAgICAgKi8KKwkgICAgYm9vbGVhbiBtX2lzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkXzsgCisJICAgIC8qKiAKKwkgICAgICogd2hvIGdvZXMgZmlyc3QsIGxvd2VyIGNhc2Ugb3IgdXBwZXJjYXNlIAorCSAgICAgKi8KKwkgICAgaW50IG1fY2FzZUZpcnN0XzsgICAgICAgICAKKwkgICAgLyoqIAorCSAgICAgKiBkbyB3ZSBoYXZlIGFuIGV4dHJhIGNhc2UgbGV2ZWwgCisJICAgICAqLworCSAgICBib29sZWFuIG1faXNDYXNlTGV2ZWxfOyAgICAgICAgIAorCSAgICAvKiogCisJICAgICAqIGF0dHJpYnV0ZSBmb3Igbm9ybWFsaXphdGlvbiAKKwkgICAgICovCisJICAgIGludCBtX2RlY29tcG9zaXRpb25fOyAKKwkgICAgLyoqIAorCSAgICAgKiBhdHRyaWJ1dGUgZm9yIHN0cmVuZ3RoCisJICAgICAqLworCSAgICBpbnQgbV9zdHJlbmd0aF87ICAgICAgICAgIAorCSAgICAvKiogCisJICAgICAqIGF0dHJpYnV0ZSBmb3Igc3BlY2lhbCBIaXJhZ2FuYSAKKwkgICAgICovCisJICAgIGJvb2xlYW4gbV9pc0hpcmFnYW5hNF87ICAgICAgICAgCisgICAgfTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBMaXN0IG9mIHRva2VucyB1c2VkIGJ5IHRoZSBjb2xsYXRpb24gcnVsZXMKKyAgICAgKi8KKyAgICBzdGF0aWMgY2xhc3MgVG9rZW5MaXN0SGVhZGVyCisgICAgeworICAgICAgICBUb2tlbiBtX2ZpcnN0XzsKKyAgICAgICAgVG9rZW4gbV9sYXN0XzsKKyAgICAgICAgVG9rZW4gbV9yZXNldF87CisgICAgICAgIGJvb2xlYW4gbV9pbmRpcmVjdF87CisgICAgICAgIGludCBtX2Jhc2VDRV87CisgICAgICAgIGludCBtX2Jhc2VDb250Q0VfOworICAgICAgICBpbnQgbV9uZXh0Q0VfOworICAgICAgICBpbnQgbV9uZXh0Q29udENFXzsKKyAgICAgICAgaW50IG1fcHJldmlvdXNDRV87CisgICAgICAgIGludCBtX3ByZXZpb3VzQ29udENFXzsKKyAgICAgICAgaW50IG1fcG9zX1tdID0gbmV3IGludFtDb2xsYXRvci5JREVOVElDQUwgKyAxXTsKKyAgICAgICAgaW50IG1fZ2Fwc0xvX1tdID0gbmV3IGludFszICogKENvbGxhdG9yLlRFUlRJQVJZICsgMSldOworICAgICAgICBpbnQgbV9nYXBzSGlfW10gPSBuZXcgaW50WzMgKiAoQ29sbGF0b3IuVEVSVElBUlkgKyAxKV07CisgICAgICAgIGludCBtX251bVN0cl9bXSA9IG5ldyBpbnRbMyAqIChDb2xsYXRvci5URVJUSUFSWSArIDEpXTsKKyAgICAgICAgVG9rZW4gbV9mU3RyVG9rZW5fW10gPSBuZXcgVG9rZW5bQ29sbGF0b3IuVEVSVElBUlkgKyAxXTsKKyAgICAgICAgVG9rZW4gbV9sU3RyVG9rZW5fW10gPSBuZXcgVG9rZW5bQ29sbGF0b3IuVEVSVElBUlkgKyAxXTsKKyAgICB9OworICAgIAorICAgIC8qKgorICAgICAqIFRva2VuIHdyYXBwZXIgZm9yIGNvbGxhdGlvbiBydWxlcworICAgICAqLyAgIAorICAgIHN0YXRpYyBjbGFzcyBUb2tlbiAKKyAgICB7CisgICAgICAgLy8gcGFja2FnZSBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAKKyAgICAgICBpbnQgbV9DRV9bXTsKKyAgICAgICBpbnQgbV9DRUxlbmd0aF87CisgICAgICAgaW50IG1fZXhwQ0VfW107CisgICAgICAgaW50IG1fZXhwQ0VMZW5ndGhfOworICAgICAgIGludCBtX3NvdXJjZV87CisgICAgICAgaW50IG1fZXhwYW5zaW9uXzsKKyAgICAgICBpbnQgbV9wcmVmaXhfOworICAgICAgIGludCBtX3N0cmVuZ3RoXzsKKyAgICAgICBpbnQgbV90b0luc2VydF87CisgICAgICAgaW50IG1fcG9sYXJpdHlfOyAvLyAxIGZvciA8LCA8PCwgPDw8LCAsIDsgYW5kIDAgZm9yID4sID4+LCA+Pj4KKyAgICAgICBUb2tlbkxpc3RIZWFkZXIgbV9saXN0SGVhZGVyXzsKKyAgICAgICBUb2tlbiBtX3ByZXZpb3VzXzsKKyAgICAgICBUb2tlbiBtX25leHRfOworICAgICAgIFN0cmluZ0J1ZmZlciBtX3J1bGVzXzsKKyAgICAgICAKKyAgICAgICAvLyBwYWNrYWdlIHByaXZhdGUgY29uc3RydWN0b3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIAorICAgICAgIFRva2VuKCkgCisgICAgICAgeworICAgICAgICAgICBtX0NFXyA9IG5ldyBpbnRbMTI4XTsKKyAgICAgICAgICAgbV9leHBDRV8gPSBuZXcgaW50WzEyOF07CisgICAgICAgICAgIC8vIFRPRE86IHRoaXMgc2hvdWxkIGFsc28gaGFuZGxlIHJldmVyc2UKKyAgICAgICAgICAgbV9wb2xhcml0eV8gPSBUT0tFTl9QT0xBUklUWV9QT1NJVElWRV87IAorICAgICAgICAgICBtX25leHRfID0gbnVsbDsKKyAgICAgICAgICAgbV9wcmV2aW91c18gPSBudWxsOworICAgICAgICAgICBtX0NFTGVuZ3RoXyA9IDA7CisgICAgICAgICAgIG1fZXhwQ0VMZW5ndGhfID0gMDsKKyAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgLy8gcGFja2FnZSBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAKKyAgICAgICAvKioKKyAgICAgICAgKiBIYXNoY29kZSBjYWxjdWxhdGlvbiBmb3IgdG9rZW4KKyAgICAgICAgKiBAcmV0dXJuIHRoZSBoYXNoY29kZQorICAgICAgICAqLworICAgICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKQorICAgICAgIHsKKyAgICAgICAgICAgaW50IHJlc3VsdCA9IDA7CisJICAgICAgIGludCBsZW4gPSAobV9zb3VyY2VfICYgMHhGRjAwMDAwMCkgPj4+IDI0OworCSAgICAgICBpbnQgaW5jID0gKChsZW4gLSAzMikgLyAzMikgKyAxOworCSAgICAgICAgCisJICAgICAgIGludCBzdGFydCA9IG1fc291cmNlXyAmIDB4MDBGRkZGRkY7CisJICAgICAgIGludCBsaW1pdCA9IHN0YXJ0ICsgbGVuOyAgICAKKwkKKwkgICAgICAgd2hpbGUgKHN0YXJ0IDwgbGltaXQpIHsKKwkgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzNykgKyBtX3J1bGVzXy5jaGFyQXQoc3RhcnQpOworCSAgICAgICAgICAgc3RhcnQgKz0gaW5jOworCSAgICAgICB9CisJICAgICAgIHJldHVybiByZXN1bHQ7CisJICAgfQorCQorCSAgIC8qKgorCSAgICAqIEVxdWFscyBjYWxjdWxhdGlvbgorCSAgICAqIEBwYXJhbSB0YXJnZXQgb2JqZWN0IHRvIGNvbXBhcmUKKwkgICAgKiBAcmV0dXJuIHRydWUgaWYgdGFyZ2V0IGlzIHRoZSBzYW1lIGFzIHRoaXMgb2JqZWN0CisJICAgICovCisJICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCB0YXJnZXQpCisJICAgeworCSAgICAgICBpZiAodGFyZ2V0ID09IHRoaXMpIHsKKwkgICAgICAgICAgIHJldHVybiB0cnVlOworCSAgICAgICB9CisJICAgICAgIGlmICh0YXJnZXQgaW5zdGFuY2VvZiBUb2tlbikgeworCSAgICAgICAgICAgVG9rZW4gdCA9IChUb2tlbil0YXJnZXQ7CisJCQkgICBpbnQgc3N0YXJ0ID0gbV9zb3VyY2VfICYgMHgwMEZGRkZGRjsKKwkJCSAgIGludCB0c3RhcnQgPSB0Lm1fc291cmNlXyAmIDB4MDBGRkZGRkY7CisJCQkgICBpbnQgc2xpbWl0ID0gKG1fc291cmNlXyAmIDB4RkYwMDAwMDApID4+IDI0OworCQkJICAgaW50IHRsaW1pdCA9IChtX3NvdXJjZV8gJiAweEZGMDAwMDAwKSA+PiAyNDsKKwkJCSAgIAorCQkJICAgaW50IGVuZCA9IHNzdGFydCArIHNsaW1pdCAtIDE7CisJCQkKKwkJCSAgIGlmIChtX3NvdXJjZV8gPT0gMCB8fCB0Lm1fc291cmNlXyA9PSAwKSB7CisJCQkgICAgICAgcmV0dXJuIGZhbHNlOworCQkJICAgfQorCQkJICAgaWYgKHNsaW1pdCAhPSB0bGltaXQpIHsKKwkJCSAgICAgICByZXR1cm4gZmFsc2U7CisJCQkgICB9CisJCQkgICBpZiAobV9zb3VyY2VfID09IHQubV9zb3VyY2VfKSB7CisJCQkgICAgICAgcmV0dXJuIHRydWU7CisJCQkgICB9CisgICAgICAgICAgICAgICAKKwkJCSAgIHdoaWxlIChzc3RhcnQgPCBlbmQgCisJCQkgICAgICAgICAgJiYgbV9ydWxlc18uY2hhckF0KHNzdGFydCkgPT0gdC5tX3J1bGVzXy5jaGFyQXQodHN0YXJ0KSkgCisJICAgICAgICAgICB7CisJICAgICAgICAgICAgICAgKysgc3N0YXJ0OworCSAgICAgICAgICAgICAgICsrIHRzdGFydDsKKwkgICAgICAgICAgIH0KKwkJCSAgIGlmIChtX3J1bGVzXy5jaGFyQXQoc3N0YXJ0KSA9PSB0Lm1fcnVsZXNfLmNoYXJBdCh0c3RhcnQpKSB7CisJCQkgICAgICAgcmV0dXJuIHRydWU7CisJCQkgICB9CisJICAgICAgIH0gICAgCisJICAgICAgIHJldHVybiBmYWxzZTsKKwkgICAgfQorICAgIH07CisgICAgCisgICAgLy8gcGFja2FnZSBwcml2YXRlIGRhdGEgbWVtYmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBJbmRpY2F0b3IgdGhhdCB0aGUgdG9rZW4gaXMgcmVzZXR0ZWQgeWV0LCBpZSAmIGluIHRoZSBydWxlcworICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgVE9LRU5fUkVTRVRfID0gMHhERUFEQkVFRjsKKyAgICAKKyAgICAvKioKKyAgICAgKiBTaXplIG9mIHRoZSBudW1iZXIgb2YgdG9rZW5zCisgICAgICovCisgICAgaW50IG1fcmVzdWx0TGVuZ3RoXzsKKyAgICAvKioKKyAgICAgKiBMaXN0IG9mIHBhcnNlZCB0b2tlbnMKKyAgICAgKi8KKyAgICBUb2tlbkxpc3RIZWFkZXIgbV9saXN0SGVhZGVyX1tdOworICAgIC8qKgorICAgICAqIFZhcmlhYmxlIHRvcCB0b2tlbgorICAgICAqLworICAgIFRva2VuIG1fdmFyaWFibGVUb3BfOworICAgIC8qKgorICAgICAqIENvbGxhdGlvbiBvcHRpb25zCisgICAgICovCisgICAgT3B0aW9uU2V0IG1fb3B0aW9uc187CisgICAgLyoqCisgICAgICogTm9ybWFsaXplZCBjb2xsYXRpb24gcnVsZXMgd2l0aCBzb21lIGV4dHJhIGNoYXJhY3RlcnMKKyAgICAgKi8KKyAgICBTdHJpbmdCdWZmZXIgbV9zb3VyY2VfOworICAgIC8qKgorICAgICAqIEhhc2ggdGFibGUgdG8ga2VlcCBhbGwgdG9rZW5zCisgICAgICovCisgICAgSGFzaHRhYmxlIG1faGFzaFRhYmxlXzsKKyAgICAKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgbWV0aG9kIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIHZvaWQgc2V0RGVmYXVsdE9wdGlvbnNJbkNvbGxhdG9yKFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yKQorICAgIHsKKyAgICAgICAgY29sbGF0b3IubV9kZWZhdWx0U3RyZW5ndGhfID0gbV9vcHRpb25zXy5tX3N0cmVuZ3RoXzsKKyAgICAgICAgY29sbGF0b3IubV9kZWZhdWx0RGVjb21wb3NpdGlvbl8gPSBtX29wdGlvbnNfLm1fZGVjb21wb3NpdGlvbl87CisgICAgICAgIGNvbGxhdG9yLm1fZGVmYXVsdElzRnJlbmNoQ29sbGF0aW9uXyA9IG1fb3B0aW9uc18ubV9pc0ZyZW5jaENvbGxhdGlvbl87CisgICAgICAgIGNvbGxhdG9yLm1fZGVmYXVsdElzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkXyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gbV9vcHRpb25zXy5tX2lzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkXzsKKyAgICAgICAgY29sbGF0b3IubV9kZWZhdWx0SXNDYXNlTGV2ZWxfID0gbV9vcHRpb25zXy5tX2lzQ2FzZUxldmVsXzsKKyAgICAgICAgY29sbGF0b3IubV9kZWZhdWx0Q2FzZUZpcnN0XyA9IG1fb3B0aW9uc18ubV9jYXNlRmlyc3RfOworICAgICAgICBjb2xsYXRvci5tX2RlZmF1bHRJc0hpcmFnYW5hNF8gPSBtX29wdGlvbnNfLm1faXNIaXJhZ2FuYTRfOworICAgICAgICBjb2xsYXRvci5tX2RlZmF1bHRWYXJpYWJsZVRvcFZhbHVlXyA9IG1fb3B0aW9uc18ubV92YXJpYWJsZVRvcFZhbHVlXzsKKyAgICB9CisgICAgCisgICAgLy8gcHJpdmF0ZSBpbm5lciBjbGFzc2VzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKiogCisgICAgICogVGhpcyBpcyBhIHRva2VuIHRoYXQgaGFzIGJlZW4gcGFyc2VkIGJ1dCBub3QgeWV0IHByb2Nlc3NlZC4gVXNlZCB0byAKKyAgICAgKiByZWR1Y2UgdGhlIG51bWJlciBvZiBhcmd1bWVudHMgaW4gdGhlIHBhcnNlcgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFBhcnNlZFRva2VuIAorICAgIHsKKyAgICAgICAgLy8gcHJpdmF0ZSBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogRW1wdHkgY29uc3RydWN0b3IKKyAgICAgICAgICovCisgICAgICAgIFBhcnNlZFRva2VuKCkKKyAgICAgICAgeworICAgICAgICAgICAgbV9jaGFyc0xlbl8gPSAwOworICAgICAgICAgICAgbV9jaGFyc09mZnNldF8gPSAwOworICAgICAgICAgICAgbV9leHRlbnNpb25MZW5fID0gMDsKKyAgICAgICAgICAgIG1fZXh0ZW5zaW9uT2Zmc2V0XyA9IDA7CisgICAgICAgICAgICBtX3ByZWZpeExlbl8gPSAwOworICAgICAgICAgICAgbV9wcmVmaXhPZmZzZXRfID0gMDsKKyAgICAgICAgICAgIG1fZmxhZ3NfID0gMDsKKyAgICAgICAgICAgIG1fc3RyZW5ndGhfID0gVE9LRU5fVU5TRVRfOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgICAgIGludCBtX3N0cmVuZ3RoXzsKKyAgICAgICAgaW50IG1fY2hhcnNPZmZzZXRfOworICAgICAgICBpbnQgbV9jaGFyc0xlbl87CisgICAgICAgIGludCBtX2V4dGVuc2lvbk9mZnNldF87CisgICAgICAgIGludCBtX2V4dGVuc2lvbkxlbl87CisgICAgICAgIGludCBtX3ByZWZpeE9mZnNldF87CisgICAgICAgIGludCBtX3ByZWZpeExlbl87CisgICAgICAgIGNoYXIgbV9mbGFnc187CisgICAgICAgIGNoYXIgbV9pbmRpcmVjdEluZGV4XzsKKyAgICB9OworICAgIAorICAgIC8qKgorICAgICAqIEJvdW5kYXJ5IHdyYXBwZXJzCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgSW5kaXJlY3RCb3VuZGFyaWVzIAorICAgIHsKKyAgICAgICAgLy8gcGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAgICAgSW5kaXJlY3RCb3VuZGFyaWVzKGludCBzdGFydGNlW10sIGludCBsaW1pdGNlW10pIAorICAgICAgICB7CisgICAgICAgICAgICAvLyBTZXQgdmFsdWVzIGZvciB0aGUgdG9wIC0gVE9ETzogb25jZSB3ZSBoYXZlIHZhbHVlcyBmb3IgYWxsIHRoZSAKKyAgICAgICAgICAgIC8vIGluZGlyZWN0cywgd2UgYXJlIGdvaW5nIHRvIGluaXRhbGl6ZSBoZXJlLiAKKyAgICAgICAgICAgIG1fc3RhcnRDRV8gPSBzdGFydGNlWzBdOworICAgICAgICAgICAgbV9zdGFydENvbnRDRV8gPSBzdGFydGNlWzFdOworICAgICAgICAgICAgaWYgKGxpbWl0Y2UgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG1fbGltaXRDRV8gPSBsaW1pdGNlWzBdOworICAgICAgICAgICAgICAgIG1fbGltaXRDb250Q0VfID0gbGltaXRjZVsxXTsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsgCisgICAgICAgICAgICAgICAgbV9saW1pdENFXyA9IDA7CisgICAgICAgICAgICAgICAgbV9saW1pdENvbnRDRV8gPSAwOyAKKyAgICAgICAgICAgIH0gCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisJICAgIGludCBtX3N0YXJ0Q0VfOworCSAgICBpbnQgbV9zdGFydENvbnRDRV87CisJICAgIGludCBtX2xpbWl0Q0VfOworCSAgICBpbnQgbV9saW1pdENvbnRDRV87CisgICAgfTsKKworICAgIC8qKgorICAgICAqIENvbGxhdGlvbiBvcHRpb24gcnVsZSB0YWcKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBUb2tlbk9wdGlvbgorICAgIHsKKyAgICAJLy8gcGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAkKKyAgICAJVG9rZW5PcHRpb24oU3RyaW5nIG5hbWUsIGludCBhdHRyaWJ1dGUsIFN0cmluZyBzdWJvcHRpb25zW10sCisgICAgCSAgICAgICAgICAgIGludCBzdWJvcHRpb25hdHRyaWJ1dGV2YWx1ZVtdKSAKKyAgICAJeworICAgIAkJbV9uYW1lXyA9IG5hbWU7CisgICAgCQltX2F0dHJpYnV0ZV8gPSBhdHRyaWJ1dGU7CisgICAgICAgIAltX3N1Yk9wdGlvbnNfID0gc3Vib3B0aW9uczsKKyAgICAgICAgCW1fc3ViT3B0aW9uQXR0cmlidXRlVmFsdWVzXyA9IHN1Ym9wdGlvbmF0dHJpYnV0ZXZhbHVlOwkJCisgICAgCX0KKyAgICAJCisgICAgCS8vIHBhY2thZ2UgcHJpdmF0ZSBkYXRhIG1lbWJlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAJCisgICAgCXByaXZhdGUgU3RyaW5nIG1fbmFtZV87CisgICAgCXByaXZhdGUgaW50IG1fYXR0cmlidXRlXzsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgbV9zdWJPcHRpb25zX1tdOworICAgICAgICBwcml2YXRlIGludCBtX3N1Yk9wdGlvbkF0dHJpYnV0ZVZhbHVlc19bXTsKKyAgICB9OworICAgIAorICAgIC8vIHByaXZhdGUgdmFyaWFibGVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDdXJyZW50IHBhcnNlZCB0b2tlbgorICAgICAqLworICAgIHByaXZhdGUgUGFyc2VkVG9rZW4gbV9wYXJzZWRUb2tlbl87CisgICAgLyoqCisgICAgICogQ29sbGF0aW9uIHJ1bGUKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBtX3J1bGVzXzsKKyAgICBwcml2YXRlIGludCBtX2N1cnJlbnRfOworICAgIC8qKgorICAgICAqIEN1cnJlbnQgb2Zmc2V0IGluIG1fc291cmNlCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9zb3VyY2VMaW1pdF87CisgICAgLyoqCisgICAgICogT2Zmc2V0IHRvIG1fc291cmNlXyBvZnIgdGhlIGV4dHJhIGV4cGFuc2lvbiBjaGFyYWN0ZXJzCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9leHRyYUN1cnJlbnRfOworICAgIC8qKiAKKyAgICAgKiBUaGlzIGlzIHNwYWNlIGZvciB0aGUgZXh0cmEgc3RyaW5ncyB0aGF0IG5lZWQgdG8gYmUgdW5xdW90ZWQgZHVyaW5nIHRoZSAKKyAgICAgKiBwYXJzaW5nIG9mIHRoZSBydWxlcyAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVE9LRU5fRVhUUkFfUlVMRV9TUEFDRV9TSVpFXyA9IDIwNDg7CisgICAgLyoqCisgICAgICogSW5kaWNhdG9yIHRoYXQgdGhlIHRva2VuIGlzIG5vdCBzZXQgeWV0CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFRPS0VOX1VOU0VUXyA9IDB4RkZGRkZGRkY7CisgICAgLyoqCisgICAgICogSW5kaWNhdG9yIHRoYXQgdGhlIHJ1bGUgaXMgaW4gdGhlID4gcG9sYXJpdHksIGllIGV2ZXJ5dGhpbmcgb24gdGhlIAorICAgICAqIHJpZ2h0IG9mIHRoZSBydWxlIGlzIGxlc3MgdGhhbgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBUT0tFTl9QT0xBUklUWV9ORUdBVElWRV8gPSAwOworICAgIC8qKgorICAgICAqIEluZGljYXRvciB0aGF0IHRoZSBydWxlIGlzIGluIHRoZSA8IHBvbGFyaXR5LCBpZSBldmVyeXRoaW5nIG9uIHRoZSAKKyAgICAgKiByaWdodCBvZiB0aGUgcnVsZSBpcyBncmVhdGVyIHRoYW4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVE9LRU5fUE9MQVJJVFlfUE9TSVRJVkVfID0gMTsKKyAgICAvKioKKyAgICAgKiBGbGFnIG1hc2sgdG8gZGV0ZXJtaW5lIGlmIHRvcCBpcyBzZXQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVE9LRU5fVE9QX01BU0tfID0gMHgwNDsKKyAgICAvKioKKyAgICAgKiBGbGFnIG1hc2sgdG8gZGV0ZXJtaW5lIGlmIHZhcmlhYmxlIHRvcCBpcyBzZXQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVE9LRU5fVkFSSUFCTEVfVE9QX01BU0tfID0gMHgwODsKKyAgICAvKioKKyAgICAgKiBGbGFnIG1hc2sgdG8gZGV0ZXJtaW5lIGlmIGEgYmVmb3JlIGF0dHJpYnV0ZSBpcyBzZXQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVE9LRU5fQkVGT1JFXyA9IDB4MDM7CisgICAgLyoqCisgICAgICogRm9yIHVzZSBpbiBwYXJzaW5nIHRva2VuIG9wdGlvbnMKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVE9LRU5fU1VDQ0VTU19NQVNLXyA9IDB4MTA7CisgICAgCisgICAgLyoqIAorICAgICAqIFRoZXNlIHZhbHVlcyBhcmUgdXNlZCBmb3IgZmluZGluZyBDRSB2YWx1ZXMgZm9yIGluZGlyZWN0IHBvc2l0aW9uaW5nLiAKKyAgICAgKiBJbmRpcmVjdCBwb3NpdGlvbmluZyBpcyBhIG1lY2hhbmlzbSBmb3IgYWxsb3dpbmcgcmVzZXRzIG9uIHN5bWJvbGljIAorICAgICAqIHZhbHVlcy4gSXQgb25seSB3b3JrcyBmb3IgcmVzZXRzIGFuZCB5b3UgY2Fubm90IHRhaWxvciBpbmRpcmVjdCBuYW1lcy4KKyAgICAgKiBBbiBpbmRpcmVjdCBuYW1lIGNhbiBkZWZpbmUgZWl0aGVyIGFuIGFuY2hvciBwb2ludCBvciBhIHJhbmdlLiBBbiBhbmNob3IgCisgICAgICogcG9pbnQgYmVoYXZlcyBpbiBleGFjdGx5IHRoZSBzYW1lIHdheSBhcyBhIGNvZGUgcG9pbnQgaW4gcmVzZXQgd291bGQsIAorICAgICAqIGV4Y2VwdCB0aGF0IGl0IGNhbm5vdCBiZSB0YWlsb3JlZC4gQSByYW5nZSAod2UgY3VycmVudGx5IG9ubHkga25vdyBmb3IgCisgICAgICogdGhlIFt0b3BdIHJhbmdlIHdpbGwgZXhwbGljaXRseSBzZXQgdGhlIHVwcGVyIGJvdW5kIGZvciBnZW5lcmF0ZWQgQ0VzLCAKKyAgICAgKiB0aHVzIGFsbG93aW5nIGZvciBiZXR0ZXIgY29udHJvbCBvdmVyIGhvdyBtYW55IENFcyBjYW4gYmUgc3F1ZWV6ZWQgCisgICAgICogYmV0d2VlbiBpbiB0aGUgcmFuZ2Ugd2l0aG91dCBwZXJmb3JtYW5jZSBwZW5hbHR5LiBJbiB0aGF0IHJlc3BlY3QsIHdlIHVzZSAKKyAgICAgKiBbdG9wXSBmb3IgdGFpbG9yaW5nIG9mIGxvY2FsZXMgdGhhdCB1c2UgQ0pLIGNoYXJhY3RlcnMuIE90aGVyIGluZGlyZWN0IAorICAgICAqIHZhbHVlcyBhcmUgY3VycmVudGx5IGEgcHVyZSBjb252ZW5pZW5jZSwgdGhleSBjYW4gYmUgdXNlZCB0byBhc3N1cmUgdGhhdCAKKyAgICAgKiB0aGUgQ0VzIHdpbGwgYmUgYWx3YXlzIHBvc2l0aW9uZWQgaW4gdGhlIHNhbWUgcGxhY2UgcmVsYXRpdmUgdG8gYSBwb2ludCAKKyAgICAgKiB3aXRoIGtub3duIHByb3BlcnRpZXMgKGUuZy4gZmlyc3QgcHJpbWFyeSBpZ25vcmFibGUpLiAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBJbmRpcmVjdEJvdW5kYXJpZXMgSU5ESVJFQ1RfQk9VTkRBUklFU19bXTsKKyAgIAorICAgIC8qKgorICAgICAqIEludmVyc2UgVUNBIGNvbnN0YW50cworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJTlZFUlNFX1NJWkVfTUFTS18gPSAweEZGRjAwMDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJTlZFUlNFX09GRlNFVF9NQVNLXyA9IDB4MDAwRkZGRkY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElOVkVSU0VfU0hJRlRfVkFMVUVfID0gMjA7CisgICAgCisgICAgLyoqCisgICAgICogQ29sbGF0aW9uIG9wdGlvbiB0YWdzCisgICAgICogW2xhc3QgdmFyaWFibGVdIGxhc3QgdmFyaWFibGUgdmFsdWUgCisgICAgICogW2xhc3QgcHJpbWFyeSBpZ25vcmFibGVdIGxhcmdlc3QgQ0UgZm9yIHByaW1hcnkgaWdub3JhYmxlIAorICAgICAqIFtsYXN0IHNlY29uZGFyeSBpZ25vcmFibGVdIGxhcmdlc3QgQ0UgZm9yIHNlY29uZGFyeSBpZ25vcmFibGUgCisgICAgICogW2xhc3QgdGVydGlhcnkgaWdub3JhYmxlXSBsYXJnZXN0IENFIGZvciB0ZXJ0aWFyeSBpZ25vcmFibGUgCisgICAgICogW3RvcF0gZ3VhcmFudGVlZCB0byBiZSBhYm92ZSBhbGwgaW1wbGljaXQgQ0VzLCBmb3Igbm93IGFuZCBpbiB0aGUgZnV0dXJlIChpbiAxLjgpIAorCSAqLworCXByaXZhdGUgc3RhdGljIGZpbmFsIFRva2VuT3B0aW9uIFJVTEVTX09QVElPTlNfW107CisJCisJc3RhdGljIAorCXsKKyAgICAgICAgSU5ESVJFQ1RfQk9VTkRBUklFU18gPSBuZXcgSW5kaXJlY3RCb3VuZGFyaWVzWzE1XTsKKyAgICAgICAgLy8gVUNPTF9SRVNFVF9UT1BfVkFMVUUKKyAgICAgICAgSU5ESVJFQ1RfQk9VTkRBUklFU19bMF0gPSBuZXcgSW5kaXJlY3RCb3VuZGFyaWVzKAorICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlNUQU5UU18uTEFTVF9OT05fVkFSSUFCTEVfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLlVDQV9DT05TVEFOVFNfLkZJUlNUX0lNUExJQ0lUXyk7CisgICAgICAgIC8vIFVDT0xfRklSU1RfUFJJTUFSWV9JR05PUkFCTEUKKyAgICAgICAgSU5ESVJFQ1RfQk9VTkRBUklFU19bMV0gPSBuZXcgSW5kaXJlY3RCb3VuZGFyaWVzKAorICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5GSVJTVF9QUklNQVJZX0lHTk9SQUJMRV8sIAorICAgICAgICAgICAgICAgICAgICBudWxsKTsKKyAgICAgICAgLy8gVUNPTF9MQVNUX1BSSU1BUllfSUdOT1JBQkxFCisgICAgICAgIElORElSRUNUX0JPVU5EQVJJRVNfWzJdID0gbmV3IEluZGlyZWN0Qm91bmRhcmllcygKKyAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlNUQU5UU18uTEFTVF9QUklNQVJZX0lHTk9SQUJMRV8sIAorICAgICAgICAgICAgICAgICAgICBudWxsKTsKKyAgICAgICAgICAKKyAgICAgICAgLy8gVUNPTF9GSVJTVF9TRUNPTkRBUllfSUdOT1JBQkxFCisgICAgICAgIElORElSRUNUX0JPVU5EQVJJRVNfWzNdID0gbmV3IEluZGlyZWN0Qm91bmRhcmllcygKKyAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5GSVJTVF9TRUNPTkRBUllfSUdOT1JBQkxFXywgCisgICAgICAgICAgICAgICAgICAgbnVsbCk7CisgICAgICAgIC8vIFVDT0xfTEFTVF9TRUNPTkRBUllfSUdOT1JBQkxFCisgICAgICAgIElORElSRUNUX0JPVU5EQVJJRVNfWzRdID0gbmV3IEluZGlyZWN0Qm91bmRhcmllcygKKyAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5MQVNUX1NFQ09OREFSWV9JR05PUkFCTEVfLCAKKyAgICAgICAgICAgICAgICAgICBudWxsKTsKKyAgICAgICAgLy8gVUNPTF9GSVJTVF9URVJUSUFSWV9JR05PUkFCTEUgCisgICAgICAgIElORElSRUNUX0JPVU5EQVJJRVNfWzVdID0gbmV3IEluZGlyZWN0Qm91bmRhcmllcygKKyAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5GSVJTVF9URVJUSUFSWV9JR05PUkFCTEVfLCAKKyAgICAgICAgICAgICAgICAgICBudWxsKTsKKyAgICAgICAgLy8gVUNPTF9MQVNUX1RFUlRJQVJZX0lHTk9SQUJMRQorICAgICAgICBJTkRJUkVDVF9CT1VOREFSSUVTX1s2XSA9IG5ldyBJbmRpcmVjdEJvdW5kYXJpZXMoCisgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlNUQU5UU18uTEFTVF9URVJUSUFSWV9JR05PUkFCTEVfLCAKKyAgICAgICAgICAgICAgICAgICBudWxsKTsKKyAgICAgICAgLy8gVUNPTF9GSVJTVF9WQVJJQUJMRTsKKyAgICAgICAgSU5ESVJFQ1RfQk9VTkRBUklFU19bN10gPSBuZXcgSW5kaXJlY3RCb3VuZGFyaWVzKAorICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLlVDQV9DT05TVEFOVFNfLkZJUlNUX1ZBUklBQkxFXywgCisgICAgICAgICAgICAgICAgICAgbnVsbCk7ICAKKyAgICAgICAgLy8gVUNPTF9MQVNUX1ZBUklBQkxFIAorICAgICAgICBJTkRJUkVDVF9CT1VOREFSSUVTX1s4XSA9IG5ldyBJbmRpcmVjdEJvdW5kYXJpZXMoCisgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlNUQU5UU18uTEFTVF9WQVJJQUJMRV8sIAorICAgICAgICAgICAgICAgICAgIG51bGwpOworICAgICAgICAvLyBVQ09MX0ZJUlNUX05PTl9WQVJJQUJMRQorICAgICAgICBJTkRJUkVDVF9CT1VOREFSSUVTX1s5XSA9IG5ldyBJbmRpcmVjdEJvdW5kYXJpZXMoCisgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlNUQU5UU18uRklSU1RfTk9OX1ZBUklBQkxFXywgCisgICAgICAgICAgICAgICAgICAgbnVsbCk7CisgICAgICAgIC8vIFVDT0xfTEFTVF9OT05fVkFSSUFCTEUKKyAgICAgICAgSU5ESVJFQ1RfQk9VTkRBUklFU19bMTBdID0gbmV3IEluZGlyZWN0Qm91bmRhcmllcygKKyAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5MQVNUX05PTl9WQVJJQUJMRV8sIAorICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLlVDQV9DT05TVEFOVFNfLkZJUlNUX0lNUExJQ0lUXyk7CisgICAgICAgIC8vIFVDT0xfRklSU1RfSU1QTElDSVQgCisgICAgICAgIElORElSRUNUX0JPVU5EQVJJRVNfWzExXSA9IG5ldyBJbmRpcmVjdEJvdW5kYXJpZXMoCisgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlNUQU5UU18uRklSU1RfSU1QTElDSVRfLAorICAgICAgICAgICAgICAgICAgIG51bGwpOyAKKyAgICAgICAgLy8gVUNPTF9MQVNUX0lNUExJQ0lUIAorICAgICAgICBJTkRJUkVDVF9CT1VOREFSSUVTX1sxMl0gPSBuZXcgSW5kaXJlY3RCb3VuZGFyaWVzKAorICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLlVDQV9DT05TVEFOVFNfLkxBU1RfSU1QTElDSVRfLCAKKyAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5GSVJTVF9UUkFJTElOR18pOyAKKyAgICAgICAgLy8gVUNPTF9GSVJTVF9UUkFJTElORyAKKyAgICAgICAgSU5ESVJFQ1RfQk9VTkRBUklFU19bMTNdID0gbmV3IEluZGlyZWN0Qm91bmRhcmllcygKKyAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5GSVJTVF9UUkFJTElOR18sIAorICAgICAgICAgICAgICAgICAgIG51bGwpOyAKKyAgICAgICAgLy8gVUNPTF9MQVNUX1RSQUlMSU5HIAorICAgICAgICBJTkRJUkVDVF9CT1VOREFSSUVTX1sxNF0gPSBuZXcgSW5kaXJlY3RCb3VuZGFyaWVzKAorICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLlVDQV9DT05TVEFOVFNfLkxBU1RfVFJBSUxJTkdfLCAKKyAgICAgICAgICAgICAgICAgICBudWxsKTsgCisgICAgICAgIElORElSRUNUX0JPVU5EQVJJRVNfWzE0XS5tX2xpbWl0Q0VfIAorICAgICAgICAgICAgICAgICA9IFJ1bGVCYXNlZENvbGxhdG9yLlVDQV9DT05TVEFOVFNfLlBSSU1BUllfU1BFQ0lBTF9NSU5fIDw8IDI0OyAKKworCQlSVUxFU19PUFRJT05TXyA9IG5ldyBUb2tlbk9wdGlvblsxN107CisJCVN0cmluZyBvcHRpb25bXSA9IHsibm9uLWlnbm9yYWJsZSIsICJzaGlmdGVkIn07CisJCWludCB2YWx1ZVtdID0ge1J1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLk5PTl9JR05PUkFCTEVfLCAKKwkgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlVmFsdWUuU0hJRlRFRF99OworCSAgICBSVUxFU19PUFRJT05TX1swXSA9IG5ldyBUb2tlbk9wdGlvbigiYWx0ZXJuYXRlIiwgCisJICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGUuQUxURVJOQVRFX0hBTkRMSU5HXywgCisJICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24sIHZhbHVlKTsKKyAgICAgICAgb3B0aW9uID0gbmV3IFN0cmluZ1sxXTsKKyAgICAgICAgb3B0aW9uWzBdID0gIjIiOworICAgICAgICB2YWx1ZSA9IG5ldyBpbnRbMV07CisgICAgICAgIHZhbHVlWzBdID0gUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlVmFsdWUuT05fOworICAgICAgICBSVUxFU19PUFRJT05TX1sxXSA9IG5ldyBUb2tlbk9wdGlvbigiYmFja3dhcmRzIiwgCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGUuRlJFTkNIX0NPTExBVElPTl8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24sIHZhbHVlKTsKKwkgICAgU3RyaW5nIG9mZm9ub3B0aW9uW10gPSBuZXcgU3RyaW5nWzJdOworICAgICAgICBvZmZvbm9wdGlvblswXSA9ICJvZmYiOyAKKyAgICAgICAgb2Zmb25vcHRpb25bMV0gPSAib24iOworICAgICAgICBpbnQgb2Zmb252YWx1ZVtdID0gbmV3IGludFsyXTsKKyAgICAgICAgb2Zmb252YWx1ZVswXSA9IFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLk9GRl87IAorICAgICAgICBvZmZvbnZhbHVlWzFdID0gUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlVmFsdWUuT05fOworICAgICAgICBSVUxFU19PUFRJT05TX1syXSA9IG5ldyBUb2tlbk9wdGlvbigiY2FzZUxldmVsIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGUuQ0FTRV9MRVZFTF8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZvbm9wdGlvbiwgb2Zmb252YWx1ZSk7CisJICAgIG9wdGlvbiA9IG5ldyBTdHJpbmdbM107CisgICAgICAgIG9wdGlvblswXSA9ICJsb3dlciI7IAorICAgICAgICBvcHRpb25bMV0gPSAidXBwZXIiOworICAgICAgICBvcHRpb25bMl0gPSAib2ZmIjsKKyAgICAgICAgdmFsdWUgPSBuZXcgaW50WzNdOworICAgICAgICB2YWx1ZVswXSA9IFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLkxPV0VSX0ZJUlNUXzsKKyAgICAgICAgdmFsdWVbMV0gPSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGVWYWx1ZS5VUFBFUl9GSVJTVF87CisgICAgICAgIHZhbHVlWzJdID0gUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlVmFsdWUuT0ZGXzsKKyAgICAgICAgUlVMRVNfT1BUSU9OU19bM10gPSBuZXcgVG9rZW5PcHRpb24oImNhc2VGaXJzdCIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlLkNBU0VfRklSU1RfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbiwgdmFsdWUpOworICAgICAgICBSVUxFU19PUFRJT05TX1s0XSA9IG5ldyBUb2tlbk9wdGlvbigibm9ybWFsaXphdGlvbiIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5OT1JNQUxJWkFUSU9OX01PREVfLAorICAgICAgICAJICAgICAgICAgICAgICAgICAgIG9mZm9ub3B0aW9uLCBvZmZvbnZhbHVlKTsKKwkgICAgUlVMRVNfT1BUSU9OU19bNV0gPSBuZXcgVG9rZW5PcHRpb24oImhpcmFnYW5hUSIsIAorCSAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5ISVJBR0FOQV9RVUFURVJOQVJZX01PREVfLAorCSAgICAJICAgICAgICAgICAgIG9mZm9ub3B0aW9uLCBvZmZvbnZhbHVlKTsKKyAgICAgICAgb3B0aW9uID0gbmV3IFN0cmluZ1s1XTsKKyAgICAgICAgb3B0aW9uWzBdID0gIjEiOyAKKyAgICAgICAgb3B0aW9uWzFdID0gIjIiOworICAgICAgICBvcHRpb25bMl0gPSAiMyI7CisgICAgICAgIG9wdGlvblszXSA9ICI0IjsgCisgICAgICAgIG9wdGlvbls0XSA9ICJJIjsKKyAgICAgICAgdmFsdWUgPSBuZXcgaW50WzVdOworICAgICAgICB2YWx1ZVswXSA9IFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLlBSSU1BUllfOworICAgICAgICB2YWx1ZVsxXSA9IFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLlNFQ09OREFSWV87CisgICAgICAgIHZhbHVlWzJdID0gUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlVmFsdWUuVEVSVElBUllfOworICAgICAgICB2YWx1ZVszXSA9IFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLlFVQVRFUk5BUllfOworICAgICAgICB2YWx1ZVs0XSA9IFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLklERU5USUNBTF87CisJICAgIFJVTEVTX09QVElPTlNfWzZdID0gbmV3IFRva2VuT3B0aW9uKCJzdHJlbmd0aCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5TVFJFTkdUSF8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24sIHZhbHVlKTsKKyAgICAgICAgUlVMRVNfT1BUSU9OU19bN10gPSBuZXcgVG9rZW5PcHRpb24oInZhcmlhYmxlIHRvcCIsIAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5MSU1JVF8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsIG51bGwpOworCSAgICBSVUxFU19PUFRJT05TX1s4XSA9IG5ldyBUb2tlbk9wdGlvbigicmVhcnJhbmdlIiwgCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlLkxJTUlUXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgbnVsbCk7CisgICAgICAgIG9wdGlvbiA9IG5ldyBTdHJpbmdbM107CisgICAgICAgIG9wdGlvblswXSA9ICIxIjsKKyAgICAgICAgb3B0aW9uWzFdID0gIjIiOworICAgICAgICBvcHRpb25bMl0gPSAiMyI7CisgICAgICAgIHZhbHVlID0gbmV3IGludFszXTsKKyAgICAgICAgdmFsdWVbMF0gPSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGVWYWx1ZS5QUklNQVJZXzsKKyAgICAgICAgdmFsdWVbMV0gPSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGVWYWx1ZS5TRUNPTkRBUllfOworICAgICAgICB2YWx1ZVsyXSA9IFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLlRFUlRJQVJZXzsKKwkgICAgUlVMRVNfT1BUSU9OU19bOV0gPSBuZXcgVG9rZW5PcHRpb24oImJlZm9yZSIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5MSU1JVF8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbiwgdmFsdWUpOworCSAgICBSVUxFU19PUFRJT05TX1sxMF0gPSBuZXcgVG9rZW5PcHRpb24oInRvcCIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5MSU1JVF8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsIG51bGwpOworICAgICAgICBTdHJpbmcgZmlyc3RsYXN0b3B0aW9uW10gPSBuZXcgU3RyaW5nWzddOworICAgICAgICBmaXJzdGxhc3RvcHRpb25bMF0gPSAicHJpbWFyeSI7CisgICAgICAgIGZpcnN0bGFzdG9wdGlvblsxXSA9ICJzZWNvbmRhcnkiOworICAgICAgICBmaXJzdGxhc3RvcHRpb25bMl0gPSAidGVydGlhcnkiOworICAgICAgICBmaXJzdGxhc3RvcHRpb25bM10gPSAidmFyaWFibGUiOworICAgICAgICBmaXJzdGxhc3RvcHRpb25bNF0gPSAicmVndWxhciI7CisgICAgICAgIGZpcnN0bGFzdG9wdGlvbls1XSA9ICJpbXBsaWNpdCI7CisgICAgICAgIGZpcnN0bGFzdG9wdGlvbls2XSA9ICJ0cmFpbGluZyI7CisKKyAgICAgICAgaW50IGZpcnN0bGFzdHZhbHVlW10gPSBuZXcgaW50WzddOworICAgICAgICBBcnJheXMuZmlsbChmaXJzdGxhc3R2YWx1ZSwgUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlVmFsdWUuUFJJTUFSWV8pOworCisJICAgIFJVTEVTX09QVElPTlNfWzExXSA9IG5ldyBUb2tlbk9wdGlvbigiZmlyc3QiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGUuTElNSVRfLCAKKwkgICAgCSAgICAgICAgICAgICAgICAgICAgICBmaXJzdGxhc3RvcHRpb24sIGZpcnN0bGFzdHZhbHVlKTsKKyAgICAgICAgUlVMRVNfT1BUSU9OU19bMTJdID0gbmV3IFRva2VuT3B0aW9uKCJsYXN0IiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlLkxJTUlUXywgCisJICAgIAkgICAgICAgICAgICAgICAgICAgICAgZmlyc3RsYXN0b3B0aW9uLCBmaXJzdGxhc3R2YWx1ZSk7CisJICAgIFJVTEVTX09QVElPTlNfWzEzXSA9IG5ldyBUb2tlbk9wdGlvbigidW5kZWZpbmVkIiwgCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlLkxJTUlUXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgbnVsbCk7CisJICAgIFJVTEVTX09QVElPTlNfWzE0XSA9IG5ldyBUb2tlbk9wdGlvbigic2NyaXB0T3JkZXIiLCAKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGUuTElNSVRfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBudWxsKTsKKwkgICAgUlVMRVNfT1BUSU9OU19bMTVdID0gbmV3IFRva2VuT3B0aW9uKCJjaGFyc2V0bmFtZSIsIAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5MSU1JVF8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsIG51bGwpOworCSAgICBSVUxFU19PUFRJT05TX1sxNl0gPSBuZXcgVG9rZW5PcHRpb24oImNoYXJzZXQiLCAKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGUuTElNSVRfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBudWxsKTsKKwl9OworICAgIAorICAgIC8vIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBBc3NlbWJsZXMgdGhlIHRva2VuIGxpc3QKKyAgICAgKiBAcGFyYW0KKyAgICAgKiBAZXhjZXB0aW9uIFBhcnNlRXhjZXB0aW9uIHRocm93biB3aGVuIHJ1bGVzIHN5bnRheCBmYWlscworICAgICAqLworICAgIHByaXZhdGUgaW50IGFzc2VtYmxlVG9rZW5MaXN0KCkgdGhyb3dzIFBhcnNlRXhjZXB0aW9uCisgICAgeworCQlUb2tlbiBsYXN0VG9rZW4gPSBudWxsOworCSAgICBtX3BhcnNlZFRva2VuXy5tX3N0cmVuZ3RoXyA9IFRPS0VOX1VOU0VUXzsgCisgICAgICAgIGludCBzb3VyY2VsaW1pdCA9IG1fc291cmNlXy5sZW5ndGgoKTsKKyAgICAgICAgaW50IGV4cGFuZE5leHQgPSAwOworCQkKKyAgICAgICAgd2hpbGUgKG1fY3VycmVudF8gPCBzb3VyY2VsaW1pdCkgeworICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9wcmVmaXhPZmZzZXRfID0gMDsKKwkJICAgIHBhcnNlTmV4dFRva2VuKGxhc3RUb2tlbiA9PSBudWxsKTsKKwkJICAgIGNoYXIgc3BlY3MgPSBtX3BhcnNlZFRva2VuXy5tX2ZsYWdzXzsKKwkJICAgIGJvb2xlYW4gdmFyaWFibGVUb3AgPSAoKHNwZWNzICYgVE9LRU5fVkFSSUFCTEVfVE9QX01BU0tfKSAhPSAwKTsKKwkJICAgIGJvb2xlYW4gdG9wID0gKChzcGVjcyAmIFRPS0VOX1RPUF9NQVNLXykgIT0gMCk7CisJCSAgICBpbnQgbGFzdFN0cmVuZ3RoID0gVE9LRU5fVU5TRVRfOworICAgICAgICAgICAgaWYgKGxhc3RUb2tlbiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgbGFzdFN0cmVuZ3RoID0gbGFzdFRva2VuLm1fc3RyZW5ndGhfOworICAgICAgICAgICAgfQorICAgICAgICAgICAgVG9rZW4ga2V5ID0gbmV3IFRva2VuKCk7CisgICAgICAgICAgICBrZXkubV9zb3VyY2VfID0gbV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8gPDwgMjQgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfOworICAgICAgICAgICAga2V5Lm1fcnVsZXNfID0gbV9zb3VyY2VfOworICAgICAgICAgICAgLy8gNCBMb29rdXAgZWFjaCBzb3VyY2UgaW4gdGhlIENoYXJzVG9Ub2tlbiBtYXAsIGFuZCBmaW5kIGEgCisgICAgICAgICAgICAvLyBzb3VyY2V0b2tlbgorICAgICAgICAgICAgVG9rZW4gc291cmNlVG9rZW4gPSAoVG9rZW4pbV9oYXNoVGFibGVfLmdldChrZXkpOworICAgICAgICAgICAgaWYgKG1fcGFyc2VkVG9rZW5fLm1fc3RyZW5ndGhfICE9IFRPS0VOX1JFU0VUXykgeworCQkgICAgICAgIGlmIChsYXN0VG9rZW4gPT0gbnVsbCkgeyAKKwkJICAgICAgICAJLy8gdGhpcyBtZWFucyB0aGF0IHJ1bGVzIGhhdmVuJ3Qgc3RhcnRlZCBwcm9wZXJseQorCQkgICAgICAgICAgICB0aHJvd1BhcnNlRXhjZXB0aW9uKG1fc291cmNlXy50b1N0cmluZygpLCAwKTsKKwkJICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gIDYgT3RoZXJ3aXNlICh3aGVuIHJlbGF0aW9uICE9IHJlc2V0KQorICAgICAgICAgICAgICAgaWYgKHNvdXJjZVRva2VuID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAvLyBJZiBzb3VyY2VUb2tlbiBpcyBudWxsLCBjcmVhdGUgbmV3IG9uZQorCQkgICAgICAgICAgIHNvdXJjZVRva2VuID0gbmV3IFRva2VuKCk7CisgICAgIAkJICAgICAgIHNvdXJjZVRva2VuLm1fcnVsZXNfID0gbV9zb3VyY2VfOworCQkgICAgICAgICAgIHNvdXJjZVRva2VuLm1fc291cmNlXyA9IG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fIDw8IDI0IAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF87CisJCSAgICAgICAgICAgc291cmNlVG9rZW4ubV9wcmVmaXhfID0gbV9wYXJzZWRUb2tlbl8ubV9wcmVmaXhMZW5fIDw8IDI0IAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgbV9wYXJzZWRUb2tlbl8ubV9wcmVmaXhPZmZzZXRfOworCQkgICAgICAgICAgIC8vIFRPRE86IHRoaXMgc2hvdWxkIGFsc28gaGFuZGxlIHJldmVyc2UKKwkJICAgICAgICAgICBzb3VyY2VUb2tlbi5tX3BvbGFyaXR5XyA9IFRPS0VOX1BPTEFSSVRZX1BPU0lUSVZFXzsgCisJCSAgICAgICAgICAgc291cmNlVG9rZW4ubV9uZXh0XyA9IG51bGw7CisJCSAgICAgICAgICAgc291cmNlVG9rZW4ubV9wcmV2aW91c18gPSBudWxsOworCQkgICAgICAgICAgIHNvdXJjZVRva2VuLm1fQ0VMZW5ndGhfID0gMDsKKwkJICAgICAgICAgICBzb3VyY2VUb2tlbi5tX2V4cENFTGVuZ3RoXyA9IDA7CisJCSAgICAgICAgICAgbV9oYXNoVGFibGVfLnB1dChzb3VyY2VUb2tlbiwgc291cmNlVG9rZW4pOworCQkgICAgICAgIH0gCisJCSAgICAgICAgZWxzZSB7CisJCSAgICAgICAgICAgIC8vIHdlIGNvdWxkIGhhdmUgZmlzaGVkIG91dCBhIHJlc2V0IGhlcmUKKwkJICAgICAgICAgICAgaWYgKHNvdXJjZVRva2VuLm1fc3RyZW5ndGhfICE9IFRPS0VOX1JFU0VUXyAKKwkJICAgICAgICAgICAgICAgICYmIGxhc3RUb2tlbiAhPSBzb3VyY2VUb2tlbikgeworCQkgICAgICAgICAgICAgICAgLy8gb3RoZXJ3aXNlIHJlbW92ZSBzb3VyY2VUb2tlbiBmcm9tIHdoZXJlIGl0IHdhcy4KKwkJICAgICAgICAgICAgICAgIGlmIChzb3VyY2VUb2tlbi5tX25leHRfICE9IG51bGwpIHsKKwkJICAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlVG9rZW4ubV9uZXh0Xy5tX3N0cmVuZ3RoXyAKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4gc291cmNlVG9rZW4ubV9zdHJlbmd0aF8pIHsKKwkJICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9uZXh0Xy5tX3N0cmVuZ3RoXyAKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gc291cmNlVG9rZW4ubV9zdHJlbmd0aF87CisJCSAgICAgICAgICAgICAgICAgICAgfQorCQkgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fbmV4dF8ubV9wcmV2aW91c18gCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBzb3VyY2VUb2tlbi5tX3ByZXZpb3VzXzsKKwkJICAgICAgICAgICAgICAgIH0gCisJCSAgICAgICAgICAgICAgICBlbHNlIHsKKwkJICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX2xpc3RIZWFkZXJfLm1fbGFzdF8gCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBzb3VyY2VUb2tlbi5tX3ByZXZpb3VzXzsKKwkJICAgICAgICAgICAgICAgIH0KKwkJICAgICAgICAgICAgICAgIGlmIChzb3VyY2VUb2tlbi5tX3ByZXZpb3VzXyAhPSBudWxsKSB7CisJCSAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9wcmV2aW91c18ubV9uZXh0XyAKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBzb3VyY2VUb2tlbi5tX25leHRfOworCQkgICAgICAgICAgICAgICAgfSAKKwkJICAgICAgICAgICAgICAgIGVsc2UgeworCQkgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fbGlzdEhlYWRlcl8ubV9maXJzdF8gCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gc291cmNlVG9rZW4ubV9uZXh0XzsKKwkJICAgICAgICAgICAgICAgIH0KKwkJICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fbmV4dF8gPSBudWxsOworCQkgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9wcmV2aW91c18gPSBudWxsOworCQkgICAgICAgICAgICB9CisJCSAgICAgICAgfQorICAgICAgICAJCXNvdXJjZVRva2VuLm1fc3RyZW5ndGhfID0gbV9wYXJzZWRUb2tlbl8ubV9zdHJlbmd0aF87CisgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9saXN0SGVhZGVyXyA9IGxhc3RUb2tlbi5tX2xpc3RIZWFkZXJfOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIDEuICBGaW5kIHRoZSBzdHJvbmdlc3Qgc3RyZW5ndGggaW4gZWFjaCBsaXN0LCBhbmQgc2V0IAorICAgICAgICAgICAgICAgIC8vIHN0cm9uZ2VzdFAgYW5kIHN0cm9uZ2VzdE4gYWNjb3JkaW5nbHkgaW4gdGhlIGhlYWRlcnMuIAorICAgICAgICAgICAgICAgIGlmIChsYXN0U3RyZW5ndGggPT0gVE9LRU5fUkVTRVRfCisgICAgICAgICAgICAgICAgICAgIHx8IHNvdXJjZVRva2VuLm1fbGlzdEhlYWRlcl8ubV9maXJzdF8gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAvLyBJZiBMQVNUIGlzIGEgcmVzZXQgaW5zZXJ0IHNvdXJjZVRva2VuIGluIHRoZSBsaXN0LgorCQkJICAgICAgICBpZiAoc291cmNlVG9rZW4ubV9saXN0SGVhZGVyXy5tX2ZpcnN0XyA9PSBudWxsKSB7CisJCQkgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX2xpc3RIZWFkZXJfLm1fZmlyc3RfID0gc291cmNlVG9rZW47CisJCQkgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX2xpc3RIZWFkZXJfLm1fbGFzdF8gPSBzb3VyY2VUb2tlbjsKKwkJCSAgICAgICAgfSAKKwkJCSAgICAgICAgZWxzZSB7IC8vIHdlIG5lZWQgdG8gZmluZCBhIHBsYWNlIGZvciB1cworCQkJICAgICAgICAgICAgICAgLy8gYW5kIHdlJ2xsIGdldCBpbiBmcm9udCBvZiB0aGUgc2FtZSBzdHJlbmd0aAorCQkJICAgICAgICAgICAgaWYgKHNvdXJjZVRva2VuLm1fbGlzdEhlYWRlcl8ubV9maXJzdF8ubV9zdHJlbmd0aF8gCisJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD0gc291cmNlVG9rZW4ubV9zdHJlbmd0aF8pIHsKKwkJCSAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX25leHRfIAorCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBzb3VyY2VUb2tlbi5tX2xpc3RIZWFkZXJfLm1fZmlyc3RfOworCQkJICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fbmV4dF8ubV9wcmV2aW91c18gPSBzb3VyY2VUb2tlbjsKKwkJCSAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX2xpc3RIZWFkZXJfLm1fZmlyc3RfID0gc291cmNlVG9rZW47CisJCQkgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9wcmV2aW91c18gPSBudWxsOworCQkJICAgICAgICAgICAgfSAKKwkJCSAgICAgICAgICAgIGVsc2UgeworCQkJICAgICAgICAgICAgICAgIGxhc3RUb2tlbiA9IHNvdXJjZVRva2VuLm1fbGlzdEhlYWRlcl8ubV9maXJzdF87CisJCQkgICAgICAgICAgICAgICAgd2hpbGUgKGxhc3RUb2tlbi5tX25leHRfICE9IG51bGwgCisJCQkgICAgICAgICAgICAgICAgICAgICAgICYmIGxhc3RUb2tlbi5tX25leHRfLm1fc3RyZW5ndGhfIAorCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4gc291cmNlVG9rZW4ubV9zdHJlbmd0aF8pIHsKKwkJCSAgICAgICAgICAgICAgICAgICAgbGFzdFRva2VuID0gbGFzdFRva2VuLm1fbmV4dF87CisJCQkgICAgICAgICAgICAgICAgfQorCQkJICAgICAgICAgICAgICAgIGlmIChsYXN0VG9rZW4ubV9uZXh0XyAhPSBudWxsKSB7CisJCQkgICAgICAgICAgICAgICAgICAgIGxhc3RUb2tlbi5tX25leHRfLm1fcHJldmlvdXNfID0gc291cmNlVG9rZW47CisJCQkgICAgICAgICAgICAgICAgfSAKKwkJCSAgICAgICAgICAgICAgICBlbHNlIHsKKwkJCSAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9saXN0SGVhZGVyXy5tX2xhc3RfIAorCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBzb3VyY2VUb2tlbjsKKwkJCSAgICAgICAgICAgICAgICB9CisJCQkgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9wcmV2aW91c18gPSBsYXN0VG9rZW47CisJCQkgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9uZXh0XyA9IGxhc3RUb2tlbi5tX25leHRfOworCQkJICAgICAgICAgICAgICAgIGxhc3RUb2tlbi5tX25leHRfID0gc291cmNlVG9rZW47CisJCQkgICAgICAgICAgICB9CisJCQkgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBPdGhlcndpc2UgKHdoZW4gTEFTVCBpcyBub3QgYSByZXNldCkgCisgICAgICAgICAgICAgICAgICAgIC8vIGlmIHBvbGFyaXR5IChMQVNUKSA9PSBwb2xhcml0eShyZWxhdGlvbiksIGluc2VydCAKKyAgICAgICAgICAgICAgICAgICAgLy8gc291cmNlVG9rZW4gYWZ0ZXIgTEFTVCwgb3RoZXJ3aXNlIGluc2VydCBiZWZvcmUuIAorICAgICAgICAgICAgICAgICAgICAvLyB3aGVuIGluc2VydGluZyBhZnRlciBvciBiZWZvcmUsIHNlYXJjaCB0byB0aGUgbmV4dCAKKyAgICAgICAgICAgICAgICAgICAgLy8gcG9zaXRpb24gd2l0aCB0aGUgc2FtZSBzdHJlbmd0aCBpbiB0aGF0IGRpcmVjdGlvbi4gCisgICAgICAgICAgICAgICAgICAgIC8vIChUaGlzIGlzIGNhbGxlZCBwb3N0cG9uZSBpbnNlcnRpb24pLiAgICAgICAgCisJCQkgICAgICAgIGlmIChzb3VyY2VUb2tlbiAhPSBsYXN0VG9rZW4pIHsgCisJCQkgICAgICAgICAgICBpZiAobGFzdFRva2VuLm1fcG9sYXJpdHlfID09IHNvdXJjZVRva2VuLm1fcG9sYXJpdHlfKSB7CisJCQkgICAgICAgICAgICAgICAgd2hpbGUgKGxhc3RUb2tlbi5tX25leHRfICE9IG51bGwgCisJCQkgICAgICAgICAgICAgICAgICAgICAgICYmIGxhc3RUb2tlbi5tX25leHRfLm1fc3RyZW5ndGhfIAorCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPiBzb3VyY2VUb2tlbi5tX3N0cmVuZ3RoXykgeworCQkJICAgICAgICAgICAgICAgICAgICBsYXN0VG9rZW4gPSBsYXN0VG9rZW4ubV9uZXh0XzsKKwkJCSAgICAgICAgICAgICAgICB9CisJCQkgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9wcmV2aW91c18gPSBsYXN0VG9rZW47CisJCQkgICAgICAgICAgICAgICAgaWYgKGxhc3RUb2tlbi5tX25leHRfICE9IG51bGwpIHsKKwkJCSAgICAgICAgICAgICAgICAgICAgbGFzdFRva2VuLm1fbmV4dF8ubV9wcmV2aW91c18gPSBzb3VyY2VUb2tlbjsKKwkJCSAgICAgICAgICAgICAgICB9IAorCQkJICAgICAgICAgICAgICAgIGVsc2UgeworCQkJICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX2xpc3RIZWFkZXJfLm1fbGFzdF8gPSBzb3VyY2VUb2tlbjsKKwkJCSAgICAgICAgICAgICAgICB9CisJCQkgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9uZXh0XyA9IGxhc3RUb2tlbi5tX25leHRfOworCQkJICAgICAgICAgICAgICAgIGxhc3RUb2tlbi5tX25leHRfID0gc291cmNlVG9rZW47CisJCQkgICAgICAgICAgICB9IAorCQkJICAgICAgICAgICAgZWxzZSB7CisJCQkgICAgICAgICAgICAgICAgd2hpbGUgKGxhc3RUb2tlbi5tX3ByZXZpb3VzXyAhPSBudWxsIAorCQkJICAgICAgICAgICAgICAgICAgICAgICAmJiBsYXN0VG9rZW4ubV9wcmV2aW91c18ubV9zdHJlbmd0aF8gCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+IHNvdXJjZVRva2VuLm1fc3RyZW5ndGhfKSB7CisJCQkgICAgICAgICAgICAgICAgICAgIGxhc3RUb2tlbiA9IGxhc3RUb2tlbi5tX3ByZXZpb3VzXzsKKwkJCSAgICAgICAgICAgICAgICB9CisJCQkgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9uZXh0XyA9IGxhc3RUb2tlbjsKKwkJCSAgICAgICAgICAgICAgICBpZiAobGFzdFRva2VuLm1fcHJldmlvdXNfICE9IG51bGwpIHsKKwkJCSAgICAgICAgICAgICAgICAgICAgbGFzdFRva2VuLm1fcHJldmlvdXNfLm1fbmV4dF8gPSBzb3VyY2VUb2tlbjsKKwkJCSAgICAgICAgICAgICAgICB9IAorCQkJICAgICAgICAgICAgICAgIGVsc2UgeworCQkJICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX2xpc3RIZWFkZXJfLm1fZmlyc3RfIAorCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IHNvdXJjZVRva2VuOworCQkJICAgICAgICAgICAgICAgIH0KKwkJCSAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX3ByZXZpb3VzXyA9IGxhc3RUb2tlbi5tX3ByZXZpb3VzXzsKKwkJCSAgICAgICAgICAgICAgICBsYXN0VG9rZW4ubV9wcmV2aW91c18gPSBzb3VyY2VUb2tlbjsKKwkJCSAgICAgICAgICAgIH0KKwkJCSAgICAgICAgfSAKKwkJCSAgICAgICAgZWxzZSB7IC8vIHJlcGVhdGVkIG9uZSB0aGluZyB0d2ljZSBpbiBydWxlcywgc3RheSB3aXRoIHRoZSAKKwkJCSAgICAgICAgCSAgIC8vIHN0cm9uZ2VyIHN0cmVuZ3RoIAorCQkJICAgICAgICAgICAgaWYgKGxhc3RTdHJlbmd0aCA8IHNvdXJjZVRva2VuLm1fc3RyZW5ndGhfKSB7CisJCQkgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9zdHJlbmd0aF8gPSBsYXN0U3RyZW5ndGg7CisJCQkgICAgICAgICAgICB9CisJCQkgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gaWYgdGhlIHRva2VuIHdhcyBhIHZhcmlhYmxlIHRvcCwgd2UncmUgZ29ubmEgcHV0IGl0IGluIAorICAgICAgICAgICAgICAgIGlmICh2YXJpYWJsZVRvcCA9PSB0cnVlICYmIG1fdmFyaWFibGVUb3BfID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVUb3AgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgbV92YXJpYWJsZVRvcF8gPSBzb3VyY2VUb2tlbjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gVHJlYXQgdGhlIGV4cGFuc2lvbnMuCisgICAgICAgICAgICAgICAgLy8gVGhlcmUgYXJlIHR3byB0eXBlcyBvZiBleHBhbnNpb25zOiBleHBsaWNpdCAoeCAvIHkpIGFuZCAKKyAgICAgICAgICAgICAgICAvLyByZXNldCBiYXNlZCBwcm9wYWdhdGluZyBleHBhbnNpb25zIAorICAgICAgICAgICAgICAgIC8vICgmYWJjICogZCAqIGUgPD0+ICZhYiAqIGQgLyBjICogZSAvIGMpIAorICAgICAgICAgICAgICAgIC8vIGlmIGJvdGggb2YgdGhlbSBhcmUgaW4gZWZmZWN0IGZvciBhIHRva2VuLCB0aGV5IGFyZSBjb21iaW5lZC4KKyAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fZXhwYW5zaW9uXyA9IG1fcGFyc2VkVG9rZW5fLm1fZXh0ZW5zaW9uTGVuXyA8PCAyNCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgbV9wYXJzZWRUb2tlbl8ubV9leHRlbnNpb25PZmZzZXRfOworICAgICAgICAgICAgICAgaWYgKGV4cGFuZE5leHQgIT0gMCkgeworCQkgICAgICAgICAgIGlmIChzb3VyY2VUb2tlbi5tX3N0cmVuZ3RoXyA9PSBSdWxlQmFzZWRDb2xsYXRvci5QUklNQVJZKSB7IAorCQkgICAgICAgICAgICAgICAvLyBwcmltYXJ5IHN0cmVuZ3RoIGtpbGxzIG9mZiB0aGUgaW1wbGljaXQgZXhwYW5zaW9uIAorCQkgICAgICAgICAgICAgICBleHBhbmROZXh0ID0gMDsKKwkJICAgICAgICAgICB9IAorCQkgICAgICAgICAgIGVsc2UgaWYgKHNvdXJjZVRva2VuLm1fZXhwYW5zaW9uXyA9PSAwKSB7IAorCQkgICAgICAgICAgICAgICAvLyBpZiB0aGVyZSBpcyBubyBleHBhbnNpb24sIGltcGxpY2l0IGlzIGp1c3QgYWRkZWQgdG8gCisJCSAgICAgICAgICAgICAgIC8vIHRoZSB0b2tlbiAKKwkJICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9leHBhbnNpb25fID0gZXhwYW5kTmV4dDsKKwkJICAgICAgICAgICB9IAorCQkgICAgICAgICAgIGVsc2UgeyAKKwkJICAgICAgICAgICAgICAgLy8gdGhlcmUgaXMgYm90aCBleHBsaWNpdCBhbmQgaW1wbGljaXQgZXhwYW5zaW9uLiAKKwkJICAgICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBtYWtlIGEgY29tYmluYXRpb24KKwkJICAgICAgICAgICAgICAgaW50IHN0YXJ0ID0gZXhwYW5kTmV4dCAmIDB4RkZGRkZGOworICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2l6ZSA9IGV4cGFuZE5leHQgPj4+IDI0OworICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2l6ZSA+IDApIHsKKwkJICAgICAgICAgICAgICAgICAgbV9zb3VyY2VfLmFwcGVuZChtX3NvdXJjZV8uc3Vic3RyaW5nKHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKyBzaXplKSk7CisgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgIAkJICAgICAgICAgICAgICAgc3RhcnQgPSBtX3BhcnNlZFRva2VuXy5tX2V4dGVuc2lvbk9mZnNldF87CisJCSAgICAgICAgICAgICAgIG1fc291cmNlXy5hcHBlbmQobV9zb3VyY2VfLnN1YnN0cmluZyhzdGFydCwgCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICsgbV9wYXJzZWRUb2tlbl8ubV9leHRlbnNpb25MZW5fKSk7CisJCSAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fZXhwYW5zaW9uXyA9IChzaXplIAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBtX3BhcnNlZFRva2VuXy5tX2V4dGVuc2lvbkxlbl8pIDw8IDI0IAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBtX2V4dHJhQ3VycmVudF87CisJCSAgICAgICAgICAgICAgIG1fZXh0cmFDdXJyZW50XyArPSBzaXplICsgbV9wYXJzZWRUb2tlbl8ubV9leHRlbnNpb25MZW5fOworCQkgICAgICAgICAgIH0KKwkJICAgICAgICB9CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSB7CisJICAgICAgICAgICAgaWYgKGxhc3RUb2tlbiAhPSBudWxsICYmIGxhc3RTdHJlbmd0aCA9PSBUT0tFTl9SRVNFVF8pIHsKKwkgICAgICAgICAgICAgICAgLy8gaWYgdGhlIHByZXZpb3VzIHRva2VuIHdhcyBhbHNvIGEgcmVzZXQsIHRoaXMgbWVhbnMgdGhhdCAKKwkgICAgICAgICAgICAgICAgLy8gd2UgaGF2ZSB0d28gY29uc2VjdXRpdmUgcmVzZXRzIGFuZCB3ZSB3YW50IHRvIHJlbW92ZSB0aGUgCisJICAgICAgICAgICAgICAgIC8vIHByZXZpb3VzIG9uZSBpZiBlbXB0eQorCSAgICAgICAgICAgICAgICBpZiAobV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF8gLSAxXS5tX2ZpcnN0XyA9PSBudWxsKSB7CisJICAgICAgICAgICAgICAgICAgICBtX3Jlc3VsdExlbmd0aF8gLS07CisJICAgICAgICAgICAgICAgIH0KKwkgICAgICAgICAgICB9CisJICAgICAgICAgICAgaWYgKHNvdXJjZVRva2VuID09IG51bGwpIHsgCisJICAgICAgICAgICAgICAgIC8vIHRoaXMgaXMgYSByZXNldCwgYnV0IGl0IG1pZ2h0IHN0aWxsIGJlIHNvbWV3aGVyZSBpbiB0aGUgCisJICAgICAgICAgICAgICAgIC8vIHRhaWxvcmluZywgaW4gc2hvcnRlciBmb3JtCisJICAgICAgICAgICAgICAgIGludCBzZWFyY2hDaGFyc0xlbiA9IG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fOworCSAgICAgICAgICAgICAgICB3aGlsZSAoc2VhcmNoQ2hhcnNMZW4gPiAxICYmIHNvdXJjZVRva2VuID09IG51bGwpIHsKKwkgICAgICAgICAgICAgICAgICAgIHNlYXJjaENoYXJzTGVuIC0tOworCSAgICAgICAgICAgICAgICAgICAgLy8ga2V5ID0gc2VhcmNoQ2hhcnNMZW4gPDwgMjQgfCBjaGFyc09mZnNldDsKKwkJCSAgICAgICAgICAgIFRva2VuIHRva2Vua2V5ID0gbmV3IFRva2VuKCk7CisJCQkgICAgICAgICAgICB0b2tlbmtleS5tX3NvdXJjZV8gPSBzZWFyY2hDaGFyc0xlbiA8PCAyNCAKKwkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF87CisJCQkgICAgICAgICAgICB0b2tlbmtleS5tX3J1bGVzXyA9IG1fc291cmNlXzsKKwkJCSAgICAgICAgICAgIHNvdXJjZVRva2VuID0gKFRva2VuKW1faGFzaFRhYmxlXy5nZXQodG9rZW5rZXkpOworCQkJICAgICAgICB9CisJCQkgICAgICAgIGlmIChzb3VyY2VUb2tlbiAhPSBudWxsKSB7CisJCQkgICAgICAgICAgICBleHBhbmROZXh0ID0gKG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fIAorCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBzZWFyY2hDaGFyc0xlbikgPDwgMjQgCisJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAobV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF8gCisJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBzZWFyY2hDaGFyc0xlbik7CisJCQkgICAgICAgIH0KKwkJCSAgICB9CisJCSAgICAgICAgaWYgKChzcGVjcyAmIFRPS0VOX0JFRk9SRV8pICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRvcCA9PSBmYWxzZSkgeyAKKyAgICAJCSAgICAgICAgICAgIC8vIHdlJ3JlIGRvaW5nIGJlZm9yZSAmIHRoZXJlIGlzIG5vIGluZGlyZWN0aW9uCisgICAgCSAgICAgICAgICAgICAgICBpbnQgc3RyZW5ndGggPSAoc3BlY3MgJiBUT0tFTl9CRUZPUkVfKSAtIDE7CisgICAgCSAgICAgICAgICAgICAgICBpZiAoc291cmNlVG9rZW4gIT0gbnVsbCAKKyAgICAJICAgICAgICAgICAgICAgICAgICAmJiBzb3VyY2VUb2tlbi5tX3N0cmVuZ3RoXyAhPSBUT0tFTl9SRVNFVF8pIHsgCisgICAgCSAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBpcyBhIGJlZm9yZSB0aGF0IGlzIGFscmVhZHkgb3JkZXJlZCBpbiB0aGUgVUNBIAorICAgIAkgICAgICAgICAgICAgICAgICAgIC8vIC0gc28gd2UgbmVlZCB0byBnZXQgdGhlIHByZXZpb3VzIHdpdGggZ29vZCBzdHJlbmd0aAorICAgIAkJCSAgICAgICAgICAgIHdoaWxlIChzb3VyY2VUb2tlbi5tX3N0cmVuZ3RoXyA+IHN0cmVuZ3RoIAorICAgIAkJCSAgICAgICAgICAgICAgICAgICAmJiBzb3VyY2VUb2tlbi5tX3ByZXZpb3VzXyAhPSBudWxsKSB7CisgICAgCQkJICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuID0gc291cmNlVG9rZW4ubV9wcmV2aW91c187CisgICAgCQkJICAgICAgICAgICAgfQorICAgIAkJCSAgICAgICAgICAgIC8vIGhlcmUsIGVpdGhlciB3ZSBoaXQgdGhlIHN0cmVuZ3RoIG9yIE5VTEwKKyAgICAJCQkgICAgICAgICAgICBpZiAoc291cmNlVG9rZW4ubV9zdHJlbmd0aF8gPT0gc3RyZW5ndGgpIHsKKyAgICAJCQkgICAgICAgICAgICAgICAgaWYgKHNvdXJjZVRva2VuLm1fcHJldmlvdXNfICE9IG51bGwpIHsKKyAgICAJCQkgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuID0gc291cmNlVG9rZW4ubV9wcmV2aW91c187CisgICAgCQkJICAgICAgICAgICAgICAgIH0gCisgICAgCQkJICAgICAgICAgICAgICAgIGVsc2UgeyAvLyBzdGFydCBvZiBsaXN0CisgICAgCQkJICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbiAKKyAgICAJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IHNvdXJjZVRva2VuLm1fbGlzdEhlYWRlcl8ubV9yZXNldF87CisgICAgCQkJICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgIAorICAgIAkJCSAgICAgICAgICAgIH0gCisgICAgCQkJICAgICAgICAgICAgZWxzZSB7IC8vIHdlIGhpdCBOVUxMLCB3ZSBzaG91bGQgYmUgZG9pbmcgdGhlIGVsc2UgcGFydCAKKyAgICAJCQkgICAgICAgICAgICAgICAgc291cmNlVG9rZW4gPSBzb3VyY2VUb2tlbi5tX2xpc3RIZWFkZXJfLm1fcmVzZXRfOworICAgIAkJCSAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbiA9IGdldFZpcmdpbkJlZm9yZShzb3VyY2VUb2tlbiwgCisgICAgCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVuZ3RoKTsKKyAgICAJCQkgICAgICAgICAgICB9CisgICAgCQkJICAgICAgICB9IAorICAgIAkJCSAgICAgICAgZWxzZSB7CisgICAgCQkJICAgICAgICAgICAgc291cmNlVG9rZW4gPSBnZXRWaXJnaW5CZWZvcmUoc291cmNlVG9rZW4sIHN0cmVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7IAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBpcyBib3RoIGJlZm9yZSBhbmQgaW5kaXJlY3Rpb24KKyAgICAgICAgICAgICAgICAgICAgICAgIHRvcCA9IGZhbHNlOyAKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXSA9IG5ldyBUb2tlbkxpc3RIZWFkZXIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX3ByZXZpb3VzQ0VfID0gMDsgCisgICAgICAgICAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9wcmV2aW91c0NvbnRDRV8gPSAwOyAKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX2luZGlyZWN0XyA9IHRydWU7IAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgbmVlZCB0byBkbyBzbGlnaHRseSBtb3JlIHdvcmsuIHdlIG5lZWQgdG8gZ2V0IHRoZSAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJhc2VDRSB1c2luZyB0aGUgaW52ZXJzZSBVQ0EgJiBnZXRQcmV2aW91cy4gVGhlIG5leHQgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBib3VuZCBpcyBub3Qgc2V0LCBhbmQgd2lsbCBiZSBkZWNpZGVkIGluIHVjb2xfYmxkCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RyZW5ndGggPSAoc3BlY3MgJiBUT0tFTl9CRUZPUkVfKSAtIDE7IAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IGJhc2VDRSA9IElORElSRUNUX0JPVU5EQVJJRVNfWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2luZGlyZWN0SW5kZXhfXS5tX3N0YXJ0Q0VfOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGJhc2VDb250Q0UgPSBJTkRJUkVDVF9CT1VOREFSSUVTX1sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2luZGlyZWN0SW5kZXhfXS5tX3N0YXJ0Q29udENFXzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBjZVtdID0gbmV3IGludFsyXTsgCisgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRpb25QYXJzZWRSdWxlQnVpbGRlci5JbnZlcnNlVUNBIGludnVjYQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gQ29sbGF0aW9uUGFyc2VkUnVsZUJ1aWxkZXIuSU5WRVJTRV9VQ0FfOworICAgICAgICAgICAgICAgICAgICAgICAgaW52dWNhLmdldEludmVyc2VQcmV2Q0UoYmFzZUNFLCBiYXNlQ29udENFLCBzdHJlbmd0aCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9iYXNlQ0VfID0gY2VbMF07CisgICAgICAgICAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9iYXNlQ29udENFXyA9IGNlWzFdOworICAgICAgICAgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fbmV4dENFXyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9uZXh0Q29udENFXyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuID0gbmV3IFRva2VuKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBleHBhbmROZXh0ID0gaW5pdEFSZXNldCgwLCBzb3VyY2VUb2tlbik7ICAgIAorICAgIAkJCSAgICB9CisJCQkgICAgfQorCSAgICAgICAgICAgIC8vIDUgSWYgdGhlIHJlbGF0aW9uIGlzIGEgcmVzZXQ6IAorCSAgICAgICAgICAgIC8vIElmIHNvdXJjZVRva2VuIGlzIG51bGwgCisJICAgICAgICAgICAgLy8gQ3JlYXRlIG5ldyBsaXN0LCBjcmVhdGUgbmV3IHNvdXJjZVRva2VuLCBtYWtlIHRoZSBiYXNlQ0UgCisJICAgICAgICAgICAgLy8gZnJvbSBzb3VyY2UsIHB1dCB0aGUgc291cmNlVG9rZW4gaW4gTGlzdEhlYWRlciBvZiB0aGUgbmV3IAorCSAgICAgICAgICAgIC8vIGxpc3QKKwkgICAgICAgICAgICBpZiAoc291cmNlVG9rZW4gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBpZiAobV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dID09IG51bGwpIHsKKwkgICAgICAgICAgICAJICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXSA9IG5ldyBUb2tlbkxpc3RIZWFkZXIoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCSAgICAgICAgICAgICAgICAvLyAzIENvbnNpZGVyIGVhY2ggaXRlbTogcmVsYXRpb24sIHNvdXJjZSwgYW5kIGV4cGFuc2lvbjogCisJICAgICAgICAgICAgICAgIC8vIGUuZy4gLi4uPCB4IC8geSAuLi4gCisJICAgICAgICAgICAgICAgIC8vIEZpcnN0IGNvbnZlcnQgYWxsIGV4cGFuc2lvbnMgaW50byBub3JtYWwgZm9ybS4gCisJICAgICAgICAgICAgICAgIC8vIEV4YW1wbGVzOiAKKwkgICAgICAgICAgICAgICAgLy8gSWYgInh5IiBkb2Vzbid0IG9jY3VyIGVhcmxpZXIgaW4gdGhlIGxpc3Qgb3IgaW4gdGhlIFVDQSwgCisJICAgICAgICAgICAgICAgIC8vIGNvbnZlcnQgJnh5ICogYyAqIGQgKiAuLi4gaW50byAmeCAqIGMveSAqIGQgKiAuLi4gCisJICAgICAgICAgICAgICAgIC8vIE5vdGU6IHJlc2V0IHZhbHVlcyBjYW4gbmV2ZXIgaGF2ZSBleHBhbnNpb25zLCBhbHRob3VnaCAKKwkgICAgICAgICAgICAgICAgLy8gdGhleSBjYW4gY2F1c2UgdGhlIHZlcnkgbmV4dCBpdGVtIHRvIGhhdmUgb25lLiBUaGV5IG1heSAKKwkgICAgICAgICAgICAgICAgLy8gYmUgY29udHJhY3Rpb25zLCBpZiB0aGV5IGFyZSBmb3VuZCBlYXJsaWVyIGluIHRoZSBsaXN0LiAKKwkJCSAgICAgICAgaWYgKHRvcCA9PSBmYWxzZSkgeworCQkJICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGNvbGVpdGVyIAorICAgICAgICAgICAgICAgICAgICAgICAgPSBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcigKKyAgICAgICAgICAgICAgICAgICAgICAgIAltX3NvdXJjZV8uc3Vic3RyaW5nKG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCW1fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAJKyBtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXykpOworCQkJCisJCQkgICAgICAgICAgICBpbnQgQ0UgPSBjb2xlaXRlci5uZXh0KCk7CisJCQkgICAgICAgICAgICAvLyBvZmZzZXQgdG8gdGhlIGNoYXJhY3RlciBpbiB0aGUgZnVsbCBydWxlIHN0cmluZworCQkJICAgICAgICAgICAgaW50IGV4cGFuZCA9IGNvbGVpdGVyLmdldE9mZnNldCgpIAorCQkJICAgICAgICAgICAgICAgICAgICAgICAgICsgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF87CisJCQkgICAgICAgICAgICBpbnQgU2Vjb25kQ0UgPSBjb2xlaXRlci5uZXh0KCk7CisJCQkgICAgICAgICAgICAKKwkJCSAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX2Jhc2VDRV8gCisJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBDRSAmIDB4RkZGRkZGM0Y7CisJCQkgICAgICAgICAgICBpZiAoUnVsZUJhc2VkQ29sbGF0b3IuaXNDb250aW51YXRpb24oU2Vjb25kQ0UpKSB7CisJCQkgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fYmFzZUNvbnRDRV8gCisJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gU2Vjb25kQ0U7CisJCQkgICAgICAgICAgICB9IAorCQkJICAgICAgICAgICAgZWxzZSB7CisJCQkgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fYmFzZUNvbnRDRV8gPSAwOworCQkJICAgICAgICAgICAgfQorCQkJICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fbmV4dENFXyA9IDA7CisJCQkgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9uZXh0Q29udENFXyA9IDA7CisJCQkgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9wcmV2aW91c0NFXyA9IDA7CisJCQkgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9wcmV2aW91c0NvbnRDRV8gPSAwOworCQkJICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1faW5kaXJlY3RfID0gZmFsc2U7CisJCQkgICAgICAgICAgICBzb3VyY2VUb2tlbiA9IG5ldyBUb2tlbigpOworCQkJICAgICAgICAgICAgZXhwYW5kTmV4dCA9IGluaXRBUmVzZXQoZXhwYW5kLCBzb3VyY2VUb2tlbik7CisJCQkgICAgICAgIH0gCisJCQkgICAgICAgIGVsc2UgeyAvLyB0b3AgPT0gVFJVRQorCQkJICAgICAgICAgICAgdG9wID0gZmFsc2U7CisJCQkgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9wcmV2aW91c0NFXyA9IDA7CisJCQkgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9wcmV2aW91c0NvbnRDRV8gPSAwOworCQkJICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1faW5kaXJlY3RfID0gdHJ1ZTsKKwkJCSAgICAgICAgICAgIEluZGlyZWN0Qm91bmRhcmllcyBpYiA9IElORElSRUNUX0JPVU5EQVJJRVNfWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1faW5kaXJlY3RJbmRleF9dOworCQkJICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fYmFzZUNFXyAKKwkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gaWIubV9zdGFydENFXzsKKwkJCSAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX2Jhc2VDb250Q0VfIAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGliLm1fc3RhcnRDb250Q0VfOworCQkJICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fbmV4dENFXyAKKwkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gaWIubV9saW1pdENFXzsKKwkJCSAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX25leHRDb250Q0VfIAorCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGliLm1fbGltaXRDb250Q0VfOworCQkJICAgICAgICAgICAgc291cmNlVG9rZW4gPSBuZXcgVG9rZW4oKTsKKwkJCSAgICAgICAgICAgIGV4cGFuZE5leHQgPSBpbml0QVJlc2V0KDAsIHNvdXJjZVRva2VuKTsKKwkgICAgICAgICAgICAgICAgfQorCQkgICAgICAgIH0gCisJCSAgICAgICAgZWxzZSB7IC8vIHJlc2V0IHRvIHNvbWV0aGluZyBhbHJlYWR5IGluIHJ1bGVzCisJCSAgICAgICAgICAgIHRvcCA9IGZhbHNlOworCQkgICAgICAgIH0KKwkJICAgIH0KKwkJICAgIC8vIDcgQWZ0ZXIgYWxsIHRoaXMsIHNldCBMQVNUIHRvIHBvaW50IHRvIHNvdXJjZVRva2VuLCBhbmQgZ290byAKKwkJICAgIC8vIHN0ZXAgMy4KKwkJICAgIGxhc3RUb2tlbiA9IHNvdXJjZVRva2VuOworCQl9CisJCSAgCisJCWlmIChtX3Jlc3VsdExlbmd0aF8gPiAwIAorICAgICAgICAgICAgJiYgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF8gLSAxXS5tX2ZpcnN0XyA9PSBudWxsKSB7CisJCSAgICBtX3Jlc3VsdExlbmd0aF8gLS07CisJCX0KKwkJcmV0dXJuIG1fcmVzdWx0TGVuZ3RoXzsKKwl9CisgICAgIAorICAgIC8qKgorICAgICAqIEZvcm1hdHMgYW5kIHRocm93cyBhIFBhcnNlRXhjZXB0aW9uCisgICAgICogQHBhcmFtIHJ1bGVzIGNvbGxhdGlvbiBydWxlIHRoYXQgZmFpbGVkCisgICAgICogQHBhcmFtIG9mZnNldCBmYWlsZWQgb2Zmc2V0IGluIHJ1bGVzCisgICAgICogQHRocm93cyBQYXJzZUV4Y2VwdGlvbiB3aXRoIGZhaWx1cmUgaW5mb3JtYXRpb24KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCB2b2lkIHRocm93UGFyc2VFeGNlcHRpb24oU3RyaW5nIHJ1bGVzLCBpbnQgb2Zmc2V0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBQYXJzZUV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgLy8gZm9yIHByZS1jb250ZXh0CisgICAgICAgIFN0cmluZyBwcmVjb250ZXh0ID0gcnVsZXMuc3Vic3RyaW5nKDAsIG9mZnNldCk7CisgICAgICAgIFN0cmluZyBwb3N0Y29udGV4dCA9IHJ1bGVzLnN1YnN0cmluZyhvZmZzZXQsIHJ1bGVzLmxlbmd0aCgpKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGVycm9yID0gbmV3IFN0cmluZ0J1ZmZlcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQYXJzZSBlcnJvciBvY2N1cnJlZCBpbiBydWxlIGF0IG9mZnNldCAiKTsgCisgICAgICAgIGVycm9yLmFwcGVuZChvZmZzZXQpOyAKKyAgICAgICAgZXJyb3IuYXBwZW5kKCJcbiBhZnRlciB0aGUgcHJlZml4IFwiIik7CisgICAgICAgIGVycm9yLmFwcGVuZChwcmVjb250ZXh0KTsKKyAgICAgICAgZXJyb3IuYXBwZW5kKCJcIiBiZWZvcmUgdGhlIHN1ZmZpeCBcIiIpOworICAgICAgICBlcnJvci5hcHBlbmQocG9zdGNvbnRleHQpOworICAgICAgICB0aHJvdyBuZXcgUGFyc2VFeGNlcHRpb24oZXJyb3IudG9TdHJpbmcoKSwgb2Zmc2V0KTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIGRvU2V0VG9wKCkgeworICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XyA9IG1fZXh0cmFDdXJyZW50XzsKKyAgICAgICAgbV9zb3VyY2VfLmFwcGVuZCgoY2hhcikweEZGRkUpOworICAgICAgICBJbmRpcmVjdEJvdW5kYXJpZXMgaWIgPSAKKyAgICAgICAgICAgICAgICAgIElORElSRUNUX0JPVU5EQVJJRVNfW21fcGFyc2VkVG9rZW5fLm1faW5kaXJlY3RJbmRleF9dOworICAgICAgICBtX3NvdXJjZV8uYXBwZW5kKChjaGFyKShpYi5tX3N0YXJ0Q0VfID4+IDE2KSk7CisgICAgICAgIG1fc291cmNlXy5hcHBlbmQoKGNoYXIpKGliLm1fc3RhcnRDRV8gJiAweEZGRkYpKTsKKyAgICAgICAgbV9leHRyYUN1cnJlbnRfICs9IDM7CisgICAgICAgIGlmIChJTkRJUkVDVF9CT1VOREFSSUVTX1ttX3BhcnNlZFRva2VuXy5tX2luZGlyZWN0SW5kZXhfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXS5tX3N0YXJ0Q29udENFXyA9PSAwKSB7CisgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXyA9IDM7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7IAorICAgICAgICAgICAgbV9zb3VyY2VfLmFwcGVuZCgoY2hhcikoSU5ESVJFQ1RfQk9VTkRBUklFU19bCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9pbmRpcmVjdEluZGV4XworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXS5tX3N0YXJ0Q29udENFXyA+PiAxNikpOyAKKyAgICAgICAgICAgIG1fc291cmNlXy5hcHBlbmQoKGNoYXIpKElORElSRUNUX0JPVU5EQVJJRVNfWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1faW5kaXJlY3RJbmRleF8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0ubV9zdGFydENvbnRDRV8gJiAweEZGRkYpKTsgCisgICAgICAgICAgICBtX2V4dHJhQ3VycmVudF8gKz0gMjsKKyAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fID0gNTsKKyAgICAgICAgfSAKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHRpbmcgdGhlIG5leHQgdG9rZW4KKyAgICAgKiBAcGFyYW0gc3RhcnRvZnJ1bGVzIGZsYWcgaW5kaWNhdGluZyBpZiB3ZSBhcmUgYXQgdGhlIHN0YXJ0IG9mIHJ1bGVzCisgICAgICogQHJldHVybiB0aGUgb2Zmc2V0IG9mIHRoZSBydWxlcworICAgICAqIEBleGNlcHRpb24gUGFyc2VFeGNlcHRpb24gdGhyb3duIHdoZW4gcnVsZSBwYXJzaW5nIGZhaWxzCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgcGFyc2VOZXh0VG9rZW4oYm9vbGVhbiBzdGFydG9mcnVsZXMpIHRocm93cyBQYXJzZUV4Y2VwdGlvbgorICAgIHsgCisJICAgIC8vIHBhcnNpbmcgcGFydAorCSAgICBib29sZWFuIHZhcmlhYmxldG9wID0gZmFsc2U7CisJICAgIGJvb2xlYW4gdG9wID0gZmFsc2U7CisJICAgIGJvb2xlYW4gaW5jaGFycyA9IHRydWU7CisJICAgIGJvb2xlYW4gaW5xdW90ZSA9IGZhbHNlOworCSAgICBib29sZWFuIHdhc2lucXVvdGUgPSBmYWxzZTsKKwkgICAgYnl0ZSBiZWZvcmUgPSAwOworCSAgICBib29sZWFuIGlzZXNjYXBlZCA9IGZhbHNlOworCSAgICBpbnQgLypuZXdjaGFyc2xlbiA9IDAsKi8gbmV3ZXh0ZW5zaW9ubGVuID0gMDsKKwkgICAgaW50IC8qY2hhcnNvZmZzZXQgPSAwLCovIGV4dGVuc2lvbm9mZnNldCA9IDA7CisJICAgIGludCBuZXdzdHJlbmd0aCA9IFRPS0VOX1VOU0VUXzsgCisJCisgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fID0gMDsKKwkgICAgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF8gPSAwOworICAgICAgICBtX3BhcnNlZFRva2VuXy5tX3ByZWZpeE9mZnNldF8gPSAwOyAKKyAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9wcmVmaXhMZW5fID0gMDsKKwkgICAgbV9wYXJzZWRUb2tlbl8ubV9pbmRpcmVjdEluZGV4XyA9IDA7CisJCisJICAgIGludCBsaW1pdCA9IG1fcnVsZXNfLmxlbmd0aCgpOworCSAgICB3aGlsZSAobV9jdXJyZW50XyA8IGxpbWl0KSB7CisJICAgICAgICBjaGFyIGNoID0gbV9zb3VyY2VfLmNoYXJBdChtX2N1cnJlbnRfKTsKKwkgICAgICAgIGlmIChpbnF1b3RlKSB7CisJCSAgICAgICAgaWYgKGNoID09IDB4MDAyNykgeyAvLyAnXCcnCisJCSAgICAgICAgICAgIGlucXVvdGUgPSBmYWxzZTsKKwkJICAgICAgICB9IAorICAgICAgICAgICAgICAgIGVsc2UgeworCQkgICAgICAgICAgICBpZiAoKG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fID09IDApIHx8IGluY2hhcnMpIHsKKwkJICAgICAgICAgICAgICAgICBpZiAobV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8gPT0gMCkgeworCQkgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XyA9IG1fZXh0cmFDdXJyZW50XzsKKwkJICAgICAgICAgICAgICAgICB9CisJCSAgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8gKys7CisJCSAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworCQkgICAgICAgICAgICAgICAgaWYgKG5ld2V4dGVuc2lvbmxlbiA9PSAwKSB7CisJCSAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9ub2Zmc2V0ID0gbV9leHRyYUN1cnJlbnRfOworCQkgICAgICAgICAgICAgICAgfQorCQkgICAgICAgICAgICAgICAgbmV3ZXh0ZW5zaW9ubGVuICsrOworCQkgICAgICAgICAgICB9CisJCSAgICAgICAgfQorCSAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoaXNlc2NhcGVkKSB7CisJICAgICAgICAgICAgaXNlc2NhcGVkID0gZmFsc2U7CisJICAgICAgICAgICAgaWYgKG5ld3N0cmVuZ3RoID09IFRPS0VOX1VOU0VUXykgeworCSAgICAgICAgICAgICAgICB0aHJvd1BhcnNlRXhjZXB0aW9uKG1fcnVsZXNfLCBtX2N1cnJlbnRfKTsKKwkgICAgICAgICAgICB9CisJICAgICAgICAgICAgaWYgKGNoICE9IDAgJiYgbV9jdXJyZW50XyAhPSBsaW1pdCkgeworCSAgICAgICAgICAgICAgICBpZiAoaW5jaGFycykgeworCSAgICAgICAgICAgICAgICAgICAgaWYgKG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fID09IDApIHsKKwkgICAgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XyA9IG1fY3VycmVudF87CisJICAgICAgICAgICAgICAgICAgICB9CisJICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXyArKzsKKwkgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisJICAgICAgICAgICAgICAgICAgICBpZiAobmV3ZXh0ZW5zaW9ubGVuID09IDApIHsKKwkgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25vZmZzZXQgPSBtX2N1cnJlbnRfOworCSAgICAgICAgICAgICAgICAgICAgfQorCSAgICAgICAgICAgICAgICAgICAgbmV3ZXh0ZW5zaW9ubGVuICsrOworCSAgICAgICAgICAgICAgICB9CisJICAgICAgICAgICAgfQorCSAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gU2V0cyB0aGUgc3RyZW5ndGggZm9yIHRoaXMgZW50cnkKKwkgICAgICAgICAgICAgICAgc3dpdGNoIChjaCkgeworCSAgICAgICAgICAgICAgICBjYXNlIDB4MDAzRCA6IC8vICc9JworCSAgICAgICAgICAgICAgICAgICAgaWYgKG5ld3N0cmVuZ3RoICE9IFRPS0VOX1VOU0VUXykgeworCSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkb0VuZFBhcnNlTmV4dFRva2VuKG5ld3N0cmVuZ3RoLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3AsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbm9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdleHRlbnNpb25sZW4sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxldG9wLCBiZWZvcmUpOworCSAgICAgICAgICAgICAgICAgICAgfQorCSAgICAgICAgICAgICAgICAgICAgLy8gaWYgd2Ugc3RhcnQgd2l0aCBzdHJlbmd0aCwgd2UnbGwgcmVzZXQgdG8gdG9wCisJICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnRvZnJ1bGVzID09IHRydWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2luZGlyZWN0SW5kZXhfID0gNTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3AgPSBkb1NldFRvcCgpOworCSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkb0VuZFBhcnNlTmV4dFRva2VuKFRPS0VOX1JFU0VUXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25vZmZzZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld2V4dGVuc2lvbmxlbiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGV0b3AsIGJlZm9yZSk7CisJICAgICAgICAgICAgICAgICAgICB9CisJICAgICAgICAgICAgICAgICAgICBuZXdzdHJlbmd0aCA9IENvbGxhdG9yLklERU5USUNBTDsKKwkgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCSAgICAgICAgICAgICAgICBjYXNlIDB4MDAyQyA6IC8vICcsJworCSAgICAgICAgICAgICAgICAgICAgaWYgKG5ld3N0cmVuZ3RoICE9IFRPS0VOX1VOU0VUXykgeworCSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkb0VuZFBhcnNlTmV4dFRva2VuKG5ld3N0cmVuZ3RoLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3AsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbm9mZnNldCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3ZXh0ZW5zaW9ubGVuLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXRvcCwgYmVmb3JlKTsKKwkgICAgICAgICAgICAgICAgICAgIH0KKwkgICAgICAgICAgICAgICAgICAgIC8vIGlmIHdlIHN0YXJ0IHdpdGggc3RyZW5ndGgsIHdlJ2xsIHJlc2V0IHRvIHRvcAorCSAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXJ0b2ZydWxlcyA9PSB0cnVlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9pbmRpcmVjdEluZGV4XyA9IDU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wID0gZG9TZXRUb3AoKTsKKwkgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZG9FbmRQYXJzZU5leHRUb2tlbihUT0tFTl9SRVNFVF8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9ub2Zmc2V0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdleHRlbnNpb25sZW4sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxldG9wLCBiZWZvcmUpOworCSAgICAgICAgICAgICAgICAgICAgfQorCSAgICAgICAgICAgICAgICAgICAgbmV3c3RyZW5ndGggPSBDb2xsYXRvci5URVJUSUFSWTsKKwkgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCSAgICAgICAgICAgICAgICBjYXNlIDB4MDAzQiA6IC8vICc7JworCSAgICAgICAgICAgICAgICAgICAgaWYgKG5ld3N0cmVuZ3RoICE9IFRPS0VOX1VOU0VUXykgeworCSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkb0VuZFBhcnNlTmV4dFRva2VuKG5ld3N0cmVuZ3RoLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3AsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbm9mZnNldCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3ZXh0ZW5zaW9ubGVuLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXRvcCwgYmVmb3JlKTsgICAKKwkgICAgICAgICAgICAgICAgICAgIH0KKwkgICAgICAgICAgICAgICAgICAgIC8vIGlmIHdlIHN0YXJ0IHdpdGggc3RyZW5ndGgsIHdlJ2xsIHJlc2V0IHRvIHRvcAorCSAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXJ0b2ZydWxlcyA9PSB0cnVlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9pbmRpcmVjdEluZGV4XyA9IDU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wID0gZG9TZXRUb3AoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZG9FbmRQYXJzZU5leHRUb2tlbihUT0tFTl9SRVNFVF8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9ub2Zmc2V0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdleHRlbnNpb25sZW4sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxldG9wLCBiZWZvcmUpOworCSAgICAgICAgICAgICAgICAgICAgfQorCSAgICAgICAgICAgICAgICAgICAgbmV3c3RyZW5ndGggPSBDb2xsYXRvci5TRUNPTkRBUlk7CisJICAgICAgICAgICAgICAgICAgICBicmVhazsKKwkgICAgICAgICAgICAgICAgY2FzZSAweDAwM0MgOiAvLyAnPCcKKwkgICAgICAgICAgICAgICAgICAgIGlmIChuZXdzdHJlbmd0aCAhPSBUT0tFTl9VTlNFVF8pIHsKKwkgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZG9FbmRQYXJzZU5leHRUb2tlbihuZXdzdHJlbmd0aCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25vZmZzZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld2V4dGVuc2lvbmxlbiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGV0b3AsIGJlZm9yZSk7CisJICAgICAgICAgICAgICAgICAgICB9CisJICAgICAgICAgICAgICAgICAgICAvLyBpZiB3ZSBzdGFydCB3aXRoIHN0cmVuZ3RoLCB3ZSdsbCByZXNldCB0byB0b3AKKwkJICAgICAgICAgICAgICAgIGlmIChzdGFydG9mcnVsZXMgPT0gdHJ1ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1faW5kaXJlY3RJbmRleF8gPSA1OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcCA9IGRvU2V0VG9wKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRvRW5kUGFyc2VOZXh0VG9rZW4oVE9LRU5fUkVTRVRfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3AsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbm9mZnNldCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3ZXh0ZW5zaW9ubGVuLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXRvcCwgYmVmb3JlKTsKKwkJICAgICAgICAgICAgICAgIH0KKwkJICAgICAgICAgICAgICAgIC8vIGJlZm9yZSB0aGlzLCBkbyBhIHNjYW4gdG8gdmVyaWZ5IHdoZXRoZXIgdGhpcyBpcyAKKwkJICAgICAgICAgICAgICAgIC8vIGFub3RoZXIgc3RyZW5ndGgKKwkJICAgICAgICAgICAgICAgIGlmIChtX3NvdXJjZV8uY2hhckF0KG1fY3VycmVudF8gKyAxKSA9PSAweDAwM0MpIHsKKwkJICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRfICsrOworCQkgICAgICAgICAgICAgICAgICAgIGlmIChtX3NvdXJjZV8uY2hhckF0KG1fY3VycmVudF8gKyAxKSA9PSAweDAwM0MpIHsKKwkJICAgICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50XyArKzsgLy8gdGhyZWUgaW4gYSByb3chCisJCSAgICAgICAgICAgICAgICAgICAgICAgIG5ld3N0cmVuZ3RoID0gQ29sbGF0b3IuVEVSVElBUlk7CisJCSAgICAgICAgICAgICAgICAgICAgfSAKKwkJICAgICAgICAgICAgICAgICAgICBlbHNlIHsgLy8gdHdvIGluIGEgcm93IAorCQkgICAgICAgICAgICAgICAgICAgICAgICBuZXdzdHJlbmd0aCA9IENvbGxhdG9yLlNFQ09OREFSWTsKKwkJICAgICAgICAgICAgICAgICAgICB9CisJCSAgICAgICAgICAgICAgICB9IAorCQkgICAgICAgICAgICAgICAgZWxzZSB7IC8vIGp1c3Qgb25lIAorCQkgICAgICAgICAgICAgICAgICAgIG5ld3N0cmVuZ3RoID0gQ29sbGF0b3IuUFJJTUFSWTsKKwkJICAgICAgICAgICAgICAgIH0KKwkJICAgICAgICAgICAgICAgIGJyZWFrOworCQkgICAgICAgICAgICBjYXNlIDB4MDAyNiA6IC8vICcmJworCQkgICAgICAgICAgICAgICAgaWYgKG5ld3N0cmVuZ3RoICE9IFRPS0VOX1VOU0VUXykgeworCQkgICAgICAgICAgICAgICAgICAgIHJldHVybiBkb0VuZFBhcnNlTmV4dFRva2VuKG5ld3N0cmVuZ3RoLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3AsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbm9mZnNldCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3ZXh0ZW5zaW9ubGVuLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXRvcCwgYmVmb3JlKTsKKwkJICAgICAgICAgICAgICAgIH0KKwkJICAgICAgICAgICAgICAgIG5ld3N0cmVuZ3RoID0gVE9LRU5fUkVTRVRfOyAvLyBQYXR0ZXJuRW50cnk6OlJFU0VUID0gMAorCQkgICAgICAgICAgICAgICAgYnJlYWs7CisJCSAgICAgICAgICAgIGNhc2UgMHgwMDViIDogLy8gJ1snCisJCSAgICAgICAgICAgICAgICAvLyBvcHRpb25zIC0gcmVhZCBhbiBvcHRpb24sIGFuYWx5emUgaXQKKwkJICAgICAgICAgICAgICAgIGludCBvcHRpb25lbmQgPSBtX3J1bGVzXy5pbmRleE9mKDB4MDA1ZCwgbV9jdXJyZW50Xyk7CisJCSAgICAgICAgICAgICAgICBpZiAob3B0aW9uZW5kICE9IC0xKSB7IC8vICddJworCQkgICAgICAgICAgICAgICAgICAgIGJ5dGUgcmVzdWx0ID0gcmVhZEFuZFNldE9wdGlvbihvcHRpb25lbmQpOworCQkgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudF8gPSBvcHRpb25lbmQ7CisJCSAgICAgICAgICAgICAgICAgICAgaWYgKChyZXN1bHQgJiBUT0tFTl9UT1BfTUFTS18pICE9IDApIHsKKwkJICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld3N0cmVuZ3RoID09IFRPS0VOX1JFU0VUXykgeyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcCA9IGRvU2V0VG9wKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmVmb3JlICE9IDApIHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBhIGNvbWJpbmF0aW9uIG9mIGJlZm9yZSBhbmQgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW5kaXJlY3Rpb24gbGlrZSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAnJltiZWZvcmUgMl1bZmlyc3QgcmVndWxhcl08YicgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zb3VyY2VfLmFwcGVuZCgoY2hhcikweDAwMmQpOyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3NvdXJjZV8uYXBwZW5kKChjaGFyKWJlZm9yZSk7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZXh0cmFDdXJyZW50XyArPSAyOyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXyArPSAyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudF8gKys7CisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZG9FbmRQYXJzZU5leHRUb2tlbihuZXdzdHJlbmd0aCwgCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9ub2Zmc2V0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdleHRlbnNpb25sZW4sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxldG9wLCBiZWZvcmUpOworCQkgICAgICAgICAgICAgICAgICAgICAgICB9IAorCQkgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93UGFyc2VFeGNlcHRpb24obV9ydWxlc18sIG1fY3VycmVudF8pOworCQkgICAgICAgICAgICAgICAgICAgICAgICB9CisJCSAgICAgICAgICAgICAgICAgICAgfSAKKwkJICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgocmVzdWx0ICYgVE9LRU5fVkFSSUFCTEVfVE9QX01BU0tfKSAhPSAwKSB7CisJCSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdzdHJlbmd0aCAhPSBUT0tFTl9SRVNFVF8gCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBuZXdzdHJlbmd0aCAhPSBUT0tFTl9VTlNFVF8pIHsKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxldG9wID0gdHJ1ZTsKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfID0gbV9leHRyYUN1cnJlbnRfOworCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zb3VyY2VfLmFwcGVuZCgoY2hhcikweEZGRkYpOworCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9leHRyYUN1cnJlbnRfICsrOworCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50XyArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fID0gMTsKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkb0VuZFBhcnNlTmV4dFRva2VuKG5ld3N0cmVuZ3RoLCAKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3AsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbm9mZnNldCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3ZXh0ZW5zaW9ubGVuLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXRvcCwgYmVmb3JlKTsKKwkJICAgICAgICAgICAgICAgICAgICAgICAgfSAKKwkJICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd1BhcnNlRXhjZXB0aW9uKG1fcnVsZXNfLCBtX2N1cnJlbnRfKTsKKwkJICAgICAgICAgICAgICAgICAgICAgICAgfQorCQkgICAgICAgICAgICAgICAgICAgIH0gCisJCSAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoKHJlc3VsdCAmIFRPS0VOX0JFRk9SRV8pICE9IDApeworCQkgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV3c3RyZW5ndGggPT0gVE9LRU5fUkVTRVRfKSB7CisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWZvcmUgPSAoYnl0ZSkocmVzdWx0ICYgVE9LRU5fQkVGT1JFXyk7CisJCSAgICAgICAgICAgICAgICAgICAgICAgIH0gCisJCSAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dQYXJzZUV4Y2VwdGlvbihtX3J1bGVzXywgbV9jdXJyZW50Xyk7CQkKKwkJICAgICAgICAgICAgICAgICAgICAgICAgfQorCQkgICAgICAgICAgICAgICAgICAgIH0gIAorCQkgICAgICAgICAgICAgICAgfQorCQkgICAgICAgICAgICAgICAgYnJlYWs7CisJCSAgICAgICAgICAgIGNhc2UgMHgwMDJGIDogLy8gJy8nCisJCSAgICAgICAgICAgICAgICB3YXNpbnF1b3RlID0gZmFsc2U7IC8vIGlmIHdlIHdlcmUgY29weWluZyBzb3VyY2UgCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlcnMsIHdlIHdhbnQgdG8gc3RvcCBub3cKKwkJICAgICAgICAgICAgICAgIGluY2hhcnMgPSBmYWxzZTsgLy8gd2UncmUgbm93IHByb2Nlc3NpbmcgZXhwYW5zaW9uIAorCQkgICAgICAgICAgICAgICAgYnJlYWs7CisJCSAgICAgICAgICAgIGNhc2UgMHgwMDVDIDogLy8gYmFjayBzbGFzaCBmb3IgZXNjYXBlZCBjaGFycworCQkgICAgICAgICAgICAgICAgaXNlc2NhcGVkID0gdHJ1ZTsKKwkJICAgICAgICAgICAgICAgIGJyZWFrOworCQkgICAgICAgICAgICAvLyBmb3VuZCBhIHF1b3RlLCB3ZSdyZSBnb25uYSBzdGFydCBjb3B5aW5nCisJCSAgICAgICAgICAgIGNhc2UgMHgwMDI3IDogLy8nXCcnCisJCSAgICAgICAgICAgICAgICBpZiAobmV3c3RyZW5ndGggPT0gVE9LRU5fVU5TRVRfKSB7IAorCQkgICAgICAgICAgICAgICAgICAgIC8vIHF1b3RlIGlzIGlsbGVnYWwgdW50aWwgd2UgaGF2ZSBhIHN0cmVuZ3RoCisJCSAgICAgICAgICAgICAgICAgICAgdGhyb3dQYXJzZUV4Y2VwdGlvbihtX3J1bGVzXywgbV9jdXJyZW50Xyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisJCSAgICAgICAgICAgICAgICBpbnF1b3RlID0gdHJ1ZTsKKwkJICAgICAgICAgICAgICAgIGlmIChpbmNoYXJzKSB7IC8vIHdlJ3JlIGRvaW5nIGNoYXJhY3RlcnMgCisJCSAgICAgICAgICAgICAgICAgICAgaWYgKHdhc2lucXVvdGUgPT0gZmFsc2UpIHsKKwkJICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF8gPSBtX2V4dHJhQ3VycmVudF87CisJCSAgICAgICAgICAgICAgICAgICAgfQorCQkgICAgICAgICAgICAgICAgICAgIGlmIChtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXyAhPSAwKSB7CisJCSAgICAgICAgICAgICAgICAgICAgCW1fc291cmNlXy5hcHBlbmQobV9zb3VyY2VfLnN1YnN0cmluZygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50XyAtIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fLCAKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50XykpOworCQkgICAgICAgICAgICAgICAgICAgICAgICBtX2V4dHJhQ3VycmVudF8gKz0gbV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl87CisJCSAgICAgICAgICAgICAgICAgICAgfQorCQkgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fICsrOworCQkgICAgICAgICAgICAgICAgfSAKKwkJICAgICAgICAgICAgICAgIGVsc2UgeyAvLyB3ZSdyZSBkb2luZyBhbiBleHBhbnNpb24KKwkJICAgICAgICAgICAgICAgICAgICBpZiAod2FzaW5xdW90ZSA9PSBmYWxzZSkgeworCQkgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25vZmZzZXQgPSBtX2V4dHJhQ3VycmVudF87CisJCSAgICAgICAgICAgICAgICAgICAgfQorCQkgICAgICAgICAgICAgICAgICAgIGlmIChuZXdleHRlbnNpb25sZW4gIT0gMCkgeworCQkgICAgICAgICAgICAgICAgICAgICAgICBtX3NvdXJjZV8uYXBwZW5kKG1fc291cmNlXy5zdWJzdHJpbmcoCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRfIC0gbmV3ZXh0ZW5zaW9ubGVuLAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50XykpOworCQkgICAgICAgICAgICAgICAgICAgICAgICBtX2V4dHJhQ3VycmVudF8gKz0gbmV3ZXh0ZW5zaW9ubGVuOworCQkgICAgICAgICAgICAgICAgICAgIH0KKwkJICAgICAgICAgICAgICAgICAgICBuZXdleHRlbnNpb25sZW4gKys7CisJCSAgICAgICAgICAgICAgICB9CisJCSAgICAgICAgICAgICAgICB3YXNpbnF1b3RlID0gdHJ1ZTsKKwkJICAgICAgICAgICAgICAgIG1fY3VycmVudF8gKys7CisJCSAgICAgICAgICAgICAgICBjaCA9IG1fc291cmNlXy5jaGFyQXQobV9jdXJyZW50Xyk7IAorCQkgICAgICAgICAgICAgICAgaWYgKGNoID09IDB4MDAyNykgeyAvLyBjb3B5IHRoZSBkb3VibGUgcXVvdGUKKwkJICAgICAgICAgICAgICAgICAgICBtX3NvdXJjZV8uYXBwZW5kKGNoKTsKKwkJICAgICAgICAgICAgICAgICAgICBtX2V4dHJhQ3VycmVudF8gKys7CisJCSAgICAgICAgICAgICAgICAgICAgaW5xdW90ZSA9IGZhbHNlOworCQkgICAgICAgICAgICAgICAgfQorCQkgICAgICAgICAgICAgICAgYnJlYWs7CisJCSAgICAgICAgICAgIC8vICdAJyBpcyBmcmVuY2ggb25seSBpZiB0aGUgc3RyZW5ndGggaXMgbm90IGN1cnJlbnRseSBzZXQKKwkJICAgICAgICAgICAgLy8gaWYgaXQgaXMsIGl0J3MganVzdCBhIHJlZ3VsYXIgY2hhcmFjdGVyIGluIGNvbGxhdGlvbiAgCisJCSAgICAgICAgICAgIGNhc2UgMHgwMDQwIDogLy8gJ0AnCisJCSAgICAgICAgICAgICAgICBpZiAobmV3c3RyZW5ndGggPT0gVE9LRU5fVU5TRVRfKSB7CisJCSAgICAgICAgICAgICAgICAgICAgbV9vcHRpb25zXy5tX2lzRnJlbmNoQ29sbGF0aW9uXyA9IHRydWU7CisJCSAgICAgICAgICAgICAgICBicmVhazsKKwkJICAgICAgICAgICAgfQorCQkgICAgICAgICAgICBjYXNlIDB4MDA3QyA6IC8vfAorCQkgICAgICAgICAgICAgICAgLy8gdGhpcyBtZWFucyB3ZSBoYXZlIGFjdHVhbGx5IGJlZW4gcmVhZGluZyBwcmVmaXggcGFydCAKKwkJICAgICAgICAgICAgICAgIC8vIHdlIHdhbnQgdG8gc3RvcmUgcmVhZCBjaGFyYWN0ZXJzIHRvIHRoZSBwcmVmaXggcGFydCAKKwkJICAgICAgICAgICAgICAgIC8vIGFuZCBjb250aW51ZSByZWFkaW5nIHRoZSBjaGFyYWN0ZXJzIChwcm9wZXIgd2F5IAorCQkgICAgICAgICAgICAgICAgLy8gd291bGQgYmUgdG8gcmVzdGFydCByZWFkaW5nIHRoZSBjaGFycywgYnV0IGluIHRoYXQgCisJCSAgICAgICAgICAgICAgICAvLyBjYXNlIHdlIHdvdWxkIGhhdmUgdG8gY29tcGxpY2F0ZSB0aGUgdG9rZW4gaGFzaGVyLCAKKwkJICAgICAgICAgICAgICAgIC8vIHdoaWNoIEkgZG8gbm90IGludGVuZCB0byBwbGF5IHdpdGguIEluc3RlYWQsIHdlIHdpbGwgCisJCSAgICAgICAgICAgICAgICAvLyBkbyBwcmVmaXhlcyB3aGVuIHByZWZpeGVzIGFyZSBkdWUgKGJlZm9yZSBhZGRpbmcgdGhlIAorCQkgICAgICAgICAgICAgICAgLy8gZWxlbWVudHMpLgorCQkgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9wcmVmaXhPZmZzZXRfID0gbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF87CisJCSAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX3ByZWZpeExlbl8gPSBtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbmNoYXJzKSB7IC8vIHdlJ3JlIGRvaW5nIGNoYXJhY3RlcnMKKwkJICAgICAgICAgICAgICAgICAgICBpZiAod2FzaW5xdW90ZSA9PSBmYWxzZSkgeworCQkgICAgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XyA9IG1fZXh0cmFDdXJyZW50XzsKKwkJICAgICAgICAgICAgICAgICAgICB9CisJCSAgICAgICAgICAgICAgICAgICAgaWYgKG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHByZWZpeCA9IG1fc291cmNlXy5zdWJzdHJpbmcoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRfIC0gbV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50Xyk7CisJCSAgICAgICAgICAgICAgICAgICAgCW1fc291cmNlXy5hcHBlbmQocHJlZml4KTsKKwkJICAgICAgICAgICAgICAgICAgICAgICAgbV9leHRyYUN1cnJlbnRfICs9IG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fOworCQkgICAgICAgICAgICAgICAgICAgIH0KKwkJICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXyArKzsKKwkJICAgICAgICAgICAgICAgIH0KKwkJICAgICAgICAgICAgICAgIHdhc2lucXVvdGUgPSB0cnVlOworCQkgICAgICAgICAgICAgICAgbV9jdXJyZW50XyArKzsKKwkJICAgICAgICAgICAgICAgIGNoID0gbV9zb3VyY2VfLmNoYXJBdChtX2N1cnJlbnRfKTsgCisJCSAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAweDAwMjE6IC8vICchJyAvLyBpZ25vcmluZyBqYXZhIHNldCB0aGFpIHJlb3JkZXJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCSAgICAgICAgICAgICAgICBkZWZhdWx0IDoKKwkgICAgICAgICAgICAgICAgICAgIGlmIChuZXdzdHJlbmd0aCA9PSBUT0tFTl9VTlNFVF8pIHsKKwkgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd1BhcnNlRXhjZXB0aW9uKG1fcnVsZXNfLCBtX2N1cnJlbnRfKTsKKwkgICAgICAgICAgICAgICAgICAgIH0KKwkgICAgICAgICAgICAgICAgICAgIGlmIChpc1NwZWNpYWxDaGFyKGNoKSAmJiAoaW5xdW90ZSA9PSBmYWxzZSkpIHsKKwkgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd1BhcnNlRXhjZXB0aW9uKG1fcnVsZXNfLCBtX2N1cnJlbnRfKTsKKwkgICAgICAgICAgICAgICAgICAgIH0KKwkgICAgICAgICAgICAgICAgICAgIGlmIChjaCA9PSAweDAwMDAgJiYgbV9jdXJyZW50XyArIDEgPT0gbGltaXQpIHsKKwkgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKwkgICAgICAgICAgICAgICAgICAgIH0KKwkgICAgICAgICAgICAgICAgICAgIGlmIChpbmNoYXJzKSB7CisJICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fID09IDApIHsKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF8gPSBtX2N1cnJlbnRfOworCSAgICAgICAgICAgICAgICAgICAgICAgIH0KKwkgICAgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXysrOworCSAgICAgICAgICAgICAgICAgICAgfSAKKwkgICAgICAgICAgICAgICAgICAgIGVsc2UgeworCSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdleHRlbnNpb25sZW4gPT0gMCkgeworCSAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25vZmZzZXQgPSBtX2N1cnJlbnRfOworCSAgICAgICAgICAgICAgICAgICAgICAgIH0KKwkgICAgICAgICAgICAgICAgICAgICAgICBuZXdleHRlbnNpb25sZW4gKys7CisJICAgICAgICAgICAgICAgICAgICB9CQorCSAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisJICAgICAgICAgICAgICAgIH0KKwkgICAgICAgICAgICB9ICAgCisgICAgICAgICAgICB9CisJICAgICAgICBpZiAod2FzaW5xdW90ZSkgeworCSAgICAgICAgICAgIGlmIChjaCAhPSAweDI3KSB7CisJICAgICAgICAgICAgICAJbV9zb3VyY2VfLmFwcGVuZChjaCk7CisJICAgICAgICAgICAgICAgIG1fZXh0cmFDdXJyZW50XyArKzsKKwkgICAgICAgICAgICB9CisJICAgICAgICB9ICAgCisJICAgICAgICBtX2N1cnJlbnRfICsrOworCSAgICB9ICAKKwkgICAgcmV0dXJuIGRvRW5kUGFyc2VOZXh0VG9rZW4obmV3c3RyZW5ndGgsIHRvcCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbm9mZnNldCwgbmV3ZXh0ZW5zaW9ubGVuLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGV0b3AsIGJlZm9yZSk7CisJfQorCisgICAgLyoqCisgICAgICogRW5kIHRoZSBuZXh0IHBhcnNlIHRva2VuCisgICAgICogQHBhcmFtIG5ld3N0cmVuZ3RoIG5ldyBzdHJlbmd0aAorICAgICAqIEByZXR1cm4gb2Zmc2V0IGluIHJ1bGVzLCAtMSBmb3IgZW5kIG9mIHJ1bGVzCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZG9FbmRQYXJzZU5leHRUb2tlbihpbnQgbmV3c3RyZW5ndGgsIC8qaW50IG5ld2NoYXJzbGVuLCovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHRvcCwgLyppbnQgY2hhcnNvZmZzZXQsKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBleHRlbnNpb25vZmZzZXQsIGludCBuZXdleHRlbnNpb25sZW4sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB2YXJpYWJsZXRvcCwgaW50IGJlZm9yZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBQYXJzZUV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgaWYgKG5ld3N0cmVuZ3RoID09IFRPS0VOX1VOU0VUXykgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIGlmIChtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXyA9PSAwICYmIHRvcCA9PSBmYWxzZSkgeworCQkgICAgdGhyb3dQYXJzZUV4Y2VwdGlvbihtX3J1bGVzXywgbV9jdXJyZW50Xyk7IAorCQkgICAgcmV0dXJuIC0xOworCQl9CisJCQorCQltX3BhcnNlZFRva2VuXy5tX3N0cmVuZ3RoXyA9IG5ld3N0cmVuZ3RoOyAKKwkJLy9tX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XyA9IGNoYXJzb2Zmc2V0OworCQkvL21fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fID0gbmV3Y2hhcnNsZW47CisJCW1fcGFyc2VkVG9rZW5fLm1fZXh0ZW5zaW9uT2Zmc2V0XyA9IGV4dGVuc2lvbm9mZnNldDsKKwkgICAgbV9wYXJzZWRUb2tlbl8ubV9leHRlbnNpb25MZW5fID0gbmV3ZXh0ZW5zaW9ubGVuOworCQltX3BhcnNlZFRva2VuXy5tX2ZsYWdzXyA9IChjaGFyKQorCQkgICAgICAgICAgICAgICAgICAgICAgICAgICgodmFyaWFibGV0b3AgPyBUT0tFTl9WQVJJQUJMRV9UT1BfTUFTS18gOiAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKHRvcCA/IFRPS0VOX1RPUF9NQVNLXyA6IDApIHwgYmVmb3JlKTsKKwkJcmV0dXJuIG1fY3VycmVudF87CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRva2VuIGJlZm9yZSB0aGlzIGVsZW1lbnQKKyAgICAgKiBAcGFyYW0gc291cmNldG9rZW4gCisgICAgICogQHBhcmFtIHN0cmVuZ3RoIGNvbGxhdGlvbiBzdHJlbmd0aAorICAgICAqIEByZXR1cm4gdGhlIHRva2VuIGJlZm9yZSBzb3VyY2UgdG9rZW4KKyAgICAgKiBAZXhjZXB0aW9uIFBhcnNlRXhjZXB0aW9uIHRocm93biB3aGVuIHJ1bGVzIGhhdmUgdGhlIHdyb25nIHN5bnRheAorICAgICAqLworICAgIHByaXZhdGUgVG9rZW4gZ2V0VmlyZ2luQmVmb3JlKFRva2VuIHNvdXJjZXRva2VuLCBpbnQgc3RyZW5ndGgpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBQYXJzZUV4Y2VwdGlvbgorICAgIHsKKwkgICAgLy8gdGhpcyBpcyBhIHZpcmdpbiBiZWZvcmUgLSB3ZSBuZWVkIHRvIGZpc2ggdGhlIGFuY2hvciBmcm9tIHRoZSBVQ0EKKwkgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGNvbGVpdGVyID0gbnVsbDsKKwkgICAgaWYgKHNvdXJjZXRva2VuICE9IG51bGwpIHsKKyAgICAgICAgICAgIGludCBvZmZzZXQgPSBzb3VyY2V0b2tlbi5tX3NvdXJjZV8gJiAweEZGRkZGRjsKKyAgICAgICAgICAgIGNvbGVpdGVyID0gUnVsZUJhc2VkQ29sbGF0b3IuVUNBXy5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc291cmNlXy5zdWJzdHJpbmcob2Zmc2V0LCBvZmZzZXQgKyAxKSk7CisJICAgIH0gCisJICAgIGVsc2UgeworICAgICAgICAgICAgY29sZWl0ZXIgPSBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcigKKyAgICAgICAgICAgICAgICAgICAgICAgbV9zb3VyY2VfLnN1YnN0cmluZyhtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF8gKyAxKSk7CisJICAgIH0KKwkgICAgICAJCisJICAgIGludCBiYXNlY2UgPSBjb2xlaXRlci5uZXh0KCkgJiAweEZGRkZGRjNGOworCSAgICBpbnQgYmFzZWNvbnRjZSA9IGNvbGVpdGVyLm5leHQoKTsKKwkgICAgaWYgKGJhc2Vjb250Y2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworCSAgICAgICAgYmFzZWNvbnRjZSA9IDA7CisJICAgIH0KKwkgICAgaW50IGNlW10gPSBuZXcgaW50WzJdOyAvLyBmaXJzdCBjZSBhbmQgc2Vjb25kIGNlCisJICAgIGludCBpbnZwb3MgPSBDb2xsYXRpb25QYXJzZWRSdWxlQnVpbGRlci5JTlZFUlNFX1VDQV8uZ2V0SW52ZXJzZVByZXZDRSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlY2UsIGJhc2Vjb250Y2UsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVuZ3RoLCBjZSk7CisJICAgIGludCBjaCA9IENvbGxhdGlvblBhcnNlZFJ1bGVCdWlsZGVyLklOVkVSU0VfVUNBXy5tX3RhYmxlX1szICogaW52cG9zIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAyXTsKKyAgICAgICAgaWYgKChjaCAmICBJTlZFUlNFX1NJWkVfTUFTS18pICE9IDApIHsKKwkgICAgICAgIGludCBvZmZzZXQgPSBjaCAmIElOVkVSU0VfT0ZGU0VUX01BU0tfOworCSAgICAgICAgY2ggPSBDb2xsYXRpb25QYXJzZWRSdWxlQnVpbGRlci5JTlZFUlNFX1VDQV8ubV9jb250aW51YXRpb25zX1sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0XTsKKwkgICAgfSAgICAgIAorCSAgICBtX3NvdXJjZV8uYXBwZW5kKChjaGFyKWNoKTsKKwkgICAgbV9leHRyYUN1cnJlbnRfICsrOworCSAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XyA9IG1fZXh0cmFDdXJyZW50XyAtIDE7CisJICAgIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fID0gMTsKKwkKKwkgICAgLy8gV2UgZ290IGFuIFVDQSBiZWZvcmUuIEhvd2V2ZXIsIHRoaXMgbWlnaHQgaGF2ZSBiZWVuIHRhaWxvcmVkLgorCSAgICAvLyBleGFtcGxlOgorCSAgICAvLyAmXHUzMGNhID0gXHUzMDZhCisJICAgIC8vICZbYmVmb3JlIDNdXHUzMDZhPDw8XHUzMDZhfFx1MzA5ZAorCSAgCisJICAgIFRva2VuIGtleSA9IG5ldyBUb2tlbigpOworCSAgICBrZXkubV9zb3VyY2VfID0gKG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fIDw8IDI0KSAKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF87CisJICAgIGtleS5tX3J1bGVzXyA9IG1fc291cmNlXzsKKwkgICAgc291cmNldG9rZW4gPSAoVG9rZW4pbV9oYXNoVGFibGVfLmdldChrZXkpOworCSAgCisJICAgIC8vIGlmIHdlIGZvdW5kIGEgdGFpbG9yZWQgdGhpbmcsIHdlIGhhdmUgdG8gdXNlIHRoZSBVQ0EgdmFsdWUgYW5kIAorCSAgICAvLyBjb25zdHJ1Y3QgYSBuZXcgcmVzZXQgdG9rZW4gd2l0aCBjb25zdHJ1Y3RlZCBuYW1lCisJICAgIGlmIChzb3VyY2V0b2tlbiAhPSBudWxsICYmIHNvdXJjZXRva2VuLm1fc3RyZW5ndGhfICE9IFRPS0VOX1JFU0VUXykgeworCSAgICAgICAgLy8gY2hhcmFjdGVyIHRvIHdoaWNoIHdlIHdhbnQgdG8gYW5jaG9yIGlzIGFscmVhZHkgdGFpbG9yZWQuIAorCSAgICAgICAgLy8gV2UgbmVlZCB0byBjb25zdHJ1Y3QgYSBuZXcgdG9rZW4gd2hpY2ggd2lsbCBiZSB0aGUgYW5jaG9yIHBvaW50CisgICAgICAgICAgICBtX3NvdXJjZV8uc2V0Q2hhckF0KG1fZXh0cmFDdXJyZW50XyAtIDEsICdcdUZGRkUnKTsKKwkgICAgICAgIG1fc291cmNlXy5hcHBlbmQoY2gpOworCSAgICAgICAgbV9leHRyYUN1cnJlbnRfICsrOworCSAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8gKys7CisgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10gPSBuZXcgVG9rZW5MaXN0SGVhZGVyKCk7CisJICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9iYXNlQ0VfID0gY2VbMF0gJiAweEZGRkZGRjNGOworCSAgICAgICAgaWYgKFJ1bGVCYXNlZENvbGxhdG9yLmlzQ29udGludWF0aW9uKGNlWzFdKSkgeworCSAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX2Jhc2VDb250Q0VfID0gY2VbMV07CisJICAgICAgICB9IAorCSAgICAgICAgZWxzZSB7CisJICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fYmFzZUNvbnRDRV8gPSAwOworCSAgICAgICAgfQorCSAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fbmV4dENFXyA9IDA7CisJICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9uZXh0Q29udENFXyA9IDA7CisJICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9wcmV2aW91c0NFXyA9IDA7CisJICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9wcmV2aW91c0NvbnRDRV8gPSAwOworCSAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1faW5kaXJlY3RfID0gZmFsc2U7CisJICAgICAgICBzb3VyY2V0b2tlbiA9IG5ldyBUb2tlbigpOworCSAgICAgICAgaW5pdEFSZXNldCgtMSwgc291cmNldG9rZW4pOyAgIAorCSAgICB9CisJICAgIHJldHVybiBzb3VyY2V0b2tlbjsKKwl9CisJCisJLyoqCisJICogUHJvY2Vzc2luZyBEZXNjcmlwdGlvbi4KKwkgKiAxLiBCdWlsZCBhIG1fbGlzdEhlYWRlcl8uIEVhY2ggbGlzdCBoYXMgYSBoZWFkZXIsIHdoaWNoIGNvbnRhaW5zIHR3byBsaXN0cyAKKwkgKiAocG9zaXRpdmUgYW5kIG5lZ2F0aXZlKSwgYSByZXNldCB0b2tlbiwgYSBiYXNlQ0UsIG5leHRDRSwgYW5kIAorCSAqIHByZXZpb3VzQ0UuIFRoZSBsaXN0cyBhbmQgcmVzZXQgbWF5IGJlIG51bGwuIAorCSAqIDIuIEFzIHlvdSBwcm9jZXNzLCB5b3Uga2VlcCBhIExBU1QgcG9pbnRlciB0aGF0IHBvaW50cyB0byB0aGUgbGFzdCB0b2tlbiAKKwkgKiB5b3UgaGFuZGxlZC4gCisJICogQHBhcmFtIGV4cGFuZCBzdHJpbmcgb2Zmc2V0LCAtMSBmb3IgbnVsbCBzdHJpbmdzCisJICogQHBhcmFtIHRhcmdldFRva2VuIHRrZW4gdG8gdXBkYXRlCisJICogQHJldHVybiBleHBhbmRuZXh0IG9mZnNldAorCSAqIEB0aHJvd3MgUGFyc2VFeGNlcHRpb24gdGhyb3duIHdoZW4gcnVsZXMgc3ludGF4IGZhaWxlZAorCSAqLworCXByaXZhdGUgaW50IGluaXRBUmVzZXQoaW50IGV4cGFuZCwgVG9rZW4gdGFyZ2V0VG9rZW4pIHRocm93cyBQYXJzZUV4Y2VwdGlvbgorCXsKKwkgICAgLy8gZG8gdGhlIHJlc2V0IHRoaW5nCisJICAgIHRhcmdldFRva2VuLm1fcnVsZXNfID0gbV9zb3VyY2VfOworCSAgICB0YXJnZXRUb2tlbi5tX3NvdXJjZV8gPSBtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXyA8PCAyNCAKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XzsKKwkgICAgdGFyZ2V0VG9rZW4ubV9leHBhbnNpb25fID0gbV9wYXJzZWRUb2tlbl8ubV9leHRlbnNpb25MZW5fIDw8IDI0IAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IG1fcGFyc2VkVG9rZW5fLm1fZXh0ZW5zaW9uT2Zmc2V0XzsKKwkgICAgaWYgKG1fcGFyc2VkVG9rZW5fLm1fcHJlZml4T2Zmc2V0XyAhPSAwKSB7CisJICAgICAgICB0aHJvd1BhcnNlRXhjZXB0aW9uKG1fcnVsZXNfLCBtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XyAtIDEpOworCSAgICB9IAorCSAgICAKKyAgICAgICAgdGFyZ2V0VG9rZW4ubV9wcmVmaXhfID0gMDsKKwkgICAgLy8gVE9ETzogdGhpcyBzaG91bGQgYWxzbyBoYW5kbGUgcmV2ZXJzZQorCSAgICB0YXJnZXRUb2tlbi5tX3BvbGFyaXR5XyA9IFRPS0VOX1BPTEFSSVRZX1BPU0lUSVZFXzsgCisJICAgIHRhcmdldFRva2VuLm1fc3RyZW5ndGhfID0gVE9LRU5fUkVTRVRfOworCSAgICB0YXJnZXRUb2tlbi5tX25leHRfID0gbnVsbDsKKwkgICAgdGFyZ2V0VG9rZW4ubV9wcmV2aW91c18gPSBudWxsOworCSAgICB0YXJnZXRUb2tlbi5tX0NFTGVuZ3RoXyA9IDA7CisJICAgIHRhcmdldFRva2VuLm1fZXhwQ0VMZW5ndGhfID0gMDsKKwkgICAgdGFyZ2V0VG9rZW4ubV9saXN0SGVhZGVyXyA9IG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXTsKKwkgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fZmlyc3RfID0gbnVsbDsKKwkgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fbGFzdF8gPSBudWxsOworCSAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9maXJzdF8gPSBudWxsOworCSAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9sYXN0XyA9IG51bGw7CisJICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX3Jlc2V0XyA9IHRhcmdldFRva2VuOworCQorCSAgICAvKiAzIENvbnNpZGVyIGVhY2ggaXRlbTogcmVsYXRpb24sIHNvdXJjZSwgYW5kIGV4cGFuc2lvbjogCisJICAgICAqIGUuZy4gLi4uPCB4IC8geSAuLi4gCisJICAgICAqIEZpcnN0IGNvbnZlcnQgYWxsIGV4cGFuc2lvbnMgaW50byBub3JtYWwgZm9ybS4gRXhhbXBsZXM6IAorCSAgICAgKiBJZiAieHkiIGRvZXNuJ3Qgb2NjdXIgZWFybGllciBpbiB0aGUgbGlzdCBvciBpbiB0aGUgVUNBLCBjb252ZXJ0IAorCSAgICAgKiAmeHkgKiBjICogZCAqIC4uLiBpbnRvICZ4ICogYy95ICogZCAqIC4uLiAKKwkgICAgICogTm90ZTogcmVzZXQgdmFsdWVzIGNhbiBuZXZlciBoYXZlIGV4cGFuc2lvbnMsIGFsdGhvdWdoIHRoZXkgY2FuIAorCSAgICAgKiBjYXVzZSB0aGUgdmVyeSBuZXh0IGl0ZW0gdG8gaGF2ZSBvbmUuIFRoZXkgbWF5IGJlIGNvbnRyYWN0aW9ucywgaWYgCisJICAgICAqIHRoZXkgYXJlIGZvdW5kIGVhcmxpZXIgaW4gdGhlIGxpc3QuIAorCSAgICAgKi8KKwkgICAgaW50IHJlc3VsdCA9IDA7CisJICAgIGlmIChleHBhbmQgPiAwKSB7CisJICAgICAgICAvLyBjaGVjayB0byBzZWUgaWYgdGhlcmUgaXMgYW4gZXhwYW5zaW9uCisJICAgICAgICBpZiAobV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8gPiAxKSB7CisJICAgICAgICAgICAgdGFyZ2V0VG9rZW4ubV9zb3VyY2VfID0gKChleHBhbmQgCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfICkgCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAyNCkgCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfOworCSAgICAgICAgICAgIHJlc3VsdCA9ICgobV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8gCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XyAtIGV4cGFuZCkgPDwgMjQpIAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZXhwYW5kOworCSAgICAgICAgfQorCSAgICB9ICAgCisJCisJICAgIG1fcmVzdWx0TGVuZ3RoXyArKzsKKwkgICAgbV9oYXNoVGFibGVfLnB1dCh0YXJnZXRUb2tlbiwgdGFyZ2V0VG9rZW4pOworCSAgICByZXR1cm4gcmVzdWx0OworCX0KKwkKKwkvKioKKwkgKiBDaGVja3MgaWYgYW4gY2hhcmFjdGVyIGlzIHNwZWNpYWwKKwkgKiBAcGFyYW0gY2ggY2hhcmFjdGVyIHRvIHRlc3QKKwkgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNoYXJhY3RlciBpcyBzcGVjaWFsCisJICovCisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBpc1NwZWNpYWxDaGFyKGNoYXIgY2gpCisJeworICAgICAgICByZXR1cm4gKGNoIDw9IDB4MDAyRiAmJiBjaCA+PSAweDAwMjApIHx8IChjaCA8PSAweDAwM0YgJiYgY2ggPj0gMHgwMDNBKSAKKyAgICAgICAgICAgICAgIHx8IChjaCA8PSAweDAwNjAgJiYgY2ggPj0gMHgwMDVCKSAKKyAgICAgICAgICAgICAgIHx8IChjaCA8PSAweDAwN0UgJiYgY2ggPj0gMHgwMDdEKSB8fCBjaCA9PSAweDAwN0I7CisJfQorCQorCS8qKgorCSAqIFJlYWRzIGFuZCBzZXQgY29sbGF0aW9uIG9wdGlvbnMKKwkgKiBAcGFyYW0gb3B0aW9uZW5kIG9mZnNldCB0byB0aGUgZW5kIG9mIHRoZSBvcHRpb24gaW4gcnVsZXMKKwkgKiBAcmV0dXJuIFRPS0VOX1NVQ0NFU1MgaWYgb3B0aW9uIGlzIHNldCBjb3JyZWN0LCAwIG90aGVyd2lzZQorICAgICAqIEBleGNlcHRpb24gUGFyc2VFeGNlcHRpb24gdGhyb3duIHdoZW4gb3B0aW9ucyBpbiBydWxlcyBhcmUgd3JvbmcKKwkgKi8KKwlwcml2YXRlIGJ5dGUgcmVhZEFuZFNldE9wdGlvbihpbnQgb3B0aW9uZW5kKSB0aHJvd3MgUGFyc2VFeGNlcHRpb24KKwl7CisJCWludCBzdGFydCA9IG1fY3VycmVudF8gKyAxOyAvLyBza2lwIG9wZW5pbmcgJ1snCisJICAgIGludCBpID0gMDsKKwkgICAgYm9vbGVhbiBmb3VuZG9wdGlvbiA9IGZhbHNlOworCSAgICBpbnQgb3B0aW9uYXJnID0gMDsKKwkgICAgd2hpbGUgKGkgPCBSVUxFU19PUFRJT05TXy5sZW5ndGgpIHsKKyAgICAgICAgICAgIFN0cmluZyBvcHRpb24gPSBSVUxFU19PUFRJT05TX1tpXS5tX25hbWVfOworICAgICAgICAgICAgaW50IG9wdGlvbmxlbmd0aCA9IG9wdGlvbi5sZW5ndGgoKTsKKyAgICAgICAgICAgIGlmIChtX3J1bGVzXy5sZW5ndGgoKSA+IHN0YXJ0ICsgb3B0aW9ubGVuZ3RoCisgICAgICAgICAgICAgICAgJiYgb3B0aW9uLmVxdWFsc0lnbm9yZUNhc2UobV9ydWxlc18uc3Vic3RyaW5nKHN0YXJ0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICsgb3B0aW9ubGVuZ3RoKSkpIHsKKyAgICAgICAgICAgICAgICBmb3VuZG9wdGlvbiA9IHRydWU7CisJICAgICAgICAgICAgaWYgKG9wdGlvbmVuZCAtIHN0YXJ0ID4gb3B0aW9ubGVuZ3RoKSB7CisJICAgICAgICAgICAgICAgIG9wdGlvbmFyZyA9IHN0YXJ0ICsgb3B0aW9ubGVuZ3RoICsgMTsgCisgICAgICAgICAgICAgICAgICAgIC8vIHN0YXJ0IG9mIHRoZSBvcHRpb25zLCBza2lwIHNwYWNlCisJICAgICAgICAgICAgICAgIHdoaWxlIChVQ2hhcmFjdGVyLmlzV2hpdGVzcGFjZShtX3J1bGVzXy5jaGFyQXQob3B0aW9uYXJnKSkpIAorICAgICAgICAgICAgICAgICAgICB7ICAgLy8gZWF0IHdoaXRlc3BhY2UKKwkgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFyZyArKzsKKwkgICAgICAgICAgICAgICAgfQorCSAgICAgICAgICAgIH0gICAgIAorCSAgICAgICAgICAgIGJyZWFrOworCSAgICAgICAgfQorCSAgICAgICAgaSArKzsKKwkgICAgfQorCQorCSAgICBpZiAoIWZvdW5kb3B0aW9uKSB7CisJICAgICAgICB0aHJvd1BhcnNlRXhjZXB0aW9uKG1fcnVsZXNfLCBzdGFydCk7CisJICAgIH0KKwkKKwkgICAgaWYgKGkgPCA3KSB7CisgICAgICAgICAgICBpZiAob3B0aW9uYXJnICE9IDApIHsKKwkgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IFJVTEVTX09QVElPTlNfW2ldLm1fc3ViT3B0aW9uc18ubGVuZ3RoOyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGogKyspIHsKKyAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzdWJuYW1lID0gUlVMRVNfT1BUSU9OU19baV0ubV9zdWJPcHRpb25zX1tqXTsKKyAgICAgICAgICAgICAgICAgICAgIGludCBzaXplID0gb3B0aW9uYXJnICsgc3VibmFtZS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgIGlmIChtX3J1bGVzXy5sZW5ndGgoKSA+IHNpemUgCisgICAgICAgICAgICAgICAgICAgICAgICAgJiYgc3VibmFtZS5lcXVhbHNJZ25vcmVDYXNlKG1fcnVsZXNfLnN1YnN0cmluZygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYXJnLCBzaXplKSkpIHsKKwkgICAgICAgICAgICAgICAgICAgICBzZXRPcHRpb25zKG1fb3B0aW9uc18sIFJVTEVTX09QVElPTlNfW2ldLm1fYXR0cmlidXRlXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJVTEVTX09QVElPTlNfW2ldLm1fc3ViT3B0aW9uQXR0cmlidXRlVmFsdWVzX1tqXSk7CisJICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRPS0VOX1NVQ0NFU1NfTUFTS187CisgICAgICAgICAgICAgICAgICAgICB9CisJICAgICAgICAgICAgfQorCSAgICAgICAgfQorCSAgICAgICAgdGhyb3dQYXJzZUV4Y2VwdGlvbihtX3J1bGVzXywgb3B0aW9uYXJnKTsKKwkgICAgfSAKKyAgICAgICAgZWxzZSBpZiAoaSA9PSA3KSB7IC8vIHZhcmlhYmxlIHRvcAorCSAgICAgICAgcmV0dXJuIFRPS0VOX1NVQ0NFU1NfTUFTS18gfCBUT0tFTl9WQVJJQUJMRV9UT1BfTUFTS187CisJICAgIH0gCisgICAgICAgIGVsc2UgaWYgKGkgPT0gOCkgeyAvLyByZWFyYW5nZQorCSAgICAgICAgcmV0dXJuIFRPS0VOX1NVQ0NFU1NfTUFTS187CisJICAgIH0gCisgICAgICAgIGVsc2UgaWYgKGkgPT0gOSkgeyAvLyBiZWZvcmUKKwkgICAgICAgIGlmIChvcHRpb25hcmcgIT0gMCkgeworCSAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgUlVMRVNfT1BUSU9OU19baV0ubV9zdWJPcHRpb25zXy5sZW5ndGg7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaiArKykgeworICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHN1Ym5hbWUgPSBSVUxFU19PUFRJT05TX1tpXS5tX3N1Yk9wdGlvbnNfW2pdOworICAgICAgICAgICAgICAgICAgICAgaW50IHNpemUgPSBvcHRpb25hcmcgKyBzdWJuYW1lLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICAgaWYgKG1fcnVsZXNfLmxlbmd0aCgpID4gc2l6ZSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAmJiBzdWJuYW1lLmVxdWFsc0lnbm9yZUNhc2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcnVsZXNfLnN1YnN0cmluZyhvcHRpb25hcmcsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFyZyArIHN1Ym5hbWUubGVuZ3RoKCkpKSkgeworCSAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoYnl0ZSkoVE9LRU5fU1VDQ0VTU19NQVNLXyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFJVTEVTX09QVElPTlNfW2ldLm1fc3ViT3B0aW9uQXR0cmlidXRlVmFsdWVzX1tqXSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIDEpOworICAgICAgICAgICAgICAgICAgICAgfQorCSAgICAgICAgICAgIH0KKwkgICAgICAgIH0KKwkgICAgICAgIHRocm93UGFyc2VFeGNlcHRpb24obV9ydWxlc18sIG9wdGlvbmFyZyk7CisJICAgIH0gCisgICAgICAgIGVsc2UgaWYgKGkgPT0gMTApIHsgIC8vIHRvcCwgd2UgYXJlIGdvaW5nIHRvIGhhdmUgYW4gYXJyYXkgd2l0aCAKKyAgICAgICAgICAgIC8vIHN0cnVjdHVyZXMgb2YgbGltaXQgQ0VzIGluZGV4IHRvIHRoaXMgYXJyYXkgd2lsbCBiZSAKKyAgICAgICAgICAgIC8vIHNyYy0+cGFyc2VkVG9rZW4uaW5kaXJlY3RJbmRleAorCSAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9pbmRpcmVjdEluZGV4XyA9IDA7CisJICAgICAgICByZXR1cm4gVE9LRU5fU1VDQ0VTU19NQVNLXyB8IFRPS0VOX1RPUF9NQVNLXzsKKwkgICAgfSAKKyAgICAgICAgZWxzZSBpZiAoaSA8IDEzKSB7IC8vIGZpcnN0LCBsYXN0IAorCSAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBSVUxFU19PUFRJT05TX1tpXS5tX3N1Yk9wdGlvbnNfLmxlbmd0aDsgaiArKykgeyAgICAgCisJICAgICAgICAgICAgU3RyaW5nIHN1Ym5hbWUgPSBSVUxFU19PUFRJT05TX1tpXS5tX3N1Yk9wdGlvbnNfW2pdOworICAgICAgICAgICAgICAgIGludCBzaXplID0gb3B0aW9uYXJnICsgc3VibmFtZS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICBpZiAobV9ydWxlc18ubGVuZ3RoKCkgPiBzaXplIAorICAgICAgICAgICAgICAgICAgICAmJiBzdWJuYW1lLmVxdWFsc0lnbm9yZUNhc2UobV9ydWxlc18uc3Vic3RyaW5nKG9wdGlvbmFyZywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSkpKSB7CisJICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1faW5kaXJlY3RJbmRleF8gPSAoY2hhcikoaSAtIDEwICsgKGogPDwgMSkpOyAgICAgICAgIAorCSAgICAgICAgICAgICAgICByZXR1cm4gVE9LRU5fU1VDQ0VTU19NQVNLXyB8IFRPS0VOX1RPUF9NQVNLXzsKKwkgICAgICAgICAgICB9CisJICAgICAgICB9CSAgICAgICAgCisgICAgICAgICAgICB0aHJvd1BhcnNlRXhjZXB0aW9uKG1fcnVsZXNfLCBvcHRpb25hcmcpOworCSAgICB9IAorICAgICAgICBlbHNlIHsKKwkgICAgICAgIHRocm93UGFyc2VFeGNlcHRpb24obV9ydWxlc18sIG9wdGlvbmFyZyk7CisJICAgIH0KKyAgICAgICAgcmV0dXJuIFRPS0VOX1NVQ0NFU1NfTUFTS187IC8vIHdlIHdpbGwgbmV2ZXIgcmVhY2ggaGVyZS4KKwl9CisKKyAgICAvKioKKyAgICAgKiBTZXQgY29sbGF0aW9uIG9wdGlvbgorICAgICAqIEBwYXJhbSBvcHRpb25zZXQgb3B0aW9uIHNldCB0byBzZXQKKyAgICAgKiBAcGFyYW0gYXR0cmlidXRlIHR5cGUgdG8gc2V0CisgICAgICogQHBhcmFtIHZhbHVlIGF0dHJpYnV0ZSB2YWx1ZQorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBzZXRPcHRpb25zKE9wdGlvblNldCBvcHRpb25zZXQsIGludCBhdHRyaWJ1dGUsIGludCB2YWx1ZSkgCisgICAgeworCSAgICBzd2l0Y2ggKGF0dHJpYnV0ZSkgeworCSAgICAgICAgY2FzZSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGUuSElSQUdBTkFfUVVBVEVSTkFSWV9NT0RFXyA6CisJICAgICAgICAgICAgb3B0aW9uc2V0Lm1faXNIaXJhZ2FuYTRfIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gKHZhbHVlID09IFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLk9OXyk7CisJICAgICAgICAgICAgYnJlYWs7CisJICAgICAgICBjYXNlIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5GUkVOQ0hfQ09MTEFUSU9OXyA6CisJICAgICAgICAgICAgb3B0aW9uc2V0Lm1faXNGcmVuY2hDb2xsYXRpb25fIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICh2YWx1ZSA9PSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGVWYWx1ZS5PTl8pOworCSAgICAgICAgICAgIGJyZWFrOworCSAgICAgICAgY2FzZSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGUuQUxURVJOQVRFX0hBTkRMSU5HXyA6CisJICAgICAgICAgICAgb3B0aW9uc2V0Lm1faXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWRfIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICh2YWx1ZSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlVmFsdWUuU0hJRlRFRF8pOworCSAgICAgICAgICAgIGJyZWFrOworCSAgICAgICAgY2FzZSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGUuQ0FTRV9GSVJTVF8gOgorCSAgICAgICAgICAgIG9wdGlvbnNldC5tX2Nhc2VGaXJzdF8gPSB2YWx1ZTsKKwkgICAgICAgICAgICBicmVhazsKKwkgICAgICAgIGNhc2UgUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlLkNBU0VfTEVWRUxfIDoKKwkgICAgICAgICAgICBvcHRpb25zZXQubV9pc0Nhc2VMZXZlbF8gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gKHZhbHVlID09IFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLk9OXyk7CisJICAgICAgICAgICAgYnJlYWs7CisJICAgICAgICBjYXNlIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5OT1JNQUxJWkFUSU9OX01PREVfIDoKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlVmFsdWUuT05fKSB7CisgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT047CisgICAgICAgICAgICAgICAgfQorCSAgICAgICAgICAgIG9wdGlvbnNldC5tX2RlY29tcG9zaXRpb25fID0gdmFsdWU7CisJICAgICAgICAgICAgYnJlYWs7CisJICAgICAgICBjYXNlIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5TVFJFTkdUSF8gOgorCSAgICAgICAgICAgIG9wdGlvbnNldC5tX3N0cmVuZ3RoXyA9IHZhbHVlOworCSAgICAgICAgICAgIGJyZWFrOworCSAgICAgICAgZGVmYXVsdCA6CisJICAgICAgICAgICAgYnJlYWs7CisJICAgIH0KKyAgCX0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbGxhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Db2xsYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJiYzNlNjQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Db2xsYXRvci5qYXZhCkBAIC0wLDAgKzEsNDgxIEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0b3IuamF2YSx2ICQgCisqICREYXRlOiAyMDAyLzA4LzA3IDIwOjU0OjU2ICQgCisqICRSZXZpc2lvbjogMS4xMSAkCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuQ29tcGFyYXRvcjsKKworLyoqCisqIDxwPkNvbGxhdG9yIHBlcmZvcm1zIGxvY2FsZS1zZW5zaXRpdmUgc3RyaW5nIGNvbXBhcmlzb24uIEEgY29uY3JldGUKKyogc3ViY2xhc3MsIFJ1bGVCYXNlZENvbGxhdG9yLCBhbGxvd3MgY3VzdG9taXphdGlvbiBvZiB0aGUgY29sbGF0aW9uCisqIG9yZGVyaW5nIGJ5IHRoZSB1c2Ugb2YgcnVsZSBzZXRzLjwvcD4KKyogCisqIDxwPkZvbGxvd2luZyB0aGUgPGEgaHJlZj1odHRwOi8vd3d3LnVuaWNvZGUub3JnPlVuaWNvZGUKKyogQ29uc29ydGl1bTwvYT4ncyBzcGVjaWZpY2F0aW9ucyBmb3IgdGhlIAorKiA8YSBocmVmPSJodHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjEwLyI+IFVuaWNvZGUgQ29sbGF0aW9uCisqIEFsZ29yaXRobSAoVUNBKTwvYT4sIHRoZXJlIGFyZSA1IGRpZmZlcmVudCBsZXZlbHMgb2Ygc3RyZW5ndGggdXNlZAorKiBpbiBjb21wYXJpc29uczoKKyoKKyogPHVsPgorKiA8bGk+UFJJTUFSWSBzdHJlbmd0aDogVHlwaWNhbGx5LCB0aGlzIGlzIHVzZWQgdG8gZGVub3RlIGRpZmZlcmVuY2VzIGJldHdlZW4gCisqICAgICBiYXNlIGNoYXJhY3RlcnMgKGZvciBleGFtcGxlLCAiYSIgJmx0OyAiYiIpLiAKKyogICAgIEl0IGlzIHRoZSBzdHJvbmdlc3QgZGlmZmVyZW5jZS4gRm9yIGV4YW1wbGUsIGRpY3Rpb25hcmllcyBhcmUgZGl2aWRlZCAKKyogICAgIGludG8gZGlmZmVyZW50IHNlY3Rpb25zIGJ5IGJhc2UgY2hhcmFjdGVyLiAKKyogPGxpPlNFQ09OREFSWSBzdHJlbmd0aDogQWNjZW50cyBpbiB0aGUgY2hhcmFjdGVycyBhcmUgY29uc2lkZXJlZCBzZWNvbmRhcnkgCisqICAgICBkaWZmZXJlbmNlcyAoZm9yIGV4YW1wbGUsICJhcyIgJmx0OyAiJmFncmF2ZTtzIiAmbHQ7ICJhdCIpLiBPdGhlciAKKyogICAgIGRpZmZlcmVuY2VzIAorKiAgICAgYmV0d2VlbiBsZXR0ZXJzIGNhbiBhbHNvIGJlIGNvbnNpZGVyZWQgc2Vjb25kYXJ5IGRpZmZlcmVuY2VzLCBkZXBlbmRpbmcgCisqICAgICBvbiB0aGUgbGFuZ3VhZ2UuIEEgc2Vjb25kYXJ5IGRpZmZlcmVuY2UgaXMgaWdub3JlZCB3aGVuIHRoZXJlIGlzIGEgCisqICAgICBwcmltYXJ5IGRpZmZlcmVuY2UgYW55d2hlcmUgaW4gdGhlIHN0cmluZ3MuCisqIDxsaT5URVJUSUFSWSBzdHJlbmd0aDogVXBwZXIgYW5kIGxvd2VyIGNhc2UgZGlmZmVyZW5jZXMgaW4gY2hhcmFjdGVycyBhcmUgCisqICAgICBkaXN0aW5ndWlzaGVkIGF0IHRlcnRpYXJ5IHN0cmVuZ3RoIChmb3IgZXhhbXBsZSwgImFvIiAmbHQ7ICJBbyIgJmx0OyAKKyogICAgICJhJm9ncmF2ZTsiKS4gSW4gYWRkaXRpb24sIGEgdmFyaWFudCBvZiBhIGxldHRlciBkaWZmZXJzIGZyb20gdGhlIGJhc2UgCisqICAgICBmb3JtIG9uIHRoZSB0ZXJ0aWFyeSBzdHJlbmd0aCAoc3VjaCBhcyAiQSIgYW5kICImIzkzOTg7IikuIEFub3RoZXIgCisqICAgICBleGFtcGxlIGlzIHRoZSAKKyogICAgIGRpZmZlcmVuY2UgYmV0d2VlbiBsYXJnZSBhbmQgc21hbGwgS2FuYS4gQSB0ZXJ0aWFyeSBkaWZmZXJlbmNlIGlzIGlnbm9yZWQgCisqICAgICB3aGVuIHRoZXJlIGlzIGEgcHJpbWFyeSBvciBzZWNvbmRhcnkgZGlmZmVyZW5jZSBhbnl3aGVyZSBpbiB0aGUgc3RyaW5ncy4gCisqIDxsaT5RVUFURVJOQVJZIHN0cmVuZ3RoOiBXaGVuIHB1bmN0dWF0aW9uIGlzIGlnbm9yZWQgCisqICAgICA8YSBocmVmPWh0dHA6Ly93d3ctMTI0LmlibS5jb20vaWN1L3VzZXJndWlkZS9Db2xsYXRlX0NvbmNlcHRzLmh0bWwjSWdub3JpbmdfUHVuY3R1YXRpb24+CisqICAgICAoc2VlIElnbm9yaW5nIFB1bmN0dWF0aW9ucyBpbiB0aGUgdXNlciBndWlkZSk8L2E+IGF0IFBSSU1BUlkgdG8gVEVSVElBUlkgCisqICAgICBzdHJlbmd0aCwgYW4gYWRkaXRpb25hbCBzdHJlbmd0aCBsZXZlbCBjYW4gCisqICAgICBiZSB1c2VkIHRvIGRpc3Rpbmd1aXNoIHdvcmRzIHdpdGggYW5kIHdpdGhvdXQgcHVuY3R1YXRpb24gKGZvciBleGFtcGxlLCAKKyogICAgICJhYiIgJmx0OyAiYS1iIiAmbHQ7ICJhQiIpLiAKKyogICAgIFRoaXMgZGlmZmVyZW5jZSBpcyBpZ25vcmVkIHdoZW4gdGhlcmUgaXMgYSBQUklNQVJZLCBTRUNPTkRBUlkgb3IgVEVSVElBUlkgCisqICAgICBkaWZmZXJlbmNlLiBUaGUgUVVBVEVSTkFSWSBzdHJlbmd0aCBzaG91bGQgb25seSBiZSB1c2VkIGlmIGlnbm9yaW5nIAorKiAgICAgcHVuY3R1YXRpb24gaXMgcmVxdWlyZWQuIAorKiA8bGk+SURFTlRJQ0FMIHN0cmVuZ3RoOgorKiAgICAgV2hlbiBhbGwgb3RoZXIgc3RyZW5ndGhzIGFyZSBlcXVhbCwgdGhlIElERU5USUNBTCBzdHJlbmd0aCBpcyB1c2VkIGFzIGEgCisqICAgICB0aWVicmVha2VyLiBUaGUgVW5pY29kZSBjb2RlIHBvaW50IHZhbHVlcyBvZiB0aGUgTkZEIGZvcm0gb2YgZWFjaCBzdHJpbmcgCisqICAgICBhcmUgY29tcGFyZWQsIGp1c3QgaW4gY2FzZSB0aGVyZSBpcyBubyBkaWZmZXJlbmNlLiAKKyogICAgIEZvciBleGFtcGxlLCBIZWJyZXcgY2FudGVsbGF0aW9uIG1hcmtzIGFyZSBvbmx5IGRpc3Rpbmd1aXNoZWQgYXQgdGhpcyAKKyogICAgIHN0cmVuZ3RoLiBUaGlzIHN0cmVuZ3RoIHNob3VsZCBiZSB1c2VkIHNwYXJpbmdseSwgYXMgb25seSBjb2RlIHBvaW50IAorKiAgICAgdmFsdWUgZGlmZmVyZW5jZXMgYmV0d2VlbiB0d28gc3RyaW5ncyBpcyBhbiBleHRyZW1lbHkgcmFyZSBvY2N1cnJlbmNlLiAKKyogICAgIFVzaW5nIHRoaXMgc3RyZW5ndGggc3Vic3RhbnRpYWxseSBkZWNyZWFzZXMgdGhlIHBlcmZvcm1hbmNlIGZvciBib3RoIAorKiAgICAgY29tcGFyaXNvbiBhbmQgY29sbGF0aW9uIGtleSBnZW5lcmF0aW9uIEFQSXMuIFRoaXMgc3RyZW5ndGggYWxzbyAKKyogICAgIGluY3JlYXNlcyB0aGUgc2l6ZSBvZiB0aGUgY29sbGF0aW9uIGtleS4KKyogPC91bD4KKyoKKyogVW5saWtlIHRoZSBKREssIElDVTRKJ3MgQ29sbGF0b3IgZGVhbHMgb25seSB3aXRoIDIgZGVjb21wb3NpdGlvbiBtb2RlcywgCisqIHRoZSBjYW5vbmljYWwgZGVjb21wb3NpdGlvbiBtb2RlIGFuZCBvbmUgdGhhdCBkb2VzIG5vdCB1c2UgYW55IGRlY29tcG9zaXRpb24uCisqIFRoZSBjb21wYXRpYmlsaXR5IGRlY29tcG9zaXRpb24gbW9kZSwgamF2YS50ZXh0LkNvbGxhdG9yLkZVTExfREVDT01QT1NJVElPTgorKiBpcyBub3Qgc3VwcG9ydGVkIGhlcmUuIElmIHRoZSBjYW5vbmljYWwKKyogZGVjb21wb3NpdGlvbiBtb2RlIGlzIHNldCwgdGhlIENvbGxhdG9yIGhhbmRsZXMgdW4tbm9ybWFsaXplZCB0ZXh0IHByb3Blcmx5LCAKKyogcHJvZHVjaW5nIHRoZSBzYW1lIHJlc3VsdHMgYXMgaWYgdGhlIHRleHQgd2VyZSBub3JtYWxpemVkIGluIE5GRC4gSWYgCisqIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9uIGlzIHR1cm5lZCBvZmYsIGl0IGlzIHRoZSB1c2VyJ3MgcmVzcG9uc2liaWxpdHkgdG8gCisqIGVuc3VyZSB0aGF0IGFsbCB0ZXh0IGlzIGFscmVhZHkgaW4gdGhlIGFwcHJvcHJpYXRlIGZvcm0gYmVmb3JlIHBlcmZvcm1pbmcKKyogYSBjb21wYXJpc29uIG9yIGJlZm9yZSBnZXR0aW5nIGEgQ29sbGF0aW9uS2V5LjwvcD4KKyoKKyogPHA+Rm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvbGxhdGlvbiBzZXJ2aWNlIHNlZSB0aGUgCisqIDxhIGhyZWY9Imh0dHA6Ly9vc3Muc29mdHdhcmUuaWJtLmNvbS9pY3UvdXNlcmd1aWRlL0NvbGxhdGVfSW50cm8uaHRtbCI+dXNlcnMgCisqIGd1aWRlPC9hPi48L3A+CisqCisqIDxwPkV4YW1wbGVzIG9mIHVzZQorKiA8cHJlPgorKiAvLyBHZXQgdGhlIENvbGxhdG9yIGZvciBVUyBFbmdsaXNoIGFuZCBzZXQgaXRzIHN0cmVuZ3RoIHRvIFBSSU1BUlkKKyogQ29sbGF0b3IgdXNDb2xsYXRvciA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisqIHVzQ29sbGF0b3Iuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisqIGlmICh1c0NvbGxhdG9yLmNvbXBhcmUoImFiYyIsICJBQkMiKSA9PSAwKSB7CisqICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlN0cmluZ3MgYXJlIGVxdWl2YWxlbnQiKTsKKyogfQorKiAKKyogVGhlIGZvbGxvd2luZyBleGFtcGxlIHNob3dzIGhvdyB0byBjb21wYXJlIHR3byBzdHJpbmdzIHVzaW5nIHRoZQorKiBDb2xsYXRvciBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlLgorKgorKiAvLyBDb21wYXJlIHR3byBzdHJpbmdzIGluIHRoZSBkZWZhdWx0IGxvY2FsZQorKiBDb2xsYXRvciBteUNvbGxhdG9yID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKyogbXlDb2xsYXRvci5zZXREZWNvbXBvc2l0aW9uKE5PX0RFQ09NUE9TSVRJT04pOworKiBpZiAobXlDb2xsYXRvci5jb21wYXJlKCImYWdyYXZlOyYjOTI7dTAzMjUiLCAiYSYjOTI7dTAzMjUmIzc2ODsiKSAhPSAwKSB7CisqICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiZhZ3JhdmU7JiM5Mjt1MDMyNSBpcyBub3QgZXF1YWxzIHRvIGEmIzkyO3UwMzI1JiM3Njg7IHdpdGhvdXQgZGVjb21wb3NpdGlvbiIpOworKiAgICAgbXlDb2xsYXRvci5zZXREZWNvbXBvc2l0aW9uKENBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyogICAgIGlmIChteUNvbGxhdG9yLmNvbXBhcmUoIiZhZ3JhdmU7JiM5Mjt1MDMyNSIsICJhJiM5Mjt1MDMyNSYjNzY4OyIpICE9IDApIHsKKyogICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkVycm9yOiAmYWdyYXZlOyYjOTI7dTAzMjUgc2hvdWxkIGJlIGVxdWFscyB0byBhJiM5Mjt1MDMyNSYjNzY4OyB3aXRoIGRlY29tcG9zaXRpb24iKTsKKyogICAgIH0KKyogICAgIGVsc2UgeworKiAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiJmFncmF2ZTsmIzkyO3UwMzI1IGlzIGVxdWFscyB0byBhJiM5Mjt1MDMyNSYjNzY4OyB3aXRoIGRlY29tcG9zaXRpb24iKTsKKyogICAgIH0KKyogfQorKiBlbHNlIHsKKyogICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRXJyb3I6ICZhZ3JhdmU7JiM5Mjt1MDMyNSBzaG91bGQgYmUgbm90IGVxdWFscyB0byBhJiM5Mjt1MDMyNSYjNzY4OyB3aXRob3V0IGRlY29tcG9zaXRpb24iKTsKKyogfQorKiA8L3ByZT4KKyogPC9wPgorKiBAc2VlIFJ1bGVCYXNlZENvbGxhdG9yCisqIEBzZWUgQ29sbGF0aW9uS2V5CisqIEBhdXRob3IgU3luIFdlZSBRdWVrCisqIEBzaW5jZSByZWxlYXNlIDIuMiwgQXByaWwgMTggMjAwMgorKiBAZHJhZnQgMi4yIAorKi8KK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBDb2xsYXRvciBpbXBsZW1lbnRzIENvbXBhcmF0b3IsIENsb25lYWJsZQoreyAgICAgCisgICAgLy8gcHVibGljIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU3Ryb25nZXN0IGNvbGxhdG9yIHN0cmVuZ3RoIHZhbHVlLiBUeXBpY2FsbHkgdXNlZCB0byBkZW5vdGUgZGlmZmVyZW5jZXMgCisgICAgICogYmV0d2VlbiBiYXNlIGNoYXJhY3RlcnMuIFNlZSBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGV4cGxhbmF0aW9uLgorICAgICAqIEBzZWUgI3NldFN0cmVuZ3RoCisgICAgICogQHNlZSAjZ2V0U3RyZW5ndGgKKyAgICAgKiBAZHJhZnQgMi4yCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgUFJJTUFSWSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZWNvbmQgbGV2ZWwgY29sbGF0b3Igc3RyZW5ndGggdmFsdWUuIAorICAgICAqIEFjY2VudHMgaW4gdGhlIGNoYXJhY3RlcnMgYXJlIGNvbnNpZGVyZWQgc2Vjb25kYXJ5IGRpZmZlcmVuY2VzLgorICAgICAqIE90aGVyIGRpZmZlcmVuY2VzIGJldHdlZW4gbGV0dGVycyBjYW4gYWxzbyBiZSBjb25zaWRlcmVkIHNlY29uZGFyeSAKKyAgICAgKiBkaWZmZXJlbmNlcywgZGVwZW5kaW5nIG9uIHRoZSBsYW5ndWFnZS4gCisgICAgICogU2VlIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZXhwbGFuYXRpb24uCisgICAgICogQHNlZSAjc2V0U3RyZW5ndGgKKyAgICAgKiBAc2VlICNnZXRTdHJlbmd0aAorICAgICAqIEBkcmFmdCAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBTRUNPTkRBUlkgPSAxOworCisgICAgLyoqCisgICAgICogVGhpcmQgbGV2ZWwgY29sbGF0b3Igc3RyZW5ndGggdmFsdWUuIAorICAgICAqIFVwcGVyIGFuZCBsb3dlciBjYXNlIGRpZmZlcmVuY2VzIGluIGNoYXJhY3RlcnMgYXJlIGRpc3Rpbmd1aXNoZWQgYXQgdGhpcworICAgICAqIHN0cmVuZ3RoIGxldmVsLiBJbiBhZGRpdGlvbiwgYSB2YXJpYW50IG9mIGEgbGV0dGVyIGRpZmZlcnMgZnJvbSB0aGUgYmFzZSAKKyAgICAgKiBmb3JtIG9uIHRoZSB0ZXJ0aWFyeSBsZXZlbC4KKyAgICAgKiBTZWUgY2xhc3MgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBleHBsYW5hdGlvbi4KKyAgICAgKiBAc2VlICNzZXRTdHJlbmd0aAorICAgICAqIEBzZWUgI2dldFN0cmVuZ3RoCisgICAgICogQGRyYWZ0IDIuMgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFRFUlRJQVJZID0gMjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisKKyAgICAvKioKKyAgICAgKiBGb3VydGggbGV2ZWwgY29sbGF0b3Igc3RyZW5ndGggdmFsdWUuIAorICAgICAqIFdoZW4gcHVuY3R1YXRpb24gaXMgaWdub3JlZCAKKyAgICAgKiA8YSBocmVmPSJodHRwOi8vd3d3LTEyNC5pYm0uY29tL2ljdS91c2VyZ3VpZGUvQ29sbGF0ZV9Db25jZXB0cy5odG1sI0lnbm9yaW5nX1B1bmN0dWF0aW9uIj4KKyAgICAgKiAoc2VlIElnbm9yaW5nIFB1bmN0dWF0aW9ucyBpbiB0aGUgdXNlciBndWlkZSk8L2E+IGF0IFBSSU1BUlkgdG8gVEVSVElBUlkgCisgICAgICogc3RyZW5ndGgsIGFuIGFkZGl0aW9uYWwgc3RyZW5ndGggbGV2ZWwgY2FuIAorICAgICAqIGJlIHVzZWQgdG8gZGlzdGluZ3Vpc2ggd29yZHMgd2l0aCBhbmQgd2l0aG91dCBwdW5jdHVhdGlvbi4KKyAgICAgKiBTZWUgY2xhc3MgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBleHBsYW5hdGlvbi4KKyAgICAgKiBAc2VlICNzZXRTdHJlbmd0aAorICAgICAqIEBzZWUgI2dldFN0cmVuZ3RoCisgICAgICogQGRyYWZ0IDIuMgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFFVQVRFUk5BUlkgPSAzOworCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogU21hbGxlc3QgQ29sbGF0b3Igc3RyZW5ndGggdmFsdWUuIFdoZW4gYWxsIG90aGVyIHN0cmVuZ3RocyBhcmUgZXF1YWwsIAorICAgICAqIHRoZSBJREVOVElDQUwgc3RyZW5ndGggaXMgdXNlZCBhcyBhIHRpZWJyZWFrZXIuIFRoZSBVbmljb2RlIGNvZGUgcG9pbnQgCisgICAgICogdmFsdWVzIG9mIHRoZSBORkQgZm9ybSBvZiBlYWNoIHN0cmluZyBhcmUgY29tcGFyZWQsIGp1c3QgaW4gY2FzZSB0aGVyZSAKKyAgICAgKiBpcyBubyBkaWZmZXJlbmNlLiAKKyAgICAgKiBTZWUgY2xhc3MgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBleHBsYW5hdGlvbi4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogTm90ZSB0aGlzIHZhbHVlIGlzIGRpZmZlcmVudCBmcm9tIEpESydzCisgICAgICogPC9wPgorICAgICAqIEBkcmFmdCAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBJREVOVElDQUwgPSAxNTsKKworICAgIC8qKgorICAgICAqIDxwPkRlY29tcG9zaXRpb24gbW9kZSB2YWx1ZS4gV2l0aCBOT19ERUNPTVBPU0lUSU9OIHNldCwgU3RyaW5ncworICAgICAqIHdpbGwgbm90IGJlIGRlY29tcG9zZWQgZm9yIGNvbGxhdGlvbi4gVGhpcyBpcyB0aGUgZGVmYXVsdAorICAgICAqIGRlY29tcG9zaXRpb24gc2V0dGluZyB1bmxlc3Mgb3RoZXJ3aXNlIHNwZWNpZmllZCBieSB0aGUgbG9jYWxlCisgICAgICogdXNlZCB0byBjcmVhdGUgdGhlIENvbGxhdG9yLjwvcD4KKyAgICAgKgorICAgICAqIDxwPjxzdHJvbmc+Tm90ZTwvc3Ryb25nPiB0aGlzIHZhbHVlIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBKREsncy48L3A+CisgICAgICogQHNlZSAjQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04KKyAgICAgKiBAc2VlICNnZXREZWNvbXBvc2l0aW9uCisgICAgICogQHNlZSAjc2V0RGVjb21wb3NpdGlvbgorICAgICAqIEBkcmFmdCAyLjIgCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTk9fREVDT01QT1NJVElPTiA9IDE2OworCisgICAgLyoqCisgICAgICogPHA+RGVjb21wb3NpdGlvbiBtb2RlIHZhbHVlLiBXaXRoIENBTk9OSUNBTF9ERUNPTVBPU0lUSU9OIHNldCwKKyAgICAgKiBjaGFyYWN0ZXJzIHRoYXQgYXJlIGNhbm9uaWNhbCB2YXJpYW50cyBhY2NvcmRpbmcgdG8gdGhlIFVuaWNvZGUgc3RhbmRhcmQKKyAgICAgKiB3aWxsIGJlIGRlY29tcG9zZWQgZm9yIGNvbGxhdGlvbi48L3A+CisgICAgICoKKyAgICAgKiA8cD5DQU5PTklDQUxfREVDT01QT1NJVElPTiBjb3JyZXNwb25kcyB0byBOb3JtYWxpemF0aW9uIEZvcm0gRCBhcworICAgICAqIGRlc2NyaWJlZCBpbiA8YSBocmVmPSJodHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjE1LyI+CisgICAgICogVW5pY29kZSBUZWNobmljYWwgUmVwb3J0ICMxNTwvYT4uCisgICAgICogPC9wPgorICAgICAqIEBzZWUgI05PX0RFQ09NUE9TSVRJT04KKyAgICAgKiBAc2VlICNnZXREZWNvbXBvc2l0aW9uCisgICAgICogQHNlZSAjc2V0RGVjb21wb3NpdGlvbgorICAgICAqIEBkcmFmdCAyLjIgCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04gPSAxNzsKKyAgICAKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8vIHB1YmxpYyBzZXR0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogPHA+U2V0cyB0aGlzIENvbGxhdG9yJ3Mgc3RyZW5ndGggcHJvcGVydHkuIFRoZSBzdHJlbmd0aCBwcm9wZXJ0eSAKKyAgICAgKiBkZXRlcm1pbmVzIHRoZSBtaW5pbXVtIGxldmVsIG9mIGRpZmZlcmVuY2UgY29uc2lkZXJlZCBzaWduaWZpY2FudCAKKyAgICAgKiBkdXJpbmcgY29tcGFyaXNvbi48L3A+CisgICAgICogCisgICAgICogPHA+VGhlIGRlZmF1bHQgc3RyZW5ndGggZm9yIHRoZSBDb2xsYXRvciBpcyBURVJUSUFSWSwgdW5sZXNzIHNwZWNpZmllZCAKKyAgICAgKiBvdGhlcndpc2UgYnkgdGhlIGxvY2FsZSB1c2VkIHRvIGNyZWF0ZSB0aGUgQ29sbGF0b3IuPC9wPgorICAgICAqCisgICAgICogPHA+U2VlIHRoZSBDb2xsYXRvciBjbGFzcyBkZXNjcmlwdGlvbiBmb3IgYW4gZXhhbXBsZSBvZiB1c2UuPC9wPgorICAgICAqIEBwYXJhbSBuZXcgU3RyZW5ndGggdGhlIG5ldyBzdHJlbmd0aCB2YWx1ZS4KKyAgICAgKiBAc2VlICNnZXRTdHJlbmd0aAorICAgICAqIEBzZWUgI1BSSU1BUlkKKyAgICAgKiBAc2VlICNTRUNPTkRBUlkKKyAgICAgKiBAc2VlICNURVJUSUFSWQorICAgICAqIEBzZWUgI1FVQVRFUk5BUlkKKyAgICAgKiBAc2VlICNJREVOVElDQUwKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgbmV3IHN0cmVuZ3RoIHZhbHVlIGlzIG5vdCBvbmUgCisgICAgICogICAgICAgICAgICAgICAgb2YgUFJJTUFSWSwgU0VDT05EQVJZLCBURVJUSUFSWSwgUVVBVEVSTkFSWSBvciBJREVOVElDQUwuCisgICAgICogQGRyYWZ0IDIuMgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFN0cmVuZ3RoKGludCBuZXdTdHJlbmd0aCkgCisgICAgeworICAgICAgICBpZiAoKG5ld1N0cmVuZ3RoICE9IFBSSU1BUlkpICYmCisgICAgICAgICAgICAobmV3U3RyZW5ndGggIT0gU0VDT05EQVJZKSAmJgorICAgICAgICAgICAgKG5ld1N0cmVuZ3RoICE9IFRFUlRJQVJZKSAmJgorICAgICAgICAgICAgKG5ld1N0cmVuZ3RoICE9IFFVQVRFUk5BUlkpICYmCisgICAgICAgICAgICAobmV3U3RyZW5ndGggIT0gSURFTlRJQ0FMKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW5jb3JyZWN0IGNvbXBhcmlzb24gbGV2ZWwuIik7CisgICAgICAgIH0KKyAgICAgICAgbV9zdHJlbmd0aF8gPSBuZXdTdHJlbmd0aDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHA+U2V0IHRoZSBkZWNvbXBvc2l0aW9uIG1vZGUgb2YgdGhpcyBDb2xsYXRvci4gIFNldHRpbmcgdGhpcworICAgICAqIGRlY29tcG9zaXRpb24gcHJvcGVydHkgd2l0aCBDQU5PTklDQUxfREVDT01QT1NJVElPTiBhbGxvd3MgdGhlCisgICAgICogQ29sbGF0b3IgdG8gaGFuZGxlIHVuLW5vcm1hbGl6ZWQgdGV4dCBwcm9wZXJseSwgcHJvZHVjaW5nIHRoZQorICAgICAqIHNhbWUgcmVzdWx0cyBhcyBpZiB0aGUgdGV4dCB3ZXJlIG5vcm1hbGl6ZWQuIElmCisgICAgICogTk9fREVDT01QT1NJVElPTiBpcyBzZXQsIGl0IGlzIHRoZSB1c2VyJ3MgcmVzcG9uc2liaWxpdHkgdG8KKyAgICAgKiBpbnN1cmUgdGhhdCBhbGwgdGV4dCBpcyBhbHJlYWR5IGluIHRoZSBhcHByb3ByaWF0ZSBmb3JtIGJlZm9yZQorICAgICAqIGEgY29tcGFyaXNvbiBvciBiZWZvcmUgZ2V0dGluZyBhIENvbGxhdGlvbktleS4gQWRqdXN0aW5nCisgICAgICogZGVjb21wb3NpdGlvbiBtb2RlIGFsbG93cyB0aGUgdXNlciB0byBzZWxlY3QgYmV0d2VlbiBmYXN0ZXIgYW5kCisgICAgICogbW9yZSBjb21wbGV0ZSBjb2xsYXRpb24gYmVoYXZpb3IuPC9wPgorICAgICAqIAorICAgICAqIDxwPlNpbmNlIGEgZ3JlYXQgbWFueSBvZiB0aGUgd29ybGQncyBsYW5ndWFnZXMgZG8gbm90IHJlcXVpcmUKKyAgICAgKiB0ZXh0IG5vcm1hbGl6YXRpb24sIG1vc3QgbG9jYWxlcyBzZXQgTk9fREVDT01QT1NJVElPTiBhcyB0aGUKKyAgICAgKiBkZWZhdWx0IGRlY29tcG9zaXRpb24gbW9kZS48L3A+CisgICAgICogCisgICAgICogVGhlIGRlZmF1bHQgZGVjb21wb3NpdG9uIG1vZGUgZm9yIHRoZSBDb2xsYXRvciBpcworICAgICAqIE5PX0RFQ09NUE9TSVRPTiwgdW5sZXNzIHNwZWNpZmllZCBvdGhlcndpc2UgYnkgdGhlIGxvY2FsZSB1c2VkCisgICAgICogdG8gY3JlYXRlIHRoZSBDb2xsYXRvci48L3A+CisgICAgICogCisgICAgICogPHA+U2VlIGdldERlY29tcG9zaXRpb24gZm9yIGEgZGVzY3JpcHRpb24gb2YgZGVjb21wb3NpdGlvbgorICAgICAqIG1vZGUuPC9wPgorICAgICAqIAorICAgICAqIEBwYXJhbSBkZWNvbXBvc2l0aW9uIHRoZSBuZXcgZGVjb21wb3NpdGlvbiBtb2RlCisgICAgICogQHNlZSAjZ2V0RGVjb21wb3NpdGlvbgorICAgICAqIEBzZWUgI05PX0RFQ09NUE9TSVRJT04KKyAgICAgKiBAc2VlICNDQU5PTklDQUxfREVDT01QT1NJVElPTgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIElmIHRoZSBnaXZlbiB2YWx1ZSBpcyBub3QgYSB2YWxpZCAKKyAgICAgKiAgICAgICAgICAgIGRlY29tcG9zaXRpb24gbW9kZS4KKyAgICAgKiBAZHJhZnQgMi4yIAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldERlY29tcG9zaXRpb24oaW50IGRlY29tcG9zaXRpb24pIAorICAgIHsKKyAgICAgICAgaWYgKChkZWNvbXBvc2l0aW9uICE9IE5PX0RFQ09NUE9TSVRJT04pICYmCisgICAgICAgICAgICAoZGVjb21wb3NpdGlvbiAhPSBDQU5PTklDQUxfREVDT01QT1NJVElPTikpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIldyb25nIGRlY29tcG9zaXRpb24gbW9kZS4iKTsKKyAgICAgICAgfQorICAgICAgICBtX2RlY29tcG9zaXRpb25fID0gZGVjb21wb3NpdGlvbjsKKyAgICB9CisgICAgCisgICAgLy8gcHVibGljIGdldHRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBDb2xsYXRvciBmb3IgdGhlIGN1cnJlbnQgZGVmYXVsdCBsb2NhbGUuCisgICAgICogVGhlIGRlZmF1bHQgbG9jYWxlIGlzIGRldGVybWluZWQgYnkgamF2YS51dGlsLkxvY2FsZS5nZXREZWZhdWx0KCkuCisgICAgICogQHJldHVybiB0aGUgQ29sbGF0b3IgZm9yIHRoZSBkZWZhdWx0IGxvY2FsZSAoZm9yIGV4YW1wbGUsIGVuX1VTKSBpZiBpdAorICAgICAqICAgICAgICAgaXMgY3JlYXRlZCBzdWNjZXNzZnVsbHkuIE90aGVyd2lzZSBpZiB0aGVyZSBpcyBubyBDb2xsYXRvcgorICAgICAqICAgICAgICAgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50IGxvY2FsZSwgdGhlIGRlZmF1bHQgVUNBIGNvbGxhdG9yIAorICAgICAqICAgICAgICAgd2lsbCBiZSByZXR1cm5lZC4KKyAgICAgKiBAc2VlIGphdmEudXRpbC5Mb2NhbGUjZ2V0RGVmYXVsdAorICAgICAqIEBzZWUgI2dldEluc3RhbmNlKExvY2FsZSkKKyAgICAgKiBAZHJhZnQgMi4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBDb2xsYXRvciBnZXRJbnN0YW5jZSgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBDb2xsYXRvciBmb3IgdGhlIGRlc2lyZWQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGRlc2lyZWQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gQ29sbGF0b3IgZm9yIHRoZSBkZXNpcmVkIGxvY2FsZSBpZiBpdCBpcyBjcmVhdGVkIHN1Y2Nlc3NmdWxseS4KKyAgICAgKiAgICAgICAgIE90aGVyd2lzZSBpZiB0aGVyZSBpcyBubyBDb2xsYXRvcgorICAgICAqICAgICAgICAgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50IGxvY2FsZSwgYSBkZWZhdWx0IFVDQSBjb2xsYXRvciB3aWxsIAorICAgICAqICAgICAgICAgYmUgcmV0dXJuZWQuCisgICAgICogQHNlZSBqYXZhLnV0aWwuTG9jYWxlCisgICAgICogQHNlZSBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGUKKyAgICAgKiBAc2VlICNnZXRJbnN0YW5jZSgpCisgICAgICogQGRyYWZ0IDIuMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgQ29sbGF0b3IgZ2V0SW5zdGFuY2UoTG9jYWxlIGxvY2FsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUnVsZUJhc2VkQ29sbGF0b3IobG9jYWxlKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHA+UmV0dXJucyB0aGlzIENvbGxhdG9yJ3Mgc3RyZW5ndGggcHJvcGVydHkuIFRoZSBzdHJlbmd0aCBwcm9wZXJ0eSAKKyAgICAgKiBkZXRlcm1pbmVzIHRoZSBtaW5pbXVtIGxldmVsIG9mIGRpZmZlcmVuY2UgY29uc2lkZXJlZCBzaWduaWZpY2FudC4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogU2VlIHRoZSBDb2xsYXRvciBjbGFzcyBkZXNjcmlwdGlvbiBmb3IgbW9yZSBkZXRhaWxzLgorICAgICAqIDwvcD4KKyAgICAgKiBAcmV0dXJuIHRoaXMgQ29sbGF0b3IncyBjdXJyZW50IHN0cmVuZ3RoIHByb3BlcnR5LgorICAgICAqIEBzZWUgI3NldFN0cmVuZ3RoCisgICAgICogQHNlZSAjUFJJTUFSWQorICAgICAqIEBzZWUgI1NFQ09OREFSWQorICAgICAqIEBzZWUgI1RFUlRJQVJZCisgICAgICogQHNlZSAjUVVBVEVSTkFSWQorICAgICAqIEBzZWUgI0lERU5USUNBTAorICAgICAqIEBkcmFmdCAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFN0cmVuZ3RoKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX3N0cmVuZ3RoXzsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogR2V0IHRoZSBkZWNvbXBvc2l0aW9uIG1vZGUgb2YgdGhpcyBDb2xsYXRvci4gRGVjb21wb3NpdGlvbiBtb2RlCisgICAgICogZGV0ZXJtaW5lcyBob3cgVW5pY29kZSBjb21wb3NlZCBjaGFyYWN0ZXJzIGFyZSBoYW5kbGVkLiAKKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogU2VlIHRoZSBDb2xsYXRvciBjbGFzcyBkZXNjcmlwdGlvbiBmb3IgbW9yZSBkZXRhaWxzLgorICAgICAqIDwvcD4KKyAgICAgKiBAcmV0dXJuIHRoZSBkZWNvbXBvc2l0aW9uIG1vZGUKKyAgICAgKiBAc2VlICNzZXREZWNvbXBvc2l0aW9uCisgICAgICogQHNlZSAjTk9fREVDT01QT1NJVElPTgorICAgICAqIEBzZWUgI0NBTk9OSUNBTF9ERUNPTVBPU0lUSU9OCisgICAgICogQGRyYWZ0IDIuMgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0RGVjb21wb3NpdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gbV9kZWNvbXBvc2l0aW9uXzsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogQ29tcGFyZXMgdGhlIHNvdXJjZSB0ZXh0IFN0cmluZyB0byB0aGUgdGFyZ2V0IHRleHQgU3RyaW5nIGFjY29yZGluZyB0byAKKyAgICAgKiB0aGlzIENvbGxhdG9yJ3MgcnVsZXMsIHN0cmVuZ3RoIGFuZCBkZWNvbXBvc2l0aW9uIG1vZGUuCisgICAgICogUmV0dXJucyBhbiBpbnRlZ2VyIGxlc3MgdGhhbiwgCisgICAgICogZXF1YWwgdG8gb3IgZ3JlYXRlciB0aGFuIHplcm8gZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIHNvdXJjZSBTdHJpbmcgaXMgCisgICAgICogbGVzcyB0aGFuLCBlcXVhbCB0byBvciBncmVhdGVyIHRoYW4gdGhlIHRhcmdldCBTdHJpbmcuIFNlZSB0aGUgQ29sbGF0b3IKKyAgICAgKiBjbGFzcyBkZXNjcmlwdGlvbiBmb3IgYW4gZXhhbXBsZSBvZiB1c2UuCisgICAgICogPC9wPgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIHNvdXJjZSBTdHJpbmcuCisgICAgICogQHBhcmFtIHRhcmdldCB0aGUgdGFyZ2V0IFN0cmluZy4KKyAgICAgKiBAcmV0dXJuIFJldHVybnMgYW4gaW50ZWdlciB2YWx1ZS4gVmFsdWUgaXMgbGVzcyB0aGFuIHplcm8gaWYgc291cmNlIGlzIAorICAgICAqICAgICAgICAgbGVzcyB0aGFuIHRhcmdldCwgdmFsdWUgaXMgemVybyBpZiBzb3VyY2UgYW5kIHRhcmdldCBhcmUgZXF1YWwsIAorICAgICAqICAgICAgICAgdmFsdWUgaXMgZ3JlYXRlciB0aGFuIHplcm8gaWYgc291cmNlIGlzIGdyZWF0ZXIgdGhhbiB0YXJnZXQuCisgICAgICogQHNlZSBDb2xsYXRpb25LZXkKKyAgICAgKiBAc2VlICNnZXRDb2xsYXRpb25LZXkKKyAgICAgKiBAZXhjZXB0aW9uIE51bGxQb2ludGVyRXhjZXB0aW9uIHRocm93biBpZiBlaXRoZXIgYXJndW1lbnRzIGlzIG51bGwuCisgICAgICogICAgICAgICAgICBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIGlmIGVpdGhlciBzb3VyY2Ugb3IgdGFyZ2V0IGlzCisgICAgICogICAgICAgICAgICBub3Qgb2YgdGhlIGNsYXNzIFN0cmluZy4KKyAgICAgKiBAZHJhZnQgMi4yCisgICAgICovCisgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBzb3VyY2UsIE9iamVjdCB0YXJnZXQpCisgICAgeworICAgICAgICBpZiAoIShzb3VyY2UgaW5zdGFuY2VvZiBTdHJpbmcpIHx8ICEodGFyZ2V0IGluc3RhbmNlb2YgU3RyaW5nKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQXJndW1lbnRzIGhhdmUgdG8gYmUgb2YgdHlwZSBTdHJpbmciKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY29tcGFyZSgoU3RyaW5nKXNvdXJjZSwgKFN0cmluZyl0YXJnZXQpOworICAgIH0KKyAgICAKKyAgICAvLyBwdWJsaWMgb3RoZXIgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgZm9yIGNvbXBhcmluZyB0aGUgZXF1YWxpdHkgb2YgdHdvIHRleHQgU3RyaW5ncyB1c2luZworICAgICAqIHRoaXMgQ29sbGF0b3IncyBydWxlcywgc3RyZW5ndGggYW5kIGRlY29tcG9zaXRpb24gbW9kZS4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSBzb3VyY2Ugc3RyaW5nIHRvIGJlIGNvbXBhcmVkLgorICAgICAqIEBwYXJhbSB0YXJnZXQgdGhlIHRhcmdldCBzdHJpbmcgdG8gYmUgY29tcGFyZWQuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBzdHJpbmdzIGFyZSBlcXVhbCBhY2NvcmRpbmcgdG8gdGhlIGNvbGxhdGlvbgorICAgICAqICAgICAgICAgcnVsZXMsIG90aGVyd2lzZSBmYWxzZS4KKyAgICAgKiBAc2VlICNjb21wYXJlCisgICAgICogQGV4Y2VwdGlvbiBOdWxsUG9pbnRlckV4Y2VwdGlvbiB0aHJvd24gaWYgZWl0aGVyIGFyZ3VtZW50cyBpcyBudWxsLgorICAgICAqIEBkcmFmdCAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCkgCisgICAgeworICAgICAgICByZXR1cm4gKGNvbXBhcmUoc291cmNlLCB0YXJnZXQpID09IDApOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhcmVzIHRoZSBlcXVhbGl0eSBvZiB0d28gQ29sbGF0b3JzLgorICAgICAqIEBwYXJhbSB0aGF0IHRoZSBDb2xsYXRvciB0byBiZSBjb21wYXJlZCB3aXRoIHRoaXMuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgQ29sbGF0b3IgaXMgdGhlIHNhbWUgYXMgdGhhdCBDb2xsYXRvcjsKKyAgICAgKiAgICAgICAgIGZhbHNlIG90aGVyd2lzZS4KKyAgICAgKiBAZHJhZnQgMi4yCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGJvb2xlYW4gZXF1YWxzKE9iamVjdCB0aGF0KTsKKyAgICAKKyAgICAvLyBwdWJsaWMgYWJzdHJhY3QgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogR2VuZXJhdGVzIGEgdW5pcXVlIGhhc2ggY29kZSBmb3IgdGhpcyBDb2xsYXRvci4KKyAgICAgKiBAZHJhZnQgMi4yCisgICAgICogQHJldHVybiAzMiBiaXQgdW5pcXVlIGhhc2ggY29kZQorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgaGFzaENvZGUoKTsKKworICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIENvbXBhcmVzIHRoZSBzb3VyY2UgdGV4dCBTdHJpbmcgdG8gdGhlIHRhcmdldCB0ZXh0IFN0cmluZyBhY2NvcmRpbmcgdG8gCisgICAgICogdGhpcyBDb2xsYXRvcidzIHJ1bGVzLCBzdHJlbmd0aCBhbmQgZGVjb21wb3NpdGlvbiBtb2RlLgorICAgICAqIFJldHVybnMgYW4gaW50ZWdlciBsZXNzIHRoYW4sIAorICAgICAqIGVxdWFsIHRvIG9yIGdyZWF0ZXIgdGhhbiB6ZXJvIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBzb3VyY2UgU3RyaW5nIGlzIAorICAgICAqIGxlc3MgdGhhbiwgZXF1YWwgdG8gb3IgZ3JlYXRlciB0aGFuIHRoZSB0YXJnZXQgU3RyaW5nLiBTZWUgdGhlIENvbGxhdG9yCisgICAgICogY2xhc3MgZGVzY3JpcHRpb24gZm9yIGFuIGV4YW1wbGUgb2YgdXNlLgorICAgICAqIDwvcD4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSBzb3VyY2UgU3RyaW5nLgorICAgICAqIEBwYXJhbSB0YXJnZXQgdGhlIHRhcmdldCBTdHJpbmcuCisgICAgICogQHJldHVybiBSZXR1cm5zIGFuIGludGVnZXIgdmFsdWUuIFZhbHVlIGlzIGxlc3MgdGhhbiB6ZXJvIGlmIHNvdXJjZSBpcyAKKyAgICAgKiAgICAgICAgIGxlc3MgdGhhbiB0YXJnZXQsIHZhbHVlIGlzIHplcm8gaWYgc291cmNlIGFuZCB0YXJnZXQgYXJlIGVxdWFsLCAKKyAgICAgKiAgICAgICAgIHZhbHVlIGlzIGdyZWF0ZXIgdGhhbiB6ZXJvIGlmIHNvdXJjZSBpcyBncmVhdGVyIHRoYW4gdGFyZ2V0LgorICAgICAqIEBzZWUgQ29sbGF0aW9uS2V5CisgICAgICogQHNlZSAjZ2V0Q29sbGF0aW9uS2V5CisgICAgICogQGV4Y2VwdGlvbiBOdWxsUG9pbnRlckV4Y2VwdGlvbiB0aHJvd24gaWYgZWl0aGVyIGFyZ3VtZW50cyBpcyBudWxsLgorICAgICAqIEBkcmFmdCAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGNvbXBhcmUoU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCk7CisKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBUcmFuc2Zvcm1zIHRoZSBTdHJpbmcgaW50byBhIENvbGxhdGlvbktleSBzdWl0YWJsZSBmb3IgZWZmaWNpZW50CisgICAgICogcmVwZWF0ZWQgY29tcGFyaXNvbi4gIFRoZSByZXN1bHRpbmcga2V5IGRlcGVuZHMgb24gdGhlIGNvbGxhdG9yJ3MKKyAgICAgKiBydWxlcywgc3RyZW5ndGggYW5kIGRlY29tcG9zaXRpb24gbW9kZS4KKyAgICAgKiA8L3A+IAorICAgICAqIDxwPlNlZSB0aGUgQ29sbGF0aW9uS2V5IGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24uPC9wPgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIHN0cmluZyB0byBiZSB0cmFuc2Zvcm1lZCBpbnRvIGEgQ29sbGF0aW9uS2V5LgorICAgICAqIEByZXR1cm4gdGhlIENvbGxhdGlvbktleSBmb3IgdGhlIGdpdmVuIFN0cmluZyBiYXNlZCBvbiB0aGlzIENvbGxhdG9yJ3MgCisgICAgICogICAgICAgICBjb2xsYXRpb24gcnVsZXMuIElmIHRoZSBzb3VyY2UgU3RyaW5nIGlzIG51bGwsIGEgbnVsbCAKKyAgICAgKiAgICAgICAgIENvbGxhdGlvbktleSBpcyByZXR1cm5lZC4KKyAgICAgKiBAc2VlIENvbGxhdGlvbktleQorICAgICAqIEBzZWUgI2NvbXBhcmUoU3RyaW5nLCBTdHJpbmcpCisgICAgICogQGRyYWZ0IDIuMgorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBDb2xsYXRpb25LZXkgZ2V0Q29sbGF0aW9uS2V5KFN0cmluZyBzb3VyY2UpOworICAgIAorICAgIC8vIHByb3RlY3RlZCBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIAorICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogQ29sbGF0aW9uIHN0cmVuZ3RoCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9zdHJlbmd0aF8gPSBURVJUSUFSWTsKKworICAgIC8qKgorICAgICAqIERlY29tcG9zaXRpb24gbW9kZQorICAgICAqLyAKKyAgICBwcml2YXRlIGludCBtX2RlY29tcG9zaXRpb25fID0gQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT047Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbGxhdG9yUmVhZGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Db2xsYXRvclJlYWRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiY2RhNDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Db2xsYXRvclJlYWRlci5qYXZhCkBAIC0wLDAgKzEsNDQ3IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0b3JSZWFkZXIuamF2YSx2ICQgCisqICREYXRlOiAyMDAyLzA4LzAxIDE5OjUwOjM0ICQgCisqICRSZXZpc2lvbjogMS42ICQKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uRGF0YUlucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VCaW5hcnk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JbnRUcmllOworCisvKioKKyogPHA+SW50ZXJuYWwgcmVhZGVyIGNsYXNzIGZvciBJQ1UgZGF0YSBmaWxlIHVjYS5pY3UgY29udGFpbmluZyAKKyogVW5pY29kZSBDb2xsYXRpb24gQWxnb3JpdGhtIGRhdGEuPC9wPiAKKyogPHA+VGhpcyBjbGFzcyBzaW1wbHkgcmVhZHMgdWNhLmljdSwgYXV0aGVudGljYXRlcyB0aGF0IGl0IGlzIGEgdmFsaWQKKyogSUNVIGRhdGEgZmlsZSBhbmQgc3BsaXQgaXRzIGNvbnRlbnRzIHVwIGludG8gYmxvY2tzIG9mIGRhdGEgZm9yIHVzZSBpbgorKiA8YSBocmVmPUNvbGxhdG9yLmh0bWw+Y29tLmlibS5pY3UudGV4dC5Db2xsYXRvcjwvYT4uCisqIDwvcD4gCisqIDxwPnVjYS5pY3Ugd2hpY2ggaXMgaW4gYmlnLWVuZGlhbiBmb3JtYXQgaXMgamFyZWQgdG9nZXRoZXIgd2l0aCB0aGlzIAorKiBwYWNrYWdlLjwvcD4KKyogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyogQHNpbmNlIHJlbGVhc2UgMi4yLCBBcHJpbCAxOCAyMDAyCisqIEBkcmFmdCAyLjIKKyovCisKK2ZpbmFsIGNsYXNzIENvbGxhdG9yUmVhZGVyCit7ICAgICAgCisgICAgLy8gcHJvdGVjdGVkIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICogPHA+UHJvdGVjdGVkIGNvbnN0cnVjdG9yLjwvcD4KKyAgICAqIEBwYXJhbSBpbnB1dFN0cmVhbSBJQ1UgY2FsbGF0b3IgZmlsZSBpbnB1dCBzdHJlYW0KKyAgICAqIEBleGNlcHRpb24gSU9FeGNlcHRpb24gdGhyb3cgaWYgZGF0YSBmaWxlIGZhaWxzIGF1dGhlbnRpY2F0aW9uIAorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIENvbGxhdG9yUmVhZGVyKElucHV0U3RyZWFtIGlucHV0U3RyZWFtKSB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICB7CisgICAgICAgIElDVUJpbmFyeS5yZWFkSGVhZGVyKGlucHV0U3RyZWFtLCBEQVRBX0ZPUk1BVF9JRF8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEQVRBX0ZPUk1BVF9WRVJTSU9OXyk7CisgICAgICAgIG1fZGF0YUlucHV0U3RyZWFtXyA9IG5ldyBEYXRhSW5wdXRTdHJlYW0oaW5wdXRTdHJlYW0pOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIDxwPlByb3RlY3RlZCBjb25zdHJ1Y3Rvci48L3A+CisgICAgKiBAcGFyYW0gaW5wdXRTdHJlYW0gSUNVIHVwcm9wcy5pY3UgZmlsZSBpbnB1dCBzdHJlYW0KKyAgICAqIEBwYXJhbSByZWFkSUNVSGVhZGVyIGZsYWcgdG8gaW5kaWNhdGUgaWYgdGhlIElDVSBoZWFkZXIgaGFzIHRvIGJlIHJlYWQKKyAgICAqIEBleGNlcHRpb24gSU9FeGNlcHRpb24gdGhyb3cgaWYgZGF0YSBmaWxlIGZhaWxzIGF1dGhlbnRpY2F0aW9uIAorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIENvbGxhdG9yUmVhZGVyKElucHV0U3RyZWFtIGlucHV0U3RyZWFtLCBib29sZWFuIHJlYWRJQ1VIZWFkZXIpIAorICAgIAkJCQkJCQkJCQkJCQkJdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgIAlpZiAocmVhZElDVUhlYWRlcikgeworICAgICAgICAJSUNVQmluYXJ5LnJlYWRIZWFkZXIoaW5wdXRTdHJlYW0sIERBVEFfRk9STUFUX0lEXywgCisgICAgICAgICAgICAJCSAgICAgICAgICAgICAgICAgREFUQV9GT1JNQVRfVkVSU0lPTl8pOworICAgIAl9CisgICAgICAgIG1fZGF0YUlucHV0U3RyZWFtXyA9IG5ldyBEYXRhSW5wdXRTdHJlYW0oaW5wdXRTdHJlYW0pOworICAgIH0KKyAgCisgICAgLy8gcHJvdGVjdGVkIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgCisgICAgLyoqCisgICAgKiBSZWFkIGFuZCBicmVhayB1cCB0aGUgaGVhZGVyIHN0cmVhbSBvZiBkYXRhIHBhc3NlZCBpbiBhcyBhcmd1bWVudHMgaW50byAKKyAgICAqIG1lYW5pbmdmdWwgQ29sbGF0b3IgZGF0YS4KKyAgICAqIEBwYXJhbSByYmMgUnVsZUJhc2VkQ29sbGF0b3IgdG8gcG9wdWxhdGUgd2l0aCBoZWFkZXIgaW5mb3JtYXRpb24KKyAgICAqIEBleGNlcHRpb24gSU9FeGNlcHRpb24gdGhyb3duIHdoZW4gdGhlcmUncyBhIGRhdGEgZXJyb3IuCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCByZWFkSGVhZGVyKFJ1bGVCYXNlZENvbGxhdG9yIHJiYykgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgIAlpbnQgc2l6ZSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgCS8vIGFsbCB0aGUgb2Zmc2V0cyBhcmUgaW4gYnl0ZXMKKyAgICAgIAkvLyB0byBnZXQgdGhlIGFkZHJlc3MgYWRkIHRvIHRoZSBoZWFkZXIgYWRkcmVzcyBhbmQgY2FzdCBwcm9wZXJseSAKKyAgICAgIAkvLyBEZWZhdWx0IG9wdGlvbnMgaW50IG9wdGlvbnMKKyAgICAgICAgbV9kYXRhSW5wdXRTdHJlYW1fLnNraXAoNCk7IC8vIG9wdGlvbnMKKyAgICAgICAgLy8gc3RydWN0dXJlIHdoaWNoIGhvbGRzIHZhbHVlcyBmb3IgaW5kaXJlY3QgcG9zaXRpb25pbmcgYW5kIGltcGxpY2l0IAorICAgICAgICAvLyByYW5nZXMKKyAgICAgIAlpbnQgVUNBQ29uc3QgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAKKyAgICAgICAgLy8gdGhpcyBvbmUgaXMgbmVlZGVkIG9ubHkgZm9yIFVDQSwgdG8gY29weSB0aGUgYXBwcm9wcmlhdGUgCisgICAgICAgIC8vIGNvbnRyYWN0aW9ucworICAgICAgICBtX2RhdGFJbnB1dFN0cmVhbV8uc2tpcCg0KTsKKyAgICAgIAkvLyByZXNlcnZlZCBmb3IgZnV0dXJlIHVzZQorICAgICAgCW1fZGF0YUlucHV0U3RyZWFtXy5za2lwQnl0ZXMoNCk7CisgICAgICAJLy8gY29uc3QgdWludDhfdCAqbWFwcGluZ1Bvc2l0aW9uOyAKKyAgICAgIAlpbnQgbWFwcGluZyA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7IAorICAgICAgCS8vIHVpbnQzMl90ICpleHBhbnNpb247IAorICAgICAgCXJiYy5tX2V4cGFuc2lvbk9mZnNldF8gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAKKyAgICAgIAkvLyBVQ2hhciAqY29udHJhY3Rpb25JbmRleDsgICAgIAorICAgICAgCXJiYy5tX2NvbnRyYWN0aW9uT2Zmc2V0XyA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7IAorICAgICAgCS8vIHVpbnQzMl90ICpjb250cmFjdGlvbkNFczsKKyAgICAgIAlpbnQgY29udHJhY3Rpb25DRSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7ICAgCisgICAgICAJLy8gbmVlZGVkIGZvciB2YXJpb3VzIGNsb3N1cmVzIGludCBjb250cmFjdGlvblNpemUgCisgICAgICAJaW50IGNvbnRyYWN0aW9uU2l6ZSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7ICAKKyAgICAgIAkvLyBhcnJheSBvZiBsYXN0IGNvbGxhdGlvbiBlbGVtZW50IGluIGV4cGFuc2lvbgorICAgICAgCWludCBleHBhbnNpb25FbmRDRSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7ICAKKyAgICAgIAkvLyBhcnJheSBvZiBtYXhpbXVtIGV4cGFuc2lvbiBzaXplIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGV4cGFuc2lvbgorICAgICAgICAvLyBjb2xsYXRpb24gZWxlbWVudHMgd2l0aCBsYXN0IGVsZW1lbnQgaW4gZXhwYW5zaW9uRW5kQ0UKKyAgICAgIAlpbnQgZXhwYW5zaW9uRW5kQ0VNYXhTaXplID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsgICAgIAorICAgICAgCS8vIHNpemUgb2YgZW5kRXhwYW5zaW9uQ0UgaW50IGV4cGFuc2lvbkVuZENFU2l6ZQorICAgICAgCW1fZGF0YUlucHV0U3RyZWFtXy5za2lwQnl0ZXMoNCk7IAorICAgICAgCS8vIGhhc2ggdGFibGUgb2YgdW5zYWZlIGNvZGUgcG9pbnRzIAorICAgICAgCWludCB1bnNhZmUgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAgICAgICAgICAgIAorICAgICAgCS8vIGhhc2ggdGFibGUgb2YgZmluYWwgY29kZSBwb2ludHMgaW4gY29udHJhY3Rpb25zLgorICAgICAgCWludCBjb250cmFjdGlvbkVuZCA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAJLy8gaW50IENFY291bnQgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgCW1fZGF0YUlucHV0U3RyZWFtXy5za2lwQnl0ZXMoNCk7CisgICAgICAJLy8gaXMgamFtb1NwZWNpYWwKKyAgICAgIAlyYmMubV9pc0phbW9TcGVjaWFsXyA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkQm9vbGVhbigpOyAKKyAgICAgICAgLy8gcGFkZGluZworICAgICAgCW1fZGF0YUlucHV0U3RyZWFtXy5za2lwQnl0ZXMoMyk7CisgICAgICAJLy8gYnl0ZSB2ZXJzaW9uW10gPSBuZXcgYnl0ZVs0XTsKKyAgICAgIAltX2RhdGFJbnB1dFN0cmVhbV8uc2tpcEJ5dGVzKDQpOworICAgICAgCS8vIGJ5dGUgY2hhcnNldE5hbWVbXSA9IG5ldyBieXRlWzMyXTsgLy8gZm9yIGNoYXJzZXQgQ0VzCisgICAgICAJbV9kYXRhSW5wdXRTdHJlYW1fLnNraXBCeXRlcygzMik7CisgICAgICAJbV9kYXRhSW5wdXRTdHJlYW1fLnNraXBCeXRlcyg2NCk7IC8vIGZvciBmdXR1cmUgdXNlIAorICAgICAgCWlmIChyYmMubV9jb250cmFjdGlvbk9mZnNldF8gPT0gMCkgeyAvLyBjb250cmFjdGlvbiBjYW4gYmUgbnVsbAorICAgICAgCQlyYmMubV9jb250cmFjdGlvbk9mZnNldF8gPSBtYXBwaW5nOworICAgICAgCQljb250cmFjdGlvbkNFID0gbWFwcGluZzsKKyAgICAgIAl9CisgICAgICAJbV9leHBhbnNpb25TaXplXyA9IHJiYy5tX2NvbnRyYWN0aW9uT2Zmc2V0XyAtIHJiYy5tX2V4cGFuc2lvbk9mZnNldF87CisgICAgICAJbV9jb250cmFjdGlvbkluZGV4U2l6ZV8gPSBjb250cmFjdGlvbkNFIC0gcmJjLm1fY29udHJhY3Rpb25PZmZzZXRfOworICAgICAgCW1fY29udHJhY3Rpb25DRVNpemVfID0gbWFwcGluZyAtIGNvbnRyYWN0aW9uQ0U7CisgICAgICAJbV90cmllU2l6ZV8gPSBleHBhbnNpb25FbmRDRSAtIG1hcHBpbmc7CisgICAgICAJbV9leHBhbnNpb25FbmRDRVNpemVfID0gZXhwYW5zaW9uRW5kQ0VNYXhTaXplIC0gZXhwYW5zaW9uRW5kQ0U7CisgICAgICAJbV9leHBhbnNpb25FbmRDRU1heFNpemVTaXplXyA9IHVuc2FmZSAtIGV4cGFuc2lvbkVuZENFTWF4U2l6ZTsKKyAgICAgIAltX3Vuc2FmZVNpemVfID0gY29udHJhY3Rpb25FbmQgLSB1bnNhZmU7CisgICAgICAgIG1fVUNBVmFsdWVzU2l6ZV8gPSBzaXplIC0gVUNBQ29uc3Q7IC8vIFVDQSB2YWx1ZSwgd2lsbCBiZSBoYW5kbGVkIGxhdGVyCisgICAgICAgIC8vIHRyZWF0IGl0IGFzIG5vcm1hbCBjb2xsYXRvciBmaXJzdAorICAgICAgICAvLyBmb3Igbm9ybWFsIGNvbGxhdG9yIHRoZXJlIGlzIG5vIFVDQSBjb250cmFjdGlvbgorICAgICAgICBtX2NvbnRyYWN0aW9uRW5kU2l6ZV8gPSBzaXplIC0gY29udHJhY3Rpb25FbmQ7ICAgIAorICAgICAgICAKKyAgICAgIAlyYmMubV9jb250cmFjdGlvbk9mZnNldF8gPj49IDE7IC8vIGNhc3RpbmcgdG8gaW50cworICAgICAgCXJiYy5tX2V4cGFuc2lvbk9mZnNldF8gPj49IDI7IC8vIGNhc3RpbmcgdG8gY2hhcnMKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmVhZCBhbmQgYnJlYWsgdXAgdGhlIGNvbGxhdGlvbiBvcHRpb25zIHBhc3NlZCBpbiB0aGUgc3RyZWFtIG9mIGRhdGEKKyAgICAgKiBhbmQgdXBkYXRlIHRoZSBhcmd1bWVudCBDb2xsYXRvciB3aXRoIHRoZSByZXN1bHRzCisgICAgICogQHBhcmFtIHJiYyBSdWxlQmFzZWRDb2xsYXRvciB0byBwb3B1bGF0ZQorICAgICAqIEBleGNlcHRpb24gSU9FeGNlcHRpb24gdGhyb3duIHdoZW4gdGhlcmUncyBhIGRhdGEgZXJyb3IuCisgICAgICogQGRyYWZ0IDIuMgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIHJlYWRPcHRpb25zKFJ1bGVCYXNlZENvbGxhdG9yIHJiYykgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgIAlyYmMubV9kZWZhdWx0VmFyaWFibGVUb3BWYWx1ZV8gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgIAlyYmMubV9kZWZhdWx0SXNGcmVuY2hDb2xsYXRpb25fID0gKG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCkKKyAgICAJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGVWYWx1ZS5PTl8pOworICAgICAgICByYmMubV9kZWZhdWx0SXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWRfIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IChtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpID09IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlVmFsdWUuU0hJRlRFRF8pOworICAgICAgICByYmMubV9kZWZhdWx0Q2FzZUZpcnN0XyA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIHJiYy5tX2RlZmF1bHRJc0Nhc2VMZXZlbF8gPSAobV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGVWYWx1ZS5PTl8pOworICAgICAgICBpbnQgdmFsdWUgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgIAlpZiAodmFsdWUgPT0gUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlVmFsdWUuT05fKSB7CisgICAgCQl2YWx1ZSA9IENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OOworICAgIAl9CisgICAgCWVsc2UgeworICAgIAkJdmFsdWUgPSBDb2xsYXRvci5OT19ERUNPTVBPU0lUSU9OOworICAgIAl9CisgICAgCXJiYy5tX2RlZmF1bHREZWNvbXBvc2l0aW9uXyA9IHZhbHVlOworICAgIAlyYmMubV9kZWZhdWx0U3RyZW5ndGhfID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAJcmJjLm1fZGVmYXVsdElzSGlyYWdhbmE0XyA9IChtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpIAorICAgIAkgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLk9OXyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogUmVhZCBhbmQgYnJlYWsgdXAgdGhlIHN0cmVhbSBvZiBkYXRhIHBhc3NlZCBpbiBhcyBhcmd1bWVudHMgaW50byAKKyAgICAqIG1lYW5pbmdmdWwgQ29sbGF0b3IgZGF0YS4KKyAgICAqIEBwYXJhbSByYmMgUnVsZUJhc2VkQ29sbGF0b3IgdG8gcG9wdWxhdGUKKyAgICAqIEBwYXJhbSBVQ0FDb25zdCBvYmplY3QgdG8gZmlsbCB1cCB3aXRoIFVDQSBjb25zdGFudHMgaWYgd2UgYXJlIHJlYWRpbmcgCisgICAgKiAgICAgICAgICAgICAgICAgdGhlIFVDQSBjb2xsYXRvciwgaWYgbm90IHVzZSBhIG51bGwKKyAgICAqIEByZXR1cm4gVUNBQ29udHJhY3Rpb25zIGFycmF5IGZpbGxlZCB1cCB3aXRoIHRoZSBVQ0EgY29udHJhY3Rpb25zIGlmIHdlCisgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIGFyZSByZWFkaW5nIHRoZSBVQ0EgY29sbGF0b3IKKyAgICAqIEBleGNlcHRpb24gSU9FeGNlcHRpb24gdGhyb3duIHdoZW4gdGhlcmUncyBhIGRhdGEgZXJyb3IuCisgICAgKiBAZHJhZnQgMi4yCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgY2hhcltdIHJlYWQoUnVsZUJhc2VkQ29sbGF0b3IgcmJjLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuVUNBQ29uc3RhbnRzIFVDQUNvbnN0KSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbgorICAgIHsKKyAgICAJcmVhZEhlYWRlcihyYmMpOworICAgIAlyZWFkT3B0aW9ucyhyYmMpOworICAgIAltX2V4cGFuc2lvblNpemVfID4+PSAyOworICAgIAlyYmMubV9leHBhbnNpb25fID0gbmV3IGludFttX2V4cGFuc2lvblNpemVfXTsKKyAgICAJZm9yIChpbnQgaSA9IDA7IGkgPCBtX2V4cGFuc2lvblNpemVfOyBpICsrKSB7CisgICAgCQlyYmMubV9leHBhbnNpb25fW2ldID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAJfQorICAgICAgICBpZiAobV9jb250cmFjdGlvbkluZGV4U2l6ZV8gPiAwKSB7IAorICAgICAgICAJbV9jb250cmFjdGlvbkluZGV4U2l6ZV8gPj49IDE7CisgICAgICAgIAlyYmMubV9jb250cmFjdGlvbkluZGV4XyA9IG5ldyBjaGFyW21fY29udHJhY3Rpb25JbmRleFNpemVfXTsKKyAgICAgICAgCWZvciAoaW50IGkgPSAwOyBpIDwgbV9jb250cmFjdGlvbkluZGV4U2l6ZV87IGkgKyspIHsKKyAgICAgICAgCQlyYmMubV9jb250cmFjdGlvbkluZGV4X1tpXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkQ2hhcigpOworICAgICAgICAJfQorICAgICAgICAJbV9jb250cmFjdGlvbkNFU2l6ZV8gPj49IDI7CisgICAgICAgIAlyYmMubV9jb250cmFjdGlvbkNFXyA9IG5ldyBpbnRbbV9jb250cmFjdGlvbkNFU2l6ZV9dOworICAgICAgICAJZm9yIChpbnQgaSA9IDA7IGkgPCBtX2NvbnRyYWN0aW9uQ0VTaXplXzsgaSArKykgeworICAgICAgICAJCXJiYy5tX2NvbnRyYWN0aW9uQ0VfW2ldID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgCX0KKyAgICAgICAgfQorICAgIAlyYmMubV90cmllXyA9IG5ldyBJbnRUcmllKG1fZGF0YUlucHV0U3RyZWFtXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAJICBSdWxlQmFzZWRDb2xsYXRvci5EYXRhTWFuaXB1bGF0ZS5nZXRJbnN0YW5jZSgpKTsKKyAgICAJaWYgKCFyYmMubV90cmllXy5pc0xhdGluMUxpbmVhcigpKSB7CisgICAgCQl0aHJvdyBuZXcgSU9FeGNlcHRpb24oIkRhdGEgY29ycnVwdGVkLCAiIAorICAgIAkJICAgICAgICAgICAgICAgICAgICAgICsgIkNvbGxhdG9yIFRyaWVzIGV4cGVjdGVkIHRvIGhhdmUgbGluZWFyICIKKyAgICAJCSAgICAgICAgICAgICAgICAgICAgICArICJsYXRpbiBvbmUgZGF0YSBhcnJheXMiKTsKKyAgICAJfQorICAgIAltX2V4cGFuc2lvbkVuZENFU2l6ZV8gPj49IDI7CisgICAgCXJiYy5tX2V4cGFuc2lvbkVuZENFXyA9IG5ldyBpbnRbbV9leHBhbnNpb25FbmRDRVNpemVfXTsKKyAgICAJZm9yIChpbnQgaSA9IDA7IGkgPCBtX2V4cGFuc2lvbkVuZENFU2l6ZV87IGkgKyspIHsKKyAgICAJCXJiYy5tX2V4cGFuc2lvbkVuZENFX1tpXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgCX0KKyAgICAJcmJjLm1fZXhwYW5zaW9uRW5kQ0VNYXhTaXplXyA9IG5ldyBieXRlW21fZXhwYW5zaW9uRW5kQ0VNYXhTaXplU2l6ZV9dOworICAgIAlmb3IgKGludCBpID0gMDsgaSA8IG1fZXhwYW5zaW9uRW5kQ0VNYXhTaXplU2l6ZV87IGkgKyspIHsKKyAgICAJCXJiYy5tX2V4cGFuc2lvbkVuZENFTWF4U2l6ZV9baV0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEJ5dGUoKTsKKyAgICAJfQorICAgIAlyYmMubV91bnNhZmVfID0gbmV3IGJ5dGVbbV91bnNhZmVTaXplX107CisgICAgCWZvciAoaW50IGkgPSAwOyBpIDwgbV91bnNhZmVTaXplXzsgaSArKykgeworICAgIAkJcmJjLm1fdW5zYWZlX1tpXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkQnl0ZSgpOworICAgIAl9CisgICAgICAgIGlmIChVQ0FDb25zdCAhPSBudWxsKSB7CisgICAgICAgICAgICAvLyB3ZSBhcmUgcmVhZGluZyB0aGUgVUNBCisgICAgICAgICAgICAvLyB1bmZvcnR1bmF0ZWx5IHRoZSBVQ0Egb2Zmc2V0IGluIGFueSBjb2xsYXRvciBkYXRhIGlzIG5vdCAwIGFuZAorICAgICAgICAgICAgLy8gb25seSByZWZlcnMgdG8gdGhlIFVDQSBkYXRhCisgICAgICAgICAgICBtX2NvbnRyYWN0aW9uRW5kU2l6ZV8gLT0gbV9VQ0FWYWx1ZXNTaXplXzsgICAgICAgCisgICAgICAgIH0KKyAgICAJcmJjLm1fY29udHJhY3Rpb25FbmRfID0gbmV3IGJ5dGVbbV9jb250cmFjdGlvbkVuZFNpemVfXTsKKyAgICAJZm9yIChpbnQgaSA9IDA7IGkgPCBtX2NvbnRyYWN0aW9uRW5kU2l6ZV87IGkgKyspIHsKKyAgICAJCXJiYy5tX2NvbnRyYWN0aW9uRW5kX1tpXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkQnl0ZSgpOworICAgIAl9CisgICAgICAgIGlmIChVQ0FDb25zdCAhPSBudWxsKSB7CisgICAgICAgICAgICBVQ0FDb25zdC5GSVJTVF9URVJUSUFSWV9JR05PUkFCTEVfWzBdIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgICAgICBtX1VDQVZhbHVlc1NpemVfIC09IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5GSVJTVF9URVJUSUFSWV9JR05PUkFCTEVfWzFdIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgICAgICBtX1VDQVZhbHVlc1NpemVfIC09IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5MQVNUX1RFUlRJQVJZX0lHTk9SQUJMRV9bMF0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgICAgIG1fVUNBVmFsdWVzU2l6ZV8gLT0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LkxBU1RfVEVSVElBUllfSUdOT1JBQkxFX1sxXSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICAgICAgbV9VQ0FWYWx1ZXNTaXplXyAtPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuRklSU1RfUFJJTUFSWV9JR05PUkFCTEVfWzBdIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgICAgICBtX1VDQVZhbHVlc1NpemVfIC09IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5GSVJTVF9QUklNQVJZX0lHTk9SQUJMRV9bMV0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgICAgIG1fVUNBVmFsdWVzU2l6ZV8gLT0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LkZJUlNUX1NFQ09OREFSWV9JR05PUkFCTEVfWzBdIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgICAgICBtX1VDQVZhbHVlc1NpemVfIC09IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5GSVJTVF9TRUNPTkRBUllfSUdOT1JBQkxFX1sxXSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICAgICAgbV9VQ0FWYWx1ZXNTaXplXyAtPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuTEFTVF9TRUNPTkRBUllfSUdOT1JBQkxFX1swXSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICAgICAgbV9VQ0FWYWx1ZXNTaXplXyAtPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuTEFTVF9TRUNPTkRBUllfSUdOT1JBQkxFX1sxXSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICAgICAgbV9VQ0FWYWx1ZXNTaXplXyAtPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuTEFTVF9QUklNQVJZX0lHTk9SQUJMRV9bMF0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgICAgIG1fVUNBVmFsdWVzU2l6ZV8gLT0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LkxBU1RfUFJJTUFSWV9JR05PUkFCTEVfWzFdIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgICAgICBtX1VDQVZhbHVlc1NpemVfIC09IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5GSVJTVF9WQVJJQUJMRV9bMF0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAgICAgCisgICAgICAgICAgICBtX1VDQVZhbHVlc1NpemVfIC09IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5GSVJTVF9WQVJJQUJMRV9bMV0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICAgICAgbV9VQ0FWYWx1ZXNTaXplXyAtPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuTEFTVF9WQVJJQUJMRV9bMF0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAKKyAgICAgICAgICAgIG1fVUNBVmFsdWVzU2l6ZV8gLT0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LkxBU1RfVkFSSUFCTEVfWzFdID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIG1fVUNBVmFsdWVzU2l6ZV8gLT0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LkZJUlNUX05PTl9WQVJJQUJMRV9bMF0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAgCisgICAgICAgICAgICBtX1VDQVZhbHVlc1NpemVfIC09IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5GSVJTVF9OT05fVkFSSUFCTEVfWzFdID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsgIAorICAgICAgICAgICAgbV9VQ0FWYWx1ZXNTaXplXyAtPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuTEFTVF9OT05fVkFSSUFCTEVfWzBdID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsgIAorICAgICAgICAgICAgbV9VQ0FWYWx1ZXNTaXplXyAtPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuTEFTVF9OT05fVkFSSUFCTEVfWzFdID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsgIAorICAgICAgICAgICAgbV9VQ0FWYWx1ZXNTaXplXyAtPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuUkVTRVRfVE9QX1ZBTFVFX1swXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7ICAKKyAgICAgICAgICAgIG1fVUNBVmFsdWVzU2l6ZV8gLT0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LlJFU0VUX1RPUF9WQUxVRV9bMV0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAgCisgICAgICAgICAgICBtX1VDQVZhbHVlc1NpemVfIC09IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5GSVJTVF9JTVBMSUNJVF9bMF0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAgCisgICAgICAgICAgICBtX1VDQVZhbHVlc1NpemVfIC09IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5GSVJTVF9JTVBMSUNJVF9bMV0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAgCisgICAgICAgICAgICBtX1VDQVZhbHVlc1NpemVfIC09IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5MQVNUX0lNUExJQ0lUX1swXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7ICAKKyAgICAgICAgICAgIG1fVUNBVmFsdWVzU2l6ZV8gLT0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LkxBU1RfSU1QTElDSVRfWzFdID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsgIAorICAgICAgICAgICAgbV9VQ0FWYWx1ZXNTaXplXyAtPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuRklSU1RfVFJBSUxJTkdfWzBdID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsgIAorICAgICAgICAgICAgbV9VQ0FWYWx1ZXNTaXplXyAtPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuRklSU1RfVFJBSUxJTkdfWzFdID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsgIAorICAgICAgICAgICAgbV9VQ0FWYWx1ZXNTaXplXyAtPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuTEFTVF9UUkFJTElOR19bMF0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAgCisgICAgICAgICAgICBtX1VDQVZhbHVlc1NpemVfIC09IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5MQVNUX1RSQUlMSU5HX1sxXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7ICAgCisgICAgICAgICAgICBtX1VDQVZhbHVlc1NpemVfIC09IDQ7IAorICAgICAgICAgICAgVUNBQ29uc3QuUFJJTUFSWV9UT1BfTUlOXyA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7ICAKKyAgICAgICAgICAgIG1fVUNBVmFsdWVzU2l6ZV8gLT0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LlBSSU1BUllfSU1QTElDSVRfTUlOXyA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7ICAgCisgICAgICAgICAgICBtX1VDQVZhbHVlc1NpemVfIC09IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5QUklNQVJZX0lNUExJQ0lUX01BWF8gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAgIAorICAgICAgICAgICAgbV9VQ0FWYWx1ZXNTaXplXyAtPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuUFJJTUFSWV9UUkFJTElOR19NSU5fID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsgICAKKyAgICAgICAgICAgIG1fVUNBVmFsdWVzU2l6ZV8gLT0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LlBSSU1BUllfVFJBSUxJTkdfTUFYXyA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7ICAgCisgICAgICAgICAgICBtX1VDQVZhbHVlc1NpemVfIC09IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5QUklNQVJZX1NQRUNJQUxfTUlOXyA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7ICAgCisgICAgICAgICAgICBtX1VDQVZhbHVlc1NpemVfIC09IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5QUklNQVJZX1NQRUNJQUxfTUFYXyA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7ICAgCisgICAgICAgICAgICBtX1VDQVZhbHVlc1NpemVfIC09IDQ7CisgICAgICAgICAgICBtX1VDQVZhbHVlc1NpemVfID4+PSAxOworICAgICAgICAgICAgY2hhciByZXN1bHRbXSA9IG5ldyBjaGFyW21fVUNBVmFsdWVzU2l6ZV9dOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtX1VDQVZhbHVlc1NpemVfOyBpICsrKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0W2ldID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRDaGFyKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZWFkcyBpbiB0aGUgaW52ZXJzZSB1Y2EgZGF0YQorICAgICAqIEBwYXJhbSBpbnB1dCBpbnB1dCBzdHJlYW0gd2l0aCB0aGUgaW52ZXJzZSB1Y2EgZGF0YQorICAgICAqIEByZXR1cm4gYW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGludmVyc2UgdWNhIGRhdGEKKyAgICAgKiBAZXhjZXB0aW9uIElPRXhjZXB0aW9uIHRocm93biB3aGVuIGVycm9yIG9jY3VycyB3aGlsZSByZWFkaW5nIHRoZSAKKyAgICAgKiAgICAgICAgICAgIGludmVyc2UgdWNhCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBDb2xsYXRpb25QYXJzZWRSdWxlQnVpbGRlci5JbnZlcnNlVUNBIHJlYWRJbnZlcnNlVUNBKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5wdXRTdHJlYW0gaW5wdXRTdHJlYW0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICB7CisgICAgICAgIElDVUJpbmFyeS5yZWFkSGVhZGVyKGlucHV0U3RyZWFtLCBJTlZFUlNFX1VDQV9EQVRBX0ZPUk1BVF9JRF8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEQVRBX0ZPUk1BVF9WRVJTSU9OXyk7CisgICAgICAgIENvbGxhdGlvblBhcnNlZFJ1bGVCdWlsZGVyLkludmVyc2VVQ0EgcmVzdWx0ID0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IENvbGxhdGlvblBhcnNlZFJ1bGVCdWlsZGVyLkludmVyc2VVQ0EoKTsKKyAgICAgICAgRGF0YUlucHV0U3RyZWFtIGlucHV0ID0gbmV3IERhdGFJbnB1dFN0cmVhbShpbnB1dFN0cmVhbSk7ICAgICAgICAKKyAgICAgICAgaW5wdXQucmVhZEludCgpOyAvLyBieXRlc2l6ZQorICAgICAgICBpbnQgdGFibGVzaXplID0gaW5wdXQucmVhZEludCgpOyAvLyBpbiBpbnQgc2l6ZQorICAgICAgICBpbnQgY29udHNpemUgPSBpbnB1dC5yZWFkSW50KCk7ICAvLyBpbiBjaGFyIHNpemUKKyAgICAgICAgaW5wdXQucmVhZEludCgpOyAvLyB0YWJsZSBpbiBieXRlcworICAgICAgICBpbnB1dC5yZWFkSW50KCk7IC8vIGNvbnRzIGluIGJ5dGVzCisgICAgICAgIGludCBzaXplID0gdGFibGVzaXplICogMzsgLy8gb25lIGNvbHVtbiBmb3IgZWFjaCBzdHJlbmd0aAorICAgICAgICByZXN1bHQubV90YWJsZV8gPSBuZXcgaW50W3NpemVdOworICAgICAgICByZXN1bHQubV9jb250aW51YXRpb25zXyA9IG5ldyBjaGFyW2NvbnRzaXplXTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSArKykgeworICAgICAgICAgICAgcmVzdWx0Lm1fdGFibGVfW2ldID0gaW5wdXQucmVhZEludCgpOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY29udHNpemU7IGkgKyspIHsKKyAgICAgICAgICAgIHJlc3VsdC5tX2NvbnRpbnVhdGlvbnNfW2ldID0gaW5wdXQucmVhZENoYXIoKTsKKyAgICAgICAgfQorICAgICAgICBpbnB1dC5jbG9zZSgpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICAvLyBwcml2YXRlIGlubmVyIGNsYXNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLy8gcHJpdmF0ZSB2YXJpYWJsZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAKKyAgICAvKioKKyAgICAqIERhdGEgaW5wdXQgc3RyZWFtIGZvciB1Y2EuaWN1IAorICAgICovCisgICAgcHJpdmF0ZSBEYXRhSW5wdXRTdHJlYW0gbV9kYXRhSW5wdXRTdHJlYW1fOworICAgCisgICAgLyoqCisgICAgKiBGaWxlIGZvcm1hdCB2ZXJzaW9uIGFuZCBpZCB0aGF0IHRoaXMgY2xhc3MgdW5kZXJzdGFuZHMuCisgICAgKiBObyBndWFyYW50ZWVzIGFyZSBtYWRlIGlmIGEgb2xkZXIgdmVyc2lvbiBpcyB1c2VkCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIERBVEFfRk9STUFUX1ZFUlNJT05fW10gPSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyhieXRlKTB4MiwgKGJ5dGUpMHgwLCAoYnl0ZSkweDAsIChieXRlKTB4MH07CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBEQVRBX0ZPUk1BVF9JRF9bXSA9IHsoYnl0ZSkweDU1LCAoYnl0ZSkweDQzLCAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpMHg2ZiwgKGJ5dGUpMHg2Y307CisgICAgLyoqCisgICAgKiBJbnZlcnNlIFVDQSBmaWxlIGZvcm1hdCB2ZXJzaW9uIGFuZCBpZCB0aGF0IHRoaXMgY2xhc3MgdW5kZXJzdGFuZHMuCisgICAgKiBObyBndWFyYW50ZWVzIGFyZSBtYWRlIGlmIGEgb2xkZXIgdmVyc2lvbiBpcyB1c2VkCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIElOVkVSU0VfVUNBX0RBVEFfRk9STUFUX0lEX1tdID0geyhieXRlKTB4NDksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpMHg2ZSwgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpMHg3NiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkweDQzfTsKKyAgICAvKioKKyAgICAqIENvcnJ1cHRlZCBlcnJvciBzdHJpbmcKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDT1JSVVBURURfREFUQV9FUlJPUl8gPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGF0YSBjb3JydXB0ZWQgaW4gQ29sbGF0aW9uIGRhdGEgZmlsZSI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8qKgorICAgICAqIFNpemUgb2YgZXhwYW5zaW9uIHRhYmxlIGluIGJ5dGVzCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9leHBhbnNpb25TaXplXzsKKyAgICAvKioKKyAgICAgKiBTaXplIG9mIGNvbnRyYWN0aW9uIGluZGV4IHRhYmxlIGluIGJ5dGVzCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9jb250cmFjdGlvbkluZGV4U2l6ZV87CisgICAgLyoqCisgICAgICogU2l6ZSBvZiBjb250cmFjdGlvbiB0YWJsZSBpbiBieXRlcworICAgICAqLworICAgIHByaXZhdGUgaW50IG1fY29udHJhY3Rpb25DRVNpemVfOworICAgIC8qKgorICAgICAqIFNpemUgb2YgdGhlIFRyaWUgaW4gYnl0ZXMKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX3RyaWVTaXplXzsKKyAgICAvKioKKyAgICAgKiBTaXplIG9mIHRoZSB0YWJsZSB0aGF0IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IGNvbGxhdGlvbiBlbGVtZW50cworICAgICAqIHRoYXQgZW5kIHdpdGggYW4gZXhwYW5zaW9uIAorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fZXhwYW5zaW9uRW5kQ0VTaXplXzsKKyAgICAvKioKKyAgICAgKiBTaXplIG9mIHRoZSB0YWJsZSB0aGF0IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSBtYXhpbXVtIHNpemUgb2YgCisgICAgICogY29sbGF0aW9uIGVsZW1lbnRzIHRoYXQgZW5kIHdpdGggYSBwYXJ0aWN1bGFyIGV4cGFuc2lvbiBDRSBjb3JyZXNwb25kaW5nCisgICAgICogdG8gdGhlIG9uZXMgaW4gZXhwYW5zaW9uRW5kQ0UKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX2V4cGFuc2lvbkVuZENFTWF4U2l6ZVNpemVfOworICAgIC8qKgorICAgICAqIFNpemUgb2YgdGhlIHRhYmxlIHRoYXQgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlICJVbnNhZmUiIAorICAgICAqIGNvZGVwb2ludHMKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX3Vuc2FmZVNpemVfOworICAgIC8qKgorICAgICAqIFNpemUgb2YgdGhlIHRhYmxlIHRoYXQgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgY29kZXBvaW50cyB0aGF0IGVuZHMKKyAgICAgKiB3aXRoIGEgY29udHJhY3Rpb24KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX2NvbnRyYWN0aW9uRW5kU2l6ZV87CisgICAgLyoqCisgICAgICogU2l6ZSBvZiB0aGUgdGFibGUgdGhhdCBjb250YWlucyBVQ0EgY29udHJhY3Rpb24gaW5mb3JtYXRpb24KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX1VDQVZhbHVlc1NpemVfOworICAgICAgCisgICAgLy8gcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgCit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbXBvc2VEYXRhLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Db21wb3NlRGF0YS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRjZmQ1ZGEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Db21wb3NlRGF0YS5qYXZhCkBAIC0wLDAgKzEsMTQ2MCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoYykgMTk5Ny0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogPiBUSElTIEZJTEUgV0FTIE1BQ0hJTkUgR0VORVJBVEVEIDwKKyogPiAgICAgICBETyBOT1QgRURJVCBCWSBIQU5EICAgICAgIDwKKyogPiAgICAgIFJVTiBUT09MIFRPIFJFR0VORVJBVEUgICAgIDwKKyogVG9vbDogY29tLmlibS5pY3UudGV4dC5Ob3JtYWxpemVyCisqIENyZWF0aW9uIGRhdGU6IEZyaSBKdWwgMjEgMTM6NDE6NDUgUERUIDIwMDAKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCitjbGFzcyBDb21wb3NlRGF0YSB7CisgICAgc3RhdGljIGZpbmFsIHNob3J0IEJBU0VfQ09VTlQgPSA3NDg7CisgICAgc3RhdGljIGZpbmFsIHNob3J0IENPTUJJTklOR19DT1VOVCA9IDU1OworICAgIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0NPTVBBVCA9IDQzNDE7CisgICAgc3RhdGljIGZpbmFsIGludCBNQVhfQ0FOT05JQ0FMID0gNTE5OTsKKyAgICBzdGF0aWMgZmluYWwgY2hhciBNQVhfQ09NUE9TRUQgPSAweGZiMWQ7CisgICAgc3RhdGljIGZpbmFsIGludCBNQVhfSU5ERVggPSA4OTgyOworICAgIHN0YXRpYyBmaW5hbCBpbnQgSU5JVElBTF9KQU1PX0lOREVYID0gODk4MzsKKyAgICBzdGF0aWMgZmluYWwgaW50IE1FRElBTF9KQU1PX0lOREVYID0gODk4NDsKKyAgICBzdGF0aWMgZmluYWwgaW50IE1BWF9CQVNFUyA9IDEwMjQ7CisgICAgc3RhdGljIGZpbmFsIGludCBNQVhfQ09NQklORSA9IDY0OworICAgIHN0YXRpYyBmaW5hbCBpbnQgVFlQRV9NQVNLID0gMHg3OworICAgIHN0YXRpYyBmaW5hbCBpbnQgSU5ERVhfU0hJRlQgPSAzOworICAgIHN0YXRpYyBmaW5hbCBpbnQgSUdOT1JFID0gMDsKKyAgICBzdGF0aWMgZmluYWwgaW50IEJBU0UgPSAxOworICAgIHN0YXRpYyBmaW5hbCBpbnQgTk9OX0NPTVBPU0lOR19DT01CSU5JTkcgPSAyOworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ09NQklOSU5HID0gMzsKKyAgICBzdGF0aWMgZmluYWwgaW50IElOSVRJQUxfSkFNTyA9IDQ7CisgICAgc3RhdGljIGZpbmFsIGludCBNRURJQUxfSkFNTyA9IDU7CisgICAgc3RhdGljIGZpbmFsIGludCBGSU5BTF9KQU1PID0gNjsKKyAgICBzdGF0aWMgZmluYWwgaW50IEhBTkdVTCA9IDc7CisKKyAgICBzdGF0aWMgZmluYWwgQ29tcGFjdENoYXJBcnJheSBsb29rdXAgPSBuZXcgQ29tcGFjdENoYXJBcnJheSgKKyAgICAgICAgIlwwMDBcdTA4MDBcMDAwIEBgXDAwMFx1MDA4MFx1MDBBMFx1MDBDMFx1MDBFMFx1MDEwMFx1MDEyMFx1MDE0MFwwMDBcdTAxNjAiKworICAgICAgICAiXHUwMTgwXHUwMUEwXHUwMUMwXHUwMUUwXDAwMFwwMDBcdTAyMDBcdTAyMjBcdTAyNDBcdTAyNjBcdTAyODBcdTAyQTBcdTAyQzAiKworICAgICAgICAiXHUwMkUwXHUwMzAwXHUwMzIwXHUwMzQwXHUwMzYwXHUwMzgwXHUwM0EwXHUwM0MwXHUwM0UwXHUwNDAwXDAwMFx1MDQyMCIrCisgICAgICAgICJcdTA0NDBcdUE1QTVcMDA0XDAwMFx1MDQ2MFx1MDQ4MFx1MDRBMFwwMDBcMDAwXHUwNEMwXHUwNEUwXHUwNTAwXDAwMFwwMDAiKworICAgICAgICAiXHUwNTIwXHUwNTQwXHUwNTYwXHUwNTgwXHUwNUEwXHVBNUE1XDAxNlwwMDBcdTA1QzBcdTA1RTBcMDAwXDAwMFx1MDYwMCIrCisgICAgICAgICJcdTA2MjBcMDAwXDAwMFx1MDY0MFx1MDY2MFwwMDBcMDAwXHUwNjgwXHUwNkEwXDAwMFwwMDBcdTA2QzBcdTA2RTBcMDAwIisKKyAgICAgICAgIlx1MDcwMFx1MDcyMFx1MDc0MFwwMDBcMDAwXDAwMFx1MDc2MFwwMDBcMDAwXHUwNzgwXHUwN0EwXDAwMFwwMDBcdTA3QzAiKworICAgICAgICAiXHUwN0UwXDAwMFwwMDBcMDAwXHUwODAwXDAwMFwwMDBcdTA4MjBcdTA4NDBcMDAwXDAwMFx1MDg2MFx1MDg4MFwwMDBcdTA4QTAiKworICAgICAgICAiXHUwOEMwXHUwOEUwXHUwOTAwXHUwOTIwXHUwOTQwXHUwOTYwXDAwMFwwMDBcdTA5ODBcdUE1QTVcMDA2XDAwMFx1MDlBMCIrCisgICAgICAgICJcdTA5QTBcdTA5QTBcdTA5QzBcdTA5RTBcdTBBMDBcdTBBMjBcdTBBNDBcdUE1QTUuXDAwMFx1MEE2MFx1QTVBNVwwMDYiKworICAgICAgICAiXDAwMFx1MEE4MFx1QTVBNSpcMDAwXHUwQUEwXHUwQUMwXHUwQUUwXHUwQjAwXHUwQjIwXHUwQjQwXHUwQjYwXHUwQjgwIisKKyAgICAgICAgIlx1MEJBMFx1MEJDMFx1MEJFMFx1MEMwMFx1MEMyMFx1MEM0MFx1MEM2MFx1MEM4MFx1MENBMFx1MENDMFx1MENFMFx1MEQwMCIrCisgICAgICAgICJcdTBEMjBcdTBENDBcdTBENjBcdTBEODBcdTBEQTBcdTBEQzBcdTBERTBcdTBFMDBcdTBFMjBcMDAwXHUwRTQwXDAwMFx1MEU2MCIrCisgICAgICAgICJcdTBFODBcdTBFQTBcdTBFQzBcdTBFRTBcdTBGMDBcMDAwXDAwMFwwMDBcdTBGMjBcdUE1QTVcMDExXDAwMFx1MEY0MFx1MEY2MCIrCisgICAgICAgICJcdTBGODBcdTBGQTBcdTBGQzBcdUE1QTVMXDAwMFx1MEZFMFwwMDBcMDAwXHUxMDAwXHUxMDIwXHUxMDQwXHUxMDYwXHUxMDgwIisKKyAgICAgICAgIlx1MTBBMFx1MTBDMFx1MTBFMFwwMDBcdTExMDBcdTExMjBcdTExNDBcdTExNjBcdTExODBcdTExQTBcdTExQzBcdTExRTAiKworICAgICAgICAiXDAwMFx1MTIwMFx1MTIyMFx1MTI0MFx1MTI2MFwwMDBcMDAwXDAwMFx1MTI4MFx1MTJBMFx1MTJDMFx1MTJFMFx1MTMwMCIrCisgICAgICAgICJcdTEzMjBcdTEzNDBcdTEzNjBcdTEzODBcdTEzQTBcdTEzQzBcdTEzRTBcdTE0MDBcdTE0MjBcdTE0NDBcdTE0NjBcdUE1QTUiKworICAgICAgICAiXHUwM0MwXDAwMFx1QTVBNVx1MDE1RFx1MTQ4MFx1MTRBMFx1QTVBNVx1MDEwQVwwMDBcdTE0QzBcdTE0RTBcdTE1MDBcdTE1MjAiKworICAgICAgICAiXHUxNTQwXHUxNTYwXHUxNTgwXHUxNUEwXHUxNUMwXHUxNUUwXHVBNUE1XDAwNlwwMDBcdTE2MDBcdTE2MjBcdTE2NDBcdTE2NjAiKworICAgICAgICAiXHUxNjgwXHUxNkEwXHUxNkMwXHUxNkUwXHUxNzAwXHUxNzIwXHUxNzQwXHUxNzYwXHUxNzgwXHUxN0EwXHUxN0MwXHUxN0UwIisKKyAgICAgICAgIlx1MTgwMFx1MTgyMFx1MTg0MFx1MTg2MFx1MTg4MFx1MThBMFx1MThDMFx1MThFMFwwMDBcdTE5MDBcdTE5MjBcdTE5NDAiKworICAgICAgICAiXHUxOTYwXHUxOTgwXHUxOUEwXHUxOUMwXHUxOUUwXHUxQTAwXHUxQTIwXHUxQTQwXHUxQTYwXHUxQTgwXHUxQUEwXHUxQUMwIgorICAgICAgICAsCisgICAgICAgICJcMDAwXHUxQUUwXHVBNUE1PFwwMDBcMDIxXDAzMSlcMDAwXDAwMDlJUWFpcXlcdTAwODFcdTAwODlcdTAwOTFcdTAwOTkiKworICAgICAgICAiXHUwMEExXHUwMEE5XHUwMEIxXHUwMEI5XHUwMEMxXDAwMFx1MDBDOVx1MDBEMVx1MDBEOVx1MDBFMVx1MDBFOVx1MDBGMSIrCisgICAgICAgICJcdTAwRjlcdTAxMDFcdTAxMDlcdUE1QTVcMDA2XDAwMFx1MDExMVx1MDExOVx1MDEyMVx1MDEyOVx1MDEzMVx1MDEzOVx1MDE0MSIrCisgICAgICAgICJcdTAxNDlcdTAxNTFcdTAxNTlcdTAxNjFcdTAxNjlcdTAxNzFcdTAxNzlcdTAxODFcdTAxODlcMDAwXHUwMTkxXHUwMTk5IisKKyAgICAgICAgIlx1MDFBMVx1MDFBOVx1MDFCMVx1MDFCOVx1MDFDMVx1MDFDOVx1MDFEMVx1QTVBNVwwMDVcMDAwcFx1QTVBNVwwMDdcMDAwIisKKyAgICAgICAgIlwwMTJcMDAwXHUwMDgwXHVBNUE1XDAwNFwwMDBcdTAwOTBcMDAwXDAwMFx1MDBBOFx1MDBCOFx1MDBDOFx1MDBFMFwwMDAiKworICAgICAgICAiXDAwMFx1MDBGMFx1MDEwOFx1MDExOFwwMDBcdTAxMjhcdTAxNDhcdTAxNjhcMDAwXHUwMUQ5XHUwMUUxXHUwMUU5XHUwMUYxIisKKyAgICAgICAgIlx1MDFGOVx1MDIwMVx1MDIwOVx1MDIxMVx1MDIxOVx1MDIyMVx1MDIyOVx1MDIzMVx1MDIzOVx1MDI0MVx1MDI0OVx1MDI1MSIrCisgICAgICAgICJcMDAwXHUwMjU5XHUwMjYxXHUwMjY5XHUwMjcxXHUwMjc5XHUwMjgxXDAwMFx1MDI4OVx1MDI5MVx1MDI5OVx1MDJBMVx1MDJBOSIrCisgICAgICAgICJcdTAyQjFcMDAwXDAwMFx1MDJCOVx1MDJDMVx1MDJDOVx1MDJEMVx1MDJEOVx1MDJFMVx1MDJFOVx1MDJGMVx1MDJGOVx1MDMwMSIrCisgICAgICAgICJcdTAzMDlcdTAzMTFcdTAzMTlcdTAzMjFcdTAzMjlcdTAzMzFcMDAwXHUwMzM5XHUwMzQxXHUwMzQ5XHUwMzUxXHUwMzU5IisKKyAgICAgICAgIlx1MDM2MVwwMDBcdTAzNjlcdTAzNzFcdTAzNzlcdTAzODFcdTAzODlcdTAzOTFcMDAwXHUwMzk5XHUwM0ExXHUwM0E5XHUwM0IxIisKKyAgICAgICAgIlx1MDNCOVwwMDBcMDAwXHUwM0MxXHUwM0M5XHUwM0QxXHUwM0Q5XHUwM0UxXHUwM0U5XHUwM0YxXHUwM0Y5XHUwNDAxXHUwNDA5IisKKyAgICAgICAgIlwwMDBcMDAwXHUwNDExXHUwNDE5XHUwNDIxXHUwNDI5XHUwNDMxXHUwNDM5XDAwMFwwMDBcdTA0NDFcdTA0NDlcdTA0NTEiKworICAgICAgICAiXHUwNDU5XHUwNDYxXHUwNDY5XHUwNDcxXHUwNDc5XDAwMFwwMDBcdTA0ODFcdTA0ODlcMDAwXDAwMFx1MDQ5MVx1MDQ5OSIrCisgICAgICAgICJcdTA0QTFcdTA0QTlcdTA0QjFcdTA0QjlcMDAwXDAwMFx1MDRDMVwwMDBcdTAxODhcdTAxQTBcdUE1QTVcMDA1XDAwMFx1MDRDOSIrCisgICAgICAgICJcdTA0RDFcMDAwXDAwMFx1MDREOVx1MDRFMVx1MDFCOFx1MDFEMFwwMDBcMDAwXHUwNEU5XHUwNEYxXDAwMFwwMDBcdTA0RjkiKworICAgICAgICAiXHUwNTAxXHUwMUU4XDAwMFwwMDBcdTA1MDlcdTA1MTFcdTA1MTlcdTA1MjFcdTA1MjlcdTA1MzFcMDAwXDAwMFx1MDUzOSIrCisgICAgICAgICJcdTA1NDFcMDAwXDAwMFx1MDU0OVx1MDU1MVx1MDU1OVx1MDU2MVx1MDU2OVx1MDU3MVwwMDBcMDAwXHUwNTc5XHUwNTgxIisKKyAgICAgICAgIlwwMDBcMDAwXHUwNTg5XHUwNTkxXDAwMFwwMDBcdTA1OTlcdTA1QTFcdTA1QTlcdTA1QjFcdTA1QjlcdTA1QzFcdTA1QzkiKworICAgICAgICAiXHUwNUQxXHUwNUQ5XHUwNUUxXDAwMFwwMDBcdTA1RTlcdTA1RjFcdTA1RjlcdTA2MDFcdTA2MDlcdTA2MTFcdTA2MTlcdTA2MjEiKworICAgICAgICAiXHUwNjI5XHUwNjMxXHUwNjM5XDA0Mlx1MDY0MVx1MDY0OVx1QTVBNVwwMTVcMDAwXHUwNjUxXHUwNjU5XHVBNUE1XDAwNiIrCisgICAgICAgICJcMDAwXHUwNjYxXHVBNUE1XDAxNFwwMDBcdTAyMDBcdTAyMjBcdTAyNDBcdTAyNjBcdTAyNzhcdTAyOTBcdTAyQThcdTAyQzAiKworICAgICAgICAiXHUwMkQ4XHUwNjY5XHUwNjcxXHUwNjc5XHUwNjgxXHUwNjg5XHUwNjkxXHUwNjk5XHUwNkExXHUwNkE5XHUwNkIxXHUwNkI5IisKKyAgICAgICAgIlx1MDZDMVx1MDZDOVx1MDZEMVx1MDZEOVx1MDZFMVwwMDBcdTA2RTlcdTA2RjFcdTA2RjlcdTA3MDFcdUE1QTVcMDA0XDAwMCIrCisgICAgICAgICJcdTA3MDlcdTA3MTFcdTA3MTlcdTA3MjFcdTA3MjlcdTA3MzFcdUE1QTVcMDA1XDAwMFx1MDJGMFx1MDMwOFx1MDMyMFx1MDczOSIrCisgICAgICAgICJcdTA3NDFcMDAwXDAwMFx1MDc0OVx1MDc1MVx1MDc1OVx1MDc2MVx1QTVBNVwwMDRcMDAwXHUwNzY5XHUwNzcxXHUwNzc5IisKKyAgICAgICAgIlx1MDc4MVx1MDc4OVx1MDc5MVx1MDc5OVx1MDdBMVx1MDdBOVx1MDdCMVx1MDdCOVx1MDdDMVx1MDdDOVx1MDdEMVx1MDdEOSIrCisgICAgICAgICJcdTA3RTFcdTA3RTlcdTA3RjFcdTA3RjlcdTA4MDFcdTA4MDlcdTA4MTFcdTA4MTlcdTA4MjFcdTA4MjlcdTA4MzFcdTA4MzkiKworICAgICAgICAiXHUwODQxXDAwMFwwMDBcdTA4NDlcdTA4NTFcdUE1QTVcMDA2XDAwMFx1MDg1OVx1MDg2MVx1MDg2OVx1MDg3MVx1MDg3OSIrCisgICAgICAgICJcdTA4ODFcdTA4ODlcdTA4OTFcdTA4OTlcdTA4QTFcdTA4QTlcdTA4QjFcdTA4QjlcdTA4QzFcdUE1QTVcMDM2XDAwMFx1MDhDOSIrCisgICAgICAgICJcdUE1QTVcMDM1XDAwMFx1MDMzOFx1MDM0OFx1MDFBOFx1MDM1OFx1MDM2OFx1MDM3OFx1MDM4OFx1MDM5OFx1MDNBOFx1QTVBNSIrCisgICAgICAgICJcMDM3XDAwMFx1MDNCOFx1MDNEMFx1MDNFOFx1MDQwMFx1MDQxOFx1MDQzMFwwMDBcMDAwXHUwNDQ4XHUwNDU4IFx1MDQ2OCIrCisgICAgICAgICJcdTA0NzhcdUE1QTVcMDMzXDAwMFwwMTNcMDIzXDAzMyMrXHUwMUJCMztDS1NbY1x1MDFCQlx1MDFCQmtcdTAxQkJzXHUwMUJCIisKKyAgICAgICAgIntcdTAwODNcdTAxQzNcdUE1QTVcMDA0XHUwMUNCXHUwMUMzXHUwMDhCXHVBNUE1XDAwNVx1MDFDQlx1MDFEM1x1MDFEMyIrCisgICAgICAgICJcdTAwOTNcdTAwOUJcdTAwQTNcdTAwQUJcdTAwQjNcdTAwQkJcdUE1QTVcMDA0XHUwMUNCXHUwMEMzXHUwMENCXHUwMUNCIisKKyAgICAgICAgIlx1MDBEM1x1MDBEQlx1MDFDQlx1MDFDQlx1QTVBNVwwMDRcdTAxREJcdTAwRTNcdUE1QTVcMDA0XHUwMUNCXHUwMUJCXHUwMUJCIisKKyAgICAgICAgIlx1MDFCQlx1ODdCOFx1ODdDOFx1MDBFQlx1ODdEOFx1ODdFOFx1MDBGM1x1MDFCQlx1MDFDQlx1MDFDQlx1MDFDQlx1MDFCQiIrCisgICAgICAgICJcdTAxQkJcdTAxQkJcdTAxQ0JcdTAxQ0JcdUE1QTVcMDIxXDAwMFx1MDFFM1x1MDFFM1x1MDFFQlx1QTVBNVwwMjFcMDAwIisKKyAgICAgICAgIlx1ODgwMFx1QTVBNVwwMDVcMDAwXHUwNDg4XDAwMFwwMDBcMDAwXHU4ODEwXHVBNUE1XDAwNVwwMDBcdTAwQzhcdTA0QTAiKworICAgICAgICAiXDAwMFx1ODgyMFx1QTVBNVwwMTFcMDAwXHUwOEQxXDAwMFwwMDBcMDAwXHUwOEQ5XDAwMFx1MDhFMVwwMDBcdTA4RTlcdUE1QTUiKworICAgICAgICAiXDAwNVwwMDBcdTA4RjFcMDAwXHUwOEY5XDAwMFwwMDBcMDAwXHUwOTAxXDAwMFwwMDBcMDAwXHUwOTA5XDAwMFwwMDBcdTA5MTEiKworICAgICAgICAiXDAwMFx1MDkxOVwwMDBcMDAwXHUwOTIxXDAwMFwwMDBcMDAwXHUwOTI5XDAwMFx1MDkzMVwwMDBcdTA5MzlcdUE1QTVcMDA1IisKKyAgICAgICAgIlwwMDBcdTA5NDFcMDAwXHUwOTQ5XDAwMFwwMDBcMDAwXHUwOTUxXDAwMFwwMDBcMDAwXHUwOTU5XHUwOTYxXHUwOTY5XDAwMCIrCisgICAgICAgICJcMDAwXHUwOTcxXDAwMFx1MDRDMFx1MDREMDJcdTA0RTBcdTA0RjhcdTA1MTBcdTA1MjBcdUE1QTVcMDMxXDAwMFx1MDUzMCIrCisgICAgICAgICJcdTA1NDBcdTA1NTBcdUE1QTVcMDIzXDAwMFx1MDk3OVx1QTVBNVwwMTFcMDAwXHUwOTgxXDAwMFwwMDBcdTA5ODlcMDAwIisKKyAgICAgICAgIlx1MDk5MVx1MDk5OVx1MDlBMVx1MDlBOVwwMDBcdTA5QjFcMDAwXDAwMFwwMDBcdTA5QjlcdUE1QTVcMDA0XDAwMFx1MDlDMSIrCisgICAgICAgICJcMDAwXDAwMFwwMDBcdTA5QzlcMDAwXDAwMFwwMDBcdTA5RDFcMDAwXHUwOUQ5XDAwMFwwMDBcdTA5RTFcMDAwXDAwMFx1MDlFOSIrCisgICAgICAgICJcMDAwXHUwOUYxXHUwOUY5XHUwQTAxXHUwQTA5XDAwMFx1MEExMVwwMDBcMDAwXDAwMFx1MEExOVx1QTVBNVwwMDRcMDAwIisKKyAgICAgICAgIlx1MEEyMVwwMDBcMDAwXDAwMFx1MEEyOVwwMDBcMDAwXDAwMFx1MEEzMVwwMDBcdTBBMzlcdUE1QTVcMDEwXDAwMFx1MEE0MSIrCisgICAgICAgICJcdUE1QTVcMDM1XDAwMFx1MEE0OVx1MEE1MVx1QTVBNVwwMTVcMDAwXHVBNUE1XDAwNFx1MDFCQlx1QTVBNTFcMDAwXHUwQTU5IisKKyAgICAgICAgIlx1MEE2MVx1QTVBNVwwMTZcMDAwXHUwQTY5XHUwQTcxXHVBNUE1XDAzNVwwMDBcdTA1NjBcdUE1QTVcMDExXDAwMFx1MDFDQiIrCisgICAgICAgICJcdUE1QTVcMDA0XHUwMUJCXHUwMUNCXHUwMUJCXHUwMUJCXHUwMUJCXHUwMUYzXHUwMUNCXHVBNUE1XDAwNlx1MDFCQlwwMDAiKworICAgICAgICAiXHVBNUE1XDAwNVx1MDFDQlx1MDFCQlx1MDFCQlx1MDFDQlx1MDFCQlx1MDFCQlx1MDFGM1x1MDFGQlx1MDFCQlx1MDIwMyIrCisgICAgICAgICJcdTAyMEJcdTAyMTNcdTAyMUJcdTAwRkJcdTAyMjNcdTAyMkJcdTAyMzNcdTAyM0JcdTAyNDNcMDAwXHUwMjRCXHUwMjUzIisKKyAgICAgICAgIlx1MDI1QlwwMDBcdTAyNjNcMDAwXHUwMjZCXHUwMjczXDAwMFx1MDFCQlx1QTVBNVwwMjRcMDAwXHUwQTc5XHVBNUE1XDAxMCIrCisgICAgICAgICJcMDAwXHUwQTgxXHUwQTg5XDAwMFwwMDBcMDAwXHUwQTkxXHVBNUE1IFwwMDBcdTBBOTlcMDAwXHUwQUExXHUwMjdCXHUwMjgzIisKKyAgICAgICAgIlx1MDI4Qlx1MDI5M1x1MDI5Qlx1MDJBM1x1MDJBQlx1MDJCM1x1MDEwM1x1MDEwQlx1MDExM1x1QTVBNVwwMzJcMDAwXHUwMkJCIisKKyAgICAgICAgIlx1QTVBNVwwMDRcMDAwXHUwNTc4XHUwNTkwXHUwNUE4XHUwNUMwXHVBNUE1XDAxMFwwMDBcdTBBQTlcdUE1QTVcMDIwXDAwMCIrCisgICAgICAgICJcdTBBQjFcMDAwXDAwMFx1MEFCOVx1QTVBNVwwMDdcdTAxQkJcMDAwXDAwMFx1QTVBNVwwMDRcdTAxQkJcdTAxQ0JcdTAxQkIiKworICAgICAgICAiXDAwMFwwMDBcdTAxQkJcdTAxQkJcMDAwXHUwMUNCXHUwMUJCXHUwMUJCXHUwMUNCXHVBNUE1I1wwMDBcdTAyQzNcdUE1QTUiKworICAgICAgICAiXDAzNlwwMDBcdTAxQkJcdTAxQ0JcdTAxQkJcdTAxQkJcdTAxQ0JcdTAxQkJcdTAxQkJcdTAxQ0JcdTAxQ0JcdTAxQ0JcdTAxQkIiKworICAgICAgICAiXHUwMUNCXHUwMUNCXHUwMUJCXHUwMUNCXHUwMUJCXHUwMUJCXHUwMUJCXHUwMUNCXHUwMUJCXHUwMUNCXHUwMUJCXHUwMUNCIisKKyAgICAgICAgIlx1MDFCQlx1MDFDQlx1MDFCQlx1MDFCQlx1QTVBNVwwMzVcMDAwXHUwQUMxXHVBNUE1XDAwN1wwMDBcdTBBQzlcMDAwXDAwMCIrCisgICAgICAgICJcdTBBRDFcdUE1QTVcMDEwXDAwMFx1MDExQlx1QTVBNVwwMjBcMDAwXHUwMkNCXDAwMFwwMDBcMDAwXHUwMUJCXHUwMUNCIisKKyAgICAgICAgIlx1MDFCQlx1MDFCQlwwMDBcMDAwXDAwMFx1ODgzMFx1ODg0OFx1ODg2MFx1ODg3OFx1ODg5MFx1ODhBOFx1ODhDMFx1ODhEOCIrCisgICAgICAgICJcdUE1QTVcMDM0XDAwMFx1MDJEM1wwMDBcdTAxMjNcdUE1QTVcMDEwXDAwMFx1MEFEOVx1QTVBNVwwMDVcMDAwXHUwMkNCIisKKyAgICAgICAgIlx1QTVBNVwwMTFcMDAwXHUwMTJCXHVBNUE1XDAwNFwwMDBcdTg4RjBcdTg5MDhcMDAwXHU4OTIwXHVBNUE1XDAyM1wwMDAiKworICAgICAgICAiXHU4OTM4XDAwMFwwMDBcdTg5NTBcdUE1QTVcMDA1XDAwMFx1MDJEM1x1QTVBNVwwMjBcMDAwXHUwMkNCXHVBNUE1XDAxMyIrCisgICAgICAgICJcMDAwXHU4OTY4XHU4OTgwXHU4OTk4XDAwMFwwMDBcdTg5QjBcdUE1QTVcMDM1XDAwMFx1MDJEM1x1QTVBNVwwMjBcMDAwIisKKyAgICAgICAgIlx1MDJDQlx1QTVBNS5cMDAwXHUwMkQzXDAwMFx1MDEzM1x1QTVBNVwwMTBcMDAwXHUwQUUxXHVBNUE1XDAwNVwwMDBcdTAyQ0IiKworICAgICAgICAiXHVBNUE1XDAxMFwwMDBcdTAxM0JcdTAxNDNcdUE1QTVcMDA0XDAwMFx1ODlDOFx1ODlFMFx1QTVBNVwwMjRcMDAwXHUwQUU5IisKKyAgICAgICAgIlx1QTVBNStcMDAwXHUwMTRCXHVBNUE1XDAwN1wwMDBcdTBBRjFcdTBBRjlcdUE1QTVcMDA1XDAwMFx1MDJDQlx1QTVBNSIrCisgICAgICAgICJcMDExXDAwMFx1MDE1M1x1QTVBNVwwMTZcMDAwXHUwQjAxXHVBNUE1XDAwNlwwMDBcdTAyQ0JcdUE1QTVcMDA3XDAwMFx1MDJEQiIrCisgICAgICAgICJcdTAxNUJcdUE1QTUoXDAwMFx1MEIwOVwwMDBcMDAwXHUwMTYzXDAwMFwwMDBcMDAwXHUwQjExXDAwMFwwMDBcMDAwXHUwQjE5IisKKyAgICAgICAgIlwwMDBcMDAwXHUwMkNCXHVBNUE1XDAwN1wwMDBcdTAxNkJcdTAxNzNcdUE1QTUnXDAwMFx1MDE3Qlx1QTVBNVwwMDdcMDAwIisKKyAgICAgICAgIlx1MEIyMVx1MEIyOVx1QTVBNVwwMDVcMDAwXHUwMkNCXHVBNUE1XDAxMVwwMDBcdTAxODNcdUE1QTVcMDIyXDAwMFx1MDE4QiIrCisgICAgICAgICJcdUE1QTVcMDA0XDAwMFx1MDE5M1x1QTVBNVwwMTFcMDAwXHUwQjMxXHUwQjM5XDAwMFx1MEI0MVwwMDBcMDAwXHUwMTlCIisKKyAgICAgICAgIlx1QTVBNVwwMjNcMDAwXHUwNUQ4XHVBNUE1XDAwNFwwMDBcdTAyRTNcdTAyRTNcdTAyQ0JcdUE1QTVcMDE1XDAwMFx1QTVBNSIrCisgICAgICAgICJcMDA0XHUwMkVCXHVBNUE1J1wwMDBcdTA1RjBcdUE1QTVcMDA0XDAwMFx1MDJGM1x1MDJGM1x1QTVBNVwwMTZcMDAwXHVBNUE1IisKKyAgICAgICAgIlwwMDRcdTAyRkJcdUE1QTVcMDIwXDAwMFx1MDYwOFx1MDYyMFx1QTVBNVwwMTZcMDAwXHUwNjM4XHVBNUE1XDAxM1wwMDAiKworICAgICAgICAiXHUwMUNCXHUwMUNCXHVBNUE1XDAzM1wwMDBcdTAxQ0JcMDAwXHUwMUNCXDAwMFx1MDMwM1x1QTVBNVwwMTFcMDAwXHU4OUY4IisKKyAgICAgICAgIlx1QTVBNVwwMTFcMDAwXHU4QTEwXHVBNUE1XDAwNFwwMDBcdThBMjhcdUE1QTVcMDA0XDAwMFx1OEE0MFx1QTVBNVwwMDQiKworICAgICAgICAiXDAwMFx1OEE1OFx1QTVBNVwwMTRcMDAwXHU4QTcwXHVBNUE1XDAwN1wwMDBcdTAzMEJcdTAzMTNcdThBODhcdTAzMUJcdThBQTAiKworICAgICAgICAiXHU4QUI4XHUwNjQ4XHU4QUQwXHUwNjY4XHVBNUE1XDAwNFx1MDMxM1wwMDBcMDAwXHUwMzEzXHU4QUU4XHUwMUJCXHUwMUJCIisKKyAgICAgICAgIlx1MDJDQlwwMDBcdTAxQkJcdTAxQkJcdUE1QTVcMDEzXDAwMFx1OEIwMFx1QTVBNVwwMTFcMDAwXHU4QjE4XHVBNUE1XDAwNCIrCisgICAgICAgICJcMDAwXHU4QjMwXHVBNUE1XDAwNFwwMDBcdThCNDhcdUE1QTVcMDA0XDAwMFx1OEI2MFx1QTVBNVwwMTRcMDAwXHU4Qjc4IisKKyAgICAgICAgIlx1QTVBNVwwMTRcMDAwXHUwMUNCXHVBNUE1XDAzNlwwMDBcdTBCNDlcdUE1QTVcMDEwXDAwMFx1MDFBM1x1QTVBNVwwMTAiKworICAgICAgICAiXDAwMFx1MDJEM1wwMDBcdTAyQ0JcdUE1QTVcMDA2XDAwMFx1QTVBNSBcMDA0XDAwMFx1QTVBNUVcMDA1XDAwMFx1QTVBNSIrCisgICAgICAgICJTXDAwNlx1QTVBNVwwMzBcMDAwXHUwMkNCXHVBNUE1XDAyNlwwMDBcdTAxRkJcdUE1QTVcMDI2XDAwMFx1MEI1MVx1MEI1OSIrCisgICAgICAgICJcdTBCNjFcdTBCNjlcdUE1QTVcMDA2XDAwMFx1MEI3MVx1MEI3OVx1MEI4MVx1MEI4OVx1MEI5MVx1MEI5OVwwMDBcMDAwIisKKyAgICAgICAgIlx1MEJBMVx1MEJBOVx1MEJCMVx1MEJCOVx1MEJDMVx1MEJDOVx1MEJEMVx1MEJEOVx1MEJFMVx1MEJFOVx1QTVBNVwwMDQiKworICAgICAgICAiXDAwMFx1MEJGMVx1MEJGOVx1MEMwMVx1MEMwOVx1MEMxMVx1MEMxOVx1MEMyMVx1MEMyOVwwMDBcMDAwXHUwQzMxXHUwQzM5IisKKyAgICAgICAgIlx1MEM0MVx1MEM0OVx1MEM1MVx1MEM1OVx1MEM2MVx1MEM2OVx1MEM3MVx1MEM3OVx1MEM4MVx1MEM4OVx1MEM5MVx1MEM5OSIrCisgICAgICAgICJcdTBDQTFcdTBDQTlcdTBDQjFcdTBDQjlcdTBDQzFcdTBDQzlcdTBDRDFcdTBDRDlcdTBDRTFcdTBDRTlcMDAwXDAwMFx1MENGMSIrCisgICAgICAgICJcdTBDRjlcdTBEMDFcdTBEMDlcdTBEMTFcdTBEMTlcdTBEMjFcdTBEMjlcdTBEMzFcdTBEMzlcdTBENDFcdTBENDlcdTBENTEiKworICAgICAgICAiXHUwRDU5XHUwRDYxXHUwRDY5XHVBNUE1XDAwNFwwMDBcdTBENzFcdTBENzlcdTBEODFcdTBEODlcdTBEOTFcdTBEOTlcdTBEQTEiKworICAgICAgICAiXHUwREE5XHUwREIxXHUwREI5XHUwREMxXHUwREM5XHUwREQxXHUwREQ5XHUwREUxXHUwREU5XHUwREYxXHUwREY5XHUwRTAxIisKKyAgICAgICAgIlx1MEUwOVx1MEUxMVx1MEUxOVx1MEUyMVx1MEUyOVx1MEUzMVx1MEUzOVx1MEU0MVx1MEU0OVx1MEU1MVx1MEU1OVx1MEU2MSIrCisgICAgICAgICJcdTBFNjlcdTBFNzFcdTBFNzlcdTBFODFcdTBFODlcdTBFOTFcdTBFOTlcMDAwXDAwMFx1MEVBMVx1MEVBOVx1MEVCMVx1MEVCOSIrCisgICAgICAgICJcdTBFQzFcdTBFQzlcdTBFRDFcdTBFRDlcdUE1QTVcMDA2XDAwMFx1MEVFMVx1MEVFOVx1MEVGMVx1MEVGOVx1QTVBNVwwMDQiKworICAgICAgICAiXDAwMFx1MEYwMVx1MEYwOVx1MEYxMVx1MEYxOVx1MDY4OFx1MDZBMFx1QTVBNVwwMDRcMDAwXHUwRjIxXHUwRjI5XHUwRjMxIisKKyAgICAgICAgIlx1MEYzOVx1MEY0MVx1MEY0OVx1MEY1MVx1MEY1OVx1MEY2MVx1MEY2OVx1MEY3MVx1MEY3OVx1MEY4MVx1MEY4OVx1MEY5MSIrCisgICAgICAgICJcdTBGOTlcdTBGQTFcdTBGQTlcdTBGQjFcdTBGQjlcdTBGQzFcdTBGQzlcdTBGRDFcdTBGRDlcdTBGRTFcdTBGRTlcdTBGRjEiKworICAgICAgICAiXHUwRkY5XHUxMDAxXHUxMDA5XHUxMDExXHUxMDE5XHUxMDIxXHUxMDI5XHUxMDMxXHUxMDM5XHUxMDQxXHUxMDQ5XHUxMDUxIisKKyAgICAgICAgIlx1MTA1OVx1MTA2MVx1MTA2OVx1MTA3MVx1MTA3OVx1MTA4MVx1MTA4OVx1MTA5MVx1MTA5OVx1MTBBMVx1MTBBOVx1MTBCMSIrCisgICAgICAgICJcdTEwQjlcdTEwQzFcdTEwQzlcdTEwRDFcdTEwRDlcdTEwRTFcdTEwRTlcdTEwRjFcdTEwRjlcdTExMDFcdTExMDlcdTExMTEiKworICAgICAgICAiXHUxMTE5XHUxMTIxXHUxMTI5XHUxMTMxXHUxMTM5XHUxMTQxXHUxMTQ5XHUxMTUxXHUxMTU5XHUxMTYxXHUxMTY5XHUxMTcxIisKKyAgICAgICAgIlx1MTE3OVx1MTE4MVx1MTE4OVx1MTE5MVx1MTE5OVx1MTFBMVx1MTFBOVx1MTFCMVx1MTFCOVwwMDBcMDAwXHUxMUMxXHUxMUM5IisKKyAgICAgICAgIlx1MTFEMVx1MTFEOVx1QTVBNVwwMDZcMDAwXHUxMUUxXHUxMUU5XHUxMUYxXHUxMUY5XHUxMjAxXHUxMjA5XHUxMjExXHUxMjE5IisKKyAgICAgICAgIlx1MTIyMVx1MTIyOVx1MTIzMVx1MTIzOVx1MTI0MVx1MTI0OVx1MTI1MVx1MTI1OVx1MTI2MVx1MTI2OVx1QTVBNVwwMDYiKworICAgICAgICAiXDAwMFx1MTI3MVx1MTI3OVx1QTVBNVwwMDZcMDAwXHUxMjgxXHUxMjg5XHUxMjkxXHUxMjk5XHUxMkExXHUxMkE5XHUxMkIxIisKKyAgICAgICAgIlx1MTJCOVx1MTJDMVx1MTJDOVx1MTJEMVx1MTJEOVx1MTJFMVx1MTJFOVx1MTJGMVx1MTJGOVx1MTMwMVx1MTMwOVx1QTVBNSIrCisgICAgICAgICJcMDA2XDAwMFx1MTMxMVx1MTMxOVx1QTVBNVwwMDZcMDAwXHUxMzIxXHUxMzI5XHVBNUE1XDAwNlwwMDBcdTEzMzFcdTEzMzkiKworICAgICAgICAiXHVBNUE1XDAwNlwwMDBcdTEzNDFcdTEzNDlcdUE1QTVcMDA3XDAwMFx1MTM1MVx1QTVBNVwwMDZcMDAwXHUxMzU5XHUxMzYxIisKKyAgICAgICAgIlx1MTM2OVx1MTM3MVx1MTM3OVx1MTM4MVx1MTM4OVx1MTM5MVx1MTM5OVx1MTNBMVx1MTNBOVx1MTNCMVx1MTNCOVx1MTNDMSIrCisgICAgICAgICJcdTEzQzlcdTEzRDFcdTEzRDlcdThCOTBcMDAwXHU4QkE4XHUxM0UxXHU4QkMwXDAwMFx1OEJEOFwwMDBcdThCRjBcMDAwIisKKyAgICAgICAgIlx1OEMwOFx1MTNFOVx1OEMyMFwwMDBcMDAwXHUxM0YxXHUxM0Y5XHVBNUE1XDAwNlwwMDBcdTE0MDFcdTE0MDlcdUE1QTUiKworICAgICAgICAiXDAwNlwwMDBcdTE0MTFcdTE0MTlcdUE1QTVcMDA2XDAwMFx1MTQyMVx1MTQyOVx1QTVBNVwwMDZcMDAwXHUxNDMxXHUxNDM5IisKKyAgICAgICAgIlx1QTVBNVwwMDZcMDAwXHUxNDQxXHUxNDQ5XHVBNUE1XDAxMVwwMDBcdTE0NTFcMDAwXDAwMFx1MTQ1OVx1QTVBNVwwMDQiKworICAgICAgICAiXDAwMFx1OEMzOFx1MTQ2MUBcdThDNTBCXHUwNkI4XHUwNkQwXDAwMFx1MTQ2OVwwMDBcMDAwXHUxNDcxXDAwMFwwMDBcdThDNjAiKworICAgICAgICAiXDAwMFx1OEM3OFx1MTQ3OVx1MDZGMFx1MDcxMFx1MDczMFwwMDBcMDAwXDAwMFx1OEM5MFx1QTVBNVwwMDdcMDAwXHU4Q0IwIisKKyAgICAgICAgIlwwMDBcdTA3NTBcdTA3NzBcdTA3OTBcMDAwXDAwMFwwMDBcdThDQzhcdUE1QTVcMDA3XDAwMFx1OENFOFwwMDBcdTA3QjAiKworICAgICAgICAiXHVBMjkyXHU4RDAwXDAwMFwwMDBcMDAwXHUxNDgxXDAwMFwwMDBcdTE0ODlcMDAwXDAwMFx1OEQxMFwwMDBcdThEMjhcdTE0OTEiKworICAgICAgICAiXHVBMkEyWlwwMDBcdUEyQjJcdUEyQzJcdUE1QTVcMDExcFx1QTVBNVwwMDZcMDAwXHUwN0QwXHVBNUE1XDAwNVwwMDBcdTA3RTAiKworICAgICAgICAiXHVBNUE1XDAxNFwwMDBcdTA3RjhcdTA4MDhcdTA4MjBcdUE1QTVcMDEwXDAwMHBcMDAwXDAwMFwwMDBcdTA4NDBcdTA4NTgiKworICAgICAgICAiXDAwMFx1MDg3OFx1MDg5MFx1QTVBNVwwMDRcMDAwXHUwOEIwXDAwMFx1MDhDOFx1QTVBNVwwMTFcMDAwXHUwOEUwXHUwOEY4IisKKyAgICAgICAgIlx1QTVBNSZcMDAwXHUwOTEwXDAwMFwwMDBcMDAwXHUwMTM4XHUwOTIwXHUwOTMwXHUwOTQwXHUwOTUwXHUwOTYwXHUwOTcwIisKKyAgICAgICAgIlx1MDk4MFx1MDk5MFx1MDlBMFx1MDlCMFx1MDFGMFx1MDkxMFx1MDEwOFx1MDBBOFx1MDBCOFx1MDEzOFx1MDkyMFx1MDkzMCIrCisgICAgICAgICJcdTA5NDBcdTA5NTBcdTA5NjBcdTA5NzBcdTA5ODBcdTA5OTBcdTA5QTBcdTA5QjBcdUE1QTVcMDMxXDAwMFx1MDlDMFx1QTVBNSIrCisgICAgICAgICInXDAwMFx1MDFCQlx1MDFCQlx1MDFEQlx1MDFEQlx1QTVBNVwwMDRcdTAxQkJcdTAxREJcdTAxREJcdTAxREJcdTAxQkIiKworICAgICAgICAiXHUwMUJCXHVBNUE1XDAwNFwwMDBcdTAxQkJcdUE1QTVcMDM2XDAwMFx1MDlEOFx1MDlGOFx1MEExOFx1MEEyOFwwMDBcdTBBNDAiKworICAgICAgICAiXHUwQTYwXHUwQTgwXDAwMFx1MEE5MFx1MEFBOFx1MEFCOFx1MEFCOFx1MEFCOFx1MDMzOFx1MEFDOFx1MEFEOFx1MEFEOCIrCisgICAgICAgICJcdTBBRThcdTA0NThcMDAwXHUwQUY4XHUwQjA4XDAwMFwwMDBcdTBCMjBcdTBCMzBcdTBCNDBcdTBCNDBcdTBCNDBcMDAwIisKKyAgICAgICAgIlwwMDBcdTBCNTBcdTBCNjhcdTBCODhcMDAwXHUwMkY4XDAwMFx1OEQ0MFwwMDBcdTAyRjhcMDAwXHU4RDUwXHU4RDYwXHUwQkEwIisKKyAgICAgICAgIlx1MEExOFwwMDBcdTBCQjBcdTBCQzBcdTBBOThcMDAwXHUwQjU4XHUwMTE4XHUwQkQwXHUwQkUwXHUwQkYwXHUwQzAwXHUwQzEwIisKKyAgICAgICAgIlx1QTVBNVwwMzFcMDAwXHUwQzIwXHUwQzQwXHUwQzYwXHUwQzgwXHUwQ0EwXHUwQ0MwXHUwQ0UwXHUwRDAwXHUwRDIwXHUwRDQwIisKKyAgICAgICAgIlx1MEQ2MFx1MEQ4MFx1MERBMFx1MEFEOFx1MERCOFx1MEREMFx1MERGMFx1MERGOFx1MEUwOFx1MEUyMFx1MEU0MFx1MEU2OCIrCisgICAgICAgICJcdTBFNzBcdTBFODBcdTBFOThcdTBBRThcdTBBMThcdTBFQjhcdTBCNThcdTBDMTBcdTBFQzhcdTBFRTBcdTBGMDBcdTBGMDgiKworICAgICAgICAiXHUwRjE4XHUwRjMwXHUwRjUwXHUwRjc4XHUwNDY4XHUwRjkwXHUwRkE4XHUwNDU4XHUwOUU4XHUwRkM4XHUwRkQ4XHVBNUE1IisKKyAgICAgICAgIlwwMjBcMDAwXHUxNDk5XDAwMFx1MTRBMVwwMDBcdTE0QTlcdUE1QTVcMDMzXDAwMFx1MTRCMVwwMDBcdTE0QjlcMDAwXHUxNEMxIisKKyAgICAgICAgIlx1QTVBNVwwMTZcMDAwXHUxNEM5XHVBNUE1XDAwNFwwMDBcdTE0RDFcMDAwXDAwMFx1MTREOVx1QTVBNVwwMjdcMDAwXHUxNEUxIisKKyAgICAgICAgIlwwMDBcdTE0RTlcdUE1QTVcMDA2XDAwMFx1MEZFOFx1MTAwMFwwMDBcdTEwMjBcdTEwMzhcdUE1QTVcMDEzXDAwMFx1MTRGMSIrCisgICAgICAgICJcdUE1QTVcMDA2XDAwMFx1MTRGOVwwMDBcdTE1MDFcMDAwXDAwMFx1MTUwOVx1QTVBNVwwMDRcMDAwXHUxNTExXHVBNUE1IisKKyAgICAgICAgIlwwMjNcMDAwXHUxNTE5XDAwMFwwMDBcdTE1MjFcdTE1MjlcdUE1QTVcMDE0XDAwMFx1MTUzMVx1MTUzOVwwMDBcMDAwXHUxNTQxIisKKyAgICAgICAgIlx1MTU0OVwwMDBcMDAwXHUxNTUxXHUxNTU5XHUxNTYxXHUxNTY5XHVBNUE1XDAwNFwwMDBcdTE1NzFcdTE1NzlcMDAwXDAwMCIrCisgICAgICAgICJcdTE1ODFcdTE1ODlcdUE1QTVcMDExXDAwMFx1MTU5MVx1MTU5OVx1QTVBNVwwMTdcMDAwXHUxNUExXHVBNUE1XDAwNVwwMDAiKworICAgICAgICAiXHUxNUE5XHUxNUIxXDAwMFx1MTVCOVx1QTVBNVwwMDZcMDAwXHUxNUMxXHUxNUM5XHUxNUQxXHUxNUQ5XHVBNUE1XDAyMyIrCisgICAgICAgICJcMDAwXHU4RDc4XHU4RDg4XHVBNUE1XDAyNVwwMDBcdTAxMDhcdTAwQThcdTAwQjhcdTAxMzhcdTA5MjBcdTA5MzBcdTA5NDAiKworICAgICAgICAiXHUwOTUwXHUwOTYwXHUxMDU4XHUxMDcwXHUxMDg4XHUxMEEwXHUxMEI4XHUxMEQwXHUxMEU4XHUxMTAwXHUxMTE4XHUxMTMwIisKKyAgICAgICAgIlx1MTE0OFx1MTE2MFx1MTE4MFx1MTFBMFx1MTFDMFx1MTFFMFx1MTIwMFx1MTIyMFx1MTI0MFx1MTI2MFx1MTI4MFx1MTJBOCIrCisgICAgICAgICJcdTEyRDBcdTEyRjhcdTEzMjBcdTEzNDhcdTEzNzBcdTEzOThcdTEzQzBcdTEzRThcdTE0MTBcdTE0MzhcdTE0NTBcdTE0NjgiKworICAgICAgICAiXHUxNDgwXHUxNDk4XHUxNEIwXHUxNEM4XHUxNEUwXHUxNEY4XHUxNTEwXHUxNTMwXHUxNTUwXHUxNTcwXHUxNTkwXHUxNUIwIisKKyAgICAgICAgIlx1MTVEMFx1MTVGMFx1MTYxMFx1MTYzMFx1MTY1MFx1MTY3MFx1MTY5MFx1MTZCMFx1MTZEMFx1MTZGMFx1MTcxMFx1MTczMCIrCisgICAgICAgICJcdTE3NTBcdTE3NzBcdTE3OTBcdTE3QjBcdTE3RDBcdTE3RjBcdTE4MTBcdTE4MzBcdTE4NTBcdTE4NzBcdTE4OTBcdTE4QjAiKworICAgICAgICAiXHUxOEQwXHUxOEYwXHUxOTEwXHUxOTMwXHUxOTUwXHUxOTcwXHUxOTkwXHUxOUIwXHUwQkEwXHUwQTE4XHUwRUI4XHUwQkMwIisKKyAgICAgICAgIlx1MEE5OFx1MTlDMFx1MEFCOFx1MEFEOFx1MDE5MFx1MTlEMFx1MEFFOFx1MEI1OFx1MEFGOFx1MTlFMFx1MEIyMFx1MEIzMCIrCisgICAgICAgICJcdTBCNDBcdTE5RjBcdTFBMDBcdTFBMTBcdTBERjhcdTFBMjBcdTBFNzBcdTFBMzBcdTAyRjhcdTAwODBcdTFBNDBcdTA5RTgiKworICAgICAgICAiXHUwRkM4XHUwQkIwXHUxQTUwXHUwQUE4XHUwMzM4XHUwQzEwXHUwMUE4XHUxQTYwXHUwNDU4XHUwRkQ4XHUwMUYwXHUwMTE4IisKKyAgICAgICAgIlx1MUE3MFx1MUE4MFx1MDM1OCBcdTFBOTBcdTBBNzBcdTBGMDhcdTAzOThcdTA0NjhcdTAzQThcdTAzMTBcdTA5MTBcdUE1QTUiKworICAgICAgICAiNFwwMDBcdTFBQTBcdUE1QTVcMDIzXDAwMFx1MUFCMFx1QTVBNVwwMTRcMDAwXHUxQUMwXHUxQUQwXHUxQUUwXHUxQUYwIisKKyAgICAgICAgIlx1MUIwMFx1MUIxMFx1MUIyMFx1MUIzMFx1MUI0MFx1MUI1MFx1MUI2MFx1MUI3MFx1MUI4MFx1MUI5MFx1MUJBMFx1MUJCMCIrCisgICAgICAgICJcdTFCQzBcdTFCRDBcdTFCRTBcdTFCRjBcdTFDMDBcdTFDMTBcdTFDMjBcdTFDMzBcdTFDNDBcdTFDNTBcdTFDNjBcdTFDNzAiKworICAgICAgICAiXHUxQzgwXHUxQzkwXHUxQ0EwXHUxQ0IwXHUxQ0MwXHUxQ0QwXHUxQ0UwXHUxQ0YwXHUxRDAwXHUxRDEwXHUxRDIwXHUxRDMwIisKKyAgICAgICAgIlx1MUQ0MFx1MUQ1MFx1MUQ2MFx1MUQ3MFx1MUQ4MFx1MUQ5MFx1MURBMFx1MURCMFx1MURDMFx1MUREMFx1MURFMFx1MURGMCIrCisgICAgICAgICJcdTFFMDBcdTFFMTBcdTFFMjBcdTFFMzBcdTFFNDBcdTFFNTBcdTFFNjBcdTFFNzBcdTFFODBcdTFFOTBcdTFFQTBcdTFFQjAiKworICAgICAgICAiXHUxRUMwXHUxRUQwXHUxRUUwXHUxRUYwXHUxRjAwXHUxRjEwXHUxRjIwXHUxRjMwXHUxRjQwXHUxRjUwXHUxRjYwXHUxRjcwIisKKyAgICAgICAgIlx1MUY4MFx1MUY5MFx1MUZBMFx1MUZCMFx1MUZDMFx1MUZEMFx1MUZFMFx1MUZGMFx1MjAwMFx1MjAxMFx1MjAyMFx1MjAzMCIrCisgICAgICAgICJcdTIwNDBcdTIwNTBcdTIwNjBcdTIwNzBcdTIwODBcdTIwOTBcdTIwQTBcdTIwQjBcdTIwQzBcdTIwRDBcdTIwRTBcdTIwRjAiKworICAgICAgICAiXHUyMTAwXHUyMTEwXHUyMTIwXHUyMTMwXHUyMTQwXHUyMTUwXHUyMTYwXHUyMTcwXHUyMTgwXHUyMTkwXHUyMUEwXHUyMUIwIisKKyAgICAgICAgIlx1MjFDMFx1MjFEMFx1MjFFMFx1MjFGMFx1MjIwMFx1MjIxMFx1MjIyMFx1MjIzMFx1MjI0MFx1MjI1MFx1MjI2MFx1MjI3MCIrCisgICAgICAgICJcdTIyODBcdTIyOTBcdTIyQTBcdTIyQjBcdTIyQzBcdTIyRDBcdTIyRTBcdTIyRjBcdTIzMDBcdTIzMTBcdTIzMjBcdTIzMzAiKworICAgICAgICAiXHUyMzQwXHUyMzUwXHUyMzYwXHUyMzcwXHUyMzgwXHUyMzkwXHUyM0EwXHUyM0IwXHUyM0MwXHUyM0QwXHUyM0UwXHUyM0YwIisKKyAgICAgICAgIlx1MjQwMFx1MjQxMFx1MjQyMFx1MjQzMFx1MjQ0MFx1MjQ1MFx1MjQ2MFx1MjQ3MFx1MjQ4MFx1MjQ5MFx1MjRBMFx1MjRCMCIrCisgICAgICAgICJcdTI0QzBcdTI0RDBcdTI0RTBcdTI0RjBcdTI1MDBcdTI1MTBcdTI1MjBcdTI1MzBcdTI1NDBcdTI1NTBcdTI1NjBcdTI1NzAiKworICAgICAgICAiXHUyNTgwXHUyNTkwXHUyNUEwXHUyNUIwXHUyNUMwXHUyNUQwXHUyNUUwXHUyNUYwXHUyNjAwXHUyNjEwXHUyNjIwXHUyNjMwIisKKyAgICAgICAgIlx1MjY0MFx1MjY1MFx1MjY2MFx1MjY3MFx1MjY4MFx1MjY5MFx1MjZBMFx1MjZCMFx1MjZDMFx1MjZEMFx1MjZFMFx1MjZGMCIrCisgICAgICAgICJcdTI3MDBcdTI3MTBcdTI3MjBcdTI3MzBcdTI3NDBcdTI3NTBcdTI3NjBcdTI3NzBcdTI3ODBcdTI3OTBcdTI3QTBcdTI3QjAiKworICAgICAgICAiXHUyN0MwXHUyN0QwXHUyN0UwXHUyN0YwXHUyODAwXHUyODEwXHVBNUE1XDAxMlwwMDBwXHVBNUE1KVwwMDBcdTAzMjNcdTAxRkIiKworICAgICAgICAiXHUwMUMzXHUwMUYzXHUwMzJCXHUwMzJCXHVBNUE1XDAwNlwwMDBcdTI4MjBcMDAwXHUxQzMwXHUyODMwXHUyODQwXHVBNUE1IisKKyAgICAgICAgIlwwMTNcMDAwXHUxNUUxXHVBNUE1XDAwNFwwMDBcdTE1RTlcMDAwXHUxNUYxXDAwMFx1MTVGOVwwMDBcdTE2MDFcMDAwXHUxNjA5IisKKyAgICAgICAgIlwwMDBcdTE2MTFcMDAwXHUxNjE5XDAwMFx1MTYyMVwwMDBcdTE2MjlcMDAwXHUxNjMxXDAwMFx1MTYzOVwwMDBcdTE2NDEiKworICAgICAgICAiXDAwMFwwMDBcdTE2NDlcMDAwXHUxNjUxXDAwMFx1MTY1OVx1QTVBNVwwMDZcMDAwXHUxNjYxXDAwMFwwMDBcdTE2NjlcMDAwIisKKyAgICAgICAgIlwwMDBcdTE2NzFcMDAwXDAwMFx1MTY3OVwwMDBcMDAwXHUxNjgxXHVBNUE1XDAzNVwwMDBcdTAxQUJcdTAxQjNcdTI4NTAiKworICAgICAgICAiXHUyODY4XHUxNjg5XHVBNUE1XDAxMFwwMDBcdTE2OTFcdUE1QTVcMDA0XDAwMFx1MTY5OVwwMDBcdTE2QTFcMDAwXHUxNkE5IisKKyAgICAgICAgIlwwMDBcdTE2QjFcMDAwXHUxNkI5XDAwMFx1MTZDMVwwMDBcdTE2QzlcMDAwXHUxNkQxXDAwMFx1MTZEOVwwMDBcdTE2RTEiKworICAgICAgICAiXDAwMFx1MTZFOVwwMDBcdTE2RjFcMDAwXDAwMFx1MTZGOVwwMDBcdTE3MDFcMDAwXHUxNzA5XHVBNUE1XDAwNlwwMDBcdTE3MTEiKworICAgICAgICAiXDAwMFwwMDBcdTE3MTlcMDAwXDAwMFx1MTcyMVwwMDBcMDAwXHUxNzI5XDAwMFwwMDBcdTE3MzFcdUE1QTVcMDIzXDAwMCIrCisgICAgICAgICJcdTE3MzlcdTE3NDFcdTE3NDlcdTE3NTFcdUE1QTVcMDEyXDAwMFx1MTc1OVx1QTVBNVwwMjNcMDAwXHUyODgwXHUyODkwIisKKyAgICAgICAgIlx1MjhBMFx1MjhCMFx1MjhDMFx1MjhEMFx1MjhFMFx1MjhGMFx1MjkwMFx1MjkxMFx1MjkyMFx1MjkzMFx1Mjk0MFx1Mjk1MCIrCisgICAgICAgICJcdTI5NjBcdTI5NzBcdTI5ODBcdTI5OTBcdTI5QTBcdTI5QjBcdTI5QzBcdTI5RDBcdTI5RTBcdTI5RjBcdTJBMDBcdTJBMTAiKworICAgICAgICAiXHUyQTIwXHUyQTMwXHUyQTQwXHUyQTUwXHUyQTYwXHUyQTcwXHUyQTgwXHUyQTkwXHUyQUEwXHUyQUIwXHUyQUMwXHUyQUQwIisKKyAgICAgICAgIlx1MkFFMFx1MkFGMFx1MkIwMFx1MkIxMFx1MkIyMFx1MkIzMFx1MkI0MFx1MkI1MFx1MkI2MFx1MkI3MFx1MkI4MFx1MkI5MCIrCisgICAgICAgICJcdTJCQTBcdTJCQjBcdTJCQzBcdTJCRDBcdTJCRTBcdTJCRjBcdTJDMDBcdTJDMTBcdTJDMjBcdTJDMzBcdTJDNDBcdTJDNTAiKworICAgICAgICAiXHUyQzYwXHUyQzcwXHUyQzgwXHUyQzkwXHUyQ0EwXHUyQ0IwXHUyQ0MwXHUyQ0QwXHUyQ0UwXHUyQ0YwXHUyRDAwXHUyRDEwIisKKyAgICAgICAgIlx1MkQyMFx1MkQzMFx1MkQ0MFx1MkQ1MFx1MkQ2MFx1MkQ3MFx1MkQ4MFx1MkQ5MFx1MkRBMFx1MkRCMFx1MkRDMFx1MkREMCIrCisgICAgICAgICJcdTJERTBcdTJERjBcdTJFMDBcdTJFMTBcdTJFMjBcdTJFMzBcdTJFNDBcdTJFNTBcMDAwXDAwMFwwMDBcdTFBQzBcdTFCMjAiKworICAgICAgICAiXHUyRTYwXHUyRTcwXHUyRTgwXHUyRTkwXHUyRUEwXHUyRUIwXHUxQjAwXHUyRUMwXHUyRUQwXHUyRUUwXHUyRUYwXHUxQjQwIisKKyAgICAgICAgIlx1MkYwMFx1MkYyMFx1MkY0MFx1MkY2MFx1MkY4MFx1MkZBMFx1MkZDMFx1MkZFMFx1MzAwMFx1MzAyMFx1MzA0MFx1MzA2MCIrCisgICAgICAgICJcdTMwODBcdTMwQTBcdTMwQzBcdTMwRThcdTMxMTBcdTMxMzhcdTMxNjBcdTMxODhcdTMxQjBcdTMxRDhcdTMyMDBcdTMyMjgiKworICAgICAgICAiXHUzMjUwXHUzMjc4XHUzMkEwXHUzMkM4XHUzMkYwXDAwMFwwMDBcMDAwXHUzMzE4XHUzMzM4XHUzMzU4XHUzMzc4XHUzMzk4IisKKyAgICAgICAgIlx1MzNCOFx1MzNEOFx1MzNGOFx1MzQxOFx1MzQzOFx1MzQ1OFx1MzQ3OFx1MzQ5OFx1MzRCOFx1MzREOFx1MzRGOFx1MzUxOCIrCisgICAgICAgICJcdTM1MzhcdTM1NThcdTM1NzhcdTM1OThcdTM1QjhcdTM1RDhcdTM1RjhcdTM2MThcdTM2MzhcdTM2NThcdTM2NzhcdTM2OTgiKworICAgICAgICAiXHUzNkI4XHUzNkQ4XHUzNkY4XHUzNzE4XHUzNzM4XHUzNzU4XHUzNzc4XHVBNUE1XDAzNFwwMDBcdTI4ODBcdTI4QjBcdTI4RTAiKworICAgICAgICAiXHUyOTAwXHUyOTgwXHUyOTkwXHUyOUMwXHUyOUUwXHUyOUYwXHUyQTEwXHUyQTIwXHUyQTMwXHUyQTQwXHUyQTUwXHUzNzk4IisKKyAgICAgICAgIlx1MzdCMFx1MzdDOFx1MzdFMFx1MzdGOFx1MzgxMFx1MzgyOFx1Mzg0MFx1Mzg1OFx1Mzg3MFx1Mzg4OFx1MzhBMFx1MzhCOCIrCisgICAgICAgICJcdTM4RDBcdUE1QTVcMDA0XDAwMFx1MUFDMFx1MUIyMFx1MkU2MFx1MkU3MFx1MzhFOFx1MzhGOFx1MzkwOFx1MUI3MFx1MzkxOCIrCisgICAgICAgICJcdTFDMzBcdTFGNTBcdTIwMTBcdTIwMDBcdTFGNjBcdTI1MjBcdTFDQjBcdTFGMzBcdTM5MjhcdTM5MzhcdTM5NDhcdTM5NTgiKworICAgICAgICAiXHUzOTY4XHUzOTc4XHUzOTg4XHUzOTk4XHUzOUE4XHUzOUI4XHUxRDEwXHUzOUM4XHUzOUQ4XHUzOUU4XHUzOUY4XHUzQTA4IisKKyAgICAgICAgIlx1M0ExOFx1M0EyOFx1M0EzOFx1MkU4MFx1MkU5MFx1MkVBMFx1M0E0OFx1M0E1OFx1M0E2OFx1M0E3OFx1M0E4OFx1M0E5OCIrCisgICAgICAgICJcdTNBQThcdTNBQjhcdTNBQzhcdTNBRDhcdUE1QTVcMDE3XDAwMFx1M0FFOFx1M0IwMFx1M0IxOFx1M0IzMFx1M0I0OFx1M0I2MCIrCisgICAgICAgICJcdTNCNzhcdTNCOTBcdTNCQThcdTNCQzBcdTNCRTBcdTNDMDBcdUE1QTVcMDA0XDAwMFx1M0MyMFx1M0MzMFx1M0M0MFx1M0M1MCIrCisgICAgICAgICJcdTNDNjBcdTNDNzBcdTNDODBcdTNDOTBcdTNDQTBcdTNDQjBcdTNDQzBcdTNDRDBcdTNDRTBcdTNDRjBcdTNEMDBcdTNEMTAiKworICAgICAgICAiXHUzRDIwXHUzRDMwXHUzRDQwXHUzRDUwXHUzRDYwXHUzRDcwXHUzRDgwXHUzRDkwXHUzREEwXHUzREIwXHUzREMwXHUzREQwIisKKyAgICAgICAgIlx1M0RFMFx1M0RGMFx1M0UwMFx1M0UxMFx1M0UyMFx1M0UzMFx1M0U0MFx1M0U1MFx1M0U2MFx1M0U3MFx1M0U4MFx1M0U5MCIrCisgICAgICAgICJcdTNFQTBcdTNFQjBcdTNFQzBcdTNFRDBcdTNFRTBcdTNFRjBcdTNGMDBcMDAwXHUzRjEwXHUzRjQwXHUzRjY4XHUzRjk4IisKKyAgICAgICAgIlx1M0ZCOFx1M0ZFOFx1NDAwOFx1NDAyOFx1NDA2MFx1NDA4OFx1NDBBOFx1NDBDOFx1NDBFOFx1NDExMFx1NDEzOFx1NDE2MCIrCisgICAgICAgICJcdTQxODhcdTQxQjBcdTQxRDhcdTQyMDBcdTQyMzhcdTQyNTBcdTQyODhcdTQyQzBcdTQyNjBcdTQyRjBcdTQzMjhcdTQzNjAiKworICAgICAgICAiXHU0Mzg4XHU0M0E4XHU0M0M4XHU0M0YwXHU0NDE4XHU0NDQ4XHU0NDc4XHU0NDk4XHU0NEI4XHU0NEUwXHU0NTAwXHU0MzEwIisKKyAgICAgICAgIlx1NDUyMFx1NDUzOFx1NDU1OFx1NDU3OFx1NDVCMFx1NDVEOFx1NDYwOFx1NDY0MFx1NDY2OFx1NDY4OFx1NDZBOFx1NDZFMCIrCisgICAgICAgICJcdTQ3MDhcdTQ3NDBcdTQ3NjBcdTQ3OTBcdTQ3QjBcdTQ3RDhcdTQ3RjhcdTQ4MjBcdTQ4NTBcdTQ4NzhcdTQ4QThcdTQ4RDAiKworICAgICAgICAiXHU0OEU4XHU0OTE4XHU0OTM4XHU0OTU4XHU0OTgwXHU0OUEwXHU0OUMwXHU0OUUwXHU0QTEwXHU0QTM4XHU0QTUwXHU0QTg4IisKKyAgICAgICAgIlx1NEFBOFx1NDI5OFx1NEFEOFx1NEIwMFx1NEIyMFx1NEI0MFx1NEI2OFx1NEI4MFx1NEJBOFx1NEJEOFx1NEJGMFx1NDJEMCIrCisgICAgICAgICJcdTRDMjhcdTRDNDBcdTRDNThcdTRDNzBcdTRDODhcdTRDQTBcdTRDQjhcdTRDRDBcdTRDRThcdTREMDBcdTREMThcdTREMzgiKworICAgICAgICAiXHU0RDU4XHU0RDc4XHU0RDk4XHU0REI4XHU0REQ4XHU0REY4XHU0RTE4XHU0RTM4XHU0RTU4XHU0RTc4XHU0RTk4XHU0RUI4IisKKyAgICAgICAgIlx1NEVEOFx1NEVGOFx1NEYxOFx1NEYzMFx1NEY0OFx1NEY2OFx1NEY4MFx1QTVBNVwwMDRcMDAwXHU0Rjk4XHU0RkIwXHU0RkM4IisKKyAgICAgICAgIlx1NEZFMFx1NEZGOFx1NTAyMFx1NTAzOFx1NTA1MFx1NTA2OFx1NTA4MFx1NTA5OFx1NTBCMFx1NTBDOFx1NTBFMFx1NTEwMCIrCisgICAgICAgICJcdTUxMjhcdTUxNDBcdTUxNThcdTUxNzBcdTUxODhcdTUxQTBcdTUxQjhcdTUxRDBcdTUxRjBcdTUyMTBcdTUyMzBcdTUyNTAiKworICAgICAgICAiXHU1MjY4XHU1MjgwXHU1Mjk4XHU1MkIwXHU1MkM4XHU1MkUwXHU1MkY4XHU1MzEwXHU1MzI4XHU1MzQwXHU1MzYwXHU1MzQ4IisKKyAgICAgICAgIlx1NTM4MFx1NTNBMFx1NTNDMFx1NTNBOFx1NTNFMFx1NTQwMFx1NTQyMFx1NEYwMFx1NTQ0OFx1NTQ2OFx1NTQ4OFx1NTRBOCIrCisgICAgICAgICJcdTU0QzhcdTU0RjhcdTU1MzBcdTU1NDhcdTU1NjBcdTU1NzhcdTU1OTBcdTU1QThcdTU1QzBcdTU1RDhcdTU1RjBcdTU2MDgiKworICAgICAgICAiXHU1NjIwXHU1NjM4XHU1NjUwXHU1NjY4XHU1NjgwXHU1Njk4XHU1NkIwXHU1NkM4XHU1NkUwXHU1NzA4XHU1NzIwXHU1NzM4IisKKyAgICAgICAgIlx1NTc1MFx1NTc3OFx1NTc5OFx1NTdCMFx1NTdDOFx1NTdFMFx1NTdGOFx1NTgxMFx1NTgyOFx1NTg0MFx1NTg1OFx1NTg3MCIrCisgICAgICAgICJcdTU4ODhcdTU4QThcdTU4QzBcdTU4RDhcdTU4RjhcdTU5MThcdTU5MzBcdTU5NThcdTU5NzhcdTU5OTBcdTU5QThcdTU5QzAiKworICAgICAgICAiXDAwMFwwMDBcdTU5RDhcdTU5RjBcdTVBMDhcdTVBMjBcdTVBMzhcdTVBNTBcdTVBNjhcdTVBODBcdTVBOThcdTVBQjBcdTVBRDAiKworICAgICAgICAiXHU1QUYwXHU1QjEwXHU1QjMwXHU1QjUwXHU1QjcwXHU1QjkwXHU1QkIwXHU1QkQwXHU1QkYwXHU1QzEwXHU1QzMwXHU1QzUwIisKKyAgICAgICAgIlx1NUM3MFx1NUM5MFx1NUNCMFx1NUNEMFx1NUNGMFx1NUQxMFx1NUQzMFx1NUQ1MFwwMDBcdUE1QTUlXDAwN1x1QTVBNSIrCisgICAgICAgICJcMDMzXDAwMFx1OEQ5OFx1OERBOFx1OERCOFx1OERDOFx1OEREOFx1OERFOFx1OERGOFx1OEUwOFx1OEUxOFx1OEUyOFx1OEUzOCIrCisgICAgICAgICJcdThFNDhcdThFNThcdThFNjhcdThFNzhcdThFODhcdThFOThcdThFQThcdThFQjhcdThFQzhcdThFRDhcdThFRThcdThFRjgiKworICAgICAgICAiXHU4RjA4XHU4RjE4XHU4RjI4XHU4RjM4XHU4RjQ4XHU4RjU4XHU4RjY4XHU4Rjc4XHU4Rjg4XHU4Rjk4XHU4RkE4XHU4RkI4IisKKyAgICAgICAgIlx1OEZDOFx1OEZEOFx1OEZFOFx1OEZGOFx1OTAwOFx1OTAxOFx1OTAyOFx1OTAzOFx1OTA0OFx1OTA1OFx1OTA2OFx1OTA3OCIrCisgICAgICAgICJcdTkwODhcdTkwOThcdTkwQThcdTkwQjhcdTkwQzhcdTkwRDhcdTkwRThcdTkwRjhcdTkxMDhcdTkxMThcdTkxMjhcdTkxMzgiKworICAgICAgICAiXHU5MTQ4XHU5MTU4XHU5MTY4XHU5MTc4XHU5MTg4XHU5MTk4XHU5MUE4XHU5MUI4XHU5MUM4XHU5MUQ4XHU5MUU4XHU5MUY4IisKKyAgICAgICAgIlx1OTIwOFx1OTIxOFx1OTIyOFx1OTIzOFx1OTI0OFx1OTI1OFx1OTI2OFx1OTI3OFx1OTI4OFx1OTI5OFx1OTJBOFx1OTJCOCIrCisgICAgICAgICJcdTkyQzhcdTkyRDhcdTkyRThcdTkyRjhcdTkzMDhcdTkzMThcdTkzMjhcdTkzMzhcdTkzNDhcdThFRDhcdTkzNThcdTkzNjgiKworICAgICAgICAiXHU5Mzc4XHU5Mzg4XHU5Mzk4XHU5M0E4XHU5M0I4XHU5M0M4XHU5M0Q4XHU5M0U4XHU5M0Y4XHU5NDA4XHU5NDE4XHU5NDI4IisKKyAgICAgICAgIlx1OTQzOFx1OTQ0OFx1OTQ1OFx1OTQ2OFx1OTQ3OFx1OTQ4OFx1OTQ5OFx1OTRBOFx1OTRCOFx1OTRDOFx1OTREOFx1OTRFOCIrCisgICAgICAgICJcdTk0RjhcdTk1MDhcdTk1MThcdTk1MjhcdTk1MzhcdTk1NDhcdTk1NThcdTk1NjhcdTk1NzhcdTk1ODhcdTk1OThcdTk1QTgiKworICAgICAgICAiXHU5NUI4XHU5NUM4XHU5NUQ4XHU5NUU4XHU5NUY4XHU5NjA4XHU5NjE4XHU5NjI4XHU5NjM4XHU5NjQ4XHU5NjU4XHU5NjY4IisKKyAgICAgICAgIlx1OTY3OFx1OTY4OFx1OTY5OFx1OTZBOFx1OTZCOFx1OTZDOFx1OTZEOFx1OTZFOFx1OTZGOFx1OTcwOFx1OTcxOFx1OTcyOCIrCisgICAgICAgICJcdTk3MzhcdTk3NDhcdTk3NThcdTk3NjhcdTk3NzhcdTk3ODhcdTk0NzhcdTk3OThcdTk3QThcdTk3QjhcdTk3QzhcdTk3RDgiKworICAgICAgICAiXHU5N0U4XHU5N0Y4XHU5ODA4XHU5Mzc4XHU5ODE4XHU5ODI4XHU5ODM4XHU5ODQ4XHU5ODU4XHU5ODY4XHU5ODc4XHU5ODg4IisKKyAgICAgICAgIlx1OTg5OFx1OThBOFx1OThCOFx1OThDOFx1OThEOFx1OThFOFx1OThGOFx1OTkwOFx1OTkxOFx1OTkyOFx1OTkzOFx1OTk0OCIrCisgICAgICAgICJcdThFRDhcdTk5NThcdTk5NjhcdTk5NzhcdTk5ODhcdTk5OThcdTk5QThcdTk5QjhcdTk5QzhcdTk5RDhcdTk5RThcdTk5RjgiKworICAgICAgICAiXHU5QTA4XHU5QTE4XHU5QTI4XHU5QTM4XHU5QTQ4XHU5QTU4XHU5QTY4XHU5QTc4XHU5QTg4XHU5QTk4XHU5QUE4XHU5QUI4IisKKyAgICAgICAgIlx1OUFDOFx1OUFEOFx1OUFFOFx1OUFGOFx1OTM5OFx1OUIwOFx1OUIxOFx1OUIyOFx1OUIzOFx1OUI0OFx1OUI1OFx1OUI2OCIrCisgICAgICAgICJcdTlCNzhcdTlCODhcdTlCOThcdTlCQThcdTlCQjhcdTlCQzhcdTlCRDhcdTlCRThcdTlCRjhcdTlDMDhcdTlDMThcdTlDMjgiKworICAgICAgICAiXHU5QzM4XHU5QzQ4XHU5QzU4XHU5QzY4XHU5Qzc4XHU5Qzg4XHU5Qzk4XHU5Q0E4XHU5Q0I4XHU5Q0M4XHU5Q0Q4XHU5Q0U4IisKKyAgICAgICAgIlx1OUNGOFx1OUQwOFx1OUQxOFx1OUQyOFx1OUQzOFx1OUQ0OFx1OUQ1OFx1OUQ2OFx1OUQ3OFx1OUQ4OFx1OUQ5OFx1OURBOCIrCisgICAgICAgICJcdTlEQjhcdTlEQzhcdTlERDhcdTlERThcdTlERjhcdTlFMDhcdTlFMThcMDAwXDAwMFx1OUUyOFwwMDBcdTlFMzhcMDAwIisKKyAgICAgICAgIlwwMDBcdTlFNDhcdTlFNThcdTlFNjhcdTlFNzhcdTlFODhcdTlFOThcdTlFQThcdTlFQjhcdTlFQzhcdTlFRDhcMDAwXHU5RUU4IisKKyAgICAgICAgIlwwMDBcdTlFRjhcMDAwXDAwMFx1OUYwOFx1OUYxOFwwMDBcMDAwXDAwMFx1OUYyOFx1OUYzOFx1OUY0OFx1OUY1OFx1QTVBNSIrCisgICAgICAgICJcMDIyXDAwMFx1NUQ3MFx1NUQ4OFx1NURBMFx1NURCOFx1NUREOFx1NURGOFx1NURGOFx1QTVBNVwwMTRcMDAwXHU1RTEwIisKKyAgICAgICAgIlx1NUUyOFx1NUU0MFx1NUU1OFx1NUU3MFx1QTVBNVwwMDZcMDAwXHUwMzMzXHU5RjY4XHU1RTg4XHUwQkQwXHUwQzAwXHU1RTk4IisKKyAgICAgICAgIlx1NUVBOFx1NUVCOFx1NUVDOFx1NUVEOFx1NUVFOFx1MDk3MFx1OUY4MFx1OUY5OFx1OUZCMFx1OUZEMFx1OUZGMFx1QTAwOCIrCisgICAgICAgICJcdUEwMjBcdUEwMzhcdUEwNTBcdUEwNjhcdUEwODBcdUEwOThcdUEwQjBcMDAwXHVBMEM4XHVBMEUwXHVBMEY4XHVBMTEwIisKKyAgICAgICAgIlx1QTEyOFwwMDBcdUExNDBcMDAwXHVBMTU4XHVBMTcwXDAwMFx1QTE4OFx1QTFBMFwwMDBcdUExQjhcdUExRDBcdUExRTgiKworICAgICAgICAiXHVBMjAwXHVBMjE4XHVBMjMwXHVBMjQ4XHVBMjYwXHVBMjc4XHU1RUY4XHU1RjEwXHU1RjEwXHVBNUE1XDAwNFx1NUYyMCIrCisgICAgICAgICJcdUE1QTVcMDA0XHU1RjMwXHVBNUE1XDAwNFx1NUY0MFx1QTVBNVwwMDRcdTVGNTBcdUE1QTVcMDA0XHU1RjYwXHVBNUE1IisKKyAgICAgICAgIlwwMDRcdTVGNzBcdUE1QTVcMDA0XHU1RjgwXHVBNUE1XDAwNFx1NUY5MFx1QTVBNVwwMDRcdTVGQTBcdUE1QTVcMDA0XHU1RkIwIisKKyAgICAgICAgIlx1QTVBNVwwMDRcdTVGQzBcdUE1QTVcMDA0XHU1RkQwXHU1RkUwXHU1RkUwXHU1RkYwXHU1RkYwXHU2MDAwXHU2MDAwXHU2MDEwIisKKyAgICAgICAgIlx1NjAxMFx1NjAyMFx1NjAyMFx1NjAzMFx1NjAzMFx1QTVBNVwwMDRcdTYwNDBcdUE1QTVcMDA0XHU2MDUwXHVBNUE1XDAwNCIrCisgICAgICAgICJcdTYwNjBcdUE1QTVcMDA0XHU2MDcwXHU2MDgwXHU2MDgwXHVBNUE1XDAwNFx1NjA5MFx1NjBBMFx1NjBBMFx1QTVBNVwwMDQiKworICAgICAgICAiXHU2MEI4XHVBNUE1XDAwNFx1NjBDOFx1NjBEOFx1NjBEOFx1NjBFOFx1NjBFOFx1QTVBNSFcMDAwXHVBNUE1XDAwNFx1NjEwMCIrCisgICAgICAgICJcdTYxMTBcdTYxMTBcdTYxMjBcdTYxMjBcdTYxMzBcdTYxMzBcdTA1QThcdTYxNDBcdTYxNDBcdTYxNTBcdTYxNTBcdTYxNjAiKworICAgICAgICAiXHU2MTYwXHVBNUE1XDAwNFx1NjE3MFx1NjE4MFx1NjE4MFx1NjE5MFx1NjE5MFx1NjFCMFx1NjFCMFx1NjFEMFx1NjFEMCIrCisgICAgICAgICJcdTYxRjBcdTYxRjBcdTYyMTBcdTYyMTBcdTYyMzBcdTYyMzBcdTYyNTBcdTYyNTBcdTYyNTBcdTYyNzBcdTYyNzBcdTYyNzAiKworICAgICAgICAiXHVBNUE1XDAwNFx1NjI5MFx1NjJBMFx1NjJDMFx1NjJFMFx1NjI3MFx1NjMwMFx1NjMyMFx1NjMzOFx1NjM1MFx1NjM2OCIrCisgICAgICAgICJcdTYzODBcdTYzOThcdTYzQjBcdTYzQzhcdTYzRTBcdTYzRjhcdTY0MTBcdTY0MjhcdTY0NDBcdTY0NThcdTY0NzBcdTY0ODgiKworICAgICAgICAiXHU2NEEwXHU2NEI4XHU2NEQwXHU2NEU4XHU2NTAwXHU2NTE4XHU2NTMwXHU2NTQ4XHU2NTYwXHU2NTc4XHU2NTkwXHU2NUE4IisKKyAgICAgICAgIlx1NjVDMFx1NjVEOFx1NjVGMFx1NjYwOFx1NjYyMFx1NjYzOFx1NjY1MFx1NjY2OFx1NjY4MFx1NjY5OFx1NjZCMFx1NjZDOCIrCisgICAgICAgICJcdTY2RTBcdTY2RjhcdTY3MTBcdTY3MjhcdTY3NDBcdTY3NThcdTY3NzBcdTY3ODhcdTY3QTBcdTY3QjhcdTY3RDBcdTY3RTgiKworICAgICAgICAiXHU2ODAwXHU2ODE4XHU2ODMwXHU2ODQ4XHU2ODYwXHU2ODc4XHU2ODkwXHU2OEE4XHU2OEMwXHU2OEQ4XHU2OEYwXHU2OTA4IisKKyAgICAgICAgIlx1NjkyMFx1NjkzOFx1Njk1MFx1Njk2OFx1Njk4MFx1Njk5OFx1NjlCMFx1NjlDOFx1NjlFMFx1NjlGOFx1NkExMFx1NkEyOCIrCisgICAgICAgICJcdTZBNDBcdTZBNThcdTZBNzBcdTZBODhcdTZBQTBcdTZBQjhcdTZBRDBcdTZBRThcdTZCMDBcdTZCMThcdTZCMzBcdTZCNDgiKworICAgICAgICAiXHU2QjYwXHU2Qjc4XHU2Qjk4XHU2QkI4XHU2QkQ4XHU2QkY4XHU2QzE4XHU2QzM4XHU2QzU4XHU2MkUwXHU2Qzc4XHU2MjcwIisKKyAgICAgICAgIlx1NjMwMFx1NkM5OFx1NkNCMFx1NjM2OFx1NkNDOFx1NjM4MFx1NjM5OFx1NkNFMFx1NkNGOFx1NjNGOFx1NkQxMFx1NjQxMCIrCisgICAgICAgICJcdTY0MjhcdTZEMjhcdTZENDBcdTY0NThcdTZENThcdTY0NzBcdTY0ODhcdTY3NDBcdTY3NThcdTY3QTBcdTY3QjhcdTY3RDAiKworICAgICAgICAiXHU2ODMwXHU2ODQ4XHU2ODYwXHU2ODc4XHU2OEQ4XHU2OEYwXHU2OTA4XHU2RDcwXHU2OTY4XHU2RDg4XHU2REEwXHU2OUY4IisKKyAgICAgICAgIlx1NkRCOFx1NkExMFx1NkEyOFx1NkI2MFx1NkREMFx1NkRFOFx1NkFFOFx1NkUwMFx1NkIwMFx1NkIxOFx1NjJBMFx1NjJDMCIrCisgICAgICAgICJcdTZFMThcdTYyRTBcdTZFMzhcdTYzMjBcdTYzMzhcdTYzNTBcdTYzNjhcdTZFNThcdTYzQjBcdTYzQzhcdTYzRTBcdTYzRjgiKworICAgICAgICAiXHU2RTcwXHU2NDU4XHU2NEEwXHU2NEI4XHU2NEQwXHU2NEU4XHU2NTAwXHU2NTMwXHU2NTQ4XHU2NTYwXHU2NTc4XHU2NTkwIisKKyAgICAgICAgIlx1NjVBOFx1NkU4OFx1NjVDMFx1NjVEOFx1NjVGMFx1NjYwOFx1NjYyMFx1NjYzOFx1NjY2OFx1NjY4MFx1NjY5OFx1NjZCMCIrCisgICAgICAgICJcdTY2QzhcdTY2RTBcdTY2RjhcdTY3MTBcdTY3MjhcdTY3NzBcdTY3ODhcdTY3RThcdTY4MDBcdTY4MThcdTY4MzBcdTY4NDgiKworICAgICAgICAiXHU2ODkwXHU2OEE4XHU2OEMwXHU2OEQ4XHU2RUEwXHU2OTIwXHU2OTM4XHU2OTUwXHU2OTY4XHU2OUIwXHU2OUM4XHU2OUUwIisKKyAgICAgICAgIlx1NjlGOFx1NkVCOFx1NkE0MFx1NkE1OFx1NkVEMFx1NkFBMFx1NkFCOFx1NkFEMFx1NkFFOFx1NkVFOFx1NjJFMFx1NkUzOCIrCisgICAgICAgICJcdTYzNjhcdTZFNThcdTYzRjhcdTZFNzBcdTY0NThcdTZGMDBcdTY1OTBcdTZGMThcdTZGMzBcdTZGNDhcdTY4MzBcdTY4NDgiKworICAgICAgICAiXHU2OEQ4XHU2OUY4XHU2RUI4XHU2QUU4XHU2RUU4XHU2RjYwXHU2RjgwXHU2RkEwXHU2RkMwXHU2RkQ4XHU2RkYwXHU3MDA4IisKKyAgICAgICAgIlx1NzAyMFx1NzAzOFx1NzA1MFx1NzA2OFx1NzA4MFx1NzA5OFx1NzBCMFx1NzBDOFx1NzBFMFx1NzBGOFx1NzExMFx1NzEyOCIrCisgICAgICAgICJcdTcxNDBcdTcxNThcdTcxNzBcdTcxODhcdTcxQTBcdTcxQjhcdTcxRDBcdTZGMzBcdTcxRThcdTcyMDBcdTcyMThcdTcyMzAiKworICAgICAgICAiXHU2RkMwXHU2RkQ4XHU2RkYwXHU3MDA4XHU3MDIwXHU3MDM4XHU3MDUwXHU3MDY4XHU3MDgwXHU3MDk4XHU3MEIwXHU3MEM4IisKKyAgICAgICAgIlx1NzBFMFx1NzBGOFx1NzExMFx1NzEyOFx1NzE0MFx1NzE1OFx1NzE3MFx1NzE4OFx1NzFBMFx1NzFCOFx1NzFEMFx1NkYzMCIrCisgICAgICAgICJcdTcxRThcdTcyMDBcdTcyMThcdTcyMzBcdTcxQTBcdTcxQjhcdTcxRDBcdTZGMzBcdTZGMThcdTZGNDhcdTY2NTBcdTY1NDgiKworICAgICAgICAiXHU2NTYwXHU2NTc4XHU3MUEwXHU3MUI4XHU3MUQwXHU2NjUwXHU2NjY4XHU3MjQ4XHU3MjQ4XHVBNUE1XDAyMlwwMDBcdTcyNjAiKworICAgICAgICAiXHU3MjgwXHU3MjgwXHU3MkEwXHU3MkMwXHU3MkUwXHU3MzAwXHU3MzIwXHU3MzQwXHU3MzQwXHU3MzYwXHU3MzgwXHU3M0EwIisKKyAgICAgICAgIlx1NzNDMFx1NzNFMFx1NzQwMFx1NzQwMFx1NzQyMFx1NzQ0MFx1NzQ0MFx1NzQ2MFx1NzQ2MFx1NzQ4MFx1NzRBMFx1NzRBMCIrCisgICAgICAgICJcdTc0QzBcdTc0RTBcdTc0RTBcdTc1MDBcdTc1MDBcdTc1MjBcdTc1NDBcdTc1NDBcdTc1NjBcdTc1NjBcdTc1ODBcdTc1QTAiKworICAgICAgICAiXHU3NUMwXHU3NUUwXHU3NUUwXHU3NjAwXHU3NjIwXHU3NjQwXHU3NjYwXHU3NjgwXHU3NjgwXHU3NkEwXHU3NkMwXHU3NkUwIisKKyAgICAgICAgIlx1NzcwMFx1NzcyMFx1Nzc0MFx1Nzc0MFx1Nzc2MFx1Nzc2MFx1Nzc4MFx1Nzc4MFx1NzdBMFx1NzdDMFx1NzdFMFx1NzgwMCIrCisgICAgICAgICJcdTc4MjBcdTc4NDBcdTc4NjBcMDAwXDAwMFx1Nzg4MFx1NzhBMFx1NzhDMFx1NzhFMFx1NzkwMFx1NzkyMFx1NzkyMFx1Nzk0MCIrCisgICAgICAgICJcdTc5NjBcdTc5ODBcdTc5QTBcdTc5QTBcdTc5QzBcdTc5RTBcdTdBMDBcdTdBMjBcdTdBNDBcdTdBNjBcdTdBODBcdTdBQTAiKworICAgICAgICAiXHU3QUMwXHU3QUUwXHU3QjAwXHU3QjIwXHU3QjQwXHU3QjYwXHU3QjgwXHU3QkEwXHU3QkMwXHU3QkUwXHU3QzAwXHU3QzIwIisKKyAgICAgICAgIlx1N0M0MFx1N0M2MFx1NzZBMFx1NzZFMFx1N0M4MFx1N0NBMFx1N0NDMFx1N0NFMFx1N0QwMFx1N0QyMFx1N0QwMFx1N0NDMCIrCisgICAgICAgICJcdTdENDBcdTdENjBcdTdEODBcdTdEQTBcdTdEQzBcdTdEMjBcdTc1QzBcdTc0ODBcdTdERTBcdTdFMDBcdUE1QTUoXDAwMCIrCisgICAgICAgICJcdTdFMjBcdTdFNDBcdTdFNjBcdTdFODhcdTdFQjBcdTdFRDhcdTdGMDBcdTdGMjhcdTdGNTBcdTdGNzhcdTdGOThcdTgwMzAiKworICAgICAgICAiXHVBNUE1XDAwNFwwMDBcdUE1QTVcMDA0XHUwMUJCXHVBNUE1XDAxNFwwMDBcdTA4MDhcdTgwNzhcdTgwODhcdTgwOThcdTgwOTgiKworICAgICAgICAiXHUwOUEwXHUwOUIwXHU4MEE4XHU4MEI4XHU4MEM4XHU4MEQ4XHU4MEU4XHU4MEY4XHU4MTA4XHU4MTE4XHU4MTI4XHU4MTM4IisKKyAgICAgICAgIlx1ODE0OFx1ODE1OFx1ODE2OFx1ODE3OFx1QTVBNVwwMDRcMDAwXHVBNUE1XDAwNFx1MDhDOFx1ODA5OFx1ODA5OFx1ODA5OCIrCisgICAgICAgICJcdTgxODhcdTgxOThcdTA3RjhcMDAwXHU4MUE4XHU4MUI4XHUwOTAwXHUwOEI4XHU4MDc4XHUwOUEwXHUwOUIwXHU4MEE4IisKKyAgICAgICAgIlx1ODBCOFx1ODBDOFx1ODBEOFx1ODFDOFx1ODFEOFx1ODFFOFx1MDk3MFx1ODFGOFx1ODIwOFx1ODIxOFx1MDk5MFwwMDAiKworICAgICAgICAiXHU4MjI4XHU4MjM4XHU4MjQ4XHU4MjU4XHVBNUE1XDAwNFwwMDBcdTgyNjhcdTgyODBcdTgyOThcMDAwXHU4MkIwXDAwMCIrCisgICAgICAgICJcdTgyQzhcdTgyRTBcdTgyRjhcdTgzMTBcdTgzMjhcdTgzNDBcdTgzNThcdTgzNzBcdTgzODhcdTgzQTBcdTgzQjhcdTgzQzgiKworICAgICAgICAiXHU4M0M4XHU4M0UwXHU4M0UwXHU4M0Y4XHU4M0Y4XHU4NDEwXHU4NDEwXHVBNUE1XDAwNFx1ODQyOFx1NjFBMFx1NjFBMCIrCisgICAgICAgICJcdUE1QTVcMDA0XHU4NDQwXHU4NDUwXHU4NDUwXHVBNUE1XDAwNFx1ODQ2MFx1QTVBNVwwMDRcdTg0NzBcdUE1QTVcMDA0IisKKyAgICAgICAgIlx1NjJCMFx1QTVBNVwwMDRcdTYyRDBcdUE1QTVcMDA0XHU2MzU4XHU3RUM4XHU3RUM4XHU4NDgwXHU4NDgwXHU2QzQ4XHU2QzQ4IisKKyAgICAgICAgIlx1NkM2OFx1NkM2OFx1QTVBNVwwMDRcdTg0OTBcdUE1QTVcMDA0XHU4NEEwXHVBNUE1XDAwNFx1ODRCMFx1QTVBNVwwMDQiKworICAgICAgICAiXHU4NEMwXHVBNUE1XDAwNFx1ODREMFx1QTVBNVwwMDRcdTg0RTBcdUE1QTVcMDA0XHU4NEYwXHVBNUE1XDAwNFx1ODUwMCIrCisgICAgICAgICJcdUE1QTVcMDA0XHU4NTEwXHVBNUE1XDAwNFx1ODUyMFx1QTVBNVwwMDRcdTg1MzBcdUE1QTVcMDA0XHU2ODM4XHVBNUE1IisKKyAgICAgICAgIlwwMDRcdTYyRjBcdUE1QTVcMDA0XHU2Qzg4XHVBNUE1XDAwNFx1NkU0OFx1NjFFMFx1NjFFMFx1NjE4MFx1NjE4MFx1QTVBNSIrCisgICAgICAgICJcMDA0XHU2MzEwXHU4NTQwXHU4NTQwXHU4NTYwXHU4NTYwXHU4NTgwXHU4NTgwXHU4NUEwXHU4NUEwXHVBNUE1XDAwNFwwMDAiKworICAgICAgICAiXHUwOEI4XHU4NUI4XHU4MUM4XHU4MjM4XHU4MjQ4XHU4MUQ4XHU4NUM4XHUwOUEwXHUwOUIwXHU4MUU4XHUwOTcwXHU4MTg4IisKKyAgICAgICAgIlx1ODFGOFx1MDdGOFx1ODVEOFx1MDkxMFx1MDEwOFx1MDBBOFx1MDBCOFx1MDEzOFx1MDkyMFx1MDkzMFx1MDk0MFx1MDk1MCIrCisgICAgICAgICJcdTA5NjBcdTgxQjhcdTgxQThcdTgyMDhcdTA5OTBcdTgyMThcdTA5MDBcdTgyNThcdTE5QjBcdTBCQTBcdTBBMThcdTBFQjgiKworICAgICAgICAiXHUwQkMwXHUwQTk4XHUxOUMwXHUwQUI4XHUwQUQ4XHUwMTkwXHUxOUQwXHUwQUU4XHUwQjU4XHUwQUY4XHUxOUUwXHUwQjIwIisKKyAgICAgICAgIlx1MEIzMFx1MEI0MFx1MTlGMFx1MUEwMFx1MUExMFx1MERGOFx1MUEyMFx1MEU3MFx1MUEzMFx1MDJGOFx1ODVFOFx1ODIyOCIrCisgICAgICAgICJcdTg1RjhcdTg2MDhcdTgwOThcdTg2MThcdTAwODBcdTFBNDBcdTA5RThcdTBGQzhcdTBCQjBcdTFBNTBcdTBBQThcdTAzMzgiKworICAgICAgICAiXHUwQzEwXHUwMUE4XHUxQTYwXHUwNDU4XHUwRkQ4XHUwMUYwXHUwMTE4XHUxQTcwXHUxQTgwXHUwMzU4IFx1MUE5MFx1MEE3MCIrCisgICAgICAgICJcdTBGMDhcdTAzOThcdTA0NjhcdTAzQThcdTAzMTBcdTgwQThcdTg2MjhcdTgwQjhcdTg2MzhcMDAwXDAwMFx1ODY0OFx1ODE0OCIrCisgICAgICAgICJcdTgxNThcdTgxOThcdTg2NThcdTNGMDBcdTNGNThcdTg2NjhcdTg2NzhcdTg2ODhcdTg2OThcdTg2QThcdTg2QjhcdTg2QzgiKworICAgICAgICAiXHU4NkQ4XHU0MDc4XHUzQzIwXHUzQzMwXHUzQzQwXHUzQzUwXHUzQzYwXHUzQzcwXHUzQzgwXHUzQzkwXHUzQ0EwXHUzQ0IwIisKKyAgICAgICAgIlx1M0NDMFx1M0NEMFx1M0NFMFx1M0NGMFx1M0QwMFx1M0QxMFx1M0QyMFx1M0QzMFx1M0Q0MFx1M0Q1MFx1M0Q2MFx1M0Q3MCIrCisgICAgICAgICJcdTNEODBcdTNEOTBcdTNEQTBcdTNEQjBcdTNEQzBcdTNERDBcdTNERTBcdTNERjBcdTNFMDBcdTNFMTBcdTNFMjBcdTNFMzAiKworICAgICAgICAiXHUzRTQwXHUzRTUwXHUzRTYwXHUzRTcwXHUzRTgwXHUzRTkwXHUzRUEwXHUzRUIwXHUzRUMwXHUzRUQwXHU0MDE4XHUyODU4IisKKyAgICAgICAgIlx1Mjg3MFx1MkJCMFx1Mjg4MFx1Mjg5MFx1MjhBMFx1MjhCMFx1MjhDMFx1MjhEMFx1MjhFMFx1MjhGMFx1MjkwMFx1MjkxMCIrCisgICAgICAgICJcdTI5MjBcdTI5MzBcdTI5NDBcdTI5NTBcdTI5NjBcdTI5NzBcdTI5ODBcdTI5OTBcdTI5QTBcdTI5QjBcdTI5QzBcdTI5RDAiKworICAgICAgICAiXHUyOUUwXHUyOUYwXHUyQTAwXHUyQTEwXHUyQTIwXHUyQTMwXHUyQTQwXHUyQTUwXDAwMFwwMDBcMDAwXHUyQTYwXHUyQTcwIisKKyAgICAgICAgIlx1MkE4MFx1MkE5MFx1MkFBMFx1MkFCMFwwMDBcMDAwXHUyQUMwXHUyQUQwXHUyQUUwXHUyQUYwXHUyQjAwXHUyQjEwXDAwMCIrCisgICAgICAgICJcMDAwXHUyQjIwXHUyQjMwXHUyQjQwXHUyQjUwXHUyQjYwXHUyQjcwXDAwMFwwMDBcdTJCODBcdTJCOTBcdTJCQTBcMDAwIisKKyAgICAgICAgIlwwMDBcMDAwXHU4NkU4XHU4NkY4XHU4NzA4XHUwMDkwXHU4NzE4XHU4NzI4XHU4NzM4XDAwMFx1ODc0OFx1ODc1OFx1ODc2OCIrCisgICAgICAgICJcdTg3NzhcdTg3ODhcdTg3OThcdTg3QThcdUE1QTVcMDIxXDAwMCIKKyAgICAgICAgKTsKKworICAgIHN0YXRpYyBmaW5hbCBDb21wYWN0Q2hhckFycmF5IGFjdGlvbnMgPSBuZXcgQ29tcGFjdENoYXJBcnJheSgKKyAgICAgICAgIlwwMDBcdTA4MDBcdUE1QTUgXDAwMCBAYFx1MDA4MFx1MDBBMFx1MDBDMFx1MDBFMFwwMDBcdTAxMDBcdTAxMjBcdTAxNDAiKworICAgICAgICAiXHVBNUE1XDAwNlwwMDBcdTAxNjBcdTAxODBcdTAxQTBcdTAxQzBcdUE1QTVcMDEzXDAwMFx1MDFFMFx1MDIwMFx1MDIyMCIrCisgICAgICAgICJcdTAyNDBcdTAyNjBcdTAyODBcdTAyQTBcMDAwXHUwMkMwXHUwMkUwXHUwMzAwXHVBNUE1XDAwNlwwMDBcdTAzMjBcdTAzNDAiKworICAgICAgICAiXHUwMzYwXHUwMzgwXHVBNUE1XDAxM1wwMDBcdTAzQTBcdTAzQzBcdUE1QTVcMDE1XDAwMFx1MDNFMFx1MDQwMFx1QTVBNSIrCisgICAgICAgICJcMDE3XDAwMFx1MDQyMFx1MDQ0MFx1MDQ2MFx1MDQ4MFwwMDBcMDAwXHUwNEEwXHVBNUE1XDAzMVwwMDBcdTA0QzBcdTA0RTAiKworICAgICAgICAiXHUwNTAwXHUwNTIwXDAwMFwwMDBcMDAwXHUwNTQwXHUwNTYwXHUwNTgwXHUwNUEwXDAwMFx1MDVDMFx1MDVFMFx1QTVBNSIrCisgICAgICAgICJcMDA2XDAwMFx1MDYwMFx1QTVBNVwwMTNcMDAwXHUwNjIwXHUwNjQwXHVBNUE1XDAwNlwwMDBcdTA2NjBcdTA2ODBcdTA2QTAiKworICAgICAgICAiXHVBNUE1XDAwNFwwMDBcdTA2QzBcdUE1QTVcMDA0XDAwMFx1MDZFMFx1QTVBNVwwMTNcMDAwXHUwNzAwXHUwNzIwXDAwMCIrCisgICAgICAgICJcMDAwXDAwMFx1MDc0MFx1QTVBNVwwMDdcMDAwXHUwNzYwXHVBNUE1XDAyMlwwMDBcdTA3ODBcdTA3QTBcdTA3QzBcdTA3RTAiKworICAgICAgICAiXDAwMFx1MDgwMFwwMDBcMDAwXHUwODIwXHUwODQwXHUwODYwXHVBNUE1XDAyNVwwMDBcdTA4ODBcdTA4QTBcdTA4QzBcdTA4RTAiKworICAgICAgICAiXDAwMFwwMDBcdTA5MDBcdUE1QTVcMDMxXDAwMFx1MDkyMFx1MDk0MFx1QTVBNVwwMzZcMDAwXHUwOTYwXHUwOTgwXHVBNUE1IisKKyAgICAgICAgIlwwMDdcMDAwXHUwOUEwXHUwOUMwXHVBNUE1XDAyNVwwMDBcdTA5RTBcdTBBMDBcdTBBMjBcdTBBNDBcMDAwXDAwMFx1MEE2MCIrCisgICAgICAgICJcMDAwXHUwQTgwXHVBNUE1XDAyN1wwMDBcdTBBQTBcdTBBQzBcdUE1QTVcMDEwXDAwMFx1MEFFMFx1QTVBNVwwMjVcMDAwIisKKyAgICAgICAgIlx1MEIwMFx1MEIyMFx1QTVBNSZcMDAwXHUwQjQwXHUwQjYwXHVBNUE1XDAxMlwwMDBcdTBCODBcdUE1QTVcMDIzXDAwMCIrCisgICAgICAgICJcdTBCQTBcdTBCQzBcdUE1QTVcMDEyXDAwMFx1MEJFMFx1QTVBNVwwMTNcMDAwXHUwQzAwXHUwQzIwXHUwQzQwXHUwQzYwIisKKyAgICAgICAgIlwwMDBcdTBDODBcdTBDQTBcdTBDQzBcdTBDRTBcdUE1QTVcMDA0XDAwMFx1MEQwMFx1MEQyMFwwMDBcdTBENDBcdTBENjAiKworICAgICAgICAiXHVBNUE1XDAxNlwwMDBcdTBEODBcdTBEQTBcdTBEQzBcdTBERTBcdTBFMDBcdTBFMjBcdTBFNDBcdTBFNjBcdTBFODBcMDAwIisKKyAgICAgICAgIlwwMDBcdTBFQTBcdTBFQzBcdTBFRTBcdTBGMDBcdTBGMjBcdTBGNDBcdTBGNjBcdUE1QTVcMDE2XDAwMFx1MEY4MFx1MEZBMCIrCisgICAgICAgICJcdTBGQzBcdTBGRTBcMDAwXHUxMDAwXHUxMDIwXDAwMFx1MTA0MFx1QTVBNVwwMDVcMDAwXHUxMDYwXDAwMFwwMDBcdTEwODAiKworICAgICAgICAiXHVBNUE1XDAxNlwwMDBcdTEwQTBcdTEwQzBcdTEwRTBcdTExMDBcMDAwXDAwMFx1MTEyMFx1MTE0MFx1MTE2MFx1QTVBNSIrCisgICAgICAgICJcMDA2XDAwMFx1MTE4MFx1QTVBNVwwMjBcMDAwXHUxMUEwXHUxMUMwXDAwMFwwMDBcMDAwXHUxMUUwXHVBNUE1XDAwN1wwMDAiKworICAgICAgICAiXHUxMjAwXHUxMjIwXHUxMjQwXHVBNUE1XDAyMFwwMDBcdTEyNjBcdTEyODBcdTEyQTBcdTEyQzBcdTEyRTBcdTEzMDBcMDAwIisKKyAgICAgICAgIlx1MTMyMFx1MTM0MFwwMDBcMDAwXHUxMzYwXHUxMzgwXHUxM0EwXHUxM0MwXHUxM0UwXHUxNDAwXHVBNUE1XDAxN1wwMDAiKworICAgICAgICAiXHUxNDIwXHUxNDQwXHUxNDYwXHUxNDgwXHUxNEEwXHUxNEMwXHUxNEUwXHUxNTAwXHUxNTIwXDAwMFwwMDBcdTE1NDBcdTE1NjAiKworICAgICAgICAiXHUxNTgwXHUxNUEwXHUxNUMwXHUxNUUwXHUxNjAwXHVBNUE1XDAxNlwwMDBcdTE2MjBcdTE2NDBcdTE2NjBcdTE2ODBcdTE2QTAiKworICAgICAgICAiXHUxNkMwXHUxNkUwXHUxNzAwXHUxNzIwXDAwMFwwMDBcdTE3NDBcdTE3NjBcMDAwXHUxNzgwXHUxN0EwXHUxN0MwXHUxN0UwIisKKyAgICAgICAgIlx1QTVBNVwwMTZcMDAwXHUxODAwXHUxODIwXDAwMFwwMDBcdTE4NDBcMDAwXDAwMFwwMDBcdTE4NjBcMDAwXDAwMFwwMDAiKworICAgICAgICAiXHUxODgwXHVBNUE1XDAyM1wwMDBcdTE4QTBcdTE4QzBcdTE4RTBcdTE5MDBcdTE5MjBcdTE5NDBcdTE5NjBcdTE5ODBcdTE5QTAiKworICAgICAgICAiXDAwMFwwMDBcdTE5QzBcdTE5RTBcMDAwXHUxQTAwXHUxQTIwXHUxQTQwXHUxQTYwXHVBNUE1XDAxNlwwMDBcdTFBODBcdTFBQTAiKworICAgICAgICAiXHUxQUMwXHUxQUUwXHUxQjAwXHUxQjIwXHUxQjQwXHUxQjYwXHUxQjgwXDAwMFwwMDBcdTFCQTBcdTFCQzBcdTFCRTBcdTFDMDAiKworICAgICAgICAiXHUxQzIwXHVBNUE1XDAyMFwwMDBcdTFDNDBcdUE1QTVcMDIzXDAwMFx1MUM2MFx1MUM4MFx1QTVBNVwwMTJcMDAwXHUxQ0EwIisKKyAgICAgICAgIlx1QTVBNVwwMTBcMDAwXHUxQ0MwXHVBNUE1XDAwN1wwMDBcdTFDRTBcdTFEMDBcdTFEMjBcdTFENDBcdUE1QTVcMDIzXDAwMCIrCisgICAgICAgICJcdTFENjBcdTFEODBcdUE1QTVcMDA3XDAwMFx1MURBMFx1MURDMFx1MURFMFx1MUUwMFx1QTVBNVwwMjVcMDAwXHUxRTIwIisKKyAgICAgICAgIlx1QTVBNVwwMzdcMDAwXHUxRTQwXHVBNUE1XDAzN1wwMDBcdTFFNjBcdUE1QTVcMDM3XDAwMFx1MUU4MFx1QTVBNVwwMzciKworICAgICAgICAiXDAwMFx1MUVBMFx1QTVBNVwwMzdcMDAwXHUxRUMwXHVBNUE1XDAzN1wwMDBcdTFFRTBcdUE1QTVcMDM3XDAwMFx1MUYwMCIrCisgICAgICAgICJcdUE1QTVcMDM3XDAwMFx1MUYyMFx1QTVBNVwwMzdcMDAwXHUxRjQwXHVBNUE1XDAzN1wwMDBcdTFGNjBcdUE1QTVcMDM3IisKKyAgICAgICAgIlwwMDBcdTFGODBcdUE1QTUgXDAwMFx1MUZBMFx1QTVBNVwwMzdcMDAwXHUxRkMwXHVBNUE1XDAzN1wwMDBcdTFGRTBcdUE1QTUiKworICAgICAgICAiXDAzN1wwMDBcdTIwMDBcdUE1QTVcMDM3XDAwMFx1MjAyMFx1QTVBNVwwMzdcMDAwXHUyMDQwXHVBNUE1XDAzN1wwMDBcdTIwNjAiKworICAgICAgICAiXHVBNUE1XDAzN1wwMDBcdTIwODBcdUE1QTVcMDM3XDAwMFx1MjBBMFx1QTVBNVwwMzdcMDAwXHUyMEMwXHVBNUE1KVwwMDAiKworICAgICAgICAiXHUyMEUwXHUyMTAwXHUyMTIwXHVBNUE1XDAzNlwwMDBcdTIxNDBcdTIxNjBcdUE1QTVcdTAxMjhcMDAwIgorICAgICAgICAsCisgICAgICAgICJcMDAwXHUyMTgwXHVBNUE1IVwwMDBcdTFGRURcdUE1QTVcMDA1XDAwMFx1MDBDMFx1MUZDRFwwMDBcMDAwXHUxRkREXDAwMCIrCisgICAgICAgICJcdTAwQzhcMDAwXDAwMFwwMDBcdTAwQ0NcdUE1QTVcMDA0XDAwMFx1MDFGOFx1MDBEMlx1QTVBNVwwMDRcMDAwXHUwMEQ5IisKKyAgICAgICAgIlwwMDBcdTFFODBcMDAwXHUxRUYyXDAwMFx1MDBFMFwwMDBcMDAwXDAwMFx1MDBFOFwwMDBcMDAwXDAwMFx1MDBFQ1x1QTVBNSIrCisgICAgICAgICJcMDA0XDAwMFx1MDFGOVx1MDBGMlx1QTVBNVwwMDRcMDAwXHUwMEY5XDAwMFx1MUU4MVwwMDBcdTFFRjNcMDAwXDAwMFwwMDAiKworICAgICAgICAiXHUxRUE2XHVBNUE1XDAwN1wwMDBcdTFFQzBcdUE1QTVcMDEwXDAwMFx1MUVEMlx1QTVBNVwwMDZcMDAwXHUwMURCXDAwMCIrCisgICAgICAgICJcMDAwXDAwMFx1MUVBN1x1QTVBNVwwMDdcMDAwXHUxRUMxXHVBNUE1XDAxMFwwMDBcdTFFRDNcdUE1QTVcMDA2XDAwMFx1MDFEQyIrCisgICAgICAgICJcdUE1QTVcMDA0XDAwMFx1MUVCMFx1MUVCMVx1QTVBNVwwMTJcMDAwXHUxRTE0XHUxRTE1XHVBNUE1XDAzNVwwMDBcdTFFNTAiKworICAgICAgICAiXHUxRTUxXHVBNUE1JVwwMDBcdTFFRENcdTFFRERcdTFFRUFcdTFFRUJcdUE1QTUuXDAwMFx1MUZCQVx1MUZDOFx1MUZDQSIrCisgICAgICAgICJcdTFGREFcdTFGRjhcMDAwXHUxRkVBXHUxRkZBXDAwMFwwMDBcdTFGNzBcdTFGNzJcdTFGNzRcdTFGNzZcdTFGNzhcMDAwIisKKyAgICAgICAgIlx1MUY3QVx1MUY3Q1x1MUZEMlx1MUZFMlx1QTVBNVwwMDRcMDAwXHUwNDAwXDAwMFwwMDBcdTA0MERcdUE1QTVcMDEwXDAwMCIrCisgICAgICAgICJcdTA0NTBcMDAwXDAwMFx1MDQ1RFx1QTVBNTpcMDAwXHUxRjAyXHUxRjAzXHVBNUE1XDAwNlwwMDBcdTFGMEFcdTFGMEIiKworICAgICAgICAiXHVBNUE1XDAwNlwwMDBcdTFGMTJcdTFGMTNcdTFGMUFcdTFGMUJcdTFGMjJcdTFGMjNcdUE1QTVcMDA2XDAwMFx1MUYyQSIrCisgICAgICAgICJcdTFGMkJcdUE1QTVcMDA2XDAwMFx1MUYzMlx1MUYzM1x1MUYzQVx1MUYzQlx1MUY0Mlx1MUY0M1x1MUY0QVx1MUY0Qlx1MUY1MiIrCisgICAgICAgICJcdTFGNTNcdTFGNUJcdTFGNjJcdTFGNjNcdUE1QTVcMDA2XDAwMFx1MUY2QVx1MUY2Qlx1QTVBNVwwMTFcMDAwXHUxRjgyIisKKyAgICAgICAgIlx1MUY4M1x1MUY4QVx1MUY4Qlx1MUY5Mlx1MUY5M1x1MUY5QVx1MUY5Qlx1MUZBMlx1MUZBM1x1MUZBQVx1MUZBQlx1MUZCMiIrCisgICAgICAgICJcMDAwXHVGRThFXHUxRkMyXDAwMFx1RkUxN1x1MUZGMlwwMDBcdUZCQzZcdUE1QTVcMDE2XDAwMFx1MDM4NVx1QTVBNVwwMDQiKworICAgICAgICAiXDAwMFx1MDNEM1x1MDBDMVx1MUZDRVwwMDBcdTAxMDZcdTFGREVcMDAwXHUwMEM5XDAwMFx1MDFGNFwwMDBcdTAwQ0RcMDAwIisKKyAgICAgICAgIlx1MUUzMFx1MDEzOVx1MUUzRVx1MDE0M1x1MDBEM1x1MUU1NFx1MDE1NFx1MDE1QVwwMDBcdTAwREFcMDAwXHUxRTgyXDAwMCIrCisgICAgICAgICJcdTAwRERcdTAxNzlcdTAwRTFcMDAwXHUwMTA3XDAwMFx1MDBFOVwwMDBcdTAxRjVcMDAwXHUwMEVEXDAwMFx1MUUzMVx1MDEzQSIrCisgICAgICAgICJcdTFFM0ZcdTAxNDRcdTAwRjNcdTFFNTVcdTAxNTVcdTAxNUJcMDAwXHUwMEZBXDAwMFx1MUU4M1wwMDBcdTAwRkRcdTAxN0EiKworICAgICAgICAiXDAwMFwwMDBcdTFFQTRcMDAwXDAwMFx1MDFGQVx1MDFGQ1x1MUUwOFwwMDBcMDAwXHUxRUJFXHVBNUE1XDAwNFwwMDBcdTFFMkUiKworICAgICAgICAiXDAwMFwwMDBcMDAwXHUxRUQwXHUxRTRDXDAwMFx1MDFGRVwwMDBcMDAwXDAwMFx1MDFEN1wwMDBcMDAwXDAwMFx1MUVBNSIrCisgICAgICAgICJcMDAwXDAwMFx1MDFGQlx1MDFGRFx1MUUwOVwwMDBcMDAwXHUxRUJGXHVBNUE1XDAwNFwwMDBcdTFFMkZcMDAwXDAwMFwwMDAiKworICAgICAgICAiXHUxRUQxXHUxRTREXDAwMFx1MDFGRlwwMDBcMDAwXDAwMFx1MDFEOFx1QTVBNVwwMDRcMDAwXHUxRUFFXHUxRUFGXHVBNUE1IisKKyAgICAgICAgIlwwMTJcMDAwXHUxRTE2XHUxRTE3XHVBNUE1XDAzNVwwMDBcdTFFNTJcdTFFNTNcdUE1QTVcMDIwXDAwMFx1MUU3OFx1MUU3OSIrCisgICAgICAgICJcdUE1QTVcMDIzXDAwMFx1MUVEQVx1MUVEQlx1MUVFOFx1MUVFOVx1QTVBNS5cMDAwXHUwMzg2XHUwMzg4XHUwMzg5XHUwMzhBIisKKyAgICAgICAgIlx1MDM4Q1wwMDBcdTAzOEVcdTAzOEZcMDAwXDAwMFx1MDNBQ1x1MDNBRFx1MDNBRVx1MDNBRlx1MDNDQ1wwMDBcdTAzQ0QiKworICAgICAgICAiXHUwM0NFXHUwMzkwXHUwM0IwXDAwMFwwMDBcMDAwXHUwNDAzXHVBNUE1XDAwNFwwMDBcdTA0MENcdUE1QTVcMDA2XDAwMCIrCisgICAgICAgICJcdTA0NTNcdUE1QTVcMDA0XDAwMFx1MDQ1Q1x1QTVBNTlcMDAwXHUxRjA0XHUxRjA1XHVBNUE1XDAwNlwwMDBcdTFGMEMiKworICAgICAgICAiXHUxRjBEXHVBNUE1XDAwNlwwMDBcdTFGMTRcdTFGMTVcdTFGMUNcdTFGMURcdTFGMjRcdTFGMjVcdUE1QTVcMDA2XDAwMCIrCisgICAgICAgICJcdTFGMkNcdTFGMkRcdUE1QTVcMDA2XDAwMFx1MUYzNFx1MUYzNVx1MUYzQ1x1MUYzRFx1MUY0NFx1MUY0NVx1MUY0Q1x1MUY0RCIrCisgICAgICAgICJcdTFGNTRcdTFGNTVcdTFGNURcdTFGNjRcdTFGNjVcdUE1QTVcMDA2XDAwMFx1MUY2Q1x1MUY2RFx1QTVBNVwwMTFcMDAwIisKKyAgICAgICAgIlx1MUY4NFx1MUY4NVx1MUY4Q1x1MUY4RFx1MUY5NFx1MUY5NVx1MUY5Q1x1MUY5RFx1MUZBNFx1MUZBNVx1MUZBQ1x1MUZBRCIrCisgICAgICAgICJcdTFGQjRcMDAwXHVGRThEXHUxRkM0XDAwMFx1RkUxNlx1MUZGNFwwMDBcdUZCQzVcdUE1QTVcMDI0XDAwMFx1MDBDMlwwMDAiKworICAgICAgICAiXDAwMFx1MDEwOFwwMDBcMDAwXHUwMENBXDAwMFx1MDExQ1x1MDEyNFx1MDBDRVx1MDEzNFx1QTVBNVwwMDRcMDAwXHUwMEQ0IisKKyAgICAgICAgIlwwMDBcMDAwXHUwMTVDXDAwMFx1MDBEQlwwMDBcdTAxNzRcMDAwXHUwMTc2XHUxRTkwXHUwMEUyXDAwMFx1MDEwOVwwMDAiKworICAgICAgICAiXHUwMEVBXDAwMFx1MDExRFx1MDEyNVx1MDBFRVx1MDEzNVx1QTVBNVwwMDRcMDAwXHUwMEY0XDAwMFwwMDBcdTAxNURcMDAwIisKKyAgICAgICAgIlx1MDBGQlwwMDBcdTAxNzVcMDAwXHUwMTc3XHUxRTkxXHVBNUE1XDAxMVwwMDBcdTFFQUNcdTFFQURcdUE1QTVcMDI2XDAwMCIrCisgICAgICAgICJcdTFFQzZcdTFFQzdcdUE1QTVcMDIyXDAwMFx1MUVEOFx1MUVEOVx1QTVBNVwwMjVcMDAwXHUwMEMzXHVBNUE1XDAwNVwwMDAiKworICAgICAgICAiXHUxRUJDXDAwMFwwMDBcMDAwXHUwMTI4XHVBNUE1XDAwNFwwMDBcdTAwRDFcdTAwRDVcdUE1QTVcMDA0XDAwMFx1MDE2OCIrCisgICAgICAgICJcdTFFN0NcMDAwXDAwMFx1MUVGOFwwMDBcdTAwRTNcMDAwXDAwMFwwMDBcdTFFQkRcMDAwXDAwMFwwMDBcdTAxMjlcdUE1QTUiKworICAgICAgICAiXDAwNFwwMDBcdTAwRjFcdTAwRjVcdUE1QTVcMDA0XDAwMFx1MDE2OVx1MUU3RFwwMDBcMDAwXHUxRUY5XDAwMFwwMDBcMDAwIisKKyAgICAgICAgIlx1MUVBQVx1QTVBNVwwMDdcMDAwXHUxRUM0XHVBNUE1XDAxMFwwMDBcdTFFRDZcdUE1QTVcMDEyXDAwMFx1MUVBQlx1QTVBNSIrCisgICAgICAgICJcMDA3XDAwMFx1MUVDNVx1QTVBNVwwMTBcMDAwXHUxRUQ3XHVBNUE1XDAxM1wwMDBcdTFFQjRcdTFFQjVcdUE1QTVcMDIwIisKKyAgICAgICAgIlwwMDBcdTFFRTBcdTFFRTFcdTFFRUVcdTFFRUZcdUE1QTVcMDMzXDAwMFx1MDEwMFx1QTVBNVwwMDVcMDAwXHUwMTEyXDAwMCIrCisgICAgICAgICJcdTFFMjBcMDAwXHUwMTJBXHVBNUE1XDAwNVwwMDBcdTAxNENcdUE1QTVcMDA0XDAwMFx1MDE2QVwwMDBcMDAwXDAwMFx1MDIzMiIrCisgICAgICAgICJcMDAwXHUwMTAxXDAwMFwwMDBcMDAwXHUwMTEzXDAwMFx1MUUyMVwwMDBcdTAxMkJcdUE1QTVcMDA1XDAwMFx1MDE0RFx1QTVBNSIrCisgICAgICAgICJcMDA0XDAwMFx1MDE2QlwwMDBcMDAwXDAwMFx1MDIzM1x1QTVBNVwwMDVcMDAwXHUwMURFXDAwMFx1MDFFMlx1QTVBNVwwMTUiKworICAgICAgICAiXDAwMFx1MDIyQ1x1MDIyQVx1QTVBNVwwMDRcMDAwXHUwMUQ1XHVBNUE1XDAwNVwwMDBcdTAxREZcMDAwXHUwMUUzXHVBNUE1IisKKyAgICAgICAgIlwwMTVcMDAwXHUwMjJEXHUwMjJCXHVBNUE1XDAwNFwwMDBcdTAxRDZcdUE1QTVcMDIzXDAwMFx1MDFFQ1x1MDFFRFx1QTVBNSIrCisgICAgICAgICIkXDAwMFx1MDFFMFx1MDFFMVx1QTVBNVwwMDZcMDAwXHUwMjMwXHUwMjMxXHVBNUE1XDAwNVwwMDBcdTFGQjlcMDAwXDAwMCIrCisgICAgICAgICJcdTFGRDlcMDAwXDAwMFx1MUZFOVwwMDBcMDAwXDAwMFx1MUZCMVwwMDBcMDAwXHUxRkQxXDAwMFwwMDBcdTFGRTFcdUE1QTUiKworICAgICAgICAiXDAxMlwwMDBcdTA0RTJcMDAwXDAwMFx1MDRFRVx1QTVBNVwwMTBcMDAwXHUwNEUzXDAwMFwwMDBcdTA0RUZcdUE1QTUtIisKKyAgICAgICAgIlwwMDBcdTFFMzhcdTFFMzlcdUE1QTVcMDM0XDAwMFx1MUU1Q1x1MUU1RFx1QTVBNVwwMzBcMDAwXHVGRUQ1XDAwMFx1RkU4QyIrCisgICAgICAgICJcdUE1QTVcMDMyXDAwMFx1MDEwMlx1QTVBNVwwMDVcMDAwXHUwMTE0XDAwMFx1MDExRVwwMDBcdTAxMkNcdUE1QTVcMDA1IisKKyAgICAgICAgIlwwMDBcdTAxNEVcdUE1QTVcMDA0XDAwMFx1MDE2Q1x1QTVBNVwwMDVcMDAwXHUwMTAzXDAwMFwwMDBcMDAwXHUwMTE1XDAwMCIrCisgICAgICAgICJcdTAxMUZcMDAwXHUwMTJEXHVBNUE1XDAwNVwwMDBcdTAxNEZcdUE1QTVcMDA0XDAwMFx1MDE2RFx1QTVBNVwwMjdcMDAwIisKKyAgICAgICAgIlx1MUUxQ1x1MUUxRFx1QTVBNVwwMTNcMDAwXHUxRkI4XDAwMFwwMDBcdTFGRDhcMDAwXDAwMFx1MUZFOFwwMDBcMDAwXDAwMCIrCisgICAgICAgICJcdTFGQjBcMDAwXDAwMFx1MUZEMFwwMDBcMDAwXHUxRkUwXHVBNUE1XDAwNVwwMDBcdTA0RDBcMDAwXHUwNEQ2XHUwNEMxIisKKyAgICAgICAgIlwwMDBcdTA0MTlcMDAwXDAwMFx1MDQwRVwwMDBcMDAwXDAwMFx1MDREMVwwMDBcdTA0RDdcdTA0QzJcMDAwXHUwNDM5XDAwMCIrCisgICAgICAgICJcMDAwXHUwNDVFXHVBNUE1XDAzN1wwMDBcdTFFQjZcdTFFQjdcdUE1QTUkXDAwMFx1RkVENFwwMDBcdUZFOEJcdUE1QTUiKworICAgICAgICAiXDAyN1wwMDBcdTFFOUJcMDAwXDAwMFx1MDIyNlwwMDBcdTFFMDJcdTAxMEFcMDAwXHUxRTBBXHUwMTE2XHUxRTFFXHUwMTIwIisKKyAgICAgICAgIlx1MUUyMlx1MDEzMFwwMDBcMDAwXDAwMFx1MUU0MFx1MUU0NFx1MDIyRVx1MUU1Nlx1MUU1OFx1MUU2MFx1MUU2QVwwMDAiKworICAgICAgICAiXDAwMFx1MUU4Nlx1MUU4QVx1MUU4RVx1MDE3Qlx1MDIyN1x1MUUwM1x1MDEwQlx1MUUwQlx1MDExN1x1MUUxRlx1MDEyMSIrCisgICAgICAgICJcdTFFMjNcdUE1QTVcMDA0XDAwMFx1MUU0MVx1MUU0NVx1MDIyRlx1MUU1N1x1MUU1OVx1MUU2MVx1MUU2QlwwMDBcMDAwIisKKyAgICAgICAgIlx1MUU4N1x1MUU4Qlx1MUU4Rlx1MDE3Q1x1QTVBNVwwMjBcMDAwXHUxRTY0XHUxRTY1XDAwMFwwMDBcdTFFNjZcdTFFNjciKworICAgICAgICAiXHVBNUE1J1wwMDBcdTFFNjhcdTFFNjlcdUE1QTVcMDE0XDAwMFx1MDNENFx1MDBDNFx1QTVBNVwwMDVcMDAwXHUwMENCIisKKyAgICAgICAgIlwwMDBcMDAwXHUxRTI2XHUwMENGXHVBNUE1XDAwNVwwMDBcdTAwRDZcdUE1QTVcMDA0XDAwMFx1MDBEQ1wwMDBcdTFFODQiKworICAgICAgICAiXHUxRThDXHUwMTc4XDAwMFx1MDBFNFwwMDBcMDAwXDAwMFx1MDBFQlwwMDBcMDAwXHUxRTI3XHUwMEVGXHVBNUE1XDAwNSIrCisgICAgICAgICJcMDAwXHUwMEY2XDAwMFwwMDBcMDAwXHUxRTk3XHUwMEZDXDAwMFx1MUU4NVx1MUU4RFx1MDBGRlx1QTVBNVwwMjVcMDAwIisKKyAgICAgICAgIlx1MUU0RVx1QTVBNVwwMzNcMDAwXHUxRTRGXHVBNUE1KVwwMDBcdTFFN0FcdTFFN0JcdUE1QTUmXDAwMFx1MDNBQVwwMDAiKworICAgICAgICAiXDAwMFx1MDNBQlx1QTVBNVwwMDZcMDAwXHUwM0NBXDAwMFwwMDBcdTAzQ0JcdUE1QTVcMDA0XDAwMFx1MDQwN1x1MDREMiIrCisgICAgICAgICJcMDAwXHUwNDAxXHUwNERDXHUwNERFXHUwNEU0XDAwMFx1MDRFNlx1MDRGMFx1MDRGNFx1MDRGOFx1MDRFQ1x1MDREM1wwMDAiKworICAgICAgICAiXHUwNDUxXHUwNEREXHUwNERGXHUwNEU1XDAwMFx1MDRFN1x1MDRGMVx1MDRGNVx1MDRGOVx1MDRFRFx1MDQ1N1wwMDBcMDAwIisKKyAgICAgICAgIlx1MDREQVx1MDREQlx1MDRFQVx1MDRFQlx1QTVBNVwwMzBcMDAwXHUxRUEyXHVBNUE1XDAwNVwwMDBcdTFFQkFcMDAwXDAwMCIrCisgICAgICAgICJcMDAwXHUxRUM4XHVBNUE1XDAwNVwwMDBcdTFFQ0VcdUE1QTVcMDA0XDAwMFx1MUVFNlwwMDBcMDAwXDAwMFx1MUVGNlwwMDAiKworICAgICAgICAiXHUxRUEzXDAwMFwwMDBcMDAwXHUxRUJCXDAwMFwwMDBcMDAwXHUxRUM5XHVBNUE1XDAwNVwwMDBcdTFFQ0ZcdUE1QTVcMDA0IisKKyAgICAgICAgIlwwMDBcdTFFRTdcMDAwXDAwMFwwMDBcdTFFRjdcMDAwXDAwMFwwMDBcdTFFQThcdUE1QTVcMDA3XDAwMFx1MUVDMlx1QTVBNSIrCisgICAgICAgICJcMDEwXDAwMFx1MUVENFx1QTVBNVwwMTJcMDAwXHUxRUE5XHVBNUE1XDAwN1wwMDBcdTFFQzNcdUE1QTVcMDEwXDAwMFx1MUVENSIrCisgICAgICAgICJcdUE1QTVcMDEzXDAwMFx1MUVCMlx1MUVCM1x1QTVBNVwwMjBcMDAwXHUxRURFXHUxRURGXHUxRUVDXHUxRUVEXHVBNUE1IisKKyAgICAgICAgIlwwMzNcMDAwXHUwMEM1XHVBNUE1XDAyNFwwMDBcdTAxNkVcdUE1QTVcMDA1XDAwMFx1MDBFNVx1QTVBNVwwMjJcMDAwXHUwMTZGIisKKyAgICAgICAgIlwwMDBcdTFFOThcMDAwXHUxRTk5XHVBNUE1XDAzNVwwMDBcdTAxNTBcdUE1QTVcMDA0XDAwMFx1MDE3MFx1QTVBNVwwMjMiKworICAgICAgICAiXDAwMFx1MDE1MVx1QTVBNVwwMDRcMDAwXHUwMTcxXHVBNUE1XDA0MlwwMDBcdTA0RjJcdUE1QTVcMDEzXDAwMFx1MDRGMyIrCisgICAgICAgICJcdUE1QTVcMDQyXDAwMFx1MDFDRFwwMDBcMDAwXHUwMTBDXDAwMFx1MDEwRVx1MDExQVwwMDBcdTAxRTZcdTAyMUVcdTAxQ0YiKworICAgICAgICAiXDAwMFx1MDFFOFx1MDEzRFwwMDBcdTAxNDdcdTAxRDFcMDAwXHUwMTU4XHUwMTYwXHUwMTY0XHUwMUQzXHVBNUE1XDAwNCIrCisgICAgICAgICJcMDAwXHUwMTdEXHUwMUNFXDAwMFx1MDEwRFx1MDEwRlx1MDExQlwwMDBcdTAxRTdcdTAyMUZcdTAxRDBcdTAxRjBcdTAxRTkiKworICAgICAgICAiXHUwMTNFXDAwMFx1MDE0OFx1MDFEMlwwMDBcdTAxNTlcdTAxNjFcdTAxNjVcdTAxRDRcdUE1QTVcMDA0XDAwMFx1MDE3RSIrCisgICAgICAgICJcdUE1QTVcMDMyXDAwMFx1MDFEOVx1QTVBNVwwMzNcMDAwXHUwMURBXHVBNUE1XDAzMlwwMDBcdTAxRUVcdUE1QTUsXDAwMCIrCisgICAgICAgICJcdTAxRUZcdUE1QTVcMDE1XDAwMFx1MDIwMFx1QTVBNVwwMDVcMDAwXHUwMjA0XDAwMFwwMDBcMDAwXHUwMjA4XHVBNUE1IisKKyAgICAgICAgIlwwMDVcMDAwXHUwMjBDXDAwMFx1MDIxMFwwMDBcMDAwXHUwMjE0XHVBNUE1XDAwNVwwMDBcdTAyMDFcMDAwXDAwMFwwMDAiKworICAgICAgICAiXHUwMjA1XDAwMFwwMDBcMDAwXHUwMjA5XHVBNUE1XDAwNVwwMDBcdTAyMERcMDAwXHUwMjExXDAwMFwwMDBcdTAyMTVcdUE1QTUiKworICAgICAgICAiXDAyM1wwMDBcdTA0NzZcdTA0NzdcdUE1QTVcMDM0XDAwMFx1MDIwMlx1QTVBNVwwMDVcMDAwXHUwMjA2XDAwMFwwMDBcMDAwIisKKyAgICAgICAgIlx1MDIwQVx1QTVBNVwwMDVcMDAwXHUwMjBFXDAwMFx1MDIxMlwwMDBcMDAwXHUwMjE2XHVBNUE1XDAwNVwwMDBcdTAyMDMiKworICAgICAgICAiXDAwMFwwMDBcMDAwXHUwMjA3XDAwMFwwMDBcMDAwXHUwMjBCXHVBNUE1XDAwNVwwMDBcdTAyMEZcMDAwXHUwMjEzXDAwMCIrCisgICAgICAgICJcMDAwXHUwMjE3XHVBNUE1JFwwMDBcdTFGMDhcdTFGMThcdTFGMjhcdTFGMzhcdTFGNDhcMDAwXDAwMFx1MUY2OFwwMDAiKworICAgICAgICAiXDAwMFx1MUYwMFx1MUYxMFx1MUYyMFx1MUYzMFx1MUY0MFx1MUZFNFx1MUY1MFx1MUY2MFx1QTVBNVwwMzZcMDAwXHUxRjgwIisKKyAgICAgICAgIlwwMDBcdTFGODhcdTFGOTBcMDAwXHUxRjk4XHUxRkEwXDAwMFx1MUZBOFx1QTVBNSdcMDAwXHUxRjA5XHUxRjE5XHUxRjI5IisKKyAgICAgICAgIlx1MUYzOVx1MUY0OVx1MUZFQ1x1MUY1OVx1MUY2OVwwMDBcMDAwXHUxRjAxXHUxRjExXHUxRjIxXHUxRjMxXHUxRjQxXHUxRkU1IisKKyAgICAgICAgIlx1MUY1MVx1MUY2MVx1QTVBNVwwMzZcMDAwXHUxRjgxXDAwMFx1MUY4OVx1MUY5MVwwMDBcdTFGOTlcdTFGQTFcMDAwXHUxRkE5IisKKyAgICAgICAgIlx1QTVBNSRcMDAwXHUwMUEwXHVBNUE1XDAwNFwwMDBcdTAxQUZcdUE1QTVcMDIzXDAwMFx1MDFBMVx1QTVBNVwwMDRcMDAwIisKKyAgICAgICAgIlx1MDFCMFx1QTVBNVwwMjZcMDAwXHUxRURDXHUxRURBXHVGRTFGXHUxRUUwXHVGRTE1XDAwMFx1MUVFQVx1MUVFOFx1RkRERCIrCisgICAgICAgICJcdUZEQzZcdUE1QTVcMDIyXDAwMFx1MUVERFx1MUVEQlx1RkM5Qlx1MUVFMVx1RkM4NVwwMDBcdTFFRUJcdTFFRTlcdUZDNDciKworICAgICAgICAiXHVGQzNCXHVBNUE1XDAxN1wwMDBcdUZEMkRcdUZEMUNcdUZEMERcdUZDRkVcdUZDRjBcdUZDRTJcdUE1QTVcMDE0XDAwMCIrCisgICAgICAgICJcdTFFRUVcdTFFRUZcdUZCQjdcdUZCQTZcdUZCOTVcdUZCODRcdUZCNzJcdUZCNjNcdUZCNTRcdUZCNDJcdUE1QTVcMDI0IisKKyAgICAgICAgIlwwMDBcdUZCNzNcdUZCNjRcdUZCNTVcdUZCNDNcdUZCMkFcdUZGQTFcdUZGOEVcdUZGN0FcdUZGNjRcdUZGNTNcdUZGNDMiKworICAgICAgICAiXHVGRjM0XHVBNUE1XDAzNFwwMDBcdUZENzlcdUZENkRcdUZENURcdUZENERcdUE1QTVcMDA0XDAwMFx1RkQwRVx1RkNGRiIrCisgICAgICAgICJcdUZDRjFcdUZDRTNcdUE1QTVcMDEyXDAwMFx1RkMwQ1x1RkJGQ1x1RkJFQlx1RkJFMlx1RkJEOFx1RkJDOFx1RkJCOFx1RkJBNyIrCisgICAgICAgICJcdUE1QTVcMDE3XDAwMFx1RkQ3N1x1RkQ2Qlx1RkQ1Qlx1RkQ0Qlx1RkQ0M1x1RkQzQVx1RkQyQlx1RkQxQVx1QTVBNVwwMzIiKworICAgICAgICAiXDAwMFx1RkI5Mlx1RkI4MVx1RkI3MFx1RkI2MVx1RkI1Mlx1RkI0MVx1RkIyOVx1RkZBMFx1RkY4RFx1RkY3OVx1QTVBNSIrCisgICAgICAgICJcMDM2XDAwMFx1MUVFMlx1MUVFM1x1MUVERVx1MUVERlx1RkJFMVx1RkJENlx1RkJDNFx1RkJCNlx1RkJBNVx1RkI5NFx1RkI4MyIrCisgICAgICAgICJcdUZCNzFcdUZCNjJcdUZCNTNcdUE1QTVcMDEyXDAwMFx1MUVGMFx1MUVGMVx1MUVFQ1x1MUVFRFx1QTVBNVwwMzNcMDAwIisKKyAgICAgICAgIlx1MUVBMFwwMDBcdTFFMDRcMDAwXDAwMFx1MUUwQ1x1MUVCOFwwMDBcMDAwXHUxRTI0XHUxRUNBXDAwMFx1MUUzMlx1MUUzNiIrCisgICAgICAgICJcdTFFNDJcdTFFNDZcdTFFQ0NcMDAwXHUxRTVBXHUxRTYyXHUxRTZDXHUxRUU0XHUxRTdFXHUxRTg4XDAwMFx1MUVGNFx1MUU5MiIrCisgICAgICAgICJcdTFFQTFcdTFFMDVcMDAwXHUxRTBEXHUxRUI5XDAwMFwwMDBcdTFFMjVcdTFFQ0JcMDAwXHUxRTMzXHUxRTM3XHUxRTQzIisKKyAgICAgICAgIlx1MUU0N1x1MUVDRFwwMDBcdTFFNUJcdTFFNjNcdTFFNkRcdTFFRTVcdTFFN0ZcdTFFODlcMDAwXHUxRUY1XHUxRTkzXHVGRUJDIisKKyAgICAgICAgIlx1RkVCNlx1MUVBQ1x1RkVBNVx1RkU5Rlx1RkU5OFwwMDBcMDAwXHVGRTdCXHVGRTZGXHUxRUM2XHVGRTVDXHVGRTUwXHVGRTRBIisKKyAgICAgICAgIlx1RkU0M1x1RkUzRFx1RkUyRlx1RkUyNlx1RkUyMlx1MUVEOFx1RkUxQlx1RkUxM1wwMDBcdUZERjVcdUZERTlcdUZERDgiKworICAgICAgICAiXHVGREMyXHVGREIxXHVGRDk3XHVGRDhCXHUxRUFEXHVGRDc1XHVGRDY4XHVGRDU4XDAwMFwwMDBcdUZEMzhcdUZEMjhcdTFFQzciKworICAgICAgICAiXHVGRDA4XHVGQ0Y5XHVGQ0VCXHVGQ0REXHVGQ0QxXHVGQ0JCXHVGQ0FEXHVGQ0EzXHUxRUQ5XHVGQzkwXHVGQzgxXDAwMCIrCisgICAgICAgICJcdUZDNjBcdUZDNTJcdUZDNDZcdUZDM0FcdUZDMjlcdUZDMTRcdUZDMTFcdUZDMDhcdTFFQjZcdTFFQjdcdUE1QTVcMDEwIisKKyAgICAgICAgIlwwMDBcdUZCM0NcdUZCMjZcdUZGNzVcdUZGNjBcdUZGNEZcdUZGM0ZcdUZGMzBcdUZGMjVcdUZGMENcdUZFRkJcdUE1QTUiKworICAgICAgICAiXDAwNlwwMDBcdUZFQjdcdUZFQUZcdUZFOTlcdUZFOEFcdUZFODRcdUZFN0RcdUZFNzFcdUZFNjdcdUZFNEJcdUZFMTRcdUZFMDgiKworICAgICAgICAiXHVGREVCXHVGRERBXHVGRDk5XHVGRDhEXHVGRDZBXHVGRDVBXHVGRDI5XHVGRDE4XHVGRDBBXHVGQ0ZCXHVGQ0VEXHVGQ0RGIisKKyAgICAgICAgIlx1RkNCQ1x1RkNBRVx1RkM5MVx1RkM4Mlx1RkM3NVx1RkM2Qlx1RkM2MVx1RkM1M1x1RkMyQlx1RkMxQ1x1RkMwQVx1RkJGOSIrCisgICAgICAgICJcdUZCRDRcdUZCQzJcdUZCQjJcdUZCQTFcdUZCOTBcdUZCN0ZcdUZCNkVcdUZCNUZcdUZCNEZcdUZCM0VcdUZGOEFcdUZGNzYiKworICAgICAgICAiXHVGRjYxXHVGRjUwXHVGRjQwXHVGRjMxXHVGRjI2XHVGRjFCXHVGRjE0XHVGRjBEXHVGRUZDXHUxRUUyXHUxRUUzXHUxRUYwIisKKyAgICAgICAgIlx1MUVGMVwwMDBcdUZCQjRcdUZCQTNcdUZCOTFcdUZCODBcdUZCNkZcdUZCNjBcdUZCNTFcdUZCNDBcdUZCMjhcdUZGOUYiKworICAgICAgICAiXHVGRjhDXHVGRjc4XHVGRjYzXHVGRjUyXHVGRjQyXHVGRjMzXHVGRjFEXHVGRjE2XHVGRjBGXHVGRUZFXDAwMFwwMDBcdUZFQzQiKworICAgICAgICAiXHVGRUJGXHVBNUE1XDAwNFwwMDBcdUZFM0ZcdUZFMzdcdUZFMzJcdUZFMjlcdUZFMEFcdUZERkZcdUZERjhcdUZERURcdUZEREMiKworICAgICAgICAiXHVGREM1XHVGREI0XHVGREFBXHVGREExXHVGRDlBXHVGRDhFXHVGRDgyXHVGRDc4XHVGRDZDXHVGRDVDXHVGRDRDXHVGRDQ0IisKKyAgICAgICAgIlx1RkQzQlx1RkQyQ1x1RkQxQlx1RkQwQ1x1RkNGRFx1RkNFRlx1RkNFMVx1QTVBNVwwMDRcMDAwXHVGQzkzXHVGQzg0XHVGQzJEIisKKyAgICAgICAgIlx1RkMxRVwwMDBcMDAwXHVGQzBCXHVGQkZBXHVGQkU5XHVGQkUwXHVGQkQ1XHVGQkMzXHVGQkI1XHVGQkE0XHVGQjkzXHVGQjgyIisKKyAgICAgICAgIlx1QTVBNVwwMjNcMDAwXHVGQzM2XHVGQzI0XHVGQkREXHVGQkNGXHVBNUE1XDAwNlwwMDBcdUZCMzdcdUZCMjBcdUZGOTkiKworICAgICAgICAiXHVGRjg1XHVBNUE1XDAwNlwwMDBcdUZFRUFcdUZFRTNcMDAwXDAwMFx1RkVEMFx1RkVDOVx1QTVBNVwwMDRcMDAwXHVGRTk1IisKKyAgICAgICAgIlx1RkU4OVx1RkU4Mlx1RkU3QVx1QTVBNVwwMTRcMDAwXHVGRTFBXHVGRTBGXHVGRTAzXHVGREZBXHVGREQyXHVGREJFXHVBNUE1IisKKyAgICAgICAgIlwwMDZcMDAwXHVGRDcxXHVGRDYzXHVGRDUzXHVGRDQ3XHVGRDNGXHVGRDM1XHVGRDI0XHVGRDE2XHVGQ0NGXHVGQ0M0XHVBNUE1IisKKyAgICAgICAgIlwwMDZcMDAwXHUxRTY4XHUxRTY5XDAwMFwwMDBcdUZDNDRcdUZDMzdcdUZDMjVcdUZDMThcMDAwXDAwMFx1RkMwNFx1RkJGMyIrCisgICAgICAgICJcdUE1QTVcMDE0XDAwMFx1RkIyM1x1RkY5Qlx1RkY4N1x1RkY3Mlx1RkY1RFx1RkY0Q1x1RkYyNFx1RkYxOVx1RkYxMlx1RkYwOCIrCisgICAgICAgICJcdUZFRjdcdUZFRUNcdUZFRTVcdUZFRERcdUZFQUVcdUZFQTRcdUZFOUVcdUZFOTdcMDAwXHVGRTVCXHVGRTRGXHVGRTQ5IisKKyAgICAgICAgIlwwMDBcMDAwXHVGRTEyXHVGRTA2XHVGREZDXHVGREY0XHVGREU4XHVGREQ3XHVGREMwXHVGREIwXHVGREE3XHVGRDlGXDAwMCIrCisgICAgICAgICJcMDAwXHVGRDgwXHVGRDc0XHVGRDY3XHVGRDU3XHVGRDQ5XHVGRDQxXHVGRDM3XHVGRDI3XHVBNUE1XDAwNFwwMDBcdUZDREMiKworICAgICAgICAiXHVGQ0QwXHVGQ0M1XHVGQ0JBXHVGQ0FDXHVGQ0EyXHVGQzlBXHVGQzhGXHVGQzgwXHVGQzc0XHVGQzZBXHVGQzVGXDAwMCIrCisgICAgICAgICJcMDAwXHVGQzM5XHVGQzI4XHVBNUE1XDAwNFwwMDBcdUZCRjdcdUZCRTdcdUZCREVcdUZCRDFcdUZCQkZcdUZCQUZcdUZCOUUiKworICAgICAgICAiXHVGQjhFXHVGQjdEXHVGQjZDXDAwMFwwMDBcdUZCM0FcdUZCMjRcdUZGOURcdUZGODlcdUZGNzRcdUZGNUZcdUZGNEVcdUZGM0UiKworICAgICAgICAiXHVBNUE1XDAwNFwwMDBcdUZGMEJcdUZFRkFcdUZFRURcdUZFRTZcdUZFREVcdUZFRDlcdUZFRDJcdUZFQ0JcdUZFQzJcdUZFQkQiKworICAgICAgICAiXDAwMFwwMDBcdUZFQTZcdUZFQTBcdUZFODNcdUZFN0NcdUZFNzBcdUZFNjZcdUE1QTUgXDAwMFx1MUU3Mlx1QTVBNVwwMzAiKworICAgICAgICAiXDAwMFx1MUU3M1x1QTVBNVwwMzRcMDAwXHVGREYzXHVGREU2XHVGREQ1XHVGREMxXHVBNUE1XDAzMFwwMDBcdUZDNURcdUZDNTAiKworICAgICAgICAiXHVGQzQ1XHVGQzM4XHVBNUE1IVwwMDBcdUZCRDJcdUZCQzBcdUZCQjBcdUZCOUZcdUZCOEZcdUZCN0VcdUZCNkRcdUZCNUUiKworICAgICAgICAiXHVGQjRFXHVGQjNEXHVBNUE1XDAyNlwwMDBcdUZCNTBcdUZCM0ZcdUZCMjdcdUZGOUVcdUZGOEJcdUZGNzdcdUZGNjJcdUZGNTEiKworICAgICAgICAiXHVGRjQxXHVGRjMyXHVBNUE1XDAwNFwwMDBcdUZEMEJcdUZDRkNcdUZDRUVcdUZDRTBcdUE1QTUpXDAwMFx1RkIyMVx1RkY5QSIrCisgICAgICAgICJcdUZGODZcdUZGNzFcdUE1QTVcMDMwXDAwMFx1RkYwOVx1RkVGOFx1QTVBNVwwMzNcMDAwXHUxRTAwXHVBNUE1XDAzMlwwMDAiKworICAgICAgICAiXHUxRTAxXHVBNUE1XDAzMFwwMDBcdUZFQkJcdUZFQjRcdUZFQUNcdUZFQTNcdUZFOURcdUZFOTZcdUE1QTVcMDI2XDAwMCIrCisgICAgICAgICJcdUZEOTVcdUZEODlcdUZEN0ZcdUZENzNcdUZENjVcdUZENTVcdUE1QTVcMDI3XDAwMFx1RkMxMFx1RkMwNVx1RkJGNFx1RkJFNiIrCisgICAgICAgICJcdUE1QTVcMDI1XDAwMFx1RkJCM1x1RkJBMlx1QTVBNVwwMTZcMDAwXHVGRjFDXHVGRjE1XHVGRjBFXHVGRUZEXHVBNUE1IisKKyAgICAgICAgIlwwMTJcMDAwXHVGRTMxXHVGRTI4XHVGRTA5XHVGREZFXHVGREY3XHVGREVDXHVBNUE1XDAzMlwwMDBcdUZDMkNcdUZDMUQiKworICAgICAgICAiXHVBNUE1XDAzMVwwMDBcdUZFMTBcdUZFMDRcdUZERkJcdUZERjJcdUZERTRcdUZERDNcdUZEQkZcdUZEQUZcdUZEQTZcdUZEOUUiKworICAgICAgICAiXDAwMFwwMDBcdUZEN0VcdUZENzJcdUZENjRcdUZENTRcdUZENDhcdUZENDBcdUZEMzZcdUZEMjVcdUE1QTUgXDAwMFx1MDIxOCIrCisgICAgICAgICJcdTAyMUFcdUE1QTVcMDI3XDAwMFx1MDIxOVx1MDIxQlx1QTVBNVwwMjZcMDAwXHVGQzczXHVGQzY5XHVGQzVFXHVGQzUxIisKKyAgICAgICAgIlx1RkMyN1x1RkMxQVx1RkMwN1x1RkJGNlx1QTVBNSNcMDAwXHVGQzZGXHVGQzY1XDAwMFwwMDBcdUZDNDBcdUZDMzNcdUZDMjIiKworICAgICAgICAiXHVGQzE2XDAwMFwwMDBcdUZDMDFcdUZCRjBcdUE1QTVcMDM3XDAwMFx1RkU1QVx1QTVBNShcMDAwXHUwMEM3XDAwMFx1MUUxMCIrCisgICAgICAgICJcdTAyMjhcMDAwXHUwMTIyXHUxRTI4XDAwMFwwMDBcdTAxMzZcdTAxM0JcMDAwXHUwMTQ1XDAwMFwwMDBcdTAxNTZcdTAxNUUiKworICAgICAgICAiXHUwMTYyXHVBNUE1XDAxMFwwMDBcdTAwRTdcdTFFMTFcdTAyMjlcMDAwXHUwMTIzXHUxRTI5XDAwMFwwMDBcdTAxMzdcdTAxM0MiKworICAgICAgICAiXDAwMFx1MDE0NlwwMDBcMDAwXHUwMTU3XHUwMTVGXHUwMTYzXHVBNUE1XDAxNlwwMDBcdUZFNzhcdUZFNkRcdUZFNjRcdUZFNTkiKworICAgICAgICAiXHVBNUE1XDAwNFwwMDBcdUZFMkVcdUE1QTVcMDIzXDAwMFx1RkQzNFx1RkQyM1x1RkQxNVx1RkQwNVx1QTVBNVwwMDRcMDAwIisKKyAgICAgICAgIlx1RkNCOFx1QTVBNVwwMjBcMDAwXHUxRTA4XHUxRTA5XHVGQjlCXHVGQjhCXHVGQjdBXHVGQjY5XHVGQjVCXHVGQjRCXHVGQjM4IisKKyAgICAgICAgIlx1RkIyMlx1RkY3MFx1RkY1Q1x1MUUxQ1x1MUUxRFx1RkYyRVx1RkYyM1x1RkYwN1x1RkVGNlx1RkVFQlx1RkVFNFx1RkVEQyIrCisgICAgICAgICJcdUZFRDhcdUZFRDFcdUZFQ0FcdUZFQjVcdUZFQURcdUE1QTVcMDA3XDAwMFx1RkUxMVx1RkUwNVx1RkRFNVx1RkRENFx1RkQ5NiIrCisgICAgICAgICJcdUZEOEFcdUZENjZcdUZENTZcdUE1QTVcMDA2XDAwMFx1RkNCOVx1RkNBQlx1RkM4RVx1RkM3Rlx1RkM3Mlx1RkM2OFx1RkM1QyIrCisgICAgICAgICJcdUZDNEZcdUZDMjZcdUZDMTlcdUZDMDZcdUZCRjVcdUE1QTVcMDE2XDAwMFx1RkVEM1x1RkVDQ1x1RkVDM1x1RkVCRVwwMDAiKworICAgICAgICAiXDAwMFx1RkU1RFx1RkU1MVx1RkUzRVx1RkUzNlx1QTVBNVwwMDZcMDAwXHVGRERCXHVGREM0XHVGREIzXHVGREE5XHVBNUE1IisKKyAgICAgICAgIlwwMTBcMDAwXHVGRDQyXHVGRDM5XHVGRDJBXHVGRDE5XHVBNUE1XDAwNFwwMDBcdUZDRDJcdUZDQzZcdUZDQkRcdUZDQUYiKworICAgICAgICAiXHVGQzkyXHVGQzgzXHVBNUE1I1wwMDBcdUZCREFcdUZCQ0JcdUZCQkFcdUZCQTlcdUZCOTdcdUZCODdcdUZCNTdcdUZCNDUiKworICAgICAgICAiXHVGQjMxXHVGRkFBXHVGRjk1XHVGRjgxXHVGRjZCXHVGRjU4XHVGRjQ4XHVGRjM5XHVGRjA0XHVGRUYzXHVGRUU4XHVGRUUxIisKKyAgICAgICAgIlx1RkVEQVx1RkVENlx1RkVDRVx1RkVDN1x1RkVCMVx1RkVBOVx1QTVBNVwwMDRcMDAwXHVGRTgwXHVGRTc2XHVGRTZCXHVGRTYxIisKKyAgICAgICAgIlx1RkU1Nlx1RkU0RFx1RkU0Nlx1RkU0MVx1RkUzQVx1RkUzNFx1RkUyRFx1RkUyNFx1RkUyMFx1RkUxQ1x1QTVBNVwwMDQiKworICAgICAgICAiXDAwMFx1RkRDRFx1RkRCOVx1RkRBQlx1RkRBM1x1RkQ5Q1x1RkQ5Mlx1RkQ4Nlx1RkQ3Qlx1QTVBNVwwMTBcMDAwXHVGQ0NCIisKKyAgICAgICAgIlx1RkNDMVx1RkNCNVx1RkNBN1x1RkM5RVx1RkM5Nlx1RkM4OVx1RkM3QVx1RkM2RVx1RkM2NFx1RkM1OFx1RkM0Qlx1RkMzRiIrCisgICAgICAgICJcdUZDMzJcdUZDMjFcdUZDMTVcdUZDMTJcdUZDMERcdUZDMDBcdUZCRUZcdUZCRTNcdUZCREJcdUZCQ0RcdUZCQkNcdUZCQUIiKworICAgICAgICAiXHVGQjk5XHVBNUE1XDAzMFwwMDBcdUZFNjNcdUZFNThcdUE1QTVcMDMyXDAwMFx1RkNGNlx1RkNFOFx1RkNEOVx1RkNDRSIrCisgICAgICAgICJcdUZDQzNcdUZDQjdcdUZDQUFcdUZDQTFcdUZDOTlcdUZDOERcdUZDN0VcdUZDNzFcdUZDNjdcdUZDNUJcdUZDNEVcdUZDNDMiKworICAgICAgICAiXHVBNUE1XDAzM1wwMDBcdTAxMDRcdUE1QTVcMDA1XDAwMFx1MDExOFwwMDBcMDAwXDAwMFx1MDEyRVx1QTVBNVwwMDVcMDAwIisKKyAgICAgICAgIlx1MDFFQVx1QTVBNVwwMDRcMDAwXHUwMTcyXHVBNUE1XDAwNVwwMDBcdTAxMDVcMDAwXDAwMFwwMDBcdTAxMTlcMDAwXDAwMCIrCisgICAgICAgICJcMDAwXHUwMTJGXHVBNUE1XDAwNVwwMDBcdTAxRUJcdUE1QTVcMDA0XDAwMFx1MDE3M1x1QTVBNVwwMDVcMDAwXHVGRUI5IisKKyAgICAgICAgIlx1RkVCMlx1RkVBQVx1RkVBMlx1RkU5Q1x1RkU5M1wwMDBcMDAwXHVGRTc3XHVGRTZDXHVGRTYyXHVGRTU3XHVGRTRFXHVGRTQ3IisKKyAgICAgICAgIlx1RkU0Mlx1RkUzQlwwMDBcdUZFMjVcdUZFMjFcdUZFMUVcdUZFMTlcdUZFMEVcMDAwXHVGREYxXHVGREUzXHVGREQwXHVGREJDIisKKyAgICAgICAgIlwwMDBcdUZEOTRcdUZEODhcdUZEN0RcdUZENzBcdUZENjJcdUZENTJcMDAwXDAwMFx1RkQzM1x1RkQyMlx1RkQxNFx1RkQwNCIrCisgICAgICAgICJcdUZDRjVcdUZDRTdcdUZDRDhcdUZDQ0RcMDAwXHVGQ0E5XHVGQ0EwXHVGQzk4XHVGQzhCXHVGQzdDXDAwMFx1RkM1QVx1RkM0RCIrCisgICAgICAgICJcdUZDNDJcdUZDMzVcMDAwXDAwMFx1RkMwRlx1RkMwM1x1RkJGMlx1RkJFNVx1QTVBNVwwMTJcMDAwXHVGRjZGXHVGRjVCIisKKyAgICAgICAgIlx1RkY0Qlx1RkYzQ1x1RkYyRFx1RkYyMlx1RkYwNlx1RkVGNVx1QTVBNVwwMTBcMDAwXHVGRTk0XHVGRTg4XHVGRTgxXHVGRTc5IisKKyAgICAgICAgIlx1RkU2RVx1RkU2NVx1RkU0OFx1QTVBNVwwMTBcMDAwXHUwMUVDXHUwMUVEXHVGRDA3XHVGQ0Y4XHVGQ0VBXHVGQ0RCXHVBNUE1IisKKyAgICAgICAgIlwwMTRcMDAwXHVGQkQwXHVGQkJFXHVGQkFEXHVGQjlDXHVGQjhDXHVGQjdCXHVGQjZBXHVGQjVDXHVGQjRDXHVGQjM5XHVBNUE1IisKKyAgICAgICAgIlwwMTNcMDAwXHVGREU3XHVGREQ2XHVGRDI2XHVGRDE3XDAwMFx1RkJBRVx1RkI5RFx1RkI4RFx1RkI3Q1x1RkI2Qlx1RkI1RCIrCisgICAgICAgICJcdUZCNERcdUZCM0JcdUZCMjVcdUZGOUNcdUZGODhcdUZGNzNcdUZGNUVcdUZGNERcdUZGM0RcdUZGMkZcdUZGMUFcdUZGMTMiKworICAgICAgICAiXHVGRjBBXHVGRUY5XHVBNUE1XDAxMlwwMDBcdUZFMzBcdUZFMjdcdUZFMDdcdUZERkRcdUZERjZcdUZERUFcdUZERDlcdUZEQzMiKworICAgICAgICAiXHVGREIyXHVGREE4XHVGREEwXHVGRDk4XHVGRDhDXHVGRDgxXHVGRDc2XHVGRDY5XHVGRDU5XHVGRDRBXHVBNUE1XDAwNCIrCisgICAgICAgICJcMDAwXHVGRDA5XHVGQ0ZBXHVGQ0VDXHVGQ0RFXHVBNUE1XDAwNlwwMDBcdUZDMkFcdUZDMUJcMDAwXDAwMFx1RkMwOVx1RkJGOCIrCisgICAgICAgICJcdUZCRThcdUZCREZcdUZCRDNcdUZCQzFcdUZCQjFcdUZCQTBcdUE1QTVcMDIzXDAwMFx1RkM0QVx1RkMzRVx1QTVBNVwwMTIiKworICAgICAgICAiXDAwMFx1RkIyRlx1RkZBOFx1RkY5M1x1RkY3Rlx1RkY2OVx1RkY1Nlx1RkY0Nlx1RkYzN1x1QTVBNVwwMTJcMDAwXHVGRUExIisKKyAgICAgICAgIlx1RkU5Qlx1RkU5Mlx1RkU4N1x1QTVBNVwwMzJcMDAwXHVGRDZFXHVGRDYwXHVGRDUwXHVGRDQ1XHVGRDNEXHVGRDMxXHVGRDIwIisKKyAgICAgICAgIlx1RkQxMlx1QTVBNVwwMzJcMDAwXHVGQjg5XHVGQjc4XHVGQjY3XHVGQjU5XHVGQjQ3XHVGQjMzXHVGQjFEXHVGRjk2XHVGRjgyIisKKyAgICAgICAgIlx1RkY2Q1x1QTVBNVwwMjJcMDAwXHVGRTFEXHVGRTE4XHVGRTBEXHVGRTAyXHVGREY5XHVGREYwXHVGREUyXHVGRENGXHVGREJCIisKKyAgICAgICAgIlx1RkRBRFx1RkRBNFx1RkQ5RFx1RkQ5M1x1RkQ4N1x1RkQ3Q1x1RkQ2Rlx1RkQ2MVx1RkQ1MVx1RkQ0Nlx1RkQzRVx1RkQzMiIrCisgICAgICAgICJcdUZEMjFcdUZEMTNcdUZEMDNcdUZDRjRcdUZDRTZcdUZDRDdcdUZDQ0NcdUZDQzJcdUZDQjZcdUZDQThcdUZDOUZcdUZDOTciKworICAgICAgICAiXHVGQzhBXHVGQzdCXHVGQzcwXHVGQzY2XHVGQzU5XHVGQzRDXHVGQzQxXHVGQzM0XHVGQzIzXHVGQzE3XHVGQzEzXHVGQzBFIisKKyAgICAgICAgIlx1RkMwMlx1RkJGMVx1RkJFNFx1RkJEQ1x1RkJDRVx1RkJCRFx1RkJBQ1x1RkI5QVx1RkI4QVx1RkI3OVx1RkI2OFx1RkI1QSIrCisgICAgICAgICJcdUZCNDlcdUZCMzVcdUZCMUZcdUZGOThcdUZGODRcdUZGNkVcdUZGNUFcdUZGNEFcdUZGM0JcdUZGMkNcdUZGMjFcdUZGMTgiKworICAgICAgICAiXHVGRjExXHVGRjA1XHVGRUY0XHVGRUU5XHVGRUUyXHVGRURCXHVGRUQ3XHVGRUNGXHVGRUM4XHVGRUMxXHVGRUJBXHVGRUIzIisKKyAgICAgICAgIlx1RkVBQlx1QTVBNVwwMjZcMDAwXHUxRTEyXHUxRTE4XHVBNUE1XDAwNlwwMDBcdTFFM0NcMDAwXHUxRTRBXHVBNUE1XDAwNCIrCisgICAgICAgICJcMDAwXHUxRTcwXHUxRTc2XHVBNUE1XDAxMFwwMDBcdTFFMTNcdTFFMTlcdUE1QTVcMDA2XDAwMFx1MUUzRFwwMDBcdTFFNEIiKworICAgICAgICAiXHVBNUE1XDAwNFwwMDBcdTFFNzFcdTFFNzdcdUE1QTVcMDE1XDAwMFx1RkU3NVx1RkU2QVx1RkU2MFx1RkU1NVx1QTVBNSIrCisgICAgICAgICJcMDA0XDAwMFx1RkUyQ1x1QTVBNVwwMDZcMDAwXHVGREVGXHVGREUwXHVGRENCXHVGREI4XHVBNUE1XDAxMVwwMDBcdUZEMkYiKworICAgICAgICAiXHVGRDFFXHVGRDEwXHVGRDAxXHVBNUE1XDAwNFwwMDBcdUZDQjRcdUE1QTVcMDA2XDAwMFx1RkM1N1x1RkM0OVx1RkMzRCIrCisgICAgICAgICJcdUZDMzFcdUE1QTVcMDE2XDAwMFx1RkIzMFx1RkZBN1x1RkY2OFx1RkY1NVx1RkY0NVx1RkYzNlx1RkYyOVx1RkYyMFx1RkYwMyIrCisgICAgICAgICJcdUZFRjJcdUE1QTVcMDE3XDAwMFx1RkUwQ1x1RkUwMVx1RkRFMVx1RkRDQ1x1RkQ5MFx1RkQ4NFx1RkQ1Rlx1RkQ0Rlx1QTVBNSIrCisgICAgICAgICJcMDIwXDAwMFx1RkJGRlx1RkJFRVx1RkJDQ1x1RkJCQlx1RkJBQVx1RkI5OFx1RkI4OFx1RkI3N1x1RkI2Nlx1RkI1OFx1RkI0OCIrCisgICAgICAgICJcdUZCMzRcdUE1QTVcMDI2XDAwMFx1RkI0QVx1RkIzNlx1RkIxRVx1RkY5N1x1RkY4M1x1RkY2RFx1RkY1OVx1RkY0OVx1RkYzQSIrCisgICAgICAgICJcdUZGMkJcdUE1QTVcMDE0XDAwMFx1RkUzQ1x1RkUzNVx1QTVBNVwwMDZcMDAwXHVGREQxXHVGREJEXHVGREFFXHVGREE1IisKKyAgICAgICAgIlx1QTVBNVwwMTRcMDAwXHVGRDA2XHVGQ0Y3XHVGQ0U5XHVGQ0RBXHVBNUE1KVwwMDBcdUZCRDlcdUZCQzlcdUE1QTVcMDA2IisKKyAgICAgICAgIlwwMDBcdUZCMkNcdUZGQTRcdUZGOTFcdUZGN0RcdUE1QTUkXDAwMFx1RkRDOFx1RkRCNlx1RkJGRFx1RkJFQ1x1QTVBNSIrCisgICAgICAgICJcMDE0XDAwMFx1RkZBNlx1RkY5Mlx1RkY3RVx1RkY2N1x1QTVBNVwwMTdcMDAwXHVGRTU0XHVBNUE1XDAzNFwwMDBcdUZDRDUiKworICAgICAgICAiXHVGQ0NBXHVGQ0MwXHVGQ0IzXHVGQ0E2XHVGQzlEXHVGQzk1XHVGQzg4XHVGQzc4XHVGQzZEXHVGQzYzXHVGQzU2XHVBNUE1IisKKyAgICAgICAgIiBcMDAwXHVGRjAyXHVGRUYxXHVBNUE1JFwwMDBcdTFFMkFcdUE1QTVcMDMwXDAwMFx1MUUyQlx1QTVBNSZcMDAwXHVGRUIwIisKKyAgICAgICAgIlx1RkVBOFx1QTVBNVwwMjdcMDAwXHVGQzhDXHVGQzdEXHVBNUE1XDAyNVwwMDBcdUZFRTdcdUZFRTBcMDAwXDAwMFx1RkVDRCIrCisgICAgICAgICJcdUZFQzZcdUE1QTUnXDAwMFx1MUUxQVwwMDBcMDAwXDAwMFx1MUUyQ1x1QTVBNVwwMTJcMDAwXHUxRTc0XHVBNUE1XDAxMSIrCisgICAgICAgICJcMDAwXHUxRTFCXDAwMFwwMDBcMDAwXHUxRTJEXHVBNUE1XDAxMlwwMDBcdTFFNzVcdUE1QTVcMDE1XDAwMFx1RkU3M1x1RkU2OCIrCisgICAgICAgICJcdUZFNUVcdUZFNTNcdUZFNENcdUZFNDRcdUZFNDBcdUZFMzhcdUE1QTVcMDA3XDAwMFx1RkRFRVx1RkRERVx1RkRDOVx1RkRCNyIrCisgICAgICAgICJcdUE1QTVcMDExXDAwMFx1RkQyRVx1RkQxRFx1RkQwRlx1RkQwMFx1RkNGMlx1RkNFNFx1RkNENFx1RkNDOVx1QTVBNVwwMDciKworICAgICAgICAiXDAwMFx1RkM1NVx1RkM0OFx1RkMzQ1x1RkMzMFx1QTVBNVwwMjBcMDAwXHVGRjY2XHVGRjU0XHVGRjQ0XHVGRjM1XHVGRjI3IisKKyAgICAgICAgIlx1RkYxRVx1RkYwMFx1RkVFRlx1QTVBNVwwMTBcMDAwXHVGRTkxXHVGRTg2XHVGRTdGXHVGRTc0XHVGRTY5XHVGRTVGXHVGRTQ1IisKKyAgICAgICAgIlx1QTVBNVwwMzJcMDAwXHVGQkNBXHVGQkI5XHVGQkE4XHVGQjk2XHVGQjg1XHVGQjc1XHVGQjY1XHVGQjU2XHVGQjQ0XHVGQjJFIisKKyAgICAgICAgIlx1QTVBNVwwMjJcMDAwXHVGQjg2XHVGQjc2XDAwMFwwMDBcdUZCNDZcdUZCMzJcdUZGQTlcdUZGOTRcdUZGODBcdUZGNkEiKworICAgICAgICAiXHVGRjU3XHVGRjQ3XHVGRjM4XHVGRjJBXHVBNUE1XDAyNFwwMDBcdUZEQ0VcdUZEQkFcdUZEQUNcdUZEQTJcdUZEOUJcdUZEOTEiKworICAgICAgICAiXHVGRDg1XHVGRDdBXHVBNUE1XDAxMFwwMDBcdUZEMDJcdUZDRjNcdUZDRTVcdUZDRDZcdUE1QTUxXDAwMFx1RkIyQlx1RkZBMiIrCisgICAgICAgICJcdUZGOEZcdUZGN0JcdUE1QTVcMDIwXDAwMFx1RkU4Rlx1RkU4NVx1QTVBNVwwNDJcMDAwXHVGRkEzXHVGRjkwXHVGRjdDIisKKyAgICAgICAgIlx1RkY2NVx1QTVBNSxcMDAwXHVGQ0QzXHVGQ0M4XHVGQ0JGXHVGQ0IxXHVGQ0E0XHVGQzlDXHVGQzk0XHVGQzg2XHVGQzc2IisKKyAgICAgICAgIlx1RkM2Q1x1RkM2Mlx1RkM1NFwwMDBcMDAwXHVGQzJGXHVGQzIwXHVBNUE1XDAzNFwwMDBcdUZFRkZcdUZFRUVcdUE1QTUiKworICAgICAgICAiXDAzNVwwMDBcdTFFMDZcMDAwXDAwMFx1MUUwRVx1QTVBNVwwMDZcMDAwXHUxRTM0XHUxRTNBXDAwMFx1MUU0OFwwMDBcMDAwIisKKyAgICAgICAgIlx1MUU1RVwwMDBcdTFFNkVcdUE1QTVcMDA1XDAwMFx1MUU5NFwwMDBcdTFFMDdcMDAwXHUxRTBGXDAwMFwwMDBcMDAwXHUxRTk2IisKKyAgICAgICAgIlwwMDBcMDAwXHUxRTM1XHUxRTNCXDAwMFx1MUU0OVwwMDBcMDAwXHUxRTVGXDAwMFx1MUU2Rlx1QTVBNVwwMDVcMDAwXHUxRTk1IisKKyAgICAgICAgIlx1QTVBNVwwMjBcMDAwXHVGRTJCXHVBNUE1XDAzM1wwMDBcdUZDQjBcdUE1QTVcMDMwXDAwMFx1RkIyRFx1RkZBNVx1QTVBNSIrCisgICAgICAgICJcMDE3XDAwMFx1RkVBN1x1QTVBNVwwMDdcMDAwXHVGRTBCXHVGRTAwXHVGRERGXHVGRENBXHVGRDhGXHVGRDgzXHVGRDVFIisKKyAgICAgICAgIlx1RkQ0RVx1QTVBNVwwMDZcMDAwXHVGQ0IyXHVGQ0E1XHVGQzg3XHVGQzc3XHVBNUE1XDAwNlwwMDBcdUZCRkVcdUZCRUQiKworICAgICAgICAiXHVBNUE1XDAxN1wwMDBcdUZGMjhcdUZGMUZcdUZGMTdcdUZGMTBcdUZGMDFcdUZFRjBcdUE1QTVcMDMzXDAwMFx1RkVDMCIrCisgICAgICAgICJcdUZFQjhcdUE1QTVcMDA0XDAwMFx1RkUzOVx1RkUzM1x1QTVBNVwwMjJcMDAwXHVGRDNDXHVGRDMwXHVGRDFGXHVGRDExIisKKyAgICAgICAgIlx1QTVBNVwwMTFcMDAwXHVGQzc5XHVBNUE1IVwwMDBcdUZDMkVcdUZDMUZcdUZCRDdcdUZCQzdcdUE1QTVcMDIxXDAwMCIrCisgICAgICAgICJcdUZFREZcMDAwXDAwMFwwMDBcdUZFQzVcdUE1QTVcMDA2XDAwMFx1RkU3RVx1RkU3Mlx1QTVBNVwwMjBcMDAwXHVGREM3IisKKyAgICAgICAgIlx1RkRCNVx1QTVBNVwwMTZcMDAwXHVGQ0M3XHVGQ0JFXHVBNUE1XDAyMFwwMDBcdUZCRkJcdUZCRUFcdUE1QTVcMDM0XDAwMCIrCisgICAgICAgICJcdUZFOUFcdUZFOTBcMDAwXHVGRTUyXHVBNUE1IFwwMDBcdTIyNkVcdTIyNjBcMDAwXHUyMjZGXHVBNUE1LVwwMDBcdTIxOUEiKworICAgICAgICAiXHUyMTlCXHUyMUFFXHUyMUNEXHUyMUNGXHUyMUNFXHUyMjA0XHUyMjA5XHUyMjBDXHUyMjI0XHUyMjI2XHUyMjQxXHUyMjQ0IisKKyAgICAgICAgIlx1MjI0N1x1MjI0OVx1MjI2RFx1MjI2Mlx1MjI3MFx1MjI3MVx1MjI3NFx1MjI3NVx1MjI3OFx1MjI3OVx1MjI4MFx1MjI4MSIrCisgICAgICAgICJcdTIyRTBcdTIyRTFcdTIyODRcdTIyODVcdTIyODhcdTIyODlcdTIyRTJcdTIyRTNcdTIyQUNcdTIyQURcdTIyQUVcdTIyQUYiKworICAgICAgICAiXHUyMkVBXHUyMkVCXHUyMkVDXHUyMkVEXHVBNUE1XDAwNVwwMDBcdTFGQzFcdUE1QTVcMDA2XDAwMFx1MUZDRlwwMDBcMDAwIisKKyAgICAgICAgIlx1MUZERlx1QTVBNVwwMzBcMDAwXHUxRkI2XDAwMFx1MUZDNlx1MUZENlwwMDBcMDAwXHUxRkU2XHUxRkY2XHUxRkQ3XHUxRkU3IisKKyAgICAgICAgIlx1QTVBNS5cMDAwXHUxRjA2XHUxRjA3XHVBNUE1XDAwNlwwMDBcdTFGMEVcdTFGMEZcdUE1QTVcMDEyXDAwMFx1MUYyNiIrCisgICAgICAgICJcdTFGMjdcdUE1QTVcMDA2XDAwMFx1MUYyRVx1MUYyRlx1QTVBNVwwMDZcMDAwXHUxRjM2XHUxRjM3XHUxRjNFXHUxRjNGIisKKyAgICAgICAgIlx1QTVBNVwwMDRcMDAwXHUxRjU2XHUxRjU3XHUxRjVGXHUxRjY2XHUxRjY3XHVBNUE1XDAwNlwwMDBcdTFGNkVcdTFGNkYiKworICAgICAgICAiXHVBNUE1XDAxMVwwMDBcdTFGODZcdTFGODdcdTFGOEVcdTFGOEZcdTFGOTZcdTFGOTdcdTFGOUVcdTFGOUZcdTFGQTZcdTFGQTciKworICAgICAgICAiXHUxRkFFXHUxRkFGXHUxRkI3XDAwMFwwMDBcdTFGQzdcMDAwXDAwMFx1MUZGN1x1QTVBNSlcMDAwXHUxRkJDXDAwMFx1MUZDQyIrCisgICAgICAgICJcdUE1QTVcMDA0XDAwMFx1MUZGQ1x1MUZCNFx1MUZDNFx1MUZCM1wwMDBcdTFGQzNcdUE1QTVcMDA0XDAwMFx1MUZGM1wwMDAiKworICAgICAgICAiXDAwMFx1MUZGNFx1QTVBNS1cMDAwXHUxRjgwXHUxRjgxXHUxRjgyXHUxRjgzXHUxRjg0XHUxRjg1XHUxRjg2XHUxRjg3IisKKyAgICAgICAgIlx1MUY4OFx1MUY4OVx1MUY4QVx1MUY4Qlx1MUY4Q1x1MUY4RFx1MUY4RVx1MUY4Rlx1QTVBNVwwMDRcMDAwXHUxRjkwXHUxRjkxIisKKyAgICAgICAgIlx1MUY5Mlx1MUY5M1x1MUY5NFx1MUY5NVx1MUY5Nlx1MUY5N1x1MUY5OFx1MUY5OVx1MUY5QVx1MUY5Qlx1MUY5Q1x1MUY5RCIrCisgICAgICAgICJcdTFGOUVcdTFGOUZcdUE1QTVcMDEzXDAwMFx1MUZBMFx1MUZBMVx1MUZBMlx1MUZBM1x1MUZBNFx1MUZBNVx1MUZBNlx1MUZBNyIrCisgICAgICAgICJcdTFGQThcdTFGQTlcdTFGQUFcdTFGQUJcdTFGQUNcdTFGQURcdTFGQUVcdTFGQUZcdTFGQjJcdTFGQzJcdTFGRjJcdUE1QTUiKworICAgICAgICAiXDAxNVwwMDBcdTFGQjdcMDAwXDAwMFx1MUZDN1wwMDBcMDAwXHUxRkY3XHVBNUE1XDAzNVwwMDBcdUZCMURcdUE1QTVcMDQyIisKKyAgICAgICAgIlwwMDBcdTA2MjJcdUE1QTVcMDM3XDAwMFx1MDYyM1x1MDYyNFx1MDYyNlx1MDZDMlx1MDZEM1x1MDZDMFx1QTVBNVwwMzAiKworICAgICAgICAiXDAwMFx1RkUyQVx1RkUyM1x1MDYyNVx1QTVBNSVcMDAwXHUwOTI5XHUwOTMxXHUwOTM0XHVBNUE1IFwwMDBcdTA5Q0JcdUE1QTUiKworICAgICAgICAiXDAzN1wwMDBcdTA5Q0NcdUE1QTUgXDAwMFx1MEI0Qlx1QTVBNVwwMzdcMDAwXHUwQjQ4XHVBNUE1XDAzN1wwMDBcdTBCNEMiKworICAgICAgICAiXHVBNUE1IVwwMDBcdTBCQ0FcdTBCQ0JcdUE1QTVcMDM1XDAwMFx1MEI5NFx1MEJDQ1wwMDBcdTBDNDhcdUE1QTUhXDAwMCIrCisgICAgICAgICJcdTBDQ0FcdUE1QTVcMDM2XDAwMFx1MENDMFx1MENDN1x1MENDQlx1QTVBNVwwMzZcMDAwXHUwQ0M4XHVBNUE1IVwwMDAiKworICAgICAgICAiXHUwRDRBXHUwRDRCXHVBNUE1XDAzNlwwMDBcdTBENENcdUE1QTUhXDAwMFx1MEREQVwwMDBcdTBERERcdUE1QTVcMDM1IisKKyAgICAgICAgIlwwMDBcdTBERENcdUE1QTVcMDM3XDAwMFx1MERERVx1RkI3NFx1QTVBNSFcMDAwXHUxMDI2XHVBNUE1MlwwMDBcdTMwOTQiKworICAgICAgICAiXHUzMDRDXHUzMDRFXHUzMDUwXHUzMDUyXHUzMDU0XHUzMDU2XHUzMDU4XHUzMDVBXHUzMDVDXHUzMDVFXHUzMDYwXHUzMDYyIisKKyAgICAgICAgIlx1MzA2NVx1MzA2N1x1MzA2OVx1MzA3MFx1MzA3M1x1MzA3Nlx1MzA3OVx1MzA3Q1x1MzA5RVx1MzBGNFx1MzBBQ1x1MzBBRSIrCisgICAgICAgICJcdTMwQjBcdTMwQjJcdTMwQjRcdTMwQjZcdTMwQjhcdTMwQkFcdTMwQkNcdTMwQkVcdTMwQzBcdTMwQzJcdTMwQzVcdTMwQzciKworICAgICAgICAiXHUzMEM5XHUzMEQwXHUzMEQzXHUzMEQ2XHUzMEQ5XHUzMERDXHUzMEY3XHUzMEY4XHUzMEY5XHUzMEZBXHUzMEZFXHVBNUE1IisKKyAgICAgICAgIiBcMDAwXHUzMDcxXHUzMDc0XHUzMDc3XHUzMDdBXHUzMDdEXHVBNUE1XDAyMVwwMDBcdTMwRDFcdTMwRDRcdTMwRDdcdTMwREEiKworICAgICAgICAiXHUzMEREXHVBNUE1XDAzMVwwMDAiCisgICAgICAgICk7CisKKyAgICBzdGF0aWMgZmluYWwgY2hhcltdIGFjdGlvbkluZGV4ID0gVXRpbGl0eS5STEVTdHJpbmdUb0NoYXJBcnJheSgKKyAgICAgICAgIlwwMDBcdTA0OEVcdTE0NUFcdTE0NUVcdTE0NjJcdTE0NjZcdTE0NkFcdTE0NkVcdTE0NzFcdTE0NzVcdTE0NzhcdTE0N0MiKworICAgICAgICAiXHUxNDdGXHUxNDgzXHUxNDg3XHUxNDhBXHUxNDhFXHUxNDkyXHUxNDk2XHUxNDk5XHUxNDlDXHUxNEEwXHUxNEEzXHUxNEE3IisKKyAgICAgICAgIlx1MTRBQVx1MTRBRFx1MTRCMFx1MTRCNFx1MTRCN1x1MTRCQlx1MTRCRVx1MTRDMVx1MTRDNFx1MTRDN1x1MTRDQVx1MTRDRCIrCisgICAgICAgICJcdTE0RDBcdTE0RDNcdTE0RDZcdTE0RDlcdTE0RENcdTE0REZcdTE0RTJcdTE0RTVcdTE0RThcdTE0RUJcdTE0RUVcdTE0RjIiKworICAgICAgICAiXHUxNEY1XHUxNEY4XHUxNEZCXHUxNEZFXHUxNTAxXHUxNTA0XHUxNTA3XHUxNTBBXHUxNTBEXHUxNTEwXHUxNTEzXHUxNTE2IisKKyAgICAgICAgIlx1MTUxOVx1MTUxQ1x1MTUxRlx1MTUyMlx1MTUyNlx1MTUyOVx1MTUyQ1x1MTUyRlx1MTUzMlx1MTUzNVx1MTUzOFx1MTUzQiIrCisgICAgICAgICJcdTE1M0VcdTE1NDFcdTE1NDRcdTE1NDdcdTE1NEFcdTE1NERcdTE1NTFcdTE1NTRcdTE1NTdcdTE1NUFcdTE1NURcdTE1NjAiKworICAgICAgICAiXHUxNTYzXHUxNTY2XHUxNTY5XHUxNTZEXHUxNTcwXHUxNTczXHUxNTc2XHUxNTc5XHUxNTdDXHUxNTdGXHUxNTgyXHUxNTg2IisKKyAgICAgICAgIlx1MTU4OVx1MTU4Q1x1MTU4Rlx1MTU5Mlx1MTU5NVx1MTU5OFx1MTU5Qlx1MTU5RVx1MTVBMVx1MTVBNVx1MTVBOFx1MTVBQiIrCisgICAgICAgICJcdTE1QUVcdTE1QjFcdTE1QjRcdTE1QjdcdTE1QkJcdTE1QkVcdTE1QzFcdTE1QzRcdTE1QzdcdTE1Q0FcdTE1Q0RcdTE1RDAiKworICAgICAgICAiXHUxNUQzXHUxNUQ2XHUxNURBXHUxNUREXHUxNUUwXHUxNUUzXHUxNUU2XHUxNUU5XHUxNUVEXHUxNUYwXHUxNUYzXHUxNUY2IisKKyAgICAgICAgIlx1MTVGOVx1MTVGQ1x1MTYwMFx1MTYwM1x1MTYwNlx1MTYwOVx1MTYwRFx1MTYxMVx1MTYxNFx1MTYxOFx1MTYxQlx1MTYxRSIrCisgICAgICAgICJcdTE2MjFcdTE2MjRcdTE2MjhcdTE2MkJcdTE2MkVcdTE2MzFcdTE2MzRcdTE2MzhcdTE2M0JcdTE2M0VcdTE2NDFcdTE2NDUiKworICAgICAgICAiXHUxNjQ5XHUxNjRDXHUxNjUwXHUxNjUzXHUxNjU2XHUxNjU5XHUxNjVDXHUxNjYwXHUxNjYzXHUxNjY2XHUxNjY5XHUxNjZDIisKKyAgICAgICAgIlx1MTY2Rlx1MTY3Mlx1MTY3Nlx1MTY3OVx1MTY3Q1x1MTY3Rlx1MTY4Mlx1MTY4NVx1MTY4OFx1MTY4Qlx1MTY4RVx1MTY5MSIrCisgICAgICAgICJcdTE2OTVcdTE2OThcdTE2OUJcdTE2OUVcdTE2QTFcdTE2QTRcdTE2QTdcdTE2QUFcdTE2QUVcdTE2QjFcdTE2QjRcdTE2QjciKworICAgICAgICAiXHUxNkJBXHUxNkJEXHUxNkMxXHUxNkM0XHUxNkM3XHUxNkNCXHUxNkNGXHUxNkQzXHUxNkQ2XHUxNkQ5XHUxNkRDXHUxNkRGIisKKyAgICAgICAgIlx1MTZFMlx1MTZFNVx1MTZFOVx1MTZFRFx1MTZGMFx1MTZGM1x1MTZGNlx1MTZGOVx1MTZGQ1x1MTZGRlx1MTcwMlx1MTcwNSIrCisgICAgICAgICJcdTE3MDhcdTE3MEJcdTE3MEVcdTE3MTFcdTE3MTRcdTE3MTdcdTE3MUJcdTE3MUVcdTE3MjJcdTE3MjVcdTE3MjlcdTE3MkMiKworICAgICAgICAiXHUxNzJGXHUxNzMyXHUxNzM1XHUxNzM4XHUxNzNCXHUxNzNFXHUxNzQxXHUxNzQ0XHUxNzQ3XHUxNzRBXHUxNzREXHUxNzUxIisKKyAgICAgICAgIlx1MTc1NFx1MTc1OFx1MTc1Q1x1MTc2MFx1MTc2M1x1MTc2Nlx1MTc2OVx1MTc2Q1x1MTc3MFx1MTc3M1x1MTc3Nlx1MTc3QSIrCisgICAgICAgICJcdTE3N0VcdTE3ODFcdTE3ODVcdTE3ODhcdTE3OEJcdTE3OEVcdTE3OTFcdTE3OTRcdTE3OTdcdTE3OUFcdTE3OURcdTE3QTEiKworICAgICAgICAiXHUxN0E1XHUxN0E4XHUxN0FCXHUxN0FGXHUxN0IyXHUxN0I1XHUxN0I4XHUxN0JCXHUxN0JFXHUxN0MxXHUxN0M0XHUxN0M3IisKKyAgICAgICAgIlx1MTdDQVx1MTdDRFx1MTdEMFx1MTdEM1x1MTdEN1x1MTdEQlx1MTdERVx1MTdFMVx1MTdFNFx1MTdFOFx1MTdFQlx1MTdFRSIrCisgICAgICAgICJcdTE3RjFcdTE3RjRcdTE3RjdcdTE3RkFcdTE3RkRcdTE4MDFcdTE4MDVcdTE4MDlcdTE4MENcdTE4MTBcdTE4MTRcdTE4MTciKworICAgICAgICAiXHUxODFBXHUxODFEXHUxODIwXHUxODIzXHUxODI2XHUxODI5XHUxODJEXHUxODMwXHUxODM0XHUxODM3XHUxODNBXHUxODNEIisKKyAgICAgICAgIlx1MTg0MFx1MTg0M1x1MTg0N1x1MTg0QVx1MTg0RVx1MTg1MVx1MTg1NFx1MTg1OFx1MTg1Qlx1MTg1Rlx1MTg2Mlx1MTg2NSIrCisgICAgICAgICJcdTE4NjhcdTE4NkJcdTE4NkVcdTE4NzFcdTE4NzVcdTE4NzlcdTE4N0NcdTE4N0ZcdTE4ODNcdTE4ODdcdTE4OEFcdTE4OEQiKworICAgICAgICAiXHUxODkwXHUxODkzXHUxODk3XHUxODlCXHUxODlFXHUxOEExXHUxOEE1XHUxOEE5XHUxOEFDXHUxOEFGXHUxOEIyXHUxOEI1IisKKyAgICAgICAgIlx1MThCOVx1MThCQ1x1MThDMFx1MThDM1x1MThDNlx1MThDQVx1MThDRFx1MThEMFx1MThENFx1MThEN1x1MThEQVx1MThERCIrCisgICAgICAgICJcdTE4RTBcdTE4RTNcdTE4RTZcdTE4RTlcdTE4RURcdTE4RjBcdTE4RjRcdTE4RjdcdTE4RkJcdTE4RkVcdTE5MDFcdTE5MDUiKworICAgICAgICAiXHUxOTA4XHUxOTBCXHUxOTBFXHUxOTExXHUxOTE0XHUxOTE3XHUxOTFCXHUxOTFGXHUxOTIzXHUxOTI3XHUxOTJBXHUxOTJFIisKKyAgICAgICAgIlx1MTkzMVx1MTkzNFx1MTkzOFx1MTkzQ1x1MTk0MFx1MTk0NFx1MTk0N1x1MTk0Qlx1MTk0RVx1MTk1MVx1MTk1NVx1MTk1OCIrCisgICAgICAgICJcdTE5NUNcdTE5NUZcdTE5NjNcdTE5NjZcdTE5NkFcdTE5NkRcdTE5NzBcdTE5NzNcdTE5NzZcdTE5NzlcdTE5N0NcdTE5N0YiKworICAgICAgICAiXHUxOTgyXHUxOTg1XHUxOTg4XHUxOThCXHUxOThFXHUxOTkxXHUxOTk0XHUxOTk3XHUxOTlBXHUxOTlEXHUxOUEwXHUxOUEzIisKKyAgICAgICAgIlx1MTlBNlx1MTlBOVx1MTlBQ1x1MTlBRlx1MTlCMlx1MTlCNVx1MTlCOFx1MTlCQlx1MTlCRVx1MTlDMVx1MTlDNFx1MTlDNyIrCisgICAgICAgICJcdTE5Q0FcdTE5Q0RcdTE5RDBcdTE5RDNcdTE5RDZcdTE5RDlcdTE5RENcdTE5REZcdTE5RTJcdTE5RTVcdTE5RThcdTE5RUIiKworICAgICAgICAiXHUxOUVFXHUxOUYxXHUxOUY0XHUxOUY3XHUxOUZBXHUxOUZEXHUxQTAwXHUxQTAzXHUxQTA2XHUxQTA5XHUxQTBDXHUxQTBGIisKKyAgICAgICAgIlx1MUExMlx1MUExNVx1MUExOFx1MUExQlx1MUExRVx1MUEyMVx1MUEyNFx1MUEyN1x1MUEyQVx1MUEyRFx1MUEzMFx1MUEzMyIrCisgICAgICAgICJcdTFBMzZcdTFBMzlcdTFBM0NcdTFBM0ZcdTFBNDJcdTFBNDVcdTFBNDhcdTFBNEJcdTFBNEVcdTFBNTFcdTFBNTRcdTFBNTciKworICAgICAgICAiXHUxQTVBXHUxQTVEXHUxQTYwXHUxQTYzXHUxQTY2XHUxQTY5XHUxQTZDXHUxQTZGXHUxQTcyXHUxQTc2XHUxQTc5XHUxQTdDIisKKyAgICAgICAgIlx1MUE3Rlx1MUE4Mlx1MUE4NVx1MUE4OFx1MUE4Qlx1MUE4RVx1MUE5MVx1MUE5NFx1MUE5N1x1MUE5QVx1MUE5RFx1MUFBMCIrCisgICAgICAgICJcdTFBQTNcdTFBQTdcdTFBQUFcdTFBQURcdTFBQjFcdTFBQjRcdTFBQjdcdTFBQkFcdTFBQkVcdTFBQzFcdTFBQzRcdTFBQzciKworICAgICAgICAiXHUxQUNBXHUxQUNEXHUxQUQwXHUxQUQ0XHUxQUQ3XHUxQURBXHUxQURFXHUxQUUyXHUxQUU1XHUxQUU4XHUxQUVCXHUxQUVFIisKKyAgICAgICAgIlx1MUFGMVx1MUFGNVx1MUFGOFx1MUFGQlx1MUFGRVx1MUIwMVx1MUIwNFx1MUIwN1x1MUIwQlx1MUIwRVx1MUIxMVx1MUIxNSIrCisgICAgICAgICJcdTFCMTlcdTFCMUNcdTFCMUZcdTFCMjJcdTFCMjZcdTFCMjlcdTFCMkNcdTFCMkZcdTFCMzNcdTFCMzdcdTFCM0JcdTFCM0UiKworICAgICAgICAiXHUxQjQxXHUxQjQ1XHUxQjQ4XHUxQjRDXHUxQjUwXHUxQjU0XHUxQjU4XHUxQjVCXHUxQjVFXHUxQjYxXHUxQjY0XHUxQjY3IisKKyAgICAgICAgIlx1MUI2QVx1MUI2RFx1MUI3MVx1MUI3NVx1MUI3OFx1MUI3Q1x1MUI4MFx1MUI4M1x1MUI4Nlx1MUI4OVx1MUI4Q1x1MUI4RiIrCisgICAgICAgICJcdTFCOTJcdTFCOTVcdTFCOThcdTFCOUJcdTFCOUVcdTFCQTFcdTFCQTVcdTFCQTlcdTFCQUNcdTFCQjBcdTFCQjRcdTFCQjciKworICAgICAgICAiXHUxQkJBXHUxQkJEXHUxQkMwXHUxQkMzXHUxQkM2XHUxQkM5XHUxQkNDXHUxQkNGXHUxQkQzXHUxQkQ3XHUxQkRBXHUxQkRFIisKKyAgICAgICAgIlx1MUJFMlx1MUJFNVx1MUJFOFx1MUJFQlx1MUJFRVx1MUJGMVx1MUJGNFx1MUJGN1x1MUJGQVx1MUJGRFx1MUMwMVx1MUMwNCIrCisgICAgICAgICJcdTFDMDhcdTFDMEJcdTFDMEVcdTFDMTFcdTFDMTRcdTFDMTdcdTFDMUFcdTFDMURcdTFDMjBcdTFDMjRcdTFDMjdcdTFDMkEiKworICAgICAgICAiXHUxQzJEXHUxQzMwXHUxQzMzXHUxQzM2XHUxQzM5XHUxQzNDXHUxQzNGXHUxQzQyXHUxQzQ1XHUxQzQ5XHUxQzRDXHUxQzRGIisKKyAgICAgICAgIlx1MUM1Mlx1MUM1NVx1MUM1OFx1MUM1Qlx1MUM1RVx1MUM2MVx1MUM2NFx1MUM2OFx1MUM2Q1x1MUM2Rlx1MUM3Mlx1MUM3NSIrCisgICAgICAgICJcdTFDNzhcdTFDN0JcdTFDN0ZcdTFDODJcdTFDODZcdTFDODlcdTFDOENcdTFDOEZcdTFDOTJcdTFDOTVcdTFDOThcdTFDOUMiKworICAgICAgICAiXHUxQzlGXHUxQ0EzXHUxQ0E2XHUxQ0E5XHUxQ0FDXHUxQ0FGXHUxQ0IyXHUxQ0I1XHUxQ0I4XHUxQ0JCXHUxQ0JFXHUxQ0MxIisKKyAgICAgICAgIlx1MUNDNFx1MUNDOFx1MUNDQlx1MUNDRVx1MUNEMVx1MUNENVx1MUNEOFx1MUNEQlx1MUNERVx1MUNFMVx1MUNFNFx1MUNFNyIrCisgICAgICAgICJcdTFDRUFcdTFDRURcdTFDRjBcdTFDRjNcdTFDRjZcdTFDRjlcdTFDRkNcdTFDRkZcdTFEMDJcdTFEMDZcdTFEMDlcdTFEMEMiKworICAgICAgICAiXHUxRDBGXHUxRDEzXHUxRDE2XHUxRDE5XHUxRDFDXHUxRDFGXHUxRDIyXHUxRDI1XHUxRDI4XHUxRDJCXHUxRDJFXHUxRDMxIisKKyAgICAgICAgIlx1MUQzNFx1MUQzN1x1MUQzQVx1MUQzRFx1MUQ0MVx1MUQ0NFx1MUQ0OFx1MUQ0Qlx1MUQ0RVx1MUQ1MVx1MUQ1NFx1MUQ1NyIrCisgICAgICAgICJcdTFENUFcdTFENURcdTFENjBcdTFENjNcdTFENjZcdTFENjlcdTFENkRcdTFENzBcdTFENzRcdTFENzdcdTFEN0FcdTFEN0QiKworICAgICAgICAiXHUxRDgwXHUxRDgzXHUxRDg2XHUxRDhBXHUxRDhEXHUxRDkxXHUxRDk0XHUxRDk3XHUxRDlBXHUxRDlEXHUxREEwXHUxREEzIisKKyAgICAgICAgIlx1MURBNlx1MURBOVx1MURBQ1x1MURBRlx1MURCMlx1MURCNVx1MURCOFx1MURCQlx1MURCRVx1MURDMVx1MURDNFx1MURDNyIrCisgICAgICAgICJcdTFEQ0FcdTFEQ0RcdTFERDBcdTFERDNcdTFERDZcdTFERDlcdTFERENcdTFEREZcdTFERTJcdTFERTVcdTFERThcdTFERUIiKworICAgICAgICAiXHUxREVFXHUxREYxXHUxREY0XHUxREY3XHUxREZBXHUxREZEXHUxRTAwXHUxRTAzXHUxRTA2XHUxRTA5XHUxRTBDXHUxRTBGIisKKyAgICAgICAgIlx1MUUxMlx1MUUxNlx1MUUxQVx1MUUxRVx1MUUyMVx1MUUyNFx1MUUyN1x1MUUyQVx1MUUyRFx1MUUzMFx1MUUzNFx1MUUzOCIrCisgICAgICAgICJcdTFFM0NcdTFFM0ZcdTFFNDNcdTFFNDZcdTFFNDlcdTFFNENcdTFFNEZcdTFFNTJcdTFFNTZcdTFFNTlcdTFFNUNcdTFFNUYiKworICAgICAgICAiXHUxRTYyXHUxRTY1XHUxRTY4XHUxRTZCXHUxRTZFXHUxRTcxXHUxRTc0XHUxRTc3XHUxRTdBXHUxRTdEXHUxRTgwXHUxRTgzIisKKyAgICAgICAgIlx1MUU4Nlx1MUU4OVx1MUU4Q1x1MUU4Rlx1MUU5Mlx1MUU5NVx1MUU5OFx1MUU5Qlx1MUU5RVx1MUVBMVx1MUVBNFx1MUVBNyIrCisgICAgICAgICJcdTFFQUFcdTFFQURcdTFFQjBcdTFFQjNcdTFFQjZcdTFFQjlcdTFFQkNcdTFFQkZcdTFFQzJcdTFFQzVcdTFFQzhcdTFFQ0IiKworICAgICAgICAiXHUxRUNFXHUxRUQxXHUxRUQ0XHUxRUQ3XHUxRURBXHUxRUREXHUxRUUwXHUxRUUzXHUxRUU2XHUxRUU5XHUxRUVDXHUxRUVGIisKKyAgICAgICAgIlx1MUVGMlx1MUVGNVx1MUVGOFx1MUVGQlx1MUVGRVx1MUYwMVx1MUYwNFx1MUYwN1x1MUYwQVx1MUYwRFx1MUYxMFx1MUYxMyIrCisgICAgICAgICJcdTFGMTZcdTFGMTlcdTFGMUNcdTFGMUZcdTFGMjJcdTFGMjVcdTFGMjhcdTFGMkJcdTFGMkVcdTFGMzFcdTFGMzRcdTFGMzgiKworICAgICAgICAiXHUxRjNCXHUxRjNGXHUxRjQyXHUxRjQ2XHUxRjQ5XHUxRjRDXHUxRjRGXHUxRjUyXHUxRjU1XHUxRjU5XHUxRjVDXHUxRjVGIisKKyAgICAgICAgIlx1MUY2M1x1MUY2Nlx1MUY2OVx1MUY2RFx1MUY3MFx1MUY3M1x1MUY3Nlx1MUY3OVx1MUY3Q1x1MUY3Rlx1MUY4Mlx1MUY4NSIrCisgICAgICAgICJcdTFGODhcdTFGOEJcdTFGOEVcdTFGOTFcdTFGOTRcdTFGOTdcdTFGOUFcdTFGOURcdTFGQTBcdTFGQTNcdTFGQTZcdTFGQTkiKworICAgICAgICAiXHUxRkFDXHUxRkIwXHUxRkIzXHUxRkI2XHUxRkI5XHUxRkJDXHUxRkJGXHUxRkMyXHUxRkM1XHUxRkM5XHUxRkNDXHUxRkNGIisKKyAgICAgICAgIlx1MUZEMlx1MUZENVx1MUZEOFx1MUZEQlx1MUZERlx1MUZFMlx1MUZFNVx1MUZFOFx1MUZFQlx1MUZFRVx1MUZGMVx1MUZGNSIrCisgICAgICAgICJcdTFGRjhcdTFGRkJcdTFGRkVcdTIwMDFcdTIwMDRcdTIwMDdcdTIwMEJcdTIwMEVcdTIwMTFcdTIwMTRcdTIwMTdcdTIwMUEiKworICAgICAgICAiXHUyMDFEXHUyMDIxXHUyMDI0XHUyMDI3XHUyMDJBXHUyMDJEXHUyMDMwXHUyMDMzXHUyMDM2XHUyMDNBXHUyMDNEXHUyMDQwIisKKyAgICAgICAgIlx1MjA0M1x1MjA0N1x1MjA0QVx1MjA0RFx1MjA1MFx1MjA1M1x1MjA1Nlx1MjA1OVx1MjA1RFx1MjA2MFx1MjA2M1x1MjA2NiIrCisgICAgICAgICJcdTIwNjlcdTIwNkNcdTIwNkZcdTIwNzNcdTIwNzZcdTIwNzlcdTIwN0NcdTIwN0ZcdTIwODJcdTIwODVcdTIwODhcdTIwOEIiKworICAgICAgICAiXHUyMDhFXHUyMDkxXHUyMDk0XHUyMDk3XHUyMDlBXHUyMDlEXHUyMEEwXHUyMEE0XHUyMEE3XHUyMEFBXHUyMEFEXHUyMEIxIisKKyAgICAgICAgIlx1MjBCNVx1MjBCOFx1MjBCQlx1MjBCRVx1MjBDMVx1MjBDNFx1MjBDN1x1MjBDQVx1MjBDRFx1MjBEMFx1MjBEM1x1MjBENiIrCisgICAgICAgICJcdTIwREFcdTIwRERcdTIwRTBcdTIwRTNcdTIwRTdcdTIwRUJcdTIwRUVcdTIwRjFcdTIwRjRcdTIwRjhcdTIwRkJcdTIwRkYiKworICAgICAgICAiXHUyMTAzXHUyMTA2XHUyMTA5XHUyMTBDXHUyMTEwXHUyMTEzXHUyMTE3XHUyMTFCXHUyMTFFXHUyMTIxXHUyMTI0XHUyMTI4IisKKyAgICAgICAgIlx1MjEyQlx1MjEyRVx1MjEzMVx1MjEzNFx1MjEzN1x1MjEzQVx1MjEzRFx1MjE0MFx1MjE0NFx1MjE0OFx1MjE0Q1x1MjE0RiIrCisgICAgICAgICJcdTIxNTJcdTIxNTZcdTIxNTlcdTIxNUNcdTIxNjBcdTIxNjRcdTIxNjhcdTIxNkJcdTIxNkVcdTIxNzFcdTIxNzVcdTIxNzgiKworICAgICAgICAiXHUyMTdDXHUyMTgwXHUyMTgzXHUyMTg3XHUyMThBXHUyMThEXHUyMTkwXHUyMTk0XHUyMTk4XHUyMTlDXHUyMTlGXHUyMUEyIisKKyAgICAgICAgIlx1MjFBNVx1MjFBOVx1MjFBQ1x1MjFCMFx1MjFCNFx1MjFCN1x1MjFCQVx1MjFCRVx1MjFDMVx1MjFDNFx1MjFDN1x1MjFDQiIrCisgICAgICAgICJcdTIxQ0ZcdTIxRDNcdTIxRDZcdTIxRDlcdTIxRENcdTIxRTBcdTIxRTNcdTIxRTdcdTIxRUJcdTIxRUVcdTIxRjFcdTIxRjQiKworICAgICAgICAiXHUyMUY4XHUyMUZCXHUyMUZFXHUyMjAxXHUyMjA1XHUyMjA5XHUyMjBEXHUyMjExXHUyMjE0XHUyMjE4XHUyMjFCXHUyMjFFIisKKyAgICAgICAgIlx1MjIyMlx1MjIyNVx1MjIyOVx1MjIyRFx1MjIzMVx1MjIzNFx1MjIzN1x1MjIzQlx1MjIzRlx1MjI0M1x1MjI0Nlx1MjI0OSIrCisgICAgICAgICJcdTIyNENcdTIyNTBcdTIyNTRcdTIyNThcdTIyNUNcdTIyNjBcdTIyNjRcdTIyNjhcdTIyNkNcdTIyNzBcdTIyNzRcdTIyNzgiKworICAgICAgICAiXHUyMjdDXHUyMjgwXHUyMjg0XHUyMjg4XHUyMjhDXHUyMjkwXHUyMjk0XHUyMjk3XHUyMjlBXHUyMjlFXHUyMkEyXHUyMkE2IisKKyAgICAgICAgIlx1MjJBQVx1MjJBRVx1MjJCMlx1MjJCNlx1MjJCQVx1MjJCRVx1MjJDMlx1MjJDNlx1MjJDQVx1MjJDRVx1MjJEMlx1MjJENiIrCisgICAgICAgICJcdTIyREFcdTIyREVcdTIyRTJcdTIyRTVcdTIyRTlcdTIyRURcdTIyRjBcdTIyRjRcdTIyRjhcdTIyRkNcdTIzMDBcdTIzMDMiKworICAgICAgICAiXHUyMzA3XHUyMzBBXHUyMzBFXHUyMzEyIgorICAgICk7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIHJlcGxhY2UgPSAKKyAgICAgICAgIiAgXHUwMzA4XDAwMHNcMDAwXHUwM0E1XDAwMCBcdTAzMTNcMDAwIFx1MDMxNFwwMDAgXDAwMGFcMDAwIFx1MDMwNFwwMDAiKworICAgICAgICAiMlwwMDAzXDAwMCBcdTAzMDFcMDAwXHUwM0JDXDAwMCBcdTAzMjdcMDAwMVwwMDBvXDAwMDFcdTIwNDQ0XDAwMDFcdTIwNDQiKworICAgICAgICAiMlwwMDAzXHUyMDQ0NFwwMDBJSlwwMDBpalwwMDBMXHUwMEI3XDAwMGxcdTAwQjdcMDAwXHUwMkJDblwwMDBEWlx1MDMwQyIrCisgICAgICAgICJcMDAwRHpcdTAzMENcMDAwZHpcdTAzMENcMDAwTEpcMDAwTGpcMDAwbGpcMDAwTkpcMDAwTmpcMDAwbmpcMDAwRFpcMDAwIisKKyAgICAgICAgIkR6XDAwMGR6XDAwMGhcMDAwXHUwMjY2XDAwMHJcMDAwXHUwMjc5XDAwMFx1MDI3QlwwMDBcdTAyODFcMDAwd1wwMDB5XDAwMCIrCisgICAgICAgICIgXHUwMzA2XDAwMCBcdTAzMDdcMDAwIFx1MDMwQVwwMDAgXHUwMzI4XDAwMCBcdTAzMDNcMDAwIFx1MDMwQlwwMDBcdTAyNjMiKworICAgICAgICAiXDAwMGxcMDAweFwwMDBcdTAyOTVcMDAwIFx1MDM0NVwwMDAgXHUwMzA4XHUwMzAxXDAwMFx1MDNCMlwwMDBcdTAzQjhcMDAwIisKKyAgICAgICAgIlx1MDNBNVx1MDMwMVwwMDBcdTAzQTVcdTAzMDhcMDAwXHUwM0M2XDAwMFx1MDNDMFwwMDBcdTAzQkFcMDAwXHUwM0MxXDAwMCIrCisgICAgICAgICJcdTAzQzJcMDAwXHUwNTY1XHUwNTgyXDAwMFx1MDYyN1x1MDY3NFwwMDBcdTA2NDhcdTA2NzRcMDAwXHUwNkM3XHUwNjc0IisKKyAgICAgICAgIlwwMDBcdTA2NEFcdTA2NzRcMDAwXHUwRTREXHUwRTMyXDAwMFx1MEVDRFx1MEVCMlwwMDBcdTBFQUJcdTBFOTlcMDAwXHUwRUFCIisKKyAgICAgICAgIlx1MEVBMVwwMDBcdTBGMEJcMDAwXHUwRkIyXHUwRjcxXHUwRjgwXDAwMFx1MEZCM1x1MEY3MVx1MEY4MFwwMDBhXHUwMkJFIisKKyAgICAgICAgIlwwMDBzXHUwMzA3XDAwMCBcdTAzNDJcMDAwIFx1MDMwOFx1MDM0MlwwMDAgXHUwMzEzXHUwMzAwXDAwMCBcdTAzMTNcdTAzMDEiKworICAgICAgICAiXDAwMCBcdTAzMTNcdTAzNDJcMDAwIFx1MDMxNFx1MDMwMFwwMDAgXHUwMzE0XHUwMzAxXDAwMCBcdTAzMTRcdTAzNDJcMDAwIisKKyAgICAgICAgIiBcdTAzMDhcdTAzMDBcMDAwXHUyMDEwXDAwMCBcdTAzMzNcMDAwLlwwMDAuLlwwMDAuLi5cMDAwXHUyMDMyXHUyMDMyXDAwMCIrCisgICAgICAgICJcdTIwMzJcdTIwMzJcdTIwMzJcMDAwXHUyMDM1XHUyMDM1XDAwMFx1MjAzNVx1MjAzNVx1MjAzNVwwMDAhIVwwMDAgXHUwMzA1IisKKyAgICAgICAgIlwwMDA/IVwwMDAhP1wwMDAwXDAwMDVcMDAwNlwwMDA3XDAwMDhcMDAwOVwwMDArXDAwMFx1MjIxMlwwMDA9XDAwMChcMDAwIisKKyAgICAgICAgIilcMDAwUnNcMDAwYS9jXDAwMGEvc1wwMDBDXDAwMFx1MDBCMENcMDAwYy9vXDAwMGMvdVwwMDBcdTAxOTBcMDAwXHUwMEIwIisKKyAgICAgICAgIkZcMDAwZ1wwMDBIXDAwMFx1MDEyN1wwMDBJXDAwMExcMDAwTlwwMDBOb1wwMDBQXDAwMFFcMDAwUlwwMDBTTVwwMDBURSIrCisgICAgICAgICJMXDAwMFRNXDAwMEJcMDAwZVwwMDBFXDAwMFx1MDVEMFwwMDBcdTA1RDFcMDAwXHUwNUQyXDAwMFx1MDVEM1wwMDBpXDAwMCIrCisgICAgICAgICIxXHUyMDQ0M1wwMDAyXHUyMDQ0M1wwMDAxXHUyMDQ0NVwwMDAyXHUyMDQ0NVwwMDAzXHUyMDQ0NVwwMDA0XHUyMDQ0NVwwMDAiKworICAgICAgICAiMVx1MjA0NDZcMDAwNVx1MjA0NDZcMDAwMVx1MjA0NDhcMDAwM1x1MjA0NDhcMDAwNVx1MjA0NDhcMDAwN1x1MjA0NDhcMDAwIisKKyAgICAgICAgIjFcdTIwNDRcMDAwSUlcMDAwSUlJXDAwMElWXDAwMFZJXDAwMFZJSVwwMDBWSUlJXDAwMElYXDAwMFhJXDAwMFhJSVwwMDAiKworICAgICAgICAiRFwwMDBpaVwwMDBpaWlcMDAwaXZcMDAwdmlcMDAwdmlpXDAwMHZpaWlcMDAwaXhcMDAweGlcMDAweGlpXDAwMGRcMDAwIisKKyAgICAgICAgIm1cMDAwXHUyMjJCXHUyMjJCXDAwMFx1MjIyQlx1MjIyQlx1MjIyQlwwMDBcdTIyMkVcdTIyMkVcMDAwXHUyMjJFXHUyMjJFIisKKyAgICAgICAgIlx1MjIyRVwwMDAxMFwwMDAxMVwwMDAxMlwwMDAxM1wwMDAxNFwwMDAxNVwwMDAxNlwwMDAxN1wwMDAxOFwwMDAxOVwwMDAiKworICAgICAgICAiMjBcMDAwKDEpXDAwMCgyKVwwMDAoMylcMDAwKDQpXDAwMCg1KVwwMDAoNilcMDAwKDcpXDAwMCg4KVwwMDAoOSlcMDAwIisKKyAgICAgICAgIigxMClcMDAwKDExKVwwMDAoMTIpXDAwMCgxMylcMDAwKDE0KVwwMDAoMTUpXDAwMCgxNilcMDAwKDE3KVwwMDAoMTgpXDAwMCIrCisgICAgICAgICIoMTkpXDAwMCgyMClcMDAwMS5cMDAwMi5cMDAwMy5cMDAwNC5cMDAwNS5cMDAwNi5cMDAwNy5cMDAwOC5cMDAwOS5cMDAwIisKKyAgICAgICAgIjEwLlwwMDAxMS5cMDAwMTIuXDAwMDEzLlwwMDAxNC5cMDAwMTUuXDAwMDE2LlwwMDAxNy5cMDAwMTguXDAwMDE5LlwwMDAiKworICAgICAgICAiMjAuXDAwMChhKVwwMDAoYilcMDAwKGMpXDAwMChkKVwwMDAoZSlcMDAwKGYpXDAwMChnKVwwMDAoaClcMDAwKGkpXDAwMCIrCisgICAgICAgICIoailcMDAwKGspXDAwMChsKVwwMDAobSlcMDAwKG4pXDAwMChvKVwwMDAocClcMDAwKHEpXDAwMChyKVwwMDAocylcMDAwIisKKyAgICAgICAgIih0KVwwMDAodSlcMDAwKHYpXDAwMCh3KVwwMDAoeClcMDAwKHkpXDAwMCh6KVwwMDBBXDAwMEdcMDAwS1wwMDBPXDAwMCIrCisgICAgICAgICJTXDAwMFRcMDAwVVwwMDBXXDAwMFlcMDAwYlwwMDBmXDAwMGtcMDAwcFwwMDBxXDAwMHRcMDAwXHU2QkNEXDAwMFx1OUY5RiIrCisgICAgICAgICJcMDAwXHU0RTAwXDAwMFx1NEUyOFwwMDBcdTRFMzZcMDAwXHU0RTNGXDAwMFx1NEU1OVwwMDBcdTRFODVcMDAwXHU0RThDIisKKyAgICAgICAgIlwwMDBcdTRFQTBcMDAwXHU0RUJBXDAwMFx1NTEzRlwwMDBcdTUxNjVcMDAwXHU1MTZCXDAwMFx1NTE4MlwwMDBcdTUxOTYiKworICAgICAgICAiXDAwMFx1NTFBQlwwMDBcdTUxRTBcMDAwXHU1MUY1XDAwMFx1NTIwMFwwMDBcdTUyOUJcMDAwXHU1MkY5XDAwMFx1NTMxNSIrCisgICAgICAgICJcMDAwXHU1MzFBXDAwMFx1NTMzOFwwMDBcdTUzNDFcMDAwXHU1MzVDXDAwMFx1NTM2OVwwMDBcdTUzODJcMDAwXHU1M0I2IisKKyAgICAgICAgIlwwMDBcdTUzQzhcMDAwXHU1M0UzXDAwMFx1NTZEN1wwMDBcdTU3MUZcMDAwXHU1OEVCXDAwMFx1NTkwMlwwMDBcdTU5MEEiKworICAgICAgICAiXDAwMFx1NTkxNVwwMDBcdTU5MjdcMDAwXHU1OTczXDAwMFx1NUI1MFwwMDBcdTVCODBcMDAwXHU1QkY4XDAwMFx1NUMwRiIrCisgICAgICAgICJcMDAwXHU1QzIyXDAwMFx1NUMzOFwwMDBcdTVDNkVcMDAwXHU1QzcxXDAwMFx1NUREQlwwMDBcdTVERTVcMDAwXHU1REYxIisKKyAgICAgICAgIlwwMDBcdTVERkVcMDAwXHU1RTcyXDAwMFx1NUU3QVwwMDBcdTVFN0ZcMDAwXHU1RUY0XDAwMFx1NUVGRVwwMDBcdTVGMEIiKworICAgICAgICAiXDAwMFx1NUYxM1wwMDBcdTVGNTBcMDAwXHU1RjYxXDAwMFx1NUY3M1wwMDBcdTVGQzNcMDAwXHU2MjA4XDAwMFx1NjIzNiIrCisgICAgICAgICJcMDAwXHU2MjRCXDAwMFx1NjUyRlwwMDBcdTY1MzRcMDAwXHU2NTg3XDAwMFx1NjU5N1wwMDBcdTY1QTRcMDAwXHU2NUI5IisKKyAgICAgICAgIlwwMDBcdTY1RTBcMDAwXHU2NUU1XDAwMFx1NjZGMFwwMDBcdTY3MDhcMDAwXHU2NzI4XDAwMFx1NkIyMFwwMDBcdTZCNjIiKworICAgICAgICAiXDAwMFx1NkI3OVwwMDBcdTZCQjNcMDAwXHU2QkNCXDAwMFx1NkJENFwwMDBcdTZCREJcMDAwXHU2QzBGXDAwMFx1NkMxNCIrCisgICAgICAgICJcMDAwXHU2QzM0XDAwMFx1NzA2QlwwMDBcdTcyMkFcMDAwXHU3MjM2XDAwMFx1NzIzQlwwMDBcdTcyM0ZcMDAwXHU3MjQ3IisKKyAgICAgICAgIlwwMDBcdTcyNTlcMDAwXHU3MjVCXDAwMFx1NzJBQ1wwMDBcdTczODRcMDAwXHU3Mzg5XDAwMFx1NzREQ1wwMDBcdTc0RTYiKworICAgICAgICAiXDAwMFx1NzUxOFwwMDBcdTc1MUZcMDAwXHU3NTI4XDAwMFx1NzUzMFwwMDBcdTc1OEJcMDAwXHU3NTkyXDAwMFx1NzY3NiIrCisgICAgICAgICJcMDAwXHU3NjdEXDAwMFx1NzZBRVwwMDBcdTc2QkZcMDAwXHU3NkVFXDAwMFx1NzdEQlwwMDBcdTc3RTJcMDAwXHU3N0YzIisKKyAgICAgICAgIlwwMDBcdTc5M0FcMDAwXHU3OUI4XDAwMFx1NzlCRVwwMDBcdTdBNzRcMDAwXHU3QUNCXDAwMFx1N0FGOVwwMDBcdTdDNzMiKworICAgICAgICAiXDAwMFx1N0NGOFwwMDBcdTdGMzZcMDAwXHU3RjUxXDAwMFx1N0Y4QVwwMDBcdTdGQkRcMDAwXHU4MDAxXDAwMFx1ODAwQyIrCisgICAgICAgICJcMDAwXHU4MDEyXDAwMFx1ODAzM1wwMDBcdTgwN0ZcMDAwXHU4MDg5XDAwMFx1ODFFM1wwMDBcdTgxRUFcMDAwXHU4MUYzIisKKyAgICAgICAgIlwwMDBcdTgxRkNcMDAwXHU4MjBDXDAwMFx1ODIxQlwwMDBcdTgyMUZcMDAwXHU4MjZFXDAwMFx1ODI3MlwwMDBcdTgyNzgiKworICAgICAgICAiXDAwMFx1ODY0RFwwMDBcdTg2NkJcMDAwXHU4ODQwXDAwMFx1ODg0Q1wwMDBcdTg4NjNcMDAwXHU4OTdFXDAwMFx1ODk4QiIrCisgICAgICAgICJcMDAwXHU4OUQyXDAwMFx1OEEwMFwwMDBcdThDMzdcMDAwXHU4QzQ2XDAwMFx1OEM1NVwwMDBcdThDNzhcMDAwXHU4QzlEIisKKyAgICAgICAgIlwwMDBcdThENjRcMDAwXHU4RDcwXDAwMFx1OERCM1wwMDBcdThFQUJcMDAwXHU4RUNBXDAwMFx1OEY5QlwwMDBcdThGQjAiKworICAgICAgICAiXDAwMFx1OEZCNVwwMDBcdTkwOTFcMDAwXHU5MTQ5XDAwMFx1OTFDNlwwMDBcdTkxQ0NcMDAwXHU5MUQxXDAwMFx1OTU3NyIrCisgICAgICAgICJcMDAwXHU5NTgwXDAwMFx1OTYxQ1wwMDBcdTk2QjZcMDAwXHU5NkI5XDAwMFx1OTZFOFwwMDBcdTk3NTFcMDAwXHU5NzVFIisKKyAgICAgICAgIlwwMDBcdTk3NjJcMDAwXHU5NzY5XDAwMFx1OTdDQlwwMDBcdTk3RURcMDAwXHU5N0YzXDAwMFx1OTgwMVwwMDBcdTk4QTgiKworICAgICAgICAiXDAwMFx1OThEQlwwMDBcdTk4REZcMDAwXHU5OTk2XDAwMFx1OTk5OVwwMDBcdTk5QUNcMDAwXHU5QUE4XDAwMFx1OUFEOCIrCisgICAgICAgICJcMDAwXHU5QURGXDAwMFx1OUIyNVwwMDBcdTlCMkZcMDAwXHU5QjMyXDAwMFx1OUIzQ1wwMDBcdTlCNUFcMDAwXHU5Q0U1IisKKyAgICAgICAgIlwwMDBcdTlFNzVcMDAwXHU5RTdGXDAwMFx1OUVBNVwwMDBcdTlFQkJcMDAwXHU5RUMzXDAwMFx1OUVDRFwwMDBcdTlFRDEiKworICAgICAgICAiXDAwMFx1OUVGOVwwMDBcdTlFRkRcMDAwXHU5RjBFXDAwMFx1OUYxM1wwMDBcdTlGMjBcMDAwXHU5RjNCXDAwMFx1OUY0QSIrCisgICAgICAgICJcMDAwXHU5RjUyXDAwMFx1OUY4RFwwMDBcdTlGOUNcMDAwXHU5RkEwXDAwMFx1MzAxMlwwMDBcdTUzNDRcMDAwXHU1MzQ1IisKKyAgICAgICAgIlwwMDAgXHUzMDk5XDAwMCBcdTMwOUFcMDAwXHUxMTAwXDAwMFx1MTEwMVwwMDBcdTExQUFcMDAwXHUxMTAyXDAwMFx1MTFBQyIrCisgICAgICAgICJcMDAwXHUxMUFEXDAwMFx1MTEwM1wwMDBcdTExMDRcMDAwXHUxMTA1XDAwMFx1MTFCMFwwMDBcdTExQjFcMDAwXHUxMUIyIisKKyAgICAgICAgIlwwMDBcdTExQjNcMDAwXHUxMUI0XDAwMFx1MTFCNVwwMDBcdTExMUFcMDAwXHUxMTA2XDAwMFx1MTEwN1wwMDBcdTExMDgiKworICAgICAgICAiXDAwMFx1MTEyMVwwMDBcdTExMDlcMDAwXHUxMTBBXDAwMFx1MTEwQlwwMDBcdTExMENcMDAwXHUxMTBEXDAwMFx1MTEwRSIrCisgICAgICAgICJcMDAwXHUxMTBGXDAwMFx1MTExMFwwMDBcdTExMTFcMDAwXHUxMTEyXDAwMFx1MTE2MVwwMDBcdTExNjJcMDAwXHUxMTYzIisKKyAgICAgICAgIlwwMDBcdTExNjRcMDAwXHUxMTY1XDAwMFx1MTE2NlwwMDBcdTExNjdcMDAwXHUxMTY4XDAwMFx1MTE2OVwwMDBcdTExNkEiKworICAgICAgICAiXDAwMFx1MTE2QlwwMDBcdTExNkNcMDAwXHUxMTZEXDAwMFx1MTE2RVwwMDBcdTExNkZcMDAwXHUxMTcwXDAwMFx1MTE3MSIrCisgICAgICAgICJcMDAwXHUxMTcyXDAwMFx1MTE3M1wwMDBcdTExNzRcMDAwXHUxMTc1XDAwMFx1MTE2MFwwMDBcdTExMTRcMDAwXHUxMTE1IisKKyAgICAgICAgIlwwMDBcdTExQzdcMDAwXHUxMUM4XDAwMFx1MTFDQ1wwMDBcdTExQ0VcMDAwXHUxMUQzXDAwMFx1MTFEN1wwMDBcdTExRDkiKworICAgICAgICAiXDAwMFx1MTExQ1wwMDBcdTExRERcMDAwXHUxMURGXDAwMFx1MTExRFwwMDBcdTExMUVcMDAwXHUxMTIwXDAwMFx1MTEyMiIrCisgICAgICAgICJcMDAwXHUxMTIzXDAwMFx1MTEyN1wwMDBcdTExMjlcMDAwXHUxMTJCXDAwMFx1MTEyQ1wwMDBcdTExMkRcMDAwXHUxMTJFIisKKyAgICAgICAgIlwwMDBcdTExMkZcMDAwXHUxMTMyXDAwMFx1MTEzNlwwMDBcdTExNDBcMDAwXHUxMTQ3XDAwMFx1MTE0Q1wwMDBcdTExRjEiKworICAgICAgICAiXDAwMFx1MTFGMlwwMDBcdTExNTdcMDAwXHUxMTU4XDAwMFx1MTE1OVwwMDBcdTExODRcMDAwXHUxMTg1XDAwMFx1MTE4OCIrCisgICAgICAgICJcMDAwXHUxMTkxXDAwMFx1MTE5MlwwMDBcdTExOTRcMDAwXHUxMTlFXDAwMFx1MTFBMVwwMDBcdTRFMDlcMDAwXHU1NkRCIisKKyAgICAgICAgIlwwMDBcdTRFMEFcMDAwXHU0RTJEXDAwMFx1NEUwQlwwMDBcdTc1MzJcMDAwXHU0RTE5XDAwMFx1NEUwMVwwMDBcdTU5MjkiKworICAgICAgICAiXDAwMFx1NTczMFwwMDAoXHUxMTAwKVwwMDAoXHUxMTAyKVwwMDAoXHUxMTAzKVwwMDAoXHUxMTA1KVwwMDAoXHUxMTA2IisKKyAgICAgICAgIilcMDAwKFx1MTEwNylcMDAwKFx1MTEwOSlcMDAwKFx1MTEwQilcMDAwKFx1MTEwQylcMDAwKFx1MTEwRSlcMDAwKFx1MTEwRiIrCisgICAgICAgICIpXDAwMChcdTExMTApXDAwMChcdTExMTEpXDAwMChcdTExMTIpXDAwMChcdTExMDBcdTExNjEpXDAwMChcdTExMDJcdTExNjEiKworICAgICAgICAiKVwwMDAoXHUxMTAzXHUxMTYxKVwwMDAoXHUxMTA1XHUxMTYxKVwwMDAoXHUxMTA2XHUxMTYxKVwwMDAoXHUxMTA3XHUxMTYxIisKKyAgICAgICAgIilcMDAwKFx1MTEwOVx1MTE2MSlcMDAwKFx1MTEwQlx1MTE2MSlcMDAwKFx1MTEwQ1x1MTE2MSlcMDAwKFx1MTEwRVx1MTE2MSIrCisgICAgICAgICIpXDAwMChcdTExMEZcdTExNjEpXDAwMChcdTExMTBcdTExNjEpXDAwMChcdTExMTFcdTExNjEpXDAwMChcdTExMTJcdTExNjEiKworICAgICAgICAiKVwwMDAoXHUxMTBDXHUxMTZFKVwwMDAoXHU0RTAwKVwwMDAoXHU0RThDKVwwMDAoXHU0RTA5KVwwMDAoXHU1NkRCKVwwMDAiKworICAgICAgICAiKFx1NEU5NClcMDAwKFx1NTE2RClcMDAwKFx1NEUwMylcMDAwKFx1NTE2QilcMDAwKFx1NEU1RClcMDAwKFx1NTM0MSlcMDAwIisKKyAgICAgICAgIihcdTY3MDgpXDAwMChcdTcwNkIpXDAwMChcdTZDMzQpXDAwMChcdTY3MjgpXDAwMChcdTkxRDEpXDAwMChcdTU3MUYpXDAwMCIrCisgICAgICAgICIoXHU2NUU1KVwwMDAoXHU2ODJBKVwwMDAoXHU2NzA5KVwwMDAoXHU3OTNFKVwwMDAoXHU1NDBEKVwwMDAoXHU3Mjc5KVwwMDAiKworICAgICAgICAiKFx1OENBMSlcMDAwKFx1Nzk1RClcMDAwKFx1NTJCNClcMDAwKFx1NEVFMylcMDAwKFx1NTQ3QylcMDAwKFx1NUI2NilcMDAwIisKKyAgICAgICAgIihcdTc2RTMpXDAwMChcdTRGMDEpXDAwMChcdThDQzcpXDAwMChcdTUzNTQpXDAwMChcdTc5NkQpXDAwMChcdTRGMTEpXDAwMCIrCisgICAgICAgICIoXHU4MUVBKVwwMDAoXHU4MUYzKVwwMDBcdTExMDBcdTExNjFcMDAwXHUxMTAyXHUxMTYxXDAwMFx1MTEwM1x1MTE2MVwwMDAiKworICAgICAgICAiXHUxMTA1XHUxMTYxXDAwMFx1MTEwNlx1MTE2MVwwMDBcdTExMDdcdTExNjFcMDAwXHUxMTA5XHUxMTYxXDAwMFx1MTEwQiIrCisgICAgICAgICJcdTExNjFcMDAwXHUxMTBDXHUxMTYxXDAwMFx1MTEwRVx1MTE2MVwwMDBcdTExMEZcdTExNjFcMDAwXHUxMTEwXHUxMTYxIisKKyAgICAgICAgIlwwMDBcdTExMTFcdTExNjFcMDAwXHUxMTEyXHUxMTYxXDAwMFx1NEU5NFwwMDBcdTUxNkRcMDAwXHU0RTAzXDAwMFx1NEU1RCIrCisgICAgICAgICJcMDAwXHU2ODJBXDAwMFx1NjcwOVwwMDBcdTc5M0VcMDAwXHU1NDBEXDAwMFx1NzI3OVwwMDBcdThDQTFcMDAwXHU3OTVEIisKKyAgICAgICAgIlwwMDBcdTUyQjRcMDAwXHU3OUQ4XDAwMFx1NzUzN1wwMDBcdTkwNjlcMDAwXHU1MTJBXDAwMFx1NTM3MFwwMDBcdTZDRTgiKworICAgICAgICAiXDAwMFx1OTgwNVwwMDBcdTRGMTFcMDAwXHU1MTk5XDAwMFx1NkI2M1wwMDBcdTVERTZcMDAwXHU1M0YzXDAwMFx1NTMzQiIrCisgICAgICAgICJcMDAwXHU1Qjk3XDAwMFx1NUI2NlwwMDBcdTc2RTNcMDAwXHU0RjAxXDAwMFx1OENDN1wwMDBcdTUzNTRcMDAwXHU1OTFDIisKKyAgICAgICAgIlwwMDAxXHU2NzA4XDAwMDJcdTY3MDhcMDAwM1x1NjcwOFwwMDA0XHU2NzA4XDAwMDVcdTY3MDhcMDAwNlx1NjcwOFwwMDAiKworICAgICAgICAiN1x1NjcwOFwwMDA4XHU2NzA4XDAwMDlcdTY3MDhcMDAwMTBcdTY3MDhcMDAwMTFcdTY3MDhcMDAwMTJcdTY3MDhcMDAwIisKKyAgICAgICAgIlx1MzBBMlwwMDBcdTMwQTRcMDAwXHUzMEE2XDAwMFx1MzBBOFwwMDBcdTMwQUFcMDAwXHUzMEFCXDAwMFx1MzBBRFwwMDAiKworICAgICAgICAiXHUzMEFGXDAwMFx1MzBCMVwwMDBcdTMwQjNcMDAwXHUzMEI1XDAwMFx1MzBCN1wwMDBcdTMwQjlcMDAwXHUzMEJCXDAwMCIrCisgICAgICAgICJcdTMwQkRcMDAwXHUzMEJGXDAwMFx1MzBDMVwwMDBcdTMwQzRcMDAwXHUzMEM2XDAwMFx1MzBDOFwwMDBcdTMwQ0FcMDAwIisKKyAgICAgICAgIlx1MzBDQlwwMDBcdTMwQ0NcMDAwXHUzMENEXDAwMFx1MzBDRVwwMDBcdTMwQ0ZcMDAwXHUzMEQyXDAwMFx1MzBENVwwMDAiKworICAgICAgICAiXHUzMEQ4XDAwMFx1MzBEQlwwMDBcdTMwREVcMDAwXHUzMERGXDAwMFx1MzBFMFwwMDBcdTMwRTFcMDAwXHUzMEUyXDAwMCIrCisgICAgICAgICJcdTMwRTRcMDAwXHUzMEU2XDAwMFx1MzBFOFwwMDBcdTMwRTlcMDAwXHUzMEVBXDAwMFx1MzBFQlwwMDBcdTMwRUNcMDAwIisKKyAgICAgICAgIlx1MzBFRFwwMDBcdTMwRUZcMDAwXHUzMEYwXDAwMFx1MzBGMVwwMDBcdTMwRjJcMDAwXHUzMEEyXHUzMENGXHUzMDlBXHUzMEZDIisKKyAgICAgICAgIlx1MzBDOFwwMDBcdTMwQTJcdTMwRUJcdTMwRDVcdTMwQTFcMDAwXHUzMEEyXHUzMEYzXHUzMEQ4XHUzMDlBXHUzMEEyXDAwMCIrCisgICAgICAgICJcdTMwQTJcdTMwRkNcdTMwRUJcMDAwXHUzMEE0XHUzMENCXHUzMEYzXHUzMEFGXHUzMDk5XDAwMFx1MzBBNFx1MzBGM1x1MzBDMSIrCisgICAgICAgICJcMDAwXHUzMEE2XHUzMEE5XHUzMEYzXDAwMFx1MzBBOFx1MzBCOVx1MzBBRlx1MzBGQ1x1MzBDOFx1MzA5OVwwMDBcdTMwQTgiKworICAgICAgICAiXHUzMEZDXHUzMEFCXHUzMEZDXDAwMFx1MzBBQVx1MzBGM1x1MzBCOVwwMDBcdTMwQUFcdTMwRkNcdTMwRTBcMDAwXHUzMEFCIisKKyAgICAgICAgIlx1MzBBNFx1MzBFQVwwMDBcdTMwQUJcdTMwRTlcdTMwQzNcdTMwQzhcMDAwXHUzMEFCXHUzMEVEXHUzMEVBXHUzMEZDXDAwMCIrCisgICAgICAgICJcdTMwQUJcdTMwOTlcdTMwRURcdTMwRjNcMDAwXHUzMEFCXHUzMDk5XHUzMEYzXHUzMERFXDAwMFx1MzBBRFx1MzA5OVx1MzBBQiIrCisgICAgICAgICJcdTMwOTlcMDAwXHUzMEFEXHUzMDk5XHUzMENCXHUzMEZDXDAwMFx1MzBBRFx1MzBFNVx1MzBFQVx1MzBGQ1wwMDBcdTMwQUQiKworICAgICAgICAiXHUzMDk5XHUzMEVCXHUzMEJGXHUzMDk5XHUzMEZDXDAwMFx1MzBBRFx1MzBFRFwwMDBcdTMwQURcdTMwRURcdTMwQUZcdTMwOTkiKworICAgICAgICAiXHUzMEU5XHUzMEUwXDAwMFx1MzBBRFx1MzBFRFx1MzBFMVx1MzBGQ1x1MzBDOFx1MzBFQlwwMDBcdTMwQURcdTMwRURcdTMwRUYiKworICAgICAgICAiXHUzMEMzXHUzMEM4XDAwMFx1MzBBRlx1MzA5OVx1MzBFOVx1MzBFMFx1MzBDOFx1MzBGM1wwMDBcdTMwQUZcdTMwRUJcdTMwQkIiKworICAgICAgICAiXHUzMDk5XHUzMEE0XHUzMEVEXDAwMFx1MzBBRlx1MzBFRFx1MzBGQ1x1MzBDRFwwMDBcdTMwQjFcdTMwRkNcdTMwQjlcMDAwIisKKyAgICAgICAgIlx1MzBCM1x1MzBFQlx1MzBDQVwwMDBcdTMwQjNcdTMwRkNcdTMwREJcdTMwOUFcMDAwXHUzMEI1XHUzMEE0XHUzMEFGXHUzMEVCIisKKyAgICAgICAgIlwwMDBcdTMwQjVcdTMwRjNcdTMwQzFcdTMwRkNcdTMwRTBcMDAwXHUzMEI3XHUzMEVBXHUzMEYzXHUzMEFGXHUzMDk5XDAwMCIrCisgICAgICAgICJcdTMwQkJcdTMwRjNcdTMwQzFcMDAwXHUzMEJCXHUzMEYzXHUzMEM4XDAwMFx1MzBCRlx1MzA5OVx1MzBGQ1x1MzBCOVwwMDAiKworICAgICAgICAiXHUzMEM2XHUzMDk5XHUzMEI3XDAwMFx1MzBDOFx1MzA5OVx1MzBFQlwwMDBcdTMwQ0FcdTMwQ0VcMDAwXHUzMENFXHUzMEMzIisKKyAgICAgICAgIlx1MzBDOFwwMDBcdTMwQ0ZcdTMwQTRcdTMwQzRcMDAwXHUzMENGXHUzMDlBXHUzMEZDXHUzMEJCXHUzMEYzXHUzMEM4XDAwMCIrCisgICAgICAgICJcdTMwQ0ZcdTMwOUFcdTMwRkNcdTMwQzRcMDAwXHUzMENGXHUzMDk5XHUzMEZDXHUzMEVDXHUzMEVCXDAwMFx1MzBEMlx1MzA5QSIrCisgICAgICAgICJcdTMwQTJcdTMwQjlcdTMwQzhcdTMwRUJcMDAwXHUzMEQyXHUzMDlBXHUzMEFGXHUzMEVCXDAwMFx1MzBEMlx1MzA5QVx1MzBCMyIrCisgICAgICAgICJcMDAwXHUzMEQyXHUzMDk5XHUzMEVCXDAwMFx1MzBENVx1MzBBMVx1MzBFOVx1MzBDM1x1MzBDOFx1MzA5OVwwMDBcdTMwRDUiKworICAgICAgICAiXHUzMEEzXHUzMEZDXHUzMEM4XDAwMFx1MzBENVx1MzA5OVx1MzBDM1x1MzBCN1x1MzBBN1x1MzBFQlwwMDBcdTMwRDVcdTMwRTkiKworICAgICAgICAiXHUzMEYzXDAwMFx1MzBEOFx1MzBBRlx1MzBCRlx1MzBGQ1x1MzBFQlwwMDBcdTMwRDhcdTMwOUFcdTMwQkRcMDAwXHUzMEQ4IisKKyAgICAgICAgIlx1MzA5QVx1MzBDQlx1MzBEMlwwMDBcdTMwRDhcdTMwRUJcdTMwQzRcMDAwXHUzMEQ4XHUzMDlBXHUzMEYzXHUzMEI5XDAwMCIrCisgICAgICAgICJcdTMwRDhcdTMwOUFcdTMwRkNcdTMwQjdcdTMwOTlcMDAwXHUzMEQ4XHUzMDk5XHUzMEZDXHUzMEJGXDAwMFx1MzBEQlx1MzA5QSIrCisgICAgICAgICJcdTMwQTRcdTMwRjNcdTMwQzhcMDAwXHUzMERCXHUzMDk5XHUzMEVCXHUzMEM4XDAwMFx1MzBEQlx1MzBGM1wwMDBcdTMwREIiKworICAgICAgICAiXHUzMDlBXHUzMEYzXHUzMEM4XHUzMDk5XDAwMFx1MzBEQlx1MzBGQ1x1MzBFQlwwMDBcdTMwREJcdTMwRkNcdTMwRjNcMDAwIisKKyAgICAgICAgIlx1MzBERVx1MzBBNFx1MzBBRlx1MzBFRFwwMDBcdTMwREVcdTMwQTRcdTMwRUJcMDAwXHUzMERFXHUzMEMzXHUzMENGXDAwMCIrCisgICAgICAgICJcdTMwREVcdTMwRUJcdTMwQUZcMDAwXHUzMERFXHUzMEYzXHUzMEI3XHUzMEU3XHUzMEYzXDAwMFx1MzBERlx1MzBBRlx1MzBFRCIrCisgICAgICAgICJcdTMwRjNcMDAwXHUzMERGXHUzMEVBXDAwMFx1MzBERlx1MzBFQVx1MzBDRlx1MzA5OVx1MzBGQ1x1MzBFQlwwMDBcdTMwRTEiKworICAgICAgICAiXHUzMEFCXHUzMDk5XDAwMFx1MzBFMVx1MzBBQlx1MzA5OVx1MzBDOFx1MzBGM1wwMDBcdTMwRTRcdTMwRkNcdTMwQzhcdTMwOTkiKworICAgICAgICAiXDAwMFx1MzBFNFx1MzBGQ1x1MzBFQlwwMDBcdTMwRTZcdTMwQTJcdTMwRjNcMDAwXHUzMEVBXHUzMEMzXHUzMEM4XHUzMEVCIisKKyAgICAgICAgIlwwMDBcdTMwRUFcdTMwRTlcMDAwXHUzMEVCXHUzMEQyXHUzMDlBXHUzMEZDXDAwMFx1MzBFQlx1MzBGQ1x1MzBENVx1MzA5OSIrCisgICAgICAgICJcdTMwRUJcMDAwXHUzMEVDXHUzMEUwXDAwMFx1MzBFQ1x1MzBGM1x1MzBDOFx1MzBCMVx1MzA5OVx1MzBGM1wwMDAwXHU3MEI5IisKKyAgICAgICAgIlwwMDAxXHU3MEI5XDAwMDJcdTcwQjlcMDAwM1x1NzBCOVwwMDA0XHU3MEI5XDAwMDVcdTcwQjlcMDAwNlx1NzBCOVwwMDAiKworICAgICAgICAiN1x1NzBCOVwwMDA4XHU3MEI5XDAwMDlcdTcwQjlcMDAwMTBcdTcwQjlcMDAwMTFcdTcwQjlcMDAwMTJcdTcwQjlcMDAwIisKKyAgICAgICAgIjEzXHU3MEI5XDAwMDE0XHU3MEI5XDAwMDE1XHU3MEI5XDAwMDE2XHU3MEI5XDAwMDE3XHU3MEI5XDAwMDE4XHU3MEI5XDAwMCIrCisgICAgICAgICIxOVx1NzBCOVwwMDAyMFx1NzBCOVwwMDAyMVx1NzBCOVwwMDAyMlx1NzBCOVwwMDAyM1x1NzBCOVwwMDAyNFx1NzBCOVwwMDAiKworICAgICAgICAiaFBhXDAwMGRhXDAwMEFVXDAwMGJhclwwMDBvVlwwMDBwY1wwMDBcdTVFNzNcdTYyMTBcMDAwXHU2NjJEXHU1NDhDXDAwMCIrCisgICAgICAgICJcdTU5MjdcdTZCNjNcMDAwXHU2NjBFXHU2Q0JCXDAwMFx1NjgyQVx1NUYwRlx1NEYxQVx1NzkzRVwwMDBwQVwwMDBuQVwwMDAiKworICAgICAgICAiXHUwM0JDQVwwMDBtQVwwMDBrQVwwMDBLQlwwMDBNQlwwMDBHQlwwMDBjYWxcMDAwa2NhbFwwMDBwRlwwMDBuRlwwMDBcdTAzQkMiKworICAgICAgICAiRlwwMDBcdTAzQkNnXDAwMG1nXDAwMGtnXDAwMEh6XDAwMGtIelwwMDBNSHpcMDAwR0h6XDAwMFRIelwwMDBcdTAzQkNsIisKKyAgICAgICAgIlwwMDBtbFwwMDBkbFwwMDBrbFwwMDBmbVwwMDBubVwwMDBcdTAzQkNtXDAwMG1tXDAwMGNtXDAwMGttXDAwMG1tMlwwMDAiKworICAgICAgICAiY20yXDAwMGttMlwwMDBtbTNcMDAwY20zXDAwMGttM1wwMDBtXHUyMjE1c1wwMDBtXHUyMjE1czJcMDAwa1BhXDAwME1QIisKKyAgICAgICAgImFcMDAwR1BhXDAwMHJhZFwwMDByYWRcdTIyMTVzXDAwMHJhZFx1MjIxNXMyXDAwMHBzXDAwMG5zXDAwMFx1MDNCQ3NcMDAwIisKKyAgICAgICAgIm1zXDAwMHBWXDAwMG5WXDAwMFx1MDNCQ1ZcMDAwbVZcMDAwa1ZcMDAwTVZcMDAwcFdcMDAwbldcMDAwXHUwM0JDV1wwMDAiKworICAgICAgICAibVdcMDAwa1dcMDAwTVdcMDAwa1x1MDNBOVwwMDBNXHUwM0E5XDAwMGEubS5cMDAwQnFcMDAwY2NcMDAwY2RcMDAwQ1x1MjIxNSIrCisgICAgICAgICJrZ1wwMDBDby5cMDAwZEJcMDAwR3lcMDAwaGFcMDAwSFBcMDAwaW5cMDAwS0tcMDAwS01cMDAwa3RcMDAwbG1cMDAwbG4iKworICAgICAgICAiXDAwMGxvZ1wwMDBseFwwMDBtYlwwMDBtaWxcMDAwbW9sXDAwMFBIXDAwMHAubS5cMDAwUFBNXDAwMFBSXDAwMHNyXDAwMCIrCisgICAgICAgICJTdlwwMDBXYlwwMDAxXHU2NUU1XDAwMDJcdTY1RTVcMDAwM1x1NjVFNVwwMDA0XHU2NUU1XDAwMDVcdTY1RTVcMDAwNlx1NjVFNSIrCisgICAgICAgICJcMDAwN1x1NjVFNVwwMDA4XHU2NUU1XDAwMDlcdTY1RTVcMDAwMTBcdTY1RTVcMDAwMTFcdTY1RTVcMDAwMTJcdTY1RTUiKworICAgICAgICAiXDAwMDEzXHU2NUU1XDAwMDE0XHU2NUU1XDAwMDE1XHU2NUU1XDAwMDE2XHU2NUU1XDAwMDE3XHU2NUU1XDAwMDE4XHU2NUU1IisKKyAgICAgICAgIlwwMDAxOVx1NjVFNVwwMDAyMFx1NjVFNVwwMDAyMVx1NjVFNVwwMDAyMlx1NjVFNVwwMDAyM1x1NjVFNVwwMDAyNFx1NjVFNSIrCisgICAgICAgICJcMDAwMjVcdTY1RTVcMDAwMjZcdTY1RTVcMDAwMjdcdTY1RTVcMDAwMjhcdTY1RTVcMDAwMjlcdTY1RTVcMDAwMzBcdTY1RTUiKworICAgICAgICAiXDAwMDMxXHU2NUU1XDAwMGZmXDAwMGZpXDAwMGZsXDAwMGZmaVwwMDBmZmxcMDAwc3RcMDAwXHUwNTc0XHUwNTc2XDAwMCIrCisgICAgICAgICJcdTA1NzRcdTA1NjVcMDAwXHUwNTc0XHUwNTZCXDAwMFx1MDU3RVx1MDU3NlwwMDBcdTA1NzRcdTA1NkRcMDAwXHUwNUUyIisKKyAgICAgICAgIlwwMDBcdTA1RDRcMDAwXHUwNURCXDAwMFx1MDVEQ1wwMDBcdTA1RERcMDAwXHUwNUU4XDAwMFx1MDVFQVwwMDBcdTA1RDAiKworICAgICAgICAiXHUwNURDXDAwMFx1MDY3MVwwMDBcdTA2N0JcMDAwXHUwNjdFXDAwMFx1MDY4MFwwMDBcdTA2N0FcMDAwXHUwNjdGXDAwMCIrCisgICAgICAgICJcdTA2NzlcMDAwXHUwNkE0XDAwMFx1MDZBNlwwMDBcdTA2ODRcMDAwXHUwNjgzXDAwMFx1MDY4NlwwMDBcdTA2ODdcMDAwIisKKyAgICAgICAgIlx1MDY4RFwwMDBcdTA2OENcMDAwXHUwNjhFXDAwMFx1MDY4OFwwMDBcdTA2OThcMDAwXHUwNjkxXDAwMFx1MDZBOVwwMDAiKworICAgICAgICAiXHUwNkFGXDAwMFx1MDZCM1wwMDBcdTA2QjFcMDAwXHUwNkJBXDAwMFx1MDZCQlwwMDBcdTA2RDVcdTA2NTRcMDAwXHUwNkMxIisKKyAgICAgICAgIlwwMDBcdTA2QkVcMDAwXHUwNkQyXDAwMFx1MDZEMlx1MDY1NFwwMDBcdTA2QURcMDAwXHUwNkM3XDAwMFx1MDZDNlwwMDAiKworICAgICAgICAiXHUwNkM4XDAwMFx1MDZDQlwwMDBcdTA2QzVcMDAwXHUwNkM5XDAwMFx1MDZEMFwwMDBcdTA2NDlcMDAwXHUwNjRBXHUwNjU0IisKKyAgICAgICAgIlx1MDYyN1wwMDBcdTA2NEFcdTA2NTRcdTA2RDVcMDAwXHUwNjRBXHUwNjU0XHUwNjQ4XDAwMFx1MDY0QVx1MDY1NFx1MDZDNyIrCisgICAgICAgICJcMDAwXHUwNjRBXHUwNjU0XHUwNkM2XDAwMFx1MDY0QVx1MDY1NFx1MDZDOFwwMDBcdTA2NEFcdTA2NTRcdTA2RDBcMDAwIisKKyAgICAgICAgIlx1MDY0QVx1MDY1NFx1MDY0OVwwMDBcdTA2Q0NcMDAwXHUwNjRBXHUwNjU0XHUwNjJDXDAwMFx1MDY0QVx1MDY1NFx1MDYyRCIrCisgICAgICAgICJcMDAwXHUwNjRBXHUwNjU0XHUwNjQ1XDAwMFx1MDY0QVx1MDY1NFx1MDY0QVwwMDBcdTA2MjhcdTA2MkNcMDAwXHUwNjI4IisKKyAgICAgICAgIlx1MDYyRFwwMDBcdTA2MjhcdTA2MkVcMDAwXHUwNjI4XHUwNjQ1XDAwMFx1MDYyOFx1MDY0OVwwMDBcdTA2MjhcdTA2NEEiKworICAgICAgICAiXDAwMFx1MDYyQVx1MDYyQ1wwMDBcdTA2MkFcdTA2MkRcMDAwXHUwNjJBXHUwNjJFXDAwMFx1MDYyQVx1MDY0NVwwMDBcdTA2MkEiKworICAgICAgICAiXHUwNjQ5XDAwMFx1MDYyQVx1MDY0QVwwMDBcdTA2MkJcdTA2MkNcMDAwXHUwNjJCXHUwNjQ1XDAwMFx1MDYyQlx1MDY0OSIrCisgICAgICAgICJcMDAwXHUwNjJCXHUwNjRBXDAwMFx1MDYyQ1x1MDYyRFwwMDBcdTA2MkNcdTA2NDVcMDAwXHUwNjJEXHUwNjJDXDAwMFx1MDYyRCIrCisgICAgICAgICJcdTA2NDVcMDAwXHUwNjJFXHUwNjJDXDAwMFx1MDYyRVx1MDYyRFwwMDBcdTA2MkVcdTA2NDVcMDAwXHUwNjMzXHUwNjJDIisKKyAgICAgICAgIlwwMDBcdTA2MzNcdTA2MkRcMDAwXHUwNjMzXHUwNjJFXDAwMFx1MDYzM1x1MDY0NVwwMDBcdTA2MzVcdTA2MkRcMDAwXHUwNjM1IisKKyAgICAgICAgIlx1MDY0NVwwMDBcdTA2MzZcdTA2MkNcMDAwXHUwNjM2XHUwNjJEXDAwMFx1MDYzNlx1MDYyRVwwMDBcdTA2MzZcdTA2NDUiKworICAgICAgICAiXDAwMFx1MDYzN1x1MDYyRFwwMDBcdTA2MzdcdTA2NDVcMDAwXHUwNjM4XHUwNjQ1XDAwMFx1MDYzOVx1MDYyQ1wwMDBcdTA2MzkiKworICAgICAgICAiXHUwNjQ1XDAwMFx1MDYzQVx1MDYyQ1wwMDBcdTA2M0FcdTA2NDVcMDAwXHUwNjQxXHUwNjJDXDAwMFx1MDY0MVx1MDYyRCIrCisgICAgICAgICJcMDAwXHUwNjQxXHUwNjJFXDAwMFx1MDY0MVx1MDY0NVwwMDBcdTA2NDFcdTA2NDlcMDAwXHUwNjQxXHUwNjRBXDAwMFx1MDY0MiIrCisgICAgICAgICJcdTA2MkRcMDAwXHUwNjQyXHUwNjQ1XDAwMFx1MDY0Mlx1MDY0OVwwMDBcdTA2NDJcdTA2NEFcMDAwXHUwNjQzXHUwNjI3IisKKyAgICAgICAgIlwwMDBcdTA2NDNcdTA2MkNcMDAwXHUwNjQzXHUwNjJEXDAwMFx1MDY0M1x1MDYyRVwwMDBcdTA2NDNcdTA2NDRcMDAwXHUwNjQzIisKKyAgICAgICAgIlx1MDY0NVwwMDBcdTA2NDNcdTA2NDlcMDAwXHUwNjQzXHUwNjRBXDAwMFx1MDY0NFx1MDYyQ1wwMDBcdTA2NDRcdTA2MkQiKworICAgICAgICAiXDAwMFx1MDY0NFx1MDYyRVwwMDBcdTA2NDRcdTA2NDVcMDAwXHUwNjQ0XHUwNjQ5XDAwMFx1MDY0NFx1MDY0QVwwMDBcdTA2NDUiKworICAgICAgICAiXHUwNjJDXDAwMFx1MDY0NVx1MDYyRFwwMDBcdTA2NDVcdTA2MkVcMDAwXHUwNjQ1XHUwNjQ1XDAwMFx1MDY0NVx1MDY0OSIrCisgICAgICAgICJcMDAwXHUwNjQ1XHUwNjRBXDAwMFx1MDY0Nlx1MDYyQ1wwMDBcdTA2NDZcdTA2MkRcMDAwXHUwNjQ2XHUwNjJFXDAwMFx1MDY0NiIrCisgICAgICAgICJcdTA2NDVcMDAwXHUwNjQ2XHUwNjQ5XDAwMFx1MDY0Nlx1MDY0QVwwMDBcdTA2NDdcdTA2MkNcMDAwXHUwNjQ3XHUwNjQ1IisKKyAgICAgICAgIlwwMDBcdTA2NDdcdTA2NDlcMDAwXHUwNjQ3XHUwNjRBXDAwMFx1MDY0QVx1MDYyQ1wwMDBcdTA2NEFcdTA2MkRcMDAwXHUwNjRBIisKKyAgICAgICAgIlx1MDYyRVwwMDBcdTA2NEFcdTA2NDVcMDAwXHUwNjRBXHUwNjQ5XDAwMFx1MDY0QVx1MDY0QVwwMDBcdTA2MzBcdTA2NzAiKworICAgICAgICAiXDAwMFx1MDYzMVx1MDY3MFwwMDBcdTA2NDlcdTA2NzBcMDAwIFx1MDY0Q1x1MDY1MVwwMDAgXHUwNjREXHUwNjUxXDAwMCIrCisgICAgICAgICIgXHUwNjRFXHUwNjUxXDAwMCBcdTA2NEZcdTA2NTFcMDAwIFx1MDY1MFx1MDY1MVwwMDAgXHUwNjUxXHUwNjcwXDAwMFx1MDY0QSIrCisgICAgICAgICJcdTA2NTRcdTA2MzFcMDAwXHUwNjRBXHUwNjU0XHUwNjMyXDAwMFx1MDY0QVx1MDY1NFx1MDY0NlwwMDBcdTA2MjhcdTA2MzEiKworICAgICAgICAiXDAwMFx1MDYyOFx1MDYzMlwwMDBcdTA2MjhcdTA2NDZcMDAwXHUwNjJBXHUwNjMxXDAwMFx1MDYyQVx1MDYzMlwwMDBcdTA2MkEiKworICAgICAgICAiXHUwNjQ2XDAwMFx1MDYyQlx1MDYzMVwwMDBcdTA2MkJcdTA2MzJcMDAwXHUwNjJCXHUwNjQ2XDAwMFx1MDY0NVx1MDYyNyIrCisgICAgICAgICJcMDAwXHUwNjQ2XHUwNjMxXDAwMFx1MDY0Nlx1MDYzMlwwMDBcdTA2NDZcdTA2NDZcMDAwXHUwNjRBXHUwNjMxXDAwMFx1MDY0QSIrCisgICAgICAgICJcdTA2MzJcMDAwXHUwNjRBXHUwNjQ2XDAwMFx1MDY0QVx1MDY1NFx1MDYyRVwwMDBcdTA2NEFcdTA2NTRcdTA2NDdcMDAwIisKKyAgICAgICAgIlx1MDYyOFx1MDY0N1wwMDBcdTA2MkFcdTA2NDdcMDAwXHUwNjM1XHUwNjJFXDAwMFx1MDY0NFx1MDY0N1wwMDBcdTA2NDYiKworICAgICAgICAiXHUwNjQ3XDAwMFx1MDY0N1x1MDY3MFwwMDBcdTA2NEFcdTA2NDdcMDAwXHUwNjJCXHUwNjQ3XDAwMFx1MDYzM1x1MDY0NyIrCisgICAgICAgICJcMDAwXHUwNjM0XHUwNjQ1XDAwMFx1MDYzNFx1MDY0N1wwMDBcdTA2NDBcdTA2NEVcdTA2NTFcMDAwXHUwNjQwXHUwNjRGIisKKyAgICAgICAgIlx1MDY1MVwwMDBcdTA2NDBcdTA2NTBcdTA2NTFcMDAwXHUwNjM3XHUwNjQ5XDAwMFx1MDYzN1x1MDY0QVwwMDBcdTA2MzkiKworICAgICAgICAiXHUwNjQ5XDAwMFx1MDYzOVx1MDY0QVwwMDBcdTA2M0FcdTA2NDlcMDAwXHUwNjNBXHUwNjRBXDAwMFx1MDYzM1x1MDY0OSIrCisgICAgICAgICJcMDAwXHUwNjMzXHUwNjRBXDAwMFx1MDYzNFx1MDY0OVwwMDBcdTA2MzRcdTA2NEFcMDAwXHUwNjJEXHUwNjQ5XDAwMFx1MDYyRCIrCisgICAgICAgICJcdTA2NEFcMDAwXHUwNjJDXHUwNjQ5XDAwMFx1MDYyQ1x1MDY0QVwwMDBcdTA2MkVcdTA2NDlcMDAwXHUwNjJFXHUwNjRBIisKKyAgICAgICAgIlwwMDBcdTA2MzVcdTA2NDlcMDAwXHUwNjM1XHUwNjRBXDAwMFx1MDYzNlx1MDY0OVwwMDBcdTA2MzZcdTA2NEFcMDAwXHUwNjM0IisKKyAgICAgICAgIlx1MDYyQ1wwMDBcdTA2MzRcdTA2MkRcMDAwXHUwNjM0XHUwNjJFXDAwMFx1MDYzNFx1MDYzMVwwMDBcdTA2MzNcdTA2MzEiKworICAgICAgICAiXDAwMFx1MDYzNVx1MDYzMVwwMDBcdTA2MzZcdTA2MzFcMDAwXHUwNjI3XHUwNjRCXDAwMFx1MDYyQVx1MDYyQ1x1MDY0NSIrCisgICAgICAgICJcMDAwXHUwNjJBXHUwNjJEXHUwNjJDXDAwMFx1MDYyQVx1MDYyRFx1MDY0NVwwMDBcdTA2MkFcdTA2MkVcdTA2NDVcMDAwIisKKyAgICAgICAgIlx1MDYyQVx1MDY0NVx1MDYyQ1wwMDBcdTA2MkFcdTA2NDVcdTA2MkRcMDAwXHUwNjJBXHUwNjQ1XHUwNjJFXDAwMFx1MDYyQyIrCisgICAgICAgICJcdTA2NDVcdTA2MkRcMDAwXHUwNjJEXHUwNjQ1XHUwNjRBXDAwMFx1MDYyRFx1MDY0NVx1MDY0OVwwMDBcdTA2MzNcdTA2MkQiKworICAgICAgICAiXHUwNjJDXDAwMFx1MDYzM1x1MDYyQ1x1MDYyRFwwMDBcdTA2MzNcdTA2MkNcdTA2NDlcMDAwXHUwNjMzXHUwNjQ1XHUwNjJEIisKKyAgICAgICAgIlwwMDBcdTA2MzNcdTA2NDVcdTA2MkNcMDAwXHUwNjMzXHUwNjQ1XHUwNjQ1XDAwMFx1MDYzNVx1MDYyRFx1MDYyRFwwMDAiKworICAgICAgICAiXHUwNjM1XHUwNjQ1XHUwNjQ1XDAwMFx1MDYzNFx1MDYyRFx1MDY0NVwwMDBcdTA2MzRcdTA2MkNcdTA2NEFcMDAwXHUwNjM0IisKKyAgICAgICAgIlx1MDY0NVx1MDYyRVwwMDBcdTA2MzRcdTA2NDVcdTA2NDVcMDAwXHUwNjM2XHUwNjJEXHUwNjQ5XDAwMFx1MDYzNlx1MDYyRSIrCisgICAgICAgICJcdTA2NDVcMDAwXHUwNjM3XHUwNjQ1XHUwNjJEXDAwMFx1MDYzN1x1MDY0NVx1MDY0NVwwMDBcdTA2MzdcdTA2NDVcdTA2NEEiKworICAgICAgICAiXDAwMFx1MDYzOVx1MDYyQ1x1MDY0NVwwMDBcdTA2MzlcdTA2NDVcdTA2NDVcMDAwXHUwNjM5XHUwNjQ1XHUwNjQ5XDAwMCIrCisgICAgICAgICJcdTA2M0FcdTA2NDVcdTA2NDVcMDAwXHUwNjNBXHUwNjQ1XHUwNjRBXDAwMFx1MDYzQVx1MDY0NVx1MDY0OVwwMDBcdTA2NDEiKworICAgICAgICAiXHUwNjJFXHUwNjQ1XDAwMFx1MDY0Mlx1MDY0NVx1MDYyRFwwMDBcdTA2NDJcdTA2NDVcdTA2NDVcMDAwXHUwNjQ0XHUwNjJEIisKKyAgICAgICAgIlx1MDY0NVwwMDBcdTA2NDRcdTA2MkRcdTA2NEFcMDAwXHUwNjQ0XHUwNjJEXHUwNjQ5XDAwMFx1MDY0NFx1MDYyQ1x1MDYyQyIrCisgICAgICAgICJcMDAwXHUwNjQ0XHUwNjJFXHUwNjQ1XDAwMFx1MDY0NFx1MDY0NVx1MDYyRFwwMDBcdTA2NDVcdTA2MkRcdTA2MkNcMDAwIisKKyAgICAgICAgIlx1MDY0NVx1MDYyRFx1MDY0NVwwMDBcdTA2NDVcdTA2MkRcdTA2NEFcMDAwXHUwNjQ1XHUwNjJDXHUwNjJEXDAwMFx1MDY0NSIrCisgICAgICAgICJcdTA2MkNcdTA2NDVcMDAwXHUwNjQ1XHUwNjJFXHUwNjJDXDAwMFx1MDY0NVx1MDYyRVx1MDY0NVwwMDBcdTA2NDVcdTA2MkMiKworICAgICAgICAiXHUwNjJFXDAwMFx1MDY0N1x1MDY0NVx1MDYyQ1wwMDBcdTA2NDdcdTA2NDVcdTA2NDVcMDAwXHUwNjQ2XHUwNjJEXHUwNjQ1IisKKyAgICAgICAgIlwwMDBcdTA2NDZcdTA2MkRcdTA2NDlcMDAwXHUwNjQ2XHUwNjJDXHUwNjQ1XDAwMFx1MDY0Nlx1MDYyQ1x1MDY0OVwwMDAiKworICAgICAgICAiXHUwNjQ2XHUwNjQ1XHUwNjRBXDAwMFx1MDY0Nlx1MDY0NVx1MDY0OVwwMDBcdTA2NEFcdTA2NDVcdTA2NDVcMDAwXHUwNjI4IisKKyAgICAgICAgIlx1MDYyRVx1MDY0QVwwMDBcdTA2MkFcdTA2MkNcdTA2NEFcMDAwXHUwNjJBXHUwNjJDXHUwNjQ5XDAwMFx1MDYyQVx1MDYyRSIrCisgICAgICAgICJcdTA2NEFcMDAwXHUwNjJBXHUwNjJFXHUwNjQ5XDAwMFx1MDYyQVx1MDY0NVx1MDY0QVwwMDBcdTA2MkFcdTA2NDVcdTA2NDkiKworICAgICAgICAiXDAwMFx1MDYyQ1x1MDY0NVx1MDY0QVwwMDBcdTA2MkNcdTA2MkRcdTA2NDlcMDAwXHUwNjJDXHUwNjQ1XHUwNjQ5XDAwMCIrCisgICAgICAgICJcdTA2MzNcdTA2MkVcdTA2NDlcMDAwXHUwNjM1XHUwNjJEXHUwNjRBXDAwMFx1MDYzNFx1MDYyRFx1MDY0QVwwMDBcdTA2MzYiKworICAgICAgICAiXHUwNjJEXHUwNjRBXDAwMFx1MDY0NFx1MDYyQ1x1MDY0QVwwMDBcdTA2NDRcdTA2NDVcdTA2NEFcMDAwXHUwNjRBXHUwNjJEIisKKyAgICAgICAgIlx1MDY0QVwwMDBcdTA2NEFcdTA2MkNcdTA2NEFcMDAwXHUwNjRBXHUwNjQ1XHUwNjRBXDAwMFx1MDY0NVx1MDY0NVx1MDY0QSIrCisgICAgICAgICJcMDAwXHUwNjQyXHUwNjQ1XHUwNjRBXDAwMFx1MDY0Nlx1MDYyRFx1MDY0QVwwMDBcdTA2MzlcdTA2NDVcdTA2NEFcMDAwIisKKyAgICAgICAgIlx1MDY0M1x1MDY0NVx1MDY0QVwwMDBcdTA2NDZcdTA2MkNcdTA2MkRcMDAwXHUwNjQ1XHUwNjJFXHUwNjRBXDAwMFx1MDY0NCIrCisgICAgICAgICJcdTA2MkNcdTA2NDVcMDAwXHUwNjQzXHUwNjQ1XHUwNjQ1XDAwMFx1MDYyQ1x1MDYyRFx1MDY0QVwwMDBcdTA2MkRcdTA2MkMiKworICAgICAgICAiXHUwNjRBXDAwMFx1MDY0NVx1MDYyQ1x1MDY0QVwwMDBcdTA2NDFcdTA2NDVcdTA2NEFcMDAwXHUwNjI4XHUwNjJEXHUwNjRBIisKKyAgICAgICAgIlwwMDBcdTA2MzNcdTA2MkVcdTA2NEFcMDAwXHUwNjQ2XHUwNjJDXHUwNjRBXDAwMFx1MDYzNVx1MDY0NFx1MDZEMlwwMDAiKworICAgICAgICAiXHUwNjQyXHUwNjQ0XHUwNkQyXDAwMFx1MDYyN1x1MDY0NFx1MDY0NFx1MDY0N1wwMDBcdTA2MjdcdTA2NDNcdTA2MjhcdTA2MzEiKworICAgICAgICAiXDAwMFx1MDY0NVx1MDYyRFx1MDY0NVx1MDYyRlwwMDBcdTA2MzVcdTA2NDRcdTA2MzlcdTA2NDVcMDAwXHUwNjMxXHUwNjMzIisKKyAgICAgICAgIlx1MDY0OFx1MDY0NFwwMDBcdTA2MzlcdTA2NDRcdTA2NEFcdTA2NDdcMDAwXHUwNjQ4XHUwNjMzXHUwNjQ0XHUwNjQ1XDAwMCIrCisgICAgICAgICJcdTA2MzVcdTA2NDRcdTA2NDlcMDAwXHUwNjM1XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDY0NFx1MDY0NyBcdTA2MzkiKworICAgICAgICAiXHUwNjQ0XHUwNjRBXHUwNjQ3IFx1MDY0OFx1MDYzM1x1MDY0NFx1MDY0NVwwMDBcdTA2MkNcdTA2NDQgXHUwNjJDXHUwNjQ0IisKKyAgICAgICAgIlx1MDYyN1x1MDY0NFx1MDY0N1wwMDBcdTIwMTRcMDAwXHUyMDEzXDAwMF9cMDAwe1wwMDB9XDAwMFx1MzAxNFwwMDBcdTMwMTUiKworICAgICAgICAiXDAwMFx1MzAxMFwwMDBcdTMwMTFcMDAwXHUzMDBBXDAwMFx1MzAwQlwwMDBcdTMwMDhcMDAwXHUzMDA5XDAwMFx1MzAwQyIrCisgICAgICAgICJcMDAwXHUzMDBEXDAwMFx1MzAwRVwwMDBcdTMwMEZcMDAwLFwwMDBcdTMwMDFcMDAwO1wwMDA6XDAwMCNcMDAwJlwwMDAiKworICAgICAgICAiKlwwMDAtXDAwMDxcMDAwPlwwMDBcMTM0XDAwMCRcMDAwJVwwMDBAXDAwMCBcdTA2NEJcMDAwXHUwNjQwXHUwNjRCXDAwMCIrCisgICAgICAgICIgXHUwNjRDXDAwMCBcdTA2NERcMDAwIFx1MDY0RVwwMDBcdTA2NDBcdTA2NEVcMDAwIFx1MDY0RlwwMDBcdTA2NDBcdTA2NEYiKworICAgICAgICAiXDAwMCBcdTA2NTBcMDAwXHUwNjQwXHUwNjUwXDAwMCBcdTA2NTFcMDAwXHUwNjQwXHUwNjUxXDAwMCBcdTA2NTJcMDAwIisKKyAgICAgICAgIlx1MDY0MFx1MDY1MlwwMDBcdTA2MjFcMDAwXHUwNjI3XHUwNjUzXDAwMFx1MDYyN1x1MDY1NFwwMDBcdTA2NDhcdTA2NTQiKworICAgICAgICAiXDAwMFx1MDYyN1x1MDY1NVwwMDBcdTA2NEFcdTA2NTRcMDAwXHUwNjI4XDAwMFx1MDYyOVwwMDBcdTA2MkFcMDAwXHUwNjJCIisKKyAgICAgICAgIlwwMDBcdTA2MzBcMDAwXHUwNjMzXDAwMFx1MDYzNFwwMDBcdTA2MzVcMDAwXHUwNjM2XDAwMFx1MDYzN1wwMDBcdTA2MzgiKworICAgICAgICAiXDAwMFx1MDYzOVwwMDBcdTA2M0FcMDAwXHUwNjQxXDAwMFx1MDY0MlwwMDBcdTA2NDNcMDAwXHUwNjQ0XHUwNjI3XHUwNjUzIisKKyAgICAgICAgIlwwMDBcdTA2NDRcdTA2MjdcdTA2NTRcMDAwXHUwNjQ0XHUwNjI3XHUwNjU1XDAwMFx1MDY0NFx1MDYyN1wwMDBcMDQyXDAwMCIrCisgICAgICAgICInXDAwMC9cMDAwW1wwMDBdXDAwMF5cMDAwYFwwMDB8XDAwMH5cMDAwXHUzMDAyXDAwMFx1MzBGQlwwMDBcdTMwQTNcMDAwIisKKyAgICAgICAgIlx1MzBBNVwwMDBcdTMwQTdcMDAwXHUzMEE5XDAwMFx1MzBFM1wwMDBcdTMwRTVcMDAwXHUzMEU3XDAwMFx1MzBDM1wwMDAiKworICAgICAgICAiXHUwMEEyXDAwMFx1MDBBM1wwMDBcdTAwQUNcMDAwXHUwMEE2XDAwMFx1MDBBNVwwMDBcdTIwQTlcMDAwXHUyNTAyXDAwMCIrCisgICAgICAgICJcdTIxOTBcMDAwXHUyMTkxXDAwMFx1MjE5MlwwMDBcdTIxOTNcMDAwXHUyNUEwXDAwMFx1MjVDQlwwMDBcdTAzMDBcMDAwIisKKyAgICAgICAgIlx1MDMwMVwwMDBcdTAzMTNcMDAwXHUwMzA4XHUwMzAxXDAwMFx1MDJCOVwwMDA7XDAwMFx1MDBCN1wwMDBcdTA5MTVcdTA5M0MiKworICAgICAgICAiXDAwMFx1MDkxNlx1MDkzQ1wwMDBcdTA5MTdcdTA5M0NcMDAwXHUwOTFDXHUwOTNDXDAwMFx1MDkyMVx1MDkzQ1wwMDBcdTA5MjIiKworICAgICAgICAiXHUwOTNDXDAwMFx1MDkyQlx1MDkzQ1wwMDBcdTA5MkZcdTA5M0NcMDAwXHUwOUExXHUwOUJDXDAwMFx1MDlBMlx1MDlCQyIrCisgICAgICAgICJcMDAwXHUwOUFGXHUwOUJDXDAwMFx1MEEzMlx1MEEzQ1wwMDBcdTBBMzhcdTBBM0NcMDAwXHUwQTE2XHUwQTNDXDAwMFx1MEExNyIrCisgICAgICAgICJcdTBBM0NcMDAwXHUwQTFDXHUwQTNDXDAwMFx1MEEyQlx1MEEzQ1wwMDBcdTBCMjFcdTBCM0NcMDAwXHUwQjIyXHUwQjNDIisKKyAgICAgICAgIlwwMDBcdTBGNDJcdTBGQjdcMDAwXHUwRjRDXHUwRkI3XDAwMFx1MEY1MVx1MEZCN1wwMDBcdTBGNTZcdTBGQjdcMDAwXHUwRjVCIisKKyAgICAgICAgIlx1MEZCN1wwMDBcdTBGNDBcdTBGQjVcMDAwXHUwRjcxXHUwRjcyXDAwMFx1MEY3MVx1MEY3NFwwMDBcdTBGQjJcdTBGODAiKworICAgICAgICAiXDAwMFx1MEZCM1x1MEY4MFwwMDBcdTBGNzFcdTBGODBcMDAwXHUwRjkyXHUwRkI3XDAwMFx1MEY5Q1x1MEZCN1wwMDBcdTBGQTEiKworICAgICAgICAiXHUwRkI3XDAwMFx1MEZBNlx1MEZCN1wwMDBcdTBGQUJcdTBGQjdcMDAwXHUwRjkwXHUwRkI1XDAwMFx1MDNCMVx1MDMwMSIrCisgICAgICAgICJcMDAwXHUwM0I1XHUwMzAxXDAwMFx1MDNCN1x1MDMwMVwwMDBcdTAzQjlcdTAzMDFcMDAwXHUwM0JGXHUwMzAxXDAwMFx1MDNDNSIrCisgICAgICAgICJcdTAzMDFcMDAwXHUwM0M5XHUwMzAxXDAwMFx1MDM5MVx1MDMwMVwwMDBcdTAzQjlcMDAwXHUwMzk1XHUwMzAxXDAwMFx1MDM5NyIrCisgICAgICAgICJcdTAzMDFcMDAwXHUwM0I5XHUwMzA4XHUwMzAxXDAwMFx1MDM5OVx1MDMwMVwwMDBcdTAzQzVcdTAzMDhcdTAzMDFcMDAwIisKKyAgICAgICAgIlx1MDNBNVx1MDMwMVwwMDBgXDAwMFx1MDM5Rlx1MDMwMVwwMDBcdTAzQTlcdTAzMDFcMDAwXHUwM0E5XDAwMEtcMDAwQSIrCisgICAgICAgICJcdTAzMEFcMDAwXHUzMDA4XDAwMFx1MzAwOVwwMDBcdThDNDhcMDAwXHU2NkY0XDAwMFx1OEVDQVwwMDBcdThDQzhcMDAwIisKKyAgICAgICAgIlx1NkVEMVwwMDBcdTRFMzJcMDAwXHU1M0U1XDAwMFx1OUY5Q1wwMDBcdTlGOUNcMDAwXHU1OTUxXDAwMFx1OTFEMVwwMDAiKworICAgICAgICAiXHU1NTg3XDAwMFx1NTk0OFwwMDBcdTYxRjZcMDAwXHU3NjY5XDAwMFx1N0Y4NVwwMDBcdTg2M0ZcMDAwXHU4N0JBXDAwMCIrCisgICAgICAgICJcdTg4RjhcMDAwXHU5MDhGXDAwMFx1NkEwMlwwMDBcdTZEMUJcMDAwXHU3MEQ5XDAwMFx1NzNERVwwMDBcdTg0M0RcMDAwIisKKyAgICAgICAgIlx1OTE2QVwwMDBcdTk5RjFcMDAwXHU0RTgyXDAwMFx1NTM3NVwwMDBcdTZCMDRcMDAwXHU3MjFCXDAwMFx1ODYyRFwwMDAiKworICAgICAgICAiXHU5RTFFXDAwMFx1NUQ1MFwwMDBcdTZGRUJcMDAwXHU4NUNEXDAwMFx1ODk2NFwwMDBcdTYyQzlcMDAwXHU4MUQ4XDAwMCIrCisgICAgICAgICJcdTg4MUZcMDAwXHU1RUNBXDAwMFx1NjcxN1wwMDBcdTZENkFcMDAwXHU3MkZDXDAwMFx1OTBDRVwwMDBcdTRGODZcMDAwIisKKyAgICAgICAgIlx1NTFCN1wwMDBcdTUyREVcMDAwXHU2NEM0XDAwMFx1NkFEM1wwMDBcdTcyMTBcMDAwXHU3NkU3XDAwMFx1ODAwMVwwMDAiKworICAgICAgICAiXHU4NjA2XDAwMFx1ODY1Q1wwMDBcdThERUZcMDAwXHU5NzMyXDAwMFx1OUI2RlwwMDBcdTlERkFcMDAwXHU3ODhDXDAwMCIrCisgICAgICAgICJcdTc5N0ZcMDAwXHU3REEwXDAwMFx1ODNDOVwwMDBcdTkzMDRcMDAwXHU5RTdGXDAwMFx1OEFENlwwMDBcdTU4REZcMDAwIisKKyAgICAgICAgIlx1NUYwNFwwMDBcdTdDNjBcMDAwXHU4MDdFXDAwMFx1NzI2MlwwMDBcdTc4Q0FcMDAwXHU4Q0MyXDAwMFx1OTZGN1wwMDAiKworICAgICAgICAiXHU1OEQ4XDAwMFx1NUM2MlwwMDBcdTZBMTNcMDAwXHU2RERBXDAwMFx1NkYwRlwwMDBcdTdEMkZcMDAwXHU3RTM3XDAwMCIrCisgICAgICAgICJcdTk2RkJcMDAwXHU1MkQyXDAwMFx1ODA4QlwwMDBcdTUxRENcMDAwXHU1MUNDXDAwMFx1N0ExQ1wwMDBcdTdEQkVcMDAwIisKKyAgICAgICAgIlx1ODNGMVwwMDBcdTk2NzVcMDAwXHU4QjgwXDAwMFx1NjJDRlwwMDBcdThBRkVcMDAwXHU0RTM5XDAwMFx1NUJFN1wwMDAiKworICAgICAgICAiXHU2MDEyXDAwMFx1NzM4N1wwMDBcdTc1NzBcMDAwXHU1MzE3XDAwMFx1NzhGQlwwMDBcdTRGQkZcMDAwXHU1RkE5XDAwMCIrCisgICAgICAgICJcdTRFMERcMDAwXHU2Q0NDXDAwMFx1NjU3OFwwMDBcdTdEMjJcMDAwXHU1M0MzXDAwMFx1NTg1RVwwMDBcdTc3MDFcMDAwIisKKyAgICAgICAgIlx1ODQ0OVwwMDBcdThBQUFcMDAwXHU2QkJBXDAwMFx1OEZCMFwwMDBcdTZDODhcMDAwXHU2MkZFXDAwMFx1ODJFNVwwMDAiKworICAgICAgICAiXHU2M0EwXDAwMFx1NzU2NVwwMDBcdTRFQUVcMDAwXHU1MTY5XDAwMFx1NTFDOVwwMDBcdTY4ODFcMDAwXHU3Q0U3XDAwMCIrCisgICAgICAgICJcdTgyNkZcMDAwXHU4QUQyXDAwMFx1OTFDRlwwMDBcdTUyRjVcMDAwXHU1NDQyXDAwMFx1NTk3M1wwMDBcdTVFRUNcMDAwIisKKyAgICAgICAgIlx1NjVDNVwwMDBcdTZGRkVcMDAwXHU3OTJBXDAwMFx1OTVBRFwwMDBcdTlBNkFcMDAwXHU5RTk3XDAwMFx1OUVDRVwwMDAiKworICAgICAgICAiXHU1MjlCXDAwMFx1NjZDNlwwMDBcdTZCNzdcMDAwXHU4RjYyXDAwMFx1NUU3NFwwMDBcdTYxOTBcMDAwXHU2MjAwXDAwMCIrCisgICAgICAgICJcdTY0OUFcMDAwXHU2RjIzXDAwMFx1NzE0OVwwMDBcdTc0ODlcMDAwXHU3OUNBXDAwMFx1N0RGNFwwMDBcdTgwNkZcMDAwIisKKyAgICAgICAgIlx1OEYyNlwwMDBcdTg0RUVcMDAwXHU5MDIzXDAwMFx1OTM0QVwwMDBcdTUyMTdcMDAwXHU1MkEzXDAwMFx1NTRCRFwwMDAiKworICAgICAgICAiXHU3MEM4XDAwMFx1ODhDMlwwMDBcdTVFQzlcMDAwXHU1RkY1XDAwMFx1NjM3QlwwMDBcdTZCQUVcMDAwXHU3QzNFXDAwMCIrCisgICAgICAgICJcdTczNzVcMDAwXHU0RUU0XDAwMFx1NTZGOVwwMDBcdTVEQkFcMDAwXHU2MDFDXDAwMFx1NzNCMlwwMDBcdTc0NjlcMDAwIisKKyAgICAgICAgIlx1N0Y5QVwwMDBcdTgwNDZcMDAwXHU5MjM0XDAwMFx1OTZGNlwwMDBcdTk3NDhcMDAwXHU5ODE4XDAwMFx1NEY4QlwwMDAiKworICAgICAgICAiXHU3OUFFXDAwMFx1OTFCNFwwMDBcdTk2QjhcMDAwXHU2MEUxXDAwMFx1NEU4NlwwMDBcdTUwREFcMDAwXHU1QkVFXDAwMCIrCisgICAgICAgICJcdTVDM0ZcMDAwXHU2NTk5XDAwMFx1NzFDRVwwMDBcdTc2NDJcMDAwXHU4NEZDXDAwMFx1OTA3Q1wwMDBcdTlGOERcMDAwIisKKyAgICAgICAgIlx1NjY4OFwwMDBcdTk2MkVcMDAwXHU1Mjg5XDAwMFx1Njc3QlwwMDBcdTY3RjNcMDAwXHU2RDQxXDAwMFx1NkU5Q1wwMDAiKworICAgICAgICAiXHU3NDA5XDAwMFx1NzU1OVwwMDBcdTc4NkJcMDAwXHU3RDEwXDAwMFx1OTg1RVwwMDBcdTUxNkRcMDAwXHU2MjJFXDAwMCIrCisgICAgICAgICJcdTk2NzhcMDAwXHU1MDJCXDAwMFx1NUQxOVwwMDBcdTZERUFcMDAwXHU4RjJBXDAwMFx1NUY4QlwwMDBcdTYxNDRcMDAwIisKKyAgICAgICAgIlx1NjgxN1wwMDBcdTk2ODZcMDAwXHU1MjI5XDAwMFx1NTQwRlwwMDBcdTVDNjVcMDAwXHU2NjEzXDAwMFx1Njc0RVwwMDAiKworICAgICAgICAiXHU2OEE4XDAwMFx1NkNFNVwwMDBcdTc0MDZcMDAwXHU3NUUyXDAwMFx1N0Y3OVwwMDBcdTg4Q0ZcMDAwXHU4OEUxXDAwMCIrCisgICAgICAgICJcdTkxQ0NcMDAwXHU5NkUyXDAwMFx1NTMzRlwwMDBcdTZFQkFcMDAwXHU1NDFEXDAwMFx1NzFEMFwwMDBcdTc0OThcMDAwIisKKyAgICAgICAgIlx1ODVGQVwwMDBcdTk2QTNcMDAwXHU5QzU3XDAwMFx1OUU5RlwwMDBcdTY3OTdcMDAwXHU2RENCXDAwMFx1ODFFOFwwMDAiKworICAgICAgICAiXHU3QUNCXDAwMFx1N0IyMFwwMDBcdTdDOTJcMDAwXHU3MkMwXDAwMFx1NzA5OVwwMDBcdThCNThcMDAwXHU0RUMwXDAwMCIrCisgICAgICAgICJcdTgzMzZcMDAwXHU1MjNBXDAwMFx1NTIwN1wwMDBcdTVFQTZcMDAwXHU2MkQzXDAwMFx1N0NENlwwMDBcdTVCODVcMDAwIisKKyAgICAgICAgIlx1NkQxRVwwMDBcdTY2QjRcMDAwXHU4RjNCXDAwMFx1ODg0Q1wwMDBcdTk2NERcMDAwXHU4OThCXDAwMFx1NUVEM1wwMDAiKworICAgICAgICAiXHU1MTQwXDAwMFx1NTVDMFwwMDBcdTU4NUFcMDAwXHU2Njc0XDAwMFx1NTFERVwwMDBcdTczMkFcMDAwXHU3NkNBXDAwMCIrCisgICAgICAgICJcdTc5M0NcMDAwXHU3OTVFXDAwMFx1Nzk2NVwwMDBcdTc5OEZcMDAwXHU5NzU2XDAwMFx1N0NCRVwwMDBcdTdGQkRcMDAwIisKKyAgICAgICAgIlx1ODYxMlwwMDBcdThBRjhcMDAwXHU5MDM4XDAwMFx1OTBGRFwwMDBcdTk4RUZcMDAwXHU5OEZDXDAwMFx1OTkyOFwwMDAiKworICAgICAgICAiXHU5REI0XDAwMFx1MDVGMlx1MDVCN1wwMDBcdTA1RTlcdTA1QzFcMDAwXHUwNUU5XHUwNUMyXDAwMFx1MDVFOVx1MDVCQyIrCisgICAgICAgICJcdTA1QzFcMDAwXHUwNUU5XHUwNUJDXHUwNUMyXDAwMFx1MDVEMFx1MDVCN1wwMDBcdTA1RDBcdTA1QjhcMDAwXHUwNUQwIisKKyAgICAgICAgIlx1MDVCQ1wwMDBcdTA1RDFcdTA1QkNcMDAwXHUwNUQyXHUwNUJDXDAwMFx1MDVEM1x1MDVCQ1wwMDBcdTA1RDRcdTA1QkMiKworICAgICAgICAiXDAwMFx1MDVENVx1MDVCQ1wwMDBcdTA1RDZcdTA1QkNcMDAwXHUwNUQ4XHUwNUJDXDAwMFx1MDVEOVx1MDVCQ1wwMDBcdTA1REEiKworICAgICAgICAiXHUwNUJDXDAwMFx1MDVEQlx1MDVCQ1wwMDBcdTA1RENcdTA1QkNcMDAwXHUwNURFXHUwNUJDXDAwMFx1MDVFMFx1MDVCQyIrCisgICAgICAgICJcMDAwXHUwNUUxXHUwNUJDXDAwMFx1MDVFM1x1MDVCQ1wwMDBcdTA1RTRcdTA1QkNcMDAwXHUwNUU2XHUwNUJDXDAwMFx1MDVFNyIrCisgICAgICAgICJcdTA1QkNcMDAwXHUwNUU4XHUwNUJDXDAwMFx1MDVFOVx1MDVCQ1wwMDBcdTA1RUFcdTA1QkNcMDAwXHUwNUQ1XHUwNUI5IisKKyAgICAgICAgIlwwMDBcdTA1RDFcdTA1QkZcMDAwXHUwNURCXHUwNUJGXDAwMFx1MDVFNFx1MDVCRlwwMDBcdTAzODVcMDAwXHUwMEI0XDAwMCIrCisgICAgICAgICJcdTIwMDJcMDAwXHUyMDAzXDAwMFx1MDE3Mlx1MDMwM1x1MDMwMVwwMDBcdTFFNzZcdTAzMDhcdTAzMDRcMDAwXHUwMUVCIisKKyAgICAgICAgIlx1MDMxQlx1MDMwMVwwMDBcdTFFQjlcdTAzMDRcdTAzMDBcMDAwXHUxRTcyXHUwMzAzXHUwMzAxXDAwMFx1MUUxMVx1MDMwQyIrCisgICAgICAgICJcMDAwXHUxRUU0XHUwMzAzXHUwMzAxXDAwMFx1MUVFM1x1MDMwMVwwMDBcdTAxNzJcdTAzMDhcdTAzMDRcMDAwXHUxRTBEIisKKyAgICAgICAgIlx1MDMwQ1wwMDBcdTFFNzJcdTAzMDhcdTAzMDRcMDAwXHUxRUU0XHUwMzA4XHUwMzA0XDAwMFx1MUVFRVx1MDMwMVwwMDAiKworICAgICAgICAiXHUwMUFGXHUwMzA4XHUwMzA0XDAwMFx1MUUxQVx1MDMwNFx1MDMwMFwwMDBcdTFFMThcdTAzMDRcdTAzMDBcMDAwXHUxRTBFIisKKyAgICAgICAgIlx1MDMwQ1wwMDBcdTFFNzVcdTAzMEJcMDAwXHUwMTE4XHUwMzA0XHUwMzAwXDAwMFx1MUUxMlx1MDMwQ1wwMDBcdTAyMjgiKworICAgICAgICAiXHUwMzA0XHUwMzAwXDAwMFx1MUU3NVx1MDMwQ1wwMDBcdTAxNzNcdTAzMkRcMDAwXHUxRTc3XHUwMzBCXDAwMFx1MDFFQSIrCisgICAgICAgICJcdTAzMUJcdTAzMDFcMDAwXHUxRTc3XHUwMzBDXDAwMFx1MUVCOFx1MDMwNFx1MDMwMFwwMDBcdTFFMTBcdTAzMENcMDAwIisKKyAgICAgICAgIlx1MDE3M1x1MDMwQlwwMDBcdTFFRTJcdTAzMDFcMDAwXHUwMTczXHUwMzBDXDAwMFx1MUUwQ1x1MDMwQ1wwMDBcdTFFNzMiKworICAgICAgICAiXHUwMzBCXDAwMFx1MUVFNVx1MDMwQlwwMDBcdTFFNzNcdTAzMENcMDAwXHUxRUU1XHUwMzBDXDAwMFx1MDFCMFx1MDMyRCIrCisgICAgICAgICJcMDAwXHUwMUIwXHUwMzBCXDAwMFx1MDFCMFx1MDMwQ1wwMDBcdTFFNzRcdTAzMEJcMDAwXHUxRTExXHUwMzJEXDAwMFx1MUU3NCIrCisgICAgICAgICJcdTAzMENcMDAwXHUwMTcyXHUwMzJEXDAwMFx1MUU3Nlx1MDMwQlwwMDBcdTAxRUJcdTAzMjNcdTAzMDJcMDAwXHUxRTc2IisKKyAgICAgICAgIlx1MDMwQ1wwMDBcdTAwRTdcdTAzMENcMDAwXHUwMTcyXHUwMzBCXDAwMFx1MDE3Mlx1MDMwQ1wwMDBcdTFFNzJcdTAzMEIiKworICAgICAgICAiXDAwMFx1MUVFNFx1MDMwQlwwMDBcdTFFNzJcdTAzMENcMDAwXHUxRUU0XHUwMzBDXDAwMFx1MDFBRlx1MDMyRFwwMDBcdTFFRTMiKworICAgICAgICAiXHUwMzAyXDAwMFx1MDFBRlx1MDMwQlwwMDBcdTAxQUZcdTAzMENcMDAwXHUxRTc1XHUwMzBBXDAwMFx1MUUxMFx1MDMyRCIrCisgICAgICAgICJcMDAwXHUxRTc3XHUwMzBBXDAwMFx1MDE3M1x1MDMzMFwwMDBcdTAxRUFcdTAzMjNcdTAzMDJcMDAwXHUwMEM3XHUwMzBDIisKKyAgICAgICAgIlwwMDBcdTAxNzNcdTAzMEFcMDAwXHUwMUVCXHUwMzBDXDAwMFx1MUU3M1x1MDMwQVwwMDBcdTFFRTVcdTAzMEFcMDAwXHUxRUNEIisKKyAgICAgICAgIlx1MDMwQ1wwMDBcdTAxQjBcdTAzMzBcMDAwXHUxRUUyXHUwMzAyXDAwMFx1MDFCMFx1MDMwQVwwMDBcdTAxQTFcdTAzMEMiKworICAgICAgICAiXDAwMFx1MUU3NFx1MDMwQVwwMDBcdTFFNzZcdTAzMEFcMDAwXHUwMTcyXHUwMzMwXDAwMFx1MDFFQlx1MDMwMlx1MDMwMyIrCisgICAgICAgICJcMDAwXHUwMEU3XHUwMzA3XDAwMFx1MDE3Mlx1MDMwQVwwMDBcdTAxRUFcdTAzMENcMDAwXHUxRUQ5XHUwMzAzXDAwMFx1MUU3MiIrCisgICAgICAgICJcdTAzMEFcMDAwXHUxRUU0XHUwMzBBXDAwMFx1MUVDQ1x1MDMwQ1wwMDBcdTAxQUZcdTAzMzBcMDAwXHUwMUExXHUwMzAyIisKKyAgICAgICAgIlx1MDMwM1wwMDBcdTAxQUZcdTAzMEFcMDAwXHUwMUEwXHUwMzBDXDAwMFx1MERERVx1MERDQVwwMDBcdTFFNzVcdTAzMDYiKworICAgICAgICAiXDAwMFx1MUUyRFx1MDMwQ1wwMDBcdTFFNzdcdTAzMDZcMDAwXHUwMTczXHUwMzI0XDAwMFx1MDFFQVx1MDMwMlx1MDMwMyIrCisgICAgICAgICJcMDAwXHUwMEM3XHUwMzA3XDAwMFx1MDE3M1x1MDMwNlwwMDBcdTAxMkZcdTAzMENcMDAwXHUxRUQ4XHUwMzAzXDAwMFx1MUU3MyIrCisgICAgICAgICJcdTAzMDZcMDAwXHUxRUU1XHUwMzA2XDAwMFx1MUVDQlx1MDMwQ1wwMDBcdTAxQjBcdTAzMjRcMDAwXHUxRUY1XHUwMzA0IisKKyAgICAgICAgIlwwMDBcdTAxQTBcdTAzMDJcdTAzMDNcMDAwXHUwMUIwXHUwMzA2XDAwMFx1MUU3NFx1MDMwNlwwMDBcdTFFMkNcdTAzMEMiKworICAgICAgICAiXDAwMFx1MUUxMVx1MDMzMVwwMDBcdTFFNzZcdTAzMDZcMDAwXHUwMTcyXHUwMzI0XDAwMFx1MDFFQlx1MDMwMlx1MDMwOSIrCisgICAgICAgICJcMDAwXHUwMEU3XHUwMzAyXDAwMFx1MDE3Mlx1MDMwNlwwMDBcdTAxMkVcdTAzMENcMDAwXHUxRUQ5XHUwMzA5XDAwMFx1MUU3MiIrCisgICAgICAgICJcdTAzMDZcMDAwXHUxRUU0XHUwMzA2XDAwMFx1MUVDQVx1MDMwQ1wwMDBcdTAxQUZcdTAzMjRcMDAwXHUxRUY0XHUwMzA0IisKKyAgICAgICAgIlwwMDBcdTAxQTFcdTAzMDJcdTAzMDlcMDAwXHUwMUFGXHUwMzA2XDAwMFx1MUU3NVx1MDMwNFwwMDBcdTFFMTBcdTAzMzEiKworICAgICAgICAiXDAwMFx1MUU3N1x1MDMwNFwwMDBcdTAxNjNcdTAzMkRcMDAwXHUwMUVBXHUwMzAyXHUwMzA5XDAwMFx1MDBDN1x1MDMwMiIrCisgICAgICAgICJcMDAwXHUwMTczXHUwMzA0XDAwMFx1MDEwNVx1MDMwQ1wwMDBcdTFFRDhcdTAzMDlcMDAwXHUxRTczXHUwMzA0XDAwMFx1MDFFQiIrCisgICAgICAgICJcdTAzMDdcdTAzMDRcMDAwXHUxRUU1XHUwMzA0XDAwMFx1MUUwMVx1MDMwQ1wwMDBcdTFFQTFcdTAzMENcMDAwXHUxRUNEIisKKyAgICAgICAgIlx1MDMwN1x1MDMwNFwwMDBcdTAxQTBcdTAzMDJcdTAzMDlcMDAwXHUwMUIwXHUwMzA0XDAwMFx1MDFBMVx1MDMwN1x1MDMwNCIrCisgICAgICAgICJcMDAwXHUxRTc0XHUwMzA0XDAwMFx1MUUxMVx1MDMyM1wwMDBcdTFFNzZcdTAzMDRcMDAwXHUwMTYyXHUwMzJEXDAwMFx1MDFFQiIrCisgICAgICAgICJcdTAzMDJcdTAzMDBcMDAwXHUwMTcyXHUwMzA0XDAwMFx1MDEwNFx1MDMwQ1wwMDBcdTFFRDlcdTAzMDBcMDAwXHUxRTcyIisKKyAgICAgICAgIlx1MDMwNFwwMDBcdTAxRUFcdTAzMDdcdTAzMDRcMDAwXHUxRUU0XHUwMzA0XDAwMFx1MUUwMFx1MDMwQ1wwMDBcdTFFQTAiKworICAgICAgICAiXHUwMzBDXDAwMFx1MUVDQ1x1MDMwN1x1MDMwNFwwMDBcdTAxQTFcdTAzMDJcdTAzMDBcMDAwXHUwMUFGXHUwMzA0XDAwMCIrCisgICAgICAgICJcdTAxQTBcdTAzMDdcdTAzMDRcMDAwXHUxRTc1XHUwMzAzXDAwMFx1MUUxMFx1MDMyM1wwMDBcdTFFNzdcdTAzMDNcMDAwIisKKyAgICAgICAgIlx1MDE2M1x1MDMzMVwwMDBcdTAxRUFcdTAzMDJcdTAzMDBcMDAwXHUwMTczXHUwMzAzXDAwMFx1MUVEOFx1MDMwMFwwMDAiKworICAgICAgICAiXHUxRTczXHUwMzAzXDAwMFx1MDFFQlx1MDMwN1wwMDBcdTFFRTVcdTAzMDNcMDAwXHUxRUNEXHUwMzA3XDAwMFx1MDFBMCIrCisgICAgICAgICJcdTAzMDJcdTAzMDBcMDAwXHUwMzhGXHUwMzQ1XDAwMFx1MUZGQVx1MDM0NVwwMDBcdTFFMEZcdTAzMDdcMDAwXHUwMUExIisKKyAgICAgICAgIlx1MDMwN1wwMDBcdTFFMTNcdTAzMDdcMDAwXHUxRTc0XHUwMzAzXDAwMFx1MUUxMVx1MDMwN1wwMDBcdTFFNzZcdTAzMDMiKworICAgICAgICAiXDAwMFx1MDE2Mlx1MDMzMVwwMDBcdTAxRUJcdTAzMDJcdTAzMDFcMDAwXHUxRTBEXHUwMzA3XDAwMFx1MDE3Mlx1MDMwMyIrCisgICAgICAgICJcMDAwXHUxRUQ5XHUwMzAxXDAwMFx1MUU3Mlx1MDMwM1wwMDBcdTAxRUFcdTAzMDdcMDAwXHUxRUU0XHUwMzAzXDAwMFx1MUVDQyIrCisgICAgICAgICJcdTAzMDdcMDAwXHUwMUExXHUwMzAyXHUwMzAxXDAwMFx1MUUwRVx1MDMwN1wwMDBcdTAxQTBcdTAzMDdcMDAwXHUxRTEyIisKKyAgICAgICAgIlx1MDMwN1wwMDBcdTFFMTBcdTAzMDdcMDAwXHUwMTYzXHUwMzIzXDAwMFx1MDFFQVx1MDMwMlx1MDMwMVwwMDBcdTFFMEMiKworICAgICAgICAiXHUwMzA3XDAwMFx1MUVEOFx1MDMwMVwwMDBcdTAxRUJcdTAzMDNcdTAzMDRcMDAwXHUxRUNEXHUwMzAzXHUwMzA0XDAwMCIrCisgICAgICAgICJcdTAxQTBcdTAzMDJcdTAzMDFcMDAwXHUxRUUxXHUwMzA0XDAwMFx1MDE2Mlx1MDMyM1wwMDBcdTAxRUJcdTAzMDlcMDAwIisKKyAgICAgICAgIlx1MDEwNVx1MDMwNlwwMDBcdTFFMDFcdTAzMDZcMDAwXHUxRUNEXHUwMzA5XDAwMFx1MDFFQVx1MDMwM1x1MDMwNFwwMDAiKworICAgICAgICAiXHUxRUNDXHUwMzAzXHUwMzA0XDAwMFx1MUU2Rlx1MDMwN1wwMDBcdTFFRTBcdTAzMDRcMDAwXHUxRTcxXHUwMzA3XDAwMCIrCisgICAgICAgICJcdTFFNkZcdTAzMENcMDAwXHUxRTcxXHUwMzBDXDAwMFx1MDE2M1x1MDMwN1wwMDBcdTAyMUJcdTAzMDdcMDAwXHUwMUVBIisKKyAgICAgICAgIlx1MDMwOVwwMDBcdTAxMDRcdTAzMDZcMDAwXHUxRTZEXHUwMzA3XDAwMFx1MUUwMFx1MDMwNlwwMDBcdTAxNjNcdTAzMEMiKworICAgICAgICAiXDAwMFx1MDIxQlx1MDMwQ1wwMDBcdTFFQ0NcdTAzMDlcMDAwXHUwMUVCXHUwMzA4XHUwMzA0XDAwMFx1MUU2RFx1MDMwQyIrCisgICAgICAgICJcMDAwXHUxRUNEXHUwMzA4XHUwMzA0XDAwMFx1MUU2RVx1MDMwN1wwMDBcdTAxQTFcdTAzMDhcdTAzMDRcMDAwXHUxRTcwIisKKyAgICAgICAgIlx1MDMwN1wwMDBcdTFFNkVcdTAzMENcMDAwXHUxRTcwXHUwMzBDXDAwMFx1MDE2Mlx1MDMwN1wwMDBcdTAyMUFcdTAzMDciKworICAgICAgICAiXDAwMFx1MDFFQlx1MDMyM1wwMDBcdTAxMDVcdTAzMDRcMDAwXHUxRTZDXHUwMzA3XDAwMFx1MUUwMVx1MDMwNFwwMDBcdTAxNjIiKworICAgICAgICAiXHUwMzBDXDAwMFx1MDIxQVx1MDMwQ1wwMDBcdTFFQTFcdTAzMDRcMDAwXHUwMUVBXHUwMzA4XHUwMzA0XDAwMFx1MUU2QyIrCisgICAgICAgICJcdTAzMENcMDAwXHUxRUNDXHUwMzA4XHUwMzA0XDAwMFx1MDFBMFx1MDMwOFx1MDMwNFwwMDBcdTAxNUZcdTAzMjNcdTAzMDciKworICAgICAgICAiXDAwMFx1MDFFQVx1MDMyM1wwMDBcdTAxMDRcdTAzMDRcMDAwXHUxRTAwXHUwMzA0XDAwMFx1MUVBMFx1MDMwNFwwMDBcdTAxNUUiKworICAgICAgICAiXHUwMzIzXHUwMzA3XDAwMFx1MDEyRlx1MDMyM1wwMDBcdTFFRjVcdTAzMDhcMDAwXHUwMTVGXHUwMzBDXHUwMzA3XDAwMCIrCisgICAgICAgICJcdTAyMTlcdTAzMENcdTAzMDdcMDAwXHUwMTJFXHUwMzIzXDAwMFx1MUU2M1x1MDMwQ1x1MDMwN1wwMDBcdTAxNUZcdTAzMEMiKworICAgICAgICAiXDAwMFx1MDIxOVx1MDMwQ1wwMDBcdTAxMDVcdTAzMDdcMDAwXHUxRTYzXHUwMzBDXDAwMFx1MUUwMVx1MDMwN1wwMDBcdTFFQTEiKworICAgICAgICAiXHUwMzA3XDAwMFx1MUUwN1x1MDMwN1wwMDBcdTFFMkRcdTAzMDlcMDAwXHUwMTVFXHUwMzBDXHUwMzA3XDAwMFx1MDIxOCIrCisgICAgICAgICJcdTAzMENcdTAzMDdcMDAwXHUwMTJGXHUwMzA5XDAwMFx1MUUwNVx1MDMwN1wwMDBcdTFFNjJcdTAzMENcdTAzMDdcMDAwIisKKyAgICAgICAgIlx1MDE1RVx1MDMwQ1wwMDBcdTAyMThcdTAzMENcMDAwXHUxRUNCXHUwMzA5XDAwMFx1MUVGNVx1MDMwMVwwMDBcdTAxMDQiKworICAgICAgICAiXHUwMzA3XDAwMFx1MUU2Mlx1MDMwQ1wwMDBcdTFFMDBcdTAzMDdcMDAwXHUxRUEwXHUwMzA3XDAwMFx1MUUwNlx1MDMwNyIrCisgICAgICAgICJcMDAwXHUxRTJDXHUwMzA5XDAwMFx1MUU3NVx1MDMwOFwwMDBcdTFFNzdcdTAzMDhcMDAwXHUwMTVGXHUwMzAxXHUwMzA3IisKKyAgICAgICAgIlwwMDBcdTAyMTlcdTAzMDFcdTAzMDdcMDAwXHUwMTJFXHUwMzA5XDAwMFx1MDE3M1x1MDMwOFwwMDBcdTFFMDRcdTAzMDciKworICAgICAgICAiXDAwMFx1MUU2M1x1MDMwMVx1MDMwN1wwMDBcdTFFNzNcdTAzMDhcMDAwXHUxRUNBXHUwMzA5XDAwMFx1MUVFNVx1MDMwOCIrCisgICAgICAgICJcMDAwXHUwMUIwXHUwMzA4XDAwMFx1MUU3NVx1MDMwMlwwMDBcdTFFNzdcdTAzMDJcMDAwXHUwMTA1XHUwMzI1XDAwMFx1MDE1RSIrCisgICAgICAgICJcdTAzMDFcdTAzMDdcMDAwXHUwMjE4XHUwMzAxXHUwMzA3XDAwMFx1MDExOVx1MDMyM1x1MDMwMlwwMDBcdTAxNzNcdTAzMDIiKworICAgICAgICAiXDAwMFx1MDIyOVx1MDMyM1x1MDMwMlwwMDBcdTFFNjJcdTAzMDFcdTAzMDdcMDAwXHUxRTczXHUwMzAyXDAwMFx1MUVFNSIrCisgICAgICAgICJcdTAzMDJcMDAwXHUwMUIwXHUwMzAyXDAwMFx1MUU3NVx1MDMwMVwwMDBcdTFFNzdcdTAzMDFcMDAwXHUwMTA0XHUwMzI1IisKKyAgICAgICAgIlwwMDBcdTAxNUZcdTAzMjNcMDAwXHUwMTE4XHUwMzIzXHUwMzAyXDAwMFx1MDE3M1x1MDMwMVwwMDBcdTAyMjhcdTAzMjMiKworICAgICAgICAiXHUwMzAyXDAwMFx1MDE1Rlx1MDMwMlwwMDBcdTFFNzNcdTAzMDFcMDAwXHUwMjE5XHUwMzAyXDAwMFx1MUVFNVx1MDMwMSIrCisgICAgICAgICJcMDAwXHUxRTYzXHUwMzAyXDAwMFx1MUUxQlx1MDMwMlx1MDMwM1wwMDBcdTFFNzVcdTAzMDBcMDAwXHUxRTE5XHUwMzAyIisKKyAgICAgICAgIlx1MDMwM1wwMDBcdTFFNzdcdTAzMDBcMDAwXHUwMTVFXHUwMzIzXDAwMFx1MDExOVx1MDMwMlx1MDMwM1wwMDBcdTAxNzMiKworICAgICAgICAiXHUwMzAwXDAwMFx1MDIyOVx1MDMwMlx1MDMwM1wwMDBcdTAxNUVcdTAzMDJcMDAwXHUxRTczXHUwMzAwXDAwMFx1MDIxOCIrCisgICAgICAgICJcdTAzMDJcMDAwXHUxRUM3XHUwMzAzXDAwMFx1MUVFNVx1MDMwMFwwMDBcdTFFNjJcdTAzMDJcMDAwXHUxRTFBXHUwMzAyIisKKyAgICAgICAgIlx1MDMwM1wwMDBcdTFFMThcdTAzMDJcdTAzMDNcMDAwXHUwMTVGXHUwMzA3XDAwMFx1MDIxOVx1MDMwN1wwMDBcdTAxMTgiKworICAgICAgICAiXHUwMzAyXHUwMzAzXDAwMFx1MDIyOFx1MDMwMlx1MDMwM1wwMDBcdTAxNUZcdTAzMDFcMDAwXHUwMjE5XHUwMzAxXDAwMCIrCisgICAgICAgICJcdTFFQzZcdTAzMDNcMDAwXHUxRTYzXHUwMzAxXDAwMFx1MUUxQlx1MDMwMlx1MDMwOVwwMDBcdTFFMTlcdTAzMDJcdTAzMDkiKworICAgICAgICAiXDAwMFx1MDE1RVx1MDMwN1wwMDBcdTAyMThcdTAzMDdcMDAwXHUwMTE5XHUwMzAyXHUwMzA5XDAwMFx1MDIyOVx1MDMwMiIrCisgICAgICAgICJcdTAzMDlcMDAwXHUwMTVFXHUwMzAxXDAwMFx1MDIxOFx1MDMwMVwwMDBcdTFFQzdcdTAzMDlcMDAwXHUxRTYyXHUwMzAxIisKKyAgICAgICAgIlwwMDBcdTFFMUFcdTAzMDJcdTAzMDlcMDAwXHUxRTVGXHUwMzBDXDAwMFx1MUUxOFx1MDMwMlx1MDMwOVwwMDBcdTFFOTYiKworICAgICAgICAiXHUwMzBDXDAwMFx1MDE1N1x1MDMzMVwwMDBcdTAxMThcdTAzMDJcdTAzMDlcMDAwXHUwMUVCXHUwMzA4XDAwMFx1MUUyQiIrCisgICAgICAgICJcdTAzMENcMDAwXHUwMjI4XHUwMzAyXHUwMzA5XDAwMFx1MDE1N1x1MDMwQ1wwMDBcdTFFQzZcdTAzMDlcMDAwXHUxRUNEIisKKyAgICAgICAgIlx1MDMwOFwwMDBcdTFFNUJcdTAzMENcMDAwXHUxRTI5XHUwMzBDXDAwMFx1MUUyNVx1MDMwQ1wwMDBcdTAxQTFcdTAzMDgiKworICAgICAgICAiXDAwMFx1MUUxQlx1MDMwMlx1MDMwMFwwMDBcdTFFNUVcdTAzMENcMDAwXHUxRTE5XHUwMzAyXHUwMzAwXDAwMFx1MDE1NiIrCisgICAgICAgICJcdTAzMzFcMDAwXHUwMTE5XHUwMzAyXHUwMzAwXDAwMFx1MDFFQlx1MDMwM1wwMDBcdTFFMkFcdTAzMENcMDAwXHUwMjI5IisKKyAgICAgICAgIlx1MDMwMlx1MDMwMFwwMDBcdTAxNTZcdTAzMENcMDAwXHUxRUM3XHUwMzAwXDAwMFx1MUVDRFx1MDMwM1wwMDBcdTFFNUEiKworICAgICAgICAiXHUwMzBDXDAwMFx1MUUyOFx1MDMwQ1wwMDBcdTFFMjRcdTAzMENcMDAwXHUxRTFBXHUwMzAyXHUwMzAwXDAwMFx1MUUxOCIrCisgICAgICAgICJcdTAzMDJcdTAzMDBcMDAwXHUwMTU3XHUwMzIzXHUwMzA0XDAwMFx1MDExOFx1MDMwMlx1MDMwMFwwMDBcdTAxRUJcdTAzMDIiKworICAgICAgICAiXDAwMFx1MDIyOFx1MDMwMlx1MDMwMFwwMDBcdTFFQzZcdTAzMDBcMDAwXHUwMUExXHUwMzAyXDAwMFx1MUUxQlx1MDMwMiIrCisgICAgICAgICJcdTAzMDFcMDAwXHUxRTE5XHUwMzAyXHUwMzAxXDAwMFx1MDE1Nlx1MDMyM1x1MDMwNFwwMDBcdTAxMTlcdTAzMDJcdTAzMDEiKworICAgICAgICAiXDAwMFx1MDFFQlx1MDMwMVwwMDBcdTAyMjlcdTAzMDJcdTAzMDFcMDAwXHUxRUM3XHUwMzAxXDAwMFx1MUVDRFx1MDMwMSIrCisgICAgICAgICJcMDAwXHUxRTFBXHUwMzAyXHUwMzAxXDAwMFx1MUU1Rlx1MDMwMVwwMDBcdTFFMThcdTAzMDJcdTAzMDFcMDAwXHUwMTU3IisKKyAgICAgICAgIlx1MDMyM1wwMDBcdTAxMThcdTAzMDJcdTAzMDFcMDAwXHUwMUVCXHUwMzAwXDAwMFx1MDIyOFx1MDMwMlx1MDMwMVwwMDAiKworICAgICAgICAiXHUwMTU3XHUwMzAxXDAwMFx1MUVDNlx1MDMwMVwwMDBcdTFFQ0RcdTAzMDBcMDAwXHUxRTVCXHUwMzAxXDAwMFx1MDE2MyIrCisgICAgICAgICJcdTAzMjZcMDAwXHUxRTQ5XHUwMzAzXDAwMFx1MUUxQlx1MDMwM1wwMDBcdTFFNUVcdTAzMDFcMDAwXHUxRTE5XHUwMzAzIisKKyAgICAgICAgIlwwMDBcdTFFNEJcdTAzMDNcMDAwXHUwMTU2XHUwMzIzXDAwMFx1MDExOVx1MDMwM1wwMDBcdTAyMjlcdTAzMDNcMDAwXHUwMTQ2IisKKyAgICAgICAgIlx1MDMwM1wwMDBcdTAxNTZcdTAzMDFcMDAwXHUxRUI5XHUwMzAzXDAwMFx1MUU0N1x1MDMwM1wwMDBcdTFFNUFcdTAzMDEiKworICAgICAgICAiXDAwMFx1MDE2Mlx1MDMyNlwwMDBcdTFFNUZcdTAzMDdcMDAwXHUxRTFBXHUwMzAzXDAwMFx1MUUxOFx1MDMwM1wwMDBcdTAxNTciKworICAgICAgICAiXHUwMzA3XDAwMFx1MDExOFx1MDMwM1wwMDBcdTAyMjhcdTAzMDNcMDAwXHUxRTVCXHUwMzA3XDAwMFx1MUVCOFx1MDMwMyIrCisgICAgICAgICJcMDAwXHUwMTVGXHUwMzI2XDAwMFx1MUU1RVx1MDMwN1wwMDBcdTFFMUJcdTAzMDlcMDAwXHUxRTJEXHUwMzA4XDAwMFx1MUUxOSIrCisgICAgICAgICJcdTAzMDlcMDAwXHUwMTU2XHUwMzA3XDAwMFx1MDExOVx1MDMwOVwwMDBcdTAxMkZcdTAzMDhcMDAwXHUwMjI5XHUwMzA5IisKKyAgICAgICAgIlwwMDBcdTFFNUFcdTAzMDdcMDAwXHUxRUI5XHUwMzA5XDAwMFx1MUVDQlx1MDMwOFwwMDBcdTAxNUVcdTAzMjZcMDAwXHUxRTFBIisKKyAgICAgICAgIlx1MDMwOVwwMDBcdTFFMkRcdTAzMDJcMDAwXHUxRTE4XHUwMzA5XDAwMFx1MUU3NVx1MDMxMVwwMDBcdTAxMThcdTAzMDkiKworICAgICAgICAiXDAwMFx1MDEyRlx1MDMwMlwwMDBcdTAyMjhcdTAzMDlcMDAwXHUxRTc3XHUwMzExXDAwMFx1MDFFQlx1MDMwQlwwMDBcdTFFQjgiKworICAgICAgICAiXHUwMzA5XDAwMFx1MUVDQlx1MDMwMlwwMDBcdTAxNzNcdTAzMTFcMDAwXHUxRUNEXHUwMzBCXDAwMFx1MUU3M1x1MDMxMSIrCisgICAgICAgICJcMDAwXHUxRUU1XHUwMzExXDAwMFx1MDFBMVx1MDMwQlwwMDBcdTAxQjBcdTAzMTFcMDAwXHUxRTJEXHUwMzAxXDAwMFx1MUU3NCIrCisgICAgICAgICJcdTAzMTFcMDAwXHUwMTE5XHUwMzIzXDAwMFx1MDEyRlx1MDMwMVwwMDBcdTAyMjlcdTAzMjNcMDAwXHUxRTc2XHUwMzExIisKKyAgICAgICAgIlwwMDBcdTAxRUFcdTAzMEJcMDAwXHUxRUNCXHUwMzAxXDAwMFx1MDE3Mlx1MDMxMVwwMDBcdTFFQ0NcdTAzMEJcMDAwXHUxRTcyIisKKyAgICAgICAgIlx1MDMxMVwwMDBcdTFFRTRcdTAzMTFcMDAwXHUwMUEwXHUwMzBCXDAwMFx1MDFBRlx1MDMxMVwwMDBcdTFFMkRcdTAzMDAiKworICAgICAgICAiXDAwMFx1MUU3NVx1MDMwRlwwMDBcdTAxMThcdTAzMjNcMDAwXHUwMTJGXHUwMzAwXDAwMFx1MDIyOFx1MDMyM1wwMDBcdTFFNzciKworICAgICAgICAiXHUwMzBGXDAwMFx1MDFFQlx1MDMwNlwwMDBcdTFFQ0JcdTAzMDBcMDAwXHUwMTczXHUwMzBGXDAwMFx1MUVDRFx1MDMwNiIrCisgICAgICAgICJcMDAwXHUxRTczXHUwMzBGXDAwMFx1MUVFNVx1MDMwRlwwMDBcdTAxQTFcdTAzMDZcMDAwXHUwMUIwXHUwMzBGXDAwMFx1MUUxQiIrCisgICAgICAgICJcdTAzMDhcMDAwXHUxRTE5XHUwMzA4XDAwMFx1MUU3NFx1MDMwRlwwMDBcdTAxMDVcdTAzMjNcdTAzMDZcMDAwXHUwMTE5IisKKyAgICAgICAgIlx1MDMwOFwwMDBcdTAyMjlcdTAzMDhcMDAwXHUxRTc2XHUwMzBGXDAwMFx1MDFFQVx1MDMwNlwwMDBcdTFFQjlcdTAzMDgiKworICAgICAgICAiXDAwMFx1MDE3Mlx1MDMwRlwwMDBcdTFFQ0NcdTAzMDZcMDAwXHUxRTcyXHUwMzBGXDAwMFx1MUVFNFx1MDMwRlwwMDBcdTAxQTAiKworICAgICAgICAiXHUwMzA2XDAwMFx1MDFBRlx1MDMwRlwwMDBcdTFFMUJcdTAzMDJcMDAwXHUxRTE5XHUwMzAyXDAwMFx1MUU1Rlx1MDMxMSIrCisgICAgICAgICJcMDAwXHUwMUVEXHUwMzAxXDAwMFx1MDEwNFx1MDMyM1x1MDMwNlwwMDBcdTAxMTlcdTAzMDJcMDAwXHUwMjI5XHUwMzAyIisKKyAgICAgICAgIlwwMDBcdTFFQ0RcdTAzMDRcdTAzMDFcMDAwXHUwMTczXHUwMzFCXDAwMFx1MUVDRFx1MDMwNFwwMDBcdTAxNTdcdTAzMTEiKworICAgICAgICAiXDAwMFx1MDFBMVx1MDMwNFx1MDMwMVwwMDBcdTFFNUJcdTAzMTFcMDAwXHUwMUExXHUwMzA0XDAwMFx1MUUxQlx1MDMwMSIrCisgICAgICAgICJcMDAwXHUxRTE5XHUwMzAxXDAwMFx1MUU1RVx1MDMxMVwwMDBcdTAxRUNcdTAzMDFcMDAwXHUwMTA1XHUwMzA2XHUwMzAzIisKKyAgICAgICAgIlwwMDBcdTAxMTlcdTAzMDFcMDAwXHUwMjI5XHUwMzAxXDAwMFx1MUVDQ1x1MDMwNFx1MDMwMVwwMDBcdTFFMDFcdTAzMDYiKworICAgICAgICAiXHUwMzAzXDAwMFx1MDE3Mlx1MDMxQlwwMDBcdTFFQjdcdTAzMDNcMDAwXHUxRUI5XHUwMzAxXDAwMFx1MUVDQ1x1MDMwNCIrCisgICAgICAgICJcMDAwXHUwMTU2XHUwMzExXDAwMFx1MDFBMFx1MDMwNFx1MDMwMVwwMDBcdTFFNUFcdTAzMTFcMDAwXHUwMUEwXHUwMzA0IisKKyAgICAgICAgIlwwMDBcdTFFMUJcdTAzMDBcMDAwXHUxRTE5XHUwMzAwXDAwMFx1MUU1Rlx1MDMwRlwwMDBcdTAxRURcdTAzMDBcMDAwXHUwMTA0IisKKyAgICAgICAgIlx1MDMwNlx1MDMwM1wwMDBcdTAxMTlcdTAzMDBcMDAwXHUwMjI5XHUwMzAwXDAwMFx1MUVDRFx1MDMwNFx1MDMwMFwwMDAiKworICAgICAgICAiXHUxRTAwXHUwMzA2XHUwMzAzXDAwMFx1MUVCNlx1MDMwM1wwMDBcdTFFQjlcdTAzMDBcMDAwXHUwMTU3XHUwMzBGXDAwMCIrCisgICAgICAgICJcdTAxQTFcdTAzMDRcdTAzMDBcMDAwXHUxRTVCXHUwMzBGXDAwMFx1MUU1RVx1MDMwRlwwMDBcdTAxRUNcdTAzMDBcMDAwIisKKyAgICAgICAgIlx1MDEwNVx1MDMwNlx1MDMwOVwwMDBcdTFFQ0NcdTAzMDRcdTAzMDBcMDAwXHUxRTAxXHUwMzA2XHUwMzA5XDAwMFx1MUVCNyIrCisgICAgICAgICJcdTAzMDlcMDAwXHUwMTU2XHUwMzBGXDAwMFx1MDFBMFx1MDMwNFx1MDMwMFwwMDBcdTFFNUFcdTAzMEZcMDAwXHUwMUVCIisKKyAgICAgICAgIlx1MDMwM1x1MDMwOFwwMDBcdTAxMDRcdTAzMDZcdTAzMDlcMDAwXHUxRUNEXHUwMzAzXHUwMzA4XDAwMFx1MUUwMFx1MDMwNiIrCisgICAgICAgICJcdTAzMDlcMDAwXHUxRUI2XHUwMzA5XDAwMFx1MDFFQlx1MDMxMVwwMDBcdTFFRTFcdTAzMDhcMDAwXHUxRUNEXHUwMzExIisKKyAgICAgICAgIlwwMDBcdTAxQTFcdTAzMTFcMDAwXHUxRTQ5XHUwMzBDXDAwMFx1MUU0Qlx1MDMwQ1wwMDBcdTAxRUFcdTAzMDNcdTAzMDgiKworICAgICAgICAiXDAwMFx1MDEwNVx1MDMwNlx1MDMwMFwwMDBcdTAxMDVcdTAzMEFcMDAwXHUxRUNDXHUwMzAzXHUwMzA4XDAwMFx1MUUwMSIrCisgICAgICAgICJcdTAzMDZcdTAzMDBcMDAwXHUxRTAxXHUwMzBBXDAwMFx1MDE0Nlx1MDMwQ1wwMDBcdTFFQjdcdTAzMDBcMDAwXHUxRUExIisKKyAgICAgICAgIlx1MDMwQVwwMDBcdTAxRUFcdTAzMTFcMDAwXHUxRTQ3XHUwMzBDXDAwMFx1MUVFMFx1MDMwOFwwMDBcdTFFQ0NcdTAzMTEiKworICAgICAgICAiXDAwMFx1MDFBMFx1MDMxMVwwMDBcdTFFNDhcdTAzMENcMDAwXHUxRTRBXHUwMzBDXDAwMFx1MDFFQlx1MDMwM1x1MDMwMSIrCisgICAgICAgICJcMDAwXHUwMTA0XHUwMzA2XHUwMzAwXDAwMFx1MDEwNVx1MDMwOFwwMDBcdTFFQ0RcdTAzMDNcdTAzMDFcMDAwXHUxRTAwIisKKyAgICAgICAgIlx1MDMwNlx1MDMwMFwwMDBcdTFFMDFcdTAzMDhcMDAwXHUwMTQ1XHUwMzBDXDAwMFx1MUVCNlx1MDMwMFwwMDBcdTFFQTEiKworICAgICAgICAiXHUwMzA4XDAwMFx1MDFFQlx1MDMwRlwwMDBcdTFFNDZcdTAzMENcMDAwXHUxRUUxXHUwMzAxXDAwMFx1MUVDRFx1MDMwRiIrCisgICAgICAgICJcMDAwXHUwMUExXHUwMzBGXDAwMFx1MDFFQVx1MDMwM1x1MDMwMVwwMDBcdTAxMDVcdTAzMDZcdTAzMDFcMDAwXHUwMTA1IisKKyAgICAgICAgIlx1MDMwM1wwMDBcdTFFQ0NcdTAzMDNcdTAzMDFcMDAwXHUxRTAxXHUwMzA2XHUwMzAxXDAwMFx1MUUwMVx1MDMwM1wwMDAiKworICAgICAgICAiXHUxRUI3XHUwMzAxXDAwMFx1MUVBMVx1MDMwM1wwMDBcdTAxRUFcdTAzMEZcMDAwXHUxRUUwXHUwMzAxXDAwMFx1MUVDQyIrCisgICAgICAgICJcdTAzMEZcMDAwXHUwMUEwXHUwMzBGXDAwMFx1MUUyRFx1MDMxMVwwMDBcdTAxNDZcdTAzMkRcMDAwXHUwMTA0XHUwMzA2IisKKyAgICAgICAgIlx1MDMwMVwwMDBcdTAxMDVcdTAzMDJcMDAwXHUxRTAwXHUwMzA2XHUwMzAxXDAwMFx1MUUwMVx1MDMwMlwwMDBcdTFFQjYiKworICAgICAgICAiXHUwMzAxXDAwMFx1MDEyRlx1MDMxMVwwMDBcdTFFQ0JcdTAzMTFcMDAwXHUxRTQ5XHUwMzAxXDAwMFx1MUU0Qlx1MDMwMSIrCisgICAgICAgICJcMDAwXHUxRTJDXHUwMzExXDAwMFx1MDE0NVx1MDMyRFwwMDBcdTAxMDVcdTAzMjNcdTAzMDJcMDAwXHUwMTA1XHUwMzAxIisKKyAgICAgICAgIlwwMDBcdTFFMDFcdTAzMDFcMDAwXHUwMTQ2XHUwMzAxXDAwMFx1MUVBMVx1MDMwMVwwMDBcdTAxMkVcdTAzMTFcMDAwXHUxRTQ3IisKKyAgICAgICAgIlx1MDMwMVwwMDBcdTFFQ0FcdTAzMTFcMDAwXHUxRTQ4XHUwMzAxXDAwMFx1MUU0QVx1MDMwMVwwMDBcdTFFMkRcdTAzMEYiKworICAgICAgICAiXDAwMFx1MDE0Nlx1MDMzMVwwMDBcdTAxMDRcdTAzMjNcdTAzMDJcMDAwXHUwMTA1XHUwMzAwXDAwMFx1MUUwMVx1MDMwMCIrCisgICAgICAgICJcMDAwXHUwMTQ1XHUwMzAxXDAwMFx1MUVBMVx1MDMwMFwwMDBcdTAxMkZcdTAzMEZcMDAwXHUxRTQ2XHUwMzAxXDAwMFx1MUVDQiIrCisgICAgICAgICJcdTAzMEZcMDAwXHUxRTJDXHUwMzBGXDAwMFx1MDE0NVx1MDMzMVwwMDBcdTAxMDVcdTAzMDJcdTAzMDNcMDAwXHUxRTAxIisKKyAgICAgICAgIlx1MDMwMlx1MDMwM1wwMDBcdTFFQURcdTAzMDNcMDAwXHUwMTJFXHUwMzBGXDAwMFx1MUVDQVx1MDMwRlwwMDBcdTFFMUIiKworICAgICAgICAiXHUwMzExXDAwMFx1MDE0Nlx1MDMyM1wwMDBcdTAxMDRcdTAzMDJcdTAzMDNcMDAwXHUxRTE5XHUwMzExXDAwMFx1MUUwMCIrCisgICAgICAgICJcdTAzMDJcdTAzMDNcMDAwXHUxRUFDXHUwMzAzXDAwMFx1MDExOVx1MDMxMVwwMDBcdTAyMjlcdTAzMTFcMDAwXHUxRUI5IisKKyAgICAgICAgIlx1MDMxMVwwMDBcdTAxNDVcdTAzMjNcMDAwXHUxRTFBXHUwMzExXDAwMFx1MDEwNVx1MDMwMlx1MDMwOVwwMDBcdTFFMTgiKworICAgICAgICAiXHUwMzExXDAwMFx1MUUwMVx1MDMwMlx1MDMwOVwwMDBcdTFFQURcdTAzMDlcMDAwXHUxRUY0XHUwMzAxXDAwMFx1MDExOCIrCisgICAgICAgICJcdTAzMTFcMDAwXHUwMjI4XHUwMzExXDAwMFx1MUVCOFx1MDMxMVwwMDBcdTFFNDlcdTAzMDdcMDAwXHUxRTRCXHUwMzA3IisKKyAgICAgICAgIlwwMDBcdTFFNzRcdTAzMDhcMDAwXHUxRTc2XHUwMzA4XDAwMFx1MDE0Nlx1MDMwN1wwMDBcdTFFMUJcdTAzMEZcMDAwXHUwMTA0IisKKyAgICAgICAgIlx1MDMwMlx1MDMwOVwwMDBcdTAxNzJcdTAzMDhcMDAwXHUxRTE5XHUwMzBGXDAwMFx1MUU0N1x1MDMwN1wwMDBcdTFFMDAiKworICAgICAgICAiXHUwMzAyXHUwMzA5XDAwMFx1MUVBQ1x1MDMwOVwwMDBcdTFFNzJcdTAzMDhcMDAwXHUxRUU0XHUwMzA4XDAwMFx1MDExOSIrCisgICAgICAgICJcdTAzMEZcMDAwXHUwMjI5XHUwMzBGXDAwMFx1MUVCOVx1MDMwRlwwMDBcdTAxQUZcdTAzMDhcMDAwXHUxRTQ4XHUwMzA3IisKKyAgICAgICAgIlwwMDBcdTFFNEFcdTAzMDdcMDAwXHUxRTc0XHUwMzAyXDAwMFx1MUUzQlx1MDMwQ1wwMDBcdTFFNzZcdTAzMDJcMDAwXHUxRTNEIisKKyAgICAgICAgIlx1MDMwQ1wwMDBcdTAxNDVcdTAzMDdcMDAwXHUxRTFBXHUwMzBGXDAwMFx1MDEwNVx1MDMwMlx1MDMwMFwwMDBcdTAxNzIiKworICAgICAgICAiXHUwMzAyXDAwMFx1MUUxOFx1MDMwRlwwMDBcdTFFNDZcdTAzMDdcMDAwXHUxRTAxXHUwMzAyXHUwMzAwXDAwMFx1MDEzQyIrCisgICAgICAgICJcdTAzMENcMDAwXHUxRTcyXHUwMzAyXDAwMFx1MDFFQlx1MDMxQlwwMDBcdTFFQURcdTAzMDBcMDAwXHUxRUU0XHUwMzAyIisKKyAgICAgICAgIlwwMDBcdTAxMThcdTAzMEZcMDAwXHUxRTM3XHUwMzBDXDAwMFx1MDIyOFx1MDMwRlwwMDBcdTFFQjhcdTAzMEZcMDAwXHUwMUFGIisKKyAgICAgICAgIlx1MDMwMlwwMDBcdTFFNzRcdTAzMDFcMDAwXHUxRTNBXHUwMzBDXDAwMFx1MUU3Nlx1MDMwMVwwMDBcdTFFM0NcdTAzMEMiKworICAgICAgICAiXDAwMFx1MDEwNFx1MDMwMlx1MDMwMFwwMDBcdTAxNzJcdTAzMDFcMDAwXHUxRTAwXHUwMzAyXHUwMzAwXDAwMFx1MDEzQiIrCisgICAgICAgICJcdTAzMENcMDAwXHUxRTcyXHUwMzAxXDAwMFx1MDFFQVx1MDMxQlwwMDBcdTFFQUNcdTAzMDBcMDAwXHUxRUU0XHUwMzAxIisKKyAgICAgICAgIlwwMDBcdTAxMDVcdTAzMTFcMDAwXHUxRTM2XHUwMzBDXDAwMFx1MUUwMVx1MDMxMVwwMDBcdTFFQTFcdTAzMTFcMDAwXHUxRTc0IisKKyAgICAgICAgIlx1MDMwMFwwMDBcdTFFNzZcdTAzMDBcMDAwXHUwMTA1XHUwMzAyXHUwMzAxXDAwMFx1MDE3Mlx1MDMwMFwwMDBcdTFFMDEiKworICAgICAgICAiXHUwMzAyXHUwMzAxXDAwMFx1MUU3Mlx1MDMwMFwwMDBcdTFFQURcdTAzMDFcMDAwXHUxRUU0XHUwMzAwXDAwMFx1MDEwNCIrCisgICAgICAgICJcdTAzMTFcMDAwXHUxRTAwXHUwMzExXDAwMFx1MUVBMFx1MDMxMVwwMDBcdTAxMDRcdTAzMDJcdTAzMDFcMDAwXHUxRTQzIisKKyAgICAgICAgIlx1MDMwN1wwMDBcdTFFMDBcdTAzMDJcdTAzMDFcMDAwXHUxRUFDXHUwMzAxXDAwMFx1MDEwNVx1MDMwRlwwMDBcdTFFMDEiKworICAgICAgICAiXHUwMzBGXDAwMFx1MUVBMVx1MDMwRlwwMDBcdTFFM0JcdTAzMDFcMDAwXHUxRTNEXHUwMzAxXDAwMFx1MDEwNVx1MDMwOSIrCisgICAgICAgICJcMDAwXHUxRTQyXHUwMzA3XDAwMFx1MUUwMVx1MDMwOVwwMDBcdTAxM0NcdTAzMDFcMDAwXHUxRUExXHUwMzA5XDAwMFx1MDEwNCIrCisgICAgICAgICJcdTAzMEZcMDAwXHUxRTM3XHUwMzAxXDAwMFx1MUUwMFx1MDMwRlwwMDBcdTFFQTBcdTAzMEZcMDAwXHUxRTNBXHUwMzAxIisKKyAgICAgICAgIlwwMDBcdTFFM0NcdTAzMDFcMDAwXHUwMTA0XHUwMzA5XDAwMFx1MDFFQVx1MDMwOFwwMDBcdTFFNDNcdTAzMDFcMDAwXHUxRTAwIisKKyAgICAgICAgIlx1MDMwOVwwMDBcdTAxM0JcdTAzMDFcMDAwXHUxRUEwXHUwMzA5XDAwMFx1MUVDQ1x1MDMwOFwwMDBcdTFFMzZcdTAzMDEiKworICAgICAgICAiXDAwMFx1MDFBMFx1MDMwOFwwMDBcdTAzODlcdTAzNDVcMDAwXHUxRkNBXHUwMzQ1XDAwMFx1MDEwNVx1MDMyM1wwMDBcdTAxRUEiKworICAgICAgICAiXHUwMzAzXDAwMFx1MUU0Mlx1MDMwMVwwMDBcdTFFQ0NcdTAzMDNcMDAwXHUwMTNDXHUwMzJEXDAwMFx1MDEwNFx1MDMyMyIrCisgICAgICAgICJcMDAwXHUwMUVBXHUwMzAyXDAwMFx1MDFBMFx1MDMwMlwwMDBcdTAxM0JcdTAzMkRcMDAwXHUwMUVBXHUwMzAxXDAwMFx1MUVDQyIrCisgICAgICAgICJcdTAzMDFcMDAwXHUwNjI1XHUwNjU0XDAwMFx1MDEzQ1x1MDMzMVwwMDBcdTAxRUFcdTAzMDBcMDAwXHUxRUNDXHUwMzAwIisKKyAgICAgICAgIlwwMDBcdTAxMDVcdTAzMEFcdTAzMDFcMDAwXHUxRTAxXHUwMzBBXHUwMzAxXDAwMFx1MUVBMVx1MDMwQVx1MDMwMVwwMDAiKworICAgICAgICAiXHUwNjI1XHUwNjUzXDAwMFx1MUU0OFx1MDMwM1wwMDBcdTFFNEFcdTAzMDNcMDAwXHUwMTNCXHUwMzMxXDAwMFx1MDE0NSIrCisgICAgICAgICJcdTAzMDNcMDAwXHUxRTQ2XHUwMzAzXDAwMFx1MDEwNFx1MDMwQVx1MDMwMVwwMDBcdTFFMDBcdTAzMEFcdTAzMDFcMDAwIisKKyAgICAgICAgIlx1MUVBMFx1MDMwQVx1MDMwMVwwMDBcdTFFNDlcdTAzMDBcMDAwXHUwMTNDXHUwMzIzXHUwMzA0XDAwMFx1MUU0Qlx1MDMwMCIrCisgICAgICAgICJcMDAwXHUwMTQ2XHUwMzAwXDAwMFx1MUU0N1x1MDMwMFwwMDBcdTFFMkNcdTAzMDhcMDAwXHUxRTQ4XHUwMzAwXDAwMFx1MDEzQiIrCisgICAgICAgICJcdTAzMjNcdTAzMDRcMDAwXHUwMTJFXHUwMzA4XDAwMFx1MUU0QVx1MDMwMFwwMDBcdTFFQ0FcdTAzMDhcMDAwXHUwMTQ1IisKKyAgICAgICAgIlx1MDMwMFwwMDBcdTFFNDZcdTAzMDBcMDAwXHUxRTJDXHUwMzAyXDAwMFx1MDEzQ1x1MDMyM1wwMDBcdTAxMkVcdTAzMDIiKworICAgICAgICAiXDAwMFx1MUVDQVx1MDMwMlwwMDBcdTFFMkNcdTAzMDFcMDAwXHUxRTJDXHUwMzA3XDAwMFx1MDEzQlx1MDMyM1wwMDBcdTAxMkUiKworICAgICAgICAiXHUwMzAxXDAwMFx1MDEyRVx1MDMwN1wwMDBcdTFFRjVcdTAzMEFcMDAwXHUxRUNBXHUwMzAxXDAwMFx1MUVDQVx1MDMwNyIrCisgICAgICAgICJcMDAwXHUxRTJDXHUwMzAwXDAwMFx1MDEzN1x1MDMzMVwwMDBcdTAxMkVcdTAzMDBcMDAwXHUxRTg5XHUwMzBBXDAwMFx1MUVDQSIrCisgICAgICAgICJcdTAzMDBcMDAwXHUwMTIzXHUwMzAxXDAwMFx1MUU2Rlx1MDMwOFwwMDBcdTFFMUFcdTAzMDhcMDAwXHUxRTcxXHUwMzA4IisKKyAgICAgICAgIlwwMDBcdTFFMThcdTAzMDhcMDAwXHUwMTM2XHUwMzMxXDAwMFx1MDExOFx1MDMwOFwwMDBcdTAxNjNcdTAzMDhcMDAwXHUwMjI4IisKKyAgICAgICAgIlx1MDMwOFwwMDBcdTAyMUJcdTAzMDhcMDAwXHUxRTZEXHUwMzA4XDAwMFx1MUVCOFx1MDMwOFwwMDBcdTAxMjJcdTAzMDEiKworICAgICAgICAiXDAwMFx1MUUxQVx1MDMwMlwwMDBcdTFFMkRcdTAzMDZcMDAwXHUxRTE4XHUwMzAyXDAwMFx1MDEzN1x1MDMyM1wwMDBcdTAxMTgiKworICAgICAgICAiXHUwMzAyXDAwMFx1MUUyOVx1MDMzMVwwMDBcdTAyMjhcdTAzMDJcMDAwXHUwMTJGXHUwMzA2XDAwMFx1MUVGNVx1MDMwMyIrCisgICAgICAgICJcMDAwXHUxRUNCXHUwMzA2XDAwMFx1MUUxQVx1MDMwMVwwMDBcdTFFMkNcdTAzMDZcMDAwXHUxRTE4XHUwMzAxXDAwMFx1MDEzNiIrCisgICAgICAgICJcdTAzMjNcMDAwXHUwMTE4XHUwMzAxXDAwMFx1MDIyOFx1MDMwMVwwMDBcdTAxMkVcdTAzMDZcMDAwXHUxRUI4XHUwMzAxIisKKyAgICAgICAgIlwwMDBcdTFFRjRcdTAzMDNcMDAwXHUxRUNBXHUwMzA2XDAwMFx1MUUzNVx1MDMwMVwwMDBcdTFFMUFcdTAzMDBcMDAwXHUxRTJEIisKKyAgICAgICAgIlx1MDMwNFwwMDBcdTFFMThcdTAzMDBcMDAwXHUwMTM3XHUwMzAxXDAwMFx1MDExOFx1MDMwMFwwMDBcdTAyMjhcdTAzMDAiKworICAgICAgICAiXDAwMFx1MDEyRlx1MDMwNFwwMDBcdTFFMzNcdTAzMDFcMDAwXHUxRUI4XHUwMzAwXDAwMFx1MUVGNVx1MDMwOVwwMDBcdTFFQ0IiKworICAgICAgICAiXHUwMzA0XDAwMFx1MUUzNFx1MDMwMVwwMDBcdTFFMkNcdTAzMDRcMDAwXHUwMTM2XHUwMzAxXDAwMFx1MDEyRVx1MDMwNCIrCisgICAgICAgICJcMDAwXHUxRTMyXHUwMzAxXDAwMFx1MUVGNFx1MDMwOVwwMDBcdTFFQ0FcdTAzMDRcMDAwXHUxRTJEXHUwMzA4XHUwMzAxIisKKyAgICAgICAgIlwwMDBcdTFFMkRcdTAzMDNcMDAwXHUwMTJGXHUwMzA4XHUwMzAxXDAwMFx1MDEyRlx1MDMwM1wwMDBcdTFFQ0JcdTAzMDgiKworICAgICAgICAiXHUwMzAxXDAwMFx1MUVDQlx1MDMwM1wwMDBcdTFGQjhcdTAzNDVcMDAwXHUxRkI5XHUwMzQ1XDAwMFx1MDM4Nlx1MDM0NSIrCisgICAgICAgICJcMDAwXHUxRkJBXHUwMzQ1XDAwMFx1MUUyQ1x1MDMwOFx1MDMwMVwwMDBcdTFFOTVcdTAzMDJcMDAwXHUxRTJDXHUwMzAzIisKKyAgICAgICAgIlwwMDBcdTAxMkVcdTAzMDhcdTAzMDFcMDAwXHUwMTA0XHUwMzBBXDAwMFx1MDEyRVx1MDMwM1wwMDBcdTFFQ0FcdTAzMDgiKworICAgICAgICAiXHUwMzAxXDAwMFx1MUUwMFx1MDMwQVwwMDBcdTFFOTNcdTAzMDJcMDAwXHUxRUEwXHUwMzBBXDAwMFx1MUVDQVx1MDMwMyIrCisgICAgICAgICJcMDAwXHUxRTk0XHUwMzAyXDAwMFx1MDEyRlx1MDMzMFwwMDBcdTAxMDRcdTAzMDhcMDAwXHUxRTAwXHUwMzA4XDAwMFx1MUU5MiIrCisgICAgICAgICJcdTAzMDJcMDAwXHUxRUEwXHUwMzA4XDAwMFx1MUVGNVx1MDMwMFwwMDBcdTAxMkVcdTAzMzBcMDAwXHUwMTA0XHUwMzAzIisKKyAgICAgICAgIlwwMDBcdTFFMDBcdTAzMDNcMDAwXHUxRUY1XHUwMzA3XDAwMFx1MUVBMFx1MDMwM1wwMDBcdTFFRjRcdTAzMDBcMDAwXHUxRTk2IisKKyAgICAgICAgIlx1MDMwMlwwMDBcdTFFMkJcdTAzMDJcMDAwXHUxRTI5XHUwMzJFXDAwMFx1MDEwNFx1MDMwMlwwMDBcdTAxNzNcdTAzMUIiKworICAgICAgICAiXHUwMzIzXDAwMFx1MUUwMFx1MDMwMlwwMDBcdTFFMjlcdTAzMDJcMDAwXHUxRUY0XHUwMzA3XDAwMFx1MUUyNVx1MDMwMiIrCisgICAgICAgICJcMDAwXHUxRTJBXHUwMzAyXDAwMFx1MUUyOFx1MDMyRVwwMDBcdTAxMDRcdTAzMDFcMDAwXHUwMTcyXHUwMzFCXHUwMzIzIisKKyAgICAgICAgIlwwMDBcdTFFMDBcdTAzMDFcMDAwXHUxRTI4XHUwMzAyXDAwMFx1MUVBMFx1MDMwMVwwMDBcdTFFMjRcdTAzMDJcMDAwXHUxRTM1IisKKyAgICAgICAgIlx1MDMwQ1wwMDBcdTAxMDRcdTAzMDBcMDAwXHUwMTczXHUwMzFCXHUwMzAzXDAwMFx1MUUwMFx1MDMwMFwwMDBcdTFFQTAiKworICAgICAgICAiXHUwMzAwXDAwMFx1MUVGMVx1MDMwM1wwMDBcdTAxMzdcdTAzMENcMDAwXHUxRTMzXHUwMzBDXDAwMFx1MUUzNFx1MDMwQyIrCisgICAgICAgICJcMDAwXHUwMTcyXHUwMzFCXHUwMzAzXDAwMFx1MUVGMFx1MDMwM1wwMDBcdTAxMzZcdTAzMENcMDAwXHUxRTMyXHUwMzBDIisKKyAgICAgICAgIlwwMDBcdTFFOTZcdTAzMDhcMDAwXHUxRTJCXHUwMzA4XDAwMFx1MUUyOVx1MDMwOFwwMDBcdTAxNzNcdTAzMUJcdTAzMDkiKworICAgICAgICAiXDAwMFx1MUUyNVx1MDMwOFwwMDBcdTAxMjNcdTAzMDdcMDAwXHUxRUYxXHUwMzA5XDAwMFx1MDEyM1x1MDMwQ1wwMDBcdTFFMkEiKworICAgICAgICAiXHUwMzA4XDAwMFx1MUUyOFx1MDMwOFwwMDBcdTAxNzJcdTAzMUJcdTAzMDlcMDAwXHUxRTI0XHUwMzA4XDAwMFx1MDEyMiIrCisgICAgICAgICJcdTAzMDdcMDAwXHUxRUYwXHUwMzA5XDAwMFx1MDEyMlx1MDMwQ1wwMDBcdTFGQjBcdTAzNDVcMDAwXHUxRkIxXHUwMzQ1IisKKyAgICAgICAgIlwwMDBcdTFFMjlcdTAzMjNcMDAwXHUwMTczXHUwMzFCXHUwMzAwXDAwMFx1MDEyM1x1MDMwNlwwMDBcdTFFRjFcdTAzMDAiKworICAgICAgICAiXDAwMFx1MUUyOFx1MDMyM1wwMDBcdTAxNzJcdTAzMUJcdTAzMDBcMDAwXHUwMTIyXHUwMzA2XDAwMFx1MUU4OVx1MDMwNyIrCisgICAgICAgICJcMDAwXHUxRUYwXHUwMzAwXDAwMFx1MUU5Nlx1MDMwN1wwMDBcdTFFMkJcdTAzMDdcMDAwXHUxRTI5XHUwMzA3XDAwMFx1MDE3MyIrCisgICAgICAgICJcdTAzMUJcdTAzMDFcMDAwXHUxRTI1XHUwMzA3XDAwMFx1MDEyM1x1MDMwMlwwMDBcdTFFODhcdTAzMDdcMDAwXHUxRUYxIisKKyAgICAgICAgIlx1MDMwMVwwMDBcdTFFMkFcdTAzMDdcMDAwXHUxRTI4XHUwMzA3XDAwMFx1MDE3Mlx1MDMxQlx1MDMwMVwwMDBcdTFFMjQiKworICAgICAgICAiXHUwMzA3XDAwMFx1MDEyMlx1MDMwMlwwMDBcdTFFODlcdTAzMDhcMDAwXHUxRUYwXHUwMzAxXDAwMFx1MUU3NVx1MDMwOSIrCisgICAgICAgICJcMDAwXHUxRTFCXHUwMzBDXDAwMFx1MUU5NVx1MDMwQ1wwMDBcdTFFNzdcdTAzMDlcMDAwXHUxRTE5XHUwMzBDXDAwMFx1MDEyMyIrCisgICAgICAgICJcdTAzMDRcMDAwXHUwMTczXHUwMzA5XDAwMFx1MDExOVx1MDMwQ1wwMDBcdTAyMjlcdTAzMENcMDAwXHUxRTg4XHUwMzA4IisKKyAgICAgICAgIlwwMDBcdTFFNzNcdTAzMDlcMDAwXHUwMTA1XHUwMzA3XHUwMzA0XDAwMFx1MUVFNVx1MDMwOVwwMDBcdTFFQjlcdTAzMEMiKworICAgICAgICAiXDAwMFx1MUU5M1x1MDMwQ1wwMDBcdTFFMDFcdTAzMDdcdTAzMDRcMDAwXHUxRUExXHUwMzA3XHUwMzA0XDAwMFx1MUU3NCIrCisgICAgICAgICJcdTAzMDlcMDAwXHUxRTFBXHUwMzBDXDAwMFx1MUU5NFx1MDMwQ1wwMDBcdTFFNzZcdTAzMDlcMDAwXHUxRTE4XHUwMzBDIisKKyAgICAgICAgIlwwMDBcdTAxMjJcdTAzMDRcMDAwXHUwMTcyXHUwMzA5XDAwMFx1MDExOFx1MDMwQ1wwMDBcdTAyMjhcdTAzMENcMDAwXHUxRTg5IisKKyAgICAgICAgIlx1MDMwMVwwMDBcdTFFNzJcdTAzMDlcMDAwXHUwMTA0XHUwMzA3XHUwMzA0XDAwMFx1MUVFNFx1MDMwOVwwMDBcdTFFQjgiKworICAgICAgICAiXHUwMzBDXDAwMFx1MUU5Mlx1MDMwQ1wwMDBcdTFFMDBcdTAzMDdcdTAzMDRcMDAwXHUxRUEwXHUwMzA3XHUwMzA0XDAwMCIrCisgICAgICAgICJcdTFFOTVcdTAzMDdcMDAwXHUwMTczXHUwMzIzXDAwMFx1MUU4OFx1MDMwMVwwMDBcdTAxMDVcdTAzMDhcdTAzMDRcMDAwIisKKyAgICAgICAgIlx1MUU5M1x1MDMwN1wwMDBcdTFFMDFcdTAzMDhcdTAzMDRcMDAwXHUxRUExXHUwMzA4XHUwMzA0XDAwMFx1MUU5NFx1MDMwNyIrCisgICAgICAgICJcMDAwXHUwMTcyXHUwMzIzXDAwMFx1MUU4OVx1MDMwMFwwMDBcdTAxMDRcdTAzMDhcdTAzMDRcMDAwXHUxRTkyXHUwMzA3IisKKyAgICAgICAgIlwwMDBcdTFFMDBcdTAzMDhcdTAzMDRcMDAwXHUxRUEwXHUwMzA4XHUwMzA0XDAwMFx1MUUxQlx1MDMwN1wwMDBcdTFFOTUiKworICAgICAgICAiXHUwMzAxXDAwMFx1MUUxOVx1MDMwN1wwMDBcdTAxRUJcdTAzMUJcdTAzMjNcMDAwXHUwMTE5XHUwMzA3XDAwMFx1MDIyOSIrCisgICAgICAgICJcdTAzMDdcMDAwXHUxRTg4XHUwMzAwXDAwMFx1MUVCOVx1MDMwN1wwMDBcdTFFOTNcdTAzMDFcMDAwXHUxRTFBXHUwMzA3IisKKyAgICAgICAgIlwwMDBcdTFFOTRcdTAzMDFcMDAwXHUxRTE4XHUwMzA3XDAwMFx1MUU3NVx1MDMwOFx1MDMwMFwwMDBcdTFFNzdcdTAzMDgiKworICAgICAgICAiXHUwMzAwXDAwMFx1MDFFQVx1MDMxQlx1MDMyM1wwMDBcdTAxMThcdTAzMDdcMDAwXHUwMjI4XHUwMzA3XDAwMFx1MDE3MyIrCisgICAgICAgICJcdTAzMDhcdTAzMDBcMDAwXHUxRUI4XHUwMzA3XDAwMFx1MUU5Mlx1MDMwMVwwMDBcdTFFNzNcdTAzMDhcdTAzMDBcMDAwIisKKyAgICAgICAgIlx1MUVFNVx1MDMwOFx1MDMwMFwwMDBcdTAxQjBcdTAzMDhcdTAzMDBcMDAwXHUxRTFCXHUwMzA2XDAwMFx1MUUxOVx1MDMwNiIrCisgICAgICAgICJcMDAwXHUwMTE5XHUwMzMwXDAwMFx1MUU3NFx1MDMwOFx1MDMwMFwwMDBcdTAyMjlcdTAzMzBcMDAwXHUxRTc2XHUwMzA4IisKKyAgICAgICAgIlx1MDMwMFwwMDBcdTAxRUJcdTAzMUJcdTAzMDNcMDAwXHUwMTE5XHUwMzA2XDAwMFx1MDE3Mlx1MDMwOFx1MDMwMFwwMDAiKworICAgICAgICAiXHUxRUUzXHUwMzAzXDAwMFx1MUVCOVx1MDMwNlwwMDBcdTFFRjRcdTAzMDhcMDAwXHUxRTcyXHUwMzA4XHUwMzAwXDAwMCIrCisgICAgICAgICJcdTFFRTRcdTAzMDhcdTAzMDBcMDAwXHUwMUFGXHUwMzA4XHUwMzAwXDAwMFx1MUUxQVx1MDMwNlwwMDBcdTFFMThcdTAzMDYiKworICAgICAgICAiXDAwMFx1MDExOFx1MDMzMFwwMDBcdTFFNzVcdTAzMDhcdTAzMENcMDAwXHUwMjI4XHUwMzMwXDAwMFx1MUU3N1x1MDMwOCIrCisgICAgICAgICJcdTAzMENcMDAwXHUwMUVBXHUwMzFCXHUwMzAzXDAwMFx1MDExOFx1MDMwNlwwMDBcdTFFN0ZcdTAzMDNcMDAwXHUwMTczIisKKyAgICAgICAgIlx1MDMwOFx1MDMwQ1wwMDBcdTFFRTJcdTAzMDNcMDAwXHUxRUI4XHUwMzA2XDAwMFx1MUVGNVx1MDMwMlwwMDBcdTFFNzMiKworICAgICAgICAiXHUwMzA4XHUwMzBDXDAwMFx1MUVFNVx1MDMwOFx1MDMwQ1wwMDBcdTAxQjBcdTAzMDhcdTAzMENcMDAwXHUxRTFCXHUwMzA0IisKKyAgICAgICAgIlwwMDBcdTFFMTlcdTAzMDRcMDAwXHUwMTE5XHUwMzJEXDAwMFx1MUU3NFx1MDMwOFx1MDMwQ1wwMDBcdTAyMjlcdTAzMkQiKworICAgICAgICAiXDAwMFx1MUU3Nlx1MDMwOFx1MDMwQ1wwMDBcdTAxRUJcdTAzMUJcdTAzMDlcMDAwXHUwMTE5XHUwMzA0XDAwMFx1MDIyOSIrCisgICAgICAgICJcdTAzMDRcMDAwXHUxRTdFXHUwMzAzXDAwMFx1MDE3Mlx1MDMwOFx1MDMwQ1wwMDBcdTFFRTNcdTAzMDlcMDAwXHUxRUI5IisKKyAgICAgICAgIlx1MDMwNFwwMDBcdTFFRjRcdTAzMDJcMDAwXHUxRTcyXHUwMzA4XHUwMzBDXDAwMFx1MUVFNFx1MDMwOFx1MDMwQ1wwMDAiKworICAgICAgICAiXHUwMUFGXHUwMzA4XHUwMzBDXDAwMFx1MUU3NVx1MDMwNFx1MDMwOFwwMDBcdTFFMUFcdTAzMDRcMDAwXHUxRTc3XHUwMzA0IisKKyAgICAgICAgIlx1MDMwOFwwMDBcdTFFMThcdTAzMDRcMDAwXHUwMTE4XHUwMzJEXDAwMFx1MUU3NVx1MDMwOFx1MDMwMVwwMDBcdTAyMjgiKworICAgICAgICAiXHUwMzJEXDAwMFx1MDE3M1x1MDMwNFx1MDMwOFwwMDBcdTFFNzdcdTAzMDhcdTAzMDFcMDAwXHUwMUVBXHUwMzFCXHUwMzA5IisKKyAgICAgICAgIlwwMDBcdTAxMThcdTAzMDRcMDAwXHUwMjI4XHUwMzA0XDAwMFx1MUU3M1x1MDMwNFx1MDMwOFwwMDBcdTFFRTVcdTAzMDQiKworICAgICAgICAiXHUwMzA4XDAwMFx1MDE3M1x1MDMwOFx1MDMwMVwwMDBcdTFFRTJcdTAzMDlcMDAwXHUxRUI4XHUwMzA0XDAwMFx1MUU4OSIrCisgICAgICAgICJcdTAzMDJcMDAwXHUxRTczXHUwMzA4XHUwMzAxXDAwMFx1MUVFNVx1MDMwOFx1MDMwMVwwMDBcdTAxQjBcdTAzMDRcdTAzMDgiKworICAgICAgICAiXDAwMFx1MDFCMFx1MDMwOFx1MDMwMVwwMDBcdTFFMUJcdTAzMDRcdTAzMDFcMDAwXHUxRTc0XHUwMzA0XHUwMzA4XDAwMCIrCisgICAgICAgICJcdTFFMTlcdTAzMDRcdTAzMDFcMDAwXHUxRTc2XHUwMzA0XHUwMzA4XDAwMFx1MDExOVx1MDMwNFx1MDMwMVwwMDBcdTFFNzQiKworICAgICAgICAiXHUwMzA4XHUwMzAxXDAwMFx1MDIyOVx1MDMwNFx1MDMwMVwwMDBcdTAxNzJcdTAzMDRcdTAzMDhcMDAwXHUxRTc2XHUwMzA4IisKKyAgICAgICAgIlx1MDMwMVwwMDBcdTAxRUJcdTAzMUJcdTAzMDBcMDAwXHUxRUI5XHUwMzA0XHUwMzAxXDAwMFx1MUU3Mlx1MDMwNFx1MDMwOCIrCisgICAgICAgICJcMDAwXHUxRUU0XHUwMzA0XHUwMzA4XDAwMFx1MDE3Mlx1MDMwOFx1MDMwMVwwMDBcdTFFRTNcdTAzMDBcMDAwXHUxRTg4IisKKyAgICAgICAgIlx1MDMwMlwwMDBcdTFFNzJcdTAzMDhcdTAzMDFcMDAwXHUxRUU0XHUwMzA4XHUwMzAxXDAwMFx1MDFBRlx1MDMwNFx1MDMwOCIrCisgICAgICAgICJcMDAwXHUwMUFGXHUwMzA4XHUwMzAxXDAwMFx1MUUxQVx1MDMwNFx1MDMwMVwwMDBcdTFFNzVcdTAzMDNcdTAzMDFcMDAwIisKKyAgICAgICAgIlx1MUUxOFx1MDMwNFx1MDMwMVwwMDBcdTFFNzdcdTAzMDNcdTAzMDFcMDAwXHUwMTE4XHUwMzA0XHUwMzAxXDAwMFx1MUU3NSIrCisgICAgICAgICJcdTAzMDhcdTAzMDRcMDAwXHUwMjI4XHUwMzA0XHUwMzAxXDAwMFx1MDE3M1x1MDMwM1x1MDMwMVwwMDBcdTFFNzdcdTAzMDgiKworICAgICAgICAiXHUwMzA0XDAwMFx1MDFFQVx1MDMxQlx1MDMwMFwwMDBcdTFFQjhcdTAzMDRcdTAzMDFcMDAwXHUxRTczXHUwMzAzXHUwMzAxIisKKyAgICAgICAgIlwwMDBcdTFFRTVcdTAzMDNcdTAzMDFcMDAwXHUwMTczXHUwMzA4XHUwMzA0XDAwMFx1MUVFMlx1MDMwMFwwMDBcdTFFNzMiKworICAgICAgICAiXHUwMzA4XHUwMzA0XDAwMFx1MUVFNVx1MDMwOFx1MDMwNFwwMDBcdTFFRUZcdTAzMDFcMDAwXHUwMUIwXHUwMzA4XHUwMzA0IisKKyAgICAgICAgIlwwMDBcdTFFMUJcdTAzMDRcdTAzMDBcMDAwXHUxRTc0XHUwMzAzXHUwMzAxXDAwMFx1MUUxOVx1MDMwNFx1MDMwMFwwMDAiKworICAgICAgICAiXHUxRTBGXHUwMzBDXDAwMFx1MUU3Nlx1MDMwM1x1MDMwMVwwMDBcdTFFMTNcdTAzMENcMDAwXHUwMTE5XHUwMzA0XHUwMzAwIisKKyAgICAgICAgIlwwMDBcdTFFNzRcdTAzMDhcdTAzMDRcMDAwXHUwMjI5XHUwMzA0XHUwMzAwXDAwMCIKKyAgICA7CisKKyAgICBzdGF0aWMgZmluYWwgaW50W10gdHlwZUJpdCA9IFV0aWxpdHkuUkxFU3RyaW5nVG9JbnRBcnJheSgKKyAgICAgICAgIlwwMDBnXDAwMFwwMDBcMDAwXHVBNUE1XDAwMFwwMjBcMDAwMVwwMDArXDAwMFx1QTVBNVwwMDBcMDA0XDAwMC1cMDAwKiIrCisgICAgICAgICJcMDAwKlwwMDBcdUE1QTVcMDAwXDAwNFwwMDAtXDAwMFwwMDJcMDAwMVwwMDA1XDAwMFwwMTJcMDAwMVwwMDAxXDAwMC0iKworICAgICAgICAiXDAwMFwwMDNcMDAwXHVBNUE1XDAwMFwwMDdcMDAwXDAwMVwwMDBcMDQyXDAwMFx1QTVBNVwwMDBcMDA1XDAwMFwwMDFcMDAwIisKKyAgICAgICAgIlwwMDVcMDAwXDAwMVwwMDBcMDAxXDAwMFwwMDFcMDAwXDAwNFwwMDBcMDA0XDAwMDFcMDAwMlwwMDAtXDAwMCpcMDAwXDAwMiIrCisgICAgICAgICJcMDAwNFwwMDAzXDAwMC5cMDAwMFwwMDBcMDA2XDAwMFwwMDdcMDAwXDAxMFwwMDBcMDExXDAwMFwwMTNcMDAwXDAxNFwwMDAiKworICAgICAgICAiXDAxNVwwMDBcMDE2XDAwMFwwMTdcMDAwXDAyMFwwMDBcMDIxXDAwMFwwMjJcMDAwXDAyM1wwMDBcMDI0XDAwMFwwMjVcMDAwIisKKyAgICAgICAgIlwwMjdcMDAwXDAzMFwwMDBcMDMxXDAwMFwwMzJcMDAwXDAzM1wwMDBcMDM0XDAwMFwwMzVcMDAwXDAzNlwwMDBcMDM3XDAwMCIrCisgICAgICAgICIgXDAwMFwwMDVcMDAwXDAwM1wwMDAhXDAwMCNcMDAwJFwwMDAlXDAwMCZcMDAwK1wwMDAnXDAwMChcMDAwKVwwMDAsXDAwMCIrCisgICAgICAgICIvXDAwMFwwMjYiCisgICAgKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbXBvc2VkQ2hhckl0ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbXBvc2VkQ2hhckl0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iOGJhMTQyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29tcG9zZWRDaGFySXRlci5qYXZhCkBAIC0wLDAgKzEsMTY0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvdGV4dC9Db21wb3NlZENoYXJJdGVyLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDYvMjAgMDE6MjE6MTggJCAKKyAqICRSZXZpc2lvbjogMS40ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTm9ybWFsaXplckltcGw7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCisvKioKKyAqIDx0dD5Db21wb3NlZENoYXJJdGVyPC90dD4gaXMgYW4gaXRlcmF0b3IgY2xhc3MgdGhhdCByZXR1cm5zIGFsbAorICogb2YgdGhlIHByZWNvbXBvc2VkIGNoYXJhY3RlcnMgZGVmaW5lZCBpbiB0aGUgVW5pY29kZSBzdGFuZGFyZCwgYWxvbmcKKyAqIHdpdGggdGhlaXIgZGVjb21wb3NlZCBmb3Jtcy4gIFRoaXMgaXMgb2Z0ZW4gdXNlZnVsIHdoZW4gYnVpbGRpbmcKKyAqIGRhdGEgdGFibGVzICg8aT5lLmcuPC9pPiBjb2xsYXRpb24gdGFibGVzKSB3aGljaCBuZWVkIHRvIHRyZWF0IGNvbXBvc2VkCisgKiBhbmQgZGVjb21wb3NlZCBjaGFyYWN0ZXJzIGVxdWl2YWxlbnRseS4KKyAqIDxwPgorICogRm9yIGV4YW1wbGUsIGltYWdpbmUgdGhhdCB5b3UgaGF2ZSBidWlsdCBhIGNvbGxhdGlvbiB0YWJsZSB3aXRoIG9yZGVyaW5nCisgKiBydWxlcyBmb3IgdGhlIHtAbGluayBOb3JtYWxpemVyI0RFQ09NUCBjYW5vbmljYWxseSBkZWNvbXBvc2VkfSBmb3JtcyBvZiBhbGwKKyAqIGNoYXJhY3RlcnMgdXNlZCBpbiBhIHBhcnRpY3VsYXIgbGFuZ3VhZ2UuICBXaGVuIHlvdSBwcm9jZXNzIGlucHV0IHRleHQgdXNpbmcKKyAqIHRoaXMgdGFibGUsIHRoZSB0ZXh0IG11c3QgZmlyc3QgYmUgZGVjb21wb3NlZCBzbyB0aGF0IGl0IG1hdGNoZXMgdGhlIGZvcm0KKyAqIHVzZWQgaW4gdGhlIHRhYmxlLiAgVGhpcyBjYW4gaW1wb3NlIGEgcGVyZm9ybWFuY2UgcGVuYWx0eSB0aGF0IG1heSBiZQorICogdW5hY2NlcHRhYmxlIGluIHNvbWUgc2l0dWF0aW9ucy4KKyAqIDxwPgorICogWW91IGNhbiBhdm9pZCB0aGlzIHByb2JsZW0gYnkgZW5zdXJpbmcgdGhhdCB0aGUgY29sbGF0aW9uIHRhYmxlIGNvbnRhaW5zCisgKiBydWxlcyBmb3IgYm90aCB0aGUgZGVjb21wb3NlZCA8aT5hbmQ8L2k+IGNvbXBvc2VkIHZlcnNpb25zIG9mIGVhY2ggY2hhcmFjdGVyLgorICogVG8gZG8gc28sIHVzZSBhIDx0dD5Db21wb3NlZENoYXJJdGVyPC90dD4gdG8gaXRlcmF0ZSB0aHJvdWdoIGFsbCBvZiB0aGUKKyAqIGNvbXBvc2VkIGNoYXJhY3RlcnMgaW4gVW5pY29kZS4gIElmIHRoZSBkZWNvbXBvc2l0aW9uIGZvciB0aGF0IGNoYXJhY3RlcgorICogY29uc2lzdHMgc29sZWx5IG9mIGNoYXJhY3RlcnMgdGhhdCBhcmUgbGlzdGVkIGluIHlvdXIgcnVsZXNldCwgeW91IGNhbgorICogYWRkIGEgbmV3IHJ1bGUgZm9yIHRoZSBjb21wb3NlZCBjaGFyYWN0ZXIgdGhhdCBtYWtlcyBpdCBlcXVpdmFsZW50IHRvCisgKiBpdHMgZGVjb21wb3NpdGlvbiBzZXF1ZW5jZS4KKyAqIDxwPgorICogTm90ZSB0aGF0IDx0dD5Db21wb3NlZENoYXJJdGVyPC90dD4gaXRlcmF0ZXMgb3ZlciBhIDxlbT5zdGF0aWM8L2VtPiB0YWJsZQorICogb2YgdGhlIGNvbXBvc2VkIGNoYXJhY3RlcnMgaW4gVW5pY29kZS4gIElmIHlvdSB3YW50IHRvIGl0ZXJhdGUgb3ZlciB0aGUKKyAqIGNvbXBvc2VkIGNoYXJhY3RlcnMgaW4gYSBwYXJ0aWN1bGFyIHN0cmluZywgdXNlIHtAbGluayBOb3JtYWxpemVyfSBpbnN0ZWFkLgorICogPHA+CisgKiBXaGVuIGNvbnN0cnVjdGluZyBhIDx0dD5Db21wb3NlZENoYXJJdGVyPC90dD4gdGhlcmUgaXMgb25lCisgKiBvcHRpb25hbCBmZWF0dXJlIHRoYXQgeW91IGNhbiBlbmFibGUgb3IgZGlzYWJsZToKKyAqIDx1bD4KKyAqICAgPGxpPntAbGluayBOb3JtYWxpemVyI0lHTk9SRV9IQU5HVUx9IC0gRG8gbm90IGl0ZXJhdGUgb3ZlciB0aGUgSGFuZ3VsCisgKiAgICAgICAgICBjaGFyYWN0ZXJzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIEphbW8gZGVjb21wb3NpdGlvbnMuCisgKiAgICAgICAgICBUaGlzIG9wdGlvbiBpcyBvZmYgYnkgZGVmYXVsdCAoPGk+aS5lLjwvaT4gSGFuZ3VsIHByb2Nlc3NpbmcgaXMgZW5hYmxlZCkKKyAqICAgICAgICAgIHNpbmNlIHRoZSBVbmljb2RlIHN0YW5kYXJkIHNwZWNpZmllcyB0aGF0IEhhbmd1bCB0byBKYW1vIAorICogICAgICAgICAgaXMgYSBjYW5vbmljYWwgZGVjb21wb3NpdGlvbi4KKyAqIDwvdWw+CisgKiA8cD4KKyAqIDx0dD5Db21wb3NlZENoYXJJdGVyPC90dD4gaXMgY3VycmVudGx5IGJhc2VkIG9uIHZlcnNpb24gMi4xLjggb2YgdGhlCisgKiA8YSBocmVmPSJodHRwOi8vd3d3LnVuaWNvZGUub3JnIiB0YXJnZXQ9InVuaWNvZGUiPlVuaWNvZGUgU3RhbmRhcmQ8L2E+LgorICogSXQgd2lsbCBiZSB1cGRhdGVkIGFzIGxhdGVyIHZlcnNpb25zIG9mIFVuaWNvZGUgYXJlIHJlbGVhc2VkLgorICogQGRlcHJlY2F0ZWQKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIENvbXBvc2VkQ2hhckl0ZXIgeworICAgIAorICAgIC8qKgorICAgICAqIENvbnN0YW50IHRoYXQgaW5kaWNhdGVzIHRoZSBpdGVyYXRpb24gaGFzIGNvbXBsZXRlZC4KKyAgICAgKiB7QGxpbmsgI25leHR9IHJldHVybnMgdGhpcyB2YWx1ZSB3aGVuIHRoZXJlIGFyZSBubyBtb3JlIGNvbXBvc2VkIGNoYXJhY3RlcnMKKyAgICAgKiBvdmVyIHdoaWNoIHRvIGl0ZXJhdGUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCAgY2hhciBET05FID0gKGNoYXIpIE5vcm1hbGl6ZXIuRE9ORTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBuZXcgPHR0PkNvbXBvc2VkQ2hhckl0ZXI8L3R0Pi4gIFRoZSBpdGVyYXRvciB3aWxsIHJldHVybgorICAgICAqIGFsbCBVbmljb2RlIGNoYXJhY3RlcnMgd2l0aCBjYW5vbmljYWwgZGVjb21wb3NpdGlvbnMsIGluY2x1ZGluZyBLb3JlYW4KKyAgICAgKiBIYW5ndWwgY2hhcmFjdGVycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ29tcG9zZWRDaGFySXRlcigpIHsKKyAgICAgICAgY29tcGF0ID0gZmFsc2U7CisgICAgICAgIG9wdGlvbnMgPTA7CisgICAgfQorICAgIAorICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBub24tZGVmYXVsdCA8dHQ+Q29tcG9zZWRDaGFySXRlcjwvdHQ+IHdpdGggb3B0aW9uYWwgYmVoYXZpb3IuCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGNvbXBhdCAgICA8dHQ+ZmFsc2U8L3R0PiBmb3IgY2Fub25pY2FsIGRlY29tcG9zaXRpb25zIG9ubHk7CisgICAgICogICAgICAgICAgICAgICAgICA8dHQ+dHJ1ZTwvdHQ+IGZvciBib3RoIGNhbm9uaWNhbCBhbmQgY29tcGF0aWJpbGl0eQorICAgICAqICAgICAgICAgICAgICAgICAgZGVjb21wb3NpdGlvbnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgIE9wdGlvbmFsIGRlY29tcG9zaXRpb24gZmVhdHVyZXMuICBDdXJyZW50bHksIHRoZSBvbmx5CisgICAgICogICAgICAgICAgICAgICAgICBzdXBwb3J0ZWQgb3B0aW9uIGlzIHtAbGluayBOb3JtYWxpemVyI0lHTk9SRV9IQU5HVUx9LCB3aGljaAorICAgICAqICAgICAgICAgICAgICAgICAgY2F1c2VzIHRoaXMgPHR0PkNvbXBvc2VkQ2hhckl0ZXI8L3R0PiBub3QgdG8gaXRlcmF0ZQorICAgICAqICAgICAgICAgICAgICAgICAgb3ZlciB0aGUgSGFuZ3VsIGNoYXJhY3RlcnMgYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcKKyAgICAgKiAgICAgICAgICAgICAgICAgIEphbW8gZGVjb21wb3NpdGlvbnMuCisgICAgICovCisgICAgcHVibGljIENvbXBvc2VkQ2hhckl0ZXIoYm9vbGVhbiBjb21wYXQsIGludCBvcHRpb25zKSB7CisgICAgICAgIHRoaXMuY29tcGF0ID0gY29tcGF0OworICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlcmUgYW55IHByZWNvbXBvc2VkIFVuaWNvZGUgY2hhcmFjdGVycyBub3QgeWV0IHJldHVybmVkCisgICAgICogYnkge0BsaW5rICNuZXh0fS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBoYXNOZXh0KCkgeworICAgICAgICBpZiAobmV4dENoYXIgPT0gTm9ybWFsaXplci5ET05FKSAgeworICAgICAgICAgICAgZmluZE5leHRDaGFyKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5leHRDaGFyICE9IE5vcm1hbGl6ZXIuRE9ORTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbmV4dCBwcmVjb21wb3NlZCBVbmljb2RlIGNoYXJhY3Rlci4KKyAgICAgKiBSZXBlYXRlZCBjYWxscyB0byA8dHQ+bmV4dDwvdHQ+IHJldHVybiBhbGwgb2YgdGhlIHByZWNvbXBvc2VkIGNoYXJhY3RlcnMgZGVmaW5lZAorICAgICAqIGJ5IFVuaWNvZGUsIGluIGFzY2VuZGluZyBvcmRlci4gIEFmdGVyIGFsbCBwcmVjb21wb3NlZCBjaGFyYWN0ZXJzIGhhdmUKKyAgICAgKiBiZWVuIHJldHVybmVkLCB7QGxpbmsgI2hhc05leHR9IHdpbGwgcmV0dXJuIDx0dD5mYWxzZTwvdHQ+IGFuZCBmdXJ0aGVyIGNhbGxzCisgICAgICogdG8gPHR0Pm5leHQ8L3R0PiB3aWxsIHJldHVybiB7QGxpbmsgI0RPTkV9LgorICAgICAqLworICAgIHB1YmxpYyBjaGFyIG5leHQoKSB7CisgICAgICAgIGlmIChuZXh0Q2hhciA9PSBOb3JtYWxpemVyLkRPTkUpICB7CisgICAgICAgICAgICBmaW5kTmV4dENoYXIoKTsKKyAgICAgICAgfQorICAgICAgICBjdXJDaGFyID0gbmV4dENoYXI7CisgICAgICAgIG5leHRDaGFyID0gTm9ybWFsaXplci5ET05FOworICAgICAgICByZXR1cm4gKGNoYXIpIGN1ckNoYXI7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIFVuaWNvZGUgZGVjb21wb3NpdGlvbiBvZiB0aGUgY3VycmVudCBjaGFyYWN0ZXIuCisgICAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgZGVjb21wb3NpdGlvbiBvZiB0aGUgcHJlY29tcG9zZWQgY2hhcmFjdGVyIG1vc3QKKyAgICAgKiByZWNlbnRseSByZXR1cm5lZCBieSB7QGxpbmsgI25leHR9LiAgVGhlIHJlc3VsdGluZyBkZWNvbXBvc2l0aW9uIGlzCisgICAgICogYWZmZWN0ZWQgYnkgdGhlIHNldHRpbmdzIG9mIHRoZSBvcHRpb25zIHBhc3NlZCB0byB0aGUgY29uc3RydWN0b3IuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBkZWNvbXBvc2l0aW9uKCkgeworICAgICAgICAvLyB0aGUgZGVjb21wb3NpdGlvbiBidWZmZXIgY29udGFpbnMgdGhlIGRlY29tcG9zaXRpb24gb2YgCisgICAgICAgIC8vIGN1cnJlbnQgY2hhciBzbyBqdXN0IHJldHVybiBpdAorICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhkZWNvbXBCdWYsMCwgYnVmTGVuKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGZpbmROZXh0Q2hhcigpIHsKKyAgICAgICAgaW50IGM9Y3VyQ2hhcisxOworICAgICAgICBmb3IoOzspeworICAgICAgICAgICBpZihjIDwgMHhGRkZGKXsKKwkgICAgICAgICAgIGJ1ZkxlbiA9IE5vcm1hbGl6ZXJJbXBsLmdldERlY29tcG9zaXRpb24oYyxjb21wYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY29tcEJ1ZiwwLAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNvbXBCdWYubGVuZ3RoKTsKKwkgICAgICAgICAgIGlmKGJ1Zkxlbj4wKXsKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGN1ckNoYXIgY2FuIGJlIGRlY29tcG9zZWQuLi4gc28gaXQgaXMgYSBjb21wb3NlZCBjaGFyCisJICAgICAgICAgICAgICAgIC8vIGNhY2hlIHRoZSByZXN1bHQgICAgIAorICAgICAgICAgICAgICAgICAgICBicmVhazsKKwkgICAgICAgICAgIH0KKwkgICAgICAgICAgIGMrKzsKKyAgICAgICAgICAgfWVsc2V7CisJICAgICAgICAgICBjPU5vcm1hbGl6ZXIuRE9ORTsKKwkgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbmV4dENoYXI9YzsgIAorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGludCBvcHRpb25zOworICAgIHByaXZhdGUgYm9vbGVhbiBjb21wYXQ7CisgICAgcHJpdmF0ZSBjaGFyW10gZGVjb21wQnVmID0gbmV3IGNoYXJbMTAwXTsKKyAgICBwcml2YXRlIGludCBidWZMZW49MDsKKyAgICBwcml2YXRlIGludCBjdXJDaGFyID0gMDsKKyAgICBwcml2YXRlIGludCBuZXh0Q2hhciA9IE5vcm1hbGl6ZXIuRE9ORTsKKyAgICAKKworfTsKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbXBvdW5kVHJhbnNsaXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbXBvdW5kVHJhbnNsaXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mNzVjNzA5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29tcG91bmRUcmFuc2xpdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsNTE3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvdGV4dC9Db21wb3VuZFRyYW5zbGl0ZXJhdG9yLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDYvMjYgMTg6MTI6MzkgJCAKKyAqICRSZXZpc2lvbjogMS4zMCAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgamF2YS51dGlsLkVudW1lcmF0aW9uOworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CisKKy8qKgorICogQSB0cmFuc2xpdGVyYXRvciB0aGF0IGlzIGNvbXBvc2VkIG9mIHR3byBvciBtb3JlIG90aGVyCisgKiB0cmFuc2xpdGVyYXRvciBvYmplY3RzIGxpbmtlZCB0b2dldGhlci4gIEZvciBleGFtcGxlLCBpZiBvbmUKKyAqIHRyYW5zbGl0ZXJhdG9yIHRyYW5zbGl0ZXJhdGVzIGZyb20gc2NyaXB0IEEgdG8gc2NyaXB0IEIsIGFuZAorICogYW5vdGhlciB0cmFuc2xpdGVyYXRlcyBmcm9tIHNjcmlwdCBCIHRvIHNjcmlwdCBDLCB0aGUgdHdvIG1heSBiZQorICogY29tYmluZWQgdG8gZm9ybSBhIG5ldyB0cmFuc2xpdGVyYXRvciBmcm9tIEEgdG8gQy4KKyAqCisgKiA8cD5Db21wb3NlZCB0cmFuc2xpdGVyYXRvcnMgbWF5IG5vdCBiZWhhdmUgYXMgZXhwZWN0ZWQuICBGb3IKKyAqIGV4YW1wbGUsIGludmVyc2VzIG1heSBub3QgY29tYmluZSB0byBmb3JtIHRoZSBpZGVudGl0eQorICogdHJhbnNsaXRlcmF0b3IuICBTZWUgdGhlIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIHtAbGluaworICogVHJhbnNsaXRlcmF0b3J9IGZvciBkZXRhaWxzLgorICoKKyAqIDxwPkNvcHlyaWdodCAmY29weTsgSUJNIENvcnBvcmF0aW9uIDE5OTkuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEB2ZXJzaW9uICRSQ1NmaWxlOiBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yLmphdmEsdiAkICRSZXZpc2lvbjogMS4zMCAkICREYXRlOiAyMDAyLzA2LzI2IDE4OjEyOjM5ICQKKyAqLworcHVibGljIGNsYXNzIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IgZXh0ZW5kcyBUcmFuc2xpdGVyYXRvciB7CisKKyAgICBwcml2YXRlIFRyYW5zbGl0ZXJhdG9yW10gdHJhbnM7CisKKyAgICAvKioKKyAgICAgKiBGb3IgY29tcG91bmQgUkJUcyAodGhvc2Ugd2l0aCBhbiA6OmlkIGJsb2NrIGJlZm9yZSBhbmQvb3IgYWZ0ZXIKKyAgICAgKiB0aGUgbWFpbiBydWxlIGJsb2NrKSB3ZSByZWNvcmQgdGhlIGluZGV4IG9mIHRoZSBSQlQgaGVyZS4KKyAgICAgKiBPdGhlcndpc2UsIHRoaXMgc2hvdWxkIGhhdmUgYSB2YWx1ZSBvZiAtMS4gIFdlIG5lZWQgdGhpcworICAgICAqIGluZm9ybWF0aW9uIHRvIGltcGxlbWVudCB0b1J1bGVzKCkuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgY29tcG91bmRSQlRJbmRleDsgICAgCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgIlx1MDBBOSBJQk0gQ29ycG9yYXRpb24gMTk5OS0yMDAxLiBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IGNvbXBvdW5kIHRyYW5zbGl0ZXJhdG9yIGdpdmVuIGFuIGFycmF5IG9mCisgICAgICogdHJhbnNsaXRlcmF0b3JzLiAgVGhlIGFycmF5IG9mIHRyYW5zbGl0ZXJhdG9ycyBtYXkgYmUgb2YgYW55CisgICAgICogbGVuZ3RoLCBpbmNsdWRpbmcgemVybyBvciBvbmUsIGhvd2V2ZXIsIHVzZWZ1bCBjb21wb3VuZAorICAgICAqIHRyYW5zbGl0ZXJhdG9ycyBoYXZlIGF0IGxlYXN0IHR3byBjb21wb25lbnRzLgorICAgICAqIEBwYXJhbSB0cmFuc2xpdGVyYXRvcnMgYXJyYXkgb2YgPGNvZGU+VHJhbnNsaXRlcmF0b3I8L2NvZGU+CisgICAgICogb2JqZWN0cworICAgICAqIEBwYXJhbSBmaWx0ZXIgdGhlIGZpbHRlci4gIEFueSBjaGFyYWN0ZXIgZm9yIHdoaWNoCisgICAgICogPHR0PmZpbHRlci5jb250YWlucygpPC90dD4gcmV0dXJucyA8dHQ+ZmFsc2U8L3R0PiB3aWxsIG5vdCBiZQorICAgICAqIGFsdGVyZWQgYnkgdGhpcyB0cmFuc2xpdGVyYXRvci4gIElmIDx0dD5maWx0ZXI8L3R0PiBpcworICAgICAqIDx0dD5udWxsPC90dD4gdGhlbiBubyBmaWx0ZXJpbmcgaXMgYXBwbGllZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ29tcG91bmRUcmFuc2xpdGVyYXRvcihUcmFuc2xpdGVyYXRvcltdIHRyYW5zbGl0ZXJhdG9ycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlRmlsdGVyIGZpbHRlcikgeworICAgICAgICBzdXBlcihqb2luSURzKHRyYW5zbGl0ZXJhdG9ycyksIGZpbHRlcik7CisgICAgICAgIHRyYW5zID0gbmV3IFRyYW5zbGl0ZXJhdG9yW3RyYW5zbGl0ZXJhdG9ycy5sZW5ndGhdOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHRyYW5zbGl0ZXJhdG9ycywgMCwgdHJhbnMsIDAsIHRyYW5zLmxlbmd0aCk7CisgICAgICAgIGNvbXB1dGVNYXhpbXVtQ29udGV4dExlbmd0aCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBuZXcgY29tcG91bmQgdHJhbnNsaXRlcmF0b3IgZ2l2ZW4gYW4gYXJyYXkgb2YKKyAgICAgKiB0cmFuc2xpdGVyYXRvcnMuICBUaGUgYXJyYXkgb2YgdHJhbnNsaXRlcmF0b3JzIG1heSBiZSBvZiBhbnkKKyAgICAgKiBsZW5ndGgsIGluY2x1ZGluZyB6ZXJvIG9yIG9uZSwgaG93ZXZlciwgdXNlZnVsIGNvbXBvdW5kCisgICAgICogdHJhbnNsaXRlcmF0b3JzIGhhdmUgYXQgbGVhc3QgdHdvIGNvbXBvbmVudHMuCisgICAgICogQHBhcmFtIHRyYW5zbGl0ZXJhdG9ycyBhcnJheSBvZiA8Y29kZT5UcmFuc2xpdGVyYXRvcjwvY29kZT4KKyAgICAgKiBvYmplY3RzCisgICAgICovCisgICAgcHVibGljIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IoVHJhbnNsaXRlcmF0b3JbXSB0cmFuc2xpdGVyYXRvcnMpIHsKKyAgICAgICAgdGhpcyh0cmFuc2xpdGVyYXRvcnMsIG51bGwpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IGNvbXBvdW5kIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqIEBwYXJhbSBJRCBjb21wb3VuZCBJRAorICAgICAqIEBwYXJhbSBkaXJlY3Rpb24gZWl0aGVyIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQgb3IgVHJhbnNsaXRlcmF0b3IuUkVWRVJTRQorICAgICAqIEBwYXJhbSBmaWx0ZXIgYSBnbG9iYWwgZmlsdGVyIGZvciB0aGlzIGNvbXBvdW5kIHRyYW5zbGl0ZXJhdG9yCisgICAgICogb3IgbnVsbAorICAgICAqLworICAgIHB1YmxpYyBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKFN0cmluZyBJRCwgaW50IGRpcmVjdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlRmlsdGVyIGZpbHRlcikgeworICAgICAgICBzdXBlcihJRCwgZmlsdGVyKTsKKyAgICAgICAgaW5pdChJRCwgZGlyZWN0aW9uLCAtMSwgbnVsbCwgdHJ1ZSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBuZXcgY29tcG91bmQgdHJhbnNsaXRlcmF0b3Igd2l0aCBubyBmaWx0ZXIuCisgICAgICogQHBhcmFtIElEIGNvbXBvdW5kIElECisgICAgICogQHBhcmFtIGRpcmVjdGlvbiBlaXRoZXIgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCBvciBUcmFuc2xpdGVyYXRvci5SRVZFUlNFCisgICAgICovCisgICAgcHVibGljIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IoU3RyaW5nIElELCBpbnQgZGlyZWN0aW9uKSB7CisgICAgICAgIHRoaXMoSUQsIGRpcmVjdGlvbiwgbnVsbCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBuZXcgZm9yd2FyZCBjb21wb3VuZCB0cmFuc2xpdGVyYXRvciB3aXRoIG5vIGZpbHRlci4KKyAgICAgKiBAcGFyYW0gSUQgY29tcG91bmQgSUQKKyAgICAgKi8KKyAgICBwdWJsaWMgQ29tcG91bmRUcmFuc2xpdGVyYXRvcihTdHJpbmcgSUQpIHsKKyAgICAgICAgdGhpcyhJRCwgRk9SV0FSRCwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9yIGZvciBjb21wb3VuZCBSQlRzLiAgQ29uc3RydWN0IGEKKyAgICAgKiBjb21wb3VuZCB0cmFuc2xpdGVyYXRvciB1c2luZyB0aGUgZ2l2ZW4gaWRCbG9jaywgd2l0aCB0aGUKKyAgICAgKiBzcGxpdFRyYW5zIGluc2VydGVkIGF0IHRoZSBpZFNwbGl0UG9pbnQuCisgICAgICovCisgICAgQ29tcG91bmRUcmFuc2xpdGVyYXRvcihTdHJpbmcgSUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgaWRCbG9jaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpZFNwbGl0UG9pbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciBzcGxpdFRyYW5zKSB7CisgICAgICAgIHN1cGVyKElELCBudWxsKTsKKyAgICAgICAgaW5pdChpZEJsb2NrLCBGT1JXQVJELCBpZFNwbGl0UG9pbnQsIHNwbGl0VHJhbnMsIGZhbHNlKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9yIGZvciBUcmFuc2xpdGVyYXRvciBmcm9tIGEgdmVjdG9yIG9mCisgICAgICogdHJhbnNsaXRlcmF0b3JzLiAgVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZml4aW5nIHVwIHRoZQorICAgICAqIElELgorICAgICAqLworICAgIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IoVmVjdG9yIGxpc3QpIHsKKyAgICAgICAgc3VwZXIoIiIsIG51bGwpOworICAgICAgICB0cmFucyA9IG51bGw7CisgICAgICAgIGNvbXBvdW5kUkJUSW5kZXggPSAtMTsKKyAgICAgICAgaW5pdChsaXN0LCBGT1JXQVJELCBmYWxzZSk7CisgICAgICAgIC8vIGFzc3VtZSBjYWxsZXIgd2lsbCBmaXh1cCBJRAorICAgIH0KKworICAgIC8qKgorICAgICAqIEZpbmlzaCBjb25zdHJ1Y3RpbmcgYSB0cmFuc2xpdGVyYXRvcjogb25seSB0byBiZSBjYWxsZWQgYnkKKyAgICAgKiBjb25zdHJ1Y3RvcnMuICBCZWZvcmUgY2FsbGluZyBpbml0KCksIHNldCB0cmFucyBhbmQgZmlsdGVyIHRvIE5VTEwuCisgICAgICogQHBhcmFtIGlkIHRoZSBpZCBjb250YWluaW5nICc7Jy1zZXBhcmF0ZWQgZW50cmllcworICAgICAqIEBwYXJhbSBkaXJlY3Rpb24gZWl0aGVyIEZPUldBUkQgb3IgUkVWRVJTRQorICAgICAqIEBwYXJhbSBpZFNwbGl0UG9pbnQgdGhlIGluZGV4IGludG8gaWQgYXQgd2hpY2ggdGhlCisgICAgICogc3BsaXRUcmFucyBzaG91bGQgYmUgaW5zZXJ0ZWQsIGlmIHRoZXJlIGlzIG9uZSwgb3IKKyAgICAgKiAtMSBpZiB0aGVyZSBpcyBub25lLgorICAgICAqIEBwYXJhbSBzcGxpdFRyYW5zIGEgdHJhbnNsaXRlcmF0b3IgdG8gYmUgaW5zZXJ0ZWQKKyAgICAgKiBiZWZvcmUgdGhlIGVudHJ5IGF0IG9mZnNldCBpZFNwbGl0UG9pbnQgaW4gdGhlIGlkIHN0cmluZy4gIE1heSBiZQorICAgICAqIE5VTEwgdG8gaW5zZXJ0IG5vIGVudHJ5LgorICAgICAqIEBwYXJhbSBmaXhSZXZlcnNlSUQgaWYgVFJVRSwgdGhlbiByZWNvbnN0cnVjdCB0aGUgSUQgb2YgcmV2ZXJzZQorICAgICAqIGVudHJpZXMgYnkgY2FsbGluZyBnZXRJRCgpIG9mIGNvbXBvbmVudCBlbnRyaWVzLiAgU29tZSBjb25zdHJ1Y3RvcnMKKyAgICAgKiBkbyBub3QgcmVxdWlyZSB0aGlzIGJlY2F1c2UgdGhleSBhcHBseSBhIGZhY2FkZSBJRCBhbnl3YXkuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGluaXQoU3RyaW5nIGlkLAorICAgICAgICAgICAgICAgICAgICAgIGludCBkaXJlY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgaW50IGlkU3BsaXRQb2ludCwKKyAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciBzcGxpdFRyYW5zLAorICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZml4UmV2ZXJzZUlEKSB7CisgICAgICAgIC8vIGFzc2VydCh0cmFucyA9PSAwKTsKKworICAgICAgICBWZWN0b3IgbGlzdCA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgVW5pY29kZVNldFtdIGNvbXBvdW5kRmlsdGVyID0gbmV3IFVuaWNvZGVTZXRbMV07CisgICAgICAgIFN0cmluZ0J1ZmZlciByZWdlbklEID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBpZiAoIVRyYW5zbGl0ZXJhdG9ySURQYXJzZXIucGFyc2VDb21wb3VuZElEKGlkLCBkaXJlY3Rpb24sCisgICAgICAgICAgICAgICAgIHJlZ2VuSUQsIGxpc3QsIGNvbXBvdW5kRmlsdGVyKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBJRCAiICsgaWQpOworICAgICAgICB9CisKKyAgICAgICAgY29tcG91bmRSQlRJbmRleCA9IFRyYW5zbGl0ZXJhdG9ySURQYXJzZXIuaW5zdGFudGlhdGVMaXN0KGxpc3QsIHNwbGl0VHJhbnMsIGlkU3BsaXRQb2ludCk7CisKKyAgICAgICAgaW5pdChsaXN0LCBkaXJlY3Rpb24sIGZpeFJldmVyc2VJRCk7CisKKyAgICAgICAgaWYgKGNvbXBvdW5kRmlsdGVyWzBdICE9IG51bGwpIHsKKyAgICAgICAgICAgIHNldEZpbHRlcihjb21wb3VuZEZpbHRlclswXSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGaW5pc2ggY29uc3RydWN0aW5nIGEgdHJhbnNsaXRlcmF0b3I6IG9ubHkgdG8gYmUgY2FsbGVkIGJ5CisgICAgICogY29uc3RydWN0b3JzLiAgQmVmb3JlIGNhbGxpbmcgaW5pdCgpLCBzZXQgdHJhbnMgYW5kIGZpbHRlciB0byBOVUxMLgorICAgICAqIEBwYXJhbSBsaXN0IGEgdmVjdG9yIG9mIHRyYW5zbGl0ZXJhdG9yIG9iamVjdHMgdG8gYmUgYWRvcHRlZC4gIEl0CisgICAgICogc2hvdWxkIE5PVCBiZSBlbXB0eS4gIFRoZSBsaXN0IHNob3VsZCBiZSBpbiBkZWNsYXJlZCBvcmRlci4gIFRoYXQKKyAgICAgKiBpcywgaXQgc2hvdWxkIGJlIGluIHRoZSBGT1JXQVJEIG9yZGVyOyBpZiBkaXJlY3Rpb24gaXMgUkVWRVJTRSB0aGVuCisgICAgICogdGhlIGxpc3Qgb3JkZXIgd2lsbCBiZSByZXZlcnNlZC4KKyAgICAgKiBAcGFyYW0gZGlyZWN0aW9uIGVpdGhlciBGT1JXQVJEIG9yIFJFVkVSU0UKKyAgICAgKiBAcGFyYW0gZml4UmV2ZXJzZUlEIGlmIFRSVUUsIHRoZW4gcmVjb25zdHJ1Y3QgdGhlIElEIG9mIHJldmVyc2UKKyAgICAgKiBlbnRyaWVzIGJ5IGNhbGxpbmcgZ2V0SUQoKSBvZiBjb21wb25lbnQgZW50cmllcy4gIFNvbWUgY29uc3RydWN0b3JzCisgICAgICogZG8gbm90IHJlcXVpcmUgdGhpcyBiZWNhdXNlIHRoZXkgYXBwbHkgYSBmYWNhZGUgSUQgYW55d2F5LgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBpbml0KFZlY3RvciBsaXN0LAorICAgICAgICAgICAgICAgICAgICAgIGludCBkaXJlY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBmaXhSZXZlcnNlSUQpIHsKKyAgICAgICAgLy8gYXNzZXJ0KHRyYW5zID09IDApOworCisgICAgICAgIC8vIEFsbG9jYXRlIGFycmF5CisgICAgICAgIGludCBjb3VudCA9IGxpc3Quc2l6ZSgpOworICAgICAgICB0cmFucyA9IG5ldyBUcmFuc2xpdGVyYXRvcltjb3VudF07CisKKyAgICAgICAgLy8gTW92ZSB0aGUgdHJhbnNsaXRlcmF0b3JzIGZyb20gdGhlIHZlY3RvciBpbnRvIGFuIGFycmF5LgorICAgICAgICAvLyBSZXZlcnNlIHRoZSBvcmRlciBpZiBuZWNlc3NhcnkuCisgICAgICAgIGludCBpOworICAgICAgICBmb3IgKGk9MDsgaTxjb3VudDsgKytpKSB7CisgICAgICAgICAgICBpbnQgaiA9IChkaXJlY3Rpb24gPT0gRk9SV0FSRCkgPyBpIDogY291bnQgLSAxIC0gaTsKKyAgICAgICAgICAgIHRyYW5zW2ldID0gKFRyYW5zbGl0ZXJhdG9yKSBsaXN0LmVsZW1lbnRBdChqKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEZpeCBjb21wb3VuZFJCVEluZGV4IGZvciBSRVZFUlNFIHRyYW5zbGl0ZXJhdG9ycworICAgICAgICBpZiAoY29tcG91bmRSQlRJbmRleCA+PSAwICYmIGRpcmVjdGlvbiA9PSBSRVZFUlNFKSB7CisgICAgICAgICAgICBjb21wb3VuZFJCVEluZGV4ID0gY291bnQgLSAxIC0gY29tcG91bmRSQlRJbmRleDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIElmIHRoZSBkaXJlY3Rpb24gaXMgVVRSQU5TX1JFVkVSU0UgdGhlbiB3ZSBtYXkgbmVlZCB0byBmaXggdGhlCisgICAgICAgIC8vIElELgorICAgICAgICBpZiAoZGlyZWN0aW9uID09IFJFVkVSU0UgJiYgZml4UmV2ZXJzZUlEKSB7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgbmV3SUQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBmb3IgKGk9MDsgaTxjb3VudDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKGkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIG5ld0lELmFwcGVuZChJRF9ERUxJTSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG5ld0lELmFwcGVuZCh0cmFuc1tpXS5nZXRJRCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNldElEKG5ld0lELnRvU3RyaW5nKCkpOworICAgICAgICB9CisKKyAgICAgICAgY29tcHV0ZU1heGltdW1Db250ZXh0TGVuZ3RoKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBJRHMgb2YgdGhlIGdpdmVuIGxpc3Qgb2YgdHJhbnNsaXRlcmF0b3JzLCBjb25jYXRlbmF0ZWQKKyAgICAgKiB3aXRoICc7JyBkZWxpbWl0aW5nIHRoZW0uICBFcXVpdmFsZW50IHRvIHRoZSBwZXJsaXNoIGV4cHJlc3Npb24KKyAgICAgKiBqb2luKCc7JywgbWFwKCRfLmdldElEKCksIHRyYW5zbGl0ZXJhdG9ycykuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGpvaW5JRHMoVHJhbnNsaXRlcmF0b3JbXSB0cmFuc2xpdGVyYXRvcnMpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGlkID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8dHJhbnNsaXRlcmF0b3JzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoaSA+IDApIHsKKyAgICAgICAgICAgICAgICBpZC5hcHBlbmQoJzsnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlkLmFwcGVuZCh0cmFuc2xpdGVyYXRvcnNbaV0uZ2V0SUQoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGlkLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIHRyYW5zbGl0ZXJhdG9ycyBpbiB0aGlzIGNoYWluLgorICAgICAqIEByZXR1cm4gbnVtYmVyIG9mIHRyYW5zbGl0ZXJhdG9ycyBpbiB0aGlzIGNoYWluLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0Q291bnQoKSB7CisgICAgICAgIHJldHVybiB0cmFucy5sZW5ndGg7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdHJhbnNsaXRlcmF0b3IgYXQgdGhlIGdpdmVuIGluZGV4IGluIHRoaXMgY2hhaW4uCisgICAgICogQHBhcmFtIGluZGV4IGluZGV4IGludG8gY2hhaW4sIGZyb20gMCB0byA8Y29kZT5nZXRDb3VudCgpIC0gMTwvY29kZT4KKyAgICAgKiBAcmV0dXJuIHRyYW5zbGl0ZXJhdG9yIGF0IHRoZSBnaXZlbiBpbmRleAorICAgICAqLworICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRUcmFuc2xpdGVyYXRvcihpbnQgaW5kZXgpIHsKKyAgICAgICAgcmV0dXJuIHRyYW5zW2luZGV4XTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBcHBlbmQgYyB0byBidWYsIHVubGVzcyBidWYgaXMgZW1wdHkgb3IgYnVmIGFscmVhZHkgZW5kcyBpbiBjLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgX3NtYXJ0QXBwZW5kKFN0cmluZ0J1ZmZlciBidWYsIGNoYXIgYykgeworICAgICAgICBpZiAoYnVmLmxlbmd0aCgpICE9IDAgJiYKKyAgICAgICAgICAgIGJ1Zi5jaGFyQXQoYnVmLmxlbmd0aCgpIC0gMSkgIT0gYykgeworICAgICAgICAgICAgYnVmLmFwcGVuZChjKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlIFRyYW5zbGl0ZXJhdG9yOgorICAgICAqIENyZWF0ZSBhIHJ1bGUgc3RyaW5nIHRoYXQgY2FuIGJlIHBhc3NlZCB0byBjcmVhdGVGcm9tUnVsZXMoKQorICAgICAqIHRvIHJlY3JlYXRlIHRoaXMgdHJhbnNsaXRlcmF0b3IuCisgICAgICogQHBhcmFtIGVzY2FwZVVucHJpbnRhYmxlIGlmIFRSVUUgdGhlbiBjb252ZXJ0IHVucHJpbnRhYmxlCisgICAgICogY2hhcmFjdGVyIHRvIHRoZWlyIGhleCBlc2NhcGUgcmVwcmVzZW50YXRpb25zLCBcXHV4eHh4IG9yCisgICAgICogXFxVeHh4eHh4eHguICBVbnByaW50YWJsZSBjaGFyYWN0ZXJzIGFyZSB0aG9zZSBvdGhlciB0aGFuCisgICAgICogVSswMDBBLCBVKzAwMjAuLlUrMDA3RS4KKyAgICAgKiBAcmV0dXJuIHRoZSBydWxlIHN0cmluZworICAgICAqIEBkZXByZWNhdGVkIFRvIGJlIHJlbW92ZWQgYWZ0ZXIgMjAwMi1zZXAtMzAuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1J1bGVzKGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUpIHsKKyAgICAgICAgLy8gV2UgZG8gTk9UIGNhbGwgdG9SdWxlcygpIG9uIG91ciBjb21wb25lbnQgdHJhbnNsaXRlcmF0b3JzLCBpbgorICAgICAgICAvLyBnZW5lcmFsLiAgSWYgd2UgaGF2ZSBzZXZlcmFsIHJ1bGUtYmFzZWQgdHJhbnNsaXRlcmF0b3JzLCB0aGlzCisgICAgICAgIC8vIHlpZWxkcyBhIGNvbmNhdGVuYXRpb24gb2YgdGhlIHJ1bGVzIC0tIG5vdCB3aGF0IHdlIHdhbnQuICBXZSBkbworICAgICAgICAvLyBoYW5kbGUgY29tcG91bmQgUkJUIHRyYW5zbGl0ZXJhdG9ycyBzcGVjaWFsbHkgLS0gdGhvc2UgZm9yIHdoaWNoCisgICAgICAgIC8vIGNvbXBvdW5kUkJUSW5kZXggPj0gMC4gIEZvciB0aGUgdHJhbnNsaXRlcmF0b3IgYXQgY29tcG91bmRSQlRJbmRleCwKKyAgICAgICAgLy8gd2UgZG8gY2FsbCB0b1J1bGVzKCkgcmVjdXJzaXZlbHkuCisgICAgICAgIFN0cmluZ0J1ZmZlciBydWxlc1NvdXJjZSA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaWYgKGNvbXBvdW5kUkJUSW5kZXggPj0gMCAmJiBnZXRGaWx0ZXIoKSAhPSBudWxsKSB7CisgICAgICAgICAgICAvLyBJZiB3ZSBhcmUgYSBjb21wb3VuZCBSQlQgYW5kIGlmIHdlIGhhdmUgYSBnbG9iYWwKKyAgICAgICAgICAgIC8vIGZpbHRlciwgdGhlbiBlbWl0IGl0IGF0IHRoZSB0b3AuCisgICAgICAgICAgICBydWxlc1NvdXJjZS5hcHBlbmQoIjo6IikuYXBwZW5kKGdldEZpbHRlcigpLnRvUGF0dGVybihlc2NhcGVVbnByaW50YWJsZSkpLmFwcGVuZChJRF9ERUxJTSk7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHRyYW5zLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgcnVsZTsKKyAgICAgICAgICAgIGlmIChpID09IGNvbXBvdW5kUkJUSW5kZXgpIHsKKyAgICAgICAgICAgICAgICBydWxlID0gdHJhbnNbaV0udG9SdWxlcyhlc2NhcGVVbnByaW50YWJsZSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJ1bGUgPSB0cmFuc1tpXS5iYXNlVG9SdWxlcyhlc2NhcGVVbnByaW50YWJsZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBfc21hcnRBcHBlbmQocnVsZXNTb3VyY2UsICdcbicpOworICAgICAgICAgICAgcnVsZXNTb3VyY2UuYXBwZW5kKHJ1bGUpOworICAgICAgICAgICAgX3NtYXJ0QXBwZW5kKHJ1bGVzU291cmNlLCBJRF9ERUxJTSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJ1bGVzU291cmNlLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzZXQgb2YgYWxsIGNoYXJhY3RlcnMgdGhhdCBtYXkgYmUgbW9kaWZpZWQgYnkgdGhpcworICAgICAqIFRyYW5zbGl0ZXJhdG9yLCBpZ25vcmluZyB0aGUgZWZmZWN0IG9mIG91ciBmaWx0ZXIuCisgICAgICovCisgICAgcHJvdGVjdGVkIFVuaWNvZGVTZXQgaGFuZGxlR2V0U291cmNlU2V0KCkgeworICAgICAgICBVbmljb2RlU2V0IHNldCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTx0cmFucy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgc2V0LmFkZEFsbCh0cmFuc1tpXS5nZXRTb3VyY2VTZXQoKSk7CisgICAgICAgICAgICAvLyBUYWtlIHRoZSBleGFtcGxlIG9mIEhpcmFnYW5hLUxhdGluLiAgVGhpcyBpcyByZWFsbHkKKyAgICAgICAgICAgIC8vIEhpcmFnYW5hLUthdGFrYW5hOyBLYXRha2FuYS1MYXRpbi4gIFRoZSBzb3VyY2Ugc2V0IG9mCisgICAgICAgICAgICAvLyB0aGVzZSB0d28gaXMgcm91Z2hseSBbOkhpcmFnYW5hOl0gYW5kIFs6S2F0YWthbmE6XS4KKyAgICAgICAgICAgIC8vIEJ1dCB0aGUgc291cmNlIHNldCBmb3IgdGhlIGVudGlyZSB0cmFuc2xpdGVyYXRvciBpcworICAgICAgICAgICAgLy8gYWN0dWFsbHkgWzpIaXJhZ2FuYTpdIE9OTFkgLS0gdGhhdCBpcywgdGhlIGZpcnN0CisgICAgICAgICAgICAvLyBub24tZW1wdHkgc291cmNlIHNldC4KKworICAgICAgICAgICAgLy8gVGhpcyBpcyBhIGhldXJpc3RpYywgYW5kIG5vdCAxMDAlIHJlbGlhYmxlLgorICAgICAgICAgICAgaWYgKCFzZXQuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNldDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBzZXQgb2YgYWxsIGNoYXJhY3RlcnMgdGhhdCBtYXkgYmUgZ2VuZXJhdGVkIGFzCisgICAgICogcmVwbGFjZW1lbnQgdGV4dCBieSB0aGlzIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlU2V0IGdldFRhcmdldFNldCgpIHsKKyAgICAgICAgVW5pY29kZVNldCBzZXQgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8dHJhbnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBoZXVyaXN0aWMsIGFuZCBub3QgMTAwJSByZWxpYWJsZS4KKyAgICAgICAgICAgIHNldC5hZGRBbGwodHJhbnNbaV0uZ2V0VGFyZ2V0U2V0KCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzZXQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyB7QGxpbmsgVHJhbnNsaXRlcmF0b3IjaGFuZGxlVHJhbnNsaXRlcmF0ZX0uCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlVHJhbnNsaXRlcmF0ZShSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9zaXRpb24gaW5kZXgsIGJvb2xlYW4gaW5jcmVtZW50YWwpIHsKKyAgICAgICAgLyogQ2FsbCBlYWNoIHRyYW5zbGl0ZXJhdG9yIHdpdGggdGhlIHNhbWUgc3RhcnQgdmFsdWUgYW5kCisgICAgICAgICAqIGluaXRpYWwgY3Vyc29yIGluZGV4LCBidXQgd2l0aCB0aGUgbGltaXQgaW5kZXggYXMgbW9kaWZpZWQKKyAgICAgICAgICogYnkgcHJlY2VkaW5nIHRyYW5zbGl0ZXJhdG9ycy4gIFRoZSBjdXJzb3IgaW5kZXggbXVzdCBiZQorICAgICAgICAgKiByZXNldCBmb3IgZWFjaCB0cmFuc2xpdGVyYXRvciB0byBnaXZlIGVhY2ggYSBjaGFuY2UgdG8KKyAgICAgICAgICogdHJhbnNsaXRlcmF0ZSB0aGUgdGV4dC4gIFRoZSBpbml0aWFsIGN1cnNvciBpbmRleCBpcyBrbm93bgorICAgICAgICAgKiB0byBzdGlsbCBwb2ludCB0byB0aGUgc2FtZSBwbGFjZSBhZnRlciBlYWNoIHRyYW5zbGl0ZXJhdG9yCisgICAgICAgICAqIGlzIGNhbGxlZCBiZWNhdXNlIGVhY2ggdHJhbnNsaXRlcmF0b3Igd2lsbCBub3QgY2hhbmdlIHRoZQorICAgICAgICAgKiB0ZXh0IGJldHdlZW4gc3RhcnQgYW5kIHRoZSBpbml0aWFsIHZhbHVlIG9mIGN1cnNvci4KKyAgICAgICAgICoKKyAgICAgICAgICogSU1QT1JUQU5UOiBBZnRlciB0aGUgZmlyc3QgdHJhbnNsaXRlcmF0b3IsIGVhY2ggc3Vic2VxdWVudAorICAgICAgICAgKiB0cmFuc2xpdGVyYXRvciBvbmx5IGdldHMgdG8gdHJhbnNsaXRlcmF0ZSB0ZXh0IGNvbW1pdHRlZCBieQorICAgICAgICAgKiBwcmVjZWRpbmcgdHJhbnNsaXRlcmF0b3JzOyB0aGF0IGlzLCB0aGUgY3Vyc29yIChvdXRwdXQKKyAgICAgICAgICogdmFsdWUpIG9mIHRyYW5zbGl0ZXJhdG9yIGkgYmVjb21lcyB0aGUgbGltaXQgKGlucHV0IHZhbHVlKQorICAgICAgICAgKiBvZiB0cmFuc2xpdGVyYXRvciBpKzEuICBGaW5hbGx5LCB0aGUgb3ZlcmFsbCBsaW1pdCBpcyBmaXhlZAorICAgICAgICAgKiB1cCBiZWZvcmUgd2UgcmV0dXJuLgorICAgICAgICAgKgorICAgICAgICAgKiBBc3N1bXB0aW9ucyB3ZSBtYWtlIGhlcmU6CisgICAgICAgICAqICgxKSBjb250ZXh0U3RhcnQgPD0gc3RhcnQgPD0gbGltaXQgPD0gY29udGV4dExpbWl0IDw9IHRleHQubGVuZ3RoKCkKKyAgICAgICAgICogKDIpIHN0YXJ0IDw9IHN0YXJ0JyA8PSBsaW1pdCcgIDtjdXJzb3IgZG9lc24ndCBtb3ZlIGJhY2sKKyAgICAgICAgICogKDMpIHN0YXJ0IDw9IGxpbWl0JyAgICAgICAgICAgIDt0ZXh0IGJlZm9yZSBjdXJzb3IgdW5jaGFuZ2VkCisgICAgICAgICAqIC0gc3RhcnQnIGlzIHRoZSB2YWx1ZSBvZiBzdGFydCBhZnRlciBjYWxsaW5nIGhhbmRsZUtUCisgICAgICAgICAqIC0gbGltaXQnIGlzIHRoZSB2YWx1ZSBvZiBsaW1pdCBhZnRlciBjYWxsaW5nIGhhbmRsZUtUCisgICAgICAgICAqLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBFeGFtcGxlOiAzIHRyYW5zbGl0ZXJhdG9ycy4gIFRoaXMgZXhhbXBsZSBpbGx1c3RyYXRlcyB0aGUKKyAgICAgICAgICogbWVjaGFuaWNzIHdlIG5lZWQgdG8gaW1wbGVtZW50LiAgQywgUywgYW5kIEwgYXJlIHRoZSBjb250ZXh0U3RhcnQsCisgICAgICAgICAqIHN0YXJ0LCBhbmQgbGltaXQuICBnbCBpcyB0aGUgZ2xvYmFsTGltaXQuICBjb250ZXh0TGltaXQgaXMKKyAgICAgICAgICogZXF1YWwgdG8gbGltaXQgdGhyb3VnaG91dC4KKyAgICAgICAgICoKKyAgICAgICAgICogMS4gaC11LCBjaGFuZ2VzIGhleCB0byBVbmljb2RlCisgICAgICAgICAqCisgICAgICAgICAqICAgIDQgIDcgIGEgIGQgIDAgICAgICA0ICA3ICBhCisgICAgICAgICAqICAgIGFiYy91MDA2MS91ICAgID0+ICBhYmNhL3UgICAgCisgICAgICAgICAqICAgIEMgIFMgICAgICAgTCAgICAgICBDICAgUyBMICAgZ2w9Zi0+YQorICAgICAgICAgKgorICAgICAgICAgKiAyLiB1cHVwLCBjaGFuZ2VzICJ4IiB0byAiWFgiCisgICAgICAgICAqCisgICAgICAgICAqICAgIDQgIDcgIGEgICAgICAgNCAgNyAgYQorICAgICAgICAgKiAgICBhYmNhL3UgICAgPT4gIGFiY0FBL3UgICAgCisgICAgICAgICAqICAgIEMgIFNMICAgICAgICAgQyAgICBTICAgCisgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICBMICAgIGdsPWEtPmIKKyAgICAgICAgICogMy4gdS1oLCBjaGFuZ2VzIFVuaWNvZGUgdG8gaGV4CisgICAgICAgICAqCisgICAgICAgICAqICAgIDQgIDcgIGEgICAgICAgIDQgIDcgIGEgIGQgIDAgIDMKKyAgICAgICAgICogICAgYWJjQUEvdSAgICA9PiAgYWJjL3UwMDQxL3UwMDQxL3UgICAgCisgICAgICAgICAqICAgIEMgIFMgTCAgICAgICAgIEMgICAgICAgICAgICAgIFMKKyAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTCAgIGdsPWItPjE1CisgICAgICAgICAqIDQuIHJldHVybgorICAgICAgICAgKgorICAgICAgICAgKiAgICA0ICA3ICBhICBkICAwICAzCisgICAgICAgICAqICAgIGFiYy91MDA0MS91MDA0MS91ICAgIAorICAgICAgICAgKiAgICBDIFMgTAorICAgICAgICAgKi8KKworICAgICAgICBpZiAodHJhbnMubGVuZ3RoIDwgMSkgeworICAgICAgICAgICAgaW5kZXguc3RhcnQgPSBpbmRleC5saW1pdDsKKyAgICAgICAgICAgIHJldHVybjsgLy8gU2hvcnQgY2lyY3VpdCBmb3IgZW1wdHkgY29tcG91bmQgdHJhbnNsaXRlcmF0b3JzCisgICAgICAgIH0KKworICAgICAgICAvLyBjb21wb3VuZExpbWl0IGlzIHRoZSBsaW1pdCB2YWx1ZSBmb3IgdGhlIGVudGlyZSBjb21wb3VuZAorICAgICAgICAvLyBvcGVyYXRpb24uICBXZSBvdmVyd3JpdGUgaW5kZXgubGltaXQgd2l0aCB0aGUgcHJldmlvdXMKKyAgICAgICAgLy8gaW5kZXguc3RhcnQuICBBZnRlciBlYWNoIHRyYW5zbGl0ZXJhdGlvbiwgd2UgdXBkYXRlCisgICAgICAgIC8vIGNvbXBvdW5kTGltaXQgZm9yIGluc2VydGlvbnMgb3IgZGVsZXRpb25zIHRoYXQgaGF2ZSBoYXBwZW5lZC4KKyAgICAgICAgaW50IGNvbXBvdW5kTGltaXQgPSBpbmRleC5saW1pdDsKKworICAgICAgICAvLyBjb21wb3VuZFN0YXJ0IGlzIHRoZSBzdGFydCBmb3IgdGhlIGVudGlyZSBjb21wb3VuZAorICAgICAgICAvLyBvcGVyYXRpb24uCisgICAgICAgIGludCBjb21wb3VuZFN0YXJ0ID0gaW5kZXguc3RhcnQ7CisKKyAgICAgICAgaW50IGRlbHRhID0gMDsgLy8gZGVsdGEgaW4gbGVuZ3RoCisKKyAgICAgICAgU3RyaW5nQnVmZmVyIGxvZyA9IG51bGw7CisgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgbG9nID0gbmV3IFN0cmluZ0J1ZmZlcigiQ29tcG91bmRUcmFuc2xpdGVyYXRvcnsiICsgZ2V0SUQoKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbmNyZW1lbnRhbCA/ICJ9aTogSU49IiA6ICJ9OiBJTj0iKSk7CisgICAgICAgICAgICBVdGlsaXR5LmZvcm1hdElucHV0KGxvZywgdGV4dCwgaW5kZXgpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKFV0aWxpdHkuZXNjYXBlKGxvZy50b1N0cmluZygpKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBHaXZlIGVhY2ggdHJhbnNsaXRlcmF0b3IgYSBjcmFjayBhdCB0aGUgcnVuIG9mIGNoYXJhY3RlcnMuCisgICAgICAgIC8vIFNlZSBjb21tZW50cyBhdCB0aGUgdG9wIG9mIHRoZSBtZXRob2QgZm9yIG1vcmUgZGV0YWlsLgorICAgICAgICBmb3IgKGludCBpPTA7IGk8dHJhbnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGluZGV4LnN0YXJ0ID0gY29tcG91bmRTdGFydDsgLy8gUmVzZXQgc3RhcnQKKyAgICAgICAgICAgIGludCBsaW1pdCA9IGluZGV4LmxpbWl0OworCisgICAgICAgICAgICBpZiAoaW5kZXguc3RhcnQgPT0gaW5kZXgubGltaXQpIHsKKyAgICAgICAgICAgICAgICAvLyBTaG9ydCBjaXJjdWl0IGZvciBlbXB0eSByYW5nZQorICAgICAgICAgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvbXBvdW5kVHJhbnNsaXRlcmF0b3JbIiArIGkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi4uIiArICh0cmFucy5sZW5ndGgtMSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGluY3JlbWVudGFsID8gIl1pOiAiIDogIl06ICIpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHkuZm9ybWF0SW5wdXQodGV4dCwgaW5kZXgpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgKE5PVEhJTkcgVE8gRE8pIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgICAgICBsb2cuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgIGxvZy5hcHBlbmQoIkNvbXBvdW5kVHJhbnNsaXRlcmF0b3JbIiArIGkgKyAiPSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNbaV0uZ2V0SUQoKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5jcmVtZW50YWwgPyAiXWk6ICIgOiAiXTogIikpOworICAgICAgICAgICAgICAgIFV0aWxpdHkuZm9ybWF0SW5wdXQobG9nLCB0ZXh0LCBpbmRleCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRyYW5zW2ldLmZpbHRlcmVkVHJhbnNsaXRlcmF0ZSh0ZXh0LCBpbmRleCwgaW5jcmVtZW50YWwpOworCisgICAgICAgICAgICAvLyBJbiBhIHByb3Blcmx5IHdyaXR0ZW4gdHJhbnNsaXRlcmF0b3IsIHN0YXJ0ID09IGxpbWl0IGFmdGVyCisgICAgICAgICAgICAvLyBoYW5kbGVUcmFuc2xpdGVyYXRlKCkgcmV0dXJucyB3aGVuIGluY3JlbWVudGFsIGlzIGZhbHNlLgorICAgICAgICAgICAgLy8gQ2F0Y2ggY2FzZXMgd2hlcmUgdGhlIHN1YmNsYXNzIGRvZXNuJ3QgZG8gdGhpcywgYW5kIHRocm93CisgICAgICAgICAgICAvLyBhbiBleGNlcHRpb24uICAoSnVzdCBwaW5uaW5nIHN0YXJ0IHRvIGxpbWl0IGlzIGEgYmFkIGlkZWEsCisgICAgICAgICAgICAvLyBiZWNhdXNlIHdoYXQncyBwcm9iYWJseSBoYXBwZW5pbmcgaXMgdGhhdCB0aGUgc3ViY2xhc3MKKyAgICAgICAgICAgIC8vIGlzbid0IHRyYW5zbGl0ZXJhdGluZyBhbGwgdGhlIHdheSB0byB0aGUgZW5kLCBhbmQgaXQgc2hvdWxkCisgICAgICAgICAgICAvLyBpbiBub24taW5jcmVtZW50YWwgbW9kZS4pCisgICAgICAgICAgICBpZiAoIWluY3JlbWVudGFsICYmIGluZGV4LnN0YXJ0ICE9IGluZGV4LmxpbWl0KSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIkVSUk9SOiBJbmNvbXBsZXRlIG5vbi1pbmNyZW1lbnRhbCB0cmFuc2xpdGVyYXRpb24gYnkgIiArIHRyYW5zW2ldLmdldElEKCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgICAgICBsb2cuYXBwZW5kKCIgPT4gIik7CisgICAgICAgICAgICAgICAgVXRpbGl0eS5mb3JtYXRJbnB1dChsb2csIHRleHQsIGluZGV4KTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oVXRpbGl0eS5lc2NhcGUobG9nLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gQ3VtdWxhdGl2ZSBkZWx0YSBmb3IgaW5zZXJ0aW9ucy9kZWxldGlvbnMKKyAgICAgICAgICAgIGRlbHRhICs9IGluZGV4LmxpbWl0IC0gbGltaXQ7CisKKyAgICAgICAgICAgIGlmIChpbmNyZW1lbnRhbCkgeworICAgICAgICAgICAgICAgIC8vIEluIHRoZSBpbmNyZW1lbnRhbCBjYXNlLCBvbmx5IGFsbG93IHN1YnNlcXVlbnQKKyAgICAgICAgICAgICAgICAvLyB0cmFuc2xpdGVyYXRvcnMgdG8gbW9kaWZ5IHdoYXQgaGFzIGFscmVhZHkgYmVlbgorICAgICAgICAgICAgICAgIC8vIGNvbXBsZXRlbHkgcHJvY2Vzc2VkIGJ5IHByaW9yIHRyYW5zbGl0ZXJhdG9ycy4gIEluIHRoZQorICAgICAgICAgICAgICAgIC8vIG5vbi1pbmNybWVudGFsIGNhc2UsIGFsbG93IGVhY2ggdHJhbnNsaXRlcmF0b3IgdG8KKyAgICAgICAgICAgICAgICAvLyBwcm9jZXNzIHRoZSBlbnRpcmUgdGV4dC4KKyAgICAgICAgICAgICAgICBpbmRleC5saW1pdCA9IGluZGV4LnN0YXJ0OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgY29tcG91bmRMaW1pdCArPSBkZWx0YTsKKworICAgICAgICAvLyBTdGFydCBpcyBnb29kIHdoZXJlIGl0IGlzIC0tIHdoZXJlIHRoZSBsYXN0IHRyYW5zbGl0ZXJhdG9yIGxlZnQKKyAgICAgICAgLy8gaXQuICBMaW1pdCBuZWVkcyB0byBiZSBwdXQgYmFjayB3aGVyZSBpdCB3YXMsIG1vZHVsbworICAgICAgICAvLyBhZGp1c3RtZW50cyBmb3IgZGVsZXRpb25zL2luc2VydGlvbnMuCisgICAgICAgIGluZGV4LmxpbWl0ID0gY29tcG91bmRMaW1pdDsKKworICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgIGxvZy5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICBsb2cuYXBwZW5kKCJDb21wb3VuZFRyYW5zbGl0ZXJhdG9yeyIgKyBnZXRJRCgpICsKKyAgICAgICAgICAgICAgICAgICAgICAgKGluY3JlbWVudGFsID8gIn1pOiBPVVQ9IiA6ICJ9OiBPVVQ9IikpOworICAgICAgICAgICAgVXRpbGl0eS5mb3JtYXRJbnB1dChsb2csIHRleHQsIGluZGV4KTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihVdGlsaXR5LmVzY2FwZShsb2cudG9TdHJpbmcoKSkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcHV0ZSBhbmQgc2V0IHRoZSBsZW5ndGggb2YgdGhlIGxvbmdlc3QgY29udGV4dCByZXF1aXJlZCBieSB0aGlzIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqIFRoaXMgaXMgPGVtPnByZWNlZGluZzwvZW0+IGNvbnRleHQuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGNvbXB1dGVNYXhpbXVtQ29udGV4dExlbmd0aCgpIHsKKyAgICAgICAgaW50IG1heCA9IDA7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTx0cmFucy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaW50IGxlbiA9IHRyYW5zW2ldLmdldE1heGltdW1Db250ZXh0TGVuZ3RoKCk7CisgICAgICAgICAgICBpZiAobGVuID4gbWF4KSB7CisgICAgICAgICAgICAgICAgbWF4ID0gbGVuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHNldE1heGltdW1Db250ZXh0TGVuZ3RoKG1heCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGF0ZUZvcm1hdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGF0ZUZvcm1hdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjkyYzM0MjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9EYXRlRm9ybWF0LmphdmEKQEAgLTAsMCArMSw4MzAgQEAKKy8qCisqICAgQ29weXJpZ2h0IChDKSAxOTk2LTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlRGF0YTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKKworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5Gb3JtYXQ7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGU7CisKKy8qKgorICogRGF0ZUZvcm1hdCBpcyBhbiBhYnN0cmFjdCBjbGFzcyBmb3IgZGF0ZS90aW1lIGZvcm1hdHRpbmcgc3ViY2xhc3NlcyB3aGljaAorICogZm9ybWF0cyBhbmQgcGFyc2VzIGRhdGVzIG9yIHRpbWUgaW4gYSBsYW5ndWFnZS1pbmRlcGVuZGVudCBtYW5uZXIuCisgKiBUaGUgZGF0ZS90aW1lIGZvcm1hdHRpbmcgc3ViY2xhc3MsIHN1Y2ggYXMgU2ltcGxlRGF0ZUZvcm1hdCwgYWxsb3dzIGZvcgorICogZm9ybWF0dGluZyAoaS5lLiwgZGF0ZSAtPiB0ZXh0KSwgcGFyc2luZyAodGV4dCAtPiBkYXRlKSwgYW5kCisgKiBub3JtYWxpemF0aW9uLiAgVGhlIGRhdGUgaXMgcmVwcmVzZW50ZWQgYXMgYSA8Y29kZT5EYXRlPC9jb2RlPiBvYmplY3Qgb3IKKyAqIGFzIHRoZSBtaWxsaXNlY29uZHMgc2luY2UgSmFudWFyeSAxLCAxOTcwLCAwMDowMDowMCBHTVQuCisgKgorICogPHA+RGF0ZUZvcm1hdCBwcm92aWRlcyBtYW55IGNsYXNzIG1ldGhvZHMgZm9yIG9idGFpbmluZyBkZWZhdWx0IGRhdGUvdGltZQorICogZm9ybWF0dGVycyBiYXNlZCBvbiB0aGUgZGVmYXVsdCBvciBhIGdpdmVuIGxvYWNsZSBhbmQgYSBudW1iZXIgb2YgZm9ybWF0dGluZworICogc3R5bGVzLiBUaGUgZm9ybWF0dGluZyBzdHlsZXMgaW5jbHVkZSBGVUxMLCBMT05HLCBNRURJVU0sIGFuZCBTSE9SVC4gTW9yZQorICogZGV0YWlsIGFuZCBleGFtcGxlcyBvZiB1c2luZyB0aGVzZSBzdHlsZXMgYXJlIHByb3ZpZGVkIGluIHRoZSBtZXRob2QKKyAqIGRlc2NyaXB0aW9ucy4KKyAqCisgKiA8cD5EYXRlRm9ybWF0IGhlbHBzIHlvdSB0byBmb3JtYXQgYW5kIHBhcnNlIGRhdGVzIGZvciBhbnkgbG9jYWxlLgorICogWW91ciBjb2RlIGNhbiBiZSBjb21wbGV0ZWx5IGluZGVwZW5kZW50IG9mIHRoZSBsb2NhbGUgY29udmVudGlvbnMgZm9yCisgKiBtb250aHMsIGRheXMgb2YgdGhlIHdlZWssIG9yIGV2ZW4gdGhlIGNhbGVuZGFyIGZvcm1hdDogbHVuYXIgdnMuIHNvbGFyLgorICoKKyAqIDxwPlRvIGZvcm1hdCBhIGRhdGUgZm9yIHRoZSBjdXJyZW50IExvY2FsZSwgdXNlIG9uZSBvZiB0aGUKKyAqIHN0YXRpYyBmYWN0b3J5IG1ldGhvZHM6CisgKiA8cHJlPgorICogIG15U3RyaW5nID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoKS5mb3JtYXQobXlEYXRlKTsKKyAqIDwvcHJlPgorICogPHA+SWYgeW91IGFyZSBmb3JtYXR0aW5nIG11bHRpcGxlIG51bWJlcnMsIGl0IGlzCisgKiBtb3JlIGVmZmljaWVudCB0byBnZXQgdGhlIGZvcm1hdCBhbmQgdXNlIGl0IG11bHRpcGxlIHRpbWVzIHNvIHRoYXQKKyAqIHRoZSBzeXN0ZW0gZG9lc24ndCBoYXZlIHRvIGZldGNoIHRoZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbG9jYWwKKyAqIGxhbmd1YWdlIGFuZCBjb3VudHJ5IGNvbnZlbnRpb25zIG11bHRpcGxlIHRpbWVzLgorICogPHByZT4KKyAqICBEYXRlRm9ybWF0IGRmID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoKTsKKyAqICBmb3IgKGludCBpID0gMDsgaSA8IGEubGVuZ3RoOyArK2kpIHsKKyAqICAgIG91dHB1dC5wcmludGxuKGRmLmZvcm1hdChteURhdGVbaV0pICsgIjsgIik7CisgKiAgfQorICogPC9wcmU+CisgKiA8cD5UbyBmb3JtYXQgYSBudW1iZXIgZm9yIGEgZGlmZmVyZW50IExvY2FsZSwgc3BlY2lmeSBpdCBpbiB0aGUKKyAqIGNhbGwgdG8gZ2V0RGF0ZUluc3RhbmNlKCkuCisgKiA8cHJlPgorICogIERhdGVGb3JtYXQgZGYgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LkxPTkcsIExvY2FsZS5GUkFOQ0UpOworICogPC9wcmU+CisgKiA8cD5Zb3UgY2FuIHVzZSBhIERhdGVGb3JtYXQgdG8gcGFyc2UgYWxzby4KKyAqIDxwcmU+CisgKiAgbXlEYXRlID0gZGYucGFyc2UobXlTdHJpbmcpOworICogPC9wcmU+CisgKiA8cD5Vc2UgZ2V0RGF0ZUluc3RhbmNlIHRvIGdldCB0aGUgbm9ybWFsIGRhdGUgZm9ybWF0IGZvciB0aGF0IGNvdW50cnkuCisgKiBUaGVyZSBhcmUgb3RoZXIgc3RhdGljIGZhY3RvcnkgbWV0aG9kcyBhdmFpbGFibGUuCisgKiBVc2UgZ2V0VGltZUluc3RhbmNlIHRvIGdldCB0aGUgdGltZSBmb3JtYXQgZm9yIHRoYXQgY291bnRyeS4KKyAqIFVzZSBnZXREYXRlVGltZUluc3RhbmNlIHRvIGdldCBhIGRhdGUgYW5kIHRpbWUgZm9ybWF0LiBZb3UgY2FuIHBhc3MgaW4gCisgKiBkaWZmZXJlbnQgb3B0aW9ucyB0byB0aGVzZSBmYWN0b3J5IG1ldGhvZHMgdG8gY29udHJvbCB0aGUgbGVuZ3RoIG9mIHRoZQorICogcmVzdWx0OyBmcm9tIFNIT1JUIHRvIE1FRElVTSB0byBMT05HIHRvIEZVTEwuIFRoZSBleGFjdCByZXN1bHQgZGVwZW5kcworICogb24gdGhlIGxvY2FsZSwgYnV0IGdlbmVyYWxseToKKyAqIDx1bD48bGk+U0hPUlQgaXMgY29tcGxldGVseSBudW1lcmljLCBzdWNoIGFzIDEyLjEzLjUyIG9yIDM6MzBwbQorICogPGxpPk1FRElVTSBpcyBsb25nZXIsIHN1Y2ggYXMgSmFuIDEyLCAxOTUyCisgKiA8bGk+TE9ORyBpcyBsb25nZXIsIHN1Y2ggYXMgSmFudWFyeSAxMiwgMTk1MiBvciAzOjMwOjMycG0KKyAqIDxsaT5GVUxMIGlzIHByZXR0eSBjb21wbGV0ZWx5IHNwZWNpZmllZCwgc3VjaCBhcworICogVHVlc2RheSwgQXByaWwgMTIsIDE5NTIgQUQgb3IgMzozMDo0MnBtIFBTVC4KKyAqIDwvdWw+CisgKgorICogPHA+WW91IGNhbiBhbHNvIHNldCB0aGUgdGltZSB6b25lIG9uIHRoZSBmb3JtYXQgaWYgeW91IHdpc2guCisgKiBJZiB5b3Ugd2FudCBldmVuIG1vcmUgY29udHJvbCBvdmVyIHRoZSBmb3JtYXQgb3IgcGFyc2luZywKKyAqIChvciB3YW50IHRvIGdpdmUgeW91ciB1c2VycyBtb3JlIGNvbnRyb2wpLAorICogeW91IGNhbiB0cnkgY2FzdGluZyB0aGUgRGF0ZUZvcm1hdCB5b3UgZ2V0IGZyb20gdGhlIGZhY3RvcnkgbWV0aG9kcworICogdG8gYSBTaW1wbGVEYXRlRm9ybWF0LiBUaGlzIHdpbGwgd29yayBmb3IgdGhlIG1ham9yaXR5CisgKiBvZiBjb3VudHJpZXM7IGp1c3QgcmVtZW1iZXIgdG8gcHV0IGl0IGluIGEgdHJ5IGJsb2NrIGluIGNhc2UgeW91CisgKiBlbmNvdW50ZXIgYW4gdW51c3VhbCBvbmUuCisgKgorICogPHA+WW91IGNhbiBhbHNvIHVzZSBmb3JtcyBvZiB0aGUgcGFyc2UgYW5kIGZvcm1hdCBtZXRob2RzIHdpdGgKKyAqIFBhcnNlUG9zaXRpb24gYW5kIEZpZWxkUG9zaXRpb24gdG8KKyAqIGFsbG93IHlvdSB0bworICogPHVsPjxsaT5wcm9ncmVzc2l2ZWx5IHBhcnNlIHRocm91Z2ggcGllY2VzIG9mIGEgc3RyaW5nLgorICogPGxpPmFsaWduIGFueSBwYXJ0aWN1bGFyIGZpZWxkLCBvciBmaW5kIG91dCB3aGVyZSBpdCBpcyBmb3Igc2VsZWN0aW9uCisgKiBvbiB0aGUgc2NyZWVuLgorICogPC91bD4KKyAqCisgKiA8aDQ+U3luY2hyb25pemF0aW9uPC9oND4KKyAqCisgKiBEYXRlIGZvcm1hdHMgYXJlIG5vdCBzeW5jaHJvbml6ZWQuIEl0IGlzIHJlY29tbWVuZGVkIHRvIGNyZWF0ZSBzZXBhcmF0ZSAKKyAqIGZvcm1hdCBpbnN0YW5jZXMgZm9yIGVhY2ggdGhyZWFkLiBJZiBtdWx0aXBsZSB0aHJlYWRzIGFjY2VzcyBhIGZvcm1hdCAKKyAqIGNvbmN1cnJlbnRseSwgaXQgbXVzdCBiZSBzeW5jaHJvbml6ZWQgZXh0ZXJuYWxseS4gCisgKgorICogQHNlZSAgICAgICAgICBGb3JtYXQKKyAqIEBzZWUgICAgICAgICAgTnVtYmVyRm9ybWF0CisgKiBAc2VlICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQKKyAqIEBzZWUgICAgICAgICAgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcgorICogQHNlZSAgICAgICAgICBjb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyCisgKiBAc2VlICAgICAgICAgIGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUKKyAqIEB2ZXJzaW9uICAgICAgMS4zNyAxMS8wMi85OQorICogQGF1dGhvciAgICAgICBNYXJrIERhdmlzLCBDaGVuLUxpZWggSHVhbmcsIEFsYW4gTGl1CisgKi8KK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBEYXRlRm9ybWF0IGV4dGVuZHMgRm9ybWF0IHsKKworICAgIC8qKgorICAgICAqIFRoZSBjYWxlbmRhciB0aGF0IDxjb2RlPkRhdGVGb3JtYXQ8L2NvZGU+IHVzZXMgdG8gcHJvZHVjZSB0aGUgdGltZSBmaWVsZAorICAgICAqIHZhbHVlcyBuZWVkZWQgdG8gaW1wbGVtZW50IGRhdGUgYW5kIHRpbWUgZm9ybWF0dGluZy4gIFN1YmNsYXNzZXMgc2hvdWxkCisgICAgICogaW5pdGlhbGl6ZSB0aGlzIHRvIGEgY2FsZW5kYXIgYXBwcm9wcmlhdGUgZm9yIHRoZSBsb2NhbGUgYXNzb2NpYXRlZCB3aXRoCisgICAgICogdGhpcyA8Y29kZT5EYXRlRm9ybWF0PC9jb2RlPi4KKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgcHJvdGVjdGVkIENhbGVuZGFyIGNhbGVuZGFyOworCisgICAgLyoqCisgICAgICogVGhlIG51bWJlciBmb3JtYXR0ZXIgdGhhdCA8Y29kZT5EYXRlRm9ybWF0PC9jb2RlPiB1c2VzIHRvIGZvcm1hdCBudW1iZXJzCisgICAgICogaW4gZGF0ZXMgYW5kIHRpbWVzLiAgU3ViY2xhc3NlcyBzaG91bGQgaW5pdGlhbGl6ZSB0aGlzIHRvIGEgbnVtYmVyIGZvcm1hdAorICAgICAqIGFwcHJvcHJpYXRlIGZvciB0aGUgbG9jYWxlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIDxjb2RlPkRhdGVGb3JtYXQ8L2NvZGU+LgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgTnVtYmVyRm9ybWF0IG51bWJlckZvcm1hdDsKKworICAgIC8qKgorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgRVJBIGZpZWxkIGFsaWdubWVudC4KKyAgICAgKiBVc2VkIGluIEZpZWxkUG9zaXRpb24gb2YgZGF0ZS90aW1lIGZvcm1hdHRpbmcuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgRVJBX0ZJRUxEID0gMDsKKyAgICAvKioKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIFlFQVIgZmllbGQgYWxpZ25tZW50LgorICAgICAqIFVzZWQgaW4gRmllbGRQb3NpdGlvbiBvZiBkYXRlL3RpbWUgZm9ybWF0dGluZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBZRUFSX0ZJRUxEID0gMTsKKyAgICAvKioKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIE1PTlRIIGZpZWxkIGFsaWdubWVudC4KKyAgICAgKiBVc2VkIGluIEZpZWxkUG9zaXRpb24gb2YgZGF0ZS90aW1lIGZvcm1hdHRpbmcuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTU9OVEhfRklFTEQgPSAyOworICAgIC8qKgorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgREFURSBmaWVsZCBhbGlnbm1lbnQuCisgICAgICogVXNlZCBpbiBGaWVsZFBvc2l0aW9uIG9mIGRhdGUvdGltZSBmb3JtYXR0aW5nLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERBVEVfRklFTEQgPSAzOworICAgIC8qKgorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3Igb25lLWJhc2VkIEhPVVJfT0ZfREFZIGZpZWxkIGFsaWdubWVudC4KKyAgICAgKiBVc2VkIGluIEZpZWxkUG9zaXRpb24gb2YgZGF0ZS90aW1lIGZvcm1hdHRpbmcuCisgICAgICogSE9VUl9PRl9EQVkxX0ZJRUxEIGlzIHVzZWQgZm9yIHRoZSBvbmUtYmFzZWQgMjQtaG91ciBjbG9jay4KKyAgICAgKiBGb3IgZXhhbXBsZSwgMjM6NTkgKyAwMTowMCByZXN1bHRzIGluIDI0OjU5LgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEhPVVJfT0ZfREFZMV9GSUVMRCA9IDQ7CisgICAgLyoqCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciB6ZXJvLWJhc2VkIEhPVVJfT0ZfREFZIGZpZWxkIGFsaWdubWVudC4KKyAgICAgKiBVc2VkIGluIEZpZWxkUG9zaXRpb24gb2YgZGF0ZS90aW1lIGZvcm1hdHRpbmcuCisgICAgICogSE9VUl9PRl9EQVkwX0ZJRUxEIGlzIHVzZWQgZm9yIHRoZSB6ZXJvLWJhc2VkIDI0LWhvdXIgY2xvY2suCisgICAgICogRm9yIGV4YW1wbGUsIDIzOjU5ICsgMDE6MDAgcmVzdWx0cyBpbiAwMDo1OS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBIT1VSX09GX0RBWTBfRklFTEQgPSA1OworICAgIC8qKgorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgTUlOVVRFIGZpZWxkIGFsaWdubWVudC4KKyAgICAgKiBVc2VkIGluIEZpZWxkUG9zaXRpb24gb2YgZGF0ZS90aW1lIGZvcm1hdHRpbmcuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTUlOVVRFX0ZJRUxEID0gNjsKKyAgICAvKioKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIFNFQ09ORCBmaWVsZCBhbGlnbm1lbnQuCisgICAgICogVXNlZCBpbiBGaWVsZFBvc2l0aW9uIG9mIGRhdGUvdGltZSBmb3JtYXR0aW5nLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFNFQ09ORF9GSUVMRCA9IDc7CisgICAgLyoqCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBNSUxMSVNFQ09ORCBmaWVsZCBhbGlnbm1lbnQuCisgICAgICogVXNlZCBpbiBGaWVsZFBvc2l0aW9uIG9mIGRhdGUvdGltZSBmb3JtYXR0aW5nLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE1JTExJU0VDT05EX0ZJRUxEID0gODsKKyAgICAvKioKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIERBWV9PRl9XRUVLIGZpZWxkIGFsaWdubWVudC4KKyAgICAgKiBVc2VkIGluIEZpZWxkUG9zaXRpb24gb2YgZGF0ZS90aW1lIGZvcm1hdHRpbmcuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREFZX09GX1dFRUtfRklFTEQgPSA5OworICAgIC8qKgorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgREFZX09GX1lFQVIgZmllbGQgYWxpZ25tZW50LgorICAgICAqIFVzZWQgaW4gRmllbGRQb3NpdGlvbiBvZiBkYXRlL3RpbWUgZm9ybWF0dGluZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBEQVlfT0ZfWUVBUl9GSUVMRCA9IDEwOworICAgIC8qKgorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgREFZX09GX1dFRUtfSU5fTU9OVEggZmllbGQgYWxpZ25tZW50LgorICAgICAqIFVzZWQgaW4gRmllbGRQb3NpdGlvbiBvZiBkYXRlL3RpbWUgZm9ybWF0dGluZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBEQVlfT0ZfV0VFS19JTl9NT05USF9GSUVMRCA9IDExOworICAgIC8qKgorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgV0VFS19PRl9ZRUFSIGZpZWxkIGFsaWdubWVudC4KKyAgICAgKiBVc2VkIGluIEZpZWxkUG9zaXRpb24gb2YgZGF0ZS90aW1lIGZvcm1hdHRpbmcuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgV0VFS19PRl9ZRUFSX0ZJRUxEID0gMTI7CisgICAgLyoqCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBXRUVLX09GX01PTlRIIGZpZWxkIGFsaWdubWVudC4KKyAgICAgKiBVc2VkIGluIEZpZWxkUG9zaXRpb24gb2YgZGF0ZS90aW1lIGZvcm1hdHRpbmcuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgV0VFS19PRl9NT05USF9GSUVMRCA9IDEzOworICAgIC8qKgorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgQU1fUE0gZmllbGQgYWxpZ25tZW50LgorICAgICAqIFVzZWQgaW4gRmllbGRQb3NpdGlvbiBvZiBkYXRlL3RpbWUgZm9ybWF0dGluZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBBTV9QTV9GSUVMRCA9IDE0OworICAgIC8qKgorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3Igb25lLWJhc2VkIEhPVVIgZmllbGQgYWxpZ25tZW50LgorICAgICAqIFVzZWQgaW4gRmllbGRQb3NpdGlvbiBvZiBkYXRlL3RpbWUgZm9ybWF0dGluZy4KKyAgICAgKiBIT1VSMV9GSUVMRCBpcyB1c2VkIGZvciB0aGUgb25lLWJhc2VkIDEyLWhvdXIgY2xvY2suCisgICAgICogRm9yIGV4YW1wbGUsIDExOjMwIFBNICsgMSBob3VyIHJlc3VsdHMgaW4gMTI6MzAgQU0uCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSE9VUjFfRklFTEQgPSAxNTsKKyAgICAvKioKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIHplcm8tYmFzZWQgSE9VUiBmaWVsZCBhbGlnbm1lbnQuCisgICAgICogVXNlZCBpbiBGaWVsZFBvc2l0aW9uIG9mIGRhdGUvdGltZSBmb3JtYXR0aW5nLgorICAgICAqIEhPVVIwX0ZJRUxEIGlzIHVzZWQgZm9yIHRoZSB6ZXJvLWJhc2VkIDEyLWhvdXIgY2xvY2suCisgICAgICogRm9yIGV4YW1wbGUsIDExOjMwIFBNICsgMSBob3VyIHJlc3VsdHMgaW4gMDA6MzAgQU0uCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSE9VUjBfRklFTEQgPSAxNjsKKyAgICAvKioKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIFRJTUVaT05FIGZpZWxkIGFsaWdubWVudC4KKyAgICAgKiBVc2VkIGluIEZpZWxkUG9zaXRpb24gb2YgZGF0ZS90aW1lIGZvcm1hdHRpbmcuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgVElNRVpPTkVfRklFTEQgPSAxNzsKKworICAgIC8vIFByb2NsYWltIHNlcmlhbCBjb21wYXRpYmlsaXR5IHdpdGggMS4xIEZDUworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDcyMTgzMjIzMDY2NDk5NTM3ODhMOworCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIEZvcm1hdC4KKyAgICAgKiBGb3JtYXRzIGEgdGltZSBvYmplY3QgaW50byBhIHRpbWUgc3RyaW5nLiBFeGFtcGxlcyBvZiB0aW1lIG9iamVjdHMKKyAgICAgKiBhcmUgYSB0aW1lIHZhbHVlIGV4cHJlc3NlZCBpbiBtaWxsaXNlY29uZHMgYW5kIGEgRGF0ZSBvYmplY3QuCisgICAgICogQHBhcmFtIG9iaiBtdXN0IGJlIGEgTnVtYmVyIG9yIGEgRGF0ZSBvciBhIENhbGVuZGFyLgorICAgICAqIEBwYXJhbSB0b0FwcGVuZFRvIHRoZSBzdHJpbmcgYnVmZmVyIGZvciB0aGUgcmV0dXJuaW5nIHRpbWUgc3RyaW5nLgorICAgICAqIEByZXR1cm4gdGhlIGZvcm1hdHRlZCB0aW1lIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gZmllbGRQb3NpdGlvbiBrZWVwcyB0cmFjayBvZiB0aGUgcG9zaXRpb24gb2YgdGhlIGZpZWxkCisgICAgICogd2l0aGluIHRoZSByZXR1cm5lZCBzdHJpbmcuCisgICAgICogT24gaW5wdXQ6IGFuIGFsaWdubWVudCBmaWVsZCwKKyAgICAgKiBpZiBkZXNpcmVkLiBPbiBvdXRwdXQ6IHRoZSBvZmZzZXRzIG9mIHRoZSBhbGlnbm1lbnQgZmllbGQuIEZvcgorICAgICAqIGV4YW1wbGUsIGdpdmVuIGEgdGltZSB0ZXh0ICIxOTk2LjA3LjEwIEFEIGF0IDE1OjA4OjU2IFBEVCIsCisgICAgICogaWYgdGhlIGdpdmVuIGZpZWxkUG9zaXRpb24gaXMgRGF0ZUZvcm1hdC5ZRUFSX0ZJRUxELCB0aGUKKyAgICAgKiBiZWdpbiBpbmRleCBhbmQgZW5kIGluZGV4IG9mIGZpZWxkUG9zaXRpb24gd2lsbCBiZSBzZXQgdG8KKyAgICAgKiAwIGFuZCA0LCByZXNwZWN0aXZlbHkuCisgICAgICogTm90aWNlIHRoYXQgaWYgdGhlIHNhbWUgdGltZSBmaWVsZCBhcHBlYXJzCisgICAgICogbW9yZSB0aGFuIG9uY2UgaW4gYSBwYXR0ZXJuLCB0aGUgZmllbGRQb3NpdGlvbiB3aWxsIGJlIHNldCBmb3IgdGhlIGZpcnN0CisgICAgICogb2NjdXJlbmNlIG9mIHRoYXQgdGltZSBmaWVsZC4gRm9yIGluc3RhbmNlLCBmb3JtYXR0aW5nIGEgRGF0ZSB0bworICAgICAqIHRoZSB0aW1lIHN0cmluZyAiMSBQTSBQRFQgKFBhY2lmaWMgRGF5bGlnaHQgVGltZSkiIHVzaW5nIHRoZSBwYXR0ZXJuCisgICAgICogImggYSB6ICh6enp6KSIgYW5kIHRoZSBhbGlnbm1lbnQgZmllbGQgRGF0ZUZvcm1hdC5USU1FWk9ORV9GSUVMRCwKKyAgICAgKiB0aGUgYmVnaW4gaW5kZXggYW5kIGVuZCBpbmRleCBvZiBmaWVsZFBvc2l0aW9uIHdpbGwgYmUgc2V0IHRvCisgICAgICogNSBhbmQgOCwgcmVzcGVjdGl2ZWx5LCBmb3IgdGhlIGZpcnN0IG9jY3VyZW5jZSBvZiB0aGUgdGltZXpvbmUKKyAgICAgKiBwYXR0ZXJuIGNoYXJhY3RlciAneicuCisgICAgICogQHNlZSBqYXZhLnRleHQuRm9ybWF0CisgICAgICovCisgICAgcHVibGljIGZpbmFsIFN0cmluZ0J1ZmZlciBmb3JtYXQoT2JqZWN0IG9iaiwgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBmaWVsZFBvc2l0aW9uKQorICAgIHsKKyAgICAgICAgaWYgKG9iaiBpbnN0YW5jZW9mIENhbGVuZGFyKQorICAgICAgICAgICAgcmV0dXJuIGZvcm1hdCggKENhbGVuZGFyKW9iaiwgdG9BcHBlbmRUbywgZmllbGRQb3NpdGlvbiApOworICAgICAgICBlbHNlIGlmIChvYmogaW5zdGFuY2VvZiBEYXRlKQorICAgICAgICAgICAgcmV0dXJuIGZvcm1hdCggKERhdGUpb2JqLCB0b0FwcGVuZFRvLCBmaWVsZFBvc2l0aW9uICk7CisgICAgICAgIGVsc2UgaWYgKG9iaiBpbnN0YW5jZW9mIE51bWJlcikKKyAgICAgICAgICAgIHJldHVybiBmb3JtYXQoIG5ldyBEYXRlKCgoTnVtYmVyKW9iaikubG9uZ1ZhbHVlKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICB0b0FwcGVuZFRvLCBmaWVsZFBvc2l0aW9uICk7CisgICAgICAgIGVsc2UgCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJDYW5ub3QgZm9ybWF0IGdpdmVuIE9iamVjdCBhcyBhIERhdGUiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGb3JtYXRzIGEgZGF0ZSBpbnRvIGEgZGF0ZS90aW1lIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gY2FsIGEgQ2FsZW5kYXIgc2V0IHRvIHRoZSBkYXRlIGFuZCB0aW1lIHRvIGJlIGZvcm1hdHRlZAorICAgICAqIGludG8gYSBkYXRlL3RpbWUgc3RyaW5nLgorICAgICAqIEBwYXJhbSB0b0FwcGVuZFRvIHRoZSBzdHJpbmcgYnVmZmVyIGZvciB0aGUgcmV0dXJuaW5nIGRhdGUvdGltZSBzdHJpbmcuCisgICAgICogQHBhcmFtIGZpZWxkUG9zaXRpb24ga2VlcHMgdHJhY2sgb2YgdGhlIHBvc2l0aW9uIG9mIHRoZSBmaWVsZAorICAgICAqIHdpdGhpbiB0aGUgcmV0dXJuZWQgc3RyaW5nLgorICAgICAqIE9uIGlucHV0OiBhbiBhbGlnbm1lbnQgZmllbGQsCisgICAgICogaWYgZGVzaXJlZC4gT24gb3V0cHV0OiB0aGUgb2Zmc2V0cyBvZiB0aGUgYWxpZ25tZW50IGZpZWxkLiBGb3IKKyAgICAgKiBleGFtcGxlLCBnaXZlbiBhIHRpbWUgdGV4dCAiMTk5Ni4wNy4xMCBBRCBhdCAxNTowODo1NiBQRFQiLAorICAgICAqIGlmIHRoZSBnaXZlbiBmaWVsZFBvc2l0aW9uIGlzIERhdGVGb3JtYXQuWUVBUl9GSUVMRCwgdGhlCisgICAgICogYmVnaW4gaW5kZXggYW5kIGVuZCBpbmRleCBvZiBmaWVsZFBvc2l0aW9uIHdpbGwgYmUgc2V0IHRvCisgICAgICogMCBhbmQgNCwgcmVzcGVjdGl2ZWx5LgorICAgICAqIE5vdGljZSB0aGF0IGlmIHRoZSBzYW1lIHRpbWUgZmllbGQgYXBwZWFycworICAgICAqIG1vcmUgdGhhbiBvbmNlIGluIGEgcGF0dGVybiwgdGhlIGZpZWxkUG9zaXRpb24gd2lsbCBiZSBzZXQgZm9yIHRoZSBmaXJzdAorICAgICAqIG9jY3VyZW5jZSBvZiB0aGF0IHRpbWUgZmllbGQuIEZvciBpbnN0YW5jZSwgZm9ybWF0dGluZyBhIERhdGUgdG8KKyAgICAgKiB0aGUgdGltZSBzdHJpbmcgIjEgUE0gUERUIChQYWNpZmljIERheWxpZ2h0IFRpbWUpIiB1c2luZyB0aGUgcGF0dGVybgorICAgICAqICJoIGEgeiAoenp6eikiIGFuZCB0aGUgYWxpZ25tZW50IGZpZWxkIERhdGVGb3JtYXQuVElNRVpPTkVfRklFTEQsCisgICAgICogdGhlIGJlZ2luIGluZGV4IGFuZCBlbmQgaW5kZXggb2YgZmllbGRQb3NpdGlvbiB3aWxsIGJlIHNldCB0bworICAgICAqIDUgYW5kIDgsIHJlc3BlY3RpdmVseSwgZm9yIHRoZSBmaXJzdCBvY2N1cmVuY2Ugb2YgdGhlIHRpbWV6b25lCisgICAgICogcGF0dGVybiBjaGFyYWN0ZXIgJ3onLgorICAgICAqIEByZXR1cm4gdGhlIGZvcm1hdHRlZCBkYXRlL3RpbWUgc3RyaW5nLgorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBTdHJpbmdCdWZmZXIgZm9ybWF0KENhbGVuZGFyIGNhbCwgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBmaWVsZFBvc2l0aW9uKTsKKworICAgIC8qKgorICAgICAqIEZvcm1hdHMgYSBEYXRlIGludG8gYSBkYXRlL3RpbWUgc3RyaW5nLgorICAgICAqIEBwYXJhbSBkYXRlIGEgRGF0ZSB0byBiZSBmb3JtYXR0ZWQgaW50byBhIGRhdGUvdGltZSBzdHJpbmcuCisgICAgICogQHBhcmFtIHRvQXBwZW5kVG8gdGhlIHN0cmluZyBidWZmZXIgZm9yIHRoZSByZXR1cm5pbmcgZGF0ZS90aW1lIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gZmllbGRQb3NpdGlvbiBrZWVwcyB0cmFjayBvZiB0aGUgcG9zaXRpb24gb2YgdGhlIGZpZWxkCisgICAgICogd2l0aGluIHRoZSByZXR1cm5lZCBzdHJpbmcuCisgICAgICogT24gaW5wdXQ6IGFuIGFsaWdubWVudCBmaWVsZCwKKyAgICAgKiBpZiBkZXNpcmVkLiBPbiBvdXRwdXQ6IHRoZSBvZmZzZXRzIG9mIHRoZSBhbGlnbm1lbnQgZmllbGQuIEZvcgorICAgICAqIGV4YW1wbGUsIGdpdmVuIGEgdGltZSB0ZXh0ICIxOTk2LjA3LjEwIEFEIGF0IDE1OjA4OjU2IFBEVCIsCisgICAgICogaWYgdGhlIGdpdmVuIGZpZWxkUG9zaXRpb24gaXMgRGF0ZUZvcm1hdC5ZRUFSX0ZJRUxELCB0aGUKKyAgICAgKiBiZWdpbiBpbmRleCBhbmQgZW5kIGluZGV4IG9mIGZpZWxkUG9zaXRpb24gd2lsbCBiZSBzZXQgdG8KKyAgICAgKiAwIGFuZCA0LCByZXNwZWN0aXZlbHkuCisgICAgICogTm90aWNlIHRoYXQgaWYgdGhlIHNhbWUgdGltZSBmaWVsZCBhcHBlYXJzCisgICAgICogbW9yZSB0aGFuIG9uY2UgaW4gYSBwYXR0ZXJuLCB0aGUgZmllbGRQb3NpdGlvbiB3aWxsIGJlIHNldCBmb3IgdGhlIGZpcnN0CisgICAgICogb2NjdXJlbmNlIG9mIHRoYXQgdGltZSBmaWVsZC4gRm9yIGluc3RhbmNlLCBmb3JtYXR0aW5nIGEgRGF0ZSB0bworICAgICAqIHRoZSB0aW1lIHN0cmluZyAiMSBQTSBQRFQgKFBhY2lmaWMgRGF5bGlnaHQgVGltZSkiIHVzaW5nIHRoZSBwYXR0ZXJuCisgICAgICogImggYSB6ICh6enp6KSIgYW5kIHRoZSBhbGlnbm1lbnQgZmllbGQgRGF0ZUZvcm1hdC5USU1FWk9ORV9GSUVMRCwKKyAgICAgKiB0aGUgYmVnaW4gaW5kZXggYW5kIGVuZCBpbmRleCBvZiBmaWVsZFBvc2l0aW9uIHdpbGwgYmUgc2V0IHRvCisgICAgICogNSBhbmQgOCwgcmVzcGVjdGl2ZWx5LCBmb3IgdGhlIGZpcnN0IG9jY3VyZW5jZSBvZiB0aGUgdGltZXpvbmUKKyAgICAgKiBwYXR0ZXJuIGNoYXJhY3RlciAneicuCisgICAgICogQHJldHVybiB0aGUgZm9ybWF0dGVkIGRhdGUvdGltZSBzdHJpbmcuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFN0cmluZ0J1ZmZlciBmb3JtYXQoRGF0ZSBkYXRlLCBTdHJpbmdCdWZmZXIgdG9BcHBlbmRUbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIGZpZWxkUG9zaXRpb24pIHsKKyAgICAgICAgLy8gVXNlIG91ciBDYWxlbmRhciBvYmplY3QKKyAgICAgICAgY2FsZW5kYXIuc2V0VGltZShkYXRlKTsKKyAgICAgICAgcmV0dXJuIGZvcm1hdChjYWxlbmRhciwgdG9BcHBlbmRUbywgZmllbGRQb3NpdGlvbik7CisgICAgfQorCisgICAgLyoqCisgICAgICogRm9ybWF0cyBhIERhdGUgaW50byBhIGRhdGUvdGltZSBzdHJpbmcuCisgICAgICogQHBhcmFtIGRhdGUgdGhlIHRpbWUgdmFsdWUgdG8gYmUgZm9ybWF0dGVkIGludG8gYSB0aW1lIHN0cmluZy4KKyAgICAgKiBAcmV0dXJuIHRoZSBmb3JtYXR0ZWQgdGltZSBzdHJpbmcuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFN0cmluZyBmb3JtYXQoRGF0ZSBkYXRlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZvcm1hdChkYXRlLCBuZXcgU3RyaW5nQnVmZmVyKCksbmV3IEZpZWxkUG9zaXRpb24oMCkpLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgYSBkYXRlL3RpbWUgc3RyaW5nLgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgIFRoZSBkYXRlL3RpbWUgc3RyaW5nIHRvIGJlIHBhcnNlZAorICAgICAqCisgICAgICogQHJldHVybiAgICAgIEEgRGF0ZSwgb3IgbnVsbCBpZiB0aGUgaW5wdXQgY291bGQgbm90IGJlIHBhcnNlZAorICAgICAqCisgICAgICogQGV4Y2VwdGlvbiAgUGFyc2VFeGNlcHRpb24gIElmIHRoZSBnaXZlbiBzdHJpbmcgY2Fubm90IGJlIHBhcnNlZCBhcyBhIGRhdGUuCisgICAgICoKKyAgICAgKiBAc2VlICNwYXJzZShTdHJpbmcsIFBhcnNlUG9zaXRpb24pCisgICAgICovCisgICAgcHVibGljIERhdGUgcGFyc2UoU3RyaW5nIHRleHQpIHRocm93cyBQYXJzZUV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgRGF0ZSByZXN1bHQgPSBwYXJzZSh0ZXh0LCBwb3MpOworICAgICAgICBpZiAocG9zLmdldEluZGV4KCkgPT0gMCkgLy8gSUNVNEoKKyAgICAgICAgICAgIHRocm93IG5ldyBQYXJzZUV4Y2VwdGlvbigiVW5wYXJzZWFibGUgZGF0ZTogXCIiICsgdGV4dCArICJcIiIgLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcy5nZXRFcnJvckluZGV4KCkpOyAvLyBJQ1U0SgorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlIGEgZGF0ZS90aW1lIHN0cmluZyBhY2NvcmRpbmcgdG8gdGhlIGdpdmVuIHBhcnNlIHBvc2l0aW9uLgorICAgICAqIEZvciBleGFtcGxlLCBhIHRpbWUgdGV4dCAiMDcvMTAvOTYgNDo1IFBNLCBQRFQiIHdpbGwgYmUgcGFyc2VkCisgICAgICogaW50byBhIENhbGVuZGFyIHRoYXQgaXMgZXF1aXZhbGVudCB0byBEYXRlKDgzNzAzOTkyODA0NikuICBUaGUKKyAgICAgKiBjYWxsZXIgc2hvdWxkIGNsZWFyIHRoZSBjYWxlbmRhciBiZWZvcmUgY2FsbGluZyB0aGlzIG1ldGhvZCwKKyAgICAgKiB1bmxlc3MgZXhpc3RpbmcgZmllbGQgaW5mb3JtYXRpb24gaXMgdG8gYmUga2VwdC4KKyAgICAgKgorICAgICAqIDxwPiBCeSBkZWZhdWx0LCBwYXJzaW5nIGlzIGxlbmllbnQ6IElmIHRoZSBpbnB1dCBpcyBub3QgaW4gdGhlIGZvcm0gdXNlZAorICAgICAqIGJ5IHRoaXMgb2JqZWN0J3MgZm9ybWF0IG1ldGhvZCBidXQgY2FuIHN0aWxsIGJlIHBhcnNlZCBhcyBhIGRhdGUsIHRoZW4KKyAgICAgKiB0aGUgcGFyc2Ugc3VjY2VlZHMuICBDbGllbnRzIG1heSBpbnNpc3Qgb24gc3RyaWN0IGFkaGVyZW5jZSB0byB0aGUKKyAgICAgKiBmb3JtYXQgYnkgY2FsbGluZyBzZXRMZW5pZW50KGZhbHNlKS4KKyAgICAgKgorICAgICAqIEBzZWUgI3NldExlbmllbnQoYm9vbGVhbikKKyAgICAgKgorICAgICAqIEBwYXJhbSB0ZXh0ICBUaGUgZGF0ZS90aW1lIHN0cmluZyB0byBiZSBwYXJzZWQKKyAgICAgKgorICAgICAqIEBwYXJhbSBjYWwgICBUaGUgY2FsZW5kYXIgaW50byB3aGljaCBwYXJzZWQgZGF0YSB3aWxsIGJlIHN0b3JlZC4KKyAgICAgKiAgICAgICAgICAgICAgSW4gZ2VuZXJhbCwgdGhpcyBzaG91bGQgYmUgY2xlYXJlZCBiZWZvcmUgY2FsbGluZyB0aGlzCisgICAgICogICAgICAgICAgICAgIG1ldGhvZC4gIElmIHRoaXMgcGFyc2UgZmFpbHMsIHRoZSBjYWxlbmRhciBtYXkgc3RpbGwKKyAgICAgKiAgICAgICAgICAgICAgaGF2ZSBiZWVuIG1vZGlmaWVkLgorICAgICAqCisgICAgICogQHBhcmFtIHBvcyAgIE9uIGlucHV0LCB0aGUgcG9zaXRpb24gYXQgd2hpY2ggdG8gc3RhcnQgcGFyc2luZzsgb24KKyAgICAgKiAgICAgICAgICAgICAgb3V0cHV0LCB0aGUgcG9zaXRpb24gYXQgd2hpY2ggcGFyc2luZyB0ZXJtaW5hdGVkLCBvciB0aGUKKyAgICAgKiAgICAgICAgICAgICAgc3RhcnQgcG9zaXRpb24gaWYgdGhlIHBhcnNlIGZhaWxlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBwYXJzZShTdHJpbmcgdGV4dCwgQ2FsZW5kYXIgY2FsLCBQYXJzZVBvc2l0aW9uIHBvcyk7CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhIGRhdGUvdGltZSBzdHJpbmcgYWNjb3JkaW5nIHRvIHRoZSBnaXZlbiBwYXJzZSBwb3NpdGlvbi4gIEZvcgorICAgICAqIGV4YW1wbGUsIGEgdGltZSB0ZXh0ICIwNy8xMC85NiA0OjUgUE0sIFBEVCIgd2lsbCBiZSBwYXJzZWQgaW50byBhIERhdGUKKyAgICAgKiB0aGF0IGlzIGVxdWl2YWxlbnQgdG8gRGF0ZSg4MzcwMzk5MjgwNDYpLgorICAgICAqCisgICAgICogPHA+IEJ5IGRlZmF1bHQsIHBhcnNpbmcgaXMgbGVuaWVudDogSWYgdGhlIGlucHV0IGlzIG5vdCBpbiB0aGUgZm9ybSB1c2VkCisgICAgICogYnkgdGhpcyBvYmplY3QncyBmb3JtYXQgbWV0aG9kIGJ1dCBjYW4gc3RpbGwgYmUgcGFyc2VkIGFzIGEgZGF0ZSwgdGhlbgorICAgICAqIHRoZSBwYXJzZSBzdWNjZWVkcy4gIENsaWVudHMgbWF5IGluc2lzdCBvbiBzdHJpY3QgYWRoZXJlbmNlIHRvIHRoZQorICAgICAqIGZvcm1hdCBieSBjYWxsaW5nIHNldExlbmllbnQoZmFsc2UpLgorICAgICAqCisgICAgICogQHNlZSAjc2V0TGVuaWVudChib29sZWFuKQorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgIFRoZSBkYXRlL3RpbWUgc3RyaW5nIHRvIGJlIHBhcnNlZAorICAgICAqCisgICAgICogQHBhcmFtIHBvcyAgIE9uIGlucHV0LCB0aGUgcG9zaXRpb24gYXQgd2hpY2ggdG8gc3RhcnQgcGFyc2luZzsgb24KKyAgICAgKiAgICAgICAgICAgICAgb3V0cHV0LCB0aGUgcG9zaXRpb24gYXQgd2hpY2ggcGFyc2luZyB0ZXJtaW5hdGVkLCBvciB0aGUKKyAgICAgKiAgICAgICAgICAgICAgc3RhcnQgcG9zaXRpb24gaWYgdGhlIHBhcnNlIGZhaWxlZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gICAgICBBIERhdGUsIG9yIG51bGwgaWYgdGhlIGlucHV0IGNvdWxkIG5vdCBiZSBwYXJzZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgRGF0ZSBwYXJzZShTdHJpbmcgdGV4dCwgUGFyc2VQb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgaW50IHN0YXJ0ID0gcG9zLmdldEluZGV4KCk7CisgICAgICAgIGNhbGVuZGFyLmNsZWFyKCk7CisgICAgICAgIHBhcnNlKHRleHQsIGNhbGVuZGFyLCBwb3MpOworICAgICAgICBpZiAocG9zLmdldEluZGV4KCkgIT0gc3RhcnQpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGVuZGFyLmdldFRpbWUoKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgLy8gVGhpcyBvY2N1cnMgaWYgdGhlIGNhbGVuZGFyIGlzIG5vbi1sZW5pZW50IGFuZCB0aGVyZSBpcworICAgICAgICAgICAgICAgIC8vIGFuIG91dC1vZi1yYW5nZSBmaWVsZC4gIFdlIGRvbid0IGtub3cgd2hpY2ggZmllbGQgd2FzCisgICAgICAgICAgICAgICAgLy8gaWxsZWdhbCBzbyB3ZSBzZXQgdGhlIGVycm9yIGluZGV4IHRvIHRoZSBzdGFydC4KKyAgICAgICAgICAgICAgICBwb3Muc2V0SW5kZXgoc3RhcnQpOworICAgICAgICAgICAgICAgIHBvcy5zZXRFcnJvckluZGV4KHN0YXJ0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhIGRhdGUvdGltZSBzdHJpbmcgaW50byBhbiBPYmplY3QuICBUaGlzIGNvbnZlbmllbmNlIG1ldGhvZCBzaW1wbHkKKyAgICAgKiBjYWxscyBwYXJzZShTdHJpbmcsIFBhcnNlUG9zaXRpb24pLgorICAgICAqCisgICAgICogQHNlZSAjcGFyc2UoU3RyaW5nLCBQYXJzZVBvc2l0aW9uKQorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgcGFyc2VPYmplY3QgKFN0cmluZyBzb3VyY2UsIFBhcnNlUG9zaXRpb24gcG9zKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHBhcnNlKHNvdXJjZSwgcG9zKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgZnVsbCBzdHlsZSBwYXR0ZXJuLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZVTEwgPSAwOworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciBsb25nIHN0eWxlIHBhdHRlcm4uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTE9ORyA9IDE7CisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIG1lZGl1bSBzdHlsZSBwYXR0ZXJuLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1FRElVTSA9IDI7CisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIHNob3J0IHN0eWxlIHBhdHRlcm4uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0hPUlQgPSAzOworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciBkZWZhdWx0IHN0eWxlIHBhdHRlcm4uICBJdHMgdmFsdWUgaXMgTUVESVVNLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERFRkFVTFQgPSBNRURJVU07CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB0aW1lIGZvcm1hdHRlciB3aXRoIHRoZSBkZWZhdWx0IGZvcm1hdHRpbmcgc3R5bGUKKyAgICAgKiBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSB0aW1lIGZvcm1hdHRlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIERhdGVGb3JtYXQgZ2V0VGltZUluc3RhbmNlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXQoLTEsIERFRkFVTFQsIExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHRpbWUgZm9ybWF0dGVyIHdpdGggdGhlIGdpdmVuIGZvcm1hdHRpbmcgc3R5bGUKKyAgICAgKiBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdHlsZSB0aGUgZ2l2ZW4gZm9ybWF0dGluZyBzdHlsZS4gRm9yIGV4YW1wbGUsCisgICAgICogU0hPUlQgZm9yICJoOm1tIGEiIGluIHRoZSBVUyBsb2NhbGUuCisgICAgICogQHJldHVybiBhIHRpbWUgZm9ybWF0dGVyLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRGF0ZUZvcm1hdCBnZXRUaW1lSW5zdGFuY2UoaW50IHN0eWxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldCgtMSwgc3R5bGUsIExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHRpbWUgZm9ybWF0dGVyIHdpdGggdGhlIGdpdmVuIGZvcm1hdHRpbmcgc3R5bGUKKyAgICAgKiBmb3IgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gc3R5bGUgdGhlIGdpdmVuIGZvcm1hdHRpbmcgc3R5bGUuIEZvciBleGFtcGxlLAorICAgICAqIFNIT1JUIGZvciAiaDptbSBhIiBpbiB0aGUgVVMgbG9jYWxlLgorICAgICAqIEBwYXJhbSBhTG9jYWxlIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHJldHVybiBhIHRpbWUgZm9ybWF0dGVyLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRGF0ZUZvcm1hdCBnZXRUaW1lSW5zdGFuY2UoaW50IHN0eWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsZSBhTG9jYWxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldCgtMSwgc3R5bGUsIGFMb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGRhdGUgZm9ybWF0dGVyIHdpdGggdGhlIGRlZmF1bHQgZm9ybWF0dGluZyBzdHlsZQorICAgICAqIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHJldHVybiBhIGRhdGUgZm9ybWF0dGVyLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRGF0ZUZvcm1hdCBnZXREYXRlSW5zdGFuY2UoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldChERUZBVUxULCAtMSwgTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZGF0ZSBmb3JtYXR0ZXIgd2l0aCB0aGUgZ2l2ZW4gZm9ybWF0dGluZyBzdHlsZQorICAgICAqIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIHN0eWxlIHRoZSBnaXZlbiBmb3JtYXR0aW5nIHN0eWxlLiBGb3IgZXhhbXBsZSwKKyAgICAgKiBTSE9SVCBmb3IgIk0vZC95eSIgaW4gdGhlIFVTIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgZGF0ZSBmb3JtYXR0ZXIuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBEYXRlRm9ybWF0IGdldERhdGVJbnN0YW5jZShpbnQgc3R5bGUpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0KHN0eWxlLCAtMSwgTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZGF0ZSBmb3JtYXR0ZXIgd2l0aCB0aGUgZ2l2ZW4gZm9ybWF0dGluZyBzdHlsZQorICAgICAqIGZvciB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdHlsZSB0aGUgZ2l2ZW4gZm9ybWF0dGluZyBzdHlsZS4gRm9yIGV4YW1wbGUsCisgICAgICogU0hPUlQgZm9yICJNL2QveXkiIGluIHRoZSBVUyBsb2NhbGUuCisgICAgICogQHBhcmFtIGFMb2NhbGUgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgZGF0ZSBmb3JtYXR0ZXIuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBEYXRlRm9ybWF0IGdldERhdGVJbnN0YW5jZShpbnQgc3R5bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWxlIGFMb2NhbGUpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0KHN0eWxlLCAtMSwgYUxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZGF0ZS90aW1lIGZvcm1hdHRlciB3aXRoIHRoZSBkZWZhdWx0IGZvcm1hdHRpbmcgc3R5bGUKKyAgICAgKiBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBkYXRlL3RpbWUgZm9ybWF0dGVyLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRGF0ZUZvcm1hdCBnZXREYXRlVGltZUluc3RhbmNlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXQoREVGQVVMVCwgREVGQVVMVCwgTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZGF0ZS90aW1lIGZvcm1hdHRlciB3aXRoIHRoZSBnaXZlbiBkYXRlIGFuZCB0aW1lCisgICAgICogZm9ybWF0dGluZyBzdHlsZXMgZm9yIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gZGF0ZVN0eWxlIHRoZSBnaXZlbiBkYXRlIGZvcm1hdHRpbmcgc3R5bGUuIEZvciBleGFtcGxlLAorICAgICAqIFNIT1JUIGZvciAiTS9kL3l5IiBpbiB0aGUgVVMgbG9jYWxlLgorICAgICAqIEBwYXJhbSB0aW1lU3R5bGUgdGhlIGdpdmVuIHRpbWUgZm9ybWF0dGluZyBzdHlsZS4gRm9yIGV4YW1wbGUsCisgICAgICogU0hPUlQgZm9yICJoOm1tIGEiIGluIHRoZSBVUyBsb2NhbGUuCisgICAgICogQHJldHVybiBhIGRhdGUvdGltZSBmb3JtYXR0ZXIuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBEYXRlRm9ybWF0IGdldERhdGVUaW1lSW5zdGFuY2UoaW50IGRhdGVTdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdGltZVN0eWxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldChkYXRlU3R5bGUsIHRpbWVTdHlsZSwgTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZGF0ZS90aW1lIGZvcm1hdHRlciB3aXRoIHRoZSBnaXZlbiBmb3JtYXR0aW5nIHN0eWxlcworICAgICAqIGZvciB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBwYXJhbSBkYXRlU3R5bGUgdGhlIGdpdmVuIGRhdGUgZm9ybWF0dGluZyBzdHlsZS4KKyAgICAgKiBAcGFyYW0gdGltZVN0eWxlIHRoZSBnaXZlbiB0aW1lIGZvcm1hdHRpbmcgc3R5bGUuCisgICAgICogQHBhcmFtIGFMb2NhbGUgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgZGF0ZS90aW1lIGZvcm1hdHRlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIERhdGVGb3JtYXQKKyAgICAgICAgZ2V0RGF0ZVRpbWVJbnN0YW5jZShpbnQgZGF0ZVN0eWxlLCBpbnQgdGltZVN0eWxlLCBMb2NhbGUgYUxvY2FsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXQoZGF0ZVN0eWxlLCB0aW1lU3R5bGUsIGFMb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBhIGRlZmF1bHQgZGF0ZS90aW1lIGZvcm1hdHRlciB0aGF0IHVzZXMgdGhlIFNIT1JUIHN0eWxlIGZvciBib3RoIHRoZQorICAgICAqIGRhdGUgYW5kIHRoZSB0aW1lLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRGF0ZUZvcm1hdCBnZXRJbnN0YW5jZSgpIHsKKyAgICAgICAgcmV0dXJuIGdldERhdGVUaW1lSW5zdGFuY2UoU0hPUlQsIFNIT1JUKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBzZXQgb2YgbG9jYWxlcyBmb3Igd2hpY2ggRGF0ZUZvcm1hdHMgYXJlIGluc3RhbGxlZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBzZXQgb2YgbG9jYWxlcyBmb3Igd2hpY2ggRGF0ZUZvcm1hdHMgYXJlIGluc3RhbGxlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIExvY2FsZVtdIGdldEF2YWlsYWJsZUxvY2FsZXMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIElDVUxvY2FsZURhdGEuZ2V0QXZhaWxhYmxlTG9jYWxlcygiRGF0ZVRpbWVQYXR0ZXJucyIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgY2FsZW5kYXIgdG8gYmUgdXNlZCBieSB0aGlzIGRhdGUgZm9ybWF0LiAgSW5pdGlhbGx5LCB0aGUgZGVmYXVsdAorICAgICAqIGNhbGVuZGFyIGZvciB0aGUgc3BlY2lmaWVkIG9yIGRlZmF1bHQgbG9jYWxlIGlzIHVzZWQuCisgICAgICogQHBhcmFtIG5ld0NhbGVuZGFyIHRoZSBuZXcgQ2FsZW5kYXIgdG8gYmUgdXNlZCBieSB0aGUgZGF0ZSBmb3JtYXQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDYWxlbmRhcihDYWxlbmRhciBuZXdDYWxlbmRhcikKKyAgICB7CisgICAgICAgIHRoaXMuY2FsZW5kYXIgPSBuZXdDYWxlbmRhcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBjYWxlbmRhciBhc3NvY2lhdGVkIHdpdGggdGhpcyBkYXRlL3RpbWUgZm9ybWF0dGVyLgorICAgICAqIEByZXR1cm4gdGhlIGNhbGVuZGFyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGRhdGUvdGltZSBmb3JtYXR0ZXIuCisgICAgICovCisgICAgcHVibGljIENhbGVuZGFyIGdldENhbGVuZGFyKCkKKyAgICB7CisgICAgICAgIHJldHVybiBjYWxlbmRhcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBbGxvd3MgeW91IHRvIHNldCB0aGUgbnVtYmVyIGZvcm1hdHRlci4KKyAgICAgKiBAcGFyYW0gbmV3TnVtYmVyRm9ybWF0IHRoZSBnaXZlbiBuZXcgTnVtYmVyRm9ybWF0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE51bWJlckZvcm1hdChOdW1iZXJGb3JtYXQgbmV3TnVtYmVyRm9ybWF0KQorICAgIHsKKyAgICAgICAgdGhpcy5udW1iZXJGb3JtYXQgPSBuZXdOdW1iZXJGb3JtYXQ7CisgICAgICAgIC8qSW4gb3JkZXIgdG8gcGFyc2UgU3RyaW5nIGxpa2UgIjExLjEwLjIwMDEiIHRvIERhdGVUaW1lIGNvcnJlY3RseSAKKyAgICAgICAgICBpbiBMb2NhbGUoImZyIiwiQ0giKSBbUmljaGFyZC9HQ0xdCisgICAgICAgICovCisgICAgICAgIHRoaXMubnVtYmVyRm9ybWF0LnNldFBhcnNlSW50ZWdlck9ubHkodHJ1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbnVtYmVyIGZvcm1hdHRlciB3aGljaCB0aGlzIGRhdGUvdGltZSBmb3JtYXR0ZXIgdXNlcyB0bworICAgICAqIGZvcm1hdCBhbmQgcGFyc2UgYSB0aW1lLgorICAgICAqIEByZXR1cm4gdGhlIG51bWJlciBmb3JtYXR0ZXIgd2hpY2ggdGhpcyBkYXRlL3RpbWUgZm9ybWF0dGVyIHVzZXMuCisgICAgICovCisgICAgcHVibGljIE51bWJlckZvcm1hdCBnZXROdW1iZXJGb3JtYXQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG51bWJlckZvcm1hdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB0aW1lIHpvbmUgZm9yIHRoZSBjYWxlbmRhciBvZiB0aGlzIERhdGVGb3JtYXQgb2JqZWN0LgorICAgICAqIEBwYXJhbSB6b25lIHRoZSBnaXZlbiBuZXcgdGltZSB6b25lLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRpbWVab25lKFRpbWVab25lIHpvbmUpCisgICAgeworICAgICAgICBjYWxlbmRhci5zZXRUaW1lWm9uZSh6b25lKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB0aW1lIHpvbmUuCisgICAgICogQHJldHVybiB0aGUgdGltZSB6b25lIGFzc29jaWF0ZWQgd2l0aCB0aGUgY2FsZW5kYXIgb2YgRGF0ZUZvcm1hdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgVGltZVpvbmUgZ2V0VGltZVpvbmUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNhbGVuZGFyLmdldFRpbWVab25lKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU3BlY2lmeSB3aGV0aGVyIG9yIG5vdCBkYXRlL3RpbWUgcGFyc2luZyBpcyB0byBiZSBsZW5pZW50LiAgV2l0aAorICAgICAqIGxlbmllbnQgcGFyc2luZywgdGhlIHBhcnNlciBtYXkgdXNlIGhldXJpc3RpY3MgdG8gaW50ZXJwcmV0IGlucHV0cyB0aGF0CisgICAgICogZG8gbm90IHByZWNpc2VseSBtYXRjaCB0aGlzIG9iamVjdCdzIGZvcm1hdC4gIFdpdGggc3RyaWN0IHBhcnNpbmcsCisgICAgICogaW5wdXRzIG11c3QgbWF0Y2ggdGhpcyBvYmplY3QncyBmb3JtYXQuCisgICAgICogQHBhcmFtIGxlbmllbnQgd2hlbiB0cnVlLCBwYXJzaW5nIGlzIGxlbmllbnQKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIjc2V0TGVuaWVudAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldExlbmllbnQoYm9vbGVhbiBsZW5pZW50KQorICAgIHsKKyAgICAgICAgY2FsZW5kYXIuc2V0TGVuaWVudChsZW5pZW50KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZWxsIHdoZXRoZXIgZGF0ZS90aW1lIHBhcnNpbmcgaXMgdG8gYmUgbGVuaWVudC4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0xlbmllbnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNhbGVuZGFyLmlzTGVuaWVudCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlcyBoYXNoQ29kZQorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgIHJldHVybiBudW1iZXJGb3JtYXQuaGFzaENvZGUoKTsKKyAgICAgICAgLy8ganVzdCBlbm91Z2ggZmllbGRzIGZvciBhIHJlYXNvbmFibGUgZGlzdHJpYnV0aW9uCisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIGVxdWFscworICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKSB7CisgICAgICAgIGlmICh0aGlzID09IG9iaikgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChvYmogPT0gbnVsbCB8fCBnZXRDbGFzcygpICE9IG9iai5nZXRDbGFzcygpKSByZXR1cm4gZmFsc2U7CisgICAgICAgIERhdGVGb3JtYXQgb3RoZXIgPSAoRGF0ZUZvcm1hdCkgb2JqOworICAgICAgICByZXR1cm4gKC8vIGNhbGVuZGFyLmVxdWl2YWxlbnRUbyhvdGhlci5jYWxlbmRhcikgLy8gVEhJUyBBUEkgRE9FU04nVCBFWElTVCBZRVQhCisgICAgICAgICAgICAgICAgY2FsZW5kYXIuZ2V0Rmlyc3REYXlPZldlZWsoKSA9PSBvdGhlci5jYWxlbmRhci5nZXRGaXJzdERheU9mV2VlaygpICYmCisgICAgICAgICAgICAgICAgY2FsZW5kYXIuZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpID09IG90aGVyLmNhbGVuZGFyLmdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKSAmJgorICAgICAgICAgICAgICAgIGNhbGVuZGFyLmlzTGVuaWVudCgpID09IG90aGVyLmNhbGVuZGFyLmlzTGVuaWVudCgpICYmCisgICAgICAgICAgICAgICAgY2FsZW5kYXIuZ2V0VGltZVpvbmUoKS5lcXVhbHMob3RoZXIuY2FsZW5kYXIuZ2V0VGltZVpvbmUoKSkgJiYKKyAgICAgICAgICAgICAgICBudW1iZXJGb3JtYXQuZXF1YWxzKG90aGVyLm51bWJlckZvcm1hdCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlcyBDbG9uZWFibGUKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkKKyAgICB7CisgICAgICAgIERhdGVGb3JtYXQgb3RoZXIgPSAoRGF0ZUZvcm1hdCkgc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgb3RoZXIuY2FsZW5kYXIgPSAoQ2FsZW5kYXIpIGNhbGVuZGFyLmNsb25lKCk7CisgICAgICAgIG90aGVyLm51bWJlckZvcm1hdCA9IChOdW1iZXJGb3JtYXQpIG51bWJlckZvcm1hdC5jbG9uZSgpOworICAgICAgICByZXR1cm4gb3RoZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIERhdGVGb3JtYXQgd2l0aCB0aGUgZ2l2ZW4gdGltZSBhbmQvb3IgZGF0ZSBzdHlsZSBpbiB0aGUgZ2l2ZW4KKyAgICAgKiBsb2NhbGUuCisgICAgICogQHBhcmFtIGRhdGVTdHlsZSBhIHZhbHVlIGZyb20gMCB0byAzIGluZGljYXRpbmcgdGhlIHRpbWUgZm9ybWF0LAorICAgICAqIG9yIC0xIHRvIGluZGljYXRlIG5vIGRhdGUKKyAgICAgKiBAcGFyYW0gdGltZVN0eWxlIGEgdmFsdWUgZnJvbSAwIHRvIDMgaW5kaWNhdGluZyB0aGUgdGltZSBmb3JtYXQsCisgICAgICogb3IgLTEgdG8gaW5kaWNhdGUgbm8gdGltZQorICAgICAqIEBwYXJhbSBsb2MgdGhlIGxvY2FsZSBmb3IgdGhlIGZvcm1hdAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIERhdGVGb3JtYXQgZ2V0KGludCBkYXRlU3R5bGUsIGludCB0aW1lU3R5bGUsIExvY2FsZSBsb2MpIHsKKyAgICAgICAgaWYgKHRpbWVTdHlsZSA8IC0xIHx8IHRpbWVTdHlsZSA+IDMpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgdGltZSBzdHlsZSAiICsgdGltZVN0eWxlKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZGF0ZVN0eWxlIDwgLTEgfHwgZGF0ZVN0eWxlID4gMykgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBkYXRlIHN0eWxlICIgKyBkYXRlU3R5bGUpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFNpbXBsZURhdGVGb3JtYXQodGltZVN0eWxlLCBkYXRlU3R5bGUsIGxvYyk7CisgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFNpbXBsZURhdGVGb3JtYXQoIk0vZC95eSBoOm1tIGEiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIG5ldyBkYXRlIGZvcm1hdC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgRGF0ZUZvcm1hdCgpIHt9CisKKyAgICAvL35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFB1YmxpYyBzdGF0aWMgaW50ZXJmYWNlIGZvciBjcmVhdGluZyBjdXN0b24gRGF0ZUZvcm1hdHMgZm9yIGRpZmZlcmVudAorICAgIC8vIHR5cGVzIG9mIENhbGVuZGFycy4KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSB7QGxpbmsgRGF0ZUZvcm1hdH0gb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgdG8gZm9ybWF0IGRhdGVzIGluCisgICAgICogdGhlIGNhbGVuZGFyIHN5c3RlbSBzcGVjaWZpZWQgYnkgPGNvZGU+Y2FsPC9jb2RlPi4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gY2FsICAgVGhlIGNhbGVuZGFyIHN5c3RlbSBmb3Igd2hpY2ggYSBkYXRlIGZvcm1hdCBpcyBkZXNpcmVkLgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGVTdHlsZSBUaGUgdHlwZSBvZiBkYXRlIGZvcm1hdCBkZXNpcmVkLiAgVGhpcyBjYW4gYmUKKyAgICAgKiAgICAgICAgICAgICAge0BsaW5rIERhdGVGb3JtYXQjU0hPUlR9LCB7QGxpbmsgRGF0ZUZvcm1hdCNNRURJVU19LAorICAgICAqICAgICAgICAgICAgICBldGMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSBsb2NhbGUgZm9yIHdoaWNoIHRoZSBkYXRlIGZvcm1hdCBpcyBkZXNpcmVkLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBwdWJsaWMgRGF0ZUZvcm1hdCBnZXREYXRlSW5zdGFuY2UoQ2FsZW5kYXIgY2FsLCBpbnQgZGF0ZVN0eWxlLCBMb2NhbGUgbG9jYWxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldERhdGVUaW1lSW5zdGFuY2UoY2FsLCBkYXRlU3R5bGUsIC0xLCBsb2NhbGUpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSB7QGxpbmsgRGF0ZUZvcm1hdH0gb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgdG8gZm9ybWF0IHRpbWVzIGluCisgICAgICogdGhlIGNhbGVuZGFyIHN5c3RlbSBzcGVjaWZpZWQgYnkgPGNvZGU+Y2FsPC9jb2RlPi4KKyAgICAgKiA8cD4KKyAgICAgKiA8Yj5Ob3RlOjwvYj4gV2hlbiB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMgbW92ZWQgaW50byB0aGUgY29yZSBKREssIHRoaXMgbWV0aG9kCisgICAgICogd2lsbCBwcm9iYWJseSBiZSByZXBsYWNlZCBieSBhIG5ldyBvdmVybG9hZCBvZiB7QGxpbmsgRGF0ZUZvcm1hdCNnZXRJbnN0YW5jZX0uCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGNhbCAgIFRoZSBjYWxlbmRhciBzeXN0ZW0gZm9yIHdoaWNoIGEgdGltZSBmb3JtYXQgaXMgZGVzaXJlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0aW1lU3R5bGUgVGhlIHR5cGUgb2YgdGltZSBmb3JtYXQgZGVzaXJlZC4gIFRoaXMgY2FuIGJlCisgICAgICogICAgICAgICAgICAgIHtAbGluayBEYXRlRm9ybWF0I1NIT1JUfSwge0BsaW5rIERhdGVGb3JtYXQjTUVESVVNfSwKKyAgICAgKiAgICAgICAgICAgICAgZXRjLgorICAgICAqCisgICAgICogQHBhcmFtIGxvY2FsZSBUaGUgbG9jYWxlIGZvciB3aGljaCB0aGUgdGltZSBmb3JtYXQgaXMgZGVzaXJlZC4KKyAgICAgKgorICAgICAqIEBzZWUgRGF0ZUZvcm1hdCNnZXRUaW1lSW5zdGFuY2UKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgcHVibGljIERhdGVGb3JtYXQgZ2V0VGltZUluc3RhbmNlKENhbGVuZGFyIGNhbCwgaW50IHRpbWVTdHlsZSwgTG9jYWxlIGxvY2FsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXREYXRlVGltZUluc3RhbmNlKGNhbCwgLTEsIHRpbWVTdHlsZSwgbG9jYWxlKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEge0BsaW5rIERhdGVGb3JtYXR9IG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIHRvIGZvcm1hdCBkYXRlcyBhbmQgdGltZXMgaW4KKyAgICAgKiB0aGUgY2FsZW5kYXIgc3lzdGVtIHNwZWNpZmllZCBieSA8Y29kZT5jYWw8L2NvZGU+LgorICAgICAqIDxwPgorICAgICAqIDxiPk5vdGU6PC9iPiBXaGVuIHRoaXMgZnVuY3Rpb25hbGl0eSBpcyBtb3ZlZCBpbnRvIHRoZSBjb3JlIEpESywgdGhpcyBtZXRob2QKKyAgICAgKiB3aWxsIHByb2JhYmx5IGJlIHJlcGxhY2VkIGJ5IGEgbmV3IG92ZXJsb2FkIG9mIHtAbGluayBEYXRlRm9ybWF0I2dldEluc3RhbmNlfS4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gY2FsICAgVGhlIGNhbGVuZGFyIHN5c3RlbSBmb3Igd2hpY2ggYSBkYXRlL3RpbWUgZm9ybWF0IGlzIGRlc2lyZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZVN0eWxlIFRoZSB0eXBlIG9mIGRhdGUgZm9ybWF0IGRlc2lyZWQuICBUaGlzIGNhbiBiZQorICAgICAqICAgICAgICAgICAgICB7QGxpbmsgRGF0ZUZvcm1hdCNTSE9SVH0sIHtAbGluayBEYXRlRm9ybWF0I01FRElVTX0sCisgICAgICogICAgICAgICAgICAgIGV0Yy4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0aW1lU3R5bGUgVGhlIHR5cGUgb2YgdGltZSBmb3JtYXQgZGVzaXJlZC4gIFRoaXMgY2FuIGJlCisgICAgICogICAgICAgICAgICAgIHtAbGluayBEYXRlRm9ybWF0I1NIT1JUfSwge0BsaW5rIERhdGVGb3JtYXQjTUVESVVNfSwKKyAgICAgKiAgICAgICAgICAgICAgZXRjLgorICAgICAqCisgICAgICogQHBhcmFtIGxvY2FsZSBUaGUgbG9jYWxlIGZvciB3aGljaCB0aGUgZGF0ZS90aW1lIGZvcm1hdCBpcyBkZXNpcmVkLgorICAgICAqCisgICAgICogQHNlZSBEYXRlRm9ybWF0I2dldERhdGVUaW1lSW5zdGFuY2UKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgcHVibGljIERhdGVGb3JtYXQgZ2V0RGF0ZVRpbWVJbnN0YW5jZShDYWxlbmRhciBjYWwsIGludCBkYXRlU3R5bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRpbWVTdHlsZSwgTG9jYWxlIGxvY2FsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBjYWwuZ2V0RGF0ZVRpbWVGb3JtYXQoZGF0ZVN0eWxlLCB0aW1lU3R5bGUsIGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcmxvYWQKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgcHVibGljIERhdGVGb3JtYXQgZ2V0SW5zdGFuY2UoQ2FsZW5kYXIgY2FsLCBMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXREYXRlVGltZUluc3RhbmNlKGNhbCwgU0hPUlQsIFNIT1JULCBsb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJsb2FkCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHB1YmxpYyBEYXRlRm9ybWF0IGdldEluc3RhbmNlKENhbGVuZGFyIGNhbCkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoY2FsLCBMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVybG9hZAorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBwdWJsaWMgRGF0ZUZvcm1hdCBnZXREYXRlSW5zdGFuY2UoQ2FsZW5kYXIgY2FsLCBpbnQgZGF0ZVN0eWxlKSB7CisgICAgICAgIHJldHVybiBnZXREYXRlSW5zdGFuY2UoY2FsLCBkYXRlU3R5bGUsIExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJsb2FkCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHB1YmxpYyBEYXRlRm9ybWF0IGdldFRpbWVJbnN0YW5jZShDYWxlbmRhciBjYWwsIGludCB0aW1lU3R5bGUpIHsKKyAgICAgICAgcmV0dXJuIGdldFRpbWVJbnN0YW5jZShjYWwsIHRpbWVTdHlsZSwgTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcmxvYWQKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgcHVibGljIERhdGVGb3JtYXQgZ2V0RGF0ZVRpbWVJbnN0YW5jZShDYWxlbmRhciBjYWwsIGludCBkYXRlU3R5bGUsIGludCB0aW1lU3R5bGUpIHsKKyAgICAgICAgcmV0dXJuIGdldERhdGVUaW1lSW5zdGFuY2UoY2FsLCBkYXRlU3R5bGUsIHRpbWVTdHlsZSwgTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGF0ZUZvcm1hdFN5bWJvbHMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RhdGVGb3JtYXRTeW1ib2xzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDc5ZWJiMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RhdGVGb3JtYXRTeW1ib2xzLmphdmEKQEAgLTAsMCArMSw3MDIgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RhdGVGb3JtYXRTeW1ib2xzLmphdmEsdiAkCisgKiAkRGF0ZTogMjAwMi8wMy8xMCAxOTo0MDoxNiAkCisgKiAkUmV2aXNpb246IDEuMTIgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlRGF0YTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CisKK2ltcG9ydCBqYXZhLmlvLlNlcmlhbGl6YWJsZTsKK2ltcG9ydCBqYXZhLmxhbmcucmVmLlNvZnRSZWZlcmVuY2U7CitpbXBvcnQgamF2YS51dGlsLkVudW1lcmF0aW9uOworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworCisvKioKKyAqIDxjb2RlPkRhdGVGb3JtYXRTeW1ib2xzPC9jb2RlPiBpcyBhIHB1YmxpYyBjbGFzcyBmb3IgZW5jYXBzdWxhdGluZworICogbG9jYWxpemFibGUgZGF0ZS10aW1lIGZvcm1hdHRpbmcgZGF0YSwgc3VjaCBhcyB0aGUgbmFtZXMgb2YgdGhlCisgKiBtb250aHMsIHRoZSBuYW1lcyBvZiB0aGUgZGF5cyBvZiB0aGUgd2VlaywgYW5kIHRoZSB0aW1lIHpvbmUgZGF0YS4KKyAqIDxjb2RlPkRhdGVGb3JtYXQ8L2NvZGU+IGFuZCA8Y29kZT5TaW1wbGVEYXRlRm9ybWF0PC9jb2RlPiBib3RoIHVzZQorICogPGNvZGU+RGF0ZUZvcm1hdFN5bWJvbHM8L2NvZGU+IHRvIGVuY2Fwc3VsYXRlIHRoaXMgaW5mb3JtYXRpb24uCisgKgorICogPHA+CisgKiBUeXBpY2FsbHkgeW91IHNob3VsZG4ndCB1c2UgPGNvZGU+RGF0ZUZvcm1hdFN5bWJvbHM8L2NvZGU+IGRpcmVjdGx5LgorICogUmF0aGVyLCB5b3UgYXJlIGVuY291cmFnZWQgdG8gY3JlYXRlIGEgZGF0ZS10aW1lIGZvcm1hdHRlciB3aXRoIHRoZQorICogPGNvZGU+RGF0ZUZvcm1hdDwvY29kZT4gY2xhc3MncyBmYWN0b3J5IG1ldGhvZHM6IDxjb2RlPmdldFRpbWVJbnN0YW5jZTwvY29kZT4sCisgKiA8Y29kZT5nZXREYXRlSW5zdGFuY2U8L2NvZGU+LCBvciA8Y29kZT5nZXREYXRlVGltZUluc3RhbmNlPC9jb2RlPi4KKyAqIFRoZXNlIG1ldGhvZHMgYXV0b21hdGljYWxseSBjcmVhdGUgYSA8Y29kZT5EYXRlRm9ybWF0U3ltYm9sczwvY29kZT4gZm9yCisgKiB0aGUgZm9ybWF0dGVyIHNvIHRoYXQgeW91IGRvbid0IGhhdmUgdG8uIEFmdGVyIHRoZQorICogZm9ybWF0dGVyIGlzIGNyZWF0ZWQsIHlvdSBtYXkgbW9kaWZ5IGl0cyBmb3JtYXQgcGF0dGVybiB1c2luZyB0aGUKKyAqIDxjb2RlPnNldFBhdHRlcm48L2NvZGU+IG1ldGhvZC4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQKKyAqIGNyZWF0aW5nIGZvcm1hdHRlcnMgdXNpbmcgPGNvZGU+RGF0ZUZvcm1hdDwvY29kZT4ncyBmYWN0b3J5IG1ldGhvZHMsCisgKiBzZWUge0BsaW5rIERhdGVGb3JtYXR9LgorICoKKyAqIDxwPgorICogSWYgeW91IGRlY2lkZSB0byBjcmVhdGUgYSBkYXRlLXRpbWUgZm9ybWF0dGVyIHdpdGggYSBzcGVjaWZpYworICogZm9ybWF0IHBhdHRlcm4gZm9yIGEgc3BlY2lmaWMgbG9jYWxlLCB5b3UgY2FuIGRvIHNvIHdpdGg6CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBuZXcgU2ltcGxlRGF0ZUZvcm1hdChhUGF0dGVybiwgbmV3IERhdGVGb3JtYXRTeW1ib2xzKGFMb2NhbGUpKS4KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPgorICogPGNvZGU+RGF0ZUZvcm1hdFN5bWJvbHM8L2NvZGU+IG9iamVjdHMgYXJlIGNsb25hYmxlLiBXaGVuIHlvdSBvYnRhaW4KKyAqIGEgPGNvZGU+RGF0ZUZvcm1hdFN5bWJvbHM8L2NvZGU+IG9iamVjdCwgZmVlbCBmcmVlIHRvIG1vZGlmeSB0aGUKKyAqIGRhdGUtdGltZSBmb3JtYXR0aW5nIGRhdGEuIEZvciBpbnN0YW5jZSwgeW91IGNhbiByZXBsYWNlIHRoZSBsb2NhbGl6ZWQKKyAqIGRhdGUtdGltZSBmb3JtYXQgcGF0dGVybiBjaGFyYWN0ZXJzIHdpdGggdGhlIG9uZXMgdGhhdCB5b3UgZmVlbCBlYXN5CisgKiB0byByZW1lbWJlci4gT3IgeW91IGNhbiBjaGFuZ2UgdGhlIHJlcHJlc2VudGF0aXZlIGNpdGllcworICogdG8geW91ciBmYXZvcml0ZSBvbmVzLgorICoKKyAqIDxwPgorICogTmV3IDxjb2RlPkRhdGVGb3JtYXRTeW1ib2xzPC9jb2RlPiBzdWJjbGFzc2VzIG1heSBiZSBhZGRlZCB0byBzdXBwb3J0CisgKiA8Y29kZT5TaW1wbGVEYXRlRm9ybWF0PC9jb2RlPiBmb3IgZGF0ZS10aW1lIGZvcm1hdHRpbmcgZm9yIGFkZGl0aW9uYWwgbG9jYWxlcy4KKworICogQHNlZSAgICAgICAgICBEYXRlRm9ybWF0CisgKiBAc2VlICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQKKyAqIEBzZWUgICAgICAgICAgY29tLmlibS5pY3UudXRpbC5TaW1wbGVUaW1lWm9uZQorICogQHZlcnNpb24gICAgICAxLjMxIDA5LzIxLzk5CisgKiBAYXV0aG9yICAgICAgIENoZW4tTGllaCBIdWFuZworICovCitwdWJsaWMgY2xhc3MgRGF0ZUZvcm1hdFN5bWJvbHMgaW1wbGVtZW50cyBTZXJpYWxpemFibGUsIENsb25lYWJsZSB7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBEYXRlRm9ybWF0U3ltYm9scyBvYmplY3QgYnkgbG9hZGluZyBmb3JtYXQgZGF0YSBmcm9tCisgICAgICogcmVzb3VyY2VzIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAZXhjZXB0aW9uICBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uCisgICAgICogICAgICAgICAgICAgaWYgdGhlIHJlc291cmNlcyBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlIGNhbm5vdCBiZQorICAgICAqICAgICAgICAgICAgIGZvdW5kIG9yIGNhbm5vdCBiZSBsb2FkZWQuCisgICAgICovCisgICAgcHVibGljIERhdGVGb3JtYXRTeW1ib2xzKCkKKyAgICB7CisgICAgICAgIGluaXRpYWxpemVEYXRhKExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIERhdGVGb3JtYXRTeW1ib2xzIG9iamVjdCBieSBsb2FkaW5nIGZvcm1hdCBkYXRhIGZyb20KKyAgICAgKiByZXNvdXJjZXMgZm9yIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAZXhjZXB0aW9uICBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uCisgICAgICogICAgICAgICAgICAgaWYgdGhlIHJlc291cmNlcyBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUgY2Fubm90IGJlCisgICAgICogICAgICAgICAgICAgZm91bmQgb3IgY2Fubm90IGJlIGxvYWRlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlIGxvY2FsZSkKKyAgICB7CisgICAgICAgIGluaXRpYWxpemVEYXRhKGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRXJhIHN0cmluZ3MuIEZvciBleGFtcGxlOiAiQUQiIGFuZCAiQkMiLiAgQW4gYXJyYXkgb2YgMiBzdHJpbmdzLAorICAgICAqIGluZGV4ZWQgYnkgPGNvZGU+Q2FsZW5kYXIuQkM8L2NvZGU+IGFuZCA8Y29kZT5DYWxlbmRhci5BRDwvY29kZT4uCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIFN0cmluZyBlcmFzW10gPSBudWxsOworCisgICAgLyoqCisgICAgICogTW9udGggc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJKYW51YXJ5IiwgIkZlYnJ1YXJ5IiwgZXRjLiAgQW4gYXJyYXkKKyAgICAgKiBvZiAxMyBzdHJpbmdzIChzb21lIGNhbGVuZGFycyBoYXZlIDEzIG1vbnRocyksIGluZGV4ZWQgYnkKKyAgICAgKiA8Y29kZT5DYWxlbmRhci5KQU5VQVJZPC9jb2RlPiwgPGNvZGU+Q2FsZW5kYXIuRkVCUlVBUlk8L2NvZGU+LCBldGMuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIFN0cmluZyBtb250aHNbXSA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBTaG9ydCBtb250aCBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIkphbiIsICJGZWIiLCBldGMuICBBbiBhcnJheSBvZgorICAgICAqIDEzIHN0cmluZ3MgKHNvbWUgY2FsZW5kYXJzIGhhdmUgMTMgbW9udGhzKSwgaW5kZXhlZCBieQorICAgICAqIDxjb2RlPkNhbGVuZGFyLkpBTlVBUlk8L2NvZGU+LCA8Y29kZT5DYWxlbmRhci5GRUJSVUFSWTwvY29kZT4sIGV0Yy4KKworICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBTdHJpbmcgc2hvcnRNb250aHNbXSA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBXZWVrZGF5IHN0cmluZ3MuIEZvciBleGFtcGxlOiAiU3VuZGF5IiwgIk1vbmRheSIsIGV0Yy4gIEFuIGFycmF5CisgICAgICogb2YgOCBzdHJpbmdzLCBpbmRleGVkIGJ5IDxjb2RlPkNhbGVuZGFyLlNVTkRBWTwvY29kZT4sCisgICAgICogPGNvZGU+Q2FsZW5kYXIuTU9OREFZPC9jb2RlPiwgZXRjLgorICAgICAqIFRoZSBlbGVtZW50IDxjb2RlPndlZWtkYXlzWzBdPC9jb2RlPiBpcyBpZ25vcmVkLgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBTdHJpbmcgd2Vla2RheXNbXSA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBTaG9ydCB3ZWVrZGF5IHN0cmluZ3MuIEZvciBleGFtcGxlOiAiU3VuIiwgIk1vbiIsIGV0Yy4gIEFuIGFycmF5CisgICAgICogb2YgOCBzdHJpbmdzLCBpbmRleGVkIGJ5IDxjb2RlPkNhbGVuZGFyLlNVTkRBWTwvY29kZT4sCisgICAgICogPGNvZGU+Q2FsZW5kYXIuTU9OREFZPC9jb2RlPiwgZXRjLgorICAgICAqIFRoZSBlbGVtZW50IDxjb2RlPnNob3J0V2Vla2RheXNbMF08L2NvZGU+IGlzIGlnbm9yZWQuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIFN0cmluZyBzaG9ydFdlZWtkYXlzW10gPSBudWxsOworCisgICAgLyoqCisgICAgICogQU0gYW5kIFBNIHN0cmluZ3MuIEZvciBleGFtcGxlOiAiQU0iIGFuZCAiUE0iLiAgQW4gYXJyYXkgb2YKKyAgICAgKiAyIHN0cmluZ3MsIGluZGV4ZWQgYnkgPGNvZGU+Q2FsZW5kYXIuQU08L2NvZGU+IGFuZAorICAgICAqIDxjb2RlPkNhbGVuZGFyLlBNPC9jb2RlPi4KKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgU3RyaW5nIGFtcG1zW10gPSBudWxsOworCisgICAgLyoqCisgICAgICogTG9jYWxpemVkIG5hbWVzIG9mIHRpbWUgem9uZXMgaW4gdGhpcyBsb2NhbGUuICBUaGlzIGlzIGEKKyAgICAgKiB0d28tZGltZW5zaW9uYWwgYXJyYXkgb2Ygc3RyaW5ncyBvZiBzaXplIDxlbT5uPC9lbT4gYnkgPGVtPm08L2VtPiwKKyAgICAgKiB3aGVyZSA8ZW0+bTwvZW0+IGlzIGF0IGxlYXN0IDUuICBFYWNoIG9mIHRoZSA8ZW0+bjwvZW0+IHJvd3MgaXMgYW4KKyAgICAgKiBlbnRyeSBjb250YWluaW5nIHRoZSBsb2NhbGl6ZWQgbmFtZXMgZm9yIGEgc2luZ2xlIDxjb2RlPlRpbWVab25lPC9jb2RlPi4KKyAgICAgKiBFYWNoIHN1Y2ggcm93IGNvbnRhaW5zICh3aXRoIDxjb2RlPmk8L2NvZGU+IHJhbmdpbmcgZnJvbQorICAgICAqIDAuLjxlbT5uPC9lbT4tMSk6CisgICAgICogPHVsPgorICAgICAqIDxsaT48Y29kZT56b25lU3RyaW5nc1tpXVswXTwvY29kZT4gLSB0aW1lIHpvbmUgSUQ8L2xpPgorICAgICAqIDxsaT48Y29kZT56b25lU3RyaW5nc1tpXVsxXTwvY29kZT4gLSBsb25nIG5hbWUgb2Ygem9uZSBpbiBzdGFuZGFyZAorICAgICAqIHRpbWU8L2xpPgorICAgICAqIDxsaT48Y29kZT56b25lU3RyaW5nc1tpXVsyXTwvY29kZT4gLSBzaG9ydCBuYW1lIG9mIHpvbmUgaW4KKyAgICAgKiBzdGFuZGFyZCB0aW1lPC9saT4KKyAgICAgKiA8bGk+PGNvZGU+em9uZVN0cmluZ3NbaV1bM108L2NvZGU+IC0gbG9uZyBuYW1lIG9mIHpvbmUgaW4gZGF5bGlnaHQKKyAgICAgKiBzYXZpbmdzIHRpbWU8L2xpPgorICAgICAqIDxsaT48Y29kZT56b25lU3RyaW5nc1tpXVs0XTwvY29kZT4gLSBzaG9ydCBuYW1lIG9mIHpvbmUgaW4gZGF5bGlnaHQKKyAgICAgKiBzYXZpbmdzIHRpbWU8L2xpPgorICAgICAqIDwvdWw+CisgICAgICogVGhlIHpvbmUgSUQgaXMgPGVtPm5vdDwvZW0+IGxvY2FsaXplZDsgaXQgY29ycmVzcG9uZHMgdG8gdGhlIElECisgICAgICogdmFsdWUgYXNzb2NpYXRlZCB3aXRoIGEgc3lzdGVtIHRpbWUgem9uZSBvYmplY3QuICBBbGwgb3RoZXIgZW50cmllcworICAgICAqIGFyZSBsb2NhbGl6ZWQgbmFtZXMuICBJZiBhIHpvbmUgZG9lcyBub3QgaW1wbGVtZW50IGRheWxpZ2h0IHNhdmluZ3MKKyAgICAgKiB0aW1lLCB0aGUgZGF5bGlnaHQgc2F2aW5ncyB0aW1lIG5hbWVzIGFyZSBpZ25vcmVkLgorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZQorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBTdHJpbmcgem9uZVN0cmluZ3NbXVtdID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFVubG9jYWxpemVkIGRhdGUtdGltZSBwYXR0ZXJuIGNoYXJhY3RlcnMuIEZvciBleGFtcGxlOiAneScsICdkJywgZXRjLgorICAgICAqIEFsbCBsb2NhbGVzIHVzZSB0aGUgc2FtZSB0aGVzZSB1bmxvY2FsaXplZCBwYXR0ZXJuIGNoYXJhY3RlcnMuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyAgcGF0dGVybkNoYXJzID0gIkd5TWRrSG1zU0VERndXYWhLeiI7CisKKyAgICAvKioKKyAgICAgKiBMb2NhbGl6ZWQgZGF0ZS10aW1lIHBhdHRlcm4gY2hhcmFjdGVycy4gRm9yIGV4YW1wbGUsIGEgbG9jYWxlIG1heQorICAgICAqIHdpc2ggdG8gdXNlICd1JyByYXRoZXIgdGhhbiAneScgdG8gcmVwcmVzZW50IHllYXJzIGluIGl0cyBkYXRlIGZvcm1hdAorICAgICAqIHBhdHRlcm4gc3RyaW5ncy4KKyAgICAgKiBUaGlzIHN0cmluZyBtdXN0IGJlIGV4YWN0bHkgMTggY2hhcmFjdGVycyBsb25nLCB3aXRoIHRoZSBpbmRleCBvZgorICAgICAqIHRoZSBjaGFyYWN0ZXJzIGRlc2NyaWJlZCBieSA8Y29kZT5EYXRlRm9ybWF0LkVSQV9GSUVMRDwvY29kZT4sCisgICAgICogPGNvZGU+RGF0ZUZvcm1hdC5ZRUFSX0ZJRUxEPC9jb2RlPiwgZXRjLiAgVGh1cywgaWYgdGhlIHN0cmluZyB3ZXJlCisgICAgICogIlh6Li4uIiwgdGhlbiBsb2NhbGl6ZWQgcGF0dGVybnMgd291bGQgdXNlICdYJyBmb3IgZXJhIGFuZCAneicgZm9yIHllYXIuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIFN0cmluZyAgbG9jYWxQYXR0ZXJuQ2hhcnMgPSBudWxsOworCisgICAgLyogdXNlIHNlcmlhbFZlcnNpb25VSUQgZnJvbSBKREsgMS4xLjQgZm9yIGludGVyb3BlcmFiaWxpdHkgKi8KKyAgICBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gLTU5ODc5NzM1NDU1NDk0MjQ3MDJMOworCisgICAgLyoqCisgICAgICogR2V0cyBlcmEgc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJBRCIgYW5kICJCQyIuCisgICAgICogQHJldHVybiB0aGUgZXJhIHN0cmluZ3MuCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1tdIGdldEVyYXMoKSB7CisgICAgICAgIHJldHVybiBkdXBsaWNhdGUoZXJhcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyBlcmEgc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJBRCIgYW5kICJCQyIuCisgICAgICogQHBhcmFtIG5ld0VyYXMgdGhlIG5ldyBlcmEgc3RyaW5ncy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRFcmFzKFN0cmluZ1tdIG5ld0VyYXMpIHsKKyAgICAgICAgZXJhcyA9IGR1cGxpY2F0ZShuZXdFcmFzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIG1vbnRoIHN0cmluZ3MuIEZvciBleGFtcGxlOiAiSmFudWFyeSIsICJGZWJydWFyeSIsIGV0Yy4KKyAgICAgKiBAcmV0dXJuIHRoZSBtb250aCBzdHJpbmdzLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRNb250aHMoKSB7CisgICAgICAgIHJldHVybiBkdXBsaWNhdGUobW9udGhzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIG1vbnRoIHN0cmluZ3MuIEZvciBleGFtcGxlOiAiSmFudWFyeSIsICJGZWJydWFyeSIsIGV0Yy4KKyAgICAgKiBAcGFyYW0gbmV3TW9udGhzIHRoZSBuZXcgbW9udGggc3RyaW5ncy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNb250aHMoU3RyaW5nW10gbmV3TW9udGhzKSB7CisgICAgICAgIG1vbnRocyA9IGR1cGxpY2F0ZShuZXdNb250aHMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgc2hvcnQgbW9udGggc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJKYW4iLCAiRmViIiwgZXRjLgorICAgICAqIEByZXR1cm4gdGhlIHNob3J0IG1vbnRoIHN0cmluZ3MuCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1tdIGdldFNob3J0TW9udGhzKCkgeworICAgICAgICByZXR1cm4gZHVwbGljYXRlKHNob3J0TW9udGhzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHNob3J0IG1vbnRoIHN0cmluZ3MuIEZvciBleGFtcGxlOiAiSmFuIiwgIkZlYiIsIGV0Yy4KKyAgICAgKiBAcGFyYW0gbmV3U2hvcnRNb250aHMgdGhlIG5ldyBzaG9ydCBtb250aCBzdHJpbmdzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNob3J0TW9udGhzKFN0cmluZ1tdIG5ld1Nob3J0TW9udGhzKSB7CisgICAgICAgIHNob3J0TW9udGhzID0gZHVwbGljYXRlKG5ld1Nob3J0TW9udGhzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHdlZWtkYXkgc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJTdW5kYXkiLCAiTW9uZGF5IiwgZXRjLgorICAgICAqIEByZXR1cm4gdGhlIHdlZWtkYXkgc3RyaW5ncy4gVXNlIDxjb2RlPkNhbGVuZGFyLlNVTkRBWTwvY29kZT4sCisgICAgICogPGNvZGU+Q2FsZW5kYXIuTU9OREFZPC9jb2RlPiwgZXRjLiB0byBpbmRleCB0aGUgcmVzdWx0IGFycmF5LgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRXZWVrZGF5cygpIHsKKyAgICAgICAgcmV0dXJuIGR1cGxpY2F0ZSh3ZWVrZGF5cyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB3ZWVrZGF5IHN0cmluZ3MuIEZvciBleGFtcGxlOiAiU3VuZGF5IiwgIk1vbmRheSIsIGV0Yy4KKyAgICAgKiBAcGFyYW0gbmV3V2Vla2RheXMgdGhlIG5ldyB3ZWVrZGF5IHN0cmluZ3MuIFRoZSBhcnJheSBzaG91bGQKKyAgICAgKiBiZSBpbmRleGVkIGJ5IDxjb2RlPkNhbGVuZGFyLlNVTkRBWTwvY29kZT4sCisgICAgICogPGNvZGU+Q2FsZW5kYXIuTU9OREFZPC9jb2RlPiwgZXRjLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFdlZWtkYXlzKFN0cmluZ1tdIG5ld1dlZWtkYXlzKSB7CisgICAgICAgIHdlZWtkYXlzID0gZHVwbGljYXRlKG5ld1dlZWtkYXlzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHNob3J0IHdlZWtkYXkgc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJTdW4iLCAiTW9uIiwgZXRjLgorICAgICAqIEByZXR1cm4gdGhlIHNob3J0IHdlZWtkYXkgc3RyaW5ncy4gVXNlIDxjb2RlPkNhbGVuZGFyLlNVTkRBWTwvY29kZT4sCisgICAgICogPGNvZGU+Q2FsZW5kYXIuTU9OREFZPC9jb2RlPiwgZXRjLiB0byBpbmRleCB0aGUgcmVzdWx0IGFycmF5LgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRTaG9ydFdlZWtkYXlzKCkgeworICAgICAgICByZXR1cm4gZHVwbGljYXRlKHNob3J0V2Vla2RheXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgc2hvcnQgd2Vla2RheSBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIlN1biIsICJNb24iLCBldGMuCisgICAgICogQHBhcmFtIG5ld1Nob3J0V2Vla2RheXMgdGhlIG5ldyBzaG9ydCB3ZWVrZGF5IHN0cmluZ3MuIFRoZSBhcnJheSBzaG91bGQKKyAgICAgKiBiZSBpbmRleGVkIGJ5IDxjb2RlPkNhbGVuZGFyLlNVTkRBWTwvY29kZT4sCisgICAgICogPGNvZGU+Q2FsZW5kYXIuTU9OREFZPC9jb2RlPiwgZXRjLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNob3J0V2Vla2RheXMoU3RyaW5nW10gbmV3U2hvcnRXZWVrZGF5cykgeworICAgICAgICBzaG9ydFdlZWtkYXlzID0gZHVwbGljYXRlKG5ld1Nob3J0V2Vla2RheXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgYW1wbSBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIkFNIiBhbmQgIlBNIi4KKyAgICAgKiBAcmV0dXJuIHRoZSB3ZWVrZGF5IHN0cmluZ3MuCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1tdIGdldEFtUG1TdHJpbmdzKCkgeworICAgICAgICByZXR1cm4gZHVwbGljYXRlKGFtcG1zKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIGFtcG0gc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJBTSIgYW5kICJQTSIuCisgICAgICogQHBhcmFtIG5ld0FtcG1zIHRoZSBuZXcgYW1wbSBzdHJpbmdzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEFtUG1TdHJpbmdzKFN0cmluZ1tdIG5ld0FtcG1zKSB7CisgICAgICAgIGFtcG1zID0gZHVwbGljYXRlKG5ld0FtcG1zKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRpbWV6b25lIHN0cmluZ3MuCisgICAgICogQHJldHVybiB0aGUgdGltZXpvbmUgc3RyaW5ncy4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nW11bXSBnZXRab25lU3RyaW5ncygpIHsKKyAgICAgICAgcmV0dXJuIGR1cGxpY2F0ZSh6b25lU3RyaW5ncyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aW1lem9uZSBzdHJpbmdzLgorICAgICAqIEBwYXJhbSBuZXdab25lU3RyaW5ncyB0aGUgbmV3IHRpbWV6b25lIHN0cmluZ3MuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Wm9uZVN0cmluZ3MoU3RyaW5nW11bXSBuZXdab25lU3RyaW5ncykgeworICAgICAgICB6b25lU3RyaW5ncyA9IGR1cGxpY2F0ZShuZXdab25lU3RyaW5ncyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyBsb2NhbGl6ZWQgZGF0ZS10aW1lIHBhdHRlcm4gY2hhcmFjdGVycy4gRm9yIGV4YW1wbGU6ICd1JywgJ3QnLCBldGMuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIGRhdGUtdGltZSBwYXR0ZXJuIGNoYXJhY3RlcnMuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRMb2NhbFBhdHRlcm5DaGFycygpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcobG9jYWxQYXR0ZXJuQ2hhcnMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgbG9jYWxpemVkIGRhdGUtdGltZSBwYXR0ZXJuIGNoYXJhY3RlcnMuIEZvciBleGFtcGxlOiAndScsICd0JywgZXRjLgorICAgICAqIEBwYXJhbSBuZXdMb2NhbFBhdHRlcm5DaGFycyB0aGUgbmV3IGxvY2FsaXplZCBkYXRlLXRpbWUKKyAgICAgKiBwYXR0ZXJuIGNoYXJhY3RlcnMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TG9jYWxQYXR0ZXJuQ2hhcnMoU3RyaW5nIG5ld0xvY2FsUGF0dGVybkNoYXJzKSB7CisgICAgICAgIGxvY2FsUGF0dGVybkNoYXJzID0gbmV3TG9jYWxQYXR0ZXJuQ2hhcnM7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIENsb25lYWJsZQorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzIG90aGVyID0gKERhdGVGb3JtYXRTeW1ib2xzKXN1cGVyLmNsb25lKCk7CisgICAgICAgICAgICBjb3B5TWVtYmVycyh0aGlzLCBvdGhlcik7CisgICAgICAgICAgICByZXR1cm4gb3RoZXI7CisgICAgICAgIH0gY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBoYXNoQ29kZS4KKyAgICAgKiBHZW5lcmF0ZXMgYSBoYXNoIGNvZGUgZm9yIHRoZSBEYXRlRm9ybWF0U3ltYm9scyBvYmplY3QuCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgaW50IGhhc2hjb2RlID0gMDsKKyAgICAgICAgZm9yIChpbnQgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMuem9uZVN0cmluZ3NbMF0ubGVuZ3RoOyArK2luZGV4KQorICAgICAgICAgICAgaGFzaGNvZGUgXj0gdGhpcy56b25lU3RyaW5nc1swXVtpbmRleF0uaGFzaENvZGUoKTsKKyAgICAgICAgcmV0dXJuIGhhc2hjb2RlOworICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlIGVxdWFscworICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMgPT0gb2JqKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKG9iaiA9PSBudWxsIHx8IGdldENsYXNzKCkgIT0gb2JqLmdldENsYXNzKCkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgdGhhdCA9IChEYXRlRm9ybWF0U3ltYm9scykgb2JqOworICAgICAgICByZXR1cm4gKFV0aWxpdHkuYXJyYXlFcXVhbHMoZXJhcywgdGhhdC5lcmFzKQorICAgICAgICAgICAgICAgICYmIFV0aWxpdHkuYXJyYXlFcXVhbHMobW9udGhzLCB0aGF0Lm1vbnRocykKKyAgICAgICAgICAgICAgICAmJiBVdGlsaXR5LmFycmF5RXF1YWxzKHNob3J0TW9udGhzLCB0aGF0LnNob3J0TW9udGhzKQorICAgICAgICAgICAgICAgICYmIFV0aWxpdHkuYXJyYXlFcXVhbHMod2Vla2RheXMsIHRoYXQud2Vla2RheXMpCisgICAgICAgICAgICAgICAgJiYgVXRpbGl0eS5hcnJheUVxdWFscyhzaG9ydFdlZWtkYXlzLCB0aGF0LnNob3J0V2Vla2RheXMpCisgICAgICAgICAgICAgICAgJiYgVXRpbGl0eS5hcnJheUVxdWFscyhhbXBtcywgdGhhdC5hbXBtcykKKyAgICAgICAgICAgICAgICAmJiBVdGlsaXR5LmFycmF5RXF1YWxzKHpvbmVTdHJpbmdzLCB0aGF0LnpvbmVTdHJpbmdzKQorICAgICAgICAgICAgICAgICYmIFV0aWxpdHkuYXJyYXlFcXVhbHMobG9jYWxQYXR0ZXJuQ2hhcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LmxvY2FsUGF0dGVybkNoYXJzKSk7CisgICAgfQorCisgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT1wcml2YXRlcz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgZGVmaW5pbmcgdGltZXpvbmUgb2Zmc2V0cy4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgaW50IG1pbGxpc1BlckhvdXIgPSA2MCo2MCoxMDAwOworCisKKyAgICBwcml2YXRlIHZvaWQgaW5pdGlhbGl6ZURhdGEoTG9jYWxlIGRlc2lyZWRMb2NhbGUpCisgICAgeworICAgICAgICBSZXNvdXJjZUJ1bmRsZSByYiA9IElDVUxvY2FsZURhdGEuZ2V0TG9jYWxlRWxlbWVudHMoZGVzaXJlZExvY2FsZSk7CisKKyAgICAgICAgLy8gRklYTUU6IGNhY2hlIG9ubHkgUmVzb3VyY2VCdW5kbGUuIEhlbmNlIGV2ZXJ5IHRpbWUsIHdpbGwgZG8KKyAgICAgICAgLy8gZ2V0T2JqZWN0KCkuIFRoaXMgd29uJ3QgYmUgbmVjZXNzYXJ5IGlmIHRoZSBSZXNvdXJjZSBpdHNlbGYKKyAgICAgICAgLy8gaXMgY2FjaGVkLgorICAgICAgICBlcmFzID0gcmIuZ2V0U3RyaW5nQXJyYXkoIkVyYXMiKTsKKyAgICAgICAgbW9udGhzID0gcmIuZ2V0U3RyaW5nQXJyYXkoIk1vbnRoTmFtZXMiKTsKKyAgICAgICAgc2hvcnRNb250aHMgPSByYi5nZXRTdHJpbmdBcnJheSgiTW9udGhBYmJyZXZpYXRpb25zIik7CisKKyAgICAgICAgU3RyaW5nW10gbFdlZWtkYXlzID0gcmIuZ2V0U3RyaW5nQXJyYXkoIkRheU5hbWVzIik7CisgICAgICAgIHdlZWtkYXlzID0gbmV3IFN0cmluZ1s4XTsKKyAgICAgICAgd2Vla2RheXNbMF0gPSAiIjsgIC8vIDEtYmFzZWQKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShsV2Vla2RheXMsIDAsIHdlZWtkYXlzLCAxLCBsV2Vla2RheXMubGVuZ3RoKTsKKworICAgICAgICBTdHJpbmdbXSBzV2Vla2RheXMgPSByYi5nZXRTdHJpbmdBcnJheSgiRGF5QWJicmV2aWF0aW9ucyIpOworICAgICAgICBzaG9ydFdlZWtkYXlzID0gbmV3IFN0cmluZ1s4XTsKKyAgICAgICAgc2hvcnRXZWVrZGF5c1swXSA9ICIiOyAgLy8gMS1iYXNlZAorICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHNXZWVrZGF5cywgMCwgc2hvcnRXZWVrZGF5cywgMSwgc1dlZWtkYXlzLmxlbmd0aCk7CisKKyAgICAgICAgYW1wbXMgPSByYi5nZXRTdHJpbmdBcnJheSgiQW1QbU1hcmtlcnMiKTsKKworICAgICAgICAvLyBoYWNrIGFyb3VuZCBjbGFzcyBjYXN0IHByb2JsZW0KKyAgICAgICAgLy8gem9uZVN0cmluZ3MgPSAoU3RyaW5nW11bXSlyYi5nZXRPYmplY3QoInpvbmVTdHJpbmdzIik7CisgICAgICAgIE9iamVjdFtdIHpvbmVPYmplY3QgPSAoT2JqZWN0W10pcmIuZ2V0T2JqZWN0KCJ6b25lU3RyaW5ncyIpOworICAgICAgICB6b25lU3RyaW5ncyA9IG5ldyBTdHJpbmdbem9uZU9iamVjdC5sZW5ndGhdW107CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgem9uZVN0cmluZ3MubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHpvbmVTdHJpbmdzW2ldID0gKFN0cmluZ1tdKXpvbmVPYmplY3RbaV07CisgICAgICAgIH0KKworICAgICAgICBsb2NhbFBhdHRlcm5DaGFycyA9IHJiLmdldFN0cmluZygibG9jYWxQYXR0ZXJuQ2hhcnMiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYWNrYWdlIHByaXZhdGU6IHVzZWQgYnkgU2ltcGxlRGF0ZUZvcm1hdAorICAgICAqIEdldHMgdGhlIGluZGV4IGZvciB0aGUgZ2l2ZW4gdGltZSB6b25lIElEIHRvIG9idGFpbiB0aGUgdGltZXpvbmUKKyAgICAgKiBzdHJpbmdzIGZvciBmb3JtYXR0aW5nLiBUaGUgdGltZSB6b25lIElEIGlzIGp1c3QgZm9yIHByb2dyYW1tYXRpYworICAgICAqIGxvb2t1cC4gTk9UIExPQ0FMSVpFRCEhIQorICAgICAqIEBwYXJhbSBJRCB0aGUgZ2l2ZW4gdGltZSB6b25lIElELgorICAgICAqIEByZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBnaXZlbiB0aW1lIHpvbmUgSUQuICBSZXR1cm5zIC0xIGlmCisgICAgICogdGhlIGdpdmVuIHRpbWUgem9uZSBJRCBjYW4ndCBiZSBsb2NhdGVkIGluIHRoZSBEYXRlRm9ybWF0U3ltYm9scyBvYmplY3QuCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlNpbXBsZVRpbWVab25lCisgICAgICovCisgICAgZmluYWwgaW50IGdldFpvbmVJbmRleChTdHJpbmcgSUQpIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IF9nZXRab25lSW5kZXgoSUQpOworICAgICAgICBpZiAocmVzdWx0ID49IDApIHsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIERvIGEgc2VhcmNoIHRocm91Z2ggdGhlIGVxdWl2YWxlbmN5IGdyb3VwIGZvciB0aGUgZ2l2ZW4gSUQKKyAgICAgICAgaW50IG4gPSBUaW1lWm9uZS5jb3VudEVxdWl2YWxlbnRJRHMoSUQpOworICAgICAgICBpZiAobiA+IDEpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxuOyArK2kpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZXF1aXZJRCA9IFRpbWVab25lLmdldEVxdWl2YWxlbnRJRChJRCwgaSk7CisgICAgICAgICAgICAgICAgaWYgKCFlcXVpdklELmVxdWFscyhJRCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGVxdWl2UmVzdWx0ID0gX2dldFpvbmVJbmRleChlcXVpdklEKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGVxdWl2UmVzdWx0ID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlcXVpdlJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBMb29rdXAgdGhlIGdpdmVuIElELiAgRG8gTk9UIGRvIGFuIGVxdWl2YWxlbmN5IHNlYXJjaC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBfZ2V0Wm9uZUluZGV4KFN0cmluZyBJRCkKKyAgICB7CisgICAgICAgIGZvciAoaW50IGluZGV4PTA7IGluZGV4PHpvbmVTdHJpbmdzLmxlbmd0aDsgaW5kZXgrKykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAoSUQuZXF1YWxzSWdub3JlQ2FzZSh6b25lU3RyaW5nc1tpbmRleF1bMF0pKSByZXR1cm4gaW5kZXg7CisgICAgICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIC8qKgorICAgICAqIENsb25lcyBhbiBhcnJheSBvZiBTdHJpbmdzLgorICAgICAqIEBwYXJhbSBzcmNBcnJheSB0aGUgc291cmNlIGFycmF5IHRvIGJlIGNsb25lZC4KKyAgICAgKiBAcGFyYW0gY291bnQgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgZ2l2ZW4gc291cmNlIGFycmF5LgorICAgICAqIEByZXR1cm4gYSBjbG9uZWQgYXJyYXkuCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBTdHJpbmdbXSBkdXBsaWNhdGUoU3RyaW5nW10gc3JjQXJyYXkpCisgICAgeworICAgICAgICByZXR1cm4gKFN0cmluZ1tdKXNyY0FycmF5LmNsb25lKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBmaW5hbCBTdHJpbmdbXVtdIGR1cGxpY2F0ZShTdHJpbmdbXVtdIHNyY0FycmF5KQorICAgIHsKKyAgICAgICAgU3RyaW5nW11bXSBhQ29weSA9IG5ldyBTdHJpbmdbc3JjQXJyYXkubGVuZ3RoXVtdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNyY0FycmF5Lmxlbmd0aDsgKytpKQorICAgICAgICAgICAgYUNvcHlbaV0gPSBkdXBsaWNhdGUoc3JjQXJyYXlbaV0pOworICAgICAgICByZXR1cm4gYUNvcHk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2xvbmVzIGFsbCB0aGUgZGF0YSBtZW1iZXJzIGZyb20gdGhlIHNvdXJjZSBEYXRlRm9ybWF0U3ltYm9scyB0bworICAgICAqIHRoZSB0YXJnZXQgRGF0ZUZvcm1hdFN5bWJvbHMuIFRoaXMgaXMgb25seSBmb3Igc3ViY2xhc3Nlcy4KKyAgICAgKiBAcGFyYW0gc3JjIHRoZSBzb3VyY2UgRGF0ZUZvcm1hdFN5bWJvbHMuCisgICAgICogQHBhcmFtIGRzdCB0aGUgdGFyZ2V0IERhdGVGb3JtYXRTeW1ib2xzLgorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgdm9pZCBjb3B5TWVtYmVycyhEYXRlRm9ybWF0U3ltYm9scyBzcmMsIERhdGVGb3JtYXRTeW1ib2xzIGRzdCkKKyAgICB7CisgICAgICAgIGRzdC5lcmFzID0gZHVwbGljYXRlKHNyYy5lcmFzKTsKKyAgICAgICAgZHN0Lm1vbnRocyA9IGR1cGxpY2F0ZShzcmMubW9udGhzKTsKKyAgICAgICAgZHN0LnNob3J0TW9udGhzID0gZHVwbGljYXRlKHNyYy5zaG9ydE1vbnRocyk7CisgICAgICAgIGRzdC53ZWVrZGF5cyA9IGR1cGxpY2F0ZShzcmMud2Vla2RheXMpOworICAgICAgICBkc3Quc2hvcnRXZWVrZGF5cyA9IGR1cGxpY2F0ZShzcmMuc2hvcnRXZWVrZGF5cyk7CisgICAgICAgIGRzdC5hbXBtcyA9IGR1cGxpY2F0ZShzcmMuYW1wbXMpOworICAgICAgICBkc3Quem9uZVN0cmluZ3MgPSBkdXBsaWNhdGUoc3JjLnpvbmVTdHJpbmdzKTsKKyAgICAgICAgZHN0LmxvY2FsUGF0dGVybkNoYXJzID0gbmV3IFN0cmluZyAoc3JjLmxvY2FsUGF0dGVybkNoYXJzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlcyB0aGUgZXF1YWxpdHkgb2YgdGhlIHR3byBhcnJheXMgb2YgU3RyaW5nLgorICAgICAqIEBwYXJhbSBjdXJyZW50IHRoaXMgU3RyaW5nIGFycmF5LgorICAgICAqIEBwYXJhbSBvdGhlciB0aGF0IFN0cmluZyBhcnJheS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gZXF1YWxzKFN0cmluZ1tdIGN1cnJlbnQsIFN0cmluZ1tdIG90aGVyKQorICAgIHsKKyAgICAgICAgaW50IGNvdW50ID0gY3VycmVudC5sZW5ndGg7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgKytpKQorICAgICAgICAgICAgaWYgKCFjdXJyZW50W2ldLmVxdWFscyhvdGhlcltpXSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvL35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKworICAgIC8qKgorICAgICAqIEdldCB0aGUge0BsaW5rIERhdGVGb3JtYXRTeW1ib2xzfSBvYmplY3QgdGhhdCBzaG91bGQgYmUgdXNlZCB0byBmb3JtYXQgYQorICAgICAqIGNhbGVuZGFyIHN5c3RlbSdzIGRhdGVzIGluIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogPHA+CisgICAgICogPGI+U3ViY2xhc3Npbmc6PC9iPjxicj4KKyAgICAgKiBXaGVuIGNyZWF0aW5nIGEgbmV3IENhbGVuZGFyIHN1YmNsYXNzLCB5b3UgbXVzdCBjcmVhdGUgdGhlCisgICAgICoge0BsaW5rIFJlc291cmNlQnVuZGxlIFJlc291cmNlQnVuZGxlfQorICAgICAqIGNvbnRhaW5pbmcgaXRzIHtAbGluayBEYXRlRm9ybWF0U3ltYm9scyBEYXRlRm9ybWF0U3ltYm9sc30gaW4gYSBzcGVjaWZpYyBwbGFjZS4KKyAgICAgKiBUaGUgcmVzb3VyY2UgYnVuZGxlIG5hbWUgaXMgYmFzZWQgb24gdGhlIGNhbGVuZGFyJ3MgZnVsbHktc3BlY2lmaWVkCisgICAgICogY2xhc3MgbmFtZSwgd2l0aCAiLnJlc291cmNlcyIgaW5zZXJ0ZWQgYXQgdGhlIGVuZCBvZiB0aGUgcGFja2FnZSBuYW1lCisgICAgICogKGp1c3QgYmVmb3JlIHRoZSBjbGFzcyBuYW1lKSBhbmQgIlN5bWJvbHMiIGFwcGVuZGVkIHRvIHRoZSBlbmQuCisgICAgICogRm9yIGV4YW1wbGUsIHRoZSBidW5kbGUgY29ycmVzcG9uZGluZyB0byAiY29tLmlibS5pY3UudXRpbC5IZWJyZXdDYWxlbmRhciIKKyAgICAgKiBpcyAiY29tLmlibS5pY3UuaW1wbC5kYXRhLkhlYnJld0NhbGVuZGFyU3ltYm9scyIuCisgICAgICogPHA+CisgICAgICogV2l0aGluIHRoZSBSZXNvdXJjZUJ1bmRsZSwgdGhpcyBtZXRob2Qgc2VhcmNoZXMgZm9yIGZpdmUga2V5czoKKyAgICAgKiA8dWw+CisgICAgICogPGxpPjxiPkRheU5hbWVzPC9iPiAtCisgICAgICogICAgICBBbiBhcnJheSBvZiBzdHJpbmdzIGNvcnJlc3BvbmRpbmcgdG8gZWFjaCBwb3NzaWJsZQorICAgICAqICAgICAgdmFsdWUgb2YgdGhlIDxjb2RlPkRBWV9PRl9XRUVLPC9jb2RlPiBmaWVsZC4gIEV2ZW4gdGhvdWdoCisgICAgICogICAgICA8Y29kZT5EQVlfT0ZfV0VFSzwvY29kZT4gc3RhcnRzIHdpdGggPGNvZGU+U1VOREFZPC9jb2RlPiA9IDEsCisgICAgICogICAgICBUaGlzIGFycmF5IGlzIDAtYmFzZWQ7IHRoZSBuYW1lIGZvciBTdW5kYXkgZ29lcyBpbiB0aGUKKyAgICAgKiAgICAgIGZpcnN0IHBvc2l0aW9uLCBhdCBpbmRleCAwLiAgSWYgdGhpcyBrZXkgaXMgbm90IGZvdW5kCisgICAgICogICAgICBpbiB0aGUgYnVuZGxlLCB0aGUgZGF5IG5hbWVzIGFyZSBpbmhlcml0ZWQgZnJvbSB0aGUKKyAgICAgKiAgICAgIGRlZmF1bHQgPGNvZGU+RGF0ZUZvcm1hdFN5bWJvbHM8L2NvZGU+IGZvciB0aGUgcmVxdWVzdGVkIGxvY2FsZS4KKyAgICAgKgorICAgICAqIDxsaT48Yj5EYXlBYmJyZXZpYXRpb25zPC9iPiAtCisgICAgICogICAgICBBbiBhcnJheSBvZiBhYmJyZXZpYXRlZCBkYXkgbmFtZXMgY29ycmVzcG9uZGluZworICAgICAqICAgICAgdG8gdGhlIHZhbHVlcyBpbiB0aGUgIkRheU5hbWVzIiBhcnJheS4gIElmIHRoaXMga2V5CisgICAgICogICAgICBpcyBub3QgZm91bmQgaW4gdGhlIHJlc291cmNlIGJ1bmRsZSwgdGhlICJEYXlOYW1lcyIKKyAgICAgKiAgICAgIHZhbHVlcyBhcmUgdXNlZCBpbnN0ZWFkLiAgSWYgbmVpdGhlciBrZXkgaXMgZm91bmQsCisgICAgICogICAgICB0aGUgZGF5IGFiYnJldmlhdGlvbnMgYXJlIGluaGVyaXRlZCBmcm9tIHRoZSBkZWZhdWx0CisgICAgICogICAgICA8Y29kZT5EYXRlRm9ybWF0U3ltYm9sczwvY29kZT4gZm9yIHRoZSBsb2NhbGUuCisgICAgICoKKyAgICAgKiA8bGk+PGI+TW9udGhOYW1lczwvYj4gLQorICAgICAqICAgICAgQW4gYXJyYXkgb2Ygc3RyaW5ncyBjb3JyZXNwb25kaW5nIHRvIGVhY2ggcG9zc2libGUKKyAgICAgKiAgICAgIHZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQuICBJZiB0aGlzIGtleSBpcyBub3QgZm91bmQKKyAgICAgKiAgICAgIGluIHRoZSBidW5kbGUsIHRoZSBtb250aCBuYW1lcyBhcmUgaW5oZXJpdGVkIGZyb20gdGhlCisgICAgICogICAgICBkZWZhdWx0IDxjb2RlPkRhdGVGb3JtYXRTeW1ib2xzPC9jb2RlPiBmb3IgdGhlIHJlcXVlc3RlZCBsb2NhbGUuCisgICAgICoKKyAgICAgKiA8bGk+PGI+TW9udGhBYmJyZXZpYXRpb25zPC9iPiAtCisgICAgICogICAgICBBbiBhcnJheSBvZiBhYmJyZXZpYXRlZCBkYXkgbmFtZXMgY29ycmVzcG9uZGluZworICAgICAqICAgICAgdG8gdGhlIHZhbHVlcyBpbiB0aGUgIk1vbnRoTmFtZXMiIGFycmF5LiAgSWYgdGhpcyBrZXkKKyAgICAgKiAgICAgIGlzIG5vdCBmb3VuZCBpbiB0aGUgcmVzb3VyY2UgYnVuZGxlLCB0aGUgIk1vbnRoTmFtZXMiCisgICAgICogICAgICB2YWx1ZXMgYXJlIHVzZWQgaW5zdGVhZC4gIElmIG5laXRoZXIga2V5IGlzIGZvdW5kLAorICAgICAqICAgICAgdGhlIGRheSBhYmJyZXZpYXRpb25zIGFyZSBpbmhlcml0ZWQgZnJvbSB0aGUgZGVmYXVsdAorICAgICAqICAgICAgPGNvZGU+RGF0ZUZvcm1hdFN5bWJvbHM8L2NvZGU+IGZvciB0aGUgbG9jYWxlLgorICAgICAqCisgICAgICogPGxpPjxiPkVyYXM8L2I+IC0KKyAgICAgKiAgICAgIEFuIGFycmF5IG9mIHN0cmluZ3MgY29ycmVzcG9uZGluZyB0byBlYWNoIHBvc3NpYmxlCisgICAgICogICAgICB2YWx1ZSBvZiB0aGUgPGNvZGU+RVJBPC9jb2RlPiBmaWVsZC4gIElmIHRoaXMga2V5IGlzIG5vdCBmb3VuZAorICAgICAqICAgICAgaW4gdGhlIGJ1bmRsZSwgdGhlIGVyYSBuYW1lcyBhcmUgaW5oZXJpdGVkIGZyb20gdGhlCisgICAgICogICAgICBkZWZhdWx0IDxjb2RlPkRhdGVGb3JtYXRTeW1ib2xzPC9jb2RlPiBmb3IgdGhlIHJlcXVlc3RlZCBsb2NhbGUuCisgICAgICogPC91bD4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gY2FsICAgICAgIFRoZSBjYWxlbmRhciBzeXN0ZW0gd2hvc2UgZGF0ZSBmb3JtYXQgc3ltYm9scyBhcmUgZGVzaXJlZC4KKyAgICAgKiBAcGFyYW0gbG9jYWxlICAgIFRoZSBsb2NhbGUgd2hvc2Ugc3ltYm9scyBhcmUgZGVzaXJlZC4KKyAgICAgKgorICAgICAqIEBzZWUgRGF0ZUZvcm1hdFN5bWJvbHMjRGF0ZUZvcm1hdFN5bWJvbHMoamF2YS51dGlsLkxvY2FsZSkKKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZUZvcm1hdFN5bWJvbHMoQ2FsZW5kYXIgY2FsLCBMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHRoaXMoY2FsPT1udWxsP251bGw6Y2FsLmdldENsYXNzKCksIGxvY2FsZSk7CisgICAgfQorCisgICAgcHVibGljIERhdGVGb3JtYXRTeW1ib2xzKENsYXNzIGNhbGVuZGFyQ2xhc3MsIExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgdGhpcyhsb2NhbGUpOyAvLyBvbGQtc3R5bGUgY29uc3RydWN0aW9uCisgICAgICAgIGlmIChjYWxlbmRhckNsYXNzICE9IG51bGwpIHsKKyAgICAgICAgICAgIFJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IG51bGw7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGJ1bmRsZSA9IGdldERhdGVGb3JtYXRCdW5kbGUoY2FsZW5kYXJDbGFzcywgbG9jYWxlKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgLy9pZiAoIShjYWwgaW5zdGFuY2VvZiBHcmVnb3JpYW5DYWxlbmRhcikpIHsKKyAgICAgICAgICAgICAgICBpZiAoIShHcmVnb3JpYW5DYWxlbmRhci5jbGFzcy5pc0Fzc2lnbmFibGVGcm9tKGNhbGVuZGFyQ2xhc3MpKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBPayBmb3Igc3ltYm9scyB0byBiZSBtaXNzaW5nIGZvciBhIEdyZWdvcmlhbiBjYWxlbmRhciwgYnV0CisgICAgICAgICAgICAgICAgICAgIC8vIG5vdCBmb3IgYW55IG90aGVyIHR5cGUuCisgICAgICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY29uc3RydWN0Q2FsZW5kYXJTcGVjaWZpYyhidW5kbGUpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRmV0Y2ggYSBjdXN0b20gY2FsZW5kYXIncyBEYXRlRm9ybWF0U3ltYm9scyBvdXQgb2YgdGhlIGdpdmVuIHJlc291cmNlCisgICAgICogYnVuZGxlLiAgU3ltYm9scyB0aGF0IGFyZSBub3Qgb3ZlcnJpZGRlbiBhcmUgaW5oZXJpdGVkIGZyb20gdGhlCisgICAgICogZGVmYXVsdCBEYXRlRm9ybWF0U3ltYm9scyBmb3IgdGhlIGxvY2FsZS4KKyAgICAgKiBAc2VlIERhdGVGb3JtYXRTeW1ib2xzI0RhdGVGb3JtYXRTeW1ib2xzCisgICAgICovCisgICAgcHVibGljIERhdGVGb3JtYXRTeW1ib2xzKFJlc291cmNlQnVuZGxlIGJ1bmRsZSwgTG9jYWxlIGxvY2FsZSkgeworICAgICAgICAvLyBHZXQgdGhlIGRlZmF1bHQgc3ltYm9scyBmb3IgdGhlIGxvY2FsZSwgc2luY2UgbW9zdAorICAgICAgICAvLyBjYWxlbmRhcnMgd2lsbCBvbmx5IG5lZWQgdG8gb3ZlcnJpZGUgbW9udGggbmFtZXMgYW5kIHdpbGwKKyAgICAgICAgLy8gd2FudCBldmVyeXRoaW5nIGVsc2UgdGhlIHNhbWUKKyAgICAgICAgdGhpcyhsb2NhbGUpOyAvLyBvbGQtc3R5bGUgY29uc3RydWN0aW9uCisgICAgICAgIGNvbnN0cnVjdENhbGVuZGFyU3BlY2lmaWMoYnVuZGxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHaXZlbiBhIHJlc291cmNlIGJ1bmRsZSBzcGVjaWZpYyB0byB0aGUgZ2l2ZW4gQ2FsZW5kYXIgY2xhc3MsCisgICAgICogaW5pdGlhbGl6ZSB0aGlzIG9iamVjdC4gIE1lbWJlciB2YXJpYWJsZXMgd2lsbCBoYXZlIGFscmVhZHkgYmVlbgorICAgICAqIGluaXRpYWxpemVkIHVzaW5nIHRoZSBkZWZhdWx0IG1lY2hhbmlzbSwgc28gb25seSB0aG9zZSB0aGF0IGRpZmZlcgorICAgICAqIGZyb20gb3Igc3VwcGxlbWVudCB0aGUgc3RhbmRhcmQgcmVzb3VyY2UgZGF0YSBuZWVkIGJlIGhhbmRsZWQgaGVyZS4KKyAgICAgKiBJZiBzdWJjbGFzc2VzIG92ZXJyaWRlIHRoaXMgbWV0aG9kLCB0aGV5IHNob3VsZCBjYWxsCisgICAgICogPGNvZGU+c3VwZXIuY29uc3RydWN0Q2FsZW5kYXJTcGVjaWZpYyhidW5kbGUpPC9jb2RlPiBhcyBuZWVkZWQgdG8KKyAgICAgKiBoYW5kbGUgdGhlICJEYXlOYW1lcyIsICJEYXlBYmJyZXZpYXRpb25zIiwgIk1vbnRoTmFtZXMiLAorICAgICAqICJNb250aEFiYnJldmlhdGlvbnMiLCBhbmQgIkVyYXMiIHJlc291cmNlIGRhdGEuCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgY29uc3RydWN0Q2FsZW5kYXJTcGVjaWZpYyhSZXNvdXJjZUJ1bmRsZSBidW5kbGUpIHsKKworICAgICAgICAvLyBGZXRjaCB0aGUgZGF5IG5hbWVzIGZyb20gdGhlIHJlc291cmNlIGJ1bmRsZS4gIElmIHRoZXkncmUgbm90IGZvdW5kLAorICAgICAgICAvLyBpdCdzIG9rOyB3ZSdsbCBqdXN0IHVzZSB0aGUgZGVmYXVsdCBvbmVzLgorICAgICAgICAvLyBBbGxvdyBhIG51bGwgUmVzb3VyY2VCdW5kbGUganVzdCBmb3IgdGhlIHNha2Ugb2YgY29tcGxldGVuZXNzOworICAgICAgICAvLyB0aGlzIGlzIHVzZWZ1bCBmb3IgY2FsZW5kYXJzIHRoYXQgZG9uJ3QgaGF2ZSBhbnkgb3ZlcnJpZGRlbiBzeW1ib2xzCisKKyAgICAgICAgaWYgKGJ1bmRsZSAhPSBudWxsKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIFN0cmluZ1tdIHRlbXAgPSBidW5kbGUuZ2V0U3RyaW5nQXJyYXkoIkRheU5hbWVzIik7CisgICAgICAgICAgICAgICAgc2V0V2Vla2RheXModGVtcCk7CisgICAgICAgICAgICAgICAgc2V0U2hvcnRXZWVrZGF5cyh0ZW1wKTsKKworICAgICAgICAgICAgICAgIHRlbXAgPSBidW5kbGUuZ2V0U3RyaW5nQXJyYXkoIkRheUFiYnJldmlhdGlvbnMiKTsKKyAgICAgICAgICAgICAgICBzZXRTaG9ydFdlZWtkYXlzKCB0ZW1wICk7CisgICAgICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkge30KKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBTdHJpbmdbXSB0ZW1wID0gYnVuZGxlLmdldFN0cmluZ0FycmF5KCJNb250aE5hbWVzIik7CisgICAgICAgICAgICAgICAgc2V0TW9udGhzKCB0ZW1wICk7CisgICAgICAgICAgICAgICAgc2V0U2hvcnRNb250aHMoIHRlbXAgKTsKKworICAgICAgICAgICAgICAgIHRlbXAgPSBidW5kbGUuZ2V0U3RyaW5nQXJyYXkoIk1vbnRoQWJicmV2aWF0aW9ucyIpOworICAgICAgICAgICAgICAgIHNldFNob3J0TW9udGhzKCB0ZW1wICk7CisgICAgICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkge30KKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBTdHJpbmdbXSB0ZW1wID0gYnVuZGxlLmdldFN0cmluZ0FycmF5KCJFcmFzIik7CisgICAgICAgICAgICAgICAgc2V0RXJhcyggdGVtcCApOworICAgICAgICAgICAgfSBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHt9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGaW5kIHRoZSBSZXNvdXJjZUJ1bmRsZSBjb250YWluaW5nIHRoZSBkYXRlIGZvcm1hdCBpbmZvcm1hdGlvbiBmb3IKKyAgICAgKiBhIHNwZWNpZmllZCBjYWxlbmRhciBzdWJjbGFzcyBpbiBhIGdpdmVuIGxvY2FsZS4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgcmVzb3VyY2UgYnVuZGxlIG5hbWUgaXMgYmFzZWQgb24gdGhlIGNhbGVuZGFyJ3MgZnVsbHktc3BlY2lmaWVkCisgICAgICogY2xhc3MgbmFtZSwgd2l0aCAiLnJlc291cmNlcyIgaW5zZXJ0ZWQgYXQgdGhlIGVuZCBvZiB0aGUgcGFja2FnZSBuYW1lCisgICAgICogKGp1c3QgYmVmb3JlIHRoZSBjbGFzcyBuYW1lKSBhbmQgIlN5bWJvbHMiIGFwcGVuZGVkIHRvIHRoZSBlbmQuCisgICAgICogRm9yIGV4YW1wbGUsIHRoZSBidW5kbGUgY29ycmVzcG9uZGluZyB0byAiY29tLmlibS5pY3UudXRpbC5IZWJyZXdDYWxlbmRhciIKKyAgICAgKiBpcyAiY29tLmlibS5pY3UuaW1wbC5kYXRhLkhlYnJld0NhbGVuZGFyU3ltYm9scyIuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBSZXNvdXJjZUJ1bmRsZSBnZXREYXRlRm9ybWF0QnVuZGxlKENsYXNzIGNhbGVuZGFyQ2xhc3MsIExvY2FsZSBsb2NhbGUpCisgICAgICAgIHRocm93cyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24geworCisgICAgICAgIC8vIEZpbmQgdGhlIGNhbGVuZGFyJ3MgY2xhc3MgbmFtZSwgd2hpY2ggd2UncmUgZ29pbmcgdG8gdXNlIHRvIGNvbnN0cnVjdCB0aGUKKyAgICAgICAgLy8gcmVzb3VyY2UgYnVuZGxlIG5hbWUuCisgICAgICAgIFN0cmluZyBmdWxsTmFtZSA9IGNhbGVuZGFyQ2xhc3MuZ2V0TmFtZSgpOworICAgICAgICBpbnQgbGFzdERvdCA9IGZ1bGxOYW1lLmxhc3RJbmRleE9mKCcuJyk7CisgICAgICAgIFN0cmluZyBjbGFzc05hbWUgPSBmdWxsTmFtZS5zdWJzdHJpbmcobGFzdERvdCsxKTsKKworICAgICAgICBTdHJpbmcgYnVuZGxlTmFtZSA9IGNsYXNzTmFtZSArICJTeW1ib2xzIjsKKworICAgICAgICBSZXNvdXJjZUJ1bmRsZSByZXN1bHQgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gSUNVTG9jYWxlRGF0YS5nZXRSZXNvdXJjZUJ1bmRsZShidW5kbGVOYW1lLCBsb2NhbGUpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy9pZiAoIShjYWwgaW5zdGFuY2VvZiBHcmVnb3JpYW5DYWxlbmRhcikpIHsKKyAgICAgICAgICAgIGlmICghKEdyZWdvcmlhbkNhbGVuZGFyLmNsYXNzLmlzQXNzaWduYWJsZUZyb20oY2FsZW5kYXJDbGFzcykpKSB7CisgICAgICAgICAgICAgICAgLy8gT2sgZm9yIHN5bWJvbHMgdG8gYmUgbWlzc2luZyBmb3IgYSBHcmVnb3JpYW4gY2FsZW5kYXIsIGJ1dAorICAgICAgICAgICAgICAgIC8vIG5vdCBmb3IgYW55IG90aGVyIHR5cGUuCisgICAgICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHN0YXRpYyBwdWJsaWMgUmVzb3VyY2VCdW5kbGUgZ2V0RGF0ZUZvcm1hdEJ1bmRsZShDYWxlbmRhciBjYWwsIExvY2FsZSBsb2NhbGUpCisgICAgICAgIHRocm93cyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24geworICAgICAgICByZXR1cm4gZ2V0RGF0ZUZvcm1hdEJ1bmRsZShjYWw9PW51bGw/bnVsbDpjYWwuZ2V0Q2xhc3MoKSwgbG9jYWxlKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9EZWNpbWFsRm9ybWF0LmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9EZWNpbWFsRm9ybWF0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTgzMWRkZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RlY2ltYWxGb3JtYXQuamF2YQpAQCAtMCwwICsxLDMzMDEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RlY2ltYWxGb3JtYXQuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wNS8wOSAxNjo1OToyMCAkIAorICogJFJldmlzaW9uOiAxLjE3ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DdXJyZW5jeTsKK2ltcG9ydCBqYXZhLnRleHQuRm9ybWF0OworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworaW1wb3J0IGphdmEubWF0aC5CaWdJbnRlZ2VyOworaW1wb3J0IGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworaW1wb3J0IGphdmEuaW8uSW52YWxpZE9iamVjdEV4Y2VwdGlvbjsgLy9CdWcgNDE4NTc2MSBbUmljaGFyZC9HQ0xdCisKKy8qKgorICogPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4gaXMgYSBjb25jcmV0ZSBzdWJjbGFzcyBvZgorICogPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiB0aGF0IGZvcm1hdHMgZGVjaW1hbCBudW1iZXJzLiBJdCBoYXMgYSB2YXJpZXR5IG9mCisgKiBmZWF0dXJlcyBkZXNpZ25lZCB0byBtYWtlIGl0IHBvc3NpYmxlIHRvIHBhcnNlIGFuZCBmb3JtYXQgbnVtYmVycyBpbiBhbnkKKyAqIGxvY2FsZSwgaW5jbHVkaW5nIHN1cHBvcnQgZm9yIFdlc3Rlcm4sIEFyYWJpYywgb3IgSW5kaWMgZGlnaXRzLiAgSXQgYWxzbworICogc3VwcG9ydHMgZGlmZmVyZW50IGZsYXZvcnMgb2YgbnVtYmVycywgaW5jbHVkaW5nIGludGVnZXJzICgxMjMpLCBmaXhlZC1wb2ludAorICogbnVtYmVycyAoMTIzLjQpLCBzY2llbnRpZmljIG5vdGF0aW9uICgxLjIzRTQpLCBwZXJjZW50YWdlcyAoMTIlKSwgYW5kCisgKiBjdXJyZW5jeSBhbW91bnRzICgkMTIzKS4gIEFsbCBvZiB0aGVzZSBmbGF2b3JzIGNhbiBiZSBlYXNpbHkgbG9jYWxpemVkLgorICoKKyAqIDxwPjxzdHJvbmc+VGhpcyBpcyBhbiBlbmhhbmNlZCB2ZXJzaW9uIG9mIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IHRoYXQKKyAqIGlzIGJhc2VkIG9uIHRoZSBzdGFuZGFyZCB2ZXJzaW9uIGluIHRoZSBKREsuICBOZXcgb3IgY2hhbmdlZCBmdW5jdGlvbmFsaXR5CisgKiBpcyBsYWJlbGVkCisgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+IG9yCisgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5DSEFOR0VEPC9mb250Pjwvc3Ryb25nPi48L3N0cm9uZz4KKyAqCisgKiA8cD5UbyBvYnRhaW4gYSA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IGZvciBhIHNwZWNpZmljIGxvY2FsZSAoaW5jbHVkaW5nIHRoZQorICogZGVmYXVsdCBsb2NhbGUpIGNhbGwgb25lIG9mIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4ncyBmYWN0b3J5IG1ldGhvZHMgc3VjaAorICogYXMgPGNvZGU+Z2V0SW5zdGFuY2UoKTwvY29kZT4uIERvIG5vdCBjYWxsIHRoZSA8Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPgorICogY29uc3RydWN0b3JzIGRpcmVjdGx5LCB1bmxlc3MgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLCBzaW5jZSB0aGUKKyAqIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4gZmFjdG9yeSBtZXRob2RzIG1heSByZXR1cm4gc3ViY2xhc3NlcyBvdGhlciB0aGFuCisgKiA8Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPi4gSWYgeW91IG5lZWQgdG8gY3VzdG9taXplIHRoZSBmb3JtYXQgb2JqZWN0LCBkbworICogc29tZXRoaW5nIGxpa2UgdGhpczoKKyAqCisgKiA8YmxvY2txdW90ZT48cHJlPgorICogTnVtYmVyRm9ybWF0IGYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UobG9jKTsKKyAqIGlmIChmIGluc3RhbmNlb2YgRGVjaW1hbEZvcm1hdCkgeworICogICAgICgoRGVjaW1hbEZvcm1hdCkgZikuc2V0RGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duKHRydWUpOworICogfQorICogPC9wcmU+PC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPkEgPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4gY29tcHJpc2VzIGEgPGVtPnBhdHRlcm48L2VtPiBhbmQgYSBzZXQgb2YKKyAqIDxlbT5zeW1ib2xzPC9lbT4uICBUaGUgcGF0dGVybiBtYXkgYmUgc2V0IGRpcmVjdGx5IHVzaW5nCisgKiA8Y29kZT5hcHBseVBhdHRlcm4oKTwvY29kZT4sIG9yIGluZGlyZWN0bHkgdXNpbmcgdGhlIEFQSSBtZXRob2RzLiAgVGhlCisgKiBzeW1ib2xzIGFyZSBzdG9yZWQgaW4gYSA8Y29kZT5EZWNpbWFsRm9ybWF0U3ltYm9sczwvY29kZT4gb2JqZWN0LiAgV2hlbiB1c2luZworICogdGhlIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4gZmFjdG9yeSBtZXRob2RzLCB0aGUgcGF0dGVybiBhbmQgc3ltYm9scyBhcmUKKyAqIHJlYWQgZnJvbSBsb2NhbGl6ZWQgPGNvZGU+UmVzb3VyY2VCdW5kbGU8L2NvZGU+cyBpbiB0aGUgcGFja2FnZQorICogPGNvZGU+amF2YS50ZXh0LnJlc291cmNlPC9jb2RlPi4KKyAqIAorICogPGg0PlN5bmNocm9uaXphdGlvbjwvaDQ+CisgKiA8cD4KKyAqIERlY2ltYWwgZm9ybWF0cyBhcmUgZ2VuZXJhbGx5IG5vdCBzeW5jaHJvbml6ZWQuIEl0IGlzIHJlY29tbWVuZGVkIHRvIGNyZWF0ZSAKKyAqIHNlcGFyYXRlIGZvcm1hdCBpbnN0YW5jZXMgZm9yIGVhY2ggdGhyZWFkLiBJZiBtdWx0aXBsZSB0aHJlYWRzIGFjY2VzcyBhIGZvcm1hdAorICogY29uY3VycmVudGx5LCBpdCBtdXN0IGJlIHN5bmNocm9uaXplZCBleHRlcm5hbGx5LiAKKyAqIDxwPgorICoKKyAqIDxwPjxzdHJvbmc+RXhhbXBsZTwvc3Ryb25nPgorICoKKyAqIDxibG9ja3F1b3RlPjxwcmU+CisgKiA8c3Ryb25nPi8vIFByaW50IG91dCBhIG51bWJlciB1c2luZyB0aGUgbG9jYWxpemVkIG51bWJlciwgY3VycmVuY3ksCisgKiAvLyBhbmQgcGVyY2VudCBmb3JtYXQgZm9yIGVhY2ggbG9jYWxlPC9zdHJvbmc+CisgKiBMb2NhbGVbXSBsb2NhbGVzID0gTnVtYmVyRm9ybWF0LmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAqIGRvdWJsZSBteU51bWJlciA9IC0xMjM0LjU2OworICogTnVtYmVyRm9ybWF0IGZvcm07CisgKiBmb3IgKGludCBqPTA7IGo8MzsgKytqKSB7CisgKiAgICAgU3lzdGVtLm91dC5wcmludGxuKCJGT1JNQVQiKTsKKyAqICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyArK2kpIHsKKyAqICAgICAgICAgaWYgKGxvY2FsZXNbaV0uZ2V0Q291bnRyeSgpLmxlbmd0aCgpID09IDApIHsKKyAqICAgICAgICAgICAgLy8gU2tpcCBsYW5ndWFnZS1vbmx5IGxvY2FsZXMKKyAqICAgICAgICAgICAgY29udGludWU7CisgKiAgICAgICAgIH0KKyAqICAgICAgICAgU3lzdGVtLm91dC5wcmludChsb2NhbGVzW2ldLmdldERpc3BsYXlOYW1lKCkpOworICogICAgICAgICBzd2l0Y2ggKGopIHsKKyAqICAgICAgICAgY2FzZSAwOgorICogICAgICAgICAgICAgZm9ybSA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShsb2NhbGVzW2ldKTsgYnJlYWs7CisgKiAgICAgICAgIGNhc2UgMToKKyAqICAgICAgICAgICAgIGZvcm0gPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShsb2NhbGVzW2ldKTsgYnJlYWs7CisgKiAgICAgICAgIGRlZmF1bHQ6CisgKiAgICAgICAgICAgICBmb3JtID0gTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZShsb2NhbGVzW2ldKTsgYnJlYWs7CisgKiAgICAgICAgIH0KKyAqICAgICAgICAgdHJ5IHsKKyAqICAgICAgICAgICAgIC8vIEFzc3VtZSBmb3JtIGlzIGEgRGVjaW1hbEZvcm1hdAorICogICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiOiAiICsgKChEZWNpbWFsRm9ybWF0KSBmb3JtKS50b1BhdHRlcm4oKQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgLT4gIiArIGZvcm0uZm9ybWF0KG15TnVtYmVyKSk7CisgKiAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7fQorICogICAgICAgICB0cnkgeworICogICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgLT4gIiArIGZvcm0ucGFyc2UoZm9ybS5mb3JtYXQobXlOdW1iZXIpKSk7CisgKiAgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHt9CisgKiAgICAgfQorICogfQorICogPC9wcmU+PC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPjxzdHJvbmc+Tm90ZXM8L3N0cm9uZz4KKyAqCisgKiA8cD5BIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IHBhdHRlcm4gY29udGFpbnMgYSBwb3N0aXZlIGFuZCBuZWdhdGl2ZQorICogc3VicGF0dGVybiwgZm9yIGV4YW1wbGUsICIjLCMjMC4wMDsoIywjIzAuMDApIi4gIEVhY2ggc3VicGF0dGVybiBoYXMgYQorICogcHJlZml4LCBudW1lcmljIHBhcnQsIGFuZCBzdWZmaXguICBJZiB0aGVyZSBpcyBubyBleHBsaWNpdCBuZWdhdGl2ZQorICogc3VicGF0dGVybiwgdGhlIGxvY2FsaXplZCBtaW51cyBzaWduLCB0eXBpY2FsbHkgJy0nLCBpcyBwcmVmaXhlZCB0byB0aGUKKyAqIHBvc2l0aXZlIGZvcm0uIFRoYXQgaXMsICIwLjAwIiBhbG9uZSBpcyBlcXVpdmFsZW50IHRvICIwLjAwOy0wLjAwIi4gIElmIHRoZXJlCisgKiBpcyBhbiBleHBsaWNpdCBuZWdhdGl2ZSBzdWJwYXR0ZXJuLCBpdCBzZXJ2ZXMgb25seSB0byBzcGVjaWZ5IHRoZSBuZWdhdGl2ZQorICogcHJlZml4IGFuZCBzdWZmaXg7IHRoZSBudW1iZXIgb2YgZGlnaXRzLCBtaW5pbWFsIGRpZ2l0cywgYW5kIG90aGVyCisgKiBjaGFyYWN0ZXJpc3RpY3MgYXJlIGFsbCB0aGUgc2FtZSBhcyB0aGUgcG9zaXRpdmUgcGF0dGVybi4gVGhhdCBtZWFucyB0aGF0CisgKiAiIywjIzAuMCM7KCMpIiBoYXMgcHJlY2lzZWx5IHRoZSBzYW1lIHJlc3VsdCBhcyAiIywjIzAuMCM7KCMsIyMwLjAjKSIuCisgKgorICogPHA+VGhlIHByZWZpeGVzLCBzdWZmaXhlcywgYW5kIHZhcmlvdXMgc3ltYm9scyB1c2VkIGZvciBpbmZpbml0eSwgZGlnaXRzLAorICogdGhvdXNhbmRzIHNlcGFyYXRvcnMsIGRlY2ltYWwgc2VwYXJhdG9ycywgZXRjLiBtYXkgYmUgc2V0IHRvIGFyYml0cmFyeQorICogdmFsdWVzLCBhbmQgdGhleSB3aWxsIGFwcGVhciBwcm9wZXJseSBkdXJpbmcgZm9ybWF0dGluZy4gIEhvd2V2ZXIsIGNhcmUgbXVzdAorICogYmUgdGFrZW4gdGhhdCB0aGUgc3ltYm9scyBhbmQgc3RyaW5ncyBkbyBub3QgY29uZmxpY3QsIG9yIHBhcnNpbmcgd2lsbCBiZQorICogdW5yZWxpYWJsZS4gIEZvciBleGFtcGxlLCBlaXRoZXIgdGhlIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSBwcmVmaXhlcyBvciB0aGUKKyAqIHN1ZmZpeGVzIG11c3QgYmUgZGlzdGluY3QgZm9yIDxjb2RlPkRlY2ltYWxGb3JtYXQucGFyc2UoKTwvY29kZT4gdG8gYmUgYWJsZQorICogdG8gZGlzdGluZ3Vpc2ggcG9zaXRpdmUgZnJvbSBuZWdhdGl2ZSB2YWx1ZXMuICBBbm90aGVyIGV4YW1wbGUgaXMgdGhhdCB0aGUKKyAqIGRlY2ltYWwgc2VwYXJhdG9yIGFuZCB0aG91c2FuZHMgc2VwYXJhdG9yIHNob3VsZCBiZSBkaXN0aW5jdCBjaGFyYWN0ZXJzLCBvcgorICogcGFyc2luZyB3aWxsIGJlIGltcG9zc2libGUuCisgKgorICogPHA+VGhlIGdyb3VwaW5nIHNlcGFyYXRvciBpcyBjb21tb25seSB1c2VkIGZvciB0aG91c2FuZHMsIGJ1dCBpbiBzb21lCisgKiBjb3VudHJpZXMgaXQgc2VwYXJhdGVzIHRlbi10aG91c2FuZHMuIFRoZSBncm91cGluZyBzaXplIGlzIGEgY29uc3RhbnQgbnVtYmVyCisgKiBvZiBkaWdpdHMgYmV0d2VlbiB0aGUgZ3JvdXBpbmcgY2hhcmFjdGVycywgc3VjaCBhcyAzIGZvciAxMDAsMDAwLDAwMCBvciA0IGZvcgorICogMSwwMDAwLDAwMDAuCisgKiBJZiB5b3Ugc3VwcGx5IGEgcGF0dGVybiB3aXRoIG11bHRpcGxlIGdyb3VwaW5nIGNoYXJhY3RlcnMsIHRoZSBpbnRlcnZhbAorICogYmV0d2VlbiB0aGUgbGFzdCBvbmUgYW5kIHRoZSBlbmQgb2YgdGhlIGludGVnZXIgZGV0ZXJtaW5lcyB0aGUgcHJpbWFyeQorICogZ3JvdXBpbmcgc2l6ZSwgYW5kIHRoZSBpbnRlcnZhbCBiZXR3ZWVuIHRoZSBsYXN0IHR3byBkZXRlcm1pbmVzCisgKiB0aGUgc2Vjb25kYXJ5IGdyb3VwaW5nIHNpemUgKHNlZSBiZWxvdyk7IGFsbCBvdGhlcnMgYXJlIGlnbm9yZWQuCisgKiBTbyAiIywjIywjIyMsIyMjIyIgPT0gIiMjIywjIyMsIyMjIyIgPT0gIiMjLCMsIyMjLCMjIyMiLgorICoKKyAqIDxQPlNvbWUgbG9jYWxlcyBoYXZlIHR3byBkaWZmZXJlbnQgZ3JvdXBpbmcgaW50ZXJ2YWxzOiAgT25lIHVzZWQgZm9yIHRoZQorICogbGVhc3Qgc2lnbmlmaWNhbnQgaW50ZWdlciBkaWdpdHMgKHRoZSBwcmltYXJ5IGdyb3VwaW5nIHNpemUpLCBhbmQKKyAqIG9uZSB1c2VkIGZvciBhbGwgb3RoZXJzICh0aGUgc2Vjb25kYXJ5IGdyb3VwaW5nIHNpemUpLiAgRm9yIGV4YW1wbGUsCisgKiBpZiB0aGUgcHJpbWFyeSBncm91cGluZyBpbnRlcnZhbCBpcyAzLCBhbmQgdGhlIHNlY29uZGFyeSBpcyAyLCB0aGVuCisgKiB0aGlzIGNvcnJlc3BvbmRzIHRvIHRoZSBwYXR0ZXJuICIjLCMjLCMjMCIsIGFuZCB0aGUgbnVtYmVyIDEyMzQ1Njc4OQorICogaXMgZm9ybWF0dGVkIGFzICIxMiwzNCw1Niw3ODkiLgorICoKKyAqIDxwPjxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IHBhcnNlcyBhbGwgVW5pY29kZSBjaGFyYWN0ZXJzIHRoYXQgcmVwcmVzZW50CisgKiBkZWNpbWFsIGRpZ2l0cywgYXMgZGVmaW5lZCBieSA8Y29kZT5DaGFyYWN0ZXIuZGlnaXQoKTwvY29kZT4uICBJbiBhZGRpdGlvbiwKKyAqIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IGFsc28gcmVjb2duaXplcyBhcyBkaWdpdHMgdGhlIHRlbiBjb25zZWN1dGl2ZQorICogY2hhcmFjdGVycyBzdGFydGluZyB3aXRoIHRoZSBsb2NhbGl6ZWQgemVybyBkaWdpdCBkZWZpbmVkIGluIHRoZQorICogPGNvZGU+RGVjaW1hbEZvcm1hdFN5bWJvbHM8L2NvZGU+IG9iamVjdC4gIER1cmluZyBmb3JtYXR0aW5nLCB0aGUKKyAqIDxjb2RlPkRlY2ltYWxGb3JtYXRTeW1ib2xzPC9jb2RlPi1iYXNlZCBkaWdpdHMgYXJlIG91dHB1dC4KKyAqCisgKiA8cD5JbGxlZ2FsIHBhdHRlcm5zLCBzdWNoIGFzICIjLiMuIyIgb3IgIiMuIyMjLCMjIyIsIHdpbGwgY2F1c2UKKyAqIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IHRvIHRocm93IGFuIDxjb2RlPklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjwvY29kZT4KKyAqIHdpdGggYSBtZXNzYWdlIHRoYXQgZGVzY3JpYmVzIHRoZSBwcm9ibGVtLgorICoKKyAqIDxwPklmIDxjb2RlPkRlY2ltYWxGb3JtYXQucGFyc2UoU3RyaW5nLCBQYXJzZVBvc2l0aW9uKTwvY29kZT4gZmFpbHMgdG8gcGFyc2UKKyAqIGEgc3RyaW5nLCBpdCByZXR1cm5zIDxjb2RlPm51bGw8L2NvZGU+IGFuZCBsZWF2ZXMgdGhlIHBhcnNlIHBvc2l0aW9uCisgKiB1bmNoYW5nZWQuICBUaGUgY29udmVuaWVuY2UgbWV0aG9kIDxjb2RlPkRlY2ltYWxGb3JtYXQucGFyc2UoU3RyaW5nKTwvY29kZT4KKyAqIGluZGljYXRlcyBwYXJzZSBmYWlsdXJlIGJ5IHRocm93aW5nIGEgPGNvZGU+UGFyc2VFeGNlcHRpb248L2NvZGU+LgorICoKKyAqIDxwPjxzdHJvbmc+U3BlY2lhbCBDYXNlczwvc3Ryb25nPgorICoKKyAqIDxwPjxjb2RlPk5hTjwvY29kZT4gaXMgZm9ybWF0dGVkIGFzIGEgc2luZ2xlIGNoYXJhY3RlciwgdHlwaWNhbGx5CisgKiA8Y29kZT4mIzkyO3VGRkZEPC9jb2RlPi4gIFRoaXMgY2hhcmFjdGVyIGlzIGRldGVybWluZWQgYnkgdGhlCisgKiA8Y29kZT5EZWNpbWFsRm9ybWF0U3ltYm9sczwvY29kZT4gb2JqZWN0LiAgVGhpcyBpcyB0aGUgb25seSB2YWx1ZSBmb3Igd2hpY2gKKyAqIHRoZSBwcmVmaXhlcyBhbmQgc3VmZml4ZXMgYXJlIG5vdCB1c2VkLgorICoKKyAqIDxwPkluZmluaXR5IGlzIGZvcm1hdHRlZCBhcyBhIHNpbmdsZSBjaGFyYWN0ZXIsIHR5cGljYWxseQorICogPGNvZGU+JiM5Mjt1MjIxRTwvY29kZT4sIHdpdGggdGhlIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIHByZWZpeGVzIGFuZCBzdWZmaXhlcworICogYXBwbGllZC4gIFRoZSBpbmZpbml0eSBjaGFyYWN0ZXIgaXMgZGV0ZXJtaW5lZCBieSB0aGUKKyAqIDxjb2RlPkRlY2ltYWxGb3JtYXRTeW1ib2xzPC9jb2RlPiBvYmplY3QuCisgKgorICogPHA+CisgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgKiA8c3Ryb25nPlNjaWVudGlmaWMgTm90YXRpb248L3N0cm9uZz4KKyAqCisgKiA8cD5OdW1iZXJzIGluIHNjaWVudGlmaWMgbm90YXRpb24gYXJlIGV4cHJlc3NlZCBhcyB0aGUgcHJvZHVjdCBvZiBhIG1hbnRpc3NhCisgKiBhbmQgYSBwb3dlciBvZiB0ZW4sIGZvciBleGFtcGxlLCAxMjM0IGNhbiBiZSBleHByZXNzZWQgYXMgMS4yMzQgeCAxMF4zLiAgVGhlCisgKiBtYW50aXNzYSBpcyBvZnRlbiBpbiB0aGUgcmFuZ2UgMS4wIDw9IHggPCAxMC4wLCBidXQgaXQgbmVlZCBub3QgYmUuCisgKiA8Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPiBjYW4gYmUgaW5zdHJ1Y3RlZCB0byBmb3JtYXQgYW5kIHBhcnNlIHNjaWVudGlmaWMKKyAqIG5vdGF0aW9uIHRocm91Z2ggdGhlIEFQSSBvciB2aWEgYSBwYXR0ZXJuLiAgSW4gYSBwYXR0ZXJuLCB0aGUgZXhwb25lbnQKKyAqIGNoYXJhY3RlciBpbW1lZGlhdGVseSBmb2xsb3dlZCBieSBvbmUgb3IgbW9yZSBkaWdpdCBjaGFyYWN0ZXJzIGluZGljYXRlcworICogc2NpZW50aWZpYyBub3RhdGlvbi4gIEV4YW1wbGU6ICIwLiMjI0UwIiBmb3JtYXRzIHRoZSBudW1iZXIgMTIzNCBhcworICogIjEuMjM0RTMiLgorICoKKyAqIDx1bD4KKyAqIDxsaT5UaGUgbnVtYmVyIG9mIGRpZ2l0IGNoYXJhY3RlcnMgYWZ0ZXIgdGhlIGV4cG9uZW50IGNoYXJhY3RlciBnaXZlcyB0aGUKKyAqIG1pbmltdW0gZXhwb25lbnQgZGlnaXQgY291bnQuICBUaGVyZSBpcyBubyBtYXhpbXVtLiAgTmVnYXRpdmUgZXhwb25lbnRzIGFyZQorICogZm9ybWF0dGVkIHVzaW5nIHRoZSBsb2NhbGl6ZWQgbWludXMgc2lnbiwgPGVtPm5vdDwvZW0+IHRoZSBwcmVmaXggYW5kIHN1ZmZpeAorICogZnJvbSB0aGUgcGF0dGVybi4gIFRoaXMgYWxsb3dzIHBhdHRlcm5zIHN1Y2ggYXMgIjAuIyMjRTAgbS9zIi4gIFRvIHByZWZpeAorICogcG9zaXRpdmUgZXhwb25lbnRzIHdpdGggYSBsb2NhbGl6ZWQgcGx1cyBzaWduLCBzcGVjaWZ5ICcrJyBiZXR3ZWVuIHRoZQorICogZXhwb25lbnQgYW5kIHRoZSBkaWdpdHM6ICIwLiMjI0UrMCIgd2lsbCBwcm9kdWNlIGZvcm1hdHMgIjFFKzEiLCAiMUUrMCIsCisgKiAiMUUtMSIsIGV0Yy4gIChJbiBsb2NhbGl6ZWQgcGF0dGVybnMsIHVzZSB0aGUgbG9jYWxpemVkIHBsdXMgc2lnbiByYXRoZXIgdGhhbgorICogJysnLikKKyAqCisgKiA8bGk+VGhlIG1pbmltdW0gbnVtYmVyIG9mIGludGVnZXIgZGlnaXRzIGlzIGFjaGlldmVkIGJ5IGFkanVzdGluZyB0aGUKKyAqIGV4cG9uZW50LiAgRXhhbXBsZTogMC4wMDEyMyBmb3JtYXR0ZWQgd2l0aCAiMDAuIyMjRTAiIHlpZWxkcyAiMTIuM0UtNCIuICBUaGlzCisgKiBvbmx5IGhhcHBlbnMgaWYgdGhlcmUgaXMgbm8gbWF4aW11bSBudW1iZXIgb2YgaW50ZWdlciBkaWdpdHMuICBJZiB0aGVyZSBpcyBhCisgKiBtYXhpbXVtLCB0aGVuIHRoZSBtaW5pbXVtIG51bWJlciBvZiBpbnRlZ2VyIGRpZ2l0cyBpcyBmaXhlZCBhdCBvbmUuCisgKgorICogPGxpPlRoZSBtYXhpbXVtIG51bWJlciBvZiBpbnRlZ2VyIGRpZ2l0cywgaWYgcHJlc2VudCwgc3BlY2lmaWVzIHRoZSBleHBvbmVudAorICogZ3JvdXBpbmcuICBUaGUgbW9zdCBjb21tb24gdXNlIG9mIHRoaXMgaXMgdG8gZ2VuZXJhdGUgPGVtPmVuZ2luZWVyaW5nCisgKiBub3RhdGlvbjwvZW0+LCBpbiB3aGljaCB0aGUgZXhwb25lbnQgaXMgYSBtdWx0aXBsZSBvZiB0aHJlZSwgZS5nLiwKKyAqICIjIzAuIyMjRTAiLiAgVGhlIG51bWJlciAxMjM0NSBpcyBmb3JtYXR0ZWQgdXNpbmcgIiMjMC4jIyMjRTAiIGFzICIxMi4zNDVFMyIuCisgKgorICogPGxpPlRoZSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzIGlzIHRoZSBzdW0gb2YgdGhlIDxlbT5taW5pbXVtCisgKiBpbnRlZ2VyPC9lbT4gYW5kIDxlbT5tYXhpbXVtIGZyYWN0aW9uPC9lbT4gZGlnaXRzLCBhbmQgaXMgdW5hZmZlY3RlZCBieSB0aGUKKyAqIG1heGltdW0gaW50ZWdlciBkaWdpdHMuICBJZiB0aGlzIHN1bSBpcyB6ZXJvLCB0aGVuIGFsbCBzaWduaWZpY2FudCBkaWdpdHMgYXJlCisgKiBzaG93bi4gIFRoZSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzIGxpbWl0cyB0aGUgdG90YWwgbnVtYmVyIG9mIGludGVnZXIKKyAqIGFuZCBmcmFjdGlvbiBkaWdpdHMgdGhhdCB3aWxsIGJlIHNob3duIGluIHRoZSBtYW50aXNzYTsgaXQgZG9lcyBub3QgYWZmZWN0CisgKiBwYXJzaW5nLiAgRm9yIGV4YW1wbGUsIDEyMzQ1IGZvcm1hdHRlZCB3aXRoICIjIzAuIyNFMCIgaXMgIjEyLjNFMyIuCisgKgorICogPGxpPkV4cG9uZW50aWFsIHBhdHRlcm5zIG1heSBub3QgY29udGFpbiBncm91cGluZyBzZXBhcmF0b3JzLgorICogPC91bD4KKyAqCisgKiA8cD4KKyAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAqIDxzdHJvbmc+UGFkZGluZzwvc3Ryb25nPgorICoKKyAqIDxwPjxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IHN1cHBvcnRzIHBhZGRpbmcgdGhlIHJlc3VsdCBvZgorICogPGNvZGU+Zm9ybWF0KCk8L2NvZGU+IHRvIGEgc3BlY2lmaWMgd2lkdGguICBQYWRkaW5nIG1heSBiZSBzcGVjaWZpZWQgZWl0aGVyCisgKiB0aHJvdWdoIHRoZSBBUEkgb3IgdGhyb3VnaCB0aGUgcGF0dGVybiBzeW50YXguICBJbiBhIHBhdHRlcm4gdGhlIHBhZCBlc2NhcGUKKyAqIGNoYXJhY3RlciwgZm9sbG93ZWQgYnkgYSBzaW5nbGUgcGFkIGNoYXJhY3RlciwgY2F1c2VzIHBhZGRpbmcgdG8gYmUgcGFyc2VkCisgKiBhbmQgZm9ybWF0dGVkLiAgVGhlIHBhZCBlc2NhcGUgY2hhcmFjdGVyIGlzICcqJyBpbiB1bmxvY2FsaXplZCBwYXR0ZXJucywgYW5kCisgKiBjYW4gYmUgbG9jYWxpemVkIHVzaW5nIDxjb2RlPkRlY2ltYWxGb3JtYXRTeW1ib2xzLnNldFBhZEVzY2FwZSgpPC9jb2RlPi4gIEZvcgorICogZXhhbXBsZSwgPGNvZGU+IiQqeCMsIyMwLjAwIjwvY29kZT4gZm9ybWF0cyAxMjMgdG8gPGNvZGU+IiR4eDEyMy4wMCI8L2NvZGU+LAorICogYW5kIDEyMzQgdG8gPGNvZGU+IiQxLDIzNC4wMCI8L2NvZGU+LgorICoKKyAqIDx1bD4KKyAqIDxsaT5XaGVuIHBhZGRpbmcgaXMgaW4gZWZmZWN0LCB0aGUgd2lkdGggb2YgdGhlIHBvc2l0aXZlIHN1YnBhdHRlcm4sCisgKiBpbmNsdWRpbmcgcHJlZml4IGFuZCBzdWZmaXgsIGRldGVybWluZXMgdGhlIGZvcm1hdCB3aWR0aC4gIEZvciBleGFtcGxlLCBpbgorICogdGhlIHBhdHRlcm4gPGNvZGU+IiogIzAgbycnY2xvY2siPC9jb2RlPiwgdGhlIGZvcm1hdCB3aWR0aCBpcyAxMC4KKyAqCisgKiA8bGk+U29tZSBwYXJhbWV0ZXJzIHdoaWNoIHVzdWFsbHkgZG8gbm90IG1hdHRlciBoYXZlIG1lYW5pbmcgd2hlbiBwYWRkaW5nIGlzCisgKiB1c2VkLCBiZWNhdXNlIHRoZSBwYXR0ZXJuIHdpZHRoIGlzIHNpZ25pZmljYW50IHdpdGggcGFkZGluZy4gIEluIHRoZSBwYXR0ZXJuCisgKiAiXiAjIywjIywjLCMjMC4jIyIsIHRoZSBmb3JtYXQgd2lkdGggaXMgMTQuICBUaGUgaW5pdGlhbCBjaGFyYWN0ZXJzICIjIywjIywiCisgKiBkbyBub3QgYWZmZWN0IHRoZSBncm91cGluZyBzaXplIG9yIG1heGltdW0gaW50ZWdlciBkaWdpdHMsIGJ1dCB0aGV5IGRvIGFmZmVjdAorICogdGhlIGZvcm1hdCB3aWR0aC4KKyAqCisgKiA8bGk+UGFkZGluZyBtYXkgYmUgaW5zZXJ0ZWQgYXQgb25lIG9mIGZvdXIgbG9jYXRpb25zOiBiZWZvcmUgdGhlIHByZWZpeCwKKyAqIGFmdGVyIHRoZSBwcmVmaXgsIGJlZm9yZSB0aGUgc3VmZml4LCBvciBhZnRlciB0aGUgc3VmZml4LiAgSWYgcGFkZGluZyBpcworICogc3BlY2lmaWVkIGluIGFueSBvdGhlciBsb2NhdGlvbiwgPGNvZGU+RGVjaW1hbEZvcm1hdC5hcHBseVBhdHRlcm4oKTwvY29kZT4KKyAqIHRocm93cyBhbiA8Y29kZT5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L2NvZGU+LiAgSWYgdGhlcmUgaXMgbm8gcHJlZml4LAorICogYmVmb3JlIHRoZSBwcmVmaXggYW5kIGFmdGVyIHRoZSBwcmVmaXggYXJlIGVxdWl2YWxlbnQsIGxpa2V3aXNlIGZvciB0aGUKKyAqIHN1ZmZpeC4KKyAqCisgKiA8bGk+VGhlIHBhZCBjaGFyYWN0ZXIgbWF5IG5vdCBiZSBhIHF1b3RlLgorICogPC91bD4KKyAqCisgKiA8cD4KKyAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAqIDxzdHJvbmc+Um91bmRpbmc8L3N0cm9uZz4KKyAqCisgKiA8cD48Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPiBzdXBwb3J0cyByb3VuZGluZyB0byBhIHNwZWNpZmljIGluY3JlbWVudC4gIEZvcgorICogZXhhbXBsZSwgMTIzMCByb3VuZGVkIHRvIHRoZSBuZWFyZXN0IDUwIGlzIDEyNTAuICAxLjIzNCByb3VuZGVkIHRvIHRoZQorICogbmVhcmVzdCAwLjY1IGlzIDEuMy4gIFRoZSByb3VuZGluZyBpbmNyZW1lbnQgbWF5IGJlIHNwZWNpZmllZCB0aHJvdWdoIHRoZSBBUEkKKyAqIG9yIGluIGEgcGF0dGVybi4gIFRvIHNwZWNpZnkgYSByb3VuZGluZyBpbmNyZW1lbnQgaW4gYSBwYXR0ZXJuLCBpbmNsdWRlIHRoZQorICogaW5jcmVtZW50IGluIHRoZSBwYXR0ZXJuIGl0c2VsZi4gICIjLCM1MCIgc3BlY2lmaWVzIGEgcm91bmRpbmcgaW5jcmVtZW50IG9mCisgKiA1MC4gICIjLCMjMC4wNSIgc3BlY2lmaWVzIGEgcm91bmRpbmcgaW5jcmVtZW50IG9mIDAuMDUuCisgKgorICogPHVsPgorICogPGxpPlJvdW5kaW5nIG9ubHkgYWZmZWN0cyB0aGUgc3RyaW5nIHByb2R1Y2VkIGJ5IGZvcm1hdHRpbmcuICBJdCBkb2VzCisgKiBub3QgYWZmZWN0IHBhcnNpbmcgb3IgY2hhbmdlIGFueSBudW1lcmljYWwgdmFsdWVzLgorICoKKyAqIDxsaT5BIDxlbT5yb3VuZGluZyBtb2RlPC9lbT4gZGV0ZXJtaW5lcyBob3cgdmFsdWVzIGFyZSByb3VuZGVkOyBzZWUgdGhlCisgKiA8Y29kZT5qYXZhLm1hdGguQmlnRGVjaW1hbDwvY29kZT4gZG9jdW1lbnRhdGlvbiBmb3IgYSBkZXNjcmlwdGlvbiBvZiB0aGUKKyAqIG1vZGVzLiAgUm91bmRpbmcgaW5jcmVtZW50cyBzcGVjaWZpZWQgaW4gcGF0dGVybnMgdXNlIHRoZSBkZWZhdWx0IG1vZGUsCisgKiA8Y29kZT5ST1VORF9IQUxGX0VWRU48L2NvZGU+LgorICoKKyAqIDxsaT5Tb21lIGxvY2FsZXMgdXNlIHJvdW5kaW5nIGluIHRoZWlyIGN1cnJlbmN5IGZvcm1hdHMgdG8gcmVmbGVjdCB0aGUKKyAqIHNtYWxsZXN0IGN1cnJlbmN5IGRlbm9taW5hdGlvbi4KKyAqCisgKiA8bGk+SW4gYSBwYXR0ZXJuLCBkaWdpdHMgJzEnIHRocm91Z2ggJzknIHNwZWNpZnkgcm91bmRpbmcsIGJ1dCBvdGhlcndpc2UKKyAqIGJlaGF2ZSBpZGVudGljYWxseSB0byBkaWdpdCAnMCcuCisgKiA8L3VsPgorICoKKyAqIDxwPjxzdHJvbmc+UGF0dGVybiBTeW50YXg8L3N0cm9uZz4KKyAqIDxwcmU+CisgKiBwYXR0ZXJuICAgIDo9IHN1YnBhdHRlcm57JzsnIHN1YnBhdHRlcm59CisgKiBzdWJwYXR0ZXJuIDo9IHtwcmVmaXh9bnVtYmVye3N1ZmZpeH0KKyAqIG51bWJlciAgICAgOj0gaW50ZWdlcnsnLicgZnJhY3Rpb259e2V4cG9uZW50fQorICogcHJlZml4ICAgICA6PSAnJiM5Mjt1MDAwMCcuLicmIzkyO3VGRkZEJyAtIHNwZWNpYWxDaGFyYWN0ZXJzCisgKiBzdWZmaXggICAgIDo9ICcmIzkyO3UwMDAwJy4uJyYjOTI7dUZGRkQnIC0gc3BlY2lhbENoYXJhY3RlcnMKKyAqIGludGVnZXIgICAgOj0gJyMnKiAnMCcqICcwJworICogZnJhY3Rpb24gICA6PSAnMCcqICcjJyoKKyAqIGV4cG9uZW50ICAgOj0gJ0UnIHsnKyd9ICcwJyogJzAnCisgKiBwYWRTcGVjICAgIDo9ICcqJyBwYWRDaGFyCisgKiBwYWRDaGFyICAgIDo9ICcmIzkyO3UwMDAwJy4uJyYjOTI7dUZGRkQnIC0gcXVvdGUKKyAqICYjMzI7CisgKiBOb3RhdGlvbjoKKyAqICAgWCogICAgICAgMCBvciBtb3JlIGluc3RhbmNlcyBvZiBYCisgKiAgIHsgWCB9ICAgIDAgb3IgMSBpbnN0YW5jZXMgb2YgWAorICogICBYLi5ZICAgICBhbnkgY2hhcmFjdGVyIGZyb20gWCB1cCB0byBZLCBpbmNsdXNpdmUKKyAqICAgUyAtIFQgICAgY2hhcmFjdGVycyBpbiBTLCBleGNlcHQgdGhvc2UgaW4gVAorICogPC9wcmU+CisgKiBUaGUgZmlyc3Qgc3VicGF0dGVybiBpcyBmb3IgcG9zaXRpdmUgbnVtYmVycy4gVGhlIHNlY29uZCAob3B0aW9uYWwpCisgKiBzdWJwYXR0ZXJuIGlzIGZvciBuZWdhdGl2ZSBudW1iZXJzLgorICogCisgKiA8cD5Ob3QgaW5kaWNhdGVkIGluIHRoZSBCTkYgc3ludGF4IGFib3ZlOgorICogPHVsPjxsaT5UaGUgZ3JvdXBpbmcgc2VwYXJhdG9yICcsJyBjYW4gb2NjdXIgaW5zaWRlIHRoZSBpbnRlZ2VyIHBvcnRpb24gYmV0d2VlbiB0aGUKKyAqIG1vc3Qgc2lnbmlmaWNhbnQgZGlnaXQgYW5kIHRoZSBsZWFzdCBzaWduaWZpY2FudCBkaWdpdC4KKyAqCisgKiA8bGk+PGZvbnQgY29sb3I9cmVkIGZhY2U9aGVsdmV0aWNhPjxzdHJvbmc+TkVXPC9zdHJvbmc+PC9mb250PgorICogICAgIFR3byBncm91cGluZyBpbnRlcnZhbHMgYXJlIHJlY29nbml6ZWQ6IFRoYXQgYmV0d2VlbiB0aGUKKyAqICAgICBkZWNpbWFsIHBvaW50IGFuZCB0aGUgZmlyc3QgZ3JvdXBpbmcgc3ltYm9sLCBhbmQgdGhhdAorICogICAgIGJldHdlZW4gdGhlIGZpcnN0IGFuZCBzZWNvbmQgZ3JvdXBpbmcgc3ltYm9scy4gVGhlc2UKKyAqICAgICBpbnRlcnZhbHMgYXJlIGlkZW50aWNhbCBpbiBtb3N0IGxvY2FsZXMsIGJ1dCBpbiBzb21lCisgKiAgICAgbG9jYWxlcyB0aGV5IGRpZmZlci4gRm9yIGV4YW1wbGUsIHRoZSBwYXR0ZXJuCisgKiAgICAgJnF1b3Q7IywjIywjIyMmcXVvdDsgZm9ybWF0cyB0aGUgbnVtYmVyIDEyMzQ1Njc4OSBhcworICogICAgICZxdW90OzEyLDM0LDU2LDc4OSZxdW90Oy48L2xpPgorICogCisgKiA8bGk+CisgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgKiBUaGUgcGFkIHNwZWNpZmllciA8Y29kZT5wYWRTcGVjPC9jb2RlPiBtYXkgYXBwZWFyIGJlZm9yZSB0aGUgcHJlZml4LAorICogYWZ0ZXIgdGhlIHByZWZpeCwgYmVmb3JlIHRoZSBzdWZmaXgsIGFmdGVyIHRoZSBzdWZmaXgsIG9yIG5vdCBhdCBhbGwuCisgKgorICogPGxpPgorICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICogSW4gcGxhY2Ugb2YgJzAnLCB0aGUgZGlnaXRzICcxJyB0aHJvdWdoICc5JyBtYXkgYmUgdXNlZCB0bworICogaW5kaWNhdGUgYSByb3VuZGluZyBpbmNyZW1lbnQuCisgKiA8L3VsPgorICoKKyAqIDxwPjxzdHJvbmc+U3BlY2lhbCBQYXR0ZXJuIENoYXJhY3RlcnM8L3N0cm9uZz4KKyAqCisgKiA8cD5IZXJlIGFyZSB0aGUgc3BlY2lhbCBjaGFyYWN0ZXJzIHVzZWQgaW4gdGhlIHBhdHRlcm4sIHdpdGggbm90ZXMgb24gdGhlaXIKKyAqIHVzYWdlLiAgU3BlY2lhbCBjaGFyYWN0ZXJzIG11c3QgYmUgcXVvdGVkLCB1bmxlc3Mgbm90ZWQgb3RoZXJ3aXNlLCBpZiB0aGV5CisgKiBhcmUgdG8gYXBwZWFyIGluIHRoZSBwcmVmaXggb3Igc3VmZml4LiAgVGhpcyBkb2VzIG5vdCBhcHBseSB0byB0aG9zZSBsaXN0ZWQKKyAqIHdpdGggbG9jYXRpb24gInByZWZpeCBvciBzdWZmaXguIiAgU3VjaCBjaGFyYWN0ZXJzIHNob3VsZCBvbmx5IGJlIHF1b3RlZCBpbgorICogb3JkZXIgdG8gcmVtb3ZlIHRoZWlyIHNwZWNpYWwgbWVhbmluZy4KKyAqCisgKiA8cD48dGFibGUgYm9yZGVyPTE+CisgKiA8dHI+PHRoPlN5bWJvbDx0aD5Mb2NhdGlvbjx0aD5NZWFuaW5nPC90cj4KKyAqIDx0cj48dGQ+MC05PHRkPk51bWJlcjx0ZD5EaWdpdC4KKyAqICAgICAgICAgICAgICAgICAgPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICogICAgICAgICAgICAgICAgICAnMScgdGhyb3VnaCAnOScgaW5kaWNhdGUgcm91bmRpbmc8L3RyPgorICogPHRyPjx0ZD4jPHRkPk51bWJlcjx0ZD5EaWdpdCwgemVybyBzaG93cyBhcyBhYnNlbnQ8L3RyPgorICogPHRyPjx0ZD4uPHRkPk51bWJlcjx0ZD5EZWNpbWFsIHNlcGFyYXRvciBvciBtb25ldGFyeSBkZWNpbWFsIHNlcGFyYXRvcjwvdHI+CisgKiA8dHI+PHRkPiw8dGQ+TnVtYmVyPHRkPkdyb3VwaW5nIHNlcGFyYXRvcjwvdHI+CisgKiA8dHI+PHRkPkU8dGQ+TnVtYmVyCisgKiAgICAgICAgICA8dGQ+U2VwYXJhdGVzIG1hbnRpc3NhIGFuZCBleHBvbmVudCBpbiBzY2llbnRpZmljIG5vdGF0aW9uLgorICogICAgICAgICAgICAgIDxlbT5OZWVkIG5vdCBiZSBxdW90ZWQgaW4gcHJlZml4IG9yIHN1ZmZpeC48L2VtPjwvdHI+CisgKiA8dHI+PHRkPjxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAqICAgICAgICAgKzx0ZD5FeHBvbmVudAorICogICAgICAgICAgPHRkPlByZWZpeCBwb3NpdGl2ZSBleHBvbmVudHMgd2l0aCBsb2NhbGl6ZWQgcGx1cyBzaWduLgorICogICAgICAgICAgICAgIDxlbT5OZWVkIG5vdCBiZSBxdW90ZWQgaW4gcHJlZml4IG9yIHN1ZmZpeC48L2VtPjwvdHI+CisgKiA8dHI+PHRkPjs8dGQ+U3VicGF0dGVybiBib3VuZGFyeQorICogICAgICAgICAgPHRkPlNlcGFyYXRlcyBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgc3VicGF0dGVybnM8L3RyPgorICogPHRyPjx0ZD4lPHRkPlByZWZpeCBvciBzdWZmaXg8dGQ+TXVsdGlwbHkgYnkgMTAwIGFuZCBzaG93IGFzIHBlcmNlbnRhZ2U8L3RyPgorICogPHRyPjx0ZD4mIzkyO3UyMDMwPHRkPlByZWZpeCBvciBzdWZmaXgKKyAqICAgICAgICAgICAgICAgICAgIDx0ZD5NdWx0aXBseSBieSAxMDAwIGFuZCBzaG93IGFzIHBlciBtaWxsZTwvdHI+CisgKiA8dHI+PHRkPiYjOTI7dTAwQTQ8dGQ+UHJlZml4IG9yIHN1ZmZpeAorICogICAgICAgICAgICAgICAgICAgPHRkPkN1cnJlbmN5IHNpZ24sIHJlcGxhY2VkIGJ5IGN1cnJlbmN5IHN5bWJvbC4gIElmCisgKiAgICAgICAgICAgICAgICAgICBkb3VibGVkLCByZXBsYWNlZCBieSBpbnRlcm5hdGlvbmFsIGN1cnJlbmN5IHN5bWJvbC4KKyAqICAgICAgICAgICAgICAgICAgIElmIHByZXNlbnQgaW4gYSBwYXR0ZXJuLCB0aGUgbW9uZXRhcnkgZGVjaW1hbCBzZXBhcmF0b3IKKyAqICAgICAgICAgICAgICAgICAgIGlzIHVzZWQgaW5zdGVhZCBvZiB0aGUgZGVjaW1hbCBzZXBhcmF0b3IuPC90cj4KKyAqIDx0cj48dGQ+Jzx0ZD5QcmVmaXggb3Igc3VmZml4CisgKiAgICAgICAgICA8dGQ+VXNlZCB0byBxdW90ZSBzcGVjaWFsIGNoYXJhY3RlcnMgaW4gYSBwcmVmaXggb3Igc3VmZml4LAorICogICAgICAgICAgICAgIGZvciBleGFtcGxlLCA8Y29kZT4iJyMnIyI8L2NvZGU+IGZvcm1hdHMgMTIzIHRvCisgKiAgICAgICAgICAgICAgPGNvZGU+IiMxMjMiPC9jb2RlPi4gIFRvIGNyZWF0ZSBhIHNpbmdsZSBxdW90ZQorICogICAgICAgICAgICAgIGl0c2VsZiwgdXNlIHR3byBpbiBhIHJvdzogPGNvZGU+IiMgbycnY2xvY2siPC9jb2RlPi48L3RyPgorICogPHRyPjx0ZD48c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgKiAgICAgICAgICo8dGQ+UHJlZml4IG9yIHN1ZmZpeCBib3VuZGFyeQorICogICAgICAgICAgPHRkPlBhZCBlc2NhcGUsIHByZWNlZGVzIHBhZCBjaGFyYWN0ZXI8L3RyPgorICogPC90YWJsZT4KKyAqIDwvcHJlPgorICoKKyAqCisgKiBAc2VlICAgICAgICAgIGphdmEudGV4dC5Gb3JtYXQKKyAqIEBzZWUgICAgICAgICAgTnVtYmVyRm9ybWF0CisgKiBAdmVyc2lvbiAgICAgIDEuNDggMDkvMjEvOTgKKyAqIEBhdXRob3IgICAgICAgTWFyayBEYXZpcworICogQGF1dGhvciAgICAgICBBbGFuIExpdQorICogKi8KK3B1YmxpYyBjbGFzcyBEZWNpbWFsRm9ybWF0IGV4dGVuZHMgTnVtYmVyRm9ybWF0IHsKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIERlY2ltYWxGb3JtYXQgdXNpbmcgdGhlIGRlZmF1bHQgcGF0dGVybiBhbmQgc3ltYm9scworICAgICAqIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUuIFRoaXMgaXMgYSBjb252ZW5pZW50IHdheSB0byBvYnRhaW4gYQorICAgICAqIERlY2ltYWxGb3JtYXQgd2hlbiBpbnRlcm5hdGlvbmFsaXphdGlvbiBpcyBub3QgdGhlIG1haW4gY29uY2Vybi4KKyAgICAgKiA8cD4KKyAgICAgKiBUbyBvYnRhaW4gc3RhbmRhcmQgZm9ybWF0cyBmb3IgYSBnaXZlbiBsb2NhbGUsIHVzZSB0aGUgZmFjdG9yeSBtZXRob2RzCisgICAgICogb24gTnVtYmVyRm9ybWF0IHN1Y2ggYXMgZ2V0TnVtYmVySW5zdGFuY2UuIFRoZXNlIGZhY3RvcmllcyB3aWxsCisgICAgICogcmV0dXJuIHRoZSBtb3N0IGFwcHJvcHJpYXRlIHN1Yi1jbGFzcyBvZiBOdW1iZXJGb3JtYXQgZm9yIGEgZ2l2ZW4KKyAgICAgKiBsb2NhbGUuCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjZ2V0SW5zdGFuY2UKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNnZXROdW1iZXJJbnN0YW5jZQorICAgICAqIEBzZWUgTnVtYmVyRm9ybWF0I2dldEN1cnJlbmN5SW5zdGFuY2UKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNnZXRQZXJjZW50SW5zdGFuY2UKKyAgICAgKi8KKyAgICBwdWJsaWMgRGVjaW1hbEZvcm1hdCgpIHsKKyAgICAgICAgLy8gW05FV10KKyAgICAgICAgTG9jYWxlIGRlZiA9IExvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gZ2V0UGF0dGVybihkZWYsIDApOworICAgICAgICAvLyBBbHdheXMgYXBwbHlQYXR0ZXJuIGFmdGVyIHRoZSBzeW1ib2xzIGFyZSBzZXQKKyAgICAgICAgdGhpcy5zeW1ib2xzID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKGRlZik7CisgICAgICAgIGN1cnJlbmN5ID0gQ3VycmVuY3kuZ2V0SW5zdGFuY2UoZGVmKTsKKyAgICAgICAgYXBwbHlQYXR0ZXJuKHBhdHRlcm4sIGZhbHNlKTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIERlY2ltYWxGb3JtYXQgZnJvbSB0aGUgZ2l2ZW4gcGF0dGVybiBhbmQgdGhlIHN5bWJvbHMKKyAgICAgKiBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlLiBUaGlzIGlzIGEgY29udmVuaWVudCB3YXkgdG8gb2J0YWluIGEKKyAgICAgKiBEZWNpbWFsRm9ybWF0IHdoZW4gaW50ZXJuYXRpb25hbGl6YXRpb24gaXMgbm90IHRoZSBtYWluIGNvbmNlcm4uCisgICAgICogPHA+CisgICAgICogVG8gb2J0YWluIHN0YW5kYXJkIGZvcm1hdHMgZm9yIGEgZ2l2ZW4gbG9jYWxlLCB1c2UgdGhlIGZhY3RvcnkgbWV0aG9kcworICAgICAqIG9uIE51bWJlckZvcm1hdCBzdWNoIGFzIGdldE51bWJlckluc3RhbmNlLiBUaGVzZSBmYWN0b3JpZXMgd2lsbAorICAgICAqIHJldHVybiB0aGUgbW9zdCBhcHByb3ByaWF0ZSBzdWItY2xhc3Mgb2YgTnVtYmVyRm9ybWF0IGZvciBhIGdpdmVuCisgICAgICogbG9jYWxlLgorICAgICAqIEBwYXJhbSBwYXR0ZXJuIEEgbm9uLWxvY2FsaXplZCBwYXR0ZXJuIHN0cmluZy4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgZ2l2ZW4gcGF0dGVybiBpcyBpbnZhbGlkLgorICAgICAqIEBzZWUgTnVtYmVyRm9ybWF0I2dldEluc3RhbmNlCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjZ2V0TnVtYmVySW5zdGFuY2UKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNnZXRDdXJyZW5jeUluc3RhbmNlCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjZ2V0UGVyY2VudEluc3RhbmNlCisgICAgICovCisgICAgcHVibGljIERlY2ltYWxGb3JtYXQoU3RyaW5nIHBhdHRlcm4pIHsKKyAgICAvLyBBbHdheXMgYXBwbHlQYXR0ZXJuIGFmdGVyIHRoZSBzeW1ib2xzIGFyZSBzZXQKKyAgICAgICAgTG9jYWxlIGRlZiA9IExvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIHRoaXMuc3ltYm9scyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhkZWYpOworICAgICAgICBjdXJyZW5jeSA9IEN1cnJlbmN5LmdldEluc3RhbmNlKGRlZik7CisgICAgICAgIGFwcGx5UGF0dGVybiggcGF0dGVybiwgZmFsc2UgKTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIERlY2ltYWxGb3JtYXQgZnJvbSB0aGUgZ2l2ZW4gcGF0dGVybiBhbmQgc3ltYm9scy4KKyAgICAgKiBVc2UgdGhpcyBjb25zdHJ1Y3RvciB3aGVuIHlvdSBuZWVkIHRvIGNvbXBsZXRlbHkgY3VzdG9taXplIHRoZQorICAgICAqIGJlaGF2aW9yIG9mIHRoZSBmb3JtYXQuCisgICAgICogPHA+CisgICAgICogVG8gb2J0YWluIHN0YW5kYXJkIGZvcm1hdHMgZm9yIGEgZ2l2ZW4KKyAgICAgKiBsb2NhbGUsIHVzZSB0aGUgZmFjdG9yeSBtZXRob2RzIG9uIE51bWJlckZvcm1hdCBzdWNoIGFzCisgICAgICogZ2V0SW5zdGFuY2Ugb3IgZ2V0Q3VycmVuY3lJbnN0YW5jZS4gSWYgeW91IG5lZWQgb25seSBtaW5vciBhZGp1c3RtZW50cworICAgICAqIHRvIGEgc3RhbmRhcmQgZm9ybWF0LCB5b3UgY2FuIG1vZGlmeSB0aGUgZm9ybWF0IHJldHVybmVkIGJ5CisgICAgICogYSBOdW1iZXJGb3JtYXQgZmFjdG9yeSBtZXRob2QuCisgICAgICogQHBhcmFtIHBhdHRlcm4gYSBub24tbG9jYWxpemVkIHBhdHRlcm4gc3RyaW5nCisgICAgICogQHBhcmFtIHN5bWJvbHMgdGhlIHNldCBvZiBzeW1ib2xzIHRvIGJlIHVzZWQKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgZ2l2ZW4gcGF0dGVybiBpcyBpbnZhbGlkCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjZ2V0SW5zdGFuY2UKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNnZXROdW1iZXJJbnN0YW5jZQorICAgICAqIEBzZWUgTnVtYmVyRm9ybWF0I2dldEN1cnJlbmN5SW5zdGFuY2UKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNnZXRQZXJjZW50SW5zdGFuY2UKKyAgICAgKiBAc2VlIERlY2ltYWxGb3JtYXRTeW1ib2xzCisgICAgICovCisgICAgcHVibGljIERlY2ltYWxGb3JtYXQgKFN0cmluZyBwYXR0ZXJuLCBEZWNpbWFsRm9ybWF0U3ltYm9scyBzeW1ib2xzKSB7CisgICAgICAgIC8vIEFsd2F5cyBhcHBseVBhdHRlcm4gYWZ0ZXIgdGhlIHN5bWJvbHMgYXJlIHNldAorICAgICAgICB0aGlzLnN5bWJvbHMgPSAoRGVjaW1hbEZvcm1hdFN5bWJvbHMpIHN5bWJvbHMuY2xvbmUoKTsKKyAgICAgICAgc2V0Q3VycmVuY3lGb3JTeW1ib2xzKCk7CisgICAgICAgIGFwcGx5UGF0dGVybiggcGF0dGVybiwgZmFsc2UgKTsKKyAgICB9CisKKworICAgIC8vIE92ZXJyaWRlcworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KGRvdWJsZSBudW1iZXIsIFN0cmluZ0J1ZmZlciByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBmaWVsZFBvc2l0aW9uKQorICAgIHsKKyAgICAgICAgLy9GUDpmaWVsZFBvc2l0aW9uLnNldEJlZ2luSW5kZXgoMCk7CisgICAgICAgIC8vRlA6ZmllbGRQb3NpdGlvbi5zZXRFbmRJbmRleCgwKTsKKworICAgICAgICBpZiAoRG91YmxlLmlzTmFOKG51bWJlcikpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vRlA6aWYgKGZpZWxkUG9zaXRpb24uZ2V0RmllbGQoKSA9PSBOdW1iZXJGb3JtYXQuSU5URUdFUl9GSUVMRCkKKyAgICAgICAgICAgIC8vRlA6ZmllbGRQb3NpdGlvbi5zZXRCZWdpbkluZGV4KHJlc3VsdC5sZW5ndGgoKSk7CisKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc3ltYm9scy5nZXROYU4oKSk7CisKKyAgICAgICAgICAgIC8vRlA6aWYgKGZpZWxkUG9zaXRpb24uZ2V0RmllbGQoKSA9PSBOdW1iZXJGb3JtYXQuSU5URUdFUl9GSUVMRCkKKyAgICAgICAgICAgIC8vRlA6ZmllbGRQb3NpdGlvbi5zZXRFbmRJbmRleChyZXN1bHQubGVuZ3RoKCkpOworCisgICAgICAgICAgICBhZGRQYWRkaW5nKHJlc3VsdCwgZmFsc2UsIGZhbHNlIC8qaWdub3JlZCovKTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKworICAgICAgICAvKiBEZXRlY3Rpbmcgd2hldGhlciBhIGRvdWJsZSBpcyBuZWdhdGl2ZSBpcyBlYXN5IHdpdGggdGhlIGV4Y2VwdGlvbiBvZgorICAgICAgICAgKiB0aGUgdmFsdWUgLTAuMC4gIFRoaXMgaXMgYSBkb3VibGUgd2hpY2ggaGFzIGEgemVybyBtYW50aXNzYSAoYW5kCisgICAgICAgICAqIGV4cG9uZW50KSwgYnV0IGEgbmVnYXRpdmUgc2lnbiBiaXQuICBJdCBpcyBzZW1hbnRpY2FsbHkgZGlzdGluY3QgZnJvbQorICAgICAgICAgKiBhIHplcm8gd2l0aCBhIHBvc2l0aXZlIHNpZ24gYml0LCBhbmQgdGhpcyBkaXN0aW5jdGlvbiBpcyBpbXBvcnRhbnQKKyAgICAgICAgICogdG8gY2VydGFpbiBraW5kcyBvZiBjb21wdXRhdGlvbnMuICBIb3dldmVyLCBpdCdzIGEgbGl0dGxlIHRyaWNreSB0bworICAgICAgICAgKiBkZXRlY3QsIHNpbmNlICgtMC4wID09IDAuMCkgYW5kICEoLTAuMCA8IDAuMCkuICBIb3cgdGhlbiwgeW91IG1heQorICAgICAgICAgKiBhc2ssIGRvZXMgaXQgYmVoYXZlIGRpc3RpbmN0bHkgZnJvbSArMC4wPyAgV2VsbCwgMS8oLTAuMCkgPT0KKyAgICAgICAgICogLUluZmluaXR5LiAgUHJvcGVyIGRldGVjdGlvbiBvZiAtMC4wIGlzIG5lZWRlZCB0byBkZWFsIHdpdGggdGhlCisgICAgICAgICAqIGlzc3VlcyByYWlzZWQgYnkgYnVncyA0MTA2NjU4LCA0MTA2NjY3LCBhbmQgNDE0NzcwNi4gIExpdSA3LzYvOTguCisgICAgICAgICAqLworICAgICAgICBib29sZWFuIGlzTmVnYXRpdmUgPSAobnVtYmVyIDwgMC4wKSB8fCAobnVtYmVyID09IDAuMCAmJiAxL251bWJlciA8IDAuMCk7CisgICAgICAgIGlmIChpc05lZ2F0aXZlKSBudW1iZXIgPSAtbnVtYmVyOworCisgICAgICAgIC8vIERvIHRoaXMgQkVGT1JFIGNoZWNraW5nIHRvIHNlZSBpZiB2YWx1ZSBpcyBpbmZpbml0ZSEKKyAgICAgICAgaWYgKG11bHRpcGxpZXIgIT0gMSkgbnVtYmVyICo9IG11bHRpcGxpZXI7CisKKyAgICAgICAgLy8gQXBwbHkgcm91bmRpbmcgYWZ0ZXIgbXVsdGlwbGllcgorICAgICAgICBpZiAocm91bmRpbmdEb3VibGUgPiAwLjApIHsKKyAgICAgICAgICAgIG51bWJlciA9IHJvdW5kaW5nRG91YmxlCisgICAgICAgICAgICAgICAgKiByb3VuZChudW1iZXIgLyByb3VuZGluZ0RvdWJsZSwgcm91bmRpbmdNb2RlLCBpc05lZ2F0aXZlKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChEb3VibGUuaXNJbmZpbml0ZShudW1iZXIpKQorICAgICAgICB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGlzTmVnYXRpdmUgPyBuZWdhdGl2ZVByZWZpeCA6IHBvc2l0aXZlUHJlZml4KTsKKworICAgICAgICAgICAgLy9GUDppZiAoZmllbGRQb3NpdGlvbi5nZXRGaWVsZCgpID09IE51bWJlckZvcm1hdC5JTlRFR0VSX0ZJRUxEKQorICAgICAgICAgICAgLy9GUDpmaWVsZFBvc2l0aW9uLnNldEJlZ2luSW5kZXgocmVzdWx0Lmxlbmd0aCgpKTsKKworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChzeW1ib2xzLmdldEluZmluaXR5KCkpOworCisgICAgICAgICAgICAvL0ZQOmlmIChmaWVsZFBvc2l0aW9uLmdldEZpZWxkKCkgPT0gTnVtYmVyRm9ybWF0LklOVEVHRVJfRklFTEQpCisgICAgICAgICAgICAvL0ZQOmV5ZGZpZWxkUG9zaXRpb24uc2V0RW5kSW5kZXgocmVzdWx0Lmxlbmd0aCgpKTsKKworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChpc05lZ2F0aXZlID8gbmVnYXRpdmVTdWZmaXggOiBwb3NpdGl2ZVN1ZmZpeCk7CisKKyAgICAgICAgICAgIGFkZFBhZGRpbmcocmVzdWx0LCB0cnVlLCBpc05lZ2F0aXZlKTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKworICAgICAgICAvLyBBdCB0aGlzIHBvaW50IHdlIGFyZSBndWFyYW50ZWVkIGEgbm9ubmVnYXRpdmUgZmluaXRlCisgICAgICAgIC8vIG51bWJlci4KKyAgICAgICAgc3luY2hyb25pemVkKGRpZ2l0TGlzdCkgeworICAgICAgICAgICAgZGlnaXRMaXN0LnNldChudW1iZXIsIHVzZUV4cG9uZW50aWFsTm90YXRpb24gPworICAgICAgICAgICAgICAgICAgICAgIGdldE1pbmltdW1JbnRlZ2VyRGlnaXRzKCkgKyBnZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoKSA6CisgICAgICAgICAgICAgICAgICAgICAgZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCksCisgICAgICAgICAgICAgICAgICAgICAgIXVzZUV4cG9uZW50aWFsTm90YXRpb24pOworCisgICAgICAgICAgICByZXR1cm4gc3ViZm9ybWF0KHJlc3VsdCwgZmllbGRQb3NpdGlvbiwgaXNOZWdhdGl2ZSwgZmFsc2UpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFJvdW5kIGEgZG91YmxlIHZhbHVlIHRvIHRoZSBuZWFyZXN0IGludGVnZXIgYWNjb3JkaW5nIHRvIHRoZQorICAgICAqIGdpdmVuIG1vZGUuCisgICAgICogQHBhcmFtIGEgdGhlIGFic29sdXRlIHZhbHVlIG9mIHRoZSBudW1iZXIgdG8gYmUgcm91bmRlZAorICAgICAqIEBwYXJhbSBtb2RlIGEgQmlnRGVjaW1hbCByb3VuZGluZyBtb2RlCisgICAgICogQHBhcmFtIGlzTmVnYXRpdmUgdHJ1ZSBpZiB0aGUgbnVtYmVyIHRvIGJlIHJvdW5kZWQgaXMgbmVnYXRpdmUKKyAgICAgKiBAcmV0dXJuIHRoZSBhYnNvbHV0ZSB2YWx1ZSBvZiB0aGUgcm91bmRlZCByZXN1bHQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBkb3VibGUgcm91bmQoZG91YmxlIGEsIGludCBtb2RlLCBib29sZWFuIGlzTmVnYXRpdmUpIHsKKyAgICAgICAgc3dpdGNoIChtb2RlKSB7CisgICAgICAgIGNhc2UgamF2YS5tYXRoLkJpZ0RlY2ltYWwuUk9VTkRfQ0VJTElORzoKKyAgICAgICAgICAgIHJldHVybiBpc05lZ2F0aXZlID8gTWF0aC5mbG9vcihhKSA6IE1hdGguY2VpbChhKTsKKyAgICAgICAgY2FzZSBqYXZhLm1hdGguQmlnRGVjaW1hbC5ST1VORF9GTE9PUjoKKyAgICAgICAgICAgIHJldHVybiBpc05lZ2F0aXZlID8gTWF0aC5jZWlsKGEpIDogTWF0aC5mbG9vcihhKTsKKyAgICAgICAgY2FzZSBqYXZhLm1hdGguQmlnRGVjaW1hbC5ST1VORF9ET1dOOgorICAgICAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IoYSk7CisgICAgICAgIGNhc2UgamF2YS5tYXRoLkJpZ0RlY2ltYWwuUk9VTkRfVVA6CisgICAgICAgICAgICByZXR1cm4gTWF0aC5jZWlsKGEpOworICAgICAgICBjYXNlIGphdmEubWF0aC5CaWdEZWNpbWFsLlJPVU5EX0hBTEZfRVZFTjoKKyAgICAgICAgICAgIC8vIFdlIHNob3VsZCBiZSBhYmxlIHRvIGp1c3QgcmV0dXJuIE1hdGgucmludChhKSwgYnV0IHRoaXMKKyAgICAgICAgICAgIC8vIGRvZXNuJ3Qgd29yayBpbiBzb21lIFZNcy4KKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBkb3VibGUgZiA9IE1hdGguZmxvb3IoYSk7CisgICAgICAgICAgICAgICAgaWYgKChhIC0gZikgIT0gMC41KSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLnJpbnQoYSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGYgLz0gMi4wOworICAgICAgICAgICAgICAgIHJldHVybiBmID09IE1hdGguZmxvb3IoZikgPyBNYXRoLmZsb29yKGEpIDogKE1hdGguZmxvb3IoYSkgKyAxLjApOworICAgICAgICAgICAgfQorICAgICAgICBjYXNlIGphdmEubWF0aC5CaWdEZWNpbWFsLlJPVU5EX0hBTEZfRE9XTjoKKyAgICAgICAgICAgIHJldHVybiAoKGEgLSBNYXRoLmZsb29yKGEpKSA8PSAwLjUpID8gTWF0aC5mbG9vcihhKSA6IE1hdGguY2VpbChhKTsKKyAgICAgICAgY2FzZSBqYXZhLm1hdGguQmlnRGVjaW1hbC5ST1VORF9IQUxGX1VQOgorICAgICAgICAgICAgcmV0dXJuICgoYSAtIE1hdGguZmxvb3IoYSkpIDwgMC41KSA/IE1hdGguZmxvb3IoYSkgOiBNYXRoLmNlaWwoYSk7CisgICAgICAgIGNhc2UgamF2YS5tYXRoLkJpZ0RlY2ltYWwuUk9VTkRfVU5ORUNFU1NBUlk6CisgICAgICAgICAgICBpZiAoYSAhPSBNYXRoLmZsb29yKGEpKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyaXRobWV0aWNFeGNlcHRpb24oIlJvdW5kaW5nIG5lY2Vzc2FyeSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIHJvdW5kaW5nIG1vZGU6ICIgKyBtb2RlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KGxvbmcgbnVtYmVyLCBTdHJpbmdCdWZmZXIgcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gZmllbGRQb3NpdGlvbikKKyAgICB7CisgICAgICAgIC8vRlA6ZmllbGRQb3NpdGlvbi5zZXRCZWdpbkluZGV4KDApOworICAgICAgICAvL0ZQOmZpZWxkUG9zaXRpb24uc2V0RW5kSW5kZXgoMCk7CisKKyAgICAgICAgLy8gSWYgd2UgYXJlIHRvIGRvIHJvdW5kaW5nLCB3ZSBuZWVkIHRvIG1vdmUgaW50byB0aGUgQmlnRGVjaW1hbAorICAgICAgICAvLyBkb21haW4gaW4gb3JkZXIgdG8gZG8gZGl2aWRlL211bHRpcGx5IGNvcnJlY3RseS4KKyAgICAgICAgLy8gW05FV10KKyAgICAgICAgaWYgKHJvdW5kaW5nSW5jcmVtZW50ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmb3JtYXQoamF2YS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihudW1iZXIpLCByZXN1bHQsIGZpZWxkUG9zaXRpb24pOworICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBpc05lZ2F0aXZlID0gKG51bWJlciA8IDApOworICAgICAgICBpZiAoaXNOZWdhdGl2ZSkgbnVtYmVyID0gLW51bWJlcjsKKworICAgICAgICAvLyBJbiBnZW5lcmFsLCBsb25nIHZhbHVlcyBhbHdheXMgcmVwcmVzZW50IHJlYWwgZmluaXRlIG51bWJlcnMsIHNvCisgICAgICAgIC8vIHdlIGRvbid0IGhhdmUgdG8gY2hlY2sgZm9yICsvLSBJbmZpbml0eSBvciBOYU4uICBIb3dldmVyLCB0aGVyZQorICAgICAgICAvLyBpcyBvbmUgY2FzZSB3ZSBoYXZlIHRvIGJlIGNhcmVmdWwgb2Y6ICBUaGUgbXVsdGlwbGllciBjYW4gcHVzaAorICAgICAgICAvLyBhIG51bWJlciBuZWFyIE1JTl9WQUxVRSBvciBNQVhfVkFMVUUgb3V0c2lkZSB0aGUgbGVnYWwgcmFuZ2UuICBXZQorICAgICAgICAvLyBjaGVjayBmb3IgdGhpcyBiZWZvcmUgbXVsdGlwbHlpbmcsIGFuZCBpZiBpdCBoYXBwZW5zIHdlIHVzZSBCaWdJbnRlZ2VyCisgICAgICAgIC8vIGluc3RlYWQuCisgICAgICAgIC8vIFtORVddCisgICAgICAgIGlmIChtdWx0aXBsaWVyICE9IDEpIHsKKyAgICAgICAgICAgIGJvb2xlYW4gdG9vQmlnID0gZmFsc2U7CisgICAgICAgICAgICBpZiAobnVtYmVyIDwgMCkgeyAvLyBUaGlzIGNhbiBvbmx5IGhhcHBlbiBpZiBudW1iZXIgPT0gTG9uZy5NSU5fVkFMVUUKKyAgICAgICAgICAgICAgICBsb25nIGN1dG9mZiA9IExvbmcuTUlOX1ZBTFVFIC8gbXVsdGlwbGllcjsKKyAgICAgICAgICAgICAgICB0b29CaWcgPSAobnVtYmVyIDwgY3V0b2ZmKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbG9uZyBjdXRvZmYgPSBMb25nLk1BWF9WQUxVRSAvIG11bHRpcGxpZXI7CisgICAgICAgICAgICAgICAgdG9vQmlnID0gKG51bWJlciA+IGN1dG9mZik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodG9vQmlnKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZvcm1hdChCaWdJbnRlZ2VyLnZhbHVlT2YoaXNOZWdhdGl2ZSA/IC1udW1iZXIgOiBudW1iZXIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LCBmaWVsZFBvc2l0aW9uKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIG51bWJlciAqPSBtdWx0aXBsaWVyOworICAgICAgICBzeW5jaHJvbml6ZWQoZGlnaXRMaXN0KSB7CisgICAgICAgICAgICBkaWdpdExpc3Quc2V0KG51bWJlciwgdXNlRXhwb25lbnRpYWxOb3RhdGlvbiA/CisgICAgICAgICAgICAgICAgICAgICAgICAgIGdldE1pbmltdW1JbnRlZ2VyRGlnaXRzKCkgKyBnZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoKSA6IDApOworCisgICAgICAgICAgICByZXR1cm4gc3ViZm9ybWF0KHJlc3VsdCwgZmllbGRQb3NpdGlvbiwgaXNOZWdhdGl2ZSwgdHJ1ZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogRm9ybWF0IGEgQmlnSW50ZWdlciBudW1iZXIuCisgICAgICovCisgICAgcHVibGljIFN0cmluZ0J1ZmZlciBmb3JtYXQoQmlnSW50ZWdlciBudW1iZXIsIFN0cmluZ0J1ZmZlciByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBmaWVsZFBvc2l0aW9uKSB7CisgICAgICAgIC8vIElmIHdlIGFyZSB0byBkbyByb3VuZGluZywgd2UgbmVlZCB0byBtb3ZlIGludG8gdGhlIEJpZ0RlY2ltYWwKKyAgICAgICAgLy8gZG9tYWluIGluIG9yZGVyIHRvIGRvIGRpdmlkZS9tdWx0aXBseSBjb3JyZWN0bHkuCisgICAgICAgIGlmIChyb3VuZGluZ0luY3JlbWVudCAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZm9ybWF0KG5ldyBqYXZhLm1hdGguQmlnRGVjaW1hbChudW1iZXIpLCByZXN1bHQsIGZpZWxkUG9zaXRpb24pOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG11bHRpcGxpZXIgIT0gMSkgeworICAgICAgICAgICAgbnVtYmVyID0gbnVtYmVyLm11bHRpcGx5KEJpZ0ludGVnZXIudmFsdWVPZihtdWx0aXBsaWVyKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBBdCB0aGlzIHBvaW50IHdlIGFyZSBndWFyYW50ZWVkIGEgbm9ubmVnYXRpdmUgZmluaXRlCisgICAgICAgIC8vIG51bWJlci4KKyAgICAgICAgc3luY2hyb25pemVkKGRpZ2l0TGlzdCkgeworICAgICAgICAgICAgZGlnaXRMaXN0LnNldChudW1iZXIsIHVzZUV4cG9uZW50aWFsTm90YXRpb24gPworICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpICsgZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCkgOiAwKTsKKworICAgICAgICAgICAgcmV0dXJuIHN1YmZvcm1hdChyZXN1bHQsIGZpZWxkUG9zaXRpb24sIG51bWJlci5zaWdudW0oKSA8IDAsIGZhbHNlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBGb3JtYXQgYSBCaWdEZWNpbWFsIG51bWJlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIGZvcm1hdChqYXZhLm1hdGguQmlnRGVjaW1hbCBudW1iZXIsIFN0cmluZ0J1ZmZlciByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBmaWVsZFBvc2l0aW9uKSB7CisgICAgICAgIGlmIChtdWx0aXBsaWVyICE9IDEpIHsKKyAgICAgICAgICAgIG51bWJlciA9IG51bWJlci5tdWx0aXBseShqYXZhLm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKG11bHRpcGxpZXIpKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChyb3VuZGluZ0luY3JlbWVudCAhPSBudWxsKSB7CisgICAgICAgICAgICBudW1iZXIgPSBudW1iZXIuZGl2aWRlKHJvdW5kaW5nSW5jcmVtZW50LCAwLCByb3VuZGluZ01vZGUpCisgICAgICAgICAgICAgICAgICAgIC5tdWx0aXBseShyb3VuZGluZ0luY3JlbWVudCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBBdCB0aGlzIHBvaW50IHdlIGFyZSBndWFyYW50ZWVkIGEgbm9ubmVnYXRpdmUgZmluaXRlCisgICAgICAgIC8vIG51bWJlci4KKyAgICAgICAgc3luY2hyb25pemVkKGRpZ2l0TGlzdCkgeworICAgICAgICAgICAgZGlnaXRMaXN0LnNldChudW1iZXIsIHVzZUV4cG9uZW50aWFsTm90YXRpb24gPworICAgICAgICAgICAgICAgICAgICAgIGdldE1pbmltdW1JbnRlZ2VyRGlnaXRzKCkgKyBnZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoKSA6CisgICAgICAgICAgICAgICAgICAgICAgZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCksCisgICAgICAgICAgICAgICAgICAgICAgIXVzZUV4cG9uZW50aWFsTm90YXRpb24pOworICAgICAgICAgICAgcmV0dXJuIHN1YmZvcm1hdChyZXN1bHQsIGZpZWxkUG9zaXRpb24sIG51bWJlci5zaWdudW0oKSA8IDAsIGZhbHNlKTsKKyAgICAgICAgfSAgICAgICAgCisgICAgfQorCisgICAgLy9UaGlzIGhhcyBiZWVuIHJlbW92ZWQgcGVuZGluZyBhZGRpdGlvbiBvZiBjb20uaWJtLmljdS5tYXRoIHBhY2thZ2UgdG8gSUNVNEoKKyAgICAvKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBGb3JtYXQgYSBCaWdEZWNpbWFsIG51bWJlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIGZvcm1hdChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbnVtYmVyLCBTdHJpbmdCdWZmZXIgcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gZmllbGRQb3NpdGlvbikgeworICAgICAgICAvKiBUaGlzIG1ldGhvZCBpcyBqdXN0IGEgY29weSBvZiB0aGUgY29ycmVzcG9uZGluZyBqYXZhLm1hdGguQmlnRGVjaW1hbAorICAgICAgICAgKiBtZXRob2QgZm9yIG5vdy4gIEl0IGlzbid0IHZlcnkgZWZmaWNpZW50IHNpbmNlIGl0IG11c3QgY3JlYXRlIGEKKyAgICAgICAgICogY29udmVyc2lvbiBvYmplY3QgdG8gZG8gbWF0aCBvbiB0aGUgcm91bmRpbmcgaW5jcmVtZW50LiAgSW4gdGhlCisgICAgICAgICAqIGZ1dHVyZSB3ZSBtYXkgdHJ5IHRvIGNsZWFuIHRoaXMgdXAsIG9yIGV2ZW4gYmV0dGVyLCBsaW1pdCBvdXIgc3VwcG9ydAorICAgICAgICAgKiB0byBqdXN0IG9uZSBmbGF2b3Igb2YgQmlnRGVjaW1hbC4KKyAgICAgICAgICovCisgICAgICAgIGlmIChtdWx0aXBsaWVyICE9IDEpIHsKKyAgICAgICAgICAgIG51bWJlciA9IG51bWJlci5tdWx0aXBseShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihtdWx0aXBsaWVyKSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAocm91bmRpbmdJbmNyZW1lbnQgIT0gbnVsbCkgeworICAgICAgICAgICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJpID0gbmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChyb3VuZGluZ0luY3JlbWVudCk7CisgICAgICAgICAgICBudW1iZXIgPSBudW1iZXIuZGl2aWRlKHJpLCAwLCByb3VuZGluZ01vZGUpCisgICAgICAgICAgICAgICAgICAgIC5tdWx0aXBseShyaSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBBdCB0aGlzIHBvaW50IHdlIGFyZSBndWFyYW50ZWVkIGEgbm9ubmVnYXRpdmUgZmluaXRlCisgICAgICAgIC8vIG51bWJlci4KKyAgICAgICAgc3luY2hyb25pemVkKGRpZ2l0TGlzdCkgeworICAgICAgICAgICAgZGlnaXRMaXN0LnNldChudW1iZXIsIHVzZUV4cG9uZW50aWFsTm90YXRpb24gPworICAgICAgICAgICAgICAgICAgICAgIGdldE1pbmltdW1JbnRlZ2VyRGlnaXRzKCkgKyBnZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoKSA6CisgICAgICAgICAgICAgICAgICAgICAgZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCksCisgICAgICAgICAgICAgICAgICAgICAgIXVzZUV4cG9uZW50aWFsTm90YXRpb24pOworICAgICAgICAgICAgcmV0dXJuIHN1YmZvcm1hdChyZXN1bHQsIGZpZWxkUG9zaXRpb24sIG51bWJlci5zaWdudW0oKSA8IDAsIGZhbHNlKTsKKyAgICAgICAgfSAgICAgICAgCisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgYSBncm91cGluZyBzZXBhcmF0b3IgYmVsb25ncyBhdCB0aGUgZ2l2ZW4KKyAgICAgKiBwb3NpdGlvbiwgYmFzZWQgb24gd2hldGhlciBncm91cGluZyBpcyBpbiB1c2UgYW5kIHRoZSB2YWx1ZXMgb2YKKyAgICAgKiB0aGUgcHJpbWFyeSBhbmQgc2Vjb25kYXJ5IGdyb3VwaW5nIGludGVydmFsLgorICAgICAqIEBwYXJhbSBwb3MgdGhlIG51bWJlciBvZiBpbnRlZ2VyIGRpZ2l0cyB0byB0aGUgcmlnaHQgb2YKKyAgICAgKiB0aGUgY3VycmVudCBwb3NpdGlvbi4gIFplcm8gaW5kaWNhdGVzIHRoZSBwb3NpdGlvbiBhZnRlciB0aGUKKyAgICAgKiByaWdodG1vc3QgaW50ZWdlciBkaWdpdC4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgYSBncm91cGluZyBjaGFyYWN0ZXIgYmVsb25ncyBhdCB0aGUgY3VycmVudAorICAgICAqIHBvc2l0aW9uLgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBpc0dyb3VwaW5nUG9zaXRpb24oaW50IHBvcykgeworICAgICAgICBib29sZWFuIHJlc3VsdCA9IGZhbHNlOworICAgICAgICBpZiAoaXNHcm91cGluZ1VzZWQoKSAmJiAocG9zID4gMCkgJiYgKGdyb3VwaW5nU2l6ZSA+IDApKSB7CisgICAgICAgICAgICBpZiAoKGdyb3VwaW5nU2l6ZTIgPiAwKSAmJiAocG9zID4gZ3JvdXBpbmdTaXplKSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9ICgocG9zIC0gZ3JvdXBpbmdTaXplKSAlIGdyb3VwaW5nU2l6ZTIpID09IDA7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHBvcyAlIGdyb3VwaW5nU2l6ZSA9PSAwOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGxldGUgdGhlIGZvcm1hdHRpbmcgb2YgYSBmaW5pdGUgbnVtYmVyLiAgT24gZW50cnksIHRoZSBkaWdpdExpc3QgbXVzdAorICAgICAqIGJlIGZpbGxlZCBpbiB3aXRoIHRoZSBjb3JyZWN0IGRpZ2l0cy4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciBzdWJmb3JtYXQoU3RyaW5nQnVmZmVyIHJlc3VsdCwgRmllbGRQb3NpdGlvbiBmaWVsZFBvc2l0aW9uLAorICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gaXNOZWdhdGl2ZSwgYm9vbGVhbiBpc0ludGVnZXIpCisgICAgeworICAgICAgICAvLyBOT1RFOiBUaGlzIGlzbid0IHJlcXVpcmVkIGFueW1vcmUgYmVjYXVzZSBEaWdpdExpc3QgdGFrZXMgY2FyZSBvZiB0aGlzLgorICAgICAgICAvLworICAgICAgICAvLyAgLy8gVGhlIG5lZ2F0aXZlIG9mIHRoZSBleHBvbmVudCByZXByZXNlbnRzIHRoZSBudW1iZXIgb2YgbGVhZGluZworICAgICAgICAvLyAgLy8gemVyb3MgYmV0d2VlbiB0aGUgZGVjaW1hbCBhbmQgdGhlIGZpcnN0IG5vbi16ZXJvIGRpZ2l0LCBmb3IKKyAgICAgICAgLy8gIC8vIGEgdmFsdWUgPCAwLjEgKGUuZy4sIGZvciAwLjAwMTIzLCAtZkV4cG9uZW50ID09IDIpLiAgSWYgdGhpcworICAgICAgICAvLyAgLy8gaXMgbW9yZSB0aGFuIHRoZSBtYXhpbXVtIGZyYWN0aW9uIGRpZ2l0cywgdGhlbiB3ZSBoYXZlIGFuIHVuZGVyZmxvdworICAgICAgICAvLyAgLy8gZm9yIHRoZSBwcmludGVkIHJlcHJlc2VudGF0aW9uLiAgV2UgcmVjb2duaXplIHRoaXMgaGVyZSBhbmQgc2V0CisgICAgICAgIC8vICAvLyB0aGUgRGlnaXRMaXN0IHJlcHJlc2VudGF0aW9uIHRvIHplcm8gaW4gdGhpcyBzaXR1YXRpb24uCisgICAgICAgIC8vCisgICAgICAgIC8vICBpZiAoLWRpZ2l0TGlzdC5kZWNpbWFsQXQgPj0gZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCkpCisgICAgICAgIC8vICB7CisgICAgICAgIC8vICAgICAgZGlnaXRMaXN0LmNvdW50ID0gMDsKKyAgICAgICAgLy8gIH0KKworICAgICAgICBpbnQgaTsKKyAgICAgICAgY2hhciB6ZXJvID0gc3ltYm9scy5nZXRaZXJvRGlnaXQoKTsKKyAgICAgICAgaW50IHplcm9EZWx0YSA9IHplcm8gLSAnMCc7IC8vICcwJyBpcyB0aGUgRGlnaXRMaXN0IHJlcHJlc2VudGF0aW9uIG9mIHplcm8KKyAgICAgICAgY2hhciBncm91cGluZyA9IHN5bWJvbHMuZ2V0R3JvdXBpbmdTZXBhcmF0b3IoKTsKKyAgICAgICAgY2hhciBkZWNpbWFsID0gaXNDdXJyZW5jeUZvcm1hdCA/CisgICAgICAgICAgICBzeW1ib2xzLmdldE1vbmV0YXJ5RGVjaW1hbFNlcGFyYXRvcigpIDoKKyAgICAgICAgICAgIHN5bWJvbHMuZ2V0RGVjaW1hbFNlcGFyYXRvcigpOworICAgICAgICBpbnQgbWF4SW50RGlnID0gZ2V0TWF4aW11bUludGVnZXJEaWdpdHMoKTsKKyAgICAgICAgaW50IG1pbkludERpZyA9IGdldE1pbmltdW1JbnRlZ2VyRGlnaXRzKCk7CisKKyAgICAgICAgLyogUGVyIGJ1ZyA0MTQ3NzA2LCBEZWNpbWFsRm9ybWF0IG11c3QgcmVzcGVjdCB0aGUgc2lnbiBvZiBudW1iZXJzIHdoaWNoCisgICAgICAgICAqIGZvcm1hdCBhcyB6ZXJvLiAgVGhpcyBhbGxvd3Mgc2Vuc2libGUgY29tcHV0YXRpb25zIGFuZCBwcmVzZXJ2ZXMKKyAgICAgICAgICogcmVsYXRpb25zIHN1Y2ggYXMgc2lnbnVtKDEveCkgPSBzaWdudW0oeCksIHdoZXJlIHggaXMgK0luZmluaXR5IG9yCisgICAgICAgICAqIC1JbmZpbml0eS4gIFByaW9yIHRvIHRoaXMgZml4LCB3ZSBhbHdheXMgZm9ybWF0dGVkIHplcm8gdmFsdWVzIGFzIGlmCisgICAgICAgICAqIHRoZXkgd2VyZSBwb3NpdGl2ZS4gIExpdSA3LzYvOTguCisgICAgICAgICAqLworICAgICAgICBpZiAoZGlnaXRMaXN0LmlzWmVybygpKQorICAgICAgICB7CisgICAgICAgICAgICBkaWdpdExpc3QuZGVjaW1hbEF0ID0gMDsgLy8gTm9ybWFsaXplCisgICAgICAgIH0KKworICAgICAgICByZXN1bHQuYXBwZW5kKGlzTmVnYXRpdmUgPyBuZWdhdGl2ZVByZWZpeCA6IHBvc2l0aXZlUHJlZml4KTsKKworICAgICAgICBpZiAodXNlRXhwb25lbnRpYWxOb3RhdGlvbikKKyAgICAgICAgeworICAgICAgICAgICAgLy8gUmVjb3JkIGZpZWxkIGluZm9ybWF0aW9uIGZvciBjYWxsZXIuCisgICAgICAgICAgICAvL0ZQOmlmIChmaWVsZFBvc2l0aW9uLmdldEZpZWxkKCkgPT0gTnVtYmVyRm9ybWF0LklOVEVHRVJfRklFTEQpCisgICAgICAgICAgICAvL0ZQOnsKKyAgICAgICAgICAgICAgICAvL0ZQOmZpZWxkUG9zaXRpb24uc2V0QmVnaW5JbmRleChyZXN1bHQubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIC8vRlA6ZmllbGRQb3NpdGlvbi5zZXRFbmRJbmRleCgtMSk7CisgICAgICAgICAgICAvL0ZQOn0KKyAgICAgICAgICAgIC8vRlA6ZWxzZSBpZiAoZmllbGRQb3NpdGlvbi5nZXRGaWVsZCgpID09IE51bWJlckZvcm1hdC5GUkFDVElPTl9GSUVMRCkKKyAgICAgICAgICAgIC8vRlA6eworICAgICAgICAgICAgICAgIC8vRlA6ZmllbGRQb3NpdGlvbi5zZXRCZWdpbkluZGV4KC0xKTsKKyAgICAgICAgICAgIC8vRlA6fQorCisgICAgICAgICAgICAvLyBNaW5pbXVtIGludGVnZXIgZGlnaXRzIGFyZSBoYW5kbGVkIGluIGV4cG9uZW50aWFsIGZvcm1hdCBieQorICAgICAgICAgICAgLy8gYWRqdXN0aW5nIHRoZSBleHBvbmVudC4gIEZvciBleGFtcGxlLCAwLjAxMjM0IHdpdGggMyBtaW5pbXVtCisgICAgICAgICAgICAvLyBpbnRlZ2VyIGRpZ2l0cyBpcyAiMTIzLjRFLTQiLgorCisgICAgICAgICAgICAvLyBNYXhpbXVtIGludGVnZXIgZGlnaXRzIGFyZSBpbnRlcnByZXRlZCBhcyBpbmRpY2F0aW5nIHRoZQorICAgICAgICAgICAgLy8gcmVwZWF0aW5nIHJhbmdlLiAgVGhpcyBpcyB1c2VmdWwgZm9yIGVuZ2luZWVyaW5nIG5vdGF0aW9uLCBpbgorICAgICAgICAgICAgLy8gd2hpY2ggdGhlIGV4cG9uZW50IGlzIHJlc3RyaWN0ZWQgdG8gYSBtdWx0aXBsZSBvZiAzLiAgRm9yCisgICAgICAgICAgICAvLyBleGFtcGxlLCAwLjAxMjM0IHdpdGggMyBtYXhpbXVtIGludGVnZXIgZGlnaXRzIGlzICIxMi4zNGUtMyIuCisgICAgICAgICAgICAvLyBJZiBtYXhpbXVtIGludGVnZXIgZGlnaXRzIGFyZSBkZWZpbmVkIGFuZCBhcmUgbGFyZ2VyIHRoYW4KKyAgICAgICAgICAgIC8vIG1pbmltdW0gaW50ZWdlciBkaWdpdHMsIHRoZW4gbWluaW11bSBpbnRlZ2VyIGRpZ2l0cyBhcmUKKyAgICAgICAgICAgIC8vIGlnbm9yZWQuCisKKyAgICAgICAgICAgIGludCBleHBvbmVudCA9IGRpZ2l0TGlzdC5kZWNpbWFsQXQ7CisgICAgICAgICAgICBpZiAobWF4SW50RGlnID4gMSAmJiBtYXhJbnREaWcgIT0gbWluSW50RGlnKSB7CisgICAgICAgICAgICAgICAgLy8gQSBleHBvbmVudCBpbmNyZW1lbnQgaXMgZGVmaW5lZDsgYWRqdXN0IHRvIGl0LgorICAgICAgICAgICAgICAgIGV4cG9uZW50ID0gKGV4cG9uZW50ID4gMCkgPyAoZXhwb25lbnQgLSAxKSAvIG1heEludERpZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoZXhwb25lbnQgLyBtYXhJbnREaWcpIC0gMTsKKyAgICAgICAgICAgICAgICBleHBvbmVudCAqPSBtYXhJbnREaWc7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIE5vIGV4cG9uZW50IGluY3JlbWVudCBpcyBkZWZpbmVkOyB1c2UgbWluaW11bSBpbnRlZ2VyIGRpZ2l0cy4KKyAgICAgICAgICAgICAgICAvLyBJZiBub25lIGlzIHNwZWNpZmllZCwgYXMgaW4gIiNFMCIsIGdlbmVyYXRlIDEgaW50ZWdlciBkaWdpdC4KKyAgICAgICAgICAgICAgICBleHBvbmVudCAtPSAobWluSW50RGlnID4gMCB8fCBnZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoKSA+IDApCisgICAgICAgICAgICAgICAgICAgID8gbWluSW50RGlnIDogMTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gV2Ugbm93IG91dHB1dCBhIG1pbmltdW0gbnVtYmVyIG9mIGRpZ2l0cywgYW5kIG1vcmUgaWYgdGhlcmUKKyAgICAgICAgICAgIC8vIGFyZSBtb3JlIGRpZ2l0cywgdXAgdG8gdGhlIG1heGltdW0gbnVtYmVyIG9mIGRpZ2l0cy4gIFdlCisgICAgICAgICAgICAvLyBwbGFjZSB0aGUgZGVjaW1hbCBwb2ludCBhZnRlciB0aGUgImludGVnZXIiIGRpZ2l0cywgd2hpY2gKKyAgICAgICAgICAgIC8vIGFyZSB0aGUgZmlyc3QgKGRlY2ltYWxBdCAtIGV4cG9uZW50KSBkaWdpdHMuCisgICAgICAgICAgICBpbnQgbWluaW11bURpZ2l0cyA9IG1pbkludERpZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGdldE1pbmltdW1GcmFjdGlvbkRpZ2l0cygpOworICAgICAgICAgICAgLy8gVGhlIG51bWJlciBvZiBpbnRlZ2VyIGRpZ2l0cyBpcyBoYW5kbGVkIHNwZWNpYWxseSBpZiB0aGUgbnVtYmVyCisgICAgICAgICAgICAvLyBpcyB6ZXJvLCBzaW5jZSB0aGVuIHRoZXJlIG1heSBiZSBubyBkaWdpdHMuCisgICAgICAgICAgICBpbnQgaW50ZWdlckRpZ2l0cyA9IGRpZ2l0TGlzdC5pc1plcm8oKSA/IG1pbkludERpZyA6CisgICAgICAgICAgICAgICAgZGlnaXRMaXN0LmRlY2ltYWxBdCAtIGV4cG9uZW50OworICAgICAgICAgICAgaW50IHRvdGFsRGlnaXRzID0gZGlnaXRMaXN0LmNvdW50OworICAgICAgICAgICAgaWYgKG1pbmltdW1EaWdpdHMgPiB0b3RhbERpZ2l0cykgdG90YWxEaWdpdHMgPSBtaW5pbXVtRGlnaXRzOworICAgICAgICAgICAgaWYgKGludGVnZXJEaWdpdHMgPiB0b3RhbERpZ2l0cykgdG90YWxEaWdpdHMgPSBpbnRlZ2VyRGlnaXRzOworCisgICAgICAgICAgICBmb3IgKGk9MDsgaTx0b3RhbERpZ2l0czsgKytpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmIChpID09IGludGVnZXJEaWdpdHMpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAvLyBSZWNvcmQgZmllbGQgaW5mb3JtYXRpb24gZm9yIGNhbGxlci4KKyAgICAgICAgICAgICAgICAgICAgLy9GUDppZiAoZmllbGRQb3NpdGlvbi5nZXRGaWVsZCgpID09IE51bWJlckZvcm1hdC5JTlRFR0VSX0ZJRUxEKQorICAgICAgICAgICAgICAgICAgICAvL0ZQOmZpZWxkUG9zaXRpb24uc2V0RW5kSW5kZXgocmVzdWx0Lmxlbmd0aCgpKTsKKworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGRlY2ltYWwpOworCisgICAgICAgICAgICAgICAgICAgIC8vIFJlY29yZCBmaWVsZCBpbmZvcm1hdGlvbiBmb3IgY2FsbGVyLgorICAgICAgICAgICAgICAgICAgICAvL0ZQOmlmIChmaWVsZFBvc2l0aW9uLmdldEZpZWxkKCkgPT0gTnVtYmVyRm9ybWF0LkZSQUNUSU9OX0ZJRUxEKQorICAgICAgICAgICAgICAgICAgICAvL0ZQOmZpZWxkUG9zaXRpb24uc2V0QmVnaW5JbmRleChyZXN1bHQubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKChpIDwgZGlnaXRMaXN0LmNvdW50KSA/CisgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKShkaWdpdExpc3QuZGlnaXRzW2ldICsgemVyb0RlbHRhKSA6CisgICAgICAgICAgICAgICAgICAgICAgICAgIHplcm8pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvL0ZvciBJQ1UgY29tcGF0aWJpbGl0eSBhbmQgZm9ybWF0IDAgdG8gMEUwIHdpdGggcGF0dGVybiAiI0UwIiBbUmljaGFyZC9HQ0xdCisgICAgICAgICAgICBpZiAoZGlnaXRMaXN0LmlzWmVybygpICYmICh0b3RhbERpZ2l0cyA9PTApKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCh6ZXJvKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gUmVjb3JkIGZpZWxkIGluZm9ybWF0aW9uCisgICAgICAgICAgICBpZiAoZmllbGRQb3NpdGlvbi5nZXRGaWVsZCgpID09IE51bWJlckZvcm1hdC5JTlRFR0VSX0ZJRUxEKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vRlA6aWYgKGZpZWxkUG9zaXRpb24uZ2V0RW5kSW5kZXgoKSA8IDApCisgICAgICAgICAgICAgICAgLy9GUDpmaWVsZFBvc2l0aW9uLnNldEVuZEluZGV4KHJlc3VsdC5sZW5ndGgoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChmaWVsZFBvc2l0aW9uLmdldEZpZWxkKCkgPT0gTnVtYmVyRm9ybWF0LkZSQUNUSU9OX0ZJRUxEKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vRlA6aWYgKGZpZWxkUG9zaXRpb24uZ2V0QmVnaW5JbmRleCgpIDwgMCkKKyAgICAgICAgICAgICAgICAvL0ZQOmZpZWxkUG9zaXRpb24uc2V0QmVnaW5JbmRleChyZXN1bHQubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIC8vRlA6ZmllbGRQb3NpdGlvbi5zZXRFbmRJbmRleChyZXN1bHQubGVuZ3RoKCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBUaGUgZXhwb25lbnQgaXMgb3V0cHV0IHVzaW5nIHRoZSBwYXR0ZXJuLXNwZWNpZmllZCBtaW5pbXVtCisgICAgICAgICAgICAvLyBleHBvbmVudCBkaWdpdHMuICBUaGVyZSBpcyBubyBtYXhpbXVtIGxpbWl0IHRvIHRoZSBleHBvbmVudAorICAgICAgICAgICAgLy8gZGlnaXRzLCBzaW5jZSB0cnVuY2F0aW5nIHRoZSBleHBvbmVudCB3b3VsZCByZXN1bHQgaW4gYW4KKyAgICAgICAgICAgIC8vIHVuYWNjZXB0YWJsZSBpbmFjY3VyYWN5LgorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChzeW1ib2xzLmdldEV4cG9uZW50U2VwYXJhdG9yKCkpOworCisgICAgICAgICAgICAvLyBGb3IgemVybyB2YWx1ZXMsIHdlIGZvcmNlIHRoZSBleHBvbmVudCB0byB6ZXJvLiAgV2UKKyAgICAgICAgICAgIC8vIG11c3QgZG8gdGhpcyBoZXJlLCBhbmQgbm90IGVhcmxpZXIsIGJlY2F1c2UgdGhlIHZhbHVlCisgICAgICAgICAgICAvLyBpcyB1c2VkIHRvIGRldGVybWluZSBpbnRlZ2VyIGRpZ2l0IGNvdW50IGFib3ZlLgorICAgICAgICAgICAgaWYgKGRpZ2l0TGlzdC5pc1plcm8oKSkgZXhwb25lbnQgPSAwOworCisgICAgICAgICAgICBib29sZWFuIG5lZ2F0aXZlRXhwb25lbnQgPSBleHBvbmVudCA8IDA7CisgICAgICAgICAgICBpZiAobmVnYXRpdmVFeHBvbmVudCkgeworICAgICAgICAgICAgICAgIGV4cG9uZW50ID0gLWV4cG9uZW50OworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc3ltYm9scy5nZXRNaW51c1NpZ24oKSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGV4cG9uZW50U2lnbkFsd2F5c1Nob3duKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChzeW1ib2xzLmdldFBsdXNTaWduKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZGlnaXRMaXN0LnNldChleHBvbmVudCk7CisgICAgICAgICAgICBmb3IgKGk9ZGlnaXRMaXN0LmRlY2ltYWxBdDsgaTxtaW5FeHBvbmVudERpZ2l0czsgKytpKSByZXN1bHQuYXBwZW5kKHplcm8pOworICAgICAgICAgICAgZm9yIChpPTA7IGk8ZGlnaXRMaXN0LmRlY2ltYWxBdDsgKytpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoKGkgPCBkaWdpdExpc3QuY291bnQpID8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpKGRpZ2l0TGlzdC5kaWdpdHNbaV0gKyB6ZXJvRGVsdGEpIDogemVybyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAgICAvLyBSZWNvcmQgZmllbGQgaW5mb3JtYXRpb24gZm9yIGNhbGxlci4KKyAgICAgICAgICAgIC8vRlA6aWYgKGZpZWxkUG9zaXRpb24uZ2V0RmllbGQoKSA9PSBOdW1iZXJGb3JtYXQuSU5URUdFUl9GSUVMRCkKKyAgICAgICAgICAgIC8vRlA6ZmllbGRQb3NpdGlvbi5zZXRCZWdpbkluZGV4KHJlc3VsdC5sZW5ndGgoKSk7CisKKyAgICAgICAgICAgIC8vIE91dHB1dCB0aGUgaW50ZWdlciBwb3J0aW9uLiAgSGVyZSAnY291bnQnIGlzIHRoZSB0b3RhbAorICAgICAgICAgICAgLy8gbnVtYmVyIG9mIGludGVnZXIgZGlnaXRzIHdlIHdpbGwgZGlzcGxheSwgaW5jbHVkaW5nIGJvdGgKKyAgICAgICAgICAgIC8vIGxlYWRpbmcgemVyb3MgcmVxdWlyZWQgdG8gc2F0aXNmeSBnZXRNaW5pbXVtSW50ZWdlckRpZ2l0cywKKyAgICAgICAgICAgIC8vIGFuZCBhY3R1YWwgZGlnaXRzIHByZXNlbnQgaW4gdGhlIG51bWJlci4KKyAgICAgICAgICAgIGludCBjb3VudCA9IG1pbkludERpZzsKKyAgICAgICAgICAgIGludCBkaWdpdEluZGV4ID0gMDsgLy8gSW5kZXggaW50byBkaWdpdExpc3QuZkRpZ2l0c1tdCisgICAgICAgICAgICBpZiAoZGlnaXRMaXN0LmRlY2ltYWxBdCA+IDAgJiYgY291bnQgPCBkaWdpdExpc3QuZGVjaW1hbEF0KQorICAgICAgICAgICAgICAgIGNvdW50ID0gZGlnaXRMaXN0LmRlY2ltYWxBdDsKKworICAgICAgICAgICAgLy8gSGFuZGxlIHRoZSBjYXNlIHdoZXJlIGdldE1heGltdW1JbnRlZ2VyRGlnaXRzKCkgaXMgc21hbGxlcgorICAgICAgICAgICAgLy8gdGhhbiB0aGUgcmVhbCBudW1iZXIgb2YgaW50ZWdlciBkaWdpdHMuICBJZiB0aGlzIGlzIHNvLCB3ZQorICAgICAgICAgICAgLy8gb3V0cHV0IHRoZSBsZWFzdCBzaWduaWZpY2FudCBtYXggaW50ZWdlciBkaWdpdHMuICBGb3IgZXhhbXBsZSwKKyAgICAgICAgICAgIC8vIHRoZSB2YWx1ZSAxOTk3IHByaW50ZWQgd2l0aCAyIG1heCBpbnRlZ2VyIGRpZ2l0cyBpcyBqdXN0ICI5NyIuCisKKyAgICAgICAgICAgIGlmIChjb3VudCA+IG1heEludERpZykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjb3VudCA9IG1heEludERpZzsKKyAgICAgICAgICAgICAgICBkaWdpdEluZGV4ID0gZGlnaXRMaXN0LmRlY2ltYWxBdCAtIGNvdW50OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbnQgc2l6ZUJlZm9yZUludGVnZXJQYXJ0ID0gcmVzdWx0Lmxlbmd0aCgpOworICAgICAgICAgICAgZm9yIChpPWNvdW50LTE7IGk+PTA7IC0taSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAoaSA8IGRpZ2l0TGlzdC5kZWNpbWFsQXQgJiYgZGlnaXRJbmRleCA8IGRpZ2l0TGlzdC5jb3VudCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIC8vIE91dHB1dCBhIHJlYWwgZGlnaXQKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgoY2hhcikoZGlnaXRMaXN0LmRpZ2l0c1tkaWdpdEluZGV4KytdICsgemVyb0RlbHRhKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIC8vIE91dHB1dCBhIGxlYWRpbmcgemVybworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHplcm8pOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIE91dHB1dCBncm91cGluZyBzZXBhcmF0b3IgaWYgbmVjZXNzYXJ5LgorICAgICAgICAgICAgICAgIGlmIChpc0dyb3VwaW5nUG9zaXRpb24oaSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChncm91cGluZyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBSZWNvcmQgZmllbGQgaW5mb3JtYXRpb24gZm9yIGNhbGxlci4KKyAgICAgICAgICAgIC8vRlA6aWYgKGZpZWxkUG9zaXRpb24uZ2V0RmllbGQoKSA9PSBOdW1iZXJGb3JtYXQuSU5URUdFUl9GSUVMRCkKKyAgICAgICAgICAgIC8vRlA6ZmllbGRQb3NpdGlvbi5zZXRFbmRJbmRleChyZXN1bHQubGVuZ3RoKCkpOworCisgICAgICAgICAgICAvLyBEZXRlcm1pbmUgd2hldGhlciBvciBub3QgdGhlcmUgYXJlIGFueSBwcmludGFibGUgZnJhY3Rpb25hbAorICAgICAgICAgICAgLy8gZGlnaXRzLiAgSWYgd2UndmUgdXNlZCB1cCB0aGUgZGlnaXRzIHdlIGtub3cgdGhlcmUgYXJlbid0LgorICAgICAgICAgICAgYm9vbGVhbiBmcmFjdGlvblByZXNlbnQgPSAoZ2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKCkgPiAwKSB8fAorICAgICAgICAgICAgKCFpc0ludGVnZXIgJiYgZGlnaXRJbmRleCA8IGRpZ2l0TGlzdC5jb3VudCk7CisKKyAgICAgICAgICAgIC8vIElmIHRoZXJlIGlzIG5vIGZyYWN0aW9uIHByZXNlbnQsIGFuZCB3ZSBoYXZlbid0IHByaW50ZWQgYW55CisgICAgICAgICAgICAvLyBpbnRlZ2VyIGRpZ2l0cywgdGhlbiBwcmludCBhIHplcm8uICBPdGhlcndpc2Ugd2Ugd29uJ3QgcHJpbnQKKyAgICAgICAgICAgIC8vIF9hbnlfIGRpZ2l0cywgYW5kIHdlIHdvbid0IGJlIGFibGUgdG8gcGFyc2UgdGhpcyBzdHJpbmcuCisgICAgICAgICAgICBpZiAoIWZyYWN0aW9uUHJlc2VudCAmJiByZXN1bHQubGVuZ3RoKCkgPT0gc2l6ZUJlZm9yZUludGVnZXJQYXJ0KQorICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoemVybyk7CisKKyAgICAgICAgICAgIC8vIE91dHB1dCB0aGUgZGVjaW1hbCBzZXBhcmF0b3IgaWYgd2UgYWx3YXlzIGRvIHNvLgorICAgICAgICAgICAgaWYgKGRlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93biB8fCBmcmFjdGlvblByZXNlbnQpCisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChkZWNpbWFsKTsKKworICAgICAgICAgICAgLy8gUmVjb3JkIGZpZWxkIGluZm9ybWF0aW9uIGZvciBjYWxsZXIuCisgICAgICAgICAgICAvL0ZQOmlmIChmaWVsZFBvc2l0aW9uLmdldEZpZWxkKCkgPT0gTnVtYmVyRm9ybWF0LkZSQUNUSU9OX0ZJRUxEKQorICAgICAgICAgICAgLy9GUDpmaWVsZFBvc2l0aW9uLnNldEJlZ2luSW5kZXgocmVzdWx0Lmxlbmd0aCgpKTsKKworICAgICAgICAgICAgZm9yIChpPTA7IGkgPCBnZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoKTsgKytpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIEhlcmUgaXMgd2hlcmUgd2UgZXNjYXBlIGZyb20gdGhlIGxvb3AuICBXZSBlc2NhcGUgaWYgd2UndmUgb3V0cHV0CisgICAgICAgICAgICAgICAgLy8gdGhlIG1heGltdW0gZnJhY3Rpb24gZGlnaXRzIChzcGVjaWZpZWQgaW4gdGhlIGZvciBleHByZXNzaW9uIGFib3ZlKS4KKyAgICAgICAgICAgICAgICAvLyBXZSBhbHNvIHN0b3Agd2hlbiB3ZSd2ZSBvdXRwdXQgdGhlIG1pbmltdW0gZGlnaXRzIGFuZCBlaXRoZXI6CisgICAgICAgICAgICAgICAgLy8gd2UgaGF2ZSBhbiBpbnRlZ2VyLCBzbyB0aGVyZSBpcyBubyBmcmFjdGlvbmFsIHN0dWZmIHRvIGRpc3BsYXksCisgICAgICAgICAgICAgICAgLy8gb3Igd2UncmUgb3V0IG9mIHNpZ25pZmljYW50IGRpZ2l0cy4KKyAgICAgICAgICAgICAgICBpZiAoaSA+PSBnZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoKSAmJgorICAgICAgICAgICAgICAgICAgICAoaXNJbnRlZ2VyIHx8IGRpZ2l0SW5kZXggPj0gZGlnaXRMaXN0LmNvdW50KSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAvLyBPdXRwdXQgbGVhZGluZyBmcmFjdGlvbmFsIHplcm9zLiAgVGhlc2UgYXJlIHplcm9zIHRoYXQgY29tZSBhZnRlcgorICAgICAgICAgICAgICAgIC8vIHRoZSBkZWNpbWFsIGJ1dCBiZWZvcmUgYW55IHNpZ25pZmljYW50IGRpZ2l0cy4gIFRoZXNlIGFyZSBvbmx5CisgICAgICAgICAgICAgICAgLy8gb3V0cHV0IGlmIGFicyhudW1iZXIgYmVpbmcgZm9ybWF0dGVkKSA8IDEuMC4KKyAgICAgICAgICAgICAgICBpZiAoLTEtaSA+IChkaWdpdExpc3QuZGVjaW1hbEF0LTEpKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCh6ZXJvKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gT3V0cHV0IGEgZGlnaXQsIGlmIHdlIGhhdmUgYW55IHByZWNpc2lvbiBsZWZ0LCBvciBhCisgICAgICAgICAgICAgICAgLy8gemVybyBpZiB3ZSBkb24ndC4gIFdlIGRvbid0IHdhbnQgdG8gb3V0cHV0IG5vaXNlIGRpZ2l0cy4KKyAgICAgICAgICAgICAgICBpZiAoIWlzSW50ZWdlciAmJiBkaWdpdEluZGV4IDwgZGlnaXRMaXN0LmNvdW50KQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgoY2hhcikoZGlnaXRMaXN0LmRpZ2l0c1tkaWdpdEluZGV4KytdICsgemVyb0RlbHRhKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoemVybyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBSZWNvcmQgZmllbGQgaW5mb3JtYXRpb24gZm9yIGNhbGxlci4KKyAgICAgICAgICAgIC8vRlA6aWYgKGZpZWxkUG9zaXRpb24uZ2V0RmllbGQoKSA9PSBOdW1iZXJGb3JtYXQuRlJBQ1RJT05fRklFTEQpCisgICAgICAgICAgICAvL0ZQOmZpZWxkUG9zaXRpb24uc2V0RW5kSW5kZXgocmVzdWx0Lmxlbmd0aCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIHJlc3VsdC5hcHBlbmQoaXNOZWdhdGl2ZSA/IG5lZ2F0aXZlU3VmZml4IDogcG9zaXRpdmVTdWZmaXgpOworCisgICAgICAgIC8vIFtORVddCisgICAgICAgIGFkZFBhZGRpbmcocmVzdWx0LCB0cnVlLCBpc05lZ2F0aXZlKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvLyBbTkVXXQorICAgIHByaXZhdGUgZmluYWwgdm9pZCBhZGRQYWRkaW5nKFN0cmluZ0J1ZmZlciByZXN1bHQsIGJvb2xlYW4gaGFzQWZmaXhlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGlzTmVnYXRpdmUpIHsKKyAgICAgICAgaWYgKGZvcm1hdFdpZHRoID4gMCkgeworICAgICAgICAgICAgaW50IGxlbiA9IGZvcm1hdFdpZHRoIC0gcmVzdWx0Lmxlbmd0aCgpOworICAgICAgICAgICAgaWYgKGxlbiA+IDApIHsKKyAgICAgICAgICAgICAgICBjaGFyW10gcGFkZGluZyA9IG5ldyBjaGFyW2xlbl07CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPGxlbjsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIHBhZGRpbmdbaV0gPSBwYWQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHN3aXRjaCAocGFkUG9zaXRpb24pIHsKKyAgICAgICAgICAgICAgICBjYXNlIFBBRF9BRlRFUl9QUkVGSVg6CisgICAgICAgICAgICAgICAgICAgIGlmIChoYXNBZmZpeGVzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuaW5zZXJ0KGlzTmVnYXRpdmUgPyBuZWdhdGl2ZVByZWZpeC5sZW5ndGgoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHBvc2l0aXZlUHJlZml4Lmxlbmd0aCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9IC8vIGVsc2UgZmFsbCB0aHJvdWdoIHRvIG5leHQgY2FzZQorICAgICAgICAgICAgICAgIGNhc2UgUEFEX0JFRk9SRV9QUkVGSVg6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5pbnNlcnQoMCwgcGFkZGluZyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgUEFEX0JFRk9SRV9TVUZGSVg6CisgICAgICAgICAgICAgICAgICAgIGlmIChoYXNBZmZpeGVzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuaW5zZXJ0KHJlc3VsdC5sZW5ndGgoKSAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpc05lZ2F0aXZlID8gbmVnYXRpdmVTdWZmaXgubGVuZ3RoKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogcG9zaXRpdmVTdWZmaXgubGVuZ3RoKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9IC8vIGVsc2UgZmFsbCB0aHJvdWdoIHRvIG5leHQgY2FzZQorICAgICAgICAgICAgICAgIGNhc2UgUEFEX0FGVEVSX1NVRkZJWDoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChwYWRkaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+Q0hBTkdFRDwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBQYXJzZSB0aGUgZ2l2ZW4gc3RyaW5nLCByZXR1cm5pbmcgYSA8Y29kZT5OdW1iZXI8L2NvZGU+IG9iamVjdCB0bworICAgICAqIHJlcHJlc2VudCB0aGUgcGFyc2VkIHZhbHVlLiAgPGNvZGU+RG91YmxlPC9jb2RlPiBvYmplY3RzIGFyZSByZXR1cm5lZCB0bworICAgICAqIHJlcHJlc2VudCBub24taW50ZWdyYWwgdmFsdWVzIHdoaWNoIGNhbm5vdCBiZSBzdG9yZWQgaW4gYQorICAgICAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LiAgVGhlc2UgYXJlIDxjb2RlPk5hTjwvY29kZT4sIGluZmluaXR5LAorICAgICAqIC1pbmZpbml0eSwgYW5kIC0wLjAuICBBbGwgb3RoZXIgdmFsdWVzIGFyZSByZXR1cm5lZCBhcyA8Y29kZT5Mb25nPC9jb2RlPiwKKyAgICAgKiA8Y29kZT5CaWdJbnRlZ2VyPC9jb2RlPiwgb3IgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gdmFsdWVzLCBpbiB0aGF0IG9yZGVyCisgICAgICogb2YgcHJlZmVyZW5jZS4gIElmIHRoZSBwYXJzZSBmYWlscywgbnVsbCBpcyByZXR1cm5lZC4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgc3RyaW5nIHRvIGJlIHBhcnNlZAorICAgICAqIEBwYXJhbSBwYXJzZVBvc2l0aW9uIGRlZmluZXMgdGhlIHBvc2l0aW9uIHdoZXJlIHBhcnNpbmcgaXMgdG8gYmVnaW4sCisgICAgICogYW5kIHVwb24gcmV0dXJuLCB0aGUgcG9zaXRpb24gd2hlcmUgcGFyc2luZyBsZWZ0IG9mZi4gIElmIHRoZSBwb3NpdGlvbgorICAgICAqIGhhcyBub3QgY2hhbmdlZCB1cG9uIHJldHVybiwgdGhlbiBwYXJzaW5nIGZhaWxlZC4KKyAgICAgKiBAcmV0dXJuIGEgPGNvZGU+TnVtYmVyPC9jb2RlPiBvYmplY3Qgd2l0aCB0aGUgcGFyc2VkIHZhbHVlIG9yCisgICAgICogPGNvZGU+bnVsbDwvY29kZT4gaWYgdGhlIHBhcnNlIGZhaWxlZAorICAgICAqLworICAgIHB1YmxpYyBOdW1iZXIgcGFyc2UoU3RyaW5nIHRleHQsIFBhcnNlUG9zaXRpb24gcGFyc2VQb3NpdGlvbikKKyAgICB7CisgICAgICAgIC8vIFNraXAgcGFkZGluZyBjaGFyYWN0ZXJzLCBpZiBhbnkKKyAgICAgICAgaW50IGJhY2t1cDsKKyAgICAgICAgaW50IGkgPSBiYWNrdXAgPSBwYXJzZVBvc2l0aW9uLmdldEluZGV4KCk7CisgICAgICAgIGlmIChmb3JtYXRXaWR0aCA+IDApIHsKKyAgICAgICAgICAgIHdoaWxlIChpIDwgdGV4dC5sZW5ndGgoKSAmJiB0ZXh0LmNoYXJBdChpKSA9PSBwYWQpIHsKKyAgICAgICAgICAgICAgICArK2k7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEluZGV4KGkpOworICAgICAgICB9CisKKyAgICAgICAgLy8gSGFuZGxlIE5hTiBhcyBhIHNwZWNpYWwgY2FzZQorICAgICAgICBpZiAodGV4dC5yZWdpb25NYXRjaGVzKHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSwgc3ltYm9scy5nZXROYU4oKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCBzeW1ib2xzLmdldE5hTigpLmxlbmd0aCgpKSkgeworICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRJbmRleChwYXJzZVBvc2l0aW9uLmdldEluZGV4KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBzeW1ib2xzLmdldE5hTigpLmxlbmd0aCgpKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgRG91YmxlKERvdWJsZS5OYU4pOworICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbltdIHN0YXR1cyA9IG5ldyBib29sZWFuW1NUQVRVU19MRU5HVEhdOworICAgICAgICBpZiAoIXN1YnBhcnNlKHRleHQsIHBhcnNlUG9zaXRpb24sIGRpZ2l0TGlzdCwgZmFsc2UsIHN0YXR1cykpIHsKKyAgICAgICAgICAgIHBhcnNlUG9zaXRpb24uc2V0SW5kZXgoYmFja3VwKTsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdFdpZHRoIDwgMCkgeworICAgICAgICAgICAgaSA9IHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgIHdoaWxlIChpIDwgdGV4dC5sZW5ndGgoKSAmJiB0ZXh0LmNoYXJBdChpKSA9PSBwYWQpIHsKKyAgICAgICAgICAgICAgICArK2k7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEluZGV4KGkpOworICAgICAgICB9CisKKyAgICAgICAgLy8gSGFuZGxlIGluZmluaXR5CisgICAgICAgIGlmIChzdGF0dXNbU1RBVFVTX0lORklOSVRFXSkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBEb3VibGUoc3RhdHVzW1NUQVRVU19QT1NJVElWRV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gRG91YmxlLlBPU0lUSVZFX0lORklOSVRZCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IERvdWJsZS5ORUdBVElWRV9JTkZJTklUWSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBIYW5kbGUgLTAuMAorICAgICAgICBpZiAoIXN0YXR1c1tTVEFUVVNfUE9TSVRJVkVdICYmIGRpZ2l0TGlzdC5pc1plcm8oKSkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBEb3VibGUoLTAuMCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBEbyBhcyBtdWNoIG9mIHRoZSBtdWx0aXBsaWVyIGNvbnZlcnNpb24gYXMgcG9zc2libGUgd2l0aG91dAorICAgICAgICAvLyBsb3NpbmcgYWNjdXJhY3kuCisgICAgICAgIGludCBtdWx0ID0gbXVsdGlwbGllcjsgLy8gRG9uJ3QgbW9kaWZ5IHRoaXMubXVsdGlwbGllcgorICAgICAgICB3aGlsZSAobXVsdCAlIDEwID09IDApIHsKKyAgICAgICAgICAgIC0tZGlnaXRMaXN0LmRlY2ltYWxBdDsKKyAgICAgICAgICAgIG11bHQgLz0gMTA7CisgICAgICAgIH0KKworICAgICAgICAvLyBIYW5kbGUgaW50ZWdyYWwgdmFsdWVzCisgICAgICAgIGlmIChtdWx0ID09IDEgJiYgZGlnaXRMaXN0LmlzSW50ZWdyYWwoKSkgeworICAgICAgICAgICAgQmlnSW50ZWdlciBuID0gZGlnaXRMaXN0LmdldEJpZ0ludGVnZXIoc3RhdHVzW1NUQVRVU19QT1NJVElWRV0pOworICAgICAgICAgICAgcmV0dXJuIChuLmJpdExlbmd0aCgpIDwgNjQpCisgICAgICAgICAgICAgICAgPyAoTnVtYmVyKSBuZXcgTG9uZyhuLmxvbmdWYWx1ZSgpKSAKKyAgICAgICAgICAgICAgICA6IChOdW1iZXIpIG47CisgICAgICAgIH0KKworICAgICAgICAvLyBIYW5kbGUgbm9uLWludGVncmFsIHZhbHVlcworICAgICAgICBqYXZhLm1hdGguQmlnRGVjaW1hbCBuID0gZGlnaXRMaXN0LmdldEJpZ0RlY2ltYWwoc3RhdHVzW1NUQVRVU19QT1NJVElWRV0pOworICAgICAgICBpZiAobXVsdCAhPSAxKSB7CisgICAgICAgICAgICBuID0gbi5kaXZpZGUoamF2YS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihtdWx0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLm1hdGguQmlnRGVjaW1hbC5ST1VORF9IQUxGX0VWRU4pOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTVEFUVVNfSU5GSU5JVEUgPSAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTVEFUVVNfUE9TSVRJVkUgPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTVEFUVVNfTEVOR1RIICAgPSAyOworCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+Q0hBTkdFRDwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBQYXJzZSB0aGUgZ2l2ZW4gdGV4dCBpbnRvIGEgbnVtYmVyLiAgVGhlIHRleHQgaXMgcGFyc2VkIGJlZ2lubmluZyBhdAorICAgICAqIHBhcnNlUG9zaXRpb24sIHVudGlsIGFuIHVucGFyc2VhYmxlIGNoYXJhY3RlciBpcyBzZWVuLgorICAgICAqIEBwYXJhbSB0ZXh0IFRoZSBzdHJpbmcgdG8gcGFyc2UuCisgICAgICogQHBhcmFtIHBhcnNlUG9zaXRpb24gVGhlIHBvc2l0aW9uIGF0IHdoaWNoIHRvIGJlaW5nIHBhcnNpbmcuICBVcG9uCisgICAgICogcmV0dXJuLCB0aGUgZmlyc3QgdW5wYXJzZWFibGUgY2hhcmFjdGVyLgorICAgICAqIEBwYXJhbSBkaWdpdHMgVGhlIERpZ2l0TGlzdCB0byBzZXQgdG8gdGhlIHBhcnNlZCB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gaXNFeHBvbmVudCBJZiB0cnVlLCBwYXJzZSBhbiBleHBvbmVudC4gIFRoaXMgbWVhbnMgbm8KKyAgICAgKiBpbmZpbml0ZSB2YWx1ZXMgYW5kIGludGVnZXIgb25seS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIFVwb24gcmV0dXJuIGNvbnRhaW5zIGJvb2xlYW4gc3RhdHVzIGZsYWdzIGluZGljYXRpbmcKKyAgICAgKiB3aGV0aGVyIHRoZSB2YWx1ZSB3YXMgaW5maW5pdGUgYW5kIHdoZXRoZXIgaXQgd2FzIHBvc2l0aXZlLgorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBzdWJwYXJzZShTdHJpbmcgdGV4dCwgUGFyc2VQb3NpdGlvbiBwYXJzZVBvc2l0aW9uLAorICAgICAgICAgICAgICAgICAgIERpZ2l0TGlzdCBkaWdpdHMsIGJvb2xlYW4gaXNFeHBvbmVudCwKKyAgICAgICAgICAgICAgICAgICBib29sZWFuIHN0YXR1c1tdKQorICAgIHsKKyAgICAgICAgaW50IHBvc2l0aW9uID0gcGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpOworICAgICAgICBpbnQgb2xkU3RhcnQgPSBwYXJzZVBvc2l0aW9uLmdldEluZGV4KCk7CisgICAgICAgIGludCBiYWNrdXA7CisKKyAgICAgICAgLy8gY2hlY2sgZm9yIHBvc2l0aXZlUHJlZml4OyB0YWtlIGxvbmdlc3QKKyAgICAgICAgYm9vbGVhbiBnb3RQb3NpdGl2ZSA9IHRleHQucmVnaW9uTWF0Y2hlcyhwb3NpdGlvbixwb3NpdGl2ZVByZWZpeCwwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aXZlUHJlZml4Lmxlbmd0aCgpKTsKKyAgICAgICAgYm9vbGVhbiBnb3ROZWdhdGl2ZSA9IHRleHQucmVnaW9uTWF0Y2hlcyhwb3NpdGlvbixuZWdhdGl2ZVByZWZpeCwwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5lZ2F0aXZlUHJlZml4Lmxlbmd0aCgpKTsKKyAgICAgICAgaWYgKGdvdFBvc2l0aXZlICYmIGdvdE5lZ2F0aXZlKSB7CisgICAgICAgICAgICBpZiAocG9zaXRpdmVQcmVmaXgubGVuZ3RoKCkgPiBuZWdhdGl2ZVByZWZpeC5sZW5ndGgoKSkKKyAgICAgICAgICAgICAgICBnb3ROZWdhdGl2ZSA9IGZhbHNlOworICAgICAgICAgICAgZWxzZSBpZiAocG9zaXRpdmVQcmVmaXgubGVuZ3RoKCkgPCBuZWdhdGl2ZVByZWZpeC5sZW5ndGgoKSkKKyAgICAgICAgICAgICAgICBnb3RQb3NpdGl2ZSA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmIChnb3RQb3NpdGl2ZSkgeworICAgICAgICAgICAgcG9zaXRpb24gKz0gcG9zaXRpdmVQcmVmaXgubGVuZ3RoKCk7CisgICAgICAgIH0gZWxzZSBpZiAoZ290TmVnYXRpdmUpIHsKKyAgICAgICAgICAgIHBvc2l0aW9uICs9IG5lZ2F0aXZlUHJlZml4Lmxlbmd0aCgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy9QUDpwYXJzZVBvc2l0aW9uLmVycm9ySW5kZXggPSBwb3NpdGlvbjsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAvLyBwcm9jZXNzIGRpZ2l0cyBvciBJbmYsIGZpbmQgZGVjaW1hbCBwb3NpdGlvbgorICAgICAgICBzdGF0dXNbU1RBVFVTX0lORklOSVRFXSA9IGZhbHNlOworICAgICAgICBpZiAoIWlzRXhwb25lbnQgJiYgdGV4dC5yZWdpb25NYXRjaGVzKHBvc2l0aW9uLHN5bWJvbHMuZ2V0SW5maW5pdHkoKSwwLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzeW1ib2xzLmdldEluZmluaXR5KCkubGVuZ3RoKCkpKQorICAgICAgICB7CisgICAgICAgICAgICBwb3NpdGlvbiArPSBzeW1ib2xzLmdldEluZmluaXR5KCkubGVuZ3RoKCk7CisgICAgICAgICAgICBzdGF0dXNbU1RBVFVTX0lORklOSVRFXSA9IHRydWU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBXZSBub3cgaGF2ZSBhIHN0cmluZyBvZiBkaWdpdHMsIHBvc3NpYmx5IHdpdGggZ3JvdXBpbmcgc3ltYm9scywKKyAgICAgICAgICAgIC8vIGFuZCBkZWNpbWFsIHBvaW50cy4gIFdlIHdhbnQgdG8gcHJvY2VzcyB0aGVzZSBpbnRvIGEgRGlnaXRMaXN0LgorICAgICAgICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBwdXQgYSBidW5jaCBvZiBsZWFkaW5nIHplcm9zIGludG8gdGhlIERpZ2l0TGlzdAorICAgICAgICAgICAgLy8gdGhvdWdoLCBzbyB3ZSBrZWVwIHRyYWNrIG9mIHRoZSBsb2NhdGlvbiBvZiB0aGUgZGVjaW1hbCBwb2ludCwKKyAgICAgICAgICAgIC8vIHB1dCBvbmx5IHNpZ25pZmljYW50IGRpZ2l0cyBpbnRvIHRoZSBEaWdpdExpc3QsIGFuZCBhZGp1c3QgdGhlCisgICAgICAgICAgICAvLyBleHBvbmVudCBhcyBuZWVkZWQuCisKKyAgICAgICAgICAgIGRpZ2l0cy5kZWNpbWFsQXQgPSBkaWdpdHMuY291bnQgPSAwOworICAgICAgICAgICAgY2hhciB6ZXJvID0gc3ltYm9scy5nZXRaZXJvRGlnaXQoKTsKKyAgICAgICAgICAgIGNoYXIgZGVjaW1hbCA9IGlzQ3VycmVuY3lGb3JtYXQgPworICAgICAgICAgICAgc3ltYm9scy5nZXRNb25ldGFyeURlY2ltYWxTZXBhcmF0b3IoKSA6IHN5bWJvbHMuZ2V0RGVjaW1hbFNlcGFyYXRvcigpOworICAgICAgICAgICAgY2hhciBncm91cGluZyA9IHN5bWJvbHMuZ2V0R3JvdXBpbmdTZXBhcmF0b3IoKTsKKyAgICAgICAgICAgIFN0cmluZyBleHBvbmVudFNlcCA9IHN5bWJvbHMuZ2V0RXhwb25lbnRTZXBhcmF0b3IoKTsKKyAgICAgICAgICAgIGJvb2xlYW4gc2F3RGVjaW1hbCA9IGZhbHNlOworICAgICAgICAgICAgYm9vbGVhbiBzYXdFeHBvbmVudCA9IGZhbHNlOworICAgICAgICAgICAgYm9vbGVhbiBzYXdEaWdpdCA9IGZhbHNlOworICAgICAgICAgICAgaW50IGV4cG9uZW50ID0gMDsgLy8gU2V0IHRvIHRoZSBleHBvbmVudCB2YWx1ZSwgaWYgYW55CisgICAgICAgICAgICBpbnQgZGlnaXQgPSAwOworCisgICAgICAgICAgICAvLyBXZSBoYXZlIHRvIHRyYWNrIGRpZ2l0Q291bnQgb3Vyc2VsdmVzLCBiZWNhdXNlIGRpZ2l0cy5jb3VudCB3aWxsCisgICAgICAgICAgICAvLyBwaW4gd2hlbiB0aGUgbWF4aW11bSBhbGxvd2FibGUgZGlnaXRzIGlzIHJlYWNoZWQuCisgICAgICAgICAgICBpbnQgZGlnaXRDb3VudCA9IDA7CisKKyAgICAgICAgICAgIGJhY2t1cCA9IC0xOworICAgICAgICAgICAgZm9yICg7IHBvc2l0aW9uIDwgdGV4dC5sZW5ndGgoKTsgKytwb3NpdGlvbikKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjaGFyIGNoID0gdGV4dC5jaGFyQXQocG9zaXRpb24pOworCisgICAgICAgICAgICAgICAgLyogV2UgcmVjb2duaXplIGFsbCBkaWdpdCByYW5nZXMsIG5vdCBvbmx5IHRoZSBMYXRpbiBkaWdpdCByYW5nZQorICAgICAgICAgICAgICAgICAqICcwJy4uJzknLiAgV2UgZG8gc28gYnkgdXNpbmcgdGhlIENoYXJhY3Rlci5kaWdpdCgpIG1ldGhvZCwKKyAgICAgICAgICAgICAgICAgKiB3aGljaCBjb252ZXJ0cyBhIHZhbGlkIFVuaWNvZGUgZGlnaXQgdG8gdGhlIHJhbmdlIDAuLjkuCisgICAgICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgICAgKiBUaGUgY2hhcmFjdGVyICdjaCcgbWF5IGJlIGEgZGlnaXQuICBJZiBzbywgcGxhY2UgaXRzIHZhbHVlCisgICAgICAgICAgICAgICAgICogZnJvbSAwIHRvIDkgaW4gJ2RpZ2l0Jy4gIEZpcnN0IHRyeSB1c2luZyB0aGUgbG9jYWxlIGRpZ2l0LAorICAgICAgICAgICAgICAgICAqIHdoaWNoIG1heSBvciBNQVkgTk9UIGJlIGEgc3RhbmRhcmQgVW5pY29kZSBkaWdpdCByYW5nZS4gIElmCisgICAgICAgICAgICAgICAgICogdGhpcyBmYWlscywgdHJ5IHVzaW5nIHRoZSBzdGFuZGFyZCBVbmljb2RlIGRpZ2l0IHJhbmdlcyBieQorICAgICAgICAgICAgICAgICAqIGNhbGxpbmcgQ2hhcmFjdGVyLmRpZ2l0KCkuICBJZiB0aGlzIGFsc28gZmFpbHMsIGRpZ2l0IHdpbGwKKyAgICAgICAgICAgICAgICAgKiBoYXZlIGEgdmFsdWUgb3V0c2lkZSB0aGUgcmFuZ2UgMC4uOS4KKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBkaWdpdCA9IGNoIC0gemVybzsKKyAgICAgICAgICAgICAgICBpZiAoZGlnaXQgPCAwIHx8IGRpZ2l0ID4gOSkgZGlnaXQgPSBDaGFyYWN0ZXIuZGlnaXQoY2gsIDEwKTsKKworICAgICAgICAgICAgICAgIGlmIChkaWdpdCA9PSAwKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gQ2FuY2VsIG91dCBiYWNrdXAgc2V0dGluZyAoc2VlIGdyb3VwaW5nIGhhbmRsZXIgYmVsb3cpCisgICAgICAgICAgICAgICAgICAgIGJhY2t1cCA9IC0xOyAvLyBEbyB0aGlzIEJFRk9SRSBjb250aW51ZSBzdGF0ZW1lbnQgYmVsb3chISEKKyAgICAgICAgICAgICAgICAgICAgc2F3RGlnaXQgPSB0cnVlOworCisgICAgICAgICAgICAgICAgICAgIC8vIEhhbmRsZSBsZWFkaW5nIHplcm9zCisgICAgICAgICAgICAgICAgICAgIGlmIChkaWdpdHMuY291bnQgPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWdub3JlIGxlYWRpbmcgemVyb3MgaW4gaW50ZWdlciBwYXJ0IG9mIG51bWJlci4KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc2F3RGVjaW1hbCkgY29udGludWU7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgc2VlbiB0aGUgZGVjaW1hbCwgYnV0IG5vIHNpZ25pZmljYW50IGRpZ2l0cyB5ZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGVuIHdlIGFjY291bnQgZm9yIGxlYWRpbmcgemVyb3MgYnkgZGVjcmVtZW50aW5nIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGlnaXRzLmRlY2ltYWxBdCBpbnRvIG5lZ2F0aXZlIHZhbHVlcy4KKyAgICAgICAgICAgICAgICAgICAgICAgIC0tZGlnaXRzLmRlY2ltYWxBdDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrZGlnaXRDb3VudDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRpZ2l0cy5hcHBlbmQoKGNoYXIpKGRpZ2l0ICsgJzAnKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoZGlnaXQgPiAwICYmIGRpZ2l0IDw9IDkpIC8vIFtzaWNdIGRpZ2l0PT0wIGhhbmRsZWQgYWJvdmUKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHNhd0RpZ2l0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgKytkaWdpdENvdW50OworICAgICAgICAgICAgICAgICAgICBkaWdpdHMuYXBwZW5kKChjaGFyKShkaWdpdCArICcwJykpOworCisgICAgICAgICAgICAgICAgICAgIC8vIENhbmNlbCBvdXQgYmFja3VwIHNldHRpbmcgKHNlZSBncm91cGluZyBoYW5kbGVyIGJlbG93KQorICAgICAgICAgICAgICAgICAgICBiYWNrdXAgPSAtMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoIWlzRXhwb25lbnQgJiYgY2ggPT0gZGVjaW1hbCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIC8vIElmIHdlJ3JlIG9ubHkgcGFyc2luZyBpbnRlZ2Vycywgb3IgaWYgd2UgQUxSRUFEWSBzYXcgdGhlCisgICAgICAgICAgICAgICAgICAgIC8vIGRlY2ltYWwsIHRoZW4gZG9uJ3QgcGFyc2UgdGhpcyBvbmUuCisgICAgICAgICAgICAgICAgICAgIGlmIChpc1BhcnNlSW50ZWdlck9ubHkoKSB8fCBzYXdEZWNpbWFsKSBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgZGlnaXRzLmRlY2ltYWxBdCA9IGRpZ2l0Q291bnQ7IC8vIE5vdCBkaWdpdHMuY291bnQhCisgICAgICAgICAgICAgICAgICAgIHNhd0RlY2ltYWwgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmICghaXNFeHBvbmVudCAmJiBjaCA9PSBncm91cGluZyAmJiBpc0dyb3VwaW5nVXNlZCgpKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNhd0RlY2ltYWwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vIElnbm9yZSBncm91cGluZyBjaGFyYWN0ZXJzLCBpZiB3ZSBhcmUgdXNpbmcgdGhlbSwgYnV0IHJlcXVpcmUKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhhdCB0aGV5IGJlIGZvbGxvd2VkIGJ5IGEgZGlnaXQuICBPdGhlcndpc2Ugd2UgYmFja3VwIGFuZAorICAgICAgICAgICAgICAgICAgICAvLyByZXByb2Nlc3MgdGhlbS4KKyAgICAgICAgICAgICAgICAgICAgYmFja3VwID0gcG9zaXRpb247CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKCFpc0V4cG9uZW50ICYmICFzYXdFeHBvbmVudCAmJgorICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQucmVnaW9uTWF0Y2hlcyhwb3NpdGlvbiwgZXhwb25lbnRTZXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIGV4cG9uZW50U2VwLmxlbmd0aCgpKSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIC8vIFBhcnNlIHNpZ24sIGlmIHByZXNlbnQKKyAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBuZWdFeHAgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgaW50IHBvcyA9IHBvc2l0aW9uICsgZXhwb25lbnRTZXAubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChwb3MgPCB0ZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjaCA9IHRleHQuY2hhckF0KHBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPT0gc3ltYm9scy5nZXRQbHVzU2lnbigpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytwb3M7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09IHN5bWJvbHMuZ2V0TWludXNTaWduKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3BvczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZWdFeHAgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgRGlnaXRMaXN0IGV4cG9uZW50RGlnaXRzID0gbmV3IERpZ2l0TGlzdCgpOworICAgICAgICAgICAgICAgICAgICBleHBvbmVudERpZ2l0cy5jb3VudCA9IDA7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChwb3MgPCB0ZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkaWdpdCA9IHRleHQuY2hhckF0KHBvcykgLSB6ZXJvOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRpZ2l0IDwgMCB8fCBkaWdpdCA+IDkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FuJ3QgcGFyc2UgIlsxRTBdIiB3aGVuIHBhdHRlcm4gaXMgIjAuIyMjRTA7WzAuIyMjRTBdIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2hvdWxkIHVwZGF0ZSByZWFzc2lnbiB0aGUgdmFsdWUgb2YgJ2NoJyBpbiB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6ICBkaWdpdCA9IENoYXJhY3Rlci5kaWdpdChjaCwgMTApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1JpY2hhcmQvR0NMXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlnaXQgPSBDaGFyYWN0ZXIuZGlnaXQodGV4dC5jaGFyQXQocG9zKSwgMTApOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRpZ2l0ID49IDAgJiYgZGlnaXQgPD0gOSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9uZW50RGlnaXRzLmFwcGVuZCgoY2hhcikoZGlnaXQgKyAnMCcpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3BvczsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmIChleHBvbmVudERpZ2l0cy5jb3VudCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9uZW50RGlnaXRzLmRlY2ltYWxBdCA9IGV4cG9uZW50RGlnaXRzLmNvdW50OworICAgICAgICAgICAgICAgICAgICAgICAgZXhwb25lbnQgPSAoaW50KSBleHBvbmVudERpZ2l0cy5nZXRMb25nKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmVnRXhwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwb25lbnQgPSAtZXhwb25lbnQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbiA9IHBvczsgLy8gQWR2YW5jZSBwYXN0IHRoZSBleHBvbmVudAorICAgICAgICAgICAgICAgICAgICAgICAgc2F3RXhwb25lbnQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7IC8vIFdoZXRoZXIgd2UgZmFpbCBvciBzdWNjZWVkLCB3ZSBleGl0IHRoaXMgbG9vcAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoYmFja3VwICE9IC0xKSBwb3NpdGlvbiA9IGJhY2t1cDsKKworICAgICAgICAgICAgLy8gSWYgdGhlcmUgd2FzIG5vIGRlY2ltYWwgcG9pbnQgd2UgaGF2ZSBhbiBpbnRlZ2VyCisgICAgICAgICAgICBpZiAoIXNhd0RlY2ltYWwpIGRpZ2l0cy5kZWNpbWFsQXQgPSBkaWdpdENvdW50OyAvLyBOb3QgZGlnaXRzLmNvdW50IQorCisgICAgICAgICAgICAvLyBBZGp1c3QgZm9yIGV4cG9uZW50LCBpZiBhbnkKKyAgICAgICAgICAgIGRpZ2l0cy5kZWNpbWFsQXQgKz0gZXhwb25lbnQ7CisKKyAgICAgICAgICAgIC8vIElmIG5vbmUgb2YgdGhlIHRleHQgc3RyaW5nIHdhcyByZWNvZ25pemVkLiAgRm9yIGV4YW1wbGUsIHBhcnNlCisgICAgICAgICAgICAvLyAieCIgd2l0aCBwYXR0ZXJuICIjMC4wMCIgKHJldHVybiBpbmRleCBhbmQgZXJyb3IgaW5kZXggYm90aCAwKQorICAgICAgICAgICAgLy8gcGFyc2UgIiQiIHdpdGggcGF0dGVybiAiJCMwLjAwIi4gKHJldHVybiBpbmRleCAwIGFuZCBlcnJvciBpbmRleAorICAgICAgICAgICAgLy8gMSkuCisgICAgICAgICAgICBpZiAoIXNhd0RpZ2l0ICYmIGRpZ2l0Q291bnQgPT0gMCkgeworICAgICAgICAgICAgICAgIHBhcnNlUG9zaXRpb24uc2V0SW5kZXgob2xkU3RhcnQpOworICAgICAgICAgICAgICAgIC8vUFA6cGFyc2VQb3NpdGlvbi5lcnJvckluZGV4ID0gb2xkU3RhcnQ7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gY2hlY2sgZm9yIHBvc2l0aXZlU3VmZml4CisgICAgICAgIGlmIChnb3RQb3NpdGl2ZSkKKyAgICAgICAgICAgIGdvdFBvc2l0aXZlID0gdGV4dC5yZWdpb25NYXRjaGVzKHBvc2l0aW9uLHBvc2l0aXZlU3VmZml4LDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGl2ZVN1ZmZpeC5sZW5ndGgoKSk7CisgICAgICAgIGlmIChnb3ROZWdhdGl2ZSkKKyAgICAgICAgICAgIGdvdE5lZ2F0aXZlID0gdGV4dC5yZWdpb25NYXRjaGVzKHBvc2l0aW9uLG5lZ2F0aXZlU3VmZml4LDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZWdhdGl2ZVN1ZmZpeC5sZW5ndGgoKSk7CisKKyAgICAgICAgLy8gaWYgYm90aCBtYXRjaCwgdGFrZSBsb25nZXN0CisgICAgICAgIGlmIChnb3RQb3NpdGl2ZSAmJiBnb3ROZWdhdGl2ZSkgeworICAgICAgICAgICAgaWYgKHBvc2l0aXZlU3VmZml4Lmxlbmd0aCgpID4gbmVnYXRpdmVTdWZmaXgubGVuZ3RoKCkpCisgICAgICAgICAgICAgICAgZ290TmVnYXRpdmUgPSBmYWxzZTsKKyAgICAgICAgICAgIGVsc2UgaWYgKHBvc2l0aXZlU3VmZml4Lmxlbmd0aCgpIDwgbmVnYXRpdmVTdWZmaXgubGVuZ3RoKCkpCisgICAgICAgICAgICAgICAgZ290UG9zaXRpdmUgPSBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGZhaWwgaWYgbmVpdGhlciBvciBib3RoCisgICAgICAgIGlmIChnb3RQb3NpdGl2ZSA9PSBnb3ROZWdhdGl2ZSkgeworICAgICAgICAgICAgLy9QUDpwYXJzZVBvc2l0aW9uLmVycm9ySW5kZXggPSBwb3NpdGlvbjsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHBhcnNlUG9zaXRpb24uc2V0SW5kZXgocG9zaXRpb24gKworICAgICAgICAgICAgKGdvdFBvc2l0aXZlID8gcG9zaXRpdmVTdWZmaXgubGVuZ3RoKCkgOiBuZWdhdGl2ZVN1ZmZpeC5sZW5ndGgoKSkpOyAvLyBtYXJrIHN1Y2Nlc3MhCisKKyAgICAgICAgc3RhdHVzW1NUQVRVU19QT1NJVElWRV0gPSBnb3RQb3NpdGl2ZTsKKyAgICAgICAgaWYgKHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSA9PSBvbGRTdGFydCkgeworICAgICAgICAgICAgLy9QUDpwYXJzZVBvc2l0aW9uLmVycm9ySW5kZXggPSBwb3NpdGlvbjsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBkZWNpbWFsIGZvcm1hdCBzeW1ib2xzLCB3aGljaCBpcyBnZW5lcmFsbHkgbm90IGNoYW5nZWQKKyAgICAgKiBieSB0aGUgcHJvZ3JhbW1lciBvciB1c2VyLgorICAgICAqIEByZXR1cm4gZGVzaXJlZCBEZWNpbWFsRm9ybWF0U3ltYm9scworICAgICAqIEBzZWUgRGVjaW1hbEZvcm1hdFN5bWJvbHMKKyAgICAgKi8KKyAgICBwdWJsaWMgRGVjaW1hbEZvcm1hdFN5bWJvbHMgZ2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAvLyBkb24ndCBhbGxvdyBtdWx0aXBsZSByZWZlcmVuY2VzCisgICAgICAgICAgICByZXR1cm4gKERlY2ltYWxGb3JtYXRTeW1ib2xzKSBzeW1ib2xzLmNsb25lKCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBmb28pIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOyAvLyBzaG91bGQgbmV2ZXIgaGFwcGVuCisgICAgICAgIH0KKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGRlY2ltYWwgZm9ybWF0IHN5bWJvbHMsIHdoaWNoIGlzIGdlbmVyYWxseSBub3QgY2hhbmdlZAorICAgICAqIGJ5IHRoZSBwcm9ncmFtbWVyIG9yIHVzZXIuCisgICAgICogQHBhcmFtIG5ld1N5bWJvbHMgZGVzaXJlZCBEZWNpbWFsRm9ybWF0U3ltYm9scworICAgICAqIEBzZWUgRGVjaW1hbEZvcm1hdFN5bWJvbHMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXREZWNpbWFsRm9ybWF0U3ltYm9scyhEZWNpbWFsRm9ybWF0U3ltYm9scyBuZXdTeW1ib2xzKSB7CisgICAgICAgIHN5bWJvbHMgPSAoRGVjaW1hbEZvcm1hdFN5bWJvbHMpIG5ld1N5bWJvbHMuY2xvbmUoKTsKKyAgICAgICAgc2V0Q3VycmVuY3lGb3JTeW1ib2xzKCk7CisgICAgICAgIGV4cGFuZEFmZml4ZXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVcGRhdGUgdGhlIGN1cnJlbmN5IG9iamVjdCB0byBtYXRjaCB0aGUgc3ltYm9scy4gIFRoaXMgbWV0aG9kCisgICAgICogaXMgdXNlZCBvbmx5IHdoZW4gdGhlIGNhbGxlciBoYXMgcGFzc2VkIGluIGEgc3ltYm9scyBvYmplY3QKKyAgICAgKiB0aGF0IG1heSBub3QgYmUgdGhlIGRlZmF1bHQgb2JqZWN0IGZvciBpdHMgbG9jYWxlLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBzZXRDdXJyZW5jeUZvclN5bWJvbHMoKSB7CisgICAgICAgIC8qQnVnIDQyMTIwNzIKKyAgICAgICAgICBVcGRhdGUgdGhlIGFmZml4IHN0cmluZ3MgYWNjcm9kaW5nIHRvIHN5bWJvbHMgaW4gb3JkZXIgdG8ga2VlcAorICAgICAgICAgIHRoZSBhZmZpeCBzdHJpbmdzIHVwIHRvIGRhdGUuCisgICAgICAgICAgW1JpY2hhcmQvR0NMXQorICAgICAgICAqLworICAgICAgICAKKyAgICAgICAgLy8gV2l0aCB0aGUgaW50cm9kdWN0aW9uIG9mIHRoZSBDdXJyZW5jeSBvYmplY3QsIHRoZSBjdXJyZW5jeQorICAgICAgICAvLyBzeW1ib2xzIGluIHRoZSBERlMgb2JqZWN0IGFyZSBpZ25vcmVkLiAgRm9yIGJhY2t3YXJkCisgICAgICAgIC8vIGNvbXBhdGliaWxpdHksIHdlIGNoZWNrIGFueSBleHBsaWNpdGx5IHNldCBERlMgb2JqZWN0LiAgSWYgaXQKKyAgICAgICAgLy8gaXMgYSBkZWZhdWx0IHN5bWJvbHMgb2JqZWN0IGZvciBpdHMgbG9jYWxlLCB3ZSBjaGFuZ2UgdGhlCisgICAgICAgIC8vIGN1cnJlbmN5IG9iamVjdCB0byBvbmUgZm9yIHRoYXQgbG9jYWxlLiAgSWYgaXQgaXMgY3VzdG9tLAorICAgICAgICAvLyB3ZSBzZXQgdGhlIGN1cnJlbmN5IHRvIG51bGwuCisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIGRlZiA9CisgICAgICAgICAgICBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoc3ltYm9scy5nZXRMb2NhbGUoKSk7CisgICAgICAgIAorICAgICAgICBpZiAoc3ltYm9scy5nZXRDdXJyZW5jeVN5bWJvbCgpLmVxdWFscygKKyAgICAgICAgICAgICAgICBkZWYuZ2V0Q3VycmVuY3lTeW1ib2woKSkgJiYKKyAgICAgICAgICAgIHN5bWJvbHMuZ2V0SW50ZXJuYXRpb25hbEN1cnJlbmN5U3ltYm9sKCkuZXF1YWxzKAorICAgICAgICAgICAgICAgIGRlZi5nZXRJbnRlcm5hdGlvbmFsQ3VycmVuY3lTeW1ib2woKSkpIHsKKyAgICAgICAgICAgIGN1cnJlbmN5ID0gQ3VycmVuY3kuZ2V0SW5zdGFuY2Uoc3ltYm9scy5nZXRMb2NhbGUoKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBjdXJyZW5jeSA9IG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIHBvc2l0aXZlIHByZWZpeC4KKyAgICAgKiA8UD5FeGFtcGxlczogKzEyMywgJDEyMywgc0ZyMTIzCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRQb3NpdGl2ZVByZWZpeCAoKSB7CisgICAgICAgIHJldHVybiBwb3NpdGl2ZVByZWZpeDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHBvc2l0aXZlIHByZWZpeC4KKyAgICAgKiA8UD5FeGFtcGxlczogKzEyMywgJDEyMywgc0ZyMTIzCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UG9zaXRpdmVQcmVmaXggKFN0cmluZyBuZXdWYWx1ZSkgeworICAgICAgICBwb3NpdGl2ZVByZWZpeCA9IG5ld1ZhbHVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgbmVnYXRpdmUgcHJlZml4LgorICAgICAqIDxQPkV4YW1wbGVzOiAtMTIzLCAoJDEyMykgKHdpdGggbmVnYXRpdmUgc3VmZml4KSwgc0ZyLTEyMworICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmVnYXRpdmVQcmVmaXggKCkgeworICAgICAgICByZXR1cm4gbmVnYXRpdmVQcmVmaXg7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBuZWdhdGl2ZSBwcmVmaXguCisgICAgICogPFA+RXhhbXBsZXM6IC0xMjMsICgkMTIzKSAod2l0aCBuZWdhdGl2ZSBzdWZmaXgpLCBzRnItMTIzCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TmVnYXRpdmVQcmVmaXggKFN0cmluZyBuZXdWYWx1ZSkgeworICAgICAgICBuZWdhdGl2ZVByZWZpeCA9IG5ld1ZhbHVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgcG9zaXRpdmUgc3VmZml4LgorICAgICAqIDxQPkV4YW1wbGU6IDEyMyUKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFBvc2l0aXZlU3VmZml4ICgpIHsKKyAgICAgICAgcmV0dXJuIHBvc2l0aXZlU3VmZml4OworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgcG9zaXRpdmUgc3VmZml4LgorICAgICAqIDxQPkV4YW1wbGU6IDEyMyUKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRQb3NpdGl2ZVN1ZmZpeCAoU3RyaW5nIG5ld1ZhbHVlKSB7CisgICAgICAgIHBvc2l0aXZlU3VmZml4ID0gbmV3VmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBuZWdhdGl2ZSBzdWZmaXguCisgICAgICogPFA+RXhhbXBsZXM6IC0xMjMlLCAoJDEyMykgKHdpdGggcG9zaXRpdmUgc3VmZml4ZXMpCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXROZWdhdGl2ZVN1ZmZpeCAoKSB7CisgICAgICAgIHJldHVybiBuZWdhdGl2ZVN1ZmZpeDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHBvc2l0aXZlIHN1ZmZpeC4KKyAgICAgKiA8UD5FeGFtcGxlczogMTIzJQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE5lZ2F0aXZlU3VmZml4IChTdHJpbmcgbmV3VmFsdWUpIHsKKyAgICAgICAgbmVnYXRpdmVTdWZmaXggPSBuZXdWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIG11bHRpcGxpZXIgZm9yIHVzZSBpbiBwZXJjZW50LCBwZXJtaWxsLCBldGMuCisgICAgICogRm9yIGEgcGVyY2VudGFnZSwgc2V0IHRoZSBzdWZmaXhlcyB0byBoYXZlICIlIiBhbmQgdGhlIG11bHRpcGxpZXIgdG8gYmUgMTAwLgorICAgICAqIChGb3IgQXJhYmljLCB1c2UgYXJhYmljIHBlcmNlbnQgc3ltYm9sKS4KKyAgICAgKiBGb3IgYSBwZXJtaWxsLCBzZXQgdGhlIHN1ZmZpeGVzIHRvIGhhdmUgIlx1MjAzMSIgYW5kIHRoZSBtdWx0aXBsaWVyIHRvIGJlIDEwMDAuCisgICAgICogPFA+RXhhbXBsZXM6IHdpdGggMTAwLCAxLjIzIC0+ICIxMjMiLCBhbmQgIjEyMyIgLT4gMS4yMworICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TXVsdGlwbGllciAoKSB7CisgICAgICAgIHJldHVybiBtdWx0aXBsaWVyOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgbXVsdGlwbGllciBmb3IgdXNlIGluIHBlcmNlbnQsIHBlcm1pbGwsIGV0Yy4KKyAgICAgKiBGb3IgYSBwZXJjZW50YWdlLCBzZXQgdGhlIHN1ZmZpeGVzIHRvIGhhdmUgIiUiIGFuZCB0aGUgbXVsdGlwbGllciB0byBiZSAxMDAuCisgICAgICogKEZvciBBcmFiaWMsIHVzZSBhcmFiaWMgcGVyY2VudCBzeW1ib2wpLgorICAgICAqIEZvciBhIHBlcm1pbGwsIHNldCB0aGUgc3VmZml4ZXMgdG8gaGF2ZSAiXHUyMDMxIiBhbmQgdGhlIG11bHRpcGxpZXIgdG8gYmUgMTAwMC4KKyAgICAgKiA8UD5FeGFtcGxlczogd2l0aCAxMDAsIDEuMjMgLT4gIjEyMyIsIGFuZCAiMTIzIiAtPiAxLjIzCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TXVsdGlwbGllciAoaW50IG5ld1ZhbHVlKSB7CisgICAgICAgIGlmIChuZXdWYWx1ZSA8PSAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJCYWQgbXVsdGlwbGllcjogIiArIG5ld1ZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBtdWx0aXBsaWVyID0gbmV3VmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIEdldCB0aGUgcm91bmRpbmcgaW5jcmVtZW50LgorICAgICAqIEByZXR1cm4gQSBwb3NpdGl2ZSByb3VuZGluZyBpbmNyZW1lbnQsIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIHJvdW5kaW5nCisgICAgICogaXMgbm90IGluIGVmZmVjdC4KKyAgICAgKiBAc2VlICNzZXRSb3VuZGluZ0luY3JlbWVudAorICAgICAqIEBzZWUgI2dldFJvdW5kaW5nTW9kZQorICAgICAqIEBzZWUgI3NldFJvdW5kaW5nTW9kZQorICAgICAqLworICAgIHB1YmxpYyBqYXZhLm1hdGguQmlnRGVjaW1hbCBnZXRSb3VuZGluZ0luY3JlbWVudCgpIHsKKyAgICAgICAgcmV0dXJuIHJvdW5kaW5nSW5jcmVtZW50OworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBTZXQgdGhlIHJvdW5kaW5nIGluY3JlbWVudC4gIFRoaXMgbWV0aG9kIGFsc28gY29udHJvbHMgd2hldGhlcgorICAgICAqIHJvdW5kaW5nIGlzIGVuYWJsZWQuCisgICAgICogQHBhcmFtIG5ld1ZhbHVlIEEgcG9zaXRpdmUgcm91bmRpbmcgaW5jcmVtZW50LCBvciA8Y29kZT5udWxsPC9jb2RlPiBvcgorICAgICAqIDxjb2RlPkJpZ0RlY2ltYWwoMC4wKTwvY29kZT4gdG8gZGlzYWJsZSByb3VuZGluZy4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiA8Y29kZT5uZXdWYWx1ZTwvY29kZT4gaXMgPCAwLjAKKyAgICAgKiBAc2VlICNnZXRSb3VuZGluZ0luY3JlbWVudAorICAgICAqIEBzZWUgI2dldFJvdW5kaW5nTW9kZQorICAgICAqIEBzZWUgI3NldFJvdW5kaW5nTW9kZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFJvdW5kaW5nSW5jcmVtZW50KGphdmEubWF0aC5CaWdEZWNpbWFsIG5ld1ZhbHVlKSB7CisgICAgICAgIGludCBpID0gbmV3VmFsdWUgPT0gbnVsbAorICAgICAgICAgICAgICAgID8gMCA6IG5ld1ZhbHVlLmNvbXBhcmVUbyhqYXZhLm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKDApKTsKKyAgICAgICAgaWYgKGkgPCAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIHJvdW5kaW5nIGluY3JlbWVudCIpOworICAgICAgICB9CisgICAgICAgIGlmIChpID09IDApIHsKKyAgICAgICAgICAgIHJvdW5kaW5nSW5jcmVtZW50ID0gbnVsbDsKKyAgICAgICAgICAgIHJvdW5kaW5nRG91YmxlID0gMC4wOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcm91bmRpbmdJbmNyZW1lbnQgPSBuZXdWYWx1ZTsKKyAgICAgICAgICAgIHJvdW5kaW5nRG91YmxlID0gbmV3VmFsdWUuZG91YmxlVmFsdWUoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogU2V0IHRoZSByb3VuZGluZyBpbmNyZW1lbnQuICBUaGlzIG1ldGhvZCBhbHNvIGNvbnRyb2xzIHdoZXRoZXIKKyAgICAgKiByb3VuZGluZyBpcyBlbmFibGVkLgorICAgICAqIEBwYXJhbSBuZXdWYWx1ZSBBIHBvc2l0aXZlIHJvdW5kaW5nIGluY3JlbWVudCwgb3IgMC4wIHRvIGRpc2FibGUKKyAgICAgKiByb3VuZGluZy4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiA8Y29kZT5uZXdWYWx1ZTwvY29kZT4gaXMgPCAwLjAKKyAgICAgKiBAc2VlICNnZXRSb3VuZGluZ0luY3JlbWVudAorICAgICAqIEBzZWUgI2dldFJvdW5kaW5nTW9kZQorICAgICAqIEBzZWUgI3NldFJvdW5kaW5nTW9kZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFJvdW5kaW5nSW5jcmVtZW50KGRvdWJsZSBuZXdWYWx1ZSkgeworICAgICAgICBpZiAobmV3VmFsdWUgPCAwLjApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgcm91bmRpbmcgaW5jcmVtZW50Iik7CisgICAgICAgIH0KKyAgICAgICAgcm91bmRpbmdEb3VibGUgPSBuZXdWYWx1ZTsKKyAgICAgICAgcm91bmRpbmdJbmNyZW1lbnQgPSAobmV3VmFsdWUgPiAwLjApCisgICAgICAgICAgICA/IG5ldyBqYXZhLm1hdGguQmlnRGVjaW1hbChTdHJpbmcudmFsdWVPZihuZXdWYWx1ZSkpIDogbnVsbDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIEdldCB0aGUgcm91bmRpbmcgbW9kZS4KKyAgICAgKiBAcmV0dXJuIEEgcm91bmRpbmcgbW9kZSwgYmV0d2VlbiA8Y29kZT5CaWdEZWNpbWFsLlJPVU5EX1VQPC9jb2RlPgorICAgICAqIGFuZCA8Y29kZT5CaWdEZWNpbWFsLlJPVU5EX1VOTkVDRVNTQVJZPC9jb2RlPi4KKyAgICAgKiBAc2VlICNzZXRSb3VuZGluZ0luY3JlbWVudAorICAgICAqIEBzZWUgI2dldFJvdW5kaW5nSW5jcmVtZW50CisgICAgICogQHNlZSAjc2V0Um91bmRpbmdNb2RlCisgICAgICogQHNlZSBqYXZhLm1hdGguQmlnRGVjaW1hbAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0Um91bmRpbmdNb2RlKCkgeworICAgICAgICByZXR1cm4gcm91bmRpbmdNb2RlOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBTZXQgdGhlIHJvdW5kaW5nIG1vZGUuICBUaGlzIGhhcyBubyBlZmZlY3QgdW5sZXNzIHRoZSByb3VuZGluZworICAgICAqIGluY3JlbWVudCBpcyBncmVhdGVyIHRoYW4gemVyby4KKyAgICAgKiBAcGFyYW0gcm91bmRpbmdNb2RlIEEgcm91bmRpbmcgbW9kZSwgYmV0d2VlbgorICAgICAqIDxjb2RlPkJpZ0RlY2ltYWwuUk9VTkRfVVA8L2NvZGU+IGFuZAorICAgICAqIDxjb2RlPkJpZ0RlY2ltYWwuUk9VTkRfVU5ORUNFU1NBUlk8L2NvZGU+LgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIDxjb2RlPnJvdW5kaW5nTW9kZTwvY29kZT4KKyAgICAgKiBpcyB1bnJlY29nbml6ZWQuCisgICAgICogQHNlZSAjc2V0Um91bmRpbmdJbmNyZW1lbnQKKyAgICAgKiBAc2VlICNnZXRSb3VuZGluZ0luY3JlbWVudAorICAgICAqIEBzZWUgI2dldFJvdW5kaW5nTW9kZQorICAgICAqIEBzZWUgamF2YS5tYXRoLkJpZ0RlY2ltYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRSb3VuZGluZ01vZGUoaW50IHJvdW5kaW5nTW9kZSkgeworICAgICAgICBpZiAocm91bmRpbmdNb2RlIDwgamF2YS5tYXRoLkJpZ0RlY2ltYWwuUk9VTkRfVVAKKyAgICAgICAgICAgIHx8IHJvdW5kaW5nTW9kZSA+IGphdmEubWF0aC5CaWdEZWNpbWFsLlJPVU5EX1VOTkVDRVNTQVJZKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIHJvdW5kaW5nIG1vZGU6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyByb3VuZGluZ01vZGUpOworICAgICAgICB9CisgICAgICAgIHRoaXMucm91bmRpbmdNb2RlID0gcm91bmRpbmdNb2RlOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBHZXQgdGhlIHdpZHRoIHRvIHdoaWNoIHRoZSBvdXRwdXQgb2YgPGNvZGU+Zm9ybWF0KCk8L2NvZGU+IGlzIHBhZGRlZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBmb3JtYXQgd2lkdGgsIG9yIHplcm8gaWYgbm8gcGFkZGluZyBpcyBpbiBlZmZlY3QKKyAgICAgKiBAc2VlICNzZXRGb3JtYXRXaWR0aAorICAgICAqIEBzZWUgI2dldFBhZENoYXJhY3RlcgorICAgICAqIEBzZWUgI3NldFBhZENoYXJhY3RlcgorICAgICAqIEBzZWUgI2dldFBhZFBvc2l0aW9uCisgICAgICogQHNlZSAjc2V0UGFkUG9zaXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEZvcm1hdFdpZHRoKCkgeworICAgICAgICByZXR1cm4gZm9ybWF0V2lkdGg7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFNldCB0aGUgd2lkdGggdG8gd2hpY2ggdGhlIG91dHB1dCBvZiA8Y29kZT5mb3JtYXQoKTwvY29kZT4gaXMgcGFkZGVkLgorICAgICAqIFRoaXMgbWV0aG9kIGFsc28gY29udHJvbHMgd2hldGhlciBwYWRkaW5nIGlzIGVuYWJsZWQuCisgICAgICogQHBhcmFtIHdpZHRoIHRoZSB3aWR0aCB0byB3aGljaCB0byBwYWQgdGhlIHJlc3VsdCBvZgorICAgICAqIDxjb2RlPmZvcm1hdCgpPC9jb2RlPiwgb3IgemVybyB0byBkaXNhYmxlIHBhZGRpbmcKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiA8Y29kZT53aWR0aDwvY29kZT4gaXMgPCAwCisgICAgICogQHNlZSAjZ2V0Rm9ybWF0V2lkdGgKKyAgICAgKiBAc2VlICNnZXRQYWRDaGFyYWN0ZXIKKyAgICAgKiBAc2VlICNzZXRQYWRDaGFyYWN0ZXIKKyAgICAgKiBAc2VlICNnZXRQYWRQb3NpdGlvbgorICAgICAqIEBzZWUgI3NldFBhZFBvc2l0aW9uCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Rm9ybWF0V2lkdGgoaW50IHdpZHRoKSB7CisgICAgICAgIGlmICh3aWR0aCA8IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgZm9ybWF0IHdpZHRoIik7CisgICAgICAgIH0KKyAgICAgICAgZm9ybWF0V2lkdGggPSB3aWR0aDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogR2V0IHRoZSBjaGFyYWN0ZXIgdXNlZCB0byBwYWQgdG8gdGhlIGZvcm1hdCB3aWR0aC4gIFRoZSBkZWZhdWx0IGlzICcgJy4KKyAgICAgKiBAcmV0dXJuIHRoZSBwYWQgY2hhcmFjdGVyCisgICAgICogQHNlZSAjc2V0Rm9ybWF0V2lkdGgKKyAgICAgKiBAc2VlICNnZXRGb3JtYXRXaWR0aAorICAgICAqIEBzZWUgI3NldFBhZENoYXJhY3RlcgorICAgICAqIEBzZWUgI2dldFBhZFBvc2l0aW9uCisgICAgICogQHNlZSAjc2V0UGFkUG9zaXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBnZXRQYWRDaGFyYWN0ZXIoKSB7CisgICAgICAgIHJldHVybiBwYWQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFNldCB0aGUgY2hhcmFjdGVyIHVzZWQgdG8gcGFkIHRvIHRoZSBmb3JtYXQgd2lkdGguICBUaGlzIGhhcyBubyBlZmZlY3QKKyAgICAgKiB1bmxlc3MgcGFkZGluZyBpcyBlbmFibGVkLgorICAgICAqIEBwYXJhbSBwYWRDaGFyIHRoZSBwYWQgY2hhcmFjdGVyCisgICAgICogQHNlZSAjc2V0Rm9ybWF0V2lkdGgKKyAgICAgKiBAc2VlICNnZXRGb3JtYXRXaWR0aAorICAgICAqIEBzZWUgI2dldFBhZENoYXJhY3RlcgorICAgICAqIEBzZWUgI2dldFBhZFBvc2l0aW9uCisgICAgICogQHNlZSAjc2V0UGFkUG9zaXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRQYWRDaGFyYWN0ZXIoY2hhciBwYWRDaGFyKSB7CisgICAgICAgIHBhZCA9IHBhZENoYXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIEdldCB0aGUgcG9zaXRpb24gYXQgd2hpY2ggcGFkZGluZyB3aWxsIHRha2UgcGxhY2UuICBUaGlzIGlzIHRoZSBsb2NhdGlvbgorICAgICAqIGF0IHdoaWNoIHBhZGRpbmcgd2lsbCBiZSBpbnNlcnRlZCBpZiB0aGUgcmVzdWx0IG9mIDxjb2RlPmZvcm1hdCgpPC9jb2RlPgorICAgICAqIGlzIHNob3J0ZXIgdGhhbiB0aGUgZm9ybWF0IHdpZHRoLgorICAgICAqIEByZXR1cm4gdGhlIHBhZCBwb3NpdGlvbiwgb25lIG9mIDxjb2RlPlBBRF9CRUZPUkVfUFJFRklYPC9jb2RlPiwKKyAgICAgKiA8Y29kZT5QQURfQUZURVJfUFJFRklYPC9jb2RlPiwgPGNvZGU+UEFEX0JFRk9SRV9TVUZGSVg8L2NvZGU+LCBvcgorICAgICAqIDxjb2RlPlBBRF9BRlRFUl9TVUZGSVg8L2NvZGU+LgorICAgICAqIEBzZWUgI3NldEZvcm1hdFdpZHRoCisgICAgICogQHNlZSAjZ2V0Rm9ybWF0V2lkdGgKKyAgICAgKiBAc2VlICNzZXRQYWRDaGFyYWN0ZXIKKyAgICAgKiBAc2VlICNnZXRQYWRDaGFyYWN0ZXIKKyAgICAgKiBAc2VlICNzZXRQYWRQb3NpdGlvbgorICAgICAqIEBzZWUgI1BBRF9CRUZPUkVfUFJFRklYCisgICAgICogQHNlZSAjUEFEX0FGVEVSX1BSRUZJWAorICAgICAqIEBzZWUgI1BBRF9CRUZPUkVfU1VGRklYCisgICAgICogQHNlZSAjUEFEX0FGVEVSX1NVRkZJWAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0UGFkUG9zaXRpb24oKSB7CisgICAgICAgIHJldHVybiBwYWRQb3NpdGlvbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogU2V0IHRoZSBwb3NpdGlvbiBhdCB3aGljaCBwYWRkaW5nIHdpbGwgdGFrZSBwbGFjZS4gIFRoaXMgaXMgdGhlIGxvY2F0aW9uCisgICAgICogYXQgd2hpY2ggcGFkZGluZyB3aWxsIGJlIGluc2VydGVkIGlmIHRoZSByZXN1bHQgb2YgPGNvZGU+Zm9ybWF0KCk8L2NvZGU+CisgICAgICogaXMgc2hvcnRlciB0aGFuIHRoZSBmb3JtYXQgd2lkdGguICBUaGlzIGhhcyBubyBlZmZlY3QgdW5sZXNzIHBhZGRpbmcgaXMKKyAgICAgKiBlbmFibGVkLgorICAgICAqIEBwYXJhbSBwYWRQb3MgdGhlIHBhZCBwb3NpdGlvbiwgb25lIG9mIDxjb2RlPlBBRF9CRUZPUkVfUFJFRklYPC9jb2RlPiwKKyAgICAgKiA8Y29kZT5QQURfQUZURVJfUFJFRklYPC9jb2RlPiwgPGNvZGU+UEFEX0JFRk9SRV9TVUZGSVg8L2NvZGU+LCBvcgorICAgICAqIDxjb2RlPlBBRF9BRlRFUl9TVUZGSVg8L2NvZGU+LgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBwYWQgcG9zaXRpb24gaW4KKyAgICAgKiB1bnJlY29nbml6ZWQKKyAgICAgKiBAc2VlICNzZXRGb3JtYXRXaWR0aAorICAgICAqIEBzZWUgI2dldEZvcm1hdFdpZHRoCisgICAgICogQHNlZSAjc2V0UGFkQ2hhcmFjdGVyCisgICAgICogQHNlZSAjZ2V0UGFkQ2hhcmFjdGVyCisgICAgICogQHNlZSAjZ2V0UGFkUG9zaXRpb24KKyAgICAgKiBAc2VlICNQQURfQkVGT1JFX1BSRUZJWAorICAgICAqIEBzZWUgI1BBRF9BRlRFUl9QUkVGSVgKKyAgICAgKiBAc2VlICNQQURfQkVGT1JFX1NVRkZJWAorICAgICAqIEBzZWUgI1BBRF9BRlRFUl9TVUZGSVgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRQYWRQb3NpdGlvbihpbnQgcGFkUG9zKSB7CisgICAgICAgIGlmIChwYWRQb3MgPCBQQURfQkVGT1JFX1BSRUZJWCB8fCBwYWRQb3MgPiBQQURfQUZURVJfU1VGRklYKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIHBhZCBwb3NpdGlvbiIpOworICAgICAgICB9CisgICAgICAgIHBhZFBvc2l0aW9uID0gcGFkUG9zOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBSZXR1cm4gd2hldGhlciBvciBub3Qgc2NpZW50aWZpYyBub3RhdGlvbiBpcyB1c2VkLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIG9iamVjdCBmb3JtYXRzIGFuZCBwYXJzZXMgc2NpZW50aWZpYyBub3RhdGlvbgorICAgICAqIEBzZWUgI3NldFNjaWVudGlmaWNOb3RhdGlvbgorICAgICAqIEBzZWUgI2dldE1pbmltdW1FeHBvbmVudERpZ2l0cworICAgICAqIEBzZWUgI3NldE1pbmltdW1FeHBvbmVudERpZ2l0cworICAgICAqIEBzZWUgI2lzRXhwb25lbnRTaWduQWx3YXlzU2hvd24KKyAgICAgKiBAc2VlICNzZXRFeHBvbmVudFNpZ25BbHdheXNTaG93bgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzU2NpZW50aWZpY05vdGF0aW9uKCkgeworICAgICAgICByZXR1cm4gdXNlRXhwb25lbnRpYWxOb3RhdGlvbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogU2V0IHdoZXRoZXIgb3Igbm90IHNjaWVudGlmaWMgbm90YXRpb24gaXMgdXNlZC4KKyAgICAgKiBAcGFyYW0gdXNlU2NpZW50aWZpYyB0cnVlIGlmIHRoaXMgb2JqZWN0IGZvcm1hdHMgYW5kIHBhcnNlcyBzY2llbnRpZmljCisgICAgICogbm90YXRpb24KKyAgICAgKiBAc2VlICNpc1NjaWVudGlmaWNOb3RhdGlvbgorICAgICAqIEBzZWUgI2dldE1pbmltdW1FeHBvbmVudERpZ2l0cworICAgICAqIEBzZWUgI3NldE1pbmltdW1FeHBvbmVudERpZ2l0cworICAgICAqIEBzZWUgI2lzRXhwb25lbnRTaWduQWx3YXlzU2hvd24KKyAgICAgKiBAc2VlICNzZXRFeHBvbmVudFNpZ25BbHdheXNTaG93bgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNjaWVudGlmaWNOb3RhdGlvbihib29sZWFuIHVzZVNjaWVudGlmaWMpIHsKKyAgICAgICAgdXNlRXhwb25lbnRpYWxOb3RhdGlvbiA9IHVzZVNjaWVudGlmaWM7CisgICAgICAgIGlmICh1c2VFeHBvbmVudGlhbE5vdGF0aW9uICYmIG1pbkV4cG9uZW50RGlnaXRzIDwgMSkgeworICAgICAgICAgICAgbWluRXhwb25lbnREaWdpdHMgPSAxOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFJldHVybiB0aGUgbWluaW11bSBleHBvbmVudCBkaWdpdHMgdGhhdCB3aWxsIGJlIHNob3duLgorICAgICAqIEByZXR1cm4gdGhlIG1pbmltdW0gZXhwb25lbnQgZGlnaXRzIHRoYXQgd2lsbCBiZSBzaG93bgorICAgICAqIEBzZWUgI3NldFNjaWVudGlmaWNOb3RhdGlvbgorICAgICAqIEBzZWUgI2lzU2NpZW50aWZpY05vdGF0aW9uCisgICAgICogQHNlZSAjc2V0TWluaW11bUV4cG9uZW50RGlnaXRzCisgICAgICogQHNlZSAjaXNFeHBvbmVudFNpZ25BbHdheXNTaG93bgorICAgICAqIEBzZWUgI3NldEV4cG9uZW50U2lnbkFsd2F5c1Nob3duCisgICAgICovCisgICAgcHVibGljIGJ5dGUgZ2V0TWluaW11bUV4cG9uZW50RGlnaXRzKCkgeworICAgICAgICByZXR1cm4gbWluRXhwb25lbnREaWdpdHM7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBTZXQgdGhlIG1pbmltdW0gZXhwb25lbnQgZGlnaXRzIHRoYXQgd2lsbCBiZSBzaG93bi4gIFRoaXMgaGFzIG5vCisgICAgICogZWZmZWN0IHVubGVzcyBzY2llbnRpZmljIG5vdGF0aW9uIGlzIGluIHVzZS4KKyAgICAgKiBAcGFyYW0gbWluRXhwRGlnIGEgdmFsdWUgPj0gMSBpbmRpY2F0aW5nIHRoZSBmZXdlc3QgZXhwb25lbnQgZGlnaXRzCisgICAgICogdGhhdCB3aWxsIGJlIHNob3duCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgPGNvZGU+bWluRXhwRGlnPC9jb2RlPiA8IDEKKyAgICAgKiBAc2VlICNzZXRTY2llbnRpZmljTm90YXRpb24KKyAgICAgKiBAc2VlICNpc1NjaWVudGlmaWNOb3RhdGlvbgorICAgICAqIEBzZWUgI2dldE1pbmltdW1FeHBvbmVudERpZ2l0cworICAgICAqIEBzZWUgI2lzRXhwb25lbnRTaWduQWx3YXlzU2hvd24KKyAgICAgKiBAc2VlICNzZXRFeHBvbmVudFNpZ25BbHdheXNTaG93bgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1pbmltdW1FeHBvbmVudERpZ2l0cyhieXRlIG1pbkV4cERpZykgeworICAgICAgICBpZiAobWluRXhwRGlnIDwgMSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiRXhwb25lbnQgZGlnaXRzIG11c3QgYmUgPj0gMSIpOworICAgICAgICB9CisgICAgICAgIG1pbkV4cG9uZW50RGlnaXRzID0gbWluRXhwRGlnOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBSZXR1cm4gd2hldGhlciB0aGUgZXhwb25lbnQgc2lnbiBpcyBhbHdheXMgc2hvd24uCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBleHBvbmVudCBpcyBhbHdheXMgcHJlZml4ZWQgd2l0aCBlaXRoZXIgdGhlCisgICAgICogbG9jYWxpemVkIG1pbnVzIHNpZ24gb3IgdGhlIGxvY2FsaXplZCBwbHVzIHNpZ24sIGZhbHNlIGlmIG9ubHkgbmVnYXRpdmUKKyAgICAgKiBleHBvbmVudHMgYXJlIHByZWZpeGVkIHdpdGggdGhlIGxvY2FsaXplZCBtaW51cyBzaWduLgorICAgICAqIEBzZWUgI3NldFNjaWVudGlmaWNOb3RhdGlvbgorICAgICAqIEBzZWUgI2lzU2NpZW50aWZpY05vdGF0aW9uCisgICAgICogQHNlZSAjc2V0TWluaW11bUV4cG9uZW50RGlnaXRzCisgICAgICogQHNlZSAjZ2V0TWluaW11bUV4cG9uZW50RGlnaXRzCisgICAgICogQHNlZSAjc2V0RXhwb25lbnRTaWduQWx3YXlzU2hvd24KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0V4cG9uZW50U2lnbkFsd2F5c1Nob3duKCkgeworICAgICAgICByZXR1cm4gZXhwb25lbnRTaWduQWx3YXlzU2hvd247CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFNldCB3aGV0aGVyIHRoZSBleHBvbmVudCBzaWduIGlzIGFsd2F5cyBzaG93bi4gIFRoaXMgaGFzIG5vIGVmZmVjdAorICAgICAqIHVubGVzcyBzY2llbnRpZmljIG5vdGF0aW9uIGlzIGluIHVzZS4KKyAgICAgKiBAcGFyYW0gZXhwU2lnbkFsd2F5cyB0cnVlIGlmIHRoZSBleHBvbmVudCBpcyBhbHdheXMgcHJlZml4ZWQgd2l0aCBlaXRoZXIKKyAgICAgKiB0aGUgbG9jYWxpemVkIG1pbnVzIHNpZ24gb3IgdGhlIGxvY2FsaXplZCBwbHVzIHNpZ24sIGZhbHNlIGlmIG9ubHkKKyAgICAgKiBuZWdhdGl2ZSBleHBvbmVudHMgYXJlIHByZWZpeGVkIHdpdGggdGhlIGxvY2FsaXplZCBtaW51cyBzaWduLgorICAgICAqIEBzZWUgI3NldFNjaWVudGlmaWNOb3RhdGlvbgorICAgICAqIEBzZWUgI2lzU2NpZW50aWZpY05vdGF0aW9uCisgICAgICogQHNlZSAjc2V0TWluaW11bUV4cG9uZW50RGlnaXRzCisgICAgICogQHNlZSAjZ2V0TWluaW11bUV4cG9uZW50RGlnaXRzCisgICAgICogQHNlZSAjaXNFeHBvbmVudFNpZ25BbHdheXNTaG93bgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEV4cG9uZW50U2lnbkFsd2F5c1Nob3duKGJvb2xlYW4gZXhwU2lnbkFsd2F5cykgeworICAgICAgICBleHBvbmVudFNpZ25BbHdheXNTaG93biA9IGV4cFNpZ25BbHdheXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBncm91cGluZyBzaXplLiBHcm91cGluZyBzaXplIGlzIHRoZSBudW1iZXIgb2YgZGlnaXRzIGJldHdlZW4KKyAgICAgKiBncm91cGluZyBzZXBhcmF0b3JzIGluIHRoZSBpbnRlZ2VyIHBvcnRpb24gb2YgYSBudW1iZXIuICBGb3IgZXhhbXBsZSwKKyAgICAgKiBpbiB0aGUgbnVtYmVyICIxMjMsNDU2Ljc4IiwgdGhlIGdyb3VwaW5nIHNpemUgaXMgMy4KKyAgICAgKiBAc2VlICNzZXRHcm91cGluZ1NpemUKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNpc0dyb3VwaW5nVXNlZAorICAgICAqIEBzZWUgRGVjaW1hbEZvcm1hdFN5bWJvbHMjZ2V0R3JvdXBpbmdTZXBhcmF0b3IKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEdyb3VwaW5nU2l6ZSAoKSB7CisgICAgICAgIHJldHVybiBncm91cGluZ1NpemU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBncm91cGluZyBzaXplLiBHcm91cGluZyBzaXplIGlzIHRoZSBudW1iZXIgb2YgZGlnaXRzIGJldHdlZW4KKyAgICAgKiBncm91cGluZyBzZXBhcmF0b3JzIGluIHRoZSBpbnRlZ2VyIHBvcnRpb24gb2YgYSBudW1iZXIuICBGb3IgZXhhbXBsZSwKKyAgICAgKiBpbiB0aGUgbnVtYmVyICIxMjMsNDU2Ljc4IiwgdGhlIGdyb3VwaW5nIHNpemUgaXMgMy4KKyAgICAgKiBAc2VlICNnZXRHcm91cGluZ1NpemUKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNzZXRHcm91cGluZ1VzZWQKKyAgICAgKiBAc2VlIERlY2ltYWxGb3JtYXRTeW1ib2xzI3NldEdyb3VwaW5nU2VwYXJhdG9yCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0R3JvdXBpbmdTaXplIChpbnQgbmV3VmFsdWUpIHsKKyAgICAgICAgZ3JvdXBpbmdTaXplID0gKGJ5dGUpbmV3VmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzZWNvbmRhcnkgZ3JvdXBpbmcgc2l6ZS4gSW4gc29tZSBsb2NhbGVzIG9uZQorICAgICAqIGdyb3VwaW5nIGludGVydmFsIGlzIHVzZWQgZm9yIHRoZSBsZWFzdCBzaWduaWZpY2FudCBpbnRlZ2VyCisgICAgICogZGlnaXRzICh0aGUgcHJpbWFyeSBncm91cGluZyBzaXplKSwgYW5kIGFub3RoZXIgaXMgdXNlZCBmb3IgYWxsCisgICAgICogb3RoZXJzICh0aGUgc2Vjb25kYXJ5IGdyb3VwaW5nIHNpemUpLiAgQSBmb3JtYXR0ZXIgc3VwcG9ydGluZyBhCisgICAgICogc2Vjb25kYXJ5IGdyb3VwaW5nIHNpemUgd2lsbCByZXR1cm4gYSBwb3NpdGl2ZSBpbnRlZ2VyIHVuZXF1YWwKKyAgICAgKiB0byB0aGUgcHJpbWFyeSBncm91cGluZyBzaXplIHJldHVybmVkIGJ5CisgICAgICogPGNvZGU+Z2V0R3JvdXBpbmdTaXplKCk8L2NvZGU+LiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBwcmltYXJ5CisgICAgICogZ3JvdXBpbmcgc2l6ZSBpcyA0LCBhbmQgdGhlIHNlY29uZGFyeSBncm91cGluZyBzaXplIGlzIDIsIHRoZW4KKyAgICAgKiB0aGUgbnVtYmVyIDEyMzQ1Njc4OSBmb3JtYXRzIGFzICIxLDIzLDQ1LDY3ODkiLCBhbmQgdGhlIHBhdHRlcm4KKyAgICAgKiBhcHBlYXJzIGFzICIjLCMjLCMjIzAiLgorICAgICAqIFtORVddCisgICAgICogQHJldHVybiB0aGUgc2Vjb25kYXJ5IGdyb3VwaW5nIHNpemUsIG9yIGEgdmFsdWUgbGVzcyB0aGFuCisgICAgICogb25lIGlmIHRoZXJlIGlzIG5vbmUKKyAgICAgKiBAc2VlICNzZXRTZWNvbmRhcnlHcm91cGluZ1NpemUKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNpc0dyb3VwaW5nVXNlZAorICAgICAqIEBzZWUgRGVjaW1hbEZvcm1hdFN5bWJvbHMjZ2V0R3JvdXBpbmdTZXBhcmF0b3IKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFNlY29uZGFyeUdyb3VwaW5nU2l6ZSAoKSB7CisgICAgICAgIHJldHVybiBncm91cGluZ1NpemUyOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgc2Vjb25kYXJ5IGdyb3VwaW5nIHNpemUuIElmIHNldCB0byBhIHZhbHVlIGxlc3MgdGhhbiAxLAorICAgICAqIHRoZW4gc2Vjb25kYXJ5IGdyb3VwaW5nIGlzIHR1cm5lZCBvZmYsIGFuZCB0aGUgcHJpbWFyeSBncm91cGluZworICAgICAqIHNpemUgaXMgdXNlZCBmb3IgYWxsIGludGVydmFscywgbm90IGp1c3QgdGhlIGxlYXN0IHNpZ25pZmljYW50LgorICAgICAqIFtORVddCisgICAgICogQHNlZSAjZ2V0U2Vjb25kYXJ5R3JvdXBpbmdTaXplCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjc2V0R3JvdXBpbmdVc2VkCisgICAgICogQHNlZSBEZWNpbWFsRm9ybWF0U3ltYm9scyNzZXRHcm91cGluZ1NlcGFyYXRvcgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNlY29uZGFyeUdyb3VwaW5nU2l6ZSAoaW50IG5ld1ZhbHVlKSB7CisgICAgICAgIGdyb3VwaW5nU2l6ZTIgPSAoYnl0ZSluZXdWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBbGxvd3MgeW91IHRvIGdldCB0aGUgYmVoYXZpb3Igb2YgdGhlIGRlY2ltYWwgc2VwYXJhdG9yIHdpdGggaW50ZWdlcnMuCisgICAgICogKFRoZSBkZWNpbWFsIHNlcGFyYXRvciB3aWxsIGFsd2F5cyBhcHBlYXIgd2l0aCBkZWNpbWFscy4pCisgICAgICogPFA+RXhhbXBsZTogRGVjaW1hbCBPTjogMTIzNDUgLT4gMTIzNDUuOyBPRkY6IDEyMzQ1IC0+IDEyMzQ1CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNEZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24oKSB7CisgICAgICAgIHJldHVybiBkZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd247CisgICAgfQorCisgICAgLyoqCisgICAgICogQWxsb3dzIHlvdSB0byBzZXQgdGhlIGJlaGF2aW9yIG9mIHRoZSBkZWNpbWFsIHNlcGFyYXRvciB3aXRoIGludGVnZXJzLgorICAgICAqIChUaGUgZGVjaW1hbCBzZXBhcmF0b3Igd2lsbCBhbHdheXMgYXBwZWFyIHdpdGggZGVjaW1hbHMuKQorICAgICAqIDxQPkV4YW1wbGU6IERlY2ltYWwgT046IDEyMzQ1IC0+IDEyMzQ1LjsgT0ZGOiAxMjM0NSAtPiAxMjM0NQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldERlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bihib29sZWFuIG5ld1ZhbHVlKSB7CisgICAgICAgIGRlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93biA9IG5ld1ZhbHVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFN0YW5kYXJkIG92ZXJyaWRlOyBubyBjaGFuZ2UgaW4gc2VtYW50aWNzLgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBEZWNpbWFsRm9ybWF0IG90aGVyID0gKERlY2ltYWxGb3JtYXQpIHN1cGVyLmNsb25lKCk7CisgICAgICAgICAgICBvdGhlci5zeW1ib2xzID0gKERlY2ltYWxGb3JtYXRTeW1ib2xzKSBzeW1ib2xzLmNsb25lKCk7CisgICAgICAgICAgICByZXR1cm4gb3RoZXI7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcigpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIGVxdWFscworICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKQorICAgIHsKKyAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghc3VwZXIuZXF1YWxzKG9iaikpIHJldHVybiBmYWxzZTsgLy8gc3VwZXIgZG9lcyBjbGFzcyBjaGVjaworICAgICAgICBEZWNpbWFsRm9ybWF0IG90aGVyID0gKERlY2ltYWxGb3JtYXQpIG9iajsKKyAgICAgICAgLyogQWRkIHRoZSBjb21wYXJpc29uIG9mIHRoZSBmb3VyIG5ldyBhZGRlZCBmaWVsZHMgLHRoZXkgYXJlCisgICAgICAgICAqIHBvc1ByZWZpeFBhdHRlcm4sIHBvc1N1ZmZpeFBhdHRlcm4sIG5lZ1ByZWZpeFBhdHRlcm4sIG5lZ1N1ZmZpeFBhdHRlcm4uCisgICAgICAgICAqIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgICovCisgICAgICAgIHJldHVybiAoKChwb3NQcmVmaXhQYXR0ZXJuID09IG90aGVyLnBvc1ByZWZpeFBhdHRlcm4gJiYKKyAgICAgICAgICAgICAgICAgcG9zaXRpdmVQcmVmaXguZXF1YWxzKG90aGVyLnBvc2l0aXZlUHJlZml4KSkKKyAgICAgICAgICAgICAgICB8fCAocG9zUHJlZml4UGF0dGVybiAhPSBudWxsICYmCisgICAgICAgICAgICAgICAgICAgIHBvc1ByZWZpeFBhdHRlcm4uZXF1YWxzKG90aGVyLnBvc1ByZWZpeFBhdHRlcm4pKSkKKyAgICAgICAgICAgICYmICgocG9zU3VmZml4UGF0dGVybiA9PSBvdGhlci5wb3NTdWZmaXhQYXR0ZXJuICYmCisgICAgICAgICAgICAgICAgIHBvc2l0aXZlU3VmZml4LmVxdWFscyhvdGhlci5wb3NpdGl2ZVN1ZmZpeCkpCisgICAgICAgICAgICAgICAgfHwgKHBvc1N1ZmZpeFBhdHRlcm4gIT0gbnVsbCAmJgorICAgICAgICAgICAgICAgICAgICBwb3NTdWZmaXhQYXR0ZXJuLmVxdWFscyhvdGhlci5wb3NTdWZmaXhQYXR0ZXJuKSkpCisgICAgICAgICAgICAmJiAoKG5lZ1ByZWZpeFBhdHRlcm4gPT0gb3RoZXIubmVnUHJlZml4UGF0dGVybiAmJgorICAgICAgICAgICAgICAgICBuZWdhdGl2ZVByZWZpeC5lcXVhbHMob3RoZXIubmVnYXRpdmVQcmVmaXgpKQorICAgICAgICAgICAgICAgIHx8IChuZWdQcmVmaXhQYXR0ZXJuICE9IG51bGwgJiYKKyAgICAgICAgICAgICAgICAgICAgbmVnUHJlZml4UGF0dGVybi5lcXVhbHMob3RoZXIubmVnUHJlZml4UGF0dGVybikpKQorICAgICAgICAgICAgJiYgKChuZWdTdWZmaXhQYXR0ZXJuID09IG90aGVyLm5lZ1N1ZmZpeFBhdHRlcm4gJiYKKyAgICAgICAgICAgICAgICAgbmVnYXRpdmVTdWZmaXguZXF1YWxzKG90aGVyLm5lZ2F0aXZlU3VmZml4KSkKKyAgICAgICAgICAgICAgICB8fCAobmVnU3VmZml4UGF0dGVybiAhPSBudWxsICYmCisgICAgICAgICAgICAgICAgICAgIG5lZ1N1ZmZpeFBhdHRlcm4uZXF1YWxzKG90aGVyLm5lZ1N1ZmZpeFBhdHRlcm4pKSkKKyAgICAgICAgICAgICYmIG11bHRpcGxpZXIgPT0gb3RoZXIubXVsdGlwbGllcgorICAgICAgICAgICAgJiYgZ3JvdXBpbmdTaXplID09IG90aGVyLmdyb3VwaW5nU2l6ZQorICAgICAgICAgICAgJiYgZ3JvdXBpbmdTaXplMiA9PSBvdGhlci5ncm91cGluZ1NpemUyCisgICAgICAgICAgICAmJiBkZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24gPT0gb3RoZXIuZGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duCisgICAgICAgICAgICAmJiB1c2VFeHBvbmVudGlhbE5vdGF0aW9uID09IG90aGVyLnVzZUV4cG9uZW50aWFsTm90YXRpb24KKyAgICAgICAgICAgICYmICghdXNlRXhwb25lbnRpYWxOb3RhdGlvbiB8fAorICAgICAgICAgICAgICAgIG1pbkV4cG9uZW50RGlnaXRzID09IG90aGVyLm1pbkV4cG9uZW50RGlnaXRzKQorICAgICAgICAgICAgJiYgc3ltYm9scy5lcXVhbHMob3RoZXIuc3ltYm9scykpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlcyBoYXNoQ29kZQorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgIHJldHVybiBzdXBlci5oYXNoQ29kZSgpICogMzcgKyBwb3NpdGl2ZVByZWZpeC5oYXNoQ29kZSgpOworICAgICAgICAvLyBqdXN0IGVub3VnaCBmaWVsZHMgZm9yIGEgcmVhc29uYWJsZSBkaXN0cmlidXRpb24KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTeW50aGVzaXplcyBhIHBhdHRlcm4gc3RyaW5nIHRoYXQgcmVwcmVzZW50cyB0aGUgY3VycmVudCBzdGF0ZQorICAgICAqIG9mIHRoaXMgRm9ybWF0IG9iamVjdC4KKyAgICAgKiBAc2VlICNhcHBseVBhdHRlcm4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvUGF0dGVybigpIHsKKyAgICAgICAgcmV0dXJuIHRvUGF0dGVybiggZmFsc2UgKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTeW50aGVzaXplcyBhIGxvY2FsaXplZCBwYXR0ZXJuIHN0cmluZyB0aGF0IHJlcHJlc2VudHMgdGhlIGN1cnJlbnQKKyAgICAgKiBzdGF0ZSBvZiB0aGlzIEZvcm1hdCBvYmplY3QuCisgICAgICogQHNlZSAjYXBwbHlQYXR0ZXJuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b0xvY2FsaXplZFBhdHRlcm4oKSB7CisgICAgICAgIHJldHVybiB0b1BhdHRlcm4oIHRydWUgKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBFeHBhbmQgdGhlIGFmZml4IHBhdHRlcm4gc3RyaW5ncyBpbnRvIHRoZSBleHBhbmRlZCBhZmZpeCBzdHJpbmdzLiAgSWYgYW55CisgICAgICogYWZmaXggcGF0dGVybiBzdHJpbmcgaXMgbnVsbCwgZG8gbm90IGV4cGFuZCBpdC4gIFRoaXMgbWV0aG9kIHNob3VsZCBiZQorICAgICAqIGNhbGxlZCBhbnkgdGltZSB0aGUgc3ltYm9scyBvciB0aGUgYWZmaXggcGF0dGVybnMgY2hhbmdlIGluIG9yZGVyIHRvIGtlZXAKKyAgICAgKiB0aGUgZXhwYW5kZWQgYWZmaXggc3RyaW5ncyB1cCB0byBkYXRlLgorICAgICAqLworICAgIC8vQnVnIDQyMTIwNzIgW1JpY2hhcmQvR0NMXQorICAgIHByaXZhdGUgdm9pZCBleHBhbmRBZmZpeGVzKCkgeworICAgICAgICAvLyBSZXVzZSBvbmUgU3RyaW5nQnVmZmVyIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaWYgKHBvc1ByZWZpeFBhdHRlcm4gIT0gbnVsbCkgeworICAgICAgICAgICAgcG9zaXRpdmVQcmVmaXggPSBleHBhbmRBZmZpeChwb3NQcmVmaXhQYXR0ZXJuLCBidWZmZXIpOworICAgICAgICB9CisgICAgICAgIGlmIChwb3NTdWZmaXhQYXR0ZXJuICE9IG51bGwpIHsKKyAgICAgICAgICAgIHBvc2l0aXZlU3VmZml4ID0gZXhwYW5kQWZmaXgocG9zU3VmZml4UGF0dGVybiwgYnVmZmVyKTsKKyAgICAgICAgfQorICAgICAgICBpZiAobmVnUHJlZml4UGF0dGVybiAhPSBudWxsKSB7CisgICAgICAgICAgICBuZWdhdGl2ZVByZWZpeCA9IGV4cGFuZEFmZml4KG5lZ1ByZWZpeFBhdHRlcm4sIGJ1ZmZlcik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG5lZ1N1ZmZpeFBhdHRlcm4gIT0gbnVsbCkgeworICAgICAgICAgICAgbmVnYXRpdmVTdWZmaXggPSBleHBhbmRBZmZpeChuZWdTdWZmaXhQYXR0ZXJuLCBidWZmZXIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRXhwYW5kIGFuIGFmZml4IHBhdHRlcm4gaW50byBhbiBhZmZpeCBzdHJpbmcuICBBbGwgY2hhcmFjdGVycyBpbiB0aGUKKyAgICAgKiBwYXR0ZXJuIGFyZSBsaXRlcmFsIHVubGVzcyBwcmVmaXhlZCBieSBRVU9URS4gIFRoZSBmb2xsb3dpbmcgY2hhcmFjdGVycworICAgICAqIGFmdGVyIFFVT1RFIGFyZSByZWNvZ25pemVkOiBQQVRURVJOX1BFUkNFTlQsIFBBVFRFUk5fUEVSX01JTExFLAorICAgICAqIFBBVFRFUk5fTUlOVVMsIGFuZCBDVVJSRU5DWV9TSUdOLiAgSWYgQ1VSUkVOQ1lfU0lHTiBpcyBkb3VibGVkIChRVU9URSArCisgICAgICogQ1VSUkVOQ1lfU0lHTiArIENVUlJFTkNZX1NJR04pLCBpdCBpcyBpbnRlcnByZXRlZCBhcyBhbiBpbnRlcm5hdGlvbmFsCisgICAgICogY3VycmVuY3kgc2lnbi4gIEFueSBvdGhlciBjaGFyYWN0ZXIgYWZ0ZXIgYSBRVU9URSByZXByZXNlbnRzIGl0c2VsZi4KKyAgICAgKiBRVU9URSBtdXN0IGJlIGZvbGxvd2VkIGJ5IGFub3RoZXIgY2hhcmFjdGVyOyBRVU9URSBtYXkgbm90IG9jY3VyIGJ5CisgICAgICogaXRzZWxmIGF0IHRoZSBlbmQgb2YgdGhlIHBhdHRlcm4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gcGF0dGVybiB0aGUgbm9uLW51bGwsIHBvc3NpYmx5IGVtcHR5IHBhdHRlcm4KKyAgICAgKiBAcGFyYW0gYnVmZmVyIGEgc2NyYXRjaCBTdHJpbmdCdWZmZXI7IGl0cyBjb250ZW50cyB3aWxsIGJlIGxvc3QKKyAgICAgKiBAcmV0dXJuIHRoZSBleHBhbmRlZCBlcXVpdmFsZW50IG9mIHBhdHRlcm4KKyAgICAgKi8KKyAgICAvL0J1ZyA0MjEyMDcyIFtSaWNoYXJkL0dDTF0KKyAgICBwcml2YXRlIFN0cmluZyBleHBhbmRBZmZpeChTdHJpbmcgcGF0dGVybiwgU3RyaW5nQnVmZmVyIGJ1ZmZlcikgeworICAgICAgICBidWZmZXIuc2V0TGVuZ3RoKDApOworICAgICAgICBmb3IgKGludCBpPTA7IGk8cGF0dGVybi5sZW5ndGgoKTsgKSB7CisgICAgICAgICAgICBjaGFyIGMgPSBwYXR0ZXJuLmNoYXJBdChpKyspOworICAgICAgICAgICAgLy9pZiAoYyA9PSBRVU9URSkgeworICAgICAgICAgICAgLy8gICAgYyA9IHBhdHRlcm4uY2hhckF0KGkrKyk7CisgICAgICAgICAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgICAgICAgICAgY2FzZSBDVVJSRU5DWV9TSUdOOgorICAgICAgICAgICAgICAgICAgICAvLyBBcyBvZiBJQ1UgMi4yIHdlIHVzZSB0aGUgY3VycmVuY3kgb2JqZWN0LCBhbmQKKyAgICAgICAgICAgICAgICAgICAgLy8gaWdub3JlIHRoZSBjdXJyZW5jeSBzeW1ib2xzIGluIHRoZSBERlMsIHVubGVzcworICAgICAgICAgICAgICAgICAgICAvLyB3ZSBoYXZlIGEgbnVsbCBjdXJyZW5jeSBvYmplY3QuICBUaGlzIG9jY3VycyBpZgorICAgICAgICAgICAgICAgICAgICAvLyByZXN1cnJlY3RpbmcgYSBwcmUtMi4yIG9iamVjdCBvciBpZiB0aGUgdXNlcgorICAgICAgICAgICAgICAgICAgICAvLyBzZXRzIGEgY3VzdG9tIERGUy4KKyAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpbnRsID0gaTxwYXR0ZXJuLmxlbmd0aCgpICYmCisgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuLmNoYXJBdChpKSA9PSBDVVJSRU5DWV9TSUdOOworICAgICAgICAgICAgICAgICAgICBpZiAoaW50bCkgeworICAgICAgICAgICAgICAgICAgICAgICAgKytpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzOworICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVuY3kgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcyA9IGludGwgPyBjdXJyZW5jeS5nZXRDdXJyZW5jeUNvZGUoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY3VycmVuY3kuZ2V0U3ltYm9sKHN5bWJvbHMuZ2V0TG9jYWxlKCkpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcyA9IGludGwgPyBzeW1ib2xzLmdldEludGVybmF0aW9uYWxDdXJyZW5jeVN5bWJvbCgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBzeW1ib2xzLmdldEN1cnJlbmN5U3ltYm9sKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChzKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgY2FzZSBQQVRURVJOX1BFUkNFTlQ6CisgICAgICAgICAgICAgICAgICAgIGMgPSBzeW1ib2xzLmdldFBlcmNlbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBQQVRURVJOX1BFUl9NSUxMRToKKyAgICAgICAgICAgICAgICAgICAgYyA9IHN5bWJvbHMuZ2V0UGVyTWlsbCgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIFBBVFRFUk5fTUlOVVM6CisgICAgICAgICAgICAgICAgICAgIGMgPSBzeW1ib2xzLmdldE1pbnVzU2lnbigpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAvL30KKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoYyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGJ1ZmZlci50b1N0cmluZygpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBBcHBlbmQgYW4gYWZmaXggdG8gdGhlIGdpdmVuIFN0cmluZ0J1ZmZlciwgdXNpbmcgcXVvdGVzIGlmCisgICAgICogdGhlcmUgYXJlIHNwZWNpYWwgY2hhcmFjdGVycy4gIFNpbmdsZSBxdW90ZXMgdGhlbXNlbHZlcyBtdXN0IGJlCisgICAgICogZXNjYXBlZCBpbiBlaXRoZXIgY2FzZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgYXBwZW5kQWZmaXgoU3RyaW5nQnVmZmVyIGJ1ZmZlciwgU3RyaW5nIGFmZml4LCBib29sZWFuIGxvY2FsaXplZCkgeworICAgICAgICBib29sZWFuIG5lZWRRdW90ZTsKKyAgICAgICAgaWYgKGxvY2FsaXplZCkgeworICAgICAgICAgICAgbmVlZFF1b3RlID0gYWZmaXguaW5kZXhPZihzeW1ib2xzLmdldFplcm9EaWdpdCgpKSA+PSAwCisgICAgICAgICAgICAgICAgfHwgYWZmaXguaW5kZXhPZihzeW1ib2xzLmdldEdyb3VwaW5nU2VwYXJhdG9yKCkpID49IDAKKyAgICAgICAgICAgICAgICB8fCBhZmZpeC5pbmRleE9mKHN5bWJvbHMuZ2V0RGVjaW1hbFNlcGFyYXRvcigpKSA+PSAwCisgICAgICAgICAgICAgICAgfHwgYWZmaXguaW5kZXhPZihzeW1ib2xzLmdldFBlcmNlbnQoKSkgPj0gMAorICAgICAgICAgICAgICAgIHx8IGFmZml4LmluZGV4T2Yoc3ltYm9scy5nZXRQZXJNaWxsKCkpID49IDAKKyAgICAgICAgICAgICAgICB8fCBhZmZpeC5pbmRleE9mKHN5bWJvbHMuZ2V0RGlnaXQoKSkgPj0gMAorICAgICAgICAgICAgICAgIHx8IGFmZml4LmluZGV4T2Yoc3ltYm9scy5nZXRQYXR0ZXJuU2VwYXJhdG9yKCkpID49IDAKKyAgICAgICAgICAgICAgICB8fCBhZmZpeC5pbmRleE9mKHN5bWJvbHMuZ2V0RXhwb25lbnRTZXBhcmF0b3IoKSkgPj0gMDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG5lZWRRdW90ZSA9IGFmZml4LmluZGV4T2YoUEFUVEVSTl9aRVJPX0RJR0lUKSA+PSAwCisgICAgICAgICAgICAgICAgfHwgYWZmaXguaW5kZXhPZihQQVRURVJOX0dST1VQSU5HX1NFUEFSQVRPUikgPj0gMAorICAgICAgICAgICAgICAgIHx8IGFmZml4LmluZGV4T2YoUEFUVEVSTl9ERUNJTUFMX1NFUEFSQVRPUikgPj0gMAorICAgICAgICAgICAgICAgIHx8IGFmZml4LmluZGV4T2YoUEFUVEVSTl9QRVJDRU5UKSA+PSAwCisgICAgICAgICAgICAgICAgfHwgYWZmaXguaW5kZXhPZihQQVRURVJOX1BFUl9NSUxMRSkgPj0gMAorICAgICAgICAgICAgICAgIHx8IGFmZml4LmluZGV4T2YoUEFUVEVSTl9ESUdJVCkgPj0gMAorICAgICAgICAgICAgICAgIHx8IGFmZml4LmluZGV4T2YoUEFUVEVSTl9TRVBBUkFUT1IpID49IDAKKyAgICAgICAgICAgICAgICB8fCBhZmZpeC5pbmRleE9mKFBBVFRFUk5fRVhQT05FTlQpID49IDA7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG5lZWRRdW90ZSkgYnVmZmVyLmFwcGVuZCgnXCcnKTsKKyAgICAgICAgaWYgKGFmZml4LmluZGV4T2YoJ1wnJykgPCAwKSBidWZmZXIuYXBwZW5kKGFmZml4KTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8YWZmaXgubGVuZ3RoKCk7ICsraikgeworICAgICAgICAgICAgICAgIGNoYXIgYyA9IGFmZml4LmNoYXJBdChqKTsKKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKGMpOworICAgICAgICAgICAgICAgIGlmIChjID09ICdcJycpIGJ1ZmZlci5hcHBlbmQoYyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKG5lZWRRdW90ZSkgYnVmZmVyLmFwcGVuZCgnXCcnKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5DSEFOR0VEPC9mb250Pjwvc3Ryb25nPgorICAgICAqIERvZXMgdGhlIHJlYWwgd29yayBvZiBnZW5lcmF0aW5nIGEgcGF0dGVybi4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyB0b1BhdHRlcm4oYm9vbGVhbiBsb2NhbGl6ZWQpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgY2hhciB6ZXJvID0gbG9jYWxpemVkID8gc3ltYm9scy5nZXRaZXJvRGlnaXQoKSA6IFBBVFRFUk5fWkVST19ESUdJVDsKKyAgICAgICAgY2hhciBkaWdpdCA9IGxvY2FsaXplZCA/IHN5bWJvbHMuZ2V0RGlnaXQoKSA6IFBBVFRFUk5fRElHSVQ7CisgICAgICAgIGNoYXIgZ3JvdXAgPSBsb2NhbGl6ZWQgPyBzeW1ib2xzLmdldEdyb3VwaW5nU2VwYXJhdG9yKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFBBVFRFUk5fR1JPVVBJTkdfU0VQQVJBVE9SOworICAgICAgICBpbnQgaTsKKyAgICAgICAgaW50IHJvdW5kaW5nRGVjaW1hbFBvcyA9IDA7IC8vIFBvcyBvZiBkZWNpbWFsIGluIHJvdW5kaW5nRGlnaXRzCisgICAgICAgIFN0cmluZyByb3VuZGluZ0RpZ2l0cyA9IG51bGw7CisgICAgICAgIGludCBwYWRQb3MgPSAoZm9ybWF0V2lkdGggPiAwKSA/IHBhZFBvc2l0aW9uIDogLTE7CisgICAgICAgIFN0cmluZyBwYWRTcGVjID0gKGZvcm1hdFdpZHRoID4gMCkKKyAgICAgICAgICAgID8gbmV3IFN0cmluZ0J1ZmZlcigyKS4KKyAgICAgICAgICAgICAgICBhcHBlbmQobG9jYWxpemVkID8gc3ltYm9scy5nZXRQYWRFc2NhcGUoKSA6IFBBVFRFUk5fUEFEX0VTQ0FQRSkuCisgICAgICAgICAgICAgICAgYXBwZW5kKHBhZCkudG9TdHJpbmcoKQorICAgICAgICAgICAgOiBudWxsOworICAgICAgICBpZiAocm91bmRpbmdJbmNyZW1lbnQgIT0gbnVsbCkgeworICAgICAgICAgICAgaSA9IHJvdW5kaW5nSW5jcmVtZW50LnNjYWxlKCk7CisgICAgICAgICAgICByb3VuZGluZ0RpZ2l0cyA9IHJvdW5kaW5nSW5jcmVtZW50Lm1vdmVQb2ludFJpZ2h0KGkpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICByb3VuZGluZ0RlY2ltYWxQb3MgPSByb3VuZGluZ0RpZ2l0cy5sZW5ndGgoKSAtIGk7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgcGFydD0wOyBwYXJ0PDI7ICsrcGFydCkgeworICAgICAgICAgICAgLy8gdmFyaWFibGUgbm90IHVzZWQgaW50IHBhcnRTdGFydCA9IHJlc3VsdC5sZW5ndGgoKTsKKyAgICAgICAgICAgIGlmIChwYWRQb3MgPT0gUEFEX0JFRk9SRV9QUkVGSVgpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHBhZFNwZWMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLyogVXNlIG9yaWdpbmFsIHN5bWJvbHMgcmVhZCBmcm9tIHJlc291cmNlcyBpbiBwYXR0ZXJuCisgICAgICAgICAgICAgKiBlZy4gdXNlICJcdTAwQTQiIGluc3RlYWQgb2YgIiQiIGluIExvY2FsZS5VUyBbUmljaGFyZC9HQ0xdCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGFwcGVuZEFmZml4KHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgIChwYXJ0PT0wID8gcG9zUHJlZml4UGF0dGVybiA6IG5lZ1ByZWZpeFBhdHRlcm4pLAorICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxpemVkKTsKKyAgICAgICAgICAgIGlmIChwYWRQb3MgPT0gUEFEX0FGVEVSX1BSRUZJWCkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocGFkU3BlYyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgc3ViMFN0YXJ0ID0gcmVzdWx0Lmxlbmd0aCgpOworICAgICAgICAgICAgaW50IGcgPSBpc0dyb3VwaW5nVXNlZCgpID8gTWF0aC5tYXgoMCwgZ3JvdXBpbmdTaXplKSA6IDA7CisgICAgICAgICAgICBpZiAoZyA+IDAgJiYgZ3JvdXBpbmdTaXplMiA+IDAgJiYgZ3JvdXBpbmdTaXplMiAhPSBncm91cGluZ1NpemUpIHsKKyAgICAgICAgICAgICAgICBnICs9IGdyb3VwaW5nU2l6ZTI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgbWF4SW50RGlnID0gdXNlRXhwb25lbnRpYWxOb3RhdGlvbiA/IGdldE1heGltdW1JbnRlZ2VyRGlnaXRzKCkgOgorICAgICAgICAgICAgICAgIChNYXRoLm1heChNYXRoLm1heChnLCBnZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcm91bmRpbmdEZWNpbWFsUG9zKSArIDEpOworICAgICAgICAgICAgZm9yIChpID0gbWF4SW50RGlnOyBpID4gMDsgLS1pKSB7CisgICAgICAgICAgICAgICAgaWYgKCF1c2VFeHBvbmVudGlhbE5vdGF0aW9uICYmIGk8bWF4SW50RGlnICYmCisgICAgICAgICAgICAgICAgICAgIGlzR3JvdXBpbmdQb3NpdGlvbihpKSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGdyb3VwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHJvdW5kaW5nRGlnaXRzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHBvcyA9IHJvdW5kaW5nRGVjaW1hbFBvcyAtIGk7CisgICAgICAgICAgICAgICAgICAgIGlmIChwb3MgPj0gMCAmJiBwb3MgPCByb3VuZGluZ0RpZ2l0cy5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgoY2hhcikgKHJvdW5kaW5nRGlnaXRzLmNoYXJBdChwb3MpIC0gJzAnICsgemVybykpOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChpPD1nZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpID8gemVybyA6IGRpZ2l0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChnZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoKSA+IDAgfHwgZGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChsb2NhbGl6ZWQgPyBzeW1ib2xzLmdldERlY2ltYWxTZXBhcmF0b3IoKSA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQVRURVJOX0RFQ0lNQUxfU0VQQVJBVE9SKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBwb3MgPSByb3VuZGluZ0RlY2ltYWxQb3M7CisgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCk7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChyb3VuZGluZ0RpZ2l0cyAhPSBudWxsICYmCisgICAgICAgICAgICAgICAgICAgIHBvcyA8IHJvdW5kaW5nRGlnaXRzLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocG9zIDwgMCA/IHplcm8gOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKSAocm91bmRpbmdEaWdpdHMuY2hhckF0KHBvcykgLSAnMCcgKyB6ZXJvKSk7CisgICAgICAgICAgICAgICAgICAgICsrcG9zOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChpPGdldE1pbmltdW1GcmFjdGlvbkRpZ2l0cygpID8gemVybyA6IGRpZ2l0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh1c2VFeHBvbmVudGlhbE5vdGF0aW9uKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChsb2NhbGl6ZWQgPyBzeW1ib2xzLmdldEV4cG9uZW50U2VwYXJhdG9yKCkgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEFUVEVSTl9FWFBPTkVOVCk7CisgICAgICAgICAgICAgICAgaWYgKGV4cG9uZW50U2lnbkFsd2F5c1Nob3duKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQobG9jYWxpemVkID8gc3ltYm9scy5nZXRQbHVzU2lnbigpIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQVRURVJOX1BMVVNfU0lHTik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZvciAoaT0wOyBpPG1pbkV4cG9uZW50RGlnaXRzOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCh6ZXJvKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAocGFkU3BlYyAhPSBudWxsICYmICF1c2VFeHBvbmVudGlhbE5vdGF0aW9uKSB7CisgICAgICAgICAgICAgICAgaW50IGFkZCA9IGZvcm1hdFdpZHRoIC0gcmVzdWx0Lmxlbmd0aCgpICsgc3ViMFN0YXJ0CisgICAgICAgICAgICAgICAgICAgIC0gKChwYXJ0ID09IDApCisgICAgICAgICAgICAgICAgICAgICAgID8gcG9zaXRpdmVQcmVmaXgubGVuZ3RoKCkgKyBwb3NpdGl2ZVN1ZmZpeC5sZW5ndGgoKQorICAgICAgICAgICAgICAgICAgICAgICA6IG5lZ2F0aXZlUHJlZml4Lmxlbmd0aCgpICsgbmVnYXRpdmVTdWZmaXgubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIHdoaWxlIChhZGQgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5pbnNlcnQoc3ViMFN0YXJ0LCBkaWdpdCk7CisgICAgICAgICAgICAgICAgICAgICsrbWF4SW50RGlnOworICAgICAgICAgICAgICAgICAgICAtLWFkZDsKKyAgICAgICAgICAgICAgICAgICAgLy8gT25seSBhZGQgYSBncm91cGluZyBzZXBhcmF0b3IgaWYgd2UgaGF2ZSBhdCBsZWFzdAorICAgICAgICAgICAgICAgICAgICAvLyAyIGFkZGl0aW9uYWwgY2hhcmFjdGVycyB0byBiZSBhZGRlZCwgc28gd2UgZG9uJ3QKKyAgICAgICAgICAgICAgICAgICAgLy8gZW5kIHVwIHdpdGggIiwjIyMiLgorICAgICAgICAgICAgICAgICAgICBpZiAoYWRkPjEgJiYgaXNHcm91cGluZ1Bvc2l0aW9uKG1heEludERpZykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5pbnNlcnQoc3ViMFN0YXJ0LCBncm91cCk7CisgICAgICAgICAgICAgICAgICAgICAgICAtLWFkZDsgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChwYWRQb3MgPT0gUEFEX0JFRk9SRV9TVUZGSVgpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHBhZFNwZWMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHBhcnQgPT0gMCkgeworICAgICAgICAgICAgICAgIC8qIFVzZSBvcmlnaW5hbCBzeW1ib2xzIHJlYWQgZnJvbSByZXNvdXJjZXMgaW4gcGF0dGVybgorICAgICAgICAgICAgICAgICAqIGVnLiB1c2UgIlx1MDBBNCIgaW5zdGVhZCBvZiAiJCIgaW4gTG9jYWxlLlVTIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBhcHBlbmRBZmZpeChyZXN1bHQsIHBvc1N1ZmZpeFBhdHRlcm4sIGxvY2FsaXplZCk7CisgICAgICAgICAgICAgICAgaWYgKHBhZFBvcyA9PSBQQURfQUZURVJfU1VGRklYKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocGFkU3BlYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChuZWdhdGl2ZVN1ZmZpeC5lcXVhbHMocG9zaXRpdmVTdWZmaXgpICYmCisgICAgICAgICAgICAgICAgICAgIG5lZ2F0aXZlUHJlZml4LmVxdWFscyhzeW1ib2xzLmdldE1pbnVzU2lnbigpICsgcG9zaXRpdmVQcmVmaXgpKSB7CisgICAgICAgICAgICAgICAgICAgIHBhcnQgPSAyOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQobG9jYWxpemVkID8gc3ltYm9scy5nZXRQYXR0ZXJuU2VwYXJhdG9yKCkgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBBVFRFUk5fU0VQQVJBVE9SKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGFwcGVuZEFmZml4KHJlc3VsdCwgbmVnU3VmZml4UGF0dGVybiwgbG9jYWxpemVkKTsKKyAgICAgICAgICAgICAgICBpZiAocGFkUG9zID09IFBBRF9BRlRFUl9TVUZGSVgpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChwYWRTcGVjKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFwcGx5IHRoZSBnaXZlbiBwYXR0ZXJuIHRvIHRoaXMgRm9ybWF0IG9iamVjdC4gIEEgcGF0dGVybiBpcyBhCisgICAgICogc2hvcnQtaGFuZCBzcGVjaWZpY2F0aW9uIGZvciB0aGUgdmFyaW91cyBmb3JtYXR0aW5nIHByb3BlcnRpZXMuCisgICAgICogVGhlc2UgcHJvcGVydGllcyBjYW4gYWxzbyBiZSBjaGFuZ2VkIGluZGl2aWR1YWxseSB0aHJvdWdoIHRoZQorICAgICAqIHZhcmlvdXMgc2V0dGVyIG1ldGhvZHMuCisgICAgICogPHA+CisgICAgICogVGhlcmUgaXMgbm8gbGltaXQgdG8gaW50ZWdlciBkaWdpdHMgYXJlIHNldAorICAgICAqIGJ5IHRoaXMgcm91dGluZSwgc2luY2UgdGhhdCBpcyB0aGUgdHlwaWNhbCBlbmQtdXNlciBkZXNpcmU7CisgICAgICogdXNlIHNldE1heGltdW1JbnRlZ2VyIGlmIHlvdSB3YW50IHRvIHNldCBhIHJlYWwgdmFsdWUuCisgICAgICogRm9yIG5lZ2F0aXZlIG51bWJlcnMsIHVzZSBhIHNlY29uZCBwYXR0ZXJuLCBzZXBhcmF0ZWQgYnkgYSBzZW1pY29sb24KKyAgICAgKiA8UD5FeGFtcGxlICIjLCMwMC4wIyIgLT4gMSwyMzQuNTYKKyAgICAgKiA8UD5UaGlzIG1lYW5zIGEgbWluaW11bSBvZiAyIGludGVnZXIgZGlnaXRzLCAxIGZyYWN0aW9uIGRpZ2l0LCBhbmQKKyAgICAgKiBhIG1heGltdW0gb2YgMiBmcmFjdGlvbiBkaWdpdHMuCisgICAgICogPHA+RXhhbXBsZTogIiMsIzAwLjAjOygjLCMwMC4wIykiIGZvciBuZWdhdGl2ZXMgaW4gcGFyZW50aGVzZXMuCisgICAgICogPHA+SW4gbmVnYXRpdmUgcGF0dGVybnMsIHRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIGNvdW50cyBhcmUgaWdub3JlZDsKKyAgICAgKiB0aGVzZSBhcmUgcHJlc3VtZWQgdG8gYmUgc2V0IGluIHRoZSBwb3NpdGl2ZSBwYXR0ZXJuLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFwcGx5UGF0dGVybiggU3RyaW5nIHBhdHRlcm4gKSB7CisgICAgICAgIGFwcGx5UGF0dGVybiggcGF0dGVybiwgZmFsc2UgKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBcHBseSB0aGUgZ2l2ZW4gcGF0dGVybiB0byB0aGlzIEZvcm1hdCBvYmplY3QuICBUaGUgcGF0dGVybgorICAgICAqIGlzIGFzc3VtZWQgdG8gYmUgaW4gYSBsb2NhbGl6ZWQgbm90YXRpb24uIEEgcGF0dGVybiBpcyBhCisgICAgICogc2hvcnQtaGFuZCBzcGVjaWZpY2F0aW9uIGZvciB0aGUgdmFyaW91cyBmb3JtYXR0aW5nIHByb3BlcnRpZXMuCisgICAgICogVGhlc2UgcHJvcGVydGllcyBjYW4gYWxzbyBiZSBjaGFuZ2VkIGluZGl2aWR1YWxseSB0aHJvdWdoIHRoZQorICAgICAqIHZhcmlvdXMgc2V0dGVyIG1ldGhvZHMuCisgICAgICogPHA+CisgICAgICogVGhlcmUgaXMgbm8gbGltaXQgdG8gaW50ZWdlciBkaWdpdHMgYXJlIHNldAorICAgICAqIGJ5IHRoaXMgcm91dGluZSwgc2luY2UgdGhhdCBpcyB0aGUgdHlwaWNhbCBlbmQtdXNlciBkZXNpcmU7CisgICAgICogdXNlIHNldE1heGltdW1JbnRlZ2VyIGlmIHlvdSB3YW50IHRvIHNldCBhIHJlYWwgdmFsdWUuCisgICAgICogRm9yIG5lZ2F0aXZlIG51bWJlcnMsIHVzZSBhIHNlY29uZCBwYXR0ZXJuLCBzZXBhcmF0ZWQgYnkgYSBzZW1pY29sb24KKyAgICAgKiA8UD5FeGFtcGxlICIjLCMwMC4wIyIgLT4gMSwyMzQuNTYKKyAgICAgKiA8UD5UaGlzIG1lYW5zIGEgbWluaW11bSBvZiAyIGludGVnZXIgZGlnaXRzLCAxIGZyYWN0aW9uIGRpZ2l0LCBhbmQKKyAgICAgKiBhIG1heGltdW0gb2YgMiBmcmFjdGlvbiBkaWdpdHMuCisgICAgICogPHA+RXhhbXBsZTogIiMsIzAwLjAjOygjLCMwMC4wIykiIGZvciBuZWdhdGl2ZXMgaW4gcGFyYW50aGVzZXMuCisgICAgICogPHA+SW4gbmVnYXRpdmUgcGF0dGVybnMsIHRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIGNvdW50cyBhcmUgaWdub3JlZDsKKyAgICAgKiB0aGVzZSBhcmUgcHJlc3VtZWQgdG8gYmUgc2V0IGluIHRoZSBwb3NpdGl2ZSBwYXR0ZXJuLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFwcGx5TG9jYWxpemVkUGF0dGVybiggU3RyaW5nIHBhdHRlcm4gKSB7CisgICAgICAgIGFwcGx5UGF0dGVybiggcGF0dGVybiwgdHJ1ZSApOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPkNIQU5HRUQ8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogRG9lcyB0aGUgcmVhbCB3b3JrIG9mIGFwcGx5aW5nIGEgcGF0dGVybi4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgYXBwbHlQYXR0ZXJuKFN0cmluZyBwYXR0ZXJuLCBib29sZWFuIGxvY2FsaXplZCkgeworICAgICAgICBjaGFyIHplcm9EaWdpdCAgICAgICAgID0gUEFUVEVSTl9aRVJPX0RJR0lUOworICAgICAgICBjaGFyIGdyb3VwaW5nU2VwYXJhdG9yID0gUEFUVEVSTl9HUk9VUElOR19TRVBBUkFUT1I7CisgICAgICAgIGNoYXIgZGVjaW1hbFNlcGFyYXRvciAgPSBQQVRURVJOX0RFQ0lNQUxfU0VQQVJBVE9SOworICAgICAgICBjaGFyIHBlcmNlbnQgICAgICAgICAgID0gUEFUVEVSTl9QRVJDRU5UOworICAgICAgICBjaGFyIHBlck1pbGwgICAgICAgICAgID0gUEFUVEVSTl9QRVJfTUlMTEU7CisgICAgICAgIGNoYXIgZGlnaXQgICAgICAgICAgICAgPSBQQVRURVJOX0RJR0lUOworICAgICAgICBjaGFyIHNlcGFyYXRvciAgICAgICAgID0gUEFUVEVSTl9TRVBBUkFUT1I7CisgICAgICAgIFN0cmluZyBleHBvbmVudCAgICAgICAgPSBQQVRURVJOX0VYUE9ORU5UOworICAgICAgICBjaGFyIHBsdXMgICAgICAgICAgICAgID0gUEFUVEVSTl9QTFVTX1NJR047CisgICAgICAgIGNoYXIgcGFkRXNjYXBlICAgICAgICAgPSBQQVRURVJOX1BBRF9FU0NBUEU7CisgICAgICAgIGNoYXIgbWludXMgICAgICAgICAgICAgPSBQQVRURVJOX01JTlVTOyAvL0J1ZyA0MjEyMDcyIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgaWYgKGxvY2FsaXplZCkgeworICAgICAgICAgICAgemVyb0RpZ2l0ICAgICAgICAgPSBzeW1ib2xzLmdldFplcm9EaWdpdCgpOworICAgICAgICAgICAgZ3JvdXBpbmdTZXBhcmF0b3IgPSBzeW1ib2xzLmdldEdyb3VwaW5nU2VwYXJhdG9yKCk7CisgICAgICAgICAgICBkZWNpbWFsU2VwYXJhdG9yICA9IHN5bWJvbHMuZ2V0RGVjaW1hbFNlcGFyYXRvcigpOworICAgICAgICAgICAgcGVyY2VudCAgICAgICAgICAgPSBzeW1ib2xzLmdldFBlcmNlbnQoKTsKKyAgICAgICAgICAgIHBlck1pbGwgICAgICAgICAgID0gc3ltYm9scy5nZXRQZXJNaWxsKCk7CisgICAgICAgICAgICBkaWdpdCAgICAgICAgICAgICA9IHN5bWJvbHMuZ2V0RGlnaXQoKTsKKyAgICAgICAgICAgIHNlcGFyYXRvciAgICAgICAgID0gc3ltYm9scy5nZXRQYXR0ZXJuU2VwYXJhdG9yKCk7CisgICAgICAgICAgICBleHBvbmVudCAgICAgICAgICA9IHN5bWJvbHMuZ2V0RXhwb25lbnRTZXBhcmF0b3IoKTsKKyAgICAgICAgICAgIHBsdXMgICAgICAgICAgICAgID0gc3ltYm9scy5nZXRQbHVzU2lnbigpOworICAgICAgICAgICAgcGFkRXNjYXBlICAgICAgICAgPSBzeW1ib2xzLmdldFBhZEVzY2FwZSgpOworICAgICAgICAgICAgbWludXMgICAgICAgICAgICAgPSBzeW1ib2xzLmdldE1pbnVzU2lnbigpOyAvL0J1ZyA0MjEyMDcyIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgfQorICAgICAgICBjaGFyIG5pbmVEaWdpdCA9IChjaGFyKSAoemVyb0RpZ2l0ICsgOSk7CisKKyAgICAgICAgYm9vbGVhbiBnb3ROZWdhdGl2ZSA9IGZhbHNlOworCisgICAgICAgIGludCBwb3MgPSAwOworICAgICAgICAvLyBQYXJ0IDAgaXMgdGhlIHBvc2l0aXZlIHBhdHRlcm4uICBQYXJ0IDEsIGlmIHByZXNlbnQsIGlzIHRoZSBuZWdhdGl2ZQorICAgICAgICAvLyBwYXR0ZXJuLgorICAgICAgICBmb3IgKGludCBwYXJ0PTA7IHBhcnQ8MiAmJiBwb3M8cGF0dGVybi5sZW5ndGgoKTsgKytwYXJ0KSB7CisgICAgICAgICAgICAvLyBUaGUgc3VicGFydCByYW5nZXMgZnJvbSAwIHRvIDQ6IDA9cGF0dGVybiBwcm9wZXIsIDE9cHJlZml4LAorICAgICAgICAgICAgLy8gMj1zdWZmaXgsIDM9cHJlZml4IGluIHF1b3RlLCA0PXN1ZmZpeCBpbiBxdW90ZS4gIFN1YnBhcnQgMCBpcworICAgICAgICAgICAgLy8gYmV0d2VlbiB0aGUgcHJlZml4IGFuZCBzdWZmaXgsIGFuZCBjb25zaXN0cyBvZiBwYXR0ZXJuCisgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzLiAgSW4gdGhlIHByZWZpeCBhbmQgc3VmZml4LCBwZXJjZW50LCBwZXJtaWxsZSwgYW5kCisgICAgICAgICAgICAvLyBjdXJyZW5jeSBzeW1ib2xzIGFyZSByZWNvZ25pemVkIGFuZCB0cmFuc2xhdGVkLgorICAgICAgICAgICAgaW50IHN1YnBhcnQgPSAxLCBzdWIwU3RhcnQgPSAwLCBzdWIwTGltaXQgPSAwLCBzdWIyTGltaXQgPSAwOworCisgICAgICAgICAgICAvLyBJdCdzIGltcG9ydGFudCB0aGF0IHdlIGRvbid0IGNoYW5nZSBhbnkgZmllbGRzIG9mIHRoaXMgb2JqZWN0CisgICAgICAgICAgICAvLyBwcmVtYXR1cmVseS4gIFdlIHNldCB0aGUgZm9sbG93aW5nIHZhcmlhYmxlcyBmb3IgdGhlIG11bHRpcGxpZXIsCisgICAgICAgICAgICAvLyBncm91cGluZywgZXRjLiwgYW5kIHRoZW4gb25seSBjaGFuZ2UgdGhlIGFjdHVhbCBvYmplY3QgZmllbGRzIGlmCisgICAgICAgICAgICAvLyBldmVyeXRoaW5nIHBhcnNlcyBjb3JyZWN0bHkuICBUaGlzIGFsc28gbGV0cyB1cyByZWdpc3RlcgorICAgICAgICAgICAgLy8gdGhlIGRhdGEgZnJvbSBwYXJ0IDAgYW5kIGlnbm9yZSB0aGUgcGFydCAxLCBleGNlcHQgZm9yIHRoZQorICAgICAgICAgICAgLy8gcHJlZml4IGFuZCBzdWZmaXguCisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcHJlZml4ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHN1ZmZpeCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGludCBkZWNpbWFsUG9zID0gLTE7CisgICAgICAgICAgICBpbnQgbXVsdGlwbGllciA9IDE7CisgICAgICAgICAgICBpbnQgZGlnaXRMZWZ0Q291bnQgPSAwLCB6ZXJvRGlnaXRDb3VudCA9IDAsIGRpZ2l0UmlnaHRDb3VudCA9IDA7CisgICAgICAgICAgICBieXRlIGdyb3VwaW5nQ291bnQgPSAtMTsKKyAgICAgICAgICAgIGJ5dGUgZ3JvdXBpbmdDb3VudDIgPSAtMTsKKyAgICAgICAgICAgIGludCBwYWRQb3MgPSAtMTsKKyAgICAgICAgICAgIGNoYXIgcGFkQ2hhciA9IDA7CisgICAgICAgICAgICBpbnQgaW5jcmVtZW50UG9zID0gLTE7CisgICAgICAgICAgICBsb25nIGluY3JlbWVudFZhbCA9IDA7CisgICAgICAgICAgICBieXRlIGV4cERpZ2l0cyA9IC0xOworICAgICAgICAgICAgYm9vbGVhbiBleHBTaWduQWx3YXlzID0gZmFsc2U7CisgICAgICAgICAgICBib29sZWFuIGlzQ3VycmVuY3kgPSBmYWxzZTsKKworICAgICAgICAgICAgLy8gVGhlIGFmZml4IGlzIGVpdGhlciB0aGUgcHJlZml4IG9yIHRoZSBzdWZmaXguCisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYWZmaXggPSBwcmVmaXg7CisKKyAgICAgICAgICAgIGludCBzdGFydCA9IHBvczsKKworICAgICAgICBQQVJUTE9PUDoKKyAgICAgICAgICAgIGZvciAoOyBwb3MgPCBwYXR0ZXJuLmxlbmd0aCgpOyArK3BvcykgeworICAgICAgICAgICAgICAgIGNoYXIgY2ggPSBwYXR0ZXJuLmNoYXJBdChwb3MpOworICAgICAgICAgICAgICAgIHN3aXRjaCAoc3VicGFydCkgeworICAgICAgICAgICAgICAgIGNhc2UgMDogLy8gUGF0dGVybiBwcm9wZXIgc3VicGFydCAoYmV0d2VlbiBwcmVmaXggJiBzdWZmaXgpCisgICAgICAgICAgICAgICAgICAgIC8vIFByb2Nlc3MgdGhlIGRpZ2l0cywgZGVjaW1hbCwgYW5kIGdyb3VwaW5nIGNoYXJhY3RlcnMuICBXZQorICAgICAgICAgICAgICAgICAgICAvLyByZWNvcmQgZml2ZSBwaWVjZXMgb2YgaW5mb3JtYXRpb24uICBXZSBleHBlY3QgdGhlIGRpZ2l0cworICAgICAgICAgICAgICAgICAgICAvLyB0byBvY2N1ciBpbiB0aGUgcGF0dGVybiAjIyMjMDAuMDAjIyMjLCBhbmQgd2UgcmVjb3JkIHRoZQorICAgICAgICAgICAgICAgICAgICAvLyBudW1iZXIgb2YgbGVmdCBkaWdpdHMsIHplcm8gKGNlbnRyYWwpIGRpZ2l0cywgYW5kIHJpZ2h0CisgICAgICAgICAgICAgICAgICAgIC8vIGRpZ2l0cy4gIFRoZSBwb3NpdGlvbiBvZiB0aGUgbGFzdCBncm91cGluZyBjaGFyYWN0ZXIgaXMKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVjb3JkZWQgKHNob3VsZCBiZSBzb21ld2hlcmUgd2l0aGluIHRoZSBmaXJzdCB0d28gYmxvY2tzCisgICAgICAgICAgICAgICAgICAgIC8vIG9mIGNoYXJhY3RlcnMpLCBhcyBpcyB0aGUgcG9zaXRpb24gb2YgdGhlIGRlY2ltYWwgcG9pbnQsCisgICAgICAgICAgICAgICAgICAgIC8vIGlmIGFueSAoc2hvdWxkIGJlIGluIHRoZSB6ZXJvIGRpZ2l0cykuICBJZiB0aGVyZSBpcyBubworICAgICAgICAgICAgICAgICAgICAvLyBkZWNpbWFsIHBvaW50LCB0aGVuIHRoZXJlIHNob3VsZCBiZSBubyByaWdodCBkaWdpdHMuCisgICAgICAgICAgICAgICAgICAgIGlmIChjaCA9PSBkaWdpdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHplcm9EaWdpdENvdW50ID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrZGlnaXRSaWdodENvdW50OworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK2RpZ2l0TGVmdENvdW50OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGdyb3VwaW5nQ291bnQgPj0gMCAmJiBkZWNpbWFsUG9zIDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrZ3JvdXBpbmdDb3VudDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA+PSB6ZXJvRGlnaXQgJiYgY2ggPD0gbmluZURpZ2l0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGlnaXRSaWdodENvdW50ID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbmV4cGVjdGVkICcwJyBpbiBwYXR0ZXJuIFwiIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm4gKyAnIicpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgKyt6ZXJvRGlnaXRDb3VudDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChncm91cGluZ0NvdW50ID49IDAgJiYgZGVjaW1hbFBvcyA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK2dyb3VwaW5nQ291bnQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2ggIT0gemVyb0RpZ2l0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHAgPSBkaWdpdExlZnRDb3VudCArIHplcm9EaWdpdENvdW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgZGlnaXRSaWdodENvdW50OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbmNyZW1lbnRQb3MgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoaW5jcmVtZW50UG9zIDwgcCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jcmVtZW50VmFsICo9IDEwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytpbmNyZW1lbnRQb3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNyZW1lbnRQb3MgPSBwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNyZW1lbnRWYWwgKz0gY2ggLSB6ZXJvRGlnaXQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2ggPT0gZ3JvdXBpbmdTZXBhcmF0b3IpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qQnVnIDQyMTIwNzIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2VzcyB0aGUgTG9jYWxpemVkIHBhdHRlcm4gbGlrZSAiJ0ZyLiAnIycjIzAuMDU7J0ZyLi0nIycjIzAuMDUiCisgICAgICAgICAgICAgICAgICAgICAgICAgIChMb2NhbGU9IkNIIiwgZ3JvdXBpbmdTZXBhcmF0b3IgPT0gUVVPVEUpICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgW1JpY2hhcmQvR0NMXQorICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgocG9zICsgMSkgPCBwYXR0ZXJuLmxlbmd0aCgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgISgocGF0dGVybi5jaGFyQXQocG9zICsxKSA9PSBkaWdpdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAoKHBhdHRlcm4uY2hhckF0KHBvcyArMSkgPj0gemVyb0RpZ2l0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAocGF0dGVybi5jaGFyQXQocG9zICsgMSkgPD0gbmluZURpZ2l0KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICApKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNoID09IFFVT1RFKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEEgcXVvdGUgb3V0c2lkZSBxdW90ZXMgaW5kaWNhdGVzIGVpdGhlciB0aGUgb3BlbmluZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBxdW90ZSBvciB0d28gcXVvdGVzLCB3aGljaCBpcyBhIHF1b3RlIGxpdGVyYWwuICBUaGF0IGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBoYXZlIHRoZSBmaXJzdCBxdW90ZSBpbiAnZG8nIG9yIG8nJ2Nsb2NrLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHBvcysxKSA8IHBhdHRlcm4ubGVuZ3RoKCkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm4uY2hhckF0KHBvcysxKSA9PSBRVU9URSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytwb3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGYWxsIHRocm91Z2ggdG8gYXBwZW5kKGNoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGdyb3VwaW5nQ291bnQgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VicGFydCArPSAzOyAvLyBvcGVuIHF1b3RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRyYW5zaXRpb24gdG8gc3VmZml4IHN1YnBhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJwYXJ0ID0gMjsgLy8gc3VmZml4IHN1YnBhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZmZpeCA9IHN1ZmZpeDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWIwTGltaXQgPSBwb3MtLTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGVjaW1hbFBvcyA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJHcm91cGluZyBzZXBhcmF0b3IgYWZ0ZXIgZGVjaW1hbCBpbiBwYXR0ZXJuIFwiIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuICsgJyInKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwaW5nQ291bnQyID0gZ3JvdXBpbmdDb3VudDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwaW5nQ291bnQgPSAwOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09IGRlY2ltYWxTZXBhcmF0b3IpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkZWNpbWFsUG9zID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk11bHRpcGxlIGRlY2ltYWwgc2VwYXJhdG9ycyBpbiBwYXR0ZXJuIFwiIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuICsgJyInKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEludGVudGlvbmFsbHkgaW5jb3Jwb3JhdGUgdGhlIGRpZ2l0UmlnaHRDb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGV2ZW4gdGhvdWdoIGl0IGlzIGlsbGVnYWwgZm9yIHRoaXMgdG8gYmUgPiAwCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBhdCB0aGlzIHBvaW50LiAgV2UgY2hlY2sgcGF0dGVybiBzeW50YXggYmVsb3cuCisgICAgICAgICAgICAgICAgICAgICAgICBkZWNpbWFsUG9zID0gZGlnaXRMZWZ0Q291bnQgKyB6ZXJvRGlnaXRDb3VudCArIGRpZ2l0UmlnaHRDb3VudDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXR0ZXJuLnJlZ2lvbk1hdGNoZXMocG9zLCBleHBvbmVudCwgMCwgZXhwb25lbnQubGVuZ3RoKCkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV4cERpZ2l0cyA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk11bHRpcGxlIGV4cG9uZW50aWFsICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzeW1ib2xzIGluIHBhdHRlcm4gXCIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuICsgJyInKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGdyb3VwaW5nQ291bnQgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJHcm91cGluZyBzZXBhcmF0b3IgaW4gZXhwb25lbnRpYWwgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBhdHRlcm4gXCIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuICsgJyInKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgZm9yIHBvc2l0aXZlIHByZWZpeAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgocG9zKzEpIDwgcGF0dGVybi5sZW5ndGgoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBwYXR0ZXJuLmNoYXJBdChwb3MrMSkgPT0gcGx1cykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBTaWduQWx3YXlzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytwb3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVzZSBsb29rYWhlYWQgdG8gcGFyc2Ugb3V0IHRoZSBleHBvbmVudGlhbCBwYXJ0IG9mIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHBhdHRlcm4sIHRoZW4ganVtcCBpbnRvIHN1ZmZpeCBzdWJwYXJ0LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cERpZ2l0cyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCsrcG9zIDwgcGF0dGVybi5sZW5ndGgoKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuLmNoYXJBdChwb3MpID09IHplcm9EaWdpdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArK2V4cERpZ2l0czsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChkaWdpdExlZnRDb3VudCArIHplcm9EaWdpdENvdW50KSA8IDEgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwRGlnaXRzIDwgMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNYWxmb3JtZWQgZXhwb25lbnRpYWwgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBhdHRlcm4gXCIiICsgcGF0dGVybiArICciJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gVHJhbnNpdGlvbiB0byBzdWZmaXggc3VicGFydAorICAgICAgICAgICAgICAgICAgICAgICAgc3VicGFydCA9IDI7IC8vIHN1ZmZpeCBzdWJwYXJ0CisgICAgICAgICAgICAgICAgICAgICAgICBhZmZpeCA9IHN1ZmZpeDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1YjBMaW1pdCA9IHBvcy0tOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAxOiAvLyBQcmVmaXggc3VicGFydAorICAgICAgICAgICAgICAgIGNhc2UgMjogLy8gU3VmZml4IHN1YnBhcnQKKyAgICAgICAgICAgICAgICAgICAgLy8gUHJvY2VzcyB0aGUgcHJlZml4IC8gc3VmZml4IGNoYXJhY3RlcnMKKyAgICAgICAgICAgICAgICAgICAgLy8gUHJvY2VzcyB1bnF1b3RlZCBjaGFyYWN0ZXJzIHNlZW4gaW4gcHJlZml4IG9yIHN1ZmZpeAorICAgICAgICAgICAgICAgICAgICAvLyBzdWJwYXJ0LgorICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPT0gZGlnaXQgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoID09IGdyb3VwaW5nU2VwYXJhdG9yIHx8CisgICAgICAgICAgICAgICAgICAgICAgICBjaCA9PSBkZWNpbWFsU2VwYXJhdG9yIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAoY2ggPj0gemVyb0RpZ2l0ICYmIGNoIDw9IG5pbmVEaWdpdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFueSBvZiB0aGVzZSBjaGFyYWN0ZXJzIGltcGxpY2l0bHkgYmVnaW5zIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gbmV4dCBzdWJwYXJ0IGlmIHdlIGFyZSBpbiB0aGUgcHJlZml4CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3VicGFydCA9PSAxKSB7IC8vIHByZWZpeCBzdWJwYXJ0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VicGFydCA9IDA7IC8vIHBhdHRlcm4gcHJvcGVyIHN1YnBhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWIwU3RhcnQgPSBwb3MtLTsgLy8gUmVwcm9jZXNzIHRoaXMgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09IFFVT1RFKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypCdWcgNDIxMjA3MgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2VzcyB0aGUgTG9jYWxpemVkIHBhdHRlcm4gbGlrZSAiJ0ZyLiAnIycjIzAuMDU7J0ZyLi0nIycjIzAuMDUiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTG9jYWxlPSJDSCIsIGdyb3VwaW5nU2VwYXJhdG9yID09IFFVT1RFKSAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbUmljaGFyZC9HQ0xdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBIHF1b3RlIG91dHNpZGUgcXVvdGVzIGluZGljYXRlcyBlaXRoZXIgdGhlIG9wZW5pbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBxdW90ZSBvciB0d28gcXVvdGVzLCB3aGljaCBpcyBhIHF1b3RlIGxpdGVyYWwuICBUaGF0IGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGhhdmUgdGhlIGZpcnN0IHF1b3RlIGluICdkbycgb3IgbycnY2xvY2suCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChwb3MrMSkgPCBwYXR0ZXJuLmxlbmd0aCgpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm4uY2hhckF0KHBvcysxKSA9PSBRVU9URSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3BvczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmFsbCB0aHJvdWdoIHRvIGFwcGVuZChjaCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJwYXJ0ICs9IDI7IC8vIG9wZW4gcXVvdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmFsbCB0aHJvdWdoIHRvIGFwcGVuZChjaCkKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PSBDVVJSRU5DWV9TSUdOKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBVc2UgbG9va2FoZWFkIHRvIGRldGVybWluZSBpZiB0aGUgY3VycmVuY3kgc2lnbiBpcworICAgICAgICAgICAgICAgICAgICAgICAgLy8gZG91YmxlZCBvciBub3QuCisgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGRvdWJsZWQgPSAocG9zICsgMSkgPCBwYXR0ZXJuLmxlbmd0aCgpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybi5jaGFyQXQocG9zICsgMSkgPT0gQ1VSUkVOQ1lfU0lHTjsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qQnVnIDQyMTIwNzIKKyAgICAgICAgICAgICAgICAgICAgICAgICBUbyBtZWV0IHRoZSBuZWVkIG9mIGV4cGFuZEFmZml4KFN0cmluZywgU3Rpcm5nQnVmZmVyKQorICAgICAgICAgICAgICAgICAgICAgICAgIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICBhZmZpeC5hcHBlbmQoZG91YmxlZCA/ICJcdTAwQTRcdTAwQTQiIDogIlx1MDBBNCIpOyAKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkb3VibGVkKSArK3BvczsgLy8gU2tpcCBvdmVyIHRoZSBkb3VibGVkIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICAgICAgICAgaXNDdXJyZW5jeSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PSBRVU9URSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gQSBxdW90ZSBvdXRzaWRlIHF1b3RlcyBpbmRpY2F0ZXMgZWl0aGVyIHRoZSBvcGVuaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBxdW90ZSBvciB0d28gcXVvdGVzLCB3aGljaCBpcyBhIHF1b3RlIGxpdGVyYWwuICBUaGF0IGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgaGF2ZSB0aGUgZmlyc3QgcXVvdGUgaW4gJ2RvJyBvciBvJydjbG9jay4KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgocG9zKzEpIDwgcGF0dGVybi5sZW5ndGgoKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm4uY2hhckF0KHBvcysxKSA9PSBRVU9URSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrcG9zOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZhbGwgdGhyb3VnaCB0byBhcHBlbmQoY2gpCisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnBhcnQgKz0gMjsgLy8gb3BlbiBxdW90ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09IHNlcGFyYXRvcikgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRG9uJ3QgYWxsb3cgc2VwYXJhdG9ycyBpbiB0aGUgcHJlZml4LCBhbmQgZG9uJ3QgYWxsb3cKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNlcGFyYXRvcnMgaW4gdGhlIHNlY29uZCBwYXR0ZXJuIChwYXJ0ID09IDEpLgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN1YnBhcnQgPT0gMSB8fCBwYXJ0ID09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVucXVvdGVkIHNwZWNpYWwgY2hhcmFjdGVyICciICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoICsgIicgaW4gcGF0dGVybiBcIiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybiArICciJyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBzdWIyTGltaXQgPSBwb3MrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIFBBUlRMT09QOyAvLyBHbyB0byBuZXh0IHBhcnQKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PSBwZXJjZW50IHx8IGNoID09IHBlck1pbGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5leHQgaGFuZGxlIGNoYXJhY3RlcnMgd2hpY2ggYXJlIGFwcGVuZGVkIGRpcmVjdGx5LgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG11bHRpcGxpZXIgIT0gMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVG9vIG1hbnkgcGVyY2VudC9wZXJtaWxsZSBjaGFyYWN0ZXJzICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgImluIHBhdHRlcm4gXCIiICsgcGF0dGVybiArICciJyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPT0gcGVyY2VudCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpZXIgPSAxMDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2ggPSBzeW1ib2xzLmdldFBlcmNlbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGllciA9IDEwMDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2ggPSBzeW1ib2xzLmdldFBlck1pbGwoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZhbGwgdGhyb3VnaCB0byBhcHBlbmQoY2gpCisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2ggPT0gcGFkRXNjYXBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFkUG9zID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk11bHRpcGxlIHBhZCBzcGVjaWZpZXJzIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHBvcysxKSA9PSBwYXR0ZXJuLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbnZhbGlkIHBhZCBzcGVjaWZpZXIiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHBhZFBvcyA9IHBvcysrOyAvLyBBZHZhbmNlIHBhc3QgcGFkIGNoYXIKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhZENoYXIgPSBwYXR0ZXJuLmNoYXJBdChwb3MpOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLy8gVW5xdW90ZWQsIG5vbi1zcGVjaWFsIGNoYXJhY3RlcnMgZmFsbCB0aHJvdWdoIHRvIGhlcmUsIGFzCisgICAgICAgICAgICAgICAgICAgIC8vIHdlbGwgYXMgb3RoZXIgY29kZSB3aGljaCBuZWVkcyB0byBhcHBlbmQgc29tZXRoaW5nIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICAvLyBhZmZpeC4KKyAgICAgICAgICAgICAgICAgICAgYWZmaXguYXBwZW5kKGNoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAzOiAvLyBQcmVmaXggc3VicGFydCwgaW4gcXVvdGUKKyAgICAgICAgICAgICAgICBjYXNlIDQ6IC8vIFN1ZmZpeCBzdWJwYXJ0LCBpbiBxdW90ZQorICAgICAgICAgICAgICAgICAgICAvLyBBIHF1b3RlIHdpdGhpbiBxdW90ZXMgaW5kaWNhdGVzIGVpdGhlciB0aGUgY2xvc2luZworICAgICAgICAgICAgICAgICAgICAvLyBxdW90ZSBvciB0d28gcXVvdGVzLCB3aGljaCBpcyBhIHF1b3RlIGxpdGVyYWwuICBUaGF0IGlzLAorICAgICAgICAgICAgICAgICAgICAvLyB3ZSBoYXZlIHRoZSBzZWNvbmQgcXVvdGUgaW4gJ2RvJyBvciAnZG9uJyd0Jy4KKyAgICAgICAgICAgICAgICAgICAgaWYgKGNoID09IFFVT1RFKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHBvcysxKSA8IHBhdHRlcm4ubGVuZ3RoKCkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuLmNoYXJBdChwb3MrMSkgPT0gUVVPVEUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3BvczsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmFsbCB0aHJvdWdoIHRvIGFwcGVuZChjaCkKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VicGFydCAtPSAyOyAvLyBjbG9zZSBxdW90ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8qQnVnIDQyMTIwNzIKKyAgICAgICAgICAgICAgICAgICAgICBUbyBwcm9jZXNzIHRoZSBsb2NhbGl6ZWQgcGF0dGVybiAiIywjIzAnJSciIG9mIHdoaWNoIHBlcmNlbnQgCisgICAgICAgICAgICAgICAgICAgICAgc3ltYm9sIGlzIHF1b3RlZAorICAgICAgICAgICAgICAgICAgICAgIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgaWYgKGNoID09IHBlcmNlbnQgfHwgY2ggPT0gcGVyTWlsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gTmV4dCBoYW5kbGUgY2hhcmFjdGVycyB3aGljaCBhcmUgYXBwZW5kZWQgZGlyZWN0bHkuCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobXVsdGlwbGllciAhPSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRvbyBtYW55IHBlcmNlbnQvcGVybWlsbGUgY2hhcmFjdGVycyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgImluIHBhdHRlcm4gXCIiICsgcGF0dGVybiArICciJyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPT0gcGVyY2VudCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpZXIgPSAxMDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2ggPSBzeW1ib2xzLmdldFBlcmNlbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGllciA9IDEwMDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2ggPSBzeW1ib2xzLmdldFBlck1pbGwoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBhZmZpeC5hcHBlbmQoY2gpOworICAgICAgICAgICAgICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHN1YjBMaW1pdCA9PSAwKSB7CisgICAgICAgICAgICAgICAgc3ViMExpbWl0ID0gcGF0dGVybi5sZW5ndGgoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHN1YjJMaW1pdCA9PSAwKSB7CisgICAgICAgICAgICAgICAgc3ViMkxpbWl0ID0gcGF0dGVybi5sZW5ndGgoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyogSGFuZGxlIHBhdHRlcm5zIHdpdGggbm8gJzAnIHBhdHRlcm4gY2hhcmFjdGVyLiAgVGhlc2UgcGF0dGVybnMKKyAgICAgICAgICAgICAqIGFyZSBsZWdhbCwgYnV0IG11c3QgYmUgcmVjb2RpZmllZCB0byBtYWtlIHNlbnNlLiAgIiMjLiMjIyIgLT4KKyAgICAgICAgICAgICAqICIjMC4jIyMiLiAgIi4jIyMiIC0+ICIuMCMjIi4KKyAgICAgICAgICAgICAqCisgICAgICAgICAgICAgKiBXZSBhbGxvdyBwYXR0ZXJucyBvZiB0aGUgZm9ybSAiIyMjIyIgdG8gcHJvZHVjZSBhIHplcm9EaWdpdENvdW50CisgICAgICAgICAgICAgKiBvZiB6ZXJvIChnb3QgdGhhdD8pOyBhbHRob3VnaCB0aGlzIHNlZW1zIGxpa2UgaXQgbWlnaHQgbWFrZSBpdAorICAgICAgICAgICAgICogcG9zc2libGUgZm9yIGZvcm1hdCgpIHRvIHByb2R1Y2UgZW1wdHkgc3RyaW5ncywgZm9ybWF0KCkgY2hlY2tzCisgICAgICAgICAgICAgKiBmb3IgdGhpcyBjb25kaXRpb24gYW5kIG91dHB1dHMgYSB6ZXJvIGRpZ2l0IGluIHRoaXMgc2l0dWF0aW9uLgorICAgICAgICAgICAgICogSGF2aW5nIGEgemVyb0RpZ2l0Q291bnQgb2YgemVybyB5aWVsZHMgYSBtaW5pbXVtIGludGVnZXIgZGlnaXRzCisgICAgICAgICAgICAgKiBvZiB6ZXJvLCB3aGljaCBhbGxvd3MgcHJvcGVyIHJvdW5kLXRyaXAgcGF0dGVybnMuICBXZSBkb24ndCB3YW50CisgICAgICAgICAgICAgKiAiIyIgdG8gYmVjb21lICIjMCIgd2hlbiB0b1BhdHRlcm4oKSBpcyBjYWxsZWQgKGV2ZW4gdGhvdWdoIHRoYXQncworICAgICAgICAgICAgICogd2hhdCBpdCByZWFsbHkgaXMsIHNlbWFudGljYWxseSkuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmICh6ZXJvRGlnaXRDb3VudCA9PSAwICYmIGRpZ2l0TGVmdENvdW50ID4gMCAmJiBkZWNpbWFsUG9zID49IDApIHsKKyAgICAgICAgICAgICAgICAvLyBIYW5kbGUgIiMjIy4jIyMiIGFuZCAiIyMjLiIgYW5kICIuIyMjIgorICAgICAgICAgICAgICAgIGludCBuID0gZGVjaW1hbFBvczsKKyAgICAgICAgICAgICAgICBpZiAobiA9PSAwKSArK247IC8vIEhhbmRsZSAiLiMjIyIKKyAgICAgICAgICAgICAgICBkaWdpdFJpZ2h0Q291bnQgPSBkaWdpdExlZnRDb3VudCAtIG47CisgICAgICAgICAgICAgICAgZGlnaXRMZWZ0Q291bnQgPSBuIC0gMTsKKyAgICAgICAgICAgICAgICB6ZXJvRGlnaXRDb3VudCA9IDE7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIERvIHN5bnRheCBjaGVja2luZyBvbiB0aGUgZGlnaXRzLCBkZWNpbWFsIHBvaW50cywgYW5kIHF1b3Rlcy4KKyAgICAgICAgICAgIGlmICgoZGVjaW1hbFBvcyA8IDAgJiYgZGlnaXRSaWdodENvdW50ID4gMCkgfHwKKyAgICAgICAgICAgICAgICAoZGVjaW1hbFBvcyA+PSAwICYmCisgICAgICAgICAgICAgICAgIChkZWNpbWFsUG9zIDwgZGlnaXRMZWZ0Q291bnQgfHwKKyAgICAgICAgICAgICAgICAgIGRlY2ltYWxQb3MgPiAoZGlnaXRMZWZ0Q291bnQgKyB6ZXJvRGlnaXRDb3VudCkpKSB8fAorICAgICAgICAgICAgICAgIGdyb3VwaW5nQ291bnQgPT0gMCB8fCBncm91cGluZ0NvdW50MiA9PSAwIHx8CisgICAgICAgICAgICAgICAgc3VicGFydCA+IDIpIHsgLy8gc3VicGFydCA+IDIgPT0gdW5tYXRjaGVkIHF1b3RlCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiTWFsZm9ybWVkIHBhdHRlcm4gXCIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm4gKyAnIicpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBNYWtlIHN1cmUgcGFkIGlzIGF0IGxlZ2FsIHBvc2l0aW9uIGJlZm9yZSBvciBhZnRlciBhZmZpeC4KKyAgICAgICAgICAgIGlmIChwYWRQb3MgPj0gMCkgeworICAgICAgICAgICAgICAgIGlmIChwYWRQb3MgPT0gc3RhcnQpIHsKKyAgICAgICAgICAgICAgICAgICAgcGFkUG9zID0gUEFEX0JFRk9SRV9QUkVGSVg7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwYWRQb3MrMiA9PSBzdWIwU3RhcnQpIHsKKyAgICAgICAgICAgICAgICAgICAgcGFkUG9zID0gUEFEX0FGVEVSX1BSRUZJWDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBhZFBvcyA9PSBzdWIwTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgcGFkUG9zID0gUEFEX0JFRk9SRV9TVUZGSVg7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwYWRQb3MrMiA9PSBzdWIyTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgcGFkUG9zID0gUEFEX0FGVEVSX1NVRkZJWDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIHBhZCBwb3NpdGlvbiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHBhcnQgPT0gMCkgeworICAgICAgICAgICAgICAgIC8vIFNldCBuZWdhdGl2ZSBhZmZpeGVzIHRlbXBvcmFyaWx5IHRvIG1hdGNoIHRoZSBwb3NpdGl2ZQorICAgICAgICAgICAgICAgIC8vIGFmZml4ZXMuICBGaXggdGhpcyB1cCBsYXRlciBhZnRlciBwcm9jZXNzaW5nIGJvdGggcGFydHMuCisgICAgICAgICAgICAgICAgLypCdWcgNDIxMjA3MgorICAgICAgICAgICAgICAgICAgVG8gbWVldCB0aGUgbmVlZCBvZiBleHBhbmRBZmZpeChTdHJpbmcsIFN0aXJuZ0J1ZmZlcikKKyAgICAgICAgICAgICAgICAgIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIHRoaXMucG9zUHJlZml4UGF0dGVybiA9IHRoaXMubmVnUHJlZml4UGF0dGVybiA9IHByZWZpeC50b1N0cmluZygpOworICAgICAgICAgICAgICAgIHRoaXMucG9zU3VmZml4UGF0dGVybiA9IHRoaXMubmVnU3VmZml4UGF0dGVybiA9IHN1ZmZpeC50b1N0cmluZygpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHVzZUV4cG9uZW50aWFsTm90YXRpb24gPSAoZXhwRGlnaXRzID49IDApOworICAgICAgICAgICAgICAgIGlmICh1c2VFeHBvbmVudGlhbE5vdGF0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgIG1pbkV4cG9uZW50RGlnaXRzID0gZXhwRGlnaXRzOworICAgICAgICAgICAgICAgICAgICBleHBvbmVudFNpZ25BbHdheXNTaG93biA9IGV4cFNpZ25BbHdheXM7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlzQ3VycmVuY3lGb3JtYXQgPSBpc0N1cnJlbmN5OworICAgICAgICAgICAgICAgIGludCBkaWdpdFRvdGFsQ291bnQgPSBkaWdpdExlZnRDb3VudCArIHplcm9EaWdpdENvdW50ICsgZGlnaXRSaWdodENvdW50OworICAgICAgICAgICAgICAgIC8vIFRoZSBlZmZlY3RpdmVEZWNpbWFsUG9zIGlzIHRoZSBwb3NpdGlvbiB0aGUgZGVjaW1hbCBpcyBhdCBvcgorICAgICAgICAgICAgICAgIC8vIHdvdWxkIGJlIGF0IGlmIHRoZXJlIGlzIG5vIGRlY2ltYWwuICBOb3RlIHRoYXQgaWYKKyAgICAgICAgICAgICAgICAvLyBkZWNpbWFsUG9zPDAsIHRoZW4gZGlnaXRUb3RhbENvdW50ID09IGRpZ2l0TGVmdENvdW50ICsKKyAgICAgICAgICAgICAgICAvLyB6ZXJvRGlnaXRDb3VudC4KKyAgICAgICAgICAgICAgICBpbnQgZWZmZWN0aXZlRGVjaW1hbFBvcyA9IGRlY2ltYWxQb3MgPj0gMCA/IGRlY2ltYWxQb3MgOiBkaWdpdFRvdGFsQ291bnQ7CisgICAgICAgICAgICAgICAgc2V0TWluaW11bUludGVnZXJEaWdpdHMoZWZmZWN0aXZlRGVjaW1hbFBvcyAtIGRpZ2l0TGVmdENvdW50KTsKKyAgICAgICAgICAgICAgICAvKlVwcGVyIGxpbWl0IG9uIGludGVnZXIgYW5kIGZyYWN0aW9uIGRpZ2l0cyBmb3IgYSBKYXZhIGRvdWJsZQorICAgICAgICAgICAgICAgICAgW1JpY2hhcmQvR0NMXQorICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgc2V0TWF4aW11bUludGVnZXJEaWdpdHModXNlRXhwb25lbnRpYWxOb3RhdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgPyBkaWdpdExlZnRDb3VudCArIGdldE1pbmltdW1JbnRlZ2VyRGlnaXRzKCkgOiBET1VCTEVfSU5URUdFUl9ESUdJVFMpOworICAgICAgICAgICAgICAgIHNldE1heGltdW1GcmFjdGlvbkRpZ2l0cyhkZWNpbWFsUG9zID49IDAKKyAgICAgICAgICAgICAgICAgICAgICAgID8gKGRpZ2l0VG90YWxDb3VudCAtIGRlY2ltYWxQb3MpIDogMCk7CisgICAgICAgICAgICAgICAgc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKGRlY2ltYWxQb3MgPj0gMAorICAgICAgICAgICAgICAgICAgICAgICAgPyAoZGlnaXRMZWZ0Q291bnQgKyB6ZXJvRGlnaXRDb3VudCAtIGRlY2ltYWxQb3MpIDogMCk7CisgICAgICAgICAgICAgICAgc2V0R3JvdXBpbmdVc2VkKGdyb3VwaW5nQ291bnQgPiAwKTsKKyAgICAgICAgICAgICAgICB0aGlzLmdyb3VwaW5nU2l6ZSA9IChncm91cGluZ0NvdW50ID4gMCkgPyBncm91cGluZ0NvdW50IDogMDsKKyAgICAgICAgICAgICAgICB0aGlzLmdyb3VwaW5nU2l6ZTIgPSAoZ3JvdXBpbmdDb3VudDIgPiAwICYmIGdyb3VwaW5nQ291bnQyICE9IGdyb3VwaW5nQ291bnQpCisgICAgICAgICAgICAgICAgICAgID8gZ3JvdXBpbmdDb3VudDIgOiAwOworICAgICAgICAgICAgICAgIHRoaXMubXVsdGlwbGllciA9IG11bHRpcGxpZXI7CisgICAgICAgICAgICAgICAgc2V0RGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duKGRlY2ltYWxQb3MgPT0gMAorICAgICAgICAgICAgICAgICAgICAgICAgfHwgZGVjaW1hbFBvcyA9PSBkaWdpdFRvdGFsQ291bnQpOworICAgICAgICAgICAgICAgIGlmIChwYWRQb3MgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBwYWRQb3NpdGlvbiA9IHBhZFBvczsKKyAgICAgICAgICAgICAgICAgICAgZm9ybWF0V2lkdGggPSBwcmVmaXgubGVuZ3RoKCkgKyBzdWZmaXgubGVuZ3RoKCkgKworICAgICAgICAgICAgICAgICAgICAgICAgc3ViMExpbWl0IC0gc3ViMFN0YXJ0OworICAgICAgICAgICAgICAgICAgICBwYWQgPSBwYWRDaGFyOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGZvcm1hdFdpZHRoID0gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGluY3JlbWVudFZhbCAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIEJpZ0RlY2ltYWwgc2NhbGUgY2Fubm90IGJlIG5lZ2F0aXZlIChldmVuIHRob3VnaAorICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIG1ha2VzIHBlcmZlY3Qgc2Vuc2UpLCBzbyB3ZSBuZWVkIHRvIGhhbmRsZSB0aGlzLgorICAgICAgICAgICAgICAgICAgICBpbnQgc2NhbGUgPSBpbmNyZW1lbnRQb3MgLSBlZmZlY3RpdmVEZWNpbWFsUG9zOworICAgICAgICAgICAgICAgICAgICByb3VuZGluZ0luY3JlbWVudCA9CisgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGluY3JlbWVudFZhbCwgc2NhbGUgPiAwID8gc2NhbGUgOiAwKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNjYWxlIDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcm91bmRpbmdJbmNyZW1lbnQgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdW5kaW5nSW5jcmVtZW50Lm1vdmVQb2ludFJpZ2h0KC1zY2FsZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcm91bmRpbmdEb3VibGUgPSByb3VuZGluZ0luY3JlbWVudC5kb3VibGVWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICByb3VuZGluZ01vZGUgPSBqYXZhLm1hdGguQmlnRGVjaW1hbC5ST1VORF9IQUxGX0VWRU47CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgc2V0Um91bmRpbmdJbmNyZW1lbnQobnVsbCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKkJ1ZyA0MjEyMDcyCisgICAgICAgICAgICAgICAgICBUbyBtZWV0IHRoZSBuZWVkIG9mIGV4cGFuZEFmZml4KFN0cmluZywgU3Rpcm5nQnVmZmVyKQorICAgICAgICAgICAgICAgICAgW1JpY2hhcmQvR0NMXQorICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgdGhpcy5uZWdQcmVmaXhQYXR0ZXJuID0gcHJlZml4LnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgdGhpcy5uZWdTdWZmaXhQYXR0ZXJuID0gc3VmZml4LnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgZ290TmVnYXRpdmUgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLypCdWcgNDE0MDAwOQorICAgICAgICAgIFByb2Nlc3MgdGhlIGVtcHR5IHBhdHRlcm4KKyAgICAgICAgICBbUmljaGFyZC9HQ0xdCisgICAgICAgICovCisgICAgICAgIGlmIChwYXR0ZXJuLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIHBvc1ByZWZpeFBhdHRlcm4gPSBwb3NTdWZmaXhQYXR0ZXJuID0gIiI7CisgICAgICAgICAgICBzZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygwKTsKKyAgICAgICAgICAgIHNldE1heGltdW1JbnRlZ2VyRGlnaXRzKERPVUJMRV9JTlRFR0VSX0RJR0lUUyk7CisgICAgICAgICAgICBzZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoMCk7CisgICAgICAgICAgICBzZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoRE9VQkxFX0ZSQUNUSU9OX0RJR0lUUyk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIElmIHRoZXJlIHdhcyBubyBuZWdhdGl2ZSBwYXR0ZXJuLCBvciBpZiB0aGUgbmVnYXRpdmUgcGF0dGVybiBpcworICAgICAgICAvLyBpZGVudGljYWwgdG8gdGhlIHBvc2l0aXZlIHBhdHRlcm4sIHRoZW4gcHJlcGVuZCB0aGUgbWludXMgc2lnbiB0byB0aGUKKyAgICAgICAgLy8gcG9zaXRpdmUgcGF0dGVybiB0byBmb3JtIHRoZSBuZWdhdGl2ZSBwYXR0ZXJuLgorICAgICAgICAvKkJ1ZyA0MjEyMDcyCisgICAgICAgICAgVG8gbWVldCB0aGUgbmVlZCBvZiBleHBhbmRBZmZpeChTdHJpbmcsIFN0aXJuZ0J1ZmZlcikKKyAgICAgICAgICBbUmljaGFyZC9HQ0xdCisgICAgICAgICovCisgICAgICAgIGlmICghZ290TmVnYXRpdmUgfHwKKyAgICAgICAgICAgIChuZWdQcmVmaXhQYXR0ZXJuLmVxdWFscyhwb3NQcmVmaXhQYXR0ZXJuKQorICAgICAgICAgICAgICYmIG5lZ1N1ZmZpeFBhdHRlcm4uZXF1YWxzKHBvc1N1ZmZpeFBhdHRlcm4pKSkgeworICAgICAgICAgICAgbmVnU3VmZml4UGF0dGVybiA9IHBvc1N1ZmZpeFBhdHRlcm47CisgICAgICAgICAgICBuZWdQcmVmaXhQYXR0ZXJuID0gc3ltYm9scy5nZXRNaW51c1NpZ24oKSArIHBvc1ByZWZpeFBhdHRlcm47CisgICAgICAgIH0KKyAgICAgICAgLypCdWcgNDIxMjA3MgorICAgICAgICAgIFVwZGF0ZSB0aGUgYWZmaXggc3RyaW5ncyBhY2Nyb2RpbmcgdG8gc3ltYm9scyBpbiBvcmRlciB0byBrZWVwCisgICAgICAgICAgdGhlIGFmZml4IHN0cmluZ3MgdXAgdG8gZGF0ZS4KKyAgICAgICAgICBbUmljaGFyZC9HQ0xdCisgICAgICAgICovCisgICAgICAgIGV4cGFuZEFmZml4ZXMoKTsKKyAgICB9CisKKyAgICAvKlJld3JpdGUgdGhlIGZvbGxvd2luZyA0ICJzZXQiIG1ldGhvZHMKKyAgICAgIFVwcGVyIGxpbWl0IG9uIGludGVnZXIgYW5kIGZyYWN0aW9uIGRpZ2l0cyBmb3IgYSBKYXZhIGRvdWJsZSAKKyAgICAgIFtSaWNoYXJkL0dDTF0KKyAgICAqLworICAgIC8qKgorICAgICAqIFNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhbGxvd2VkIGluIHRoZSBpbnRlZ2VyIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gVGhpcyBvdmVycmlkZSBsaW1pdHMgdGhlIGludGVnZXIgZGlnaXQgY291bnQgdG8gMzA5LgorICAgICAqIEBzZWUgTnVtYmVyRm9ybWF0I3NldE1heGltdW1JbnRlZ2VyRGlnaXRzCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TWF4aW11bUludGVnZXJEaWdpdHMoaW50IG5ld1ZhbHVlKSB7CisgICAgICAgIHN1cGVyLnNldE1heGltdW1JbnRlZ2VyRGlnaXRzKE1hdGgubWluKG5ld1ZhbHVlLCBET1VCTEVfSU5URUdFUl9ESUdJVFMpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBtaW5pbXVtIG51bWJlciBvZiBkaWdpdHMgYWxsb3dlZCBpbiB0aGUgaW50ZWdlciBwb3J0aW9uIG9mIGEKKyAgICAgKiBudW1iZXIuIFRoaXMgb3ZlcnJpZGUgbGltaXRzIHRoZSBpbnRlZ2VyIGRpZ2l0IGNvdW50IHRvIDMwOS4KKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNzZXRNaW5pbXVtSW50ZWdlckRpZ2l0cworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1pbmltdW1JbnRlZ2VyRGlnaXRzKGludCBuZXdWYWx1ZSkgeworICAgICAgICBzdXBlci5zZXRNaW5pbXVtSW50ZWdlckRpZ2l0cyhNYXRoLm1pbihuZXdWYWx1ZSwgRE9VQkxFX0lOVEVHRVJfRElHSVRTKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgPHR0PkN1cnJlbmN5PC90dD4gb2JqZWN0IHVzZWQgdG8gZGlzcGxheSBjdXJyZW5jeQorICAgICAqIGFtb3VudHMuICBUaGlzIHRha2VzIGVmZmVjdCBpbW1lZGlhdGVseSwgaWYgdGhpcyBmb3JtYXQgaXMgYQorICAgICAqIGN1cnJlbmN5IGZvcm1hdC4gIElmIHRoaXMgZm9ybWF0IGlzIG5vdCBhIGN1cnJlbmN5IGZvcm1hdCwgdGhlbgorICAgICAqIHRoZSBjdXJyZW5jeSBvYmplY3QgaXMgdXNlZCBpZiBhbmQgd2hlbiB0aGlzIG9iamVjdCBiZWNvbWVzIGEKKyAgICAgKiBjdXJyZW5jeSBmb3JtYXQgdGhyb3VnaCB0aGUgYXBwbGljYXRpb24gb2YgYSBuZXcgcGF0dGVybi4KKyAgICAgKiBAcGFyYW0gdGhlQ3VycmVuY3kgbmV3IGN1cnJlbmN5IG9iamVjdCB0byB1c2UuICBNdXN0IG5vdCBiZQorICAgICAqIG51bGwuCisgICAgICogQHNpbmNlIElDVSAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDdXJyZW5jeShDdXJyZW5jeSB0aGVDdXJyZW5jeSkgeworICAgICAgICAvLyBJZiB3ZSBhcmUgYSBjdXJyZW5jeSBmb3JtYXQsIHRoZW4gbW9kaWZ5IG91ciBhZmZpeGVzIHRvCisgICAgICAgIC8vIGVuY29kZSB0aGUgY3VycmVuY3kgc3ltYm9sIGZvciB0aGUgZ2l2ZW4gY3VycmVuY3kgaW4gb3VyCisgICAgICAgIC8vIGxvY2FsZSwgYW5kIGFkanVzdCB0aGUgZGVjaW1hbCBkaWdpdHMgYW5kIHJvdW5kaW5nIGZvciB0aGUKKyAgICAgICAgLy8gZ2l2ZW4gY3VycmVuY3kuCisKKyAgICAgICAgY3VycmVuY3kgPSB0aGVDdXJyZW5jeTsKKworICAgICAgICBpZiAoaXNDdXJyZW5jeUZvcm1hdCkgeworICAgICAgICAgICAgc2V0Um91bmRpbmdJbmNyZW1lbnQoY3VycmVuY3kuZ2V0Um91bmRpbmdJbmNyZW1lbnQoKSk7CisKKyAgICAgICAgICAgIGludCBkID0gY3VycmVuY3kuZ2V0RGVmYXVsdEZyYWN0aW9uRGlnaXRzKCk7CisgICAgICAgICAgICBzZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoZCk7CisgICAgICAgICAgICBzZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoZCk7CisKKyAgICAgICAgICAgIGV4cGFuZEFmZml4ZXMoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIDx0dD5DdXJyZW5jeTwvdHQ+IG9iamVjdCB1c2VkIHRvIGRpc3BsYXkgY3VycmVuY3kKKyAgICAgKiBhbW91bnRzLiAgVGhpcyB3aWxsIGJlIG51bGwgaWYgYSBvYmplY3QgaXMgcmVzdXJyZWN0ZWQgd2l0aCBhCisgICAgICogY3VzdG9tIERlY2ltYWxGb3JtYXRTeW1ib2xzIG9iamVjdCwgb3IgaWYgdGhlIHVzZXIgc2V0cyBhCisgICAgICogY3VzdG9tIERlY2ltYWxGb3JtYXRTeW1ib2xzIG9iamVjdC4gIEEgY3VzdG9tCisgICAgICogRGVjaW1hbEZvcm1hdFN5bWJvbHMgb2JqZWN0IGhhcyBjdXJyZW5jeSBzeW1ib2xzIHRoYXQgYXJlIG5vdAorICAgICAqIHRoZSBzdGFuZGFyZCBvbmVzIGZvciBpdHMgbG9jYWxlLgorICAgICAqIEBzaW5jZSBJQ1UgMi4yCisgICAgICovCisgICAgcHVibGljIEN1cnJlbmN5IGdldEN1cnJlbmN5KCkgeworICAgICAgICByZXR1cm4gY3VycmVuY3k7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhbGxvd2VkIGluIHRoZSBmcmFjdGlvbiBwb3J0aW9uIG9mIGEKKyAgICAgKiBudW1iZXIuIFRoaXMgb3ZlcnJpZGUgbGltaXRzIHRoZSBmcmFjdGlvbiBkaWdpdCBjb3VudCB0byAzNDAuCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKGludCBuZXdWYWx1ZSkgeworICAgICAgICBzdXBlci5zZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoTWF0aC5taW4obmV3VmFsdWUsIERPVUJMRV9GUkFDVElPTl9ESUdJVFMpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBtaW5pbXVtIG51bWJlciBvZiBkaWdpdHMgYWxsb3dlZCBpbiB0aGUgZnJhY3Rpb24gcG9ydGlvbiBvZiBhCisgICAgICogbnVtYmVyLiBUaGlzIG92ZXJyaWRlIGxpbWl0cyB0aGUgZnJhY3Rpb24gZGlnaXQgY291bnQgdG8gMzQwLgorICAgICAqIEBzZWUgTnVtYmVyRm9ybWF0I3NldE1pbmltdW1GcmFjdGlvbkRpZ2l0cworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1pbmltdW1GcmFjdGlvbkRpZ2l0cyhpbnQgbmV3VmFsdWUpIHsKKyAgICAgICAgc3VwZXIuc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKE1hdGgubWluKG5ld1ZhbHVlLCBET1VCTEVfRlJBQ1RJT05fRElHSVRTKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRmlyc3QsIHJlYWQgdGhlIGRlZmF1bHQgc2VyaWFsaXphYmxlIGZpZWxkcyBmcm9tIHRoZSBzdHJlYW0uICBUaGVuCisgICAgICogaWYgPGNvZGU+c2VyaWFsVmVyc2lvbk9uU3RyZWFtPC9jb2RlPiBpcyBsZXNzIHRoYW4gMSwgaW5kaWNhdGluZyB0aGF0CisgICAgICogdGhlIHN0cmVhbSB3YXMgd3JpdHRlbiBieSBKREsgMS4xLCBpbml0aWFsaXplIDxjb2RlPnVzZUV4cG9uZW50aWFsTm90YXRpb248L2NvZGU+CisgICAgICogdG8gZmFsc2UsIHNpbmNlIGl0IHdhcyBub3QgcHJlc2VudCBpbiBKREsgMS4xLgorICAgICAqIEZpbmFsbHksIHNldCBzZXJpYWxWZXJzaW9uT25TdHJlYW0gYmFjayB0byB0aGUgbWF4aW11bSBhbGxvd2VkIHZhbHVlIHNvIHRoYXQKKyAgICAgKiBkZWZhdWx0IHNlcmlhbGl6YXRpb24gd2lsbCB3b3JrIHByb3Blcmx5IGlmIHRoaXMgb2JqZWN0IGlzIHN0cmVhbWVkIG91dCBhZ2Fpbi4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcmVhZE9iamVjdChPYmplY3RJbnB1dFN0cmVhbSBzdHJlYW0pCisgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24sIENsYXNzTm90Rm91bmRFeGNlcHRpb24KKyAgICB7CisgICAgICAgIHN0cmVhbS5kZWZhdWx0UmVhZE9iamVjdCgpOworICAgICAgICAvKkJ1ZyA0MTg1NzYxIHZhbGlkYXRlIGZpZWxkcworICAgICAgICAgIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgKi8KKyAgICAgICAgLy8gV2Ugb25seSBuZWVkIHRvIGNoZWNrIHRoZSBtYXhpbXVtIGNvdW50cyBiZWNhdXNlIE51bWJlckZvcm1hdAorICAgICAgICAvLyAucmVhZE9iamVjdCBoYXMgYWxyZWFkeSBlbnN1cmVkIHRoYXQgdGhlIG1heGltdW0gaXMgZ3JlYXRlciB0aGFuIHRoZQorICAgICAgICAvLyBtaW5pbXVtIGNvdW50LgorICAgICAgICAvKkNvbW1lbnRlZCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIHByZXZpb3VzIHZlcnNpb24sIGFuZCByZXNlcnZlZCBmb3IgZnVydGhlciB1c2UKKyAgICAgICAgaWYgKGdldE1heGltdW1JbnRlZ2VyRGlnaXRzKCkgPiBET1VCTEVfSU5URUdFUl9ESUdJVFMgfHwKKyAgICAgICAgICAgIGdldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpID4gRE9VQkxFX0ZSQUNUSU9OX0RJR0lUUykgeworICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPYmplY3RFeGNlcHRpb24oIkRpZ2l0IGNvdW50IG91dCBvZiByYW5nZSIpOworICAgICAgICB9Ki8KKyAgICAgICAgLyogVHJ1bmNhdGUgdGhlIG1heGltdW1JbnRlZ2VyRGlnaXRzIHRvIERPVUJMRV9JTlRFR0VSX0RJR0lUUyBhbmQgbWF4aW11bUZyYWN0aW9uRGlnaXRzCisgICAgICAgICAqIHRvIERPVUJMRV9GUkFDVElPTl9ESUdJVFMKKyAgICAgICAgICovCisgICAgICAgIGlmIChnZXRNYXhpbXVtSW50ZWdlckRpZ2l0cygpID4gRE9VQkxFX0lOVEVHRVJfRElHSVRTKSB7CisgICAgICAgICAgICAgc2V0TWF4aW11bUludGVnZXJEaWdpdHMoRE9VQkxFX0lOVEVHRVJfRElHSVRTKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCkgPiBET1VCTEVfRlJBQ1RJT05fRElHSVRTKSB7CisgICAgICAgICAgICBzZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoRE9VQkxFX0ZSQUNUSU9OX0RJR0lUUyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNlcmlhbFZlcnNpb25PblN0cmVhbSA8IDIpIHsKKyAgICAgICAgICAgIGV4cG9uZW50U2lnbkFsd2F5c1Nob3duID0gZmFsc2U7CisgICAgICAgICAgICByb3VuZGluZ0RvdWJsZSA9IDAuMDsKKyAgICAgICAgICAgIHJvdW5kaW5nSW5jcmVtZW50ID0gbnVsbDsKKyAgICAgICAgICAgIHJvdW5kaW5nTW9kZSA9IGphdmEubWF0aC5CaWdEZWNpbWFsLlJPVU5EX0hBTEZfRVZFTjsKKyAgICAgICAgICAgIGZvcm1hdFdpZHRoID0gMDsKKyAgICAgICAgICAgIHBhZCA9ICcgJzsKKyAgICAgICAgICAgIHBhZFBvc2l0aW9uID0gUEFEX0JFRk9SRV9QUkVGSVg7CisgICAgICAgICAgICBpZiAoc2VyaWFsVmVyc2lvbk9uU3RyZWFtIDwgMSkgeworICAgICAgICAgICAgICAgIC8vIERpZG4ndCBoYXZlIGV4cG9uZW50aWFsIGZpZWxkcworICAgICAgICAgICAgICAgIHVzZUV4cG9uZW50aWFsTm90YXRpb24gPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoc2VyaWFsVmVyc2lvbk9uU3RyZWFtIDwgMykgeworICAgICAgICAgICAgLy8gVmVyc2lvbnMgcHJpb3IgdG8gMyBkbyBub3Qgc3RvcmUgYSBjdXJyZW5jeSBvYmplY3QuCisgICAgICAgICAgICAvLyBDcmVhdGUgb25lIHRvIG1hdGNoIHRoZSBEZWNpbWFsRm9ybWF0U3ltYm9scyBvYmplY3QuCisgICAgICAgICAgICBzZXRDdXJyZW5jeUZvclN5bWJvbHMoKTsKKyAgICAgICAgfQorICAgICAgICBzZXJpYWxWZXJzaW9uT25TdHJlYW0gPSBjdXJyZW50U2VyaWFsVmVyc2lvbjsKKyAgICAgICAgZGlnaXRMaXN0ID0gbmV3IERpZ2l0TGlzdCgpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIElOU1RBTkNFIFZBUklBQkxFUworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgRGlnaXRMaXN0IGRpZ2l0TGlzdCA9IG5ldyBEaWdpdExpc3QoKTsKKworICAgIC8qKgorICAgICAqIFRoZSBzeW1ib2wgdXNlZCBhcyBhIHByZWZpeCB3aGVuIGZvcm1hdHRpbmcgcG9zaXRpdmUgbnVtYmVycywgZS5nLiAiKyIuCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjZ2V0UG9zaXRpdmVQcmVmaXgKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyAgcG9zaXRpdmVQcmVmaXggPSAiIjsKKworICAgIC8qKgorICAgICAqIFRoZSBzeW1ib2wgdXNlZCBhcyBhIHN1ZmZpeCB3aGVuIGZvcm1hdHRpbmcgcG9zaXRpdmUgbnVtYmVycy4KKyAgICAgKiBUaGlzIGlzIG9mdGVuIGFuIGVtcHR5IHN0cmluZy4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRQb3NpdGl2ZVN1ZmZpeAorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nICBwb3NpdGl2ZVN1ZmZpeCA9ICIiOworCisgICAgLyoqCisgICAgICogVGhlIHN5bWJvbCB1c2VkIGFzIGEgcHJlZml4IHdoZW4gZm9ybWF0dGluZyBuZWdhdGl2ZSBudW1iZXJzLCBlLmcuICItIi4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXROZWdhdGl2ZVByZWZpeAorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nICBuZWdhdGl2ZVByZWZpeCA9ICItIjsKKworICAgIC8qKgorICAgICAqIFRoZSBzeW1ib2wgdXNlZCBhcyBhIHN1ZmZpeCB3aGVuIGZvcm1hdHRpbmcgbmVnYXRpdmUgbnVtYmVycy4KKyAgICAgKiBUaGlzIGlzIG9mdGVuIGFuIGVtcHR5IHN0cmluZy4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXROZWdhdGl2ZVN1ZmZpeAorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nICBuZWdhdGl2ZVN1ZmZpeCA9ICIiOworICAgIAorICAgIC8qKgorICAgICAqIFRoZSBwcmVmaXggcGF0dGVybiBmb3Igbm9uLW5lZ2F0aXZlIG51bWJlcnMuICBUaGlzIHZhcmlhYmxlIGNvcnJlc3BvbmRzCisgICAgICogdG8gPGNvZGU+cG9zaXRpdmVQcmVmaXg8L2NvZGU+LgorICAgICAqCisgICAgICogPHA+VGhpcyBwYXR0ZXJuIGlzIGV4cGFuZGVkIGJ5IHRoZSBtZXRob2QgPGNvZGU+ZXhwYW5kQWZmaXgoKTwvY29kZT4gdG8KKyAgICAgKiA8Y29kZT5wb3NpdGl2ZVByZWZpeDwvY29kZT4gdG8gdXBkYXRlIHRoZSBsYXR0ZXIgdG8gcmVmbGVjdCBjaGFuZ2VzIGluCisgICAgICogPGNvZGU+c3ltYm9sczwvY29kZT4uICBJZiB0aGlzIHZhcmlhYmxlIGlzIDxjb2RlPm51bGw8L2NvZGU+IHRoZW4KKyAgICAgKiA8Y29kZT5wb3NpdGl2ZVByZWZpeDwvY29kZT4gaXMgdGFrZW4gYXMgYSBsaXRlcmFsIHZhbHVlIHRoYXQgZG9lcyBub3QKKyAgICAgKiBjaGFuZ2Ugd2hlbiA8Y29kZT5zeW1ib2xzPC9jb2RlPiBjaGFuZ2VzLiAgVGhpcyB2YXJpYWJsZSBpcyBhbHdheXMKKyAgICAgKiA8Y29kZT5udWxsPC9jb2RlPiBmb3IgPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4gb2JqZWN0cyBvbGRlciB0aGFuCisgICAgICogc3RyZWFtIHZlcnNpb24gMiByZXN0b3JlZCBmcm9tIHN0cmVhbS4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICAvL1tSaWNoYXJkL0dDTF0KKyAgICBwcml2YXRlIFN0cmluZyBwb3NQcmVmaXhQYXR0ZXJuOworCisgICAgLyoqCisgICAgICogVGhlIHN1ZmZpeCBwYXR0ZXJuIGZvciBub24tbmVnYXRpdmUgbnVtYmVycy4gIFRoaXMgdmFyaWFibGUgY29ycmVzcG9uZHMKKyAgICAgKiB0byA8Y29kZT5wb3NpdGl2ZVN1ZmZpeDwvY29kZT4uICBUaGlzIHZhcmlhYmxlIGlzIGFuYWxvZ291cyB0bworICAgICAqIDxjb2RlPnBvc1ByZWZpeFBhdHRlcm48L2NvZGU+OyBzZWUgdGhhdCB2YXJpYWJsZSBmb3IgZnVydGhlcgorICAgICAqIGRvY3VtZW50YXRpb24uCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgLy9bUmljaGFyZC9HQ0xdCisgICAgcHJpdmF0ZSBTdHJpbmcgcG9zU3VmZml4UGF0dGVybjsKKworICAgIC8qKgorICAgICAqIFRoZSBwcmVmaXggcGF0dGVybiBmb3IgbmVnYXRpdmUgbnVtYmVycy4gIFRoaXMgdmFyaWFibGUgY29ycmVzcG9uZHMKKyAgICAgKiB0byA8Y29kZT5uZWdhdGl2ZVByZWZpeDwvY29kZT4uICBUaGlzIHZhcmlhYmxlIGlzIGFuYWxvZ291cyB0bworICAgICAqIDxjb2RlPnBvc1ByZWZpeFBhdHRlcm48L2NvZGU+OyBzZWUgdGhhdCB2YXJpYWJsZSBmb3IgZnVydGhlcgorICAgICAqIGRvY3VtZW50YXRpb24uCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgLy9bUmljaGFyZC9HQ0xdCisgICAgcHJpdmF0ZSBTdHJpbmcgbmVnUHJlZml4UGF0dGVybjsKKworICAgIC8qKgorICAgICAqIFRoZSBzdWZmaXggcGF0dGVybiBmb3IgbmVnYXRpdmUgbnVtYmVycy4gIFRoaXMgdmFyaWFibGUgY29ycmVzcG9uZHMKKyAgICAgKiB0byA8Y29kZT5uZWdhdGl2ZVN1ZmZpeDwvY29kZT4uICBUaGlzIHZhcmlhYmxlIGlzIGFuYWxvZ291cyB0bworICAgICAqIDxjb2RlPnBvc1ByZWZpeFBhdHRlcm48L2NvZGU+OyBzZWUgdGhhdCB2YXJpYWJsZSBmb3IgZnVydGhlcgorICAgICAqIGRvY3VtZW50YXRpb24uCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgLy9bUmljaGFyZC9HQ0xdCisgICAgcHJpdmF0ZSBTdHJpbmcgbmVnU3VmZml4UGF0dGVybjsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgbXVsdGlwbGllciBmb3IgdXNlIGluIHBlcmNlbnQsIHBlcm1pbGwsIGV0Yy4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRNdWx0aXBsaWVyCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgICAgIG11bHRpcGxpZXIgPSAxOworICAgIAorICAgIC8qKgorICAgICAqIFRoZSBudW1iZXIgb2YgZGlnaXRzIGJldHdlZW4gZ3JvdXBpbmcgc2VwYXJhdG9ycyBpbiB0aGUgaW50ZWdlcgorICAgICAqIHBvcnRpb24gb2YgYSBudW1iZXIuICBNdXN0IGJlIGdyZWF0ZXIgdGhhbiAwIGlmCisgICAgICogPGNvZGU+TnVtYmVyRm9ybWF0Lmdyb3VwaW5nVXNlZDwvY29kZT4gaXMgdHJ1ZS4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRHcm91cGluZ1NpemUKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNpc0dyb3VwaW5nVXNlZAorICAgICAqLworICAgIHByaXZhdGUgYnl0ZSAgICBncm91cGluZ1NpemUgPSAzOyAgLy8gaW52YXJpYW50LCA+IDAgaWYgdXNlVGhvdXNhbmRzCisKKyAgICAvKioKKyAgICAgKiBUaGUgc2Vjb25kYXJ5IGdyb3VwaW5nIHNpemUuICBUaGlzIGlzIG9ubHkgdXNlZCBmb3IgSGluZGkKKyAgICAgKiBudW1lcmFscywgd2hpY2ggdXNlIGEgcHJpbWFyeSBncm91cGluZyBvZiAzIGFuZCBhIHNlY29uZGFyeQorICAgICAqIGdyb3VwaW5nIG9mIDIsIGUuZy4sICIxMiwzNCw1NjciLiAgSWYgdGhpcyB2YWx1ZSBpcyBsZXNzIHRoYW4KKyAgICAgKiAxLCB0aGVuIHNlY29uZGFyeSBncm91cGluZyBpcyBlcXVhbCB0byB0aGUgcHJpbWFyeSBncm91cGluZy4KKyAgICAgKiBbTkVXXQorICAgICAqLworICAgIHByaXZhdGUgYnl0ZSAgICBncm91cGluZ1NpemUyID0gMDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBJZiB0cnVlLCBmb3JjZXMgdGhlIGRlY2ltYWwgc2VwYXJhdG9yIHRvIGFsd2F5cyBhcHBlYXIgaW4gYSBmb3JtYXR0ZWQKKyAgICAgKiBudW1iZXIsIGV2ZW4gaWYgdGhlIGZyYWN0aW9uYWwgcGFydCBvZiB0aGUgbnVtYmVyIGlzIHplcm8uCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjaXNEZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gZGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duID0gZmFsc2U7CisgICAgCisgICAgLyoqCisgICAgICogVHJ1ZSBpZiB0aGlzIG9iamVjdCByZXByZXNlbnRzIGEgY3VycmVuY3kgZm9ybWF0LiAgVGhpcyBkZXRlcm1pbmVzCisgICAgICogd2hldGhlciB0aGUgbW9uZXRhcnkgZGVjaW1hbCBzZXBhcmF0b3IgaXMgdXNlZCBpbnN0ZWFkIG9mIHRoZSBub3JtYWwgb25lLgorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IGJvb2xlYW4gaXNDdXJyZW5jeUZvcm1hdCA9IGZhbHNlOworICAgIAorICAgIC8qKgorICAgICAqIFRoZSA8Y29kZT5EZWNpbWFsRm9ybWF0U3ltYm9sczwvY29kZT4gb2JqZWN0IHVzZWQgYnkgdGhpcyBmb3JtYXQuCisgICAgICogSXQgY29udGFpbnMgdGhlIHN5bWJvbHMgdXNlZCB0byBmb3JtYXQgbnVtYmVycywgZS5nLiB0aGUgZ3JvdXBpbmcgc2VwYXJhdG9yLAorICAgICAqIGRlY2ltYWwgc2VwYXJhdG9yLCBhbmQgc28gb24uCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjc2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMKKyAgICAgKiBAc2VlIERlY2ltYWxGb3JtYXRTeW1ib2xzCisgICAgICovCisgICAgcHJpdmF0ZSBEZWNpbWFsRm9ybWF0U3ltYm9scyBzeW1ib2xzID0gbnVsbDsgLy8gTElVIG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scygpOworCisgICAgLyoqCisgICAgICogVHJ1ZSB0byBmb3JjZSB0aGUgdXNlIG9mIGV4cG9uZW50aWFsIChpLmUuIHNjaWVudGlmaWMpIG5vdGF0aW9uIHdoZW4gZm9ybWF0dGluZworICAgICAqIG51bWJlcnMuCisgICAgICogPHA+CisgICAgICogTm90ZSB0aGF0IHRoZSBKREsgMS4yIHB1YmxpYyBBUEkgcHJvdmlkZXMgbm8gd2F5IHRvIHNldCB0aGlzIGZpZWxkLAorICAgICAqIGV2ZW4gdGhvdWdoIGl0IGlzIHN1cHBvcnRlZCBieSB0aGUgaW1wbGVtZW50YXRpb24gYW5kIHRoZSBzdHJlYW0gZm9ybWF0LgorICAgICAqIFRoZSBpbnRlbnQgaXMgdGhhdCB0aGlzIHdpbGwgYmUgYWRkZWQgdG8gdGhlIEFQSSBpbiB0aGUgZnV0dXJlLgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiB1c2VFeHBvbmVudGlhbE5vdGF0aW9uOyAgLy8gTmV3bHkgcGVyc2lzdGVudCBpbiBKREsgMS4yCisKKyAgICAvKioKKyAgICAgKiBUaGUgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzIHVzZWQgdG8gZGlzcGxheSB0aGUgZXhwb25lbnQgd2hlbiBhIG51bWJlciBpcworICAgICAqIGZvcm1hdHRlZCBpbiBleHBvbmVudGlhbCBub3RhdGlvbi4gIFRoaXMgZmllbGQgaXMgaWdub3JlZCBpZgorICAgICAqIDxjb2RlPnVzZUV4cG9uZW50aWFsTm90YXRpb248L2NvZGU+IGlzIG5vdCB0cnVlLgorICAgICAqIDxwPgorICAgICAqIE5vdGUgdGhhdCB0aGUgSkRLIDEuMiBwdWJsaWMgQVBJIHByb3ZpZGVzIG5vIHdheSB0byBzZXQgdGhpcyBmaWVsZCwKKyAgICAgKiBldmVuIHRob3VnaCBpdCBpcyBzdXBwb3J0ZWQgYnkgdGhlIGltcGxlbWVudGF0aW9uIGFuZCB0aGUgc3RyZWFtIGZvcm1hdC4KKyAgICAgKiBUaGUgaW50ZW50IGlzIHRoYXQgdGhpcyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBBUEkgaW4gdGhlIGZ1dHVyZS4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIGJ5dGUgICAgbWluRXhwb25lbnREaWdpdHM7ICAgICAgIC8vIE5ld2x5IHBlcnNpc3RlbnQgaW4gSkRLIDEuMgorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIElmIHRydWUsIHRoZSBleHBvbmVudCBpcyBhbHdheXMgcHJlZml4ZWQgd2l0aCBlaXRoZXIgdGhlIHBsdXMKKyAgICAgKiBzaWduIG9yIHRoZSBtaW51cyBzaWduLiAgT3RoZXJ3aXNlLCBvbmx5IG5lZ2F0aXZlIGV4cG9uZW50cyBhcmUKKyAgICAgKiBwcmVmaXhlZCB3aXRoIHRoZSBtaW51cyBzaWduLiAgVGhpcyBoYXMgbm8gZWZmZWN0IHVubGVzcworICAgICAqIDxjb2RlPnVzZUV4cG9uZW50aWFsTm90YXRpb248L2NvZGU+IGlzIHRydWUuCisgICAgICogQHNlcmlhbAorICAgICAqIEBzaW5jZSBBbHBoYVdvcmtzIE51bWJlckZvcm1hdAorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBleHBvbmVudFNpZ25BbHdheXNTaG93biA9IGZhbHNlOworCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFRoZSB2YWx1ZSB0byB3aGljaCBudW1iZXJzIGFyZSByb3VuZGVkIGR1cmluZyBmb3JtYXR0aW5nLiAgRm9yIGV4YW1wbGUsCisgICAgICogaWYgdGhlIHJvdW5kaW5nIGluY3JlbWVudCBpcyAwLjA1LCB0aGVuIDEzLjM3MSB3b3VsZCBiZSBmb3JtYXR0ZWQgYXMKKyAgICAgKiAxMy4zNTAsIGFzc3VtaW5nIDMgZnJhY3Rpb24gZGlnaXRzLiAgSGFzIHRoZSB2YWx1ZSA8Y29kZT5udWxsPC9jb2RlPiBpZgorICAgICAqIHJvdW5kaW5nIGlzIG5vdCBpbiBlZmZlY3QsIG9yIGEgcG9zaXRpdmUgdmFsdWUgaWYgcm91bmRpbmcgaXMgaW4gZWZmZWN0LgorICAgICAqIERlZmF1bHQgdmFsdWUgPGNvZGU+bnVsbDwvY29kZT4uCisgICAgICogQHNlcmlhbAorICAgICAqIEBzaW5jZSBBbHBoYVdvcmtzIE51bWJlckZvcm1hdAorICAgICAqLworICAgIHByaXZhdGUgamF2YS5tYXRoLkJpZ0RlY2ltYWwgcm91bmRpbmdJbmNyZW1lbnQgPSBudWxsOworCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFRoZSByb3VuZGluZyBpbmNyZW1lbnQgYXMgYSBkb3VibGUuICBJZiB0aGlzIHZhbHVlIGlzIDw9IDAsIHRoZW4gbm8KKyAgICAgKiByb3VuZGluZyBpcyBkb25lLiAgVGhpcyB2YWx1ZSBpcworICAgICAqIDxjb2RlPnJvdW5kaW5nSW5jcmVtZW50LmRvdWJsZVZhbHVlKCk8L2NvZGU+LiAgRGVmYXVsdCB2YWx1ZSAwLjAuCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgZG91YmxlIHJvdW5kaW5nRG91YmxlID0gMC4wOworCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFRoZSByb3VuZGluZyBtb2RlLiAgVGhpcyB2YWx1ZSBjb250cm9scyBhbnkgcm91bmRpbmcgb3BlcmF0aW9ucyB3aGljaAorICAgICAqIG9jY3VyIHdoZW4gYXBwbHlpbmcgYSByb3VuZGluZyBpbmNyZW1lbnQgb3Igd2hlbiByZWR1Y2luZyB0aGUgbnVtYmVyIG9mCisgICAgICogZnJhY3Rpb24gZGlnaXRzIHRvIHNhdGlzZnkgYSBtYXhpbXVtIGZyYWN0aW9uIGRpZ2l0cyBsaW1pdC4gIFRoZSB2YWx1ZQorICAgICAqIG1heSBhc3N1bWUgYW55IG9mIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiByb3VuZGluZyBtb2RlIHZhbHVlcy4KKyAgICAgKiBEZWZhdWx0IHZhbHVlIDxjb2RlPkJpZ0RlY2ltYWwuUk9VTkRfSEFMRl9FVkVOPC9jb2RlPi4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNpbmNlIEFscGhhV29ya3MgTnVtYmVyRm9ybWF0CisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgcm91bmRpbmdNb2RlID0gamF2YS5tYXRoLkJpZ0RlY2ltYWwuUk9VTkRfSEFMRl9FVkVOOworCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFRoZSBwYWRkZWQgZm9ybWF0IHdpZHRoLCBvciB6ZXJvIGlmIHRoZXJlIGlzIG5vIHBhZGRpbmcuICBNdXN0CisgICAgICogYmUgPj0gMC4gIERlZmF1bHQgdmFsdWUgemVyby4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNpbmNlIEFscGhhV29ya3MgTnVtYmVyRm9ybWF0CisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZm9ybWF0V2lkdGggPSAwOworCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFRoZSBjaGFyYWN0ZXIgdXNlZCB0byBwYWQgdGhlIHJlc3VsdCBvZiBmb3JtYXQgdG8KKyAgICAgKiA8Y29kZT5mb3JtYXRXaWR0aDwvY29kZT4sIGlmIHBhZGRpbmcgaXMgaW4gZWZmZWN0LiAgRGVmYXVsdCB2YWx1ZSAnICcuCisgICAgICogQHNlcmlhbAorICAgICAqIEBzaW5jZSBBbHBoYVdvcmtzIE51bWJlckZvcm1hdAorICAgICAqLworICAgIHByaXZhdGUgY2hhciBwYWQgPSAnICc7CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogVGhlIHBvc2l0aW9uIGluIHRoZSBzdHJpbmcgYXQgd2hpY2ggdGhlIDxjb2RlPnBhZDwvY29kZT4gY2hhcmFjdGVyCisgICAgICogd2lsbCBiZSBpbnNlcnRlZCwgaWYgcGFkZGluZyBpcyBpbiBlZmZlY3QuICBNdXN0IGhhdmUgYSB2YWx1ZSBmcm9tCisgICAgICogPGNvZGU+UEFEX0JFRk9SRV9QUkVGSVg8L2NvZGU+IHRvIDxjb2RlPlBBRF9BRlRFUl9TVUZGSVg8L2NvZGU+LgorICAgICAqIERlZmF1bHQgdmFsdWUgPGNvZGU+UEFEX0JFRk9SRV9QUkVGSVg8L2NvZGU+LgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2luY2UgQWxwaGFXb3JrcyBOdW1iZXJGb3JtYXQKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBwYWRQb3NpdGlvbiA9IFBBRF9CRUZPUkVfUFJFRklYOworCisgICAgLyoqCisgICAgICogQ3VycmVuY3kgb2JqZWN0IHVzZWQgdG8gZm9ybWF0IGN1cnJlbmNpZXMuICBPbmx5IHVzZWQgaWYKKyAgICAgKiA8dHQ+aXNDdXJyZW5jeUZvcm1hdDwvdHQ+IGlzIHRydWUuICBJbiBzb21lIGNhc2VzIHRoaXMgd2lsbCBiZQorICAgICAqIG51bGw6IElmIGEgcHJlLTIuMiBvYmplY3QgaXMgcmVzdXJyZWN0ZWQgd2l0aCBhIGN1c3RvbQorICAgICAqIERlY2ltYWxGb3JtYXRTeW1ib2xzIG9iamVjdCwgb3IgaWYgdGhlIHVzZXIgc2V0cyBhIGN1c3RvbSBERlMKKyAgICAgKiBvYmplY3QuICBBIGN1c3RvbSBERlMgb2JqZWN0IGhhcyBjdXJyZW5jeSBzeW1ib2xzIHRoYXQgYXJlIG5vdAorICAgICAqIHRoZSBzdGFuZGFyZCBvbmVzIGZvciBpdHMgbG9jYWxlLgorICAgICAqIEBzaW5jZSBJQ1UgMi4yCisgICAgICovCisgICAgcHJpdmF0ZSBDdXJyZW5jeSBjdXJyZW5jeTsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgc3RhdGljIGZpbmFsIGludCBjdXJyZW50U2VyaWFsVmVyc2lvbiA9IDM7CisKKyAgICAvKioKKyAgICAgKiBUaGUgaW50ZXJuYWwgc2VyaWFsIHZlcnNpb24gd2hpY2ggc2F5cyB3aGljaCB2ZXJzaW9uIHdhcyB3cml0dGVuCisgICAgICogUG9zc2libGUgdmFsdWVzIGFyZToKKyAgICAgKiA8dWw+CisgICAgICogPGxpPjxiPjA8L2I+IChkZWZhdWx0KTogdmVyc2lvbnMgYmVmb3JlIEpESyAxLjIKKyAgICAgKiA8bGk+PGI+MTwvYj46IHZlcnNpb24gZnJvbSBKREsgMS4yIGFuZCBsYXRlciwgd2hpY2ggaW5jbHVkZXMgdGhlIHR3byBuZXcgZmllbGRzCisgICAgICogICAgICA8Y29kZT51c2VFeHBvbmVudGlhbE5vdGF0aW9uPC9jb2RlPiBhbmQgPGNvZGU+bWluRXhwb25lbnREaWdpdHM8L2NvZGU+LgorICAgICAqIDxsaT48Yj4yPC9iPjogdmVyc2lvbiBvbiBBbHBoYVdvcmtzLCB3aGljaCBhZGRzIHJvdW5kaW5nTW9kZSwgZm9ybWF0V2lkdGgsCisgICAgICogICAgICBwYWQsIHBhZFBvc2l0aW9uLCBleHBvbmVudFNpZ25BbHdheXNTaG93biwgcm91bmRpbmdJbmNyZW1lbnQuCisgICAgICogPGxpPjxiPjM8L2I+OiBJQ1UgMi4yLiAgQWRkcyBjdXJyZW5jeSBvYmplY3QuCisgICAgICogPC91bD4KKyAgICAgKiBAc2VyaWFsICovCisgICAgcHJpdmF0ZSBpbnQgc2VyaWFsVmVyc2lvbk9uU3RyZWFtID0gY3VycmVudFNlcmlhbFZlcnNpb247CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBDT05TVEFOVFMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBDb25zdGFudCBmb3IgPGNvZGU+Z2V0UGFkUG9zaXRpb24oKTwvY29kZT4gYW5kCisgICAgICogPGNvZGU+c2V0UGFkUG9zaXRpb24oKTwvY29kZT4gc3BlY2lmeWluZyBwYWQgY2hhcmFjdGVycyBpbnNlcnRlZCBiZWZvcmUKKyAgICAgKiB0aGUgcHJlZml4LgorICAgICAqIEBzZWUgI3NldFBhZFBvc2l0aW9uCisgICAgICogQHNlZSAjZ2V0UGFkUG9zaXRpb24KKyAgICAgKiBAc2VlICNQQURfQUZURVJfUFJFRklYCisgICAgICogQHNlZSAjUEFEX0JFRk9SRV9TVUZGSVgKKyAgICAgKiBAc2VlICNQQURfQUZURVJfU1VGRklYCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUEFEX0JFRk9SRV9QUkVGSVggPSAwOworCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIENvbnN0YW50IGZvciA8Y29kZT5nZXRQYWRQb3NpdGlvbigpPC9jb2RlPiBhbmQKKyAgICAgKiA8Y29kZT5zZXRQYWRQb3NpdGlvbigpPC9jb2RlPiBzcGVjaWZ5aW5nIHBhZCBjaGFyYWN0ZXJzIGluc2VydGVkIGFmdGVyCisgICAgICogdGhlIHByZWZpeC4KKyAgICAgKiBAc2VlICNzZXRQYWRQb3NpdGlvbgorICAgICAqIEBzZWUgI2dldFBhZFBvc2l0aW9uCisgICAgICogQHNlZSAjUEFEX0JFRk9SRV9QUkVGSVgKKyAgICAgKiBAc2VlICNQQURfQkVGT1JFX1NVRkZJWAorICAgICAqIEBzZWUgI1BBRF9BRlRFUl9TVUZGSVgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQQURfQUZURVJfUFJFRklYICA9IDE7CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogQ29uc3RhbnQgZm9yIDxjb2RlPmdldFBhZFBvc2l0aW9uKCk8L2NvZGU+IGFuZAorICAgICAqIDxjb2RlPnNldFBhZFBvc2l0aW9uKCk8L2NvZGU+IHNwZWNpZnlpbmcgcGFkIGNoYXJhY3RlcnMgaW5zZXJ0ZWQgYmVmb3JlCisgICAgICogdGhlIHN1ZmZpeC4KKyAgICAgKiBAc2VlICNzZXRQYWRQb3NpdGlvbgorICAgICAqIEBzZWUgI2dldFBhZFBvc2l0aW9uCisgICAgICogQHNlZSAjUEFEX0JFRk9SRV9QUkVGSVgKKyAgICAgKiBAc2VlICNQQURfQUZURVJfUFJFRklYCisgICAgICogQHNlZSAjUEFEX0FGVEVSX1NVRkZJWAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBBRF9CRUZPUkVfU1VGRklYID0gMjsKKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBDb25zdGFudCBmb3IgPGNvZGU+Z2V0UGFkUG9zaXRpb24oKTwvY29kZT4gYW5kCisgICAgICogPGNvZGU+c2V0UGFkUG9zaXRpb24oKTwvY29kZT4gc3BlY2lmeWluZyBwYWQgY2hhcmFjdGVycyBpbnNlcnRlZCBhZnRlcgorICAgICAqIHRoZSBzdWZmaXguCisgICAgICogQHNlZSAjc2V0UGFkUG9zaXRpb24KKyAgICAgKiBAc2VlICNnZXRQYWRQb3NpdGlvbgorICAgICAqIEBzZWUgI1BBRF9CRUZPUkVfUFJFRklYCisgICAgICogQHNlZSAjUEFEX0FGVEVSX1BSRUZJWAorICAgICAqIEBzZWUgI1BBRF9CRUZPUkVfU1VGRklYCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUEFEX0FGVEVSX1NVRkZJWCAgPSAzOworCisgICAgLy8gQ29uc3RhbnRzIGZvciBjaGFyYWN0ZXJzIHVzZWQgaW4gcHJvZ3JhbW1hdGljICh1bmxvY2FsaXplZCkgcGF0dGVybnMuCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciAgICAgICBQQVRURVJOX1pFUk9fRElHSVQgICAgICAgICA9ICcwJzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyICAgICAgIFBBVFRFUk5fR1JPVVBJTkdfU0VQQVJBVE9SID0gJywnOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgICAgICAgUEFUVEVSTl9ERUNJTUFMX1NFUEFSQVRPUiAgPSAnLic7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciAgICAgICBQQVRURVJOX1BFUl9NSUxMRSAgICAgICAgICA9ICdcdTIwMzAnOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgICAgICAgUEFUVEVSTl9QRVJDRU5UICAgICAgICAgICAgPSAnJSc7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciAgICAgICBQQVRURVJOX0RJR0lUICAgICAgICAgICAgICA9ICcjJzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyICAgICAgIFBBVFRFUk5fU0VQQVJBVE9SICAgICAgICAgID0gJzsnOworICAgICAgICAgICAgc3RhdGljIGZpbmFsIFN0cmluZyAgICAgUEFUVEVSTl9FWFBPTkVOVCAgICAgICAgICAgPSAiRSI7IC8vIFtORVddCisgICAgICAgICAgICBzdGF0aWMgZmluYWwgY2hhciAgICAgICBQQVRURVJOX1BBRF9FU0NBUEUgICAgICAgICA9ICcqJzsgLy8gW05FV10KKyAgICAgICAgICAgIHN0YXRpYyBmaW5hbCBjaGFyICAgICAgIFBBVFRFUk5fUExVU19TSUdOICAgICAgICAgID0gJysnOyAvLyBbTkVXXQorICAgIC8qQnVnIDQyMTIwNzIKKyAgICAgIFRvIG1lZXQgdGhlIG5lZWQgb2YgZXhwYW5kQWZmaXgoU3RyaW5nLCBTdGlybmdCdWZmZXIpCisgICAgICBbUmljaGFyZC9HQ0xdCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyICAgICAgIFBBVFRFUk5fTUlOVVMgICAgICAgICAgICAgID0gJy0nOyAvL1tSaWNoYXJkL0dDTF0KKyAgICAKKyAgICAvLyBQYWQgZXNjYXBlIGlzIHBhY2thZ2UgcHJpdmF0ZSB0byBhbGxvdyBhY2Nlc3MgYnkgRGVjaW1hbEZvcm1hdFN5bWJvbHMuCisgICAgLy8gQWxzbyBwbHVzIHNpZ24uICBBbHNvIGV4cG9uZW50LgorCisgICAgLyoqCisgICAgICogVGhlIENVUlJFTkNZX1NJR04gaXMgdGhlIHN0YW5kYXJkIFVuaWNvZGUgc3ltYm9sIGZvciBjdXJyZW5jeS4gIEl0CisgICAgICogaXMgdXNlZCBpbiBwYXR0ZXJucyBhbmQgc3Vic3RpdHVlZCB3aXRoIGVpdGhlciB0aGUgY3VycmVuY3kgc3ltYm9sLAorICAgICAqIG9yIGlmIGl0IGlzIGRvdWJsZWQsIHdpdGggdGhlIGludGVybmF0aW9uYWwgY3VycmVuY3kgc3ltYm9sLiAgSWYgdGhlCisgICAgICogQ1VSUkVOQ1lfU0lHTiBpcyBzZWVuIGluIGEgcGF0dGVybiwgdGhlbiB0aGUgZGVjaW1hbCBzZXBhcmF0b3IgaXMKKyAgICAgKiByZXBsYWNlZCB3aXRoIHRoZSBtb25ldGFyeSBkZWNpbWFsIHNlcGFyYXRvci4KKyAgICAgKgorICAgICAqIFRoZSBDVVJSRU5DWV9TSUdOIGlzIG5vdCBsb2NhbGl6ZWQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciAgICAgICBDVVJSRU5DWV9TSUdOID0gJ1x1MDBBNCc7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyICAgICAgIFFVT1RFID0gJ1wnJzsKKyAgICAKKyAgICAvKiBVcHBlciBsaW1pdCBvbiBpbnRlZ2VyIGFuZCBmcmFjdGlvbiBkaWdpdHMgZm9yIGEgSmF2YSBkb3VibGUKKyAgICAgICBbUmljaGFyZC9HQ0xdCisgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgaW50IERPVUJMRV9JTlRFR0VSX0RJR0lUUyAgPSAzMDk7CisgICAgc3RhdGljIGZpbmFsIGludCBET1VCTEVfRlJBQ1RJT05fRElHSVRTID0gMzQwOworICAgIAorICAgIC8vIFByb2NsYWltIEpESyAxLjEgc2VyaWFsIGNvbXBhdGliaWxpdHkuCisgICAgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDg2NDQxMzM3NjU1MTQ2NTAxOEw7CisKKyAgICAvKioKKyAgICAgKiBDYWNoZSB0byBob2xkIHRoZSBOdW1iZXJQYXR0ZXJuIG9mIGEgTG9jYWxlLgorICAgICAqIFtORVddIE5vIGxvbmdlciBuZWVkZWQgLS0gc2hhcmUgdGhlIE51bWJlckZvcm1hdCBjYWNoZQorICAgICAqLworICAgIC8vIHByaXZhdGUgc3RhdGljIEhhc2h0YWJsZSBjYWNoZWRMb2NhbGVEYXRhID0gbmV3IEhhc2h0YWJsZSgzKTsKK30KKworLy9lb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RlY2ltYWxGb3JtYXRTeW1ib2xzLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9EZWNpbWFsRm9ybWF0U3ltYm9scy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmVjZDhkMjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9EZWNpbWFsRm9ybWF0U3ltYm9scy5qYXZhCkBAIC0wLDAgKzEsNjQzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvdGV4dC9EZWNpbWFsRm9ybWF0U3ltYm9scy5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzA1LzA4IDIzOjM2OjM3ICQgCisgKiAkUmV2aXNpb246IDEuNiAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlRGF0YTsKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLlNlcmlhbGl6YWJsZTsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLlJlc291cmNlQnVuZGxlOworCisvKioKKyAqIFRoaXMgY2xhc3MgcmVwcmVzZW50cyB0aGUgc2V0IG9mIHN5bWJvbHMgKHN1Y2ggYXMgdGhlIGRlY2ltYWwgc2VwYXJhdG9yLCB0aGUKKyAqIGdyb3VwaW5nIHNlcGFyYXRvciwgYW5kIHNvIG9uKSBuZWVkZWQgYnkgPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4gdG8gZm9ybWF0CisgKiBudW1iZXJzLiA8Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPiBjcmVhdGVzIGZvciBpdHNlbGYgYW4gaW5zdGFuY2Ugb2YKKyAqIDxjb2RlPkRlY2ltYWxGb3JtYXRTeW1ib2xzPC9jb2RlPiBmcm9tIGl0cyBsb2NhbGUgZGF0YS4gIElmIHlvdSBuZWVkIHRvCisgKiBjaGFuZ2UgYW55IG9mIHRoZXNlIHN5bWJvbHMsIHlvdSBjYW4gZ2V0IHRoZQorICogPGNvZGU+RGVjaW1hbEZvcm1hdFN5bWJvbHM8L2NvZGU+IG9iamVjdCBmcm9tIHlvdXIgPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4KKyAqIGFuZCBtb2RpZnkgaXQuCisgKgorICogPHA+PHN0cm9uZz5UaGlzIGlzIGFuIGVuaGFuY2VkIHZlcnNpb24gb2YgPGNvZGU+RGVjaW1hbEZvcm1hdFN5bWJvbHM8L2NvZGU+IHRoYXQKKyAqIGlzIGJhc2VkIG9uIHRoZSBzdGFuZGFyZCB2ZXJzaW9uIGluIHRoZSBKREsuICBOZXcgb3IgY2hhbmdlZCBmdW5jdGlvbmFsaXR5CisgKiBpcyBsYWJlbGVkCisgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+Ljwvc3Ryb25nPgorICoKKyAqIEBzZWUgICAgICAgICAgamF2YS51dGlsLkxvY2FsZQorICogQHNlZSAgICAgICAgICBEZWNpbWFsRm9ybWF0CisgKiBAdmVyc2lvbiAgICAgIDEuMTIgMjkgSmFuIDE5OTcKKyAqIEBhdXRob3IgICAgICAgTWFyayBEYXZpcworICogQGF1dGhvciAgICAgICBBbGFuIExpdQorICovCisKK2ZpbmFsIHB1YmxpYyBjbGFzcyBEZWNpbWFsRm9ybWF0U3ltYm9scyBpbXBsZW1lbnRzIENsb25lYWJsZSwgU2VyaWFsaXphYmxlIHsKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIERlY2ltYWxGb3JtYXRTeW1ib2xzIG9iamVjdCBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqLworICAgIHB1YmxpYyBEZWNpbWFsRm9ybWF0U3ltYm9scygpIHsKKyAgICAgICAgaW5pdGlhbGl6ZSggTG9jYWxlLmdldERlZmF1bHQoKSApOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIERlY2ltYWxGb3JtYXRTeW1ib2xzIG9iamVjdCBmb3IgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRGVjaW1hbEZvcm1hdFN5bWJvbHMoIExvY2FsZSBsb2NhbGUgKSB7CisgICAgICAgIGluaXRpYWxpemUoIGxvY2FsZSApOworICAgIH0KKworICAgIC8qKgorICAgICAqIGNoYXJhY3RlciB1c2VkIGZvciB6ZXJvLiBEaWZmZXJlbnQgZm9yIEFyYWJpYywgZXRjLgorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGdldFplcm9EaWdpdCgpIHsKKyAgICAgICAgcmV0dXJuIHplcm9EaWdpdDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRaZXJvRGlnaXQoY2hhciB6ZXJvRGlnaXQpIHsKKyAgICAgICAgdGhpcy56ZXJvRGlnaXQgPSB6ZXJvRGlnaXQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogY2hhcmFjdGVyIHVzZWQgZm9yIHRob3VzYW5kcyBzZXBhcmF0b3IuIERpZmZlcmVudCBmb3IgRnJlbmNoLCBldGMuCisgICAgICovCisgICAgcHVibGljIGNoYXIgZ2V0R3JvdXBpbmdTZXBhcmF0b3IoKSB7CisgICAgICAgIHJldHVybiBncm91cGluZ1NlcGFyYXRvcjsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRHcm91cGluZ1NlcGFyYXRvcihjaGFyIGdyb3VwaW5nU2VwYXJhdG9yKSB7CisgICAgICAgIHRoaXMuZ3JvdXBpbmdTZXBhcmF0b3IgPSBncm91cGluZ1NlcGFyYXRvcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBjaGFyYWN0ZXIgdXNlZCBmb3IgZGVjaW1hbCBzaWduLiBEaWZmZXJlbnQgZm9yIEZyZW5jaCwgZXRjLgorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGdldERlY2ltYWxTZXBhcmF0b3IoKSB7CisgICAgICAgIHJldHVybiBkZWNpbWFsU2VwYXJhdG9yOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldERlY2ltYWxTZXBhcmF0b3IoY2hhciBkZWNpbWFsU2VwYXJhdG9yKSB7CisgICAgICAgIHRoaXMuZGVjaW1hbFNlcGFyYXRvciA9IGRlY2ltYWxTZXBhcmF0b3I7CisgICAgfQorCisgICAgLyoqCisgICAgICogY2hhcmFjdGVyIHVzZWQgZm9yIG1pbGxlIHBlcmNlbnQgc2lnbi4gRGlmZmVyZW50IGZvciBBcmFiaWMsIGV0Yy4KKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBnZXRQZXJNaWxsKCkgeworICAgICAgICByZXR1cm4gcGVyTWlsbDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRQZXJNaWxsKGNoYXIgcGVyTWlsbCkgeworICAgICAgICB0aGlzLnBlck1pbGwgPSBwZXJNaWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIGNoYXJhY3RlciB1c2VkIGZvciBwZXJjZW50IHNpZ24uIERpZmZlcmVudCBmb3IgQXJhYmljLCBldGMuCisgICAgICovCisgICAgcHVibGljIGNoYXIgZ2V0UGVyY2VudCgpIHsKKyAgICAgICAgcmV0dXJuIHBlcmNlbnQ7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0UGVyY2VudChjaGFyIHBlcmNlbnQpIHsKKyAgICAgICAgdGhpcy5wZXJjZW50ID0gcGVyY2VudDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBjaGFyYWN0ZXIgdXNlZCBmb3IgYSBkaWdpdCBpbiBhIHBhdHRlcm4uCisgICAgICovCisgICAgcHVibGljIGNoYXIgZ2V0RGlnaXQoKSB7CisgICAgICAgIHJldHVybiBkaWdpdDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXREaWdpdChjaGFyIGRpZ2l0KSB7CisgICAgICAgIHRoaXMuZGlnaXQgPSBkaWdpdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBjaGFyYWN0ZXIgdXNlZCB0byBzZXBhcmF0ZSBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgc3VicGF0dGVybnMKKyAgICAgKiBpbiBhIHBhdHRlcm4uCisgICAgICovCisgICAgcHVibGljIGNoYXIgZ2V0UGF0dGVyblNlcGFyYXRvcigpIHsKKyAgICAgICAgcmV0dXJuIHBhdHRlcm5TZXBhcmF0b3I7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0UGF0dGVyblNlcGFyYXRvcihjaGFyIHBhdHRlcm5TZXBhcmF0b3IpIHsKKyAgICAgICAgdGhpcy5wYXR0ZXJuU2VwYXJhdG9yID0gcGF0dGVyblNlcGFyYXRvcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTdHJpbmcgdXNlZCB0byByZXByZXNlbnQgaW5maW5pdHkuIEFsbW9zdCBhbHdheXMgbGVmdAorICAgICAqIHVuY2hhbmdlZC4KKyAgICAgKi8KKyAgICAgLy9CdWcgNDE5NDE3MyBbUmljaGFyZC9HQ0xdCisKKyAgICBwdWJsaWMgU3RyaW5nIGdldEluZmluaXR5KCkgeworICAgICAgICByZXR1cm4gaW5maW5pdHk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0SW5maW5pdHkoU3RyaW5nIGluZmluaXR5KSB7CisgICAgICAgIHRoaXMuaW5maW5pdHkgPSBpbmZpbml0eTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTdHJpbmcgdXNlZCB0byByZXByZXNlbnQgTmFOLiBBbG1vc3QgYWx3YXlzIGxlZnQKKyAgICAgKiB1bmNoYW5nZWQuCisgICAgICovCisgICAgIC8vQnVnIDQxOTQxNzMgW1JpY2hhcmQvR0NMXQorICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFOKCkgeworICAgICAgICByZXR1cm4gTmFOOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldE5hTihTdHJpbmcgTmFOKSB7CisgICAgICAgIHRoaXMuTmFOID0gTmFOOworICAgIH0KKworICAgIC8qKgorICAgICAqIGNoYXJhY3RlciB1c2VkIHRvIHJlcHJlc2VudCBtaW51cyBzaWduLiBJZiBubyBleHBsaWNpdAorICAgICAqIG5lZ2F0aXZlIGZvcm1hdCBpcyBzcGVjaWZpZWQsIG9uZSBpcyBmb3JtZWQgYnkgcHJlZml4aW5nCisgICAgICogbWludXNTaWduIHRvIHRoZSBwb3NpdGl2ZSBmb3JtYXQuCisgICAgICovCisgICAgcHVibGljIGNoYXIgZ2V0TWludXNTaWduKCkgeworICAgICAgICByZXR1cm4gbWludXNTaWduOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldE1pbnVzU2lnbihjaGFyIG1pbnVzU2lnbikgeworICAgICAgICB0aGlzLm1pbnVzU2lnbiA9IG1pbnVzU2lnbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHN0cmluZyBkZW5vdGluZyB0aGUgbG9jYWwgY3VycmVuY3kuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRDdXJyZW5jeVN5bWJvbCgpCisgICAgeworICAgICAgICByZXR1cm4gY3VycmVuY3lTeW1ib2w7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBzdHJpbmcgZGVub3RpbmcgdGhlIGxvY2FsIGN1cnJlbmN5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEN1cnJlbmN5U3ltYm9sKFN0cmluZyBjdXJyZW5jeSkKKyAgICB7CisgICAgICAgIGN1cnJlbmN5U3ltYm9sID0gY3VycmVuY3k7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBpbnRlcm5hdGlvbmFsIHN0cmluZyBkZW5vdGluZyB0aGUgbG9jYWwgY3VycmVuY3kuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRJbnRlcm5hdGlvbmFsQ3VycmVuY3lTeW1ib2woKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGludGxDdXJyZW5jeVN5bWJvbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGludGVybmF0aW9uYWwgc3RyaW5nIGRlbm90aW5nIHRoZSBsb2NhbCBjdXJyZW5jeS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRJbnRlcm5hdGlvbmFsQ3VycmVuY3lTeW1ib2woU3RyaW5nIGN1cnJlbmN5KQorICAgIHsKKyAgICAgICAgaW50bEN1cnJlbmN5U3ltYm9sID0gY3VycmVuY3k7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBtb25ldGFyeSBkZWNpbWFsIHNlcGFyYXRvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBnZXRNb25ldGFyeURlY2ltYWxTZXBhcmF0b3IoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1vbmV0YXJ5U2VwYXJhdG9yOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgbW9uZXRhcnkgZGVjaW1hbCBzZXBhcmF0b3IuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TW9uZXRhcnlEZWNpbWFsU2VwYXJhdG9yKGNoYXIgc2VwKQorICAgIHsKKyAgICAgICAgbW9uZXRhcnlTZXBhcmF0b3IgPSBzZXA7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFJldHVybiB0aGUgc3RyaW5nIHVzZWQgdG8gc2VwYXJhdGUgdGhlIG1hbnRpc3NhIGZyb20gdGhlIGV4cG9uZW50LgorICAgICAqIEV4YW1wbGVzOiAieDEwXiIgZm9yIDEuMjN4MTBeNCwgIkUiIGZvciAxLjIzRTQuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIGV4cG9uZW50IHN5bWJvbCwgdXNlZCBpbiBsb2NhbGl6ZWQgcGF0dGVybnMKKyAgICAgKiBhbmQgZm9ybWF0dGVkIHN0cmluZ3MKKyAgICAgKiBAc2VlICNzZXRFeHBvbmVudFNlcGFyYXRvcgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RXhwb25lbnRTZXBhcmF0b3IoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGV4cG9uZW50U2VwYXJhdG9yOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBTZXQgdGhlIHN0cmluZyB1c2VkIHRvIHNlcGFyYXRlIHRoZSBtYW50aXNzYSBmcm9tIHRoZSBleHBvbmVudC4KKyAgICAgKiBFeGFtcGxlczogIngxMF4iIGZvciAxLjIzeDEwXjQsICJFIiBmb3IgMS4yM0U0LgorICAgICAqIEBwYXJhbSBleHAgdGhlIGxvY2FsaXplZCBleHBvbmVudCBzeW1ib2wsIHVzZWQgaW4gbG9jYWxpemVkIHBhdHRlcm5zCisgICAgICogYW5kIGZvcm1hdHRlZCBzdHJpbmdzCisgICAgICogQHNlZSAjZ2V0RXhwb25lbnRTZXBhcmF0b3IKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRFeHBvbmVudFNlcGFyYXRvcihTdHJpbmcgZXhwKQorICAgIHsKKyAgICAgICAgZXhwb25lbnRTZXBhcmF0b3IgPSBleHA7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFJldHVybiB0aGUgbG9jYWxpemVkIHBsdXMgc2lnbi4KKyAgICAgKiBAcmV0dXJuIHRoZSBwbHVzIHNpZ24sIHVzZWQgaW4gbG9jYWxpemVkIHBhdHRlcm5zIGFuZCBmb3JtYXR0ZWQKKyAgICAgKiBzdHJpbmdzCisgICAgICogQHNlZSAjc2V0UGx1c1NpZ24KKyAgICAgKiBAc2VlICNzZXRNaW51c1NpZ24KKyAgICAgKiBAc2VlICNnZXRNaW51c1NpZ24KKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBnZXRQbHVzU2lnbigpIHsKKyAgICAgICAgcmV0dXJuIHBsdXNTaWduOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBTZXQgdGhlIGxvY2FsaXplZCBwbHVzIHNpZ24uCisgICAgICogQHBhcmFtIHBsdXMgdGhlIHBsdXMgc2lnbiwgdXNlZCBpbiBsb2NhbGl6ZWQgcGF0dGVybnMgYW5kIGZvcm1hdHRlZAorICAgICAqIHN0cmluZ3MKKyAgICAgKiBAc2VlICNnZXRQbHVzU2lnbgorICAgICAqIEBzZWUgI3NldE1pbnVzU2lnbgorICAgICAqIEBzZWUgI2dldE1pbnVzU2lnbgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFBsdXNTaWduKGNoYXIgcGx1cykgeworICAgICAgICBwbHVzU2lnbiA9IHBsdXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFJldHVybiB0aGUgY2hhcmFjdGVyIHVzZWQgdG8gcGFkIG51bWJlcnMgb3V0IHRvIGEgc3BlY2lmaWVkIHdpZHRoLiAgVGhpcworICAgICAqIGlzIG5vdCB0aGUgcGFkIGNoYXJhY3RlciBpdHNlbGY7IHJhdGhlciwgaXQgaXMgdGhlIHNwZWNpYWwgcGF0dGVybgorICAgICAqIGNoYXJhY3RlciA8ZW0+cHJlY2VkaW5nPC9lbT4gdGhlIHBhZCBjaGFyYWN0ZXIuICBJbiB0aGUgcGF0dGVybgorICAgICAqICIqXyMsIyMwIiwgJyonIGlzIHRoZSBwYWQgZXNjYXBlLCBhbmQgJ18nIGlzIHRoZSBwYWQgY2hhcmFjdGVyLgorICAgICAqIEByZXR1cm4gdGhlIGNoYXJhY3RlciAKKyAgICAgKiBAc2VlICNzZXRQYWRFc2NhcGUKKyAgICAgKiBAc2VlIERlY2ltYWxGb3JtYXQjZ2V0Rm9ybWF0V2lkdGgKKyAgICAgKiBAc2VlIERlY2ltYWxGb3JtYXQjZ2V0UGFkUG9zaXRpb24KKyAgICAgKiBAc2VlIERlY2ltYWxGb3JtYXQjZ2V0UGFkQ2hhcmFjdGVyCisgICAgICovCisgICAgcHVibGljIGNoYXIgZ2V0UGFkRXNjYXBlKCkgeworICAgICAgICByZXR1cm4gcGFkRXNjYXBlOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBTZXQgdGhlIGNoYXJhY3RlciB1c2VkIHRvIHBhZCBudW1iZXJzIG91dCB0byBhIHNwZWNpZmllZCB3aWR0aC4gIFRoaXMgaXMKKyAgICAgKiBub3QgdGhlIHBhZCBjaGFyYWN0ZXIgaXRzZWxmOyByYXRoZXIsIGl0IGlzIHRoZSBzcGVjaWFsIHBhdHRlcm4gY2hhcmFjdGVyCisgICAgICogPGVtPnByZWNlZGluZzwvZW0+IHRoZSBwYWQgY2hhcmFjdGVyLiAgSW4gdGhlIHBhdHRlcm4gIipfIywjIzAiLCAnKicgaXMKKyAgICAgKiB0aGUgcGFkIGVzY2FwZSwgYW5kICdfJyBpcyB0aGUgcGFkIGNoYXJhY3Rlci4KKyAgICAgKiBAc2VlICNnZXRQYWRFc2NhcGUKKyAgICAgKiBAc2VlIERlY2ltYWxGb3JtYXQjc2V0Rm9ybWF0V2lkdGgKKyAgICAgKiBAc2VlIERlY2ltYWxGb3JtYXQjc2V0UGFkUG9zaXRpb24KKyAgICAgKiBAc2VlIERlY2ltYWxGb3JtYXQjc2V0UGFkQ2hhcmFjdGVyCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UGFkRXNjYXBlKGNoYXIgYykgeworICAgICAgICBwYWRFc2NhcGUgPSBjOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxvY2FsZSBmb3Igd2hpY2ggdGhpcyBvYmplY3Qgd2FzIGNvbnN0cnVjdGVkLgorICAgICAqLworICAgIHB1YmxpYyBMb2NhbGUgZ2V0TG9jYWxlKCkgeworICAgICAgICByZXR1cm4gbG9jYWxlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFN0YW5kYXJkIG92ZXJyaWRlLgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gKERlY2ltYWxGb3JtYXRTeW1ib2xzKXN1cGVyLmNsb25lKCk7CisgICAgICAgICAgICAvLyBvdGhlciBmaWVsZHMgYXJlIGJpdC1jb3BpZWQKKyAgICAgICAgfSBjYXRjaCAoQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlIGVxdWFscworICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKSB7CisgICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAodGhpcyA9PSBvYmopIHJldHVybiB0cnVlOworICAgICAgICBpZiAoZ2V0Q2xhc3MoKSAhPSBvYmouZ2V0Q2xhc3MoKSkgcmV0dXJuIGZhbHNlOworICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBvdGhlciA9IChEZWNpbWFsRm9ybWF0U3ltYm9scykgb2JqOworICAgICAgICByZXR1cm4gKHplcm9EaWdpdCA9PSBvdGhlci56ZXJvRGlnaXQgJiYKKyAgICAgICAgZ3JvdXBpbmdTZXBhcmF0b3IgPT0gb3RoZXIuZ3JvdXBpbmdTZXBhcmF0b3IgJiYKKyAgICAgICAgZGVjaW1hbFNlcGFyYXRvciA9PSBvdGhlci5kZWNpbWFsU2VwYXJhdG9yICYmCisgICAgICAgIHBlcmNlbnQgPT0gb3RoZXIucGVyY2VudCAmJgorICAgICAgICBwZXJNaWxsID09IG90aGVyLnBlck1pbGwgJiYKKyAgICAgICAgZGlnaXQgPT0gb3RoZXIuZGlnaXQgJiYKKyAgICAgICAgbWludXNTaWduID09IG90aGVyLm1pbnVzU2lnbiAmJgorICAgICAgICBwYXR0ZXJuU2VwYXJhdG9yID09IG90aGVyLnBhdHRlcm5TZXBhcmF0b3IgJiYKKyAgICAgICAgaW5maW5pdHkuZXF1YWxzKG90aGVyLmluZmluaXR5KSAmJgorICAgICAgICBOYU4uZXF1YWxzKG90aGVyLk5hTikgJiYKKyAgICAgICAgY3VycmVuY3lTeW1ib2wuZXF1YWxzKG90aGVyLmN1cnJlbmN5U3ltYm9sKSAmJgorICAgICAgICBpbnRsQ3VycmVuY3lTeW1ib2wuZXF1YWxzKG90aGVyLmludGxDdXJyZW5jeVN5bWJvbCkgJiYKKyAgICAgICAgcGFkRXNjYXBlID09IG90aGVyLnBhZEVzY2FwZSAmJiAvLyBbTkVXXQorICAgICAgICBwbHVzU2lnbiA9PSBvdGhlci5wbHVzU2lnbiAmJiAvLyBbTkVXXQorICAgICAgICBleHBvbmVudFNlcGFyYXRvci5lcXVhbHMob3RoZXIuZXhwb25lbnRTZXBhcmF0b3IpICYmIC8vIFtORVddCisgICAgICAgIG1vbmV0YXJ5U2VwYXJhdG9yID09IG90aGVyLm1vbmV0YXJ5U2VwYXJhdG9yKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBoYXNoQ29kZQorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gemVyb0RpZ2l0OworICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICogMzcgKyBncm91cGluZ1NlcGFyYXRvcjsKKyAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAqIDM3ICsgZGVjaW1hbFNlcGFyYXRvcjsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZXMgdGhlIHN5bWJvbHMgZnJvbSB0aGUgTG9jYWxlRWxlbWVudHMgcmVzb3VyY2UgYnVuZGxlLgorICAgICAqIE5vdGU6IFRoZSBvcmdhbml6YXRpb24gb2YgTG9jYWxlRWxlbWVudHMgYmFkbHkgbmVlZHMgdG8gYmUKKyAgICAgKiBjbGVhbmVkIHVwLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBpbml0aWFsaXplKCBMb2NhbGUgbG9jYWxlICkgeworICAgICAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZTsKKyAgICAgICAgLyogdHJ5IHRoZSBjYWNoZSBmaXJzdCAqLworICAgICAgICBTdHJpbmdbXVtdIGRhdGEgPSAoU3RyaW5nW11bXSkgY2FjaGVkTG9jYWxlRGF0YS5nZXQobG9jYWxlKTsKKyAgICAgICAgU3RyaW5nW10gbnVtYmVyRWxlbWVudHM7CisgICAgICAgIFN0cmluZ1tdIGN1cnJlbmN5RWxlbWVudHM7CisgICAgICAgIGlmIChkYXRhID09IG51bGwpIHsgIC8qIGNhY2hlIG1pc3MgKi8KKyAgICAgICAgICAgIGRhdGEgPSBuZXcgU3RyaW5nWzJdW107CisgICAgICAgICAgICBSZXNvdXJjZUJ1bmRsZSByYiA9IElDVUxvY2FsZURhdGEuZ2V0TG9jYWxlRWxlbWVudHMobG9jYWxlKTsKKyAgICAgICAgICAgIGRhdGFbMF0gPSByYi5nZXRTdHJpbmdBcnJheSgiTnVtYmVyRWxlbWVudHMiKTsKKyAgICAgICAgICAgIGRhdGFbMV0gPSByYi5nZXRTdHJpbmdBcnJheSgiQ3VycmVuY3lFbGVtZW50cyIpOworICAgICAgICAgICAgLyogdXBkYXRlIGNhY2hlICovCisgICAgICAgICAgICBjYWNoZWRMb2NhbGVEYXRhLnB1dChsb2NhbGUsIGRhdGEpOworICAgICAgICB9CisgICAgICAgIG51bWJlckVsZW1lbnRzID0gZGF0YVswXTsKKyAgICAgICAgY3VycmVuY3lFbGVtZW50cyA9IGRhdGFbMV07CisKKwkvLyB7ZGxmfSBjbGVhbiB1cCBiZWxvdyBub3cgdGhhdCB3ZSBoYXZlIG91ciBvd24gcmVzb3VyY2UgZGF0YQorICAgICAgICBkZWNpbWFsU2VwYXJhdG9yID0gbnVtYmVyRWxlbWVudHNbMF0uY2hhckF0KDApOworICAgICAgICBncm91cGluZ1NlcGFyYXRvciA9IG51bWJlckVsZW1lbnRzWzFdLmNoYXJBdCgwKTsKKyAgICAgICAgLy8gW05FV10gVGVtcG9yYXJ5IGhhY2sgdG8gc3VwcG9ydCBvbGQgSkRLIDEuMSByZXNvdXJjZXMKKyAgICAgICAgcGF0dGVyblNlcGFyYXRvciA9IG51bWJlckVsZW1lbnRzWzJdLmxlbmd0aCgpID4gMCA/CisgICAgICAgICAgICBudW1iZXJFbGVtZW50c1syXS5jaGFyQXQoMCkgOiAnOyc7CisgICAgICAgIC8vIHBhdHRlcm5TZXBhcmF0b3IgPSBudW1iZXJFbGVtZW50c1syXS5jaGFyQXQoMCk7CisgICAgICAgIHBlcmNlbnQgPSBudW1iZXJFbGVtZW50c1szXS5jaGFyQXQoMCk7CisgICAgICAgIHplcm9EaWdpdCA9IG51bWJlckVsZW1lbnRzWzRdLmNoYXJBdCgwKTsgLy9kaWZmZXJlbnQgZm9yIEFyYWJpYyxldGMuCisgICAgICAgIGRpZ2l0ID0gbnVtYmVyRWxlbWVudHNbNV0uY2hhckF0KDApOworICAgICAgICBtaW51c1NpZ24gPSBudW1iZXJFbGVtZW50c1s2XS5jaGFyQXQoMCk7CisgICAgICAgIAorICAgICAgICAvLyBbTkVXXSBUZW1wb3JhcnkgaGFjayB0byBzdXBwb3J0IEpESyB2ZXJzaW9ucyBiZWZvcmUgMS4xLjYgKD8pCisgICAgICAgIGV4cG9uZW50U2VwYXJhdG9yID0gbnVtYmVyRWxlbWVudHMubGVuZ3RoID49IDkgPworICAgICAgICAgICAgbnVtYmVyRWxlbWVudHNbN10gOiBEZWNpbWFsRm9ybWF0LlBBVFRFUk5fRVhQT05FTlQ7CisgICAgICAgIHBlck1pbGwgPSBudW1iZXJFbGVtZW50cy5sZW5ndGggPj0gOSA/CisgICAgICAgICAgICBudW1iZXJFbGVtZW50c1s4XS5jaGFyQXQoMCkgOiAnXHUyMDMwJzsKKyAgICAgICAgaW5maW5pdHkgID0gbnVtYmVyRWxlbWVudHMubGVuZ3RoID49IDEwID8KKyAgICAgICAgICAgIG51bWJlckVsZW1lbnRzWzldIDogIlx1MjIxZSI7CisgICAgICAgIE5hTiA9IG51bWJlckVsZW1lbnRzLmxlbmd0aCA+PSAxMSA/CisgICAgICAgICAgICBudW1iZXJFbGVtZW50c1sxMF0gOiAiXHVmZmZkIjsKKyAgICAgICAgCisgICAgICAgIC8vIFtORVddIFRlbXBvcmFyaWx5IGhhcmQgY29kZTsgcmV0cmlldmUgZnJvbSByZXNvdXJjZSBsYXRlcgorICAgICAgICBwbHVzU2lnbiAgPSBEZWNpbWFsRm9ybWF0LlBBVFRFUk5fUExVU19TSUdOOworICAgICAgICBwYWRFc2NhcGUgPSBEZWNpbWFsRm9ybWF0LlBBVFRFUk5fUEFEX0VTQ0FQRTsKKworICAgICAgICBjdXJyZW5jeVN5bWJvbCA9IGN1cnJlbmN5RWxlbWVudHNbMF07CisgICAgICAgIGludGxDdXJyZW5jeVN5bWJvbCA9IGN1cnJlbmN5RWxlbWVudHNbMV07CisKKyAgICAgICAgLy8gaWYgdGhlIHJlc291cmNlIGRhdGEgc3BlY2lmaWVkIHRoZSBlbXB0eSBzdHJpbmcgYXMgdGhlIG1vbmV0YXJ5IGRlY2ltYWwKKyAgICAgICAgLy8gc2VwYXJhdG9yLCB0aGF0IG1lYW5zIHdlIHNob3VsZCBqdXN0IHVzZSB0aGUgcmVndWxhciBzZXBhcmF0b3IgYXMgdGhlCisgICAgICAgIC8vIG1vbmV0YXJ5IHNlcGFyYXRvcgorICAgICAgICBpZiAoY3VycmVuY3lFbGVtZW50c1syXS5sZW5ndGgoKSA9PSAwKQorICAgICAgICAgICAgbW9uZXRhcnlTZXBhcmF0b3IgPSBkZWNpbWFsU2VwYXJhdG9yOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtb25ldGFyeVNlcGFyYXRvciA9IGN1cnJlbmN5RWxlbWVudHNbMl0uY2hhckF0KDApOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlYWQgdGhlIGRlZmF1bHQgc2VyaWFsaXphYmxlIGZpZWxkcywgdGhlbiBpZiA8Y29kZT5zZXJpYWxWZXJzaW9uT25TdHJlYW08L2NvZGU+CisgICAgICogaXMgbGVzcyB0aGFuIDEsIGluaXRpYWxpemUgPGNvZGU+bW9uZXRhcnlTZXBhcmF0b3I8L2NvZGU+IHRvIGJlCisgICAgICogdGhlIHNhbWUgYXMgPGNvZGU+ZGVjaW1hbFNlcGFyYXRvcjwvY29kZT4gYW5kIDxjb2RlPmV4cG9uZW50aWFsPC9jb2RlPgorICAgICAqIHRvIGJlICdFJy4KKyAgICAgKiBGaW5hbGx5LCBzZXQgc2VyaWFsVmVyc2lvbk9uU3RyZWFtIGJhY2sgdG8gdGhlIG1heGltdW0gYWxsb3dlZCB2YWx1ZSBzbyB0aGF0CisgICAgICogZGVmYXVsdCBzZXJpYWxpemF0aW9uIHdpbGwgd29yayBwcm9wZXJseSBpZiB0aGlzIG9iamVjdCBpcyBzdHJlYW1lZCBvdXQgYWdhaW4uCisgICAgICoKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcmVhZE9iamVjdChPYmplY3RJbnB1dFN0cmVhbSBzdHJlYW0pCisgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbiwgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiB7CisgICAgICAgIHN0cmVhbS5kZWZhdWx0UmVhZE9iamVjdCgpOworICAgICAgICBpZiAoc2VyaWFsVmVyc2lvbk9uU3RyZWFtIDwgMSkgeworICAgICAgICAgICAgLy8gRGlkbid0IGhhdmUgbW9uZXRhcnlTZXBhcmF0b3Igb3IgZXhwb25lbnRpYWwgZmllbGQ7CisgICAgICAgICAgICAvLyB1c2UgZGVmYXVsdHMuCisgICAgICAgICAgICBtb25ldGFyeVNlcGFyYXRvciA9IGRlY2ltYWxTZXBhcmF0b3I7CisgICAgICAgICAgICBleHBvbmVudGlhbCA9ICdFJzsKKyAgICAgICAgfQorICAgICAgICBpZiAoc2VyaWFsVmVyc2lvbk9uU3RyZWFtIDwgMikgeyAvLyBbTkVXXQorICAgICAgICAgICAgcGFkRXNjYXBlID0gRGVjaW1hbEZvcm1hdC5QQVRURVJOX1BBRF9FU0NBUEU7CisgICAgICAgICAgICBwbHVzU2lnbiA9IERlY2ltYWxGb3JtYXQuUEFUVEVSTl9QTFVTX1NJR047CisgICAgICAgICAgICBleHBvbmVudFNlcGFyYXRvciA9IFN0cmluZy52YWx1ZU9mKGV4cG9uZW50aWFsKTsKKyAgICAgICAgICAgIC8vIEFsdGhvdWdoIHdlIHJlYWQgdGhlIGV4cG9uZW50aWFsIGZpZWxkIG9uIHN0cmVhbSB0byBjcmVhdGUgdGhlCisgICAgICAgICAgICAvLyBleHBvbmVudFNlcGFyYXRvciwgd2UgZG9uJ3QgZG8gdGhlIHJldmVyc2UsIHNpbmNlIHNjaWVudGlmaWMKKyAgICAgICAgICAgIC8vIG5vdGF0aW9uIGlzbid0IHN1cHBvcnRlZCBieSB0aGUgb2xkIGNsYXNzZXMsIGV2ZW4gdGhvdWdoIHRoZQorICAgICAgICAgICAgLy8gc3ltYm9sIGlzIHRoZXJlLgorICAgICAgICB9CisgICAgICAgIGlmIChzZXJpYWxWZXJzaW9uT25TdHJlYW0gPCAzKSB7CisgICAgICAgICAgICAvLyBSZXN1cnJlY3RlZCBvYmplY3RzIGZyb20gb2xkIHN0cmVhbXMgd2lsbCBoYXZlIG5vCisgICAgICAgICAgICAvLyBsb2NhbGUuICBUaGVyZSBpcyBubyAxMDAlIGZpeCBmb3IgdGhpcy4gIEEKKyAgICAgICAgICAgIC8vIDkwJSBmaXggaXMgdG8gY29uc3RydWN0IGEgbWFwcGluZyBvZiBkYXRhIGJhY2sgdG8KKyAgICAgICAgICAgIC8vIGxvY2FsZSwgcGVyaGFwcyBhIGhhc2ggb2YgYWxsIG91ciBtZW1iZXJzLiAgVGhpcyBpcworICAgICAgICAgICAgLy8gZXhwZW5zaXZlIGFuZCBkb2Vzbid0IHNlZW0gd29ydGggaXQuCisgICAgICAgICAgICBsb2NhbGUgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICB9CisgICAgICAgIHNlcmlhbFZlcnNpb25PblN0cmVhbSA9IGN1cnJlbnRTZXJpYWxWZXJzaW9uOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoYXJhY3RlciB1c2VkIGZvciB6ZXJvLgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqIEBzZWUgI2dldFplcm9EaWdpdAorICAgICAqLworICAgIHByaXZhdGUgIGNoYXIgICAgemVyb0RpZ2l0OworCisgICAgLyoqCisgICAgICogQ2hhcmFjdGVyIHVzZWQgZm9yIHRob3VzYW5kcyBzZXBhcmF0b3IuCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjZ2V0R3JvdXBpbmdTZXBhcmF0b3IKKyAgICAgKi8KKyAgICBwcml2YXRlICBjaGFyICAgIGdyb3VwaW5nU2VwYXJhdG9yOworCisgICAgLyoqCisgICAgICogQ2hhcmFjdGVyIHVzZWQgZm9yIGRlY2ltYWwgc2lnbi4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXREZWNpbWFsU2VwYXJhdG9yCisgICAgICovCisgICAgcHJpdmF0ZSAgY2hhciAgICBkZWNpbWFsU2VwYXJhdG9yOworCisgICAgLyoqCisgICAgICogQ2hhcmFjdGVyIHVzZWQgZm9yIG1pbGxlIHBlcmNlbnQgc2lnbi4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRQZXJNaWxsCisgICAgICovCisgICAgcHJpdmF0ZSAgY2hhciAgICBwZXJNaWxsOworCisgICAgLyoqCisgICAgICogQ2hhcmFjdGVyIHVzZWQgZm9yIHBlcmNlbnQgc2lnbi4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjZ2V0UGVyY2VudAorICAgICAqLworICAgIHByaXZhdGUgIGNoYXIgICAgcGVyY2VudDsKKworICAgIC8qKgorICAgICAqIENoYXJhY3RlciB1c2VkIGZvciBhIGRpZ2l0IGluIGEgcGF0dGVybi4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXREaWdpdAorICAgICAqLworICAgIHByaXZhdGUgIGNoYXIgICAgZGlnaXQ7CisKKyAgICAvKioKKyAgICAgKiBDaGFyYWN0ZXIgdXNlZCB0byBzZXBhcmF0ZSBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgc3VicGF0dGVybnMKKyAgICAgKiBpbiBhIHBhdHRlcm4uCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjZ2V0UGF0dGVyblNlcGFyYXRvcgorICAgICAqLworICAgIHByaXZhdGUgIGNoYXIgICAgcGF0dGVyblNlcGFyYXRvcjsKKworICAgIC8qKgorICAgICAqIENoYXJhY3RlciB1c2VkIHRvIHJlcHJlc2VudCBpbmZpbml0eS4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjZ2V0SW5maW5pdHkKKyAgICAgKi8KKyAgICBwcml2YXRlICBTdHJpbmcgIGluZmluaXR5OworCisgICAgLyoqCisgICAgICogQ2hhcmFjdGVyIHVzZWQgdG8gcmVwcmVzZW50IE5hTi4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjZ2V0TmFOCisgICAgICovCisgICAgcHJpdmF0ZSAgU3RyaW5nICBOYU47CisKKyAgICAvKioKKyAgICAgKiBDaGFyYWN0ZXIgdXNlZCB0byByZXByZXNlbnQgbWludXMgc2lnbi4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjZ2V0TWludXNTaWduCisgICAgICovCisgICAgcHJpdmF0ZSAgY2hhciAgICBtaW51c1NpZ247CisKKyAgICAvKioKKyAgICAgKiBTdHJpbmcgZGVub3RpbmcgdGhlIGxvY2FsIGN1cnJlbmN5LCBlLmcuICIkIi4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjZ2V0Q3VycmVuY3lTeW1ib2wKKyAgICAgKi8KKyAgICBwcml2YXRlICBTdHJpbmcgIGN1cnJlbmN5U3ltYm9sOworCisgICAgLyoqCisgICAgICogSW50ZXJuYXRpb25hbCBzdHJpbmcgZGVub3RpbmcgdGhlIGxvY2FsIGN1cnJlbmN5LCBlLmcuICJVU0QiLgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRJbnRlcm5hdGlvbmFsQ3VycmVuY3lTeW1ib2wKKyAgICAgKi8KKyAgICBwcml2YXRlICBTdHJpbmcgIGludGxDdXJyZW5jeVN5bWJvbDsKKworICAgIC8qKgorICAgICAqIFRoZSBkZWNpbWFsIHNlcGFyYXRvciB1c2VkIHdoZW4gZm9ybWF0dGluZyBjdXJyZW5jeSB2YWx1ZXMuCisgICAgICogQHNlcmlhbAorICAgICAqIEBzZWUgI2dldE1vbmV0YXJ5RGVjaW1hbFNlcGFyYXRvcgorICAgICAqLworICAgIHByaXZhdGUgIGNoYXIgICAgbW9uZXRhcnlTZXBhcmF0b3I7IC8vIEZpZWxkIG5ldyBpbiBKREsgMS4xLjYKKworICAgIC8qKgorICAgICAqIFRoZSBjaGFyYWN0ZXIgdXNlZCB0byBkaXN0aW5ndWlzaCB0aGUgZXhwb25lbnQgaW4gYSBudW1iZXIgZm9ybWF0dGVkCisgICAgICogaW4gZXhwb25lbnRpYWwgbm90YXRpb24sIGUuZy4gJ0UnIGZvciBhIG51bWJlciBzdWNoIGFzICIxLjIzRTQ1Ii4KKyAgICAgKiA8cD4KKyAgICAgKiBOb3RlIHRoYXQgdGhpcyBmaWVsZCBoYXMgYmVlbiBzdXBlcnNlZGVkIGJ5IDxjb2RlPmV4cG9uZW50U2VwYXJhdG9yPC9jb2RlPi4KKyAgICAgKiBJdCBpcyByZXRhaW5lZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlICBjaGFyICAgIGV4cG9uZW50aWFsOyAgICAgICAvLyBGaWVsZCBuZXcgaW4gSkRLIDEuMS42CisKKyAgICAvKioKKyAgICAgKiBUaGUgc3RyaW5nIHVzZWQgdG8gc2VwYXJhdGUgdGhlIG1hbnRpc3NhIGZyb20gdGhlIGV4cG9uZW50LgorICAgICAqIEV4YW1wbGVzOiAieDEwXiIgZm9yIDEuMjN4MTBeNCwgIkUiIGZvciAxLjIzRTQuCisgICAgICogPHA+CisgICAgICogTm90ZSB0aGF0IHRoaXMgc3VwZXJzZWRlcyB0aGUgPGNvZGU+ZXhwb25lbnRpYWw8L2NvZGU+IGZpZWxkLgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqIEBzaW5jZSBBbHBoYVdvcmtzCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgZXhwb25lbnRTZXBhcmF0b3I7CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogVGhlIGNoYXJhY3RlciB1c2VkIHRvIGluZGljYXRlIGEgcGFkZGluZyBjaGFyYWN0ZXIgaW4gYSBmb3JtYXQsCisgICAgICogZS5nLiwgJyonIGluIGEgcGF0dGVybiBzdWNoIGFzICIkKl8jLCMjMC4wMCIuCisgICAgICogQHNlcmlhbAorICAgICAqIEBzaW5jZSBBbHBoYVdvcmtzCisgICAgICovCisgICAgcHJpdmF0ZSBjaGFyIHBhZEVzY2FwZTsKKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBUaGUgY2hhcmFjdGVyIHVzZWQgdG8gaW5kaWNhdGUgYSBwbHVzIHNpZ24uCisgICAgICogQHNlcmlhbAorICAgICAqIEBzaW5jZSBBbHBoYVdvcmtzCisgICAgICovCisgICAgcHJpdmF0ZSBjaGFyIHBsdXNTaWduOworCisgICAgLyoqCisgICAgICogVGhlIGxvY2FsZSBmb3Igd2hpY2ggdGhpcyBvYmplY3Qgd2FzIGNvbnN0cnVjdGVkLiAgU2V0IHRvIHRoZQorICAgICAqIGRlZmF1bHQgbG9jYWxlIGZvciBvYmplY3RzIHJlc3VycmVjdGVkIGZyb20gb2xkIHN0cmVhbXMuCisgICAgICogQHNpbmNlIElDVSAyLjIKKyAgICAgKi8KKyAgICBwcml2YXRlIExvY2FsZSBsb2NhbGU7CisKKyAgICAvLyBQcm9jbGFpbSBKREsgMS4xIEZDUyBjb21wYXRpYmlsaXR5CisgICAgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDU3NzI3OTYyNDMzOTczNTAzMDBMOworCisgICAgLy8gVGhlIGludGVybmFsIHNlcmlhbCB2ZXJzaW9uIHdoaWNoIHNheXMgd2hpY2ggdmVyc2lvbiB3YXMgd3JpdHRlbgorICAgIC8vIC0gMCAoZGVmYXVsdCkgZm9yIHZlcnNpb24gdXAgdG8gSkRLIDEuMS41CisgICAgLy8gLSAxIGZvciB2ZXJzaW9uIGZyb20gSkRLIDEuMS42LCB3aGljaCBpbmNsdWRlcyB0d28gbmV3IGZpZWxkczoKKyAgICAvLyAgICAgbW9uZXRhcnlTZXBhcmF0b3IgYW5kIGV4cG9uZW50aWFsLgorICAgIC8vIC0gMiBmb3IgdmVyc2lvbiBmcm9tIEFscGhhV29ya3MsIHdoaWNoIGluY2x1ZGVzIDMgbmV3IGZpZWxkczoKKyAgICAvLyAgICAgcGFkRXNjYXBlLCBleHBvbmVudFNlcGFyYXRvciwgYW5kIHBsdXNTaWduLgorICAgIC8vIC0gMyBmb3IgSUNVIDIuMiwgd2hpY2ggaW5jbHVkZXMgdGhlIGxvY2FsZSBmaWVsZAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBjdXJyZW50U2VyaWFsVmVyc2lvbiA9IDM7CisgICAgCisgICAgLyoqCisgICAgICogRGVzY3JpYmVzIHRoZSB2ZXJzaW9uIG9mIDxjb2RlPkRlY2ltYWxGb3JtYXRTeW1ib2xzPC9jb2RlPiBwcmVzZW50IG9uIHRoZSBzdHJlYW0uCisgICAgICogUG9zc2libGUgdmFsdWVzIGFyZToKKyAgICAgKiA8dWw+CisgICAgICogPGxpPjxiPjA8L2I+IChvciB1bmluaXRpYWxpemVkKTogdmVyc2lvbnMgcHJpb3IgdG8gSkRLIDEuMS42LgorICAgICAqCisgICAgICogPGxpPjxiPjE8L2I+OiBWZXJzaW9ucyB3cml0dGVuIGJ5IEpESyAxLjEuNiBvciBsYXRlciwgd2hpY2ggaW5jbHVkZXMKKyAgICAgKiAgICAgIHR3byBuZXcgZmllbGRzOiA8Y29kZT5tb25ldGFyeVNlcGFyYXRvcjwvY29kZT4gYW5kIDxjb2RlPmV4cG9uZW50aWFsPC9jb2RlPi4KKyAgICAgKiA8bGk+PGI+MjwvYj46IFZlcnNpb24gZm9yIEFscGhhV29ya3MuICBBZGRzIHBhZEVzY2FwZSwgZXhwb25lbnRTZXBhcmF0b3IsCisgICAgICogICAgICBhbmQgcGx1c1NpZ24uCisgICAgICogPC91bD4KKyAgICAgKiBXaGVuIHN0cmVhbWluZyBvdXQgYSA8Y29kZT5EZWNpbWFsRm9ybWF0U3ltYm9sczwvY29kZT4sIHRoZSBtb3N0IHJlY2VudCBmb3JtYXQKKyAgICAgKiAoY29ycmVzcG9uZGluZyB0byB0aGUgaGlnaGVzdCBhbGxvd2FibGUgPGNvZGU+c2VyaWFsVmVyc2lvbk9uU3RyZWFtPC9jb2RlPikKKyAgICAgKiBpcyBhbHdheXMgd3JpdHRlbi4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBzZXJpYWxWZXJzaW9uT25TdHJlYW0gPSBjdXJyZW50U2VyaWFsVmVyc2lvbjsKKworICAgIC8qKgorICAgICAqIGNhY2hlIHRvIGhvbGQgdGhlIE51bWJlckVsZW1lbnRzIGFuZCB0aGUgQ3VycmVuY3lFbGVtZW50cworICAgICAqIG9mIGEgTG9jYWxlLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEhhc2h0YWJsZSBjYWNoZWRMb2NhbGVEYXRhID0gbmV3IEhhc2h0YWJsZSgzKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RlY29tcERhdGEuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RlY29tcERhdGEuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42YWI3YzQ3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGVjb21wRGF0YS5qYXZhCkBAIC0wLDAgKzEsNzQ1IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChjKSAxOTk3LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiA+IFRISVMgRklMRSBXQVMgTUFDSElORSBHRU5FUkFURUQgPAorKiA+ICAgICAgIERPIE5PVCBFRElUIEJZIEhBTkQgICAgICAgPAorKiA+ICAgICAgUlVOIFRPT0wgVE8gUkVHRU5FUkFURSAgICAgPAorKiBUb29sOiBjb20uaWJtLmljdS50ZXh0Lk5vcm1hbGl6ZXIKKyogQ3JlYXRpb24gZGF0ZTogVHVlIEp1bCAxOCAxMTowNToyOCBQRFQgMjAwMAorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKKworY2xhc3MgRGVjb21wRGF0YSB7CisgICAgc3RhdGljIGZpbmFsIGludCBNQVhfQ0FOT05JQ0FMID0gMjE3NTQ7CisgICAgc3RhdGljIGZpbmFsIGludCBNQVhfQ09NUEFUID0gMTExNzc7CisgICAgc3RhdGljIGZpbmFsIGludCBERUNPTVBfTUFTSyA9IDMyNzY3OworICAgIHN0YXRpYyBmaW5hbCBpbnQgREVDT01QX1JFQ1VSU0UgPSAzMjc2ODsKKyAgICBzdGF0aWMgZmluYWwgc2hvcnQgQkFTRSA9IDA7CisKKyAgICBzdGF0aWMgZmluYWwgQ29tcGFjdENoYXJBcnJheSBvZmZzZXRzID0gbmV3IENvbXBhY3RDaGFyQXJyYXkoCisgICAgICAgICJcMDAwXHUwODAwXHVBNUE1XDAwNVwwMDAgQGBcdTAwODBcdTAwQTBcdTAwQzBcdTAwRTBcMDAwXHUwMTAwXHUwMTIwXHUwMTQwIisKKyAgICAgICAgIlx1MDE2MFx1MDE4MFwwMDBcMDAwXDAwMFx1MDFBMFx1MDFDMFx1MDFFMFwwMDBcMDAwXHUwMjAwXHUwMjIwXHUwMjQwXHUwMjYwIisKKyAgICAgICAgIlx1MDI4MFx1MDJBMFx1MDJDMFx1MDJFMFx1MDMwMFx1MDMyMFwwMDBcMDAwXHUwMzQwXHUwMzYwXHVBNUE1XDAwNFwwMDAiKworICAgICAgICAiXHUwMzgwXHVBNUE1XDAwNFwwMDBcdTAzQTBcMDAwXHUwM0MwXDAwMFwwMDBcdTAzRTBcdUE1QTVcMDIyXDAwMFx1MDQwMCIrCisgICAgICAgICJcdTA0MjBcMDAwXDAwMFwwMDBcdTA0NDBcMDAwXDAwMFx1MDQ2MFx1MDQ4MFx1QTVBNVwwMDdcMDAwXHUwNEEwXDAwMFx1MDRDMCIrCisgICAgICAgICJcMDAwXHUwNEUwXDAwMFwwMDBcMDAwXHUwNTAwXDAwMFwwMDBcMDAwXHUwNTIwXDAwMFwwMDBcMDAwXHUwNTQwXDAwMFwwMDAiKworICAgICAgICAiXDAwMFx1MDU2MFwwMDBcMDAwXHUwNTgwXDAwMFwwMDBcMDAwXHUwNUEwXHUwNUMwXDAwMFx1MDVFMFwwMDBcdTA2MDBcdTA2MjAiKworICAgICAgICAiXHUwNjQwXHUwNjYwXDAwMFwwMDBcMDAwXHUwNjgwXHVBNUE1blwwMDBcdTA2QTBcdTA2QzBcdTA2RTBcdTA3MDBcdTA3MjAiKworICAgICAgICAiXHUwNzQwXHUwNzYwXHUwNzgwXHUwN0EwXHUwN0MwXHUwN0UwXHUwODAwXHUwODIwXHUwODQwXHUwODYwXHUwODgwXHUwOEEwIisKKyAgICAgICAgIlx1MDhDMFx1MDhFMFx1MDkwMFx1MDkyMFx1MDk0MFwwMDBcMDAwXHUwOTYwXHUwOTgwXHUwOUEwXHUwOUMwXHUwOUUwXHUwQTAwIisKKyAgICAgICAgIlx1MEEyMFwwMDBcdTBBNDBcdTBBNjBcdTBBODBcdTBBQTBcdTBBQzBcdTBBRTBcMDAwXHUwQjAwXDAwMFx1MEIyMFx1QTVBNSIrCisgICAgICAgICJcMDExXDAwMFx1MEI0MFx1MEI2MFx1MEI4MFx1MEJBMFx1MEJDMFx1QTVBNUxcMDAwXHUwQkUwXDAwMFwwMDBcdTBDMDAiKworICAgICAgICAiXHUwQzIwXHUwQzQwXHUwQzYwXHUwQzgwXHUwQ0EwXHUwQ0MwXHUwQ0UwXDAwMFx1MEQwMFx1MEQyMFx1MEQ0MFx1MEQ2MCIrCisgICAgICAgICJcdTBEODBcdTBEQTBcdTBEQzBcdTBERTBcMDAwXHUwRTAwXHUwRTIwXHUwRTQwXHUwRTYwXDAwMFwwMDBcMDAwXHUwRTgwIisKKyAgICAgICAgIlx1MEVBMFx1MEVDMFx1MEVFMFx1MEYwMFx1MEYyMFx1MEY0MFx1MEY2MFx1MEY4MFx1MEZBMFx1MEZDMFx1MEZFMFx1MTAwMCIrCisgICAgICAgICJcdTEwMjBcdTEwNDBcdTEwNjBcdUE1QTVcdTA2MjhcMDAwXHUxMDgwXHUxMEEwXHUxMEMwXHUxMEUwXHUxMTAwXHUxMTIwIisKKyAgICAgICAgIlx1MTE0MFx1MTE2MFx1MTE4MFx1MTFBMFx1QTVBNVwwMDZcMDAwXHUxMUMwXHUxMUUwXHUxMjAwXHUxMjIwXHUxMjQwXHUxMjYwIisKKyAgICAgICAgIlx1MTI4MFx1MTJBMFx1MTJDMFx1MTJFMFx1MTMwMFx1MTMyMFx1MTM0MFx1MTM2MFx1MTM4MFx1MTNBMFx1MTNDMFx1MTNFMCIrCisgICAgICAgICJcdTE0MDBcdTE0MjBcdTE0NDBcdTE0NjBcdTE0ODBcdTE0QTBcMDAwXHUxNEMwXHUxNEUwXHUxNTAwXHUxNTIwXHUxNTQwIisKKyAgICAgICAgIlx1MTU2MFx1MTU4MFx1MTVBMFx1MTVDMFx1MTVFMFx1MTYwMFx1MTYyMFx1MTY0MFx1MTY2MFx1MTY4MCIKKyAgICAgICAgLAorICAgICAgICAiXDAwMFx1MTZBMFx1QTVBNSBcMDAwXDAwNVx1QTVBNVwwMDdcMDAwXDAxMlwwMDBcMDIxXHVBNUE1XDAwNFwwMDBcMDI2IisKKyAgICAgICAgIlwwMDBcMDAwXDAzNSEmLVwwMDBcMDAwMjk9XDAwMENPW1wwMDBcdTJCQUVcdTJCQjZcdTJCQkVcdTJCQzZcdTJCQ0VcdTJCRDYiKworICAgICAgICAiXDAwMFx1MkJERVx1MkJFNlx1MkJFRVx1MkJGNlx1MkJGRVx1MkMwNlx1MkMwRVx1MkMxNlx1MkMxRVwwMDBcdTJDMjZcdTJDMkUiKworICAgICAgICAiXHUyQzM2XHUyQzNFXHUyQzQ2XHUyQzRFXDAwMFwwMDBcdTJDNTZcdTJDNUVcdTJDNjZcdTJDNkVcdTJDNzZcMDAwXDAwMCIrCisgICAgICAgICJcdTJDN0VcdTJDODZcdTJDOEVcdTJDOTZcdTJDOUVcdTJDQTZcMDAwXHUyQ0FFXHUyQ0I2XHUyQ0JFXHUyQ0M2XHUyQ0NFIisKKyAgICAgICAgIlx1MkNENlx1MkNERVx1MkNFNlx1MkNFRVwwMDBcdTJDRjZcdTJDRkVcdTJEMDZcdTJEMEVcdTJEMTZcdTJEMUVcMDAwXDAwMCIrCisgICAgICAgICJcdTJEMjZcdTJEMkVcdTJEMzZcdTJEM0VcdTJENDZcMDAwXHUyRDRFXHUyRDU2XHUyRDVFXHUyRDY2XHUyRDZFXHUyRDc2IisKKyAgICAgICAgIlx1MkQ3RVx1MkQ4Nlx1MkQ4RVx1MkQ5Nlx1MkQ5RVx1MkRBNlx1MkRBRVx1MkRCNlx1MkRCRVx1MkRDNlx1MkRDRVwwMDAiKworICAgICAgICAiXDAwMFx1MkRENlx1MkRERVx1MkRFNlx1MkRFRVx1MkRGNlx1MkRGRVx1MkUwNlx1MkUwRVx1MkUxNlx1MkUxRVx1MkUyNiIrCisgICAgICAgICJcdTJFMkVcdTJFMzZcdTJFM0VcdTJFNDZcdTJFNEVcdTJFNTZcdTJFNUVcdTJFNjZcdTJFNkVcMDAwXDAwMFx1MkU3Nlx1MkU3RSIrCisgICAgICAgICJcdTJFODZcdTJFOEVcdTJFOTZcdTJFOUVcdTJFQTZcdTJFQUVcdTJFQjZcMDAwZm5cdTJFQkVcdTJFQzZcdTJFQ0VcdTJFRDYiKworICAgICAgICAiXDAwMFx1MkVERVx1MkVFNlx1MkVFRVx1MkVGNlx1MkVGRVx1MkYwNnZ+XDAwMFwwMDBcdTJGMEVcdTJGMTZcdTJGMUVcdTJGMjYiKworICAgICAgICAiXHUyRjJFXHUyRjM2XHUwMDg2XDAwMFwwMDBcdTJGM0VcdTJGNDZcdTJGNEVcdTJGNTZcdTJGNUVcdTJGNjZcMDAwXDAwMCIrCisgICAgICAgICJcdTJGNkVcdTJGNzZcdTJGN0VcdTJGODZcdTJGOEVcdTJGOTZcdTJGOUVcdTJGQTZcdTJGQUVcdTJGQjZcdTJGQkVcdTJGQzYiKworICAgICAgICAiXHUyRkNFXHUyRkQ2XHUyRkRFXHUyRkU2XHUyRkVFXHUyRkY2XDAwMFwwMDBcdTJGRkVcdTMwMDZcdTMwMEVcdTMwMTZcdTMwMUUiKworICAgICAgICAiXHUzMDI2XHUzMDJFXHUzMDM2XHUzMDNFXHUzMDQ2XHUzMDRFXHUzMDU2XHUzMDVFXHUzMDY2XHUzMDZFXHUzMDc2XHUzMDdFIisKKyAgICAgICAgIlx1MzA4Nlx1MzA4RVx1MzA5Nlx1MzA5RVx1MzBBNlx1MzBBRVx1MDA4RFx1MzBCNlx1MzBCRVx1QTVBNVwwMTVcMDAwXHUzMEM2IisKKyAgICAgICAgIlx1MzBDRVx1QTVBNVwwMjNcMDAwXHUwMDkzXHUwMDlGXHUwMEFCXHUwMEI2XHUwMEJFXHUwMEM2XHUwMENFXHUwMEQ2XHUwMERFIisKKyAgICAgICAgIlx1MzBENlx1MzBERVx1MzBFNlx1MzBFRVx1MzBGNlx1MzBGRVx1MzEwNlx1MzEwRVx1MzExN1x1MzEyM1x1MzEyRlx1MzEzQiIrCisgICAgICAgICJcdTMxNDdcdTMxNTNcdTMxNUZcdTMxNkJcMDAwXHUzMTc3XHUzMTgzXHUzMThGXHUzMTlCXHUzMUE2XHUzMUFFXDAwMFwwMDAiKworICAgICAgICAiXHUzMUI2XHUzMUJFXHUzMUM2XHUzMUNFXHUzMUQ2XHUzMURFXHUzMUU3XHUzMUYzXHUzMUZFXHUzMjA2XHUzMjBFXHUwMDkyIisKKyAgICAgICAgIlx1MDA5RVx1MDBBQVx1MzIxNlx1MzIxRVwwMDBcMDAwXHUzMjI2XHUzMjJFXHUzMjM3XHUzMjQzXHUzMjRFXHUzMjU2XHUzMjVFIisKKyAgICAgICAgIlx1MzI2Nlx1MzI2RVx1MzI3Nlx1MzI3RVx1MzI4Nlx1MzI4RVx1MzI5Nlx1MzI5RVx1MzJBNlx1MzJBRVx1MzJCNlx1MzJCRSIrCisgICAgICAgICJcdTMyQzZcdTMyQ0VcdTMyRDZcdTMyREVcdTMyRTZcdTMyRUVcdTMyRjZcdTMyRkVcdTMzMDZcdTMzMEVcdTMzMTZcdTMzMUUiKworICAgICAgICAiXHUzMzI2XHUzMzJFXHUzMzM2XHUzMzNFXHUzMzQ2XDAwMFwwMDBcdTMzNEVcdTMzNTZcdUE1QTVcMDA2XDAwMFx1MzM1RSIrCisgICAgICAgICJcdTMzNjZcdTMzNkVcdTMzNzZcdTMzN0ZcdTMzOEJcdTMzOTdcdTMzQTNcdTMzQUVcdTMzQjZcdTMzQkZcdTMzQ0JcdTMzRDYiKworICAgICAgICAiXHUzM0RFXHVBNUE1XDAzNFwwMDBcdTAwRTVcdTAwRTlxXHUwMEVEXHUwMEYxXHUwMEY1XHUwMEY5XHUwMEZEXHUwMTAxIisKKyAgICAgICAgIlx1QTVBNVwwMzdcMDAwXHUwMTA2XHUwMTBFXHUwMTE2XHUwMTFFXHUwMTI2XHUwMTJFXDAwMFwwMDBcdTAxMzV9XHUwMDhEIisKKyAgICAgICAgIlx1MDEzOVx1MDEzRFx1QTVBNVwwMzNcMDAwXHUzM0U1XHUzM0U5XDAwMFx1MzNFRFx1MzNGMlx1QTVBNS9cMDAwXHUzM0Y5IisKKyAgICAgICAgIlx1QTVBNVwwMDVcMDAwXHUwMTQyXDAwMFwwMDBcMDAwXHUzM0ZEXHVBNUE1XDAwNVwwMDAmXHVCNDAyXHUzNDBBXHUzNDExIisKKyAgICAgICAgIlx1MzQxNlx1MzQxRVx1MzQyNlwwMDBcdTM0MkVcMDAwXHUzNDM2XHUzNDNFXHUzNDQ3XHVBNUE1XDAzMVwwMDBcdTM0NTIiKworICAgICAgICAiXHUzNDVBXHUzNDYyXHUzNDZBXHUzNDcyXHUzNDdBXHUzNDgzXHVBNUE1XDAzMVwwMDBcdTM0OEVcdTM0OTZcdTM0OUVcdTM0QTYiKworICAgICAgICAiXHUzNEFFXDAwMFx1MDE0OVx1MDE0RFx1MDE1MVx1QjRCNlx1QjRCRVx1MDE1NVx1MDE1OVx1QTVBNVwwMzFcMDAwXHUwMTVEIisKKyAgICAgICAgIlx1MDE2MVx1MDE2NVx1QTVBNVwwMTVcMDAwXHUzNEM2XHUzNENFXDAwMFx1MzRENlwwMDBcMDAwXDAwMFx1MzRERVx1QTVBNSIrCisgICAgICAgICJcMDA0XDAwMFx1MzRFNlx1MzRFRVx1MzRGNlx1QTVBNVwwMTJcMDAwXHUzNEZFXHVBNUE1XDAzN1wwMDBcdTM1MDZcdUE1QTUiKworICAgICAgICAiXDAyNlwwMDBcdTM1MEVcdTM1MTZcMDAwXHUzNTFFXDAwMFwwMDBcMDAwXHUzNTI2XHVBNUE1XDAwNFwwMDBcdTM1MkVcdTM1MzYiKworICAgICAgICAiXHUzNTNFXHVBNUE1XDAyN1wwMDBcdTM1NDZcdTM1NEVcdUE1QTVcMDExXDAwMFx1MzU1Nlx1MzU1RVx1QTVBNVwwMTVcMDAwIisKKyAgICAgICAgIlx1MzU2Nlx1MzU2RVx1MzU3Nlx1MzU3RVwwMDBcMDAwXHUzNTg2XHUzNThFXDAwMFwwMDBcdTM1OTZcdTM1OUVcdTM1QTYiKworICAgICAgICAiXHUzNUFFXHUzNUI2XHUzNUJFXDAwMFwwMDBcdTM1QzZcdTM1Q0VcdTM1RDZcdTM1REVcdTM1RTZcdTM1RUVcMDAwXDAwMCIrCisgICAgICAgICJcdTM1RjZcdTM1RkVcdTM2MDZcdTM2MEVcdTM2MTZcdTM2MUVcdTM2MjZcdTM2MkVcdTM2MzZcdTM2M0VcdTM2NDZcdTM2NEUiKworICAgICAgICAiXDAwMFwwMDBcdTM2NTZcdTM2NUVcdUE1QTVcMDE1XDAwMFx1MDE2QVx1QTVBNVwwMzJcMDAwXHUzNjY2XHUzNjZFXHUzNjc2IisKKyAgICAgICAgIlx1MzY3RVx1MzY4Nlx1QTVBNS5cMDAwXHUwMTcyXHUwMTdBXHUwMTgyXHUwMThBXHVBNUE1XDAwN1wwMDBcdTM2OEVcMDAwIisKKyAgICAgICAgIlx1MzY5Nlx1QTVBNVwwMjBcMDAwXHUzNjlFXHVBNUE1XDAyNVwwMDBcdTM2QTZcdUE1QTVcMDA3XDAwMFx1MzZBRVwwMDAiKworICAgICAgICAiXDAwMFx1MzZCNlx1QTVBNSNcMDAwXHUzNkJFXHUzNkM2XHUzNkNFXHUzNkQ2XHUzNkRFXHUzNkU2XHUzNkVFXHUzNkY2IisKKyAgICAgICAgIlx1QTVBNVwwMTNcMDAwXHUzNkZFXHUzNzA2XHVBNUE1XDAxN1wwMDBcdTM3MEVcdTM3MTZcMDAwXHUzNzFFXHVBNUE1XDAyMyIrCisgICAgICAgICJcMDAwXHUzNzI2XDAwMFwwMDBcdTM3MkVcdUE1QTVcMDQyXDAwMFx1MzczNlx1MzczRVx1Mzc0NlwwMDBcMDAwXHUzNzRFIisKKyAgICAgICAgIlx1QTVBNVwwMTFcMDAwXHUzNzU2XDAwMFwwMDBcdTM3NUVcdTM3NjZcdUE1QTVcMDE3XDAwMFx1Mzc2RVx1Mzc3Nlx1QTVBNSIrCisgICAgICAgICJcMDI2XDAwMFx1Mzc3RVx1QTVBNVwwMjVcMDAwXHUzNzg2XHUzNzhFXHUzNzk2XHVBNUE1XDAzM1wwMDBcdTM3OUVcdUE1QTUiKworICAgICAgICAiXDAyN1wwMDBcdTM3QTZcdUE1QTVcMDA2XDAwMFx1MzdBRVx1MzdCNlwwMDBcdTM3QkVcdTM3QzdcdUE1QTVcMDM2XDAwMCIrCisgICAgICAgICJcdTM3RDJcdTM3REFcdTM3RTJcdUE1QTUtXDAwMFx1MzdFQVwwMDBcdTM3RjJcdTM3RkJcdTM4MDZcdUE1QTVcMDI0XDAwMCIrCisgICAgICAgICJcdTAxOTJcdUE1QTVcMDM3XDAwMFx1MDE5QVx1QTVBNShcMDAwXHUwMUEyXHUwMUFBXHVBNUE1XDAxNlwwMDBcdTAxQjEiKworICAgICAgICAiXHVBNUE1XDAyNlwwMDBcdTM4MEVcdUE1QTVcMDExXDAwMFx1MzgxNlx1QTVBNVwwMDRcMDAwXHUzODFFXHVBNUE1XDAwNCIrCisgICAgICAgICJcMDAwXHUzODI2XHVBNUE1XDAwNFwwMDBcdTM4MkVcdUE1QTVcMDE0XDAwMFx1MzgzNlx1QTVBNVwwMTFcMDAwXHUzODNFIisKKyAgICAgICAgIlwwMDBcdTM4NDZcdTM4NEVcdTAxQjdcdTM4NTZcdTAxQzNcdUE1QTVcMDA3XDAwMFx1Mzg1RVx1QTVBNVwwMjFcMDAwXHUzODY2IisKKyAgICAgICAgIlx1QTVBNVwwMTFcMDAwXHUzODZFXHVBNUE1XDAwNFwwMDBcdTM4NzZcdUE1QTVcMDA0XDAwMFx1Mzg3RVx1QTVBNVwwMDQiKworICAgICAgICAiXDAwMFx1Mzg4Nlx1QTVBNVwwMTRcMDAwXHUzODhFXHVBNUE1XDAxNFwwMDBcdTM4OTZcdUE1QTVcMDMxXDAwMFx1Mzg5RSIrCisgICAgICAgICJcdTM4QTZcdTM4QUVcdTM4QjZcdTM4QkVcdTM4QzZcdTM4Q0VcdTM4RDZcdTM4REZcdTM4RUJcdTM4RjZcdTM4RkVcdTM5MDYiKworICAgICAgICAiXHUzOTBFXHUzOTE2XHUzOTFFXHUzOTI2XHUzOTJFXHUzOTM2XHUzOTNFXHUzOTQ3XHUzOTUzXHUzOTVGXHUzOTZCXHUzOTc2IisKKyAgICAgICAgIlx1Mzk3RVx1Mzk4Nlx1Mzk4RVx1Mzk5N1x1MzlBM1x1MzlBRVx1MzlCNlx1MzlCRVx1MzlDNlx1MzlDRVx1MzlENlx1MzlERSIrCisgICAgICAgICJcdTM5RTZcdTM5RUVcdTM5RjZcdTM5RkVcdTNBMDZcdTNBMEVcdTNBMTZcdTNBMUVcdTNBMjZcdTNBMkZcdTNBM0JcdTNBNDYiKworICAgICAgICAiXHUzQTRFXHUzQTU2XHUzQTVFXHUzQTY2XHUzQTZFXHUzQTc2XHUzQTdFXHUzQTg3XHUzQTkzXHUzQTlFXHUzQUE2XHUzQUFFIisKKyAgICAgICAgIlx1M0FCNlx1M0FCRVx1M0FDNlx1M0FDRVx1M0FENlx1M0FERVx1M0FFNlx1M0FFRVx1M0FGNlx1M0FGRVx1M0IwNlx1M0IwRSIrCisgICAgICAgICJcdTNCMTZcdTNCMUVcdTNCMjZcdTNCMkZcdTNCM0JcdTNCNDdcdTNCNTNcdTNCNUZcdTNCNkJcdTNCNzdcdTNCODNcdTNCOEUiKworICAgICAgICAiXHUzQjk2XHUzQjlFXHUzQkE2XHUzQkFFXHUzQkI2XHUzQkJFXHUzQkM2XHUzQkNGXHUzQkRCXHUzQkU2XHUzQkVFXHUzQkY2IisKKyAgICAgICAgIlx1M0JGRVx1M0MwNlx1M0MwRVx1M0MxN1x1M0MyM1x1M0MyRlx1M0MzQlx1M0M0N1x1M0M1M1x1M0M1RVx1M0M2Nlx1M0M2RSIrCisgICAgICAgICJcdTNDNzZcdTNDN0VcdTNDODZcdTNDOEVcdTNDOTZcdTNDOUVcdTNDQTZcdTNDQUVcdTNDQjZcdTNDQkVcdTNDQzZcdTNDQ0YiKworICAgICAgICAiXHUzQ0RCXHUzQ0U3XHUzQ0YzXHUzQ0ZFXHUzRDA2XHUzRDBFXHUzRDE2XHUzRDFFXHUzRDI2XHUzRDJFXHUzRDM2XHUzRDNFIisKKyAgICAgICAgIlx1M0Q0Nlx1M0Q0RVx1M0Q1Nlx1M0Q1RVx1M0Q2Nlx1M0Q2RVx1M0Q3Nlx1M0Q3RVx1M0Q4Nlx1M0Q4RVx1M0Q5Nlx1M0Q5RSIrCisgICAgICAgICJcdTNEQTZcdTNEQUVcdTNEQjZcdTNEQkVcdTNEQzZcdTNEQ0VcdTNERDZcdTNEREVcdTNERTZcdTAxQ0VcdUJERUVcdUE1QTUiKworICAgICAgICAiXDAwNFwwMDBcdTNERjZcdTNERkVcdTNFMDZcdTNFMEVcdTNFMTdcdTNFMjNcdTNFMkZcdTNFM0JcdTNFNDdcdTNFNTNcdTNFNUYiKworICAgICAgICAiXHUzRTZCXHUzRTc3XHUzRTgzXHUzRThGXHUzRTlCXHUzRUE3XHUzRUIzXHUzRUJGXHUzRUNCXHUzRUQ3XHUzRUUzXHUzRUVGIisKKyAgICAgICAgIlx1M0VGQlx1M0YwNlx1M0YwRVx1M0YxNlx1M0YxRVx1M0YyNlx1M0YyRVx1M0YzN1x1M0Y0M1x1M0Y0Rlx1M0Y1Qlx1M0Y2NyIrCisgICAgICAgICJcdTNGNzNcdTNGN0ZcdTNGOEJcdTNGOTdcdTNGQTNcdTNGQUVcdTNGQjZcdTNGQkVcdTNGQzZcdTNGQ0VcdTNGRDZcdTNGREUiKworICAgICAgICAiXHUzRkU2XHUzRkVGXHUzRkZCXHU0MDA3XHU0MDEzXHU0MDFGXHU0MDJCXHU0MDM3XHU0MDQzXHU0MDRGXHU0MDVCXHU0MDY3IisKKyAgICAgICAgIlx1NDA3M1x1NDA3Rlx1NDA4Qlx1NDA5N1x1NDBBM1x1NDBBRlx1NDBCQlx1NDBDN1x1NDBEM1x1NDBERVx1NDBFNlx1NDBFRSIrCisgICAgICAgICJcdTQwRjZcdTQwRkZcdTQxMEJcdTQxMTdcdTQxMjNcdTQxMkZcdTQxM0JcdTQxNDdcdTQxNTNcdTQxNUZcdTQxNkJcdTQxNzYiKworICAgICAgICAiXHU0MTdFXHU0MTg2XHU0MThFXHU0MTk2XHU0MTlFXHU0MUE2XHU0MUFFXHVBNUE1XDAwNlwwMDBcdTQxQjZcdTQxQkVcdTQxQzciKworICAgICAgICAiXHU0MUQzXHU0MURGXHU0MUVCXHU0MUY3XHU0MjAzXHU0MjBFXHU0MjE2XHU0MjFGXHU0MjJCXHU0MjM3XHU0MjQzXHU0MjRGIisKKyAgICAgICAgIlx1NDI1Qlx1NDI2Nlx1NDI2RVx1NDI3N1x1NDI4M1x1NDI4Rlx1NDI5QlwwMDBcMDAwXHU0MkE2XHU0MkFFXHU0MkI3XHU0MkMzIisKKyAgICAgICAgIlx1NDJDRlx1NDJEQlwwMDBcMDAwXHU0MkU2XHU0MkVFXHU0MkY3XHU0MzAzXHU0MzBGXHU0MzFCXHU0MzI3XHU0MzMzXHU0MzNFIisKKyAgICAgICAgIlx1NDM0Nlx1NDM0Rlx1NDM1Qlx1NDM2N1x1NDM3M1x1NDM3Rlx1NDM4Qlx1NDM5Nlx1NDM5RVx1NDNBN1x1NDNCM1x1NDNCRiIrCisgICAgICAgICJcdTQzQ0JcdTQzRDdcdTQzRTNcdTQzRUVcdTQzRjZcdTQzRkZcdTQ0MEJcdTQ0MTdcdTQ0MjNcdTQ0MkZcdTQ0M0JcdTQ0NDYiKworICAgICAgICAiXHU0NDRFXHU0NDU3XHU0NDYzXHU0NDZGXHU0NDdCXDAwMFwwMDBcdTQ0ODZcdTQ0OEVcdTQ0OTdcdTQ0QTNcdTQ0QUZcdTQ0QkIiKworICAgICAgICAiXDAwMFwwMDBcdTQ0QzZcdTQ0Q0VcdTQ0RDdcdTQ0RTNcdTQ0RUZcdTQ0RkJcdTQ1MDdcdTQ1MTNcMDAwXHU0NTFFXDAwMCIrCisgICAgICAgICJcdTQ1MjdcMDAwXHU0NTMzXDAwMFx1NDUzRlx1NDU0QVx1NDU1Mlx1NDU1Qlx1NDU2N1x1NDU3M1x1NDU3Rlx1NDU4Qlx1NDU5NyIrCisgICAgICAgICJcdTQ1QTJcdTQ1QUFcdTQ1QjNcdTQ1QkZcdTQ1Q0JcdTQ1RDdcdTQ1RTNcdTQ1RUZcdTQ1RkFcdTQ2MDJcdTQ2MEFcdTQ2MTIiKworICAgICAgICAiXHU0NjFBXHU0NjIyXHU0NjJBXHU0NjMyXHU0NjNBXHU0NjQyXHU0NjRBXHU0NjUyXHU0NjVBXHU0NjYyXDAwMFwwMDBcdTQ2NkIiKworICAgICAgICAiXHU0Njc3XHU0NjgwXHU0Njk0XHU0NkE4XHU0NkJDXHU0NkQwXHU0NkU0XHU0NkZCXHU0NzA3XHU0NzEwXHU0NzI0XHU0NzM4IisKKyAgICAgICAgIlx1NDc0Q1x1NDc2MFx1NDc3NFx1NDc4Qlx1NDc5N1x1NDdBMFx1NDdCNFx1NDdDOFx1NDdEQ1x1NDdGMFx1NDgwNFx1NDgxQiIrCisgICAgICAgICJcdTQ4MjdcdTQ4MzBcdTQ4NDRcdTQ4NThcdTQ4NkNcdTQ4ODBcdTQ4OTRcdTQ4QUJcdTQ4QjdcdTQ4QzBcdTQ4RDRcdTQ4RTgiKworICAgICAgICAiXHU0OEZDXHU0OTEwXHU0OTI0XHU0OTNCXHU0OTQ3XHU0OTUwXHU0OTY0XHU0OTc4XHU0OThDXHU0OUEwXHU0OUI0XHU0OUNBIisKKyAgICAgICAgIlx1NDlEMlx1NDlEQlx1NDlFNlx1NDlFRlwwMDBcdTQ5RkFcdTRBMDNcdTRBMEVcdTRBMTZcdTRBMUVcdTRBMjZcdTRBMkUiKworICAgICAgICAiXHUwMUQ2XHU0QTM1XHUwMUQ2XHUwMURFXHVDQTNBXHU0QTQzXHU0QTRFXHU0QTU3XDAwMFx1NEE2Mlx1NEE2Qlx1NEE3NiIrCisgICAgICAgICJcdTRBN0VcdTRBODZcdTRBOEVcdTRBOTZcdUNBOUVcdUNBQTZcdUNBQUVcdTRBQjZcdTRBQkVcdTRBQzdcdTRBRDNcMDAwIisKKyAgICAgICAgIlwwMDBcdTRBREVcdTRBRTdcdTRBRjJcdTRBRkFcdTRCMDJcdTRCMEFcMDAwXHVDQjEyXHVDQjFBXHVDQjIyXHU0QjJBXHU0QjMyIisKKyAgICAgICAgIlx1NEIzQlx1NEI0N1x1NEI1Mlx1NEI1QVx1NEI2Mlx1NEI2Qlx1NEI3Nlx1NEI3RVx1NEI4Nlx1NEI4RVx1NEI5Nlx1Q0I5RSIrCisgICAgICAgICJcdUNCQTZcdTRCQURcMDAwXDAwMFx1NEJCM1x1NEJCRVx1NEJDN1wwMDBcdTRCRDJcdTRCREJcdTRCRTZcdTRCRUVcdTRCRjYiKworICAgICAgICAiXHU0QkZFXHU0QzA2XHVDQzBEXHUwMUU2XDAwMFx1Q0MxMVx1Q0MxNVx1QTVBNVwwMTFcMDA1XHVBNUE1XDAwNlwwMDBcdTAxRUQiKworICAgICAgICAiXHVBNUE1XDAwNVwwMDBcdTAxRjJcdUE1QTVcMDE0XDAwMFx1MDFGOVx1MDFGRVx1MDFGQlx1QTVBNVwwMTBcMDAwXDAwNSIrCisgICAgICAgICJcMDAwXDAwMFwwMDBcdTAyMDZcdTAyMEZcMDAwXHUwMjFBXHUwMjIzXHVBNUE1XDAwNFwwMDBcdTAyMkVcMDAwXHUwMjM2IisKKyAgICAgICAgIlx1QTVBNVwwMTFcMDAwXHUwMjNFXHUwMjQ2XHVBNUE1JlwwMDBcdTAyNERcMDAwXDAwMFwwMDBJXHUwMjUxXHUwMjU1XHUwMjU5IisKKyAgICAgICAgIlx1MDI1RFx1MDI2MVx1MDI2NVx1MDI2OVx1MDI2RFx1MDI3MVx1MDI3NVx1MDA4OVx1MDI0RDlcMDM1IUlcdTAyNTFcdTAyNTUiKworICAgICAgICAiXHUwMjU5XHUwMjVEXHUwMjYxXHUwMjY1XHUwMjY5XHUwMjZEXHUwMjcxXHUwMjc1XHVBNUE1XDAzMVwwMDBcdTAyN0FcdUE1QTUiKworICAgICAgICAiXDAyN1wwMDBcdTAyODNcdTAyOEZcdTAyOTlcdTAyOUVcMDAwXHUwMkE3XHUwMkIzXHUwMkJEXDAwMFx1MDJDMlx1MDJDOSIrCisgICAgICAgICJcdTAyQ0RcdTAyQ0RcdTAyQ0RcdTAwRTVcdTAyRDFlZXV9XDAwMFx1MDBDRFx1MDJENlwwMDBcMDAwXHUwMkREXHUwMkUxIisKKyAgICAgICAgIlx1MDI3OVx1MDI3OVx1MDI3OVwwMDBcMDAwXHUwMkU2XHUwMkVGXHUwMkZBXDAwMFx1MDA5NVwwMDBcdTRDMTlcMDAwXHUwMDk1IisKKyAgICAgICAgIlwwMDBcdTRDMURcdTRDMjJcdTAzMDFcdTAyOTlcMDAwXHUwMzA1XHUwMkYxXHUwMkM1XDAwMFx1MDJFOT1cdTAzMDlcdTAzMEQiKworICAgICAgICAiXHUwMzExXHUwMzE1bVx1QTVBNVwwMzFcMDAwXHUwMzFCXHUwMzI3XHUwMzMzXHUwMzNGXHUwMzRCXHUwMzU3XHUwMzYzIisKKyAgICAgICAgIlx1MDM2Rlx1MDM3Qlx1MDM4N1x1MDM5M1x1MDM5RkJlXHUwM0FBXHUwM0IzXHUwM0JFXHUwM0MxXHUwM0M2XHUwM0NGXHUwM0Q4IisKKyAgICAgICAgIlx1MDNFRVx1MDNGMVx1MDNGNlx1MDNGRnVcdTAyOTlcdTAwOTFcdTAyRTltXHUwNDBBXHUwNDEzXHUwNDFFXHUwNDIxXHUwNDI2IisKKyAgICAgICAgIlx1MDQyRlx1MDQzOFx1MDQ0RVx1MDEzOVx1MDQ1Nlx1MDQ1Rn1cdTAyODlcdTAwQTlcdTA0NjlcdUE1QTVcMDMyXDAwMCIrCisgICAgICAgICJcdTRDMkFcdTRDMzJcdUE1QTVcMDIyXDAwMFx1NEMzQVx1QTVBNVwwMzZcMDAwXHU0QzQyXHU0QzRBXHU0QzUyXHVBNUE1IisKKyAgICAgICAgIlwwMjRcMDAwXHU0QzVBXHVBNUE1XDAwNFwwMDBcdTRDNjJcMDAwXDAwMFx1NEM2QVx1QTVBNVwwMjdcMDAwXHU0QzcyXDAwMCIrCisgICAgICAgICJcdTRDN0FcdUE1QTVcMDA1XDAwMFx1MDQ2RVx1MDQ3N1wwMDBcdTA0ODJcdTA0OEJcdUE1QTVcMDIwXDAwMFx1NEM4MlwwMDAiKworICAgICAgICAiXDAwMFx1NEM4QVwwMDBcMDAwXHU0QzkyXDAwMFx1NEM5QVx1QTVBNVwwMjZcMDAwXHU0Q0EyXDAwMFx1NENBQVx1QTVBNSIrCisgICAgICAgICJcMDEyXDAwMFx1NENCMlx1NENCQVx1NENDMlx1NENDQVx1NENEMlwwMDBcMDAwXHU0Q0RBXHU0Q0UyXDAwMFwwMDBcdTRDRUEiKworICAgICAgICAiXHU0Q0YyXHVBNUE1XDAwNlwwMDBcdTRDRkFcdTREMDJcMDAwXDAwMFx1NEQwQVx1NEQxMlwwMDBcMDAwXHU0RDFBXHU0RDIyIisKKyAgICAgICAgIlx1QTVBNVwwNDJcMDAwXHU0RDJBXHU0RDMyXHU0RDNBXHU0RDQyXHVBNUE1XDAyMFwwMDBcdTRENEFcdTRENTJcdTRENUEiKworICAgICAgICAiXHU0RDYyXHVBNUE1XDAwNlwwMDBcdTRENkFcdTRENzJcdTREN0FcdTREODJcdUE1QTVcMDMzXDAwMFx1NEQ4OVx1NEQ4RCIrCisgICAgICAgICJcdUE1QTVcMDI1XDAwMDlcMDM1IUlcdTAyNTFcdTAyNTVcdTAyNTlcdTAyNURcdTAyNjFcdTA0OTZcdTA0OUVcdTA0QTYiKworICAgICAgICAiXHUwNEFFXHUwNEI2XHUwNEJFXHUwNEM2XHUwNENFXHUwNEQ2XHUwNERFXHUwNEU2XHUwNEVGXHUwNEZCXHUwNTA3XHUwNTEzIisKKyAgICAgICAgIlx1MDUxRlx1MDUyQlx1MDUzN1x1MDU0M1x1MDU0Rlx1MDU1OFx1MDU2Q1x1MDU4MFx1MDU5NFx1MDVBOFx1MDVCQ1x1MDVEMCIrCisgICAgICAgICJcdTA1RTRcdTA1RjhcdTA2MENcdTA2MjBcdTA2MzZcdTA2M0VcdTA2NDZcdTA2NEVcdTA2NTZcdTA2NUVcdTA2NjZcdTA2NkUiKworICAgICAgICAiXHUwNjc2XHUwNjdGXHUwNjhCXHUwNjk3XHUwNkEzXHUwNkFGXHUwNkJCXHUwNkM3XHUwNkQzXHUwNkRGXHUwNkVCXHUwNkY3IisKKyAgICAgICAgIlx1MDcwM1x1MDcwRlx1MDcxQlx1MDcyN1x1MDczM1x1MDczRlx1MDc0Qlx1MDc1N1x1MDc2M1x1MDc2Rlx1MDc3Qlx1MDc4NyIrCisgICAgICAgICJcdTA3OTNcdTA3OUZcdTA3QUJcdTA3QjdcdTA3QzNcdTA3Q0ZcdTA3REJcdTA3RTdcdTA3RjNcdTA3RkZcdTA4MEJcdTA4MTciKworICAgICAgICAiXHUwODIzXHUwODJGXHUwODM5XHUwMzAxXHUwMjk5XHUwMDkxXHUwMkYxXHUwMkM1XHUwODNEXHUwMkNEZWlcdTA4NDF1IisKKyAgICAgICAgIlx1MDJFOVx1MDBDRFx1MDg0NVx1MDJERFx1MDJFMVx1MDI3OVx1MDJFNVx1MDJFRFx1MDg0OVx1MDNDMVx1MDg0RFx1MDNGMSIrCisgICAgICAgICJcdTA4NTFcdTAwOTVcMDIxXHUwNzExXHUwMjg5XHUwMEE5XHUwMzA1XHUwNzQxXHUwMkM5XHUwMEU1bXFcdTA3N0R9XHUwNDY5IisKKyAgICAgICAgIlx1MDA4OT1cdTA3QjlcdTA3QzVcdTAwRURcdTAwOERcdTA3RTlcdTAyQjlcdTA0MjFcdTAwRkRcdTAxMzlcdTAxMDFcdTAwQTEiKworICAgICAgICAiXHUwMjREXHVBNUE1NFwwMDBcdTA4NTVcdUE1QTVcMDIzXDAwMFx1MDg1OVx1QTVBNVwwMTRcMDAwXHUwODVEXHUwODYxIisKKyAgICAgICAgIlx1MDg2NVx1MDg2OVx1MDg2RFx1MDg3MVx1MDg3NVx1MDg3OVx1MDg3RFx1MDg4MVx1MDg4NVx1MDg4OVx1MDg4RFx1MDg5MSIrCisgICAgICAgICJcdTA4OTVcdTA4OTlcdTA4OURcdTA4QTFcdTA4QTVcdTA4QTlcdTA4QURcdTA4QjFcdTA4QjVcdTA4QjlcdTA4QkRcdTA4QzEiKworICAgICAgICAiXHUwOEM1XHUwOEM5XHUwOENEXHUwOEQxXHUwOEQ1XHUwOEQ5XHUwOEREXHUwOEUxXHUwOEU1XHUwOEU5XHUwOEVEXHUwOEYxIisKKyAgICAgICAgIlx1MDhGNVx1MDhGOVx1MDhGRFx1MDkwMVx1MDkwNVx1MDkwOVx1MDkwRFx1MDkxMVx1MDkxNVx1MDkxOVx1MDkxRFx1MDkyMSIrCisgICAgICAgICJcdTA5MjVcdTA5MjlcdTA5MkRcdTA5MzFcdTA5MzVcdTA5MzlcdTA5M0RcdTA5NDFcdTA5NDVcdTA5NDlcdTA5NERcdTA5NTEiKworICAgICAgICAiXHUwOTU1XHUwOTU5XHUwOTVEXHUwOTYxXHUwOTY1XHUwOTY5XHUwOTZEXHUwOTcxXHUwOTc1XHUwOTc5XHUwOTdEXHUwOTgxIisKKyAgICAgICAgIlx1MDk4NVx1MDk4OVx1MDk4RFx1MDk5MVx1MDk5NVx1MDk5OVx1MDk5RFx1MDlBMVx1MDlBNVx1MDlBOVx1MDlBRFx1MDlCMSIrCisgICAgICAgICJcdTA5QjVcdTA5QjlcdTA5QkRcdTA5QzFcdTA5QzVcdTA5QzlcdTA5Q0RcdTA5RDFcdTA5RDVcdTA5RDlcdTA5RERcdTA5RTEiKworICAgICAgICAiXHUwOUU1XHUwOUU5XHUwOUVEXHUwOUYxXHUwOUY1XHUwOUY5XHUwOUZEXHUwQTAxXHUwQTA1XHUwQTA5XHUwQTBEXHUwQTExIisKKyAgICAgICAgIlx1MEExNVx1MEExOVx1MEExRFx1MEEyMVx1MEEyNVx1MEEyOVx1MEEyRFx1MEEzMVx1MEEzNVx1MEEzOVx1MEEzRFx1MEE0MSIrCisgICAgICAgICJcdTBBNDVcdTBBNDlcdTBBNERcdTBBNTFcdTBBNTVcdTBBNTlcdTBBNURcdTBBNjFcdTBBNjVcdTBBNjlcdTBBNkRcdTBBNzEiKworICAgICAgICAiXHUwQTc1XHUwQTc5XHUwQTdEXHUwQTgxXHUwQTg1XHUwQTg5XHUwQThEXHUwQTkxXHUwQTk1XHUwQTk5XHUwQTlEXHUwQUExIisKKyAgICAgICAgIlx1MEFBNVx1MEFBOVx1MEFBRFx1MEFCMVx1MEFCNVx1MEFCOVx1MEFCRFx1MEFDMVx1MEFDNVx1MEFDOVx1MEFDRFx1MEFEMSIrCisgICAgICAgICJcdTBBRDVcdTBBRDlcdTBBRERcdTBBRTFcdTBBRTVcdTBBRTlcdTBBRURcdTBBRjFcdTBBRjVcdTBBRjlcdTBBRkRcdTBCMDEiKworICAgICAgICAiXHUwQjA1XHUwQjA5XHUwQjBEXHUwQjExXHUwQjE1XHUwQjE5XHUwQjFEXHUwQjIxXHUwQjI1XHUwQjI5XHUwQjJEXHUwQjMxIisKKyAgICAgICAgIlx1MEIzNVx1MEIzOVx1MEIzRFx1MEI0MVx1MEI0NVx1MEI0OVx1MEI0RFx1MEI1MVx1MEI1NVx1MEI1OVx1MEI1RFx1MEI2MSIrCisgICAgICAgICJcdTBCNjVcdTBCNjlcdTBCNkRcdTBCNzFcdTBCNzVcdTBCNzlcdTBCN0RcdTBCODFcdTBCODVcdTBCODlcdTBCOERcdTBCOTEiKworICAgICAgICAiXHUwQjk1XHUwQjk5XHUwQjlEXHUwQkExXHUwQkE1XHUwQkE5XHUwQkFEXHUwQkIxXHVBNUE1XDAxMlwwMDBcMDA1XHVBNUE1IisKKyAgICAgICAgIjVcMDAwXHUwQkI1XDAwMFx1MDhCOVx1MEJCOVx1MEJCRFx1QTVBNVwwMjFcMDAwXHU0RDkyXDAwMFx1NEQ5QVwwMDBcdTREQTIiKworICAgICAgICAiXDAwMFx1NERBQVwwMDBcdTREQjJcMDAwXHU0REJBXDAwMFx1NERDMlwwMDBcdTREQ0FcMDAwXHU0REQyXDAwMFx1NEREQSIrCisgICAgICAgICJcMDAwXHU0REUyXDAwMFx1NERFQVwwMDBcMDAwXHU0REYyXDAwMFx1NERGQVwwMDBcdTRFMDJcdUE1QTVcMDA2XDAwMFx1NEUwQSIrCisgICAgICAgICJcdTRFMTJcMDAwXHU0RTFBXHU0RTIyXDAwMFx1NEUyQVx1NEUzMlwwMDBcdTRFM0FcdTRFNDJcMDAwXHU0RTRBXHU0RTUyIisKKyAgICAgICAgIlx1QTVBNVwwMjZcMDAwXHU0RTVBXHVBNUE1XDAwNlwwMDBcdTBCQzJcdTBCQ0FcMDAwXHU0RTYyXHVBNUE1XDAxNVwwMDAiKworICAgICAgICAiXHU0RTZBXDAwMFx1NEU3MlwwMDBcdTRFN0FcMDAwXHU0RTgyXDAwMFx1NEU4QVwwMDBcdTRFOTJcMDAwXHU0RTlBXDAwMCIrCisgICAgICAgICJcdTRFQTJcMDAwXHU0RUFBXDAwMFx1NEVCMlwwMDBcdTRFQkFcMDAwXHU0RUMyXDAwMFwwMDBcdTRFQ0FcMDAwXHU0RUQyIisKKyAgICAgICAgIlwwMDBcdTRFREFcdUE1QTVcMDA2XDAwMFx1NEVFMlx1NEVFQVwwMDBcdTRFRjJcdTRFRkFcMDAwXHU0RjAyXHU0RjBBXDAwMCIrCisgICAgICAgICJcdTRGMTJcdTRGMUFcMDAwXHU0RjIyXHU0RjJBXHVBNUE1XDAyNlwwMDBcdTRGMzJcMDAwXDAwMFx1NEYzQVx1NEY0Mlx1NEY0QSIrCisgICAgICAgICJcdTRGNTJcMDAwXDAwMFwwMDBcdTRGNUFcdUE1QTVcMDIyXDAwMFx1MEJEMVx1MEJENVx1MEJEOVx1MEJERFx1MEJFMVx1MEJFNSIrCisgICAgICAgICJcdTBCRTlcdTBCRURcdTBCRjFcdTBCRjVcdTBCRjlcdTBCRkRcdTBDMDFcdTBDMDVcdTBDMDlcdTBDMERcdTBDMTFcdTBDMTUiKworICAgICAgICAiXHUwQzE5XHUwQzFEXHUwQzIxXHUwQzI1XHUwQzI5XHUwQzJEXHUwQzMxXHUwQzM1XHUwQzM5XHUwQzNEXHUwQzQxXHUwQzQ1IisKKyAgICAgICAgIlx1MEM0OVx1MEM0RFx1MEM1MVx1MEM1NVx1MEM1OVx1MEM1RFx1MEM2MVx1MEM2NVx1MEM2OVx1MEM2RFx1MEM3MVx1MEM3NSIrCisgICAgICAgICJcdTBDNzlcdTBDN0RcdTBDODFcdTBDODVcdTBDODlcdTBDOERcdTBDOTFcdTBDOTVcdTBDOTlcdTBDOURcdTBDQTFcdTBDQTUiKworICAgICAgICAiXHUwQ0E5XHUwQ0FEXHUwQ0IxXHUwQ0I1XHUwQ0I5XHUwQ0JEXHUwQ0MxXHUwQ0M1XHUwQ0M5XHUwQ0NEXHUwQ0QxXHUwQ0Q1IisKKyAgICAgICAgIlx1MENEOVx1MENERFx1MENFMVx1MENFNVx1MENFOVx1MENFRFx1MENGMVx1MENGNVx1MENGOVx1MENGRFx1MEQwMVx1MEQwNSIrCisgICAgICAgICJcdTBEMDlcdTBEMERcdTBEMTFcdTBEMTVcdTBEMTlcdTBEMURcdTBEMjFcdTBEMjVcdTBEMjlcdTBEMkRcdTBEMzFcdTBEMzUiKworICAgICAgICAiXHUwRDM5XHUwRDNEXHUwRDQxXHUwRDQ1XDAwMFwwMDBcMDAwXHUwODVEXHUwODc1XHUwRDQ5XHUwRDREXHUwRDUxXHUwRDU1IisKKyAgICAgICAgIlx1MEQ1OVx1MEQ1RFx1MDg2RFx1MEQ2MVx1MEQ2NVx1MEQ2OVx1MEQ2RFx1MDg3RFx1MEQ3M1x1MEQ3Rlx1MEQ4Qlx1MEQ5NyIrCisgICAgICAgICJcdTBEQTNcdTBEQUZcdTBEQkJcdTBEQzdcdTBERDNcdTBEREZcdTBERUJcdTBERjdcdTBFMDNcdTBFMEZcdTBFMThcdTBFMkMiKworICAgICAgICAiXHUwRTQwXHUwRTU0XHUwRTY4XHUwRTdDXHUwRTkwXHUwRUE0XHUwRUI4XHUwRUNDXHUwRUUwXHUwRUY0XHUwRjA4XHUwRjFDIisKKyAgICAgICAgIlx1MEYzMFwwMDBcMDAwXDAwMFx1MEY0N1x1MEY1M1x1MEY1Rlx1MEY2Qlx1MEY3N1x1MEY4M1x1MEY4Rlx1MEY5Qlx1MEZBNyIrCisgICAgICAgICJcdTBGQjNcdTBGQkZcdTBGQ0JcdTBGRDdcdTBGRTNcdTBGRUZcdTBGRkJcdTEwMDdcdTEwMTNcdTEwMUZcdTEwMkJcdTEwMzciKworICAgICAgICAiXHUxMDQzXHUxMDRGXHUxMDVCXHUxMDY3XHUxMDczXHUxMDdGXHUxMDhCXHUxMDk3XHUxMEEzXHUxMEFGXHUxMEJCXHUxMEM3IisKKyAgICAgICAgIlx1MTBEM1x1MTBERlx1MTBFQlx1QTVBNVwwMzRcMDAwXHUwQkQxXHUwQkREXHUwQkU5XHUwQkYxXHUwQzExXHUwQzE1XHUwQzIxIisKKyAgICAgICAgIlx1MEMyOVx1MEMyRFx1MEMzNVx1MEMzOVx1MEMzRFx1MEM0MVx1MEM0NVx1MEUxRVx1MEUzMlx1MEU0Nlx1MEU1QVx1MEU2RSIrCisgICAgICAgICJcdTBFODJcdTBFOTZcdTBFQUFcdTBFQkVcdTBFRDJcdTBFRTZcdTBFRkFcdTBGMEVcdTBDNDZcdUE1QTVcMDA0XDAwMFx1MDg1RCIrCisgICAgICAgICJcdTA4NzVcdTBENDlcdTBENERcdTBGNzlcdTBGODVcdTBGOTFcdTA4ODlcdTBGQTlcdTA4QjlcdTA5ODFcdTA5QjFcdTA5QUQiKworICAgICAgICAiXHUwOTg1XHUwQUY1XHUwOEQ5XHUwOTc5XHUxMDE1XHUxMDIxXHUxMDJEXHUxMDM5XHUxMDQ1XHUxMDUxXHUxMDVEXHUxMDY5IisKKyAgICAgICAgIlx1MTBGNVx1MTBGOVx1MDhGMVx1MTBGRFx1MTEwMVx1MTEwNVx1MTEwOVx1MTEwRFx1MTBENVx1MTExMVx1MTExNVx1MEQ1MSIrCisgICAgICAgICJcdTBENTVcdTBENTlcdTExMTlcdTExMURcdTExMjFcdTExMjVcdTEwOERcdTEwOTlcdTEwQTVcdTEwQjFcdTEwQkRcdTExMjkiKworICAgICAgICAiXHVBNUE1XDAxN1wwMDBcdTExMkVcdTExMzZcdTExM0VcdTExNDZcdTExNEVcdTExNTZcdTExNUVcdTExNjZcdTExNkVcdTExNzciKworICAgICAgICAiXHUxMTgzXHUxMThGXHVBNUE1XDAwNFwwMDBcdTExOTlcdTExOURcdTExQTFcdTExQTVcdTExQTlcdTExQURcdTExQjFcdTExQjUiKworICAgICAgICAiXHUxMUI5XHUxMUJEXHUxMUMxXHUxMUM1XHUxMUM5XHUxMUNEXHUxMUQxXHUxMUQ1XHUxMUQ5XHUxMUREXHUxMUUxXHUxMUU1IisKKyAgICAgICAgIlx1MTFFOVx1MTFFRFx1MTFGMVx1MTFGNVx1MTFGOVx1MTFGRFx1MTIwMVx1MTIwNVx1MTIwOVx1MTIwRFx1MTIxMVx1MTIxNSIrCisgICAgICAgICJcdTEyMTlcdTEyMURcdTEyMjFcdTEyMjVcdTEyMjlcdTEyMkRcdTEyMzFcdTEyMzVcdTEyMzlcdTEyM0RcdTEyNDFcdTEyNDUiKworICAgICAgICAiXHUxMjQ5XHUxMjREXHUxMjUxXDAwMFx1MTI1NFx1MTI2Q1x1MTI4MFx1MTI5Qlx1MTJBNFx1MTJCRlx1MTJDQlx1MTJENCIrCisgICAgICAgICJcdTEyRjBcdTEzMDdcdTEzMTNcdTEzMUZcdTEzMjhcdTEzM0NcdTEzNTBcdTEzNjRcdTEzNzhcdTEzOENcdTEzQTBcdTEzQjQiKworICAgICAgICAiXHUxM0QyXHUxM0Q4XHUxM0Y0XHUxNDEwXHUxM0UwXHUxNDI4XHUxNDQ0XHUxNDYwXHUxNDc3XHUxNDgzXHUxNDhDXHUxNEEwIisKKyAgICAgICAgIlx1MTRCNFx1MTRDQ1x1MTRFN1x1MTRGM1x1MTRGQ1x1MTUxM1x1MTUxRlx1MTQzQVx1MTUyQVx1MTUzM1x1MTUzRlx1MTU0OCIrCisgICAgICAgICJcdTE1NjRcdTE1NzhcdTE1OTBcdTE1QUNcdTE1QzNcdTE1Q0ZcdTE1RDhcdTE1RjRcdTE2MDhcdTE2MjdcdTE2MzBcdTE2NEIiKworICAgICAgICAiXHUxNjU0XHUxNjZCXHUxNjc0XHUxNjg4XHUxNkEwXHUxNkI0XHUxNkNDXHUxNkUyXHUxNkU4XHUxNzAzXHUxNzBGXHUxNzE4IisKKyAgICAgICAgIlx1MTcyRlx1MTczQlx1MTc0N1x1MTc1MFx1MTc2OFx1MTc3RVx1MTc4NFx1MTdBM1x1MTdBQ1x1MTNGQ1x1MTdDNFx1MTdEQiIrCisgICAgICAgICJcdTE3RTdcdTE3RjBcdTE4MDZcdTE4MENcdTE4MjBcdTE4M0FcdTE4NDBcdTE0MUJcdTE4NUVcdTE4NjZcdTE4NkVcdTE4NzYiKworICAgICAgICAiXHUxODdFXHUxODg2XHUxODhFXHUxODk2XHUxODlFXHUxOEE2XHUxOEFGXHUxOEJCXHUxOEM3XHUxOEQzXHUxOERGXHUxOEVCIisKKyAgICAgICAgIlx1MThGN1x1MTkwM1x1MTkwRlx1MTkxQlx1MTkyN1x1MTkzM1x1MTkzRlx1MTk0Qlx1MTk1N1x1MTk2M1x1MTk2RVx1MTk3NiIrCisgICAgICAgICJcdTE5N0ZcdTE5OEFcdTE5OTJcdUE1QTVcMDA0XDAwMFx1MTk5QVx1MTlBMlx1MTlBQVx1MTlCMlx1MTlCOFx1MTlDRVx1MTlENiIrCisgICAgICAgICJcdTE5REVcdTE5RTZcdTE5RUVcdTE5RjZcdTAyRkVcdTE5RkVcdTFBMDdcdTFBMTBcdTFBMjZcdTFBMkVcdTFBMzZcdTFBM0UiKworICAgICAgICAiXHUxQTQ2XHUxQTRFXHUxQTU2XHUxQTVGXHUxQTZCXHUxQTc3XHUxQTgzXHUxQThFXHUxQTk2XHUxQTlFXHUxQUE2XHUxQUFFIisKKyAgICAgICAgIlx1MUFCNlx1MUFCRVx1MUFDNlx1MUFDRVx1MUFENlx1MUFERlx1MUFFQlx1MUFFMlx1MUFGN1x1MUIwM1x1MUIwRlx1MUIwNiIrCisgICAgICAgICJcdTFCMUJcdTFCMjdcdTFCMzBcdTE5NjZcdTFCNDdcdTFCNTNcdTFCNUZcdTFCNkJcdTFCNzRcdTFCOENcdTFCQUFcdTAwOEEiKworICAgICAgICAiXHUxQkIyXHUxQkJBXHUxQkMyXHUxQkNBXHUxQkQyXHUxQkRBXHUxQkUyXHUxQkVBXHUxQkYyXHUxQkZBXHUxQzAyXHUxQzBBIisKKyAgICAgICAgIlx1MUMxMlx1MUMxQVx1MUMyMlx1MUMyQVx1MUMzMFx1MUM0Nlx1MUM0RVx1MUM1Nlx1MUM1Q1x1MUM3M1x1MUM3RVx1MUM4NiIrCisgICAgICAgICJcdTFDOEVcdTFDOTZcdTFDOUVcdTFDQTZcdTFDQUVcdTFDQjZcdTFBOTJcdTFDQkVcdTFDQzdcdTFDRDJcdTFDREFcdTFDRTMiKworICAgICAgICAiXHUxQ0VGXHUxQ0ZBXHUxRDAwXHUxRDE3XHUxRDIyXHUxRDJBXHUxRDMyXHUxRDNBXDAwMFwwMDBcdTFENDJcdTFENEFcdTFENTIiKworICAgICAgICAiXHUxRDVBXHUxRDYyXHUxRDZBXHUxRDcyXHUxRDdBXHUxRDgyXHUxRDhCXHUxRDk3XHUxREEzXHUxREFGXHUxREJCXHUxREM3IisKKyAgICAgICAgIlx1MUREM1x1MURERlx1MURFQlx1MURGN1x1MUUwM1x1MUUwRlx1MUUxQlx1MUUyN1x1MUUzM1x1MUUzRlx1MUU0Qlx1MUU1NyIrCisgICAgICAgICJcdTFFNjNcdTFFNkZcdTFFN0JcdTFFODdcMDAwXHU0RjYxXHU0RjY1XHU0RjY5XHU0RjZEXHU0RjcxXHU0Rjc1XHU0Rjc5IisKKyAgICAgICAgIlx1NEY3RFx1NEY4MVx1NEY4NVx1NEY4OVx1NEY4RFx1NEY5MVx1NEY5NVx1NEY5OVx1NEY5RFx1NEZBMVx1NEZBNVx1NEZBOSIrCisgICAgICAgICJcdTRGQURcdTRGQjFcdTRGQjVcdTRGQjlcdTRGQkRcdTRGQzFcdTRGQzVcdTRGQzlcdTRGQ0RcdTRGRDFcdTRGRDVcdTRGRDkiKworICAgICAgICAiXHU0RkREXHU0RkUxXHU0RkU1XHU0RkU5XHU0RkVEXHU0RkYxXHU0RkY1XHU0RkY5XHU0RkZEXHU1MDAxXHU1MDA1XHU1MDA5IisKKyAgICAgICAgIlx1NTAwRFx1NTAxMVx1NTAxNVx1NTAxOVx1NTAxRFx1NTAyMVx1NTAyNVx1NTAyOVx1NTAyRFx1NTAzMVx1NTAzNVx1NTAzOSIrCisgICAgICAgICJcdTUwM0RcdTUwNDFcdTUwNDVcdTUwNDlcdTUwNERcdTUwNTFcdTUwNTVcdTUwNTlcdTUwNURcdTUwNjFcdTUwNjVcdTUwNjkiKworICAgICAgICAiXHU1MDZEXHU1MDcxXHU1MDc1XHU1MDc5XHU1MDdEXHU1MDgxXHU1MDg1XHU1MDg5XHU1MDhEXHU1MDkxXHU1MDk1XHU1MDk5IisKKyAgICAgICAgIlx1NTA5RFx1NTBBMVx1NTBBNVx1NTBBOVx1NTBBRFx1NTBCMVx1NTBCNVx1NTBCOVx1NTBCRFx1NTBDMVx1NTBDNVx1NTBDOSIrCisgICAgICAgICJcdTUwQ0RcdTUwRDFcdTUwRDVcdTUwRDlcdTUwRERcdTUwRTFcdTUwRTVcdTUwRTlcdTUwRURcdTUwRjFcdTUwRjVcdTUwRjkiKworICAgICAgICAiXHU1MEZEXHU1MTAxXHU1MTA1XHU1MTA5XHU1MTBEXHU1MTExXHU1MTE1XHU1MTE5XHU1MTFEXHU1MTIxXHU1MTI1XHU1MTI5IisKKyAgICAgICAgIlx1NTEyRFx1NTEzMVx1NTEzNVx1NTEzOVx1NTEzRFx1NTE0MVx1NTE0NVx1NTE0OVx1NTE0RFx1NTE1MVx1NTE1NVx1NTE1OSIrCisgICAgICAgICJcdTUxNURcdTUxNjFcdTUxNjVcdTUxNjlcdTUxNkRcdTUxNzFcdTUxNzVcdTUxNzlcdTUxN0RcdTUxODFcdTUxODVcdTUxODkiKworICAgICAgICAiXHU1MThEXHU1MTkxXHU1MTk1XHU1MTk5XHU1MTlEXHU1MUExXHU1MUE1XHU1MUE5XHU1MUFEXHU1MUIxXHU1MUI1XHU1MUI5IisKKyAgICAgICAgIlx1NTFCRFx1NTFDMVx1NTFDNVx1NTFDOVx1NTFDRFx1NTFEMVx1NTFENVx1NTFEOVx1NTFERFx1NTFFMVx1NTFFNVx1NTFFOSIrCisgICAgICAgICJcdTUxRURcdTUxRjFcdTUxRjVcdTUxRjlcdTUxRkRcdTUyMDFcdTUyMDVcdTUyMDlcdTUyMERcdTUyMTFcdTUyMTVcdTUyMTkiKworICAgICAgICAiXHU1MjFEXHU1MjIxXHU1MjI1XHU1MjI5XHU1MjJEXHU1MjMxXHU1MjM1XHU1MjM5XHU1MjNEXHU1MjQxXHU1MjQ1XHU1MjQ5IisKKyAgICAgICAgIlx1NTI0RFx1NTI1MVx1NTI1NVx1NTI1OVx1NTI1RFx1NTI2MVx1NTI2NVx1NTI2OVx1NTI2RFx1NTI3MVx1NTI3NVx1NTI3OSIrCisgICAgICAgICJcdTUyN0RcdTUyODFcdTUyODVcdTUyODlcdTUyOERcdTUyOTFcdTUyOTVcdTUyOTlcdTUyOURcdTUyQTFcdTUyQTVcdTUyQTkiKworICAgICAgICAiXHU1MkFEXHU1MkIxXHU1MkI1XHU1MkI5XHU1MkJEXHU1MkMxXHU1MkM1XHU1MkM5XHU1MkNEXHU1MkQxXHU1MkQ1XHU1MkQ5IisKKyAgICAgICAgIlx1NTJERFx1NTJFMVx1NTJFNVx1NTJFOVx1NTJFRFx1NTJGMVx1NTJGNVx1NTJGOVx1NTJGRFx1NTMwMVx1NTMwNVx1NTMwOSIrCisgICAgICAgICJcdTUzMERcdTUzMTFcdTUzMTVcdTUzMTlcdTUzMURcdTUzMjFcdTUzMjVcdTUzMjlcdTUzMkRcdTUzMzFcdTUzMzVcdTUzMzkiKworICAgICAgICAiXHU1MzNEXHU1MzQxXHU1MzQ1XHU1MzQ5XHU1MzREXHU1MzUxXHU1MzU1XHU1MzU5XHU1MzVEXHU1MzYxXHU1MzY1XHU1MzY5IisKKyAgICAgICAgIlx1NTM2RFx1NTM3MVx1NTM3NVx1NTM3OVx1NTM3RFx1NTM4MVx1NTM4NVx1NTM4OVx1NTM4RFx1NTM5MVx1NTM5NVwwMDAiKworICAgICAgICAiXDAwMFx1NTM5OVwwMDBcdTUzOURcMDAwXDAwMFx1NTNBMVx1NTNBNVx1NTNBOVx1NTNBRFx1NTNCMVx1NTNCNVx1NTNCOSIrCisgICAgICAgICJcdTUzQkRcdTUzQzFcdTUzQzVcMDAwXHU1M0M5XDAwMFx1NTNDRFwwMDBcMDAwXHU1M0QxXHU1M0Q1XDAwMFwwMDBcMDAwIisKKyAgICAgICAgIlx1NTNEOVx1NTNERFx1NTNFMVx1NTNFNVx1QTVBNVwwMjJcMDAwXHUxRTkyXHUxRTlBXHUxRUEyXHUxRTk3XHUxRUFCXHUxRUI2IisKKyAgICAgICAgIlx1MUVCNlx1QTVBNVwwMTRcMDAwXHUxRUJFXHUxRUM2XHUxRUNFXHUxRUQ2XHUxRURFXHVBNUE1XDAwNVwwMDBcdTUzRUEiKworICAgICAgICAiXDAwMFx1NTNGMlx1MUVFNVx1MDMwOVx1MDMxNVx1MUVFOVx1MUVFRFx1MUVGMVx1MUVGNVx1MUVGOVx1MUVGRFx1MDI2NSIrCisgICAgICAgICJcdTUzRkFcdTU0MDJcdTU0MEJcdTU0MTdcdTU0MjJcdTU0MkFcdTU0MzJcdTU0M0FcdTU0NDJcdTU0NEFcdTU0NTJcdTU0NUEiKworICAgICAgICAiXHU1NDYyXDAwMFx1NTQ2QVx1NTQ3Mlx1NTQ3QVx1NTQ4Mlx1NTQ4QVwwMDBcdTU0OTJcMDAwXHU1NDlBXHU1NEEyXDAwMCIrCisgICAgICAgICJcdTU0QUFcdTU0QjJcMDAwXHU1NEJBXHU1NEMyXHU1NENBXHU1NEQyXHU1NERBXHU1NEUyXHU1NEVBXHU1NEYyXHU1NEZBIisKKyAgICAgICAgIlx1MUYwMlx1MUYwOVx1MUYwOVx1QTVBNVwwMDRcdTFGMERcdUE1QTVcMDA0XHUxRjExXHVBNUE1XDAwNFx1MUYxNVx1QTVBNSIrCisgICAgICAgICJcMDA0XHUxRjE5XHVBNUE1XDAwNFx1MUYxRFx1QTVBNVwwMDRcdTFGMjFcdUE1QTVcMDA0XHUxRjI1XHVBNUE1XDAwNFx1MUYyOSIrCisgICAgICAgICJcdUE1QTVcMDA0XHUxRjJEXHVBNUE1XDAwNFx1MUYzMVx1QTVBNVwwMDRcdTFGMzVcdUE1QTVcMDA0XHUxRjM5XHUxRjNEIisKKyAgICAgICAgIlx1MUYzRFx1MUY0MVx1MUY0MVx1MUY0NVx1MUY0NVx1MUY0OVx1MUY0OVx1MUY0RFx1MUY0RFx1MUY1MVx1MUY1MVx1QTVBNSIrCisgICAgICAgICJcMDA0XHUxRjU1XHVBNUE1XDAwNFx1MUY1OVx1QTVBNVwwMDRcdTFGNURcdUE1QTVcMDA0XHUxRjYxXHUxRjY1XHUxRjY1IisKKyAgICAgICAgIlx1QTVBNVwwMDRcdTFGNjlcdTFGNkVcdTFGNkVcdUE1QTVcMDA0XHUxRjc1XHVBNUE1XDAwNFx1MUY3OVx1MUY3RFx1MUY3RCIrCisgICAgICAgICJcdTFGODJcdTFGODJcdUE1QTUhXDAwMFx1QTVBNVwwMDRcdTFGODlcdTAxODFcdTAxODFcdTFGOERcdTFGOERcdTFGOTEiKworICAgICAgICAiXHUxRjkxXHUwMTgyXHUxRjk1XHUxRjk1XHUxRjk5XHUxRjk5XHUxRjlEXHUxRjlEXHVBNUE1XDAwNFx1MUZBMVx1MUZBNSIrCisgICAgICAgICJcdTFGQTVcdTFGQUJcdTFGQUJcdTFGQjdcdTFGQjdcdTFGQzNcdTFGQzNcdTFGQ0ZcdTFGQ0ZcdTFGREJcdTFGREJcdTFGRTciKworICAgICAgICAiXHUxRkU3XHUxRkYzXHUxRkYzXHUxRkYzXHUxRkZGXHUxRkZGXHUxRkZGXHVBNUE1XDAwNFx1MjAwOVx1MjAwRlx1MjAxQiIrCisgICAgICAgICJcdTIwMjdcdTFGRkZcdTIwMzNcdTIwM0VcdTIwNDZcdTIwNEVcdTIwNTZcdTIwNUVcdTIwNjZcdTIwNkVcdTIwNzZcdTIwN0UiKworICAgICAgICAiXHUyMDg2XHUyMDhFXHUyMDk2XHUyMDlFXHUyMEE2XHUyMEFFXHUyMEI2XHUyMEJFXHUyMEM2XHUyMEMyXHUyMENFXHUyMEQ2IisKKyAgICAgICAgIlx1MjBERVx1MjBFNlx1MjBFRVx1MjBGNlx1MjBGRVx1MjEwNlx1MjEwRVx1MjExNlx1MjExRVx1MjEyNlx1MjEyRVx1MjEzNiIrCisgICAgICAgICJcdTIxM0VcdTIxNDZcdTIxNEVcdTIxNTZcdTIxNUVcdTIxNjZcdTIxNkVcdTIxNzZcdTIxN0VcdTIxODZcdTIxOEVcdTIxOTYiKworICAgICAgICAiXHUyMTlFXHUyMUE2XHUyMUFFXHUyMUI2XHUyMUJFXHUyMUM2XHUyMUNFXHUyMUQ2XHUyMURFXHUyMUU2XHUyMUVFXHUyMUY2IisKKyAgICAgICAgIlx1MjFGRVx1MjIwNlx1MjIwRVx1MjIxNlx1MjIxRVx1MjIyNlx1MjIyRVx1MjIzNlx1MjBDQVx1MjBEMlx1MjIzRVx1MjI0NiIrCisgICAgICAgICJcdTIwMkVcdTIyNEVcdTIyNTZcdTIyNUVcdTIyNjZcdTIyNkVcdTIyNzZcdTIyN0VcdTIyODZcdTIyOEVcdTIyOTZcdTIwQkEiKworICAgICAgICAiXHUyMjlFXHUyMkE2XHUyMjMyXHUyMkFFXHUyMjlBXHUyMkI2XHUyMkJFXHUyMkM2XHUyMkNGXHUyMkRCXHUyMkU3XHUyMkYzIisKKyAgICAgICAgIlx1MjJGRlx1MjMwQlx1MjMxN1x1MjMyM1x1MjAyN1x1MjMyRlx1MUZGRlx1MjAzM1x1MjMzQVx1MjM0Mlx1MjA1Nlx1MjM0QSIrCisgICAgICAgICJcdTIwNUVcdTIwNjZcdTIzNTJcdTIzNUFcdTIwODZcdTIzNjJcdTIwOEVcdTIwOTZcdTIzNkFcdTIzNzJcdTIwQTZcdTIzN0EiKworICAgICAgICAiXHUyMEFFXHUyMEI2XHUyMTk2XHUyMTlFXHUyMUI2XHUyMUJFXHUyMUM2XHUyMUU2XHUyMUVFXHUyMUY2XHUyMUZFXHUyMjFFIisKKyAgICAgICAgIlx1MjIyNlx1MjIyRVx1MjM4Mlx1MjIzRVx1MjM4QVx1MjM5Mlx1MjI2Nlx1MjM5QVx1MjI2RVx1MjI3Nlx1MjJDNlx1MjNBMiIrCisgICAgICAgICJcdTIzQUFcdTIyMzJcdTIzQjJcdTIyQUVcdTIyOUFcdTIwMEZcdTIwMUJcdTIzQkJcdTIwMjdcdTIzQzdcdTIwM0VcdTIwNDYiKworICAgICAgICAiXHUyMDRFXHUyMDU2XHUyM0QyXHUyMDZFXHUyMDc2XHUyMDdFXHUyMDg2XHUyM0RBXHUyMEE2XHUyMEJFXHUyMEM2XHUyMEMyIisKKyAgICAgICAgIlx1MjBDRVx1MjBENlx1MjBFNlx1MjBFRVx1MjBGNlx1MjBGRVx1MjEwNlx1MjEwRVx1MjNFMlx1MjExNlx1MjExRVx1MjEyNiIrCisgICAgICAgICJcdTIxMkVcdTIxMzZcdTIxM0VcdTIxNEVcdTIxNTZcdTIxNUVcdTIxNjZcdTIxNkVcdTIxNzZcdTIxN0VcdTIxODZcdTIxOEUiKworICAgICAgICAiXHUyMUE2XHUyMUFFXHUyMUNFXHUyMUQ2XHUyMURFXHUyMUU2XHUyMUVFXHUyMjA2XHUyMjBFXHUyMjE2XHUyMjFFXHUyM0VBIisKKyAgICAgICAgIlx1MjIzNlx1MjBDQVx1MjBEMlx1MjIzRVx1MjI0RVx1MjI1Nlx1MjI1RVx1MjI2Nlx1MjNGMlx1MjI3RVx1MjI4Nlx1MjNGQSIrCisgICAgICAgICJcdTIwQkFcdTIyOUVcdTIyQTZcdTIyMzJcdTIyN0FcdTIwMjdcdTIzQzdcdTIwNTZcdTIzRDJcdTIwODZcdTIzREFcdTIwQTYiKworICAgICAgICAiXHUyNDAyXHUyMTA2XHUyNDBBXHUyNDEyXHUyNDFBXHUyMUU2XHUyMUVFXHUyMjFFXHUyMjY2XHUyM0YyXHUyMjMyXHUyMjdBIisKKyAgICAgICAgIlx1MjQyM1x1MjQyRlx1MjQzQlx1MjQ0Nlx1MjQ0RVx1MjQ1Nlx1MjQ1RVx1MjQ2Nlx1MjQ2RVx1MjQ3Nlx1MjQ3RVx1MjQ4NiIrCisgICAgICAgICJcdTI0OEVcdTI0OTZcdTIwMjJcdTI0OUVcdTIwMTZcdTI0QTZcdTIyQUFcdTI0QUVcdTI0QjZcdTI0QkVcdTI0QzZcdTI0Q0UiKworICAgICAgICAiXHUyNEQ2XHUyNERFXHUyNDEyXHUyNEU2XHUyNEVFXHUyNEY2XHUyNEZFXHUyNDQ2XHUyNDRFXHUyNDU2XHUyNDVFXHUyNDY2IisKKyAgICAgICAgIlx1MjQ2RVx1MjQ3Nlx1MjQ3RVx1MjQ4Nlx1MjQ4RVx1MjQ5Nlx1MjAyMlx1MjQ5RVx1MjAxNlx1MjRBNlx1MjJBQVx1MjRBRSIrCisgICAgICAgICJcdTI0QjZcdTI0QkVcdTI0QzZcdTI0Q0VcdTI0RDZcdTI0REVcdTI0MTJcdTI0RTZcdTI0RUVcdTI0RjZcdTI0RkVcdTI0Q0UiKworICAgICAgICAiXHUyNEQ2XHUyNERFXHUyNDEyXHUyNDBBXHUyNDFBXHUyMTQ2XHUyMEVFXHUyMEY2XHUyMEZFXHUyNENFXHUyNEQ2XHUyNERFIisKKyAgICAgICAgIlx1MjE0Nlx1MjE0RVx1MjUwNlx1MjUwNlx1QTVBNVwwMjJcMDAwXHUyNTBGXHUyNTFCXHUyNTFCXHUyNTI3XHUyNTMzXHUyNTNGIisKKyAgICAgICAgIlx1MjU0Qlx1MjU1N1x1MjBDN1x1MjBDN1x1MjU2M1x1MjU2Rlx1MjU3Qlx1MjU4N1x1MjU5M1x1MjU5Rlx1MjU5Rlx1MjVBQiIrCisgICAgICAgICJcdTI1QjdcdTI1QjdcdTI1QzNcdTI1QzNcdTI1Q0ZcdTI1REJcdTI1REJcdTI1RTdcdTI1RjNcdTI1RjNcdTI1RkZcdTI1RkYiKworICAgICAgICAiXHUyNjBCXHUyNjE3XHUyNjE3XHUyNjIzXHUyNjIzXHUyNjJGXHUyNjNCXHUyNjQ3XHUyNjUzXHUyNjUzXHUyNjVGXHUyNjZCIisKKyAgICAgICAgIlx1MjY3N1x1MjY4M1x1MjY4Rlx1MjY4Rlx1MjY5Qlx1MjZBN1x1MjZCM1x1MjZCRlx1MjZDQlx1MjZEN1x1MjZEN1x1MjZFMyIrCisgICAgICAgICJcdTI2RTNcdTI2RUZcdTI2RUZcdTI2RkJcdTIwQ0JcdTI3MDdcdTI3MTNcdTIyMzdcdTIwRDNcdTI3MUZcMDAwXDAwMFx1MjcyQiIrCisgICAgICAgICJcdTI3MzdcdTI3NDNcdTI3NEZcdTI3NUJcdTI3NjdcdTI3NjdcdTI3NzNcdTI3N0ZcdTI3OEJcdTI3OTdcdTI3OTdcdTI3QTMiKworICAgICAgICAiXHUyN0FGXHUyN0JCXHUyN0M3XHUyN0QzXHUyN0RGXHUyN0VCXHUyN0Y3XHUyODAzXHUyODBGXHUyODFCXHUyODI3XHUyODMzIisKKyAgICAgICAgIlx1MjgzRlx1Mjg0Qlx1Mjg1N1x1MjI5Rlx1Mjg2M1x1Mjg2Rlx1Mjg3Qlx1Mjg4N1x1Mjg5M1x1MjY5Qlx1MjZCM1x1Mjg5RiIrCisgICAgICAgICJcdTI4QUJcdTI4QjdcdTI4QzNcdTI4Q0ZcdTI4REJcdTI4Q0ZcdTI4QjdcdTI4RTdcdTI4RjNcdTI4RkZcdTI5MEJcdTI5MTciKworICAgICAgICAiXHUyOERCXHUyNjQ3XHUyNUNGXHUyOTIzXHUyOTJGXHVBNUE1KFwwMDBcdTI5M0JcdTI5NDdcdTI5NTBcdTI5NjRcdTI5NzgiKworICAgICAgICAiXHUyOThDXHUyOUEwXHUyOUI0XHUyOUM4XHUyOURGXHUyOUU4XHUyQTM0XHVBNUE1XDAyNFwwMDBcdTAxRkFcdTJBNTlcdTJBNUQiKworICAgICAgICAiXHUyQTYxXHUyQTYxXHUwMjcxXHUwMjc1XHUyQTY1XHUyQTY5XHUyQTZEXHUyQTcxXHUyQTc1XHUyQTc5XHUyQTdEXHUyQTgxIisKKyAgICAgICAgIlx1MkE4NVx1MkE4OVx1MkE4RFx1MkE5MVx1MkE5NVx1MkE5OVx1QTVBNVwwMDRcMDAwXHVBNUE1XDAwNFx1MDIzNlx1MkE2MSIrCisgICAgICAgICJcdTJBNjFcdTJBNjFcdTJBOURcdTJBQTFcdTAxRjlcMDAwXHUyQUE1XHUyQUE5XHUwMjNEXHUwMjJEXHUyQTU5XHUwMjcxIisKKyAgICAgICAgIlx1MDI3NVx1MkE2NVx1MkE2OVx1MkE2RFx1MkE3MVx1MkFBRFx1MkFCMVx1MkFCNVx1MDI2NVx1MkFCOVx1MkFCRFx1MkFDMSIrCisgICAgICAgICJcdTAyNkRcMDAwXHUyQUM1XHUyQUM5XHUyQUNEXHUyQUQxXHVBNUE1XDAwNFwwMDBcdTJBRDZcdTJBREVcdTIyQ0VcMDAwIisKKyAgICAgICAgIlx1MjJEQVwwMDBcdTIyRTZcdTI0MjJcdTIyRjJcdTI0MkVcdTIyRkVcdTI0M0FcdTIzMEFcdTJBRTZcdTJBRUVcdTJBRjYiKworICAgICAgICAiXHUyQUZEXHUyQjAyXHUyQjAyXHUyQjBBXHUyQjBBXHUyQjEyXHUyQjEyXHUyQjFBXHUyQjFBXHVBNUE1XDAwNFx1MUZBQSIrCisgICAgICAgICJcdTAxNzFcdTAxNzFcdUE1QTVcMDA0XHUyMDNEXHUyQjIxXHUyQjIxXHVBNUE1XDAwNFx1MjA2RFx1QTVBNVwwMDRcdTIwOUQiKworICAgICAgICAiXHVBNUE1XDAwNFx1MjAxNVx1QTVBNVwwMDRcdTIwMjFcdUE1QTVcMDA0XHUyMDUxXHUyOTg1XHUyOTg1XHUyMkI1XHUyMkI1IisKKyAgICAgICAgIlx1MjJCRFx1MjJCRFx1MjMyOVx1MjMyOVx1QTVBNVwwMDRcdTIwRURcdUE1QTVcMDA0XHUyNDExXHVBNUE1XDAwNFx1MjEwRCIrCisgICAgICAgICJcdUE1QTVcMDA0XHUyMTFEXHVBNUE1XDAwNFx1MjEzRFx1QTVBNVwwMDRcdTIxNERcdUE1QTVcMDA0XHUyMTU1XHVBNUE1IisKKyAgICAgICAgIlwwMDRcdTIxNjVcdUE1QTVcMDA0XHUyMTc1XHVBNUE1XDAwNFx1MjFBNVx1QTVBNVwwMDRcdTIxQzVcdUE1QTVcMDA0XHUyMUU5IisKKyAgICAgICAgIlx1QTVBNVwwMDRcdTIwMkRcdUE1QTVcMDA0XHUyMjREXHVBNUE1XDAwNFx1MjI3RFx1MDE3OVx1MDE3OVx1MUZBNVx1MUZBNSIrCisgICAgICAgICJcdUE1QTVcMDA0XHUwMTg5XHUyQjI3XHUyQjI3XHUyQjMzXHUyQjMzXHUyQjNGXHUyQjNGXHUyQTQ2XHUyQTQ2XHVBNUE1IisKKyAgICAgICAgIlwwMDRcMDAwXHUwMjJEXHUyQjQ5XHUyQUFEXHUyQUM5XHUyQUNEXHUyQUIxXHUyQjREXHUwMjcxXHUwMjc1XHUyQUI1XHUwMjY1IisKKyAgICAgICAgIlx1MkE5RFx1MkFCOVx1MDFGOVx1MDI4NVx1MDI0RDlcMDM1IUlcdTAyNTFcdTAyNTVcdTAyNTlcdTAyNURcdTAyNjFcdTJBQTkiKworICAgICAgICAiXHUyQUE1XHUyQUJEXHUwMjZEXHUyQUMxXHUwMjNEXHUyQUQxXHUwODM5XHUwMzAxXHUwMjk5XHUwMDkxXHUwMkYxXHUwMkM1IisKKyAgICAgICAgIlx1MDgzRFx1MDJDRGVpXHUwODQxdVx1MDJFOVx1MDBDRFx1MDg0NVx1MDJERFx1MDJFMVx1MDI3OVx1MDJFNVx1MDJFRCIrCisgICAgICAgICJcdTA4NDlcdTAzQzFcdTA4NERcdTAzRjFcdTA4NTFcdTAwOTVcdTJCNTFcdTJBQzVcdTJCNTVcdTJCNTlcdTJBNjFcdTJCNUQiKworICAgICAgICAiXDAyMVx1MDcxMVx1MDI4OVx1MDBBOVx1MDMwNVx1MDc0MVx1MDJDOVx1MDBFNW1xXHUwNzdEfVx1MDQ2OVx1MDA4OT1cdTA3QjkiKworICAgICAgICAiXHUwN0M1XHUwMEVEXHUwMDhEXHUwN0U5XHUwMkI5XHUwNDIxXHUwMEZEXHUwMTM5XHUwMTAxXHUwMEExXHUyQTY1XHUyQjYxIisKKyAgICAgICAgIlx1MkE2OVx1MkI2NVwwMDBcMDAwXHUyQjY5XHUyQThEXHUyQTkxXHUyQUExXHUyQjZEXHUxMjUxXHUxMjc5XHUxNUY5XHUyQjcxIisKKyAgICAgICAgIlx1MTYxOVx1MTJDRFx1MkI3NVx1MTNBNVx1MTc1RFx1MTMzMVx1MTI2MVx1MTE5OVx1MTE5RFx1MTFBMVx1MTFBNVx1MTFBOSIrCisgICAgICAgICJcdTExQURcdTExQjFcdTExQjVcdTExQjlcdTExQkRcdTExQzFcdTExQzVcdTExQzlcdTExQ0RcdTExRDFcdTExRDVcdTExRDkiKworICAgICAgICAiXHUxMUREXHUxMUUxXHUxMUU1XHUxMUU5XHUxMUVEXHUxMUYxXHUxMUY1XHUxMUY5XHUxMUZEXHUxMjAxXHUxMjA1XHUxMjA5IisKKyAgICAgICAgIlx1MTIwRFx1MTIxMVx1MTIxNVx1MTIxOVx1MTIxRFx1MTIyMVx1MTIyNVx1MTIyOVx1MTIyRFx1MTIzMVx1MTIzNVx1MTIzOSIrCisgICAgICAgICJcdTEyM0RcdTEyNDFcdTEyNDVcdTEyODVcdTBCQzVcdTBCQ0RcdTBDOURcdTBCRDFcdTBCRDVcdTBCRDlcdTBCRERcdTBCRTEiKworICAgICAgICAiXHUwQkU1XHUwQkU5XHUwQkVEXHUwQkYxXHUwQkY1XHUwQkY5XHUwQkZEXHUwQzAxXHUwQzA1XHUwQzA5XHUwQzBEXHUwQzExIisKKyAgICAgICAgIlx1MEMxNVx1MEMxOVx1MEMxRFx1MEMyMVx1MEMyNVx1MEMyOVx1MEMyRFx1MEMzMVx1MEMzNVx1MEMzOVx1MEMzRFx1MEM0MSIrCisgICAgICAgICJcdTBDNDVcMDAwXDAwMFwwMDBcdTBDNDlcdTBDNERcdTBDNTFcdTBDNTVcdTBDNTlcdTBDNURcMDAwXDAwMFx1MEM2MVx1MEM2NSIrCisgICAgICAgICJcdTBDNjlcdTBDNkRcdTBDNzFcdTBDNzVcMDAwXDAwMFx1MEM3OVx1MEM3RFx1MEM4MVx1MEM4NVx1MEM4OVx1MEM4RFwwMDAiKworICAgICAgICAiXDAwMFx1MEM5MVx1MEM5NVx1MEM5OVwwMDBcMDAwXDAwMFx1MkI3OVx1MkI3RFx1MkI4MVwwMjZcdTJCODVcdTJCODlcdTJCOEQiKworICAgICAgICAiXDAwMFx1MkI5MVx1MkI5NVx1MkI5OVx1MkI5RFx1MkJBMVx1MkJBNVx1MkJBOVx1QTVBNVwwMjFcMDAwIgorICAgICAgICApOworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBjb250ZW50cyA9IAorICAgICAgICAiXHVGRkZGICBcdTAzMDhhIFx1MDMwNDIzIFx1MDMwMVx1MDNCQyBcdTAzMjcxbzFcdTIwNDQ0MVx1MjA0NDIzXHUyMDQ0IisKKyAgICAgICAgIjRJSmlqTFx1MDBCN2xcdTAwQjdcdTAyQkNuc0RaXHUwMzBDRHpcdTAzMENkelx1MDMwQ0xKTGpsak5KTmpuamhcdTAyNjYiKworICAgICAgICAiclx1MDI3OVx1MDI3Qlx1MDI4MXd5IFx1MDMwNiBcdTAzMDcgXHUwMzBBIFx1MDMyOCBcdTAzMDMgXHUwMzBCXHUwMjYzIisKKyAgICAgICAgInhcdTAyOTUgXHUwMzQ1XHUwM0IyXHUwM0I4XHUwM0E1XHUwM0M2XHUwM0MwXHUwM0JBXHUwM0MxXHUwM0MyXHUwNTY1XHUwNTgyIisKKyAgICAgICAgIlx1MDYyN1x1MDY3NFx1MDY0OFx1MDY3NFx1MDZDN1x1MDY3NFx1MDY0QVx1MDY3NFx1MEU0RFx1MEUzMlx1MEVDRFx1MEVCMiIrCisgICAgICAgICJcdTBFQUJcdTBFOTlcdTBFQUJcdTBFQTFcdTBGMEJcdTBGQjJcdTBGNzFcdTBGODBcdTBGQjNcdTBGNzFcdTBGODBhXHUwMkJFIisKKyAgICAgICAgIiBcdTAzMTMgXHUwMzQyIFx1MDMxNFx1MjAxMCBcdTAzMzMuLi5cdTIwMzJcdTIwMzJcdTIwMzJcdTIwMzJcdTIwMzJcdTIwMzUiKworICAgICAgICAiXHUyMDM1XHUyMDM1XHUyMDM1XHUyMDM1ISEgXHUwMzA1PyEhPzA1Njc4OStcdTIyMTI9KClSc2EvY2Evc0NcdTAwQjBDIisKKyAgICAgICAgImMvb2MvdVx1MDE5MFx1MDBCMEZnSFx1MDEyN05vUFFTTVRFTFRNQmVcdTA1RDBcdTA1RDFcdTA1RDJcdTA1RDMxXHUyMDQ0IisKKyAgICAgICAgIjMyXHUyMDQ0MzFcdTIwNDQ1Mlx1MjA0NDUzXHUyMDQ0NTRcdTIwNDQ1MVx1MjA0NDY1XHUyMDQ0NjFcdTIwNDQ4M1x1MjA0NCIrCisgICAgICAgICI4NVx1MjA0NDg3XHUyMDQ0OElJSUlJSVZWSVZJSVZJSUlcMDAwSVhYSVhJSWlpaWlpaXZ2aXZpaXZpaWlcMDAwaXh4aXgiKworICAgICAgICAiaWltXHUyMjJCXHUyMjJCXHUyMjJCXHUyMjJCXHUyMjJCXHUyMjJFXHUyMjJFXHUyMjJFXHUyMjJFXHUyMjJFMTAxMTEyIisKKyAgICAgICAgIjEzMTQxNTE2MTcxODE5MjAoMSkoMikoMykoNCkoNSkoNikoNykoOCkoOSkoMTApXDAwMCgxMSlcMDAwKDEyKVwwMDAoMSIrCisgICAgICAgICIzKVwwMDAoMTQpXDAwMCgxNSlcMDAwKDE2KVwwMDAoMTcpXDAwMCgxOClcMDAwKDE5KVwwMDAoMjApXDAwMDEuMi4zLjQiKworICAgICAgICAiLjUuNi43LjguOS4xMC4xMS4xMi4xMy4xNC4xNS4xNi4xNy4xOC4xOS4yMC4oYSkoYikoYykoZCkoZSkoZikoZykoaCkoIisKKyAgICAgICAgImkpKGopKGspKGwpKG0pKG4pKG8pKHApKHEpKHIpKHMpKHQpKHUpKHYpKHcpKHgpKHkpKHopQUdLT1VXWVx1NkJDRFx1OUY5RiIrCisgICAgICAgICJcdTRFMDBcdTRFMjhcdTRFMzZcdTRFM0ZcdTRFNTlcdTRFODVcdTRFOENcdTRFQTBcdTRFQkFcdTUxM0ZcdTUxNjVcdTUxNkIiKworICAgICAgICAiXHU1MTgyXHU1MTk2XHU1MUFCXHU1MUUwXHU1MUY1XHU1MjAwXHU1MjlCXHU1MkY5XHU1MzE1XHU1MzFBXHU1MzM4XHU1MzQxIisKKyAgICAgICAgIlx1NTM1Q1x1NTM2OVx1NTM4Mlx1NTNCNlx1NTNDOFx1NTNFM1x1NTZEN1x1NTcxRlx1NThFQlx1NTkwMlx1NTkwQVx1NTkxNSIrCisgICAgICAgICJcdTU5MjdcdTU5NzNcdTVCNTBcdTVCODBcdTVCRjhcdTVDMEZcdTVDMjJcdTVDMzhcdTVDNkVcdTVDNzFcdTVEREJcdTVERTUiKworICAgICAgICAiXHU1REYxXHU1REZFXHU1RTcyXHU1RTdBXHU1RTdGXHU1RUY0XHU1RUZFXHU1RjBCXHU1RjEzXHU1RjUwXHU1RjYxXHU1RjczIisKKyAgICAgICAgIlx1NUZDM1x1NjIwOFx1NjIzNlx1NjI0Qlx1NjUyRlx1NjUzNFx1NjU4N1x1NjU5N1x1NjVBNFx1NjVCOVx1NjVFMFx1NjVFNSIrCisgICAgICAgICJcdTY2RjBcdTY3MDhcdTY3MjhcdTZCMjBcdTZCNjJcdTZCNzlcdTZCQjNcdTZCQ0JcdTZCRDRcdTZCREJcdTZDMEZcdTZDMTQiKworICAgICAgICAiXHU2QzM0XHU3MDZCXHU3MjJBXHU3MjM2XHU3MjNCXHU3MjNGXHU3MjQ3XHU3MjU5XHU3MjVCXHU3MkFDXHU3Mzg0XHU3Mzg5IisKKyAgICAgICAgIlx1NzREQ1x1NzRFNlx1NzUxOFx1NzUxRlx1NzUyOFx1NzUzMFx1NzU4Qlx1NzU5Mlx1NzY3Nlx1NzY3RFx1NzZBRVx1NzZCRiIrCisgICAgICAgICJcdTc2RUVcdTc3REJcdTc3RTJcdTc3RjNcdTc5M0FcdTc5QjhcdTc5QkVcdTdBNzRcdTdBQ0JcdTdBRjlcdTdDNzNcdTdDRjgiKworICAgICAgICAiXHU3RjM2XHU3RjUxXHU3RjhBXHU3RkJEXHU4MDAxXHU4MDBDXHU4MDEyXHU4MDMzXHU4MDdGXHU4MDg5XHU4MUUzXHU4MUVBIisKKyAgICAgICAgIlx1ODFGM1x1ODFGQ1x1ODIwQ1x1ODIxQlx1ODIxRlx1ODI2RVx1ODI3Mlx1ODI3OFx1ODY0RFx1ODY2Qlx1ODg0MFx1ODg0QyIrCisgICAgICAgICJcdTg4NjNcdTg5N0VcdTg5OEJcdTg5RDJcdThBMDBcdThDMzdcdThDNDZcdThDNTVcdThDNzhcdThDOURcdThENjRcdThENzAiKworICAgICAgICAiXHU4REIzXHU4RUFCXHU4RUNBXHU4RjlCXHU4RkIwXHU4RkI1XHU5MDkxXHU5MTQ5XHU5MUM2XHU5MUNDXHU5MUQxXHU5NTc3IisKKyAgICAgICAgIlx1OTU4MFx1OTYxQ1x1OTZCNlx1OTZCOVx1OTZFOFx1OTc1MVx1OTc1RVx1OTc2Mlx1OTc2OVx1OTdDQlx1OTdFRFx1OTdGMyIrCisgICAgICAgICJcdTk4MDFcdTk4QThcdTk4REJcdTk4REZcdTk5OTZcdTk5OTlcdTk5QUNcdTlBQThcdTlBRDhcdTlBREZcdTlCMjVcdTlCMkYiKworICAgICAgICAiXHU5QjMyXHU5QjNDXHU5QjVBXHU5Q0U1XHU5RTc1XHU5RTdGXHU5RUE1XHU5RUJCXHU5RUMzXHU5RUNEXHU5RUQxXHU5RUY5IisKKyAgICAgICAgIlx1OUVGRFx1OUYwRVx1OUYxM1x1OUYyMFx1OUYzQlx1OUY0QVx1OUY1Mlx1OUY4RFx1OUY5Q1x1OUZBMFx1MzAxMlx1NTM0NCIrCisgICAgICAgICJcdTUzNDUgXHUzMDk5IFx1MzA5QVx1MTEwMFx1MTEwMVx1MTFBQVx1MTEwMlx1MTFBQ1x1MTFBRFx1MTEwM1x1MTEwNFx1MTEwNSIrCisgICAgICAgICJcdTExQjBcdTExQjFcdTExQjJcdTExQjNcdTExQjRcdTExQjVcdTExMUFcdTExMDZcdTExMDdcdTExMDhcdTExMjFcdTExMDkiKworICAgICAgICAiXHUxMTBBXHUxMTBCXHUxMTBDXHUxMTBEXHUxMTBFXHUxMTBGXHUxMTEwXHUxMTExXHUxMTEyXHUxMTYxXHUxMTYyXHUxMTYzIisKKyAgICAgICAgIlx1MTE2NFx1MTE2NVx1MTE2Nlx1MTE2N1x1MTE2OFx1MTE2OVx1MTE2QVx1MTE2Qlx1MTE2Q1x1MTE2RFx1MTE2RVx1MTE2RiIrCisgICAgICAgICJcdTExNzBcdTExNzFcdTExNzJcdTExNzNcdTExNzRcdTExNzVcdTExNjBcdTExMTRcdTExMTVcdTExQzdcdTExQzhcdTExQ0MiKworICAgICAgICAiXHUxMUNFXHUxMUQzXHUxMUQ3XHUxMUQ5XHUxMTFDXHUxMUREXHUxMURGXHUxMTFEXHUxMTFFXHUxMTIwXHUxMTIyXHUxMTIzIisKKyAgICAgICAgIlx1MTEyN1x1MTEyOVx1MTEyQlx1MTEyQ1x1MTEyRFx1MTEyRVx1MTEyRlx1MTEzMlx1MTEzNlx1MTE0MFx1MTE0N1x1MTE0QyIrCisgICAgICAgICJcdTExRjFcdTExRjJcdTExNTdcdTExNThcdTExNTlcdTExODRcdTExODVcdTExODhcdTExOTFcdTExOTJcdTExOTRcdTExOUUiKworICAgICAgICAiXHUxMUExXHU0RTA5XHU1NkRCXHU0RTBBXHU0RTJEXHU0RTBCXHU3NTMyXHU0RTE5XHU0RTAxXHU1OTI5XHU1NzMwKFx1MTEwMCIrCisgICAgICAgICIpKFx1MTEwMikoXHUxMTAzKShcdTExMDUpKFx1MTEwNikoXHUxMTA3KShcdTExMDkpKFx1MTEwQikoXHUxMTBDKShcdTExMEUiKworICAgICAgICAiKShcdTExMEYpKFx1MTExMCkoXHUxMTExKShcdTExMTIpKFx1MTEwMFx1MTE2MSlcMDAwKFx1MTEwMlx1MTE2MSlcMDAwIisKKyAgICAgICAgIihcdTExMDNcdTExNjEpXDAwMChcdTExMDVcdTExNjEpXDAwMChcdTExMDZcdTExNjEpXDAwMChcdTExMDdcdTExNjEpXDAwMCIrCisgICAgICAgICIoXHUxMTA5XHUxMTYxKVwwMDAoXHUxMTBCXHUxMTYxKVwwMDAoXHUxMTBDXHUxMTYxKVwwMDAoXHUxMTBFXHUxMTYxKVwwMDAiKworICAgICAgICAiKFx1MTEwRlx1MTE2MSlcMDAwKFx1MTExMFx1MTE2MSlcMDAwKFx1MTExMVx1MTE2MSlcMDAwKFx1MTExMlx1MTE2MSlcMDAwIisKKyAgICAgICAgIihcdTExMENcdTExNkUpXDAwMChcdTRFMDApKFx1NEU4QykoXHU0RTA5KShcdTU2REIpKFx1NEU5NCkoXHU1MTZEKShcdTRFMDMiKworICAgICAgICAiKShcdTUxNkIpKFx1NEU1RCkoXHU1MzQxKShcdTY3MDgpKFx1NzA2QikoXHU2QzM0KShcdTY3MjgpKFx1OTFEMSkoXHU1NzFGIisKKyAgICAgICAgIikoXHU2NUU1KShcdTY4MkEpKFx1NjcwOSkoXHU3OTNFKShcdTU0MEQpKFx1NzI3OSkoXHU4Q0ExKShcdTc5NUQpKFx1NTJCNCIrCisgICAgICAgICIpKFx1NEVFMykoXHU1NDdDKShcdTVCNjYpKFx1NzZFMykoXHU0RjAxKShcdThDQzcpKFx1NTM1NCkoXHU3OTZEKShcdTRGMTEiKworICAgICAgICAiKShcdTgxRUEpKFx1ODFGMylcdTc5RDhcdTc1MzdcdTkwNjlcdTUxMkFcdTUzNzBcdTZDRThcdTk4MDVcdTUxOTlcdTZCNjMiKworICAgICAgICAiXHU1REU2XHU1M0YzXHU1MzNCXHU1Qjk3XHU1OTFDMVx1NjcwODJcdTY3MDgzXHU2NzA4NFx1NjcwODVcdTY3MDg2XHU2NzA4IisKKyAgICAgICAgIjdcdTY3MDg4XHU2NzA4OVx1NjcwODEwXHU2NzA4MTFcdTY3MDgxMlx1NjcwOFx1MzBBMlx1MzBBNFx1MzBBNlx1MzBBOCIrCisgICAgICAgICJcdTMwQUFcdTMwQUJcdTMwQURcdTMwQUZcdTMwQjFcdTMwQjNcdTMwQjVcdTMwQjdcdTMwQjlcdTMwQkJcdTMwQkRcdTMwQkYiKworICAgICAgICAiXHUzMEMxXHUzMEM0XHUzMEM2XHUzMEM4XHUzMENBXHUzMENCXHUzMENDXHUzMENEXHUzMENFXHUzMENGXHUzMEQyXHUzMEQ1IisKKyAgICAgICAgIlx1MzBEOFx1MzBEQlx1MzBERVx1MzBERlx1MzBFMFx1MzBFMVx1MzBFMlx1MzBFNFx1MzBFNlx1MzBFOFx1MzBFOVx1MzBFQSIrCisgICAgICAgICJcdTMwRUJcdTMwRUNcdTMwRURcdTMwRUZcdTMwRjBcdTMwRjFcdTMwRjJcdTMwQTJcdTMwQ0ZcdTMwOUFcdTMwRkNcdTMwQzgiKworICAgICAgICAiXDAwMFx1MzBBMlx1MzBFQlx1MzBENVx1MzBBMVwwMDBcdTMwQTJcdTMwRjNcdTMwRDhcdTMwOUFcdTMwQTJcMDAwXHUzMEEyIisKKyAgICAgICAgIlx1MzBGQ1x1MzBFQlx1MzBBNFx1MzBDQlx1MzBGM1x1MzBBRlx1MzA5OVwwMDBcdTMwQTRcdTMwRjNcdTMwQzFcdTMwQTYiKworICAgICAgICAiXHUzMEE5XHUzMEYzXHUzMEE4XHUzMEI5XHUzMEFGXHUzMEZDXHUzMEM4XHUzMDk5XDAwMFx1MzBBOFx1MzBGQ1x1MzBBQiIrCisgICAgICAgICJcdTMwRkNcMDAwXHUzMEFBXHUzMEYzXHUzMEI5XHUzMEFBXHUzMEZDXHUzMEUwXHUzMEFCXHUzMEE0XHUzMEVBXHUzMEFCIisKKyAgICAgICAgIlx1MzBFOVx1MzBDM1x1MzBDOFwwMDBcdTMwQUJcdTMwRURcdTMwRUFcdTMwRkNcMDAwXHUzMEFCXHUzMDk5XHUzMEVEXHUzMEYzIisKKyAgICAgICAgIlwwMDBcdTMwQUJcdTMwOTlcdTMwRjNcdTMwREVcMDAwXHUzMEFEXHUzMDk5XHUzMEFCXHUzMDk5XDAwMFx1MzBBRFx1MzA5OSIrCisgICAgICAgICJcdTMwQ0JcdTMwRkNcMDAwXHUzMEFEXHUzMEU1XHUzMEVBXHUzMEZDXDAwMFx1MzBBRFx1MzA5OVx1MzBFQlx1MzBCRlx1MzA5OSIrCisgICAgICAgICJcdTMwRkNcMDAwXHUzMEFEXHUzMEVEXHUzMEFEXHUzMEVEXHUzMEFGXHUzMDk5XHUzMEU5XHUzMEUwXDAwMFx1MzBBRFx1MzBFRCIrCisgICAgICAgICJcdTMwRTFcdTMwRkNcdTMwQzhcdTMwRUJcMDAwXHUzMEFEXHUzMEVEXHUzMEVGXHUzMEMzXHUzMEM4XDAwMFx1MzBBRlx1MzA5OSIrCisgICAgICAgICJcdTMwRTlcdTMwRTBcdTMwQzhcdTMwRjNcMDAwXHUzMEFGXHUzMEVCXHUzMEJCXHUzMDk5XHUzMEE0XHUzMEVEXDAwMFx1MzBBRiIrCisgICAgICAgICJcdTMwRURcdTMwRkNcdTMwQ0RcMDAwXHUzMEIxXHUzMEZDXHUzMEI5XHUzMEIzXHUzMEVCXHUzMENBXHUzMEIzXHUzMEZDIisKKyAgICAgICAgIlx1MzBEQlx1MzA5QVwwMDBcdTMwQjVcdTMwQTRcdTMwQUZcdTMwRUJcMDAwXHUzMEI1XHUzMEYzXHUzMEMxXHUzMEZDXHUzMEUwIisKKyAgICAgICAgIlwwMDBcdTMwQjdcdTMwRUFcdTMwRjNcdTMwQUZcdTMwOTlcMDAwXHUzMEJCXHUzMEYzXHUzMEMxXHUzMEJCXHUzMEYzXHUzMEM4IisKKyAgICAgICAgIlx1MzBCRlx1MzA5OVx1MzBGQ1x1MzBCOVwwMDBcdTMwQzZcdTMwOTlcdTMwQjdcdTMwQzhcdTMwOTlcdTMwRUJcdTMwQ0EiKworICAgICAgICAiXHUzMENFXHUzMENFXHUzMEMzXHUzMEM4XHUzMENGXHUzMEE0XHUzMEM0XHUzMENGXHUzMDlBXHUzMEZDXHUzMEJCXHUzMEYzIisKKyAgICAgICAgIlx1MzBDOFwwMDBcdTMwQ0ZcdTMwOUFcdTMwRkNcdTMwQzRcMDAwXHUzMENGXHUzMDk5XHUzMEZDXHUzMEVDXHUzMEVCXDAwMCIrCisgICAgICAgICJcdTMwRDJcdTMwOUFcdTMwQTJcdTMwQjlcdTMwQzhcdTMwRUJcMDAwXHUzMEQyXHUzMDlBXHUzMEFGXHUzMEVCXDAwMFx1MzBEMiIrCisgICAgICAgICJcdTMwOUFcdTMwQjNcdTMwRDJcdTMwOTlcdTMwRUJcdTMwRDVcdTMwQTFcdTMwRTlcdTMwQzNcdTMwQzhcdTMwOTlcMDAwIisKKyAgICAgICAgIlx1MzBENVx1MzBBM1x1MzBGQ1x1MzBDOFwwMDBcdTMwRDVcdTMwOTlcdTMwQzNcdTMwQjdcdTMwQTdcdTMwRUJcMDAwXHUzMEQ1IisKKyAgICAgICAgIlx1MzBFOVx1MzBGM1x1MzBEOFx1MzBBRlx1MzBCRlx1MzBGQ1x1MzBFQlwwMDBcdTMwRDhcdTMwOUFcdTMwQkRcdTMwRDgiKworICAgICAgICAiXHUzMDlBXHUzMENCXHUzMEQyXDAwMFx1MzBEOFx1MzBFQlx1MzBDNFx1MzBEOFx1MzA5QVx1MzBGM1x1MzBCOVwwMDBcdTMwRDgiKworICAgICAgICAiXHUzMDlBXHUzMEZDXHUzMEI3XHUzMDk5XDAwMFx1MzBEOFx1MzA5OVx1MzBGQ1x1MzBCRlwwMDBcdTMwREJcdTMwOUFcdTMwQTQiKworICAgICAgICAiXHUzMEYzXHUzMEM4XDAwMFx1MzBEQlx1MzA5OVx1MzBFQlx1MzBDOFwwMDBcdTMwREJcdTMwRjNcdTMwREJcdTMwOUFcdTMwRjMiKworICAgICAgICAiXHUzMEM4XHUzMDk5XDAwMFx1MzBEQlx1MzBGQ1x1MzBFQlx1MzBEQlx1MzBGQ1x1MzBGM1x1MzBERVx1MzBBNFx1MzBBRiIrCisgICAgICAgICJcdTMwRURcMDAwXHUzMERFXHUzMEE0XHUzMEVCXHUzMERFXHUzMEMzXHUzMENGXHUzMERFXHUzMEVCXHUzMEFGXHUzMERFIisKKyAgICAgICAgIlx1MzBGM1x1MzBCN1x1MzBFN1x1MzBGM1wwMDBcdTMwREZcdTMwQUZcdTMwRURcdTMwRjNcMDAwXHUzMERGXHUzMEVBXHUzMERGIisKKyAgICAgICAgIlx1MzBFQVx1MzBDRlx1MzA5OVx1MzBGQ1x1MzBFQlwwMDBcdTMwRTFcdTMwQUJcdTMwOTlcdTMwRTFcdTMwQUJcdTMwOTkiKworICAgICAgICAiXHUzMEM4XHUzMEYzXDAwMFx1MzBFNFx1MzBGQ1x1MzBDOFx1MzA5OVwwMDBcdTMwRTRcdTMwRkNcdTMwRUJcdTMwRTZcdTMwQTIiKworICAgICAgICAiXHUzMEYzXHUzMEVBXHUzMEMzXHUzMEM4XHUzMEVCXDAwMFx1MzBFQVx1MzBFOVx1MzBFQlx1MzBEMlx1MzA5QVx1MzBGQyIrCisgICAgICAgICJcMDAwXHUzMEVCXHUzMEZDXHUzMEQ1XHUzMDk5XHUzMEVCXDAwMFx1MzBFQ1x1MzBFMFx1MzBFQ1x1MzBGM1x1MzBDOFx1MzBCMSIrCisgICAgICAgICJcdTMwOTlcdTMwRjNcMDAwMFx1NzBCOTFcdTcwQjkyXHU3MEI5M1x1NzBCOTRcdTcwQjk1XHU3MEI5Nlx1NzBCOTdcdTcwQjkiKworICAgICAgICAiOFx1NzBCOTlcdTcwQjkxMFx1NzBCOTExXHU3MEI5MTJcdTcwQjkxM1x1NzBCOTE0XHU3MEI5MTVcdTcwQjkxNlx1NzBCOSIrCisgICAgICAgICIxN1x1NzBCOTE4XHU3MEI5MTlcdTcwQjkyMFx1NzBCOTIxXHU3MEI5MjJcdTcwQjkyM1x1NzBCOTI0XHU3MEI5aFBhZGEiKworICAgICAgICAiQVViYXJvVnBjXHU1RTczXHU2MjEwXHU2NjJEXHU1NDhDXHU1OTI3XHU2QjYzXHU2NjBFXHU2Q0JCXHU2ODJBXHU1RjBGIisKKyAgICAgICAgIlx1NEYxQVx1NzkzRVwwMDBwQW5BXHUwM0JDQW1Ba0FLQkdCY2Fsa2NhbFwwMDBwRm5GXHUwM0JDRlx1MDNCQ2dtZ2tnSCIrCisgICAgICAgICJ6a0h6TUh6R0h6VEh6XHUwM0JDbG1sZGxrbGZtbm1cdTAzQkNtbW1jbWttbW0yY20ya20ybW0zY20za20zbVx1MjIxNXMiKworICAgICAgICAibVx1MjIxNXMyXDAwMGtQYU1QYUdQYXJhZHJhZFx1MjIxNXNcMDAwcmFkXHUyMjE1czJcMDAwcHNcdTAzQkNzbXNwVm5WIisKKyAgICAgICAgIlx1MDNCQ1ZtVmtWTVZwV25XXHUwM0JDV21Xa1dNV2tcdTAzQTlNXHUwM0E5YS5tLlwwMDBCcWNjY2RDXHUyMjE1a2dcMDAwIisKKyAgICAgICAgIkNvLmRCR3loYUhQaW5LS0tNa3RsbmxvZ2x4bWJtaWxtb2xQSHAubS5cMDAwUFBNUFJzclN2V2IxXHU2NUU1Mlx1NjVFNSIrCisgICAgICAgICIzXHU2NUU1NFx1NjVFNTVcdTY1RTU2XHU2NUU1N1x1NjVFNThcdTY1RTU5XHU2NUU1MTBcdTY1RTUxMVx1NjVFNTEyXHU2NUU1IisKKyAgICAgICAgIjEzXHU2NUU1MTRcdTY1RTUxNVx1NjVFNTE2XHU2NUU1MTdcdTY1RTUxOFx1NjVFNTE5XHU2NUU1MjBcdTY1RTUyMVx1NjVFNSIrCisgICAgICAgICIyMlx1NjVFNTIzXHU2NUU1MjRcdTY1RTUyNVx1NjVFNTI2XHU2NUU1MjdcdTY1RTUyOFx1NjVFNTI5XHU2NUU1MzBcdTY1RTUiKworICAgICAgICAiMzFcdTY1RTVmZmZpZmxmZmxzdFx1MDU3NFx1MDU3Nlx1MDU3NFx1MDU2NVx1MDU3NFx1MDU2Qlx1MDU3RVx1MDU3Nlx1MDU3NCIrCisgICAgICAgICJcdTA1NkRcdTA1RTJcdTA1RDRcdTA1REJcdTA1RENcdTA1RERcdTA1RThcdTA1RUFcdTA1RDBcdTA1RENcdTA2NzFcdTA2N0IiKworICAgICAgICAiXHUwNjdFXHUwNjgwXHUwNjdBXHUwNjdGXHUwNjc5XHUwNkE0XHUwNkE2XHUwNjg0XHUwNjgzXHUwNjg2XHUwNjg3XHUwNjhEIisKKyAgICAgICAgIlx1MDY4Q1x1MDY4RVx1MDY4OFx1MDY5OFx1MDY5MVx1MDZBOVx1MDZBRlx1MDZCM1x1MDZCMVx1MDZCQVx1MDZCQlx1MDZENSIrCisgICAgICAgICJcdTA2NTRcdTA2QzFcdTA2QkVcdTA2RDJcdTA2RDJcdTA2NTRcdTA2QURcdTA2QzZcdTA2QzhcdTA2Q0JcdTA2QzVcdTA2QzkiKworICAgICAgICAiXHUwNkQwXHUwNjQ5XHUwNjRBXHUwNjU0XHUwNjI3XHUwNjRBXHUwNjU0XHUwNkQ1XHUwNjRBXHUwNjU0XHUwNjQ4XHUwNjRBIisKKyAgICAgICAgIlx1MDY1NFx1MDZDN1x1MDY0QVx1MDY1NFx1MDZDNlx1MDY0QVx1MDY1NFx1MDZDOFx1MDY0QVx1MDY1NFx1MDZEMFx1MDY0QSIrCisgICAgICAgICJcdTA2NTRcdTA2NDlcdTA2Q0NcdTA2NEFcdTA2NTRcdTA2MkNcdTA2NEFcdTA2NTRcdTA2MkRcdTA2NEFcdTA2NTRcdTA2NDUiKworICAgICAgICAiXHUwNjRBXHUwNjU0XHUwNjRBXHUwNjI4XHUwNjJDXHUwNjI4XHUwNjJEXHUwNjI4XHUwNjJFXHUwNjI4XHUwNjQ1XHUwNjI4IisKKyAgICAgICAgIlx1MDY0OVx1MDYyOFx1MDY0QVx1MDYyQVx1MDYyQ1x1MDYyQVx1MDYyRFx1MDYyQVx1MDYyRVx1MDYyQVx1MDY0NVx1MDYyQSIrCisgICAgICAgICJcdTA2NDlcdTA2MkFcdTA2NEFcdTA2MkJcdTA2MkNcdTA2MkJcdTA2NDVcdTA2MkJcdTA2NDlcdTA2MkJcdTA2NEFcdTA2MkMiKworICAgICAgICAiXHUwNjJEXHUwNjJDXHUwNjQ1XHUwNjJEXHUwNjQ1XHUwNjJFXHUwNjJDXHUwNjJFXHUwNjJEXHUwNjJFXHUwNjQ1XHUwNjMzIisKKyAgICAgICAgIlx1MDYyQ1x1MDYzM1x1MDYyRFx1MDYzM1x1MDYyRVx1MDYzM1x1MDY0NVx1MDYzNVx1MDYyRFx1MDYzNVx1MDY0NVx1MDYzNiIrCisgICAgICAgICJcdTA2MkNcdTA2MzZcdTA2MkRcdTA2MzZcdTA2MkVcdTA2MzZcdTA2NDVcdTA2MzdcdTA2MkRcdTA2MzdcdTA2NDVcdTA2MzgiKworICAgICAgICAiXHUwNjQ1XHUwNjM5XHUwNjJDXHUwNjM5XHUwNjQ1XHUwNjNBXHUwNjJDXHUwNjNBXHUwNjQ1XHUwNjQxXHUwNjJDXHUwNjQxIisKKyAgICAgICAgIlx1MDYyRFx1MDY0MVx1MDYyRVx1MDY0MVx1MDY0NVx1MDY0MVx1MDY0OVx1MDY0MVx1MDY0QVx1MDY0Mlx1MDYyRFx1MDY0MiIrCisgICAgICAgICJcdTA2NDVcdTA2NDJcdTA2NDlcdTA2NDJcdTA2NEFcdTA2NDNcdTA2MjdcdTA2NDNcdTA2MkNcdTA2NDNcdTA2MkRcdTA2NDMiKworICAgICAgICAiXHUwNjJFXHUwNjQzXHUwNjQ0XHUwNjQzXHUwNjQ1XHUwNjQzXHUwNjQ5XHUwNjQzXHUwNjRBXHUwNjQ0XHUwNjJDXHUwNjQ0IisKKyAgICAgICAgIlx1MDYyRFx1MDY0NFx1MDYyRVx1MDY0NFx1MDY0NVx1MDY0NFx1MDY0OVx1MDY0NFx1MDY0QVx1MDY0NVx1MDYyQ1x1MDY0NSIrCisgICAgICAgICJcdTA2NDVcdTA2NDVcdTA2NDlcdTA2NDZcdTA2MkNcdTA2NDZcdTA2MkRcdTA2NDZcdTA2MkVcdTA2NDZcdTA2NDVcdTA2NDYiKworICAgICAgICAiXHUwNjQ5XHUwNjQ2XHUwNjRBXHUwNjQ3XHUwNjJDXHUwNjQ3XHUwNjQ1XHUwNjQ3XHUwNjQ5XHUwNjQ3XHUwNjRBXHUwNjRBIisKKyAgICAgICAgIlx1MDYyRFx1MDY0QVx1MDYyRVx1MDY0QVx1MDY0OVx1MDYzMFx1MDY3MFx1MDYzMVx1MDY3MFx1MDY0OVx1MDY3MCBcdTA2NEMiKworICAgICAgICAiXHUwNjUxIFx1MDY0RFx1MDY1MSBcdTA2NEVcdTA2NTEgXHUwNjRGXHUwNjUxIFx1MDY1MFx1MDY1MSBcdTA2NTFcdTA2NzAiKworICAgICAgICAiXHUwNjRBXHUwNjU0XHUwNjMxXHUwNjRBXHUwNjU0XHUwNjMyXHUwNjRBXHUwNjU0XHUwNjQ2XHUwNjI4XHUwNjMxXHUwNjI4IisKKyAgICAgICAgIlx1MDYzMlx1MDYyOFx1MDY0Nlx1MDYyQVx1MDYzMVx1MDYyQVx1MDYzMlx1MDYyQVx1MDY0Nlx1MDYyQlx1MDYzMVx1MDYyQiIrCisgICAgICAgICJcdTA2MzJcdTA2MkJcdTA2NDZcdTA2NDVcdTA2MjdcdTA2NDZcdTA2MzFcdTA2NDZcdTA2MzJcdTA2NDZcdTA2NDZcdTA2NEEiKworICAgICAgICAiXHUwNjMxXHUwNjRBXHUwNjMyXHUwNjRBXHUwNjQ2XHUwNjRBXHUwNjU0XHUwNjJFXHUwNjRBXHUwNjU0XHUwNjQ3XHUwNjI4IisKKyAgICAgICAgIlx1MDY0N1x1MDYyQVx1MDY0N1x1MDYzNVx1MDYyRVx1MDY0NFx1MDY0N1x1MDY0Nlx1MDY0N1x1MDY0N1x1MDY3MFx1MDYyQiIrCisgICAgICAgICJcdTA2NDdcdTA2MzNcdTA2NDdcdTA2MzRcdTA2NDVcdTA2MzRcdTA2NDdcdTA2NDBcdTA2NEVcdTA2NTFcdTA2NDBcdTA2NEYiKworICAgICAgICAiXHUwNjUxXHUwNjQwXHUwNjUwXHUwNjUxXHUwNjM3XHUwNjQ5XHUwNjM3XHUwNjRBXHUwNjM5XHUwNjQ5XHUwNjM5XHUwNjRBIisKKyAgICAgICAgIlx1MDYzQVx1MDY0OVx1MDYzQVx1MDY0QVx1MDYzM1x1MDY0OVx1MDYzM1x1MDY0QVx1MDYzNFx1MDY0OVx1MDYzNFx1MDY0QSIrCisgICAgICAgICJcdTA2MkRcdTA2NDlcdTA2MkNcdTA2NDlcdTA2MkVcdTA2NDlcdTA2MzVcdTA2NDlcdTA2MzVcdTA2NEFcdTA2MzZcdTA2NDkiKworICAgICAgICAiXHUwNjM2XHUwNjRBXHUwNjM0XHUwNjJDXHUwNjM0XHUwNjJEXHUwNjM0XHUwNjJFXHUwNjM0XHUwNjMxXHUwNjMzXHUwNjMxIisKKyAgICAgICAgIlx1MDYzNVx1MDYzMVx1MDYzNlx1MDYzMVx1MDYyN1x1MDY0Qlx1MDYyQVx1MDYyQ1x1MDY0NVx1MDYyQVx1MDYyRFx1MDYyQyIrCisgICAgICAgICJcdTA2MkFcdTA2MkRcdTA2NDVcdTA2MkFcdTA2MkVcdTA2NDVcdTA2MkFcdTA2NDVcdTA2MkNcdTA2MkFcdTA2NDVcdTA2MkQiKworICAgICAgICAiXHUwNjJBXHUwNjQ1XHUwNjJFXHUwNjJEXHUwNjQ1XHUwNjRBXHUwNjJEXHUwNjQ1XHUwNjQ5XHUwNjMzXHUwNjJEXHUwNjJDIisKKyAgICAgICAgIlx1MDYzM1x1MDYyQ1x1MDYyRFx1MDYzM1x1MDYyQ1x1MDY0OVx1MDYzM1x1MDY0NVx1MDYyRFx1MDYzM1x1MDY0NVx1MDYyQyIrCisgICAgICAgICJcdTA2MzNcdTA2NDVcdTA2NDVcdTA2MzVcdTA2MkRcdTA2MkRcdTA2MzVcdTA2NDVcdTA2NDVcdTA2MzRcdTA2MkRcdTA2NDUiKworICAgICAgICAiXHUwNjM0XHUwNjJDXHUwNjRBXHUwNjM0XHUwNjQ1XHUwNjJFXHUwNjM0XHUwNjQ1XHUwNjQ1XHUwNjM2XHUwNjJEXHUwNjQ5IisKKyAgICAgICAgIlx1MDYzNlx1MDYyRVx1MDY0NVx1MDYzN1x1MDY0NVx1MDYyRFx1MDYzN1x1MDY0NVx1MDY0NVx1MDYzN1x1MDY0NVx1MDY0QSIrCisgICAgICAgICJcdTA2MzlcdTA2MkNcdTA2NDVcdTA2MzlcdTA2NDVcdTA2NDVcdTA2MzlcdTA2NDVcdTA2NDlcdTA2M0FcdTA2NDVcdTA2NDUiKworICAgICAgICAiXHUwNjNBXHUwNjQ1XHUwNjRBXHUwNjNBXHUwNjQ1XHUwNjQ5XHUwNjQxXHUwNjJFXHUwNjQ1XHUwNjQyXHUwNjQ1XHUwNjJEIisKKyAgICAgICAgIlx1MDY0Mlx1MDY0NVx1MDY0NVx1MDY0NFx1MDYyRFx1MDY0NVx1MDY0NFx1MDYyRFx1MDY0QVx1MDY0NFx1MDYyRFx1MDY0OSIrCisgICAgICAgICJcdTA2NDRcdTA2MkNcdTA2MkNcdTA2NDRcdTA2MkVcdTA2NDVcdTA2NDRcdTA2NDVcdTA2MkRcdTA2NDVcdTA2MkRcdTA2MkMiKworICAgICAgICAiXHUwNjQ1XHUwNjJEXHUwNjRBXHUwNjQ1XHUwNjJDXHUwNjJEXHUwNjQ1XHUwNjJFXHUwNjQ1XHUwNjQ1XHUwNjJDXHUwNjJFIisKKyAgICAgICAgIlx1MDY0N1x1MDY0NVx1MDYyQ1x1MDY0N1x1MDY0NVx1MDY0NVx1MDY0Nlx1MDYyRFx1MDY0NVx1MDY0Nlx1MDYyRFx1MDY0OSIrCisgICAgICAgICJcdTA2NDZcdTA2MkNcdTA2NDVcdTA2NDZcdTA2MkNcdTA2NDlcdTA2NDZcdTA2NDVcdTA2NEFcdTA2NDZcdTA2NDVcdTA2NDkiKworICAgICAgICAiXHUwNjRBXHUwNjQ1XHUwNjQ1XHUwNjI4XHUwNjJFXHUwNjRBXHUwNjJBXHUwNjJDXHUwNjRBXHUwNjJBXHUwNjJDXHUwNjQ5IisKKyAgICAgICAgIlx1MDYyQVx1MDYyRVx1MDY0QVx1MDYyQVx1MDYyRVx1MDY0OVx1MDYyQVx1MDY0NVx1MDY0QVx1MDYyQVx1MDY0NVx1MDY0OSIrCisgICAgICAgICJcdTA2MkNcdTA2NDVcdTA2NEFcdTA2MkNcdTA2MkRcdTA2NDlcdTA2MkNcdTA2NDVcdTA2NDlcdTA2MzNcdTA2MkVcdTA2NDkiKworICAgICAgICAiXHUwNjM1XHUwNjJEXHUwNjRBXHUwNjM0XHUwNjJEXHUwNjRBXHUwNjM2XHUwNjJEXHUwNjRBXHUwNjQ0XHUwNjJDXHUwNjRBIisKKyAgICAgICAgIlx1MDY0NFx1MDY0NVx1MDY0QVx1MDY0QVx1MDYyQ1x1MDY0QVx1MDY0QVx1MDY0NVx1MDY0QVx1MDY0NVx1MDY0NVx1MDY0QSIrCisgICAgICAgICJcdTA2NDJcdTA2NDVcdTA2NEFcdTA2NDZcdTA2MkRcdTA2NEFcdTA2MzlcdTA2NDVcdTA2NEFcdTA2NDNcdTA2NDVcdTA2NEEiKworICAgICAgICAiXHUwNjQ2XHUwNjJDXHUwNjJEXHUwNjQ1XHUwNjJFXHUwNjRBXHUwNjQ0XHUwNjJDXHUwNjQ1XHUwNjQzXHUwNjQ1XHUwNjQ1IisKKyAgICAgICAgIlx1MDYyQ1x1MDYyRFx1MDY0QVx1MDYyRFx1MDYyQ1x1MDY0QVx1MDY0NVx1MDYyQ1x1MDY0QVx1MDY0MVx1MDY0NVx1MDY0QSIrCisgICAgICAgICJcdTA2MjhcdTA2MkRcdTA2NEFcdTA2MzNcdTA2MkVcdTA2NEFcdTA2NDZcdTA2MkNcdTA2NEFcdTA2MzVcdTA2NDRcdTA2RDIiKworICAgICAgICAiXHUwNjQyXHUwNjQ0XHUwNkQyXHUwNjI3XHUwNjQ0XHUwNjQ0XHUwNjQ3XDAwMFx1MDYyN1x1MDY0M1x1MDYyOFx1MDYzMSIrCisgICAgICAgICJcMDAwXHUwNjQ1XHUwNjJEXHUwNjQ1XHUwNjJGXDAwMFx1MDYzNVx1MDY0NFx1MDYzOVx1MDY0NVwwMDBcdTA2MzFcdTA2MzMiKworICAgICAgICAiXHUwNjQ4XHUwNjQ0XDAwMFx1MDYzOVx1MDY0NFx1MDY0QVx1MDY0N1wwMDBcdTA2NDhcdTA2MzNcdTA2NDRcdTA2NDVcMDAwIisKKyAgICAgICAgIlx1MDYzNVx1MDY0NFx1MDY0OVx1MDYzNVx1MDY0NFx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2NDRcdTA2NDcgXHUwNjM5XHUwNjQ0IisKKyAgICAgICAgIlx1MDY0QVx1MDY0NyBcdTA2NDhcdTA2MzNcdTA2NDRcdTA2NDVcMDAwXHUwNjJDXHUwNjQ0IFx1MDYyQ1x1MDY0NFx1MDYyNyIrCisgICAgICAgICJcdTA2NDRcdTA2NDdcMDAwXHUyMDE0XHUyMDEzX3t9XHUzMDE0XHUzMDE1XHUzMDEwXHUzMDExXHUzMDBBXHUzMDBCXHUzMDA4IisKKyAgICAgICAgIlx1MzAwOVx1MzAwQ1x1MzAwRFx1MzAwRVx1MzAwRixcdTMwMDE7OiMmKi08PlwxMzQkJUAgXHUwNjRCXHUwNjQwXHUwNjRCIisKKyAgICAgICAgIlx1MDY0MFx1MDY1MSBcdTA2NTJcdTA2NDBcdTA2NTJcdTA2MjFcdTA2MjdcdTA2NTNcdTA2MjdcdTA2NTRcdTA2NDhcdTA2NTQiKworICAgICAgICAiXHUwNjI3XHUwNjU1XHUwNjI5XHUwNjQ0XHUwNjI3XHUwNjUzXHUwNjQ0XHUwNjI3XHUwNjU0XHUwNjQ0XHUwNjI3XHUwNjU1IisKKyAgICAgICAgIlwwNDInW11eYHx+XHUzMDAyXHUzMEZCXHUzMEE1XHUzMEUzXHUwMEEyXHUwMEEzXHUwMEFDXHUwMEE2XHUwMEE1XHUyMEE5IisKKyAgICAgICAgIlx1MjUwMlx1MjE5MFx1MjE5MVx1MjE5Mlx1MjE5M1x1MjVBMFx1MjVDQkFcdTAzMDBBXHUwMzAxQVx1MDMwMkFcdTAzMDMiKworICAgICAgICAiQVx1MDMwOEFcdTAzMEFDXHUwMzI3RVx1MDMwMEVcdTAzMDFFXHUwMzAyRVx1MDMwOElcdTAzMDBJXHUwMzAxSVx1MDMwMiIrCisgICAgICAgICJJXHUwMzA4Tlx1MDMwM09cdTAzMDBPXHUwMzAxT1x1MDMwMk9cdTAzMDNPXHUwMzA4VVx1MDMwMFVcdTAzMDFVXHUwMzAyIisKKyAgICAgICAgIlVcdTAzMDhZXHUwMzAxYVx1MDMwMGFcdTAzMDFhXHUwMzAyYVx1MDMwM2FcdTAzMDhhXHUwMzBBY1x1MDMyN2VcdTAzMDAiKworICAgICAgICAiZVx1MDMwMWVcdTAzMDJlXHUwMzA4aVx1MDMwMGlcdTAzMDFpXHUwMzAyaVx1MDMwOG5cdTAzMDNvXHUwMzAwb1x1MDMwMSIrCisgICAgICAgICJvXHUwMzAyb1x1MDMwM29cdTAzMDh1XHUwMzAwdVx1MDMwMXVcdTAzMDJ1XHUwMzA4eVx1MDMwMXlcdTAzMDhBXHUwMzA0IisKKyAgICAgICAgImFcdTAzMDRBXHUwMzA2YVx1MDMwNkFcdTAzMjhhXHUwMzI4Q1x1MDMwMWNcdTAzMDFDXHUwMzAyY1x1MDMwMkNcdTAzMDciKworICAgICAgICAiY1x1MDMwN0NcdTAzMENjXHUwMzBDRFx1MDMwQ2RcdTAzMENFXHUwMzA0ZVx1MDMwNEVcdTAzMDZlXHUwMzA2RVx1MDMwNyIrCisgICAgICAgICJlXHUwMzA3RVx1MDMyOGVcdTAzMjhFXHUwMzBDZVx1MDMwQ0dcdTAzMDJnXHUwMzAyR1x1MDMwNmdcdTAzMDZHXHUwMzA3IisKKyAgICAgICAgImdcdTAzMDdHXHUwMzI3Z1x1MDMyN0hcdTAzMDJoXHUwMzAySVx1MDMwM2lcdTAzMDNJXHUwMzA0aVx1MDMwNElcdTAzMDYiKworICAgICAgICAiaVx1MDMwNklcdTAzMjhpXHUwMzI4SVx1MDMwN0pcdTAzMDJqXHUwMzAyS1x1MDMyN2tcdTAzMjdMXHUwMzAxbFx1MDMwMSIrCisgICAgICAgICJMXHUwMzI3bFx1MDMyN0xcdTAzMENsXHUwMzBDTlx1MDMwMW5cdTAzMDFOXHUwMzI3blx1MDMyN05cdTAzMENuXHUwMzBDIisKKyAgICAgICAgIk9cdTAzMDRvXHUwMzA0T1x1MDMwNm9cdTAzMDZPXHUwMzBCb1x1MDMwQlJcdTAzMDFyXHUwMzAxUlx1MDMyN3JcdTAzMjciKworICAgICAgICAiUlx1MDMwQ3JcdTAzMENTXHUwMzAxc1x1MDMwMVNcdTAzMDJzXHUwMzAyU1x1MDMyN3NcdTAzMjdTXHUwMzBDc1x1MDMwQyIrCisgICAgICAgICJUXHUwMzI3dFx1MDMyN1RcdTAzMEN0XHUwMzBDVVx1MDMwM3VcdTAzMDNVXHUwMzA0dVx1MDMwNFVcdTAzMDZ1XHUwMzA2IisKKyAgICAgICAgIlVcdTAzMEF1XHUwMzBBVVx1MDMwQnVcdTAzMEJVXHUwMzI4dVx1MDMyOFdcdTAzMDJ3XHUwMzAyWVx1MDMwMnlcdTAzMDIiKworICAgICAgICAiWVx1MDMwOFpcdTAzMDF6XHUwMzAxWlx1MDMwN3pcdTAzMDdaXHUwMzBDelx1MDMwQ09cdTAzMUJvXHUwMzFCVVx1MDMxQiIrCisgICAgICAgICJ1XHUwMzFCQVx1MDMwQ2FcdTAzMENJXHUwMzBDaVx1MDMwQ09cdTAzMENvXHUwMzBDVVx1MDMwQ3VcdTAzMENVXHUwMzA4IisKKyAgICAgICAgIlx1MDMwNHVcdTAzMDhcdTAzMDRVXHUwMzA4XHUwMzAxdVx1MDMwOFx1MDMwMVVcdTAzMDhcdTAzMEN1XHUwMzA4XHUwMzBDIisKKyAgICAgICAgIlVcdTAzMDhcdTAzMDB1XHUwMzA4XHUwMzAwQVx1MDMwOFx1MDMwNGFcdTAzMDhcdTAzMDRBXHUwMzA3XHUwMzA0YVx1MDMwNyIrCisgICAgICAgICJcdTAzMDRcdTAwQzZcdTAzMDRcdTAwRTZcdTAzMDRHXHUwMzBDZ1x1MDMwQ0tcdTAzMENrXHUwMzBDT1x1MDMyOG9cdTAzMjgiKworICAgICAgICAiT1x1MDMyOFx1MDMwNG9cdTAzMjhcdTAzMDRcdTAxQjdcdTAzMENcdTAyOTJcdTAzMENqXHUwMzBDR1x1MDMwMWdcdTAzMDEiKworICAgICAgICAiTlx1MDMwMG5cdTAzMDBBXHUwMzBBXHUwMzAxYVx1MDMwQVx1MDMwMVx1MDBDNlx1MDMwMVx1MDBFNlx1MDMwMVx1MDBEOCIrCisgICAgICAgICJcdTAzMDFcdTAwRjhcdTAzMDFBXHUwMzBGYVx1MDMwRkFcdTAzMTFhXHUwMzExRVx1MDMwRmVcdTAzMEZFXHUwMzExZVx1MDMxMSIrCisgICAgICAgICJJXHUwMzBGaVx1MDMwRklcdTAzMTFpXHUwMzExT1x1MDMwRm9cdTAzMEZPXHUwMzExb1x1MDMxMVJcdTAzMEZyXHUwMzBGIisKKyAgICAgICAgIlJcdTAzMTFyXHUwMzExVVx1MDMwRnVcdTAzMEZVXHUwMzExdVx1MDMxMVNcdTAzMjZzXHUwMzI2VFx1MDMyNnRcdTAzMjYiKworICAgICAgICAiSFx1MDMwQ2hcdTAzMENBXHUwMzA3YVx1MDMwN0VcdTAzMjdlXHUwMzI3T1x1MDMwOFx1MDMwNG9cdTAzMDhcdTAzMDRPIisKKyAgICAgICAgIlx1MDMwM1x1MDMwNG9cdTAzMDNcdTAzMDRPXHUwMzA3b1x1MDMwN09cdTAzMDdcdTAzMDRvXHUwMzA3XHUwMzA0WVx1MDMwNCIrCisgICAgICAgICJ5XHUwMzA0XHUwMzAwXHUwMzAxXHUwMzEzXHUwMzA4XHUwMzAxXHUwMkI5O1x1MDBBOFx1MDMwMVx1MDM5MVx1MDMwMVx1MDBCNyIrCisgICAgICAgICJcdTAzOTVcdTAzMDFcdTAzOTdcdTAzMDFcdTAzOTlcdTAzMDFcdTAzOUZcdTAzMDFcdTAzQTVcdTAzMDFcdTAzQTlcdTAzMDEiKworICAgICAgICAiXHUwM0I5XHUwMzA4XHUwMzAxXHUwMzk5XHUwMzA4XHUwM0E1XHUwMzA4XHUwM0IxXHUwMzAxXHUwM0I1XHUwMzAxXHUwM0I3IisKKyAgICAgICAgIlx1MDMwMVx1MDNCOVx1MDMwMVx1MDNDNVx1MDMwOFx1MDMwMVx1MDNCOVx1MDMwOFx1MDNDNVx1MDMwOFx1MDNCRlx1MDMwMSIrCisgICAgICAgICJcdTAzQzVcdTAzMDFcdTAzQzlcdTAzMDFcdTAzRDJcdTAzMDFcdTAzRDJcdTAzMDhcdTA0MTVcdTAzMDBcdTA0MTVcdTAzMDgiKworICAgICAgICAiXHUwNDEzXHUwMzAxXHUwNDA2XHUwMzA4XHUwNDFBXHUwMzAxXHUwNDE4XHUwMzAwXHUwNDIzXHUwMzA2XHUwNDE4XHUwMzA2IisKKyAgICAgICAgIlx1MDQzOFx1MDMwNlx1MDQzNVx1MDMwMFx1MDQzNVx1MDMwOFx1MDQzM1x1MDMwMVx1MDQ1Nlx1MDMwOFx1MDQzQVx1MDMwMSIrCisgICAgICAgICJcdTA0MzhcdTAzMDBcdTA0NDNcdTAzMDZcdTA0NzRcdTAzMEZcdTA0NzVcdTAzMEZcdTA0MTZcdTAzMDZcdTA0MzZcdTAzMDYiKworICAgICAgICAiXHUwNDEwXHUwMzA2XHUwNDMwXHUwMzA2XHUwNDEwXHUwMzA4XHUwNDMwXHUwMzA4XHUwNDE1XHUwMzA2XHUwNDM1XHUwMzA2IisKKyAgICAgICAgIlx1MDREOFx1MDMwOFx1MDREOVx1MDMwOFx1MDQxNlx1MDMwOFx1MDQzNlx1MDMwOFx1MDQxN1x1MDMwOFx1MDQzN1x1MDMwOCIrCisgICAgICAgICJcdTA0MThcdTAzMDRcdTA0MzhcdTAzMDRcdTA0MThcdTAzMDhcdTA0MzhcdTAzMDhcdTA0MUVcdTAzMDhcdTA0M0VcdTAzMDgiKworICAgICAgICAiXHUwNEU4XHUwMzA4XHUwNEU5XHUwMzA4XHUwNDJEXHUwMzA4XHUwNDREXHUwMzA4XHUwNDIzXHUwMzA0XHUwNDQzXHUwMzA0IisKKyAgICAgICAgIlx1MDQyM1x1MDMwOFx1MDQ0M1x1MDMwOFx1MDQyM1x1MDMwQlx1MDQ0M1x1MDMwQlx1MDQyN1x1MDMwOFx1MDQ0N1x1MDMwOCIrCisgICAgICAgICJcdTA0MkJcdTAzMDhcdTA0NEJcdTAzMDhcdTA2MjdcdTA2NTNcdTA2MjdcdTA2NTRcdTA2NDhcdTA2NTRcdTA2MjdcdTA2NTUiKworICAgICAgICAiXHUwNjRBXHUwNjU0XHUwNkQ1XHUwNjU0XHUwNkMxXHUwNjU0XHUwNkQyXHUwNjU0XHUwOTI4XHUwOTNDXHUwOTMwXHUwOTNDIisKKyAgICAgICAgIlx1MDkzM1x1MDkzQ1x1MDkxNVx1MDkzQ1x1MDkxNlx1MDkzQ1x1MDkxN1x1MDkzQ1x1MDkxQ1x1MDkzQ1x1MDkyMVx1MDkzQyIrCisgICAgICAgICJcdTA5MjJcdTA5M0NcdTA5MkJcdTA5M0NcdTA5MkZcdTA5M0NcdTA5QzdcdTA5QkVcdTA5QzdcdTA5RDdcdTA5QTFcdTA5QkMiKworICAgICAgICAiXHUwOUEyXHUwOUJDXHUwOUFGXHUwOUJDXHUwQTMyXHUwQTNDXHUwQTM4XHUwQTNDXHUwQTE2XHUwQTNDXHUwQTE3XHUwQTNDIisKKyAgICAgICAgIlx1MEExQ1x1MEEzQ1x1MEEyQlx1MEEzQ1x1MEI0N1x1MEI1Nlx1MEI0N1x1MEIzRVx1MEI0N1x1MEI1N1x1MEIyMVx1MEIzQyIrCisgICAgICAgICJcdTBCMjJcdTBCM0NcdTBCOTJcdTBCRDdcdTBCQzZcdTBCQkVcdTBCQzdcdTBCQkVcdTBCQzZcdTBCRDdcdTBDNDZcdTBDNTYiKworICAgICAgICAiXHUwQ0JGXHUwQ0Q1XHUwQ0M2XHUwQ0Q1XHUwQ0M2XHUwQ0Q2XHUwQ0M2XHUwQ0MyXHUwQ0M2XHUwQ0MyXHUwQ0Q1XHUwRDQ2IisKKyAgICAgICAgIlx1MEQzRVx1MEQ0N1x1MEQzRVx1MEQ0Nlx1MEQ1N1x1MEREOVx1MERDQVx1MEREOVx1MERDRlx1MEREOVx1MERDRlx1MERDQSIrCisgICAgICAgICJcdTBERDlcdTBEREZcdTBGNDJcdTBGQjdcdTBGNENcdTBGQjdcdTBGNTFcdTBGQjdcdTBGNTZcdTBGQjdcdTBGNUJcdTBGQjciKworICAgICAgICAiXHUwRjQwXHUwRkI1XHUwRjcxXHUwRjcyXHUwRjcxXHUwRjc0XHUwRkIyXHUwRjgwXHUwRkIzXHUwRjgwXHUwRjcxXHUwRjgwIisKKyAgICAgICAgIlx1MEY5Mlx1MEZCN1x1MEY5Q1x1MEZCN1x1MEZBMVx1MEZCN1x1MEZBNlx1MEZCN1x1MEZBQlx1MEZCN1x1MEY5MFx1MEZCNSIrCisgICAgICAgICJcdTEwMjVcdTEwMkVBXHUwMzI1YVx1MDMyNUJcdTAzMDdiXHUwMzA3Qlx1MDMyM2JcdTAzMjNCXHUwMzMxYlx1MDMzMUMiKworICAgICAgICAiXHUwMzI3XHUwMzAxY1x1MDMyN1x1MDMwMURcdTAzMDdkXHUwMzA3RFx1MDMyM2RcdTAzMjNEXHUwMzMxZFx1MDMzMURcdTAzMjciKworICAgICAgICAiZFx1MDMyN0RcdTAzMkRkXHUwMzJERVx1MDMwNFx1MDMwMGVcdTAzMDRcdTAzMDBFXHUwMzA0XHUwMzAxZVx1MDMwNFx1MDMwMSIrCisgICAgICAgICJFXHUwMzJEZVx1MDMyREVcdTAzMzBlXHUwMzMwRVx1MDMyN1x1MDMwNmVcdTAzMjdcdTAzMDZGXHUwMzA3Zlx1MDMwN0ciKworICAgICAgICAiXHUwMzA0Z1x1MDMwNEhcdTAzMDdoXHUwMzA3SFx1MDMyM2hcdTAzMjNIXHUwMzA4aFx1MDMwOEhcdTAzMjdoXHUwMzI3IisKKyAgICAgICAgIkhcdTAzMkVoXHUwMzJFSVx1MDMzMGlcdTAzMzBJXHUwMzA4XHUwMzAxaVx1MDMwOFx1MDMwMUtcdTAzMDFrXHUwMzAxSyIrCisgICAgICAgICJcdTAzMjNrXHUwMzIzS1x1MDMzMWtcdTAzMzFMXHUwMzIzbFx1MDMyM0xcdTAzMjNcdTAzMDRsXHUwMzIzXHUwMzA0TFx1MDMzMSIrCisgICAgICAgICJsXHUwMzMxTFx1MDMyRGxcdTAzMkRNXHUwMzAxbVx1MDMwMU1cdTAzMDdtXHUwMzA3TVx1MDMyM21cdTAzMjNOXHUwMzA3IisKKyAgICAgICAgIm5cdTAzMDdOXHUwMzIzblx1MDMyM05cdTAzMzFuXHUwMzMxTlx1MDMyRG5cdTAzMkRPXHUwMzAzXHUwMzAxb1x1MDMwMyIrCisgICAgICAgICJcdTAzMDFPXHUwMzAzXHUwMzA4b1x1MDMwM1x1MDMwOE9cdTAzMDRcdTAzMDBvXHUwMzA0XHUwMzAwT1x1MDMwNFx1MDMwMSIrCisgICAgICAgICJvXHUwMzA0XHUwMzAxUFx1MDMwMXBcdTAzMDFQXHUwMzA3cFx1MDMwN1JcdTAzMDdyXHUwMzA3Ulx1MDMyM3JcdTAzMjMiKworICAgICAgICAiUlx1MDMyM1x1MDMwNHJcdTAzMjNcdTAzMDRSXHUwMzMxclx1MDMzMVNcdTAzMDdzXHUwMzA3U1x1MDMyM3NcdTAzMjNTIisKKyAgICAgICAgIlx1MDMwMVx1MDMwN3NcdTAzMDFcdTAzMDdTXHUwMzBDXHUwMzA3c1x1MDMwQ1x1MDMwN1NcdTAzMjNcdTAzMDdzXHUwMzIzIisKKyAgICAgICAgIlx1MDMwN1RcdTAzMDd0XHUwMzA3VFx1MDMyM3RcdTAzMjNUXHUwMzMxdFx1MDMzMVRcdTAzMkR0XHUwMzJEVVx1MDMyNCIrCisgICAgICAgICJ1XHUwMzI0VVx1MDMzMHVcdTAzMzBVXHUwMzJEdVx1MDMyRFVcdTAzMDNcdTAzMDF1XHUwMzAzXHUwMzAxVVx1MDMwNFx1MDMwOCIrCisgICAgICAgICJ1XHUwMzA0XHUwMzA4Vlx1MDMwM3ZcdTAzMDNWXHUwMzIzdlx1MDMyM1dcdTAzMDB3XHUwMzAwV1x1MDMwMXdcdTAzMDEiKworICAgICAgICAiV1x1MDMwOHdcdTAzMDhXXHUwMzA3d1x1MDMwN1dcdTAzMjN3XHUwMzIzWFx1MDMwN3hcdTAzMDdYXHUwMzA4eFx1MDMwOCIrCisgICAgICAgICJZXHUwMzA3eVx1MDMwN1pcdTAzMDJ6XHUwMzAyWlx1MDMyM3pcdTAzMjNaXHUwMzMxelx1MDMzMWhcdTAzMzF0XHUwMzA4IisKKyAgICAgICAgIndcdTAzMEF5XHUwMzBBXHUwMTdGXHUwMzA3QVx1MDMyM2FcdTAzMjNBXHUwMzA5YVx1MDMwOUFcdTAzMDJcdTAzMDFhXHUwMzAyIisKKyAgICAgICAgIlx1MDMwMUFcdTAzMDJcdTAzMDBhXHUwMzAyXHUwMzAwQVx1MDMwMlx1MDMwOWFcdTAzMDJcdTAzMDlBXHUwMzAyXHUwMzAzIisKKyAgICAgICAgImFcdTAzMDJcdTAzMDNBXHUwMzIzXHUwMzAyYVx1MDMyM1x1MDMwMkFcdTAzMDZcdTAzMDFhXHUwMzA2XHUwMzAxQVx1MDMwNiIrCisgICAgICAgICJcdTAzMDBhXHUwMzA2XHUwMzAwQVx1MDMwNlx1MDMwOWFcdTAzMDZcdTAzMDlBXHUwMzA2XHUwMzAzYVx1MDMwNlx1MDMwMyIrCisgICAgICAgICJBXHUwMzIzXHUwMzA2YVx1MDMyM1x1MDMwNkVcdTAzMjNlXHUwMzIzRVx1MDMwOWVcdTAzMDlFXHUwMzAzZVx1MDMwM0UiKworICAgICAgICAiXHUwMzAyXHUwMzAxZVx1MDMwMlx1MDMwMUVcdTAzMDJcdTAzMDBlXHUwMzAyXHUwMzAwRVx1MDMwMlx1MDMwOWVcdTAzMDIiKworICAgICAgICAiXHUwMzA5RVx1MDMwMlx1MDMwM2VcdTAzMDJcdTAzMDNFXHUwMzIzXHUwMzAyZVx1MDMyM1x1MDMwMklcdTAzMDlpXHUwMzA5IisKKyAgICAgICAgIklcdTAzMjNpXHUwMzIzT1x1MDMyM29cdTAzMjNPXHUwMzA5b1x1MDMwOU9cdTAzMDJcdTAzMDFvXHUwMzAyXHUwMzAxTyIrCisgICAgICAgICJcdTAzMDJcdTAzMDBvXHUwMzAyXHUwMzAwT1x1MDMwMlx1MDMwOW9cdTAzMDJcdTAzMDlPXHUwMzAyXHUwMzAzb1x1MDMwMiIrCisgICAgICAgICJcdTAzMDNPXHUwMzIzXHUwMzAyb1x1MDMyM1x1MDMwMk9cdTAzMUJcdTAzMDFvXHUwMzFCXHUwMzAxT1x1MDMxQlx1MDMwMCIrCisgICAgICAgICJvXHUwMzFCXHUwMzAwT1x1MDMxQlx1MDMwOW9cdTAzMUJcdTAzMDlPXHUwMzFCXHUwMzAzb1x1MDMxQlx1MDMwM09cdTAzMUIiKworICAgICAgICAiXHUwMzIzb1x1MDMxQlx1MDMyM1VcdTAzMjN1XHUwMzIzVVx1MDMwOXVcdTAzMDlVXHUwMzFCXHUwMzAxdVx1MDMxQlx1MDMwMSIrCisgICAgICAgICJVXHUwMzFCXHUwMzAwdVx1MDMxQlx1MDMwMFVcdTAzMUJcdTAzMDl1XHUwMzFCXHUwMzA5VVx1MDMxQlx1MDMwM3VcdTAzMUIiKworICAgICAgICAiXHUwMzAzVVx1MDMxQlx1MDMyM3VcdTAzMUJcdTAzMjNZXHUwMzAweVx1MDMwMFlcdTAzMjN5XHUwMzIzWVx1MDMwOXlcdTAzMDkiKworICAgICAgICAiWVx1MDMwM3lcdTAzMDNcdTAzQjFcdTAzMTNcdTAzQjFcdTAzMTRcdTAzQjFcdTAzMTNcdTAzMDBcdTAzQjFcdTAzMTRcdTAzMDAiKworICAgICAgICAiXHUwM0IxXHUwMzEzXHUwMzAxXHUwM0IxXHUwMzE0XHUwMzAxXHUwM0IxXHUwMzEzXHUwMzQyXHUwM0IxXHUwMzE0XHUwMzQyIisKKyAgICAgICAgIlx1MDM5MVx1MDMxM1x1MDM5MVx1MDMxNFx1MDM5MVx1MDMxM1x1MDMwMFx1MDM5MVx1MDMxNFx1MDMwMFx1MDM5MVx1MDMxMyIrCisgICAgICAgICJcdTAzMDFcdTAzOTFcdTAzMTRcdTAzMDFcdTAzOTFcdTAzMTNcdTAzNDJcdTAzOTFcdTAzMTRcdTAzNDJcdTAzQjVcdTAzMTMiKworICAgICAgICAiXHUwM0I1XHUwMzE0XHUwM0I1XHUwMzEzXHUwMzAwXHUwM0I1XHUwMzE0XHUwMzAwXHUwM0I1XHUwMzEzXHUwMzAxXHUwM0I1IisKKyAgICAgICAgIlx1MDMxNFx1MDMwMVx1MDM5NVx1MDMxM1x1MDM5NVx1MDMxNFx1MDM5NVx1MDMxM1x1MDMwMFx1MDM5NVx1MDMxNFx1MDMwMCIrCisgICAgICAgICJcdTAzOTVcdTAzMTNcdTAzMDFcdTAzOTVcdTAzMTRcdTAzMDFcdTAzQjdcdTAzMTNcdTAzQjdcdTAzMTRcdTAzQjdcdTAzMTMiKworICAgICAgICAiXHUwMzAwXHUwM0I3XHUwMzE0XHUwMzAwXHUwM0I3XHUwMzEzXHUwMzAxXHUwM0I3XHUwMzE0XHUwMzAxXHUwM0I3XHUwMzEzIisKKyAgICAgICAgIlx1MDM0Mlx1MDNCN1x1MDMxNFx1MDM0Mlx1MDM5N1x1MDMxM1x1MDM5N1x1MDMxNFx1MDM5N1x1MDMxM1x1MDMwMFx1MDM5NyIrCisgICAgICAgICJcdTAzMTRcdTAzMDBcdTAzOTdcdTAzMTNcdTAzMDFcdTAzOTdcdTAzMTRcdTAzMDFcdTAzOTdcdTAzMTNcdTAzNDJcdTAzOTciKworICAgICAgICAiXHUwMzE0XHUwMzQyXHUwM0I5XHUwMzEzXHUwM0I5XHUwMzE0XHUwM0I5XHUwMzEzXHUwMzAwXHUwM0I5XHUwMzE0XHUwMzAwIisKKyAgICAgICAgIlx1MDNCOVx1MDMxM1x1MDMwMVx1MDNCOVx1MDMxNFx1MDMwMVx1MDNCOVx1MDMxM1x1MDM0Mlx1MDNCOVx1MDMxNFx1MDM0MiIrCisgICAgICAgICJcdTAzOTlcdTAzMTNcdTAzOTlcdTAzMTRcdTAzOTlcdTAzMTNcdTAzMDBcdTAzOTlcdTAzMTRcdTAzMDBcdTAzOTlcdTAzMTMiKworICAgICAgICAiXHUwMzAxXHUwMzk5XHUwMzE0XHUwMzAxXHUwMzk5XHUwMzEzXHUwMzQyXHUwMzk5XHUwMzE0XHUwMzQyXHUwM0JGXHUwMzEzIisKKyAgICAgICAgIlx1MDNCRlx1MDMxNFx1MDNCRlx1MDMxM1x1MDMwMFx1MDNCRlx1MDMxNFx1MDMwMFx1MDNCRlx1MDMxM1x1MDMwMVx1MDNCRiIrCisgICAgICAgICJcdTAzMTRcdTAzMDFcdTAzOUZcdTAzMTNcdTAzOUZcdTAzMTRcdTAzOUZcdTAzMTNcdTAzMDBcdTAzOUZcdTAzMTRcdTAzMDAiKworICAgICAgICAiXHUwMzlGXHUwMzEzXHUwMzAxXHUwMzlGXHUwMzE0XHUwMzAxXHUwM0M1XHUwMzEzXHUwM0M1XHUwMzE0XHUwM0M1XHUwMzEzIisKKyAgICAgICAgIlx1MDMwMFx1MDNDNVx1MDMxNFx1MDMwMFx1MDNDNVx1MDMxM1x1MDMwMVx1MDNDNVx1MDMxNFx1MDMwMVx1MDNDNVx1MDMxMyIrCisgICAgICAgICJcdTAzNDJcdTAzQzVcdTAzMTRcdTAzNDJcdTAzQTVcdTAzMTRcdTAzQTVcdTAzMTRcdTAzMDBcdTAzQTVcdTAzMTRcdTAzMDEiKworICAgICAgICAiXHUwM0E1XHUwMzE0XHUwMzQyXHUwM0M5XHUwMzEzXHUwM0M5XHUwMzE0XHUwM0M5XHUwMzEzXHUwMzAwXHUwM0M5XHUwMzE0IisKKyAgICAgICAgIlx1MDMwMFx1MDNDOVx1MDMxM1x1MDMwMVx1MDNDOVx1MDMxNFx1MDMwMVx1MDNDOVx1MDMxM1x1MDM0Mlx1MDNDOVx1MDMxNCIrCisgICAgICAgICJcdTAzNDJcdTAzQTlcdTAzMTNcdTAzQTlcdTAzMTRcdTAzQTlcdTAzMTNcdTAzMDBcdTAzQTlcdTAzMTRcdTAzMDBcdTAzQTkiKworICAgICAgICAiXHUwMzEzXHUwMzAxXHUwM0E5XHUwMzE0XHUwMzAxXHUwM0E5XHUwMzEzXHUwMzQyXHUwM0E5XHUwMzE0XHUwMzQyXHUwM0IxIisKKyAgICAgICAgIlx1MDMwMFx1MDNCMVx1MDMwMVx1MDNCNVx1MDMwMFx1MDNCNVx1MDMwMVx1MDNCN1x1MDMwMFx1MDNCN1x1MDMwMVx1MDNCOSIrCisgICAgICAgICJcdTAzMDBcdTAzQjlcdTAzMDFcdTAzQkZcdTAzMDBcdTAzQkZcdTAzMDFcdTAzQzVcdTAzMDBcdTAzQzVcdTAzMDFcdTAzQzkiKworICAgICAgICAiXHUwMzAwXHUwM0M5XHUwMzAxXHUwM0IxXHUwMzEzXHUwMzQ1XHUwM0IxXHUwMzE0XHUwMzQ1XHUwM0IxXHUwMzEzXHUwMzAwIisKKyAgICAgICAgIlx1MDM0NVwwMDBcdTAzQjFcdTAzMTRcdTAzMDBcdTAzNDVcMDAwXHUwM0IxXHUwMzEzXHUwMzAxXHUwMzQ1XDAwMFx1MDNCMSIrCisgICAgICAgICJcdTAzMTRcdTAzMDFcdTAzNDVcMDAwXHUwM0IxXHUwMzEzXHUwMzQyXHUwMzQ1XDAwMFx1MDNCMVx1MDMxNFx1MDM0Mlx1MDM0NSIrCisgICAgICAgICJcMDAwXHUwMzkxXHUwMzEzXHUwMzQ1XHUwMzkxXHUwMzE0XHUwMzQ1XHUwMzkxXHUwMzEzXHUwMzAwXHUwMzQ1XDAwMFx1MDM5MSIrCisgICAgICAgICJcdTAzMTRcdTAzMDBcdTAzNDVcMDAwXHUwMzkxXHUwMzEzXHUwMzAxXHUwMzQ1XDAwMFx1MDM5MVx1MDMxNFx1MDMwMVx1MDM0NSIrCisgICAgICAgICJcMDAwXHUwMzkxXHUwMzEzXHUwMzQyXHUwMzQ1XDAwMFx1MDM5MVx1MDMxNFx1MDM0Mlx1MDM0NVwwMDBcdTAzQjdcdTAzMTMiKworICAgICAgICAiXHUwMzQ1XHUwM0I3XHUwMzE0XHUwMzQ1XHUwM0I3XHUwMzEzXHUwMzAwXHUwMzQ1XDAwMFx1MDNCN1x1MDMxNFx1MDMwMCIrCisgICAgICAgICJcdTAzNDVcMDAwXHUwM0I3XHUwMzEzXHUwMzAxXHUwMzQ1XDAwMFx1MDNCN1x1MDMxNFx1MDMwMVx1MDM0NVwwMDBcdTAzQjciKworICAgICAgICAiXHUwMzEzXHUwMzQyXHUwMzQ1XDAwMFx1MDNCN1x1MDMxNFx1MDM0Mlx1MDM0NVwwMDBcdTAzOTdcdTAzMTNcdTAzNDVcdTAzOTciKworICAgICAgICAiXHUwMzE0XHUwMzQ1XHUwMzk3XHUwMzEzXHUwMzAwXHUwMzQ1XDAwMFx1MDM5N1x1MDMxNFx1MDMwMFx1MDM0NVwwMDBcdTAzOTciKworICAgICAgICAiXHUwMzEzXHUwMzAxXHUwMzQ1XDAwMFx1MDM5N1x1MDMxNFx1MDMwMVx1MDM0NVwwMDBcdTAzOTdcdTAzMTNcdTAzNDJcdTAzNDUiKworICAgICAgICAiXDAwMFx1MDM5N1x1MDMxNFx1MDM0Mlx1MDM0NVwwMDBcdTAzQzlcdTAzMTNcdTAzNDVcdTAzQzlcdTAzMTRcdTAzNDVcdTAzQzkiKworICAgICAgICAiXHUwMzEzXHUwMzAwXHUwMzQ1XDAwMFx1MDNDOVx1MDMxNFx1MDMwMFx1MDM0NVwwMDBcdTAzQzlcdTAzMTNcdTAzMDFcdTAzNDUiKworICAgICAgICAiXDAwMFx1MDNDOVx1MDMxNFx1MDMwMVx1MDM0NVwwMDBcdTAzQzlcdTAzMTNcdTAzNDJcdTAzNDVcMDAwXHUwM0M5XHUwMzE0IisKKyAgICAgICAgIlx1MDM0Mlx1MDM0NVwwMDBcdTAzQTlcdTAzMTNcdTAzNDVcdTAzQTlcdTAzMTRcdTAzNDVcdTAzQTlcdTAzMTNcdTAzMDAiKworICAgICAgICAiXHUwMzQ1XDAwMFx1MDNBOVx1MDMxNFx1MDMwMFx1MDM0NVwwMDBcdTAzQTlcdTAzMTNcdTAzMDFcdTAzNDVcMDAwXHUwM0E5IisKKyAgICAgICAgIlx1MDMxNFx1MDMwMVx1MDM0NVwwMDBcdTAzQTlcdTAzMTNcdTAzNDJcdTAzNDVcMDAwXHUwM0E5XHUwMzE0XHUwMzQyXHUwMzQ1IisKKyAgICAgICAgIlwwMDBcdTAzQjFcdTAzMDZcdTAzQjFcdTAzMDRcdTAzQjFcdTAzMDBcdTAzNDVcdTAzQjFcdTAzNDVcdTAzQjFcdTAzMDEiKworICAgICAgICAiXHUwMzQ1XHUwM0IxXHUwMzQyXHUwM0IxXHUwMzQyXHUwMzQ1XHUwMzkxXHUwMzA2XHUwMzkxXHUwMzA0XHUwMzkxXHUwMzAwIisKKyAgICAgICAgIlx1MDM5MVx1MDMwMVx1MDM5MVx1MDM0NVx1MDNCOVx1MDBBOFx1MDM0Mlx1MDNCN1x1MDMwMFx1MDM0NVx1MDNCN1x1MDM0NSIrCisgICAgICAgICJcdTAzQjdcdTAzMDFcdTAzNDVcdTAzQjdcdTAzNDJcdTAzQjdcdTAzNDJcdTAzNDVcdTAzOTVcdTAzMDBcdTAzOTVcdTAzMDEiKworICAgICAgICAiXHUwMzk3XHUwMzAwXHUwMzk3XHUwMzAxXHUwMzk3XHUwMzQ1XHUxRkJGXHUwMzAwXHUxRkJGXHUwMzAxXHUxRkJGXHUwMzQyIisKKyAgICAgICAgIlx1MDNCOVx1MDMwNlx1MDNCOVx1MDMwNFx1MDNCOVx1MDMwOFx1MDMwMFx1MDNCOVx1MDMwOFx1MDMwMVx1MDNCOVx1MDM0MiIrCisgICAgICAgICJcdTAzQjlcdTAzMDhcdTAzNDJcdTAzOTlcdTAzMDZcdTAzOTlcdTAzMDRcdTAzOTlcdTAzMDBcdTAzOTlcdTAzMDFcdTFGRkUiKworICAgICAgICAiXHUwMzAwXHUxRkZFXHUwMzAxXHUxRkZFXHUwMzQyXHUwM0M1XHUwMzA2XHUwM0M1XHUwMzA0XHUwM0M1XHUwMzA4XHUwMzAwIisKKyAgICAgICAgIlx1MDNDNVx1MDMwOFx1MDMwMVx1MDNDMVx1MDMxM1x1MDNDMVx1MDMxNFx1MDNDNVx1MDM0Mlx1MDNDNVx1MDMwOFx1MDM0MiIrCisgICAgICAgICJcdTAzQTVcdTAzMDZcdTAzQTVcdTAzMDRcdTAzQTVcdTAzMDBcdTAzQTVcdTAzMDFcdTAzQTFcdTAzMTRcdTAwQThcdTAzMDAiKworICAgICAgICAiXHUwMEE4XHUwMzAxYFx1MDNDOVx1MDMwMFx1MDM0NVx1MDNDOVx1MDM0NVx1MDNDOVx1MDMwMVx1MDM0NVx1MDNDOVx1MDM0MiIrCisgICAgICAgICJcdTAzQzlcdTAzNDJcdTAzNDVcdTAzOUZcdTAzMDBcdTAzOUZcdTAzMDFcdTAzQTlcdTAzMDBcdTAzQTlcdTAzMDFcdTAzQTkiKworICAgICAgICAiXHUwMzQ1XHUwMEI0XHUyMDAyXHUyMDAzXHUwM0E5S0FcdTAzMEFcdTIxOTBcdTAzMzhcdTIxOTJcdTAzMzhcdTIxOTRcdTAzMzgiKworICAgICAgICAiXHUyMUQwXHUwMzM4XHUyMUQ0XHUwMzM4XHUyMUQyXHUwMzM4XHUyMjAzXHUwMzM4XHUyMjA4XHUwMzM4XHUyMjBCXHUwMzM4IisKKyAgICAgICAgIlx1MjIyM1x1MDMzOFx1MjIyNVx1MDMzOFx1MjIzQ1x1MDMzOFx1MjI0M1x1MDMzOFx1MjI0NVx1MDMzOFx1MjI0OFx1MDMzOCIrCisgICAgICAgICI9XHUwMzM4XHUyMjYxXHUwMzM4XHUyMjREXHUwMzM4PFx1MDMzOD5cdTAzMzhcdTIyNjRcdTAzMzhcdTIyNjVcdTAzMzgiKworICAgICAgICAiXHUyMjcyXHUwMzM4XHUyMjczXHUwMzM4XHUyMjc2XHUwMzM4XHUyMjc3XHUwMzM4XHUyMjdBXHUwMzM4XHUyMjdCXHUwMzM4IisKKyAgICAgICAgIlx1MjI4Mlx1MDMzOFx1MjI4M1x1MDMzOFx1MjI4Nlx1MDMzOFx1MjI4N1x1MDMzOFx1MjJBMlx1MDMzOFx1MjJBOFx1MDMzOCIrCisgICAgICAgICJcdTIyQTlcdTAzMzhcdTIyQUJcdTAzMzhcdTIyN0NcdTAzMzhcdTIyN0RcdTAzMzhcdTIyOTFcdTAzMzhcdTIyOTJcdTAzMzgiKworICAgICAgICAiXHUyMkIyXHUwMzM4XHUyMkIzXHUwMzM4XHUyMkI0XHUwMzM4XHUyMkI1XHUwMzM4XHUzMDA4XHUzMDA5XHUzMDRCXHUzMDk5IisKKyAgICAgICAgIlx1MzA0RFx1MzA5OVx1MzA0Rlx1MzA5OVx1MzA1MVx1MzA5OVx1MzA1M1x1MzA5OVx1MzA1NVx1MzA5OVx1MzA1N1x1MzA5OSIrCisgICAgICAgICJcdTMwNTlcdTMwOTlcdTMwNUJcdTMwOTlcdTMwNURcdTMwOTlcdTMwNUZcdTMwOTlcdTMwNjFcdTMwOTlcdTMwNjRcdTMwOTkiKworICAgICAgICAiXHUzMDY2XHUzMDk5XHUzMDY4XHUzMDk5XHUzMDZGXHUzMDk5XHUzMDZGXHUzMDlBXHUzMDcyXHUzMDk5XHUzMDcyXHUzMDlBIisKKyAgICAgICAgIlx1MzA3NVx1MzA5OVx1MzA3NVx1MzA5QVx1MzA3OFx1MzA5OVx1MzA3OFx1MzA5QVx1MzA3Qlx1MzA5OVx1MzA3Qlx1MzA5QSIrCisgICAgICAgICJcdTMwNDZcdTMwOTlcdTMwOURcdTMwOTlcdTMwQUJcdTMwOTlcdTMwQURcdTMwOTlcdTMwQUZcdTMwOTlcdTMwQjFcdTMwOTkiKworICAgICAgICAiXHUzMEIzXHUzMDk5XHUzMEI1XHUzMDk5XHUzMEI3XHUzMDk5XHUzMEI5XHUzMDk5XHUzMEJCXHUzMDk5XHUzMEJEXHUzMDk5IisKKyAgICAgICAgIlx1MzBCRlx1MzA5OVx1MzBDMVx1MzA5OVx1MzBDNFx1MzA5OVx1MzBDNlx1MzA5OVx1MzBDOFx1MzA5OVx1MzBDRlx1MzA5OSIrCisgICAgICAgICJcdTMwQ0ZcdTMwOUFcdTMwRDJcdTMwOTlcdTMwRDJcdTMwOUFcdTMwRDVcdTMwOTlcdTMwRDVcdTMwOUFcdTMwRDhcdTMwOTkiKworICAgICAgICAiXHUzMEQ4XHUzMDlBXHUzMERCXHUzMDk5XHUzMERCXHUzMDlBXHUzMEE2XHUzMDk5XHUzMEVGXHUzMDk5XHUzMEYwXHUzMDk5IisKKyAgICAgICAgIlx1MzBGMVx1MzA5OVx1MzBGMlx1MzA5OVx1MzBGRFx1MzA5OVx1OEM0OFx1NjZGNFx1OEVDQVx1OENDOFx1NkVEMVx1NEUzMiIrCisgICAgICAgICJcdTUzRTVcdTlGOUNcdTlGOUNcdTU5NTFcdTkxRDFcdTU1ODdcdTU5NDhcdTYxRjZcdTc2NjlcdTdGODVcdTg2M0ZcdTg3QkEiKworICAgICAgICAiXHU4OEY4XHU5MDhGXHU2QTAyXHU2RDFCXHU3MEQ5XHU3M0RFXHU4NDNEXHU5MTZBXHU5OUYxXHU0RTgyXHU1Mzc1XHU2QjA0IisKKyAgICAgICAgIlx1NzIxQlx1ODYyRFx1OUUxRVx1NUQ1MFx1NkZFQlx1ODVDRFx1ODk2NFx1NjJDOVx1ODFEOFx1ODgxRlx1NUVDQVx1NjcxNyIrCisgICAgICAgICJcdTZENkFcdTcyRkNcdTkwQ0VcdTRGODZcdTUxQjdcdTUyREVcdTY0QzRcdTZBRDNcdTcyMTBcdTc2RTdcdTgwMDFcdTg2MDYiKworICAgICAgICAiXHU4NjVDXHU4REVGXHU5NzMyXHU5QjZGXHU5REZBXHU3ODhDXHU3OTdGXHU3REEwXHU4M0M5XHU5MzA0XHU5RTdGXHU4QUQ2IisKKyAgICAgICAgIlx1NThERlx1NUYwNFx1N0M2MFx1ODA3RVx1NzI2Mlx1NzhDQVx1OENDMlx1OTZGN1x1NThEOFx1NUM2Mlx1NkExM1x1NkREQSIrCisgICAgICAgICJcdTZGMEZcdTdEMkZcdTdFMzdcdTk2RkJcdTUyRDJcdTgwOEJcdTUxRENcdTUxQ0NcdTdBMUNcdTdEQkVcdTgzRjFcdTk2NzUiKworICAgICAgICAiXHU4QjgwXHU2MkNGXHU2QTAyXHU4QUZFXHU0RTM5XHU1QkU3XHU2MDEyXHU3Mzg3XHU3NTcwXHU1MzE3XHU3OEZCXHU0RkJGIisKKyAgICAgICAgIlx1NUZBOVx1NEUwRFx1NkNDQ1x1NjU3OFx1N0QyMlx1NTNDM1x1NTg1RVx1NzcwMVx1ODQ0OVx1OEFBQVx1NkJCQVx1OEZCMCIrCisgICAgICAgICJcdTZDODhcdTYyRkVcdTgyRTVcdTYzQTBcdTc1NjVcdTRFQUVcdTUxNjlcdTUxQzlcdTY4ODFcdTdDRTdcdTgyNkZcdThBRDIiKworICAgICAgICAiXHU5MUNGXHU1MkY1XHU1NDQyXHU1OTczXHU1RUVDXHU2NUM1XHU2RkZFXHU3OTJBXHU5NUFEXHU5QTZBXHU5RTk3XHU5RUNFIisKKyAgICAgICAgIlx1NTI5Qlx1NjZDNlx1NkI3N1x1OEY2Mlx1NUU3NFx1NjE5MFx1NjIwMFx1NjQ5QVx1NkYyM1x1NzE0OVx1NzQ4OVx1NzlDQSIrCisgICAgICAgICJcdTdERjRcdTgwNkZcdThGMjZcdTg0RUVcdTkwMjNcdTkzNEFcdTUyMTdcdTUyQTNcdTU0QkRcdTcwQzhcdTg4QzJcdThBQUEiKworICAgICAgICAiXHU1RUM5XHU1RkY1XHU2MzdCXHU2QkFFXHU3QzNFXHU3Mzc1XHU0RUU0XHU1NkY5XHU1QkU3XHU1REJBXHU2MDFDXHU3M0IyIisKKyAgICAgICAgIlx1NzQ2OVx1N0Y5QVx1ODA0Nlx1OTIzNFx1OTZGNlx1OTc0OFx1OTgxOFx1NEY4Qlx1NzlBRVx1OTFCNFx1OTZCOFx1NjBFMSIrCisgICAgICAgICJcdTRFODZcdTUwREFcdTVCRUVcdTVDM0ZcdTY1OTlcdTZBMDJcdTcxQ0VcdTc2NDJcdTg0RkNcdTkwN0NcdTlGOERcdTY2ODgiKworICAgICAgICAiXHU5NjJFXHU1Mjg5XHU2NzdCXHU2N0YzXHU2RDQxXHU2RTlDXHU3NDA5XHU3NTU5XHU3ODZCXHU3RDEwXHU5ODVFXHU1MTZEIisKKyAgICAgICAgIlx1NjIyRVx1OTY3OFx1NTAyQlx1NUQxOVx1NkRFQVx1OEYyQVx1NUY4Qlx1NjE0NFx1NjgxN1x1NzM4N1x1OTY4Nlx1NTIyOSIrCisgICAgICAgICJcdTU0MEZcdTVDNjVcdTY2MTNcdTY3NEVcdTY4QThcdTZDRTVcdTc0MDZcdTc1RTJcdTdGNzlcdTg4Q0ZcdTg4RTFcdTkxQ0MiKworICAgICAgICAiXHU5NkUyXHU1MzNGXHU2RUJBXHU1NDFEXHU3MUQwXHU3NDk4XHU4NUZBXHU5NkEzXHU5QzU3XHU5RTlGXHU2Nzk3XHU2RENCIisKKyAgICAgICAgIlx1ODFFOFx1N0FDQlx1N0IyMFx1N0M5Mlx1NzJDMFx1NzA5OVx1OEI1OFx1NEVDMFx1ODMzNlx1NTIzQVx1NTIwN1x1NUVBNiIrCisgICAgICAgICJcdTYyRDNcdTdDRDZcdTVCODVcdTZEMUVcdTY2QjRcdThGM0JcdTg4NENcdTk2NERcdTg5OEJcdTVFRDNcdTUxNDBcdTU1QzAiKworICAgICAgICAiXHU1ODVBXHU2Njc0XHU1MURFXHU3MzJBXHU3NkNBXHU3OTNDXHU3OTVFXHU3OTY1XHU3OThGXHU5NzU2XHU3Q0JFXHU3RkJEIisKKyAgICAgICAgIlx1ODYxMlx1OEFGOFx1OTAzOFx1OTBGRFx1OThFRlx1OThGQ1x1OTkyOFx1OURCNFx1MDVEOVx1MDVCNFx1MDVGMlx1MDVCNyIrCisgICAgICAgICJcdTA1RTlcdTA1QzFcdTA1RTlcdTA1QzJcdTA1RTlcdTA1QkNcdTA1QzFcdTA1RTlcdTA1QkNcdTA1QzJcdTA1RDBcdTA1QjciKworICAgICAgICAiXHUwNUQwXHUwNUI4XHUwNUQwXHUwNUJDXHUwNUQxXHUwNUJDXHUwNUQyXHUwNUJDXHUwNUQzXHUwNUJDXHUwNUQ0XHUwNUJDIisKKyAgICAgICAgIlx1MDVENVx1MDVCQ1x1MDVENlx1MDVCQ1x1MDVEOFx1MDVCQ1x1MDVEOVx1MDVCQ1x1MDVEQVx1MDVCQ1x1MDVEQlx1MDVCQyIrCisgICAgICAgICJcdTA1RENcdTA1QkNcdTA1REVcdTA1QkNcdTA1RTBcdTA1QkNcdTA1RTFcdTA1QkNcdTA1RTNcdTA1QkNcdTA1RTRcdTA1QkMiKworICAgICAgICAiXHUwNUU2XHUwNUJDXHUwNUU3XHUwNUJDXHUwNUU4XHUwNUJDXHUwNUU5XHUwNUJDXHUwNUVBXHUwNUJDXHUwNUQ1XHUwNUI5IisKKyAgICAgICAgIlx1MDVEMVx1MDVCRlx1MDVEQlx1MDVCRlx1MDVFNFx1MDVCRiIKKyAgICA7CisKKyAgICBzdGF0aWMgZmluYWwgQ29tcGFjdEJ5dGVBcnJheSBjYW5vbkNsYXNzID0gbmV3IENvbXBhY3RCeXRlQXJyYXkoCisgICAgICAgICJcMDAwXHUwMjAwXHVBNUE1XDAwNlwwMDBcdTAwODBcMDAwXDAwMFx1MDEwMFwwMDBcdTAxODBcdTAyMDBcdTAyODBcdTAzMDAiKworICAgICAgICAiXDAwMFwwMDBcMDAwXHUwMzgwXHVBNUE1XDAwNFx1MDQwMFx1MDQ4MFx1MDUwMFx1MDQ4MFx1MDQ4MFx1MDU4MFx1MDYwMCIrCisgICAgICAgICJcdTA2ODBcdTA3MDBcdTA3ODBcdTA4MDBcdUE1QTVcMDE2XDAwMFx1MDg4MFwwMDBcdTA5MDBcdUE1QTVcMDE3XDAwMFx1MDk4MCIrCisgICAgICAgICJcdUE1QTVcMDM2XDAwMFx1MEEwMFx1MEE4MFx1QTVBNVx1MDE5NFwwMDBcdTBCMDBcdUE1QTVcMDA1XDAwMFx1MEI4MFwwMDAiKworICAgICAgICAiXDAwMFwwMDAiCisgICAgICAgICwKKyAgICAgICAgIlwwMDBcdTBDMDBcdUE1ODBcdTAwQTVcdTE1RTZcdUU4QTVcdTA0RENcdUU4RDhcdUE1MDVcdURDQ0FcdUNBQTVcdTA0REMiKworICAgICAgICAiXHVDQUNBXHVBNTBCXHVEQ0E1XHUwNTAxXHVBNTA0XHVEQ0E1XHUwOEU2XHVGMEU2XHVEQ0RDXHVEQ0U2XHVFNkU2XHVEQ0RDIisKKyAgICAgICAgIlx1QTUxMVx1MDBFQVx1RUFFOVx1QTUyMFx1MDBBNVx1MDRFNlx1QTU4QVx1MDBEQ1x1QTUwNFx1RTZEQ1x1RTZFNlx1RTZERSIrCisgICAgICAgICJcdURDQTVcdTA2RTZcdTAwQTVcdTA1RENcdUU2RTZcdURDRTZcdUU2REVcdUU0RTZcdTBBMEJcdTBDMERcdTBFMEZcdTEwMTEiKworICAgICAgICAiXHUxMjEzXDAyNFx1MTUxNlwwMjdcMDMwXHUxOTAwXHVFNkE1XHU4NjAwXHUxQjFDXHUxRDFFXHUxRjIwXHUyMTIyXHVFNkU2IisKKyAgICAgICAgIlx1RENBNVx1MUEwMFx1MjNBNVx1NjUwMFx1QTUwN1x1RTYwMFx1MDBBNVx1MDRFNlx1RENFNlwwMDBcdUU2RTZcdTAwREMiKworICAgICAgICAiXHVFNkU2XHVEQ0E1XHUyMzAwXHUyNEE1XHUxRTAwXHVFNkRDXHVFNkU2XHVEQ0U2XHVFNkRDXHVEQ0RDXHVFNkRDXHVEQ0U2IisKKyAgICAgICAgIlx1RENFNlx1RTZFNlx1RENFNlx1RENFNlx1RENFNlx1RENFNlx1RTZBNVx1NzEwMFx1MDdBNVx1MTAwMFx1MDkwMFwwMDAiKworICAgICAgICAiXHVFNkRDXHVFNkU2XHVBNTY3XDAwN1x1QTUxMFwwMTFcdUE1N0ZcMDExXHVBNTdGXDAxMVx1QTUwN1RcdTVCQTVcdTczMDAiKworICAgICAgICAiXHUwOUE1XHU2RDAwXHU2NzY3XHUwOUE1XHUwRDAwXHVBNTA0XHU2QkE1XHU2QzAwXHU3Njc2XHVBNTBFXHUwMEE1XHUwNDdBIisKKyAgICAgICAgIlx1QTU0Q1x1MDBEQ1x1RENBNVx1MUIwMFx1REMwMFx1REMwMFx1RDhBNVx1MzcwMFx1ODE4Mlx1MDA4NFx1QTUwNVx1MDBBNSIrCisgICAgICAgICJcdTA0ODJcMDAwXHU4MjAwXHVFNkU2XHUwOTAwXHVFNkU2XHVBNTNFXHUwMERDXHVBNTcwXDAwN1wwMTFcdUE1OThcMDExIisKKyAgICAgICAgIlx1QTU1Nlx1MDBFNFx1QTVBNlx1MDBFNlx1RTYwMVx1MDFBNVx1MDRFNlx1MDEwMVx1MDFFNlx1RTZBNVx1MDQwMFx1RTZBNSIrCisgICAgICAgICJcdTQ4MDBcdURBRTRcdUU4REVcdUUwRTBcdUE1NjlcMDEwXHUwOEE1XHU4MzAwXHUxQUE1XHU4MTAwXHVBNTA0XHVFNkE1IisKKyAgICAgICAgIlx1NUMwMCIKKyAgICAgICAgKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iNzAzMzVjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsNTc0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvdGV4dC9EaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6MDcgJCAKKyAqICRSZXZpc2lvbjogMS45ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworaW1wb3J0IGphdmEudXRpbC5TdGFjazsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CisKK2ltcG9ydCBqYXZhLmlvLio7CisKKy8qKgorICogQSBzdWJjbGFzcyBvZiBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHRoYXQgYWRkcyB0aGUgYWJpbGl0eSB0byB1c2UgYSBkaWN0aW9uYXJ5CisgKiB0byBmdXJ0aGVyIHN1YmRpdmlkZSByYW5nZXMgb2YgdGV4dCBiZXlvbmQgd2hhdCBpcyBwb3NzaWJsZSB1c2luZyBqdXN0IHRoZQorICogc3RhdGUtdGFibGUtYmFzZWQgYWxnb3JpdGhtLiAgVGhpcyBpcyBuZWNlc3NhcnksIGZvciBleGFtcGxlLCB0byBoYW5kbGUKKyAqIHdvcmQgYW5kIGxpbmUgYnJlYWtpbmcgaW4gVGhhaSwgd2hpY2ggZG9lc24ndCB1c2Ugc3BhY2VzIGJldHdlZW4gd29yZHMuICBUaGUKKyAqIHN0YXRlLXRhYmxlLWJhc2VkIGFsZ29yaXRobSB1c2VkIGJ5IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgaXMgdXNlZCB0byBkaXZpZGUKKyAqIHVwIHRleHQgYXMgZmFyIGFzIHBvc3NpYmxlLCBhbmQgdGhlbiBjb250aWd1b3VzIHJhbmdlcyBvZiBsZXR0ZXJzIGFyZQorICogcmVwZWF0ZWRseSBjb21wYXJlZCBhZ2FpbnN0IGEgbGlzdCBvZiBrbm93biB3b3JkcyAoaS5lLiwgdGhlIGRpY3Rpb25hcnkpCisgKiB0byBkaXZpZGUgdGhlbSB1cCBpbnRvIHdvcmRzLgorICoKKyAqIERpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IgdXNlcyB0aGUgc2FtZSBydWxlIGxhbmd1YWdlIGFzIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IsCisgKiBidXQgYWRkcyBvbmUgbW9yZSBzcGVjaWFsIHN1YnN0aXR1dGlvbiBuYW1lOiBfZGljdGlvbmFyeV8uICBUaGlzIHN1YnN0aXR1dGlvbgorICogbmFtZSBpcyB1c2VkIHRvIGlkZW50aWZ5IGNoYXJhY3RlcnMgaW4gd29yZHMgaW4gdGhlIGRpY3Rpb25hcnkuICBUaGUgaWRlYSBpcyB0aGF0CisgKiBpZiB0aGUgaXRlcmF0b3IgcGFzc2VzIG92ZXIgYSBjaHVuayBvZiB0ZXh0IHRoYXQgaW5jbHVkZXMgdHdvIG9yIG1vcmUgY2hhcmFjdGVycworICogaW4gYSByb3cgdGhhdCBhcmUgaW5jbHVkZWQgaW4gX2RpY3Rpb25hcnlfLCBpdCBnb2VzIGJhY2sgdGhyb3VnaCB0aGF0IHJhbmdlIGFuZAorICogZGVyaXZlcyBhZGRpdGlvbmFsIGJyZWFrIHBvc2l0aW9ucyAoaWYgcG9zc2libGUpIHVzaW5nIHRoZSBkaWN0aW9uYXJ5LgorICoKKyAqIERpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IgaXMgYWxzbyBjb25zdHJ1Y3RlZCB3aXRoIHRoZSBmaWxlbmFtZSBvZiBhIGRpY3Rpb25hcnkKKyAqIGZpbGUuICBJdCB1c2VzIENsYXNzLmdldFJlc291cmNlKCkgdG8gbG9jYXRlIHRoZSBkaWN0aW9uYXJ5IGZpbGUuICBUaGUKKyAqIGRpY3Rpb25hcnkgZmlsZSBpcyBpbiBhIHNlcmlhbGl6ZWQgYmluYXJ5IGZvcm1hdC4gIFdlIGhhdmUgYSB2ZXJ5IHByaW1pdGl2ZSAoYW5kCisgKiBzbG93KSBCdWlsZERpY3Rpb25hcnlGaWxlIHV0aWxpdHkgZm9yIGNyZWF0aW5nIGRpY3Rpb25hcnkgZmlsZXMsIGJ1dCBhcmVuJ3QKKyAqIGN1cnJlbnRseSBtYWtpbmcgaXQgcHVibGljLiAgQ29udGFjdCB1cyBmb3IgaGVscC4KKyAqLworcHVibGljIGNsYXNzIERpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IgZXh0ZW5kcyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHsKKworICAgIC8qKgorICAgICAqIGEgbGlzdCBvZiBrbm93biB3b3JkcyB0aGF0IGlzIHVzZWQgdG8gZGl2aWRlIHVwIGNvbnRpZ3VvdXMgcmFuZ2VzIG9mIGxldHRlcnMsCisgICAgICogc3RvcmVkIGluIGEgY29tcHJlc3NlZCwgaW5kZXhlZCwgZm9ybWF0IHRoYXQgb2ZmZXJzIGZhc3QgYWNjZXNzCisgICAgICovCisgICAgcHJpdmF0ZSBCcmVha0RpY3Rpb25hcnkgZGljdGlvbmFyeTsKKworICAgIC8qKgorICAgICAqIGEgbGlzdCBvZiBmbGFncyBpbmRpY2F0aW5nIHdoaWNoIGNoYXJhY3RlciBjYXRlZ29yaWVzIGFyZSBjb250YWluZWQgaW4KKyAgICAgKiB0aGUgZGljdGlvbmFyeSBmaWxlICh0aGlzIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHdoaWNoIHJhbmdlcyBvZiBjaGFyYWN0ZXJzCisgICAgICogdG8gYXBwbHkgdGhlIGRpY3Rpb25hcnkgdG8pCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuW10gY2F0ZWdvcnlGbGFnczsKKworICAgIC8qKgorICAgICAqIGEgdGVtcG9yYXJ5IGhpZGluZyBwbGFjZSBmb3IgdGhlIG51bWJlciBvZiBkaWN0aW9uYXJ5IGNoYXJhY3RlcnMgaW4gdGhlCisgICAgICogbGFzdCByYW5nZSBwYXNzZWQgb3ZlciBieSBuZXh0KCkKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBkaWN0aW9uYXJ5Q2hhckNvdW50OworCisgICAgLyoqCisgICAgICogd2hlbiBhIHJhbmdlIG9mIGNoYXJhY3RlcnMgaXMgZGl2aWRlZCB1cCB1c2luZyB0aGUgZGljdGlvbmFyeSwgdGhlIGJyZWFrCisgICAgICogcG9zaXRpb25zIHRoYXQgYXJlIGRpc2NvdmVyZWQgYXJlIHN0b3JlZCBoZXJlLCBwcmV2ZW50aW5nIHVzIGZyb20gaGF2aW5nCisgICAgICogdG8gdXNlIGVpdGhlciB0aGUgZGljdGlvbmFyeSBvciB0aGUgc3RhdGUgdGFibGUgYWdhaW4gdW50aWwgdGhlIGl0ZXJhdG9yCisgICAgICogbGVhdmVzIHRoaXMgcmFuZ2Ugb2YgdGV4dAorICAgICAqLworICAgIHByaXZhdGUgaW50W10gY2FjaGVkQnJlYWtQb3NpdGlvbnM7CisKKyAgICAvKioKKyAgICAgKiBpZiBjYWNoZWRCcmVha1Bvc2l0aW9ucyBpcyBub3QgbnVsbCwgdGhpcyBpbmRpY2F0ZXMgd2hpY2ggaXRlbSBpbiB0aGUKKyAgICAgKiBjYWNoZSB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gcmVmZXJzIHRvCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgcG9zaXRpb25JbkNhY2hlOworCisgICAgLyoqCisgICAgICogU3BlY2lhbCB2YXJpYWJsZSBuYW1lIGZvciBjaGFyYWN0ZXJzIGluIHdvcmRzIGluIGRpY3Rpb25hcnkKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgRElDVElPTkFSWV9WQVIgPSAiX2RpY3Rpb25hcnlfIjsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yLgorICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiBTYW1lIGFzIHRoZSBkZXNjcmlwdGlvbiBwYXJhbWV0ZXIgb24gUnVsZUJhc2VkQnJlYWtJdGVyYXRvciwKKyAgICAgKiBleGNlcHQgZm9yIHRoZSBzcGVjaWFsIG1lYW5pbmcgb2YgRElDVElPTkFSWV9WQVIuICBUaGlzIHBhcmFtZXRlciBpcyBqdXN0CisgICAgICogcGFzc2VkIHRocm91Z2ggdG8gUnVsZUJhc2VkQnJlYWtJdGVyYXRvcidzIGNvbnN0cnVjdG9yLgorICAgICAqIEBwYXJhbSBkaWN0aW9uYXJ5RmlsZW5hbWUgVGhlIGZpbGVuYW1lIG9mIHRoZSBkaWN0aW9uYXJ5IGZpbGUgdG8gdXNlCisgICAgICovCisgICAgcHVibGljIERpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IoU3RyaW5nIGRlc2NyaXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElucHV0U3RyZWFtIGRpY3Rpb25hcnlTdHJlYW0pIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHN1cGVyKGRlc2NyaXB0aW9uKTsKKyAgICAgICAgZGljdGlvbmFyeSA9IG5ldyBCcmVha0RpY3Rpb25hcnkoZGljdGlvbmFyeVN0cmVhbSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIEJ1aWxkZXIgdGhhdCBpcyBjdXN0b21pemVkIHRvIGJ1aWxkIGEgRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvci4KKyAgICAgKiBUaGlzIGlzIHRoZSBzYW1lIGFzIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuQnVpbGRlciwgZXhjZXB0IGZvciB0aGUgZXh0cmEgY29kZQorICAgICAqIHRvIGhhbmRsZSB0aGUgRElDVElPTkFSWV9WQVIgdGFnLgorICAgICAqLworICAgIHByb3RlY3RlZCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLkJ1aWxkZXIgbWFrZUJ1aWxkZXIoKSB7CisgICAgICAgIHJldHVybiBuZXcgQnVpbGRlcigpOworICAgIH0KKworcHVibGljIHZvaWQgd3JpdGVUYWJsZXNUb0ZpbGUoRmlsZU91dHB1dFN0cmVhbSBmaWxlLCBib29sZWFuIGxpdHRsZUVuZGlhbikgdGhyb3dzIElPRXhjZXB0aW9uIHsKK3N1cGVyLndyaXRlVGFibGVzVG9GaWxlKGZpbGUsIGxpdHRsZUVuZGlhbik7CisKK0RhdGFPdXRwdXRTdHJlYW0gb3V0ID0gbmV3IERhdGFPdXRwdXRTdHJlYW0oZmlsZSk7CisKKy8vIC0tLSB3cml0ZSBpbmRleCB0byBmaWVsZHMgKHRoZXJlJ3Mgb25seSBvbmUgZW50cnksIGJ1dCB0aGlzIGFsbG93cyBzdWJjbGFzc2luZyBvZiB0aGlzIGNsYXNzKQord3JpdGVTd2FwcGVkSW50KChzaG9ydCk4LCBvdXQsIGxpdHRsZUVuZGlhbik7Cit3cml0ZVN3YXBwZWRJbnQoKHNob3J0KShjYXRlZ29yeUZsYWdzLmxlbmd0aCArIDMgJiAweDBmKSwgb3V0LCBsaXR0bGVFbmRpYW4pOworCitmb3IgKGludCBpID0gMDsgaSA8IGNhdGVnb3J5RmxhZ3MubGVuZ3RoOyBpKyspCisgICAgb3V0LndyaXRlQm9vbGVhbihjYXRlZ29yeUZsYWdzW2ldKTsKK3N3aXRjaCAoY2F0ZWdvcnlGbGFncy5sZW5ndGggJSA0KSB7CisgICAgY2FzZSAxOiBvdXQud3JpdGUoMCk7CisgICAgY2FzZSAyOiBvdXQud3JpdGUoMCk7CisgICAgY2FzZSAzOiBvdXQud3JpdGUoMCk7CisgICAgZGVmYXVsdDogYnJlYWs7Cit9Cit9CisgICAgCisgICAgcHVibGljIHZvaWQgc2V0VGV4dChDaGFyYWN0ZXJJdGVyYXRvciBuZXdUZXh0KSB7CisgICAgICAgIHN1cGVyLnNldFRleHQobmV3VGV4dCk7CisgICAgICAgIGNhY2hlZEJyZWFrUG9zaXRpb25zID0gbnVsbDsKKyAgICAgICAgZGljdGlvbmFyeUNoYXJDb3VudCA9IDA7CisgICAgICAgIHBvc2l0aW9uSW5DYWNoZSA9IDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dC4KKyAgICAgKiAoaS5lLiwgdGhlIENoYXJhY3Rlckl0ZXJhdG9yJ3Mgc3RhcnRpbmcgb2Zmc2V0KS4KKyAgICAgKiBAcmV0dXJuIFRoZSBvZmZzZXQgb2YgdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGZpcnN0KCkgeworICAgICAgICBjYWNoZWRCcmVha1Bvc2l0aW9ucyA9IG51bGw7CisgICAgICAgIGRpY3Rpb25hcnlDaGFyQ291bnQgPSAwOworICAgICAgICBwb3NpdGlvbkluQ2FjaGUgPSAwOworICAgICAgICByZXR1cm4gc3VwZXIuZmlyc3QoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgZW5kIG9mIHRoZSB0ZXh0LgorICAgICAqIChpLmUuLCB0aGUgQ2hhcmFjdGVySXRlcmF0b3IncyBlbmRpbmcgb2Zmc2V0KS4KKyAgICAgKiBAcmV0dXJuIFRoZSB0ZXh0J3MgcGFzdC10aGUtZW5kIG9mZnNldC4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGxhc3QoKSB7CisgICAgICAgIGNhY2hlZEJyZWFrUG9zaXRpb25zID0gbnVsbDsKKyAgICAgICAgZGljdGlvbmFyeUNoYXJDb3VudCA9IDA7CisgICAgICAgIHBvc2l0aW9uSW5DYWNoZSA9IDA7CisgICAgICAgIHJldHVybiBzdXBlci5sYXN0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWR2YW5jZXMgdGhlIGl0ZXJhdG9yIG9uZSBzdGVwIGJhY2t3YXJkcy4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgbGFzdCBib3VuZGFyeSBwb3NpdGlvbiBiZWZvcmUgdGhlCisgICAgICogY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IHByZXZpb3VzKCkgeworICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciB0ZXh0ID0gZ2V0VGV4dCgpOworCisgICAgICAgIC8vIGlmIHdlIGhhdmUgY2FjaGVkIGJyZWFrIHBvc2l0aW9ucyBhbmQgd2UncmUgc3RpbGwgaW4gdGhlIHJhbmdlCisgICAgICAgIC8vIGNvdmVyZWQgYnkgdGhlbSwganVzdCBtb3ZlIG9uZSBzdGVwIGJhY2t3YXJkIGluIHRoZSBjYWNoZQorICAgICAgICBpZiAoY2FjaGVkQnJlYWtQb3NpdGlvbnMgIT0gbnVsbCAmJiBwb3NpdGlvbkluQ2FjaGUgPiAwKSB7CisgICAgICAgICAgICAtLXBvc2l0aW9uSW5DYWNoZTsKKyAgICAgICAgICAgIHRleHQuc2V0SW5kZXgoY2FjaGVkQnJlYWtQb3NpdGlvbnNbcG9zaXRpb25JbkNhY2hlXSk7CisgICAgICAgICAgICByZXR1cm4gY2FjaGVkQnJlYWtQb3NpdGlvbnNbcG9zaXRpb25JbkNhY2hlXTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIG90aGVyd2lzZSwgZHVtcCB0aGUgY2FjaGUgYW5kIHVzZSB0aGUgaW5oZXJpdGVkIHByZXZpb3VzKCkgbWV0aG9kIHRvIG1vdmUKKyAgICAgICAgLy8gYmFja3dhcmQuICBUaGlzIG1heSBmaWxsIHVwIHRoZSBjYWNoZSB3aXRoIG5ldyBicmVhayBwb3NpdGlvbnMsIGluIHdoaWNoCisgICAgICAgIC8vIGNhc2Ugd2UgaGF2ZSB0byBtYXJrIG91ciBwb3NpdGlvbiBpbiB0aGUgY2FjaGUKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBjYWNoZWRCcmVha1Bvc2l0aW9ucyA9IG51bGw7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gc3VwZXIucHJldmlvdXMoKTsKKyAgICAgICAgICAgIGlmIChjYWNoZWRCcmVha1Bvc2l0aW9ucyAhPSBudWxsKQorICAgICAgICAgICAgICAgIHBvc2l0aW9uSW5DYWNoZSA9IGNhY2hlZEJyZWFrUG9zaXRpb25zLmxlbmd0aCAtIDI7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGxhc3QgYm91bmRhcnkgcG9zaXRpb24KKyAgICAgKiBiZWZvcmUgdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IFRoZSBwb3NpdGlvbiB0byBiZWdpbiBzZWFyY2hpbmcgZnJvbQorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBsYXN0IGJvdW5kYXJ5IGJlZm9yZSAib2Zmc2V0IgorICAgICAqLworICAgIHB1YmxpYyBpbnQgcHJlY2VkaW5nKGludCBvZmZzZXQpIHsKKyAgICAgICAgQ2hhcmFjdGVySXRlcmF0b3IgdGV4dCA9IGdldFRleHQoKTsKKyAgICAgICAgY2hlY2tPZmZzZXQob2Zmc2V0LCB0ZXh0KTsKKworICAgICAgICAvLyBpZiB3ZSBoYXZlIG5vIGNhY2hlZCBicmVhayBwb3NpdGlvbnMsIG9yICJvZmZzZXQiIGlzIG91dHNpZGUgdGhlCisgICAgICAgIC8vIHJhbmdlIGNvdmVyZWQgYnkgdGhlIGNhY2hlLCB3ZSBjYW4ganVzdCBjYWxsIHRoZSBpbmhlcml0ZWQgcm91dGluZQorICAgICAgICAvLyAod2hpY2ggd2lsbCBldmVudHVhbGx5IGNhbGwgb3RoZXIgcm91dGluZXMgaW4gdGhpcyBjbGFzcyB0aGF0IG1heQorICAgICAgICAvLyByZWZyZXNoIHRoZSBjYWNoZSkKKyAgICAgICAgaWYgKGNhY2hlZEJyZWFrUG9zaXRpb25zID09IG51bGwgfHwgb2Zmc2V0IDw9IGNhY2hlZEJyZWFrUG9zaXRpb25zWzBdIHx8CisgICAgICAgICAgICAgICAgb2Zmc2V0ID4gY2FjaGVkQnJlYWtQb3NpdGlvbnNbY2FjaGVkQnJlYWtQb3NpdGlvbnMubGVuZ3RoIC0gMV0pIHsKKyAgICAgICAgICAgIGNhY2hlZEJyZWFrUG9zaXRpb25zID0gbnVsbDsKKyAgICAgICAgICAgIHJldHVybiBzdXBlci5wcmVjZWRpbmcob2Zmc2V0KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIG9uIHRoZSBvdGhlciBoYW5kLCBpZiAib2Zmc2V0IiBpcyB3aXRoaW4gdGhlIHJhbmdlIGNvdmVyZWQgYnkgdGhlIGNhY2hlLAorICAgICAgICAvLyB0aGVuIGFsbCB3ZSBoYXZlIHRvIGRvIGlzIHNlYXJjaCB0aGUgY2FjaGUgZm9yIHRoZSBsYXN0IGJyZWFrIHBvc2l0aW9uCisgICAgICAgIC8vIGJlZm9yZSAib2Zmc2V0IgorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHBvc2l0aW9uSW5DYWNoZSA9IDA7CisgICAgICAgICAgICB3aGlsZSAocG9zaXRpb25JbkNhY2hlIDwgY2FjaGVkQnJlYWtQb3NpdGlvbnMubGVuZ3RoCisgICAgICAgICAgICAgICAgICAgJiYgb2Zmc2V0ID4gY2FjaGVkQnJlYWtQb3NpdGlvbnNbcG9zaXRpb25JbkNhY2hlXSkKKyAgICAgICAgICAgICAgICArK3Bvc2l0aW9uSW5DYWNoZTsKKyAgICAgICAgICAgIC0tcG9zaXRpb25JbkNhY2hlOworICAgICAgICAgICAgdGV4dC5zZXRJbmRleChjYWNoZWRCcmVha1Bvc2l0aW9uc1twb3NpdGlvbkluQ2FjaGVdKTsKKyAgICAgICAgICAgIHJldHVybiB0ZXh0LmdldEluZGV4KCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgZmlyc3QgYm91bmRhcnkgcG9zaXRpb24gYWZ0ZXIKKyAgICAgKiB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLgorICAgICAqIEBwYXJhbSBvZmZzZXQgVGhlIHBvc2l0aW9uIHRvIGJlZ2luIHNlYXJjaGluZyBmb3J3YXJkIGZyb20KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgZmlyc3QgYm91bmRhcnkgYWZ0ZXIgIm9mZnNldCIKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGZvbGxvd2luZyhpbnQgb2Zmc2V0KSB7CisgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIHRleHQgPSBnZXRUZXh0KCk7CisgICAgICAgIGNoZWNrT2Zmc2V0KG9mZnNldCwgdGV4dCk7CisKKyAgICAgICAgLy8gaWYgd2UgaGF2ZSBubyBjYWNoZWQgYnJlYWsgcG9zaXRpb25zLCBvciBpZiAib2Zmc2V0IiBpcyBvdXRzaWRlIHRoZQorICAgICAgICAvLyByYW5nZSBjb3ZlcmVkIGJ5IHRoZSBjYWNoZSwgdGhlbiBkdW1wIHRoZSBjYWNoZSBhbmQgY2FsbCBvdXIKKyAgICAgICAgLy8gaW5oZXJpdGVkIGZvbGxvd2luZygpIG1ldGhvZC4gIFRoaXMgd2lsbCBjYWxsIG90aGVyIG1ldGhvZHMgaW4gdGhpcworICAgICAgICAvLyBjbGFzcyB0aGF0IG1heSByZWZyZXNoIHRoZSBjYWNoZS4KKyAgICAgICAgaWYgKGNhY2hlZEJyZWFrUG9zaXRpb25zID09IG51bGwgfHwgb2Zmc2V0IDwgY2FjaGVkQnJlYWtQb3NpdGlvbnNbMF0gfHwKKyAgICAgICAgICAgICAgICBvZmZzZXQgPj0gY2FjaGVkQnJlYWtQb3NpdGlvbnNbY2FjaGVkQnJlYWtQb3NpdGlvbnMubGVuZ3RoIC0gMV0pIHsKKyAgICAgICAgICAgIGNhY2hlZEJyZWFrUG9zaXRpb25zID0gbnVsbDsKKyAgICAgICAgICAgIHJldHVybiBzdXBlci5mb2xsb3dpbmcob2Zmc2V0KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIG9uIHRoZSBvdGhlciBoYW5kLCBpZiAib2Zmc2V0IiBpcyB3aXRoaW4gdGhlIHJhbmdlIGNvdmVyZWQgYnkgdGhlCisgICAgICAgIC8vIGNhY2hlLCB0aGVuIGp1c3Qgc2VhcmNoIHRoZSBjYWNoZSBmb3IgdGhlIGZpcnN0IGJyZWFrIHBvc2l0aW9uCisgICAgICAgIC8vIGFmdGVyICJvZmZzZXQiCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcG9zaXRpb25JbkNhY2hlID0gMDsKKyAgICAgICAgICAgIHdoaWxlIChwb3NpdGlvbkluQ2FjaGUgPCBjYWNoZWRCcmVha1Bvc2l0aW9ucy5sZW5ndGgKKyAgICAgICAgICAgICAgICAgICAmJiBvZmZzZXQgPj0gY2FjaGVkQnJlYWtQb3NpdGlvbnNbcG9zaXRpb25JbkNhY2hlXSkKKyAgICAgICAgICAgICAgICArK3Bvc2l0aW9uSW5DYWNoZTsKKyAgICAgICAgICAgIHRleHQuc2V0SW5kZXgoY2FjaGVkQnJlYWtQb3NpdGlvbnNbcG9zaXRpb25JbkNhY2hlXSk7CisgICAgICAgICAgICByZXR1cm4gdGV4dC5nZXRJbmRleCgpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBpcyB0aGUgaW1wbGVtZW50YXRpb24gZnVuY3Rpb24gZm9yIG5leHQoKS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZU5leHQoKSB7CisgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIHRleHQgPSBnZXRUZXh0KCk7CisKKyAgICAgICAgLy8gaWYgdGhlcmUgYXJlIG5vIGNhY2hlZCBicmVhayBwb3NpdGlvbnMsIG9yIGlmIHdlJ3ZlIGp1c3QgbW92ZWQKKyAgICAgICAgLy8gb2ZmIHRoZSBlbmQgb2YgdGhlIHJhbmdlIGNvdmVyZWQgYnkgdGhlIGNhY2hlLCB3ZSBoYXZlIHRvIGR1bXAKKyAgICAgICAgLy8gYW5kIHBvc3NpYmx5IHJlZ2VuZXJhdGUgdGhlIGNhY2hlCisgICAgICAgIGlmIChjYWNoZWRCcmVha1Bvc2l0aW9ucyA9PSBudWxsIHx8IHBvc2l0aW9uSW5DYWNoZSA9PSBjYWNoZWRCcmVha1Bvc2l0aW9ucy5sZW5ndGggLSAxKSB7CisKKyAgICAgICAgICAgIC8vIHN0YXJ0IGJ5IHVzaW5nIHRoZSBpbmhlcml0ZWQgaGFuZGxlTmV4dCgpIHRvIGZpbmQgYSB0ZW50YXRpdmUgcmV0dXJuCisgICAgICAgICAgICAvLyB2YWx1ZS4gICBkaWN0aW9uYXJ5Q2hhckNvdW50IHRlbGxzIHVzIGhvdyBtYW55IGRpY3Rpb25hcnkgY2hhcmFjdGVycworICAgICAgICAgICAgLy8gd2UgcGFzc2VkIG92ZXIgb24gb3VyIHdheSB0byB0aGUgdGVudGF0aXZlIHJldHVybiB2YWx1ZQorICAgICAgICAgICAgaW50IHN0YXJ0UG9zID0gdGV4dC5nZXRJbmRleCgpOworICAgICAgICAgICAgZGljdGlvbmFyeUNoYXJDb3VudCA9IDA7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gc3VwZXIuaGFuZGxlTmV4dCgpOworCisgICAgICAgICAgICAvLyBpZiB3ZSBwYXNzZWQgb3ZlciBtb3JlIHRoYW4gb25lIGRpY3Rpb25hcnkgY2hhcmFjdGVyLCB0aGVuIHdlIHVzZQorICAgICAgICAgICAgLy8gZGl2aWRlVXBEaWN0aW9uYXJ5UmFuZ2UoKSB0byByZWdlbmVyYXRlIHRoZSBjYWNoZWQgYnJlYWsgcG9zaXRpb25zCisgICAgICAgICAgICAvLyBmb3IgdGhlIG5ldyByYW5nZQorICAgICAgICAgICAgaWYgKGRpY3Rpb25hcnlDaGFyQ291bnQgPiAxICYmIHJlc3VsdCAtIHN0YXJ0UG9zID4gMSkgeworICAgICAgICAgICAgICAgIGRpdmlkZVVwRGljdGlvbmFyeVJhbmdlKHN0YXJ0UG9zLCByZXN1bHQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBvdGhlcndpc2UsIHRoZSB2YWx1ZSB3ZSBnb3QgYmFjayBmcm9tIHRoZSBpbmhlcml0ZWQgZnVjdGlvbgorICAgICAgICAgICAgLy8gaXMgb3VyIHJldHVybiB2YWx1ZSwgYW5kIHdlIGNhbiBkdW1wIHRoZSBjYWNoZQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgY2FjaGVkQnJlYWtQb3NpdGlvbnMgPSBudWxsOworICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBpZiB0aGUgY2FjaGUgb2YgYnJlYWsgcG9zaXRpb25zIGhhcyBiZWVuIHJlZ2VuZXJhdGVkIChvciBleGlzdGVkIGFsbAorICAgICAgICAvLyBhbG9uZyksIHRoZW4ganVzdCBhZHZhbmNlIHRvIHRoZSBuZXh0IGJyZWFrIHBvc2l0aW9uIGluIHRoZSBjYWNoZQorICAgICAgICAvLyBhbmQgcmV0dXJuIGl0CisgICAgICAgIGlmIChjYWNoZWRCcmVha1Bvc2l0aW9ucyAhPSBudWxsKSB7CisgICAgICAgICAgICArK3Bvc2l0aW9uSW5DYWNoZTsKKyAgICAgICAgICAgIHRleHQuc2V0SW5kZXgoY2FjaGVkQnJlYWtQb3NpdGlvbnNbcG9zaXRpb25JbkNhY2hlXSk7CisgICAgICAgICAgICByZXR1cm4gY2FjaGVkQnJlYWtQb3NpdGlvbnNbcG9zaXRpb25JbkNhY2hlXTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTk5OTk7ICAgLy8gU0hPVUxEIE5FVkVSIEdFVCBIRVJFIQorICAgIH0KKworICAgIC8qKgorICAgICAqIExvb2tzIHVwIGEgY2hhcmFjdGVyIGNhdGVnb3J5IGZvciBhIGNoYXJhY3Rlci4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGxvb2t1cENhdGVnb3J5KGNoYXIgYykgeworICAgICAgICAvLyB0aGlzIG92ZXJyaWRlIG9mIGxvb2t1cENhdGVnb3J5KCkgZXhpc3RzIG9ubHkgdG8ga2VlcCB0cmFjayBvZiB3aGV0aGVyIHdlJ3ZlCisgICAgICAgIC8vIHBhc3NlZCBvdmVyIGFueSBkaWN0aW9uYXJ5IGNoYXJhY3RlcnMuICBJdCBjYWxscyB0aGUgaW5oZXJpdGVkIGxvb2t1cENhdGVnb3J5KCkKKyAgICAgICAgLy8gdG8gZG8gdGhlIHJlYWwgd29yaywgYW5kIHRoZW4gY2hlY2tzIHdoZXRoZXIgaXRzIHJldHVybiB2YWx1ZSBpcyBvbmUgb2YgdGhlCisgICAgICAgIC8vIGNhdGVnb3JpZXMgcmVwcmVzZW50ZWQgaW4gdGhlIGRpY3Rpb25hcnkuICBJZiBpdCBpcywgYnVtcCB0aGUgZGljdGlvbmFyeS0KKyAgICAgICAgLy8gY2hhcmFjdGVyIGNvdW50LgorICAgICAgICBpbnQgcmVzdWx0ID0gc3VwZXIubG9va3VwQ2F0ZWdvcnkoYyk7CisgICAgICAgIGlmIChyZXN1bHQgIT0gUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5JR05PUkUgJiYgY2F0ZWdvcnlGbGFnc1tyZXN1bHRdKSB7CisgICAgICAgICAgICArK2RpY3Rpb25hcnlDaGFyQ291bnQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIHRoZSBmdW5jdGlvbiB0aGF0IGFjdHVhbGx5IGltcGxlbWVudHMgdGhlIGRpY3Rpb25hcnktYmFzZWQKKyAgICAgKiBhbGdvcml0aG0uICBHaXZlbiB0aGUgZW5kcG9pbnRzIG9mIGEgcmFuZ2Ugb2YgdGV4dCwgaXQgdXNlcyB0aGUKKyAgICAgKiBkaWN0aW9uYXJ5IHRvIGRldGVybWluZSB0aGUgcG9zaXRpb25zIG9mIGFueSBib3VuZGFyaWVzIGluIHRoaXMKKyAgICAgKiByYW5nZS4gIEl0IHN0b3JlcyBhbGwgdGhlIGJvdW5kYXJ5IHBvc2l0aW9ucyBpdCBkaXNjb3ZlcnMgaW4KKyAgICAgKiBjYWNoZWRCcmVha1Bvc2l0aW9ucyBzbyB0aGF0IHdlIG9ubHkgaGF2ZSB0byBkbyB0aGlzIHdvcmsgb25jZQorICAgICAqIGZvciBlYWNoIHRpbWUgd2UgZW50ZXIgdGhlIHJhbmdlLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBkaXZpZGVVcERpY3Rpb25hcnlSYW5nZShpbnQgc3RhcnRQb3MsIGludCBlbmRQb3MpIHsKKyAgICAgICAgQ2hhcmFjdGVySXRlcmF0b3IgdGV4dCA9IGdldFRleHQoKTsKKworICAgICAgICAvLyB0aGUgcmFuZ2Ugd2UncmUgZGl2aWRpbmcgbWF5IGJlZ2luIG9yIGVuZCB3aXRoIG5vbi1kaWN0aW9uYXJ5IGNoYXJhY3RlcnMKKyAgICAgICAgLy8gKGkuZS4sIGZvciBsaW5lIGJyZWFraW5nLCB3ZSBtYXkgaGF2ZSBsZWFkaW5nIG9yIHRyYWlsaW5nIHB1bmN0dWF0aW9uCisgICAgICAgIC8vIHRoYXQgbmVlZHMgdG8gYmUga2VwdCB3aXRoIHRoZSB3b3JkKS4gIFNlZWsgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZQorICAgICAgICAvLyByYW5nZSB0byB0aGUgZmlyc3QgZGljdGlvbmFyeSBjaGFyYWN0ZXIKKyAgICAgICAgdGV4dC5zZXRJbmRleChzdGFydFBvcyk7CisgICAgICAgIGNoYXIgYyA9IHRleHQuY3VycmVudCgpOworICAgICAgICBpbnQgY2F0ZWdvcnkgPSBsb29rdXBDYXRlZ29yeShjKTsKKyAgICAgICAgd2hpbGUgKGNhdGVnb3J5ID09IElHTk9SRSB8fCAhY2F0ZWdvcnlGbGFnc1tjYXRlZ29yeV0pIHsKKyAgICAgICAgICAgIGMgPSB0ZXh0Lm5leHQoKTsKKyAgICAgICAgICAgIGNhdGVnb3J5ID0gbG9va3VwQ2F0ZWdvcnkoYyk7CisgICAgICAgIH0KKy8vU3lzdGVtLm91dC5wcmludGxuKCJcbkRpdmlkaW5nIHVwIHJhbmdlIGZyb20gIiArICh0ZXh0LmdldEluZGV4KCkgKyAxKSArICIgdG8gIiArIGVuZFBvcyk7CisKKyAgICAgICAgLy8gaW5pdGlhbGl6ZS4gIFdlIG1haW50YWluIHR3byBzdGFja3M6IGN1cnJlbnRCcmVha1Bvc2l0aW9ucyBjb250YWlucworICAgICAgICAvLyB0aGUgbGlzdCBvZiBicmVhayBwb3NpdGlvbnMgdGhhdCB3aWxsIGJlIHJldHVybmVkIGlmIHdlIHN1Y2Nlc3NmdWxseQorICAgICAgICAvLyBmaW5pc2ggdHJhdmVyc2luZyB0aGUgd2hvbGUgcmFuZ2Ugbm93LiAgcG9zc2libGVCcmVha1Bvc2l0aW9ucyBsaXN0cworICAgICAgICAvLyBhbGwgb3RoZXIgcG9zc2libGUgd29yZCBlbmRzIHdlJ3ZlIHBhc3NlZCBhbG9uZyB0aGUgd2F5LiAgKFdoZW5ldmVyCisgICAgICAgIC8vIHdlIHJlYWNoIGFuIGVycm9yIFthIHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMgdGhhdCBjYW4ndCBiZWdpbiBhbnkgd29yZAorICAgICAgICAvLyBpbiB0aGUgZGljdGlvbmFyeV0sIHdlIGJhY2sgdXAsIHBvc3NpYmx5IGRlbGV0ZSBzb21lIGJyZWFrcyBmcm9tCisgICAgICAgIC8vIGN1cnJlbnRCcmVha1Bvc2l0aW9ucywgbW92ZSBhIGJyZWFrIGZyb20gcG9zc2libGVCcmVha1Bvc2l0aW9ucworICAgICAgICAvLyB0byBjdXJyZW50QnJlYWtQb3NpdGlvbnMsIGFuZCBzdGFydCBvdmVyIGZyb20gdGhlcmUuICBUaGlzIHByb2Nlc3MKKyAgICAgICAgLy8gY29udGludWVzIGluIHRoaXMgd2F5IHVudGlsIHdlIGVpdGhlciBzdWNjZXNzZnVsbHkgbWFrZSBpdCBhbGwgdGhlIHdheQorICAgICAgICAvLyBhY3Jvc3MgdGhlIHJhbmdlLCBvciBleGhhdXN0IGFsbCBvZiBvdXIgY29tYmluYXRpb25zIG9mIGJyZWFrCisgICAgICAgIC8vIHBvc2l0aW9ucy4pCisgICAgICAgIFN0YWNrIGN1cnJlbnRCcmVha1Bvc2l0aW9ucyA9IG5ldyBTdGFjaygpOworICAgICAgICBTdGFjayBwb3NzaWJsZUJyZWFrUG9zaXRpb25zID0gbmV3IFN0YWNrKCk7CisgICAgICAgIFZlY3RvciB3cm9uZ0JyZWFrUG9zaXRpb25zID0gbmV3IFZlY3RvcigpOworCisgICAgICAgIC8vIHRoZSBkaWN0aW9uYXJ5IGlzIGltcGxlbWVudGVkIGFzIGEgdHJpZSwgd2hpY2ggaXMgdHJlYXRlZCBhcyBhIHN0YXRlCisgICAgICAgIC8vIG1hY2hpbmUuICAtMSByZXByZXNlbnRzIHRoZSBlbmQgb2YgYSBsZWdhbCB3b3JkLiAgRXZlcnkgd29yZCBpbiB0aGUKKyAgICAgICAgLy8gZGljdGlvbmFyeSBpcyByZXByZXNlbnRlZCBieSBhIHBhdGggZnJvbSB0aGUgcm9vdCBub2RlIHRvIC0xLiAgQSBwYXRoCisgICAgICAgIC8vIHRoYXQgZW5kcyBpbiBzdGF0ZSAwIGlzIGFuIGlsbGVnYWwgY29tYmluYXRpb24gb2YgY2hhcmFjdGVycy4KKyAgICAgICAgaW50IHN0YXRlID0gMDsKKworICAgICAgICAvLyB0aGVzZSB0d28gdmFyaWFibGVzIGFyZSB1c2VkIGZvciBlcnJvciBoYW5kbGluZy4gIFdlIGtlZXAgdHJhY2sgb2YgdGhlCisgICAgICAgIC8vIGZhcnRoZXN0IHdlJ3ZlIGdvdHRlbiB0aHJvdWdoIHRoZSByYW5nZSBiZWluZyBkaXZpZGVkLCBhbmQgdGhlIGNvbWJpbmF0aW9uCisgICAgICAgIC8vIG9mIGJyZWFrcyB0aGF0IGdvdCB1cyB0aGF0IGZhci4gIElmIHdlIHVzZSB1cCBhbGwgcG9zc2libGUgYnJlYWsKKyAgICAgICAgLy8gY29tYmluYXRpb25zLCB0aGUgdGV4dCBjb250YWlucyBhbiBlcnJvciBvciBhIHdvcmQgdGhhdCdzIG5vdCBpbiB0aGUKKyAgICAgICAgLy8gZGljdGlvbmFyeS4gIEluIHRoaXMgY2FzZSwgd2UgImJsZXNzIiB0aGUgYnJlYWsgcG9zaXRpb25zIHRoYXQgZ290IHVzIHRoZQorICAgICAgICAvLyBmYXJ0aGVzdCBhcyByZWFsIGJyZWFrIHBvc2l0aW9ucywgYW5kIHRoZW4gc3RhcnQgb3ZlciBmcm9tIHNjcmF0Y2ggd2l0aAorICAgICAgICAvLyB0aGUgY2hhcmFjdGVyIHdoZXJlIHRoZSBlcnJvciBvY2N1cnJlZC4KKyAgICAgICAgaW50IGZhcnRoZXN0RW5kUG9pbnQgPSB0ZXh0LmdldEluZGV4KCk7CisgICAgICAgIFN0YWNrIGJlc3RCcmVha1Bvc2l0aW9ucyA9IG51bGw7CisKKyAgICAgICAgLy8gaW5pdGlhbGl6ZSAod2UgYWx3YXlzIGV4aXQgdGhlIGxvb3Agd2l0aCBhIGJyZWFrIHN0YXRlbWVudCkKKyAgICAgICAgYyA9IHRleHQuY3VycmVudCgpOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworLy9TeXN0ZW0ub3V0LnByaW50KCJjID0gIiArIEludGVnZXIudG9TdHJpbmcoYywgMTYpICsgIiwgcG9zID0gIiArIHRleHQuZ2V0SW5kZXgoKSk7CisKKyAgICAgICAgICAgIC8vIGlmIHdlIGNhbiB0cmFuc2l0aW9uIHRvIHN0YXRlICItMSIgZnJvbSBvdXIgY3VycmVudCBzdGF0ZSwgd2UncmUKKyAgICAgICAgICAgIC8vIG9uIHRoZSBsYXN0IGNoYXJhY3RlciBvZiBhIGxlZ2FsIHdvcmQuICBQdXNoIHRoYXQgcG9zaXRpb24gb250bworICAgICAgICAgICAgLy8gdGhlIHBvc3NpYmxlLWJyZWFrLXBvc2l0aW9ucyBzdGFjaworICAgICAgICAgICAgaWYgKGRpY3Rpb25hcnkuYXQoc3RhdGUsIDApID09IC0xKSB7CisgICAgICAgICAgICAgICAgcG9zc2libGVCcmVha1Bvc2l0aW9ucy5wdXNoKG5ldyBJbnRlZ2VyKHRleHQuZ2V0SW5kZXgoKSkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBsb29rIHVwIHRoZSBuZXcgc3RhdGUgdG8gdHJhbnNpdGlvbiB0byBpbiB0aGUgZGljdGlvbmFyeQorICAgICAgICAgICAgc3RhdGUgPSAoZGljdGlvbmFyeS5hdChzdGF0ZSwgYykpICYgMHhGRkZGOworLy9TeXN0ZW0ub3V0LnByaW50KCIsIHN0YXRlID0gIiArIHN0YXRlKTsKKworICAgICAgICAgICAgLy8gaWYgdGhlIGNoYXJhY3RlciB3ZSdyZSBzaXR0aW5nIG9uIGNhdXNlcyB1cyB0byB0cmFuc2l0aW9uIHRvCisgICAgICAgICAgICAvLyB0aGUgImVuZCBvZiB3b3JkIiBzdGF0ZSwgdGhlbiBpdCB3YXMgYSBub24tZGljdGlvbmFyeSBjaGFyYWN0ZXIKKyAgICAgICAgICAgIC8vIGFuZCB3ZSd2ZSBzdWNjZXNzZnVsbHkgdHJhdmVyc2VkIHRoZSB3aG9sZSByYW5nZS4gIERyb3Agb3V0CisgICAgICAgICAgICAvLyBvZiB0aGUgbG9vcC4KKyAgICAgICAgICAgIGlmIChzdGF0ZSA9PSAvKi0xKi8gMHhGRkZGKSB7CisgICAgICAgICAgICAgICAgY3VycmVudEJyZWFrUG9zaXRpb25zLnB1c2gobmV3IEludGVnZXIodGV4dC5nZXRJbmRleCgpKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGlmIHRoZSBjaGFyYWN0ZXIgd2UncmUgc2l0dGluZyBvbiBjYXVzZXMgdXMgdG8gdHJhbnNpdGlvbiB0bworICAgICAgICAgICAgLy8gdGhlIGVycm9yIHN0YXRlLCBvciBpZiB3ZSd2ZSBnb25lIG9mZiB0aGUgZW5kIG9mIHRoZSByYW5nZQorICAgICAgICAgICAgLy8gd2l0aG91dCB0cmFuc2l0aW9uaW5nIHRvIHRoZSAiZW5kIG9mIHdvcmQiIHN0YXRlLCB3ZSd2ZSBoaXQKKyAgICAgICAgICAgIC8vIGFuIGVycm9yLi4uCisgICAgICAgICAgICBlbHNlIGlmIChzdGF0ZSA9PSAwIHx8IHRleHQuZ2V0SW5kZXgoKSA+PSBlbmRQb3MpIHsKKworICAgICAgICAgICAgICAgIC8vIGlmIHRoaXMgaXMgdGhlIGZhcnRoZXN0IHdlJ3ZlIGdvdHRlbiwgdGFrZSBub3RlIG9mIGl0IGluCisgICAgICAgICAgICAgICAgLy8gY2FzZSB0aGVyZSdzIGFuIGVycm9yIGluIHRoZSB0ZXh0CisgICAgICAgICAgICAgICAgaWYgKHRleHQuZ2V0SW5kZXgoKSA+IGZhcnRoZXN0RW5kUG9pbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgZmFydGhlc3RFbmRQb2ludCA9IHRleHQuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgICAgICAgICAgYmVzdEJyZWFrUG9zaXRpb25zID0gKFN0YWNrKShjdXJyZW50QnJlYWtQb3NpdGlvbnMuY2xvbmUoKSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gd3JvbmdCcmVha1Bvc2l0aW9ucyBpcyBhIGxpc3Qgb2YgYWxsIGJyZWFrIHBvc2l0aW9ucyB3ZSd2ZSB0cmllZCBzdGFydGluZworICAgICAgICAgICAgICAgIC8vIHRoYXQgZGlkbid0IGFsbG93IHVzIHRvIHRyYXZlcnNlIGFsbCB0aGUgd2F5IHRocm91Z2ggdGhlIHRleHQuICBFdmVyeSB0aW1lCisgICAgICAgICAgICAgICAgLy8gd2UgcG9wIGEgYnJlYWsgcG9zaXRpb24gb2ZmIG9mIGN1cnJlbnRCcmVha1Bvc2l0aW9ucywgd2UgcHV0IGl0IGludG8KKyAgICAgICAgICAgICAgICAvLyB3cm9uZ0JyZWFrUG9zaXRpb25zIHRvIGF2b2lkIHRyeWluZyBpdCBhZ2FpbiBsYXRlci4gIElmIHdlIG1ha2UgaXQgdG8gdGhpcworICAgICAgICAgICAgICAgIC8vIHNwb3QsIHdlJ3JlIGVpdGhlciBnb2luZyB0byBiYWNrIHVwIHRvIGEgYnJlYWsgaW4gcG9zc2libGVCcmVha1Bvc2l0aW9ucworICAgICAgICAgICAgICAgIC8vIGFuZCB0cnkgc3RhcnRpbmcgb3ZlciBmcm9tIHRoZXJlLCBvciB3ZSd2ZSBleGhhdXN0ZWQgYWxsIHBvc3NpYmxlIGJyZWFrCisgICAgICAgICAgICAgICAgLy8gcG9zaXRpb25zIGFuZCBhcmUgZ29pbmcgdG8gZG8gdGhlIGZhbGxiYWNrIHByb2NlZHVyZS4gIFRoaXMgbG9vcCBwcmV2ZW50cworICAgICAgICAgICAgICAgIC8vIHVzIGZyb20gbWVzc2luZyB3aXRoIGFueXRoaW5nIGluIHBvc3NpYmxlQnJlYWtQb3NpdGlvbnMgdGhhdCBkaWRuJ3Qgd29yayBhcworICAgICAgICAgICAgICAgIC8vIGEgc3RhcnRpbmcgcG9pbnQgdGhlIGxhc3QgdGltZSB3ZSB0cmllZCBpdCAodGhpcyBpcyB0byBwcmV2ZW50IGEgYnVuY2ggb2YKKyAgICAgICAgICAgICAgICAvLyByZXBldGl0aXZlIGNoZWNrcyBmcm9tIHNsb3dpbmcgZG93biBzb21lIGV4dHJlbWUgY2FzZXMpCisgICAgICAgICAgICAgICAgLy8gdmFyaWFibGUgbm90IHVzZWQgSW50ZWdlciBuZXdTdGFydGluZ1Nwb3QgPSBudWxsOworICAgICAgICAgICAgICAgIHdoaWxlICghcG9zc2libGVCcmVha1Bvc2l0aW9ucy5pc0VtcHR5KCkgJiYgd3JvbmdCcmVha1Bvc2l0aW9ucy5jb250YWlucygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NzaWJsZUJyZWFrUG9zaXRpb25zLnBlZWsoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcG9zc2libGVCcmVha1Bvc2l0aW9ucy5wb3AoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gaWYgd2UndmUgdXNlZCB1cCBhbGwgcG9zc2libGUgYnJlYWstcG9zaXRpb24gY29tYmluYXRpb25zLCB0aGVyZSdzCisgICAgICAgICAgICAgICAgLy8gYW4gZXJyb3Igb3IgYW4gdW5rbm93biB3b3JkIGluIHRoZSB0ZXh0LiAgSW4gdGhpcyBjYXNlLCB3ZSBzdGFydAorICAgICAgICAgICAgICAgIC8vIG92ZXIsIHRyZWF0aW5nIHRoZSBmYXJ0aGVzdCBjaGFyYWN0ZXIgd2UndmUgcmVhY2hlZCBhcyB0aGUgYmVnaW5uaW5nCisgICAgICAgICAgICAgICAgLy8gb2YgdGhlIHJhbmdlLCBhbmQgImJsZXNzaW5nIiB0aGUgYnJlYWsgcG9zaXRpb25zIHRoYXQgZ290IHVzIHRoYXQKKyAgICAgICAgICAgICAgICAvLyBmYXIgYXMgcmVhbCBicmVhayBwb3NpdGlvbnMKKyAgICAgICAgICAgICAgICBpZiAocG9zc2libGVCcmVha1Bvc2l0aW9ucy5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGJlc3RCcmVha1Bvc2l0aW9ucyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50QnJlYWtQb3NpdGlvbnMgPSBiZXN0QnJlYWtQb3NpdGlvbnM7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmFydGhlc3RFbmRQb2ludCA8IGVuZFBvcykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQuc2V0SW5kZXgoZmFydGhlc3RFbmRQb2ludCArIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKGN1cnJlbnRCcmVha1Bvc2l0aW9ucy5zaXplKCkgPT0gMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAoKEludGVnZXIpKGN1cnJlbnRCcmVha1Bvc2l0aW9ucy5wZWVrKCkpKS5pbnRWYWx1ZSgpICE9IHRleHQuZ2V0SW5kZXgoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgdGV4dC5nZXRJbmRleCgpICE9IHN0YXJ0UG9zKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEJyZWFrUG9zaXRpb25zLnB1c2gobmV3IEludGVnZXIodGV4dC5nZXRJbmRleCgpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRCcmVha1Bvc2l0aW9ucy5wdXNoKG5ldyBJbnRlZ2VyKHRleHQuZ2V0SW5kZXgoKSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gaWYgd2Ugc3RpbGwgaGF2ZSBtb3JlIGJyZWFrIHBvc2l0aW9ucyB3ZSBjYW4gdHJ5LCB0aGVuIHByb21vdGUgdGhlCisgICAgICAgICAgICAgICAgLy8gbGFzdCBicmVhayBpbiBwb3NzaWJsZUJyZWFrUG9zaXRpb25zIGludG8gY3VycmVudEJyZWFrUG9zaXRpb25zLAorICAgICAgICAgICAgICAgIC8vIGFuZCBnZXQgcmlkIG9mIGFsbCBlbnRyaWVzIGluIGN1cnJlbnRCcmVha1Bvc2l0aW9ucyB0aGF0IGNvbWUgYWZ0ZXIKKyAgICAgICAgICAgICAgICAvLyBpdC4gIFRoZW4gYmFjayB1cCB0byB0aGF0IHBvc2l0aW9uIGFuZCBzdGFydCBvdmVyIGZyb20gdGhlcmUgKGkuZS4sCisgICAgICAgICAgICAgICAgLy8gdHJlYXQgdGhhdCBwb3NpdGlvbiBhcyB0aGUgYmVnaW5uaW5nIG9mIGEgbmV3IHdvcmQpCisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIEludGVnZXIgdGVtcCA9IChJbnRlZ2VyKXBvc3NpYmxlQnJlYWtQb3NpdGlvbnMucG9wKCk7CisgICAgICAgICAgICAgICAgICAgIE9iamVjdCB0ZW1wMiA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlICghY3VycmVudEJyZWFrUG9zaXRpb25zLmlzRW1wdHkoKSAmJiB0ZW1wLmludFZhbHVlKCkgPAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKChJbnRlZ2VyKWN1cnJlbnRCcmVha1Bvc2l0aW9ucy5wZWVrKCkpLmludFZhbHVlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlbXAyID0gY3VycmVudEJyZWFrUG9zaXRpb25zLnBvcCgpOworICAgICAgICAgICAgICAgICAgICAgICAgd3JvbmdCcmVha1Bvc2l0aW9ucy5hZGRFbGVtZW50KHRlbXAyKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjdXJyZW50QnJlYWtQb3NpdGlvbnMucHVzaCh0ZW1wKTsKKyAgICAgICAgICAgICAgICAgICAgdGV4dC5zZXRJbmRleCgoKEludGVnZXIpY3VycmVudEJyZWFrUG9zaXRpb25zLnBlZWsoKSkuaW50VmFsdWUoKSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gcmUtc3luYyAiYyIgZm9yIHRoZSBuZXh0IGdvLXJvdW5kLCBhbmQgZHJvcCBvdXQgb2YgdGhlIGxvb3AgaWYKKyAgICAgICAgICAgICAgICAvLyB3ZSd2ZSBtYWRlIGl0IG9mZiB0aGUgZW5kIG9mIHRoZSByYW5nZQorICAgICAgICAgICAgICAgIGMgPSB0ZXh0LmN1cnJlbnQoKTsKKyAgICAgICAgICAgICAgICBzdGF0ZSA9IDA7CisgICAgICAgICAgICAgICAgaWYgKHRleHQuZ2V0SW5kZXgoKSA+PSBlbmRQb3MpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBpZiB3ZSBkaWRuJ3QgaGl0IGFueSBleGNlcHRpb25hbCBjb25kaXRpb25zIG9uIHRoaXMgbGFzdCBpdGVyYXRpb24sCisgICAgICAgICAgICAvLyBqdXN0IGFkdmFuY2UgdG8gdGhlIG5leHQgY2hhcmFjdGVyIGFuZCBsb29wCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBjID0gdGV4dC5uZXh0KCk7CisgICAgICAgICAgICB9CisvL1N5c3RlbS5vdXQucHJpbnQoIiwgcG9zc2libGVCcmVha1Bvc2l0aW9ucyA9IHsgIik7IGZvciAoaW50IGkgPSAwOyBpIDwgcG9zc2libGVCcmVha1Bvc2l0aW9ucy5zaXplKCk7IGkrKykgU3lzdGVtLm91dC5wcmludChwb3NzaWJsZUJyZWFrUG9zaXRpb25zLmVsZW1lbnRBdChpKSArICIgIik7IFN5c3RlbS5vdXQucHJpbnQoIn0iKTsKKy8vU3lzdGVtLm91dC5wcmludCgiLCBjdXJyZW50QnJlYWtQb3NpdGlvbnMgPSB7ICIpOyBmb3IgKGludCBpID0gMDsgaSA8IGN1cnJlbnRCcmVha1Bvc2l0aW9ucy5zaXplKCk7IGkrKykgU3lzdGVtLm91dC5wcmludChjdXJyZW50QnJlYWtQb3NpdGlvbnMuZWxlbWVudEF0KGkpICsgIiAiKTsgU3lzdGVtLm91dC5wcmludGxuKCJ9Iik7CisgICAgICAgIH0KKworICAgICAgICAvLyBkdW1wIHRoZSBsYXN0IGJyZWFrIHBvc2l0aW9uIGluIHRoZSBsaXN0LCBhbmQgcmVwbGFjZSBpdCB3aXRoIHRoZSBhY3R1YWwKKyAgICAgICAgLy8gZW5kIG9mIHRoZSByYW5nZSAod2hpY2ggbWF5IGJlIHRoZSBzYW1lIGNoYXJhY3Rlciwgb3IgbWF5IGJlIGZ1cnRoZXIgb24KKyAgICAgICAgLy8gYmVjYXVzZSB0aGUgcmFuZ2UgYWN0dWFsbHkgZW5kZWQgd2l0aCBub24tZGljdGlvbmFyeSBjaGFyYWN0ZXJzIHdlIHdhbnQgdG8KKyAgICAgICAgLy8ga2VlcCB3aXRoIHRoZSB3b3JkKQorICAgICAgICBpZiAoIWN1cnJlbnRCcmVha1Bvc2l0aW9ucy5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIGN1cnJlbnRCcmVha1Bvc2l0aW9ucy5wb3AoKTsKKyAgICAgICAgfQorICAgICAgICBjdXJyZW50QnJlYWtQb3NpdGlvbnMucHVzaChuZXcgSW50ZWdlcihlbmRQb3MpKTsKKworICAgICAgICAvLyBjcmVhdGUgYSByZWd1bGFyIGFycmF5IHRvIGhvbGQgdGhlIGJyZWFrIHBvc2l0aW9ucyBhbmQgY29weQorICAgICAgICAvLyB0aGUgYnJlYWsgcG9zaXRpb25zIGZyb20gdGhlIHN0YWNrIHRvIHRoZSBhcnJheSAoaW4gYWRkaXRpb24sCisgICAgICAgIC8vIG91ciBzdGFydGluZyBwb3NpdGlvbiBnb2VzIGludG8gdGhpcyBhcnJheSBhcyBhIGJyZWFrIHBvc2l0aW9uKS4KKyAgICAgICAgLy8gVGhpcyBhcnJheSBiZWNvbWVzIHRoZSBjYWNoZSBvZiBicmVhayBwb3NpdGlvbnMgdXNlZCBieSBuZXh0KCkKKyAgICAgICAgLy8gYW5kIHByZXZpb3VzKCksIHNvIHRoaXMgaXMgd2hlcmUgd2UgYWN0dWFsbHkgcmVmcmVzaCB0aGUgY2FjaGUuCisgICAgICAgIGNhY2hlZEJyZWFrUG9zaXRpb25zID0gbmV3IGludFtjdXJyZW50QnJlYWtQb3NpdGlvbnMuc2l6ZSgpICsgMV07CisgICAgICAgIGNhY2hlZEJyZWFrUG9zaXRpb25zWzBdID0gc3RhcnRQb3M7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjdXJyZW50QnJlYWtQb3NpdGlvbnMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgIGNhY2hlZEJyZWFrUG9zaXRpb25zW2kgKyAxXSA9ICgoSW50ZWdlciljdXJyZW50QnJlYWtQb3NpdGlvbnMuZWxlbWVudEF0KGkpKS5pbnRWYWx1ZSgpOworICAgICAgICB9CisgICAgICAgIHBvc2l0aW9uSW5DYWNoZSA9IDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlIEJ1aWxkZXIgY2xhc3MgZm9yIERpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IgaW5oZXJpdHMgYWxtb3N0IGFsbCBvZgorICAgICAqIGl0cyBmdW5jdGlvbmFsaXR5IGZyb20gdGhlIEJ1aWxkZXIgY2xhc3MgZm9yIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IsIGJ1dAorICAgICAqIGV4dGVuZHMgaXQgd2l0aCBleHRyYSBsb2dpYyB0byBoYW5kbGUgdGhlIERJQ1RJSU9OQVJZX1ZBUiB0b2tlbgorICAgICAqLworICAgIHByb3RlY3RlZCBjbGFzcyBCdWlsZGVyIGV4dGVuZHMgUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5CdWlsZGVyIHsKKworICAgICAgICAvKioKKyAgICAgICAgICogQSBVbmljb2RlU2V0IHRoYXQgY29udGFpbnMgYWxsIHRoZSBjaGFyYWN0ZXJzIHJlcHJlc2VudGVkIGluIHRoZSBkaWN0aW9uYXJ5CisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIFVuaWNvZGVTZXQgZGljdGlvbmFyeUNoYXJzID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgZGljdGlvbmFyeUV4cHJlc3Npb24gPSAiIjsKKworICAgICAgICAvKioKKyAgICAgICAgICogTm8gc3BlY2lhbCBpbml0aWFsaXphdGlvbgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIEJ1aWxkZXIoKSB7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogV2Ugb3ZlcnJpZGUgaGFuZGxlU3BlY2lhbFN1YnN0aXR1dGlvbigpIHRvIGFkZCBsb2dpYyB0byBoYW5kbGUKKyAgICAgICAgICogdGhlICRkaWN0aW9uYXJ5IHRhZy4gIElmIHdlIHNlZSBhIHN1YnN0aXR1dGlvbiBuYW1lZCBESUNUSU9OQVJZX1ZBUiwKKyAgICAgICAgICogcGFyc2UgdGhlIHN1YnN0aXR1dGlvbiBleHByZXNzaW9uIGFuZCBzdG9yZSB0aGUgcmVzdWx0IGluCisgICAgICAgICAqIGRpY3Rpb25hcnlDaGFycy4KKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVNwZWNpYWxTdWJzdGl0dXRpb24oU3RyaW5nIHJlcGxhY2UsIFN0cmluZyByZXBsYWNlV2l0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnRQb3MsIFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICAgICAgc3VwZXIuaGFuZGxlU3BlY2lhbFN1YnN0aXR1dGlvbihyZXBsYWNlLCByZXBsYWNlV2l0aCwgc3RhcnRQb3MsIGRlc2NyaXB0aW9uKTsKKworICAgICAgICAgICAgaWYgKHJlcGxhY2UuZXF1YWxzKERJQ1RJT05BUllfVkFSKSkgeworICAgICAgICAgICAgICAgIGlmIChyZXBsYWNlV2l0aC5jaGFyQXQoMCkgPT0gJygnKSB7CisgICAgICAgICAgICAgICAgICAgIGVycm9yKCJEaWN0aW9uYXJ5IGdyb3VwIGNhbid0IGJlIGVuY2xvc2VkIGluICgiLCBzdGFydFBvcywgZGVzY3JpcHRpb24pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBkaWN0aW9uYXJ5RXhwcmVzc2lvbiA9IHJlcGxhY2VXaXRoOworICAgICAgICAgICAgICAgIGRpY3Rpb25hcnlDaGFycyA9IG5ldyBVbmljb2RlU2V0KHJlcGxhY2VXaXRoLCBmYWxzZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIG90aGVyIGhhbGYgb2YgdGhlIGxvZ2ljIHRvIGhhbmRsZSB0aGUgZGljdGlvbmFyeSBjaGFyYWN0ZXJzIGhhcHBlbnMgaGVyZS4KKyAgICAgICAgICogQWZ0ZXIgdGhlIGluaGVyaXRlZCBidWlsZGVyIGhhcyBkZXJpdmVkIHRoZSByZWFsIGNoYXJhY3RlciBjYXRlZ29yaWVzLCB3ZQorICAgICAgICAgKiBzZXQgdXAgdGhlIGNhdGVnb3J5RmxhZ3MgYXJyYXkgaW4gdGhlIGl0ZXJhdG9yLiAgVGhpcyBhcnJheSBjb250YWlucyAidHJ1ZSIKKyAgICAgICAgICogZm9yIGV2ZXJ5IGNoYXJhY3RlciBjYXRlZ29yeSB0aGF0IGluY2x1ZGVzIGEgZGljdGlvbmFyeSBjaGFyYWN0ZXIuCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgdm9pZCBidWlsZENoYXJDYXRlZ29yaWVzKFZlY3RvciB0ZW1wUnVsZUxpc3QpIHsKKyAgICAgICAgICAgIHN1cGVyLmJ1aWxkQ2hhckNhdGVnb3JpZXModGVtcFJ1bGVMaXN0KTsKKworICAgICAgICAgICAgY2F0ZWdvcnlGbGFncyA9IG5ldyBib29sZWFuW2NhdGVnb3JpZXMuc2l6ZSgpXTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2F0ZWdvcmllcy5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgY3MgPSAoVW5pY29kZVNldCljYXRlZ29yaWVzLmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBjcy5yZXRhaW5BbGwoZGljdGlvbmFyeUNoYXJzKTsKKyAgICAgICAgICAgICAgICBpZiAoIWNzLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeUZsYWdzW2ldID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIGFjdHVhbGx5IGNhbGxlZCBieSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLmJ1aWxkQ2hhckNhdGVnb3JpZXMoKSwKKyAgICAgICAgLy8gd2hpY2ggaXMgY2FsbGVkIGJ5IHRoZSBmdW5jdGlvbiBhYm92ZS4gIFRoaXMgZ2l2ZXMgdXMgYSB3YXkgdG8gY3JlYXRlIGEgc2VwYXJhdGUKKyAgICAgICAgLy8gY2hhcmFjdGVyIGNhdGVnb3J5IGZvciB0aGUgZGljdGlvbmFyeSBjaGFyYWN0ZXJzIGV2ZW4gd2hlbiBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yCisgICAgICAgIC8vIGlzbid0IG1ha2luZyBhIGRpc3RpbmN0aW9uCisgICAgICAgIHByb3RlY3RlZCB2b2lkIG11bmdlRXhwcmVzc2lvbkxpc3QoSGFzaHRhYmxlIGV4cHJlc3Npb25zKSB7CisgICAgICAgICAgICBleHByZXNzaW9ucy5wdXQoZGljdGlvbmFyeUV4cHJlc3Npb24sIGRpY3Rpb25hcnlDaGFycyk7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9EaWdpdExpc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RpZ2l0TGlzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmYwN2NmMjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9EaWdpdExpc3QuamF2YQpAQCAtMCwwICsxLDc0MSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L3RleHQvRGlnaXRMaXN0LmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6MDcgJCAKKyAqICRSZXZpc2lvbjogMS45ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS5tYXRoLkJpZ0ludGVnZXI7CisKKy8qKgorICogPGNvZGU+RGlnaXRMaXN0PC9jb2RlPiBoYW5kbGVzIHRoZSB0cmFuc2NvZGluZyBiZXR3ZWVuIG51bWVyaWMgdmFsdWVzIGFuZAorICogc3RyaW5ncyBvZiBjaGFyYWN0ZXJzLiAgSXQgb25seSByZXByZXNlbnRzIG5vbi1uZWdhdGl2ZSBudW1iZXJzLiAgVGhlCisgKiBkaXZpc2lvbiBvZiBsYWJvciBiZXR3ZWVuIDxjb2RlPkRpZ2l0TGlzdDwvY29kZT4gYW5kCisgKiA8Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPiBpcyB0aGF0IDxjb2RlPkRpZ2l0TGlzdDwvY29kZT4gaGFuZGxlcyB0aGUgcmFkaXgKKyAqIDEwIHJlcHJlc2VudGF0aW9uIGlzc3VlcyBhbmQgbnVtZXJpYyBjb252ZXJzaW9uLCBpbmNsdWRpbmcgcm91bmRpbmc7CisgKiA8Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPiBoYW5kbGVzIHRoZSBsb2NhbGUtc3BlY2lmaWMgaXNzdWVzIHN1Y2ggYXMKKyAqIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSByZXByZXNlbnRhdGlvbiwgZGlnaXQgZ3JvdXBpbmcsIGRlY2ltYWwgcG9pbnQsCisgKiBjdXJyZW5jeSwgYW5kIHNvIG9uLgorICoKKyAqIDxwPkEgPGNvZGU+RGlnaXRMaXN0PC9jb2RlPiBpcyBhIHJlcHJlc2VudGF0aW9uIG9mIGEgZmluaXRlIG51bWVyaWMgdmFsdWUuCisgKiA8Y29kZT5EaWdpdExpc3Q8L2NvZGU+IG9iamVjdHMgZG8gbm90IHJlcHJlc2VudCA8Y29kZT5OYU48L2NvZGU+IG9yIGluZmluaXRlCisgKiB2YWx1ZXMuICBBIDxjb2RlPkRpZ2l0TGlzdDwvY29kZT4gdmFsdWUgY2FuIGJlIGNvbnZlcnRlZCB0byBhCisgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aXRob3V0IGxvc3Mgb2YgcHJlY2lzaW9uLiAgQ29udmVyc2lvbiB0byBvdGhlcgorICogbnVtZXJpYyBmb3JtYXRzIG1heSBpbnZvbHZlIGxvc3Mgb2YgcHJlY2lzaW9uLCBkZXBlbmRpbmcgb24gdGhlIHNwZWNpZmljCisgKiB2YWx1ZS4KKyAqCisgKiA8cD5UaGUgPGNvZGU+RGlnaXRMaXN0PC9jb2RlPiByZXByZXNlbnRhdGlvbiBjb25zaXN0cyBvZiBhIHN0cmluZyBvZgorICogY2hhcmFjdGVycywgd2hpY2ggYXJlIHRoZSBkaWdpdHMgcmFkaXggMTAsIGZyb20gJzAnIHRvICc5Jy4gIEl0IGFsc28gaGFzIGEKKyAqIGJhc2UgMTAgZXhwb25lbnQgYXNzb2NpYXRlZCB3aXRoIGl0LiAgVGhlIHZhbHVlIHJlcHJlc2VudGVkIGJ5IGEKKyAqIDxjb2RlPkRpZ2l0TGlzdDwvY29kZT4gb2JqZWN0IGNhbiBiZSBjb21wdXRlZCBieSBtdWxpdHBseWluZyB0aGUgZnJhY3Rpb24KKyAqIDxlbT5mPC9lbT4sIHdoZXJlIDAgPD0gPGVtPmY8L2VtPiA8IDEsIGRlcml2ZWQgYnkgcGxhY2luZyBhbGwgdGhlIGRpZ2l0cyBvZgorICogdGhlIGxpc3QgdG8gdGhlIHJpZ2h0IG9mIHRoZSBkZWNpbWFsIHBvaW50LCBieSAxMF5leHBvbmVudC4KKyAqCisgKiBAc2VlIGphdmEudXRpbC5Mb2NhbGUKKyAqIEBzZWUgamF2YS50ZXh0LkZvcm1hdAorICogQHNlZSBOdW1iZXJGb3JtYXQKKyAqIEBzZWUgRGVjaW1hbEZvcm1hdAorICogQHNlZSBqYXZhLnRleHQuQ2hvaWNlRm9ybWF0CisgKiBAc2VlIGphdmEudGV4dC5NZXNzYWdlRm9ybWF0CisgKiBAdmVyc2lvbiAgICAgIDEuMTggMDgvMTIvOTgKKyAqIEBhdXRob3IgICAgICAgTWFyayBEYXZpcywgQWxhbiBMaXUKKyAqICovCitmaW5hbCBjbGFzcyBEaWdpdExpc3QgaW1wbGVtZW50cyBDbG9uZWFibGUgeworICAgIC8qKgorICAgICAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBzaWduaWZpY2FudCBkaWdpdHMgaW4gYW4gSUVFRSA3NTQgZG91YmxlLCB0aGF0CisgICAgICogaXMsIGluIGEgSmF2YSBkb3VibGUuICBUaGlzIG11c3Qgbm90IGJlIGluY3JlYXNlZCwgb3IgZ2FyYmFnZSBkaWdpdHMKKyAgICAgKiB3aWxsIGJlIGdlbmVyYXRlZCwgYW5kIHNob3VsZCBub3QgYmUgZGVjcmVhc2VkLCBvciBhY2N1cmFjeSB3aWxsIGJlIGxvc3QuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0xPTkdfRElHSVRTID0gMTk7IC8vID09IExvbmcudG9TdHJpbmcoTG9uZy5NQVhfVkFMVUUpLmxlbmd0aCgpCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgREJMX0RJRyA9IDE3OworCisgICAgLyoqCisgICAgICogVGhlc2UgZGF0YSBtZW1iZXJzIGFyZSBpbnRlbnRpb25hbGx5IHB1YmxpYyBhbmQgY2FuIGJlIHNldCBkaXJlY3RseS4KKyAgICAgKgorICAgICAqIFRoZSB2YWx1ZSByZXByZXNlbnRlZCBpcyBnaXZlbiBieSBwbGFjaW5nIHRoZSBkZWNpbWFsIHBvaW50IGJlZm9yZQorICAgICAqIGRpZ2l0c1tkZWNpbWFsQXRdLiAgSWYgZGVjaW1hbEF0IGlzIDwgMCwgdGhlbiBsZWFkaW5nIHplcm9zIGJldHdlZW4KKyAgICAgKiB0aGUgZGVjaW1hbCBwb2ludCBhbmQgdGhlIGZpcnN0IG5vbnplcm8gZGlnaXQgYXJlIGltcGxpZWQuICBJZiBkZWNpbWFsQXQKKyAgICAgKiBpcyA+IGNvdW50LCB0aGVuIHRyYWlsaW5nIHplcm9zIGJldHdlZW4gdGhlIGRpZ2l0c1tjb3VudC0xXSBhbmQgdGhlCisgICAgICogZGVjaW1hbCBwb2ludCBhcmUgaW1wbGllZC4KKyAgICAgKgorICAgICAqIEVxdWl2YWxlbnRseSwgdGhlIHJlcHJlc2VudGVkIHZhbHVlIGlzIGdpdmVuIGJ5IGYgKiAxMF5kZWNpbWFsQXQuICBIZXJlCisgICAgICogZiBpcyBhIHZhbHVlIDAuMSA8PSBmIDwgMSBhcnJpdmVkIGF0IGJ5IHBsYWNpbmcgdGhlIGRpZ2l0cyBpbiBEaWdpdHMgdG8KKyAgICAgKiB0aGUgcmlnaHQgb2YgdGhlIGRlY2ltYWwuCisgICAgICoKKyAgICAgKiBEaWdpdExpc3QgaXMgbm9ybWFsaXplZCwgc28gaWYgaXQgaXMgbm9uLXplcm8sIGZpZ2l0c1swXSBpcyBub24temVyby4gIFdlCisgICAgICogZG9uJ3QgYWxsb3cgZGVub3JtYWxpemVkIG51bWJlcnMgYmVjYXVzZSBvdXIgZXhwb25lbnQgaXMgZWZmZWN0aXZlbHkgb2YKKyAgICAgKiB1bmxpbWl0ZWQgbWFnbml0dWRlLiAgVGhlIGNvdW50IHZhbHVlIGNvbnRhaW5zIHRoZSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQKKyAgICAgKiBkaWdpdHMgcHJlc2VudCBpbiBkaWdpdHNbXS4KKyAgICAgKgorICAgICAqIFplcm8gaXMgcmVwcmVzZW50ZWQgYnkgYW55IERpZ2l0TGlzdCB3aXRoIGNvdW50ID09IDAgb3Igd2l0aCBlYWNoIGRpZ2l0c1tpXQorICAgICAqIGZvciBhbGwgaSA8PSBjb3VudCA9PSAnMCcuCisgICAgICovCisgICAgcHVibGljIGludCBkZWNpbWFsQXQgPSAwOworICAgIHB1YmxpYyBpbnQgY291bnQgPSAwOworICAgIHB1YmxpYyBieXRlW10gZGlnaXRzID0gbmV3IGJ5dGVbTUFYX0xPTkdfRElHSVRTXTsKKworICAgIHByaXZhdGUgZmluYWwgdm9pZCBlbnN1cmVDYXBhY2l0eShpbnQgZGlnaXRDYXBhY2l0eSwgaW50IGRpZ2l0c1RvQ29weSkgeworICAgICAgICBpZiAoZGlnaXRDYXBhY2l0eSA+IGRpZ2l0cy5sZW5ndGgpIHsKKyAgICAgICAgICAgIGJ5dGVbXSBuZXdEaWdpdHMgPSBuZXcgYnl0ZVtkaWdpdENhcGFjaXR5ICogMl07CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGRpZ2l0cywgMCwgbmV3RGlnaXRzLCAwLCBkaWdpdHNUb0NvcHkpOworICAgICAgICAgICAgZGlnaXRzID0gbmV3RGlnaXRzOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIHJlcHJlc2VudGVkIG51bWJlciBpcyB6ZXJvLgorICAgICAqLworICAgIGJvb2xlYW4gaXNaZXJvKCkKKyAgICB7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxjb3VudDsgKytpKSBpZiAoZGlnaXRzW2ldICE9ICcwJykgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDbGVhcnMgb3V0IHRoZSBkaWdpdHMuCisgICAgICogVXNlIGJlZm9yZSBhcHBlbmRpbmcgdGhlbS4KKyAgICAgKiBUeXBpY2FsbHksIHlvdSBzZXQgYSBzZXJpZXMgb2YgZGlnaXRzIHdpdGggYXBwZW5kLCB0aGVuIGF0IHRoZSBwb2ludAorICAgICAqIHlvdSBoaXQgdGhlIGRlY2ltYWwgcG9pbnQsIHlvdSBzZXQgbXlEaWdpdExpc3QuZGVjaW1hbEF0ID0gbXlEaWdpdExpc3QuY291bnQ7CisgICAgICogdGhlbiBnbyBvbiBhcHBlbmRpbmcgZGlnaXRzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNsZWFyICgpIHsKKyAgICAgICAgZGVjaW1hbEF0ID0gMDsKKyAgICAgICAgY291bnQgPSAwOworICAgIH0KKyAgICAvKioKKyAgICAgKiBBcHBlbmRzIGRpZ2l0cyB0byB0aGUgbGlzdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhcHBlbmQgKGludCBkaWdpdCkgeworICAgICAgICBlbnN1cmVDYXBhY2l0eShjb3VudCsxLCBjb3VudCk7CisgICAgICAgIGRpZ2l0c1tjb3VudCsrXSA9IChieXRlKSBkaWdpdDsKKyAgICB9CisgICAgLyoqCisgICAgICogVXRpbGl0eSByb3V0aW5lIHRvIGdldCB0aGUgdmFsdWUgb2YgdGhlIGRpZ2l0IGxpc3QKKyAgICAgKiBJZiAoY291bnQgPT0gMCkgdGhpcyB0aHJvd3MgYSBOdW1iZXJGb3JtYXRFeGNlcHRpb24sIHdoaWNoCisgICAgICogbWltaWNzIExvbmcucGFyc2VMb25nKCkuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGRvdWJsZSBnZXREb3VibGUoKSB7CisgICAgICAgIGlmIChjb3VudCA9PSAwKSByZXR1cm4gMC4wOworICAgICAgICBTdHJpbmdCdWZmZXIgdGVtcCA9IG5ldyBTdHJpbmdCdWZmZXIoY291bnQpOworICAgICAgICB0ZW1wLmFwcGVuZCgnLicpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHRlbXAuYXBwZW5kKChjaGFyKShkaWdpdHNbaV0pKTsKKyAgICAgICAgdGVtcC5hcHBlbmQoJ0UnKTsKKyAgICAgICAgdGVtcC5hcHBlbmQoSW50ZWdlci50b1N0cmluZyhkZWNpbWFsQXQpKTsKKyAgICAgICAgcmV0dXJuIERvdWJsZS52YWx1ZU9mKHRlbXAudG9TdHJpbmcoKSkuZG91YmxlVmFsdWUoKTsKKyAgICAgICAgLy8gbG9uZyB2YWx1ZSA9IExvbmcucGFyc2VMb25nKHRlbXAudG9TdHJpbmcoKSk7CisgICAgICAgIC8vIHJldHVybiAodmFsdWUgKiBNYXRoLnBvdygxMCwgZGVjaW1hbEF0IC0gY291bnQpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IHJvdXRpbmUgdG8gZ2V0IHRoZSB2YWx1ZSBvZiB0aGUgZGlnaXQgbGlzdC4KKyAgICAgKiBJZiAoY291bnQgPT0gMCkgdGhpcyByZXR1cm5zIDAsIHVubGlrZSBMb25nLnBhcnNlTG9uZygpLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBsb25nIGdldExvbmcoKSB7CisgICAgICAgIC8vIGZvciBub3csIHNpbXBsZSBpbXBsZW1lbnRhdGlvbjsgbGF0ZXIsIGRvIHByb3BlciBJRUVFIG5hdGl2ZSBzdHVmZgorCisgICAgICAgIGlmIChjb3VudCA9PSAwKSByZXR1cm4gMDsKKworICAgICAgICAvLyBXZSBoYXZlIHRvIGNoZWNrIGZvciB0aGlzLCBiZWNhdXNlIHRoaXMgaXMgdGhlIG9uZSBORUdBVElWRSB2YWx1ZQorICAgICAgICAvLyB3ZSByZXByZXNlbnQuICBJZiB3ZSB0cmllZCB0byBqdXN0IHBhc3MgdGhlIGRpZ2l0cyBvZmYgdG8gcGFyc2VMb25nLAorICAgICAgICAvLyB3ZSdkIGdldCBhIHBhcnNlIGZhaWx1cmUuCisgICAgICAgIGlmIChpc0xvbmdNSU5fVkFMVUUoKSkgcmV0dXJuIExvbmcuTUlOX1ZBTFVFOworCisgICAgICAgIFN0cmluZ0J1ZmZlciB0ZW1wID0gbmV3IFN0cmluZ0J1ZmZlcihjb3VudCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGVjaW1hbEF0OyArK2kpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRlbXAuYXBwZW5kKChpIDwgY291bnQpID8gKGNoYXIpKGRpZ2l0c1tpXSkgOiAnMCcpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBMb25nLnBhcnNlTG9uZyh0ZW1wLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIDxjb2RlPkJpZ0ludGVnZXI8L2NvZGU+IHJlcHJlc2VudGluZyB0aGUgdmFsdWUgc3RvcmVkIGluIHRoaXMKKyAgICAgKiA8Y29kZT5EaWdpdExpc3Q8L2NvZGU+LiAgVGhpcyBtZXRob2QgYXNzdW1lcyB0aGF0IHRoaXMgb2JqZWN0IGNvbnRhaW5zCisgICAgICogYW4gaW50ZWdyYWwgdmFsdWU7IGlmIG5vdCwgaXQgd2lsbCByZXR1cm4gYW4gaW5jb3JyZWN0IHZhbHVlLgorICAgICAqIFtibmZdCisgICAgICogQHBhcmFtIGlzUG9zaXRpdmUgZGV0ZXJtaW5lcyB0aGUgc2lnbiBvZiB0aGUgcmV0dXJuZWQgcmVzdWx0CisgICAgICogQHJldHVybiB0aGUgdmFsdWUgb2YgdGhpcyBvYmplY3QgYXMgYSA8Y29kZT5CaWdJbnRlZ2VyPC9jb2RlPgorICAgICAqLworICAgIHB1YmxpYyBCaWdJbnRlZ2VyIGdldEJpZ0ludGVnZXIoYm9vbGVhbiBpc1Bvc2l0aXZlKSB7CisgICAgICAgIGlmIChpc1plcm8oKSkgcmV0dXJuIEJpZ0ludGVnZXIudmFsdWVPZigwKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHN0cmluZ1JlcCA9IG5ldyBTdHJpbmdCdWZmZXIoY291bnQpOworICAgICAgICBpZiAoIWlzUG9zaXRpdmUpIHsKKyAgICAgICAgICAgIHN0cmluZ1JlcC5hcHBlbmQoJy0nKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpPTA7IGk8Y291bnQ7ICsraSkgeworICAgICAgICAgICAgc3RyaW5nUmVwLmFwcGVuZCgoY2hhcikgZGlnaXRzW2ldKTsKKyAgICAgICAgfQorICAgICAgICBpbnQgZCA9IGRlY2ltYWxBdDsKKyAgICAgICAgd2hpbGUgKGQtLSA+IGNvdW50KSB7CisgICAgICAgICAgICBzdHJpbmdSZXAuYXBwZW5kKCcwJyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBCaWdJbnRlZ2VyKHN0cmluZ1JlcC50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiByZXByZXNlbnRpbmcgdGhlIHZhbHVlIHN0b3JlZCBpbiB0aGlzCisgICAgICogPGNvZGU+RGlnaXRMaXN0PC9jb2RlPi4KKyAgICAgKiBbYm5mXQorICAgICAqIEBwYXJhbSBpc1Bvc2l0aXZlIGRldGVybWluZXMgdGhlIHNpZ24gb2YgdGhlIHJldHVybmVkIHJlc3VsdAorICAgICAqIEByZXR1cm4gdGhlIHZhbHVlIG9mIHRoaXMgb2JqZWN0IGFzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4KKyAgICAgKi8KKyAgICBwdWJsaWMgamF2YS5tYXRoLkJpZ0RlY2ltYWwgZ2V0QmlnRGVjaW1hbChib29sZWFuIGlzUG9zaXRpdmUpIHsKKyAgICAgICAgaWYgKGlzWmVybygpKSByZXR1cm4gamF2YS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZigwKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHN0cmluZ1JlcCA9IG5ldyBTdHJpbmdCdWZmZXIoY291bnQrMSk7CisgICAgICAgIGlmICghaXNQb3NpdGl2ZSkgeworICAgICAgICAgICAgc3RyaW5nUmVwLmFwcGVuZCgnLScpOworICAgICAgICB9CisgICAgICAgIGludCBkID0gZGVjaW1hbEF0OworICAgICAgICBpZiAoZCA8IDApIHsKKyAgICAgICAgICAgIHN0cmluZ1JlcC5hcHBlbmQoJy4nKTsKKyAgICAgICAgICAgIHdoaWxlIChkIDwgMCkgeworICAgICAgICAgICAgICAgIHN0cmluZ1JlcC5hcHBlbmQoJzAnKTsKKyAgICAgICAgICAgICAgICArK2Q7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkID0gLTE7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgIGlmIChkID09IGkpIHsKKyAgICAgICAgICAgICAgICBzdHJpbmdSZXAuYXBwZW5kKCcuJyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdHJpbmdSZXAuYXBwZW5kKChjaGFyKSBkaWdpdHNbaV0pOworICAgICAgICB9CisgICAgICAgIHdoaWxlIChkLS0gPiBjb3VudCkgeworICAgICAgICAgICAgc3RyaW5nUmVwLmFwcGVuZCgnMCcpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgamF2YS5tYXRoLkJpZ0RlY2ltYWwoc3RyaW5nUmVwLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB3aGV0aGVyIG9yIG5vdCB0aGlzIG9iamVjdHMgcmVwcmVzZW50ZWQgdmFsdWUgaXMgYW4gaW50ZWdlci4KKyAgICAgKiBbYm5mXQorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgcmVwcmVzZW50ZWQgdmFsdWUgb2YgdGhpcyBvYmplY3QgaXMgYW4gaW50ZWdlcgorICAgICAqLworICAgIGJvb2xlYW4gaXNJbnRlZ3JhbCgpIHsKKyAgICAgICAgLy8gVHJpbSB0cmFpbGluZyB6ZXJvcy4gIFRoaXMgZG9lcyBub3QgY2hhbmdlIHRoZSByZXByZXNlbnRlZCB2YWx1ZS4KKyAgICAgICAgd2hpbGUgKGNvdW50ID4gMCAmJiBkaWdpdHNbY291bnQgLSAxXSA9PSAoYnl0ZSknMCcpIC0tY291bnQ7CisgICAgICAgIHJldHVybiBjb3VudCA9PSAwIHx8IGRlY2ltYWxBdCA+PSBjb3VudDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgbnVtYmVyIHJlcHJlc2VudGVkIGJ5IHRoaXMgb2JqZWN0IGNhbiBmaXQgaW50bworICAgICAqIGEgbG9uZy4KKyAgICAgKi8KKyAgICBib29sZWFuIGZpdHNJbnRvTG9uZyhib29sZWFuIGlzUG9zaXRpdmUpCisgICAgeworICAgICAgICAvLyBGaWd1cmUgb3V0IGlmIHRoZSByZXN1bHQgd2lsbCBmaXQgaW4gYSBsb25nLiAgV2UgaGF2ZSB0bworICAgICAgICAvLyBmaXJzdCBsb29rIGZvciBub256ZXJvIGRpZ2l0cyBhZnRlciB0aGUgZGVjaW1hbCBwb2ludDsKKyAgICAgICAgLy8gdGhlbiBjaGVjayB0aGUgc2l6ZS4gIElmIHRoZSBkaWdpdCBjb3VudCBpcyAxOCBvciBsZXNzLCB0aGVuCisgICAgICAgIC8vIHRoZSB2YWx1ZSBjYW4gZGVmaW5pdGVseSBiZSByZXByZXNlbnRlZCBhcyBhIGxvbmcuICBJZiBpdCBpcyAxOQorICAgICAgICAvLyB0aGVuIGl0IG1heSBiZSB0b28gbGFyZ2UuCisKKyAgICAgICAgLy8gVHJpbSB0cmFpbGluZyB6ZXJvcy4gIFRoaXMgZG9lcyBub3QgY2hhbmdlIHRoZSByZXByZXNlbnRlZCB2YWx1ZS4KKyAgICAgICAgd2hpbGUgKGNvdW50ID4gMCAmJiBkaWdpdHNbY291bnQgLSAxXSA9PSAoYnl0ZSknMCcpIC0tY291bnQ7CisKKyAgICAgICAgaWYgKGNvdW50ID09IDApIHsKKyAgICAgICAgICAgIC8vIFBvc2l0aXZlIHplcm8gZml0cyBpbnRvIGEgbG9uZywgYnV0IG5lZ2F0aXZlIHplcm8gY2FuIG9ubHkKKyAgICAgICAgICAgIC8vIGJlIHJlcHJlc2VudGVkIGFzIGEgZG91YmxlLiAtIGJ1ZyA0MTYyODUyCisgICAgICAgICAgICByZXR1cm4gaXNQb3NpdGl2ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChkZWNpbWFsQXQgPCBjb3VudCB8fCBkZWNpbWFsQXQgPiBNQVhfTE9OR19ESUdJVFMpIHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAoZGVjaW1hbEF0IDwgTUFYX0xPTkdfRElHSVRTKSByZXR1cm4gdHJ1ZTsKKworICAgICAgICAvLyBBdCB0aGlzIHBvaW50IHdlIGhhdmUgZGVjaW1hbEF0ID09IGNvdW50LCBhbmQgY291bnQgPT0gTUFYX0xPTkdfRElHSVRTLgorICAgICAgICAvLyBUaGUgbnVtYmVyIHdpbGwgb3ZlcmZsb3cgaWYgaXQgaXMgbGFyZ2VyIHRoYW4gOTIyMzM3MjAzNjg1NDc3NTgwNworICAgICAgICAvLyBvciBzbWFsbGVyIHRoYW4gLTkyMjMzNzIwMzY4NTQ3NzU4MDguCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxjb3VudDsgKytpKQorICAgICAgICB7CisgICAgICAgICAgICBieXRlIGRpZyA9IGRpZ2l0c1tpXSwgbWF4ID0gTE9OR19NSU5fUkVQW2ldOworICAgICAgICAgICAgaWYgKGRpZyA+IG1heCkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYgKGRpZyA8IG1heCkgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICAvLyBBdCB0aGlzIHBvaW50IHRoZSBmaXJzdCBjb3VudCBkaWdpdHMgbWF0Y2guICBJZiBkZWNpbWFsQXQgaXMgbGVzcworICAgICAgICAvLyB0aGFuIGNvdW50LCB0aGVuIHRoZSByZW1haW5pbmcgZGlnaXRzIGFyZSB6ZXJvLCBhbmQgd2UgcmV0dXJuIHRydWUuCisgICAgICAgIGlmIChjb3VudCA8IGRlY2ltYWxBdCkgcmV0dXJuIHRydWU7CisKKyAgICAgICAgLy8gTm93IHdlIGhhdmUgYSByZXByZXNlbnRhdGlvbiBvZiBMb25nLk1JTl9WQUxVRSwgd2l0aG91dCB0aGUgbGVhZGluZworICAgICAgICAvLyBuZWdhdGl2ZSBzaWduLiAgSWYgdGhpcyByZXByZXNlbnRzIGEgcG9zaXRpdmUgdmFsdWUsIHRoZW4gaXQgZG9lcworICAgICAgICAvLyBub3QgZml0OyBvdGhlcndpc2UgaXQgZml0cy4KKyAgICAgICAgcmV0dXJuICFpc1Bvc2l0aXZlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgZGlnaXQgbGlzdCB0byBhIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBnaXZlbiBkb3VibGUgdmFsdWUuCisgICAgICogVGhpcyBtZXRob2Qgc3VwcG9ydHMgZml4ZWQtcG9pbnQgbm90YXRpb24uCisgICAgICogQHBhcmFtIHNvdXJjZSBWYWx1ZSB0byBiZSBjb252ZXJ0ZWQ7IG11c3Qgbm90IGJlIEluZiwgLUluZiwgTmFuLAorICAgICAqIG9yIGEgdmFsdWUgPD0gMC4KKyAgICAgKiBAcGFyYW0gbWF4aW11bUZyYWN0aW9uRGlnaXRzIFRoZSBtb3N0IGZyYWN0aW9uYWwgZGlnaXRzIHdoaWNoIHNob3VsZAorICAgICAqIGJlIGNvbnZlcnRlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCBzZXQoZG91YmxlIHNvdXJjZSwgaW50IG1heGltdW1GcmFjdGlvbkRpZ2l0cykKKyAgICB7CisgICAgICAgIHNldChzb3VyY2UsIG1heGltdW1GcmFjdGlvbkRpZ2l0cywgdHJ1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBkaWdpdCBsaXN0IHRvIGEgcmVwcmVzZW50YXRpb24gb2YgdGhlIGdpdmVuIGRvdWJsZSB2YWx1ZS4KKyAgICAgKiBUaGlzIG1ldGhvZCBzdXBwb3J0cyBib3RoIGZpeGVkLXBvaW50IGFuZCBleHBvbmVudGlhbCBub3RhdGlvbi4KKyAgICAgKiBAcGFyYW0gc291cmNlIFZhbHVlIHRvIGJlIGNvbnZlcnRlZDsgbXVzdCBub3QgYmUgSW5mLCAtSW5mLCBOYW4sCisgICAgICogb3IgYSB2YWx1ZSA8PSAwLgorICAgICAqIEBwYXJhbSBtYXhpbXVtRGlnaXRzIFRoZSBtb3N0IGZyYWN0aW9uYWwgb3IgdG90YWwgZGlnaXRzIHdoaWNoIHNob3VsZAorICAgICAqIGJlIGNvbnZlcnRlZC4KKyAgICAgKiBAcGFyYW0gZml4ZWRQb2ludCBJZiB0cnVlLCB0aGVuIG1heGltdW1EaWdpdHMgaXMgdGhlIG1heGltdW0KKyAgICAgKiBmcmFjdGlvbmFsIGRpZ2l0cyB0byBiZSBjb252ZXJ0ZWQuICBJZiBmYWxzZSwgdG90YWwgZGlnaXRzLgorICAgICAqLworICAgIGZpbmFsIHZvaWQgc2V0KGRvdWJsZSBzb3VyY2UsIGludCBtYXhpbXVtRGlnaXRzLCBib29sZWFuIGZpeGVkUG9pbnQpCisgICAgeworICAgICAgICBpZiAoc291cmNlID09IDApIHNvdXJjZSA9IDA7CisgICAgICAgIC8vIEdlbmVyYXRlIGEgcmVwcmVzZW50YXRpb24gb2YgdGhlIGZvcm0gREREREQsIERERERELkRERERELCBvcgorICAgICAgICAvLyBEREREREUrLy1ERERERC4KKyAgICAgICAgU3RyaW5nIHJlcCA9IERvdWJsZS50b1N0cmluZyhzb3VyY2UpOworCisgICAgICAgIHNldChyZXAsIE1BWF9MT05HX0RJR0lUUyk7CisKKyAgICAgICAgaWYgKGZpeGVkUG9pbnQpIHsKKyAgICAgICAgICAgIC8vIFRoZSBuZWdhdGl2ZSBvZiB0aGUgZXhwb25lbnQgcmVwcmVzZW50cyB0aGUgbnVtYmVyIG9mIGxlYWRpbmcKKyAgICAgICAgICAgIC8vIHplcm9zIGJldHdlZW4gdGhlIGRlY2ltYWwgYW5kIHRoZSBmaXJzdCBub24temVybyBkaWdpdCwgZm9yCisgICAgICAgICAgICAvLyBhIHZhbHVlIDwgMC4xIChlLmcuLCBmb3IgMC4wMDEyMywgLWRlY2ltYWxBdCA9PSAyKS4gIElmIHRoaXMKKyAgICAgICAgICAgIC8vIGlzIG1vcmUgdGhhbiB0aGUgbWF4aW11bSBmcmFjdGlvbiBkaWdpdHMsIHRoZW4gd2UgaGF2ZSBhbiB1bmRlcmZsb3cKKyAgICAgICAgICAgIC8vIGZvciB0aGUgcHJpbnRlZCByZXByZXNlbnRhdGlvbi4KKyAgICAgICAgICAgIGlmICgtZGVjaW1hbEF0ID4gbWF4aW11bURpZ2l0cykgeworICAgICAgICAgICAgICAgIGNvdW50ID0gMDsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9IGVsc2UgaWYgKC1kZWNpbWFsQXQgPT0gbWF4aW11bURpZ2l0cykgeworICAgICAgICAgICAgICAgIGlmIChzaG91bGRSb3VuZFVwKDApKSB7CisgICAgICAgICAgICAgICAgICAgIGNvdW50ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgKytkZWNpbWFsQXQ7CisgICAgICAgICAgICAgICAgICAgIGRpZ2l0c1swXSA9IChieXRlKScxJzsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBjb3VudCA9IDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGVsc2UgZmFsbCB0aHJvdWdoCisgICAgICAgIH0KKworICAgICAgICAvLyBFbGltaW5hdGUgdHJhaWxpbmcgemVyb3MuCisgICAgICAgIHdoaWxlIChjb3VudCA+IDEgJiYgZGlnaXRzW2NvdW50IC0gMV0gPT0gJzAnKQorICAgICAgICAgICAgLS1jb3VudDsKKworICAgICAgICAvLyBFbGltaW5hdGUgZGlnaXRzIGJleW9uZCBtYXhpbXVtIGRpZ2l0cyB0byBiZSBkaXNwbGF5ZWQuCisgICAgICAgIC8vIFJvdW5kIHVwIGlmIGFwcHJvcHJpYXRlLgorICAgICAgICByb3VuZChmaXhlZFBvaW50ID8gKG1heGltdW1EaWdpdHMgKyBkZWNpbWFsQXQpIDogbWF4aW11bURpZ2l0cyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2l2ZW4gYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGZvcm0gREREREQsIERERERELkRERERELAorICAgICAqIG9yIERERERERSsvLURERERELCBzZXQgdGhpcyBvYmplY3QncyB2YWx1ZSB0byBpdC4gIElnbm9yZQorICAgICAqIGFueSBsZWFkaW5nICctJy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgc2V0KFN0cmluZyByZXAsIGludCBtYXhDb3VudCkgeworICAgICAgICBkZWNpbWFsQXQgPSAtMTsKKyAgICAgICAgY291bnQgPSAwOworICAgICAgICBpbnQgZXhwb25lbnQgPSAwOworICAgICAgICAvLyBOdW1iZXIgb2YgemVyb3MgYmV0d2VlbiBkZWNpbWFsIHBvaW50IGFuZCBmaXJzdCBub24temVybyBkaWdpdCBhZnRlcgorICAgICAgICAvLyBkZWNpbWFsIHBvaW50LCBmb3IgbnVtYmVycyA8IDEuCisgICAgICAgIGludCBsZWFkaW5nWmVyb3NBZnRlckRlY2ltYWwgPSAwOworICAgICAgICBib29sZWFuIG5vblplcm9EaWdpdFNlZW4gPSBmYWxzZTsKKyAgICAgICAgLy8gU2tpcCBvdmVyIGxlYWRpbmcgJy0nCisgICAgICAgIGludCBpPTA7CisgICAgICAgIGlmIChyZXAuY2hhckF0KGkpID09ICctJykgeworICAgICAgICAgICAgKytpOworICAgICAgICB9CisgICAgICAgIGZvciAoOyBpIDwgcmVwLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IHJlcC5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoYyA9PSAnLicpIHsKKyAgICAgICAgICAgICAgICBkZWNpbWFsQXQgPSBjb3VudDsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYyA9PSAnZScgfHwgYyA9PSAnRScpIHsKKyAgICAgICAgICAgICAgICArK2k7CisgICAgICAgICAgICAgICAgLy8gSW50ZWdlci5wYXJzZUludCBkb2Vzbid0IGhhbmRsZSBsZWFkaW5nICcrJyBzaWducworICAgICAgICAgICAgICAgIGlmIChyZXAuY2hhckF0KGkpID09ICcrJykgeworICAgICAgICAgICAgICAgICAgICArK2k7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGV4cG9uZW50ID0gSW50ZWdlci52YWx1ZU9mKHJlcC5zdWJzdHJpbmcoaSkpLmludFZhbHVlKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGNvdW50IDwgbWF4Q291bnQpIHsKKyAgICAgICAgICAgICAgICBpZiAoIW5vblplcm9EaWdpdFNlZW4pIHsKKyAgICAgICAgICAgICAgICAgICAgbm9uWmVyb0RpZ2l0U2VlbiA9IChjICE9ICcwJyk7CisgICAgICAgICAgICAgICAgICAgIGlmICghbm9uWmVyb0RpZ2l0U2VlbiAmJiBkZWNpbWFsQXQgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrbGVhZGluZ1plcm9zQWZ0ZXJEZWNpbWFsOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKG5vblplcm9EaWdpdFNlZW4pIHsKKyAgICAgICAgICAgICAgICAgICAgZW5zdXJlQ2FwYWNpdHkoY291bnQrMSwgY291bnQpOworICAgICAgICAgICAgICAgICAgICBkaWdpdHNbY291bnQrK10gPSAoYnl0ZSljOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoZGVjaW1hbEF0ID09IC0xKSB7CisgICAgICAgICAgICBkZWNpbWFsQXQgPSBjb3VudDsKKyAgICAgICAgfQorICAgICAgICBkZWNpbWFsQXQgKz0gZXhwb25lbnQgLSBsZWFkaW5nWmVyb3NBZnRlckRlY2ltYWw7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdHJ1bmNhdGluZyB0aGUgcmVwcmVzZW50YXRpb24gdG8gdGhlIGdpdmVuIG51bWJlcgorICAgICAqIG9mIGRpZ2l0cyB3aWxsIHJlc3VsdCBpbiBhbiBpbmNyZW1lbnQgdG8gdGhlIGxhc3QgZGlnaXQuICBUaGlzCisgICAgICogbWV0aG9kIGltcGxlbWVudHMgaGFsZi1ldmVuIHJvdW5kaW5nLCB0aGUgZGVmYXVsdCByb3VuZGluZyBtb2RlLgorICAgICAqIFtibmZdCisgICAgICogQHBhcmFtIG1heGltdW1EaWdpdHMgdGhlIG51bWJlciBvZiBkaWdpdHMgdG8ga2VlcCwgZnJvbSAwIHRvCisgICAgICogPGNvZGU+Y291bnQtMTwvY29kZT4uICBJZiAwLCB0aGVuIGFsbCBkaWdpdHMgYXJlIHJvdW5kZWQgYXdheSwgYW5kCisgICAgICogdGhpcyBtZXRob2QgcmV0dXJucyB0cnVlIGlmIGEgb25lIHNob3VsZCBiZSBnZW5lcmF0ZWQgKGUuZy4sIGZvcm1hdHRpbmcKKyAgICAgKiAwLjA5IHdpdGggIiMuIyIpLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBkaWdpdCA8Y29kZT5tYXhpbXVtRGlnaXRzLTE8L2NvZGU+IHNob3VsZCBiZQorICAgICAqIGluY3JlbWVudGVkCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIHNob3VsZFJvdW5kVXAoaW50IG1heGltdW1EaWdpdHMpIHsKKyAgICAgICAgLy8gdmFyaWFibGUgbm90IHVzZWQgYm9vbGVhbiBpbmNyZW1lbnQgPSBmYWxzZTsKKyAgICAgICAgLy8gSW1wbGVtZW50IElFRUUgaGFsZi1ldmVuIHJvdW5kaW5nCisgICAgICAgIC8qQnVnIDQyNDMxMDgKKyAgICAgICAgICBmb3JtYXQoMC4wKSBnaXZlcyAiMC4xIiBpZiBwcmVjZWRlZCBieSBwYXJzZSgiOTkuOTkiKSBbUmljaGFyZC9HQ0xdCisgICAgICAgICovCisgICAgICAgIGlmIChtYXhpbXVtRGlnaXRzIDwgY291bnQpIHsKKyAgICAgICAgICAgIGlmIChkaWdpdHNbbWF4aW11bURpZ2l0c10gPiAnNScpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZGlnaXRzW21heGltdW1EaWdpdHNdID09ICc1JyApIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpPW1heGltdW1EaWdpdHMrMTsgaTxjb3VudDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChkaWdpdHNbaV0gIT0gJzAnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gbWF4aW11bURpZ2l0cyA+IDAgJiYgKGRpZ2l0c1ttYXhpbXVtRGlnaXRzLTFdICUgMiAhPSAwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogUm91bmQgdGhlIHJlcHJlc2VudGF0aW9uIHRvIHRoZSBnaXZlbiBudW1iZXIgb2YgZGlnaXRzLgorICAgICAqIEBwYXJhbSBtYXhpbXVtRGlnaXRzIFRoZSBtYXhpbXVtIG51bWJlciBvZiBkaWdpdHMgdG8gYmUgc2hvd24uCisgICAgICogVXBvbiByZXR1cm4sIGNvdW50IHdpbGwgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIG1heGltdW1EaWdpdHMuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgcm91bmQoaW50IG1heGltdW1EaWdpdHMpIHsgICAgICAgIAorICAgICAgICAvLyBFbGltaW5hdGUgZGlnaXRzIGJleW9uZCBtYXhpbXVtIGRpZ2l0cyB0byBiZSBkaXNwbGF5ZWQuCisgICAgICAgIC8vIFJvdW5kIHVwIGlmIGFwcHJvcHJpYXRlLgorICAgICAgICAvLyBbYm5mXSByZXdyaXR0ZW4gdG8gZml4IDQxNzk4MTgKKyAgICAgICAgaWYgKG1heGltdW1EaWdpdHMgPiAwICYmIG1heGltdW1EaWdpdHMgPCBjb3VudCkgeworICAgICAgICAgICAgaWYgKHNob3VsZFJvdW5kVXAobWF4aW11bURpZ2l0cykpIHsKKyAgICAgICAgICAgICAgICAvLyBSb3VuZGluZyB1cCBpbnZvbHZlZCBpbmNyZW1lbnRpbmcgZGlnaXRzIGZyb20gTFNEIHRvIE1TRC4KKyAgICAgICAgICAgICAgICAvLyBJbiBtb3N0IGNhc2VzIHRoaXMgaXMgc2ltcGxlLCBidXQgaW4gYSB3b3JzdCBjYXNlIHNpdHVhdGlvbgorICAgICAgICAgICAgICAgIC8vICg5OTk5Li45OSkgd2UgaGF2ZSB0byBhZGp1c3QgdGhlIGRlY2ltYWxBdCB2YWx1ZS4KKyAgICAgICAgICAgICAgICBmb3IgKDs7KQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgLS1tYXhpbXVtRGlnaXRzOworICAgICAgICAgICAgICAgICAgICBpZiAobWF4aW11bURpZ2l0cyA8IDApCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGhhdmUgYWxsIDkncywgc28gd2UgaW5jcmVtZW50IHRvIGEgc2luZ2xlIGRpZ2l0CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBvZiBvbmUgYW5kIGFkanVzdCB0aGUgZXhwb25lbnQuCisgICAgICAgICAgICAgICAgICAgICAgICBkaWdpdHNbMF0gPSAoYnl0ZSkgJzEnOworICAgICAgICAgICAgICAgICAgICAgICAgKytkZWNpbWFsQXQ7CisgICAgICAgICAgICAgICAgICAgICAgICBtYXhpbXVtRGlnaXRzID0gMDsgLy8gQWRqdXN0IHRoZSBjb3VudAorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICArK2RpZ2l0c1ttYXhpbXVtRGlnaXRzXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGRpZ2l0c1ttYXhpbXVtRGlnaXRzXSA8PSAnOScpIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAvLyBkaWdpdHNbbWF4aW11bURpZ2l0c10gPSAnMCc7IC8vIFVubmVjZXNzYXJ5IHNpbmNlIHdlJ2xsIHRydW5jYXRlIHRoaXMKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKyttYXhpbXVtRGlnaXRzOyAvLyBJbmNyZW1lbnQgZm9yIHVzZSBhcyBjb3VudAorICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQgPSBtYXhpbXVtRGlnaXRzOworICAgICAgICAgICAgLypCdWcgNDIxNzY2MSBEZWNpbWFsRm9ybWF0IGZvcm1hdHMgMS4wMDEgdG8gIjEuMDAiIGluc3RlYWQgb2YgIjEiCisgICAgICAgICAgICAgIEVsaW1pbmF0ZSB0cmFpbGluZyB6ZXJvcy4gW1JpY2hhcmQvR0NMXQorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHdoaWxlIChjb3VudCA+IDEgJiYgZGlnaXRzW2NvdW50LTFdID09ICcwJykgeworICAgICAgICAgICAgICAgIC0tY291bnQ7CisgICAgICAgICAgICB9IC8vW1JpY2hhcmQvR0NMXQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVXRpbGl0eSByb3V0aW5lIHRvIHNldCB0aGUgdmFsdWUgb2YgdGhlIGRpZ2l0IGxpc3QgZnJvbSBhIGxvbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCBzZXQobG9uZyBzb3VyY2UpCisgICAgeworICAgICAgICBzZXQoc291cmNlLCAwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGRpZ2l0IGxpc3QgdG8gYSByZXByZXNlbnRhdGlvbiBvZiB0aGUgZ2l2ZW4gbG9uZyB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gc291cmNlIFZhbHVlIHRvIGJlIGNvbnZlcnRlZDsgbXVzdCBiZSA+PSAwIG9yID09CisgICAgICogTG9uZy5NSU5fVkFMVUUuCisgICAgICogQHBhcmFtIG1heGltdW1EaWdpdHMgVGhlIG1vc3QgZGlnaXRzIHdoaWNoIHNob3VsZCBiZSBjb252ZXJ0ZWQuCisgICAgICogSWYgbWF4aW11bURpZ2l0cyBpcyBsb3dlciB0aGFuIHRoZSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzCisgICAgICogaW4gc291cmNlLCB0aGUgcmVwcmVzZW50YXRpb24gd2lsbCBiZSByb3VuZGVkLiAgSWdub3JlZCBpZiA8PSAwLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHNldChsb25nIHNvdXJjZSwgaW50IG1heGltdW1EaWdpdHMpCisgICAgeworICAgICAgICAvLyBUaGlzIG1ldGhvZCBkb2VzIG5vdCBleHBlY3QgYSBuZWdhdGl2ZSBudW1iZXIuIEhvd2V2ZXIsCisgICAgICAgIC8vICJzb3VyY2UiIGNhbiBiZSBhIExvbmcuTUlOX1ZBTFVFICgtOTIyMzM3MjAzNjg1NDc3NTgwOCksCisgICAgICAgIC8vIGlmIHRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkIGlzIGEgTG9uZy5NSU5fVkFMVUUuICBJbiB0aGF0CisgICAgICAgIC8vIGNhc2UsIGl0IHdpbGwgYmUgZm9ybWF0dGVkIGFzIC1Mb25nLk1JTl9WQUxVRSwgYSBudW1iZXIKKyAgICAgICAgLy8gd2hpY2ggaXMgb3V0c2lkZSB0aGUgbGVnYWwgcmFuZ2Ugb2YgYSBsb25nLCBidXQgd2hpY2ggY2FuCisgICAgICAgIC8vIGJlIHJlcHJlc2VudGVkIGJ5IERpZ2l0TGlzdC4KKyAgICAgICAgLy8gW05FV10gRmFzdGVyIGltcGxlbWVudGF0aW9uCisgICAgICAgIGlmIChzb3VyY2UgPD0gMCkgeworICAgICAgICAgICAgaWYgKHNvdXJjZSA9PSBMb25nLk1JTl9WQUxVRSkgeworICAgICAgICAgICAgICAgIGRlY2ltYWxBdCA9IGNvdW50ID0gTUFYX0xPTkdfRElHSVRTOworICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoTE9OR19NSU5fUkVQLCAwLCBkaWdpdHMsIDAsIGNvdW50KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY291bnQgPSAwOworICAgICAgICAgICAgICAgIGRlY2ltYWxBdCA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgbGVmdCA9IE1BWF9MT05HX0RJR0lUUzsKKyAgICAgICAgICAgIGludCByaWdodDsKKyAgICAgICAgICAgIHdoaWxlIChzb3VyY2UgPiAwKSB7CisgICAgICAgICAgICAgICAgZGlnaXRzWy0tbGVmdF0gPSAoYnl0ZSkgKCgobG9uZykgJzAnKSArIChzb3VyY2UgJSAxMCkpOworICAgICAgICAgICAgICAgIHNvdXJjZSAvPSAxMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRlY2ltYWxBdCA9IE1BWF9MT05HX0RJR0lUUy1sZWZ0OworICAgICAgICAgICAgLy8gRG9uJ3QgY29weSB0cmFpbGluZyB6ZXJvcworICAgICAgICAgICAgLy8gd2UgYXJlIGd1YXJhbnRlZWQgdGhhdCB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgbm9uLXplcm8gZGlnaXQsCisgICAgICAgICAgICAvLyBzbyB3ZSBkb24ndCBoYXZlIHRvIGNoZWNrIGxvd2VyIGJvdW5kcworICAgICAgICAgICAgZm9yIChyaWdodCA9IE1BWF9MT05HX0RJR0lUUyAtIDE7IGRpZ2l0c1tyaWdodF0gPT0gKGJ5dGUpICcwJzsgLS1yaWdodCkge30KKyAgICAgICAgICAgIGNvdW50ID0gcmlnaHQgLSBsZWZ0ICsgMTsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoZGlnaXRzLCBsZWZ0LCBkaWdpdHMsIDAsIGNvdW50KTsKKyAgICAgICAgfSAgICAgICAgCisgICAgICAgIGlmIChtYXhpbXVtRGlnaXRzID4gMCkgcm91bmQobWF4aW11bURpZ2l0cyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBkaWdpdCBsaXN0IHRvIGEgcmVwcmVzZW50YXRpb24gb2YgdGhlIGdpdmVuIEJpZ0ludGVnZXIgdmFsdWUuCisgICAgICogW2JuZl0KKyAgICAgKiBAcGFyYW0gc291cmNlIFZhbHVlIHRvIGJlIGNvbnZlcnRlZAorICAgICAqIEBwYXJhbSBtYXhpbXVtRGlnaXRzIFRoZSBtb3N0IGRpZ2l0cyB3aGljaCBzaG91bGQgYmUgY29udmVydGVkLgorICAgICAqIElmIG1heGltdW1EaWdpdHMgaXMgbG93ZXIgdGhhbiB0aGUgbnVtYmVyIG9mIHNpZ25pZmljYW50IGRpZ2l0cworICAgICAqIGluIHNvdXJjZSwgdGhlIHJlcHJlc2VudGF0aW9uIHdpbGwgYmUgcm91bmRlZC4gIElnbm9yZWQgaWYgPD0gMC4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCBzZXQoQmlnSW50ZWdlciBzb3VyY2UsIGludCBtYXhpbXVtRGlnaXRzKSB7CisgICAgICAgIFN0cmluZyBzdHJpbmdEaWdpdHMgPSBzb3VyY2UudG9TdHJpbmcoKTsKKworICAgICAgICBjb3VudCA9IGRlY2ltYWxBdCA9IHN0cmluZ0RpZ2l0cy5sZW5ndGgoKTsKKworICAgICAgICAvLyBEb24ndCBjb3B5IHRyYWlsaW5nIHplcm9zCisgICAgICAgIHdoaWxlIChjb3VudCA+IDEgJiYgc3RyaW5nRGlnaXRzLmNoYXJBdChjb3VudCAtIDEpID09ICcwJykgLS1jb3VudDsKKworICAgICAgICBpbnQgb2Zmc2V0ID0gMDsKKyAgICAgICAgaWYgKHN0cmluZ0RpZ2l0cy5jaGFyQXQoMCkgPT0gJy0nKSB7CisgICAgICAgICAgICArK29mZnNldDsKKyAgICAgICAgICAgIC0tY291bnQ7CisgICAgICAgICAgICAtLWRlY2ltYWxBdDsKKyAgICAgICAgfQorCisgICAgICAgIGVuc3VyZUNhcGFjaXR5KGNvdW50LCAwKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgICAgICBkaWdpdHNbaV0gPSAoYnl0ZSkgc3RyaW5nRGlnaXRzLmNoYXJBdChpICsgb2Zmc2V0KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChtYXhpbXVtRGlnaXRzID4gMCkgcm91bmQobWF4aW11bURpZ2l0cyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW50ZXJuYWwgbWV0aG9kIHRoYXQgc2V0cyB0aGlzIGRpZ2l0IGxpc3QgdG8gcmVwcmVzZW50IHRoZQorICAgICAqIGdpdmVuIHZhbHVlLiAgVGhlIHZhbHVlIGlzIGdpdmVuIGFzIGEgU3RyaW5nIG9mIHRoZSBmb3JtYXQKKyAgICAgKiByZXR1cm5lZCBieSBCaWdEZWNpbWFsLgorICAgICAqIEBwYXJhbSBzdHJpbmdEaWdpdHMgdmFsdWUgdG8gYmUgcmVwcmVzZW50ZWQgd2l0aCB0aGUgZm9sbG93aW5nCisgICAgICogc3ludGF4LCBleHByZXNzZWQgYXMgYSByZWd1bGFyIGV4cHJlc3Npb246IC0/XGQqLj9cZCoKKyAgICAgKiBNdXN0IG5vdCBiZSBhbiBlbXB0eSBzdHJpbmcuCisgICAgICogQHBhcmFtIG1heGltdW1EaWdpdHMgVGhlIG1vc3QgZGlnaXRzIHdoaWNoIHNob3VsZCBiZSBjb252ZXJ0ZWQuCisgICAgICogSWYgbWF4aW11bURpZ2l0cyBpcyBsb3dlciB0aGFuIHRoZSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzCisgICAgICogaW4gc291cmNlLCB0aGUgcmVwcmVzZW50YXRpb24gd2lsbCBiZSByb3VuZGVkLiAgSWdub3JlZCBpZiA8PSAwLgorICAgICAqIEBwYXJhbSBmaXhlZFBvaW50IElmIHRydWUsIHRoZW4gbWF4aW11bURpZ2l0cyBpcyB0aGUgbWF4aW11bQorICAgICAqIGZyYWN0aW9uYWwgZGlnaXRzIHRvIGJlIGNvbnZlcnRlZC4gIElmIGZhbHNlLCB0b3RhbCBkaWdpdHMuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHNldEJpZ0RlY2ltYWxEaWdpdHMoU3RyaW5nIHN0cmluZ0RpZ2l0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWF4aW11bURpZ2l0cywgYm9vbGVhbiBmaXhlZFBvaW50KSB7CisvL3wgICAgICAgIC8vIEZpbmQgdGhlIGZpcnN0IG5vbi16ZXJvIGRpZ2l0LCB0aGUgZGVjaW1hbCwgYW5kIHRoZSBsYXN0IG5vbi16ZXJvIGRpZ2l0LgorLy98ICAgICAgICBpbnQgZmlyc3Q9LTEsIGxhc3Q9c3RyaW5nRGlnaXRzLmxlbmd0aCgpLTEsIGRlY2ltYWw9LTE7CisvL3wgICAgICAgIGZvciAoaW50IGk9MDsgKGZpcnN0PDAgfHwgZGVjaW1hbDwwKSAmJiBpPD1sYXN0OyArK2kpIHsKKy8vfCAgICAgICAgICAgIGNoYXIgYyA9IHN0cmluZ0RpZ2l0cy5jaGFyQXQoaSk7CisvL3wgICAgICAgICAgICBpZiAoYyA9PSAnLicpIHsKKy8vfCAgICAgICAgICAgICAgICBkZWNpbWFsID0gaTsKKy8vfCAgICAgICAgICAgIH0gZWxzZSBpZiAoZmlyc3QgPCAwICYmIChjID49ICcxJyAmJiBjIDw9ICc5JykpIHsKKy8vfCAgICAgICAgICAgICAgICBmaXJzdCA9IGk7CisvL3wgICAgICAgICAgICB9CisvL3wgICAgICAgIH0KKy8vfAorLy98ICAgICAgICBpZiAoZmlyc3QgPCAwKSB7CisvL3wgICAgICAgICAgICBjbGVhcigpOworLy98ICAgICAgICAgICAgcmV0dXJuOworLy98ICAgICAgICB9CisvL3wKKy8vfCAgICAgICAgLy8gQXQgdGhpcyBwb2ludCB3ZSBrbm93IHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBub24temVybyBkaWdpdCwgc28gdGhlCisvL3wgICAgICAgIC8vIGZvbGxvd2luZyBsb29wIGlzIHNhZmUuCisvL3wgICAgICAgIGZvciAoOzspIHsKKy8vfCAgICAgICAgICAgIGNoYXIgYyA9IHN0cmluZ0RpZ2l0cy5jaGFyQXQobGFzdCk7CisvL3wgICAgICAgICAgICBpZiAoYyAhPSAnMCcgJiYgYyAhPSAnLicpIHsKKy8vfCAgICAgICAgICAgICAgICBicmVhazsKKy8vfCAgICAgICAgICAgIH0KKy8vfCAgICAgICAgICAgIC0tbGFzdDsKKy8vfCAgICAgICAgfQorLy98CisvL3wgICAgICAgIGlmIChkZWNpbWFsIDwgMCkgeworLy98ICAgICAgICAgICAgZGVjaW1hbCA9IHN0cmluZ0RpZ2l0cy5sZW5ndGgoKTsKKy8vfCAgICAgICAgfQorLy98CisvL3wgICAgICAgIGNvdW50ID0gbGFzdCAtIGZpcnN0OworLy98ICAgICAgICBpZiAoZGVjaW1hbCA8IGZpcnN0IHx8IGRlY2ltYWwgPiBsYXN0KSB7CisvL3wgICAgICAgICAgICArK2NvdW50OworLy98ICAgICAgICB9CisvL3wgICAgICAgIGRlY2ltYWxBdCA9IGRlY2ltYWwgLSBmaXJzdDsKKy8vfCAgICAgICAgaWYgKGRlY2ltYWxBdCA8IDApIHsKKy8vfCAgICAgICAgICAgICsrZGVjaW1hbEF0OworLy98ICAgICAgICB9CisvL3wKKy8vfCAgICAgICAgZW5zdXJlQ2FwYWNpdHkoY291bnQsIDApOworLy98ICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKy8vfCAgICAgICAgICAgIGRpZ2l0c1tpXSA9IChieXRlKSBzdHJpbmdEaWdpdHMuY2hhckF0KGZpcnN0KyspOworLy98ICAgICAgICAgICAgaWYgKGZpcnN0ID09IGRlY2ltYWwpIHsKKy8vfCAgICAgICAgICAgICAgICArK2ZpcnN0OworLy98ICAgICAgICAgICAgfQorLy98ICAgICAgICB9CisKKyAgICAgICAgLy8gVGhlIG1heERpZ2l0cyBoZXJlIGNvdWxkIGFsc28gYmUgSW50ZWdlci5NQVhfVkFMVUUKKyAgICAgICAgc2V0KHN0cmluZ0RpZ2l0cywgc3RyaW5nRGlnaXRzLmxlbmd0aCgpKTsKKworICAgICAgICAvLyBFbGltaW5hdGUgZGlnaXRzIGJleW9uZCBtYXhpbXVtIGRpZ2l0cyB0byBiZSBkaXNwbGF5ZWQuCisgICAgICAgIC8vIFJvdW5kIHVwIGlmIGFwcHJvcHJpYXRlLgorICAgICAgICByb3VuZChmaXhlZFBvaW50ID8gKG1heGltdW1EaWdpdHMgKyBkZWNpbWFsQXQpIDogbWF4aW11bURpZ2l0cyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBkaWdpdCBsaXN0IHRvIGEgcmVwcmVzZW50YXRpb24gb2YgdGhlIGdpdmVuIEJpZ0RlY2ltYWwgdmFsdWUuCisgICAgICogW2JuZl0KKyAgICAgKiBAcGFyYW0gc291cmNlIFZhbHVlIHRvIGJlIGNvbnZlcnRlZAorICAgICAqIEBwYXJhbSBtYXhpbXVtRGlnaXRzIFRoZSBtb3N0IGRpZ2l0cyB3aGljaCBzaG91bGQgYmUgY29udmVydGVkLgorICAgICAqIElmIG1heGltdW1EaWdpdHMgaXMgbG93ZXIgdGhhbiB0aGUgbnVtYmVyIG9mIHNpZ25pZmljYW50IGRpZ2l0cworICAgICAqIGluIHNvdXJjZSwgdGhlIHJlcHJlc2VudGF0aW9uIHdpbGwgYmUgcm91bmRlZC4gIElnbm9yZWQgaWYgPD0gMC4KKyAgICAgKiBAcGFyYW0gZml4ZWRQb2ludCBJZiB0cnVlLCB0aGVuIG1heGltdW1EaWdpdHMgaXMgdGhlIG1heGltdW0KKyAgICAgKiBmcmFjdGlvbmFsIGRpZ2l0cyB0byBiZSBjb252ZXJ0ZWQuICBJZiBmYWxzZSwgdG90YWwgZGlnaXRzLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHNldChqYXZhLm1hdGguQmlnRGVjaW1hbCBzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtYXhpbXVtRGlnaXRzLCBib29sZWFuIGZpeGVkUG9pbnQpIHsKKyAgICAgICAgc2V0QmlnRGVjaW1hbERpZ2l0cyhzb3VyY2UudG9TdHJpbmcoKSwgbWF4aW11bURpZ2l0cywgZml4ZWRQb2ludCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBTZXQgdGhlIGRpZ2l0IGxpc3QgdG8gYSByZXByZXNlbnRhdGlvbiBvZiB0aGUgZ2l2ZW4gQmlnRGVjaW1hbCB2YWx1ZS4KKyAgICAgKiBbYm5mXQorICAgICAqIEBwYXJhbSBzb3VyY2UgVmFsdWUgdG8gYmUgY29udmVydGVkCisgICAgICogQHBhcmFtIG1heGltdW1EaWdpdHMgVGhlIG1vc3QgZGlnaXRzIHdoaWNoIHNob3VsZCBiZSBjb252ZXJ0ZWQuCisgICAgICogSWYgbWF4aW11bURpZ2l0cyBpcyBsb3dlciB0aGFuIHRoZSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzCisgICAgICogaW4gc291cmNlLCB0aGUgcmVwcmVzZW50YXRpb24gd2lsbCBiZSByb3VuZGVkLiAgSWdub3JlZCBpZiA8PSAwLgorICAgICAqIEBwYXJhbSBmaXhlZFBvaW50IElmIHRydWUsIHRoZW4gbWF4aW11bURpZ2l0cyBpcyB0aGUgbWF4aW11bQorICAgICAqIGZyYWN0aW9uYWwgZGlnaXRzIHRvIGJlIGNvbnZlcnRlZC4gIElmIGZhbHNlLCB0b3RhbCBkaWdpdHMuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgc2V0KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtYXhpbXVtRGlnaXRzLCBib29sZWFuIGZpeGVkUG9pbnQpIHsKKyAgICAgICAgc2V0QmlnRGVjaW1hbERpZ2l0cyhzb3VyY2UudG9TdHJpbmcoKSwgbWF4aW11bURpZ2l0cywgZml4ZWRQb2ludCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogZXF1YWxpdHkgdGVzdCBiZXR3ZWVuIHR3byBkaWdpdCBsaXN0cy4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iaikgeworICAgICAgICBpZiAodGhpcyA9PSBvYmopICAgICAgICAgICAgICAgICAgICAgIC8vIHF1aWNrIGNoZWNrCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKCEob2JqIGluc3RhbmNlb2YgRGlnaXRMaXN0KSkgICAgICAgICAvLyAoMSkgc2FtZSBvYmplY3Q/CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIERpZ2l0TGlzdCBvdGhlciA9IChEaWdpdExpc3QpIG9iajsKKyAgICAgICAgaWYgKGNvdW50ICE9IG90aGVyLmNvdW50IHx8CisgICAgICAgIGRlY2ltYWxBdCAhPSBvdGhlci5kZWNpbWFsQXQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykKKyAgICAgICAgICAgIGlmIChkaWdpdHNbaV0gIT0gb3RoZXIuZGlnaXRzW2ldKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2VuZXJhdGVzIHRoZSBoYXNoIGNvZGUgZm9yIHRoZSBkaWdpdCBsaXN0LgorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgIGludCBoYXNoY29kZSA9IGRlY2ltYWxBdDsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspCisgICAgICAgICAgICBoYXNoY29kZSA9IGhhc2hjb2RlICogMzcgKyBkaWdpdHNbaV07CisKKyAgICAgICAgcmV0dXJuIGhhc2hjb2RlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIERpZ2l0TGlzdCByZXByZXNlbnRzIExvbmcuTUlOX1ZBTFVFOworICAgICAqIGZhbHNlLCBvdGhlcndpc2UuICBUaGlzIGlzIHJlcXVpcmVkIHNvIHRoYXQgZ2V0TG9uZygpIHdvcmtzLgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBpc0xvbmdNSU5fVkFMVUUoKQorICAgIHsKKyAgICAgICAgaWYgKGRlY2ltYWxBdCAhPSBjb3VudCB8fCBjb3VudCAhPSBNQVhfTE9OR19ESUdJVFMpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7ICsraSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGRpZ2l0c1tpXSAhPSBMT05HX01JTl9SRVBbaV0pIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGJ5dGVbXSBMT05HX01JTl9SRVA7CisKKyAgICBzdGF0aWMKKyAgICB7CisgICAgICAgIC8vIFN0b3JlIHRoZSByZXByZXNlbnRhdGlvbiBvZiBMT05HX01JTiB3aXRob3V0IHRoZSBsZWFkaW5nICctJworICAgICAgICBTdHJpbmcgcyA9IExvbmcudG9TdHJpbmcoTG9uZy5NSU5fVkFMVUUpOworICAgICAgICBMT05HX01JTl9SRVAgPSBuZXcgYnl0ZVtNQVhfTE9OR19ESUdJVFNdOworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBNQVhfTE9OR19ESUdJVFM7ICsraSkKKyAgICAgICAgeworICAgICAgICAgICAgTE9OR19NSU5fUkVQW2ldID0gKGJ5dGUpcy5jaGFyQXQoaSArIDEpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBmbG9vciBvZiB0aGUgbG9nIGJhc2UgMTAgb2YgYSBnaXZlbiBkb3VibGUuCisgICAgICogVGhpcyBtZXRob2QgY29tcGVuc2F0ZXMgZm9yIGluYWNjdXJhY2llcyB3aGljaCBhcmlzZSBuYXR1cmFsbHkgd2hlbgorICAgICAqIGNvbXB1dGluZyBsb2dzLCBhbmQgYWx3YXlzIGdpdmUgdGhlIGNvcnJlY3QgdmFsdWUuICBUaGUgcGFyYW1ldGVyCisgICAgICogbXVzdCBiZSBwb3NpdGl2ZSBhbmQgZmluaXRlLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBsb2cxMChkb3VibGUgZCkKKyAgICB7CisgICAgICAgIC8vIFRoZSByZWFzb24gdGhpcyByb3V0aW5lIGlzIG5lZWRlZCBpcyB0aGF0IHNpbXBseSB0YWtpbmcgdGhlCisgICAgICAgIC8vIGxvZyBhbmQgZGl2aWRpbmcgYnkgbG9nMTAgeWllbGRzIGEgcmVzdWx0IHdoaWNoIG1heSBiZSBvZmYKKyAgICAgICAgLy8gYnkgMSBkdWUgdG8gcm91bmRpbmcgZXJyb3JzLiAgRm9yIGV4YW1wbGUsIHRoZSBuYWl2ZSBsb2cxMAorICAgICAgICAvLyBvZiAxLjBlMzAwIHRha2VuIHRoaXMgd2F5IGlzIDI5OSwgcmF0aGVyIHRoYW4gMzAwLgorICAgICAgICBkb3VibGUgbG9nMTAgPSBNYXRoLmxvZyhkKSAvIExPRzEwOworICAgICAgICBpbnQgaWxvZzEwID0gKGludClNYXRoLmZsb29yKGxvZzEwKTsKKyAgICAgICAgLy8gUG9zaXRpdmUgbG9ncyBjb3VsZCBiZSB0b28gc21hbGwsIGUuZy4gMC45OSBpbnN0ZWFkIG9mIDEuMAorICAgICAgICBpZiAobG9nMTAgPiAwICYmIGQgPj0gTWF0aC5wb3coMTAsIGlsb2cxMCArIDEpKQorICAgICAgICB7CisgICAgICAgICAgICArK2lsb2cxMDsKKyAgICAgICAgfQorICAgICAgICAvLyBOZWdhdGl2ZSBsb2dzIGNvdWxkIGJlIHRvbyBiaWcsIGUuZy4gLTAuOTkgaW5zdGVhZCBvZiAtMS4wCisgICAgICAgIGVsc2UgaWYgKGxvZzEwIDwgMCAmJiBkIDwgTWF0aC5wb3coMTAsIGlsb2cxMCkpCisgICAgICAgIHsKKyAgICAgICAgICAgIC0taWxvZzEwOworICAgICAgICB9CisgICAgICAgIHJldHVybiBpbG9nMTA7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgZG91YmxlIExPRzEwID0gTWF0aC5sb2coMTAuMCk7CisKKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIGlmIChpc1plcm8oKSkgcmV0dXJuICIwIjsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoIjAuIik7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxjb3VudDsgKytpKSBidWYuYXBwZW5kKChjaGFyKWRpZ2l0c1tpXSk7CisgICAgICAgIGJ1Zi5hcHBlbmQoIngxMF4iKTsKKyAgICAgICAgYnVmLmFwcGVuZChkZWNpbWFsQXQpOworICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvRXNjYXBlVHJhbnNsaXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0VzY2FwZVRyYW5zbGl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDQwYTFhZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0VzY2FwZVRyYW5zbGl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwyMDEgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChjKSAyMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICAxMS8xOS8yMDAxICBhbGl1ICAgICAgICBDcmVhdGlvbi4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCisvKioKKyAqIEEgdHJhbnNsaXRlcmF0b3IgdGhhdCBjb252ZXJ0cyBVbmljb2RlIGNoYXJhY3RlcnMgdG8gYW4gZXNjYXBlCisgKiBmb3JtLiAgRXhhbXBsZXMgb2YgZXNjYXBlIGZvcm1zIGFyZSAiVSs0RTAxIiBhbmQgIiYjeDEwRkZGRjsiLgorICogRXNjYXBlIGZvcm1zIGhhdmUgYSBwcmVmaXggYW5kIHN1ZmZpeCwgZWl0aGVyIG9mIHdoaWNoIG1heSBiZQorICogZW1wdHksIGEgcmFkaXgsIHR5cGljYWxseSAxNiBvciAxMCwgYSBtaW5pbXVtIGRpZ2l0IGNvdW50LAorICogdHlwaWNhbGx5IDEsIDQsIG9yIDgsIGFuZCBhIGJvb2xlYW4gdGhhdCBzcGVjaWZpZXMgd2hldGhlcgorICogc3VwcGxlbWVudGFsIGNoYXJhY3RlcnMgYXJlIGhhbmRsZWQgYXMgMzItYml0IGNvZGUgcG9pbnRzIG9yIGFzIHR3bworICogMTYtYml0IGNvZGUgdW5pdHMuICBNb3N0IGVzY2FwZSBmb3JtcyBoYW5kbGUgMzItYml0IGNvZGUgcG9pbnRzLAorICogYnV0IHNvbWUsIHN1Y2ggYXMgdGhlIEphdmEgZm9ybSwgaW50ZW50aW9uYWxseSBicmVhayB0aGVtIGludG8gdHdvCisgKiBzdXJyb2dhdGUgcGFpcnMsIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgorICoKKyAqIDxwPlNvbWUgZXNjYXBlIGZvcm1zIGFjdHVhbGx5IGhhdmUgdHdvIGRpZmZlcmVudCBwYXR0ZXJucywgb25lIGZvcgorICogQk1QIGNoYXJhY3RlcnMgKDAuLkZGRkYpIGFuZCBvbmUgZm9yIHN1cHBsZW1lbnRzICg+RkZGRikuICBUbworICogaGFuZGxlIHRoaXMsIGEgc2Vjb25kIEVzY2FwZVRyYW5zbGl0ZXJhdG9yIG1heSBiZSBkZWZpbmVkIHRoYXQKKyAqIHNwZWNpZmllcyB0aGUgcGF0dGVybiB0byBiZSBwcm9kdWNlZCBmb3Igc3VwcGxlbWVudGFscy4gIEFuIGV4YW1wbGUKKyAqIG9mIGEgZm9ybSB0aGF0IHJlcXVpcmVzIHRoaXMgaXMgdGhlIEMgZm9ybSwgd2hpY2ggdXNlcyAiXFx1RkZGRiIKKyAqIGZvciBCTVAgY2hhcmFjdGVycyBhbmQgIlxcVTAwMTBGRkZGIiBmb3Igc3VwcGxlbWVudGFscy4KKyAqCisgKiA8cD5UaGlzIGNsYXNzIGlzIHBhY2thZ2UgcHJpdmF0ZS4gIEl0IHJlZ2lzdGVycyBzZXZlcmFsIHN0YW5kYXJkCisgKiB2YXJpYW50cyB3aXRoIHRoZSBzeXN0ZW0gd2hpY2ggYXJlIHRoZW4gYWNjZXNzZWQgdmlhIHRoZWlyIElEcy4KKyAqCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAdmVyc2lvbiAkUkNTZmlsZTogRXNjYXBlVHJhbnNsaXRlcmF0b3IuamF2YSx2ICQgJFJldmlzaW9uOiAxLjUgJCAkRGF0ZTogMjAwMi8wMi8yNSAyMjo0Mzo1OCAkCisgKi8KK2NsYXNzIEVzY2FwZVRyYW5zbGl0ZXJhdG9yIGV4dGVuZHMgVHJhbnNsaXRlcmF0b3IgeworCisgICAgLyoqCisgICAgICogVGhlIHByZWZpeCBvZiB0aGUgZXNjYXBlIGZvcm07IG1heSBiZSBlbXB0eSwgYnV0IHVzdWFsbHkgaXNuJ3QuCisgICAgICogTWF5IG5vdCBiZSBudWxsLgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHByZWZpeDsKKworICAgIC8qKgorICAgICAqIFRoZSBwcmVmaXggb2YgdGhlIGVzY2FwZSBmb3JtOyBvZnRlbiBlbXB0eS4gIE1heSBub3QgYmUgbnVsbC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBzdWZmaXg7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcmFkaXggdG8gZGlzcGxheSB0aGUgbnVtYmVyIGluLiAgVHlwaWNhbGx5IDE2IG9yIDEwLiAgTXVzdAorICAgICAqIGJlIGluIHRoZSByYW5nZSAyIHRvIDM2LgorICAgICAqLworICAgIHByaXZhdGUgaW50IHJhZGl4OworCisgICAgLyoqCisgICAgICogVGhlIG1pbmltdW0gbnVtYmVyIG9mIGRpZ2l0cy4gIFR5cGljYWxseSAxLCA0LCBvciA4LiAgVmFsdWVzCisgICAgICogbGVzcyB0aGFuIDEgYXJlIGVxdWl2YWxlbnQgdG8gMS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtaW5EaWdpdHM7CisKKyAgICAvKioKKyAgICAgKiBJZiB0cnVlLCBzdXBwbGVtZW50YWxzIGFyZSBoYW5kbGVkIGFzIDMyLWJpdCBjb2RlIHBvaW50cy4gIElmCisgICAgICogZmFsc2UsIHRoZXkgYXJlIGhhbmRsZWQgYXMgdHdvIDE2LWJpdCBjb2RlIHVuaXRzLgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBncm9rU3VwcGxlbWVudGFsczsKKworICAgIC8qKgorICAgICAqIFRoZSBmb3JtIHRvIGJlIHVzZWQgZm9yIHN1cHBsZW1lbnRhbHMuICBJZiB0aGlzIGlzIG51bGwgdGhlbgorICAgICAqIHRoZSBzYW1lIGZvcm0gaXMgdXNlZCBmb3IgQk1QIGNoYXJhY3RlcnMgYW5kIHN1cHBsZW1lbnRhbHMuICBJZgorICAgICAqIHRoaXMgaXMgbm90IG51bGwgYW5kIGlmIGdyb2tTdXBwbGVtZW50YWxzIGlzIHRydWUgdGhlbiB0aGUKKyAgICAgKiBwcmVmaXgsIHN1ZmZpeCwgcmFkaXgsIGFuZCBtaW5EaWdpdHMgb2YgdGhpcyBvYmplY3QgYXJlIHVzZWQKKyAgICAgKiBmb3Igc3VwcGxlbWVudGFscy4KKyAgICAgKi8KKyAgICBwcml2YXRlIEVzY2FwZVRyYW5zbGl0ZXJhdG9yIHN1cHBsZW1lbnRhbEhhbmRsZXI7CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlcnMgc3RhbmRhcmQgdmFyaWFudHMgd2l0aCB0aGUgc3lzdGVtLiAgQ2FsbGVkIGJ5CisgICAgICogVHJhbnNsaXRlcmF0b3IgZHVyaW5nIGluaXRpYWxpemF0aW9uLgorICAgICAqLworICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyKCkgeworICAgICAgICAvLyBVbmljb2RlOiAiVSsxMEZGRkYiIGhleCwgbWluPTQsIG1heD02CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiQW55LUhleC9Vbmljb2RlIiwgbmV3IFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkoKSB7CisgICAgICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFc2NhcGVUcmFuc2xpdGVyYXRvcigiQW55LUhleC9Vbmljb2RlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVKyIsICIiLCAxNiwgNCwgdHJ1ZSwgbnVsbCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICAKKyAgICAgICAgLy8gSmF2YTogIlxcdUZGRkYiIGhleCwgbWluPTQsIG1heD00CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiQW55LUhleC9KYXZhIiwgbmV3IFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkoKSB7CisgICAgICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFc2NhcGVUcmFuc2xpdGVyYXRvcigiQW55LUhleC9KYXZhIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXHUiLCAiIiwgMTYsIDQsIGZhbHNlLCBudWxsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIAorICAgICAgICAvLyBDOiAiXFx1RkZGRiIgaGV4LCBtaW49NCwgbWF4PTQ7IFxcVTAwMTBGRkZGIGhleCwgbWluPTgsIG1heD04CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiQW55LUhleC9DIiwgbmV3IFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkoKSB7CisgICAgICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFc2NhcGVUcmFuc2xpdGVyYXRvcigiQW55LUhleC9DIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXHUiLCAiIiwgMTYsIDQsIHRydWUsCisgICAgICAgICAgICAgICAgICAgICAgIG5ldyBFc2NhcGVUcmFuc2xpdGVyYXRvcigiIiwgIlxcVSIsICIiLCAxNiwgOCwgdHJ1ZSwgbnVsbCkpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgCisgICAgICAgIC8vIFhNTDogIiYjeDEwRkZGRjsiIGhleCwgbWluPTEsIG1heD02CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiQW55LUhleC9YTUwiLCBuZXcgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzY2FwZVRyYW5zbGl0ZXJhdG9yKCJBbnktSGV4L1hNTCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJiN4IiwgIjsiLCAxNiwgMSwgdHJ1ZSwgbnVsbCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworCisgICAgICAgIC8vIFhNTDEwOiAiJjExMTQxMTE7IiBkZWMsIG1pbj0xLCBtYXg9NyAobm90IHJlYWxseSAiQW55LUhleCIpCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiQW55LUhleC9YTUwxMCIsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRXNjYXBlVHJhbnNsaXRlcmF0b3IoIkFueS1IZXgvWE1MMTAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiYjIiwgIjsiLCAxMCwgMSwgdHJ1ZSwgbnVsbCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworCisgICAgICAgIC8vIFBlcmw6ICJcXHh7MjYzQX0iIGhleCwgbWluPTEsIG1heD02CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiQW55LUhleC9QZXJsIiwgbmV3IFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkoKSB7CisgICAgICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFc2NhcGVUcmFuc2xpdGVyYXRvcigiQW55LUhleC9QZXJsIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXHh7IiwgIn0iLCAxNiwgMSwgdHJ1ZSwgbnVsbCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworCisgICAgICAgIC8vIEdlbmVyaWMKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJGYWN0b3J5KCJBbnktSGV4IiwgbmV3IFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkoKSB7CisgICAgICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFc2NhcGVUcmFuc2xpdGVyYXRvcigiQW55LUhleCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFx1IiwgIiIsIDE2LCA0LCBmYWxzZSwgbnVsbCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYW4gZXNjYXBlIHRyYW5zbGl0ZXJhdG9yIHdpdGggdGhlIGdpdmVuIElEIGFuZAorICAgICAqIHBhcmFtZXRlcnMuICBTZWUgdGhlIGNsYXNzIG1lbWJlciBkb2N1bWVudGF0aW9uIGZvciBkZXRhaWxzLgorICAgICAqLworICAgIEVzY2FwZVRyYW5zbGl0ZXJhdG9yKFN0cmluZyBJRCwgU3RyaW5nIHByZWZpeCwgU3RyaW5nIHN1ZmZpeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmFkaXgsIGludCBtaW5EaWdpdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBncm9rU3VwcGxlbWVudGFscywKKyAgICAgICAgICAgICAgICAgICAgICAgICBFc2NhcGVUcmFuc2xpdGVyYXRvciBzdXBwbGVtZW50YWxIYW5kbGVyKSB7CisgICAgICAgIHN1cGVyKElELCBudWxsKTsKKyAgICAgICAgdGhpcy5wcmVmaXggPSBwcmVmaXg7CisgICAgICAgIHRoaXMuc3VmZml4ID0gc3VmZml4OworICAgICAgICB0aGlzLnJhZGl4ID0gcmFkaXg7CisgICAgICAgIHRoaXMubWluRGlnaXRzID0gbWluRGlnaXRzOworICAgICAgICB0aGlzLmdyb2tTdXBwbGVtZW50YWxzID0gZ3Jva1N1cHBsZW1lbnRhbHM7CisgICAgICAgIHRoaXMuc3VwcGxlbWVudGFsSGFuZGxlciA9IHN1cHBsZW1lbnRhbEhhbmRsZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyB7QGxpbmsgVHJhbnNsaXRlcmF0b3IjaGFuZGxlVHJhbnNsaXRlcmF0ZX0uCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlVHJhbnNsaXRlcmF0ZShSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9zaXRpb24gcG9zLCBib29sZWFuIGluY3JlbWVudGFsKSB7CisgICAgICAgIGludCBzdGFydCA9IHBvcy5zdGFydDsKKyAgICAgICAgaW50IGxpbWl0ID0gcG9zLmxpbWl0OworCisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKHByZWZpeCk7CisgICAgICAgIGludCBwcmVmaXhMZW4gPSBwcmVmaXgubGVuZ3RoKCk7CisgICAgICAgIGJvb2xlYW4gcmVkb1ByZWZpeCA9IGZhbHNlOworCisgICAgICAgIHdoaWxlIChzdGFydCA8IGxpbWl0KSB7CisgICAgICAgICAgICBpbnQgYyA9IGdyb2tTdXBwbGVtZW50YWxzID8gdGV4dC5jaGFyMzJBdChzdGFydCkgOiB0ZXh0LmNoYXJBdChzdGFydCk7CisgICAgICAgICAgICBpbnQgY2hhckxlbiA9IGdyb2tTdXBwbGVtZW50YWxzID8gVVRGMTYuZ2V0Q2hhckNvdW50KGMpIDogMTsKKworICAgICAgICAgICAgaWYgKChjICYgMHhGRkZGMDAwMCkgIT0gMCAmJiBzdXBwbGVtZW50YWxIYW5kbGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBidWYuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoc3VwcGxlbWVudGFsSGFuZGxlci5wcmVmaXgpOworICAgICAgICAgICAgICAgIFV0aWxpdHkuYXBwZW5kTnVtYmVyKGJ1ZiwgYywgc3VwcGxlbWVudGFsSGFuZGxlci5yYWRpeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwbGVtZW50YWxIYW5kbGVyLm1pbkRpZ2l0cyk7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChzdXBwbGVtZW50YWxIYW5kbGVyLnN1ZmZpeCk7CisgICAgICAgICAgICAgICAgcmVkb1ByZWZpeCA9IHRydWU7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChyZWRvUHJlZml4KSB7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQocHJlZml4KTsKKyAgICAgICAgICAgICAgICAgICAgcmVkb1ByZWZpeCA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5zZXRMZW5ndGgocHJlZml4TGVuKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgVXRpbGl0eS5hcHBlbmROdW1iZXIoYnVmLCBjLCByYWRpeCwgbWluRGlnaXRzKTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKHN1ZmZpeCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRleHQucmVwbGFjZShzdGFydCwgc3RhcnQgKyBjaGFyTGVuLCBidWYudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBzdGFydCArPSBidWYubGVuZ3RoKCk7CisgICAgICAgICAgICBsaW1pdCArPSBidWYubGVuZ3RoKCkgLSBjaGFyTGVuOworICAgICAgICB9CisKKyAgICAgICAgcG9zLmNvbnRleHRMaW1pdCArPSBsaW1pdCAtIHBvcy5saW1pdDsKKyAgICAgICAgcG9zLmxpbWl0ID0gbGltaXQ7CisgICAgICAgIHBvcy5zdGFydCA9IHN0YXJ0OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0Z1bmN0aW9uUmVwbGFjZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0Z1bmN0aW9uUmVwbGFjZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mMzA3MzkwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvRnVuY3Rpb25SZXBsYWNlci5qYXZhCkBAIC0wLDAgKzEsODUgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChjKSAyMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uCisqICAgYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICAwMS8xNC8yMDAyICBhbGl1ICAgICAgICBDcmVhdGlvbi4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKKy8qKgorICogQSByZXBsYWNlciB0aGF0IGNhbGxzIGEgdHJhbnNsaXRlcmF0b3IgdG8gZ2VuZXJhdGUgaXRzIG91dHB1dCB0ZXh0LgorICogVGhlIGlucHV0IHRleHQgdG8gdGhlIHRyYW5zbGl0ZXJhdG9yIGlzIHRoZSBvdXRwdXQgb2YgYW5vdGhlcgorICogVW5pY29kZVJlcGxhY2VyIG9iamVjdC4gIFRoYXQgaXMsIHRoaXMgcmVwbGFjZXIgd3JhcHMgYW5vdGhlcgorICogcmVwbGFjZXIgd2l0aCBhIHRyYW5zbGl0ZXJhdG9yLgorICogQGF1dGhvciBBbGFuIExpdQorICovCitjbGFzcyBGdW5jdGlvblJlcGxhY2VyIGltcGxlbWVudHMgVW5pY29kZVJlcGxhY2VyIHsKKworICAgIC8qKgorICAgICAqIFRoZSB0cmFuc2xpdGVyYXRvci4gIE11c3Qgbm90IGJlIG51bGwuCisgICAgICovCisgICAgcHJpdmF0ZSBUcmFuc2xpdGVyYXRvciB0cmFuc2xpdDsKKworICAgIC8qKgorICAgICAqIFRoZSByZXBsYWNlciBvYmplY3QuICBUaGlzIGdlbmVyYXRlcyB0ZXh0IHRoYXQgaXMgdGhlbgorICAgICAqIHByb2Nlc3NlZCBieSAndHJhbnNsaXQnLiAgTXVzdCBub3QgYmUgbnVsbC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFVuaWNvZGVSZXBsYWNlciByZXBsYWNlcjsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIHJlcGxhY2VyIHRoYXQgdGFrZXMgdGhlIG91dHB1dCBvZiB0aGUgZ2l2ZW4KKyAgICAgKiByZXBsYWNlciwgcGFzc2VzIGl0IHRocm91Z2ggdGhlIGdpdmVuIHRyYW5zbGl0ZXJhdG9yLCBhbmQgZW1pdHMKKyAgICAgKiB0aGUgcmVzdWx0IGFzIG91dHB1dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgRnVuY3Rpb25SZXBsYWNlcihUcmFuc2xpdGVyYXRvciB0aGVUcmFuc2xpdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlUmVwbGFjZXIgdGhlUmVwbGFjZXIpIHsKKyAgICAgICAgdHJhbnNsaXQgPSB0aGVUcmFuc2xpdDsKKyAgICAgICAgcmVwbGFjZXIgPSB0aGVSZXBsYWNlcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVbmljb2RlUmVwbGFjZXIgQVBJCisgICAgICovCisgICAgcHVibGljIGludCByZXBsYWNlKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBjdXJzb3IpIHsKKworICAgICAgICAvLyBGaXJzdCBkZWxlZ2F0ZSB0byBzdWJvcmRpbmF0ZSByZXBsYWNlcgorICAgICAgICBpbnQgbGVuID0gcmVwbGFjZXIucmVwbGFjZSh0ZXh0LCBzdGFydCwgbGltaXQsIGN1cnNvcik7CisgICAgICAgIGxpbWl0ID0gc3RhcnQgKyBsZW47CisKKyAgICAgICAgLy8gTm93IHRyYW5zbGl0ZXJhdGUKKyAgICAgICAgbGltaXQgPSB0cmFuc2xpdC50cmFuc2xpdGVyYXRlKHRleHQsIHN0YXJ0LCBsaW1pdCk7CisKKyAgICAgICAgcmV0dXJuIGxpbWl0IC0gc3RhcnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogVW5pY29kZVJlcGxhY2VyIEFQSQorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9SZXBsYWNlclBhdHRlcm4oYm9vbGVhbiBlc2NhcGVVbnByaW50YWJsZSkgeworICAgICAgICBTdHJpbmdCdWZmZXIgcnVsZSA9IG5ldyBTdHJpbmdCdWZmZXIoIiYiKTsKKyAgICAgICAgcnVsZS5hcHBlbmQodHJhbnNsaXQuZ2V0SUQoKSk7CisgICAgICAgIHJ1bGUuYXBwZW5kKCIoICIpOworICAgICAgICBydWxlLmFwcGVuZChyZXBsYWNlci50b1JlcGxhY2VyUGF0dGVybihlc2NhcGVVbnByaW50YWJsZSkpOworICAgICAgICBydWxlLmFwcGVuZCgiICkiKTsKKyAgICAgICAgcmV0dXJuIHJ1bGUudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVbmlvbiB0aGUgc2V0IG9mIGFsbCBjaGFyYWN0ZXJzIHRoYXQgbWF5IG91dHB1dCBieSB0aGlzIG9iamVjdAorICAgICAqIGludG8gdGhlIGdpdmVuIHNldC4KKyAgICAgKiBAcGFyYW0gdG9VbmlvblRvIHRoZSBzZXQgaW50byB3aGljaCB0byB1bmlvbiB0aGUgb3V0cHV0IGNoYXJhY3RlcnMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhZGRSZXBsYWNlbWVudFNldFRvKFVuaWNvZGVTZXQgdG9VbmlvblRvKSB7CisgICAgICAgIHRvVW5pb25Uby5hZGRBbGwodHJhbnNsaXQuZ2V0VGFyZ2V0U2V0KCkpOworICAgIH0KK30KKworLy9lb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0hleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9IZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjk5YmM2NmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9IZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMzgxIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvdGV4dC9BdHRpYy9IZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvci5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzI1IDIyOjQzOjU4ICQgCisgKiAkUmV2aXNpb246IDEuMTMgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CitpbXBvcnQgamF2YS51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCisvKioKKyAqIEEgdHJhbnNsaXRlcmF0b3IgdGhhdCBjb252ZXJ0cyBmcm9tIGhleGFkZWNpbWFsIFVuaWNvZGUgZXNjYXBlCisgKiBzZXF1ZW5jZXMgdG8gdGhlIGNoYXJhY3RlcnMgdGhleSByZXByZXNlbnQuICBGb3IgZXhhbXBsZSwgIlUrMDA0MCIKKyAqIGFuZCAnXHUwMDQwJy4gIEEgZGVmYXVsdCBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvciByZWNvZ25pemVzIHRoZQorICogcHJlZml4ZXMgIlUrIiwgInUrIiwgIiYjOTI7VSIsIGFuZCAiJiM5Mjt1Ii4gIEhleCB2YWx1ZXMgbWF5IGJlCisgKiB1cHBlci0gb3IgbG93ZXJjYXNlLiAgQnkgY2FsbGluZyB0aGUgYXBwbHlQYXR0ZXJuKCkgbWV0aG9kLCBvbmUKKyAqIG9yIG1vcmUgY3VzdG9tIHByZWZpeC9zdWZmaXggcGFpcnMgbWF5IGJlIHNwZWNpZmllZC4gIFNlZQorICogYXBwbHlQYXR0ZXJuKCkgZm9yIGRldGFpbHMuCisgKgorICogQGF1dGhvciBBbGFuIExpdQorICogQHZlcnNpb24gJFJDU2ZpbGU6IEhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yLmphdmEsdiAkICRSZXZpc2lvbjogMS4xMyAkICREYXRlOiAyMDAyLzAyLzI1IDIyOjQzOjU4ICQKKyAqLworcHVibGljIGNsYXNzIEhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yIGV4dGVuZHMgVHJhbnNsaXRlcmF0b3IgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAiXHUwMEE5IElCTSBDb3Jwb3JhdGlvbiAxOTk5LiBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvKioKKyAgICAgKiBQYWNrYWdlIGFjY2Vzc2libGUgSUQgZm9yIHRoaXMgdHJhbnNsaXRlcmF0b3IuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBfSUQgPSAiSGV4LUFueSI7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIHBhdHRlcm4gZW5jb2RlcyB0aGUgZm9sbG93aW5nIHNwZWNzIGZvciB0aGUgZGVmYXVsdCBjb25zdHJ1Y3RvcjoKKyAgICAgKiAgIFxcdTAwMDAKKyAgICAgKiAgIFxcVTAwMDAKKyAgICAgKiAgIHUrMDAwMAorICAgICAqICAgVSswMDAwCisgICAgICogVGhlIG11bHRpcGxlIGJhY2tzbGFzaGVzIHJlc29sdmUgdG8gYSBzaW5nbGUgYmFja3NsYXNoCisgICAgICogaW4gdGhlIGVmZmVjdGl2ZSBwcmVmaXguCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIERFRkFVTFRfUEFUVEVSTiA9ICJcXFxcdTAwMDA7XFxcXFUwMDAwO3UrMDAwMDtVKzAwMDAiOworCisgICAgLy8gQ2hhcmFjdGVyIGNvbnN0YW50cyBmb3Igc3BlY2lhbCBwYXR0ZXJuIGNoYXJhY3RlcnMKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIFNFTUlDT0xPTiA9ICc7JzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIFpFUk8gICAgICA9ICcwJzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIFBPVU5EICAgICA9ICcjJzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEJBQ0tTTEFTSCA9ICdcXCc7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcGF0dGVybiBmb3IgdGhpcyB0cmFuc2xpdGVyYXRvcgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHBhdHRlcm47CisKKyAgICAvKioKKyAgICAgKiBUaGUgcHJvY2Vzc2VkIHBhdHRlcm4gc3BlY2lmaWNhdGlvbi4gIFNlZSBhcHBseVBhdHRlcm4oKSBmb3IKKyAgICAgKiBkZXRhaWxzLgorICAgICAqLworICAgIHByaXZhdGUgY2hhcltdIGFmZml4ZXM7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbnVtYmVyIG9mIGRpZmZlcmVudCBhZmZpeCBzZXRzIGluIGFmZml4ZXMuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgYWZmaXhDb3VudDsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSB0cmFuc2xpdGVyYXRvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgSGV4VG9Vbmljb2RlVHJhbnNsaXRlcmF0b3IoKSB7CisgICAgICAgIHN1cGVyKF9JRCwgbnVsbCk7CisgICAgICAgIGFwcGx5UGF0dGVybihERUZBVUxUX1BBVFRFUk4pOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSB0cmFuc2xpdGVyYXRvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgSGV4VG9Vbmljb2RlVHJhbnNsaXRlcmF0b3IoU3RyaW5nIHRoZVBhdHRlcm4pIHsKKyAgICAgICAgdGhpcyh0aGVQYXR0ZXJuLCBudWxsKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqLworICAgIHB1YmxpYyBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvcihTdHJpbmcgdGhlUGF0dGVybiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZUZpbHRlciB0aGVGaWx0ZXIpIHsKKyAgICAgICAgc3VwZXIoX0lELCB0aGVGaWx0ZXIpOworICAgICAgICBhcHBseVBhdHRlcm4odGhlUGF0dGVybik7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBwYXR0ZXJucyByZWNvZ25pemVkIGJ5IHRoaXMgdHJhbnNsaXRlcmF0b3IuICBPbmUgb3IKKyAgICAgKiBtb3JlIHBhdHRlcm5zIG1heSBiZSBzcGVjaWZpZWQsIHNlcGFyYXRlZCBieSBzZW1pY29sb25zICgnOycpLgorICAgICAqIEVhY2ggcGF0dGVybiBjb250YWlucyB6ZXJvIG9yIG1vcmUgcHJlZml4IGNoYXJhY3RlcnMsIG9uZSBvcgorICAgICAqIG1vcmUgZGlnaXQgY2hhcmFjdGVycywgYW5kIHplcm8gb3IgbW9yZSBzdWZmaXggY2hhcmFjdGVycy4gIFRoZQorICAgICAqIGRpZ2l0IGNoYXJhY3RlcnMgaW5kaWNhdGVzIG9wdGlvbmFsIGRpZ2l0cyAoJyMnKSBmb2xsb3dlZCBieQorICAgICAqIHJlcXVpcmVkIGRpZ2l0cyAoJzAnKS4gIFRoZSB0b3RhbCBudW1iZXIgb2YgZGlnaXRzIGNhbm5vdAorICAgICAqIGV4Y2VlZCA0LCBhbmQgbXVzdCBiZSBhdCBsZWFzdCAxIHJlcXVpcmVkIGRpZ2l0LiAgVXNlIGEKKyAgICAgKiBiYWNrc2xhc2ggKCdcXCcpIHRvIGVzY2FwZSBhbnkgb2YgdGhlIHNwZWNpYWwgY2hhcmFjdGVycy4gIEFuCisgICAgICogZW1wdHkgcGF0dGVybiBpcyBhbGxvd2VkOyBpdCBzcGVjaWZpZXMgYSB0cmFuc2xpdGVyYXRvciB0aGF0CisgICAgICogZG9lcyBub3RoaW5nLgorICAgICAqCisgICAgICogPHA+RXhhbXBsZTogIlUrMDAwMDs8IyMjMD4iIHNwZWNpZmllcyB0d28gcGF0dGVybnMuICBUaGUgZmlyc3QKKyAgICAgKiBoYXMgYSBwcmVmaXggb2YgIlUrIiwgZXhhY3RseSBmb3VyIGRpZ2l0cywgYW5kIG5vIHN1ZmZpeC4gIFRoZQorICAgICAqIHNlY29uZCBoYXMgYSBwcmVmaXggb2YgIjwiLCBiZXR3ZWVuIG9uZSBhbmQgZm91ciBkaWdpdHMsIGFuZCBhCisgICAgICogc3VmZml4IG9mICI+Ii4KKyAgICAgKgorICAgICAqIDxwPjxwcmU+CisgICAgICogcGF0dGVybiA6PSBzcGVjIHwgKCBwYXR0ZXJuICc7JyBzcGVjICkKKyAgICAgKiBzcGVjIDo9IHByZWZpeC1jaGFyKiBkaWdpdC1zcGVjIHN1ZmZpeC1jaGFyKgorICAgICAqIGRpZ2l0LXNwZWMgOj0gJyMnKiAnMCcrCisgICAgICogcHJlZml4LWNoYXIgOj0gW15zcGVjaWFsLWNoYXJdIHwgJ1xcJyBzcGVjaWFsLWNoYXIKKyAgICAgKiBzdWZmaXgtY2hhciA6PSBbXnNwZWNpYWwtY2hhcl0gfCAnXFwnIHNwZWNpYWwtY2hhcgorICAgICAqIHNwZWNpYWwtY2hhciA6PSAnOycgfCAnMCcgfCAnIycgfCAnXFwnCisgICAgICogPC9wcmU+CisgICAgICovCisgICAgcHVibGljIHZvaWQgYXBwbHlQYXR0ZXJuKFN0cmluZyBwYXR0ZXJuKSB7CisKKyAgICAgICAgLyogVGhlIHBhdHRlcm4gaXMgcHJvY2Vzc2VkIGFuZCBzdG9yZWQgaW4gYWZmaXhlcy4gIFRoZSBwYXR0ZXJuCisgICAgICAgICAqIGNvbnNpc3RzIG9mIHplcm8gb3IgbW9yZSBhZmZpeGVzLiAgRWFjaCBhZmZpeCBpcyBwYXJzZWQgdG8KKyAgICAgICAgICogZGV0ZXJtaW5lIHRoZSBwcmVmaXgsIHN1ZmZpeCwgbWluaW11bSBkaWdpdCBjb3VudCwgYW5kIG1heGltdW0KKyAgICAgICAgICogZGlnaXQgY291bnQuICBUaGVzZSB2YWx1ZXMgYXJlIHRoZW4gc3RvcmVkIGFzIGEgZm91ciBjaGFyYWN0ZXIKKyAgICAgICAgICogaGVhZGVyLiAgVGhhdCBpcywgdGhlaXIgbnVtZXJpYyB2YWx1ZXMgYXJlIGNhc3QgdG8gVUNoYXJzIGFuZAorICAgICAgICAgKiBzdG9yZWQgaW4gdGhlIHN0cmluZy4gIEZvbGxvd2luZyB0aGVzZSBmb3VyIGNoYXJhY3RlcnMsIHRoZSBwcmVmaXgKKyAgICAgICAgICogY2hhcmFjdGVycywgdGhlbiBzdWZmaXggY2hhcmFjdGVycyBhcmUgc3RvcmVkLiAgRWFjaCBzcGVjIHRha2VzCisgICAgICAgICAqIG4rNCBjaGFyYWN0ZXJzLCB3aGVyZSBuIGlzIHRoZSB0b3RhbCBsZW5ndGggb2YgdGhlIHByZWZpeCBhbmQKKyAgICAgICAgICogc3VmZml4LgorICAgICAgICAgKi8KKworICAgICAgICBTdHJpbmdCdWZmZXIgYWZmaXhlcyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgYWZmaXhDb3VudCA9IDA7CisKKyAgICAgICAgLyogVGhlIG1vZGUgc3BlY2lmaWVzIHdoZXJlIHdlIGFyZSBpbiBlYWNoIHNwZWMuCisgICAgICAgICAqIG1vZGUgMCA9IGluIHByZWZpeAorICAgICAgICAgKiBtb2RlIDEgPSBpbiBvcHRpb25hbCBkaWdpdHMgKCMpCisgICAgICAgICAqIG1vZGUgMiA9IGluIHJlcXVpcmVkIGRpZ2l0cyAoMCkKKyAgICAgICAgICogbW9kZSAzID0gaW4gc3VmZml4CisgICAgICAgICAqLworICAgICAgICBpbnQgbW9kZSA9IDA7CisKKyAgICAgICAgaW50IHByZWZpeExlbiA9IDAsIHN1ZmZpeExlbiA9IDAsIG1pbkRpZ2l0cyA9IDAsIG1heERpZ2l0cyA9IDA7CisgICAgICAgIGludCBzdGFydCA9IDA7CisKKyAgICAgICAgLyogVG8gbWFrZSBwYXJzaW5nIGVhc2llciwgd2UgYXBwZW5kIGEgdmlydHVhbCAnOycgYXQgdGhlIGVuZCBvZgorICAgICAgICAgKiB0aGUgcGF0dGVybiBzdHJpbmcsIGlmIHRoZXJlIGlzbid0IG9uZSBhbHJlYWR5LiAgV2hlbiB3ZSBnZXQgdG8KKyAgICAgICAgICogdGhlIGluZGV4IHBhdHRlcm4ubGVuZ3RoKCkgKHRoYXQgaXMsIG9uZSBwYXN0IHRoZSBlbmQpLCB3ZQorICAgICAgICAgKiBjcmVhdGUgYSB2aXJ0dWFsICc7JyBpZiBuZWNlc3NhcnkuCisgICAgICAgICAqLworICAgICAgICBjaGFyIGMgPSAwOyAgICAgICAgICAgICAgICAvLyBUaGVzZSBhcmUgb3V0c2lkZSB0aGUgbG9vcCBzbyB3ZSBjYW4KKyAgICAgICAgYm9vbGVhbiBpc0xpdGVyYWwgPSBmYWxzZTsgLy8gc2VlIHRoZSBwcmV2aW91cyBjaGFyYWN0ZXIuLi4KKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPD1wYXR0ZXJuLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIC8vIENyZWF0ZSB0aGUgdmlydHVhbCB0cmFpbGluZyAnOycgaWYgbmVjZXNzYXJ5CisgICAgICAgICAgICBpZiAoaSA9PSBwYXR0ZXJuLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGxhc3QgY2hhcmFjdGVyIHdhcyBub3QgYSBub24tbGl0ZXJhbCAnOycuLi4KKyAgICAgICAgICAgICAgICBpZiAoaSA+IDAgJiYgIShjID09IFNFTUlDT0xPTiAmJiAhaXNMaXRlcmFsKSkgeworICAgICAgICAgICAgICAgICAgICBjID0gU0VNSUNPTE9OOworICAgICAgICAgICAgICAgICAgICBpc0xpdGVyYWwgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGMgPSBwYXR0ZXJuLmNoYXJBdChpKTsKKyAgICAgICAgICAgICAgICBpc0xpdGVyYWwgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGMgPT0gQkFDS1NMQVNIKSB7CisgICAgICAgICAgICAgICAgaWYgKChpKzEpPHBhdHRlcm4ubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaXNMaXRlcmFsID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYyA9IHBhdHRlcm4uY2hhckF0KCsraSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gVHJhaWxpbmcgJ1xcJworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJUcmFpbGluZyAnXFwnIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIWlzTGl0ZXJhbCkgeworICAgICAgICAgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgICAgIGNhc2UgUE9VTkQ6CisgICAgICAgICAgICAgICAgICAgIC8vIFNlZWluZyBhICcjJyBtb3ZlcyB1cyBmcm9tIG1vZGUgMCAocHJlZml4KSB0byBtb2RlIDEKKyAgICAgICAgICAgICAgICAgICAgLy8gKG9wdGlvbmFsIGRpZ2l0cykuCisgICAgICAgICAgICAgICAgICAgIGlmIChtb2RlID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrbW9kZTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtb2RlICE9IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVucXVvdGVkICcjJworICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiVW5xdW90ZWQgJyMnIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgKyttYXhEaWdpdHM7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgWkVSTzoKKyAgICAgICAgICAgICAgICAgICAgLy8gU2VlaW5nIGEgJzAnIG1vdmVzIHVzIHRvIG1vZGUgMiAocmVxdWlyZWQgZGlnaXRzKQorICAgICAgICAgICAgICAgICAgICBpZiAobW9kZSA8IDIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1vZGUgPSAyOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1vZGUgIT0gMikgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gVW5xdW90ZWQgJzAnCisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJVbnF1b3RlZCAnMCciKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICArK21pbkRpZ2l0czsKKyAgICAgICAgICAgICAgICAgICAgKyttYXhEaWdpdHM7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgU0VNSUNPTE9OOgorICAgICAgICAgICAgICAgICAgICBpZiAobWluRGlnaXRzIDwgMSB8fCBtYXhEaWdpdHMgPiA0CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBJbnZhbGlkIG1pbi9tYXggZGlnaXQgY291bnQKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IHByZWZpeExlbiA+IDB4RkZGRiB8fCBzdWZmaXhMZW4gPiAweEZGRkYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN1ZmZpeCBvciBwcmVmaXggdG9vIGxvbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlN1ZmZpeCBvciBwcmVmaXggdG9vIGxvbmciKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGVyZSB3YXMgbm8gcHJlZml4IGFuZCBubyBzdWZmaXgsIHRoZW4gdGhlCisgICAgICAgICAgICAgICAgICAgIC8vIGhlYWRlciB3aWxsIG5vdCBoYXZlIGJlZW4gYWxsb2NhdGVkIHlldC4gIFdlIG5lZWQKKyAgICAgICAgICAgICAgICAgICAgLy8gYWxsb2NhdGUgdGhlIGhlYWRlciBub3cuCisgICAgICAgICAgICAgICAgICAgIGlmIChzdGFydCA9PSBhZmZpeGVzLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhZmZpeGVzLmFwcGVuZCgiQUFBQSIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vIEZpbGwgaW4gNC1jaGFyYWN0ZXIgaGVhZGVyCisgICAgICAgICAgICAgICAgICAgIGFmZml4ZXMuc2V0Q2hhckF0KHN0YXJ0KyssIChjaGFyKSBwcmVmaXhMZW4pOworICAgICAgICAgICAgICAgICAgICBhZmZpeGVzLnNldENoYXJBdChzdGFydCsrLCAoY2hhcikgc3VmZml4TGVuKTsKKyAgICAgICAgICAgICAgICAgICAgYWZmaXhlcy5zZXRDaGFyQXQoc3RhcnQrKywgKGNoYXIpIG1pbkRpZ2l0cyk7CisgICAgICAgICAgICAgICAgICAgIGFmZml4ZXMuc2V0Q2hhckF0KHN0YXJ0LCAgIChjaGFyKSBtYXhEaWdpdHMpOworICAgICAgICAgICAgICAgICAgICBzdGFydCA9IGFmZml4ZXMubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgICsrYWZmaXhDb3VudDsKKyAgICAgICAgICAgICAgICAgICAgcHJlZml4TGVuID0gc3VmZml4TGVuID0gbWluRGlnaXRzID0gbWF4RGlnaXRzID0gbW9kZSA9IDA7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIGlzTGl0ZXJhbCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGlzTGl0ZXJhbCkgeworICAgICAgICAgICAgICAgIGlmIChzdGFydCA9PSBhZmZpeGVzLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIE1ha2Ugc3BhY2UgZm9yIHRoZSBoZWFkZXIuICBBcHBlbmQgYW55IGZvdXIKKyAgICAgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVycyBhcyBwbGFjZSBob2xkZXJzIGZvciB0aGUgaGVhZGVyIHZhbHVlcy4KKyAgICAgICAgICAgICAgICAgICAgLy8gV2UgZmlsbCB0aGVzZSBpbiB3aGVuIHdlIHBhcnNlIHRoZSAnOycuCisgICAgICAgICAgICAgICAgICAgIGFmZml4ZXMuYXBwZW5kKCJBQUFBIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGFmZml4ZXMuYXBwZW5kKGMpOworICAgICAgICAgICAgICAgIGlmIChtb2RlID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgKytwcmVmaXhMZW47CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gQW55IGxpdGVyYWwgb3V0c2lkZSB0aGUgcHJlZml4IG1vdmVzIHVzIGludG8gbW9kZSAzCisgICAgICAgICAgICAgICAgICAgIC8vIChzdWZmaXgpCisgICAgICAgICAgICAgICAgICAgIG1vZGUgPSAzOworICAgICAgICAgICAgICAgICAgICArK3N1ZmZpeExlbjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBXZSBvbmx5IG1vZGlmeSB0aGUgcGF0dGVybiBhbmQgYWZmaXhlcyBtZW1iZXIgdmFyaWFibGVzIGlmCisgICAgICAgIC8vIHdlIGdldCB0byB0aGlzIHBvaW50LCB0aGF0IGlzLCBpZiB0aGUgcGFyc2Ugc3VjY2VlZHMuCisgICAgICAgIHRoaXMucGF0dGVybiA9IHBhdHRlcm47CisgICAgICAgIGludCBsZW4gPSBhZmZpeGVzLmxlbmd0aCgpOworICAgICAgICB0aGlzLmFmZml4ZXMgPSBuZXcgY2hhcltsZW5dOworICAgICAgICBVdGlsaXR5LmdldENoYXJzKGFmZml4ZXMsIDAsIGxlbiwgdGhpcy5hZmZpeGVzLCAwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhpcyB0cmFuc2xpdGVyYXRvcidzIHBhdHRlcm4uCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1BhdHRlcm4oKSB7CisgICAgICAgIHJldHVybiBwYXR0ZXJuOworICAgIH0KKworICAgIC8qKgorICAgICAqIEltcGxlbWVudHMge0BsaW5rIFRyYW5zbGl0ZXJhdG9yI2hhbmRsZVRyYW5zbGl0ZXJhdGV9LgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvc2l0aW9uIG9mZnNldHMsIGJvb2xlYW4gaXNJbmNyZW1lbnRhbCkgeworICAgICAgICBpbnQgY3Vyc29yID0gb2Zmc2V0cy5zdGFydDsKKyAgICAgICAgaW50IGxpbWl0ID0gb2Zmc2V0cy5saW1pdDsKKyAgICAgICAgaW50IGksIGosIGlwYXQ7CisKKyAgICAgIGxvb3A6CisgICAgICAgIHdoaWxlIChjdXJzb3IgPCBsaW1pdCkgeworICAgICAgICAgICAgLy8gTG9vcCBvdmVyIHRoZSBzcGVjcyBpbiBhZmZpeGVzLiAgSWYgYWZmaXhDb3VudCBpcyB6ZXJvIChhbgorICAgICAgICAgICAgLy8gZW1wdHkgcGF0dGVybiksIHRoZW4gd2UgZG8gbm90aGluZy4gIFdlIGV4aXQgdGhpcyBsb29wIHdoZW4KKyAgICAgICAgICAgIC8vIHdlIG1hdGNoIG9uZSBvZiB0aGUgc3BlY3MuICBXZSBleGl0IHRoaXMgZnVuY3Rpb24gKGJ5CisgICAgICAgICAgICAvLyBqdW1waW5nIHRvIGV4aXQ6IGJlbG93KSBpZiBhIHBhcnRpYWwgbWF0Y2ggaXMgZGV0ZWN0ZWQgYW5kCisgICAgICAgICAgICAvLyBpc0luY3JlbWVudGFsIGlzIHRydWUuCisgICAgICAgICAgICBmb3IgKGo9MCwgaXBhdD0wOyBqPGFmZml4Q291bnQ7ICsraikgeworCisgICAgICAgICAgICAgICAgLy8gUmVhZCB0aGUgaGVhZGVyCisgICAgICAgICAgICAgICAgaW50IHByZWZpeExlbiA9IGFmZml4ZXNbaXBhdCsrXTsKKyAgICAgICAgICAgICAgICBpbnQgc3VmZml4TGVuID0gYWZmaXhlc1tpcGF0KytdOworICAgICAgICAgICAgICAgIGludCBtaW5EaWdpdHMgPSBhZmZpeGVzW2lwYXQrK107CisgICAgICAgICAgICAgICAgaW50IG1heERpZ2l0cyA9IGFmZml4ZXNbaXBhdCsrXTsKKworICAgICAgICAgICAgICAgIC8vIGN1cnMgaXMgYSBjb3B5IG9mIGN1cnNvciB0aGF0IGlzIGFkdmFuY2VkIG92ZXIgdGhlCisgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVycyBhcyB3ZSBwYXJzZSB0aGVtLgorICAgICAgICAgICAgICAgIGludCBjdXJzID0gY3Vyc29yOworICAgICAgICAgICAgICAgIGJvb2xlYW4gbWF0Y2ggPSB0cnVlOworCisgICAgICAgICAgICAgICAgZm9yIChpPTA7IGk8cHJlZml4TGVuOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnMgPj0gbGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlJ3ZlIGFscmVhZHkgbWF0Y2hlZCBhIGNoYXJhY3Rlci4gIFRoaXMgaXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhIHBhcnRpYWwgbWF0Y2gsIHNvIHdlIHJldHVybiBpZiBpbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluY3JlbWVudGFsIG1vZGUuICBJbiBub24taW5jcmVtZW50YWwgbW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBnbyB0byB0aGUgbmV4dCBzcGVjLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0luY3JlbWVudGFsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGxvb3A7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2hhciBjID0gdGV4dC5jaGFyQXQoY3VycysrKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGMgIT0gYWZmaXhlc1tpcGF0ICsgaV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChtYXRjaCkgeworICAgICAgICAgICAgICAgICAgICBjaGFyIHUgPSAwOworICAgICAgICAgICAgICAgICAgICBpbnQgZGlnaXRDb3VudCA9IDA7CisgICAgICAgICAgICAgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJzID49IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgZm9yIHBhcnRpYWwgbWF0Y2ggaW4gaW5jcmVtZW50YWwgbW9kZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VycyA+IGN1cnNvciAmJiBpc0luY3JlbWVudGFsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGxvb3A7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRpZ2l0ID0gQ2hhcmFjdGVyLmRpZ2l0KHRleHQuY2hhckF0KGN1cnMpLCAxNik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGlnaXQgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICArK2N1cnM7CisgICAgICAgICAgICAgICAgICAgICAgICB1IDw8PSA0OworICAgICAgICAgICAgICAgICAgICAgICAgdSB8PSAoY2hhcikgZGlnaXQ7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKytkaWdpdENvdW50ID09IG1heERpZ2l0cykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgbWF0Y2ggPSAoZGlnaXRDb3VudCA+PSBtaW5EaWdpdHMpOworCisgICAgICAgICAgICAgICAgICAgIGlmIChtYXRjaCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpPTA7IGk8c3VmZml4TGVuOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VycyA+PSBsaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBmb3IgcGFydGlhbCBtYXRjaCBpbiBpbmNyZW1lbnRhbCBtb2RlLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VycyA+IGN1cnNvciAmJiBpc0luY3JlbWVudGFsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBsb29wOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGMgPSB0ZXh0LmNoYXJBdChjdXJzKyspOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjICE9IGFmZml4ZXNbaXBhdCArIHByZWZpeExlbiArIGldKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1hdGNoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXQgdGhpcyBwb2ludCwgd2UgaGF2ZSBhIG1hdGNoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC5yZXBsYWNlKGN1cnNvciwgY3VycywgU3RyaW5nLnZhbHVlT2YodSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0IC09IGN1cnMgLSBjdXJzb3IgLSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgYnJlYWsgc3RhdGVtZW50IGxlYXZlcyB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsb29wIHRoYXQgaXMgdHJhdmVyc2luZyB0aGUgc3BlY3MgaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhZmZpeGVzLiAgV2UgdGhlbiBwYXJzZSB0aGUgbmV4dCBpbnB1dAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNoYXJhY3Rlci4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlwYXQgKz0gcHJlZml4TGVuICsgc3VmZml4TGVuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICArK2N1cnNvcjsKKyAgICAgICAgfQorCisgICAgICAgIG9mZnNldHMuY29udGV4dExpbWl0ICs9IGxpbWl0IC0gb2Zmc2V0cy5saW1pdDsKKyAgICAgICAgb2Zmc2V0cy5saW1pdCA9IGxpbWl0OworICAgICAgICBvZmZzZXRzLnN0YXJ0ID0gY3Vyc29yOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0xvd2VyY2FzZVRyYW5zbGl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Mb3dlcmNhc2VUcmFuc2xpdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFhODZkNTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Mb3dlcmNhc2VUcmFuc2xpdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMTAwIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvdGV4dC9Mb3dlcmNhc2VUcmFuc2xpdGVyYXRvci5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzA2LzIwIDAxOjIxOjE4ICQgCisgKiAkUmV2aXNpb246IDEuMTEgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CitpbXBvcnQgamF2YS51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyUHJvcGVydHk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Vbmljb2RlQ2hhcmFjdGVySXRlcmF0b3I7CisKKy8qKgorICogQSB0cmFuc2xpdGVyYXRvciB0aGF0IHBlcmZvcm1zIGxvY2FsZS1zZW5zaXRpdmUgdG9Mb3dlcigpCisgKiBjYXNlIG1hcHBpbmcuCisgKi8KK2NsYXNzIExvd2VyY2FzZVRyYW5zbGl0ZXJhdG9yIGV4dGVuZHMgVHJhbnNsaXRlcmF0b3J7CisKKyAgICAvKioKKyAgICAgKiBQYWNrYWdlIGFjY2Vzc2libGUgSUQuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBfSUQgPSAiQW55LUxvd2VyIjsKKyAgICAKKyAgICAvLyBUT0RPOiBBZGQgdmFyaWFudHMgZm9yIHRyLCBheiwgbHQsIGRlZmF1bHQgPSBkZWZhdWx0IGxvY2FsZQorCisgICAgLyoqCisgICAgICogU3lzdGVtIHJlZ2lzdHJhdGlvbiBob29rLgorICAgICAqLworICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyKCkgeworICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoX0lELCBuZXcgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IExvd2VyY2FzZVRyYW5zbGl0ZXJhdG9yKExvY2FsZS5VUyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyU3BlY2lhbEludmVyc2UoIkxvd2VyIiwgIlVwcGVyIiwgdHJ1ZSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBMb2NhbGUgbG9jOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqLworCisgICAgcHVibGljIExvd2VyY2FzZVRyYW5zbGl0ZXJhdG9yKExvY2FsZSBsb2MpIHsKKyAgICAgICAgc3VwZXIoX0lELCBudWxsKTsKKyAgICAgICAgdGhpcy5sb2MgPSBsb2M7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyB7QGxpbmsgVHJhbnNsaXRlcmF0b3IjaGFuZGxlVHJhbnNsaXRlcmF0ZX0uCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlVHJhbnNsaXRlcmF0ZShSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9zaXRpb24gb2Zmc2V0cywgYm9vbGVhbiBpc0luY3JlbWVudGFsKSB7CisgICAgICAgIGludCB0ZXh0UG9zID0gb2Zmc2V0cy5zdGFydDsKKyAgICAgICAgaWYgKHRleHRQb3MgPj0gb2Zmc2V0cy5saW1pdCkgcmV0dXJuOworCisgICAgICAgIC8vIGdldCBzdHJpbmcgZm9yIGNvbnRleHQKKyAgICAgICAgLy8gVE9ETzogYWRkIGNvbnZlbmllbmNlIG1ldGhvZCB0byBkbyB0aGlzLCBzaW5jZSB3ZSBkbyBpdCBhbGwgb3ZlcgorICAgICAgICAKKyAgICAgICAgVW5pY29kZUNoYXJhY3Rlckl0ZXJhdG9yIG9yaWdpbmFsID0gbmV3IFVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KTsKKyAgICAgICAgCisgICAgICAgIC8vIFdhbGsgdGhyb3VnaCBvcmlnaW5hbCBzdHJpbmcKKyAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSBjYXNlIGNoYW5nZSwgbW9kaWZ5IGNvcnJlc3BvbmRpbmcgcG9zaXRpb24gaW4gcmVwbGFjZWFibGUKKyAgICAgICAgCisgICAgICAgIGludCBsaW1pdCA9IG9mZnNldHMubGltaXQ7CisgICAgICAgIGludCBjcDsKKyAgICAgICAgaW50IG9sZExlbjsKKyAgICAgICAgCisgICAgICAgIHdoaWxlICh0ZXh0UG9zIDwgbGltaXQpIHsKKyAgICAgICAgCW9yaWdpbmFsLnNldEluZGV4KHRleHRQb3MpOworICAgICAgICAgICAgY3AgPSBvcmlnaW5hbC5jdXJyZW50Q29kZVBvaW50KCk7CisgICAgICAgICAgICBvbGRMZW4gPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApOworICAgICAgICAgICAgaW50IG5ld0xlbiA9IG1fY2hhcnBwdHlfLnRvTG93ZXJDYXNlKGxvYywgY3AsIG9yaWdpbmFsLCBidWZmZXIpOworICAgICAgICAgICAgaWYgKG5ld0xlbiA+PSAwKSB7CisgICAgICAgICAgICAgICAgdGV4dC5yZXBsYWNlKHRleHRQb3MsIHRleHRQb3MgKyBvbGRMZW4sIGJ1ZmZlciwgMCwgbmV3TGVuKTsKKyAgICAgICAgICAgICAgICBpZiAobmV3TGVuICE9IG9sZExlbikgeworICAgICAgICAgICAgICAgICAgICB0ZXh0UG9zICs9IG5ld0xlbjsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5saW1pdCArPSBuZXdMZW4gLSBvbGRMZW47CisgICAgICAgICAgICAgICAgICAgIG9mZnNldHMuY29udGV4dExpbWl0ICs9IG5ld0xlbiAtIG9sZExlbjsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgdGV4dFBvcyArPSBvbGRMZW47CisgICAgICAgIH0KKyAgICAgICAgb2Zmc2V0cy5zdGFydCA9IG9mZnNldHMubGltaXQ7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgY2hhciBidWZmZXJbXSA9IG5ldyBjaGFyW1VDaGFyYWN0ZXJQcm9wZXJ0eS5NQVhfQ0FTRV9NQVBfU0laRV07CisgICAgLyoqCisgICAgICogQ2hhcmFjdGVyIHByb3BlcnRpZXMgZGF0YSBiYXNlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVUNoYXJhY3RlclByb3BlcnR5IG1fY2hhcnBwdHlfID0gCisgICAgCQkJCQkJCSAgICAgICAgICAgIFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRJbnN0YW5jZSgpOyAKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L05GUnVsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvTkZSdWxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDA1ZjQxOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L05GUnVsZS5qYXZhCkBAIC0wLDAgKzEsMTMzNSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L3RleHQvTkZSdWxlLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDcvMzEgMDA6NTQ6NTggJCAKKyAqICRSZXZpc2lvbjogMS42ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyUHJvcGVydHk7CisKK2ltcG9ydCBqYXZhLnRleHQuKjsKKworLyoqCisgKiBBIGNsYXNzIHJlcHJlc250aW5nIGEgc2luZ2xlIHJ1bGUgaW4gYSBSdWxlQmFzZWROdW1iZXJGb3JtYXQuICBBIHJ1bGUKKyAqIGluc2VydHMgaXRzIHRleHQgaW50byB0aGUgcmVzdWx0IHN0cmluZyBhbmQgdGhlbiBwYXNzZXMgY29udHJvbCB0byBpdHMKKyAqIHN1YnN0aXR1dGlvbnMsIHdoaWNoIGRvIHRoZSBzYW1lIHRoaW5nLgorICogJFJDU2ZpbGU6IE5GUnVsZS5qYXZhLHYgJCAkUmV2aXNpb246IDEuNiAkICREYXRlOiAyMDAyLzA3LzMxIDAwOjU0OjU4ICQKKyAqLworZmluYWwgY2xhc3MgTkZSdWxlIHsKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY29uc3RhbnRzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUHV0cyBhIGNvcHlyaWdodCBpbiB0aGUgLmNsYXNzIGZpbGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0Tm90aWNlCisgICAgICAgID0gIkNvcHlyaWdodCBcdTAwYTkxOTk3LTE5OTggSUJNIENvcnAuICBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvKioKKyAgICAgKiBTcGVjaWFsIGJhc2UgdmFsdWUgdXNlZCB0byBpZGVudGlmeSBhIG5lZ2F0aXZlLW51bWJlciBydWxlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTkVHQVRJVkVfTlVNQkVSX1JVTEUgPSAtMTsKKworICAgIC8qKgorICAgICAqIFNwZWNpYWwgYmFzZSB2YWx1ZSB1c2VkIHRvIGlkZW50aWZ5IGFuIGltcHJvcGVyIGZyYWN0aW9uICh4LngpIHJ1bGUKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJTVBST1BFUl9GUkFDVElPTl9SVUxFID0gLTI7CisKKyAgICAvKioKKyAgICAgKiBTcGVjaWFsIGJhc2UgdmFsdWUgdXNlZCB0byBpZGVudGlmeSBhIHByb3BlciBmcmFjdGlvbiAoMC54KSBydWxlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUFJPUEVSX0ZSQUNUSU9OX1JVTEUgPSAtMzsKKworICAgIC8qKgorICAgICAqIFNwZWNpYWwgYmFzZSB2YWx1ZSB1c2VkIHRvIGlkZW50aWZ5IGEgbWFzdGVyIHJ1bGUKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNQVNURVJfUlVMRSA9IC00OworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGRhdGEgbWVtYmVycworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFRoZSBydWxlJ3MgYmFzZSB2YWx1ZQorICAgICAqLworICAgIHByaXZhdGUgbG9uZyBiYXNlVmFsdWU7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcnVsZSdzIHJhZGl4ICh0aGUgcmFkaXggdG8gdGhlIHBvd2VyIG9mIHRoZSBleHBvbmVudCBlcXVhbHMKKyAgICAgKiB0aGUgcnVsZSdzIGRpdmlzb3IpCisgICAgICovCisgICAgcHJpdmF0ZSBzaG9ydCByYWRpeCA9IDEwOworCisgICAgLyoqCisgICAgICogVGhlIHJ1bGUncyBleHBvbmVudCAodGhlIHJhZHggcmFzZWQgdG8gdGhlIHBvd2VyIG9mIHRoZSBleHBvbnNudAorICAgICAqIGVxdWFscyB0aGUgcnVsZSdzIGRpdmlzb3IpCisgICAgICovCisgICAgcHJpdmF0ZSBzaG9ydCBleHBvbmVudCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcnVsZSdzIHJ1bGUgdGV4dC4gIFdoZW4gZm9ybWF0dGluZyBhIG51bWJlciwgdGhlIHJ1bGUncyB0ZXh0CisgICAgICogaXMgaW5zZXJ0ZWQgaW50byB0aGUgcmVzdWx0IHN0cmluZywgYW5kIHRoZW4gdGhlIHRleHQgZnJvbSBhbnkKKyAgICAgKiBzdWJzdGl0dXRpb25zIGlzIGluc2VydGVkIGludG8gdGhlIHJlc3VsdCBzdHJpbmcKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBydWxlVGV4dCA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcnVsZSdzIGZpcnN0IHN1YnN0aXR1dGlvbiAodGhlIG9uZSB3aXRoIHRoZSBsb3dlciBvZmZzZXQKKyAgICAgKiBpbnRvIHRoZSBydWxlIHRleHQpCisgICAgICovCisgICAgcHJpdmF0ZSBORlN1YnN0aXR1dGlvbiBzdWIxID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFRoZSBydWxlJ3Mgc2Vjb25kIHN1YnN0aXR1dGlvbiAodGhlIG9uZSB3aXRoIHRoZSBoaWdoZXIgb2Zmc2V0CisgICAgICogaW50byB0aGUgcnVsZSB0ZXh0KQorICAgICAqLworICAgIHByaXZhdGUgTkZTdWJzdGl0dXRpb24gc3ViMiA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBUaGUgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IHRoYXQgb3ducyB0aGlzIHJ1bGUKKyAgICAgKi8KKyAgICBwcml2YXRlIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIgPSBudWxsOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNvbnN0cnVjdGlvbgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgb25lIG9yIG1vcmUgcnVsZXMgYmFzZWQgb24gdGhlIGRlc2NyaXB0aW9uIHBhc3NlZCBpbi4KKyAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb24gVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBydWxlKHMpLgorICAgICAqIEBwYXJhbSBvd25lciBUaGUgcnVsZSBzZXQgY29udGFpbmluZyB0aGUgbmV3IHJ1bGUocykuCisgICAgICogQHBhcmFtIHByZWRlY2Vzc29yIFRoZSBydWxlIHRoYXQgcHJlY2VkZXMgdGhlIG5ldyBvbmUocykgaW4gIm93bmVyIidzCisgICAgICogcnVsZSBsaXN0CisgICAgICogQHBhcmFtIG93bmVyc093bmVyIFRoZSBSdWxlQmFzZWROdW1iZXJGb3JtYXQgdGhhdCBvd25zIHRoZQorICAgICAqIHJ1bGUgc2V0IHRoYXQgb3ducyB0aGUgbmV3IHJ1bGUocykKKyAgICAgKiBAcmV0dXJuIEFuIGluc3RhbmNlIG9mIE5GUnVsZSwgb3IgYW4gYXJyYXkgb2YgTkZSdWxlcworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgT2JqZWN0IG1ha2VSdWxlcyhTdHJpbmcgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5GUnVsZVNldCAgICAgICAgICAgICBvd25lciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkZSdWxlICAgICAgICAgICAgICAgIHByZWRlY2Vzc29yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgb3duZXJzT3duZXIpIHsKKyAgICAgICAgLy8gd2Uga25vdyB3ZSdyZSBtYWtpbmcgYXQgbGVhc3Qgb25lIHJ1bGUsIHNvIGdvIGFoZWFkIGFuZAorICAgICAgICAvLyBuZXcgaXQgdXAgYW5kIGluaXRpYWxpemUgaXRzIGJhc2V2YWx1ZSBhbmQgZGl2aXNvcgorICAgICAgICAvLyAodGhpcyBhbHNvIHN0cmlwcyB0aGUgcnVsZSBkZXNjcmlwdG9yLCBpZiBhbnksIG9mZiB0aGUKKyAgICAgICAgLy8gZGVzY3JpcHRvbiBzdHJpbmcpCisgICAgICAgIE5GUnVsZSBydWxlMSA9IG5ldyBORlJ1bGUob3duZXJzT3duZXIpOworICAgICAgICBkZXNjcmlwdGlvbiA9IHJ1bGUxLnBhcnNlUnVsZURlc2NyaXB0b3IoZGVzY3JpcHRpb24pOworCisgICAgICAgIC8vIGNoZWNrIHRoZSBkZXNjcmlwdGlvbiB0byBzZWUgd2hldGhlciB0aGVyZSdzIHRleHQgZW5jbG9zZWQKKyAgICAgICAgLy8gaW4gYnJhY2tldHMKKyAgICAgICAgaW50IGJyYWNrMSA9IGRlc2NyaXB0aW9uLmluZGV4T2YoIlsiKTsKKyAgICAgICAgaW50IGJyYWNrMiA9IGRlc2NyaXB0aW9uLmluZGV4T2YoIl0iKTsKKworICAgICAgICAvLyBpZiB0aGUgZGVzY3JpcHRpb24gZG9lc24ndCBjb250YWluIGEgbWF0Y2hlZCBwYWlyIG9mIGJyYWNrZXRzLAorICAgICAgICAvLyBvciBpZiBpdCdzIG9mIGEgdHlwZSB0aGF0IGRvZXNuJ3QgcmVjb2duaXplIGJyYWNrZXRlZCB0ZXh0LAorICAgICAgICAvLyB0aGVuIGxlYXZlIHRoZSBkZXNjcmlwdGlvbiBhbG9uZSwgaW5pdGlhbGl6ZSB0aGUgcnVsZSdzCisgICAgICAgIC8vIHJ1bGUgdGV4dCBhbmQgc3Vic3RpdHV0aW9ucywgYW5kIHJldHVybiB0aGF0IHJ1bGUKKyAgICAgICAgaWYgKGJyYWNrMSA9PSAtMSB8fCBicmFjazIgPT0gLTEgfHwgYnJhY2sxID4gYnJhY2syCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgcnVsZTEuZ2V0QmFzZVZhbHVlKCkgPT0gUFJPUEVSX0ZSQUNUSU9OX1JVTEUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBydWxlMS5nZXRCYXNlVmFsdWUoKSA9PSBORUdBVElWRV9OVU1CRVJfUlVMRSkgeworICAgICAgICAgICAgcnVsZTEucnVsZVRleHQgPSBkZXNjcmlwdGlvbjsKKyAgICAgICAgICAgIHJ1bGUxLmV4dHJhY3RTdWJzdGl0dXRpb25zKG93bmVyLCBwcmVkZWNlc3Nvciwgb3duZXJzT3duZXIpOworICAgICAgICAgICAgcmV0dXJuIHJ1bGUxOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gaWYgdGhlIGRlc2NyaXB0aW9uIGRvZXMgY29udGFpbiBhIG1hdGNoZWQgcGFpciBvZiBicmFja2V0cywKKyAgICAgICAgICAgIC8vIHRoZW4gaXQncyByZWFsbHkgc2hvcnRoYW5kIGZvciB0d28gcnVsZXMgKHdpdGggb25lIGV4Y2VwdGlvbikKKyAgICAgICAgICAgIE5GUnVsZSBydWxlMiA9IG51bGw7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgc2J1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICAgICAgLy8gd2UnbGwgYWN0dWFsbHkgb25seSBzcGxpdCB0aGUgcnVsZSBpbnRvIHR3byBydWxlcyBpZiBpdHMKKyAgICAgICAgICAgIC8vIGJhc2UgdmFsdWUgaXMgYW4gZXZlbiBtdWx0aXBsZSBvZiBpdHMgZGl2aXNvciAob3IgaXQncyBvbmUKKyAgICAgICAgICAgIC8vIG9mIHRoZSBzcGVjaWFsIHJ1bGVzKQorICAgICAgICAgICAgaWYgKChydWxlMS5iYXNlVmFsdWUgPiAwCisgICAgICAgICAgICAgICAgICAgICYmIHJ1bGUxLmJhc2VWYWx1ZSAlIChNYXRoLnBvdyhydWxlMS5yYWRpeCwgcnVsZTEuZXhwb25lbnQpKSA9PSAwKQorICAgICAgICAgICAgICAgICAgICB8fCBydWxlMS5iYXNlVmFsdWUgPT0gSU1QUk9QRVJfRlJBQ1RJT05fUlVMRQorICAgICAgICAgICAgICAgICAgICB8fCBydWxlMS5iYXNlVmFsdWUgPT0gTUFTVEVSX1JVTEUpIHsKKworICAgICAgICAgICAgICAgIC8vIGlmIGl0IHBhc3NlcyB0aGF0IHRlc3QsIG5ldyB1cCB0aGUgc2Vjb25kIHJ1bGUuICBJZiB0aGUKKyAgICAgICAgICAgICAgICAvLyBydWxlIHNldCBib3RoIHJ1bGVzIHdpbGwgYmVsb25nIHRvIGlzIGEgZnJhY3Rpb24gcnVsZQorICAgICAgICAgICAgICAgIC8vIHNldCwgdGhleSBib3RoIGhhdmUgdGhlIHNhbWUgYmFzZSB2YWx1ZTsgb3RoZXJ3aXNlLAorICAgICAgICAgICAgICAgIC8vIGluY3JlbWVudCB0aGUgb3JpZ2luYWwgcnVsZSdzIGJhc2UgdmFsdWUgKCJydWxlMSIgYWN0dWFsbHkKKyAgICAgICAgICAgICAgICAvLyBnb2VzIFNFQ09ORCBpbiB0aGUgcnVsZSBzZXQncyBydWxlIGxpc3QpCisgICAgICAgICAgICAgICAgcnVsZTIgPSBuZXcgTkZSdWxlKG93bmVyc093bmVyKTsKKyAgICAgICAgICAgICAgICBpZiAocnVsZTEuYmFzZVZhbHVlID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcnVsZTIuYmFzZVZhbHVlID0gcnVsZTEuYmFzZVZhbHVlOworICAgICAgICAgICAgICAgICAgICBpZiAoIW93bmVyLmlzRnJhY3Rpb25TZXQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgKytydWxlMS5iYXNlVmFsdWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBpZiB0aGUgZGVzY3JpcHRpb24gYmVnYW4gd2l0aCAieC54IiBhbmQgY29udGFpbnMgYnJhY2tldGVkCisgICAgICAgICAgICAgICAgLy8gdGV4dCwgaXQgZGVzY3JpYmVzIGJvdGggdGhlIGltcHJvcGVyIGZyYWN0aW9uIHJ1bGUgYW5kCisgICAgICAgICAgICAgICAgLy8gdGhlIHByb3BlciBmcmFjdGlvbiBydWxlCisgICAgICAgICAgICAgICAgZWxzZSBpZiAocnVsZTEuYmFzZVZhbHVlID09IElNUFJPUEVSX0ZSQUNUSU9OX1JVTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgcnVsZTIuYmFzZVZhbHVlID0gUFJPUEVSX0ZSQUNUSU9OX1JVTEU7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gaWYgdGhlIGRlc2NyaXB0aW9uIGJlZ2FuIHdpdGggInguMCIgYW5kIGNvbnRhaW5zIGJyYWNrZXRlZAorICAgICAgICAgICAgICAgIC8vIHRleHQsIGl0IGRlc2NyaWJlcyBib3RoIHRoZSBtYXN0ZXIgcnVsZSBhbmQgdGhlCisgICAgICAgICAgICAgICAgLy8gaW1wcm9wZXIgZnJhY3Rpb24gcnVsZQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJ1bGUxLmJhc2VWYWx1ZSA9PSBNQVNURVJfUlVMRSkgeworICAgICAgICAgICAgICAgICAgICBydWxlMi5iYXNlVmFsdWUgPSBydWxlMS5iYXNlVmFsdWU7CisgICAgICAgICAgICAgICAgICAgIHJ1bGUxLmJhc2VWYWx1ZSA9IElNUFJPUEVSX0ZSQUNUSU9OX1JVTEU7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gYm90aCBydWxlcyBoYXZlIHRoZSBzYW1lIHJhZGl4IGFuZCBleHBvbmVudCAoaS5lLiwgdGhlCisgICAgICAgICAgICAgICAgLy8gc2FtZSBkaXZpc29yKQorICAgICAgICAgICAgICAgIHJ1bGUyLnJhZGl4ID0gcnVsZTEucmFkaXg7CisgICAgICAgICAgICAgICAgcnVsZTIuZXhwb25lbnQgPSBydWxlMS5leHBvbmVudDsKKworICAgICAgICAgICAgICAgIC8vIHJ1bGUyJ3MgcnVsZSB0ZXh0IG9taXRzIHRoZSBzdHVmZiBpbiBicmFja2V0czogaW5pdGFsaXplCisgICAgICAgICAgICAgICAgLy8gaXRzIHJ1bGUgdGV4dCBhbmQgc3Vic3RpdHV0aW9ucyBhY2NvcmRpbmdseQorICAgICAgICAgICAgICAgIHNidWYuYXBwZW5kKGRlc2NyaXB0aW9uLnN1YnN0cmluZygwLCBicmFjazEpKTsKKyAgICAgICAgICAgICAgICBpZiAoYnJhY2syICsgMSA8IGRlc2NyaXB0aW9uLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHNidWYuYXBwZW5kKGRlc2NyaXB0aW9uLnN1YnN0cmluZyhicmFjazIgKyAxKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJ1bGUyLnJ1bGVUZXh0ID0gc2J1Zi50b1N0cmluZygpOworICAgICAgICAgICAgICAgIHJ1bGUyLmV4dHJhY3RTdWJzdGl0dXRpb25zKG93bmVyLCBwcmVkZWNlc3Nvciwgb3duZXJzT3duZXIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBydWxlMSdzIHRleHQgaW5jbHVkZXMgdGhlIHRleHQgaW4gdGhlIGJyYWNrZXRzIGJ1dCBvbWl0cworICAgICAgICAgICAgLy8gdGhlIGJyYWNrZXRzIHRoZW1zZWx2ZXM6IGluaXRpYWxpemUgX2l0c18gcnVsZSB0ZXh0IGFuZAorICAgICAgICAgICAgLy8gc3Vic3RpdHV0aW9ucyBhY2NvcmRpbmdseQorICAgICAgICAgICAgc2J1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICBzYnVmLmFwcGVuZChkZXNjcmlwdGlvbi5zdWJzdHJpbmcoMCwgYnJhY2sxKSk7CisgICAgICAgICAgICBzYnVmLmFwcGVuZChkZXNjcmlwdGlvbi5zdWJzdHJpbmcoYnJhY2sxICsgMSwgYnJhY2syKSk7CisgICAgICAgICAgICBpZiAoYnJhY2syICsgMSA8IGRlc2NyaXB0aW9uLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgc2J1Zi5hcHBlbmQoZGVzY3JpcHRpb24uc3Vic3RyaW5nKGJyYWNrMiArIDEpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJ1bGUxLnJ1bGVUZXh0ID0gc2J1Zi50b1N0cmluZygpOworICAgICAgICAgICAgcnVsZTEuZXh0cmFjdFN1YnN0aXR1dGlvbnMob3duZXIsIHByZWRlY2Vzc29yLCBvd25lcnNPd25lcik7CisKKyAgICAgICAgICAgIC8vIGlmIHdlIG9ubHkgaGF2ZSBvbmUgcnVsZSwgcmV0dXJuIGl0OyBpZiB3ZSBoYXZlIHR3bywgcmV0dXJuCisgICAgICAgICAgICAvLyBhIHR3by1lbGVtZW50IGFycmF5IGNvbnRhaW5pbmcgdGhlbSAobm90aWNlIHRoYXQgcnVsZTIgZ29lcworICAgICAgICAgICAgLy8gQkVGT1JFIHJ1bGUxIGluIHRoZSBsaXN0OiBpbiBhbGwgY2FzZXMsIHJ1bGUyIE9NSVRTIHRoZQorICAgICAgICAgICAgLy8gbWF0ZXJpYWwgaW4gdGhlIGJyYWNrZXRzIGFuZCBydWxlMSBJTkNMVURFUyB0aGUgbWF0ZXJpYWwKKyAgICAgICAgICAgIC8vIGluIHRoZSBicmFja2V0cykKKyAgICAgICAgICAgIGlmIChydWxlMiA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJ1bGUxOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE5GUnVsZVtdIHsgcnVsZTIsIHJ1bGUxIH07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBOb21pbmFsIGNvbnN0cnVjdG9yIGZvciBORlJ1bGUuICBNb3N0IG9mIHRoZSB3b3JrIG9mIGNvbnN0cnVjdGluZworICAgICAqIGFuIE5GUnVsZSBpcyBhY3R1YWxseSBwZXJmb3JtZWQgYnkgbWFrZVJ1bGVzKCkuCisgICAgICovCisgICAgcHVibGljIE5GUnVsZShSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyKSB7CisgICAgICAgIHRoaXMuZm9ybWF0dGVyID0gZm9ybWF0dGVyOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gcGFyc2VzIHRoZSBydWxlJ3MgcnVsZSBkZXNjcmlwdG9yIChpLmUuLCB0aGUgYmFzZQorICAgICAqIHZhbHVlIGFuZC9vciBvdGhlciB0b2tlbnMgdGhhdCBwcmVjZWRlIHRoZSBydWxlJ3MgcnVsZSB0ZXh0CisgICAgICogaW4gdGhlIGRlc2NyaXB0aW9uKSBhbmQgc2V0cyB0aGUgcnVsZSdzIGJhc2UgdmFsdWUsIHJhZGl4LCBhbmQKKyAgICAgKiBleHBvbmVudCBhY2NvcmRpbmcgdG8gdGhlIGRlc2NyaXB0b3IuICAoSWYgdGhlIGRlc2NyaXB0aW9uIGRvZXNuJ3QKKyAgICAgKiBpbmNsdWRlIGEgcnVsZSBkZXNjcmlwdG9yLCB0aGVuIHRoaXMgZnVuY3Rpb24gc2V0cyBldmVyeXRoaW5nIHRvCisgICAgICogZGVmYXVsdCB2YWx1ZXMgYW5kIHRoZSBydWxlIHNldCBzZXRzIHRoZSBydWxlJ3MgcmVhbCBiYXNlIHZhbHVlKS4KKyAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb24gVGhlIHJ1bGUncyBkZXNjcmlwdGlvbgorICAgICAqIEByZXR1cm4gSWYgImRlc2NyaXB0aW9uIiBpbmNsdWRlZCBhIHJ1bGUgZGVzY3JpcHRvciwgdGhpcyBpcworICAgICAqICJkZXNjcmlwdGlvbiIgd2l0aCB0aGUgZGVzY3JpcHRvciBhbmQgYW55IHRyYWlsaW5nIHdoaXRlc3BhY2UKKyAgICAgKiBzdHJpcHBlZCBvZmYuICBPdGhlcndpc2U7IGl0J3MgImRlc2NyaXB0b3IiIHVuY2hhbmdkLgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHBhcnNlUnVsZURlc2NyaXB0b3IoU3RyaW5nIGRlc2NyaXB0aW9uKSB7CisgICAgICAgIFN0cmluZyBkZXNjcmlwdG9yOworCisgICAgICAgIC8vIHRoZSBkZXNjcmlwdGlvbiBjb25zaXN0cyBvZiBhIHJ1bGUgZGVzY3JpcHRvciBhbmQgYSBydWxlIGJvZHksCisgICAgICAgIC8vIHNlcGFyYXRlZCBieSBhIGNvbG9uLiAgVGhlIHJ1bGUgZGVzY3JpcHRvciBpcyBvcHRpb25hbC4gIElmCisgICAgICAgIC8vIGl0J3Mgb21pdHRlZCwganVzdCBzZXQgdGhlIGJhc2UgdmFsdWUgdG8gMC4KKyAgICAgICAgaW50IHAgPSBkZXNjcmlwdGlvbi5pbmRleE9mKCI6Iik7CisgICAgICAgIGlmIChwID09IC0xKSB7CisgICAgICAgICAgICBzZXRCYXNlVmFsdWUoMCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBjb3B5IHRoZSBkZXNjcmlwdG9yIG91dCBpbnRvIGl0cyBvd24gc3RyaW5nIGFuZCBzdHJpcCBpdCwKKyAgICAgICAgICAgIC8vIGFsb25nIHdpdGggYW55IHRyYWlsaW5nIHdoaXRlc3BhY2UsIG91dCBvZiB0aGUgb3JpZ2luYWwKKyAgICAgICAgICAgIC8vIGRlc2NyaXB0aW9uCisgICAgICAgICAgICBkZXNjcmlwdG9yID0gZGVzY3JpcHRpb24uc3Vic3RyaW5nKDAsIHApOworICAgICAgICAgICAgKytwOworICAgICAgICAgICAgd2hpbGUgKHAgPCBkZXNjcmlwdGlvbi5sZW5ndGgoKSAmJiBVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShkZXNjcmlwdGlvbi5jaGFyQXQocCkpKQorICAgICAgICAgICAgICAgICsrcDsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb24uc3Vic3RyaW5nKHApOworCisgICAgICAgICAgICAvLyBjaGVjayBmaXJzdCB0byBzZWUgaWYgdGhlIHJ1bGUgZGVzY3JpcHRvciBtYXRjaGVzIHRoZSB0b2tlbgorICAgICAgICAgICAgLy8gZm9yIG9uZSBvZiB0aGUgc3BlY2lhbCBydWxlcy4gIElmIGl0IGRvZXMsIHNldCB0aGUgYmFzZQorICAgICAgICAgICAgLy8gdmFsdWUgdG8gdGhlIGNvcnJlY3QgaWRlbnRmaWVyIHZhbHVlCisgICAgICAgICAgICBpZiAoZGVzY3JpcHRvci5lcXVhbHMoIi14IikpIHsKKyAgICAgICAgICAgICAgICBzZXRCYXNlVmFsdWUoTkVHQVRJVkVfTlVNQkVSX1JVTEUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoZGVzY3JpcHRvci5lcXVhbHMoIngueCIpKSB7CisgICAgICAgICAgICAgICAgc2V0QmFzZVZhbHVlKElNUFJPUEVSX0ZSQUNUSU9OX1JVTEUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoZGVzY3JpcHRvci5lcXVhbHMoIjAueCIpKSB7CisgICAgICAgICAgICAgICAgc2V0QmFzZVZhbHVlKFBST1BFUl9GUkFDVElPTl9SVUxFKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGRlc2NyaXB0b3IuZXF1YWxzKCJ4LjAiKSkgeworICAgICAgICAgICAgICAgIHNldEJhc2VWYWx1ZShNQVNURVJfUlVMRSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGlmIHRoZSBydWxlIGRlc2NyaXB0b3IgYmVnaW5zIHdpdGggYSBkaWdpdCwgaXQncyBhIGRlc2NyaXB0b3IKKyAgICAgICAgICAgIC8vIGZvciBhIG5vcm1hbCBydWxlCisgICAgICAgICAgICBlbHNlIGlmIChkZXNjcmlwdG9yLmNoYXJBdCgwKSA+PSAnMCcgJiYgZGVzY3JpcHRvci5jaGFyQXQoMCkgPD0gJzknKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHRlbXBWYWx1ZSA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgICAgICBwID0gMDsKKyAgICAgICAgICAgICAgICBjaGFyIGMgPSAnICc7CisKKyAgICAgICAgICAgICAgICAvLyBiZWdpbiBwYXJzaW5nIHRoZSBkZXNjcmlwdG9yOiBjb3B5IGRpZ2l0cworICAgICAgICAgICAgICAgIC8vIGludG8gInRlbXBWYWx1ZSIsIHNraXAgcGVyaW9kcywgY29tbWFzLCBhbmQgc3BhY2VzLAorICAgICAgICAgICAgICAgIC8vIHN0b3Agb24gYSBzbGFzaCBvciA+IHNpZ24gKG9yIGF0IHRoZSBlbmQgb2YgdGhlIHN0cmluZyksCisgICAgICAgICAgICAgICAgLy8gYW5kIHRocm93IGFuIGV4Y2VwdGlvbiBvbiBhbnkgb3RoZXIgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgd2hpbGUgKHAgPCBkZXNjcmlwdG9yLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGMgPSBkZXNjcmlwdG9yLmNoYXJBdChwKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGMgPj0gJzAnICYmIGMgPD0gJzknKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wVmFsdWUuYXBwZW5kKGMpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGMgPT0gJy8nIHx8IGMgPT0gJz4nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShjKSB8fCBjID09ICcsJyB8fCBjID09ICcuJykgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBjaGFyYWN0ZXIgaW4gcnVsZSBkZXNjcmlwdG9yIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgKytwOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIHRlbXBWYWx1ZSBub3cgY29udGFpbnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlCisgICAgICAgICAgICAgICAgLy8gcnVsZSdzIGJhc2UgdmFsdWUgd2l0aCB0aGUgcHVuY3R1YXRpb24gc3RyaXBwZWQgb3V0LgorICAgICAgICAgICAgICAgIC8vIFNldCB0aGUgcnVsZSdzIGJhc2UgdmFsdWUgYWNjb3JkaW5nbHkKKyAgICAgICAgICAgICAgICBzZXRCYXNlVmFsdWUoTG9uZy5wYXJzZUxvbmcodGVtcFZhbHVlLnRvU3RyaW5nKCkpKTsKKworICAgICAgICAgICAgICAgIC8vIGlmIHdlIHN0b3BwZWQgdGhlIHByZXZpb3VzIGxvb3Agb24gYSBzbGFzaCwgd2UncmUKKyAgICAgICAgICAgICAgICAvLyBub3cgcGFyc2luZyB0aGUgcnVsZSdzIHJhZGl4LiAgQWdhaW4sIGFjY3VtdWxhdGUgZGlnaXRzCisgICAgICAgICAgICAgICAgLy8gaW4gdGVtcFZhbHVlLCBza2lwIHB1bmN0dWF0aW9uLCBzdG9wIG9uIGEgPiBtYXJrLCBhbmQKKyAgICAgICAgICAgICAgICAvLyB0aHJvdyBhbiBleGNlcHRpb24gb24gYW55dGhpbmcgZWxzZQorICAgICAgICAgICAgICAgIGlmIChjID09ICcvJykgeworICAgICAgICAgICAgICAgICAgICB0ZW1wVmFsdWUuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgICAgICArK3A7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChwIDwgZGVzY3JpcHRvci5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYyA9IGRlc2NyaXB0b3IuY2hhckF0KHApOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMgPj0gJzAnICYmIGMgPD0gJzknKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcFZhbHVlLmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGMgPT0gJz4nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShjKSB8fCBjID09ICcsJyB8fCBjID09ICcuJykgeworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBjaGFyYWN0ZXIgaXMgcnVsZSBkZXNjcmlwdG9yIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICArK3A7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAvLyB0ZW1wVmFsdWUgbm93IGNvbnRhaW4ncyB0aGUgcnVsZSdzIHJhZGl4LiAgU2V0IGl0CisgICAgICAgICAgICAgICAgICAgIC8vIGFjY29yZGluZ2x5LCBhbmQgcmVjYWxjdWxhdGUgdGhlIHJ1bGUncyBleHBvbmVudAorICAgICAgICAgICAgICAgICAgICByYWRpeCA9IFNob3J0LnBhcnNlU2hvcnQodGVtcFZhbHVlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICBpZiAocmFkaXggPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiUnVsZSBjYW4ndCBoYXZlIHJhZGl4IG9mIDAiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBleHBvbmVudCA9IGV4cGVjdGVkRXhwb25lbnQoKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBpZiB3ZSBzdG9wcGVkIHRoZSBwcmV2aW91cyBsb29wIG9uIGEgPiBzaWduLCB0aGVuIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgLy8gZm9yIGFzIGxvbmcgYXMgd2Ugc3RpbGwgc2VlID4gc2lnbnMuICBGb3IgZWFjaCBvbmUsCisgICAgICAgICAgICAgICAgLy8gZGVjcmVtZW50IHRoZSBleHBvbmVudCAodW5sZXNzIHRoZSBleHBvbmVudCBpcyBhbHJlYWR5IDApLgorICAgICAgICAgICAgICAgIC8vIElmIHdlIHNlZSBhbm90aGVyIGNoYXJhY3RlciBiZWZvcmUgcmVhY2hpbmcgdGhlIGVuZCBvZgorICAgICAgICAgICAgICAgIC8vIHRoZSBkZXNjcmlwdG9yLCB0aGF0J3MgYWxzbyBhIHN5bnRheCBlcnJvci4KKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnPicpIHsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHAgPCBkZXNjcmlwdG9yLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjID0gZGVzY3JpcHRvci5jaGFyQXQocCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYyA9PSAnPicgJiYgZXhwb25lbnQgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1leHBvbmVudDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBjaGFyYWN0ZXIgaW4gcnVsZSBkZXNjcmlwdG9yIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICArK3A7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBmaW5hbGx5LCBpZiB0aGUgcnVsZSBib2R5IGJlZ2lucyB3aXRoIGFuIGFwb3N0cm9waGUsIHN0cmlwIGl0IG9mZgorICAgICAgICAvLyAodGhpcyBpcyBnZW5lcmFsbHkgdXNlZCB0byBwdXQgd2hpdGVzcGFjZSBhdCB0aGUgYmVnaW5uaW5nIG9mCisgICAgICAgIC8vIGEgcnVsZSdzIHJ1bGUgdGV4dCkKKyAgICAgICAgaWYgKGRlc2NyaXB0aW9uLmxlbmd0aCgpID4gMCAmJiBkZXNjcmlwdGlvbi5jaGFyQXQoMCkgPT0gJ1wnJykgeworICAgICAgICAgICAgZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbi5zdWJzdHJpbmcoMSk7CisgICAgICAgIH0KKworICAgICAgICAvLyByZXR1cm4gdGhlIGRlc2NyaXB0aW9uIHdpdGggYWxsIHRoZSBzdHVmZiB3ZSd2ZSBqdXN0IHdhZGVkIHRocm91Z2gKKyAgICAgICAgLy8gc3RyaXBwZWQgb2ZmIHRoZSBmcm9udC4gIEl0IG5vdyBjb250YWlucyBqdXN0IHRoZSBydWxlIGJvZHkuCisgICAgICAgIHJldHVybiBkZXNjcmlwdGlvbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZWFyY2hlcyB0aGUgcnVsZSdzIHJ1bGUgdGV4dCBmb3IgdGhlIHN1YnN0aXR1dGlvbiB0b2tlbnMsCisgICAgICogY3JlYXRlcyB0aGUgc3Vic3RpdHV0aW9ucywgYW5kIHJlbW92ZXMgdGhlIHN1YnN0aXR1dGlvbiB0b2tlbnMKKyAgICAgKiBmcm9tIHRoZSBydWxlJ3MgcnVsZSB0ZXh0LgorICAgICAqIEBwYXJhbSBvd25lciBUaGUgcnVsZSBzZXQgY29udGFpbmluZyB0aGlzIHJ1bGUKKyAgICAgKiBAcGFyYW0gcHJlZGVjZXNzb3IgVGhlIHJ1bGUgcHJlc2VkaW5nIHRoaXMgb25lIGluICJvd25lcnMiIHJ1bGUgbGlzdAorICAgICAqIEBwYXJhbSBvd25lcnNPd25lciBUaGUgUnVsZUJhc2VkRm9ybWF0IHRoYXQgb3ducyB0aGlzIHJ1bGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgZXh0cmFjdFN1YnN0aXR1dGlvbnMoTkZSdWxlU2V0ICAgICAgICAgICAgIG93bmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORlJ1bGUgICAgICAgICAgICAgICAgcHJlZGVjZXNzb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBvd25lcnNPd25lcikgeworICAgICAgICBzdWIxID0gZXh0cmFjdFN1YnN0aXR1dGlvbihvd25lciwgcHJlZGVjZXNzb3IsIG93bmVyc093bmVyKTsKKyAgICAgICAgc3ViMiA9IGV4dHJhY3RTdWJzdGl0dXRpb24ob3duZXIsIHByZWRlY2Vzc29yLCBvd25lcnNPd25lcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2VhcmNoZXMgdGhlIHJ1bGUncyBydWxlIHRleHQgZm9yIHRoZSBmaXJzdCBzdWJzdGl0dXRpb24gdG9rZW4sCisgICAgICogY3JlYXRlcyBhIHN1YnN0aXR1dGlvbiBiYXNlZCBvbiBpdCwgYW5kIHJlbW92ZXMgdGhlIHRva2VuIGZyb20KKyAgICAgKiB0aGUgcnVsZSdzIHJ1bGUgdGV4dC4KKyAgICAgKiBAcGFyYW0gb3duZXIgVGhlIHJ1bGUgc2V0IGNvbnRhaW5pbmcgdGhpcyBydWxlCisgICAgICogQHBhcmFtIHByZWRlY2Vzc29yIFRoZSBydWxlIHByZWNlZGluZyB0aGlzIG9uZSBpbiB0aGUgcnVsZSBzZXQncworICAgICAqIHJ1bGUgbGlzdAorICAgICAqIEBwYXJhbSBvd25lcnNPd25lciBUaGUgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IHRoYXQgb3ducyB0aGlzIHJ1bGUKKyAgICAgKiBAcmV0dXJuIFRoZSBuZXdseS1jcmVhdGVkIHN1YnN0aXR1dGlvbi4gIFRoaXMgaXMgbmV2ZXIgbnVsbDsgaWYKKyAgICAgKiB0aGUgcnVsZSB0ZXh0IGRvZXNuJ3QgY29udGFpbiBhbnkgc3Vic3RpdHV0aW9uIHRva2VucywgdGhpcyB3aWxsCisgICAgICogYmUgYSBOdWxsU3Vic3RpdHV0aW9uLgorICAgICAqLworICAgIHByaXZhdGUgTkZTdWJzdGl0dXRpb24gZXh0cmFjdFN1YnN0aXR1dGlvbihORlJ1bGVTZXQgICAgICAgICAgICAgb3duZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5GUnVsZSAgICAgICAgICAgICAgICBwcmVkZWNlc3NvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IG93bmVyc093bmVyKSB7CisgICAgICAgIE5GU3Vic3RpdHV0aW9uIHJlc3VsdCA9IG51bGw7CisgICAgICAgIGludCBzdWJTdGFydDsKKyAgICAgICAgaW50IHN1YkVuZDsKKworICAgICAgICAvLyBzZWFyY2ggdGhlIHJ1bGUncyBydWxlIHRleHQgZm9yIHRoZSBmaXJzdCB0d28gY2hhcmFjdGVycyBvZgorICAgICAgICAvLyBhIHN1YnN0aXR1dGlvbiB0b2tlbgorICAgICAgICBzdWJTdGFydCA9IGluZGV4T2ZBbnkobmV3IFN0cmluZ1tdIHsgIjw8IiwgIjwlIiwgIjwjIiwgIjwwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI+PiIsICI+JSIsICI+IyIsICI+MCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPSUiLCAiPSMiLCAiPTAiIH0gKTsKKworICAgICAgICAvLyBpZiB3ZSBkaWRuJ3QgZmluZCBvbmUsIGNyZWF0ZSBhIG51bGwgc3Vic3RpdHV0aW9uIHBvc2l0aW9uZWQKKyAgICAgICAgLy8gYXQgdGhlIGVuZCBvZiB0aGUgcnVsZSB0ZXh0CisgICAgICAgIGlmIChzdWJTdGFydCA9PSAtMSkgeworICAgICAgICAgICAgcmV0dXJuIE5GU3Vic3RpdHV0aW9uLm1ha2VTdWJzdGl0dXRpb24ocnVsZVRleHQubGVuZ3RoKCksIHRoaXMsIHByZWRlY2Vzc29yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyLCBvd25lcnNPd25lciwgIiIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gc3BlY2lhbC1jYXNlIHRoZSAiPj4+IiB0b2tlbiwgc2luY2Ugc2VhcmNoaW5nIGZvciB0aGUgPiBhdCB0aGUKKyAgICAgICAgLy8gZW5kIHdpbGwgYWN0dWFsbHkgZmluZCB0aGUgPiBpbiB0aGUgbWlkZGxlCisgICAgICAgIGlmIChydWxlVGV4dC5zdWJzdHJpbmcoc3ViU3RhcnQpLnN0YXJ0c1dpdGgoIj4+PiIpKSB7CisgICAgICAgICAgICBzdWJFbmQgPSBzdWJTdGFydCArIDI7CisKKyAgICAgICAgLy8gb3RoZXJ3aXNlIHRoZSBzdWJzdGl0dXRpb24gdG9rZW4gZW5kcyB3aXRoIHRoZSBzYW1lIGNoYXJhY3RlcgorICAgICAgICAvLyBpdCBiZWdhbiB3aXRoCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzdWJFbmQgPSBydWxlVGV4dC5pbmRleE9mKHJ1bGVUZXh0LmNoYXJBdChzdWJTdGFydCksIHN1YlN0YXJ0ICsgMSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBpZiB3ZSBkb24ndCBmaW5kIHRoZSBlbmQgb2YgdGhlIHRva2VuIChpLmUuLCBpZiB3ZSdyZSBvbiBhIHNpbmdsZSwKKyAgICAgICAgLy8gdW5tYXRjaGVkIHRva2VuIGNoYXJhY3RlciksIGNyZWF0ZSBhIG51bGwgc3Vic3RpdHV0aW9uIHBvc2l0aW9uZWQKKyAgICAgICAgLy8gYXQgdGhlIGVuZCBvZiB0aGUgcnVsZQorICAgICAgICBpZiAoc3ViRW5kID09IC0xKSB7CisgICAgICAgICAgICByZXR1cm4gTkZTdWJzdGl0dXRpb24ubWFrZVN1YnN0aXR1dGlvbihydWxlVGV4dC5sZW5ndGgoKSwgdGhpcywgcHJlZGVjZXNzb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3duZXIsIG93bmVyc093bmVyLCAiIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBpZiB3ZSBnZXQgaGVyZSwgd2UgaGF2ZSBhIHJlYWwgc3Vic3RpdHV0aW9uIHRva2VuIChvciBhdCBsZWFzdAorICAgICAgICAvLyBzb21lIHRleHQgYm91bmRlZCBieSBzdWJzdGl0dXRpb24gdG9rZW4gY2hhcmFjdGVycykuICBVc2UKKyAgICAgICAgLy8gbWFrZVN1YnN0aXR1dGlvbigpIHRvIGNyZWF0ZSB0aGUgcmlnaHQga2luZCBvZiBzdWJzdGl0dXRpb24KKyAgICAgICAgcmVzdWx0ID0gTkZTdWJzdGl0dXRpb24ubWFrZVN1YnN0aXR1dGlvbihzdWJTdGFydCwgdGhpcywgcHJlZGVjZXNzb3IsIG93bmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgb3duZXJzT3duZXIsIHJ1bGVUZXh0LnN1YnN0cmluZyhzdWJTdGFydCwgc3ViRW5kICsgMSkpOworCisgICAgICAgIC8vIHJlbW92ZSB0aGUgc3Vic3RpdHV0aW9uIGZyb20gdGhlIHJ1bGUgdGV4dAorICAgICAgICBydWxlVGV4dCA9IHJ1bGVUZXh0LnN1YnN0cmluZygwLCBzdWJTdGFydCkgKyBydWxlVGV4dC5zdWJzdHJpbmcoc3ViRW5kICsgMSk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgcnVsZSdzIGJhc2UgdmFsdWUsIGFuZCBjYXVzZXMgdGhlIHJhZGl4IGFuZCBleHBvbmVudAorICAgICAqIHRvIGJlIHJlY2FsY3VsYXRlZC4gIFRoaXMgaXMgdXNlZCBkdXJpbmcgY29uc3RydWN0aW9uIHdoZW4gd2UKKyAgICAgKiBkb24ndCBrbm93IHRoZSBydWxlJ3MgYmFzZSB2YWx1ZSB1bnRpbCBhZnRlciBpdCdzIGJlZW4KKyAgICAgKiBjb25zdHJ1Y3RlZC4gIEl0IHNob3VsZCBiZSB1c2VkIGF0IGFueSBvdGhlciB0aW1lLgorICAgICAqIEBwYXJhbSBUaGUgbmV3IGJhc2UgdmFsdWUgZm9yIHRoZSBydWxlLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHNldEJhc2VWYWx1ZShsb25nIG5ld0Jhc2VWYWx1ZSkgeworICAgICAgICAvLyBzZXQgdGhlIGJhc2UgdmFsdWUKKyAgICAgICAgYmFzZVZhbHVlID0gbmV3QmFzZVZhbHVlOworCisgICAgICAgIC8vIGlmIHRoaXMgaXNuJ3QgYSBzcGVjaWFsIHJ1bGUsIHJlY2FsY3VsYXRlIHRoZSByYWRpeCBhbmQgZXhwb25lbnQKKyAgICAgICAgLy8gKHRoZSByYWRpeCBhbHdheXMgZGVmYXVsdHMgdG8gMTA7IGlmIGl0J3Mgc3VwcG9zZWQgdG8gYmUgc29tZXRoaW5nCisgICAgICAgIC8vIGVsc2UsIGl0J3MgY2xlYW5lZCB1cCBieSB0aGUgY2FsbGVyIGFuZCB0aGUgZXhwb25lbnQgaXMKKyAgICAgICAgLy8gcmVjYWxjdWxhdGVkIGFnYWluLS0gdGhlIG9ubHkgZnVuY3Rpb24gdGhhdCBkb2VzIHRoaXMgaXMKKyAgICAgICAgLy8gTkZSdWxlLnBhcnNlUnVsZURlc2NyaXB0b3IoKSApCisgICAgICAgIGlmIChiYXNlVmFsdWUgPj0gMSkgeworICAgICAgICAgICAgcmFkaXggPSAxMDsKKyAgICAgICAgICAgIGV4cG9uZW50ID0gZXhwZWN0ZWRFeHBvbmVudCgpOworCisgICAgICAgICAgICAvLyB0aGlzIGZ1bmN0aW9uIGdldHMgY2FsbGVkIG9uIGEgZnVsbHktY29uc3RydWN0ZWQgcnVsZSB3aG9zZQorICAgICAgICAgICAgLy8gZGVzY3JpcHRpb24gZGlkbid0IHNwZWNpZnkgYSBiYXNlIHZhbHVlLiAgVGhpcyBtZWFucyBpdAorICAgICAgICAgICAgLy8gaGFzIHN1YnN0aXR1dGlvbnMsIGFuZCBzb21lIHN1YnN0aXR1dGlvbnMgaG9sZCBvbiB0byBjb3BpZXMKKyAgICAgICAgICAgIC8vIG9mIHRoZSBydWxlJ3MgZGl2aXNvci4gIEZpeCB0aGVpciBjb3BpZXMgb2YgdGhlIGRpdmlzb3IuCisgICAgICAgICAgICBpZiAoc3ViMSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgc3ViMS5zZXREaXZpc29yKHJhZGl4LCBleHBvbmVudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc3ViMiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgc3ViMi5zZXREaXZpc29yKHJhZGl4LCBleHBvbmVudCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgLy8gaWYgdGhpcyBpcyBhIHNwZWNpYWwgcnVsZSwgaXRzIHJhZGl4IGFuZCBleHBvbmVudCBhcmUgYmFzaWNhbGx5CisgICAgICAgIC8vIGlnbm9yZWQuICBTZXQgdGhlbSB0byAic2FmZSIgZGVmYXVsdCB2YWx1ZXMKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJhZGl4ID0gMTA7CisgICAgICAgICAgICBleHBvbmVudCA9IDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGNhbGN1bGF0ZXMgdGhlIHJ1bGUncyBleHBvbmVudCBiYXNlZCBvbiBpdHMgcmFkaXggYW5kIGJhc2UKKyAgICAgKiB2YWx1ZS4gIFRoaXMgd2lsbCBiZSB0aGUgaGlnaGVzdCBwb3dlciB0aGUgcmFkaXggY2FuIGJlIHJhaXNlZCB0bworICAgICAqIGFuZCBzdGlsbCBwcm9kdWNlIGEgcmVzdWx0IGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgYmFzZSB2YWx1ZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHNob3J0IGV4cGVjdGVkRXhwb25lbnQoKSB7CisgICAgICAgIC8vIHNpbmNlIHRoZSBsb2cgb2YgMCwgb3IgdGhlIGxvZyBiYXNlIDAgb2Ygc29tZXRoaW5nLCBjYXVzZXMgYW4KKyAgICAgICAgLy8gZXJyb3IsIGRlY2xhcmUgdGhlIGV4cG9uZW50IGluIHRoZXNlIGNhc2VzIHRvIGJlIDAgKHdlIGFsc28KKyAgICAgICAgLy8gZGVhbCB3aXRoIHRoZSBzcGVjaWFsLXJ1bGUgaWRlbnRpZmllcnMgaGVyZSkKKyAgICAgICAgaWYgKHJhZGl4ID09IDAgfHwgYmFzZVZhbHVlIDwgMSkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKworICAgICAgICAvLyB3ZSBnZXQgcm91bmRpbmcgZXJyb3IgaW4gc29tZSBjYXNlcy0tIGZvciBleGFtcGxlLCBsb2cgMTAwMCAvIGxvZyAxMAorICAgICAgICAvLyBnaXZlcyB1cyAxLjk5OTk5OTk5OTYgaW5zdGVhZCBvZiAyLiAgVGhlIGV4dHJhIGxvZ2ljIGhlcmUgaXMgdG8gdGFrZQorICAgICAgICAvLyB0aGF0IGludG8gYWNjb3VudAorICAgICAgICBzaG9ydCB0ZW1wUmVzdWx0ID0gKHNob3J0KShNYXRoLmxvZyhiYXNlVmFsdWUpIC8gTWF0aC5sb2cocmFkaXgpKTsKKyAgICAgICAgaWYgKE1hdGgucG93KHJhZGl4LCB0ZW1wUmVzdWx0ICsgMSkgPD0gYmFzZVZhbHVlKSB7CisgICAgICAgICAgICByZXR1cm4gKHNob3J0KSh0ZW1wUmVzdWx0ICsgMSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gdGVtcFJlc3VsdDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFNlYXJjaGVzIHRoZSBydWxlJ3MgcnVsZSB0ZXh0IGZvciBhbnkgb2YgdGhlIHNwZWNpZmllZCBzdHJpbmdzLgorICAgICAqIEBwYXJhbSBzdHJpbmdzIEFuIGFycmF5IG9mIHN0cmluZ3MgdG8gc2VhcmNoIHRoZSBydWxlJ3MgcnVsZQorICAgICAqIHRleHQgZm9yCisgICAgICogQHJldHVybiBUaGUgaW5kZXggb2YgdGhlIGZpcnN0IG1hdGNoIGluIHRoZSBydWxlJ3MgcnVsZSB0ZXh0CisgICAgICogKGkuZS4sIHRoZSBmaXJzdCBzdWJzdHJpbmcgaW4gdGhlIHJ1bGUncyBydWxlIHRleHQgdGhhdCBtYXRjaGVzCisgICAgICogX2FueV8gb2YgdGhlIHN0cmluZ3MgaW4gInN0cmluZ3MiKS4gIElmIG5vbmUgb2YgdGhlIHN0cmluZ3MgaW4KKyAgICAgKiAic3RyaW5ncyIgaXMgZm91bmQgaW4gdGhlIHJ1bGUncyBydWxlIHRleHQsIHJldHVybnMgLTEuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgaW5kZXhPZkFueShTdHJpbmdbXSBzdHJpbmdzKSB7CisgICAgICAgIGludCBwb3M7CisgICAgICAgIGludCByZXN1bHQgPSAtMTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzdHJpbmdzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBwb3MgPSBydWxlVGV4dC5pbmRleE9mKHN0cmluZ3NbaV0pOworICAgICAgICAgICAgaWYgKHBvcyAhPSAtMSAmJiAocmVzdWx0ID09IC0xIHx8IHBvcyA8IHJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBwb3M7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gYm9pbGVycGxhdGUKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUZXN0cyB0d28gcnVsZXMgZm9yIGVxdWFsaXR5LgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBydWxlIHRvIGNvbXBhcmUgdGhpcyBvbmUgYWdhaW5zdAorICAgICAqIEByZXR1cm4gVHJ1ZSBpZiB0aGUgdHdvIHJ1bGVzIGFyZSBmdW5jdGlvbmFsbHkgZXF1aXZhbGVudAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgdGhhdCkgeworCWlmICh0aGF0IGluc3RhbmNlb2YgTkZSdWxlKSB7CisgICAgICAgICAgICBORlJ1bGUgdGhhdDIgPSAoTkZSdWxlKXRoYXQ7CisKKyAgICAgICAgICAgIHJldHVybiBiYXNlVmFsdWUgPT0gdGhhdDIuYmFzZVZhbHVlCisgICAgICAgICAgICAgICAgICAgJiYgcmFkaXggPT0gdGhhdDIucmFkaXgKKyAgICAgICAgICAgICAgICAgICAmJiBleHBvbmVudCA9PSB0aGF0Mi5leHBvbmVudAorICAgICAgICAgICAgICAgICAgICYmIHJ1bGVUZXh0LmVxdWFscyh0aGF0Mi5ydWxlVGV4dCkKKyAgICAgICAgICAgICAgICAgICAmJiBzdWIxLmVxdWFscyh0aGF0Mi5zdWIxKQorICAgICAgICAgICAgICAgICAgICYmIHN1YjIuZXF1YWxzKHRoYXQyLnN1YjIpOworCX0KKwlyZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHRleHR1YWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIHJ1bGUuICBUaGlzIHdvbid0CisgICAgICogbmVjZXNzYXJpbHkgYmUgdGhlIHNhbWUgYXMgdGhlIGRlc2NyaXB0aW9uIHRoYXQgdGhpcyBydWxlCisgICAgICogd2FzIGNyZWF0ZWQgd2l0aCwgYnV0IGl0IHdpbGwgcHJvZHVjZSB0aGUgc2FtZSByZXN1bHQuCisgICAgICogQHJldHVybiBBIHRleHR1YWwgZGVzY3JpcHRpb24gb2YgdGhlIHJ1bGUKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCisgICAgICAgIC8vIHN0YXJ0IHdpdGggdGhlIHJ1bGUgZGVzY3JpcHRvci4gIFNwZWNpYWwtY2FzZSB0aGUgc3BlY2lhbCBydWxlcworICAgICAgICBpZiAoYmFzZVZhbHVlID09IE5FR0FUSVZFX05VTUJFUl9SVUxFKSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIteDogIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoYmFzZVZhbHVlID09IElNUFJPUEVSX0ZSQUNUSU9OX1JVTEUpIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIngueDogIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoYmFzZVZhbHVlID09IFBST1BFUl9GUkFDVElPTl9SVUxFKSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIwLng6ICIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGJhc2VWYWx1ZSA9PSBNQVNURVJfUlVMRSkgeworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgieC4wOiAiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGZvciBhIG5vcm1hbCBydWxlLCB3cml0ZSBvdXQgaXRzIGJhc2UgdmFsdWUsIGFuZCBpZiB0aGUgcmFkaXggaXMKKyAgICAgICAgLy8gc29tZXRoaW5nIG90aGVyIHRoYW4gMTAsIHdyaXRlIG91dCB0aGUgcmFkaXggKHdpdGggdGhlIHByZWNlZGluZworICAgICAgICAvLyBzbGFzaCwgb2YgY291cnNlKS4gIFRoZW4gY2FsY3VsYXRlIHRoZSBleHBlY3RlZCBleHBvbmVudCBhbmQgaWYKKyAgICAgICAgLy8gaWYgaXNuJ3QgdGhlIHNhbWUgYXMgdGhlIGFjdHVhbCBleHBvbmVudCwgd3JpdGUgYW4gYXBwcm9wcmlhdGUKKyAgICAgICAgLy8gbnVtYmVyIG9mID4gc2lnbnMuICBGaW5hbGx5LCB0ZXJtaW5hdGUgdGhlIHdob2xlIHRoaW5nIHdpdGgKKyAgICAgICAgLy8gYSBjb2xvbi4KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKFN0cmluZy52YWx1ZU9mKGJhc2VWYWx1ZSkpOworICAgICAgICAgICAgaWYgKHJhZGl4ICE9IDEwKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnLycpOworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoU3RyaW5nLnZhbHVlT2YocmFkaXgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBudW1DYXJldHMgPSBleHBlY3RlZEV4cG9uZW50KCkgLSBleHBvbmVudDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtQ2FyZXRzOyBpKyspCisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnPicpOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiOiAiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIHRoZSBydWxlIHRleHQgYmVnaW5zIHdpdGggYSBzcGFjZSwgd3JpdGUgYW4gYXBvc3Ryb3BoZQorICAgICAgICAvLyAod2hpdGVzcGFjZSBhZnRlciB0aGUgcnVsZSBkZXNjcmlwdG9yIGlzIGlnbm9yZWQ7IHRoZQorICAgICAgICAvLyBhcG9zdHJvcGhlIGlzIHVzZWQgdG8gbWFrZSB0aGUgd2hpdGVzcGFjZSBzaWduaWZpY2FudCkKKyAgICAgICAgaWYgKHJ1bGVUZXh0LnN0YXJ0c1dpdGgoIiAiKSAmJiAoc3ViMSA9PSBudWxsIHx8IHN1YjEuZ2V0UG9zKCkgIT0gMCkpIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIlwnIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBub3csIHdyaXRlIHRoZSBydWxlJ3MgcnVsZSB0ZXh0LCBpbnNlcnRpbmcgYXBwcm9wcmlhdGUKKyAgICAgICAgLy8gc3Vic3RpdHV0aW9uIHRva2VucyBpbiB0aGUgYXBwcm9wcmlhdGUgcGxhY2VzCisgICAgICAgIFN0cmluZ0J1ZmZlciBydWxlVGV4dENvcHkgPSBuZXcgU3RyaW5nQnVmZmVyKHJ1bGVUZXh0KTsKKyAgICAgICAgcnVsZVRleHRDb3B5Lmluc2VydChzdWIyLmdldFBvcygpLCBzdWIyLnRvU3RyaW5nKCkpOworICAgICAgICBydWxlVGV4dENvcHkuaW5zZXJ0KHN1YjEuZ2V0UG9zKCksIHN1YjEudG9TdHJpbmcoKSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQocnVsZVRleHRDb3B5KTsKKworICAgICAgICAvLyBhbmQgZmluYWxseSwgdG9wIHRoZSB3aG9sZSB0aGluZyBvZmYgd2l0aCBhIHNlbWljb2xvbiBhbmQKKyAgICAgICAgLy8gcmV0dXJuIHRoZSByZXN1bHQKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgnOycpOworICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHNpbXBsZSBhY2Nlc3NvcnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBydWxlJ3MgYmFzZSB2YWx1ZQorICAgICAqIEByZXR1cm4gVGhlIHJ1bGUncyBiYXNlIHZhbHVlCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGxvbmcgZ2V0QmFzZVZhbHVlKCkgeworICAgICAgICByZXR1cm4gYmFzZVZhbHVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHJ1bGUncyBkaXZpc29yICh0aGUgdmFsdWUgdGhhdCBjb3Ryb2xzIHRoZSBiZWhhdmlvcgorICAgICAqIG9mIGl0cyBzdWJzdGl0dXRpb25zKQorICAgICAqIEByZXR1cm4gVGhlIHJ1bGUncyBkaXZpc29yCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSBnZXREaXZpc29yKCkgeworICAgICAgICByZXR1cm4gTWF0aC5wb3cocmFkaXgsIGV4cG9uZW50KTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gZm9ybWF0dGluZworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEZvcm1hdHMgdGhlIG51bWJlciwgYW5kIGluc2VydHMgdGhlIHJlc3VsdGluZyB0ZXh0IGludG8KKyAgICAgKiB0b0luc2VydEludG8uCisgICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZAorICAgICAqIEBwYXJhbSB0b0luc2VydEludG8gVGhlIHN0cmluZyB3aGVyZSB0aGUgcmVzdWx0YW50IHRleHQgc2hvdWxkCisgICAgICogYmUgaW5zZXJ0ZWQKKyAgICAgKiBAcGFyYW0gcG9zIFRoZSBwb3NpdGlvbiBpbiB0b0luc2VydEludG8gd2hlcmUgdGhlIHJlc3VsdGFudCB0ZXh0CisgICAgICogc2hvdWxkIGJlIGluc2VydGVkCisgICAgICovCisgICAgcHVibGljIHZvaWQgZG9Gb3JtYXQobG9uZyBudW1iZXIsIFN0cmluZ0J1ZmZlciB0b0luc2VydEludG8sIGludCBwb3MpIHsKKyAgICAgICAgLy8gZmlyc3QsIGluc2VydCB0aGUgcnVsZSdzIHJ1bGUgdGV4dCBpbnRvIHRvSW5zZXJ0SW50byBhdCB0aGUKKyAgICAgICAgLy8gc3BlY2lmaWVkIHBvc2l0aW9uLCB0aGVuIGluc2VydCB0aGUgcmVzdWx0cyBvZiB0aGUgc3Vic3RpdHV0aW9ucworICAgICAgICAvLyBpbnRvIHRoZSByaWdodCBwbGFjZXMgaW4gdG9JbnNlcnRJbnRvIChub3RpY2Ugd2UgZG8gdGhlCisgICAgICAgIC8vIHN1YnN0aXR1dGlvbnMgaW4gcmV2ZXJzZSBvcmRlciBzbyB0aGF0IHRoZSBvZmZzZXRzIGRvbid0IGdldAorICAgICAgICAvLyBtZXNzZWQgdXApCisgICAgICAgIHRvSW5zZXJ0SW50by5pbnNlcnQocG9zLCBydWxlVGV4dCk7CisgICAgICAgIHN1YjIuZG9TdWJzdGl0dXRpb24obnVtYmVyLCB0b0luc2VydEludG8sIHBvcyk7CisgICAgICAgIHN1YjEuZG9TdWJzdGl0dXRpb24obnVtYmVyLCB0b0luc2VydEludG8sIHBvcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRm9ybWF0cyB0aGUgbnVtYmVyLCBhbmQgaW5zZXJ0cyB0aGUgcmVzdWx0aW5nIHRleHQgaW50bworICAgICAqIHRvSW5zZXJ0SW50by4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkCisgICAgICogQHBhcmFtIHRvSW5zZXJ0SW50byBUaGUgc3RyaW5nIHdoZXJlIHRoZSByZXN1bHRhbnQgdGV4dCBzaG91bGQKKyAgICAgKiBiZSBpbnNlcnRlZAorICAgICAqIEBwYXJhbSBwb3MgVGhlIHBvc2l0aW9uIGluIHRvSW5zZXJ0SW50byB3aGVyZSB0aGUgcmVzdWx0YW50IHRleHQKKyAgICAgKiBzaG91bGQgYmUgaW5zZXJ0ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBkb0Zvcm1hdChkb3VibGUgbnVtYmVyLCBTdHJpbmdCdWZmZXIgdG9JbnNlcnRJbnRvLCBpbnQgcG9zKSB7CisgICAgICAgIC8vIGZpcnN0LCBpbnNlcnQgdGhlIHJ1bGUncyBydWxlIHRleHQgaW50byB0b0luc2VydEludG8gYXQgdGhlCisgICAgICAgIC8vIHNwZWNpZmllZCBwb3NpdGlvbiwgdGhlbiBpbnNlcnQgdGhlIHJlc3VsdHMgb2YgdGhlIHN1YnN0aXR1dGlvbnMKKyAgICAgICAgLy8gaW50byB0aGUgcmlnaHQgcGxhY2VzIGluIHRvSW5zZXJ0SW50bworICAgICAgICAvLyBbYWdhaW4sIHdlIGhhdmUgdHdvIGNvcGllcyBvZiB0aGlzIHJvdXRpbmUgdGhhdCBkbyB0aGUgc2FtZSB0aGluZworICAgICAgICAvLyBzbyB0aGF0IHdlIGRvbid0IHNhY3JpZmljZSBwcmVjaXNpb24gaW4gYSBsb25nIGJ5IGNhc3RpbmcgaXQKKyAgICAgICAgLy8gdG8gYSBkb3VibGVdCisgICAgICAgIHRvSW5zZXJ0SW50by5pbnNlcnQocG9zLCBydWxlVGV4dCk7CisgICAgICAgIHN1YjIuZG9TdWJzdGl0dXRpb24obnVtYmVyLCB0b0luc2VydEludG8sIHBvcyk7CisgICAgICAgIHN1YjEuZG9TdWJzdGl0dXRpb24obnVtYmVyLCB0b0luc2VydEludG8sIHBvcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVXNlZCBieSB0aGUgb3duaW5nIHJ1bGUgc2V0IHRvIGRldGVybWluZSB3aGV0aGVyIHRvIGludm9rZSB0aGUKKyAgICAgKiByb2xsYmFjayBydWxlIChpLmUuLCB3aGV0aGVyIHRoaXMgcnVsZSBvciB0aGUgb25lIHRoYXQgcHJlY2VkZXMKKyAgICAgKiBpdCBpbiB0aGUgcnVsZSBzZXQncyBsaXN0IHNob3VsZCBiZSB1c2VkIHRvIGZvcm1hdCB0aGUgbnVtYmVyKQorICAgICAqIEBwYXJhbSBUaGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZAorICAgICAqIEByZXR1cm4gVHJ1ZSBpZiB0aGUgcnVsZSBzZXQgc2hvdWxkIHVzZSB0aGUgcnVsZSB0aGF0IHByZWNlZGVzCisgICAgICogdGhpcyBvbmUgaW4gaXRzIGxpc3Q7IGZhbHNlIGlmIGl0IHNob3VsZCB1c2UgdGhpcyBydWxlCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gc2hvdWxkUm9sbEJhY2soZG91YmxlIG51bWJlcikgeworICAgICAgICAvLyB3ZSByb2xsIGJhY2sgaWYgdGhlIHJ1bGUgY29udGFpbnMgYSBtb2R1bHVzIHN1YnN0aXR1dGlvbiwKKyAgICAgICAgLy8gdGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQgaXMgYW4gZXZlbiBtdWx0aXBsZSBvZiB0aGUgcnVsZSdzCisgICAgICAgIC8vIGRpdmlzb3IsIGFuZCB0aGUgcnVsZSdzIGJhc2UgdmFsdWUgaXMgTk9UIGFuIGV2ZW4gbXVsdGlwbGUKKyAgICAgICAgLy8gb2YgaXRzIGRpdmlzb3IKKyAgICAgICAgLy8gSW4gb3RoZXIgd29yZHMsIGlmIHRoZSBvcmlnaW5hbCBkZXNjcmlwdGlvbiBoYWQKKyAgICAgICAgLy8gICAgMTAwOiA8PCBodW5kcmVkWyA+Pl07CisgICAgICAgIC8vIHRoYXQgZXhwYW5kcyBpbnRvCisgICAgICAgIC8vICAgIDEwMDogPDwgaHVuZHJlZDsKKyAgICAgICAgLy8gICAgMTAxOiA8PCBodW5kcmVkID4+OworICAgICAgICAvLyBpbnRlcm5hbGx5LiAgQnV0IHdoZW4gd2UncmUgZm9ybWF0dGluZyAyMDAsIGlmIHdlIHVzZSB0aGUgcnVsZQorICAgICAgICAvLyBhdCAxMDEsIHdoaWNoIHdvdWxkIG5vcm1hbGx5IGFwcGx5LCB3ZSBnZXQgInR3byBodW5kcmVkIHplcm8iLgorICAgICAgICAvLyBUbyBwcmV2ZW50IHRoaXMsIHdlIHJvbGwgYmFjayBhbmQgdXNlIHRoZSBydWxlIGF0IDEwMCBpbnN0ZWFkLgorICAgICAgICAvLyBUaGlzIGlzIHRoZSBsb2dpYyB0aGF0IG1ha2VzIHRoaXMgaGFwcGVuOiB0aGUgcnVsZSBhdCAxMDEgaGFzCisgICAgICAgIC8vIGEgbW9kdWx1cyBzdWJzdGl0dXRpb24sIGl0cyBiYXNlIHZhbHVlIGlzbid0IGFuIGV2ZW4gbXVsdGlwbGUKKyAgICAgICAgLy8gb2YgMTAwLCBhbmQgdGhlIHZhbHVlIHdlJ3JlIHRyeWluZyB0byBmb3JtYXQgX2lzXyBhbiBldmVuCisgICAgICAgIC8vIG11bHRpcGxlIG9mIDEwMC4gIFRoaXMgaXMgY2FsbGVkIHRoZSAicm9sbGJhY2sgcnVsZS4iCisgICAgICAgIGlmICgoc3ViMS5pc01vZHVsdXNTdWJzdGl0dXRpb24oKSkgfHwgKHN1YjIuaXNNb2R1bHVzU3Vic3RpdHV0aW9uKCkpKSB7CisgICAgICAgICAgICByZXR1cm4gKG51bWJlciAlIE1hdGgucG93KHJhZGl4LCBleHBvbmVudCkpID09IDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAoYmFzZVZhbHVlICUgTWF0aC5wb3cocmFkaXgsIGV4cG9uZW50KSkgIT0gMDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHBhcnNpbmcKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBBdHRlbXB0cyB0byBwYXJzZSB0aGUgc3RyaW5nIHdpdGggdGhpcyBydWxlLgorICAgICAqIEBwYXJhbSB0ZXh0IFRoZSBzdHJpbmcgYmVpbmcgcGFyc2VkCisgICAgICogQHBhcmFtIHBhcnNlUG9zaXRpb24gT24gZW50cnksIHRoZSB2YWx1ZSBpcyBpZ25vcmVkIGFuZCBhc3N1bWVkIHRvCisgICAgICogYmUgMC4gT24gZXhpdCwgdGhpcyBoYXMgYmVlbiB1cGRhdGVkIHdpdGggdGhlIHBvc2l0aW9uIG9mIHRoZSBmaXJzdAorICAgICAqIGNoYXJhY3RlciBub3QgY29uc3VtZWQgYnkgbWF0Y2hpbmcgdGhlIHRleHQgYWdhaW5zdCB0aGlzIHJ1bGUKKyAgICAgKiAoaWYgdGhpcyBydWxlIGRvZXNuJ3QgbWF0Y2ggdGhlIHRleHQgYXQgYWxsLCB0aGUgcGFyc2UgcG9zaXRpb24KKyAgICAgKiBpZiBsZWZ0IHVuY2hhbmdlZCAocHJlc3VtYWJseSBhdCAwKSBhbmQgdGhlIGZ1bmN0aW9uIHJldHVybnMKKyAgICAgKiBuZXcgTG9uZygwKSkuCisgICAgICogQHBhcmFtIGlzRnJhY3Rpb25SdWxlIFRydWUgaWYgdGhpcyBydWxlIGlzIGNvbnRhaW5lZCB3aXRoaW4gYQorICAgICAqIGZyYWN0aW9uIHJ1bGUgc2V0LiAgVGhpcyBpcyBvbmx5IHVzZWQgaWYgdGhlIHJ1bGUgaGFzIG5vCisgICAgICogc3Vic3RpdHV0aW9ucy4KKyAgICAgKiBAcmV0dXJuIElmIHRoaXMgcnVsZSBtYXRjaGVkIHRoZSB0ZXh0LCB0aGlzIGlzIHRoZSBydWxlJ3MgYmFzZSB2YWx1ZQorICAgICAqIGNvbWJpbmVkIGFwcHJvcHJpYXRlbHkgd2l0aCB0aGUgcmVzdWx0cyBvZiBwYXJzaW5nIHRoZSBzdWJzdGl0dXRpb25zLgorICAgICAqIElmIG5vdGhpbmcgbWF0Y2hlZCwgdGhpcyBpcyBuZXcgTG9uZygwKSBhbmQgdGhlIHBhcnNlIHBvc2l0aW9uIGlzCisgICAgICogbGVmdCB1bmNoYW5nZWQuICBUaGUgcmVzdWx0IHdpbGwgYmUgYW4gaW5zdGFuY2Ugb2YgTG9uZyBpZiB0aGUKKyAgICAgKiByZXN1bHQgaXMgYW4gaW50ZWdlciBhbmQgRG91YmxlIG90aGVyd2lzZS4gIFRoZSByZXN1bHQgaXMgbmV2ZXIgbnVsbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgTnVtYmVyIGRvUGFyc2UoU3RyaW5nIHRleHQsIFBhcnNlUG9zaXRpb24gcGFyc2VQb3NpdGlvbiwgYm9vbGVhbiBpc0ZyYWN0aW9uUnVsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSB1cHBlckJvdW5kKSB7CisKKyAgICAgICAgLy8gaW50ZXJuYWxseSB3ZSBvcGVyYXRlIG9uIGEgY29weSBvZiB0aGUgc3RyaW5nIGJlaW5nIHBhcnNlZAorICAgICAgICAvLyAoYmVjYXVzZSB3ZSdyZSBnb2luZyB0byBjaGFuZ2UgaXQpIGFuZCB1c2Ugb3VyIG93biBQYXJzZVBvc2l0aW9uCisgICAgICAgIFBhcnNlUG9zaXRpb24gcHAgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgU3RyaW5nIHdvcmtUZXh0ID0gbmV3IFN0cmluZyh0ZXh0KTsKKworICAgICAgICAvLyBjaGVjayB0byBzZWUgd2hldGhlciB0aGUgdGV4dCBiZWZvcmUgdGhlIGZpcnN0IHN1YnN0aXR1dGlvbgorICAgICAgICAvLyBtYXRjaGVzIHRoZSB0ZXh0IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHN0cmluZyBiZWluZworICAgICAgICAvLyBwYXJzZWQuICBJZiBpdCBkb2VzLCBzdHJpcCB0aGF0IG9mZiB0aGUgZnJvbnQgb2Ygd29ya1RleHQ7CisgICAgICAgIC8vIG90aGVyd2lzZSwgZHVtcCBvdXQgd2l0aCBhIG1pc21hdGNoCisgICAgICAgIHdvcmtUZXh0ID0gc3RyaXBQcmVmaXgod29ya1RleHQsIHJ1bGVUZXh0LnN1YnN0cmluZygwLCBzdWIxLmdldFBvcygpKSwgcHApOworICAgICAgICBpbnQgcHJlZml4TGVuZ3RoID0gdGV4dC5sZW5ndGgoKSAtIHdvcmtUZXh0Lmxlbmd0aCgpOworCisgICAgICAgIGlmIChwcC5nZXRJbmRleCgpID09IDAgJiYgc3ViMS5nZXRQb3MoKSAhPSAwKSB7CisvLyBjb21tZW50ZWQgb3V0IGJlY2F1c2UgUGFyc2VQb3NpdGlvbiBkb2Vzbid0IGhhdmUgZXJyb3IgaW5kZXggaW4gMS4xLngKKy8vICAgICAgICAgICAgICAgIHBhcnNlUG9zaXRpb24uc2V0RXJyb3JJbmRleChwcC5nZXRFcnJvckluZGV4KCkpOworICAgICAgICAgICAgcmV0dXJuIG5ldyBMb25nKDApOworICAgICAgICB9CisKKyAgICAgICAgLy8gdGhpcyBpcyB0aGUgZnVuIHBhcnQuICBUaGUgYmFzaWMgZ3V0cyBvZiB0aGUgcnVsZS1tYXRjaGluZworICAgICAgICAvLyBsb2dpYyBpcyBtYXRjaFRvRGVsaW1pdGVyKCksIHdoaWNoIGlzIGNhbGxlZCB0d2ljZS4gIFRoZSBmaXJzdAorICAgICAgICAvLyB0aW1lIGl0IHNlYXJjaGVzIHRoZSBpbnB1dCBzdHJpbmcgZm9yIHRoZSBydWxlIHRleHQgQkVUV0VFTgorICAgICAgICAvLyB0aGUgc3Vic3RpdHV0aW9ucyBhbmQgdHJpZXMgdG8gbWF0Y2ggdGhlIGludGVydmVuaW5nIHRleHQKKyAgICAgICAgLy8gaW4gdGhlIGlucHV0IHN0cmluZyB3aXRoIHRoZSBmaXJzdCBzdWJzdGl0dXRpb24uICBJZiB0aGF0CisgICAgICAgIC8vIHN1Y2NlZWRzLCBpdCB0aGVuIGNhbGxzIGl0IGFnYWluLCB0aGlzIHRpbWUgdG8gbG9vayBmb3IgdGhlCisgICAgICAgIC8vIHJ1bGUgdGV4dCBhZnRlciB0aGUgc2Vjb25kIHN1YnN0aXR1dGlvbiBhbmQgdG8gbWF0Y2ggdGhlCisgICAgICAgIC8vIGludGVydmVuaW5nIGlucHV0IHRleHQgYWdhaW5zdCB0aGUgc2Vjb25kIHN1YnN0aXR1dGlvbi4KKyAgICAgICAgLy8KKyAgICAgICAgLy8gRm9yIGV4YW1wbGUsIHNheSB3ZSBoYXZlIGEgcnVsZSB0aGF0IGxvb2tzIGxpa2UgdGhpczoKKyAgICAgICAgLy8gICAgZmlyc3QgPDwgbWlkZGxlID4+IGxhc3Q7CisgICAgICAgIC8vIGFuZCBpbnB1dCB0ZXh0IHRoYXQgbG9va3MgbGlrZSB0aGlzOgorICAgICAgICAvLyAgICBmaXJzdCBvbmUgbWlkZGxlIHR3byBsYXN0CisgICAgICAgIC8vIEZpcnN0IHdlIHVzZSBzdHJpcFByZWZpeCgpIHRvIG1hdGNoICJmaXJzdCAiIGluIGJvdGggcGxhY2VzIGFuZAorICAgICAgICAvLyBzdHJpcCBpdCBvZmYgdGhlIGZyb250LCBsZWF2aW5nCisgICAgICAgIC8vICAgIG9uZSBtaWRkbGUgdHdvIGxhc3QKKyAgICAgICAgLy8gVGhlbiB3ZSB1c2UgbWF0Y2hUb0RlbGltaXRlcigpIHRvIG1hdGNoICIgbWlkZGxlICIgYW5kIHRyeSB0bworICAgICAgICAvLyBtYXRjaCAib25lIiBhZ2FpbnN0IGEgc3Vic3RpdHV0aW9uLiAgSWYgaXQncyBzdWNjZXNzZnVsLCB3ZSBub3cKKyAgICAgICAgLy8gaGF2ZQorICAgICAgICAvLyAgICB0d28gbGFzdAorICAgICAgICAvLyBXZSB1c2UgbWF0Y2hUb0RlbGltaXRlcigpIGEgc2Vjb25kIHRpbWUgdG8gbWF0Y2ggIiBsYXN0IiBhbmQKKyAgICAgICAgLy8gdHJ5IHRvIG1hdGNoICJ0d28iIGFnYWluc3QgYSBzdWJzdGl0dXRpb24uICBJZiAidHdvIiBtYXRjaGVzCisgICAgICAgIC8vIHRoZSBzdWJzdGl0dXRpb24sIHdlIGhhdmUgYSBzdWNjZXNzZnVsIHBhcnNlLgorICAgICAgICAvLworICAgICAgICAvLyBTaW5jZSBpdCdzIHBvc3NpYmxlIGluIG1hbnkgY2FzZXMgdG8gZmluZCBtdWx0aXBsZSBpbnN0YW5jZXMKKyAgICAgICAgLy8gb2YgZWFjaCBvZiB0aGVzZSBwaWVjZXMgb2YgcnVsZSB0ZXh0IGluIHRoZSBpbnB1dCBzdHJpbmcsCisgICAgICAgIC8vIHdlIG5lZWQgdG8gdHJ5IGFsbCB0aGUgcG9zc2libGUgY29tYmluYXRpb25zIG9mIHRoZXNlCisgICAgICAgIC8vIGxvY2F0aW9ucy4gIFRoaXMgcHJldmVudHMgdXMgZnJvbSBwcmVtYXR1cmVseSBkZWNsYXJpbmcgYSBtaXNtYXRjaCwKKyAgICAgICAgLy8gYW5kIG1ha2VzIHN1cmUgd2UgbWF0Y2ggYXMgbXVjaCBpbnB1dCB0ZXh0IGFzIHdlIGNhbi4KKyAgICAgICAgaW50IGhpZ2hXYXRlck1hcmsgPSAwOworICAgICAgICBkb3VibGUgcmVzdWx0ID0gMDsKKyAgICAgICAgaW50IHN0YXJ0ID0gMDsKKyAgICAgICAgZG91YmxlIHRlbXBCYXNlVmFsdWUgPSBNYXRoLm1heCgwLCBiYXNlVmFsdWUpOworCisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIC8vIG91ciBwYXJ0aWFsIHBhcnNlIHJlc3VsdCBzdGFydHMgb3V0IGFzIHRoaXMgcnVsZSdzIGJhc2UKKyAgICAgICAgICAgIC8vIHZhbHVlLiAgSWYgaXQgZmluZHMgYSBzdWNjZXNzZnVsIG1hdGNoLCBtYXRjaFRvRGVsaW1pdGVyKCkKKyAgICAgICAgICAgIC8vIHdpbGwgY29tcG9zZSB0aGlzIGluIHNvbWUgd2F5IHdpdGggd2hhdCBpdCBnZXRzIGJhY2sgZnJvbQorICAgICAgICAgICAgLy8gdGhlIHN1YnN0aXR1dGlvbiwgZ2l2aW5nIHVzIGEgbmV3IHBhcnRpYWwgcGFyc2UgcmVzdWx0CisgICAgICAgICAgICBwcC5zZXRJbmRleCgwKTsKKyAgICAgICAgICAgIGRvdWJsZSBwYXJ0aWFsUmVzdWx0ID0gbWF0Y2hUb0RlbGltaXRlcih3b3JrVGV4dCwgc3RhcnQsIHRlbXBCYXNlVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZVRleHQuc3Vic3RyaW5nKHN1YjEuZ2V0UG9zKCksIHN1YjIuZ2V0UG9zKCkpLCBwcCwgc3ViMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cHBlckJvdW5kKS5kb3VibGVWYWx1ZSgpOworCisgICAgICAgICAgICAvLyBpZiB3ZSBnb3QgYSBzdWNjZXNzZnVsIG1hdGNoIChvciB3ZXJlIHRyeWluZyB0byBtYXRjaCBhCisgICAgICAgICAgICAvLyBudWxsIHN1YnN0aXR1dGlvbiksIHBwIGlzIG5vdyBwb2ludGluZyBhdCB0aGUgZmlyc3QgdW5tYXRjaGVkCisgICAgICAgICAgICAvLyBjaGFyYWN0ZXIuICBUYWtlIG5vdGUgb2YgdGhhdCwgYW5kIHRyeSBtYXRjaFRvRGVsaW1pdGVyKCkKKyAgICAgICAgICAgIC8vIG9uIHRoZSBpbnB1dCB0ZXh0IGFnYWluCisgICAgICAgICAgICBpZiAocHAuZ2V0SW5kZXgoKSAhPSAwIHx8IHN1YjEuaXNOdWxsU3Vic3RpdHV0aW9uKCkpIHsKKyAgICAgICAgICAgICAgICBzdGFydCA9IHBwLmdldEluZGV4KCk7CisKKyAgICAgICAgICAgICAgICBTdHJpbmcgd29ya1RleHQyID0gd29ya1RleHQuc3Vic3RyaW5nKHBwLmdldEluZGV4KCkpOworICAgICAgICAgICAgICAgIFBhcnNlUG9zaXRpb24gcHAyID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisKKyAgICAgICAgICAgICAgICAvLyB0aGUgc2Vjb25kIG1hdGNoVG9EZWxpbWl0ZXIoKSB3aWxsIGNvbXBvc2Ugb3VyIHByZXZpb3VzCisgICAgICAgICAgICAgICAgLy8gcGFydGlhbCByZXN1bHQgd2l0aCB3aGF0ZXZlciBpdCBnZXRzIGJhY2sgZnJvbSBpdHMKKyAgICAgICAgICAgICAgICAvLyBzdWJzdGl0dXRpb24gaWYgdGhlcmUncyBhIHN1Y2Nlc3NmdWwgbWF0Y2gsIGdpdmluZyB1cworICAgICAgICAgICAgICAgIC8vIGEgcmVhbCByZXN1bHQKKyAgICAgICAgICAgICAgICBwYXJ0aWFsUmVzdWx0ID0gbWF0Y2hUb0RlbGltaXRlcih3b3JrVGV4dDIsIDAsIHBhcnRpYWxSZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVUZXh0LnN1YnN0cmluZyhzdWIyLmdldFBvcygpKSwgcHAyLCBzdWIyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cHBlckJvdW5kKS5kb3VibGVWYWx1ZSgpOworCisgICAgICAgICAgICAgICAgLy8gaWYgd2UgZ290IGEgc3VjY2Vzc2Z1bCBtYXRjaCBvbiB0aGlzIHNlY29uZAorICAgICAgICAgICAgICAgIC8vIG1hdGNoVG9EZWxpbWl0ZXIoKSBjYWxsLCB1cGRhdGUgdGhlIGhpZ2gtd2F0ZXIgbWFyaworICAgICAgICAgICAgICAgIC8vIGFuZCByZXN1bHQgKGlmIG5lY2Vzc2FyeSkKKyAgICAgICAgICAgICAgICBpZiAocHAyLmdldEluZGV4KCkgIT0gMCB8fCBzdWIyLmlzTnVsbFN1YnN0aXR1dGlvbigpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChwcmVmaXhMZW5ndGggKyBwcC5nZXRJbmRleCgpICsgcHAyLmdldEluZGV4KCkgPiBoaWdoV2F0ZXJNYXJrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBoaWdoV2F0ZXJNYXJrID0gcHJlZml4TGVuZ3RoICsgcHAuZ2V0SW5kZXgoKSArIHBwMi5nZXRJbmRleCgpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcGFydGlhbFJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKy8vIGNvbW1lbnRlZCBvdXQgYmVjYXVzZSBQYXJzZVBvc2l0aW9uIGRvZXNuJ3QgaGF2ZSBlcnJvciBpbmRleCBpbiAxLjEueAorLy8gICAgICAgICAgICAgICAgICAgIGVsc2UgeworLy8gICAgICAgICAgICAgICAgICAgICAgICBpbnQgdGVtcCA9IHBwMi5nZXRFcnJvckluZGV4KCkgKyBzdWIxLmdldFBvcygpICsgcHAuZ2V0SW5kZXgoKTsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRlbXA+IHBhcnNlUG9zaXRpb24uZ2V0RXJyb3JJbmRleCgpKSB7CisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEVycm9ySW5kZXgodGVtcCk7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisvLyBjb21tZW50ZWQgb3V0IGJlY2F1c2UgUGFyc2VQb3NpdGlvbiBkb2Vzbid0IGhhdmUgZXJyb3IgaW5kZXggaW4gMS4xLngKKy8vICAgICAgICAgICAgICAgIGVsc2UgeworLy8gICAgICAgICAgICAgICAgICAgIGludCB0ZW1wID0gc3ViMS5nZXRQb3MoKSArIHBwLmdldEVycm9ySW5kZXgoKTsKKy8vICAgICAgICAgICAgICAgICAgICBpZiAodGVtcCA+IHBhcnNlUG9zaXRpb24uZ2V0RXJyb3JJbmRleCgpKSB7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlUG9zaXRpb24uc2V0RXJyb3JJbmRleCh0ZW1wKTsKKy8vICAgICAgICAgICAgICAgICAgICB9CisvLyAgICAgICAgICAgICAgICB9CisgICAgICAgIC8vIGtlZXAgdHJ5aW5nIHRvIG1hdGNoIHRoaW5ncyB1bnRpbCB0aGUgb3V0ZXIgbWF0Y2hUb0RlbGltaXRlcigpCisgICAgICAgIC8vIGNhbGwgZmFpbHMgdG8gbWFrZSBhIG1hdGNoIChlYWNoIHRpbWUsIGl0IHBpY2tzIHVwIHdoZXJlIGl0CisgICAgICAgIC8vIGxlZnQgb2ZmIHRoZSBwcmV2aW91cyB0aW1lKQorICAgICAgICB9IHdoaWxlIChzdWIxLmdldFBvcygpICE9IHN1YjIuZ2V0UG9zKCkgJiYgcHAuZ2V0SW5kZXgoKSA+IDAgJiYgcHAuZ2V0SW5kZXgoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwgd29ya1RleHQubGVuZ3RoKCkgJiYgcHAuZ2V0SW5kZXgoKSAhPSBzdGFydCk7CisKKyAgICAgICAgLy8gdXBkYXRlIHRoZSBjYWxsZXIncyBQYXJzZVBvc2l0aW9uIHdpdGggb3VyIGhpZ2gtd2F0ZXIgbWFyaworICAgICAgICAvLyAoaS5lLiwgaXQgbm93IHBvaW50cyBhdCB0aGUgZmlyc3QgY2hhcmFjdGVyIHRoaXMgZnVuY3Rpb24KKyAgICAgICAgLy8gZGlkbid0IG1hdGNoLS0gdGhlIFBhcnNlUG9zaXRpb24gaXMgdGhlcmVmb3JlIHVuY2hhbmdlZCBpZgorICAgICAgICAvLyB3ZSBkaWRuJ3QgbWF0Y2ggYW55dGhpbmcpCisgICAgICAgIHBhcnNlUG9zaXRpb24uc2V0SW5kZXgoaGlnaFdhdGVyTWFyayk7CisvLyBjb21tZW50ZWQgb3V0IGJlY2F1c2UgUGFyc2VQb3NpdGlvbiBkb2Vzbid0IGhhdmUgZXJyb3IgaW5kZXggaW4gMS4xLngKKy8vICAgICAgICBpZiAoaGlnaFdhdGVyTWFyayA+IDApIHsKKy8vICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRFcnJvckluZGV4KDApOworLy8gICAgICAgIH0KKworICAgICAgICAvLyB0aGlzIGlzIGEgaGFjayBmb3Igb25lIHVudXN1YWwgY29uZGl0aW9uOiBOb3JtYWxseSwgd2hldGhlciB0aGlzCisgICAgICAgIC8vIHJ1bGUgYmVsb25nIHRvIGEgZnJhY3Rpb24gcnVsZSBzZXQgb3Igbm90IGlzIGhhbmRsZWQgYnkgaXRzCisgICAgICAgIC8vIHN1YnN0aXR1dGlvbnMuICBCdXQgaWYgdGhhdCBydWxlIEhBUyBOTyBzdWJzdGl0dXRpb25zLCB0aGVuCisgICAgICAgIC8vIHdlIGhhdmUgdG8gYWNjb3VudCBmb3IgaXQgaGVyZS4gIEJ5IGRlZmluaXRpb24sIGlmIHRoZSBtYXRjaGluZworICAgICAgICAvLyBydWxlIGluIGEgZnJhY3Rpb24gcnVsZSBzZXQgaGFzIG5vIHN1YnN0aXR1dGlvbnMsIGl0cyBudW1lcmF0b3IKKyAgICAgICAgLy8gaXMgMSwgYW5kIHNvIHRoZSByZXN1bHQgaXMgdGhlIHJlY2lwcm9jYWwgb2YgaXRzIGJhc2UgdmFsdWUuCisgICAgICAgIGlmIChpc0ZyYWN0aW9uUnVsZSAmJiBoaWdoV2F0ZXJNYXJrID4gMCAmJiBzdWIxLmlzTnVsbFN1YnN0aXR1dGlvbigpKSB7CisgICAgICAgICAgICByZXN1bHQgPSAxIC8gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgLy8gcmV0dXJuIHRoZSByZXN1bHQgYXMgYSBMb25nIGlmIHBvc3NpYmxlLCBvciBhcyBhIERvdWJsZQorICAgICAgICBpZiAocmVzdWx0ID09IChsb25nKXJlc3VsdCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBMb25nKChsb25nKXJlc3VsdCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IERvdWJsZShyZXN1bHQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIGJ5IHBhcnNlKCkgdG8gbWF0Y2ggdGhlIHRleHQgYmVpbmcgcGFyc2VkCisgICAgICogYWdhaW5zdCBhIHBvc3NpYmxlIHByZWZpeCBzdHJpbmcuICBUaGlzIGZ1bmN0aW9uCisgICAgICogbWF0Y2hlcyBjaGFyYWN0ZXJzIGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgc3RyaW5nIGJlaW5nIHBhcnNlZAorICAgICAqIHRvIGNoYXJhY3RlcnMgZnJvbSB0aGUgcHJvc3BlY3RpdmUgcHJlZml4LiAgSWYgdGhleSBtYXRjaCwgcHAgaXMKKyAgICAgKiB1cGRhdGVkIHRvIHRoZSBmaXJzdCBjaGFyYWN0ZXIgbm90IG1hdGNoZWQsIGFuZCB0aGUgcmVzdWx0IGlzCisgICAgICogdGhlIHVucGFyc2VkIHBhcnQgb2YgdGhlIHN0cmluZy4gIElmIHRoZXkgZG9uJ3QgbWF0Y2gsIHRoZSB3aG9sZQorICAgICAqIHN0cmluZyBpcyByZXR1cm5lZCwgYW5kIHBwIGlzIGxlZnQgdW5jaGFuZ2VkLgorICAgICAqIEBwYXJhbSB0ZXh0IFRoZSBzdHJpbmcgYmVpbmcgcGFyc2VkCisgICAgICogQHBhcmFtIHByZWZpeCBUaGUgdGV4dCB0byBtYXRjaCBhZ2FpbnN0CisgICAgICogQHBhcmFtIHBwIE9uIGVudHJ5LCBpZ25vcmVkIGFuZCBhc3N1bWVkIHRvIGJlIDAuICBPbiBleGl0LCBwb2ludHMKKyAgICAgKiB0byB0aGUgZmlyc3QgdW5tYXRjaGVkIGNoYXJhY3RlciAoYXNzdW1pbmcgdGhlIHdob2xlIHByZWZpeCBtYXRjaGVkKSwKKyAgICAgKiBvciBpcyB1bmNoYW5nZWQgKGlmIHRoZSB3aG9sZSBwcmVmaXggZGlkbid0IG1hdGNoKS4KKyAgICAgKiBAcmV0dXJuIElmIHRoaW5ncyBtYXRjaCwgdGhpcyBpcyB0aGUgdW5wYXJzZWQgcGFydCBvZiAidGV4dCI7CisgICAgICogaWYgdGhleSBkaWRuJ3QgbWF0Y2gsIHRoaXMgaXMgInRleHQiLgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHN0cmlwUHJlZml4KFN0cmluZyB0ZXh0LCBTdHJpbmcgcHJlZml4LCBQYXJzZVBvc2l0aW9uIHBwKSB7CisgICAgICAgIC8vIGlmIHRoZSBwcmVmaXggdGV4dCBpcyBlbXB0eSwgZHVtcCBvdXQgd2l0aG91dCBkb2luZyBhbnl0aGluZworICAgICAgICBpZiAocHJlZml4Lmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiB0ZXh0OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gb3RoZXJ3aXNlLCB1c2UgcHJlZml4TGVuZ3RoKCkgdG8gbWF0Y2ggdGhlIGJlZ2lubmluZyBvZgorICAgICAgICAgICAgLy8gInRleHQiIGFnYWluc3QgInByZWZpeCIuICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlCisgICAgICAgICAgICAvLyBudW1iZXIgb2YgY2hhcmFjdGVycyBmcm9tICJ0ZXh0IiB0aGF0IG1hdGNoZWQgKG9yIDAgaWYKKyAgICAgICAgICAgIC8vIHdlIGRpZG4ndCBtYXRjaCB0aGUgd2hvbGUgcHJlZml4KQorICAgICAgICAgICAgaW50IHBmbCA9IHByZWZpeExlbmd0aCh0ZXh0LCBwcmVmaXgpOworICAgICAgICAgICAgaWYgKHBmbCAhPSAwKSB7CisgICAgICAgICAgICAgICAgLy8gaWYgd2UgZ290IGEgc3VjY2Vzc2Z1bCBtYXRjaCwgdXBkYXRlIHRoZSBwYXJzZSBwb3NpdGlvbgorICAgICAgICAgICAgICAgIC8vIGFuZCBzdHJpcCB0aGUgcHJlZml4IG9mZiBvZiAidGV4dCIKKyAgICAgICAgICAgICAgICBwcC5zZXRJbmRleChwcC5nZXRJbmRleCgpICsgcGZsKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGV4dC5zdWJzdHJpbmcocGZsKTsKKworICAgICAgICAgICAgLy8gaWYgd2UgZGlkbid0IGdldCBhIHN1Y2Nlc3NmdWwgbWF0Y2gsIGxlYXZlIGV2ZXJ5dGhpbmcgYWxvbmUKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRleHQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVc2VkIGJ5IHBhcnNlKCkgdG8gbWF0Y2ggYSBzdWJzdGl0dXRpb24gYW5kIGFueSBmb2xsb3dpbmcgdGV4dC4KKyAgICAgKiAidGV4dCIgaXMgc2VhcmNoZWQgZm9yIGluc3RhbmNlcyBvZiAiZGVsaW1pdGVyIi4gIEZvciBlYWNoIGluc3RhbmNlCisgICAgICogb2YgZGVsaW1pdGVyLCB0aGUgaW50ZXJ2ZW5pbmcgdGV4dCBpcyB0ZXN0ZWQgdG8gc2VlIHdoZXRoZXIgaXQKKyAgICAgKiBtYXRjaGVzIHRoZSBzdWJzdGl0dXRpb24uICBUaGUgbG9uZ2VzdCBtYXRjaCB3aW5zLgorICAgICAqIEBwYXJhbSB0ZXh0IFRoZSBzdHJpbmcgYmVpbmcgcGFyc2VkCisgICAgICogQHBhcmFtIHN0YXJ0UG9zIFRoZSBwb3NpdGlvbiBpbiAidGV4dCIgd2hlcmUgd2Ugc2hvdWxkIHN0YXJ0IGxvb2tpbmcKKyAgICAgKiBmb3IgImRlbGltaXRlciIuCisgICAgICogQHBhcmFtIGJhc2VWYWx1ZSBBIHBhcnRpYWwgcGFyc2UgcmVzdWx0IChvZnRlbiB0aGUgcnVsZSdzIGJhc2UgdmFsdWUpLAorICAgICAqIHdoaWNoIGlzIGNvbWJpbmVkIHdpdGggdGhlIHJlc3VsdCBmcm9tIG1hdGNoaW5nIHRoZSBzdWJzdGl0dXRpb24KKyAgICAgKiBAcGFyYW0gZGVsaW1pdGVyIFRoZSBzdHJpbmcgdG8gc2VhcmNoICJ0ZXh0IiBmb3IuCisgICAgICogQHBhcmFtIHBwIElnbm9yZWQgYW5kIHByZXN1bWVkIHRvIGJlIDAgb24gZW50cnkuICBJZiB0aGVyZSdzIGEgbWF0Y2gsCisgICAgICogb24gZXhpdCB0aGlzIHdpbGwgcG9pbnQgdG8gdGhlIGZpcnN0IHVubWF0Y2hlZCBjaGFyYWN0ZXIuCisgICAgICogQHBhcmFtIHN1YiBJZiB3ZSBmaW5kICJkZWxpbWl0ZXIiIGluICJ0ZXh0IiwgdGhpcyBzdWJzdGl0dXRpb24gaXMgdXNlZAorICAgICAqIHRvIG1hdGNoIHRoZSB0ZXh0IGJldHdlZW4gdGhlIGJlZ2lubmluZyBvZiB0aGUgc3RyaW5nIGFuZCB0aGUKKyAgICAgKiBwb3NpdGlvbiBvZiAiZGVsaW1pdGVyLiIgIChJZiAiZGVsaW1pdGVyIiBpcyB0aGUgZW1wdHkgc3RyaW5nLCB0aGVuCisgICAgICogdGhpcyBmdW5jdGlvbiBqdXN0IG1hdGNoZXMgYWdhaW5zdCB0aGlzIHN1YnN0aXR1dGlvbiBhbmQgdXBkYXRlcworICAgICAqIGV2ZXJ5dGhpbmcgYWNjb3JkaW5nbHkuKQorICAgICAqIEBwYXJhbSB1cHBlckJvdW5kIFdoZW4gbWF0Y2hpbmcgdGhlIHN1YnN0aXR1dGlvbiwgaXQgd2lsbCBvbmx5CisgICAgICogY29uc2lkZXIgcnVsZXMgd2l0aCBiYXNlIHZhbHVlcyBsb3dlciB0aGFuIHRoaXMgdmFsdWUuCisgICAgICogQHJldHVybiBJZiB0aGVyZSdzIGEgbWF0Y2gsIHRoaXMgaXMgdGhlIHJlc3VsdCBvZiBjb21wb3NpbmcKKyAgICAgKiBiYXNlVmFsdWUgd2l0aCB0aGUgcmVzdWx0IG9mIG1hdGNoaW5nIHRoZSBzdWJzdGl0dXRpb24uICBPdGhlcndpc2UsCisgICAgICogdGhpcyBpcyBuZXcgTG9uZygwKS4gIEl0J3MgbmV2ZXIgbnVsbC4gIElmIHRoZSByZXN1bHQgaXMgYW4gaW50ZWdlciwKKyAgICAgKiB0aGlzIHdpbGwgYmUgYW4gaW5zdGFuY2Ugb2YgTG9uZzsgb3RoZXJ3aXNlLCBpdCdzIGFuIGluc3RhbmNlIG9mCisgICAgICogRG91YmxlLgorICAgICAqLworICAgIHByaXZhdGUgTnVtYmVyIG1hdGNoVG9EZWxpbWl0ZXIoU3RyaW5nIHRleHQsIGludCBzdGFydFBvcywgZG91YmxlIGJhc2VWYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZWxpbWl0ZXIsIFBhcnNlUG9zaXRpb24gcHAsIE5GU3Vic3RpdHV0aW9uIHN1YiwgZG91YmxlIHVwcGVyQm91bmQpIHsKKyAgICAgICAgLy8gaWYgImRlbGltaXRlciIgY29udGFpbnMgcmVhbCAoaS5lLiwgbm9uLWlnbm9yYWJsZSkgdGV4dCwgc2VhcmNoCisgICAgICAgIC8vIGl0IGZvciAiZGVsaW1pdGVyIiBiZWdpbm5pbmcgYXQgInN0YXJ0Ii4gIElmIHRoYXQgc3VjY2VlZHMsIHRoZW4KKyAgICAgICAgLy8gdXNlICJzdWIiJ3MgZG9QYXJzZSgpIG1ldGhvZCB0byBtYXRjaCB0aGUgdGV4dCBiZWZvcmUgdGhlCisgICAgICAgIC8vIGluc3RhbmNlIG9mICJkZWxpbWl0ZXIiIHdlIGp1c3QgZm91bmQuCisgICAgICAgIGlmICghYWxsSWdub3JhYmxlKGRlbGltaXRlcikpIHsKKyAgICAgICAgICAgIFBhcnNlUG9zaXRpb24gdGVtcFBQID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgICAgICBOdW1iZXIgdGVtcFJlc3VsdDsKKworICAgICAgICAgICAgLy8gdXNlIGZpbmRUZXh0KCkgdG8gc2VhcmNoIGZvciAiZGVsaW1pdGVyIi4gIEl0IHJldHVybnMgYSB0d28tCisgICAgICAgICAgICAvLyBlbGVtZW50IGFycmF5OiBlbGVtZW50IDAgaXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBtYXRjaCwgYW5kCisgICAgICAgICAgICAvLyBlbGVtZW50IDEgaXMgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRoYXQgbWF0Y2hlZAorICAgICAgICAgICAgLy8gImRlbGltaXRlciIuCisgICAgICAgICAgICBpbnRbXSB0ZW1wID0gZmluZFRleHQodGV4dCwgZGVsaW1pdGVyLCBzdGFydFBvcyk7CisgICAgICAgICAgICBpbnQgZFBvcyA9IHRlbXBbMF07CisgICAgICAgICAgICBpbnQgZExlbiA9IHRlbXBbMV07CisKKyAgICAgICAgICAgIC8vIGlmIGZpbmRUZXh0KCkgc3VjY2VlZGVkLCBpc29sYXRlIHRoZSB0ZXh0IHByZWNlZGluZyB0aGUKKyAgICAgICAgICAgIC8vIG1hdGNoLCBhbmQgdXNlICJzdWIiIHRvIG1hdGNoIHRoYXQgdGV4dAorICAgICAgICAgICAgd2hpbGUgKGRQb3MgPj0gMCkgeworICAgICAgICAgICAgICAgIFN0cmluZyBzdWJUZXh0ID0gdGV4dC5zdWJzdHJpbmcoMCwgZFBvcyk7CisgICAgICAgICAgICAgICAgaWYgKHN1YlRleHQubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIHRlbXBSZXN1bHQgPSBzdWIuZG9QYXJzZShzdWJUZXh0LCB0ZW1wUFAsIGJhc2VWYWx1ZSwgdXBwZXJCb3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdHRlci5sZW5pZW50UGFyc2VFbmFibGVkKCkpOworCisgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBzdWJzdGl0dXRpb24gY291bGQgbWF0Y2ggYWxsIHRoZSB0ZXh0IHVwIHRvCisgICAgICAgICAgICAgICAgICAgIC8vIHdoZXJlIHdlIGZvdW5kICJkZWxpbWl0ZXIiLCB0aGVuIHRoaXMgZnVuY3Rpb24gaGFzCisgICAgICAgICAgICAgICAgICAgIC8vIGEgc3VjY2Vzc2Z1bCBtYXRjaC4gIEJ1bXAgdGhlIGNhbGxlcidzIHBhcnNlIHBvc2l0aW9uCisgICAgICAgICAgICAgICAgICAgIC8vIHRvIHBvaW50IHRvIHRoZSBmaXJzdCBjaGFyYWN0ZXIgYWZ0ZXIgdGhlIHRleHQKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhhdCBtYXRjaGVzICJkZWxpbWl0ZXIiLCBhbmQgcmV0dXJuIHRoZSByZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgLy8gd2UgZ290IGZyb20gcGFyc2luZyB0aGUgc3Vic3RpdHV0aW9uLgorICAgICAgICAgICAgICAgICAgICBpZiAodGVtcFBQLmdldEluZGV4KCkgPT0gZFBvcykgeworICAgICAgICAgICAgICAgICAgICAgICAgcHAuc2V0SW5kZXgoZFBvcyArIGRMZW4pOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRlbXBSZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIH0KKy8vIGNvbW1lbnRlZCBvdXQgYmVjYXVzZSBQYXJzZVBvc2l0aW9uIGRvZXNuJ3QgaGF2ZSBlcnJvciBpbmRleCBpbiAxLjEueAorLy8gICAgICAgICAgICAgICAgICAgIGVsc2UgeworLy8gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGVtcFBQLmdldEVycm9ySW5kZXgoKSA+IDApIHsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBwLnNldEVycm9ySW5kZXgodGVtcFBQLmdldEVycm9ySW5kZXgoKSk7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcC5zZXRFcnJvckluZGV4KHRlbXBQUC5nZXRJbmRleCgpKTsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBpZiB3ZSBkaWRuJ3QgbWF0Y2ggdGhlIHN1YnN0aXR1dGlvbiwgc2VhcmNoIGZvciBhbm90aGVyCisgICAgICAgICAgICAgICAgLy8gY29weSBvZiAiZGVsaW1pdGVyIiBpbiAidGV4dCIgYW5kIHJlcGVhdCB0aGUgbG9vcCBpZgorICAgICAgICAgICAgICAgIC8vIHdlIGZpbmQgaXQKKyAgICAgICAgICAgICAgICB0ZW1wUFAuc2V0SW5kZXgoMCk7CisgICAgICAgICAgICAgICAgdGVtcCA9IGZpbmRUZXh0KHRleHQsIGRlbGltaXRlciwgZFBvcyArIGRMZW4pOworICAgICAgICAgICAgICAgIGRQb3MgPSB0ZW1wWzBdOworICAgICAgICAgICAgICAgIGRMZW4gPSB0ZW1wWzFdOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gaWYgd2UgbWFrZSBpdCBoZXJlLCB0aGlzIHdhcyBhbiB1bnN1Y2Nlc3NmdWwgbWF0Y2gsIGFuZCB3ZQorICAgICAgICAgICAgLy8gbGVhdmUgcHAgdW5jaGFuZ2VkIGFuZCByZXR1cm4gMAorICAgICAgICAgICAgcHAuc2V0SW5kZXgoMCk7CisgICAgICAgICAgICByZXR1cm4gbmV3IExvbmcoMCk7CisKKyAgICAgICAgLy8gaWYgImRlbGltaXRlciIgaXMgZW1wdHksIG9yIGNvbnNpc3RzIG9ubHkgb2YgaWdub3JhYmxlIGNoYXJhY3RlcnMKKyAgICAgICAgLy8gKGkuZS4sIGlzIHNlbWFudGljYWxseSBlbXB0eSksIHRod2Ugd2Ugb2J2aW91c2x5IGNhbid0IHNlYXJjaAorICAgICAgICAvLyBmb3IgImRlbGltaXRlciIuICBJbnN0ZWFkLCBqdXN0IHVzZSAic3ViIiB0byBwYXJzZSBhcyBtdWNoIG9mCisgICAgICAgIC8vICJ0ZXh0IiBhcyBwb3NzaWJsZS4KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFBhcnNlUG9zaXRpb24gdGVtcFBQID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgICAgICBOdW1iZXIgcmVzdWx0ID0gbmV3IExvbmcoMCk7CisgICAgICAgICAgICBOdW1iZXIgdGVtcFJlc3VsdDsKKworICAgICAgICAgICAgLy8gdHJ5IHRvIG1hdGNoIHRoZSB3aG9sZSBzdHJpbmcgYWdhaW5zdCB0aGUgc3Vic3RpdHV0aW9uCisgICAgICAgICAgICB0ZW1wUmVzdWx0ID0gc3ViLmRvUGFyc2UodGV4dCwgdGVtcFBQLCBiYXNlVmFsdWUsIHVwcGVyQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVyLmxlbmllbnRQYXJzZUVuYWJsZWQoKSk7CisgICAgICAgICAgICBpZiAodGVtcFBQLmdldEluZGV4KCkgIT0gMCB8fCBzdWIuaXNOdWxsU3Vic3RpdHV0aW9uKCkpIHsKKyAgICAgICAgICAgICAgICAvLyBpZiB0aGVyZSdzIGEgc3VjY2Vzc2Z1bCBtYXRjaCAob3IgaXQncyBhIG51bGwKKyAgICAgICAgICAgICAgICAvLyBzdWJzdGl0dXRpb24pLCB1cGRhdGUgcHAgdG8gcG9pbnQgdG8gdGhlIGZpcnN0CisgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVyIHdlIGRpZG4ndCBtYXRjaCwgYW5kIHBhc3MgdGhlIHJlc3VsdCBmcm9tCisgICAgICAgICAgICAgICAgLy8gc3ViLmRvUGFyc2UoKSBvbiB0aHJvdWdoIHRvIHRoZSBjYWxsZXIKKyAgICAgICAgICAgICAgICBwcC5zZXRJbmRleCh0ZW1wUFAuZ2V0SW5kZXgoKSk7CisgICAgICAgICAgICAgICAgaWYgKHRlbXBSZXN1bHQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB0ZW1wUmVzdWx0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKy8vIGNvbW1lbnRlZCBvdXQgYmVjYXVzZSBQYXJzZVBvc2l0aW9uIGRvZXNuJ3QgaGF2ZSBlcnJvciBpbmRleCBpbiAxLjEueAorLy8gICAgICAgICAgICBlbHNlIHsKKy8vICAgICAgICAgICAgICAgIHBwLnNldEVycm9ySW5kZXgodGVtcFBQLmdldEVycm9ySW5kZXgoKSk7CisvLyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gYW5kIGlmIHdlIGdldCB0byBoZXJlLCB0aGVuIG5vdGhpbmcgbWF0Y2hlZCwgc28gd2UgcmV0dXJuCisgICAgICAgICAgICAvLyAwIGFuZCBsZWF2ZSBwcCBhbG9uZQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFVzZWQgYnkgc3RyaXBQcmVmaXgoKSB0byBtYXRjaCBjaGFyYWN0ZXJzLiAgSWYgbGVuaWVudCBwYXJzZSBtb2RlCisgICAgICogaXMgb2ZmLCB0aGlzIGp1c3QgY2FsbHMgc3RhcnRzV2l0aCgpLiAgSWYgbGVuaWVudCBwYXJzZSBtb2RlIGlzIG9uLAorICAgICAqIHRoaXMgZnVuY3Rpb24gdXNlcyBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3JzIHRvIG1hdGNoIGNoYXJhY3RlcnMgaW4KKyAgICAgKiB0aGUgc3RyaW5ncyAob25seSBwcmltYXJ5LW9yZGVyIGRpZmZlcmVuY2VzIGFyZSBzaWduaWZpY2FudCBpbgorICAgICAqIGRldGVybWluaW5nIHdoZXRoZXIgdGhlcmUncyBhIG1hdGNoKS4KKyAgICAgKiBAcGFyYW0gc3RyIFRoZSBzdHJpbmcgYmVpbmcgdGVzdGVkCisgICAgICogQHBhcmFtIHByZWZpeCBUaGUgdGV4dCB3ZSdyZSBob3BpbmcgdG8gc2VlIGF0IHRoZSBiZWdpbm5pbmcKKyAgICAgKiBvZiAic3RyIgorICAgICAqIEByZXR1cm4gSWYgInByZWZpeCIgaXMgZm91bmQgYXQgdGhlIGJlZ2lubmluZyBvZiAic3RyIiwgdGhpcworICAgICAqIGlzIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiAic3RyIiB0aGF0IHdlcmUgbWF0Y2hlZCAodGhpcworICAgICAqIGlzbid0IG5lY2Vzc2FyaWx5IHRoZSBzYW1lIGFzIHRoZSBsZW5ndGggb2YgInByZWZpeCIgd2hlbiBtYXRjaGluZworICAgICAqIHRleHQgd2l0aCBhIGNvbGxhdG9yKS4gIElmIHRoZXJlJ3Mgbm8gbWF0Y2gsIHRoaXMgaXMgMC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBwcmVmaXhMZW5ndGgoU3RyaW5nIHN0ciwgU3RyaW5nIHByZWZpeCkgeworICAgICAgICAvLyBpZiB3ZSdyZSBsb29raW5nIGZvciBhbiBlbXB0eSBwcmVmaXgsIGl0IG9idmlvdXNseSBtYXRjaGVzCisgICAgICAgIC8vIHplcm8gY2hhcmFjdGVycy4gIEp1c3QgZ28gYWhlYWQgYW5kIHJldHVybiAwLgorICAgICAgICBpZiAocHJlZml4Lmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisKKyAgICAgICAgLy8gZ28gdGhyb3VnaCBhbGwgdGhpcyBncmllZiBpZiB3ZSdyZSBpbiBsZW5pZW50LXBhcnNlIG1vZGUKKyAgICAgICAgaWYgKGZvcm1hdHRlci5sZW5pZW50UGFyc2VFbmFibGVkKCkpIHsKKyAgICAgICAgICAgIC8vIGdldCB0aGUgZm9ybWF0dGVyJ3MgY29sbGF0b3IgYW5kIHVzZSBpdCB0byBjcmVhdGUgdHdvCisgICAgICAgICAgICAvLyBjb2xsYXRpb24gZWxlbWVudCBpdGVyYXRvcnMsIG9uZSBvdmVyIHRoZSB0YXJnZXQgc3RyaW5nCisgICAgICAgICAgICAvLyBhbmQgYW5vdGhlciBvdmVyIHRoZSBwcmVmaXggKHJpZ2h0IG5vdywgd2UnbGwgdGhyb3cgYW4KKyAgICAgICAgICAgIC8vIGV4Y2VwdGlvbiBpZiB0aGUgY29sbGF0b3Igd2UgZ2V0IGJhY2sgZnJvbSB0aGUgZm9ybWF0dGVyCisgICAgICAgICAgICAvLyBpc24ndCBhIFJ1bGVCYXNlZENvbGxhdG9yLCBiZWNhdXNlIFJ1bGVCYXNlZENvbGxhdG9yIGRlZmluZXMKKyAgICAgICAgICAgIC8vIHRoZSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b2VyIHByb3RvY29sLiAgSG9wZWZ1bGx5LCB0aGlzCisgICAgICAgICAgICAvLyB3aWxsIGNoYW5nZSBzb21lZGF5LikKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBQcmV2aW91cyBjb2RlIHdhcyBtYXRjaGluZyAiZmlmdHktIiBhZ2FpbnN0ICIgZmlmdHkiIGFuZCBsZWF2aW5nCisgICAgICAgICAgICAvLyB0aGUgbnVtYmVyICIgZmlmdHktNyIgdG8gcGFyc2UgYXMgNDMgKDUwIC0gNykuCisgICAgICAgICAgICAvLyBBbHNvIGl0IHNlZW1zIHRoYXQgaWYgd2UgY29uc3VtZSB0aGUgZW50aXJlIHByZWZpeCwgdGhhdCdzIG9rIGV2ZW4KKyAgICAgICAgICAgIC8vIGlmIHdlJ3ZlIGNvbnN1bWVkIHRoZSBlbnRpcmUgc3RyaW5nLCBzbyBJIHN3aXRjaGVkIHRoZSBsb2dpYyB0bworICAgICAgICAgICAgLy8gcmVmbGVjdCB0aGlzLgorICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IgPSAoUnVsZUJhc2VkQ29sbGF0b3IpZm9ybWF0dGVyLmdldENvbGxhdG9yKCk7CisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Igc3RySXRlciA9IGNvbGxhdG9yLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihzdHIpOworICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIHByZWZpeEl0ZXIgPSBjb2xsYXRvci5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IocHJlZml4KTsKKworICAgICAgICAgICAgLy8gbWF0Y2ggY29sbGF0aW9uIGVsZW1lbnRzIGJldHdlZW4gdGhlIHN0cmluZ3MKKyAgICAgICAgICAgIGludCBvU3RyID0gc3RySXRlci5uZXh0KCk7CisgICAgICAgICAgICBpbnQgb1ByZWZpeCA9IHByZWZpeEl0ZXIubmV4dCgpOworCisgICAgICAgICAgICB3aGlsZSAob1ByZWZpeCAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgLy8gc2tpcCBvdmVyIGlnbm9yYWJsZSBjaGFyYWN0ZXJzIGluIHRoZSB0YXJnZXQgc3RyaW5nCisgICAgICAgICAgICAgICAgd2hpbGUgKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIob1N0cikgPT0gMCAmJiBvU3RyICE9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgb1N0ciA9IHN0ckl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIHNraXAgb3ZlciBpZ25vcmFibGUgY2hhcmFjdGVycyBpbiB0aGUgcHJlZml4CisgICAgICAgICAgICAgICAgd2hpbGUgKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIob1ByZWZpeCkgPT0gMCAmJiBvUHJlZml4ICE9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgb1ByZWZpeCA9IHByZWZpeEl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGlmIHNraXBwaW5nIG92ZXIgaWdub3JhYmxlcyBicm91Z2h0IHRvIHRoZSBlbmQgb2YKKyAgICAgICAgICAgICAgICAvLyB0aGUgcHJlZml4LCB3ZSBESUQgbWF0Y2g6IGRyb3Agb3V0IG9mIHRoZSBsb29wCisgICAgICAgICAgICAgICAgaWYgKG9QcmVmaXggPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBpZiBza2lwcGluZyBvdmVyIGlnbm9yYWJsZXMgYnJvdWdodCB1cyB0byB0aGUgZW5kCisgICAgICAgICAgICAgICAgLy8gb2YgdGhlIHRhcmdldCBzdHJpbmcsIHdlIGRpZG4ndCBtYXRjaCBhbmQgcmV0dXJuIDAKKyAgICAgICAgICAgICAgICBpZiAob1N0ciA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIG1hdGNoIGNvbGxhdGlvbiBlbGVtZW50cyBmcm9tIHRoZSB0d28gc3RyaW5ncworICAgICAgICAgICAgICAgIC8vIChjb25zaWRlcmluZyBvbmx5IHByaW1hcnkgZGlmZmVyZW5jZXMpLiAgSWYgd2UKKyAgICAgICAgICAgICAgICAvLyBnZXQgYSBtaXNtYXRjaCwgZHVtcCBvdXQgYW5kIHJldHVybiAwCisgICAgICAgICAgICAgICAgaWYgKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIob1N0cikgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5T3JkZXIob1ByZWZpeCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIG90aGVyd2lzZSwgYWR2YW5jZSB0byB0aGUgbmV4dCBjaGFyYWN0ZXIgaW4gZWFjaCBzdHJpbmcKKyAgICAgICAgICAgICAgICAvLyBhbmQgbG9vcCAod2UgZHJvcCBvdXQgb2YgdGhlIGxvb3Agd2hlbiB3ZSBleGhhdXN0CisgICAgICAgICAgICAgICAgLy8gY29sbGF0aW9uIGVsZW1lbnRzIGluIHRoZSBwcmVmaXgpCisKKyAgICAgICAgICAgICAgICBvU3RyID0gc3RySXRlci5uZXh0KCk7CisgICAgICAgICAgICAgICAgb1ByZWZpeCA9IHByZWZpeEl0ZXIubmV4dCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyB3ZSBhcmUgbm90IGNvbXBhdGlibGUgd2l0aCBqZGsgMS4xIGFueSBsb25nZXIKKyAgICAgICAgICAgIGludCByZXN1bHQgPSBzdHJJdGVyLmdldE9mZnNldCgpOworICAgICAgICAgICAgaWYgKG9TdHIgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgIC0tcmVzdWx0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgLy8gSkRLIDEuMi1zcGVjaWZpYyBBUEkgY2FsbAorICAgICAgICAgICAgLy8gcmV0dXJuIHN0ckl0ZXIuZ2V0T2Zmc2V0KCk7CisgICAgICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgIC8vIEpESyAxLjEgSEFDSyAodGFrZSBvdXQgZm9yIDEuMi1zcGVjaWZpYyBjb2RlKQorCisgICAgICAgICAgICAvLyBpZiB3ZSBtYWtlIGl0IHRvIGhlcmUsIHdlIGhhdmUgYSBzdWNjZXNzZnVsIG1hdGNoLiAgTm93IHdlCisgICAgICAgICAgICAvLyBoYXZlIHRvIGZpbmQgb3V0IEhPVyBNQU5ZIGNoYXJhY3RlcnMgZnJvbSB0aGUgdGFyZ2V0IHN0cmluZworICAgICAgICAgICAgLy8gbWF0Y2hlZCB0aGUgcHJlZml4ICh0aGVyZSBpc24ndCBuZWNlc3NhcmlseSBhIG9uZS10by1vbmUKKyAgICAgICAgICAgIC8vIG1hcHBpbmcgYmV0d2VlbiBjb2xsYXRpb24gZWxlbWVudHMgYW5kIGNoYXJhY3RlcnMpLgorICAgICAgICAgICAgLy8gSW4gSkRLIDEuMiwgdGhlcmUncyBhIHNpbXBsZSBnZXRPZmZzZXQoKSBjYWxsIHdlIGNhbiB1c2UuCisgICAgICAgICAgICAvLyBJbiBKREsgMS4xLCBvbiB0aGUgb3RoZXIgaGFuZCwgd2UgaGF2ZSB0byBnbyB0aHJvdWdoIHNvbWUKKyAgICAgICAgICAgIC8vIHVnbHkgY29udG9ydGlvbnMuICBGaXJzdCwgdXNlIHRoZSBjb2xsYXRvciB0byBjb21wYXJlIHRoZQorICAgICAgICAgICAgLy8gc2FtZSBudW1iZXIgb2YgY2hhcmFjdGVycyBmcm9tIHRoZSBwcmVmaXggYW5kIHRhcmdldCBzdHJpbmcuCisgICAgICAgICAgICAvLyBJZiB0aGV5J3JlIGVxdWFsLCB3ZSdyZSBkb25lLgorICAgICAgICAgICAgY29sbGF0b3Iuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgICAgICBpZiAoc3RyLmxlbmd0aCgpID49IHByZWZpeC5sZW5ndGgoKQorICAgICAgICAgICAgICAgICAgICAmJiBjb2xsYXRvci5lcXVhbHMoc3RyLnN1YnN0cmluZygwLCBwcmVmaXgubGVuZ3RoKCkpLCBwcmVmaXgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHByZWZpeC5sZW5ndGgoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gaWYgdGhleSdyZSBub3QgZXF1YWwsIHRoZW4gd2UgaGF2ZSB0byBjb21wYXJlIHN1Y2Nlc3NpdmVseQorICAgICAgICAgICAgLy8gbGFyZ2VyIGFuZCBsYXJnZXIgc3Vic3RyaW5ncyBvZiB0aGUgdGFyZ2V0IHN0cmluZyB1bnRpbCB3ZQorICAgICAgICAgICAgLy8gZ2V0IHRvIG9uZSB0aGF0IG1hdGNoZXMgdGhlIHByZWZpeC4gIEF0IHRoYXQgcG9pbnQsIHdlIGtub3cKKyAgICAgICAgICAgIC8vIGhvdyBtYW55IGNoYXJhY3RlcnMgbWF0Y2hlZCB0aGUgcHJlZml4LCBhbmQgd2UgY2FuIHJldHVybi4KKyAgICAgICAgICAgIGludCBwID0gMTsKKyAgICAgICAgICAgIHdoaWxlIChwIDw9IHN0ci5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGlmIChjb2xsYXRvci5lcXVhbHMoc3RyLnN1YnN0cmluZygwLCBwKSwgcHJlZml4KSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gcDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICArK3A7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBTSE9VTEtEIE5FVkVSIEdFVCBIRVJFISEhCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgKi8KKworICAgICAgICAvLyBJZiBsZW5pZW50IHBhcnNpbmcgaXMgdHVybmVkIG9mZiwgZm9yZ2V0IGFsbCB0aGF0IGNyYXAgYWJvdmUuCisgICAgICAgIC8vIEp1c3QgdXNlIFN0cmluZy5zdGFydHNXaXRoKCkgYW5kIGJlIGRvbmUgd2l0aCBpdC4KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChzdHIuc3RhcnRzV2l0aChwcmVmaXgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHByZWZpeC5sZW5ndGgoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZWFyY2hlcyBhIHN0cmluZyBmb3IgYW5vdGhlciBzdHJpbmcuICBJZiBsZW5pZW50IHBhcnNpbmcgaXMgb2ZmLAorICAgICAqIHRoaXMganVzdCBjYWxscyBpbmRleE9mKCkuICBJZiBsZW5pZW50IHBhcnNpbmcgaXMgb24sIHRoaXMgZnVuY3Rpb24KKyAgICAgKiB1c2VzIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciB0byBtYXRjaCBjaGFyYWN0ZXJzLCBhbmQgb25seQorICAgICAqIHByaW1hcnktb3JkZXIgZGlmZmVyZW5jZXMgYXJlIHNpZ25pZmljYW50IGluIGRldGVybWluaW5nIHdoZXRoZXIKKyAgICAgKiB0aGVyZSdzIGEgbWF0Y2guCisgICAgICogQHBhcmFtIHN0ciBUaGUgc3RyaW5nIHRvIHNlYXJjaAorICAgICAqIEBwYXJhbSBrZXkgVGhlIHN0cmluZyB0byBzZWFyY2ggInN0ciIgZm9yCisgICAgICogQHJldHVybiBBIHR3by1lbGVtZW50IGFycmF5IG9mIGludHMuICBFbGVtZW50IDAgaXMgdGhlIHBvc2l0aW9uCisgICAgICogb2YgdGhlIG1hdGNoLCBvciAtMSBpZiB0aGVyZSB3YXMgbm8gbWF0Y2guICBFbGVtZW50IDEgaXMgdGhlCisgICAgICogbnVtYmVyIG9mIGNoYXJhY3RlcnMgaW4gInN0ciIgdGhhdCBtYXRjaGVkICh3aGljaCBpc24ndCBuZWNlc3NhcmlseQorICAgICAqIHRoZSBzYW1lIGFzIHRoZSBsZW5ndGggb2YgImtleSIpCisgICAgICovCisgICAgcHJpdmF0ZSBpbnRbXSBmaW5kVGV4dChTdHJpbmcgc3RyLCBTdHJpbmcga2V5KSB7CisgICAgICAgIHJldHVybiBmaW5kVGV4dChzdHIsIGtleSwgMCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2VhcmNoZXMgYSBzdHJpbmcgZm9yIGFub3RoZXIgc3RyaW5nLiAgSWYgbGVuaWVudCBwYXJzaW5nIGlzIG9mZiwKKyAgICAgKiB0aGlzIGp1c3QgY2FsbHMgaW5kZXhPZigpLiAgSWYgbGVuaWVudCBwYXJzaW5nIGlzIG9uLCB0aGlzIGZ1bmN0aW9uCisgICAgICogdXNlcyBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgdG8gbWF0Y2ggY2hhcmFjdGVycywgYW5kIG9ubHkKKyAgICAgKiBwcmltYXJ5LW9yZGVyIGRpZmZlcmVuY2VzIGFyZSBzaWduaWZpY2FudCBpbiBkZXRlcm1pbmluZyB3aGV0aGVyCisgICAgICogdGhlcmUncyBhIG1hdGNoLgorICAgICAqIEBwYXJhbSBzdHIgVGhlIHN0cmluZyB0byBzZWFyY2gKKyAgICAgKiBAcGFyYW0ga2V5IFRoZSBzdHJpbmcgdG8gc2VhcmNoICJzdHIiIGZvcgorICAgICAqIEBwYXJhbSBzdGFydGluZ0F0IFRoZSBpbmRleCBpbnRvICJzdHIiIHdoZXJlIHRoZSBzZWFyY2ggaXMgdG8KKyAgICAgKiBiZWdpbgorICAgICAqIEByZXR1cm4gQSB0d28tZWxlbWVudCBhcnJheSBvZiBpbnRzLiAgRWxlbWVudCAwIGlzIHRoZSBwb3NpdGlvbgorICAgICAqIG9mIHRoZSBtYXRjaCwgb3IgLTEgaWYgdGhlcmUgd2FzIG5vIG1hdGNoLiAgRWxlbWVudCAxIGlzIHRoZQorICAgICAqIG51bWJlciBvZiBjaGFyYWN0ZXJzIGluICJzdHIiIHRoYXQgbWF0Y2hlZCAod2hpY2ggaXNuJ3QgbmVjZXNzYXJpbHkKKyAgICAgKiB0aGUgc2FtZSBhcyB0aGUgbGVuZ3RoIG9mICJrZXkiKQorICAgICAqLworICAgIHByaXZhdGUgaW50W10gZmluZFRleHQoU3RyaW5nIHN0ciwgU3RyaW5nIGtleSwgaW50IHN0YXJ0aW5nQXQpIHsKKyAgICAgICAgLy8gaWYgbGVuaWVudCBwYXJzaW5nIGlzIHR1cm5lZCBvZmYsIHRoaXMgaXMgZWFzeToganVzdCBjYWxsCisgICAgICAgIC8vIFN0cmluZy5pbmRleE9mKCkgYW5kIHdlJ3JlIGRvbmUKKyAgICAgICAgaWYgKCFmb3JtYXR0ZXIubGVuaWVudFBhcnNlRW5hYmxlZCgpKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IGludFtdIHsgc3RyLmluZGV4T2Yoa2V5LCBzdGFydGluZ0F0KSwga2V5Lmxlbmd0aCgpIH07CisKKyAgICAgICAgLy8gYnV0IGlmIGxlbmllbnQgcGFyc2luZyBpcyB0dXJuZWQgT04sIHdlJ3ZlIGdvdCBzb21lIHdvcmsKKyAgICAgICAgLy8gYWhlYWQgb2YgdXMKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgLy8gSkRLIDEuMSBIQUNLICh0YWtlIG91dCBvZiAxLjItc3BlY2lmaWMgY29kZSkKKworICAgICAgICAgICAgLy8gaW4gSkRLIDEuMiwgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIHByb3ZpZGVzIHVzIHdpdGggYW4KKyAgICAgICAgICAgIC8vIEFQSSB0byBtYXAgYmV0d2VlbiBjaGFyYWN0ZXIgb2Zmc2V0cyBhbmQgY29sbGF0aW9uIGVsZW1lbnRzCisgICAgICAgICAgICAvLyBhbmQgd2UgY2FuIGRvIHRoaXMgYnkgbWFyY2hpbmcgdGhyb3VnaCB0aGUgc3RyaW5nIGNvbXBhcmluZworICAgICAgICAgICAgLy8gY29sbGF0aW9uIGVsZW1lbnRzLiAgV2UgY2FuJ3QgZG8gdGhhdCBpbiBKREsgMS4xLiAgSW5zdGVkLAorICAgICAgICAgICAgLy8gd2UgaGF2ZSB0byBnbyB0aHJvdWdoIHRoaXMgaG9ycmlibGUgc2xvdyBtZXNzOgorICAgICAgICAgICAgaW50IHAgPSBzdGFydGluZ0F0OworICAgICAgICAgICAgaW50IGtleUxlbiA9IDA7CisKKyAgICAgICAgICAgIC8vIGJhc2ljYWxseSBqdXN0IGlzb2xhdGUgc21hbGxlciBhbmQgc21hbGxlciBzdWJzdHJpbmdzIG9mCisgICAgICAgICAgICAvLyB0aGUgdGFyZ2V0IHN0cmluZyAoZWFjaCBydW5uaW5nIHRvIHRoZSBlbmQgb2YgdGhlIHN0cmluZywKKyAgICAgICAgICAgIC8vIGFuZCB3aXRoIHRoZSBmaXJzdCBvbmUgcnVubmluZyBmcm9tIHN0YXJ0aW5nQXQgdG8gdGhlIGVuZCkKKyAgICAgICAgICAgIC8vIGFuZCB0aGVuIHVzZSBwcmVmaXhMZW5ndGgoKSB0byBzZWUgaWYgdGhlIHNlYXJjaCBrZXkgaXMgYXQKKyAgICAgICAgICAgIC8vIHRoZSBiZWdpbm5pbmcgb2YgZWFjaCBzdWJzdHJpbmcuICBUaGlzIGlzIGV4Y3J1Y2lhdGluZ2x5CisgICAgICAgICAgICAvLyBzbG93LCBidXQgaXQgd2lsbCBsb2NhdGUgdGhlIGtleSBhbmQgdGVsbCB1c2UgaG93IGxvbmcgdGhlCisgICAgICAgICAgICAvLyBtYXRjaGluZyB0ZXh0IHdhcy4KKyAgICAgICAgICAgIHdoaWxlIChwIDwgc3RyLmxlbmd0aCgpICYmIGtleUxlbiA9PSAwKSB7CisgICAgICAgICAgICAgICAga2V5TGVuID0gcHJlZml4TGVuZ3RoKHN0ci5zdWJzdHJpbmcocCksIGtleSk7CisgICAgICAgICAgICAgICAgaWYgKGtleUxlbiAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgaW50W10geyBwLCBrZXlMZW4gfTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKytwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gaWYgd2UgbWFrZSBpdCB0byBoZXJlLCB3ZSBkaWRuJ3QgZmluZCBpdC4gIFJldHVybiAtMSBmb3IgdGhlCisgICAgICAgICAgICAvLyBsb2NhdGlvbi4gIFRoZSBsZW5ndGggc2hvdWxkIGJlIGlnbm9yZWQsIGJ1dCBzZXQgaXQgdG8gMCwKKyAgICAgICAgICAgIC8vIHdoaWNoIHNob3VsZCBiZSAic2FmZSIKKyAgICAgICAgICAgIHJldHVybiBuZXcgaW50W10geyAtMSwgMCB9OworCisgICAgICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgIC8vIEpESyAxLjIgdmVyc2lvbiBvZiB0aGlzIHJvdXRpbmUKKyAgICAgICAgICAgIC8vUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IgPSAoUnVsZUJhc2VkQ29sbGF0b3IpZm9ybWF0dGVyLmdldENvbGxhdG9yKCk7CisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy9Db2xsYXRpb25FbGVtZW50SXRlcmF0b3Igc3RySXRlciA9IGNvbGxhdG9yLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihzdHIpOworICAgICAgICAgICAgLy9Db2xsYXRpb25FbGVtZW50SXRlcmF0b3Iga2V5SXRlciA9IGNvbGxhdG9yLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihrZXkpOworICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vaW50IGtleVN0YXJ0ID0gLTE7CisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy9zdHIuc2V0T2Zmc2V0KHN0YXJ0aW5nQXQpOworICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vaW50IG9TdHIgPSBzdHJJdGVyLm5leHQoKTsKKyAgICAgICAgICAgIC8vaW50IG9LZXkgPSBrZXlJdGVyLm5leHQoKTsKKyAgICAgICAgICAgIC8vd2hpbGUgKG9LZXkgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgLy8gICAgd2hpbGUgKG9TdHIgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUiAmJgorICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnByaW1hcnlPcmRlcihvU3RyKSA9PSAwKQorICAgICAgICAgICAgLy8gICAgICAgIG9TdHIgPSBzdHJJdGVyLm5leHQoKTsKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyAgICB3aGlsZSAob0tleSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSICYmCisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKG9LZXkpID09IDApCisgICAgICAgICAgICAvLyAgICAgICAgb0tleSA9IGtleUl0ZXIubmV4dCgpOworICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vICAgIGlmIChvU3RyID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgIC8vICAgICAgICByZXR1cm4gbmV3IGludFtdIHsgLTEsIDAgfTsKKyAgICAgICAgICAgIC8vICAgIH0KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyAgICBpZiAob0tleSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAvLyAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAvLyAgICB9CisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gICAgaWYgKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIob1N0cikgPT0KKyAgICAgICAgICAgIC8vICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnByaW1hcnlPcmRlcihvS2V5KSkgeworICAgICAgICAgICAgLy8gICAgICAgIGtleVN0YXJ0ID0gc3RySXRlci5nZXRPZmZzZXQoKTsKKyAgICAgICAgICAgIC8vICAgICAgICBvU3RyID0gc3RySXRlci5uZXh0KCk7CisgICAgICAgICAgICAvLyAgICAgICAgb0tleSA9IGtleUl0ZXIubmV4dCgpOworICAgICAgICAgICAgLy8gICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vICAgICAgICBpZiAoa2V5U3RhcnQgIT0gLTEpIHsKKyAgICAgICAgICAgIC8vICAgICAgICAgICAga2V5U3RhcnQgPSAtMTsKKyAgICAgICAgICAgIC8vICAgICAgICAgICAga2V5SXRlci5yZXNldCgpOworICAgICAgICAgICAgLy8gICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyAgICAgICAgICAgIG9TdHIgPSBzdHJJdGVyLm5leHQoKTsKKyAgICAgICAgICAgIC8vICAgICAgICB9CisgICAgICAgICAgICAvLyAgICB9CisgICAgICAgICAgICAvL30KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvL2lmIChvS2V5ID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgIC8vICAgIHJldHVybiBuZXcgaW50W10geyBrZXlTdGFydCwgc3RySXRlci5nZXRPZmZzZXQoKSAtIGtleVN0YXJ0IH07CisgICAgICAgICAgICAvL30gZWxzZSB7CisgICAgICAgICAgICAvLyAgICByZXR1cm4gbmV3IGludFtdIHsgLTEsIDAgfTsKKyAgICAgICAgICAgIC8vfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2tzIHRvIHNlZSB3aGV0aGVyIGEgc3RyaW5nIGNvbnNpc3RzIGVudGlyZWx5IG9mIGlnbm9yYWJsZQorICAgICAqIGNoYXJhY3RlcnMuCisgICAgICogQHBhcmFtIHN0ciBUaGUgc3RyaW5nIHRvIHRlc3QuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBzdHJpbmcgaXMgZW1wdHkgb2YgY29uc2lzdHMgZW50aXJlbHkgb2YKKyAgICAgKiBjaGFyYWN0ZXJzIHRoYXQgdGhlIG51bWJlciBmb3JtYXR0ZXIncyBjb2xsYXRvciBzYXlzIGFyZQorICAgICAqIGlnbm9yYWJsZSBhdCB0aGUgcHJpbWFyeS1vcmRlciBsZXZlbC4gIGZhbHNlIG90aGVyd2lzZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gYWxsSWdub3JhYmxlKFN0cmluZyBzdHIpIHsKKyAgICAgICAgLy8gaWYgdGhlIHN0cmluZyBpcyBlbXB0eSwgd2UgY2FuIGp1c3QgcmV0dXJuIHRydWUKKyAgICAgICAgaWYgKHN0ci5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIGxlbmllbnQgcGFyc2luZyBpcyB0dXJuZWQgb24sIHdhbGsgdGhyb3VnaCB0aGUgc3RyaW5nIHdpdGgKKyAgICAgICAgLy8gYSBjb2xsYXRpb24gZWxlbWVudCBpdGVyYXRvciBhbmQgbWFrZSBzdXJlIGVhY2ggY29sbGF0aW9uCisgICAgICAgIC8vIGVsZW1lbnQgaXMgMCAoaWdub3JhYmxlKSBhdCB0aGUgcHJpbWFyeSBsZXZlbAorICAgICAgICBpZiAoZm9ybWF0dGVyLmxlbmllbnRQYXJzZUVuYWJsZWQoKSkgeworICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IgPSAoUnVsZUJhc2VkQ29sbGF0b3IpKGZvcm1hdHRlci5nZXRDb2xsYXRvcigpKTsKKyAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyID0gY29sbGF0b3IuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHN0cik7CisKKyAgICAgICAgICAgIGludCBvID0gaXRlci5uZXh0KCk7CisgICAgICAgICAgICB3aGlsZSAobyAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSCisgICAgICAgICAgICAgICAgICAgJiYgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnByaW1hcnlPcmRlcihvKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgbyA9IGl0ZXIubmV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG8gPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUjsKKyAgICAgICAgLy8gaWYgbGVuaWVudCBwYXJzaW5nIGlzIHR1cm5lZCBvZmYsIHRoZXJlIGlzIG5vIHN1Y2ggdGhpbmcgYXMKKyAgICAgICAgLy8gYW4gaWdub3JhYmxlIGNoYXJhY3RlcjogcmV0dXJuIHRydWUgb25seSBpZiB0aGUgc3RyaW5nIGlzIGVtcHR5CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9ORlJ1bGVTZXQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L05GUnVsZVNldC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjYyZjFlNTkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9ORlJ1bGVTZXQuamF2YQpAQCAtMCwwICsxLDc1NCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L3RleHQvTkZSdWxlU2V0LmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDcvMzEgMTc6Mzc6MDggJCAKKyAqICRSZXZpc2lvbjogMS43ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyUHJvcGVydHk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCitpbXBvcnQgamF2YS50ZXh0Lio7CitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKKworLyoqCisgKiBBIGNvbGxlY3Rpb24gb2YgcnVsZXMgdXNlZCBieSBhIFJ1bGVCYXNlZE51bWJlckZvcm1hdCB0byBmb3JtYXQgYW5kCisgKiBwYXJzZSBudW1iZXJzLiAgSXQgaXMgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIGEgUnVsZVNldCB0byBzZWxlY3QgYW4KKyAqIGFwcHJvcHJpYXRlIHJ1bGUgZm9yIGZvcm1hdHRpbmcgYSBwYXJ0aWN1bGFyIG51bWJlciBhbmQgZGlzcGF0Y2gKKyAqIGNvbnRyb2wgdG8gaXQsIGFuZCB0byBhcmJpdHJhdGUgYmV0d2VlbiBkaWZmZXJlbnQgcnVsZXMgd2hlbiBwYXJzaW5nCisgKiBhIG51bWJlci4KKyAqICRSQ1NmaWxlOiBORlJ1bGVTZXQuamF2YSx2ICQgJFJldmlzaW9uOiAxLjcgJCAkRGF0ZTogMjAwMi8wNy8zMSAxNzozNzowOCAkCisgKi8KK2ZpbmFsIGNsYXNzIE5GUnVsZVNldCB7CisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNvbnN0YW50cworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFB1dHMgYSBjb3B5cmlnaHQgaW4gdGhlIC5jbGFzcyBmaWxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodE5vdGljZQorICAgICAgICA9ICJDb3B5cmlnaHQgXHUwMGE5MTk5Ny0xOTk4IElCTSBDb3JwLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGRhdGEgbWVtYmVycworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFRoZSBydWxlIHNldCdzIG5hbWUKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBuYW1lOworCisgICAgLyoqCisgICAgICogVGhlIHJ1bGUgc2V0J3MgcmVndWxhciBydWxlcworICAgICAqLworICAgIHByaXZhdGUgTkZSdWxlW10gcnVsZXM7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcnVsZSBzZXQncyBuZWdhdGl2ZS1udW1iZXIgcnVsZQorICAgICAqLworICAgIHByaXZhdGUgTkZSdWxlIG5lZ2F0aXZlTnVtYmVyUnVsZSA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcnVsZSBzZXQncyBmcmFjdGlvbiBydWxlczogZWxlbWVudCAwIGlzIHRoZSBwcm9wZXIgZnJhY3Rpb24KKyAgICAgKiAoMC54KSBydWxlLCBlbGVtZW50IDEgaXMgdGhlIGltcHJvcGVyIGZyYWN0aW9uICh4LngpIHJ1bGUsIGFuZAorICAgICAqIGVsZW1lbnQgMiBpcyB0aGUgbWFzdGVyICh4LjApIHJ1bGUuCisgICAgICovCisgICAgcHJpdmF0ZSBORlJ1bGVbXSBmcmFjdGlvblJ1bGVzID0gbmV3IE5GUnVsZVszXTsKKworICAgIC8qKgorICAgICAqIFRydWUgaWYgdGhlIHJ1bGUgc2V0IGlzIGEgZnJhY3Rpb24gcnVsZSBzZXQuICBBIGZyYWN0aW9uIHJ1bGUgc2V0CisgICAgICogaXMgYSBydWxlIHNldCB0aGF0IGlzIHVzZWQgdG8gZm9ybWF0IHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgYQorICAgICAqIG51bWJlci4gIEl0IGlzIGNhbGxlZCBmcm9tIGEgPj4gc3Vic3RpdHV0aW9uIGluIGFub3RoZXIgcnVsZSBzZXQncworICAgICAqIGZyYWN0aW9uIHJ1bGUsIGFuZCBpcyBvbmx5IGNhbGxlZCB1cG9uIHRvIGZvcm1hdCB2YWx1ZXMgYmV0d2VlbgorICAgICAqIDAgYW5kIDEuICBBIGZyYWN0aW9uIHJ1bGUgc2V0IGhhcyBkaWZmZXJlbnQgcnVsZS1zZWxlY3Rpb24KKyAgICAgKiBiZWhhdmlvciB0aGFuIGEgcmVndWxhciBydWxlIHNldC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gaXNGcmFjdGlvblJ1bGVTZXQgPSBmYWxzZTsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdHJ1Y3Rpb24KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKgorICAgICAqIENvbnN0cnVjdHMgYSBydWxlIHNldC4KKyAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb25zIEFuIGFycmF5IG9mIFN0cmluZ3MgcmVwcmVzZW50aW5nIHJ1bGUgc2V0CisgICAgICogZGVzY3JpcHRpb25zLiAgT24gZXhpdCwgdGhpcyBydWxlIHNldCdzIGVudHJ5IGluIHRoZSBhcnJheSB3aWxsCisgICAgICogaGF2ZSBiZWVuIHN0cmlwcGVkIG9mIGl0cyBydWxlIHNldCBuYW1lIGFuZCBhbnkgdHJhaWxpbmcgd2hpdGVzcGFjZS4KKyAgICAgKiBAcGFyYW0gaW5kZXggVGhlIGluZGV4IGludG8gImRlc2NyaXB0aW9ucyIgb2YgdGhlIGRlc2NyaXB0aW9uCisgICAgICogZm9yIHRoZSBydWxlIHRvIGJlIGNvbnN0cnVjdGVkCisgICAgICovCisgICAgcHVibGljIE5GUnVsZVNldChTdHJpbmdbXSBkZXNjcmlwdGlvbnMsIGludCBpbmRleCkgdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB7CisgICAgICAgIFN0cmluZyBkZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uc1tpbmRleF07CisKKyAgICAgICAgLy8gaWYgdGhlIGRlc2NyaXB0aW9uIGJlZ2lucyB3aXRoIGEgcnVsZSBzZXQgbmFtZSAodGhlIHJ1bGUgc2V0CisgICAgICAgIC8vIG5hbWUgY2FuIGJlIG9taXR0ZWQgaW4gZm9ybWF0dGVyIGRlc2NyaXB0aW9ucyB0aGF0IGNvbnNpc3QKKyAgICAgICAgLy8gb2Ygb25seSBvbmUgcnVsZSBzZXQpLCBjb3B5IGl0IG91dCBpbnRvIG91ciAibmFtZSIgbWVtYmVyCisgICAgICAgIC8vIGFuZCBkZWxldGUgaXQgZnJvbSB0aGUgZGVzY3JpcHRpb24KKyAgICAgICAgaWYgKGRlc2NyaXB0aW9uLmNoYXJBdCgwKSA9PSAnJScpIHsKKyAgICAgICAgICAgIGludCBwb3MgPSBkZXNjcmlwdGlvbi5pbmRleE9mKCc6Jyk7CisgICAgICAgICAgICBpZiAocG9zID09IC0xKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiUnVsZSBzZXQgbmFtZSBkb2Vzbid0IGVuZCBpbiBjb2xvbiIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBuYW1lID0gZGVzY3JpcHRpb24uc3Vic3RyaW5nKDAsIHBvcyk7CisgICAgICAgICAgICAgICAgd2hpbGUgKHBvcyA8IGRlc2NyaXB0aW9uLmxlbmd0aCgpICYmIFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGRlc2NyaXB0aW9uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyQXQoKytwb3MpKSkgeworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uLnN1YnN0cmluZyhwb3MpOworICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uc1tpbmRleF0gPSBkZXNjcmlwdGlvbjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAvLyBpZiB0aGUgZGVzY3JpcHRpb24gZG9lc24ndCBiZWdpbiB3aXRoIGEgcnVsZSBzZXQgbmFtZSwgaXRzCisgICAgICAgIC8vIG5hbWUgaXMgIiVkZWZhdWx0IgorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbmFtZSA9ICIlZGVmYXVsdCI7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZGVzY3JpcHRpb24ubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiRW1wdHkgcnVsZSBzZXQgZGVzY3JpcHRpb24iKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGFsbCBvZiB0aGUgb3RoZXIgbWVtYmVycyBvZiBORlJ1bGVTZXQgYXJlIGluaXRpYWxpemVkCisgICAgICAgIC8vIGJ5IHBhcnNlUnVsZXMoKQorICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCB0aGUgc3Vib3JkaW5hdGUgZGF0YSBzdHJ1Y3R1cmVzIHVzZWQgYnkgdGhpcyBvYmplY3QuCisgICAgICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBjb25zdHJ1Y3RvcgorICAgICAqIGFmdGVyIGFsbCB0aGUgcnVsZSBzZXRzIGhhdmUgYmVlbiBjcmVhdGVkIHRvIGFjdHVhbGx5IHBhcnNlCisgICAgICogdGhlIGRlc2NyaXB0aW9uIGFuZCBidWlsZCBydWxlcyBmcm9tIGl0LiAgU2luY2UgYW55IHJ1bGUgc2V0CisgICAgICogY2FuIHJlZmVyIHRvIGFueSBvdGhlciBydWxlIHNldCwgd2UgaGF2ZSB0byBoYXZlIGNyZWF0ZWQgYWxsIG9mCisgICAgICogdGhlbSBiZWZvcmUgd2UgY2FuIGNyZWF0ZSBhbnl0aGluZyBlbHNlLgorICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiBUaGUgdGV4dHVhbCBkZXNjcmlwdGlvbiBvZiB0aGlzIHJ1bGUgc2V0CisgICAgICogQHBhcmFtIG93bmVyIFRoZSBmb3JtYXR0ZXIgdGhhdCBvd25zIHRoaXMgcnVsZSBzZXQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwYXJzZVJ1bGVzKFN0cmluZyAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBvd25lcikgeworICAgICAgICAvLyBzdGFydCBieSBjcmVhdGluZyBhIFZlY3RvciB3aG9zZSBlbGVtZW50cyBhcmUgU3RyaW5ncyBjb250YWluaW5nCisgICAgICAgIC8vIHRoZSBkZXNjcmlwdGlvbnMgb2YgdGhlIHJ1bGVzIChvbmUgcnVsZSBwZXIgZWxlbWVudCkuICBUaGUgcnVsZXMKKyAgICAgICAgLy8gYXJlIHNlcGFyYXRlZCBieSBzZW1pY29sb25zICh0aGVyZSdzIG5vIGVzY2FwZSBmYWNpbGl0eTogQUxMCisgICAgICAgIC8vIHNlbWljb2xvbnMgYXJlIHJ1bGUgZGVsaW1pdGVycykKKyAgICAgICAgVmVjdG9yIHJ1bGVEZXNjcmlwdGlvbnMgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgaW50IG9sZFAgPSAwOworICAgICAgICBpbnQgcCA9IGRlc2NyaXB0aW9uLmluZGV4T2YoJzsnKTsKKyAgICAgICAgd2hpbGUgKG9sZFAgIT0gLTEpIHsKKyAgICAgICAgICAgIGlmIChwICE9IC0xKSB7CisgICAgICAgICAgICAgICAgcnVsZURlc2NyaXB0aW9ucy5hZGRFbGVtZW50KGRlc2NyaXB0aW9uLnN1YnN0cmluZyhvbGRQLCBwKSk7CisgICAgICAgICAgICAgICAgb2xkUCA9IHAgKyAxOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAob2xkUCA8IGRlc2NyaXB0aW9uLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHJ1bGVEZXNjcmlwdGlvbnMuYWRkRWxlbWVudChkZXNjcmlwdGlvbi5zdWJzdHJpbmcob2xkUCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBvbGRQID0gcDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHAgPSBkZXNjcmlwdGlvbi5pbmRleE9mKCc7JywgcCArIDEpOworICAgICAgICB9CisKKyAgICAgICAgLy8gbm93IGdvIGJhY2sgdGhyb3VnaCBhbmQgYnVpbGQgYSB2ZWN0b3Igb2YgdGhlIHJ1bGVzIHRoZW1zZWx2ZXMKKyAgICAgICAgLy8gKHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIGRlc2NyaXB0aW9uIGxpc3QgaXNuJ3QgbmVjZXNzYXJpbHkKKyAgICAgICAgLy8gdGhlIG51bWJlciBvZiBydWxlcy0tIHNvbWUgZGVzY3JpcHRpb25zIG1heSBleHBlbmQgaW50byB0d28gcnVsZXMpCisgICAgICAgIFZlY3RvciB0ZW1wUnVsZXMgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgLy8gd2Uga2VlcCB0cmFjayBvZiB0aGUgcnVsZSBiZWZvcmUgdGhlIG9uZSB3ZSdyZSBjdXJyZW50bHkgd29ya2luZworICAgICAgICAvLyBvbiBzb2xlbHkgdG8gc3VwcG9ydCA+Pj4gc3Vic3RpdHV0aW9ucworICAgICAgICBORlJ1bGUgcHJlZGVjZXNzb3IgPSBudWxsOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJ1bGVEZXNjcmlwdGlvbnMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgIC8vIG1ha2VSdWxlcyAoYSBmYWN0b3J5IG1ldGhvZCBvbiBORlJ1bGUpIHdpbGwgcmV0dXJuIGVpdGhlcgorICAgICAgICAgICAgLy8gYSBzaW5nbGUgcnVsZSBvciBhbiBhcnJheSBvZiBydWxlcy4gIEVpdGhlciB3YXksIGFkZCB0aGVtCisgICAgICAgICAgICAvLyB0byBvdXIgcnVsZSB2ZWN0b3IKKyAgICAgICAgICAgIE9iamVjdCB0ZW1wID0gTkZSdWxlLm1ha2VSdWxlcygoU3RyaW5nKXJ1bGVEZXNjcmlwdGlvbnMuZWxlbWVudEF0KGkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMsIHByZWRlY2Vzc29yLCBvd25lcik7CisKKyAgICAgICAgICAgIGlmICh0ZW1wIGluc3RhbmNlb2YgTkZSdWxlKSB7CisgICAgICAgICAgICAgICAgdGVtcFJ1bGVzLmFkZEVsZW1lbnQodGVtcCk7CisgICAgICAgICAgICAgICAgcHJlZGVjZXNzb3IgPSAoTkZSdWxlKXRlbXA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmICh0ZW1wIGluc3RhbmNlb2YgTkZSdWxlW10pIHsKKyAgICAgICAgICAgICAgICBORlJ1bGVbXSBydWxlc1RvQWRkID0gKE5GUnVsZVtdKXRlbXA7CisKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHJ1bGVzVG9BZGQubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdGVtcFJ1bGVzLmFkZEVsZW1lbnQocnVsZXNUb0FkZFtqXSk7CisgICAgICAgICAgICAgICAgICAgIHByZWRlY2Vzc29yID0gcnVsZXNUb0FkZFtqXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gbm93IHdlIGNhbiBiYWcgdGhlIGRlc2NyaXB0aW9uIGxpc3QKKyAgICAgICAgcnVsZURlc2NyaXB0aW9ucyA9IG51bGw7CisKKyAgICAgICAgLy8gZm9yIHJ1bGVzIHRoYXQgZGlkbid0IHNwZWNpZnkgYSBiYXNlIHZhbHVlLCB0aGVpciBiYXNlIHZhbHVlcworICAgICAgICAvLyB3ZXJlIGluaXRpYWxpemVkIHRvIDAuICBNYWtlIGFub3RoZXIgcGFzcyB0aHJvdWdoIHRoZSBsaXN0IGFuZAorICAgICAgICAvLyBzZXQgYWxsIHRob3NlIHJ1bGVzJyBiYXNlIHZhbHVlcy4gIFdlIGFsc28gcmVtb3ZlIGFueSBzcGVjaWFsCisgICAgICAgIC8vIHJ1bGVzIGZyb20gdGhlIGxpc3QgYW5kIHB1dCB0aGVtIGludG8gdGhlaXIgb3duIG1lbWJlciB2YXJpYWJsZXMKKyAgICAgICAgbG9uZyBkZWZhdWx0QmFzZVZhbHVlID0gMDsKKworICAgICAgICAvLyAodGhpcyBpc24ndCBhIGZvciBsb29wIGJlY2F1c2Ugd2UgbWlnaHQgYmUgZGVsZXRpbmcgaXRlbXMgZnJvbQorICAgICAgICAvLyB0aGUgdmVjdG9yLS0gd2Ugd2FudCB0byBtYWtlIHN1cmUgd2Ugb25seSBpbmNyZW1lbnQgaSB3aGVuCisgICAgICAgIC8vIHdlIF9kaWRuJ3RfIGRlbGV0ZSBheXRoaW5nIGZyb20gdGhlIHZlY3RvcikKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICB3aGlsZSAoaSA8IHRlbXBSdWxlcy5zaXplKCkpIHsKKyAgICAgICAgICAgIE5GUnVsZSBydWxlID0gKE5GUnVsZSl0ZW1wUnVsZXMuZWxlbWVudEF0KGkpOworCisgICAgICAgICAgICBzd2l0Y2ggKChpbnQpcnVsZS5nZXRCYXNlVmFsdWUoKSkgeworICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBydWxlJ3MgYmFzZSB2YWx1ZSBpcyAwLCBmaWxsIGluIGEgZGVmYXVsdAorICAgICAgICAgICAgICAgIC8vIGJhc2UgdmFsdWUgKHRoaXMgd2lsbCBiZSAxIHBsdXMgdGhlIHByZWNlZGluZworICAgICAgICAgICAgICAgIC8vIHJ1bGUncyBiYXNlIHZhbHVlIGZvciByZWd1bGFyIHJ1bGUgc2V0cywgYW5kIHRoZQorICAgICAgICAgICAgICAgIC8vIHNhbWUgYXMgdGhlIHByZWNlZGluZyBydWxlJ3MgYmFzZSB2YWx1ZSBpbiBmcmFjdGlvbgorICAgICAgICAgICAgICAgIC8vIHJ1bGUgc2V0cykKKyAgICAgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgICAgIHJ1bGUuc2V0QmFzZVZhbHVlKGRlZmF1bHRCYXNlVmFsdWUpOworICAgICAgICAgICAgICAgICAgICBpZiAoIWlzRnJhY3Rpb25SdWxlU2V0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICArK2RlZmF1bHRCYXNlVmFsdWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgKytpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgIC8vIGlmIGl0J3MgdGhlIG5lZ2F0aXZlLW51bWJlciBydWxlLCBjb3B5IGl0IGludG8gaXRzIG93bgorICAgICAgICAgICAgICAgIC8vIGRhdGEgbWVtYmVyIGFuZCBkZWxldGUgaXQgZnJvbSB0aGUgbGlzdAorICAgICAgICAgICAgICAgIGNhc2UgTkZSdWxlLk5FR0FUSVZFX05VTUJFUl9SVUxFOgorICAgICAgICAgICAgICAgICAgICBuZWdhdGl2ZU51bWJlclJ1bGUgPSBydWxlOworICAgICAgICAgICAgICAgICAgICB0ZW1wUnVsZXMucmVtb3ZlRWxlbWVudEF0KGkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgIC8vIGlmIGl0J3MgdGhlIGltcHJvcGVyIGZyYWN0aW9uIHJ1bGUsIGNvcHkgaXQgaW50byB0aGUKKyAgICAgICAgICAgICAgICAvLyBjb3JyZWN0IGVsZW1lbnQgb2YgZnJhY3Rpb25SdWxlcworICAgICAgICAgICAgICAgIGNhc2UgTkZSdWxlLklNUFJPUEVSX0ZSQUNUSU9OX1JVTEU6CisgICAgICAgICAgICAgICAgICAgIGZyYWN0aW9uUnVsZXNbMF0gPSBydWxlOworICAgICAgICAgICAgICAgICAgICB0ZW1wUnVsZXMucmVtb3ZlRWxlbWVudEF0KGkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgIC8vIGlmIGl0J3MgdGhlIHByb3BlciBmcmFjdGlvbiBydWxlLCBjb3B5IGl0IGludG8gdGhlCisgICAgICAgICAgICAgICAgLy8gY29ycmVjdCBlbGVtZW50IG9mIGZyYWN0aW9uUnVsZXMKKyAgICAgICAgICAgICAgICBjYXNlIE5GUnVsZS5QUk9QRVJfRlJBQ1RJT05fUlVMRToKKyAgICAgICAgICAgICAgICAgICAgZnJhY3Rpb25SdWxlc1sxXSA9IHJ1bGU7CisgICAgICAgICAgICAgICAgICAgIHRlbXBSdWxlcy5yZW1vdmVFbGVtZW50QXQoaSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgLy8gaWYgaXQncyB0aGUgbWFzdGVyIHJ1bGUsIGNvcHkgaXQgaW50byB0aGUKKyAgICAgICAgICAgICAgICAvLyBjb3JyZWN0IGVsZW1lbnQgb2YgZnJhY3Rpb25SdWxlcworICAgICAgICAgICAgICAgIGNhc2UgTkZSdWxlLk1BU1RFUl9SVUxFOgorICAgICAgICAgICAgICAgICAgICBmcmFjdGlvblJ1bGVzWzJdID0gcnVsZTsKKyAgICAgICAgICAgICAgICAgICAgdGVtcFJ1bGVzLnJlbW92ZUVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAvLyBpZiBpdCdzIGEgcmVndWxhciBydWxlIHRoYXQgYWxyZWFkeSBrbm93cyBpdHMgYmFzZSB2YWx1ZSwKKyAgICAgICAgICAgICAgICAvLyBjaGVjayB0byBtYWtlIHN1cmUgdGhlIHJ1bGVzIGFyZSBpbiBvcmRlciwgYW5kIHVwZGF0ZQorICAgICAgICAgICAgICAgIC8vIHRoZSBkZWZhdWx0IGJhc2UgdmFsdWUgZm9yIHRoZSBuZXh0IHJ1bGUKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBpZiAocnVsZS5nZXRCYXNlVmFsdWUoKSA8IGRlZmF1bHRCYXNlVmFsdWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlJ1bGVzIGFyZSBub3QgaW4gb3JkZXIiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBkZWZhdWx0QmFzZVZhbHVlID0gcnVsZS5nZXRCYXNlVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFpc0ZyYWN0aW9uUnVsZVNldCkgeworICAgICAgICAgICAgICAgICAgICAgICAgKytkZWZhdWx0QmFzZVZhbHVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICsraTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBmaW5hbGx5LCB3ZSBjYW4gY29weSB0aGUgcnVsZXMgZnJvbSB0aGUgdmVjdG9yIGludG8gYQorICAgICAgICAvLyBmaXhlZC1sZW5ndGggYXJyYXkKKyAgICAgICAgcnVsZXMgPSBuZXcgTkZSdWxlW3RlbXBSdWxlcy5zaXplKCldOworICAgICAgICB0ZW1wUnVsZXMuY29weUludG8oKE9iamVjdFtdKXJ1bGVzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGbGFncyB0aGlzIHJ1bGUgc2V0IGFzIGEgZnJhY3Rpb24gcnVsZSBzZXQuICBUaGlzIGZ1bmN0aW9uIGlzCisgICAgICogY2FsbGVkIGR1cmluZyB0aGUgY29uc3RydWN0aW9uIHByb2Nlc3Mgb25jZSB3ZSBrbm93IHRoaXMgcnVsZQorICAgICAqIHNldCBpcyBhIGZyYWN0aW9uIHJ1bGUgc2V0LiAgV2UgZG9uJ3Qga25vdyBhIHJ1bGUgc2V0IGlzIGEKKyAgICAgKiBmcmFjdGlvbiBydWxlIHNldCB1bnRpbCB3ZSBzZWUgaXQgdXNlZCBzb21ld2hlcmUuICBUaGlzIGZ1bmN0aW9uCisgICAgICogaXMgbm90IGFkIG11c3Qgbm90IGJlIGNhbGxlZCBhdCBhbnkgdGltZSBvdGhlciB0aGFuIGR1cmluZworICAgICAqIGNvbnN0cnVjdGlvbiBvZiBhIFJ1bGVCYXNlZE51bWJlckZvcm1hdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBtYWtlSW50b0ZyYWN0aW9uUnVsZVNldCgpIHsKKyAgICAgICAgaXNGcmFjdGlvblJ1bGVTZXQgPSB0cnVlOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBib2lsZXJwbGF0ZQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbXBhcmVzIHR3byBydWxlIHNldHMgZm9yIGVxdWFsaXR5LgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBvdGhlciBydWxlIHNldAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgdHdvIHJ1bGUgc2V0cyBhcmUgZnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCB0aGF0KSB7CisgICAgICAgIC8vIGlmIGRpZmZlcmVudCBjbGFzc2VzLCB0aGV5J3JlIG5vdCBlcXVhbAorICAgICAgICBpZiAoISh0aGF0IGluc3RhbmNlb2YgTkZSdWxlU2V0KSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gb3RoZXJ3aXNlLCBjb21wYXJlIHRoZSBtZW1iZXJzIG9uZSBieSBvbmUuLi4KKyAgICAgICAgICAgIE5GUnVsZVNldCB0aGF0MiA9IChORlJ1bGVTZXQpdGhhdDsKKworICAgICAgICAgICAgaWYgKCFuYW1lLmVxdWFscyh0aGF0Mi5uYW1lKQorCQl8fCAhVXRpbGl0eS5vYmplY3RFcXVhbHMobmVnYXRpdmVOdW1iZXJSdWxlLCB0aGF0Mi5uZWdhdGl2ZU51bWJlclJ1bGUpCisJCXx8ICFVdGlsaXR5Lm9iamVjdEVxdWFscyhmcmFjdGlvblJ1bGVzWzBdLCB0aGF0Mi5mcmFjdGlvblJ1bGVzWzBdKQorCQl8fCAhVXRpbGl0eS5vYmplY3RFcXVhbHMoZnJhY3Rpb25SdWxlc1sxXSwgdGhhdDIuZnJhY3Rpb25SdWxlc1sxXSkKKwkJfHwgIVV0aWxpdHkub2JqZWN0RXF1YWxzKGZyYWN0aW9uUnVsZXNbMl0sIHRoYXQyLmZyYWN0aW9uUnVsZXNbMl0pCisJCXx8IHJ1bGVzLmxlbmd0aCAhPSB0aGF0Mi5ydWxlcy5sZW5ndGgKKyAgICAgICAgICAgICAgICB8fCBpc0ZyYWN0aW9uUnVsZVNldCAhPSB0aGF0Mi5pc0ZyYWN0aW9uUnVsZVNldCkgeworCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyAuLi50aGVuIGNvbXBhcmUgdGhlIHJ1bGUgbGlzdHMuLi4KKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcnVsZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoIXJ1bGVzW2ldLmVxdWFscyh0aGF0Mi5ydWxlc1tpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gLi4uYW5kIGlmIHdlIG1ha2UgaXQgaGVyZSwgdG5leSdyZSBlcXVhbAorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIC8qKgorICAgICAqIEJ1aWxkcyBhIHRleHR1YWwgcmVwcmVzZW50YXRpb24gb2YgYSBydWxlIHNldC4KKyAgICAgKiBAcmV0dXJuIEEgdGV4dHVhbCByZXByZXNlbnRhdGlvbiBvZiBhIHJ1bGUgc2V0LiAgVGhpcyB3b24ndAorICAgICAqIG5lY2Vzc2FyaWx5IGJlIHRoZSBzYW1lIGRlc2NyaXB0aW9uIHRoYXQgdGhlIHJ1bGUgc2V0IHdhcworICAgICAqIGNvbnN0cnVjdGVkIHdpdGgsIGJ1dCBpdCB3aWxsIHByb2R1Y2UgdGhlIHNhbWUgcmVzdWx0cy4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCisgICAgICAgIC8vIHRoZSBydWxlIHNldCBuYW1lIGdvZXMgZmlyc3QuLi4KKyAgICAgICAgcmVzdWx0LmFwcGVuZChuYW1lICsgIjpcbiIpOworCisgICAgICAgIC8vIGZvbGxvd2VkIGJ5IHRoZSByZWd1bGFyIHJ1bGVzLi4uCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcnVsZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIiAgICAiICsgcnVsZXNbaV0udG9TdHJpbmcoKSArICJcbiIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gZm9sbG93ZWQgYnkgdGhlIHNwZWNpYWwgcnVsZXMgKGlmIHRoZXkgZXhpc3QpCisgICAgICAgIGlmIChuZWdhdGl2ZU51bWJlclJ1bGUgIT0gbnVsbCkgeworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiICAgICIgKyBuZWdhdGl2ZU51bWJlclJ1bGUudG9TdHJpbmcoKSArICJcbiIpOworICAgICAgICB9CisgICAgICAgIGlmIChmcmFjdGlvblJ1bGVzWzBdICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIiAgICAiICsgZnJhY3Rpb25SdWxlc1swXS50b1N0cmluZygpICsgIlxuIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZyYWN0aW9uUnVsZXNbMV0gIT0gbnVsbCkgeworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiICAgICIgKyBmcmFjdGlvblJ1bGVzWzFdLnRvU3RyaW5nKCkgKyAiXG4iKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZnJhY3Rpb25SdWxlc1syXSAhPSBudWxsKSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIgICAgIiArIGZyYWN0aW9uUnVsZXNbMl0udG9TdHJpbmcoKSArICJcbiIpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBzaW1wbGUgYWNjZXNzb3JzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogU2F5cyB3aGV0aGVyIHRoaXMgcnVsZSBzZXQgaXMgYSBmcmFjdGlvbiBydWxlIHNldC4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBydWxlIGlzIGEgZnJhY3Rpb24gcnVsZSBzZXQ7IGZhbHNlIGlmIGl0IGlzbid0CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNGcmFjdGlvblNldCgpIHsKKyAgICAgICAgcmV0dXJuIGlzRnJhY3Rpb25SdWxlU2V0OworICAgIH0KKworICAgIC8qCisgICAgICogUmV0dXJucyB0aGUgcnVsZSBzZXQncyBuYW1lCisgICAgICogQHJldHVybiBUaGUgcnVsZSBzZXQncyBuYW1lCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCkgeworICAgICAgICByZXR1cm4gbmFtZTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gZm9ybWF0dGluZworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEZvcm1hdHMgYSBsb25nLiAgU2VsZWN0cyBhbiBhcHByb3ByaWF0ZSBydWxlIGFuZCBkaXNwYXRjaGVzCisgICAgICogY29udHJvbCB0byBpdC4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkCisgICAgICogQHBhcmFtIHRvSW5zZXJ0SW50byBUaGUgc3RyaW5nIHdoZXJlIHRoZSByZXN1bHQgaXMgdG8gYmUgcGxhY2VkCisgICAgICogQHBhcmFtIHBvcyBUaGUgcG9zaXRpb24gaW4gdG9JbnNlcnRJbnRvIHdoZXJlIHRoZSByZXN1bHQgb2YKKyAgICAgKiB0aGlzIG9wZXJhdGlvbiBpcyB0byBiZSBpbnNlcnRlZAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGZvcm1hdChsb25nIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvSW5zZXJ0SW50bywgaW50IHBvcykgeworICAgICAgICBORlJ1bGUgYXBwbGljYWJsZVJ1bGUgPSBmaW5kTm9ybWFsUnVsZShudW1iZXIpOworCisgICAgICAgIGFwcGxpY2FibGVSdWxlLmRvRm9ybWF0KG51bWJlciwgdG9JbnNlcnRJbnRvLCBwb3MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZvcm1hdHMgYSBkb3VibGUuICBTZWxlY3RzIGFuIGFwcHJvcHJpYXRlIHJ1bGUgYW5kIGRpc3BhdGNoZXMKKyAgICAgKiBjb250cm9sIHRvIGl0LgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQKKyAgICAgKiBAcGFyYW0gdG9JbnNlcnRJbnRvIFRoZSBzdHJpbmcgd2hlcmUgdGhlIHJlc3VsdCBpcyB0byBiZSBwbGFjZWQKKyAgICAgKiBAcGFyYW0gcG9zIFRoZSBwb3NpdGlvbiBpbiB0b0luc2VydEludG8gd2hlcmUgdGhlIHJlc3VsdCBvZgorICAgICAqIHRoaXMgb3BlcmF0aW9uIGlzIHRvIGJlIGluc2VydGVkCisgICAgICovCisgICAgcHVibGljIHZvaWQgZm9ybWF0KGRvdWJsZSBudW1iZXIsIFN0cmluZ0J1ZmZlciB0b0luc2VydEludG8sIGludCBwb3MpIHsKKyAgICAgICAgTkZSdWxlIGFwcGxpY2FibGVSdWxlID0gZmluZFJ1bGUobnVtYmVyKTsKKworICAgICAgICBhcHBsaWNhYmxlUnVsZS5kb0Zvcm1hdChudW1iZXIsIHRvSW5zZXJ0SW50bywgcG9zKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZWxlY3RzIGFuIGFwcm9wcmlhdGUgcnVsZSBmb3IgZm9ybWF0dGluZyB0aGUgbnVtYmVyLgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQuCisgICAgICogQHJldHVybiBUaGUgcnVsZSB0aGF0IHNob3VsZCBiZSB1c2VkIHRvIGZvcm1hdCBpdAorICAgICAqLworICAgIHByaXZhdGUgTkZSdWxlIGZpbmRSdWxlKGRvdWJsZSBudW1iZXIpIHsKKyAgICAgICAgLy8gaWYgdGhpcyBpcyBhIGZyYWN0aW9uIHJ1bGUgc2V0LCB1c2UgZmluZEZyYWN0aW9uUnVsZVNldFJ1bGUoKQorICAgICAgICBpZiAoaXNGcmFjdGlvblJ1bGVTZXQpIHsKKyAgICAgICAgICAgIHJldHVybiBmaW5kRnJhY3Rpb25SdWxlU2V0UnVsZShudW1iZXIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gaWYgdGhlIG51bWJlciBpcyBuZWdhdGl2ZSwgcmV0dXJuIHRoZSBuZWdhdGl2ZSBudW1iZXIgcnVsZQorICAgICAgICAvLyAoaWYgdGhlcmUgaXNuJ3QgYSBuZWdhdGl2ZS1udW1iZXIgcnVsZSwgd2UgcHJldGVuZCBpdCdzIGEKKyAgICAgICAgLy8gcG9zaXRpdmUgbnVtYmVyKQorICAgICAgICBpZiAobnVtYmVyIDwgMCkgeworICAgICAgICAgICAgaWYgKG5lZ2F0aXZlTnVtYmVyUnVsZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5lZ2F0aXZlTnVtYmVyUnVsZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbnVtYmVyID0gLW51bWJlcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIHRoZSBudW1iZXIgaXNuJ3QgYW4gaW50ZWdlciwgd2UgdXNlIG9uZSBmIHRoZSBmcmFjdGlvbiBydWxlcy4uLgorICAgICAgICBpZiAobnVtYmVyICE9IE1hdGguZmxvb3IobnVtYmVyKSkgeworICAgICAgICAgICAgLy8gaWYgdGhlIG51bWJlciBpcyBiZXR3ZWVuIDAgYW5kIDEsIHJldHVybiB0aGUgcHJvcGVyCisgICAgICAgICAgICAvLyBmcmFjdGlvbiBydWxlCisgICAgICAgICAgICBpZiAobnVtYmVyIDwgMSAmJiBmcmFjdGlvblJ1bGVzWzFdICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZnJhY3Rpb25SdWxlc1sxXTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gb3RoZXJ3aXNlLCByZXR1cm4gdGhlIGltcHJvcGVyIGZyYWN0aW9uIHJ1bGUKKyAgICAgICAgICAgIGVsc2UgaWYgKGZyYWN0aW9uUnVsZXNbMF0gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBmcmFjdGlvblJ1bGVzWzBdOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gaWYgdGhlcmUncyBhIG1hc3RlciBydWxlLCB1c2UgaXQgdG8gZm9ybWF0IHRoZSBudW1iZXIKKyAgICAgICAgaWYgKGZyYWN0aW9uUnVsZXNbMl0gIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZyYWN0aW9uUnVsZXNbMl07CisKKyAgICAgICAgLy8gYW5kIGlmIHdlIGhhdmVuJ3QgeWV0IHJldHVybmVkIGEgcnVsZSwgdXNlIGZpbmROb3JtYWxSdWxlKCkKKyAgICAgICAgLy8gdG8gZmluZCB0aGUgYXBwbGljYWJsZSBydWxlCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZmluZE5vcm1hbFJ1bGUoKGxvbmcpTWF0aC5yb3VuZChudW1iZXIpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIElmIHRoZSB2YWx1ZSBwYXNzZWQgdG8gZmluZFJ1bGUoKSBpcyBhIHBvc2l0aXZlIGludGVnZXIsIGZpbmRSdWxlKCkKKyAgICAgKiB1c2VzIHRoaXMgZnVuY3Rpb24gdG8gc2VsZWN0IHRoZSBhcHByb3ByaWF0ZSBydWxlLiAgVGhlIHJlc3VsdCB3aWxsCisgICAgICogZ2VuZXJhbGx5IGJlIHRoZSBydWxlIHdpdGggdGhlIGhpZ2hlc3QgYmFzZSB2YWx1ZSBsZXNzIHRoYW4gb3IgZXF1YWwKKyAgICAgKiB0byB0aGUgbnVtYmVyLiAgVGhlcmUgaXMgb25lIGV4Y2VwdGlvbiB0byB0aGlzOiBJZiB0aGF0IHJ1bGUgaGFzCisgICAgICogdHdvIHN1YnN0aXR1dGlvbnMgYW5kIGEgYmFzZSB2YWx1ZSB0aGF0IGlzIG5vdCBhbiBldmVuIG11bHRpcGxlIG9mCisgICAgICogaXRzIGRpdmlzb3IsIGFuZCB0aGUgbnVtYmVyIGl0c2VsZiBJUyBhbiBldmVuIG11bHRpcGxlIG9mIHRoZSBydWxlJ3MKKyAgICAgKiBkaXZpc29yLCB0aGVuIHRoZSByZXN1bHQgd2lsbCBiZSB0aGUgcnVsZSB0aGF0IHByZWNlZGVkIHRoZSBvcmlnaW5hbAorICAgICAqIHJlc3VsdCBpbiB0aGUgcnVsZSBsaXN0LiAgKFRoaXMgYmVoYXZpb3IgaXMga25vd24gYXMgdGhlICJyb2xsYmFjaworICAgICAqIHJ1bGUiLCBhbmQgaXMgdXNlZCB0byBoYW5kbGUgb3B0aW9uYWwgdGV4dDogYSBydWxlIHdpdGggb3B0aW9uYWwKKyAgICAgKiB0ZXh0IGlzIHJlcHJlc2VudGVkIGludGVybmFsbHkgYXMgdHdvIHJ1bGVzLCBhbmQgdGhlIHJvbGxiYWNrIHJ1bGUKKyAgICAgKiBzZWxlY3RzIGFwcHJvcHJpYXRlIGJldHdlZW4gdGhlbS4gIFRoaXMgYXZvaWRzIHRoaW5ncyBsaWtlICJ0d28KKyAgICAgKiBodW5kcmVkIHplcm8iLikKKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkCisgICAgICogQHJldHVybiBUaGUgcnVsZSB0byB1c2UgdG8gZm9ybWF0IHRoaXMgbnVtYmVyCisgICAgICovCisgICAgcHJpdmF0ZSBORlJ1bGUgZmluZE5vcm1hbFJ1bGUobG9uZyBudW1iZXIpIHsKKyAgICAgICAgLy8gaWYgdGhpcyBpcyBhIGZyYWN0aW9uIHJ1bGUgc2V0LCB1c2UgZmluZEZyYWN0aW9uUnVsZVNldFJ1bGUoKQorICAgICAgICAvLyB0byBmaW5kIHRoZSBydWxlICh3ZSBzaG91bGQgb25seSBnbyBpbnRvIHRoaXMgY2xhdXNlIGlmIHRoZQorICAgICAgICAvLyB2YWx1ZSBpcyAwKQorICAgICAgICBpZiAoaXNGcmFjdGlvblJ1bGVTZXQpIHsKKyAgICAgICAgICAgIHJldHVybiBmaW5kRnJhY3Rpb25SdWxlU2V0UnVsZShudW1iZXIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gaWYgdGhlIG51bWJlciBpcyBuZWdhdGl2ZSwgcmV0dXJuIHRoZSBuZWdhdGl2ZS1udW1iZXIgcnVsZQorICAgICAgICAvLyAoaWYgdGhlcmUgaXNuJ3Qgb25lLCBwcmV0ZW5kIHRoZSBudW1iZXIgaXMgcG9zaXRpdmUpCisgICAgICAgIGlmIChudW1iZXIgPCAwKSB7CisgICAgICAgICAgICBpZiAobmVnYXRpdmVOdW1iZXJSdWxlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmVnYXRpdmVOdW1iZXJSdWxlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBudW1iZXIgPSAtbnVtYmVyOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gd2UgaGF2ZSB0byByZXBlYXQgdGhlIHByZWNlZGluZyB0d28gY2hlY2tzLCBldmVuIHRob3VnaCB3ZQorICAgICAgICAvLyBkbyB0aGVtIGluIGZpbmRSdWxlKCksIGJlY2F1c2UgdGhlIHZlcnNpb24gb2YgZm9ybWF0KCkgdGhhdAorICAgICAgICAvLyB0YWtlcyBhIGxvbmcgYnlwYXNzZXMgZmluZFJ1bGUoKSBhbmQgZ29lcyBzdHJhaWdodCB0byB0aGlzCisgICAgICAgIC8vIGZ1bmN0aW9uLiAgVGhpcyBmdW5jdGlvbiBkb2VzIHNraXAgdGhlIGZyYWN0aW9uIHJ1bGVzIHNpbmNlCisgICAgICAgIC8vIHdlIGtub3cgdGhlIHZhbHVlIGlzIGFuIGludGVnZXIgKGl0IGFsc28gc2tpcHMgdGhlIG1hc3RlcgorICAgICAgICAvLyBydWxlLCBzaW5jZSBpdCdzIGNvbnNpZGVyZWQgYSBmcmFjdGlvbiBydWxlLiAgU2tpcHBpbmcgdGhlCisgICAgICAgIC8vIG1hc3RlciBydWxlIGluIHRoaXMgZnVuY3Rpb24gaXMgYWxzbyBob3cgd2UgYXZvaWQgaW5maW5pdGUKKyAgICAgICAgLy8gcmVjdXJzaW9uKQorCisgICAgICAgIC8vIGJpbmFyeS1zZWFyY2ggdGhlIHJ1bGUgbGlzdCBmb3IgdGhlIGFwcGxpY2FibGUgcnVsZQorICAgICAgICAvLyAoYSBydWxlIGlzIHVzZWQgZm9yIGFsbCB2YWx1ZXMgZnJvbSBpdHMgYmFzZSB2YWx1ZSB0bworICAgICAgICAvLyB0aGUgbmV4dCBydWxlJ3MgYmFzZSB2YWx1ZSkKKyAgICAgICAgaW50IGxvID0gMDsKKyAgICAgICAgaW50IGhpID0gcnVsZXMubGVuZ3RoOworCWlmIChoaSA+IDApIHsKKwkgICAgd2hpbGUgKGxvIDwgaGkpIHsKKwkJaW50IG1pZCA9IChsbyArIGhpKSAvIDI7CisJCWlmIChydWxlc1ttaWRdLmdldEJhc2VWYWx1ZSgpID09IG51bWJlcikgeworCQkgICAgcmV0dXJuIHJ1bGVzW21pZF07CisJCX0KKwkJZWxzZSBpZiAocnVsZXNbbWlkXS5nZXRCYXNlVmFsdWUoKSA+IG51bWJlcikgeworCQkgICAgaGkgPSBtaWQ7CisJCX0KKwkJZWxzZSB7CisJCSAgICBsbyA9IG1pZCArIDE7CisJCX0KKwkgICAgfQorCSAgICBORlJ1bGUgcmVzdWx0ID0gcnVsZXNbaGkgLSAxXTsKKworCSAgICAvLyB1c2Ugc2hvdWxkUm9sbEJhY2soKSB0byBzZWUgd2hldGhlciB3ZSBuZWVkIHRvIGludm9rZSB0aGUKKwkgICAgLy8gcm9sbGJhY2sgcnVsZSAoc2VlIHNob3VsZFJvbGxCYWNrKCkncyBkb2N1bWVudGF0aW9uIGZvcgorCSAgICAvLyBhbiBleHBsYW5hdGlvbiBvZiB0aGUgcm9sbGJhY2sgcnVsZSkuICBJZiB3ZSBkbywgcm9sbCBiYWNrCisJICAgIC8vIG9uZSBydWxlIGFuZCByZXR1cm4gdGhhdCBvbmUgaW5zdGVhZCBvZiB0aGUgb25lIHdlJ2Qgbm9ybWFsbHkKKwkgICAgLy8gcmV0dXJuCisJICAgIGlmIChyZXN1bHQuc2hvdWxkUm9sbEJhY2sobnVtYmVyKSkgeworCQlyZXN1bHQgPSBydWxlc1toaSAtIDJdOworCSAgICB9CisJICAgIHJldHVybiByZXN1bHQ7CisJfQorCS8vIGVsc2UgdXNlIHRoZSBtYXN0ZXIgcnVsZQorCXJldHVybiBmcmFjdGlvblJ1bGVzWzJdOworICAgIH0KKworICAgIC8qKgorICAgICAqIElmIHRoaXMgcnVsZSBpcyBhIGZyYWN0aW9uIHJ1bGUgc2V0LCB0aGlzIGZ1bmN0aW9uIGlzIHVzZWQgYnkKKyAgICAgKiBmaW5kUnVsZSgpIHRvIHNlbGVjdCB0aGUgbW9zdCBhcHByb3ByaWF0ZSBydWxlIGZvciBmb3JtYXR0aW5nCisgICAgICogdGhlIG51bWJlci4gIEJhc2ljYWxseSwgdGhlIGJhc2UgdmFsdWUgb2YgZWFjaCBydWxlIGluIHRoZSBydWxlCisgICAgICogc2V0IGlzIHRyZWF0ZWQgYXMgdGhlIGRlbm9taW5hdG9yIG9mIGEgZnJhY3Rpb24uICBXaGljaGV2ZXIKKyAgICAgKiBkZW5vbWluYXRvciBjYW4gcHJvZHVjZSB0aGUgZnJhY3Rpb24gY2xvc2VzdCBpbiB2YWx1ZSB0byB0aGUKKyAgICAgKiBudW1iZXIgcGFzc2VkIGluIGlzIHRoZSByZXN1bHQuICBJZiB0aGVyZSdzIGEgdGllLCB0aGUgZWFybGllcgorICAgICAqIG9uZSBpbiB0aGUgbGlzdCB3aW5zLiAgKElmIHRoZXJlIGFyZSB0d28gcnVsZXMgaW4gYSByb3cgd2l0aCB0aGUKKyAgICAgKiBzYW1lIGJhc2UgdmFsdWUsIHRoZSBmaXJzdCBvbmUgaXMgdXNlZCB3aGVuIHRoZSBudW1lcmF0b3Igb2YgdGhlCisgICAgICogZnJhY3Rpb24gd291bGQgYmUgMSwgYW5kIHRoZSBzZWNvbmQgcnVsZSBpcyB1c2VkIHRoZSByZXN0IG9mIHRoZQorICAgICAqIHRpbWUuCisgICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZCAod2hpY2ggd2lsbCBhbHdheXMgYmUKKyAgICAgKiBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDEpCisgICAgICogQHJldHVybiBUaGUgcnVsZSB0byB1c2UgdG8gZm9ybWF0IHRoaXMgbnVtYmVyCisgICAgICovCisgICAgcHJpdmF0ZSBORlJ1bGUgZmluZEZyYWN0aW9uUnVsZVNldFJ1bGUoZG91YmxlIG51bWJlcikgeworICAgICAgICAvLyB0aGUgb2J2aW91cyB3YXkgdG8gZG8gdGhpcyAobXVsdGlwbHkgdGhlIHZhbHVlIGJlaW5nIGZvcm1hdHRlZAorICAgICAgICAvLyBieSBlYWNoIHJ1bGUncyBiYXNlIHZhbHVlIHVudGlsIHlvdSBnZXQgYW4gaW50ZWdyYWwgcmVzdWx0KQorICAgICAgICAvLyBkb2Vzbid0IHdvcmsgYmVjYXVzZSBvZiByb3VuZGluZyBlcnJvci4gIFRoaXMgbWV0aG9kIGlzIG1vcmUKKyAgICAgICAgLy8gYWNjdXJhdGUKKworICAgICAgICAvLyBmaW5kIHRoZSBsZWFzdCBjb21tb24gbXVsdGlwbGUgb2YgdGhlIHJ1bGVzJyBiYXNlIHZhbHVlcworICAgICAgICAvLyBhbmQgbXVsdGlwbHkgdGhpcyBieSB0aGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZC4gIFRoaXMgaXMKKyAgICAgICAgLy8gYWxsIHRoZSBwcmVjaXNpb24gd2UgbmVlZCwgYW5kIHdlIGNhbiBkbyBhbGwgb2YgdGhlIHJlc3QKKyAgICAgICAgLy8gb2YgdGhlIG1hdGggdXNpbmcgaW50ZWdlciBhcml0aG1ldGljCisgICAgICAgIGxvbmcgbGVhc3RDb21tb25NdWx0aXBsZSA9IHJ1bGVzWzBdLmdldEJhc2VWYWx1ZSgpOworICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBsZWFzdENvbW1vbk11bHRpcGxlID0gbGNtKGxlYXN0Q29tbW9uTXVsdGlwbGUsIHJ1bGVzW2ldLmdldEJhc2VWYWx1ZSgpKTsKKyAgICAgICAgfQorICAgICAgICBsb25nIG51bWVyYXRvciA9IChsb25nKShNYXRoLnJvdW5kKG51bWJlciAqIGxlYXN0Q29tbW9uTXVsdGlwbGUpKTsKKworICAgICAgICAvLyBmb3IgZWFjaCBydWxlLCBkbyB0aGUgZm9sbG93aW5nLi4uCisgICAgICAgIGxvbmcgdGVtcERpZmZlcmVuY2U7CisgICAgICAgIGxvbmcgZGlmZmVyZW5jZSA9IExvbmcuTUFYX1ZBTFVFOworICAgICAgICBpbnQgd2lubmVyID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBydWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgLy8gIm51bWVyYXRvciIgaXMgdGhlIG51bWVyYXRvciBvZiB0aGUgZnJhY3Rpb24gaXMgdGhlCisgICAgICAgICAgICAvLyBkZW5vbWluYXRvciBpcyB0aGUgTENELiAgVGhlIG51bWVyYXRvciBpZiB0aGUgdGhlIHJ1bGUncworICAgICAgICAgICAgLy8gYmFzZSB2YWx1ZSBpcyB0aGUgZGVub21pYXRvciBpcyAibnVtZXJhdG9yIiB0aW1lcyB0aGUKKyAgICAgICAgICAgIC8vIGJhc2UgdmFsdWUgZGl2aWRlZCBieXRoZSBMQ0QuICBIZXJlIHdlIGNoZWNrIHRvIHNlZSBpZgorICAgICAgICAgICAgLy8gdGhhdCdzIGFuIGludGVnZXIsIGFuZCBpZiBub3QsIGhvdyBjbG9zZSBpdCBpcyB0byBiZWluZworICAgICAgICAgICAgLy8gYW4gaW50ZWdlci4KKyAgICAgICAgICAgIHRlbXBEaWZmZXJlbmNlID0gbnVtZXJhdG9yICogcnVsZXNbaV0uZ2V0QmFzZVZhbHVlKCkgJSBsZWFzdENvbW1vbk11bHRpcGxlOworCisgICAgICAgICAgICAvLyBub3JtYWxpemUgdGhlIHJlc3VsdCBvZiB0aGUgYWJvdmUgY2FsY3VsYXRpb246IHdlIHdhbnQKKyAgICAgICAgICAgIC8vIHRoZSBudW1lcmF0b3IncyBkaXN0YW5jZSBmcm9tIHRoZSBDTE9TRVNUIG11bHRpcGxlCisgICAgICAgICAgICAvLyBvZiB0aGUgTENECisgICAgICAgICAgICBpZiAobGVhc3RDb21tb25NdWx0aXBsZSAtIHRlbXBEaWZmZXJlbmNlIDwgdGVtcERpZmZlcmVuY2UpIHsKKyAgICAgICAgICAgICAgICB0ZW1wRGlmZmVyZW5jZSA9IGxlYXN0Q29tbW9uTXVsdGlwbGUgLSB0ZW1wRGlmZmVyZW5jZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gaWYgdGhpcyBpcyBhcyBjbG9zZSBhcyB3ZSd2ZSBjb21lLCBrZWVwIHRyYWNrIG9mIGhvdyBjbG9zZQorICAgICAgICAgICAgLy8gdGhhdCBpcywgYW5kIHRoZSBsaW5lIG51bWJlciBvZiB0aGUgcnVsZSB0aGF0IGRpZCBpdC4gIElmCisgICAgICAgICAgICAvLyB3ZSd2ZSBzY29yZWQgYSBkaXJlY3QgaGl0LCB3ZSBkb24ndCBoYXZlIHRvIGxvb2sgYXQgYW55IG1vcmUKKyAgICAgICAgICAgIC8vIHJ1bGVzCisgICAgICAgICAgICBpZiAodGVtcERpZmZlcmVuY2UgPCBkaWZmZXJlbmNlKSB7CisgICAgICAgICAgICAgICAgZGlmZmVyZW5jZSA9IHRlbXBEaWZmZXJlbmNlOworICAgICAgICAgICAgICAgIHdpbm5lciA9IGk7CisgICAgICAgICAgICAgICAgaWYgKGRpZmZlcmVuY2UgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBpZiB3ZSBoYXZlIHR3byBzdWNjZXNzaXZlIHJ1bGVzIHRoYXQgYm90aCBoYXZlIHRoZSB3aW5uaW5nIGJhc2UKKyAgICAgICAgLy8gdmFsdWUsIHRoZW4gdGhlIGZpcnN0IG9uZSAodGhlIG9uZSB3ZSBmb3VuZCBhYm92ZSkgaXMgdXNlZCBpZgorICAgICAgICAvLyB0aGUgbnVtZXJhdG9yIG9mIHRoZSBmcmFjdGlvbiBpcyAxIGFuZCB0aGUgc2Vjb25kIG9uZSBpcyB1c2VkIGlmCisgICAgICAgIC8vIHRoZSBudW1lcmF0b3Igb2YgdGhlIGZyYWN0aW9uIGlzIGFueXRoaW5nIGVsc2UgKHRoaXMgbGV0cyB1cworICAgICAgICAvLyBkbyB0aGluZ3MgbGlrZSAib25lIHRoaXJkIi8idHdvIHRoaXJkcyIgd2l0aG91dCBoYXZlaW5nIHRvIGRlZmluZQorICAgICAgICAvLyBhIHdob2xlIGJ1bmNoIG9mIGV4dHJhIHJ1bGUgc2V0cykKKyAgICAgICAgaWYgKHdpbm5lciArIDEgPCBydWxlcy5sZW5ndGgKKyAgICAgICAgICAgICAgICAmJiBydWxlc1t3aW5uZXIgKyAxXS5nZXRCYXNlVmFsdWUoKSA9PSBydWxlc1t3aW5uZXJdLmdldEJhc2VWYWx1ZSgpKSB7CisgICAgICAgICAgICBpZiAoTWF0aC5yb3VuZChudW1iZXIgKiBydWxlc1t3aW5uZXJdLmdldEJhc2VWYWx1ZSgpKSA8IDEKKyAgICAgICAgICAgICAgICAgICAgfHwgTWF0aC5yb3VuZChudW1iZXIgKiBydWxlc1t3aW5uZXJdLmdldEJhc2VWYWx1ZSgpKSA+PSAyKSB7CisgICAgICAgICAgICAgICAgKyt3aW5uZXI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBmaW5hbGx5LCByZXR1cm4gdGhlIHdpbm5pbmcgcnVsZQorICAgICAgICByZXR1cm4gcnVsZXNbd2lubmVyXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDYWxjdWxhdGVzIHRoZSBsZWFzdCBjb21tb24gbXVsdGlwbGUgb2YgeCBhbmQgeS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBsb25nIGxjbShsb25nIHgsIGxvbmcgeSkgeworICAgICAgICAvLyBiaW5hcnkgZ2NkIGFsZ29yaXRobSBmcm9tIEtudXRoLCAiVGhlIEFydCBvZiBDb21wdXRlciBQcm9ncmFtbWluZywiCisgICAgICAgIC8vIHZvbC4gMiwgMXN0IGVkLiwgcHAuIDI5OC0yOTkKKyAgICAgICAgbG9uZyB4MSA9IHg7CisgICAgICAgIGxvbmcgeTEgPSB5OworCisgICAgICAgIGludCBwMiA9IDA7CisgICAgICAgIHdoaWxlICgoeDEgJiAxKSA9PSAwICYmICh5MSAmIDEpID09IDApIHsKKyAgICAgICAgICAgICsrcDI7CisgICAgICAgICAgICB4MSA+Pj0gMTsKKyAgICAgICAgICAgIHkxID4+PSAxOworICAgICAgICB9CisKKyAgICAgICAgbG9uZyB0OworICAgICAgICBpZiAoKHgxICYgMSkgPT0gMSkgeworICAgICAgICAgICAgdCA9IC15MTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHQgPSB4MTsKKyAgICAgICAgfQorCisgICAgICAgIHdoaWxlICh0ICE9IDApIHsKKyAgICAgICAgICAgIHdoaWxlICgodCAmIDEpID09IDApIHsKKyAgICAgICAgICAgICAgICB0ID4+PSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHQgPiAwKSB7CisgICAgICAgICAgICAgICAgeDEgPSB0OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB5MSA9IC10OworICAgICAgICAgICAgfQorICAgICAgICAgICAgdCA9IHgxIC0geTE7CisgICAgICAgIH0KKyAgICAgICAgbG9uZyBnY2QgPSB4MSA8PCBwMjsKKworICAgICAgICAvLyB4ICogeSA9PSBnY2QoeCwgeSkgKiBsY20oeCwgeSkKKyAgICAgICAgcmV0dXJuIHggLyBnY2QgKiB5OworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBwYXJzaW5nCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUGFyc2VzIGEgc3RyaW5nLiAgTWF0Y2hlcyB0aGUgc3RyaW5nIHRvIGJlIHBhcnNlZCBhZ2FpbnN0IGVhY2gKKyAgICAgKiBvZiBpdHMgcnVsZXMgKHdpdGggYSBiYXNlIHZhbHVlIGxlc3MgdGhhbiB1cHBlckJvdW5kKSBhbmQgcmV0dXJucworICAgICAqIHRoZSB2YWx1ZSBwcm9kdWNlZCBieSB0aGUgcnVsZSB0aGF0IG1hdGNoZWQgdGhlIG1vc3QgY2hhcmN0ZXJzCisgICAgICogaW4gdGhlIHNvdXJjZSBzdHJpbmcuCisgICAgICogQHBhcmFtIHRleHQgVGhlIHN0cmluZyB0byBwYXJzZQorICAgICAqIEBwYXJhbSBwYXJzZVBvc2l0aW9uIFRoZSBpbml0aWFsIHBvc2l0aW9uIGlzIGlnbm9yZWQgYW5kIGFzc3VtZWQKKyAgICAgKiB0byBiZSAwLiAgT24gZXhpdCwgdGhpcyBvYmplY3QgaGFzIGJlZW4gdXBkYXRlZCB0byBwb2ludCB0byB0aGUKKyAgICAgKiBmaXJzdCBjaGFyYWN0ZXIgcG9zaXRpb24gdGhpcyBydWxlIHNldCBkaWRuJ3QgY29uc3VtZS4KKyAgICAgKiBAcGFyYW0gdXBwZXJCb3VuZCBMaW1pdHMgdGhlIHJ1bGVzIHRoYXQgY2FuIGJlIGFsbG93ZWQgdG8gbWF0Y2guCisgICAgICogT25seSBydWxlcyB3aG9zZSBiYXNlIHZhbHVlcyBhcmUgc3RyaWN0bHkgbGVzcyB0aGFuIHVwcGVyQm91bmQKKyAgICAgKiBhcmUgY29uc2lkZXJlZC4KKyAgICAgKiBAcmV0dXJuIFRoZSBudW1lcmljYWwgcmVzdWx0IG9mIHBhcnNpbmcgdGhpcyBzdHJpbmcuICBUaGlzIHdpbGwKKyAgICAgKiBiZSB0aGUgbWF0Y2hpbmcgcnVsZSdzIGJhc2UgdmFsdWUsIGNvbXBvc2VkIGFwcHJvcHJpYXRlbHkgd2l0aAorICAgICAqIHRoZSByZXN1bHRzIG9mIG1hdGNoaW5nIGFueSBvZiBpdHMgc3Vic3RpdHV0aW9ucy4gIFRoZSBvYmplY3QKKyAgICAgKiB3aWxsIGJlIGFuIGluc3RhbmNlIG9mIExvbmcgaWYgaXQncyBhbiBpbnRlZ3JhbCB2YWx1ZTsgb3RoZXJ3aXNlLAorICAgICAqIGl0IHdpbGwgYmUgYW4gaW5zdGFuY2Ugb2YgRG91YmxlLiAgVGhpcyBmdW5jdGlvbiBhbHdheXMgcmV0dXJucworICAgICAqIGEgdmFsaWQgb2JqZWN0OiBJZiBub3RoaW5nIG1hdGNoZWQgdGhlIGlucHV0IHN0cmluZyBhdCBhbGwsCisgICAgICogdGhpcyBmdW5jdGlvbiByZXR1cm5zIG5ldyBMb25nKDApLCBhbmQgdGhlIHBhcnNlIHBvc2l0aW9uIGlzCisgICAgICogbGVmdCB1bmNoYW5nZWQuCisgICAgICovCisgICAgcHVibGljIE51bWJlciBwYXJzZShTdHJpbmcgdGV4dCwgUGFyc2VQb3NpdGlvbiBwYXJzZVBvc2l0aW9uLCBkb3VibGUgdXBwZXJCb3VuZCkgeworICAgICAgICAvLyB0cnkgbWF0Y2hpbmcgZWFjaCBydWxlIGluIHRoZSBydWxlIHNldCBhZ2FpbnN0IHRoZSB0ZXh0IGJlaW5nCisgICAgICAgIC8vIHBhcnNlZC4gIFdoaWNoZXZlciBvbmUgbWF0Y2hlcyB0aGUgbW9zdCBjaGFyYWN0ZXJzIGlzIHRoZSBvbmUKKyAgICAgICAgLy8gdGhhdCBkZXRlcm1pbmVzIHRoZSB2YWx1ZSB3ZSByZXR1cm4uCisKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBoaWdoV2F0ZXJNYXJrID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIE51bWJlciByZXN1bHQgPSBuZXcgTG9uZygwKTsKKyAgICAgICAgTnVtYmVyIHRlbXBSZXN1bHQgPSBudWxsOworCisgICAgICAgIC8vIGR1bXAgb3V0IGlmIHRoZXJlJ3Mgbm8gdGV4dCB0byBwYXJzZQorICAgICAgICBpZiAodGV4dC5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgLy8gc3RhcnQgYnkgdHJ5aW5nIHRoZSBuZWhhdGl2ZSBudW1iZXIgcnVsZSAoaWYgdGhlcmUgaXMgb25lKQorICAgICAgICBpZiAobmVnYXRpdmVOdW1iZXJSdWxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRlbXBSZXN1bHQgPSBuZWdhdGl2ZU51bWJlclJ1bGUuZG9QYXJzZSh0ZXh0LCBwYXJzZVBvc2l0aW9uLCBmYWxzZSwgdXBwZXJCb3VuZCk7CisgICAgICAgICAgICBpZiAocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpID4gaGlnaFdhdGVyTWFyay5nZXRJbmRleCgpKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gdGVtcFJlc3VsdDsKKyAgICAgICAgICAgICAgICBoaWdoV2F0ZXJNYXJrLnNldEluZGV4KHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSk7CisgICAgICAgICAgICB9CisvLyBjb21tZW50ZWQgb3V0IGJlY2F1c2UgdGhlIGVycm9yLWluZGV4IEFQSSBvbiBQYXJzZVBvc2l0aW9uIGlzbid0IHRoZXJlIGluIDEuMS54CisvLyAgICAgICAgICAgIGlmIChwYXJzZVBvc2l0aW9uLmdldEVycm9ySW5kZXgoKSA+IGhpZ2hXYXRlck1hcmsuZ2V0RXJyb3JJbmRleCgpKSB7CisvLyAgICAgICAgICAgICAgICBoaWdoV2F0ZXJNYXJrLnNldEVycm9ySW5kZXgocGFyc2VQb3NpdGlvbi5nZXRFcnJvckluZGV4KCkpOworLy8gICAgICAgICAgICB9CisgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEluZGV4KDApOworICAgICAgICB9CisKKyAgICAgICAgLy8gdGhlbiB0cnkgZWFjaCBvZiB0aGUgZnJhY3Rpb24gcnVsZXMKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAzOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChmcmFjdGlvblJ1bGVzW2ldICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0ZW1wUmVzdWx0ID0gZnJhY3Rpb25SdWxlc1tpXS5kb1BhcnNlKHRleHQsIHBhcnNlUG9zaXRpb24sIGZhbHNlLCB1cHBlckJvdW5kKTsKKyAgICAgICAgICAgICAgICBpZiAocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpID4gaGlnaFdhdGVyTWFyay5nZXRJbmRleCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRlbXBSZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIGhpZ2hXYXRlck1hcmsuc2V0SW5kZXgocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpKTsKKyAgICAgICAgICAgICAgICB9CisvLyBjb21tZW50ZWQgb3V0IGJlY2F1c2UgdGhlIGVycm9yLWluZGV4IEFQSSBvbiBQYXJzZVBvc2l0aW9uIGlzbid0IHRoZXJlIGluIDEuMS54CisvLyAgICAgICAgICAgIGlmIChwYXJzZVBvc2l0aW9uLmdldEVycm9ySW5kZXgoKSA+IGhpZ2hXYXRlck1hcmsuZ2V0RXJyb3JJbmRleCgpKSB7CisvLyAgICAgICAgICAgICAgICBoaWdoV2F0ZXJNYXJrLnNldEVycm9ySW5kZXgocGFyc2VQb3NpdGlvbi5nZXRFcnJvckluZGV4KCkpOworLy8gICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRJbmRleCgwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIGZpbmFsbHksIGdvIHRocm91Z2ggdGhlIHJlZ3VsYXIgcnVsZXMgb25lIGF0IGEgdGltZS4gIFdlIHN0YXJ0CisgICAgICAgIC8vIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QgYmVjYXVzZSB3ZSB3YW50IHRvIHRyeSBtYXRjaGluZyB0aGUgbW9zdAorICAgICAgICAvLyBzaWdpZmljYW50IHJ1bGUgZmlyc3QgKHRoaXMgaGVscHMgZW5zdXJlIHRoYXQgd2UgcGFyc2UKKyAgICAgICAgLy8gImZpdmUgdGhvdXNhbmQgdGhyZWUgaHVuZHJlZCBzaXgiIGFzCisgICAgICAgIC8vICIoZml2ZSB0aG91c2FuZCkgKHRocmVlIGh1bmRyZWQpIChzaXgpIiByYXRoZXIgdGhhbgorICAgICAgICAvLyAiKChmaXZlIHRob3VzYW5kIHRocmVlKSBodW5kcmVkKSAoc2l4KSIpLiAgU2tpcCBydWxlcyB3aG9zZQorICAgICAgICAvLyBiYXNlIHZhbHVlcyBhcmUgaGlnaGVyIHRoYW4gdGhlIHVwcGVyIGJvdW5kIChhZ2FpbiwgdGhpcyBoZWxwcworICAgICAgICAvLyBsaW1pdCBhbWJpZ3VpdHkgYnkgbWFraW5nIHN1cmUgdGhlIHJ1bGVzIHRoYXQgbWF0Y2ggYSBydWxlJ3MKKyAgICAgICAgLy8gYXJlIGxlc3Mgc2lnbmlmaWNhbnQgdGhhbiB0aGUgcnVsZSBjb250YWluaW5nIHRoZSBzdWJzdGl0dXRpb25zKS8KKyAgICAgICAgZm9yIChpbnQgaSA9IHJ1bGVzLmxlbmd0aCAtIDE7IGkgPj0gMCAmJiBoaWdoV2F0ZXJNYXJrLmdldEluZGV4KCkgPCB0ZXh0Lmxlbmd0aCgpOyBpLS0pIHsKKyAgICAgICAgICAgIGlmICghaXNGcmFjdGlvblJ1bGVTZXQgJiYgcnVsZXNbaV0uZ2V0QmFzZVZhbHVlKCkgPj0gdXBwZXJCb3VuZCkgeworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0ZW1wUmVzdWx0ID0gcnVsZXNbaV0uZG9QYXJzZSh0ZXh0LCBwYXJzZVBvc2l0aW9uLCBpc0ZyYWN0aW9uUnVsZVNldCwgdXBwZXJCb3VuZCk7CisgICAgICAgICAgICBpZiAocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpID4gaGlnaFdhdGVyTWFyay5nZXRJbmRleCgpKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gdGVtcFJlc3VsdDsKKyAgICAgICAgICAgICAgICBoaWdoV2F0ZXJNYXJrLnNldEluZGV4KHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSk7CisgICAgICAgICAgICB9CisvLyBjb21tZW50ZWQgb3V0IGJlY2F1c2UgdGhlIGVycm9yLWluZGV4IEFQSSBvbiBQYXJzZVBvc2l0aW9uIGlzbid0IHRoZXJlIGluIDEuMS54CisvLyAgICAgICAgICAgIGlmIChwYXJzZVBvc2l0aW9uLmdldEVycm9ySW5kZXgoKSA+IGhpZ2hXYXRlck1hcmsuZ2V0RXJyb3JJbmRleCgpKSB7CisvLyAgICAgICAgICAgICAgICBoaWdoV2F0ZXJNYXJrLnNldEVycm9ySW5kZXgocGFyc2VQb3NpdGlvbi5nZXRFcnJvckluZGV4KCkpOworLy8gICAgICAgICAgICB9CisgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEluZGV4KDApOworICAgICAgICB9CisKKyAgICAgICAgLy8gZmluYWxseSwgdXBkYXRlIHRoZSBwYXJzZSBwb3N0aW9uIHdlIHdlcmUgcGFzc2VkIHRvIHBvaW50IHRvIHRoZQorICAgICAgICAvLyBmaXJzdCBjaGFyYWN0ZXIgd2UgZGlkbid0IHVzZSwgYW5kIHJldHVybiB0aGUgcmVzdWx0IHRoYXQKKyAgICAgICAgLy8gY3BvcnJlc3BvbmRzIHRvIHRoYXQgc3RyaW5nIG9mIGNoYXJhY3RlcnMKKyAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRJbmRleChoaWdoV2F0ZXJNYXJrLmdldEluZGV4KCkpOworLy8gY29tbWVudGVkIG91dCBiZWNhdXNlIHRoZSBlcnJvci1pbmRleCBBUEkgb24gUGFyc2VQb3NpdGlvbiBpc24ndCB0aGVyZSBpbiAxLjEueAorLy8gICAgICAgIGlmIChwYXJzZVBvc2l0aW9uLmdldEluZGV4KCkgPT0gMCkgeworLy8gICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEVycm9ySW5kZXgoaGlnaFdhdGVyTWFyay5nZXRFcnJvckluZGV4KCkpOworLy8gICAgICAgIH0KKworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L05GU3Vic3RpdHV0aW9uLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9ORlN1YnN0aXR1dGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJmYTUzMWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9ORlN1YnN0aXR1dGlvbi5qYXZhCkBAIC0wLDAgKzEsMTc1NSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L3RleHQvTkZTdWJzdGl0dXRpb24uamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wNy8zMSAxNzozNzowOCAkIAorICogJFJldmlzaW9uOiAxLjggJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLnRleHQuKjsKKworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBORlN1YnN0aXR1dGlvbiAoYWJzdHJhY3QgYmFzZSBjbGFzcykKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisvKioKKyAqIEFuIGFic3RyYWN0IGNsYXNzIGRlZmluaW5nIHByb3RvY29sIGZvciBzdWJzdGl0dXRpb25zLiAgQSBzdWJzdGl0dXRpb24KKyAqIGlzIGEgc2VjdGlvbiBvZiBhIHJ1bGUgdGhhdCBpbnNlcnRzIHRleHQgaW50byB0aGUgcnVsZSdzIHJ1bGUgdGV4dAorICogYmFzZWQgb24gc29tZSBwYXJ0IG9mIHRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkLgorICogQGF1dGhvciBSaWNoYXJkIEdpbGxhbQorICogQHZlcnNpb24gJFJDU2ZpbGU6IE5GU3Vic3RpdHV0aW9uLmphdmEsdiAkICRSZXZpc2lvbjogMS44ICQgJERhdGU6IDIwMDIvMDcvMzEgMTc6Mzc6MDggJAorICovCithYnN0cmFjdCBjbGFzcyBORlN1YnN0aXR1dGlvbiB7CisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNvbnN0YW50cworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFB1dHMgYSBjb3B5cmlnaHQgaW4gdGhlIC5jbGFzcyBmaWxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodE5vdGljZQorICAgICAgICA9ICJDb3B5cmlnaHQgXHUwMGE5MTk5Ny0xOTk4IElCTSBDb3JwLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGRhdGEgbWVtYmVycworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFRoZSBzdWJzdGl0dXRpb24ncyBwb3NpdGlvbiBpbiB0aGUgcnVsZSB0ZXh0IG9mIHRoZSBydWxlIHRoYXQgb3ducyBpdAorICAgICAqLworICAgIGludCBwb3M7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcnVsZSBzZXQgdGhpcyBzdWJzdGl0dXRpb24gdXNlcyB0byBmb3JtYXQgaXRzIHJlc3VsdCwgb3IgbnVsbC4KKyAgICAgKiAoRWl0aGVyIHRoaXMgb3IgbnVtYmVyRm9ybWF0IGhhcyB0byBiZSBub24tbnVsbC4pCisgICAgICovCisgICAgTkZSdWxlU2V0IHJ1bGVTZXQgPSBudWxsOworCisgICAgLyoqCisgICAgICogVGhlIERlY2ltYWxGb3JtYXQgdGhpcyBzdWJzdGl0dXRpb24gdXNlcyB0byBmb3JtYXQgaXRzIHJlc3VsdCwKKyAgICAgKiBvciBudWxsLiAgKEVpdGhlciB0aGlzIG9yIHJ1bGVTZXQgaGFzIHRvIGJlIG5vbi1udWxsLikKKyAgICAgKi8KKyAgICBEZWNpbWFsRm9ybWF0IG51bWJlckZvcm1hdCA9IG51bGw7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY29uc3RydWN0aW9uCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUGFyc2VzIHRoZSBkZXNjcmlwdGlvbiwgY3JlYXRlcyB0aGUgcmlnaHQga2luZCBvZiBzdWJzdGl0dXRpb24sCisgICAgICogYW5kIGluaXRpYWxpemVzIGl0IGJhc2VkIG9uIHRoZSBkZXNjcmlwdGlvbi4KKyAgICAgKiBAcGFyYW0gcG9zIFRoZSBzdWJzdGl0dXRpb24ncyBwb3NpdGlvbiBpbiB0aGUgcnVsZSB0ZXh0IG9mIHRoZQorICAgICAqIHJ1bGUgdGhhdCBvd25zIGl0LgorICAgICAqIEBwYXJhbSBydWxlIFRoZSBydWxlIGNvbnRhaW5pbmcgdGhpcyBzdWJzdGl0dXRpb24KKyAgICAgKiBAcGFyYW0gcnVsZVByZWRlY2Vzc29yIFRoZSBydWxlIHByZWNlZGluZyB0aGUgb25lIHRoYXQgY29udGFpbnMKKyAgICAgKiB0aGlzIHN1YnN0aXR1dGlvbiBpbiB0aGUgcnVsZSBzZXQncyBydWxlIGxpc3QgKHRoaXMgaXMgdXNlZAorICAgICAqIG9ubHkgZm9yID4+PiBzdWJzdGl0dXRpb25zKS4KKyAgICAgKiBAcGFyYW0gcnVsZVNldCBUaGUgcnVsZSBzZXQgY29udGFpbmluZyB0aGUgcnVsZSBjb250YWluaW5nIHRoaXMKKyAgICAgKiBzdWJzdGl0dXRpb24KKyAgICAgKiBAcGFyYW0gZm9ybWF0dGVyIFRoZSBSdWxlQmFzZWROdW1iZXJGb3JtYXQgdGhhdCB1bHRpbWF0ZWx5IG93bnMKKyAgICAgKiB0aGlzIHN1YnN0aXR1dGlvbgorICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiBUaGUgZGVzY3JpcHRpb24gdG8gcGFyc2UgdG8gYnVpbGQgdGhlIHN1YnN0aXR1dGlvbgorICAgICAqICh0aGlzIGlzIGp1c3QgdGhlIHN1YnN0cmluZyBvZiB0aGUgcnVsZSdzIGRlc2NyaXB0aW9uIGNvbnRhaW5pbmcKKyAgICAgKiB0aGUgc3Vic3RpdHV0aW9uIHRva2VuIGl0c2VsZikKKyAgICAgKiBAcmV0dXJuIEEgbmV3IHN1YnN0aXR1dGlvbiBjb25zdHJ1Y3RlZCBhY2NvcmRpbmcgdG8gdGhlIGRlc2NyaXB0aW9uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBORlN1YnN0aXR1dGlvbiBtYWtlU3Vic3RpdHV0aW9uKGludCBwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5GUnVsZSBydWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORlJ1bGUgcnVsZVByZWRlY2Vzc29yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORlJ1bGVTZXQgcnVsZVNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGRlc2NyaXB0aW9uKSB7CisgICAgICAgIC8vIGlmIHRoZSBkZXNjcmlwdGlvbiBpcyBlbXB0eSwgcmV0dXJuIGEgTnVtbVN1YnN0aXR1dGlvbgorICAgICAgICBpZiAoZGVzY3JpcHRpb24ubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBOdWxsU3Vic3RpdHV0aW9uKHBvcywgcnVsZVNldCwgZm9ybWF0dGVyLCBkZXNjcmlwdGlvbik7CisgICAgICAgIH0KKworICAgICAgICBzd2l0Y2ggKGRlc2NyaXB0aW9uLmNoYXJBdCgwKSkgeworICAgICAgICAgICAgLy8gaWYgdGhlIGRlc2NyaXB0aW9uIGJlZ2lucyB3aXRoICc8Jy4uLgorICAgICAgICAgICAgY2FzZSAnPCc6CisgICAgICAgICAgICAgICAgLy8gdGhyb3cgYW4gZXhjZXB0aW9uIGlmIHRoZSBydWxlIGlzIGEgbmVnYXRpdmUgbnVtYmVyCisgICAgICAgICAgICAgICAgLy8gcnVsZQorICAgICAgICAgICAgICAgIGlmIChydWxlLmdldEJhc2VWYWx1ZSgpID09IE5GUnVsZS5ORUdBVElWRV9OVU1CRVJfUlVMRSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCI8PCBub3QgYWxsb3dlZCBpbiBuZWdhdGl2ZS1udW1iZXIgcnVsZSIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBydWxlIGlzIGEgZnJhY3Rpb24gcnVsZSwgcmV0dXJuIGFuCisgICAgICAgICAgICAgICAgLy8gSW50ZWdyYWxQYXJ0U3Vic3RpdHV0aW9uCisgICAgICAgICAgICAgICAgZWxzZSBpZiAocnVsZS5nZXRCYXNlVmFsdWUoKSA9PSBORlJ1bGUuSU1QUk9QRVJfRlJBQ1RJT05fUlVMRQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IHJ1bGUuZ2V0QmFzZVZhbHVlKCkgPT0gTkZSdWxlLlBST1BFUl9GUkFDVElPTl9SVUxFCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgcnVsZS5nZXRCYXNlVmFsdWUoKSA9PSBORlJ1bGUuTUFTVEVSX1JVTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBJbnRlZ3JhbFBhcnRTdWJzdGl0dXRpb24ocG9zLCBydWxlU2V0LCBmb3JtYXR0ZXIsIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBpZiB0aGUgcnVsZSBzZXQgY29udGFpbmluZyB0aGUgcnVsZSBpcyBhIGZyYWN0aW9uCisgICAgICAgICAgICAgICAgLy8gcnVsZSBzZXQsIHJldHVybiBhIE51bWVyYXRvclN1YnN0aXR1dGlvbgorICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJ1bGVTZXQuaXNGcmFjdGlvblNldCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTnVtZXJhdG9yU3Vic3RpdHV0aW9uKHBvcywgcnVsZS5nZXRCYXNlVmFsdWUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdHRlci5nZXREZWZhdWx0UnVsZVNldCgpLCBmb3JtYXR0ZXIsIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBvdGhlcndpc2UsIHJldHVybiBhIE11bHRpcGxpZXJTdWJzdGl0dXRpb24KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBNdWx0aXBsaWVyU3Vic3RpdHV0aW9uKHBvcywgcnVsZS5nZXREaXZpc29yKCksIHJ1bGVTZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXR0ZXIsIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGlmIHRoZSBkZXNjcmlwdGlvbiBiZWdpbnMgd2l0aCAnPicuLi4KKyAgICAgICAgICAgIGNhc2UgJz4nOgorICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBydWxlIGlzIGEgbmVnYXRpdmUtbnVtYmVyIHJ1bGUsIHJldHVybgorICAgICAgICAgICAgICAgIC8vIGFuIEFic29sdXRlVmFsdWVTdWJzdGl0dXRpb24KKyAgICAgICAgICAgICAgICBpZiAocnVsZS5nZXRCYXNlVmFsdWUoKSA9PSBORlJ1bGUuTkVHQVRJVkVfTlVNQkVSX1JVTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBBYnNvbHV0ZVZhbHVlU3Vic3RpdHV0aW9uKHBvcywgcnVsZVNldCwgZm9ybWF0dGVyLCBkZXNjcmlwdGlvbik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gaWYgdGhlIHJ1bGUgaXMgYSBmcmFjdGlvbiBydWxlLCByZXR1cm4gYQorICAgICAgICAgICAgICAgIC8vIEZyYWN0aW9uYWxQYXJ0U3Vic3RpdHV0aW9uCisgICAgICAgICAgICAgICAgZWxzZSBpZiAocnVsZS5nZXRCYXNlVmFsdWUoKSA9PSBORlJ1bGUuSU1QUk9QRVJfRlJBQ1RJT05fUlVMRQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IHJ1bGUuZ2V0QmFzZVZhbHVlKCkgPT0gTkZSdWxlLlBST1BFUl9GUkFDVElPTl9SVUxFCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgcnVsZS5nZXRCYXNlVmFsdWUoKSA9PSBORlJ1bGUuTUFTVEVSX1JVTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBGcmFjdGlvbmFsUGFydFN1YnN0aXR1dGlvbihwb3MsIHJ1bGVTZXQsIGZvcm1hdHRlciwgZGVzY3JpcHRpb24pOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBydWxlIHNldCBvd25pbmcgdGhlIHJ1bGUgaXMgYSBmcmFjdGlvbiBydWxlIHNldCwKKyAgICAgICAgICAgICAgICAvLyB0aHJvdyBhbiBleGNlcHRpb24KKyAgICAgICAgICAgICAgICBlbHNlIGlmIChydWxlU2V0LmlzRnJhY3Rpb25TZXQoKSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCI+PiBub3QgYWxsb3dlZCBpbiBmcmFjdGlvbiBydWxlIHNldCIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIG90aGVyd2lzZSwgcmV0dXJuIGEgTW9kdWx1c1N1YnN0aXR1dGlvbgorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE1vZHVsdXNTdWJzdGl0dXRpb24ocG9zLCBydWxlLmdldERpdmlzb3IoKSwgcnVsZVByZWRlY2Vzc29yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZVNldCwgZm9ybWF0dGVyLCBkZXNjcmlwdGlvbik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBpZiB0aGUgZGVzY3JpcHRpb24gYmVnaW5zIHdpdGggJz0nLCBhbHdheXMgcmV0dXJuIGEKKyAgICAgICAgICAgIC8vIFNhbWVWYWx1ZVN1YnN0aXR1dGlvbgorICAgICAgICAgICAgY2FzZSAnPSc6CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTYW1lVmFsdWVTdWJzdGl0dXRpb24ocG9zLCBydWxlU2V0LCBmb3JtYXR0ZXIsIGRlc2NyaXB0aW9uKTsKKworICAgICAgICAgICAgLy8gYW5kIGlmIGl0J3MgYW55dGhpbmcgZWxzZSwgdGhyb3cgYW4gZXhjZXB0aW9uCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgc3Vic3RpdHV0aW9uIGNoYXJhY3RlciIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQmFzZSBjb25zdHJ1Y3RvciBmb3Igc3Vic3RpdHV0aW9ucy4gIFRoaXMgY29uc3RydWN0b3Igc2V0cyB1cCB0aGUKKyAgICAgKiBmaWVsZHMgd2hpY2ggYXJlIGNvbW1vbiB0byBhbGwgc3Vic3RpdHV0aW9ucy4KKyAgICAgKiBAcGFyYW0gcG9zIFRoZSBzdWJzdGl0dXRpb24ncyBwb3NpdGlvbiBpbiB0aGUgb3duaW5nIHJ1bGUncyBydWxlCisgICAgICogdGV4dAorICAgICAqIEBwYXJhbSBydWxlU2V0IFRoZSBydWxlIHNldCB0aGF0IG93bnMgdGhpcyBzdWJzdGl0dXRpb24KKyAgICAgKiBAcGFyYW0gZm9ybWF0dGVyIFRoZSBSdWxlQmFzZWROdW1iZXJGb3JtYXQgdGhhdCBvd25zIHRoaXMgc3Vic3RpdHV0aW9uCisgICAgICogQHBhcmFtIGRlc2NyaXB0aW9uIFRoZSBzdWJzdGl0dXRpb24gZGVzY3JpcHRvciAoaS5lLiwgdGhlIHRleHQKKyAgICAgKiBpbnNpZGUgdGhlIHRva2VuIGNoYXJhY3RlcnMpCisgICAgICovCisgICAgTkZTdWJzdGl0dXRpb24oaW50IHBvcywKKyAgICAgICAgICAgICAgICAgICBORlJ1bGVTZXQgcnVsZVNldCwKKyAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyLAorICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICAvLyBpbml0aWFsaXplIHRoZSBzdWJzdGl0dXRpb24ncyBwb3NpdGlvbiBpbiBpdHMgcGFyZW50IHJ1bGUKKyAgICAgICAgdGhpcy5wb3MgPSBwb3M7CisKKyAgICAgICAgLy8gdGhlIGRlc2NyaXB0aW9uIHNob3VsZCBiZWdpbiBhbmQgZW5kIHdpdGggdGhlIHNhbWUgY2hhcmFjdGVyLgorICAgICAgICAvLyBJZiBpdCBkb2Vzbid0IHRoYXQncyBhIHN5bnRheCBlcnJvci4gIE90aGVyd2lzZSwKKyAgICAgICAgLy8gbWFrZVN1YnN0aXR1dGlvbigpIHdhcyB0aGUgb25seSB0aGluZyB0aGF0IG5lZWRlZCB0byBrbm93CisgICAgICAgIC8vIGFib3V0IHRoZXNlIGNoYXJhY3RlcnMsIHNvIHN0cmlwIHRoZW0gb2ZmCisgICAgICAgIGlmIChkZXNjcmlwdGlvbi5sZW5ndGgoKSA+PSAyICYmIGRlc2NyaXB0aW9uLmNoYXJBdCgwKSA9PSBkZXNjcmlwdGlvbi5jaGFyQXQoCisgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbi5sZW5ndGgoKSAtIDEpKSB7CisgICAgICAgICAgICBkZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uLnN1YnN0cmluZygxLCBkZXNjcmlwdGlvbi5sZW5ndGgoKSAtIDEpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGRlc2NyaXB0aW9uLmxlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgc3Vic3RpdHV0aW9uIHN5bnRheCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gaWYgdGhlIGRlc2NyaXB0aW9uIHdhcyBqdXN0IHR3byBwYWlyZWQgdG9rZW4gY2hhcmFjdGVycworICAgICAgICAvLyAoaS5lLiwgIjw8IiBvciAiPj4iKSwgaXQgdXNlcyB0aGUgcnVsZSBzZXQgaXQgYmVsb25ncyB0byB0bworICAgICAgICAvLyBmb3JtYXQgaXRzIHJlc3VsdAorICAgICAgICBpZiAoZGVzY3JpcHRpb24ubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgdGhpcy5ydWxlU2V0ID0gcnVsZVNldDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIHRoZSBkZXNjcmlwdGlvbiBjb250YWlucyBhIHJ1bGUgc2V0IG5hbWUsIHRoYXQncyB0aGUgcnVsZQorICAgICAgICAvLyBzZXQgd2UgdXNlIHRvIGZvcm1hdCB0aGUgcmVzdWx0OiBnZXQgYSByZWZlcmVuY2UgdG8gdGhlCisgICAgICAgIC8vIG5hbWVzIHJ1bGUgc2V0CisgICAgICAgIGVsc2UgaWYgKGRlc2NyaXB0aW9uLmNoYXJBdCgwKSA9PSAnJScpIHsKKyAgICAgICAgICAgIHRoaXMucnVsZVNldCA9IGZvcm1hdHRlci5maW5kUnVsZVNldChkZXNjcmlwdGlvbik7CisgICAgICAgIH0KKworICAgICAgICAvLyBpZiB0aGUgZGVzY3JpcHRpb24gYmVnaW5zIHdpdGggMCBvciAjLCB0cmVhdCBpdCBhcyBhCisgICAgICAgIC8vIERlY2ltYWxGb3JtYXQgcGF0dGVybiwgYW5kIGluaXRpYWxpemUgYSBEZWNpbWFsRm9ybWF0IHdpdGgKKyAgICAgICAgLy8gdGhhdCBwYXR0ZXJuICh0aGVuIHNldCBpdCB0byB1c2UgdGhlIERlY2ltYWxGb3JtYXRTeW1ib2xzCisgICAgICAgIC8vIGJlbG9uZ2luZyB0byBvdXIgZm9ybWF0dGVyKQorICAgICAgICBlbHNlIGlmIChkZXNjcmlwdGlvbi5jaGFyQXQoMCkgPT0gJyMnIHx8IGRlc2NyaXB0aW9uLmNoYXJBdCgwKSA9PSAnMCcpIHsKKyAgICAgICAgICAgIHRoaXMubnVtYmVyRm9ybWF0ID0gbmV3IERlY2ltYWxGb3JtYXQoZGVzY3JpcHRpb24pOworICAgICAgICAgICAgdGhpcy5udW1iZXJGb3JtYXQuc2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoZm9ybWF0dGVyLmdldERlY2ltYWxGb3JtYXRTeW1ib2xzKCkpOworICAgICAgICB9CisKKyAgICAgICAgLy8gaWYgdGhlIGRlc2NyaXB0aW9uIGlzICI+Pj4iLCB0aGlzIHN1YnN0aXR1dGlvbiBieXBhc3NlcyB0aGUKKyAgICAgICAgLy8gdXN1YWwgcnVsZS1zZWFyY2ggcHJvY2VzcyBhbmQgYWx3YXlzIHVzZXMgdGhlIHJ1bGUgdGhhdCBwcmVjZWRlcworICAgICAgICAvLyBpdCBpbiBpdHMgb3duIHJ1bGUgc2V0J3MgcnVsZSBsaXN0ICh0aGlzIGlzIHVzZWQgZm9yIHBsYWNlLXZhbHVlCisgICAgICAgIC8vIG5vdGF0aW9uczogZm9ybWF0cyB3aGVyZSB5b3Ugd2FudCB0byBzZWUgYSBwYXJ0aWN1bGFyIHBhcnQgb2YKKyAgICAgICAgLy8gYSBudW1iZXIgZXZlbiB3aGVuIGl0J3MgMCkKKyAgICAgICAgZWxzZSBpZiAoZGVzY3JpcHRpb24uY2hhckF0KDApID09ICc+JykgeworICAgICAgICAgICAgdGhpcy5ydWxlU2V0ID0gcnVsZVNldDsgLy8gd2FzIG51bGwsIHRoYWkgcnVsZXMgYWRkZWQgdG8gY29udHJvbCBzcGFjZQorICAgICAgICAgICAgdGhpcy5udW1iZXJGb3JtYXQgPSBudWxsOworICAgICAgICB9CisKKyAgICAgICAgLy8gYW5kIG9mIHRoZSBkZXNjcmlwdGlvbiBpcyBub25lIG9mIHRoZXNlIHRoaW5ncywgaXQncyBhIHN5bnRheCBlcnJvcgorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgc3Vic3RpdHV0aW9uIHN5bnRheCIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0J3MgdGhlIHN1YnN0aXR1dGlvbidzIGRpdmlzb3IuICBVc2VkIGJ5IE5GUnVsZS5zZXRCYXNlVmFsdWUoKS4KKyAgICAgKiBBIG5vLW9wIGZvciBhbGwgc3Vic3RpdHV0aW9ucyBleGNlcHQgbXVsdGlwbGllciBhbmQgbW9kdWx1cworICAgICAqIHN1YnN0aXR1dGlvbnMuCisgICAgICogQHBhcmFtIHJhZGl4IFRoZSByYWRpeCBvZiB0aGUgZGl2aXNvcgorICAgICAqIEBwYXJhbSBleHBvbmVudCBUaGUgZXhwb25lbnQgb2YgdGhlIGRpdmlzb3IKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXREaXZpc29yKGludCByYWRpeCwgaW50IGV4cG9uZW50KSB7CisgICAgICAgIC8vIGEgbm8tb3AgZm9yIGFsbCBzdWJzdGl0dXRpb25zIGV4Y2VwdCBtdWx0aXBsaWVyIGFuZCBtb2R1bHVzIHN1YnN0aXR1dGlvbnMKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gYm9pbGVycGxhdGUKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlcyB0d28gc3Vic3RpdHV0aW9ucyBmb3IgZXF1YWxpdHkKKyAgICAgKiBAcGFyYW0gVGhlIHN1YnN0aXR1dGlvbiB0byBjb21wYXJlIHRoaXMgb25lIHRvCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB0d28gc3Vic3RpdHV0aW9ucyBhcmUgZnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IHRoYXQpIHsKKyAgICAgICAgLy8gY29tcGFyZSBjbGFzcyBhbmQgYWxsIG9mIHRoZSBmaWVsZHMgYWxsIHN1YnN0aXR1dGlvbnMgaGF2ZQorICAgICAgICAvLyBpbiBjb21tb24KKyAgICAgICAgaWYgKHRoaXMuZ2V0Q2xhc3MoKSA9PSB0aGF0LmdldENsYXNzKCkpIHsKKyAgICAgICAgICAgIE5GU3Vic3RpdHV0aW9uIHRoYXQyID0gKE5GU3Vic3RpdHV0aW9uKXRoYXQ7CisKKyAgICAgICAgICAgICByZXR1cm4gcG9zID09IHRoYXQyLnBvcworCQkgJiYgKHJ1bGVTZXQgPT0gbnVsbCA/IHRoYXQyLnJ1bGVTZXQgPT0gbnVsbCA6IHRydWUpIC8vIGNhbid0IGNvbXBhcmUgdHJlZSBzdHJ1Y3R1cmUsIG5vIC5lcXVhbHMgb3IgcmVjdXJzZQorCQkgJiYgKG51bWJlckZvcm1hdCA9PSBudWxsID8gKHRoYXQyLm51bWJlckZvcm1hdCA9PSBudWxsKSA6IG51bWJlckZvcm1hdC5lcXVhbHModGhhdDIubnVtYmVyRm9ybWF0KSk7CisgICAgICAgIH0KKwlyZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHRleHR1YWwgZGVzY3JpcHRpb24gb2YgdGhlIHN1YnN0aXR1dGlvbgorICAgICAqIEByZXR1cm4gQSB0ZXh0dWFsIGRlc2NyaXB0aW9uIG9mIHRoZSBzdWJzdGl0dXRpb24uICBUaGlzIG1pZ2h0CisgICAgICogbm90IGJlIGlkZW50aWNhbCB0byB0aGUgZGVzY3JpcHRpb24gaXQgd2FzIGNyZWF0ZWQgZnJvbSwgYnV0CisgICAgICogaXQnbGwgcHJvZHVjZSB0aGUgc2FtZSByZXN1bHQuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgLy8gdXNlIHRva2VuQ2hhcigpIHRvIGdldCB0aGUgY2hhcmFjdGVyIGF0IHRoZSBiZWdpbm5pbmcgYW5kCisgICAgICAgIC8vIGVuZCBvZiB0aGUgc3Vic3RpdHV0aW9uIHRva2VuLiAgSW4gYmV0d2VlbiB0aGVtIHdpbGwgZ28KKyAgICAgICAgLy8gZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBydWxlIHNldCBpdCB1c2VzLCBvciB0aGUgcGF0dGVybiBvZgorICAgICAgICAvLyB0aGUgRGVjaW1hbEZvcm1hdCBpdCB1c2VzCisgICAgICAgIGlmIChydWxlU2V0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiB0b2tlbkNoYXIoKSArIHJ1bGVTZXQuZ2V0TmFtZSgpICsgdG9rZW5DaGFyKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gdG9rZW5DaGFyKCkgKyBudW1iZXJGb3JtYXQudG9QYXR0ZXJuKCkgKyB0b2tlbkNoYXIoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBmb3JtYXR0aW5nCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUGVyZm9ybXMgYSBtYXRoZW1hdGljYWwgb3BlcmF0aW9uIG9uIHRoZSBudW1iZXIsIGZvcm1hdHMgaXQgdXNpbmcKKyAgICAgKiBlaXRoZXIgcnVsZVNldCBvciBkZWNpbWFsRm9ybWF0LCBhbmQgaW5zZXJ0cyB0aGUgcmVzdWx0IGludG8KKyAgICAgKiB0b0luc2VydEludG8uCisgICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZC4KKyAgICAgKiBAcGFyYW0gdG9JbnNlcnRJbnRvIFRoZSBzdHJpbmcgd2UgaW5zZXJ0IHRoZSByZXN1bHQgaW50bworICAgICAqIEBwYXJhbSBwb3MgVGhlIHBvc2l0aW9uIGluIHRvSW5zZXJ0SW50byB3aGVyZSB0aGUgb3duaW5nIHJ1bGUncworICAgICAqIHJ1bGUgdGV4dCBiZWdpbnMgKHRoaXMgdmFsdWUgaXMgYWRkZWQgdG8gdGhpcyBzdWJzdGl0dXRpb24ncworICAgICAqIHBvc2l0aW9uIHRvIGRldGVybWluZSBleGFjdGx5IHdoZXJlIHRvIGluc2VydCB0aGUgbmV3IHRleHQpCisgICAgICovCisgICAgcHVibGljIHZvaWQgZG9TdWJzdGl0dXRpb24obG9uZyBudW1iZXIsIFN0cmluZ0J1ZmZlciB0b0luc2VydEludG8sIGludCBwb3MpIHsKKyAgICAgICAgaWYgKHJ1bGVTZXQgIT0gbnVsbCkgeworICAgICAgICAgICAvLyBwZXJmb3JtIGEgdHJhbnNmb3JtYXRpb24gb24gdGhlIG51bWJlciB0aGF0IGlzIGRlcGVuZGVudAorICAgICAgICAgICAvLyBvbiB0aGUgdHlwZSBvZiBzdWJzdGl0dXRpb24gdGhpcyBpcywgdGhlbiBqdXN0IGNhbGwgaXRzCisgICAgICAgICAgIC8vIHJ1bGUgc2V0J3MgZm9ybWF0KCkgbWV0aG9kIHRvIGZvcm1hdCB0aGUgcmVzdWx0CisgICAgICAgICAgIGxvbmcgbnVtYmVyVG9Gb3JtYXQgPSB0cmFuc2Zvcm1OdW1iZXIobnVtYmVyKTsKKworICAgICAgICAgICAgcnVsZVNldC5mb3JtYXQobnVtYmVyVG9Gb3JtYXQsIHRvSW5zZXJ0SW50bywgcG9zICsgdGhpcy5wb3MpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gb3IgcGVyZm9ybSB0aGUgdHJhbnNmb3JtYXRpb24gb24gdGhlIG51bWJlciAocHJlc2VydmluZworICAgICAgICAgICAgLy8gdGhlIHJlc3VsdCdzIGZyYWN0aW9uYWwgcGFydCBpZiB0aGUgZm9ybWF0dGVyIGl0IHNldAorICAgICAgICAgICAgLy8gdG8gc2hvdyBpdCksIHRoZW4gdXNlIHRoYXQgZm9ybWF0dGVyJ3MgZm9ybWF0KCkgbWV0aG9kCisgICAgICAgICAgICAvLyB0byBmb3JtYXQgdGhlIHJlc3VsdAorICAgICAgICAgICAgZG91YmxlIG51bWJlclRvRm9ybWF0ID0gdHJhbnNmb3JtTnVtYmVyKChkb3VibGUpbnVtYmVyKTsKKyAgICAgICAgICAgIGlmIChudW1iZXJGb3JtYXQuZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCkgPT0gMCkgeworICAgICAgICAgICAgICAgIG51bWJlclRvRm9ybWF0ID0gTWF0aC5mbG9vcihudW1iZXJUb0Zvcm1hdCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRvSW5zZXJ0SW50by5pbnNlcnQocG9zICsgdGhpcy5wb3MsIG51bWJlckZvcm1hdC5mb3JtYXQobnVtYmVyVG9Gb3JtYXQpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm1zIGEgbWF0aGVtYXRpY2FsIG9wZXJhdGlvbiBvbiB0aGUgbnVtYmVyLCBmb3JtYXRzIGl0IHVzaW5nCisgICAgICogZWl0aGVyIHJ1bGVTZXQgb3IgZGVjaW1hbEZvcm1hdCwgYW5kIGluc2VydHMgdGhlIHJlc3VsdCBpbnRvCisgICAgICogdG9JbnNlcnRJbnRvLgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQuCisgICAgICogQHBhcmFtIHRvSW5zZXJ0SW50byBUaGUgc3RyaW5nIHdlIGluc2VydCB0aGUgcmVzdWx0IGludG8KKyAgICAgKiBAcGFyYW0gcG9zIFRoZSBwb3NpdGlvbiBpbiB0b0luc2VydEludG8gd2hlcmUgdGhlIG93bmluZyBydWxlJ3MKKyAgICAgKiBydWxlIHRleHQgYmVnaW5zICh0aGlzIHZhbHVlIGlzIGFkZGVkIHRvIHRoaXMgc3Vic3RpdHV0aW9uJ3MKKyAgICAgKiBwb3NpdGlvbiB0byBkZXRlcm1pbmUgZXhhY3RseSB3aGVyZSB0byBpbnNlcnQgdGhlIG5ldyB0ZXh0KQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGRvU3Vic3RpdHV0aW9uKGRvdWJsZSBudW1iZXIsIFN0cmluZ0J1ZmZlciB0b0luc2VydEludG8sIGludCBwb3MpIHsKKyAgICAgICAgLy8gcGVyZm9ybSBhIHRyYW5zZm9ybWF0aW9uIG9uIHRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkIHRoYXQKKyAgICAgICAgLy8gaXMgZGVwZW5kZW50IG9uIHRoZSB0eXBlIG9mIHN1YnN0aXR1dGlvbiB0aGlzIGlzCisgICAgICAgIGRvdWJsZSBudW1iZXJUb0Zvcm1hdCA9IHRyYW5zZm9ybU51bWJlcihudW1iZXIpOworCisgICAgICAgIC8vIGlmIHRoZSByZXN1bHQgaXMgYW4gaW50ZWdlciwgZnJvbSBoZXJlIG9uIG91dCB3ZSB3b3JrIGluIGludGVnZXIKKyAgICAgICAgLy8gc3BhY2UgKHNhdmluZyB0aW1lIGFuZCBtZW1vcnkgYW5kIHByZXNlcnZpbmcgYWNjdXJhY3kpCisgICAgICAgIGlmIChudW1iZXJUb0Zvcm1hdCA9PSBNYXRoLmZsb29yKG51bWJlclRvRm9ybWF0KSAmJiBydWxlU2V0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJ1bGVTZXQuZm9ybWF0KChsb25nKW51bWJlclRvRm9ybWF0LCB0b0luc2VydEludG8sIHBvcyArIHRoaXMucG9zKTsKKworICAgICAgICAvLyBpZiB0aGUgcmVzdWx0IGlzbid0IGFuIGludGVnZXIsIHRoZW4gY2FsbCBlaXRoZXIgb3VyIHJ1bGUgc2V0J3MKKyAgICAgICAgLy8gZm9ybWF0KCkgbWV0aG9kIG9yIG91ciBEZWNpbWFsRm9ybWF0J3MgZm9ybWF0KCkgbWV0aG9kIHRvCisgICAgICAgIC8vIGZvcm1hdCB0aGUgcmVzdWx0CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAocnVsZVNldCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcnVsZVNldC5mb3JtYXQobnVtYmVyVG9Gb3JtYXQsIHRvSW5zZXJ0SW50bywgcG9zICsgdGhpcy5wb3MpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0b0luc2VydEludG8uaW5zZXJ0KHBvcyArIHRoaXMucG9zLCBudW1iZXJGb3JtYXQuZm9ybWF0KG51bWJlclRvRm9ybWF0KSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTdWJjbGFzc2VzIG92ZXJyaWRlIHRoaXMgZnVuY3Rpb24gdG8gcGVyZm9ybSBzb21lIGtpbmQgb2YKKyAgICAgKiBtYXRoZW1hdGljYWwgb3BlcmF0aW9uIG9uIHRoZSBudW1iZXIuICBUaGUgcmVzdWx0IG9mIHRoaXMgb3BlcmF0aW9uCisgICAgICogaXMgZm9ybWF0dGVkIHVzaW5nIHRoZSBydWxlIHNldCBvciBEZWNpbWFsRm9ybWF0IHRoYXQgdGhpcworICAgICAqIHN1YnN0aXR1dGlvbiByZWZlcnMgdG8sIGFuZCB0aGUgcmVzdWx0IGlzIGluc2VydGVkIGludG8gdGhlIHJlc3VsdAorICAgICAqIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gVGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQKKyAgICAgKiBAcmV0dXJuIFRoZSByZXN1bHQgb2YgcGVyZm9ybWluZyB0aGUgb3ByZXJhdGlvbiBvbiB0aGUgbnVtYmVyCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGxvbmcgdHJhbnNmb3JtTnVtYmVyKGxvbmcgbnVtYmVyKTsKKworICAgIC8qKgorICAgICAqIFN1YmNsYXNzZXMgb3ZlcnJpZGUgdGhpcyBmdW5jdGlvbiB0byBwZXJmb3JtIHNvbWUga2luZCBvZgorICAgICAqIG1hdGhlbWF0aWNhbCBvcGVyYXRpb24gb24gdGhlIG51bWJlci4gIFRoZSByZXN1bHQgb2YgdGhpcyBvcGVyYXRpb24KKyAgICAgKiBpcyBmb3JtYXR0ZWQgdXNpbmcgdGhlIHJ1bGUgc2V0IG9yIERlY2ltYWxGb3JtYXQgdGhhdCB0aGlzCisgICAgICogc3Vic3RpdHV0aW9uIHJlZmVycyB0bywgYW5kIHRoZSByZXN1bHQgaXMgaW5zZXJ0ZWQgaW50byB0aGUgcmVzdWx0CisgICAgICogc3RyaW5nLgorICAgICAqIEBwYXJhbSBUaGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZAorICAgICAqIEByZXR1cm4gVGhlIHJlc3VsdCBvZiBwZXJmb3JtaW5nIHRoZSBvcHJlcmF0aW9uIG9uIHRoZSBudW1iZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgZG91YmxlIHRyYW5zZm9ybU51bWJlcihkb3VibGUgbnVtYmVyKTsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBwYXJzaW5nCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUGFyc2VzIGEgc3RyaW5nIHVzaW5nIHRoZSBydWxlIHNldCBvciBEZWNpbWFsRm9ybWF0IGJlbG9uZ2luZworICAgICAqIHRvIHRoaXMgc3Vic3RpdHV0aW9uLiAgSWYgdGhlcmUncyBhIG1hdGNoLCBhIG1hdGhlbWF0aWNhbAorICAgICAqIG9wZXJhdGlvbiAodGhlIGludmVyc2Ugb2YgdGhlIG9uZSB1c2VkIGluIGZvcm1hdHRpbmcpIGlzCisgICAgICogcGVyZm9ybWVkIG9uIHRoZSByZXN1bHQgb2YgdGhlIHBhcnNlIGFuZCB0aGUgdmFsdWUgcGFzc2VkIGluCisgICAgICogYW5kIHJldHVybmVkIGFzIHRoZSByZXN1bHQuICBUaGUgcGFyc2UgcG9zaXRpb24gaXMgdXBkYXRlZCB0bworICAgICAqIHBvaW50IHRvIHRoZSBmaXJzdCB1bm1hdGNoZWQgY2hhcmFjdGVyIGluIHRoZSBzdHJpbmcuCisgICAgICogQHBhcmFtIHRleHQgVGhlIHN0cmluZyB0byBwYXJzZQorICAgICAqIEBwYXJhbSBwYXJzZVBvc2l0aW9uIE9uIGVudHJ5LCBpZ25vcmVkLCBidXQgYXNzdW1lZCB0byBiZSAwLgorICAgICAqIE9uIGV4aXQsIHRoaXMgaXMgdXBkYXRlZCB0byBwb2ludCB0byB0aGUgZmlyc3QgdW5tYXRjaGVkCisgICAgICogY2hhcmFjdGVyIChvciAwIGlmIHRoZSBzdWJzdGl0dXRpb24gZGlkbid0IG1hdGNoKQorICAgICAqIEBwYXJhbSBiYXNlVmFsdWUgQSBwYXJ0aWFsIHBhcnNlIHJlc3VsdCB0aGF0IHNob3VsZCBiZQorICAgICAqIGNvbWJpbmVkIHdpdGggdGhlIHJlc3VsdCBvZiB0aGlzIHBhcnNlCisgICAgICogQHBhcmFtIHVwcGVyQm91bmQgV2hlbiBzZWFyY2hpbmcgdGhlIHJ1bGUgc2V0IGZvciBhIHJ1bGUKKyAgICAgKiBtYXRjaGluZyB0aGUgc3RyaW5nIHBhc3NlZCBpbiwgb25seSBydWxlcyB3aXRoIGJhc2UgdmFsdWVzCisgICAgICogbG93ZXIgdGhhbiB0aGlzIGFyZSBjb25zaWRlcmVkCisgICAgICogQHBhcmFtIGxlbmllbnRQYXJzZSBJZiB0cnVlIGFuZCBtYXRjaGluZyBhZ2FpbnN0IHJ1bGVzIGZhaWxzLAorICAgICAqIHRoZSBzdWJzdGl0dXRpb24gd2lsbCBhbHNvIHRyeSBtYXRjaGluZyB0aGUgdGV4dCBhZ2FpbnN0CisgICAgICogbnVtZXJhbHMgdXNpbmcgYSBkZWZhdWx0LWNvc3RydWN0ZWQgTnVtYmVyRm9ybWF0LiAgSWYgZmFsc2UsCisgICAgICogbm8gZXh0cmEgd29yayBpcyBkb25lLiAgKFRoaXMgdmFsdWUgaXMgZmFsc2Ugd2hlbmV2ZXIgdGhlCisgICAgICogZm9ybWF0dGVyIGlzbid0IGluIGxlbmllbnQtcGFyc2UgbW9kZSwgYnV0IGlzIGFsc28gZmFsc2UKKyAgICAgKiB1bmRlciBzb21lIGNvbmRpdGlvbnMgZXZlbiB3aGVuIHRoZSBmb3JtYXR0ZXIgX2lzXyBpbgorICAgICAqIGxlbmllbnQtcGFyc2UgbW9kZS4pCisgICAgICogQHJldHVybiBJZiB0aGVyZSdzIGEgbWF0Y2gsIHRoaXMgaXMgdGhlIHJlc3VsdCBvZiBjb21wb3NpbmcKKyAgICAgKiBiYXNlVmFsdWUgd2l0aCB3aGF0ZXZlciB3YXMgcmV0dXJuZWQgZnJvbSBtYXRjaGluZyB0aGUKKyAgICAgKiBjaGFyYWN0ZXJzLiAgVGhpcyB3aWxsIGJlIGVpdGhlciBhIExvbmcgb3IgYSBEb3VibGUuICBJZiB0aGVyZSdzCisgICAgICogbm8gbWF0Y2ggdGhpcyBpcyBuZXcgTG9uZygwKSAobm90IG51bGwpLCBhbmQgcGFyc2VQb3NpdGlvbgorICAgICAqIGlzIGxlZnQgdW5jaGFuZ2VkLgorICAgICAqLworICAgIHB1YmxpYyBOdW1iZXIgZG9QYXJzZShTdHJpbmcgdGV4dCwgUGFyc2VQb3NpdGlvbiBwYXJzZVBvc2l0aW9uLCBkb3VibGUgYmFzZVZhbHVlLAorICAgICAgICAgICAgICAgICAgICBkb3VibGUgdXBwZXJCb3VuZCwgYm9vbGVhbiBsZW5pZW50UGFyc2UpIHsKKyAgICAgICAgTnVtYmVyIHRlbXBSZXN1bHQ7CisKKyAgICAgICAgLy8gZmlndXJlIG91dCB0aGUgaGlnaGVzdCBiYXNlIHZhbHVlIGEgcnVsZSBjYW4gaGF2ZSBhbmQgbWF0Y2gKKyAgICAgICAgLy8gdGhlIHRleHQgYmVpbmcgcGFyc2VkICh0aGlzIHZhcmllcyBhY2NvcmRpbmcgdG8gdGhlIHR5cGUgb2YKKyAgICAgICAgLy8gc3Vic3RpdHV0aW9uczogbXVsdGlwbGllciwgbW9kdWx1cywgYW5kIG51bWVyYXRvciBzdWJzdGl0dXRpb25zCisgICAgICAgIC8vIHJlc3RyaWN0IHRoZSBzZWFyY2ggdG8gcnVsZXMgd2l0aCBiYXNlIHZhbHVlcyBsb3dlciB0aGFuIHRoZWlyCisgICAgICAgIC8vIG93bjsgc2FtZS12YWx1ZSBzdWJzdGl0dXRpb25zIGxlYXZlIHRoZSB1cHBlciBib3VuZCB3aGVyZXZlcgorICAgICAgICAvLyBpdCB3YXMsIGFuZCB0aGUgb3RoZXJzIGFsbG93IGFueSBydWxlIHRvIG1hdGNoCisgICAgICAgIHVwcGVyQm91bmQgPSBjYWxjVXBwZXJCb3VuZCh1cHBlckJvdW5kKTsKKworICAgICAgICAvLyB1c2Ugb3VyIHJ1bGUgc2V0IHRvIHBhcnNlIHRoZSB0ZXh0LiAgSWYgdGhhdCBmYWlscyBhbmQKKyAgICAgICAgLy8gbGVuaWVudCBwYXJzaW5nIGlzIGVuYWJsZWQgKHRoaXMgaXMgYWx3YXlzIGZhbHNlIGlmIHRoZQorICAgICAgICAvLyBmb3JtYXR0ZXIncyBsZW5pZW50LXBhcnNpbmcgbW9kZSBpcyBvZmYsIGJ1dCBpdCBtYXkgYWxzbworICAgICAgICAvLyBiZSBmYWxzZSBldmVuIHdoZW4gdGhlIGZvcm1hdHRlcidzIGxlbmllbnQtcGFyc2UgbW9kZSBpcworICAgICAgICAvLyBvbiksIHRoZW4gYWxzbyB0cnkgcGFyc2luZyB0aGUgdGV4dCB1c2luZyBhIGRlZmF1bHQtCisgICAgICAgIC8vIGNvbnN0cnVjdGVkIE51bWJlckZvcm1hdAorICAgICAgICBpZiAocnVsZVNldCAhPSBudWxsKSB7CisgICAgICAgICAgICB0ZW1wUmVzdWx0ID0gcnVsZVNldC5wYXJzZSh0ZXh0LCBwYXJzZVBvc2l0aW9uLCB1cHBlckJvdW5kKTsKKyAgICAgICAgICAgIGlmIChsZW5pZW50UGFyc2UgJiYgIXJ1bGVTZXQuaXNGcmFjdGlvblNldCgpICYmIHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgdGVtcFJlc3VsdCA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpLnBhcnNlKHRleHQsIHBhcnNlUG9zaXRpb24pOworICAgICAgICAgICAgfQorCisgICAgICAgIC8vIC4uLm9yIHVzZSBvdXIgRGVjaW1hbEZvcm1hdCB0byBwYXJzZSB0aGUgdGV4dAorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVtcFJlc3VsdCA9IG51bWJlckZvcm1hdC5wYXJzZSh0ZXh0LCBwYXJzZVBvc2l0aW9uKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIHRoZSBwYXJzZSB3YXMgc3VjY2Vzc2Z1bCwgd2UndmUgYWxyZWFkeSBhZHZhbmNlZCB0aGUgY2FsbGVyJ3MKKyAgICAgICAgLy8gcGFyc2UgcG9zaXRpb24gKHRoaXMgaXMgdGhlIG9uZSBmdW5jdGlvbiB0aGF0IGRvZXNuJ3QgaGF2ZSBvbmUKKyAgICAgICAgLy8gb2YgaXRzIG93bikuICBEZXJpdmUgYSBwYXJzZSByZXN1bHQgYW5kIHJldHVybiBpdCBhcyBhIExvbmcsCisgICAgICAgIC8vIGlmIHBvc3NpYmxlLCBvciBhIERvdWJsZQorICAgICAgICBpZiAocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpICE9IDApIHsKKyAgICAgICAgICAgIGRvdWJsZSByZXN1bHQgPSB0ZW1wUmVzdWx0LmRvdWJsZVZhbHVlKCk7CisKKyAgICAgICAgICAgIC8vIGNvbXBvc2VSdWxlVmFsdWUoKSBwcm9kdWNlcyBhIGZ1bGwgcGFyc2UgcmVzdWx0IGZyb20KKyAgICAgICAgICAgIC8vIHRoZSBwYXJ0aWFsIHBhcnNlIHJlc3VsdCBwYXNzZWQgdG8gdGhpcyBmdW5jdGlvbiBmcm9tCisgICAgICAgICAgICAvLyB0aGUgY2FsbGVyICh0aGlzIGlzIGVpdGhlciB0aGUgb3duaW5nIHJ1bGUncyBiYXNlIHZhbHVlCisgICAgICAgICAgICAvLyBvciB0aGUgcGFydGlhbCByZXN1bHQgb2J0YWluZWQgZnJvbSBjb21wb3NpbmcgdGhlCisgICAgICAgICAgICAvLyBvd25pbmcgcnVsZSdzIGJhc2UgdmFsdWUgd2l0aCBpdHMgb3RoZXIgc3Vic3RpdHV0aW9uJ3MKKyAgICAgICAgICAgIC8vIHBhcnNlIHJlc3VsdCkgYW5kIHRoZSBwYXJ0aWFsIHBhcnNlIHJlc3VsdCBvYnRhaW5lZCBieQorICAgICAgICAgICAgLy8gbWF0Y2hpbmcgdGhlIHN1YnN0aXR1dGlvbiAod2hpY2ggd2lsbCBiZSB0aGUgc2FtZSB2YWx1ZQorICAgICAgICAgICAgLy8gdGhlIGNhbGxlciB3b3VsZCBnZXQgYnkgcGFyc2luZyBqdXN0IHRoaXMgcGFydCBvZiB0aGUKKyAgICAgICAgICAgIC8vIHRleHQgd2l0aCBSdWxlQmFzZWROdW1iZXJGb3JtYXQucGFyc2UoKSApLiAgSG93IHRoZSB0d28KKyAgICAgICAgICAgIC8vIHZhbHVlcyBhcmUgdXNlZCB0byBkZXJpdmUgdGhlIGZ1bGwgcGFyc2UgcmVzdWx0IGRlcGVuZHMKKyAgICAgICAgICAgIC8vIG9uIHRoZSB0eXBlcyBvZiBzdWJzdGl0dXRpb25zOiBGb3IgYSByZWd1bGFyIHJ1bGUsIHRoZQorICAgICAgICAgICAgLy8gdWx0aW1hdGUgcmVzdWx0IGlzIGl0cyBtdWx0aXBsaWVyIHN1YnN0aXR1dGlvbidzIHJlc3VsdAorICAgICAgICAgICAgLy8gdGltZXMgdGhlIHJ1bGUncyBkaXZpc29yIChvciB0aGUgcnVsZSdzIGJhc2UgdmFsdWUpIHBsdXMKKyAgICAgICAgICAgIC8vIHRoZSBtb2R1bHVzIHN1YnN0aXR1dGlvbidzIHJlc3VsdCAod2hpY2ggd2lsbCBhY3R1YWxseQorICAgICAgICAgICAgLy8gc3VwZXJzZWRlIHBhcnQgb2YgdGhlIHJ1bGUncyBiYXNlIHZhbHVlKS4gIEZvciBhIG5lZ2F0aXZlLQorICAgICAgICAgICAgLy8gbnVtYmVyIHJ1bGUsIHRoZSByZXN1bHQgaXMgdGhlIG5lZ2F0aXZlIG9mIGl0cyBzdWJzdGl0dXRpb24ncworICAgICAgICAgICAgLy8gcmVzdWx0LiAgRm9yIGEgZnJhY3Rpb24gcnVsZSwgaXQncyB0aGUgc3VtIG9mIGl0cyB0d28KKyAgICAgICAgICAgIC8vIHN1YnN0aXR1dGlvbiByZXN1bHRzLiAgRm9yIGEgcnVsZSBpbiBhIGZyYWN0aW9uIHJ1bGUgc2V0LAorICAgICAgICAgICAgLy8gaXQncyB0aGUgbnVtZXJhdG9yIHN1YnN0aXR1dGlvbidzIHJlc3VsdCBkaXZpZGVkIGJ5CisgICAgICAgICAgICAvLyB0aGUgcnVsZSdzIGJhc2UgdmFsdWUuICBSZXN1bHRzIGZyb20gc2FtZS12YWx1ZSBzdWJzdGl0dXRpb25zCisgICAgICAgICAgICAvLyBwcm9wYWdhdGUgYmFjayB1cGFyZCwgYW5kIG51bGwgc3Vic3RpdHV0aW9ucyBkb24ndCBhZmZlY3QKKyAgICAgICAgICAgIC8vIHRoZSByZXN1bHQuCisgICAgICAgICAgICByZXN1bHQgPSBjb21wb3NlUnVsZVZhbHVlKHJlc3VsdCwgYmFzZVZhbHVlKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gKGxvbmcpcmVzdWx0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBMb25nKChsb25nKXJlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRG91YmxlKHJlc3VsdCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgLy8gaWYgdGhlIHBhcnNlIHdhcyBVTnN1Y2Nlc3NmdWwsIHJldHVybiAwCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gdGVtcFJlc3VsdDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIERlcml2ZXMgYSBuZXcgdmFsdWUgZnJvbSB0aGUgdHdvIHZhbHVlcyBwYXNzZWQgaW4uICBUaGUgdHdvIHZhbHVlcworICAgICAqIGFyZSB0eXBpY2FsbHkgZWl0aGVyIHRoZSBiYXNlIHZhbHVlcyBvZiB0d28gcnVsZXMgKHRoZSBvbmUgY29udGFpbmluZworICAgICAqIHRoZSBzdWJzdGl0dXRpb24gYW5kIHRoZSBvbmUgbWF0Y2hpbmcgdGhlIHN1YnN0aXR1dGlvbikgb3IgcGFydGlhbAorICAgICAqIHBhcnNlIHJlc3VsdHMgZGVyaXZlZCBpbiBzb21lIG90aGVyIHdheS4gIFRoZSBvcGVyYXRpb24gaXMgZ2VuZXJhbGx5CisgICAgICogdGhlIGludmVyc2Ugb2YgdGhlIG9wZXJhdGlvbiBwZXJmb3JtZWQgYnkgdHJhbnNmb3JtTnVtYmVyKCkuCisgICAgICogQHBhcmFtIG5ld1J1bGVWYWx1ZSBUaGUgdmFsdWUgcHJvZHVjZWQgYnkgbWF0Y2hpbmcgdGhpcyBzdWJzdGl0dXRpb24KKyAgICAgKiBAcGFyYW0gb2xkUnVsZVZhbHVlIFRoZSB2YWx1ZSB0aGF0IHdhcyBwYXNzZWQgdG8gdGhlIHN1YnN0aXR1dGlvbgorICAgICAqIGJ5IHRoZSBydWxlIHRoYXQgb3ducyBpdAorICAgICAqIEByZXR1cm4gQSB0aGlyZCB2YWx1ZSBkZXJpdmVkIGZyb20gdGhlIG90aGVyIHR3bywgcmVwcmVzZW50aW5nIGEKKyAgICAgKiBwYXJ0aWFsIHBhcnNlIHJlc3VsdAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBkb3VibGUgY29tcG9zZVJ1bGVWYWx1ZShkb3VibGUgbmV3UnVsZVZhbHVlLCBkb3VibGUgb2xkUnVsZVZhbHVlKTsKKworICAgIC8qKgorICAgICAqIENhbGN1bGF0ZXMgYW4gdXBwZXIgYm91bmQgd2hlbiBzZWFyY2hpbmcgZm9yIGEgcnVsZSB0aGF0IG1hdGNoZXMKKyAgICAgKiB0aGlzIHN1YnN0aXR1dGlvbi4gIFJ1bGVzIHdpdGggYmFzZSB2YWx1ZXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsCisgICAgICogdG8gdXBwZXJCb3VuZCBhcmUgbm90IGNvbnNpZGVyZWQuCisgICAgICogQHBhcmFtIG9sZFVwcGVyQm91bmQgVGhlIGN1cnJlbnQgdXBwZXItYm91bmQgc2V0dGluZy4gIFRoZSBuZXcKKyAgICAgKiB1cHBlciBib3VuZCBjYW4ndCBiZSBhbnkgaGlnaGVyLgorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBkb3VibGUgY2FsY1VwcGVyQm91bmQoZG91YmxlIG9sZFVwcGVyQm91bmQpOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHNpbXBsZSBhY2Nlc3NvcnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBzdWJzdGl0dXRpb24ncyBwb3NpdGlvbiBpbiB0aGUgcnVsZSB0aGF0IG93bnMgaXQuCisgICAgICogQHJldHVybiBUaGUgc3Vic3RpdHV0aW9uJ3MgcG9zaXRpb24gaW4gdGhlIHJ1bGUgdGhhdCBvd25zIGl0LgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0UG9zKCkgeworICAgICAgICByZXR1cm4gcG9zOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGNoYXJhY3RlciB1c2VkIGluIHRoZSB0ZXh0dWFsIHJlcHJlc2VudGF0aW9uIG9mCisgICAgICogc3Vic3RpdHV0aW9ucyBvZiB0aGlzIHR5cGUuICBVc2VkIGJ5IHRvU3RyaW5nKCkuCisgICAgICogQHJldHVybiBUaGlzIHN1YnN0aXR1dGlvbidzIHRva2VuIGNoYXJhY3Rlci4KKyAgICAgKi8KKyAgICBhYnN0cmFjdCBjaGFyIHRva2VuQ2hhcigpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgaXMgYSBudWxsIHN1YnN0aXR1dGlvbi4gIChXZSBkaWRuJ3QgZG8gdGhpcworICAgICAqIHdpdGggaW5zdGFuY2VvZiBwYXJ0aWFsbHkgYmVjYXVzZSBpdCBjYXVzZXMgc291cmNlIGZpbGVzIHRvCisgICAgICogcHJvbGlmZXJhdGUgYW5kIHBhcnRpYWxseSBiZWNhdXNlIHdlIGhhdmUgdG8gcG9ydCB0aGlzIHRvIEMrKy4pCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgb2JqZWN0IGlzIGFuIGluc3RhbmNlIG9mIE51bGxTdWJzdGl0dXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc051bGxTdWJzdGl0dXRpb24oKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhpcyBpcyBhIG1vZHVsdXMgc3Vic3RpdHV0aW9uLiAgKFdlIGRpZG4ndCBkbyB0aGlzCisgICAgICogd2l0aCBpbnN0YW5jZW9mIHBhcnRpYWxseSBiZWNhdXNlIGl0IGNhdXNlcyBzb3VyY2UgZmlsZXMgdG8KKyAgICAgKiBwcm9saWZlcmF0ZSBhbmQgcGFydGlhbGx5IGJlY2F1c2Ugd2UgaGF2ZSB0byBwb3J0IHRoaXMgdG8gQysrLikKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBvYmplY3QgaXMgYW4gaW5zdGFuY2Ugb2YgTW9kdWx1c1N1YnN0aXR1dGlvbgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzTW9kdWx1c1N1YnN0aXR1dGlvbigpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KKworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBTYW1lVmFsdWVTdWJzdGl0dXRpb24KKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisvKioKKyAqIEEgc3Vic3RpdHV0aW9uIHRoYXQgcGFzc2VzIHRoZSB2YWx1ZSBwYXNzZWQgdG8gaXQgdGhyb3VnaCB1bmNoYW5nZWQuCisgKiBSZXByZXNlbnRlZCBieSA9PSBpbiBydWxlIGRlc2NyaXB0aW9ucy4KKyAqLworY2xhc3MgU2FtZVZhbHVlU3Vic3RpdHV0aW9uIGV4dGVuZHMgTkZTdWJzdGl0dXRpb24geworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdGFudHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBQdXRzIGEgY29weXJpZ2h0IGluIHRoZSAuY2xhc3MgZmlsZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHROb3RpY2UKKyAgICAgICAgPSAiQ29weXJpZ2h0IFx1MDBhOTE5OTctMTk5OCBJQk0gQ29ycC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdHJ1Y3Rpb24KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgU2FtZVZhbHVlU3Vic3R1dGlvbi4gIFRoaXMgZnVuY3Rpb24ganVzdCB1c2VzIHRoZQorICAgICAqIHN1cGVyY2xhc3MgY29uc3RydWN0b3IsIGJ1dCBpdCBwZXJmb3JtcyBhIGNoZWNrIHRoYXQgdGhpcworICAgICAqIHN1YnN0aXR1dGlvbiBkb2Vzbid0IGNhbGwgdGhlIHJ1bGUgc2V0IHRoYXQgb3ducyBpdCwgc2luY2UgdGhhdAorICAgICAqIHdvdWxkIGxlYWQgdG8gaW5maW5pdGUgcmVjdXJzaW9uLgorICAgICAqLworICAgIFNhbWVWYWx1ZVN1YnN0aXR1dGlvbihpbnQgcG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICBORlJ1bGVTZXQgcnVsZVNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGRlc2NyaXB0aW9uKSB7CisgICAgICAgIHN1cGVyKHBvcywgcnVsZVNldCwgZm9ybWF0dGVyLCBkZXNjcmlwdGlvbik7CisgICAgICAgIGlmIChkZXNjcmlwdGlvbi5lcXVhbHMoIj09IikpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIj09IGlzIG5vdCBhIGxlZ2FsIHRva2VuIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gZm9ybWF0dGluZworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgIm51bWJlciIgdW5jaGFuZ2VkLgorICAgICAqIEByZXR1cm4gIm51bWJlciIKKyAgICAgKi8KKyAgICBwdWJsaWMgbG9uZyB0cmFuc2Zvcm1OdW1iZXIobG9uZyBudW1iZXIpIHsKKyAgICAgICAgcmV0dXJuIG51bWJlcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zICJudW1iZXIiIHVuY2hhbmdlZC4KKyAgICAgKiBAcmV0dXJuICJudW1iZXIiCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSB0cmFuc2Zvcm1OdW1iZXIoZG91YmxlIG51bWJlcikgeworICAgICAgICByZXR1cm4gbnVtYmVyOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBwYXJzaW5nCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBuZXdSdWxlVmFsdWUgYW5kIGlnbm9yZXMgb2xkUnVsZVZhbHVlLiAoVGhlIHZhbHVlIHdlIGdvdAorICAgICAqIG1hdGNoaW5nIHRoZSBzdWJzdGl0dXRpb24gc3VwZXJzZWRlcyB0aGUgdmFsdWUgb2YgdGhlIHJ1bGUKKyAgICAgKiB0aGF0IG93bnMgdGhlIHN1YnN0aXR1dGlvbi4pCisgICAgICogQHBhcmFtIG5ld1J1bGVWYWx1ZSBUaGUgdmFsdWUgcmVzdWx0aW5nIGZyb20gbWF0Y2hpbmcgdGhlIHN1YnN0aXR1aW9uCisgICAgICogQHBhcmFtIG9sZFJ1bGVWYWx1ZSBUaGUgdmFsdWUgb2YgdGhlIHJ1bGUgY29udGFpbmluZyB0aGUKKyAgICAgKiBzdWJzdGl0dXRpb24uCisgICAgICogQHJldHVybiBuZXdSdWxlVmFsdWUKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIGNvbXBvc2VSdWxlVmFsdWUoZG91YmxlIG5ld1J1bGVWYWx1ZSwgZG91YmxlIG9sZFJ1bGVWYWx1ZSkgeworICAgICAgICByZXR1cm4gbmV3UnVsZVZhbHVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNhbWVWYWx1ZVN1YnN0aXR1dGlvbiBkb2Vzbid0IGNoYW5nZSB0aGUgdXBwZXIgYm91bmQuCisgICAgICogQHBhcmFtIG9sZFVwcGVyQm91bmQgVGhlIGN1cnJlbnQgdXBwZXIgYm91bmQuCisgICAgICogQHJldHVybiBvbGRVcHBlckJvdW5kCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSBjYWxjVXBwZXJCb3VuZChkb3VibGUgb2xkVXBwZXJCb3VuZCkgeworICAgICAgICByZXR1cm4gb2xkVXBwZXJCb3VuZDsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gc2ltcGxlIGFjY2Vzc29yCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogVGhlIHRva2VuIGNoYXJhY3RlciBmb3IgYSBTYW1lVmFsdWVTdWJzdGl0dXRpb24gaXMgPS4KKyAgICAgKiBAcmV0dXJuICc9JworICAgICAqLworICAgIGNoYXIgdG9rZW5DaGFyKCkgeworICAgICAgICByZXR1cm4gJz0nOworICAgIH0KK30KKworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBNdWx0aXBsaWVyU3Vic3RpdHV0aW9uCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLyoqCisgKiBBIHN1YnN0aXR1dGlvbiB0aGF0IGRpdmlkZXMgdGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQgYnkgdGhlIHJ1bGUncworICogZGl2aXNvciBhbmQgZm9ybWF0cyB0aGUgcXVvdGllbnQuICBSZXByZXNlbnRlZCBieSAmbHQ7Jmx0OyBpbiBub3JtYWwKKyAqIHJ1bGVzLgorICovCitjbGFzcyBNdWx0aXBsaWVyU3Vic3RpdHV0aW9uIGV4dGVuZHMgTkZTdWJzdGl0dXRpb24geworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdGFudHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBQdXRzIGEgY29weXJpZ2h0IGluIHRoZSAuY2xhc3MgZmlsZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHROb3RpY2UKKyAgICAgICAgPSAiQ29weXJpZ2h0IFx1MDBhOTE5OTctMTk5OCBJQk0gQ29ycC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBkYXRhIG1lbWJlcnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUaGUgZGl2aXNvciBvZiB0aGUgcnVsZSB0aGF0IG93bnMgdGhpcyBzdWJzdGl0dXRpb24uCisgICAgICovCisgICAgZG91YmxlIGRpdmlzb3I7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY29uc3RydWN0aW9uCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIE11bHRpcGxpZXJTdWJzdGl0dXRpb24uICBUaGlzIHVzZXMgdGhlIHN1cGVyY2xhc3MKKyAgICAgKiBjb25zdHJ1Y3RvciB0byBpbml0aWFsaXplIG1vc3QgbWVtYmVycywgYnV0IHRoaXMgc3Vic3RpdHV0aW9uCisgICAgICogYWxzbyBtYWludGFpbnMgaXRzIG93biBjb3B5IG9mIGl0cyBydWxlJ3MgZGl2aXNvci4KKyAgICAgKiBAcGFyYW0gcG9zIFRoZSBzdWJzdGl0dXRpb24ncyBwb3NpdGlvbiBpbiBpdHMgcnVsZSdzIHJ1bGUgdGV4dAorICAgICAqIEBwYXJhbSBkaXZpc29yIFRoZSBvd25pbmcgcnVsZSdzIGRpdmlzb3IKKyAgICAgKiBAcnVsZVNldCBUaGUgcnVsZVNldCB0aGlzIHN1YnN0aXR1dGlvbiB1c2VzIHRvIGZvcm1hdCBpdHMgcmVzdWx0CisgICAgICogQGZvcm1hdHRlciBUaGUgZm9ybWF0dGVyIHRoYXQgb3ducyB0aGlzIHN1YnN0aXR1dGlvbgorICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZGVzY3JpcHRpb24gZGVzY3JpYmluZyB0aGlzIHN1YnN0aXR1dGlvbgorICAgICAqLworICAgIE11bHRpcGxpZXJTdWJzdGl0dXRpb24oaW50IHBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBkaXZpc29yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgTkZSdWxlU2V0IHJ1bGVTZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGRlc2NyaXB0aW9uKSB7CisgICAgICAgIHN1cGVyKHBvcywgcnVsZVNldCwgZm9ybWF0dGVyLCBkZXNjcmlwdGlvbik7CisKKyAgICAgICAgLy8gdGhlIG93bmluZyBydWxlJ3MgZGl2aXNvciBhZmZlY3RzIHRoZSBiZWhhdmlvciBvZiB0aGlzCisgICAgICAgIC8vIHN1YnN0aXR1dGlvbi4gIFJhdGhlciB0aGFuIGtlZXBpbmcgYSBiYWNrLXBvaW50ZXIgdG8gdGhlCisgICAgICAgIC8vIHJ1bGUsIHdlIGtlZXAgYSBjb3B5IG9mIHRoZSBkaXZpc29yCisgICAgICAgIHRoaXMuZGl2aXNvciA9IGRpdmlzb3I7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgc3Vic3RpdHV0aW9uJ3MgZGl2aXNvciBiYXNlZCBvbiB0aGUgdmFsdWVzIHBhc3NlZCBpbi4KKyAgICAgKiBAcGFyYW0gcmFkaXggVGhlIHJhZGl4IG9mIHRoZSBkaXZpc29yLgorICAgICAqIEBwYXJhbSBleHBvbmVudCBUaGUgZXhwb25lbnQgb2YgdGhlIGRpdmlzb3IuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RGl2aXNvcihpbnQgcmFkaXgsIGludCBleHBvbmVudCkgeworICAgICAgICBkaXZpc29yID0gTWF0aC5wb3cocmFkaXgsIGV4cG9uZW50KTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gYm9pbGVycGxhdGUKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBBdWdtZW50cyB0aGUgc3VwZXJjbGFzcydzIGVxdWFscygpIGZ1bmN0aW9uIGJ5IGNvbXBhcmluZyBkaXZpc29ycy4KKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgb3RoZXIgc3Vic3RpdHV0aW9uCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB0d28gc3Vic3RpdHV0aW9ucyBhcmUgZnVuY3Rpb25hbGx5IGVxdWFsCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCB0aGF0KSB7CisgICAgICAgIGlmIChzdXBlci5lcXVhbHModGhhdCkpIHsKKyAgICAgICAgICAgIE11bHRpcGxpZXJTdWJzdGl0dXRpb24gdGhhdDIgPSAoTXVsdGlwbGllclN1YnN0aXR1dGlvbil0aGF0OworCisgICAgICAgICAgICByZXR1cm4gZGl2aXNvciA9PSB0aGF0Mi5kaXZpc29yOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGZvcm1hdHRpbmcKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBEaXZpZGVzIHRoZSBudW1iZXIgYnkgdGhlIHJ1bGUncyBkaXZpc29yIGFuZCByZXR1cm5zIHRoZSBxdW90aWVudC4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkLgorICAgICAqIEByZXR1cm4gIm51bWJlciIgZGl2aWRlZCBieSB0aGUgcnVsZSdzIGRpdmlzb3IKKyAgICAgKi8KKyAgICBwdWJsaWMgbG9uZyB0cmFuc2Zvcm1OdW1iZXIobG9uZyBudW1iZXIpIHsKKyAgICAgICAgcmV0dXJuIChsb25nKU1hdGguZmxvb3IobnVtYmVyIC8gZGl2aXNvcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGl2aWRlcyB0aGUgbnVtYmVyIGJ5IHRoZSBydWxlJ3MgZGl2aXNvciBhbmQgcmV0dXJucyB0aGUgcXVvdGllbnQuCisgICAgICogVGhpcyBpcyBhbiBpbnRlZ3JhbCBxdW90aWVudCBpZiB3ZSdyZSBmaWxsaW5nIGluIHRoZSBzdWJzdGl0dXRpb24KKyAgICAgKiB1c2luZyBhbm90aGVyIHJ1bGUgc2V0LCBidXQgaXQncyB0aGUgZnVsbCBxdW90aWVudCAoaW50ZWdyYWwgYW5kCisgICAgICogZnJhY3Rpb25hbCBwYXJ0cykgaWYgd2UncmUgZmlsbGluZyBpbiB0aGUgc3Vic3RpdHV0aW9uIHVzaW5nCisgICAgICogYSBEZWNpbWFsRm9ybWF0LiAgKFRoaXMgYWxsb3dzIHRoaW5ncyBzdWNoIGFzICIxLjIgbWlsbGlvbiIuKQorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQKKyAgICAgKiBAcmV0dXJuICJudW1iZXIiIGRpdmlkZWQgYnkgdGhlIHJ1bGUncyBkaXZpc29yCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSB0cmFuc2Zvcm1OdW1iZXIoZG91YmxlIG51bWJlcikgeworICAgICAgICBpZiAocnVsZVNldCA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyIC8gZGl2aXNvcjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBNYXRoLmZsb29yKG51bWJlciAvIGRpdmlzb3IpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHBhcnNpbmcKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIG5ld1J1bGVWYWx1ZSB0aW1lcyB0aGUgZGl2aXNvci4gIElnbm9yZXMgb2xkUnVsZVZhbHVlLgorICAgICAqIChUaGUgcmVzdWx0IG9mIG1hdGNoaW5nIGEgPDwgc3Vic3RpdHV0aW9uIHN1cGVyc2VkZXMgdGhlIGJhc2UKKyAgICAgKiB2YWx1ZSBvZiB0aGUgcnVsZSB0aGF0IGNvbnRhaW5zIGl0LikKKyAgICAgKiBAcGFyYW0gbmV3UnVsZVZhbHVlIFRoZSByZXN1bHQgb2YgbWF0Y2hpbmcgdGhlIHN1YnN0aXR1dGlvbgorICAgICAqIEBwYXJhbSBvbGRSdWxlVmFsdWUgVGhlIGJhc2UgdmFsdWUgb2YgdGhlIHJ1bGUgY29udGFpbmluZyB0aGUKKyAgICAgKiBzdWJzdGl0dXRpb24KKyAgICAgKiBAcmV0dXJuIG5ld1J1bGVWYWx1ZSAqIGRpdmlzb3IKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIGNvbXBvc2VSdWxlVmFsdWUoZG91YmxlIG5ld1J1bGVWYWx1ZSwgZG91YmxlIG9sZFJ1bGVWYWx1ZSkgeworICAgICAgICByZXR1cm4gbmV3UnVsZVZhbHVlICogZGl2aXNvcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB1cHBlciBib3VuZCBkb3duIHRvIHRoZSBydWxlJ3MgZGl2aXNvci4KKyAgICAgKiBAcGFyYW0gb2xkVXBwZXJCb3VuZCBJZ25vcmVkLgorICAgICAqIEByZXR1cm4gVGhlIHJ1bGUncyBkaXZpc29yLgorICAgICAqLworICAgIHB1YmxpYyBkb3VibGUgY2FsY1VwcGVyQm91bmQoZG91YmxlIG9sZFVwcGVyQm91bmQpIHsKKyAgICAgICAgcmV0dXJuIGRpdmlzb3I7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHNpbXBsZSBhY2Nlc3NvcgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFRoZSB0b2tlbiBjaGFyYWN0ZXIgZm9yIGEgbXVsdGlwbGllciBzdWJzdGl0dXRpb24gaXMgJmx0Oy4KKyAgICAgKiBAcmV0dXJuICcmbHQ7JworICAgICAqLworICAgIGNoYXIgdG9rZW5DaGFyKCkgeworICAgICAgICByZXR1cm4gJzwnOworICAgIH0KK30KKworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBNb2R1bHVzU3Vic3RpdHV0aW9uCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLyoqCisgKiBBIHN1YnN0aXR1dGlvbiB0aGF0IGRpdmlkZXMgdGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQgYnkgdGhlIGl0cyBydWxlJ3MKKyAqIGRpdmlzb3IgYW5kIGZvcm1hdHMgdGhlIHJlbWFpbmRlci4gIFJlcHJlc2VudGVkIGJ5ICImZ3Q7Jmd0OyIgaW4gYQorICogcmVndWxhciBydWxlLgorICovCitjbGFzcyBNb2R1bHVzU3Vic3RpdHV0aW9uIGV4dGVuZHMgTkZTdWJzdGl0dXRpb24geworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdGFudHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBQdXRzIGEgY29weXJpZ2h0IGluIHRoZSAuY2xhc3MgZmlsZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHROb3RpY2UKKyAgICAgICAgPSAiQ29weXJpZ2h0IFx1MDBhOTE5OTctMTk5OCBJQk0gQ29ycC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBkYXRhIG1lbWJlcnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUaGUgZGl2aXNvciBvZiB0aGUgcnVsZSBvd25pbmcgdGhpcyBzdWJzdGl0dXRpb24KKyAgICAgKi8KKyAgICBkb3VibGUgZGl2aXNvcjsKKworICAgIC8qKgorICAgICAqIElmIHRoaXMgaXMgYSAmZ3Q7Jmd0OyZndDsgc3Vic3RpdHV0aW9uLCB0aGUgcnVsZSB0byB1c2UgdG8gZm9ybWF0CisgICAgICogdGhlIHN1YnN0aXR1dGlvbiB2YWx1ZS4gIE90aGVyd2lzZSwgbnVsbC4KKyAgICAgKi8KKyAgICBORlJ1bGUgcnVsZVRvVXNlOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNvbnN0cnVjdGlvbgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBNb2R1bHVzU3Vic3R1dGlvbi4gIEluIGFkZGl0aW9uIHRvIHRoZSBpbmhlcml0ZWQKKyAgICAgKiBtZW1iZXJzLCBhIE1vZHVsdXNTdWJzdGl0dXRpb24ga2VlcHMgdHJhY2sgb2YgdGhlIGRpdmlzb3Igb2YgdGhlCisgICAgICogcnVsZSB0aGF0IG93bnMgaXQsIGFuZCBtYXkgYWxzbyBrZWVwIGEgcmVmZXJlbmNlIHRvIHRoZSBydWxlCisgICAgICogdGhhdCBwcmVjZWRlcyB0aGUgcnVsZSBjb250YWluaW5nIHRoaXMgc3Vic3RpdHV0aW9uIGluIHRoZSBydWxlCisgICAgICogc2V0J3MgcnVsZSBsaXN0LgorICAgICAqIEBwYXJhbSBwb3MgVGhlIHN1YnN0aXR1dGlvbidzIHBvc2l0aW9uIGluIGl0cyBydWxlJ3MgcnVsZSB0ZXh0CisgICAgICogQHBhcmFtIGRpdmlzb3IgVGhlIGRpdmlzb3Igb2YgdGhlIHJ1bGUgdGhhdCBvd25zIHRoaXMgc3Vic3RpdHV0aW9uCisgICAgICogQHBhcmFtIHJ1bGVQcmVkZWNlc3NvciBUaGUgcnVsZSB0aGF0IHByZWNlZGVzIHRoaXMgc3Vic3RpdHV0aW9uJ3MKKyAgICAgKiBydWxlIGluIGl0cyBydWxlIHNldCdzIHJ1bGUgbGlzdAorICAgICAqIEBwYXJhbSBmb3JtYXR0ZXIgVGhlIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBvd25pbmcgdGhpcyBzdWJzdGl0dXRpb24KKyAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb24gVGhlIGRlc2NyaXB0aW9uIGZvciB0aGlzIHN1YnN0aXR1dGlvbgorICAgICAqLworICAgIE1vZHVsdXNTdWJzdGl0dXRpb24oaW50IHBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBkaXZpc29yLAorICAgICAgICAgICAgICAgICAgICAgICAgTkZSdWxlIHJ1bGVQcmVkZWNlc3NvciwKKyAgICAgICAgICAgICAgICAgICAgICAgIE5GUnVsZVNldCBydWxlU2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICBzdXBlcihwb3MsIHJ1bGVTZXQsIGZvcm1hdHRlciwgZGVzY3JpcHRpb24pOworCisgICAgICAgIC8vIHRoZSBvd25pbmcgcnVsZSdzIGRpdmlzb3IgY29udHJvbHMgdGhlIGJlaGF2aW9yIG9mIHRoaXMKKyAgICAgICAgLy8gc3Vic3RpdHV0aW9uOiByYXRoZXIgdGhhbiBrZWVwaW5nIGEgYmFja3BvaW50ZXIgdG8gdGhlIHJ1bGUsCisgICAgICAgIC8vIHdlIGtlZXAgYSBjb3B5IG9mIHRoZSBkaXZpc29yCisgICAgICAgIHRoaXMuZGl2aXNvciA9IGRpdmlzb3I7CisKKyAgICAgICAgLy8gdGhlID4+PiB0b2tlbiBkb2Vzbid0IGFsdGVyIGhvdyB0aGlzIHN1YnN0aXR1aW9uIGNhbGN1bGF0ZXMgdGhlCisgICAgICAgIC8vIHZhbHVlcyBpdCB1c2VzIGZvciBmb3JtYXR0aW5nIGFuZCBwYXJzaW5nLCBidXQgaXQgY2hhbmdlcworICAgICAgICAvLyB3aGF0J3MgZG9uZSB3aXRoIHRoYXQgdmFsdWUgYWZ0ZXIgaXQncyBvYnRhaW5lZDogPj4+IHNob3J0LQorICAgICAgICAvLyBjaXJjdWl0cyB0aGUgcnVsZS1zZWFyY2ggcHJvY2VzcyBhbmQgZ29lcyBzdHJhaWdodCB0byB0aGUKKyAgICAgICAgLy8gc3BlY2lmaWVkIHJ1bGUgdG8gZm9ybWF0IHRoZSBzdWJzdGl0dXRpb24gdmFsdWUKKyAgICAgICAgaWYgKGRlc2NyaXB0aW9uLmVxdWFscygiPj4+IikpIHsKKyAgICAgICAgICAgIHJ1bGVUb1VzZSA9IHJ1bGVQcmVkZWNlc3NvcjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJ1bGVUb1VzZSA9IG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNYWtlcyB0aGUgc3Vic3RpdHV0aW9uJ3MgZGl2aXNvciBjb25mb3JtIHRvIHRoYXQgb2YgdGhlIHJ1bGUKKyAgICAgKiB0aGF0IG93bnMgaXQuICBVc2VkIHdoZW4gdGhlIGRpdmlzb3IgaXMgZGV0ZXJtaW5lZCBhZnRlciBjcmVhdGlvbi4KKyAgICAgKiBAcGFyYW0gcmFkaXggVGhlIHJhZGl4IG9mIHRoZSBkaXZzb3IuCisgICAgICogQHBhcmFtIGV4cG9uZW50IFRoZSBleHBvbmVudCBvZiB0aGUgZGl2aXNvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXREaXZpc29yKGludCByYWRpeCwgaW50IGV4cG9uZW50KSB7CisgICAgICAgIGRpdmlzb3IgPSBNYXRoLnBvdyhyYWRpeCwgZXhwb25lbnQpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBib2lsZXJwbGF0ZQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEF1Z21lbnRzIHRoZSBpbmhlcml0ZWQgZXF1YWxzKCkgZnVuY3Rpb24gYnkgY29tcGFyaW5nIGRpdmlzb3JzIGFuZAorICAgICAqIHJ1bGVUb1VzZS4KKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgb3RoZXIgc3Vic3RpdHV0aW9uCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB0d28gc3Vic3RpdHV0aW9ucyBhcmUgZnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IHRoYXQpIHsKKyAgICAgICAgaWYgKHN1cGVyLmVxdWFscyh0aGF0KSkgeworICAgICAgICAgICAgTW9kdWx1c1N1YnN0aXR1dGlvbiB0aGF0MiA9IChNb2R1bHVzU3Vic3RpdHV0aW9uKXRoYXQ7CisKKyAgICAgICAgICAgIHJldHVybiBkaXZpc29yID09IHRoYXQyLmRpdmlzb3I7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gZm9ybWF0dGluZworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIElmIHRoaXMgaXMgYSAmZ3Q7Jmd0OyZndDsgc3Vic3RpdHV0aW9uLCB1c2UgcnVsZVRvVXNlIHRvIGZpbGwgaW4KKyAgICAgKiB0aGUgc3Vic3RpdHV0aW9uLiAgT3RoZXJ3aXNlLCBqdXN0IHVzZSB0aGUgc3VwZXJjbGFzcyBmdW5jdGlvbi4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkCisgICAgICogQHRvSW5zZXJ0SW50byBUaGUgc3RyaW5nIHRvIGluc2VydCB0aGUgcmVzdWx0IG9mIHRoaXMgc3Vic3RpdHV0aW9uCisgICAgICogaW50bworICAgICAqIEBwYXJhbSBwb3MgVGhlIHBvc2l0aW9uIG9mIHRoZSBydWxlIHRleHQgaW4gdG9JbnNlcnRJbnRvCisgICAgICovCisgICAgcHVibGljIHZvaWQgZG9TdWJzdGl0dXRpb24obG9uZyBudW1iZXIsIFN0cmluZ0J1ZmZlciB0b0luc2VydEludG8sIGludCBwb3MpIHsKKyAgICAgICAgLy8gaWYgdGhpcyBpc24ndCBhID4+PiBzdWJzdGl0dXRpb24sIGp1c3QgdXNlIHRoZSBpbmhlcml0ZWQgdmVyc2lvbgorICAgICAgICAvLyBvZiB0aGlzIGZ1bmN0aW9uICh3aGljaCB1c2VzIGVpdGhlciBhIHJ1bGUgc2V0IG9yIGEgRGVjaW1hbEZvcm1hdAorICAgICAgICAvLyB0byBmb3JtYXQgaXRzIHN1YnN0aXR1dGlvbiB2YWx1ZSkKKyAgICAgICAgaWYgKHJ1bGVUb1VzZSA9PSBudWxsKSB7CisgICAgICAgICAgICBzdXBlci5kb1N1YnN0aXR1dGlvbihudW1iZXIsIHRvSW5zZXJ0SW50bywgcG9zKTsKKworICAgICAgICAvLyBhID4+PiBzdWJzdGl0dXRpb24gZ29lcyBzdHJhaWdodCB0byBhIHBhcnRpY3VsYXIgcnVsZSB0bworICAgICAgICAvLyBmb3JtYXQgdGhlIHN1YnN0aXR1dGlvbiB2YWx1ZQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9uZyBudW1iZXJUb0Zvcm1hdCA9IHRyYW5zZm9ybU51bWJlcihudW1iZXIpOworICAgICAgICAgICAgcnVsZVRvVXNlLmRvRm9ybWF0KG51bWJlclRvRm9ybWF0LCB0b0luc2VydEludG8sIHBvcyArIHRoaXMucG9zKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIElmIHRoaXMgaXMgYSAmZ3Q7Jmd0OyZndDsgc3Vic3RpdHV0aW9uLCB1c2UgcnVsZVRvVXNlIHRvIGZpbGwgaW4KKyAgICAgKiB0aGUgc3Vic3RpdHV0aW9uLiAgT3RoZXJ3aXNlLCBqdXN0IHVzZSB0aGUgc3VwZXJjbGFzcyBmdW5jdGlvbi4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkCisgICAgICogQHRvSW5zZXJ0SW50byBUaGUgc3RyaW5nIHRvIGluc2VydCB0aGUgcmVzdWx0IG9mIHRoaXMgc3Vic3RpdHV0aW9uCisgICAgICogaW50bworICAgICAqIEBwYXJhbSBwb3MgVGhlIHBvc2l0aW9uIG9mIHRoZSBydWxlIHRleHQgaW4gdG9JbnNlcnRJbnRvCisgICAgICovCisgICAgcHVibGljIHZvaWQgZG9TdWJzdGl0dXRpb24oZG91YmxlIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvSW5zZXJ0SW50bywgaW50IHBvcykgeworICAgICAgICAvLyBpZiB0aGlzIGlzbid0IGEgPj4+IHN1YnN0aXR1dGlvbiwganVzdCB1c2UgdGhlIGluaGVyaXRlZCB2ZXJzaW9uCisgICAgICAgIC8vIG9mIHRoaXMgZnVuY3Rpb24gKHdoaWNoIHVzZXMgZWl0aGVyIGEgcnVsZSBzZXQgb3IgYSBEZWNpbWFsRm9ybWF0CisgICAgICAgIC8vIHRvIGZvcm1hdCBpdHMgc3Vic3RpdHV0aW9uIHZhbHVlKQorICAgICAgICBpZiAocnVsZVRvVXNlID09IG51bGwpIHsKKyAgICAgICAgICAgIHN1cGVyLmRvU3Vic3RpdHV0aW9uKG51bWJlciwgdG9JbnNlcnRJbnRvLCBwb3MpOworCisgICAgICAgIC8vIGEgPj4+IHN1YnN0aXR1dGlvbiBnb2VzIHN0cmFpZ2h0IHRvIGEgcGFydGljdWxhciBydWxlIHRvCisgICAgICAgIC8vIGZvcm1hdCB0aGUgc3Vic3RpdHV0aW9uIHZhbHVlCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkb3VibGUgbnVtYmVyVG9Gb3JtYXQgPSB0cmFuc2Zvcm1OdW1iZXIobnVtYmVyKTsKKworICAgICAgICAgICAgcnVsZVRvVXNlLmRvRm9ybWF0KG51bWJlclRvRm9ybWF0LCB0b0luc2VydEludG8sIHBvcyArIHRoaXMucG9zKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIERpdmlkZXMgdGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQgYnkgdGhlIHJ1bGUncyBkaXZpc29yIGFuZAorICAgICAqIHJldHVybnMgdGhlIHJlbWFpbmRlci4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkCisgICAgICogQHJldHVybiAibnVtYmVyIiBtb2QgZGl2aXNvcgorICAgICAqLworICAgIHB1YmxpYyBsb25nIHRyYW5zZm9ybU51bWJlcihsb25nIG51bWJlcikgeworICAgICAgICByZXR1cm4gKGxvbmcpTWF0aC5mbG9vcihudW1iZXIgJSBkaXZpc29yKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEaXZpZGVzIHRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkIGJ5IHRoZSBydWxlJ3MgZGl2aXNvciBhbmQKKyAgICAgKiByZXR1cm5zIHRoZSByZW1haW5kZXIuCisgICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZAorICAgICAqIEByZXR1cm4gIm51bWJlciIgbW9kIGRpdmlzb3IKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIHRyYW5zZm9ybU51bWJlcihkb3VibGUgbnVtYmVyKSB7CisgICAgICAgIHJldHVybiBNYXRoLmZsb29yKG51bWJlciAlIGRpdmlzb3IpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBwYXJzaW5nCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogSWYgdGhpcyBpcyBhICZndDsmZ3Q7Jmd0OyBzdWJzdGl0dXRpb24sIG1hdGNoIG9ubHkgYWdhaW5zdCBydWxlVG9Vc2UuCisgICAgICogT3RoZXJ3aXNlLCB1c2UgdGhlIHN1cGVyY2xhc3MgZnVuY3Rpb24uCisgICAgICogQHBhcmFtIHRleHQgVGhlIHN0cmluZyB0byBwYXJzZQorICAgICAqIEBwYXJhbSBwYXJzZVBvc2l0aW9uIElnbm9yZWQgb24gZW50cnksIHVwZGF0ZWQgb24gZXhpdCB0byBwb2ludCB0bworICAgICAqIHRoZSBmaXJzdCB1bm1hdGNoZWQgY2hhcmFjdGVyLgorICAgICAqIEBwYXJhbSBiYXNlVmFsdWUgVGhlIHBhcnRpYWwgcGFyc2UgcmVzdWx0IHByaW9yIHRvIGNhbGxpbmcgdGhpcworICAgICAqIHJvdXRpbmUuCisgICAgICovCisgICAgcHVibGljIE51bWJlciBkb1BhcnNlKFN0cmluZyB0ZXh0LCBQYXJzZVBvc2l0aW9uIHBhcnNlUG9zaXRpb24sIGRvdWJsZSBiYXNlVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgdXBwZXJCb3VuZCwgYm9vbGVhbiBsZW5pZW50UGFyc2UpIHsKKyAgICAgICAgLy8gaWYgdGhpcyBpc24ndCBhID4+PiBzdWJzdGl0dXRpb24sIHdlIGNhbiBqdXN0IHVzZSB0aGUKKyAgICAgICAgLy8gaW5oZXJpdGVkIHBhcnNlKCkgcm91dGluZSB0byBkbyB0aGUgcGFyc2luZworICAgICAgICBpZiAocnVsZVRvVXNlID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBzdXBlci5kb1BhcnNlKHRleHQsIHBhcnNlUG9zaXRpb24sIGJhc2VWYWx1ZSwgdXBwZXJCb3VuZCwgbGVuaWVudFBhcnNlKTsKKworICAgICAgICAvLyBidXQgaWYgaXQgSVMgYSA+Pj4gc3Vic3RpdHV0aW9uLCB3ZSBoYXZlIHRvIGRvIGl0IGhlcmU6IHdlCisgICAgICAgIC8vIHVzZSB0aGUgc3BlY2lmaWMgcnVsZSdzIGRvUGFyc2UoKSBtZXRob2QsIGFuZCB0aGVuIHdlIGhhdmUgdG8KKyAgICAgICAgLy8gZG8gc29tZSBvZiB0aGUgb3RoZXIgd29yayBvZiBORlJ1bGVTZXQucGFyc2UoKQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgTnVtYmVyIHRlbXBSZXN1bHQgPSBydWxlVG9Vc2UuZG9QYXJzZSh0ZXh0LCBwYXJzZVBvc2l0aW9uLCBmYWxzZSwgdXBwZXJCb3VuZCk7CisKKyAgICAgICAgICAgIGlmIChwYXJzZVBvc2l0aW9uLmdldEluZGV4KCkgIT0gMCkgeworICAgICAgICAgICAgICAgIGRvdWJsZSByZXN1bHQgPSB0ZW1wUmVzdWx0LmRvdWJsZVZhbHVlKCk7CisKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBjb21wb3NlUnVsZVZhbHVlKHJlc3VsdCwgYmFzZVZhbHVlKTsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IChsb25nKXJlc3VsdCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IExvbmcoKGxvbmcpcmVzdWx0KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IERvdWJsZShyZXN1bHQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRlbXBSZXN1bHQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBoaWdoZXN0IG11bHRpcGxlIG9mIHRoZSBydWxlJ3MgZGl2aXNvciB0aGF0IGl0cyBsZXNzCisgICAgICogdGhhbiBvciBlcXVhbCB0byBvbGRSdWxlVmFsdWUsIHBsdXMgbmV3UnVsZVZhbHVlLiAgKFRoZSByZXN1bHQKKyAgICAgKiBpcyB0aGUgc3VtIG9mIHRoZSByZXN1bHQgb2YgcGFyc2luZyB0aGUgc3Vic3RpdHV0aW9uIHBsdXMgdGhlCisgICAgICogYmFzZSB2YWx1ZW9mIHRoZSBydWxlIGNvbnRhaW5pbmcgdGhlIHN1YnN0aXR1dGlvbiwgYnV0IGlmIHRoZQorICAgICAqIG93bmluZyBydWxlJ3MgYmFzZSB2YWx1ZSBpc24ndCBhbiBldmVuIG11bHRpcGxlIG9mIGl0cyBkaXZpc29yLAorICAgICAqIHdlIGhhdmUgdG8gcm91bmQgaXQgZG93biB0byBhIG11bHRpcGxlIG9mIHRoZSBkaXZpc29yLCBvciB3ZQorICAgICAqIGdldCB1bndhbnRlZCBkaWdpdHMgaW4gdGhlIHJlc3VsdC4pCisgICAgICogQHBhcmFtIG5ld1J1bGVWYWx1ZSBUaGUgcmVzdWx0IG9mIHBhcnNpbmcgdGhlIHN1YnN0aXR1dGlvbgorICAgICAqIEBwYXJhbSBvbGRSdWxlVmFsdWUgVGhlIGJhc2UgdmFsdWUgb2YgdGhlIHJ1bGUgY29udGFpbmluZyB0aGUKKyAgICAgKiBzdWJzdGl0dXRpb24KKyAgICAgKiBAcmV0dXJuIChvbGRSdWxlVmFsdWUgLSAob2xkUnVsZVZhbHVlICUgZGl2aXNvcikpICsgbmV3UnVsZVZhbHVlCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSBjb21wb3NlUnVsZVZhbHVlKGRvdWJsZSBuZXdSdWxlVmFsdWUsIGRvdWJsZSBvbGRSdWxlVmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIChvbGRSdWxlVmFsdWUgLSAob2xkUnVsZVZhbHVlICUgZGl2aXNvcikpICsgbmV3UnVsZVZhbHVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHVwcGVyIGJvdW5kIGRvd24gdG8gdGhlIG93bmluZyBydWxlJ3MgZGl2aXNvcgorICAgICAqIEBwYXJhbSBvbGRVcHBlckJvdW5kIElnbm9yZWQKKyAgICAgKiBAcmV0dXJuIFRoZSBvd25pbmcgcnVsZSdzIGR2aXNvcgorICAgICAqLworICAgIHB1YmxpYyBkb3VibGUgY2FsY1VwcGVyQm91bmQoZG91YmxlIG9sZFVwcGVyQm91bmQpIHsKKyAgICAgICAgcmV0dXJuIGRpdmlzb3I7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHNpbXBsZSBhY2Nlc3NvcnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUuICBUaGlzIF9pc18gYSBNb2R1bHVzU3Vic3RpdHV0aW9uLgorICAgICAqIEByZXR1cm4gdHJ1ZQorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzTW9kdWx1c1N1YnN0aXR1dGlvbigpIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlIHRva2VuIGNoYXJhY3RlciBvZiBhIE1vZHVsdXNTdWJzdGl0dXRpb24gaXMgJmd0Oy4KKyAgICAgKiBAcmV0dXJuICcmZ3Q7JworICAgICAqLworICAgIGNoYXIgdG9rZW5DaGFyKCkgeworICAgICAgICByZXR1cm4gJz4nOworICAgIH0KK30KKworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBJbnRlZ3JhbFBhcnRTdWJzdGl0dXRpb24KKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisvKioKKyAqIEEgc3Vic3RpdHV0aW9uIHRoYXQgZm9ybWF0cyB0aGUgbnVtYmVyJ3MgaW50ZWdyYWwgcGFydC4gIFRoaXMgaXMKKyAqIHJlcHJlc2VudGVkIGJ5ICZsdDsmbHQ7IGluIGEgZnJhY3Rpb24gcnVsZS4KKyAqLworY2xhc3MgSW50ZWdyYWxQYXJ0U3Vic3RpdHV0aW9uIGV4dGVuZHMgTkZTdWJzdGl0dXRpb24geworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdGFudHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBQdXRzIGEgY29weXJpZ2h0IGluIHRoZSAuY2xhc3MgZmlsZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHROb3RpY2UKKyAgICAgICAgPSAiQ29weXJpZ2h0IFx1MDBhOTE5OTctMTk5OCBJQk0gQ29ycC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdHJ1Y3Rpb24KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGFuIEludGVncmFsUGFydFN1YnN0aXR1dGlvbi4gIFRoaXMganVzdCBjYWxscworICAgICAqIHRoZSBzdXBlcmNsYXNzIGNvbnN0cnVjdG9yLgorICAgICAqLworICAgIEludGVncmFsUGFydFN1YnN0aXR1dGlvbihpbnQgcG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORlJ1bGVTZXQgcnVsZVNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGRlc2NyaXB0aW9uKSB7CisgICAgICAgIHN1cGVyKHBvcywgcnVsZVNldCwgZm9ybWF0dGVyLCBkZXNjcmlwdGlvbik7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGZvcm1hdHRpbmcKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBudW1iZXIncyBpbnRlZ3JhbCBwYXJ0LiAoRm9yIGEgbG9uZywgdGhhdCdzIGp1c3QgdGhlCisgICAgICogbnVtYmVyIHVuY2hhbmdlZC4pCisgICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZAorICAgICAqIEByZXR1cm4gIm51bWJlciIgdW5jaGFuZ2VkCisgICAgICovCisgICAgcHVibGljIGxvbmcgdHJhbnNmb3JtTnVtYmVyKGxvbmcgbnVtYmVyKSB7CisgICAgICAgIHJldHVybiBudW1iZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnVtYmVyJ3MgaW50ZWdyYWwgcGFydC4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBpbnRlZ3JhbCBwYXJ0IG9mIHRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkCisgICAgICogQHJldHVybiBmbG9vcihudW1iZXIpCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSB0cmFuc2Zvcm1OdW1iZXIoZG91YmxlIG51bWJlcikgeworICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihudW1iZXIpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBwYXJzaW5nCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgc3VtIG9mIHRoZSByZXN1bHQgb2YgcGFyc2luZyB0aGUgc3Vic3RpdHV0aW9uIGFuZCB0aGUKKyAgICAgKiBvd25pbmcgcnVsZSdzIGJhc2UgdmFsdWUuICAoVGhlIG93bmluZyBydWxlLCBhdCBiZXN0LCBoYXMgYW4KKyAgICAgKiBpbnRlZ3JhbC1wYXJ0IHN1YnN0aXR1dGlvbiBhbmQgYSBmcmFjdGlvbmFsLXBhcnQgc3Vic3RpdHV0aW9uLAorICAgICAqIHNvIHdlIGNhbiBzYWZlbHkganVzdCBhZGQgdGhlbS4pCisgICAgICogQHBhcmFtIG5ld1J1bGVWYWx1ZSBUaGUgcmVzdWx0IG9mIG1hdGNoaW5nIHRoZSBzdWJzdGl0dXRpb24KKyAgICAgKiBAcGFyYW0gb2xkUnVsZVZhbHVlIFRoZSBwYXJ0aWFsIHJlc3VsdCBvZiB0aGUgcGFyc2UgcHJpb3IgdG8KKyAgICAgKiBjYWxsaW5nIHRoaXMgZnVuY3Rpb24KKyAgICAgKiBAcmV0dXJuIG9sZFJ1bGVWYWx1ZSArIG5ld1J1bGVWYWx1ZQorICAgICAqLworICAgIHB1YmxpYyBkb3VibGUgY29tcG9zZVJ1bGVWYWx1ZShkb3VibGUgbmV3UnVsZVZhbHVlLCBkb3VibGUgb2xkUnVsZVZhbHVlKSB7CisgICAgICAgIHJldHVybiBuZXdSdWxlVmFsdWUgKyBvbGRSdWxlVmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQW4gSW50ZWdyYWxQYXJ0U3Vic3RpdHV0aW9uIHNldHMgdGhlIHVwcGVyIGJvdW5kIGJhY2sgdXAgc28gYWxsCisgICAgICogcG90ZW50aWFsbHkgbWF0Y2hpbmcgcnVsZXMgYXJlIGNvbnNpZGVyZWQuCisgICAgICogQHBhcmFtIG9sZFVwcGVyQm91bmQgSWdub3JlZAorICAgICAqIEByZXR1cm4gRG91YmxlLk1BWF9WQUxVRQorICAgICAqLworICAgIHB1YmxpYyBkb3VibGUgY2FsY1VwcGVyQm91bmQoZG91YmxlIG9sZFVwcGVyQm91bmQpIHsKKyAgICAgICAgcmV0dXJuIERvdWJsZS5NQVhfVkFMVUU7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHNpbXBsZSBhY2Nlc3NvcgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEFuIEludGVncmFsUGFydFN1YnN0aXR1dGlvbidzIHRva2VuIGNoYXJhY3RlciBpcyAmbHQ7CisgICAgICogQHJldHVybiAnJmx0OycKKyAgICAgKi8KKyAgICBjaGFyIHRva2VuQ2hhcigpIHsKKyAgICAgICAgcmV0dXJuICc8JzsKKyAgICB9Cit9CisKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gRnJhY3Rpb25hbFBhcnRTdWJzdGl0dXRpb24KKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisvKioKKyAqIEEgc3Vic3RpdHV0aW9uIHRoYXQgZm9ybWF0cyB0aGUgZnJhY3Rpb25hbCBwYXJ0IG9mIGEgbnVtYmVyLiAgVGhpcyBpcworICogcmVwcmVzZW50ZWQgYnkgJmd0OyZndDsgaW4gYSBmcmFjdGlvbiBydWxlLgorICovCitjbGFzcyBGcmFjdGlvbmFsUGFydFN1YnN0aXR1dGlvbiBleHRlbmRzIE5GU3Vic3RpdHV0aW9uIHsKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY29uc3RhbnRzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUHV0cyBhIGNvcHlyaWdodCBpbiB0aGUgLmNsYXNzIGZpbGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0Tm90aWNlCisgICAgICAgID0gIkNvcHlyaWdodCBcdTAwYTkxOTk3LTE5OTggSUJNIENvcnAuICBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gZGF0YSBtZW1iZXJzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogdHJ1ZSBpZiB0aGlzIHN1YnN0aXR1dGlvbiBzaG91bGQgaGF2ZSB0aGUgZGVmYXVsdCAiYnkgZGlnaXRzIgorICAgICAqIGJlaGF2aW9yLCBmYWxzZSBvdGhlcndpc2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gYnlEaWdpdHMgPSBmYWxzZTsKKworICAgIC8qKgorICAgICAqIHRydWUgaWYgd2UgYXV0b21hdGljYWxseSBpbnNlcnQgc3BhY2VzIHRvIHNlcGFyYXRlIG5hbWVzIG9mIGRpZ2l0cworICAgICAqIHNldCB0byBmYWxzZSBieSAnPj4+JyBpbiBmcmFjdGlvbiBydWxlcywgdXNlZCBieSBUaGFpLgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiB1c2VTcGFjZXMgPSB0cnVlOworCisgICAgLyoqCisgICAgICogVGhlIGxhcmdlc3QgbnVtYmVyIG9mIGRpZ2l0cyBhZnRlciB0aGUgZGVjaW1hbCBwb2ludCB0aGF0IHRoaXMKKyAgICAgKiBvYmplY3Qgd2lsbCBzaG93IGluICJieSBkaWdpdHMiIG1vZGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFYREVDSU1BTERJR0lUUyA9IDg7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY29uc3RydWN0aW9uCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIEZyYWN0aW9uYWxQYXJ0U3Vic3RpdHV0aW9uLiAgVGhpcyBvYmplY3Qga2VlcHMgYSBmbGFnCisgICAgICogdGVsbGluZyB3aGV0aGVyIGl0IHNob3VsZCBmb3JtYXQgYnkgZGlnaXRzIG9yIG5vdC4gIEluIGFkZGl0aW9uLAorICAgICAqIGl0IG1hcmtzIHRoZSBydWxlIHNldCBpdCBjYWxscyAoaWYgYW55KSBhcyBhIGZyYWN0aW9uIHJ1bGUgc2V0LgorICAgICAqLworICAgIEZyYWN0aW9uYWxQYXJ0U3Vic3RpdHV0aW9uKGludCBwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkZSdWxlU2V0IHJ1bGVTZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZGVzY3JpcHRpb24pIHsKKyAgICAgICAgc3VwZXIocG9zLCBydWxlU2V0LCBmb3JtYXR0ZXIsIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgaWYgKGRlc2NyaXB0aW9uLmVxdWFscygiPj4iKSB8fCBkZXNjcmlwdGlvbi5lcXVhbHMoIj4+PiIpIHx8IHJ1bGVTZXQgPT0gdGhpcy5ydWxlU2V0KSB7CisgICAgICAgICAgICBieURpZ2l0cyA9IHRydWU7CisgICAgICAgICAgICBpZiAoZGVzY3JpcHRpb24uZXF1YWxzKCI+Pj4iKSkgeworICAgICAgICAgICAgICB1c2VTcGFjZXMgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRoaXMucnVsZVNldC5tYWtlSW50b0ZyYWN0aW9uUnVsZVNldCgpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGZvcm1hdHRpbmcKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBJZiBpbiAiYnkgZGlnaXRzIiBtb2RlLCBmaWxscyBpbiB0aGUgc3Vic3RpdHV0aW9uIG9uZSBkZWNpbWFsIGRpZ2l0CisgICAgICogYXQgYSB0aW1lIHVzaW5nIHRoZSBydWxlIHNldCBjb250YWluaW5nIHRoaXMgc3Vic3RpdHV0aW9uLgorICAgICAqIE90aGVyd2lzZSwgdXNlcyB0aGUgc3VwZXJjbGFzcyBmdW5jdGlvbi4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkCisgICAgICogQHBhcmFtIHRvSW5zZXJ0SW50byBUaGUgc3RyaW5nIHRvIGluc2VydCB0aGUgcmVzdWx0IG9mIGZvcm1hdHRpbmcKKyAgICAgKiB0aGUgc3Vic3RpdHV0aW9uIGludG8KKyAgICAgKiBAcGFyYW0gcG9zIFRoZSBwb3NpdGlvbiBvZiB0aGUgb3duaW5nIHJ1bGUncyBydWxlIHRleHQgaW4KKyAgICAgKiB0b0luc2VydEludG8KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBkb1N1YnN0aXR1dGlvbihkb3VibGUgbnVtYmVyLCBTdHJpbmdCdWZmZXIgdG9JbnNlcnRJbnRvLCBpbnQgcG9zKSB7CisgICAgICAgIC8vIGlmIHdlJ3JlIG5vdCBpbiAiYnlEaWdpdHMiIG1vZGUsIGp1c3QgdXNlIHRoZSBpbmhlcml0ZWQKKyAgICAgICAgLy8gZG9TdWJzdGl0dXRpb24oKSByb3V0aW5lCisgICAgICAgIGlmICghYnlEaWdpdHMpIHsKKyAgICAgICAgICAgIHN1cGVyLmRvU3Vic3RpdHV0aW9uKG51bWJlciwgdG9JbnNlcnRJbnRvLCBwb3MpOworCisgICAgICAgIC8vIGlmIHdlJ3JlIGluICJieURpZ2l0cyIgbW9kZSwgdHJhbnNmb3JtIHRoZSB2YWx1ZSBpbnRvIGFuIGludGVnZXIKKyAgICAgICAgLy8gYnkgbW92aW5nIHRoZSBkZWNpbWFsIHBvaW50IGVpZ2h0IHBsYWNlcyB0byB0aGUgcmlnaHQgYW5kCisgICAgICAgIC8vIHB1bGxpbmcgZGlnaXRzIG9mZiB0aGUgcmlnaHQgb25lIGF0IGEgdGltZSwgZm9ybWF0dGluZyBlYWNoIGRpZ2l0CisgICAgICAgIC8vIGFzIGFuIGludGVnZXIgdXNpbmcgdGhpcyBzdWJzdGl0dXRpb24ncyBvd25pbmcgcnVsZSBzZXQKKyAgICAgICAgLy8gKHRoaXMgaXMgc2xvd2VyLCBidXQgbW9yZSBhY2N1cmF0ZSwgdGhhbiBkb2luZyBpdCBmcm9tIHRoZQorICAgICAgICAvLyBvdGhlciBlbmQpCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgbnVtYmVyVG9Gb3JtYXQgPSAoaW50KU1hdGgucm91bmQodHJhbnNmb3JtTnVtYmVyKG51bWJlcikgKiBNYXRoLnBvdygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMCwgTUFYREVDSU1BTERJR0lUUykpOworICAgICAgICAgICAgLy8gdGhpcyBmbGFnIGtlZXBzIHVzIGZyb20gZm9ybWF0dGluZyB0cmFpbGluZyB6ZXJvcy4gIEl0IHN0YXJ0cworICAgICAgICAgICAgLy8gb3V0IGZhbHNlIGJlY2F1c2Ugd2UncmUgcHVsbGluZyBmcm9tIHRoZSByaWdodCwgYW5kIHN3aXRjaGVzCisgICAgICAgICAgICAvLyB0byB0cnVlIHRoZSBmaXJzdCB0aW1lIHdlIGVuY291bnRlciBhIG5vbi16ZXJvIGRpZ2l0CisgICAgICAgICAgICBib29sZWFuIGRvWmVyb3MgPSBmYWxzZTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTUFYREVDSU1BTERJR0lUUzsgaSsrKSB7CisgICAgICAgICAgICAgICAgaW50IGRpZ2l0ID0gbnVtYmVyVG9Gb3JtYXQgJSAxMDsKKyAgICAgICAgICAgICAgICBpZiAoZGlnaXQgIT0gMCB8fCBkb1plcm9zKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChkb1plcm9zICYmIHVzZVNwYWNlcykgeworICAgICAgICAgICAgICAgICAgICAgICAgdG9JbnNlcnRJbnRvLmluc2VydChwb3MgKyB0aGlzLnBvcywgJyAnKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBkb1plcm9zID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgcnVsZVNldC5mb3JtYXQoZGlnaXQsIHRvSW5zZXJ0SW50bywgcG9zICsgdGhpcy5wb3MpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBudW1iZXJUb0Zvcm1hdCAvPSAxMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGZyYWN0aW9uYWwgcGFydCBvZiB0aGUgbnVtYmVyLCB3aGljaCB3aWxsIGFsd2F5cyBiZQorICAgICAqIHplcm8gaWYgaXQncyBhIGxvbmcuCisgICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZAorICAgICAqIEByZXR1cm4gMAorICAgICAqLworICAgIHB1YmxpYyBsb25nIHRyYW5zZm9ybU51bWJlcihsb25nIG51bWJlcikgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgdGhlIG51bWJlci4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkLgorICAgICAqIEByZXR1cm4gbnVtYmVyIC0gZmxvb3IobnVtYmVyKQorICAgICAqLworICAgIHB1YmxpYyBkb3VibGUgdHJhbnNmb3JtTnVtYmVyKGRvdWJsZSBudW1iZXIpIHsKKyAgICAgICAgcmV0dXJuIG51bWJlciAtIE1hdGguZmxvb3IobnVtYmVyKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gcGFyc2luZworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIElmIGluICJieSBkaWdpdHMiIG1vZGUsIHBhcnNlcyB0aGUgc3RyaW5nIGFzIGlmIGl0IHdlcmUgYSBzdHJpbmcKKyAgICAgKiBvZiBpbmRpdmlkdWFsIGRpZ2l0czsgb3RoZXJ3aXNlLCB1c2VzIHRoZSBzdXBlcmNsYXNzIGZ1bmN0aW9uLgorICAgICAqIEBwYXJhbSB0ZXh0IFRoZSBzdHJpbmcgdG8gcGFyc2UKKyAgICAgKiBAcGFyYW0gcGFyc2VQb3NpdGlvbiBJZ25vcmVkIG9uIGVudHJ5LCBidXQgdXBkYXRlZCBvbiBleGl0IHRvIHBvaW50CisgICAgICogdG8gdGhlIGZpcnN0IHVubWF0Y2hlZCBjaGFyYWN0ZXIKKyAgICAgKiBAcGFyYW0gYmFzZVZhbHVlIFRoZSBwYXJ0aWFsIHBhcnNlIHJlc3VsdCBwcmlvciB0byBlbnRlcmluZyB0aGlzCisgICAgICogZnVuY3Rpb24KKyAgICAgKiBAcGFyYW0gdXBwZXJCb3VuZCBPbmx5IGNvbnNpZGVyIHJ1bGVzIHdpdGggYmFzZSB2YWx1ZXMgbG93ZXIgdGhhbgorICAgICAqIHRoaXMgd2hlbiBmaWxsaW5nIGluIHRoZSBzdWJzdGl0dXRpb24KKyAgICAgKiBAcGFyYW0gbGVuaWVudFBhcnNlIElmIHRydWUsIHRyeSBtYXRjaGluZyB0aGUgdGV4dCBhcyBudW1lcmFscyBpZgorICAgICAqIG1hdGNoaW5nIGFzIHdvcmRzIGRvZXNuJ3Qgd29yaworICAgICAqIEByZXR1cm4gSWYgdGhlIG1hdGNoIHdhcyBzdWNjZXNzZnVsLCB0aGUgY3VycmVudCBwYXJ0aWFsIHBhcnNlCisgICAgICogcmVzdWx0OyBvdGhlcndpc2UgbmV3IExvbmcoMCkuICBUaGUgcmVzdWx0IGlzIGVpdGhlciBhIExvbmcgb3IKKyAgICAgKiBhIERvdWJsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgTnVtYmVyIGRvUGFyc2UoU3RyaW5nIHRleHQsIFBhcnNlUG9zaXRpb24gcGFyc2VQb3NpdGlvbiwgZG91YmxlIGJhc2VWYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSB1cHBlckJvdW5kLCBib29sZWFuIGxlbmllbnRQYXJzZSkgeworICAgICAgICAvLyBpZiB3ZSdyZSBub3QgaW4gYnlEaWdpdHMgbW9kZSwgd2UgY2FuIGp1c3QgdXNlIHRoZSBpbmhlcml0ZWQKKyAgICAgICAgLy8gZG9QYXJzZSgpCisgICAgICAgIGlmICghYnlEaWdpdHMpIHsKKyAgICAgICAgICAgIHJldHVybiBzdXBlci5kb1BhcnNlKHRleHQsIHBhcnNlUG9zaXRpb24sIGJhc2VWYWx1ZSwgMCwgbGVuaWVudFBhcnNlKTsKKworICAgICAgICAvLyBpZiB3ZSBBUkUgaW4gYnlEaWdpdHMgbW9kZSwgcGFyc2UgdGhlIHRleHQgb25lIGRpZ2l0IGF0IGEgdGltZQorICAgICAgICAvLyB1c2luZyB0aGlzIHN1YnN0aXR1dGlvbidzIG93bmluZyBydWxlIHNldCAod2UgZG8gdGhpcyBieSBzZXR0aW5nCisgICAgICAgIC8vIHVwcGVyQm91bmQgdG8gMTAgd2hlbiBjYWxsaW5nIGRvUGFyc2UoKSApIHVudGlsIHdlIHJlYWNoCisgICAgICAgIC8vIG5vbm1hdGNoaW5nIHRleHQKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyB3b3JrVGV4dCA9IG5ldyBTdHJpbmcodGV4dCk7CisgICAgICAgICAgICBQYXJzZVBvc2l0aW9uIHdvcmtQb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigxKTsKKyAgICAgICAgICAgIGRvdWJsZSByZXN1bHQgPSAwOworICAgICAgICAgICAgaW50IGRpZ2l0OworICAgICAgICAgICAgZG91YmxlIHAxMCA9IDAuMTsKKworICAgICAgICAgICAgd2hpbGUgKHdvcmtUZXh0Lmxlbmd0aCgpID4gMCAmJiB3b3JrUG9zLmdldEluZGV4KCkgIT0gMCkgeworICAgICAgICAgICAgICAgIHdvcmtQb3Muc2V0SW5kZXgoMCk7CisgICAgICAgICAgICAgICAgZGlnaXQgPSBydWxlU2V0LnBhcnNlKHdvcmtUZXh0LCB3b3JrUG9zLCAxMCkuaW50VmFsdWUoKTsKKyAgICAgICAgICAgICAgICBpZiAobGVuaWVudFBhcnNlICYmIHdvcmtQb3MuZ2V0SW5kZXgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGRpZ2l0ID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCkucGFyc2Uod29ya1RleHQsIHdvcmtQb3MpLmludFZhbHVlKCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKHdvcmtQb3MuZ2V0SW5kZXgoKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSBkaWdpdCAqIHAxMDsKKyAgICAgICAgICAgICAgICAgICAgcDEwIC89IDEwOworICAgICAgICAgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEluZGV4KHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSArIHdvcmtQb3MuZ2V0SW5kZXgoKSk7CisgICAgICAgICAgICAgICAgICAgIHdvcmtUZXh0ID0gd29ya1RleHQuc3Vic3RyaW5nKHdvcmtQb3MuZ2V0SW5kZXgoKSk7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlICh3b3JrVGV4dC5sZW5ndGgoKSA+IDAgJiYgd29ya1RleHQuY2hhckF0KDApID09ICcgJykgeworICAgICAgICAgICAgICAgICAgICAgICAgd29ya1RleHQgPSB3b3JrVGV4dC5zdWJzdHJpbmcoMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEluZGV4KHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSArIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVzdWx0ID0gY29tcG9zZVJ1bGVWYWx1ZShyZXN1bHQsIGJhc2VWYWx1ZSk7CisgICAgICAgICAgICByZXR1cm4gbmV3IERvdWJsZShyZXN1bHQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgc3VtIG9mIHRoZSB0d28gcGFydGlhbCBwYXJzZSByZXN1bHRzLgorICAgICAqIEBwYXJhbSBuZXdSdWxlVmFsdWUgVGhlIHJlc3VsdCBvZiBwYXJzaW5nIHRoZSBzdWJzdGl0dXRpb24KKyAgICAgKiBAcGFyYW0gb2xkUnVsZVZhbHVlIFRoZSBwYXJ0aWFsIHBhcnNlIHJlc3VsdCBwcmlvciB0byBjYWxsaW5nCisgICAgICogdGhpcyBmdW5jdGlvbgorICAgICAqIEByZXR1cm4gbmV3UnVsZVZhbHVlICsgb2xkUnVsZVZhbHVlCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSBjb21wb3NlUnVsZVZhbHVlKGRvdWJsZSBuZXdSdWxlVmFsdWUsIGRvdWJsZSBvbGRSdWxlVmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIG5ld1J1bGVWYWx1ZSArIG9sZFJ1bGVWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBOb3QgdXNlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIGNhbGNVcHBlckJvdW5kKGRvdWJsZSBvbGRVcHBlckJvdW5kKSB7CisgICAgICAgIHJldHVybiAwOyAgIC8vIHRoaXMgdmFsdWUgaXMgaWdub3JlZAorICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBzaW1wbGUgYWNjZXNzb3IKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUaGUgdG9rZW4gY2hhcmFjdGVyIGZvciBhIEZyYWN0aW9uYWxQYXJ0U3Vic3RpdHV0aW9uIGlzICZndDsuCisgICAgICogQHJldHVybiAnJmd0OycKKyAgICAgKi8KKyAgICBjaGFyIHRva2VuQ2hhcigpIHsKKyAgICAgICAgcmV0dXJuICc+JzsKKyAgICB9Cit9CisKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gQWJzb2x1dGVWYWx1ZVN1YnN0aXR1dGlvbgorLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAvKioKKyAgKiBBIHN1YnN0aXR1dGlvbiB0aGF0IGZvcm1hdHMgdGhlIGFic29sdXRlIHZhbHVlIG9mIHRoZSBudW1iZXIuCisgICogVGhpcyBzdWJzdGl0aW9uIGlzIHJlcHJlc2VudGVkIGJ5ICZndDsmZ3Q7IGluIGEgbmVnYXRpdmUtbnVtYmVyIHJ1bGUuCisgICovCitjbGFzcyBBYnNvbHV0ZVZhbHVlU3Vic3RpdHV0aW9uIGV4dGVuZHMgTkZTdWJzdGl0dXRpb24geworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdGFudHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBQdXRzIGEgY29weXJpZ2h0IGluIHRoZSAuY2xhc3MgZmlsZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHROb3RpY2UKKyAgICAgICAgPSAiQ29weXJpZ2h0IFx1MDBhOTE5OTctMTk5OCBJQk0gQ29ycC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdHJ1Y3Rpb24KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGFuIEFic29sdXRlVmFsdWVTdWJzdGl0dXRpb24uICBUaGlzIGp1c3QgdXNlcyB0aGUKKyAgICAgKiBzdXBlcmNsYXNzIGNvbnN0cnVjdG9yLgorICAgICAqLworICAgIEFic29sdXRlVmFsdWVTdWJzdGl0dXRpb24oaW50IHBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5GUnVsZVNldCBydWxlU2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICBzdXBlcihwb3MsIHJ1bGVTZXQsIGZvcm1hdHRlciwgZGVzY3JpcHRpb24pOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBmb3JtYXR0aW5nCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgYWJzb2x1dGUgdmFsdWUgb2YgdGhlIG51bWJlci4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkLgorICAgICAqIEByZXR1cm4gYWJzKG51bWJlcikKKyAgICAgKi8KKyAgICBwdWJsaWMgbG9uZyB0cmFuc2Zvcm1OdW1iZXIobG9uZyBudW1iZXIpIHsKKyAgICAgICAgcmV0dXJuIE1hdGguYWJzKG51bWJlcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgYWJzb2x1dGUgdmFsdWUgb2YgdGhlIG51bWJlci4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkLgorICAgICAqIEByZXR1cm4gYWJzKG51bWJlcikKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIHRyYW5zZm9ybU51bWJlcihkb3VibGUgbnVtYmVyKSB7CisgICAgICAgIHJldHVybiBNYXRoLmFicyhudW1iZXIpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBwYXJzaW5nCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgYWRkdGl2ZSBpbnZlcnNlIG9mIHRoZSByZXN1bHQgb2YgcGFyc2luZyB0aGUKKyAgICAgKiBzdWJzdGl0dXRpb24gKHRoaXMgc3VwZXJzZWRlcyB0aGUgZWFybGllciBwYXJ0aWFsIHJlc3VsdCkKKyAgICAgKiBAcGFyYW0gbmV3UnVsZVZhbHVlIFRoZSByZXN1bHQgb2YgcGFyc2luZyB0aGUgc3Vic3RpdHV0aW9uCisgICAgICogQHBhcmFtIG9sZFJ1bGVWYWx1ZSBUaGUgcGFydGlhbCBwYXJzZSByZXN1bHQgcHJpb3IgdG8gY2FsbGluZworICAgICAqIHRoaXMgZnVuY3Rpb24KKyAgICAgKiBAcmV0dXJuIC1uZXdSdWxlVmFsdWUKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIGNvbXBvc2VSdWxlVmFsdWUoZG91YmxlIG5ld1J1bGVWYWx1ZSwgZG91YmxlIG9sZFJ1bGVWYWx1ZSkgeworICAgICAgICByZXR1cm4gLW5ld1J1bGVWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB1cHBlciBib3VuZCBiZWNrIHVwIHRvIGNvbnNpZGVyIGFsbCBydWxlcworICAgICAqIEBwYXJhbSBvbGRVcHBlckJvdW5kIElnbm9yZWQuCisgICAgICogQHJldHVybiBEb3VibGUuTUFYX1ZBTFVFCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSBjYWxjVXBwZXJCb3VuZChkb3VibGUgb2xkVXBwZXJCb3VuZCkgeworICAgICAgICByZXR1cm4gRG91YmxlLk1BWF9WQUxVRTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gc2ltcGxlIGFjY2Vzc29yCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogVGhlIHRva2VuIGNoYXJhY3RlciBmb3IgYW4gQWJzb2x1dGVWYWx1ZVN1YnN0aXR1dGlvbiBpcyAmZ3Q7CisgICAgICogQHJldHVybiAnJmd0OycKKyAgICAgKi8KKyAgICBjaGFyIHRva2VuQ2hhcigpIHsKKyAgICAgICAgcmV0dXJuICc+JzsKKyAgICB9Cit9CisKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gTnVtZXJhdG9yU3Vic3RpdHV0aW9uCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLyoqCisgKiBBIHN1YnN0aXR1dGlvbiB0aGF0IG11bHRpcGxpZXMgdGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQgKHdoaWNoIGlzCisgKiBiZXR3ZWVuIDAgYW5kIDEpIGJ5IHRoZSBiYXNlIHZhbHVlIG9mIHRoZSBydWxlIHRoYXQgb3ducyBpdCBhbmQKKyAqIGZvcm1hdHMgdGhlIHJlc3VsdC4gIEl0IGlzIHJlcHJlc2VudGVkIGJ5ICZsdDsmbHQ7IGluIHRoZSBydWxlcworICogaW4gYSBmcmFjdGlvbiBydWxlIHNldC4KKyAqLworY2xhc3MgTnVtZXJhdG9yU3Vic3RpdHV0aW9uIGV4dGVuZHMgTkZTdWJzdGl0dXRpb24geworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdGFudHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBQdXRzIGEgY29weXJpZ2h0IGluIHRoZSAuY2xhc3MgZmlsZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHROb3RpY2UKKyAgICAgICAgPSAiQ29weXJpZ2h0IFx1MDBhOTE5OTctMTk5OCBJQk0gQ29ycC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBkYXRhIG1lbWJlcnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUaGUgZGVub21pbmF0b3Igb2YgdGhlIGZyYWN0aW9uIHdlJ3JlIGZpbmRpbmcgdGhlIG51bWVyYXRvciBmb3IuCisgICAgICogKFRoZSBiYXNlIHZhbHVlIG9mIHRoZSBydWxlIHRoYXQgb3ducyB0aGlzIHN1YnN0aXR1dGlvbi4pCisgICAgICovCisgICAgZG91YmxlIGRlbm9taW5hdG9yOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNvbnN0cnVjdGlvbgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBOdW1iZXJhdG9yU3Vic3RpdHV0aW9uLiAgSW4gYWRkaXRpb24gdG8gdGhlIGluaGVyaXRlZAorICAgICAqIGZpZWxkcywgYSBOdW1lcmF0b3JTdWJzdGl0dXRpb24ga2VlcHMgdHJhY2sgb2YgYSBkZW5vbWluYXRvciwgd2hpY2gKKyAgICAgKiBpcyBtZXJlbHkgdGhlIGJhc2UgdmFsdWUgb2YgdGhlIHJ1bGUgdGhhdCBvd25zIGl0LgorICAgICAqLworICAgIE51bWVyYXRvclN1YnN0aXR1dGlvbihpbnQgcG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZGVub21pbmF0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgIE5GUnVsZVNldCBydWxlU2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZGVzY3JpcHRpb24pIHsKKyAgICAgICAgc3VwZXIocG9zLCBydWxlU2V0LCBmb3JtYXR0ZXIsIGRlc2NyaXB0aW9uKTsKKworICAgICAgICAvLyB0aGlzIHN1YnN0aXR1dGlvbidzIGJlaGF2aW9yIGRlcGVuZHMgb24gdGhlIHJ1bGUncyBiYXNlIHZhbHVlCisgICAgICAgIC8vIFJhdGhlciB0aGFuIGtlZXBpbmcgYSBiYWNrcG9pbnRlciB0byB0aGUgcnVsZSwgd2UgY29weSBpdHMKKyAgICAgICAgLy8gYmFzZSB2YWx1ZSBoZXJlCisgICAgICAgIHRoaXMuZGVub21pbmF0b3IgPSBkZW5vbWluYXRvcjsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gYm9pbGVycGxhdGUKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUZXN0cyB0d28gTnVtZXJhdG9yU3Vic3RpdHV0aW9ucyBmb3IgZXF1YWxpdHkKKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgb3RoZXIgTnVtZXJhdG9yU3Vic3RpdHV0aW9uCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB0d28gb2JqZWN0cyBhcmUgZnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IHRoYXQpIHsKKyAgICAgICAgaWYgKHN1cGVyLmVxdWFscyh0aGF0KSkgeworICAgICAgICAgICAgTnVtZXJhdG9yU3Vic3RpdHV0aW9uIHRoYXQyID0gKE51bWVyYXRvclN1YnN0aXR1dGlvbil0aGF0OworICAgICAgICAgICAgcmV0dXJuIGRlbm9taW5hdG9yID09IHRoYXQyLmRlbm9taW5hdG9yOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGZvcm1hdHRpbmcKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkIHRpbWVzIHRoZSBkZW5vbWluYXRvci4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkCisgICAgICogQHJldHVybiBudW1iZXIgKiBkZW5vbWluYXRvcgorICAgICAqLworICAgIHB1YmxpYyBsb25nIHRyYW5zZm9ybU51bWJlcihsb25nIG51bWJlcikgeworICAgICAgICByZXR1cm4gTWF0aC5yb3VuZChudW1iZXIgKiBkZW5vbWluYXRvcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZCB0aW1lcyB0aGUgZGVub21pbmF0b3IuCisgICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZAorICAgICAqIEByZXR1cm4gbnVtYmVyICogZGVub21pbmF0b3IKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIHRyYW5zZm9ybU51bWJlcihkb3VibGUgbnVtYmVyKSB7CisgICAgICAgIHJldHVybiBNYXRoLnJvdW5kKG51bWJlciAqIGRlbm9taW5hdG9yKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gcGFyc2luZworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIERpc3BhdGNoZXMgdG8gdGhlIGluaGVyaXRlZCB2ZXJzaW9uIG9mIHRoaXMgZnVuY3Rpb24sIGJ1dCBtYWtlcworICAgICAqIHN1cmUgdGhhdCBsZW5pZW50UGFyc2UgaXMgb2ZmLgorICAgICAqLworICAgIHB1YmxpYyBOdW1iZXIgZG9QYXJzZShTdHJpbmcgdGV4dCwgUGFyc2VQb3NpdGlvbiBwYXJzZVBvc2l0aW9uLCBkb3VibGUgYmFzZVZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIHVwcGVyQm91bmQsIGJvb2xlYW4gbGVuaWVudFBhcnNlKSB7CisgICAgICAgIC8vIHdlIGRvbid0IGhhdmUgdG8gZG8gYW55dGhpbmcgc3BlY2lhbCB0byBkbyB0aGUgcGFyc2luZyBoZXJlLAorICAgICAgICAvLyBidXQgd2UgaGF2ZSB0byB0dXJuIGxlbmllbnQgcGFyc2luZyBvZmYtLSBpZiB3ZSBsZWF2ZSBpdCBvbiwKKyAgICAgICAgLy8gaXQgU0VSSU9VU0xZIG1lc3NlcyB1cCB0aGUgYWxnb3JpdGhtCisgICAgICAgIHJldHVybiBzdXBlci5kb1BhcnNlKHRleHQsIHBhcnNlUG9zaXRpb24sIGJhc2VWYWx1ZSwgdXBwZXJCb3VuZCwgZmFsc2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERpdmlkZXMgdGhlIHJlc3VsdCBvZiBwYXJzaW5nIHRoZSBzdWJzdGl0dXRpb24gYnkgdGhlIHBhcnRpYWwKKyAgICAgKiBwYXJzZSByZXN1bHQuCisgICAgICogQHBhcmFtIG5ld1J1bGVWYWx1ZSBUaGUgcmVzdWx0IG9mIHBhcnNpbmcgdGhlIHN1YnN0aXR1dGlvbgorICAgICAqIEBwYXJhbSBvbGRSdWxlVmFsdWUgVGhlIG93bmluZyBydWxlJ3MgYmFzZSB2YWx1ZQorICAgICAqIEByZXR1cm4gbmV3UnVsZVZhbHVlIC8gb2xkUnVsZVZhbHVlCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSBjb21wb3NlUnVsZVZhbHVlKGRvdWJsZSBuZXdSdWxlVmFsdWUsIGRvdWJsZSBvbGRSdWxlVmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIG5ld1J1bGVWYWx1ZSAvIG9sZFJ1bGVWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB1cGVyIGJvdW5kIGRvd24gdG8gdGhpcyBydWxlJ3MgYmFzZSB2YWx1ZQorICAgICAqIEBwYXJhbSBvbGRVcHBlckJvdW5kIElnbm9yZWQKKyAgICAgKiBAcmV0dXJuIFRoZSBiYXNlIHZhbHVlIG9mIHRoZSBydWxlIG93bmluZyB0aGlzIHN1YnN0aXR1dGlvbgorICAgICAqLworICAgIHB1YmxpYyBkb3VibGUgY2FsY1VwcGVyQm91bmQoZG91YmxlIG9sZFVwcGVyQm91bmQpIHsKKyAgICAgICAgcmV0dXJuIGRlbm9taW5hdG9yOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBzaW1wbGUgYWNjZXNzb3IKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUaGUgdG9rZW4gY2hhcmFjdGVyIGZvciBhIE51bWVyYXRvclN1YnN0aXR1dGlvbiBpcyAmbHQ7CisgICAgICogQHJldHVybiAnJmx0OycKKyAgICAgKi8KKyAgICBjaGFyIHRva2VuQ2hhcigpIHsKKyAgICAgICAgcmV0dXJuICc8JzsKKyAgICB9Cit9CisKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gTnVsbFN1YnN0aXR1dGlvbgorLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy8qKgorICogQSBzdWJzdGl0dXRpb24gd2hpY2ggZG9lcyBub3RoaW5nLiAgVGhpcyBjbGFzcyBleGlzdHMganVzdCB0byBzaW1wbGlmeQorICogdGhlIGxvZ2ljIGluIHNvbWUgb3RoZXIgcm91dGluZXMgc28gdGhhdCB0aGV5IGRvbid0IGhhdmUgdG8gd29ycnkKKyAqIGFib3V0IGhvdyBtYW55IHN1YnN0aXR1dGlvbnMgYSBydWxlIGhhcy4KKyAqLworY2xhc3MgTnVsbFN1YnN0aXR1dGlvbiBleHRlbmRzIE5GU3Vic3RpdHV0aW9uIHsKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY29uc3RhbnRzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUHV0cyBhIGNvcHlyaWdodCBpbiB0aGUgLmNsYXNzIGZpbGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0Tm90aWNlCisgICAgICAgID0gIkNvcHlyaWdodCBcdTAwYTkxOTk3LTE5OTggSUJNIENvcnAuICBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY29uc3RydWN0aW9uCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIE51bGxTdWJzdGl0dXRpb24uICBUaGlzIGp1c3QgZGVsZWdhdGVzIHRvIHRoZSBzdXBlcmNsYXNzCisgICAgICogY29uc3RydWN0b3IsIGJ1dCB0aGUgb25seSB2YWx1ZSB3ZSByZWFsbHkgY2FyZSBhYm91dCBpcyB0aGUgcG9zaXRpb24uCisgICAgICovCisgICAgTnVsbFN1YnN0aXR1dGlvbihpbnQgcG9zLAorICAgICAgICAgICAgICAgICAgICAgTkZSdWxlU2V0IHJ1bGVTZXQsCisgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyLAorICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGRlc2NyaXB0aW9uKSB7CisgICAgICAgIHN1cGVyKHBvcywgcnVsZVNldCwgZm9ybWF0dGVyLCBkZXNjcmlwdGlvbik7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGJvaWxlcnBsYXRlCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogT25seSBjaGVja3MgZm9yIGNsYXNzIGVxdWFsaXR5CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCB0aGF0KSB7CisgICAgICAgIHJldHVybiBzdXBlci5lcXVhbHModGhhdCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogTnVsbFN1YnN0aXR1dGlvbnMgZG9uJ3Qgc2hvdyB1cCBpbiB0aGUgdGV4dHVhbCByZXByZXNlbnRhdGlvbgorICAgICAqIG9mIGEgUnVsZUJhc2VkTnVtYmVyRm9ybWF0CisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgcmV0dXJuICIiOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBmb3JtYXR0aW5nCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogRG9lcyBub3RoaW5nLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGRvU3Vic3RpdHV0aW9uKGxvbmcgbnVtYmVyLCBTdHJpbmdCdWZmZXIgdG9JbnNlcnRJbnRvLCBpbnQgcG9zKSB7CisgICAgfQorCisgICAgLyoqCisgICAgICogRG9lcyBub3RoaW5nLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGRvU3Vic3RpdHV0aW9uKGRvdWJsZSBudW1iZXIsIFN0cmluZ0J1ZmZlciB0b0luc2VydEludG8sIGludCBwb3MpIHsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBOZXZlciBjYWxsZWQuCisgICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHB1YmxpYyBsb25nIHRyYW5zZm9ybU51bWJlcihsb25nIG51bWJlcikgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisKKyAgICAvKioKKyAgICAgKiBOZXZlciBjYWxsZWQuCisgICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHB1YmxpYyBkb3VibGUgdHJhbnNmb3JtTnVtYmVyKGRvdWJsZSBudW1iZXIpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHBhcnNpbmcKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBwYXJ0aWFsIHBhcnNlIHJlc3VsdCB1bmNoYW5nZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgTnVtYmVyIGRvUGFyc2UoU3RyaW5nIHRleHQsIFBhcnNlUG9zaXRpb24gcGFyc2VQb3NpdGlvbiwgZG91YmxlIGJhc2VWYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSB1cHBlckJvdW5kLCBib29sZWFuIGxlbmllbnRQYXJzZSkgeworICAgICAgICBpZiAoYmFzZVZhbHVlID09IChsb25nKWJhc2VWYWx1ZSkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBMb25nKChsb25nKWJhc2VWYWx1ZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IERvdWJsZShiYXNlVmFsdWUpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTmV2ZXIgY2FsbGVkLgorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgZG91YmxlIGNvbXBvc2VSdWxlVmFsdWUoZG91YmxlIG5ld1J1bGVWYWx1ZSwgZG91YmxlIG9sZFJ1bGVWYWx1ZSkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisKKyAgICAvKioKKyAgICAgKiBOZXZlciBjYWxsZWQuCisgICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHB1YmxpYyBkb3VibGUgY2FsY1VwcGVyQm91bmQoZG91YmxlIG9sZFVwcGVyQm91bmQpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHNpbXBsZSBhY2Nlc3NvcnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgKHRoaXMgX2lzXyBhIE51bGxTdWJzdGl0dXRpb24pLgorICAgICAqIEByZXR1cm4gdHJ1ZQorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzTnVsbFN1YnN0aXR1dGlvbigpIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogTmV2ZXIgY2FsbGVkLgorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBjaGFyIHRva2VuQ2hhcigpIHsKKyAgICAgICAgcmV0dXJuICcgJzsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L05hbWVVbmljb2RlVHJhbnNsaXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L05hbWVVbmljb2RlVHJhbnNsaXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41N2VhZGZmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvTmFtZVVuaWNvZGVUcmFuc2xpdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMTY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L3RleHQvTmFtZVVuaWNvZGVUcmFuc2xpdGVyYXRvci5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzA3LzI2IDIxOjEyOjM2ICQgCisgKiAkUmV2aXNpb246IDEuMTEgJAorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CitpbXBvcnQgamF2YS51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3RlclByb3BlcnR5OworCisvKioKKyAqIEEgdHJhbnNsaXRlcmF0b3IgdGhhdCBwZXJmb3JtcyBuYW1lIHRvIGNoYXJhY3RlciBtYXBwaW5nLgorICogQGF1dGhvciBBbGFuIExpdQorICovCitjbGFzcyBOYW1lVW5pY29kZVRyYW5zbGl0ZXJhdG9yIGV4dGVuZHMgVHJhbnNsaXRlcmF0b3IgeworCisgICAgY2hhciBvcGVuRGVsaW1pdGVyOworICAgIGNoYXIgY2xvc2VEZWxpbWl0ZXI7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIF9JRCA9ICJOYW1lLUFueSI7CisKKyAgICAvKioKKyAgICAgKiBTeXN0ZW0gcmVnaXN0cmF0aW9uIGhvb2suCisgICAgICovCisgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXIoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeShfSUQsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTmFtZVVuaWNvZGVUcmFuc2xpdGVyYXRvcihudWxsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqLworICAgIHB1YmxpYyBOYW1lVW5pY29kZVRyYW5zbGl0ZXJhdG9yKGNoYXIgb3BlbkRlbGltaXRlciwgY2hhciBjbG9zZURlbGltaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlRmlsdGVyIGZpbHRlcikgeworICAgICAgICBzdXBlcihfSUQsIGZpbHRlcik7CisgICAgICAgIHRoaXMub3BlbkRlbGltaXRlciA9IG9wZW5EZWxpbWl0ZXI7CisgICAgICAgIHRoaXMuY2xvc2VEZWxpbWl0ZXIgPSBjbG9zZURlbGltaXRlcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgdHJhbnNsaXRlcmF0b3Igd2l0aCB0aGUgZGVmYXVsdCBkZWxpbWl0ZXJzICd7JyBhbmQKKyAgICAgKiAnfScuCisgICAgICovCisgICAgcHVibGljIE5hbWVVbmljb2RlVHJhbnNsaXRlcmF0b3IoVW5pY29kZUZpbHRlciBmaWx0ZXIpIHsKKyAgICAgICAgdGhpcygneycsICd9JywgZmlsdGVyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRzIHtAbGluayBUcmFuc2xpdGVyYXRvciNoYW5kbGVUcmFuc2xpdGVyYXRlfS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVUcmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbiBvZmZzZXRzLCBib29sZWFuIGlzSW5jcmVtZW50YWwpIHsKKyAgICAgICAgLy8gTG9uZ2VzdCBuYW1lIGFzIG9mIDMuMC4wIGlzIDgzCisgICAgICAgIGZpbmFsIGludCBMT05HRVNUX05BTUUgPSA4MzsKKyAgICAgICAgCisgICAgICAgIC8vIEFjY29tb2RhdGUgdGhlIGxvbmdlc3QgcG9zc2libGUgbmFtZSBwbHVzIHBhZGRpbmcKKyAgICAgICAgY2hhcltdIGJ1ZiA9IG5ldyBjaGFyW0xPTkdFU1RfTkFNRSArIDhdOyAKKworICAgICAgICAvLyBUaGUgb25seSBjaGFyYWN0ZXJzIHVzZWQgaW4gbmFtZXMgYXJlIChhcyBvZiBVbmljb2RlIDMuMC4wKToKKyAgICAgICAgLy8gIC0wMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoKKyAgICAgICAgLy8gKGZpcnN0IGNoYXJhY3RlciBpcyBhIHNwYWNlKS4KKworICAgICAgICBpbnQgY3Vyc29yID0gb2Zmc2V0cy5zdGFydDsKKyAgICAgICAgaW50IGxpbWl0ID0gb2Zmc2V0cy5saW1pdDsKKworICAgICAgICAvLyBNb2RlczoKKyAgICAgICAgLy8gMCAtIGxvb2tpbmcgZm9yIG9wZW4gZGVsaW1pdGVyCisgICAgICAgIC8vIDEgLSBhZnRlciBvcGVuIGRlbGltaXRlcgorICAgICAgICBpbnQgbW9kZSA9IDA7CisgICAgICAgIGludCBpYnVmID0gMDsKKyAgICAgICAgaW50IG9wZW5Qb3MgPSBvZmZzZXRzLnN0YXJ0OyAvLyBwb3NpdGlvbiBvZiBvcGVuRGVsaW1pdGVyCisgICAgICAgIAorICAgICAgICBpbnQgYzsKKyAgICAgICAgZm9yICg7IGN1cnNvciA8IGxpbWl0OyBjdXJzb3IrPVVURjE2LmdldENoYXJDb3VudChjKSkgeworICAgICAgICAgICAgYyA9IHRleHQuY2hhcjMyQXQoY3Vyc29yKTsKKworICAgICAgICAgICAgc3dpdGNoIChtb2RlKSB7CisgICAgICAgICAgICBjYXNlIDA6IC8vIGxvb2tpbmcgZm9yIG9wZW4gZGVsaW1pdGVyCisgICAgICAgICAgICAgICAgaWYgKGMgPT0gb3BlbkRlbGltaXRlcikgeworICAgICAgICAgICAgICAgICAgICBvcGVuUG9zID0gY3Vyc29yOworICAgICAgICAgICAgICAgICAgICBtb2RlID0gMTsKKyAgICAgICAgICAgICAgICAgICAgaWJ1ZiA9IDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIDE6IC8vIGFmdGVyIG9wZW4gZGVsaW1pdGVyCisgICAgICAgICAgICAgICAgLy8gTG9vayBmb3IgWy1hLXpBLVowLTk8Pl0uICBJZiBccysgaXMgZm91bmQsIGNvbnZlcnQgaXQKKyAgICAgICAgICAgICAgICAvLyB0byBhIHNpbmdsZSBzcGFjZS4gIElmIGNsb3NlRGVsaW1pdGVyIGlzIGZvdW5kLCBleGl0CisgICAgICAgICAgICAgICAgLy8gdGhlIGxvb3AuICBJZiBhbnkgb3RoZXIgY2hhcmFjdGVyIGlzIGZvdW5kLCBleGl0IHRoZQorICAgICAgICAgICAgICAgIC8vIGxvb3AuICBJZiB0aGUgbGltaXQgaXMgZm91bmQsIGV4aXQgdGhlIGxvb3AuCisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGMpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIElnbm9yZSBsZWFkaW5nIHdoaXRlc3BhY2UKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlidWYgIT0gMCAmJiBidWZbaWJ1Zi0xXSAhPSAoY2hhcikweDAwMjApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZltpYnVmKytdID0gKGNoYXIpMHgwMDIwIC8qICovOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgd2UgZ28gYSBiaXQgcGFzdCB0aGUgbG9uZ2VzdCBwb3NzaWJsZSBuYW1lIHRoZW4gYWJvcnQKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpYnVmID09IChMT05HRVNUX05BTUUgKyA0KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGUgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChjID09IGNsb3NlRGVsaW1pdGVyKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIERlbGV0ZSB0cmFpbGluZyBzcGFjZSwgaWYgYW55CisgICAgICAgICAgICAgICAgICAgIGlmIChpYnVmID4gMCAmJiBidWZbaWJ1Zi0xXSA9PSAoY2hhcikweDAwMjApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC0taWJ1ZjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpbnQgY2ggPSBVQ2hhcmFjdGVyLmdldENoYXJGcm9tRXh0ZW5kZWROYW1lKG5ldyBTdHJpbmcoYnVmLCAwLCBpYnVmKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjaCAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gTG9va3VwIHN1Y2NlZWRlZAorICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHN0ciA9IFVURjE2LnZhbHVlT2YoY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC5yZXBsYWNlKG9wZW5Qb3MsIGN1cnNvcisxLCBzdHIpOworCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBBZGp1c3QgaW5kaWNlcyBmb3IgdGhlIGNoYW5nZSBpbiB0aGUgbGVuZ3RoIG9mCisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgc3RyaW5nLiAgRG8gbm90IGFzc3VtZSB0aGF0IHN0ci5sZW5ndGgoKSA9PQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gMSwgaW4gY2FzZSBvZiBzdXJyb2dhdGVzLgorICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRlbHRhID0gY3Vyc29yICsgMSAtIG9wZW5Qb3MgLSBzdHIubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3IgLT0gZGVsdGE7CisgICAgICAgICAgICAgICAgICAgICAgICBsaW1pdCAtPSBkZWx0YTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFzc2VydChjdXJzb3IgPT0gb3BlblBvcyArIHN0ci5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGxvb2t1cCBmYWlsZWQsIHdlIGxlYXZlIHRoaW5ncyBhcy1pcyBhbmQKKyAgICAgICAgICAgICAgICAgICAgLy8gc3RpbGwgc3dpdGNoIHRvIG1vZGUgMCBhbmQgY29udGludWUuCisgICAgICAgICAgICAgICAgICAgIG1vZGUgPSAwOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoYyA+PSAoY2hhcikweDAwNjEgJiYgYyA8PSAoY2hhcikweDAwN0EpIHsKKyAgICAgICAgICAgICAgICAgICAgYyAtPSAweDAwMjA7IC8vIFthLXpdID0+IFtBLVpdCisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgYyA9fiBbLUEtWmEtejAtOTw+XQorICAgICAgICAgICAgICAgIGlmIChjID09IChjaGFyKTB4MDAyRCB8fAorICAgICAgICAgICAgICAgICAgICAoYyA+PSAoY2hhcikweDAwNDEgJiYgYyA8PSAoY2hhcikweDAwNUEpIHx8CisgICAgICAgICAgICAgICAgICAgIChjID49IChjaGFyKTB4MDA2MSAmJiBjIDw9IChjaGFyKTB4MDA3QSkgfHwKKyAgICAgICAgICAgICAgICAgICAgKGMgPj0gKGNoYXIpMHgwMDMwICYmIGMgPD0gKGNoYXIpMHgwMDM5KSB8fAorICAgICAgICAgICAgICAgICAgICBjID09IChjaGFyKTB4MDAzQyB8fCBjID09IChjaGFyKTB4MDAzRSkgeworICAgICAgICAgICAgICAgICAgICBidWZbaWJ1ZisrXSA9IChjaGFyKSBjOworICAgICAgICAgICAgICAgICAgICAvLyBJZiB3ZSBnbyBhIGJpdCBwYXN0IHRoZSBsb25nZXN0IHBvc3NpYmxlIG5hbWUgdGhlbiBhYm9ydAorICAgICAgICAgICAgICAgICAgICBpZiAoaWJ1ZiA9PSAoTE9OR0VTVF9OQU1FICsgNCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1vZGUgPSAwOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gSW52YWxpZCBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLS1jdXJzb3I7IC8vIEJhY2t1cCBhbmQgcmVwcm9jZXNzIHRoaXMgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgICAgIG1vZGUgPSAwOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgb2Zmc2V0cy5jb250ZXh0TGltaXQgKz0gbGltaXQgLSBvZmZzZXRzLmxpbWl0OworICAgICAgICBvZmZzZXRzLmxpbWl0ID0gbGltaXQ7CisgICAgICAgIC8vIEluIGluY3JlbWVudGFsIG1vZGUsIG9ubHkgYWR2YW5jZSB0aGUgY3Vyc29yIHVwIHRvIHRoZSBsYXN0CisgICAgICAgIC8vIG9wZW4gZGVsaW1pdGVyLCBpZiB3ZSBhcmUgaW4gbW9kZSAxLgorICAgICAgICBvZmZzZXRzLnN0YXJ0ID0gKG1vZGUgPT0gMSAmJiBpc0luY3JlbWVudGFsKSA/IG9wZW5Qb3MgOiBjdXJzb3I7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvTm9ybWFsaXphdGlvblRyYW5zbGl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Ob3JtYWxpemF0aW9uVHJhbnNsaXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iYmQwZmQzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvTm9ybWFsaXphdGlvblRyYW5zbGl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSw2NzEgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChDKSAyMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICAwNi8wOC8wMSAgICBhbGl1ICAgICAgICBDcmVhdGlvbi4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CisKKy8qKgorICogQGF1dGhvciBBbGFuIExpdQorICogQHZlcnNpb24gJFJDU2ZpbGU6IE5vcm1hbGl6YXRpb25UcmFuc2xpdGVyYXRvci5qYXZhLHYgJCAkUmV2aXNpb246IDEuMTkgJCAkRGF0ZTogMjAwMi8wNy8yNyAwMTowNDo1NCAkCisgKi8KK2ZpbmFsIGNsYXNzIE5vcm1hbGl6YXRpb25UcmFuc2xpdGVyYXRvciBleHRlbmRzIFRyYW5zbGl0ZXJhdG9yIHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IGZhbHNlOworCisgICAgLyoqCisgICAgICogVGhlIG5vcm1hbGl6YXRpb24gbW9kZSBvZiB0aGlzIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqLworICAgIHByaXZhdGUgTm9ybWFsaXplci5Nb2RlIG1vZGU7CisKKyAgICAvKioKKyAgICAgKiBOb3JtYWxpemF0aW9uIG9wdGlvbnMgZm9yIHRoaXMgdHJhbnNsaXRlcmF0b3IuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgb3B0aW9uczsKKworICAgIC8qKgorICAgICAqIFRoZSBzZXQgb2YgInVuc2FmZSBzdGFydCIgY2hhcmFjdGVycy4gIFRoZXNlIGFyZSBjaGFyYWN0ZXJzCisgICAgICogd2l0aCBjYz09MCBidXQgd2hpY2ggbWF5IGludGVyYWN0IHdpdGggcHJldmlvdXMgY2hhcmFjdGVycy4gIFdlCisgICAgICogZWZmZWN0aXZlbHkgY29uc2lkZXIgdGhlc2UgdG8gYmUgY2MhPTAsIGZvciBvdXIgcHVycG9zZXMuCisgICAgICoKKyAgICAgKiBGcm9tIGh0dHA6Ly93d3cubWFjY2hpYXRvLmNvbS91dGMvTkZVbnNhZmVTdGFydC0zLjEuMWRYLnR4dAorICAgICAqIEdlbmVyYXRlZCBpbiB1bmljb2RldG9vbHMsIE5GU2tpcHBhYmxlCisgICAgICoKKyAgICAgKi8KKyAgICAgCisgICAgc3RhdGljIGZpbmFsIFVuaWNvZGVTZXRbXSBVTlNBRkVfU1RBUlRTID0gbmV3IFVuaWNvZGVTZXRbNF07CisgICAgc3RhdGljIGZpbmFsIFVuaWNvZGVTZXRbXSBTS0lQUEFCTEVTID0gbmV3IFVuaWNvZGVTZXRbNF07CisgICAgCisgICAgc3RhdGljIGZpbmFsIGludAorICAgICAgICBEID0gMCwgQyA9IDEsIEtEPSAyLCBLQyA9IDM7CisgICAgCisgICAgLy8gSW5zdGFuY2UgZGF0YSwgc2ltcGx5IHBvaW50ZXIgdG8gb25lIG9mIHRoZSBzZXRzIGJlbG93CisgICAgZmluYWwgVW5pY29kZVNldCBVTlNBRkVfU1RBUlQ7CisgICAgZmluYWwgVW5pY29kZVNldCBTS0lQUEFCTEU7CisgICAgCisgICAgLyoqCisgICAgICogU3lzdGVtIHJlZ2lzdHJhdGlvbiBob29rLgorICAgICAqLworICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyKCkgeworICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoIkFueS1ORkMiLCBuZXcgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXphdGlvblRyYW5zbGl0ZXJhdG9yLgorICAgICAgICAgICAgICAgICAgICBnZXRJbnN0YW5jZShOb3JtYWxpemVyLk5GQyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoIkFueS1ORkQiLCBuZXcgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXphdGlvblRyYW5zbGl0ZXJhdG9yLgorICAgICAgICAgICAgICAgICAgICBnZXRJbnN0YW5jZShOb3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoIkFueS1ORktDIiwgbmV3IFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkoKSB7CisgICAgICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6YXRpb25UcmFuc2xpdGVyYXRvci4KKyAgICAgICAgICAgICAgICAgICAgZ2V0SW5zdGFuY2UoTm9ybWFsaXplci5ORktDKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiQW55LU5GS0QiLCBuZXcgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXphdGlvblRyYW5zbGl0ZXJhdG9yLgorICAgICAgICAgICAgICAgICAgICBnZXRJbnN0YW5jZShOb3JtYWxpemVyLk5GS0QpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJTcGVjaWFsSW52ZXJzZSgiTkZDIiwgIk5GRCIsIHRydWUpOworICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlclNwZWNpYWxJbnZlcnNlKCJORktDIiwgIk5GS0QiLCB0cnVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGYWN0b3J5IG1ldGhvZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIE5vcm1hbGl6YXRpb25UcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShOb3JtYWxpemVyLk1vZGUgbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb3B0KSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBpZCA9IG5ldyBTdHJpbmdCdWZmZXIoIk5GIik7CisgICAgICAgIGludCBjaG9pY2UgPSAwOworICAgICAgICBpZihtPT1Ob3JtYWxpemVyLk5GQyl7CisgICAgICAgICAgICBpZC5hcHBlbmQoIkMiKTsKKyAgICAgICAgICAgIGNob2ljZSB8PSBDOworICAgICAgICB9ZWxzZSBpZihtPT1Ob3JtYWxpemVyLk5GS0MpeworICAgICAgICAgICAgaWQuYXBwZW5kKCJLQyIpOworICAgICAgICAgICAgY2hvaWNlIHw9IEtDOworICAgICAgICB9ZWxzZSBpZihtPT1Ob3JtYWxpemVyLk5GRCl7CisgICAgICAgICAgICBpZC5hcHBlbmQoIkQiKTsKKyAgICAgICAgICAgIGNob2ljZSB8PSBEOworICAgICAgICB9ZWxzZSBpZihtPT1Ob3JtYWxpemVyLk5GS0QpeworICAgICAgICAgICAgaWQuYXBwZW5kKCJLRCIpOworICAgICAgICAgICAgY2hvaWNlIHw9IEtEOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKmlmIChtLmNvbXBhdCgpKSB7CisgICAgICAgICAgICBpZC5hcHBlbmQoJ0snKTsKKyAgICAgICAgICAgIGNob2ljZSB8PSBLRDsKKyAgICAgICAgfQorICAgICAgICBpZiAobS5jb21wb3NlKCkpIHsKKyAgICAgICAgICAgIGlkLmFwcGVuZCgnQycpOworICAgICAgICAgICAgY2hvaWNlIHw9IEM7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZC5hcHBlbmQoJ0QnKTsKKyAgICAgICAgfSovCisgICAgICAgIHJldHVybiBuZXcgTm9ybWFsaXphdGlvblRyYW5zbGl0ZXJhdG9yKGlkLnRvU3RyaW5nKCksIG0sIGNob2ljZSwgb3B0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGYWN0b3J5IG1ldGhvZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIE5vcm1hbGl6YXRpb25UcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShOb3JtYWxpemVyLk1vZGUgbSkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UobSwgMCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqLworICAgIHByaXZhdGUgTm9ybWFsaXphdGlvblRyYW5zbGl0ZXJhdG9yKFN0cmluZyBpZCwgTm9ybWFsaXplci5Nb2RlIG0sIGludCBzdGFydENob2ljZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb3B0KSB7CisgICAgICAgIHN1cGVyKGlkLCBudWxsKTsKKyAgICAgICAgbW9kZSA9IG07CisgICAgICAgIG9wdGlvbnMgPSBvcHQ7CisgICAgICAgIFVOU0FGRV9TVEFSVCA9IFVOU0FGRV9TVEFSVFNbc3RhcnRDaG9pY2VdOworICAgICAgICBTS0lQUEFCTEUgPSBTS0lQUEFCTEVTW3N0YXJ0Q2hvaWNlXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRzIHtAbGluayBUcmFuc2xpdGVyYXRvciNoYW5kbGVUcmFuc2xpdGVyYXRlfS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVUcmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbiBvZmZzZXRzLCBib29sZWFuIGlzSW5jcmVtZW50YWwpIHsKKyAgICAgICAgaW50IHN0YXJ0ID0gb2Zmc2V0cy5zdGFydDsKKyAgICAgICAgaW50IGxpbWl0ID0gb2Zmc2V0cy5saW1pdDsKKyAgICAgICAgaWYgKHN0YXJ0ID49IGxpbWl0KSByZXR1cm47CisKKyAgICAgICAgaW50IG92ZXJhbGxEZWx0YSA9IDA7CisgICAgICAgICAgICAKKyAgICAgICAgLy8gV2FsayB0aHJvdWdoIHRoZSBzdHJpbmcgbG9va2luZyBmb3Igc2FmZSBjaGFyYWN0ZXJzLgorICAgICAgICAvLyBXaGVuZXZlciB5b3UgaGl0IG9uZSBub3JtYWxpemUgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIGxhc3QKKyAgICAgICAgLy8gc2FmZSBjaGFyYWN0ZXIgdXAgdG8ganVzdCBiZWZvcmUgdGhlIG5leHQgc2FmZSBjaGFyYWN0ZXIKKyAgICAgICAgLy8gQWxzbywgaWYgeW91IGhpdCB0aGUgZW5kIGFuZCB3ZSBhcmUgbm90IGluIGluY3JlbWVudGFsIG1vZGUsCisgICAgICAgIC8vIGRvIHRvIGVuZC4KKyAgICAgICAgICAgIAorICAgICAgICAvLyBUT0RPOiBmaXggZm9yIHN1cnJvZ2F0ZXMKKyAgICAgICAgLy8gVE9ETzogYWRkIFF1aWNrQ2hlY2ssIHNvIHdlIHJhcmVseSBjb252ZXJ0IE9LIHN0dWZmCisgICAgICAgICAgICAKKyAgICAgICAgaW50IGxhc3RTYWZlID0gc3RhcnQ7IC8vIGdvIGJhY2sgdG8gc3RhcnQgaW4gYW55IGV2ZW50CisgICAgICAgIGludCBjcDsKKyAgICAgICAgZm9yIChpbnQgaSA9IHN0YXJ0KzE7IGkgPCBsaW1pdDsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICBjcCA9IHRleHQuY2hhcjMyQXQoaSk7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5nZXRDb21iaW5pbmdDbGFzcyhjcCkgPT0gMCAmJiAhVU5TQUZFX1NUQVJULmNvbnRhaW5zKGNwKSkgeworICAgICAgICAgICAgICAgIGludCBkZWx0YSA9IGNvbnZlcnQodGV4dCwgbGFzdFNhZmUsIGksIG51bGwpOworICAgICAgICAgICAgICAgIGkgKz0gZGVsdGE7CisgICAgICAgICAgICAgICAgbGltaXQgKz0gZGVsdGE7CisgICAgICAgICAgICAgICAgb3ZlcmFsbERlbHRhICs9IGRlbHRhOworICAgICAgICAgICAgICAgIGxhc3RTYWZlID0gaTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoIWlzSW5jcmVtZW50YWwpIHsKKyAgICAgICAgICAgIGludCBkZWx0YSA9IGNvbnZlcnQodGV4dCwgbGFzdFNhZmUsIGxpbWl0LCBudWxsKTsKKyAgICAgICAgICAgIG92ZXJhbGxEZWx0YSArPSBkZWx0YTsKKyAgICAgICAgICAgIGxhc3RTYWZlID0gbGltaXQgKyBkZWx0YTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFdlIGFyZSBpbmNyZW1lbnRhbCwgc28gYWNjZXB0IHRoZSBsYXN0IGNoYXJhY3RlcnMgSUYgdGhleSB0dXJuIGludG8gU0tJUFBBQkxFcworICAgICAgICAgICAgaW50IGRlbHRhID0gY29udmVydCh0ZXh0LCBsYXN0U2FmZSwgbGltaXQsIFNLSVBQQUJMRSk7CisgICAgICAgICAgICBpZiAoZGVsdGEgIT0gSW50ZWdlci5NSU5fVkFMVUUpIHsKKyAgICAgICAgICAgICAgICBvdmVyYWxsRGVsdGEgKz0gZGVsdGE7CisgICAgICAgICAgICAgICAgbGFzdFNhZmUgPSBsaW1pdCArIGRlbHRhOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG9mZnNldHMuY29udGV4dExpbWl0ICs9IG92ZXJhbGxEZWx0YTsKKyAgICAgICAgb2Zmc2V0cy5saW1pdCArPSBvdmVyYWxsRGVsdGE7CisgICAgICAgIG9mZnNldHMuc3RhcnQgPSBsYXN0U2FmZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29udmVydHMgdGhlIHJhbmdlIGZyb20gbGFzdFNhZmUgdG8gbGltaXQuCisgICAgICogQHBhcmFtIHZlcmlmeSBJZiBub24tbnVsbCwgY2hlY2sgdG8gc2VlIHRoYXQgYWxsIHJlcGxhY2VtZW50IGNoYXJhY3RlcnMgYXJlIGluIGl0LiBJZiBub3QsCisgICAgICogYWJvcnQgdGhlIGNvbnZlcnNpb24gYW5kIHJldHVybiBJbnRlZ2VyLk1JTl9WQUxVRS4KKyAgICAgKiBAcmV0dXJuIHJldHVybiB0aGUgZGVsdGEgaW4gbGVuZ3RoIChuZXcgLSBvbGQpLCBvciBJbnRlZ2VyLk1JTl9WQUxVRSBpZiB0aGUgdmVyaWZ5IGFib3J0ZWQuCisgICAgICovCisgICAgaW50IGNvbnZlcnQoUmVwbGFjZWFibGUgdGV4dCwgaW50IGxhc3RTYWZlLCBpbnQgbGltaXQsIFVuaWNvZGVTZXQgdmVyaWZ5KSB7ICAgICAgICAKKyAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oInQ6ICIgKyBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHkuaGV4KHRleHQudG9TdHJpbmcoKSkgKyAiLCBzOiAiICsgbGFzdFNhZmUgKyAiLCBsOiAiICsgbGltaXQpOworCisgICAgICAgIGludCBsZW4gPSBsaW1pdCAtIGxhc3RTYWZlOworICAgICAgICBpZiAoYnVmZmVyLmxlbmd0aCA8IGxlbikgeworICAgICAgICAgICAgYnVmZmVyID0gbmV3IGNoYXJbbGVuXTsgLy8gcmFyZSwgYW5kIHdlIGRvbid0IGNhcmUgaWYgd2UgZ3JvdyB0b28gbGFyZ2UKKyAgICAgICAgfQorICAgICAgICB0ZXh0LmdldENoYXJzKGxhc3RTYWZlLCBsaW1pdCwgYnVmZmVyLCAwKTsKKyAgICAgICAgU3RyaW5nIGlucHV0ID0gbmV3IFN0cmluZyhidWZmZXIsIDAsIGxlbik7IC8vIFRPRE86IGZpeCBub3JtYWxpemVyIHRvIHRha2UgY2hhcltdCisgICAgICAgIFN0cmluZyBvdXRwdXQgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShpbnB1dCwgbW9kZSk7CisgICAgICAgIAorICAgICAgICAvLyB2ZXJpZnkgT0ssIGlmIHNwZWNpZmllZAorICAgICAgICBpZiAodmVyaWZ5ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGJvb2xlYW4gc2tpcCA9ICFTS0lQUEFCTEUuY29udGFpbnNBbGwob3V0cHV0KTsKKyAgICAgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigoc2tpcCA/ICIgIFNLSVA6ICIgOiAiTk9TS0lQOiAiKSAKKyAgICAgICAgICAgICAgICAgICAgKyBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHkuZXNjYXBlKGlucHV0KSAKKyAgICAgICAgICAgICAgICAgICAgKyAiID0+ICIgKyBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHkuZXNjYXBlKG91dHB1dCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHNraXApIHJldHVybiBJbnRlZ2VyLk1JTl9WQUxVRTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKG91dHB1dC5lcXVhbHMoaW5wdXQpKSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICB0ZXh0LnJlcGxhY2UobGFzdFNhZmUsIGxpbWl0LCBvdXRwdXQpOworICAgICAgICByZXR1cm4gb3V0cHV0Lmxlbmd0aCgpIC0gbGVuOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGNoYXIgYnVmZmVyW10gPSBuZXcgY2hhclszMF07CisgICAgCisgICAgc3RhdGljIHsKKyAgICAgICAgVU5TQUZFX1NUQVJUU1tEXSA9IG5ldyBVbmljb2RlU2V0KCJbXHUwRjczXHUwRjc1XHUwRjgxXSIsIGZhbHNlKTsKKyAgICAgICAgVU5TQUZFX1NUQVJUU1tDXSA9IG5ldyBVbmljb2RlU2V0KCJbXHUwOUJFXHUwOUQ3XHUwQjNFXHUwQjU2LVx1MEI1N1x1MEJCRVx1MEJEN1x1MENDMlx1MENENS1cdTBDRDYiCisgICAgICAgICAgICArICJcdTBEM0VcdTBENTdcdTBEQ0ZcdTBEREZcdTBGNzNcdTBGNzVcdTBGODFcdTEwMkVcdTExNjEtXHUxMTc1XHUxMUE4LVx1MTFDMl0iLCBmYWxzZSk7CisgICAgICAgIFVOU0FGRV9TVEFSVFNbS0RdID0gbmV3IFVuaWNvZGVTZXQoIltcdTBGNzNcdTBGNzVcdTBGODFcdUZGOUUtXHVGRjlGXSIsIGZhbHNlKTsKKyAgICAgICAgVU5TQUZFX1NUQVJUU1tLQ10gPSBuZXcgVW5pY29kZVNldCgiW1x1MDlCRVx1MDlEN1x1MEIzRVx1MEI1Ni1cdTBCNTdcdTBCQkVcdTBCRDdcdTBDQzJcdTBDRDUtXHUwQ0Q2IgorICAgICAgICAgICAgKyAiXHUwRDNFXHUwRDU3XHUwRENGXHUwRERGXHUwRjczXHUwRjc1XHUwRjgxXHUxMDJFXHUxMTYxLVx1MTE3NVx1MTFBOC1cdTExQzJcdTMxMzNcdTMxMzUtXHUzMTM2IgorICAgICAgICAgICAgKyAiXHUzMTNBLVx1MzEzRlx1MzE0Ri1cdTMxNjNcdUZGOUUtXHVGRjlGXHVGRkEzXHVGRkE1LVx1RkZBNlx1RkZBQS1cdUZGQUZcdUZGQzItXHVGRkM3XHVGRkNBLVx1RkZDRiIKKyAgICAgICAgICAgICsgIlx1RkZEMi1cdUZGRDdcdUZGREEtXHVGRkRDXSIsIGZhbHNlKTsKKyAgICAgICAgICAgIAorICAgICAgICBTS0lQUEFCTEVTW0RdID0gbmV3IFVuaWNvZGVTZXQoCisJICAgICAgICAiW15cXHUwMEMwLVxcdTAwQzVcXHUwMEM3LVxcdTAwQ0ZcXHUwMEQxLVxcdTAwRDZcXHUwMEQ5LVxcdTAwREQiCisgICAgICAgICAgICArICJcXHUwMEUwLVxcdTAwRTVcXHUwMEU3LVxcdTAwRUZcXHUwMEYxLVxcdTAwRjZcXHUwMEY5LVxcdTAwRkQiCisgICAgICAgICAgICArICJcXHUwMEZGLVxcdTAxMEZcXHUwMTEyLVxcdTAxMjVcXHUwMTI4LVxcdTAxMzBcXHUwMTM0LVxcdTAxMzciCisgICAgICAgICAgICArICJcXHUwMTM5LVxcdTAxM0VcXHUwMTQzLVxcdTAxNDhcXHUwMTRDLVxcdTAxNTFcXHUwMTU0LVxcdTAxNjUiCisgICAgICAgICAgICArICJcXHUwMTY4LVxcdTAxN0VcXHUwMUEwLVxcdTAxQTFcXHUwMUFGLVxcdTAxQjBcXHUwMUNELVxcdTAxREMiCisgICAgICAgICAgICArICJcXHUwMURFLVxcdTAxRTNcXHUwMUU2LVxcdTAxRjBcXHUwMUY0LVxcdTAxRjVcXHUwMUY4LVxcdTAyMUIiCisgICAgICAgICAgICArICJcXHUwMjFFLVxcdTAyMUZcXHUwMjI2LVxcdTAyMzNcXHUwMzAwLVxcdTAzNEVcXHUwMzYwLVxcdTAzNkYiCisgICAgICAgICAgICArICJcXHUwMzc0XFx1MDM3RVxcdTAzODUtXFx1MDM4QVxcdTAzOENcXHUwMzhFLVxcdTAzOTBcXHUwM0FBLSIKKyAgICAgICAgICAgICsgIlxcdTAzQjBcXHUwM0NBLVxcdTAzQ0VcXHUwM0QzLVxcdTAzRDRcXHUwNDAwLVxcdTA0MDFcXHUwNDAzIgorICAgICAgICAgICAgKyAiXFx1MDQwN1xcdTA0MEMtXFx1MDQwRVxcdTA0MTlcXHUwNDM5XFx1MDQ1MC1cXHUwNDUxXFx1MDQ1MyIKKyAgICAgICAgICAgICsgIlxcdTA0NTdcXHUwNDVDLVxcdTA0NUVcXHUwNDc2LVxcdTA0NzdcXHUwNDgzLVxcdTA0ODZcXHUwNEMxLSIKKyAgICAgICAgICAgICsgIlxcdTA0QzJcXHUwNEQwLVxcdTA0RDNcXHUwNEQ2LVxcdTA0RDdcXHUwNERBLVxcdTA0REZcXHUwNEUyLSIKKyAgICAgICAgICAgICsgIlxcdTA0RTdcXHUwNEVBLVxcdTA0RjVcXHUwNEY4LVxcdTA0RjlcXHUwNTkxLVxcdTA1QTFcXHUwNUEzLSIKKyAgICAgICAgICAgICsgIlxcdTA1QjlcXHUwNUJCLVxcdTA1QkRcXHUwNUJGXFx1MDVDMS1cXHUwNUMyXFx1MDVDNFxcdTA2MjItIgorICAgICAgICAgICAgKyAiXFx1MDYyNlxcdTA2NEItXFx1MDY1NVxcdTA2NzBcXHUwNkMwXFx1MDZDMlxcdTA2RDNcXHUwNkQ2LSIKKyAgICAgICAgICAgICsgIlxcdTA2RENcXHUwNkRGLVxcdTA2RTRcXHUwNkU3LVxcdTA2RThcXHUwNkVBLVxcdTA2RURcXHUwNzExIgorICAgICAgICAgICAgKyAiXFx1MDczMC1cXHUwNzRBXFx1MDkyOVxcdTA5MzFcXHUwOTM0XFx1MDkzQ1xcdTA5NERcXHUwOTUxLSIKKyAgICAgICAgICAgICsgIlxcdTA5NTRcXHUwOTU4LVxcdTA5NUZcXHUwOUJDXFx1MDlDQi1cXHUwOUNEXFx1MDlEQy1cXHUwOUREIgorICAgICAgICAgICAgKyAiXFx1MDlERlxcdTBBMzNcXHUwQTM2XFx1MEEzQ1xcdTBBNERcXHUwQTU5LVxcdTBBNUJcXHUwQTVFXFx1MEFCQyIKKyAgICAgICAgICAgICsgIlxcdTBBQ0RcXHUwQjNDXFx1MEI0OFxcdTBCNEItXFx1MEI0RFxcdTBCNUMtXFx1MEI1RFxcdTBCOTQiCisgICAgICAgICAgICArICJcXHUwQkNBLVxcdTBCQ0RcXHUwQzQ4XFx1MEM0RFxcdTBDNTUtXFx1MEM1NlxcdTBDQzBcXHUwQ0M3LSIKKyAgICAgICAgICAgICsgIlxcdTBDQzhcXHUwQ0NBLVxcdTBDQ0JcXHUwQ0NEXFx1MEQ0QS1cXHUwRDREXFx1MERDQVxcdTBEREEiCisgICAgICAgICAgICArICJcXHUwRERDLVxcdTBEREVcXHUwRTM4LVxcdTBFM0FcXHUwRTQ4LVxcdTBFNEJcXHUwRUI4LVxcdTBFQjkiCisgICAgICAgICAgICArICJcXHUwRUM4LVxcdTBFQ0JcXHUwRjE4LVxcdTBGMTlcXHUwRjM1XFx1MEYzN1xcdTBGMzlcXHUwRjQzIgorICAgICAgICAgICAgKyAiXFx1MEY0RFxcdTBGNTJcXHUwRjU3XFx1MEY1Q1xcdTBGNjlcXHUwRjcxLVxcdTBGNzZcXHUwRjc4XFx1MEY3QSIKKyAgICAgICAgICAgICsgIi1cXHUwRjdEXFx1MEY4MC1cXHUwRjg0XFx1MEY4Ni1cXHUwRjg3XFx1MEY5M1xcdTBGOURcXHUwRkEyIgorICAgICAgICAgICAgKyAiXFx1MEZBN1xcdTBGQUNcXHUwRkI5XFx1MEZDNlxcdTEwMjZcXHUxMDM3XFx1MTAzOVxcdTE3MTRcXHUxNzM0IgorICAgICAgICAgICAgKyAiXFx1MTdEMlxcdTE4QTlcXHUxRTAwLVxcdTFFOTlcXHUxRTlCXFx1MUVBMC1cXHUxRUY5XFx1MUYwMC0iCisgICAgICAgICAgICArICJcXHUxRjE1XFx1MUYxOC1cXHUxRjFEXFx1MUYyMC1cXHUxRjQ1XFx1MUY0OC1cXHUxRjREXFx1MUY1MC0iCisgICAgICAgICAgICArICJcXHUxRjU3XFx1MUY1OVxcdTFGNUJcXHUxRjVEXFx1MUY1Ri1cXHUxRjdEXFx1MUY4MC1cXHUxRkI0IgorICAgICAgICAgICAgKyAiXFx1MUZCNi1cXHUxRkJDXFx1MUZCRVxcdTFGQzEtXFx1MUZDNFxcdTFGQzYtXFx1MUZEM1xcdTFGRDYtIgorICAgICAgICAgICAgKyAiXFx1MUZEQlxcdTFGREQtXFx1MUZFRlxcdTFGRjItXFx1MUZGNFxcdTFGRjYtXFx1MUZGRFxcdTIwMDAtIgorICAgICAgICAgICAgKyAiXFx1MjAwMVxcdTIwRDAtXFx1MjBEQ1xcdTIwRTFcXHUyMEU1LVxcdTIwRUFcXHUyMTI2XFx1MjEyQS0iCisgICAgICAgICAgICArICJcXHUyMTJCXFx1MjE5QS1cXHUyMTlCXFx1MjFBRVxcdTIxQ0QtXFx1MjFDRlxcdTIyMDRcXHUyMjA5IgorICAgICAgICAgICAgKyAiXFx1MjIwQ1xcdTIyMjRcXHUyMjI2XFx1MjI0MVxcdTIyNDRcXHUyMjQ3XFx1MjI0OVxcdTIyNjBcXHUyMjYyIgorICAgICAgICAgICAgKyAiXFx1MjI2RC1cXHUyMjcxXFx1MjI3NC1cXHUyMjc1XFx1MjI3OC1cXHUyMjc5XFx1MjI4MC1cXHUyMjgxIgorICAgICAgICAgICAgKyAiXFx1MjI4NC1cXHUyMjg1XFx1MjI4OC1cXHUyMjg5XFx1MjJBQy1cXHUyMkFGXFx1MjJFMC1cXHUyMkUzIgorICAgICAgICAgICAgKyAiXFx1MjJFQS1cXHUyMkVEXFx1MjMyOS1cXHUyMzJBXFx1MkFEQ1xcdTMwMkEtXFx1MzAyRlxcdTMwNEMiCisgICAgICAgICAgICArICJcXHUzMDRFXFx1MzA1MFxcdTMwNTJcXHUzMDU0XFx1MzA1NlxcdTMwNThcXHUzMDVBXFx1MzA1Q1xcdTMwNUUiCisgICAgICAgICAgICArICJcXHUzMDYwXFx1MzA2MlxcdTMwNjVcXHUzMDY3XFx1MzA2OVxcdTMwNzAtXFx1MzA3MVxcdTMwNzMtIgorICAgICAgICAgICAgKyAiXFx1MzA3NFxcdTMwNzYtXFx1MzA3N1xcdTMwNzktXFx1MzA3QVxcdTMwN0MtXFx1MzA3RFxcdTMwOTQiCisgICAgICAgICAgICArICJcXHUzMDk5LVxcdTMwOUFcXHUzMDlFXFx1MzBBQ1xcdTMwQUVcXHUzMEIwXFx1MzBCMlxcdTMwQjRcXHUzMEI2IgorICAgICAgICAgICAgKyAiXFx1MzBCOFxcdTMwQkFcXHUzMEJDXFx1MzBCRVxcdTMwQzBcXHUzMEMyXFx1MzBDNVxcdTMwQzdcXHUzMEM5IgorICAgICAgICAgICAgKyAiXFx1MzBEMC1cXHUzMEQxXFx1MzBEMy1cXHUzMEQ0XFx1MzBENi1cXHUzMEQ3XFx1MzBEOS1cXHUzMERBIgorICAgICAgICAgICAgKyAiXFx1MzBEQy1cXHUzMEREXFx1MzBGNFxcdTMwRjctXFx1MzBGQVxcdTMwRkVcXHVBQzAwLVxcdUQ3QTMiCisgICAgICAgICAgICArICJcXHVGOTAwLVxcdUZBMERcXHVGQTEwXFx1RkExMlxcdUZBMTUtXFx1RkExRVxcdUZBMjBcXHVGQTIyIgorICAgICAgICAgICAgKyAiXFx1RkEyNS1cXHVGQTI2XFx1RkEyQS1cXHVGQTJEXFx1RkEzMC1cXHVGQTZBXFx1RkIxRC1cXHVGQjFGIgorICAgICAgICAgICAgKyAiXFx1RkIyQS1cXHVGQjM2XFx1RkIzOC1cXHVGQjNDXFx1RkIzRVxcdUZCNDAtXFx1RkI0MVxcdUZCNDMtIgorICAgICAgICAgICAgKyAiXFx1RkI0NFxcdUZCNDYtXFx1RkI0RVxcdUZFMjAtXFx1RkUyM1xcVTAwMDFEMTVFLVxcVTAwMDFEMTY5IgorICAgICAgICAgICAgKyAiXFxVMDAwMUQxNkQtXFxVMDAwMUQxNzJcXFUwMDAxRDE3Qi1cXFUwMDAxRDE4MlxcVTAwMDFEMTg1LSIKKyAgICAgICAgICAgICsgIlxcVTAwMDFEMThCXFxVMDAwMUQxQUEtXFxVMDAwMUQxQURcXFUwMDAxRDFCQi1cXFUwMDAxRDFDMFxcVTAwMDIiCisgICAgICAgICAgICArICJGODAwLVxcVTAwMDJGQTFEXSIsIGZhbHNlKTsKKy8qVW5pY29kZTogCisgICAgICAiW17ALcXHLc/RLdbZLd3gLeXnLe/xLfb5Lf3/LT8/LT8/LT8/LT8/LT8/LT8/LT8/LT8/LZ4/LT8/LT8/LT8/LSIKKyAgICArICI/Py0/Py0/Py0/Py0/Py0/Py0/Py0/Pz8/LT8/Py0/Py0/Py0/Py0/Py0/Pz8/LT8/Pz8tPz8/Py0/Py0/Py0/IgorICAgICsgIj8tPz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8/LT8/Py0/Py0/Pz8/Pz8tPz8tPz8tPz8tPz8/LT8/Pz8iCisgICAgKyAiPz8/LT8/LT8/Py0/Py0/Pz8/Pz8/LT8/Pz8/Pz8tPz8tPz8/LT8/Pz8tPz8/LT8/LT8/Py0/Pz8/LT8/LT8/LSIKKyAgICArICI/Py0/Py0/Py0/Pz8/Pz8/Pz8/Py0/Pz8tPz8tPz8tPz8/Pz8/Pz8/Pz8/Pz8/Py0/Pz8tPz8tPz8tPz8tPz8tIgorICAgICsgIj8/LT8/Pz8/LT8/LT8/LT8/Py0/Py0/Py0/Py0/Py0/Py0/XD8tXD8/LT8/Py0/Pz8tPz8tPz8/LT8/Pz8/Pz8iCisgICAgKyAiPz8/Pz8/LT8/LT8/LT8/LT8/LT8/LT8/LT8/LT8/LT8/LT8/Py0/Pz8/Pz8/Pz8/Pz8/Pz8/Py0/Py0/Py0/PyIKKyAgICArICItPz8tPz8/LT8/Pz8/Pz8/Pz8/Pz8/Pz8/Py0/Py0/Py0/Py0/Py0/Pz8tPz8/LT8/LT8/Pz8tPz8/Py0/Py0/IgorICAgICsgIj8tPz8tPz8tPz8tPz8/LT8/LT8/LT8/LT8/LT8/LT8/LT8/LT8/LT8/LT8/LT9dIiovCisKKyAgICAgICAgU0tJUFBBQkxFU1tDXSA9IG5ldyBVbmljb2RlU2V0KAorCSAgICAgICAgIltePC0+QS1QUi1aYS1wci16XFx1MDBBOFxcdTAwQzAtXFx1MDBDRlxcdTAwRDEtXFx1MDBENlxcdTAwRDgtIgorICAgICAgICAgICAgKyAiXFx1MDBERFxcdTAwRTAtXFx1MDBFRlxcdTAwRjEtXFx1MDBGNlxcdTAwRjgtXFx1MDBGRFxcdTAwRkYtIgorICAgICAgICAgICAgKyAiXFx1MDEwM1xcdTAxMDYtXFx1MDEwRlxcdTAxMTItXFx1MDExN1xcdTAxMUEtXFx1MDEyMVxcdTAxMjQtIgorICAgICAgICAgICAgKyAiXFx1MDEyNVxcdTAxMjgtXFx1MDEyRFxcdTAxMzBcXHUwMTM5LVxcdTAxM0FcXHUwMTNELVxcdTAxM0UiCisgICAgICAgICAgICArICJcXHUwMTQzLVxcdTAxNDRcXHUwMTQ3LVxcdTAxNDhcXHUwMTRDLVxcdTAxNTFcXHUwMTU0LVxcdTAxNTUiCisgICAgICAgICAgICArICJcXHUwMTU4LVxcdTAxNURcXHUwMTYwLVxcdTAxNjFcXHUwMTY0LVxcdTAxNjVcXHUwMTY4LVxcdTAxNzEiCisgICAgICAgICAgICArICJcXHUwMTc0LVxcdTAxN0ZcXHUwMUEwLVxcdTAxQTFcXHUwMUFGLVxcdTAxQjBcXHUwMUI3XFx1MDFDRC0iCisgICAgICAgICAgICArICJcXHUwMURDXFx1MDFERS1cXHUwMUUxXFx1MDFFNi1cXHUwMUVCXFx1MDFGNC1cXHUwMUY1XFx1MDFGOC0iCisgICAgICAgICAgICArICJcXHUwMUZCXFx1MDIwMC1cXHUwMjFCXFx1MDIxRS1cXHUwMjFGXFx1MDIyNi1cXHUwMjMzXFx1MDI5MiIKKyAgICAgICAgICAgICsgIlxcdTAzMDAtXFx1MDM0RVxcdTAzNjAtXFx1MDM2RlxcdTAzNzRcXHUwMzdFXFx1MDM4N1xcdTAzOTEiCisgICAgICAgICAgICArICJcXHUwMzk1XFx1MDM5N1xcdTAzOTlcXHUwMzlGXFx1MDNBMVxcdTAzQTVcXHUwM0E5XFx1MDNBQ1xcdTAzQUUiCisgICAgICAgICAgICArICJcXHUwM0IxXFx1MDNCNVxcdTAzQjdcXHUwM0I5XFx1MDNCRlxcdTAzQzFcXHUwM0M1XFx1MDNDOS1cXHUwM0NCIgorICAgICAgICAgICAgKyAiXFx1MDNDRVxcdTAzRDJcXHUwNDA2XFx1MDQxMFxcdTA0MTNcXHUwNDE1LVxcdTA0MThcXHUwNDFBXFx1MDQxRSIKKyAgICAgICAgICAgICsgIlxcdTA0MjNcXHUwNDI3XFx1MDQyQlxcdTA0MkRcXHUwNDMwXFx1MDQzM1xcdTA0MzUtXFx1MDQzOFxcdTA0M0EiCisgICAgICAgICAgICArICJcXHUwNDNFXFx1MDQ0M1xcdTA0NDdcXHUwNDRCXFx1MDQ0RFxcdTA0NTZcXHUwNDc0LVxcdTA0NzVcXHUwNDgzIgorICAgICAgICAgICAgKyAiLVxcdTA0ODZcXHUwNEQ4LVxcdTA0RDlcXHUwNEU4LVxcdTA0RTlcXHUwNTkxLVxcdTA1QTFcXHUwNUEzLSIKKyAgICAgICAgICAgICsgIlxcdTA1QjlcXHUwNUJCLVxcdTA1QkRcXHUwNUJGXFx1MDVDMS1cXHUwNUMyXFx1MDVDNFxcdTA2MjItIgorICAgICAgICAgICAgKyAiXFx1MDYyM1xcdTA2MjdcXHUwNjQ4XFx1MDY0QS1cXHUwNjU1XFx1MDY3MFxcdTA2QzFcXHUwNkQyXFx1MDZENSIKKyAgICAgICAgICAgICsgIi1cXHUwNkRDXFx1MDZERi1cXHUwNkU0XFx1MDZFNy1cXHUwNkU4XFx1MDZFQS1cXHUwNkVEXFx1MDcxMSIKKyAgICAgICAgICAgICsgIlxcdTA3MzAtXFx1MDc0QVxcdTA5MjhcXHUwOTMwXFx1MDkzM1xcdTA5M0NcXHUwOTREXFx1MDk1MS0iCisgICAgICAgICAgICArICJcXHUwOTU0XFx1MDk1OC1cXHUwOTVGXFx1MDlCQ1xcdTA5QkVcXHUwOUM3XFx1MDlDRFxcdTA5RDdcXHUwOURDIgorICAgICAgICAgICAgKyAiLVxcdTA5RERcXHUwOURGXFx1MEEzM1xcdTBBMzZcXHUwQTNDXFx1MEE0RFxcdTBBNTktXFx1MEE1QiIKKyAgICAgICAgICAgICsgIlxcdTBBNUVcXHUwQUJDXFx1MEFDRFxcdTBCM0NcXHUwQjNFXFx1MEI0N1xcdTBCNERcXHUwQjU2LVxcdTBCNTciCisgICAgICAgICAgICArICJcXHUwQjVDLVxcdTBCNURcXHUwQjkyXFx1MEJCRVxcdTBCQzYtXFx1MEJDN1xcdTBCQ0RcXHUwQkQ3IgorICAgICAgICAgICAgKyAiXFx1MEM0NlxcdTBDNERcXHUwQzU1LVxcdTBDNTZcXHUwQ0JGXFx1MENDMlxcdTBDQzZcXHUwQ0NBXFx1MENDRCIKKyAgICAgICAgICAgICsgIlxcdTBDRDUtXFx1MENENlxcdTBEM0VcXHUwRDQ2LVxcdTBENDdcXHUwRDREXFx1MEQ1N1xcdTBEQ0EiCisgICAgICAgICAgICArICJcXHUwRENGXFx1MEREOVxcdTBERENcXHUwRERGXFx1MEUzOC1cXHUwRTNBXFx1MEU0OC1cXHUwRTRCIgorICAgICAgICAgICAgKyAiXFx1MEVCOC1cXHUwRUI5XFx1MEVDOC1cXHUwRUNCXFx1MEYxOC1cXHUwRjE5XFx1MEYzNVxcdTBGMzciCisgICAgICAgICAgICArICJcXHUwRjM5XFx1MEY0M1xcdTBGNERcXHUwRjUyXFx1MEY1N1xcdTBGNUNcXHUwRjY5XFx1MEY3MS1cXHUwRjc2IgorICAgICAgICAgICAgKyAiXFx1MEY3OFxcdTBGN0EtXFx1MEY3RFxcdTBGODAtXFx1MEY4NFxcdTBGODYtXFx1MEY4N1xcdTBGOTMiCisgICAgICAgICAgICArICJcXHUwRjlEXFx1MEZBMlxcdTBGQTdcXHUwRkFDXFx1MEZCOVxcdTBGQzZcXHUxMDI1XFx1MTAyRVxcdTEwMzciCisgICAgICAgICAgICArICJcXHUxMDM5XFx1MTEwMC1cXHUxMTEyXFx1MTE2MS1cXHUxMTc1XFx1MTFBOC1cXHUxMUMyXFx1MTcxNCIKKyAgICAgICAgICAgICsgIlxcdTE3MzRcXHUxN0QyXFx1MThBOVxcdTFFMDAtXFx1MUUwM1xcdTFFMEEtXFx1MUUwRlxcdTFFMTItIgorICAgICAgICAgICAgKyAiXFx1MUUxQlxcdTFFMjAtXFx1MUUyN1xcdTFFMkEtXFx1MUU0MVxcdTFFNDQtXFx1MUU1M1xcdTFFNTgtIgorICAgICAgICAgICAgKyAiXFx1MUU3RFxcdTFFODAtXFx1MUU4N1xcdTFFOEUtXFx1MUU5MVxcdTFFOTYtXFx1MUU5OVxcdTFFQTAtIgorICAgICAgICAgICAgKyAiXFx1MUVGM1xcdTFFRjYtXFx1MUVGOVxcdTFGMDAtXFx1MUYxMVxcdTFGMTgtXFx1MUYxOVxcdTFGMjAtIgorICAgICAgICAgICAgKyAiXFx1MUYzMVxcdTFGMzgtXFx1MUYzOVxcdTFGNDAtXFx1MUY0MVxcdTFGNDgtXFx1MUY0OVxcdTFGNTAtIgorICAgICAgICAgICAgKyAiXFx1MUY1MVxcdTFGNTlcXHUxRjYwLVxcdTFGNzFcXHUxRjczLVxcdTFGNzVcXHUxRjc3XFx1MUY3OSIKKyAgICAgICAgICAgICsgIlxcdTFGN0ItXFx1MUY3RFxcdTFGODAtXFx1MUY4MVxcdTFGODgtXFx1MUY4OVxcdTFGOTAtXFx1MUY5MSIKKyAgICAgICAgICAgICsgIlxcdTFGOTgtXFx1MUY5OVxcdTFGQTAtXFx1MUZBMVxcdTFGQTgtXFx1MUZBOVxcdTFGQjNcXHUxRkI2IgorICAgICAgICAgICAgKyAiXFx1MUZCQi1cXHUxRkJDXFx1MUZCRS1cXHUxRkJGXFx1MUZDM1xcdTFGQzZcXHUxRkM5XFx1MUZDQi0iCisgICAgICAgICAgICArICJcXHUxRkNDXFx1MUZEM1xcdTFGREJcXHUxRkUzXFx1MUZFQlxcdTFGRUUtXFx1MUZFRlxcdTFGRjNcXHUxRkY2IgorICAgICAgICAgICAgKyAiXFx1MUZGOVxcdTFGRkItXFx1MUZGRVxcdTIwMDAtXFx1MjAwMVxcdTIwRDAtXFx1MjBEQ1xcdTIwRTEiCisgICAgICAgICAgICArICJcXHUyMEU1LVxcdTIwRUFcXHUyMTI2XFx1MjEyQS1cXHUyMTJCXFx1MjE5MFxcdTIxOTJcXHUyMTk0IgorICAgICAgICAgICAgKyAiXFx1MjFEMFxcdTIxRDJcXHUyMUQ0XFx1MjIwM1xcdTIyMDhcXHUyMjBCXFx1MjIyM1xcdTIyMjVcXHUyMjNDIgorICAgICAgICAgICAgKyAiXFx1MjI0M1xcdTIyNDVcXHUyMjQ4XFx1MjI0RFxcdTIyNjFcXHUyMjY0LVxcdTIyNjVcXHUyMjcyLSIKKyAgICAgICAgICAgICsgIlxcdTIyNzNcXHUyMjc2LVxcdTIyNzdcXHUyMjdBLVxcdTIyN0RcXHUyMjgyLVxcdTIyODNcXHUyMjg2LSIKKyAgICAgICAgICAgICsgIlxcdTIyODdcXHUyMjkxLVxcdTIyOTJcXHUyMkEyXFx1MjJBOC1cXHUyMkE5XFx1MjJBQlxcdTIyQjItIgorICAgICAgICAgICAgKyAiXFx1MjJCNVxcdTIzMjktXFx1MjMyQVxcdTJBRENcXHUzMDJBLVxcdTMwMkZcXHUzMDQ2XFx1MzA0QiIKKyAgICAgICAgICAgICsgIlxcdTMwNERcXHUzMDRGXFx1MzA1MVxcdTMwNTNcXHUzMDU1XFx1MzA1N1xcdTMwNTlcXHUzMDVCXFx1MzA1RCIKKyAgICAgICAgICAgICsgIlxcdTMwNUZcXHUzMDYxXFx1MzA2NFxcdTMwNjZcXHUzMDY4XFx1MzA2RlxcdTMwNzJcXHUzMDc1XFx1MzA3OCIKKyAgICAgICAgICAgICsgIlxcdTMwN0JcXHUzMDk5LVxcdTMwOUFcXHUzMDlEXFx1MzBBNlxcdTMwQUJcXHUzMEFEXFx1MzBBRlxcdTMwQjEiCisgICAgICAgICAgICArICJcXHUzMEIzXFx1MzBCNVxcdTMwQjdcXHUzMEI5XFx1MzBCQlxcdTMwQkRcXHUzMEJGXFx1MzBDMVxcdTMwQzQiCisgICAgICAgICAgICArICJcXHUzMEM2XFx1MzBDOFxcdTMwQ0ZcXHUzMEQyXFx1MzBENVxcdTMwRDhcXHUzMERCXFx1MzBFRi1cXHUzMEYyIgorICAgICAgICAgICAgKyAiXFx1MzBGRFxcdUFDMDBcXHVBQzFDXFx1QUMzOFxcdUFDNTRcXHVBQzcwXFx1QUM4Q1xcdUFDQThcXHVBQ0M0IgorICAgICAgICAgICAgKyAiXFx1QUNFMFxcdUFDRkNcXHVBRDE4XFx1QUQzNFxcdUFENTBcXHVBRDZDXFx1QUQ4OFxcdUFEQTRcXHVBREMwIgorICAgICAgICAgICAgKyAiXFx1QUREQ1xcdUFERjhcXHVBRTE0XFx1QUUzMFxcdUFFNENcXHVBRTY4XFx1QUU4NFxcdUFFQTBcXHVBRUJDIgorICAgICAgICAgICAgKyAiXFx1QUVEOFxcdUFFRjRcXHVBRjEwXFx1QUYyQ1xcdUFGNDhcXHVBRjY0XFx1QUY4MFxcdUFGOUNcXHVBRkI4IgorICAgICAgICAgICAgKyAiXFx1QUZENFxcdUFGRjBcXHVCMDBDXFx1QjAyOFxcdUIwNDRcXHVCMDYwXFx1QjA3Q1xcdUIwOThcXHVCMEI0IgorICAgICAgICAgICAgKyAiXFx1QjBEMFxcdUIwRUNcXHVCMTA4XFx1QjEyNFxcdUIxNDBcXHVCMTVDXFx1QjE3OFxcdUIxOTRcXHVCMUIwIgorICAgICAgICAgICAgKyAiXFx1QjFDQ1xcdUIxRThcXHVCMjA0XFx1QjIyMFxcdUIyM0NcXHVCMjU4XFx1QjI3NFxcdUIyOTBcXHVCMkFDIgorICAgICAgICAgICAgKyAiXFx1QjJDOFxcdUIyRTRcXHVCMzAwXFx1QjMxQ1xcdUIzMzhcXHVCMzU0XFx1QjM3MFxcdUIzOENcXHVCM0E4IgorICAgICAgICAgICAgKyAiXFx1QjNDNFxcdUIzRTBcXHVCM0ZDXFx1QjQxOFxcdUI0MzRcXHVCNDUwXFx1QjQ2Q1xcdUI0ODhcXHVCNEE0IgorICAgICAgICAgICAgKyAiXFx1QjRDMFxcdUI0RENcXHVCNEY4XFx1QjUxNFxcdUI1MzBcXHVCNTRDXFx1QjU2OFxcdUI1ODRcXHVCNUEwIgorICAgICAgICAgICAgKyAiXFx1QjVCQ1xcdUI1RDhcXHVCNUY0XFx1QjYxMFxcdUI2MkNcXHVCNjQ4XFx1QjY2NFxcdUI2ODBcXHVCNjlDIgorICAgICAgICAgICAgKyAiXFx1QjZCOFxcdUI2RDRcXHVCNkYwXFx1QjcwQ1xcdUI3MjhcXHVCNzQ0XFx1Qjc2MFxcdUI3N0NcXHVCNzk4IgorICAgICAgICAgICAgKyAiXFx1QjdCNFxcdUI3RDBcXHVCN0VDXFx1QjgwOFxcdUI4MjRcXHVCODQwXFx1Qjg1Q1xcdUI4NzhcXHVCODk0IgorICAgICAgICAgICAgKyAiXFx1QjhCMFxcdUI4Q0NcXHVCOEU4XFx1QjkwNFxcdUI5MjBcXHVCOTNDXFx1Qjk1OFxcdUI5NzRcXHVCOTkwIgorICAgICAgICAgICAgKyAiXFx1QjlBQ1xcdUI5QzhcXHVCOUU0XFx1QkEwMFxcdUJBMUNcXHVCQTM4XFx1QkE1NFxcdUJBNzBcXHVCQThDIgorICAgICAgICAgICAgKyAiXFx1QkFBOFxcdUJBQzRcXHVCQUUwXFx1QkFGQ1xcdUJCMThcXHVCQjM0XFx1QkI1MFxcdUJCNkNcXHVCQjg4IgorICAgICAgICAgICAgKyAiXFx1QkJBNFxcdUJCQzBcXHVCQkRDXFx1QkJGOFxcdUJDMTRcXHVCQzMwXFx1QkM0Q1xcdUJDNjhcXHVCQzg0IgorICAgICAgICAgICAgKyAiXFx1QkNBMFxcdUJDQkNcXHVCQ0Q4XFx1QkNGNFxcdUJEMTBcXHVCRDJDXFx1QkQ0OFxcdUJENjRcXHVCRDgwIgorICAgICAgICAgICAgKyAiXFx1QkQ5Q1xcdUJEQjhcXHVCREQ0XFx1QkRGMFxcdUJFMENcXHVCRTI4XFx1QkU0NFxcdUJFNjBcXHVCRTdDIgorICAgICAgICAgICAgKyAiXFx1QkU5OFxcdUJFQjRcXHVCRUQwXFx1QkVFQ1xcdUJGMDhcXHVCRjI0XFx1QkY0MFxcdUJGNUNcXHVCRjc4IgorICAgICAgICAgICAgKyAiXFx1QkY5NFxcdUJGQjBcXHVCRkNDXFx1QkZFOFxcdUMwMDRcXHVDMDIwXFx1QzAzQ1xcdUMwNThcXHVDMDc0IgorICAgICAgICAgICAgKyAiXFx1QzA5MFxcdUMwQUNcXHVDMEM4XFx1QzBFNFxcdUMxMDBcXHVDMTFDXFx1QzEzOFxcdUMxNTRcXHVDMTcwIgorICAgICAgICAgICAgKyAiXFx1QzE4Q1xcdUMxQThcXHVDMUM0XFx1QzFFMFxcdUMxRkNcXHVDMjE4XFx1QzIzNFxcdUMyNTBcXHVDMjZDIgorICAgICAgICAgICAgKyAiXFx1QzI4OFxcdUMyQTRcXHVDMkMwXFx1QzJEQ1xcdUMyRjhcXHVDMzE0XFx1QzMzMFxcdUMzNENcXHVDMzY4IgorICAgICAgICAgICAgKyAiXFx1QzM4NFxcdUMzQTBcXHVDM0JDXFx1QzNEOFxcdUMzRjRcXHVDNDEwXFx1QzQyQ1xcdUM0NDhcXHVDNDY0IgorICAgICAgICAgICAgKyAiXFx1QzQ4MFxcdUM0OUNcXHVDNEI4XFx1QzRENFxcdUM0RjBcXHVDNTBDXFx1QzUyOFxcdUM1NDRcXHVDNTYwIgorICAgICAgICAgICAgKyAiXFx1QzU3Q1xcdUM1OThcXHVDNUI0XFx1QzVEMFxcdUM1RUNcXHVDNjA4XFx1QzYyNFxcdUM2NDBcXHVDNjVDIgorICAgICAgICAgICAgKyAiXFx1QzY3OFxcdUM2OTRcXHVDNkIwXFx1QzZDQ1xcdUM2RThcXHVDNzA0XFx1QzcyMFxcdUM3M0NcXHVDNzU4IgorICAgICAgICAgICAgKyAiXFx1Qzc3NFxcdUM3OTBcXHVDN0FDXFx1QzdDOFxcdUM3RTRcXHVDODAwXFx1QzgxQ1xcdUM4MzhcXHVDODU0IgorICAgICAgICAgICAgKyAiXFx1Qzg3MFxcdUM4OENcXHVDOEE4XFx1QzhDNFxcdUM4RTBcXHVDOEZDXFx1QzkxOFxcdUM5MzRcXHVDOTUwIgorICAgICAgICAgICAgKyAiXFx1Qzk2Q1xcdUM5ODhcXHVDOUE0XFx1QzlDMFxcdUM5RENcXHVDOUY4XFx1Q0ExNFxcdUNBMzBcXHVDQTRDIgorICAgICAgICAgICAgKyAiXFx1Q0E2OFxcdUNBODRcXHVDQUEwXFx1Q0FCQ1xcdUNBRDhcXHVDQUY0XFx1Q0IxMFxcdUNCMkNcXHVDQjQ4IgorICAgICAgICAgICAgKyAiXFx1Q0I2NFxcdUNCODBcXHVDQjlDXFx1Q0JCOFxcdUNCRDRcXHVDQkYwXFx1Q0MwQ1xcdUNDMjhcXHVDQzQ0IgorICAgICAgICAgICAgKyAiXFx1Q0M2MFxcdUNDN0NcXHVDQzk4XFx1Q0NCNFxcdUNDRDBcXHVDQ0VDXFx1Q0QwOFxcdUNEMjRcXHVDRDQwIgorICAgICAgICAgICAgKyAiXFx1Q0Q1Q1xcdUNENzhcXHVDRDk0XFx1Q0RCMFxcdUNEQ0NcXHVDREU4XFx1Q0UwNFxcdUNFMjBcXHVDRTNDIgorICAgICAgICAgICAgKyAiXFx1Q0U1OFxcdUNFNzRcXHVDRTkwXFx1Q0VBQ1xcdUNFQzhcXHVDRUU0XFx1Q0YwMFxcdUNGMUNcXHVDRjM4IgorICAgICAgICAgICAgKyAiXFx1Q0Y1NFxcdUNGNzBcXHVDRjhDXFx1Q0ZBOFxcdUNGQzRcXHVDRkUwXFx1Q0ZGQ1xcdUQwMThcXHVEMDM0IgorICAgICAgICAgICAgKyAiXFx1RDA1MFxcdUQwNkNcXHVEMDg4XFx1RDBBNFxcdUQwQzBcXHVEMERDXFx1RDBGOFxcdUQxMTRcXHVEMTMwIgorICAgICAgICAgICAgKyAiXFx1RDE0Q1xcdUQxNjhcXHVEMTg0XFx1RDFBMFxcdUQxQkNcXHVEMUQ4XFx1RDFGNFxcdUQyMTBcXHVEMjJDIgorICAgICAgICAgICAgKyAiXFx1RDI0OFxcdUQyNjRcXHVEMjgwXFx1RDI5Q1xcdUQyQjhcXHVEMkQ0XFx1RDJGMFxcdUQzMENcXHVEMzI4IgorICAgICAgICAgICAgKyAiXFx1RDM0NFxcdUQzNjBcXHVEMzdDXFx1RDM5OFxcdUQzQjRcXHVEM0QwXFx1RDNFQ1xcdUQ0MDhcXHVENDI0IgorICAgICAgICAgICAgKyAiXFx1RDQ0MFxcdUQ0NUNcXHVENDc4XFx1RDQ5NFxcdUQ0QjBcXHVENENDXFx1RDRFOFxcdUQ1MDRcXHVENTIwIgorICAgICAgICAgICAgKyAiXFx1RDUzQ1xcdUQ1NThcXHVENTc0XFx1RDU5MFxcdUQ1QUNcXHVENUM4XFx1RDVFNFxcdUQ2MDBcXHVENjFDIgorICAgICAgICAgICAgKyAiXFx1RDYzOFxcdUQ2NTRcXHVENjcwXFx1RDY4Q1xcdUQ2QThcXHVENkM0XFx1RDZFMFxcdUQ2RkNcXHVENzE4IgorICAgICAgICAgICAgKyAiXFx1RDczNFxcdUQ3NTBcXHVENzZDXFx1RDc4OFxcdUY5MDAtXFx1RkEwRFxcdUZBMTBcXHVGQTEyXFx1RkExNSIKKyAgICAgICAgICAgICsgIi1cXHVGQTFFXFx1RkEyMFxcdUZBMjJcXHVGQTI1LVxcdUZBMjZcXHVGQTJBLVxcdUZBMkRcXHVGQTMwLSIKKyAgICAgICAgICAgICsgIlxcdUZBNkFcXHVGQjFELVxcdUZCMUZcXHVGQjJBLVxcdUZCMzZcXHVGQjM4LVxcdUZCM0NcXHVGQjNFIgorICAgICAgICAgICAgKyAiXFx1RkI0MC1cXHVGQjQxXFx1RkI0My1cXHVGQjQ0XFx1RkI0Ni1cXHVGQjRFXFx1RkUyMC1cXHVGRTIzIgorICAgICAgICAgICAgKyAiXFxVMDAwMUQxNUUtXFxVMDAwMUQxNjlcXFUwMDAxRDE2RC1cXFUwMDAxRDE3MlxcVTAwMDFEMTdCLSIKKyAgICAgICAgICAgICsgIlxcVTAwMDFEMTgyXFxVMDAwMUQxODUtXFxVMDAwMUQxOEJcXFUwMDAxRDFBQS1cXFUwMDAxRDFBRFxcVTAwMDEiCisgICAgICAgICAgICArICJEMUJCLVxcVTAwMDFEMUMwXFxVMDAwMkY4MDAtXFxVMDAwMkZBMURdIiwgZmFsc2UpOworLypVbmljb2RlOiAKKyAgICAgICJbXjwtPkEtUFItWmEtcHIteqjALc/RLdbYLd3gLe/xLfb4Lf3/LT8/LT8/LT8/LT8/LT8/LT8/Py0/Py0/Py0/IgorICAgICsgIj8tPz8tPz8tPz8tP4otmj8tPz8tPz8tPz8tPz8tPz8/LT8/LT8/LT8/LT8/LT8/LT8/LT8/LT8/Py0/Py0/Pz8iCisgICAgKyAiPz8/Pz8/Pz8/Pz8/Pz8/Pz8/Py0/Pz8/Pz8/LT8/Pz8/Pz8/Pz8tPz8/Pz8/Pz8/LT8/LT8/LT8/LT8/LT8/LSIKKyAgICArICI/Py0/Pz8tPz8/LT8/Pz8tPz8/Pz8tPz8tPz8tPz8tPz8/LT8/Pz8/Pz8tPz8tPz8/Pz8/Py0/Pz8/Pz8/LT8/IgorICAgICsgIj8/Pz8/Pz8tPz8tPz8/Py0/Pz8/Pz8tPz8/Pz8/Py0/Pz8tPz8/Pz8/Pz8/LT8/LT8/LT8/LT8/LT8/Pz8/Pz8iCisgICAgKyAiPz8/Py0/Pz8tPz8tPz8tPz8/Pz8/Pz8/Pz8/Py0/Py0/Py0/Pz8/Pz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8tPyIKKyAgICArICI/LT8/LT8/LT8/LT8/LT8/LT8/LT8/LT8/LT8/LT8/LT8/Py0/Py0/Pz8/LT8/LT8/LT8/LT8/LT8/LT8/LT8/IgorICAgICsgIj8/LT8/LT8/Pz8/LT8/Pz8/Py0/Pz8/Py0/XD8tXD8/LT8/Py0/Pz8tPz8/Pz8/Pz8/Pz8/Pz8/Pz8/Py0/Py0iCisgICAgKyAiPz8tPz8tPz8tPz8tPz8tPz8/LT8/Py0/Py0/Pz8tPz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8tPz8/Pz8/Pz8/PyIKKyAgICArICI/Pz8/Pz8/Pz8/Pz8/Py0/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/IgorICAgICsgIj8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8iCisgICAgKyAiPz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/PyIKKyAgICArICI/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/IgorICAgICsgIj8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8iCisgICAgKyAiPz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/PyIKKyAgICArICI/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8tPz8/Py0/Pz8/LT8/LT8/LT8/LT8/LT8/LT8/Py0/IgorICAgICsgIj8tPz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8tP10iKi8KKyAgICAgICAgU0tJUFBBQkxFU1tLRF0gPSBuZXcgVW5pY29kZVNldCgKKwkgICAgICAgICJbXlxcdTAwQTBcXHUwMEE4XFx1MDBBQVxcdTAwQUZcXHUwMEIyLVxcdTAwQjVcXHUwMEI4LVxcdTAwQkEiCisgICAgICAgICAgICArICJcXHUwMEJDLVxcdTAwQkVcXHUwMEMwLVxcdTAwQzVcXHUwMEM3LVxcdTAwQ0ZcXHUwMEQxLVxcdTAwRDYiCisgICAgICAgICAgICArICJcXHUwMEQ5LVxcdTAwRERcXHUwMEUwLVxcdTAwRTVcXHUwMEU3LVxcdTAwRUZcXHUwMEYxLVxcdTAwRjYiCisgICAgICAgICAgICArICJcXHUwMEY5LVxcdTAwRkRcXHUwMEZGLVxcdTAxMEZcXHUwMTEyLVxcdTAxMjVcXHUwMTI4LVxcdTAxMzAiCisgICAgICAgICAgICArICJcXHUwMTMyLVxcdTAxMzdcXHUwMTM5LVxcdTAxNDBcXHUwMTQzLVxcdTAxNDlcXHUwMTRDLVxcdTAxNTEiCisgICAgICAgICAgICArICJcXHUwMTU0LVxcdTAxNjVcXHUwMTY4LVxcdTAxN0ZcXHUwMUEwLVxcdTAxQTFcXHUwMUFGLVxcdTAxQjAiCisgICAgICAgICAgICArICJcXHUwMUM0LVxcdTAxRENcXHUwMURFLVxcdTAxRTNcXHUwMUU2LVxcdTAxRjVcXHUwMUY4LVxcdTAyMUIiCisgICAgICAgICAgICArICJcXHUwMjFFLVxcdTAyMUZcXHUwMjI2LVxcdTAyMzNcXHUwMkIwLVxcdTAyQjhcXHUwMkQ4LVxcdTAyREQiCisgICAgICAgICAgICArICJcXHUwMkUwLVxcdTAyRTRcXHUwMzAwLVxcdTAzNEVcXHUwMzYwLVxcdTAzNkZcXHUwMzc0XFx1MDM3QSIKKyAgICAgICAgICAgICsgIlxcdTAzN0VcXHUwMzg0LVxcdTAzOEFcXHUwMzhDXFx1MDM4RS1cXHUwMzkwXFx1MDNBQS1cXHUwM0IwIgorICAgICAgICAgICAgKyAiXFx1MDNDQS1cXHUwM0NFXFx1MDNEMC1cXHUwM0Q2XFx1MDNGMC1cXHUwM0YyXFx1MDNGNC1cXHUwM0Y1IgorICAgICAgICAgICAgKyAiXFx1MDQwMC1cXHUwNDAxXFx1MDQwM1xcdTA0MDdcXHUwNDBDLVxcdTA0MEVcXHUwNDE5XFx1MDQzOSIKKyAgICAgICAgICAgICsgIlxcdTA0NTAtXFx1MDQ1MVxcdTA0NTNcXHUwNDU3XFx1MDQ1Qy1cXHUwNDVFXFx1MDQ3Ni1cXHUwNDc3IgorICAgICAgICAgICAgKyAiXFx1MDQ4My1cXHUwNDg2XFx1MDRDMS1cXHUwNEMyXFx1MDREMC1cXHUwNEQzXFx1MDRENi1cXHUwNEQ3IgorICAgICAgICAgICAgKyAiXFx1MDREQS1cXHUwNERGXFx1MDRFMi1cXHUwNEU3XFx1MDRFQS1cXHUwNEY1XFx1MDRGOC1cXHUwNEY5IgorICAgICAgICAgICAgKyAiXFx1MDU4N1xcdTA1OTEtXFx1MDVBMVxcdTA1QTMtXFx1MDVCOVxcdTA1QkItXFx1MDVCRFxcdTA1QkYiCisgICAgICAgICAgICArICJcXHUwNUMxLVxcdTA1QzJcXHUwNUM0XFx1MDYyMi1cXHUwNjI2XFx1MDY0Qi1cXHUwNjU1XFx1MDY3MCIKKyAgICAgICAgICAgICsgIlxcdTA2NzUtXFx1MDY3OFxcdTA2QzBcXHUwNkMyXFx1MDZEM1xcdTA2RDYtXFx1MDZEQ1xcdTA2REYtIgorICAgICAgICAgICAgKyAiXFx1MDZFNFxcdTA2RTctXFx1MDZFOFxcdTA2RUEtXFx1MDZFRFxcdTA3MTFcXHUwNzMwLVxcdTA3NEEiCisgICAgICAgICAgICArICJcXHUwOTI5XFx1MDkzMVxcdTA5MzRcXHUwOTNDXFx1MDk0RFxcdTA5NTEtXFx1MDk1NFxcdTA5NTgtIgorICAgICAgICAgICAgKyAiXFx1MDk1RlxcdTA5QkNcXHUwOUNCLVxcdTA5Q0RcXHUwOURDLVxcdTA5RERcXHUwOURGXFx1MEEzMyIKKyAgICAgICAgICAgICsgIlxcdTBBMzZcXHUwQTNDXFx1MEE0RFxcdTBBNTktXFx1MEE1QlxcdTBBNUVcXHUwQUJDXFx1MEFDRFxcdTBCM0MiCisgICAgICAgICAgICArICJcXHUwQjQ4XFx1MEI0Qi1cXHUwQjREXFx1MEI1Qy1cXHUwQjVEXFx1MEI5NFxcdTBCQ0EtXFx1MEJDRCIKKyAgICAgICAgICAgICsgIlxcdTBDNDhcXHUwQzREXFx1MEM1NS1cXHUwQzU2XFx1MENDMFxcdTBDQzctXFx1MENDOFxcdTBDQ0EtIgorICAgICAgICAgICAgKyAiXFx1MENDQlxcdTBDQ0RcXHUwRDRBLVxcdTBENERcXHUwRENBXFx1MEREQVxcdTBEREMtXFx1MERERSIKKyAgICAgICAgICAgICsgIlxcdTBFMzNcXHUwRTM4LVxcdTBFM0FcXHUwRTQ4LVxcdTBFNEJcXHUwRUIzXFx1MEVCOC1cXHUwRUI5IgorICAgICAgICAgICAgKyAiXFx1MEVDOC1cXHUwRUNCXFx1MEVEQy1cXHUwRUREXFx1MEYwQ1xcdTBGMTgtXFx1MEYxOVxcdTBGMzUiCisgICAgICAgICAgICArICJcXHUwRjM3XFx1MEYzOVxcdTBGNDNcXHUwRjREXFx1MEY1MlxcdTBGNTdcXHUwRjVDXFx1MEY2OVxcdTBGNzEtIgorICAgICAgICAgICAgKyAiXFx1MEY3RFxcdTBGODAtXFx1MEY4NFxcdTBGODYtXFx1MEY4N1xcdTBGOTNcXHUwRjlEXFx1MEZBMiIKKyAgICAgICAgICAgICsgIlxcdTBGQTdcXHUwRkFDXFx1MEZCOVxcdTBGQzZcXHUxMDI2XFx1MTAzN1xcdTEwMzlcXHUxNzE0XFx1MTczNCIKKyAgICAgICAgICAgICsgIlxcdTE3RDJcXHUxOEE5XFx1MUUwMC1cXHUxRTlCXFx1MUVBMC1cXHUxRUY5XFx1MUYwMC1cXHUxRjE1IgorICAgICAgICAgICAgKyAiXFx1MUYxOC1cXHUxRjFEXFx1MUYyMC1cXHUxRjQ1XFx1MUY0OC1cXHUxRjREXFx1MUY1MC1cXHUxRjU3IgorICAgICAgICAgICAgKyAiXFx1MUY1OVxcdTFGNUJcXHUxRjVEXFx1MUY1Ri1cXHUxRjdEXFx1MUY4MC1cXHUxRkI0XFx1MUZCNi0iCisgICAgICAgICAgICArICJcXHUxRkM0XFx1MUZDNi1cXHUxRkQzXFx1MUZENi1cXHUxRkRCXFx1MUZERC1cXHUxRkVGXFx1MUZGMi0iCisgICAgICAgICAgICArICJcXHUxRkY0XFx1MUZGNi1cXHUxRkZFXFx1MjAwMC1cXHUyMDBBXFx1MjAxMVxcdTIwMTdcXHUyMDI0LSIKKyAgICAgICAgICAgICsgIlxcdTIwMjZcXHUyMDJGXFx1MjAzMy1cXHUyMDM0XFx1MjAzNi1cXHUyMDM3XFx1MjAzQ1xcdTIwM0UiCisgICAgICAgICAgICArICJcXHUyMDQ3LVxcdTIwNDlcXHUyMDU3XFx1MjA1RlxcdTIwNzAtXFx1MjA3MVxcdTIwNzQtXFx1MjA4RSIKKyAgICAgICAgICAgICsgIlxcdTIwQThcXHUyMEQwLVxcdTIwRENcXHUyMEUxXFx1MjBFNS1cXHUyMEVBXFx1MjEwMC1cXHUyMTAzIgorICAgICAgICAgICAgKyAiXFx1MjEwNS1cXHUyMTA3XFx1MjEwOS1cXHUyMTEzXFx1MjExNS1cXHUyMTE2XFx1MjExOS1cXHUyMTFEIgorICAgICAgICAgICAgKyAiXFx1MjEyMC1cXHUyMTIyXFx1MjEyNFxcdTIxMjZcXHUyMTI4XFx1MjEyQS1cXHUyMTJEXFx1MjEyRi0iCisgICAgICAgICAgICArICJcXHUyMTMxXFx1MjEzMy1cXHUyMTM5XFx1MjEzRC1cXHUyMTQwXFx1MjE0NS1cXHUyMTQ5XFx1MjE1My0iCisgICAgICAgICAgICArICJcXHUyMTdGXFx1MjE5QS1cXHUyMTlCXFx1MjFBRVxcdTIxQ0QtXFx1MjFDRlxcdTIyMDRcXHUyMjA5IgorICAgICAgICAgICAgKyAiXFx1MjIwQ1xcdTIyMjRcXHUyMjI2XFx1MjIyQy1cXHUyMjJEXFx1MjIyRi1cXHUyMjMwXFx1MjI0MSIKKyAgICAgICAgICAgICsgIlxcdTIyNDRcXHUyMjQ3XFx1MjI0OVxcdTIyNjBcXHUyMjYyXFx1MjI2RC1cXHUyMjcxXFx1MjI3NC0iCisgICAgICAgICAgICArICJcXHUyMjc1XFx1MjI3OC1cXHUyMjc5XFx1MjI4MC1cXHUyMjgxXFx1MjI4NC1cXHUyMjg1XFx1MjI4OC0iCisgICAgICAgICAgICArICJcXHUyMjg5XFx1MjJBQy1cXHUyMkFGXFx1MjJFMC1cXHUyMkUzXFx1MjJFQS1cXHUyMkVEXFx1MjMyOS0iCisgICAgICAgICAgICArICJcXHUyMzJBXFx1MjQ2MC1cXHUyNEVBXFx1MkEwQ1xcdTJBNzQtXFx1MkE3NlxcdTJBRENcXHUyRTlGIgorICAgICAgICAgICAgKyAiXFx1MkVGM1xcdTJGMDAtXFx1MkZENVxcdTMwMDBcXHUzMDJBLVxcdTMwMkZcXHUzMDM2XFx1MzAzOC0iCisgICAgICAgICAgICArICJcXHUzMDNBXFx1MzA0Q1xcdTMwNEVcXHUzMDUwXFx1MzA1MlxcdTMwNTRcXHUzMDU2XFx1MzA1OFxcdTMwNUEiCisgICAgICAgICAgICArICJcXHUzMDVDXFx1MzA1RVxcdTMwNjBcXHUzMDYyXFx1MzA2NVxcdTMwNjdcXHUzMDY5XFx1MzA3MC1cXHUzMDcxIgorICAgICAgICAgICAgKyAiXFx1MzA3My1cXHUzMDc0XFx1MzA3Ni1cXHUzMDc3XFx1MzA3OS1cXHUzMDdBXFx1MzA3Qy1cXHUzMDdEIgorICAgICAgICAgICAgKyAiXFx1MzA5NFxcdTMwOTktXFx1MzA5Q1xcdTMwOUUtXFx1MzA5RlxcdTMwQUNcXHUzMEFFXFx1MzBCMCIKKyAgICAgICAgICAgICsgIlxcdTMwQjJcXHUzMEI0XFx1MzBCNlxcdTMwQjhcXHUzMEJBXFx1MzBCQ1xcdTMwQkVcXHUzMEMwXFx1MzBDMiIKKyAgICAgICAgICAgICsgIlxcdTMwQzVcXHUzMEM3XFx1MzBDOVxcdTMwRDAtXFx1MzBEMVxcdTMwRDMtXFx1MzBENFxcdTMwRDYtIgorICAgICAgICAgICAgKyAiXFx1MzBEN1xcdTMwRDktXFx1MzBEQVxcdTMwREMtXFx1MzBERFxcdTMwRjRcXHUzMEY3LVxcdTMwRkEiCisgICAgICAgICAgICArICJcXHUzMEZFLVxcdTMwRkZcXHUzMTMxLVxcdTMxOEVcXHUzMTkyLVxcdTMxOUZcXHUzMjAwLVxcdTMyMUMiCisgICAgICAgICAgICArICJcXHUzMjIwLVxcdTMyNDNcXHUzMjUxLVxcdTMyN0JcXHUzMjgwLVxcdTMyQ0JcXHUzMkQwLVxcdTMyRkUiCisgICAgICAgICAgICArICJcXHUzMzAwLVxcdTMzNzZcXHUzMzdCLVxcdTMzRERcXHUzM0UwLVxcdTMzRkVcXHVBQzAwLVxcdUQ3QTMiCisgICAgICAgICAgICArICJcXHVGOTAwLVxcdUZBMERcXHVGQTEwXFx1RkExMlxcdUZBMTUtXFx1RkExRVxcdUZBMjBcXHVGQTIyIgorICAgICAgICAgICAgKyAiXFx1RkEyNS1cXHVGQTI2XFx1RkEyQS1cXHVGQTJEXFx1RkEzMC1cXHVGQTZBXFx1RkIwMC1cXHVGQjA2IgorICAgICAgICAgICAgKyAiXFx1RkIxMy1cXHVGQjE3XFx1RkIxRC1cXHVGQjM2XFx1RkIzOC1cXHVGQjNDXFx1RkIzRVxcdUZCNDAtIgorICAgICAgICAgICAgKyAiXFx1RkI0MVxcdUZCNDMtXFx1RkI0NFxcdUZCNDYtXFx1RkJCMVxcdUZCRDMtXFx1RkQzRFxcdUZENTAtIgorICAgICAgICAgICAgKyAiXFx1RkQ4RlxcdUZEOTItXFx1RkRDN1xcdUZERjAtXFx1RkRGQ1xcdUZFMjAtXFx1RkUyM1xcdUZFMzAtIgorICAgICAgICAgICAgKyAiXFx1RkU0NFxcdUZFNDktXFx1RkU1MlxcdUZFNTQtXFx1RkU2NlxcdUZFNjgtXFx1RkU2QlxcdUZFNzAtIgorICAgICAgICAgICAgKyAiXFx1RkU3MlxcdUZFNzRcXHVGRTc2LVxcdUZFRkNcXHVGRjAxLVxcdUZGQkVcXHVGRkMyLVxcdUZGQzciCisgICAgICAgICAgICArICJcXHVGRkNBLVxcdUZGQ0ZcXHVGRkQyLVxcdUZGRDdcXHVGRkRBLVxcdUZGRENcXHVGRkUwLVxcdUZGRTYiCisgICAgICAgICAgICArICJcXHVGRkU4LVxcdUZGRUVcXFUwMDAxRDE1RS1cXFUwMDAxRDE2OVxcVTAwMDFEMTZELVxcVTAwMDFEMTcyIgorICAgICAgICAgICAgKyAiXFxVMDAwMUQxN0ItXFxVMDAwMUQxODJcXFUwMDAxRDE4NS1cXFUwMDAxRDE4QlxcVTAwMDFEMUFBLSIKKyAgICAgICAgICAgICsgIlxcVTAwMDFEMUFEXFxVMDAwMUQxQkItXFxVMDAwMUQxQzBcXFUwMDAxRDQwMC1cXFUwMDAxRDQ1NFxcVTAwMDEiCisgICAgICAgICAgICArICJENDU2LVxcVTAwMDFENDlDXFxVMDAwMUQ0OUUtXFxVMDAwMUQ0OUZcXFUwMDAxRDRBMlxcVTAwMDFENEE1LSIKKyAgICAgICAgICAgICsgIlxcVTAwMDFENEE2XFxVMDAwMUQ0QTktXFxVMDAwMUQ0QUNcXFUwMDAxRDRBRS1cXFUwMDAxRDRCOVxcVTAwMDEiCisgICAgICAgICAgICArICJENEJCXFxVMDAwMUQ0QkQtXFxVMDAwMUQ0QzBcXFUwMDAxRDRDMi1cXFUwMDAxRDRDM1xcVTAwMDFENEM1LSIKKyAgICAgICAgICAgICsgIlxcVTAwMDFENTA1XFxVMDAwMUQ1MDctXFxVMDAwMUQ1MEFcXFUwMDAxRDUwRC1cXFUwMDAxRDUxNFxcVTAwMDEiCisgICAgICAgICAgICArICJENTE2LVxcVTAwMDFENTFDXFxVMDAwMUQ1MUUtXFxVMDAwMUQ1MzlcXFUwMDAxRDUzQi1cXFUwMDAxRDUzRSIKKyAgICAgICAgICAgICsgIlxcVTAwMDFENTQwLVxcVTAwMDFENTQ0XFxVMDAwMUQ1NDZcXFUwMDAxRDU0QS1cXFUwMDAxRDU1MFxcVTAwMDEiCisgICAgICAgICAgICArICJENTUyLVxcVTAwMDFENkEzXFxVMDAwMUQ2QTgtXFxVMDAwMUQ3QzlcXFUwMDAxRDdDRS1cXFUwMDAxRDdGRiIKKyAgICAgICAgICAgICsgIlxcVTAwMDJGODAwLVxcVTAwMDJGQTFEXSIsIGZhbHNlKTsKKy8qVW5pY29kZTogCisgICAgICAiW16gqKqvsi21uC26vC2+wC3Fxy3P0S3W2S3d4C3l5y3v8S32+S39/y0/Py0/Py0/Py0/Py0/Py0/Py0/Py0/PyIKKyAgICArICItPz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8/Pz8tPz8/LT8/LT8/LT8/LT8/LT8/IgorICAgICsgIi0/Py0/Pz8/LT8/Pz8tPz8/Py0/Py0/Py0/Py0/Py0/Py0/Py0/Py0/Py0/Py0/Pz8tPz8tPz8tPz8/LT8/Py0iCisgICAgKyAiPz8tPz8/LT8/Pz8/LT8/LT8/LT8/LT8/Py0/Pz8/Pz8/LT8/LT8/Py0/Py0/Pz8/Pz8/LT8/Pz8/Pz8tPz8tPyIKKyAgICArICI/Py0/Pz8/LT8/Py0/Py0/Pz8tPz8/Py0/Pz8tPz8tPz8/LT8/LT8/LT8/Py0/Pz8/Pz8/Pz8/Py0/Py0/Py0/IgorICAgICsgIj8/Pz8/Pz8/Pz8/Pz8/Py0/Py0/Py0/Py0/Py0/Py0/Py0/Pz8/Py0/Py0/Py0/Py0/Py0/Py0/Py0/Py0/IgorICAgICsgIlw/LVw/Pz8/LYU/Py0/Py0/Pz8/LT8/XD8/LT8/LT8/Py0/Pz8tPz8tPz8tPz8tPz8tPz8tPz8tmT8/Pz8tPz8iCisgICAgKyAiLT8/LT8/LT8/LT8/LT8/LT8/Py0/Pz8/Pz8/LT8/LT8/Pz8/Pz8/LT8/LT8/LT8/LT8/LT8/LT8/LT8/LT8/LSIKKyAgICArICI/Py0/Py0/Pz8tPz8/Pz8tP1w/Py0/Pz8tPz8/Pz8/Pz8/Pz8/Pz8/Pz8tPz8tPz8tPz8tPz8tPz8/LT8/LT8/IgorICAgICsgIj8/Pz8/Pz8/Pz8/Pz8/Py0/Py0/Py0/Py0/Py0/Pz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8iCisgICAgKyAiLT8/LT8/LT8/Pz8tPz8/Py0/Py0/Py0/Py0/Py0/Py0/Py0/Pz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8tPyIKKyAgICArICI/LT8/LT8/LT8/LT8/Py0/Py0/Py0/Py0/Py0/Py0/Py0/Py0/Py0/Py0/Py0/Py0/Py0/PyIKKyAgICArICItPz8tPz8tPz8tPz8/LT8/LT8/LT8/Py0/Py0/Py0/Py0/Py0/PyIKKyAgICArICItPz8tPz8tPz8tPz8/LT8/LT8/LT8/LT8/LT9dIiovCisKKyAgICAgICAgU0tJUFBBQkxFU1tLQ10gPSBuZXcgVW5pY29kZVNldCgKKwkgICAgICAgICJbXjwtPkEtUFItWmEtcHItelxcdTAwQTBcXHUwMEE4XFx1MDBBQVxcdTAwQUZcXHUwMEIyLVxcdTAwQjUiCisgICAgICAgICAgICArICJcXHUwMEI4LVxcdTAwQkFcXHUwMEJDLVxcdTAwQkVcXHUwMEMwLVxcdTAwQ0ZcXHUwMEQxLVxcdTAwRDYiCisgICAgICAgICAgICArICJcXHUwMEQ4LVxcdTAwRERcXHUwMEUwLVxcdTAwRUZcXHUwMEYxLVxcdTAwRjZcXHUwMEY4LVxcdTAwRkQiCisgICAgICAgICAgICArICJcXHUwMEZGLVxcdTAxMDNcXHUwMTA2LVxcdTAxMEZcXHUwMTEyLVxcdTAxMTdcXHUwMTFBLVxcdTAxMjEiCisgICAgICAgICAgICArICJcXHUwMTI0LVxcdTAxMjVcXHUwMTI4LVxcdTAxMkRcXHUwMTMwXFx1MDEzMi1cXHUwMTMzXFx1MDEzOS0iCisgICAgICAgICAgICArICJcXHUwMTNBXFx1MDEzRC1cXHUwMTQwXFx1MDE0My1cXHUwMTQ0XFx1MDE0Ny1cXHUwMTQ5XFx1MDE0Qy0iCisgICAgICAgICAgICArICJcXHUwMTUxXFx1MDE1NC1cXHUwMTU1XFx1MDE1OC1cXHUwMTVEXFx1MDE2MC1cXHUwMTYxXFx1MDE2NC0iCisgICAgICAgICAgICArICJcXHUwMTY1XFx1MDE2OC1cXHUwMTcxXFx1MDE3NC1cXHUwMTdGXFx1MDFBMC1cXHUwMUExXFx1MDFBRi0iCisgICAgICAgICAgICArICJcXHUwMUIwXFx1MDFCN1xcdTAxQzQtXFx1MDFEQ1xcdTAxREUtXFx1MDFFMVxcdTAxRTYtXFx1MDFFQiIKKyAgICAgICAgICAgICsgIlxcdTAxRjEtXFx1MDFGNVxcdTAxRjgtXFx1MDFGQlxcdTAyMDAtXFx1MDIxQlxcdTAyMUUtXFx1MDIxRiIKKyAgICAgICAgICAgICsgIlxcdTAyMjYtXFx1MDIzM1xcdTAyOTJcXHUwMkIwLVxcdTAyQjhcXHUwMkQ4LVxcdTAyRERcXHUwMkUwLSIKKyAgICAgICAgICAgICsgIlxcdTAyRTRcXHUwMzAwLVxcdTAzNEVcXHUwMzYwLVxcdTAzNkZcXHUwMzc0XFx1MDM3QVxcdTAzN0UiCisgICAgICAgICAgICArICJcXHUwMzg0LVxcdTAzODVcXHUwMzg3XFx1MDM5MVxcdTAzOTVcXHUwMzk3XFx1MDM5OVxcdTAzOUZcXHUwM0ExIgorICAgICAgICAgICAgKyAiXFx1MDNBNVxcdTAzQTlcXHUwM0FDXFx1MDNBRVxcdTAzQjFcXHUwM0I1XFx1MDNCN1xcdTAzQjlcXHUwM0JGIgorICAgICAgICAgICAgKyAiXFx1MDNDMVxcdTAzQzVcXHUwM0M5LVxcdTAzQ0JcXHUwM0NFXFx1MDNEMC1cXHUwM0Q2XFx1MDNGMC0iCisgICAgICAgICAgICArICJcXHUwM0YyXFx1MDNGNC1cXHUwM0Y1XFx1MDQwNlxcdTA0MTBcXHUwNDEzXFx1MDQxNS1cXHUwNDE4IgorICAgICAgICAgICAgKyAiXFx1MDQxQVxcdTA0MUVcXHUwNDIzXFx1MDQyN1xcdTA0MkJcXHUwNDJEXFx1MDQzMFxcdTA0MzNcXHUwNDM1LSIKKyAgICAgICAgICAgICsgIlxcdTA0MzhcXHUwNDNBXFx1MDQzRVxcdTA0NDNcXHUwNDQ3XFx1MDQ0QlxcdTA0NERcXHUwNDU2XFx1MDQ3NC0iCisgICAgICAgICAgICArICJcXHUwNDc1XFx1MDQ4My1cXHUwNDg2XFx1MDREOC1cXHUwNEQ5XFx1MDRFOC1cXHUwNEU5XFx1MDU4NyIKKyAgICAgICAgICAgICsgIlxcdTA1OTEtXFx1MDVBMVxcdTA1QTMtXFx1MDVCOVxcdTA1QkItXFx1MDVCRFxcdTA1QkZcXHUwNUMxLSIKKyAgICAgICAgICAgICsgIlxcdTA1QzJcXHUwNUM0XFx1MDYyMi1cXHUwNjIzXFx1MDYyN1xcdTA2NDhcXHUwNjRBLVxcdTA2NTUiCisgICAgICAgICAgICArICJcXHUwNjcwXFx1MDY3NS1cXHUwNjc4XFx1MDZDMVxcdTA2RDJcXHUwNkQ1LVxcdTA2RENcXHUwNkRGLSIKKyAgICAgICAgICAgICsgIlxcdTA2RTRcXHUwNkU3LVxcdTA2RThcXHUwNkVBLVxcdTA2RURcXHUwNzExXFx1MDczMC1cXHUwNzRBIgorICAgICAgICAgICAgKyAiXFx1MDkyOFxcdTA5MzBcXHUwOTMzXFx1MDkzQ1xcdTA5NERcXHUwOTUxLVxcdTA5NTRcXHUwOTU4LSIKKyAgICAgICAgICAgICsgIlxcdTA5NUZcXHUwOUJDXFx1MDlCRVxcdTA5QzdcXHUwOUNEXFx1MDlEN1xcdTA5REMtXFx1MDlERFxcdTA5REYiCisgICAgICAgICAgICArICJcXHUwQTMzXFx1MEEzNlxcdTBBM0NcXHUwQTREXFx1MEE1OS1cXHUwQTVCXFx1MEE1RVxcdTBBQkNcXHUwQUNEIgorICAgICAgICAgICAgKyAiXFx1MEIzQ1xcdTBCM0VcXHUwQjQ3XFx1MEI0RFxcdTBCNTYtXFx1MEI1N1xcdTBCNUMtXFx1MEI1RCIKKyAgICAgICAgICAgICsgIlxcdTBCOTJcXHUwQkJFXFx1MEJDNi1cXHUwQkM3XFx1MEJDRFxcdTBCRDdcXHUwQzQ2XFx1MEM0RFxcdTBDNTUiCisgICAgICAgICAgICArICItXFx1MEM1NlxcdTBDQkZcXHUwQ0MyXFx1MENDNlxcdTBDQ0FcXHUwQ0NEXFx1MENENS1cXHUwQ0Q2IgorICAgICAgICAgICAgKyAiXFx1MEQzRVxcdTBENDYtXFx1MEQ0N1xcdTBENERcXHUwRDU3XFx1MERDQVxcdTBEQ0ZcXHUwREQ5XFx1MEREQyIKKyAgICAgICAgICAgICsgIlxcdTBEREZcXHUwRTMzXFx1MEUzOC1cXHUwRTNBXFx1MEU0OC1cXHUwRTRCXFx1MEVCM1xcdTBFQjgtIgorICAgICAgICAgICAgKyAiXFx1MEVCOVxcdTBFQzgtXFx1MEVDQlxcdTBFREMtXFx1MEVERFxcdTBGMENcXHUwRjE4LVxcdTBGMTkiCisgICAgICAgICAgICArICJcXHUwRjM1XFx1MEYzN1xcdTBGMzlcXHUwRjQzXFx1MEY0RFxcdTBGNTJcXHUwRjU3XFx1MEY1Q1xcdTBGNjkiCisgICAgICAgICAgICArICJcXHUwRjcxLVxcdTBGN0RcXHUwRjgwLVxcdTBGODRcXHUwRjg2LVxcdTBGODdcXHUwRjkzXFx1MEY5RCIKKyAgICAgICAgICAgICsgIlxcdTBGQTJcXHUwRkE3XFx1MEZBQ1xcdTBGQjlcXHUwRkM2XFx1MTAyNVxcdTEwMkVcXHUxMDM3XFx1MTAzOSIKKyAgICAgICAgICAgICsgIlxcdTExMDAtXFx1MTExMlxcdTExNjEtXFx1MTE3NVxcdTExQTgtXFx1MTFDMlxcdTE3MTRcXHUxNzM0IgorICAgICAgICAgICAgKyAiXFx1MTdEMlxcdTE4QTlcXHUxRTAwLVxcdTFFMDNcXHUxRTBBLVxcdTFFMEZcXHUxRTEyLVxcdTFFMUIiCisgICAgICAgICAgICArICJcXHUxRTIwLVxcdTFFMjdcXHUxRTJBLVxcdTFFNDFcXHUxRTQ0LVxcdTFFNTNcXHUxRTU4LVxcdTFFN0QiCisgICAgICAgICAgICArICJcXHUxRTgwLVxcdTFFODdcXHUxRThFLVxcdTFFOTFcXHUxRTk2LVxcdTFFOUJcXHUxRUEwLVxcdTFFRjMiCisgICAgICAgICAgICArICJcXHUxRUY2LVxcdTFFRjlcXHUxRjAwLVxcdTFGMTFcXHUxRjE4LVxcdTFGMTlcXHUxRjIwLVxcdTFGMzEiCisgICAgICAgICAgICArICJcXHUxRjM4LVxcdTFGMzlcXHUxRjQwLVxcdTFGNDFcXHUxRjQ4LVxcdTFGNDlcXHUxRjUwLVxcdTFGNTEiCisgICAgICAgICAgICArICJcXHUxRjU5XFx1MUY2MC1cXHUxRjcxXFx1MUY3My1cXHUxRjc1XFx1MUY3N1xcdTFGNzlcXHUxRjdCLSIKKyAgICAgICAgICAgICsgIlxcdTFGN0RcXHUxRjgwLVxcdTFGODFcXHUxRjg4LVxcdTFGODlcXHUxRjkwLVxcdTFGOTFcXHUxRjk4LSIKKyAgICAgICAgICAgICsgIlxcdTFGOTlcXHUxRkEwLVxcdTFGQTFcXHUxRkE4LVxcdTFGQTlcXHUxRkIzXFx1MUZCNlxcdTFGQkItIgorICAgICAgICAgICAgKyAiXFx1MUZDMVxcdTFGQzNcXHUxRkM2XFx1MUZDOVxcdTFGQ0ItXFx1MUZDRlxcdTFGRDNcXHUxRkRCXFx1MUZERCIKKyAgICAgICAgICAgICsgIi1cXHUxRkRGXFx1MUZFM1xcdTFGRUJcXHUxRkVELVxcdTFGRUZcXHUxRkYzXFx1MUZGNlxcdTFGRjkiCisgICAgICAgICAgICArICJcXHUxRkZCLVxcdTFGRkVcXHUyMDAwLVxcdTIwMEFcXHUyMDExXFx1MjAxN1xcdTIwMjQtXFx1MjAyNiIKKyAgICAgICAgICAgICsgIlxcdTIwMkZcXHUyMDMzLVxcdTIwMzRcXHUyMDM2LVxcdTIwMzdcXHUyMDNDXFx1MjAzRVxcdTIwNDctIgorICAgICAgICAgICAgKyAiXFx1MjA0OVxcdTIwNTdcXHUyMDVGXFx1MjA3MC1cXHUyMDcxXFx1MjA3NC1cXHUyMDhFXFx1MjBBOCIKKyAgICAgICAgICAgICsgIlxcdTIwRDAtXFx1MjBEQ1xcdTIwRTFcXHUyMEU1LVxcdTIwRUFcXHUyMTAwLVxcdTIxMDNcXHUyMTA1LSIKKyAgICAgICAgICAgICsgIlxcdTIxMDdcXHUyMTA5LVxcdTIxMTNcXHUyMTE1LVxcdTIxMTZcXHUyMTE5LVxcdTIxMURcXHUyMTIwLSIKKyAgICAgICAgICAgICsgIlxcdTIxMjJcXHUyMTI0XFx1MjEyNlxcdTIxMjhcXHUyMTJBLVxcdTIxMkRcXHUyMTJGLVxcdTIxMzEiCisgICAgICAgICAgICArICJcXHUyMTMzLVxcdTIxMzlcXHUyMTNELVxcdTIxNDBcXHUyMTQ1LVxcdTIxNDlcXHUyMTUzLVxcdTIxN0YiCisgICAgICAgICAgICArICJcXHUyMTkwXFx1MjE5MlxcdTIxOTRcXHUyMUQwXFx1MjFEMlxcdTIxRDRcXHUyMjAzXFx1MjIwOFxcdTIyMEIiCisgICAgICAgICAgICArICJcXHUyMjIzXFx1MjIyNVxcdTIyMkMtXFx1MjIyRFxcdTIyMkYtXFx1MjIzMFxcdTIyM0NcXHUyMjQzIgorICAgICAgICAgICAgKyAiXFx1MjI0NVxcdTIyNDhcXHUyMjREXFx1MjI2MVxcdTIyNjQtXFx1MjI2NVxcdTIyNzItXFx1MjI3MyIKKyAgICAgICAgICAgICsgIlxcdTIyNzYtXFx1MjI3N1xcdTIyN0EtXFx1MjI3RFxcdTIyODItXFx1MjI4M1xcdTIyODYtXFx1MjI4NyIKKyAgICAgICAgICAgICsgIlxcdTIyOTEtXFx1MjI5MlxcdTIyQTJcXHUyMkE4LVxcdTIyQTlcXHUyMkFCXFx1MjJCMi1cXHUyMkI1IgorICAgICAgICAgICAgKyAiXFx1MjMyOS1cXHUyMzJBXFx1MjQ2MC1cXHUyNEVBXFx1MkEwQ1xcdTJBNzQtXFx1MkE3NlxcdTJBREMiCisgICAgICAgICAgICArICJcXHUyRTlGXFx1MkVGM1xcdTJGMDAtXFx1MkZENVxcdTMwMDBcXHUzMDJBLVxcdTMwMkZcXHUzMDM2IgorICAgICAgICAgICAgKyAiXFx1MzAzOC1cXHUzMDNBXFx1MzA0NlxcdTMwNEJcXHUzMDREXFx1MzA0RlxcdTMwNTFcXHUzMDUzXFx1MzA1NSIKKyAgICAgICAgICAgICsgIlxcdTMwNTdcXHUzMDU5XFx1MzA1QlxcdTMwNURcXHUzMDVGXFx1MzA2MVxcdTMwNjRcXHUzMDY2XFx1MzA2OCIKKyAgICAgICAgICAgICsgIlxcdTMwNkZcXHUzMDcyXFx1MzA3NVxcdTMwNzhcXHUzMDdCXFx1MzA5OS1cXHUzMDlEXFx1MzA5RlxcdTMwQTYiCisgICAgICAgICAgICArICJcXHUzMEFCXFx1MzBBRFxcdTMwQUZcXHUzMEIxXFx1MzBCM1xcdTMwQjVcXHUzMEI3XFx1MzBCOVxcdTMwQkIiCisgICAgICAgICAgICArICJcXHUzMEJEXFx1MzBCRlxcdTMwQzFcXHUzMEM0XFx1MzBDNlxcdTMwQzhcXHUzMENGXFx1MzBEMlxcdTMwRDUiCisgICAgICAgICAgICArICJcXHUzMEQ4XFx1MzBEQlxcdTMwRUYtXFx1MzBGMlxcdTMwRkRcXHUzMEZGXFx1MzEzMS1cXHUzMThFIgorICAgICAgICAgICAgKyAiXFx1MzE5Mi1cXHUzMTlGXFx1MzIwMC1cXHUzMjFDXFx1MzIyMC1cXHUzMjQzXFx1MzI1MS1cXHUzMjdCIgorICAgICAgICAgICAgKyAiXFx1MzI4MC1cXHUzMkNCXFx1MzJEMC1cXHUzMkZFXFx1MzMwMC1cXHUzMzc2XFx1MzM3Qi1cXHUzM0REIgorICAgICAgICAgICAgKyAiXFx1MzNFMC1cXHUzM0ZFXFx1QUMwMFxcdUFDMUNcXHVBQzM4XFx1QUM1NFxcdUFDNzBcXHVBQzhDXFx1QUNBOCIKKyAgICAgICAgICAgICsgIlxcdUFDQzRcXHVBQ0UwXFx1QUNGQ1xcdUFEMThcXHVBRDM0XFx1QUQ1MFxcdUFENkNcXHVBRDg4XFx1QURBNCIKKyAgICAgICAgICAgICsgIlxcdUFEQzBcXHVBRERDXFx1QURGOFxcdUFFMTRcXHVBRTMwXFx1QUU0Q1xcdUFFNjhcXHVBRTg0XFx1QUVBMCIKKyAgICAgICAgICAgICsgIlxcdUFFQkNcXHVBRUQ4XFx1QUVGNFxcdUFGMTBcXHVBRjJDXFx1QUY0OFxcdUFGNjRcXHVBRjgwXFx1QUY5QyIKKyAgICAgICAgICAgICsgIlxcdUFGQjhcXHVBRkQ0XFx1QUZGMFxcdUIwMENcXHVCMDI4XFx1QjA0NFxcdUIwNjBcXHVCMDdDXFx1QjA5OCIKKyAgICAgICAgICAgICsgIlxcdUIwQjRcXHVCMEQwXFx1QjBFQ1xcdUIxMDhcXHVCMTI0XFx1QjE0MFxcdUIxNUNcXHVCMTc4XFx1QjE5NCIKKyAgICAgICAgICAgICsgIlxcdUIxQjBcXHVCMUNDXFx1QjFFOFxcdUIyMDRcXHVCMjIwXFx1QjIzQ1xcdUIyNThcXHVCMjc0XFx1QjI5MCIKKyAgICAgICAgICAgICsgIlxcdUIyQUNcXHVCMkM4XFx1QjJFNFxcdUIzMDBcXHVCMzFDXFx1QjMzOFxcdUIzNTRcXHVCMzcwXFx1QjM4QyIKKyAgICAgICAgICAgICsgIlxcdUIzQThcXHVCM0M0XFx1QjNFMFxcdUIzRkNcXHVCNDE4XFx1QjQzNFxcdUI0NTBcXHVCNDZDXFx1QjQ4OCIKKyAgICAgICAgICAgICsgIlxcdUI0QTRcXHVCNEMwXFx1QjREQ1xcdUI0RjhcXHVCNTE0XFx1QjUzMFxcdUI1NENcXHVCNTY4XFx1QjU4NCIKKyAgICAgICAgICAgICsgIlxcdUI1QTBcXHVCNUJDXFx1QjVEOFxcdUI1RjRcXHVCNjEwXFx1QjYyQ1xcdUI2NDhcXHVCNjY0XFx1QjY4MCIKKyAgICAgICAgICAgICsgIlxcdUI2OUNcXHVCNkI4XFx1QjZENFxcdUI2RjBcXHVCNzBDXFx1QjcyOFxcdUI3NDRcXHVCNzYwXFx1Qjc3QyIKKyAgICAgICAgICAgICsgIlxcdUI3OThcXHVCN0I0XFx1QjdEMFxcdUI3RUNcXHVCODA4XFx1QjgyNFxcdUI4NDBcXHVCODVDXFx1Qjg3OCIKKyAgICAgICAgICAgICsgIlxcdUI4OTRcXHVCOEIwXFx1QjhDQ1xcdUI4RThcXHVCOTA0XFx1QjkyMFxcdUI5M0NcXHVCOTU4XFx1Qjk3NCIKKyAgICAgICAgICAgICsgIlxcdUI5OTBcXHVCOUFDXFx1QjlDOFxcdUI5RTRcXHVCQTAwXFx1QkExQ1xcdUJBMzhcXHVCQTU0XFx1QkE3MCIKKyAgICAgICAgICAgICsgIlxcdUJBOENcXHVCQUE4XFx1QkFDNFxcdUJBRTBcXHVCQUZDXFx1QkIxOFxcdUJCMzRcXHVCQjUwXFx1QkI2QyIKKyAgICAgICAgICAgICsgIlxcdUJCODhcXHVCQkE0XFx1QkJDMFxcdUJCRENcXHVCQkY4XFx1QkMxNFxcdUJDMzBcXHVCQzRDXFx1QkM2OCIKKyAgICAgICAgICAgICsgIlxcdUJDODRcXHVCQ0EwXFx1QkNCQ1xcdUJDRDhcXHVCQ0Y0XFx1QkQxMFxcdUJEMkNcXHVCRDQ4XFx1QkQ2NCIKKyAgICAgICAgICAgICsgIlxcdUJEODBcXHVCRDlDXFx1QkRCOFxcdUJERDRcXHVCREYwXFx1QkUwQ1xcdUJFMjhcXHVCRTQ0XFx1QkU2MCIKKyAgICAgICAgICAgICsgIlxcdUJFN0NcXHVCRTk4XFx1QkVCNFxcdUJFRDBcXHVCRUVDXFx1QkYwOFxcdUJGMjRcXHVCRjQwXFx1QkY1QyIKKyAgICAgICAgICAgICsgIlxcdUJGNzhcXHVCRjk0XFx1QkZCMFxcdUJGQ0NcXHVCRkU4XFx1QzAwNFxcdUMwMjBcXHVDMDNDXFx1QzA1OCIKKyAgICAgICAgICAgICsgIlxcdUMwNzRcXHVDMDkwXFx1QzBBQ1xcdUMwQzhcXHVDMEU0XFx1QzEwMFxcdUMxMUNcXHVDMTM4XFx1QzE1NCIKKyAgICAgICAgICAgICsgIlxcdUMxNzBcXHVDMThDXFx1QzFBOFxcdUMxQzRcXHVDMUUwXFx1QzFGQ1xcdUMyMThcXHVDMjM0XFx1QzI1MCIKKyAgICAgICAgICAgICsgIlxcdUMyNkNcXHVDMjg4XFx1QzJBNFxcdUMyQzBcXHVDMkRDXFx1QzJGOFxcdUMzMTRcXHVDMzMwXFx1QzM0QyIKKyAgICAgICAgICAgICsgIlxcdUMzNjhcXHVDMzg0XFx1QzNBMFxcdUMzQkNcXHVDM0Q4XFx1QzNGNFxcdUM0MTBcXHVDNDJDXFx1QzQ0OCIKKyAgICAgICAgICAgICsgIlxcdUM0NjRcXHVDNDgwXFx1QzQ5Q1xcdUM0QjhcXHVDNEQ0XFx1QzRGMFxcdUM1MENcXHVDNTI4XFx1QzU0NCIKKyAgICAgICAgICAgICsgIlxcdUM1NjBcXHVDNTdDXFx1QzU5OFxcdUM1QjRcXHVDNUQwXFx1QzVFQ1xcdUM2MDhcXHVDNjI0XFx1QzY0MCIKKyAgICAgICAgICAgICsgIlxcdUM2NUNcXHVDNjc4XFx1QzY5NFxcdUM2QjBcXHVDNkNDXFx1QzZFOFxcdUM3MDRcXHVDNzIwXFx1QzczQyIKKyAgICAgICAgICAgICsgIlxcdUM3NThcXHVDNzc0XFx1Qzc5MFxcdUM3QUNcXHVDN0M4XFx1QzdFNFxcdUM4MDBcXHVDODFDXFx1QzgzOCIKKyAgICAgICAgICAgICsgIlxcdUM4NTRcXHVDODcwXFx1Qzg4Q1xcdUM4QThcXHVDOEM0XFx1QzhFMFxcdUM4RkNcXHVDOTE4XFx1QzkzNCIKKyAgICAgICAgICAgICsgIlxcdUM5NTBcXHVDOTZDXFx1Qzk4OFxcdUM5QTRcXHVDOUMwXFx1QzlEQ1xcdUM5RjhcXHVDQTE0XFx1Q0EzMCIKKyAgICAgICAgICAgICsgIlxcdUNBNENcXHVDQTY4XFx1Q0E4NFxcdUNBQTBcXHVDQUJDXFx1Q0FEOFxcdUNBRjRcXHVDQjEwXFx1Q0IyQyIKKyAgICAgICAgICAgICsgIlxcdUNCNDhcXHVDQjY0XFx1Q0I4MFxcdUNCOUNcXHVDQkI4XFx1Q0JENFxcdUNCRjBcXHVDQzBDXFx1Q0MyOCIKKyAgICAgICAgICAgICsgIlxcdUNDNDRcXHVDQzYwXFx1Q0M3Q1xcdUNDOThcXHVDQ0I0XFx1Q0NEMFxcdUNDRUNcXHVDRDA4XFx1Q0QyNCIKKyAgICAgICAgICAgICsgIlxcdUNENDBcXHVDRDVDXFx1Q0Q3OFxcdUNEOTRcXHVDREIwXFx1Q0RDQ1xcdUNERThcXHVDRTA0XFx1Q0UyMCIKKyAgICAgICAgICAgICsgIlxcdUNFM0NcXHVDRTU4XFx1Q0U3NFxcdUNFOTBcXHVDRUFDXFx1Q0VDOFxcdUNFRTRcXHVDRjAwXFx1Q0YxQyIKKyAgICAgICAgICAgICsgIlxcdUNGMzhcXHVDRjU0XFx1Q0Y3MFxcdUNGOENcXHVDRkE4XFx1Q0ZDNFxcdUNGRTBcXHVDRkZDXFx1RDAxOCIKKyAgICAgICAgICAgICsgIlxcdUQwMzRcXHVEMDUwXFx1RDA2Q1xcdUQwODhcXHVEMEE0XFx1RDBDMFxcdUQwRENcXHVEMEY4XFx1RDExNCIKKyAgICAgICAgICAgICsgIlxcdUQxMzBcXHVEMTRDXFx1RDE2OFxcdUQxODRcXHVEMUEwXFx1RDFCQ1xcdUQxRDhcXHVEMUY0XFx1RDIxMCIKKyAgICAgICAgICAgICsgIlxcdUQyMkNcXHVEMjQ4XFx1RDI2NFxcdUQyODBcXHVEMjlDXFx1RDJCOFxcdUQyRDRcXHVEMkYwXFx1RDMwQyIKKyAgICAgICAgICAgICsgIlxcdUQzMjhcXHVEMzQ0XFx1RDM2MFxcdUQzN0NcXHVEMzk4XFx1RDNCNFxcdUQzRDBcXHVEM0VDXFx1RDQwOCIKKyAgICAgICAgICAgICsgIlxcdUQ0MjRcXHVENDQwXFx1RDQ1Q1xcdUQ0NzhcXHVENDk0XFx1RDRCMFxcdUQ0Q0NcXHVENEU4XFx1RDUwNCIKKyAgICAgICAgICAgICsgIlxcdUQ1MjBcXHVENTNDXFx1RDU1OFxcdUQ1NzRcXHVENTkwXFx1RDVBQ1xcdUQ1QzhcXHVENUU0XFx1RDYwMCIKKyAgICAgICAgICAgICsgIlxcdUQ2MUNcXHVENjM4XFx1RDY1NFxcdUQ2NzBcXHVENjhDXFx1RDZBOFxcdUQ2QzRcXHVENkUwXFx1RDZGQyIKKyAgICAgICAgICAgICsgIlxcdUQ3MThcXHVENzM0XFx1RDc1MFxcdUQ3NkNcXHVENzg4XFx1RjkwMC1cXHVGQTBEXFx1RkExMFxcdUZBMTIiCisgICAgICAgICAgICArICJcXHVGQTE1LVxcdUZBMUVcXHVGQTIwXFx1RkEyMlxcdUZBMjUtXFx1RkEyNlxcdUZBMkEtXFx1RkEyRCIKKyAgICAgICAgICAgICsgIlxcdUZBMzAtXFx1RkE2QVxcdUZCMDAtXFx1RkIwNlxcdUZCMTMtXFx1RkIxN1xcdUZCMUQtXFx1RkIzNiIKKyAgICAgICAgICAgICsgIlxcdUZCMzgtXFx1RkIzQ1xcdUZCM0VcXHVGQjQwLVxcdUZCNDFcXHVGQjQzLVxcdUZCNDRcXHVGQjQ2LSIKKyAgICAgICAgICAgICsgIlxcdUZCQjFcXHVGQkQzLVxcdUZEM0RcXHVGRDUwLVxcdUZEOEZcXHVGRDkyLVxcdUZEQzdcXHVGREYwLSIKKyAgICAgICAgICAgICsgIlxcdUZERkNcXHVGRTIwLVxcdUZFMjNcXHVGRTMwLVxcdUZFNDRcXHVGRTQ5LVxcdUZFNTJcXHVGRTU0LSIKKyAgICAgICAgICAgICsgIlxcdUZFNjZcXHVGRTY4LVxcdUZFNkJcXHVGRTcwLVxcdUZFNzJcXHVGRTc0XFx1RkU3Ni1cXHVGRUZDIgorICAgICAgICAgICAgKyAiXFx1RkYwMS1cXHVGRkJFXFx1RkZDMi1cXHVGRkM3XFx1RkZDQS1cXHVGRkNGXFx1RkZEMi1cXHVGRkQ3IgorICAgICAgICAgICAgKyAiXFx1RkZEQS1cXHVGRkRDXFx1RkZFMC1cXHVGRkU2XFx1RkZFOC1cXHVGRkVFXFxVMDAwMUQxNUUtXFxVMDAwMSIKKyAgICAgICAgICAgICsgIkQxNjlcXFUwMDAxRDE2RC1cXFUwMDAxRDE3MlxcVTAwMDFEMTdCLVxcVTAwMDFEMTgyXFxVMDAwMUQxODUtIgorICAgICAgICAgICAgKyAiXFxVMDAwMUQxOEJcXFUwMDAxRDFBQS1cXFUwMDAxRDFBRFxcVTAwMDFEMUJCLVxcVTAwMDFEMUMwXFxVMDAwMSIKKyAgICAgICAgICAgICsgIkQ0MDAtXFxVMDAwMUQ0NTRcXFUwMDAxRDQ1Ni1cXFUwMDAxRDQ5Q1xcVTAwMDFENDlFLVxcVTAwMDFENDlGIgorICAgICAgICAgICAgKyAiXFxVMDAwMUQ0QTJcXFUwMDAxRDRBNS1cXFUwMDAxRDRBNlxcVTAwMDFENEE5LVxcVTAwMDFENEFDXFxVMDAwMSIKKyAgICAgICAgICAgICsgIkQ0QUUtXFxVMDAwMUQ0QjlcXFUwMDAxRDRCQlxcVTAwMDFENEJELVxcVTAwMDFENEMwXFxVMDAwMUQ0QzItIgorICAgICAgICAgICAgKyAiXFxVMDAwMUQ0QzNcXFUwMDAxRDRDNS1cXFUwMDAxRDUwNVxcVTAwMDFENTA3LVxcVTAwMDFENTBBXFxVMDAwMSIKKyAgICAgICAgICAgICsgIkQ1MEQtXFxVMDAwMUQ1MTRcXFUwMDAxRDUxNi1cXFUwMDAxRDUxQ1xcVTAwMDFENTFFLVxcVTAwMDFENTM5IgorICAgICAgICAgICAgKyAiXFxVMDAwMUQ1M0ItXFxVMDAwMUQ1M0VcXFUwMDAxRDU0MC1cXFUwMDAxRDU0NFxcVTAwMDFENTQ2XFxVMDAwMSIKKyAgICAgICAgICAgICsgIkQ1NEEtXFxVMDAwMUQ1NTBcXFUwMDAxRDU1Mi1cXFUwMDAxRDZBM1xcVTAwMDFENkE4LVxcVTAwMDFEN0M5IgorICAgICAgICAgICAgKyAiXFxVMDAwMUQ3Q0UtXFxVMDAwMUQ3RkZcXFUwMDAyRjgwMC1cXFUwMDAyRkExRF0iLCBmYWxzZSk7CisvKlVuaWNvZGU6IAorICAgICAgIltePC0+QS1QUi1aYS1wci16oKiqr7IttbgturwtvsAtz9Et1tgt3eAt7/Et9vgt/f8tPz8tPz8tPz8tPz8tPz8iCisgICAgKyAiLT8/Py0/Py0/Py0/Py0/Py0/Py0/Py0/Py0/ii2aPy0/Py0/Py0/Py0/Py0/Pz8tPz8tPz8tPz8tPz8tPz8tPyIKKyAgICArICI/LT8/LT8/Py0/Py0/Py0/Py0/Py0/Pz8/Py0/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Py0/Pz8tPz8tPz8tPz8/Pz8tIgorICAgICsgIj8/Pz8/Pz8/Pz8tPz8/Pz8/Pz8/LT8/LT8/LT8/LT8/Py0/Py0/Py0/Pz8tPz8/LT8/Pz8tPz8/LT8/Pz8tPz8iCisgICAgKyAiLT8/LT8/LT8/Py0/Pz8/Pz8/LT8/LT8/Pz8/Pz8tPz8/Pz8/Py0/Pz8/Pz8/Pz8tPz8tPz8/Py0/Pz8/Pz8tPyIKKyAgICArICI/Pz8/Pz8tPz8/LT8/Pz8/Pz8/Pz8tPz8tPz8/LT8/LT8/LT8/Py0/Pz8/Pz8/Pz8/Py0/Py0/Py0/Pz8/Pz8/IgorICAgICsgIj8/Pz8/Py0/Py0/Py0/Pz8/Pz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8iCisgICAgKyAiLT8/LT8/LT8/LT8/Py0/Py0/Pz8/LT8/LT8/LT8/LT8/LT8/LT8/LT8/Pz8tPz8/Pz8tPz8/Py0/Pz8/LT8/PyIKKyAgICArICI/Py0/XD8tXD8/Pz8thT8/LT8/LT8/Pz8tPz9cPz8tPz8tPz8/LT8/Py0/Py0/Py0/Py0/Py0/Py0/Py2ZPz8/IgorICAgICsgIj8tPz8tPz8tPz8tPz8tPz8tPz8/Pz8/Pz8/Pz8/Py0/Py0/Pz8/Pz8/Py0/Py0/Py0/Py0/Py0/Py0/Py0/Pz8iCisgICAgKyAiLT8/Py0/Py0/Py0/Pz8tPz8/Pz8tP1w/Py0/Pz8tPz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8tPz8/Pz8/Pz8/PyIKKyAgICArICI/Pz8/Pz8/Pz8/Pz8/Py0/Pz8/LT8/LT8/LT8/LT8/LT8/LT8/LT8/LT8/LT8/LT8/Pz8/Pz8/Pz8/Pz8/Pz8/IgorICAgICsgIj8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8iCisgICAgKyAiPz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/PyIKKyAgICArICI/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/IgorICAgICsgIj8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8iCisgICAgKyAiPz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/PyIKKyAgICArICI/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/IgorICAgICsgIi0/Pz8/LT8/Pz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8/LT8/LT8/LT8/LT8/LT8/LT8/LT8/LT8/LT8/LT8/LT8iCisgICAgKyAiPy0/Py0/Pz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8tPz8tIgorICAgICsgIj8/LT8/LT8/Py0/Py0/Py0/Pz8tPz8tPz8tPz8tPz8tPz8tPz8tIgorICAgICsgIj8/LT8/LT8/Py0/Py0/Py0/Py0/Py0/XSIqLworICAgIH0gICAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9Ob3JtYWxpemVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Ob3JtYWxpemVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmY2NTEzNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L05vcm1hbGl6ZXIuamF2YQpAQCAtMCwwICsxLDIzMzkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvdGV4dC9Ob3JtYWxpemVyLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDgvMDcgMTg6MDY6NTAgJCAKKyAqICRSZXZpc2lvbjogMS4yMiAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLk5vcm1hbGl6ZXJJbXBsOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3RlclByb3BlcnR5OworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKKy8qKgorICogVW5pY29kZSBOb3JtYWxpemF0aW9uIAorICoKKyAqIDxoMj5Vbmljb2RlIG5vcm1hbGl6YXRpb24gQVBJPC9oMj4KKyAqCisgKiA8Y29kZT5ub3JtYWxpemU8L2NvZGU+IHRyYW5zZm9ybXMgVW5pY29kZSB0ZXh0IGludG8gYW4gZXF1aXZhbGVudCBjb21wb3NlZCBvcgorICogZGVjb21wb3NlZCBmb3JtLCBhbGxvd2luZyBmb3IgZWFzaWVyIHNvcnRpbmcgYW5kIHNlYXJjaGluZyBvZiB0ZXh0LgorICogPGNvZGU+bm9ybWFsaXplPC9jb2RlPiBzdXBwb3J0cyB0aGUgc3RhbmRhcmQgbm9ybWFsaXphdGlvbiBmb3JtcyBkZXNjcmliZWQgaW4KKyAqIDxhIGhyZWY9Imh0dHA6Ly93d3cudW5pY29kZS5vcmcvdW5pY29kZS9yZXBvcnRzL3RyMTUvIiB0YXJnZXQ9InVuaWNvZGUiPgorICogVW5pY29kZSBTdGFuZGFyZCBBbm5leCAjMTUgJm1kYXNoOyBVbmljb2RlIE5vcm1hbGl6YXRpb24gRm9ybXM8L2E+LgorICoKKyAqIENoYXJhY3RlcnMgd2l0aCBhY2NlbnRzIG9yIG90aGVyIGFkb3JubWVudHMgY2FuIGJlIGVuY29kZWQgaW4KKyAqIHNldmVyYWwgZGlmZmVyZW50IHdheXMgaW4gVW5pY29kZS4gIEZvciBleGFtcGxlLCB0YWtlIHRoZSBjaGFyYWN0ZXIgQS1hY3V0ZS4KKyAqIEluIFVuaWNvZGUsIHRoaXMgY2FuIGJlIGVuY29kZWQgYXMgYSBzaW5nbGUgY2hhcmFjdGVyICh0aGUKKyAqICJjb21wb3NlZCIgZm9ybSk6CisgKgorICogPHA+CisgKiAgICAgIDAwQzEgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEFDVVRFCisgKiA8L3A+CisgKgorICogb3IgYXMgdHdvIHNlcGFyYXRlIGNoYXJhY3RlcnMgKHRoZSAiZGVjb21wb3NlZCIgZm9ybSk6CisgKgorICogPHA+CisgKiAgICAgIDAwNDEgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQQorICogICAgICAwMzAxICAgIENPTUJJTklORyBBQ1VURSBBQ0NFTlQKKyAqIDwvcD4KKyAqCisgKiBUbyBhIHVzZXIgb2YgeW91ciBwcm9ncmFtLCBob3dldmVyLCBib3RoIG9mIHRoZXNlIHNlcXVlbmNlcyBzaG91bGQgYmUKKyAqIHRyZWF0ZWQgYXMgdGhlIHNhbWUgInVzZXItbGV2ZWwiIGNoYXJhY3RlciAiQSB3aXRoIGFjdXRlIGFjY2VudCIuICBXaGVuIHlvdSBhcmUgc2VhcmNoaW5nIG9yCisgKiBjb21wYXJpbmcgdGV4dCwgeW91IG11c3QgZW5zdXJlIHRoYXQgdGhlc2UgdHdvIHNlcXVlbmNlcyBhcmUgdHJlYXRlZCAKKyAqIGVxdWl2YWxlbnRseS4gIEluIGFkZGl0aW9uLCB5b3UgbXVzdCBoYW5kbGUgY2hhcmFjdGVycyB3aXRoIG1vcmUgdGhhbiBvbmUKKyAqIGFjY2VudC4gIFNvbWV0aW1lcyB0aGUgb3JkZXIgb2YgYSBjaGFyYWN0ZXIncyBjb21iaW5pbmcgYWNjZW50cyBpcworICogc2lnbmlmaWNhbnQsIHdoaWxlIGluIG90aGVyIGNhc2VzIGFjY2VudCBzZXF1ZW5jZXMgaW4gZGlmZmVyZW50IG9yZGVycyBhcmUKKyAqIHJlYWxseSBlcXVpdmFsZW50LgorICoKKyAqIFNpbWlsYXJseSwgdGhlIHN0cmluZyAiZmZpIiBjYW4gYmUgZW5jb2RlZCBhcyB0aHJlZSBzZXBhcmF0ZSBsZXR0ZXJzOgorICoKKyAqIDxwPgorICogICAgICAwMDY2ICAgIExBVElOIFNNQUxMIExFVFRFUiBGCisgKiAgICAgIDAwNjYgICAgTEFUSU4gU01BTEwgTEVUVEVSIEYKKyAqICAgICAgMDA2OSAgICBMQVRJTiBTTUFMTCBMRVRURVIgSQorICogPFxwPgorICoKKyAqIG9yIGFzIHRoZSBzaW5nbGUgY2hhcmFjdGVyCisgKgorICogPHA+CisgKiAgICAgIEZCMDMgICAgTEFUSU4gU01BTEwgTElHQVRVUkUgRkZJCisgKiA8XHA+CisgKgorICogVGhlIGZmaSBsaWdhdHVyZSBpcyBub3QgYSBkaXN0aW5jdCBzZW1hbnRpYyBjaGFyYWN0ZXIsIGFuZCBzdHJpY3RseSBzcGVha2luZworICogaXQgc2hvdWxkbid0IGJlIGluIFVuaWNvZGUgYXQgYWxsLCBidXQgaXQgd2FzIGluY2x1ZGVkIGZvciBjb21wYXRpYmlsaXR5CisgKiB3aXRoIGV4aXN0aW5nIGNoYXJhY3RlciBzZXRzIHRoYXQgYWxyZWFkeSBwcm92aWRlZCBpdC4gIFRoZSBVbmljb2RlIHN0YW5kYXJkCisgKiBpZGVudGlmaWVzIHN1Y2ggY2hhcmFjdGVycyBieSBnaXZpbmcgdGhlbSAiY29tcGF0aWJpbGl0eSIgZGVjb21wb3NpdGlvbnMKKyAqIGludG8gdGhlIGNvcnJlc3BvbmRpbmcgc2VtYW50aWMgY2hhcmFjdGVycy4gIFdoZW4gc29ydGluZyBhbmQgc2VhcmNoaW5nLCB5b3UKKyAqIHdpbGwgb2Z0ZW4gd2FudCB0byB1c2UgdGhlc2UgbWFwcGluZ3MuCisgKgorICogPGNvZGU+bm9ybWFsaXplPC9jb2RlPiBoZWxwcyBzb2x2ZSB0aGVzZSBwcm9ibGVtcyBieSB0cmFuc2Zvcm1pbmcgdGV4dCBpbnRvIHRoZQorICogY2Fub25pY2FsIGNvbXBvc2VkIGFuZCBkZWNvbXBvc2VkIGZvcm1zIGFzIHNob3duIGluIHRoZSBmaXJzdCBleGFtcGxlIGFib3ZlLiAgCisgKiBJbiBhZGRpdGlvbiwgeW91IGNhbiBoYXZlIGl0IHBlcmZvcm0gY29tcGF0aWJpbGl0eSBkZWNvbXBvc2l0aW9ucyBzbyB0aGF0IAorICogeW91IGNhbiB0cmVhdCBjb21wYXRpYmlsaXR5IGNoYXJhY3RlcnMgdGhlIHNhbWUgYXMgdGhlaXIgZXF1aXZhbGVudHMuCisgKiBGaW5hbGx5LCA8Y29kZT5ub3JtYWxpemU8L2NvZGU+IHJlYXJyYW5nZXMgYWNjZW50cyBpbnRvIHRoZSBwcm9wZXIgY2Fub25pY2FsCisgKiBvcmRlciwgc28gdGhhdCB5b3UgZG8gbm90IGhhdmUgdG8gd29ycnkgYWJvdXQgYWNjZW50IHJlYXJyYW5nZW1lbnQgb24geW91cgorICogb3duLgorICoKKyAqIEZvcm0gRkNELCAiRmFzdCBDIG9yIEQiLCBpcyBhbHNvIGRlc2lnbmVkIGZvciBjb2xsYXRpb24uCisgKiBJdCBhbGxvd3MgdG8gd29yayBvbiBzdHJpbmdzIHRoYXQgYXJlIG5vdCBuZWNlc3NhcmlseSBub3JtYWxpemVkCisgKiB3aXRoIGFuIGFsZ29yaXRobSAobGlrZSBpbiBjb2xsYXRpb24pIHRoYXQgd29ya3MgdW5kZXIgImNhbm9uaWNhbCBjbG9zdXJlIiwgaS5lLiwgaXQgdHJlYXRzIHByZWNvbXBvc2VkCisgKiBjaGFyYWN0ZXJzIGFuZCB0aGVpciBkZWNvbXBvc2VkIGVxdWl2YWxlbnRzIHRoZSBzYW1lLgorICoKKyAqIEl0IGlzIG5vdCBhIG5vcm1hbGl6YXRpb24gZm9ybSBiZWNhdXNlIGl0IGRvZXMgbm90IHByb3ZpZGUgZm9yIHVuaXF1ZW5lc3Mgb2YgcmVwcmVzZW50YXRpb24uIE11bHRpcGxlIHN0cmluZ3MKKyAqIG1heSBiZSBjYW5vbmljYWxseSBlcXVpdmFsZW50ICh0aGVpciBORkRzIGFyZSBpZGVudGljYWwpIGFuZCBtYXkgYWxsIGNvbmZvcm0gdG8gRkNEIHdpdGhvdXQgYmVpbmcgaWRlbnRpY2FsCisgKiB0aGVtc2VsdmVzLgorICoKKyAqIFRoZSBmb3JtIGlzIGRlZmluZWQgc3VjaCB0aGF0IHRoZSAicmF3IGRlY29tcG9zaXRpb24iLCB0aGUgcmVjdXJzaXZlIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9uIG9mIGVhY2ggY2hhcmFjdGVyLAorICogcmVzdWx0cyBpbiBhIHN0cmluZyB0aGF0IGlzIGNhbm9uaWNhbGx5IG9yZGVyZWQuIFRoaXMgbWVhbnMgdGhhdCBwcmVjb21wb3NlZCBjaGFyYWN0ZXJzIGFyZSBhbGxvd2VkIGZvciBhcyBsb25nCisgKiBhcyB0aGVpciBkZWNvbXBvc2l0aW9ucyBkbyBub3QgbmVlZCBjYW5vbmljYWwgcmVvcmRlcmluZy4KKyAqCisgKiBJdHMgYWR2YW50YWdlIGZvciBhIHByb2Nlc3MgbGlrZSBjb2xsYXRpb24gaXMgdGhhdCBhbGwgTkZEIGFuZCBtb3N0IE5GQyB0ZXh0cyAtIGFuZCBtYW55IHVubm9ybWFsaXplZCB0ZXh0cyAtCisgKiBhbHJlYWR5IGNvbmZvcm0gdG8gRkNEIGFuZCBkbyBub3QgbmVlZCB0byBiZSBub3JtYWxpemVkIChORkQpIGZvciBzdWNoIGEgcHJvY2Vzcy4gVGhlIEZDRCBxdWljayBjaGVjayB3aWxsCisgKiByZXR1cm4gWUVTIGZvciBtb3N0IHN0cmluZ3MgaW4gcHJhY3RpY2UuCisgKgorICogbm9ybWFsaXplKEZDRCkgbWF5IGJlIGltcGxlbWVudGVkIHdpdGggTkZELgorICoKKyAqIEZvciBtb3JlIGRldGFpbHMgb24gRkNEIHNlZSB0aGUgY29sbGF0aW9uIGRlc2lnbiBkb2N1bWVudDoKKyAqIGh0dHA6Ly9vc3Muc29mdHdhcmUuaWJtLmNvbS9jdnMvaWN1L35jaGVja291dH4vaWN1aHRtbC9kZXNpZ24vY29sbGF0aW9uL0lDVV9jb2xsYXRpb25fZGVzaWduLmh0bQorICoKKyAqIElDVSBjb2xsYXRpb24gcGVyZm9ybXMgZWl0aGVyIE5GRCBvciBGQ0Qgbm9ybWFsaXphdGlvbiBhdXRvbWF0aWNhbGx5IGlmIG5vcm1hbGl6YXRpb24KKyAqIGlzIHR1cm5lZCBvbiBmb3IgdGhlIGNvbGxhdG9yIG9iamVjdC4KKyAqIEJleW9uZCBjb2xsYXRpb24gYW5kIHN0cmluZyBzZWFyY2gsIG5vcm1hbGl6ZWQgc3RyaW5ncyBtYXkgYmUgdXNlZnVsIGZvciBzdHJpbmcgZXF1aXZhbGVuY2UgY29tcGFyaXNvbnMsCisgKiB0cmFuc2xpdGVyYXRpb24vdHJhbnNjcmlwdGlvbiwgdW5pcXVlIHJlcHJlc2VudGF0aW9ucywgZXRjLgorICoKKyAqIFRoZSBXM0MgZ2VuZXJhbGx5IHJlY29tbWVuZHMgdG8gZXhjaGFuZ2UgdGV4dHMgaW4gTkZDLgorICogTm90ZSBhbHNvIHRoYXQgbW9zdCBsZWdhY3kgY2hhcmFjdGVyIGVuY29kaW5ncyB1c2Ugb25seSBwcmVjb21wb3NlZCBmb3JtcyBhbmQgb2Z0ZW4gZG8gbm90CisgKiBlbmNvZGUgYW55IGNvbWJpbmluZyBtYXJrcyBieSB0aGVtc2VsdmVzLiBGb3IgY29udmVyc2lvbiB0byBzdWNoIGNoYXJhY3RlciBlbmNvZGluZ3MgdGhlCisgKiBVbmljb2RlIHRleHQgbmVlZHMgdG8gYmUgbm9ybWFsaXplZCB0byBORkMuCisgKiBGb3IgbW9yZSB1c2FnZSBleGFtcGxlcywgc2VlIHRoZSBVbmljb2RlIFN0YW5kYXJkIEFubmV4LgorICovCisKK3B1YmxpYyBmaW5hbCBjbGFzcyBOb3JtYWxpemVyIGltcGxlbWVudHMgQ2xvbmVhYmxleworICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFByaXZhdGUgZGF0YQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgCisgICAgcHJpdmF0ZSBjaGFyW10gYnVmZmVyID0gbmV3IGNoYXJbMTAwXTsKKyAgICBwcml2YXRlIGludCBidWZmZXJTdGFydCA9IDA7CisgICAgcHJpdmF0ZSBpbnQgYnVmZmVyUG9zICAgPSAwOworICAgIHByaXZhdGUgaW50IGJ1ZmZlckxpbWl0ID0gMDsKKyAgICAKKyAgICAvLyBUaGlzIHRlbGxzIHVzIHdoYXQgdGhlIGJpdHMgaW4gdGhlICJtb2RlIiBvYmplY3QgbWVhbi4KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09NUEFUX0JJVCA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFQ09NUF9CSVQgPSAyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDT01QT1NFX0JJVCA9IDQ7CisgICAgCisgICAgLy8gVGhlIGlucHV0IHRleHQgYW5kIG91ciBwb3NpdGlvbiBpbiBpdAorICAgIHByaXZhdGUgVUNoYXJhY3Rlckl0ZXJhdG9yICB0ZXh0OworICAgIHByaXZhdGUgTW9kZSAgICAgICAgICAgICAgICBtb2RlID0gTkZDOworICAgIHByaXZhdGUgaW50ICAgICAgICAgICAgICAgICBvcHRpb25zID0gMDsKKyAgICBwcml2YXRlIGludCAgICAgICAgICAgICAgICAgY3VycmVudEluZGV4OworICAgIHByaXZhdGUgaW50ICAgICAgICAgICAgICAgICBuZXh0SW5kZXg7CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgaW5kaWNhdGluZyB0aGF0IHRoZSBlbmQgb2YgdGhlIGl0ZXJhdGlvbiBoYXMgYmVlbiByZWFjaGVkLgorICAgICAqIFRoaXMgaXMgZ3VhcmFudGVlZCB0byBoYXZlIHRoZSBzYW1lIHZhbHVlIGFzIHtAbGluayBVQ2hhcmFjdGVySXRlcmF0b3IjRE9ORX0uCisgICAgICogCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRE9ORSA9IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FOworCisgICAgLyoqCisgICAgICogQ29uc3RhbnRzIGZvciBub3JtYWxpemF0aW9uIG1vZGVzLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgTW9kZSB7CisJCXByaXZhdGUgaW50IG1vZGVWYWx1ZTsKKwkJcHJpdmF0ZSBNb2RlKGludCB2YWx1ZSl7CisJCSAgICBtb2RlVmFsdWUgPSB2YWx1ZTsKKwkJfQorICAgICAgICBwcm90ZWN0ZWQgaW50IG5vcm1hbGl6ZShjaGFyW10gc3JjLCBpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBkZXN0LCBpbnQgZGVzdFN0YXJ0LCBpbnQgZGVzdExpbWl0KXsKKyAgICAgICAgICAgIGludCBzcmNMZW4gPSAoc3JjTGltaXQgLSBzcmNTdGFydCk7CisgICAgICAgICAgICBpbnQgZGVzdExlbiA9IChkZXN0TGltaXQgLSBkZXN0U3RhcnQpOworICAgICAgICAgICAgaWYoIHNyY0xlbiA+IGRlc3RMZW4gKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3JjTGVuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShzcmMsc3JjU3RhcnQsZGVzdCxkZXN0U3RhcnQsc3JjTGVuKTsKKyAgICAgICAgICAgIHJldHVybiBzcmNMZW47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByb3RlY3RlZCBTdHJpbmcgbm9ybWFsaXplKFN0cmluZyBzcmMpeworICAgICAgICAgICAgcmV0dXJuIHNyYzsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIGludCBnZXRNaW5DKCl7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIGludCBnZXRNYXNrKCl7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIElzUHJldkJvdW5kYXJ5IGdldFByZXZCb3VuZGFyeSgpeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIElzTmV4dEJvdW5kYXJ5IGdldE5leHRCb3VuZGFyeSgpeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIFF1aWNrQ2hlY2tSZXN1bHQgcXVpY2tDaGVjayhjaGFyW10gc3JjLGludCBzdGFydCwgaW50IGxpbWl0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGFsbG93TWF5YmUpeworICAgICAgICAgICAgaWYoYWxsb3dNYXliZSl7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWUJFOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIE5POworICAgICAgICB9CisgICAgICAgIAorICAgIH0KKyAgICAKKyAgICAvKiogTm8gZGVjb21wb3NpdGlvbi9jb21wb3NpdGlvbi4gICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBNb2RlIE5PTkUgPSBuZXcgTW9kZSgxKTsKKworICAgIC8qKiBDYW5vbmljYWwgZGVjb21wb3NpdGlvbi4gICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBNb2RlIE5GRCA9IG5ldyBNb2RlKDIpeworICAgICAgICAgICAgcHJvdGVjdGVkIGludCBub3JtYWxpemUoIGNoYXJbXSBzcmMsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGVzdCxpbnQgZGVzdFN0YXJ0LGludCBkZXN0TGltaXQpeworICAgICAgICAgICAgICByZXR1cm4gZGVjb21wb3NlKHNyYywgIHNyY1N0YXJ0LHNyY0xpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QsIGRlc3RTdGFydCxkZXN0TGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIG5vcm1hbGl6ZSggU3RyaW5nIHNyYyl7CisgICAgICAgICAgICAgICAgcmV0dXJuIGRlY29tcG9zZShzcmMsZmFsc2UpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJvdGVjdGVkIGludCBnZXRNaW5DKCl7CisgICAgICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLk1JTl9XSVRIX0xFQURfQ0M7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwcm90ZWN0ZWQgSXNQcmV2Qm91bmRhcnkgZ2V0UHJldkJvdW5kYXJ5KCl7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBJc1ByZXZORkRTYWZlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwcm90ZWN0ZWQgSXNOZXh0Qm91bmRhcnkgZ2V0TmV4dEJvdW5kYXJ5KCl7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBJc05leHRORkRTYWZlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwcm90ZWN0ZWQgaW50IGdldE1hc2soKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gKE5vcm1hbGl6ZXJJbXBsLkNDX01BU0t8Tm9ybWFsaXplckltcGwuUUNfTkZEKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHByb3RlY3RlZCBRdWlja0NoZWNrUmVzdWx0IHF1aWNrQ2hlY2soY2hhcltdIHNyYyxpbnQgc3RhcnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsYm9vbGVhbiBhbGxvd01heWJlKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwucXVpY2tDaGVjaygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjLCBzdGFydCxsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplckltcGwuZ2V0RnJvbUluZGV4ZXNBcnIoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplckltcGwuSU5ERVhfTUlOX05GRF9OT19NQVlCRQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVySW1wbC5RQ19ORkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93TWF5YmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICB9CisgICAgICAgICAgIAorICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgLyoqIENvbXBhdGliaWxpdHkgZGVjb21wb3NpdGlvbi4gICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBNb2RlIE5GS0QgPSBuZXcgTW9kZSgzKXsKKyAgICAgICAgICAgIHByb3RlY3RlZCBpbnQgbm9ybWFsaXplKCBjaGFyW10gc3JjLCBpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBkZXN0LGludCBkZXN0U3RhcnQsaW50IGRlc3RMaW1pdCl7CisgICAgICAgICAgICAgIHJldHVybiBkZWNvbXBvc2Uoc3JjLCAgc3JjU3RhcnQsc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdCwgZGVzdFN0YXJ0LGRlc3RMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHByb3RlY3RlZCBTdHJpbmcgbm9ybWFsaXplKCBTdHJpbmcgc3JjKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gZGVjb21wb3NlKHNyYyx0cnVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHByb3RlY3RlZCBpbnQgZ2V0TWluQygpeworICAgICAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5NSU5fV0lUSF9MRUFEX0NDOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJvdGVjdGVkIElzUHJldkJvdW5kYXJ5IGdldFByZXZCb3VuZGFyeSgpeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgSXNQcmV2TkZEU2FmZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJvdGVjdGVkIElzTmV4dEJvdW5kYXJ5IGdldE5leHRCb3VuZGFyeSgpeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgSXNOZXh0TkZEU2FmZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJvdGVjdGVkIGludCBnZXRNYXNrKCl7CisgICAgICAgICAgICAgICAgcmV0dXJuIChOb3JtYWxpemVySW1wbC5DQ19NQVNLfE5vcm1hbGl6ZXJJbXBsLlFDX05GS0QpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJvdGVjdGVkIFF1aWNrQ2hlY2tSZXN1bHQgcXVpY2tDaGVjayhjaGFyW10gc3JjLGludCBzdGFydCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCxib29sZWFuIGFsbG93TWF5YmUpeworICAgICAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5xdWlja0NoZWNrKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmMsc3RhcnQsbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXJJbXBsLmdldEZyb21JbmRleGVzQXJyKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplckltcGwuSU5ERVhfTUlOX05GS0RfTk9fTUFZQkUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplckltcGwuUUNfTkZLRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dNYXliZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgIH07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8qKiBDYW5vbmljYWwgZGVjb21wb3NpdGlvbiBmb2xsb3dlZCBieSBjYW5vbmljYWwgY29tcG9zaXRpb24uICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTW9kZSBORkMgPSBuZXcgTW9kZSg0KXsKKyAgICAgICAgICAgIHByb3RlY3RlZCBpbnQgbm9ybWFsaXplKCBjaGFyW10gc3JjLCBpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGRlc3QsaW50IGRlc3RTdGFydCxpbnQgZGVzdExpbWl0KXsKKyAgICAgICAgICAgICAgcmV0dXJuIGNvbXBvc2Uoc3JjLCAgc3JjU3RhcnQsc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QsIGRlc3RTdGFydCxkZXN0TGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHJvdGVjdGVkIFN0cmluZyBub3JtYWxpemUoIFN0cmluZyBzcmMpeworICAgICAgICAgICAgICAgIHJldHVybiBjb21wb3NlKHNyYyxmYWxzZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgIAorICAgICAgICAgICAgcHJvdGVjdGVkIGludCBnZXRNaW5DKCl7CisgICAgICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLmdldEZyb21JbmRleGVzQXJyKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXJJbXBsLklOREVYX01JTl9ORkNfTk9fTUFZQkUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwcm90ZWN0ZWQgSXNQcmV2Qm91bmRhcnkgZ2V0UHJldkJvdW5kYXJ5KCl7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBJc1ByZXZUcnVlU3RhcnRlcigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJvdGVjdGVkIElzTmV4dEJvdW5kYXJ5IGdldE5leHRCb3VuZGFyeSgpeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgSXNOZXh0VHJ1ZVN0YXJ0ZXIoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHByb3RlY3RlZCBpbnQgZ2V0TWFzaygpeworICAgICAgICAgICAgICAgIHJldHVybiAoTm9ybWFsaXplckltcGwuQ0NfTUFTS3xOb3JtYWxpemVySW1wbC5RQ19ORkMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJvdGVjdGVkIFF1aWNrQ2hlY2tSZXN1bHQgcXVpY2tDaGVjayhjaGFyW10gc3JjLGludCBzdGFydCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCxib29sZWFuIGFsbG93TWF5YmUpeworICAgICAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5xdWlja0NoZWNrKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjLHN0YXJ0LGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplckltcGwuZ2V0RnJvbUluZGV4ZXNBcnIoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplckltcGwuSU5ERVhfTUlOX05GQ19OT19NQVlCRQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXJJbXBsLlFDX05GQywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93TWF5YmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgIH07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8qKiBEZWZhdWx0IG5vcm1hbGl6YXRpb24uICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTW9kZSBERUZBVUxUID0gTkZDOyAKKyAgICAKKyAgICAvKiogQ29tcGF0aWJpbGl0eSBkZWNvbXBvc2l0aW9uIGZvbGxvd2VkIGJ5IGNhbm9uaWNhbCBjb21wb3NpdGlvbi4gICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBNb2RlIE5GS0MgPW5ldyBNb2RlKDUpeworICAgICAgICAgICAgcHJvdGVjdGVkIGludCBub3JtYWxpemUoIGNoYXJbXSBzcmMsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGVzdCxpbnQgZGVzdFN0YXJ0LGludCBkZXN0TGltaXQpeworICAgICAgICAgICAgICByZXR1cm4gY29tcG9zZShzcmMsICBzcmNTdGFydCxzcmNMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdCwgZGVzdFN0YXJ0LGRlc3RMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIG5vcm1hbGl6ZSggU3RyaW5nIHNyYyl7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBvc2Uoc3JjLHRydWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJvdGVjdGVkIGludCBnZXRNaW5DKCl7CisgICAgICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLmdldEZyb21JbmRleGVzQXJyKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXJJbXBsLklOREVYX01JTl9ORktDX05PX01BWUJFCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJvdGVjdGVkIElzUHJldkJvdW5kYXJ5IGdldFByZXZCb3VuZGFyeSgpeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgSXNQcmV2VHJ1ZVN0YXJ0ZXIoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHByb3RlY3RlZCBJc05leHRCb3VuZGFyeSBnZXROZXh0Qm91bmRhcnkoKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IElzTmV4dFRydWVTdGFydGVyKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwcm90ZWN0ZWQgaW50IGdldE1hc2soKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gKE5vcm1hbGl6ZXJJbXBsLkNDX01BU0t8Tm9ybWFsaXplckltcGwuUUNfTkZLQyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwcm90ZWN0ZWQgUXVpY2tDaGVja1Jlc3VsdCBxdWlja0NoZWNrKGNoYXJbXSBzcmMsaW50IHN0YXJ0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LGJvb2xlYW4gYWxsb3dNYXliZSl7CisgICAgICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLnF1aWNrQ2hlY2soCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmMsc3RhcnQsbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVySW1wbC5nZXRGcm9tSW5kZXhlc0FycigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXJJbXBsLklOREVYX01JTl9ORktDX05PX01BWUJFCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplckltcGwuUUNfTkZLQywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93TWF5YmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgfQorICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAvKiogIkZhc3QgQyBvciBEIiBmb3JtLiBAc2luY2UgSUNVIDIuMSAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTW9kZSBGQ0QgPSBuZXcgTW9kZSg2KXsKKyAgICAgICAgICAgIHByb3RlY3RlZCBpbnQgbm9ybWFsaXplKCBjaGFyW10gc3JjLCBpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGRlc3QsaW50IGRlc3RTdGFydCxpbnQgZGVzdExpbWl0KXsKKyAgICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLm1ha2VGQ0Qoc3JjLCBzcmNTdGFydCxzcmNMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdCwgZGVzdFN0YXJ0LGRlc3RMaW1pdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIG5vcm1hbGl6ZSggU3RyaW5nIHNyYyl7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VGQ0Qoc3JjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHByb3RlY3RlZCBpbnQgZ2V0TWluQygpeworICAgICAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5NSU5fV0lUSF9MRUFEX0NDOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJvdGVjdGVkIElzUHJldkJvdW5kYXJ5IGdldFByZXZCb3VuZGFyeSgpeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgSXNQcmV2TkZEU2FmZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJvdGVjdGVkIElzTmV4dEJvdW5kYXJ5IGdldE5leHRCb3VuZGFyeSgpeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgSXNOZXh0TkZEU2FmZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJvdGVjdGVkIGludCBnZXRNYXNrKCl7CisgICAgICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLkNDX01BU0t8Tm9ybWFsaXplckltcGwuUUNfTkZEOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJvdGVjdGVkIFF1aWNrQ2hlY2tSZXN1bHQgcXVpY2tDaGVjayhjaGFyW10gc3JjLGludCBzdGFydCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCxib29sZWFuIGFsbG93TWF5YmUpeworICAgICAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5jaGVja0ZDRChzcmMsc3RhcnQsbGltaXQpID8gWUVTIDogTk87CisgICAgICAgICAgICB9ICAKKyAgICAgICAgIH07CisKKyAgICAKKyAgICAvKioKKyAgICAgKiBOdWxsIG9wZXJhdGlvbiBmb3IgdXNlIHdpdGggdGhlIHtAbGluayAjTm9ybWFsaXplciBjb25zdHJ1Y3RvcnN9CisgICAgICogYW5kIHRoZSBzdGF0aWMge0BsaW5rICNub3JtYWxpemUgbm9ybWFsaXplfSBtZXRob2QuICBUaGlzIHZhbHVlIHRlbGxzCisgICAgICogdGhlIDx0dD5Ob3JtYWxpemVyPC90dD4gdG8gZG8gbm90aGluZyBidXQgcmV0dXJuIHVucHJvY2Vzc2VkIGNoYXJhY3RlcnMKKyAgICAgKiBmcm9tIHRoZSB1bmRlcmx5aW5nIFN0cmluZyBvciBDaGFyYWN0ZXJJdGVyYXRvci4gIElmIHlvdSBoYXZlIGNvZGUgd2hpY2gKKyAgICAgKiByZXF1aXJlcyByYXcgdGV4dCBhdCBzb21lIHRpbWVzIGFuZCBub3JtYWxpemVkIHRleHQgYXQgb3RoZXJzLCB5b3UgY2FuCisgICAgICogdXNlIDx0dD5OT19PUDwvdHQ+IGZvciB0aGUgY2FzZXMgd2hlcmUgeW91IHdhbnQgcmF3IHRleHQsIHJhdGhlcgorICAgICAqIHRoYW4gaGF2aW5nIGEgc2VwYXJhdGUgY29kZSBwYXRoIHRoYXQgYnlwYXNzZXMgPHR0Pk5vcm1hbGl6ZXI8L3R0PgorICAgICAqIGFsdG9nZXRoZXIuCisgICAgICogPHA+CisgICAgICogQHNlZSAjc2V0TW9kZQorICAgICAqIEBkZXByZWNhdGVkIFRvIGJlIHJlbW92ZWQgYWZ0ZXIgMjAwMy1BdWctMzEuIFVzZSBOb21hbGl6ZXIuTk9ORQorICAgICAqIEBzZWUgI05PTkUKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE1vZGUgTk9fT1AgPSBOT05FOworCisgICAgLyoqCisgICAgICogQ2Fub25pY2FsIGRlY29tcG9zaXRpb24gZm9sbG93ZWQgYnkgY2Fub25pY2FsIGNvbXBvc2l0aW9uLiAgVXNlZCB3aXRoIHRoZQorICAgICAqIHtAbGluayAjTm9ybWFsaXplciBjb25zdHJ1Y3RvcnN9IGFuZCB0aGUgc3RhdGljIHtAbGluayAjbm9ybWFsaXplIG5vcm1hbGl6ZX0KKyAgICAgKiBtZXRob2QgdG8gZGV0ZXJtaW5lIHRoZSBvcGVyYXRpb24gdG8gYmUgcGVyZm9ybWVkLgorICAgICAqIDxwPgorICAgICAqIElmIGFsbCBvcHRpb25hbCBmZWF0dXJlcyAoPGk+ZS5nLjwvaT4ge0BsaW5rICNJR05PUkVfSEFOR1VMfSkgYXJlIHR1cm5lZAorICAgICAqIG9mZiwgdGhpcyBvcGVyYXRpb24gcHJvZHVjZXMgb3V0cHV0IHRoYXQgaXMgaW4KKyAgICAgKiA8YSBocmVmPWh0dHA6Ly93d3cudW5pY29kZS5vcmcvdW5pY29kZS9yZXBvcnRzL3RyMTUvPlVuaWNvZGUgQ2Fub25pY2FsIEZvcm08L2E+CisgICAgICogPGI+QzwvYj4uCisgICAgICogPHA+CisgICAgICogQHNlZSAjc2V0TW9kZQorICAgICAqIEBkZXByZWNhdGVkIFRvIGJlIHJlbW92ZWQgYWZ0ZXIgMjAwMy1BdWctMzEuIFVzZSBOb3JtYWxpZXIuTkZDCisgICAgICogQHNlZSAjTkZDCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBNb2RlIENPTVBPU0UgPSBORkM7CisKKyAgICAvKioKKyAgICAgKiBDb21wYXRpYmlsaXR5IGRlY29tcG9zaXRpb24gZm9sbG93ZWQgYnkgY2Fub25pY2FsIGNvbXBvc2l0aW9uLgorICAgICAqIFVzZWQgd2l0aCB0aGUge0BsaW5rICNOb3JtYWxpemVyIGNvbnN0cnVjdG9yc30gYW5kIHRoZSBzdGF0aWMKKyAgICAgKiB7QGxpbmsgI25vcm1hbGl6ZSBub3JtYWxpemV9IG1ldGhvZCB0byBkZXRlcm1pbmUgdGhlIG9wZXJhdGlvbiB0byBiZSBwZXJmb3JtZWQuCisgICAgICogPHA+CisgICAgICogSWYgYWxsIG9wdGlvbmFsIGZlYXR1cmVzICg8aT5lLmcuPC9pPiB7QGxpbmsgI0lHTk9SRV9IQU5HVUx9KSBhcmUgdHVybmVkCisgICAgICogb2ZmLCB0aGlzIG9wZXJhdGlvbiBwcm9kdWNlcyBvdXRwdXQgdGhhdCBpcyBpbgorICAgICAqIDxhIGhyZWY9aHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHIxNS8+VW5pY29kZSBDYW5vbmljYWwgRm9ybTwvYT4KKyAgICAgKiA8Yj5LQzwvYj4uCisgICAgICogPHA+CisgICAgICogQHNlZSAjc2V0TW9kZQorICAgICAqIEBkZXByZWNhdGVkIFRvIGJlIHJlbW92ZWQgYWZ0ZXIgMjAwMy1BdWctMzEuIFVzZSBOb3JtYWxpemVyLk5GS0MKKyAgICAgKiBAc2VlICNORktDCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBNb2RlIENPTVBPU0VfQ09NUEFUID0gTkZLQzsKKworICAgIC8qKgorICAgICAqIENhbm9uaWNhbCBkZWNvbXBvc2l0aW9uLiAgVGhpcyB2YWx1ZSBpcyBwYXNzZWQgdG8gdGhlCisgICAgICoge0BsaW5rICNOb3JtYWxpemVyIGNvbnN0cnVjdG9yc30gYW5kIHRoZSBzdGF0aWMge0BsaW5rICNub3JtYWxpemUgbm9ybWFsaXplfQorICAgICAqIG1ldGhvZCB0byBkZXRlcm1pbmUgdGhlIG9wZXJhdGlvbiB0byBiZSBwZXJmb3JtZWQuCisgICAgICogPHA+CisgICAgICogSWYgYWxsIG9wdGlvbmFsIGZlYXR1cmVzICg8aT5lLmcuPC9pPiB7QGxpbmsgI0lHTk9SRV9IQU5HVUx9KSBhcmUgdHVybmVkCisgICAgICogb2ZmLCB0aGlzIG9wZXJhdGlvbiBwcm9kdWNlcyBvdXRwdXQgdGhhdCBpcyBpbgorICAgICAqIDxhIGhyZWY9aHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHIxNS8+VW5pY29kZSBDYW5vbmljYWwgRm9ybTwvYT4KKyAgICAgKiA8Yj5EPC9iPi4KKyAgICAgKiA8cD4KKyAgICAgKiBAc2VlICNzZXRNb2RlCisgICAgICogQGRlcHJlY2F0ZWQgVG8gYmUgcmVtb3ZlZCBhZnRlciAyMDAzLUF1Zy0zMS5Vc2UgTm9ybWFsaXplci5ORkQKKyAgICAgKiBAc2VlICNORkQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE1vZGUgREVDT01QID0gTkZEOworCisgICAgLyoqCisgICAgICogQ29tcGF0aWJpbGl0eSBkZWNvbXBvc2l0aW9uLiAgVGhpcyB2YWx1ZSBpcyBwYXNzZWQgdG8gdGhlCisgICAgICoge0BsaW5rICNOb3JtYWxpemVyIGNvbnN0cnVjdG9yc30gYW5kIHRoZSBzdGF0aWMge0BsaW5rICNub3JtYWxpemUgbm9ybWFsaXplfQorICAgICAqIG1ldGhvZCB0byBkZXRlcm1pbmUgdGhlIG9wZXJhdGlvbiB0byBiZSBwZXJmb3JtZWQuCisgICAgICogPHA+CisgICAgICogSWYgYWxsIG9wdGlvbmFsIGZlYXR1cmVzICg8aT5lLmcuPC9pPiB7QGxpbmsgI0lHTk9SRV9IQU5HVUx9KSBhcmUgdHVybmVkCisgICAgICogb2ZmLCB0aGlzIG9wZXJhdGlvbiBwcm9kdWNlcyBvdXRwdXQgdGhhdCBpcyBpbgorICAgICAqIDxhIGhyZWY9aHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHIxNS8+VW5pY29kZSBDYW5vbmljYWwgRm9ybTwvYT4KKyAgICAgKiA8Yj5LRDwvYj4uCisgICAgICogPHA+CisgICAgICogQHNlZSAjc2V0TW9kZQorICAgICAqIEBkZXByZWNhdGVkIFRvIGJlIHJlbW92ZWQgYWZ0ZXIgMjAwMy1BdWctMzEuIFVzZSBOb3JtYWxpemVyLk5GS0QKKyAgICAgKiBAc2VlICNORktECisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBNb2RlIERFQ09NUF9DT01QQVQgPSBORktEOworCisgICAgLyoqCisgICAgICogT3B0aW9uIHRvIGRpc2FibGUgSGFuZ3VsL0phbW8gY29tcG9zaXRpb24gYW5kIGRlY29tcG9zaXRpb24uCisgICAgICogVGhpcyBvcHRpb24gYXBwbGllcyB0byBLb3JlYW4gdGV4dCwKKyAgICAgKiB3aGljaCBjYW4gYmUgcmVwcmVzZW50ZWQgZWl0aGVyIGluIHRoZSBKYW1vIGFscGhhYmV0IG9yIGluIEhhbmd1bAorICAgICAqIGNoYXJhY3RlcnMsIHdoaWNoIGFyZSByZWFsbHkganVzdCB0d28gb3IgdGhyZWUgSmFtbyBjb21iaW5lZAorICAgICAqIGludG8gb25lIHZpc3VhbCBnbHlwaC4gIFNpbmNlIEphbW8gdGFrZXMgdXAgbW9yZSBzdG9yYWdlIHNwYWNlIHRoYW4KKyAgICAgKiBIYW5ndWwsIGFwcGxpY2F0aW9ucyB0aGF0IHByb2Nlc3Mgb25seSBIYW5ndWwgdGV4dCBtYXkgd2lzaCB0byB0dXJuCisgICAgICogdGhpcyBvcHRpb24gb24gd2hlbiBkZWNvbXBvc2luZyB0ZXh0LgorICAgICAqIDxwPgorICAgICAqIFRoZSBVbmljb2RlIHN0YW5kYXJkIHRyZWF0ZXMgSGFuZ3VsIHRvIEphbW8gY29udmVyc2lvbiBhcyBhCisgICAgICogY2Fub25pY2FsIGRlY29tcG9zaXRpb24sIHNvIHRoaXMgb3B0aW9uIG11c3QgYmUgdHVybmVkIDxiPm9mZjwvYj4gaWYgeW91CisgICAgICogd2lzaCB0byB0cmFuc2Zvcm0gc3RyaW5ncyBpbnRvIG9uZSBvZiB0aGUgc3RhbmRhcmQKKyAgICAgKiA8YSBocmVmPSJodHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjE1LyIgdGFyZ2V0PSJ1bmljb2RlIj4KKyAgICAgKiBVbmljb2RlIE5vcm1hbGl6YXRpb24gRm9ybXM8L2E+LgorICAgICAqIDxwPgorICAgICAqIEBzZWUgI3NldE9wdGlvbgorICAgICAqIEBkZXByZWNhdGVkIFRvIGJlIHJlbW92ZWQgYWZ0ZXIgMjAwMy1BdWctMzEuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSUdOT1JFX0hBTkdVTCA9IDB4MDAwMTsKKyAgICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXN1bHQgdmFsdWVzIGZvciBxdWlja0NoZWNrKCkuCisgICAgICogRm9yIGRldGFpbHMgc2VlIFVuaWNvZGUgVGVjaG5pY2FsIFJlcG9ydCAxNS4KKyAgICAgKiAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIFF1aWNrQ2hlY2tSZXN1bHR7CisJCXByaXZhdGUgaW50IHJlc3VsdFZhbHVlOworCQlwcml2YXRlIFF1aWNrQ2hlY2tSZXN1bHQoaW50IHZhbHVlKXsKKwkJICAgIHJlc3VsdFZhbHVlPXZhbHVlOworCQl9CisgICAgfQorICAgIC8qKiAKKyAgICAgKiBJbmRpY2F0ZXMgdGhhdCBzdHJpbmcgaXMgbm90IGluIHRoZSBub3JtYWxpemVkIGZvcm1hdAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgUXVpY2tDaGVja1Jlc3VsdCBOTyA9IG5ldyBRdWlja0NoZWNrUmVzdWx0KDApOworCQorICAgIC8qKiAKKyAgICAgKiBJbmRpY2F0ZXMgdGhhdCBzdHJpbmcgaXMgaW4gdGhlIG5vcm1hbGl6ZWQgZm9ybWF0CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBRdWlja0NoZWNrUmVzdWx0IFlFUyA9IG5ldyBRdWlja0NoZWNrUmVzdWx0KDEpOworCisgICAgLyoqIAorICAgICAqIEluZGljYXRlcyBpdCBjYW5ub3QgYmUgZGV0ZXJtaW5lZCBpZiBzdHJpbmcgaXMgaW4gdGhlIG5vcm1hbGl6ZWQgCisgICAgICogZm9ybWF0IHdpdGhvdXQgZnVydGhlciB0aG9yb3VnaCBjaGVja3MuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBRdWlja0NoZWNrUmVzdWx0IE1BWUJFID0gbmV3IFF1aWNrQ2hlY2tSZXN1bHQoMik7CisgICAgCisgICAgLyoqCisgICAgICogT3B0aW9uIGJpdCBmb3IgY29tcGFyZToKKyAgICAgKiBDYXNlIHNlbnNpdGl2ZWx5IGNvbXBhcmUgdGhlIHN0cmluZ3MKKyAgICAgKiBAc2luY2UgSUNVIDIuMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZPTERfQ0FTRV9ERUZBVUxUICAgID0gICAgICAweDAwMDA7CisgICAgCisgICAgLyoqCisgICAgICogT3B0aW9uIGJpdCBmb3IgY29tcGFyZToKKyAgICAgKiBCb3RoIGlucHV0IHN0cmluZ3MgYXJlIGFzc3VtZWQgdG8gZnVsZmlsbCBGQ0QgY29uZGl0aW9ucy4KKyAgICAgKiBAc2luY2UgSUNVIDIuMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElOUFVUX0lTX0ZDRCAgICA9ICAgICAgMHgyMDAwMDsKKwkKKyAgICAvKioKKyAgICAgKiBPcHRpb24gYml0IGZvciBjb21wYXJlOgorICAgICAqIFBlcmZvcm0gY2FzZS1pbnNlbnNpdGl2ZSBjb21wYXJpc29uLgorICAgICAqIEBzaW5jZSBJQ1UgMi4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09NUEFSRV9JR05PUkVfQ0FTRSAgPSAgICAgMHgxMDAwMDsKKwkKKyAgICAvKioKKyAgICAgKiBPcHRpb24gYml0IGZvciBjb21wYXJlOgorICAgICAqIENvbXBhcmUgc3RyaW5ncyBpbiBjb2RlIHBvaW50IG9yZGVyIGluc3RlYWQgb2YgY29kZSB1bml0IG9yZGVyLgorICAgICAqIEBzaW5jZSBJQ1UgMi4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09NUEFSRV9DT0RFX1BPSU5UX09SREVSID0gMHg4MDAwOworICAgIAorICAgIC8qKiBPcHRpb24gdmFsdWUgZm9yIGNhc2UgZm9sZGluZzogZXhjbHVkZSB0aGUgbWFwcGluZ3MgZm9yIGRvdHRlZCBJIAorICAgICAqIGFuZCBkb3RsZXNzIGkgbWFya2VkIHdpdGggJ0knIGluIENhc2VGb2xkaW5nLnR4dC4gCisgICAgICogQHNpbmNlIElDVSAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kgPSAweDAwMDE7CisJCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gQ29uc3RydWN0b3JzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgbmV3IDx0dD5Ob3JtYWxpemVyPC90dD4gb2JqZWN0IGZvciBpdGVyYXRpbmcgb3ZlciB0aGUKKyAgICAgKiBub3JtYWxpemVkIGZvcm0gb2YgYSBnaXZlbiBzdHJpbmcuCisgICAgICogPHA+CisgICAgICogQHBhcmFtIHN0ciAgIFRoZSBzdHJpbmcgdG8gYmUgbm9ybWFsaXplZC4gIFRoZSBub3JtYWxpemF0aW9uCisgICAgICogICAgICAgICAgICAgIHdpbGwgc3RhcnQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgc3RyaW5nLgorICAgICAqCisgICAgICogQHBhcmFtIG1vZGUgIFRoZSBub3JtYWxpemF0aW9uIG1vZGUuCisgICAgICovCisgICAgcHVibGljIE5vcm1hbGl6ZXIoU3RyaW5nIHN0ciwgTW9kZSBtb2RlKSB7CisgICAgICAgIHRoaXMoIFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShzdHIpLCBtb2RlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgbmV3IDx0dD5Ob3JtYWxpemVyPC90dD4gb2JqZWN0IGZvciBpdGVyYXRpbmcgb3ZlciB0aGUKKyAgICAgKiBub3JtYWxpemVkIGZvcm0gb2YgYSBnaXZlbiBzdHJpbmcuCisgICAgICogPHA+CisgICAgICogVGhlIDx0dD5vcHRpb25zPC90dD4gcGFyYW1ldGVyIHNwZWNpZmllcyB3aGljaCBvcHRpb25hbAorICAgICAqIDx0dD5Ob3JtYWxpemVyPC90dD4gZmVhdHVyZXMgYXJlIHRvIGJlIGVuYWJsZWQgZm9yIHRoaXMgb2JqZWN0LgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBzdHIgIFRoZSBzdHJpbmcgdG8gYmUgbm9ybWFsaXplZC4gIFRoZSBub3JtYWxpemF0aW9uCisgICAgICogICAgICAgICAgICAgIHdpbGwgc3RhcnQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgc3RyaW5nLgorICAgICAqCisgICAgICogQHBhcmFtIG1vZGUgVGhlIG5vcm1hbGl6YXRpb24gbW9kZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBvcHQgQW55IG9wdGlvbmFsIGZlYXR1cmVzIHRvIGJlIGVuYWJsZWQuCisgICAgICogICAgICAgICAgICBDdXJyZW50bHkgdGhlIG9ubHkgYXZhaWxhYmxlIG9wdGlvbiBpcyB7QGxpbmsgI0lHTk9SRV9IQU5HVUx9LgorICAgICAqICAgICAgICAgICAgSWYgeW91IHdhbnQgdGhlIGRlZmF1bHQgYmVoYXZpb3IgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlCisgICAgICogICAgICAgICAgICBzdGFuZGFyZCBVbmljb2RlIE5vcm1hbGl6YXRpb24gRm9ybXMsIHVzZSAwIGZvciB0aGlzIGFyZ3VtZW50LgorICAgICAqIEBkZXByZWNhdGVkIFRvIGJlIHJlbW92ZWQgYWZ0ZXIgMjAwMy1BdWctMzEuIFVzZSBOb3JtYWxpemVyKCBTdHJpbmcgc3RyLCBNb2RlIG1vZGUpLgorICAgICAqLworICAgIHB1YmxpYyBOb3JtYWxpemVyKFN0cmluZyBzdHIsIE1vZGUgbW9kZSwgaW50IG9wdCkgeworICAgICAgICB0aGlzKCBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2Uoc3RyKSwgbW9kZSApOworICAgICAgICB0aGlzLm9wdGlvbnM9b3B0OworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBuZXcgPHR0Pk5vcm1hbGl6ZXI8L3R0PiBvYmplY3QgZm9yIGl0ZXJhdGluZyBvdmVyIHRoZQorICAgICAqIG5vcm1hbGl6ZWQgZm9ybSBvZiB0aGUgZ2l2ZW4gdGV4dC4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gaXRlciAgVGhlIGlucHV0IHRleHQgdG8gYmUgbm9ybWFsaXplZC4gIFRoZSBub3JtYWxpemF0aW9uCisgICAgICogICAgICAgICAgICAgIHdpbGwgc3RhcnQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgc3RyaW5nLgorICAgICAqCisgICAgICogQHBhcmFtIG1vZGUgIFRoZSBub3JtYWxpemF0aW9uIG1vZGUuCisgICAgICoKKyAgICAgKi8KKyAgICBwdWJsaWMgTm9ybWFsaXplcihDaGFyYWN0ZXJJdGVyYXRvciBpdGVyLCBNb2RlIG1vZGUpIHsKKyAgICAgICAgdGhpcyggVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKGl0ZXIpLCBtb2RlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgbmV3IDx0dD5Ob3JtYWxpemVyPC90dD4gb2JqZWN0IGZvciBpdGVyYXRpbmcgb3ZlciB0aGUKKyAgICAgKiBub3JtYWxpemVkIGZvcm0gb2YgdGhlIGdpdmVuIHRleHQuCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGl0ZXIgIFRoZSBpbnB1dCB0ZXh0IHRvIGJlIG5vcm1hbGl6ZWQuICBUaGUgbm9ybWFsaXphdGlvbgorICAgICAqICAgICAgICAgICAgICB3aWxsIHN0YXJ0IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHN0cmluZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtb2RlICBUaGUgbm9ybWFsaXphdGlvbiBtb2RlLgorICAgICAqCisgICAgICogQHBhcmFtIG9wdCBBbnkgb3B0aW9uYWwgZmVhdHVyZXMgdG8gYmUgZW5hYmxlZC4KKyAgICAgKiAgICAgICAgICAgIEN1cnJlbnRseSB0aGUgb25seSBhdmFpbGFibGUgb3B0aW9uIGlzIHtAbGluayAjSUdOT1JFX0hBTkdVTH0uCisgICAgICogICAgICAgICAgICBJZiB5b3Ugd2FudCB0aGUgZGVmYXVsdCBiZWhhdmlvciBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUKKyAgICAgKiAgICAgICAgICAgIHN0YW5kYXJkIFVuaWNvZGUgTm9ybWFsaXphdGlvbiBGb3JtcywgdXNlIDAgZm9yIHRoaXMgYXJndW1lbnQuCisgICAgICogQGRlcHJlY2F0ZWQgVG8gYmUgcmVtb3ZlZCBhZnRlciAyMDAzLUF1Zy0zMS4gVXNlIE5vcm1hbGl6ZXIoQ2hhcmFjdGVySXRlcmF0b3IgaXRlciwgTW9kZSBtb2RlKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgTm9ybWFsaXplcihDaGFyYWN0ZXJJdGVyYXRvciBpdGVyLCBNb2RlIG1vZGUsIGludCBvcHQpIHsKKyAgICAgICAgdGhpcyggVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKGl0ZXIpLCBtb2RlKTsKKyAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgbmV3IDx0dD5Ob3JtYWxpemVyPC90dD4gb2JqZWN0IGZvciBpdGVyYXRpbmcgb3ZlciB0aGUKKyAgICAgKiBub3JtYWxpemVkIGZvcm0gb2YgdGhlIGdpdmVuIHRleHQuCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGl0ZXIgIFRoZSBpbnB1dCB0ZXh0IHRvIGJlIG5vcm1hbGl6ZWQuICBUaGUgbm9ybWFsaXphdGlvbgorICAgICAqICAgICAgICAgICAgICB3aWxsIHN0YXJ0IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHN0cmluZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtb2RlICBUaGUgbm9ybWFsaXphdGlvbiBtb2RlLgorICAgICAqLworICAgIC8vaW50ZXJuYWwgY29uc3RydWN0b3IgZm9yIG5vdworICAgIHB1YmxpYyBOb3JtYWxpemVyKFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyLCBNb2RlIG1vZGUpeworICAgICAgICB0aGlzLnRleHQgICAgID0gaXRlcjsKKyAgICAgICAgdGhpcy5tb2RlICAgICA9IG1vZGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2xvbmVzIHRoaXMgPHR0Pk5vcm1hbGl6ZXI8L3R0PiBvYmplY3QuICBBbGwgcHJvcGVydGllcyBvZiB0aGlzCisgICAgICogb2JqZWN0IGFyZSBkdXBsaWNhdGVkIGluIHRoZSBuZXcgb2JqZWN0LCBpbmNsdWRpbmcgdGhlIGNsb25pbmcgb2YgYW55CisgICAgICoge0BsaW5rIENoYXJhY3Rlckl0ZXJhdG9yfSB0aGF0IHdhcyBwYXNzZWQgaW4gdG8gdGhlIGNvbnN0cnVjdG9yCisgICAgICogb3IgdG8ge0BsaW5rICNzZXRUZXh0KENoYXJhY3Rlckl0ZXJhdG9yKSBzZXRUZXh0fS4KKyAgICAgKiBIb3dldmVyLCB0aGUgdGV4dCBzdG9yYWdlIHVuZGVybHlpbmcKKyAgICAgKiB0aGUgPHR0PkNoYXJhY3Rlckl0ZXJhdG9yPC90dD4gaXMgbm90IGR1cGxpY2F0ZWQgdW5sZXNzIHRoZQorICAgICAqIGl0ZXJhdG9yJ3MgPHR0PmNsb25lPC90dD4gbWV0aG9kIGRvZXMgc28uCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIE5vcm1hbGl6ZXIgY29weSA9IChOb3JtYWxpemVyKSBzdXBlci5jbG9uZSgpOworICAgICAgICAgICAgY29weS50ZXh0ID0gKFVDaGFyYWN0ZXJJdGVyYXRvcikgdGV4dC5jbG9uZSgpOworICAgICAgICAgICAgLy9jbG9uZSB0aGUgaW50ZXJuYWwgYnVmZmVyCisgICAgICAgICAgICBpZiAoYnVmZmVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBjb3B5LmJ1ZmZlciA9IG5ldyBjaGFyW2J1ZmZlci5sZW5ndGhdOworICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYnVmZmVyLDAsY29weS5idWZmZXIsMCxidWZmZXIubGVuZ3RoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBjb3B5OworICAgICAgICB9CisgICAgICAgIGNhdGNoIChDbG9uZU5vdFN1cHBvcnRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihlLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBTdGF0aWMgVXRpbGl0eSBtZXRob2RzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIENvbXBvc2UgYSBzdHJpbmcuCisgICAgICogVGhlIHN0cmluZyB3aWxsIGJlIGNvbXBvc2VkIHRvIGFjY29yZGluZyB0aGUgdGhlIHNwZWNpZmllZCBtb2RlLgorICAgICAqIEBwYXJhbSBzdHIgICAgICAgIFRoZSBzdHJpbmcgdG8gY29tcG9zZS4KKyAgICAgKiBAcGFyYW0gY29tcGF0ICAgICBJZiB0cnVlIHRoZSBzdHJpbmcgd2lsbCBiZSBjb21wb3NlZCBhY2NvZGluZyB0byAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgTkZLQyBydWxlcyBhbmQgaWYgZmFsc2Ugd2lsbCBiZSBjb21wb3NlZCBhY2NvcmRpbmcgdG8gCisgICAgICogICAgICAgICAgICAgICAgICAgIE5GQyBydWxlcy4KKyAgICAgKiBAcmV0dXJuIFN0cmluZyAgICBUaGUgY29tcG9zZWQgc3RyaW5nICAgCisgICAgICovICAgICAgICAgICAgCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgY29tcG9zZShTdHJpbmcgc3RyLCBib29sZWFuIGNvbXBhdCl7CisgICAgICAgIGNoYXJbXSBkZXN0ID0gbmV3IGNoYXJbc3RyLmxlbmd0aCgpKk1BWF9CVUZfU0laRV9DT01QT1NFXTsKKyAgICAgICAgaW50IGRlc3RTaXplPTA7CisgICAgICAgIGNoYXJbXSBzcmMgPSBzdHIudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgZm9yKDs7KXsKKyAgICAgICAgICAgIGRlc3RTaXplPU5vcm1hbGl6ZXJJbXBsLmNvbXBvc2Uoc3JjLDAsc3JjLmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdCwwLGRlc3QubGVuZ3RoLGNvbXBhdCk7CisgICAgICAgICAgICBpZihkZXN0U2l6ZTw9ZGVzdC5sZW5ndGgpeworCQkgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGRlc3QsMCxkZXN0U2l6ZSk7ICAKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGRlc3QgPSBuZXcgY2hhcltkZXN0U2l6ZV07CisgICAgICAgICAgICB9CisgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogIENvbXBvc2UgYSBzdHJpbmcuCisgICAgICogVGhlIHN0cmluZyB3aWxsIGJlIGNvbXBvc2VkIHRvIGFjY29yZGluZyB0aGUgdGhlIHNwZWNpZmllZCBtb2RlLgorICAgICAqIEBwYXJhbSBzdHIgICAgICAgIFRoZSBzdHJpbmcgdG8gY29tcG9zZS4KKyAgICAgKiBAcGFyYW0gY29tcGF0ICAgICBJZiB0cnVlIHRoZSBzdHJpbmcgd2lsbCBiZSBjb21wb3NlZCBhY2NvZGluZyB0byAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgTkZLQyBydWxlcyBhbmQgaWYgZmFsc2Ugd2lsbCBiZSBjb21wb3NlZCBhY2NvcmRpbmcgdG8gCisgICAgICogICAgICAgICAgICAgICAgICAgIE5GQyBydWxlcy4KKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgICBUaGUgb25seSByZWNvZ25pemVkIG9wdGlvbiBpcyBJR05PUkVfSEFOR1VMCisgICAgICogQHJldHVybiBTdHJpbmcgICAgVGhlIGNvbXBvc2VkIHN0cmluZyAgIAorICAgICAqIEBkZXByZWNhdGVkIFRvIGJlIHJlbW92ZWQgYWZ0ZXIgMjAwMy1BdWctMzEuIFVzZSBjb21wb3NlKFN0cmluZyBzdHIsIGJvb2xlYW4gY29tcGF0KS4KKyAgICAgKi8gICAgICAgICAgICAKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBjb21wb3NlKFN0cmluZyBzdHIsIGJvb2xlYW4gY29tcGF0LCBpbnQgb3B0aW9ucyl7CisgICAgICAgIHJldHVybiBjb21wb3NlKHN0cixjb21wYXQpOyAgICAgICAgICAgICAgICAgICAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb21wb3NlIGEgc3RyaW5nLgorICAgICAqIFRoZSBzdHJpbmcgd2lsbCBiZSBjb21wb3NlZCB0byBhY2NvcmRpbmcgdGhlIHRoZSBzcGVjaWZpZWQgbW9kZS4KKyAgICAgKiBAcGFyYW0gc291cmNlIFRoZSBjaGFyIGFycmF5IHRvIGNvbXBvc2UuCisgICAgICogQHBhcmFtIHRhcmdldCBBIGNoYXIgYnVmZmVyIHRvIHJlY2VpdmUgdGhlIG5vcm1hbGl6ZWQgdGV4dC4KKyAgICAgKiBAcGFyYW0gY29tcGF0IElmIHRydWUgdGhlIGNoYXIgYXJyYXkgd2lsbCBiZSBjb21wb3NlZCBhY2NvZGluZyB0byAKKyAgICAgKiAgICAgICAgICAgICAgICBORktDIHJ1bGVzIGFuZCBpZiBmYWxzZSB3aWxsIGJlIGNvbXBvc2VkIGFjY29yZGluZyB0byAKKyAgICAgKiAgICAgICAgICAgICAgICBORkMgcnVsZXMuCisgICAgICogQHJldHVybiBpbnQgICBUaGUgdG90YWwgYnVmZmVyIHNpemUgbmVlZGVkO2lmIGdyZWF0ZXIgdGhhbiBsZW5ndGggb2YgCisgICAgICogICAgICAgICAgICAgICAgcmVzdWx0LCB0aGUgb3V0cHV0IHdhcyB0cnVuY2F0ZWQuCisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGlmIHRhcmdldC5sZW5ndGggaXMgbGVzcyB0aGFuIHRoZSAKKyAgICAgKiAgICAgICAgICAgICByZXF1aXJlZCBsZW5ndGggIAorICAgICAqLyAgICAgICAgIAorICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvbXBvc2UoY2hhcltdIHNvdXJjZSxjaGFyW10gdGFyZ2V0LCBib29sZWFuIGNvbXBhdCl7CisgICAgICAgIGludCBsZW5ndGggPSBOb3JtYWxpemVySW1wbC5jb21wb3NlKHNvdXJjZSwwLHNvdXJjZS5sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldCwwLHRhcmdldC5sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhdCk7CisJCWlmKGxlbmd0aDw9dGFyZ2V0Lmxlbmd0aCl7CisJCSAgICByZXR1cm4gbGVuZ3RoOworCQl9ZWxzZXsKKwkJICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKEludGVnZXIudG9TdHJpbmcobGVuZ3RoKSk7CisJCX0gCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbXBvc2UgYSBzdHJpbmcuCisgICAgICogVGhlIHN0cmluZyB3aWxsIGJlIGNvbXBvc2VkIHRvIGFjY29yZGluZyB0aGUgdGhlIHNwZWNpZmllZCBtb2RlLgorICAgICAqIEBwYXJhbSBzcmMgICAgICAgVGhlIGNoYXIgYXJyYXkgdG8gY29tcG9zZS4KKyAgICAgKiBAcGFyYW0gc3JjU3RhcnQgIFN0YXJ0IGluZGV4IG9mIHRoZSBzb3VyY2UKKyAgICAgKiBAcGFyYW0gc3JjTGltaXQgIExpbWl0IGluZGV4IG9mIHRoZSBzb3VyY2UKKyAgICAgKiBAcGFyYW0gZGVzdCAgICAgIFRoZSBjaGFyIGJ1ZmZlciB0byBmaWxsIGluCisgICAgICogQHBhcmFtIGRlc3RTdGFydCBTdGFydCBpbmRleCBvZiB0aGUgZGVzdGluYXRpb24gYnVmZmVyICAKKyAgICAgKiBAcGFyYW0gZGVzdExpbWl0IEVuZCBpbmRleCBvZiB0aGUgZGVzdGluYXRpb24gYnVmZmVyCisgICAgICogQHBhcmFtIGNvbXBhdCBJZiB0cnVlIHRoZSBjaGFyIGFycmF5IHdpbGwgYmUgY29tcG9zZWQgYWNjb2RpbmcgdG8gCisgICAgICogICAgICAgICAgICAgICAgTkZLQyBydWxlcyBhbmQgaWYgZmFsc2Ugd2lsbCBiZSBjb21wb3NlZCBhY2NvcmRpbmcgdG8gCisgICAgICogICAgICAgICAgICAgICAgTkZDIHJ1bGVzLgorICAgICAqIEByZXR1cm4gaW50ICAgVGhlIHRvdGFsIGJ1ZmZlciBzaXplIG5lZWRlZDtpZiBncmVhdGVyIHRoYW4gbGVuZ3RoIG9mIAorICAgICAqICAgICAgICAgICAgICAgIHJlc3VsdCwgdGhlIG91dHB1dCB3YXMgdHJ1bmNhdGVkLgorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiB0YXJnZXQubGVuZ3RoIGlzIGxlc3MgdGhhbiB0aGUgCisgICAgICogICAgICAgICAgICAgcmVxdWlyZWQgbGVuZ3RoICAKKyAgICAgKi8gICAgICAgICAKKyAgICBwdWJsaWMgc3RhdGljIGludCBjb21wb3NlKGNoYXJbXSBzcmMsaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGVzdCxpbnQgZGVzdFN0YXJ0LCBpbnQgZGVzdExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBjb21wYXQpeworICAgICAgICBpbnQgbGVuZ3RoID0gTm9ybWFsaXplckltcGwuY29tcG9zZShzcmMsc3JjU3RhcnQsc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QsZGVzdFN0YXJ0LGRlc3RMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGF0KTsKKyAgICAgICAgaWYobGVuZ3RoPD0oZGVzdExpbWl0LWRlc3RTdGFydCkpeworICAgICAgICAgICAgcmV0dXJuIGxlbmd0aDsKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihJbnRlZ2VyLnRvU3RyaW5nKGxlbmd0aCkpOworICAgICAgICB9IAorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0JVRl9TSVpFX0NPTVBPU0UgPSAyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNQVhfQlVGX1NJWkVfREVDT01QT1NFID0gMzsKKyAgICAKKyAgICAvKioKKyAgICAgKiBEZWNvbXBvc2UgYSBzdHJpbmcuCisgICAgICogVGhlIHN0cmluZyB3aWxsIGJlIGRlY29tcG9zZWQgdG8gYWNjb3JkaW5nIHRoZSB0aGUgc3BlY2lmaWVkIG1vZGUuCisgICAgICogQHBhcmFtIHN0ciAgICAgICBUaGUgc3RyaW5nIHRvIGRlY29tcG9zZS4KKyAgICAgKiBAcGFyYW0gY29tcGF0ICAgIElmIHRydWUgdGhlIHN0cmluZyB3aWxsIGJlIGRlY29tcG9zZWQgYWNjb2RpbmcgdG8gTkZLRCBydWxlcworICAgICAqICAgICAgICAgICAgICAgICAgIGFuZCBpZiBmYWxzZSB3aWxsIGJlIGRlY29tcG9zZWQgYWNjb3JkaW5nIHRvIE5GRCBydWxlcy4KKyAgICAgKiBAcmV0dXJuIFN0cmluZyAgIFRoZSBkZWNvbXBvc2VkIHN0cmluZyAgIAorICAgICAqLyAgICAgICAgIAorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGRlY29tcG9zZShTdHJpbmcgc3RyLCBib29sZWFuIGNvbXBhdCl7CisgICAgICAgIGNoYXJbXSBkZXN0ID0gbmV3IGNoYXJbc3RyLmxlbmd0aCgpKk1BWF9CVUZfU0laRV9ERUNPTVBPU0VdOworICAgICAgICBpbnRbXSB0cmFpbENDID0gbmV3IGludFsxXTsKKyAgICAgICAgaW50IGRlc3RTaXplPTA7CisgICAgICAgIGZvcig7Oyl7CisgICAgICAgICAgICBkZXN0U2l6ZT1Ob3JtYWxpemVySW1wbC5kZWNvbXBvc2Uoc3RyLnRvQ2hhckFycmF5KCksMCxzdHIubGVuZ3RoKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdCwwLGRlc3QubGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhdCx0cmFpbENDKTsKKyAgICAgICAgICAgIGlmKGRlc3RTaXplPD1kZXN0Lmxlbmd0aCl7CisJCSAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoZGVzdCwwLGRlc3RTaXplKTsgCisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBkZXN0ID0gbmV3IGNoYXJbZGVzdFNpemVdOworICAgICAgICAgICAgfQorICAgICAgICB9IAorCSAgICAgICAgICAgICAgICAgICAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBEZWNvbXBvc2UgYSBzdHJpbmcuCisgICAgICogVGhlIHN0cmluZyB3aWxsIGJlIGRlY29tcG9zZWQgdG8gYWNjb3JkaW5nIHRoZSB0aGUgc3BlY2lmaWVkIG1vZGUuCisgICAgICogQHBhcmFtIHN0ciAgICAgVGhlIHN0cmluZyB0byBkZWNvbXBvc2UuCisgICAgICogQHBhcmFtIGNvbXBhdCAgSWYgdHJ1ZSB0aGUgc3RyaW5nIHdpbGwgYmUgZGVjb21wb3NlZCBhY2NvZGluZyB0byBORktEIHJ1bGVzCisgICAgICogICAgICAgICAgICAgICAgIGFuZCBpZiBmYWxzZSB3aWxsIGJlIGRlY29tcG9zZWQgYWNjb3JkaW5nIHRvIE5GRCBydWxlcy4KKyAgICAgKiBAcmV0dXJuIFN0cmluZyBUaGUgZGVjb21wb3NlZCBzdHJpbmcgCisgICAgICogQGRlcHJlY2F0ZWQgVG8gYmUgcmVtb3ZlZCBhZnRlciAyMDAzLUF1Zy0zMS4gVXNlIGRlY29tcG9zZShTdHJpbmcgc3RyLCBib29sZWFuIGNvbXBhdCkuCisgICAgICovICAgICAgICAgCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZGVjb21wb3NlKFN0cmluZyBzdHIsIGJvb2xlYW4gY29tcGF0LCBpbnQgb3B0aW9ucyl7CisgICAgICAgIHJldHVybiBkZWNvbXBvc2Uoc3RyLGNvbXBhdCk7ICAgICAgICAgICAgICAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogRGVjb21wb3NlIGEgc3RyaW5nLgorICAgICAqIFRoZSBzdHJpbmcgd2lsbCBiZSBkZWNvbXBvc2VkIHRvIGFjY29yZGluZyB0aGUgdGhlIHNwZWNpZmllZCBtb2RlLgorICAgICAqIEBwYXJhbSBzb3VyY2UgVGhlIGNoYXIgYXJyYXkgdG8gZGVjb21wb3NlLgorICAgICAqIEBwYXJhbSB0YXJnZXQgQSBjaGFyIGJ1ZmZlciB0byByZWNlaXZlIHRoZSBub3JtYWxpemVkIHRleHQuCisgICAgICogQHBhcmFtIGNvbXBhdCBJZiB0cnVlIHRoZSBjaGFyIGFycmF5IHdpbGwgYmUgZGVjb21wb3NlZCBhY2NvZGluZyB0byBORktEIAorICAgICAqICAgICAgICAgICAgICAgIHJ1bGVzIGFuZCBpZiBmYWxzZSB3aWxsIGJlIGRlY29tcG9zZWQgYWNjb3JkaW5nIHRvIAorICAgICAqICAgICAgICAgICAgICAgIE5GRCBydWxlcy4KKyAgICAgKiBAcmV0dXJuIGludCAgIFRoZSB0b3RhbCBidWZmZXIgc2l6ZSBuZWVkZWQ7aWYgZ3JlYXRlciB0aGFuIGxlbmd0aCBvZiAKKyAgICAgKiAgICAgICAgICAgICAgICByZXN1bHQsdGhlIG91dHB1dCB3YXMgdHJ1bmNhdGVkLgorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiB0aGUgdGFyZ2V0IGNhcGFjaXR5IGlzIGxlc3MgdGhhbgorICAgICAqICAgICAgICAgICAgIHRoZSByZXF1aXJlZCBsZW5ndGggICAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBkZWNvbXBvc2UoY2hhcltdIHNvdXJjZSxjaGFyW10gdGFyZ2V0LCBib29sZWFuIGNvbXBhdCl7CisgICAgICAgIGludFtdIHRyYWlsQ0MgPSBuZXcgaW50WzFdOworICAgICAgICBpbnQgbGVuZ3RoID0gTm9ybWFsaXplckltcGwuZGVjb21wb3NlKHNvdXJjZSwwLHNvdXJjZS5sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LDAsdGFyZ2V0Lmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wYXQsdHJhaWxDQyk7CisJCWlmKGxlbmd0aDw9dGFyZ2V0Lmxlbmd0aCl7CisJCSAgICByZXR1cm4gbGVuZ3RoOworCQl9ZWxzZXsKKwkJICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKEludGVnZXIudG9TdHJpbmcobGVuZ3RoKSk7CisJCX0gCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIERlY29tcG9zZSBhIHN0cmluZy4KKyAgICAgKiBUaGUgc3RyaW5nIHdpbGwgYmUgZGVjb21wb3NlZCB0byBhY2NvcmRpbmcgdGhlIHRoZSBzcGVjaWZpZWQgbW9kZS4KKyAgICAgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBjaGFyIGFycmF5IHRvIGNvbXBvc2UuCisgICAgICogQHBhcmFtIHNyY1N0YXJ0ICBTdGFydCBpbmRleCBvZiB0aGUgc291cmNlCisgICAgICogQHBhcmFtIHNyY0xpbWl0ICBMaW1pdCBpbmRleCBvZiB0aGUgc291cmNlCisgICAgICogQHBhcmFtIGRlc3QgICAgICBUaGUgY2hhciBidWZmZXIgdG8gZmlsbCBpbgorICAgICAqIEBwYXJhbSBkZXN0U3RhcnQgU3RhcnQgaW5kZXggb2YgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciAgCisgICAgICogQHBhcmFtIGRlc3RMaW1pdCBFbmQgaW5kZXggb2YgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlcgorICAgICAqIEBwYXJhbSBjb21wYXQgSWYgdHJ1ZSB0aGUgY2hhciBhcnJheSB3aWxsIGJlIGRlY29tcG9zZWQgYWNjb2RpbmcgdG8gTkZLRCAKKyAgICAgKiAgICAgICAgICAgICAgICBydWxlcyBhbmQgaWYgZmFsc2Ugd2lsbCBiZSBkZWNvbXBvc2VkIGFjY29yZGluZyB0byAKKyAgICAgKiAgICAgICAgICAgICAgICBORkQgcnVsZXMuCisgICAgICogQHJldHVybiBpbnQgICBUaGUgdG90YWwgYnVmZmVyIHNpemUgbmVlZGVkO2lmIGdyZWF0ZXIgdGhhbiBsZW5ndGggb2YgCisgICAgICogICAgICAgICAgICAgICAgcmVzdWx0LHRoZSBvdXRwdXQgd2FzIHRydW5jYXRlZC4KKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaWYgdGhlIHRhcmdldCBjYXBhY2l0eSBpcyBsZXNzIHRoYW4KKyAgICAgKiAgICAgICAgICAgICB0aGUgcmVxdWlyZWQgbGVuZ3RoICAgCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZGVjb21wb3NlKGNoYXJbXSBzcmMsaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBkZXN0LGludCBkZXN0U3RhcnQsIGludCBkZXN0TGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gY29tcGF0KXsKKyAgICAgICAgaW50W10gdHJhaWxDQyA9IG5ldyBpbnRbMV07CisgICAgICAgIGludCBsZW5ndGggPSBOb3JtYWxpemVySW1wbC5kZWNvbXBvc2Uoc3JjLHNyY1N0YXJ0LHNyY0xpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QsZGVzdFN0YXJ0LGRlc3RMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wYXQsdHJhaWxDQyk7CisgICAgICAgIGlmKGxlbmd0aDw9KGRlc3RMaW1pdC1kZXN0U3RhcnQpKXsKKyAgICAgICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgICAgIH1lbHNleworICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oSW50ZWdlci50b1N0cmluZyhsZW5ndGgpKTsKKyAgICAgICAgfSAKKyAgICB9CisgICAgICAgIAorICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBtYWtlRkNEKFN0cmluZyBzcmMpeworICAgICAgICBpbnQgc3JjTGVuID0gc3JjLmxlbmd0aCgpOworICAgICAgICBjaGFyW10gZGVzdCA9IG5ldyBjaGFyW01BWF9CVUZfU0laRV9ERUNPTVBPU0Uqc3JjTGVuXTsKKyAgICAgICAgaW50IGxlbmd0aCA9IDA7CisgICAgICAgIGZvcig7Oyl7CisgICAgICAgICAgICBsZW5ndGggPSBOb3JtYWxpemVySW1wbC5tYWtlRkNEKHNyYy50b0NoYXJBcnJheSgpLDAsc3JjTGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0LDAsZGVzdC5sZW5ndGgpOworICAgICAgICAgICAgaWYobGVuZ3RoIDw9IGRlc3QubGVuZ3RoKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhkZXN0LDAsbGVuZ3RoKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGRlc3QgPSBuZXcgY2hhcltsZW5ndGhdOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIE5vcm1hbGl6ZXMgYSA8dHQ+U3RyaW5nPC90dD4gdXNpbmcgdGhlIGdpdmVuIG5vcm1hbGl6YXRpb24gb3BlcmF0aW9uLgorICAgICAqIDxwPgorICAgICAqIFRoZSA8dHQ+b3B0aW9uczwvdHQ+IHBhcmFtZXRlciBzcGVjaWZpZXMgd2hpY2ggb3B0aW9uYWwKKyAgICAgKiA8dHQ+Tm9ybWFsaXplcjwvdHQ+IGZlYXR1cmVzIGFyZSB0byBiZSBlbmFibGVkIGZvciB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKiBDdXJyZW50bHkgdGhlIG9ubHkgYXZhaWxhYmxlIG9wdGlvbiBpcyB7QGxpbmsgI0lHTk9SRV9IQU5HVUx9LgorICAgICAqIElmIHlvdSB3YW50IHRoZSBkZWZhdWx0IGJlaGF2aW9yIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBzdGFuZGFyZAorICAgICAqIFVuaWNvZGUgTm9ybWFsaXphdGlvbiBGb3JtcywgdXNlIDAgZm9yIHRoaXMgYXJndW1lbnQuCisgICAgICogPHA+CisgICAgICogQHBhcmFtIHN0ciAgICAgICB0aGUgaW5wdXQgc3RyaW5nIHRvIGJlIG5vcm1hbGl6ZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYU1vZGUgICAgIHRoZSBub3JtYWxpemF0aW9uIG1vZGUKKyAgICAgKgorICAgICAqIEBwYXJhbSBvcHRpb25zICAgdGhlIG9wdGlvbmFsIGZlYXR1cmVzIHRvIGJlIGVuYWJsZWQuCisgICAgICogQGRlcHJlY2F0ZWQgICAgIFRvIGJlIHJlbW92ZWQgYWZ0ZXIgMjAwMy1BdWctMzEuIFVzZSBub3JtYWxpemUoU3RyaW5nIHN0ciwgTW9kZSBtb2RlKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBub3JtYWxpemUoU3RyaW5nIHN0ciwgTW9kZSBtb2RlLCBpbnQgb3B0aW9ucyl7CisgICAgICAgIHJldHVybiBub3JtYWxpemUoc3RyLG1vZGUpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBOb3JtYWxpemUgYSBzdHJpbmcuCisgICAgICogVGhlIHN0cmluZyB3aWxsIGJlIG5vcm1hbGl6ZWQgYWNjb3JkaW5nIHRoZSB0aGUgc3BlY2lmaWVkIG5vcm1hbGl6YXRpb24gbW9kZQorICAgICAqIGFuZCBvcHRpb25zLgorICAgICAqIEBwYXJhbSBzb3VyY2UgICAgIFRoZSBzdHJpbmcgdG8gbm9ybWFsaXplLgorICAgICAqIEBwYXJhbSBtb2RlICAgICAgIFRoZSBub3JtYWxpemF0aW9uIG1vZGU7IG9uZSBvZiBOb3JtYWxpemVyLk5PTkUsIAorICAgICAqICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GRCwgTm9ybWFsaXplci5ORkMsIE5vcm1hbGl6ZXIuTkZLQywgCisgICAgICogICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZLRCwgTm9ybWFsaXplci5ERUZBVUxUCisgICAgICogQHJldHVybiBTdHJpbmcgICAgVGhlIG5vcm1hbGl6ZWQgc3RyaW5nCisgICAgICogICAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBub3JtYWxpemUoIFN0cmluZyBzcmMsTW9kZSBtb2RlKXsKKyAgICAgICAgcmV0dXJuIG1vZGUubm9ybWFsaXplKHNyYyk7ICAgIAorICAgIH0KKyAgICAvKioKKyAgICAgKiBOb3JtYWxpemUgYSBzdHJpbmcuCisgICAgICogVGhlIHN0cmluZyB3aWxsIGJlIG5vcm1hbGl6ZWQgYWNjb3JkaW5nIHRoZSB0aGUgc3BlY2lmaWVkIG5vcm1hbGl6YXRpb24gbW9kZQorICAgICAqIGFuZCBvcHRpb25zLgorICAgICAqIEBwYXJhbSBzb3VyY2UgVGhlIGNoYXIgYXJyYXkgdG8gbm9ybWFsaXplLgorICAgICAqIEBwYXJhbSB0YXJnZXQgQSBjaGFyIGJ1ZmZlciB0byByZWNlaXZlIHRoZSBub3JtYWxpemVkIHRleHQuCisgICAgICogQHBhcmFtIG1vZGUgICBUaGUgbm9ybWFsaXphdGlvbiBtb2RlOyBvbmUgb2YgTm9ybWFsaXplci5OT05FLCAKKyAgICAgKiAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GRCwgTm9ybWFsaXplci5ORkMsIE5vcm1hbGl6ZXIuTkZLQywgCisgICAgICogICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORktELCBOb3JtYWxpemVyLkRFRkFVTFQKKyAgICAgKiBAcmV0dXJuIGludCAgIFRoZSB0b3RhbCBidWZmZXIgc2l6ZSBuZWVkZWQ7aWYgZ3JlYXRlciB0aGFuIGxlbmd0aCBvZiByZXN1bHQsCisgICAgICogICAgICAgICAgICAgICAgdGhlIG91dHB1dCB3YXMgdHJ1bmNhdGVkLgorICAgICAqIEBleGNlcHRpb24gICAgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiB0aGUgdGFyZ2V0IGNhcGFjaXR5IGlzIGxlc3MgdGhhbgorICAgICAqICAgICAgICAgICAgICAgIHRoZSByZXF1aXJlZCBsZW5ndGggICAgIAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IG5vcm1hbGl6ZShjaGFyW10gc291cmNlLGNoYXJbXSB0YXJnZXQsIE1vZGUgIG1vZGUpeworCQlpbnQgbGVuZ3RoID0gbm9ybWFsaXplKHNvdXJjZSwwLHNvdXJjZS5sZW5ndGgsdGFyZ2V0LDAsdGFyZ2V0Lmxlbmd0aCxtb2RlKTsKKwkJaWYobGVuZ3RoPD10YXJnZXQubGVuZ3RoKXsKKwkJICAgIHJldHVybiBsZW5ndGg7CisJCX1lbHNleworCQkgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oSW50ZWdlci50b1N0cmluZyhsZW5ndGgpKTsKKwkJfSAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogTm9ybWFsaXplIGEgc3RyaW5nLgorICAgICAqIFRoZSBzdHJpbmcgd2lsbCBiZSBub3JtYWxpemVkIGFjY29yZGluZyB0aGUgdGhlIHNwZWNpZmllZCBub3JtYWxpemF0aW9uIG1vZGUKKyAgICAgKiBhbmQgb3B0aW9ucy4KKyAgICAgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBjaGFyIGFycmF5IHRvIGNvbXBvc2UuCisgICAgICogQHBhcmFtIHNyY1N0YXJ0ICBTdGFydCBpbmRleCBvZiB0aGUgc291cmNlCisgICAgICogQHBhcmFtIHNyY0xpbWl0ICBMaW1pdCBpbmRleCBvZiB0aGUgc291cmNlCisgICAgICogQHBhcmFtIGRlc3QgICAgICBUaGUgY2hhciBidWZmZXIgdG8gZmlsbCBpbgorICAgICAqIEBwYXJhbSBkZXN0U3RhcnQgU3RhcnQgaW5kZXggb2YgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciAgCisgICAgICogQHBhcmFtIGRlc3RMaW1pdCBFbmQgaW5kZXggb2YgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlcgorICAgICAqIEBwYXJhbSBtb2RlICAgVGhlIG5vcm1hbGl6YXRpb24gbW9kZTsgb25lIG9mIE5vcm1hbGl6ZXIuTk9ORSwgCisgICAgICogICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GRCwgTm9ybWFsaXplci5ORkMsIE5vcm1hbGl6ZXIuTkZLQywgCisgICAgICogICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GS0QsIE5vcm1hbGl6ZXIuREVGQVVMVAorICAgICAqIEByZXR1cm4gaW50ICAgVGhlIHRvdGFsIGJ1ZmZlciBzaXplIG5lZWRlZDtpZiBncmVhdGVyIHRoYW4gbGVuZ3RoIG9mIHJlc3VsdCwKKyAgICAgKiAgICAgICAgICAgICAgIHRoZSBvdXRwdXQgd2FzIHRydW5jYXRlZC4KKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaWYgdGhlIHRhcmdldCBjYXBhY2l0eSBpcyBsZXNzIHRoYW4KKyAgICAgKiAgICAgICAgICAgICB0aGUgcmVxdWlyZWQgbGVuZ3RoICAgICAKKyAgICAgKi8gICAgICAgCisgICAgcHVibGljIHN0YXRpYyBpbnQgbm9ybWFsaXplKGNoYXJbXSBzcmMsaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGVzdCxpbnQgZGVzdFN0YXJ0LCBpbnQgZGVzdExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNb2RlICBtb2RlKXsKKyAgICAgICAgaW50IGxlbmd0aCA9bW9kZS5ub3JtYWxpemUoc3JjLHNyY1N0YXJ0LHNyY0xpbWl0LGRlc3QsZGVzdFN0YXJ0LGRlc3RMaW1pdCk7CisgICAgICAgCisgICAgICAgIGlmKGxlbmd0aDw9KGRlc3RMaW1pdC1kZXN0U3RhcnQpKXsKKyAgICAgICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgICAgIH1lbHNleworICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oSW50ZWdlci50b1N0cmluZyhsZW5ndGgpKTsKKyAgICAgICAgfSAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogTm9ybWFsaXplIGEgY29kZXBvaW50IGFjY29kaW5nIHRvIHRoZSBnaXZlbiBtb2RlCisgICAgICogQHBhcmFtIGNoYXIzMiAgICBUaGUgaW5wdXQgc3RyaW5nIHRvIGJlIG5vcm1hbGl6ZWQuCisgICAgICogQHBhcmFtIGFNb2RlICAgICBUaGUgbm9ybWFsaXphdGlvbiBtb2RlCisgICAgICogQHJldHVybiBTdHJpbmcgICBUaGUgbm9ybWFsaXplZCBzdHJpbmcKKyAgICAgKi8KKyAgICAvLyBUT0RPOiBhY3R1YWxseSBkbyB0aGUgb3B0aW1pemF0aW9uIHdoZW4gdGhlIGd1dHMgb2YgTm9ybWFsaXplciBhcmUgdXBncmFkZWQKKyAgICAvLyAtLWhhcyBqdXN0IGR1bWIgaW1wbGVtZW50YXRpb24gZm9yIG5vdworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIG5vcm1hbGl6ZShpbnQgY2hhcjMyLCBNb2RlIG1vZGUpIHsKKyAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZShVVEYxNi52YWx1ZU9mKGNoYXIzMiksIG1vZGUpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc291cmNlICAgICAgIHN0cmluZyBmb3IgZGV0ZXJtaW5pbmcgaWYgaXQgaXMgaW4gYSBub3JtYWxpemVkIGZvcm1hdAorICAgICAqIEBwYXJhbSBtb2RlICAgICAgICAgbm9ybWFsaXphdGlvbiBmb3JtYXQgKE5vcm1hbGl6ZXIuTkZDLE5vcm1hbGl6ZXIuTkZELCAgCisgICAgICogICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GS0MsTm9ybWFsaXplci5ORktEKQorICAgICAqIEByZXR1cm4gICAgICAgICAgICAgUmV0dXJuIGNvZGUgdG8gc3BlY2lmeSBpZiB0aGUgdGV4dCBpcyBub3JtYWxpemVkIG9yIG5vdCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIChOb3JtYWxpemVyLllFUywgTm9ybWFsaXplci5OTyBvciBOb3JtYWxpemVyLk1BWUJFKQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgUXVpY2tDaGVja1Jlc3VsdCBxdWlja0NoZWNrKCBTdHJpbmcgc291cmNlLCBNb2RlIG1vZGUpeworCSAgICByZXR1cm4gbW9kZS5xdWlja0NoZWNrKHNvdXJjZS50b0NoYXJBcnJheSgpLDAsc291cmNlLmxlbmd0aCgpLHRydWUpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc291cmNlIEFycmF5IG9mIGNoYXJhY3RlcnMgZm9yIGRldGVybWluaW5nIGlmIGl0IGlzIGluIGEgbm9ybWFsaXplZCBmb3JtYXQKKyAgICAgKiBAcGFyYW0gbW9kZSAgIG5vcm1hbGl6YXRpb24gZm9ybWF0IChOb3JtYWxpemVyLk5GQyxOb3JtYWxpemVyLk5GRCwgIAorICAgICAqICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZLQyxOb3JtYWxpemVyLk5GS0QpCisgICAgICogQHJldHVybiAgICAgICBSZXR1cm4gY29kZSB0byBzcGVjaWZ5IGlmIHRoZSB0ZXh0IGlzIG5vcm1hbGl6ZWQgb3Igbm90IAorICAgICAqICAgICAgICAgICAgICAgIChOb3JtYWxpemVyLllFUywgTm9ybWFsaXplci5OTyBvciBOb3JtYWxpemVyLk1BWUJFKQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgUXVpY2tDaGVja1Jlc3VsdCBxdWlja0NoZWNrKGNoYXJbXSBzb3VyY2UsIE1vZGUgbW9kZSl7CisgICAgICAgIHJldHVybiBtb2RlLnF1aWNrQ2hlY2soc291cmNlLDAsc291cmNlLmxlbmd0aCx0cnVlKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUGVyZm9ybWluZyBxdWljayBjaGVjayBvbiBhIHN0cmluZywgdG8gcXVpY2tseSBkZXRlcm1pbmUgaWYgdGhlIHN0cmluZyBpcyAKKyAgICAgKiBpbiBhIHBhcnRpY3VsYXIgbm9ybWFsaXphdGlvbiBmb3JtYXQuCisgICAgICogVGhyZWUgdHlwZXMgb2YgcmVzdWx0IGNhbiBiZSByZXR1cm5lZCBOb3JtYWxpemVyLllFUywgTm9ybWFsaXplci5OTyBvcgorICAgICAqIE5vcm1hbGl6ZXIuTUFZQkUuIFJlc3VsdCBOb3JtYWxpemVyLllFUyBpbmRpY2F0ZXMgdGhhdCB0aGUgYXJndW1lbnQKKyAgICAgKiBzdHJpbmcgaXMgaW4gdGhlIGRlc2lyZWQgbm9ybWFsaXplZCBmb3JtYXQsIE5vcm1hbGl6ZXIuTk8gZGV0ZXJtaW5lcyB0aGF0CisgICAgICogYXJndW1lbnQgc3RyaW5nIGlzIG5vdCBpbiB0aGUgZGVzaXJlZCBub3JtYWxpemVkIGZvcm1hdC4gQSBOb3JtYWxpemVyLk1BWUJFCisgICAgICogcmVzdWx0IGluZGljYXRlcyB0aGF0IGEgbW9yZSB0aG9yb3VnaCBjaGVjayBpcyByZXF1aXJlZCwgdGhlIHVzZXIgbWF5IGhhdmUgdG8KKyAgICAgKiBwdXQgdGhlIHN0cmluZyBpbiBpdHMgbm9ybWFsaXplZCBmb3JtIGFuZCBjb21wYXJlIHRoZSByZXN1bHRzLgorICAgICAqCisgICAgICogQHBhcmFtIHNvdXJjZSAgICAgICBzdHJpbmcgZm9yIGRldGVybWluaW5nIGlmIGl0IGlzIGluIGEgbm9ybWFsaXplZCBmb3JtYXQKKyAgICAgKiBAcGFyYW0gc3RhcnQgICAgICAgIHRoZSBzdGFydCBpbmRleCBvZiB0aGUgc291cmNlCisgICAgICogQHBhcmFtIGxpbWl0ICAgICAgICB0aGUgbGltaXQgaW5kZXggb2YgdGhlIHNvdXJjZSBpdCBpcyBlcXVhbCB0byB0aGUgbGVuZ3RoCisgICAgICogQHBhcmFtIG1vZGUgICAgICAgICBub3JtYWxpemF0aW9uIGZvcm1hdCAoTm9ybWFsaXplci5ORkMsTm9ybWFsaXplci5ORkQsICAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZLQyxOb3JtYWxpemVyLk5GS0QpCisgICAgICogQHJldHVybiAgICAgICAgICAgICBSZXR1cm4gY29kZSB0byBzcGVjaWZ5IGlmIHRoZSB0ZXh0IGlzIG5vcm1hbGl6ZWQgb3Igbm90IAorICAgICAqICAgICAgICAgICAgICAgICAgICAgKE5vcm1hbGl6ZXIuWUVTLCBOb3JtYWxpemVyLk5PIG9yCisgICAgICogICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk1BWUJFKQorICAgICAqLworCisgICAgcHVibGljIHN0YXRpYyBRdWlja0NoZWNrUmVzdWx0IHF1aWNrQ2hlY2soY2hhcltdIHNvdXJjZSxpbnQgc3RhcnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwgTW9kZSBtb2RlKXsgICAgCQorCSAgICByZXR1cm4gbW9kZS5xdWlja0NoZWNrKHNvdXJjZSxzdGFydCxsaW1pdCx0cnVlKTsKKyAgICB9CisgICAgCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gSW50ZXJuYWwgbWV0aG9kcyAoZm9yIG5vdykKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworCisgICAgLyoqCisJICogVGVzdCBpZiBhIHN0cmluZyBpcyBpbiBhIGdpdmVuIG5vcm1hbGl6YXRpb24gZm9ybS4KKwkgKiBUaGlzIGlzIHNlbWFudGljYWxseSBlcXVpdmFsZW50IHRvIHNvdXJjZS5lcXVhbHMobm9ybWFsaXplKHNvdXJjZSwgbW9kZSkpLgorCSAqCisJICogVW5saWtlIHF1aWNrQ2hlY2soKSwgdGhpcyBmdW5jdGlvbiByZXR1cm5zIGEgZGVmaW5pdGl2ZSByZXN1bHQsCisJICogbmV2ZXIgYSAibWF5YmUiLgorCSAqIEZvciBORkQsIE5GS0QsIGFuZCBGQ0QsIGJvdGggZnVuY3Rpb25zIHdvcmsgZXhhY3RseSB0aGUgc2FtZS4KKwkgKiBGb3IgTkZDIGFuZCBORktDIHdoZXJlIHF1aWNrQ2hlY2sgbWF5IHJldHVybiAibWF5YmUiLCB0aGlzIGZ1bmN0aW9uIHdpbGwKKwkgKiBwZXJmb3JtIGZ1cnRoZXIgdGVzdHMgdG8gYXJyaXZlIGF0IGEgdHJ1ZS9mYWxzZSByZXN1bHQuCisgICAgICogQHBhcmFtIHNyYyAgICAgICBUaGUgaW5wdXQgYXJyYXkgb2YgY2hhcmFjdGVycyB0byBiZSBjaGVja2VkIHRvIHNlZSBpZiAKKyAgICAgKiAgICAgICAgICAgICAgICAgICBpdCBpcyBub3JtYWxpemVkCisgICAgICogQHBhcmFtIHN0YXJ0ICAgICBUaGUgc3RyYXJ0IGluZGV4IGluIHRoZSBzb3VyY2UKKyAgICAgKiBAcGFyYW0gbGltaXQgICAgIFRoZSBsaW1pdCBpbmRleCBpbiB0aGUgc291cmNlCisgICAgICogQHBhcmFtIGFNb2RlICAgICB0aGUgbm9ybWFsaXphdGlvbiBtb2RlCisgICAgICogQHJldHVybiBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciB0aGUgc291cmNlIHN0cmluZyBpcyBpbiB0aGUKKyAgICAgKiAgICAgICAgICJtb2RlIiBub3JtYWxpemF0aW9uIGZvcm0KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNOb3JtYWxpemVkKGNoYXJbXSBzcmMsaW50IHN0YXJ0LGludCBsaW1pdCwgTW9kZSBtb2RlKSB7CisgICAgICAgIHJldHVybiAobW9kZS5xdWlja0NoZWNrKHNyYyxzdGFydCxsaW1pdCxmYWxzZSk9PVlFUyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIE1ldGhvZAorICAgICAqIEBwYXJhbSBzdHIgICAgICAgdGhlIGlucHV0IHN0cmluZyB0byBiZSBjaGVja2VkIHRvIHNlZSBpZiBpdCBpcyBub3JtYWxpemVkCisgICAgICoKKyAgICAgKiBAcGFyYW0gYU1vZGUgICAgIHRoZSBub3JtYWxpemF0aW9uIG1vZGUKKyAgICAgKiBAc2VlICNpc05vcm1hbGl6ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNOb3JtYWxpemVkKFN0cmluZyBzdHIsIE1vZGUgbW9kZSkgeworICAgICAgICByZXR1cm4gKG1vZGUucXVpY2tDaGVjayhzdHIudG9DaGFyQXJyYXkoKSwwLHN0ci5sZW5ndGgoKSxmYWxzZSk9PVlFUyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIE1ldGhvZAorICAgICAqIEBwYXJhbSBjaGFyMzIgICAgdGhlIGlucHV0IGNvZGUgcG9pbnQgdG8gYmUgY2hlY2tlZCB0byBzZWUgaWYgaXQgaXMgbm9ybWFsaXplZAorICAgICAqCisgICAgICogQHBhcmFtIGFNb2RlICAgICB0aGUgbm9ybWFsaXphdGlvbiBtb2RlCisgICAgICogQHNlZSAjaXNOb3JtYWxpemVkCisgICAgICovCisgICAgLy8gVE9ETzogYWN0dWFsbHkgZG8gdGhlIG9wdGltaXphdGlvbiB3aGVuIHRoZSBndXRzIG9mIE5vcm1hbGl6ZXIgYXJlIHVwZ3JhZGVkCisgICAgLy8gLS1oYXMganVzdCBkdW1iIGltcGxlbWVudGF0aW9uIGZvciBub3cKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNOb3JtYWxpemVkKGludCBjaGFyMzIsIE1vZGUgbW9kZSkgeworICAgICAgICByZXR1cm4gaXNOb3JtYWxpemVkKFVURjE2LnZhbHVlT2YoY2hhcjMyKSwgbW9kZSk7CisgICAgfQorICAgICAKKyAgICAvKioKKyAgICAgKiBDb21wYXJlIHR3byBzdHJpbmdzIGZvciBjYW5vbmljYWwgZXF1aXZhbGVuY2UuCisgICAgICogRnVydGhlciBvcHRpb25zIGluY2x1ZGUgY2FzZS1pbnNlbnNpdGl2ZSBjb21wYXJpc29uIGFuZAorICAgICAqIGNvZGUgcG9pbnQgb3JkZXIgKGFzIG9wcG9zZWQgdG8gY29kZSB1bml0IG9yZGVyKS4KKyAgICAgKgorICAgICAqIENhbm9uaWNhbCBlcXVpdmFsZW5jZSBiZXR3ZWVuIHR3byBzdHJpbmdzIGlzIGRlZmluZWQgYXMgdGhlaXIgbm9ybWFsaXplZAorICAgICAqIGZvcm1zIChORkQgb3IgTkZDKSBiZWluZyBpZGVudGljYWwuCisgICAgICogVGhpcyBmdW5jdGlvbiBjb21wYXJlcyBzdHJpbmdzIGluY3JlbWVudGFsbHkgaW5zdGVhZCBvZiBub3JtYWxpemluZworICAgICAqIChhbmQgb3B0aW9uYWxseSBjYXNlLWZvbGRpbmcpIGJvdGggc3RyaW5ncyBlbnRpcmVseSwKKyAgICAgKiBpbXByb3ZpbmcgcGVyZm9ybWFuY2Ugc2lnbmlmaWNhbnRseS4KKyAgICAgKgorICAgICAqIEJ1bGsgbm9ybWFsaXphdGlvbiBpcyBvbmx5IG5lY2Vzc2FyeSBpZiB0aGUgc3RyaW5ncyBkbyBub3QgZnVsZmlsbCB0aGUgRkNECisgICAgICogY29uZGl0aW9ucy4gT25seSBpbiB0aGlzIGNhc2UsIGFuZCBvbmx5IGlmIHRoZSBzdHJpbmdzIGFyZSByZWxhdGl2ZWx5IGxvbmcsCisgICAgICogaXMgbWVtb3J5IGFsbG9jYXRlZCB0ZW1wb3JhcmlseS4KKyAgICAgKiBGb3IgRkNEIHN0cmluZ3MgYW5kIHNob3J0IG5vbi1GQ0Qgc3RyaW5ncyB0aGVyZSBpcyBubyBtZW1vcnkgYWxsb2NhdGlvbi4KKyAgICAgKgorICAgICAqIFNlbWFudGljYWxseSwgdGhpcyBpcyBlcXVpdmFsZW50IHRvCisgICAgICogICBzdHJjbXBbQ29kZVBvaW50T3JkZXJdKGZvbGRDYXNlKE5GRChzMSkpLCBmb2xkQ2FzZShORkQoczIpKSkKKyAgICAgKiB3aGVyZSBjb2RlIHBvaW50IG9yZGVyIGFuZCBmb2xkQ2FzZSBhcmUgYWxsIG9wdGlvbmFsLgorICAgICAqCisgICAgICogQHBhcmFtIHMxICAgICAgICBGaXJzdCBzb3VyY2UgY2hhcmFjdGVyIGFycmF5LgorICAgICAqIEBwYXJhbSBzMVN0YXJ0ICAgc3RhcnQgaW5kZXggb2Ygc291cmNlCisgICAgICogQHBhcmFtIHMxTGltaXQgICBsaW1pdCBvZiB0aGUgc291cmNlCisgICAgICoKKyAgICAgKiBAcGFyYW0gczIgICAgICAgIFNlY29uZCBzb3VyY2UgY2hhcmFjdGVyIGFycmF5LgorICAgICAqIEBwYXJhbSBzMlN0YXJ0ICAgc3RhcnQgaW5kZXggb2YgdGhlIHNvdXJjZQorICAgICAqIEBwYXJhbSBzMkxpbWl0ICAgbGltaXQgb2YgdGhlIHNvdXJjZQorICAgICAqIAorICAgICAqIEBwYXJhbSBvcHRpb25zIEEgYml0IHNldCBvZiBvcHRpb25zOgorICAgICAqICAgLSBGT0xEX0NBU0VfREVGQVVMVCBvciAwIGlzIHVzZWQgZm9yIGRlZmF1bHQgb3B0aW9uczoKKyAgICAgKiAgICAgQ2FzZS1zZW5zaXRpdmUgY29tcGFyaXNvbiBpbiBjb2RlIHVuaXQgb3JkZXIsIGFuZCB0aGUgaW5wdXQgc3RyaW5ncworICAgICAqICAgICBhcmUgcXVpY2stY2hlY2tlZCBmb3IgRkNELgorICAgICAqCisgICAgICogICAtIElOUFVUX0lTX0ZDRAorICAgICAqICAgICBTZXQgaWYgdGhlIGNhbGxlciBrbm93cyB0aGF0IGJvdGggczEgYW5kIHMyIGZ1bGZpbGwgdGhlIEZDRCBjb25kaXRpb25zLgorICAgICAqICAgICBJZiBub3Qgc2V0LCB0aGUgZnVuY3Rpb24gd2lsbCBxdWlja0NoZWNrIGZvciBGQ0QKKyAgICAgKiAgICAgYW5kIG5vcm1hbGl6ZSBpZiBuZWNlc3NhcnkuCisgICAgICoKKyAgICAgKiAgIC0gQ09NUEFSRV9DT0RFX1BPSU5UX09SREVSCisgICAgICogICAgIFNldCB0byBjaG9vc2UgY29kZSBwb2ludCBvcmRlciBpbnN0ZWFkIG9mIGNvZGUgdW5pdCBvcmRlcgorICAgICAqCisgICAgICogICAtIENPTVBBUkVfSUdOT1JFX0NBU0UKKyAgICAgKiAgICAgU2V0IHRvIGNvbXBhcmUgc3RyaW5ncyBjYXNlLWluc2Vuc2l0aXZlbHkgdXNpbmcgY2FzZSBmb2xkaW5nLAorICAgICAqICAgICBpbnN0ZWFkIG9mIGNhc2Utc2Vuc2l0aXZlbHkuCisgICAgICogICAgIElmIHNldCwgdGhlbiB0aGUgZm9sbG93aW5nIGNhc2UgZm9sZGluZyBvcHRpb25zIGFyZSB1c2VkLgorICAgICAqCisgICAgICoKKyAgICAgKiBAcmV0dXJuIDwwIG9yIDAgb3IgPjAgYXMgdXN1YWwgZm9yIHN0cmluZyBjb21wYXJpc29ucworICAgICAqCisgICAgICogQHNlZSAjbm9ybWFsaXplCisgICAgICogQHNlZSAjRkNECisgICAgICovCisgICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvbXBhcmUoY2hhcltdIHMxLCBpbnQgczFTdGFydCwgaW50IHMxTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIHMyLCBpbnQgczJTdGFydCwgaW50IHMyTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9wdGlvbnMpeworICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLmNvbXBhcmUoczEsIHMxU3RhcnQsIHMxTGltaXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgczIsIHMyU3RhcnQsIHMyTGltaXQsIG9wdGlvbnMpOworICAgICB9IAorICAgICAgIAorICAgIC8qKgorICAgICAqIENvbXBhcmUgdHdvIHN0cmluZ3MgZm9yIGNhbm9uaWNhbCBlcXVpdmFsZW5jZS4KKyAgICAgKiBGdXJ0aGVyIG9wdGlvbnMgaW5jbHVkZSBjYXNlLWluc2Vuc2l0aXZlIGNvbXBhcmlzb24gYW5kCisgICAgICogY29kZSBwb2ludCBvcmRlciAoYXMgb3Bwb3NlZCB0byBjb2RlIHVuaXQgb3JkZXIpLgorICAgICAqIENvbnZlbmllbmNlIG1ldGhvZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzMSBGaXJzdCBzb3VyY2Ugc3RyaW5nLgorICAgICAqIEBwYXJhbSBzMiBTZWNvbmQgc291cmNlIHN0cmluZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBvcHRpb25zIEEgYml0IHNldCBvZiBvcHRpb25zOgorICAgICAqICAgLSBGT0xEX0NBU0VfREVGQVVMVCBvciAwIGlzIHVzZWQgZm9yIGRlZmF1bHQgb3B0aW9uczoKKyAgICAgKiAgICAgQ2FzZS1zZW5zaXRpdmUgY29tcGFyaXNvbiBpbiBjb2RlIHVuaXQgb3JkZXIsIGFuZCB0aGUgaW5wdXQgc3RyaW5ncworICAgICAqICAgICBhcmUgcXVpY2stY2hlY2tlZCBmb3IgRkNELgorICAgICAqCisgICAgICogICAtIElOUFVUX0lTX0ZDRAorICAgICAqICAgICBTZXQgaWYgdGhlIGNhbGxlciBrbm93cyB0aGF0IGJvdGggczEgYW5kIHMyIGZ1bGZpbGwgdGhlIEZDRCBjb25kaXRpb25zLgorICAgICAqICAgICBJZiBub3Qgc2V0LCB0aGUgZnVuY3Rpb24gd2lsbCBxdWlja0NoZWNrIGZvciBGQ0QKKyAgICAgKiAgICAgYW5kIG5vcm1hbGl6ZSBpZiBuZWNlc3NhcnkuCisgICAgICoKKyAgICAgKiAgIC0gQ09NUEFSRV9DT0RFX1BPSU5UX09SREVSCisgICAgICogICAgIFNldCB0byBjaG9vc2UgY29kZSBwb2ludCBvcmRlciBpbnN0ZWFkIG9mIGNvZGUgdW5pdCBvcmRlcgorICAgICAqCisgICAgICogICAtIENPTVBBUkVfSUdOT1JFX0NBU0UKKyAgICAgKiAgICAgU2V0IHRvIGNvbXBhcmUgc3RyaW5ncyBjYXNlLWluc2Vuc2l0aXZlbHkgdXNpbmcgY2FzZSBmb2xkaW5nLAorICAgICAqICAgICBpbnN0ZWFkIG9mIGNhc2Utc2Vuc2l0aXZlbHkuCisgICAgICogICAgIElmIHNldCwgdGhlbiB0aGUgZm9sbG93aW5nIGNhc2UgZm9sZGluZyBvcHRpb25zIGFyZSB1c2VkLgorICAgICAqCisgICAgICoKKyAgICAgKiBAcmV0dXJuIDwwIG9yIDAgb3IgPjAgYXMgdXN1YWwgZm9yIHN0cmluZyBjb21wYXJpc29ucworICAgICAqCisgICAgICogQHNlZSAjbm9ybWFsaXplCisgICAgICogQHNlZSAjRkNECisgICAgICovCisgICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvbXBhcmUoU3RyaW5nIHMxLCBTdHJpbmcgczIsIGludCBvcHRpb25zKXsKKyAgICAgICAgIAorICAgICAgICAgcmV0dXJuIGNvbXBhcmUoczEudG9DaGFyQXJyYXkoKSwwLHMxLmxlbmd0aCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgczIudG9DaGFyQXJyYXkoKSwwLHMyLmxlbmd0aCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyk7CisgICAgIH0KKyAgICAgCisgICAgLyoqCisgICAgICogQ29tcGFyZSB0d28gc3RyaW5ncyBmb3IgY2Fub25pY2FsIGVxdWl2YWxlbmNlLgorICAgICAqIEZ1cnRoZXIgb3B0aW9ucyBpbmNsdWRlIGNhc2UtaW5zZW5zaXRpdmUgY29tcGFyaXNvbiBhbmQKKyAgICAgKiBjb2RlIHBvaW50IG9yZGVyIChhcyBvcHBvc2VkIHRvIGNvZGUgdW5pdCBvcmRlcikuCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kLgorICAgICAqCisgICAgICogQHBhcmFtIHMxIEZpcnN0IHNvdXJjZSBzdHJpbmcuCisgICAgICogQHBhcmFtIHMyIFNlY29uZCBzb3VyY2Ugc3RyaW5nLgorICAgICAqCisgICAgICogQHBhcmFtIG9wdGlvbnMgQSBiaXQgc2V0IG9mIG9wdGlvbnM6CisgICAgICogICAtIEZPTERfQ0FTRV9ERUZBVUxUIG9yIDAgaXMgdXNlZCBmb3IgZGVmYXVsdCBvcHRpb25zOgorICAgICAqICAgICBDYXNlLXNlbnNpdGl2ZSBjb21wYXJpc29uIGluIGNvZGUgdW5pdCBvcmRlciwgYW5kIHRoZSBpbnB1dCBzdHJpbmdzCisgICAgICogICAgIGFyZSBxdWljay1jaGVja2VkIGZvciBGQ0QuCisgICAgICoKKyAgICAgKiAgIC0gSU5QVVRfSVNfRkNECisgICAgICogICAgIFNldCBpZiB0aGUgY2FsbGVyIGtub3dzIHRoYXQgYm90aCBzMSBhbmQgczIgZnVsZmlsbCB0aGUgRkNEIGNvbmRpdGlvbnMuCisgICAgICogICAgIElmIG5vdCBzZXQsIHRoZSBmdW5jdGlvbiB3aWxsIHF1aWNrQ2hlY2sgZm9yIEZDRAorICAgICAqICAgICBhbmQgbm9ybWFsaXplIGlmIG5lY2Vzc2FyeS4KKyAgICAgKgorICAgICAqICAgLSBDT01QQVJFX0NPREVfUE9JTlRfT1JERVIKKyAgICAgKiAgICAgU2V0IHRvIGNob29zZSBjb2RlIHBvaW50IG9yZGVyIGluc3RlYWQgb2YgY29kZSB1bml0IG9yZGVyCisgICAgICoKKyAgICAgKiAgIC0gQ09NUEFSRV9JR05PUkVfQ0FTRQorICAgICAqICAgICBTZXQgdG8gY29tcGFyZSBzdHJpbmdzIGNhc2UtaW5zZW5zaXRpdmVseSB1c2luZyBjYXNlIGZvbGRpbmcsCisgICAgICogICAgIGluc3RlYWQgb2YgY2FzZS1zZW5zaXRpdmVseS4KKyAgICAgKiAgICAgSWYgc2V0LCB0aGVuIHRoZSBmb2xsb3dpbmcgY2FzZSBmb2xkaW5nIG9wdGlvbnMgYXJlIHVzZWQuCisgICAgICoKKyAgICAgKgorICAgICAqIEByZXR1cm4gPDAgb3IgMCBvciA+MCBhcyB1c3VhbCBmb3Igc3RyaW5nIGNvbXBhcmlzb25zCisgICAgICoKKyAgICAgKiBAc2VlICNub3JtYWxpemUKKyAgICAgKiBAc2VlICNGQ0QKKyAgICAgKi8KKyAgICAgcHVibGljIHN0YXRpYyBpbnQgY29tcGFyZShjaGFyW10gczEsIGNoYXJbXSBzMiwgaW50IG9wdGlvbnMpeworICAgICAgICAgCisgICAgICAgICByZXR1cm4gY29tcGFyZShzMSwwLHMxLmxlbmd0aCxzMiwwLHMyLmxlbmd0aCxvcHRpb25zKTsKKyAgICAgfSAKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kIHRoYXQgY2FuIGhhdmUgZmFzdGVyIGltcGxlbWVudGF0aW9uCisgICAgICogYnkgbm90IGFsbG9jYXRpbmcgYnVmZmVycy4KKyAgICAgKiBAcGFyYW0gY2hhcjMyYSAgICB0aGUgZmlyc3QgY29kZSBwb2ludCB0byBiZSBjaGVja2VkIGFnYWluc3QgdGhlCisgICAgICogQHBhcmFtIGNoYXIzMmIgICAgdGhlIHNlY29uZCBjb2RlIHBvaW50CisgICAgICoKKyAgICAgKiBAcGFyYW0gYU1vZGUgICAgIHRoZSBub3JtYWxpemF0aW9uIG1vZGUKKyAgICAgKi8KKyAgICAvLyBUT0RPOiBhY3R1YWxseSBkbyB0aGUgb3B0aW1pemF0aW9uIHdoZW4gdGhlIGd1dHMgb2YgTm9ybWFsaXplciBhcmUgdXBncmFkZWQKKyAgICAvLyAtLWhhcyBqdXN0IGR1bWIgaW1wbGVtZW50YXRpb24gZm9yIG5vdworICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvbXBhcmUoaW50IGNoYXIzMmEsIGludCBjaGFyMzJiLGludCBvcHRpb25zKSB7CisgICAgICAgIHJldHVybiBjb21wYXJlKFVURjE2LnZhbHVlT2YoY2hhcjMyYSksIFVURjE2LnZhbHVlT2YoY2hhcjMyYiksIG9wdGlvbnMpOworICAgIH0KKyAgICAKKyAgICAKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgdGhhdCBjYW4gaGF2ZSBmYXN0ZXIgaW1wbGVtZW50YXRpb24KKyAgICAgKiBieSBub3QgYWxsb2NhdGluZyBidWZmZXJzLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBwYXJhbSBjaGFyMzJhICAgIHRoZSBmaXJzdCBjb2RlIHBvaW50IHRvIGJlIGNoZWNrZWQgYWdhaW5zdCB0aGUKKyAgICAgKiBAcGFyYW0gc3RyMiAgICB0aGUgc2Vjb25kIHN0cmluZworICAgICAqCisgICAgICogQHBhcmFtIGFNb2RlICAgICB0aGUgbm9ybWFsaXphdGlvbiBtb2RlCisgICAgICoKKyAgICAgKi8KKyAgICAvLyBUT0RPOiBhY3R1YWxseSBkbyB0aGUgb3B0aW1pemF0aW9uIHdoZW4gdGhlIGd1dHMgb2YgTm9ybWFsaXplciBhcmUgdXBncmFkZWQKKyAgICAvLyAtLWhhcyBqdXN0IGR1bWIgaW1wbGVtZW50YXRpb24gZm9yIG5vdworICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvbXBhcmUoaW50IGNoYXJBLCBTdHJpbmcgc3RyMiwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgcmV0dXJuIGNvbXBhcmUoVVRGMTYudmFsdWVPZihjaGFyQSksIHN0cjIsIG9wdGlvbnMpOworICAgIH0KKyAgIAorICAgIC8qKgorICAgICAqIENvbmNhdGVuYXRlIG5vcm1hbGl6ZWQgc3RyaW5ncywgbWFraW5nIHN1cmUgdGhhdCB0aGUgcmVzdWx0IGlzIG5vcm1hbGl6ZWQKKyAgICAgKiBhcyB3ZWxsLgorICAgICAqCisgICAgICogSWYgYm90aCB0aGUgbGVmdCBhbmQgdGhlIHJpZ2h0IHN0cmluZ3MgYXJlIGluCisgICAgICogdGhlIG5vcm1hbGl6YXRpb24gZm9ybSBhY2NvcmRpbmcgdG8gIm1vZGUiLAorICAgICAqIHRoZW4gdGhlIHJlc3VsdCB3aWxsIGJlCisgICAgICoKKyAgICAgKiBcY29kZQorICAgICAqICAgICBkZXN0PW5vcm1hbGl6ZShsZWZ0K3JpZ2h0LCBtb2RlKQorICAgICAqIFxlbmRjb2RlCisgICAgICoKKyAgICAgKiBXaXRoIHRoZSBpbnB1dCBzdHJpbmdzIGFscmVhZHkgYmVpbmcgbm9ybWFsaXplZCwKKyAgICAgKiB0aGlzIGZ1bmN0aW9uIHdpbGwgdXNlIG5leHQoKSBhbmQgcHJldmlvdXMoKQorICAgICAqIHRvIGZpbmQgdGhlIGFkamFjZW50IGVuZCBwaWVjZXMgb2YgdGhlIGlucHV0IHN0cmluZ3MuCisgICAgICogT25seSB0aGUgY29uY2F0ZW5hdGlvbiBvZiB0aGVzZSBlbmQgcGllY2VzIHdpbGwgYmUgbm9ybWFsaXplZCBhbmQKKyAgICAgKiB0aGVuIGNvbmNhdGVuYXRlZCB3aXRoIHRoZSByZW1haW5pbmcgcGFydHMgb2YgdGhlIGlucHV0IHN0cmluZ3MuCisgICAgICoKKyAgICAgKiBJdCBpcyBhbGxvd2VkIHRvIGhhdmUgZGVzdD09bGVmdCB0byBhdm9pZCBjb3B5aW5nIHRoZSBlbnRpcmUgbGVmdCBzdHJpbmcuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbGVmdCBMZWZ0IHNvdXJjZSBhcnJheSwgbWF5IGJlIHNhbWUgYXMgZGVzdC4KKyAgICAgKiBAcGFyYW0gbGVmdFN0YXJ0IHN0YXJ0IGluZGV4IG9mIHRoZSBsZWZ0IGFycmF5LgorICAgICAqIEBwYXJhbSBsZWZ0TGltaXQgZW5kIGluZGV4IG9mIHRoZSBsZWZ0IGFycmF5ICg9PWxlbmd0aCkKKyAgICAgKiBAcGFyYW0gcmlnaHQgUmlnaHQgc291cmNlIGFycmF5LgorICAgICAqIEBwYXJhbSByaWdodFN0YXJ0IHN0YXJ0IGluZGV4IG9mIHRoZSByaWdodCBhcnJheS4KKyAgICAgKiBAcGFyYW0gbGVmdExpbWl0IGVuZCBpbmRleCBvZiB0aGUgcmlnaHQgYXJyYXkgKD09bGVuZ3RoKQorICAgICAqIEBwYXJhbSBkZXN0IFRoZSBvdXRwdXQgYnVmZmVyOyBjYW4gYmUgbnVsbCBpZiBkZXN0U3RhcnQ9PWRlc3RMaW1pdD09MCAKKyAgICAgKiAgICAgICAgICAgICAgZm9yIHB1cmUgcHJlZmxpZ2h0aW5nLgorICAgICAqIEBwYXJhbSBkZXN0U3RhcnQgc3RhcnQgaW5kZXggb2YgdGhlIGRlc3RpbmF0aW9uIGFycmF5CisgICAgICogQHBhcmFtIG1vZGUgVGhlIG5vcm1hbGl6YXRpb24gbW9kZS4KKyAgICAgKiBAcmV0dXJuIExlbmd0aCBvZiBvdXRwdXQgKG51bWJlciBvZiBjaGFycykgd2hlbiBzdWNjZXNzZnVsIG9yIAorICAgICAqICAgICAgICAgIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24KKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gd2hvc2UgbWVzc2FnZSBoYXMgdGhlIHN0cmluZyAKKyAgICAgKiAgICAgICAgICAgICByZXByZXNlbnRhdGlvbiBvZiBkZXN0aW5hdGlvbiBjYXBhY2l0eSByZXF1aXJlZC4gCisgICAgICogQHNlZSAjbm9ybWFsaXplCisgICAgICogQHNlZSAjbmV4dAorICAgICAqIEBzZWUgI3ByZXZpb3VzCisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGlmIHRhcmdldCBjYXBhY2l0eSBpcyBsZXNzIHRoYW4gdGhlCisgICAgICogICAgICAgICAgICAgcmVxdWlyZWQgbGVuZ3RoCisgICAgICovCisgICAgIC8qIENvbmNhdGVuYXRpb24gb2Ygbm9ybWFsaXplZCBzdHJpbmdzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGludCBjb25jYXRlbmF0ZShjaGFyW10gbGVmdCwgIGludCBsZWZ0U3RhcnQsICBpbnQgbGVmdExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSByaWdodCwgaW50IHJpZ2h0U3RhcnQsIGludCByaWdodExpbWl0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGVzdCwgIGludCBkZXN0U3RhcnQsICBpbnQgZGVzdExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTW9kZSBtb2RlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGNoYXJbXSBidWZmZXI9bmV3IGNoYXJbMTAwXTsKKyAgICAgICAgaW50IGJ1ZmZlckxlbmd0aDsKKyAgICAKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXI7CisgICAgICAgIAorICAgICAgICBpbnQgbGVmdEJvdW5kYXJ5LCByaWdodEJvdW5kYXJ5LCBkZXN0TGVuZ3RoOworICAgIAorICAgICAgICBpZihkZXN0ID09IG51bGwpeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgCisgICAgICAgIC8qIGNoZWNrIGZvciBvdmVybGFwcGluZyByaWdodCBhbmQgZGVzdGluYXRpb24gKi8KKyAgICAgICAgaWYgKHJpZ2h0ID09IGRlc3QgJiYgcmlnaHRTdGFydCA8IGRlc3RMaW1pdCAmJiBkZXN0U3RhcnQgPCByaWdodExpbWl0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJvdmVybGFwcGluZyByaWdodCBhbmQgZHN0IHJhbmdlcyIpOworICAgICAgICB9CisgICAgCisgICAgICAgIC8qIGFsbG93IGxlZnQ9PWRlc3QgKi8KKyAgICAKKyAgICAKKyAgICAgICAgLyoKKyAgICAgICAgICogSW5wdXQ6IGxlZnRbMC4ubGVmdExlbmd0aFsgKyByaWdodFswLi5yaWdodExlbmd0aFsKKyAgICAgICAgICoKKyAgICAgICAgICogRmluZCBub3JtYWxpemF0aW9uLXNhZmUgYm91bmRhcmllcyBsZWZ0Qm91bmRhcnkgYW5kIHJpZ2h0Qm91bmRhcnkKKyAgICAgICAgICogYW5kIGNvcHkgdGhlIGVuZCBwYXJ0cyB0b2dldGhlcjoKKyAgICAgICAgICogYnVmZmVyPWxlZnRbbGVmdEJvdW5kYXJ5Li5sZWZ0TGVuZ3RoWyArIHJpZ2h0WzAuLnJpZ2h0Qm91bmRhcnlbCisgICAgICAgICAqCisgICAgICAgICAqIGRlc3Q9bGVmdFswLi5sZWZ0Qm91bmRhcnlbICsKKyAgICAgICAgICogICAgICBub3JtYWxpemUoYnVmZmVyKSArCisgICAgICAgICAqICAgICAgcmlnaHRbcmlnaHRCb3VuZGFyeS4ucmlnaHRMZW5ndGhbCisgICAgICAgICAqLworICAgIAorICAgICAgICAvKgorICAgICAgICAgKiBmaW5kIGEgbm9ybWFsaXphdGlvbiBib3VuZGFyeSBhdCB0aGUgZW5kIG9mIHRoZSBsZWZ0IHN0cmluZworICAgICAgICAgKiBhbmQgY29weSB0aGUgZW5kIHBhcnQgaW50byB0aGUgYnVmZmVyCisgICAgICAgICAqLworCisgICAgICAgIGl0ZXIgPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2UobGVmdCwgbGVmdFN0YXJ0LCBsZWZ0TGltaXQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGl0ZXIuc2V0SW5kZXgoaXRlci5nZXRMZW5ndGgoKSk7IC8qIGVuZCBvZiBsZWZ0IHN0cmluZyAqLworICAgIAorICAgICAgICBidWZmZXJMZW5ndGg9cHJldmlvdXMoaXRlciwgYnVmZmVyLDAsYnVmZmVyLmxlbmd0aCxtb2RlLGZhbHNlLG51bGwpOworICAgICAgICAKKyAgICAgICAgbGVmdEJvdW5kYXJ5PWl0ZXIuZ2V0SW5kZXgoKTsKKyAgICAgICAgCisgICAgICAgIGlmKGJ1ZmZlckxlbmd0aD5idWZmZXIubGVuZ3RoKSB7CisgICAgICAgICAgICBjaGFyW10gbmV3QnVmID0gbmV3IGNoYXJbYnVmZmVyLmxlbmd0aCoyXTsKKyAgICAgICAgICAgIGJ1ZmZlciA9IG5ld0J1ZjsKKyAgICAgICAgICAgIG5ld0J1ZiA9IG51bGw7IC8vIG51bGwgdGhlIHJlZmVyZW5jZSBmb3IgR0MKKyAgICAgICAgICAgIC8qIGp1c3QgY29weSBmcm9tIHRoZSBsZWZ0IHN0cmluZzogd2Uga25vdyB0aGUgYm91bmRhcnkgYWxyZWFkeSAqLworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShsZWZ0LGxlZnRCb3VuZGFyeSxidWZmZXIsMCxidWZmZXJMZW5ndGgpOworICAgICAgICB9CisgICAgCisgICAgICAgIC8qCisgICAgICAgICAqIGZpbmQgYSBub3JtYWxpemF0aW9uIGJvdW5kYXJ5IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHJpZ2h0IHN0cmluZworICAgICAgICAgKiBhbmQgY29uY2F0ZW5hdGUgdGhlIGJlZ2lubmluZyBwYXJ0IHRvIHRoZSBidWZmZXIKKyAgICAgICAgICovCisKKyAgICAgICAgaXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShyaWdodCwgcmlnaHRTdGFydCwgcmlnaHRMaW1pdCk7CisgICAgICAgIAorICAgICAgICByaWdodEJvdW5kYXJ5PW5leHQoaXRlcixidWZmZXIsYnVmZmVyTGVuZ3RoLCBidWZmZXIubGVuZ3RoLWJ1ZmZlckxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGUsIGZhbHNlLG51bGwpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGlmKGJ1ZmZlckxlbmd0aD5idWZmZXIubGVuZ3RoKSB7CisgICAgICAgICAgICBjaGFyW10gbmV3QnVmID0gbmV3IGNoYXJbYnVmZmVyLmxlbmd0aCoyXTsKKyAgICAgICAgICAgIGJ1ZmZlciA9IG5ld0J1ZjsKKyAgICAgICAgICAgIG5ld0J1ZiA9IG51bGw7IC8vIG51bGwgdGhlIHJlZmVyZW5jZSBmb3IgR0MKKyAgICAgICAgICAgIC8qIGp1c3QgY29weSBmcm9tIHRoZSByaWdodCBzdHJpbmc6IHdlIGtub3cgdGhlIGJvdW5kYXJ5IGFscmVhZHkgKi8KKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkocmlnaHQscmlnaHRCb3VuZGFyeSxidWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlckxlbmd0aCxyaWdodEJvdW5kYXJ5KTsKKyAgICAgICAgfQorCisgICAgICAgIGJ1ZmZlckxlbmd0aCs9cmlnaHRCb3VuZGFyeTsKKyAgICAKKyAgICAgICAgLyogY29weSBsZWZ0WzAuLmxlZnRCb3VuZGFyeVsgdG8gZGVzdCAqLworICAgICAgICBpZihsZWZ0IT1kZXN0ICYmIGxlZnRCb3VuZGFyeT4wICYmIChkZXN0TGltaXQpPjApIHsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobGVmdCwwLGRlc3QsMCwgTWF0aC5taW4obGVmdEJvdW5kYXJ5LGRlc3RMaW1pdCkpOyAKKyAgICAgICAgfQorICAgICAgICBkZXN0TGVuZ3RoPWxlZnRCb3VuZGFyeTsKKyAgICAKKyAgICAgICAgLyogY29uY2F0ZW5hdGUgdGhlIG5vcm1hbGl6YXRpb24gb2YgdGhlIGJ1ZmZlciB0byBkZXN0ICovCisgICAgICAgIGlmKGRlc3RMaW1pdD5kZXN0TGVuZ3RoKSB7CisgICAgICAgICAgICBkZXN0TGVuZ3RoKz1Ob3JtYWxpemVyLm5vcm1hbGl6ZShidWZmZXIsMCxidWZmZXJMZW5ndGgsZGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdExlbmd0aCxkZXN0TGltaXQsbW9kZSk7CisgICAgICAgICAgICAKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRlc3RMZW5ndGgrPU5vcm1hbGl6ZXIubm9ybWFsaXplKGJ1ZmZlciwgMCwgYnVmZmVyTGVuZ3RoLG51bGwsMCwwLG1vZGUpOworICAgICAgICB9CisgICAgCisgICAgICAgIC8qIGNvbmNhdGVuYXRlIHJpZ2h0W3JpZ2h0Qm91bmRhcnkuLnJpZ2h0TGVuZ3RoWyB0byBkZXN0ICovCisgICAgICAgIHJpZ2h0U3RhcnQrPXJpZ2h0Qm91bmRhcnk7CisgICAgICAgIGludCByaWdodExlbmd0aD0ocmlnaHRMaW1pdC1yaWdodFN0YXJ0KTsKKyAgICAgICAgaWYocmlnaHRMZW5ndGg+MCAmJiBkZXN0TGltaXQ+ZGVzdExlbmd0aCkgeworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShyaWdodCxyaWdodFN0YXJ0LGRlc3QsZGVzdExlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5taW4ocmlnaHRMZW5ndGgsZGVzdExlbmd0aCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICB9CisgICAgICAgIGRlc3RMZW5ndGgrPXJpZ2h0TGVuZ3RoOworICAgICAgICAKKyAgICAgICAgaWYoZGVzdExlbmd0aDw9KGRlc3RMaW1pdC1kZXN0U3RhcnQpKXsKKyAgICAgICAgICAgIHJldHVybiBkZXN0TGVuZ3RoOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKEludGVnZXIudG9TdHJpbmcoZGVzdExlbmd0aCkpOworICAgICAgICB9ICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29uY2F0ZW5hdGUgbm9ybWFsaXplZCBzdHJpbmdzLCBtYWtpbmcgc3VyZSB0aGF0IHRoZSByZXN1bHQgaXMgbm9ybWFsaXplZAorICAgICAqIGFzIHdlbGwuCisgICAgICoKKyAgICAgKiBJZiBib3RoIHRoZSBsZWZ0IGFuZCB0aGUgcmlnaHQgc3RyaW5ncyBhcmUgaW4KKyAgICAgKiB0aGUgbm9ybWFsaXphdGlvbiBmb3JtIGFjY29yZGluZyB0byAibW9kZSIsCisgICAgICogdGhlbiB0aGUgcmVzdWx0IHdpbGwgYmUKKyAgICAgKgorICAgICAqIDxjb2RlPgorICAgICAqICAgICBkZXN0PW5vcm1hbGl6ZShsZWZ0K3JpZ2h0LCBtb2RlKQorICAgICAqIDwvY29kZT4KKyAgICAgKgorICAgICAqIEZvciBkZXRhaWxzIHNlZSBjb25jYXRlbmF0ZSAKKyAgICAgKgorICAgICAqIEBwYXJhbSBsZWZ0IExlZnQgc291cmNlIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gcmlnaHQgUmlnaHQgc291cmNlIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gbW9kZSBUaGUgbm9ybWFsaXphdGlvbiBtb2RlLgorICAgICAqIEByZXR1cm4gcmVzdWx0CisgICAgICoKKyAgICAgKiBAc2VlICNjb25jYXRlbmF0ZQorICAgICAqIEBzZWUgI25vcm1hbGl6ZQorICAgICAqIEBzZWUgI25leHQKKyAgICAgKiBAc2VlICNwcmV2aW91cworICAgICAqIEBzZWUgI2NvbmNhdGVuYXRlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgY29uY2F0ZW5hdGUoY2hhcltdIGxlZnQsIGNoYXJbXSByaWdodCxNb2RlIG1vZGUpeworICAgICAgICBjaGFyW10gcmVzdWx0ID0gbmV3IGNoYXJbKGxlZnQubGVuZ3RoK3JpZ2h0Lmxlbmd0aCkqIE1BWF9CVUZfU0laRV9ERUNPTVBPU0VdOworICAgICAgICBmb3IoOzspeworICAgICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgbGVuZ3RoID0gY29uY2F0ZW5hdGUobGVmdCwgIDAsIGxlZnQubGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0LCAwLCByaWdodC5sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LDAsIHJlc3VsdC5sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSk7CisgICAgICAgICAgICBpZihsZW5ndGg8PXJlc3VsdC5sZW5ndGgpeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKHJlc3VsdCwwLGxlbmd0aCk7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBuZXcgY2hhcltsZW5ndGhdOworICAgICAgICAgICAgfQorICAgICAgICB9ICAgICAgICAgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbmNhdGVuYXRlIG5vcm1hbGl6ZWQgc3RyaW5ncywgbWFraW5nIHN1cmUgdGhhdCB0aGUgcmVzdWx0IGlzIG5vcm1hbGl6ZWQKKyAgICAgKiBhcyB3ZWxsLgorICAgICAqCisgICAgICogSWYgYm90aCB0aGUgbGVmdCBhbmQgdGhlIHJpZ2h0IHN0cmluZ3MgYXJlIGluCisgICAgICogdGhlIG5vcm1hbGl6YXRpb24gZm9ybSBhY2NvcmRpbmcgdG8gIm1vZGUiLAorICAgICAqIHRoZW4gdGhlIHJlc3VsdCB3aWxsIGJlCisgICAgICoKKyAgICAgKiA8Y29kZT4KKyAgICAgKiAgICAgZGVzdD1ub3JtYWxpemUobGVmdCtyaWdodCwgbW9kZSkKKyAgICAgKiA8L2NvZGU+CisgICAgICoKKyAgICAgKiBGb3IgZGV0YWlscyBzZWUgY29uY2F0ZW5hdGUKKyAgICAgKgorICAgICAqIEBwYXJhbSBsZWZ0IExlZnQgc291cmNlIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gcmlnaHQgUmlnaHQgc291cmNlIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gbW9kZSBUaGUgbm9ybWFsaXphdGlvbiBtb2RlLgorICAgICAqIEByZXR1cm4gcmVzdWx0CisgICAgICoKKyAgICAgKiBAc2VlICNjb25jYXRlbmF0ZQorICAgICAqIEBzZWUgI25vcm1hbGl6ZQorICAgICAqIEBzZWUgI25leHQKKyAgICAgKiBAc2VlICNwcmV2aW91cworICAgICAqIEBzZWUgI2NvbmNhdGVuYXRlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgY29uY2F0ZW5hdGUoU3RyaW5nIGxlZnQsIFN0cmluZyByaWdodCxNb2RlIG1vZGUpeworICAgICAgICBjaGFyW10gcmVzdWx0ID0gbmV3IGNoYXJbKGxlZnQubGVuZ3RoKCkrcmlnaHQubGVuZ3RoKCkpKiBNQVhfQlVGX1NJWkVfREVDT01QT1NFXTsKKyAgICAgICAgZm9yKDs7KXsKKyAgICAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IGxlbmd0aCA9IGNvbmNhdGVuYXRlKGxlZnQudG9DaGFyQXJyYXkoKSwgMCwgbGVmdC5sZW5ndGgoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICByaWdodC50b0NoYXJBcnJheSgpLDAsIHJpZ2h0Lmxlbmd0aCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCwgICAgICAgICAgICAgMCwgcmVzdWx0Lmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlKTsKKyAgICAgICAgICAgIGlmKGxlbmd0aDw9cmVzdWx0Lmxlbmd0aCl7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcocmVzdWx0LDAsbGVuZ3RoKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBjaGFyW2xlbmd0aF07CisgICAgICAgICAgICB9CisgICAgICAgIH0gICAgICAgICAgICAKKyAgICB9CisgICAgCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gSXRlcmF0aW9uIEFQSQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCQorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY3VycmVudCBjaGFyYWN0ZXIgaW4gdGhlIG5vcm1hbGl6ZWQgdGV4dC0+CisgICAgICogQHJldHVybiBUaGUgY29kZXBvaW50IGFzIGFuIGludAorICAgICAqLworICAgIHB1YmxpYyBpbnQgY3VycmVudCgpIHsKKwkJaWYoYnVmZmVyUG9zPGJ1ZmZlckxpbWl0IHx8IG5leHROb3JtYWxpemUoKSkgeworCQkgICAgcmV0dXJuIGdldENvZGVQb2ludEF0KGJ1ZmZlclBvcyk7CisJCX0gZWxzZSB7CisJCSAgICByZXR1cm4gRE9ORTsKKwkJfQorICAgIH0KKwkKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG5leHQgY2hhcmFjdGVyIGluIHRoZSBub3JtYWxpemVkIHRleHQgYW5kIGFkdmFuY2UKKyAgICAgKiB0aGUgaXRlcmF0aW9uIHBvc2l0aW9uIGJ5IG9uZS4gIElmIHRoZSBlbmQKKyAgICAgKiBvZiB0aGUgdGV4dCBoYXMgYWxyZWFkeSBiZWVuIHJlYWNoZWQsIHtAbGluayAjRE9ORX0gaXMgcmV0dXJuZWQuCisgICAgICogQHJldHVybiBUaGUgY29kZXBvaW50IGFzIGFuIGludAorICAgICAqLworICAgIHB1YmxpYyBpbnQgbmV4dCgpIHsKKwkJaWYoYnVmZmVyUG9zPGJ1ZmZlckxpbWl0IHx8ICBuZXh0Tm9ybWFsaXplKCkpIHsKKwkJICAgIGludCBjPWdldENvZGVQb2ludEF0KGJ1ZmZlclBvcyk7CisJCSAgICBidWZmZXJQb3MrPShjPjB4RkZGRikgPyAyIDogMTsKKwkJICAgIHJldHVybiBjOworCQl9IGVsc2UgeworCQkgICAgcmV0dXJuIERPTkU7CisJCX0KKyAgICB9CisJCisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgcHJldmlvdXMgY2hhcmFjdGVyIGluIHRoZSBub3JtYWxpemVkIHRleHQgYW5kIGRlY3JlbWVudAorICAgICAqIHRoZSBpdGVyYXRpb24gcG9zaXRpb24gYnkgb25lLiAgSWYgdGhlIGJlZ2lubmluZworICAgICAqIG9mIHRoZSB0ZXh0IGhhcyBhbHJlYWR5IGJlZW4gcmVhY2hlZCwge0BsaW5rICNET05FfSBpcyByZXR1cm5lZC4KKyAgICAgKiBAcmV0dXJuIFRoZSBjb2RlcG9pbnQgYXMgYW4gaW50CisgICAgICovCisgICAgcHVibGljIGludCBwcmV2aW91cygpIHsKKwkJaWYoYnVmZmVyUG9zPjAgfHwgcHJldmlvdXNOb3JtYWxpemUoKSkgeworCQkgICAgaW50IGM9Z2V0Q29kZVBvaW50QXQoYnVmZmVyUG9zLTEpOworCQkgICAgYnVmZmVyUG9zLT0oYz4weEZGRkYpID8gMiA6IDE7CisJCSAgICByZXR1cm4gYzsKKwkJfSBlbHNlIHsKKwkJICAgIHJldHVybiBET05FOworCQl9CisgICAgfQorCQorICAgLyoqCisgICAgKiBSZXNldCB0aGUgaW5kZXggdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dC4KKyAgICAqIFRoaXMgaXMgZXF1aXZhbGVudCB0byBzZXRJbmRleE9ubHkoc3RhcnRJbmRleCkpLgorICAgICovCisgICAgcHVibGljIHZvaWQgcmVzZXQoKSB7CisgICAgICAgIHRleHQuc2V0SW5kZXgoMCk7CisJCWN1cnJlbnRJbmRleD1uZXh0SW5kZXg9MDsKKwkJY2xlYXJCdWZmZXIoKTsKKyAgICB9CisgICAgCisgICAvKioKKyAgICAqIFNldCB0aGUgaXRlcmF0aW9uIHBvc2l0aW9uIGluIHRoZSBpbnB1dCB0ZXh0IHRoYXQgaXMgYmVpbmcgbm9ybWFsaXplZCwKKyAgICAqIHdpdGhvdXQgYW55IGltbWVkaWF0ZSBub3JtYWxpemF0aW9uLgorICAgICogQWZ0ZXIgc2V0SW5kZXhPbmx5KCksIGdldEluZGV4KCkgd2lsbCByZXR1cm4gdGhlIHNhbWUgaW5kZXggdGhhdCBpcworICAgICogc3BlY2lmaWVkIGhlcmUuCisgICAgKgorICAgICogQHBhcmFtIGluZGV4IHRoZSBkZXNpcmVkIGluZGV4IGluIHRoZSBpbnB1dCB0ZXh0LgorICAgICovCisgICAgcHVibGljIHZvaWQgc2V0SW5kZXhPbmx5KGludCBpbmRleCkgeworICAgICAgICB0ZXh0LnNldEluZGV4KGluZGV4KTsKKwkJY3VycmVudEluZGV4PW5leHRJbmRleD1pbmRleDsgLy8gdmFsaWRhdGVzIGluZGV4CisJCWNsZWFyQnVmZmVyKCk7CisgICAgfQorCQorICAgIC8qKgorICAgICAqIFNldCB0aGUgaXRlcmF0aW9uIHBvc2l0aW9uIGluIHRoZSBpbnB1dCB0ZXh0IHRoYXQgaXMgYmVpbmcgbm9ybWFsaXplZAorICAgICAqIGFuZCByZXR1cm4gdGhlIGZpcnN0IG5vcm1hbGl6ZWQgY2hhcmFjdGVyIGF0IHRoYXQgcG9zaXRpb24uCisgICAgICogPHA+CisgICAgICogPGI+Tm90ZTo8L2I+IFRoaXMgbWV0aG9kIHNldHMgdGhlIHBvc2l0aW9uIGluIHRoZSA8ZW0+aW5wdXQ8L2VtPiB0ZXh0LAorICAgICAqIHdoaWxlIHtAbGluayAjbmV4dH0gYW5kIHtAbGluayAjcHJldmlvdXN9IGl0ZXJhdGUgdGhyb3VnaCBjaGFyYWN0ZXJzCisgICAgICogaW4gdGhlIG5vcm1hbGl6ZWQgPGVtPm91dHB1dDwvZW0+LiAgVGhpcyBtZWFucyB0aGF0IHRoZXJlIGlzIG5vdAorICAgICAqIG5lY2Vzc2FyaWx5IGEgb25lLXRvLW9uZSBjb3JyZXNwb25kZW5jZSBiZXR3ZWVuIGNoYXJhY3RlcnMgcmV0dXJuZWQKKyAgICAgKiBieSA8dHQ+bmV4dDwvdHQ+IGFuZCA8dHQ+cHJldmlvdXM8L3R0PiBhbmQgdGhlIGluZGljZXMgcGFzc2VkIHRvIGFuZAorICAgICAqIHJldHVybmVkIGZyb20gPHR0PnNldEluZGV4PC90dD4gYW5kIHtAbGluayAjZ2V0SW5kZXh9LgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBpbmRleCB0aGUgZGVzaXJlZCBpbmRleCBpbiB0aGUgaW5wdXQgdGV4dC0+CisgICAgICoKKyAgICAgKiBAcmV0dXJuICAgICAgdGhlIGZpcnN0IG5vcm1hbGl6ZWQgY2hhcmFjdGVyIHRoYXQgaXMgdGhlIHJlc3VsdCBvZiBpdGVyYXRpbmcKKyAgICAgKiAgICAgICAgICAgICAgZm9yd2FyZCBzdGFydGluZyBhdCB0aGUgZ2l2ZW4gaW5kZXguCisgICAgICoKKyAgICAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgZ2l2ZW4gaW5kZXggaXMgbGVzcyB0aGFuCisgICAgICogICAgICAgICAge0BsaW5rICNnZXRCZWdpbkluZGV4fSBvciBncmVhdGVyIHRoYW4ge0BsaW5rICNnZXRFbmRJbmRleH0uCisgICAgICogQHJldHVybiBUaGUgY29kZXBvaW50IGFzIGFuIGludAorICAgICAqLworICAgIHB1YmxpYyBpbnQgc2V0SW5kZXgoaW50IGluZGV4KSB7CisJCXNldEluZGV4T25seShpbmRleCk7CisJCXJldHVybiBjdXJyZW50KCk7CisgICAgfQorIAorICAgIC8qKgorICAgICAqIFJldHJpZXZlIHRoZSBpbmRleCBvZiB0aGUgc3RhcnQgb2YgdGhlIGlucHV0IHRleHQuICBUaGlzIGlzIHRoZSBiZWdpbiBpbmRleAorICAgICAqIG9mIHRoZSA8dHQ+Q2hhcmFjdGVySXRlcmF0b3I8L3R0PiBvciB0aGUgc3RhcnQgKGkuZS4gMCkgb2YgdGhlIDx0dD5TdHJpbmc8L3R0PgorICAgICAqIG92ZXIgd2hpY2ggdGhpcyA8dHQ+Tm9ybWFsaXplcjwvdHQ+IGlzIGl0ZXJhdGluZworICAgICAqIEBkZXByZWNhdGVkIFRvIGJlIHJlbW92ZWQgYWZ0ZXIgMjAwMy1hdWctMzEuIFVzZSBzdGFydEluZGV4KCkgaW5zdGVhZC4KKyAgICAgKiBAcmV0dXJuIFRoZSBjb2RlcG9pbnQgYXMgYW4gaW50CisgICAgICogQHNlZSAjc3RhcnRJbmRleAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0QmVnaW5JbmRleCgpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0cmlldmUgdGhlIGluZGV4IG9mIHRoZSBlbmQgb2YgdGhlIGlucHV0IHRleHQuICBUaGlzIGlzIHRoZSBlbmQgaW5kZXgKKyAgICAgKiBvZiB0aGUgPHR0PkNoYXJhY3Rlckl0ZXJhdG9yPC90dD4gb3IgdGhlIGxlbmd0aCBvZiB0aGUgPHR0PlN0cmluZzwvdHQ+CisgICAgICogb3ZlciB3aGljaCB0aGlzIDx0dD5Ob3JtYWxpemVyPC90dD4gaXMgaXRlcmF0aW5nCisgICAgICogQGRlcHJlY2F0ZWQgVG8gYmUgcmVtb3ZlZCBhZnRlciAyMDAzLWF1Zy0zMS4gVXNlIGVuZEluZGV4KCkgaW5zdGVhZC4KKyAgICAgKiBAcmV0dXJuIFRoZSBjb2RlcG9pbnQgYXMgYW4gaW50CisgICAgICogQHNlZSAjZW5kSW5kZXgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEVuZEluZGV4KCkgeworICAgICAgICByZXR1cm4gdGV4dC5nZXRMZW5ndGgoKS0xOworICAgIH0KKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGZpcnN0IGNoYXJhY3RlciBpbiB0aGUgbm9ybWFsaXplZCB0ZXh0LT4gIFRoaXMgcmVzZXRzCisgICAgICogdGhlIDx0dD5Ob3JtYWxpemVyJ3M8L3R0PiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LT4KKyAgICAgKiBAcmV0dXJuIFRoZSBjb2RlcG9pbnQgYXMgYW4gaW50CisgICAgICovCisgICAgcHVibGljIGludCBmaXJzdCgpIHsKKwkJcmVzZXQoKTsKKwkJcmV0dXJuIG5leHQoKTsKKyAgICB9CisJCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsYXN0IGNoYXJhY3RlciBpbiB0aGUgbm9ybWFsaXplZCB0ZXh0LT4gIFRoaXMgcmVzZXRzCisgICAgICogdGhlIDx0dD5Ob3JtYWxpemVyJ3M8L3R0PiBwb3NpdGlvbiB0byBiZSBqdXN0IGJlZm9yZSB0aGUKKyAgICAgKiB0aGUgaW5wdXQgdGV4dCBjb3JyZXNwb25kaW5nIHRvIHRoYXQgbm9ybWFsaXplZCBjaGFyYWN0ZXIuCisgICAgICogQHJldHVybiBUaGUgY29kZXBvaW50IGFzIGFuIGludAorICAgICAqLworICAgIHB1YmxpYyBpbnQgbGFzdCgpIHsKKyAgICAgICAgdGV4dC5zZXRUb0xpbWl0KCk7CisJCWN1cnJlbnRJbmRleD1uZXh0SW5kZXg9dGV4dC5nZXRJbmRleCgpOworCQljbGVhckJ1ZmZlcigpOworCQlyZXR1cm4gcHJldmlvdXMoKTsKKyAgICB9CisJCisgICAgLyoqCisgICAgICogUmV0cmlldmUgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIGluIHRoZSBpbnB1dCB0ZXh0IHRoYXQgaXMKKyAgICAgKiBiZWluZyBub3JtYWxpemVkLiAgVGhpcyBtZXRob2QgaXMgdXNlZnVsIGluIGFwcGxpY2F0aW9ucyBzdWNoIGFzCisgICAgICogc2VhcmNoaW5nLCB3aGVyZSB5b3UgbmVlZCB0byBiZSBhYmxlIHRvIGRldGVybWluZSB0aGUgcG9zaXRpb24gaW4KKyAgICAgKiB0aGUgaW5wdXQgdGV4dCB0aGF0IGNvcnJlc3BvbmRzIHRvIGEgZ2l2ZW4gbm9ybWFsaXplZCBvdXRwdXQgY2hhcmFjdGVyLgorICAgICAqIDxwPgorICAgICAqIDxiPk5vdGU6PC9iPiBUaGlzIG1ldGhvZCBzZXRzIHRoZSBwb3NpdGlvbiBpbiB0aGUgPGVtPmlucHV0PC9lbT4sIHdoaWxlCisgICAgICoge0BsaW5rICNuZXh0fSBhbmQge0BsaW5rICNwcmV2aW91c30gaXRlcmF0ZSB0aHJvdWdoIGNoYXJhY3RlcnMgaW4gdGhlCisgICAgICogPGVtPm91dHB1dDwvZW0+LiAgVGhpcyBtZWFucyB0aGF0IHRoZXJlIGlzIG5vdCBuZWNlc3NhcmlseSBhIG9uZS10by1vbmUKKyAgICAgKiBjb3JyZXNwb25kZW5jZSBiZXR3ZWVuIGNoYXJhY3RlcnMgcmV0dXJuZWQgYnkgPHR0Pm5leHQ8L3R0PiBhbmQKKyAgICAgKiA8dHQ+cHJldmlvdXM8L3R0PiBhbmQgdGhlIGluZGljZXMgcGFzc2VkIHRvIGFuZCByZXR1cm5lZCBmcm9tCisgICAgICogPHR0PnNldEluZGV4PC90dD4gYW5kIHtAbGluayAjZ2V0SW5kZXh9LgorICAgICAqQHJldHVybiBUaGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEluZGV4KCl7CisJCWlmKGJ1ZmZlclBvczxidWZmZXJMaW1pdCkgeworCQkgICAgcmV0dXJuIGN1cnJlbnRJbmRleDsKKwkJfSBlbHNlIHsKKwkJICAgIHJldHVybiBuZXh0SW5kZXg7CisJCX0KKyAgICB9CisJCisgICAgLyoqCisgICAgICogUmV0cmlldmUgdGhlIGluZGV4IG9mIHRoZSBzdGFydCBvZiB0aGUgaW5wdXQgdGV4dC0+ICBUaGlzIGlzIHRoZSBiZWdpbiBpbmRleAorICAgICAqIG9mIHRoZSA8dHQ+Q2hhcmFjdGVySXRlcmF0b3I8L3R0PiBvciB0aGUgc3RhcnQgKGkuZS4gMCkgb2YgdGhlIDx0dD5TdHJpbmc8L3R0PgorICAgICAqIG92ZXIgd2hpY2ggdGhpcyA8dHQ+Tm9ybWFsaXplcjwvdHQ+IGlzIGl0ZXJhdGluZworICAgICAqIEByZXR1cm4gVGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uCisgICAgICovCisgICAgcHVibGljIGludCBzdGFydEluZGV4KCl7CisJCXJldHVybiAwOworICAgIH0KKwkKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSB0aGUgaW5kZXggb2YgdGhlIGVuZCBvZiB0aGUgaW5wdXQgdGV4dC0+ICBUaGlzIGlzIHRoZSBlbmQgaW5kZXgKKyAgICAgKiBvZiB0aGUgPHR0PkNoYXJhY3Rlckl0ZXJhdG9yPC90dD4gb3IgdGhlIGxlbmd0aCBvZiB0aGUgPHR0PlN0cmluZzwvdHQ+CisgICAgICogb3ZlciB3aGljaCB0aGlzIDx0dD5Ob3JtYWxpemVyPC90dD4gaXMgaXRlcmF0aW5nCisgICAgICogQHJldHVybiBUaGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGVuZEluZGV4KCl7CisJCXJldHVybiB0ZXh0LmdldExlbmd0aCgpOworICAgIH0KKyAgICAKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBQcm9wZXJ0eSBhY2Nlc3MgbWV0aG9kcworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCS8qKgorICAgICAqIFNldCB0aGUgbm9ybWFsaXphdGlvbiBtb2RlIGZvciB0aGlzIG9iamVjdC4KKyAgICAgKiA8cD4KKyAgICAgKiA8Yj5Ob3RlOjwvYj5JZiB0aGUgbm9ybWFsaXphdGlvbiBtb2RlIGlzIGNoYW5nZWQgd2hpbGUgaXRlcmF0aW5nCisgICAgICogb3ZlciBhIHN0cmluZywgY2FsbHMgdG8ge0BsaW5rICNuZXh0fSBhbmQge0BsaW5rICNwcmV2aW91c30gbWF5CisgICAgICogcmV0dXJuIHByZXZpb3VzbHkgYnVmZmVycyBjaGFyYWN0ZXJzIGluIHRoZSBvbGQgbm9ybWFsaXphdGlvbiBtb2RlCisgICAgICogdW50aWwgdGhlIGl0ZXJhdGlvbiBpcyBhYmxlIHRvIHJlLXN5bmMgYXQgdGhlIG5leHQgYmFzZSBjaGFyYWN0ZXIuCisgICAgICogSXQgaXMgc2FmZXN0IHRvIGNhbGwge0BsaW5rICNzZXRUZXh0IHNldFRleHQoKX0sIHtAbGluayAjZmlyc3R9LAorICAgICAqIHtAbGluayAjbGFzdH0sIGV0Yy4gYWZ0ZXIgY2FsbGluZyA8dHQ+c2V0TW9kZTwvdHQ+LgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBuZXdNb2RlIHRoZSBuZXcgbW9kZSBmb3IgdGhpcyA8dHQ+Tm9ybWFsaXplcjwvdHQ+LgorICAgICAqIFRoZSBzdXBwb3J0ZWQgbW9kZXMgYXJlOgorICAgICAqIDx1bD4KKyAgICAgKiAgPGxpPntAbGluayAjQ09NUE9TRX0gICAgICAgIC0gVW5pY29kZSBjYW5vbmljYWwgZGVjb21wb3NpdGlpb24KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2xsb3dlZCBieSBjYW5vbmljYWwgY29tcG9zaXRpb24uCisgICAgICogIDxsaT57QGxpbmsgI0NPTVBPU0VfQ09NUEFUfSAtIFVuaWNvZGUgY29tcGF0aWJpbGl0eSBkZWNvbXBvc2l0aWlvbgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGx3ZWQgYnkgY2Fub25pY2FsIGNvbXBvc2l0aW9uLgorICAgICAqICA8bGk+e0BsaW5rICNERUNPTVB9ICAgICAgICAgLSBVbmljb2RlIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9uCisgICAgICogIDxsaT57QGxpbmsgI0RFQ09NUF9DT01QQVR9ICAtIFVuaWNvZGUgY29tcGF0aWJpbGl0eSBkZWNvbXBvc2l0aW9uLgorICAgICAqICA8bGk+e0BsaW5rICNOT19PUH0gICAgICAgICAgLSBEbyBub3RoaW5nIGJ1dCByZXR1cm4gY2hhcmFjdGVycworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gdGhlIHVuZGVybHlpbmcgaW5wdXQgdGV4dC4KKyAgICAgKiA8L3VsPgorICAgICAqCisgICAgICogQHNlZSAjZ2V0TW9kZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1vZGUoTW9kZSBuZXdNb2RlKXsKKwkJbW9kZSA9IG5ld01vZGU7CisgICAgfQorCS8qKgorICAgICAqIFJldHVybiB0aGUgYmFzaWMgb3BlcmF0aW9uIHBlcmZvcm1lZCBieSB0aGlzIDx0dD5Ob3JtYWxpemVyPC90dD4KKyAgICAgKgorICAgICAqIEBzZWUgI3NldE1vZGUKKyAgICAgKi8KKyAgICBwdWJsaWMgTW9kZSBnZXRNb2RlKCkgeworCQlyZXR1cm4gbW9kZTsKKyAgICB9CisJLyoqCisgICAgICogU2V0IG9wdGlvbnMgdGhhdCBhZmZlY3QgdGhpcyA8dHQ+Tm9ybWFsaXplcjwvdHQ+J3Mgb3BlcmF0aW9uLgorICAgICAqIE9wdGlvbnMgZG8gbm90IGNoYW5nZSB0aGUgYmFzaWMgY29tcG9zaXRpb24gb3IgZGVjb21wb3NpdGlvbiBvcGVyYXRpb24KKyAgICAgKiB0aGF0IGlzIGJlaW5nIHBlcmZvcm1lZCAsIGJ1dCB0aGV5IGNvbnRyb2wgd2hldGhlcgorICAgICAqIGNlcnRhaW4gb3B0aW9uYWwgcG9ydGlvbnMgb2YgdGhlIG9wZXJhdGlvbiBhcmUgZG9uZS4KKyAgICAgKiBDdXJyZW50bHkgdGhlIG9ubHkgYXZhaWxhYmxlIG9wdGlvbiBpczoKKyAgICAgKiA8cD4KKyAgICAgKiA8dWw+CisgICAgICogICA8bGk+e0BsaW5rICNJR05PUkVfSEFOR1VMfSAtIERvIG5vdCBkZWNvbXBvc2UgSGFuZ3VsIHN5bGxhYmxlcyBpbnRvIHRoZSBKYW1vIGFscGhhYmV0CisgICAgICogICAgICAgICAgYW5kIHZpY2UtdmVyc2EuICBUaGlzIG9wdGlvbiBpcyBvZmYgYnkgZGVmYXVsdCAoPGk+aS5lLjwvaT4gSGFuZ3VsIHByb2Nlc3NpbmcKKyAgICAgKiAgICAgICAgICBpcyBlbmFibGVkKSBzaW5jZSB0aGUgVW5pY29kZSBzdGFuZGFyZCBzcGVjaWZpZXMgdGhhdCBIYW5ndWwgdG8gSmFtbworICAgICAqICAgICAgICAgIGlzIGEgY2Fub25pY2FsIGRlY29tcG9zaXRpb24uICBGb3IgYW55IG9mIHRoZSBzdGFuZGFyZCBVbmljb2RlIE5vcm1hbGl6YXRpb24KKyAgICAgKiAgICAgICAgICBGb3JtcywgeW91IHNob3VsZCBsZWF2ZSB0aGlzIG9wdGlvbiBvZmYuCisgICAgICogPC91bD4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gICBvcHRpb24gIHRoZSBvcHRpb24gd2hvc2UgdmFsdWUgaXMgdG8gYmUgc2V0LgorICAgICAqIEBwYXJhbSAgIHZhbHVlICAgdGhlIG5ldyBzZXR0aW5nIGZvciB0aGUgb3B0aW9uLiAgVXNlIDx0dD50cnVlPC90dD4gdG8KKyAgICAgKiAgICAgICAgICAgICAgICAgIHR1cm4gdGhlIG9wdGlvbiBvbiBhbmQgPHR0PmZhbHNlPC90dD4gdG8gdHVybiBpdCBvZmYuCisgICAgICoKKyAgICAgKiBAc2VlICNnZXRPcHRpb24KKyAgICAgKiBAZGVwcmVjYXRlZCBUbyBiZSByZW1vdmVkIGFmdGVyIDIwMDMtQXVnLTMxLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE9wdGlvbihpbnQgb3B0aW9uLGJvb2xlYW4gdmFsdWUpIHsKKwkJaWYgKHZhbHVlKSB7CisJCSAgICBvcHRpb25zIHw9IG9wdGlvbjsKKwkJfSBlbHNlIHsKKwkJICAgIG9wdGlvbnMgJj0gKH5vcHRpb24pOworCQl9CisgICAgfQorCQorICAgIC8qKgorICAgICAqIERldGVybWluZSB3aGV0aGVyIGFuIG9wdGlvbiBpcyB0dXJuZWQgb24gb3Igb2ZmLgorICAgICAqIDxwPgorICAgICAqIEBzZWUgI3NldE9wdGlvbgorICAgICAqIEBkZXByZWNhdGVkIFRvIGJlIHJlbW92ZWQgYWZ0ZXIgMjAwMy1BdWctMzEuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRPcHRpb24oaW50IG9wdGlvbil7CisJICAgIGlmKChvcHRpb25zICYgb3B0aW9uKSE9MCl7CisgICAgICAgICAgICByZXR1cm4gMSA7CisgICAgICAgIH1lbHNleworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdW5kZXJseWluZyB0ZXh0IHN0b3JhZ2UKKyAgICAgKiBAcGFyYW0gZmlsbEluIHRoZSBjaGFyIGJ1ZmZlciB0byBmaWxsIHRoZSBVVEYtMTYgdW5pdHMuCisgICAgICogICAgICAgICBUaGUgbGVuZ3RoIG9mIHRoZSBidWZmZXIgc2hvdWxkIGJlIGVxdWFsIHRvIHRoZSBsZW5ndGggb2YgdGhlCisgICAgICogICAgICAgICB1bmRlcmx5aW5nIHRleHQgc3RvcmFnZQorICAgICAqIEB0aHJvd3MgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbgorICAgICAqIEBzZWUgICAjZ2V0TGVuZ3RoCisgICAgICovCisgICAgcHVibGljIGludCBnZXRUZXh0KGNoYXJbXSBmaWxsSW4peworICAgICAgICByZXR1cm4gdGV4dC5nZXRUZXh0KGZpbGxJbik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGxlbmd0aCBvZiB1bmRlcmx5aW5nIHRleHQgc3RvcmFnZQorICAgICAqIEByZXR1cm4gdGhlIGxlbmd0aAorICAgICAqLyAKKyAgICBwdWJsaWMgaW50IGdldExlbmd0aCgpeworICAgICAgICByZXR1cm4gdGV4dC5nZXRMZW5ndGgoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdGV4dCB1bmRlciBpdGVyYXRpb24gYXMgYSBzdHJpbmcKKyAgICAgKiBAcGFyYW0gcmVzdWx0IGEgY29weSBvZiB0aGUgdGV4dCB1bmRlciBpdGVyYXRpb24uCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRUZXh0KCl7CisgICAgICAgIHJldHVybiB0ZXh0LmdldFRleHQoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpbnB1dCB0ZXh0IG92ZXIgd2hpY2ggdGhpcyA8dHQ+Tm9ybWFsaXplcjwvdHQ+IHdpbGwgaXRlcmF0ZS4KKyAgICAgKiBUaGUgaXRlcmF0aW9uIHBvc2l0aW9uIGlzIHNldCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBpbnB1dCB0ZXh0LT4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCAgIFRoZSBuZXcgc3RyaW5nIHRvIGJlIG5vcm1hbGl6ZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGV4dChTdHJpbmdCdWZmZXIgbmV3VGV4dCl7CisgICAgICAgIAorICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgbmV3SXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShuZXdUZXh0KTsKKyAgICAgICAgaWYgKG5ld0l0ZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKCJDb3VsZCBub3QgY3JlYXRlIGEgbmV3IFVDaGFyYWN0ZXJJdGVyYXRvciIpOworICAgICAgICB9ICAKKyAgICAgICAgdGV4dCA9IG5ld0l0ZXI7CisgICAgICAgIHJlc2V0KCk7CisgICAgfQorCQorICAgIC8qKgorICAgICAqIFNldCB0aGUgaW5wdXQgdGV4dCBvdmVyIHdoaWNoIHRoaXMgPHR0Pk5vcm1hbGl6ZXI8L3R0PiB3aWxsIGl0ZXJhdGUuCisgICAgICogVGhlIGl0ZXJhdGlvbiBwb3NpdGlvbiBpcyBzZXQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgaW5wdXQgdGV4dC0+CisgICAgICogQHBhcmFtIG5ld1RleHQgICBUaGUgbmV3IHN0cmluZyB0byBiZSBub3JtYWxpemVkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRleHQoY2hhcltdIG5ld1RleHQpeworICAgICAgICAKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIG5ld0l0ZXIgPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2UobmV3VGV4dCk7CisgICAgICAgIGlmIChuZXdJdGVyID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcigiQ291bGQgbm90IGNyZWF0ZSBhIG5ldyBVQ2hhcmFjdGVySXRlcmF0b3IiKTsKKyAgICAgICAgfSAgCisgICAgICAgIHRleHQgPSBuZXdJdGVyOworICAgICAgICByZXNldCgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGlucHV0IHRleHQgb3ZlciB3aGljaCB0aGlzIDx0dD5Ob3JtYWxpemVyPC90dD4gd2lsbCBpdGVyYXRlLgorICAgICAqIFRoZSBpdGVyYXRpb24gcG9zaXRpb24gaXMgc2V0IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGlucHV0IHRleHQtPgorICAgICAqIEBwYXJhbSBuZXdUZXh0ICAgVGhlIG5ldyBzdHJpbmcgdG8gYmUgbm9ybWFsaXplZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUZXh0KFN0cmluZyBuZXdUZXh0KXsKKwkgICAgCisJCVVDaGFyYWN0ZXJJdGVyYXRvciBuZXdJdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKG5ld1RleHQpOworCQlpZiAobmV3SXRlciA9PSBudWxsKSB7CisJICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoIkNvdWxkIG5vdCBjcmVhdGUgYSBuZXcgVUNoYXJhY3Rlckl0ZXJhdG9yIik7CisJCX0gIAorCQl0ZXh0ID0gbmV3SXRlcjsKKwkJcmVzZXQoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpbnB1dCB0ZXh0IG92ZXIgd2hpY2ggdGhpcyA8dHQ+Tm9ybWFsaXplcjwvdHQ+IHdpbGwgaXRlcmF0ZS4KKyAgICAgKiBUaGUgaXRlcmF0aW9uIHBvc2l0aW9uIGlzIHNldCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBpbnB1dCB0ZXh0LT4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCAgIFRoZSBuZXcgc3RyaW5nIHRvIGJlIG5vcm1hbGl6ZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGV4dChDaGFyYWN0ZXJJdGVyYXRvciBuZXdUZXh0KXsKKyAgICAgICAgCisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBuZXdJdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKG5ld1RleHQpOworICAgICAgICBpZiAobmV3SXRlciA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcigiQ291bGQgbm90IGNyZWF0ZSBhIG5ldyBVQ2hhcmFjdGVySXRlcmF0b3IiKTsKKyAgICAgICAgfSAgCisgICAgICAgIHRleHQgPSBuZXdJdGVyOworICAgICAgICByZXNldCgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGlucHV0IHRleHQgb3ZlciB3aGljaCB0aGlzIDx0dD5Ob3JtYWxpemVyPC90dD4gd2lsbCBpdGVyYXRlLgorICAgICAqIFRoZSBpdGVyYXRpb24gcG9zaXRpb24gaXMgc2V0IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCAgIFRoZSBuZXcgc3RyaW5nIHRvIGJlIG5vcm1hbGl6ZWQuCisgICAgICovCisgICAgLy9JbnRlcm5hbCBtZXRob2QgZm9yIG5vdworICAgIHB1YmxpYyB2b2lkIHNldFRleHQoVUNoYXJhY3Rlckl0ZXJhdG9yIG5ld1RleHQpeyAKKyAgICAgICAgdHJ5eworCSAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIG5ld0l0ZXIgPSAoVUNoYXJhY3Rlckl0ZXJhdG9yKW5ld1RleHQuY2xvbmUoKTsKKwkJICAgIGlmIChuZXdJdGVyID09IG51bGwpIHsKKwkJCSAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcigiQ291bGQgbm90IGNyZWF0ZSBhIG5ldyBVQ2hhcmFjdGVySXRlcmF0b3IiKTsKKwkJICAgIH0KKwkJICAgIHRleHQgPSBuZXdJdGVyOworCQkgICAgcmVzZXQoKTsKKyAgICAgICAgfWNhdGNoKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoIkNvdWxkIG5vdCBjbG9uZSB0aGUgVUNoYXJhY3Rlckl0ZXJhdG9yIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gUHJpdmF0ZSB1dGlsaXR5IG1ldGhvZHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKworICAgIC8qIGJhY2t3YXJkIGl0ZXJhdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgICAgICAgICAgICAgICAKKyAgICAvKgorICAgICAqIHJlYWQgYmFja3dhcmRzIGFuZCBnZXQgbm9ybTMyCisgICAgICogcmV0dXJuIDAgaWYgdGhlIGNoYXJhY3RlciBpcyA8bWluQworICAgICAqIGlmIGMyIT0wIHRoZW4gKGMyLCBjKSBpcyBhIHN1cnJvZ2F0ZSBwYWlyIChyZXZlcnNlZCAtIGMyIGlzIGZpcnN0IAorICAgICAqIHN1cnJvZ2F0ZSBidXQgcmVhZCBzZWNvbmQhKQorICAgICAqLworCisgICAgcHJpdmF0ZSBzdGF0aWMgIGxvbmcgZ2V0UHJldk5vcm0zMihVQ2hhcmFjdGVySXRlcmF0b3Igc3JjLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIG1pbkMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gbWFzaywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBjaGFycykgeworICAgICAgICBsb25nIG5vcm0zMjsKKyAgICAgICAgaW50IGNoPTA7CisgICAgICAgIC8qIG5lZWQgc3JjLmhhc1ByZXZpb3VzKCkgKi8KKyAgICAgICAgaWYoKGNoPXNyYy5wcmV2aW91cygpKSA9PSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSl7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICBjaGFyc1swXT0oY2hhciljaDsKKyAgICAgICAgY2hhcnNbMV09MDsKKyAgICAKKyAgICAgICAgLyogY2hlY2sgZm9yIGEgc3Vycm9nYXRlIGJlZm9yZSBnZXR0aW5nIG5vcm0zMiB0byBzZWUgaWYgd2UgbmVlZCB0byAKKyAgICAgICAgICogcHJlZGVjcmVtZW50IGZ1cnRoZXIgKi8KKyAgICAgICAgaWYoY2hhcnNbMF08bWluQykgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0gZWxzZSBpZighVVRGMTYuaXNTdXJyb2dhdGUoY2hhcnNbMF0pKSB7CisgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwuZ2V0Tm9ybTMyKGNoYXJzWzBdKTsKKyAgICAgICAgfSBlbHNlIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjaGFyc1swXSkgfHwgKHNyYy5nZXRJbmRleCgpPT0wKSkgeworICAgICAgICAgICAgLyogdW5wYWlyZWQgc3Vycm9nYXRlICovCisgICAgICAgICAgICBjaGFyc1sxXT0oY2hhcilzcmMuY3VycmVudCgpOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0gZWxzZSBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoY2hhcnNbMV09KGNoYXIpc3JjLnByZXZpb3VzKCkpKSB7CisgICAgICAgICAgICBub3JtMzI9Tm9ybWFsaXplckltcGwuZ2V0Tm9ybTMyKGNoYXJzWzFdKTsKKyAgICAgICAgICAgIGlmKChub3JtMzImbWFzayk9PTApIHsKKyAgICAgICAgICAgICAgICAvKiBhbGwgc3Vycm9nYXRlIHBhaXJzIHdpdGggdGhpcyBsZWFkIHN1cnJvZ2F0ZSBoYXZlIGlycmVsZXZhbnQgCisgICAgICAgICAgICAgICAgICogZGF0YSAqLworICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiBub3JtMzIgbXVzdCBiZSBhIHN1cnJvZ2F0ZSBzcGVjaWFsICovCisgICAgICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLmdldE5vcm0zMkZyb21TdXJyb2dhdGVQYWlyKG5vcm0zMiwgY2hhcnNbMF0pOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLyogdW5wYWlyZWQgc2Vjb25kIHN1cnJvZ2F0ZSwgdW5kbyB0aGUgYzI9c3JjLnByZXZpb3VzKCkgbW92ZW1lbnQgKi8KKyAgICAgICAgICAgIHNyYy5tb3ZlSW5kZXgoIDEpOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisgCisgICAgcHJpdmF0ZSBpbnRlcmZhY2UgSXNQcmV2Qm91bmRhcnl7CisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzUHJldkJvdW5kYXJ5KFVDaGFyYWN0ZXJJdGVyYXRvciBzcmMsCisgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBtaW5DLCAKKyAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIG1hc2ssIAorICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gY2hhcnMpOworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBJc1ByZXZORkRTYWZlIGltcGxlbWVudHMgSXNQcmV2Qm91bmRhcnl7CisgICAgICAgIC8qCisgICAgICAgICAqIGZvciBORipEOgorICAgICAgICAgKiByZWFkIGJhY2t3YXJkcyBhbmQgY2hlY2sgaWYgdGhlIGxlYWQgY29tYmluaW5nIGNsYXNzIGlzIDAKKyAgICAgICAgICogaWYgYzIhPTAgdGhlbiAoYzIsIGMpIGlzIGEgc3Vycm9nYXRlIHBhaXIgKHJldmVyc2VkIC0gYzIgaXMgZmlyc3QgCisgICAgICAgICAqIHN1cnJvZ2F0ZSBidXQgcmVhZCBzZWNvbmQhKQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXNQcmV2Qm91bmRhcnkoVUNoYXJhY3Rlckl0ZXJhdG9yIHNyYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIG1pbkMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gY2NPclFDTWFzaywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBjaGFycykgeworICAgIAorICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLmlzTkZEU2FmZShnZXRQcmV2Tm9ybTMyKHNyYywgbWluQywgY2NPclFDTWFzaywgY2hhcnMpLCBjY09yUUNNYXNrLCBjY09yUUNNYXNrJiBOb3JtYWxpemVySW1wbC5RQ19NQVNLKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBJc1ByZXZUcnVlU3RhcnRlciBpbXBsZW1lbnRzIElzUHJldkJvdW5kYXJ5eworICAgICAgICAvKgorICAgICAgICAgKiByZWFkIGJhY2t3YXJkcyBhbmQgY2hlY2sgaWYgdGhlIGNoYXJhY3RlciBpcyAob3IgaXRzIGRlY29tcG9zaXRpb24gCisgICAgICAgICAqIGJlZ2lucyB3aXRoKSBhICJ0cnVlIHN0YXJ0ZXIiIChjYz09MCBhbmQgTkYqQ19ZRVMpCisgICAgICAgICAqIGlmIGMyIT0wIHRoZW4gKGMyLCBjKSBpcyBhIHN1cnJvZ2F0ZSBwYWlyIChyZXZlcnNlZCAtIGMyIGlzIGZpcnN0IAorICAgICAgICAgKiBzdXJyb2dhdGUgYnV0IHJlYWQgc2Vjb25kISkKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzUHJldkJvdW5kYXJ5KFVDaGFyYWN0ZXJJdGVyYXRvciBzcmMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gbWluQywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIGNjT3JRQ01hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBjaGFycykgeworICAgICAgICAgICAgbG9uZyBub3JtMzI7IAorICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIGRlY29tcFFDTWFzazsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZGVjb21wUUNNYXNrPShjY09yUUNNYXNrPDwyKSYweGY7IC8qZGVjb21wb3NpdGlvbiBxdWljayBjaGVjayBtYXNrKi8KKyAgICAgICAgICAgIG5vcm0zMj1nZXRQcmV2Tm9ybTMyKHNyYywgbWluQywgY2NPclFDTWFza3xkZWNvbXBRQ01hc2ssIGNoYXJzKTsKKyAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5pc1RydWVTdGFydGVyKG5vcm0zMiwgY2NPclFDTWFzaywgZGVjb21wUUNNYXNrKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZmluZFByZXZpb3VzSXRlcmF0aW9uQm91bmRhcnkoVUNoYXJhY3Rlckl0ZXJhdG9yIHNyYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSXNQcmV2Qm91bmRhcnkgb2JqLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIG1pbkMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qbWFzayovIG1hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBidWZmZXIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBzdGFydEluZGV4KSB7CisgICAgICAgIGNoYXJbXSBjaGFycz1uZXcgY2hhclsyXTsKKyAgICAgICAgYm9vbGVhbiBpc0JvdW5kYXJ5OworICAgIAorICAgICAgICAgLyogZmlsbCB0aGUgYnVmZmVyIGZyb20gdGhlIGVuZCBiYWNrd2FyZHMgKi8KKyAgICAgICAgc3RhcnRJbmRleFswXSA9IGJ1ZmZlci5sZW5ndGg7CisgICAgICAgIGNoYXJzWzBdPTA7CisgICAgICAgIHdoaWxlKHNyYy5nZXRJbmRleCgpPjAgJiYgY2hhcnNbMF0hPVVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICBpc0JvdW5kYXJ5PW9iai5pc1ByZXZCb3VuZGFyeShzcmMsIG1pbkMsIG1hc2ssIGNoYXJzKTsKKyAgICAKKyAgICAgICAgICAgIC8qIGFsd2F5cyB3cml0ZSB0aGlzIGNoYXJhY3RlciB0byB0aGUgZnJvbnQgb2YgdGhlIGJ1ZmZlciAqLworICAgICAgICAgICAgLyogbWFrZSBzdXJlIHRoZXJlIGlzIGVub3VnaCBzcGFjZSBpbiB0aGUgYnVmZmVyICovCisgICAgICAgICAgICBpZihzdGFydEluZGV4WzBdIDwgKGNoYXJzWzFdPT0wID8gMSA6IDIpKSB7CisKKyAgICAgICAgICAgICAgICAvLyBncm93IHRoZSBidWZmZXIKKyAgICAgICAgICAgICAgICBjaGFyW10gbmV3QnVmID0gbmV3IGNoYXJbYnVmZmVyLmxlbmd0aCoyXTsKKyAgICAgICAgICAgICAgICAvKiBtb3ZlIHRoZSBjdXJyZW50IGJ1ZmZlciBjb250ZW50cyB1cCAqLworICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYnVmZmVyLHN0YXJ0SW5kZXhbMF0sbmV3QnVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3QnVmLmxlbmd0aC0oYnVmZmVyLmxlbmd0aC1zdGFydEluZGV4WzBdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5sZW5ndGgtc3RhcnRJbmRleFswXSk7CisgICAgICAgICAgICAgICAgLy9hZGp1c3QgdGhlIHN0YXJ0SW5kZXgKKyAgICAgICAgICAgICAgICBzdGFydEluZGV4WzBdKz1uZXdCdWYubGVuZ3RoLWJ1ZmZlci5sZW5ndGg7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgYnVmZmVyPW5ld0J1ZjsKKyAgICAgICAgICAgICAgICBuZXdCdWY9bnVsbDsgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBidWZmZXJbLS1zdGFydEluZGV4WzBdXT1jaGFyc1swXTsKKyAgICAgICAgICAgIGlmKGNoYXJzWzFdIT0wKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyWy0tc3RhcnRJbmRleFswXV09Y2hhcnNbMV07CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvKiBzdG9wIGlmIHRoaXMganVzdC1jb3BpZWQgY2hhcmFjdGVyIGlzIGEgYm91bmRhcnkgKi8KKyAgICAgICAgICAgIGlmKGlzQm91bmRhcnkpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgYnVmZmVyIGNvbnRlbnRzICovCisgICAgICAgIHJldHVybiBidWZmZXIubGVuZ3RoLXN0YXJ0SW5kZXhbMF07CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGludCBwcmV2aW91cyhVQ2hhcmFjdGVySXRlcmF0b3Igc3JjLAorICAgICAgICAgICAgICAgICAgIGNoYXJbXSBkZXN0LCBpbnQgZGVzdFN0YXJ0LCBpbnQgZGVzdExpbWl0LCAKKyAgICAgICAgICAgICAgICAgICBNb2RlIG1vZGUsIAorICAgICAgICAgICAgICAgICAgIC8qaW50IG9wdGlvbnMsKi8KKyAgICAgICAgICAgICAgICAgICBib29sZWFuIGRvTm9ybWFsaXplLCAKKyAgICAgICAgICAgICAgICAgICBib29sZWFuW10gcE5lZWRlZFRvTm9ybWFsaXplKSB7CisKKyAgICAgICAgSXNQcmV2Qm91bmRhcnkgaXNQcmV2aW91c0JvdW5kYXJ5OworICAgICAgICBpbnQgZGVzdExlbmd0aCwgYnVmZmVyTGVuZ3RoOworICAgICAgICBpbnQvKnVuc2lnbmVkKi8gbWFzazsKKyAgICAgICAgaW50W10gc3RhcnRJbmRleD0gbmV3IGludFsxXTsKKyAgICAgICAgaW50IGMsYzI7CisgICAgICAgIAorICAgICAgICBjaGFyIG1pbkM7CisgICAgICAgIGludCBkZXN0Q2FwYWNpdHkgPSBkZXN0TGltaXQtZGVzdFN0YXJ0OworICAgICAgICBkZXN0TGVuZ3RoPTA7CisgICAgICAgIGNoYXJbXSBidWZmZXIgPSBuZXcgY2hhclsxMDBdOworICAgICAgICAKKyAgICAgICAgaWYocE5lZWRlZFRvTm9ybWFsaXplIT1udWxsKSB7CisgICAgICAgICAgICBwTmVlZGVkVG9Ob3JtYWxpemVbMF09ZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgbWluQyA9IChjaGFyKW1vZGUuZ2V0TWluQygpOworICAgICAgICBtYXNrID0gbW9kZS5nZXRNYXNrKCk7CisgICAgICAgIGlzUHJldmlvdXNCb3VuZGFyeSA9IG1vZGUuZ2V0UHJldkJvdW5kYXJ5KCk7CisKKyAgICAgICAgaWYoaXNQcmV2aW91c0JvdW5kYXJ5PT1udWxsKXsKKyAgICAgICAgICAgIGRlc3RMZW5ndGg9MDsKKyAgICAgICAgICAgIGlmKChjPXNyYy5wcmV2aW91cygpKT49MCkgeworICAgICAgICAgICAgICAgIGRlc3RMZW5ndGg9MTsKKyAgICAgICAgICAgICAgICBpZihVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKChjaGFyKWMpKXsKKyAgICAgICAgICAgICAgICAgICAgYzI9IHNyYy5wcmV2aW91cygpOworICAgICAgICAgICAgICAgICAgICBpZihjMiE9IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZSgoY2hhciljMikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihkZXN0Q2FwYWNpdHk+PTIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFsxXT0oY2hhciljOyAvLyB0cmFpbCBzdXJyb2dhdGUgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RMZW5ndGg9MjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGVhZCBzdXJyb2dhdGUgdG8gYmUgd3JpdHRlbiBiZWxvdyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjPWMyOyAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjLm1vdmVJbmRleCgxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICBpZihkZXN0Q2FwYWNpdHk+MCkgeworICAgICAgICAgICAgICAgICAgICBkZXN0WzBdPShjaGFyKWM7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGRlc3RMZW5ndGg7CisgICAgICAgICB9CisgICAgCisgICAgICAgIGJ1ZmZlckxlbmd0aD1maW5kUHJldmlvdXNJdGVyYXRpb25Cb3VuZGFyeShzcmMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1ByZXZpb3VzQm91bmRhcnksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluQywgbWFzayxidWZmZXIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRJbmRleCk7CisgICAgICAgIGlmKGJ1ZmZlckxlbmd0aD4wKSB7CisgICAgICAgICAgICBpZihkb05vcm1hbGl6ZSkgeworICAgICAgICAgICAgICAgIGRlc3RMZW5ndGg9Tm9ybWFsaXplci5ub3JtYWxpemUoYnVmZmVyLHN0YXJ0SW5kZXhbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRJbmRleFswXStidWZmZXJMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdCwgZGVzdFN0YXJ0LGRlc3RMaW1pdCxtb2RlKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZihwTmVlZGVkVG9Ob3JtYWxpemUhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgcE5lZWRlZFRvTm9ybWFsaXplWzBdPShib29sZWFuKShkZXN0TGVuZ3RoIT1idWZmZXJMZW5ndGggfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmFycmF5UmVnaW9uTWF0Y2hlcygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlciwwLGRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0U3RhcnQsZGVzdExpbWl0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIGp1c3QgY29weSB0aGUgc291cmNlIGNoYXJhY3RlcnMgKi8KKyAgICAgICAgICAgICAgICBpZihkZXN0Q2FwYWNpdHk+MCkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGJ1ZmZlcixzdGFydEluZGV4WzBdLGRlc3QsMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnVmZmVyTGVuZ3RoPGRlc3RDYXBhY2l0eSkgPyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJMZW5ndGggOiBkZXN0Q2FwYWNpdHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IAorCisgICAgCisgICAgICAgIHJldHVybiBkZXN0TGVuZ3RoOworICAgIH0KKworIAorICAgIAorICAgIC8qIGZvcndhcmQgaXRlcmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgICAgLyoKKyAgICAgKiByZWFkIGZvcndhcmQgYW5kIGNoZWNrIGlmIHRoZSBjaGFyYWN0ZXIgaXMgYSBuZXh0LWl0ZXJhdGlvbiBib3VuZGFyeQorICAgICAqIGlmIGMyIT0wIHRoZW4gKGMsIGMyKSBpcyBhIHN1cnJvZ2F0ZSBwYWlyCisgICAgICovCisgICAgcHJpdmF0ZSBpbnRlcmZhY2UgSXNOZXh0Qm91bmRhcnl7CisgICAgICAgIGJvb2xlYW4gaXNOZXh0Qm91bmRhcnkoVUNoYXJhY3Rlckl0ZXJhdG9yIHNyYywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIG1pbkMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBtYXNrLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBjaGFycyk7CisgICAgfSAgIAorICAgIC8qCisgICAgICogcmVhZCBmb3J3YXJkIGFuZCBnZXQgbm9ybTMyCisgICAgICogcmV0dXJuIDAgaWYgdGhlIGNoYXJhY3RlciBpcyA8bWluQworICAgICAqIGlmIGMyIT0wIHRoZW4gKGMyLCBjKSBpcyBhIHN1cnJvZ2F0ZSBwYWlyCisgICAgICogYWx3YXlzIHJlYWRzIGNvbXBsZXRlIGNoYXJhY3RlcnMKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBsb25nIC8qdW5zaWduZWQqLyBnZXROZXh0Tm9ybTMyKFVDaGFyYWN0ZXJJdGVyYXRvciBzcmMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gbWluQywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBtYXNrLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gY2hhcnMpIHsKKyAgICAgICAgbG9uZyBub3JtMzI7CisgICAgCisgICAgICAgIC8qIG5lZWQgc3JjLmhhc05leHQoKSB0byBiZSB0cnVlICovCisgICAgICAgIGNoYXJzWzBdPXNyYy5uZXh0KCk7CisgICAgICAgIGNoYXJzWzFdPTA7CisgICAgCisgICAgICAgIGlmKGNoYXJzWzBdPG1pbkMpIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgCisgICAgICAgIG5vcm0zMj1Ob3JtYWxpemVySW1wbC5nZXROb3JtMzIoKGNoYXIpY2hhcnNbMF0pOworICAgICAgICBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoKGNoYXIpY2hhcnNbMF0pKSB7CisgICAgICAgICAgICBpZihzcmMuY3VycmVudCgpIT1VQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSgoY2hhcikoY2hhcnNbMV09c3JjLmN1cnJlbnQoKSkpKXsKKyAgICAgICAgICAgICAgICBzcmMubW92ZUluZGV4KDEpOyAvKiBza2lwIHRoZSBjMiBzdXJyb2dhdGUgKi8KKyAgICAgICAgICAgICAgICBpZigobm9ybTMyJm1hc2spPT0wKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGlycmVsZXZhbnQgZGF0YSAqLworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBub3JtMzIgbXVzdCBiZSBhIHN1cnJvZ2F0ZSBzcGVjaWFsICovCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5nZXROb3JtMzJGcm9tU3Vycm9nYXRlUGFpcihub3JtMzIsIChjaGFyKWNoYXJzWzFdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIHVubWF0Y2hlZCBzdXJyb2dhdGUgKi8KKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbm9ybTMyOworICAgIH0KKworCisgICAgLyoKKyAgICAgKiBmb3IgTkYqRDoKKyAgICAgKiByZWFkIGZvcndhcmQgYW5kIGNoZWNrIGlmIHRoZSBsZWFkIGNvbWJpbmluZyBjbGFzcyBpcyAwCisgICAgICogaWYgYzIhPTAgdGhlbiAoYywgYzIpIGlzIGEgc3Vycm9nYXRlIHBhaXIKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBJc05leHRORkRTYWZlIGltcGxlbWVudHMgSXNOZXh0Qm91bmRhcnl7CisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzTmV4dEJvdW5kYXJ5KFVDaGFyYWN0ZXJJdGVyYXRvciBzcmMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBtaW5DLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gY2NPclFDTWFzaywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gY2hhcnMpIHsKKyAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5pc05GRFNhZmUoZ2V0TmV4dE5vcm0zMihzcmMsIG1pbkMsIGNjT3JRQ01hc2ssIGNoYXJzKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjT3JRQ01hc2ssIGNjT3JRQ01hc2smTm9ybWFsaXplckltcGwuUUNfTUFTSyk7CisgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKgorICAgICAqIGZvciBORipDOgorICAgICAqIHJlYWQgZm9yd2FyZCBhbmQgY2hlY2sgaWYgdGhlIGNoYXJhY3RlciBpcyAob3IgaXRzIGRlY29tcG9zaXRpb24gYmVnaW5zIAorICAgICAqIHdpdGgpIGEgInRydWUgc3RhcnRlciIgKGNjPT0wIGFuZCBORipDX1lFUykKKyAgICAgKiBpZiBjMiE9MCB0aGVuIChjLCBjMikgaXMgYSBzdXJyb2dhdGUgcGFpcgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIElzTmV4dFRydWVTdGFydGVyIGltcGxlbWVudHMgSXNOZXh0Qm91bmRhcnl7CisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzTmV4dEJvdW5kYXJ5KFVDaGFyYWN0ZXJJdGVyYXRvciBzcmMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBtaW5DLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gY2NPclFDTWFzaywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gY2hhcnMpIHsKKyAgICAgICAgICAgIGxvbmcgbm9ybTMyOworICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIGRlY29tcFFDTWFzazsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZGVjb21wUUNNYXNrPShjY09yUUNNYXNrPDwyKSYweGY7IC8qZGVjb21wb3NpdGlvbiBxdWljayBjaGVjayBtYXNrKi8KKyAgICAgICAgICAgIG5vcm0zMj1nZXROZXh0Tm9ybTMyKHNyYywgbWluQywgY2NPclFDTWFza3xkZWNvbXBRQ01hc2ssIGNoYXJzKTsKKyAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5pc1RydWVTdGFydGVyKG5vcm0zMiwgY2NPclFDTWFzaywgZGVjb21wUUNNYXNrKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZmluZE5leHRJdGVyYXRpb25Cb3VuZGFyeShVQ2hhcmFjdGVySXRlcmF0b3Igc3JjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElzTmV4dEJvdW5kYXJ5IG9iaiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIG1pbkMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBtYXNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBidWZmZXIpIHsKKyAgICAgICAgaW50W10gY2hhcnMgPSBuZXcgaW50WzJdOworICAgICAgICBpbnQgYnVmZmVySW5kZXggPTA7CisgICAgICAgIAorICAgICAgICBpZihzcmMuY3VycmVudCgpPT1VQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSl7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICAvKiBnZXQgb25lIGNoYXJhY3RlciBhbmQgaWdub3JlIGl0cyBwcm9wZXJ0aWVzICovCisgICAgICAgIGNoYXJzWzBdPXNyYy5uZXh0KCk7CisgICAgICAgIGJ1ZmZlclswXT0oY2hhciljaGFyc1swXTsKKyAgICAgICAgYnVmZmVySW5kZXg9MTsKKyAgICAgICAgCisgICAgICAgIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZSgoY2hhciljaGFyc1swXSkmJiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmMuY3VycmVudCgpIT1VQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSl7CisgICAgICAgICAgICBpZihVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKChjaGFyKShjaGFyc1sxXT1zcmMubmV4dCgpKSkpeworICAgICAgICAgICAgICAgIGJ1ZmZlcltidWZmZXJJbmRleCsrXT0oY2hhciljaGFyc1sxXTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgc3JjLm1vdmVJbmRleCgtMSk7IC8qIGJhY2sgb3V0IHRoZSBub24tdHJhaWwtc3Vycm9nYXRlICovCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLyogZ2V0IGFsbCBmb2xsb3dpbmcgY2hhcmFjdGVycyB1bnRpbCB3ZSBzZWUgYSBib3VuZGFyeSAqLworICAgICAgICAvKiBjaGVja2luZyBoYXNOZXh0KCkgaW5zdGVhZCBvZiBjIT1ET05FIG9uIHRoZSBvZmYtY2hhbmNlIHRoYXQgVStmZmZmIAorICAgICAgICAgKiBpcyBwYXJ0IG9mIHRoZSBzdHJpbmcgKi8KKyAgICAgICAgd2hpbGUoIHNyYy5jdXJyZW50KCkhPVVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICBpZihvYmouaXNOZXh0Qm91bmRhcnkoc3JjLCBtaW5DLCBtYXNrLCBjaGFycykpIHsKKyAgICAgICAgICAgICAgICAvKiBiYWNrIG91dCB0aGUgbGF0ZXN0IG1vdmVtZW50IHRvIHN0b3AgYXQgdGhlIGJvdW5kYXJ5ICovCisgICAgICAgICAgICAgICAgc3JjLm1vdmVJbmRleChjaGFyc1sxXT09MCA/IC0xIDogLTIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZihidWZmZXJJbmRleCsoY2hhcnNbMV09PTAgPyAxIDogMik8PWJ1ZmZlci5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2J1ZmZlckluZGV4KytdPShjaGFyKWNoYXJzWzBdOworICAgICAgICAgICAgICAgICAgICBpZihjaGFyc1sxXSE9MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2J1ZmZlckluZGV4KytdPShjaGFyKWNoYXJzWzFdOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBuZXdCdWYgPSBuZXcgY2hhcltidWZmZXIubGVuZ3RoICAgICoyXTsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShidWZmZXIsMCxuZXdCdWYsMCxidWZmZXJJbmRleCk7CisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlciA9IG5ld0J1ZjsKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2J1ZmZlckluZGV4KytdPShjaGFyKWNoYXJzWzBdOworICAgICAgICAgICAgICAgICAgICBpZihjaGFyc1sxXSE9MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2J1ZmZlckluZGV4KytdPShjaGFyKWNoYXJzWzFdOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIC8qIHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSBidWZmZXIgY29udGVudHMgKi8KKyAgICAgICAgcmV0dXJuIGJ1ZmZlckluZGV4OworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgbmV4dChVQ2hhcmFjdGVySXRlcmF0b3Igc3JjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGRlc3QsIGludCBkZXN0U3RhcnQsIGludCBkZXN0TGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk1vZGUgbW9kZSwgLyppbnQgb3B0aW9ucywqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBkb05vcm1hbGl6ZSwgYm9vbGVhbltdIHBOZWVkZWRUb05vcm1hbGl6ZSl7CisgICAgICAgIGNoYXJbXSBidWZmZXI9bmV3IGNoYXJbMTAwXTsKKyAgICAgICAgSXNOZXh0Qm91bmRhcnkgaXNOZXh0Qm91bmRhcnk7CisgICAgICAgIGludCAvKnVuc2lnbmVkKi8gbWFzazsKKyAgICAgICAgaW50IC8qdW5zaWduZWQqLyBidWZmZXJMZW5ndGg7CisgICAgICAgIGludCBjLGMyOworICAgICAgICBjaGFyIG1pbkM7CisgICAgICAgIGludCBkZXN0Q2FwYWNpdHkgPSBkZXN0TGltaXQgLSBkZXN0U3RhcnQ7CisgICAgICAgIGludCBkZXN0TGVuZ3RoID0gMDsKKyAgICAgICAgaW50W10gc3RhcnRJbmRleCA9IG5ldyBpbnRbMV07CisgICAgICAgIGlmKHBOZWVkZWRUb05vcm1hbGl6ZSE9bnVsbCkgeworICAgICAgICAgICAgcE5lZWRlZFRvTm9ybWFsaXplWzBdPWZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgbWluQyA9IChjaGFyKW1vZGUuZ2V0TWluQygpOworICAgICAgICBtYXNrID0gbW9kZS5nZXRNYXNrKCk7CisgICAgICAgIGlzTmV4dEJvdW5kYXJ5ID0gbW9kZS5nZXROZXh0Qm91bmRhcnkoKTsKKyAgICAgICAgCisgICAgICAgIGlmKGlzTmV4dEJvdW5kYXJ5PT1udWxsKXsKKyAgICAgICAgICAgIGRlc3RMZW5ndGg9MDsKKyAgICAgICAgICAgIGM9c3JjLm5leHQoKTsKKyAgICAgICAgICAgIGlmKGMhPVVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAgICAgZGVzdExlbmd0aD0xOworICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZSgoY2hhciljKSl7CisgICAgICAgICAgICAgICAgICAgIGMyPSBzcmMubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBpZihjMiE9IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKChjaGFyKWMyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGRlc3RDYXBhY2l0eT49MikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0WzFdPShjaGFyKWMyOyAvLyB0cmFpbCBzdXJyb2dhdGUgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RMZW5ndGg9MjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGVhZCBzdXJyb2dhdGUgdG8gYmUgd3JpdHRlbiBiZWxvdyAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjLm1vdmVJbmRleCgtMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgaWYoZGVzdENhcGFjaXR5PjApIHsKKyAgICAgICAgICAgICAgICAgICAgZGVzdFswXT0oY2hhciljOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBkZXN0TGVuZ3RoOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBidWZmZXJMZW5ndGg9ZmluZE5leHRJdGVyYXRpb25Cb3VuZGFyeShzcmMsaXNOZXh0Qm91bmRhcnksIG1pbkMsIG1hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcik7CisgICAgICAgIGlmKGJ1ZmZlckxlbmd0aD4wKSB7CisgICAgICAgICAgICBpZihkb05vcm1hbGl6ZSkgeworICAgICAgICAgICAgICAgIGRlc3RMZW5ndGg9bW9kZS5ub3JtYWxpemUoYnVmZmVyLHN0YXJ0SW5kZXhbMF0sYnVmZmVyTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdCxkZXN0U3RhcnQsZGVzdExpbWl0KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZihwTmVlZGVkVG9Ob3JtYWxpemUhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgcE5lZWRlZFRvTm9ybWFsaXplWzBdPShib29sZWFuKShkZXN0TGVuZ3RoIT1idWZmZXJMZW5ndGggfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0eS5hcnJheVJlZ2lvbk1hdGNoZXMoYnVmZmVyLHN0YXJ0SW5kZXhbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QsZGVzdFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0TGVuZ3RoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiBqdXN0IGNvcHkgdGhlIHNvdXJjZSBjaGFyYWN0ZXJzICovCisgICAgICAgICAgICAgICAgaWYoZGVzdENhcGFjaXR5PjApIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShidWZmZXIsMCxkZXN0LGRlc3RTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRoLm1pbihidWZmZXJMZW5ndGgsZGVzdENhcGFjaXR5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBkZXN0TGVuZ3RoOworICAgIH0gCisKKyAgICBwcml2YXRlIHZvaWQgY2xlYXJCdWZmZXIoKSB7CisgICAgICAgIGJ1ZmZlckxpbWl0PWJ1ZmZlclN0YXJ0PWJ1ZmZlclBvcz0wOworICAgIH0KKwkKKyAgICBwcml2YXRlIGJvb2xlYW4gbmV4dE5vcm1hbGl6ZSgpIHsKKyAgICAgICAgCisJCWNsZWFyQnVmZmVyKCk7CisJCWN1cnJlbnRJbmRleD1uZXh0SW5kZXg7CisJCXRleHQuc2V0SW5kZXgobmV4dEluZGV4KTsKKwkgICAgICAgIAorCQlidWZmZXJMaW1pdD1uZXh0KHRleHQsYnVmZmVyLGJ1ZmZlclN0YXJ0LGJ1ZmZlci5sZW5ndGgsbW9kZSx0cnVlLG51bGwpOworCSAgICAgICAgICAgICAgICAKKwkJbmV4dEluZGV4PXRleHQuZ2V0SW5kZXgoKTsKKwkJcmV0dXJuIChidWZmZXJMaW1pdD4wKTsKKyAgICB9CisJCisgICAgcHJpdmF0ZSBib29sZWFuCXByZXZpb3VzTm9ybWFsaXplKCkgeworCisJCWNsZWFyQnVmZmVyKCk7CisJCW5leHRJbmRleD1jdXJyZW50SW5kZXg7CisJCXRleHQuc2V0SW5kZXgoY3VycmVudEluZGV4KTsKKwkJYnVmZmVyTGltaXQ9cHJldmlvdXModGV4dCxidWZmZXIsYnVmZmVyU3RhcnQsYnVmZmVyLmxlbmd0aCxtb2RlLHRydWUsbnVsbCk7CisJCQorCQljdXJyZW50SW5kZXg9dGV4dC5nZXRJbmRleCgpOworCSAgICBidWZmZXJQb3MgPSBidWZmZXJMaW1pdDsKKwkJcmV0dXJuIGJ1ZmZlckxpbWl0PjA7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgaW50IGdldENvZGVQb2ludEF0KGludCBpbmRleCl7CisgICAgICAgIGlmKCBVVEYxNi5pc1N1cnJvZ2F0ZShidWZmZXJbaW5kZXhdKSl7CisgICAgICAgICAgICBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoYnVmZmVyW2luZGV4XSkpeworICAgICAgICAgICAgICAgIGlmKChpbmRleCsxKTxidWZmZXJMaW1pdCAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShidWZmZXJbaW5kZXgrMV0pKXsKKwkJICAgICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRSYXdTdXBwbGVtZW50YXJ5KAorCQkJCSAgICAgICAgCSAgICAgICAgICBidWZmZXJbaW5kZXhdLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2luZGV4KzFdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ZWxzZSBpZihVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGJ1ZmZlcltpbmRleF0pKXsKKyAgICAgICAgICAgICAgICBpZihpbmRleD4wICYmIFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShidWZmZXJbaW5kZXgtMV0pKXsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRSYXdTdXBwbGVtZW50YXJ5KAorCQkJCQkJCQkgICAgIGJ1ZmZlcltpbmRleC0xXSwKKwkJCQkJCQkJICAgICBidWZmZXJbaW5kZXhdCisJCQkJCQkJCSAgKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ICAgCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGJ1ZmZlcltpbmRleF07CisgICAgICAgIAorICAgIH0KKyAgICAgICAgICAgICAgICAgIAorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvTnVsbFRyYW5zbGl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9OdWxsVHJhbnNsaXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jY2FiZTNkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvTnVsbFRyYW5zbGl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L3RleHQvTnVsbFRyYW5zbGl0ZXJhdG9yLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6MTEgJCAKKyAqICRSZXZpc2lvbjogMS4xMCAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworLyoqCisgKiBBIHRyYW5zbGl0ZXJhdG9yIHRoYXQgbGVhdmVzIHRleHQgdW5jaGFuZ2VkLgorICovCitwdWJsaWMgY2xhc3MgTnVsbFRyYW5zbGl0ZXJhdG9yIGV4dGVuZHMgVHJhbnNsaXRlcmF0b3IgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAiXHUwMEE5IElCTSBDb3Jwb3JhdGlvbiAyMDAwLiBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvKioKKyAgICAgKiBQYWNrYWdlIGFjY2Vzc2libGUgSURzIGZvciB0aGlzIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqLworICAgIHN0YXRpYyBTdHJpbmcgU0hPUlRfSUQgPSAiTnVsbCI7CisgICAgc3RhdGljIFN0cmluZyBfSUQgICAgICA9ICJBbnktTnVsbCI7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgdHJhbnNsaXRlcmF0b3IuCisgICAgICovCisgICAgcHVibGljIE51bGxUcmFuc2xpdGVyYXRvcigpIHsKKyAgICAgICAgc3VwZXIoX0lELCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRzIHtAbGluayBUcmFuc2xpdGVyYXRvciNoYW5kbGVUcmFuc2xpdGVyYXRlfS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVUcmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbiBvZmZzZXRzLCBib29sZWFuIGluY3JlbWVudGFsKSB7CisgICAgICAgIG9mZnNldHMuc3RhcnQgPSBvZmZzZXRzLmxpbWl0OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L051bWJlckZvcm1hdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvTnVtYmVyRm9ybWF0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYWFlNDU3MgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L051bWJlckZvcm1hdC5qYXZhCkBAIC0wLDAgKzEsOTM0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvdGV4dC9OdW1iZXJGb3JtYXQuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMy8yMCAwNToxMToxNSAkIAorICogJFJldmlzaW9uOiAxLjEzICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMb2NhbGVEYXRhOworCitpbXBvcnQgamF2YS5pby5JbnZhbGlkT2JqZWN0RXhjZXB0aW9uOyAvL0J1ZyA0MTg1NzYxIFtSaWNoYXJkL0dDTF0KK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5PYmplY3RPdXRwdXRTdHJlYW07CitpbXBvcnQgamF2YS5tYXRoLkJpZ0ludGVnZXI7CitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LkZvcm1hdDsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTsKKworLyoqCisgKiA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IGlzIHRoZSBhYnN0cmFjdCBiYXNlIGNsYXNzIGZvciBhbGwgbnVtYmVyCisgKiBmb3JtYXRzLiBUaGlzIGNsYXNzIHByb3ZpZGVzIHRoZSBpbnRlcmZhY2UgZm9yIGZvcm1hdHRpbmcgYW5kIHBhcnNpbmcKKyAqIG51bWJlcnMuIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4gYWxzbyBwcm92aWRlcyBtZXRob2RzIGZvciBkZXRlcm1pbmluZworICogd2hpY2ggbG9jYWxlcyBoYXZlIG51bWJlciBmb3JtYXRzLCBhbmQgd2hhdCB0aGVpciBuYW1lcyBhcmUuCisgKgorICogPHA+PHN0cm9uZz5UaGlzIGlzIGFuIGVuaGFuY2VkIHZlcnNpb24gb2YgPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiB0aGF0CisgKiBpcyBiYXNlZCBvbiB0aGUgc3RhbmRhcmQgdmVyc2lvbiBpbiB0aGUgSkRLLiAgTmV3IG9yIGNoYW5nZWQgZnVuY3Rpb25hbGl0eQorICogaXMgbGFiZWxlZAorICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPiBvcgorICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+Q0hBTkdFRDwvZm9udD48L3N0cm9uZz4uPC9zdHJvbmc+CisgKgorICogPHA+CisgKiA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IGhlbHBzIHlvdSB0byBmb3JtYXQgYW5kIHBhcnNlIG51bWJlcnMgZm9yIGFueSBsb2NhbGUuCisgKiBZb3VyIGNvZGUgY2FuIGJlIGNvbXBsZXRlbHkgaW5kZXBlbmRlbnQgb2YgdGhlIGxvY2FsZSBjb252ZW50aW9ucyBmb3IKKyAqIGRlY2ltYWwgcG9pbnRzLCB0aG91c2FuZHMtc2VwYXJhdG9ycywgb3IgZXZlbiB0aGUgcGFydGljdWxhciBkZWNpbWFsCisgKiBkaWdpdHMgdXNlZCwgb3Igd2hldGhlciB0aGUgbnVtYmVyIGZvcm1hdCBpcyBldmVuIGRlY2ltYWwuCisgKgorICogPHA+CisgKiBUbyBmb3JtYXQgYSBudW1iZXIgZm9yIHRoZSBjdXJyZW50IExvY2FsZSwgdXNlIG9uZSBvZiB0aGUgZmFjdG9yeQorICogY2xhc3MgbWV0aG9kczoKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqICBteVN0cmluZyA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpLmZvcm1hdChteU51bWJlcik7CisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqIElmIHlvdSBhcmUgZm9ybWF0dGluZyBtdWx0aXBsZSBudW1iZXJzLCBpdCBpcworICogbW9yZSBlZmZpY2llbnQgdG8gZ2V0IHRoZSBmb3JtYXQgYW5kIHVzZSBpdCBtdWx0aXBsZSB0aW1lcyBzbyB0aGF0CisgKiB0aGUgc3lzdGVtIGRvZXNuJ3QgaGF2ZSB0byBmZXRjaCB0aGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGxvY2FsCisgKiBsYW5ndWFnZSBhbmQgY291bnRyeSBjb252ZW50aW9ucyBtdWx0aXBsZSB0aW1lcy4KKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpOworICogZm9yIChpbnQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgKytpKSB7CisgKiAgICAgb3V0cHV0LnByaW50bG4obmYuZm9ybWF0KG15TnVtYmVyW2ldKSArICI7ICIpOworICogfQorICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKiBUbyBmb3JtYXQgYSBudW1iZXIgZm9yIGEgZGlmZmVyZW50IExvY2FsZSwgc3BlY2lmeSBpdCBpbiB0aGUKKyAqIGNhbGwgdG8gPGNvZGU+Z2V0SW5zdGFuY2U8L2NvZGU+LgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKExvY2FsZS5GUkVOQ0gpOworICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKiBZb3UgY2FuIGFsc28gdXNlIGEgPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiB0byBwYXJzZSBudW1iZXJzOgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogbXlOdW1iZXIgPSBuZi5wYXJzZShteVN0cmluZyk7CisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqIFVzZSA8Y29kZT5nZXRJbnN0YW5jZTwvY29kZT4gb3IgPGNvZGU+Z2V0TnVtYmVySW5zdGFuY2U8L2NvZGU+IHRvIGdldCB0aGUKKyAqIG5vcm1hbCBudW1iZXIgZm9ybWF0LiBVc2UgPGNvZGU+Z2V0SW50ZWdlckluc3RhbmNlPC9jb2RlPiB0byBnZXQgYW4KKyAqIGludGVnZXIgbnVtYmVyIGZvcm1hdC4gVXNlIDxjb2RlPmdldEN1cnJlbmN5SW5zdGFuY2U8L2NvZGU+IHRvIGdldCB0aGUKKyAqIGN1cnJlbmN5IG51bWJlciBmb3JtYXQuIEFuZCB1c2UgPGNvZGU+Z2V0UGVyY2VudEluc3RhbmNlPC9jb2RlPiB0byBnZXQgYQorICogZm9ybWF0IGZvciBkaXNwbGF5aW5nIHBlcmNlbnRhZ2VzLiBXaXRoIHRoaXMgZm9ybWF0LCBhIGZyYWN0aW9uIGxpa2UKKyAqIDAuNTMgaXMgZGlzcGxheWVkIGFzIDUzJS4KKyAqCisgKiA8cD4KKyAqIFlvdSBjYW4gYWxzbyBjb250cm9sIHRoZSBkaXNwbGF5IG9mIG51bWJlcnMgd2l0aCBzdWNoIG1ldGhvZHMgYXMKKyAqIDxjb2RlPnNldE1pbmltdW1GcmFjdGlvbkRpZ2l0czwvY29kZT4uCisgKiBJZiB5b3Ugd2FudCBldmVuIG1vcmUgY29udHJvbCBvdmVyIHRoZSBmb3JtYXQgb3IgcGFyc2luZywKKyAqIG9yIHdhbnQgdG8gZ2l2ZSB5b3VyIHVzZXJzIG1vcmUgY29udHJvbCwKKyAqIHlvdSBjYW4gdHJ5IGNhc3RpbmcgdGhlIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4geW91IGdldCBmcm9tIHRoZSBmYWN0b3J5IG1ldGhvZHMKKyAqIHRvIGEgPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4uIFRoaXMgd2lsbCB3b3JrIGZvciB0aGUgdmFzdCBtYWpvcml0eQorICogb2YgbG9jYWxlczsganVzdCByZW1lbWJlciB0byBwdXQgaXQgaW4gYSA8Y29kZT50cnk8L2NvZGU+IGJsb2NrIGluIGNhc2UgeW91CisgKiBlbmNvdW50ZXIgYW4gdW51c3VhbCBvbmUuCisgKgorICogPHA+CisgKiBOdW1iZXJGb3JtYXQgYW5kIERlY2ltYWxGb3JtYXQgYXJlIGRlc2lnbmVkIHN1Y2ggdGhhdCBzb21lIGNvbnRyb2xzCisgKiB3b3JrIGZvciBmb3JtYXR0aW5nIGFuZCBvdGhlcnMgd29yayBmb3IgcGFyc2luZy4gIFRoZSBmb2xsb3dpbmcgaXMKKyAqIHRoZSBkZXRhaWxlZCBkZXNjcmlwdGlvbiBmb3IgZWFjaCB0aGVzZSBjb250cm9sIG1ldGhvZHMsCisgKiA8cD4KKyAqIHNldFBhcnNlSW50ZWdlck9ubHkgOiBvbmx5IGFmZmVjdHMgcGFyc2luZywgZS5nLgorICogaWYgdHJ1ZSwgICIzNDU2Ljc4IiAtPiAzNDU2IChhbmQgbGVhdmVzIHRoZSBwYXJzZSBwb3NpdGlvbiBqdXN0IGFmdGVyIGluZGV4IDYpCisgKiBpZiBmYWxzZSwgIjM0NTYuNzgiIC0+IDM0NTYuNzggKGFuZCBsZWF2ZXMgdGhlIHBhcnNlIHBvc2l0aW9uIGp1c3QgYWZ0ZXIgaW5kZXggOCkKKyAqIFRoaXMgaXMgaW5kZXBlbmRlbnQgb2YgZm9ybWF0dGluZy4gIElmIHlvdSB3YW50IHRvIG5vdCBzaG93IGEgZGVjaW1hbCBwb2ludAorICogd2hlcmUgdGhlcmUgbWlnaHQgYmUgbm8gZGlnaXRzIGFmdGVyIHRoZSBkZWNpbWFsIHBvaW50LCB1c2UKKyAqIHNldERlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bi4KKyAqIDxwPgorICogc2V0RGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duIDogb25seSBhZmZlY3RzIGZvcm1hdHRpbmcsIGFuZCBvbmx5IHdoZXJlCisgKiB0aGVyZSBtaWdodCBiZSBubyBkaWdpdHMgYWZ0ZXIgdGhlIGRlY2ltYWwgcG9pbnQsIHN1Y2ggYXMgd2l0aCBhIHBhdHRlcm4KKyAqIGxpa2UgIiMsIyMwLiMjIiwgZS5nLiwKKyAqIGlmIHRydWUsICAzNDU2LjAwIC0+ICIzLDQ1Ni4iCisgKiBpZiBmYWxzZSwgMzQ1Ni4wMCAtPiAiMzQ1NiIKKyAqIFRoaXMgaXMgaW5kZXBlbmRlbnQgb2YgcGFyc2luZy4gIElmIHlvdSB3YW50IHBhcnNpbmcgdG8gc3RvcCBhdCB0aGUgZGVjaW1hbAorICogcG9pbnQsIHVzZSBzZXRQYXJzZUludGVnZXJPbmx5LgorICoKKyAqIDxwPgorICogWW91IGNhbiBhbHNvIHVzZSBmb3JtcyBvZiB0aGUgPGNvZGU+cGFyc2U8L2NvZGU+IGFuZCA8Y29kZT5mb3JtYXQ8L2NvZGU+CisgKiBtZXRob2RzIHdpdGggPGNvZGU+UGFyc2VQb3NpdGlvbjwvY29kZT4gYW5kIDxjb2RlPkZpZWxkUG9zaXRpb248L2NvZGU+IHRvCisgKiBhbGxvdyB5b3UgdG86CisgKiA8dWw+CisgKiA8bGk+IHByb2dyZXNzaXZlbHkgcGFyc2UgdGhyb3VnaCBwaWVjZXMgb2YgYSBzdHJpbmcKKyAqIDxsaT4gYWxpZ24gdGhlIGRlY2ltYWwgcG9pbnQgYW5kIG90aGVyIGFyZWFzCisgKiA8L3VsPgorICogRm9yIGV4YW1wbGUsIHlvdSBjYW4gYWxpZ24gbnVtYmVycyBpbiB0d28gd2F5czoKKyAqIDxvbD4KKyAqIDxsaT4gSWYgeW91IGFyZSB1c2luZyBhIG1vbm9zcGFjZWQgZm9udCB3aXRoIHNwYWNpbmcgZm9yIGFsaWdubWVudCwKKyAqICAgICAgeW91IGNhbiBwYXNzIHRoZSA8Y29kZT5GaWVsZFBvc2l0aW9uPC9jb2RlPiBpbiB5b3VyIGZvcm1hdCBjYWxsLCB3aXRoCisgKiAgICAgIDxjb2RlPmZpZWxkPC9jb2RlPiA9IDxjb2RlPklOVEVHRVJfRklFTEQ8L2NvZGU+LiBPbiBvdXRwdXQsCisgKiAgICAgIDxjb2RlPmdldEVuZEluZGV4PC9jb2RlPiB3aWxsIGJlIHNldCB0byB0aGUgb2Zmc2V0IGJldHdlZW4gdGhlCisgKiAgICAgIGxhc3QgY2hhcmFjdGVyIG9mIHRoZSBpbnRlZ2VyIGFuZCB0aGUgZGVjaW1hbC4gQWRkCisgKiAgICAgIChkZXNpcmVkU3BhY2VDb3VudCAtIGdldEVuZEluZGV4KSBzcGFjZXMgYXQgdGhlIGZyb250IG9mIHRoZSBzdHJpbmcuCisgKgorICogPGxpPiBJZiB5b3UgYXJlIHVzaW5nIHByb3BvcnRpb25hbCBmb250cywKKyAqICAgICAgaW5zdGVhZCBvZiBwYWRkaW5nIHdpdGggc3BhY2VzLCBtZWFzdXJlIHRoZSB3aWR0aAorICogICAgICBvZiB0aGUgc3RyaW5nIGluIHBpeGVscyBmcm9tIHRoZSBzdGFydCB0byA8Y29kZT5nZXRFbmRJbmRleDwvY29kZT4uCisgKiAgICAgIFRoZW4gbW92ZSB0aGUgcGVuIGJ5CisgKiAgICAgIChkZXNpcmVkUGl4ZWxXaWR0aCAtIHdpZHRoVG9BbGlnbm1lbnRQb2ludCkgYmVmb3JlIGRyYXdpbmcgdGhlIHRleHQuCisgKiAgICAgIEl0IGFsc28gd29ya3Mgd2hlcmUgdGhlcmUgaXMgbm8gZGVjaW1hbCwgYnV0IHBvc3NpYmx5IGFkZGl0aW9uYWwKKyAqICAgICAgY2hhcmFjdGVycyBhdCB0aGUgZW5kLCBlLmcuLCB3aXRoIHBhcmVudGhlc2VzIGluIG5lZ2F0aXZlCisgKiAgICAgIG51bWJlcnM6ICIoMTIpIiBmb3IgLTEyLgorICogPC9vbD4KKyAqCisgKiA8aDQ+U3luY2hyb25pemF0aW9uPC9oND4KKyAqIDxwPgorICogTnVtYmVyIGZvcm1hdHMgYXJlIGdlbmVyYWxseSBub3Qgc3luY2hyb25pemVkLiBJdCBpcyByZWNvbW1lbmRlZCB0byBjcmVhdGUgCisgKiBzZXBhcmF0ZSBmb3JtYXQgaW5zdGFuY2VzIGZvciBlYWNoIHRocmVhZC4gSWYgbXVsdGlwbGUgdGhyZWFkcyBhY2Nlc3MgYSBmb3JtYXQKKyAqIGNvbmN1cnJlbnRseSwgaXQgbXVzdCBiZSBzeW5jaHJvbml6ZWQgZXh0ZXJuYWxseS4gCisgKiA8cD4KKyAqCisgKiBzZWUgICAgICAgICAgRGVjaW1hbEZvcm1hdAorICogc2VlICAgICAgICAgIGphdmEudGV4dC5DaG9pY2VGb3JtYXQKKyAqIEB2ZXJzaW9uICAgICAgJFJldmlzaW9uOiAxLjEzICQKKyAqIEBhdXRob3IgICAgICAgTWFyayBEYXZpcworICogQGF1dGhvciAgICAgICBIZWxlbmEgU2hpaAorICogQGF1dGhvciAgICAgICBBbGFuIExpdQorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgTnVtYmVyRm9ybWF0IGV4dGVuZHMgRm9ybWF0eworCisgICAgLyoqCisgICAgICogRmllbGQgY29uc3RhbnQgdXNlZCB0byBjb25zdHJ1Y3QgYSBGaWVsZFBvc2l0aW9uIG9iamVjdC4gU2lnbmlmaWVzIHRoYXQKKyAgICAgKiB0aGUgcG9zaXRpb24gb2YgdGhlIGludGVnZXIgcGFydCBvZiBhIGZvcm1hdHRlZCBudW1iZXIgc2hvdWxkIGJlIHJldHVybmVkLgorICAgICAqIEBzZWUgamF2YS50ZXh0LkZpZWxkUG9zaXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJTlRFR0VSX0ZJRUxEID0gMDsKKworICAgIC8qKgorICAgICAqIEZpZWxkIGNvbnN0YW50IHVzZWQgdG8gY29uc3RydWN0IGEgRmllbGRQb3NpdGlvbiBvYmplY3QuIFNpZ25pZmllcyB0aGF0CisgICAgICogdGhlIHBvc2l0aW9uIG9mIHRoZSBmcmFjdGlvbiBwYXJ0IG9mIGEgZm9ybWF0dGVkIG51bWJlciBzaG91bGQgYmUgcmV0dXJuZWQuCisgICAgICogQHNlZSBqYXZhLnRleHQuRmllbGRQb3NpdGlvbgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZSQUNUSU9OX0ZJRUxEID0gMTsKKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPkNIQU5HRUQ8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogRm9ybWF0IGFuIG9iamVjdC4gIENoYW5nZTogcmVjb2duaXplcyA8Y29kZT5CaWdJbnRlZ2VyPC9jb2RlPgorICAgICAqIGFuZCA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3RzIG5vdy4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgU3RyaW5nQnVmZmVyIGZvcm1hdChPYmplY3QgbnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zKQorICAgIHsKKyAgICAgICAgaWYgKG51bWJlciBpbnN0YW5jZW9mIExvbmcpIHsKKyAgICAgICAgICAgIHJldHVybiBmb3JtYXQoKChMb25nKW51bWJlcikubG9uZ1ZhbHVlKCksIHRvQXBwZW5kVG8sIHBvcyk7CisgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyIGluc3RhbmNlb2YgQmlnSW50ZWdlcikgeworICAgICAgICAgICAgcmV0dXJuIGZvcm1hdCgoQmlnSW50ZWdlcikgbnVtYmVyLCB0b0FwcGVuZFRvLCBwb3MpOworICAgICAgICB9IGVsc2UgaWYgKG51bWJlciBpbnN0YW5jZW9mIGphdmEubWF0aC5CaWdEZWNpbWFsKSB7CisgICAgICAgICAgICByZXR1cm4gZm9ybWF0KChqYXZhLm1hdGguQmlnRGVjaW1hbCkgbnVtYmVyLCB0b0FwcGVuZFRvLCBwb3MpOworICAgICAgICB9IGVsc2UgaWYgKG51bWJlciBpbnN0YW5jZW9mIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCkgeworICAgICAgICAgICAgcmV0dXJuIGZvcm1hdCgoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKSBudW1iZXIsIHRvQXBwZW5kVG8sIHBvcyk7CisgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyIGluc3RhbmNlb2YgTnVtYmVyKSB7CisgICAgICAgICAgICByZXR1cm4gZm9ybWF0KCgoTnVtYmVyKW51bWJlcikuZG91YmxlVmFsdWUoKSwgdG9BcHBlbmRUbywgcG9zKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNhbm5vdCBmb3JtYXQgZ2l2ZW4gT2JqZWN0IGFzIGEgTnVtYmVyIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgT2JqZWN0IHBhcnNlT2JqZWN0KFN0cmluZyBzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJzZVBvc2l0aW9uIHBhcnNlUG9zaXRpb24pCisgICAgeworICAgICAgICByZXR1cm4gcGFyc2Uoc291cmNlLCBwYXJzZVBvc2l0aW9uKTsKKyAgICB9CisKKyAgIC8qKgorICAgICAqIFNwZWNpYWxpemF0aW9uIG9mIGZvcm1hdC4KKyAgICAgKiBAc2VlIGphdmEudGV4dC5Gb3JtYXQjZm9ybWF0CisgICAgICovCisgICAgcHVibGljIGZpbmFsIFN0cmluZyBmb3JtYXQgKGRvdWJsZSBudW1iZXIpIHsKKyAgICAgICAgcmV0dXJuIGZvcm1hdChudW1iZXIsbmV3IFN0cmluZ0J1ZmZlcigpLAorICAgICAgICAgICAgICAgICAgICAgIG5ldyBGaWVsZFBvc2l0aW9uKDApKS50b1N0cmluZygpOworICAgIH0KKworICAgLyoqCisgICAgICogU3BlY2lhbGl6YXRpb24gb2YgZm9ybWF0LgorICAgICAqIEBzZWUgamF2YS50ZXh0LkZvcm1hdCNmb3JtYXQKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgU3RyaW5nIGZvcm1hdCAobG9uZyBudW1iZXIpIHsKKyAgICAgICAgcmV0dXJuIGZvcm1hdChudW1iZXIsbmV3IFN0cmluZ0J1ZmZlcigpLAorICAgICAgICAgICAgICAgICAgICAgIG5ldyBGaWVsZFBvc2l0aW9uKDApKS50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgdG8gZm9ybWF0IGEgQmlnSW50ZWdlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgU3RyaW5nIGZvcm1hdChCaWdJbnRlZ2VyIG51bWJlcikgeworICAgICAgICByZXR1cm4gZm9ybWF0KG51bWJlciwgbmV3IFN0cmluZ0J1ZmZlcigpLAorICAgICAgICAgICAgICAgICAgICAgIG5ldyBGaWVsZFBvc2l0aW9uKDApKS50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgdG8gZm9ybWF0IGEgQmlnRGVjaW1hbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgU3RyaW5nIGZvcm1hdChqYXZhLm1hdGguQmlnRGVjaW1hbCBudW1iZXIpIHsKKyAgICAgICAgcmV0dXJuIGZvcm1hdChudW1iZXIsIG5ldyBTdHJpbmdCdWZmZXIoKSwKKyAgICAgICAgICAgICAgICAgICAgICBuZXcgRmllbGRQb3NpdGlvbigwKSkudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKiB0aGlzIGhhcyBiZWVuIHJlbW92ZWQgcGVuZGluZyBhZGRpdGlvbiBvZiBjb20uaWJtLmljdS5tYXRoIHBhY2tnZSB0byBJQ1U0SgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgdG8gZm9ybWF0IGEgQmlnRGVjaW1hbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgU3RyaW5nIGZvcm1hdChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbnVtYmVyKSB7CisgICAgICAgIHJldHVybiBmb3JtYXQobnVtYmVyLCBuZXcgU3RyaW5nQnVmZmVyKCksCisgICAgICAgICAgICAgICAgICAgICAgbmV3IEZpZWxkUG9zaXRpb24oMCkpLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAvKioKKyAgICAgKiBTcGVjaWFsaXphdGlvbiBvZiBmb3JtYXQuCisgICAgICogQHNlZSBqYXZhLnRleHQuRm9ybWF0I2Zvcm1hdAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBTdHJpbmdCdWZmZXIgZm9ybWF0KGRvdWJsZSBudW1iZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MpOworCisgICAvKioKKyAgICAgKiBTcGVjaWFsaXphdGlvbiBvZiBmb3JtYXQuCisgICAgICogQHNlZSBqYXZhLnRleHQuRm9ybWF0I2Zvcm1hdAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBTdHJpbmdCdWZmZXIgZm9ybWF0KGxvbmcgbnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zKTsKKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBGb3JtYXQgYSBCaWdJbnRlZ2VyLgorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBTdHJpbmdCdWZmZXIgZm9ybWF0KEJpZ0ludGVnZXIgbnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zKTsgCisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogRm9ybWF0IGEgQmlnRGVjaW1hbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgU3RyaW5nQnVmZmVyIGZvcm1hdChqYXZhLm1hdGguQmlnRGVjaW1hbCBudW1iZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MpOworCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIEZvcm1hdCBhIEJpZ0RlY2ltYWwuCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IFN0cmluZ0J1ZmZlciBmb3JtYXQoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG51bWJlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgdG9BcHBlbmRUbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIHBvcyk7CisgICAKKyAgIC8qKgorICAgICAqIFJldHVybnMgYSBMb25nIGlmIHBvc3NpYmxlIChlLmcuLCB3aXRoaW4gdGhlIHJhbmdlIFtMb25nLk1JTl9WQUxVRSwKKyAgICAgKiBMb25nLk1BWF9WQUxVRV0gYW5kIHdpdGggbm8gZGVjaW1hbHMpLCBvdGhlcndpc2UgYSBEb3VibGUuCisgICAgICogSWYgSW50ZWdlck9ubHkgaXMgc2V0LCB3aWxsIHN0b3AgYXQgYSBkZWNpbWFsCisgICAgICogcG9pbnQgKG9yIGVxdWl2YWxlbnQ7IGUuZy4sIGZvciByYXRpb25hbCBudW1iZXJzICIxIDIvMyIsIHdpbGwgc3RvcAorICAgICAqIGFmdGVyIHRoZSAxKS4KKyAgICAgKiBEb2VzIG5vdCB0aHJvdyBhbiBleGNlcHRpb247IGlmIG5vIG9iamVjdCBjYW4gYmUgcGFyc2VkLCBpbmRleCBpcworICAgICAqIHVuY2hhbmdlZCEKKyAgICAgKiBAc2VlICNpc1BhcnNlSW50ZWdlck9ubHkKKyAgICAgKiBAc2VlIGphdmEudGV4dC5Gb3JtYXQjcGFyc2VPYmplY3QKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgTnVtYmVyIHBhcnNlKFN0cmluZyB0ZXh0LCBQYXJzZVBvc2l0aW9uIHBhcnNlUG9zaXRpb24pOworCisgICAgLyoqCisgICAgICogUGFyc2VzIHRleHQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBnaXZlbiBzdHJpbmcgdG8gcHJvZHVjZSBhIG51bWJlci4KKyAgICAgKiBUaGUgbWV0aG9kIG1heSBub3QgdXNlIHRoZSBlbnRpcmUgdGV4dCBvZiB0aGUgZ2l2ZW4gc3RyaW5nLgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgQSBTdHJpbmcgd2hvc2UgYmVnaW5uaW5nIHNob3VsZCBiZSBwYXJzZWQuCisgICAgICogQHJldHVybiBBIE51bWJlciBwYXJzZWQgZnJvbSB0aGUgc3RyaW5nLgorICAgICAqIEBleGNlcHRpb24gUGFyc2VFeGNlcHRpb24gaWYgdGhlIGJlZ2lubmluZyBvZiB0aGUgc3BlY2lmaWVkIHN0cmluZyAKKyAgICAgKiBjYW5ub3QgYmUgcGFyc2VkLgorICAgICAqIEBzZWUgI2Zvcm1hdAorICAgICAqLworICAgIC8vQnVnIDQzNzUzOTkgW1JpY2hhcmQvR0NMXQorICAgIHB1YmxpYyBOdW1iZXIgcGFyc2UoU3RyaW5nIHRleHQpIHRocm93cyBQYXJzZUV4Y2VwdGlvbiB7CisgICAgICAgIFBhcnNlUG9zaXRpb24gcGFyc2VQb3NpdGlvbiA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICBOdW1iZXIgcmVzdWx0ID0gcGFyc2UodGV4dCwgcGFyc2VQb3NpdGlvbik7CisgICAgICAgIGlmIChwYXJzZVBvc2l0aW9uLmdldEluZGV4KCkgPT0gMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFBhcnNlRXhjZXB0aW9uKCJVbnBhcnNlYWJsZSBudW1iZXI6IFwiIiArIHRleHQgKyAiXCIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vUFA6cGFyc2VQb3NpdGlvbi5lcnJvckluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIGZvcm1hdCB3aWxsIHBhcnNlIG51bWJlcnMgYXMgaW50ZWdlcnMgb25seS4KKyAgICAgKiBGb3IgZXhhbXBsZSBpbiB0aGUgRW5nbGlzaCBsb2NhbGUsIHdpdGggUGFyc2VJbnRlZ2VyT25seSB0cnVlLCB0aGUKKyAgICAgKiBzdHJpbmcgIjEyMzQuIiB3b3VsZCBiZSBwYXJzZWQgYXMgdGhlIGludGVnZXIgdmFsdWUgMTIzNCBhbmQgcGFyc2luZworICAgICAqIHdvdWxkIHN0b3AgYXQgdGhlICIuIiBjaGFyYWN0ZXIuICBPZiBjb3Vyc2UsIHRoZSBleGFjdCBmb3JtYXQgYWNjZXB0ZWQKKyAgICAgKiBieSB0aGUgcGFyc2Ugb3BlcmF0aW9uIGlzIGxvY2FsZSBkZXBlbmRhbnQgYW5kIGRldGVybWluZWQgYnkgc3ViLWNsYXNzZXMKKyAgICAgKiBvZiBOdW1iZXJGb3JtYXQuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNQYXJzZUludGVnZXJPbmx5KCkgeworICAgICAgICByZXR1cm4gcGFyc2VJbnRlZ2VyT25seTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHdoZXRoZXIgb3Igbm90IG51bWJlcnMgc2hvdWxkIGJlIHBhcnNlZCBhcyBpbnRlZ2VycyBvbmx5LgorICAgICAqIEBzZWUgI2lzUGFyc2VJbnRlZ2VyT25seQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFBhcnNlSW50ZWdlck9ubHkoYm9vbGVhbiB2YWx1ZSkgeworICAgICAgICBwYXJzZUludGVnZXJPbmx5ID0gdmFsdWU7CisgICAgfQorCisgICAgLy89PT09PT09PT09PT09PSBMb2NhbGUgU3R1ZmYgPT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBkZWZhdWx0IG51bWJlciBmb3JtYXQgZm9yIHRoZSBjdXJyZW50IGRlZmF1bHQgbG9jYWxlLgorICAgICAqIFRoZSBkZWZhdWx0IGZvcm1hdCBpcyBvbmUgb2YgdGhlIHN0eWxlcyBwcm92aWRlZCBieSB0aGUgb3RoZXIKKyAgICAgKiBmYWN0b3J5IG1ldGhvZHM6IGdldE51bWJlckluc3RhbmNlLCBnZXRJbnRlZ2VySW5zdGFuY2UsCisgICAgICogZ2V0Q3VycmVuY3lJbnN0YW5jZSBvciBnZXRQZXJjZW50SW5zdGFuY2UuCisgICAgICogRXhhY3RseSB3aGljaCBvbmUgaXMgbG9jYWxlIGRlcGVuZGFudC4KKyAgICAgKi8KKyAgICAvL0J1ZyA0NDA4MDY2IFtSaWNoYXJkL0dDTF0KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIE51bWJlckZvcm1hdCBnZXRJbnN0YW5jZSgpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCksIE5VTUJFUlNUWUxFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBkZWZhdWx0IG51bWJlciBmb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIFRoZSBkZWZhdWx0IGZvcm1hdCBpcyBvbmUgb2YgdGhlIHN0eWxlcyBwcm92aWRlZCBieSB0aGUgb3RoZXIKKyAgICAgKiBmYWN0b3J5IG1ldGhvZHM6IGdldE51bWJlckluc3RhbmNlLCBnZXRDdXJyZW5jeUluc3RhbmNlIG9yIGdldFBlcmNlbnRJbnN0YW5jZS4KKyAgICAgKiBFeGFjdGx5IHdoaWNoIG9uZSBpcyBsb2NhbGUgZGVwZW5kYW50LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldEluc3RhbmNlKExvY2FsZSBpbkxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoaW5Mb2NhbGUsIE5VTUJFUlNUWUxFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgZ2VuZXJhbC1wdXJwb3NlIG51bWJlciBmb3JtYXQgZm9yIHRoZSBjdXJyZW50IGRlZmF1bHQgbG9jYWxlLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldE51bWJlckluc3RhbmNlKCkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSwgTlVNQkVSU1RZTEUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBnZW5lcmFsLXB1cnBvc2UgbnVtYmVyIGZvcm1hdCBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0TnVtYmVySW5zdGFuY2UoTG9jYWxlIGluTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShpbkxvY2FsZSwgTlVNQkVSU1RZTEUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYW4gaW50ZWdlciBudW1iZXIgZm9ybWF0IGZvciB0aGUgY3VycmVudCBkZWZhdWx0IGxvY2FsZS4gVGhlCisgICAgICogcmV0dXJuZWQgbnVtYmVyIGZvcm1hdCBpcyBjb25maWd1cmVkIHRvIHJvdW5kIGZsb2F0aW5nIHBvaW50IG51bWJlcnMKKyAgICAgKiB0byB0aGUgbmVhcmVzdCBpbnRlZ2VyIHVzaW5nIElFRUUgaGFsZi1ldmVuIHJvdW5kaW5nIChzZWUge0BsaW5rIAorICAgICAqIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCNST1VORF9IQUxGX0VWRU4gUk9VTkRfSEFMRl9FVkVOfSkgZm9yIGZvcm1hdHRpbmcsCisgICAgICogYW5kIHRvIHBhcnNlIG9ubHkgdGhlIGludGVnZXIgcGFydCBvZiBhbiBpbnB1dCBzdHJpbmcgKHNlZSB7QGxpbmsKKyAgICAgKiAjaXNQYXJzZUludGVnZXJPbmx5IGlzUGFyc2VJbnRlZ2VyT25seX0pLgorICAgICAqCisgICAgICogQHJldHVybiBhIG51bWJlciBmb3JtYXQgZm9yIGludGVnZXIgdmFsdWVzCisgICAgICovCisgICAgLy9CdWcgNDQwODA2NiBbUmljaGFyZC9HQ0xdCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0SW50ZWdlckluc3RhbmNlKCkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSwgSU5URUdFUlNUWUxFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGFuIGludGVnZXIgbnVtYmVyIGZvcm1hdCBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuIFRoZQorICAgICAqIHJldHVybmVkIG51bWJlciBmb3JtYXQgaXMgY29uZmlndXJlZCB0byByb3VuZCBmbG9hdGluZyBwb2ludCBudW1iZXJzCisgICAgICogdG8gdGhlIG5lYXJlc3QgaW50ZWdlciB1c2luZyBJRUVFIGhhbGYtZXZlbiByb3VuZGluZyAoc2VlIHtAbGluayAKKyAgICAgKiBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjUk9VTkRfSEFMRl9FVkVOIFJPVU5EX0hBTEZfRVZFTn0pIGZvciBmb3JtYXR0aW5nLAorICAgICAqIGFuZCB0byBwYXJzZSBvbmx5IHRoZSBpbnRlZ2VyIHBhcnQgb2YgYW4gaW5wdXQgc3RyaW5nIChzZWUge0BsaW5rCisgICAgICogI2lzUGFyc2VJbnRlZ2VyT25seSBpc1BhcnNlSW50ZWdlck9ubHl9KS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbkxvY2FsZSB0aGUgbG9jYWxlIGZvciB3aGljaCBhIG51bWJlciBmb3JtYXQgaXMgbmVlZGVkCisgICAgICogQHJldHVybiBhIG51bWJlciBmb3JtYXQgZm9yIGludGVnZXIgdmFsdWVzCisgICAgICovCisgICAgLy9CdWcgNDQwODA2NiBbUmljaGFyZC9HQ0xdCisgICAgcHVibGljIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0SW50ZWdlckluc3RhbmNlKExvY2FsZSBpbkxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoaW5Mb2NhbGUsIElOVEVHRVJTVFlMRSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGN1cnJlbmN5IGZvcm1hdCBmb3IgdGhlIGN1cnJlbnQgZGVmYXVsdCBsb2NhbGUuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0Q3VycmVuY3lJbnN0YW5jZSgpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCksIENVUlJFTkNZU1RZTEUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBjdXJyZW5jeSBmb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldEN1cnJlbmN5SW5zdGFuY2UoTG9jYWxlIGluTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShpbkxvY2FsZSwgQ1VSUkVOQ1lTVFlMRSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHBlcmNlbnRhZ2UgZm9ybWF0IGZvciB0aGUgY3VycmVudCBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIE51bWJlckZvcm1hdCBnZXRQZXJjZW50SW5zdGFuY2UoKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShMb2NhbGUuZ2V0RGVmYXVsdCgpLCBQRVJDRU5UU1RZTEUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBwZXJjZW50YWdlIGZvcm1hdCBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0UGVyY2VudEluc3RhbmNlKExvY2FsZSBpbkxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoaW5Mb2NhbGUsIFBFUkNFTlRTVFlMRSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFJldHVybnMgYSBzY2llbnRpZmljIGZvcm1hdCBmb3IgdGhlIGN1cnJlbnQgZGVmYXVsdCBsb2NhbGUuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0U2NpZW50aWZpY0luc3RhbmNlKCkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSwgU0NJRU5USUZJQ1NUWUxFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogUmV0dXJucyBhIHNjaWVudGlmaWMgZm9ybWF0IGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIE51bWJlckZvcm1hdCBnZXRTY2llbnRpZmljSW5zdGFuY2UoTG9jYWxlIGluTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShpbkxvY2FsZSwgU0NJRU5USUZJQ1NUWUxFKTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIEdldCB0aGUgc2V0IG9mIExvY2FsZXMgZm9yIHdoaWNoIE51bWJlckZvcm1hdHMgYXJlIGluc3RhbGxlZAorICAgICAqIEByZXR1cm4gYXZhaWxhYmxlIGxvY2FsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIExvY2FsZVtdIGdldEF2YWlsYWJsZUxvY2FsZXMoKSB7CisgICAgICAgIHJldHVybiBJQ1VMb2NhbGVEYXRhLmdldEF2YWlsYWJsZUxvY2FsZXMoIk51bWJlclBhdHRlcm5zIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIGhhc2hDb2RlCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgcmV0dXJuIG1heGltdW1JbnRlZ2VyRGlnaXRzICogMzcgKyBtYXhGcmFjdGlvbkRpZ2l0czsKKyAgICAgICAgLy8ganVzdCBlbm91Z2ggZmllbGRzIGZvciBhIHJlYXNvbmFibGUgZGlzdHJpYnV0aW9uCisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIGVxdWFscworICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKSB7CisgICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAodGhpcyA9PSBvYmopCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKGdldENsYXNzKCkgIT0gb2JqLmdldENsYXNzKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIE51bWJlckZvcm1hdCBvdGhlciA9IChOdW1iZXJGb3JtYXQpIG9iajsKKyAgICAgICAgcmV0dXJuIChtYXhpbXVtSW50ZWdlckRpZ2l0cyA9PSBvdGhlci5tYXhpbXVtSW50ZWdlckRpZ2l0cworICAgICAgICAgICAgJiYgbWluaW11bUludGVnZXJEaWdpdHMgPT0gb3RoZXIubWluaW11bUludGVnZXJEaWdpdHMKKyAgICAgICAgICAgICYmIG1heGltdW1GcmFjdGlvbkRpZ2l0cyA9PSBvdGhlci5tYXhpbXVtRnJhY3Rpb25EaWdpdHMKKyAgICAgICAgICAgICYmIG1pbmltdW1GcmFjdGlvbkRpZ2l0cyA9PSBvdGhlci5taW5pbXVtRnJhY3Rpb25EaWdpdHMKKyAgICAgICAgICAgICYmIGdyb3VwaW5nVXNlZCA9PSBvdGhlci5ncm91cGluZ1VzZWQKKyAgICAgICAgICAgICYmIHBhcnNlSW50ZWdlck9ubHkgPT0gb3RoZXIucGFyc2VJbnRlZ2VyT25seSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIENsb25lYWJsZQorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKQorICAgIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG90aGVyID0gKE51bWJlckZvcm1hdCkgc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgcmV0dXJuIG90aGVyOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiBncm91cGluZyBpcyB1c2VkIGluIHRoaXMgZm9ybWF0LiBGb3IgZXhhbXBsZSwgaW4gdGhlCisgICAgICogRW5nbGlzaCBsb2NhbGUsIHdpdGggZ3JvdXBpbmcgb24sIHRoZSBudW1iZXIgMTIzNDU2NyBtaWdodCBiZSBmb3JtYXR0ZWQKKyAgICAgKiBhcyAiMSwyMzQsNTY3Ii4gVGhlIGdyb3VwaW5nIHNlcGFyYXRvciBhcyB3ZWxsIGFzIHRoZSBzaXplIG9mIGVhY2ggZ3JvdXAKKyAgICAgKiBpcyBsb2NhbGUgZGVwZW5kYW50IGFuZCBpcyBkZXRlcm1pbmVkIGJ5IHN1Yi1jbGFzc2VzIG9mIE51bWJlckZvcm1hdC4KKyAgICAgKiBAc2VlICNzZXRHcm91cGluZ1VzZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0dyb3VwaW5nVXNlZCgpIHsKKyAgICAgICAgcmV0dXJuIGdyb3VwaW5nVXNlZDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgd2hldGhlciBvciBub3QgZ3JvdXBpbmcgd2lsbCBiZSB1c2VkIGluIHRoaXMgZm9ybWF0LgorICAgICAqIEBzZWUgI2lzR3JvdXBpbmdVc2VkCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0R3JvdXBpbmdVc2VkKGJvb2xlYW4gbmV3VmFsdWUpIHsKKyAgICAgICAgZ3JvdXBpbmdVc2VkID0gbmV3VmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbWF4aW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGludGVnZXIgcG9ydGlvbiBvZiBhCisgICAgICogbnVtYmVyLgorICAgICAqIEBzZWUgI3NldE1heGltdW1JbnRlZ2VyRGlnaXRzCisgICAgICovCisgICAgcHVibGljIGludCBnZXRNYXhpbXVtSW50ZWdlckRpZ2l0cygpIHsKKyAgICAgICAgcmV0dXJuIG1heGltdW1JbnRlZ2VyRGlnaXRzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhbGxvd2VkIGluIHRoZSBpbnRlZ2VyIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gTWF4aW11bUludGVnZXJEaWdpdHMgbXVzdCBiZSA+PSBtaW5pbXVtSW50ZWdlckRpZ2l0cy4gIElmIHRoZQorICAgICAqIG5ldyB2YWx1ZSBmb3IgbWF4aW11bUludGVnZXJEaWdpdHMgaXMgbGVzcyB0aGFuIHRoZSBjdXJyZW50IHZhbHVlCisgICAgICogb2YgbWluaW11bUludGVnZXJEaWdpdHMsIHRoZW4gbWluaW11bUludGVnZXJEaWdpdHMgd2lsbCBhbHNvIGJlIHNldCB0bworICAgICAqIHRoZSBuZXcgdmFsdWUuCisgICAgICogQHBhcmFtIG5ld1ZhbHVlIHRoZSBtYXhpbXVtIG51bWJlciBvZiBpbnRlZ2VyIGRpZ2l0cyB0byBiZSBzaG93bjsgaWYKKyAgICAgKiBsZXNzIHRoYW4gemVybywgdGhlbiB6ZXJvIGlzIHVzZWQuIFRoZSBjb25jcmV0ZSBzdWJjbGFzcyBtYXkgZW5mb3JjZSBhbgorICAgICAqIHVwcGVyIGxpbWl0IHRvIHRoaXMgdmFsdWUgYXBwcm9wcmlhdGUgdG8gdGhlIG51bWVyaWMgdHlwZSBiZWluZyBmb3JtYXR0ZWQuCisgICAgICogQHNlZSAjZ2V0TWF4aW11bUludGVnZXJEaWdpdHMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNYXhpbXVtSW50ZWdlckRpZ2l0cyhpbnQgbmV3VmFsdWUpIHsKKyAgICAgICAgbWF4aW11bUludGVnZXJEaWdpdHMgPSBNYXRoLm1heCgwLG5ld1ZhbHVlKTsKKyAgICAgICAgaWYgKG1pbmltdW1JbnRlZ2VyRGlnaXRzID4gbWF4aW11bUludGVnZXJEaWdpdHMpCisgICAgICAgICAgICBtaW5pbXVtSW50ZWdlckRpZ2l0cyA9IG1heGltdW1JbnRlZ2VyRGlnaXRzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG1pbmltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhbGxvd2VkIGluIHRoZSBpbnRlZ2VyIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4KKyAgICAgKiBAc2VlICNzZXRNaW5pbXVtSW50ZWdlckRpZ2l0cworICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TWluaW11bUludGVnZXJEaWdpdHMoKSB7CisgICAgICAgIHJldHVybiBtaW5pbXVtSW50ZWdlckRpZ2l0czsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBtaW5pbXVtIG51bWJlciBvZiBkaWdpdHMgYWxsb3dlZCBpbiB0aGUgaW50ZWdlciBwb3J0aW9uIG9mIGEKKyAgICAgKiBudW1iZXIuICBNaW5pbXVtSW50ZWdlckRpZ2l0cyBtdXN0IGJlIDw9IG1heGltdW1JbnRlZ2VyRGlnaXRzLiAgSWYgdGhlCisgICAgICogbmV3IHZhbHVlIGZvciBtaW5pbXVtSW50ZWdlckRpZ2l0cyBleGNlZWRzIHRoZSBjdXJyZW50IHZhbHVlCisgICAgICogb2YgbWF4aW11bUludGVnZXJEaWdpdHMsIHRoZW4gbWF4aW11bUludGVnZXJEaWdpdHMgd2lsbCBhbHNvIGJlIHNldCB0bworICAgICAqIHRoZSBuZXcgdmFsdWUKKyAgICAgKiBAcGFyYW0gbmV3VmFsdWUgdGhlIG1pbmltdW0gbnVtYmVyIG9mIGludGVnZXIgZGlnaXRzIHRvIGJlIHNob3duOyBpZgorICAgICAqIGxlc3MgdGhhbiB6ZXJvLCB0aGVuIHplcm8gaXMgdXNlZC4gVGhlIGNvbmNyZXRlIHN1YmNsYXNzIG1heSBlbmZvcmNlIGFuCisgICAgICogdXBwZXIgbGltaXQgdG8gdGhpcyB2YWx1ZSBhcHByb3ByaWF0ZSB0byB0aGUgbnVtZXJpYyB0eXBlIGJlaW5nIGZvcm1hdHRlZC4KKyAgICAgKiBAc2VlICNnZXRNaW5pbXVtSW50ZWdlckRpZ2l0cworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1pbmltdW1JbnRlZ2VyRGlnaXRzKGludCBuZXdWYWx1ZSkgeworICAgICAgICBtaW5pbXVtSW50ZWdlckRpZ2l0cyA9IE1hdGgubWF4KDAsbmV3VmFsdWUpOworICAgICAgICBpZiAobWluaW11bUludGVnZXJEaWdpdHMgPiBtYXhpbXVtSW50ZWdlckRpZ2l0cykKKyAgICAgICAgICAgIG1heGltdW1JbnRlZ2VyRGlnaXRzID0gbWluaW11bUludGVnZXJEaWdpdHM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbWF4aW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGZyYWN0aW9uIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4KKyAgICAgKiBAc2VlICNzZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpIHsKKyAgICAgICAgcmV0dXJuIG1heGltdW1GcmFjdGlvbkRpZ2l0czsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBkaWdpdHMgYWxsb3dlZCBpbiB0aGUgZnJhY3Rpb24gcG9ydGlvbiBvZiBhCisgICAgICogbnVtYmVyLiBNYXhpbXVtRnJhY3Rpb25EaWdpdHMgbXVzdCBiZSA+PSBtaW5pbXVtRnJhY3Rpb25EaWdpdHMuICBJZiB0aGUKKyAgICAgKiBuZXcgdmFsdWUgZm9yIG1heGltdW1GcmFjdGlvbkRpZ2l0cyBpcyBsZXNzIHRoYW4gdGhlIGN1cnJlbnQgdmFsdWUKKyAgICAgKiBvZiBtaW5pbXVtRnJhY3Rpb25EaWdpdHMsIHRoZW4gbWluaW11bUZyYWN0aW9uRGlnaXRzIHdpbGwgYWxzbyBiZSBzZXQgdG8KKyAgICAgKiB0aGUgbmV3IHZhbHVlLgorICAgICAqIEBwYXJhbSBuZXdWYWx1ZSB0aGUgbWF4aW11bSBudW1iZXIgb2YgZnJhY3Rpb24gZGlnaXRzIHRvIGJlIHNob3duOyBpZgorICAgICAqIGxlc3MgdGhhbiB6ZXJvLCB0aGVuIHplcm8gaXMgdXNlZC4gVGhlIGNvbmNyZXRlIHN1YmNsYXNzIG1heSBlbmZvcmNlIGFuCisgICAgICogdXBwZXIgbGltaXQgdG8gdGhpcyB2YWx1ZSBhcHByb3ByaWF0ZSB0byB0aGUgbnVtZXJpYyB0eXBlIGJlaW5nIGZvcm1hdHRlZC4KKyAgICAgKiBAc2VlICNnZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoaW50IG5ld1ZhbHVlKSB7CisgICAgICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0cyA9IE1hdGgubWF4KDAsbmV3VmFsdWUpOworICAgICAgICBpZiAobWF4aW11bUZyYWN0aW9uRGlnaXRzIDwgbWluaW11bUZyYWN0aW9uRGlnaXRzKQorICAgICAgICAgICAgbWluaW11bUZyYWN0aW9uRGlnaXRzID0gbWF4aW11bUZyYWN0aW9uRGlnaXRzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG1pbmltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhbGxvd2VkIGluIHRoZSBmcmFjdGlvbiBwb3J0aW9uIG9mIGEKKyAgICAgKiBudW1iZXIuCisgICAgICogQHNlZSAjc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzCisgICAgICovCisgICAgcHVibGljIGludCBnZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoKSB7CisgICAgICAgIHJldHVybiBtaW5pbXVtRnJhY3Rpb25EaWdpdHM7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGZyYWN0aW9uIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gTWluaW11bUZyYWN0aW9uRGlnaXRzIG11c3QgYmUgPD0gbWF4aW11bUZyYWN0aW9uRGlnaXRzLiAgSWYgdGhlCisgICAgICogbmV3IHZhbHVlIGZvciBtaW5pbXVtRnJhY3Rpb25EaWdpdHMgZXhjZWVkcyB0aGUgY3VycmVudCB2YWx1ZQorICAgICAqIG9mIG1heGltdW1GcmFjdGlvbkRpZ2l0cywgdGhlbiBtYXhpbXVtSW50ZWdlckRpZ2l0cyB3aWxsIGFsc28gYmUgc2V0IHRvCisgICAgICogdGhlIG5ldyB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gbmV3VmFsdWUgdGhlIG1pbmltdW0gbnVtYmVyIG9mIGZyYWN0aW9uIGRpZ2l0cyB0byBiZSBzaG93bjsgaWYKKyAgICAgKiBsZXNzIHRoYW4gemVybywgdGhlbiB6ZXJvIGlzIHVzZWQuIFRoZSBjb25jcmV0ZSBzdWJjbGFzcyBtYXkgZW5mb3JjZSBhbgorICAgICAqIHVwcGVyIGxpbWl0IHRvIHRoaXMgdmFsdWUgYXBwcm9wcmlhdGUgdG8gdGhlIG51bWVyaWMgdHlwZSBiZWluZyBmb3JtYXR0ZWQuCisgICAgICogQHNlZSAjZ2V0TWluaW11bUZyYWN0aW9uRGlnaXRzCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKGludCBuZXdWYWx1ZSkgeworICAgICAgICBtaW5pbXVtRnJhY3Rpb25EaWdpdHMgPSBNYXRoLm1heCgwLG5ld1ZhbHVlKTsKKyAgICAgICAgaWYgKG1heGltdW1GcmFjdGlvbkRpZ2l0cyA8IG1pbmltdW1GcmFjdGlvbkRpZ2l0cykKKyAgICAgICAgICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0cyA9IG1pbmltdW1GcmFjdGlvbkRpZ2l0czsKKyAgICB9CisKKyAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PXByaXZhdGVzPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLy8gW05FV10KKyAgICBwcml2YXRlIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0SW5zdGFuY2UoTG9jYWxlIGRlc2lyZWRMb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjaG9pY2UpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBmb3JtYXQgPSBuZXcgRGVjaW1hbEZvcm1hdChnZXRQYXR0ZXJuKGRlc2lyZWRMb2NhbGUsIGNob2ljZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoZGVzaXJlZExvY2FsZSkpOworICAgICAgICAvKkJ1ZyA0NDA4MDY2CisgICAgICAgICBBZGQgY29kZXMgZm9yIHRoZSBuZXcgbWV0aG9kIGdldEludGVnZXJJbnN0YW5jZSgpIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgKi8KKyAgICAgICAgaWYgKGNob2ljZSA9PSBJTlRFR0VSU1RZTEUpIHsKKyAgICAgICAgICAgIGZvcm1hdC5zZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoMCk7CisgICAgICAgICAgICBmb3JtYXQuc2V0RGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duKGZhbHNlKTsKKyAgICAgICAgICAgIGZvcm1hdC5zZXRQYXJzZUludGVnZXJPbmx5KHRydWUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmb3JtYXQ7CisgICAgfQorCisgICAgLy8gW05FV10KKyAgICBwcm90ZWN0ZWQgc3RhdGljIFN0cmluZyBnZXRQYXR0ZXJuKExvY2FsZSBmb3JMb2NhbGUsIGludCBjaG9pY2UpIHsKKworICAgICAgICAvKiBUaGUgZm9sbG93aW5nIGNvZGUgdGFrZXMgY2FyZSBvZiBhIGZldyBjYXNlcyB3aGVyZSB0aGUKKyAgICAgICAgICogcmVzb3VyY2UgZGF0YSBpbiB0aGUgdW5kZXJseWluZyBKREsgbGFncyB0aGUgbmV3IGZlYXR1cmVzCisgICAgICAgICAqIHdlIGhhdmUgYWRkZWQgdG8gSUNVNEo6IHNjaWVudGlmaWMgbm90YXRpb24sIHJvdW5kaW5nLCBhbmQKKyAgICAgICAgICogc2Vjb25kYXJ5IGdyb3VwaW5nLgorICAgICAgICAgKgorICAgICAgICAgKiBXZSBkZXRlY3QgdGhlc2UgY2FzZXMgaGVyZSBhbmQgcmV0dXJuIHZhcmlvdXMgaGFyZC1jb2RlZAorICAgICAgICAgKiByZXNvdXJjZSBkYXRhLiAgVGhpcyBpcyB0aGUgc2ltcGxlc3Qgc29sdXRpb24gZm9yIG5vdywgYnV0CisgICAgICAgICAqIGl0IGlzIG5vdCBhIGdvb2QgbG9uZy10ZXJtIG1lY2hhbmlzbS4KKyAgICAgICAgICogCisgICAgICAgICAqIFdlIHNob3VsZCByZXBsYWNlIHRoaXMgY29kZSB3aXRoIGEgZGF0YS1kcml2ZW4gbWVjaGFuaXNtCisgICAgICAgICAqIHRoYXQgcmVhZHMgdGhlIGJ1bmRsZSBjb20uaWJtLmljdS5pbXBsLmRhdGEuTG9jYWxlRWxlbWVudHMKKyAgICAgICAgICogYW5kIHBhcnNlcyBhbiBleGNlcHRpb24gdGFibGUgdGhhdCBvdmVycmlkZXMgdGhlIHN0YW5kYXJkCisgICAgICAgICAqIGRhdGEgYXQgamF2YS50ZXh0LnJlc291cmNlLkxvY2FsZUVsZW1lbnRzKi5qYXZhLgorICAgICAgICAgKiBBbHRlcm5hdGl2ZWx5LCB3ZSBzaG91bGQgY3JlYXRlIG91ciBvd24gY29weSBvZiB0aGUKKyAgICAgICAgICogcmVzb3VyY2UgZGF0YSwgYW5kIHVzZSB0aGF0IGV4Y2x1c2l2ZWx5LgorICAgICAgICAgKi8KKworICAgICAgICAvLyBURU1QT1JBUlksIHVudGlsIHdlIGdldCBzY2llbnRpZmljIHBhdHRlcm5zIGludG8gdGhlIG1haW4KKyAgICAgICAgLy8gcmVzb3VyY2VzOiAgUmV0cmlldmUgc2NpZW50aWZpYyBwYXR0ZXJucyBmcm9tIG91ciByZXNvdXJjZXMuCisgICAgICAgIGlmIChjaG9pY2UgPT0gU0NJRU5USUZJQ1NUWUxFKSB7CisgICAgICAgICAgICAvLyBUZW1wb3JhcmlseSBoYXJkIGNvZGU7IHJldHJpZXZlIGZyb20gcmVzb3VyY2UgbGF0ZXIKKyAgICAgICAgICAgIC8qRm9yIElDVSBjb21wYXRpYmlsaXR5IFtSaWNoYXJkL0dDTF0qLworICAgICAgICAgICAgcmV0dXJuICIjRTAiOworICAgICAgICAgICAgLy8gcmV0dXJuIE51bWJlckZvcm1hdC5nZXRCYXNlU3RyaW5nQXJyYXkoIk51bWJlclBhdHRlcm5zIilbU0NJRU5USUZJQ1NUWUxFXTsKKyAgICAgICAgfQorICAgICAgICAvLyBURU1QT1JBUlk6IFVzZSByb3VuZGluZyBmb3IgU3dpc3MgY3VycmVuY3kKKyAgICAgICAgLy9pZiAoY2hvaWNlID09IENVUlJFTkNZU1RZTEUgJiYKKyAgICAgICAgLy8gICAgZm9yTG9jYWxlLmdldENvdW50cnkoKS5lcXVhbHMoIkNIIikpIHsKKyAgICAgICAgLy8gICAgcmV0dXJuICInRnIuICcjLCMjMC4wNTsnRnIuLScjLCMjMC4wNSI7CisgICAgICAgIC8vfQorICAgICAgICAvLyBURU1QT1JBUlk6IFNwZWNpYWwgY2FzZSBJTiBudW1iZXIgZm9ybWF0CisgICAgICAgIC8vaWYgKGNob2ljZSA9PSBOVU1CRVJTVFlMRSAmJgorICAgICAgICAvLyAgICBmb3JMb2NhbGUuZ2V0Q291bnRyeSgpLmVxdWFscygiSU4iKSkgeworICAgICAgICAvLyAgICByZXR1cm4gIiMsIyMsIyMwLiMjIyI7CisgICAgICAgIC8vfQorCisJCS8vIHtkbGZ9CisJCVJlc291cmNlQnVuZGxlIHJiID0gSUNVTG9jYWxlRGF0YS5nZXRMb2NhbGVFbGVtZW50cyhmb3JMb2NhbGUpOworCQlTdHJpbmdbXSBudW1iZXJQYXR0ZXJucyA9IHJiLmdldFN0cmluZ0FycmF5KCJOdW1iZXJQYXR0ZXJucyIpOworCisJCS8qIHtkbGZ9CisgICAgICAgIC8vIFRyeSB0aGUgY2FjaGUgZmlyc3QKKyAgICAgICAgU3RyaW5nW10gbnVtYmVyUGF0dGVybnMgPSAoU3RyaW5nW10pIGNhY2hlZExvY2FsZURhdGEuZ2V0KGZvckxvY2FsZSk7CisgICAgICAgIGlmIChudW1iZXJQYXR0ZXJucyA9PSBudWxsKSB7CisgICAgICAgICAgICBPdmVybGF5QnVuZGxlIHJlc291cmNlID0gbmV3IE92ZXJsYXlCdW5kbGUobmV3IFN0cmluZ1tdCisgICAgICAgICAgICAgICAgeyAiY29tLmlibS5pY3UuaW1wbC5kYXRhLkxvY2FsZUVsZW1lbnRzIiwgUkVTT1VSQ0VfQkFTRSB9LCBmb3JMb2NhbGUpOworICAgICAgICAgICAgbnVtYmVyUGF0dGVybnMgPSByZXNvdXJjZS5nZXRTdHJpbmdBcnJheSgiTnVtYmVyUGF0dGVybnMiKTsKKyAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgY2FjaGUKKyAgICAgICAgICAgIGNhY2hlZExvY2FsZURhdGEucHV0KGZvckxvY2FsZSwgbnVtYmVyUGF0dGVybnMpOyAKKyAgICAgICAgfQorCQkqLworCisgICAgICAgIC8qQnVnIDQ0MDgwNjYKKyAgICAgICAgIEFkZCBjb2RlcyBmb3IgdGhlIG5ldyBtZXRob2QgZ2V0SW50ZWdlckluc3RhbmNlKCkgW1JpY2hhcmQvR0NMXQorICAgICAgICAqLworICAgICAgICBpbnQgZW50cnkgPSAoY2hvaWNlID09IElOVEVHRVJTVFlMRSkgPyBOVU1CRVJTVFlMRSA6IGNob2ljZTsgLy9bUmljaGFyZC9HQ0xdCisgICAgICAgIHJldHVybiBudW1iZXJQYXR0ZXJuc1tlbnRyeV07IC8vW1JpY2hhcmQvR0NMXQorICAgIH0KKworICAgIC8qKgorICAgICAqIEZpcnN0LCByZWFkIGluIHRoZSBkZWZhdWx0IHNlcmlhbGl6YWJsZSBkYXRhLgorICAgICAqCisgICAgICogVGhlbiwgaWYgPGNvZGU+c2VyaWFsVmVyc2lvbk9uU3RyZWFtPC9jb2RlPiBpcyBsZXNzIHRoYW4gMSwgaW5kaWNhdGluZyB0aGF0CisgICAgICogdGhlIHN0cmVhbSB3YXMgd3JpdHRlbiBieSBKREsgMS4xLAorICAgICAqIHNldCB0aGUgPGNvZGU+aW50PC9jb2RlPiBmaWVsZHMgc3VjaCBhcyA8Y29kZT5tYXhpbXVtSW50ZWdlckRpZ2l0czwvY29kZT4KKyAgICAgKiB0byBiZSBlcXVhbCB0byB0aGUgPGNvZGU+Ynl0ZTwvY29kZT4gZmllbGRzIHN1Y2ggYXMgPGNvZGU+bWF4SW50ZWdlckRpZ2l0czwvY29kZT4sCisgICAgICogc2luY2UgdGhlIDxjb2RlPmludDwvY29kZT4gZmllbGRzIHdlcmUgbm90IHByZXNlbnQgaW4gSkRLIDEuMS4KKyAgICAgKiBGaW5hbGx5LCBzZXQgc2VyaWFsVmVyc2lvbk9uU3RyZWFtIGJhY2sgdG8gdGhlIG1heGltdW0gYWxsb3dlZCB2YWx1ZSBzbyB0aGF0CisgICAgICogZGVmYXVsdCBzZXJpYWxpemF0aW9uIHdpbGwgd29yayBwcm9wZXJseSBpZiB0aGlzIG9iamVjdCBpcyBzdHJlYW1lZCBvdXQgYWdhaW4uCisgICAgICoKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcmVhZE9iamVjdChPYmplY3RJbnB1dFN0cmVhbSBzdHJlYW0pCisgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24sIENsYXNzTm90Rm91bmRFeGNlcHRpb24KKyAgICB7CisgICAgICAgIHN0cmVhbS5kZWZhdWx0UmVhZE9iamVjdCgpOworICAgICAgICBpZiAoc2VyaWFsVmVyc2lvbk9uU3RyZWFtIDwgMSkgeworICAgICAgICAgICAgLy8gRGlkbid0IGhhdmUgYWRkaXRpb25hbCBpbnQgZmllbGRzLCByZWFzc2lnbiB0byB1c2UgdGhlbS4KKyAgICAgICAgICAgIG1heGltdW1JbnRlZ2VyRGlnaXRzID0gbWF4SW50ZWdlckRpZ2l0czsKKyAgICAgICAgICAgIG1pbmltdW1JbnRlZ2VyRGlnaXRzID0gbWluSW50ZWdlckRpZ2l0czsKKyAgICAgICAgICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0cyA9IG1heEZyYWN0aW9uRGlnaXRzOworICAgICAgICAgICAgbWluaW11bUZyYWN0aW9uRGlnaXRzID0gbWluRnJhY3Rpb25EaWdpdHM7CisgICAgICAgIH0KKyAgICAgICAgLypCdWcgNDE4NTc2MQorICAgICAgICAgIFZhbGlkYXRlIHRoZSBtaW4gYW5kIG1heCBmaWVsZHMgW1JpY2hhcmQvR0NMXQorICAgICAgICAqLworICAgICAgICBpZiAobWluaW11bUludGVnZXJEaWdpdHMgPiBtYXhpbXVtSW50ZWdlckRpZ2l0cyB8fAorICAgICAgICAgICAgbWluaW11bUZyYWN0aW9uRGlnaXRzID4gbWF4aW11bUZyYWN0aW9uRGlnaXRzIHx8CisgICAgICAgICAgICBtaW5pbXVtSW50ZWdlckRpZ2l0cyA8IDAgfHwgbWluaW11bUZyYWN0aW9uRGlnaXRzIDwgMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPYmplY3RFeGNlcHRpb24oIkRpZ2l0IGNvdW50IHJhbmdlIGludmFsaWQiKTsKKyAgICAgICAgfQorICAgICAgICBzZXJpYWxWZXJzaW9uT25TdHJlYW0gPSBjdXJyZW50U2VyaWFsVmVyc2lvbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBXcml0ZSBvdXQgdGhlIGRlZmF1bHQgc2VyaWFsaXphYmxlIGRhdGEsIGFmdGVyIGZpcnN0IHNldHRpbmcKKyAgICAgKiB0aGUgPGNvZGU+Ynl0ZTwvY29kZT4gZmllbGRzIHN1Y2ggYXMgPGNvZGU+bWF4SW50ZWdlckRpZ2l0czwvY29kZT4gdG8gYmUKKyAgICAgKiBlcXVhbCB0byB0aGUgPGNvZGU+aW50PC9jb2RlPiBmaWVsZHMgc3VjaCBhcyA8Y29kZT5tYXhpbXVtSW50ZWdlckRpZ2l0czwvY29kZT4KKyAgICAgKiAob3IgdG8gPGNvZGU+Qnl0ZS5NQVhfVkFMVUU8L2NvZGU+LCB3aGljaGV2ZXIgaXMgc21hbGxlciksIGZvciBjb21wYXRpYmlsaXR5CisgICAgICogd2l0aCB0aGUgSkRLIDEuMSB2ZXJzaW9uIG9mIHRoZSBzdHJlYW0gZm9ybWF0LgorICAgICAqCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHdyaXRlT2JqZWN0KE9iamVjdE91dHB1dFN0cmVhbSBzdHJlYW0pCisgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICB7CisgICAgICAgIG1heEludGVnZXJEaWdpdHMgPSAobWF4aW11bUludGVnZXJEaWdpdHMgPiBCeXRlLk1BWF9WQUxVRSkgPyBCeXRlLk1BWF9WQUxVRSA6CisgICAgICAgICAgICAoYnl0ZSltYXhpbXVtSW50ZWdlckRpZ2l0czsKKyAgICAgICAgbWluSW50ZWdlckRpZ2l0cyA9IChtaW5pbXVtSW50ZWdlckRpZ2l0cyA+IEJ5dGUuTUFYX1ZBTFVFKSA/IEJ5dGUuTUFYX1ZBTFVFIDoKKyAgICAgICAgICAgIChieXRlKW1pbmltdW1JbnRlZ2VyRGlnaXRzOworICAgICAgICBtYXhGcmFjdGlvbkRpZ2l0cyA9IChtYXhpbXVtRnJhY3Rpb25EaWdpdHMgPiBCeXRlLk1BWF9WQUxVRSkgPyBCeXRlLk1BWF9WQUxVRSA6CisgICAgICAgICAgICAoYnl0ZSltYXhpbXVtRnJhY3Rpb25EaWdpdHM7CisgICAgICAgIG1pbkZyYWN0aW9uRGlnaXRzID0gKG1pbmltdW1GcmFjdGlvbkRpZ2l0cyA+IEJ5dGUuTUFYX1ZBTFVFKSA/IEJ5dGUuTUFYX1ZBTFVFIDoKKyAgICAgICAgICAgIChieXRlKW1pbmltdW1GcmFjdGlvbkRpZ2l0czsKKyAgICAgICAgc3RyZWFtLmRlZmF1bHRXcml0ZU9iamVjdCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENhY2hlIHRvIGhvbGQgdGhlIE51bWJlclBhdHRlcm5zIG9mIGEgTG9jYWxlLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEhhc2h0YWJsZSBjYWNoZWRMb2NhbGVEYXRhID0gbmV3IEhhc2h0YWJsZSgzKTsKKworICAgIC8vIENvbnN0YW50cyB1c2VkIGJ5IGZhY3RvcnkgbWV0aG9kcyB0byBzcGVjaWZ5IGEgc3R5bGUgb2YgZm9ybWF0LgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOVU1CRVJTVFlMRSA9IDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENVUlJFTkNZU1RZTEUgPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBQRVJDRU5UU1RZTEUgPSAyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTQ0lFTlRJRklDU1RZTEUgPSAzOworICAgIC8qQnVnIDQ0MDgwNjYKKyAgICAgIEFkZCBGaWVsZCBmb3IgdGhlIG5ldyBtZXRob2QgZ2V0SW50ZWdlckluc3RhbmNlKCkgW1JpY2hhcmQvR0NMXQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElOVEVHRVJTVFlMRSA9IDQ7CisKKyAgICAvKioKKyAgICAgKiBUcnVlIGlmIHRoZSB0aGUgZ3JvdXBpbmcgKGkuZS4gdGhvdXNhbmRzKSBzZXBhcmF0b3IgaXMgdXNlZCB3aGVuCisgICAgICogZm9ybWF0dGluZyBhbmQgcGFyc2luZyBudW1iZXJzLgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqIEBzZWUgI2lzR3JvdXBpbmdVc2VkCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGdyb3VwaW5nVXNlZCA9IHRydWU7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGludGVnZXIgcG9ydGlvbiBvZiBhCisgICAgICogbnVtYmVyLiAgPGNvZGU+bWF4SW50ZWdlckRpZ2l0czwvY29kZT4gbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8KKyAgICAgKiA8Y29kZT5taW5JbnRlZ2VyRGlnaXRzPC9jb2RlPi4KKyAgICAgKiA8cD4KKyAgICAgKiA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgZmllbGQgZXhpc3RzIG9ubHkgZm9yIHNlcmlhbGl6YXRpb24KKyAgICAgKiBjb21wYXRpYmlsaXR5IHdpdGggSkRLIDEuMS4gIEluIEpESyAxLjIgYW5kIGhpZ2hlciwgdGhlIG5ldworICAgICAqIDxjb2RlPmludDwvY29kZT4gZmllbGQgPGNvZGU+bWF4aW11bUludGVnZXJEaWdpdHM8L2NvZGU+IGlzIHVzZWQgaW5zdGVhZC4KKyAgICAgKiBXaGVuIHdyaXRpbmcgdG8gYSBzdHJlYW0sIDxjb2RlPm1heEludGVnZXJEaWdpdHM8L2NvZGU+IGlzIHNldCB0bworICAgICAqIDxjb2RlPm1heGltdW1JbnRlZ2VyRGlnaXRzPC9jb2RlPiBvciA8Y29kZT5CeXRlLk1BWF9WQUxVRTwvY29kZT4sCisgICAgICogd2hpY2hldmVyIGlzIHNtYWxsZXIuICBXaGVuIHJlYWRpbmcgZnJvbSBhIHN0cmVhbSwgdGhpcyBmaWVsZCBpcyB1c2VkCisgICAgICogb25seSBpZiA8Y29kZT5zZXJpYWxWZXJzaW9uT25TdHJlYW08L2NvZGU+IGlzIGxlc3MgdGhhbiAxLiAKKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRNYXhpbXVtSW50ZWdlckRpZ2l0cworICAgICAqLworICAgIHByaXZhdGUgYnl0ZSAgICBtYXhJbnRlZ2VyRGlnaXRzID0gNDA7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGludGVnZXIgcG9ydGlvbiBvZiBhCisgICAgICogbnVtYmVyLiAgPGNvZGU+bWluaW11bUludGVnZXJEaWdpdHM8L2NvZGU+IG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvCisgICAgICogPGNvZGU+bWF4aW11bUludGVnZXJEaWdpdHM8L2NvZGU+LgorICAgICAqIDxwPgorICAgICAqIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyBmaWVsZCBleGlzdHMgb25seSBmb3Igc2VyaWFsaXphdGlvbgorICAgICAqIGNvbXBhdGliaWxpdHkgd2l0aCBKREsgMS4xLiAgSW4gSkRLIDEuMiBhbmQgaGlnaGVyLCB0aGUgbmV3CisgICAgICogPGNvZGU+aW50PC9jb2RlPiBmaWVsZCA8Y29kZT5taW5pbXVtSW50ZWdlckRpZ2l0czwvY29kZT4gaXMgdXNlZCBpbnN0ZWFkLgorICAgICAqIFdoZW4gd3JpdGluZyB0byBhIHN0cmVhbSwgPGNvZGU+bWluSW50ZWdlckRpZ2l0czwvY29kZT4gaXMgc2V0IHRvCisgICAgICogPGNvZGU+bWluaW11bUludGVnZXJEaWdpdHM8L2NvZGU+IG9yIDxjb2RlPkJ5dGUuTUFYX1ZBTFVFPC9jb2RlPiwKKyAgICAgKiB3aGljaGV2ZXIgaXMgc21hbGxlci4gIFdoZW4gcmVhZGluZyBmcm9tIGEgc3RyZWFtLCB0aGlzIGZpZWxkIGlzIHVzZWQKKyAgICAgKiBvbmx5IGlmIDxjb2RlPnNlcmlhbFZlcnNpb25PblN0cmVhbTwvY29kZT4gaXMgbGVzcyB0aGFuIDEuIAorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqIEBzZWUgI2dldE1pbmltdW1JbnRlZ2VyRGlnaXRzCisgICAgICovCisgICAgcHJpdmF0ZSBieXRlICAgIG1pbkludGVnZXJEaWdpdHMgPSAxOworCisgICAgLyoqCisgICAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhbGxvd2VkIGluIHRoZSBmcmFjdGlvbmFsIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gIDxjb2RlPm1heGltdW1GcmFjdGlvbkRpZ2l0czwvY29kZT4gbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8KKyAgICAgKiA8Y29kZT5taW5pbXVtRnJhY3Rpb25EaWdpdHM8L2NvZGU+LgorICAgICAqIDxwPgorICAgICAqIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyBmaWVsZCBleGlzdHMgb25seSBmb3Igc2VyaWFsaXphdGlvbgorICAgICAqIGNvbXBhdGliaWxpdHkgd2l0aCBKREsgMS4xLiAgSW4gSkRLIDEuMiBhbmQgaGlnaGVyLCB0aGUgbmV3CisgICAgICogPGNvZGU+aW50PC9jb2RlPiBmaWVsZCA8Y29kZT5tYXhpbXVtRnJhY3Rpb25EaWdpdHM8L2NvZGU+IGlzIHVzZWQgaW5zdGVhZC4KKyAgICAgKiBXaGVuIHdyaXRpbmcgdG8gYSBzdHJlYW0sIDxjb2RlPm1heEZyYWN0aW9uRGlnaXRzPC9jb2RlPiBpcyBzZXQgdG8KKyAgICAgKiA8Y29kZT5tYXhpbXVtRnJhY3Rpb25EaWdpdHM8L2NvZGU+IG9yIDxjb2RlPkJ5dGUuTUFYX1ZBTFVFPC9jb2RlPiwKKyAgICAgKiB3aGljaGV2ZXIgaXMgc21hbGxlci4gIFdoZW4gcmVhZGluZyBmcm9tIGEgc3RyZWFtLCB0aGlzIGZpZWxkIGlzIHVzZWQKKyAgICAgKiBvbmx5IGlmIDxjb2RlPnNlcmlhbFZlcnNpb25PblN0cmVhbTwvY29kZT4gaXMgbGVzcyB0aGFuIDEuIAorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqIEBzZWUgI2dldE1heGltdW1GcmFjdGlvbkRpZ2l0cworICAgICAqLworICAgIHByaXZhdGUgYnl0ZSAgICBtYXhGcmFjdGlvbkRpZ2l0cyA9IDM7ICAgIC8vIGludmFyaWFudCwgPj0gbWluRnJhY3Rpb25EaWdpdHMKKworICAgIC8qKgorICAgICAqIFRoZSBtaW5pbXVtIG51bWJlciBvZiBkaWdpdHMgYWxsb3dlZCBpbiB0aGUgZnJhY3Rpb25hbCBwb3J0aW9uIG9mIGEKKyAgICAgKiBudW1iZXIuICA8Y29kZT5taW5pbXVtRnJhY3Rpb25EaWdpdHM8L2NvZGU+IG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvCisgICAgICogPGNvZGU+bWF4aW11bUZyYWN0aW9uRGlnaXRzPC9jb2RlPi4KKyAgICAgKiA8cD4KKyAgICAgKiA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgZmllbGQgZXhpc3RzIG9ubHkgZm9yIHNlcmlhbGl6YXRpb24KKyAgICAgKiBjb21wYXRpYmlsaXR5IHdpdGggSkRLIDEuMS4gIEluIEpESyAxLjIgYW5kIGhpZ2hlciwgdGhlIG5ldworICAgICAqIDxjb2RlPmludDwvY29kZT4gZmllbGQgPGNvZGU+bWluaW11bUZyYWN0aW9uRGlnaXRzPC9jb2RlPiBpcyB1c2VkIGluc3RlYWQuCisgICAgICogV2hlbiB3cml0aW5nIHRvIGEgc3RyZWFtLCA8Y29kZT5taW5GcmFjdGlvbkRpZ2l0czwvY29kZT4gaXMgc2V0IHRvCisgICAgICogPGNvZGU+bWluaW11bUZyYWN0aW9uRGlnaXRzPC9jb2RlPiBvciA8Y29kZT5CeXRlLk1BWF9WQUxVRTwvY29kZT4sCisgICAgICogd2hpY2hldmVyIGlzIHNtYWxsZXIuICBXaGVuIHJlYWRpbmcgZnJvbSBhIHN0cmVhbSwgdGhpcyBmaWVsZCBpcyB1c2VkCisgICAgICogb25seSBpZiA8Y29kZT5zZXJpYWxWZXJzaW9uT25TdHJlYW08L2NvZGU+IGlzIGxlc3MgdGhhbiAxLiAKKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMKKyAgICAgKi8KKyAgICBwcml2YXRlIGJ5dGUgICAgbWluRnJhY3Rpb25EaWdpdHMgPSAwOworCisgICAgLyoqCisgICAgICogVHJ1ZSBpZiB0aGlzIGZvcm1hdCB3aWxsIHBhcnNlIG51bWJlcnMgYXMgaW50ZWdlcnMgb25seS4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNpc1BhcnNlSW50ZWdlck9ubHkKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gcGFyc2VJbnRlZ2VyT25seSA9IGZhbHNlOworCisgICAgLy8gbmV3IGZpZWxkcyBmb3IgMS4yLiAgYnl0ZSBpcyB0b28gc21hbGwgZm9yIGludGVnZXIgZGlnaXRzLgorCisgICAgLyoqCisgICAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhbGxvd2VkIGluIHRoZSBpbnRlZ2VyIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gIDxjb2RlPm1heGltdW1JbnRlZ2VyRGlnaXRzPC9jb2RlPiBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0bworICAgICAqIDxjb2RlPm1pbmltdW1JbnRlZ2VyRGlnaXRzPC9jb2RlPi4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRNYXhpbXVtSW50ZWdlckRpZ2l0cworICAgICAqLworICAgIHByaXZhdGUgaW50ICAgIG1heGltdW1JbnRlZ2VyRGlnaXRzID0gNDA7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGludGVnZXIgcG9ydGlvbiBvZiBhCisgICAgICogbnVtYmVyLiAgPGNvZGU+bWluaW11bUludGVnZXJEaWdpdHM8L2NvZGU+IG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvCisgICAgICogPGNvZGU+bWF4aW11bUludGVnZXJEaWdpdHM8L2NvZGU+LgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqIEBzZWUgI2dldE1pbmltdW1JbnRlZ2VyRGlnaXRzCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgICAgbWluaW11bUludGVnZXJEaWdpdHMgPSAxOworCisgICAgLyoqCisgICAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhbGxvd2VkIGluIHRoZSBmcmFjdGlvbmFsIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gIDxjb2RlPm1heGltdW1GcmFjdGlvbkRpZ2l0czwvY29kZT4gbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8KKyAgICAgKiA8Y29kZT5taW5pbXVtRnJhY3Rpb25EaWdpdHM8L2NvZGU+LgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqIEBzZWUgI2dldE1heGltdW1GcmFjdGlvbkRpZ2l0cworICAgICAqLworICAgIHByaXZhdGUgaW50ICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0cyA9IDM7ICAgIC8vIGludmFyaWFudCwgPj0gbWluRnJhY3Rpb25EaWdpdHMKKworICAgIC8qKgorICAgICAqIFRoZSBtaW5pbXVtIG51bWJlciBvZiBkaWdpdHMgYWxsb3dlZCBpbiB0aGUgZnJhY3Rpb25hbCBwb3J0aW9uIG9mIGEKKyAgICAgKiBudW1iZXIuICA8Y29kZT5taW5pbXVtRnJhY3Rpb25EaWdpdHM8L2NvZGU+IG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvCisgICAgICogPGNvZGU+bWF4aW11bUZyYWN0aW9uRGlnaXRzPC9jb2RlPi4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCAgICBtaW5pbXVtRnJhY3Rpb25EaWdpdHMgPSAwOworCisgICAgc3RhdGljIGZpbmFsIGludCBjdXJyZW50U2VyaWFsVmVyc2lvbiA9IDE7CisKKyAgICAvKioKKyAgICAgKiBEZXNjcmliZXMgdGhlIHZlcnNpb24gb2YgPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiBwcmVzZW50IG9uIHRoZSBzdHJlYW0uCisgICAgICogUG9zc2libGUgdmFsdWVzIGFyZToKKyAgICAgKiA8dWw+CisgICAgICogPGxpPjxiPjA8L2I+IChvciB1bmluaXRpYWxpemVkKTogdGhlIEpESyAxLjEgdmVyc2lvbiBvZiB0aGUgc3RyZWFtIGZvcm1hdC4KKyAgICAgKiAgICAgSW4gdGhpcyB2ZXJzaW9uLCB0aGUgPGNvZGU+aW50PC9jb2RlPiBmaWVsZHMgc3VjaCBhcworICAgICAqICAgICA8Y29kZT5tYXhpbXVtSW50ZWdlckRpZ2l0czwvY29kZT4gd2VyZSBub3QgcHJlc2VudCwgYW5kIHRoZSA8Y29kZT5ieXRlPC9jb2RlPgorICAgICAqICAgICBmaWVsZHMgc3VjaCBhcyA8Y29kZT5tYXhJbnRlZ2VyRGlnaXRzPC9jb2RlPiBhcmUgdXNlZCBpbnN0ZWFkLgorICAgICAqCisgICAgICogPGxpPjxiPjE8L2I+OiB0aGUgSkRLIDEuMiB2ZXJzaW9uIG9mIHRoZSBzdHJlYW0gZm9ybWF0LiAgVGhlIHZhbHVlcyBvZiB0aGUKKyAgICAgKiAgICAgPGNvZGU+Ynl0ZTwvY29kZT4gZmllbGRzIHN1Y2ggYXMgPGNvZGU+bWF4SW50ZWdlckRpZ2l0czwvY29kZT4gYXJlIGlnbm9yZWQsCisgICAgICogICAgIGFuZCB0aGUgPGNvZGU+aW50PC9jb2RlPiBmaWVsZHMgc3VjaCBhcyA8Y29kZT5tYXhpbXVtSW50ZWdlckRpZ2l0czwvY29kZT4KKyAgICAgKiAgICAgYXJlIHVzZWQgaW5zdGVhZC4KKyAgICAgKiA8L3VsPgorICAgICAqIFdoZW4gc3RyZWFtaW5nIG91dCBhIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4sIHRoZSBtb3N0IHJlY2VudCBmb3JtYXQKKyAgICAgKiAoY29ycmVzcG9uZGluZyB0byB0aGUgaGlnaGVzdCBhbGxvd2FibGUgPGNvZGU+c2VyaWFsVmVyc2lvbk9uU3RyZWFtPC9jb2RlPikKKyAgICAgKiBpcyBhbHdheXMgd3JpdHRlbi4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBzZXJpYWxWZXJzaW9uT25TdHJlYW0gPSBjdXJyZW50U2VyaWFsVmVyc2lvbjsKKworICAgIC8vIFJlbW92ZWQgImltcGxlbWVudHMgQ2xvbmVhYmxlIiBjbGF1c2UuICBOZWVkcyB0byB1cGRhdGUgc2VyaWFsaXphdGlvbgorICAgIC8vIElEIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgorICAgIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAtMjMwODQ2MDEyNTczMzcxMzk0NEw7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9RdWFudGlmaWVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9RdWFudGlmaWVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTRjMTE1ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1F1YW50aWZpZXIuamF2YQpAQCAtMCwwICsxLDEyMSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS90ZXh0L1F1YW50aWZpZXIuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wNi8yOCAxOToxNTo1MiAkIAorICogJFJldmlzaW9uOiAxLjggJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCitjbGFzcyBRdWFudGlmaWVyIGltcGxlbWVudHMgVW5pY29kZU1hdGNoZXIgeworCisgICAgcHJpdmF0ZSBVbmljb2RlTWF0Y2hlciBtYXRjaGVyOworCisgICAgcHJpdmF0ZSBpbnQgbWluQ291bnQ7CisKKyAgICBwcml2YXRlIGludCBtYXhDb3VudDsKKworICAgIC8qKgorICAgICAqIE1heGltdW0gY291bnQgYSBxdWFudGlmaWVyIGNhbiBoYXZlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1BWCA9IEludGVnZXIuTUFYX1ZBTFVFOworCisgICAgcHVibGljIFF1YW50aWZpZXIoVW5pY29kZU1hdGNoZXIgdGhlTWF0Y2hlciwKKyAgICAgICAgICAgICAgICAgICAgICBpbnQgdGhlTWluQ291bnQsIGludCB0aGVNYXhDb3VudCkgeworICAgICAgICBpZiAodGhlTWF0Y2hlciA9PSBudWxsIHx8IG1pbkNvdW50IDwgMCB8fCBtYXhDb3VudCA8IDAgfHwgbWluQ291bnQgPiBtYXhDb3VudCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIG1hdGNoZXIgPSB0aGVNYXRjaGVyOworICAgICAgICBtaW5Db3VudCA9IHRoZU1pbkNvdW50OworICAgICAgICBtYXhDb3VudCA9IHRoZU1heENvdW50OworICAgIH0KKworICAgIC8qKgorICAgICAqIEltcGxlbWVudCBVbmljb2RlTWF0Y2hlciBBUEkuCisgICAgICovCisgICAgcHVibGljIGludCBtYXRjaGVzKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgIGludFtdIG9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGluY3JlbWVudGFsKSB7CisgICAgICAgIGludCBzdGFydCA9IG9mZnNldFswXTsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKGNvdW50IDwgbWF4Q291bnQpIHsKKyAgICAgICAgICAgIGludCBwb3MgPSBvZmZzZXRbMF07CisgICAgICAgICAgICBpbnQgbSA9IG1hdGNoZXIubWF0Y2hlcyh0ZXh0LCBvZmZzZXQsIGxpbWl0LCBpbmNyZW1lbnRhbCk7CisgICAgICAgICAgICBpZiAobSA9PSBVX01BVENIKSB7CisgICAgICAgICAgICAgICAgKytjb3VudDsKKyAgICAgICAgICAgICAgICBpZiAocG9zID09IG9mZnNldFswXSkgeworICAgICAgICAgICAgICAgICAgICAvLyBJZiBvZmZzZXQgaGFzIG5vdCBtb3ZlZCB3ZSBoYXZlIGEgemVyby13aWR0aCBtYXRjaC4KKyAgICAgICAgICAgICAgICAgICAgLy8gRG9uJ3Qga2VlcCBtYXRjaGluZyBpdCBpbmZpbml0ZWx5LgorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKGluY3JlbWVudGFsICYmIG0gPT0gVV9QQVJUSUFMX01BVENIKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFVfUEFSVElBTF9NQVRDSDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGluY3JlbWVudGFsICYmIG9mZnNldFswXSA9PSBsaW1pdCkgeworICAgICAgICAgICAgcmV0dXJuIFVfUEFSVElBTF9NQVRDSDsKKyAgICAgICAgfQorICAgICAgICBpZiAoY291bnQgPj0gbWluQ291bnQpIHsKKyAgICAgICAgICAgIHJldHVybiBVX01BVENIOworICAgICAgICB9CisgICAgICAgIG9mZnNldFswXSA9IHN0YXJ0OworICAgICAgICByZXR1cm4gVV9NSVNNQVRDSDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnQgVW5pY29kZU1hdGNoZXIgQVBJCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1BhdHRlcm4oYm9vbGVhbiBlc2NhcGVVbnByaW50YWJsZSkgeworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICByZXN1bHQuYXBwZW5kKG1hdGNoZXIudG9QYXR0ZXJuKGVzY2FwZVVucHJpbnRhYmxlKSk7CisgICAgICAgIGlmIChtaW5Db3VudCA9PSAwKSB7CisgICAgICAgICAgICBpZiAobWF4Q291bnQgPT0gMSkgeworICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQuYXBwZW5kKCc/JykudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobWF4Q291bnQgPT0gTUFYKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5hcHBlbmQoJyonKS50b1N0cmluZygpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gZWxzZSBmYWxsIHRocm91Z2gKKyAgICAgICAgfSBlbHNlIGlmIChtaW5Db3VudCA9PSAxICYmIG1heENvdW50ID09IE1BWCkgeworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5hcHBlbmQoJysnKS50b1N0cmluZygpOworICAgICAgICB9CisgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3snKTsKKyAgICAgICAgVXRpbGl0eS5hcHBlbmROdW1iZXIocmVzdWx0LCBtaW5Db3VudCk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoJywnKTsKKyAgICAgICAgaWYgKG1heENvdW50ICE9IE1BWCkgeworICAgICAgICAgICAgVXRpbGl0eS5hcHBlbmROdW1iZXIocmVzdWx0LCBtYXhDb3VudCk7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0LmFwcGVuZCgnfScpOworICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50IFVuaWNvZGVNYXRjaGVyIEFQSQorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIG1hdGNoZXNJbmRleFZhbHVlKGludCB2KSB7CisgICAgICAgIHJldHVybiAobWluQ291bnQgPT0gMCkgfHwgbWF0Y2hlci5tYXRjaGVzSW5kZXhWYWx1ZSh2KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRhdGlvbiBvZiBVbmljb2RlTWF0Y2hlciBBUEkuICBVbmlvbiB0aGUgc2V0IG9mIGFsbAorICAgICAqIGNoYXJhY3RlcnMgdGhhdCBtYXkgYmUgbWF0Y2hlZCBieSB0aGlzIG9iamVjdCBpbnRvIHRoZSBnaXZlbgorICAgICAqIHNldC4KKyAgICAgKiBAcGFyYW0gdG9VbmlvblRvIHRoZSBzZXQgaW50byB3aGljaCB0byB1bmlvbiB0aGUgc291cmNlIGNoYXJhY3RlcnMKKyAgICAgKiBAcmV0dXJuIGEgcmVmZXJlbmNlIHRvIHRvVW5pb25UbworICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFkZE1hdGNoU2V0VG8oVW5pY29kZVNldCB0b1VuaW9uVG8pIHsKKyAgICAgICAgaWYgKG1heENvdW50ID4gMCkgeworICAgICAgICAgICAgbWF0Y2hlci5hZGRNYXRjaFNldFRvKHRvVW5pb25Ubyk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9SZW1vdmVUcmFuc2xpdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUmVtb3ZlVHJhbnNsaXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44MjVmOTk2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUmVtb3ZlVHJhbnNsaXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDU4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvdGV4dC9SZW1vdmVUcmFuc2xpdGVyYXRvci5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA2OjEyICQgCisgKiAkUmV2aXNpb246IDEuNiAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworLyoqCisgKiBBIHRyYW5zbGl0ZXJhdG9yIHRoYXQgcmVtb3ZlcyBjaGFyYWN0ZXJzLiAgVGhpcyBpcyB1c2VmdWwgaW4gY29uanVuY3Rpb24KKyAqIHdpdGggYSBmaWx0ZXIuCisgKi8KK2NsYXNzIFJlbW92ZVRyYW5zbGl0ZXJhdG9yIGV4dGVuZHMgVHJhbnNsaXRlcmF0b3IgeworCisgICAgLyoqCisgICAgICogSUQgZm9yIHRoaXMgdHJhbnNsaXRlcmF0b3IuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIF9JRCA9ICJBbnktUmVtb3ZlIjsKKworICAgIC8qKgorICAgICAqIFN5c3RlbSByZWdpc3RyYXRpb24gaG9vay4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCByZWdpc3RlcigpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJGYWN0b3J5KF9JRCwgbmV3IFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkoKSB7CisgICAgICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBSZW1vdmVUcmFuc2xpdGVyYXRvcigpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJTcGVjaWFsSW52ZXJzZSgiUmVtb3ZlIiwgIk51bGwiLCBmYWxzZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqLworICAgIHB1YmxpYyBSZW1vdmVUcmFuc2xpdGVyYXRvcigpIHsKKyAgICAgICAgc3VwZXIoX0lELCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRzIHtAbGluayBUcmFuc2xpdGVyYXRvciNoYW5kbGVUcmFuc2xpdGVyYXRlfS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVUcmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbiBpbmRleCwgYm9vbGVhbiBpbmNyZW1lbnRhbCkgeworICAgICAgICAvLyBPdXIgY2FsbGVyIChmaWx0ZXJlZFRyYW5zbGl0ZXJhdGUpIGhhcyBhbHJlYWR5IG5hcnJvd2VkIHVzCisgICAgICAgIC8vIHRvIGFuIHVuZmlsdGVyZWQgcnVuLiAgRGVsZXRlIGl0LgorICAgICAgICB0ZXh0LnJlcGxhY2UoaW5kZXguc3RhcnQsIGluZGV4LmxpbWl0LCAiIik7CisgICAgICAgIGludCBsZW4gPSBpbmRleC5saW1pdCAtIGluZGV4LnN0YXJ0OworICAgICAgICBpbmRleC5jb250ZXh0TGltaXQgLT0gbGVuOworICAgICAgICBpbmRleC5saW1pdCAtPSBsZW47CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvUmVwbGFjZWFibGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JlcGxhY2VhYmxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDNkZmU3NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JlcGxhY2VhYmxlLmphdmEKQEAgLTAsMCArMSwxODMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JlcGxhY2VhYmxlLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDcvMDMgMDA6MzA6NTQgJCAKKyAqICRSZXZpc2lvbjogMS44ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCisvKioKKyAqIDxjb2RlPlJlcGxhY2VhYmxlPC9jb2RlPiBpcyBhbiBpbnRlcmZhY2UgcmVwcmVzZW50aW5nIGEKKyAqIHN0cmluZyBvZiBjaGFyYWN0ZXJzIHRoYXQgc3VwcG9ydHMgdGhlIHJlcGxhY2VtZW50IG9mIGEgcmFuZ2Ugb2YKKyAqIGl0c2VsZiB3aXRoIGEgbmV3IHN0cmluZyBvZiBjaGFyYWN0ZXJzLiAgSXQgaXMgdXNlZCBieSBBUElzIHRoYXQKKyAqIGNoYW5nZSBhIHBpZWNlIG9mIHRleHQgd2hpbGUgcmV0YWluaW5nIG1ldGFkYXRhLiAgTWV0YWRhdGEgaXMgZGF0YQorICogb3RoZXIgdGhhbiB0aGUgVW5pY29kZSBjaGFyYWN0ZXJzIHJldHVybmVkIGJ5IGNoYXIzMkF0KCkuICBPbmUKKyAqIGV4YW1wbGUgb2YgbWV0YWRhdGEgaXMgc3R5bGUgYXR0cmlidXRlczsgYW5vdGhlciBpcyBhbiBlZGl0CisgKiBoaXN0b3J5LCBtYXJraW5nIGVhY2ggY2hhcmFjdGVyIHdpdGggYW4gYXV0aG9yIGFuZCByZXZpc2lvbiBudW1iZXIuCisgKgorICogPHA+QW4gaW1wbGljaXQgYXNwZWN0IG9mIHRoZSA8Y29kZT5SZXBsYWNlYWJsZTwvY29kZT4gQVBJIGlzIHRoYXQKKyAqIGR1cmluZyBhIHJlcGxhY2Ugb3BlcmF0aW9uLCBuZXcgY2hhcmFjdGVycyB0YWtlIG9uIHRoZSBtZXRhZGF0YSBvZgorICogdGhlIG9sZCBjaGFyYWN0ZXJzLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBzdHJpbmcgInRoZSA8Yj5ib2xkPC9iPgorICogZm9udCIgaGFzIHJhbmdlICg0LCA4KSByZXBsYWNlZCB3aXRoICJzdHJvbmciLCB0aGVuIGl0IGJlY29tZXMgInRoZQorICogPGI+c3Ryb25nPC9iPiBmb250Ii4KKyAqCisgKiA8cD48Y29kZT5SZXBsYWNlYWJsZTwvY29kZT4gc3BlY2lmaWVzIHJhbmdlcyB1c2luZyBhIHN0YXJ0CisgKiBvZmZzZXQgYW5kIGEgbGltaXQgb2Zmc2V0LiAgVGhlIHJhbmdlIG9mIGNoYXJhY3RlcnMgdGh1cyBzcGVjaWZpZWQKKyAqIGluY2x1ZGVzIHRoZSBjaGFyYWN0ZXJzIGF0IG9mZnNldCBzdGFydC4ubGltaXQtMS4gIFRoYXQgaXMsIHRoZQorICogc3RhcnQgb2Zmc2V0IGlzIGluY2x1c2l2ZSwgYW5kIHRoZSBsaW1pdCBvZmZzZXQgaXMgZXhjbHVzaXZlLgorICoKKyAqIDxwPjxjb2RlPlJlcGxhY2VhYmxlPC9jb2RlPiBhbHNvIGluY2x1ZGVzIEFQSSB0byBhY2Nlc3MgY2hhcmFjdGVycworICogaW4gdGhlIHN0cmluZzogPGNvZGU+bGVuZ3RoKCk8L2NvZGU+LCA8Y29kZT5jaGFyQXQoKTwvY29kZT4sCisgKiA8Y29kZT5jaGFyMzJBdCgpPC9jb2RlPiwgYW5kIDxjb2RlPmV4dHJhY3RCZXR3ZWVuKCk8L2NvZGU+LgorICoKKyAqIDxwPkZvciBhIHN1YmNsYXNzIHRvIHN1cHBvcnQgbWV0YWRhdGEsIHR5cGljYWwgYmVoYXZpb3Igb2YKKyAqIDxjb2RlPnJlcGxhY2UoKTwvY29kZT4gaXMgdGhlIGZvbGxvd2luZzoKKyAqIDx1bD4KKyAqICAgPGxpPlNldCB0aGUgbWV0YWRhdGEgb2YgdGhlIG5ldyB0ZXh0IHRvIHRoZSBtZXRhZGF0YSBvZiB0aGUgZmlyc3QKKyAqICAgY2hhcmFjdGVyIHJlcGxhY2VkPC9saT4KKyAqICAgPGxpPklmIG5vIGNoYXJhY3RlcnMgYXJlIHJlcGxhY2VkLCB1c2UgdGhlIG1ldGFkYXRhIG9mIHRoZQorICogICBwcmV2aW91cyBjaGFyYWN0ZXI8L2xpPgorICogICA8bGk+SWYgdGhlcmUgaXMgbm8gcHJldmlvdXMgY2hhcmFjdGVyIChpLmUuIHN0YXJ0ID09IDApLCB1c2UgdGhlCisgKiAgIGZvbGxvd2luZyBjaGFyYWN0ZXI8L2xpPgorICogICA8bGk+SWYgdGhlcmUgaXMgbm8gZm9sbG93aW5nIGNoYXJhY3RlciAoaS5lLiB0aGUgcmVwbGFjZWFibGUgd2FzCisgKiAgIGVtcHR5KSwgdXNlIGRlZmF1bHQgbWV0YWRhdGEuPGJyPgorICogICA8L2xpPgorICogPC91bD4KKyAqIElmIHRoaXMgaXMgbm90IHRoZSBiZWhhdmlvciwgdGhlIHN1YmNsYXNzIHNob3VsZCBkb2N1bWVudCBhbnkgZGlmZmVyZW5jZXMuCisgKiAKKyAqIDxwPkNvcHlyaWdodCAmY29weTsgSUJNIENvcnBvcmF0aW9uIDE5OTkuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEB2ZXJzaW9uICRSQ1NmaWxlOiBSZXBsYWNlYWJsZS5qYXZhLHYgJCAkUmV2aXNpb246IDEuOCAkICREYXRlOiAyMDAyLzA3LzAzIDAwOjMwOjU0ICQKKyAqLworcHVibGljIGludGVyZmFjZSBSZXBsYWNlYWJsZSB7CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIDE2LWJpdCBjb2RlIHVuaXRzIGluIHRoZSB0ZXh0LgorICAgICAqIEByZXR1cm4gbnVtYmVyIG9mIDE2LWJpdCBjb2RlIHVuaXRzIGluIHRleHQKKyAgICAgKi8gCisgICAgaW50IGxlbmd0aCgpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgMTYtYml0IGNvZGUgdW5pdCBhdCB0aGUgZ2l2ZW4gb2Zmc2V0IGludG8gdGhlIHRleHQuCisgICAgICogQHBhcmFtIG9mZnNldCBhbiBpbnRlZ2VyIGJldHdlZW4gMCBhbmQgPGNvZGU+bGVuZ3RoKCk8L2NvZGU+LTEKKyAgICAgKiBpbmNsdXNpdmUKKyAgICAgKiBAcmV0dXJuIDE2LWJpdCBjb2RlIHVuaXQgb2YgdGV4dCBhdCBnaXZlbiBvZmZzZXQKKyAgICAgKi8KKyAgICBjaGFyIGNoYXJBdChpbnQgb2Zmc2V0KTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIDMyLWJpdCBjb2RlIHBvaW50IGF0IHRoZSBnaXZlbiAxNi1iaXQgb2Zmc2V0IGludG8KKyAgICAgKiB0aGUgdGV4dC4gIFRoaXMgYXNzdW1lcyB0aGUgdGV4dCBpcyBzdG9yZWQgYXMgMTYtYml0IGNvZGUgdW5pdHMKKyAgICAgKiB3aXRoIHN1cnJvZ2F0ZSBwYWlycyBpbnRlcm1peGVkLiAgSWYgdGhlIG9mZnNldCBvZiBhIGxlYWRpbmcgb3IKKyAgICAgKiB0cmFpbGluZyBjb2RlIHVuaXQgb2YgYSBzdXJyb2dhdGUgcGFpciBpcyBnaXZlbiwgcmV0dXJuIHRoZQorICAgICAqIGNvZGUgcG9pbnQgb2YgdGhlIHN1cnJvZ2F0ZSBwYWlyLgorICAgICAqCisgICAgICogPHA+TW9zdCBzdWJjbGFzc2VzIGNhbiByZXR1cm4KKyAgICAgKiA8Y29kZT5jb20uaWJtLmljdS50ZXh0LlVURjE2LmNoYXJBdCh0aGlzLCBvZmZzZXQpPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IGFuIGludGVnZXIgYmV0d2VlbiAwIGFuZCA8Y29kZT5sZW5ndGgoKTwvY29kZT4tMQorICAgICAqIGluY2x1c2l2ZQorICAgICAqIEByZXR1cm4gMzItYml0IGNvZGUgcG9pbnQgb2YgdGV4dCBhdCBnaXZlbiBvZmZzZXQKKyAgICAgKi8KKyAgICBpbnQgY2hhcjMyQXQoaW50IG9mZnNldCk7CisKKyAgICAvKioKKyAgICAgKiBDb3BpZXMgY2hhcmFjdGVycyBmcm9tIHRoaXMgb2JqZWN0IGludG8gdGhlIGRlc3RpbmF0aW9uCisgICAgICogY2hhcmFjdGVyIGFycmF5LiAgVGhlIGZpcnN0IGNoYXJhY3RlciB0byBiZSBjb3BpZWQgaXMgYXQgaW5kZXgKKyAgICAgKiA8Y29kZT5zcmNTdGFydDwvY29kZT47IHRoZSBsYXN0IGNoYXJhY3RlciB0byBiZSBjb3BpZWQgaXMgYXQKKyAgICAgKiBpbmRleCA8Y29kZT5zcmNMaW1pdC0xPC9jb2RlPiAodGh1cyB0aGUgdG90YWwgbnVtYmVyIG9mCisgICAgICogY2hhcmFjdGVycyB0byBiZSBjb3BpZWQgaXMgPGNvZGU+c3JjTGltaXQtc3JjU3RhcnQ8L2NvZGU+KS4gVGhlCisgICAgICogY2hhcmFjdGVycyBhcmUgY29waWVkIGludG8gdGhlIHN1YmFycmF5IG9mIDxjb2RlPmRzdDwvY29kZT4KKyAgICAgKiBzdGFydGluZyBhdCBpbmRleCA8Y29kZT5kc3RTdGFydDwvY29kZT4gYW5kIGVuZGluZyBhdCBpbmRleAorICAgICAqIDxjb2RlPmRzdFN0YXJ0ICsgKHNyY0xpbWl0LXNyY1N0YXJ0KSAtIDE8L2NvZGU+LgorICAgICAqCisgICAgICogQHBhcmFtIHNyY1N0YXJ0IHRoZSBiZWdpbm5pbmcgaW5kZXggdG8gY29weSwgaW5jbHVzaXZlOyA8Y29kZT4wCisgICAgICogPD0gc3RhcnQgPD0gbGltaXQ8L2NvZGU+LgorICAgICAqIEBwYXJhbSBzcmNMaW1pdCB0aGUgZW5kaW5nIGluZGV4IHRvIGNvcHksIGV4Y2x1c2l2ZTsKKyAgICAgKiA8Y29kZT5zdGFydCA8PSBsaW1pdCA8PSBsZW5ndGgoKTwvY29kZT4uCisgICAgICogQHBhcmFtIGRzdCB0aGUgZGVzdGluYXRpb24gYXJyYXkuCisgICAgICogQHBhcmFtIGRzdFN0YXJ0IHRoZSBzdGFydCBvZmZzZXQgaW4gdGhlIGRlc3RpbmF0aW9uIGFycmF5LgorICAgICAqLworICAgIHZvaWQgZ2V0Q2hhcnMoaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQsIGNoYXIgZHN0W10sIGludCBkc3RTdGFydCk7CisKKyAgICAvKioKKyAgICAgKiBSZXBsYWNlcyBhIHN1YnN0cmluZyBvZiB0aGlzIG9iamVjdCB3aXRoIHRoZSBnaXZlbiB0ZXh0LgorICAgICAqCisgICAgICogPHA+U3ViY2xhc3NlcyBtdXN0IGVuc3VyZSB0aGF0IGlmIHRoZSB0ZXh0IGJldHdlZW4gc3RhcnQgYW5kCisgICAgICogbGltaXQgaXMgZXF1YWwgdG8gdGhlIHJlcGxhY2VtZW50IHRleHQsIHRoYXQgcmVwbGFjZSBoYXMgbm8KKyAgICAgKiBlZmZlY3QuIFRoYXQgaXMsIGFueSBtZXRhZGF0YQorICAgICAqIHNob3VsZCBiZSB1bmFmZmVjdGVkLiBJbiBhZGRpdGlvbiwgc3ViY2xhc3NlcyBhcmUgZW5jb3VyYWdlZCB0bworICAgICAqIGNoZWNrIGZvciBpbml0aWFsIGFuZCB0cmFpbGluZyBpZGVudGljYWwgY2hhcmFjdGVycywgYW5kIG1ha2UgYQorICAgICAqIHNtYWxsZXIgcmVwbGFjZW1lbnQgaWYgcG9zc2libGUuIFRoaXMgd2lsbCBwcmVzZXJ2ZSBhcyBtdWNoCisgICAgICogbWV0YWRhdGEgYXMgcG9zc2libGUuCisgICAgICogQHBhcmFtIHN0YXJ0IHRoZSBiZWdpbm5pbmcgaW5kZXgsIGluY2x1c2l2ZTsgPGNvZGU+MCA8PSBzdGFydAorICAgICAqIDw9IGxpbWl0PC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gbGltaXQgdGhlIGVuZGluZyBpbmRleCwgZXhjbHVzaXZlOyA8Y29kZT5zdGFydCA8PSBsaW1pdAorICAgICAqIDw9IGxlbmd0aCgpPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgdGV4dCB0byByZXBsYWNlIGNoYXJhY3RlcnMgPGNvZGU+c3RhcnQ8L2NvZGU+CisgICAgICogdG8gPGNvZGU+bGltaXQgLSAxPC9jb2RlPgorICAgICAqLworICAgIHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgU3RyaW5nIHRleHQpOworCisgICAgLyoqCisgICAgICogUmVwbGFjZXMgYSBzdWJzdHJpbmcgb2YgdGhpcyBvYmplY3Qgd2l0aCB0aGUgZ2l2ZW4gdGV4dC4KKyAgICAgKgorICAgICAqIDxwPlN1YmNsYXNzZXMgbXVzdCBlbnN1cmUgdGhhdCBpZiB0aGUgdGV4dCBiZXR3ZWVuIHN0YXJ0IGFuZAorICAgICAqIGxpbWl0IGlzIGVxdWFsIHRvIHRoZSByZXBsYWNlbWVudCB0ZXh0LCB0aGF0IHJlcGxhY2UgaGFzIG5vCisgICAgICogZWZmZWN0LiBUaGF0IGlzLCBhbnkgbWV0YWRhdGEKKyAgICAgKiBzaG91bGQgYmUgdW5hZmZlY3RlZC4gSW4gYWRkaXRpb24sIHN1YmNsYXNzZXMgYXJlIGVuY291cmFnZWQgdG8KKyAgICAgKiBjaGVjayBmb3IgaW5pdGlhbCBhbmQgdHJhaWxpbmcgaWRlbnRpY2FsIGNoYXJhY3RlcnMsIGFuZCBtYWtlIGEKKyAgICAgKiBzbWFsbGVyIHJlcGxhY2VtZW50IGlmIHBvc3NpYmxlLiBUaGlzIHdpbGwgcHJlc2VydmUgYXMgbXVjaAorICAgICAqIG1ldGFkYXRhIGFzIHBvc3NpYmxlLgorICAgICAqIEBwYXJhbSBzdGFydCB0aGUgYmVnaW5uaW5nIGluZGV4LCBpbmNsdXNpdmU7IDxjb2RlPjAgPD0gc3RhcnQKKyAgICAgKiA8PSBsaW1pdDwvY29kZT4uCisgICAgICogQHBhcmFtIGxpbWl0IHRoZSBlbmRpbmcgaW5kZXgsIGV4Y2x1c2l2ZTsgPGNvZGU+c3RhcnQgPD0gbGltaXQKKyAgICAgKiA8PSBsZW5ndGgoKTwvY29kZT4uCisgICAgICogQHBhcmFtIGNoYXJzIHRoZSB0ZXh0IHRvIHJlcGxhY2UgY2hhcmFjdGVycyA8Y29kZT5zdGFydDwvY29kZT4KKyAgICAgKiB0byA8Y29kZT5saW1pdCAtIDE8L2NvZGU+CisgICAgICogQHBhcmFtIGNoYXJzU3RhcnQgdGhlIGJlZ2lubmluZyBpbmRleCBpbnRvIDxjb2RlPmNoYXJzPC9jb2RlPiwKKyAgICAgKiBpbmNsdXNpdmU7IDxjb2RlPjAgPD0gc3RhcnQgPD0gbGltaXQ8L2NvZGU+LgorICAgICAqIEBwYXJhbSBjaGFyc0xlbiB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgb2YgPGNvZGU+Y2hhcnM8L2NvZGU+LgorICAgICAqLworICAgIHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgY2hhcltdIGNoYXJzLAorICAgICAgICAgICAgICAgICBpbnQgY2hhcnNTdGFydCwgaW50IGNoYXJzTGVuKTsKKyAgICAvLyBOb3RlOiBXZSB1c2UgbGVuZ3RoIHJhdGhlciB0aGFuIGxpbWl0IHRvIGNvbmZvcm0gdG8gU3RyaW5nQnVmZmVyCisgICAgLy8gYW5kIFN5c3RlbS5hcnJheWNvcHkuCisKKyAgICAvKioKKyAgICAgKiBDb3BpZXMgYSBzdWJzdHJpbmcgb2YgdGhpcyBvYmplY3QsIHJldGFpbmluZyBtZXRhZGF0YS4KKyAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIGR1cGxpY2F0ZSBvciByZW9yZGVyIHN1YnN0cmluZ3MuCisgICAgICogVGhlIGRlc3RpbmF0aW9uIGluZGV4IG11c3Qgbm90IG92ZXJsYXAgdGhlIHNvdXJjZSByYW5nZS4KKyAgICAgKiBJZiA8Y29kZT5oYXNNZXRhRGF0YSgpPC9jb2RlPiByZXR1cm5zIGZhbHNlLCBzdWJjbGFzc2VzCisgICAgICogbWF5IHVzZSB0aGUgbmFpdmUgaW1wbGVtZW50YXRpb246CisgICAgICoKKyAgICAgKiA8cHJlPiBjaGFyW10gdGV4dCA9IG5ldyBjaGFyW2xpbWl0IC0gc3RhcnRdOworICAgICAqIGdldENoYXJzKHN0YXJ0LCBsaW1pdCwgdGV4dCwgMCk7CisgICAgICogcmVwbGFjZShkZXN0LCBkZXN0LCB0ZXh0LCAwLCBsaW1pdCAtIHN0YXJ0KTs8L3ByZT4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIGJlZ2lubmluZyBpbmRleCwgaW5jbHVzaXZlOyA8Y29kZT4wIDw9IHN0YXJ0IDw9CisgICAgICogbGltaXQ8L2NvZGU+LgorICAgICAqIEBwYXJhbSBsaW1pdCB0aGUgZW5kaW5nIGluZGV4LCBleGNsdXNpdmU7IDxjb2RlPnN0YXJ0IDw9IGxpbWl0IDw9CisgICAgICogbGVuZ3RoKCk8L2NvZGU+LgorICAgICAqIEBwYXJhbSBkZXN0IHRoZSBkZXN0aW5hdGlvbiBpbmRleC4gIFRoZSBjaGFyYWN0ZXJzIGZyb20KKyAgICAgKiA8Y29kZT5zdGFydC4ubGltaXQtMTwvY29kZT4gd2lsbCBiZSBjb3BpZWQgdG8gPGNvZGU+ZGVzdDwvY29kZT4uCisgICAgICogSW1wbGVtZW50YXRpb25zIG9mIHRoaXMgbWV0aG9kIG1heSBhc3N1bWUgdGhhdCA8Y29kZT5kZXN0IDw9IHN0YXJ0IHx8CisgICAgICogZGVzdCA+PSBsaW1pdDwvY29kZT4uCisgICAgICovCisgICAgdm9pZCBjb3B5KGludCBzdGFydCwgaW50IGxpbWl0LCBpbnQgZGVzdCk7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgb2JqZWN0IGNvbnRhaW5zIG1ldGFkYXRhLiAgSWYgYQorICAgICAqIFJlcGxhY2VhYmxlIG9iamVjdCBoYXMgbWV0YWRhdGEsIGNhbGxzIHRvIHRoZSBSZXBsYWNlYWJsZSBBUEkKKyAgICAgKiBtdXN0IGJlIG1hZGUgc28gYXMgdG8gcHJlc2VydmUgbWV0YWRhdGEuICBJZiBpdCBkb2VzIG5vdCwgY2FsbHMKKyAgICAgKiB0byB0aGUgUmVwbGFjZWFibGUgQVBJIG1heSBiZSBvcHRpbWl6ZWQgdG8gaW1wcm92ZSBwZXJmb3JtYW5jZS4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBvYmplY3QgY29udGFpbnMgbWV0YWRhdGEKKyAgICAgKiBAc2luY2UgSUNVIDIuMgorICAgICAqLworICAgIGJvb2xlYW4gaGFzTWV0YURhdGEoKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JlcGxhY2VhYmxlU3RyaW5nLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9SZXBsYWNlYWJsZVN0cmluZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI4YWY0NDAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9SZXBsYWNlYWJsZVN0cmluZy5qYXZhCkBAIC0wLDAgKzEsMTkzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvdGV4dC9SZXBsYWNlYWJsZVN0cmluZy5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzA3LzAyIDIzOjUwOjM0ICQgCisgKiAkUmV2aXNpb246IDEuMTEgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKKy8qKgorICogPGNvZGU+UmVwbGFjZWFibGVTdHJpbmc8L2NvZGU+IGlzIGFuIGFkYXB0ZXIgY2xhc3MgdGhhdCBpbXBsZW1lbnRzIHRoZQorICogPGNvZGU+UmVwbGFjZWFibGU8L2NvZGU+IEFQSSBhcm91bmQgYW4gb3JkaW5hcnkgPGNvZGU+U3RyaW5nQnVmZmVyPC9jb2RlPi4KKyAqCisgKiA8cD48ZW0+Tm90ZTo8L2VtPiBUaGlzIGNsYXNzIGRvZXMgbm90IHN1cHBvcnQgYXR0cmlidXRlcyBhbmQgaXMgbm90CisgKiBpbnRlbmRlZCBmb3IgZ2VuZXJhbCB1c2UuICBNb3N0IGNsaWVudHMgd2lsbCBuZWVkIHRvIGltcGxlbWVudAorICoge0BsaW5rIFJlcGxhY2VhYmxlfSBpbiB0aGVpciB0ZXh0IHJlcHJlc2VudGF0aW9uIGNsYXNzLgorICoKKyAqIDxwPkNvcHlyaWdodCAmY29weTsgSUJNIENvcnBvcmF0aW9uIDE5OTkuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIEBzZWUgUmVwbGFjZWFibGUKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEB2ZXJzaW9uICRSQ1NmaWxlOiBSZXBsYWNlYWJsZVN0cmluZy5qYXZhLHYgJCAkUmV2aXNpb246IDEuMTEgJCAkRGF0ZTogMjAwMi8wNy8wMiAyMzo1MDozNCAkCisgKi8KK3B1YmxpYyBjbGFzcyBSZXBsYWNlYWJsZVN0cmluZyBpbXBsZW1lbnRzIFJlcGxhY2VhYmxlIHsKKyAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciBidWY7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgIlx1MDBBOSBJQk0gQ29ycG9yYXRpb24gMTk5OS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgbmV3IG9iamVjdCB3aXRoIHRoZSBnaXZlbiBpbml0aWFsIGNvbnRlbnRzLgorICAgICAqIEBwYXJhbSBzdHIgaW5pdGlhbCBjb250ZW50cworICAgICAqLworICAgIHB1YmxpYyBSZXBsYWNlYWJsZVN0cmluZyhTdHJpbmcgc3RyKSB7CisgICAgICAgIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoc3RyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBuZXcgb2JqZWN0IHVzaW5nIDxjb2RlPmJ1ZjwvY29kZT4gZm9yIGludGVybmFsCisgICAgICogc3RvcmFnZS4gIFRoZSBjb250ZW50cyBvZiA8Y29kZT5idWY8L2NvZGU+IGF0IHRoZSB0aW1lIG9mCisgICAgICogY29uc3RydWN0aW9uIGFyZSB1c2VkIGFzIHRoZSBpbml0aWFsIGNvbnRlbnRzLiAgPGVtPk5vdGUhCisgICAgICogTW9kaWZpY2F0aW9ucyB0byA8Y29kZT5idWY8L2NvZGU+IHdpbGwgbW9kaWZ5IHRoaXMgb2JqZWN0LCBhbmQKKyAgICAgKiB2aWNlIHZlcnNhLjwvZW0+CisgICAgICogQHBhcmFtIGJ1ZiBvYmplY3QgdG8gYmUgdXNlZCBhcyBpbnRlcm5hbCBzdG9yYWdlCisgICAgICovCisgICAgcHVibGljIFJlcGxhY2VhYmxlU3RyaW5nKFN0cmluZ0J1ZmZlciBidWYpIHsKKyAgICAgICAgdGhpcy5idWYgPSBidWY7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgbmV3IGVtcHR5IG9iamVjdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgUmVwbGFjZWFibGVTdHJpbmcoKSB7CisgICAgICAgIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGNvbnRlbnRzIG9mIHRoaXMgb2JqZWN0IGFzIGEgPGNvZGU+U3RyaW5nPC9jb2RlPi4KKyAgICAgKiBAcmV0dXJuIHN0cmluZyBjb250ZW50cyBvZiB0aGlzIG9iamVjdAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBzdWJzdHJpbmcgb2YgdGhlIGdpdmVuIHN0cmluZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHN1YnN0cmluZyhpbnQgc3RhcnQsIGludCBsaW1pdCkgeworICAgICAgICByZXR1cm4gYnVmLnN1YnN0cmluZyhzdGFydCwgbGltaXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgY29udGFpbmVkIGluIHRoaXMgb2JqZWN0LgorICAgICAqIDxjb2RlPlJlcGxhY2VhYmxlPC9jb2RlPiBBUEkuCisgICAgICovIAorICAgIHB1YmxpYyBpbnQgbGVuZ3RoKCkgeworICAgICAgICByZXR1cm4gYnVmLmxlbmd0aCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY2hhcmFjdGVyIGF0IHRoZSBnaXZlbiBwb3NpdGlvbiBpbiB0aGlzIG9iamVjdC4KKyAgICAgKiA8Y29kZT5SZXBsYWNlYWJsZTwvY29kZT4gQVBJLgorICAgICAqIEBwYXJhbSBvZmZzZXQgb2Zmc2V0IGludG8gdGhlIGNvbnRlbnRzLCBmcm9tIDAgdG8KKyAgICAgKiA8Y29kZT5sZW5ndGgoKTwvY29kZT4gLSAxCisgICAgICovCisgICAgcHVibGljIGNoYXIgY2hhckF0KGludCBvZmZzZXQpIHsKKyAgICAgICAgcmV0dXJuIGJ1Zi5jaGFyQXQob2Zmc2V0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIDMyLWJpdCBjb2RlIHBvaW50IGF0IHRoZSBnaXZlbiAxNi1iaXQgb2Zmc2V0IGludG8KKyAgICAgKiB0aGUgdGV4dC4gIFRoaXMgYXNzdW1lcyB0aGUgdGV4dCBpcyBzdG9yZWQgYXMgMTYtYml0IGNvZGUgdW5pdHMKKyAgICAgKiB3aXRoIHN1cnJvZ2F0ZSBwYWlycyBpbnRlcm1peGVkLiAgSWYgdGhlIG9mZnNldCBvZiBhIGxlYWRpbmcgb3IKKyAgICAgKiB0cmFpbGluZyBjb2RlIHVuaXQgb2YgYSBzdXJyb2dhdGUgcGFpciBpcyBnaXZlbiwgcmV0dXJuIHRoZQorICAgICAqIGNvZGUgcG9pbnQgb2YgdGhlIHN1cnJvZ2F0ZSBwYWlyLgorICAgICAqIEBwYXJhbSBvZmZzZXQgYW4gaW50ZWdlciBiZXR3ZWVuIDAgYW5kIDxjb2RlPmxlbmd0aCgpPC9jb2RlPi0xCisgICAgICogaW5jbHVzaXZlCisgICAgICogQHJldHVybiAzMi1iaXQgY29kZSBwb2ludCBvZiB0ZXh0IGF0IGdpdmVuIG9mZnNldAorICAgICAqLworICAgIHB1YmxpYyBpbnQgY2hhcjMyQXQoaW50IG9mZnNldCkgeworICAgICAgICByZXR1cm4gVVRGMTYuY2hhckF0KGJ1Ziwgb2Zmc2V0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb3BpZXMgY2hhcmFjdGVycyBmcm9tIHRoaXMgb2JqZWN0IGludG8gdGhlIGRlc3RpbmF0aW9uCisgICAgICogY2hhcmFjdGVyIGFycmF5LiAgVGhlIGZpcnN0IGNoYXJhY3RlciB0byBiZSBjb3BpZWQgaXMgYXQgaW5kZXgKKyAgICAgKiA8Y29kZT5zcmNTdGFydDwvY29kZT47IHRoZSBsYXN0IGNoYXJhY3RlciB0byBiZSBjb3BpZWQgaXMgYXQKKyAgICAgKiBpbmRleCA8Y29kZT5zcmNMaW1pdC0xPC9jb2RlPiAodGh1cyB0aGUgdG90YWwgbnVtYmVyIG9mCisgICAgICogY2hhcmFjdGVycyB0byBiZSBjb3BpZWQgaXMgPGNvZGU+c3JjTGltaXQtc3JjU3RhcnQ8L2NvZGU+KS4gVGhlCisgICAgICogY2hhcmFjdGVycyBhcmUgY29waWVkIGludG8gdGhlIHN1YmFycmF5IG9mIDxjb2RlPmRzdDwvY29kZT4KKyAgICAgKiBzdGFydGluZyBhdCBpbmRleCA8Y29kZT5kc3RTdGFydDwvY29kZT4gYW5kIGVuZGluZyBhdCBpbmRleAorICAgICAqIDxjb2RlPmRzdFN0YXJ0ICsgKHNyY0xpbWl0LXNyY1N0YXJ0KSAtIDE8L2NvZGU+LgorICAgICAqCisgICAgICogQHBhcmFtIHNyY1N0YXJ0IHRoZSBiZWdpbm5pbmcgaW5kZXggdG8gY29weSwgaW5jbHVzaXZlOyA8Y29kZT4wCisgICAgICogPD0gc3RhcnQgPD0gbGltaXQ8L2NvZGU+LgorICAgICAqIEBwYXJhbSBzcmNMaW1pdCB0aGUgZW5kaW5nIGluZGV4IHRvIGNvcHksIGV4Y2x1c2l2ZTsKKyAgICAgKiA8Y29kZT5zdGFydCA8PSBsaW1pdCA8PSBsZW5ndGgoKTwvY29kZT4uCisgICAgICogQHBhcmFtIGRzdCB0aGUgZGVzdGluYXRpb24gYXJyYXkuCisgICAgICogQHBhcmFtIGRzdFN0YXJ0IHRoZSBzdGFydCBvZmZzZXQgaW4gdGhlIGRlc3RpbmF0aW9uIGFycmF5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGdldENoYXJzKGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0LCBjaGFyIGRzdFtdLCBpbnQgZHN0U3RhcnQpIHsKKyAgICAgICAgVXRpbGl0eS5nZXRDaGFycyhidWYsIHNyY1N0YXJ0LCBzcmNMaW1pdCwgZHN0LCBkc3RTdGFydCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVwbGFjZSB6ZXJvIG9yIG1vcmUgY2hhcmFjdGVycyB3aXRoIG5ldyBjaGFyYWN0ZXJzLgorICAgICAqIDxjb2RlPlJlcGxhY2VhYmxlPC9jb2RlPiBBUEkuCisgICAgICogQHBhcmFtIHN0YXJ0IHRoZSBiZWdpbm5pbmcgaW5kZXgsIGluY2x1c2l2ZTsgPGNvZGU+MCA8PSBzdGFydAorICAgICAqIDw9IGxpbWl0PC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gbGltaXQgdGhlIGVuZGluZyBpbmRleCwgZXhjbHVzaXZlOyA8Y29kZT5zdGFydCA8PSBsaW1pdAorICAgICAqIDw9IGxlbmd0aCgpPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gdGV4dCBuZXcgdGV4dCB0byByZXBsYWNlIGNoYXJhY3RlcnMgPGNvZGU+c3RhcnQ8L2NvZGU+IHRvCisgICAgICogPGNvZGU+bGltaXQgLSAxPC9jb2RlPgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIFN0cmluZyB0ZXh0KSB7CisgICAgICAgIGJ1Zi5yZXBsYWNlKHN0YXJ0LCBsaW1pdCwgdGV4dCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVwbGFjZSBhIHN1YnN0cmluZyBvZiB0aGlzIG9iamVjdCB3aXRoIHRoZSBnaXZlbiB0ZXh0LgorICAgICAqIEBwYXJhbSBzdGFydCB0aGUgYmVnaW5uaW5nIGluZGV4LCBpbmNsdXNpdmU7IDxjb2RlPjAgPD0gc3RhcnQKKyAgICAgKiA8PSBsaW1pdDwvY29kZT4uCisgICAgICogQHBhcmFtIGxpbWl0IHRoZSBlbmRpbmcgaW5kZXgsIGV4Y2x1c2l2ZTsgPGNvZGU+c3RhcnQgPD0gbGltaXQKKyAgICAgKiA8PSBsZW5ndGgoKTwvY29kZT4uCisgICAgICogQHBhcmFtIGNoYXJzIHRoZSB0ZXh0IHRvIHJlcGxhY2UgY2hhcmFjdGVycyA8Y29kZT5zdGFydDwvY29kZT4KKyAgICAgKiB0byA8Y29kZT5saW1pdCAtIDE8L2NvZGU+CisgICAgICogQHBhcmFtIGNoYXJzU3RhcnQgdGhlIGJlZ2lubmluZyBpbmRleCBpbnRvIDxjb2RlPmNoYXJzPC9jb2RlPiwKKyAgICAgKiBpbmNsdXNpdmU7IDxjb2RlPjAgPD0gc3RhcnQgPD0gbGltaXQ8L2NvZGU+LgorICAgICAqIEBwYXJhbSBjaGFyc0xlbiB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgb2YgPGNvZGU+Y2hhcnM8L2NvZGU+LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIGNoYXJbXSBjaGFycywKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBjaGFyc1N0YXJ0LCBpbnQgY2hhcnNMZW4pIHsKKyAgICAgICAgYnVmLmRlbGV0ZShzdGFydCwgbGltaXQpOworICAgICAgICBidWYuaW5zZXJ0KHN0YXJ0LCBjaGFycywgY2hhcnNTdGFydCwgY2hhcnNMZW4pOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvcHkgYSBzdWJzdHJpbmcgb2YgdGhpcyBvYmplY3QsIHJldGFpbmluZyBhdHRyaWJ1dGUgKG91dC1vZi1iYW5kKQorICAgICAqIGluZm9ybWF0aW9uLiAgVGhpcyBtZXRob2QgaXMgdXNlZCB0byBkdXBsaWNhdGUgb3IgcmVvcmRlciBzdWJzdHJpbmdzLgorICAgICAqIFRoZSBkZXN0aW5hdGlvbiBpbmRleCBtdXN0IG5vdCBvdmVybGFwIHRoZSBzb3VyY2UgcmFuZ2UuCisgICAgICogCisgICAgICogQHBhcmFtIHN0YXJ0IHRoZSBiZWdpbm5pbmcgaW5kZXgsIGluY2x1c2l2ZTsgPGNvZGU+MCA8PSBzdGFydCA8PQorICAgICAqIGxpbWl0PC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gbGltaXQgdGhlIGVuZGluZyBpbmRleCwgZXhjbHVzaXZlOyA8Y29kZT5zdGFydCA8PSBsaW1pdCA8PQorICAgICAqIGxlbmd0aCgpPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gZGVzdCB0aGUgZGVzdGluYXRpb24gaW5kZXguICBUaGUgY2hhcmFjdGVycyBmcm9tCisgICAgICogPGNvZGU+c3RhcnQuLmxpbWl0LTE8L2NvZGU+IHdpbGwgYmUgY29waWVkIHRvIDxjb2RlPmRlc3Q8L2NvZGU+LgorICAgICAqIEltcGxlbWVudGF0aW9ucyBvZiB0aGlzIG1ldGhvZCBtYXkgYXNzdW1lIHRoYXQgPGNvZGU+ZGVzdCA8PSBzdGFydCB8fAorICAgICAqIGRlc3QgPj0gbGltaXQ8L2NvZGU+LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNvcHkoaW50IHN0YXJ0LCBpbnQgbGltaXQsIGludCBkZXN0KSB7CisgICAgICAgIGlmIChzdGFydCA9PSBsaW1pdCAmJiBzdGFydCA+PSAwICYmIHN0YXJ0IDw9IGJ1Zi5sZW5ndGgoKSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGNoYXJbXSB0ZXh0ID0gbmV3IGNoYXJbbGltaXQgLSBzdGFydF07CisgICAgICAgIGdldENoYXJzKHN0YXJ0LCBsaW1pdCwgdGV4dCwgMCk7CisgICAgICAgIHJlcGxhY2UoZGVzdCwgZGVzdCwgdGV4dCwgMCwgbGltaXQgLSBzdGFydCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEltcGxlbWVudHMgUmVwbGFjZWFibGUKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBoYXNNZXRhRGF0YSgpIHsKKyAgICAJcmV0dXJuIGZhbHNlOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1J1bGVCYXNlZEJyZWFrSXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1J1bGVCYXNlZEJyZWFrSXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hNGRmZThlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMzE0NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L3RleHQvUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5qYXZhLHYgJAorICogJERhdGU6IDIwMDIvMDgvMTAgMDA6MzI6MzAgJAorICogJFJldmlzaW9uOiAxLjIxICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisKKy8qCisgKiBAKCMpUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5qYXZhCTEuMyA5OS8wNC8wNworICoKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNvbXBhY3RCeXRlQXJyYXk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CitpbXBvcnQgamF2YS51dGlsLlN0YWNrOworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CitpbXBvcnQgamF2YS51dGlsLkVudW1lcmF0aW9uOworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnRleHQuU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3I7CisKK2ltcG9ydCBqYXZhLmlvLio7CisKKy8qKgorICogPHA+QSBzdWJjbGFzcyBvZiBCcmVha0l0ZXJhdG9yIHdob3NlIGJlaGF2aW9yIGlzIHNwZWNpZmllZCB1c2luZyBhIGxpc3Qgb2YgcnVsZXMuPC9wPgorICoKKyAqIDxwPlRoZXJlIGFyZSB0d28ga2luZHMgb2YgcnVsZXMsIHdoaWNoIGFyZSBzZXBhcmF0ZWQgYnkgc2VtaWNvbG9uczogPGk+c3Vic3RpdHV0aW9uczwvaT4KKyAqIGFuZCA8aT5yZWd1bGFyIGV4cHJlc3Npb25zLjwvaT48L3A+CisgKgorICogPHA+QSBzdWJzdGl0dXRpb24gcnVsZSBkZWZpbmVzIGEgbmFtZSB0aGF0IGNhbiBiZSB1c2VkIGluIHBsYWNlIG9mIGFuIGV4cHJlc3Npb24uIEl0CisgKiBjb25zaXN0cyBvZiBhIG5hbWUsIGFuIGVxdWFscyBzaWduLCBhbmQgYW4gZXhwcmVzc2lvbi4gKFRoZXJlIGNhbiBiZSBubyB3aGl0ZXNwYWNlIG9uCisgKiBlaXRoZXIgc2lkZSBvZiB0aGUgZXF1YWxzIHNpZ24uKSAgVG8ga2VlcCBpdHMgc3ludGFjdGljIG1lYW5pbmcgaW50YWN0LCB0aGUgZXhwcmVzc2lvbgorICogbXVzdCBiZSBlbmNsb3NlZCBpbiBwYXJlbnRoZXNlcyBvciBzcXVhcmUgYnJhY2tldHMuIEEgc3Vic3RpdHV0aW9uIGlzIHZpc2libGUgYWZ0ZXIgaXRzCisgKiBkZWZpbml0aW9uLCBhbmQgaXMgZmlsbGVkIGluIHVzaW5nIHNpbXBsZSB0ZXh0dWFsIHN1YnN0aXR1dGlvbiAod2hlbiBhIHN1YnN0aXR1dGlvbiBpcworICogdXNlZCwgaXRzIG5hbWUgaXMgZW5jbG9zZWQgaW4gY3VybHkgYnJhY2VzLiAgVGhlIGN1cmx5IGJyYWNlcyBhcmUgb3B0aW9uYWwgaW4gdGhlCisgKiBzdWJzdGl0aW9uJ3MgZGVmaW5pdGlvbikuIFN1YnN0aXR1dGlvbiBkZWZpbml0aW9ucyBjYW4gY29udGFpbiBvdGhlciBzdWJzdGl0dXRpb25zLCBhcworICogbG9uZyBhcyB0aG9zZSBzdWJzdGl0dXRpb25zIGhhdmUgYmVlbiBkZWZpbmVkIGZpcnN0LiBTdWJzdGl0dXRpb25zIGFyZSBnZW5lcmFsbHkgdXNlZCB0bworICogbWFrZSB0aGUgcmVndWxhciBleHByZXNzaW9ucyAod2hpY2ggY2FuIGdldCBxdWl0ZSBjb21wbGV4KSBzaG9ydGVyIGFuZCBlYXNpZXIgdG8gcmVhZC4KKyAqIFRoZXkgdHlwaWNhbGx5IGRlZmluZSBlaXRoZXIgY2hhcmFjdGVyIGNhdGVnb3JpZXMgb3IgY29tbW9ubHktdXNlZCBzdWJleHByZXNzaW9ucy48L3A+CisgKgorICogPHA+VGhlcmUgaXMgb25lIHNwZWNpYWwgc3Vic3RpdHV0aW9uLiZuYnNwOyBJZiB0aGUgZGVzY3JpcHRpb24gZGVmaW5lcyBhIHN1YnN0aXR1dGlvbgorICogY2FsbGVkICZxdW90O19pZ25vcmVfJnF1b3Q7LCB0aGUgZXhwcmVzc2lvbiBtdXN0IGJlIGEgW10gZXhwcmVzc2lvbiwgYW5kIHRoZQorICogZXhwcmVzc2lvbiBkZWZpbmVzIGEgc2V0IG9mIGNoYXJhY3RlcnMgKHRoZSAmcXVvdDs8ZW0+aWdub3JlIGNoYXJhY3RlcnM8L2VtPiZxdW90OykgdGhhdAorICogd2lsbCBiZSB0cmFuc3BhcmVudCB0byB0aGUgQnJlYWtJdGVyYXRvci4mbmJzcDsgQSBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzIHdpbGwgYnJlYWsgdGhlCisgKiBzYW1lIHdheSBpdCB3b3VsZCBpZiBhbnkgaWdub3JlIGNoYXJhY3RlcnMgaXQgY29udGFpbnMgYXJlIHRha2VuIG91dC4mbmJzcDsgQnJlYWsKKyAqIHBvc2l0aW9ucyBuZXZlciBvY2N1ciBiZWZvcmUgaWdub3JlIGNoYXJhY3RlcnMsIGV4Y2VwdCB3aGVuIHRoZSBjaGFyYWN0ZXIgYmVmb3JlIHRoZQorICogaWdub3JlIGNoYXJhY3RlcnMgaXMgYSBsaW5lIG9yIHBhcmFncmFwaCB0ZXJtaW5hdG9yLjwvcD4KKyAqCisgKiA8cD5BIHJlZ3VsYXIgZXhwcmVzc2lvbiB1c2VzIGEgc3ludGF4IHNpbWlsYXIgdG8gdGhlIG5vcm1hbCBVbml4IHJlZ3VsYXItZXhwcmVzc2lvbgorICogc3ludGF4LCBhbmQgZGVmaW5lcyBhIHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMgdG8gYmUga2VwdCB0b2dldGhlci4gV2l0aCBvbmUgc2lnbmlmaWNhbnQKKyAqIGV4Y2VwdGlvbiwgdGhlIGl0ZXJhdG9yIHVzZXMgYSBsb25nZXN0LXBvc3NpYmxlLW1hdGNoIGFsZ29yaXRobSB3aGVuIG1hdGNoaW5nIHRleHQgdG8gcmVndWxhcgorICogZXhwcmVzc2lvbnMuIFRoZSBpdGVyYXRvciBhbHNvIHRyZWF0cyBkZXNjcmlwdGlvbnMgY29udGFpbmluZyBtdWx0aXBsZSByZWd1bGFyIGV4cHJlc3Npb25zCisgKiBhcyBpZiB0aGV5IHdlcmUgT1JlZCB0b2dldGhlciAoaS5lLiwgYXMgaWYgdGhleSB3ZXJlIHNlcGFyYXRlZCBieSB8KS48L3A+CisgKgorICogPHA+VGhlIHNwZWNpYWwgY2hhcmFjdGVycyByZWNvZ25pemVkIGJ5IHRoZSByZWd1bGFyLWV4cHJlc3Npb24gcGFyc2VyIGFyZSBhcyBmb2xsb3dzOjwvcD4KKyAqCisgKiA8YmxvY2txdW90ZT4KKyAqICAgPHRhYmxlIGJvcmRlcj0iMSIgd2lkdGg9IjEwMCUiPgorICogICAgIDx0cj4KKyAqICAgICAgIDx0ZCB3aWR0aD0iNiUiPio8L3RkPgorICogICAgICAgPHRkIHdpZHRoPSI5NCUiPlNwZWNpZmllcyB0aGF0IHRoZSBleHByZXNzaW9uIHByZWNlZGluZyB0aGUgYXN0ZXJpc2sgbWF5IG9jY3VyIGFueSBudW1iZXIKKyAqICAgICAgIG9mIHRpbWVzIChpbmNsdWRpbmcgbm90IGF0IGFsbCkuPC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0cj4KKyAqICAgICAgIDx0ZCB3aWR0aD0iNiUiPis8L3RkPgorICogICAgICAgPHRkIHdpZHRoPSI5NCUiPlNwZWNpZmllcyB0aGF0IHRoZSBleHByZXNzaW9uIHByZWNlZGluZyB0aGUgYXN0ZXJpc2sgbWF5IG9jY3VyIG9uZSBvcgorICogICAgICAgbW9yZSB0aW1lcywgYnV0IG11c3Qgb2NjdXIgYXQgbGVhc3Qgb25jZS48L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyPgorICogICAgICAgPHRkIHdpZHRoPSI2JSI+PzwvdGQ+CisgKiAgICAgICA8dGQgd2lkdGg9Ijk0JSI+U3BlY2lmaWVzIHRoYXQgdGhlIGV4cHJlc3Npb24gcHJlY2VkaW5nIHRoZSBhc3RlcmlzayBtYXkgb2NjdXIgb25jZQorICogICAgICAgb3Igbm90IGF0IGFsbCAoaS5lLiwgaXQgbWFrZXMgdGhlIHByZWNlZGluZyBleHByZXNzaW9uIG9wdGlvbmFsKS48L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyPgorICogICAgICAgPHRkIHdpZHRoPSI2JSI+KCk8L3RkPgorICogICAgICAgPHRkIHdpZHRoPSI5NCUiPkVuY2xvc2VzIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycy4gIElmIGZvbGxvd2VkIGJ5ICogb3IgKywgdGhlCisgKiAgICAgICBzZXF1ZW5jZSByZXBlYXRzLiAgSWYgZm9sbG93ZWQgYnkgPywgdGhlIHNlcXVlbmNlIGlzIG9wdGlvbmFsLiAgT3RoZXJ3aXNlLCB0aGUKKyAqICAgICAgIHBhcmVudGhlc2VzIGFyZSBqdXN0IGEgZ3JvdXBpbmcgZGV2aWNlIGFuZCBhIHdheSB0byBkZWxpbWl0IHRoZSBlbmRzIG9mIGV4cHJlc3Npb25zCisgKiAgICAgICBjb250YWluaW5nIHwuPC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0cj4KKyAqICAgICAgIDx0ZCB3aWR0aD0iNiUiPnw8L3RkPgorICogICAgICAgPHRkIHdpZHRoPSI5NCUiPlNlcGFyYXRlcyB0d28gYWx0ZXJuYXRpdmUgc2VxdWVuY2VzIG9mIGNoYXJhY3RlcnMuJm5ic3A7IEVpdGhlciBvbmUKKyAqICAgICAgIHNlcXVlbmNlIG9yIHRoZSBvdGhlciwgYnV0IG5vdCBib3RoLCBtYXRjaGVzIHRoaXMgZXhwcmVzc2lvbi4mbmJzcDsgVGhlIHwgY2hhcmFjdGVyIGNhbgorICogICAgICAgb25seSBvY2N1ciBpbnNpZGUgKCkuPC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0cj4KKyAqICAgICAgIDx0ZCB3aWR0aD0iNiUiPi48L3RkPgorICogICAgICAgPHRkIHdpZHRoPSI5NCUiPk1hdGNoZXMgYW55IGNoYXJhY3Rlci48L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyPgorICogICAgICAgPHRkIHdpZHRoPSI2JSI+Kj88L3RkPgorICogICAgICAgPHRkIHdpZHRoPSI5NCUiPlNwZWNpZmllcyBhIG5vbi1ncmVlZHkgYXN0ZXJpc2suJm5ic3A7ICo/IHdvcmtzIHRoZSBzYW1lIHdheSBhcyAqLCBleGNlcHQKKyAqICAgICAgIHdoZW4gdGhlcmUgaXMgb3ZlcmxhcCBiZXR3ZWVuIHRoZSBsYXN0IGdyb3VwIG9mIGNoYXJhY3RlcnMgaW4gdGhlIGV4cHJlc3Npb24gcHJlY2VkaW5nIHRoZQorICogICAgICAgKiBhbmQgdGhlIGZpcnN0IGdyb3VwIG9mIGNoYXJhY3RlcnMgZm9sbG93aW5nIHRoZSAqLiZuYnNwOyBXaGVuIHRoZXJlIGlzIHRoaXMga2luZCBvZgorICogICAgICAgb3ZlcmxhcCwgKiB3aWxsIG1hdGNoIHRoZSBsb25nZXN0IHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMgdGhhdCBtYXRjaCB0aGUgZXhwcmVzc2lvbiBiZWZvcmUKKyAqICAgICAgIHRoZSAqLCBhbmQgKj8gd2lsbCBtYXRjaCB0aGUgc2hvcnRlc3Qgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyBtYXRjaGluZyB0aGUgZXhwcmVzc2lvbgorICogICAgICAgYmVmb3JlIHRoZSAqPy4mbmJzcDsgRm9yIGV4YW1wbGUsIGlmIHlvdSBoYXZlICZxdW90O3h4eXh5eXl4eXh5eHh5eHl4eXkmcXVvdDsgaW4gdGhlIHRleHQsCisgKiAgICAgICAmcXVvdDt4W3h5XSp4JnF1b3Q7IHdpbGwgbWF0Y2ggdGhyb3VnaCB0byB0aGUgbGFzdCB4IChpLmUuLCAmcXVvdDs8c3Ryb25nPnh4eXh5eXl4eXh5eHh5eHl4PC9zdHJvbmc+eXkmcXVvdDssCisgKiAgICAgICBidXQgJnF1b3Q7eFt4eV0qP3gmcXVvdDsgd2lsbCBvbmx5IG1hdGNoIHRoZSBmaXJzdCB0d28geGVzICgmcXVvdDs8c3Ryb25nPnh4PC9zdHJvbmc+eXh5eXl4eXh5eHh5eHl4eXkmcXVvdDspLjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHI+CisgKiAgICAgICA8dGQgd2lkdGg9IjYlIj5bXTwvdGQ+CisgKiAgICAgICA8dGQgd2lkdGg9Ijk0JSI+U3BlY2lmaWVzIGEgZ3JvdXAgb2YgYWx0ZXJuYXRpdmUgY2hhcmFjdGVycy4mbmJzcDsgQSBbXSBleHByZXNzaW9uIHdpbGwKKyAqICAgICAgIG1hdGNoIGFueSBzaW5nbGUgY2hhcmFjdGVyIHRoYXQgaXMgc3BlY2lmaWVkIGluIHRoZSBbXSBleHByZXNzaW9uLiZuYnNwOyBGb3IgbW9yZSBvbiB0aGUKKyAqICAgICAgIHN5bnRheCBvZiBbXSBleHByZXNzaW9ucywgc2VlIGJlbG93LjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHI+CisgKiAgICAgICA8dGQgd2lkdGg9IjYlIj4vPC90ZD4KKyAqICAgICAgIDx0ZCB3aWR0aD0iOTQlIj5TcGVjaWZpZXMgd2hlcmUgdGhlIGJyZWFrIHBvc2l0aW9uIHNob3VsZCBnbyBpZiB0ZXh0IG1hdGNoZXMgdGhpcworICogICAgICAgZXhwcmVzc2lvbi4mbmJzcDsgKGUuZy4sICZxdW90O1thLXpdJiM0MjsvWzpaczpdKlsxLTBdJnF1b3Q7IHdpbGwgbWF0Y2ggaWYgdGhlIGl0ZXJhdG9yIHNlZXMgYSBydW4KKyAqICAgICAgIG9mIGxldHRlcnMsIGZvbGxvd2VkIGJ5IGEgcnVuIG9mIHdoaXRlc3BhY2UsIGZvbGxvd2VkIGJ5IGEgZGlnaXQsIGJ1dCB0aGUgYnJlYWsgcG9zaXRpb24KKyAqICAgICAgIHdpbGwgYWN0dWFsbHkgZ28gYmVmb3JlIHRoZSB3aGl0ZXNwYWNlKS4mbmJzcDsgRXhwcmVzc2lvbnMgdGhhdCBkb24ndCBjb250YWluIC8gcHV0IHRoZQorICogICAgICAgYnJlYWsgcG9zaXRpb24gYXQgdGhlIGVuZCBvZiB0aGUgbWF0Y2hpbmcgdGV4dC48L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyPgorICogICAgICAgPHRkIHdpZHRoPSI2JSI+XDwvdGQ+CisgKiAgICAgICA8dGQgd2lkdGg9Ijk0JSI+RXNjYXBlIGNoYXJhY3Rlci4mbmJzcDsgVGhlIFwgaXRzZWxmIGlzIGlnbm9yZWQsIGJ1dCBjYXVzZXMgdGhlIG5leHQKKyAqICAgICAgIGNoYXJhY3RlciB0byBiZSB0cmVhdGVkIGFzIGxpdGVyYWwgY2hhcmFjdGVyLiZuYnNwOyBUaGlzIGhhcyBubyBlZmZlY3QgZm9yIG1hbnkKKyAqICAgICAgIGNoYXJhY3RlcnMsIGJ1dCBmb3IgdGhlIGNoYXJhY3RlcnMgbGlzdGVkIGFib3ZlLCB0aGlzIGRlcHJpdmVzIHRoZW0gb2YgdGhlaXIgc3BlY2lhbAorICogICAgICAgbWVhbmluZy4mbmJzcDsgKFRoZXJlIGFyZSBubyBzcGVjaWFsIGVzY2FwZSBzZXF1ZW5jZXMgZm9yIFVuaWNvZGUgY2hhcmFjdGVycywgb3IgdGFicyBhbmQKKyAqICAgICAgIG5ld2xpbmVzOyB0aGVzZSBhcmUgYWxsIGhhbmRsZWQgYnkgYSBoaWdoZXItbGV2ZWwgcHJvdG9jb2wuJm5ic3A7IEluIGEgSmF2YSBzdHJpbmcsCisgKiAgICAgICAmcXVvdDtcbiZxdW90OyB3aWxsIGJlIGNvbnZlcnRlZCB0byBhIGxpdGVyYWwgbmV3bGluZSBjaGFyYWN0ZXIgYnkgdGhlIHRpbWUgdGhlCisgKiAgICAgICByZWd1bGFyLWV4cHJlc3Npb24gcGFyc2VyIHNlZXMgaXQuJm5ic3A7IE9mIGNvdXJzZSwgdGhpcyBtZWFucyB0aGF0IFwgc2VxdWVuY2VzIHRoYXQgYXJlCisgKiAgICAgICB2aXNpYmxlIHRvIHRoZSByZWdleHAgcGFyc2VyIG11c3QgYmUgd3JpdHRlbiBhcyBcXCB3aGVuIGluc2lkZSBhIEphdmEgc3RyaW5nLikmbmJzcDsgQWxsCisgKiAgICAgICBjaGFyYWN0ZXJzIGluIHRoZSBBU0NJSSByYW5nZSBleGNlcHQgZm9yIGxldHRlcnMsIGRpZ2l0cywgYW5kIGNvbnRyb2wgY2hhcmFjdGVycyBhcmUKKyAqICAgICAgIHJlc2VydmVkIGNoYXJhY3RlcnMgdG8gdGhlIHBhcnNlciBhbmQgbXVzdCBiZSBwcmVjZWRlZCBieSBcIGV2ZW4gaWYgdGhleSBjdXJyZW50bHkgZG9uJ3QKKyAqICAgICAgIG1lYW4gYW55dGhpbmcuPC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0cj4KKyAqICAgICAgIDx0ZCB3aWR0aD0iNiUiPiE8L3RkPgorICogICAgICAgPHRkIHdpZHRoPSI5NCUiPklmICEgYXBwZWFycyBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgcmVndWxhciBleHByZXNzaW9uLCBpdCB0ZWxscyB0aGUgcmVnZXhwCisgKiAgICAgICBwYXJzZXIgdGhhdCB0aGlzIGV4cHJlc3Npb24gc3BlY2lmaWVzIHRoZSBiYWNrd2FyZHMtaXRlcmF0aW9uIGJlaGF2aW9yIG9mIHRoZSBpdGVyYXRvciwKKyAqICAgICAgIGFuZCBub3QgaXRzIG5vcm1hbCBpdGVyYXRpb24gYmVoYXZpb3IuJm5ic3A7IFRoaXMgaXMgZ2VuZXJhbGx5IG9ubHkgdXNlZCBpbiBzaXR1YXRpb25zCisgKiAgICAgICB3aGVyZSB0aGUgYXV0b21hdGljYWxseS1nZW5lcmF0ZWQgYmFja3dhcmRzLWl0ZXJhdGlvbiBiZWhhdmlvciBkb2Vzbid0IHByb2R1Y2UKKyAqICAgICAgIHNhdGlzZmFjdG9yeSByZXN1bHRzIGFuZCBtdXN0IGJlIHN1cHBsZW1lbnRlZCB3aXRoIGV4dHJhIGNsaWVudC1zcGVjaWZpZWQgcnVsZXMuPC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0cj4KKyAqICAgICAgIDx0ZCB3aWR0aD0iNiUiPjxlbT4oYWxsIG90aGVycyk8L2VtPjwvdGQ+CisgKiAgICAgICA8dGQgd2lkdGg9Ijk0JSI+QWxsIG90aGVyIGNoYXJhY3RlcnMgYXJlIHRyZWF0ZWQgYXMgbGl0ZXJhbCBjaGFyYWN0ZXJzLCB3aGljaCBtdXN0IG1hdGNoCisgKiAgICAgICB0aGUgY29ycmVzcG9uZGluZyBjaGFyYWN0ZXIocykgaW4gdGhlIHRleHQgZXhhY3RseS48L3RkPgorICogICAgIDwvdHI+CisgKiAgIDwvdGFibGU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogPHA+V2l0aGluIGEgW10gZXhwcmVzc2lvbiwgYSBudW1iZXIgb2Ygb3RoZXIgc3BlY2lhbCBjaGFyYWN0ZXJzIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkKKyAqIGdyb3VwcyBvZiBjaGFyYWN0ZXJzOjwvcD4KKyAqCisgKiA8YmxvY2txdW90ZT4KKyAqICAgPHRhYmxlIGJvcmRlcj0iMSIgd2lkdGg9IjEwMCUiPgorICogICAgIDx0cj4KKyAqICAgICAgIDx0ZCB3aWR0aD0iNiUiPi08L3RkPgorICogICAgICAgPHRkIHdpZHRoPSI5NCUiPlNwZWNpZmllcyBhIHJhbmdlIG9mIG1hdGNoaW5nIGNoYXJhY3RlcnMuJm5ic3A7IEZvciBleGFtcGxlCisgKiAgICAgICAmcXVvdDtbYS1wXSZxdW90OyBtYXRjaGVzIGFsbCBsb3dlcmNhc2UgTGF0aW4gbGV0dGVycyBmcm9tIGEgdG8gcCAoaW5jbHVzaXZlKS4mbmJzcDsgVGhlIC0KKyAqICAgICAgIHNpZ24gc3BlY2lmaWVzIHJhbmdlcyBvZiBjb250aW51b3VzIFVuaWNvZGUgbnVtZXJpYyB2YWx1ZXMsIG5vdCByYW5nZXMgb2YgY2hhcmFjdGVycyBpbiBhCisgKiAgICAgICBsYW5ndWFnZSdzIGFscGhhYmV0aWNhbCBvcmRlcjogJnF1b3Q7W2Etel0mcXVvdDsgZG9lc24ndCBpbmNsdWRlIGNhcGl0YWwgbGV0dGVycywgbm9yIGRvZXMKKyAqICAgICAgIGl0IGluY2x1ZGUgYWNjZW50ZWQgbGV0dGVycyBzdWNoIGFzIGEtdW1sYXV0LjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHI+CisgKiAgICAgICA8dGQgd2lkdGg9IjYlIj5ePC90ZD4KKyAqICAgICAgIDx0ZCB3aWR0aD0iOTQlIj5JbnZlcnRzIHRoZSBleHByZXNzaW9uLiAgQWxsIGNoYXJhY3RlcnMgdGhlIGV4cHJlc3Npb24gaW5jbHVkZXMgYXJlCisgKiAgICAgICBleGNsdWRlZCwgYW5kIHZpY2UgdmVyc2EuICAoaS5lLiwgaXQgaGFzIHRoZSBlZmZlY3Qgb2Ygc2F5aW5nICJhbGwgVW5pY29kZSBjaGFyYWN0ZXJzCisgKiAgICAgICBleGNlcHQuLi4iKSAgVGhpcyBjaGFyYWN0ZXIgb25seSBoYXMgaXRzIHNwZWNpYWwgbWVhbmluZyB3aGVuIGl0J3MgdGhlIGZpcnN0IGNoYXJhY3RlcgorICogICAgICAgaW4gdGhlIFtdIGV4cHJlc3Npb24uICAoR2VuZXJhbGx5LCB5b3Ugb25seSBzZWUgdGhlIF4gY2hhcmFjdGVyIGluc2lkZSBhIG5lc3RlZCBbXQorICogICAgICAgZXhwcmVzc2lvbiB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIHN5bnRheCBiZWxvdy4pPC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0cj4KKyAqICAgICAgIDx0ZCB3aWR0aD0iNiUiPjxlbT4oYWxsIG90aGVycyk8L2VtPjwvdGQ+CisgKiAgICAgICA8dGQgd2lkdGg9Ijk0JSI+QWxsIG90aGVyIGNoYXJhY3RlcnMgYXJlIHRyZWF0ZWQgYXMgbGl0ZXJhbCBjaGFyYWN0ZXJzLiZuYnNwOyAoRm9yCisgKiAgICAgICBleGFtcGxlLCAmcXVvdDtbYWVpb3VdJnF1b3Q7IHNwZWNpZmllcyBqdXN0IHRoZSBsZXR0ZXJzIGEsIGUsIGksIG8sIGFuZCB1Lik8L3RkPgorICogICAgIDwvdHI+CisgKiAgIDwvdGFibGU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogPHA+W10gZXhwcmVzc2lvbnMgY2FuIG5lc3QuICBUaGVyZSBhcmUgc29tZSBvdGhlciBjaGFyYWN0ZXJzIHRoYXQgaGF2ZSBzcGVjaWFsIG1lYW5pbmcgb25seQorICogd2hlbiB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggbmVzdGVyIFtdIGV4cHJlc3Npb25zOjwvcD4KKyAqCisgKiA8YmxvY2txdW90ZT4KKyAqICAgPHRhYmxlIGJvcmRlcj0iMSIgd2lkdGg9IjEwMCUiPgorICogICAgIDx0cj4KKyAqICAgICAgIDx0ZCB3aWR0aD0iNiUiPjo6PC90ZD4KKyAqICAgICAgIDx0ZCB3aWR0aD0iOTQlIj5XaXRoaW4gYSBuZXN0ZWQgW10gZXhwcmVzc2lvbiwgYSBwYWlyIG9mIGNvbG9ucyBjb250YWluaW5nIGEgb25lLSBvcgorICogICAgICAgdHdvLWxldHRlciBjb2RlIG1hdGNoZXMgYWxsIGNoYXJhY3RlcnMgaW4gdGhlIGNvcnJlc3BvbmRpbmcgVW5pY29kZSBjYXRlZ29yeS4mbmJzcDsKKyAqICAgICAgIFRoZSA6OiBleHByZXNzaW9uIGhhcyB0byBiZSB0aGUgb25seSB0aGluZyBpbnNpZGUgdGhlIFtdIGV4cHJlc3Npb24uIFRoZSB0d28tbGV0dGVyIGNvZGVzCisgKiAgICAgICBhcmUgdGhlIHNhbWUgYXMgdGhlIHR3by1sZXR0ZXIgY29kZXMgaW4gdGhlIFVuaWNvZGUgZGF0YWJhc2UgKGZvciBleGFtcGxlLAorICogICAgICAgJnF1b3Q7W1s6U2M6XVs6U206XV0mcXVvdDsgbWF0Y2hlcyBhbGwgY3VycmVuY3kgc3ltYm9scyBhbmQgYWxsIG1hdGggc3ltYm9scykuJm5ic3A7CisgKiAgICAgICBTcGVjaWZ5aW5nIGEgb25lLWxldHRlciBjb2RlIGlzIHRoZSBzYW1lIGFzIHNwZWNpZnlpbmcgYWxsIHR3by1sZXR0ZXIgY29kZXMgdGhhdCBiZWdpbgorICogICAgICAgd2l0aCB0aGF0IGxldHRlciAoZm9yIGV4YW1wbGUsICZxdW90O1tbOkw6XV0mcXVvdDsgbWF0Y2hlcyBhbGwgbGV0dGVycywgYW5kIGlzIGVxdWl2YWxlbnQKKyAqICAgICAgIHRvICZxdW90O1tbOkx1Ol1bOkxsOl1bOkxvOl1bOkxtOl1bOkx0Ol1dJnF1b3Q7KS4mbmJzcDsgQW55dGhpbmcgb3RoZXIgdGhhbiBhIHZhbGlkCisgKiAgICAgICB0d28tbGV0dGVyIFVuaWNvZGUgY2F0ZWdvcnkgY29kZSBvciBhIHNpbmdsZSBsZXR0ZXIgdGhhdCBiZWdpbnMgYSB2YWxpZGUgVW5pY29kZSBjYXRlZ29yeQorICogICAgICAgY29kZSBpcyBpbGxlZ2FsIHdpdGhpbiB0aGUgY29sb25zLjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHI+CisgKiAgICAgICA8dGQgd2lkdGg9IjYlIj58PC90ZD4KKyAqICAgICAgIDx0ZCB3aWR0aD0iOTQlIj5Ud28gbmVzdGVkIFtdIGV4cHJlc3Npb25zIGp1eHRhcG9zZWQgb3Igc2VwYXJhdGVkIG9ubHkgYnkgYSB8IGNoYXJhY3RlcgorICogICAgICAgYXJlIG1lcmdlZCB0b2dldGhlciBpbnRvIGEgc2luZ2xlIFtdIGV4cHJlc3Npb24gbWF0Y2hpbmcgYWxsIHRoZSBjaGFyYWN0ZXJzIGluIGVpdGhlcgorICogICAgICAgb2YgdGhlIG9yaWdpbmFsIFtdIGV4cHJlc3Npb25zLiAgKGUuZy4sICJbW2FiXVtiY11dIiBpcyBlcXVpdmFsZW50IHRvICJbYWJjXSIsIGFuZCBzbworICogICAgICAgaXMgIltbYWJdfFtiY11dIi4gPGI+Tk9URTo8L2I+ICAiW2FiXVtiY10iIGlzIE5PVCB0aGUgc2FtZSB0aGluZyBhcyAiW1thYl1bYmNdXSIuCisgKiAgICAgICBUaGUgZmlyc3QgZXhwcmVzc2lvbiB3aWxsIG1hdGNoIHR3byBjaGFyYWN0ZXJzOiBhbiBhIG9yIGIgZm9sbG93ZWQgYnkgZWl0aGVyIGFub3RoZXIKKyAqICAgICAgIGIgb3IgYSBjLiAgVGhlIHNlY29uZCBleHByZXNzaW9uIHdpbGwgbWF0Y2ggYSBzaW5nbGUgY2hhcmFjdGVyLCB3aGljaCBtYXkgYmUgYSwgYiwgb3IgYy4KKyAqICAgICAgIFRoZSBuZXN0aW5nIGlzIDxlbT5yZXF1aXJlZDwvZW0+IGZvciB0aGUgZXhwcmVzc2lvbnMgdG8gbWVyZ2UgdG9nZXRoZXIuPC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0cj4KKyAqICAgICAgIDx0ZCB3aWR0aD0iNiUiPiY8L3RkPgorICogICAgICAgPHRkIHdpZHRoPSI5NCUiPlR3byBuZXN0ZWQgW10gZXhwcmVzc2lvbnMgd2l0aCBvbmx5ICYgYmV0d2VlbiB0aGVtIHdpbGwgbWF0Y2ggYW55CisgKiAgICAgICBjaGFyYWN0ZXIgdGhhdCBhcHBlYXJzIGluIGJvdGggbmVzdGVkIFtdIGV4cHJlc3Npb25zICh0aGlzIGlzIGEgc2V0IGludGVyc2VjdGlvbikuCisgKiAgICAgICAoZS5nLiwgIltbYWJdJltiY11dIiB3aWxsIG9ubHkgbWF0Y2ggdGhlIGxldHRlciBiLik8L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyPgorICogICAgICAgPHRkIHdpZHRoPSI2JSI+LTwvdGQ+CisgKiAgICAgICA8dGQgd2lkdGg9Ijk0JSI+VHdvIG5lc3RlZCBbXSBleHByZXNzaW9ucyB3aXRoIC0gYmV0d2VlbiB0aGVtIHdpbGwgbWF0Y2ggYW55CisgKiAgICAgICBjaGFyYWN0ZXIgdGhhdCBhcHBlYXJzIGluIHRoZSBmaXJzdCBuZXN0ZWQgW10gZXhwcmVzc2lvbiA8ZW0+YnV0IG5vdDwvZW0+IHRoZQorICogICAgICAgc2Vjb25kIG9uZSAodGhpcyBpcyBhbiBhc3ltbWV0cmljYWwgc2V0IGRpZmZlcmVuY2UpLiAgKGUuZy4sICJbWzpTYzpdLVskXV0iCisgKiAgICAgICBtYXRjaGVzIGFueSBjdXJyZW5jeSBzeW1ib2wgZXhjZXB0IHRoZSBkb2xsYXIgc2lnbi4gICJbW2FiXS1bYmNdXSB3aWxsIG1hdGNoCisgKiAgICAgICBvbmx5IHRoZSBsZXR0ZXIgYS4gIFRoaXMgaGFzIGV4YWN0bHkgdGhlIHNhbWUgZWZmZWN0IGFzICJbW2FiXSZbXmJjXV0iLik8L3RkPgorICogICAgIDwvdHI+CisgKgorICogPHA+Rm9yIGEgbW9yZSBjb21wbGV0ZSBleHBsYW5hdGlvbiwgc2VlIDxhCisgKiBocmVmPSJodHRwOi8vd3d3LmlibS5jb20vZGV2ZWxvcGVyd29ya3MvdW5pY29kZS9saWJyYXJ5L2JvdW5kYXJpZXMvYm91bmRhcmllcy5odG1sIj5odHRwOi8vd3d3LmlibS5jb20vZGV2ZWxvcGVyd29ya3MvdW5pY29kZS9saWJyYXJ5L2JvdW5kYXJpZXMvYm91bmRhcmllcy5odG1sPC9hPi4KKyAqICZuYnNwOyBGb3IgZXhhbXBsZXMsIHNlZSB0aGUgcmVzb3VyY2UgZGF0YSAod2hpY2ggaXMgYW5ub3RhdGVkKS48L3A+CisgKgorICogQGF1dGhvciBSaWNoYXJkIEdpbGxhbQorICogJFJDU2ZpbGU6IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuamF2YSx2ICQgJFJldmlzaW9uOiAxLjIxICQgJERhdGU6IDIwMDIvMDgvMTAgMDA6MzI6MzAgJAorICovCitwdWJsaWMgY2xhc3MgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBleHRlbmRzIEJyZWFrSXRlcmF0b3IgeworCisgICAgLyoqCisgICAgICogQSB0b2tlbiB1c2VkIGFzIGEgY2hhcmFjdGVyLWNhdGVnb3J5IHZhbHVlIHRvIGlkZW50aWZ5IGlnbm9yZSBjaGFyYWN0ZXJzCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBieXRlIElHTk9SRSA9IC0xOworCisgICAgLyoqCisgICAgICogU3BlY2lhbCB2YXJpYWJsZSB1c2VkIHRvIGRlZmluZSBpZ25vcmUgY2hhcmFjdGVycworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBJR05PUkVfVkFSID0gIl9pZ25vcmVfIjsKKworICAgIC8qKgorICAgICAqIFRoZSBzdGF0ZSBudW1iZXIgb2YgdGhlIHN0YXJ0aW5nIHN0YXRlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc2hvcnQgU1RBUlRfU1RBVEUgPSAxOworCisgICAgLyoqCisgICAgICogVGhlIHN0YXRlLXRyYW5zaXRpb24gdmFsdWUgaW5kaWNhdGluZyAic3RvcCIKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBzaG9ydCBTVE9QX1NUQVRFID0gMDsKKworICAgIC8qKgorICAgICAqIFRoZSB0ZXh0dWFsIGRlc2NyaXB0aW9uIHRoaXMgaXRlcmF0b3Igd2FzIGNyZWF0ZWQgZnJvbQorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIGRlc2NyaXB0aW9uOworCisgICAgLyoqCisgICAgICogQSB0YWJsZSB0aGF0IGluZGV4ZXMgZnJvbSBjaGFyYWN0ZXIgdmFsdWVzIHRvIGNoYXJhY3RlciBjYXRlZ29yeSBudW1iZXJzCisgICAgICovCisgICAgcHJpdmF0ZSBDb21wYWN0Qnl0ZUFycmF5IGNoYXJDYXRlZ29yeVRhYmxlID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFRoZSB0YWJsZSBvZiBzdGF0ZSB0cmFuc2l0aW9ucyB1c2VkIGZvciBmb3J3YXJkIGl0ZXJhdGlvbgorICAgICAqLworICAgIHByaXZhdGUgc2hvcnRbXSBzdGF0ZVRhYmxlID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFRoZSB0YWJsZSBvZiBzdGF0ZSB0cmFuc2l0aW9ucyB1c2VkIHRvIHN5bmMgdXAgdGhlIGl0ZXJhdG9yIHdpdGggdGhlCisgICAgICogdGV4dCBpbiBiYWNrd2FyZHMgYW5kIHJhbmRvbS1hY2Nlc3MgaXRlcmF0aW9uCisgICAgICovCisgICAgcHJpdmF0ZSBzaG9ydFtdIGJhY2t3YXJkc1N0YXRlVGFibGUgPSBudWxsOworCisgICAgLyoqCisgICAgICogQSBsaXN0IG9mIGZsYWdzIGluZGljYXRpbmcgd2hpY2ggc3RhdGVzIGluIHRoZSBzdGF0ZSB0YWJsZSBhcmUgYWNjZXB0aW5nCisgICAgICogKCJlbmQiKSBzdGF0ZXMKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW5bXSBlbmRTdGF0ZXMgPSBudWxsOworCisgICAgLyoqCisgICAgICogQSBsaXN0IG9mIGZsYWdzIGluZGljYXRpbmcgd2hpY2ggc3RhdGVzIGluIHRoZSBzdGF0ZSB0YWJsZSBhcmUKKyAgICAgKiBsb29rYWhlYWQgc3RhdGVzIChzdGF0ZXMgd2hpY2ggdHVybiBsb29rYWhlYWQgb24gYW5kIG9mZikKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW5bXSBsb29rYWhlYWRTdGF0ZXMgPSBudWxsOworCisgICAgLyoqCisgICAgICogVGhlIG51bWJlciBvZiBjaGFyYWN0ZXIgY2F0ZWdvcmllcyAoYW5kLCB0aHVzLCB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgaW4KKyAgICAgKiB0aGUgc3RhdGUgdGFibGVzKQorICAgICAqLworICAgIHByaXZhdGUgaW50IG51bUNhdGVnb3JpZXM7CisKKyAgICAvKioKKyAgICAgKiBUaGUgY2hhcmFjdGVyIGl0ZXJhdG9yIHRocm91Z2ggd2hpY2ggdGhpcyBCcmVha0l0ZXJhdG9yIGFjY2Vzc2VzIHRoZSB0ZXh0CisgICAgICovCisgICAgcHJpdmF0ZSBDaGFyYWN0ZXJJdGVyYXRvciB0ZXh0ID0gbnVsbDsKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBjb25zdHJ1Y3RvcnMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBhY2NvcmRpbmcgdG8gdGhlIGRlc2NyaXB0aW9uCisgICAgICogcHJvdmlkZWQuICBJZiB0aGUgZGVzY3JpcHRpb24gaXMgbWFsZm9ybWVkLCB0aHJvd3MgYW4KKyAgICAgKiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24uICBOb3JtYWxseSwgaW5zdGVhZCBvZiBjb25zdHJ1Y3RpbmcgYQorICAgICAqIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgZGlyZWN0b3J5LCB5b3UnbGwgdXNlIHRoZSBmYWN0b3J5IG1ldGhvZHMKKyAgICAgKiBvbiBCcmVha0l0ZXJhdG9yIHRvIGNyZWF0ZSBvbmUgaW5kaXJlY3RseSBmcm9tIGEgZGVzY3JpcHRpb24KKyAgICAgKiBpbiB0aGUgZnJhbWV3b3JrJ3MgcmVzb3VyY2UgZmlsZXMuICBZb3UnZCB1c2UgdGhpcyB3aGVuIHlvdSB3YW50CisgICAgICogc3BlY2lhbCBiZWhhdmlvciBub3QgcHJvdmlkZWQgYnkgdGhlIGJ1aWx0LWluIGl0ZXJhdG9ycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihTdHJpbmcgZGVzY3JpcHRpb24pIHsKKy8vU3lzdGVtLm91dC5wcmludGxuKCI+Pj5SQkJJIGNvbnN0cnVjdG9yIik7CisgICAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjsKKworICAgICAgICAvLyB0aGUgYWN0dWFsIHdvcmsgaXMgZG9uZSBieSB0aGUgQnVpbGRlciBjbGFzcworICAgICAgICBCdWlsZGVyIGJ1aWxkZXIgPSBtYWtlQnVpbGRlcigpOworICAgICAgICBidWlsZGVyLmJ1aWxkQnJlYWtJdGVyYXRvcigpOworLy9TeXN0ZW0ub3V0LnByaW50bG4oIjw8PFJCQkkgY29uc3RydWN0b3IiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgQnVpbGRlci4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgQnVpbGRlciBtYWtlQnVpbGRlcigpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBCdWlsZGVyKCk7CisgICAgfQorCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIGJvaWxlcnBsYXRlCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8qKgorICAgICAqIENsb25lcyB0aGlzIGl0ZXJhdG9yLgorICAgICAqIEByZXR1cm4gQSBuZXdseS1jb25zdHJ1Y3RlZCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHdpdGggdGhlIHNhbWUKKyAgICAgKiBiZWhhdmlvciBhcyB0aGlzIG9uZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkKKyAgICB7CisgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgcmVzdWx0ID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpIHN1cGVyLmNsb25lKCk7CisgICAgICAgIGlmICh0ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJlc3VsdC50ZXh0ID0gKENoYXJhY3Rlckl0ZXJhdG9yKSB0ZXh0LmNsb25lKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgYm90aCBCcmVha0l0ZXJhdG9ycyBhcmUgb2YgdGhlIHNhbWUgY2xhc3MsIGhhdmUgdGhlIHNhbWUKKyAgICAgKiBydWxlcywgYW5kIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZSB0ZXh0LgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgdGhhdCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBvdGhlciA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKSB0aGF0OworICAgICAgICAgICAgaWYgKCFkZXNjcmlwdGlvbi5lcXVhbHMob3RoZXIuZGVzY3JpcHRpb24pKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHRleHQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBvdGhlci50ZXh0ID09IG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGV4dC5lcXVhbHMob3RoZXIudGV4dCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGRlc2NyaXB0aW9uIHVzZWQgdG8gY3JlYXRlIHRoaXMgaXRlcmF0b3IKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gZGVzY3JpcHRpb247CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcHV0ZSBhIGhhc2hjb2RlIGZvciB0aGlzIEJyZWFrSXRlcmF0b3IKKyAgICAgKiBAcmV0dXJuIEEgaGFzaCBjb2RlCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpCisgICAgeworICAgICAgICByZXR1cm4gZGVzY3JpcHRpb24uaGFzaENvZGUoKTsKKyAgICB9CisKKy8vCisvLyAgIER1bXAgb3V0IGEgbW9yZS1vci1sZXNzIGh1bWFuIHJlYWRhYmxlIGZvcm0gb2YgdGhlCisvLyAgIGNvbXBsZXRlIHN0YXRlIHRhYmxlIGFuZCBjaGFyYWN0ZXIgY2xhc3MgZGVmaW5pdGlvbnMKKy8vCisgICAgLy8vQ0xPVkVSOk9GRgorcHVibGljIHZvaWQgZGVidWdEdW1wVGFibGVzKCkgeworICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ2hhcmFjdGVyIENsYXNzZXM6Iik7CisgICAgaW50IGN1cnJlbnRDaGFyQ2xhc3MgPSAyNTc7CisgICAgaW50IHN0YXJ0Q3VycmVudFJhbmdlID0gMDsKKyAgICBpbnQgaW5pdGlhbFN0cmluZ0xlbmd0aCA9IDA7CisKKyAgICBTdHJpbmdCdWZmZXJbXSBjaGFyQ2xhc3NSYW5nZXMgPSBuZXcgU3RyaW5nQnVmZmVyW251bUNhdGVnb3JpZXNdOworICAgIGZvciAoaW50IGk9MDsgaTxudW1DYXRlZ29yaWVzOyBpKyspIHsKKyAgICAgICAgY2hhckNsYXNzUmFuZ2VzW2ldID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgIH0KKworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMHhmZmZmOyBpKyspIHsKKyAgICAgICAgaWYgKChpbnQpY2hhckNhdGVnb3J5VGFibGUuZWxlbWVudEF0KChjaGFyKWkpICE9IGN1cnJlbnRDaGFyQ2xhc3MpIHsKKyAgICAgICAgICAgIGlmIChjdXJyZW50Q2hhckNsYXNzICE9IDI1NykgeworICAgICAgICAgICAgICAgIC8vIENvbXBsZXRlIHRoZSBvdXRwdXQgb2YgdGhlIHByZXZpb3VzIHJhbmdlLgorICAgICAgICAgICAgICAgIGlmIChpICE9IHN0YXJ0Q3VycmVudFJhbmdlKzEpIHsKKyAgICAgICAgICAgICAgICAgICAgY2hhckNsYXNzUmFuZ2VzW2N1cnJlbnRDaGFyQ2xhc3NdLmFwcGVuZCgiLSIrIEludGVnZXIudG9IZXhTdHJpbmcoaS0xKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChjaGFyQ2xhc3NSYW5nZXNbY3VycmVudENoYXJDbGFzc10ubGVuZ3RoKCkgJSA3MiA8IGluaXRpYWxTdHJpbmdMZW5ndGggJSA3MikgeworICAgICAgICAgICAgICAgICAgICBjaGFyQ2xhc3NSYW5nZXNbY3VycmVudENoYXJDbGFzc10uYXBwZW5kKCJcbiAgICAgIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBPdXRwdXQgdGhlIHN0YXJ0IG9mIHRoZSBuZXcgcmFuZ2UuCisgICAgICAgICAgICBjdXJyZW50Q2hhckNsYXNzID0gKGludCljaGFyQ2F0ZWdvcnlUYWJsZS5lbGVtZW50QXQoKGNoYXIpaSk7CisgICAgICAgICAgICBzdGFydEN1cnJlbnRSYW5nZSA9IGk7CisgICAgICAgICAgICBpbml0aWFsU3RyaW5nTGVuZ3RoID0gY2hhckNsYXNzUmFuZ2VzW2N1cnJlbnRDaGFyQ2xhc3NdLmxlbmd0aCgpOworICAgICAgICAgICAgaWYgKGNoYXJDbGFzc1Jhbmdlc1tjdXJyZW50Q2hhckNsYXNzXS5sZW5ndGgoKSA+IDApCisgICAgICAgICAgICAgICAgY2hhckNsYXNzUmFuZ2VzW2N1cnJlbnRDaGFyQ2xhc3NdLmFwcGVuZCgiLCAiKTsKKyAgICAgICAgICAgIGNoYXJDbGFzc1Jhbmdlc1tjdXJyZW50Q2hhckNsYXNzXS5hcHBlbmQoSW50ZWdlci50b0hleFN0cmluZyhpKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBmb3IgKGludCBpPTA7IGk8bnVtQ2F0ZWdvcmllczsgaSsrKSB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihpICsgIjogICAgICIgKyBjaGFyQ2xhc3NSYW5nZXNbaV0pOworICAgIH0KKworCisgICAgU3lzdGVtLm91dC5wcmludGxuKCJcblxuU3RhdGUgVGFibGUuICAgKjogZW5kIHN0YXRlICAgICAlOiBsb29rIGFoZWFkIHN0YXRlIik7CisgICAgU3lzdGVtLm91dC5wcmludCgiQzpcdCIpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtQ2F0ZWdvcmllczsgaSsrKQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50KEludGVnZXIudG9TdHJpbmcoaSkgKyAiXHQiKTsKKyAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsgU3lzdGVtLm91dC5wcmludCgiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3RhdGVUYWJsZS5sZW5ndGg7IGkrKykgeworICAgICAgICBpZiAoaSAlIG51bUNhdGVnb3JpZXMgPT0gMCkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgICAgICBpZiAoZW5kU3RhdGVzW2kgLyBudW1DYXRlZ29yaWVzXSkKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIqIik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiICIpOworICAgICAgICAgICAgaWYgKGxvb2thaGVhZFN0YXRlc1tpIC8gbnVtQ2F0ZWdvcmllc10pIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIlIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiICIpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludChJbnRlZ2VyLnRvU3RyaW5nKGkgLyBudW1DYXRlZ29yaWVzKSArICI6XHQiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc3RhdGVUYWJsZVtpXSA9PSAwKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIuXHQiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoSW50ZWdlci50b1N0cmluZyhzdGF0ZVRhYmxlW2ldKSArICJcdCIpOworICAgICAgICB9CisgICAgfQorICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLy8vQ0xPVkVSOk9GRgorLy8gREVMRVRFIE1FIEJFRk9SRSBSRUxFQVNFISEhCitwdWJsaWMgdm9pZCB3cml0ZVRhYmxlc1RvRmlsZShGaWxlT3V0cHV0U3RyZWFtIGZpbGUsIGJvb2xlYW4gbGl0dGxlRW5kaWFuKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgIC8vIE5PVEU6IFRoZSBmb3JtYXQgYmVpbmcgd3JpdHRlbiBoZXJlIGlzIGRlc2lnbmVkIHRvIGJlIGNvbXBhdGlibGUgd2l0aAorICAgIC8vIHRoZSBJQ1UgdWRhdGEgaW50ZXJmYWNlcyBhbmQgbWF5IG5vdCBiZSB1c2VmdWwgZm9yIG11Y2ggZWxzZQorICAgIERhdGFPdXRwdXRTdHJlYW0gb3V0ID0gbmV3IERhdGFPdXRwdXRTdHJlYW0oZmlsZSk7CisKKy8vIC0tLSB3cml0ZSB0aGUgZmlsZSBoZWFkZXIgLS0tCitieXRlW10gY29tbWVudCA9ICJDb3B5cmlnaHQgKEMpIDE5OTksIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycC4gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4iLmdldEJ5dGVzKCJVUy1BU0NJSSIpOworLy8gd3JpdGUgdGhlIHNpemUgb2YgdGhlIGhlYWRlciAocm91bmRlZCB1cCB0byB0aGUgbmV4dCAxNi1ieXRlIGJvdW5kYXJ5KQorc2hvcnQgaGVhZGVyU2l6ZSA9IChzaG9ydCkoY29tbWVudC5sZW5ndGggKyAxIC8vIGxlbmd0aCBvZiBjb21tZW50CisgICAgICAgICAgICAgICAgICAgKyAyNCk7IC8vIHNpemUgb2Ygc3RhdGljIGhlYWRlciBkYXRhCitzaG9ydCByZWFsSGVhZGVyU2l6ZSA9IChzaG9ydCkoaGVhZGVyU2l6ZSArICgoaGVhZGVyU2l6ZSAlIDE2ID09IDApID8gMCA6IDE2IC0gKGhlYWRlclNpemUgJSAxNikpKTsKK3dyaXRlU3dhcHBlZFNob3J0KHJlYWxIZWFkZXJTaXplLCBvdXQsIGxpdHRsZUVuZGlhbik7CisvLyB3cml0ZSBtYWdpYyBieXRlIHZhbHVlcworb3V0LndyaXRlKDB4ZGEpOworb3V0LndyaXRlKDB4MjcpOworLy8gd3JpdGUgc2l6ZSBvZiBjb3JlIGhlYWRlciBkYXRhCit3cml0ZVN3YXBwZWRTaG9ydCgoc2hvcnQpMjAsIG91dCwgbGl0dGxlRW5kaWFuKTsKKy8vIHdyaXRlIHJlc2VydmVkIGJ5dGVzCit3cml0ZVN3YXBwZWRTaG9ydCgoc2hvcnQpMCwgb3V0LCBsaXR0bGVFbmRpYW4pOworCisvLyB3cml0ZSBmbGFnIGluZGljYXRpbmcgd2hldGhlciB3ZSdyZSBiaWctZW5kaWFuCitpZiAobGl0dGxlRW5kaWFuKSB7CisgICAgb3V0LndyaXRlKDApOworfSBlbHNlIHsKKyAgICBvdXQud3JpdGUoMSk7Cit9CisKKy8vIHdyaXRlIGNoYXJhY3RlciBzZXQgZmFtaWx5IGNvZGUgKDAgbWVhbnMgQVNDSUkpCitvdXQud3JpdGUoMCk7CisvLyB3cml0ZSBzaXplIG9mIFVDaGFyIGluIHRoaXMgZmlsZQorb3V0LndyaXRlKDIpOworLy8gd3JpdGUgcmVzZXJ2ZWQgYnl0ZQorb3V0LndyaXRlKDApOworLy8gd3JpdGUgZGF0YSBmb3JtYXQgaWRlbnRpZmllciAodGhpcyBpcyBhbiBhcnJheSBvZiBieXRlcyBpbiBJQ1UsIHNvIHRoZSB2YWx1ZSBpcyBOT1Qgc3dhcHBlZCEpCitvdXQud3JpdGVJbnQoMHg0MjUyNGI1Myk7ICAgLy8gKCJCUktTIikKKy8vIHdyaXRlIGZpbGUgZm9ybWF0IHZlcnNpb24gbnVtYmVyIChOT1Qgc3dhcHBlZCEpCitvdXQud3JpdGVJbnQoMCk7CisvLyB3cml0ZSBkYXRhIHZlcnNpb24gbnVtYmVyIChOT1Qgc3dhcHBlZCEpCitvdXQud3JpdGVJbnQoMCk7CisvLyB3cml0ZSBjb3B5cmlnaHQgbm90aWNlCitvdXQud3JpdGUoY29tbWVudCk7CitvdXQud3JpdGUoMCk7CisvLyBmaWxsIGluIHBhZGRpbmcgYnl0ZXMKK3doaWxlIChoZWFkZXJTaXplIDwgcmVhbEhlYWRlclNpemUpIHsKKyAgICBvdXQud3JpdGUoMCk7CisgICAgKytoZWFkZXJTaXplOworfQorCisvLyAtLS0gd3JpdGUgaW5kZXggdG8gdGhlIGZpbGUgLS0tCisvLyB3cml0ZSB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgaW4gdGhlIHN0YXRlIHRhYmxlCit3cml0ZVN3YXBwZWRJbnQobnVtQ2F0ZWdvcmllcywgb3V0LCBsaXR0bGVFbmRpYW4pOworaW50IGZpbGVFbmQgPSAzNjsKKy8vIHdyaXRlIHRoZSBsb2NhdGlvbiBpbiB0aGUgZmlsZSBvZiB0aGUgQnJlYWtJdGVyYXRvciBkZXNjcmlwdGlvbiBzdHJpbmcKK3dyaXRlU3dhcHBlZEludChmaWxlRW5kLCBvdXQsIGxpdHRsZUVuZGlhbik7CitmaWxlRW5kICs9IChkZXNjcmlwdGlvbi5sZW5ndGgoKSArIDEpICogMjsKK2ZpbGVFbmQgKz0gKGZpbGVFbmQgJSA0ID09IDApID8gMCA6IDQgLSAoZmlsZUVuZCAlIDQpOworLy8gd3JpdGUgdGhlIGxvY2F0aW9uIG9mIHRoZSBjaGFyYWN0ZXIgY2F0ZWdvcnkgdGFibGUncyBpbmRleAord3JpdGVTd2FwcGVkSW50KGZpbGVFbmQsIG91dCwgbGl0dGxlRW5kaWFuKTsKK2ZpbGVFbmQgKz0gY2hhckNhdGVnb3J5VGFibGUuZ2V0SW5kZXhBcnJheSgpLmxlbmd0aCAqIDI7CitmaWxlRW5kICs9IChmaWxlRW5kICUgNCA9PSAwKSA/IDAgOiA0IC0gKGZpbGVFbmQgJSA0KTsKKy8vIHdyaXRlIHRoZSBsb2NhdGlvbiBvZiB0aGUgY2hhcmFjdGVyIGNhdGVnb3J5IHRhYmxlJ3MgdmFsdWVzIGFycmF5Cit3cml0ZVN3YXBwZWRJbnQoZmlsZUVuZCwgb3V0LCBsaXR0bGVFbmRpYW4pOworZmlsZUVuZCArPSBjaGFyQ2F0ZWdvcnlUYWJsZS5nZXRWYWx1ZUFycmF5KCkubGVuZ3RoOworZmlsZUVuZCArPSAoZmlsZUVuZCAlIDQgPT0gMCkgPyAwIDogNCAtIChmaWxlRW5kICUgNCk7CisvLyB3cml0ZSB0aGUgbG9jYXRpb24gb2YgdGhlIGZvcndhcmQgc3RhdGUgdGFibGUKK3dyaXRlU3dhcHBlZEludChmaWxlRW5kLCBvdXQsIGxpdHRsZUVuZGlhbik7CitmaWxlRW5kICs9IHN0YXRlVGFibGUubGVuZ3RoICogMjsKK2ZpbGVFbmQgKz0gKGZpbGVFbmQgJSA0ID09IDApID8gMCA6IDQgLSAoZmlsZUVuZCAlIDQpOworLy8gd3JpdGUgdGhlIGxvY2F0aW9uIG9mIHRoZSBiYWNrd2FyZCBzdGF0ZSB0YWJsZQord3JpdGVTd2FwcGVkSW50KGZpbGVFbmQsIG91dCwgbGl0dGxlRW5kaWFuKTsKK2ZpbGVFbmQgKz0gYmFja3dhcmRzU3RhdGVUYWJsZS5sZW5ndGggKiAyOworZmlsZUVuZCArPSAoZmlsZUVuZCAlIDQgPT0gMCkgPyAwIDogNCAtIChmaWxlRW5kICUgNCk7CisvLyB3cml0ZSB0aGUgbG9jYXRpb24gb2YgdGhlIGVuZFN0YXRlcyBmbGFncword3JpdGVTd2FwcGVkSW50KGZpbGVFbmQsIG91dCwgbGl0dGxlRW5kaWFuKTsKK2ZpbGVFbmQgKz0gZW5kU3RhdGVzLmxlbmd0aDsKK2ZpbGVFbmQgKz0gKGZpbGVFbmQgJSA0ID09IDApID8gMCA6IDQgLSAoZmlsZUVuZCAlIDQpOworLy8gd3JpdGUgdGhlIGxvY2F0aW9uIG9mIHRoZSBsb29rYWhlYWRTdGF0ZXMgZmxhZ3MKK3dyaXRlU3dhcHBlZEludChmaWxlRW5kLCBvdXQsIGxpdHRsZUVuZGlhbik7CitmaWxlRW5kICs9IGxvb2thaGVhZFN0YXRlcy5sZW5ndGg7CitmaWxlRW5kICs9IChmaWxlRW5kICUgNCA9PSAwKSA/IDAgOiA0IC0gKGZpbGVFbmQgJSA0KTsKKy8vIHdyaXRlIHRoZSBsZW5ndGggb2YgdGhlIGZpbGUKK3dyaXRlU3dhcHBlZEludChmaWxlRW5kLCBvdXQsIGxpdHRsZUVuZGlhbik7CisKKy8vIC0tLSB3cml0ZSB0aGUgYWN0dWFsIGRhdGEgLS0tCisvLyB3cml0ZSBkZXNjcmlwdGlvbiBzdHJpbmcKK2ZvciAoaW50IGkgPSAwOyBpIDwgZGVzY3JpcHRpb24ubGVuZ3RoKCk7IGkrKykKKyAgICB3cml0ZVN3YXBwZWRTaG9ydCgoc2hvcnQpZGVzY3JpcHRpb24uY2hhckF0KGkpLCBvdXQsIGxpdHRsZUVuZGlhbik7CitvdXQud3JpdGVTaG9ydCgwKTsKK2lmICgoZGVzY3JpcHRpb24ubGVuZ3RoKCkgKyAxKSAlIDIgPT0gMSkKKyAgICBvdXQud3JpdGVTaG9ydCgwKTsKKy8vIHdyaXRlIGNoYXJhY3RlciBjYXRlZ29yeSB0YWJsZQorY2hhcltdIHRlbXAxID0gY2hhckNhdGVnb3J5VGFibGUuZ2V0SW5kZXhBcnJheSgpOworZm9yIChpbnQgaSA9IDA7IGkgPCB0ZW1wMS5sZW5ndGg7IGkrKykKKyAgICB3cml0ZVN3YXBwZWRTaG9ydCgoc2hvcnQpdGVtcDFbaV0sIG91dCwgbGl0dGxlRW5kaWFuKTsKK2lmICh0ZW1wMS5sZW5ndGggJSAyID09IDEpCisgICAgb3V0LndyaXRlU2hvcnQoMCk7CitieXRlW10gdGVtcDIgPSBjaGFyQ2F0ZWdvcnlUYWJsZS5nZXRWYWx1ZUFycmF5KCk7CitvdXQud3JpdGUodGVtcDIpOworc3dpdGNoICh0ZW1wMi5sZW5ndGggJSA0KSB7CisgICAgY2FzZSAxOiBvdXQud3JpdGUoMCk7CisgICAgY2FzZSAyOiBvdXQud3JpdGUoMCk7CisgICAgY2FzZSAzOiBvdXQud3JpdGUoMCk7CisgICAgZGVmYXVsdDogYnJlYWs7Cit9CisvLyB3cml0ZSB0aGUgc3RhdGUgdHJhbnNpdGlvbiB0YWJsZXMKK2ZvciAoaW50IGkgPSAwOyBpIDwgc3RhdGVUYWJsZS5sZW5ndGg7IGkrKykKKyAgICB3cml0ZVN3YXBwZWRTaG9ydChzdGF0ZVRhYmxlW2ldLCBvdXQsIGxpdHRsZUVuZGlhbik7CitpZiAoc3RhdGVUYWJsZS5sZW5ndGggJSAyID09IDEpCisgICAgb3V0LndyaXRlU2hvcnQoMCk7Citmb3IgKGludCBpID0gMDsgaSA8IGJhY2t3YXJkc1N0YXRlVGFibGUubGVuZ3RoOyBpKyspCisgICAgd3JpdGVTd2FwcGVkU2hvcnQoYmFja3dhcmRzU3RhdGVUYWJsZVtpXSwgb3V0LCBsaXR0bGVFbmRpYW4pOworaWYgKGJhY2t3YXJkc1N0YXRlVGFibGUubGVuZ3RoICUgMiA9PSAxKQorICAgIG91dC53cml0ZVNob3J0KDApOworLy8gd3JpdGUgdGhlIGZsYWcgYXJyYXlzCitmb3IgKGludCBpID0gMDsgaSA8IGVuZFN0YXRlcy5sZW5ndGg7IGkrKykKKyAgICBvdXQud3JpdGVCb29sZWFuKGVuZFN0YXRlc1tpXSk7Citzd2l0Y2ggKGVuZFN0YXRlcy5sZW5ndGggJSA0KSB7CisgICAgY2FzZSAxOiBvdXQud3JpdGUoMCk7CisgICAgY2FzZSAyOiBvdXQud3JpdGUoMCk7CisgICAgY2FzZSAzOiBvdXQud3JpdGUoMCk7CisgICAgZGVmYXVsdDogYnJlYWs7Cit9Citmb3IgKGludCBpID0gMDsgaSA8IGxvb2thaGVhZFN0YXRlcy5sZW5ndGg7IGkrKykKKyAgICBvdXQud3JpdGVCb29sZWFuKGxvb2thaGVhZFN0YXRlc1tpXSk7Citzd2l0Y2ggKGxvb2thaGVhZFN0YXRlcy5sZW5ndGggJSA0KSB7CisgICAgY2FzZSAxOiBvdXQud3JpdGUoMCk7CisgICAgY2FzZSAyOiBvdXQud3JpdGUoMCk7CisgICAgY2FzZSAzOiBvdXQud3JpdGUoMCk7CisgICAgZGVmYXVsdDogYnJlYWs7Cit9Cit9CisKK3Byb3RlY3RlZCB2b2lkIHdyaXRlU3dhcHBlZFNob3J0KHNob3J0IHgsIERhdGFPdXRwdXRTdHJlYW0gb3V0LCBib29sZWFuIGxpdHRsZUVuZGlhbikKK3Rocm93cyBJT0V4Y2VwdGlvbnsKKyAgICBpZiAobGl0dGxlRW5kaWFuKSB7CisgICAgICAgIG91dC53cml0ZSgoYnl0ZSkoeCAmIDB4ZmYpKTsKKyAgICAgICAgb3V0LndyaXRlKChieXRlKSgoeCA+PiA4KSAmIDB4ZmYpKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIG91dC53cml0ZSgoYnl0ZSkoKHggPj4gOCkgJiAweGZmKSk7CisgICAgICAgIG91dC53cml0ZSgoYnl0ZSkoeCAmIDB4ZmYpKTsKKyAgICB9Cit9CisKK3Byb3RlY3RlZCB2b2lkIHdyaXRlU3dhcHBlZEludChpbnQgeCwgRGF0YU91dHB1dFN0cmVhbSBvdXQsIGJvb2xlYW4gbGl0dGxlRW5kaWFuKQordGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICBpZiAobGl0dGxlRW5kaWFuKSB7CisgICAgICAgIG91dC53cml0ZSgoYnl0ZSkoeCAmIDB4ZmYpKTsKKyAgICAgICAgb3V0LndyaXRlKChieXRlKSgoeCA+PiA4KSAmIDB4ZmYpKTsKKyAgICAgICAgb3V0LndyaXRlKChieXRlKSgoeCA+PiAxNikgJiAweGZmKSk7CisgICAgICAgIG91dC53cml0ZSgoYnl0ZSkoKHggPj4gMjQpICYgMHhmZikpOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgb3V0LndyaXRlKChieXRlKSgoeCA+PiAyNCkgJiAweGZmKSk7CisgICAgICAgIG91dC53cml0ZSgoYnl0ZSkoKHggPj4gMTYpICYgMHhmZikpOworICAgICAgICBvdXQud3JpdGUoKGJ5dGUpKCh4ID4+IDgpICYgMHhmZikpOworICAgICAgICBvdXQud3JpdGUoKGJ5dGUpKHggJiAweGZmKSk7CisgICAgfQorfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIEJyZWFrSXRlcmF0b3Igb3ZlcnJpZGVzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dC4KKyAgICAgKiAoaS5lLiwgdGhlIENoYXJhY3Rlckl0ZXJhdG9yJ3Mgc3RhcnRpbmcgb2Zmc2V0KS4KKyAgICAgKiBAcmV0dXJuIFRoZSBvZmZzZXQgb2YgdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGZpcnN0KCkgeworICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciB0ID0gZ2V0VGV4dCgpOworCisgICAgICAgIHQuZmlyc3QoKTsKKyAgICAgICAgcmV0dXJuIHQuZ2V0SW5kZXgoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgZW5kIG9mIHRoZSB0ZXh0LgorICAgICAqIChpLmUuLCB0aGUgQ2hhcmFjdGVySXRlcmF0b3IncyBlbmRpbmcgb2Zmc2V0KS4KKyAgICAgKiBAcmV0dXJuIFRoZSB0ZXh0J3MgcGFzdC10aGUtZW5kIG9mZnNldC4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGxhc3QoKSB7CisgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIHQgPSBnZXRUZXh0KCk7CisKKyAgICAgICAgLy8gSSdtIG5vdCBzdXJlIHdoeSwgYnV0IHQubGFzdCgpIHJldHVybnMgdGhlIG9mZnNldCBvZiB0aGUgbGFzdCBjaGFyYWN0ZXIsCisgICAgICAgIC8vIHJhdGhlciB0aGFuIHRoZSBwYXN0LXRoZS1lbmQgb2Zmc2V0CisgICAgICAgIHQuc2V0SW5kZXgodC5nZXRFbmRJbmRleCgpKTsKKyAgICAgICAgcmV0dXJuIHQuZ2V0SW5kZXgoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0aGUgaXRlcmF0b3IgZWl0aGVyIGZvcndhcmQgb3IgYmFja3dhcmQgdGhlIHNwZWNpZmllZCBudW1iZXIgb2Ygc3RlcHMuCisgICAgICogTmVnYXRpdmUgdmFsdWVzIG1vdmUgYmFja3dhcmQsIGFuZCBwb3NpdGl2ZSB2YWx1ZXMgbW92ZSBmb3J3YXJkLiAgVGhpcyBpcworICAgICAqIGVxdWl2YWxlbnQgdG8gcmVwZWF0ZWRseSBjYWxsaW5nIG5leHQoKSBvciBwcmV2aW91cygpLgorICAgICAqIEBwYXJhbSBuIFRoZSBudW1iZXIgb2Ygc3RlcHMgdG8gbW92ZS4gIFRoZSBzaWduIGluZGljYXRlcyB0aGUgZGlyZWN0aW9uCisgICAgICogKG5lZ2F0aXZlIGlzIGJhY2t3YXJkcywgYW5kIHBvc2l0aXZlIGlzIGZvcndhcmRzKS4KKyAgICAgKiBAcmV0dXJuIFRoZSBjaGFyYWN0ZXIgb2Zmc2V0IG9mIHRoZSBib3VuZGFyeSBwb3NpdGlvbiBuIGJvdW5kYXJpZXMgYXdheSBmcm9tCisgICAgICogdGhlIGN1cnJlbnQgb25lLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgbmV4dChpbnQgbikgeworICAgICAgICBpbnQgcmVzdWx0ID0gY3VycmVudCgpOworICAgICAgICB3aGlsZSAobiA+IDApIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IGhhbmRsZU5leHQoKTsKKyAgICAgICAgICAgIC0tbjsKKyAgICAgICAgfQorICAgICAgICB3aGlsZSAobiA8IDApIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IHByZXZpb3VzKCk7CisgICAgICAgICAgICArK247CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0aGUgaXRlcmF0b3IgdG8gdGhlIG5leHQgYm91bmRhcnkgcG9zaXRpb24uCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGZpcnN0IGJvdW5kYXJ5IGFmdGVyIHRoaXMgb25lLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgbmV4dCgpIHsKKyAgICAgICAgcmV0dXJuIGhhbmRsZU5leHQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0aGUgaXRlcmF0b3IgYmFja3dhcmRzLCB0byB0aGUgbGFzdCBib3VuZGFyeSBwcmVjZWRpbmcgdGhpcyBvbmUuCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGxhc3QgYm91bmRhcnkgcG9zaXRpb24gcHJlY2VkaW5nIHRoaXMgb25lLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgcHJldmlvdXMoKSB7CisgICAgICAgIC8vIGlmIHdlJ3JlIGFscmVhZHkgc2l0dGluZyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LCByZXR1cm4gRE9ORQorICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciB0ZXh0ID0gZ2V0VGV4dCgpOworICAgICAgICBpZiAoY3VycmVudCgpID09IHRleHQuZ2V0QmVnaW5JbmRleCgpKSB7CisgICAgICAgICAgICByZXR1cm4gQnJlYWtJdGVyYXRvci5ET05FOworICAgICAgICB9CisKKyAgICAgICAgLy8gc2V0IHRoaW5ncyB1cC4gIGhhbmRsZVByZXZpb3VzKCkgd2lsbCBiYWNrIHVzIHVwIHRvIHNvbWUgdmFsaWQKKyAgICAgICAgLy8gYnJlYWsgcG9zaXRpb24gYmVmb3JlIHRoZSBjdXJyZW50IHBvc2l0aW9uICh3ZSBiYWNrIG91ciBpbnRlcm5hbAorICAgICAgICAvLyBpdGVyYXRvciB1cCBvbmUgc3RlcCB0byBwcmV2ZW50IGhhbmRsZVByZXZpb3VzKCkgZnJvbSByZXR1cm5pbmcKKyAgICAgICAgLy8gdGhlIGN1cnJlbnQgcG9zaXRpb24pLCBidXQgbm90IG5lY2Vzc2FyaWx5IHRoZSBsYXN0IG9uZSBiZWZvcmUKKyAgICAgICAgLy8gd2hlcmUgd2Ugc3RhcnRlZAorICAgICAgICBpbnQgc3RhcnQgPSBjdXJyZW50KCk7CisgICAgICAgIHRleHQucHJldmlvdXMoKTsKKyAgICAgICAgaW50IGxhc3RSZXN1bHQgPSBoYW5kbGVQcmV2aW91cygpOworICAgICAgICBpbnQgcmVzdWx0ID0gbGFzdFJlc3VsdDsKKworICAgICAgICAvLyBpdGVyYXRlIGZvcndhcmQgZnJvbSB0aGUga25vd24gYnJlYWsgcG9zaXRpb24gdW50aWwgd2UgcGFzcyBvdXIKKyAgICAgICAgLy8gc3RhcnRpbmcgcG9pbnQuICBUaGUgbGFzdCBicmVhayBwb3NpdGlvbiBiZWZvcmUgdGhlIHN0YXJ0aW5nCisgICAgICAgIC8vIHBvaW50IGlzIG91ciByZXR1cm4gdmFsdWUKKyAgICAgICAgd2hpbGUgKHJlc3VsdCAhPSBCcmVha0l0ZXJhdG9yLkRPTkUgJiYgcmVzdWx0IDwgc3RhcnQpIHsKKyAgICAgICAgICAgIGxhc3RSZXN1bHQgPSByZXN1bHQ7CisgICAgICAgICAgICByZXN1bHQgPSBoYW5kbGVOZXh0KCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBzZXQgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIGJlIHRoZSBsYXN0IGJyZWFrIHBvc2l0aW9uCisgICAgICAgIC8vIGJlZm9yZSB3aGVyZSB3ZSBzdGFydGVkLCBhbmQgdGhlbiByZXR1cm4gdGhhdCB2YWx1ZQorICAgICAgICB0ZXh0LnNldEluZGV4KGxhc3RSZXN1bHQpOworICAgICAgICByZXR1cm4gbGFzdFJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaHJvdyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdW5sZXNzIGJlZ2luIDw9IG9mZnNldCA8IGVuZC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIHZvaWQgY2hlY2tPZmZzZXQoaW50IG9mZnNldCwgQ2hhcmFjdGVySXRlcmF0b3IgdGV4dCkgeworICAgICAgICBpZiAob2Zmc2V0IDwgdGV4dC5nZXRCZWdpbkluZGV4KCkgfHwgb2Zmc2V0ID4gdGV4dC5nZXRFbmRJbmRleCgpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJvZmZzZXQgb3V0IG9mIGJvdW5kcyIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGJvdW5kYXJ5IHBvc2l0aW9uIGZvbGxvd2luZworICAgICAqIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uCisgICAgICogQHBhcmFtIG9mZnNldCBUaGUgcG9zaXRpb24gZnJvbSB3aGljaCB0byBiZWdpbiBzZWFyY2hpbmcgZm9yIGEgYnJlYWsgcG9zaXRpb24uCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGZpcnN0IGJyZWFrIGFmdGVyIHRoZSBjdXJyZW50IHBvc2l0aW9uLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZm9sbG93aW5nKGludCBvZmZzZXQpIHsKKyAgICAgICAgLy8gaWYgdGhlIG9mZnNldCBwYXNzZWQgaW4gaXMgYWxyZWFkeSBwYXN0IHRoZSBlbmQgb2YgdGhlIHRleHQsCisgICAgICAgIC8vIGp1c3QgcmV0dXJuIERPTkUKKyAgICAgICAgQ2hhcmFjdGVySXRlcmF0b3IgdGV4dCA9IGdldFRleHQoKTsKKyAgICAgICAgaWYgKG9mZnNldCA9PSB0ZXh0LmdldEVuZEluZGV4KCkpIHsKKyAgICAgICAgICAgIHJldHVybiBCcmVha0l0ZXJhdG9yLkRPTkU7CisgICAgICAgIH0KKyAgICAgICAgY2hlY2tPZmZzZXQob2Zmc2V0LCB0ZXh0KTsKKworICAgICAgICAvLyBvdGhlcndpc2UsIHNldCBvdXIgaW50ZXJuYWwgaXRlcmF0aW9uIHBvc2l0aW9uICh0ZW1wb3JhcmlseSkKKyAgICAgICAgLy8gdG8gdGhlIHBvc2l0aW9uIHBhc3NlZCBpbi4gIElmIHRoaXMgaXMgdGhlIF9iZWdpbm5pbmdfIHBvc2l0aW9uLAorICAgICAgICAvLyB0aGVuIHdlIGNhbiBqdXN0IHVzZSBuZXh0KCkgdG8gZ2V0IG91ciByZXR1cm4gdmFsdWUKKyAgICAgICAgdGV4dC5zZXRJbmRleChvZmZzZXQpOworICAgICAgICBpZiAob2Zmc2V0ID09IHRleHQuZ2V0QmVnaW5JbmRleCgpKSB7CisgICAgICAgICAgICByZXR1cm4gaGFuZGxlTmV4dCgpOworICAgICAgICB9CisKKyAgICAgICAgLy8gb3RoZXJ3aXNlLCB3ZSBoYXZlIHRvIHN5bmMgdXAgZmlyc3QuICBVc2UgaGFuZGxlUHJldmlvdXMoKSB0byBiYWNrCisgICAgICAgIC8vIHVzIHVwIHRvIGEga25vd24gYnJlYWsgcG9zaXRpb24gYmVmb3JlIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gKGlmCisgICAgICAgIC8vIHdlIGNhbiBkZXRlcm1pbmUgdGhhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uIGlzIGEgYnJlYWsgcG9zaXRpb24sCisgICAgICAgIC8vIHdlIGRvbid0IGJhY2sgdXAgYXQgYWxsKS4gIFRoaXMgbWF5IG9yIG1heSBub3QgYmUgdGhlIGxhc3QgYnJlYWsKKyAgICAgICAgLy8gcG9zaXRpb24gYXQgb3IgYmVmb3JlIG91ciBzdGFydGluZyBwb3NpdGlvbi4gIEFkdmFuY2UgZm9yd2FyZAorICAgICAgICAvLyBmcm9tIGhlcmUgdW50aWwgd2UndmUgcGFzc2VkIHRoZSBzdGFydGluZyBwb3NpdGlvbi4gIFRoZSBwb3NpdGlvbgorICAgICAgICAvLyB3ZSBzdG9wIG9uIHdpbGwgYmUgdGhlIGZpcnN0IGJyZWFrIHBvc2l0aW9uIGFmdGVyIHRoZSBzcGVjaWZpZWQgb25lLgorICAgICAgICBpbnQgcmVzdWx0ID0gaGFuZGxlUHJldmlvdXMoKTsKKyAgICAgICAgd2hpbGUgKHJlc3VsdCAhPSBCcmVha0l0ZXJhdG9yLkRPTkUgJiYgcmVzdWx0IDw9IG9mZnNldCkgeworICAgICAgICAgICAgcmVzdWx0ID0gaGFuZGxlTmV4dCgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGxhc3QgYm91bmRhcnkgcG9zaXRpb24gYmVmb3JlIHRoZQorICAgICAqIHNwZWNpZmllZCBwb3NpdGlvbi4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IFRoZSBwb3NpdGlvbiB0byBiZWdpbiBzZWFyY2hpbmcgZm9yIGEgYnJlYWsgZnJvbS4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgbGFzdCBib3VuZGFyeSBiZWZvcmUgdGhlIHN0YXJ0aW5nIHBvc2l0aW9uLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgcHJlY2VkaW5nKGludCBvZmZzZXQpIHsKKyAgICAgICAgLy8gaWYgd2Ugc3RhcnQgYnkgdXBkYXRpbmcgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZQorICAgICAgICAvLyBwb3NpdGlvbiBzcGVjaWZpZWQgYnkgdGhlIGNhbGxlciwgd2UgY2FuIGp1c3QgdXNlIHByZXZpb3VzKCkKKyAgICAgICAgLy8gdG8gY2Fycnkgb3V0IHRoaXMgb3BlcmF0aW9uCisgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIHRleHQgPSBnZXRUZXh0KCk7CisgICAgICAgIGNoZWNrT2Zmc2V0KG9mZnNldCwgdGV4dCk7CisgICAgICAgIHRleHQuc2V0SW5kZXgob2Zmc2V0KTsKKyAgICAgICAgcmV0dXJuIHByZXZpb3VzKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBzcGVjZmllZCBwb3NpdGlvbiBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9uLiAgQXMgYSBzaWRlCisgICAgICogZWZmZWN0LCBsZWF2ZXMgdGhlIGl0ZXJhdG9yIHBvaW50aW5nIHRvIHRoZSBmaXJzdCBib3VuZGFyeSBwb3NpdGlvbiBhdAorICAgICAqIG9yIGFmdGVyICJvZmZzZXQiLgorICAgICAqIEBwYXJhbSBvZmZzZXQgdGhlIG9mZnNldCB0byBjaGVjay4KKyAgICAgKiBAcmV0dXJuIFRydWUgaWYgIm9mZnNldCIgaXMgYSBib3VuZGFyeSBwb3NpdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0JvdW5kYXJ5KGludCBvZmZzZXQpIHsKKyAgICAgICAgQ2hhcmFjdGVySXRlcmF0b3IgdGV4dCA9IGdldFRleHQoKTsKKyAgICAgICAgY2hlY2tPZmZzZXQob2Zmc2V0LCB0ZXh0KTsKKyAgICAgICAgaWYgKG9mZnNldCA9PSB0ZXh0LmdldEJlZ2luSW5kZXgoKSkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICAvLyB0byBjaGVjayB3aGV0aGVyIHRoaXMgaXMgYSBib3VuZGFyeSwgd2UgY2FuIHVzZSBmb2xsb3dpbmcoKSBvbiB0aGUKKyAgICAgICAgLy8gcG9zaXRpb24gYmVmb3JlIHRoZSBzcGVjaWZpZWQgb25lIGFuZCByZXR1cm4gdHJ1ZSBpZiB0aGUgcG9zaXRpb24gd2UKKyAgICAgICAgLy8gZ2V0IGJhY2sgaXMgdGhlIG9uZSB0aGUgdXNlciBzcGVjaWZpZWQKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZm9sbG93aW5nKG9mZnNldCAtIDEpID09IG9mZnNldDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uLgorICAgICAqIEByZXR1cm4gVGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgY3VycmVudCgpIHsKKyAgICAgICAgcmV0dXJuIGdldFRleHQoKS5nZXRJbmRleCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIENoYXJhY3Rlckl0ZXJhdG9yIG92ZXIgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuICBUaGlzIHZlcnNpb24KKyAgICAgKiBvZiB0aGlzIG1ldGhvZCByZXR1cm5zIHRoZSBhY3R1YWwgQ2hhcmFjdGVySXRlcmF0b3Igd2UncmUgdXNpbmcgaW50ZXJuYWxseS4KKyAgICAgKiBDaGFuZ2luZyB0aGUgc3RhdGUgb2YgdGhpcyBpdGVyYXRvciBjYW4gaGF2ZSB1bmRlZmluZWQgY29uc2VxdWVuY2VzLiAgSWYKKyAgICAgKiB5b3UgbmVlZCB0byBjaGFuZ2UgaXQsIGNsb25lIGl0IGZpcnN0LgorICAgICAqIEByZXR1cm4gQW4gaXRlcmF0b3Igb3ZlciB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ2hhcmFjdGVySXRlcmF0b3IgZ2V0VGV4dCgpIHsKKyAgICAgICAgLy8gVGhlIGl0ZXJhdG9yIGlzIGluaXRpYWxpemVkIHBvaW50aW5nIHRvIG5vIHRleHQgYXQgYWxsLCBzbyBpZiB0aGlzCisgICAgICAgIC8vIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGlsZSB3ZSdyZSBpbiB0aGF0IHN0YXRlLCB3ZSBoYXZlIHRvIGZ1ZGdlIGFuCisgICAgICAgIC8vIGFuIGl0ZXJhdG9yIHRvIHJldHVybi4KKyAgICAgICAgaWYgKHRleHQgPT0gbnVsbCkgeworICAgICAgICAgICAgdGV4dCA9IG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcigiIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRleHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpdGVyYXRvciB0byBhbmFseXplIGEgbmV3IHBpZWNlIG9mIHRleHQuICBUaGlzIGZ1bmN0aW9uIHJlc2V0cworICAgICAqIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LgorICAgICAqIEBwYXJhbSBuZXdUZXh0IEFuIGl0ZXJhdG9yIG92ZXIgdGhlIHRleHQgdG8gYW5hbHl6ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUZXh0KENoYXJhY3Rlckl0ZXJhdG9yIG5ld1RleHQpIHsKKyAgICAgICAgLy8gVGVzdCB0ZXh0IHRvIHNlZSBpZiB3ZSBuZWVkIHRvIHdyYXAgaXQgaW4gYSBTYWZlQ2hhckl0ZXJhdG9yOgorICAgICAgICBpbnQgZW5kID0gbmV3VGV4dC5nZXRFbmRJbmRleCgpOworICAgICAgICBuZXdUZXh0LnNldEluZGV4KGVuZCk7CisgICAgICAgIGlmIChuZXdUZXh0LmdldEluZGV4KCkgIT0gZW5kKSB7CisgICAgICAgICAgICAvLyBmYWlsZWQgLSB3cmFwIGluIGNvcnJlY3QgaW1wbGVtZW50YXRpb24KKyAgICAgICAgICAgIHRleHQgPSBuZXcgU2FmZUNoYXJJdGVyYXRvcihuZXdUZXh0KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRleHQgPSBuZXdUZXh0OworICAgICAgICB9CisgICAgICAgIHRleHQuZmlyc3QoKTsKKyAgICB9CisKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBpbXBsZW1lbnRhdGlvbgorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIGlzIHRoZSBhY3R1YWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIG5leHQoKSBtZXRob2QuICBBbGwgaXRlcmF0aW9uCisgICAgICogdmVjdG9ycyB0aHJvdWdoIGhlcmUuICBUaGlzIG1ldGhvZCBpbml0aWFsaXplcyB0aGUgc3RhdGUgbWFjaGluZSB0byBzdGF0ZSAxCisgICAgICogYW5kIGFkdmFuY2VzIHRocm91Z2ggdGhlIHRleHQgY2hhcmFjdGVyIGJ5IGNoYXJhY3RlciB1bnRpbCB3ZSByZWFjaCB0aGUgZW5kCisgICAgICogb2YgdGhlIHRleHQgb3IgdGhlIHN0YXRlIG1hY2hpbmUgdHJhbnNpdGlvbnMgdG8gc3RhdGUgMC4gIFdlIHVwZGF0ZSBvdXIgcmV0dXJuCisgICAgICogdmFsdWUgZXZlcnkgdGltZSB0aGUgc3RhdGUgbWFjaGluZSBwYXNzZXMgdGhyb3VnaCBhIHBvc3NpYmxlIGVuZCBzdGF0ZS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZU5leHQoKSB7CisgICAgICAgIC8vIGlmIHdlJ3JlIGFscmVhZHkgYXQgdGhlIGVuZCBvZiB0aGUgdGV4dCwgcmV0dXJuIERPTkUuCisgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIHRleHQgPSBnZXRUZXh0KCk7CisgICAgICAgIGlmICh0ZXh0LmdldEluZGV4KCkgPT0gdGV4dC5nZXRFbmRJbmRleCgpKSB7CisgICAgICAgICAgICByZXR1cm4gQnJlYWtJdGVyYXRvci5ET05FOworICAgICAgICB9CisKKyAgICAgICAgLy8gbm8gbWF0dGVyIHdoYXQsIHdlIGFsd2F5cyBhZHZhbmNlIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXIgZm9yd2FyZAorICAgICAgICBpbnQgcmVzdWx0ID0gdGV4dC5nZXRJbmRleCgpICsgMTsKKyAgICAgICAgaW50IGxvb2thaGVhZFJlc3VsdCA9IDA7CisKKyAgICAgICAgLy8gYmVnaW4gaW4gc3RhdGUgMQorICAgICAgICBpbnQgc3RhdGUgPSBTVEFSVF9TVEFURTsKKyAgICAgICAgaW50IGNhdGVnb3J5OworICAgICAgICBjaGFyIGMgPSB0ZXh0LmN1cnJlbnQoKTsKKyAgICAgICAgY2hhciBsYXN0QyA9IGM7CisgICAgICAgIGludCBsYXN0Q1BvcyA9IDA7CisKKyAgICAgICAgLy8gaWYgdGhlIGZpcnN0IGNoYXJhY3RlciBpbiB0aGlzIHNlZ21lbnQgaXMgYW4gaWdub3JlIGNoYXJhY3RlciAod2hpY2ggY2FuIGhhcHBlbgorICAgICAgICAvLyB3aGVuIGl0J3MgZWl0aGVyIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaW4gdGhlIGZpbGUgb3IgZm9sbG93cyBhIG1hbmRhdG9yeSBicmVhaworICAgICAgICAvLyBjaGFyYWN0ZXIpLCBhbmQgdGhlIGZpcnN0IG5vbi1pZ25vcmUgY2hhcmFjdGVyIGlzbid0IGEgZ2x1ZSBjaGFyYWN0ZXIsIGFsd2F5cworICAgICAgICAvLyBwdXQgYSBicmVhayBiZXR3ZWVuIHRoZSBpZ25vcmUgY2hhcmFjdGVycyBhbmQgdGhlIHJlc3Qgb2YgdGhlIHRleHQKKyAgICAgICAgaWYgKGxvb2t1cENhdGVnb3J5KGMpID09IElHTk9SRSkgeworICAgICAgICAgICAgd2hpbGUgKGxvb2t1cENhdGVnb3J5KGMpID09IElHTk9SRSkKKyAgICAgICAgICAgICAgICBjID0gdGV4dC5uZXh0KCk7CisKKyAgICAgICAgICAgIGlmIChDaGFyYWN0ZXIuZ2V0VHlwZShjKSA9PSBDaGFyYWN0ZXIuTk9OX1NQQUNJTkdfTUFSSyB8fCBDaGFyYWN0ZXIuZ2V0VHlwZShjKQorICAgICAgICAgICAgICAgICAgICA9PSBDaGFyYWN0ZXIuRU5DTE9TSU5HX01BUkspIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGV4dC5nZXRJbmRleCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gbG9vcCB1bnRpbCB3ZSByZWFjaCB0aGUgZW5kIG9mIHRoZSB0ZXh0IG9yIHRyYW5zaXRpb24gdG8gc3RhdGUgMAorICAgICAgICB3aGlsZSAoYyAhPSBDaGFyYWN0ZXJJdGVyYXRvci5ET05FICYmIHN0YXRlICE9IFNUT1BfU1RBVEUpIHsKKworICAgICAgICAgICAgLy8gbG9vayB1cCB0aGUgY3VycmVudCBjaGFyYWN0ZXIncyBjaGFyYWN0ZXIgY2F0ZWdvcnkgKHdoaWNoIHRlbGxzIHVzCisgICAgICAgICAgICAvLyB3aGljaCBjb2x1bW4gaW4gdGhlIHN0YXRlIHRhYmxlIHRvIGxvb2sgYXQpCisgICAgICAgICAgICBjYXRlZ29yeSA9IGxvb2t1cENhdGVnb3J5KGMpOworCisgICAgICAgICAgICAvLyBpZiB0aGUgY2hhcmFjdGVyIGlzbid0IGFuIGlnbm9yZSBjaGFyYWN0ZXIsIGxvb2sgdXAgYSBzdGF0ZQorICAgICAgICAgICAgLy8gdHJhbnNpdGlvbiBpbiB0aGUgc3RhdGUgdGFibGUKKyAgICAgICAgICAgIGlmIChjYXRlZ29yeSAhPSBJR05PUkUpIHsKKyAgICAgICAgICAgICAgICBzdGF0ZSA9IGxvb2t1cFN0YXRlKHN0YXRlLCBjYXRlZ29yeSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGlmIHRoZSBzdGF0ZSB3ZSd2ZSBqdXN0IHRyYW5zaXRpb25lZCB0byBpcyBhIGxvb2thaGVhZCBzdGF0ZSwKKyAgICAgICAgICAgIC8vIChidXQgbm90IGFsc28gYW4gZW5kIHN0YXRlKSwgc2F2ZSBpdHMgcG9zaXRpb24uICBJZiBpdCdzCisgICAgICAgICAgICAvLyBib3RoIGEgbG9va2FoZWFkIHN0YXRlIGFuZCBhbiBlbmQgc3RhdGUsIHVwZGF0ZSB0aGUgYnJlYWsgcG9zaXRpb24KKyAgICAgICAgICAgIC8vIHRvIHRoZSBsYXN0IHNhdmVkIGxvb2t1cC1zdGF0ZSBwb3NpdGlvbgorICAgICAgICAgICAgaWYgKGxvb2thaGVhZFN0YXRlc1tzdGF0ZV0pIHsKKyAgICAgICAgICAgICAgICBpZiAoZW5kU3RhdGVzW3N0YXRlXSkgeworICAgICAgICAgICAgICAgICAgICBpZiAobG9va2FoZWFkUmVzdWx0ID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbG9va2FoZWFkUmVzdWx0OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gdGV4dC5nZXRJbmRleCgpICsgMTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbG9va2FoZWFkUmVzdWx0ID0gdGV4dC5nZXRJbmRleCgpICsgMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIG90aGVyd2lzZSwgaWYgdGhlIHN0YXRlIHdlJ3ZlIGp1c3QgdHJhbnNpdGlvbmVkIHRvIGlzIGFuIGFjY2VwdGluZworICAgICAgICAgICAgLy8gc3RhdGUsIHVwZGF0ZSB0aGUgYnJlYWsgcG9zaXRpb24gdG8gYmUgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoZW5kU3RhdGVzW3N0YXRlXSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB0ZXh0LmdldEluZGV4KCkgKyAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8ga2VlcCB0cmFjayBvZiB0aGUgbGFzdCAicmVhbCIgY2hhcmFjdGVyIHdlIHNhdy4gIElmIHRoaXMgY2hhcmFjdGVyIGlzbid0IGFuCisgICAgICAgICAgICAvLyBpZ25vcmUgY2hhcmFjdGVyLCB0YWtlIG5vdGUgb2YgaXQgYW5kIGl0cyBwb3NpdGlvbiBpbiB0aGUgdGV4dAorICAgICAgICAgICAgaWYgKGNhdGVnb3J5ICE9IElHTk9SRSAmJiBzdGF0ZSAhPSBTVE9QX1NUQVRFKSB7CisgICAgICAgICAgICAgICAgbGFzdEMgPSBjOworICAgICAgICAgICAgICAgIGxhc3RDUG9zID0gdGV4dC5nZXRJbmRleCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYyA9IHRleHQubmV4dCgpOworICAgICAgICB9CisKKyAgICAgICAgLy8gaWYgd2UndmUgcnVuIG9mZiB0aGUgZW5kIG9mIHRoZSB0ZXh0LCBhbmQgdGhlIHZlcnkgbGFzdCBjaGFyYWN0ZXIgdG9vayB1cyBpbnRvCisgICAgICAgIC8vIGEgbG9va2FoZWFkIHN0YXRlLCBhZHZhbmNlIHRoZSBicmVhayBwb3NpdGlvbiB0byB0aGUgbG9va2FoZWFkIHBvc2l0aW9uCisgICAgICAgIC8vICh0aGUgdGhlb3J5IGhlcmUgaXMgdGhhdCBpZiB0aGVyZSBhcmUgbm8gY2hhcmFjdGVycyBhdCBhbGwgYWZ0ZXIgdGhlIGxvb2thaGVhZAorICAgICAgICAvLyBwb3NpdGlvbiwgdGhhdCBhbHdheXMgbWF0Y2hlcyB0aGUgbG9va2FoZWFkIGNyaXRlcmlhKQorICAgICAgICBpZiAoYyA9PSBDaGFyYWN0ZXJJdGVyYXRvci5ET05FICYmIGxvb2thaGVhZFJlc3VsdCA9PSB0ZXh0LmdldEVuZEluZGV4KCkpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IGxvb2thaGVhZFJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIHRoZSBsYXN0IGNoYXJhY3RlciB3ZSBzYXcgYmVmb3JlIHRoZSBvbmUgdGhhdCB0b29rIHVzIGludG8gdGhlIHN0b3Agc3RhdGUKKyAgICAgICAgLy8gd2FzIGEgbWFuZGF0b3J5IGJyZWFraW5nIGNoYXJhY3RlciwgdGhlbiB0aGUgYnJlYWsgcG9zaXRpb24gZ29lcyByaWdodCBhZnRlciBpdAorICAgICAgICAvLyAodGhpcyBpcyBoZXJlIHNvIHRoYXQgYnJlYWtzIGNvbWUgYmVmb3JlLCByYXRoZXIgdGhhbiBhZnRlciwgYSBzdHJpbmcgb2YKKyAgICAgICAgLy8gaWdub3JlIGNoYXJhY3RlcnMgd2hlbiB0aGV5IGZvbGxvdyBhIG1hbmRhdG9yeSBicmVhayBjaGFyYWN0ZXIpCisgICAgICAgIGVsc2UgaWYgKCJcblxyXGZcdTIwMjhcdTIwMjkiLmluZGV4T2YobGFzdEMpICE9IC0xKSB7CisgICAgICAgICAgICByZXN1bHQgPSBsYXN0Q1BvcyArIDE7CisgICAgICAgIH0KKworICAgICAgICB0ZXh0LnNldEluZGV4KHJlc3VsdCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgYmFja3MgdGhlIGl0ZXJhdG9yIGJhY2sgdXAgdG8gYSAic2FmZSBwb3NpdGlvbiIgaW4gdGhlIHRleHQuCisgICAgICogVGhpcyBpcyBhIHBvc2l0aW9uIHRoYXQgd2Uga25vdywgd2l0aG91dCBhbnkgY29udGV4dCwgbXVzdCBiZSBhIGJyZWFrIHBvc2l0aW9uLgorICAgICAqIFRoZSB2YXJpb3VzIGNhbGxpbmcgbWV0aG9kcyB0aGVuIGl0ZXJhdGUgZm9yd2FyZCBmcm9tIHRoaXMgc2FmZSBwb3NpdGlvbiB0bworICAgICAqIHRoZSBhcHByb3ByaWF0ZSBwb3NpdGlvbiB0byByZXR1cm4uICAoRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUgZGVzY3JpcHRpb24KKyAgICAgKiBvZiBidWlsZEJhY2t3YXJkc1N0YXRlVGFibGUoKSBpbiBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLkJ1aWxkZXIuKQorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlUHJldmlvdXMoKSB7CisgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIHRleHQgPSBnZXRUZXh0KCk7CisgICAgICAgIGludCBzdGF0ZSA9IFNUQVJUX1NUQVRFOworICAgICAgICBpbnQgY2F0ZWdvcnkgPSAwOworICAgICAgICBpbnQgbGFzdENhdGVnb3J5ID0gMDsKKyAgICAgICAgY2hhciBjID0gdGV4dC5jdXJyZW50KCk7CisKKyAgICAgICAgLy8gbG9vcCB1bnRpbCB3ZSByZWFjaCB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0IG9yIHRyYW5zaXRpb24gdG8gc3RhdGUgMAorICAgICAgICB3aGlsZSAoYyAhPSBDaGFyYWN0ZXJJdGVyYXRvci5ET05FICYmIHN0YXRlICE9IFNUT1BfU1RBVEUpIHsKKy8vU3lzdGVtLm91dC5wcmludCgiICIgKyB0ZXh0LmdldEluZGV4KCkpOworCisgICAgICAgICAgICAvLyBzYXZlIHRoZSBsYXN0IGNoYXJhY3RlcidzIGNhdGVnb3J5IGFuZCBsb29rIHVwIHRoZSBjdXJyZW50CisgICAgICAgICAgICAvLyBjaGFyYWN0ZXIncyBjYXRlZ29yeQorICAgICAgICAgICAgbGFzdENhdGVnb3J5ID0gY2F0ZWdvcnk7CisgICAgICAgICAgICBjYXRlZ29yeSA9IGxvb2t1cENhdGVnb3J5KGMpOworCisgICAgICAgICAgICAvLyBpZiB0aGUgY3VycmVudCBjaGFyYWN0ZXIgaXNuJ3QgYW4gaWdub3JlIGNoYXJhY3RlciwgbG9vayB1cCBhCisgICAgICAgICAgICAvLyBzdGF0ZSB0cmFuc2l0aW9uIGluIHRoZSBiYWNrd2FyZHMgc3RhdGUgdGFibGUKKyAgICAgICAgICAgIGlmIChjYXRlZ29yeSAhPSBJR05PUkUpIHsKKyAgICAgICAgICAgICAgICBzdGF0ZSA9IGxvb2t1cEJhY2t3YXJkU3RhdGUoc3RhdGUsIGNhdGVnb3J5KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gdGhlbiBhZHZhbmNlIG9uZSBjaGFyYWN0ZXIgYmFja3dhcmRzCisgICAgICAgICAgICBjID0gdGV4dC5wcmV2aW91cygpOworICAgICAgICB9CisKKyAgICAgICAgLy8gaWYgd2UgZGlkbid0IG1hcmNoIG9mZiB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LCB3ZSdyZSBlaXRoZXIgb25lIG9yIHR3bworICAgICAgICAvLyBwb3NpdGlvbnMgYXdheSBmcm9tIHRoZSByZWFsIGJyZWFrIHBvc2l0aW9uLiAgKE9uZSBiZWNhdXNlIG9mIHRoZSBjYWxsIHRvCisgICAgICAgIC8vIHByZXZpb3VzKCkgYXQgdGhlIGVuZCBvZiB0aGUgbG9vcCBhYm92ZSwgYW5kIGFub3RoZXIgYmVjYXVzZSB0aGUgY2hhcmFjdGVyCisgICAgICAgIC8vIHRoYXQgdGFrZXMgdXMgaW50byB0aGUgc3RvcCBzdGF0ZSB3aWxsIGFsd2F5cyBiZSB0aGUgY2hhcmFjdGVyIEJFRk9SRQorICAgICAgICAvLyB0aGUgYnJlYWsgcG9zaXRpb24uKQorICAgICAgICBpZiAoYyAhPSBDaGFyYWN0ZXJJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICBpZiAobGFzdENhdGVnb3J5ICE9IElHTk9SRSkgeworICAgICAgICAgICAgICAgIHRleHQuc2V0SW5kZXgodGV4dC5nZXRJbmRleCgpICsgMik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICB0ZXh0Lm5leHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorLy9TeXN0ZW0ub3V0LnByaW50KCIsIik7CisgICAgICAgIHJldHVybiB0ZXh0LmdldEluZGV4KCk7CisgICAgfQorCisvL3N0YXRpYyBpbnQgdmlzaXRlZENoYXJzID0gMDsKKyAgICAvKioKKyAgICAgKiBMb29rcyB1cCBhIGNoYXJhY3RlcidzIGNhdGVnb3J5IChpLmUuLCBpdHMgY2F0ZWdvcnkgZm9yIGJyZWFraW5nIHB1cnBvc2VzLAorICAgICAqIG5vdCBpdHMgVW5pY29kZSBjYXRlZ29yeSkKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGxvb2t1cENhdGVnb3J5KGNoYXIgYykgeworLy8rK3Zpc2l0ZWRDaGFyczsKKyAgICAgICAgcmV0dXJuIGNoYXJDYXRlZ29yeVRhYmxlLmVsZW1lbnRBdChjKTsKKyAgICB9CisKKy8qCitzdGF0aWMgdm9pZCBwcmludFZpc2l0ZWRDaGFyQ291bnQoKSB7CitTeXN0ZW0ub3V0LnByaW50bG4oIlRvdGFsIG51bWJlciBvZiBjaGFyYWN0ZXJzIHZpc2l0ZWQgPSAiICsgdmlzaXRlZENoYXJzKTsKK3Zpc2l0ZWRDaGFycyA9IDA7Cit9CisqLworCisgICAgLyoqCisgICAgICogR2l2ZW4gYSBjdXJyZW50IHN0YXRlIGFuZCBhIGNoYXJhY3RlciBjYXRlZ29yeSwgbG9va3MgdXAgdGhlCisgICAgICogbmV4dCBzdGF0ZSB0byB0cmFuc2l0aW9uIHRvIGluIHRoZSBzdGF0ZSB0YWJsZS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGxvb2t1cFN0YXRlKGludCBzdGF0ZSwgaW50IGNhdGVnb3J5KSB7CisgICAgICAgIHJldHVybiBzdGF0ZVRhYmxlW3N0YXRlICogbnVtQ2F0ZWdvcmllcyArIGNhdGVnb3J5XTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHaXZlbiBhIGN1cnJlbnQgc3RhdGUgYW5kIGEgY2hhcmFjdGVyIGNhdGVnb3J5LCBsb29rcyB1cCB0aGUKKyAgICAgKiBuZXh0IHN0YXRlIHRvIHRyYW5zaXRpb24gdG8gaW4gdGhlIGJhY2t3YXJkcyBzdGF0ZSB0YWJsZS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGxvb2t1cEJhY2t3YXJkU3RhdGUoaW50IHN0YXRlLCBpbnQgY2F0ZWdvcnkpIHsKKyAgICAgICAgcmV0dXJuIGJhY2t3YXJkc1N0YXRlVGFibGVbc3RhdGUgKiBudW1DYXRlZ29yaWVzICsgY2F0ZWdvcnldOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgaXMgYSBoZWxwZXIgZnVuY3Rpb24gZm9yIGNvbXB1dGluZyB0aGUgaW50ZXJzZWN0aW9uIG9mCisgICAgICogdHdvIDxjb2RlPlVuaWNvZGVTZXQ8L2NvZGU+IG9iamVjdHMuCisgICAgICogQHBhcmFtIGEsIGIgdGhlIHR3byA8Y29kZT5Vbmljb2RlU2V0PC9jb2RlPnMgdG8gaW50ZXJzZWN0CisgICAgICogQHJldHVybiBhIG5ldyA8Y29kZT5Vbmljb2RlU2V0PC9jb2RlPiB3aGljaCBpcyB0aGUgaW50ZXJzZWN0aW9uIG9mIGEgYW5kIGIKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBVbmljb2RlU2V0IGludGVyc2VjdGlvbihVbmljb2RlU2V0IGEsIFVuaWNvZGVTZXQgYikKKyAgICB7CisgICAgICAgIFVuaWNvZGVTZXQgcmVzdWx0ID0gbmV3IFVuaWNvZGVTZXQoYSk7CisKKyAgICAgICAgcmVzdWx0LnJldGFpbkFsbChiKTsKKworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLkJ1aWxkZXIKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLyoqCisgICAgICogVGhlIEJ1aWxkZXIgY2xhc3MgaGFzIHRoZSBqb2Igb2YgY29uc3RydWN0aW5nIGEgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBmcm9tIGEKKyAgICAgKiB0ZXh0dWFsIGRlc2NyaXB0aW9uLiAgQSBCdWlsZGVyIGlzIGNvbnN0cnVjdGVkIGJ5IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IncworICAgICAqIGNvbnN0cnVjdG9yLCB3aGljaCB1c2VzIGl0IHRvIGNvbnN0cnVjdCB0aGUgaXRlcmF0b3IgaXRzZWxmIGFuZCB0aGVuIHRocm93cyBpdAorICAgICAqIGF3YXkuCisgICAgICogPHA+VGhlIGNvbnN0cnVjdGlvbiBsb2dpYyBpcyBzZXBhcmF0ZWQgb3V0IGludG8gaXRzIG93biBjbGFzcyBmb3IgdHdvIHByaW1hcnkKKyAgICAgKiByZWFzb25zOgorICAgICAqIDx1bD48bGk+VGhlIGNvbnN0cnVjdGlvbiBsb2dpYyBpcyBxdWl0ZSBzb3BoaXN0aWNhdGVkIGFuZCBsYXJnZS4gIFNlcGFyYXRpbmcgaXQKKyAgICAgKiBvdXQgaW50byBpdHMgb3duIGNsYXNzIG1lYW5zIHRoZSBjb2RlIG11c3Qgb25seSBiZSBsb2FkZWQgaW50byBtZW1vcnkgd2hpbGUgYQorICAgICAqIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgaXMgYmVpbmcgY29uc3RydWN0ZWQsIGFuZCBjYW4gYmUgcHVyZ2VkIGFmdGVyIHRoYXQuCisgICAgICogPGxpPlRoZXJlIGlzIGEgZmFpciBhbW91bnQgb2Ygc3RhdGUgdGhhdCBtdXN0IGJlIG1haW50YWluZWQgdGhyb3VnaG91dCB0aGUKKyAgICAgKiBjb25zdHJ1Y3Rpb24gcHJvY2VzcyB0aGF0IGlzIG5vdCBuZWVkZWQgYnkgdGhlIGl0ZXJhdG9yIGFmdGVyIGNvbnN0cnVjdGlvbi4KKyAgICAgKiBTZXBhcmF0aW5nIHRoaXMgc3RhdGUgb3V0IGludG8gYW5vdGhlciBjbGFzcyBwcmV2ZW50cyBhbGwgb2YgdGhlIGZ1bmN0aW9ucyB0aGF0CisgICAgICogY29uc3RydWN0IHRoZSBpdGVyYXRvciBmcm9tIGhhdmluZyB0byBoYXZlIHJlYWxseSBsb25nIHBhcmFtZXRlciBsaXN0cywKKyAgICAgKiAoaG9wZWZ1bGx5KSBjb250cmlidXRpbmcgdG8gcmVhZGFiaWxpdHkgYW5kIG1haW50YWluYWJpbGl0eS48L3VsPgorICAgICAqIDxwPkl0J2QgYmUgcmVhbGx5IG5pY2UgaWYgdGhpcyBjb3VsZCBiZSBhbiBpbmRlcGVuZGVudCBjbGFzcyByYXRoZXIgdGhhbiBhbgorICAgICAqIGlubmVyIGNsYXNzLCBiZWNhdXNlIHRoYXQgd291bGQgc2hvcnRlbiB0aGUgc291cmNlIGZpbGUgY29uc2lkZXJhYmx5LCBidXQKKyAgICAgKiBtYWtpbmcgQnVpbGRlciBhbiBpbm5lciBjbGFzcyBvZiBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGFsbG93cyBpdCBkaXJlY3QgYWNjZXNzCisgICAgICogdG8gUnVsZUJhc2VkQnJlYWtJdGVyYXRvcidzIHByaXZhdGUgbWVtYmVycywgd2hpY2ggc2F2ZXMgdXMgZnJvbSBoYXZpbmcgdG8KKyAgICAgKiBwcm92aWRlIHNvbWUga2luZCBvZiAiYmFjayBkb29yIiB0byB0aGUgQnVpbGRlciBjbGFzcyB0aGF0IGNvdWxkIHRoZW4gYWxzbyBiZQorICAgICAqIHVzZWQgYnkgb3RoZXIgY2xhc3Nlcy4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgY2xhc3MgQnVpbGRlciB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBBIHRlbXBvcmFyeSBob2xkaW5nIHBsYWNlIHVzZWQgZm9yIGNhbGN1bGF0aW5nIHRoZSBjaGFyYWN0ZXIgY2F0ZWdvcmllcy4KKyAgICAgICAgICogVGhpcyBvYmplY3QgY29udGFpbnMgVW5pY29kZVNldCBvYmplY3RzLgorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIFZlY3RvciBjYXRlZ29yaWVzID0gbnVsbDsKKworICAgICAgICAvKioKKyAgICAgICAgICogQSB0YWJsZSB1c2VkIHRvIG1hcCBwYXJ0cyBvZiByZWdleHAgdGV4dCB0byBsaXN0cyBvZiBjaGFyYWN0ZXIgY2F0ZWdvcmllcywKKyAgICAgICAgICogcmF0aGVyIHRoYW4gaGF2aW5nIHRvIGZpZ3VyZSB0aGVtIG91dCBmcm9tIHNjcmF0Y2ggZWFjaCB0aW1lCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgSGFzaHRhYmxlIGV4cHJlc3Npb25zID0gbnVsbDsKKworICAgICAgICAvKioKKyAgICAgICAgICogQSB0ZW1wb3JhcnkgaG9sZGluZyBwbGFjZSBmb3IgdGhlIGxpc3Qgb2YgaWdub3JlIGNoYXJhY3RlcnMKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBVbmljb2RlU2V0IGlnbm9yZUNoYXJzID0gbnVsbDsKKworICAgICAgICAvKioKKyAgICAgICAgICogQSB0ZW1wb3JhcnkgaG9sZGluZyBwbGFjZSB3aGVyZSB0aGUgZm9yd2FyZCBzdGF0ZSB0YWJsZSBpcyBidWlsdAorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIFZlY3RvciB0ZW1wU3RhdGVUYWJsZSA9IG51bGw7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEEgbGlzdCBvZiBhbGwgdGhlIHN0YXRlcyB0aGF0IGhhdmUgdG8gYmUgZmlsbGVkIGluIHdpdGggdHJhbnNpdGlvbnMgdG8gdGhlCisgICAgICAgICAqIG5leHQgc3RhdGUgdGhhdCBpcyBjcmVhdGVkLiAgVXNlZCB3aGVuIGJ1aWxkaW5nIHRoZSBzdGF0ZSB0YWJsZSBmcm9tIHRoZQorICAgICAgICAgKiByZWd1bGFyIGV4cHJlc3Npb25zLgorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIFZlY3RvciBkZWNpc2lvblBvaW50TGlzdCA9IG51bGw7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEEgc3RhY2sgZm9yIGhvbGRpbmcgZGVjaXNpb24gcG9pbnQgbGlzdHMuICBUaGlzIGlzIHVzZWQgdG8gaGFuZGxlIG5lc3RlZAorICAgICAgICAgKiBwYXJlbnRoZXNlcyBhbmQgYnJhY2VzIGluIHJlZ2V4cHMuCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgU3RhY2sgZGVjaXNpb25Qb2ludFN0YWNrID0gbnVsbDsKKworICAgICAgICAvKioKKyAgICAgICAgICogQSBsaXN0IG9mIHN0YXRlcyB0aGF0IGxvb3AgYmFjayBvbiB0aGVtc2VsdmVzLiAgVXNlZCB0byBoYW5kbGUgLio/CisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgVmVjdG9yIGxvb3BpbmdTdGF0ZXMgPSBudWxsOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBMb29waW5nIHN0YXRlcyBhY3R1YWxseSBoYXZlIHRvIGJlIGJhY2tmaWxsZWQgbGF0ZXIgaW4gdGhlIHByb2Nlc3MKKyAgICAgICAgICogdGhhbiBldmVyeXRoaW5nIGVsc2UuICBUaGlzIGlzIHdoZXJlIGEgdGhlIGxpc3Qgb2Ygc3RhdGVzIHRvIGJhY2tmaWxsCisgICAgICAgICAqIGlzIGFjY3VtdWxhdGVkLiAgVGhpcyBpcyBhbHNvIHVzZWQgdG8gaGFuZGxlIC4qPworICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIFZlY3RvciBzdGF0ZXNUb0JhY2tmaWxsID0gbnVsbDsKKworICAgICAgICAvKioKKyAgICAgICAgICogQSBsaXN0IG1hcHBpbmcgcGFpcnMgb2Ygc3RhdGUgbnVtYmVycyBmb3Igc3RhdGVzIHRoYXQgYXJlIHRvIGJlIGNvbWJpbmVkCisgICAgICAgICAqIHRvIHRoZSBzdGF0ZSBudW1iZXIgb2YgdGhlIHN0YXRlIHJlcHJlc2VudGluZyB0aGVpciBjb21iaW5hdGlvbi4gIFVzZWQKKyAgICAgICAgICogaW4gdGhlIHByb2Nlc3Mgb2YgbWFraW5nIHRoZSBzdGF0ZSB0YWJsZSBkZXRlcm1pbmlzdGljIHRvIHByZXZlbnQKKyAgICAgICAgICogaW5maW5pdGUgcmVjdXJzaW9uLgorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIFZlY3RvciBtZXJnZUxpc3QgPSBudWxsOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBBIGZsYWcgdGhhdCBpcyB1c2VkIHRvIGluZGljYXRlIHdoZW4gdGhlIGxpc3Qgb2YgbG9vcGluZyBzdGF0ZXMgY2FuCisgICAgICAgICAqIGJlIHJlc2V0LgorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gY2xlYXJMb29waW5nU3RhdGVzID0gZmFsc2U7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEEgYml0IG1hc2sgdXNlZCB0byBpbmRpY2F0ZSBhIGJpdCBpbiB0aGUgdGFibGUncyBmbGFncyBjb2x1bW4gdGhhdCBtYXJrcyBhCisgICAgICAgICAqIHN0YXRlIGFzIGFuIGFjY2VwdGluZyBzdGF0ZS4KKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEVORF9TVEFURV9GTEFHID0gMHg4MDAwOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBBIGJpdCBtYXNrIHVzZWQgdG8gaW5kaWNhdGUgYSBiaXQgaW4gdGhlIHRhYmxlJ3MgZmxhZ3MgY29sdW1uIHRoYXQgbWFya3MgYQorICAgICAgICAgKiBzdGF0ZSBhcyBvbmUgdGhlIGJ1aWxkZXIgc2hvdWxkbid0IGxvb3AgdG8gYW55IGxvb3Bpbmcgc3RhdGVzCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBET05UX0xPT1BfRkxBRyA9IDB4NDAwMDsKKworICAgICAgICAvKioKKyAgICAgICAgICogQSBiaXQgbWFzayB1c2VkIHRvIGluZGljYXRlIGEgYml0IGluIHRoZSB0YWJsZSdzIGZsYWdzIGNvbHVtbiB0aGF0IG1hcmtzIGEKKyAgICAgICAgICogc3RhdGUgYXMgYSBsb29rYWhlYWQgc3RhdGUuCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBMT09LQUhFQURfU1RBVEVfRkxBRyA9IDB4MjAwMDsKKworICAgICAgICAvKioKKyAgICAgICAgICogQSBiaXQgbWFzayByZXByZXNlbnRpbmcgdGhlIHVuaW9uIG9mIHRoZSBtYXNrIHZhbHVlcyBsaXN0ZWQgYWJvdmUuCisgICAgICAgICAqIFVzZWQgZm9yIGNsZWFyaW5nIG9yIG1hc2tpbmcgb2ZmIHRoZSBmbGFnIGJpdHMuCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBBTExfRkxBR1MgPSBFTkRfU1RBVEVfRkxBRyB8IExPT0tBSEVBRF9TVEFURV9GTEFHCisgICAgICAgICAgICAgICAgfCBET05UX0xPT1BfRkxBRzsKKworICAgICAgICAvKioKKyAgICAgICAgICogTm8gc3BlY2lhbCBjb25zdHJ1Y3Rpb24gaXMgcmVxdWlyZWQgZm9yIHRoZSBCdWlsZGVyLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIEJ1aWxkZXIoKSB7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogVGhpcyBpcyB0aGUgbWFpbiBmdW5jdGlvbiBmb3Igc2V0dGluZyB1cCB0aGUgQnJlYWtJdGVyYXRvcidzIHRhYmxlcy4gIEl0CisgICAgICAgICAqIGp1c3QgdmVjdG9ycyBkaWZmZXJlbnQgcGFydHMgb2YgdGhlIGpvYiBvZmYgdG8gb3RoZXIgZnVuY3Rpb25zLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHZvaWQgYnVpbGRCcmVha0l0ZXJhdG9yKCkgeworICAgICAgICAgICAgVmVjdG9yIHRlbXBSdWxlTGlzdCA9IGJ1aWxkUnVsZUxpc3QoZGVzY3JpcHRpb24pOworICAgICAgICAgICAgYnVpbGRDaGFyQ2F0ZWdvcmllcyh0ZW1wUnVsZUxpc3QpOworICAgICAgICAgICAgYnVpbGRTdGF0ZVRhYmxlKHRlbXBSdWxlTGlzdCk7CisgICAgICAgICAgICBidWlsZEJhY2t3YXJkc1N0YXRlVGFibGUodGVtcFJ1bGVMaXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaHVzIGZ1bmN0aW9uIGhhcyB0aHJlZSBtYWluIHB1cnBvc2VzOgorICAgICAgICAgKiA8dWw+PGxpPlBlcmZvcm0gZ2VuZXJhbCBzeW50YXggY2hlY2tpbmcgb24gdGhlIGRlc2NyaXB0aW9uLCBzbyB0aGUgcmVzdCBvZiB0aGUKKyAgICAgICAgICogYnVpbGQgY29kZSBjYW4gYXNzdW1lIHRoYXQgaXQncyBwYXJzaW5nIGEgbGVnYWwgZGVzY3JpcHRpb24uCisgICAgICAgICAqIDxsaT5TcGxpdCB0aGUgZGVzY3JpcHRpb24gaW50byBzZXBhcmF0ZSBydWxlcworICAgICAgICAgKiA8bGk+UGVyZm9ybSB2YXJpYWJsZS1uYW1lIHN1YnN0aXR1dGlvbnMgKHNvIHRoYXQgbm8gb25lIGVsc2Ugc2VlcyB2YXJpYWJsZSBuYW1lcykKKyAgICAgICAgICogPC91bD4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgVmVjdG9yIGJ1aWxkUnVsZUxpc3QoU3RyaW5nIGRlc2NyaXB0aW9uKSB7CisgICAgICAgICAgICAvLyBpbnZhcmlhbnRzOgorICAgICAgICAgICAgLy8gLSBwYXJlbnRoZXNlcyBtdXN0IGJlIGJhbGFuY2VkOiAoKVtde308PgorICAgICAgICAgICAgLy8gLSBub3RoaW5nIGNhbiBiZSBuZXN0ZWQgaW5zaWRlIHt9CisgICAgICAgICAgICAvLyAtIG5vdGhpbmcgY2FuIGJlIG5lc3RlZCBpbnNpZGUgW10gZXhjZXB0IG1vcmUgW11zCisgICAgICAgICAgICAvLyAtIHBhaXJzIG9mICgpW117fTw+IG11c3Qgbm90IGJlIGVtcHR5CisgICAgICAgICAgICAvLyAtIDsgY2FuIG9ubHkgb2NjdXIgYXQgdGhlIG91dGVyIGxldmVsCisgICAgICAgICAgICAvLyAtIHwgY2FuIG9ubHkgYXBwZWFyIGluc2lkZSAoKQorICAgICAgICAgICAgLy8gLSBvbmx5IG9uZSA9IG9yIC8gY2FuIG9jY3VyIGluIGEgc2luZ2xlIHJ1bGUKKyAgICAgICAgICAgIC8vIC0gPSBhbmQgLyBjYW5ub3QgYm90aCBvY2N1ciBpbiB0aGUgc2FtZSBydWxlCisgICAgICAgICAgICAvLyAtIHRoZSByaWdodC1oYW5kIHNpZGUgb2YgYSA9IGV4cHJlc3Npb24gbXVzdCBiZSBlbmNsb3NlZCBpbiBbXSBvciAoKQorICAgICAgICAgICAgLy8gLSAqIG1heSBub3Qgb2NjdXIgYXQgdGhlIGJlZ2lubmluZyBvZiBhIHJ1bGUsIG5vciBtYXkgaXQgZm9sbG93CisgICAgICAgICAgICAvLyAgID0sIC8sICgsICgsIHwsIH0sIDssIG9yICoKKyAgICAgICAgICAgIC8vIC0gPyBtYXkgb25seSBmb2xsb3cgKgorICAgICAgICAgICAgLy8gLSB0aGUgcnVsZSBsaXN0IG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgLyBydWxlCisgICAgICAgICAgICAvLyAtIG5vIHJ1bGUgbWF5IGJlIGVtcHR5CisgICAgICAgICAgICAvLyAtIGFsbCBwcmludGluZyBjaGFyYWN0ZXJzIGluIHRoZSBBU0NJSSByYW5nZSBleGNlcHQgbGV0dGVycyBhbmQgZGlnaXRzCisgICAgICAgICAgICAvLyAgIGFyZSByZXNlcnZlZCBhbmQgbXVzdCBiZSBwcmVjZWRlZCBieSBcCisgICAgICAgICAgICAvLyAtICEgbWF5IG9ubHkgb2NjdXIgYXQgdGhlIGJlZ2lubmluZyBvZiBhIHJ1bGUKKworICAgICAgICAgICAgLy8gc2V0IHVwIGEgdmVjdG9yIHRvIGNvbnRhaW4gdGhlIGJyb2tlbi11cCBkZXNjcmlwdGlvbiAoZWFjaCBlbnRyeSBpbiB0aGUKKyAgICAgICAgICAgIC8vIHZlY3RvciBpcyBhIHNlcGFyYXRlIHJ1bGUpIGFuZCBhIHN0YWNrIGZvciBrZWVwaW5nIHRyYWNrIG9mIG9wZW5pbmcKKyAgICAgICAgICAgIC8vIHB1bmN0dWF0aW9uCisgICAgICAgICAgICBWZWN0b3IgdGVtcFJ1bGVMaXN0ID0gbmV3IFZlY3RvcigpOworICAgICAgICAgICAgU3RhY2sgcGFyZW5TdGFjayA9IG5ldyBTdGFjaygpOworCisgICAgICAgICAgICBpbnQgcCA9IDA7CisgICAgICAgICAgICBpbnQgcnVsZVN0YXJ0ID0gMDsKKyAgICAgICAgICAgIGNoYXIgYyA9ICdcdTAwMDAnOworICAgICAgICAgICAgY2hhciBsYXN0QyA9ICdcdTAwMDAnOworICAgICAgICAgICAgY2hhciBsYXN0T3BlbiA9ICdcdTAwMDAnOworICAgICAgICAgICAgYm9vbGVhbiBoYXZlRXF1YWxzID0gZmFsc2U7CisgICAgICAgICAgICBib29sZWFuIGhhdmVQaXBlID0gZmFsc2U7CisgICAgICAgICAgICBib29sZWFuIHNhd1Zhck5hbWUgPSBmYWxzZTsKKyAgICAgICAgICAgIGJvb2xlYW4gc2F3SWxsZWdhbENoYXIgPSBmYWxzZTsKKyAgICAgICAgICAgIGludCBpbGxlZ2FsQ2hhclBvcyA9IDA7CisgICAgICAgICAgICBmaW5hbCBTdHJpbmcgY2hhcnNUaGF0Q2FudFByZWNlZGVBc3RlcmlzayA9ICI9LzwofD4qKz87XHUwMDAwIjsKKworICAgICAgICAgICAgLy8gaWYgdGhlIGRlc2NyaXB0aW9uIGRvZXNuJ3QgZW5kIHdpdGggYSBzZW1pY29sb24sIHRhY2sgYSBzZW1pY29sb24gb250byB0aGUgZW5kCisgICAgICAgICAgICBpZiAoZGVzY3JpcHRpb24ubGVuZ3RoKCkgIT0gMCAmJiBkZXNjcmlwdGlvbi5jaGFyQXQoZGVzY3JpcHRpb24ubGVuZ3RoKCkgLSAxKSAhPSAnOycpIHsKKyAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uICsgIjsiOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBmb3IgZWFjaCBjaGFyYWN0ZXIsIGRvLi4uCisgICAgICAgICAgICB3aGlsZSAocCA8IGRlc2NyaXB0aW9uLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgYyA9IGRlc2NyaXB0aW9uLmNoYXJBdChwKTsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlIGNoYXJhY3RlciBpcyBvcGVuaW5nIHB1bmN0dWF0aW9uLCB2ZXJpZnkgdGhhdCBubyBuZXN0aW5nCisgICAgICAgICAgICAgICAgICAgIC8vIHJ1bGVzIGFyZSBicm9rZW4sIGFuZCBwdXNoIHRoZSBjaGFyYWN0ZXIgb250byB0aGUgc3RhY2sKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAneyc6CisgICAgICAgICAgICAgICAgICAgIGNhc2UgJ1snOgorICAgICAgICAgICAgICAgICAgICBjYXNlICcoJzoKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsYXN0T3BlbiA9PSAneycpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcigiQ2FuJ3QgbmVzdCBicmFja2V0cyBpbnNpZGUge30iLCBwLCBkZXNjcmlwdGlvbik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGFzdE9wZW4gPT0gJ1snICYmIGMgIT0gJ1snKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IoIkNhbid0IG5lc3QgYW55dGhpbmcgaW4gW10gYnV0IFtdIiwgcCwgZGVzY3JpcHRpb24pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiB3ZSBzZWUgeyBhbnl3aGVyZSBleGNlcHQgb24gdGhlIGxlZnQtaGFuZCBzaWRlIG9mID0sCisgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBtdXN0IGJlIHNlZWluZyBhIHZhcmlhYmxlIG5hbWUgdGhhdCB3YXMgbmV2ZXIgZGVmaW5lZAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMgPT0gJ3snICYmIChoYXZlRXF1YWxzIHx8IGhhdmVQaXBlKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yKCJVbmtub3duIHZhcmlhYmxlIG5hbWUiLCBwLCBkZXNjcmlwdGlvbik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RPcGVuID0gYzsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVuU3RhY2sucHVzaChuZXcgQ2hhcmFjdGVyKGMpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjID09ICd7JykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhd1Zhck5hbWUgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlIGNoYXJhY3RlciBpcyBjbG9zaW5nIHB1bmN0dWF0aW9uLCB2ZXJpZnkgdGhhdCBpdCBtYXRjaGVzIHRoZQorICAgICAgICAgICAgICAgICAgICAvLyBsYXN0IG9wZW5pbmcgcHVuY3R1YXRpb24gd2Ugc2F3LCBhbmQgdGhhdCB0aGUgYnJhY2tldHMgY29udGFpbgorICAgICAgICAgICAgICAgICAgICAvLyBzb21ldGhpbmcsIHRoZW4gcG9wIHRoZSBzdGFjaworICAgICAgICAgICAgICAgICAgICBjYXNlICd9JzoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAnXSc6CisgICAgICAgICAgICAgICAgICAgIGNhc2UgJyknOgorICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBleHBlY3RlZENsb3NlID0gJ1x1MDAwMCc7CisgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGxhc3RPcGVuKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAneyc6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkQ2xvc2UgPSAnfSc7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ1snOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZENsb3NlID0gJ10nOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICcoJzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRDbG9zZSA9ICcpJzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYyAhPSBleHBlY3RlZENsb3NlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IoIlVuYmFsYW5jZWQgcGFyZW50aGVzZXMiLCBwLCBkZXNjcmlwdGlvbik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGFzdEMgPT0gbGFzdE9wZW4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcigiUGFyZW5zIGRvbid0IGNvbnRhaW4gYW55dGhpbmciLCBwLCBkZXNjcmlwdGlvbik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBwYXJlblN0YWNrLnBvcCgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwYXJlblN0YWNrLmVtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0T3BlbiA9ICgoQ2hhcmFjdGVyKShwYXJlblN0YWNrLnBlZWsoKSkpLmNoYXJWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdE9wZW4gPSAnXHUwMDAwJzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlIGNoYXJhY3RlciBpcyBhbiBhc3RlcmlzaywgbWFrZSBzdXJlIGl0IG9jY3VycyBpbiBhIHBsYWNlCisgICAgICAgICAgICAgICAgICAgIC8vIHdoZXJlIGFuIGFzdGVyaXNrIGNhbiBsZWdhbGx5IGdvCisgICAgICAgICAgICAgICAgICAgIGNhc2UgJyonOiBjYXNlICcrJzogY2FzZSAnPyc6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2hhcnNUaGF0Q2FudFByZWNlZGVBc3Rlcmlzay5pbmRleE9mKGxhc3RDKSAhPSAtMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAoYyAhPSAnPycgfHwgbGFzdEMgIT0gJyonKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yKCJNaXNwbGFjZWQgKiwgKywgb3IgPyIsIHAsIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBjaGFyYWN0ZXIgaXMgYW4gZXF1YWxzIHNpZ24sIG1ha2Ugc3VyZSB3ZSBoYXZlbid0IHNlZW4gYW5vdGhlcgorICAgICAgICAgICAgICAgICAgICAvLyBlcXVhbHMgc2lnbiBvciBhIHNsYXNoIHlldAorICAgICAgICAgICAgICAgICAgICBjYXNlICc9JzoKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoYXZlRXF1YWxzIHx8IGhhdmVQaXBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IoIk1vcmUgdGhhbiBvbmUgPSBvciAvIGluIHJ1bGUiLCBwLCBkZXNjcmlwdGlvbik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBoYXZlRXF1YWxzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNhd0lsbGVnYWxDaGFyID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGUgY2hhcmFjdGVyIGlzIGEgc2xhc2gsIG1ha2Ugc3VyZSB3ZSBoYXZlbid0IHNlZW4gYW5vdGhlciBzbGFzaAorICAgICAgICAgICAgICAgICAgICAvLyBvciBhbiBlcXVhbHMgc2lnbiB5ZXQKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAnLyc6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGF2ZUVxdWFscyB8fCBoYXZlUGlwZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yKCJNb3JlIHRoYW4gb25lID0gb3IgLyBpbiBydWxlIiwgcCwgZGVzY3JpcHRpb24pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNhd1Zhck5hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcigiVW5rbm93biB2YXJpYWJsZSBuYW1lIiwgcCwgZGVzY3JpcHRpb24pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZVBpcGUgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlIGNoYXJhY3RlciBpcyBhbiBleGNsYW1hdGlvbiBwb2ludCwgbWFrZSBzdXJlIGl0IG9jY3VycyBvbmx5CisgICAgICAgICAgICAgICAgICAgIC8vIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBydWxlCisgICAgICAgICAgICAgICAgICAgIGNhc2UgJyEnOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RDICE9ICc7JyAmJiBsYXN0QyAhPSAnXHUwMDAwJykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yKCIhIGNhbiBvbmx5IG9jY3VyIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBydWxlIiwgcCwgZGVzY3JpcHRpb24pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlIGNoYXJhY3RlciBpcyBhIGJhY2tzbGFzaCwgc2tpcCB0aGUgY2hhcmFjdGVyIHRoYXQgZm9sbG93cyBpdAorICAgICAgICAgICAgICAgICAgICAvLyAoaXQnbGwgZ2V0IHRyZWF0ZWQgYXMgYSBsaXRlcmFsIGNoYXJhY3RlcikKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAnXFwnOgorICAgICAgICAgICAgICAgICAgICAgICAgKytwOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gd2UgZG9uJ3QgaGF2ZSB0byBkbyBhbnl0aGluZyBzcGVjaWFsIG9uIGEgcGVyaW9kCisgICAgICAgICAgICAgICAgICAgIGNhc2UgJy4nOgorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlIGNoYXJhY3RlciBpcyBhIHN5bnRheCBjaGFyYWN0ZXIgdGhhdCBjYW4gb25seSBvY2N1cgorICAgICAgICAgICAgICAgICAgICAvLyBpbnNpZGUgW10sIG1ha2Ugc3VyZSB0aGF0IGl0IGRvZXMgaW4gZmFjdCBvbmx5IG9jY3VyIGluc2lkZSBbXQorICAgICAgICAgICAgICAgICAgICAvLyAob3IgaW4gYSB2YXJpYWJsZSBuYW1lKQorICAgICAgICAgICAgICAgICAgICBjYXNlICdeJzoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAnLSc6CisgICAgICAgICAgICAgICAgICAgIGNhc2UgJzonOgorICAgICAgICAgICAgICAgICAgICBjYXNlICcmJzoKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsYXN0T3BlbiAhPSAnWycgJiYgbGFzdE9wZW4gIT0gJ3snICYmICFzYXdJbGxlZ2FsQ2hhcikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhd0lsbGVnYWxDaGFyID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbGxlZ2FsQ2hhclBvcyA9IHA7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGUgY2hhcmFjdGVyIGlzIGEgc2VtaWNvbG9uLCBkbyB0aGUgZm9sbG93aW5nLi4uCisgICAgICAgICAgICAgICAgICAgIGNhc2UgJzsnOgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgd2Ugc2F3IGFueSBpbGxlZ2FsIGNoYXJhY3RlcnMgYWxvbmcgdGhlIHdheSwgdGhyb3cKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuIGVycm9yCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2F3SWxsZWdhbENoYXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcigiSWxsZWdhbCBjaGFyYWN0ZXIiLCBpbGxlZ2FsQ2hhclBvcywgZGVzY3JpcHRpb24pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhlIHJ1bGUgY29udGFpbnMgc29tZXRoaW5nIGFuZCB0aGF0IHRoZXJlIGFyZSBubworICAgICAgICAgICAgICAgICAgICAgICAgLy8gdW5iYWxhbmNlZCBwYXJlbnRoZXNlcyBvciBicmFja2V0cworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RDID09ICc7JyB8fCBsYXN0QyA9PSAnXHUwMDAwJykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yKCJFbXB0eSBydWxlIiwgcCwgZGVzY3JpcHRpb24pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwYXJlblN0YWNrLmVtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcigiVW5iYWxhbmNlZCBwYXJlbmhlc2VzIiwgcCwgZGVzY3JpcHRpb24pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW5TdGFjay5lbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlIHJ1bGUgY29udGFpbmVkIGFuID0gc2lnbiwgY2FsbCBwcm9jZXNzU3Vic3RpdHV0aW9uKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0byByZXBsYWNlIHRoZSBzdWJzdGl0dXRpb24gbmFtZSB3aXRoIHRoZSBzdWJzdGl0dXRpb24gdGV4dAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdoZXJldmVyIGl0IGFwcGVhcnMgaW4gdGhlIGRlc2NyaXB0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhhdmVFcXVhbHMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSBwcm9jZXNzU3Vic3RpdHV0aW9uKGRlc2NyaXB0aW9uLnN1YnN0cmluZyhydWxlU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwKSwgZGVzY3JpcHRpb24sIHAgKyAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG90aGVyd2lzZSwgY2hlY2sgdG8gbWFrZSBzdXJlIHRoZSBydWxlIGRvZXNuJ3QgcmVmZXJlbmNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFueSB1bmRlZmluZWQgc3Vic3RpdHV0aW9ucworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2F3VmFyTmFtZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IoIlVua25vd24gdmFyaWFibGUgbmFtZSIsIHAsIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZW4gYWRkIGl0IHRvIHRlbXBSdWxlTGlzdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wUnVsZUxpc3QuYWRkRWxlbWVudChkZXNjcmlwdGlvbi5zdWJzdHJpbmcocnVsZVN0YXJ0LCBwKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHJlc2V0IGV2ZXJ5dGhpbmcgdG8gcHJvY2VzcyB0aGUgbmV4dCBydWxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZVN0YXJ0ID0gcCArIDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZUVxdWFscyA9IGhhdmVQaXBlID0gc2F3VmFyTmFtZSA9IHNhd0lsbGVnYWxDaGFyID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGUgY2hhcmFjdGVyIGlzIGEgdmVydGljYWwgYmFyLCBjaGVjayB0byBtYWtlIHN1cmUgdGhhdCBpdAorICAgICAgICAgICAgICAgICAgICAvLyBvY2N1cnMgaW5zaWRlIGEgKCkgZXhwcmVzc2lvbiBhbmQgdGhhdCB0aGUgY2hhcmFjdGVyIHRoYXQgcHJlY2VkZXMKKyAgICAgICAgICAgICAgICAgICAgLy8gaXQgaXNuJ3QgYWxzbyBhIHZlcnRpY2FsIGJhcgorICAgICAgICAgICAgICAgICAgICBjYXNlICd8JzoKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsYXN0QyA9PSAnfCcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcigiRW1wdHkgYWx0ZXJuYXRpdmUiLCBwLCBkZXNjcmlwdGlvbik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW5TdGFjay5lbXB0eSgpIHx8IGxhc3RPcGVuICE9ICcoJykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yKCJNaXNwbGFjZWQgfCIsIHAsIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBjaGFyYWN0ZXIgaXMgYW55dGhpbmcgZWxzZSAoZXNjYXBlZCBjaGFyYWN0ZXJzIGFyZQorICAgICAgICAgICAgICAgICAgICAvLyBza2lwcGVkIGFuZCBkb24ndCBtYWtlIGl0IGhlcmUpLCBpdCdzIGFuIGVycm9yCisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYyA+PSAnICcgJiYgYyA8ICdcdTAwN2YnICYmICFDaGFyYWN0ZXIuaXNMZXR0ZXIoYykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgIUNoYXJhY3Rlci5pc0RpZ2l0KGMpICYmICFzYXdJbGxlZ2FsQ2hhcikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhd0lsbGVnYWxDaGFyID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbGxlZ2FsQ2hhclBvcyA9IHA7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbGFzdEMgPSBjOworICAgICAgICAgICAgICAgICsrcDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh0ZW1wUnVsZUxpc3Quc2l6ZSgpID09IDApIHsKKyAgICAgICAgICAgICAgICBlcnJvcigiTm8gdmFsaWQgcnVsZXMgaW4gZGVzY3JpcHRpb24iLCBwLCBkZXNjcmlwdGlvbik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdGVtcFJ1bGVMaXN0OworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgdmFyaWFibGUtbmFtZSBzdWJzdGl0dXRpb25zLiAgRmlyc3QgaXQgZG9lcyBzeW50YXgKKyAgICAgICAgICogY2hlY2tpbmcgb24gdGhlIHZhcmlhYmxlLW5hbWUgZGVmaW5pdGlvbi4gIElmIGl0J3Mgc3ludGFjdGljYWxseSB2YWxpZCwgaXQKKyAgICAgICAgICogdGhlbiBnb2VzIHRocm91Z2ggdGhlIHJlbWFpbmRlciBvZiB0aGUgZGVzY3JpcHRpb24gYW5kIGRvZXMgYSBzaW1wbGUKKyAgICAgICAgICogZmluZC1hbmQtcmVwbGFjZSBvZiB0aGUgdmFyaWFibGUgbmFtZSB3aXRoIGl0cyB0ZXh0LiAgKFRoZSB2YXJpYWJsZSB0ZXh0CisgICAgICAgICAqIG11c3QgYmUgZW5jbG9zZWQgaW4gZWl0aGVyIFtdIG9yICgpIGZvciB0aGlzIHRvIHdvcmsuKQorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIFN0cmluZyBwcm9jZXNzU3Vic3RpdHV0aW9uKFN0cmluZyBzdWJzdGl0dXRpb25SdWxlLCBTdHJpbmcgZGVzY3JpcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnRQb3MpIHsKKyAgICAgICAgICAgIC8vIGlzb2xhdGUgb3V0IHRoZSB0ZXh0IG9uIGVpdGhlciBzaWRlIG9mIHRoZSBlcXVhbHMgc2lnbgorICAgICAgICAgICAgU3RyaW5nIHJlcGxhY2U7CisgICAgICAgICAgICBTdHJpbmcgcmVwbGFjZVdpdGg7CisgICAgICAgICAgICBpbnQgZXF1YWxQb3MgPSBzdWJzdGl0dXRpb25SdWxlLmluZGV4T2YoJz0nKTsKKyAgICAgICAgICAgIGlmIChzdWJzdGl0dXRpb25SdWxlLmNoYXJBdCgwKSAhPSAnJCcpIHsKKyAgICAgICAgICAgICAgICBlcnJvcigiTWlzc2luZyAnJCcgb24gbGVmdC1oYW5kIHNpZGUgb2YgPSIsIHN0YXJ0UG9zLCBkZXNjcmlwdGlvbik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXBsYWNlID0gc3Vic3RpdHV0aW9uUnVsZS5zdWJzdHJpbmcoMSwgZXF1YWxQb3MpOworICAgICAgICAgICAgcmVwbGFjZVdpdGggPSBzdWJzdGl0dXRpb25SdWxlLnN1YnN0cmluZyhlcXVhbFBvcyArIDEpOworCisgICAgICAgICAgICAvLyBjaGVjayB0byBzZWUgd2hldGhlciB0aGUgc3Vic3RpdHV0aW9uIG5hbWUgaXMgc29tZXRoaW5nIHdlJ3ZlIGRlY2xhcmVkCisgICAgICAgICAgICAvLyB0byBiZSAic3BlY2lhbCIuICBGb3IgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBpdHNlbGYsIHRoaXMgaXMgSUdOT1JFX1ZBUi4KKyAgICAgICAgICAgIC8vIFRoaXMgZnVuY3Rpb24gdGFrZXMgY2FyZSBvZiBhbnkgZXh0cmEgcHJvY2Vzc2luZyB0aGF0IGhhcyB0byBiZSBkb25lCisgICAgICAgICAgICAvLyB3aXRoICJzcGVjaWFsIiBzdWJzdGl0dXRpb24gbmFtZXMuCisgICAgICAgICAgICBoYW5kbGVTcGVjaWFsU3Vic3RpdHV0aW9uKHJlcGxhY2UsIHJlcGxhY2VXaXRoLCBzdGFydFBvcywgZGVzY3JpcHRpb24pOworCisgICAgICAgICAgICAvLyBwZXJmb3JtIHZhcmlvdXMgb3RoZXIgc3ludGF4IGNoZWNrcyBvbiB0aGUgcnVsZQorICAgICAgICAgICAgaWYgKHJlcGxhY2VXaXRoLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICBlcnJvcigiTm90aGluZyBvbiByaWdodC1oYW5kIHNpZGUgb2YgPSIsIHN0YXJ0UG9zLCBkZXNjcmlwdGlvbik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAocmVwbGFjZS5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgZXJyb3IoIk5vdGhpbmcgb24gbGVmdC1oYW5kIHNpZGUgb2YgPSIsIHN0YXJ0UG9zLCBkZXNjcmlwdGlvbik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIShyZXBsYWNlV2l0aC5jaGFyQXQoMCkgPT0gJ1snICYmIHJlcGxhY2VXaXRoLmNoYXJBdChyZXBsYWNlV2l0aC5sZW5ndGgoKSAtIDEpCisgICAgICAgICAgICAgICAgICAgID09ICddJykgJiYgIShyZXBsYWNlV2l0aC5jaGFyQXQoMCkgPT0gJygnICYmIHJlcGxhY2VXaXRoLmNoYXJBdCgKKyAgICAgICAgICAgICAgICAgICAgcmVwbGFjZVdpdGgubGVuZ3RoKCkgLSAxKSA9PSAnKScpKSB7CisgICAgICAgICAgICAgICAgZXJyb3IoIklsbGVnYWwgcmlnaHQtaGFuZCBzaWRlIGZvciA9Iiwgc3RhcnRQb3MsIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gbm93IGdvIHRocm91Z2ggdGhlIHJlc3Qgb2YgdGhlIGRlc2NyaXB0aW9uICh3aGljaCBoYXNuJ3QgYmVlbiBicm9rZW4gdXAKKyAgICAgICAgICAgIC8vIGludG8gc2VwYXJhdGUgcnVsZXMgeWV0KSBhbmQgcmVwbGFjZSBldmVyeSBvY2N1cnJlbmNlIG9mIHRoZQorICAgICAgICAgICAgLy8gc3Vic3RpdHV0aW9uIG5hbWUgd2l0aCB0aGUgc3Vic3RpdHV0aW9uIGJvZHkKKyAgICAgICAgICAgIHJlcGxhY2UgPSAiJCIgKyByZXBsYWNlOworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoZGVzY3JpcHRpb24uc3Vic3RyaW5nKDAsIHN0YXJ0UG9zKSk7CisgICAgICAgICAgICBpbnQgbGFzdFBvcyA9IHN0YXJ0UG9zOworICAgICAgICAgICAgaW50IHBvcyA9IGRlc2NyaXB0aW9uLmluZGV4T2YocmVwbGFjZSwgc3RhcnRQb3MpOworICAgICAgICAgICAgd2hpbGUgKHBvcyAhPSAtMSkgeworICAgICAgICAgICAgICAgIC8vIFtsaXVdIENoZWNrIHRoYXQgdGhlIHN0cmluZyB3ZSd2ZSBmb3VuZCBpc24ndCBhIHJlZGVmaW5pdGlvbgorICAgICAgICAgICAgICAgIC8vIG9mIHRoZSB2YXJpYWJsZS4KKyAgICAgICAgICAgICAgICBpZiAoZGVzY3JpcHRpb24uY2hhckF0KHBvcy0xKSA9PSAnOycgJiYKKyAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24uY2hhckF0KHBvcyArIHJlcGxhY2UubGVuZ3RoKCkpID09ICc9JykgeworICAgICAgICAgICAgICAgICAgICBlcnJvcigiQXR0ZW1wdCB0byByZWRlZmluZSAiICsgcmVwbGFjZSwgcG9zLCBkZXNjcmlwdGlvbik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoZGVzY3JpcHRpb24uc3Vic3RyaW5nKGxhc3RQb3MsIHBvcykpOworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocmVwbGFjZVdpdGgpOworICAgICAgICAgICAgICAgIGxhc3RQb3MgPSBwb3MgKyByZXBsYWNlLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIHBvcyA9IGRlc2NyaXB0aW9uLmluZGV4T2YocmVwbGFjZSwgbGFzdFBvcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGRlc2NyaXB0aW9uLnN1YnN0cmluZyhsYXN0UG9zKSk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogVGhpcyBmdW5jdGlvbiBkZWZpbmVzIGEgcHJvdG9jb2wgZm9yIGhhbmRsaW5nIHN1YnN0aXR1dGlvbiBuYW1lcyB0aGF0CisgICAgICAgICAqIGFyZSAic3BlY2lhbCwiIGkuZS4sIHRoYXQgaGF2ZSBzb21lIHByb3BlcnR5IGJleW9uZCBqdXN0IGJlaW5nCisgICAgICAgICAqIHN1YnN0aXR1dGlvbnMuICBBdCB0aGUgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBsZXZlbCwgd2UgaGF2ZSBvbmUKKyAgICAgICAgICogc3BlY2lhbCBzdWJzdGl0dXRpb24gbmFtZSwgSUdOT1JFX1ZBUi4gIFN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlIHRoaXMKKyAgICAgICAgICogZnVuY3Rpb24gdG8gYWRkIG1vcmUuICBBbnkgc3BlY2lhbCBwcm9jZXNzaW5nIHRoYXQgaGFzIHRvIGdvIG9uIGJleW9uZAorICAgICAgICAgKiB0aGF0IHdoaWNoIGlzIGRvbmUgYnkgdGhlIG5vcm1hbCBzdWJzdGl0dXRpb24tcHJvY2Vzc2luZyBjb2RlIGlzIGRvbmUKKyAgICAgICAgICogaGVyZS4KKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVNwZWNpYWxTdWJzdGl0dXRpb24oU3RyaW5nIHJlcGxhY2UsIFN0cmluZyByZXBsYWNlV2l0aCwKKyAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0UG9zLCBTdHJpbmcgZGVzY3JpcHRpb24pIHsKKyAgICAgICAgICAgIC8vIGlmIHdlIGdldCBhIGRlZmluaXRpb24gZm9yIGEgc3Vic3RpdHV0aW9uIGNhbGxlZCBJR05PUkVfVkFSLCBpdCBkZWZpbmVzCisgICAgICAgICAgICAvLyB0aGUgaWdub3JlIGNoYXJhY3RlcnMgZm9yIHRoZSBpdGVyYXRvci4gIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgZXhwcmVzc2lvbgorICAgICAgICAgICAgLy8gaXMgYSBbXSBleHByZXNzaW9uLCBhbmQgaWYgaXQgaXMsIHBhcnNlIGl0IGFuZCBzdG9yZSB0aGUgY2hhcmFjdGVycyBvZmYKKyAgICAgICAgICAgIC8vIHRvIHRoZSBzaWRlLgorICAgICAgICAgICAgaWYgKHJlcGxhY2UuZXF1YWxzKElHTk9SRV9WQVIpKSB7CisgICAgICAgICAgICAgICAgaWYgKHJlcGxhY2VXaXRoLmNoYXJBdCgwKSA9PSAnKCcpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJyb3IoIklnbm9yZSBncm91cCBjYW4ndCBiZSBlbmNsb3NlZCBpbiAoIiwgc3RhcnRQb3MsIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWdub3JlQ2hhcnMgPSBuZXcgVW5pY29kZVNldChyZXBsYWNlV2l0aCwgZmFsc2UpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoaXMgZnVuY3Rpb24gYnVpbGRzIHRoZSBjaGFyYWN0ZXIgY2F0ZWdvcnkgdGFibGUuICBPbiBlbnRyeSwKKyAgICAgICAgICogdGVtcFJ1bGVMaXN0IGlzIGEgdmVjdG9yIG9mIGJyZWFrIHJ1bGVzIHRoYXQgaGFzIGhhZCB2YXJpYWJsZSBuYW1lcyBzdWJzdGl0dXRlZC4KKyAgICAgICAgICogT24gZXhpdCwgdGhlIGNoYXJDYXRlZ29yeVRhYmxlIGRhdGEgbWVtYmVyIGhhcyBiZWVuIGluaXRpYWxpemVkIHRvIGhvbGQgdGhlCisgICAgICAgICAqIGNoYXJhY3RlciBjYXRlZ29yeSB0YWJsZSwgYW5kIHRlbXBSdWxlTGlzdCdzIHJ1bGVzIGhhdmUgYmVlbiBtdW5nZWQgdG8gY29udGFpbgorICAgICAgICAgKiBjaGFyYWN0ZXIgY2F0ZWdvcnkgbnVtYmVycyBldmVyeXdoZXJlIGEgbGl0ZXJhbCBjaGFyYWN0ZXIgb3IgYSBbXSBleHByZXNzaW9uCisgICAgICAgICAqIG9yaWdpbmFsbHkgb2NjdXJyZWQuCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgdm9pZCBidWlsZENoYXJDYXRlZ29yaWVzKFZlY3RvciB0ZW1wUnVsZUxpc3QpIHsKKyAgICAgICAgICAgIGludCBicmFja2V0TGV2ZWwgPSAwOworICAgICAgICAgICAgaW50IHAgPSAwOworICAgICAgICAgICAgaW50IGxpbmVOdW0gPSAwOworCisgICAgICAgICAgICAvLyBidWlsZCBoYXNoIHRhYmxlIG9mIGV2ZXJ5IGxpdGVyYWwgY2hhcmFjdGVyIG9yIFtdIGV4cHJlc3Npb24gaW4gdGhlIHJ1bGUgbGlzdAorICAgICAgICAgICAgLy8gYW5kIGRlcml2ZSBhIFVuaWNvZGVTZXQgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgY2hhcmFjdGVycyBlYWNoIHJlZmVycyB0bworICAgICAgICAgICAgZXhwcmVzc2lvbnMgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgICAgICB3aGlsZSAobGluZU51bSA8IHRlbXBSdWxlTGlzdC5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbGluZSA9IChTdHJpbmcpKHRlbXBSdWxlTGlzdC5lbGVtZW50QXQobGluZU51bSkpOworICAgICAgICAgICAgICAgIHAgPSAwOworICAgICAgICAgICAgICAgIHdoaWxlIChwIDwgbGluZS5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBjaGFyIGMgPSBsaW5lLmNoYXJBdChwKTsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBza2lwIG92ZXIgYWxsIHN5bnRheCBjaGFyYWN0ZXJzIGV4Y2VwdCBbCisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICcoJzogY2FzZSAnKSc6IGNhc2UgJyonOiBjYXNlICcuJzogY2FzZSAnLyc6CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICd8JzogY2FzZSAnOyc6IGNhc2UgJz8nOiBjYXNlICchJzogY2FzZSAnKyc6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvciBbLCBmaW5kIHRoZSBtYXRjaGluZyBdICh0YWtpbmcgbmVzdGVkIFtdIHBhaXJzIGludG8gYWNjb3VudCkKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCBhZGQgdGhlIHdob2xlIGV4cHJlc3Npb24gdG8gdGhlIGV4cHJlc3Npb24gbGlzdAorICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnWyc6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHEgPSBwICsgMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK2JyYWNrZXRMZXZlbDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAocSA8IGxpbmUubGVuZ3RoKCkgJiYgYnJhY2tldExldmVsICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYyA9IGxpbmUuY2hhckF0KHEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYyA9PSAnWycpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrYnJhY2tldExldmVsOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGMgPT0gJ10nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLWJyYWNrZXRMZXZlbDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3E7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChleHByZXNzaW9ucy5nZXQobGluZS5zdWJzdHJpbmcocCwgcSkpID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvbnMucHV0KGxpbmUuc3Vic3RyaW5nKHAsIHEpLCBuZXcgVW5pY29kZVNldChsaW5lLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vic3RyaW5nKHAsIHEpLCBmYWxzZSkpOworLy9UZXN0LmRlYnVnUHJpbnRsbigiMS4gQWRkaW5nIGV4cHJlc3Npb246ICIgKyBsaW5lLnN1YnN0cmluZyhwLCBxKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAgPSBxIC0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9yIFwgc2VxdWVuY2VzLCBqdXN0IG1vdmUgdG8gdGhlIG5leHQgY2hhcmFjdGVyIGFuZCB0cmVhdAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaXQgYXMgYSBzaW5nbGUgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdcXCc6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBsaW5lLmNoYXJBdChwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBET04nVCBicmVhazsgZmFsbCB0aHJvdWdoIGludG8gImRlZmF1bHQiIGNsYXVzZQorCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBmb3IgYW4gaXNvbGF0ZWQgc2luZ2xlIGNoYXJhY3RlciwgYWRkIGl0IHRvIHRoZSBleHByZXNzaW9uIGxpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldCBzID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLmFkZChsaW5lLmNoYXJBdChwKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvbnMucHV0KGxpbmUuc3Vic3RyaW5nKHAsIHAgKyAxKSwgcyk7CisvL1Rlc3QuZGVidWdQcmludGxuKCIyLiBBZGRpbmcgZXhwcmVzc2lvbjogIiArIGxpbmUuc3Vic3RyaW5nKHAsIHAgKyAxKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgKytwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICArK2xpbmVOdW07CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGNyZWF0ZSB0aGUgdGVtcG9yYXJ5IGNhdGVnb3J5IHRhYmxlICh3aGljaCBpcyBhIHZlY3RvciBvZiBVbmljb2RlU2V0IG9iamVjdHMpCisgICAgICAgICAgICBjYXRlZ29yaWVzID0gbmV3IFZlY3RvcigpOworICAgICAgICAgICAgaWYgKGlnbm9yZUNoYXJzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBjYXRlZ29yaWVzLmFkZEVsZW1lbnQoaWdub3JlQ2hhcnMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgY2F0ZWdvcmllcy5hZGRFbGVtZW50KG5ldyBVbmljb2RlU2V0KCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWdub3JlQ2hhcnMgPSBudWxsOworCisgICAgICAgICAgICAvLyB0aGlzIGlzIGEgaG9vayB0byBhbGxvdyBzdWJjbGFzc2VzIHRvIGFkZCBjYXRlZ29yaWVzIG9uIHRoZWlyIG93bgorICAgICAgICAgICAgbXVuZ2VFeHByZXNzaW9uTGlzdChleHByZXNzaW9ucyk7CisKKyAgICAgICAgICAgIC8vIERlcml2ZSB0aGUgY2hhcmFjdGVyIGNhdGVnb3JpZXMuICBHbyB0aHJvdWdoIHRoZSBleGlzdGluZyBjaGFyYWN0ZXIgY2F0ZWdvcmllcworICAgICAgICAgICAgLy8gbG9va2luZyBmb3Igb3ZlcmxhcC4gIEFueSB0aW1lIHRoZXJlJ3Mgb3ZlcmxhcCwgd2UgY3JlYXRlIGEgbmV3IGNoYXJhY3RlcgorICAgICAgICAgICAgLy8gY2F0ZWdvcnkgZm9yIHRoZSBjaGFyYWN0ZXJzIHRoYXQgb3ZlcmxhcHBlZCBhbmQgcmVtb3ZlIHRoZW0gZnJvbSB0aGVpciBvcmlnaW5hbAorICAgICAgICAgICAgLy8gY2F0ZWdvcnkuICBBdCB0aGUgZW5kLCBhbnkgY2hhcmFjdGVycyB0aGF0IGFyZSBsZWZ0IGluIHRoZSBleHByZXNzaW9uIGhhdmVuJ3QKKyAgICAgICAgICAgIC8vIGJlZW4gbWVudGlvbmVkIGluIGFueSBjYXRlZ29yeSwgc28gYW5vdGhlciBuZXcgY2F0ZWdvcnkgaXMgY3JlYXRlZCBmb3IgdGhlbS4KKyAgICAgICAgICAgIC8vIEZvciBleGFtcGxlLCBpZiB0aGUgZmlyc3QgZXhwcmVzc2lvbiBpcyBbYWJjXSwgdGhlbiBhLCBiLCBhbmQgYyB3aWxsIGJlIHBsYWNlZAorICAgICAgICAgICAgLy8gaW50byBhIHNpbmdsZSBjaGFyYWN0ZXIgY2F0ZWdvcnkuICBJZiB0aGUgbmV4dCBleHByZXNzaW9uIGlzIFtiY2RdLCB3ZSB3aWxsIGZpcnN0CisgICAgICAgICAgICAvLyByZW1vdmUgYiBhbmQgYyBmcm9tIHRoZWlyIGV4aXN0aW5nIGNhdGVnb3J5IChsZWF2aW5nIGEgYmVoaW5kKSwgY3JlYXRlIGEgbmV3CisgICAgICAgICAgICAvLyBjYXRlZ29yeSBmb3IgYiBhbmQgYywgYW5kIHRoZW4gY3JlYXRlIGFub3RoZXIgbmV3IGNhdGVnb3J5IGZvciBkICh3aGljaCBoYWRuJ3QKKyAgICAgICAgICAgIC8vIGJlZW4gbWVudGlvbmVkIGluIHRoZSBwcmV2aW91cyBleHByZXNzaW9uKS4KKyAgICAgICAgICAgIC8vIEF0IG5vIHRpbWUgc2hvdWxkIGEgY2hhcmFjdGVyIGV2ZXIgb2NjdXIgaW4gbW9yZSB0aGFuIG9uZSBjaGFyYWN0ZXIgY2F0ZWdvcnkuCisKKyAgICAgICAgICAgIC8vIGZvciBlYWNoIGV4cHJlc3Npb24gaW4gdGhlIGV4cHJlc3Npb25zIGxpc3QsIGRvLi4uCisgICAgICAgICAgICBFbnVtZXJhdGlvbiBpdGVyID0gZXhwcmVzc2lvbnMuZWxlbWVudHMoKTsKKyAgICAgICAgICAgIHdoaWxlIChpdGVyLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICAgICAgLy8gaW5pdGlhbGl6ZSB0aGUgd29ya2luZyBjaGFyIHNldCB0byB0aGUgY2hhcnMgaW4gdGhlIGN1cnJlbnQgZXhwcmVzc2lvbgorICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgd29yayA9IG5ldyBVbmljb2RlU2V0KChVbmljb2RlU2V0KWl0ZXIubmV4dEVsZW1lbnQoKSk7CisKKyAgICAgICAgICAgICAgICAvLyBmb3IgZWFjaCBjYXRlZ29yeSBpbiB0aGUgY2F0ZWdvcnkgbGlzdCwgZG8uLi4KKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gY2F0ZWdvcmllcy5zaXplKCkgLSAxOyAhd29yay5pc0VtcHR5KCkgJiYgaiA+IDA7IGotLSkgeworCisgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZXJlJ3Mgb3ZlcmxhcCBiZXR3ZWVuIHRoZSBjdXJyZW50IHdvcmtpbmcgc2V0IG9mIGNoYXJzCisgICAgICAgICAgICAgICAgICAgIC8vIGFuZCB0aGUgY3VycmVudCBjYXRlZ29yeS4uLgorICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0IGNhdCA9IChVbmljb2RlU2V0KShjYXRlZ29yaWVzLmVsZW1lbnRBdChqKSk7CisgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgb3ZlcmxhcCA9IGludGVyc2VjdGlvbih3b3JrLCBjYXQpOworCisgICAgICAgICAgICAgICAgICAgIGlmICghb3ZlcmxhcC5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBjdXJyZW50IGNhdGVnb3J5IGlzIG5vdCBhIHN1YnNldCBvZiB0aGUgY3VycmVudAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gd29ya2luZyBzZXQgb2YgY2hhcmFjdGVycywgdGhlbiByZW1vdmUgdGhlIG92ZXJsYXBwaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzIGZyb20gdGhlIGN1cnJlbnQgY2F0ZWdvcnkgYW5kIGNyZWF0ZSBhIG5ldworICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2F0ZWdvcnkgZm9yIHRoZW0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghb3ZlcmxhcC5lcXVhbHMoY2F0KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdC5yZW1vdmVBbGwob3ZlcmxhcCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcmllcy5hZGRFbGVtZW50KG92ZXJsYXApOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbmQgYWx3YXlzIHJlbW92ZSB0aGUgb3ZlcmxhcHBpbmcgY2hhcmFjdGVycyBmcm9tIHRoZSBjdXJyZW50CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB3b3JraW5nIHNldCBvZiBjaGFyYWN0ZXJzCisgICAgICAgICAgICAgICAgICAgICAgICB3b3JrLnJlbW92ZUFsbChvdmVybGFwKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGlmIHRoZXJlIGFyZSBzdGlsbCBjaGFyYWN0ZXJzIGxlZnQgaW4gdGhlIHdvcmtpbmcgY2hhciBzZXQsCisgICAgICAgICAgICAgICAgLy8gYWRkIGEgbmV3IGNhdGVnb3J5IGNvbnRhaW5pbmcgdGhlbQorICAgICAgICAgICAgICAgIGlmICghd29yay5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcmllcy5hZGRFbGVtZW50KHdvcmspOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gd2UgaGF2ZSB0aGUgaWdub3JlIGNoYXJhY3RlcnMgc3RvcmVkIGluIHBvc2l0aW9uIDAuICBNYWtlIGFuIGV4dHJhIHBhc3MgdGhyb3VnaAorICAgICAgICAgICAgLy8gdGhlIGNoYXJhY3RlciBjYXRlZ29yeSBsaXN0IGFuZCByZW1vdmUgYW55dGhpbmcgZnJvbSB0aGUgaWdub3JlIGxpc3QgdGhhdCBzaG93cworICAgICAgICAgICAgLy8gdXAgaW4gc29tZSBvdGhlciBjYXRlZ29yeQorICAgICAgICAgICAgVW5pY29kZVNldCBhbGxDaGFycyA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IGNhdGVnb3JpZXMuc2l6ZSgpOyBpKyspCisgICAgICAgICAgICAgICAgYWxsQ2hhcnMuYWRkQWxsKChVbmljb2RlU2V0KShjYXRlZ29yaWVzLmVsZW1lbnRBdChpKSkpOworICAgICAgICAgICAgVW5pY29kZVNldCBpZ25vcmVDaGFycyA9IChVbmljb2RlU2V0KShjYXRlZ29yaWVzLmVsZW1lbnRBdCgwKSk7CisgICAgICAgICAgICBpZ25vcmVDaGFycy5yZW1vdmVBbGwoYWxsQ2hhcnMpOworCisgICAgICAgICAgICAvLyBub3cgdGhhdCB3ZSd2ZSBkZXJpdmVkIHRoZSBjaGFyYWN0ZXIgY2F0ZWdvcmllcywgZ28gYmFjayB0aHJvdWdoIHRoZSBleHByZXNzaW9uCisgICAgICAgICAgICAvLyBsaXN0IGFuZCByZXBsYWNlIGVhY2ggVW5pY29kZVNldCBvYmplY3Qgd2l0aCBhIFN0cmluZyB0aGF0IHJlcHJlc2VudHMgdGhlCisgICAgICAgICAgICAvLyBjaGFyYWN0ZXIgY2F0ZWdvcmllcyB0aGF0IGV4cHJlc3Npb24gcmVmZXJzIHRvLiAgVGhlIFN0cmluZyBpcyBlbmNvZGVkOiBlYWNoCisgICAgICAgICAgICAvLyBjaGFyYWN0ZXIgaXMgYSBjaGFyYWN0ZXIgY2F0ZWdvcnkgbnVtYmVyIChwbHVzIDB4MTAwIHRvIGF2b2lkIGNvbmZ1c2luZyB0aGVtCisgICAgICAgICAgICAvLyB3aXRoIHN5bnRheCBjaGFyYWN0ZXJzIGluIHRoZSBydWxlIGdyYW1tYXIpCisgICAgICAgICAgICBpdGVyID0gZXhwcmVzc2lvbnMua2V5cygpOworICAgICAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcga2V5ID0gKFN0cmluZylpdGVyLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgVW5pY29kZVNldCBjcyA9IChVbmljb2RlU2V0KWV4cHJlc3Npb25zLmdldChrZXkpOworICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBjYXRzID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCisgICAgICAgICAgICAgICAgLy8gZm9yIGVhY2ggY2F0ZWdvcnkuLi4KKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMTsgaiA8IGNhdGVnb3JpZXMuc2l6ZSgpOyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldCBjYXQgPSBuZXcgVW5pY29kZVNldCgoVW5pY29kZVNldCkgY2F0ZWdvcmllcy5lbGVtZW50QXQoaikpOworCisgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBjdXJyZW50IGV4cHJlc3Npb24gY29udGFpbnMgY2hhcmFjdGVycyBpbiB0aGF0IGNhdGVnb3J5Li4uCisgICAgICAgICAgICAgICAgICAgIGlmIChjcy5jb250YWluc0FsbChjYXQpKSB7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZW4gYWRkIHRoZSBlbmNvZGVkIGNhdGVnb3J5IG51bWJlciB0byB0aGUgU3RyaW5nIGZvciB0aGlzCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBleHByZXNzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICBjYXRzLmFwcGVuZCgoY2hhcikoMHgxMDAgKyBqKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3MuZXF1YWxzKGNhdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIG9uY2Ugd2UndmUgZmluaXNoZWQgYnVpbGRpbmcgdGhlIGVuY29kZWQgU3RyaW5nIGZvciB0aGlzIGV4cHJlc3Npb24sCisgICAgICAgICAgICAgICAgLy8gcmVwbGFjZSB0aGUgVW5pY29kZVNldCBvYmplY3Qgd2l0aCBpdAorICAgICAgICAgICAgICAgIGV4cHJlc3Npb25zLnB1dChrZXksIGNhdHMudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGFuZCBmaW5hbGx5LCB3ZSB0dXJuIHRoZSB0ZW1wb3JhcnkgY2F0ZWdvcnkgdGFibGUgaW50byBhIHBlcm1hbmVudCBjYXRlZ29yeQorICAgICAgICAgICAgLy8gdGFibGUsIHdoaWNoIGlzIGEgQ29tcGFjdEJ5dGVBcnJheS4gKHdlIHNraXAgY2F0ZWdvcnkgMCwgd2hpY2ggYnkgZGVmaW5pdGlvbgorICAgICAgICAgICAgLy8gcmVmZXJzIHRvIGFsbCBjaGFyYWN0ZXJzIG5vdCBtZW50aW9uZWQgc3BlY2lmaWNhbGx5IGluIHRoZSBydWxlcykKKyAgICAgICAgICAgIGNoYXJDYXRlZ29yeVRhYmxlID0gbmV3IENvbXBhY3RCeXRlQXJyYXkoKGJ5dGUpMCk7CisKKyAgICAgICAgICAgIC8vIGZvciBlYWNoIGNhdGVnb3J5Li4uCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNhdGVnb3JpZXMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICBVbmljb2RlU2V0IGNoYXJzID0gKFVuaWNvZGVTZXQpKGNhdGVnb3JpZXMuZWxlbWVudEF0KGkpKTsKKyAgICAgICAgICAgICAgICBpbnQgbiA9IGNoYXJzLmdldFJhbmdlQ291bnQoKTsKKworICAgICAgICAgICAgICAgIC8vIGdvIHRocm91Z2ggdGhlIGNoYXJhY3RlciByYW5nZXMgaW4gdGhlIGNhdGVnb3J5IG9uZSBieSBvbmUuLi4KKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG47ICsraikgeworICAgICAgICAgICAgICAgICAgICBpbnQgcmFuZ2VTdGFydCA9IGNoYXJzLmdldFJhbmdlU3RhcnQoaik7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvLyAoaWdub3JlIGFueXRoaW5nIGFib3ZlIHRoZSBCTVAgZm9yIG5vdy4uLikKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJhbmdlU3RhcnQgPj0gMHgxMDAwMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIGFuZCBzZXQgdGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudHMgaW4gdGhlIENvbXBhY3RBcnJheSBhY2NvcmRpbmdseQorICAgICAgICAgICAgICAgICAgICBpZiAoaSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyQ2F0ZWdvcnlUYWJsZS5zZXRFbGVtZW50QXQoKGNoYXIpcmFuZ2VTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhciljaGFycy5nZXRSYW5nZUVuZChqKSwgKGJ5dGUpaSk7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAvLyAoY2F0ZWdvcnkgMCBpcyBzcGVjaWFsLS0gaXQncyB0aGUgaGlkaW5nIHBsYWNlIGZvciB0aGUgaWdub3JlCisgICAgICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlcnMsIHdob3NlIHJlYWwgY2F0ZWdvcnkgbnVtYmVyIGluIHRoZSBDb21wYWN0QXJyYXkgaXMKKyAgICAgICAgICAgICAgICAgICAgLy8gLTEgW3RoaXMgaXMgYmVjYXVzZSBjYXRlZ29yeSAwIGNvbnRhaW5zIGFsbCBjaGFyYWN0ZXJzIG5vdAorICAgICAgICAgICAgICAgICAgICAvLyBzcGVjaWZpY2FsbHkgbWVudGlvbmVkIGFueXdoZXJlIGluIHRoZSBydWxlc10gKQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJDYXRlZ29yeVRhYmxlLnNldEVsZW1lbnRBdCgoY2hhcilyYW5nZVN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKWNoYXJzLmdldFJhbmdlRW5kKGopLCBJR05PUkUpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBvbmNlIHdlJ3ZlIHBvcHVsYXRlZCB0aGUgQ29tcGFjdEFycmF5LCBjb21wYWN0IGl0CisgICAgICAgICAgICBjaGFyQ2F0ZWdvcnlUYWJsZS5jb21wYWN0KCk7CisKKyAgICAgICAgICAgIC8vIGluaXRpYWxpemUgbnVtQ2F0ZWdvcmllcworICAgICAgICAgICAgbnVtQ2F0ZWdvcmllcyA9IGNhdGVnb3JpZXMuc2l6ZSgpOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgbXVuZ2VFeHByZXNzaW9uTGlzdChIYXNodGFibGUgZXhwcmVzc2lvbnMpIHsKKyAgICAgICAgICAgIC8vIGVtcHR5IGluIHRoZSBwYXJlbnQgY2xhc3MuICBUaGlzIGZ1bmN0aW9uIHByb3ZpZGVzIGEgaG9vayBmb3Igc3ViY2xhc3NlcworICAgICAgICAgICAgLy8gdG8gbWVzcyB3aXRoIHRoZSBjaGFyYWN0ZXIgY2F0ZWdvcnkgdGFibGUuCisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogVGhpcyBpcyB0aGUgZnVuY3Rpb24gdGhhdCBidWlsZHMgdGhlIGZvcndhcmQgc3RhdGUgdGFibGUuICBNb3N0IG9mIHRoZSByZWFsCisgICAgICAgICAqIHdvcmsgaXMgZG9uZSBpbiBwYXJzZVJ1bGUoKSwgd2hpY2ggaXMgY2FsbGVkIG9uY2UgZm9yIGVhY2ggcnVsZSBpbiB0aGUKKyAgICAgICAgICogZGVzY3JpcHRpb24uCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHZvaWQgYnVpbGRTdGF0ZVRhYmxlKFZlY3RvciB0ZW1wUnVsZUxpc3QpIHsKKyAgICAgICAgICAgIC8vIGluaXRpYWxpemUgb3VyIHRlbXBvcmFyeSBzdGF0ZSB0YWJsZSwgYW5kIGZpbGwgaXQgd2l0aCB0d28gc3RhdGVzOgorICAgICAgICAgICAgLy8gc3RhdGUgMCBpcyBhIGR1bW15IHN0YXRlIHRoYXQgYWxsb3dzIHN0YXRlIDEgdG8gYmUgdGhlIHN0YXJ0aW5nIHN0YXRlCisgICAgICAgICAgICAvLyBhbmQgMCB0byByZXByZXNlbnQgInN0b3AiLiAgU3RhdGUgMSBpcyBhZGRlZCBoZXJlIHRvIHNlZWQgdGhpbmdzCisgICAgICAgICAgICAvLyBiZWZvcmUgd2Ugc3RhcnQgcGFyc2luZworICAgICAgICAgICAgdGVtcFN0YXRlVGFibGUgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgICAgICB0ZW1wU3RhdGVUYWJsZS5hZGRFbGVtZW50KG5ldyBzaG9ydFtudW1DYXRlZ29yaWVzICsgMV0pOworICAgICAgICAgICAgdGVtcFN0YXRlVGFibGUuYWRkRWxlbWVudChuZXcgc2hvcnRbbnVtQ2F0ZWdvcmllcyArIDFdKTsKKworICAgICAgICAgICAgLy8gY2FsbCBwYXJzZVJ1bGUoKSBmb3IgZXZlcnkgcnVsZSBpbiB0aGUgcnVsZSBsaXN0IChleGNlcHQgdGhvc2Ugd2hpY2gKKyAgICAgICAgICAgIC8vIHN0YXJ0IHdpdGggISwgd2hpY2ggYXJlIGFjdHVhbGx5IGJhY2t3YXJkcy1pdGVyYXRpb24gcnVsZXMpCisgICAgICAgICAgICAvLyB2YXJpYWJsZSBub3QgdXNlZCBpbnQgbiA9IHRlbXBSdWxlTGlzdC5zaXplKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlbXBSdWxlTGlzdC5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgICAgIFN0cmluZyBydWxlID0gKFN0cmluZyl0ZW1wUnVsZUxpc3QuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgICAgIGlmIChydWxlLmNoYXJBdCgwKSAhPSAnIScpIHsKKyAgICAgICAgICAgICAgICAgICAgcGFyc2VSdWxlKHJ1bGUsIHRydWUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gZmluYWxseSwgdXNlIGZpbmlzaEJ1aWxkaW5nU3RhdGVUYWJsZSgpIHRvIG1pbmltaXplIHRoZSBudW1iZXIgb2YKKyAgICAgICAgICAgIC8vIHN0YXRlcyBpbiB0aGUgdGFibGUgYW5kIHBlcmZvcm0gc29tZSBvdGhlciBjbGVhbnVwIHdvcmsKKyAgICAgICAgICAgIGZpbmlzaEJ1aWxkaW5nU3RhdGVUYWJsZSh0cnVlKTsKKy8qCitTeXN0ZW0ub3V0LnByaW50KCJDOlx0Iik7Citmb3IgKGludCBpID0gMDsgaSA8IG51bUNhdGVnb3JpZXM7IGkrKykKK1N5c3RlbS5vdXQucHJpbnQoSW50ZWdlci50b1N0cmluZyhpKSArICJcdCIpOworU3lzdGVtLm91dC5wcmludGxuKCk7IFN5c3RlbS5vdXQucHJpbnQoIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iKTsKK2ZvciAoaW50IGkgPSAwOyBpIDwgc3RhdGVUYWJsZS5sZW5ndGg7IGkrKykgeworaWYgKGkgJSBudW1DYXRlZ29yaWVzID09IDApIHsKK1N5c3RlbS5vdXQucHJpbnRsbigpOworaWYgKGVuZFN0YXRlc1tpIC8gbnVtQ2F0ZWdvcmllc10pCitTeXN0ZW0ub3V0LnByaW50KCIqIik7CitlbHNlCitTeXN0ZW0ub3V0LnByaW50KCIgIik7CitpZiAobG9va2FoZWFkU3RhdGVzW2kgLyBudW1DYXRlZ29yaWVzXSkgeworU3lzdGVtLm91dC5wcmludCgiJSIpOworfQorZWxzZQorU3lzdGVtLm91dC5wcmludCgiICIpOworU3lzdGVtLm91dC5wcmludChJbnRlZ2VyLnRvU3RyaW5nKGkgLyBudW1DYXRlZ29yaWVzKSArICI6XHQiKTsKK30KK2lmIChzdGF0ZVRhYmxlW2ldID09IDApIFN5c3RlbS5vdXQucHJpbnQoIi5cdCIpOyBlbHNlIFN5c3RlbS5vdXQucHJpbnQoSW50ZWdlci50b1N0cmluZyhzdGF0ZVRhYmxlW2ldKSArICJcdCIpOworfQorU3lzdGVtLm91dC5wcmludGxuKCk7CisqLworICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogVGhpcyBpcyB3aGVyZSBtb3N0IG9mIHRoZSB3b3JrIHJlYWxseSBoYXBwZW5zLiAgVGhpcyByb3V0aW5lIHBhcnNlcyBhIHNpbmdsZQorICAgICAgICAgKiBydWxlIGluIHRoZSBydWxlIGRlc2NyaXB0aW9uLCBhZGRpbmcgYW5kIG1vZGlmeWluZyBzdGF0ZXMgaW4gdGhlIHN0YXRlCisgICAgICAgICAqIHRhYmxlIGFjY29yZGluZyB0byB0aGUgbmV3IGV4cHJlc3Npb24uICBUaGUgc3RhdGUgdGFibGUgaXMga2VwdCBkZXRlcm1pbmlzdGljCisgICAgICAgICAqIHRocm91Z2hvdXQgdGhlIHdob2xlIG9wZXJhdGlvbiwgYWx0aG91Z2ggc29tZSB1Z2x5IHBvc3Rwcm9jZXNzaW5nIGlzIG5lZWRlZAorICAgICAgICAgKiB0byBoYW5kbGUgdGhlICo/IHRva2VuLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSB2b2lkIHBhcnNlUnVsZShTdHJpbmcgcnVsZSwgYm9vbGVhbiBmb3J3YXJkKSB7CisgICAgICAgICAgICAvLyBhbGdvcml0aG0gbm90ZXM6CisgICAgICAgICAgICAvLyAgIC0gVGhlIGJhc2ljIGlkZWEgaGVyZSBpcyB0byByZWFkIHN1Y2Nlc3NpdmUgY2hhcmFjdGVyLWNhdGVnb3J5IGdyb3VwcworICAgICAgICAgICAgLy8gICBmcm9tIHRoZSBpbnB1dCBzdHJpbmcuICBGb3IgZWFjaCBncm91cCwgeW91IGNyZWF0ZSBhIHN0YXRlIGFuZCBwb2ludAorICAgICAgICAgICAgLy8gICB0aGUgYXBwcm9wcmlhdGUgZW50cmllcyBpbiB0aGUgcHJldmlvdXMgc3RhdGUgdG8gaXQuICBUaGlzIHByb2R1Y2VzIGEKKyAgICAgICAgICAgIC8vICAgc3RyYWlnaHQgbGluZSBmcm9tIHRoZSBzdGFydCBzdGF0ZSB0byB0aGUgZW5kIHN0YXRlLiAgVGhlID8sICssICosIGFuZCAofCkKKyAgICAgICAgICAgIC8vICAgaWRpb21zIHByb2R1Y2UgYnJhbmNoZXMgaW4gdGhpcyBzdHJhaWdodCBsaW5lLiAgVGhlc2UgYnJhbmNoZXMgKHN0YXRlcworICAgICAgICAgICAgLy8gICB0aGF0IGNhbiB0cmFuc2l0aW9uIHRvIG1vcmUgdGhhbiBvbmUgb3RoZXIgc3RhdGUpIGFyZSBjYWxsZWQgImRlY2lzaW9uCisgICAgICAgICAgICAvLyAgIHBvaW50cy4iICBBIGxpc3Qgb2YgZGVjaXNpb24gcG9pbnRzIGlzIGtlcHQuICBUaGlzIGNvbnRhaW5zIGEgbGlzdCBvZgorICAgICAgICAgICAgLy8gICBhbGwgc3RhdGVzIHRoYXQgY2FuIHRyYW5zaXRpb24gdG8gdGhlIG5leHQgc3RhdGUgdG8gYmUgY3JlYXRlZC4gIEZvciBhCisgICAgICAgICAgICAvLyAgIHN0cmFpZ2h0IGxpbmUgcHJvZ3Jlc3Npb24sIHRoZSBvbmx5IHRoaW5nIGluIHRoZSBkZWNpc2lvbi1wb2ludCBsaXN0IGlzCisgICAgICAgICAgICAvLyAgIHRoZSBjdXJyZW50IHN0YXRlLiAgQnV0IGlmIHRoZXJlJ3MgYSBicmFuY2gsIHRoZSBkZWNpc2lvbi1wb2ludCBsaXN0CisgICAgICAgICAgICAvLyAgIHdpbGwgY29udGFpbiBhbGwgb2YgdGhlIGJlZ2lubmluZyBwb2ludHMgb2YgdGhlIGJyYW5jaCB3aGVuIHRoZSBuZXh0CisgICAgICAgICAgICAvLyAgIHN0YXRlIHRvIGJlIGNyZWF0ZWQgcmVwcmVzZW50cyB0aGUgZW5kIHBvaW50IG9mIHRoZSBicmFuY2guICBBIHN0YWNrIGlzCisgICAgICAgICAgICAvLyAgIHVzZWQgdG8gc2F2ZSBkZWNpc2lvbiBwb2ludCBsaXN0cyBpbiB0aGUgcHJlc2VuY2Ugb2YgbmVzdGVkIHBhcmVudGhlc2VzCisgICAgICAgICAgICAvLyAgIGFuZCB0aGUgbGlrZS4gIEZvciBleGFtcGxlLCB3aGVuIGEgeyBpcyBlbmNvdW50ZXJlZCwgdGhlIGN1cnJlbnQgZGVjaXNpb24KKyAgICAgICAgICAgIC8vICAgcG9pbnQgbGlzdCBpcyBzYXZlZCBvbiB0aGUgc3RhY2sgYW5kIHJlc3RvcmVkIHdoZW4gdGhlIGNvcnJlc3BvbmRpbmcgfQorICAgICAgICAgICAgLy8gICBpcyBlbmNvdW50ZXJlZC4gIFRoaXMgd2F5LCBhZnRlciB0aGUgfSBpcyByZWFkLCB0aGUgZGVjaXNpb24gcG9pbnQgbGlzdAorICAgICAgICAgICAgLy8gICB3aWxsIGNvbnRhaW4gYm90aCB0aGUgc3RhdGUgcmlnaHQgYmVmb3JlIHRoZSB9IF9hbmRfIHRoZSBzdGF0ZSBiZWZvcmUKKyAgICAgICAgICAgIC8vICAgdGhlIHdob2xlIHt9IGV4cHJlc3Npb24uICBCb3RoIG9mIHRoZXNlIHN0YXRlcyBjYW4gdHJhbnNpdGlvbiB0byB0aGUgbmV4dAorICAgICAgICAgICAgLy8gICBzdGF0ZSBhZnRlciB0aGUge30gZXhwcmVzc2lvbi4KKyAgICAgICAgICAgIC8vICAgLSBvbmUgY29tcGxpY2F0aW9uIGFyaXNlcyB3aGVuIHdlIGhhdmUgdG8gc3RhbXAgYSB0cmFuc2l0aW9uIHZhbHVlIGludG8KKyAgICAgICAgICAgIC8vICAgYW4gYXJyYXkgY2VsbCB0aGF0IGFscmVhZHkgY29udGFpbnMgb25lLiAgVGhlIHVwZGF0ZVN0YXRlVGFibGUoKSBhbmQKKyAgICAgICAgICAgIC8vICAgbWVyZ2VTdGF0ZXMoKSBmdW5jdGlvbnMgaGFuZGxlIHRoaXMgY2FzZS4gIFRoZWlyIGJhc2ljIGFwcHJvYWNoIGlzIHRvCisgICAgICAgICAgICAvLyAgIGNyZWF0ZSBhIG5ldyBzdGF0ZSB0aGF0IGNvbWJpbmVzIHRoZSB0d28gc3RhdGVzIHRoYXQgY29uZmxpY3QgYW5kIHBvaW50CisgICAgICAgICAgICAvLyAgIGF0IGl0IHdoZW4gbmVjZXNzYXJ5LiAgVGhpcyBoYXBwZW5zIHJlY3Vyc2l2ZWx5LCBzbyBpZiB0aGUgbWVyZ2VkIHN0YXRlcworICAgICAgICAgICAgLy8gICBhbHNvIGNvbmZsaWN0LCB0aGV5J3JlIHJlc29sdmVkIGluIHRoZSBzYW1lIHdheSwgYW5kIHNvIG9uLiAgVGhlcmUgYXJlCisgICAgICAgICAgICAvLyAgIGEgbnVtYmVyIG9mIHRlc3RzIGFpbWVkIGF0IHByZXZlbnRpbmcgaW5maW5pdGUgcmVjdXJzaW9uLgorICAgICAgICAgICAgLy8gICAtIGFub3RoZXIgY29tcGxpY2F0aW9uIGFyaXNlcyB3aXRoIHJlcGVhdGluZyBjaGFyYWN0ZXJzLiAgSXQncyBzb21ld2hhdAorICAgICAgICAgICAgLy8gICBhbWJpZ3VvdXMgd2hldGhlciB0aGUgdXNlciB3YW50cyBhIGdyZWVkeSBvciBub24tZ3JlZWR5IG1hdGNoIGluIHRoZXNlIGNhc2VzLgorICAgICAgICAgICAgLy8gICAoZS5nLiwgd2hldGhlciAiW2Etel0qYWJjIiBtZWFucyB0aGUgU0hPUlRFU1Qgc2VxdWVuY2Ugb2YgbGV0dGVycyBlbmRpbmcgaW4KKyAgICAgICAgICAgIC8vICAgImFiYyIgb3IgdGhlIExPTkdFU1Qgc2VxdWVuY2Ugb2YgbGV0dGVycyBlbmRpbmcgaW4gImFiYyIuICBXZSd2ZSBhZG9wdGVkCisgICAgICAgICAgICAvLyAgIHRoZSAqPyB0byBtZWFuICJzaG9ydGVzdCIgYW5kICogYnkgaXRzZWxmIHRvIG1lYW4gImxvbmdlc3QiLiAgKFlvdSBnZXQgdGhlCisgICAgICAgICAgICAvLyAgIHNhbWUgcmVzdWx0IHdpdGggYm90aCBpZiB0aGVyZSdzIG5vIG92ZXJsYXAgYmV0d2VlbiB0aGUgcmVwZWF0aW5nIGNoYXJhY3RlcgorICAgICAgICAgICAgLy8gICBncm91cCBhbmQgdGhlIGdyb3VwIGltbWVkaWF0ZWx5IGZvbGxvd2luZyBpdC4pICBIYW5kbGluZyB0aGUgKj8gdG9rZW4gaXMKKyAgICAgICAgICAgIC8vICAgcmF0aGVyIGNvbXBsaWNhdGVkIGFuZCBpbnZvbHZlcyBrZWVwaW5nIHRyYWNrIG9mIHdoZXRoZXIgYSBzdGF0ZSBuZWVkcyB0bworICAgICAgICAgICAgLy8gICBiZSBtZXJnZWQgKGFzIGRlc2NyaWJlZCBhYm92ZSkgb3IgbWVyZWx5IG92ZXJ3cml0dGVuIHdoZW4geW91IHVwZGF0ZSBvbmUgb2YKKyAgICAgICAgICAgIC8vICAgaXRzIGNlbGxzLCBhbmQgY29weWluZyB0aGUgY29udGVudHMgb2YgYSBzdGF0ZSB0aGF0IGxvb3BzIHdpdGggYSAqPyB0b2tlbgorICAgICAgICAgICAgLy8gICBpbnRvIHNvbWUgb2YgdGhlIHN0YXRlcyB0aGF0IGZvbGxvdyBpdCBhZnRlciB0aGUgcmVzdCBvZiB0aGUgdGFibGUtYnVpbGRpbmcKKyAgICAgICAgICAgIC8vICAgcHJvY2VzcyBpcyBjb21wbGV0ZSAoImJhY2tmaWxsaW5nIikuCisgICAgICAgICAgICAvLyBpbXBsZW1lbnRhdGlvbiBub3RlczoKKyAgICAgICAgICAgIC8vICAgLSBUaGlzIGZ1bmN0aW9uIGFzc3VtZXMgc3ludGF4IGNoZWNraW5nIGhhcyBiZWVuIHBlcmZvcm1lZCBvbiB0aGUgaW5wdXQgc3RyaW5nCisgICAgICAgICAgICAvLyAgIHByaW9yIHRvIGl0cyBiZWluZyBwYXNzZWQgaW4gaGVyZS4gIEl0IGFzc3VtZXMgdGhhdCBwYXJlbnRoZXNlcyBhcmUKKyAgICAgICAgICAgIC8vICAgYmFsYW5jZWQsIGFsbCBsaXRlcmFsIGNoYXJhY3RlcnMgYXJlIGVuY2xvc2VkIGluIFtdIGFuZCB0dXJuZWQgaW50byBjYXRlZ29yeQorICAgICAgICAgICAgLy8gICBudW1iZXJzLCB0aGF0IHRoZXJlIGFyZSBubyBpbGxlZ2FsIGNoYXJhY3RlcnMgb3IgY2hhcmFjdGVyIHNlcXVlbmNlcywgYW5kIHNvCisgICAgICAgICAgICAvLyAgIG9uLiAgVmlvbGF0aW9uIG9mIHRoZXNlIGludmFyaWFudHMgd2lsbCBsZWFkIHRvIHVuZGVmaW5lZCBiZWhhdmlvci4KKyAgICAgICAgICAgIC8vICAgLSBJdCdkIHByb2JhYmx5IGJlIGJldHRlciB0byB1c2UgbGlua2VkIGxpc3RzIHJhdGhlciB0aGFuIFZlY3RvciBhbmQgU3RhY2sKKyAgICAgICAgICAgIC8vICAgdG8gbWFpbnRhaW4gdGhlIGRlY2lzaW9uIHBvaW50IGxpc3QgYW5kIHN0YWNrLiAgSSB3ZW50IGZvciBzaW1wbGljaXR5IGluCisgICAgICAgICAgICAvLyAgIHRoaXMgaW5pdGlhbCBpbXBsZW1lbnRhdGlvbi4gIElmIHBlcmZvcm1hbmNlIGlzIGNyaXRpY2FsIGVub3VnaCwgd2UgY2FuIGdvCisgICAgICAgICAgICAvLyAgIGJhY2sgYW5kIGZpeCB0aGlzIGxhdGVyLgorICAgICAgICAgICAgLy8gICAtVGhlcmUgYXJlIGEgbnVtYmVyIG9mIGltcG9ydGFudCBsaW1pdGF0aW9ucyBvbiB0aGUgKj8gdG9rZW4uICBJdCBkb2VzIG5vdCB3b3JrCisgICAgICAgICAgICAvLyAgIHJpZ2h0IHdoZW4gZm9sbG93ZWQgYnkgYSByZXBlYXRpbmcgY2hhcmFjdGVyIHNlcXVlbmNlIChlLmcuLCAiLio/KGFiYykqIikKKyAgICAgICAgICAgIC8vICAgKGFsdGhvdWdoIGl0IGRvZXMgd29yayByaWdodCB3aGVuIGZvbGxvd2VkIGJ5IGEgc2luZ2xlIHJlcGVhdGluZyBjaGFyYWN0ZXIpLgorICAgICAgICAgICAgLy8gICBJdCB3aWxsIG5vdCBhbHdheXMgd29yayByaWdodCB3aGVuIG5lc3RlZCBpbiBwYXJlbnRoZXNlcyBvciBicmFjZXMgKGFsdGhvdWdoCisgICAgICAgICAgICAvLyAgIHNvbWV0aW1lcyBpdCB3aWxsKS4gIEl0IGFsc28gd2lsbCBub3Qgd29yayByaWdodCBpZiB0aGUgZ3JvdXAgb2YgcmVwZWF0aW5nCisgICAgICAgICAgICAvLyAgIGNoYXJhY3RlcnMgYW5kIHRoZSBncm91cCBvZiBjaGFyYWN0ZXJzIHRoYXQgZm9sbG93cyBvdmVybGFwIHBhcnRpYWxseQorICAgICAgICAgICAgLy8gICAoZS5nLiwgIlthLWddKj9bZS1qXSIpLiAgTm9uZSBvZiB0aGVzZSBjYXBhYmlsaXRlcyB3YXMgZGVlbWVkIG5lY2Vzc2FyeSBmb3IKKyAgICAgICAgICAgIC8vICAgZGVzY3JpYmluZyBicmVha2luZyBydWxlcyB3ZSBrbm93IGFib3V0LCBzbyB3ZSBsZWZ0IHRoZW0gb3V0IGZvcgorICAgICAgICAgICAgLy8gICBleHBlZGl0aW91c25lc3MuCisgICAgICAgICAgICAvLyAgIC0gUnVsZXMgc3VjaCBhcyAiW2Etel0qP2FiYzsiIHdpbGwgYmUgdHJlYXRlZCB0aGUgc2FtZSBhcyAiW2Etel0qP2FhKmJjOyItLQorICAgICAgICAgICAgLy8gICB0aGF0IGlzLCBpZiB0aGUgc3RyaW5nIGVuZHMgaW4gImFhYWFiYyIsIHRoZSBicmVhayB3aWxsIGdvIGJlZm9yZSB0aGUgZmlyc3QKKyAgICAgICAgICAgIC8vICAgImEiIHJhdGhlciB0aGFuIHRoZSBsYXN0IG9uZS4gIEJvdGggb2YgdGhlc2UgYXJlIGxpbWl0YXRpb25zIGluIHRoZSBkZXNpZ24KKyAgICAgICAgICAgIC8vICAgb2YgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBhbmQgbm90IGxpbWl0YXRpb25zIG9mIHRoZSBydWxlIHBhcnNlci4KKworICAgICAgICAgICAgaW50IHAgPSAwOworICAgICAgICAgICAgaW50IGN1cnJlbnRTdGF0ZSA9IDE7ICAgLy8gZG9uJ3QgdXNlIHN0YXRlIG51bWJlciAwOyAwIG1lYW5zICJzdG9wIgorICAgICAgICAgICAgaW50IGxhc3RTdGF0ZSA9IGN1cnJlbnRTdGF0ZTsKKyAgICAgICAgICAgIFN0cmluZyBwZW5kaW5nQ2hhcnMgPSAiIjsKKworICAgICAgICAgICAgZGVjaXNpb25Qb2ludFN0YWNrID0gbmV3IFN0YWNrKCk7CisgICAgICAgICAgICBkZWNpc2lvblBvaW50TGlzdCA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgICAgIGxvb3BpbmdTdGF0ZXMgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgICAgICBzdGF0ZXNUb0JhY2tmaWxsID0gbmV3IFZlY3RvcigpOworCisgICAgICAgICAgICBzaG9ydFtdIHN0YXRlOworICAgICAgICAgICAgYm9vbGVhbiBzYXdFYXJseUJyZWFrID0gZmFsc2U7CisKKyAgICAgICAgICAgIC8vIGlmIHdlJ3JlIGFkZGluZyBydWxlcyB0byB0aGUgYmFja3dhcmQgc3RhdGUgdGFibGUsIG1hcmsgdGhlIGluaXRpYWwgc3RhdGUKKyAgICAgICAgICAgIC8vIGFzIGEgbG9vcGluZyBzdGF0ZQorICAgICAgICAgICAgaWYgKCFmb3J3YXJkKSB7CisgICAgICAgICAgICAgICAgbG9vcGluZ1N0YXRlcy5hZGRFbGVtZW50KG5ldyBJbnRlZ2VyKDEpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gcHV0IHRoZSBjdXJyZW50IHN0YXRlIG9uIHRoZSBkZWNpc2lvbiBwb2ludCBsaXN0IGJlZm9yZSB3ZSBzdGFydAorICAgICAgICAgICAgZGVjaXNpb25Qb2ludExpc3QuYWRkRWxlbWVudChuZXcgSW50ZWdlcihjdXJyZW50U3RhdGUpKTsgLy8gd2Ugd2FudCBjdXJyZW50U3RhdGUgdG8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJlIDEgaGVyZS4uLgorICAgICAgICAgICAgY3VycmVudFN0YXRlID0gdGVtcFN0YXRlVGFibGUuc2l6ZSgpIC0gMTsgICAvLyBidXQgYWZ0ZXIgdGhhdCwgd2Ugd2FudCBpdCB0byBiZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAxIGxlc3MgdGhhbiB0aGUgc3RhdGUgbnVtYmVyIG9mIHRoZSBuZXh0IHN0YXRlCisgICAgICAgICAgICB3aGlsZSAocCA8IHJ1bGUubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBjaGFyIGMgPSBydWxlLmNoYXJBdChwKTsKKyAgICAgICAgICAgICAgICBjbGVhckxvb3BpbmdTdGF0ZXMgPSBmYWxzZTsKKworICAgICAgICAgICAgICAgIC8vIHRoaXMgc2VjdGlvbiBoYW5kbGVzIGxpdGVyYWwgY2hhcmFjdGVycywgZXNjYXBlZCBjaGFyYWN0ZXJzICh3aGljaCBhcmUKKyAgICAgICAgICAgICAgICAvLyBlZmZlY3RpdmVseSBsaXRlcmFsIGNoYXJhY3RlcnMgdG9vKSwgdGhlIC4gdG9rZW4sIGFuZCBbXSBleHByZXNzaW9ucworICAgICAgICAgICAgICAgIGlmIChjID09ICdbJworICAgICAgICAgICAgICAgICAgICB8fCBjID09ICdcXCcKKyAgICAgICAgICAgICAgICAgICAgfHwgQ2hhcmFjdGVyLmlzTGV0dGVyKGMpCisgICAgICAgICAgICAgICAgICAgIHx8IENoYXJhY3Rlci5pc0RpZ2l0KGMpCisgICAgICAgICAgICAgICAgICAgIHx8IGMgPCAnICcKKyAgICAgICAgICAgICAgICAgICAgfHwgYyA9PSAnLicKKyAgICAgICAgICAgICAgICAgICAgfHwgYyA+PSAnXHUwMDdmJykgeworCisgICAgICAgICAgICAgICAgICAgIC8vIGlmIHdlJ3JlIG5vdCBvbiBhIHBlcmlvZCwgaXNvbGF0ZSB0aGUgZXhwcmVzc2lvbiBhbmQgbG9vayB1cAorICAgICAgICAgICAgICAgICAgICAvLyB0aGUgY29ycmVzcG9uZGluZyBjYXRlZ29yeSBsaXN0CisgICAgICAgICAgICAgICAgICAgIGlmIChjICE9ICcuJykgeworICAgICAgICAgICAgICAgICAgICAgICAgaW50IHEgPSBwOworCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiB3ZSdyZSBvbiBhIGJhY2tzbGFzaCwgdGhlIGV4cHJlc3Npb24gaXMgdGhlIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWZ0ZXIgdGhlIGJhY2tzbGFzaAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMgPT0gJ1xcJykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHEgPSBwICsgMjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3A7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHdlJ3JlIG9uIGFuIG9wZW5pbmcgYnJhY2tldCwgc2NhbiB0byB0aGUgY2xvc2luZyBicmFja2V0CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0byBpc29sYXRlIHRoZSBleHByZXNzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChjID09ICdbJykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBicmFja2V0TGV2ZWwgPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChicmFja2V0TGV2ZWwgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrcTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYyA9IHJ1bGUuY2hhckF0KHEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYyA9PSAnWycpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrYnJhY2tldExldmVsOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGMgPT0gJ10nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLWJyYWNrZXRMZXZlbDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChjID09ICdcXCcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrcTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3E7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG90aGVyd2lzZSwgdGhlIGV4cHJlc3Npb24gaXMganVzdCB0aGUgY2hhcmFjdGVyIGl0c2VsZgorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcSA9IHAgKyAxOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBsb29rIHVwIHRoZSBjYXRlZ29yeSBsaXN0IGZvciB0aGUgZXhwcmVzc2lvbiBhbmQgc3RvcmUgaXQKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluIHBlbmRpbmdDaGFycworICAgICAgICAgICAgICAgICAgICAgICAgcGVuZGluZ0NoYXJzID0gKFN0cmluZylleHByZXNzaW9ucy5nZXQocnVsZS5zdWJzdHJpbmcocCwgcSkpOworCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBhZHZhbmNlIHRoZSBjdXJyZW50IHBvc2l0aW9uIHBhc3QgdGhlIGV4cHJlc3Npb24KKyAgICAgICAgICAgICAgICAgICAgICAgIHAgPSBxIC0gMTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBjaGFyYWN0ZXIgd2UncmUgb24gaXMgYSBwZXJpb2QsIHdlIGVuZCB1cCBkb3duIGhlcmUKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcm93TnVtID0gKChJbnRlZ2VyKWRlY2lzaW9uUG9pbnRMaXN0Lmxhc3RFbGVtZW50KCkpLmludFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IChzaG9ydFtdKXRlbXBTdGF0ZVRhYmxlLmVsZW1lbnRBdChyb3dOdW0pOworCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGUgcGVyaW9kIGlzIGZvbGxvd2VkIGJ5IGFuIGFzdGVyaXNrLCB0aGVuIGp1c3Qgc2V0IHRoZSBjdXJyZW50CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBzdGF0ZSB0byBsb29wIGJhY2sgb24gaXRzZWxmCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocCArIDEgPCBydWxlLmxlbmd0aCgpICYmIHJ1bGUuY2hhckF0KHAgKyAxKSA9PSAnKicgJiYgc3RhdGVbMF0gIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2lzaW9uUG9pbnRMaXN0LmFkZEVsZW1lbnQobmV3IEludGVnZXIoc3RhdGVbMF0pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZW5kaW5nQ2hhcnMgPSAiIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3A7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHAgKyAxIDwgcnVsZS5sZW5ndGgoKSAmJiBydWxlLmNoYXJBdChwICsgMSkgPT0gJz8nKSB7CisvL1N5c3RlbS5vdXQucHJpbnRsbigiU2F3ICo/Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldExvb3BpbmdTdGF0ZXMoZGVjaXNpb25Qb2ludExpc3QsIGRlY2lzaW9uUG9pbnRMaXN0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy8vU3lzdGVtLm91dC5wcmludGxuKCJTYXcgLioiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3RoZXJ3aXNlLCBmYWJyaWNhdGUgYSBjYXRlZ29yeSBsaXN0ICgicGVuZGluZ0NoYXJzIikgd2l0aAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXZlcnkgY2F0ZWdvcnkgaW4gaXQKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB0ZW1wID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtQ2F0ZWdvcmllczsgaSsrKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wLmFwcGVuZCgoY2hhcikoaSArIDB4MTAwKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVuZGluZ0NoYXJzID0gdGVtcC50b1N0cmluZygpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy8gd2UnbGwgZW5kIHVwIGluIGhlcmUgZm9yIGFsbCBleHByZXNzaW9ucyBleGNlcHQgZm9yIC4qLCB3aGljaCBpcworICAgICAgICAgICAgICAgICAgICAvLyBzcGVjaWFsLWNhc2VkIGFib3ZlCisgICAgICAgICAgICAgICAgICAgIGlmIChwZW5kaW5nQ2hhcnMubGVuZ3RoKCkgIT0gMCkgeworCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGUgZXhwcmVzc2lvbiBpcyBmb2xsb3dlZCBieSBhbiBhc3RlcmlzayBvciBhIHF1ZXN0aW9uIG1hcmssCisgICAgICAgICAgICAgICAgICAgICAgICAvLyAgdGhlbiBwdXNoIGEgY29weSBvZiB0aGUgY3VycmVudCBkZWNpc2lvbiBwb2ludCBsaXN0IG9udG8gdGhlIHN0YWNrCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocCArIDEgPCBydWxlLmxlbmd0aCgpICYmICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlLmNoYXJBdChwICsgMSkgPT0gJyonIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZS5jaGFyQXQocCArIDEpID09ICc/JworICAgICAgICAgICAgICAgICAgICAgICAgKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2lzaW9uUG9pbnRTdGFjay5wdXNoKGRlY2lzaW9uUG9pbnRMaXN0LmNsb25lKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjcmVhdGUgYSBuZXcgc3RhdGUsIGFkZCBpdCB0byB0aGUgbGlzdCBvZiBzdGF0ZXMgdG8gYmFja2ZpbGwKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHdlIGhhdmUgbG9vcGluZyBzdGF0ZXMgdG8gd29ycnkgYWJvdXQsIHNldCBpdHMgImRvbid0IG1ha2UKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1lIGFuIGFjY2VwdGluZyBzdGF0ZSIgZmxhZyBpZiB3ZSd2ZSBzZWVuIGEgc2xhc2gsIGFuZCBhZGQKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGl0IHRvIHRoZSBlbmQgb2YgdGhlIHN0YXRlIHRhYmxlCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbmV3U3RhdGUgPSB0ZW1wU3RhdGVUYWJsZS5zaXplKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobG9vcGluZ1N0YXRlcy5zaXplKCkgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlc1RvQmFja2ZpbGwuYWRkRWxlbWVudChuZXcgSW50ZWdlcihuZXdTdGF0ZSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBuZXcgc2hvcnRbbnVtQ2F0ZWdvcmllcyArIDFdOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNhd0Vhcmx5QnJlYWspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZVtudW1DYXRlZ29yaWVzXSA9IERPTlRfTE9PUF9GTEFHOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgdGVtcFN0YXRlVGFibGUuYWRkRWxlbWVudChzdGF0ZSk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVwZGF0ZSBldmVyeWJvZHkgaW4gdGhlIGRlY2lzaW9uIHBvaW50IGxpc3QgdG8gcG9pbnQgdG8KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBuZXcgc3RhdGUgKHRoaXMgYWxzbyBwZXJmb3JtcyBhbGwgdGhlIHJlY29uY2lsaWF0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBuZWVkZWQgdG8gbWFrZSB0aGUgdGFibGUgZGV0ZXJtaW5pc3RpYyksIHRoZW4gY2xlYXIgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBkZWNpc2lvbiBwb2ludCBsaXN0CisgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVTdGF0ZVRhYmxlKGRlY2lzaW9uUG9pbnRMaXN0LCBwZW5kaW5nQ2hhcnMsIChzaG9ydCluZXdTdGF0ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBkZWNpc2lvblBvaW50TGlzdC5yZW1vdmVBbGxFbGVtZW50cygpOworCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBhZGQgYWxsIHN0YXRlcyBjcmVhdGVkIHNpbmNlIHRoZSBsYXN0IGxpdGVyYWwgY2hhcmFjdGVyIHdlJ3ZlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBzZWVuIHRvIHRoZSBkZWNpc2lvbiBwb2ludCBsaXN0CisgICAgICAgICAgICAgICAgICAgICAgICBsYXN0U3RhdGUgPSBjdXJyZW50U3RhdGU7CisgICAgICAgICAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytjdXJyZW50U3RhdGU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaXNpb25Qb2ludExpc3QuYWRkRWxlbWVudChuZXcgSW50ZWdlcihjdXJyZW50U3RhdGUpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gd2hpbGUgKGN1cnJlbnRTdGF0ZSArIDEgPCB0ZW1wU3RhdGVUYWJsZS5zaXplKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gYSAqIG9yIGEgKyBkZW5vdGVzIGEgcmVwZWF0aW5nIGNoYXJhY3RlciBvciBncm91cCwgYW5kIGEgPyBkZW5vdGVzIGFuCisgICAgICAgICAgICAgICAgLy8gb3B0aW9uYWwgY2hhcmFjdGVyIGdyb3VwLiAoKiwgKyBhbmQgPyBhZnRlciAoKSBhcmUgaGFuZGxlZCBzZXBhcmF0ZWx5IGJlbG93LikKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnKycgfHwgYyA9PSAnKicgfHwgYyA9PSAnPycpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiB0aGVyZSdzIGEgKiBvciBhICssIHVwZGF0ZSB0aGUgY3VycmVudCBzdGF0ZSB0byBsb29wIGJhY2sgb24gaXRzZWxmCisgICAgICAgICAgICAgICAgICAgIC8vIG9uIHRoZSBjaGFyYWN0ZXIgY2F0ZWdvcmllcyB0aGF0IGNhdXNlZCB1cyB0byBlbnRlciB0aGlzIHN0YXRlCisgICAgICAgICAgICAgICAgICAgIGlmIChjID09ICcqJyB8fCBjID09ICcrJykgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm90ZTogd2UgcHJvY2VzcyBvbmUgc3RhdGUgYXQgYSB0aW1lIGJlY2F1c2UgdXBkYXRlU3RhdGVUYWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWF5IGFkZCBuZXcgc3RhdGVzLCBhbmQgd2Ugd2FudCB0byBwcm9jZXNzIHRoZW0gYXMgd2VsbC4KKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSBsYXN0U3RhdGUgKyAxOyBpIDwgdGVtcFN0YXRlVGFibGUuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZWN0b3IgdGVtcCA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wLmFkZEVsZW1lbnQobmV3IEludGVnZXIoaSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0YXRlVGFibGUodGVtcCwgcGVuZGluZ0NoYXJzLCAoc2hvcnQpKGxhc3RTdGF0ZSArIDEpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgd2UganVzdCBhZGRlZCBhbnkgbmV3IHN0YXRlcywgYWRkIHRoZW0gdG8gdGhlIGRlY2lzb24gcG9pbnQgbGlzdAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm90ZTogaXQgbWlnaHQgYmUgYSBnb29kIGlkZWEgdG8gYXZvaWQgYWRkaW5nIG5ldyBzdGF0ZXMgdG8gdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBkZWNpc2lvbiBwb2ludCBsaXN0IGluIG1vcmUgdGhhbiBvbmUgcGxhY2UuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChjdXJyZW50U3RhdGUgKyAxIDwgdGVtcFN0YXRlVGFibGUuc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaXNpb25Qb2ludExpc3QuYWRkRWxlbWVudChuZXcgSW50ZWdlcigrK2N1cnJlbnRTdGF0ZSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy8gZm9yICogYW5kID8gcG9wIHRoZSB0b3AgZWxlbWVudCBvZmYgdGhlIGRlY2lzaW9uIHBvaW50IHN0YWNrIGFuZCBtZXJnZQorICAgICAgICAgICAgICAgICAgICAvLyBpdCB3aXRoIHRoZSBjdXJyZW50IGRlY2lzaW9uIHBvaW50IGxpc3QgKHRoaXMgY2F1c2VzIHRoZSBkaXZlcmdlbnQKKyAgICAgICAgICAgICAgICAgICAgLy8gcGF0aHMgdGhyb3VnaCB0aGUgc3RhdGUgdGFibGUgdG8gY29tZSB0b2dldGhlciBhZ2FpbiBvbiB0aGUgbmV4dAorICAgICAgICAgICAgICAgICAgICAvLyBuZXcgc3RhdGUpCisgICAgICAgICAgICAgICAgICAgIGlmIChjID09ICcqJyB8fCBjID09ICc/JykgeworICAgICAgICAgICAgICAgICAgICAgICAgVmVjdG9yIHRlbXAgPSAoVmVjdG9yKWRlY2lzaW9uUG9pbnRTdGFjay5wb3AoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGVjaXNpb25Qb2ludExpc3Quc2l6ZSgpOyBpKyspCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcC5hZGRFbGVtZW50KGRlY2lzaW9uUG9pbnRMaXN0LmVsZW1lbnRBdChpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBkZWNpc2lvblBvaW50TGlzdCA9IHRlbXA7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGEgPyBhZnRlciBhICogbW9kaWZpZXMgdGhlIGJlaGF2aW9yIG9mICogaW4gY2FzZXMgd2hlcmUgdGhlcmUgaXMgb3ZlcmxhcAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmV0d2VlbiB0aGUgc2V0IG9mIGNoYXJhY3RlcnMgdGhhdCByZXBlYXQgYW5kIHRoZSBjaGFyYWN0ZXJzIHdoaWNoIGZvbGxvdy4KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdpdGhvdXQgdGhlID8sIGFsbCBzdGF0ZXMgZm9sbG93aW5nIHRoZSByZXBlYXRpbmcgc3RhdGUsIHVwIHRvIGEgc3RhdGUgd2hpY2gKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlzIHJlYWNoZWQgYnkgYSBjaGFyYWN0ZXIgdGhhdCBkb2Vzbid0IG92ZXJsYXAsIHdpbGwgbG9vcCBiYWNrIGludG8gdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXBlYXRpbmcgc3RhdGUuICBXaXRoIHRoZSA/LCB0aGUgbWFyayBzdGF0ZXMgZm9sbG93aW5nIHRoZSAqPyBET04nVCBsb29wCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBiYWNrIGludG8gdGhlIHJlcGVhdGluZyBzdGF0ZS4gIFRodXMsICJbYS16XSp4eXoiIHdpbGwgbWF0Y2ggdGhlIGxvbmdlc3QKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNlcXVlbmNlIG9mIGxldHRlcnMgdGhhdCBlbmRzIGluICJ4eXosIiB3aGlsZSAiW2Etel0qPyB3aWxsIG1hdGNoIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gX3Nob3J0ZXN0XyBzZXF1ZW5jZSBvZiBsZXR0ZXJzIHRoYXQgZW5kcyBpbiAieHl6Ii4KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIHVzZSBleHRyYSBib29ra2VlcGluZyB0byBhY2hpZXZlIHRoaXMgZWZmZWN0LCBzaW5jZSBldmVyeXRoaW5nIGVsc2Ugd29ya3MKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFjY29yZGluZyB0byB0aGUgImxvbmdlc3QgcG9zc2libGUgbWF0Y2giIHByaW5jaXBsZS4gIFRoZSBiYXNpYyBwcmluY2lwbGUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlzIHRoYXQgdHJhbnNpdGlvbnMgb3V0IG9mIGEgbG9vcGluZyBzdGF0ZSBhcmUgd3JpdHRlbiBpbiBvdmVyIHRoZSBsb29waW5nCisgICAgICAgICAgICAgICAgICAgICAgICAvLyB2YWx1ZSBpbnN0ZWFkIG9mIGJlaW5nIHJlY29uY2lsZWQsIGFuZCB0aGF0IHdlIGNvcHkgdGhlIGNvbnRlbnRzIG9mIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gbG9vcGluZyBzdGF0ZSBpbnRvIGVtcHR5IGNlbGxzIG9mIGFsbCBub24tdGVybWluYWwgc3RhdGVzIHRoYXQgZm9sbG93IHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gbG9vcGluZyBzdGF0ZS4KKy8vU3lzdGVtLm91dC5wcmludGxuKCJjID0gIiArIGMgKyAiLCBwID0gIiArIHAgKyAiLCBydWxlLmxlbmd0aCgpID0gIiArIHJ1bGUubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMgPT0gJyonICYmIHAgKyAxIDwgcnVsZS5sZW5ndGgoKSAmJiBydWxlLmNoYXJBdChwICsgMSkgPT0gJz8nKSB7CisvL1N5c3RlbS5vdXQucHJpbnRsbigiU2F3ICo/Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0TG9vcGluZ1N0YXRlcyhkZWNpc2lvblBvaW50TGlzdCwgZGVjaXNpb25Qb2ludExpc3QpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrcDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGEgKCBtYXJrcyB0aGUgYmVnaW5uaW5nIG9mIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycy4gIFBhcmVudGhlc2VzIGNhbiBlaXRoZXIKKyAgICAgICAgICAgICAgICAvLyBjb250YWluIHNldmVyYWwgYWx0ZXJuYXRpdmUgY2hhcmFjdGVyIHNlcXVlbmNlcyAoaS5lLiwgIihhYnxjZHxlZikiKSwgb3IKKyAgICAgICAgICAgICAgICAvLyB0aGV5IGNhbiBjb250YWluIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyB0aGF0IGNhbiByZXBlYXQgKGkuZS4sICIoYWJjKSoiKS4gIFRodXMsCisgICAgICAgICAgICAgICAgLy8gQSAoKSBncm91cCBjYW4gaGF2ZSBtdWx0aXBsZSBlbnRyeSBhbmQgZXhpdCBwb2ludHMuICBUbyBrZWVwIHRyYWNrIG9mIHRoaXMsCisgICAgICAgICAgICAgICAgLy8gd2UgcmVzZXJ2ZSBUV08gc3BvdHMgb24gdGhlIGRlY2lzaW9uLXBvaW50IHN0YWNrLiAgVGhlIHRvcCBvZiB0aGUgc3RhY2sgaXMKKyAgICAgICAgICAgICAgICAvLyB0aGUgbGlzdCBvZiBleGl0IHBvaW50cywgd2hpY2ggYmVjb21lcyB0aGUgY3VycmVudCBkZWNpc2lvbiBwb2ludCBsaXN0IHdoZW4KKyAgICAgICAgICAgICAgICAvLyB0aGUgKSBpcyByZWFjaGVkLiAgVGhlIG5leHQgZW50cnkgZG93biBpcyB0aGUgZGVjaXNpb24gcG9pbnQgbGlzdCBhdCB0aGUKKyAgICAgICAgICAgICAgICAvLyBiZWdpbm5pbmcgb2YgdGhlICgpLCB3aGljaCBiZWNvbWVzIHRoZSBjdXJyZW50IGRlY2lzaW9uIHBvaW50IGxpc3QgYXQgZXZlcnkKKyAgICAgICAgICAgICAgICAvLyBlbnRyeSBwb2ludC4KKyAgICAgICAgICAgICAgICAvLyBJbiBhZGRpdGlvbiB0byBrZWVwaW5nIHRyYWNrIG9mIHRoZSBleGl0IHBvaW50cyBhbmQgdGhlIGFjdGl2ZSBkZWNpc2lvbgorICAgICAgICAgICAgICAgIC8vIHBvaW50cyBiZWZvcmUgdGhlICggKGkuZS4sIHRoZSBwbGFjZXMgZnJvbSB3aGljaCB0aGUgKCkgY2FuIGJlIGVudGVyZWQpLAorICAgICAgICAgICAgICAgIC8vIHdlIG5lZWQgdG8ga2VlcCB0cmFjayBvZiB0aGUgZW50cnkgcG9pbnRzIGluIGNhc2UgdGhlIGV4cHJlc3Npb24gbG9vcHMKKyAgICAgICAgICAgICAgICAvLyAoaS5lLiwgaXMgZm9sbG93ZWQgYnkgKikuICBXZSBkbyB0aGF0IGJ5IGNyZWF0aW5nIGEgZHVtbXkgc3RhdGUgaW4gdGhlCisgICAgICAgICAgICAgICAgLy8gc3RhdGUgdGFibGUgYW5kIGFkZGluZyBpdCB0byB0aGUgZGVjaXNpb24gcG9pbnQgbGlzdCAoQkVGT1JFIGl0J3MgZHVwbGljYXRlZAorICAgICAgICAgICAgICAgIC8vIG9uIHRoZSBzdGFjaykuICBOb2JvZHkgcG9pbnRzIHRvIHRoaXMgc3RhdGUsIHNvIGl0J2xsIGdldCBvcHRpbWl6ZWQgb3V0CisgICAgICAgICAgICAgICAgLy8gYXQgdGhlIGVuZC4gIEl0IGV4aXN0cyBvbmx5IHRvIGhvbGQgdGhlIGVudHJ5IHBvaW50cyBpbiBjYXNlIHRoZSAoKQorICAgICAgICAgICAgICAgIC8vIGV4cHJlc3Npb24gbG9vcHMuCisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJygnKSB7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gYWRkIGEgbmV3IHN0YXRlIHRvIHRoZSBzdGF0ZSB0YWJsZSB0byBob2xkIHRoZSBlbnRyeSBwb2ludHMgaW50bworICAgICAgICAgICAgICAgICAgICAvLyB0aGUgKCkgZXhwcmVzc2lvbgorICAgICAgICAgICAgICAgICAgICB0ZW1wU3RhdGVUYWJsZS5hZGRFbGVtZW50KG5ldyBzaG9ydFtudW1DYXRlZ29yaWVzICsgMV0pOworCisgICAgICAgICAgICAgICAgICAgIC8vIHdlIGhhdmUgdG8gYWRqdXN0IGxhc3RTdGF0ZSBhbmQgY3VycmVudFN0YXRlIHRvIGFjY291bnQgZm9yIHRoZQorICAgICAgICAgICAgICAgICAgICAvLyBuZXcgZHVtbXkgc3RhdGUKKyAgICAgICAgICAgICAgICAgICAgbGFzdFN0YXRlID0gY3VycmVudFN0YXRlOworICAgICAgICAgICAgICAgICAgICArK2N1cnJlbnRTdGF0ZTsKKworICAgICAgICAgICAgICAgICAgICAvLyBhZGQgdGhlIGN1cnJlbnQgc3RhdGUgdG8gdGhlIGRlY2lzaW9uIHBvaW50IGxpc3QgKGFkZCBpdCBhdCB0aGUKKyAgICAgICAgICAgICAgICAgICAgLy8gQkVHSU5OSU5HIHNvIHdlIGNhbiBmaW5kIGl0IGxhdGVyKQorICAgICAgICAgICAgICAgICAgICBkZWNpc2lvblBvaW50TGlzdC5pbnNlcnRFbGVtZW50QXQobmV3IEludGVnZXIoY3VycmVudFN0YXRlKSwgMCk7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gZmluYWxseSwgcHVzaCBhIGNvcHkgb2YgdGhlIGN1cnJlbnQgZGVjaXNpb24gcG9pbnQgbGlzdCBvbnRvIHRoZQorICAgICAgICAgICAgICAgICAgICAvLyBzdGFjayAodGhpcyBrZWVwcyB0cmFjayBvZiB0aGUgYWN0aXZlIGRlY2lzaW9uIHBvaW50IGxpc3QgYmVmb3JlCisgICAgICAgICAgICAgICAgICAgIC8vIHRoZSAoKSBleHByZXNzaW9uKSwgZm9sbG93ZWQgYnkgYW4gZW1wdHkgZGVjaXNpb24gcG9pbnQgbGlzdAorICAgICAgICAgICAgICAgICAgICAvLyAodGhpcyB3aWxsIGhvbGQgdGhlIGV4aXQgcG9pbnRzKQorICAgICAgICAgICAgICAgICAgICBkZWNpc2lvblBvaW50U3RhY2sucHVzaChkZWNpc2lvblBvaW50TGlzdC5jbG9uZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgZGVjaXNpb25Qb2ludFN0YWNrLnB1c2gobmV3IFZlY3RvcigpKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBhIHwgc2VwYXJhdGVzIGFsdGVybmF0aXZlIGNoYXJhY3RlciBzZXF1ZW5jZXMgaW4gYSAoKSBleHByZXNzaW9uLiAgV2hlbgorICAgICAgICAgICAgICAgIC8vIGEgfCBpcyBlbmNvdW50ZXJlZCwgd2UgYWRkIHRoZSBjdXJyZW50IGRlY2lzaW9uIHBvaW50IGxpc3QgdG8gdGhlIGV4aXQtcG9pbnQKKyAgICAgICAgICAgICAgICAvLyBsaXN0LCBhbmQgcmVzdG9yZSB0aGUgZGVjaXNpb24gcG9pbnQgbGlzdCB0byBpdHMgc3RhdGUgcHJpb3IgdG8gdGhlICguCisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJ3wnKSB7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gcGljayBvdXQgdGhlIHRvcCB0d28gZGVjaXNpb24gcG9pbnQgbGlzdHMgb24gdGhlIHN0YWNrCisgICAgICAgICAgICAgICAgICAgIFZlY3RvciBvbmVEb3duID0gKFZlY3RvcilkZWNpc2lvblBvaW50U3RhY2sucG9wKCk7CisgICAgICAgICAgICAgICAgICAgIFZlY3RvciB0d29Eb3duID0gKFZlY3RvcilkZWNpc2lvblBvaW50U3RhY2sucGVlaygpOworICAgICAgICAgICAgICAgICAgICBkZWNpc2lvblBvaW50U3RhY2sucHVzaChvbmVEb3duKTsKKworICAgICAgICAgICAgICAgICAgICAvLyBhcHBlbmQgdGhlIGN1cnJlbnQgZGVjaXNpb24gcG9pbnQgbGlzdCB0byB0aGUgbGlzdCBiZWxvdyBpdAorICAgICAgICAgICAgICAgICAgICAvLyBvbiB0aGUgc3RhY2sgKHRoZSBsaXN0IG9mIGV4aXQgcG9pbnRzKSwgYW5kIHJlc3RvcmUgdGhlCisgICAgICAgICAgICAgICAgICAgIC8vIGN1cnJlbnQgZGVjaXNpb24gcG9pbnQgbGlzdCB0byBpdHMgc3RhdGUgYmVmb3JlIHRoZSAoKSBleHByZXNzaW9uCisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGVjaXNpb25Qb2ludExpc3Quc2l6ZSgpOyBpKyspCisgICAgICAgICAgICAgICAgICAgICAgICBvbmVEb3duLmFkZEVsZW1lbnQoZGVjaXNpb25Qb2ludExpc3QuZWxlbWVudEF0KGkpKTsKKyAgICAgICAgICAgICAgICAgICAgZGVjaXNpb25Qb2ludExpc3QgPSAoVmVjdG9yKXR3b0Rvd24uY2xvbmUoKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBhICkgbWFya3MgdGhlIGVuZCBvZiBhIHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMuICBXZSBkbyBvbmUgb2YgdHdvIHRoaW5ncworICAgICAgICAgICAgICAgIC8vIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBzZXF1ZW5jZSByZXBlYXRzIChpLmUuLCB3aGV0aGVyIHRoZSApIGlzIGZvbGxvd2VkCisgICAgICAgICAgICAgICAgLy8gYnkgKik6ICBJZiB0aGUgc2VxdWVuY2UgZG9lc24ndCByZXBlYXQsIHRoZW4gdGhlIGV4aXQtcG9pbnQgbGlzdCBpcyBtZXJnZWQKKyAgICAgICAgICAgICAgICAvLyB3aXRoIHRoZSBjdXJyZW50IGRlY2lzaW9uIHBvaW50IGxpc3QgYW5kIHRoZSBkZWNpc2lvbiBwb2ludCBsaXN0IGZyb20gYmVmb3JlCisgICAgICAgICAgICAgICAgLy8gdGhlICgpIGlzIHRocm93biBhd2F5LiAgSWYgdGhlIHNlcXVlbmNlIGRvZXMgcmVwZWF0LCB0aGVuIHdlIGZpc2ggb3V0IHRoZQorICAgICAgICAgICAgICAgIC8vIHN0YXRlIHdlIHdlcmUgaW4gYmVmb3JlIHRoZSAoIGFuZCBjb3B5IGFsbCBvZiBpdHMgZm9yd2FyZCB0cmFuc2l0aW9ucworICAgICAgICAgICAgICAgIC8vIChpLmUuLCBldmVyeSB0cmFuc2l0aW9uIGFkZGVkIGJ5IHRoZSAoKSBleHByZXNzaW9uKSBpbnRvIGV2ZXJ5IHN0YXRlIGluIHRoZQorICAgICAgICAgICAgICAgIC8vIGV4aXQtcG9pbnQgbGlzdCBhbmQgdGhlIGN1cnJlbnQgZGVjaXNpb24gcG9pbnQgbGlzdC4gIFRoZSBjdXJyZW50IGRlY2lzaW9uCisgICAgICAgICAgICAgICAgLy8gcG9pbnQgbGlzdCBpcyB0aGVuIG1lcmdlZCB3aXRoIGJvdGggdGhlIGV4aXQtcG9pbnQgbGlzdCBBTkQgdGhlIHNhdmVkIHZlcnNpb24KKyAgICAgICAgICAgICAgICAvLyBvZiB0aGUgZGVjaXNpb24gcG9pbnQgbGlzdCBmcm9tIGJlZm9yZSB0aGUgKCkuICBUaGVuIHdlIHRocm93IG91dCB0aGUgKi4KKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnKScpIHsKKworICAgICAgICAgICAgICAgICAgICAvLyBwdWxsIHRoZSBleGl0IHBvaW50IGxpc3Qgb2ZmIHRoZSBzdGFjaywgbWVyZ2UgaXQgd2l0aCB0aGUgY3VycmVudAorICAgICAgICAgICAgICAgICAgICAvLyBkZWNpc2lvbiBwb2ludCBsaXN0LCBhbmQgbWFrZSB0aGUgbWVyZ2VkIHZlcnNpb24gdGhlIGN1cnJlbnQKKyAgICAgICAgICAgICAgICAgICAgLy8gZGVjaXNpb24gcG9pbnQgbGlzdAorICAgICAgICAgICAgICAgICAgICBWZWN0b3IgZXhpdFBvaW50cyA9IChWZWN0b3IpZGVjaXNpb25Qb2ludFN0YWNrLnBvcCgpOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRlY2lzaW9uUG9pbnRMaXN0LnNpemUoKTsgaSsrKQorICAgICAgICAgICAgICAgICAgICAgICAgZXhpdFBvaW50cy5hZGRFbGVtZW50KGRlY2lzaW9uUG9pbnRMaXN0LmVsZW1lbnRBdChpKSk7CisgICAgICAgICAgICAgICAgICAgIGRlY2lzaW9uUG9pbnRMaXN0ID0gZXhpdFBvaW50czsKKworICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGUgKSBpc24ndCBmb2xsb3dlZCBieSBhICosICsgb3IgPywgdGhlbiBhbGwgd2UgaGF2ZSB0byBkbyBpcyB0aHJvdworICAgICAgICAgICAgICAgICAgICAvLyBhd2F5IHRoZSBvdGhlciBsaXN0IG9uIHRoZSBkZWNpc2lvbiBwb2ludCBzdGFjaywgYW5kIHdlJ3JlIGRvbmUKKyAgICAgICAgICAgICAgICAgICAgaWYgKHAgKyAxID49IHJ1bGUubGVuZ3RoKCkgfHwgKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGUuY2hhckF0KHAgKyAxKSAhPSAnKicgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlLmNoYXJBdChwICsgMSkgIT0gJysnICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZS5jaGFyQXQocCArIDEpICE9ICc/JykKKyAgICAgICAgICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkZWNpc2lvblBvaW50U3RhY2sucG9wKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAvLyBidXQgaWYgdGhlIHNlcXVlbmNlIGlzIGNvbmRpdGlvbmFsIG9yIGl0IHJlcGVhdHMsCisgICAgICAgICAgICAgICAgICAgIC8vIHdlIGhhdmUgYSBsb3QgbW9yZSB3b3JrIHRvIGRvLi4uCisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBub3cgZXhpdFBvaW50cyBhbmQgZGVjaXNpb25Qb2ludExpc3QgaGF2ZSB0byBwb2ludCB0byBlcXVpdmFsZW50CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB2ZWN0b3JzLCBidXQgbm90IHRoZSBTQU1FIHZlY3RvcgorICAgICAgICAgICAgICAgICAgICAgICAgZXhpdFBvaW50cyA9IChWZWN0b3IpZGVjaXNpb25Qb2ludExpc3QuY2xvbmUoKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gcG9wIHRoZSBvcmlnaW5hbCBkZWNpc2lvbiBwb2ludCBsaXN0IG9mZiB0aGUgc3RhY2sKKyAgICAgICAgICAgICAgICAgICAgICAgIFZlY3RvciB0ZW1wID0gKFZlY3RvcilkZWNpc2lvblBvaW50U3RhY2sucG9wKCk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIHNxdWlycmVsZWQgYXdheSB0aGUgcm93IG51bWJlciBvZiBvdXIgZW50cnkgcG9pbnQgbGlzdAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgb3JpZ2luYWwgZGVjaXNpb24gcG9pbnQgbGlzdC4gIEZpc2gKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQgc3RhdGUgbnVtYmVyIG91dCBhbmQgcmV0cmlldmUgdGhlIGVudHJ5IHBvaW50IGxpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCB0ZW1wU3RhdGVOdW0gPSAoKEludGVnZXIpdGVtcC5maXJzdEVsZW1lbnQoKSkuaW50VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0W10gdGVtcFN0YXRlID0gKHNob3J0W10pdGVtcFN0YXRlVGFibGUuZWxlbWVudEF0KHRlbXBTdGF0ZU51bSk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1lcmdlIHRoZSBvcmlnaW5hbCBkZWNpc2lvbiBwb2ludCBsaXN0IHdpdGggdGhlIGN1cnJlbnQKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRlY2lzaW9uIHBvaW50IGxpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChydWxlLmNoYXJBdChwICsgMSkgPT0gJz8nIHx8IHJ1bGUuY2hhckF0KHAgKyAxKSA9PSAnKicpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRlY2lzaW9uUG9pbnRMaXN0LnNpemUoKTsgaSsrKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wLmFkZEVsZW1lbnQoZGVjaXNpb25Qb2ludExpc3QuZWxlbWVudEF0KGkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNpc2lvblBvaW50TGlzdCA9IHRlbXA7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZpbmFsbHksIGZvciAqIGFuZCArIGNvcHkgZXZlcnkgZm9yd2FyZCByZWZlcmVuY2UgZnJvbSB0aGUgZW50cnkgcG9pbnQKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxpc3QgaW50byBldmVyeSBzdGF0ZSBpbiB0aGUgbmV3IGRlY2lzaW9uIHBvaW50IGxpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChydWxlLmNoYXJBdChwICsgMSkgPT0gJysnIHx8IHJ1bGUuY2hhckF0KHAgKyAxKSA9PSAnKicpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlbXBTdGF0ZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGVtcFN0YXRlW2ldID4gdGVtcFN0YXRlTnVtKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVTdGF0ZVRhYmxlKGV4aXRQb2ludHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBDaGFyYWN0ZXIoKGNoYXIpKGkgKyAweDEwMCkpLnRvU3RyaW5nKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBTdGF0ZVtpXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVwZGF0ZSBsYXN0U3RhdGUgYW5kIGN1cnJlbnRTdGF0ZSwgYW5kIHRocm93IGF3YXkgdGhlICosICssIG9yID8KKyAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RTdGF0ZSA9IGN1cnJlbnRTdGF0ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTdGF0ZSA9IHRlbXBTdGF0ZVRhYmxlLnNpemUoKSAtIDE7CisgICAgICAgICAgICAgICAgICAgICAgICArK3A7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBhIC8gbWFya3MgdGhlIHBvc2l0aW9uIHdoZXJlIHRoZSBicmVhayBpcyB0byBnbyBpZiB0aGUgY2hhcmFjdGVyIHNlcXVlbmNlCisgICAgICAgICAgICAgICAgLy8gbWF0Y2hlcyB0aGlzIHJ1bGUuICBXZSB1cGRhdGUgdGhlIGZsYWcgd29yZCBvZiBldmVyeSBzdGF0ZSBvbiB0aGUgZGVjaXNpb24KKyAgICAgICAgICAgICAgICAvLyBwb2ludCBsaXN0IHRvIG1hcmsgdGhlbSBhcyBlbmRpbmcgc3RhdGVzLCBhbmQgdGFrZSBub3RlIG9mIHRoZSBmYWN0IHRoYXQKKyAgICAgICAgICAgICAgICAvLyB3ZSd2ZSBzZWVuIHRoZSBzbGFzaAorICAgICAgICAgICAgICAgIGlmIChjID09ICcvJykgeworICAgICAgICAgICAgICAgICAgICBzYXdFYXJseUJyZWFrID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkZWNpc2lvblBvaW50TGlzdC5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSAoc2hvcnRbXSl0ZW1wU3RhdGVUYWJsZS5lbGVtZW50QXQoKChJbnRlZ2VyKWRlY2lzaW9uUG9pbnRMaXN0LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRBdChpKSkuaW50VmFsdWUoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZVtudW1DYXRlZ29yaWVzXSB8PSBMT09LQUhFQURfU1RBVEVfRkxBRzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGlmIHdlIGdldCBoZXJlIHdpdGhvdXQgZXhlY3V0aW5nIGFueSBvZiB0aGUgYWJvdmUgY2xhdXNlcywgd2UgaGF2ZSBhCisgICAgICAgICAgICAgICAgLy8gc3ludGF4IGVycm9yLiAgSG93ZXZlciwgZm9yIG5vdyB3ZSBqdXN0IGlnbm9yZSB0aGUgb2ZmZW5kaW5nIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgIC8vIGFuZCBtb3ZlIG9uCisvKgorZGVidWdQcmludGxuKCI9PT09UGFyc2VkIFwiIiArIHJ1bGUuc3Vic3RyaW5nKDAsIHAgKyAxKSArICJcIi4uLiIpOworU3lzdGVtLm91dC5wcmludGxuKCIgICAgICBjdXJyZW50U3RhdGUgPSAiICsgY3VycmVudFN0YXRlKTsKK2RlYnVnUHJpbnRWZWN0b3JPZlZlY3RvcnMoIiAgICAgIGRlY2lzaW9uUG9pbnRTdGFjazoiLCAiICAgICAgICAiLCBkZWNpc2lvblBvaW50U3RhY2spOworZGVidWdQcmludFZlY3RvcigiICAgICAgICAiLCBkZWNpc2lvblBvaW50TGlzdCk7CitkZWJ1Z1ByaW50VmVjdG9yKCIgICAgICBsb29waW5nU3RhdGVzID0gIiwgbG9vcGluZ1N0YXRlcyk7CitkZWJ1Z1ByaW50VmVjdG9yKCIgICAgICBzdGF0ZXNUb0JhY2tmaWxsID0gIiwgc3RhdGVzVG9CYWNrZmlsbCk7CitTeXN0ZW0ub3V0LnByaW50bG4oIiAgICAgIHNhd0Vhcmx5QnJlYWsgPSAiICsgc2F3RWFybHlCcmVhayk7CitkZWJ1Z1ByaW50VGVtcFN0YXRlVGFibGUoKTsKKyovCisKKyAgICAgICAgICAgICAgICAvLyBjbGVhckxvb3BpbmdTdGF0ZXMgaXMgYSBzaWduYWwgYmFjayBmcm9tIHVwZGF0ZVN0YXRlVGFibGUoKSB0aGF0IHdlJ3ZlCisgICAgICAgICAgICAgICAgLy8gdHJhbnNpdGlvbmVkIHRvIGEgc3RhdGUgdGhhdCB3b24ndCBsb29wIGJhY2sgdG8gdGhlIGN1cnJlbnQgbG9vcGluZworICAgICAgICAgICAgICAgIC8vIHN0YXRlLiAgKEluIG90aGVyIHdvcmRzLCB3ZSd2ZSBnb3R0ZW4gdG8gYSBwb2ludCB3aGVyZSB3ZSBjYW4gbm8gbG9uZ2VyCisgICAgICAgICAgICAgICAgLy8gZ28gYmFjayBpbnRvIGEgKj8gd2Ugc2F3IGVhcmxpZXIuKSAgQ2xlYXIgb3V0IHRoZSBsaXN0IG9mIGxvb3Bpbmcgc3RhdGVzCisgICAgICAgICAgICAgICAgLy8gYW5kIGJhY2tmaWxsIGFueSBzdGF0ZXMgdGhhdCBuZWVkIHRvIGJlIGJhY2tmaWxsZWQuCisgICAgICAgICAgICAgICAgaWYgKGNsZWFyTG9vcGluZ1N0YXRlcykgeworICAgICAgICAgICAgICAgICAgICBzZXRMb29waW5nU3RhdGVzKG51bGwsIGRlY2lzaW9uUG9pbnRMaXN0KTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBhZHZhbmNlIHRvIHRoZSBuZXh0IGNoYXJhY3Rlciwgbm93IHRoYXQgd2UndmUgcHJvY2Vzc2VkIHRoZSBjdXJyZW50CisgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgKytwOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyB0aGlzIHRha2VzIGNhcmUgb2YgYmFja2ZpbGxpbmcgYW55IHN0YXRlcyB0aGF0IHN0aWxsIG5lZWQgdG8gYmUgYmFja2ZpbGxlZAorICAgICAgICAgICAgc2V0TG9vcGluZ1N0YXRlcyhudWxsLCBkZWNpc2lvblBvaW50TGlzdCk7CisKKyAgICAgICAgICAgIC8vIHdoZW4gd2UgcmVhY2ggdGhlIGVuZCBvZiB0aGUgc3RyaW5nLCB3ZSBkbyBhIHBvc3Rwcm9jZXNzaW5nIHN0ZXAgdG8gbWFyayB0aGUKKyAgICAgICAgICAgIC8vIGVuZCBzdGF0ZXMuICBUaGUgZGVjaXNpb24gcG9pbnQgbGlzdCBjb250YWlucyBldmVyeSBzdGF0ZSB0aGF0IGNhbiB0cmFuc2l0aW9uCisgICAgICAgICAgICAvLyB0byB0aGUgZW5kIHN0YXRlLS0gdGhhdCBpcywgZXZlcnkgc3RhdGUgdGhhdCBpcyB0aGUgbGFzdCBzdGF0ZSBpbiBhIHNlcXVlbmNlCisgICAgICAgICAgICAvLyB0aGF0IG1hdGNoZXMgdGhlIHJ1bGUuICBBbGwgb2YgdGhlc2Ugc3RhdGVzIGFyZSBjb25zaWRlcmVkICJtYXJrIHN0YXRlcyIKKyAgICAgICAgICAgIC8vIG9yICJhY2NlcHRpbmcgc3RhdGVzIi0tIHRoYXQgaXMsIHN0YXRlcyB0aGF0IGNhdXNlIHRoZSBwb3NpdGlvbiByZXR1cm5lZCBmcm9tCisgICAgICAgICAgICAvLyBuZXh0KCkgdG8gYmUgdXBkYXRlZC4gIEEgbWFyayBzdGF0ZSByZXByZXNlbnRzIGEgcG9zc2libGUgYnJlYWsgcG9zaXRpb24uCisgICAgICAgICAgICAvLyBUaGlzIGFsbG93cyB1cyB0byBsb29rIGFoZWFkIGFuZCByZW1lbWJlciBob3cgZmFyIHRoZSBydWxlIG1hdGNoZWQKKyAgICAgICAgICAgIC8vIGJlZm9yZSBmb2xsb3dpbmcgdGhlIG5ldyBicmFuY2ggKHNlZSBuZXh0KCkgZm9yIG1vcmUgaW5mb3JtYXRpb24pLgorICAgICAgICAgICAgLy8gVGhlIHRlbXBvcmFyeSBzdGF0ZSB0YWJsZSBoYXMgYW4gZXh0cmEgImZsYWcgY29sdW1uIiBhdCB0aGUgZW5kIHdoZXJlIHRoaXMKKyAgICAgICAgICAgIC8vIGluZm9ybWF0aW9uIGlzIHN0b3JlZC4gIFdlIG1hcmsgdGhlIGVuZCBzdGF0ZXMgYnkgc2V0dGluZyBhIGZsYWcgaW4gdGhlaXIKKyAgICAgICAgICAgIC8vIGZsYWcgY29sdW1uLgorICAgICAgICAgICAgLy8gTm93IGlmIHdlIHNhdyB0aGUgLyBpbiB0aGUgcnVsZSwgdGhlbiBldmVyeXRoaW5nIGFmdGVyIGl0IGlzIGxvb2thaGVhZAorICAgICAgICAgICAgLy8gbWF0ZXJpYWwgYW5kIHRoZSBicmVhayByZWFsbHkgZ29lcyB3aGVyZSB0aGUgc2xhc2ggaXMuICBJbiB0aGlzIGNhc2UsCisgICAgICAgICAgICAvLyB3ZSBtYXJrIHRoZXNlIHN0YXRlcyBhcyBCT1RIIGFjY2VwdGluZyBzdGF0ZXMgYW5kIGxvb2thaGVhZCBzdGF0ZXMuICBUaGlzCisgICAgICAgICAgICAvLyBzaWduYWxzIHRoYXQgdGhlc2Ugc3RhdGVzIGNhdXNlIHRoZSBicmVhayBwb3NpdGlvbiB0byBiZSB1cGRhdGVkIHRvIHRoZQorICAgICAgICAgICAgLy8gcG9zaXRpb24gb2YgdGhlIHNsYXNoIHJhdGhlciB0aGFuIHRoZSBjdXJyZW50IGJyZWFrIHBvc2l0aW9uLgorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkZWNpc2lvblBvaW50TGlzdC5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgICAgIGludCByb3dOdW0gPSAoKEludGVnZXIpZGVjaXNpb25Qb2ludExpc3QuZWxlbWVudEF0KGkpKS5pbnRWYWx1ZSgpOworICAgICAgICAgICAgICAgIHN0YXRlID0gKHNob3J0W10pdGVtcFN0YXRlVGFibGUuZWxlbWVudEF0KHJvd051bSk7CisgICAgICAgICAgICAgICAgc3RhdGVbbnVtQ2F0ZWdvcmllc10gfD0gRU5EX1NUQVRFX0ZMQUc7CisgICAgICAgICAgICAgICAgaWYgKHNhd0Vhcmx5QnJlYWspIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGVbbnVtQ2F0ZWdvcmllc10gfD0gTE9PS0FIRUFEX1NUQVRFX0ZMQUc7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorLyoKK2RlYnVnUHJpbnRsbigiPT09PVBhcnNlZCBcIiIgKyBydWxlICsgIjsiKTsKK1N5c3RlbS5vdXQucHJpbnRsbigpOworU3lzdGVtLm91dC5wcmludGxuKCIgICAgICBjdXJyZW50U3RhdGUgPSAiICsgY3VycmVudFN0YXRlKTsKK2RlYnVnUHJpbnRWZWN0b3JPZlZlY3RvcnMoIiAgICAgIGRlY2lzaW9uUG9pbnRTdGFjazoiLCAiICAgICAgICAiLCBkZWNpc2lvblBvaW50U3RhY2spOworZGVidWdQcmludFZlY3RvcigiICAgICAgICAiLCBkZWNpc2lvblBvaW50TGlzdCk7CitkZWJ1Z1ByaW50VmVjdG9yKCIgICAgICBsb29waW5nU3RhdGVzID0gIiwgbG9vcGluZ1N0YXRlcyk7CitkZWJ1Z1ByaW50VmVjdG9yKCIgICAgICBzdGF0ZXNUb0JhY2tmaWxsID0gIiwgc3RhdGVzVG9CYWNrZmlsbCk7CitTeXN0ZW0ub3V0LnByaW50bG4oIiAgICAgIHNhd0Vhcmx5QnJlYWsgPSAiICsgc2F3RWFybHlCcmVhayk7CitkZWJ1Z1ByaW50VGVtcFN0YXRlVGFibGUoKTsKKyovCisgICAgICAgIH0KKworCisgICAgICAgIC8qKgorICAgICAgICAgKiBVcGRhdGUgZW50cmllcyBpbiB0aGUgc3RhdGUgdGFibGUsIGFuZCBtZXJnZSBzdGF0ZXMgd2hlbiBuZWNlc3NhcnkgdG8ga2VlcAorICAgICAgICAgKiB0aGUgdGFibGUgZGV0ZXJtaW5pc3RpYy4KKyAgICAgICAgICogQHBhcmFtIHJvd3MgVGhlIGxpc3Qgb2Ygcm93cyB0aGF0IG5lZWQgdXBkYXRpbmcgKHRoZSBkZWNpc2lvbiBwb2ludCBsaXN0KQorICAgICAgICAgKiBAcGFyYW0gcGVuZGluZ0NoYXJzIEEgY2hhcmFjdGVyIGNhdGVnb3J5IGxpc3QsIGVuY29kZWQgaW4gYSBTdHJpbmcuICBUaGlzIGlzIHRoZQorICAgICAgICAgKiBsaXN0IG9mIHRoZSBjb2x1bW5zIHRoYXQgbmVlZCB1cGRhdGluZy4KKyAgICAgICAgICogQHBhcmFtIG5ld1ZhbHVlIFVwZGF0ZSB0aGUgY2VsbHMgc3BlY2ZpZWQgYWJvdmUgdG8gY29udGFpbiB0aGlzIHZhbHVlCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHZvaWQgdXBkYXRlU3RhdGVUYWJsZShWZWN0b3Igcm93cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHBlbmRpbmdDaGFycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnQgbmV3VmFsdWUpIHsKKyAgICAgICAgICAgIC8vIGNyZWF0ZSBhIGR1bW15IHN0YXRlIHRoYXQgaGFzIHRoZSBzcGVjaWZpZWQgcm93IG51bWJlciAobmV3VmFsdWUpIGluCisgICAgICAgICAgICAvLyB0aGUgY2VsbHMgdGhhdCBuZWVkIHRvIGJlIHVwZGF0ZWQgKHRob3NlIHNwZWNpZmllZCBieSBwZW5kaW5nQ2hhcnMpCisgICAgICAgICAgICAvLyBhbmQgMCBpbiB0aGUgb3RoZXIgY2VsbHMKKyAgICAgICAgICAgIHNob3J0W10gbmV3VmFsdWVzID0gbmV3IHNob3J0W251bUNhdGVnb3JpZXMgKyAxXTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcGVuZGluZ0NoYXJzLmxlbmd0aCgpOyBpKyspCisgICAgICAgICAgICAgICAgbmV3VmFsdWVzWyhpbnQpKHBlbmRpbmdDaGFycy5jaGFyQXQoaSkpIC0gMHgxMDBdID0gbmV3VmFsdWU7CisKKyAgICAgICAgICAgIC8vIGdvIHRocm91Z2ggdGhlIGxpc3Qgb2Ygcm93cyB0byB1cGRhdGUsIGFuZCB1cGRhdGUgdGhlbSBieSBjYWxsaW5nCisgICAgICAgICAgICAvLyBtZXJnZVN0YXRlcygpIHRvIG1lcmdlIHRoZW0gdGhlIHRoZSBkdW1teSBzdGF0ZSB3ZSBjcmVhdGVkCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJvd3Muc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICBtZXJnZVN0YXRlcygoKEludGVnZXIpcm93cy5lbGVtZW50QXQoaSkpLmludFZhbHVlKCksIG5ld1ZhbHVlcywgcm93cyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIHJlYWwgd29yayBvZiBtYWtpbmcgdGhlIHN0YXRlIHRhYmxlIGRldGVybWluaXN0aWMgaGFwcGVucyBoZXJlLiAgVGhpcyBmdW5jdGlvbgorICAgICAgICAgKiBtZXJnZXMgYSBzdGF0ZSBpbiB0aGUgc3RhdGUgdGFibGUgKHNwZWNpZmllZCBieSByb3dOdW0pIHdpdGggYSBzdGF0ZSB0aGF0IGlzCisgICAgICAgICAqIHBhc3NlZCBpbiAobmV3VmFsdWVzKS4gIFRoZSBiYXNpYyBwcm9jZXNzIGlzIHRvIGNvcHkgdGhlIG5vbnplcm8gY2VsbHMgaW4gbmV3U3RhdGVzCisgICAgICAgICAqIGludG8gdGhlIHN0YXRlIGluIHRoZSBzdGF0ZSB0YWJsZSAod2UnbGwgY2FsbCB0aGF0IG9sZFZhbHVlcykuICBJZiB0aGVyZSdzIGEKKyAgICAgICAgICogY29sbGlzaW9uIChpLmUuLCBpZiB0aGUgc2FtZSBjZWxsIGhhcyBhIG5vbnplcm8gdmFsdWUgaW4gYm90aCBzdGF0ZXMsIGFuZCBpdCdzCisgICAgICAgICAqIG5vdCB0aGUgU0FNRSB2YWx1ZSksIHRoZW4gd2UgaGF2ZSB0byByZWNvbmNpbGUgdGhlIGNvbGxpc2lvbi4gIFdlIGRvIHRoaXMgYnkKKyAgICAgICAgICogY3JlYXRpbmcgYSBuZXcgc3RhdGUsIGFkZGluZyBpdCB0byB0aGUgZW5kIG9mIHRoZSBzdGF0ZSB0YWJsZSwgYW5kIHVzaW5nIHRoaXMKKyAgICAgICAgICogZnVuY3Rpb24gcmVjdXJzaXZlbHkgdG8gbWVyZ2UgdGhlIG9yaWdpbmFsIHR3byBzdGF0ZXMgaW50byBhIHNpbmdsZSwgY29tYmluZWQKKyAgICAgICAgICogc3RhdGUuICBUaGlzIHByb2Nlc3MgbWF5IGhhcHBlbiByZWN1cnNpdmVseSAoaS5lLiwgZWFjaCBzdWNjZXNzaXZlIGxldmVsIG1heQorICAgICAgICAgKiBpbnZvbHZlIGNvbGxpc2lvbnMpLiAgVG8gcHJldmVudCBpbmZpbml0ZSByZWN1cnNpb24sIHdlIGtlZXAgYSBsb2cgb2YgbWVyZ2UKKyAgICAgICAgICogb3BlcmF0aW9ucy4gIEFueSB0aW1lIHdlJ3JlIG1lcmdpbmcgdHdvIHN0YXRlcyB3ZSd2ZSBtZXJnZWQgYmVmb3JlLCB3ZSBjYW4ganVzdAorICAgICAgICAgKiBzdXBwbHkgdGhlIHJvdyBudW1iZXIgZm9yIHRoZSByZXN1bHQgb2YgdGhhdCBtZXJnZSBvcGVyYXRpb24gcmF0aGVyIHRoYW4gY3JlYXRpbmcKKyAgICAgICAgICogYSBuZXcgc3RhdGUganVzdCBsaWtlIGl0LgorICAgICAgICAgKiBAcGFyYW0gcm93TnVtIFRoZSByb3cgbnVtYmVyIGluIHRoZSBzdGF0ZSB0YWJsZSBvZiB0aGUgc3RhdGUgdG8gYmUgdXBkYXRlZAorICAgICAgICAgKiBAcGFyYW0gbmV3VmFsdWVzIFRoZSBzdGF0ZSB0byBtZXJnZSBpdCB3aXRoLgorICAgICAgICAgKiBAcGFyYW0gcm93c0JlaW5nVXBkYXRlZCBBIGNvcHkgb2YgdGhlIGxpc3Qgb2Ygcm93cyBwYXNzZWQgdG8gdXBkYXRlU3RhdGVUYWJsZSgpCisgICAgICAgICAqIChpdHNlbGYgYSBjb3B5IG9mIHRoZSBkZWNpc2lvbiBwb2ludCBsaXN0IGZyb20gcGFyc2VSdWxlKCkpLiAgTmV3bHktY3JlYXRlZAorICAgICAgICAgKiBzdGF0ZXMgZ2V0IGFkZGVkIHRvIHRoZSBkZWNpc2lvbiBwb2ludCBsaXN0IGlmIHRoZWlyICJwYXJlbnRzIiB3ZXJlIG9uIGl0LgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSB2b2lkIG1lcmdlU3RhdGVzKGludCByb3dOdW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG9ydFtdIG5ld1ZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlY3RvciByb3dzQmVpbmdVcGRhdGVkKSB7CisgICAgICAgICAgICBzaG9ydFtdIG9sZFZhbHVlcyA9IChzaG9ydFtdKSh0ZW1wU3RhdGVUYWJsZS5lbGVtZW50QXQocm93TnVtKSk7CisvKgorU3lzdGVtLm91dC5wcmludCgiKioqTWVyZ2luZyAiICsgcm93TnVtICsgIjoiKTsKK2ZvciAoaW50IGkgPSAwOyBpIDwgb2xkVmFsdWVzLmxlbmd0aDsgaSsrKSBTeXN0ZW0ub3V0LnByaW50KCJcdCIgKyBvbGRWYWx1ZXNbaV0pOworU3lzdGVtLm91dC5wcmludGxuKCk7CitTeXN0ZW0ub3V0LnByaW50KCIgICAgd2l0aCAgIFx0Iik7Citmb3IgKGludCBpID0gMDsgaSA8IG5ld1ZhbHVlcy5sZW5ndGg7IGkrKykgU3lzdGVtLm91dC5wcmludCgiXHQiICsgbmV3VmFsdWVzW2ldKTsKK1N5c3RlbS5vdXQucHJpbnRsbigpOworKi8KKworICAgICAgICAgICAgYm9vbGVhbiBpc0xvb3BpbmdTdGF0ZSA9IGxvb3BpbmdTdGF0ZXMuY29udGFpbnMobmV3IEludGVnZXIocm93TnVtKSk7CisKKyAgICAgICAgICAgIC8vIGZvciBlYWNoIG9mIHRoZSBjZWxscyBpbiB0aGUgcm93cyB3ZSdyZSByZWNvbmNpbGluZywgZG8uLi4KKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgb2xkVmFsdWVzLmxlbmd0aDsgaSsrKSB7CisKKyAgICAgICAgICAgICAgICAvLyBpZiB0aGV5IGNvbnRhaW4gdGhlIHNhbWUgdmFsdWUsIHdlIGRvbid0IGhhdmUgdG8gZG8gYW55dGhpbmcKKyAgICAgICAgICAgICAgICBpZiAob2xkVmFsdWVzW2ldID09IG5ld1ZhbHVlc1tpXSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBpZiBvbGRWYWx1ZXMgaXMgYSBsb29waW5nIHN0YXRlIGFuZCB0aGUgc3RhdGUgdGhlIGN1cnJlbnQgY2VsbCBwb2ludHMgdG8KKyAgICAgICAgICAgICAgICAvLyBpcyB0b28sIHRoZW4gd2UgY2FuIGp1c3Qgc3RvbXAgb3ZlciB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGF0IGNlbGwgKGFuZAorICAgICAgICAgICAgICAgIC8vIHNldCB0aGUgY2xlYXItbG9vcGluZy1zdGF0ZXMgZmxhZyBpZiBuZWNlc3NhcnkpCisgICAgICAgICAgICAgICAgZWxzZSBpZiAoaXNMb29waW5nU3RhdGUgJiYgbG9vcGluZ1N0YXRlcy5jb250YWlucyhuZXcgSW50ZWdlcihvbGRWYWx1ZXNbaV0pKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAobmV3VmFsdWVzW2ldICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvbGRWYWx1ZXNbaV0gPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFyTG9vcGluZ1N0YXRlcyA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBvbGRWYWx1ZXNbaV0gPSBuZXdWYWx1ZXNbaV07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBpZiB0aGUgY3VycmVudCBjZWxsIGluIG9sZFZhbHVlcyBpcyAwLCBjb3B5IGluIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlCisgICAgICAgICAgICAgICAgLy8gZnJvbSBuZXdWYWx1ZXMKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChvbGRWYWx1ZXNbaV0gPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBvbGRWYWx1ZXNbaV0gPSBuZXdWYWx1ZXNbaV07CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gdGhlIGxhc3QgY29sdW1uIG9mIGVhY2ggcm93IGlzIHRoZSBmbGFnIGNvbHVtbi4gIFRha2UgY2FyZSB0byBtZXJnZSB0aGUKKyAgICAgICAgICAgICAgICAvLyBmbGFnIHdvcmRzIGNvcnJlY3RseQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKGkgPT0gbnVtQ2F0ZWdvcmllcykgeworICAgICAgICAgICAgICAgICAgICBvbGRWYWx1ZXNbaV0gPSAoc2hvcnQpKChuZXdWYWx1ZXNbaV0gJiBBTExfRkxBR1MpIHwgb2xkVmFsdWVzW2ldKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBpZiBib3RoIG5ld1ZhbHVlcyBhbmQgb2xkVmFsdWVzIGhhdmUgYSBub256ZXJvIHZhbHVlIGluIHRoZSBjdXJyZW50CisgICAgICAgICAgICAgICAgLy8gY2VsbCwgYW5kIGl0IGlzbid0IHRoZSBzYW1lIHZhbHVlIGJvdGggcGxhY2VzLi4uCisgICAgICAgICAgICAgICAgZWxzZSBpZiAob2xkVmFsdWVzW2ldICE9IDAgJiYgbmV3VmFsdWVzW2ldICE9IDApIHsKKworICAgICAgICAgICAgICAgICAgICAvLyBsb29rIHVwIHRoaXMgcGFpciBvZiBjZWxsIHZhbHVlcyBpbiB0aGUgbWVyZ2UgbGlzdC4gIElmIGl0J3MKKyAgICAgICAgICAgICAgICAgICAgLy8gZm91bmQsIHVwZGF0ZSB0aGUgY2VsbCBpbiBvbGRWYWx1ZXMgdG8gcG9pbnQgdG8gdGhlIG1lcmdlZCBzdGF0ZQorICAgICAgICAgICAgICAgICAgICBpbnQgY29tYmluZWRSb3dOdW0gPSBzZWFyY2hNZXJnZUxpc3Qob2xkVmFsdWVzW2ldLCBuZXdWYWx1ZXNbaV0pOworICAgICAgICAgICAgICAgICAgICBpZiAoY29tYmluZWRSb3dOdW0gIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgb2xkVmFsdWVzW2ldID0gKHNob3J0KWNvbWJpbmVkUm93TnVtOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy8gb3RoZXJ3aXNlLCB3ZSBoYXZlIHRvIHJlY29uY2lsZSB0aGVtLi4uCisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29weSBvdXIgcm93IG51bWJlcnMgaW50byB2YXJpYWJsZXMgdG8gbWFrZSB0aGluZ3MgZWFzaWVyCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2xkUm93TnVtID0gb2xkVmFsdWVzW2ldOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5ld1Jvd051bSA9IG5ld1ZhbHVlc1tpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbWJpbmVkUm93TnVtID0gdGVtcFN0YXRlVGFibGUuc2l6ZSgpOworCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBhZGQgdGhpcyBwYWlyIG9mIHJvdyBudW1iZXJzIHRvIHRoZSBtZXJnZSBsaXN0IChjcmVhdGUgaXQgZmlyc3QKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHdlIGhhdmVuJ3QgY3JlYXRlZCB0aGUgbWVyZ2UgbGlzdCB5ZXQpCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWVyZ2VMaXN0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXJnZUxpc3QgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBtZXJnZUxpc3QuYWRkRWxlbWVudChuZXcgaW50W10geyBvbGRSb3dOdW0sIG5ld1Jvd051bSwgY29tYmluZWRSb3dOdW0gfSk7CisKKy8vU3lzdGVtLm91dC5wcmludGxuKCIqKipBdCAiICsgcm93TnVtICsgIiwgbWVyZ2luZyAiICsgb2xkUm93TnVtICsgIiBhbmQgIiArIG5ld1Jvd051bSArICIgaW50byAiICsgY29tYmluZWRSb3dOdW0pOworCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjcmVhdGUgYSBuZXcgcm93IHRvIHJlcHJlc2VudCB0aGUgbWVyZ2VkIHN0YXRlLCBhbmQgY29weSB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnRlbnRzIG9mIG9sZFJvdyBpbnRvIGl0LCB0aGVuIGFkZCBpdCB0byB0aGUgZW5kIG9mIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3RhdGUgdGFibGUgYW5kIHVwZGF0ZSB0aGUgb3JpZ2luYWwgcm93IChvbGRWYWx1ZXMpIHRvIHBvaW50CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0byB0aGUgbmV3LCBtZXJnZWQsIHN0YXRlCisgICAgICAgICAgICAgICAgICAgICAgICBzaG9ydFtdIG5ld1JvdyA9IG5ldyBzaG9ydFtudW1DYXRlZ29yaWVzICsgMV07CisgICAgICAgICAgICAgICAgICAgICAgICBzaG9ydFtdIG9sZFJvdyA9IChzaG9ydFtdKSh0ZW1wU3RhdGVUYWJsZS5lbGVtZW50QXQob2xkUm93TnVtKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG9sZFJvdywgMCwgbmV3Um93LCAwLCBudW1DYXRlZ29yaWVzICsgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wU3RhdGVUYWJsZS5hZGRFbGVtZW50KG5ld1Jvdyk7CisgICAgICAgICAgICAgICAgICAgICAgICBvbGRWYWx1ZXNbaV0gPSAoc2hvcnQpY29tYmluZWRSb3dOdW07CisKKworLy9TeXN0ZW0ub3V0LnByaW50bG4oImxhc3RPbGRSb3dOdW0gPSAiICsgbGFzdE9sZFJvd051bSk7CisvL1N5c3RlbS5vdXQucHJpbnRsbigibGFzdENvbWJpbmVkUm93TnVtID0gIiArIGxhc3RDb21iaW5lZFJvd051bSk7CisvL1N5c3RlbS5vdXQucHJpbnRsbigiZGVjaXNpb25Qb2ludExpc3QuY29udGFpbnMobGFzdE9sZFJvd051bSkgPSAiICsgZGVjaXNpb25Qb2ludExpc3QuY29udGFpbnMobmV3IEludGVnZXIobGFzdE9sZFJvd051bSkpKTsKKy8vU3lzdGVtLm91dC5wcmludGxuKCJkZWNpc2lvblBvaW50TGlzdC5jb250YWlucyhsYXN0Q29tYmluZWRSb3dOdW0pID0gIiArIGRlY2lzaW9uUG9pbnRMaXN0LmNvbnRhaW5zKG5ldyBJbnRlZ2VyKGxhc3RDb21iaW5lZFJvd051bSkpKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlIGRlY2lzaW9uIHBvaW50IGxpc3QgY29udGFpbnMgZWl0aGVyIG9mIHRoZSBwYXJlbnQgcm93cywKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVwZGF0ZSBpdCB0byBpbmNsdWRlIHRoZSBuZXcgcm93IGFzIHdlbGwKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoZGVjaXNpb25Qb2ludExpc3QuY29udGFpbnMobmV3IEludGVnZXIob2xkUm93TnVtKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgZGVjaXNpb25Qb2ludExpc3QuY29udGFpbnMobmV3IEludGVnZXIobmV3Um93TnVtKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgIWRlY2lzaW9uUG9pbnRMaXN0LmNvbnRhaW5zKG5ldyBJbnRlZ2VyKGNvbWJpbmVkUm93TnVtKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2lzaW9uUG9pbnRMaXN0LmFkZEVsZW1lbnQobmV3IEludGVnZXIoY29tYmluZWRSb3dOdW0pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gZG8gdGhlIHNhbWUgdGhpbmcgd2l0aCB0aGUgbGlzdCBvZiByb3dzIGJlaW5nIHVwZGF0ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgocm93c0JlaW5nVXBkYXRlZC5jb250YWlucyhuZXcgSW50ZWdlcihvbGRSb3dOdW0pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCByb3dzQmVpbmdVcGRhdGVkLmNvbnRhaW5zKG5ldyBJbnRlZ2VyKG5ld1Jvd051bSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmICFyb3dzQmVpbmdVcGRhdGVkLmNvbnRhaW5zKG5ldyBJbnRlZ2VyKGNvbWJpbmVkUm93TnVtKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2lzaW9uUG9pbnRMaXN0LmFkZEVsZW1lbnQobmV3IEludGVnZXIoY29tYmluZWRSb3dOdW0pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vdyAoZ3JvYW4pIGRvIHRoZSBzYW1lIHRoaW5nIGZvciBhbGwgdGhlIGVudHJpZXMgb24gdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBkZWNpc2lvbiBwb2ludCBzdGFjaworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgayA9IDA7IGsgPCBkZWNpc2lvblBvaW50U3RhY2suc2l6ZSgpOyBrKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZWN0b3IgZHBsID0gKFZlY3RvcilkZWNpc2lvblBvaW50U3RhY2suZWxlbWVudEF0KGspOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoZHBsLmNvbnRhaW5zKG5ldyBJbnRlZ2VyKG9sZFJvd051bSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBkcGwuY29udGFpbnMobmV3IEludGVnZXIobmV3Um93TnVtKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmICFkcGwuY29udGFpbnMobmV3IEludGVnZXIoY29tYmluZWRSb3dOdW0pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcGwuYWRkRWxlbWVudChuZXcgSW50ZWdlcihjb21iaW5lZFJvd051bSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklOQUxMWSAocHVmZiBwdWZmIHB1ZmYpLCBjYWxsIG1lcmdlU3RhdGVzKCkgcmVjdXJzaXZlbHkgdG8gY29weQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHJvdyByZWZlcnJlZCB0byBieSBuZXdWYWx1ZXMgaW50byB0aGUgbmV3IHJvdyBhbmQgcmVzb2x2ZSBhbnkKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbmZsaWN0cyB0aGF0IGNvbWUgdXAgYXQgdGhhdCBsZXZlbAorICAgICAgICAgICAgICAgICAgICAgICAgbWVyZ2VTdGF0ZXMoY29tYmluZWRSb3dOdW0sIChzaG9ydFtdKSh0ZW1wU3RhdGVUYWJsZS5lbGVtZW50QXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWVzW2ldKSksIHJvd3NCZWluZ1VwZGF0ZWQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBtZXJnZSBsaXN0IGlzIGEgbGlzdCBvZiBwYWlycyBvZiByb3dzIHRoYXQgaGF2ZSBiZWVuIG1lcmdlZCBzb21ld2hlcmUgaW4KKyAgICAgICAgICogdGhlIHByb2Nlc3Mgb2YgYnVpbGRpbmcgdGhpcyBzdGF0ZSB0YWJsZSwgYWxvbmcgd2l0aCB0aGUgcm93IG51bWJlciBvZiB0aGUKKyAgICAgICAgICogcm93IGNvbnRhaW5pbmcgdGhlIG1lcmdlZCBzdGF0ZS4gIFRoaXMgZnVuY3Rpb24gbG9va3MgdXAgYSBwYWlyIG9mIHJvdyBudW1iZXJzCisgICAgICAgICAqIGFuZCByZXR1cm5zIHRoZSByb3cgbnVtYmVyIG9mIHRoZSByb3cgdGhleSBjb21iaW5lIGludG8uICAoSXQgcmV0dXJucyAwIGlmCisgICAgICAgICAqIHRoaXMgcGFpciBvZiByb3dzIGlzbid0IGluIHRoZSBtZXJnZSBsaXN0LikKKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgaW50IHNlYXJjaE1lcmdlTGlzdChpbnQgYSwgaW50IGIpIHsKKyAgICAgICAgICAgIC8vIGlmIHRoZXJlIGlzIG5vIG1lcmdlIGxpc3QsIHRoZXJlIG9idmlvdXNseSBpc24ndCBhbnl0aGluZyBpbiBpdAorICAgICAgICAgICAgaWYgKG1lcmdlTGlzdCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIG90aGVyd2lzZSwgZm9yIGVhY2ggZWxlbWVudCBpbiB0aGUgbWVyZ2UgbGlzdC4uLgorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaW50W10gZW50cnk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtZXJnZUxpc3Quc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgZW50cnkgPSAoaW50W10pKG1lcmdlTGlzdC5lbGVtZW50QXQoaSkpOworCisgICAgICAgICAgICAgICAgICAgIC8vIHdlIGhhdmUgYSBoaXQgaWYgdGhlIHR3byByb3cgbnVtYmVycyBtYXRjaCB0aGUgdHdvIHJvdyBudW1iZXJzCisgICAgICAgICAgICAgICAgICAgIC8vIGluIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGVudHJ5ICh0aGUgdHdvIHRoYXQgY29tYmluZSksIGluIGVpdGhlcgorICAgICAgICAgICAgICAgICAgICAvLyBvcmRlcgorICAgICAgICAgICAgICAgICAgICBpZiAoKGVudHJ5WzBdID09IGEgJiYgZW50cnlbMV0gPT0gYikgfHwgKGVudHJ5WzBdID09IGIgJiYgZW50cnlbMV0gPT0gYSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlbnRyeVsyXTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8vIHdlIGFsc28gaGF2ZSBhIGhpdCBpZiBvbmUgb2YgdGhlIHR3byByb3cgbnVtYmVycyBtYXRjaGVzIHRoZSBtYXJnZWQKKyAgICAgICAgICAgICAgICAgICAgLy8gcm93IG51bWJlciBhbmQgdGhlIG90aGVyIG9uZSBtYXRjaGVzIG9uZSBvZiB0aGUgb3JpZ2luYWwgcm93IG51bWJlcnMKKyAgICAgICAgICAgICAgICAgICAgaWYgKChlbnRyeVsyXSA9PSBhICYmIChlbnRyeVswXSA9PSBiIHx8IGVudHJ5WzFdID09IGIpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVudHJ5WzJdOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgoZW50cnlbMl0gPT0gYiAmJiAoZW50cnlbMF0gPT0gYSB8fCBlbnRyeVsxXSA9PSBhKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlbnRyeVsyXTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gdXBkYXRlIHRoZSBsaXN0IG9mIGN1cnJlbnQgbG9vb3Bpbmcgc3RhdGVzIChpLmUuLAorICAgICAgICAgKiBzdGF0ZXMgdGhhdCBhcmUgY29udHJvbGxlZCBieSBhICo/IGNvbnN0cnVjdCkuICBJdCBiYWNrZmlsbHMgdmFsdWVzIGZyb20KKyAgICAgICAgICogdGhlIGxvb3Bpbmcgc3RhdGVzIGludG8gdW5wb3B1bGF0ZWQgY2VsbHMgb2YgdGhlIHN0YXRlcyB0aGF0IGFyZSBjdXJyZW50bHkKKyAgICAgICAgICogbWFya2VkIGZvciBiYWNrZmlsbGluZywgYW5kIHRoZW4gdXBkYXRlcyB0aGUgbGlzdCBvZiBsb29waW5nIHN0YXRlcyB0byBiZQorICAgICAgICAgKiB0aGUgbmV3IGxpc3QKKyAgICAgICAgICogQHBhcmFtIG5ld0xvb3BpbmdTdGF0ZXMgVGhlIGxpc3Qgb2YgbmV3IGxvb3Bpbmcgc3RhdGVzCisgICAgICAgICAqIEBwYXJhbSBlbmRTdGF0ZXMgVGhlIGxpc3Qgb2Ygc3RhdGVzIHRvIHRyZWF0IGFzIGVuZCBzdGF0ZXMgKHN0YXRlcyB0aGF0CisgICAgICAgICAqIGNhbiBleGl0IHRoZSBsb29wKS4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgdm9pZCBzZXRMb29waW5nU3RhdGVzKFZlY3RvciBuZXdMb29waW5nU3RhdGVzLCBWZWN0b3IgZW5kU3RhdGVzKSB7CisKKyAgICAgICAgICAgIC8vIGlmIHRoZSBjdXJyZW50IGxpc3Qgb2YgbG9vcGluZyBzdGF0ZXMgaXNuJ3QgZW1wdHksIHdlIGhhdmUgdG8gYmFja2ZpbGwKKyAgICAgICAgICAgIC8vIHZhbHVlcyBmcm9tIHRoZSBsb29waW5nIHN0YXRlcyBpbnRvIHRoZSBzdGF0ZXMgdGhhdCBhcmUgd2FpdGluZyB0byBiZQorICAgICAgICAgICAgLy8gYmFja2ZpbGxlZAorICAgICAgICAgICAgaWYgKCFsb29waW5nU3RhdGVzLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgIGludCBsb29waW5nU3RhdGUgPSAoKEludGVnZXIpbG9vcGluZ1N0YXRlcy5sYXN0RWxlbWVudCgpKS5pbnRWYWx1ZSgpOworICAgICAgICAgICAgICAgIGludCByb3dOdW07CisKKyAgICAgICAgICAgICAgICAvLyBkb24ndCBiYWNrZmlsbCBpbnRvIGFuIGVuZCBzdGF0ZSBPUiBhbnkgc3RhdGUgcmVhY2hhYmxlIGZyb20gYW4gZW5kIHN0YXRlCisgICAgICAgICAgICAgICAgLy8gKHNpbmNlIHRoZSBzZWFyY2ggZm9yIHJlYWNoYWJsZSBzdGF0ZXMgaXMgcmVjdXJzaXZlLCBpdCdzIHNwbGl0IG91dCBpbnRvCisgICAgICAgICAgICAgICAgLy8gYSBzZXBhcmF0ZSBmdW5jdGlvbiwgZWxpbWluYXRlQmFja2ZpbGxTdGF0ZXMoKSwgYmVsb3cpCisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBlbmRTdGF0ZXMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgZWxpbWluYXRlQmFja2ZpbGxTdGF0ZXMoKChJbnRlZ2VyKWVuZFN0YXRlcy5lbGVtZW50QXQoaSkpLmludFZhbHVlKCkpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIHdlIERPTidUIGFjdHVhbGx5IGJhY2tmaWxsIHRoZSBzdGF0ZXMgdGhhdCBuZWVkIHRvIGJlIGJhY2tmaWxsZWQgaGVyZS4KKyAgICAgICAgICAgICAgICAvLyBJbnN0ZWFkLCB3ZSBNQVJLIHRoZW0gZm9yIGJhY2tmaWxsaW5nLiAgVGhlIHJlYXNvbiBmb3IgdGhpcyBpcyB0aGF0IGlmCisgICAgICAgICAgICAgICAgLy8gdGhlcmUgYXJlIG11bHRpcGxlIHJ1bGVzIGluIHRoZSBzdGF0ZS10YWJsZSBkZXNjcmlwdGlvbiwgdGhlIGxvb3BpbmcKKyAgICAgICAgICAgICAgICAvLyBzdGF0ZXMgbWF5IGhhdmUgc29tZSBvZiB0aGVpciB2YWx1ZXMgY2hhbmdlZCBieSBhIHN1Y2NlZWRpbmcgcnVsZSwgYW5kCisgICAgICAgICAgICAgICAgLy8gdGhpcyB3b3VsZG4ndCBiZSByZWZsZWN0ZWQgaW4gdGhlIGJhY2tmaWxsZWQgc3RhdGVzLiAgV2UgbWFyayBhIHN0YXRlCisgICAgICAgICAgICAgICAgLy8gZm9yIGJhY2tmaWxsaW5nIGJ5IHB1dHRpbmcgdGhlIHJvdyBudW1iZXIgb2YgdGhlIHN0YXRlIHRvIGNvcHkgZnJvbQorICAgICAgICAgICAgICAgIC8vIGludG8gdGhlIGZsYWcgY2VsbCBhdCB0aGUgZW5kIG9mIHRoZSByb3cKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHN0YXRlc1RvQmFja2ZpbGwuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgcm93TnVtID0gKChJbnRlZ2VyKXN0YXRlc1RvQmFja2ZpbGwuZWxlbWVudEF0KGkpKS5pbnRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICBzaG9ydFtdIHN0YXRlID0gKHNob3J0W10pdGVtcFN0YXRlVGFibGUuZWxlbWVudEF0KHJvd051bSk7CisgICAgICAgICAgICAgICAgICAgIHN0YXRlW251bUNhdGVnb3JpZXNdID0KKyAgICAgICAgICAgICAgICAgICAgICAgIChzaG9ydCkoKHN0YXRlW251bUNhdGVnb3JpZXNdICYgQUxMX0ZMQUdTKSB8IGxvb3BpbmdTdGF0ZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHN0YXRlc1RvQmFja2ZpbGwucmVtb3ZlQWxsRWxlbWVudHMoKTsKKyAgICAgICAgICAgICAgICBsb29waW5nU3RhdGVzLnJlbW92ZUFsbEVsZW1lbnRzKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChuZXdMb29waW5nU3RhdGVzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBsb29waW5nU3RhdGVzID0gKFZlY3RvciluZXdMb29waW5nU3RhdGVzLmNsb25lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogVGhpcyByZW1vdmVzICJlbmRpbmcgc3RhdGVzIiBhbmQgc3RhdGVzIHJlYWNoYWJsZSBmcm9tIHRoZW0gZnJvbSB0aGUKKyAgICAgICAgICogbGlzdCBvZiBzdGF0ZXMgdG8gYmFja2ZpbGwuCisgICAgICAgICAqIEBwYXJhbSBUaGUgcm93IG51bWJlciBvZiB0aGUgc3RhdGUgdG8gcmVtb3ZlIGZyb20gdGhlIGJhY2tmaWxsIGxpc3QKKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgdm9pZCBlbGltaW5hdGVCYWNrZmlsbFN0YXRlcyhpbnQgYmFzZVN0YXRlKSB7CisKKyAgICAgICAgICAgIC8vIGRvbid0IGRvIGFueXRoaW5nIHVubGVzcyB0aGlzIHN0YXRlIGlzIGFjdHVhbGx5IGluIHRoZSBiYWNrZmlsbCBsaXN0Li4uCisgICAgICAgICAgICBpZiAoc3RhdGVzVG9CYWNrZmlsbC5jb250YWlucyhuZXcgSW50ZWdlcihiYXNlU3RhdGUpKSkgeworCisgICAgICAgICAgICAgICAgLy8gaWYgaXQgaXMsIHRha2UgaXQgb3V0CisgICAgICAgICAgICAgICAgc3RhdGVzVG9CYWNrZmlsbC5yZW1vdmVFbGVtZW50KG5ldyBJbnRlZ2VyKGJhc2VTdGF0ZSkpOworCisgICAgICAgICAgICAgICAgLy8gdGhlbiBnbyB0aHJvdWdoIGFuZCByZWN1cnNpdmVseSBjYWxsIHRoaXMgZnVuY3Rpb24gZm9yIGV2ZXJ5CisgICAgICAgICAgICAgICAgLy8gc3RhdGUgdGhhdCB0aGUgYmFzZSBzdGF0ZSBwb2ludHMgdG8KKyAgICAgICAgICAgICAgICBzaG9ydFtdIHN0YXRlID0gKHNob3J0W10pdGVtcFN0YXRlVGFibGUuZWxlbWVudEF0KGJhc2VTdGF0ZSk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1DYXRlZ29yaWVzOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXRlW2ldICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsaW1pbmF0ZUJhY2tmaWxsU3RhdGVzKHN0YXRlW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGlzIGZ1bmN0aW9uIGNvbXBsZXRlcyB0aGUgYmFja2ZpbGxpbmcgcHJvY2VzcyBieSBhY3R1YWxseSBkb2luZyB0aGUKKyAgICAgICAgICogYmFja2ZpbGxpbmcgb24gdGhlIHN0YXRlcyB0aGF0IGFyZSBtYXJrZWQgZm9yIGl0CisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHZvaWQgYmFja2ZpbGxMb29waW5nU3RhdGVzKCkgeworICAgICAgICAgICAgc2hvcnRbXSBzdGF0ZTsKKyAgICAgICAgICAgIHNob3J0W10gbG9vcGluZ1N0YXRlID0gbnVsbDsKKyAgICAgICAgICAgIGludCBsb29waW5nU3RhdGVSb3dOdW0gPSAwOworICAgICAgICAgICAgaW50IGZyb21TdGF0ZTsKKworICAgICAgICAgICAgLy8gZm9yIGVhY2ggc3RhdGUgaW4gdGhlIHN0YXRlIHRhYmxlLi4uCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlbXBTdGF0ZVRhYmxlLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgc3RhdGUgPSAoc2hvcnRbXSl0ZW1wU3RhdGVUYWJsZS5lbGVtZW50QXQoaSk7CisKKyAgICAgICAgICAgICAgICAvLyBjaGVjayB0aGUgc3RhdGUncyBmbGFnIHdvcmQgdG8gc2VlIGlmIGl0J3MgbWFya2VkIGZvciBiYWNrZmlsbGluZworICAgICAgICAgICAgICAgIC8vIChpdCdzIG1hcmtlZCBmb3IgYmFja2ZpbGxpbmcgaWYgYW55IGJpdHMgb3RoZXIgdGhhbiB0aGUgdHdvIGhpZ2gtb3JkZXIKKyAgICAgICAgICAgICAgICAvLyBiaXRzIGFyZSBzZXQtLSBpZiB0aGV5IGFyZSwgdGhlbiB0aGUgZmxhZyB3b3JkLCBtaW51cyB0aGUgdHdvIGhpZ2ggYml0cywKKyAgICAgICAgICAgICAgICAvLyBpcyB0aGUgcm93IG51bWJlciB0byBjb3B5IGZyb20pCisgICAgICAgICAgICAgICAgZnJvbVN0YXRlID0gc3RhdGVbbnVtQ2F0ZWdvcmllc10gJiB+QUxMX0ZMQUdTOworICAgICAgICAgICAgICAgIGlmIChmcm9tU3RhdGUgPiAwKSB7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gbG9hZCB1cCB0aGUgc3RhdGUgdG8gY29weSBmcm9tIChpZiB3ZSBoYXZlbid0IGFscmVhZHkpCisgICAgICAgICAgICAgICAgICAgIGlmIChmcm9tU3RhdGUgIT0gbG9vcGluZ1N0YXRlUm93TnVtKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb29waW5nU3RhdGVSb3dOdW0gPSBmcm9tU3RhdGU7CisgICAgICAgICAgICAgICAgICAgICAgICBsb29waW5nU3RhdGUgPSAoc2hvcnRbXSl0ZW1wU3RhdGVUYWJsZS5lbGVtZW50QXQobG9vcGluZ1N0YXRlUm93TnVtKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8vIGNsZWFyIG91dCB0aGUgYmFja2ZpbGwgcGFydCBvZiB0aGUgZmxhZyB3b3JkCisgICAgICAgICAgICAgICAgICAgIHN0YXRlW251bUNhdGVnb3JpZXNdICY9IEFMTF9GTEFHUzsKKworICAgICAgICAgICAgICAgICAgICAvLyB0aGVuIGZpbGwgYWxsIHplcm8gY2VsbHMgaW4gdGhlIGN1cnJlbnQgc3RhdGUgd2l0aCB2YWx1ZXMKKyAgICAgICAgICAgICAgICAgICAgLy8gZnJvbSB0aGUgY29ycmVzcG9uZGluZyBjZWxscyBvZiB0aGUgZnJvbVN0YXRlCisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgc3RhdGUubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZVtqXSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGVbal0gPSBsb29waW5nU3RhdGVbal07CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChzdGF0ZVtqXSA9PSBET05UX0xPT1BfRkxBRykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlW2pdID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGlzIGZ1bmN0aW9uIGNvbXBsZXRlcyB0aGUgc3RhdGUtdGFibGUtYnVpbGRpbmcgcHJvY2VzcyBieSBkb2luZyBzZXZlcmFsCisgICAgICAgICAqIHBvc3Rwcm9jZXNzaW5nIHN0ZXBzIGFuZCBjb3B5aW5nIGV2ZXJ5dGhpbmcgaW50byBpdHMgZmluYWwgcmVzdGluZyBwbGFjZQorICAgICAgICAgKiBpbiB0aGUgaXRlcmF0b3IgaXRzZWxmCisgICAgICAgICAqIEBwYXJhbSBmb3J3YXJkIFRydWUgaWYgd2UncmUgd29ya2luZyBvbiB0aGUgZm9yd2FyZCBzdGF0ZSB0YWJsZQorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSB2b2lkIGZpbmlzaEJ1aWxkaW5nU3RhdGVUYWJsZShib29sZWFuIGZvcndhcmQpIHsKKy8vZGVidWdQcmludFRlbXBTdGF0ZVRhYmxlKCk7CisgICAgICAgICAgICAvLyBzdGFydCBieSBiYWNrZmlsbGluZyB0aGUgbG9vcGluZyBzdGF0ZXMKKyAgICAgICAgICAgIGJhY2tmaWxsTG9vcGluZ1N0YXRlcygpOworLy9kZWJ1Z1ByaW50VGVtcFN0YXRlVGFibGUoKTsKKworICAgICAgICAgICAgaW50W10gcm93TnVtTWFwID0gbmV3IGludFt0ZW1wU3RhdGVUYWJsZS5zaXplKCldOworICAgICAgICAgICAgU3RhY2sgcm93c1RvRm9sbG93ID0gbmV3IFN0YWNrKCk7CisgICAgICAgICAgICByb3dzVG9Gb2xsb3cucHVzaChuZXcgSW50ZWdlcigxKSk7CisgICAgICAgICAgICByb3dOdW1NYXBbMV0gPSAxOworCisgICAgICAgICAgICAvLyBkZXRlcm1pbmUgd2hpY2ggc3RhdGVzIGFyZSBubyBsb25nZXIgcmVhY2hhYmxlIGZyb20gdGhlIHN0YXJ0IHN0YXRlCisgICAgICAgICAgICAvLyAodGhlIHJlYWNoYWJsZSBzdGF0ZXMgd2lsbCBoYXZlIHRoZWlyIHJvdyBudW1iZXJzIGluIHRoZSByb3cgbnVtYmVyCisgICAgICAgICAgICAvLyBtYXAsIGFuZCB0aGUgbm9ucmVhY2hhYmxlIHN0YXRlcyB3aWxsIGhhdmUgemVybyBpbiB0aGUgcm93IG51bWJlciBtYXApCisgICAgICAgICAgICB3aGlsZSAocm93c1RvRm9sbG93LnNpemUoKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgaW50IHJvd051bSA9ICgoSW50ZWdlcilyb3dzVG9Gb2xsb3cucG9wKCkpLmludFZhbHVlKCk7CisgICAgICAgICAgICAgICAgc2hvcnRbXSByb3cgPSAoc2hvcnRbXSkodGVtcFN0YXRlVGFibGUuZWxlbWVudEF0KHJvd051bSkpOworCisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1DYXRlZ29yaWVzOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJvd1tpXSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocm93TnVtTWFwW3Jvd1tpXV0gPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd051bU1hcFtyb3dbaV1dID0gcm93W2ldOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3NUb0ZvbGxvdy5wdXNoKG5ldyBJbnRlZ2VyKHJvd1tpXSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorLyoKK1N5c3RlbS5vdXQucHJpbnRsbigiVGhlIGZvbGxvd2luZyByb3dzIGFyZSBub3QgcmVhY2hhYmxlOiIpOworZm9yIChpbnQgaSA9IDE7IGkgPCByb3dOdW1NYXAubGVuZ3RoOyBpKyspCitpZiAocm93TnVtTWFwW2ldID09IDApIFN5c3RlbS5vdXQucHJpbnQoIlx0IiArIGkpOworU3lzdGVtLm91dC5wcmludGxuKCk7CisqLworCisgICAgICAgICAgICAvLyB2YXJpYWJsZSBub3QgdXNlZCBib29sZWFuIG1hZGVDaGFuZ2U7CisgICAgICAgICAgICBpbnQgbmV3Um93TnVtOworCisgICAgICAgICAgICAvLyBhbGdvcml0aG0gZm9yIG1pbmltaXppbmcgdGhlIG51bWJlciBvZiBzdGF0ZXMgaW4gdGhlIHRhYmxlIGFkYXB0ZWQgZnJvbQorICAgICAgICAgICAgLy8gQWhvICYgVWxsbWFuLCAiUHJpbmNpcGxlcyBvZiBDb21waWxlciBEZXNpZ24iCisgICAgICAgICAgICAvLyBUaGUgYmFzaWMgaWRlYSBoZXJlIGlzIHRvIG9yZ2FuaXplIHRoZSBzdGF0ZXMgaW50byBjbGFzc2VzLiAgV2hlbiB3ZSdyZSBkb25lLAorICAgICAgICAgICAgLy8gYWxsIHN0YXRlcyBpbiB0aGUgc2FtZSBjbGFzcyBjYW4gYmUgY29uc2lkZXJlZCBpZGVudGljYWwgYW5kIGFsbCBidXQgb25lIGVsaW1pbmF0ZWQuCisKKyAgICAgICAgICAgIC8vIGluaXRpYWxseSBhc3NpZ24gc3RhdGVzIHRvIGNsYXNzZXMgYmFzZWQgb24gdGhlIG51bWJlciBvZiBwb3B1bGF0ZWQgY2VsbHMgdGhleQorICAgICAgICAgICAgLy8gY29udGFpbiAodGhlIGNsYXNzIG51bWJlciBpcyB0aGUgbnVtYmVyIG9mIHBvcHVsYXRlZCBjZWxscykKKyAgICAgICAgICAgIGludFtdIHN0YXRlQ2xhc3NlcyA9IG5ldyBpbnRbdGVtcFN0YXRlVGFibGUuc2l6ZSgpXTsKKyAgICAgICAgICAgIGludCBuZXh0Q2xhc3MgPSBudW1DYXRlZ29yaWVzICsgMTsKKyAgICAgICAgICAgIHNob3J0W10gc3RhdGUxLCBzdGF0ZTI7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IHN0YXRlQ2xhc3Nlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChyb3dOdW1NYXBbaV0gPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc3RhdGUxID0gKHNob3J0W10pdGVtcFN0YXRlVGFibGUuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbnVtQ2F0ZWdvcmllczsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZTFbal0gIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgKytzdGF0ZUNsYXNzZXNbaV07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHN0YXRlQ2xhc3Nlc1tpXSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHN0YXRlQ2xhc3Nlc1tpXSA9IG5leHRDbGFzczsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICArK25leHRDbGFzczsKKworICAgICAgICAgICAgLy8gdGhlbiwgZm9yIGVhY2ggY2xhc3MsIGVsZWN0IHRoZSBmaXJzdCBtZW1iZXIgb2YgdGhhdCBjbGFzcyBhcyB0aGF0IGNsYXNzJ3MKKyAgICAgICAgICAgIC8vICJyZXByZXNlbnRhdGl2ZSIuICBGb3IgZWFjaCBtZW1iZXIgb2YgdGhlIGNsYXNzLCBjb21wYXJlIGl0IHRvIHRoZSAicmVwcmVzZW50YXRpdmUuIgorICAgICAgICAgICAgLy8gSWYgdGhlcmUncyBhIGNvbHVtbiBwb3NpdGlvbiB3aGVyZSB0aGUgc3RhdGUgYmVpbmcgdGVzdGVkIHRyYW5zaXRpb25zIHRvIGEKKyAgICAgICAgICAgIC8vIHN0YXRlIGluIGEgRElGRkVSRU5UIGNsYXNzIGZyb20gdGhlIGNsYXNzIHdoZXJlIHRoZSAicmVwcmVzZW50YXRpdmUiIHRyYW5zaXRpb25zLAorICAgICAgICAgICAgLy8gdGhlbiBtb3ZlIHRoZSBzdGF0ZSBpbnRvIGEgbmV3IGNsYXNzLiAgUmVwZWF0IHRoaXMgcHJvY2VzcyB1bnRpbCBubyBuZXcgY2xhc3NlcworICAgICAgICAgICAgLy8gYXJlIGNyZWF0ZWQuCisgICAgICAgICAgICBpbnQgY3VycmVudENsYXNzOworICAgICAgICAgICAgaW50IGxhc3RDbGFzczsKKyAgICAgICAgICAgIGJvb2xlYW4gc3BsaXQ7CisKKyAgICAgICAgICAgIGRvIHsKKy8vU3lzdGVtLm91dC5wcmludGxuKCJNYWtpbmcgYSBwYXNzLi4uIik7CisgICAgICAgICAgICAgICAgY3VycmVudENsYXNzID0gMTsKKyAgICAgICAgICAgICAgICBsYXN0Q2xhc3MgPSBuZXh0Q2xhc3M7CisgICAgICAgICAgICAgICAgd2hpbGUgKGN1cnJlbnRDbGFzcyA8IG5leHRDbGFzcykgeworLy9TeXN0ZW0ub3V0LnByaW50KCJTdGF0ZXMgaW4gY2xhc3MgIyIgKyBjdXJyZW50Q2xhc3MgKyI6Iik7CisgICAgICAgICAgICAgICAgICAgIHNwbGl0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIHN0YXRlMSA9IHN0YXRlMiA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3RhdGVDbGFzc2VzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdGVDbGFzc2VzW2ldID09IGN1cnJlbnRDbGFzcykgeworLy9TeXN0ZW0ub3V0LnByaW50KCJcdCIgKyBpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdGUxID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUxID0gKHNob3J0W10pdGVtcFN0YXRlVGFibGUuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUyID0gKHNob3J0W10pdGVtcFN0YXRlVGFibGUuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHN0YXRlMi5sZW5ndGg7IGorKykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoaiA9PSBudW1DYXRlZ29yaWVzICYmIHN0YXRlMVtqXSAhPSBzdGF0ZTJbal0gJiYgZm9yd2FyZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgKGogIT0gbnVtQ2F0ZWdvcmllcyAmJiBzdGF0ZUNsYXNzZXNbc3RhdGUxW2pdXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBzdGF0ZUNsYXNzZXNbc3RhdGUyW2pdXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZUNsYXNzZXNbaV0gPSBuZXh0Q2xhc3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BsaXQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoc3BsaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrbmV4dENsYXNzOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICsrY3VycmVudENsYXNzOworLy9TeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IHdoaWxlIChsYXN0Q2xhc3MgIT0gbmV4dENsYXNzKTsKKworICAgICAgICAgICAgLy8gYXQgdGhpcyBwb2ludCwgYWxsIG9mIHRoZSBzdGF0ZXMgaW4gYSBjbGFzcyBleGNlcHQgdGhlIGZpcnN0IG9uZSAodGhlCisgICAgICAgICAgICAvLyJyZXByZXNlbnRhdGl2ZSIpIGNhbiBiZSBlbGltaW5hdGVkLCBzbyB1cGRhdGUgdGhlIHJvdy1udW1iZXIgbWFwIGFjY29yZGluZ2x5CisgICAgICAgICAgICBpbnRbXSByZXByZXNlbnRhdGl2ZXMgPSBuZXcgaW50W25leHRDbGFzc107CisgICAgICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IHN0YXRlQ2xhc3Nlcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgICAgICBpZiAocmVwcmVzZW50YXRpdmVzW3N0YXRlQ2xhc3Nlc1tpXV0gPT0gMCkgeworICAgICAgICAgICAgICAgICAgICByZXByZXNlbnRhdGl2ZXNbc3RhdGVDbGFzc2VzW2ldXSA9IGk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICByb3dOdW1NYXBbaV0gPSByZXByZXNlbnRhdGl2ZXNbc3RhdGVDbGFzc2VzW2ldXTsKKyAgICAgICAgICAgICAgICB9CisvL1N5c3RlbS5vdXQucHJpbnRsbigiUmVudW1iZXJpbmcuLi4iKTsKKworICAgICAgICAgICAgLy8gcmVudW1iZXIgYWxsIHJlbWFpbmluZyByb3dzLi4uCisgICAgICAgICAgICAvLyBmaXJzdCBkcm9wIGFsbCB0aGF0IGFyZSBlaXRoZXIgdW5yZWZlcmVuY2VkIG9yIG5vdCBhIGNsYXNzIHJlcHJlc2VudGF0aXZlCisgICAgICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IHJvd051bU1hcC5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChyb3dOdW1NYXBbaV0gIT0gaSkgeworICAgICAgICAgICAgICAgICAgICB0ZW1wU3RhdGVUYWJsZS5zZXRFbGVtZW50QXQobnVsbCwgaSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyB0aGVuIGNhbGN1bGF0ZSBldmVyeWJvZHkncyBuZXcgcm93IG51bWJlciBhbmQgdXBkYXRlIHRoZSByb3cKKyAgICAgICAgICAgIC8vIG51bWJlciBtYXAgYXBwcm9wcmlhdGVseSAodGhlIGZpcnN0IHBhc3MgdXBkYXRlcyB0aGUgcm93IG51bWJlcnMKKyAgICAgICAgICAgIC8vIG9mIGFsbCB0aGUgY2xhc3MgcmVwcmVzZW50YXRpdmVzIFt0aGUgcm93cyB3ZSdyZSBrZWVwaW5nXSwgYW5kIHRoZQorICAgICAgICAgICAgLy8gc2Vjb25kIHBhc3MgdXBkYXRlcyB0aGUgY3Jvc3MgcmVmZXJlbmNlcyBmb3IgYWxsIHRoZSByb3dzIHRoYXQKKyAgICAgICAgICAgIC8vIGFyZSBiZWluZyBkZWxldGVkKQorICAgICAgICAgICAgbmV3Um93TnVtID0gMTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgcm93TnVtTWFwLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKHRlbXBTdGF0ZVRhYmxlLmVsZW1lbnRBdChpKSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHJvd051bU1hcFtpXSA9IG5ld1Jvd051bSsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgcm93TnVtTWFwLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKHRlbXBTdGF0ZVRhYmxlLmVsZW1lbnRBdChpKSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHJvd051bU1hcFtpXSA9IHJvd051bU1hcFtyb3dOdW1NYXBbaV1dOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKy8vZm9yIChpbnQgaSA9IDE7IGkgPCByb3dOdW1NYXAubGVuZ3RoOyBpKyspIHJvd051bU1hcFtpXSA9IGk7IGludCBuZXdSb3dOdW0gPSByb3dOdW1NYXAubGVuZ3RoOworCisgICAgICAgICAgICAvLyBhbGxvY2F0ZSB0aGUgcGVybWFuZW50IHN0YXRlIHRhYmxlLCBhbmQgY29weSB0aGUgcmVtYWluaW5nIHJvd3MgaW50byBpdAorICAgICAgICAgICAgLy8gKGFkanVzdGluZyBhbGwgdGhlIGNlbGwgdmFsdWVzLCBvZiBjb3Vyc2UpCisKKyAgICAgICAgICAgIC8vIHRoaXMgc2VjdGlvbiBkb2VzIHRoYXQgZm9yIHRoZSBmb3J3YXJkIHN0YXRlIHRhYmxlCisgICAgICAgICAgICBpZiAoZm9yd2FyZCkgeworICAgICAgICAgICAgICAgIGVuZFN0YXRlcyA9IG5ldyBib29sZWFuW25ld1Jvd051bV07CisgICAgICAgICAgICAgICAgbG9va2FoZWFkU3RhdGVzID0gbmV3IGJvb2xlYW5bbmV3Um93TnVtXTsKKyAgICAgICAgICAgICAgICBzdGF0ZVRhYmxlID0gbmV3IHNob3J0W25ld1Jvd051bSAqIG51bUNhdGVnb3JpZXNdOworICAgICAgICAgICAgICAgIGludCBwID0gMDsKKyAgICAgICAgICAgICAgICBpbnQgcDIgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVtcFN0YXRlVGFibGUuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgc2hvcnRbXSByb3cgPSAoc2hvcnRbXSkodGVtcFN0YXRlVGFibGUuZWxlbWVudEF0KGkpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJvdyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG51bUNhdGVnb3JpZXM7IGorKykgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGVUYWJsZVtwXSA9IChzaG9ydCkocm93TnVtTWFwW3Jvd1tqXV0pOworICAgICAgICAgICAgICAgICAgICAgICAgKytwOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVuZFN0YXRlc1twMl0gPSAoKHJvd1tudW1DYXRlZ29yaWVzXSAmIEVORF9TVEFURV9GTEFHKSAhPSAwKTsKKyAgICAgICAgICAgICAgICAgICAgbG9va2FoZWFkU3RhdGVzW3AyXSA9ICgocm93W251bUNhdGVnb3JpZXNdICYgTE9PS0FIRUFEX1NUQVRFX0ZMQUcpICE9IDApOworICAgICAgICAgICAgICAgICAgICArK3AyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gYW5kIHRoaXMgc2VjdGlvbiBkb2VzIGl0IGZvciB0aGUgYmFja3dhcmQgc3RhdGUgdGFibGUKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGJhY2t3YXJkc1N0YXRlVGFibGUgPSBuZXcgc2hvcnRbbmV3Um93TnVtICogbnVtQ2F0ZWdvcmllc107CisgICAgICAgICAgICAgICAgaW50IHAgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVtcFN0YXRlVGFibGUuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgc2hvcnRbXSByb3cgPSAoc2hvcnRbXSkodGVtcFN0YXRlVGFibGUuZWxlbWVudEF0KGkpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJvdyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG51bUNhdGVnb3JpZXM7IGorKykgeworICAgICAgICAgICAgICAgICAgICAgICAgYmFja3dhcmRzU3RhdGVUYWJsZVtwXSA9IChzaG9ydCkocm93TnVtTWFwW3Jvd1tqXV0pOworICAgICAgICAgICAgICAgICAgICAgICAgKytwOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoaXMgZnVuY3Rpb24gYnVpbGRzIHRoZSBiYWNrd2FyZCBzdGF0ZSB0YWJsZSBmcm9tIHRoZSBmb3J3YXJkIHN0YXRlCisgICAgICAgICAqIHRhYmxlIGFuZCBhbnkgYWRkaXRpb25hbCBydWxlcyAoaWRlbnRpZmllZCBieSB0aGUgISBvbiB0aGUgZnJvbnQpCisgICAgICAgICAqIHN1cHBsaWVkIGluIHRoZSBkZXNjcmlwdGlvbgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSB2b2lkIGJ1aWxkQmFja3dhcmRzU3RhdGVUYWJsZShWZWN0b3IgdGVtcFJ1bGVMaXN0KSB7CisKKyAgICAgICAgICAgIC8vIGNyZWF0ZSB0aGUgdGVtcG9yYXJ5IHN0YXRlIHRhYmxlIGFuZCBzZWVkIGl0IHdpdGggdHdvIHJvd3MgKHJvdyAwCisgICAgICAgICAgICAvLyBpc24ndCB1c2VkIGZvciBhbnl0aGluZywgYW5kIHdlIGhhdmUgdG8gY3JlYXRlIHJvdyAxICh0aGUgaW5pdGlhbAorICAgICAgICAgICAgLy8gc3RhdGUpIGJlZm9yZSB3ZSBjYW4gZG8gYW55dGhpbmcgZWxzZQorICAgICAgICAgICAgdGVtcFN0YXRlVGFibGUgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgICAgICB0ZW1wU3RhdGVUYWJsZS5hZGRFbGVtZW50KG5ldyBzaG9ydFtudW1DYXRlZ29yaWVzICsgMV0pOworICAgICAgICAgICAgdGVtcFN0YXRlVGFibGUuYWRkRWxlbWVudChuZXcgc2hvcnRbbnVtQ2F0ZWdvcmllcyArIDFdKTsKKworICAgICAgICAgICAgLy8gYWx0aG91Z2ggdGhlIGJhY2t3YXJkcyBzdGF0ZSB0YWJsZSBpcyBidWlsdCBhdXRvbWF0aWNhbGx5IGZyb20gdGhlIGZvcndhcmQKKyAgICAgICAgICAgIC8vIHN0YXRlIHRhYmxlLCB0aGVyZSBhcmUgc29tZSBzaXR1YXRpb25zICh0aGUgZGVmYXVsdCBzZW50ZW5jZS1icmVhayBydWxlcywKKyAgICAgICAgICAgIC8vIGZvciBleGFtcGxlKSB3aGVyZSB0aGlzIGRvZXNuJ3QgeWllbGQgZW5vdWdoIHN0b3Agc3RhdGVzLCBjYXVzaW5nIGEgZHJhbWF0aWMKKyAgICAgICAgICAgIC8vIGRyb3AgaW4gcGVyZm9ybWFuY2UuICBUbyBoZWxwIHdpdGggdGhlc2UgY2FzZXMsIHRoZSB1c2VyIG1heSBzdXBwbHkKKyAgICAgICAgICAgIC8vIHN1cHBsZW1lbnRhbCBydWxlcyB0aGF0IGFyZSBhZGRlZCB0byB0aGUgYmFja3dhcmQgc3RhdGUgdGFibGUuICBUaGVzZSBoYXZlCisgICAgICAgICAgICAvLyB0aGUgc2FtZSBzeW50YXggYXMgdGhlIG5vcm1hbCBicmVhayBydWxlcywgYnV0IGJlZ2luIHdpdGggJyEnIHRvIGRpc3Rpbmd1aXNoCisgICAgICAgICAgICAvLyB0aGVtIGZyb20gbm9ybWFsIGJyZWFrIHJ1bGVzCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlbXBSdWxlTGlzdC5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgICAgIFN0cmluZyBydWxlID0gKFN0cmluZyl0ZW1wUnVsZUxpc3QuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgICAgIGlmIChydWxlLmNoYXJBdCgwKSA9PSAnIScpIHsKKyAgICAgICAgICAgICAgICAgICAgcGFyc2VSdWxlKHJ1bGUuc3Vic3RyaW5nKDEpLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgYmFja2ZpbGxMb29waW5nU3RhdGVzKCk7CisKKyAgICAgICAgICAgIC8vIEJhY2t3YXJkcyBpdGVyYXRpb24gaXMgcXVhbGl0YXRpdmVseSBkaWZmZXJlbnQgZnJvbSBmb3J3YXJkcyBpdGVyYXRpb24uCisgICAgICAgICAgICAvLyBUaGlzIGlzIGJlY2F1c2UgYmFja3dhcmRzIGl0ZXJhdGlvbiBoYXMgdG8gYmUgbWFkZSB0byBvcGVyYXRlIGZyb20gbm8gY29udGV4dAorICAgICAgICAgICAgLy8gYXQgYWxsLS0gdGhlIHVzZXIgc2hvdWxkIGJlIGFibGUgdG8gYXNrIEJyZWFrSXRlcmF0b3IgZm9yIHRoZSBicmVhayBwb3NpdGlvbgorICAgICAgICAgICAgLy8gaW1tZWRpYXRlbHkgb24gZWl0aGVyIHNpZGUgb2Ygc29tZSBhcmJpdHJhcnkgb2Zmc2V0IGluIHRoZSB0ZXh0LiAgVGhlCisgICAgICAgICAgICAvLyBmb3J3YXJkIGl0ZXJhdGlvbiB0YWJsZSBkb2Vzbid0IGxldCB1cyBkbyB0aGF0LS0gaXQgYXNzdW1lcyBjb21wbGV0ZQorICAgICAgICAgICAgLy8gaW5mb3JtYXRpb24gb24gdGhlIGNvbnRleHQsIHdoaWNoIG1lYW5zIHN0YXJ0aW5nIGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUKKyAgICAgICAgICAgIC8vIGRvY3VtZW50LgorICAgICAgICAgICAgLy8gVGhlIHdheSB3ZSBkbyBiYWNrd2FyZCBhbmQgcmFuZG9tLWFjY2VzcyBpdGVyYXRpb24gaXMgdG8gYmFjayB1cCBmcm9tIHRoZQorICAgICAgICAgICAgLy8gY3VycmVudCAob3IgdXNlci1zcGVjaWZpZWQpIHBvc2l0aW9uIHVudGlsIHdlIHNlZSBzb21ldGhpbmcgd2UncmUgc3VyZSBpcworICAgICAgICAgICAgLy8gYSBicmVhayBwb3NpdGlvbiAoaXQgbWF5IG5vdCBiZSB0aGUgbGFzdCBicmVhayBwb3NpdGlvbiBpbW1lZGlhdGVseQorICAgICAgICAgICAgLy8gcHJlY2VkaW5nIG91ciBzdGFydGluZyBwb2ludCwgaG93ZXZlcikuICBUaGVuIHdlIHJvbGwgZm9yd2FyZCBmcm9tIHRoZXJlIHRvCisgICAgICAgICAgICAvLyBsb2NhdGUgdGhlIGFjdHVhbCBicmVhayBwb3NpdGlvbiB3ZSdyZSBhZnRlci4KKyAgICAgICAgICAgIC8vIFRoaXMgbWVhbnMgdGhhdCB0aGUgYmFja3dhcmRzIHN0YXRlIHRhYmxlIGRvZXNuJ3QgaGF2ZSB0byBpZGVudGlmeSBldmVyeQorICAgICAgICAgICAgLy8gYnJlYWsgcG9zaXRpb24sIGFsbG93aW5nIHRoZSBidWlsZGluZyBhbGdvcml0aG0gdG8gYmUgbXVjaCBzaW1wbGVyLiAgSGVyZSwKKyAgICAgICAgICAgIC8vIHdlIHVzZSBhICJwYWlycyIgYXBwcm9hY2gsIHNjYW5uaW5nIHRoZSBmb3J3YXJkLWl0ZXJhdGlvbiBzdGF0ZSB0YWJsZSBmb3IKKyAgICAgICAgICAgIC8vIHBhaXJzIG9mIGNoYXJhY3RlciBjYXRlZ29yaWVzIHdlIEFMV0FZUyBicmVhayBiZXR3ZWVuLCBhbmQgYnVpbGRpbmcgYSBzdGF0ZQorICAgICAgICAgICAgLy8gdGFibGUgZnJvbSB0aGF0IGluZm9ybWF0aW9uLiAgTm8gY29udGV4dCBpcyByZXF1aXJlZC0tIGFsbCB0aGlzIHN0YXRlIHRhYmxlCisgICAgICAgICAgICAvLyBsb29rcyBhdCBpcyBhIHBhaXIgb2YgYWRqYWNlbnQgY2hhcmFjdGVycy4KKworICAgICAgICAgICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IHRoZSB1c2VyIGhhcyBzdXBwbGllZCBzdXBwbGVtZW50YXJ5IHJ1bGVzIChzZWUgYWJvdmUpLgorICAgICAgICAgICAgLy8gVGhpcyBoYXMgdG8gYmUgZG9uZSBmaXJzdCB0byBrZWVwIHBhcnNlUnVsZSgpIGFuZCBmcmllbmRzIGZyb20gYmVjb21pbmcKKyAgICAgICAgICAgIC8vIEVWRU4gTU9SRSBjb21wbGljYXRlZC4gIFRoZSBhdXRvbWF0aWNhbGx5LWdlbmVyYXRlZCBzdGF0ZXMgYXJlIGFwcGVuZGVkCisgICAgICAgICAgICAvLyBvbnRvIHRoZSBlbmQgb2YgdGhlIHN0YXRlIHRhYmxlLCBhbmQgdGhlbiB0aGUgdHdvIHNldHMgb2YgcnVsZXMgYXJlCisgICAgICAgICAgICAvLyBzdGl0Y2hlZCB0b2dldGhlciBhdCB0aGUgZW5kLiAgVGFrZSBub3RlIG9mIHRoZSByb3cgbnVtYmVyIG9mIHRoZQorICAgICAgICAgICAgLy8gZmlyc3Qgcm93IG9mIHRoZSBhdXJvbWF0aWNhbGx5LWdlbmVyYXRlZCBwYXJ0LgorICAgICAgICAgICAgaW50IGJhY2tUYWJsZU9mZnNldCA9IHRlbXBTdGF0ZVRhYmxlLnNpemUoKTsKKyAgICAgICAgICAgIGlmIChiYWNrVGFibGVPZmZzZXQgPiAyKSB7CisgICAgICAgICAgICAgICAgKytiYWNrVGFibGVPZmZzZXQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIHRoZSBhdXRvbWF0aWNhbGx5LWdlbmVyYXRlZCBwYXJ0IG9mIHRoZSB0YWJsZSBtb2RlbHMgYSB0d28tZGltZW5zaW9uYWwKKyAgICAgICAgICAgIC8vIGFycmF5IHdoZXJlIHRoZSB0d28gZGltZW5zaW9ucyByZXByZXNlbnQgdGhlIHR3byBjaGFyYWN0ZXJzIHdlJ3JlIGN1cnJlbnRseQorICAgICAgICAgICAgLy8gbG9va2luZyBhdC4gIFRvIG1vZGVsIHRoaXMgYXMgYSBzdGF0ZSB0YWJsZSwgd2UgYWN0dWFsbHkgbmVlZCBvbmUgYWRkaXRpb25hbAorICAgICAgICAgICAgLy8gcm93IHRvIHJlcHJlc2VudCB0aGUgaW5pdGlhbCBzdGF0ZS4gIEl0IGdldHMgcG9wdWxhdGVkIHdpdGggdGhlIHJvdyBudW1iZXJzCisgICAgICAgICAgICAvLyBvZiB0aGUgb3RoZXIgcm93cyAoaW4gb3JkZXIpLgorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1DYXRlZ29yaWVzICsgMTsgaSsrKQorICAgICAgICAgICAgICAgIHRlbXBTdGF0ZVRhYmxlLmFkZEVsZW1lbnQobmV3IHNob3J0W251bUNhdGVnb3JpZXMgKyAxXSk7CisKKyAgICAgICAgICAgIHNob3J0W10gc3RhdGUgPSAoc2hvcnRbXSl0ZW1wU3RhdGVUYWJsZS5lbGVtZW50QXQoYmFja1RhYmxlT2Zmc2V0IC0gMSk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUNhdGVnb3JpZXM7IGkrKykKKyAgICAgICAgICAgICAgICBzdGF0ZVtpXSA9IChzaG9ydCkoaSArIGJhY2tUYWJsZU9mZnNldCk7CisKKyAgICAgICAgICAgIC8vIHNjYXZlbmdlIHRoZSBmb3J3YXJkIHN0YXRlIHRhYmxlIGZvciBwYWlycyBvZiBjaGFyYWN0ZXIgY2F0ZWdvcmllcworICAgICAgICAgICAgLy8gdGhhdCBhbHdheXMgaGF2ZSBhIGJyZWFrIGJldHdlZW4gdGhlbS4gIFRoZSBhbGdvcml0aG0gaXMgYXMgZm9sbG93czoKKyAgICAgICAgICAgIC8vIExvb2sgZG93biBlYWNoIGNvbHVtbiBpbiB0aGUgc3RhdGUgdGFibGUuICBGb3IgZWFjaCBub256ZXJvIGNlbGwgaW4KKyAgICAgICAgICAgIC8vIHRoYXQgY29sdW1uLCBsb29rIHVwIHRoZSByb3cgaXQgcG9pbnRzIHRvLiAgRm9yIGVhY2ggbm9uemVybyBjZWxsIGluCisgICAgICAgICAgICAvLyB0aGF0IHJvdywgcG9wdWxhdGUgYSBjZWxsIGluIHRoZSBiYWNrd2FyZHMgc3RhdGUgdGFibGU6IHRoZSByb3cgbnVtYmVyCisgICAgICAgICAgICAvLyBvZiB0aGF0IGNlbGwgaXMgdGhlIG51bWJlciBvZiB0aGUgY29sdW1uIHdlIHdlcmUgc2Nhbm5pbmcgKHBsdXMgdGhlCisgICAgICAgICAgICAvLyBvZmZzZXQgdGhhdCBsb2NhdGVzIHRoaXMgc3ViLXRhYmxlKSwgYW5kIHRoZSBjb2x1bW4gbnVtYmVyIG9mIHRoYXQgY2VsbAorICAgICAgICAgICAgLy8gaXMgdGhlIGNvbHVtbiBudW1iZXIgb2YgdGhlIG5vbnplcm8gY2VsbCB3ZSBqdXN0IGZvdW5kLiAgVGhpcyBjZWxsIGlzCisgICAgICAgICAgICAvLyBwb3B1bGF0ZWQgd2l0aCBpdHMgb3duIGNvbHVtbiBudW1iZXIgKGFkanVzdGVkIGFjY29yZGluZyB0byB0aGUgYWN0dWFsCisgICAgICAgICAgICAvLyBsb2NhdGlvbiBvZiB0aGUgc3ViLXRhYmxlKS4gIFRoaXMgcHJvY2VzcyB3aWxsIHByb2R1Y2UgYSBzdGF0ZSB0YWJsZQorICAgICAgICAgICAgLy8gd2hvc2UgYmVoYXZpb3IgaXMgdGhlIHNhbWUgYXMgbG9va2luZyB1cCBzdWNjZXNzaXZlIHBhaXJzIG9mIGNoYXJhY3RlcnMKKyAgICAgICAgICAgIC8vIGluIGFuIGFycmF5IG9mIEJvb2xlYW5zIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZXJlIGlzIGEgYnJlYWsuCisgICAgICAgICAgICBpbnQgbnVtUm93cyA9IHN0YXRlVGFibGUubGVuZ3RoIC8gbnVtQ2F0ZWdvcmllczsKKyAgICAgICAgICAgIGZvciAoaW50IGNvbHVtbiA9IDA7IGNvbHVtbiA8IG51bUNhdGVnb3JpZXM7IGNvbHVtbisrKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgcm93ID0gMDsgcm93IDwgbnVtUm93czsgcm93KyspIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IG5leHRSb3cgPSBsb29rdXBTdGF0ZShyb3csIGNvbHVtbik7CisgICAgICAgICAgICAgICAgICAgIGlmIChuZXh0Um93ICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IG5leHRDb2x1bW4gPSAwOyBuZXh0Q29sdW1uIDwgbnVtQ2F0ZWdvcmllczsgbmV4dENvbHVtbisrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNlbGxWYWx1ZSA9IGxvb2t1cFN0YXRlKG5leHRSb3csIG5leHRDb2x1bW4pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjZWxsVmFsdWUgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IChzaG9ydFtdKXRlbXBTdGF0ZVRhYmxlLmVsZW1lbnRBdChuZXh0Q29sdW1uICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tUYWJsZU9mZnNldCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlW2NvbHVtbl0gPSAoc2hvcnQpKGNvbHVtbiArIGJhY2tUYWJsZU9mZnNldCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisvL2RlYnVnUHJpbnRUZW1wU3RhdGVUYWJsZSgpOworICAgICAgICAgICAgLy8gaWYgdGhlIHVzZXIgc3BlY2lmaWVkIHNvbWUgYmFja3dhcmQtaXRlcmF0aW9uIHJ1bGVzIHdpdGggdGhlICEgdG9rZW4sCisgICAgICAgICAgICAvLyB3ZSBoYXZlIHRvIG1lcmdlIHRoZSByZXN1bHRpbmcgc3RhdGUgdGFibGUgd2l0aCB0aGUgYXV0by1nZW5lcmF0ZWQgb25lCisgICAgICAgICAgICAvLyBhYm92ZS4gIEZpcnN0IGNvcHkgdGhlIHBvcHVsYXRlZCBjZWxscyBmcm9tIHJvdyAxIG92ZXIgdGhlIHBvcHVsYXRlZAorICAgICAgICAgICAgLy8gY2VsbHMgaW4gdGhlIGF1dG8tZ2VuZXJhdGVkIHRhYmxlLiAgVGhlbiBjb3B5IHZhbHVlcyBmcm9tIHJvdyAxIG9mIHRoZQorICAgICAgICAgICAgLy8gYXV0by1nZW5lcmF0ZWQgdGFibGUgaW50byBhbGwgb2YgdGhlIHRoZSB1bnBvcHVsYXRlZCBjZWxscyBvZiB0aGUKKyAgICAgICAgICAgIC8vIHJ1bGUtYmFzZWQgdGFibGUuCisgICAgICAgICAgICBpZiAoYmFja1RhYmxlT2Zmc2V0ID4gMSkgeworCisgICAgICAgICAgICAgICAgLy8gZm9yIGV2ZXJ5IHJvdyBpbiB0aGUgYXV0by1nZW5lcmF0ZWQgc3ViLXRhYmxlLCBpZiBhIGNlbGwgaXMKKyAgICAgICAgICAgICAgICAvLyBwb3B1bGF0ZWQgdGhhdCBpcyBhbHNvIHBvcHVsYXRlZCBpbiByb3cgMSBvZiB0aGUgcnVsZS1iYXNlZAorICAgICAgICAgICAgICAgIC8vIHN1Yi10YWJsZSwgY29weSB0aGUgdmFsdWUgZnJvbSByb3cgMSBvdmVyIHRoZSB2YWx1ZSBpbiB0aGUKKyAgICAgICAgICAgICAgICAvLyBhdXRvLWdlbmVyYXRlZCBzdWItdGFibGUKKyAgICAgICAgICAgICAgICBzdGF0ZSA9IChzaG9ydFtdKXRlbXBTdGF0ZVRhYmxlLmVsZW1lbnRBdCgxKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gYmFja1RhYmxlT2Zmc2V0IC0gMTsgaSA8IHRlbXBTdGF0ZVRhYmxlLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHNob3J0W10gc3RhdGUyID0gKHNob3J0W10pdGVtcFN0YXRlVGFibGUuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG51bUNhdGVnb3JpZXM7IGorKykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXRlW2pdICE9IDAgJiYgc3RhdGUyW2pdICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTJbal0gPSBzdGF0ZVtqXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIG5vdywgZm9yIGV2ZXJ5IHJvdyBpbiB0aGUgcnVsZS1iYXNlZCBzdWItdGFibGUgdGhhdCBpcyBub3QKKyAgICAgICAgICAgICAgICAvLyBhbiBlbmQgc3RhdGUsIGZpbGwgaW4gYWxsIHVucG9wdWxhdGVkIGNlbGxzIHdpdGggdGhlIHZhbHVlcworICAgICAgICAgICAgICAgIC8vIG9mIHRoZSBjb3JyZXNwb25kaW5nIGNlbGxzIGluIHRoZSBmaXJzdCByb3cgb2YgdGhlIGF1dG8tCisgICAgICAgICAgICAgICAgLy8gZ2VuZXJhdGVkIHN1Yi10YWJsZS4KKyAgICAgICAgICAgICAgICBzdGF0ZSA9IChzaG9ydFtdKXRlbXBTdGF0ZVRhYmxlLmVsZW1lbnRBdChiYWNrVGFibGVPZmZzZXQgLSAxKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IGJhY2tUYWJsZU9mZnNldCAtIDE7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBzaG9ydFtdIHN0YXRlMiA9IChzaG9ydFtdKXRlbXBTdGF0ZVRhYmxlLmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKChzdGF0ZTJbbnVtQ2F0ZWdvcmllc10gJiBFTkRfU1RBVEVfRkxBRykgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBudW1DYXRlZ29yaWVzOyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdGUyW2pdID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUyW2pdID0gc3RhdGVbal07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisvL2RlYnVnUHJpbnRUZW1wU3RhdGVUYWJsZSgpOworCisgICAgICAgICAgICAvLyBmaW5hbGx5LCBjbGVhbiBldmVyeXRoaW5nIHVwIGFuZCBjb3B5IGl0IGludG8gdGhlIGFjdHVhbCBCcmVha0l0ZXJhdG9yCisgICAgICAgICAgICAvLyBieSBjYWxsaW5nIGZpbmlzaEJ1aWxkaW5nU3RhdGVUYWJsZSgpCisgICAgICAgICAgICBmaW5pc2hCdWlsZGluZ1N0YXRlVGFibGUoZmFsc2UpOworLyoKK1N5c3RlbS5vdXQucHJpbnQoIkM6XHQiKTsKK2ZvciAoaW50IGkgPSAwOyBpIDwgbnVtQ2F0ZWdvcmllczsgaSsrKQorU3lzdGVtLm91dC5wcmludChJbnRlZ2VyLnRvU3RyaW5nKGkpICsgIlx0Iik7CitTeXN0ZW0ub3V0LnByaW50bG4oKTsgU3lzdGVtLm91dC5wcmludCgiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIpOworZm9yIChpbnQgaSA9IDA7IGkgPCBiYWNrd2FyZHNTdGF0ZVRhYmxlLmxlbmd0aDsgaSsrKSB7CitpZiAoaSAlIG51bUNhdGVnb3JpZXMgPT0gMCkgeworU3lzdGVtLm91dC5wcmludGxuKCk7CitTeXN0ZW0ub3V0LnByaW50KEludGVnZXIudG9TdHJpbmcoaSAvIG51bUNhdGVnb3JpZXMpICsgIjpcdCIpOworfQoraWYgKGJhY2t3YXJkc1N0YXRlVGFibGVbaV0gPT0gMCkgU3lzdGVtLm91dC5wcmludCgiLlx0Iik7IGVsc2UgU3lzdGVtLm91dC5wcmludChJbnRlZ2VyLnRvU3RyaW5nKGJhY2t3YXJkc1N0YXRlVGFibGVbaV0pICsgIlx0Iik7Cit9CitTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyovCisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogVGhyb3dzIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiByZXByZXNlbnRpbmcgYSBzeW50YXggZXJyb3IgaW4gdGhlIHJ1bGUKKyAgICAgICAgICogZGVzY3JpcHRpb24uICBUaGUgZXhjZXB0aW9uJ3MgbWVzc2FnZSBjb250YWlucyBzb21lIGRlYnVnZ2luZyBpbmZvcm1hdGlvbi4KKyAgICAgICAgICogQHBhcmFtIG1lc3NhZ2UgQSBtZXNzYWdlIGRlc2NyaWJpbmcgdGhlIHByb2JsZW0KKyAgICAgICAgICogQHBhcmFtIHBvc2l0aW9uIFRoZSBwb3NpdGlvbiBpbiB0aGUgZGVzY3JpcHRpb24gd2hlcmUgdGhlIHByb2JsZW0gd2FzCisgICAgICAgICAqIGRpc2NvdmVyZWQKKyAgICAgICAgICogQHBhcmFtIGNvbnRleHQgVGhlIHN0cmluZyBjb250YWluaW5nIHRoZSBlcnJvcgorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgZXJyb3IoU3RyaW5nIG1lc3NhZ2UsIGludCBwb3NpdGlvbiwgU3RyaW5nIGNvbnRleHQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlBhcnNlIGVycm9yOiAiICsgbWVzc2FnZSArICJcbiIgKworICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmVzY2FwZShjb250ZXh0LnN1YnN0cmluZygwLCBwb3NpdGlvbikpICsgIlxuXG4iICsKKyAgICAgICAgICAgICAgICAgICAgVXRpbGl0eS5lc2NhcGUoY29udGV4dC5zdWJzdHJpbmcocG9zaXRpb24pKSk7CisgICAgICAgIH0KKworCS8vL0NMT1ZFUjpPRkYKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgZGVidWdQcmludFZlY3RvcihTdHJpbmcgbGFiZWwsIFZlY3RvciB2KSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KGxhYmVsKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdi5zaXplKCk7IGkrKykKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KHYuZWxlbWVudEF0KGkpLnRvU3RyaW5nKCkgKyAiXHQiKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgZGVidWdQcmludFZlY3Rvck9mVmVjdG9ycyhTdHJpbmcgbGFiZWwxLCBTdHJpbmcgbGFiZWwyLCBWZWN0b3IgdikgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGxhYmVsMSk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHYuc2l6ZSgpOyBpKyspCisgICAgICAgICAgICAgICAgZGVidWdQcmludFZlY3RvcihsYWJlbDIsIChWZWN0b3Ipdi5lbGVtZW50QXQoaSkpOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgZGVidWdQcmludFRlbXBTdGF0ZVRhYmxlKCkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgICAgICB0ZW1wU3RhdGVUYWJsZToiKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAgICAgICAgQzpcdCIpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gbnVtQ2F0ZWdvcmllczsgaSsrKQorICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoSW50ZWdlci50b1N0cmluZyhpKSArICJcdCIpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IHRlbXBTdGF0ZVRhYmxlLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgc2hvcnRbXSByb3cgPSAoc2hvcnRbXSkodGVtcFN0YXRlVGFibGUuZWxlbWVudEF0KGkpKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgICAgICAgICIgKyBpICsgIjpcdCIpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgcm93Lmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChyb3dbal0gPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiLlx0Iik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KEludGVnZXIudG9TdHJpbmcocm93W2pdKSArICJcdCIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisKKyAgICAvKgorICAgICAqIFRoaXMgY2xhc3MgZXhpc3RzIHRvIHdvcmsgYXJvdW5kIGEgYnVnIGluIEhvdEphdmEncyBpbXBsZW1lbnRhdGlvbgorICAgICAqIG9mIENoYXJhY3Rlckl0ZXJhdG9yLCB3aGljaCBpbmNvcnJlY3RseSBoYW5kbGVzIHNldEluZGV4KGVuZEluZGV4KS4KKyAgICAgKiBUaGlzIGl0ZXJhdG9yIHJlbGllcyBvbmx5IG9uIGJhc2Uuc2V0SW5kZXgobikgd2hlcmUgbiBpcyBsZXNzIHRoYW4KKyAgICAgKiBlbmRJbmRleC4KKyAgICAgKgorICAgICAqIE9uZSBjYXZlYXQ6ICBpZiB0aGUgYmFzZSBpdGVyYXRvcidzIGJlZ2luIGFuZCBlbmQgaW5kaWNlcyBjaGFuZ2UKKyAgICAgKiB0aGUgY2hhbmdlIHdpbGwgbm90IGJlIHJlZmxlY3RlZCBieSB0aGlzIHdyYXBwZXIuICBEb2VzIHRoYXQgbWF0dGVyPworICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAvLyBPbmx5IHVzZWQgZm9yIEhvdEphdmEsIHNvIGNsb3ZlciB3b24ndCBlbmNvdW50ZXIgaXQKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBTYWZlQ2hhckl0ZXJhdG9yIGltcGxlbWVudHMgQ2hhcmFjdGVySXRlcmF0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsb25lYWJsZSB7CisKKyAgICAgICAgcHJpdmF0ZSBDaGFyYWN0ZXJJdGVyYXRvciBiYXNlOworICAgICAgICBwcml2YXRlIGludCByYW5nZVN0YXJ0OworICAgICAgICBwcml2YXRlIGludCByYW5nZUxpbWl0OworICAgICAgICBwcml2YXRlIGludCBjdXJyZW50SW5kZXg7CisKKyAgICAgICAgU2FmZUNoYXJJdGVyYXRvcihDaGFyYWN0ZXJJdGVyYXRvciBiYXNlKSB7CisgICAgICAgICAgICB0aGlzLmJhc2UgPSBiYXNlOworICAgICAgICAgICAgdGhpcy5yYW5nZVN0YXJ0ID0gYmFzZS5nZXRCZWdpbkluZGV4KCk7CisgICAgICAgICAgICB0aGlzLnJhbmdlTGltaXQgPSBiYXNlLmdldEVuZEluZGV4KCk7CisgICAgICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IGJhc2UuZ2V0SW5kZXgoKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBjaGFyIGZpcnN0KCkgeworICAgICAgICAgICAgcmV0dXJuIHNldEluZGV4KHJhbmdlU3RhcnQpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGNoYXIgbGFzdCgpIHsKKyAgICAgICAgICAgIHJldHVybiBzZXRJbmRleChyYW5nZUxpbWl0IC0gMSk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgY2hhciBjdXJyZW50KCkgeworICAgICAgICAgICAgaWYgKGN1cnJlbnRJbmRleCA8IHJhbmdlU3RhcnQgfHwgY3VycmVudEluZGV4ID49IHJhbmdlTGltaXQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gRE9ORTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBiYXNlLnNldEluZGV4KGN1cnJlbnRJbmRleCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgY2hhciBuZXh0KCkgeworCisgICAgICAgICAgICBjdXJyZW50SW5kZXgrKzsKKyAgICAgICAgICAgIGlmIChjdXJyZW50SW5kZXggPj0gcmFuZ2VMaW1pdCkgeworICAgICAgICAgICAgICAgIGN1cnJlbnRJbmRleCA9IHJhbmdlTGltaXQ7CisgICAgICAgICAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gYmFzZS5zZXRJbmRleChjdXJyZW50SW5kZXgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGNoYXIgcHJldmlvdXMoKSB7CisKKyAgICAgICAgICAgIGN1cnJlbnRJbmRleC0tOworICAgICAgICAgICAgaWYgKGN1cnJlbnRJbmRleCA8IHJhbmdlU3RhcnQpIHsKKyAgICAgICAgICAgICAgICBjdXJyZW50SW5kZXggPSByYW5nZVN0YXJ0OworICAgICAgICAgICAgICAgIHJldHVybiBET05FOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGJhc2Uuc2V0SW5kZXgoY3VycmVudEluZGV4KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBjaGFyIHNldEluZGV4KGludCBpKSB7CisKKyAgICAgICAgICAgIGlmIChpIDwgcmFuZ2VTdGFydCB8fCBpID4gcmFuZ2VMaW1pdCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgcG9zaXRpb24iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGN1cnJlbnRJbmRleCA9IGk7CisgICAgICAgICAgICByZXR1cm4gY3VycmVudCgpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBnZXRCZWdpbkluZGV4KCkgeworICAgICAgICAgICAgcmV0dXJuIHJhbmdlU3RhcnQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGdldEVuZEluZGV4KCkgeworICAgICAgICAgICAgcmV0dXJuIHJhbmdlTGltaXQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGdldEluZGV4KCkgeworICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRJbmRleDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKSB7CisKKyAgICAgICAgICAgIFNhZmVDaGFySXRlcmF0b3IgY29weSA9IG51bGw7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGNvcHkgPSAoU2FmZUNoYXJJdGVyYXRvcikgc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNsb25lIG5vdCBzdXBwb3J0ZWQ6ICIgKyBlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgQ2hhcmFjdGVySXRlcmF0b3IgY29weU9mQmFzZSA9IChDaGFyYWN0ZXJJdGVyYXRvcikgYmFzZS5jbG9uZSgpOworICAgICAgICAgICAgY29weS5iYXNlID0gY29weU9mQmFzZTsKKyAgICAgICAgICAgIHJldHVybiBjb3B5OworICAgICAgICB9CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBkZWJ1Z1ByaW50bG4oU3RyaW5nIHMpIHsKKyAgICAgICAgZmluYWwgU3RyaW5nIHplcm9zID0gIjAwMDAiOworICAgICAgICBTdHJpbmcgdGVtcDsKKyAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IHMuY2hhckF0KGkpOworICAgICAgICAgICAgaWYgKGMgPj0gJyAnICYmIGMgPCAnXHUwMDdmJykgeworICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoYyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKCJcXHUiKTsKKyAgICAgICAgICAgICAgICB0ZW1wID0gSW50ZWdlci50b0hleFN0cmluZygoaW50KWMpOworICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoemVyb3Muc3Vic3RyaW5nKDAsIDQgLSB0ZW1wLmxlbmd0aCgpKSk7CisgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCh0ZW1wKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ob3V0KTsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1J1bGVCYXNlZENvbGxhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9SdWxlQmFzZWRDb2xsYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNhY2ViNzUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9SdWxlQmFzZWRDb2xsYXRvci5qYXZhCkBAIC0wLDAgKzEsMzM5NiBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS90ZXh0L1J1bGVCYXNlZENvbGxhdG9yLmphdmEsdiAkIAorKiAkRGF0ZTogMjAwMi8wOC8wOCAyMzozNzo1MyAkIAorKiAkUmV2aXNpb246IDEuMTcgJAorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5CdWZmZXJlZElucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uQnl0ZUFycmF5SW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkludFRyaWU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5UcmllOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlRGF0YTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkJPQ1U7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCisvKioKKyAqIDxwPlJ1bGVCYXNlZENvbGxhdG9yIGlzIGEgY29uY3JldGUgc3ViY2xhc3Mgb2YgQ29sbGF0b3IuIEl0IGFsbG93cworICogY3VzdG9taXphdGlvbiBvZiB0aGUgQ29sbGF0b3IgdmlhIHVzZXItc3BlY2lmaWVkIHJ1bGUgc2V0cy4KKyAqIFJ1bGVCYXNlZENvbGxhdG9yIGlzIGRlc2lnbmVkIHRvIGJlIGZ1bGx5IGNvbXBsaWFudCB0byB0aGUgPGEKKyAqIGhyZWY9Imh0dHA6Ly93d3cudW5pY29kZS5vcmcvdW5pY29kZS9yZXBvcnRzL3RyMTAvIj4gVW5pY29kZQorICogQ29sbGF0aW9uIEFsZ29yaXRobSAoVUNBKTwvYT4gYW5kIGNvbmZvcm1zIHRvIElTTyAxNDY1MS48L3A+CisgKgorICogPHA+VXNlcnMgYXJlIHN0cm9uZ2x5IGVuY291cmFnZWQgdG8gcmVhZCA8YQorICogaHJlZj0iaHR0cDovL29zcy5zb2Z0d2FyZS5pYm0uY29tL2ljdS91c2VyZ3VpZGUvQ29sbGF0ZV9JbnRyby5odG1sIj4KKyAqIHRoZSB1c2VycyBndWlkZTwvYT4gZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvbGxhdGlvbgorICogc2VydmljZSBiZWZvcmUgdXNpbmcgdGhpcyBjbGFzcy48L3A+CisgKgorICogPHA+Q3JlYXRlIGEgUnVsZUJhc2VkQ29sbGF0b3IgZnJvbSBhIGxvY2FsZSBieSBjYWxsaW5nIHRoZQorICogZ2V0SW5zdGFuY2UoTG9jYWxlKSBmYWN0b3J5IG1ldGhvZCBpbiB0aGUgYmFzZSBjbGFzcyBDb2xsYXRvci4KKyAqIENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZSkgY3JlYXRlcyBhIFJ1bGVCYXNlZENvbGxhdG9yIG9iamVjdAorICogYmFzZWQgb24gdGhlIGNvbGxhdGlvbiBydWxlcyBkZWZpbmVkIGJ5IHRoZSBhcmd1bWVudCBsb2NhbGUuICBJZiBhCisgKiBjdXN0b21pemVkIGNvbGxhdGlvbiBvcmRlcmluZyBhciBhdHRyaWJ1dGVzIGlzIHJlcXVpcmVkLCB1c2UgdGhlCisgKiBSdWxlQmFzZWRDb2xsYXRvcihTdHJpbmcpIGNvbnN0cnVjdG9yIHdpdGggdGhlIGFwcHJvcHJpYXRlCisgKiBydWxlcy4gVGhlIGN1c3RvbWl6ZWQgUnVsZUJhc2VkQ29sbGF0b3Igd2lsbCBiYXNlIGl0cyBvcmRlcmluZyBvbgorICogVUNBLCB3aGlsZSByZS1hZGp1c3RpbmcgdGhlIGF0dHJpYnV0ZXMgYW5kIG9yZGVycyBvZiB0aGUgY2hhcmFjdGVycworICogaW4gdGhlIHNwZWNpZmllZCBydWxlIGFjY29yZGluZ2x5LjwvcD4KKyAqCisgKiA8cD5SdWxlQmFzZWRDb2xsYXRvciBwcm92aWRlcyBjb3JyZWN0IGNvbGxhdGlvbiBvcmRlcnMgZm9yIG1vc3QKKyAqIGxvY2FsZXMgc3VwcG9ydGVkIGluIElDVS4gSWYgc3BlY2lmaWMgZGF0YSBmb3IgYSBsb2NhbGUgaXMgbm90CisgKiBhdmFpbGFibGUsIHRoZSBvcmRlcnMgZXZlbnR1YWxseSBmYWxscyBiYWNrIHRvIHRoZSA8YQorICogaHJlZj0iaHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHIxMC8iPlVDQSBjb2xsYXRpb24KKyAqIG9yZGVyIDwvYT4uPC9wPgorICoKKyAqIDxwPkZvciBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29sbGF0aW9uIHJ1bGUgc3ludGF4IGFuZCBkZXRhaWxzCisgKiBhYm91dCBjdXN0b21pemF0aW9uLCBwbGVhc2UgcmVmZXIgdG8gdGhlCisgKiA8YSBocmVmPSJodHRwOi8vb3NzLnNvZnR3YXJlLmlibS5jb20vaWN1L3VzZXJndWlkZS9Db2xsYXRlX0N1c3RvbWl6YXRpb24uaHRtbCI+CisgKiBDb2xsYXRpb24gY3VzdG9taXphdGlvbjwvYT4gc2VjdGlvbiBvZiB0aGUgdXNlcidzIGd1aWRlLjwvcD4KKyAqCisgKiA8cD48c3Ryb25nPk5vdGU8L3N0cm9uZz4gdGhhdCB0aGVyZSBhcmUgc29tZSBkaWZmZXJlbmNlcyBiZXR3ZWVuCisgKiB0aGUgQ29sbGF0aW9uIHJ1bGUgc3ludGF4IHVzZWQgaW4gSmF2YSBhbmQgSUNVNEo6CisgKgorICogPHVsPgorICogPGxpPkFjY29yZGluZyB0byB0aGUgSkRLIGRvY3VtZW50YXRpb246CisgKiA8aT4KKyAqIDxwPgorICogTW9kaWZpZXIgJyEnIDogVHVybnMgb24gVGhhaS9MYW8gdm93ZWwtY29uc29uYW50IHN3YXBwaW5nLiBJZiB0aGlzIHJ1bGUgCisgKiBpcyBpbiBmb3JjZSB3aGVuIGEgVGhhaSB2b3dlbCBvZiB0aGUgcmFuZ2UgJiM5MjtVMEU0MC0mIzkyO1UwRTQ0IHByZWNlZGVzIGEgCisgKiBUaGFpIGNvbnNvbmFudCBvZiB0aGUgcmFuZ2UgJiM5MjtVMEUwMS0mIzkyO1UwRTJFIE9SIGEgTGFvIHZvd2VsIG9mIHRoZSAKKyAqIHJhbmdlICYjOTI7VTBFQzAtJiM5MjtVMEVDNCBwcmVjZWRlcyBhIExhbyBjb25zb25hbnQgb2YgdGhlIHJhbmdlIAorICogJiM5MjtVMEU4MS0mIzkyO1UwRUFFIHRoZW4gdGhlIAorICogdm93ZWwgaXMgcGxhY2VkIGFmdGVyIHRoZSBjb25zb25hbnQgZm9yIGNvbGxhdGlvbiBwdXJwb3Nlcy4gCisgKiA8L3A+CisgKiA8cD4KKyAqIElmIGEgcnVsZSBpcyB3aXRob3V0IHRoZSBtb2RpZmllciAnIScsIHRoZSBUaGFpL0xhbyB2b3dlbC1jb25zb25hbnQgCisgKiBzd2FwcGluZyBpcyBub3QgdHVybmVkIG9uLgorICogPC9wPgorICogPC9pPgorICogPHA+CisgKiBJQ1U0SidzIFJ1bGVCYXNlZENvbGxhdG9yIGRvZXMgbm90IHN1cHBvcnQgdHVybmluZyBvZmYgdGhlIFRoYWkvTGFvIAorICogdm93ZWwtY29uc29uYW50IHN3YXBwaW5nLCBzaW5jZSB0aGUgVUNBIGNsZWFybHkgc3RhdGVzIHRoYXQgaXQgaGFzIHRvIGJlIAorICogc3VwcG9ydGVkIHRvIGVuc3VyZSBhIGNvcnJlY3Qgc29ydGluZyBvcmRlci4gSWYgYSAnIScgaXMgZW5jb3VudGVyZWQsIGl0IGlzCisgKiBpZ25vcmVkLgorICogPC9wPgorICogPGxpPkFzIG1lbnRpb25lZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgYmFzZSBjbGFzcyBDb2xsYXRvciwgCisgKiAgICAgY29tcGF0aWJpbGl0eSBkZWNvbXBvc2l0aW9uIG1vZGUgaXMgbm90IHN1cHBvcnRlZC4KKyAqIDwvdWw+CisgKiA8cD4KKyAqIDxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz4KKyAqIDwvcD4KKyAqIDxwPgorICogQ3JlYXRpbmcgQ3VzdG9taXplZCBSdWxlQmFzZWRDb2xsYXRvcnM6CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBTdHJpbmcgc2ltcGxlID0gIiZhbXA7IGEgJmx0OyBiICZsdDsgYyAmbHQ7IGQiOworICogUnVsZUJhc2VkQ29sbGF0b3Igc2ltcGxlQ29sbGF0b3IgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3Ioc2ltcGxlKTsKKyAqIAorICogU3RyaW5nIG5vcndlZ2lhbiA9ICImYW1wOyBhICwgQSAmbHQ7IGIgLCBCICZsdDsgYyAsIEMgJmx0OyBkICwgRCAmbHQ7IGUgLCBFICIKKyAqICAgICAgICAgICAgICAgICAgICArICImbHQ7IGYgLCBGICZsdDsgZyAsIEcgJmx0OyBoICwgSCAmbHQ7IGkgLCBJICZsdDsgaiAsICIKKyAqICAgICAgICAgICAgICAgICAgICArICJKICZsdDsgayAsIEsgJmx0OyBsICwgTCAmbHQ7IG0gLCBNICZsdDsgbiAsIE4gJmx0OyAiCisgKiAgICAgICAgICAgICAgICAgICAgKyAibyAsIE8gJmx0OyBwICwgUCAmbHQ7IHEgLCBRICZsdCByICwgUiAmbHQgcyAsIFMgJmx0OyAiCisgKiAgICAgICAgICAgICAgICAgICAgKyAidCAsIFQgJmx0OyB1ICwgVSAmbHQ7IHYgLCBWICZsdDsgdyAsIFcgJmx0OyB4ICwgWCAiCisgKiAgICAgICAgICAgICAgICAgICAgKyAiJmx0OyB5ICwgWSAmbHQ7IHogLCBaICZsdDsgJiM5Mjt1MDBFNSA9IGEmIzkyO3UwMzBBICIKKyAqICAgICAgICAgICAgICAgICAgICArICIsICYjOTI7dTAwQzUgPSBBJiM5Mjt1MDMwQSA7IGFhICwgQUEgJmx0OyAmIzkyO3UwMEU2ICIKKyAqICAgICAgICAgICAgICAgICAgICArICIsICYjOTI7dTAwQzYgJmx0OyAmIzkyO3UwMEY4ICwgJiM5Mjt1MDBEOCI7CisgKiBSdWxlQmFzZWRDb2xsYXRvciBub3J3ZWdpYW5Db2xsYXRvciA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihub3J3ZWdpYW4pOworICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogQ29uY2F0ZW5hdGluZyBydWxlcyB0byBjb21iaW5lIDxjb2RlPkNvbGxhdG9yPC9jb2RlPnM6CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiAvLyBDcmVhdGUgYW4gZW5fVVMgQ29sbGF0b3Igb2JqZWN0CisgKiBSdWxlQmFzZWRDb2xsYXRvciBlbl9VU0NvbGxhdG9yID0gKFJ1bGVCYXNlZENvbGxhdG9yKQorICogICAgIENvbGxhdG9yLmdldEluc3RhbmNlKG5ldyBMb2NhbGUoImVuIiwgIlVTIiwgIiIpKTsKKyAqIC8vIENyZWF0ZSBhIGRhX0RLIENvbGxhdG9yIG9iamVjdAorICogUnVsZUJhc2VkQ29sbGF0b3IgZGFfREtDb2xsYXRvciA9IChSdWxlQmFzZWRDb2xsYXRvcikKKyAqICAgICBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJkYSIsICJESyIsICIiKSk7CisgKiAvLyBDb21iaW5lIHRoZSB0d28KKyAqIC8vIEZpcnN0LCBnZXQgdGhlIGNvbGxhdGlvbiBydWxlcyBmcm9tIGVuX1VTQ29sbGF0b3IKKyAqIFN0cmluZyBlbl9VU1J1bGVzID0gZW5fVVNDb2xsYXRvci5nZXRSdWxlcygpOworICogLy8gU2Vjb25kLCBnZXQgdGhlIGNvbGxhdGlvbiBydWxlcyBmcm9tIGRhX0RLQ29sbGF0b3IKKyAqIFN0cmluZyBkYV9ES1J1bGVzID0gZGFfREtDb2xsYXRvci5nZXRSdWxlcygpOworICogUnVsZUJhc2VkQ29sbGF0b3IgbmV3Q29sbGF0b3IgPQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBSdWxlQmFzZWRDb2xsYXRvcihlbl9VU1J1bGVzICsgZGFfREtSdWxlcyk7CisgKiAvLyBuZXdDb2xsYXRvciBoYXMgdGhlIGNvbWJpbmVkIHJ1bGVzCisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiBNYWtpbmcgY2hhbmdlcyB0byBhbiBleGlzdGluZyBSdWxlQmFzZWRDb2xsYXRvciB0byBjcmVhdGUgYSBuZXcgCisgKiA8Y29kZT5Db2xsYXRvcjwvY29kZT4gb2JqZWN0LCBieSBhcHBlbmRpbmcgY2hhbmdlcyB0byB0aGUgZXhpc3RpbmcgcnVsZToKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIC8vIENyZWF0ZSBhIG5ldyBDb2xsYXRvciBvYmplY3Qgd2l0aCBhZGRpdGlvbmFsIHJ1bGVzCisgKiBTdHJpbmcgYWRkUnVsZXMgPSAiJmFtcDsgQyAmbHQ7IGNoLCBjSCwgQ2gsIENIIjsKKyAqIFJ1bGVCYXNlZENvbGxhdG9yIG15Q29sbGF0b3IgPQorICogICAgIG5ldyBSdWxlQmFzZWRDb2xsYXRvcihlbl9VU0NvbGxhdG9yICsgYWRkUnVsZXMpOworICogLy8gbXlDb2xsYXRvciBjb250YWlucyB0aGUgbmV3IHJ1bGVzCisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiBIb3cgdG8gY2hhbmdlIHRoZSBvcmRlciBvZiBub24tc3BhY2luZyBhY2NlbnRzOgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogLy8gb2xkIHJ1bGUgd2l0aCBtYWluIGFjY2VudHMKKyAqIFN0cmluZyBvbGRSdWxlcyA9ICI9ICYjOTI7dTAzMDEgOyAmIzkyO3UwMzAwIDsgJiM5Mjt1MDMwMiA7ICYjOTI7dTAzMDggIiAgICAKKyAqICAgICAgICAgICAgICAgICArICI7ICYjOTI7dTAzMjcgOyAmIzkyO3UwMzAzIDsgJiM5Mjt1MDMwNCA7ICYjOTI7dTAzMDUgIgorICogICAgICAgICAgICAgICAgICsgIjsgJiM5Mjt1MDMwNiA7ICYjOTI7dTAzMDcgOyAmIzkyO3UwMzA5IDsgJiM5Mjt1MDMwQSAiIAorICogICAgICAgICAgICAgICAgICsgIjsgJiM5Mjt1MDMwQiA7ICYjOTI7dTAzMEMgOyAmIzkyO3UwMzBEIDsgJiM5Mjt1MDMwRSAiCisgKiAgICAgICAgICAgICAgICAgKyAiOyAmIzkyO3UwMzBGIDsgJiM5Mjt1MDMxMCA7ICYjOTI7dTAzMTEgOyAmIzkyO3UwMzEyICIKKyAqICAgICAgICAgICAgICAgICArICImbHQ7IGEgLCBBIDsgYWUsIEFFIDsgJiM5Mjt1MDBlNiAsICYjOTI7dTAwYzYgIgorICogICAgICAgICAgICAgICAgICsgIiZsdDsgYiAsIEIgJmx0OyBjLCBDICZsdDsgZSwgRSAmYW1wOyBDICZsdDsgZCAsIEQiOworICogLy8gY2hhbmdlIHRoZSBvcmRlciBvZiBhY2NlbnQgY2hhcmFjdGVycworICogU3RyaW5nIGFkZE9uID0gIiZhbXA7ICYjOTI7dTAzMDAgOyAmIzkyO3UwMzA4IDsgJiM5Mjt1MDMwMiI7CisgKiBSdWxlQmFzZWRDb2xsYXRvciBteUNvbGxhdG9yID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKG9sZFJ1bGVzICsgYWRkT24pOworICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogUHV0dGluZyBpbiBhIG5ldyBwcmltYXJ5IG9yZGVyaW5nIGJlZm9yZSB0aGUgZGVmYXVsdCBzZXR0aW5nLCAKKyAqIGUuZy4gc29ydCBFbmdsaXNoIGNoYXJhY3RlcnMgYmVmb3JlIG9yIGFmdGVyIEphcGFuZXNlIGNoYXJhY3RlcnMgaW4gdGhlIEphcGFuZXNlIAorICogPGNvZGU+Q29sbGF0b3I8L2NvZGU+OgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogLy8gZ2V0IGVuX1VTIENvbGxhdG9yIHJ1bGVzCisgKiBSdWxlQmFzZWRDb2xsYXRvciBlbl9VU0NvbGxhdG9yIAorICogICAgICAgICAgICAgICAgICAgICAgICA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICogLy8gYWRkIGEgZmV3IEphcGFuZXNlIGNoYXJhY3RlcnMgdG8gc29ydCBiZWZvcmUgRW5nbGlzaCBjaGFyYWN0ZXJzCisgKiAvLyBzdXBwb3NlIHRoZSBsYXN0IGNoYXJhY3RlciBiZWZvcmUgdGhlIGZpcnN0IGJhc2UgbGV0dGVyICdhJyBpbgorICogLy8gdGhlIEVuZ2xpc2ggY29sbGF0aW9uIHJ1bGUgaXMgJiM5Mjt1MjIxMgorICogU3RyaW5nIGphU3RyaW5nID0gIiYgJiM5Mjt1MjIxMiAmbHQgJiM5Mjt1MzA0MSwgJiM5Mjt1MzA0MiAmbHQgJiM5Mjt1MzA0MywgIgorICogICAgICAgICAgICAgICAgICAgKyAiJiM5Mjt1MzA0NCI7CisgKiBSdWxlQmFzZWRDb2xsYXRvciBteUphcGFuZXNlQ29sbGF0b3IgCisgKiAgICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IoZW5fVVNDb2xsYXRvci5nZXRSdWxlcygpICsgamFTdHJpbmcpOworICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKiA8L3A+CisgKiBAYXV0aG9yIFN5biBXZWUgUXVlaworICogQHNpbmNlIHJlbGVhc2UgMi4yLCBBcHJpbCAxOCAyMDAyCisgKiBAZHJhZnQgMi4yCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBSdWxlQmFzZWRDb2xsYXRvciBleHRlbmRzIENvbGxhdG9yIAoreyAgIAorCS8vIHB1YmxpYyBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisJCisJLy8gcHVibGljIGNvbnN0cnVjdG9ycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwkKKwkvKioKKyAgICAgKiA8cD4KKyAgICAgKiBDb25zdHJ1Y3RvciB0aGF0IHRha2VzIHRoZSBhcmd1bWVudCBydWxlcyBmb3IgCisgICAgICogY3VzdG9taXphdGlvbi4gVGhlIGNvbGxhdG9yIHdpbGwgYmUgYmFzZWQgb24gVUNBLCAKKyAgICAgKiB3aXRoIHRoZSBhdHRyaWJ1dGVzIGFuZCByZS1vcmRlcmluZyBvZiB0aGUgY2hhcmFjdGVycyBzcGVjaWZpZWQgaW4gdGhlIAorICAgICAqIGFyZ3VtZW50IHJ1bGVzLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD5TZWUgdGhlIHVzZXIgZ3VpZGUncyBzZWN0aW9uIG9uIAorICAgICAqIDxhIGhyZWY9aHR0cDovL29zcy5zb2Z0d2FyZS5pYm0uY29tL2ljdS91c2VyZ3VpZGUvQ29sbGF0ZV9DdXN0b21pemF0aW9uLmh0bWw+CisgICAgICogQ29sbGF0aW9uIEN1c3RvbWl6YXRpb248L2E+IGZvciBkZXRhaWxzIG9uIHRoZSBydWxlIHN5bnRheC4KKyAgICAgKiA8L3A+CisgICAgICogQHBhcmFtIHJ1bGVzIHRoZSBjb2xsYXRpb24gcnVsZXMgdG8gYnVpbGQgdGhlIGNvbGxhdGlvbiB0YWJsZSBmcm9tLgorICAgICAqIEBleGNlcHRpb24gUGFyc2VFeGNlcHRpb24gYW5kIElPRXhjZXB0aW9uIHRocm93bi4gUGFyc2VFeGNlcHRpb24gdGhyb3duIAorICAgICAqICAgICAgICAgICAgd2hlbiBhcmd1bWVudCBydWxlcyBoYXZlIGFuIGludmFsaWQgc3ludGF4LiBJT0V4Y2VwdGlvbiAKKyAgICAgKiAgICAgICAgICAgIHRocm93biB3aGVuIGFuIGVycm9yIG9jY3VyZWQgd2hpbGUgcmVhZGluZyBpbnRlcm5hbCBkYXRhLgorICAgICAqIEBkcmFmdCAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgUnVsZUJhc2VkQ29sbGF0b3IoU3RyaW5nIHJ1bGVzKSB0aHJvd3MgRXhjZXB0aW9uCisgICAgeworICAgICAgICBpZiAocnVsZXMgPT0gbnVsbCB8fCBydWxlcy5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ29sbGF0aW9uIHJ1bGVzIGNhbiBub3QgYmUgbnVsbCIpOworICAgICAgICB9CisgICAgCXNldFdpdGhVQ0FEYXRhKCk7CisgICAgICAgIENvbGxhdGlvblBhcnNlZFJ1bGVCdWlsZGVyIGJ1aWxkZXIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IG5ldyBDb2xsYXRpb25QYXJzZWRSdWxlQnVpbGRlcihydWxlcyk7CisJICAgIAorCQlidWlsZGVyLnNldFJ1bGVzKHRoaXMpOworICAgICAgICBtX3J1bGVzXyA9IHJ1bGVzOworICAgICAgICBpbml0KCk7CisgICAgICAgIGluaXRVdGlsaXR5KCk7CisgICAgfQorICAgIAorCS8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogQ2xvbmVzIHRoZSBSdWxlQmFzZWRDb2xsYXRvcgorICAgICAqIEByZXR1cm4gYSBuZXcgaW5zdGFuY2Ugb2YgdGhpcyBSdWxlQmFzZWRDb2xsYXRvciBvYmplY3QKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgdGhyb3dzIENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uCisgICAgeworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciByZXN1bHQgPSAoUnVsZUJhc2VkQ29sbGF0b3Ipc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgLy8gc2luY2UgYWxsIGNvbGxhdGlvbiBkYXRhIGluIHRoZSBSdWxlQmFzZWRDb2xsYXRvciBkbyBub3QgY2hhbmdlCisgICAgICAgIC8vIHdlIGNhbiBzYWZlbHkgYXNzaWduIHRoZSByZXN1bHQuZmllbGRzIHRvIHRoaXMgY29sbGF0b3IKKyAgICAgICAgcmVzdWx0LmluaXRVdGlsaXR5KCk7IC8vIGxldCB0aGUgbmV3IGNsb25lIGhhdmUgdGhlaXIgb3duIHV0aWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGl0ZXJhdG9ycworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgZm9yIHRoZSBnaXZlbiBTdHJpbmcuCisgICAgICogQHNlZSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IKKyAgICAgKiBAZHJhZnQgMi4yCisgICAgICovCisgICAgcHVibGljIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBnZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoU3RyaW5nIHNvdXJjZSkgCisgICAgeworICAgICAgICByZXR1cm4gbmV3IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihzb3VyY2UsIHRoaXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBmb3IgdGhlIGdpdmVuIENoYXJhY3Rlckl0ZXJhdG9yLgorICAgICAqIFRoZSBzb3VyY2UgaXRlcmF0b3IncyBpbnRlZ3JpdHkgd2lsbCBiZSBwcmVzZXJ2ZWQgc2luY2UgYSBuZXcgY29weSAKKyAgICAgKiB3aWxsIGJlIGNyZWF0ZWQgZm9yIHVzZS4KKyAgICAgKiBAc2VlIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcgorICAgICAqIEBkcmFmdCAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIHNvdXJjZSkgCisgICAgewkKKyAgICAgCUNoYXJhY3Rlckl0ZXJhdG9yIG5ld3NvdXJjZSA9IChDaGFyYWN0ZXJJdGVyYXRvcilzb3VyY2UuY2xvbmUoKTsgICAKKyAgICAgICAgcmV0dXJuIG5ldyBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IobmV3c291cmNlLCB0aGlzKTsKKyAgICB9CisgICAgCisgICAgLy8gcHVibGljIHNldHRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKwkgKiBTZXRzIHRoZSBIaXJhZ2FuYSBRdWF0ZXJuYXJ5IG1vZGUgdG8gYmUgb24gb3Igb2ZmLgorICAgICAqIFdoZW4gdGhlIEhpcmFnYW5hIFF1YXRlcm5hcnkgbW9kZSBpcyB0dXJuZWQgb24sIHRoZSBjb2xsYXRvciAKKwkgKiBwb3NpdGlvbnMgSGlyYWdhbmEgY2hhcmFjdGVycyBiZWZvcmUgYWxsIG5vbi1pZ25vcmFibGUgY2hhcmFjdGVycyBpbiAKKwkgKiBRVUFURVJOQVJZIHN0cmVuZ3RoLiBUaGlzIGlzIHRvIHByb2R1Y2UgYSBjb3JyZWN0IEpJUyBjb2xsYXRpb24gb3JkZXIsCisJICogZGlzdGluZ3Vpc2hpbmcgYmV0d2VlbiBLYXRha2FuYSAgYW5kIEhpcmFnYW5hIGNoYXJhY3RlcnMuIAorCSAqIEBwYXJhbSBmbGFnIHRydWUgaWYgSGlyYWdhbmEgUXVhdGVybmFyeSBtb2RlIGlzIHRvIGJlIG9uLCBmYWxzZSAKKwkgKiAgICAgICAgb3RoZXJ3aXNlCisJICogQHNlZSAjc2V0SGlyYWdhbmFRdWF0ZXJuYXJ5RGVmYXVsdAorCSAqIEBzZWUgI2lzSGlyYWdhbmFRdWF0ZXJuYXJ5CisJICogQGRyYWZ0IDIuMgorCSAqLworCXB1YmxpYyB2b2lkIHNldEhpcmFnYW5hUXVhdGVybmFyeShib29sZWFuIGZsYWcpCisJeworCQltX2lzSGlyYWdhbmE0XyA9IGZsYWc7CisJfQorCQorCS8qKgorCSAqIFNldHMgdGhlIEhpcmFnYW5hIFF1YXRlcm5hcnkgbW9kZSB0byB0aGUgaW5pdGlhbCBtb2RlIHNldCBkdXJpbmcgCisJICogY29uc3RydWN0aW9uIG9mIHRoZSBSdWxlQmFzZWRDb2xsYXRvci4KKwkgKiBTZWUgc2V0SGlyYWdhbmFRdWF0ZXJuYXJ5KGJvb2xlYW4pIGZvciBtb3JlIGRldGFpbHMuCisJICogQHNlZSAjc2V0SGlyYWdhbmFRdWF0ZXJuYXJ5KGJvb2xlYW4pCisJICogQHNlZSAjaXNIaXJhZ2FuYVF1YXRlcm5hcnkKKwkgKiBAZHJhZnQgMi4yCisJICovCisJcHVibGljIHZvaWQgc2V0SGlyYWdhbmFRdWF0ZXJuYXJ5RGVmYXVsdCgpCisJeworCQltX2lzSGlyYWdhbmE0XyA9IG1fZGVmYXVsdElzSGlyYWdhbmE0XzsKKwl9CisgICAgCisgICAgLyoqCisgICAgICogU2V0cyB3aGV0aGVyIHVwcGVyY2FzZSBjaGFyYWN0ZXJzIHNvcnQgYmVmb3JlIGxvd2VyY2FzZQorICAgICAqIGNoYXJhY3RlcnMgb3IgdmljZSB2ZXJzYSwgaW4gc3RyZW5ndGggVEVSVElBUlkuIFRoZSBkZWZhdWx0IAorICAgICAqIG1vZGUgaXMgZmFsc2UsIGFuZCBzbyBsb3dlcmNhc2UgY2hhcmFjdGVycyBzb3J0IGJlZm9yZSB1cHBlcmNhc2UKKyAgICAgKiBjaGFyYWN0ZXJzLiAKKyAgICAgKiBJZiB0cnVlLCBzb3J0IHVwcGVyIGNhc2UgY2hhcmFjdGVycyBmaXJzdC4KKyAgICAgKiBAcGFyYW0gdXBwZXJmaXJzdCB0cnVlIHRvIHNvcnQgdXBwZXJjYXNlIGNoYXJhY3RlcnMgYmVmb3JlIAorICAgICAqICAgICAgICAgICAgICAgICAgIGxvd2VyY2FzZSBjaGFyYWN0ZXJzLCBmYWxzZSB0byBzb3J0IGxvd2VyY2FzZSAKKyAgICAgKiAgICAgICAgICAgICAgICAgICBjaGFyYWN0ZXJzIGJlZm9yZSB1cHBlcmNhc2UgY2hhcmFjdGVycyAKKyAgICAgKiBAc2VlICNpc0xvd2VyQ2FzZUZpcnN0CisgICAgICogQHNlZSAjaXNVcHBlckNhc2VGaXJzdAorICAgICAqIEBzZWUgI3NldExvd2VyQ2FzZUZpcnN0CisgICAgICogQHNlZSAjc2V0Q2FzZUZpcnN0RGVmYXVsdAorICAgICAqIEBkcmFmdCAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRVcHBlckNhc2VGaXJzdChib29sZWFuIHVwcGVyZmlyc3QpCisgICAgeworICAgICAgICBpZiAodXBwZXJmaXJzdCkgeworICAgICAgICAgICAgbV9jYXNlRmlyc3RfID0gQXR0cmlidXRlVmFsdWUuVVBQRVJfRklSU1RfOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbV9jYXNlRmlyc3RfID0gQXR0cmlidXRlVmFsdWUuT0ZGXzsKKyAgICAgICAgfQorICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKCk7CisgICAgfQorCQorCS8qKgorICAgCSAqIFNldHMgdGhlIG9yZGVycyBvZiBsb3dlciBjYXNlZCBjaGFyYWN0ZXJzIHRvIHNvcnQgYmVmb3JlIHVwcGVyIGNhc2VkIAorICAgICAqIGNoYXJhY3RlcnMsIGluIHN0cmVuZ3RoIFRFUlRJQVJZLiBUaGUgZGVmYXVsdCAKKyAgICAgKiBtb2RlIGlzIGZhbHNlLgorICAgICAqIElmIHRydWUgaXMgc2V0LCB0aGUgUnVsZUJhc2VkQ29sbGF0b3Igd2lsbCBzb3J0IGxvd2VyIGNhc2VkIGNoYXJhY3RlcnMgCisgICAgICogYmVmb3JlIHRoZSB1cHBlciBjYXNlZCBvbmVzLgorICAgICAqIE90aGVyd2lzZSwgaWYgZmFsc2UgaXMgc2V0LCB0aGUgUnVsZUJhc2VkQ29sbGF0b3Igd2lsbCBpZ25vcmUgY2FzZSAKKyAgICAgKiBwcmVmZXJlbmNlcy4KKyAgICAgKiBAcGFyYW0gbG93ZXJmaXJzdCB0cnVlIGZvciBzb3J0aW5nIGxvd2VyIGNhc2VkIGNoYXJhY3RlcnMgYmVmb3JlIAorICAgICAqICAgICAgICAgICAgICAgICAgIHVwcGVyIGNhc2VkIGNoYXJhY3RlcnMsIGZhbHNlIHRvIGlnbm9yZSBjYXNlIAorICAgICAqICAgICAgICAgICAgICAgICAgIHByZWZlcmVuY2VzLiAKKyAgICAgKiBAc2VlICNpc0xvd2VyQ2FzZUZpcnN0CisgICAgICogQHNlZSAjaXNVcHBlckNhc2VGaXJzdAorICAgICAqIEBzZWUgI3NldFVwcGVyQ2FzZUZpcnN0CisgICAgICogQHNlZSAjc2V0Q2FzZUZpcnN0RGVmYXVsdAorICAgCSAqLworICAgCXB1YmxpYyB2b2lkIHNldExvd2VyQ2FzZUZpcnN0KGJvb2xlYW4gbG93ZXJmaXJzdCkKKyAgIAl7CisgICAJCWlmIChsb3dlcmZpcnN0KSB7CisgICAJCQltX2Nhc2VGaXJzdF8gPSBBdHRyaWJ1dGVWYWx1ZS5MT1dFUl9GSVJTVF87CisgICAJCX0KKyAgIAkJZWxzZSB7CisgICAJCQltX2Nhc2VGaXJzdF8gPSBBdHRyaWJ1dGVWYWx1ZS5PRkZfOworICAgCQl9CisgICAJCXVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgIAl9CisgICAJCisgICAJLyoqCisgICAJICogU2V0cyB0aGUgY2FzZSBmaXJzdCBtb2RlIHRvIHRoZSBpbml0aWFsIG1vZGUgc2V0IGR1cmluZyAKKwkgKiBjb25zdHJ1Y3Rpb24gb2YgdGhlIFJ1bGVCYXNlZENvbGxhdG9yLgorCSAqIFNlZSBzZXRVcHBlckNhc2VGaXJzdChib29sZWFuKSBhbmQgc2V0TG93ZXJDYXNlRmlyc3QoYm9vbGVhbikgZm9yIG1vcmUgCisgICAgICogZGV0YWlscy4KKyAgIAkgKiBAc2VlICNpc0xvd2VyQ2FzZUZpcnN0CisgICAJICogQHNlZSAjaXNVcHBlckNhc2VGaXJzdAorICAgCSAqIEBzZWUgI3NldExvd2VyQ2FzZUZpcnN0KGJvb2xlYW4pCisgICAgICogQHNlZSAjc2V0VXBwZXJDYXNlRmlyc3QoYm9vbGVhbikKKyAgIAkgKiBAZHJhZnQgMi4yCisgICAJICovCisgICAJcHVibGljIGZpbmFsIHZvaWQgc2V0Q2FzZUZpcnN0RGVmYXVsdCgpCisgICAJeworICAgCQltX2Nhc2VGaXJzdF8gPSBtX2RlZmF1bHRDYXNlRmlyc3RfOworICAgCQl1cGRhdGVJbnRlcm5hbFN0YXRlKCk7CisgICAJfQorICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgYWx0ZXJuYXRlIGhhbmRsaW5nIG1vZGUgdG8gdGhlIGluaXRpYWwgbW9kZSBzZXQgZHVyaW5nIAorCSAqIGNvbnN0cnVjdGlvbiBvZiB0aGUgUnVsZUJhc2VkQ29sbGF0b3IuCisJICogU2VlIHNldEFsdGVybmF0ZUhhbmRsaW5nKGJvb2xlYW4pIGZvciBtb3JlIGRldGFpbHMuCisJICogQHNlZSAjc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKGJvb2xlYW4pCisJICogQHNlZSAjaXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQoKQorICAgICAqIEBkcmFmdCAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRBbHRlcm5hdGVIYW5kbGluZ0RlZmF1bHQoKQorICAgIHsKKyAgICAJbV9pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF8gPSBtX2RlZmF1bHRJc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF87CisgICAgCXVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY2FzZSBsZXZlbCBtb2RlIHRvIHRoZSBpbml0aWFsIG1vZGUgc2V0IGR1cmluZyAKKwkgKiBjb25zdHJ1Y3Rpb24gb2YgdGhlIFJ1bGVCYXNlZENvbGxhdG9yLgorCSAqIFNlZSBzZXRDYXNlTGV2ZWwoYm9vbGVhbikgZm9yIG1vcmUgZGV0YWlscy4KKwkgKiBAc2VlICNzZXRDYXNlTGV2ZWwoYm9vbGVhbikKKwkgKiBAc2VlICNpc0Nhc2VMZXZlbAorICAgICAqIEBkcmFmdCAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDYXNlTGV2ZWxEZWZhdWx0KCkKKyAgICB7CisgICAgCW1faXNDYXNlTGV2ZWxfID0gbV9kZWZhdWx0SXNDYXNlTGV2ZWxfOworICAgIAl1cGRhdGVJbnRlcm5hbFN0YXRlKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNldHMgdGhlIGRlY29tcG9zaXRpb24gbW9kZSB0byB0aGUgaW5pdGlhbCBtb2RlIHNldCBkdXJpbmcgY29uc3RydWN0aW9uCisgICAgICogb2YgdGhlIFJ1bGVCYXNlZENvbGxhdG9yLgorICAgICAqIFNlZSBzZXREZWNvbXBvc2l0aW9uKGludCkgZm9yIG1vcmUgZGV0YWlscy4KKyAgICAgKiBAc2VlICNnZXREZWNvbXBvc2l0aW9uCisgICAgICogQHNlZSAjc2V0RGVjb21wb3NpdGlvbihpbnQpCisgICAgICogQGRyYWZ0IDIuMgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldERlY29tcG9zaXRpb25EZWZhdWx0KCkKKyAgICB7CisgICAgCXNldERlY29tcG9zaXRpb24obV9kZWZhdWx0RGVjb21wb3NpdGlvbl8pOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBGcmVuY2ggY29sbGF0aW9uIG1vZGUgdG8gdGhlIGluaXRpYWwgbW9kZSBzZXQgZHVyaW5nIAorICAgICAqIGNvbnN0cnVjdGlvbiBvZiB0aGUgUnVsZUJhc2VkQ29sbGF0b3IuCisgICAgICogU2VlIHNldEZyZW5jaENvbGxhdGlvbihib29sZWFuKSBmb3IgbW9yZSBkZXRhaWxzLgorICAgICAqIEBzZWUgI2lzRnJlbmNoQ29sbGF0aW9uCisgICAgICogQHNlZSAjc2V0RnJlbmNoQ29sbGF0aW9uKGJvb2xlYW4pCisgICAgICogQGRyYWZ0IDIuMgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEZyZW5jaENvbGxhdGlvbkRlZmF1bHQoKQorICAgIHsKKyAgICAJbV9pc0ZyZW5jaENvbGxhdGlvbl8gPSBtX2RlZmF1bHRJc0ZyZW5jaENvbGxhdGlvbl87CisgICAgCXVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY29sbGF0aW9uIHN0cmVuZ3RoIHRvIHRoZSBpbml0aWFsIG1vZGUgc2V0IGR1cmluZyB0aGUgCisgICAgICogY29uc3RydWN0aW9uIG9mIHRoZSBSdWxlQmFzZWRDb2xsYXRvci4KKyAgICAgKiBTZWUgc2V0U3RyZW5ndGgoaW50KSBmb3IgbW9yZSBkZXRhaWxzLgorICAgICAqIEBzZWUgI3NldFN0cmVuZ3RoKGludCkKKyAgICAgKiBAc2VlICNnZXRTdHJlbmd0aAorICAgICAqIEBkcmFmdCAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTdHJlbmd0aERlZmF1bHQoKQorICAgIHsKKyAgICAJc2V0U3RyZW5ndGgobV9kZWZhdWx0U3RyZW5ndGhfKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbW9kZSBmb3IgdGhlIGRpcmVjdGlvbiBvZiBTRUNPTkRBUlkgd2VpZ2h0cyB0byBiZSB1c2VkIGluIAorICAgICAqIEZyZW5jaCBjb2xsYXRpb24uCisgICAgICogVGhlIGRlZmF1bHQgdmFsdWUgaXMgZmFsc2UsIHdoaWNoIHRyZWF0cyBTRUNPTkRBUlkgd2VpZ2h0cyBpbiB0aGUgb3JkZXIgCisgICAgICogdGhleSBhcHBlYXIuCisgICAgICogSWYgc2V0IHRvIHRydWUsIHRoZSBTRUNPTkRBUlkgd2VpZ2h0cyB3aWxsIGJlIHNvcnRlZCBiYWNrd2FyZHMuCisgICAgICogU2VlIHRoZSBzZWN0aW9uIG9uIAorICAgICAqIDxhIGhyZWY9aHR0cDovL29zcy5zb2Z0d2FyZS5pYm0uY29tL2ljdS91c2VyZ3VpZGUvQ29sbGF0ZV9TZXJ2aWNlQXJjaGl0ZWN0dXJlLmh0bWw+CisgICAgICogRnJlbmNoIGNvbGxhdGlvbjwvYT4gZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgICAgICogQHBhcmFtIGZsYWcgdHJ1ZSB0byBzZXQgdGhlIEZyZW5jaCBjb2xsYXRpb24gb24sIGZhbHNlIHRvIHNldCBpdCBvZmYKKyAgICAgKiBAZHJhZnQgMi4yCisgICAgICogQHNlZSAjaXNGcmVuY2hDb2xsYXRpb24KKyAgICAgKiBAc2VlICNzZXRGcmVuY2hDb2xsYXRpb25EZWZhdWx0CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RnJlbmNoQ29sbGF0aW9uKGJvb2xlYW4gZmxhZykgCisgICAgeworICAgIAltX2lzRnJlbmNoQ29sbGF0aW9uXyA9IGZsYWc7CisgICAgCXVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgYWx0ZXJuYXRlIGhhbmRsaW5nIGZvciBRVUFURVJOQVJZIHN0cmVuZ3RoIHRvIGJlIGVpdGhlciAKKyAgICAgKiBzaGlmdGVkIG9yIG5vbi1pZ25vcmFibGUuIAorICAgICAqIFNlZSB0aGUgVUNBIGRlZmluaXRpb24gb24gCisgICAgICogPGEgaHJlZj0iaHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHIxMC8jpzMuMi4yIFZhcmlhYmxlIENvbGxhdGlvbiBFbGVtZW50cyI+CisgICAgICogQWx0ZXJuYXRlIFdlaWdodGluZzwvYT4uCisgICAgICogVGhpcyBhdHRyaWJ1dGUgd2lsbCBvbmx5IGJlIGVmZmVjdGl2ZSB3aGVuIFFVQVRFUk5BUlkgc3RyZW5ndGggaXMgc2V0LgorICAgICAqIFRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGlzIG1vZGUgaXMgZmFsc2UsIGNvcnJlc3BvbmRpbmcgdG8gdGhlIAorICAgICAqIE5PTl9JR05PUkFCTEUgbW9kZSBpbiBVQ0EuIEluIHRoZSBOT04tSUdOT1JBQkxFIG1vZGUsIHRoZSAKKyAgICAgKiBSdWxlQmFzZWRDb2xsYXRvciB3aWxsIHRyZWF0cyBhbGwgdGhlIGNvZGVwb2ludHMgd2l0aCBub24taWdub3JhYmxlIAorICAgICAqIHByaW1hcnkgd2VpZ2h0cyBpbiB0aGUgc2FtZSB3YXkuIAorICAgICAqIElmIHRoZSBtb2RlIGlzIHNldCB0byB0cnVlLCB0aGUgYmVoYXZpb3VyIGNvcnJlc3BvbmRzIHRvIFNISUZURUQgZGVmaW5lZAorICAgICAqIGluIFVDQSwgdGhpcyBjYXVzZXMgY29kZXBvaW50cyB3aXRoIFBSSU1BUlkgb3JkZXJzIHRoYXQgYXJlIGVxdWFsIG9yIAorICAgICAqIGJlbG93IHRoZSB2YXJpYWJsZSB0b3AgdmFsdWUgdG8gYmUgaWdub3JlZCBpbiBQUklNQVJZIG9yZGVyIGFuZCAKKyAgICAgKiBtb3ZlZCB0byB0aGUgUVVBVEVSTkFSWSBvcmRlci4KKyAgICAgKiBAcGFyYW0gc2hpZnRlZCB0cnVlIGlmIFNISUZURUQgYmVoYXZpb3VyIGZvciBhbHRlcm5hdGUgaGFuZGxpbmcgaXMgCisgICAgICogICAgICAgIGRlc2lyZWQsIGZhbHNlIGZvciB0aGUgTk9OX0lHTk9SQUJMRSBiZWhhdmlvdXIuCisgICAgICogQHNlZSAjaXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQKKyAgICAgKiBAc2VlICNzZXRBbHRlcm5hdGVIYW5kbGluZ0RlZmF1bHQKKyAgICAgKiBAZHJhZnQgMi4yCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKGJvb2xlYW4gc2hpZnRlZCkKKyAgICB7CisgICAgCW1faXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWRfID0gc2hpZnRlZDsKKyAgICAJdXBkYXRlSW50ZXJuYWxTdGF0ZSgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBXaGVuIGNhc2UgbGV2ZWwgaXMgc2V0IHRvIHRydWUsIGFuIGFkZGl0aW9uYWwgd2VpZ2h0IGlzIGZvcm1lZCAKKyAgICAgKiBiZXR3ZWVuIHRoZSBTRUNPTkRBUlkgYW5kIFRFUlRJQVJZIHdlaWdodCwga25vd24gYXMgdGhlIGNhc2UgbGV2ZWwuIAorICAgICAqIFRoZSBjYXNlIGxldmVsIGlzIHVzZWQgdG8gZGlzdGluZ3Vpc2ggbGFyZ2UgYW5kIHNtYWxsIEphcGFuZXNlIEthbmEgCisgICAgICogY2hhcmFjdGVycy4gQ2FzZSBsZXZlbCBjb3VsZCBhbHNvIGJlIHVzZWQgaW4gb3RoZXIgc2l0dWF0aW9ucy4gCisgICAgICogRm9yIGV4YW1wbGUgdG8gZGlzdGluZ3Vpc2ggY2VydGFpbiBQaW55aW4gY2hhcmFjdGVycy4gCisgICAgICogVGhlIGRlZmF1bHQgdmFsdWUgaXMgZmFsc2UsIHdoaWNoIG1lYW5zIHRoZSBjYXNlIGxldmVsIGlzIG5vdCBnZW5lcmF0ZWQuCisgICAgICogVGhlIGNvbnRlbnRzIG9mIHRoZSBjYXNlIGxldmVsIGFyZSBhZmZlY3RlZCBieSB0aGUgY2FzZSBmaXJzdAorICAgICAqIG1vZGUuIEEgc2ltcGxlIHdheSB0byBpZ25vcmUgYWNjZW50IGRpZmZlcmVuY2VzIGluIGEgc3RyaW5nIGlzIHRvIHNldCAKKyAgICAgKiB0aGUgc3RyZW5ndGggdG8gUFJJTUFSWSBhbmQgZW5hYmxlIGNhc2UgbGV2ZWwuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFNlZSB0aGUgc2VjdGlvbiBvbiAKKyAgICAgKiA8YSBocmVmPWh0dHA6Ly9vc3Muc29mdHdhcmUuaWJtLmNvbS9pY3UvdXNlcmd1aWRlL0NvbGxhdGVfU2VydmljZUFyY2hpdGVjdHVyZS5odG1sPgorICAgICAqIGNhc2UgbGV2ZWw8L2E+IGZvciBtb3JlIGluZm9ybWF0aW9uLgorICAgICAqIDwvcD4KKyAgICAgKiBAcGFyYW0gZmxhZyB0cnVlIGlmIGNhc2UgbGV2ZWwgc29ydGluZyBpcyByZXF1aXJlZCwgZmFsc2Ugb3RoZXJ3aXNlCisgICAgICogQGRyYWZ0IDIuMgorICAgICAqIEBzZWUgI3NldENhc2VMZXZlbERlZmF1bHQKKwkgKiBAc2VlICNpc0Nhc2VMZXZlbAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldENhc2VMZXZlbChib29sZWFuIGZsYWcpIAorICAgIHsKKyAgICAJbV9pc0Nhc2VMZXZlbF8gPSBmbGFnOworICAgIAl1cGRhdGVJbnRlcm5hbFN0YXRlKCk7CisgICAgfQorCisJLyoqCisgICAgICogPHA+CisgICAgICogU2V0cyB0aGlzIENvbGxhdG9yJ3Mgc3RyZW5ndGggcHJvcGVydHkuIFRoZSBzdHJlbmd0aCBwcm9wZXJ0eSAKKyAgICAgKiBkZXRlcm1pbmVzIHRoZSBtaW5pbXVtIGxldmVsIG9mIGRpZmZlcmVuY2UgY29uc2lkZXJlZCBzaWduaWZpY2FudCAKKyAgICAgKiBkdXJpbmcgY29tcGFyaXNvbi4KKyAgICAgKiA8L3A+CisgICAgICogPHA+U2VlIHRoZSBDb2xsYXRvciBjbGFzcyBkZXNjcmlwdGlvbiBmb3IgYW4gZXhhbXBsZSBvZiB1c2UuPC9wPgorICAgICAqIEBwYXJhbSB0aGUgbmV3IHN0cmVuZ3RoIHZhbHVlLgorICAgICAqIEBzZWUgI2dldFN0cmVuZ3RoCisgICAgICogQHNlZSAjc2V0U3RyZW5ndGhEZWZhdWx0CisgICAgICogQHNlZSAjUFJJTUFSWQorICAgICAqIEBzZWUgI1NFQ09OREFSWQorICAgICAqIEBzZWUgI1RFUlRJQVJZCisgICAgICogQHNlZSAjUVVBVEVSTkFSWQorICAgICAqIEBzZWUgI0lERU5USUNBTAorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIElmIHRoZSBuZXcgc3RyZW5ndGggdmFsdWUgaXMgbm90IG9uZSAKKyAgICAgKiAJCQkJb2YgUFJJTUFSWSwgU0VDT05EQVJZLCBURVJUSUFSWSwgUVVBVEVSTkFSWSBvciBJREVOVElDQUwuCisgICAgICogQGRyYWZ0IDIuMgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFN0cmVuZ3RoKGludCBuZXdTdHJlbmd0aCkgeworICAgICAgICBzdXBlci5zZXRTdHJlbmd0aChuZXdTdHJlbmd0aCk7CisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICB9CisKKyAgICAvLyBwdWJsaWMgZ2V0dGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGNvbGxhdGlvbiBydWxlcyBmb3IgdGhpcyBSdWxlQmFzZWRDb2xsYXRvci4gICAgIAorICAgICAqIEByZXR1cm4gcmV0dXJucyB0aGUgY29sbGF0aW9uIHJ1bGVzCisgICAgICogQGRyYWZ0IDIuMgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0UnVsZXMoKQorICAgIHsKKyAgICAJcmV0dXJuIG1fcnVsZXNfOworICAgIH0KKworCS8qKgorICAgICAqIDxwPgorICAgICAqIEdldCBhIENvbGxhdGlvbiBrZXkgZm9yIHRoZSBhcmd1bWVudCBTdHJpbmcgc291cmNlIGZyb20gdGhpcyAKKyAgICAgKiBSdWxlQmFzZWRDb2xsYXRvci4gCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIEdlbmVyYWwgcmVjb21tZW5kYXRpb246IDxicj4KKyAgICAgKiBJZiBjb21wYXJpc29uIGFyZSB0byBiZSBkb25lIHRvIHRoZSBzYW1lIFN0cmluZyBtdWx0aXBsZSB0aW1lcywgaXQgd291bGQKKyAgICAgKiBiZSBtb3JlIGVmZmljaWVudCB0byBnZW5lcmF0ZSBDb2xsYXRpb25LZXlzIGZvciB0aGUgU3RyaW5ncyBhbmQgdXNlIAorICAgICAqIENvbGxhdGlvbktleS5jb21wYXJlVG8oQ29sbGF0aW9uS2V5KSBmb3IgdGhlIGNvbXBhcmlzb25zLgorICAgICAqIElmIHRoZSBlYWNoIFN0cmluZ3MgYXJlIGNvbXBhcmVkIHRvIG9ubHkgb25jZSwgdXNpbmcgdGhlIG1ldGhvZAorICAgICAqIFJ1bGVCYXNlZENvbGxhdG9yLmNvbXBhcmUoU3RyaW5nLCBTdHJpbmcpIHdpbGwgaGF2ZSBhIGJldHRlciBwZXJmb3JtYW5jZS4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogU2VlIHRoZSBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBhbiBleHBsYW5hdGlvbiBhYm91dCBDb2xsYXRpb25LZXlzLgorICAgICAqIDwvcD4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSB0ZXh0IFN0cmluZyB0byBiZSB0cmFuc2Zvcm1lZCBpbnRvIGEgY29sbGF0aW9uIGtleS4KKyAgICAgKiBAcmV0dXJuIHRoZSBDb2xsYXRpb25LZXkgZm9yIHRoZSBnaXZlbiBTdHJpbmcgYmFzZWQgb24gdGhpcyAKKyAgICAgKiAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yJ3MgY29sbGF0aW9uIHJ1bGVzLiBJZiB0aGUgc291cmNlIFN0cmluZyBpcyAKKyAgICAgKiAgICAgICAgIG51bGwsIGEgbnVsbCBDb2xsYXRpb25LZXkgaXMgcmV0dXJuZWQuCisgICAgICogQHNlZSBDb2xsYXRpb25LZXkKKyAgICAgKiBAc2VlICNjb21wYXJlKFN0cmluZywgU3RyaW5nKQorICAgICAqIEBkcmFmdCAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgQ29sbGF0aW9uS2V5IGdldENvbGxhdGlvbktleShTdHJpbmcgc291cmNlKQorICAgIHsKKyAgICAJaWYgKHNvdXJjZSA9PSBudWxsKSB7CisgICAgCQlyZXR1cm4gbnVsbDsKKyAgICAJfQorICAgIAlpbnQgc3RyZW5ndGggPSBnZXRTdHJlbmd0aCgpOworICAgIAltX3V0aWxDb21wYXJlMF8gPSBtX2lzQ2FzZUxldmVsXzsKKyAgICAgICAgbV91dGlsQ29tcGFyZTFfID0gdHJ1ZTsKKyAgICAJbV91dGlsQ29tcGFyZTJfID0gc3RyZW5ndGggPj0gU0VDT05EQVJZOworICAgIAltX3V0aWxDb21wYXJlM18gPSBzdHJlbmd0aCA+PSBURVJUSUFSWTsKKyAgICAJbV91dGlsQ29tcGFyZTRfID0gc3RyZW5ndGggPj0gUVVBVEVSTkFSWTsKKwkJbV91dGlsQ29tcGFyZTVfID0gc3RyZW5ndGggPT0gSURFTlRJQ0FMOworCisJCW1fdXRpbEJ5dGVzQ291bnQwXyA9IDA7CisgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyA9IDA7CisgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQyXyA9IDA7CisgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQzXyA9IDA7CisgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQ0XyA9IDA7CisgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQ1XyA9IDA7CisgICAgCW1fdXRpbENvdW50MF8gPSAwOworICAgICAgICBtX3V0aWxDb3VudDFfID0gMDsKKyAgICAgICAgbV91dGlsQ291bnQyXyA9IDA7CisgICAgICAgIG1fdXRpbENvdW50M18gPSAwOworICAgICAgICBtX3V0aWxDb3VudDRfID0gMDsKKyAgICAgICAgbV91dGlsQ291bnQ1XyA9IDA7CisgICAgCWJvb2xlYW4gZG9GcmVuY2ggPSBtX2lzRnJlbmNoQ29sbGF0aW9uXyAmJiBtX3V0aWxDb21wYXJlMl87CisgICAgCS8vIFRPRE86IFVDT0xfQ09NTU9OX0JPVDQgc2hvdWxkIGJlIGEgZnVuY3Rpb24gb2YgcVNoaWZ0ZWQuIAorCSAgICAvLyBJZiB3ZSBoYXZlIG5vIHFTaGlmdGVkLCB3ZSBkb24ndCBuZWVkIHRvIHNldCBVQ09MX0NPTU1PTl9CT1Q0IHNvIAorCSAgICAvLyBoaWdoLgorICAgCQlpbnQgY29tbW9uQm90dG9tNCA9ICgobV92YXJpYWJsZVRvcFZhbHVlXyA+Pj4gOCkgKyAxKSAmIExBU1RfQllURV9NQVNLXzsKKyAgICAJYnl0ZSBoaXJhZ2FuYTQgPSAwOworICAgIAlpZiAobV9pc0hpcmFnYW5hNF8gJiYgbV91dGlsQ29tcGFyZTRfKSB7CisgICAgCQkvLyBhbGxvY2F0ZSBvbmUgbW9yZSBzcGFjZSBmb3IgaGlyYWdhbmEsIHZhbHVlIGZvciBoaXJhZ2FuYQorICAgICAgCQloaXJhZ2FuYTQgPSAoYnl0ZSljb21tb25Cb3R0b200OworICAgICAgCQljb21tb25Cb3R0b200ICsrOworICAgIAl9CisgICAgCQorICAgIAlpbnQgYm90dG9tQ291bnQ0ID0gMHhGRiAtIGNvbW1vbkJvdHRvbTQ7CisgICAgCS8vIElmIHdlIG5lZWQgdG8gbm9ybWFsaXplLCB3ZSdsbCBkbyBpdCBhbGwgYXQgb25jZSBhdCB0aGUgYmVnaW5uaW5nIQorICAgIAlpZiAobV91dGlsQ29tcGFyZTVfICYmIE5vcm1hbGl6ZXIucXVpY2tDaGVjayhzb3VyY2UsIE5vcm1hbGl6ZXIuTkZEKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBOb3JtYWxpemVyLllFUykgeworICAgICAgICAgICAgLy8gaWYgaXQgaXMgaWRlbnRpY2FsIHN0cmVuZ3RoLCB3ZSBoYXZlIHRvIG5vcm1hbGl6ZSB0aGUgc3RyaW5nIHRvCisgICAgICAgICAgICAvLyBORkQgc28gdGhhdCBpdCB3aWxsIGJlIGFwcGVuZGVkIGNvcnJlY3RseSB0byB0aGUgZW5kIG9mIHRoZSBzb3J0CisgICAgICAgICAgICAvLyBrZXkKKyAgICAgICAgICAgIHNvdXJjZSA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKHNvdXJjZSwgZmFsc2UpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGdldERlY29tcG9zaXRpb24oKSAhPSBOT19ERUNPTVBPU0lUSU9OCisgICAgCQkmJiBOb3JtYWxpemVyLnF1aWNrQ2hlY2soc291cmNlLCBOb3JtYWxpemVyLkZDRCkgCisgICAgCQkJCQkJCQkJCQkJIT0gTm9ybWFsaXplci5ZRVMpIHsKKyAgICAgICAgICAgIC8vIGZvciB0aGUgcmVzdCBvZiB0aGUgc3RyZW5ndGgsIGlmIGRlY29tcG9zaXRpb24gaXMgb24sIEZDRCBpcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBlbm91Z2ggZm9yIHVzIHRvIHdvcmsgb24uCisgICAgICAgIAlzb3VyY2UgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShzb3VyY2UsTm9ybWFsaXplci5GQ0QpOworICAgIAl9CisJCWdldFNvcnRLZXlCeXRlcyhzb3VyY2UsIGRvRnJlbmNoLCBoaXJhZ2FuYTQsIGNvbW1vbkJvdHRvbTQsIAorICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tQ291bnQ0KTsKKwkJYnl0ZSBzb3J0a2V5W10gPSBnZXRTb3J0S2V5KHNvdXJjZSwgZG9GcmVuY2gsIGNvbW1vbkJvdHRvbTQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tQ291bnQ0KTsKKwkJcmV0dXJuIG5ldyBDb2xsYXRpb25LZXkoc291cmNlLCBzb3J0a2V5KTsKKyAgICB9CisgICAgCQkgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgYW4gdXBwZXJjYXNlIGNoYXJhY3RlciBpcyBzb3J0ZWQgYmVmb3JlIHRoZSBjb3JyZXNwb25kaW5nIGxvd2VyY2FzZSBjaGFyYWN0ZXIuCisJICogU2VlIHNldENhc2VGaXJzdChib29sZWFuKSBmb3IgZGV0YWlscy4KKwkgKiBAc2VlICNzZXRVcHBlckNhc2VGaXJzdAorCSAqIEBzZWUgI3NldExvd2VyQ2FzZUZpcnN0CisgICAJICogQHNlZSAjaXNMb3dlckNhc2VGaXJzdAorICAgCSAqIEBzZWUgI3NldENhc2VGaXJzdERlZmF1bHQKKwkgKiBAcmV0dXJuIHRydWUgaWYgdXBwZXIgY2FzZWQgY2hhcmFjdGVycyBhcmUgc29ydGVkIGJlZm9yZSBsb3dlciBjYXNlZCAKKwkgKiAgICAgICAgIGNoYXJhY3RlcnMsIGZhbHNlIG90aGVyd2lzZQorCSAqIEBkcmFmdCAyLjIKKwkgKi8KKwlwdWJsaWMgYm9vbGVhbiBpc1VwcGVyQ2FzZUZpcnN0KCkKKwl7CisJCXJldHVybiAobV9jYXNlRmlyc3RfID09IEF0dHJpYnV0ZVZhbHVlLlVQUEVSX0ZJUlNUXyk7CisJfQorCQorCS8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIGEgbG93ZXJjYXNlIGNoYXJhY3RlciBpcyBzb3J0ZWQgYmVmb3JlIHRoZSBjb3JyZXNwb25kaW5nIHVwcGVyY2FzZSBjaGFyYWN0ZXIuCisJICogU2VlIHNldENhc2VGaXJzdChib29sZWFuKSBmb3IgZGV0YWlscy4KKwkgKiBAc2VlICNzZXRVcHBlckNhc2VGaXJzdAorCSAqIEBzZWUgI3NldExvd2VyQ2FzZUZpcnN0CisgICAJICogQHNlZSAjaXNVcHBlckNhc2VGaXJzdAorICAgCSAqIEBzZWUgI3NldENhc2VGaXJzdERlZmF1bHQKKwkgKiBAcmV0dXJuIHRydWUgbG93ZXIgY2FzZWQgY2hhcmFjdGVycyBhcmUgc29ydGVkIGJlZm9yZSB1cHBlciBjYXNlZCAKKwkgKiAgICAgICAgIGNoYXJhY3RlcnMsIGZhbHNlIG90aGVyd2lzZQorCSAqIEBkcmFmdCAyLjIKKwkgKi8KKwlwdWJsaWMgYm9vbGVhbiBpc0xvd2VyQ2FzZUZpcnN0KCkKKwl7CisJCXJldHVybiAobV9jYXNlRmlyc3RfID09IEF0dHJpYnV0ZVZhbHVlLkxPV0VSX0ZJUlNUXyk7CisJfQorCQorCS8qKgorCSAqIENoZWNrcyBpZiB0aGUgYWx0ZXJuYXRlIGhhbmRsaW5nIGJlaGF2aW91ciBpcyB0aGUgVUNBIGRlZmluZWQgU0hJRlRFRCBvciAKKwkgKiBOT05fSUdOT1JBQkxFLgorCSAqIElmIHJldHVybiB2YWx1ZSBpcyB0cnVlLCB0aGVuIHRoZSBhbHRlcm5hdGUgaGFuZGxpbmcgYXR0cmlidXRlIGZvciB0aGUgCisJICogQ29sbGF0b3IgaXMgU0hJRlRFRC4gT3RoZXJ3aXNlIGlmIHJldHVybiB2YWx1ZSBpcyBmYWxzZSwgdGhlbiB0aGUgCisJICogYWx0ZXJuYXRlIGhhbmRsaW5nIGF0dHJpYnV0ZSBmb3IgdGhlIENvbGxhdG9yIGlzIE5PTl9JR05PUkFCTEUKKwkgKiBTZWUgc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKGJvb2xlYW4pIGZvciBtb3JlIGRldGFpbHMuCisJICogQHJldHVybiB0cnVlIG9yIGZhbHNlIAorCSAqIEBzZWUgI3NldEFsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZChib29sZWFuKQorCSAqIEBzZWUgI3NldEFsdGVybmF0ZUhhbmRsaW5nRGVmYXVsdAorICAgICAqIEBkcmFmdCAyLjIKKyAgICAgKi8KKwlwdWJsaWMgYm9vbGVhbiBpc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZCgpCisJeworCQlyZXR1cm4gbV9pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF87CisJfQorCQorCS8qKgorCSAqIENoZWNrcyBpZiBjYXNlIGxldmVsIGlzIHNldCB0byB0cnVlLgorCSAqIFNlZSBzZXRDYXNlTGV2ZWwoYm9vbGVhbikgZm9yIGRldGFpbHMuCisJICogQHJldHVybiB0aGUgY2FzZSBsZXZlbCBtb2RlCisJICogQHNlZSAjc2V0Q2FzZUxldmVsRGVmYXVsdAorCSAqIEBzZWUgI2lzQ2FzZUxldmVsCisJICogQHNlZSAjc2V0Q2FzZUxldmVsKGJvb2xlYW4pCisJICogQGRyYWZ0IDIuMgorCSAqLworCXB1YmxpYyBib29sZWFuIGlzQ2FzZUxldmVsKCkKKwl7CisJCXJldHVybiBtX2lzQ2FzZUxldmVsXzsKKwl9CisJCisJLyoqCisJICogQ2hlY2tzIGlmIEZyZW5jaCBDb2xsYXRpb24gaXMgc2V0IHRvIHRydWUuCisJICogU2VlIHNldEZyZW5jaENvbGxhdGlvbihib29sZWFuKSBmb3IgZGV0YWlscy4KKwkgKiBAcmV0dXJuIHRydWUgaWYgRnJlbmNoIENvbGxhdGlvbiBpcyBzZXQgdG8gdHJ1ZSwgZmFsc2Ugb3RoZXJ3aXNlCisJICogQHNlZSAjc2V0RnJlbmNoQ29sbGF0aW9uKGJvb2xlYW4pCisJICogQHNlZSAjc2V0RnJlbmNoQ29sbGF0aW9uRGVmYXVsdAorCSAqIEBkcmFmdCAyLjIKKwkgKi8KKwlwdWJsaWMgYm9vbGVhbiBpc0ZyZW5jaENvbGxhdGlvbigpCisJeworCQlyZXR1cm4gbV9pc0ZyZW5jaENvbGxhdGlvbl87CisJfQorCQorCS8qKgorCSAqIENoZWNrcyBpZiB0aGUgSGlyYWdhbmEgUXVhdGVybmFyeSBtb2RlIGlzIHNldCBvbi4KKwkgKiBTZWUgc2V0SGlyYWdhbmFRdWF0ZXJuYXJ5KGJvb2xlYW4pIGZvciBtb3JlIGRldGFpbHMuCisJICogQHJldHVybiBmbGFnIHRydWUgaWYgSGlyYWdhbmEgUXVhdGVybmFyeSBtb2RlIGlzIG9uLCBmYWxzZSBvdGhlcndpc2UKKwkgKiBAc2VlICNzZXRIaXJhZ2FuYVF1YXRlcm5hcnlEZWZhdWx0CisJICogQHNlZSAjc2V0SGlyYWdhbmFRdWF0ZXJuYXJ5KGJvb2xlYW4pCisJICogQGRyYWZ0IDIuMgorCSAqLworCXB1YmxpYyBib29sZWFuIGlzSGlyYWdhbmFRdWF0ZXJuYXJ5KCkKKwl7CisJCXJldHVybiBtX2lzSGlyYWdhbmE0XzsKKwl9CisJCQorCS8vIHB1YmxpYyBvdGhlciBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbXBhcmVzIHRoZSBlcXVhbGl0eSBvZiB0d28gUnVsZUJhc2VkQ29sbGF0b3Igb2JqZWN0cy4KKyAgICAgKiBSdWxlQmFzZWRDb2xsYXRvciBvYmplY3RzIGFyZSBlcXVhbCBpZiB0aGV5IGhhdmUgdGhlIHNhbWUgY29sbGF0aW9uCisgICAgICogcnVsZXMgYW5kIHRoZSBzYW1lIGF0dHJpYnV0ZXMuCisgICAgICogQHBhcmFtIG9iaiB0aGUgUnVsZUJhc2VkQ29sbGF0b3IgdG8gYmUgY29tcGFyZWQgdG8uCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgUnVsZUJhc2VkQ29sbGF0b3IgaGFzIGV4YWN0bHkgdGhlIHNhbWUgCisgICAgICogICAgICAgICBjb2xsYXRpb24gYmVoYXZpb3VyIGFzIG9iaiwgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICAqIEBkcmFmdCAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iaikgeworICAgICAgICBpZiAob2JqID09IG51bGwpIHsKKyAgICAgICAgCXJldHVybiBmYWxzZTsgIC8vIHN1cGVyIGRvZXMgY2xhc3MgY2hlY2sKKyAgICAgICAgfQorICAgICAgICBpZiAodGhpcyA9PSBvYmopIHsKKyAgICAgICAgCXJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmIChnZXRDbGFzcygpICE9IG9iai5nZXRDbGFzcygpKSB7CisgICAgICAgIAlyZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3Igb3RoZXIgPSAoUnVsZUJhc2VkQ29sbGF0b3Ipb2JqOworICAgICAgICAvLyBhbGwgb3RoZXIgbm9uLXRyYW5zaWVudCBpbmZvcm1hdGlvbiBpcyBhbHNvIGNvbnRhaW5lZCBpbiBydWxlcy4KKyAgICAgICAgYm9vbGVhbiBwcm9wZXJ0eSA9IGdldFN0cmVuZ3RoKCkgPT0gb3RoZXIuZ2V0U3RyZW5ndGgoKSAKKyAgICAgICAgICAgICAgICYmIGdldERlY29tcG9zaXRpb24oKSA9PSBvdGhlci5nZXREZWNvbXBvc2l0aW9uKCkgCisgICAgICAgICAgICAgICAmJiBvdGhlci5tX2Nhc2VGaXJzdF8gPT0gbV9jYXNlRmlyc3RfCisgICAgICAgICAgICAgICAmJiBvdGhlci5tX2Nhc2VTd2l0Y2hfID09IG1fY2FzZVN3aXRjaF8KKyAgICAgICAgICAgICAgICYmIG90aGVyLm1faXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWRfIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gbV9pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF8KKyAgICAgICAgICAgICAgICYmIG90aGVyLm1faXNDYXNlTGV2ZWxfID09IG1faXNDYXNlTGV2ZWxfCisgICAgICAgICAgICAgICAmJiBvdGhlci5tX2lzRnJlbmNoQ29sbGF0aW9uXyA9PSBtX2lzRnJlbmNoQ29sbGF0aW9uXworICAgICAgICAgICAgICAgJiYgb3RoZXIubV9pc0hpcmFnYW5hNF8gPT0gbV9pc0hpcmFnYW5hNF87CisgICAgICAgIGlmICghcHJvcGVydHkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBib29sZWFuIHJ1bGVzID0gbV9ydWxlc18gPT0gb3RoZXIubV9ydWxlc187CisgICAgICAgIGlmICghcnVsZXMgJiYgKG1fcnVsZXNfICE9IG51bGwgJiYgb3RoZXIubV9ydWxlc18gIT0gbnVsbCkpIHsKKyAgICAgICAgICAgIHJ1bGVzID0gbV9ydWxlc18uZXF1YWxzKG90aGVyLm1fcnVsZXNfKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcnVsZXM7CisgICAgfQorICAgIAorCS8qKgorICAgICAqIEdlbmVyYXRlcyBhIHVuaXF1ZSBoYXNoIGNvZGUgZm9yIHRoaXMgUnVsZUJhc2VkQ29sbGF0b3IuCisgICAgICogQHJldHVybiB0aGUgdW5pcXVlIGhhc2ggY29kZSBmb3IgdGhpcyBDb2xsYXRvcgorICAgICAqIEBkcmFmdCAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgCisgICAgeworICAgICAgICBTdHJpbmcgcnVsZXMgPSBnZXRSdWxlcygpOworICAgICAgICBpZiAocnVsZXMgPT0gbnVsbCkgeworICAgICAgICAgICAgcnVsZXMgPSAiIjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcnVsZXMuaGFzaENvZGUoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29tcGFyZXMgdGhlIHNvdXJjZSB0ZXh0IFN0cmluZyB0byB0aGUgdGFyZ2V0IHRleHQgU3RyaW5nIGFjY29yZGluZyB0byAKKyAgICAgKiB0aGUgY29sbGF0aW9uIHJ1bGVzLCBzdHJlbmd0aCBhbmQgZGVjb21wb3NpdGlvbiBtb2RlIGZvciB0aGlzIAorICAgICAqIFJ1bGVCYXNlZENvbGxhdG9yLiAKKyAgICAgKiBSZXR1cm5zIGFuIGludGVnZXIgbGVzcyB0aGFuLCAKKyAgICAgKiBlcXVhbCB0byBvciBncmVhdGVyIHRoYW4gemVybyBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUgc291cmNlIFN0cmluZyBpcyAKKyAgICAgKiBsZXNzIHRoYW4sIGVxdWFsIHRvIG9yIGdyZWF0ZXIgdGhhbiB0aGUgdGFyZ2V0IFN0cmluZy4gU2VlIHRoZSBDb2xsYXRvcgorICAgICAqIGNsYXNzIGRlc2NyaXB0aW9uIGZvciBhbiBleGFtcGxlIG9mIHVzZS4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogR2VuZXJhbCByZWNvbW1lbmRhdGlvbjogPGJyPgorICAgICAqIElmIGNvbXBhcmlzb24gYXJlIHRvIGJlIGRvbmUgdG8gdGhlIHNhbWUgU3RyaW5nIG11bHRpcGxlIHRpbWVzLCBpdCB3b3VsZAorICAgICAqIGJlIG1vcmUgZWZmaWNpZW50IHRvIGdlbmVyYXRlIENvbGxhdGlvbktleXMgZm9yIHRoZSBTdHJpbmdzIGFuZCB1c2UgCisgICAgICogQ29sbGF0aW9uS2V5LmNvbXBhcmVUbyhDb2xsYXRpb25LZXkpIGZvciB0aGUgY29tcGFyaXNvbnMuCisgICAgICogSWYgdGhlIGVhY2ggU3RyaW5ncyBhcmUgY29tcGFyZWQgdG8gb25seSBvbmNlLCB1c2luZyB0aGUgbWV0aG9kCisgICAgICogUnVsZUJhc2VkQ29sbGF0b3IuY29tcGFyZShTdHJpbmcsIFN0cmluZykgd2lsbCBoYXZlIGEgYmV0dGVyIHBlcmZvcm1hbmNlLgorICAgICAqIDwvcD4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSBzb3VyY2UgdGV4dCBTdHJpbmcuCisgICAgICogQHBhcmFtIHRhcmdldCB0aGUgdGFyZ2V0IHRleHQgU3RyaW5nLgorICAgICAqIEByZXR1cm4gUmV0dXJucyBhbiBpbnRlZ2VyIHZhbHVlLiBWYWx1ZSBpcyBsZXNzIHRoYW4gemVybyBpZiBzb3VyY2UgaXMgCisgICAgICogICAgICAgICBsZXNzIHRoYW4gdGFyZ2V0LCB2YWx1ZSBpcyB6ZXJvIGlmIHNvdXJjZSBhbmQgdGFyZ2V0IGFyZSBlcXVhbCwgCisgICAgICogICAgICAgICB2YWx1ZSBpcyBncmVhdGVyIHRoYW4gemVybyBpZiBzb3VyY2UgaXMgZ3JlYXRlciB0aGFuIHRhcmdldC4KKyAgICAgKiBAc2VlIENvbGxhdGlvbktleQorICAgICAqIEBzZWUgI2dldENvbGxhdGlvbktleQorICAgICAqIEBkcmFmdCAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGNvbXBhcmUoU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCkKKyAgICB7CisgICAgCWlmIChzb3VyY2UgPT0gdGFyZ2V0KSB7CisJICAgICAgICByZXR1cm4gMDsKKwkgICAgfQorCQorCQkvLyBGaW5kIHRoZSBsZW5ndGggb2YgYW55IGxlYWRpbmcgcG9ydGlvbiB0aGF0IGlzIGVxdWFsCisJCWludCBvZmZzZXQgPSBnZXRGaXJzdFVubWF0Y2hlZE9mZnNldChzb3VyY2UsIHRhcmdldCk7CisJCWlmIChvZmZzZXQgPT0gc291cmNlLmxlbmd0aCgpKSB7CisJCQlpZiAob2Zmc2V0ID09IHRhcmdldC5sZW5ndGgoKSB8fCBjaGVja0lnbm9yYWJsZSh0YXJnZXQsIG9mZnNldCkpIHsKKwkJCQlyZXR1cm4gMDsKKwkJCX0KKwkJCXJldHVybiAtMTsKKwkgICAgfQorCSAgICBlbHNlIGlmICh0YXJnZXQubGVuZ3RoKCkgPT0gb2Zmc2V0KSB7CisJICAgIAlpZiAoY2hlY2tJZ25vcmFibGUoc291cmNlLCBvZmZzZXQpKSB7CisJICAgIAkJcmV0dXJuIDA7CisJICAgIAl9CisJICAgIAlyZXR1cm4gMTsKKwkgICAgfQorCisgICAgICAgIGludCBzdHJlbmd0aCA9IGdldFN0cmVuZ3RoKCk7CisJCS8vIHNldHRpbmcgdXAgdGhlIGNvbGxhdG9yIHBhcmFtZXRlcnMJCisJCW1fdXRpbENvbXBhcmUwXyA9IG1faXNDYXNlTGV2ZWxfOworICAgICAgICBtX3V0aWxDb21wYXJlMV8gPSB0cnVlOworICAgIAltX3V0aWxDb21wYXJlMl8gPSBzdHJlbmd0aCA+PSBTRUNPTkRBUlk7CisgICAgCW1fdXRpbENvbXBhcmUzXyA9IHN0cmVuZ3RoID49IFRFUlRJQVJZOworICAgIAltX3V0aWxDb21wYXJlNF8gPSBzdHJlbmd0aCA+PSBRVUFURVJOQVJZOworCQltX3V0aWxDb21wYXJlNV8gPSBzdHJlbmd0aCA9PSBJREVOVElDQUw7CisJCWJvb2xlYW4gZG9GcmVuY2ggPSBtX2lzRnJlbmNoQ29sbGF0aW9uXyAmJiBtX3V0aWxDb21wYXJlMl87CisgICAgCWJvb2xlYW4gZG9TaGlmdDQgPSBtX2lzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkXyAmJiBtX3V0aWxDb21wYXJlNF87CisJICAgIGJvb2xlYW4gZG9IaXJhZ2FuYTQgPSBtX2lzSGlyYWdhbmE0XyAmJiBtX3V0aWxDb21wYXJlNF87CisJCisJICAgIGlmIChkb0hpcmFnYW5hNCAmJiBkb1NoaWZ0NCkgeworCSAgICAJU3RyaW5nIHNvdXJjZXN1YiA9IHNvdXJjZS5zdWJzdHJpbmcob2Zmc2V0KTsKKwkgICAgCVN0cmluZyB0YXJnZXRzdWIgPSB0YXJnZXQuc3Vic3RyaW5nKG9mZnNldCk7CisJICAgICAgCXJldHVybiBjb21wYXJlQnlTb3J0S2V5cyhzb3VyY2VzdWIsIHRhcmdldHN1Yik7CisJICAgIH0KKwkgICAgCisJCS8vIFRoaXMgaXMgdGhlIGxvd2VzdCBwcmltYXJ5IHZhbHVlIHRoYXQgd2lsbCBub3QgYmUgaWdub3JlZCBpZiBzaGlmdGVkCisJICAgIGludCBsb3dlc3RwdmFsdWUgPSBtX2lzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkXyAKKwkgICAgCQkJCQkJCQkJPyBtX3ZhcmlhYmxlVG9wVmFsdWVfIDw8IDE2IDogMDsKKyAgICAgICAgbV9zcmNVdGlsQ0VCdWZmZXJTaXplXyA9IDA7CisgICAgICAgIG1fdGd0VXRpbENFQnVmZmVyU2l6ZV8gPSAwOworCQlpbnQgcmVzdWx0ID0gZG9QcmltYXJ5Q29tcGFyZShkb0hpcmFnYW5hNCwgbG93ZXN0cHZhbHVlLCBzb3VyY2UsIAorCQkJCQkJCQkJICB0YXJnZXQsIG9mZnNldCk7CisJCWlmIChtX3NyY1V0aWxDRUJ1ZmZlclNpemVfID09IC0xIAorICAgICAgICAgICAgJiYgbV90Z3RVdGlsQ0VCdWZmZXJTaXplXyA9PSAtMSkgeworCQkJLy8gc2luY2UgdGhlIGNlYnVmZmVyIGlzIGNsZWFyZWQgd2hlbiB3ZSBoYXZlIGRldGVybWluZWQgdGhhdAorCQkJLy8gZWl0aGVyIHNvdXJjZSBpcyBncmVhdGVyIHRoYW4gdGFyZ2V0IG9yIHZpY2UgdmVyc2EsIHRoZSByZXR1cm4KKwkJCS8vIHJlc3VsdCBpcyB0aGUgY29tcGFyaXNvbiByZXN1bHQgYW5kIG5vdCB0aGUgaGlyYWdhbmEgcmVzdWx0CisJCQlyZXR1cm4gcmVzdWx0OworCQl9IAorCQkKKwkJaW50IGhpcmFnYW5hcmVzdWx0ID0gcmVzdWx0OworCQkKKwkJaWYgKG1fdXRpbENvbXBhcmUyXykgeworCQkJcmVzdWx0ID0gZG9TZWNvbmRhcnlDb21wYXJlKGRvRnJlbmNoKTsKKwkJCWlmIChyZXN1bHQgIT0gMCkgeworCQkJCXJldHVybiByZXN1bHQ7CisJCQl9CisJCX0KKwkJLy8gZG9pbmcgdGhlIGNhc2UgYml0CisJICAgIGlmIChtX3V0aWxDb21wYXJlMF8pIHsKKwkgICAgCXJlc3VsdCA9IGRvQ2FzZUNvbXBhcmUoKTsKKwkJCWlmIChyZXN1bHQgIT0gMCkgeworCQkJCXJldHVybiByZXN1bHQ7CisJCQl9CQorCSAgICB9CisJCS8vIFRlcnRpYXJ5IGxldmVsCisJICAgIGlmIChtX3V0aWxDb21wYXJlM18pIHsKKwkgICAgICAJcmVzdWx0ID0gZG9UZXJ0aWFyeUNvbXBhcmUoKTsKKwkgICAgICAJaWYgKHJlc3VsdCAhPSAwKSB7CisJICAgICAgCQlyZXR1cm4gcmVzdWx0OworCSAgICAgIAl9CisJICAgIH0KKwkKKwkJaWYgKGRvU2hpZnQ0KSB7ICAvLyBjaGVja1F1YWQKKwkgICAgICAJcmVzdWx0ID0gZG9RdWF0ZXJuYXJ5Q29tcGFyZShsb3dlc3RwdmFsdWUpOworCSAgICAgIAlpZiAocmVzdWx0ICE9IDApIHsKKwkgICAgICAJCXJldHVybiByZXN1bHQ7CisJICAgICAgCX0KKwkgICAgfSAKKwkgICAgZWxzZSBpZiAoZG9IaXJhZ2FuYTQgJiYgaGlyYWdhbmFyZXN1bHQgIT0gMCkgeworCSAgICAgIAkvLyBJZiB3ZSdyZSBmaW5lIG9uIHF1YXRlcm5hcmllcywgd2UgbWlnaHQgYmUgZGlmZmVyZW50CisJICAgICAgCS8vIG9uIEhpcmFnYW5hLiBUaGlzLCBob3dldmVyLCBtaWdodCBmYWlsIHVzIGluIHNoaWZ0ZWQuCisJICAgICAgCXJldHVybiBoaXJhZ2FuYXJlc3VsdDsKKwkgICAgfQorCQorCSAgICAvLyBGb3IgSURFTlRJQ0FMIGNvbXBhcmlzb25zLCB3ZSB1c2UgYSBiaXR3aXNlIGNoYXJhY3RlciBjb21wYXJpc29uIAorCSAgICAvLyBhcyBhIHRpZWJyZWFrZXIgaWYgYWxsIGVsc2UgaXMgZXF1YWwuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKwkgICAgLy8gR2V0dGluZyBoZXJlICBzaG91bGQgYmUgcXVpdGUgcmFyZSAtIHN0cmluZ3MgYXJlIG5vdCBpZGVudGljYWwgLSAgICAgCisJICAgIC8vIHRoYXQgaXMgY2hlY2tlZCBmaXJzdCwgYnV0IGNvbXBhcmVkID09IHRocm91Z2ggYWxsIG90aGVyIGNoZWNrcy4gIAorCSAgICBpZiAobV91dGlsQ29tcGFyZTVfKSB7CisJICAgICAgICByZXR1cm4gZG9JZGVudGljYWxDb21wYXJlKHNvdXJjZSwgdGFyZ2V0LCBvZmZzZXQsIHRydWUpOworCSAgICB9CisJICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBpbm5lciBpbnRlcmZhY2VzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisJICogQXR0cmlidXRlIHZhbHVlcyB0byBiZSB1c2VkIHdoZW4gc2V0dGluZyB0aGUgQ29sbGF0b3Igb3B0aW9ucworCSAqLworCXN0YXRpYyBpbnRlcmZhY2UgQXR0cmlidXRlVmFsdWUKKwl7CisJCS8qKgorCQkgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgZGVmYXVsdCBhdHRyaWJ1dGUgdmFsdWUgd2lsbCBiZSB1c2VkLiAKKwkJICogU2VlIGluZGl2aWR1YWwgYXR0cmlidXRlIGZvciBkZXRhaWxzIG9uIGl0cyBkZWZhdWx0IHZhbHVlLiAKKwkJICovCisJCXN0YXRpYyBmaW5hbCBpbnQgREVGQVVMVF8gPSAtMTsKKwkJLyoqIAorCQkgKiBQcmltYXJ5IGNvbGxhdGlvbiBzdHJlbmd0aCAKKwkJICovCisJCXN0YXRpYyBmaW5hbCBpbnQgUFJJTUFSWV8gPSBDb2xsYXRvci5QUklNQVJZOworCQkvKiogCisJCSAqIFNlY29uZGFyeSBjb2xsYXRpb24gc3RyZW5ndGggCisJCSAqLworCQlzdGF0aWMgZmluYWwgaW50IFNFQ09OREFSWV8gPSBDb2xsYXRvci5TRUNPTkRBUlk7CisJCS8qKiAKKwkJICogVGVydGlhcnkgY29sbGF0aW9uIHN0cmVuZ3RoIAorCQkgKi8KKwkJc3RhdGljIGZpbmFsIGludCBURVJUSUFSWV8gPSBDb2xsYXRvci5URVJUSUFSWTsKKwkJLyoqIAorCQkgKiBEZWZhdWx0IGNvbGxhdGlvbiBzdHJlbmd0aCAKKwkJICovCisJCXN0YXRpYyBmaW5hbCBpbnQgREVGQVVMVF9TVFJFTkdUSF8gPSBDb2xsYXRvci5URVJUSUFSWTsKKwkJLyoqCisJCSAqIEludGVybmFsIHVzZSBmb3Igc3RyZW5ndGggY2hlY2tzIGluIENvbGxhdGlvbiBlbGVtZW50cworCQkgKi8KKwkJc3RhdGljIGZpbmFsIGludCBDRV9TVFJFTkdUSF9MSU1JVF8gPSBDb2xsYXRvci5URVJUSUFSWSArIDE7CisJCS8qKiAKKwkJICogUXVhdGVybmFyeSBjb2xsYXRpb24gc3RyZW5ndGggCisJCSAqLworCQlzdGF0aWMgZmluYWwgaW50IFFVQVRFUk5BUllfID0gMzsKKwkJLyoqIAorCQkgKiBJZGVudGljYWwgY29sbGF0aW9uIHN0cmVuZ3RoIAorCQkgKi8KKwkJc3RhdGljIGZpbmFsIGludCBJREVOVElDQUxfID0gQ29sbGF0b3IuSURFTlRJQ0FMOworCQkvKioKKwkJICogSW50ZXJuYWwgdXNlIGZvciBzdHJlbmd0aCBjaGVja3MKKwkJICovCisJCXN0YXRpYyBmaW5hbCBpbnQgU1RSRU5HVEhfTElNSVRfID0gQ29sbGF0b3IuSURFTlRJQ0FMICsgMTsKKwkJLyoqIAorCQkgKiBUdXJuIHRoZSBmZWF0dXJlIG9mZiAtIHdvcmtzIGZvciBGUkVOQ0hfQ09MTEFUSU9OLCBDQVNFX0xFVkVMLCAKKwkJICogSElSQUdBTkFfUVVBVEVSTkFSWV9NT0RFIGFuZCBERUNPTVBPU0lUSU9OX01PREUKKwkJICovCisJCXN0YXRpYyBmaW5hbCBpbnQgT0ZGXyA9IDE2OworCQkvKiogCisJCSAqIFR1cm4gdGhlIGZlYXR1cmUgb24gLSB3b3JrcyBmb3IgRlJFTkNIX0NPTExBVElPTiwgQ0FTRV9MRVZFTCwgCisJCSAqIEhJUkFHQU5BX1FVQVRFUk5BUllfTU9ERSBhbmQgREVDT01QT1NJVElPTl9NT0RFCisJCSAqLworCQlzdGF0aWMgZmluYWwgaW50IE9OXyA9IDE3OworCQkvKiogCisJCSAqIFZhbGlkIGZvciBBTFRFUk5BVEVfSEFORExJTkcuIEFsdGVybmF0ZSBoYW5kbGluZyB3aWxsIGJlIHNoaWZ0ZWQgCisJCSAqLworCQlzdGF0aWMgZmluYWwgaW50IFNISUZURURfID0gMjA7CisJCS8qKiAKKwkJICogVmFsaWQgZm9yIEFMVEVSTkFURV9IQU5ETElORy4gQWx0ZXJuYXRlIGhhbmRsaW5nIHdpbGwgYmUgbm9uIAorCQkgKiBpZ25vcmFibGUgCisJCSAqLworCQlzdGF0aWMgZmluYWwgaW50IE5PTl9JR05PUkFCTEVfID0gMjE7CisJCS8qKiAKKwkJICogVmFsaWQgZm9yIENBU0VfRklSU1QgLSBsb3dlciBjYXNlIHNvcnRzIGJlZm9yZSB1cHBlciBjYXNlIAorCQkgKi8KKwkJc3RhdGljIGZpbmFsIGludCBMT1dFUl9GSVJTVF8gPSAyNDsKKwkJLyoqIAorCQkgKiBVcHBlciBjYXNlIHNvcnRzIGJlZm9yZSBsb3dlciBjYXNlIAorCQkgKi8KKwkJc3RhdGljIGZpbmFsIGludCBVUFBFUl9GSVJTVF8gPSAyNTsKKwkgICAgLyoqCisJCSAqIE51bWJlciBvZiBhdHRyaWJ1dGUgdmFsdWVzCisJCSAqLworCSAgICBzdGF0aWMgZmluYWwgaW50IExJTUlUXyA9IDI5OworCX07CisJICAgIAorCS8qKiAKKwkgKiBBdHRyaWJ1dGVzIHRoYXQgY29sbGF0aW9uIHNlcnZpY2UgdW5kZXJzdGFuZHMuIEFsbCB0aGUgYXR0cmlidXRlcyBjYW4gCisJICogdGFrZSBERUZBVUxUIHZhbHVlLCBhcyB3ZWxsIGFzIHRoZSB2YWx1ZXMgc3BlY2lmaWMgdG8gZWFjaCBvbmUuIAorCSAqLworCXN0YXRpYyBpbnRlcmZhY2UgQXR0cmlidXRlIAorCXsKKwkgICAgLyoqIAorCSAgICAgKiBBdHRyaWJ1dGUgZm9yIGRpcmVjdGlvbiBvZiBzZWNvbmRhcnkgd2VpZ2h0cyAtIHVzZWQgaW4gRnJlbmNoLgorCSAgICAgKiBBY2NlcHRhYmxlIHZhbHVlcyBhcmUgT04sIHdoaWNoIHJlc3VsdHMgaW4gc2Vjb25kYXJ5IHdlaWdodHMgYmVpbmcgCisJICAgICAqIGNvbnNpZGVyZWQgYmFja3dhcmRzIGFuZCBPRkYgd2hpY2ggdHJlYXRzIHNlY29uZGFyeSB3ZWlnaHRzIGluIHRoZSAKKwkgICAgICogb3JkZXIgdGhleSBhcHBlYXIuCisJICAgICAqLworICAgIAlzdGF0aWMgZmluYWwgaW50IEZSRU5DSF9DT0xMQVRJT05fID0gMDsgCisJICAgIC8qKiAKKwkgICAgICogQXR0cmlidXRlIGZvciBoYW5kbGluZyB2YXJpYWJsZSBlbGVtZW50cy4gQWNjZXB0YWJsZSB2YWx1ZXMgYXJlIAorCSAgICAgKiBOT05fSUdOT1JBQkxFIChkZWZhdWx0KSB3aGljaCB0cmVhdHMgYWxsIHRoZSBjb2RlcG9pbnRzIHdpdGggCisJICAgICAqIG5vbi1pZ25vcmFibGUgcHJpbWFyeSB3ZWlnaHRzIGluIHRoZSBzYW1lIHdheSwgYW5kIFNISUZURUQgd2hpY2ggCisJICAgICAqIGNhdXNlcyBjb2RlcG9pbnRzIHdpdGggcHJpbWFyeSB3ZWlnaHRzIHRoYXQgYXJlIGVxdWFsIG9yIGJlbG93IHRoZSAKKwkgICAgICogdmFyaWFibGUgdG9wIHZhbHVlIHRvIGJlIGlnbm9yZWQgb24gcHJpbWFyeSBsZXZlbCBhbmQgbW92ZWQgdG8gdGhlIAorCSAgICAgKiBxdWF0ZXJuYXJ5IGxldmVsLgorCSAgICAgKi8KKwkgICAgc3RhdGljIGZpbmFsIGludCBBTFRFUk5BVEVfSEFORExJTkdfID0gMTsKKwkgICAgLyoqIAorCSAgICAgKiBDb250cm9scyB0aGUgb3JkZXJpbmcgb2YgdXBwZXIgYW5kIGxvd2VyIGNhc2UgbGV0dGVycy4gQWNjZXB0YWJsZSAKKwkgICAgICogdmFsdWVzIGFyZSBPRkYgKGRlZmF1bHQpLCB3aGljaCBvcmRlcnMgdXBwZXIgYW5kIGxvd2VyIGNhc2UgbGV0dGVycyAKKwkgICAgICogaW4gYWNjb3JkYW5jZSB0byB0aGVpciB0ZXJ0aWFyeSB3ZWlnaHRzLCBVUFBFUl9GSVJTVCB3aGljaCBmb3JjZXMgCisJICAgICAqIHVwcGVyIGNhc2UgbGV0dGVycyB0byBzb3J0IGJlZm9yZSBsb3dlciBjYXNlIGxldHRlcnMsIGFuZCAKKwkgICAgICogTE9XRVJfRklSU1Qgd2hpY2ggZG9lcyB0aGUgb3Bwb3NpdGUuIAorCSAgICAgKi8KKwkgICAgc3RhdGljIGZpbmFsIGludCBDQVNFX0ZJUlNUXyA9IDI7CisJICAgIC8qKiAKKwkgICAgICogQ29udHJvbHMgd2hldGhlciBhbiBleHRyYSBjYXNlIGxldmVsIChwb3NpdGlvbmVkIGJlZm9yZSB0aGUgdGhpcmQgCisJICAgICAqIGxldmVsKSBpcyBnZW5lcmF0ZWQgb3Igbm90LiBBY2NlcHRhYmxlIHZhbHVlcyBhcmUgT0ZGIChkZWZhdWx0KSwKKwkgICAgICogd2hlbiBjYXNlIGxldmVsIGlzIG5vdCBnZW5lcmF0ZWQsIGFuZCBPTiB3aGljaCBjYXVzZXMgdGhlIGNhc2UKKwkgICAgICogbGV2ZWwgdG8gYmUgZ2VuZXJhdGVkLiBDb250ZW50cyBvZiB0aGUgY2FzZSBsZXZlbCBhcmUgYWZmZWN0ZWQgYnkKKwkgICAgICogdGhlIHZhbHVlIG9mIENBU0VfRklSU1QgYXR0cmlidXRlLiBBIHNpbXBsZSB3YXkgdG8gaWdub3JlIGFjY2VudCAKKwkgICAgICogZGlmZmVyZW5jZXMgaW4gYSBzdHJpbmcgaXMgdG8gc2V0IHRoZSBzdHJlbmd0aCB0byBQUklNQVJZIGFuZCAKKwkgICAgICogZW5hYmxlIGNhc2UgbGV2ZWwuIAorCSAgICAgKi8KKwkgICAgc3RhdGljIGZpbmFsIGludCBDQVNFX0xFVkVMXyA9IDM7CisJICAgIC8qKiAKKwkgICAgICogQ29udHJvbHMgd2hldGhlciB0aGUgbm9ybWFsaXphdGlvbiBjaGVjayBhbmQgbmVjZXNzYXJ5IAorCSAgICAgKiBub3JtYWxpemF0aW9ucyBhcmUgcGVyZm9ybWVkLiBXaGVuIHNldCB0byBPRkYgKGRlZmF1bHQpIG5vIAorCSAgICAgKiBub3JtYWxpemF0aW9uIGNoZWNrIGlzIHBlcmZvcm1lZC4gVGhlIGNvcnJlY3RuZXNzIG9mIHRoZSByZXN1bHQgaXMgCisJICAgICAqIGd1YXJhbnRlZWQgb25seSBpZiB0aGUgaW5wdXQgZGF0YSBpcyBpbiBzby1jYWxsZWQgRkNEIGZvcm0gKHNlZSAKKwkgICAgICogdXNlcnMgbWFudWFsIGZvciBtb3JlIGluZm8pLiBXaGVuIHNldCB0byBPTiwgYW4gaW5jcmVtZW50YWwgY2hlY2sgCisJICAgICAqIGlzIHBlcmZvcm1lZCB0byBzZWUgd2hldGhlciB0aGUgaW5wdXQgZGF0YSBpcyBpbiB0aGUgRkNEIGZvcm0uIElmIAorCSAgICAgKiB0aGUgZGF0YSBpcyBub3QgaW4gdGhlIEZDRCBmb3JtLCBpbmNyZW1lbnRhbCBORkQgbm9ybWFsaXphdGlvbiBpcyAKKwkgICAgICogcGVyZm9ybWVkLiAKKwkgICAgICovCisJICAgIHN0YXRpYyBmaW5hbCBpbnQgTk9STUFMSVpBVElPTl9NT0RFXyA9IDQ7IAorCSAgICAvKiogCisJICAgICAqIFRoZSBzdHJlbmd0aCBhdHRyaWJ1dGUuIENhbiBiZSBlaXRoZXIgUFJJTUFSWSwgU0VDT05EQVJZLCBURVJUSUFSWSwgCisJICAgICAqIFFVQVRFUk5BUlkgb3IgSURFTlRJQ0FMLiBUaGUgdXN1YWwgc3RyZW5ndGggZm9yIG1vc3QgbG9jYWxlcyAKKwkgICAgICogKGV4Y2VwdCBKYXBhbmVzZSkgaXMgdGVydGlhcnkuIFF1YXRlcm5hcnkgc3RyZW5ndGggaXMgdXNlZnVsIHdoZW4gCisJICAgICAqIGNvbWJpbmVkIHdpdGggc2hpZnRlZCBzZXR0aW5nIGZvciBhbHRlcm5hdGUgaGFuZGxpbmcgYXR0cmlidXRlIGFuZCAKKwkgICAgICogZm9yIEpJUyB4IDQwNjEgY29sbGF0aW9uLCB3aGVuIGl0IGlzIHVzZWQgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiAKKwkgICAgICogS2F0YWthbmEgIGFuZCBIaXJhZ2FuYSAodGhpcyBpcyBhY2hpZXZlZCBieSBzZXR0aW5nIHRoZSAKKwkgICAgICogSElSQUdBTkFfUVVBVEVSTkFSWSBtb2RlIHRvIG9uLiBPdGhlcndpc2UsIHF1YXRlcm5hcnkgbGV2ZWwgaXMgCisgICAgICAgICAqIGFmZmVjdGVkIG9ubHkgYnkgdGhlIG51bWJlciBvZiBub24gaWdub3JhYmxlIGNvZGUgcG9pbnRzIGluIHRoZSAKKwkgICAgICogc3RyaW5nLiBJZGVudGljYWwgc3RyZW5ndGggaXMgcmFyZWx5IHVzZWZ1bCwgYXMgaXQgYW1vdW50cyB0byAKKwkgICAgICogY29kZXBvaW50cyBvZiB0aGUgTkZEIGZvcm0gb2YgdGhlIHN0cmluZy4gCisJICAgICAqLworCSAgICBzdGF0aWMgZmluYWwgaW50IFNUUkVOR1RIXyA9IDU7CisJICAgIC8qKiAKKwkgICAgICogV2hlbiB0dXJuZWQgb24sIHRoaXMgYXR0cmlidXRlIHBvc2l0aW9ucyBIaXJhZ2FuYSBiZWZvcmUgYWxsICAKKwkgICAgICogbm9uLWlnbm9yYWJsZXMgb24gcXVhdGVybmFyeSBsZXZlbC4gVGhpcyBpcyBhIHNuZWFreSB3YXkgdG8gcHJvZHVjZSAKKwkgICAgICogSklTIHNvcnQgb3JkZXIuIAorCSAgICAgKi8gICAgIAorCSAgICBzdGF0aWMgZmluYWwgaW50IEhJUkFHQU5BX1FVQVRFUk5BUllfTU9ERV8gPSA2OworICAgICAgICAvKioKKwkgICAgICogQXR0cmlidXRlIGNvdW50CisJICAgICAqLworCSAgICBzdGF0aWMgZmluYWwgaW50IExJTUlUXyA9IDc7CisJfTsKKwkKKwkvKioKKyAgICAgKiBEYXRhTWFuaXB1bGF0ZSBzaW5nbGV0b24KKyAgICAgKi8KKyAgICBzdGF0aWMgY2xhc3MgRGF0YU1hbmlwdWxhdGUgaW1wbGVtZW50cyBUcmllLkRhdGFNYW5pcHVsYXRlCisgICAgeworICAgIAkvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCQorICAgIAkvKioKKwkgICAgICogSW50ZXJuYWwgbWV0aG9kIGNhbGxlZCB0byBwYXJzZSBhIGxlYWQgc3Vycm9nYXRlJ3MgY2UgZm9yIHRoZSBvZmZzZXQKKwkgICAgICogdG8gdGhlIG5leHQgdHJhaWwgc3Vycm9nYXRlIGRhdGEuCisJICAgICAqIEBwYXJhbSBjZSBjb2xsYXRpb24gZWxlbWVudCBvZiB0aGUgbGVhZCBzdXJyb2dhdGUKKwkgICAgICogQHJldHVybiBkYXRhIG9mZnNldCBvciAwIGZvciB0aGUgbmV4dCB0cmFpbCBzdXJyb2dhdGUKKwkgICAgICogQGRyYWZ0IDIuMgorCSAgICAgKi8KKwkgICAgcHVibGljIGZpbmFsIGludCBnZXRGb2xkaW5nT2Zmc2V0KGludCBjZSkKKwkgICAgeworCSAgICAJaWYgKGlzU3BlY2lhbChjZSkgJiYgZ2V0VGFnKGNlKSA9PSBDRV9TVVJST0dBVEVfVEFHXykgeworCSAgICAJCXJldHVybiAoY2UgJiAweEZGRkZGRik7CisJICAgIAl9CisJICAgIAlyZXR1cm4gMDsKKwkgICAgfSAKKwkgICAgCisJICAgIC8qKgorCSAgICAgKiBHZXQgc2luZ2xldG9uIG9iamVjdAorCSAgICAgKi8KKwkgICAgcHVibGljIHN0YXRpYyBmaW5hbCBEYXRhTWFuaXB1bGF0ZSBnZXRJbnN0YW5jZSgpCisJICAgIHsKKwkgICAgCWlmIChtX2luc3RhbmNlXyA9PSBudWxsKSB7CisJICAgIAkJbV9pbnN0YW5jZV8gPSAgbmV3IERhdGFNYW5pcHVsYXRlKCk7CisJICAgIAl9CisJICAgIAlyZXR1cm4gbV9pbnN0YW5jZV87CisJICAgIH0KKwkgICAgCisJICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCSAgICAKKwkgICAgLyoqCisJICAgICAqIFNpbmdsZXRvbiBpbnN0YW5jZQorCSAgICAgKi8KKwkgICAgcHJpdmF0ZSBzdGF0aWMgRGF0YU1hbmlwdWxhdGUgbV9pbnN0YW5jZV87CisJICAgIAorCSAgICAvLyBwcml2YXRlIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwkgICAgCisJICAgIC8qKgorCSAgICAgKiBwcml2YXRlIHRvIHByZXZlbnQgaW5pdGlhbGl6YXRpb24KKwkgICAgICovCisJICAgIHByaXZhdGUgRGF0YU1hbmlwdWxhdGUoKQorCSAgICB7CisJICAgIH0KKyAgICB9OworICAgIAorICAgIC8qKgorICAgICAqIFVDQUNvbnN0YW50cworICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBjbGFzcyBVQ0FDb25zdGFudHMKKyAgICB7CisgICAgICAgICBpbnQgRklSU1RfVEVSVElBUllfSUdOT1JBQkxFX1tdID0gbmV3IGludFsyXTsgICAgICAgLy8gMHgwMDAwMDAwMCAKKyAgICAgICAgIGludCBMQVNUX1RFUlRJQVJZX0lHTk9SQUJMRV9bXSA9IG5ldyBpbnRbMl07ICAgICAgICAvLyAweDAwMDAwMDAwIAorICAgICAgICAgaW50IEZJUlNUX1BSSU1BUllfSUdOT1JBQkxFX1tdID0gbmV3IGludFsyXTsgICAgICAgIC8vIDB4MDAwMDg3MDUgCisgICAgICAgICBpbnQgRklSU1RfU0VDT05EQVJZX0lHTk9SQUJMRV9bXSA9IG5ldyBpbnRbMl07ICAgICAgLy8gMHgwMDAwMDAwMCAKKyAgICAgICAgIGludCBMQVNUX1NFQ09OREFSWV9JR05PUkFCTEVfW10gPSBuZXcgaW50WzJdOyAgICAgICAvLyAweDAwMDAwNTAwIAorICAgICAgICAgaW50IExBU1RfUFJJTUFSWV9JR05PUkFCTEVfW10gPSBuZXcgaW50WzJdOyAgICAgICAgIC8vIDB4MDAwMEREMDUgCisgICAgICAgICBpbnQgRklSU1RfVkFSSUFCTEVfW10gPSBuZXcgaW50WzJdOyAgICAgICAgICAgICAgICAgLy8gMHgwNTA3MDUwNSAKKyAgICAgICAgIGludCBMQVNUX1ZBUklBQkxFX1tdID0gbmV3IGludFsyXTsgICAgICAgICAgICAgICAgICAvLyAweDEzQ0YwNTA1IAorICAgICAgICAgaW50IEZJUlNUX05PTl9WQVJJQUJMRV9bXSA9IG5ldyBpbnRbMl07ICAgICAgICAgICAgIC8vIDB4MTYyMDA1MDUgCisgICAgICAgICBpbnQgTEFTVF9OT05fVkFSSUFCTEVfW10gPSBuZXcgaW50WzJdOyAgICAgICAgICAgICAgLy8gMHg3NjdDMDUwNSAKKyAgICAgICAgIGludCBSRVNFVF9UT1BfVkFMVUVfW10gPSBuZXcgaW50WzJdOyAgICAgICAgICAgICAgICAvLyAweDlGMDAwMzAzIAorICAgICAgICAgaW50IEZJUlNUX0lNUExJQ0lUX1tdID0gbmV3IGludFsyXTsgCisgICAgICAgICBpbnQgTEFTVF9JTVBMSUNJVF9bXSA9IG5ldyBpbnRbMl07ICAKKyAgICAgICAgIGludCBGSVJTVF9UUkFJTElOR19bXSA9IG5ldyBpbnRbMl07IAorICAgICAgICAgaW50IExBU1RfVFJBSUxJTkdfW10gPSBuZXcgaW50WzJdOyAgCisgICAgICAgICBpbnQgUFJJTUFSWV9UT1BfTUlOXzsgCisgICAgICAgICBpbnQgUFJJTUFSWV9JTVBMSUNJVF9NSU5fOyAvLyAweEU4MDAwMDAwIAorICAgICAgICAgaW50IFBSSU1BUllfSU1QTElDSVRfTUFYXzsgLy8gMHhGMDAwMDAwMCAKKyAgICAgICAgIGludCBQUklNQVJZX1RSQUlMSU5HX01JTl87IC8vIDB4RTgwMDAwMDAgCisgICAgICAgICBpbnQgUFJJTUFSWV9UUkFJTElOR19NQVhfOyAvLyAweEYwMDAwMDAwIAorICAgICAgICAgaW50IFBSSU1BUllfU1BFQ0lBTF9NSU5fOyAvLyAweEU4MDAwMDAwIAorICAgICAgICAgaW50IFBSSU1BUllfU1BFQ0lBTF9NQVhfOyAvLyAweEYwMDAwMDAwIAorICAgIH0KKyAgICAKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgZGF0YSBtZW1iZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIHN0YXRpYyBmaW5hbCBieXRlIEJZVEVfRklSU1RfVEFJTE9SRURfID0gKGJ5dGUpMHgwNDsKKyAgICBzdGF0aWMgZmluYWwgYnl0ZSBCWVRFX0NPTU1PTl8gPSAoYnl0ZSkweDA1OworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ09NTU9OX1RPUF8yXyA9IDB4ODY7IC8vIGludCBmb3IgdW5zaWduZXNzCisgICAgc3RhdGljIGZpbmFsIGludCBDT01NT05fQk9UVE9NXzJfID0gQllURV9DT01NT05fOworICAgIC8qKgorCSAqIENhc2Ugc3RyZW5ndGggbWFzaworCSAqLworCXN0YXRpYyBmaW5hbCBpbnQgQ0VfQ0FTRV9CSVRfTUFTS18gPSAweEMwOworCXN0YXRpYyBmaW5hbCBpbnQgQ0VfVEFHX1NISUZUXyA9IDI0OworCXN0YXRpYyBmaW5hbCBpbnQgQ0VfVEFHX01BU0tfID0gMHgwRjAwMDAwMDsKKwkKKwlzdGF0aWMgZmluYWwgaW50IENFX1NQRUNJQUxfRkxBR18gPSAweEYwMDAwMDAwOworICAgIC8qKiAKKyAgICAgKiBMZWFkIHN1cnJvZ2F0ZSB0aGF0IGlzIHRhaWxvcmVkIGFuZCBkb2Vzbid0IHN0YXJ0IGEgY29udHJhY3Rpb24gCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGludCBDRV9TVVJST0dBVEVfVEFHXyA9IDU7ICAKKwkvKioKKyAgCSAqIE1hc2sgdG8gZ2V0IHRoZSBwcmltYXJ5IHN0cmVuZ3RoIG9mIHRoZSBjb2xsYXRpb24gZWxlbWVudAorICAJICovCisgIAlzdGF0aWMgZmluYWwgaW50IENFX1BSSU1BUllfTUFTS18gPSAweEZGRkYwMDAwOworICAJLyoqCisgIAkgKiBNYXNrIHRvIGdldCB0aGUgc2Vjb25kYXJ5IHN0cmVuZ3RoIG9mIHRoZSBjb2xsYXRpb24gZWxlbWVudAorICAJICovCisgICAJc3RhdGljIGZpbmFsIGludCBDRV9TRUNPTkRBUllfTUFTS18gPSAweEZGMDA7CisgICAJLyoqCisgIAkgKiBNYXNrIHRvIGdldCB0aGUgdGVydGlhcnkgc3RyZW5ndGggb2YgdGhlIGNvbGxhdGlvbiBlbGVtZW50CisgIAkgKi8KKyAgIAlzdGF0aWMgZmluYWwgaW50IENFX1RFUlRJQVJZX01BU0tfID0gMHhGRjsKKyAgIAkvKioKKyAgIAkgKiBQcmltYXJ5IHN0cmVuZ3RoIHNoaWZ0IAorICAgCSAqLworCXN0YXRpYyBmaW5hbCBpbnQgQ0VfUFJJTUFSWV9TSElGVF8gPSAxNjsKKwkvKiogCisJICogU2Vjb25kYXJ5IHN0cmVuZ3RoIHNoaWZ0IAorCSAqLworCXN0YXRpYyBmaW5hbCBpbnQgQ0VfU0VDT05EQVJZX1NISUZUXyA9IDg7CisgICAJLyoqCisgICAJICogQ29udGludWF0aW9uIG1hcmtlcgorICAgCSAqLworICAgCXN0YXRpYyBmaW5hbCBpbnQgQ0VfQ09OVElOVUFUSU9OX01BUktFUl8gPSAweEMwOworICAgCQorICAgCS8qKgorCSAqIFNpemUgb2YgY29sbGF0b3IgcmF3IGRhdGEgaGVhZGVycyBhbmQgb3B0aW9ucyBiZWZvcmUgdGhlIGV4cGFuc2lvbgorCSAqIGRhdGEuIFRoaXMgaXMgdXNlZCB3aGVuIGV4cGFuc2lvbiBjZXMgYXJlIHRvIGJlIHJldHJpZXZlZC4gSUNVNEMgdXNlcworCSAqIHRoZSBleHBhbnNpb24gb2Zmc2V0IHN0YXJ0aW5nIGZyb20gVUNvbGxhdG9yLlVDb2xIZWFkZXIsIGhlbmNlIElDVTRKCisJICogd2lsbCBoYXZlIHRvIG1pbnVzIHRoYXQgb2ZmIHRvIGdldCB0aGUgcmlnaHQgZXhwYW5zaW9uIGNlIG9mZnNldC4gSW4KKwkgKiBudW1iZXIgb2YgaW50cy4KKwkgKi8KKwlpbnQgbV9leHBhbnNpb25PZmZzZXRfOworCS8qKgorCSAqIFNpemUgb2YgY29sbGF0b3IgcmF3IGRhdGEgaGVhZGVycywgb3B0aW9ucyBhbmQgZXhwYW5zaW9ucyBiZWZvcmUKKwkgKiBjb250cmFjdGlvbiBkYXRhLiBUaGlzIGlzIHVzZWQgd2hlbiBjb250cmFjdGlvbiBjZXMgYXJlIHRvIGJlIHJldHJpZXZlZC4gCisJICogSUNVNEMgdXNlcyBjb250cmFjdGlvbiBvZmZzZXQgc3RhcnRpbmcgZnJvbSBVQ29sbGF0b3IuVUNvbEhlYWRlciwgaGVuY2UKKwkgKiBJQ1U0SiB3aWxsIGhhdmUgdG8gbWludXMgdGhhdCBvZmYgdG8gZ2V0IHRoZSByaWdodCBjb250cmFjdGlvbiBjZSAKKwkgKiBvZmZzZXQuIEluIG51bWJlciBvZiBjaGFycy4KKwkgKi8KKwlpbnQgbV9jb250cmFjdGlvbk9mZnNldF87CisgICAgLyoqCisgICAgICogRmxhZyBpbmRpY2F0b3IgaWYgSmFtbyBpcyBzcGVjaWFsCisgICAgICovCisgICAgYm9vbGVhbiBtX2lzSmFtb1NwZWNpYWxfOworIAorIAkvLyBDb2xsYXRvciBvcHRpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgIAorIAlpbnQgbV9kZWZhdWx0VmFyaWFibGVUb3BWYWx1ZV87CisJYm9vbGVhbiBtX2RlZmF1bHRJc0ZyZW5jaENvbGxhdGlvbl87CisJYm9vbGVhbiBtX2RlZmF1bHRJc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF87IAorICAgIGludCBtX2RlZmF1bHRDYXNlRmlyc3RfOworICAgIGJvb2xlYW4gbV9kZWZhdWx0SXNDYXNlTGV2ZWxfOworICAgIGludCBtX2RlZmF1bHREZWNvbXBvc2l0aW9uXzsKKyAgICBpbnQgbV9kZWZhdWx0U3RyZW5ndGhfOworICAgIGJvb2xlYW4gbV9kZWZhdWx0SXNIaXJhZ2FuYTRfOworIAkvKioKKyAJICogVmFsdWUgb2YgdGhlIHZhcmlhYmxlIHRvcAorIAkgKi8KKyAgICBpbnQgbV92YXJpYWJsZVRvcFZhbHVlXzsKKyAgICAvKiogCisgICAgICogQXR0cmlidXRlIGZvciBzcGVjaWFsIEhpcmFnYW5hIAorICAgICAqLworICAgIGJvb2xlYW4gbV9pc0hpcmFnYW5hNF87ICAgICAgICAgCisJLyoqCisgICAgICogQ2FzZSBzb3J0aW5nIGN1c3RvbWl6YXRpb24KKyAgICAgKi8KKyAgICBpbnQgbV9jYXNlRmlyc3RfOworICAgIAorICAgIC8vIGVuZCBDb2xsYXRvciBvcHRpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgCisgICAgLyoqCisgICAgICogRXhwYW5zaW9uIHRhYmxlCisgICAgICovCisgICAgaW50IG1fZXhwYW5zaW9uX1tdOworICAgIC8qKgorICAgICAqIENvbnRyYWN0aW9uIGluZGV4IHRhYmxlCisgICAgICovCisgICAgY2hhciBtX2NvbnRyYWN0aW9uSW5kZXhfW107CisgICAgLyoqCisgICAgICogQ29udHJhY3Rpb24gQ0UgdGFibGUKKyAgICAgKi8KKyAgICBpbnQgbV9jb250cmFjdGlvbkNFX1tdOworICAgIC8qKgorICAgICAqIERhdGEgdHJpZQorICAgICAqLworICAgIEludFRyaWUgbV90cmllXzsKKyAgICAvKioKKyAgICAgKiBUYWJsZSB0byBzdG9yZSBhbGwgY29sbGF0aW9uIGVsZW1lbnRzIHRoYXQgYXJlIHRoZSBsYXN0IGVsZW1lbnQgb2YgYW4KKyAgICAgKiBleHBhbnNpb24uIFRoaXMgaXMgZm9yIHVzZSBpbiBTdHJpbmdTZWFyY2guCisgICAgICovCisgICAgaW50IG1fZXhwYW5zaW9uRW5kQ0VfW107CisgICAgLyoqCisgICAgICogVGFibGUgdG8gc3RvcmUgdGhlIG1heGltdW0gc2l6ZSBvZiBhbnkgZXhwYW5zaW9ucyB0aGF0IGVuZCB3aXRoIHRoZSAKKyAgICAgKiBjb3JyZXNwb25kaW5nIGNvbGxhdGlvbiBlbGVtZW50IGluIG1fZXhwYW5zaW9uRW5kQ0VfLiBGb3IgdXNlIGluCisgICAgICogU3RyaW5nU2VhcmNoIHRvbworICAgICAqLworICAgIGJ5dGUgbV9leHBhbnNpb25FbmRDRU1heFNpemVfW107CisgICAgLyoqCisgICAgICogSGV1cmlzdGljIHRhYmxlIHRvIHN0b3JlIGluZm9ybWF0aW9uIG9uIHdoZXRoZXIgYSBjaGFyIGNoYXJhY3RlciBpcyAKKyAgICAgKiBjb25zaWRlcmVkICJ1bnNhZmUiLiAiVW5zYWZlIiBjaGFyYWN0ZXIgYXJlIGNvbWJpbmluZyBtYXJrcyBvciB0aG9zZSAKKyAgICAgKiBiZWxvbmdpbmcgdG8gc29tZSBjb250cmFjdGlvbiBzZXF1ZW5jZSBmcm9tIHRoZSBvZmZzZXQgMSBvbndhcmRzLiAKKyAgICAgKiBFLmcuIGlmICJBQkMiIGlzIHRoZSBvbmx5IGNvbnRyYWN0aW9uLCB0aGVuICdCJyBhbmQgJ0MnIGFyZSBjb25zaWRlcmVkIAorICAgICAqIHVuc2FmZS4gSWYgd2UgaGF2ZSBhbm90aGVyIGNvbnRyYWN0aW9uICJaQSIgd2l0aCB0aGUgb25lIGFib3ZlLCB0aGVuIAorICAgICAqICdBJywgJ0InLCAnQycgYXJlICJ1bnNhZmUiIGJ1dCAnWicgaXMgbm90LiAKKyAgICAgKi8KKyAgICBieXRlIG1fdW5zYWZlX1tdOworICAgIC8qKgorICAgICAqIFRhYmxlIHRvIHN0b3JlIGluZm9ybWF0aW9uIG9uIHdoZXRoZXIgYSBjb2RlcG9pbnQgY2FuIG9jY3VyIGFzIHRoZSBsYXN0CisgICAgICogY2hhcmFjdGVyIGluIGEgY29udHJhY3Rpb24KKyAgICAgKi8KKyAgICBieXRlIG1fY29udHJhY3Rpb25FbmRfW107CisgICAgLyoqCisJICogT3JpZ2luYWwgY29sbGF0aW9uIHJ1bGVzCisJICovCisJU3RyaW5nIG1fcnVsZXNfOworCS8qKgorICAgICAqIFRoZSBzbWFsbGVzdCAidW5zYWZlIiBjb2RlcG9pbnQKKyAgICAgKi8KKyAgICBjaGFyIG1fbWluVW5zYWZlXzsKKyAgICAvKioKKwkgKiBUaGUgc21hbGxlc3QgY29kZXBvaW50IHRoYXQgY291bGQgYmUgdGhlIGVuZCBvZiBhIGNvbnRyYWN0aW9uCisJICovCisJY2hhciBtX21pbkNvbnRyYWN0aW9uRW5kXzsKKwkKKwkvKioKKyAgICAgKiBVbmljb2RlRGF0YS50eHQgcHJvcGVydHkgb2JqZWN0CisgICAgICovCisgICAgc3RhdGljIGZpbmFsIFJ1bGVCYXNlZENvbGxhdG9yIFVDQV87ICAKKyAgICAvKioKKyAgICAgKiBVQ0EgQ29uc3RhbnRzCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIFVDQUNvbnN0YW50cyBVQ0FfQ09OU1RBTlRTXzsKKyAgICAvKioKKyAgICAgKiBUYWJsZSBmb3IgVUNBIGFuZCBidWlsZGVyIHVzZQorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBjaGFyIFVDQV9DT05UUkFDVElPTlNfW107CisgICAgLyoqCisgICAgICogSW1wbGljaXQgY29uc3RhbnRzCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGludCBJTVBMSUNJVF9CQVNFX0JZVEVfOworICAgIHN0YXRpYyBmaW5hbCBpbnQgSU1QTElDSVRfTElNSVRfQllURV87CisgICAgc3RhdGljIGZpbmFsIGludCBJTVBMSUNJVF80QllURV9CT1VOREFSWV87CisgICAgc3RhdGljIGZpbmFsIGludCBMQVNUX01VTFRJUExJRVJfOworICAgIHN0YXRpYyBmaW5hbCBpbnQgTEFTVDJfTVVMVElQTElFUl87CisgICAgc3RhdGljIGZpbmFsIGludCBJTVBMSUNJVF9CQVNFXzNCWVRFXzsKKyAgICBzdGF0aWMgZmluYWwgaW50IElNUExJQ0lUX0JBU0VfNEJZVEVfOworICAgIHN0YXRpYyBmaW5hbCBpbnQgQllURVNfVE9fQVZPSURfID0gMzsKKyAgICBzdGF0aWMgZmluYWwgaW50IE9USEVSX0NPVU5UXyA9IDI1NiAtIEJZVEVTX1RPX0FWT0lEXzsKKyAgICBzdGF0aWMgZmluYWwgaW50IExBU1RfQ09VTlRfID0gT1RIRVJfQ09VTlRfIC8gMjsKKyAgICAvKioKKyAgICAgKiBSb29tIGZvciBpbnRlcnZlbmluZywgd2l0aG91dCBleHBhbmRpbmcgdG8gNSBieXRlcworICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgTEFTVF9DT1VOVDJfID0gT1RIRVJfQ09VTlRfIC8gMjE7IAorICAgIHN0YXRpYyBmaW5hbCBpbnQgSU1QTElDSVRfM0JZVEVfQ09VTlRfID0gMTsKKyAgICAKKyAgICAvLyBibG9jayB0byBpbml0aWFsaXNlIGNoYXJhY3RlciBwcm9wZXJ0eSBkYXRhYmFzZQorICAgIHN0YXRpYworICAgIHsKKyAgICAgICAgdHJ5CisgICAgICAgIHsKKyAgICAgICAgCVVDQV8gPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IoKTsKKyAgICAgICAgICAgIFVDQV9DT05TVEFOVFNfID0gbmV3IFVDQUNvbnN0YW50cygpOworICAgICAgICAJSW5wdXRTdHJlYW0gaSA9IFVDQV8uZ2V0Q2xhc3MoKS5nZXRSZXNvdXJjZUFzU3RyZWFtKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvY29tL2libS9pY3UvaW1wbC9kYXRhL3VjYWRhdGEuaWN1Iik7CisgICAgICAgIAkKKyAgICAgICAJCUJ1ZmZlcmVkSW5wdXRTdHJlYW0gYiA9IG5ldyBCdWZmZXJlZElucHV0U3RyZWFtKGksIDkwMDAwKTsKKyAgICAgICAgCUNvbGxhdG9yUmVhZGVyIHJlYWRlciA9IG5ldyBDb2xsYXRvclJlYWRlcihiKTsKKyAgICAgICAgCVVDQV9DT05UUkFDVElPTlNfID0gcmVhZGVyLnJlYWQoVUNBXywgVUNBX0NPTlNUQU5UU18pOworICAgICAgICAgICAgYi5jbG9zZSgpOworICAgICAgICAJaS5jbG9zZSgpOworICAgICAgICAgICAgLy8gY2FsbGVkIGJlZm9yZSBkb2luZyBjYW5vbmljYWwgY2xvc3VyZSBmb3IgdGhlIFVDQS4KKyAgICAgICAgICAgIElNUExJQ0lUX0JBU0VfQllURV8gPSBVQ0FfQ09OU1RBTlRTXy5QUklNQVJZX0lNUExJQ0lUX01JTl87CisgICAgICAgICAgICAvLyBsZWF2ZSByb29tIGZvciAxIDMtYnl0ZSBhbmQgMiA0LWJ5dGUgZm9ybXMKKyAgICAgICAgICAgIElNUExJQ0lUX0xJTUlUX0JZVEVfID0gSU1QTElDSVRfQkFTRV9CWVRFXyArIDQ7IAorICAgICAgICAgICAgSU1QTElDSVRfNEJZVEVfQk9VTkRBUllfID0gSU1QTElDSVRfM0JZVEVfQ09VTlRfICogT1RIRVJfQ09VTlRfIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBMQVNUX0NPVU5UXzsKKyAgICAgICAgICAgIExBU1RfTVVMVElQTElFUl8gPSBPVEhFUl9DT1VOVF8gLyBMQVNUX0NPVU5UXzsKKyAgICAgICAgICAgIExBU1QyX01VTFRJUExJRVJfID0gT1RIRVJfQ09VTlRfIC8gTEFTVF9DT1VOVDJfOworICAgICAgICAgICAgSU1QTElDSVRfQkFTRV8zQllURV8gPSAoSU1QTElDSVRfQkFTRV9CWVRFXyA8PCAyNCkgKyAweDAzMDMwMDsKKyAgICAgICAgICAgIElNUExJQ0lUX0JBU0VfNEJZVEVfID0gKChJTVBMSUNJVF9CQVNFX0JZVEVfIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgSU1QTElDSVRfM0JZVEVfQ09VTlRfKSA8PCAyNCkgKyAweDAzMDMwMzsKKyAgICAgICAgCVVDQV8ubV9ydWxlc18gPSBudWxsOworICAgICAgICAJVUNBXy5pbml0KCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKQorICAgICAgICB7CisgICAgICAgIAllLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfSAKKyAgICAKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgY29uc3RydWN0b3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICogPHA+UHJpdmF0ZSBjb250cnVjdG9yIGZvciB1c2UgYnkgc3ViY2xhc3Nlcy4gCisgICAgKiBQdWJsaWMgYWNjZXNzIHRvIGNyZWF0aW5nIENvbGxhdG9ycyBpcyBoYW5kbGVkIGJ5IHRoZSBBUEkgCisgICAgKiBDb2xsYXRvci5nZXRJbnN0YW5jZSgpIG9yIFJ1bGVCYXNlZENvbGxhdG9yKFN0cmluZyBydWxlcykuCisgICAgKiA8L3A+CisgICAgKiA8cD4KKyAgICAqIFRoaXMgY29uc3RydWN0b3IgY29uc3RydWN0cyB0aGUgVUNBIGNvbGxhdG9yIGludGVybmFsbHkKKyAgICAqIDwvcD4KKyAgICAqIEBkcmFmdCAyLjIKKyAgICAqLworICAgIFJ1bGVCYXNlZENvbGxhdG9yKCkgCisgICAgeworICAgICAgICBpbml0VXRpbGl0eSgpOworICAgIH0KKyAgICAKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIFNldHMgdGhpcyBjb2xsYXRvciB0byB1c2UgdGhlIHRhYmxlcyBpbiBVQ0EuIE5vdGUgb3B0aW9ucyBub3QgdGFrZW4KKyAgICAgKiBjYXJlIG9mIGhlcmUuCisgICAgICovCisgICAgZmluYWwgdm9pZCBzZXRXaXRoVUNBVGFibGVzKCkKKyAgICB7CisgICAgICAgIG1fY29udHJhY3Rpb25PZmZzZXRfID0gVUNBXy5tX2NvbnRyYWN0aW9uT2Zmc2V0XzsKKyAgICAgICAgbV9leHBhbnNpb25PZmZzZXRfID0gVUNBXy5tX2V4cGFuc2lvbk9mZnNldF87CisgICAgICAgIG1fZXhwYW5zaW9uXyA9IFVDQV8ubV9leHBhbnNpb25fOworICAgICAgICBtX2NvbnRyYWN0aW9uSW5kZXhfID0gVUNBXy5tX2NvbnRyYWN0aW9uSW5kZXhfOworICAgICAgICBtX2NvbnRyYWN0aW9uQ0VfID0gVUNBXy5tX2NvbnRyYWN0aW9uQ0VfOworICAgICAgICBtX3RyaWVfID0gVUNBXy5tX3RyaWVfOworICAgICAgICBtX2V4cGFuc2lvbkVuZENFXyA9IFVDQV8ubV9leHBhbnNpb25FbmRDRV87CisJICAgIG1fZXhwYW5zaW9uRW5kQ0VNYXhTaXplXyA9IFVDQV8ubV9leHBhbnNpb25FbmRDRU1heFNpemVfOworCSAgICBtX3Vuc2FmZV8gPSBVQ0FfLm1fdW5zYWZlXzsKKwkgICAgbV9jb250cmFjdGlvbkVuZF8gPSBVQ0FfLm1fY29udHJhY3Rpb25FbmRfOworCSAgICBtX21pblVuc2FmZV8gPSBVQ0FfLm1fbWluVW5zYWZlXzsgCisgICAgICAgIG1fbWluQ29udHJhY3Rpb25FbmRfID0gVUNBXy5tX21pbkNvbnRyYWN0aW9uRW5kXzsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGlzIGNvbGxhdG9yIHRvIHVzZSB0aGUgYWxsIG9wdGlvbnMgYW5kIHRhYmxlcyBpbiBVQ0EuIAorICAgICAqLworICAgIGZpbmFsIHZvaWQgc2V0V2l0aFVDQURhdGEoKQorICAgIHsKKyAgICAJbV9hZGRpdGlvbjNfID0gVUNBXy5tX2FkZGl0aW9uM187CisgICAgCW1fYm90dG9tM18gPSBVQ0FfLm1fYm90dG9tM187CisgICAgCW1fYm90dG9tQ291bnQzXyA9IFVDQV8ubV9ib3R0b21Db3VudDNfOworICAgIAltX2Nhc2VGaXJzdF8gPSBVQ0FfLm1fY2FzZUZpcnN0XzsKKyAgICAJbV9jYXNlU3dpdGNoXyA9IFVDQV8ubV9jYXNlU3dpdGNoXzsKKyAgICAJbV9jb21tb24zXyA9IFVDQV8ubV9jb21tb24zXzsKKyAgICAJbV9jb250cmFjdGlvbk9mZnNldF8gPSBVQ0FfLm1fY29udHJhY3Rpb25PZmZzZXRfOworICAgIAlzZXREZWNvbXBvc2l0aW9uKFVDQV8uZ2V0RGVjb21wb3NpdGlvbigpKTsKKyAgICAJbV9kZWZhdWx0Q2FzZUZpcnN0XyA9IFVDQV8ubV9kZWZhdWx0Q2FzZUZpcnN0XzsKKyAgICAJbV9kZWZhdWx0RGVjb21wb3NpdGlvbl8gPSBVQ0FfLm1fZGVmYXVsdERlY29tcG9zaXRpb25fOworICAgIAltX2RlZmF1bHRJc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF8gCisgICAgCSAgICAgICAgICAgICAgICAgICAgICAgICAgID0gVUNBXy5tX2RlZmF1bHRJc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF87CisgICAgCW1fZGVmYXVsdElzQ2FzZUxldmVsXyA9IFVDQV8ubV9kZWZhdWx0SXNDYXNlTGV2ZWxfOworICAgIAltX2RlZmF1bHRJc0ZyZW5jaENvbGxhdGlvbl8gPSBVQ0FfLm1fZGVmYXVsdElzRnJlbmNoQ29sbGF0aW9uXzsKKyAgICAJbV9kZWZhdWx0SXNIaXJhZ2FuYTRfID0gVUNBXy5tX2RlZmF1bHRJc0hpcmFnYW5hNF87CisgICAgCW1fZGVmYXVsdFN0cmVuZ3RoXyA9IFVDQV8ubV9kZWZhdWx0U3RyZW5ndGhfOworICAgIAltX2RlZmF1bHRWYXJpYWJsZVRvcFZhbHVlXyA9IFVDQV8ubV9kZWZhdWx0VmFyaWFibGVUb3BWYWx1ZV87CisgICAgCW1fZXhwYW5zaW9uT2Zmc2V0XyA9IFVDQV8ubV9leHBhbnNpb25PZmZzZXRfOworICAgIAltX2lzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkXyA9IFVDQV8ubV9pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF87CisgICAgCW1faXNDYXNlTGV2ZWxfID0gVUNBXy5tX2lzQ2FzZUxldmVsXzsKKyAgICAJbV9pc0ZyZW5jaENvbGxhdGlvbl8gPSBVQ0FfLm1faXNGcmVuY2hDb2xsYXRpb25fOworICAgIAltX2lzSGlyYWdhbmE0XyA9IFVDQV8ubV9pc0hpcmFnYW5hNF87CisgICAgCW1faXNKYW1vU3BlY2lhbF8gPSBVQ0FfLm1faXNKYW1vU3BlY2lhbF87CisgICAgCW1faXNTaW1wbGUzXyA9IFVDQV8ubV9pc1NpbXBsZTNfOworICAgIAltX21hc2szXyA9IFVDQV8ubV9tYXNrM187CisgICAgCW1fbWluQ29udHJhY3Rpb25FbmRfID0gVUNBXy5tX21pbkNvbnRyYWN0aW9uRW5kXzsKKyAgICAJbV9taW5VbnNhZmVfID0gVUNBXy5tX21pblVuc2FmZV87CisgICAgCW1fcnVsZXNfID0gVUNBXy5tX3J1bGVzXzsKKyAgICAJc2V0U3RyZW5ndGgoVUNBXy5nZXRTdHJlbmd0aCgpKTsKKyAgICAJbV90b3AzXyA9IFVDQV8ubV90b3AzXzsKKyAgICAJbV90b3BDb3VudDNfID0gVUNBXy5tX3RvcENvdW50M187CisgICAgCW1fdmFyaWFibGVUb3BWYWx1ZV8gPSBVQ0FfLm1fdmFyaWFibGVUb3BWYWx1ZV87CisgICAgCXNldFdpdGhVQ0FUYWJsZXMoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCB3aGV0aGVyIGEgY2hhciBjaGFyYWN0ZXIgaXMgcG90ZW50aWFsbHkgInVuc2FmZSIgZm9yIHVzZSBhcyBhIAorICAgICAqIGNvbGxhdGlvbiBzdGFydGluZyBwb2ludC4gIlVuc2FmZSIgY2hhcmFjdGVycyBhcmUgY29tYmluaW5nIG1hcmtzIG9yIAorICAgICAqIHRob3NlIGJlbG9uZ2luZyB0byBzb21lIGNvbnRyYWN0aW9uIHNlcXVlbmNlIGZyb20gdGhlIG9mZnNldCAxIG9ud2FyZHMuCisgICAgICogRS5nLiBpZiAiQUJDIiBpcyB0aGUgb25seSBjb250cmFjdGlvbiwgdGhlbiAnQicgYW5kIAorICAgICAqICdDJyBhcmUgY29uc2lkZXJlZCB1bnNhZmUuIElmIHdlIGhhdmUgYW5vdGhlciBjb250cmFjdGlvbiAiWkEiIHdpdGggCisgICAgICogdGhlIG9uZSBhYm92ZSwgdGhlbiAnQScsICdCJywgJ0MnIGFyZSAidW5zYWZlIiBidXQgJ1onIGlzIG5vdC4gCisgICAgICogQHBhcmFtIGNoIGNoYXJhY3RlciB0byBkZXRlcm1pbgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBjaCBpcyB1bnNhZmUsIGZhbHNlIG90aGVyd2lzZQorICAgICAqLworCWZpbmFsIGJvb2xlYW4gaXNVbnNhZmUoY2hhciBjaCkgCisJeworICAgIAlpZiAoY2ggPCBtX21pblVuc2FmZV8pIHsKKwkgICAgICAgIHJldHVybiBmYWxzZTsKKwkgICAgfQorCQorCSAgICBpZiAoY2ggPj0gKEhFVVJJU1RJQ19TSVpFXyA8PCBIRVVSSVNUSUNfU0hJRlRfKSkgeworCSAgICAgIAlpZiAoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGNoKSB8fCBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGNoKSkgeworCSAgICAgICAgICAgIC8vICBUcmFpbCBzdXJyb2dhdGUgYXJlIGFsd2F5cyBjb25zaWRlcmVkIHVuc2FmZS4KKwkgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKwkgICAgICAgIH0KKwkgICAgICAgIGNoICY9IEhFVVJJU1RJQ19PVkVSRkxPV19NQVNLXzsKKwkgICAgICAgIGNoICs9IEhFVVJJU1RJQ19PVkVSRkxPV19PRkZTRVRfOworCSAgICB9CisJICAgIGludCB2YWx1ZSA9IG1fdW5zYWZlX1tjaCA+PiBIRVVSSVNUSUNfU0hJRlRfXTsKKwkgICAgcmV0dXJuICgodmFsdWUgPj4gKGNoICYgSEVVUklTVElDX01BU0tfKSkgJiAxKSAhPSAwOworCX0KKwkKKwkvKioKKwkgKiBBcHByb3hpbWF0ZSBkZXRlcm1pbmF0aW9uIGlmIGEgY2hhciBjaGFyYWN0ZXIgaXMgYXQgYSBjb250cmFjdGlvbiBlbmQuCisJICogR3VhcmFudGVlZCB0byBiZSB0cnVlIGlmIGEgY2hhcmFjdGVyIGlzIGF0IHRoZSBlbmQgb2YgYSBjb250cmFjdGlvbiwKKwkgKiBvdGhlcndpc2UgaXQgaXMgbm90IGRldGVybWluaXN0aWMuCisJICogQHBhcmFtIGNoIGNoYXJhY3RlciB0byBiZSBkZXRlcm1pbmVkCisJICovCisJZmluYWwgYm9vbGVhbiBpc0NvbnRyYWN0aW9uRW5kKGNoYXIgY2gpIAorCXsKKwkJaWYgKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoY2gpKSB7CisgICAgICAJCXJldHVybiB0cnVlOworCQl9CisKKyAgICAJaWYgKGNoIDwgbV9taW5Db250cmFjdGlvbkVuZF8pIHsKKyAgICAgICAgCXJldHVybiBmYWxzZTsKKyAgICAJfQorCisgICAJCWlmIChjaCA+PSAoSEVVUklTVElDX1NJWkVfIDw8IEhFVVJJU1RJQ19TSElGVF8pKSB7CisgICAgICAgIAljaCAmPSBIRVVSSVNUSUNfT1ZFUkZMT1dfTUFTS187CisgICAgICAgIAljaCArPSBIRVVSSVNUSUNfT1ZFUkZMT1dfT0ZGU0VUXzsKKyAgICAJfQorICAgIAlpbnQgdmFsdWUgPSBtX2NvbnRyYWN0aW9uRW5kX1tjaCA+PiBIRVVSSVNUSUNfU0hJRlRfXTsKKwkgICAgcmV0dXJuICgodmFsdWUgPj4gKGNoICYgSEVVUklTVElDX01BU0tfKSkgJiAxKSAhPSAwOworCX0KKwkKKwkvKioKKwkgKiBSZXRyaWV2ZSB0aGUgdGFnIG9mIGEgc3BlY2lhbCBjZQorCSAqIEBwYXJhbSBjZSBjZSB0byB0ZXN0CisJICogQHJldHVybiB0YWcgb2YgY2UKKwkgKi8KKwlzdGF0aWMgaW50IGdldFRhZyhpbnQgY2UpIAorCXsKKwkJcmV0dXJuIChjZSAmIENFX1RBR19NQVNLXykgPj4gQ0VfVEFHX1NISUZUXzsKKwl9CisgICAgCisgICAgLyoqIAorCSAqIENoZWNraW5nIGlmIGNlIGlzIHNwZWNpYWwKKwkgKiBAcGFyYW0gY2UgdG8gY2hlY2sKKwkgKiBAcmV0dXJuIHRydWUgaWYgY2UgaXMgc3BlY2lhbAorCSAqLworCXN0YXRpYyBib29sZWFuIGlzU3BlY2lhbChpbnQgY2UpCisJeworCQlyZXR1cm4gKGNlICYgQ0VfU1BFQ0lBTF9GTEFHXykgPT0gQ0VfU1BFQ0lBTF9GTEFHXzsgCisJfQorCisgICAgLyoqCisgICAgICogQ2hlY2tzIGlmIHRoZSBhcmd1bWVudCBjZSBpcyBhIGNvbnRpbnVhdGlvbgorICAgICAqIEBwYXJhbSBjZSBjb2xsYXRpb24gZWxlbWVudCB0byB0ZXN0CisgICAgICogQHJldHVybiB0cnVlIGlmIGNlIGlzIGEgY29udGludWF0aW9uCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGJvb2xlYW4gaXNDb250aW51YXRpb24oaW50IGNlKSAKKyAgICB7CisgICAgICAgIHJldHVybiBjZSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSIAorICAgICAgICAgICAgICAgICAgICAgICAmJiAoY2UgJiBDRV9DT05USU5VQVRJT05fVEFHXykgPT0gQ0VfQ09OVElOVUFUSU9OX1RBR187CisgICAgfQorICAgIAorICAgIC8vIHByb3RlY3RlZCBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9ycyBhIFJ1bGVCYXNlZENvbGxhdG9yIGZyb20gdGhlIGFyZ3VtZW50IGxvY2FsZS4KKyAgICAgKiBJZiBubyByZXNvdXJjZSBidW5kbGUgaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBsb2NhbGUsIFVDQSBpcyB1c2VkIAorICAgICAqIGluc3RlYWQuCisgICAgICogQHBhcmFtIGxvY2FsZQorICAgICAqIEBleGNlcHRpb24gRXhjZXB0aW9uIHRocm93biB3aGVuIHRoZXJlJ3MgYW4gZXJyb3IgY3JlYXRpbmcgdGhlIENvbGxhdG9yCisgICAgICovCisgICAgUnVsZUJhc2VkQ29sbGF0b3IoTG9jYWxlIGxvY2FsZSkgLy8gdGhyb3dzIEV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgUmVzb3VyY2VCdW5kbGUgcmIgPSBJQ1VMb2NhbGVEYXRhLmdldExvY2FsZUVsZW1lbnRzKGxvY2FsZSk7CisJICAgIGluaXRVdGlsaXR5KCk7CisJICAgIGlmIChyYiAhPSBudWxsKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIE9iamVjdCBlbGVtZW50cyA9IHJiLmdldE9iamVjdCgiQ29sbGF0aW9uRWxlbWVudHMiKTsKKyAgICAgICAgICAgICAgICBpZiAoZWxlbWVudHMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBPYmplY3RbXVtdIHJ1bGVzID0gKE9iamVjdFtdW10pZWxlbWVudHM7CisgICAgICAgICAgICAgICAgICAgIG1fcnVsZXNfID0gKFN0cmluZylydWxlc1sxXVsxXTsKKyAgICAgICAgICAgICAgICAgICAgLy8gJSVDb2xsYXRpb25CaW4KKyAgICAgICAgICAgICAgICAgICAgYnl0ZSBtYXBbXSA9IChieXRlIFtdKXJ1bGVzWzBdWzFdOworICAgICAgICAgICAgICAgICAgICBCdWZmZXJlZElucHV0U3RyZWFtIGlucHV0ID0gCisgICAgICAgIAkJCSAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQnVmZmVyZWRJbnB1dFN0cmVhbSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbShtYXApKTsKKyAgICAgICAgCQkJQ29sbGF0b3JSZWFkZXIgcmVhZGVyID0gbmV3IENvbGxhdG9yUmVhZGVyKGlucHV0LCBmYWxzZSk7CisgICAgICAgIAkJCWlmIChtYXAubGVuZ3RoID4gTUlOX0JJTkFSWV9EQVRBX1NJWkVfKSB7CisgICAgICAgIAkJCSAgICByZWFkZXIucmVhZCh0aGlzLCBudWxsKTsKKyAgICAgICAgCQkgICAgfSAKKyAgICAgICAgCQkgICAgZWxzZSB7CisgICAgICAgIAkJCSAgICByZWFkZXIucmVhZEhlYWRlcih0aGlzKTsKKyAgICAgICAgCQkJICAgIHJlYWRlci5yZWFkT3B0aW9ucyh0aGlzKTsKKyAgICAgICAgCQkJICAgIC8vIGR1cGxpY2F0aW5nIFVDQV8ncyBkYXRhCisgICAgICAgIAkJCSAgICBzZXRXaXRoVUNBVGFibGVzKCk7CisgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgIGluaXQoKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAvLyBpZiBmYWlsZWQgdXNlIFVDQS4KKyAgICAgICAgICAgIH0KKwkgICAgfQorCSAgICBzZXRXaXRoVUNBRGF0YSgpOworICAgIH0gCisgICAgCisgICAgLy8gcHJpdmF0ZSBpbm5lciBjbGFzc2VzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8vIHByaXZhdGUgdmFyaWFibGVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUaGUgc21hbGxlc3QgbmF0dXJhbCB1bnNhZmUgb3IgY29udHJhY3Rpb24gZW5kIGNoYXIgY2hhcmFjdGVyIGJlZm9yZSAKKyAgICAgKiB0YWlsb3JpbmcuCisgICAgICogVGhpcyBpcyBhIGNvbWJpbmluZyBtYXJrLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBERUZBVUxUX01JTl9IRVVSSVNUSUNfID0gMHgzMDA7CisgICAgLyoqIAorICAgICAqIEhldXJpc3RpYyB0YWJsZSB0YWJsZSBzaXplLiBTaXplIGlzIDMyIGJ5dGVzLCAxIGJpdCBmb3IgZWFjaCAKKyAgICAgKiBsYXRpbiAxIGNoYXIsIGFuZCBzb21lIHBvd2VyIG9mIHR3byBmb3IgaGFzaGluZyB0aGUgcmVzdCBvZiB0aGUgY2hhcnMuICAgCisgICAgICogU2l6ZSBpbiBieXRlcy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICovCisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBIRVVSSVNUSUNfU0laRV8gPSAxMDU2OworICAgIC8qKiAKKyAgICAgKiBNYXNrIHZhbHVlIGRvd24gdG8gInNvbWUgcG93ZXIgb2YgdHdvIiAtIDEsCisgICAgICogbnVtYmVyIG9mIGJpdHMsIG5vdCBudW0gb2YgYnl0ZXMuCisgICAgICovCisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBIRVVSSVNUSUNfT1ZFUkZMT1dfTUFTS18gPSAweDFmZmY7CisJLyoqCisJICogVW5zYWZlIGNoYXJhY3RlciBzaGlmdAorCSAqLworCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIRVVSSVNUSUNfU0hJRlRfID0gMzsKKwkvKioKKwkgKiBVbnNhZmUgY2hhcmFjdGVyIGFkZGl0aW9uIGZvciBjaGFyYWN0ZXIgdG9vIGxhcmdlLCBpdCBoYXMgdG8gYmUgZm9sZGVkCisJICogdGhlbiBpbmNyZW1lbnRlZC4KKwkgKi8KKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEhFVVJJU1RJQ19PVkVSRkxPV19PRkZTRVRfID0gMjU2OworCS8qKiAKKyAgICAgKiBNYXNrIHZhbHVlIHRvIGdldCBvZmZzZXQgaW4gaGV1cmlzdGljIHRhYmxlLgorICAgICAqLworCXByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgSEVVUklTVElDX01BU0tfID0gNzsKKwkKKwlwcml2YXRlIGludCBtX2Nhc2VTd2l0Y2hfOworICAgIHByaXZhdGUgaW50IG1fY29tbW9uM187CisgICAgcHJpdmF0ZSBpbnQgbV9tYXNrM187CisgICAgLyoqIAorICAgICAqIFdoZW4gc3dpdGNoaW5nIGNhc2UsIHdlIG5lZWQgdG8gYWRkIG9yIHN1YnRyYWN0IGRpZmZlcmVudCB2YWx1ZXMuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9hZGRpdGlvbjNfOyAKKyAgICAvKiogCisgICAgICogVXBwZXIgcmFuZ2Ugd2hlbiBjb21wcmVzc2luZyAKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX3RvcDNfOworICAgIC8qKiAKKyAgICAgKiBVcHBlciByYW5nZSB3aGVuIGNvbXByZXNzaW5nIAorICAgICAqLyAKKyAgICBwcml2YXRlIGludCBtX2JvdHRvbTNfOyAKKyAgICBwcml2YXRlIGludCBtX3RvcENvdW50M187CisgICAgcHJpdmF0ZSBpbnQgbV9ib3R0b21Db3VudDNfOwkKKwkvKioKKwkgKiBDYXNlIGZpcnN0IGNvbnN0YW50cworCSAqLworCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDQVNFX1NXSVRDSF8gPSAweEMwOworCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOT19DQVNFX1NXSVRDSF8gPSAwOworCS8qKgorCSAqIENhc2UgbGV2ZWwgY29uc3RhbnRzCisJICovCisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX1JFTU9WRV9DQVNFXyA9IDB4M0Y7CisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX0tFRVBfQ0FTRV8gPSAweEZGOworCS8qKgorCSAqIENhc2Ugc3RyZW5ndGggbWFzaworCSAqLworCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9DQVNFX01BU0tfM18gPSAweEZGOworCS8qKiAKKwkgKiBTb3J0a2V5IHNpemUgZmFjdG9yLiBWYWx1ZXMgY2FuIGJlIGNoYW5nZWQuCisJICovCisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgZG91YmxlIFBST1BPUlRJT05fMl8gPSAwLjU7CisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgZG91YmxlIFBST1BPUlRJT05fM18gPSAwLjY2NzsKKworCS8vIFRoZXNlIHZhbHVlcyBjb21lIGZyb20gdGhlIFVDQSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisJCisJLyoqIAorCSAqIFRoaXMgaXMgYW4gZW51bSB0aGF0IGxpc3RzIG1hZ2ljIHNwZWNpYWwgYnl0ZSB2YWx1ZXMgZnJvbSB0aGUgCisJICogZnJhY3Rpb25hbCBVQ0EgCisJICovCisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBCWVRFX1pFUk9fID0gMHgwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgQllURV9MRVZFTF9TRVBBUkFUT1JfID0gKGJ5dGUpMHgwMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIEJZVEVfU09SVEtFWV9HTFVFXyA9IChieXRlKTB4MDI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBCWVRFX1NISUZUX1BSRUZJWF8gPSAoYnl0ZSkweDAzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgQllURV9VTlNISUZURURfTUlOXyA9IEJZVEVfU0hJRlRfUFJFRklYXzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIEJZVEVfRklSU1RfVUNBXyA9IEJZVEVfQ09NTU9OXzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIEJZVEVfTEFTVF9MQVRJTl9QUklNQVJZXyA9IChieXRlKTB4NEM7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBCWVRFX0ZJUlNUX05PTl9MQVRJTl9QUklNQVJZXyA9IChieXRlKTB4NEQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBCWVRFX1VOU0hJRlRFRF9NQVhfID0gKGJ5dGUpMHhGRjsKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVE9UQUxfMl8gPSBDT01NT05fVE9QXzJfIC0gQ09NTU9OX0JPVFRPTV8yXyAtIDE7IAorCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGTEFHX0JJVF9NQVNLX0NBU0VfU1dJVENIX09GRl8gPSAweDgwOworCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGTEFHX0JJVF9NQVNLX0NBU0VfU1dJVENIX09OXyA9IDB4NDA7CisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENPTU1PTl9UT1BfQ0FTRV9TV0lUQ0hfT0ZGXzNfID0gMHg4NTsKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09NTU9OX1RPUF9DQVNFX1NXSVRDSF9MT1dFUl8zXyA9IDB4NDU7CisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENPTU1PTl9UT1BfQ0FTRV9TV0lUQ0hfVVBQRVJfM18gPSAweEM1OworCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDT01NT05fQk9UVE9NXzNfID0gMHgwNTsKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09NTU9OX0JPVFRPTV9DQVNFX1NXSVRDSF9VUFBFUl8zXyA9IDB4ODY7CisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENPTU1PTl9CT1RUT01fQ0FTRV9TV0lUQ0hfTE9XRVJfM18gPSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09NTU9OX0JPVFRPTV8zXzsKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVE9QX0NPVU5UXzJfID0gKGludCkoUFJPUE9SVElPTl8yXyAqIFRPVEFMXzJfKTsKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQk9UVE9NX0NPVU5UXzJfID0gVE9UQUxfMl8gLSBUT1BfQ09VTlRfMl87CisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENPTU1PTl8yXyA9IENPTU1PTl9CT1RUT01fMl87CisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENPTU1PTl9VUFBFUl9GSVJTVF8zXyA9IDB4QzU7CisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENPTU1PTl9OT1JNQUxfM18gPSBDT01NT05fQk9UVE9NXzNfOworCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDT01NT05fNF8gPSAoYnl0ZSkweEZGOworCQorCS8qKgorCSAqIE1pbmltdW0gc2l6ZSByZXF1aXJlZCBmb3IgdGhlIGJpbmFyeSBjb2xsYXRpb24gZGF0YSBpbiBieXRlcy4KKwkgKiBTaXplIG9mIFVDQSBoZWFkZXIgKyBzaXplIG9mIG9wdGlvbnMgdG8gNCBieXRlcworCSAqLworCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNSU5fQklOQVJZX0RBVEFfU0laRV8gPSAoNDIgKyA4KSA8PCAyOyAgICAgCisJCisJLyoqCisJICogSWYgdGhpcyBjb2xsYXRvciBpcyB0byBnZW5lcmF0ZSBvbmx5IHNpbXBsZSB0ZXJ0aWFyaWVzIGZvciBmYXN0IHBhdGgKKwkgKi8KKwlwcml2YXRlIGJvb2xlYW4gbV9pc1NpbXBsZTNfOworCQorCS8qKgorICAgICAqIEZyZW5jaCBjb2xsYXRpb24gc29ydGluZyBmbGFnCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIG1faXNGcmVuY2hDb2xsYXRpb25fOworICAgIC8qKgorICAgICAqIEZsYWcgaW5kaWNhdGluZyBpZiBzaGlmdGVkIGlzIHJlcXVlc3RlZCBmb3IgUXVhdGVybmFyeSBhbHRlcm5hdGUKKyAgICAgKiBoYW5kbGluZy4gSWYgdGhpcyBpcyBub3QgdHJ1ZSwgdGhlIGRlZmF1bHQgZm9yIGFsdGVybmF0ZSBoYW5kbGluZyB3aWxsCisgICAgICogYmUgbm9uLWlnbm9yYWJsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gbV9pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF87IAorICAgIC8qKiAKKyAgICAgKiBFeHRyYSBjYXNlIGxldmVsIGZvciBzb3J0aW5nCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIG1faXNDYXNlTGV2ZWxfOworCQorCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTT1JUX0JVRkZFUl9JTklUX1NJWkVfID0gMTI4OworCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTT1JUX0JVRkZFUl9JTklUX1NJWkVfMV8gPSAKKwkJCQkJCQkJCQkJCQlTT1JUX0JVRkZFUl9JTklUX1NJWkVfIDw8IDM7CisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNPUlRfQlVGRkVSX0lOSVRfU0laRV8yXyA9IFNPUlRfQlVGRkVSX0lOSVRfU0laRV87CisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNPUlRfQlVGRkVSX0lOSVRfU0laRV8zXyA9IFNPUlRfQlVGRkVSX0lOSVRfU0laRV87CisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNPUlRfQlVGRkVSX0lOSVRfU0laRV9DQVNFXyA9IAorCQkJCQkJCQkJCQkJU09SVF9CVUZGRVJfSU5JVF9TSVpFXyA+PiAyOworCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTT1JUX0JVRkZFUl9JTklUX1NJWkVfNF8gPSBTT1JUX0JVRkZFUl9JTklUX1NJWkVfOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9DT05USU5VQVRJT05fVEFHXyA9IDB4QzA7CisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX1JFTU9WRV9DT05USU5VQVRJT05fTUFTS18gPSAweEZGRkZGRjNGOworCisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExBU1RfQllURV9NQVNLXyA9IDB4RkY7CisJCisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX1JFU0VUX1RPUF9WQUxVRV8gPSAweDlGMDAwMzAzOworCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9ORVhUX1RPUF9WQUxVRV8gPSAweEU4OTYwMzAzOworCisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBTT1JUX0NBU0VfQllURV9TVEFSVF8gPSAoYnl0ZSkweDgwOworCXByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgU09SVF9DQVNFX1NISUZUX1NUQVJUXyA9IChieXRlKTc7CisJCisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBTT1JUX0xFVkVMX1RFUk1JTkFUT1JfID0gMTsKKwkKKwkvKioKKwkgKiBDRSBidWZmZXIgc2l6ZQorCSAqLworCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9CVUZGRVJfU0laRV8gPSA1MTI7CisgICAgCisgICAgLyoqCisgICAgICogQnVuY2ggb2YgdXRpbGl0eSBpdGVyYXRvcnMKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIG1fc3JjVXRpbEl0ZXJfOworICAgIHByaXZhdGUgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIG1fc3JjVXRpbENvbEVJdGVyXzsgICAKKyAgICBwcml2YXRlIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIG1fdGd0VXRpbEl0ZXJfOworICAgIHByaXZhdGUgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIG1fdGd0VXRpbENvbEVJdGVyXzsKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IGNvbXBhcmlzb24gZmxhZ3MKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gbV91dGlsQ29tcGFyZTBfOworICAgIHByaXZhdGUgYm9vbGVhbiBtX3V0aWxDb21wYXJlMV87CisgICAgcHJpdmF0ZSBib29sZWFuIG1fdXRpbENvbXBhcmUyXzsKKyAgICBwcml2YXRlIGJvb2xlYW4gbV91dGlsQ29tcGFyZTNfOworICAgIHByaXZhdGUgYm9vbGVhbiBtX3V0aWxDb21wYXJlNF87CisgICAgcHJpdmF0ZSBib29sZWFuIG1fdXRpbENvbXBhcmU1XzsgCisgICAgLyoqCisgICAgICogVXRpbGl0eSBieXRlIGJ1ZmZlcgorICAgICAqLworICAgIHByaXZhdGUgYnl0ZSBtX3V0aWxCeXRlczBfW107CisgICAgcHJpdmF0ZSBieXRlIG1fdXRpbEJ5dGVzMV9bXTsKKyAgICBwcml2YXRlIGJ5dGUgbV91dGlsQnl0ZXMyX1tdOworICAgIHByaXZhdGUgYnl0ZSBtX3V0aWxCeXRlczNfW107CisgICAgcHJpdmF0ZSBieXRlIG1fdXRpbEJ5dGVzNF9bXTsKKyAgICBwcml2YXRlIGJ5dGUgbV91dGlsQnl0ZXM1X1tdOworICAgIAorICAgIHByaXZhdGUgaW50IG1fdXRpbEJ5dGVzQ291bnQwXzsKKyAgICBwcml2YXRlIGludCBtX3V0aWxCeXRlc0NvdW50MV87CisgICAgcHJpdmF0ZSBpbnQgbV91dGlsQnl0ZXNDb3VudDJfOworICAgIHByaXZhdGUgaW50IG1fdXRpbEJ5dGVzQ291bnQzXzsKKyAgICBwcml2YXRlIGludCBtX3V0aWxCeXRlc0NvdW50NF87CisgICAgcHJpdmF0ZSBpbnQgbV91dGlsQnl0ZXNDb3VudDVfOworICAgIHByaXZhdGUgaW50IG1fdXRpbENvdW50MF87CisgICAgcHJpdmF0ZSBpbnQgbV91dGlsQ291bnQxXzsKKyAgICBwcml2YXRlIGludCBtX3V0aWxDb3VudDJfOworICAgIHByaXZhdGUgaW50IG1fdXRpbENvdW50M187CisgICAgcHJpdmF0ZSBpbnQgbV91dGlsQ291bnQ0XzsKKyAgICBwcml2YXRlIGludCBtX3V0aWxDb3VudDVfOworICAgIAorICAgIHByaXZhdGUgaW50IG1fdXRpbEZyZW5jaFN0YXJ0XzsgCisgICAgcHJpdmF0ZSBpbnQgbV91dGlsRnJlbmNoRW5kXzsKKyAgICAKKyAgICAvKiogCisgICAgICogUHJlcGFyaW5nIHRoZSBDRSBidWZmZXJzLiB3aWxsIGJlIGZpbGxlZCBkdXJpbmcgdGhlIHByaW1hcnkgcGhhc2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX3NyY1V0aWxDRUJ1ZmZlcl9bXTsgCisgICAgcHJpdmF0ZSBpbnQgbV90Z3RVdGlsQ0VCdWZmZXJfW107CisgICAgcHJpdmF0ZSBpbnQgbV9zcmNVdGlsQ0VCdWZmZXJTaXplXzsKKyAgICBwcml2YXRlIGludCBtX3RndFV0aWxDRUJ1ZmZlclNpemVfOworICAgIAorICAgIHByaXZhdGUgaW50IG1fc3JjVXRpbENvbnRPZmZzZXRfOworICAgIHByaXZhdGUgaW50IG1fdGd0VXRpbENvbnRPZmZzZXRfOworICAgIAorICAgIHByaXZhdGUgaW50IG1fc3JjVXRpbE9mZnNldF87CisgICAgcHJpdmF0ZSBpbnQgbV90Z3RVdGlsT2Zmc2V0XzsKKyAgICAKKyAgICAvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIDIgYnl0ZXMgb2YgcHJpbWFyeSBvcmRlciBhbmQgYWRkcyBpdCB0byB0aGUgcHJpbWFyeSBieXRlIGFycmF5CisgICAgICogQHBhcmFtIGNlIGN1cnJlbnQgY2UKKyAgICAgKiBAcGFyYW0gbm90SXNDb250aW51YXRpb24gZmxhZyBpbmRpY2F0aW5nIGlmIHRoZSBjdXJyZW50IGJ5dGVzIGJlbG9uZyB0byAKKyAgICAgKiAJCQlhIGNvbnRpbnVhdGlvbiBjZQorICAgICAqIEBwYXJhbSBkb1NoaWZ0IGZsYWcgaW5kaWNhdGluZyBpZiBjZSBpcyB0byBiZSBzaGlmdGVkCisgICAgICogQHBhcmFtIGxlYWRQcmltYXJ5IGxlYWQgcHJpbWFyeSB1c2VkIGZvciBjb21wcmVzc2lvbgorICAgICAqIEBwYXJhbSBjb21tb25Cb3R0b200IGNvbW1vbiBieXRlIHZhbHVlIGZvciBRdWF0ZXJuYXJ5CisgICAgICogQHBhcmFtIGJvdHRvbUNvdW50NCBzbWFsbGVzdCBieXRlIHZhbHVlIGZvciBRdWF0ZXJuYXJ5CisgICAgICogQHJldHVybiB0aGUgbmV3IGxlYWQgcHJpbWFyeSBmb3IgY29tcHJlc3Npb24KKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGludCBkb1ByaW1hcnlCeXRlcyhpbnQgY2UsIGJvb2xlYW4gbm90SXNDb250aW51YXRpb24sIAorICAgIAkJCQkJCSAgICAgIGJvb2xlYW4gZG9TaGlmdCwgaW50IGxlYWRQcmltYXJ5LAorICAgIAkJCQkJCSAgICAgIGludCBjb21tb25Cb3R0b200LCBpbnQgYm90dG9tQ291bnQ0KQorICAgIHsKKyAgICAJCisgICAgCWludCBwMiA9IChjZSA+Pj0gMTYpICYgTEFTVF9CWVRFX01BU0tfOyAvLyBpbiBpbnRzIGZvciB1bnNpZ25lZCAKKyAgICAgICAgaW50IHAxID0gY2UgPj4+IDg7ICAvLyBjb21wYXJpc29uCisgICAgCWlmIChkb1NoaWZ0KSB7CisgICAgCQlpZiAobV91dGlsQ291bnQ0XyA+IDApIHsKKyAgICAgICAgICAgIAl3aGlsZSAobV91dGlsQ291bnQ0XyA+IGJvdHRvbUNvdW50NCkgeworICAgICAgICAgICAgCQltX3V0aWxCeXRlczRfID0gYXBwZW5kKG1fdXRpbEJ5dGVzNF8sIG1fdXRpbEJ5dGVzQ291bnQ0XywKKyAgICAgICAgICAgIAkJCQkgICAgICAgICAgICAgKGJ5dGUpKGNvbW1vbkJvdHRvbTQgKyBib3R0b21Db3VudDQpKTsKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDRfICsrOworICAgICAgICAgICAJCQltX3V0aWxDb3VudDRfIC09IGJvdHRvbUNvdW50NDsKKyAgICAgICAgICAgCQl9CisgICAgICAgICAgIAkJbV91dGlsQnl0ZXM0XyA9IGFwcGVuZChtX3V0aWxCeXRlczRfLCBtX3V0aWxCeXRlc0NvdW50NF8sCisJCQkJCQkJICAgICAgICAgICAoYnl0ZSkoY29tbW9uQm90dG9tNCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChtX3V0aWxDb3VudDRfIC0gMSkpKTsKKyAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50NF8gKys7CisgICAgICAgICAgIAkJbV91dGlsQ291bnQ0XyA9IDA7CisgICAgICAgIAl9CisgICAgICAgIAkvLyBkZWFsaW5nIHdpdGggYSB2YXJpYWJsZSBhbmQgd2UncmUgdHJlYXRpbmcgdGhlbSBhcyBzaGlmdGVkCisgICAgICAgICAgICAvLyBUaGlzIGlzIGEgc2hpZnRlZCBpZ25vcmFibGUKKyAgICAgICAgICAgIGlmIChwMSAhPSAwKSB7IAorICAgICAgICAgICAgIAkvLyB3ZSBuZWVkIHRvIGNoZWNrIHRoaXMgc2luY2Ugd2UgY291bGQgYmUgaW4gY29udGludWF0aW9uCisgICAgICAgICAgICAgCW1fdXRpbEJ5dGVzNF8gPSBhcHBlbmQobV91dGlsQnl0ZXM0XywgbV91dGlsQnl0ZXNDb3VudDRfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKXAxKTsKKyAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50NF8gKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAocDIgIT0gMCkgeworICAgICAgICAgICAgCW1fdXRpbEJ5dGVzNF8gPSBhcHBlbmQobV91dGlsQnl0ZXM0XywgbV91dGlsQnl0ZXNDb3VudDRfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKXAyKTsKKyAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50NF8gKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgeworICAgICAgICAJLy8gTm90ZTogVGhpcyBjb2RlIGFzc3VtZXMgdGhhdCB0aGUgdGFibGUgaXMgd2VsbCBidWlsdCAKKyAgICAgICAgCS8vIGkuZS4gbm90IGhhdmluZyAwIGJ5dGVzIHdoZXJlIHRoZXkgYXJlIG5vdCBzdXBwb3NlZCB0byBiZS4KKyAgICAgICAJCS8vIFVzdWFsbHksIHdlJ2xsIGhhdmUgbm9uLXplcm8gcHJpbWFyeTEgJiBwcmltYXJ5MiwgZXhjZXB0IAorICAgICAgCQkvLyBpbiBjYXNlcyBvZiBMYXRpbk9uZSBhbmQgZnJpZW5kcywgd2hlbiBwcmltYXJ5MiB3aWxsIGJlCisgICAgICAgCQkvLyByZWd1bGFyIGFuZCBzaW1wbGUgc29ydGtleSBjYWxjIAorICAgICAgIAkJaWYgKHAxICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgCQlpZiAobm90SXNDb250aW51YXRpb24pIHsKKyAgICAgICAgICAgCQkJaWYgKGxlYWRQcmltYXJ5ID09IHAxKSB7CisgICAgICAgICAgICAgICAJCQltX3V0aWxCeXRlczFfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMV8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8sIChieXRlKXAyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArKzsKKyAgICAgICAgICAgCQkJfSAKKyAgICAgICAgICAgICAgICAgIAllbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgCWlmIChsZWFkUHJpbWFyeSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIAkJbV91dGlsQnl0ZXMxXyA9IGFwcGVuZChtX3V0aWxCeXRlczFfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXywgCisgICAgICAgICAgICAgICAgICAgIAkJCQkoYnl0ZSkoKHAxID4gbGVhZFByaW1hcnkpIAorICAgICAgICAgICAgICAgICAgICAJCQkJCQk/IEJZVEVfVU5TSElGVEVEX01BWF8gCisgICAgICAgICAgICAgICAgICAgICAgCQkJCQkJOiBCWVRFX1VOU0hJRlRFRF9NSU5fKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfICsrOworICAgICAgICAgICAgICAgICAgICAJfQorICAgICAgICAgICAgICAgICAgICAJaWYgKHAyID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgCQkvLyBvbmUgYnl0ZXIsIG5vdCBjb21wcmVzc2VkCisgICAgICAgICAgICAgICAgICAgICAgICAJbV91dGlsQnl0ZXMxXyA9IGFwcGVuZChtX3V0aWxCeXRlczFfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSlwMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfICsrOworICAgICAgICAgICAgICAgICAgICAgICAgCWxlYWRQcmltYXJ5ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgCX0gCisgICAgICAgICAgICAgICAgICAgIAllbHNlIGlmIChwMSA8IEJZVEVfRklSU1RfTk9OX0xBVElOX1BSSU1BUllfCisgICAgICAgICAgICAgICAgICAgIAkJICB8fCAocDEgCisgICAgICAgICAgICAgICAgICAgID4gKFJ1bGVCYXNlZENvbGxhdG9yLlVDQV9DT05TVEFOVFNfLkxBU1RfTk9OX1ZBUklBQkxFX1swXSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPj4+IDI0KQorICAgICAgICAgICAgICAgICAgICAJCQkmJiBwMSAKKyAgICAgICAgICAgICAgICAgICAgPCAoUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlNUQU5UU18uRklSU1RfSU1QTElDSVRfWzBdIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+Pj4gMjQpKSkgeworICAgICAgICAgICAgICAgICAgICAJCQkvLyBub3QgY29tcHJlc3NpYmxlCisgICAgICAgICAgICAgICAgICAgICAgICAJCWxlYWRQcmltYXJ5ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIAkJbV91dGlsQnl0ZXMxXyA9IGFwcGVuZChtX3V0aWxCeXRlczFfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKXAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfICsrOworICAgICAgICAgICAgICAgICAgICAgICAgCQltX3V0aWxCeXRlczFfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMV8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpcDIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8gKys7CisgICAgICAgICAgICAgICAgICAgIAl9IAorICAgICAgICAgICAgICAgICAgICAJZWxzZSB7IC8vIGNvbXByZXNzCisgICAgICAgICAgICAgICAgICAgIAkJbGVhZFByaW1hcnkgPSBwMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAltX3V0aWxCeXRlczFfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMV8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKXAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAltX3V0aWxCeXRlc0NvdW50MV8gKys7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMxXyA9IGFwcGVuZChtX3V0aWxCeXRlczFfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfLCAoYnl0ZSlwMik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfICsrOworICAgICAgICAgICAgICAgICAgICAJfQorICAgICAgICAgICAgICAgICAgCX0KKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIGVsc2UgeyAKKyAgICAgICAgICAgICAgICAJLy8gY29udGludWF0aW9uLCBhZGQgcHJpbWFyeSB0byB0aGUga2V5LCBubyBjb21wcmVzc2lvbgorICAgICAgICAgICAgICAgICAgCW1fdXRpbEJ5dGVzMV8gPSBhcHBlbmQobV91dGlsQnl0ZXMxXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfLCAoYnl0ZSlwMSk7CisgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArKzsKKyAgICAgICAgICAgICAgICAgIAlpZiAocDIgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworICAgICAgICAgICAgICAgICAgICAJbV91dGlsQnl0ZXMxXyA9IGFwcGVuZChtX3V0aWxCeXRlczFfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8sIChieXRlKXAyKTsgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBzZWNvbmQgcGFydAorICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfICsrOworICAgICAgICAgICAgICAgICAgCX0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgCX0KKyAgICAgICAJcmV0dXJuIGxlYWRQcmltYXJ5OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBzZWNvbmRhcnkgYnl0ZSBhbmQgYWRkcyBpdCB0byB0aGUgc2Vjb25kYXJ5IGJ5dGUgYXJyYXkKKyAgICAgKiBAcGFyYW0gY2UgY3VycmVudCBjZQorICAgICAqIEBwYXJhbSBub3RJc0NvbnRpbnVhdGlvbiBmbGFnIGluZGljYXRpbmcgaWYgdGhlIGN1cnJlbnQgYnl0ZXMgYmVsb25nIHRvIAorICAgICAqIAkJCWEgY29udGludWF0aW9uIGNlCisgICAgICogQHBhcmFtIGRvRnJlbmNoIGZsYWcgaW5kaWNhdG9yIGlmIGZyZW5jaCBzb3J0IGlzIHRvIGJlIHBlcmZvcm1lZAorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgdm9pZCBkb1NlY29uZGFyeUJ5dGVzKGludCBjZSwgYm9vbGVhbiBub3RJc0NvbnRpbnVhdGlvbiwKKyAgICAJCQkJCQkgCQkgICAgYm9vbGVhbiBkb0ZyZW5jaCkKKyAgICB7CisgICAgCWludCBzID0gKGNlID4+PSA4KSAmIExBU1RfQllURV9NQVNLXzsgLy8gaW50IGZvciBjb21wYXJpc29uCisgICAgCWlmIChzICE9IDApIHsKKyAgICAJCWlmICghZG9GcmVuY2gpIHsKKyAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGNvbXByZXNzaW9uIGNvZGUuCisgICAgICAgICAgICAgICAgaWYgKHMgPT0gQ09NTU9OXzJfICYmIG5vdElzQ29udGludWF0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgbV91dGlsQ291bnQyXyArKzsKKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgCWlmIChtX3V0aWxDb3VudDJfID4gMCkgeworICAgICAgICAgICAgICAgICAgICAJaWYgKHMgPiBDT01NT05fMl8pIHsgLy8gbm90IG5lY2Vzc2FyeSBmb3IgNHRoIGxldmVsLgorICAgICAgICAgICAgICAgICAgICAJCXdoaWxlIChtX3V0aWxDb3VudDJfID4gVE9QX0NPVU5UXzJfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAJCW1fdXRpbEJ5dGVzMl8gPSBhcHBlbmQobV91dGlsQnl0ZXMyXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50Ml8sCisgICAgICAgICAgICAgICAgICAgICAgICAJCQkJKGJ5dGUpKENPTU1PTl9UT1BfMl8gLSBUT1BfQ09VTlRfMl8pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDJfICsrOworICAgICAgICAgICAgICAgICAgICAgICAgCQltX3V0aWxDb3VudDJfIC09IFRPUF9DT1VOVF8yXzsKKyAgICAgICAgICAgICAgICAgICAgICAJCX0KKyAgICAgICAgICAgICAgICAgICAgICAJCW1fdXRpbEJ5dGVzMl8gPSBhcHBlbmQobV91dGlsQnl0ZXMyXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQyXywKKyAgICAgICAgICAgICAgICAgICAgICAJCQkJICAgICAgICAgICAgICAgKGJ5dGUpKENPTU1PTl9UT1BfMl8gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSAobV91dGlsQ291bnQyXyAtIDEpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDJfICsrOworICAgICAgICAgICAgICAgICAgICAJfSAKKyAgICAgICAgICAgICAgICAgICAgCWVsc2UgeworICAgICAgICAgICAgICAgICAgICAJCXdoaWxlIChtX3V0aWxDb3VudDJfID4gQk9UVE9NX0NPVU5UXzJfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAJCW1fdXRpbEJ5dGVzMl8gPSBhcHBlbmQobV91dGlsQnl0ZXMyXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50Ml8sCisgICAgICAgICAgICAgICAgICAgICAgICAJCQkoYnl0ZSkoQ09NTU9OX0JPVFRPTV8yXyArIEJPVFRPTV9DT1VOVF8yXykpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50Ml8gKys7CisgICAgICAgICAgICAgICAgICAgICAgICAJCW1fdXRpbENvdW50Ml8gLT0gQk9UVE9NX0NPVU5UXzJfOworICAgICAgICAgICAgICAgICAgICAgIAkJfQorICAgICAgICAgICAgICAgICAgICAgIAkJbV91dGlsQnl0ZXMyXyA9IGFwcGVuZChtX3V0aWxCeXRlczJfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDJfLAorICAgICAgICAgICAgICAgICAgICAgIAkJCQkgICAgICAgICAgICAgICAoYnl0ZSkoQ09NTU9OX0JPVFRPTV8yXyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChtX3V0aWxDb3VudDJfIC0gMSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50Ml8gKys7CisgICAgICAgICAgICAgICAgICAgIAl9CisgICAgICAgICAgICAgICAgICAgIAltX3V0aWxDb3VudDJfID0gMDsKKyAgICAgICAgICAgICAgICAgIAl9CisgICAgICAgICAgICAgICAgICAJbV91dGlsQnl0ZXMyXyA9IGFwcGVuZChtX3V0aWxCeXRlczJfLCBtX3V0aWxCeXRlc0NvdW50Ml8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKXMpOworICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50Ml8gKys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMyXyA9IGFwcGVuZChtX3V0aWxCeXRlczJfLCBtX3V0aWxCeXRlc0NvdW50Ml8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSlzKTsKKyAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQyXyArKzsKKyAgICAgICAgICAgICAgICAgIC8vIERvIHRoZSBzcGVjaWFsIGhhbmRsaW5nIGZvciBGcmVuY2ggc2Vjb25kYXJpZXMKKyAgICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gZ2V0IGNvbnRpbnVhdGlvbiBlbGVtZW50cyBhbmQgZG8gaW50ZXJtZWRpYXRlIAorICAgICAgICAgICAgICAgICAgLy8gcmVzdG9yZSAKKyAgICAgICAgICAgICAgICAgIC8vIGFiYzFjMmMzZGUgd2l0aCBmcmVuY2ggc2Vjb25kYXJpZXMgbmVlZCB0byBiZSBlZGMxYzJjM2JhIAorICAgICAgICAgICAgICAgICAgLy8gTk9UIGVkYzNjMmMxYmEKKyAgICAgICAgICAgICAgICAgIGlmIChub3RJc0NvbnRpbnVhdGlvbikgeworICAgICAgICAgICAgICAgICAgICAJaWYgKG1fdXRpbEZyZW5jaFN0YXJ0XyAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgCS8vIHJldmVyc2Ugc2Vjb25kYXJpZXMgZnJvbSBmcmVuY2hTdGFydFB0ciB1cCB0byAKKyAgICAgICAgICAgICAgICAgICAgICAgIAkvLyBmcmVuY2hFbmRQdHIKKyAgICAgICAgICAgICAgICAgICAgICAJCXJldmVyc2VCdWZmZXIobV91dGlsQnl0ZXMyXyk7CisgICAgICAgICAgICAgICAgICAgICAgCQltX3V0aWxGcmVuY2hTdGFydF8gPSAtMTsgCisgICAgICAgICAgICAgICAgICAgIAl9CisgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIAlpZiAobV91dGlsRnJlbmNoU3RhcnRfID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgCQltX3V0aWxGcmVuY2hTdGFydF8gID0gbV91dGlsQnl0ZXNDb3VudDJfIC0gMjsKKyAgICAgICAgICAgICAgICAgICAgCX0KKyAgICAgICAgICAgICAgICAgICAgCW1fdXRpbEZyZW5jaEVuZF8gPSBtX3V0aWxCeXRlc0NvdW50Ml8gLSAxOworICAgICAgICAgICAgICAgICAgfQorICAgICAgICAJfQorICAgIAl9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldmVyc2UgdGhlIGFyZ3VtZW50IGJ1ZmZlciAKKyAgICAgKiBAcGFyYW0gYnVmZmVyIHRvIHJldmVyc2UKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcmV2ZXJzZUJ1ZmZlcihieXRlIGJ1ZmZlcltdKSAKKyAgICB7IAorICAgIAlpbnQgc3RhcnQgPSBtX3V0aWxGcmVuY2hTdGFydF87CisgICAgCWludCBlbmQgPSBtX3V0aWxGcmVuY2hFbmRfOworICAgIAl3aGlsZSAoc3RhcnQgPCBlbmQpIHsgCisgICAgCQlieXRlIGIgPSBidWZmZXJbc3RhcnRdOyAKKyAgICAJCWJ1ZmZlcltzdGFydCArK10gPSBidWZmZXJbZW5kXTsgCisgICAgCQlidWZmZXJbZW5kIC0tXSA9IGI7IAorICAgIAl9CisJfQorCisJLyoqCisJICogSW5zZXJ0IHRoZSBjYXNlIHNoaWZ0aW5nIGJ5dGUgaWYgcmVxdWlyZWQKKwkgKiBAcGFyYW0gY2FzZXNoaWZ0IHZhbHVlCisJICogQHJldHVybiBuZXcgY2FzZXNoaWZ0IHZhbHVlCisJICovCisJcHJpdmF0ZSBmaW5hbCBpbnQgZG9DYXNlU2hpZnQoaW50IGNhc2VzaGlmdCkgCisJeworICAJCWlmIChjYXNlc2hpZnQgID09IDApIHsKKyAgICAJCW1fdXRpbEJ5dGVzMF8gPSBhcHBlbmQobV91dGlsQnl0ZXMwXywgbV91dGlsQnl0ZXNDb3VudDBfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU09SVF9DQVNFX0JZVEVfU1RBUlRfKTsKKyAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQwXyArKzsKKyAgICAJCWNhc2VzaGlmdCA9IFNPUlRfQ0FTRV9TSElGVF9TVEFSVF87CisgIAkJfQorICAJCXJldHVybiBjYXNlc2hpZnQ7CisJfQorCisJLyoqCisJICogUGVyZm9ybXMgdGhlIGNhc2luZyBzb3J0CisJICogQHBhcmFtIHRlcnRpYXJ5IGJ5dGUgaW4gaW50cyBmb3IgZWFzeSBjb21wYXJpc29uCisJICogQHBhcmFtIG5vdElzQ29udGludWF0aW9uIGZsYWcgaW5kaWNhdGluZyBpZiB0aGUgY3VycmVudCBieXRlcyBiZWxvbmcgdG8gCisgICAgICogCQkJYSBjb250aW51YXRpb24gY2UKKwkgKiBAcGFyYW0gY2FzZXNoaWZ0CisJICogQHJldHVybiB0aGUgbmV3IHZhbHVlIG9mIGNhc2Ugc2hpZnQKKwkgKi8KKwlwcml2YXRlIGZpbmFsIGludCBkb0Nhc2VCeXRlcyhpbnQgdGVydGlhcnksIGJvb2xlYW4gbm90SXNDb250aW51YXRpb24sIAorCQkJCQkJCSAgICAgIGludCBjYXNlc2hpZnQpCisJeworCQljYXNlc2hpZnQgPSBkb0Nhc2VTaGlmdChjYXNlc2hpZnQpOworICAgICAgICAgICAgICAJCQorICAgICAgICBpZiAobm90SXNDb250aW51YXRpb24gJiYgdGVydGlhcnkgIT0gMCkgeworICAgICAgICAJYnl0ZSBjYXNlYml0cyA9IChieXRlKSh0ZXJ0aWFyeSAmIDB4QzApOworICAgICAgICAgICAgaWYgKG1fY2FzZUZpcnN0XyA9PSBBdHRyaWJ1dGVWYWx1ZS5VUFBFUl9GSVJTVF8pIHsKKyAgICAgICAgICAgICAgICBpZiAoY2FzZWJpdHMgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczBfW21fdXRpbEJ5dGVzQ291bnQwXyAtIDFdIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfD0gKDEgPDwgKC0tIGNhc2VzaGlmdCkpOworICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAvLyBzZWNvbmQgYml0CisgICAgICAgICAgICAgICAgICAgICBjYXNlc2hpZnQgPSBkb0Nhc2VTaGlmdChjYXNlc2hpZnQgLSAxKTsKKyAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzMF9bbV91dGlsQnl0ZXNDb3VudDBfIC0gMV0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8PSAoKGNhc2ViaXRzID4+IDYpICYgMSkgPDwgKC0tIGNhc2VzaGlmdCk7CisgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChjYXNlYml0cyAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzMF9bbV91dGlsQnl0ZXNDb3VudDBfIC0gMV0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHw9IDEgPDwgKC0tIGNhc2VzaGlmdCk7CisgICAgICAgICAgICAgICAgICAgIC8vIHNlY29uZCBiaXQKKyAgICAgICAgICAgICAgICAgICAgY2FzZXNoaWZ0ID0gZG9DYXNlU2hpZnQoY2FzZXNoaWZ0KTsKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMwX1ttX3V0aWxCeXRlc0NvdW50MF8gLSAxXSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8PSAoKGNhc2ViaXRzID4+IDcpICYgMSkgPDwgKC0tIGNhc2VzaGlmdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBjYXNlc2hpZnQgLS07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgICAgICAgCisJCXJldHVybiBjYXNlc2hpZnQ7CisJfQorCQorCS8qKgorCSAqIEdldHMgdGhlIHRlcnRpYXJ5IGJ5dGUgYW5kIGFkZHMgaXQgdG8gdGhlIHRlcnRpYXJ5IGJ5dGUgYXJyYXkKKyAgICAgKiBAcGFyYW0gdGVydGlhcnkgYnl0ZSBpbiBpbnQgZm9yIGVhc3kgY29tcGFyaXNvbgorICAgICAqIEBwYXJhbSBub3RJc0NvbnRpbnVhdGlvbiBmbGFnIGluZGljYXRpbmcgaWYgdGhlIGN1cnJlbnQgYnl0ZXMgYmVsb25nIHRvIAorICAgICAqIAkJCWEgY29udGludWF0aW9uIGNlCisJICovCisJcHJpdmF0ZSBmaW5hbCB2b2lkIGRvVGVydGlhcnlCeXRlcyhpbnQgdGVydGlhcnksIGJvb2xlYW4gbm90SXNDb250aW51YXRpb24pCisJeworCQlpZiAodGVydGlhcnkgIT0gMCkgeworCQkJLy8gVGhpcyBpcyBjb21wcmVzc2lvbiBjb2RlLgorICAgICAgICAgICAgLy8gc2VxdWVuY2Ugc2l6ZSBjaGVjayBpcyBpbmNsdWRlZCBpbiB0aGUgaWYgY2xhdXNlCisgICAgICAgICAgICBpZiAodGVydGlhcnkgPT0gbV9jb21tb24zXyAmJiBub3RJc0NvbnRpbnVhdGlvbikgeworICAgICAgICAgICAgICAgICBtX3V0aWxDb3VudDNfICsrOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgCWludCBjb21tb24zID0gbV9jb21tb24zXyAmIExBU1RfQllURV9NQVNLXzsKKyAgICAgICAgICAgICAgICBpZiAodGVydGlhcnkgPiBjb21tb24zICYmIG1fY29tbW9uM18gPT0gQ09NTU9OX05PUk1BTF8zXykgeworICAgICAgICAgICAgICAgICAgICB0ZXJ0aWFyeSArPSBtX2FkZGl0aW9uM187CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRlcnRpYXJ5IDw9IGNvbW1vbjMgCisgICAgICAgICAgICAgICAgICAgICAgICAgJiYgbV9jb21tb24zXyA9PSBDT01NT05fVVBQRVJfRklSU1RfM18pIHsKKyAgICAgICAgICAgICAgICAgICAgdGVydGlhcnkgLT0gbV9hZGRpdGlvbjNfOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobV91dGlsQ291bnQzXyA+IDApIHsKKyAgICAgICAgICAgICAgICAJaWYgKHRlcnRpYXJ5ID4gY29tbW9uMykgeworICAgICAgICAgICAgICAgIAkJd2hpbGUgKG1fdXRpbENvdW50M18gPiBtX3RvcENvdW50M18pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIAltX3V0aWxCeXRlczNfID0gYXBwZW5kKG1fdXRpbEJ5dGVzM18sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDNfLAorICAgICAgICAgICAgICAgICAgICAgICAgCQkJCQkoYnl0ZSkobV90b3AzXyAtIG1fdG9wQ291bnQzXykpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQzXyArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIAltX3V0aWxDb3VudDNfIC09IG1fdG9wQ291bnQzXzsKKyAgICAgICAgICAgICAgICAgICAgICAJfQorICAgICAgICAgICAgICAgICAgICAgIAltX3V0aWxCeXRlczNfID0gYXBwZW5kKG1fdXRpbEJ5dGVzM18sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50M18sCisgICAgICAgICAgICAgICAgICAgICAgICAJCSAgICAgICAgICAgICAgIChieXRlKShtX3RvcDNfIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSAobV91dGlsQ291bnQzXyAtIDEpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50M18gKys7CisgICAgICAgICAgICAgICAgIAl9IAorICAgICAgICAgICAgICAgICAJZWxzZSB7CisgICAgICAgICAgICAgICAgIAkJd2hpbGUgKG1fdXRpbENvdW50M18gPiBtX2JvdHRvbUNvdW50M18pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIAltX3V0aWxCeXRlczNfID0gYXBwZW5kKG1fdXRpbEJ5dGVzM18sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDNfLAorICAgICAgICAgICAgICAgICAgICAgICAJCSAgICAgICAgICAgICAoYnl0ZSkobV9ib3R0b20zXyArIG1fYm90dG9tQ291bnQzXykpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQzXyArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIAltX3V0aWxDb3VudDNfIC09IG1fYm90dG9tQ291bnQzXzsKKyAgICAgICAgICAgICAgICAgICAgICAJfQorICAgICAgICAgICAgICAgICAgICAgIAltX3V0aWxCeXRlczNfID0gYXBwZW5kKG1fdXRpbEJ5dGVzM18sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50M18sCisgICAgICAgICAgICAgICAgICAgICAgICAJCSAgICAgICAgICAgICAgIChieXRlKShtX2JvdHRvbTNfIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAobV91dGlsQ291bnQzXyAtIDEpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50M18gKys7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbV91dGlsQ291bnQzXyA9IDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzM18gPSBhcHBlbmQobV91dGlsQnl0ZXMzXywgbV91dGlsQnl0ZXNDb3VudDNfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKXRlcnRpYXJ5KTsKKyAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50M18gKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKwl9CisJCisJLyoqCisJICogR2V0cyB0aGUgUXVhdGVybmFyeSBieXRlIGFuZCBhZGRzIGl0IHRvIHRoZSBRdWF0ZXJuYXJ5IGJ5dGUgYXJyYXkKKyAgICAgKiBAcGFyYW0gaXNDb2RlUG9pbnRIaXJhZ2FuYSBmbGFnIGluZGljYXRvciBpZiB0aGUgcHJldmlvdXMgY29kZXBvaW50IAorICAgICAqIAkJCXdlIGRlYWx0IHdpdGggd2FzIEhpcmFnYW5hCisgICAgICogQHBhcmFtIGNvbW1vbkJvdHRvbTQgc21hbGxlc3QgY29tbW9uIFF1YXRlcm5hcnkgYnl0ZSAKKyAgICAgKiBAcGFyYW0gYm90dG9tQ291bnQ0IHNtYWxsZXN0IFF1YXRlcm5hcnkgYnl0ZSAKKyAgICAgKiBAcGFyYW0gaGlyYWdhbmE0IGhpcmFnYW5hIFF1YXRlcm5hcnkgYnl0ZQorCSAqLworCXByaXZhdGUgZmluYWwgdm9pZCBkb1F1YXRlcm5hcnlCeXRlcyhib29sZWFuIGlzQ29kZVBvaW50SGlyYWdhbmEsCisJCQkJCQkJCQkgIGludCBjb21tb25Cb3R0b200LCBpbnQgYm90dG9tQ291bnQ0LAorCQkJCQkJCQkJICBieXRlIGhpcmFnYW5hNCkKKwl7CisJCWlmIChpc0NvZGVQb2ludEhpcmFnYW5hKSB7IC8vIFRoaXMgd2FzIEhpcmFnYW5hLCBuZWVkIHRvIG5vdGUgaXQKKwkJCWlmIChtX3V0aWxDb3VudDRfID4gMCkgeyAvLyBDbG9zZSB0aGlzIHBhcnQKKyAgICAgICAgICAgIAl3aGlsZSAobV91dGlsQ291bnQ0XyA+IGJvdHRvbUNvdW50NCkgeworICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczRfID0gYXBwZW5kKG1fdXRpbEJ5dGVzNF8sIG1fdXRpbEJ5dGVzQ291bnQ0XywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKGNvbW1vbkJvdHRvbTQgCisgICAgICAgICAgICAgICAgICAgIAkJCQkJCQkJCSsgYm90dG9tQ291bnQ0KSk7CisgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQ0XyArKzsKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsQ291bnQ0XyAtPSBib3R0b21Db3VudDQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzNF8gPSBhcHBlbmQobV91dGlsQnl0ZXM0XywgbV91dGlsQnl0ZXNDb3VudDRfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKGNvbW1vbkJvdHRvbTQgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChtX3V0aWxDb3VudDRfIC0gMSkpKTsKKyAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50NF8gKys7CisgICAgICAgICAgICAgICAgbV91dGlsQ291bnQ0XyA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX3V0aWxCeXRlczRfID0gYXBwZW5kKG1fdXRpbEJ5dGVzNF8sIG1fdXRpbEJ5dGVzQ291bnQ0XywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpcmFnYW5hNCk7IC8vIEFkZCB0aGUgSGlyYWdhbmEKKyAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQ0XyArKzsKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7IC8vIFRoaXMgd2Fzbid0IEhpcmFnYW5hLCBzbyB3ZSBjYW4gY29udGludWUgYWRkaW5nIHN0dWZmCisgICAgICAgICAgICBtX3V0aWxDb3VudDRfICsrOworICAgICAgICB9CisJfQorCQorCS8qKgorCSAqIEl0ZXJhdGVzIHRocm91Z2ggdGhlIGFyZ3VtZW50IHN0cmluZyBmb3IgYWxsIGNlcy4KKwkgKiBTcGxpdCB0aGUgY2VzIGludG8gdGhlaXIgcmVsZXZhbnQgcHJpbWFyaWVzLCBzZWNvbmRhcmllcyBldGMuCisJICogQHBhcmFtIHNvdXJjZSBub3JtYWxpemVkIHN0cmluZworCSAqIEBwYXJhbSBkb0ZyZW5jaCBmbGFnIGluZGljYXRvciBpZiBzcGVjaWFsIGhhbmRsaW5nIG9mIEZyZW5jaCBoYXMgdG8gYmUKKwkgKiAJCQkJCWRvbmUKKwkgKiBAcGFyYW0gaGlyYWdhbmE0IG9mZnNldCBmb3IgSGlyYWdhbmEgcXVhdGVybmFyeQorCSAqIEBwYXJhbSBjb21tb25Cb3R0b200IHNtYWxsZXN0IGNvbW1vbiBxdWF0ZXJuYXJ5IGJ5dGUKKwkgKiBAcGFyYW0gYm90dG9tQ291bnQ0IHNtYWxsZXN0IHF1YXRlcm5hcnkgYnl0ZQorCSAqLworCXByaXZhdGUgZmluYWwgdm9pZCBnZXRTb3J0S2V5Qnl0ZXMoU3RyaW5nIHNvdXJjZSwgYm9vbGVhbiBkb0ZyZW5jaCwKKwkJCQkJCQkJCSAgIGJ5dGUgaGlyYWdhbmE0LCBpbnQgY29tbW9uQm90dG9tNCwgCisJCQkJCQkJCQkgICBpbnQgYm90dG9tQ291bnQ0KQorCQkJCQkJCQkJICAgCisJeworCQlpbnQgYmFja3VwRGVjb21wb3NpdGlvbiA9IGdldERlY29tcG9zaXRpb24oKTsKKwkJc2V0RGVjb21wb3NpdGlvbihOT19ERUNPTVBPU0lUSU9OKTsgLy8gaGF2ZSB0byByZXZlcnQgdG8gYmFja3VwIGxhdGVyCisgICAgCW1fc3JjVXRpbEl0ZXJfLnNldFRleHQoc291cmNlKTsKKyAgICAgICAgbV9zcmNVdGlsQ29sRUl0ZXJfLnNldFRleHQobV9zcmNVdGlsSXRlcl8pOworICAgIAltX3V0aWxGcmVuY2hTdGFydF8gPSAtMTsgCisgICAgICAgIG1fdXRpbEZyZW5jaEVuZF8gPSAtMTsKKyAgICAJCisgICAgCS8vIHNjcmlwdG9yZGVyIG5vdCBpbXBsZW1lbnRlZCB5ZXQgCisgICAgCS8vIGNvbnN0IHVpbnQ4X3QgKnNjcmlwdE9yZGVyID0gY29sbC0+c2NyaXB0T3JkZXI7CisKKwkJYm9vbGVhbiBkb1NoaWZ0ID0gZmFsc2U7CisgICAgCWJvb2xlYW4gbm90SXNDb250aW51YXRpb24gPSBmYWxzZTsKKworICAgIAlpbnQgbGVhZFByaW1hcnkgPSAwOyAvLyBpbnQgZm9yIGVhc2llciBjb21wYXJpc29uCisgICAgCWludCBjYXNlU2hpZnQgPSAwOworCSAgICAKKyAgICAJd2hpbGUgKHRydWUpIHsKKyAgICAgICAgCWludCBjZSA9IG1fc3JjVXRpbENvbEVJdGVyXy5uZXh0KCk7CisgICAgICAgICAgICBpZiAoY2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgCWJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoY2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworICAgICAgICAgICAgCWNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBub3RJc0NvbnRpbnVhdGlvbiA9ICFpc0NvbnRpbnVhdGlvbihjZSk7CisKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBpZiAobm90SXNDb250aW51YXRpb24pIHsKKyAgICAgICAgICAgIAkJaWYgKHNjcmlwdE9yZGVyICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAJCXByaW1hcnkxID0gc2NyaXB0T3JkZXJbcHJpbWFyeTFdOworICAgICAgICAgICAgICAJCX0KKyAgICAgICAgICAgIAl9Ki8KKyAgICAgICAgICAgIGJvb2xlYW4gaXNQcmltYXJ5Qnl0ZUlnbm9yYWJsZSA9IChjZSAmIENFX1BSSU1BUllfTUFTS18pID09IDA7CisgICAgICAgICAgICAvLyBhY3R1YWxseSB3ZSBjYW4ganVzdCBjaGVjayB0aGF0IHRoZSBmaXJzdCBieXRlIGlzIDAKKyAgICAgICAgICAgIC8vIGdlbmVyYXRpb24gc3R1ZmZzIHRoZSBvcmRlciBsZWZ0IGZpcnN0CisgICAgICAgICAgICBib29sZWFuIGlzU21hbGxlclRoYW5WYXJpYWJsZVRvcCA9IChjZSA+Pj4gQ0VfUFJJTUFSWV9TSElGVF8pIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PSBtX3ZhcmlhYmxlVG9wVmFsdWVfOworICAgICAgICAgICAgZG9TaGlmdCA9IChtX2lzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkXyAKKyAgICAgICAgICAgIAkJCSYmICgobm90SXNDb250aW51YXRpb24gJiYgaXNTbWFsbGVyVGhhblZhcmlhYmxlVG9wIAorICAgIAkJCQkJCSYmICFpc1ByaW1hcnlCeXRlSWdub3JhYmxlKSAvLyBwcmltYXJ5IGJ5dGUgbm90IDAKKyAgICAJCQkJCXx8ICghbm90SXNDb250aW51YXRpb24gJiYgZG9TaGlmdCkpIAorICAgIAkJCQkJfHwgKGRvU2hpZnQgJiYgaXNQcmltYXJ5Qnl0ZUlnbm9yYWJsZSkpOworICAgICAgICAgICAgaWYgKGRvU2hpZnQgJiYgaXNQcmltYXJ5Qnl0ZUlnbm9yYWJsZSkgeworICAgIAkJCS8vIGFtZW5kbWVudCB0byB0aGUgVUNBIHNheXMgdGhhdCBwcmltYXJ5IGlnbm9yYWJsZXMgYW5kIG90aGVyIAorICAgIAkJCS8vIGlnbm9yYWJsZXMgc2hvdWxkIGJlIHJlbW92ZWQgaWYgZm9sbG93aW5nIGEgc2hpZnRlZCBjb2RlIAorICAgIAkJCS8vIHBvaW50CisgICAgICAgICAgICAgICAgLy8gaWYgd2Ugd2VyZSBzaGlmdGVkIGFuZCB3ZSBnb3QgYW4gaWdub3JhYmxlIGNvZGUgcG9pbnQKKyAgICAgICAgICAgICAgICAvLyB3ZSBzaG91bGQganVzdCBjb21wbGV0ZWx5IGlnbm9yZSBpdAorICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAKKyAgICAgICAgICAgIH0gCisJCQlsZWFkUHJpbWFyeSA9IGRvUHJpbWFyeUJ5dGVzKGNlLCBub3RJc0NvbnRpbnVhdGlvbiwgZG9TaGlmdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlYWRQcmltYXJ5LCBjb21tb25Cb3R0b200LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tQ291bnQ0KTsKKyAgICAgICAgICAgIGlmIChkb1NoaWZ0KSB7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisJCQlpZiAobV91dGlsQ29tcGFyZTJfKSB7CisgICAgICAgIAkJZG9TZWNvbmRhcnlCeXRlcyhjZSwgbm90SXNDb250aW51YXRpb24sCWRvRnJlbmNoKTsKKwkJCX0KKworCQkJaW50IHQgPSBjZSAmIExBU1RfQllURV9NQVNLXzsKKwkJCWlmICghbm90SXNDb250aW51YXRpb24pIHsKKyAgICAgICAgICAgICAgCXQgPSBjZSAmIENFX1JFTU9WRV9DT05USU5VQVRJT05fTUFTS187CisgICAgICAgICAgICB9CisgICAgICAgICAgICAJCisgICAgICAgICAgICBpZiAobV91dGlsQ29tcGFyZTBfKSB7CisgICAgICAgICAgICAgIAljYXNlU2hpZnQgPSBkb0Nhc2VCeXRlcyh0LCBub3RJc0NvbnRpbnVhdGlvbiwgY2FzZVNoaWZ0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKG5vdElzQ29udGludWF0aW9uKSB7CisgICAgICAgICAgICAgICAgIHQgXj0gbV9jYXNlU3dpdGNoXzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdCAmPSBtX21hc2szXzsKKyAgICAgICAgICAgICAgCQorICAgICAgICAgICAgaWYgKG1fdXRpbENvbXBhcmUzXykgeworICAgICAgICAgICAgCWRvVGVydGlhcnlCeXRlcyh0LCBub3RJc0NvbnRpbnVhdGlvbik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAobV91dGlsQ29tcGFyZTRfICYmIG5vdElzQ29udGludWF0aW9uKSB7IC8vIGNvbXBhcmUgcXVhZAorICAgICAgICAgICAgICAgIGRvUXVhdGVybmFyeUJ5dGVzKG1fc3JjVXRpbENvbEVJdGVyXy5tX2lzQ29kZVBvaW50SGlyYWdhbmFfLCAKKyAgICAgICAgICAgICAgICAJCQkgCSAgY29tbW9uQm90dG9tNCwgYm90dG9tQ291bnQ0LCBoaXJhZ2FuYTQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHNldERlY29tcG9zaXRpb24oYmFja3VwRGVjb21wb3NpdGlvbik7IC8vIHJldmVydHMgdG8gb3JpZ2luYWwJCisgICAgICAgIGlmIChtX3V0aWxGcmVuY2hTdGFydF8gIT0gLTEpIHsKKyAgICAgICAgCS8vIG9uZSBsYXN0IHJvdW5kIG9mIGNoZWNrcworICAgIAkJcmV2ZXJzZUJ1ZmZlcihtX3V0aWxCeXRlczJfKTsKKyAgCQl9CisJfQorCQorCS8qKgorCSAqIEZyb20gdGhlIGluZGl2aWR1YWwgc3RyZW5ndGggYnl0ZSByZXN1bHRzIHRoZSBmaW5hbCBjb21wYWN0IHNvcnRrZXkgCisJICogd2lsbCBiZSBjYWxjdWxhdGVkLgorCSAqIEBwYXJhbSBzb3VyY2UgdGV4dCBzdHJpbmcKKwkgKiBAcGFyYW0gZG9GcmVuY2ggZmxhZyBpbmRpY2F0aW5nIHRoYXQgc3BlY2lhbCBoYW5kbGluZyBvZiBGcmVuY2ggaGFzIHRvIAorCSAqIAkJCQkJYmUgZG9uZQorCSAqIEBwYXJhbSBjb21tb25Cb3R0b200IHNtYWxsZXN0IGNvbW1vbiBxdWF0ZXJuYXJ5IGJ5dGUKKwkgKiBAcGFyYW0gYm90dG9tQ291bnQ0IHNtYWxsZXN0IHF1YXRlcm5hcnkgYnl0ZQorCSAqIEByZXR1cm4gdGhlIGNvbXBhY3Qgc29ydGtleQorCSAqLworCXByaXZhdGUgZmluYWwgYnl0ZVtdIGdldFNvcnRLZXkoU3RyaW5nIHNvdXJjZSwgYm9vbGVhbiBkb0ZyZW5jaCwgCisJCQkJCQkJCQlpbnQgY29tbW9uQm90dG9tNCwgaW50IGJvdHRvbUNvdW50NCkKKwl7CisJCS8vIHdlIGhhdmUgZG9uZSBhbGwgdGhlIENFJ3MsIG5vdyBsZXQncyBwdXQgdGhlbSB0b2dldGhlciB0byBmb3JtIAorICAgICAgCS8vIGEga2V5IAorICAgICAgCWlmIChtX3V0aWxDb21wYXJlMl8pIHsKKyAgICAgICAgCWRvU2Vjb25kYXJ5KGRvRnJlbmNoKTsKKyAgICAgIAkJaWYgKG1fdXRpbENvbXBhcmUwXykgeworCQkJCWRvQ2FzZSgpOyAgICAgICAgCisgICAgICAJCX0KKyAgICAgIAkJaWYgKG1fdXRpbENvbXBhcmUzXykgeworICAgICAgCQkJZG9UZXJ0aWFyeSgpOworICAgICAgCQkJaWYgKG1fdXRpbENvbXBhcmU0XykgeworICAgICAgCQkJCWRvUXVhdGVybmFyeShjb21tb25Cb3R0b200LCBib3R0b21Db3VudDQpOworICAgICAgICAJCQlpZiAobV91dGlsQ29tcGFyZTVfKSB7CisgICAgICAgICAgCQkJCWRvSWRlbnRpY2FsKHNvdXJjZSk7CisgICAgICAgIAkJCX0KKworICAgICAgCQkJfQorICAgICAgCQl9CisgICAgICAJfQorICAgICAgCW1fdXRpbEJ5dGVzMV8gPSBhcHBlbmQobV91dGlsQnl0ZXMxXywgbV91dGlsQnl0ZXNDb3VudDFfLCAoYnl0ZSkwKTsKKyAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfICsrOworICAgICAgICBieXRlIHJlc3VsdFtdID0gKGJ5dGUgW10pbV91dGlsQnl0ZXMxXy5jbG9uZSgpOworICAgIAlyZXR1cm4gcmVzdWx0OworCX0KKwkKKwkvKioKKwkgKiBQYWNrcyB0aGUgRnJlbmNoIGJ5dGVzCisJICogQHBhcmFtIGNvdW50IGFycmF5IG9mIGNvbXByZXNzaW9uIGNvdW50cworCSAqLworCXByaXZhdGUgZmluYWwgdm9pZCBkb0ZyZW5jaCgpIAorCXsKKwkJZm9yIChpbnQgaSA9IDA7IGkgPCBtX3V0aWxCeXRlc0NvdW50Ml87IGkgKyspIHsKKwkJCWJ5dGUgcyA9IG1fdXRpbEJ5dGVzMl9bbV91dGlsQnl0ZXNDb3VudDJfIC0gaSAtIDFdOworCQkgICAgLy8gVGhpcyBpcyBjb21wcmVzc2lvbiBjb2RlLgorCQkgICAgaWYgKHMgPT0gQ09NTU9OXzJfKSB7CisJCSAgICAgICAgKysgbV91dGlsQ291bnQyXzsKKwkJICAgIH0gCisJCSAgICBlbHNlIHsKKwkJICAgICAgCWlmIChtX3V0aWxDb3VudDJfID4gMCkgeworCQkgICAgICAJCS8vIGdldHRpbmcgdGhlIHVuc2lnbmVkIHZhbHVlCisJCSAgICAgICAgCWlmICgocyAmIExBU1RfQllURV9NQVNLXykgPiBDT01NT05fMl8pIHsgCisJCSAgICAgICAgCQkvLyBub3QgbmVjZXNzYXJ5IGZvciA0dGggbGV2ZWwuCisJCSAgICAgICAgICAJCXdoaWxlIChtX3V0aWxDb3VudDJfID4gVE9QX0NPVU5UXzJfKSB7CisJCSAgICAgICAgICAgIAkJbV91dGlsQnl0ZXMxXyA9IGFwcGVuZChtX3V0aWxCeXRlczFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfLCAKKwkJICAgICAgICAgICAgCQkJCQkoYnl0ZSkoQ09NTU9OX1RPUF8yXyAtIFRPUF9DT1VOVF8yXykpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArKzsKKwkJICAgICAgICAgICAgCQltX3V0aWxDb3VudDJfIC09IFRPUF9DT1VOVF8yXzsKKwkJICAgICAgICAgIAkJfQorCQkgICAgICAgICAgCQltX3V0aWxCeXRlczFfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKShDT01NT05fVE9QXzJfIAorCQkgICAgICAgICAgCQkJCQkJCQkJICAtIChtX3V0aWxDb3VudDJfIC0gMSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArKzsKKwkJICAgICAgICAJfSAKKwkJICAgICAgICAJZWxzZSB7CisJCSAgICAgICAgICAJCXdoaWxlIChtX3V0aWxDb3VudDJfID4gQk9UVE9NX0NPVU5UXzJfKSB7CisJCSAgICAgICAgICAgIAkJbV91dGlsQnl0ZXMxXyA9IGFwcGVuZChtX3V0aWxCeXRlczFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfLCAKKwkJICAgICAgICAgICAgCQkJKGJ5dGUpKENPTU1PTl9CT1RUT01fMl8gKyBCT1RUT01fQ09VTlRfMl8pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8gKys7CisJCSAgICAgICAgICAgIAkJbV91dGlsQ291bnQyXyAtPSBCT1RUT01fQ09VTlRfMl87CisJCSAgICAgICAgICAJCX0KKwkJICAgICAgICAgIAkJbV91dGlsQnl0ZXMxXyA9IGFwcGVuZChtX3V0aWxCeXRlczFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8sICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKENPTU1PTl9CT1RUT01fMl8gCisJCSAgICAgICAgICAJCQkJCQkJCQkgICsgKG1fdXRpbENvdW50Ml8gLSAxKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfICsrOworCQkgICAgICAgIAl9CisJCSAgICAgICAgCW1fdXRpbENvdW50Ml8gPSAwOworCQkgICAgICAJfQorCQkgICAgICAJbV91dGlsQnl0ZXMxXyA9IGFwcGVuZChtX3V0aWxCeXRlczFfLCBtX3V0aWxCeXRlc0NvdW50MV8sIHMpOworICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArKzsKKwkJICAgIH0KKwkJfQorCQlpZiAobV91dGlsQ291bnQyXyA+IDApIHsKKwkJICAgIHdoaWxlIChtX3V0aWxDb3VudDJfID4gQk9UVE9NX0NPVU5UXzJfKSB7CisJCSAgICAgIAltX3V0aWxCeXRlczFfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMV8sIG1fdXRpbEJ5dGVzQ291bnQxXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkoQ09NTU9OX0JPVFRPTV8yXyAKKwkJICAgICAgCQkJCQkJCQkJCSsgQk9UVE9NX0NPVU5UXzJfKSk7CisgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfICsrOworCQkgICAgICAJbV91dGlsQ291bnQyXyAtPSBCT1RUT01fQ09VTlRfMl87CisJCSAgICB9CisJCSAgICBtX3V0aWxCeXRlczFfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMV8sIG1fdXRpbEJ5dGVzQ291bnQxXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKShDT01NT05fQk9UVE9NXzJfIAorCQkgICAgCQkJCQkJCQkJCSsgKG1fdXRpbENvdW50Ml8gLSAxKSkpOworICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfICsrOworCQl9CisJfQorCisJLyoqCisJICogQ29tcGFjdHMgdGhlIHNlY29uZGFyeSBieXRlcyBhbmQgc3RvcmVzIHRoZW0gaW50byB0aGUgcHJpbWFyeSBhcnJheQorCSAqIEBwYXJhbSBkb0ZyZW5jaCBmbGFnIGluZGljYXRvciB0aGF0IEZyZW5jaCBoYXMgdG8gYmUgaGFuZGxlZCBzcGVjaWFsbHkKKwkgKi8KKwlwcml2YXRlIGZpbmFsIHZvaWQgZG9TZWNvbmRhcnkoYm9vbGVhbiBkb0ZyZW5jaCkKKwl7CisJCWlmIChtX3V0aWxDb3VudDJfID4gMCkgeworICAgICAgICAgIAl3aGlsZSAobV91dGlsQ291bnQyXyA+IEJPVFRPTV9DT1VOVF8yXykgeworICAgICAgICAgICAgCW1fdXRpbEJ5dGVzMl8gPSBhcHBlbmQobV91dGlsQnl0ZXMyXywgbV91dGlsQnl0ZXNDb3VudDJfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKENPTU1PTl9CT1RUT01fMl8gCisgICAgICAgICAgICAJCQkJCSAJCQkJCQkrIEJPVFRPTV9DT1VOVF8yXykpOworICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQyXyArKzsKKyAgICAgICAgICAgIAltX3V0aWxDb3VudDJfIC09IEJPVFRPTV9DT1VOVF8yXzsKKyAgICAgICAgICAJfQorICAgICAgICAgIAltX3V0aWxCeXRlczJfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMl8sIG1fdXRpbEJ5dGVzQ291bnQyXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKENPTU1PTl9CT1RUT01fMl8gKyAKKyAgICAgICAgICAJCQkJCQkJCQkJCShtX3V0aWxDb3VudDJfIC0gMSkpKTsKKyAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQyXyArKzsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbV91dGlsQnl0ZXMxXyA9IGFwcGVuZChtX3V0aWxCeXRlczFfLCBtX3V0aWxCeXRlc0NvdW50MV8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNPUlRfTEVWRUxfVEVSTUlOQVRPUl8pOworICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8gKys7CisgICAgICAgIAorICAgICAgICBpZiAoZG9GcmVuY2gpIHsgLy8gZG8gdGhlIHJldmVyc2UgY29weQorICAgICAgICAgICAJZG9GcmVuY2goKTsKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgIAlpZiAobV91dGlsQnl0ZXMxXy5sZW5ndGggPD0gbV91dGlsQnl0ZXNDb3VudDFfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBtX3V0aWxCeXRlc0NvdW50Ml8pIHsKKyAgICAgICAgCQltX3V0aWxCeXRlczFfID0gaW5jcmVhc2UobV91dGlsQnl0ZXMxXywgbV91dGlsQnl0ZXNDb3VudDFfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDJfKTsKKyAgICAgICAgCX0KKyAgICAgICAgICAgCVN5c3RlbS5hcnJheWNvcHkobV91dGlsQnl0ZXMyXywgMCwgbV91dGlsQnl0ZXMxXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXywgbV91dGlsQnl0ZXNDb3VudDJfKTsKKyAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArPSBtX3V0aWxCeXRlc0NvdW50Ml87CisgICAgICAgIH0gCisJfQorCQorCS8qKgorCSAqIEluY3JlYXNlIGJ1ZmZlciBzaXplCisJICogQHBhcmFtIGFycmF5IGFycmF5IG9mIGJ5dGVzCisJICogQHBhcmFtIHNpemUgb2YgdGhlIGJ5dGUgYXJyYXkKKwkgKiBAcGFyYW0gaW5jcmVtZW50c2l6ZSBzaXplIHRvIGluY3JlYXNlCisJICogQHJldHVybiB0aGUgbmV3IGJ1ZmZlcgorCSAqLworCXByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGVbXSBpbmNyZWFzZShieXRlIGJ1ZmZlcltdLCBpbnQgc2l6ZSwgCisJCQkJCQkJCQkJIGludCBpbmNyZW1lbnRzaXplKQorCXsKKwkJYnl0ZSByZXN1bHRbXSA9IG5ldyBieXRlW2J1ZmZlci5sZW5ndGggKyBpbmNyZW1lbnRzaXplXTsKKwkJU3lzdGVtLmFycmF5Y29weShidWZmZXIsIDAsIHJlc3VsdCwgMCwgc2l6ZSk7CisJCXJldHVybiByZXN1bHQ7CisJfQorCQorCS8qKgorCSAqIEluY3JlYXNlIGJ1ZmZlciBzaXplCisJICogQHBhcmFtIGFycmF5IGFycmF5IG9mIGJ5dGVzCisJICogQHBhcmFtIHNpemUgb2YgdGhlIGJ5dGUgYXJyYXkKKwkgKiBAcGFyYW0gaW5jcmVtZW50c2l6ZSBzaXplIHRvIGluY3JlYXNlCisJICogQHJldHVybiB0aGUgbmV3IGJ1ZmZlcgorCSAqLworCXByaXZhdGUgc3RhdGljIGZpbmFsIGludFtdIGluY3JlYXNlKGludCBidWZmZXJbXSwgaW50IHNpemUsIAorCQkJCQkJCQkJCWludCBpbmNyZW1lbnRzaXplKQorCXsKKwkJaW50IHJlc3VsdFtdID0gbmV3IGludFtidWZmZXIubGVuZ3RoICsgaW5jcmVtZW50c2l6ZV07CisJCVN5c3RlbS5hcnJheWNvcHkoYnVmZmVyLCAwLCByZXN1bHQsIDAsIHNpemUpOworCQlyZXR1cm4gcmVzdWx0OworCX0KKwkKKwkvKioKKwkgKiBDb21wYWN0cyB0aGUgY2FzZSBieXRlcyBhbmQgc3RvcmVzIHRoZW0gaW50byB0aGUgcHJpbWFyeSBhcnJheQorCSAqLworCXByaXZhdGUgZmluYWwgdm9pZCBkb0Nhc2UoKQorCXsKKwkJbV91dGlsQnl0ZXMxXyA9IGFwcGVuZChtX3V0aWxCeXRlczFfLCBtX3V0aWxCeXRlc0NvdW50MV8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNPUlRfTEVWRUxfVEVSTUlOQVRPUl8pOworICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8gKys7CisJCWlmIChtX3V0aWxCeXRlczFfLmxlbmd0aCA8PSBtX3V0aWxCeXRlc0NvdW50MV8gKyBtX3V0aWxCeXRlc0NvdW50MF8pIHsKKwkJCW1fdXRpbEJ5dGVzMV8gPSBpbmNyZWFzZShtX3V0aWxCeXRlczFfLCBtX3V0aWxCeXRlc0NvdW50MV8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQwXyk7CisJCX0KKwkJU3lzdGVtLmFycmF5Y29weShtX3V0aWxCeXRlczBfLCAwLCBtX3V0aWxCeXRlczFfLCBtX3V0aWxCeXRlc0NvdW50MV8sIAorICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQwXyk7CisgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArPSBtX3V0aWxCeXRlc0NvdW50MF87CisJfQorCQorCS8qKgorCSAqIENvbXBhY3RzIHRoZSB0ZXJ0aWFyeSBieXRlcyBhbmQgc3RvcmVzIHRoZW0gaW50byB0aGUgcHJpbWFyeSBhcnJheQorCSAqLworCXByaXZhdGUgZmluYWwgdm9pZCBkb1RlcnRpYXJ5KCkKKwl7CisJCWlmIChtX3V0aWxDb3VudDNfID4gMCkgeworICAgICAgICAgIAlpZiAobV9jb21tb24zXyAhPSBDT01NT05fQk9UVE9NXzNfKSB7CisgICAgICAgICAgCQl3aGlsZSAobV91dGlsQ291bnQzXyA+PSBtX3RvcENvdW50M18pIHsKKyAgICAgICAgICAgICAgCQltX3V0aWxCeXRlczNfID0gYXBwZW5kKG1fdXRpbEJ5dGVzM18sIG1fdXRpbEJ5dGVzQ291bnQzXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkobV90b3AzXyAtIG1fdG9wQ291bnQzXykpOworICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50M18gKys7CisgICAgICAgICAgICAgIAkJbV91dGlsQ291bnQzXyAtPSBtX3RvcENvdW50M187CisgICAgICAgICAgICAJfQorICAgICAgICAgICAgCW1fdXRpbEJ5dGVzM18gPSBhcHBlbmQobV91dGlsQnl0ZXMzXywgbV91dGlsQnl0ZXNDb3VudDNfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKShtX3RvcDNfIC0gbV91dGlsQ291bnQzXykpOworICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQzXyArKzsKKyAgICAgICAgICAJfSAKKyAgICAgICAgICAJZWxzZSB7CisgICAgICAgICAgCQl3aGlsZSAobV91dGlsQ291bnQzXyA+IG1fYm90dG9tQ291bnQzXykgeworICAgICAgICAgICAgICAJCW1fdXRpbEJ5dGVzM18gPSBhcHBlbmQobV91dGlsQnl0ZXMzXywgbV91dGlsQnl0ZXNDb3VudDNfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkobV9ib3R0b20zXyAKKyAgICAgICAgICAgICAgCQkJCQkJCQkJCQkrIG1fYm90dG9tQ291bnQzXykpOworICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50M18gKys7CisgICAgICAgICAgICAgIAkJbV91dGlsQ291bnQzXyAtPSBtX2JvdHRvbUNvdW50M187CisgICAgICAgICAgICAJfQorICAgICAgICAgICAgCW1fdXRpbEJ5dGVzM18gPSBhcHBlbmQobV91dGlsQnl0ZXMzXywgbV91dGlsQnl0ZXNDb3VudDNfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKShtX2JvdHRvbTNfIAorICAgICAgICAgICAgCQkJCQkJCQkgICsgKG1fdXRpbENvdW50M18gLSAxKSkpOworICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQzXyArKzsKKyAgICAgICAgICAJfQorICAgICAgICB9CisgICAgICAgIG1fdXRpbEJ5dGVzMV8gPSBhcHBlbmQobV91dGlsQnl0ZXMxXywgbV91dGlsQnl0ZXNDb3VudDFfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTT1JUX0xFVkVMX1RFUk1JTkFUT1JfKTsKKyAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfICsrOworICAgICAgICBpZiAobV91dGlsQnl0ZXMxXy5sZW5ndGggPD0gbV91dGlsQnl0ZXNDb3VudDFfICsgbV91dGlsQnl0ZXNDb3VudDNfKSB7CisgICAgICAgIAltX3V0aWxCeXRlczFfID0gaW5jcmVhc2UobV91dGlsQnl0ZXMxXywgbV91dGlsQnl0ZXNDb3VudDFfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50M18pOworICAgICAgICB9CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobV91dGlsQnl0ZXMzXywgMCwgbV91dGlsQnl0ZXMxXywgbV91dGlsQnl0ZXNDb3VudDFfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50M18pOworICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8gKz0gbV91dGlsQnl0ZXNDb3VudDNfOworCX0KKwkKKwkvKioKKwkgKiBDb21wYWN0cyB0aGUgcXVhdGVybmFyeSBieXRlcyBhbmQgc3RvcmVzIHRoZW0gaW50byB0aGUgcHJpbWFyeSBhcnJheQorCSAqLworCXByaXZhdGUgZmluYWwgdm9pZCBkb1F1YXRlcm5hcnkoaW50IGNvbW1vbmJvdHRvbTQsIGludCBib3R0b21jb3VudDQpCisJeworCQlpZiAobV91dGlsQ291bnQ0XyA+IDApIHsKKyAgICAgICAgICAgIHdoaWxlIChtX3V0aWxDb3VudDRfID4gYm90dG9tY291bnQ0KSB7CisgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXM0XyA9IGFwcGVuZChtX3V0aWxCeXRlczRfLCBtX3V0aWxCeXRlc0NvdW50NF8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKGNvbW1vbmJvdHRvbTQgKyBib3R0b21jb3VudDQpKTsKKyAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50NF8gKys7CisgICAgICAgICAgICAgICAgbV91dGlsQ291bnQ0XyAtPSBib3R0b21jb3VudDQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX3V0aWxCeXRlczRfID0gYXBwZW5kKG1fdXRpbEJ5dGVzNF8sIG1fdXRpbEJ5dGVzQ291bnQ0XywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKShjb21tb25ib3R0b200CisgICAgICAgICAgICAJCQkJCQkJCQkrIChtX3V0aWxDb3VudDRfIC0gMSkpKTsKKyAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQ0XyArKzsKKyAgICAgICAgfQorICAgICAgICBtX3V0aWxCeXRlczFfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMV8sIG1fdXRpbEJ5dGVzQ291bnQxXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU09SVF9MRVZFTF9URVJNSU5BVE9SXyk7CisgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArKzsKKyAgICAgICAgaWYgKG1fdXRpbEJ5dGVzMV8ubGVuZ3RoIDw9IG1fdXRpbEJ5dGVzQ291bnQxXyArIG1fdXRpbEJ5dGVzQ291bnQ0XykgeworICAgICAgICAJbV91dGlsQnl0ZXMxXyA9IGluY3JlYXNlKG1fdXRpbEJ5dGVzMV8sIG1fdXRpbEJ5dGVzQ291bnQxXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDRfKTsKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG1fdXRpbEJ5dGVzNF8sIDAsIG1fdXRpbEJ5dGVzMV8sIG1fdXRpbEJ5dGVzQ291bnQxXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDRfKTsKKyAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfICs9IG1fdXRpbEJ5dGVzQ291bnQ0XzsKKwl9CisJCisJLyoqCisJICogRGVhbHMgd2l0aCB0aGUgaWRlbnRpY2FsIHNvcnQuCisJICogQXBwZW5kcyB0aGUgQk9DU1UgdmVyc2lvbiBvZiB0aGUgc291cmNlIHN0cmluZyB0byB0aGUgZW5kcyBvZiB0aGUKKwkgKiBieXRlIGJ1ZmZlci4KKwkgKiBAcGFyYW0gc291cmNlIHRleHQgc3RyaW5nCisJICovCisJcHJpdmF0ZSBmaW5hbCB2b2lkIGRvSWRlbnRpY2FsKFN0cmluZyBzb3VyY2UpCisJeworCQlpbnQgaXNpemUgPSBCT0NVLmdldENvbXByZXNzaW9uTGVuZ3RoKHNvdXJjZSk7CisJCW1fdXRpbEJ5dGVzMV8gPSBhcHBlbmQobV91dGlsQnl0ZXMxXywgbV91dGlsQnl0ZXNDb3VudDFfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTT1JUX0xFVkVMX1RFUk1JTkFUT1JfKTsKKyAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfICsrOworCQlpZiAobV91dGlsQnl0ZXMxXy5sZW5ndGggPD0gbV91dGlsQnl0ZXNDb3VudDFfICsgaXNpemUpIHsKKyAgICAgICAgCW1fdXRpbEJ5dGVzMV8gPSBpbmNyZWFzZShtX3V0aWxCeXRlczFfLCBtX3V0aWxCeXRlc0NvdW50MV8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgKyBpc2l6ZSk7CisgICAgICAgIH0KKyAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfID0gQk9DVS5jb21wcmVzcyhzb3VyY2UsIG1fdXRpbEJ5dGVzMV8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyk7IAorCX0KKwkKKwkvKioKKwkgKiBHZXRzIHRoZSBvZmZzZXQgb2YgdGhlIGZpcnN0IHVubWF0Y2hlZCBjaGFyYWN0ZXJzIGluIHNvdXJjZSBhbmQgdGFyZ2V0LgorCSAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIG9mZnNldCBvZiB0aGUgc3RhcnQgb2YgYSBjb250cmFjdGlvbiBvciBhIAorCSAqIGNvbWJpbmluZyBzZXF1ZW5jZSwgaWYgdGhlIGZpcnN0IGRpZmZlcmVuY2UgaXMgaW4gdGhlIG1pZGRsZSBvZiBzdWNoIGEgCisJICogc2VxdWVuY2UuCisJICogQHBhcmFtIHNvdXJjZSBzdHJpbmcKKwkgKiBAcGFyYW0gdGFyZ2V0IHN0cmluZworCSAqIEByZXR1cm4gb2Zmc2V0IG9mIHRoZSBmaXJzdCB1bm1hdGNoZWQgY2hhcmFjdGVycyBpbiBzb3VyY2UgYW5kIHRhcmdldC4KKwkgKi8KKwlwcml2YXRlIGZpbmFsIGludCBnZXRGaXJzdFVubWF0Y2hlZE9mZnNldChTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0KQorCXsKKwkJaW50IHJlc3VsdCA9IDA7CisJCWludCBzbGVuZ3RoID0gc291cmNlLmxlbmd0aCgpOworCQlpbnQgdGxlbmd0aCA9IHRhcmdldC5sZW5ndGgoKTsKKwkJaW50IG1pbmxlbmd0aCA9IHNsZW5ndGg7CisJCWlmIChtaW5sZW5ndGggPiB0bGVuZ3RoKSB7CisJCQltaW5sZW5ndGggPSB0bGVuZ3RoOworCQl9CisJCXdoaWxlIChyZXN1bHQgPCBtaW5sZW5ndGggCisJCQkJJiYgc291cmNlLmNoYXJBdChyZXN1bHQpID09IHRhcmdldC5jaGFyQXQocmVzdWx0KSkgeworCQkJcmVzdWx0ICsrOworCSAgICB9CisJICAgIGlmIChyZXN1bHQgPiAwKSB7CisJICAgICAgICAvLyBUaGVyZSBpcyBhbiBpZGVudGljYWwgcG9ydGlvbiBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0d28gCisJICAgICAgICAvLyBzdHJpbmdzLiBJZiB0aGUgaWRlbnRpY2FsIHBvcnRpb24gZW5kcyB3aXRoaW4gYSBjb250cmFjdGlvbiBvciBhIAorCSAgICAgICAgLy8gY29tYmluaW5nIGNoYXJhY3RlciBzZXF1ZW5jZSwgYmFjayB1cCB0byB0aGUgc3RhcnQgb2YgdGhhdCAKKwkgICAgICAgIC8vIHNlcXVlbmNlLgorCSAgICAgICAgY2hhciBzY2hhciA9IDA7CisJICAgICAgICBjaGFyIHRjaGFyID0gMDsKKwkgICAgICAgIGlmIChyZXN1bHQgPCBtaW5sZW5ndGgpIHsgICAgICAgICAgICAgIAorCSAgICAgICAgCXNjaGFyID0gc291cmNlLmNoYXJBdChyZXN1bHQpOyAvLyBmaXJzdCBkaWZmZXJpbmcgY2hhcnMgICAKKwkgICAgICAgIAl0Y2hhciA9IHRhcmdldC5jaGFyQXQocmVzdWx0KTsKKwkgICAgICAgIH0KKwkgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHNjaGFyID0gc291cmNlLmNoYXJBdChtaW5sZW5ndGggLSAxKTsgCisgICAgICAgICAgICAgICAgaWYgKGlzVW5zYWZlKHNjaGFyKSkgeworICAgICAgICAgICAgICAgICAgICB0Y2hhciA9IHNjaGFyOworICAgICAgICAgICAgICAgIH0KKyAgICAJICAgICAgICBlbHNlIGlmIChzbGVuZ3RoID09IHRsZW5ndGgpIHsKKyAgICAJICAgICAgICAJCXJldHVybiByZXN1bHQ7CisgICAgCSAgICAgICAgfQorICAgIAkgICAgICAgIGVsc2UgaWYgKHNsZW5ndGggPCB0bGVuZ3RoKSB7CisgICAgCSAgICAgICAgCXRjaGFyID0gdGFyZ2V0LmNoYXJBdChyZXN1bHQpOworICAgIAkgICAgICAgIH0KKyAgICAJICAgICAgICBlbHNlIHsKKyAgICAJICAgICAgICAJc2NoYXIgPSBzb3VyY2UuY2hhckF0KHJlc3VsdCk7CisgICAgCSAgICAgICAgfQorCSAgICAgICAgfQorCSAgICAgICAgaWYgKGlzVW5zYWZlKHNjaGFyKSB8fCBpc1Vuc2FmZSh0Y2hhcikpCisJICAgICAgICB7CisJICAgICAgICAgICAgLy8gV2UgYXJlIHN0b3BwZWQgaW4gdGhlIG1pZGRsZSBvZiBhIGNvbnRyYWN0aW9uIG9yIGNvbWJpbmluZworCSAgICAgICAgICAgIC8vIHNlcXVlbmNlLgorCSAgICAgICAgICAgIC8vIExvb2sgYmFja3dhcmRzIGZvciB0aGUgcGFydCBvZiB0aGUgc3RyaW5nIGZvciB0aGUgc3RhcnQgb2YgCisJICAgICAgICAgICAgLy8gdGhlIHNlcXVlbmNlCisJICAgICAgICAgICAgLy8gSXQgZG9lc24ndCBtYXR0ZXIgd2hpY2ggc3RyaW5nIHdlIHNjYW4sIHNpbmNlIHRoZXkgYXJlIHRoZSAKKwkgICAgICAgICAgICAvLyBzYW1lIGluIHRoaXMgcmVnaW9uLgorCSAgICAgICAgICAgIGRvIHsKKwkgICAgICAgICAgICAgICAgcmVzdWx0IC0tOworCSAgICAgICAgICAgIH0KKwkgICAgICAgICAgICB3aGlsZSAocmVzdWx0ID4gMCAmJiBpc1Vuc2FmZShzb3VyY2UuY2hhckF0KHJlc3VsdCkpKTsKKwkgICAgICAgIH0KKwkgICAgfQorCSAgICByZXR1cm4gcmVzdWx0OworCX0KKwkKKwkvKioKKwkgKiBBcHBlbmRpbmcgYW4gYnl0ZSB0byBhbiBhcnJheSBvZiBieXRlcyBhbmQgaW5jcmVhc2VzIGl0IGlmIHdlIHJ1biBvdXQgb2YgCisJICogc3BhY2UKKwkgKiBAcGFyYW0gYXJyYXkgb2YgYnl0ZSBhcnJheXMKKwkgKiBAcGFyYW0gYXBwZW5kaW5kZXggaW5kZXggaW4gdGhlIGJ5dGUgYXJyYXkgdG8gYXBwZW5kCisJICogQHBhcmFtIHZhbHVlIHRvIGFwcGVuZAorICAgICAqIEByZXR1cm4gYXJyYXkgaWYgYXJyYXkgc2l6ZSBjYW4gYWNjb21vZGF0ZSB0aGUgbmV3IHZhbHVlLCBvdGhlcndpc2UKKyAgICAgKiAgICAgICAgIGEgYmlnZ2VyIGFycmF5IHdpbGwgYmUgY3JlYXRlZCBhbmQgcmV0dXJuZWQKKwkgKi8KKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlW10gYXBwZW5kKGJ5dGUgYXJyYXlbXSwgaW50IGFwcGVuZGluZGV4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGUgdmFsdWUpCisJeworCQlpZiAoYXBwZW5kaW5kZXggKyAxID49IGFycmF5Lmxlbmd0aCkgeworCQkJYXJyYXkgPSBpbmNyZWFzZShhcnJheSwJYXBwZW5kaW5kZXgsIFNPUlRfQlVGRkVSX0lOSVRfU0laRV8pOworCQl9CQkJCisJCWFycmF5W2FwcGVuZGluZGV4XSA9IHZhbHVlOworICAgICAgICByZXR1cm4gYXJyYXk7CisJfQorCQorCS8qKiAKKwkgKiBUaGlzIGlzIGEgdHJpY2sgc3RyaW5nIGNvbXBhcmUgZnVuY3Rpb24gdGhhdCBnb2VzIGluIGFuZCB1c2VzIHNvcnRrZXlzIAorCSAqIHRvIGNvbXBhcmUuIEl0IGlzIHVzZWQgd2hlbiBjb21wYXJlIGdldHMgaW4gdHJvdWJsZSBhbmQgbmVlZHMgdG8gYmFpbCAKKwkgKiBvdXQuCisJICogQHBhcmFtIHNvdXJjZSB0ZXh0IHN0cmluZworCSAqIEBwYXJhbSB0YXJnZXQgdGV4dCBzdHJpbmcKKwkgKi8KKwlwcml2YXRlIGZpbmFsIGludCBjb21wYXJlQnlTb3J0S2V5cyhTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0KQorCQkJCQkJCQkJCQkJCQkKKwl7CisJICAgIENvbGxhdGlvbktleSBzb3VyY2VrZXkgPSBnZXRDb2xsYXRpb25LZXkoc291cmNlKTsKKwkgICAgQ29sbGF0aW9uS2V5IHRhcmdldGtleSA9IGdldENvbGxhdGlvbktleSh0YXJnZXQpOwkKKwkgICAgcmV0dXJuIHNvdXJjZWtleS5jb21wYXJlVG8odGFyZ2V0a2V5KTsKKwl9CisJCisJLyoqCisJICogUGVyZm9ybXMgdGhlIHByaW1hcnkgY29tcGFyaXNvbnMsIGFuZCBmaWxscyB1cCB0aGUgQ0UgYnVmZmVyIGF0IHRoZQorCSAqIHNhbWUgdGltZS4gCisJICogVGhlIHJldHVybiB2YWx1ZSB0b2dnbGVzIGJldHdlZW4gdGhlIGNvbXBhcmlzb24gcmVzdWx0IGFuZCB0aGUgaGlyYWdhbmEKKwkgKiByZXN1bHQuIElmIGVpdGhlciB0aGUgc291cmNlIGlzIGdyZWF0ZXIgdGhhbiB0YXJnZXQgb3IgdmljZSB2ZXJzYSwgdGhlIAorCSAqIHJldHVybiByZXN1bHQgaXMgdGhlIGNvbXBhcmlzb24gcmVzdWx0LCBpZSAxIG9yIC0xLCBmdXJ0aGVybW9yZSB0aGUKKwkgKiBjZWJ1ZmZlcnMgd2lsbCBiZSBjbGVhcmVkIHdoZW4gdGhhdCBoYXBwZW5zLiBJZiB0aGUgcHJpbWFyeSBjb21wYXJpc29ucworCSAqIGFyZSBlcXVhbCwgd2UnbGwgaGF2ZSB0byBjb250aW51ZSB3aXRoIHNlY29uZGFyeSBjb21wYXJpc29uLiBJbiB0aGlzIGNhc2UKKwkgKiB0aGUgY2VidWZmZXIgd2lsbCBub3QgYmUgY2xlYXJlZCBhbmQgdGhlIHJldHVybiByZXN1bHQgd2lsbCBiZSB0aGUgCisJICogaGlyYWdhbmEgcmVzdWx0LgorCSAqIEBwYXJhbSBkb0hpcmFnYW5hNCBmbGFnIGluZGljYXRvciB0aGF0IEhpcmFnYW5hIFF1YXRlcm5hcnkgaGFzIHRvIGJlIAorCSAqIAkJCQkJb2JzZXJ2ZWQKKwkgKiBAcGFyYW0gbG93ZXN0cHZhbHVlIHRoZSBsb3dlc3QgcHJpbWFyeSB2YWx1ZSB0aGF0IHdpbGwgbm90IGJlIGlnbm9yZWQgaWYgCisJICogCQkJCQkJYWx0ZXJuYXRlIGhhbmRsaW5nIGlzIHNoaWZ0ZWQKKwkgKiBAcGFyYW0gc291cmNlIHRleHQgc3RyaW5nCisJICogQHBhcmFtIHRhcmdldCB0ZXh0IHN0cmluZworCSAqIEBwYXJhbSB0ZXh0b2Zmc2V0IG9mZnNldCBpbiB0ZXh0IHRvIHN0YXJ0IHRoZSBjb21wYXJpc29uCisJICogQHJldHVybiBjb21wYXJpb24gcmVzdWx0IGlmIGEgcHJpbWFyeSBkaWZmZXJlbmNlIGlzIGZvdW5kLCBvdGhlcndpc2UKKwkgKiAJCQkJCQloaXJhZ2FuYSByZXN1bHQKKwkgKi8KKwlwcml2YXRlIGZpbmFsIGludCBkb1ByaW1hcnlDb21wYXJlKGJvb2xlYW4gZG9IaXJhZ2FuYTQsIGludCBsb3dlc3RwdmFsdWUsCisJCQkJCQkJCQkJU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCwgCisJCQkJCQkJCQkJaW50IHRleHRvZmZzZXQpCisJCQkJCQkJCQkgICAJCisJeworCQkvLyBQcmVwYXJpbmcgdGhlIGNvbnRleHQgb2JqZWN0cyBmb3IgaXRlcmF0aW5nIG92ZXIgc3RyaW5ncworICAgICAgICBtX3NyY1V0aWxJdGVyXy5zZXRUZXh0KHNvdXJjZSk7CisgICAgICAgIG1fc3JjVXRpbENvbEVJdGVyXy5zZXRUZXh0KG1fc3JjVXRpbEl0ZXJfLCB0ZXh0b2Zmc2V0KTsKKyAgICAgICAgbV90Z3RVdGlsSXRlcl8uc2V0VGV4dCh0YXJnZXQpOworICAgICAgICBtX3RndFV0aWxDb2xFSXRlcl8uc2V0VGV4dChtX3RndFV0aWxJdGVyXywgdGV4dG9mZnNldCk7CisJCQorCQkvLyBOb24gc2hpZnRlZCBwcmltYXJ5IHByb2Nlc3NpbmcgaXMgcXVpdGUgc2ltcGxlCisJICAgIGlmICghbV9pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF8pIHsKKwkgICAgCWludCBoaXJhZ2FuYXJlc3VsdCA9IDA7ICAgIAkJCQkJCQkJCQkJCQkJCisJICAgICAgCXdoaWxlICh0cnVlKSB7CisJICAgICAgCQlpbnQgc29yZGVyID0gMDsKKwkJCQkvLyBXZSBmZXRjaCBDRXMgdW50aWwgd2UgaGl0IGEgbm9uIGlnbm9yYWJsZSBwcmltYXJ5IG9yIGVuZC4KKwkgICAgICAgIAlkbyB7CisJICAgICAgICAgIAkJc29yZGVyID0gbV9zcmNVdGlsQ29sRUl0ZXJfLm5leHQoKTsKKwkgICAgICAgICAgCQltX3NyY1V0aWxDRUJ1ZmZlcl8gPSBhcHBlbmQobV9zcmNVdGlsQ0VCdWZmZXJfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc3JjVXRpbENFQnVmZmVyU2l6ZV8sIHNvcmRlcik7CisgICAgICAgICAgICAgICAgICAgIG1fc3JjVXRpbENFQnVmZmVyU2l6ZV8gKys7CisJICAgICAgICAgIAkJc29yZGVyICY9IENFX1BSSU1BUllfTUFTS187CisJICAgICAgICAJfSB3aGlsZSAoc29yZGVyID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpOworCQorCQkJCWludCB0b3JkZXIgPSAwOworCSAgICAgICAgCWRvIHsKKwkgICAgICAgICAgCQl0b3JkZXIgPSBtX3RndFV0aWxDb2xFSXRlcl8ubmV4dCgpOworCSAgICAgICAgICAJCW1fdGd0VXRpbENFQnVmZmVyXyA9IGFwcGVuZChtX3RndFV0aWxDRUJ1ZmZlcl8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV90Z3RVdGlsQ0VCdWZmZXJTaXplXywgdG9yZGVyKTsKKyAgICAgICAgICAgICAgICAgICAgbV90Z3RVdGlsQ0VCdWZmZXJTaXplXyArKzsKKwkgICAgICAgICAgCQl0b3JkZXIgJj0gQ0VfUFJJTUFSWV9NQVNLXzsKKwkgICAgICAgIAl9IHdoaWxlICh0b3JkZXIgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSk7CisJCisJICAgICAgICAJLy8gaWYgYm90aCBwcmltYXJpZXMgYXJlIHRoZSBzYW1lCisJICAgICAgICAJaWYgKHNvcmRlciA9PSB0b3JkZXIpIHsKKwkgICAgICAgICAgICAJLy8gYW5kIHRoZXJlIGFyZSBubyBtb3JlIENFcywgd2UgYWR2YW5jZSB0byB0aGUgbmV4dCBsZXZlbAorCSAgICAgICAgICAgIAlpZiAobV9zcmNVdGlsQ0VCdWZmZXJfW21fc3JjVXRpbENFQnVmZmVyU2l6ZV8gLSAxXSAKKwkgICAgICAgICAgICAJCQkJCT09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKwkgICAgICAgICAgICAgIAkJYnJlYWs7CisJICAgICAgICAgICAgCX0KKwkgICAgICAgICAgICAJaWYgKGRvSGlyYWdhbmE0ICYmIGhpcmFnYW5hcmVzdWx0ID09IDAgCisJICAgICAgICAgICAgCQkmJiBtX3NyY1V0aWxDb2xFSXRlcl8ubV9pc0NvZGVQb2ludEhpcmFnYW5hXyAhPQorCSAgICAgICAgICAgICAgCQkJCQkJbV90Z3RVdGlsQ29sRUl0ZXJfLm1faXNDb2RlUG9pbnRIaXJhZ2FuYV8pIHsKKwkgICAgICAgICAgICAgIAkJaWYgKG1fc3JjVXRpbENvbEVJdGVyXy5tX2lzQ29kZVBvaW50SGlyYWdhbmFfKSB7CisJICAgICAgICAgICAgICAgIAkJaGlyYWdhbmFyZXN1bHQgPSAtMTsKKwkgICAgICAgICAgICAgIAkJfQorCSAgICAgICAgICAgICAgCQllbHNlIHsKKwkgICAgICAgICAgICAgIAkJCWhpcmFnYW5hcmVzdWx0ID0gMTsKKwkgICAgICAgICAgICAgIAkJfQorCSAgICAgICAgICAgIAl9CisJICAgICAgICAJfSAKKwkgICAgICAgIAllbHNlIHsKKwkgICAgICAgICAgICAJLy8gaWYgdHdvIHByaW1hcmllcyBhcmUgZGlmZmVyZW50LCB3ZSBhcmUgZG9uZQorCSAgICAgICAgICAgIAlyZXR1cm4gZW5kUHJpbWFyeUNvbXBhcmUoc29yZGVyLCB0b3JkZXIpOworCSAgICAgICAgCX0KKwkgICAgICAJfSAKKwkgICAgICAJLy8gbm8gcHJpbWFyeSBkaWZmZXJlbmNlLi4uIGRvIHRoZSByZXN0IGZyb20gdGhlIGJ1ZmZlcnMKKwkgICAgICAJcmV0dXJuIGhpcmFnYW5hcmVzdWx0OworCSAgICB9IAorCSAgICBlbHNlIHsgLy8gc2hpZnRlZCAtIGRvIGEgc2xpZ2h0bHkgbW9yZSBjb21wbGljYXRlZCBwcm9jZXNzaW5nIDopCisJICAgICAgCXdoaWxlICh0cnVlKSB7CisJICAgICAgICAJaW50IHNvcmRlciA9IGdldFByaW1hcnlTaGlmdGVkQ29tcGFyZUNFKG1fc3JjVXRpbENvbEVJdGVyXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvd2VzdHB2YWx1ZSwgdHJ1ZSk7CisJCQkJaW50IHRvcmRlciA9IGdldFByaW1hcnlTaGlmdGVkQ29tcGFyZUNFKG1fdGd0VXRpbENvbEVJdGVyXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvd2VzdHB2YWx1ZSwgZmFsc2UpOworCSAgICAgICAgCWlmIChzb3JkZXIgPT0gdG9yZGVyKSB7CisJICAgICAgICAgICAgCWlmIChtX3NyY1V0aWxDRUJ1ZmZlcl9bbV9zcmNVdGlsQ0VCdWZmZXJTaXplXyAtIDFdIAorCSAgICAgICAgICAgIAkJCT09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKwkgICAgICAgICAgICAgIAkJYnJlYWs7CisJICAgICAgICAgICAgCX0gCisJICAgICAgICAgICAgCWVsc2UgeworCSAgICAgICAgICAgICAgCQljb250aW51ZTsKKwkgICAgICAgICAgICAJfQorCSAgICAgICAgCX0gCisJICAgICAgICAJZWxzZSB7CisJICAgIAkJCXJldHVybiBlbmRQcmltYXJ5Q29tcGFyZShzb3JkZXIsIHRvcmRlcik7CisJICAgICAgICAJfQorCSAgICAgIAl9IC8vIG5vIHByaW1hcnkgZGlmZmVyZW5jZS4uLiBkbyB0aGUgcmVzdCBmcm9tIHRoZSBidWZmZXJzCisJICAgIH0KKwkJcmV0dXJuIDA7CisJfQorCQorCS8qKgorCSAqIFRoaXMgaXMgdXNlZCBvbmx5IGZvciBwcmltYXJ5IHN0cmVuZ3RoIHdoZW4gd2Uga25vdyB0aGF0IHNvcmRlciBpcyAKKwkgKiBhbHJlYWR5IGRpZmZlcmVudCBmcm9tIHRvcmRlci4KKwkgKiBDb21wYXJlcyBzb3JkZXIgYW5kIHRvcmRlciwgcmV0dXJucyAtMSBpZiBzb3JkZXIgaXMgbGVzcyB0aGFuIHRvcmRlci4KKwkgKiBDbGVhcnMgdGhlIGNlYnVmZmVyIGF0IHRoZSBzYW1lIHRpbWUuCisJICogQHBhcmFtIHNvcmRlciBzb3VyY2Ugc3RyZW5ndGggb3JkZXIKKwkgKiBAcGFyYW0gdG9yZGVyIHRhcmdldCBzdHJlbmd0aCBvcmRlcgorCSAqIEByZXR1cm4gdGhlIGNvbXBhcmlzb24gcmVzdWx0IG9mIHNvcmRlciBhbmQgdG9yZGVyCisJICovCisJcHJpdmF0ZSBmaW5hbCBpbnQgZW5kUHJpbWFyeUNvbXBhcmUoaW50IHNvcmRlciwgaW50IHRvcmRlcikKKwl7CisJCS8vIGlmIHdlIHJlYWNoIGhlcmUsIHRoZSBjZSBvZmZzZXQgYWNjZXNzZWQgaXMgdGhlIGxhc3QgY2UKKwkJLy8gYXBwZW5kZWQgdG8gdGhlIGJ1ZmZlcgorCQlib29sZWFuIGlzU291cmNlTnVsbE9yZGVyID0gKG1fc3JjVXRpbENFQnVmZmVyX1sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3NyY1V0aWxDRUJ1ZmZlclNpemVfIC0gMV0gCisJCQkgCQkJCQkJCT09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpOworCQlib29sZWFuIGlzVGFyZ2V0TnVsbE9yZGVyID0gKG1fdGd0VXRpbENFQnVmZmVyX1sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3RndFV0aWxDRUJ1ZmZlclNpemVfIC0gMV0gCisJCQkgCQkJCQkJCT09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpOwkgCQkJCQkKKwkJbV9zcmNVdGlsQ0VCdWZmZXJTaXplXyA9IC0xOworCSAgICBtX3RndFV0aWxDRUJ1ZmZlclNpemVfID0gLTE7CisJICAgIGlmIChpc1NvdXJjZU51bGxPcmRlcikgeworCSAgICAJcmV0dXJuIC0xOworCSAgICB9CisJICAgIGlmIChpc1RhcmdldE51bGxPcmRlcikgeworCSAgICAJcmV0dXJuIDE7CisJICAgIH0KKwkgICAgLy8gZ2V0dGluZyByaWQgb2YgdGhlIHNpZ24KKwkgICAgc29yZGVyID4+Pj0gQ0VfUFJJTUFSWV9TSElGVF87CisJICAgIHRvcmRlciA+Pj49IENFX1BSSU1BUllfU0hJRlRfOworCSAgICBpZiAoc29yZGVyIDwgdG9yZGVyKSB7CisJICAgIAlyZXR1cm4gLTE7CisJICAgIH0KKwkgICAgcmV0dXJuIDE7CisJfQorCQorCS8qKgorCSAqIENhbGN1bGF0ZXMgdGhlIG5leHQgcHJpbWFyeSBzaGlmdGVkIHZhbHVlIGFuZCBmaWxscyB1cCBjZWJ1ZmZlciB3aXRoIHRoZSAKKwkgKiBuZXh0IG5vbi1pZ25vcmFibGUgY2UuCisJICogQHBhcmFtIGNvbGVpdGVyIGNvbGxhdGlvbiBlbGVtZW50IGl0ZXJhdG9yCisJICogQHBhcmFtIGRvSGlyYWdhbmE0IGZsYWcgaW5kaWNhdG9yIGlmIGhpcmFnYW5hIHF1YXRlcm5hcnkgaXMgdG8gYmUgCisJICogCQkJCQkJaGFuZGxlZAorCSAqIEBwYXJhbSBsb3dlc3RwdmFsdWUgbG93ZXN0IHByaW1hcnkgc2hpZnRlZCB2YWx1ZSB0aGF0IHdpbGwgbm90IGJlIAorCSAqIAkJCQkJCWlnbm9yZWQKKwkgKiBAcmV0dXJuIHJlc3VsdCBuZXh0IG1vZGlmaWVkIGNlIAorCSAqLworCXByaXZhdGUgZmluYWwgaW50IGdldFByaW1hcnlTaGlmdGVkQ29tcGFyZUNFKAorCQkJCQkJCQkJCUNvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBjb2xlaXRlciwKKwkJCQkJCQkJCQlpbnQgbG93ZXN0cHZhbHVlLCBib29sZWFuIGlzU3JjKQorCQkJCQkJCQkJCQorCXsKKwkJYm9vbGVhbiBzaGlmdGVkID0gZmFsc2U7CisJCWludCByZXN1bHQgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFOworICAgICAgICBpbnQgY2VidWZmZXJbXSA9IG1fc3JjVXRpbENFQnVmZmVyXzsKKyAgICAgICAgaW50IGNlYnVmZmVyc2l6ZSA9IG1fc3JjVXRpbENFQnVmZmVyU2l6ZV87CisgICAgICAgIGlmICghaXNTcmMpIHsKKyAgICAgICAgICAgIGNlYnVmZmVyID0gbV90Z3RVdGlsQ0VCdWZmZXJfOworICAgICAgICAgICAgY2VidWZmZXJzaXplID0gbV90Z3RVdGlsQ0VCdWZmZXJTaXplXzsKKyAgICAgICAgfQorCSAgICB3aGlsZSAodHJ1ZSkgeworCSAgICAgICAgcmVzdWx0ID0gY29sZWl0ZXIubmV4dCgpOworCSAgICAgICAgaWYgKHJlc3VsdCA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisJICAgICAgICAgICAgY2VidWZmZXIgPSBhcHBlbmQoY2VidWZmZXIsIGNlYnVmZmVyc2l6ZSwgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICBjZWJ1ZmZlcnNpemUgKys7CisJICAgICAgICAgICAgYnJlYWs7CisJICAgICAgICB9IAorCSAgICAgICAgZWxzZSBpZiAocmVzdWx0ID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUKKwkgICAgICAgICAgICAgICAgIHx8IChzaGlmdGVkIAorCSAgICAgICAgICAgICAgICAgICAgICYmIChyZXN1bHQgJiBDRV9QUklNQVJZX01BU0tfKSAKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkpIHsgCisgICAgICAgICAgICAgICAgLy8gVUNBIGFtZW5kbWVudCAtIGlnbm9yZSBpZ25vcmFibGVzIHRoYXQgZm9sbG93IHNoaWZ0ZWQgY29kZSAKKyAgICAgICAgICAgICAgICAvLyBwb2ludHMKKwkgICAgICAgICAgICBjb250aW51ZTsKKwkgICAgICAgIH0gCisJICAgICAgICBlbHNlIGlmIChpc0NvbnRpbnVhdGlvbihyZXN1bHQpKSB7CisJICAgICAgICAJaWYgKChyZXN1bHQgJiBDRV9QUklNQVJZX01BU0tfKSAKKwkgICAgICAgICAgICAJCQkJCSE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsgCisJICAgICAgICAgICAgCS8vIFRoZXJlIGlzIHByaW1hcnkgdmFsdWUKKwkgICAgICAgICAgICAgIAlpZiAoc2hpZnRlZCkgeworCSAgICAgICAgICAgICAgICAJcmVzdWx0ID0gKHJlc3VsdCAmIENFX1BSSU1BUllfTUFTS18pIAorCSAgICAgICAgICAgICAgICAJCQkJCQl8IENFX0NPTlRJTlVBVElPTl9NQVJLRVJfOyAKKwkgICAgICAgICAgICAgICAgCS8vIHByZXNlcnZlIGludGVyZXN0aW5nIGNvbnRpbnVhdGlvbgorCSAgICAgICAgICAgICAgICAJY2VidWZmZXIgPSBhcHBlbmQoY2VidWZmZXIsIGNlYnVmZmVyc2l6ZSwgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNlYnVmZmVyc2l6ZSArKzsKKwkgICAgICAgICAgIAkJCWNvbnRpbnVlOworCSAgICAgICAgCQl9IAorCSAgICAgICAgCQllbHNlIHsKKwkgICAgICAgICAgIAkJCWNlYnVmZmVyID0gYXBwZW5kKGNlYnVmZmVyLCBjZWJ1ZmZlcnNpemUsIHJlc3VsdCk7CisgICAgICAgICAgICAgICAgICAgICAgICBjZWJ1ZmZlcnNpemUgKys7CisJICAgICAgICAgICAgICAgIAlicmVhazsKKwkgICAgICAgICAgICAgIAl9CisJICAgICAgICAgICAgfSAKKwkgICAgICAgICAgICBlbHNlIHsgLy8gSnVzdCBsb3dlciBsZXZlbCB2YWx1ZXMKKwkgICAgICAgICAgICAJaWYgKCFzaGlmdGVkKSB7CisJICAgICAgICAgICAgCQljZWJ1ZmZlciA9IGFwcGVuZChjZWJ1ZmZlciwgY2VidWZmZXJzaXplLCByZXN1bHQpOworICAgICAgICAgICAgICAgICAgICAgICAgY2VidWZmZXJzaXplICsrOworCSAgICAgICAgICAgICAgCX0KKwkgICAgICAgICAgICB9CisJICAgICAgICB9IAorCSAgICAgICAgZWxzZSB7IC8vIHJlZ3VsYXIKKyAgICAgICAgICAgICAgICBpZiAoVXRpbGl0eS5jb21wYXJlVW5zaWduZWQocmVzdWx0ICYgQ0VfUFJJTUFSWV9NQVNLXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvd2VzdHB2YWx1ZSkgPiAwKSB7CisJICAgICAgICAgICAgIAljZWJ1ZmZlciA9IGFwcGVuZChjZWJ1ZmZlciwgY2VidWZmZXJzaXplLCByZXN1bHQpOworICAgICAgICAgICAgICAgICAgICBjZWJ1ZmZlcnNpemUgKys7CisJICAgICAgICAgICAgIAlicmVhazsKKwkgICAgICAgICAgICB9IAorCSAgICAgICAgICAgIGVsc2UgeworCSAgICAgICAgICAgIAlpZiAoKHJlc3VsdCAmIENFX1BSSU1BUllfTUFTS18pICE9IDApIHsKKwkgICAgICAgICAgICAgICAgCXNoaWZ0ZWQgPSB0cnVlOworCSAgICAgICAgICAgICAgICAJcmVzdWx0ICY9IENFX1BSSU1BUllfTUFTS187CisJICAgICAgICAgICAgICAgIAljZWJ1ZmZlciA9IGFwcGVuZChjZWJ1ZmZlciwgY2VidWZmZXJzaXplLCByZXN1bHQpOworICAgICAgICAgICAgICAgICAgICAgICAgY2VidWZmZXJzaXplICsrOworCSAgICAgICAgICAgICAgICAJY29udGludWU7CisJICAgICAgICAgICAgICAJfSAKKwkgICAgICAgICAgICAgIAllbHNlIHsKKwkgICAgICAgICAgICAgICAgCWNlYnVmZmVyID0gYXBwZW5kKGNlYnVmZmVyLCBjZWJ1ZmZlcnNpemUsIHJlc3VsdCk7CisgICAgICAgICAgICAgICAgICAgICAgICBjZWJ1ZmZlcnNpemUgKys7CisJICAgICAgICAgICAgICAgIAlzaGlmdGVkID0gZmFsc2U7CisJICAgICAgICAgICAgICAgIAljb250aW51ZTsKKwkgICAgICAgICAgICAgIAl9CisJICAgICAgICAgICAgfQorCSAgICAgICAgfQorCSAgICB9CisgICAgICAgIGlmIChpc1NyYykgeworICAgICAgICAgICAgbV9zcmNVdGlsQ0VCdWZmZXJfID0gY2VidWZmZXI7CisgICAgICAgICAgICBtX3NyY1V0aWxDRUJ1ZmZlclNpemVfID0gY2VidWZmZXJzaXplOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbV90Z3RVdGlsQ0VCdWZmZXJfID0gY2VidWZmZXI7CisgICAgICAgICAgICBtX3RndFV0aWxDRUJ1ZmZlclNpemVfID0gY2VidWZmZXJzaXplOworICAgICAgICB9CisJICAgIHJlc3VsdCAmPSBDRV9QUklNQVJZX01BU0tfOworCSAgICByZXR1cm4gcmVzdWx0OworCX0KKwkJCQkJCQkKKwkvKioKKwkgKiBBcHBlbmRpbmcgYW4gaW50IHRvIGFuIGFycmF5IG9mIGludHMgYW5kIGluY3JlYXNlcyBpdCBpZiB3ZSBydW4gb3V0IG9mIAorCSAqIHNwYWNlCisJICogQHBhcmFtIGFycmF5IG9mIGludCBhcnJheXMKKwkgKiBAcGFyYW0gYXBwZW5kaW5kZXggaW5kZXggYXQgd2hpY2ggdmFsdWUgd2lsbCBiZSBhcHBlbmRlZAorCSAqIEBwYXJhbSB2YWx1ZSB0byBhcHBlbmQKKyAgICAgKiBAcmV0dXJuIGFycmF5IGlmIHNpemUgaXMgbm90IGluY3JlYXNlZCwgb3RoZXJ3aXNlIGEgbmV3IGFycmF5IHdpbGwgYmUgCisgICAgICogICAgICAgICByZXR1cm5lZAorCSAqLworCXByaXZhdGUgc3RhdGljIGZpbmFsIGludFtdIGFwcGVuZChpbnQgYXJyYXlbXSwgaW50IGFwcGVuZGluZGV4LCBpbnQgdmFsdWUpCisJeworCQlpZiAoYXBwZW5kaW5kZXggKyAxID49IGFycmF5Lmxlbmd0aCkgeworCQkJYXJyYXkgPSBpbmNyZWFzZShhcnJheSwgYXBwZW5kaW5kZXgsIENFX0JVRkZFUl9TSVpFXyk7CisJCX0JCQkKKwkJYXJyYXlbYXBwZW5kaW5kZXhdID0gdmFsdWU7CisgICAgICAgIHJldHVybiBhcnJheTsKKwl9CisJCisJLyoqCisJICogRG9lcyBzZWNvbmRhcnkgc3RyZW5ndGggY29tcGFyaXNvbiBiYXNlZCBvbiB0aGUgY29sbGVjdGVkIGNlcy4KKwkgKiBAcGFyYW0gZG9GcmVuY2ggZmxhZyBpbmRpY2F0ZXMgaWYgRnJlbmNoIG9yZGVyaW5nIGlzIHRvIGJlIGRvbmUKKwkgKiBAcmV0dXJuIHRoZSBzZWNvbmRhcnkgc3RyZW5ndGggY29tcGFyaXNvbiByZXN1bHQKKwkgKi8KKwlwcml2YXRlIGZpbmFsIGludCBkb1NlY29uZGFyeUNvbXBhcmUoYm9vbGVhbiBkb0ZyZW5jaCkKKwl7CisJCS8vIG5vdywgd2UncmUgZ29ubmEgcmVleGFtaW5lIGNvbGxlY3RlZCBDRXMKKwkgICAgaWYgKCFkb0ZyZW5jaCkgeyAvLyBub3JtYWwKKwkgICAgCWludCBzb2Zmc2V0ID0gMDsKKwkgICAgCWludCB0b2Zmc2V0ID0gMDsKKwkgICAgICAgIHdoaWxlICh0cnVlKSB7CisJICAgICAgICAJaW50IHNvcmRlciA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEU7CisJICAgICAgICAgIAl3aGlsZSAoc29yZGVyID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKwkgICAgICAgICAgICAJc29yZGVyID0gbV9zcmNVdGlsQ0VCdWZmZXJfW3NvZmZzZXQgKytdIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmIENFX1NFQ09OREFSWV9NQVNLXzsKKwkgICAgICAgICAgCX0KKwkJCQlpbnQgdG9yZGVyID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRTsKKwkgICAgICAgICAgCXdoaWxlICh0b3JkZXIgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworCSAgICAgICAgICAJCXRvcmRlciA9IG1fdGd0VXRpbENFQnVmZmVyX1t0b2Zmc2V0ICsrXSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiBDRV9TRUNPTkRBUllfTUFTS187CisJICAgICAgICAgIAl9CisJCisJICAgICAgICAgIAlpZiAoc29yZGVyID09IHRvcmRlcikgeworCSAgICAgICAgICAgIAlpZiAobV9zcmNVdGlsQ0VCdWZmZXJfW3NvZmZzZXQgLSAxXSAgCisJICAgICAgICAgICAgCQkJCQk9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisJICAgICAgICAgICAgICAJCWJyZWFrOworCSAgICAgICAgICAgIAl9CisJICAgICAgICAgIAl9IAorCSAgICAgICAgICAJZWxzZSB7CisJICAgICAgICAgIAkJaWYgKG1fc3JjVXRpbENFQnVmZmVyX1tzb2Zmc2V0IC0gMV0gPT0gCisJICAgICAgICAgIAkJCQlDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisJICAgICAgICAgIAkJCXJldHVybiAtMTsKKwkgICAgICAgICAgCQl9CisJICAgICAgICAgIAkJaWYgKG1fdGd0VXRpbENFQnVmZmVyX1t0b2Zmc2V0IC0gMV0gPT0gCisJICAgICAgICAgIAkJCQlDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisJICAgICAgICAgIAkJCXJldHVybiAxOworCSAgICAgICAgICAJCX0KKwkgICAgICAgICAgICAgICAJcmV0dXJuIChzb3JkZXIgPCB0b3JkZXIpID8gLTEgOiAxOworCSAgICAgICAgICAJfQorCSAgICAgICAgfQorCSAgICB9IAorCSAgICBlbHNlIHsgLy8gZG8gdGhlIEZyZW5jaCAKKwkgICAgCW1fc3JjVXRpbENvbnRPZmZzZXRfID0gMDsKKyAgICAgICAgICAgIG1fdGd0VXRpbENvbnRPZmZzZXRfID0gMDsKKyAgICAgICAgICAgIG1fc3JjVXRpbE9mZnNldF8gPSBtX3NyY1V0aWxDRUJ1ZmZlclNpemVfIC0gMjsgCisgICAgICAgICAgICBtX3RndFV0aWxPZmZzZXRfID0gbV90Z3RVdGlsQ0VCdWZmZXJTaXplXyAtIDI7IAorCSAgICAgICAgd2hpbGUgKHRydWUpIHsKKwkgICAgICAgIAlpbnQgc29yZGVyID0gZ2V0U2Vjb25kYXJ5RnJlbmNoQ0UodHJ1ZSk7CisJICAgICAgICAJaW50IHRvcmRlciA9IGdldFNlY29uZGFyeUZyZW5jaENFKGZhbHNlKTsKKwkgICAgICAgICAgCWlmIChzb3JkZXIgPT0gdG9yZGVyKSB7CisJICAgICAgICAgICAgCWlmICgobV9zcmNVdGlsT2Zmc2V0XyA8IDAgJiYgbV90Z3RVdGlsT2Zmc2V0XyA8IDApIAorCSAgICAgICAgICAgIAkJfHwgbV9zcmNVdGlsQ0VCdWZmZXJfW21fc3JjVXRpbE9mZnNldF9dIAorCSAgICAgICAgICAgIAkJCQkJPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworCSAgICAgICAgICAgICAgCQlicmVhazsKKwkgICAgICAgICAgICAJfSAKKwkgICAgICAgICAgCX0gCisJICAgICAgICAgIAllbHNlIHsKKwkgICAgICAgICAgICAgIAlyZXR1cm4gKHNvcmRlciA8IHRvcmRlcikgPyAtMSA6IDE7CisJICAgICAgICAgIAl9CisJICAgICAgICB9CisJICAgIH0KKwkgICAgcmV0dXJuIDA7CisJfQorCQorCS8qKgorCSAqIENhbGN1bGF0ZXMgdGhlIG5leHQgc2Vjb25kYXJ5IGZyZW5jaCBDRS4KKwkgKiBAcGFyYW0gaXNTcmMgZmxhZyBpbmRpY2F0b3IgaWYgd2UgYXJlIGNhbGN1bGF0aW5nIHRoZSBzcmMgY2VzCisJICogQHJldHVybiByZXN1bHQgbmV4dCBtb2RpZmllZCBjZQorCSAqLworCXByaXZhdGUgZmluYWwgaW50IGdldFNlY29uZGFyeUZyZW5jaENFKGJvb2xlYW4gaXNTcmMpCisJeworCQlpbnQgcmVzdWx0ID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRTsKKyAgICAgICAgaW50IG9mZnNldCA9IG1fc3JjVXRpbE9mZnNldF87CisgICAgICAgIGludCBjb250aW51YXRpb25vZmZzZXQgPSBtX3NyY1V0aWxDb250T2Zmc2V0XzsKKyAgICAgICAgaW50IGNlYnVmZmVyW10gPSBtX3NyY1V0aWxDRUJ1ZmZlcl87CisgICAgICAgIGlmICghaXNTcmMpIHsKKyAgICAgICAgICAgIG9mZnNldCA9IG1fdGd0VXRpbE9mZnNldF87CisgICAgICAgICAgICBjb250aW51YXRpb25vZmZzZXQgPSBtX3RndFV0aWxDb250T2Zmc2V0XzsKKyAgICAgICAgICAgIGNlYnVmZmVyID0gbV90Z3RVdGlsQ0VCdWZmZXJfOworICAgICAgICB9CisgICAgICAgIAorCSAgICB3aGlsZSAocmVzdWx0ID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUgCisJICAgIAkJJiYgb2Zmc2V0ID49IDApIHsKKwkgICAgICAgIGlmIChjb250aW51YXRpb25vZmZzZXQgPT0gMCkgeworCSAgICAgICAgCXJlc3VsdCA9IGNlYnVmZmVyW29mZnNldF07CisJCSAgICAgICAgd2hpbGUgKGlzQ29udGludWF0aW9uKGNlYnVmZmVyW29mZnNldCAtLV0pKTsKKwkJICAgICAgICAvLyBhZnRlciB0aGlzLCBzb3JkZXIgaXMgYXQgdGhlIHN0YXJ0IG9mIGNvbnRpbnVhdGlvbiwgCisJCSAgICAgICAgLy8gYW5kIG9mZnNldCBwb2ludHMgYmVmb3JlIHRoYXQgCisJCSAgICAgICAgaWYgKGlzQ29udGludWF0aW9uKGNlYnVmZmVyW29mZnNldCArIDFdKSkgeworCQkgICAgICAgIAkvLyBzYXZlIG9mZnNldCBmb3IgbGF0ZXIKKwkJICAgICAgICAJY29udGludWF0aW9ub2Zmc2V0ID0gb2Zmc2V0OyAKKwkJICAgICAgICAJb2Zmc2V0ICs9IDI7ICAKKwkJICAgICAgICB9CisJICAgICAgICB9CisJICAgICAgICBlbHNlIHsKKwkgICAgICAgIAlyZXN1bHQgPSBjZWJ1ZmZlcltvZmZzZXQgKytdOworCSAgICAgICAgCWlmICghaXNDb250aW51YXRpb24ocmVzdWx0KSkgeyAKKwkgICAgICAgIAkJLy8gd2UgaGF2ZSBmaW5pc2hlZCB3aXRoIHRoaXMgY29udGludWF0aW9uCisJICAgICAgICAgICAJCW9mZnNldCA9IGNvbnRpbnVhdGlvbm9mZnNldDsKKwkgICAgICAgICAgIAkJLy8gcmVzZXQgdGhlIHBvaW50ZXIgdG8gYmVmb3JlIGNvbnRpbnVhdGlvbiAKKwkgICAgICAgICAgIAkJY29udGludWF0aW9ub2Zmc2V0ID0gMDsKKwkgICAgICAgICAgIAkJY29udGludWU7CisJICAgICAgICAJfQorCSAgICAgICAgfQorCSAgICAgICAgcmVzdWx0ICY9IENFX1NFQ09OREFSWV9NQVNLXzsgLy8gcmVtb3ZlIGNvbnRpbnVhdGlvbiBiaXQgICAgICAgIAorCSAgICB9ICAKKyAgICAgICAgaWYgKGlzU3JjKSB7CisgICAgICAgICAgICBtX3NyY1V0aWxPZmZzZXRfID0gb2Zmc2V0OworICAgICAgICAgICAgbV9zcmNVdGlsQ29udE9mZnNldF8gPSBjb250aW51YXRpb25vZmZzZXQ7CisgICAgICAgIH0gIAorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG1fdGd0VXRpbE9mZnNldF8gPSBvZmZzZXQ7CisgICAgICAgICAgICBtX3RndFV0aWxDb250T2Zmc2V0XyA9IGNvbnRpbnVhdGlvbm9mZnNldDsKKyAgICAgICAgfQorCSAgICByZXR1cm4gcmVzdWx0OworCX0KKwkKKwkvKioKKwkgKiBEb2VzIGNhc2Ugc3RyZW5ndGggY29tcGFyaXNvbiBiYXNlZCBvbiB0aGUgY29sbGVjdGVkIGNlcy4KKwkgKiBAcmV0dXJuIHRoZSBjYXNlIHN0cmVuZ3RoIGNvbXBhcmlzb24gcmVzdWx0CisJICovCisJcHJpdmF0ZSBmaW5hbCBpbnQgZG9DYXNlQ29tcGFyZSgpCisJeworCQlpbnQgc29mZnNldCA9IDA7CisJCWludCB0b2Zmc2V0ID0gMDsKKwkgICAgd2hpbGUgKHRydWUpIHsKKwkgICAgCWludCBzb3JkZXIgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFOworCSAgICAgICAgaW50IHRvcmRlciA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEU7CisJICAgICAgICB3aGlsZSAoKHNvcmRlciAmIENFX1JFTU9WRV9DQVNFXykgCisJICAgICAgICAJCQkJCQk9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisJICAgICAgICAJc29yZGVyID0gbV9zcmNVdGlsQ0VCdWZmZXJfW3NvZmZzZXQgKytdOworCSAgICAgICAgICAJaWYgKCFpc0NvbnRpbnVhdGlvbihzb3JkZXIpKSB7CisJICAgICAgICAgICAgCXNvcmRlciAmPSBDRV9DQVNFX01BU0tfM187CisJICAgICAgICAgICAgCXNvcmRlciBePSBtX2Nhc2VTd2l0Y2hfOworCSAgICAgICAgICAJfSAKKwkgICAgICAgICAgCWVsc2UgeworCSAgICAgICAgICAgIAlzb3JkZXIgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFOworCSAgICAgICAgICAJfQorCSAgICAgICAgfQorCQorCSAgICAgICAgd2hpbGUgKCh0b3JkZXIgJiBDRV9SRU1PVkVfQ0FTRV8pIAorCSAgICAgICAgCQkJCQkJPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworCSAgICAgICAgCXRvcmRlciA9IG1fdGd0VXRpbENFQnVmZmVyX1t0b2Zmc2V0ICsrXTsKKwkgICAgICAgICAgCWlmICghaXNDb250aW51YXRpb24odG9yZGVyKSkgeworCSAgICAgICAgICAgIAl0b3JkZXIgJj0gQ0VfQ0FTRV9NQVNLXzNfOworCSAgICAgICAgICAgIAl0b3JkZXIgXj0gbV9jYXNlU3dpdGNoXzsKKwkgICAgICAgICAgCX0gCisJICAgICAgICAgIAllbHNlIHsKKwkgICAgICAgICAgICAJdG9yZGVyID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRTsKKwkgICAgICAgICAgCX0KKwkgICAgICAgIH0KKwkKKyAgICAgICAgICAgIHNvcmRlciAmPSBDRV9DQVNFX0JJVF9NQVNLXzsKKyAgICAgICAgICAgIHRvcmRlciAmPSBDRV9DQVNFX0JJVF9NQVNLXzsKKwkJCWlmIChzb3JkZXIgPT0gdG9yZGVyKSB7CisJCQkJaWYgKG1fc3JjVXRpbENFQnVmZmVyX1tzb2Zmc2V0IC0gMV0gCisJCQkJCQkJCQkJPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworCSAgICAgICAgICAJCWJyZWFrOworCSAgICAgICAgCX0gCisJCQl9CisJCQllbHNlIHsKKwkgICAgICAgIAlpZiAobV9zcmNVdGlsQ0VCdWZmZXJfW3NvZmZzZXQgLSAxXSAKKwkgICAgICAgIAkJCQkJCT09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKwkgICAgICAgICAgCQlyZXR1cm4gLTE7CisJICAgICAgICAJfQorICAgICAgICAgICAgICAgIGlmIChtX3RndFV0aWxDRUJ1ZmZlcl9bc29mZnNldCAtIDFdIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgICAgICB9CisJICAgICAgICAJcmV0dXJuIChzb3JkZXIgPCB0b3JkZXIpID8gLTEgOiAxOworCQkJfQorCSAgICB9CisJICAgIHJldHVybiAwOworCX0KKwkKKwkvKioKKwkgKiBEb2VzIHRlcnRpYXJ5IHN0cmVuZ3RoIGNvbXBhcmlzb24gYmFzZWQgb24gdGhlIGNvbGxlY3RlZCBjZXMuCisJICogQHJldHVybiB0aGUgdGVydGlhcnkgc3RyZW5ndGggY29tcGFyaXNvbiByZXN1bHQKKwkgKi8KKwlwcml2YXRlIGZpbmFsIGludCBkb1RlcnRpYXJ5Q29tcGFyZSgpCisJeworCQlpbnQgc29mZnNldCA9IDA7CisJICAgIGludCB0b2Zmc2V0ID0gMDsKKwkgICAgd2hpbGUgKHRydWUpIHsKKwkgICAgCWludCBzb3JkZXIgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFOworCSAgICAJaW50IHRvcmRlciA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEU7CisJICAgICAgICB3aGlsZSAoKHNvcmRlciAmIENFX1JFTU9WRV9DQVNFXykgCisJICAgICAgICAJCQkJCT09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKwkgICAgICAgICAgCXNvcmRlciA9IG1fc3JjVXRpbENFQnVmZmVyX1tzb2Zmc2V0ICsrXSAmIG1fbWFzazNfOworCSAgICAgICAgICAJaWYgKCFpc0NvbnRpbnVhdGlvbihzb3JkZXIpKSB7CisJICAgICAgICAgICAgCXNvcmRlciBePSBtX2Nhc2VTd2l0Y2hfOworCSAgICAgICAgICAJfSAKKwkgICAgICAgICAgCWVsc2UgeworCSAgICAgICAgICAgIAlzb3JkZXIgJj0gQ0VfUkVNT1ZFX0NBU0VfOworCSAgICAgICAgICAJfQorCSAgICAgICAgfQorCQorCQkJd2hpbGUgKCh0b3JkZXIgJiBDRV9SRU1PVkVfQ0FTRV8pIAorCSAgICAgICAgCQkJCQk9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisJICAgICAgICAgIAl0b3JkZXIgPSBtX3RndFV0aWxDRUJ1ZmZlcl9bdG9mZnNldCArK10gJiBtX21hc2szXzsKKwkgICAgICAgICAgCWlmICghaXNDb250aW51YXRpb24odG9yZGVyKSkgeworCSAgICAgICAgICAgIAl0b3JkZXIgXj0gbV9jYXNlU3dpdGNoXzsKKwkgICAgICAgICAgCX0gCisJICAgICAgICAgIAllbHNlIHsKKwkgICAgICAgICAgICAJdG9yZGVyICY9IENFX1JFTU9WRV9DQVNFXzsKKwkgICAgICAgICAgCX0KKwkgICAgICAgIH0gICAgICAgIAorCQorCSAgICAgICAgaWYgKHNvcmRlciA9PSB0b3JkZXIpIHsKKwkgICAgICAgICAgCWlmIChtX3NyY1V0aWxDRUJ1ZmZlcl9bc29mZnNldCAtIDFdIAorCSAgICAgICAgICAJCQkJCQk9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisJICAgICAgICAgICAgCWJyZWFrOworCSAgICAgICAgICAJfSAKKwkgICAgICAgIH0gCisJICAgICAgICBlbHNlIHsKKwkgICAgICAgIAlpZiAobV9zcmNVdGlsQ0VCdWZmZXJfW3NvZmZzZXQgLSAxXSA9PSAKKwkgICAgICAgICAgCQkJCQkJCUNvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKwkgICAgICAgICAgCQlyZXR1cm4gLTE7CisJICAgICAgICAgIAl9CisJICAgICAgICAgIAlpZiAobV90Z3RVdGlsQ0VCdWZmZXJfW3RvZmZzZXQgLSAxXSA9PSAKKwkgICAgICAgICAgCQkJCUNvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKwkgICAgICAgICAgCQlyZXR1cm4gMTsKKwkgICAgICAgICAgCX0KKwkgICAgICAgICAgICByZXR1cm4gKHNvcmRlciA8IHRvcmRlcikgPyAtMSA6IDE7CisJICAgICAgICB9CisJICAgIH0KKwkgICAgcmV0dXJuIDA7CisJfQorCQorCS8qKgorCSAqIERvZXMgcXVhdGVybmFyeSBzdHJlbmd0aCBjb21wYXJpc29uIGJhc2VkIG9uIHRoZSBjb2xsZWN0ZWQgY2VzLgorCSAqIEBwYXJhbSBsb3dlc3RwdmFsdWUgdGhlIGxvd2VzdCBwcmltYXJ5IHZhbHVlIHRoYXQgd2lsbCBub3QgYmUgaWdub3JlZCBpZiAKKwkgKiAJCQkJCQlhbHRlcm5hdGUgaGFuZGxpbmcgaXMgc2hpZnRlZAorCSAqIEByZXR1cm4gdGhlIHF1YXRlcm5hcnkgc3RyZW5ndGggY29tcGFyaXNvbiByZXN1bHQKKwkgKi8KKwlwcml2YXRlIGZpbmFsIGludCBkb1F1YXRlcm5hcnlDb21wYXJlKGludCBsb3dlc3RwdmFsdWUpCisJeworCQlib29sZWFuIHNTaGlmdGVkID0gdHJ1ZTsKKwkgICAgYm9vbGVhbiB0U2hpZnRlZCA9IHRydWU7CisJICAgIGludCBzb2Zmc2V0ID0gMDsKKwkgICAgaW50IHRvZmZzZXQgPSAwOworCSAgICB3aGlsZSAodHJ1ZSkgeworCSAgICAJaW50IHNvcmRlciA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEU7CisJICAgIAlpbnQgdG9yZGVyID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRTsKKwkgICAgICAgIHdoaWxlIChzb3JkZXIgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRQorCSAgICAgICAgCQl8fCAoaXNDb250aW51YXRpb24oc29yZGVyKSAmJiAhc1NoaWZ0ZWQpKSB7CisJICAgICAgICAgIAlzb3JkZXIgPSBtX3NyY1V0aWxDRUJ1ZmZlcl9bc29mZnNldCArK107CisJICAgICAgICAgIAlpZiAoaXNDb250aW51YXRpb24oc29yZGVyKSkgeworCSAgICAgICAgICAgIAlpZiAoIXNTaGlmdGVkKSB7CisJICAgICAgICAgICAgICAJCWNvbnRpbnVlOworCSAgICAgICAgICAgIAl9CisJICAgICAgICAgIAl9IAorCSAgICAgICAgICAJZWxzZSBpZiAoVXRpbGl0eS5jb21wYXJlVW5zaWduZWQoc29yZGVyLCBsb3dlc3RwdmFsdWUpID4gMCAKKwkgICAgICAgICAgCQkJCXx8IChzb3JkZXIgJiBDRV9QUklNQVJZX01BU0tfKSAKKwkgICAgICAgICAgCQkJCQkJPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeyAKKwkgICAgICAgICAgCQkvLyBub24gY29udGludWF0aW9uCisJICAgICAgICAgICAgCXNvcmRlciA9IENFX1BSSU1BUllfTUFTS187CisJICAgICAgICAgICAgCXNTaGlmdGVkID0gZmFsc2U7CisJICAgICAgICAgIAl9IAorCSAgICAgICAgICAJZWxzZSB7CisJICAgICAgICAgICAgCXNTaGlmdGVkID0gdHJ1ZTsKKwkgICAgICAgICAgCX0KKwkgICAgICAgIH0KKwkgICAgICAgIHNvcmRlciA+Pj49IENFX1BSSU1BUllfU0hJRlRfOworCQkJd2hpbGUgKHRvcmRlciA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFIAorCSAgICAgICAgCQl8fCAoaXNDb250aW51YXRpb24odG9yZGVyKSAmJiAhdFNoaWZ0ZWQpKSB7CisJICAgICAgICAgIAl0b3JkZXIgPSBtX3RndFV0aWxDRUJ1ZmZlcl9bdG9mZnNldCArK107CisJICAgICAgICAgIAlpZiAoaXNDb250aW51YXRpb24odG9yZGVyKSkgeworCSAgICAgICAgICAgIAlpZiAoIXRTaGlmdGVkKSB7CisJICAgICAgICAgICAgICAJCWNvbnRpbnVlOworCSAgICAgICAgICAgIAl9CisJICAgICAgICAgIAl9IAorCSAgICAgICAgICAJZWxzZSBpZiAoVXRpbGl0eS5jb21wYXJlVW5zaWduZWQodG9yZGVyLCBsb3dlc3RwdmFsdWUpID4gMCAKKwkgICAgICAgICAgCQkJCXx8ICh0b3JkZXIgJiBDRV9QUklNQVJZX01BU0tfKSAKKwkgICAgICAgICAgCQkJCQkJPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeyAKKwkgICAgICAgICAgCQkvLyBub24gY29udGludWF0aW9uCisJICAgICAgICAgICAgCXRvcmRlciA9IENFX1BSSU1BUllfTUFTS187CisJICAgICAgICAgICAgCXRTaGlmdGVkID0gZmFsc2U7CisJICAgICAgICAgIAl9IAorCSAgICAgICAgICAJZWxzZSB7CisJICAgICAgICAgICAgCXRTaGlmdGVkID0gdHJ1ZTsKKwkgICAgICAgICAgCX0KKwkgICAgICAgIH0KKwkgICAgICAgIHRvcmRlciA+Pj49IENFX1BSSU1BUllfU0hJRlRfOworCQorCSAgICAgICAgaWYgKHNvcmRlciA9PSB0b3JkZXIpIHsKKwkgICAgICAgICAgCWlmIChtX3NyY1V0aWxDRUJ1ZmZlcl9bc29mZnNldCAtIDFdIAorCSAgICAgICAgICAJCT09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKwkgICAgICAgICAgICAJYnJlYWs7CisJICAgICAgICAgIAl9CisJICAgICAgICB9IAorCSAgICAgICAgZWxzZSB7CisJICAgICAgICAJaWYgKG1fc3JjVXRpbENFQnVmZmVyX1tzb2Zmc2V0IC0gMV0gPT0gCisJICAgICAgICAgIAkJQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworCSAgICAgICAgICAJCXJldHVybiAtMTsKKwkgICAgICAgICAgCX0KKwkgICAgICAgICAgCWlmIChtX3RndFV0aWxDRUJ1ZmZlcl9bdG9mZnNldCAtIDFdID09IAorCSAgICAgICAgICAJCUNvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKwkgICAgICAgICAgCQlyZXR1cm4gMTsKKwkgICAgICAgICAgCX0KKwkgICAgICAgICAgICByZXR1cm4gKHNvcmRlciA8IHRvcmRlcikgPyAtMSA6IDE7CisJICAgICAgICB9CisJICAgIH0KKwkgICAgcmV0dXJuIDA7CisJfQorCQorCS8qKiAgCisJICogSW50ZXJuYWwgZnVuY3Rpb24uIERvZXMgYnl0ZSBsZXZlbCBzdHJpbmcgY29tcGFyZS4gVXNlZCBieSBzdHJjb2xsIGlmIAorCSAqIHN0cmVuZ3RoID09IGlkZW50aWNhbCBhbmQgc3RyaW5ncyBhcmUgb3RoZXJ3aXNlIGVxdWFsLiBUaGlzIGlzIGEgcmFyZSAKKwkgKiBjYXNlLiBDb21wYXJpc29uIG11c3QgYmUgZG9uZSBvbiBORkQgbm9ybWFsaXplZCBzdHJpbmdzLiBGQ0QgaXMgbm90IGdvb2QgCisJICogZW5vdWdoLgorCSAqIEBwYXJhbSBzb3VyY2UgdGV4dAorCSAqIEBwYXJhbSB0YXJnZXQgdGV4dAorCSAqIEBwYXJhbSBvZmZzZXQgb2YgdGhlIGZpcnN0IGRpZmZlcmVuY2UgaW4gdGhlIHRleHQgc3RyaW5ncworCSAqIEBwYXJhbSBub3JtYWxpemUgZmxhZyBpbmRpY2F0aW5nIGlmIHdlIGFyZSB0byBub3JtYWxpemUgdGhlIHRleHQgYmVmb3JlCisJICogCQkJCWNvbXBhcmlzb24KKwkgKiBAcmV0dXJuIDEgaWYgc291cmNlIGlzIGdyZWF0ZXIgdGhhbiB0YXJnZXQsIC0xIGxlc3MgdGhhbiBhbmQgMCBpZiBlcXVhbHMKKwkgKi8KKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgZG9JZGVudGljYWxDb21wYXJlKFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQsIAorCQkJCQkJCQkJCQkJaW50IG9mZnNldCwgYm9vbGVhbiBub3JtYWxpemUpCisJCQkJCQkJCQkJCQkKKwl7CisJICAgIGlmIChub3JtYWxpemUpIHsKKwkgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soc291cmNlLCBOb3JtYWxpemVyLk5GRCkgCisJICAgICAgICAJCQkJCQkJCQkJIT0gTm9ybWFsaXplci5ZRVMpIHsKKwkgICAgICAgICAgICBzb3VyY2UgPSBOb3JtYWxpemVyLmRlY29tcG9zZShzb3VyY2UsIGZhbHNlKTsKKwkgICAgICAgIH0KKwkKKwkgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2sodGFyZ2V0LCBOb3JtYWxpemVyLk5GRCkgCisJICAgICAgICAJCQkJCQkJCQkJCSE9IE5vcm1hbGl6ZXIuWUVTKSB7CisJICAgICAgICAgICAgdGFyZ2V0ID0gTm9ybWFsaXplci5kZWNvbXBvc2UodGFyZ2V0LCBmYWxzZSk7CisJICAgICAgICB9CisJICAgICAgICBvZmZzZXQgPSAwOworCSAgICB9CisJCisJICAgIHJldHVybiBkb1N0cmluZ0NvbXBhcmUoc291cmNlLCB0YXJnZXQsIG9mZnNldCk7CisJfQorCQorCS8qKgorCSAqIENvbXBhcmVzIHN0cmluZyBmb3IgdGhlaXIgY29kZXBvaW50IG9yZGVyLgorCSAqIFRoaXMgY29tcGFyaXNvbiBoYW5kbGVzIHN1cnJvZ2F0ZSBjaGFyYWN0ZXJzIGFuZCBwbGFjZSB0aGVtIGFmdGVyIHRoZSAKKwkgKiBhbGwgbm9uIHN1cnJvZ2F0ZSBjaGFyYWN0ZXJzLgorCSAqIEBwYXJhbSBzb3VyY2UgdGV4dAorCSAqIEBwYXJhbSB0YXJnZXQgdGV4dAorCSAqIEBwYXJhbSBvZmZzZXQgc3RhcnQgb2Zmc2V0IGZvciBjb21wYXJpc29uCisJICogQHJldHVybiAxIGlmIHNvdXJjZSBpcyBncmVhdGVyIHRoYW4gdGFyZ2V0LCAtMSBsZXNzIHRoYW4gYW5kIDAgaWYgZXF1YWxzCisJICovCisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGRvU3RyaW5nQ29tcGFyZShTdHJpbmcgc291cmNlLCAKKwkJCQkJCQkJCQkJIFN0cmluZyB0YXJnZXQsCisJCQkJCQkJCQkJCSBpbnQgb2Zmc2V0KSAKKwl7CisgICAgCS8vIGNvbXBhcmUgaWRlbnRpY2FsIHByZWZpeGVzIC0gdGhleSBkbyBub3QgbmVlZCB0byBiZSBmaXhlZCB1cAorICAgIAljaGFyIHNjaGFyID0gMDsKKyAgICAJY2hhciB0Y2hhciA9IDA7CisgICAgCWludCBzbGVuZ3RoID0gc291cmNlLmxlbmd0aCgpOworICAgIAlpbnQgdGxlbmd0aCA9IHRhcmdldC5sZW5ndGgoKTsKKyAgICAJaW50IG1pbmxlbmd0aCA9IE1hdGgubWluKHNsZW5ndGgsIHRsZW5ndGgpOworICAgIAl3aGlsZSAob2Zmc2V0IDwgbWlubGVuZ3RoKSB7CisgICAgICAgIAlzY2hhciA9IHNvdXJjZS5jaGFyQXQob2Zmc2V0KTsKKyAgICAgICAgCXRjaGFyID0gdGFyZ2V0LmNoYXJBdChvZmZzZXQgKyspOworICAgICAgICAJaWYgKHNjaGFyICE9IHRjaGFyKSB7CisgICAgICAgICAgICAJYnJlYWs7CisgICAgICAgIAl9CisgICAgCX0KKyAgICAJCisgICAgCWlmIChzY2hhciA9PSB0Y2hhciAmJiBvZmZzZXQgPT0gbWlubGVuZ3RoKSB7CisgICAgCQlpZiAoc2xlbmd0aCA+IG1pbmxlbmd0aCkgeworICAgIAkJCXJldHVybiAxOworICAgIAkJfQorICAgIAkJaWYgKHRsZW5ndGggPiBtaW5sZW5ndGgpIHsKKyAgICAJCQlyZXR1cm4gLTE7CisgICAgCQl9CisgICAgCQlyZXR1cm4gMDsKKyAgICAJfQorCisgICAJCS8vICBpZiBib3RoIHZhbHVlcyBhcmUgaW4gb3IgYWJvdmUgdGhlIHN1cnJvZ2F0ZSByYW5nZSwgRml4IHRoZW0gdXAuCisgICAJCWlmIChzY2hhciA+PSBVVEYxNi5MRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUgCisgICAJCQkmJiB0Y2hhciA+PSBVVEYxNi5MRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUpIHsKKyAgICAgICAgCXNjaGFyID0gZml4dXBVVEYxNihzY2hhcik7CisgICAgICAgIAl0Y2hhciA9IGZpeHVwVVRGMTYodGNoYXIpOworICAgIAl9CisKKyAgICAJLy8gbm93IGMxIGFuZCBjMiBhcmUgaW4gVVRGLTMyLWNvbXBhdGlibGUgb3JkZXIKKyAgICAJcmV0dXJuIChzY2hhciA8IHRjaGFyKSA/IC0xIDogMTsgLy8gc2NoYXIgYW5kIHRjaGFyIGhhcyB0byBiZSBkaWZmZXJlbnQKKwl9CisJCisJLyoqIAorCSAqIFJvdGF0ZSBzdXJyb2dhdGVzIHRvIHRoZSB0b3AgdG8gZ2V0IGNvZGUgcG9pbnQgb3JkZXIKKwkgKi8KKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIGZpeHVwVVRGMTYoY2hhciBjaCkgCisJeyAgICAgICAgICAgICAgICAgIAorICAgIAlpZiAoY2ggPj0gMHhlMDAwKSB7ICAgICAgICAgICAgICAgICAKKyAgICAgICAgCWNoIC09IDB4ODAwOyAgICAgICAgICAgICAgICAgICAgCisgICAgCX0gCisgICAgCWVsc2UgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIAljaCArPSAweDIwMDA7ICAgICAgICAgICAgICAgICAKKyAgICAJfSAgICAgCisgICAgCXJldHVybiBjaDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorCX0KKwkKKwkvKioKKwkgKiBDaGVja3MgdGhhdCB0aGUgc291cmNlIGFmdGVyIG9mZnNldCBpcyBpZ25vcmFibGUKKwkgKiBAcGFyYW0gc291cmNlIHRleHQgc3RyaW5nIHRvIGNoZWNrCisJICogQHBhcmFtIG9mZnNldCAKKwkgKiBAcmV0dXJuIHRydWUgaWYgc291cmNlIGFmdGVyIG9mZnNldCBpcyBpZ25vcmFibGUuIGZhbHNlIG90aGVyd2lzZQorCSAqLworCXByaXZhdGUgZmluYWwgYm9vbGVhbiBjaGVja0lnbm9yYWJsZShTdHJpbmcgc291cmNlLCBpbnQgb2Zmc2V0KQorCQkJCQkJCQkJCQkJCQorCXsKKyAgICAgICAgbV9zcmNVdGlsSXRlcl8uc2V0VGV4dChzb3VyY2UpOworICAgICAgICBtX3NyY1V0aWxDb2xFSXRlcl8uc2V0VGV4dChtX3NyY1V0aWxJdGVyXywgb2Zmc2V0KTsKKwkgICAgaW50IGNlID0gbV9zcmNVdGlsQ29sRUl0ZXJfLm5leHQoKTsKKwkgICAgd2hpbGUgKGNlICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKwkgICAgCWlmIChjZSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisJICAgIAkJcmV0dXJuIGZhbHNlOworCSAgICAJfQorCSAgICAJY2UgPSBtX3NyY1V0aWxDb2xFSXRlcl8ubmV4dCgpOworCSAgICB9CisJICAgIHJldHVybiB0cnVlOyAKKwl9CisJCisJLyoqCisJICogUmVzZXRzIHRoZSBpbnRlcm5hbCBjYXNlIGRhdGEgbWVtYmVycyBhbmQgY29tcHJlc3Npb24gdmFsdWVzLgorCSAqLworCXByaXZhdGUgdm9pZCB1cGRhdGVJbnRlcm5hbFN0YXRlKCkgCisJeworICAgICAgCWlmIChtX2Nhc2VGaXJzdF8gPT0gQXR0cmlidXRlVmFsdWUuVVBQRVJfRklSU1RfKSB7CisgICAgICAgIAltX2Nhc2VTd2l0Y2hfID0gQ0FTRV9TV0lUQ0hfOworICAgICAgCX0gCisgICAgICAJZWxzZSB7CisgICAgICAgIAltX2Nhc2VTd2l0Y2hfID0gTk9fQ0FTRV9TV0lUQ0hfOworICAgICAgCX0KKworICAgICAgCWlmIChtX2lzQ2FzZUxldmVsXyB8fCBtX2Nhc2VGaXJzdF8gPT0gQXR0cmlidXRlVmFsdWUuT0ZGXykgeworICAgICAgICAJbV9tYXNrM18gPSBDRV9SRU1PVkVfQ0FTRV87CisgICAgICAgIAltX2NvbW1vbjNfID0gQ09NTU9OX05PUk1BTF8zXzsKKyAgICAgICAgCW1fYWRkaXRpb24zXyA9IEZMQUdfQklUX01BU0tfQ0FTRV9TV0lUQ0hfT0ZGXzsKKyAgICAgICAgCW1fdG9wM18gPSBDT01NT05fVE9QX0NBU0VfU1dJVENIX09GRl8zXzsKKyAgICAgICAgCW1fYm90dG9tM18gPSBDT01NT05fQk9UVE9NXzNfOworICAgICAgCX0gCisgICAgICAJZWxzZSB7CisgICAgICAgIAltX21hc2szXyA9IENFX0tFRVBfQ0FTRV87CisgICAgICAgIAltX2FkZGl0aW9uM18gPSBGTEFHX0JJVF9NQVNLX0NBU0VfU1dJVENIX09OXzsKKyAgICAgICAgCWlmIChtX2Nhc2VGaXJzdF8gPT0gQXR0cmlidXRlVmFsdWUuVVBQRVJfRklSU1RfKSB7CisgICAgICAgICAgCQltX2NvbW1vbjNfID0gQ09NTU9OX1VQUEVSX0ZJUlNUXzNfOworICAgICAgICAgIAkJbV90b3AzXyA9IENPTU1PTl9UT1BfQ0FTRV9TV0lUQ0hfVVBQRVJfM187CisgICAgICAgICAgCQltX2JvdHRvbTNfID0gQ09NTU9OX0JPVFRPTV9DQVNFX1NXSVRDSF9VUFBFUl8zXzsKKyAgICAgICAgCX0gZWxzZSB7CisgICAgICAgICAgCQltX2NvbW1vbjNfID0gQ09NTU9OX05PUk1BTF8zXzsKKyAgICAgICAgICAJCW1fdG9wM18gPSBDT01NT05fVE9QX0NBU0VfU1dJVENIX0xPV0VSXzNfOworICAgICAgICAgIAkJbV9ib3R0b20zXyA9IENPTU1PTl9CT1RUT01fQ0FTRV9TV0lUQ0hfTE9XRVJfM187CisgICAgICAgIAl9CisgICAgICAJfQorCisgICAgICAJLy8gU2V0IHRoZSBjb21wcmVzc2lvbiB2YWx1ZXMKKyAgICAgIAlpbnQgdG90YWwzID0gbV90b3AzXyAtIENPTU1PTl9CT1RUT01fM18gLSAxOworICAgICAgCS8vIHdlIG11bHRpbHBseSBkb3VibGUgd2l0aCBpbnQsIGJ1dCBuZWVkIG9ubHkgaW50CisgICAgICAJbV90b3BDb3VudDNfID0gKGludCkoUFJPUE9SVElPTl8zXyAqIHRvdGFsMyk7IAorICAgICAgCW1fYm90dG9tQ291bnQzXyA9IHRvdGFsMyAtIG1fdG9wQ291bnQzXzsKKworICAgICAgCWlmICghbV9pc0Nhc2VMZXZlbF8gJiYgZ2V0U3RyZW5ndGgoKSA9PSBBdHRyaWJ1dGVWYWx1ZS5URVJUSUFSWV8gCisgICAgICAgICAgCSYmICFtX2lzRnJlbmNoQ29sbGF0aW9uXyAmJiAhbV9pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF8pIHsKKyAgICAgICAgCW1faXNTaW1wbGUzXyA9IHRydWU7CisgICAgICAJfSAKKyAgICAgIAllbHNlIHsKKyAgICAgICAgCW1faXNTaW1wbGUzXyA9IGZhbHNlOworICAgICAgCX0KKwl9CisJCisJLyoqCisgICAgICogSW5pdGlhbGl6ZXMgdGhlIFJ1bGVCYXNlZENvbGxhdG9yCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCB2b2lkIGluaXQoKQorICAgIHsKKyAgICAJZm9yIChtX21pblVuc2FmZV8gPSAwOyBtX21pblVuc2FmZV8gPCBERUZBVUxUX01JTl9IRVVSSVNUSUNfOyAKKyAgICAJICAgICBtX21pblVuc2FmZV8gKyspIHsgIAorICAgIAkJLy8gRmluZCB0aGUgc21hbGxlc3QgdW5zYWZlIGNoYXIuCisgICAgICAgIAlpZiAoaXNVbnNhZmUobV9taW5VbnNhZmVfKSkgeworICAgICAgICAJCWJyZWFrOworICAgICAgICAJfQorICAgIAl9CisgICAgCQorICAgIAlmb3IgKG1fbWluQ29udHJhY3Rpb25FbmRfID0gMDsgCisgICAgCSAgICAgbV9taW5Db250cmFjdGlvbkVuZF8gPCBERUZBVUxUX01JTl9IRVVSSVNUSUNfOyAKKyAgICAJICAgICBtX21pbkNvbnRyYWN0aW9uRW5kXyArKykgeyAgCisgICAgCSAgICAvLyBGaW5kIHRoZSBzbWFsbGVzdCBjb250cmFjdGlvbi1lbmRpbmcgY2hhci4KKyAgICAgICAgCWlmIChpc0NvbnRyYWN0aW9uRW5kKG1fbWluQ29udHJhY3Rpb25FbmRfKSkgeworICAgICAgICAJCWJyZWFrOworICAgICAgICAJfQorICAgIAl9CisgICAgCXNldFN0cmVuZ3RoKG1fZGVmYXVsdFN0cmVuZ3RoXyk7CisgICAgCXNldERlY29tcG9zaXRpb24obV9kZWZhdWx0RGVjb21wb3NpdGlvbl8pOworICAgICAgICBtX3ZhcmlhYmxlVG9wVmFsdWVfID0gbV9kZWZhdWx0VmFyaWFibGVUb3BWYWx1ZV87CisgICAgCW1faXNGcmVuY2hDb2xsYXRpb25fID0gbV9kZWZhdWx0SXNGcmVuY2hDb2xsYXRpb25fOworICAgIAltX2lzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkXyA9IG1fZGVmYXVsdElzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkXzsKKyAgICAJbV9pc0Nhc2VMZXZlbF8gPSBtX2RlZmF1bHRJc0Nhc2VMZXZlbF87CisgICAgCW1fY2FzZUZpcnN0XyA9IG1fZGVmYXVsdENhc2VGaXJzdF87CisgICAgCW1faXNIaXJhZ2FuYTRfID0gbV9kZWZhdWx0SXNIaXJhZ2FuYTRfOworICAgIAl1cGRhdGVJbnRlcm5hbFN0YXRlKCk7CisgICAgfQorICAgIAorICAgIC8qKiAKKyAgICAgKiAgSW5pdGlhbGl6ZXMgdXRpbGl0eSBpdGVyYXRvcnMgYW5kIGJ5dGUgYnVmZmVyIHVzZWQgYnkgY29tcGFyZQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgdm9pZCBpbml0VXRpbGl0eSgpIHsKKyAgICAgICBtX3NyY1V0aWxJdGVyXyA9IG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihuZXcgU3RyaW5nKCIiKSk7CisgICAgICAgbV9zcmNVdGlsQ29sRUl0ZXJfID0gbmV3IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihtX3NyY1V0aWxJdGVyXywgdGhpcyk7CisgICAgICAgbV90Z3RVdGlsSXRlcl8gPSBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IobmV3IFN0cmluZygiIikpOworICAgICAgIG1fdGd0VXRpbENvbEVJdGVyXyA9IG5ldyBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IobV90Z3RVdGlsSXRlcl8sIHRoaXMpOworICAgICAgIG1fdXRpbEJ5dGVzMF8gPSBuZXcgYnl0ZVtTT1JUX0JVRkZFUl9JTklUX1NJWkVfQ0FTRV9dOyAvLyBjYXNlCisgICAgICAgbV91dGlsQnl0ZXMxXyA9IG5ldyBieXRlW1NPUlRfQlVGRkVSX0lOSVRfU0laRV8xX107IC8vIHByaW1hcnkgCisgICAgICAgbV91dGlsQnl0ZXMyXyA9IG5ldyBieXRlW1NPUlRfQlVGRkVSX0lOSVRfU0laRV8yX107IC8vIHNlY29uZGFyeQorICAgICAgIG1fdXRpbEJ5dGVzM18gPSBuZXcgYnl0ZVtTT1JUX0JVRkZFUl9JTklUX1NJWkVfM19dOyAvLyB0ZXJ0aWFyeSAKKyAgICAgICBtX3V0aWxCeXRlczRfID0gbmV3IGJ5dGVbU09SVF9CVUZGRVJfSU5JVF9TSVpFXzRfXTsgIC8vIFF1YXRlcm5hcnkKKyAgICAgICBtX3NyY1V0aWxDRUJ1ZmZlcl8gPSBuZXcgaW50W0NFX0JVRkZFUl9TSVpFX107CisgICAgICAgbV90Z3RVdGlsQ0VCdWZmZXJfID0gbmV3IGludFtDRV9CVUZGRVJfU0laRV9dOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1J1bGVCYXNlZE51bWJlckZvcm1hdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUnVsZUJhc2VkTnVtYmVyRm9ybWF0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTZiZjAyNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1J1bGVCYXNlZE51bWJlckZvcm1hdC5qYXZhCkBAIC0wLDAgKzEsMTMwNyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L3RleHQvUnVsZUJhc2VkTnVtYmVyRm9ybWF0LmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDcvMjYgMjI6NTE6NDkgJCAKKyAqICRSZXZpc2lvbjogMS45ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUxvY2FsZURhdGE7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyUHJvcGVydHk7CisKK2ltcG9ydCBqYXZhLm1hdGguQmlnSW50ZWdlcjsKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworCisvKioKKyAqIDxwPkEgY2xhc3MgdGhhdCBmb3JtYXRzIG51bWJlcnMgYWNjb3JkaW5nIHRvIGEgc2V0IG9mIHJ1bGVzLiBUaGlzIG51bWJlciBmb3JtYXR0ZXIgaXMKKyAqIHR5cGljYWxseSB1c2VkIGZvciBzcGVsbGluZyBvdXQgbnVtZXJpYyB2YWx1ZXMgaW4gd29yZHMgKGUuZy4sIDI1LDM0NzYgYXMKKyAqICZxdW90O3R3ZW50eS1maXZlIHRob3VzYW5kIHRocmVlIGh1bmRyZWQgc2V2ZW50eS1zaXgmcXVvdDsgb3IgJnF1b3Q7dmluZ3QtY2lucSBtaWxsZSB0cm9pcworICogY2VudHMgc29peGFudGUtc2VpemUmcXVvdDsgb3IKKyAqICZxdW90O2Z1bmZ1bmR6d2FuemlndGF1c2VuZGRyZWlodW5kZXJ0c2VjaHN1bmRzaWViemlnJnF1b3Q7KSwgYnV0IGNhbiBhbHNvIGJlIHVzZWQgZm9yCisgKiBvdGhlciBjb21wbGljYXRlZCBmb3JtYXR0aW5nIHRhc2tzLCBzdWNoIGFzIGZvcm1hdHRpbmcgYSBudW1iZXIgb2Ygc2Vjb25kcyBhcyBob3VycywKKyAqIG1pbnV0ZXMgYW5kIHNlY29uZHMgKGUuZy4sIDMsNzMwIGFzICZxdW90OzE6MDI6MTAmcXVvdDspLjwvcD4KKyAqCisgKiA8cD5UaGUgcmVzb3VyY2VzIGNvbnRhaW4gdGhyZWUgcHJlZGVmaW5lZCBmb3JtYXR0ZXJzIGZvciBlYWNoIGxvY2FsZTogc3BlbGxvdXQsIHdoaWNoCisgKiBzcGVsbHMgb3V0IGEgdmFsdWUgaW4gd29yZHMgKDEyMyBpcyAmcXVvdDtvbmUgaHVuZHJlZCB0d2VudHktdGhyZWUmcXVvdDspOyBvcmRpbmFsLCB3aGljaAorICogYXBwZW5kcyBhbiBvcmRpbmFsIHN1ZmZpeCB0byB0aGUgZW5kIG9mIGEgbnVtZXJhbCAoMTIzIGlzICZxdW90OzEyM3JkJnF1b3Q7KTsgYW5kCisgKiBkdXJhdGlvbiwgd2hpY2ggc2hvd3MgYSBkdXJhdGlvbiBpbiBzZWNvbmRzIGFzIGhvdXJzLCBtaW51dGVzLCBhbmQgc2Vjb25kcyAoMTIzIGlzCisgKiAmcXVvdDsyOjAzJnF1b3Q7KS4mbmJzcDsgVGhlIGNsaWVudCBjYW4gYWxzbyBkZWZpbmUgbW9yZSBzcGVjaWFsaXplZCA8dHQ+UnVsZUJhc2VkTnVtYmVyRm9ybWF0PC90dD5zCisgKiBieSBzdXBwbHlpbmcgcHJvZ3JhbW1lci1kZWZpbmVkIHJ1bGUgc2V0cy48L3A+CisgKgorICogPHA+VGhlIGJlaGF2aW9yIG9mIGEgPHR0PlJ1bGVCYXNlZE51bWJlckZvcm1hdDwvdHQ+IGlzIHNwZWNpZmllZCBieSBhIHRleHR1YWwgZGVzY3JpcHRpb24KKyAqIHRoYXQgaXMgZWl0aGVyIHBhc3NlZCB0byB0aGUgY29uc3RydWN0b3IgYXMgYSA8dHQ+U3RyaW5nPC90dD4gb3IgbG9hZGVkIGZyb20gYSByZXNvdXJjZQorICogYnVuZGxlLiBJbiBpdHMgc2ltcGxlc3QgZm9ybSwgdGhlIGRlc2NyaXB0aW9uIGNvbnNpc3RzIG9mIGEgc2VtaWNvbG9uLWRlbGltaXRlZCBsaXN0IG9mIDxlbT5ydWxlcy48L2VtPgorICogRWFjaCBydWxlIGhhcyBhIHN0cmluZyBvZiBvdXRwdXQgdGV4dCBhbmQgYSB2YWx1ZSBvciByYW5nZSBvZiB2YWx1ZXMgaXQgaXMgYXBwbGljYWJsZSB0by4KKyAqIEluIGEgdHlwaWNhbCBzcGVsbG91dCBydWxlIHNldCwgdGhlIGZpcnN0IHR3ZW50eSBydWxlcyBhcmUgdGhlIHdvcmRzIGZvciB0aGUgbnVtYmVycyBmcm9tCisgKiAwIHRvIDE5OjwvcD4KKyAqCisgKiA8cHJlPnplcm87IG9uZTsgdHdvOyB0aHJlZTsgZm91cjsgZml2ZTsgc2l4OyBzZXZlbjsgZWlnaHQ7IG5pbmU7CisgKiB0ZW47IGVsZXZlbjsgdHdlbHZlOyB0aGlydGVlbjsgZm91cnRlZW47IGZpZnRlZW47IHNpeHRlZW47IHNldmVudGVlbjsgZWlnaHRlZW47IG5pbmV0ZWVuOzwvcHJlPgorICoKKyAqIDxwPkZvciBsYXJnZXIgbnVtYmVycywgd2UgY2FuIHVzZSB0aGUgcHJlY2VkaW5nIHNldCBvZiBydWxlcyB0byBmb3JtYXQgdGhlIG9uZXMgcGxhY2UsIGFuZAorICogd2Ugb25seSBoYXZlIHRvIHN1cHBseSB0aGUgd29yZHMgZm9yIHRoZSBtdWx0aXBsZXMgb2YgMTA6PC9wPgorICoKKyAqIDxwcmU+MjA6IHR3ZW50eVstJmd0OyZndDtdOworICogMzA6IHRoaXJ0eXstJmd0OyZndDtdOworICogNDA6IGZvcnR5Wy0mZ3Q7Jmd0O107CisgKiA1MDogZmlmdHlbLSZndDsmZ3Q7XTsKKyAqIDYwOiBzaXh0eVstJmd0OyZndDtdOworICogNzA6IHNldmVudHlbLSZndDsmZ3Q7XTsKKyAqIDgwOiBlaWdodHlbLSZndDsmZ3Q7XTsKKyAqIDkwOiBuaW5ldHlbLSZndDsmZ3Q7XTs8L3ByZT4KKyAqCisgKiA8cD5JbiB0aGVzZSBydWxlcywgdGhlIDxlbT5iYXNlIHZhbHVlPC9lbT4gaXMgc3BlbGxlZCBvdXQgZXhwbGljaXRseSBhbmQgc2V0IG9mZiBmcm9tIHRoZQorICogcnVsZSdzIG91dHB1dCB0ZXh0IHdpdGggYSBjb2xvbi4gVGhlIHJ1bGVzIGFyZSBpbiBhIHNvcnRlZCBsaXN0LCBhbmQgYSBydWxlIGlzIGFwcGxpY2FibGUKKyAqIHRvIGFsbCBudW1iZXJzIGZyb20gaXRzIG93biBiYXNlIHZhbHVlIHRvIG9uZSBsZXNzIHRoYW4gdGhlIG5leHQgcnVsZSdzIGJhc2UgdmFsdWUuIFRoZQorICogJnF1b3Q7Jmd0OyZndDsmcXVvdDsgdG9rZW4gaXMgY2FsbGVkIGEgPGVtPnN1YnN0aXR1dGlvbjwvZW0+IGFuZCB0ZWxscyB0aGUgZm9tYXR0ZXIgdG8KKyAqIGlzb2xhdGUgdGhlIG51bWJlcidzIG9uZXMgZGlnaXQsIGZvcm1hdCBpdCB1c2luZyB0aGlzIHNhbWUgc2V0IG9mIHJ1bGVzLCBhbmQgcGxhY2UgdGhlCisgKiByZXN1bHQgYXQgdGhlIHBvc2l0aW9uIG9mIHRoZSAmcXVvdDsmZ3Q7Jmd0OyZxdW90OyB0b2tlbi4gVGV4dCBpbiBicmFja2V0cyBpcyBvbWl0dGVkIGlmCisgKiB0aGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZCBpcyBhbiBldmVuIG11bHRpcGxlIG9mIDEwICh0aGUgaHlwaGVuIGlzIGEgbGl0ZXJhbCBoeXBoZW47IDI0CisgKiBpcyAmcXVvdDt0d2VudHktZm91ciwmcXVvdDsgbm90ICZxdW90O3R3ZW50eSBmb3VyJnF1b3Q7KS48L3A+CisgKgorICogPHA+Rm9yIGV2ZW4gbGFyZ2VyIG51bWJlcnMsIHdlIGNhbiBhY3R1YWxseSBsb29rIHVwIHNldmVyYWwgcGFydHMgb2YgdGhlIG51bWJlciBpbiB0aGUKKyAqIGxpc3Q6PC9wPgorICoKKyAqIDxwcmU+MTAwOiAmbHQ7Jmx0OyBodW5kcmVkWyAmZ3Q7Jmd0O107PC9wcmU+CisgKgorICogPHA+VGhlICZxdW90OyZsdDsmbHQ7JnF1b3Q7IHJlcHJlc2VudHMgYSBuZXcga2luZCBvZiBzdWJzdGl0dXRpb24uIFRoZSAmbHQ7Jmx0OyBpc29sYXRlcworICogdGhlIGh1bmRyZWRzIGRpZ2l0IChhbmQgYW55IGRpZ2l0cyB0byBpdHMgbGVmdCksIGZvcm1hdHMgaXQgdXNpbmcgdGhpcyBzYW1lIHJ1bGUgc2V0LCBhbmQKKyAqIHBsYWNlcyB0aGUgcmVzdWx0IHdoZXJlIHRoZSAmcXVvdDsmbHQ7Jmx0OyZxdW90OyB3YXMuIE5vdGljZSBhbHNvIHRoYXQgdGhlIG1lYW5pbmcgb2YKKyAqICZndDsmZ3Q7IGhhcyBjaGFuZ2VkOiBpdCBub3cgcmVmZXJzIHRvIGJvdGggdGhlIHRlbnMgYW5kIHRoZSBvbmVzIGRpZ2l0cy4gVGhlIG1lYW5pbmcgb2YKKyAqIGJvdGggc3Vic3RpdHV0aW9ucyBkZXBlbmRzIG9uIHRoZSBydWxlJ3MgYmFzZSB2YWx1ZS4gVGhlIGJhc2UgdmFsdWUgZGV0ZXJtaW5lcyB0aGUgcnVsZSdzIDxlbT5kaXZpc29yLDwvZW0+CisgKiB3aGljaCBpcyB0aGUgaGlnaGVzdCBwb3dlciBvZiAxMCB0aGF0IGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgYmFzZSB2YWx1ZSAodGhlIHVzZXIKKyAqIGNhbiBjaGFuZ2UgdGhpcykuIFRvIGZpbGwgaW4gdGhlIHN1YnN0aXR1dGlvbnMsIHRoZSBmb3JtYXR0ZXIgZGl2aWRlcyB0aGUgbnVtYmVyIGJlaW5nCisgKiBmb3JtYXR0ZWQgYnkgdGhlIGRpdmlzb3IuIFRoZSBpbnRlZ3JhbCBxdW90aWVudCBpcyB1c2VkIHRvIGZpbGwgaW4gdGhlICZsdDsmbHQ7CisgKiBzdWJzdGl0dXRpb24sIGFuZCB0aGUgcmVtYWluZGVyIGlzIHVzZWQgdG8gZmlsbCBpbiB0aGUgJmd0OyZndDsgc3Vic3RpdHV0aW9uLiBUaGUgbWVhbmluZworICogb2YgdGhlIGJyYWNrZXRzIGNoYW5nZXMgc2ltaWxhcmx5OiB0ZXh0IGluIGJyYWNrZXRzIGlzIG9taXR0ZWQgaWYgdGhlIHZhbHVlIGJlaW5nCisgKiBmb3JtYXR0ZWQgaXMgYW4gZXZlbiBtdWx0aXBsZSBvZiB0aGUgcnVsZSdzIGRpdmlzb3IuIFRoZSBydWxlcyBhcmUgYXBwbGllZCByZWN1cnNpdmVseSwgc28KKyAqIGlmIGEgc3Vic3RpdHV0aW9uIGlzIGZpbGxlZCBpbiB3aXRoIHRleHQgdGhhdCBpbmNsdWRlcyBhbm90aGVyIHN1YnN0aXR1dGlvbiwgdGhhdAorICogc3Vic3RpdHV0aW9uIGlzIGFsc28gZmlsbGVkIGluLjwvcD4KKyAqCisgKiA8cD5UaGlzIHJ1bGUgY292ZXJzIHZhbHVlcyB1cCB0byA5OTksIGF0IHdoaWNoIHBvaW50IHdlIGFkZCBhbm90aGVyIHJ1bGU6PC9wPgorICoKKyAqIDxwcmU+MTAwMDogJmx0OyZsdDsgdGhvdXNhbmRbICZndDsmZ3Q7XTs8L3ByZT4KKyAqCisgKiA8cD5BZ2FpbiwgdGhlIG1lYW5pbmdzIG9mIHRoZSBicmFja2V0cyBhbmQgc3Vic3RpdHV0aW9uIHRva2VucyBzaGlmdCBiZWNhdXNlIHRoZSBydWxlJ3MKKyAqIGJhc2UgdmFsdWUgaXMgYSBoaWdoZXIgcG93ZXIgb2YgMTAsIGNoYW5naW5nIHRoZSBydWxlJ3MgZGl2aXNvci4gVGhpcyBydWxlIGNhbiBhY3R1YWxseSBiZQorICogdXNlZCBhbGwgdGhlIHdheSB1cCB0byA5OTksOTk5LiBUaGlzIGFsbG93cyB1cyB0byBmaW5pc2ggb3V0IHRoZSBydWxlcyBhcyBmb2xsb3dzOjwvcD4KKyAqCisgKiA8cHJlPjEsMDAwLDAwMDogJmx0OyZsdDsgbWlsbGlvblsgJmd0OyZndDtdOworICogMSwwMDAsMDAwLDAwMDogJmx0OyZsdDsgYmlsbGlvblsgJmd0OyZndDtdOworICogMSwwMDAsMDAwLDAwMCwwMDA6ICZsdDsmbHQ7IHRyaWxsaW9uWyAmZ3Q7Jmd0O107CisgKiAxLDAwMCwwMDAsMDAwLDAwMCwwMDA6IE9VVCBPRiBSQU5HRSE7PC9wcmU+CisgKgorICogPHA+Q29tbWFzLCBwZXJpb2RzLCBhbmQgc3BhY2VzIGNhbiBiZSB1c2VkIGluIHRoZSBiYXNlIHZhbHVlcyB0byBpbXByb3ZlIGxlZ2liaWxpdHkgYW5kCisgKiBhcmUgaWdub3JlZCBieSB0aGUgcnVsZSBwYXJzZXIuIFRoZSBsYXN0IHJ1bGUgaW4gdGhlIGxpc3QgaXMgY3VzdG9tYXJpbHkgdHJlYXRlZCBhcyBhbgorICogJnF1b3Q7b3ZlcmZsb3cgcnVsZSwmcXVvdDsgYXBwbHlpbmcgdG8gZXZlcnl0aGluZyBmcm9tIGl0cyBiYXNlIHZhbHVlIG9uIHVwLCBhbmQgb2Z0ZW4gKGFzCisgKiBpbiB0aGlzIGV4YW1wbGUpIGJlaW5nIHVzZWQgdG8gcHJpbnQgb3V0IGFuIGVycm9yIG1lc3NhZ2Ugb3IgZGVmYXVsdCByZXByZXNlbnRhdGlvbi4KKyAqIE5vdGljZSBhbHNvIHRoYXQgdGhlIHNpemUgb2YgdGhlIG1ham9yIGdyb3VwaW5ncyBpbiBsYXJnZSBudW1iZXJzIGlzIGNvbnRyb2xsZWQgYnkgdGhlCisgKiBzcGFjaW5nIG9mIHRoZSBydWxlczogYmVjYXVzZSBpbiBFbmdsaXNoIHdlIGdyb3VwIG51bWJlcnMgYnkgdGhvdXNhbmQsIHRoZSBoaWdoZXIgcnVsZXMKKyAqIGFyZSBzZXBhcmF0ZWQgZnJvbSBlYWNoIG90aGVyIGJ5IGEgZmFjdG9yIG9mIDEsMDAwLjwvcD4KKyAqCisgKiA8cD5UbyBzZWUgaG93IHRoZXNlIHJ1bGVzIGFjdHVhbGx5IHdvcmsgaW4gcHJhY3RpY2UsIGNvbnNpZGVyIHRoZSBmb2xsb3dpbmcgZXhhbXBsZToKKyAqIEZvcm1hdHRpbmcgMjUsNDMwIHdpdGggdGhpcyBydWxlIHNldCB3b3VsZCB3b3JrIGxpa2UgdGhpczo8L3A+CisgKgorICogPHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjYzMCI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjIxIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjU3IiB2YWxpZ249InRvcCI+PHN0cm9uZz4mbHQ7Jmx0OyB0aG91c2FuZCAmZ3Q7Jmd0Ozwvc3Ryb25nPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIzNDAiIHZhbGlnbj0idG9wIj5bdGhlIHJ1bGUgd2hvc2UgYmFzZSB2YWx1ZSBpcyAxLDAwMCBpcyBhcHBsaWNhYmxlIHRvIDI1LDM0MF08L3RkPgorICogICA8L3RyPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSIyMSI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjI1NyIgdmFsaWduPSJ0b3AiPjxzdHJvbmc+dHdlbnR5LSZndDsmZ3Q7PC9zdHJvbmc+IHRob3VzYW5kICZndDsmZ3Q7PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjM0MCIgdmFsaWduPSJ0b3AiPlsyNSwzNDAgb3ZlciAxLDAwMCBpcyAyNS4gVGhlIHJ1bGUgZm9yIDIwIGFwcGxpZXMuXTwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjIxIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjU3IiB2YWxpZ249InRvcCI+dHdlbnR5LTxzdHJvbmc+Zml2ZTwvc3Ryb25nPiB0aG91c2FuZCAmZ3Q7Jmd0OzwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIzNDAiIHZhbGlnbj0idG9wIj5bMjUgbW9kIDEwIGlzIDUuIFRoZSBydWxlIGZvciA1IGlzICZxdW90O2ZpdmUuJnF1b3Q7PC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iMjEiPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIyNTciIHZhbGlnbj0idG9wIj50d2VudHktZml2ZSB0aG91c2FuZCA8c3Ryb25nPiZsdDsmbHQ7IGh1bmRyZWQgJmd0OyZndDs8L3N0cm9uZz48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMzQwIiB2YWxpZ249InRvcCI+WzI1LDM0MCBtb2QgMSwwMDAgaXMgMzQwLiBUaGUgcnVsZSBmb3IgMTAwIGFwcGxpZXMuXTwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjIxIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjU3IiB2YWxpZ249InRvcCI+dHdlbnR5LWZpdmUgdGhvdXNhbmQgPHN0cm9uZz50aHJlZTwvc3Ryb25nPiBodW5kcmVkICZndDsmZ3Q7PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjM0MCIgdmFsaWduPSJ0b3AiPlszNDAgb3ZlciAxMDAgaXMgMy4gVGhlIHJ1bGUgZm9yIDMgaXMgJnF1b3Q7dGhyZWUuJnF1b3Q7XTwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjIxIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjU3IiB2YWxpZ249InRvcCI+dHdlbnR5LWZpdmUgdGhvdXNhbmQgdGhyZWUgaHVuZHJlZCA8c3Ryb25nPmZvcnR5PC9zdHJvbmc+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjM0MCIgdmFsaWduPSJ0b3AiPlszNDAgbW9kIDEwMCBpcyA0MC4gVGhlIHJ1bGUgZm9yIDQwIGFwcGxpZXMuIFNpbmNlIDQwIGRpdmlkZXMKKyAqICAgICBldmVubHkgYnkgMTAsIHRoZSBoeXBoZW4gYW5kIHN1YnN0aXR1dGlvbiBpbiB0aGUgYnJhY2tldHMgYXJlIG9taXR0ZWQuXTwvdGQ+CisgKiAgIDwvdHI+CisgKiA8L3RhYmxlPgorICoKKyAqIDxwPlRoZSBhYm92ZSBzeW50YXggc3VmZmljZXMgb25seSB0byBmb3JtYXQgcG9zaXRpdmUgaW50ZWdlcnMuIFRvIGZvcm1hdCBuZWdhdGl2ZSBudW1iZXJzLAorICogd2UgYWRkIGEgc3BlY2lhbCBydWxlOjwvcD4KKyAqCisgKiA8cHJlPi14OiBtaW51cyAmZ3Q7Jmd0Ozs8L3ByZT4KKyAqCisgKiA8cD5UaGlzIGlzIGNhbGxlZCBhIDxlbT5uZWdhdGl2ZS1udW1iZXIgcnVsZSw8L2VtPiBhbmQgaXMgaWRlbnRpZmllZCBieSAmcXVvdDsteCZxdW90OworICogd2hlcmUgdGhlIGJhc2UgdmFsdWUgd291bGQgYmUuIFRoaXMgcnVsZSBpcyB1c2VkIHRvIGZvcm1hdCBhbGwgbmVnYXRpdmUgbnVtYmVycy4gdGhlCisgKiAmZ3Q7Jmd0OyB0b2tlbiBoZXJlIG1lYW5zICZxdW90O2ZpbmQgdGhlIG51bWJlcidzIGFic29sdXRlIHZhbHVlLCBmb3JtYXQgaXQgd2l0aCB0aGVzZQorICogcnVsZXMsIGFuZCBwdXQgdGhlIHJlc3VsdCBoZXJlLiZxdW90OzwvcD4KKyAqCisgKiA8cD5XZSBhbHNvIGFkZCBhIHNwZWNpYWwgcnVsZSBjYWxsZWQgYSA8ZW0+ZnJhY3Rpb24gcnVsZSA8L2VtPmZvciBudW1iZXJzIHdpdGggZnJhY3Rpb25hbAorICogcGFydHM6PC9wPgorICoKKyAqIDxwcmU+eC54OiAmbHQ7Jmx0OyBwb2ludCAmZ3Q7Jmd0Ozs8L3ByZT4KKyAqCisgKiA8cD5UaGlzIHJ1bGUgaXMgdXNlZCBmb3IgYWxsIHBvc2l0aXZlIG5vbi1pbnRlZ2VycyAobmVnYXRpdmUgbm9uLWludGVnZXJzIHBhc3MgdGhyb3VnaCB0aGUKKyAqIG5lZ2F0aXZlLW51bWJlciBydWxlIGZpcnN0IGFuZCB0aGVuIHRocm91Z2ggdGhpcyBydWxlKS4gSGVyZSwgdGhlICZsdDsmbHQ7IHRva2VuIHJlZmVycyB0bworICogdGhlIG51bWJlcidzIGludGVncmFsIHBhcnQsIGFuZCB0aGUgJmd0OyZndDsgdG8gdGhlIG51bWJlcidzIGZyYWN0aW9uYWwgcGFydC4gVGhlCisgKiBmcmFjdGlvbmFsIHBhcnQgaXMgZm9ybWF0dGVkIGFzIGEgc2VyaWVzIG9mIHNpbmdsZS1kaWdpdCBudW1iZXJzIChlLmcuLCAxMjMuNDU2IHdvdWxkIGJlCisgKiBmb3JtYXR0ZWQgYXMgJnF1b3Q7b25lIGh1bmRyZWQgdHdlbnR5LXRocmVlIHBvaW50IGZvdXIgZml2ZSBzaXgmcXVvdDspLjwvcD4KKyAqCisgKiA8cD5UbyBzZWUgaG93IHRoaXMgcnVsZSBzeW50YXggaXMgYXBwbGllZCB0byB2YXJpb3VzIGxhbmd1YWdlcywgZXhhbWluZSB0aGUgcmVzb3VyY2UgZGF0YS48L3A+CisgKgorICogPHA+VGhlcmUgaXMgYWN0dWFsbHkgbXVjaCBtb3JlIGZsZXhpYmlsaXR5IGJ1aWx0IGludG8gdGhlIHJ1bGUgbGFuZ3VhZ2UgdGhhbiB0aGUKKyAqIGRlc2NyaXB0aW9uIGFib3ZlIHNob3dzLiBBIGZvcm1hdHRlciBtYXkgb3duIG11bHRpcGxlIHJ1bGUgc2V0cywgd2hpY2ggY2FuIGJlIHNlbGVjdGVkIGJ5CisgKiB0aGUgY2FsbGVyLCBhbmQgd2hpY2ggY2FuIHVzZSBlYWNoIG90aGVyIHRvIGZpbGwgaW4gdGhlaXIgc3Vic3RpdHV0aW9ucy4gU3Vic3RpdHV0aW9ucyBjYW4KKyAqIGFsc28gYmUgZmlsbGVkIGluIHdpdGggZGlnaXRzLCB1c2luZyBhIERlY2ltYWxGb3JtYXQgb2JqZWN0LiBUaGVyZSBpcyBzeW50YXggdGhhdCBjYW4gYmUKKyAqIHVzZWQgdG8gYWx0ZXIgYSBydWxlJ3MgZGl2aXNvciBpbiB2YXJpb3VzIHdheXMuIEFuZCB0aGVyZSBpcyBwcm92aXNpb24gZm9yIG11Y2ggbW9yZQorICogZmxleGlibGUgZnJhY3Rpb24gaGFuZGxpbmcuIEEgY29tcGxldGUgZGVzY3JpcHRpb24gb2YgdGhlIHJ1bGUgc3ludGF4IGZvbGxvd3M6PC9wPgorICoKKyAqIDxocj4KKyAqCisgKiA8cD5UaGUgZGVzY3JpcHRpb24gb2YgYSA8dHQ+UnVsZUJhc2VkTnVtYmVyRm9ybWF0PC90dD4ncyBiZWhhdmlvciBjb25zaXN0cyBvZiBvbmUgb3IgbW9yZSA8ZW0+cnVsZQorICogc2V0cy48L2VtPiBFYWNoIHJ1bGUgc2V0IGNvbnNpc3RzIG9mIGEgbmFtZSwgYSBjb2xvbiwgYW5kIGEgbGlzdCBvZiA8ZW0+cnVsZXMuPC9lbT4gQSBydWxlCisgKiBzZXQgbmFtZSBtdXN0IGJlZ2luIHdpdGggYSAlIHNpZ24uIFJ1bGUgc2V0cyB3aXRoIG5hbWVzIHRoYXQgYmVnaW4gd2l0aCBhIHNpbmdsZSAlIHNpZ24KKyAqIGFyZSA8ZW0+cHVibGljOjwvZW0+IHRoZSBjYWxsZXIgY2FuIHNwZWNpZnkgdGhhdCB0aGV5IGJlIHVzZWQgdG8gZm9ybWF0IGFuZCBwYXJzZSBudW1iZXJzLgorICogUnVsZSBzZXRzIHdpdGggbmFtZXMgdGhhdCBiZWdpbiB3aXRoICUlIGFyZSA8ZW0+cHJpdmF0ZTo8L2VtPiB0aGV5IGV4aXN0IG9ubHkgZm9yIHRoZSB1c2UKKyAqIG9mIG90aGVyIHJ1bGUgc2V0cy4gSWYgYSBmb3JtYXR0ZXIgb25seSBoYXMgb25lIHJ1bGUgc2V0LCB0aGUgbmFtZSBtYXkgYmUgb21pdHRlZC48L3A+CisgKgorICogPHA+VGhlIHVzZXIgY2FuIGFsc28gc3BlY2lmeSBhIHNwZWNpYWwgJnF1b3Q7cnVsZSBzZXQmcXVvdDsgbmFtZWQgPHR0PiUlbGVuaWVudC1wYXJzZTwvdHQ+LgorICogVGhlIGJvZHkgb2YgPHR0PiUlbGVuaWVudC1wYXJzZTwvdHQ+IGlzbid0IGEgc2V0IG9mIG51bWJlci1mb3JtYXR0aW5nIHJ1bGVzLCBidXQgYSA8dHQ+UnVsZUJhc2VkQ29sbGF0b3I8L3R0PgorICogZGVzY3JpcHRpb24gd2hpY2ggaXMgdXNlZCB0byBkZWZpbmUgZXF1aXZhbGVuY2VzIGZvciBsZW5pZW50IHBhcnNpbmcuIEZvciBtb3JlIGluZm9ybWF0aW9uCisgKiBvbiB0aGUgc3ludGF4LCBzZWUgPHR0PlJ1bGVCYXNlZENvbGxhdG9yPC90dD4uIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGxlbmllbnQgcGFyc2luZywKKyAqIHNlZSA8dHQ+c2V0TGVuaWVudFBhcnNlKCk8L3R0Pi48L3A+CisgKgorICogPHA+VGhlIGJvZHkgb2YgYSBydWxlIHNldCBjb25zaXN0cyBvZiBhbiBvcmRlcmVkLCBzZW1pY29sb24tZGVsaW1pdGVkIGxpc3Qgb2YgPGVtPnJ1bGVzLjwvZW0+CisgKiBJbnRlcm5hbGx5LCBldmVyeSBydWxlIGhhcyBhIGJhc2UgdmFsdWUsIGEgZGl2aXNvciwgcnVsZSB0ZXh0LCBhbmQgemVybywgb25lLCBvciB0d28gPGVtPnN1YnN0dHV0aW9ucy48L2VtPgorICogVGhlc2UgcGFyYW1ldGVycyBhcmUgY29udHJvbGxlZCBieSB0aGUgZGVzY3JpcHRpb24gc3ludGF4LCB3aGljaCBjb25zaXN0cyBvZiBhIDxlbT5ydWxlCisgKiBkZXNjcmlwdG9yLDwvZW0+IGEgY29sb24sIGFuZCBhIDxlbT5ydWxlIGJvZHkuPC9lbT48L3A+CisgKgorICogPHA+QSBydWxlIGRlc2NyaXB0b3IgY2FuIHRha2Ugb25lIG9mIHRoZSBmb2xsb3dpbmcgZm9ybXMgKHRleHQgaW4gPGVtPml0YWxpY3M8L2VtPiBpcyB0aGUKKyAqIG5hbWUgb2YgYSB0b2tlbik6PC9wPgorICoKKyAqIDx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iNSUiIHZhbGlnbj0idG9wIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iOCUiIHZhbGlnbj0idG9wIj48ZW0+YnY8L2VtPjo8L3RkPgorICogICAgIDx0ZCB2YWxpZ249InRvcCI+PGVtPmJ2PC9lbT4gc3BlY2lmaWVzIHRoZSBydWxlJ3MgYmFzZSB2YWx1ZS4gPGVtPmJ2PC9lbT4gaXMgYSBkZWNpbWFsCisgKiAgICAgbnVtYmVyIGV4cHJlc3NlZCB1c2luZyBBU0NJSSBkaWdpdHMuIDxlbT5idjwvZW0+IG1heSBjb250YWluIHNwYWNlcywgcGVyaW9kLCBhbmQgY29tbWFzLAorICogICAgIHdoaWNoIGFyZSBpcmdub3JlZC4gVGhlIHJ1bGUncyBkaXZpc29yIGlzIHRoZSBoaWdoZXN0IHBvd2VyIG9mIDEwIGxlc3MgdGhhbiBvciBlcXVhbCB0bworICogICAgIHRoZSBiYXNlIHZhbHVlLjwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjUlIiB2YWxpZ249InRvcCI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjglIiB2YWxpZ249InRvcCI+PGVtPmJ2PC9lbT4vPGVtPnJhZDwvZW0+OjwvdGQ+CisgKiAgICAgPHRkIHZhbGlnbj0idG9wIj48ZW0+YnY8L2VtPiBzcGVjaWZpZXMgdGhlIHJ1bGUncyBiYXNlIHZhbHVlLiBUaGUgcnVsZSdzIGRpdmlzb3IgaXMgdGhlCisgKiAgICAgaGlnaGVzdCBwb3dlciBvZiA8ZW0+cmFkPC9lbT4gbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBiYXNlIHZhbHVlLjwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjUlIiB2YWxpZ249InRvcCI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjglIiB2YWxpZ249InRvcCI+PGVtPmJ2PC9lbT4mZ3Q7OjwvdGQ+CisgKiAgICAgPHRkIHZhbGlnbj0idG9wIj48ZW0+YnY8L2VtPiBzcGVjaWZpZXMgdGhlIHJ1bGUncyBiYXNlIHZhbHVlLiBUbyBjYWxjdWxhdGUgdGhlIGRpdmlzb3IsCisgKiAgICAgbGV0IHRoZSByYWRpeCBiZSAxMCwgYW5kIHRoZSBleHBvbmVudCBiZSB0aGUgaGlnaGVzdCBleHBvbmVudCBvZiB0aGUgcmFkaXggdGhhdCB5aWVsZHMgYQorICogICAgIHJlc3VsdCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIGJhc2UgdmFsdWUuIEV2ZXJ5ICZndDsgY2hhcmFjdGVyIGFmdGVyIHRoZSBiYXNlIHZhbHVlCisgKiAgICAgZGVjcmVhc2VzIHRoZSBleHBvbmVudCBieSAxLiBJZiB0aGUgZXhwb25lbnQgaXMgcG9zaXRpdmUgb3IgMCwgdGhlIGRpdmlzb3IgaXMgdGhlIHJhZGl4CisgKiAgICAgcmFpc2VkIHRvIHRoZSBwb3dlciBvZiB0aGUgZXhwb25lbnQ7IG90aGVyd2lzZSwgdGhlIGRpdmlzb3IgaXMgMS48L3RkPgorICogICA8L3RyPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSI1JSIgdmFsaWduPSJ0b3AiPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSI4JSIgdmFsaWduPSJ0b3AiPjxlbT5idjwvZW0+LzxlbT5yYWQ8L2VtPiZndDs6PC90ZD4KKyAqICAgICA8dGQgdmFsaWduPSJ0b3AiPjxlbT5idjwvZW0+IHNwZWNpZmllcyB0aGUgcnVsZSdzIGJhc2UgdmFsdWUuIFRvIGNhbGN1bGF0ZSB0aGUgZGl2aXNvciwKKyAqICAgICBsZXQgdGhlIHJhZGl4IGJlIDxlbT5yYWQ8L2VtPiwgYW5kIHRoZSBleHBvbmVudCBiZSB0aGUgaGlnaGVzdCBleHBvbmVudCBvZiB0aGUgcmFkaXggdGhhdAorICogICAgIHlpZWxkcyBhIHJlc3VsdCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIGJhc2UgdmFsdWUuIEV2ZXJ5ICZndDsgY2hhcmFjdGVyIGFmdGVyIHRoZSByYWRpeAorICogICAgIGRlY3JlYXNlcyB0aGUgZXhwb25lbnQgYnkgMS4gSWYgdGhlIGV4cG9uZW50IGlzIHBvc2l0aXZlIG9yIDAsIHRoZSBkaXZpc29yIGlzIHRoZSByYWRpeAorICogICAgIHJhaXNlZCB0byB0aGUgcG93ZXIgb2YgdGhlIGV4cG9uZW50OyBvdGhlcndpc2UsIHRoZSBkaXZpc29yIGlzIDEuPC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iNSUiIHZhbGlnbj0idG9wIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iOCUiIHZhbGlnbj0idG9wIj4teDo8L3RkPgorICogICAgIDx0ZCB2YWxpZ249InRvcCI+VGhlIHJ1bGUgaXMgYSBuZWdhdGl2ZS1udW1iZXIgcnVsZS48L3RkPgorICogICA8L3RyPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSI1JSIgdmFsaWduPSJ0b3AiPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSI4JSIgdmFsaWduPSJ0b3AiPngueDo8L3RkPgorICogICAgIDx0ZCB2YWxpZ249InRvcCI+VGhlIHJ1bGUgaXMgYW4gPGVtPmltcHJvcGVyIGZyYWN0aW9uIHJ1bGUuPC9lbT48L3RkPgorICogICA8L3RyPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSI1JSIgdmFsaWduPSJ0b3AiPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSI4JSIgdmFsaWduPSJ0b3AiPjAueDo8L3RkPgorICogICAgIDx0ZCB2YWxpZ249InRvcCI+VGhlIHJ1bGUgaXMgYSA8ZW0+cHJvcGVyIGZyYWN0aW9uIHJ1bGUuPC9lbT48L3RkPgorICogICA8L3RyPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSI1JSIgdmFsaWduPSJ0b3AiPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSI4JSIgdmFsaWduPSJ0b3AiPnguMDo8L3RkPgorICogICAgIDx0ZCB2YWxpZ249InRvcCI+VGhlIHJ1bGUgaXMgYSA8ZW0+bWFzdGVyIHJ1bGUuPC9lbT48L3RkPgorICogICA8L3RyPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSI1JSIgdmFsaWduPSJ0b3AiPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSI4JSIgdmFsaWduPSJ0b3AiPjxlbT5ub3RoaW5nPC9lbT48L3RkPgorICogICAgIDx0ZCB2YWxpZ249InRvcCI+SWYgdGhlIHJ1bGUncyBydWxlIGRlc2NyaXB0b3IgaXMgbGVmdCBvdXQsIHRoZSBiYXNlIHZhbHVlIGlzIG9uZSBwbHVzIHRoZQorICogICAgIHByZWNlZGluZyBydWxlJ3MgYmFzZSB2YWx1ZSAob3IgemVybyBpZiB0aGlzIGlzIHRoZSBmaXJzdCBydWxlIGluIHRoZSBsaXN0KSBpbiBhIG5vcm1hbAorICogICAgIHJ1bGUgc2V0LiZuYnNwOyBJbiBhIGZyYWN0aW9uIHJ1bGUgc2V0LCB0aGUgYmFzZSB2YWx1ZSBpcyB0aGUgc2FtZSBhcyB0aGUgcHJlY2VkaW5nIHJ1bGUncworICogICAgIGJhc2UgdmFsdWUuPC90ZD4KKyAqICAgPC90cj4KKyAqIDwvdGFibGU+CisgKgorICogPHA+QSBydWxlIHNldCBtYXkgYmUgZWl0aGVyIGEgcmVndWxhciBydWxlIHNldCBvciBhIDxlbT5mcmFjdGlvbiBydWxlIHNldCw8L2VtPiBkZXBlbmRpbmcKKyAqIG9uIHdoZXRoZXIgaXQgaXMgdXNlZCB0byBmb3JtYXQgYSBudW1iZXIncyBpbnRlZ3JhbCBwYXJ0IChvciB0aGUgd2hvbGUgbnVtYmVyKSBvciBhCisgKiBudW1iZXIncyBmcmFjdGlvbmFsIHBhcnQuIFVzaW5nIGEgcnVsZSBzZXQgdG8gZm9ybWF0IGEgcnVsZSdzIGZyYWN0aW9uYWwgcGFydCBtYWtlcyBpdCBhCisgKiBmcmFjdGlvbiBydWxlIHNldC48L3A+CisgKgorICogPHA+V2hpY2ggcnVsZSBpcyB1c2VkIHRvIGZvcm1hdCBhIG51bWJlciBpcyBkZWZpbmVkIGFjY29yZGluZyB0byBvbmUgb2YgdGhlIGZvbGxvd2luZworICogYWxnb3JpdGhtczogSWYgdGhlIHJ1bGUgc2V0IGlzIGEgcmVndWxhciBydWxlIHNldCwgZG8gdGhlIGZvbGxvd2luZzoKKyAqCisgKiA8dWw+CisgKiAgIDxsaT5JZiB0aGUgcnVsZSBzZXQgaW5jbHVkZXMgYSBtYXN0ZXIgcnVsZSAoYW5kIHRoZSBudW1iZXIgd2FzIHBhc3NlZCBpbiBhcyBhIDx0dD5kb3VibGU8L3R0PiksCisgKiAgICAgdXNlIHRoZSBtYXN0ZXIgcnVsZS4mbmJzcDsgKElmIHRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkIHdhcyBwYXNzZWQgaW4gYXMgYSA8dHQ+bG9uZzwvdHQ+LAorICogICAgIHRoZSBtYXN0ZXIgcnVsZSBpcyBpZ25vcmVkLik8L2xpPgorICogICA8bGk+SWYgdGhlIG51bWJlciBpcyBuZWdhdGl2ZSwgdXNlIHRoZSBuZWdhdGl2ZS1udW1iZXIgcnVsZS48L2xpPgorICogICA8bGk+SWYgdGhlIG51bWJlciBoYXMgYSBmcmFjdGlvbmFsIHBhcnQgYW5kIGlzIGdyZWF0ZXIgdGhhbiAxLCB1c2UgdGhlIGltcHJvcGVyIGZyYWN0aW9uCisgKiAgICAgcnVsZS48L2xpPgorICogICA8bGk+SWYgdGhlIG51bWJlciBoYXMgYSBmcmFjdGlvbmFsIHBhcnQgYW5kIGlzIGJldHdlZW4gMCBhbmQgMSwgdXNlIHRoZSBwcm9wZXIgZnJhY3Rpb24KKyAqICAgICBydWxlLjwvbGk+CisgKiAgIDxsaT5CaW5hcnktc2VhcmNoIHRoZSBydWxlIGxpc3QgZm9yIHRoZSBydWxlIHdpdGggdGhlIGhpZ2hlc3QgYmFzZSB2YWx1ZSBsZXNzIHRoYW4gb3IgZXF1YWwKKyAqICAgICB0byB0aGUgbnVtYmVyLiBJZiB0aGF0IHJ1bGUgaGFzIHR3byBzdWJzdGl0dXRpb25zLCBpdHMgYmFzZSB2YWx1ZSBpcyBub3QgYW4gZXZlbiBtdWx0aXBsZQorICogICAgIG9mIGl0cyBkaXZpc29yLCBhbmQgdGhlIG51bWJlciA8ZW0+aXM8L2VtPiBhbiBldmVuIG11bHRpcGxlIG9mIHRoZSBydWxlJ3MgZGl2aXNvciwgdXNlIHRoZQorICogICAgIHJ1bGUgdGhhdCBwcmVjZWRlcyBpdCBpbiB0aGUgcnVsZSBsaXN0LiBPdGhlcndpc2UsIHVzZSB0aGUgcnVsZSBpdHNlbGYuPC9saT4KKyAqIDwvdWw+CisgKgorICogPHA+SWYgdGhlIHJ1bGUgc2V0IGlzIGEgZnJhY3Rpb24gcnVsZSBzZXQsIGRvIHRoZSBmb2xsb3dpbmc6CisgKgorICogPHVsPgorICogICA8bGk+SWdub3JlIG5lZ2F0aXZlLW51bWJlciBhbmQgZnJhY3Rpb24gcnVsZXMuPC9saT4KKyAqICAgPGxpPkZvciBlYWNoIHJ1bGUgaW4gdGhlIGxpc3QsIG11bHRpcGx5IHRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkICh3aGljaCB3aWxsIGFsd2F5cyBiZQorICogICAgIGJldHdlZW4gMCBhbmQgMSkgYnkgdGhlIHJ1bGUncyBiYXNlIHZhbHVlLiBLZWVwIHRyYWNrIG9mIHRoZSBkaXN0YW5jZSBiZXR3ZWVuIHRoZSByZXN1bHQKKyAqICAgICB0aGUgbmVhcmVzdCBpbnRlZ2VyLjwvbGk+CisgKiAgIDxsaT5Vc2UgdGhlIHJ1bGUgdGhhdCBwcm9kdWNlZCB0aGUgcmVzdWx0IGNsb3Nlc3QgdG8gemVybyBpbiB0aGUgYWJvdmUgY2FsY3VsYXRpb24uIEluIHRoZQorICogICAgIGV2ZW50IG9mIGEgdGllIG9yIGEgZGlyZWN0IGhpdCwgdXNlIHRoZSBmaXJzdCBtYXRjaGluZyBydWxlIGVuY291bnRlcmVkLiAoVGhlIGlkZWEgaGVyZSBpcworICogICAgIHRvIHRyeSBlYWNoIHJ1bGUncyBiYXNlIHZhbHVlIGFzIGEgcG9zc2libGUgZGVub21pbmF0b3Igb2YgYSBmcmFjdGlvbi4gV2hpY2hldmVyCisgKiAgICAgZGVub21pbmF0b3IgcHJvZHVjZXMgdGhlIGZyYWN0aW9uIGNsb3Nlc3QgaW4gdmFsdWUgdG8gdGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQgd2lucy4pIElmCisgKiAgICAgdGhlIHJ1bGUgZm9sbG93aW5nIHRoZSBtYXRjaGluZyBydWxlIGhhcyB0aGUgc2FtZSBiYXNlIHZhbHVlLCB1c2UgaXQgaWYgdGhlIG51bWVyYXRvciBvZgorICogICAgIHRoZSBmcmFjdGlvbiBpcyBhbnl0aGluZyBvdGhlciB0aGFuIDE7IGlmIHRoZSBudW1lcmF0b3IgaXMgMSwgdXNlIHRoZSBvcmlnaW5hbCBtYXRjaGluZworICogICAgIHJ1bGUuIChUaGlzIGlzIHRvIGFsbG93IHNpbmd1bGFyIGFuZCBwbHVyYWwgZm9ybXMgb2YgdGhlIHJ1bGUgdGV4dCB3aXRob3V0IGEgbG90IG9mIGV4dHJhCisgKiAgICAgaGFzc2xlLik8L2xpPgorICogPC91bD4KKyAqCisgKiA8cD5BIHJ1bGUncyBib2R5IGNvbnNpc3RzIG9mIGEgc3RyaW5nIG9mIGNoYXJhY3RlcnMgdGVybWluYXRlZCBieSBhIHNlbWljb2xvbi4gVGhlIHJ1bGUKKyAqIG1heSBpbmNsdWRlIHplcm8sIG9uZSwgb3IgdHdvIDxlbT5zdWJzdGl0dXRpb24gdG9rZW5zLDwvZW0+IGFuZCBhIHJhbmdlIG9mIHRleHQgaW4KKyAqIGJyYWNrZXRzLiBUaGUgYnJhY2tldHMgZGVub3RlIG9wdGlvbmFsIHRleHQgKGFuZCBtYXkgYWxzbyBpbmNsdWRlIG9uZSBvciBib3RoCisgKiBzdWJzdGl0dXRpb25zKS4gVGhlIGV4YWN0IG1lYW5pbmdzIG9mIHRoZSBzdWJzdGl0dXRpb24gdG9rZW5zLCBhbmQgdW5kZXIgd2hhdCBjb25kaXRpb25zCisgKiBvcHRpb25hbCB0ZXh0IGlzIG9taXR0ZWQsIGRlcGVuZCBvbiB0aGUgc3ludGF4IG9mIHRoZSBzdWJzdGl0dXRpb24gdG9rZW4gYW5kIHRoZSBjb250ZXh0LgorICogVGhlIHJlc3Qgb2YgdGhlIHRleHQgaW4gYSBydWxlIGJvZHkgaXMgbGl0ZXJhbCB0ZXh0IHRoYXQgaXMgb3V0cHV0IHdoZW4gdGhlIHJ1bGUgbWF0Y2hlcworICogdGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQuPC9wPgorICoKKyAqIDxwPkEgc3Vic3RpdHV0aW9uIHRva2VuIGJlZ2lucyBhbmQgZW5kcyB3aXRoIGEgPGVtPnRva2VuIGNoYXJhY3Rlci48L2VtPiBUaGUgdG9rZW4KKyAqIGNoYXJhY3RlciBhbmQgdGhlIGNvbnRleHQgdG9nZXRoZXIgc3BlY2lmeSBhIG1hdGhlbWF0aWNhbCBvcGVyYXRpb24gdG8gYmUgcGVyZm9ybWVkIG9uIHRoZQorICogbnVtYmVyIGJlaW5nIGZvcm1hdHRlZC4gQW4gb3B0aW9uYWwgPGVtPnN1YnN0aXR1dGlvbiBkZXNjcmlwdG9yIDwvZW0+c3BlY2lmaWVzIGhvdyB0aGUKKyAqIHZhbHVlIHJlc3VsdGluZyBmcm9tIHRoYXQgb3BlcmF0aW9uIGlzIHVzZWQgdG8gZmlsbCBpbiB0aGUgc3Vic3RpdHV0aW9uLiBUaGUgcG9zaXRpb24gb2YKKyAqIHRoZSBzdWJzdGl0dXRpb24gdG9rZW4gaW4gdGhlIHJ1bGUgYm9keSBzcGVjaWZpZXMgdGhlIGxvY2F0aW9uIG9mIHRoZSByZXN1bHRhbnQgdGV4dCBpbgorICogdGhlIG9yaWdpbmFsIHJ1bGUgdGV4dC48L3A+CisgKgorICogPHA+VGhlIG1lYW5pbmdzIG9mIHRoZSBzdWJzdGl0dXRpb24gdG9rZW4gY2hhcmFjdGVycyBhcmUgYXMgZm9sbG93czo8L3A+CisgKgorICogPHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSIzNyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjIzIj4mZ3Q7Jmd0OzwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIxNjUiIHZhbGlnbj0idG9wIj5pbiBub3JtYWwgcnVsZTwvdGQ+CisgKiAgICAgPHRkPkRpdmlkZSB0aGUgbnVtYmVyIGJ5IHRoZSBydWxlJ3MgZGl2aXNvciBhbmQgZm9ybWF0IHRoZSByZW1haW5kZXI8L3RkPgorICogICA8L3RyPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSIzNyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjIzIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMTY1IiB2YWxpZ249InRvcCI+aW4gbmVnYXRpdmUtbnVtYmVyIHJ1bGU8L3RkPgorICogICAgIDx0ZD5GaW5kIHRoZSBhYnNvbHV0ZSB2YWx1ZSBvZiB0aGUgbnVtYmVyIGFuZCBmb3JtYXQgdGhlIHJlc3VsdDwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjM3Ij48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjMiPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIxNjUiIHZhbGlnbj0idG9wIj5pbiBmcmFjdGlvbiBvciBtYXN0ZXIgcnVsZTwvdGQ+CisgKiAgICAgPHRkPklzb2xhdGUgdGhlIG51bWJlcidzIGZyYWN0aW9uYWwgcGFydCBhbmQgZm9ybWF0IGl0LjwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjM3Ij48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjMiPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIxNjUiIHZhbGlnbj0idG9wIj5pbiBydWxlIGluIGZyYWN0aW9uIHJ1bGUgc2V0PC90ZD4KKyAqICAgICA8dGQ+Tm90IGFsbG93ZWQuPC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iMzciPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIyMyI+Jmd0OyZndDsmZ3Q7PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjE2NSIgdmFsaWduPSJ0b3AiPmluIG5vcm1hbCBydWxlPC90ZD4KKyAqICAgICA8dGQ+RGl2aWRlIHRoZSBudW1iZXIgYnkgdGhlIHJ1bGUncyBkaXZpc29yIGFuZCBmb3JtYXQgdGhlIHJlbWFpbmRlciwKKyAqICAgICAgIGJ1dCBieXBhc3MgdGhlIG5vcm1hbCBydWxlLXNlbGVjdGlvbiBwcm9jZXNzIGFuZCBqdXN0IHVzZSB0aGUKKyAqICAgICAgIHJ1bGUgdGhhdCBwcmVjZWRlcyB0aGlzIG9uZSBpbiB0aGlzIHJ1bGUgbGlzdC48L3RkPgorICogICA8L3RyPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSIzNyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjIzIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMTY1IiB2YWxpZ249InRvcCI+aW4gYWxsIG90aGVyIHJ1bGVzPC90ZD4KKyAqICAgICA8dGQ+Tm90IGFsbG93ZWQuPC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iMzciPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIyMyI+Jmx0OyZsdDs8L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMTY1IiB2YWxpZ249InRvcCI+aW4gbm9ybWFsIHJ1bGU8L3RkPgorICogICAgIDx0ZD5EaXZpZGUgdGhlIG51bWJlciBieSB0aGUgcnVsZSdzIGRpdmlzb3IgYW5kIGZvcm1hdCB0aGUgcXVvdGllbnQ8L3RkPgorICogICA8L3RyPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSIzNyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjIzIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMTY1IiB2YWxpZ249InRvcCI+aW4gbmVnYXRpdmUtbnVtYmVyIHJ1bGU8L3RkPgorICogICAgIDx0ZD5Ob3QgYWxsb3dlZC48L3RkPgorICogICA8L3RyPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSIzNyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjIzIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMTY1IiB2YWxpZ249InRvcCI+aW4gZnJhY3Rpb24gb3IgbWFzdGVyIHJ1bGU8L3RkPgorICogICAgIDx0ZD5Jc29sYXRlIHRoZSBudW1iZXIncyBpbnRlZ3JhbCBwYXJ0IGFuZCBmb3JtYXQgaXQuPC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iMzciPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIyMyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjE2NSIgdmFsaWduPSJ0b3AiPmluIHJ1bGUgaW4gZnJhY3Rpb24gcnVsZSBzZXQ8L3RkPgorICogICAgIDx0ZD5NdWx0aXBseSB0aGUgbnVtYmVyIGJ5IHRoZSBydWxlJ3MgYmFzZSB2YWx1ZSBhbmQgZm9ybWF0IHRoZSByZXN1bHQuPC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iMzciPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIyMyI+PT08L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMTY1IiB2YWxpZ249InRvcCI+aW4gYWxsIHJ1bGUgc2V0czwvdGQ+CisgKiAgICAgPHRkPkZvcm1hdCB0aGUgbnVtYmVyIHVuY2hhbmdlZDwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjM3Ij48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjMiPltdPC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjE2NSIgdmFsaWduPSJ0b3AiPmluIG5vcm1hbCBydWxlPC90ZD4KKyAqICAgICA8dGQ+T21pdCB0aGUgb3B0aW9uYWwgdGV4dCBpZiB0aGUgbnVtYmVyIGlzIGFuIGV2ZW4gbXVsdGlwbGUgb2YgdGhlIHJ1bGUncyBkaXZpc29yPC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iMzciPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIyMyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjE2NSIgdmFsaWduPSJ0b3AiPmluIG5lZ2F0aXZlLW51bWJlciBydWxlPC90ZD4KKyAqICAgICA8dGQ+Tm90IGFsbG93ZWQuPC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iMzciPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIyMyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjE2NSIgdmFsaWduPSJ0b3AiPmluIGltcHJvcGVyLWZyYWN0aW9uIHJ1bGU8L3RkPgorICogICAgIDx0ZD5PbWl0IHRoZSBvcHRpb25hbCB0ZXh0IGlmIHRoZSBudW1iZXIgaXMgYmV0d2VlbiAwIGFuZCAxIChzYW1lIGFzIHNwZWNpZnlpbmcgYm90aCBhbgorICogICAgIHgueCBydWxlIGFuZCBhIDAueCBydWxlKTwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjM3Ij48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjMiPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIxNjUiIHZhbGlnbj0idG9wIj5pbiBtYXN0ZXIgcnVsZTwvdGQ+CisgKiAgICAgPHRkPk9taXQgdGhlIG9wdGlvbmFsIHRleHQgaWYgdGhlIG51bWJlciBpcyBhbiBpbnRlZ2VyIChzYW1lIGFzIHNwZWNpZnlpbmcgYm90aCBhbiB4LngKKyAqICAgICBydWxlIGFuZCBhbiB4LjAgcnVsZSk8L3RkPgorICogICA8L3RyPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSIzNyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjIzIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMTY1IiB2YWxpZ249InRvcCI+aW4gcHJvcGVyLWZyYWN0aW9uIHJ1bGU8L3RkPgorICogICAgIDx0ZD5Ob3QgYWxsb3dlZC48L3RkPgorICogICA8L3RyPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSIzNyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjIzIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMTY1IiB2YWxpZ249InRvcCI+aW4gcnVsZSBpbiBmcmFjdGlvbiBydWxlIHNldDwvdGQ+CisgKiAgICAgPHRkPk9taXQgdGhlIG9wdGlvbmFsIHRleHQgaWYgbXVsdGlwbHlpbmcgdGhlIG51bWJlciBieSB0aGUgcnVsZSdzIGJhc2UgdmFsdWUgeWllbGRzIDEuPC90ZD4KKyAqICAgPC90cj4KKyAqIDwvdGFibGU+CisgKgorICogPHA+VGhlIHN1YnN0aXR1dGlvbiBkZXNjcmlwdG9yIChpLmUuLCB0aGUgdGV4dCBiZXR3ZWVuIHRoZSB0b2tlbiBjaGFyYWN0ZXJzKSBtYXkgdGFrZSBvbmUKKyAqIG9mIHRocmVlIGZvcm1zOjwvcD4KKyAqCisgKiA8dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjQyIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMTY2IiB2YWxpZ249InRvcCI+YSBydWxlIHNldCBuYW1lPC90ZD4KKyAqICAgICA8dGQ+UGVyZm9ybSB0aGUgbWF0aGVtYXRpY2FsIG9wZXJhdGlvbiBvbiB0aGUgbnVtYmVyLCBhbmQgZm9ybWF0IHRoZSByZXN1bHQgdXNpbmcgdGhlCisgKiAgICAgbmFtZWQgcnVsZSBzZXQuPC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iNDIiPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIxNjYiIHZhbGlnbj0idG9wIj5hIERlY2ltYWxGb3JtYXQgcGF0dGVybjwvdGQ+CisgKiAgICAgPHRkPlBlcmZvcm0gdGhlIG1hdGhlbWF0aWNhbCBvcGVyYXRpb24gb24gdGhlIG51bWJlciwgYW5kIGZvcm1hdCB0aGUgcmVzdWx0IHVzaW5nIGEKKyAqICAgICBEZWNpbWFsRm9ybWF0IHdpdGggdGhlIHNwZWNpZmllZCBwYXR0ZXJuLiZuYnNwOyBUaGUgcGF0dGVybiBtdXN0IGJlZ2luIHdpdGggMCBvciAjLjwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjQyIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMTY2IiB2YWxpZ249InRvcCI+bm90aGluZzwvdGQ+CisgKiAgICAgPHRkPlBlcmZvcm0gdGhlIG1hdGhlbWF0aWNhbCBvcGVyYXRpb24gb24gdGhlIG51bWJlciwgYW5kIGZvcm1hdCB0aGUgcmVzdWx0IHVzaW5nIHRoZSBydWxlCisgKiAgICAgc2V0IGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgcnVsZSwgZXhjZXB0Ojx1bD4KKyAqICAgICAgIDxsaT5Zb3UgY2FuJ3QgaGF2ZSBhbiBlbXB0eSBzdWJzdGl0dXRpb24gZGVzY3JpcHRvciB3aXRoIGEgPT0gc3Vic3RpdHV0aW9uLjwvbGk+CisgKiAgICAgICA8bGk+SWYgeW91IG9taXQgdGhlIHN1YnN0aXR1dGlvbiBkZXNjcmlwdG9yIGluIGEgJmd0OyZndDsgc3Vic3RpdHV0aW9uIGluIGEgZnJhY3Rpb24gcnVsZSwKKyAqICAgICAgICAgZm9ybWF0IHRoZSByZXN1bHQgb25lIGRpZ2l0IGF0IGEgdGltZSB1c2luZyB0aGUgcnVsZSBzZXQgY29udGFpbmluZyB0aGUgY3VycmVudCBydWxlLjwvbGk+CisgKiAgICAgICA8bGk+SWYgeW91IG9taXQgdGhlIHN1YnN0aXR1dGlvbiBkZXNjcmlwdG9yIGluIGEgJmx0OyZsdDsgc3Vic3RpdHV0aW9uIGluIGEgcnVsZSBpbiBhCisgKiAgICAgICAgIGZyYWN0aW9uIHJ1bGUgc2V0LCBmb3JtYXQgdGhlIHJlc3VsdCB1c2luZyB0aGUgZGVmYXVsdCBydWxlIHNldCBmb3IgdGhpcyBmb3JtYXR0ZXIuPC9saT4KKyAqICAgICA8L3VsPgorICogICAgIDwvdGQ+CisgKiAgIDwvdHI+CisgKiA8L3RhYmxlPgorICoKKyAqIDxwPldoaXRlc3BhY2UgaXMgaWdub3JlZCBiZXR3ZWVuIGEgcnVsZSBzZXQgbmFtZSBhbmQgYSBydWxlIHNldCBib2R5LCBiZXR3ZWVuIGEgcnVsZQorICogZGVzY3JpcHRvciBhbmQgYSBydWxlIGJvZHksIG9yIGJldHdlZW4gcnVsZXMuIElmIGEgcnVsZSBib2R5IGJlZ2lucyB3aXRoIGFuIGFwb3N0cm9waGUsCisgKiB0aGUgYXBvc3Ryb3BoZSBpcyBpZ25vcmVkLCBidXQgYWxsIHRleHQgYWZ0ZXIgaXQgYmVjb21lcyBzaWduaWZpY2FudCAodGhpcyBpcyBob3cgeW91IGNhbgorICogaGF2ZSBhIHJ1bGUncyBydWxlIHRleHQgYmVnaW4gd2l0aCB3aGl0ZXNwYWNlKS4gVGhlcmUgaXMgbm8gZXNjYXBlIGZ1bmN0aW9uOiB0aGUgc2VtaWNvbG9uCisgKiBpcyBub3QgYWxsb3dlZCBpbiBydWxlIHNldCBuYW1lcyBvciBpbiBydWxlIHRleHQsIGFuZCB0aGUgY29sb24gaXMgbm90IGFsbG93ZWQgaW4gcnVsZSBzZXQKKyAqIG5hbWVzLiBUaGUgY2hhcmFjdGVycyBiZWdpbm5pbmcgYSBzdWJzdGl0dXRpb24gdG9rZW4gYXJlIGFsd2F5cyB0cmVhdGVkIGFzIHRoZSBiZWdpbm5pbmcKKyAqIG9mIGEgc3Vic3RpdHV0aW9uIHRva2VuLjwvcD4KKyAqCisgKiA8cD5TZWUgdGhlIHJlc291cmNlIGRhdGEgYW5kIHRoZSBkZW1vIHByb2dyYW0gZm9yIGFubm90YXRlZCBleGFtcGxlcyBvZiByZWFsIHJ1bGUgc2V0cworICogdXNpbmcgdGhlc2UgZmVhdHVyZXMuPC9wPgorICoKKyAqIEBhdXRob3IgUmljaGFyZCBHaWxsYW0KKyAqICRSQ1NmaWxlOiBSdWxlQmFzZWROdW1iZXJGb3JtYXQuamF2YSx2ICQgJFJldmlzaW9uOiAxLjkgJCAkRGF0ZTogMjAwMi8wNy8yNiAyMjo1MTo0OSAkCisgKiBAc2VlIE51bWJlckZvcm1hdAorICogQHNlZSBEZWNpbWFsRm9ybWF0CisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZXh0ZW5kcyBOdW1iZXJGb3JtYXQgeworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNvbnN0YW50cworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFB1dHMgYSBjb3B5cmlnaHQgaW4gdGhlIC5jbGFzcyBmaWxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodE5vdGljZQorICAgICAgICA9ICJDb3B5cmlnaHQgXHUwMGE5MTk5Ny0xOTk4IElCTSBDb3JwLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgLyoqCisgICAgICogU2VsZWN0b3IgY29kZSB0aGF0IHRlbGxzIHRoZSBjb25zdHJ1Y3RvciB0byBjcmVhdGUgYSBzcGVsbG91dCBmb3JtYXR0ZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTUEVMTE9VVCA9IDE7CisKKyAgICAvKioKKyAgICAgKiBTZWxlY3RvciBjb2RlIHRoYXQgdGVsbHMgdGhlIGNvbnN0cnVjdG9yIHRvIGNyZWF0ZSBhbiBvcmRpbmFsIGZvcm1hdHRlcgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE9SRElOQUwgPSAyOworCisgICAgLyoqCisgICAgICogU2VsZWN0b3IgY29kZSB0aGF0IHRlbGxzIHRoZSBjb25zdHJ1Y3RvciB0byBjcmVhdGUgYSBkdXJhdGlvbiBmb3JtYXR0ZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBEVVJBVElPTiA9IDM7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gZGF0YSBtZW1iZXJzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogVGhlIGZvcm1hdHRlcidzIHJ1bGUgc2V0cy4KKyAgICAgKi8KKyAgICBwcml2YXRlIE5GUnVsZVNldFtdIHJ1bGVTZXRzID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIEEgcG9pbnRlciB0byB0aGUgZm9ybWF0dGVyJ3MgZGVmYXVsdCBydWxlIHNldC4gIFRoaXMgaXMgYWx3YXlzIGluY2x1ZGVkCisgICAgICogaW4gcnVsZVNldHMuCisgICAgICovCisgICAgcHJpdmF0ZSBORlJ1bGVTZXQgZGVmYXVsdFJ1bGVTZXQgPSBudWxsOworCisgICAgLyoqCisgICAgICogVGhlIGZvcm1hdHRlcidzIGxvY2FsZS4gIFRoaXMgaXMgdXNlZCB0byBjcmVhdGUgRGVjaW1hbEZvcm1hdFN5bWJvbHMgYW5kCisgICAgICogQ29sbGF0b3Igb2JqZWN0cy4KKyAgICAgKi8KKyAgICBwcml2YXRlIExvY2FsZSBsb2NhbGUgPSBudWxsOworCisgICAgLyoqCisgICAgICogQ29sbGF0b3IgdG8gYmUgdXNlZCBpbiBsZW5pZW50IHBhcnNpbmcuICBUaGlzIHZhcmlhYmxlIGlzIGxhenktZXZhbHVhdGVkOgorICAgICAqIHRoZSBjb2xsYXRvciBpcyBhY3R1YWxseSBjcmVhdGVkIHRoZSBmaXJzdCB0aW1lIHRoZSBjbGllbnQgZG9lcyBhIHBhcnNlCisgICAgICogd2l0aCBsZW5pZW50LXBhcnNlIG1vZGUgdHVybmVkIG9uLgorICAgICAqLworICAgIHByaXZhdGUgQ29sbGF0b3IgY29sbGF0b3IgPSBudWxsOworCisgICAgLyoqCisgICAgICogVGhlIERlY2ltYWxGb3JtYXRTeW1ib2xzIG9iamVjdCB0aGF0IGFueSBEZWNpbWFsRm9ybWF0IG9iamVjdHMgdGhpcworICAgICAqIGZvcm1hdHRlciB1c2VzIHNob3VsZCB1c2UuICBUaGlzIHZhcmlhYmxlIGlzIGxhenktZXZhbHVhdGVkOiBpdCBpc24ndAorICAgICAqIGZpbGxlZCBpbiBpZiB0aGUgcnVsZSBzZXQgbmV2ZXIgdXNlcyBhIERlY2ltYWxGb3JtYXQgcGF0dGVybi4KKyAgICAgKi8KKyAgICBwcml2YXRlIERlY2ltYWxGb3JtYXRTeW1ib2xzIGRlY2ltYWxGb3JtYXRTeW1ib2xzID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIEZsYWcgc3BlY2lmeWluZyB3aGV0aGVyIGxlbmllbnQgcGFyc2UgbW9kZSBpcyBvbiBvciBvZmYuICBPZmYgYnkgZGVmYXVsdC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gbGVuaWVudFBhcnNlID0gZmFsc2U7CisKKyAgICAvKioKKyAgICAgKiBJZiB0aGUgZGVzY3JpcHRpb24gc3BlY2lmaWVzIGxlbmllbnQtcGFyc2UgcnVsZXMsIHRoZXkncmUgc3RvcmVkIGhlcmUgdW50aWwKKyAgICAgKiB0aGUgY29sbGF0b3IgaXMgY3JlYXRlZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBsZW5pZW50UGFyc2VSdWxlcyA9IG51bGw7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY29uc3RydWN0b3JzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIFJ1bGVCYXNlZE51bWJlckZvcm1hdCB0aGF0IGJlaGF2ZXMgYWNjb3JkaW5nIHRvIHRoZSBkZXNjcmlwdGlvbgorICAgICAqIHBhc3NlZCBpbi4gIFRoZSBmb3JtYXR0ZXIgdXNlcyB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIGRlc2NyaXB0aW9uIEEgZGVzY3JpcHRpb24gb2YgdGhlIGZvcm1hdHRlcidzIGRlc2lyZWQgYmVoYXZpb3IuCisgICAgICogU2VlIHRoZSBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBhIGNvbXBsZXRlIGV4cGxhbmF0aW9uIG9mIHRoZSBkZXNjcmlwdGlvbgorICAgICAqIHN5bnRheC4KKyAgICAgKi8KKyAgICBwdWJsaWMgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICBsb2NhbGUgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICBpbml0KGRlc2NyaXB0aW9uKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IHRoYXQgYmVoYXZlcyBhY2NvcmRpbmcgdG8gdGhlIGRlc2NyaXB0aW9uCisgICAgICogcGFzc2VkIGluLiAgVGhlIGZvcm1hdHRlciB1c2VzIHRoZSBzcGVjaWZpZWQgbG9jYWxlIHRvIGRldGVybWluZSB0aGUKKyAgICAgKiBjaGFyYWN0ZXJzIHRvIHVzZSB3aGVuIGZvcm1hdHRpbmcgaW4gbnVtZXJhbHMsIGFuZCB0byBkZWZpbmUgZXF1aXZhbGVuY2VzCisgICAgICogZm9yIGxlbmllbnQgcGFyc2luZy4KKyAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb24gQSBkZXNjcmlwdGlvbiBvZiB0aGUgZm9ybWF0dGVyJ3MgZGVzaXJlZCBiZWhhdmlvci4KKyAgICAgKiBTZWUgdGhlIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIGEgY29tcGxldGUgZXhwbGFuYXRpb24gb2YgdGhlIGRlc2NyaXB0aW9uCisgICAgICogc3ludGF4LgorICAgICAqIEBwYXJhbSBsb2NhbGUgQSBsb2NhbGUsIHdoaWNoIGdvdmVybnMgd2hpY2ggY2hhcmFjdGVycyBhcmUgdXNlZCBmb3IKKyAgICAgKiBmb3JtYXR0aW5nIHZhbHVlcyBpbiBudW1lcmFscywgYW5kIHdoaWNoIGNoYXJhY3RlcnMgYXJlIGVxdWl2YWxlbnQgaW4KKyAgICAgKiBsZW5pZW50IHBhcnNpbmcuCisgICAgICovCisgICAgcHVibGljIFJ1bGVCYXNlZE51bWJlckZvcm1hdChTdHJpbmcgZGVzY3JpcHRpb24sIExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgdGhpcy5sb2NhbGUgPSBsb2NhbGU7CisgICAgICAgIGluaXQoZGVzY3JpcHRpb24pOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZnJvbSBhIHByZWRlZmluZWQgZGVzY3JpcHRpb24uICBUaGUgc2VsZWN0b3IKKyAgICAgKiBjb2RlIGNob29zZWQgYW1vbmcgdGhyZWUgcG9zc2libGUgcHJlZGVmaW5lZCBmb3JtYXRzOiBzcGVsbG91dCwgb3JkaW5hbCwKKyAgICAgKiBhbmQgZHVyYXRpb24uCisgICAgICogQHBhcmFtIGxvY2FsZSBUaGUgbG9jYWxlIGZvciB0aGUgZm9ybWF0dGVyLgorICAgICAqIEBwYXJhbSBmb3JtYXQgQSBzZWxlY3RvciBjb2RlIHNwZWNpZnlpbmcgd2hpY2gga2luZCBvZiBmb3JtYXR0ZXIgdG8gY3JlYXRlIGZvciB0aGF0CisgICAgICogbG9jYWxlLiAgVGhlcmUgYXJlIHRocmVlIGxlZ2FsIHZhbHVlczogU1BFTExPVVQsIHdoaWNoIGNyZWF0ZXMgYSBmb3JtYXR0ZXIgdGhhdAorICAgICAqIHNwZWxscyBvdXQgYSB2YWx1ZSBpbiB3b3JkcyBpbiB0aGUgZGVzaXJlZCBsYW5ndWFnZSwgT1JESU5BTCwgd2hpY2ggYXR0YWNoZXMKKyAgICAgKiBhbiBvcmRpbmFsIHN1ZmZpeCBmcm9tIHRoZSBkZXNpcmVkIGxhbmd1YWdlIHRvIHRoZSBlbmQgb2YgYSBudW1iZXIgKGUuZy4gIjEyM3JkIiksCisgICAgICogYW5kIERVUkFUSU9OLCB3aGljaCBmb3JtYXRzIGEgZHVyYXRpb24gaW4gc2Vjb25kcyBhcyBob3VycywgbWludXRlcywgYW5kIHNlY29uZHMuCisgICAgICovCisgICAgcHVibGljIFJ1bGVCYXNlZE51bWJlckZvcm1hdChMb2NhbGUgbG9jYWxlLCBpbnQgZm9ybWF0KSB7CisgICAgICAgIHRoaXMubG9jYWxlID0gbG9jYWxlOworCisgICAgICAgIC8vIGxvYWQgdXAgdGhlIHJlc291cmNlIGJ1bmRsZSBjb250YWluaW5nIHRoZSBkZXNjcmlwdGlvbgorICAgICAgICAvLyBmcm9tIHRoZSBzcGVjaWZpZWQgbG9jYWxlCisJLy8gICAgICAgIFJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IElDVUxvY2FsZURhdGEuZ2V0UmVzb3VyY2VCdW5kbGUoIk51bWJlckZvcm1hdFJ1bGVzIiwgbG9jYWxlKTsKKyAgICAgICAgUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gSUNVTG9jYWxlRGF0YS5nZXRSZXNvdXJjZUJ1bmRsZSgiTG9jYWxlRWxlbWVudHMiLCBsb2NhbGUpOworICAgICAgICBTdHJpbmcgZGVzY3JpcHRpb24gPSAiIjsKKworICAgICAgICAvLyBwaWNrIGEgZGVzY3JpcHRpb24gZnJvbSB0aGUgcmVzb3VyY2UgYnVuZGxlIGJhc2VkIG9uIHRoZQorICAgICAgICAvLyBraW5kIG9mIGZvcm1hdHRlciB0aGUgdXNlciBhc2tlZCBmb3IKKyAgICAgICAgc3dpdGNoIChmb3JtYXQpIHsKKyAgICAgICAgICAgIGNhc2UgU1BFTExPVVQ6CisgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSBidW5kbGUuZ2V0U3RyaW5nKCJTcGVsbG91dFJ1bGVzIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgT1JESU5BTDoKKyAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9IGJ1bmRsZS5nZXRTdHJpbmcoIk9yZGluYWxSdWxlcyIpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIERVUkFUSU9OOgorICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gYnVuZGxlLmdldFN0cmluZygiRHVyYXRpb25SdWxlcyIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgLy8gY29uc3RydWN0IHRoZSBmb3JtYXR0ZXIgYmFzZWQgb24gdGhlIGRlc2NyaXB0aW9uCisgICAgICAgIGluaXQoZGVzY3JpcHRpb24pOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZnJvbSBhIHByZWRlZmluZWQgZGVzY3JpcHRpb24uICBVc2VzIHRoZQorICAgICAqIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBmb3JtYXQgQSBzZWxlY3RvciBjb2RlIHNwZWNpZnlpbmcgd2hpY2gga2luZCBvZiBmb3JtYXR0ZXIgdG8gY3JlYXRlLgorICAgICAqIFRoZXJlIGFyZSB0aHJlZSBsZWdhbCB2YWx1ZXM6IFNQRUxMT1VULCB3aGljaCBjcmVhdGVzIGEgZm9ybWF0dGVyIHRoYXQgc3BlbGxzCisgICAgICogb3V0IGEgdmFsdWUgaW4gd29yZHMgaW4gdGhlIGRlZmF1bHQgbG9jYWxlJ3MgbGFuZ3lhZ2UsIE9SRElOQUwsIHdoaWNoIGF0dGFjaGVzCisgICAgICogYW4gb3JkaW5hbCBzdWZmaXggZnJvbSB0aGUgZGVmYXVsdCBsb2NhbGUncyBsYW5ndWFnZSB0byBhIG51bWVyYWwsIGFuZAorICAgICAqIERVUkFUSU9OLCB3aGljaCBmb3JtYXRzIGEgZHVyYXRpb24gaW4gc2Vjb25kcyBhcyBob3VycywgbWludXRlcywgYW5kIHNlY29uZHMuCisgICAgICovCisgICAgcHVibGljIFJ1bGVCYXNlZE51bWJlckZvcm1hdChpbnQgZm9ybWF0KSB7CisgICAgICAgIHRoaXMoTG9jYWxlLmdldERlZmF1bHQoKSwgZm9ybWF0KTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gYm9pbGVycGxhdGUKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBEdXBsaWNhdGVzIHRoaXMgZm9ybWF0dGVyLgorICAgICAqIEByZXR1cm4gQSBSdWxlQmFzZWROdW1iZXJGb3JtYXQgdGhhdCBpcyBlcXVhbCB0byB0aGlzIG9uZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgICAgICByZXR1cm4gc3VwZXIuY2xvbmUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0cyB0d28gUnVsZUJhc2VkTnVtYmVyRm9ybWF0cyBmb3IgZXF1YWxpdHkuCisgICAgICogQHBhcmFtIHRoYXQgVGhlIGZvcm1hdHRlciB0byBjb21wYXJlIGFnYWluc3QgdGhpcyBvbmUuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB0d28gZm9ybWF0dGVycyBoYXZlIGlkZW50aWNhbCBiZWhhdmlvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IHRoYXQpIHsKKyAgICAgICAgLy8gaWYgdGhlIG90aGVyIG9iamVjdCBpc24ndCBhIFJ1bGVCYXNlZE51bWJlckZvcm1hdCwgdGhhdCdzCisgICAgICAgIC8vIGFsbCB3ZSBuZWVkIHRvIGtub3cKKyAgICAgICAgaWYgKCEodGhhdCBpbnN0YW5jZW9mIFJ1bGVCYXNlZE51bWJlckZvcm1hdCkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIGNhc3QgdGhlIG90aGVyIG9iamVjdCdzIHBvaW50ZXIgdG8gYSBwb2ludGVyIHRvIGEKKyAgICAgICAgICAgIC8vIFJ1bGVCYXNlZE51bWJlckZvcm1hdAorICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IHRoYXQyID0gKFJ1bGVCYXNlZE51bWJlckZvcm1hdCl0aGF0OworCisgICAgICAgICAgICAvLyBjb21wYXJlIHRoZWlyIGxvY2FsZXMgYW5kIGxlbmllbnQtcGFyc2UgbW9kZXMKKyAgICAgICAgICAgIGlmICghbG9jYWxlLmVxdWFscyh0aGF0Mi5sb2NhbGUpIHx8IGxlbmllbnRQYXJzZSAhPSB0aGF0Mi5sZW5pZW50UGFyc2UpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGlmIHRoYXQgc3VjY2VlZHMsIHRoZW4gY29tcGFyZSB0aGVpciBydWxlIHNldCBsaXN0cworICAgICAgICAgICAgaWYgKHJ1bGVTZXRzLmxlbmd0aCAhPSB0aGF0Mi5ydWxlU2V0cy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJ1bGVTZXRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKCFydWxlU2V0c1tpXS5lcXVhbHModGhhdDIucnVsZVNldHNbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogR2VuZXJhdGVzIGEgdGV4dHVhbCBkZXNjcmlwdGlvbiBvZiB0aGlzIGZvcm1hdHRlci4KKyAgICAgKiBAcmV0dXJuIGEgU3RyaW5nIGNvbnRhaW5pbmcgYSBydWxlIHNldCB0aGF0IHdpbGwgcHJvZHVjZSBhIFJ1bGVCYXNlZE51bWJlckZvcm1hdAorICAgICAqIHdpdGggaWRlbnRpY2FsIGJlaGF2aW9yIHRvIHRoaXMgb25lLiAgVGhpcyB3b24ndCBuZWNlc3NhcmlseSBiZSBpZGVudGljYWwKKyAgICAgKiB0byB0aGUgcnVsZSBzZXQgZGVzY3JpcHRpb24gdGhhdCB3YXMgb3JpZ2luYWxseSBwYXNzZWQgaW4sIGJ1dCB3aWxsIHByb2R1Y2UKKyAgICAgKiB0aGUgc2FtZSByZXN1bHQuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKworICAgICAgICAvLyBhY2N1bXVsYXRlIHRoZSBkZXNjcmlwdGlvbnMgb2YgYWxsIHRoZSBydWxlIHNldHMgaW4gYQorICAgICAgICAvLyBTdHJpbmdCdWZmZXIsIHRoZW4gY2FzdCBpdCB0byBhIFN0cmluZyBhbmQgcmV0dXJuIGl0CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcnVsZVNldHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocnVsZVNldHNbaV0udG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFdyaXRlcyB0aGlzIG9iamVjdCB0byBhIHN0cmVhbS4KKyAgICAgKiBAcGFyYW0gb3V0IFRoZSBzdHJlYW0gdG8gd3JpdGUgdG8uCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHdyaXRlT2JqZWN0KGphdmEuaW8uT2JqZWN0T3V0cHV0U3RyZWFtIG91dCkKKyAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geworICAgICAgICAvLyB3ZSBqdXN0IHdyaXRlIHRoZSB0ZXh0dWFsIGRlc2NyaXB0aW9uIHRvIHRoZSBzdHJlYW0sIHNvIHdlCisgICAgICAgIC8vIGhhdmUgYW4gaW1wbGVtZW50YXRpb24taW5kZXBlbmRlbnQgc3RyZWFtaW5nIGZvcm1hdAorICAgICAgICBvdXQud3JpdGVVVEYodGhpcy50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWFkcyB0aGlzIG9iamVjdCBpbiBmcm9tIGEgc3RyZWFtLgorICAgICAqIEBwYXJhbSBpbiBUaGUgc3RyZWFtIHRvIHJlYWQgZnJvbS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcmVhZE9iamVjdChqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtIGluKQorICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiB7CisKKyAgICAgICAgLy8gcmVhZCB0aGUgZGVzY3JpcHRpb24gaW4gZnJvbSB0aGUgc3RyZWFtCisgICAgICAgIFN0cmluZyBkZXNjcmlwdGlvbiA9IGluLnJlYWRVVEYoKTsKKworICAgICAgICAvLyBidWlsZCBhIGJyYW5kLW5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZnJvbSB0aGUgZGVzY3JpcHRpb24sCisgICAgICAgIC8vIHRoZW4gc3RlYWwgaXRzIHN1YnN0cnVjdHVyZS4gIFRoaXMgb2JqZWN0J3Mgc3Vic3RydWN0dXJlIGFuZAorICAgICAgICAvLyB0aGUgdGVtcG9yYXJ5IFJ1bGVCYXNlZE51bWJlckZvcm1hdCBkcm9wIG9uIHRoZSBmbG9vciBhbmQKKyAgICAgICAgLy8gZ2V0IHN3ZXB0IHVwIGJ5IHRoZSBnYXJiYWdlIGNvbGxlY3RvcgorICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgdGVtcCA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoZGVzY3JpcHRpb24pOworICAgICAgICBydWxlU2V0cyA9IHRlbXAucnVsZVNldHM7CisgICAgICAgIGRlZmF1bHRSdWxlU2V0ID0gdGVtcC5kZWZhdWx0UnVsZVNldDsKKyAgICB9CisKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBwdWJsaWMgQVBJIGZ1bmN0aW9ucworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBsaXN0IG9mIHRoZSBuYW1lcyBvZiBhbGwgb2YgdGhpcyBmb3JtYXR0ZXIncyBwdWJsaWMgcnVsZSBzZXRzLgorICAgICAqIEByZXR1cm4gQSBsaXN0IG9mIHRoZSBuYW1lcyBvZiBhbGwgb2YgdGhpcyBmb3JtYXR0ZXIncyBwdWJsaWMgcnVsZSBzZXRzLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRSdWxlU2V0TmFtZXMoKSB7CisgICAgICAgIC8vIHByZWZsaWdodCB0aGUgaXRlcmF0aW9uLCBjb3VudGluZyB0aGUgbnVtYmVyIG9mIHB1YmxpYyBydWxlIHNldHMKKyAgICAgICAgLy8gKHB1YmxpYyBydWxlIHNldHMgaGF2ZSBuYW1lcyB0aGF0IGJlZ2luIHdpdGggJSBpbnN0ZWFkIG9mICUlKQorICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJ1bGVTZXRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoIXJ1bGVTZXRzW2ldLmdldE5hbWUoKS5zdGFydHNXaXRoKCIlJSIpKSB7CisgICAgICAgICAgICAgICAgKytjb3VudDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIHRoZW4gbmV3IHVwIGFuIGFycmF5IG9mIHRoZSBwcm9wZXIgc2l6ZSBhbmQgY29weSB0aGUgbmFtZXMgaW50byBpdAorICAgICAgICBTdHJpbmdbXSByZXN1bHQgPSBuZXcgU3RyaW5nW2NvdW50XTsKKyAgICAgICAgY291bnQgPSAwOworICAgICAgICBmb3IgKGludCBpID0gcnVsZVNldHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsKKyAgICAgICAgICAgIGlmICghcnVsZVNldHNbaV0uZ2V0TmFtZSgpLnN0YXJ0c1dpdGgoIiUlIikpIHsKKyAgICAgICAgICAgICAgICByZXN1bHRbY291bnQrK10gPSBydWxlU2V0c1tpXS5nZXROYW1lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIEZvcm1hdHMgdGhlIHNwZWNpZmllZCBudW1iZXIgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpZWQgcnVsZSBzZXQuCisgICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIHRvIGZvcm1hdC4KKyAgICAgKiBAcGFyYW0gcnVsZVNldCBUaGUgbmFtZSBvZiB0aGUgcnVsZSBzZXQgdG8gZm9ybWF0IHRoZSBudW1iZXIgd2l0aC4KKyAgICAgKiBUaGlzIG11c3QgYmUgdGhlIG5hbWUgb2YgYSB2YWxpZCBwdWJsaWMgcnVsZSBzZXQgZm9yIHRoaXMgZm9ybWF0dGVyLgorICAgICAqIEByZXR1cm4gQSB0ZXh0dWFsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBudW1iZXIuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBmb3JtYXQoZG91YmxlIG51bWJlciwgU3RyaW5nIHJ1bGVTZXQpIHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24geworICAgICAgICBpZiAocnVsZVNldC5zdGFydHNXaXRoKCIlJSIpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJDYW4ndCB1c2UgaW50ZXJuYWwgcnVsZSBzZXQiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZm9ybWF0KG51bWJlciwgZmluZFJ1bGVTZXQocnVsZVNldCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZvcm1hdHMgdGhlIHNwZWNpZmllZCBudW1iZXIgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpZWQgcnVsZSBzZXQuCisgICAgICogKElmIHRoZSBzcGVjaWZpZWQgcnVsZSBzZXQgc3BlY2lmaWVzIGEgbWFzdGVyIFsieC4wIl0gcnVsZSwgdGhpcyBmdW5jdGlvbgorICAgICAqIGlnbm9yZXMgaXQuICBDb252ZXJ0IHRoZSBudW1iZXIgdG8gYSBkb3VibGUgZmlyc3QgaWYgeW91IG5lZCBpdC4pICBUaGlzCisgICAgICogZnVuY3Rpb24gcHJlc2VydmVzIGFsbCB0aGUgcHJlY2lzaW9uIGluIHRoZSBsb25nLS0gaXQgZG9lc24ndCBjb252ZXJ0IGl0CisgICAgICogdG8gYSBkb3VibGUuCisgICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIHRvIGZvcm1hdC4KKyAgICAgKiBAcGFyYW0gcnVsZVNldCBUaGUgbmFtZSBvZiB0aGUgcnVsZSBzZXQgdG8gZm9ybWF0IHRoZSBudW1iZXIgd2l0aC4KKyAgICAgKiBUaGlzIG11c3QgYmUgdGhlIG5hbWUgb2YgYSB2YWxpZCBwdWJsaWMgcnVsZSBzZXQgZm9yIHRoaXMgZm9ybWF0dGVyLgorICAgICAqIEByZXR1cm4gQSB0ZXh0dWFsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBudW1iZXIuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBmb3JtYXQobG9uZyBudW1iZXIsIFN0cmluZyBydWxlU2V0KSB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHsKKyAgICAgICAgaWYgKHJ1bGVTZXQuc3RhcnRzV2l0aCgiJSUiKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQ2FuJ3QgdXNlIGludGVybmFsIHJ1bGUgc2V0Iik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZvcm1hdChudW1iZXIsIGZpbmRSdWxlU2V0KHJ1bGVTZXQpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGb3JtYXRzIHRoZSBzcGVjaWZpZWQgbnVtYmVyIHVzaW5nIHRoZSBmb3JtYXR0ZXIncyBkZWZhdWx0IHJ1bGUgc2V0LgorICAgICAqIChUaGUgZGVmYXVsdCBydWxlIHNldCBpcyB0aGUgbGFzdCBwdWJsaWMgcnVsZSBzZXQgZGVmaW5lZCBpbiB0aGUgZGVzY3JpcHRpb24uKQorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciB0byBmb3JtYXQuCisgICAgICogQHBhcmFtIHRvQXBwZW5kVG8gQSBTdHJpbmdCdWZmZXIgdGhhdCB0aGUgcmVzdWx0IHNob3VsZCBiZSBhcHBlbmRlZCB0by4KKyAgICAgKiBAcGFyYW0gaWdub3JlIFRoaXMgZnVuY3Rpb24gZG9lc24ndCBleGFtaW5lIG9yIHVwZGF0ZSB0aGUgZmllbGQgcG9zaXRpb24uCisgICAgICogQHJldHVybiB0b0FwcGVuZFRvCisgICAgICovCisgICAgcHVibGljIFN0cmluZ0J1ZmZlciBmb3JtYXQoZG91YmxlIG51bWJlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgdG9BcHBlbmRUbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIGlnbm9yZSkgeworICAgICAgICAvLyB0aGlzIGlzIG9uZSBvZiB0aGUgaW5oZXJpdGVkIGZvcm1hdCgpIG1ldGhvZHMuICBTaW5jZSBpdCBkb2Vzbid0CisgICAgICAgIC8vIGhhdmUgYSB3YXkgdG8gc2VsZWN0IHRoZSBydWxlIHNldCB0byB1c2UsIGl0IGp1c3QgdXNlcyB0aGUKKyAgICAgICAgLy8gZGVmYXVsdCBvbmUKKyAgICAgICAgdG9BcHBlbmRUby5hcHBlbmQoZm9ybWF0KG51bWJlciwgZGVmYXVsdFJ1bGVTZXQpKTsKKyAgICAgICAgcmV0dXJuIHRvQXBwZW5kVG87CisgICAgfQorCisgICAgLyoqCisgICAgICogRm9ybWF0cyB0aGUgc3BlY2lmaWVkIG51bWJlciB1c2luZyB0aGUgZm9ybWF0dGVyJ3MgZGVmYXVsdCBydWxlIHNldC4KKyAgICAgKiAoVGhlIGRlZmF1bHQgcnVsZSBzZXQgaXMgdGhlIGxhc3QgcHVibGljIHJ1bGUgc2V0IGRlZmluZWQgaW4gdGhlIGRlc2NyaXB0aW9uLikKKyAgICAgKiAoSWYgdGhlIHNwZWNpZmllZCBydWxlIHNldCBzcGVjaWZpZXMgYSBtYXN0ZXIgWyJ4LjAiXSBydWxlLCB0aGlzIGZ1bmN0aW9uCisgICAgICogaWdub3JlcyBpdC4gIENvbnZlcnQgdGhlIG51bWJlciB0byBhIGRvdWJsZSBmaXJzdCBpZiB5b3UgbmVkIGl0LikgIFRoaXMKKyAgICAgKiBmdW5jdGlvbiBwcmVzZXJ2ZXMgYWxsIHRoZSBwcmVjaXNpb24gaW4gdGhlIGxvbmctLSBpdCBkb2Vzbid0IGNvbnZlcnQgaXQKKyAgICAgKiB0byBhIGRvdWJsZS4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgdG8gZm9ybWF0LgorICAgICAqIEBwYXJhbSB0b0FwcGVuZFRvIEEgU3RyaW5nQnVmZmVyIHRoYXQgdGhlIHJlc3VsdCBzaG91bGQgYmUgYXBwZW5kZWQgdG8uCisgICAgICogQHBhcmFtIGlnbm9yZSBUaGlzIGZ1bmN0aW9uIGRvZXNuJ3QgZXhhbWluZSBvciB1cGRhdGUgdGhlIGZpZWxkIHBvc2l0aW9uLgorICAgICAqIEByZXR1cm4gdG9BcHBlbmRUbworICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KGxvbmcgbnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gaWdub3JlKSB7CisgICAgICAgIC8vIHRoaXMgaXMgb25lIG9mIHRoZSBpbmhlcml0ZWQgZm9ybWF0KCkgbWV0aG9kcy4gIFNpbmNlIGl0IGRvZXNuJ3QKKyAgICAgICAgLy8gaGF2ZSBhIHdheSB0byBzZWxlY3QgdGhlIHJ1bGUgc2V0IHRvIHVzZSwgaXQganVzdCB1c2VzIHRoZQorICAgICAgICAvLyBkZWZhdWx0IG9uZQorICAgICAgICB0b0FwcGVuZFRvLmFwcGVuZChmb3JtYXQobnVtYmVyLCBkZWZhdWx0UnVsZVNldCkpOworICAgICAgICByZXR1cm4gdG9BcHBlbmRUbzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogSW1wbGVtZW50IGNvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0OgorICAgICAqIEZvcm1hdCBhIEJpZ0ludGVnZXIuCisgICAgICovCisgICAgcHVibGljIFN0cmluZ0J1ZmZlciBmb3JtYXQoQmlnSW50ZWdlciBudW1iZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgcmV0dXJuIGZvcm1hdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKG51bWJlciksIHRvQXBwZW5kVG8sIHBvcyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBJbXBsZW1lbnQgY29tLmlibS5pY3UudGV4dC5OdW1iZXJGb3JtYXQ6CisgICAgICogRm9ybWF0IGEgQmlnRGVjaW1hbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIGZvcm1hdChqYXZhLm1hdGguQmlnRGVjaW1hbCBudW1iZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgcmV0dXJuIGZvcm1hdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKG51bWJlciksIHRvQXBwZW5kVG8sIHBvcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIEltcGxlbWVudCBjb20uaWJtLmljdS50ZXh0Lk51bWJlckZvcm1hdDoKKyAgICAgKiBGb3JtYXQgYSBCaWdEZWNpbWFsLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBudW1iZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgLy8gVEVNUE9SQVJZOgorICAgICAgICByZXR1cm4gZm9ybWF0KG51bWJlci5kb3VibGVWYWx1ZSgpLCB0b0FwcGVuZFRvLCBwb3MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlcyB0aGUgc3BlY2ZpZWQgc3RyaW5nLCBiZWdpbm5pbmcgYXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvbiwgYWNjb3JkaW5nCisgICAgICogdG8gdGhpcyBmb3JtYXR0ZXIncyBydWxlcy4gIFRoaXMgd2lsbCBtYXRjaCB0aGUgc3RyaW5nIGFnYWluc3QgYWxsIG9mIHRoZQorICAgICAqIGZvcm1hdHRlcidzIHB1YmxpYyBydWxlIHNldHMgYW5kIHJldHVybiB0aGUgdmFsdWUgY29ycmVzcG9uZGluZyB0byB0aGUgbG9uZ2VzdAorICAgICAqIHBhcnNlYWJsZSBzdWJzdHJpbmcuICBUaGlzIGZ1bmN0aW9uJ3MgYmVoYXZpb3IgaXMgYWZmZWN0ZWQgYnkgdGhlIGxlbmllbnQKKyAgICAgKiBwYXJzZSBtb2RlLgorICAgICAqIEBwYXJhbSB0ZXh0IFRoZSBzdHJpbmcgdG8gcGFyc2UKKyAgICAgKiBAcGFyYW0gcGFyc2VQb3NpdGlvbiBPbiBlbnRyeSwgY29udGFpbnMgdGhlIHBvc2l0aW9uIG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIKKyAgICAgKiBpbiAidGV4dCIgdG8gZXhhbWluZS4gIE9uIGV4aXQsIGhhcyBiZWVuIHVwZGF0ZWQgdG8gY29udGFpbiB0aGUgcG9zaXRpb24KKyAgICAgKiBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGluICJ0ZXh0IiB0aGF0IHdhc24ndCBjb25zdW1lZCBieSB0aGUgcGFyc2UuCisgICAgICogQHJldHVybiBUaGUgbnVtYmVyIHRoYXQgY29ycmVzcG9uZHMgdG8gdGhlIHBhcnNlZCB0ZXh0LiAgVGhpcyB3aWxsIGJlIGFuCisgICAgICogaW5zdGFuY2Ugb2YgZWl0aGVyIExvbmcgb3IgRG91YmxlLCBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUgcmVzdWx0IGhhcyBhCisgICAgICogZnJhY3Rpb25hbCBwYXJ0LgorICAgICAqIEBzZWUgI3NldExlbmllbnRQYXJzZU1vZGUKKyAgICAgKi8KKyAgICBwdWJsaWMgTnVtYmVyIHBhcnNlKFN0cmluZyB0ZXh0LCBQYXJzZVBvc2l0aW9uIHBhcnNlUG9zaXRpb24pIHsKKworICAgICAgICAvLyBwYXJzZVBvc2l0aW9uIHRlbGxzIHVzIHdoZXJlIHRvIHN0YXJ0IHBhcnNpbmcuICBXZSBjb3B5IHRoZQorICAgICAgICAvLyB0ZXh0IGluIHRoZSBzdHJpbmcgZnJvbSBoZXJlIHRvIHRoZSBlbmQgaW5ybyBhIG5ldyBzdHJpbmcsCisgICAgICAgIC8vIGFuZCBjcmVhdGUgYSBuZXcgUGFyc2VQb3NpdGlvbiBhbmQgcmVzdWx0IHZhcmlhYmxlIHRvIHVzZQorICAgICAgICAvLyBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBwYXJzZSBvcGVyYXRpb24KKyAgICAgICAgU3RyaW5nIHdvcmtpbmdUZXh0ID0gdGV4dC5zdWJzdHJpbmcocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpKTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiB3b3JraW5nUG9zID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIE51bWJlciB0ZW1wUmVzdWx0ID0gbnVsbDsKKworICAgICAgICAvLyBrZWVwIHRyYWNrIG9mIHRoZSBsYXJnZXN0IG51bWJlciBvZiBjaGFyYWN0ZXJzIGNvbnN1bWVkIGluCisgICAgICAgIC8vIHRoZSB2YXJpb3VzIHRyaWFscywgYW5kIHRoZSByZXN1bHQgdGhhdCBjb3JyZXNwb25kcyB0byBpdAorICAgICAgICBOdW1iZXIgcmVzdWx0ID0gbmV3IExvbmcoMCk7CisgICAgICAgIFBhcnNlUG9zaXRpb24gaGlnaFdhdGVyTWFyayA9IG5ldyBQYXJzZVBvc2l0aW9uKHdvcmtpbmdQb3MuZ2V0SW5kZXgoKSk7CisKKyAgICAgICAgLy8gaXRlcmF0ZSBvdmVyIHRoZSBwdWJsaWMgcnVsZSBzZXRzIChiZWdpbm5pbmcgd2l0aCB0aGUgZGVmYXVsdCBvbmUpCisgICAgICAgIC8vIGFuZCB0cnkgcGFyc2luZyB0aGUgdGV4dCB3aXRoIGVhY2ggb2YgdGhlbS4gIEtlZXAgdHJhY2sgb2Ygd2hpY2gKKyAgICAgICAgLy8gb25lIGNvbnN1bWVzIHRoZSBtb3N0IGNoYXJhY3RlcnM6IHRoYXQncyB0aGUgb25lIHRoYXQgZGV0ZXJtaW5lcworICAgICAgICAvLyB0aGUgcmVzdWx0IHdlIHJldHVybgorICAgICAgICBmb3IgKGludCBpID0gcnVsZVNldHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsKKyAgICAgICAgICAgIC8vIHNraXAgcHJpdmF0ZSBydWxlIHNldHMKKyAgICAgICAgICAgIGlmIChydWxlU2V0c1tpXS5nZXROYW1lKCkuc3RhcnRzV2l0aCgiJSUiKSkgeworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyB0cnkgcGFyc2luZyB0aGUgc3RyaW5nIHdpdGggdGhlIHJ1bGUgc2V0LiAgSWYgaXQgZ2V0cyBwYXN0IHRoZQorICAgICAgICAgICAgLy8gaGlnaC13YXRlciBtYXJrLCB1cGRhdGUgdGhlIGhpZ2gtd2F0ZXIgbWFyayBhbmQgdGhlIHJlc3VsdAorICAgICAgICAgICAgdGVtcFJlc3VsdCA9IHJ1bGVTZXRzW2ldLnBhcnNlKHdvcmtpbmdUZXh0LCB3b3JraW5nUG9zLCBEb3VibGUuTUFYX1ZBTFVFKTsKKyAgICAgICAgICAgIGlmICh3b3JraW5nUG9zLmdldEluZGV4KCkgPiBoaWdoV2F0ZXJNYXJrLmdldEluZGV4KCkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSB0ZW1wUmVzdWx0OworICAgICAgICAgICAgICAgIGhpZ2hXYXRlck1hcmsuc2V0SW5kZXgod29ya2luZ1Bvcy5nZXRJbmRleCgpKTsKKyAgICAgICAgICAgIH0KKy8vIGNvbW1lbnRlZCBvdXQgYmVjYXVzZSB0aGlzIEFQSSBvbiBQYXJzZVBvc2l0aW9uIGRvZXNuJ3QgZXhpc3QgaW4gMS4xLngKKy8vICAgICAgICAgICAgaWYgKHdvcmtpbmdQb3MuZ2V0RXJyb3JJbmRleCgpID4gaGlnaFdhdGVyTWFyay5nZXRFcnJvckluZGV4KCkpIHsKKy8vICAgICAgICAgICAgICAgIGhpZ2hXYXRlck1hcmsuc2V0RXJyb3JJbmRleCh3b3JraW5nUG9zLmdldEVycm9ySW5kZXgoKSk7CisvLyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gaWYgd2UgbWFuYWdlIHRvIHVzZSB1cCBhbGwgdGhlIGNoYXJhY3RlcnMgaW4gdGhlIHN0cmluZywKKyAgICAgICAgICAgIC8vIHdlIGRvbid0IGhhdmUgdG8gdHJ5IGFueSBtb3JlIHJ1bGUgc2V0cworICAgICAgICAgICAgaWYgKGhpZ2hXYXRlck1hcmsuZ2V0SW5kZXgoKSA9PSB3b3JraW5nVGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBvdGhlcndpc2UsIHJlc2V0IG91ciBpbnRlcm5hbCBwYXJzZSBwb3NpdGlvbiB0byB0aGUKKyAgICAgICAgICAgIC8vIGJlZ2lubmluZyBhbmQgdHJ5IGFnYWluIHdpdGggdGhlIG5leHQgcnVsZSBzZXQKKyAgICAgICAgICAgIHdvcmtpbmdQb3Muc2V0SW5kZXgoMCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBhZGQgdGhlIGhpZ2ggd2F0ZXIgbWFyayB0byBvdXIgb3JpZ2luYWwgcGFyc2UgcG9zaXRpb24gYW5kCisgICAgICAgIC8vIHJldHVybiB0aGUgcmVzdWx0CisgICAgICAgIHBhcnNlUG9zaXRpb24uc2V0SW5kZXgocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpICsgaGlnaFdhdGVyTWFyay5nZXRJbmRleCgpKTsKKy8vIGNvbW1lbnRlZCBvdXQgYmVjYXVzZSB0aGlzIEFQSSBvbiBQYXJzZVBvc2l0aW9uIGRvZXNuJ3QgZXhpc3QgaW4gMS4xLngKKy8vICAgICAgICBpZiAoaGlnaFdhdGVyTWFyay5nZXRJbmRleCgpID09IDApIHsKKy8vICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRFcnJvckluZGV4KHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSArIGhpZ2hXYXRlck1hcmsuZ2V0RXJyb3JJbmRleCgpKTsKKy8vICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogVHVybnMgbGVuaWVudCBwYXJzZSBtb2RlIG9uIGFuZCBvZmYuCisgICAgICoKKyAgICAgKiBXaGVuIGluIGxlbmllbnQgcGFyc2UgbW9kZSwgdGhlIGZvcm1hdHRlciB1c2VzIGEgQ29sbGF0b3IgZm9yIHBhcnNpbmcgdGhlIHRleHQuCisgICAgICogT25seSBwcmltYXJ5IGRpZmZlcmVuY2VzIGFyZSB0cmVhdGVkIGFzIHNpZ25pZmljYW50LiAgVGhpcyBtZWFucyB0aGF0IGNhc2UKKyAgICAgKiBkaWZmZXJlbmNlcywgYWNjZW50IGRpZmZlcmVuY2VzLCBhbHRlcm5hdGUgc3BlbGxpbmdzIG9mIHRoZSBzYW1lIGxldHRlcgorICAgICAqIChlLmcuLCBhZSBhbmQgYS11bWxhdXQgaW4gR2VybWFuKSwgaWdub3JhYmxlIGNoYXJhY3RlcnMsIGV0Yy4gYXJlIGlnbm9yZWQgaW4KKyAgICAgKiBtYXRjaGluZyB0aGUgdGV4dC4gIEluIG1hbnkgY2FzZXMsIG51bWVyYWxzIHdpbGwgYmUgYWNjZXB0ZWQgaW4gcGxhY2Ugb2Ygd29yZHMKKyAgICAgKiBvciBwaHJhc2VzIGFzIHdlbGwuCisgICAgICoKKyAgICAgKiBGb3IgZXhhbXBsZSwgYWxsIG9mIHRoZSBmb2xsb3dpbmcgd2lsbCBjb3JyZWN0bHkgcGFyc2UgYXMgMjU1IGluIEVuZ2xpc2ggaW4KKyAgICAgKiBsZW5pZW50LXBhcnNlIG1vZGU6CisgICAgICogPGJyPiJ0d28gaHVuZHJlZCBmaWZ0eS1maXZlIgorICAgICAqIDxicj4idHdvIGh1bmRyZWQgZmlmdHkgZml2ZSIKKyAgICAgKiA8YnI+IlRXTyBIVU5EUkVEIEZJRlRZLUZJVkUiCisgICAgICogPGJyPiJ0d29odW5kcmVkZmlmdHlmaXZlIgorICAgICAqIDxicj4iMiBodW5kcmVkIGZpZnR5LTUiCisgICAgICoKKyAgICAgKiBUaGUgQ29sbGF0b3IgdXNlZCBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBsb2NhbGUgdGhhdCB3YXMKKyAgICAgKiBwYXNzZWQgdG8gdGhpcyBvYmplY3Qgb24gY29uc3RydWN0aW9uLiAgVGhlIGRlc2NyaXB0aW9uIHBhc3NlZCB0byB0aGlzIG9iamVjdAorICAgICAqIG9uIGNvbnN0cnVjdGlvbiBtYXkgc3VwcGx5IGFkZGl0aW9uYWwgY29sbGF0aW9uIHJ1bGVzIHRoYXQgYXJlIGFwcGVuZGVkIHRvIHRoZQorICAgICAqIGVuZCBvZiB0aGUgZGVmYXVsdCBjb2xsYXRvciBmb3IgdGhlIGxvY2FsZSwgZW5hYmxpbmcgYWRkaXRpb25hbCBlcXVpdmFsZW5jZXMKKyAgICAgKiAoc3VjaCBhcyBhZGRpbmcgbW9yZSBpZ25vcmFibGUgY2hhcmFjdGVycyBvciBwZXJtaXR0aW5nIHNwZWxsZWQtb3V0IHZlcnNpb24gb2YKKyAgICAgKiBzeW1ib2xzOyBzZWUgdGhlIGRlbW8gcHJvZ3JhbSBmb3IgZXhhbXBsZXMpLgorICAgICAqCisgICAgICogSXQncyBpbXBvcnRhbnQgdG8gZW1waGFzaXplIHRoYXQgZXZlbiBzdHJpY3QgcGFyc2luZyBpcyByZWxhdGl2ZWx5IGxlbmllbnQ6IGl0CisgICAgICogd2lsbCBhY2NlcHQgc29tZSB0ZXh0IHRoYXQgaXQgd29uJ3QgcHJvZHVjZSBhcyBvdXRwdXQuICBJbiBFbmdsaXNoLCBmb3IgZXhhbXBsZSwKKyAgICAgKiBpdCB3aWxsIGNvcnJlY3RseSBwYXJzZSAidHdvIGh1bmRyZWQgemVybyIgYW5kICJmaWZ0ZWVuIGh1bmRyZWQiLgorICAgICAqCisgICAgICogQHBhcmFtIGVuYWJsZWQgSWYgdHJ1ZSwgdHVybnMgbGVuaWVudC1wYXJzZSBtb2RlIG9uOyBpZiBmYWxzZSwgdHVybnMgaXQgb2ZmLgorICAgICAqIEBzZWUgamF2YS50ZXh0LlJ1bGVCYXNlZENvbGxhdG9yCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TGVuaWVudFBhcnNlTW9kZShib29sZWFuIGVuYWJsZWQpIHsKKyAgICAgICAgbGVuaWVudFBhcnNlID0gZW5hYmxlZDsKKworICAgICAgICAvLyBpZiB3ZSdyZSBsZWF2aW5nIGxlbmllbnQtcGFyc2UgbW9kZSwgdGhyb3cgYXdheSB0aGUgY29sbGF0b3IKKyAgICAgICAgLy8gd2UndmUgYmVlbiB1c2luZworICAgICAgICBpZiAoIWVuYWJsZWQpIHsKKyAgICAgICAgICAgIGNvbGxhdG9yID0gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiBsZW5pZW50LXBhcnNlIG1vZGUgaXMgdHVybmVkIG9uLiAgTGVuaWVudCBwYXJzaW5nIGlzIG9mZgorICAgICAqIGJ5IGRlZmF1bHQuCisgICAgICogQHJldHVybiB0cnVlIGlmIGxlbmllbnQtcGFyc2UgbW9kZSBpcyB0dXJuZWQgb24uCisgICAgICogQHNlZSAjc2V0TGVuaWVudFBhcnNlTW9kZQorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGxlbmllbnRQYXJzZUVuYWJsZWQoKSB7CisgICAgICAgIHJldHVybiBsZW5pZW50UGFyc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgdGhlIGRlZmF1bHQgcnVsZSBzZXQgdG8gdXNlLiAgSWYgcnVsZVNldE5hbWUgaXMgbnVsbCwgcmVzZXQKKyAgICAgKiB0byB0aGUgaW5pdGlhbCBkZWZhdWx0IHJ1bGUgc2V0LgorICAgICAqIEBwYXJhbSBydWxlU2V0TmFtZSB0aGUgbmFtZSBvZiB0aGUgcnVsZSBzZXQsIG9yIG51bGwgdG8gcmVzZXQgdGhlIGluaXRpYWwgZGVmYXVsdC4KKyAgICAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBydWxlU2V0TmFtZSBpcyBub3QgdGhlIG5hbWUgb2YgYSBwdWJsaWMgcnVsZXNldC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXREZWZhdWx0UnVsZVNldChTdHJpbmcgcnVsZVNldE5hbWUpIHsKKyAgICAgICAgaWYgKHJ1bGVTZXROYW1lID09IG51bGwpIHsKKyAgICAgICAgICAgIGluaXREZWZhdWx0UnVsZVNldCgpOworICAgICAgICB9IGVsc2UgaWYgKHJ1bGVTZXROYW1lLnN0YXJ0c1dpdGgoIiUlIikpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImNhbm5vdCB1c2UgcHJpdmF0ZSBydWxlIHNldDogIiArIHJ1bGVTZXROYW1lKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRlZmF1bHRSdWxlU2V0ID0gZmluZFJ1bGVTZXQocnVsZVNldE5hbWUpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHBhY2thZ2UtaW50ZXJuYWwgQVBJCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHJlZmVyZW5jZSB0byB0aGUgZm9ybWF0dGVyJ3MgZGVmYXVsdCBydWxlIHNldC4gIFRoZSBkZWZhdWx0CisgICAgICogcnVsZSBzZXQgaXMgdGhlIGxhc3QgcHVibGljIHJ1bGUgc2V0IGluIHRoZSBkZXNjcmlwdGlvbiwgb3IgdGhlIG9uZQorICAgICAqIG1vc3QgcmVjZW50bHkgc2V0IGJ5IHNldERlZmF1bHRSdWxlU2V0LgorICAgICAqIEByZXR1cm4gVGhlIGZvcm1hdHRlcidzIGRlZmF1bHQgcnVsZSBzZXQuCisgICAgICovCisgICAgTkZSdWxlU2V0IGdldERlZmF1bHRSdWxlU2V0KCkgeworICAgICAgICByZXR1cm4gZGVmYXVsdFJ1bGVTZXQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY29sbGF0b3IgdG8gdXNlIGZvciBsZW5pZW50IHBhcnNpbmcuICBUaGUgY29sbGF0b3IgaXMgbGF6aWx5IGNyZWF0ZWQ6CisgICAgICogdGhpcyBmdW5jdGlvbiBjcmVhdGVzIGl0IHRoZSBmaXJzdCB0aW1lIGl0J3MgY2FsbGVkLgorICAgICAqIEByZXR1cm4gVGhlIGNvbGxhdG9yIHRvIHVzZSBmb3IgbGVuaWVudCBwYXJzaW5nLCBvciBudWxsIGlmIGxlbmllbnQgcGFyc2luZworICAgICAqIGlzIHR1cm5lZCBvZmYuCisgICAgICovCisgICAgQ29sbGF0b3IgZ2V0Q29sbGF0b3IoKSB7CisgICAgICAgIC8vIGxhenktZXZhdWxhdGUgdGhlIGNvbGxhdG9yCisgICAgICAgIGlmIChjb2xsYXRvciA9PSBudWxsICYmIGxlbmllbnRQYXJzZSkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAvLyBjcmVhdGUgYSBkZWZhdWx0IGNvbGxhdG9yIGJhc2VkIG9uIHRoZSBmb3JtYXR0ZXIncyBsb2NhbGUsCisgICAgICAgICAgICAgICAgLy8gdGhlbiBwdWxsIG91dCB0aGF0IGNvbGxhdG9yJ3MgcnVsZXMsIGFwcGVuZCBhbnkgYWRkaXRpb25hbAorICAgICAgICAgICAgICAgIC8vIHJ1bGVzIHNwZWNpZmllZCBpbiB0aGUgZGVzY3JpcHRpb24sIGFuZCBjcmVhdGUgYSBfbmV3XworICAgICAgICAgICAgICAgIC8vIGNvbGxhdG9yIGJhc2VkIG9uIHRoZSBjb21iaW5haXRvbiBvZiB0aG9zZSBydWxlcworICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIHRlbXAgPSAoUnVsZUJhc2VkQ29sbGF0b3IpY29sbGF0b3IuZ2V0SW5zdGFuY2UobG9jYWxlKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcnVsZXMgPSB0ZW1wLmdldFJ1bGVzKCkgKyBsZW5pZW50UGFyc2VSdWxlczsKKworICAgICAgICAgICAgICAgIGNvbGxhdG9yID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGVzKTsKKyAgICAgICAgICAgICAgICBjb2xsYXRvci5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIC8vIElmIHdlIGdldCBoZXJlLCBpdCBtZWFucyB3ZSBoYXZlIGEgbWFsZm9ybWVkIHNldCBvZgorICAgICAgICAgICAgICAgIC8vIGNvbGxhdGlvbiBydWxlcywgd2hpY2ggaG9wZWZ1bGx5IHdvbid0IGhhcHBlbgorICAgICAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgY29sbGF0b3IgPSBudWxsOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gaWYgbGVuaWVudC1wYXJzZSBtb2RlIGlzIG9mZiwgdGhpcyB3aWxsIGJlIG51bGwKKyAgICAgICAgLy8gKHNlZSBzZXRMZW5pZW50UGFyc2VNb2RlKCkpCisgICAgICAgIHJldHVybiBjb2xsYXRvcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBEZWNpbWFsRm9ybWF0U3ltYm9scyBvYmplY3QgdGhhdCBzaG91bGQgYmUgdXNlZCBieSBhbGwgRGVjaW1hbEZvcm1hdAorICAgICAqIGluc3RhbmNlcyBvd25lZCBieSB0aGlzIGZvcm1hdHRlci4gIFRoaXMgb2JqZWN0IGlzIGxhemlseSBjcmVhdGVkOiB0aGlzIGZ1bmN0aW9uCisgICAgICogY3JlYXRlcyBpdCB0aGUgZmlyc3QgdGltZSBpdCdzIGNhbGxlZC4KKyAgICAgKiBAcmV0dXJuIFRoZSBEZWNpbWFsRm9ybWF0U3ltYm9scyBvYmplY3QgdGhhdCBzaG91bGQgYmUgdXNlZCBieSBhbGwgRGVjaW1hbEZvcm1hdAorICAgICAqIGluc3RhbmNlcyBvd25lZCBieSB0aGlzIGZvcm1hdHRlci4KKyAgICAgKi8KKyAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBnZXREZWNpbWFsRm9ybWF0U3ltYm9scygpIHsKKyAgICAgICAgLy8gbGF6eS1ldmFsdWF0ZSB0aGUgRGVjaW1hbEZvcm1hdFN5bWJvbHMgb2JqZWN0LiAgVGhpcyBvYmplY3QKKyAgICAgICAgLy8gaXMgc2hhcmVkIGJ5IGFsbCBEZWNpbWFsRm9ybWF0IGluc3RhbmNlcyBiZWxvbmdpbmcgdG8gdGhpcworICAgICAgICAvLyBmb3JtYXR0ZXIKKyAgICAgICAgaWYgKGRlY2ltYWxGb3JtYXRTeW1ib2xzID09IG51bGwpIHsKKyAgICAgICAgICAgIGRlY2ltYWxGb3JtYXRTeW1ib2xzID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKGxvY2FsZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGRlY2ltYWxGb3JtYXRTeW1ib2xzOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdHJ1Y3Rpb24gaW1wbGVtZW50YXRpb24KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIHBhcnNlcyB0aGUgZGVzY3JpcHRpb24gYW5kIHVzZXMgaXQgdG8gYnVpbGQgYWxsIG9mCisgICAgICogaW50ZXJuYWwgZGF0YSBzdHJ1Y3R1cmVzIHRoYXQgdGhlIGZvcm1hdHRlciB1c2VzIHRvIGRvIGZvcm1hdHRpbmcKKyAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb24gVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBmb3JtYXR0ZXIncyBkZXNpcmVkIGJlaGF2aW9yLgorICAgICAqIFRoaXMgaXMgZWl0aGVyIHBhc3NlZCBpbiBieSB0aGUgY2FsbGVyIG9yIGxvYWRlZCBvdXQgb2YgYSByZXNvdXJjZQorICAgICAqIGJ5IG9uZSBvZiB0aGUgY29uc3RydWN0b3JzLCBhbmQgaXMgaW4gdGhlIGRlc2NyaXB0aW9uIGZvcm1hdCBzcGVjaWZpZWQKKyAgICAgKiBpbiB0aGUgY2xhc3MgZG9jcy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgaW5pdChTdHJpbmcgZGVzY3JpcHRpb24pIHsKKyAgICAgICAgLy8gc3RhcnQgYnkgc3RyaXBwaW5nIHRoZSB0cmFpbGluZyB3aGl0ZXNwYWNlIGZyb20gYWxsIHRoZSBydWxlcworICAgICAgICAvLyAodGhpcyBpcyBhbGwgdGhlIHdoaXRlc3BhY2UgZm9sbHdpbmcgZWFjaCBzZW1pY29sb24gaW4gdGhlCisgICAgICAgIC8vIGRlc2NyaXB0aW9uKS4gIFRoaXMgYWxsb3dzIHVzIHRvIGxvb2sgZm9yIHJ1bGUtc2V0IGJvdW5kYXJpZXMKKyAgICAgICAgLy8gYnkgc2VhcmNoaW5nIGZvciAiOyUiIHdpdGhvdXQgaGF2aW5nIHRvIHdvcnJ5IGFib3V0IHdoaXRlc3BhY2UKKyAgICAgICAgLy8gYmV0d2VlbiB0aGUgOyBhbmQgdGhlICUKKyAgICAgICAgZGVzY3JpcHRpb24gPSBzdHJpcFdoaXRlc3BhY2UoZGVzY3JpcHRpb24pOworCisgICAgICAgIC8vIGNoZWNrIHRvIHNlZSBpZiB0aGVyZSdzIGEgc2V0IG9mIGxlbmllbnQtcGFyc2UgcnVsZXMuICBJZiB0aGVyZQorICAgICAgICAvLyBpcywgcHVsbCB0aGVtIG91dCBpbnRvIG91ciB0ZW1wb3JhcnkgaG9sZGluZyBwbGFjZSBmb3IgdGhlbSwKKyAgICAgICAgLy8gYW5kIGRlbGV0ZSB0aGVtIGZyb20gdGhlIGRlc2NyaXB0aW9uIGJlZm9yZSB0aGUgcmVhbCBkZXNjaXB0aW9uLQorICAgICAgICAvLyBwYXJzaW5nIGNvZGUgc2VlcyB0aGVtCisgICAgICAgIGludCBscCA9IGRlc2NyaXB0aW9uLmluZGV4T2YoIiUlbGVuaWVudC1wYXJzZToiKTsKKyAgICAgICAgaWYgKGxwICE9IC0xKSB7CisgICAgICAgICAgICAvLyB3ZSd2ZSBnb3QgdG8gbWFrZSBzdXJlIHdlJ3JlIG5vdCBpbiB0aGUgbWlkZGxlIG9mIGEgcnVsZQorICAgICAgICAgICAgLy8gKHdoZXJlICIlJWxlbmllbnQtcGFyc2UiIHdvdWxkIGFjdHVhbGx5IGdldCB0cmVhdGVkIGFzCisgICAgICAgICAgICAvLyBydWxlIHRleHQpCisgICAgICAgICAgICBpZiAobHAgPT0gMCB8fCBkZXNjcmlwdGlvbi5jaGFyQXQobHAgLSAxKSA9PSAnOycpIHsKKyAgICAgICAgICAgICAgICAvLyBsb2NhdGUgdGhlIGJlZ2lubmluZyBhbmQgZW5kIG9mIHRoZSBhY3R1YWwgY29sbGF0aW9uCisgICAgICAgICAgICAgICAgLy8gcnVsZXMgKHRoZXJlIG1heSBiZSB3aGl0ZXNwYWNlIGJldHdlZW4gdGhlIG5hbWUgYW5kCisgICAgICAgICAgICAgICAgLy8gdGhlIGZpcnN0IHRva2VuIGluIHRoZSBkZXNjcmlwdGlvbikKKyAgICAgICAgICAgICAgICBpbnQgbHBFbmQgPSBkZXNjcmlwdGlvbi5pbmRleE9mKCI7JSIsIGxwKTsKKworICAgICAgICAgICAgICAgIGlmIChscEVuZCA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICBscEVuZCA9IGRlc2NyaXB0aW9uLmxlbmd0aCgpIC0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaW50IGxwU3RhcnQgPSBscCArICIlJWxlbmllbnQtcGFyc2U6Ii5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoZGVzY3JpcHRpb24uY2hhckF0KGxwU3RhcnQpKSkgeworICAgICAgICAgICAgICAgICAgICArK2xwU3RhcnQ7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gY29weSBvdXQgdGhlIGxlbmllbnQtcGFyc2UgcnVsZXMgYW5kIGRlbGV0ZSB0aGVtCisgICAgICAgICAgICAgICAgLy8gZnJvbSB0aGUgZGVzY3JpcHRpb24KKyAgICAgICAgICAgICAgICBsZW5pZW50UGFyc2VSdWxlcyA9IGRlc2NyaXB0aW9uLnN1YnN0cmluZyhscFN0YXJ0LCBscEVuZCk7CisKKyAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgdGVtcCA9IG5ldyBTdHJpbmdCdWZmZXIoZGVzY3JpcHRpb24uc3Vic3RyaW5nKDAsIGxwKSk7CisgICAgICAgICAgICAgICAgaWYgKGxwRW5kICsgMSA8IGRlc2NyaXB0aW9uLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHRlbXAuYXBwZW5kKGRlc2NyaXB0aW9uLnN1YnN0cmluZyhscEVuZCArIDEpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSB0ZW1wLnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBwcmUtZmxpZ2h0IHBhcnNpbmcgdGhlIGRlc2NyaXB0aW9uIGFuZCBjb3VudCB0aGUgbnVtYmVyIG9mCisgICAgICAgIC8vIHJ1bGUgc2V0cyAoIjslIiBtYXJrcyB0aGUgZW5kIG9mIG9uZSBydWxlIHNldCBhbmQgdGhlIGJlZ2lubmluZworICAgICAgICAvLyBvZiB0aGUgbmV4dCkKKyAgICAgICAgaW50IG51bVJ1bGVTZXRzID0gMDsKKyAgICAgICAgZm9yIChpbnQgcCA9IGRlc2NyaXB0aW9uLmluZGV4T2YoIjslIik7IHAgIT0gLTE7IHAgPSBkZXNjcmlwdGlvbi5pbmRleE9mKCI7JSIsIHApKSB7CisgICAgICAgICAgICArK251bVJ1bGVTZXRzOworICAgICAgICAgICAgKytwOworICAgICAgICB9CisgICAgICAgICsrbnVtUnVsZVNldHM7CisKKyAgICAgICAgLy8gb3VyIHJ1bGUgbGlzdCBpcyBhbiBhcnJheSBvZiB0aGUgYXBwcnByaWF0ZSBzaXplCisgICAgICAgIHJ1bGVTZXRzID0gbmV3IE5GUnVsZVNldFtudW1SdWxlU2V0c107CisKKyAgICAgICAgLy8gZGl2aWRlIHVwIHRoZSBkZXNjcmlwdGlvbnMgaW50byBpbmRpdmlkdWFsIHJ1bGUtc2V0IGRlc2NyaXB0aW9ucworICAgICAgICAvLyBhbmQgc3RvcmUgdGhlbSBpbiBhIHRlbXBvcmFyeSBhcnJheS4gIEF0IGVhY2ggc3RlcCwgd2UgYWxzbworICAgICAgICAvLyBuZXcgdXAgYSBydWxlIHNldCwgYnV0IGFsbCB0aGlzIGRvZXMgaXMgaW5pdGlhbGl6ZSBpdHMgbmFtZQorICAgICAgICAvLyBhbmQgcmVtb3ZlIGl0IGZyb20gaXRzIGRlc2NyaXB0aW9uLiAgV2UgY2FuJ3QgYWN0dWFsbHkgcGFyc2UKKyAgICAgICAgLy8gdGhlIHJlc3Qgb2YgdGhlIGRlc2NyaXB0aW9ucyBhbmQgZmluaXNoIGluaXRpYWxpemluZyBldmVyeXRoaW5nCisgICAgICAgIC8vIGJlY2F1c2Ugd2UgaGF2ZSB0byBrbm93IHRoZSBuYW1lcyBhbmQgbG9jYXRpb25zIG9mIGFsbCB0aGUgcnVsZQorICAgICAgICAvLyBzZXRzIGJlZm9yZSB3ZSBjYW4gYWN0dWFsbHkgc2V0IGV2ZXJ5dGhpbmcgdXAKKyAgICAgICAgU3RyaW5nW10gcnVsZVNldERlc2NyaXB0aW9ucyA9IG5ldyBTdHJpbmdbbnVtUnVsZVNldHNdOworCisgICAgICAgIGludCBjdXJSdWxlU2V0ID0gMDsKKyAgICAgICAgaW50IHN0YXJ0ID0gMDsKKyAgICAgICAgZm9yIChpbnQgcCA9IGRlc2NyaXB0aW9uLmluZGV4T2YoIjslIik7IHAgIT0gLTE7IHAgPSBkZXNjcmlwdGlvbi5pbmRleE9mKCI7JSIsIHN0YXJ0KSkgeworICAgICAgICAgICAgcnVsZVNldERlc2NyaXB0aW9uc1tjdXJSdWxlU2V0XSA9IGRlc2NyaXB0aW9uLnN1YnN0cmluZyhzdGFydCwgcCArIDEpOworICAgICAgICAgICAgcnVsZVNldHNbY3VyUnVsZVNldF0gPSBuZXcgTkZSdWxlU2V0KHJ1bGVTZXREZXNjcmlwdGlvbnMsIGN1clJ1bGVTZXQpOworICAgICAgICAgICAgKytjdXJSdWxlU2V0OworICAgICAgICAgICAgc3RhcnQgPSBwICsgMTsKKyAgICAgICAgfQorICAgICAgICBydWxlU2V0RGVzY3JpcHRpb25zW2N1clJ1bGVTZXRdID0gZGVzY3JpcHRpb24uc3Vic3RyaW5nKHN0YXJ0KTsKKyAgICAgICAgcnVsZVNldHNbY3VyUnVsZVNldF0gPSBuZXcgTkZSdWxlU2V0KHJ1bGVTZXREZXNjcmlwdGlvbnMsIGN1clJ1bGVTZXQpOworCisgICAgICAgIC8vIG5vdyB3ZSBjYW4gdGFrZSBub3RlIG9mIHRoZSBmb3JtYXR0ZXIncyBkZWZhdWx0IHJ1bGUgc2V0LCB3aGljaAorICAgICAgICAvLyBpcyB0aGUgbGFzdCBwdWJsaWMgcnVsZSBzZXQgaW4gdGhlIGRlc2NyaXB0aW9uIChpdCdzIHRoZSBsYXN0CisgICAgICAgIC8vIHJhdGhlciB0aGFuIHRoZSBmaXJzdCBzbyB0aGF0IGEgdXNlciBjYW4gY3JlYXRlIGEgbmV3IGZvcm1hdHRlcgorICAgICAgICAvLyBmcm9tIGFuIGV4aXN0aW5nIGZvcm1hdHRlciBhbmQgY2hhbmdlIGl0cyBkZWZhdWx0IGJldmhhaW9yIGp1c3QKKyAgICAgICAgLy8gYnkgYXBwZW5kaW5nIG1vcmUgcnVsZSBzZXRzIHRvIHRoZSBlbmQpCisgICAgICAgIGluaXREZWZhdWx0UnVsZVNldCgpOworCisgICAgICAgIC8vIGZpbmFsbHksIHdlIGNhbiBnbyBiYWNrIHRocm91Z2ggdGhlIHRlbXBvcmFyeSBkZXNjcmlwdGlvbnMKKyAgICAgICAgLy8gbGlzdCBhbmQgZmluaXNoIHNldGluZyB1cCB0aGUgc3Vic3RydWN0dXJlIChhbmQgd2UgdGhyb3cKKyAgICAgICAgLy8gYXdheSB0aGUgdGVtcG9yYXJ5IGRlc2NyaXB0aW9ucyBhcyB3ZSBnbykKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBydWxlU2V0cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgcnVsZVNldHNbaV0ucGFyc2VSdWxlcyhydWxlU2V0RGVzY3JpcHRpb25zW2ldLCB0aGlzKTsKKyAgICAgICAgICAgIHJ1bGVTZXREZXNjcmlwdGlvbnNbaV0gPSBudWxsOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIGJ5IGluaXQoKSB0byBzdHJpcCB3aGl0ZXNwYWNlIGJldHdlZW4gcnVsZXMgKGkuZS4sCisgICAgICogYWZ0ZXIgc2VtaWNvbG9ucykuCisgICAgICogQHBhcmFtIGRlc2NyaXB0aW9uIFRoZSBmb3JtYXR0ZXIgZGVzY3JpcHRpb24KKyAgICAgKiBAcmV0dXJuIFRoZSBkZXNjcmlwdGlvbiB3aXRoIGFsbCB0aGUgd2hpdGVzcGFjZSB0aGF0IGZvbGxvd3Mgc2VtaWNvbG9ucworICAgICAqIHRha2VuIG91dC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBzdHJpcFdoaXRlc3BhY2UoU3RyaW5nIGRlc2NyaXB0aW9uKSB7CisgICAgICAgIC8vIHNpbmNlIHdlIGRvbid0IGhhdmUgYSBtZXRob2QgdGhhdCBkZWxldGVzIGNoYXJhY3RlcnMgKHdoeT8hISkKKyAgICAgICAgLy8gY3JlYXRlIGEgbndlIFN0cmluZ0J1ZmZlciB0byBjb3B5IHRoZSB0ZXh0IGludG8KKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICAvLyBpdGVyYXRlIHRocm91Z2ggdGhlIGNoYXJhY3RlcnMuLi4KKyAgICAgICAgaW50IHN0YXJ0ID0gMDsKKyAgICAgICAgd2hpbGUgKHN0YXJ0ICE9IC0xICYmIHN0YXJ0IDwgZGVzY3JpcHRpb24ubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIC8vIHNlZWsgdG8gdGhlIGZpcnN0IG5vbi13aGl0ZXNwYWNlIGNoYXJhY3Rlci4uLgorICAgICAgICAgICAgd2hpbGUgKHN0YXJ0IDwgZGVzY3JpcHRpb24ubGVuZ3RoKCkKKyAgICAgICAgICAgICAgICAgICAmJiBVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShkZXNjcmlwdGlvbi5jaGFyQXQoc3RhcnQpKSkgeworICAgICAgICAgICAgICAgICsrc3RhcnQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGxvY2F0ZSB0aGUgbmV4dCBzZW1pY29sb24gaW4gdGhlIHRleHQgYW5kIGNvcHl0IGhlIHRleHQgZnJvbQorICAgICAgICAgICAgLy8gb3VyIGN1cnJlbnQgcG9zaXRpb24gdXAgdG8gdGhhdCBzZW1pY29sb24gaW50byB0aGUgcmVzdWx0CisgICAgICAgICAgICBpbnQgcDsKKyAgICAgICAgICAgIHAgPSBkZXNjcmlwdGlvbi5pbmRleE9mKCc7Jywgc3RhcnQpOworICAgICAgICAgICAgaWYgKHAgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAvLyBvciBpZiB3ZSBkb24ndCBmaW5kIGEgc2VtaWNvbG9uLCBqdXN0IGNvcHkgdGhlIHJlc3Qgb2YKKyAgICAgICAgICAgICAgICAvLyB0aGUgc3RyaW5nIGludG8gdGhlIHJlc3VsdAorICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoZGVzY3JpcHRpb24uc3Vic3RyaW5nKHN0YXJ0KSk7CisgICAgICAgICAgICAgICAgc3RhcnQgPSAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKHAgPCBkZXNjcmlwdGlvbi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoZGVzY3JpcHRpb24uc3Vic3RyaW5nKHN0YXJ0LCBwICsgMSkpOworICAgICAgICAgICAgICAgIHN0YXJ0ID0gcCArIDE7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIHdoZW4gd2UgZ2V0IGhlcmUsIHdlJ3ZlIHNlZWtlZCBvZmYgdGhlIGVuZCBvZiB0aGUgc3JpbmcsIGFuZAorICAgICAgICAgICAgLy8gd2UgdGVybWluYXRlIHRoZSBsb29wICh3ZSBjb250aW51ZSB1bnRpbCAqc3RhcnQqIGlzIC0xIHJhdGhlcgorICAgICAgICAgICAgLy8gdGhhbiB1bnRpbCAqcCogaXMgLTEsIGJlY2F1c2Ugb3RoZXJ3aXNlIHdlJ2QgbWlzcyB0aGUgbGFzdAorICAgICAgICAgICAgLy8gcnVsZSBpbiB0aGUgZGVzY3JpcHRpb24pCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBzdGFydCA9IC0xOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBPTkxZIERVUklORyBDT05TVFJVQ1RJT04gdG8gZmlsbCBpbiB0aGUKKyAgICAgKiBkZWZhdWx0UnVsZVNldCB2YXJpYWJsZSBvbmNlIHdlJ3ZlIHNldCB1cCBhbGwgdGhlIHJ1bGUgc2V0cy4KKyAgICAgKiBUaGUgZGVmYXVsdCBydWxlIHNldCBpcyB0aGUgbGFzdCBwdWJsaWMgcnVsZSBzZXQgaW4gdGhlIGRlc2NyaXB0aW9uLgorICAgICAqIChJdCdzIHRoZSBsYXN0IHJhdGhlciB0aGFuIHRoZSBmaXJzdCBzbyB0aGF0IGEgY2FsbGVyIGNhbiBhcHBlbmQKKyAgICAgKiB0ZXh0IHRvIHRoZSBlbmQgb2YgYW4gZXhpc3RpbmcgZm9ybWF0dGVyIGRlc2NyaXB0aW9uIHRvIGNoYW5nZSBpdHMKKyAgICAgKiBiZWhhdmlvci4pCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGluaXREZWZhdWx0UnVsZVNldCgpIHsKKyAgICAgICAgLy8gc2VlayBiYWNrd2FyZCBmcm9tIHRoZSBlbmQgb2YgdGhlIGxpc3QgdW50aWwgd2UgcmVhY2ggYSBydWxlIHNldAorICAgICAgICAvLyB3aG9zZSBuYW1lIERPRVNOJ1QgYmVnaW4gd2l0aCAlJS4gIFRoYXQncyB0aGUgZGVmYXVsdCBydWxlIHNldAorICAgICAgICBmb3IgKGludCBpID0gcnVsZVNldHMubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHsKKyAgICAgICAgICAgIGlmICghcnVsZVNldHNbaV0uZ2V0TmFtZSgpLnN0YXJ0c1dpdGgoIiUlIikpIHsKKyAgICAgICAgICAgICAgICBkZWZhdWx0UnVsZVNldCA9IHJ1bGVTZXRzW2ldOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBkZWZhdWx0UnVsZVNldCA9IHJ1bGVTZXRzW3J1bGVTZXRzLmxlbmd0aCAtIDFdOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBmb3JtYXR0aW5nIGltcGxlbWVudGF0aW9uCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQm90dGxlbmVjayB0aHJvdWdoIHdoaWNoIGFsbCB0aGUgcHVibGljIGZvcm1hdCgpIG1ldGhvZHMKKyAgICAgKiB0aGF0IHRha2UgYSBkb3VibGUgcGFzcy4gQnkgdGhlIHRpbWUgd2UgZ2V0IGhlcmUsIHdlIGtub3cKKyAgICAgKiB3aGljaCBydWxlIHNldCB3ZSdyZSB1c2luZyB0byBkbyB0aGUgZm9ybWF0dGluZy4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgdG8gZm9ybWF0CisgICAgICogQHBhcmFtIHJ1bGVTZXQgVGhlIHJ1bGUgc2V0IHRvIHVzZSB0byBmb3JtYXQgdGhlIG51bWJlcgorICAgICAqIEByZXR1cm4gVGhlIHRleHQgdGhhdCByZXN1bHRlZCBmcm9tIGZvcm1hdHRpbmcgdGhlIG51bWJlcgorICAgICAqLworICAgIFN0cmluZyBmb3JtYXQoZG91YmxlIG51bWJlciwgTkZSdWxlU2V0IHJ1bGVTZXQpIHsKKyAgICAgICAgLy8gYWxsIEFQSSBmb3JtYXQoKSByb3V0aW5lcyB0aGF0IHRha2UgYSBkb3VibGUgdmVjdG9yIHRocm91Z2gKKyAgICAgICAgLy8gaGVyZS4gIENyZWF0ZSBhbiBlbXB0eSBzdHJpbmcgYnVmZmVyIHdoZXJlIHRoZSByZXN1bHQgd2lsbAorICAgICAgICAvLyBiZSBidWlsdCwgYW5kIHBhc3MgaXQgdG8gdGhlIHJ1bGUgc2V0IChhbG9uZyB3aXRoIGFuIGluc2VydGlvbgorICAgICAgICAvLyBwb3NpdGlvbiBvZiAwIGFuZCB0aGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZCkgdG8gdGhlIHJ1bGUgc2V0CisgICAgICAgIC8vIGZvciBmb3JtYXR0aW5nCisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIHJ1bGVTZXQuZm9ybWF0KG51bWJlciwgcmVzdWx0LCAwKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEJvdHRsZW5lY2sgdGhyb3VnaCB3aGljaCBhbGwgdGhlIHB1YmxpYyBmb3JtYXQoKSBtZXRob2RzCisgICAgICogdGhhdCB0YWtlIGEgbG9uZyBwYXNzLiBCeSB0aGUgdGltZSB3ZSBnZXQgaGVyZSwgd2Uga25vdworICAgICAqIHdoaWNoIHJ1bGUgc2V0IHdlJ3JlIHVzaW5nIHRvIGRvIHRoZSBmb3JtYXR0aW5nLgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciB0byBmb3JtYXQKKyAgICAgKiBAcGFyYW0gcnVsZVNldCBUaGUgcnVsZSBzZXQgdG8gdXNlIHRvIGZvcm1hdCB0aGUgbnVtYmVyCisgICAgICogQHJldHVybiBUaGUgdGV4dCB0aGF0IHJlc3VsdGVkIGZyb20gZm9ybWF0dGluZyB0aGUgbnVtYmVyCisgICAgICovCisgICAgU3RyaW5nIGZvcm1hdChsb25nIG51bWJlciwgTkZSdWxlU2V0IHJ1bGVTZXQpIHsKKyAgICAgICAgLy8gYWxsIEFQSSBmb3JtYXQoKSByb3V0aW5lcyB0aGF0IHRha2UgYSBkb3VibGUgdmVjdG9yIHRocm91Z2gKKyAgICAgICAgLy8gaGVyZS4gIFdlIGhhdmUgdGhlc2UgdHdvIGlkZW50aWNhbCBmdW5jdGlvbnMtLSBvbmUgdGFraW5nIGEKKyAgICAgICAgLy8gZG91YmxlIGFuZCBvbmUgdGFraW5nIGEgbG9uZy0tIHRoZSBjb3VwbGUgZGlnaXRzIG9mIHByZWNpc2lvbgorICAgICAgICAvLyB0aGF0IGxvbmcgaGFzIGJ1dCBkb3VibGUgZG9lc24ndCAoYm90aCB0eXBlcyBhcmUgOCBieXRlcyBsb25nLAorICAgICAgICAvLyBidXQgZG91YmxlIGhhcyB0byBib3Jyb3cgc29tZSBvZiB0aGUgbWFudGlzc2EgYml0cyB0byBob2xkCisgICAgICAgIC8vIHRoZSBleHBvbmVudCkuCisgICAgICAgIC8vIENyZWF0ZSBhbiBlbXB0eSBzdHJpbmcgYnVmZmVyIHdoZXJlIHRoZSByZXN1bHQgd2lsbAorICAgICAgICAvLyBiZSBidWlsdCwgYW5kIHBhc3MgaXQgdG8gdGhlIHJ1bGUgc2V0IChhbG9uZyB3aXRoIGFuIGluc2VydGlvbgorICAgICAgICAvLyBwb3NpdGlvbiBvZiAwIGFuZCB0aGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZCkgdG8gdGhlIHJ1bGUgc2V0CisgICAgICAgIC8vIGZvciBmb3JtYXR0aW5nCisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIHJ1bGVTZXQuZm9ybWF0KG51bWJlciwgcmVzdWx0LCAwKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG5hbWVkIHJ1bGUgc2V0LiAgVGhyb3dzIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbgorICAgICAqIGlmIHRoaXMgZm9ybWF0dGVyIGRvZXNuJ3QgaGF2ZSBhIHJ1bGUgc2V0IHdpdGggdGhhdCBuYW1lLgorICAgICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBkZXNpcmVkIHJ1bGUgc2V0CisgICAgICogQHJldHVybiBUaGUgcnVsZSBzZXQgd2l0aCB0aGF0IG5hbWUKKyAgICAgKi8KKyAgICBORlJ1bGVTZXQgZmluZFJ1bGVTZXQoU3RyaW5nIG5hbWUpIHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24geworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJ1bGVTZXRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAocnVsZVNldHNbaV0uZ2V0TmFtZSgpLmVxdWFscyhuYW1lKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBydWxlU2V0c1tpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJObyBydWxlIHNldCBuYW1lZCAiICsgbmFtZSk7CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9SdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iYzJiYmZmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDYzMiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L3RleHQvUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuamF2YSx2ICQKKyAqICREYXRlOiAyMDAyLzA3LzI2IDIxOjEyOjM2ICQKKyAqICRSZXZpc2lvbjogMS41NyAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5kYXRhLlJlc291cmNlUmVhZGVyOworCisvKioKKyAqIDxjb2RlPlJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yPC9jb2RlPiBpcyBhIHRyYW5zbGl0ZXJhdG9yCisgKiB0aGF0IHJlYWRzIGEgc2V0IG9mIHJ1bGVzIGluIG9yZGVyIHRvIGRldGVybWluZSBob3cgdG8gcGVyZm9ybQorICogdHJhbnNsYXRpb25zLiBSdWxlIHNldHMgYXJlIHN0b3JlZCBpbiByZXNvdXJjZSBidW5kbGVzIGluZGV4ZWQgYnkKKyAqIG5hbWUuIFJ1bGVzIHdpdGhpbiBhIHJ1bGUgc2V0IGFyZSBzZXBhcmF0ZWQgYnkgc2VtaWNvbG9ucyAoJzsnKS4KKyAqIFRvIGluY2x1ZGUgYSBsaXRlcmFsIHNlbWljb2xvbiwgcHJlZml4IGl0IHdpdGggYSBiYWNrc2xhc2ggKCdcJykuCisgKiBXaGl0ZXNwYWNlLCBhcyBkZWZpbmVkIGJ5IDxjb2RlPlVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKCk8L2NvZGU+LAorICogaXMgaWdub3JlZC4gSWYgdGhlIGZpcnN0IG5vbi1ibGFuayBjaGFyYWN0ZXIgb24gYSBsaW5lIGlzICcjJywKKyAqIHRoZSBlbnRpcmUgbGluZSBpcyBpZ25vcmVkIGFzIGEgY29tbWVudC4gPC9wPgorICoKKyAqIDxwPkVhY2ggc2V0IG9mIHJ1bGVzIGNvbnNpc3RzIG9mIHR3byBncm91cHMsIG9uZSBmb3J3YXJkLCBhbmQgb25lCisgKiByZXZlcnNlLiBUaGlzIGlzIGEgY29udmVudGlvbiB0aGF0IGlzIG5vdCBlbmZvcmNlZDsgcnVsZXMgZm9yIG9uZQorICogZGlyZWN0aW9uIG1heSBiZSBvbWl0dGVkLCB3aXRoIHRoZSByZXN1bHQgdGhhdCB0cmFuc2xhdGlvbnMgaW4KKyAqIHRoYXQgZGlyZWN0aW9uIHdpbGwgbm90IG1vZGlmeSB0aGUgc291cmNlIHRleHQuIEluIGFkZGl0aW9uLAorICogYmlkaXJlY3Rpb25hbCBmb3J3YXJkLXJldmVyc2UgcnVsZXMgbWF5IGJlIHNwZWNpZmllZCBmb3IKKyAqIHN5bW1ldHJpY2FsIHRyYW5zZm9ybWF0aW9ucy48L3A+CisgKgorICogPHA+PGI+UnVsZSBzeW50YXg8L2I+IDwvcD4KKyAqCisgKiA8cD5SdWxlIHN0YXRlbWVudHMgdGFrZSBvbmUgb2YgdGhlIGZvbGxvd2luZyBmb3JtczogPC9wPgorICoKKyAqIDxkbD4KKyAqICAgICA8ZHQ+PGNvZGU+JGFsZWZtYWRkYT1cdTA2MjI7PC9jb2RlPjwvZHQ+CisgKiAgICAgPGRkPjxzdHJvbmc+VmFyaWFibGUgZGVmaW5pdGlvbi48L3N0cm9uZz4gVGhlIG5hbWUgb24gdGhlCisgKiAgICAgICAgIGxlZnQgaXMgYXNzaWduZWQgdGhlIHRleHQgb24gdGhlIHJpZ2h0LiBJbiB0aGlzIGV4YW1wbGUsCisgKiAgICAgICAgIGFmdGVyIHRoaXMgc3RhdGVtZW50LCBpbnN0YW5jZXMgb2YgdGhlIGxlZnQgaGFuZCBuYW1lLAorICogICAgICAgICAmcXVvdDs8Y29kZT4kYWxlZm1hZGRhPC9jb2RlPiZxdW90Oywgd2lsbCBiZSByZXBsYWNlZCBieQorICogICAgICAgICB0aGUgVW5pY29kZSBjaGFyYWN0ZXIgVSswNjIyLiBWYXJpYWJsZSBuYW1lcyBtdXN0IGJlZ2luCisgKiAgICAgICAgIHdpdGggYSBsZXR0ZXIgYW5kIGNvbnNpc3Qgb25seSBvZiBsZXR0ZXJzLCBkaWdpdHMsIGFuZAorICogICAgICAgICB1bmRlcnNjb3Jlcy4gQ2FzZSBpcyBzaWduaWZpY2FudC4gRHVwbGljYXRlIG5hbWVzIGNhdXNlCisgKiAgICAgICAgIGFuIGV4Y2VwdGlvbiB0byBiZSB0aHJvd24sIHRoYXQgaXMsIHZhcmlhYmxlcyBjYW5ub3QgYmUKKyAqICAgICAgICAgcmVkZWZpbmVkLiBUaGUgcmlnaHQgaGFuZCBzaWRlIG1heSBjb250YWluIHdlbGwtZm9ybWVkCisgKiAgICAgICAgIHRleHQgb2YgYW55IGxlbmd0aCwgaW5jbHVkaW5nIG5vIHRleHQgYXQgYWxsICgmcXVvdDs8Y29kZT4kZW1wdHk9OzwvY29kZT4mcXVvdDspLgorICogICAgICAgICBUaGUgcmlnaHQgaGFuZCBzaWRlIG1heSBjb250YWluIGVtYmVkZGVkIDxjb2RlPlVuaWNvZGVTZXQ8L2NvZGU+CisgKiAgICAgICAgIHBhdHRlcm5zLCBmb3IgZXhhbXBsZSwgJnF1b3Q7PGNvZGU+JHNvZnR2b3dlbD1bZWl5RUlZXTwvY29kZT4mcXVvdDsuPC9kZD4KKyAqICAgICA8ZGQ+Jm5ic3A7PC9kZD4KKyAqICAgICA8ZHQ+PGNvZGU+YWkmZ3Q7JGFsZWZtYWRkYTs8L2NvZGU+PC9kdD4KKyAqICAgICA8ZGQ+PHN0cm9uZz5Gb3J3YXJkIHRyYW5zbGF0aW9uIHJ1bGUuPC9zdHJvbmc+IFRoaXMgcnVsZQorICogICAgICAgICBzdGF0ZXMgdGhhdCB0aGUgc3RyaW5nIG9uIHRoZSBsZWZ0IHdpbGwgYmUgY2hhbmdlZCB0byB0aGUKKyAqICAgICAgICAgc3RyaW5nIG9uIHRoZSByaWdodCB3aGVuIHBlcmZvcm1pbmcgZm9yd2FyZAorICogICAgICAgICB0cmFuc2xpdGVyYXRpb24uPC9kZD4KKyAqICAgICA8ZHQ+Jm5ic3A7PC9kdD4KKyAqICAgICA8ZHQ+PGNvZGU+YWkmbHQ7JGFsZWZtYWRkYTs8L2NvZGU+PC9kdD4KKyAqICAgICA8ZGQ+PHN0cm9uZz5SZXZlcnNlIHRyYW5zbGF0aW9uIHJ1bGUuPC9zdHJvbmc+IFRoaXMgcnVsZQorICogICAgICAgICBzdGF0ZXMgdGhhdCB0aGUgc3RyaW5nIG9uIHRoZSByaWdodCB3aWxsIGJlIGNoYW5nZWQgdG8KKyAqICAgICAgICAgdGhlIHN0cmluZyBvbiB0aGUgbGVmdCB3aGVuIHBlcmZvcm1pbmcgcmV2ZXJzZQorICogICAgICAgICB0cmFuc2xpdGVyYXRpb24uPC9kZD4KKyAqIDwvZGw+CisgKgorICogPGRsPgorICogICAgIDxkdD48Y29kZT5haSZsdDsmZ3Q7JGFsZWZtYWRkYTs8L2NvZGU+PC9kdD4KKyAqICAgICA8ZGQ+PHN0cm9uZz5CaWRpcmVjdGlvbmFsIHRyYW5zbGF0aW9uIHJ1bGUuPC9zdHJvbmc+IFRoaXMKKyAqICAgICAgICAgcnVsZSBzdGF0ZXMgdGhhdCB0aGUgc3RyaW5nIG9uIHRoZSByaWdodCB3aWxsIGJlIGNoYW5nZWQKKyAqICAgICAgICAgdG8gdGhlIHN0cmluZyBvbiB0aGUgbGVmdCB3aGVuIHBlcmZvcm1pbmcgZm9yd2FyZAorICogICAgICAgICB0cmFuc2xpdGVyYXRpb24sIGFuZCB2aWNlIHZlcnNhIHdoZW4gcGVyZm9ybWluZyByZXZlcnNlCisgKiAgICAgICAgIHRyYW5zbGl0ZXJhdGlvbi48L2RkPgorICogPC9kbD4KKyAqCisgKiA8cD5UcmFuc2xhdGlvbiBydWxlcyBjb25zaXN0IG9mIGEgPGVtPm1hdGNoIHBhdHRlcm48L2VtPiBhbmQgYW4gPGVtPm91dHB1dAorICogc3RyaW5nPC9lbT4uIFRoZSBtYXRjaCBwYXR0ZXJuIGNvbnNpc3RzIG9mIGxpdGVyYWwgY2hhcmFjdGVycywKKyAqIG9wdGlvbmFsbHkgcHJlY2VkZWQgYnkgY29udGV4dCwgYW5kIG9wdGlvbmFsbHkgZm9sbG93ZWQgYnkKKyAqIGNvbnRleHQuIENvbnRleHQgY2hhcmFjdGVycywgbGlrZSBsaXRlcmFsIHBhdHRlcm4gY2hhcmFjdGVycywKKyAqIG11c3QgYmUgbWF0Y2hlZCBpbiB0aGUgdGV4dCBiZWluZyB0cmFuc2xpdGVyYXRlZC4gSG93ZXZlciwgdW5saWtlCisgKiBsaXRlcmFsIHBhdHRlcm4gY2hhcmFjdGVycywgdGhleSBhcmUgbm90IHJlcGxhY2VkIGJ5IHRoZSBvdXRwdXQKKyAqIHRleHQuIEZvciBleGFtcGxlLCB0aGUgcGF0dGVybiAmcXVvdDs8Y29kZT5hYmN7ZGVmfTwvY29kZT4mcXVvdDsKKyAqIGluZGljYXRlcyB0aGUgY2hhcmFjdGVycyAmcXVvdDs8Y29kZT5kZWY8L2NvZGU+JnF1b3Q7IG11c3QgYmUKKyAqIHByZWNlZGVkIGJ5ICZxdW90Ozxjb2RlPmFiYzwvY29kZT4mcXVvdDsgZm9yIGEgc3VjY2Vzc2Z1bCBtYXRjaC4KKyAqIElmIHRoZXJlIGlzIGEgc3VjY2Vzc2Z1bCBtYXRjaCwgJnF1b3Q7PGNvZGU+ZGVmPC9jb2RlPiZxdW90OyB3aWxsCisgKiBiZSByZXBsYWNlZCwgYnV0IG5vdCAmcXVvdDs8Y29kZT5hYmM8L2NvZGU+JnF1b3Q7LiBUaGUgZmluYWwgJzxjb2RlPn08L2NvZGU+JworICogaXMgb3B0aW9uYWwsIHNvICZxdW90Ozxjb2RlPmFiY3tkZWY8L2NvZGU+JnF1b3Q7IGlzIGVxdWl2YWxlbnQgdG8KKyAqICZxdW90Ozxjb2RlPmFiY3tkZWZ9PC9jb2RlPiZxdW90Oy4gQW5vdGhlciBleGFtcGxlIGlzICZxdW90Ozxjb2RlPnsxMjN9NDU2PC9jb2RlPiZxdW90OworICogKG9yICZxdW90Ozxjb2RlPjEyM300NTY8L2NvZGU+JnF1b3Q7KSBpbiB3aGljaCB0aGUgbGl0ZXJhbAorICogcGF0dGVybiAmcXVvdDs8Y29kZT4xMjM8L2NvZGU+JnF1b3Q7IG11c3QgYmUgZm9sbG93ZWQgYnkgJnF1b3Q7PGNvZGU+NDU2PC9jb2RlPiZxdW90Oy4KKyAqIDwvcD4KKyAqCisgKiA8cD5UaGUgb3V0cHV0IHN0cmluZyBvZiBhIGZvcndhcmQgb3IgcmV2ZXJzZSBydWxlIGNvbnNpc3RzIG9mCisgKiBjaGFyYWN0ZXJzIHRvIHJlcGxhY2UgdGhlIGxpdGVyYWwgcGF0dGVybiBjaGFyYWN0ZXJzLiBJZiB0aGUKKyAqIG91dHB1dCBzdHJpbmcgY29udGFpbnMgdGhlIGNoYXJhY3RlciAnPGNvZGU+fDwvY29kZT4nLCB0aGlzIGlzCisgKiB0YWtlbiB0byBpbmRpY2F0ZSB0aGUgbG9jYXRpb24gb2YgdGhlIDxlbT5jdXJzb3I8L2VtPiBhZnRlcgorICogcmVwbGFjZW1lbnQuIFRoZSBjdXJzb3IgaXMgdGhlIHBvaW50IGluIHRoZSB0ZXh0IGF0IHdoaWNoIHRoZQorICogbmV4dCByZXBsYWNlbWVudCwgaWYgYW55LCB3aWxsIGJlIGFwcGxpZWQuIFRoZSBjdXJzb3IgaXMgdXN1YWxseQorICogcGxhY2VkIHdpdGhpbiB0aGUgcmVwbGFjZW1lbnQgdGV4dDsgaG93ZXZlciwgaXQgY2FuIGFjdHVhbGx5IGJlCisgKiBwbGFjZWQgaW50byB0aGUgcHJlY2VuZGluZyBvciBmb2xsb3dpbmcgY29udGV4dCBieSB1c2luZyB0aGUKKyAqIHNwZWNpYWwgY2hhcmFjdGVyICc8Y29kZT5APC9jb2RlPicuIEV4YW1wbGVzOjwvcD4KKyAqCisgKiA8YmxvY2txdW90ZT4KKyAqICAgICA8cD48Y29kZT5hIHtmb299IHogJmd0OyB8IEAgYmFyOyAjIGZvbyAtJmd0OyBiYXIsIG1vdmUgY3Vyc29yCisgKiAgICAgYmVmb3JlIGE8YnI+CisgKiAgICAge2Zvb30geHl6ICZndDsgYmFyIEBAfDsgIyZuYnNwO2ZvbyAtJmd0OyBiYXIsIGN1cnNvciBiZXR3ZWVuCisgKiAgICAgeSBhbmQgejwvY29kZT48L3A+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogPHA+PGI+VW5pY29kZVNldDwvYj48L3A+CisgKgorICogPHA+PGNvZGU+VW5pY29kZVNldDwvY29kZT4gcGF0dGVybnMgbWF5IGFwcGVhciBhbnl3aGVyZSB0aGF0CisgKiBtYWtlcyBzZW5zZS4gVGhleSBtYXkgYXBwZWFyIGluIHZhcmlhYmxlIGRlZmluaXRpb25zLgorICogQ29udHJhcml3aXNlLCA8Y29kZT5Vbmljb2RlU2V0PC9jb2RlPiBwYXR0ZXJucyBtYXkgdGhlbXNlbHZlcworICogY29udGFpbiB2YXJpYWJsZSByZWZlcmVuY2VzLCBzdWNoIGFzICZxdW90Ozxjb2RlPiRhPVthLXpdOyRub3RfYT1bXiRhXTwvY29kZT4mcXVvdDssCisgKiBvciAmcXVvdDs8Y29kZT4kcmFuZ2U9YS16OyRsbD1bJHJhbmdlXTwvY29kZT4mcXVvdDsuPC9wPgorICoKKyAqIDxwPjxjb2RlPlVuaWNvZGVTZXQ8L2NvZGU+IHBhdHRlcm5zIG1heSBhbHNvIGJlIGVtYmVkZGVkIGRpcmVjdGx5CisgKiBpbnRvIHJ1bGUgc3RyaW5ncy4gVGh1cywgdGhlIGZvbGxvd2luZyB0d28gcnVsZXMgYXJlIGVxdWl2YWxlbnQ6PC9wPgorICoKKyAqIDxibG9ja3F1b3RlPgorICogICAgIDxwPjxjb2RlPiR2b3dlbD1bYWVpb3VdOyAkdm93ZWwmZ3Q7JyonOyAjIE9uZSB3YXkgdG8gZG8gdGhpczxicj4KKyAqICAgICBbYWVpb3VdJmd0OycqJzsKKyAqICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsjCisgKiAgICAgQW5vdGhlciB3YXk8L2NvZGU+PC9wPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPlNlZSB7QGxpbmsgVW5pY29kZVNldH0gZm9yIG1vcmUgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXMuPC9wPgorICoKKyAqIDxwPjxiPlNlZ21lbnRzPC9iPjwvcD4KKyAqCisgKiA8cD5TZWdtZW50cyBvZiB0aGUgaW5wdXQgc3RyaW5nIGNhbiBiZSBtYXRjaGVkIGFuZCBjb3BpZWQgdG8gdGhlCisgKiBvdXRwdXQgc3RyaW5nLiBUaGlzIG1ha2VzIGNlcnRhaW4gc2V0cyBvZiBydWxlcyBzaW1wbGVyIGFuZCBtb3JlCisgKiBnZW5lcmFsLCBhbmQgbWFrZXMgcmVvcmRlcmluZyBwb3NzaWJsZS4gRm9yIGV4YW1wbGU6PC9wPgorICoKKyAqIDxibG9ja3F1b3RlPgorICogICAgIDxwPjxjb2RlPihbYS16XSkgJmd0OyAkMSAkMTsKKyAqICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsjCisgKiAgICAgZG91YmxlIGxvd2VyY2FzZSBsZXR0ZXJzPGJyPgorICogICAgIChbOkx1Ol0pIChbOkxsOl0pICZndDsgJDIgJDE7ICMgcmV2ZXJzZSBvcmRlciBvZiBMdS1MbCBwYWlyczwvY29kZT48L3A+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogPHA+VGhlIHNlZ21lbnQgb2YgdGhlIGlucHV0IHN0cmluZyB0byBiZSBjb3BpZWQgaXMgZGVsaW1pdGVkIGJ5CisgKiAmcXVvdDs8Y29kZT4oPC9jb2RlPiZxdW90OyBhbmQgJnF1b3Q7PGNvZGU+KTwvY29kZT4mcXVvdDsuIFVwIHRvCisgKiBuaW5lIHNlZ21lbnRzIG1heSBiZSBkZWZpbmVkLiBTZWdtZW50cyBtYXkgbm90IG92ZXJsYXAuIEluIHRoZQorICogb3V0cHV0IHN0cmluZywgJnF1b3Q7PGNvZGU+JDE8L2NvZGU+JnF1b3Q7IHRocm91Z2ggJnF1b3Q7PGNvZGU+JDk8L2NvZGU+JnF1b3Q7CisgKiByZXByZXNlbnQgdGhlIGlucHV0IHN0cmluZyBzZWdtZW50cywgaW4gbGVmdC10by1yaWdodCBvcmRlciBvZgorICogZGVmaW5pdGlvbi48L3A+CisgKgorICogPHA+PGI+QW5jaG9yczwvYj48L3A+CisgKgorICogPHA+UGF0dGVybnMgY2FuIGJlIGFuY2hvcmVkIHRvIHRoZSBiZWdpbm5pbmcgb3IgdGhlIGVuZCBvZiB0aGUgdGV4dC4gVGhpcyBpcyBkb25lIHdpdGggdGhlCisgKiBzcGVjaWFsIGNoYXJhY3RlcnMgJzxjb2RlPl48L2NvZGU+JyBhbmQgJzxjb2RlPiQ8L2NvZGU+Jy4gRm9yIGV4YW1wbGU6PC9wPgorICoKKyAqIDxibG9ja3F1b3RlPgorICogICA8cD48Y29kZT5eIGEmbmJzcDsmbmJzcDsgJmd0OyAnQkVHX0EnOyAmbmJzcDsmbmJzcDsjIG1hdGNoICdhJyBhdCBzdGFydCBvZiB0ZXh0PGJyPgorICogICAmbmJzcDsgYSZuYnNwOyZuYnNwOyAmZ3Q7ICdBJzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgIyBtYXRjaCBvdGhlciBpbnN0YW5jZXMKKyAqICAgb2YgJ2EnPGJyPgorICogICAmbmJzcDsgeiAkICZndDsgJ0VORF9aJzsgJm5ic3A7Jm5ic3A7IyBtYXRjaCAneicgYXQgZW5kIG9mIHRleHQ8YnI+CisgKiAgICZuYnNwOyB6Jm5ic3A7Jm5ic3A7ICZndDsgJ1onOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAjIG1hdGNoIG90aGVyIGluc3RhbmNlcworICogICBvZiAneic8L2NvZGU+PC9wPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPkl0IGlzIGFsc28gcG9zc2libGUgdG8gbWF0Y2ggdGhlIGJlZ2lubmluZyBvciB0aGUgZW5kIG9mIHRoZSB0ZXh0IHVzaW5nIGEgPGNvZGU+VW5pY29kZVNldDwvY29kZT4uCisgKiBUaGlzIGlzIGRvbmUgYnkgaW5jbHVkaW5nIGEgdmlydHVhbCBhbmNob3IgY2hhcmFjdGVyICc8Y29kZT4kPC9jb2RlPicgYXQgdGhlIGVuZCBvZiB0aGUKKyAqIHNldCBwYXR0ZXJuLiBBbHRob3VnaCB0aGlzIGlzIHVzdWFsbHkgdGhlIG1hdGNoIGNoYWZhY3RlciBmb3IgdGhlIGVuZCBhbmNob3IsIHRoZSBzZXQgd2lsbAorICogbWF0Y2ggZWl0aGVyIHRoZSBiZWdpbm5pbmcgb3IgdGhlIGVuZCBvZiB0aGUgdGV4dCwgZGVwZW5kaW5nIG9uIGl0cyBwbGFjZW1lbnQuIEZvcgorICogZXhhbXBsZTo8L3A+CisgKgorICogPGJsb2NrcXVvdGU+CisgKiAgIDxwPjxjb2RlPiR4ID0gW2EteiRdOyAmbmJzcDsmbmJzcDsjIG1hdGNoICdhJyB0aHJvdWdoICd6JyBPUiBhbmNob3I8YnI+CisgKiAgICR4IDEmbmJzcDsmbmJzcDsmbmJzcDsgJmd0OyAyOyZuYnNwOyZuYnNwOyAjIG1hdGNoICcxJyBhZnRlciBhLXogb3IgYXQgdGhlIHN0YXJ0PGJyPgorICogICAmbmJzcDsmbmJzcDsgMyAkeCAmZ3Q7IDQ7ICZuYnNwOyZuYnNwOyMgbWF0Y2ggJzMnIGJlZm9yZSBhLXogb3IgYXQgdGhlIGVuZDwvY29kZT48L3A+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogPHA+PGI+RXhhbXBsZTwvYj4gPC9wPgorICoKKyAqIDxwPlRoZSBmb2xsb3dpbmcgZXhhbXBsZSBydWxlcyBpbGx1c3RyYXRlIG1hbnkgb2YgdGhlIGZlYXR1cmVzIG9mCisgKiB0aGUgcnVsZSBsYW5ndWFnZS4gPC9wPgorICoKKyAqIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0Ij4KKyAqICAgICA8dHI+CisgKiAgICAgICAgIDx0ZCB2YWxpZ249InRvcCI+UnVsZSAxLjwvdGQ+CisgKiAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgbm93cmFwPjxjb2RlPmFiY3tkZWZ9Jmd0O3h8eTwvY29kZT48L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiPlJ1bGUgMi48L3RkPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiIG5vd3JhcD48Y29kZT54eXomZ3Q7cjwvY29kZT48L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiPlJ1bGUgMy48L3RkPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiIG5vd3JhcD48Y29kZT55eiZndDtxPC9jb2RlPjwvdGQ+CisgKiAgICAgPC90cj4KKyAqIDwvdGFibGU+CisgKgorICogPHA+QXBwbHlpbmcgdGhlc2UgcnVsZXMgdG8gdGhlIHN0cmluZyAmcXVvdDs8Y29kZT5hZGVmYWJjZGVmejwvY29kZT4mcXVvdDsKKyAqIHlpZWxkcyB0aGUgZm9sbG93aW5nIHJlc3VsdHM6IDwvcD4KKyAqCisgKiA8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCI+CisgKiAgICAgPHRyPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiIG5vd3JhcD48Y29kZT58YWRlZmFiY2RlZno8L2NvZGU+PC90ZD4KKyAqICAgICAgICAgPHRkIHZhbGlnbj0idG9wIj5Jbml0aWFsIHN0YXRlLCBubyBydWxlcyBtYXRjaC4gQWR2YW5jZQorICogICAgICAgICBjdXJzb3IuPC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0cj4KKyAqICAgICAgICAgPHRkIHZhbGlnbj0idG9wIiBub3dyYXA+PGNvZGU+YXxkZWZhYmNkZWZ6PC9jb2RlPjwvdGQ+CisgKiAgICAgICAgIDx0ZCB2YWxpZ249InRvcCI+U3RpbGwgbm8gbWF0Y2guIFJ1bGUgMSBkb2VzIG5vdCBtYXRjaAorICogICAgICAgICBiZWNhdXNlIHRoZSBwcmVjZWRpbmcgY29udGV4dCBpcyBub3QgcHJlc2VudC48L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiIG5vd3JhcD48Y29kZT5hZHxlZmFiY2RlZno8L2NvZGU+PC90ZD4KKyAqICAgICAgICAgPHRkIHZhbGlnbj0idG9wIj5TdGlsbCBubyBtYXRjaC4gS2VlcCBhZHZhbmNpbmcgdW50aWwKKyAqICAgICAgICAgdGhlcmUgaXMgYSBtYXRjaC4uLjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHI+CisgKiAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgbm93cmFwPjxjb2RlPmFkZXxmYWJjZGVmejwvY29kZT48L3RkPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiPi4uLjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHI+CisgKiAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgbm93cmFwPjxjb2RlPmFkZWZ8YWJjZGVmejwvY29kZT48L3RkPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiPi4uLjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHI+CisgKiAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgbm93cmFwPjxjb2RlPmFkZWZhfGJjZGVmejwvY29kZT48L3RkPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiPi4uLjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHI+CisgKiAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgbm93cmFwPjxjb2RlPmFkZWZhYnxjZGVmejwvY29kZT48L3RkPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiPi4uLjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHI+CisgKiAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgbm93cmFwPjxjb2RlPmFkZWZhYmN8ZGVmejwvY29kZT48L3RkPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiPlJ1bGUgMSBtYXRjaGVzOyByZXBsYWNlICZxdW90Ozxjb2RlPmRlZjwvY29kZT4mcXVvdDsKKyAqICAgICAgICAgd2l0aCAmcXVvdDs8Y29kZT54eTwvY29kZT4mcXVvdDsgYW5kIGJhY2sgdXAgdGhlIGN1cnNvcgorICogICAgICAgICB0byBiZWZvcmUgdGhlICc8Y29kZT55PC9jb2RlPicuPC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0cj4KKyAqICAgICAgICAgPHRkIHZhbGlnbj0idG9wIiBub3dyYXA+PGNvZGU+YWRlZmFiY3h8eXo8L2NvZGU+PC90ZD4KKyAqICAgICAgICAgPHRkIHZhbGlnbj0idG9wIj5BbHRob3VnaCAmcXVvdDs8Y29kZT54eXo8L2NvZGU+JnF1b3Q7IGlzCisgKiAgICAgICAgIHByZXNlbnQsIHJ1bGUgMiBkb2VzIG5vdCBtYXRjaCBiZWNhdXNlIHRoZSBjdXJzb3IgaXMKKyAqICAgICAgICAgYmVmb3JlIHRoZSAnPGNvZGU+eTwvY29kZT4nLCBub3QgYmVmb3JlIHRoZSAnPGNvZGU+eDwvY29kZT4nLgorICogICAgICAgICBSdWxlIDMgZG9lcyBtYXRjaC4gUmVwbGFjZSAmcXVvdDs8Y29kZT55ejwvY29kZT4mcXVvdDsKKyAqICAgICAgICAgd2l0aCAmcXVvdDs8Y29kZT5xPC9jb2RlPiZxdW90Oy48L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiIG5vd3JhcD48Y29kZT5hZGVmYWJjeHF8PC9jb2RlPjwvdGQ+CisgKiAgICAgICAgIDx0ZCB2YWxpZ249InRvcCI+VGhlIGN1cnNvciBpcyBhdCB0aGUgZW5kOworICogICAgICAgICB0cmFuc2xpdGVyYXRpb24gaXMgY29tcGxldGUuPC90ZD4KKyAqICAgICA8L3RyPgorICogPC90YWJsZT4KKyAqCisgKiA8cD5UaGUgb3JkZXIgb2YgcnVsZXMgaXMgc2lnbmlmaWNhbnQuIElmIG11bHRpcGxlIHJ1bGVzIG1heSBtYXRjaAorICogYXQgc29tZSBwb2ludCwgdGhlIGZpcnN0IG1hdGNoaW5nIHJ1bGUgaXMgYXBwbGllZC4gPC9wPgorICoKKyAqIDxwPkZvcndhcmQgYW5kIHJldmVyc2UgcnVsZXMgbWF5IGhhdmUgYW4gZW1wdHkgb3V0cHV0IHN0cmluZy4KKyAqIE90aGVyd2lzZSwgYW4gZW1wdHkgbGVmdCBvciByaWdodCBoYW5kIHNpZGUgb2YgYW55IHN0YXRlbWVudCBpcyBhCisgKiBzeW50YXggZXJyb3IuIDwvcD4KKyAqCisgKiA8cD5TaW5nbGUgcXVvdGVzIGFyZSB1c2VkIHRvIHF1b3RlIGFueSBjaGFyYWN0ZXIgb3RoZXIgdGhhbiBhCisgKiBkaWdpdCBvciBsZXR0ZXIuIFRvIHNwZWNpZnkgYSBzaW5nbGUgcXVvdGUgaXRzZWxmLCBpbnNpZGUgb3IKKyAqIG91dHNpZGUgb2YgcXVvdGVzLCB1c2UgdHdvIHNpbmdsZSBxdW90ZXMgaW4gYSByb3cuIEZvciBleGFtcGxlLAorICogdGhlIHJ1bGUgJnF1b3Q7PGNvZGU+JyZndDsnJmd0O28nJ2Nsb2NrPC9jb2RlPiZxdW90OyBjaGFuZ2VzIHRoZQorICogc3RyaW5nICZxdW90Ozxjb2RlPiZndDs8L2NvZGU+JnF1b3Q7IHRvIHRoZSBzdHJpbmcgJnF1b3Q7PGNvZGU+bydjbG9jazwvY29kZT4mcXVvdDsuCisgKiA8L3A+CisgKgorICogPHA+PGI+Tm90ZXM8L2I+IDwvcD4KKyAqCisgKiA8cD5XaGlsZSBhIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yIGlzIGJlaW5nIGJ1aWx0LCBpdCBjaGVja3MgdGhhdAorICogdGhlIHJ1bGVzIGFyZSBhZGRlZCBpbiBwcm9wZXIgb3JkZXIuIEZvciBleGFtcGxlLCBpZiB0aGUgcnVsZQorICogJnF1b3Q7YSZndDt4JnF1b3Q7IGlzIGZvbGxvd2VkIGJ5IHRoZSBydWxlICZxdW90O2FiJmd0O3kmcXVvdDssCisgKiB0aGVuIHRoZSBzZWNvbmQgcnVsZSB3aWxsIHRocm93IGFuIGV4Y2VwdGlvbi4gVGhlIHJlYXNvbiBpcyB0aGF0CisgKiB0aGUgc2Vjb25kIHJ1bGUgY2FuIG5ldmVyIGJlIHRyaWdnZXJlZCwgc2luY2UgdGhlIGZpcnN0IHJ1bGUKKyAqIGFsd2F5cyBtYXRjaGVzIGFueXRoaW5nIGl0IG1hdGNoZXMuIEluIG90aGVyIHdvcmRzLCB0aGUgZmlyc3QKKyAqIHJ1bGUgPGVtPm1hc2tzPC9lbT4gdGhlIHNlY29uZCBydWxlLiA8L3A+CisgKgorICogPHA+Q29weXJpZ2h0IChjKSBJQk0gQ29ycG9yYXRpb24gMTk5OS0yMDAwLiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvcD4KKyAqCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAdmVyc2lvbiAkUkNTZmlsZTogUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuamF2YSx2ICQgJFJldmlzaW9uOiAxLjU3ICQgJERhdGU6IDIwMDIvMDcvMjYgMjE6MTI6MzYgJAorICovCitwdWJsaWMgY2xhc3MgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IgZXh0ZW5kcyBUcmFuc2xpdGVyYXRvciB7CisKKyAgICBwcml2YXRlIERhdGEgZGF0YTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAiXHUwMEE5IElCTSBDb3Jwb3JhdGlvbiAxOTk5LiBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IHRyYW5zbGl0ZXJhdG9yIGZyb20gdGhlIGdpdmVuIHJ1bGVzLgorICAgICAqIEBwYXJhbSBydWxlcyBydWxlcywgc2VwYXJhdGVkIGJ5ICc7JworICAgICAqIEBwYXJhbSBkaXJlY3Rpb24gZWl0aGVyIEZPUldBUkQgb3IgUkVWRVJTRS4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBydWxlcyBhcmUgbWFsZm9ybWVkCisgICAgICogb3IgZGlyZWN0aW9uIGlzIGludmFsaWQuCisgICAgICovCisgICAgcHVibGljIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yKFN0cmluZyBJRCwgU3RyaW5nIHJ1bGVzLCBpbnQgZGlyZWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlRmlsdGVyIGZpbHRlcikgeworICAgICAgICBzdXBlcihJRCwgZmlsdGVyKTsKKyAgICAgICAgaWYgKGRpcmVjdGlvbiAhPSBGT1JXQVJEICYmIGRpcmVjdGlvbiAhPSBSRVZFUlNFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGRpcmVjdGlvbiIpOworICAgICAgICB9CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3JQYXJzZXIgcGFyc2VyID0gbmV3IFRyYW5zbGl0ZXJhdG9yUGFyc2VyKCk7CisgICAgICAgIHBhcnNlci5wYXJzZShydWxlcywgZGlyZWN0aW9uKTsKKyAgICAgICAgaWYgKHBhcnNlci5pZEJsb2NrLmxlbmd0aCgpICE9IDAgfHwKKyAgICAgICAgICAgIHBhcnNlci5jb21wb3VuZEZpbHRlciAhPSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCI6OklEIGJsb2NrcyBpbGxlZ2FsIGluIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yIGNvbnN0cnVjdG9yIik7CisgICAgICAgIH0KKworICAgICAgICBkYXRhID0gcGFyc2VyLmRhdGE7CisgICAgICAgIHNldE1heGltdW1Db250ZXh0TGVuZ3RoKGRhdGEucnVsZVNldC5nZXRNYXhpbXVtQ29udGV4dExlbmd0aCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IHRyYW5zbGl0ZXJhdG9yIGZyb20gdGhlIGdpdmVuIHJ1bGVzIGluIHRoZQorICAgICAqIDxjb2RlPkZPUldBUkQ8L2NvZGU+IGRpcmVjdGlvbi4KKyAgICAgKiBAcGFyYW0gcnVsZXMgcnVsZXMsIHNlcGFyYXRlZCBieSAnOycKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBydWxlcyBhcmUgbWFsZm9ybWVkCisgICAgICogb3IgZGlyZWN0aW9uIGlzIGludmFsaWQuCisgICAgICovCisgICAgcHVibGljIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yKFN0cmluZyBJRCwgU3RyaW5nIHJ1bGVzKSB7CisgICAgICAgIHRoaXMoSUQsIHJ1bGVzLCBGT1JXQVJELCBudWxsKTsKKyAgICB9CisKKyAgICBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvcihTdHJpbmcgSUQsIERhdGEgZGF0YSwgVW5pY29kZUZpbHRlciBmaWx0ZXIpIHsKKyAgICAgICAgc3VwZXIoSUQsIGZpbHRlcik7CisgICAgICAgIHRoaXMuZGF0YSA9IGRhdGE7CisgICAgICAgIHNldE1heGltdW1Db250ZXh0TGVuZ3RoKGRhdGEucnVsZVNldC5nZXRNYXhpbXVtQ29udGV4dExlbmd0aCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRzIHtAbGluayBUcmFuc2xpdGVyYXRvciNoYW5kbGVUcmFuc2xpdGVyYXRlfS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVUcmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbiBpbmRleCwgYm9vbGVhbiBpbmNyZW1lbnRhbCkgeworICAgICAgICAvKiBXZSBrZWVwIHN0YXJ0IGFuZCBsaW1pdCBmaXhlZCB0aGUgZW50aXJlIHRpbWUsCisgICAgICAgICAqIHJlbGF0aXZlIHRvIHRoZSB0ZXh0IC0tIGxpbWl0IG1heSBtb3ZlIG51bWVyaWNhbGx5IGlmIHRleHQgaXMKKyAgICAgICAgICogaW5zZXJ0ZWQgb3IgcmVtb3ZlZC4gIFRoZSBjdXJzb3IgbW92ZXMgZnJvbSBzdGFydCB0byBsaW1pdCwgd2l0aAorICAgICAgICAgKiByZXBsYWNlbWVudHMgaGFwcGVuaW5nIHVuZGVyIGl0LgorICAgICAgICAgKgorICAgICAgICAgKiBFeGFtcGxlOiBydWxlcyAxLiBhYj54fHkKKyAgICAgICAgICogICAgICAgICAgICAgICAgMi4geWM+egorICAgICAgICAgKgorICAgICAgICAgKiB8ZWFiY2QgICBzdGFydCAtIG5vIG1hdGNoLCBhZHZhbmNlIGN1cnNvcgorICAgICAgICAgKiBlfGFiY2QgICBtYXRjaCBydWxlIDEgLSBjaGFuZ2UgdGV4dCAmIGFkanVzdCBjdXJzb3IKKyAgICAgICAgICogZXh8eWNkICAgbWF0Y2ggcnVsZSAyIC0gY2hhbmdlIHRleHQgJiBhZGp1c3QgY3Vyc29yCisgICAgICAgICAqIGV4enxkICAgIG5vIG1hdGNoLCBhZHZhbmNlIGN1cnNvcgorICAgICAgICAgKiBleHpkfCAgICBkb25lCisgICAgICAgICAqLworCisgICAgICAgIC8qIEEgcnVsZSBsaWtlCisgICAgICAgICAqICAgYT5ifGEKKyAgICAgICAgICogY3JlYXRlcyBhbiBpbmZpbml0ZSBsb29wLiBUbyBwcmV2ZW50IHRoYXQsIHdlIHB1dCBhbiBhcmJpdHJhcnkKKyAgICAgICAgICogbGltaXQgb24gdGhlIG51bWJlciBvZiBpdGVyYXRpb25zIHRoYXQgd2UgdGFrZSwgb25lIHRoYXQgaXMKKyAgICAgICAgICogaGlnaCBlbm91Z2ggdGhhdCBhbnkgcmVhc29uYWJsZSBydWxlcyBhcmUgb2ssIGJ1dCBsb3cgZW5vdWdoIHRvCisgICAgICAgICAqIHByZXZlbnQgYSBzZXJ2ZXIgZnJvbSBoYW5naW5nLiAgVGhlIGxpbWl0IGlzIDE2IHRpbWVzIHRoZQorICAgICAgICAgKiBudW1iZXIgb2YgY2hhcmFjdGVycyBuLCB1bmxlc3MgbiBpcyBzbyBsYXJnZSB0aGF0IDE2biBleGNlZWRzIGEKKyAgICAgICAgICogdWludDMyX3QuCisgICAgICAgICAqLworICAgICAgICBpbnQgbG9vcENvdW50ID0gMDsKKyAgICAgICAgaW50IGxvb3BMaW1pdCA9IChpbmRleC5saW1pdCAtIGluZGV4LnN0YXJ0KSA8PCA0OworICAgICAgICBpZiAobG9vcExpbWl0IDwgMCkgeworICAgICAgICAgICAgbG9vcExpbWl0ID0gMHg3RkZGRkZGRjsKKyAgICAgICAgfQorCisgICAgICAgIHdoaWxlIChpbmRleC5zdGFydCA8IGluZGV4LmxpbWl0ICYmCisgICAgICAgICAgICAgICBsb29wQ291bnQgPD0gbG9vcExpbWl0ICYmCisgICAgICAgICAgICAgICBkYXRhLnJ1bGVTZXQudHJhbnNsaXRlcmF0ZSh0ZXh0LCBpbmRleCwgaW5jcmVtZW50YWwpKSB7CisgICAgICAgICAgICArK2xvb3BDb3VudDsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgc3RhdGljIGNsYXNzIERhdGEgeworICAgICAgICBwdWJsaWMgRGF0YSgpIHsKKyAgICAgICAgICAgIHZhcmlhYmxlTmFtZXMgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgICAgICBydWxlU2V0ID0gbmV3IFRyYW5zbGl0ZXJhdGlvblJ1bGVTZXQoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSdWxlIHRhYmxlLiAgTWF5IGJlIGVtcHR5LgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdGlvblJ1bGVTZXQgcnVsZVNldDsKKworICAgICAgICAvKioKKyAgICAgICAgICogTWFwIHZhcmlhYmxlIG5hbWUgKFN0cmluZykgdG8gdmFyaWFibGUgKGNoYXJbXSkuICBBIHZhcmlhYmxlIG5hbWUKKyAgICAgICAgICogY29ycmVzcG9uZHMgdG8gemVybyBvciBtb3JlIGNoYXJhY3RlcnMsIHN0b3JlZCBpbiBhIGNoYXJbXSBhcnJheSBpbgorICAgICAgICAgKiB0aGlzIGhhc2guICBPbmUgb3IgbW9yZSBvZiB0aGVzZSBjaGFycyBtYXkgYWxzbyBjb3JyZXNwb25kIHRvIGEKKyAgICAgICAgICogVW5pY29kZVNldCwgaW4gd2hpY2ggY2FzZSB0aGUgY2hhcmFjdGVyIGluIHRoZSBjaGFyW10gaW4gdGhpcyBoYXNoIGlzCisgICAgICAgICAqIGEgc3RhbmQtaW46IGl0IGlzIGFuIGluZGV4IGZvciBhIHNlY29uZGFyeSBsb29rdXAgaW4KKyAgICAgICAgICogZGF0YS52YXJpYWJsZXMuICBUaGUgc3RhbmQtaW4gYWxzbyByZXByZXNlbnRzIHRoZSBVbmljb2RlU2V0IGluCisgICAgICAgICAqIHRoZSBzdG9yZWQgcnVsZXMuCisgICAgICAgICAqLworICAgICAgICBIYXNodGFibGUgdmFyaWFibGVOYW1lczsKKworICAgICAgICAvKioKKyAgICAgICAgICogTWFwIGNhdGVnb3J5IHZhcmlhYmxlIChDaGFyYWN0ZXIpIHRvIFVuaWNvZGVNYXRjaGVyIG9yIFVuaWNvZGVSZXBsYWNlci4KKyAgICAgICAgICogVmFyaWFibGVzIHRoYXQgY29ycmVzcG9uZCB0byBhIHNldCBvZiBjaGFyYWN0ZXJzIGFyZSBtYXBwZWQKKyAgICAgICAgICogZnJvbSB2YXJpYWJsZSBuYW1lIHRvIGEgc3RhbmQtaW4gY2hhcmFjdGVyIGluIGRhdGEudmFyaWFibGVOYW1lcy4KKyAgICAgICAgICogVGhlIHN0YW5kLWluIHRoZW4gc2VydmVzIGFzIGEga2V5IGluIHRoaXMgaGFzaCB0byBsb29rdXAgdGhlCisgICAgICAgICAqIGFjdHVhbCBVbmljb2RlU2V0IG9iamVjdC4gIEluIGFkZGl0aW9uLCB0aGUgc3RhbmQtaW4gaXMKKyAgICAgICAgICogc3RvcmVkIGluIHRoZSBydWxlIHRleHQgdG8gcmVwcmVzZW50IHRoZSBzZXQgb2YgY2hhcmFjdGVycy4KKyAgICAgICAgICogdmFyaWFibGVzW2ldIHJlcHJlc2VudHMgY2hhcmFjdGVyICh2YXJpYWJsZXNCYXNlICsgaSkuCisgICAgICAgICAqLworICAgICAgICBPYmplY3RbXSB2YXJpYWJsZXM7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBjaGFyYWN0ZXIgdGhhdCByZXByZXNlbnRzIHZhcmlhYmxlc1swXS4gIENoYXJhY3RlcnMKKyAgICAgICAgICogdmFyaWFibGVzQmFzZSB0aHJvdWdoIHZhcmlhYmxlc0Jhc2UgKworICAgICAgICAgKiB2YXJpYWJsZXMubGVuZ3RoIC0gMSByZXByZXNlbnQgVW5pY29kZVNldCBvYmplY3RzLgorICAgICAgICAgKi8KKyAgICAgICAgY2hhciB2YXJpYWJsZXNCYXNlOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gdGhlIFVuaWNvZGVNYXRjaGVyIHJlcHJlc2VudGVkIGJ5IHRoZSBnaXZlbiBjaGFyYWN0ZXIsIG9yCisgICAgICAgICAqIG51bGwgaWYgbm9uZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBVbmljb2RlTWF0Y2hlciBsb29rdXBNYXRjaGVyKGludCBzdGFuZEluKSB7CisgICAgICAgICAgICBpbnQgaSA9IHN0YW5kSW4gLSB2YXJpYWJsZXNCYXNlOworICAgICAgICAgICAgcmV0dXJuIChpID49IDAgJiYgaSA8IHZhcmlhYmxlcy5sZW5ndGgpCisgICAgICAgICAgICAgICAgPyAoVW5pY29kZU1hdGNoZXIpIHZhcmlhYmxlc1tpXSA6IG51bGw7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIHRoZSBVbmljb2RlUmVwbGFjZXIgcmVwcmVzZW50ZWQgYnkgdGhlIGdpdmVuIGNoYXJhY3Rlciwgb3IKKyAgICAgICAgICogbnVsbCBpZiBub25lLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFVuaWNvZGVSZXBsYWNlciBsb29rdXBSZXBsYWNlcihpbnQgc3RhbmRJbikgeworICAgICAgICAgICAgaW50IGkgPSBzdGFuZEluIC0gdmFyaWFibGVzQmFzZTsKKyAgICAgICAgICAgIHJldHVybiAoaSA+PSAwICYmIGkgPCB2YXJpYWJsZXMubGVuZ3RoKQorICAgICAgICAgICAgICAgID8gKFVuaWNvZGVSZXBsYWNlcikgdmFyaWFibGVzW2ldIDogbnVsbDsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgcmVwcmVzZW50YXRpb24gb2YgdGhpcyB0cmFuc2xpdGVyYXRvciBhcyBzb3VyY2UgcnVsZXMuCisgICAgICogVGhlc2UgcnVsZXMgd2lsbCBwcm9kdWNlIGFuIGVxdWl2YWxlbnQgdHJhbnNsaXRlcmF0b3IgaWYgdXNlZAorICAgICAqIHRvIGNvbnN0cnVjdCBhIG5ldyB0cmFuc2xpdGVyYXRvci4KKyAgICAgKiBAcGFyYW0gZXNjYXBlVW5wcmludGFibGUgaWYgVFJVRSB0aGVuIGNvbnZlcnQgdW5wcmludGFibGUKKyAgICAgKiBjaGFyYWN0ZXIgdG8gdGhlaXIgaGV4IGVzY2FwZSByZXByZXNlbnRhdGlvbnMsIFxcdXh4eHggb3IKKyAgICAgKiBcXFV4eHh4eHh4eC4gIFVucHJpbnRhYmxlIGNoYXJhY3RlcnMgYXJlIHRob3NlIG90aGVyIHRoYW4KKyAgICAgKiBVKzAwMEEsIFUrMDAyMC4uVSswMDdFLgorICAgICAqIEByZXR1cm4gcnVsZXMgc3RyaW5nCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1J1bGVzKGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUpIHsKKyAgICAgICAgcmV0dXJuIGRhdGEucnVsZVNldC50b1J1bGVzKGVzY2FwZVVucHJpbnRhYmxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHNldCBvZiBhbGwgY2hhcmFjdGVycyB0aGF0IG1heSBiZSBtb2RpZmllZCBieSB0aGlzCisgICAgICogVHJhbnNsaXRlcmF0b3IsIGlnbm9yaW5nIHRoZSBlZmZlY3Qgb2Ygb3VyIGZpbHRlci4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgVW5pY29kZVNldCBoYW5kbGVHZXRTb3VyY2VTZXQoKSB7CisgICAgICAgIHJldHVybiBkYXRhLnJ1bGVTZXQuZ2V0U291cmNlVGFyZ2V0U2V0KGZhbHNlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBzZXQgb2YgYWxsIGNoYXJhY3RlcnMgdGhhdCBtYXkgYmUgZ2VuZXJhdGVkIGFzCisgICAgICogcmVwbGFjZW1lbnQgdGV4dCBieSB0aGlzIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlU2V0IGdldFRhcmdldFNldCgpIHsKKyAgICAgICAgcmV0dXJuIGRhdGEucnVsZVNldC5nZXRTb3VyY2VUYXJnZXRTZXQodHJ1ZSk7CisgICAgfQorfQorCisvKioKKyAqICRMb2c6IFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLmphdmEsdiAkCisgKiBSZXZpc2lvbiAxLjU3ICAyMDAyLzA3LzI2IDIxOjEyOjM2ICBhbGFuCisgKiBqaXR0ZXJidWcgMTk5NzogdXNlIFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKCkgaW4gcGFyc2VycworICoKKyAqIFJldmlzaW9uIDEuNTYgIDIwMDIvMDYvMjggMTk6MTU6NTIgIGFsYW4KKyAqIGppdHRlcmJ1ZyAxNDM0OiBpbXByb3ZlIG1ldGhvZCBuYW1lczsgbWlub3IgY2xlYW51cAorICoKKyAqIFJldmlzaW9uIDEuNTUgIDIwMDIvMDYvMjYgMTg6MTI6MzkgIGFsYW4KKyAqIGppdHRlcmJ1ZyAxNDM0OiBpbml0aWFsIHB1YmxpYyBpbXBsZW1lbnRhdGlvbiBvZiBnZXRTb3VyY2VTZXQgYW5kIGdldFRhcmdldFNldAorICoKKyAqIFJldmlzaW9uIDEuNTQgIDIwMDIvMDIvMjUgMjI6NDM6NTggIHJhbQorICogTW92ZSBVdGlsaXR5IGNsYXNzIHRvIGljdS5pbXBsCisgKgorICogUmV2aXNpb24gMS41MyAgMjAwMi8wMi8xNiAwMzowNjoxMyAgTW9oYW4KKyAqIElDVTRKIHJlb3JnYW5pemF0aW9uCisgKgorICogUmV2aXNpb24gMS41MiAgMjAwMi8wMi8wNyAwMDo1Mzo1NCAgYWxhbgorICogaml0dGVyYnVnIDEyMzQ6IG1ha2Ugb3V0cHV0IHNpZGUgb2YgUkJUcyBvYmplY3Qtb3JpZW50ZWQ7IHJld3JpdGUgSUQgcGFyc2VycyBhbmQgbW9kdWxhcml6ZSB0aGVtOyBpbXBsZW1lbnQgJkFueS1Mb3dlcigpIHN1cHBvcnQKKyAqCisgKiBSZXZpc2lvbiAxLjUxICAyMDAxLzExLzI5IDIyOjMxOjE4ICBhbGFuCisgKiBqaXR0ZXJidWcgMTU2MDogYWRkIHNvdXJjZS1zZXQgbWV0aG9kcyBhbmQgVHJhbnNsaXRlcmF0b3JVdGlsaXR5IGNsYXNzCisgKgorICogUmV2aXNpb24gMS41MCAgMjAwMS8xMS8yNyAyMjowNzozMyAgYWxhbgorICogaml0dGVyYnVnIDEzODk6IGluY29ycG9yYXRlIE1hcmsncyByZXZpZXcgY29tbWVudHMgLSBjb21tZW50cyBvbmx5CisgKgorICogUmV2aXNpb24gMS40OSAgMjAwMS8xMC8xMCAyMDoyNjoyNyAgYWxhbgorICogaml0dGVyYnVnIDgxOiBpbml0aWFsIGltcGxlbWVudGF0aW9uIG9mIGNvbXBvdW5kIGZpbHRlcnMgaW4gSURzIGFuZCA6OklEIGJsb2NrcworICoKKyAqIFJldmlzaW9uIDEuNDggIDIwMDEvMTAvMDUgMTg6MTU6NTQgIGFsYW4KKyAqIGppdHRlcmJ1ZyA3NDogZmluaXNoIHBvcnQgb2YgU291cmNlLVRhcmdldC9WYXJpYW50IGNvZGUgaW5jbC4gVHJhbnNsaXRlcmF0b3JSZWdpc3RyeSBhbmQgdGVzdHMKKyAqCisgKiBSZXZpc2lvbiAxLjQ3ICAyMDAxLzEwLzAzIDAwOjE0OjIyICBhbGFuCisgKiBqaXR0ZXJidWcgNzM6IGZpbmlzaCBxdWFudGlmaWVyIGFuZCBzdXBwbGVtZW50YWwgY2hhciBzdXBwb3J0CisgKgorICogUmV2aXNpb24gMS40NiAgMjAwMS8wOS8yNiAxODowMDowNiAgYWxhbgorICogaml0dGVyYnVnIDY3OiBzeW5jIHBhcnNlciB3aXRoIGljdTRjLCBhbGxvdyB1bmxpbWl0ZWQsIG5lc3RlZCBzZWdtZW50cworICoKKyAqIFJldmlzaW9uIDEuNDUgIDIwMDEvMDkvMjQgMTk6NTc6MTcgIGFsYW4KKyAqIGppdHRlcmJ1ZyA2MDogaW1wbGVtZW50IHRvUGF0dGVybiBpbiBVbmljb2RlU2V0OyB1cGRhdGUgVW5pY29kZUZpbHRlci5jb250YWlucyB0byB0YWtlIGFuIGludDsgdXBkYXRlIFVuaWNvZGVTZXQgdG8gc3VwcG9ydCBjb2RlIHBvaW50cyB0byBVKzEwRkZGRgorICoKKyAqIFJldmlzaW9uIDEuNDQgIDIwMDEvMDkvMjEgMjE6MjQ6MDQgIGFsYW4KKyAqIGppdHRlcmJ1ZyA2NDogYWxsb3cgOjpJRCBibG9ja3MgaW4gcnVsZXMKKyAqCisgKiBSZXZpc2lvbiAxLjQzICAyMDAxLzA5LzE5IDE3OjQzOjM3ICBhbGFuCisgKiBqaXR0ZXJidWcgNjA6IGluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgdG9SdWxlcygpCisgKgorICogUmV2aXNpb24gMS40MiAgMjAwMS8wMi8yMCAxNzo1OTo0MCAgYWxhbjRqCisgKiBSZW1vdmUgYmFja3NsYXNoLXUgZnJvbSBsb2cKKyAqCisgKiBSZXZpc2lvbiAxLjQxICAyMDAxLzAyLzE2IDE4OjUzOjU1ICBhbGFuNGoKKyAqIEhhbmRsZSBiYWNrc2xhc2gtdSBlc2NhcGVzCisgKgorICogUmV2aXNpb24gMS40MCAgMjAwMS8wMi8wMyAwMDo0NjoyMSAgYWxhbjRqCisgKiBMb2FkIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yIGZpbGVzIGZyb20gVVRGOCBmaWxlcyBpbnN0ZWFkIG9mIFJlc291cmNlQnVuZGxlcworICoKKyAqIFJldmlzaW9uIDEuMzkgIDIwMDAvMDgvMzEgMTc6MTE6NDIgIGFsYW40agorICogSW1wbGVtZW50IGFuY2hvcnMuCisgKgorICogUmV2aXNpb24gMS4zOCAgMjAwMC8wOC8zMCAyMDo0MDozMCAgYWxhbjRqCisgKiBJbXBsZW1lbnQgYW5jaG9ycy4KKyAqCisgKiBSZXZpc2lvbiAxLjM3ICAyMDAwLzA3LzEyIDE2OjMxOjM2ICBhbGFuNGoKKyAqIFNpbXBsaWZ5IGxvb3AgbGltaXQgbG9naWMKKyAqCisgKiBSZXZpc2lvbiAxLjM2ICAyMDAwLzA2LzI5IDIxOjU5OjIzICBhbGFuNGoKKyAqIEZpeCBoYW5kbGluZyBvZiBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBmaWVsZHMKKyAqCisgKiBSZXZpc2lvbiAxLjM1ICAyMDAwLzA2LzI4IDIwOjQ5OjU0ICBhbGFuNGoKKyAqIEZpeCBoYW5kbGluZyBvZiBQb3NpdGlvbnMgZmllbGRzCisgKgorICogUmV2aXNpb24gMS4zNCAgMjAwMC8wNi8yOCAyMDozNjozMiAgYWxhbjRqCisgKiBDbGVhbiB1cCBUcmFuc2xpdGVyYXRvcjo6UG9zaXRpb24gLSByZW5hbWUgdGVtcG9yYXJ5IG5hbWVzCisgKgorICogUmV2aXNpb24gMS4zMyAgMjAwMC8wNi8yOCAyMDozMTo0MyAgYWxhbjRqCisgKiBDbGVhbiB1cCBUcmFuc2xpdGVyYXRvcjo6UG9zaXRpb24gYW5kIHJlbmFtZSBmaWVsZHMgKHJlbGF0ZWQgdG8gaml0dGVyYnVnIDQ1MCkKKyAqCisgKiBSZXZpc2lvbiAxLjMyICAyMDAwLzA1LzI0IDIyOjIxOjAwICBhbGFuNGoKKyAqIENvbXBhY3QgVW5pY29kZVNldHMKKyAqCisgKiBSZXZpc2lvbiAxLjMxICAyMDAwLzA1LzIzIDE2OjQ4OjI3ICBhbGFuNGoKKyAqIEZpeCBkb2M7IHJlbW92ZSB1bnVzZWQgYXV0bworICoKKyAqIFJldmlzaW9uIDEuMzAgIDIwMDAvMDUvMTggMjI6NDk6NTEgIGFsYW4KKyAqIFVwZGF0ZSBkb2NzCisgKgorICogUmV2aXNpb24gMS4yOSAgMjAwMC8wNC8yOCAwMDoyNTo0MiAgYWxhbgorICogSW1wcm92ZSBlcnJvciByZXBvcnRpbmcKKyAqCisgKiBSZXZpc2lvbiAxLjI4ICAyMDAwLzA0LzI1IDE3OjM4OjAwICBhbGFuCisgKiBNaW5vciBwYXJzZXIgY2xlYW51cC4KKyAqCisgKiBSZXZpc2lvbiAxLjI3ICAyMDAwLzA0LzI1IDAxOjQyOjU4ICBhbGFuCisgKiBBbGxvdyBhcmJpdHJhcnkgbGVuZ3RoIHZhcmlhYmxlIHZhbHVlcy4gQ2xlYW4gdXAgRGF0YSBBUEkuIFVwZGF0ZSBqYXZhZG9jcy4KKyAqCisgKiBSZXZpc2lvbiAxLjI2ICAyMDAwLzA0LzIyIDAxOjI1OjEwICBhbGFuCisgKiBBZGQgc3VwcG9ydCBmb3IgY3Vyc29yIHBvc2l0aW9uZXIgJ0AnOyB1cGRhdGUgamF2YWRvYworICoKKyAqIFJldmlzaW9uIDEuMjUgIDIwMDAvMDQvMjIgMDA6MDg6NDMgIGFsYW4KKyAqIE5hcnJvdyByYW5nZSB0byAyMSAtIDdFIGZvciBtYW5kYXRvcnkgcXVvdGluZy4KKyAqCisgKiBSZXZpc2lvbiAxLjI0ICAyMDAwLzA0LzIyIDAwOjAzOjU0ICBhbGFuCisgKiBEaXNhbGxvdyB1bnF1b3RlZCBzcGVjaWFsIGNoYXJzLiBSZXBvcnQgbXVsdGlwbGUgZXJyb3JzIGF0IG9uY2UuCisgKgorICogUmV2aXNpb24gMS4yMyAgMjAwMC8wNC8yMSAyMjoyMzo0MCAgYWxhbgorICogQ2xlYW4gdXAgcGFyc2VSZWZlcmVuY2UuIFByZXZpb3VzIGxvZyBzaG91bGQgcmVhZCAnZGVsZWdhdGUnLCBub3QgJ2RlbGV0ZScuCisgKgorICogUmV2aXNpb24gMS4yMiAgMjAwMC8wNC8yMSAyMjoxNjoyOSAgYWxhbgorICogRGVsZXRlIHZhcmlhYmxlIG5hbWUgcGFyc2luZyB0byBTeW1ib2xUYWJsZSBpbnRlcmZhY2UgdG8gY29uc29saWRhdGUgcGFyc2luZyBjb2RlLgorICoKKyAqIFJldmlzaW9uIDEuMjEgIDIwMDAvMDQvMjEgMjE6MTY6NDAgIGFsYW4KKyAqIE1vZGlmeSBydWxlIHN5bnRheAorICoKKyAqIFJldmlzaW9uIDEuMjAgIDIwMDAvMDQvMTkgMTc6MzU6MjMgIGFsYW4KKyAqIFVwZGF0ZSBqYXZhZG9jOyBmaXggY29tcGlsZSBlcnJvcgorICoKKyAqIFJldmlzaW9uIDEuMTkgIDIwMDAvMDQvMTkgMTY6MzQ6MTggIGFsYW4KKyAqIEFkZCBzZWdtZW50IHN1cHBvcnQuCisgKgorICogUmV2aXNpb24gMS4xOCAgMjAwMC8wNC8xMiAyMDoxNzo0NSAgYWxhbgorICogRGVsZWdhdGUgcmVwbGFjZSBvcGVyYXRpb24gdG8gcnVsZSBvYmplY3QKKyAqCisgKiBSZXZpc2lvbiAxLjE3ICAyMDAwLzAzLzEwIDA0OjA3OjIzICBqb2huZgorICogQ29weXJpZ2h0IHVwZGF0ZQorICoKKyAqIFJldmlzaW9uIDEuMTYgIDIwMDAvMDIvMjQgMjA6NDY6NDkgIGxpdQorICogQWRkIGluZmluaXRlIGxvb3AgY2hlY2sKKyAqCisgKiBSZXZpc2lvbiAxLjE1ICAyMDAwLzAyLzEwIDA3OjM2OjI1ICBqb2huZgorICogZml4ZWQgaW1wb3J0cyBmb3IgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5CisgKgorICogUmV2aXNpb24gMS4xNCAgMjAwMC8wMi8wMyAxODoxODo0MiAgQWxhbgorICogVXNlIGFycmF5IHJhdGhlciB0aGFuIGhhc2h0YWJsZSBmb3IgY2hhci10by1zZXQgbWFwCisgKgorICogUmV2aXNpb24gMS4xMyAgMjAwMC8wMS8yNyAxODo1OToxOSAgQWxhbgorICogVXNlIFBvc2l0aW9uIHJhdGhlciB0aGFuIGludFtdIGFuZCBtb3ZlIGFsbCBzdWJjbGFzcyBvdmVycmlkZXMgdG8gb25lIG1ldGhvZCAoaGFuZGxlVHJhbnNsaXRlcmF0ZSkKKyAqCisgKiBSZXZpc2lvbiAxLjEyICAyMDAwLzAxLzE4IDE3OjUxOjA5ICBBbGFuCisgKiBSZW1vdmUgImtleWJvYXJkIiBmcm9tIG1ldGhvZCBuYW1lcy4gTWFrZSBtYXhpbXVtIGNvbnRleHQgYSBmaWVsZCBvZiBUcmFuc2xpdGVyYXRvciwgYW5kIGhhdmUgc3ViY2xhc3NlcyBzZXQgaXQuCisgKgorICogUmV2aXNpb24gMS4xMSAgMjAwMC8wMS8xOCAwMjozMDo0OSAgQWxhbgorICogQWRkIEphbW8tSGFuZ3VsLCBIYW5ndWwtSmFtbywgZml4IHJ1bGVzLCBhZGQgY29tcG91bmQgSUQgc3VwcG9ydAorICoKKyAqIFJldmlzaW9uIDEuMTAgIDIwMDAvMDEvMTMgMjM6NTM6MjMgIEFsYW4KKyAqIEZpeCBidWdzIGZvdW5kIGR1cmluZyBJQ1UgcG9ydAorICoKKyAqIFJldmlzaW9uIDEuOSAgMjAwMC8wMS8xMSAwNDoxMjowNiAgQWxhbgorICogQ2xlYW51cCwgZW1iZWxsaXNoIGNvbW1lbnRzCisgKgorICogUmV2aXNpb24gMS44ICAyMDAwLzAxLzExIDAyOjI1OjAzICBBbGFuCisgKiBSZXdyaXRlIFVuaWNvZGVTZXQgYW5kIFJCVCBwYXJzZXJzIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UgYW5kIG5ldyBzeW50YXgKKyAqCisgKiBSZXZpc2lvbiAxLjcgIDIwMDAvMDEvMDYgMDE6MzY6MzYgIEFsYW4KKyAqIEFsbG93IHN0cmluZyBhcnJheXMgaW4gcnVsZSByZXNvdXJjZSBidW5kbGVzCisgKgorICogUmV2aXNpb24gMS42ICAyMDAwLzAxLzA0IDIxOjQzOjU3ICBBbGFuCisgKiBBZGQgcnVsZSBpbmRleGluZywgYW5kIG1vdmUgbWFza2luZyBjaGVjayB0byBUcmFuc2xpdGVyYXRpb25SdWxlU2V0LgorICoKKyAqIFJldmlzaW9uIDEuNSAgMTk5OS8xMi8yMiAwMTo0MDo1NCAgQWxhbgorICogQ29uc29saWRhdGUgcnVsZSBwYXR0ZXJuIGFudGVDb250ZXh0LCBrZXksIGFuZCBwb3N0Q29udGV4dCBpbnRvIG9uZSBzdHJpbmcuCisgKgorICogUmV2aXNpb24gMS40ICAxOTk5LzEyLzIyIDAxOjA1OjU0ICBBbGFuCisgKiBJbXByb3ZlIG1hc2tpbmcgY2hlY2tpbmc7IHR1cm4gaXQgb2ZmIGJ5IGRlZmF1bHQsIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UKKyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvU0NTVS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvU0NTVS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjkzMWQ0MDIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9TQ1NVLmphdmEKQEAgLTAsMCArMSwxOTAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS90ZXh0L1NDU1UuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNjoxNCAkIAorICogJFJldmlzaW9uOiAxLjMgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworLyoqCisgKiBBbiBpbnRlcmZhY2UgZGVmaW5pbmcgIGNvbnN0YW50cyBmb3IgdGhlIFN0YW5kYXJkIENvbXByZXNzaW9uIFNjaGVtZQorICogZm9yIFVuaWNvZGUgKFNDU1UpIGFzIG91dGxpbmVkIGluIDxBCisgKiBIUkVGPSJodHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjYiPlVuaWNvZGUgVGVjaG5pY2FsCisgKiBSZXBvcnQgIzY8L0E+LgorICoKKyAqIEBhdXRob3IgU3RlcGhlbiBGLiBCb290aAorICogQHZlcnNpb24gMS4xIDA1IEF1ZyA5OQorICogQHZlcnNpb24gMS4wIDI2IEp1bCA5OQorICovCitpbnRlcmZhY2UgU0NTVQoreworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBHZW5lcmljIHdpbmRvdyBzaGlmdAorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBmaW5hbCBzdGF0aWMgaW50IENPTVBSRVNTSU9OT0ZGU0VUICAgICAgICAgICA9IDB4ODA7CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gTnVtYmVyIG9mIHdpbmRvd3MKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgZmluYWwgc3RhdGljIGludCBOVU1XSU5ET1dTICAgICAgICAgICAgICAgICAgPSA4OworICAgIGZpbmFsIHN0YXRpYyBpbnQgTlVNU1RBVElDV0lORE9XUyAgICAgICAgICAgID0gODsKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBJbmRpY2F0ZXMgYSB3aW5kb3cgaW5kZXggaXMgaW52YWxpZAorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBmaW5hbCBzdGF0aWMgaW50IElOVkFMSURXSU5ET1cgICAgICAgICAgICAgICA9IC0xOworCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIEluZGljYXRlcyBhIGNoYXJhY3RlciBkb2Vzbid0IGV4aXN0IGluIGlucHV0IChwYXN0IGVuZCBvZiBidWZmZXIpCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIGZpbmFsIHN0YXRpYyBpbnQgSU5WQUxJRENIQVIgICAgICAgICAgICAgICAgID0gLTE7CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gQ29tcHJlc3Npb24gbW9kZXMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgZmluYWwgc3RhdGljIGludCBTSU5HTEVCWVRFTU9ERSAgICAgICAgICAgICAgPSAwOworICAgIGZpbmFsIHN0YXRpYyBpbnQgVU5JQ09ERU1PREUgICAgICAgICAgICAgICAgID0gMTsKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBNYXhpbXVtIHZhbHVlIGZvciBhIHdpbmRvdydzIGluZGV4CisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIGZpbmFsIHN0YXRpYyBpbnQgTUFYSU5ERVggICAgICAgICAgICAgICAgICAgID0gMHhGRjsKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBSZXNlcnZlZCBpbmRleCB2YWx1ZSAoY2hhcmFjdGVycyBiZWxvbmdzIHRvIGZpcnN0IGJsb2NrKQorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBmaW5hbCBzdGF0aWMgaW50IFJFU0VSVkVESU5ERVggICAgICAgICAgICAgICA9IDB4MDA7CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gSW5kaWNlcyBmb3Igc2NyaXB0cyB3aGljaCBjcm9zcyBhIGhhbGYtYmxvY2sgYm91bmRhcnkKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgZmluYWwgc3RhdGljIGludCBMQVRJTklOREVYICAgICAgICAgICAgICAgICAgPSAweEY5OworICAgIGZpbmFsIHN0YXRpYyBpbnQgSVBBRVhURU5TSU9OSU5ERVggICAgICAgICAgID0gMHhGQTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IEdSRUVLSU5ERVggICAgICAgICAgICAgICAgICA9IDB4RkI7CisgICAgZmluYWwgc3RhdGljIGludCBBUk1FTklBTklOREVYICAgICAgICAgICAgICAgPSAweEZDOworICAgIGZpbmFsIHN0YXRpYyBpbnQgSElSQUdBTkFJTkRFWCAgICAgICAgICAgICAgID0gMHhGRDsKKyAgICBmaW5hbCBzdGF0aWMgaW50IEtBVEFLQU5BSU5ERVggICAgICAgICAgICAgICA9IDB4RkU7CisgICAgZmluYWwgc3RhdGljIGludCBIQUxGV0lEVEhLQVRBS0FOQUlOREVYICAgICAgPSAweEZGOworCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIFNpbmdsZS1ieXRlIG1vZGUgdGFncworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkVYICAgICAgICAgICAgICAgICAgICA9IDB4MEI7CisgICAgZmluYWwgc3RhdGljIGludCBTUkVTRVJWRUQgICAgICAgICAgICAgICAgICAgPSAweDBDOyAgLy8gcmVzZXJ2ZWQgdmFsdWUKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNRVU9URVUgICAgICAgICAgICAgICAgICAgICA9IDB4MEU7CisgICAgZmluYWwgc3RhdGljIGludCBTQ0hBTkdFVSAgICAgICAgICAgICAgICAgICAgPSAweDBGOworCisgICAgZmluYWwgc3RhdGljIGludCBTUVVPVEUwICAgICAgICAgICAgICAgICAgICAgPSAweDAxOworICAgIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFMSAgICAgICAgICAgICAgICAgICAgID0gMHgwMjsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNRVU9URTIgICAgICAgICAgICAgICAgICAgICA9IDB4MDM7CisgICAgZmluYWwgc3RhdGljIGludCBTUVVPVEUzICAgICAgICAgICAgICAgICAgICAgPSAweDA0OworICAgIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFNCAgICAgICAgICAgICAgICAgICAgID0gMHgwNTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNRVU9URTUgICAgICAgICAgICAgICAgICAgICA9IDB4MDY7CisgICAgZmluYWwgc3RhdGljIGludCBTUVVPVEU2ICAgICAgICAgICAgICAgICAgICAgPSAweDA3OworICAgIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFNyAgICAgICAgICAgICAgICAgICAgID0gMHgwODsKKworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0NIQU5HRTAgICAgICAgICAgICAgICAgICAgID0gMHgxMDsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNDSEFOR0UxICAgICAgICAgICAgICAgICAgICA9IDB4MTE7CisgICAgZmluYWwgc3RhdGljIGludCBTQ0hBTkdFMiAgICAgICAgICAgICAgICAgICAgPSAweDEyOworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0NIQU5HRTMgICAgICAgICAgICAgICAgICAgID0gMHgxMzsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNDSEFOR0U0ICAgICAgICAgICAgICAgICAgICA9IDB4MTQ7CisgICAgZmluYWwgc3RhdGljIGludCBTQ0hBTkdFNSAgICAgICAgICAgICAgICAgICAgPSAweDE1OworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0NIQU5HRTYgICAgICAgICAgICAgICAgICAgID0gMHgxNjsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNDSEFOR0U3ICAgICAgICAgICAgICAgICAgICA9IDB4MTc7CisKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkUwICAgICAgICAgICAgICAgICAgICA9IDB4MTg7CisgICAgZmluYWwgc3RhdGljIGludCBTREVGSU5FMSAgICAgICAgICAgICAgICAgICAgPSAweDE5OworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0RFRklORTIgICAgICAgICAgICAgICAgICAgID0gMHgxQTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkUzICAgICAgICAgICAgICAgICAgICA9IDB4MUI7CisgICAgZmluYWwgc3RhdGljIGludCBTREVGSU5FNCAgICAgICAgICAgICAgICAgICAgPSAweDFDOworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0RFRklORTUgICAgICAgICAgICAgICAgICAgID0gMHgxRDsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkU2ICAgICAgICAgICAgICAgICAgICA9IDB4MUU7CisgICAgZmluYWwgc3RhdGljIGludCBTREVGSU5FNyAgICAgICAgICAgICAgICAgICAgPSAweDFGOworCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIFVuaWNvZGUgbW9kZSB0YWdzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIGZpbmFsIHN0YXRpYyBpbnQgVUNIQU5HRTAgICAgICAgICAgICAgICAgICAgID0gMHhFMDsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVDSEFOR0UxICAgICAgICAgICAgICAgICAgICA9IDB4RTE7CisgICAgZmluYWwgc3RhdGljIGludCBVQ0hBTkdFMiAgICAgICAgICAgICAgICAgICAgPSAweEUyOworICAgIGZpbmFsIHN0YXRpYyBpbnQgVUNIQU5HRTMgICAgICAgICAgICAgICAgICAgID0gMHhFMzsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVDSEFOR0U0ICAgICAgICAgICAgICAgICAgICA9IDB4RTQ7CisgICAgZmluYWwgc3RhdGljIGludCBVQ0hBTkdFNSAgICAgICAgICAgICAgICAgICAgPSAweEU1OworICAgIGZpbmFsIHN0YXRpYyBpbnQgVUNIQU5HRTYgICAgICAgICAgICAgICAgICAgID0gMHhFNjsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVDSEFOR0U3ICAgICAgICAgICAgICAgICAgICA9IDB4RTc7CisKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkUwICAgICAgICAgICAgICAgICAgICA9IDB4RTg7CisgICAgZmluYWwgc3RhdGljIGludCBVREVGSU5FMSAgICAgICAgICAgICAgICAgICAgPSAweEU5OworICAgIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORTIgICAgICAgICAgICAgICAgICAgID0gMHhFQTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkUzICAgICAgICAgICAgICAgICAgICA9IDB4RUI7CisgICAgZmluYWwgc3RhdGljIGludCBVREVGSU5FNCAgICAgICAgICAgICAgICAgICAgPSAweEVDOworICAgIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORTUgICAgICAgICAgICAgICAgICAgID0gMHhFRDsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkU2ICAgICAgICAgICAgICAgICAgICA9IDB4RUU7CisgICAgZmluYWwgc3RhdGljIGludCBVREVGSU5FNyAgICAgICAgICAgICAgICAgICAgPSAweEVGOworCisgICAgZmluYWwgc3RhdGljIGludCBVUVVPVEVVICAgICAgICAgICAgICAgICAgICAgPSAweEYwOworICAgIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORVggICAgICAgICAgICAgICAgICAgID0gMHhGMTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVSRVNFUlZFRCAgICAgICAgICAgICAgICAgICA9IDB4RjI7ICAvLyByZXNlcnZlZCB2YWx1ZQorCisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gQ2xhc3MgdmFyaWFibGVzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqIEZvciB3aW5kb3cgb2Zmc2V0IG1hcHBpbmcgKi8KKyAgICBmaW5hbCBzdGF0aWMgaW50IFtdIHNPZmZzZXRUYWJsZSA9IHsgCisgICAgICAgIC8vIHRhYmxlIGdlbmVyYXRlZCBieSBDb21wcmVzc2lvblRhYmxlR2VuZXJhdG9yCisgICAgICAgIDB4MCwgMHg4MCwgMHgxMDAsIDB4MTgwLCAweDIwMCwgMHgyODAsIDB4MzAwLCAweDM4MCwgMHg0MDAsCisJMHg0ODAsIDB4NTAwLCAweDU4MCwgMHg2MDAsIDB4NjgwLCAweDcwMCwgMHg3ODAsIDB4ODAwLCAweDg4MCwKKwkweDkwMCwgMHg5ODAsIDB4YTAwLCAweGE4MCwgMHhiMDAsIDB4YjgwLCAweGMwMCwgMHhjODAsIDB4ZDAwLAorCTB4ZDgwLCAweGUwMCwgMHhlODAsIDB4ZjAwLCAweGY4MCwgMHgxMDAwLCAweDEwODAsIDB4MTEwMCwKKwkweDExODAsIDB4MTIwMCwgMHgxMjgwLCAweDEzMDAsIDB4MTM4MCwgMHgxNDAwLCAweDE0ODAsCisJMHgxNTAwLCAweDE1ODAsIDB4MTYwMCwgMHgxNjgwLCAweDE3MDAsIDB4MTc4MCwgMHgxODAwLAorCTB4MTg4MCwgMHgxOTAwLCAweDE5ODAsIDB4MWEwMCwgMHgxYTgwLCAweDFiMDAsIDB4MWI4MCwKKwkweDFjMDAsIDB4MWM4MCwgMHgxZDAwLCAweDFkODAsIDB4MWUwMCwgMHgxZTgwLCAweDFmMDAsCisJMHgxZjgwLCAweDIwMDAsIDB4MjA4MCwgMHgyMTAwLCAweDIxODAsIDB4MjIwMCwgMHgyMjgwLAorCTB4MjMwMCwgMHgyMzgwLCAweDI0MDAsIDB4MjQ4MCwgMHgyNTAwLCAweDI1ODAsIDB4MjYwMCwKKwkweDI2ODAsIDB4MjcwMCwgMHgyNzgwLCAweDI4MDAsIDB4Mjg4MCwgMHgyOTAwLCAweDI5ODAsCisJMHgyYTAwLCAweDJhODAsIDB4MmIwMCwgMHgyYjgwLCAweDJjMDAsIDB4MmM4MCwgMHgyZDAwLAorCTB4MmQ4MCwgMHgyZTAwLCAweDJlODAsIDB4MmYwMCwgMHgyZjgwLCAweDMwMDAsIDB4MzA4MCwKKwkweDMxMDAsIDB4MzE4MCwgMHgzMjAwLCAweDMyODAsIDB4MzMwMCwgMHgzMzgwLCAweGUwMDAsCisJMHhlMDgwLCAweGUxMDAsIDB4ZTE4MCwgMHhlMjAwLCAweGUyODAsIDB4ZTMwMCwgMHhlMzgwLAorCTB4ZTQwMCwgMHhlNDgwLCAweGU1MDAsIDB4ZTU4MCwgMHhlNjAwLCAweGU2ODAsIDB4ZTcwMCwKKwkweGU3ODAsIDB4ZTgwMCwgMHhlODgwLCAweGU5MDAsIDB4ZTk4MCwgMHhlYTAwLCAweGVhODAsCisJMHhlYjAwLCAweGViODAsIDB4ZWMwMCwgMHhlYzgwLCAweGVkMDAsIDB4ZWQ4MCwgMHhlZTAwLAorCTB4ZWU4MCwgMHhlZjAwLCAweGVmODAsIDB4ZjAwMCwgMHhmMDgwLCAweGYxMDAsIDB4ZjE4MCwKKwkweGYyMDAsIDB4ZjI4MCwgMHhmMzAwLCAweGYzODAsIDB4ZjQwMCwgMHhmNDgwLCAweGY1MDAsCisJMHhmNTgwLCAweGY2MDAsIDB4ZjY4MCwgMHhmNzAwLCAweGY3ODAsIDB4ZjgwMCwgMHhmODgwLAorCTB4ZjkwMCwgMHhmOTgwLCAweGZhMDAsIDB4ZmE4MCwgMHhmYjAwLCAweGZiODAsIDB4ZmMwMCwKKwkweGZjODAsIDB4ZmQwMCwgMHhmZDgwLCAweGZlMDAsIDB4ZmU4MCwgMHhmZjAwLCAweGZmODAsIDB4MCwKKwkweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLAorCTB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsCisJMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwKKwkweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLAorCTB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsCisJMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwKKwkweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHhjMCwgMHgyNTAsIDB4MzcwLAorCTB4NTMwLCAweDMwNDAsIDB4MzBhMCwgMHhmZjYwICAKKyAgICB9OworCisgICAgLyoqIFN0YXRpYyBjb21wcmVzc2lvbiB3aW5kb3cgb2Zmc2V0cyAqLworICAgIGZpbmFsIHN0YXRpYyBpbnQgW10gc09mZnNldHMgPSB7CisgICAgICAgIDB4MDAwMCwgIC8vIGZvciBxdW90aW5nIHNpbmdsZS1ieXRlIG1vZGUgdGFncworICAgICAgICAweDAwODAsICAvLyBMYXRpbi0xIFN1cHBsZW1lbnQKKyAgICAgICAgMHgwMTAwLCAgLy8gTGF0aW4gRXh0ZW5kZWQtQQorICAgICAgICAweDAzMDAsICAvLyBDb21iaW5pbmcgRGlhY3JpdGljYWwgTWFya3MKKyAgICAgICAgMHgyMDAwLCAgLy8gR2VuZXJhbCBQdW5jdHVhdGlvbgorICAgICAgICAweDIwODAsICAvLyBDdXJlbmN5IFN5bWJvbHMKKyAgICAgICAgMHgyMTAwLCAgLy8gTGV0dGVybGlrZSBTeW1ib2xzIGFuZCBOdW1iZXIgRm9ybXMKKyAgICAgICAgMHgzMDAwICAgLy8gQ0pLIFN5bWJvbHMgYW5kIFB1bmN0dWF0aW9uCisgICAgfTsKKworfTsKKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvU2VhcmNoSXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1NlYXJjaEl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDc5NGRkMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1NlYXJjaEl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSw3NjcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS90ZXh0L1NlYXJjaEl0ZXJhdG9yLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDcvMTIgMjE6NTk6MjIgJCAKKyAqICRSZXZpc2lvbjogMS4xMSAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yOworCisvKioKKyAqIDxwPlNlYXJjaEl0ZXJhdG9yIGlzIGFuIGFic3RyYWN0IGJhc2UgY2xhc3MgdGhhdCBkZWZpbmVzIGEgcHJvdG9jb2wKKyAqIGZvciB0ZXh0IHNlYXJjaGluZy4gU3ViY2xhc3NlcyBwcm92aWRlIGNvbmNyZXRlIGltcGxlbWVudGF0aW9ucyBvZgorICogdmFyaW91cyBzZWFyY2ggYWxnb3JpdGhtcy4gIEEgY29uY3JldGUgc3ViY2xhc3MsIFN0cmluZ1NlYXJjaCwgaXMKKyAqIHByb3ZpZGVkIHRoYXQgaW1wbGVtZW50cyBsYW5ndWFnZS1zZW5zaXRpdmUgcGF0dGVybiBtYXRjaGluZyBiYXNlZAorICogb24gdGhlIGNvbXBhcmlzb24gcnVsZXMgZGVmaW5lZCBpbiBhIFJ1bGVCYXNlZENvbGxhdG9yCisgKiBvYmplY3QuIEluc3RhbmNlcyBvZiBTZWFyY2hJdGVyYXRvciBtYWludGFpbiBhIGN1cnJlbnQgcG9zaXRpb24gYW5kCisgKiBzY2FuIG92ZXIgdGhlIHRhcmdldCB0ZXh0LCByZXR1cm5pbmcgdGhlIGluZGljZXMgd2hlcmUgYSBtYXRjaCBpcworICogZm91bmQgYW5kIHRoZSBsZW5ndGggb2YgZWFjaCBtYXRjaC4gR2VuZXJhbGx5LCB0aGUgc2VxdWVuY2Ugb2YgZm9yd2FyZCAKKyAqIG1hdGNoZXMgd2lsbCBiZSBlcXVpdmFsZW50IHRvIHRoZSBzZXF1ZW5jZSBvZiBiYWNrd2FyZCBtYXRjaGVzLk9uZQorICogY2FzZSB3aGVyZSB0aGlzIHN0YXRlbWVudCBtYXkgbm90IGhvbGQgaXMgd2hlbiBub24tb3ZlcmxhcHBpbmcgbW9kZSAKKyAqIGlzIHNldCBvbiBhbmQgdGhlcmUgYXJlIGNvbnRpbnVvdXMgcmVwZXRpdGl2ZSBwYXR0ZXJucyBpbiB0aGUgdGV4dC4gCisgKiBDb25zaWRlciB0aGUgY2FzZSBzZWFyY2hpbmcgZm9yIHBhdHRlcm4gImFiYSIgaW4gdGhlIHRleHQgCisgKiAiYWJhYmFiYWJhIiwgc2V0dGluZyBvdmVybGFwcGluZyBtb2RlIG9mZiB3aWxsIHByb2R1Y2UgZm9yd2FyZCBtYXRjaGVzCisgKiBhdCBvZmZzZXRzIDAsIDQuIEhvd2V2ZXIgd2hlbiBhIGJhY2t3YXJkcyBzZWFyY2ggaXMgZG9uZSwgdGhlCisgKiByZXN1bHRzIHdpbGwgYmUgYXQgb2Zmc2V0cyA2IGFuZCAyLjwvcD4KKyAqIAorICogPHA+SWYgbWF0Y2hlcyBzZWFyY2hlZCBmb3IgaGF2ZSBib3VuZGFyeSByZXN0cmljdGlvbnMuIEJyZWFrSXRlcmF0b3JzIAorICogY2FuIGJlIHVzZWQgdG8gZGVmaW5lIHRoZSB2YWxpZCBib3VuZGFyaWVzIG9mIHN1Y2ggYSBtYXRjaC4gT25jZSBhIAorICogQnJlYWtJdGVyYXRvciBpcyBzZXQsIHBvdGVudGlhbCBtYXRjaGVzIHdpbGwgYmUgdGVzdGVkIGFnYWluc3QgdGhlCisgKiBCcmVha0l0ZXJhdG9yIHRvIGRldGVybWluZSBpZiB0aGUgYm91bmRhcmllcyBhcmUgdmFsaWQgYW5kIHRoYXQgYWxsCisgKiBjaGFyYWN0ZXJzIGluIHRoZSBwb3RlbnRpYWwgbWF0Y2ggYXJlIGVxdWl2YWxlbnQgdG8gdGhlIHBhdHRlcm4gCisgKiBzZWFyY2hlZCBmb3IuIEZvciBleGFtcGxlLCBsb29raW5nIGZvciB0aGUgcGF0dGVybiAiZm94IiBpbiB0aGUgdGV4dAorICogImZveHkgZm94IiB3aWxsIHByb2R1Y2UgbWF0Y2ggcmVzdWx0cyBhdCBvZmZzZXQgMCBhbmQgNSB3aXRoIGxlbmd0aCAzCisgKiBpZiBubyBCcmVha0l0ZXJhdG9ycyB3ZXJlIHNldC4gSG93ZXZlciBpZiBhIFdvcmRCcmVha0l0ZXJhdG9yIGlzIHNldCwKKyAqIHRoZSBvbmx5IG1hdGNoIHRoYXQgd291bGQgYmUgZm91bmQgd2lsbCBiZSBhdCB0aGUgb2Zmc2V0IDUuIFNpbmNlLAorICogdGhlIFNlYXJjaEl0ZXJhdG9yIGd1YXJhbnRlZXMgdGhhdCBpZiBhIEJyZWFrSXRlcmF0b3IgaXMgc2V0LCBhbGwgaXRzCisgKiBtYXRjaGVzIHdpbGwgbWF0Y2ggdGhlIGdpdmVuIHBhdHRlcm4gZXhhY3RseSwgYSBwb3RlbnRpYWwgbWF0Y2ggdGhhdCAKKyAqIHBhc3NlcyB0aGUgQnJlYWtJdGVyYXRvciBtaWdodCBzdGlsbCBub3QgcHJvZHVjZSBhIHZhbGlkIG1hdGNoLiBGb3IgCisgKiBpbnN0YW5jZSB0aGUgcGF0dGVybiAiZSIgd2lsbCBub3QgYmUgZm91bmQgaW4gdGhlIHN0cmluZyAKKyAqICImIzkyO3UwMGU5IiAobGF0aW4gc21hbGwgbGV0dGVyIGUgd2l0aCBhY3V0ZSkgaWYgYSAKKyAqIENoYXJhY3RlckJyZWFrSXRlcmF0b3IgaXMgdXNlZC4gRXZlbiB0aG91Z2ggImUiIGlzCisgKiBhIHBhcnQgb2YgdGhlIGNoYXJhY3RlciAiJiM5Mjt1MDBlOSIgYW5kIHRoZSBwb3RlbnRpYWwgbWF0Y2ggYXQKKyAqIG9mZnNldCAwIGxlbmd0aCAxIHBhc3NlcyB0aGUgQ2hhcmFjdGVyQnJlYWtJdGVyYXRvciB0ZXN0LCAiJiM5Mjt1MDBlOSIKKyAqIGlzIG5vdCBlcXVpdmFsZW50IHRvICJlIiwgaGVuY2UgdGhlIFNlYXJjaEl0ZXJhdG9yIHJlamVjdHMgdGhlIHBvdGVudGlhbAorICogbWF0Y2guIEJ5IGRlZmF1bHQsIHRoZSBTZWFyY2hJdGVyYXRvcgorICogZG9lcyBub3QgaW1wb3NlIGFueSBib3VuZGFyeSByZXN0cmljdGlvbiBvbiB0aGUgbWF0Y2hlcywgaXQgd2lsbCAKKyAqIHJldHVybiBhbGwgcmVzdWx0cyB0aGF0IG1hdGNoIHRoZSBwYXR0ZXJuLiBJbGx1c3RyYXRpbmcgd2l0aCB0aGUgCisgKiBhYm92ZSBleGFtcGxlLCAiZSIgd2lsbAorICogYmUgZm91bmQgaW4gdGhlIHN0cmluZyAiJiM5Mjt1MDBlOSIgaWYgbm8gQnJlYWtJdGVyYXRvciBpcworICogc3BlY2lmaWVkLjwvcD4KKyAqIAorICogPHA+U2VhcmNoSXRlcmF0b3IgYWxzbyBwcm92aWRlcyBhIG1lYW5zIHRvIGhhbmRsZSBvdmVybGFwcGluZworICogbWF0Y2hlcyB2aWEgdGhlIEFQSSBzZXRPdmVybGFwcGluZyhib29sZWFuKS4gRm9yIGV4YW1wbGUsIGlmCisgKiBvdmVybGFwcGluZyBtb2RlIGlzIHNldCwgc2VhcmNoaW5nIGZvciB0aGUgcGF0dGVybiAiYWJhYiIgaW4gdGhlCisgKiB0ZXh0ICJhYmFiYWIiIHdpbGwgbWF0Y2ggYXQgcG9zaXRpb25zIDAgYW5kIDIsIHdoZXJlYXMgaWYKKyAqIG92ZXJsYXBwaW5nIGlzIG5vdCBzZXQsIFNlYXJjaEl0ZXJhdG9yIHdpbGwgb25seSBtYXRjaCBhdCBwb3NpdGlvbgorICogMC4gQnkgZGVmYXVsdCwgb3ZlcmxhcHBpbmcgbW9kZSBpcyBub3Qgc2V0LjwvcD4KKyAqIAorICogPHA+VGhlIEFQSXMgaW4gU2VhcmNoSXRlcmF0b3IgYXJlIHNpbWlsYXIgdG8gdGhhdCBvZiBvdGhlciB0ZXh0CisgKiBpdGVyYXRpb24gY2xhc3NlcyBzdWNoIGFzIEJyZWFrSXRlcmF0b3IuIFVzaW5nIHRoaXMgY2xhc3MsIGl0IGlzCisgKiBlYXN5IHRvIHNjYW4gdGhyb3VnaCB0ZXh0IGxvb2tpbmcgZm9yIGFsbCBvY2N1cmFuY2VzIG9mIGEKKyAqIG1hdGNoLjwvcD4KKyAqIDxwPgorICogRXhhbXBsZSBvZiB1c2U6PGJyPgorICogPHByZT4KKyAqIFN0cmluZyB0YXJnZXQgPSAiVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBmb3giOworICogU3RyaW5nIHBhdHRlcm4gPSAiZm94IjsKKyAqIFNlYXJjaEl0ZXJhdG9yIGl0ZXIgPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIHRhcmdldCk7CisgKiBmb3IgKGludCBwb3MgPSBpdGVyLmZpcnN0KCk7IHBvcyAhPSBTZWFyY2hJdGVyYXRvci5ET05FOyAKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IGl0ZXIubmV4dCgpKSB7CisgKiAgICAgLy8gcHJpbnRsbiBtYXRjaGVzIGF0IG9mZnNldCAxNiBhbmQgNDEgd2l0aCBsZW5ndGggMworICogICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRm91bmQgbWF0Y2ggYXQgIiArIHBvcyArICIsIGxlbmd0aCBpcyAiIAorICogICAgICAgICAgICAgICAgICAgICAgICArIGl0ZXIuZ2V0TWF0Y2hMZW5ndGgoKSk7CisgKiB9CisgKiB0YXJnZXQgPSAiYWJhYmFiYWJhIjsKKyAqIHBhdHRlcm4gPSAiYWJhIjsKKyAqIGl0ZXIuc2V0VGFyZ2V0KG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihwYXR0ZXJuKSk7CisgKiBpdGVyLnNldE92ZXJsYXBwaW5nKGZhbHNlKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiT3ZlcmxhcHBpbmcgbW9kZSBzZXQgdG8gZmFsc2UiKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiRm9yd2FyZCBtYXRjaGVzIG9mIHBhdHRlcm4gIiArIHBhdHRlcm4gKyAiIGluIHRleHQgIgorICogICAgICAgICAgICAgICAgICAgICsgdGV4dCArICI6ICIpOworICogZm9yIChpbnQgcG9zID0gaXRlci5maXJzdCgpOyBwb3MgIT0gU2VhcmNoSXRlcmF0b3IuRE9ORTsgCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBpdGVyLm5leHQoKSkgeworICogICAgIC8vIHByaW50bG4gbWF0Y2hlcyBhdCBvZmZzZXQgMCBhbmQgNCB3aXRoIGxlbmd0aCAzCisgKiAgICAgU3lzdGVtLm91dC5wcmludGxuKCJvZmZzZXQgIiArIHBvcyArICIsIGxlbmd0aCAiIAorICogICAgICAgICAgICAgICAgICAgICAgICArIGl0ZXIuZ2V0TWF0Y2hMZW5ndGgoKSk7CisgKiB9CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkJhY2t3YXJkIG1hdGNoZXMgb2YgcGF0dGVybiAiICsgcGF0dGVybiArICIgaW4gdGV4dCAiCisgKiAgICAgICAgICAgICAgICAgICAgKyB0ZXh0ICsgIjogIik7CisgKiBmb3IgKGludCBwb3MgPSBpdGVyLmxhc3QoKTsgcG9zICE9IFNlYXJjaEl0ZXJhdG9yLkRPTkU7IAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gaXRlci5wcmV2aW91cygpKSB7CisgKiAgICAgLy8gcHJpbnRsbiBtYXRjaGVzIGF0IG9mZnNldCA2IGFuZCAyIHdpdGggbGVuZ3RoIDMKKyAqICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIm9mZnNldCAiICsgcG9zICsgIiwgbGVuZ3RoICIgCisgKiAgICAgICAgICAgICAgICAgICAgICAgICsgaXRlci5nZXRNYXRjaExlbmd0aCgpKTsKKyAqIH0KKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiT3ZlcmxhcHBpbmcgbW9kZSBzZXQgdG8gdHJ1ZSIpOworICogU3lzdGVtLm91dC5wcmludGxuKCJJbmRleCBzZXQgdG8gMiIpOworICogaXRlci5zZXRJbmRleCgyKTsKKyAqIGl0ZXIuc2V0T3ZlcmxhcHBpbmcodHJ1ZSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkZvcndhcmQgbWF0Y2hlcyBvZiBwYXR0ZXJuICIgKyBwYXR0ZXJuICsgIiBpbiB0ZXh0ICIKKyAqICAgICAgICAgICAgICAgICAgICArIHRleHQgKyAiOiAiKTsKKyAqIGZvciAoaW50IHBvcyA9IGl0ZXIuZmlyc3QoKTsgcG9zICE9IFNlYXJjaEl0ZXJhdG9yLkRPTkU7IAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gaXRlci5uZXh0KCkpIHsKKyAqICAgICAvLyBwcmludGxuIG1hdGNoZXMgYXQgb2Zmc2V0IDIsIDQgYW5kIDYgd2l0aCBsZW5ndGggMworICogICAgIFN5c3RlbS5vdXQucHJpbnRsbigib2Zmc2V0ICIgKyBwb3MgKyAiLCBsZW5ndGggIiAKKyAqICAgICAgICAgICAgICAgICAgICAgICAgKyBpdGVyLmdldE1hdGNoTGVuZ3RoKCkpOworICogfQorICogU3lzdGVtLm91dC5wcmludGxuKCJJbmRleCBzZXQgdG8gMiIpOworICogaXRlci5zZXRJbmRleCgyKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiQmFja3dhcmQgbWF0Y2hlcyBvZiBwYXR0ZXJuICIgKyBwYXR0ZXJuICsgIiBpbiB0ZXh0ICIKKyAqICAgICAgICAgICAgICAgICAgICArIHRleHQgKyAiOiAiKTsKKyAqIGZvciAoaW50IHBvcyA9IGl0ZXIubGFzdCgpOyBwb3MgIT0gU2VhcmNoSXRlcmF0b3IuRE9ORTsgCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBpdGVyLnByZXZpb3VzKCkpIHsKKyAqICAgICAvLyBwcmludGxuIG1hdGNoZXMgYXQgb2Zmc2V0IDAgd2l0aCBsZW5ndGggMworICogICAgIFN5c3RlbS5vdXQucHJpbnRsbigib2Zmc2V0ICIgKyBwb3MgKyAiLCBsZW5ndGggIiAKKyAqICAgICAgICAgICAgICAgICAgICAgICAgKyBpdGVyLmdldE1hdGNoTGVuZ3RoKCkpOworICogfQorICogPC9wcmU+CisgKiA8L3A+CisgKiBAYXV0aG9yIExhdXJhIFdlcm5lciwgc3lud2VlCisgKiBAc2luY2UgcmVsZWFzZSAxLjAKKyAqIEBkcmFmdCByZWxlYXNlIDIuMgorICogQHNlZSBCcmVha0l0ZXJhdG9yCisgKi8KK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBTZWFyY2hJdGVyYXRvciAKK3sKKwkKKwkvLyBwdWJsaWMgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwkKKyAgICAvKioKKyAgICAgKiBET05FIGlzIHJldHVybmVkIGJ5IHByZXZpb3VzKCkgYW5kIG5leHQoKSBhZnRlciBhbGwgdmFsaWQgbWF0Y2hlcyBoYXZlIAorICAgICAqIGJlZW4gcmV0dXJuZWQsIGFuZCBieSBmaXJzdCgpIGFuZCBsYXN0KCkgaWYgdGhlcmUgYXJlIG5vIG1hdGNoZXMgYXQgYWxsLgorICAgICAqIEBzZWUgI3ByZXZpb3VzCisgICAgICogQHNlZSAjbmV4dAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERPTkUgPSAtMTsKKyAgICAKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8vIHB1YmxpYyBzZXR0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogU2V0cyB0aGUgcG9zaXRpb24gaW4gdGhlIHRhcmdldCB0ZXh0IGF0IHdoaWNoIHRoZSBuZXh0IHNlYXJjaCB3aWxsIHN0YXJ0LgorICAgICAqIFRoaXMgbWV0aG9kIGNsZWFycyBhbnkgcHJldmlvdXMgbWF0Y2guCisgICAgICogPC9wPgorICAgICAqIEBwYXJhbSBwb3NpdGlvbiBwb3NpdGlvbiBmcm9tIHdoaWNoIHRvIHN0YXJ0IHRoZSBuZXh0IHNlYXJjaAorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiB0aHJvd24gaWYgYXJndW1lbnQgcG9zaXRpb24gaXMgb3V0CisgICAgICogICAgICAgICAgICBvZiB0aGUgdGFyZ2V0IHRleHQgcmFuZ2UuCisgICAgICogQHNlZSAjZ2V0SW5kZXgKKyAgICAgKiBAZHJhZnQgcmVsZWFzZSAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRJbmRleChpbnQgcG9zaXRpb24pIHsKKyAgICAgICAgaWYgKHBvc2l0aW9uIDwgdGFyZ2V0VGV4dC5nZXRCZWdpbkluZGV4KCkgCisgICAgICAgICAgICB8fCBwb3NpdGlvbiA+IHRhcmdldFRleHQuZ2V0RW5kSW5kZXgoKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgInNldEluZGV4KGludCkgZXhwZWN0ZWQgcG9zaXRpb24gdG8gYmUgYmV0d2VlbiAiICsKKyAgICAgICAgICAgICAgICB0YXJnZXRUZXh0LmdldEJlZ2luSW5kZXgoKSArICIgYW5kICIgKyB0YXJnZXRUZXh0LmdldEVuZEluZGV4KCkpOworICAgICAgICB9CisgICAgICAgIG1fc2V0T2Zmc2V0XyA9IHBvc2l0aW9uOworICAgICAgICBtX3Jlc2V0XyA9IGZhbHNlOworICAgICAgICBtYXRjaExlbmd0aCA9IDA7CisgICAgfQorCQorCS8qKgorCSAqIDxwPgorICAgICAqIERldGVybWluZXMgd2hldGhlciBvdmVybGFwcGluZyBtYXRjaGVzIGFyZSByZXR1cm5lZC4gU2VlIHRoZSBjbGFzcyAKKyAgICAgKiBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IG92ZXJsYXBwaW5nIG1hdGNoZXMuCisgICAgICogPC9wPgorCSAqIDxwPgorICAgICAqIFRoZSBkZWZhdWx0IHNldHRpbmcgb2YgdGhpcyBwcm9wZXJ0eSBpcyBmYWxzZQorICAgICAqIDwvcD4KKwkgKiBAcGFyYW0gYWxsb3dPdmVybGFwIGZsYWcgaW5kaWNhdG9yIGlmIG92ZXJsYXBwaW5nIG1hdGNoZXMgYXJlIGFsbG93ZWQKKyAgICAgKiBAc2VlICNpc092ZXJsYXBwaW5nCisJICogQGRyYWZ0IHJlbGVhc2UgMi4yCisJICovCisJcHVibGljIHZvaWQgc2V0T3ZlcmxhcHBpbmcoYm9vbGVhbiBhbGxvd092ZXJsYXApCisJeworCQltX2lzT3ZlcmxhcF8gPSBhbGxvd092ZXJsYXA7CisJfQorCQorCS8qKgorICAgICAqIFNldCB0aGUgQnJlYWtJdGVyYXRvciB0aGF0IGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIHBvaW50cyBhdCB3aGljaCAKKyAgICAgKiBtYXRjaGVzIGFyZSBkZXRlY3RlZC4KKyAgICAgKiBVc2luZyA8dHQ+bnVsbDwvdHQ+IGFzIHRoZSBwYXJhbWV0ZXIgaXMgbGVnYWw7IGl0IG1lYW5zIHRoYXQgYnJlYWsgCisgICAgICogZGV0ZWN0aW9uIHNob3VsZCBub3QgYmUgYXR0ZW1wdGVkLgorICAgICAqIFNlZSBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uLgorICAgICAqIEBwYXJhbSBicmVha2l0ZXIgQSBCcmVha0l0ZXJhdG9yIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHJlc3RyaWN0IHRoZSAKKyAgICAgKiAJCQkJCXBvaW50cyBhdCB3aGljaCBtYXRjaGVzIGFyZSBkZXRlY3RlZC4KKyAgICAgKiBAc2VlICNnZXRCcmVha0l0ZXJhdG9yCisgICAgICogQHNlZSBCcmVha0l0ZXJhdG9yCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0QnJlYWtJdGVyYXRvcihCcmVha0l0ZXJhdG9yIGJyZWFraXRlcikgCisgICAgeworICAgICAgICBicmVha0l0ZXJhdG9yID0gYnJlYWtpdGVyOworICAgICAgICBpZiAoYnJlYWtJdGVyYXRvciAhPSBudWxsKSB7CisgICAgICAgIAlicmVha0l0ZXJhdG9yLnNldFRleHQodGFyZ2V0VGV4dCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSB0YXJnZXQgdGV4dCB0byBiZSBzZWFyY2hlZC4gVGV4dCBpdGVyYXRpb24gd2lsbCB0aGVuIGJlZ2luIGF0IAorIAkgKiB0aGUgc3RhcnQgb2YgdGhlIHRleHQgc3RyaW5nLiBUaGlzIG1ldGhvZCBpcyB1c2VmdWwgaWYgeW91IHdhbnQgdG8gCisgICAgICogcmV1c2UgYW4gaXRlcmF0b3IgdG8gc2VhcmNoIHdpdGhpbiBhIGRpZmZlcmVudCBib2R5IG9mIHRleHQuCisJICogQHBhcmFtIHRleHQgbmV3IHRleHQgaXRlcmF0b3IgdG8gbG9vayBmb3IgbWF0Y2gsIAorCSAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRocm93biB3aGVuIHRleHQgaXMgbnVsbCBvciBoYXMKKwkgKiAJCQkgIDAgbGVuZ3RoCisJICogQHNlZSAjZ2V0VGFyZ2V0CisJICogQGRyYWZ0IElDVSAyLjAKKwkgKi8KKwlwdWJsaWMgdm9pZCBzZXRUYXJnZXQoQ2hhcmFjdGVySXRlcmF0b3IgdGV4dCkKKwl7CisJCWlmICh0ZXh0ID09IG51bGwgfHwgdGV4dC5nZXRFbmRJbmRleCgpID09IHRleHQuZ2V0SW5kZXgoKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBudWxsIG9yIGVtcHR5IHRleHQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdGFyZ2V0VGV4dCA9IHRleHQ7CisgICAgICAgIHRhcmdldFRleHQuc2V0SW5kZXgodGFyZ2V0VGV4dC5nZXRCZWdpbkluZGV4KCkpOworICAgICAgICBtYXRjaExlbmd0aCA9IDA7CisgICAgICAgIG1fcmVzZXRfID0gdHJ1ZTsKKyAgICAgICAgbV9pc0ZvcndhcmRTZWFyY2hpbmdfID0gdHJ1ZTsKKyAgICAgICAgaWYgKGJyZWFrSXRlcmF0b3IgIT0gbnVsbCkgeworICAgICAgICAJYnJlYWtJdGVyYXRvci5zZXRUZXh0KHRhcmdldFRleHQpOworICAgICAgICB9CisJfQorCisJLy8gcHVibGljIGdldHRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCQorCS8qKgorICAgICAqIDxwPgorICAgICAqIFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtb3N0IHJlY2VudCBtYXRjaCBpbiB0aGUgdGFyZ2V0IHRleHQuCisJICogVGhpcyBjYWxsIHJldHVybnMgYSB2YWxpZCByZXN1bHQgb25seSBhZnRlciBhIHN1Y2Nlc3NmdWwgY2FsbCB0byAKKwkgKiB7QGxpbmsgI2ZpcnN0fSwge0BsaW5rICNuZXh0fSwge0BsaW5rICNwcmV2aW91c30sIG9yIHtAbGluayAjbGFzdH0uCisJICogSnVzdCBhZnRlciBjb25zdHJ1Y3Rpb24sIG9yIGFmdGVyIGEgc2VhcmNoaW5nIG1ldGhvZCByZXR1cm5zIAorCSAqIDx0dD5ET05FPC90dD4sIHRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuIDx0dD5ET05FPC90dD4uCisgICAgICogPC9wPgorCSAqIDxwPgorICAgICAqIFVzZSA8dHQ+Z2V0TWF0Y2hMZW5ndGg8L3R0PiB0byBnZXQgdGhlIGxlbmd0aCBvZiB0aGUgbWF0Y2hlZCB0ZXh0LgorICAgICAqIDx0dD5nZXRNYXRjaGVkVGV4dDwvdHQ+IHdpbGwgcmV0dXJuIHRoZSBzdWJ0ZXh0IGluIHRoZSBzZWFyY2hlZCAKKyAgICAgKiB0YXJnZXQgdGV4dCBmcm9tIGluZGV4IGdldE1hdGNoU3RhcnQoKSB3aXRoIGxlbmd0aCBnZXRNYXRjaExlbmd0aCgpLiAKKyAgICAgKiA8L3A+CisJICogQHJldHVybiBpbmRleCB0byBhIHN1YnN0cmluZyB3aXRoaW4gdGhlIHRleHQgc3RyaW5nIHRoYXQgaXMgYmVpbmcgCisJICogICAgICAgICBzZWFyY2hlZC4KKyAgICAgKiBAc2VlICNnZXRNYXRjaExlbmd0aAorICAgICAqIEBzZWUgI2dldE1hdGNoZWRUZXh0CisgICAgICogQHNlZSAjZmlyc3QKKyAgICAgKiBAc2VlICNuZXh0CisgICAgICogQHNlZSAjcHJldmlvdXMKKyAgICAgKiBAc2VlICNsYXN0CisgICAgICogQHNlZSAjRE9ORQorCSAqIEBkcmFmdCByZWxlYXNlIDIuMgorCSAqLworCXB1YmxpYyBpbnQgZ2V0TWF0Y2hTdGFydCgpCisJeworICAgICAgICByZXR1cm4gbV9sYXN0TWF0Y2hTdGFydF87CisJfQorCisJLyoqCisgICAgICogUmV0dXJuIHRoZSBpbmRleCBpbiB0aGUgdGFyZ2V0IHRleHQgYXQgd2hpY2ggdGhlIGl0ZXJhdG9yIGlzIGN1cnJlbnRseQorICAgICAqIHBvc2l0aW9uZWQuIAorICAgICAqIElmIHRoZSBpdGVyYXRpb24gaGFzIGdvbmUgcGFzdCB0aGUgZW5kIG9mIHRoZSB0YXJnZXQgdGV4dCwgb3IgcGFzdCAKKyAgICAgKiB0aGUgYmVnaW5uaW5nIGZvciBhIGJhY2t3YXJkcyBzZWFyY2gsIHtAbGluayAjRE9ORX0gaXMgcmV0dXJuZWQuCisgICAgICogQHJldHVybiBpbmRleCBpbiB0aGUgdGFyZ2V0IHRleHQgYXQgd2hpY2ggdGhlIGl0ZXJhdG9yIGlzIGN1cnJlbnRseSAKKyAgICAgKiAgICAgICAgIHBvc2l0aW9uZWQuCisgICAgICogQGRyYWZ0IHJlbGVhc2UgMi4yCisgICAgICogQHNlZSAjZmlyc3QKKyAgICAgKiBAc2VlICNuZXh0CisgICAgICogQHNlZSAjcHJldmlvdXMKKyAgICAgKiBAc2VlICNsYXN0CisgICAgICogQHNlZSAjRE9ORQorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZ2V0SW5kZXgoKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBSZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIG1vc3QgcmVjZW50IG1hdGNoIGluIHRoZSB0YXJnZXQgdGV4dC4gCisgICAgICogVGhpcyBjYWxsIHJldHVybnMgYSB2YWxpZCByZXN1bHQgb25seSBhZnRlciBhIHN1Y2Nlc3NmdWwKKyAgICAgKiBjYWxsIHRvIHtAbGluayAjZmlyc3R9LCB7QGxpbmsgI25leHR9LCB7QGxpbmsgI3ByZXZpb3VzfSwgb3IgCisgICAgICoge0BsaW5rICNsYXN0fS4KKyAgICAgKiBKdXN0IGFmdGVyIGNvbnN0cnVjdGlvbiwgb3IgYWZ0ZXIgYSBzZWFyY2hpbmcgbWV0aG9kIHJldHVybnMKKyAgICAgKiA8dHQ+RE9ORTwvdHQ+LCB0aGlzIG1ldGhvZCB3aWxsIHJldHVybiAwLiBTZWUgZ2V0TWF0Y2hTdGFydCgpIGZvciAKKyAgICAgKiBtb3JlIGRldGFpbHMuCisgICAgICogPC9wPgorICAgICAqIEByZXR1cm4gVGhlIGxlbmd0aCBvZiB0aGUgbW9zdCByZWNlbnQgbWF0Y2ggaW4gdGhlIHRhcmdldCB0ZXh0LCBvciAwIGlmIAorICAgICAqICAgICAgICAgdGhlcmUgaXMgbm8gbWF0Y2guCisgICAgICogQHNlZSAjZ2V0TWF0Y2hTdGFydAorICAgICAqIEBzZWUgI2dldE1hdGNoZWRUZXh0CisgICAgICogQHNlZSAjZmlyc3QKKyAgICAgKiBAc2VlICNuZXh0CisgICAgICogQHNlZSAjcHJldmlvdXMKKyAgICAgKiBAc2VlICNsYXN0CisgICAgICogQHNlZSAjRE9ORQorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TWF0Y2hMZW5ndGgoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBtYXRjaExlbmd0aDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgQnJlYWtJdGVyYXRvciB0aGF0IGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIGluZGV4ZXMgYXQgd2hpY2ggCisgICAgICogbWF0Y2hlcyBhcmUgZGV0ZWN0ZWQuIFRoaXMgd2lsbCBiZSB0aGUgc2FtZSBvYmplY3QgdGhhdCB3YXMgcGFzc2VkIHRvIAorICAgICAqIHRoZSBjb25zdHJ1Y3RvciBvciB0byA8Y29kZT5zZXRCcmVha0l0ZXJhdG9yPC9jb2RlPi4KKyAgICAgKiBJZiB0aGUgQnJlYWtJdGVyYXRvciBoYXMgbm90IGJlZW4gc2V0LCA8dHQ+bnVsbDwvdHQ+IHdpbGwgYmUgcmV0dXJuZWQuCisgICAgICogU2VlIHNldEJyZWFrSXRlcmF0b3IgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgICAgICogQHJldHVybiB0aGUgQnJlYWtJdGVyYXRvciBzZXQgdG8gcmVzdHJpY3QgbG9naWMgbWF0Y2hlcworICAgICAqIEBzZWUgI3NldEJyZWFrSXRlcmF0b3IKKyAgICAgKiBAc2VlIEJyZWFrSXRlcmF0b3IKKyAgICAgKi8KKyAgICBwdWJsaWMgQnJlYWtJdGVyYXRvciBnZXRCcmVha0l0ZXJhdG9yKCkgCisgICAgeworICAgICAgICByZXR1cm4gYnJlYWtJdGVyYXRvcjsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB0YXJnZXQgdGV4dCB0aGF0IGlzIGJlaW5nIHNlYXJjaGVkLgorICAgICAqIEByZXR1cm4gdGFyZ2V0IHRleHQgYmVpbmcgc2VhcmNoZWQuCisgICAgICogQHNlZSAjc2V0VGFyZ2V0CisgICAgICovCisgICAgcHVibGljIENoYXJhY3Rlckl0ZXJhdG9yIGdldFRhcmdldCgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIHRhcmdldFRleHQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHRleHQgdGhhdCB3YXMgbWF0Y2hlZCBieSB0aGUgbW9zdCByZWNlbnQgY2FsbCB0byAKKyAgICAgKiB7QGxpbmsgI2ZpcnN0fSwge0BsaW5rICNuZXh0fSwge0BsaW5rICNwcmV2aW91c30sIG9yIHtAbGluayAjbGFzdH0uIAorICAgICAqIElmIHRoZSBpdGVyYXRvciBpcyBub3QgcG9pbnRpbmcgYXQgYSB2YWxpZCBtYXRjaCwgZm9yIGluc3RhbmNlIGp1c3QgCisgICAgICogYWZ0ZXIgY29uc3RydWN0aW9uIG9yIGFmdGVyIDx0dD5ET05FPC90dD4gaGFzIGJlZW4gcmV0dXJuZWQsIGFuIGVtcHR5IAorICAgICAqIFN0cmluZyB3aWxsIGJlIHJldHVybmVkLiBTZWUgZ2V0TWF0Y2hTdGFydCBmb3IgbW9yZSBpbmZvcm1hdGlvbgorICAgICAqIEBzZWUgI2dldE1hdGNoU3RhcnQKKyAgICAgKiBAc2VlICNnZXRNYXRjaExlbmd0aAorICAgICAqIEBzZWUgI2ZpcnN0CisgICAgICogQHNlZSAjbmV4dAorICAgICAqIEBzZWUgI3ByZXZpb3VzCisgICAgICogQHNlZSAjbGFzdAorICAgICAqIEBzZWUgI0RPTkUKKyAgICAgKiBAcmV0dXJuIHRoZSBzdWJzdHJpbmcgaW4gdGhlIHRhcmdldCB0ZXh0IG9mIHRoZSBtb3N0IHJlY2VudCBtYXRjaCAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldE1hdGNoZWRUZXh0KCkgCisgICAgeworICAgICAgICBpZiAobWF0Y2hMZW5ndGggPiAwKSB7CisgICAgICAgICAgICBpbnQgbGltaXQgPSBtX2xhc3RNYXRjaFN0YXJ0XyArIG1hdGNoTGVuZ3RoOworICAgIAkJU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIobWF0Y2hMZW5ndGgpOworICAgIAkJcmVzdWx0LmFwcGVuZCh0YXJnZXRUZXh0LmN1cnJlbnQoKSk7CisgICAgCQl0YXJnZXRUZXh0Lm5leHQoKTsKKyAgICAJCXdoaWxlICh0YXJnZXRUZXh0LmdldEluZGV4KCkgPCBsaW1pdCkgeworICAgIAkJCXJlc3VsdC5hcHBlbmQodGFyZ2V0VGV4dC5jdXJyZW50KCkpOworICAgIAkJCXRhcmdldFRleHQubmV4dCgpOworICAgIAkJfQorICAgICAgICAgICAgdGFyZ2V0VGV4dC5zZXRJbmRleChtX2xhc3RNYXRjaFN0YXJ0Xyk7CisgICAgCQlyZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgCX0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisJLy8gbWlzY2VsbGFuZW91cyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCQkKKwkvKioKKyAgICAgKiBTZWFyY2ggPGI+Zm9yd2FyZHM8L2I+IGluIHRoZSB0YXJnZXQgdGV4dCBmb3IgdGhlIG5leHQgdmFsaWQgbWF0Y2gsCisgICAgICogc3RhcnRpbmcgdGhlIHNlYXJjaCBmcm9tIHRoZSBjdXJyZW50IGl0ZXJhdG9yIHBvc2l0aW9uLiBUaGUgaXRlcmF0b3IgaXMgCisJICogYWRqdXN0ZWQgc28gdGhhdCBpdHMgY3VycmVudCBpbmRleCwgYXMgcmV0dXJuZWQgYnkge0BsaW5rICNnZXRJbmRleH0sCisJICogaXMgdGhlIHN0YXJ0aW5nIHBvc2l0aW9uIG9mIHRoZSBtYXRjaCBpZiBvbmUgd2FzIGZvdW5kLiBJZiBhIG1hdGNoIGlzIAorICAgICAqIGZvdW5kLCB0aGUgaW5kZXggb2YgdGhlIG1hdGNoIGlzIHJldHVybmVkLCBvdGhlcndpc2UgPHR0PkRPTkU8L3R0PiBpcworICAgICAqIHJldHVybmVkLiAgSWYgb3ZlcmxhcHBpbmcgbW9kZSBpcyBzZXQsIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGZvdW5kIG1hdGNoCisgICAgICogY2FuIGJlIGJlZm9yZSB0aGUgZW5kIG9mIHRoZSBjdXJyZW50IG1hdGNoLCBpZiBhbnkuCisJICogQHJldHVybiBUaGUgc3RhcnRpbmcgaW5kZXggb2YgdGhlIG5leHQgZm9yd2FyZCBtYXRjaCBhZnRlciB0aGUgY3VycmVudCAKKyAgICAgKiAgICAgICAgIGl0ZXJhdG9yIHBvc2l0aW9uLCBvciAKKwkgKiAgICAgICAgIDx0dD5ET05FPC90dD4gaWYgdGhlcmUgYXJlIG5vIG1vcmUgbWF0Y2hlcy4KKwkgKiBAc2VlICNnZXRNYXRjaFN0YXJ0CisgICAgICogQHNlZSAjZ2V0TWF0Y2hMZW5ndGgKKyAgICAgKiBAc2VlICNnZXRNYXRjaGVkVGV4dAorICAgICAqIEBzZWUgI2ZvbGxvd2luZworICAgICAqIEBzZWUgI3ByZWNlZGluZworICAgICAqIEBzZWUgI3ByZXZpb3VzCisgICAgICogQHNlZSAjZmlyc3QKKyAgICAgKiBAc2VlICNsYXN0CisgICAgICogQHNlZSAjRE9ORQorICAgICAqLworICAgIHB1YmxpYyBpbnQgbmV4dCgpCisgICAgeworICAgIAlpbnQgc3RhcnQgPSB0YXJnZXRUZXh0LmdldEluZGV4KCk7CisgICAgCWlmIChtX3NldE9mZnNldF8gIT0gRE9ORSkgeworCSAgICAJc3RhcnQgPSBtX3NldE9mZnNldF87CQorCSAgICAJbV9zZXRPZmZzZXRfID0gRE9ORTsJCisJICAgIH0KKwkgICAgaWYgKG1faXNGb3J3YXJkU2VhcmNoaW5nXykgeworCSAgICAJaWYgKCFtX3Jlc2V0XyAmJiAKKwkgICAgICAgIAlzdGFydCArIG1hdGNoTGVuZ3RoID49IHRhcmdldFRleHQuZ2V0RW5kSW5kZXgoKSkgeworCSAgICAgICAgICAgIC8vIG5vdCBlbm91Z2ggY2hhcmFjdGVycyB0byBtYXRjaAorICAgICAgICAgICAgICAgIG1hdGNoTGVuZ3RoID0gMDsKKyAgICAgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KHRhcmdldFRleHQuZ2V0RW5kSW5kZXgoKSk7CisgICAgICAgICAgICAgICAgbV9sYXN0TWF0Y2hTdGFydF8gPSBET05FOworCSAgICAgICAgICAgIHJldHVybiBET05FOyAKKwkgICAgICAgIH0KKwkgICAgICAgIG1fcmVzZXRfID0gZmFsc2U7CisJICAgIH0KKwkgICAgZWxzZSB7CisJICAgICAgICAvLyBzd2l0Y2hpbmcgZGlyZWN0aW9uLiAKKwkgICAgICAgIC8vIGlmIG1hdGNoZWRJbmRleCA9PSBVU0VBUkNIX0RPTkUsIGl0IG1lYW5zIHRoYXQgZWl0aGVyIGEgCisJICAgICAgICAvLyBzZXRJbmRleCBoYXMgYmVlbiBjYWxsZWQgb3IgdGhhdCBwcmV2aW91cyByYW4gb2ZmIHRoZSB0ZXh0CisJICAgICAgICAvLyBzdHJpbmcuIHRoZSBpdGVyYXRvciB3b3VsZCBoYXZlIGJlZW4gc2V0IHRvIG9mZnNldCAwIGlmIGEgCisJICAgICAgICAvLyBtYXRjaCBpcyBub3QgZm91bmQuCisJICAgICAgICBtX2lzRm9yd2FyZFNlYXJjaGluZ18gPSB0cnVlOworCSAgICAgICAgaWYgKHN0YXJ0ICE9IERPTkUpIHsKKwkgICAgICAgICAgICAvLyB0aGVyZSdzIG5vIG5lZWQgdG8gc2V0IHRoZSBjb2xsYXRpb24gZWxlbWVudCBpdGVyYXRvcgorCSAgICAgICAgICAgIC8vIHRoZSBuZXh0IGNhbGwgdG8gbmV4dCB3aWxsIHNldCB0aGUgb2Zmc2V0LgorCSAgICAgICAgICAgIHJldHVybiBzdGFydDsKKwkgICAgICAgIH0KKwkgICAgfQorCSAgICAKKyAgICAgICAgaWYgKHN0YXJ0ID09IERPTkUpIHsKKyAgICAgICAgICAgIHN0YXJ0ID0gdGFyZ2V0VGV4dC5nZXRCZWdpbkluZGV4KCk7CisgICAgICAgIH0KKwkgICAgbV9sYXN0TWF0Y2hTdGFydF8gPSBoYW5kbGVOZXh0KHN0YXJ0KTsKKyAgICAgICAgcmV0dXJuIG1fbGFzdE1hdGNoU3RhcnRfOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNlYXJjaCA8Yj5iYWNrd2FyZHM8L2I+IGluIHRoZSB0YXJnZXQgdGV4dCBmb3IgdGhlIG5leHQgdmFsaWQgbWF0Y2gsCisgICAgICogc3RhcnRpbmcgdGhlIHNlYXJjaCBmcm9tIHRoZSBjdXJyZW50IGl0ZXJhdG9yIHBvc2l0aW9uLiBUaGUgaXRlcmF0b3IgaXMgCisgICAgICogYWRqdXN0ZWQgc28gdGhhdCBpdHMgY3VycmVudCBpbmRleCwgYXMgcmV0dXJuZWQgYnkge0BsaW5rICNnZXRJbmRleH0sCisgICAgICogaXMgdGhlIHN0YXJ0aW5nIHBvc2l0aW9uIG9mIHRoZSBtYXRjaCBpZiBvbmUgd2FzIGZvdW5kLiBJZiBhIG1hdGNoIGlzIAorICAgICAqIGZvdW5kLCB0aGUgaW5kZXggaXMgcmV0dXJuZWQsIG90aGVyd2lzZSA8dHQ+RE9ORTwvdHQ+IGlzIHJldHVybmVkLiAgSWYKKyAgICAgKiBvdmVybGFwcGluZyBtb2RlIGlzIHNldCwgdGhlIGVuZCBvZiB0aGUgZm91bmQgbWF0Y2ggY2FuIGJlIGFmdGVyIHRoZQorICAgICAqIGJlZ2lubmluZyBvZiB0aGUgcHJldmlvdXMgbWF0Y2gsIGlmIGFueS4KKyAgICAgKiBAcmV0dXJuIFRoZSBzdGFydGluZyBpbmRleCBvZiB0aGUgbmV4dCBiYWNrd2FyZHMgbWF0Y2ggYWZ0ZXIgdGhlIGN1cnJlbnQgCisgICAgICogICAgICAgICBpdGVyYXRvciBwb3NpdGlvbiwgb3IgCisgICAgICogICAgICAgICA8dHQ+RE9ORTwvdHQ+IGlmIHRoZXJlIGFyZSBubyBtb3JlIG1hdGNoZXMuCisgICAgICogQHNlZSAjZ2V0TWF0Y2hTdGFydAorICAgICAqIEBzZWUgI2dldE1hdGNoTGVuZ3RoCisgICAgICogQHNlZSAjZ2V0TWF0Y2hlZFRleHQKKyAgICAgKiBAc2VlICNmb2xsb3dpbmcKKyAgICAgKiBAc2VlICNwcmVjZWRpbmcKKyAgICAgKiBAc2VlICNuZXh0CisgICAgICogQHNlZSAjZmlyc3QKKyAgICAgKiBAc2VlICNsYXN0CisgICAgICogQHNlZSAjRE9ORQorICAgICAqLworICAgIHB1YmxpYyBpbnQgcHJldmlvdXMoKQorICAgIHsKKyAgICAJaW50IHN0YXJ0ID0gdGFyZ2V0VGV4dC5nZXRJbmRleCgpOworICAgIAlpZiAobV9zZXRPZmZzZXRfICE9IERPTkUpIHsKKwkgICAgCXN0YXJ0ID0gbV9zZXRPZmZzZXRfOwkKKwkgICAgCW1fc2V0T2Zmc2V0XyA9IERPTkU7CQorCSAgICB9CisgICAgCWlmIChtX3Jlc2V0XykgeworICAgICAgICAgICAgbV9pc0ZvcndhcmRTZWFyY2hpbmdfID0gZmFsc2U7CisgICAgICAgICAgICBtX3Jlc2V0XyA9IGZhbHNlOworICAgICAgICAgICAgc3RhcnQgPSB0YXJnZXRUZXh0LmdldEVuZEluZGV4KCk7OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAobV9pc0ZvcndhcmRTZWFyY2hpbmdfID09IHRydWUpIHsKKyAgICAgICAgICAgIC8vIHN3aXRjaGluZyBkaXJlY3Rpb24uIAorICAgICAgICAgICAgLy8gaWYgbWF0Y2hlZEluZGV4ID09IFVTRUFSQ0hfRE9ORSwgaXQgbWVhbnMgdGhhdCBlaXRoZXIgYSAKKyAgICAgICAgICAgIC8vIHNldEluZGV4IGhhcyBiZWVuIGNhbGxlZCBvciB0aGF0IG5leHQgcmFuIG9mZiB0aGUgdGV4dAorICAgICAgICAgICAgLy8gc3RyaW5nLiB0aGUgaXRlcmF0b3Igd291bGQgaGF2ZSBiZWVuIHNldCB0byBvZmZzZXQgdGV4dExlbmd0aCBpZiAKKyAgICAgICAgICAgIC8vIGEgbWF0Y2ggaXMgbm90IGZvdW5kLgorICAgICAgICAgICAgbV9pc0ZvcndhcmRTZWFyY2hpbmdfID0gZmFsc2U7CisgICAgICAgICAgICBpZiAoc3RhcnQgIT0gdGFyZ2V0VGV4dC5nZXRFbmRJbmRleCgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXJ0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAJaWYgKHN0YXJ0ID09IHRhcmdldFRleHQuZ2V0QmVnaW5JbmRleCgpKSB7CisgICAgICAgICAgICAgICAgLy8gbm90IGVub3VnaCBjaGFyYWN0ZXJzIHRvIG1hdGNoCisgICAgICAgICAgICAgICAgbWF0Y2hMZW5ndGggPSAwOworICAgICAgICAgICAgICAgIHRhcmdldFRleHQuc2V0SW5kZXgodGFyZ2V0VGV4dC5nZXRCZWdpbkluZGV4KCkpOworICAgICAgICAgICAgICAgIG1fbGFzdE1hdGNoU3RhcnRfID0gRE9ORTsKKyAgICAgICAgICAgICAgICByZXR1cm4gRE9ORTsgCisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBtX2xhc3RNYXRjaFN0YXJ0XyA9IGhhbmRsZVByZXZpb3VzKHN0YXJ0KTsKKyAgICAgICAgcmV0dXJuIG1fbGFzdE1hdGNoU3RhcnRfOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBvdmVybGFwcGluZyBwcm9wZXJ0eSBoYXMgYmVlbiBzZXQuCisgICAgICogU2VlIHNldE92ZXJsYXBwaW5nKGJvb2xlYW4pIGZvciBtb3JlIGluZm9ybWF0aW9uLgorICAgICAqIEBzZWUgI3NldE92ZXJsYXBwaW5nCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBvdmVybGFwcGluZyBwcm9wZXJ0eSBoYXMgYmVlbiBzZXQsIGZhbHNlIG90aGVyd2lzZQorICAgICAqIEBkcmFmdCByZWxlYXNlIDIuMgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzT3ZlcmxhcHBpbmcoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBtX2lzT3ZlcmxhcF87CisgICAgfQorICAgIAorICAgIC8qKiAKKwkgKiA8cD4KKyAgICAgKiBSZXNldHMgdGhlIHNlYXJjaCBpdGVyYXRpb24uIEFsbCBwcm9wZXJ0aWVzIHdpbGwgYmUgcmVzZXQgdG8gdGhlaXIKKyAgICAgKiBkZWZhdWx0IHZhbHVlcy4KKyAgICAgKiA8L3A+CisJICogPHA+CisgICAgICogSWYgYSBmb3J3YXJkIGl0ZXJhdGlvbiBpcyBpbml0aWF0ZWQsIHRoZSBuZXh0IHNlYXJjaCB3aWxsIGJlZ2luIGF0IHRoZQorICAgICAqIHN0YXJ0IG9mIHRoZSB0YXJnZXQgdGV4dC4gT3RoZXJ3aXNlLCBpZiBhIGJhY2t3YXJkcyBpdGVyYXRpb24gaXMgaW5pdGlhdGVkLAorICAgICAqIHRoZSBuZXh0IHNlYXJjaCB3aWxsIGJlZ2luIGF0IHRoZSBlbmQgb2YgdGhlIHRhcmdldCB0ZXh0LgorICAgICAqIDwvcD4KKwkgKiBAZHJhZnQgcmVsZWFzZSAyLjIKKwkgKi8KKwlwdWJsaWMgdm9pZCByZXNldCgpCisJeworCQkvLyByZXNldCBpcyBzZXR0aW5nIHRoZSBhdHRyaWJ1dGVzIHRoYXQgYXJlIGFscmVhZHkgaW4gc3RyaW5nIHNlYXJjaAorICAgICAgICBtYXRjaExlbmd0aCA9IDA7CisgICAgICAgIHNldEluZGV4KHRhcmdldFRleHQuZ2V0QmVnaW5JbmRleCgpKTsKKyAgICAgICAgbV9pc092ZXJsYXBfID0gZmFsc2U7CisgICAgICAgIG1faXNGb3J3YXJkU2VhcmNoaW5nXyA9IHRydWU7CisgICAgICAgIG1fcmVzZXRfID0gdHJ1ZTsKKyAgICAgICAgbV9zZXRPZmZzZXRfID0gRE9ORTsKKwl9CisJCisJLyoqCisgICAgICogUmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgPGI+Zm9yd2FyZDwvYj4gbWF0Y2ggaW4gdGhlIHRhcmdldCB0ZXh0LiAKKyAgICAgKiBUaGlzIG1ldGhvZCBzZXRzIHRoZSBpdGVyYXRpb24gdG8gYmVnaW4gYXQgdGhlIHN0YXJ0IG9mIHRoZSAKKyAgICAgKiB0YXJnZXQgdGV4dCBhbmQgc2VhcmNoZXMgZm9yd2FyZCBmcm9tIHRoZXJlLgorICAgICAqIEByZXR1cm4gVGhlIGluZGV4IG9mIHRoZSBmaXJzdCBmb3J3YXJkIG1hdGNoLCBvciA8Y29kZT5ET05FPC9jb2RlPiAKKyAgICAgKiAJCSAgIGlmIHRoZXJlIGFyZSBubyBtYXRjaGVzLgorICAgICAqIEBzZWUgI2dldE1hdGNoU3RhcnQKKyAgICAgKiBAc2VlICNnZXRNYXRjaExlbmd0aAorICAgICAqIEBzZWUgI2dldE1hdGNoZWRUZXh0CisgICAgICogQHNlZSAjZm9sbG93aW5nCisgICAgICogQHNlZSAjcHJlY2VkaW5nCisgICAgICogQHNlZSAjbmV4dAorICAgICAqIEBzZWUgI3ByZXZpb3VzCisgICAgICogQHNlZSAjbGFzdAorICAgICAqIEBzZWUgI0RPTkUKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGZpcnN0KCkgCisgICAgeworICAgICAgICBtX2lzRm9yd2FyZFNlYXJjaGluZ18gPSB0cnVlOworICAgICAgICBzZXRJbmRleCh0YXJnZXRUZXh0LmdldEJlZ2luSW5kZXgoKSk7CisgICAgICAgIHJldHVybiBuZXh0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgPGI+Zm9yd2FyZDwvYj4gbWF0Y2ggaW4gdGFyZ2V0IHRleHQgdGhhdCAKKyAgICAgKiBpcyBhdCBvciBhZnRlciBhcmd1bWVudCA8dHQ+cG9zaXRpb248L3R0Pi4gCisgICAgICogVGhpcyBtZXRob2Qgc2V0cyB0aGUgaXRlcmF0aW9uIHRvIGJlZ2luIGF0IHRoZSBzcGVjaWZpZWQKKyAgICAgKiBwb3NpdGlvbiBpbiB0aGUgdGhlIHRhcmdldCB0ZXh0IGFuZCBzZWFyY2hlcyBmb3J3YXJkIGZyb20gdGhlcmUuCisgICAgICogQHJldHVybiBUaGUgaW5kZXggb2YgdGhlIGZpcnN0IGZvcndhcmQgbWF0Y2gsIG9yIDxjb2RlPkRPTkU8L2NvZGU+IAorICAgICAqICAgICAgICAgaWYgdGhlcmUgYXJlIG5vIG1hdGNoZXMuCisgICAgICogQHNlZSAjZ2V0TWF0Y2hTdGFydAorICAgICAqIEBzZWUgI2dldE1hdGNoTGVuZ3RoCisgICAgICogQHNlZSAjZ2V0TWF0Y2hlZFRleHQKKyAgICAgKiBAc2VlICNmaXJzdAorICAgICAqIEBzZWUgI3ByZWNlZGluZworICAgICAqIEBzZWUgI25leHQKKyAgICAgKiBAc2VlICNwcmV2aW91cworICAgICAqIEBzZWUgI2xhc3QKKyAgICAgKiBAc2VlICNET05FCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBmb2xsb3dpbmcoaW50IHBvc2l0aW9uKSAKKyAgICB7CisgICAgCW1faXNGb3J3YXJkU2VhcmNoaW5nXyA9IHRydWU7CisgICAgCS8vIHBvc2l0aW9uIGNoZWNrZWQgaW4gdXNlYXJjaF9zZXRPZmZzZXQKKyAgICAgICAgc2V0SW5kZXgocG9zaXRpb24pOworICAgICAgICByZXR1cm4gbmV4dCgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBmaXJzdCA8Yj5iYWNrd2FyZDwvYj4gbWF0Y2ggaW4gdGFyZ2V0IHRleHQuIAorICAgICAqIFRoaXMgbWV0aG9kIHNldHMgdGhlIGl0ZXJhdGlvbiB0byBiZWdpbiBhdCB0aGUgZW5kIG9mIHRoZSAKKyAgICAgKiB0YXJnZXQgdGV4dCBhbmQgc2VhcmNoZXMgYmFja3dhcmRzIGZyb20gdGhlcmUuCisgICAgICogQHJldHVybiBUaGUgc3RhcnRpbmcgaW5kZXggb2YgdGhlIGZpcnN0IGJhY2t3YXJkIG1hdGNoLCBvciAKKyAgICAgKiAgICAgICAgIDxjb2RlPkRPTkU8L2NvZGU+IGlmIHRoZXJlIGFyZSBubyBtYXRjaGVzLgorICAgICAqIEBzZWUgI2dldE1hdGNoU3RhcnQKKyAgICAgKiBAc2VlICNnZXRNYXRjaExlbmd0aAorICAgICAqIEBzZWUgI2dldE1hdGNoZWRUZXh0CisgICAgICogQHNlZSAjZmlyc3QKKyAgICAgKiBAc2VlICNwcmVjZWRpbmcKKyAgICAgKiBAc2VlICNuZXh0CisgICAgICogQHNlZSAjcHJldmlvdXMKKyAgICAgKiBAc2VlICNmb2xsb3dpbmcKKyAgICAgKiBAc2VlICNET05FCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBsYXN0KCkgCisgICAgeworICAgICAgICBtX2lzRm9yd2FyZFNlYXJjaGluZ18gPSBmYWxzZTsKKyAgICAgICAgc2V0SW5kZXgodGFyZ2V0VGV4dC5nZXRFbmRJbmRleCgpKTsKKyAgICAgICAgcmV0dXJuIHByZXZpb3VzKCk7CisgICAgfQorICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBmaXJzdCA8Yj5iYWNrd2FyZHM8L2I+IG1hdGNoIGluIHRhcmdldCAKKyAgICAgKiB0ZXh0IHRoYXQgZW5kcyBhdCBvciBiZWZvcmUgYXJndW1lbnQgPHR0PnBvc2l0aW9uPC90dD4uIAorICAgICAqIFRoaXMgbWV0aG9kIHNldHMgdGhlIGl0ZXJhdGlvbiB0byBiZWdpbiBhdCB0aGUgYXJndW1lbnQKKyAgICAgKiBwb3NpdGlvbiBpbmRleCBvZiB0aGUgdGFyZ2V0IHRleHQgYW5kIHNlYXJjaGVzIGJhY2t3YXJkcyBmcm9tIHRoZXJlLgorICAgICAqIEByZXR1cm4gVGhlIHN0YXJ0aW5nIGluZGV4IG9mIHRoZSBmaXJzdCBiYWNrd2FyZHMgbWF0Y2gsIG9yIAorICAgICAqICAgICAgICAgPGNvZGU+RE9ORTwvY29kZT4gCisgICAgICogICAgICAgICBpZiB0aGVyZSBhcmUgbm8gbWF0Y2hlcy4KKyAgICAgKiBAc2VlICNnZXRNYXRjaFN0YXJ0CisgICAgICogQHNlZSAjZ2V0TWF0Y2hMZW5ndGgKKyAgICAgKiBAc2VlICNnZXRNYXRjaGVkVGV4dAorICAgICAqIEBzZWUgI2ZpcnN0CisgICAgICogQHNlZSAjZm9sbG93aW5nCisgICAgICogQHNlZSAjbmV4dAorICAgICAqIEBzZWUgI3ByZXZpb3VzCisgICAgICogQHNlZSAjbGFzdAorICAgICAqIEBzZWUgI0RPTkUKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IHByZWNlZGluZyhpbnQgcG9zaXRpb24pIAorICAgIHsKKyAgICAgICAgbV9pc0ZvcndhcmRTZWFyY2hpbmdfID0gZmFsc2U7CisgICAgICAgIC8vIHBvc2l0aW9uIGNoZWNrZWQgaW4gdXNlYXJjaF9zZXRPZmZzZXQKKyAgICAgICAgc2V0SW5kZXgocG9zaXRpb24pOworICAgICAgICByZXR1cm4gcHJldmlvdXMoKTsgICAKKyAgICB9CisgICAgCisgICAgLy8gcHJvdGVjdGVkIGRhdGEgbWVtYmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgQnJlYWtJdGVyYXRvciB0byBkZWZpbmUgdGhlIGJvdW5kYXJpZXMgb2YgYSBsb2dpY2FsIG1hdGNoLgorICAgICAqIFRoaXMgdmFsdWUgY2FuIGJlIGEgbnVsbC4KKyAgICAgKiBTZWUgY2xhc3MgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KKyAgICAgKiBAc2VlICNzZXRCcmVha0l0ZXJhdG9yKEJyZWFrSXRlcmF0b3IpCisgICAgICogQHNlZSAjZ2V0QnJlYWtJdGVyYXRvcgorICAgICAqIEBzZWUgQnJlYWtJdGVyYXRvcgorICAgICAqLworICAgIHByb3RlY3RlZCBCcmVha0l0ZXJhdG9yIGJyZWFrSXRlcmF0b3I7IAorCisgICAgLyoqCisgICAgICogVGFyZ2V0IHRleHQgZm9yIHNlYXJjaGluZy4KKyAgICAgKiBAc2VlICNzZXRUYXJnZXQoQ2hhcmFjdGVySXRlcmF0b3IpCisgICAgICogQHNlZSAjZ2V0VGFyZ2V0CisgICAgICovCisgICAgcHJvdGVjdGVkIENoYXJhY3Rlckl0ZXJhdG9yIHRhcmdldFRleHQ7CisgICAgLyoqCisgICAgICogTGVuZ3RoIG9mIHRoZSBtb3N0IGN1cnJlbnQgbWF0Y2ggaW4gdGFyZ2V0IHRleHQuIAorICAgICAqIFZhbHVlIDAgaXMgdGhlIGRlZmF1bHQgdmFsdWUuCisgICAgICogQHNlZSAjc2V0TWF0Y2hMZW5ndGgKKyAgICAgKiBAc2VlICNnZXRNYXRjaExlbmd0aAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgbWF0Y2hMZW5ndGg7CisgICAgCisgICAgLy8gcHJvdGVjdGVkIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKwkvKioKKyAgICAgKiBQcm90ZWN0ZWQgY29uc3RydWN0b3IgZm9yIHVzZSBieSBzdWJjbGFzc2VzLgorICAgICAqIEluaXRpYWxpemVzIHRoZSBpdGVyYXRvciB3aXRoIHRoZSBhcmd1bWVudCB0YXJnZXQgdGV4dCBmb3Igc2VhcmNoaW5nIAorICAgICAqIGFuZCBzZXRzIHRoZSBCcmVha0l0ZXJhdG9yLgorICAgICAqIFNlZSBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGRldGFpbHMgb24gdGhlIHVzZSBvZiB0aGUgdGFyZ2V0IHRleHQKKyAgICAgKiBhbmQgQnJlYWtJdGVyYXRvci4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0IFRoZSB0YXJnZXQgdGV4dCB0byBiZSBzZWFyY2hlZC4KKyAgICAgKiBAcGFyYW0gYnJlYWtlciBBIHtAbGluayBCcmVha0l0ZXJhdG9yfSB0aGF0IGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSAKKyAgICAgKiAgICAgICAgICAgICAgICBib3VuZGFyaWVzIG9mIGEgbG9naWNhbCBtYXRjaC4gVGhpcyBhcmd1bWVudCBjYW4gYmUgbnVsbC4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB0aHJvd24gd2hlbiBhcmd1bWVudCB0YXJnZXQgaXMgbnVsbCwKKyAgICAgKiAgICAgICAgICAgIG9yIG9mIGxlbmd0aCAwCisgICAgICogQHNlZSBCcmVha0l0ZXJhdG9yICAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgU2VhcmNoSXRlcmF0b3IoQ2hhcmFjdGVySXRlcmF0b3IgdGFyZ2V0LCBCcmVha0l0ZXJhdG9yIGJyZWFrZXIpCisgICAgeworICAgICAgICBpZiAodGFyZ2V0ID09IG51bGwgCisgICAgICAgICAgICB8fCAodGFyZ2V0LmdldEVuZEluZGV4KCkgLSB0YXJnZXQuZ2V0QmVnaW5JbmRleCgpKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIklsbGVnYWwgYXJndW1lbnQgdGFyZ2V0LiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBBcmd1bWVudCBjYW4gbm90IGJlIG51bGwgb3Igb2YgbGVuZ3RoIDAiKTsKKyAgICAgICAgfQorICAgIAl0YXJnZXRUZXh0ID0gdGFyZ2V0OworICAgIAlicmVha0l0ZXJhdG9yID0gYnJlYWtlcjsKKyAgICAJaWYgKGJyZWFrSXRlcmF0b3IgIT0gbnVsbCkgeworICAgIAkJYnJlYWtJdGVyYXRvci5zZXRUZXh0KHRhcmdldCk7CisgICAgCX0KKyAgICAJbWF0Y2hMZW5ndGggPSAwOworICAgICAgICBtX2xhc3RNYXRjaFN0YXJ0XyA9IERPTkU7CisgICAgICAgIG1faXNPdmVybGFwXyA9IGZhbHNlOworICAgICAgICBtX2lzRm9yd2FyZFNlYXJjaGluZ18gPSB0cnVlOworICAgICAgICBtX3Jlc2V0XyA9IHRydWU7CisgICAgICAgIG1fc2V0T2Zmc2V0XyA9IERPTkU7CisgICAgfSAgICAKKyAgICAKKyAgICAvLyBwcm90ZWN0ZWQgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAKKyAgICAvKioKKwkgKiBTZXRzIHRoZSBsZW5ndGggb2YgdGhlIG1vc3QgcmVjZW50IG1hdGNoIGluIHRoZSB0YXJnZXQgdGV4dC4gCisJICogU3ViY2xhc3NlcycgaGFuZGxlTmV4dCgpIGFuZCBoYW5kbGVQcmV2aW91cygpIG1ldGhvZHMgc2hvdWxkIGNhbGwgdGhpcyAKKyAgICAgKiBhZnRlciB0aGV5IGZpbmQgYSBtYXRjaCBpbiB0aGUgdGFyZ2V0IHRleHQuICAgIAorCSAqIEBwYXJhbSBsZW5ndGggbmV3IGxlbmd0aCB0byBzZXQKKyAgICAgKiBAc2VlICNoYW5kbGVOZXh0CisgICAgICogQHNlZSAjaGFuZGxlUHJldmlvdXMKKwkgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBzZXRNYXRjaExlbmd0aChpbnQgbGVuZ3RoKQorICAgIHsKKyAgICAJbWF0Y2hMZW5ndGggPSBsZW5ndGg7CisgICAgfQorCisJLyoqCisJICogPHA+CisgICAgICogQWJzdHJhY3QgbWV0aG9kIHRoYXQgc3ViY2xhc3NlcyBvdmVycmlkZSB0byBwcm92aWRlIHRoZSBtZWNoYW5pc20gCisJICogZm9yIGZpbmRpbmcgdGhlIG5leHQgPGI+Zm9yd2FyZHM8L2I+IG1hdGNoIGluIHRoZSB0YXJnZXQgdGV4dC4gVGhpcyAKKyAgICAgKiBhbGxvd3MgZGlmZmVyZW50IHN1YmNsYXNzZXMgdG8gcHJvdmlkZSBkaWZmZXJlbnQgc2VhcmNoIGFsZ29yaXRobXMuCisgICAgICogPC9wPiAKKwkgKiA8cD4KKyAgICAgKiBJZiBhIG1hdGNoIGlzIGZvdW5kLCB0aGlzIGZ1bmN0aW9uIG11c3QgY2FsbCBzZXRNYXRjaExlbmd0aChpbnQpIHRvCisgICAgICogc2V0IHRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdCBtYXRjaC4KKyAgICAgKiBUaGUgaXRlcmF0b3IgaXMgYWRqdXN0ZWQgc28gdGhhdCBpdHMgY3VycmVudCBpbmRleCwgYXMgcmV0dXJuZWQgYnkgCisgICAgICoge0BsaW5rICNnZXRJbmRleH0sIGlzIHRoZSBzdGFydGluZyBwb3NpdGlvbiBvZiB0aGUgbWF0Y2ggaWYgb25lIHdhcyAKKyAgICAgKiBmb3VuZC4gSWYgYSBtYXRjaCBpcyBub3QgZm91bmQsIDx0dD5ET05FPC90dD4gd2lsbCBiZSByZXR1cm5lZC4KKyAgICAgKiA8L3A+IAorCSAqIEBwYXJhbSBzdGFydCBpbmRleCBpbiB0aGUgdGFyZ2V0IHRleHQgYXQgd2hpY2ggdGhlIGZvcndhcmRzIHNlYXJjaCAKKyAgICAgKiAgICAgICAgc2hvdWxkIGJlZ2luLgorCSAqIEByZXR1cm4gdGhlIHN0YXJ0aW5nIGluZGV4IG9mIHRoZSBuZXh0IGZvcndhcmRzIG1hdGNoIGlmIGZvdW5kLCBET05FIAorICAgICAqICAgICAgICAgb3RoZXJ3aXNlCisJICogQHNlZSAjc2V0TWF0Y2hMZW5ndGgoaW50KQorICAgICAqIEBzZWUgI2hhbmRsZVByZXZpb3VzKGludCkKKyAgICAgKiBAc2VlICNET05FCisJICovCisgICAgcHJvdGVjdGVkIGFic3RyYWN0IGludCBoYW5kbGVOZXh0KGludCBzdGFydCk7CisgICAgCisgICAgLyoqCisJICogPHA+CisgICAgICogQWJzdHJhY3QgbWV0aG9kIHdoaWNoIHN1YmNsYXNzZXMgb3ZlcnJpZGUgdG8gcHJvdmlkZSB0aGUgbWVjaGFuaXNtIAorCSAqIGZvciBmaW5kaW5nIHRoZSBuZXh0IDxiPmJhY2t3YXJkczwvYj4gbWF0Y2ggaW4gdGhlIHRhcmdldCB0ZXh0LiAKKyAgICAgKiBUaGlzIGFsbG93cyBkaWZmZXJlbnQgCisJICogc3ViY2xhc3NlcyB0byBwcm92aWRlIGRpZmZlcmVudCBzZWFyY2ggYWxnb3JpdGhtcy4gCisgICAgICogPC9wPiAKKwkgKiA8cD4KKyAgICAgKiBJZiBhIG1hdGNoIGlzIGZvdW5kLCB0aGlzIGZ1bmN0aW9uIG11c3QgY2FsbCBzZXRNYXRjaExlbmd0aChpbnQpIHRvCisgICAgICogc2V0IHRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdCBtYXRjaC4KKyAgICAgKiBUaGUgaXRlcmF0b3IgaXMgYWRqdXN0ZWQgc28gdGhhdCBpdHMgY3VycmVudCBpbmRleCwgYXMgcmV0dXJuZWQgYnkgCisgICAgICoge0BsaW5rICNnZXRJbmRleH0sIGlzIHRoZSBzdGFydGluZyBwb3NpdGlvbiBvZiB0aGUgbWF0Y2ggaWYgb25lIHdhcyAKKyAgICAgKiBmb3VuZC4gSWYgYSBtYXRjaCBpcyBub3QgZm91bmQsIDx0dD5ET05FPC90dD4gd2lsbCBiZSByZXR1cm5lZC4KKyAgICAgKiA8L3A+IAorCSAqIEBwYXJhbSBzdGFydCBpbmRleCBpbiB0aGUgdGFyZ2V0IHRleHQgYXQgd2hpY2ggdGhlIGJhY2t3YXJkcyBzZWFyY2ggCisgICAgICogICAgICAgIHNob3VsZCBiZWdpbi4KKwkgKiBAcmV0dXJuIHRoZSBzdGFydGluZyBpbmRleCBvZiB0aGUgbmV4dCBiYWNrd2FyZHMgbWF0Y2ggaWYgZm91bmQsIAorICAgICAqICAgICAgICAgRE9ORSBvdGhlcndpc2UKKwkgKiBAc2VlICNzZXRNYXRjaExlbmd0aChpbnQpCisgICAgICogQHNlZSAjaGFuZGxlTmV4dChpbnQpCisgICAgICogQHNlZSAjRE9ORQorCSAqLworICAgIHByb3RlY3RlZCBhYnN0cmFjdCBpbnQgaGFuZGxlUHJldmlvdXMoaW50IHN0YXJ0QXQpOworICAgIAorICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIEZsYWcgaW5kaWNhdGVzIGlmIHdlIGFyZSBkb2luZyBhIGZvcndhcmRzIHNlYXJjaAorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBtX2lzRm9yd2FyZFNlYXJjaGluZ187CisgICAgLyoqCisgICAgICogRmxhZyB0byBpbmRpY2F0ZSBpZiBvdmVybGFwcGluZyBzZWFyY2ggaXMgdG8gYmUgZG9uZS4KKyAgICAgKiBFLmcuIGxvb2tpbmcgZm9yICJhYSIgaW4gImFhYSIgd2lsbCB5aWVsZCBtYXRjaGVzIGF0IG9mZnNldCAwIGFuZCAxLgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBtX2lzT3ZlcmxhcF87CisgICAgLyoqCisgICAgICogRmxhZyBpbmRpY2F0ZXMgaWYgd2UgYXJlIGF0IHRoZSBzdGFydCBvZiBhIHN0cmluZyBzZWFyY2guCisgICAgICogVGhpcyBpbmRpY2F0ZXMgdGhhdCB3ZSBhcmUgaW4gZm9yd2FyZCBzZWFyY2ggYW5kIGF0IHRoZSBzdGFydCBvZiBtX3RleHQuCisgICAgICovIAorICAgIHByaXZhdGUgYm9vbGVhbiBtX3Jlc2V0XzsKKyAgICAvKioKKyAgICAgKiBEYXRhIG1lbWJlciB0byBzdG9yZSB1c2VyIGRlZmluZWQgcG9zaXRpb24gaW4gc2V0SW5kZXgoKS4KKyAgICAgKiBJZiBzZXRJbmRleCgpIGlzIG5vdCBjYWxsZWQsIHRoaXMgdmFsdWUgd2lsbCBiZSBET05FLgorICAgICAqLyAKKyAgICBwcml2YXRlIGludCBtX3NldE9mZnNldF87CisgICAgLyoqCisgICAgICogT2Zmc2V0IG9mIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxhc3QgbWF0Y2gKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX2xhc3RNYXRjaFN0YXJ0XzsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1NpbXBsZURhdGVGb3JtYXQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1NpbXBsZURhdGVGb3JtYXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wYmQ1NDU5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvU2ltcGxlRGF0ZUZvcm1hdC5qYXZhCkBAIC0wLDAgKzEsMTM5OSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L3RleHQvU2ltcGxlRGF0ZUZvcm1hdC5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAzLzIwIDA1OjExOjE2ICQgCisgKiAkUmV2aXNpb246IDEuMTMgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlRGF0YTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5TaW1wbGVUaW1lWm9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtOworaW1wb3J0IGphdmEubGFuZy5DbGFzc05vdEZvdW5kRXhjZXB0aW9uOworaW1wb3J0IGphdmEubGFuZy5TdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uOworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5NZXNzYWdlRm9ybWF0OworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGU7CisKKy8qKgorICogPGNvZGU+U2ltcGxlRGF0ZUZvcm1hdDwvY29kZT4gaXMgYSBjb25jcmV0ZSBjbGFzcyBmb3IgZm9ybWF0dGluZyBhbmQKKyAqIHBhcnNpbmcgZGF0ZXMgaW4gYSBsb2NhbGUtc2Vuc2l0aXZlIG1hbm5lci4gSXQgYWxsb3dzIGZvciBmb3JtYXR0aW5nCisgKiAoZGF0ZSAtPiB0ZXh0KSwgcGFyc2luZyAodGV4dCAtPiBkYXRlKSwgYW5kIG5vcm1hbGl6YXRpb24uCisgKgorICogPHA+CisgKiA8Y29kZT5TaW1wbGVEYXRlRm9ybWF0PC9jb2RlPiBhbGxvd3MgeW91IHRvIHN0YXJ0IGJ5IGNob29zaW5nCisgKiBhbnkgdXNlci1kZWZpbmVkIHBhdHRlcm5zIGZvciBkYXRlLXRpbWUgZm9ybWF0dGluZy4gSG93ZXZlciwgeW91CisgKiBhcmUgZW5jb3VyYWdlZCB0byBjcmVhdGUgYSBkYXRlLXRpbWUgZm9ybWF0dGVyIHdpdGggZWl0aGVyCisgKiA8Y29kZT5nZXRUaW1lSW5zdGFuY2U8L2NvZGU+LCA8Y29kZT5nZXREYXRlSW5zdGFuY2U8L2NvZGU+LCBvcgorICogPGNvZGU+Z2V0RGF0ZVRpbWVJbnN0YW5jZTwvY29kZT4gaW4gPGNvZGU+RGF0ZUZvcm1hdDwvY29kZT4uIEVhY2gKKyAqIG9mIHRoZXNlIGNsYXNzIG1ldGhvZHMgY2FuIHJldHVybiBhIGRhdGUvdGltZSBmb3JtYXR0ZXIgaW5pdGlhbGl6ZWQKKyAqIHdpdGggYSBkZWZhdWx0IGZvcm1hdCBwYXR0ZXJuLiBZb3UgbWF5IG1vZGlmeSB0aGUgZm9ybWF0IHBhdHRlcm4KKyAqIHVzaW5nIHRoZSA8Y29kZT5hcHBseVBhdHRlcm48L2NvZGU+IG1ldGhvZHMgYXMgZGVzaXJlZC4KKyAqIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHVzaW5nIHRoZXNlIG1ldGhvZHMsIHNlZQorICoge0BsaW5rIERhdGVGb3JtYXR9LgorICoKKyAqIDxwPgorICogPHN0cm9uZz5UaW1lIEZvcm1hdCBTeW50YXg6PC9zdHJvbmc+CisgKiA8cD4KKyAqIFRvIHNwZWNpZnkgdGhlIHRpbWUgZm9ybWF0IHVzZSBhIDxlbT50aW1lIHBhdHRlcm48L2VtPiBzdHJpbmcuCisgKiBJbiB0aGlzIHBhdHRlcm4sIGFsbCBBU0NJSSBsZXR0ZXJzIGFyZSByZXNlcnZlZCBhcyBwYXR0ZXJuIGxldHRlcnMsCisgKiB3aGljaCBhcmUgZGVmaW5lZCBhcyB0aGUgZm9sbG93aW5nOgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogU3ltYm9sICAgTWVhbmluZyAgICAgICAgICAgICAgICAgUHJlc2VudGF0aW9uICAgICAgICBFeGFtcGxlCisgKiAtLS0tLS0gICAtLS0tLS0tICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0gICAgICAgIC0tLS0tLS0KKyAqIEcgICAgICAgIGVyYSBkZXNpZ25hdG9yICAgICAgICAgIChUZXh0KSAgICAgICAgICAgICAgQUQKKyAqIHkgICAgICAgIHllYXIgICAgICAgICAgICAgICAgICAgIChOdW1iZXIpICAgICAgICAgICAgMTk5NgorICogdSAgICAgICAgZXh0ZW5kZWQgeWVhciAgICAgICAgICAgKE51bWJlcikgICAgICAgICAgICA0NjAxCisgKiBNICAgICAgICBtb250aCBpbiB5ZWFyICAgICAgICAgICAoVGV4dCAmIE51bWJlcikgICAgIEp1bHkgJiAwNworICogZCAgICAgICAgZGF5IGluIG1vbnRoICAgICAgICAgICAgKE51bWJlcikgICAgICAgICAgICAxMAorICogaCAgICAgICAgaG91ciBpbiBhbS9wbSAoMX4xMikgICAgKE51bWJlcikgICAgICAgICAgICAxMgorICogSCAgICAgICAgaG91ciBpbiBkYXkgKDB+MjMpICAgICAgKE51bWJlcikgICAgICAgICAgICAwCisgKiBtICAgICAgICBtaW51dGUgaW4gaG91ciAgICAgICAgICAoTnVtYmVyKSAgICAgICAgICAgIDMwCisgKiBzICAgICAgICBzZWNvbmQgaW4gbWludXRlICAgICAgICAoTnVtYmVyKSAgICAgICAgICAgIDU1CisgKiBTICAgICAgICBtaWxsaXNlY29uZCAgICAgICAgICAgICAoTnVtYmVyKSAgICAgICAgICAgIDk3OAorICogRSAgICAgICAgZGF5IGluIHdlZWsgICAgICAgICAgICAgKFRleHQpICAgICAgICAgICAgICBUdWVzZGF5CisgKiBEICAgICAgICBkYXkgaW4geWVhciAgICAgICAgICAgICAoTnVtYmVyKSAgICAgICAgICAgIDE4OQorICogRiAgICAgICAgZGF5IG9mIHdlZWsgaW4gbW9udGggICAgKE51bWJlcikgICAgICAgICAgICAyICgybmQgV2VkIGluIEp1bHkpCisgKiB3ICAgICAgICB3ZWVrIGluIHllYXIgICAgICAgICAgICAoTnVtYmVyKSAgICAgICAgICAgIDI3CisgKiBXICAgICAgICB3ZWVrIGluIG1vbnRoICAgICAgICAgICAoTnVtYmVyKSAgICAgICAgICAgIDIKKyAqIGEgICAgICAgIGFtL3BtIG1hcmtlciAgICAgICAgICAgIChUZXh0KSAgICAgICAgICAgICAgUE0KKyAqIGsgICAgICAgIGhvdXIgaW4gZGF5ICgxfjI0KSAgICAgIChOdW1iZXIpICAgICAgICAgICAgMjQKKyAqIEsgICAgICAgIGhvdXIgaW4gYW0vcG0gKDB+MTEpICAgIChOdW1iZXIpICAgICAgICAgICAgMAorICogeiAgICAgICAgdGltZSB6b25lICAgICAgICAgICAgICAgKFRleHQpICAgICAgICAgICAgICBQYWNpZmljIFN0YW5kYXJkIFRpbWUKKyAqICcgICAgICAgIGVzY2FwZSBmb3IgdGV4dCAgICAgICAgIChEZWxpbWl0ZXIpCisgKiAnJyAgICAgICBzaW5nbGUgcXVvdGUgICAgICAgICAgICAoTGl0ZXJhbCkgICAgICAgICAgICcKKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogVGhlIGNvdW50IG9mIHBhdHRlcm4gbGV0dGVycyBkZXRlcm1pbmUgdGhlIGZvcm1hdC4KKyAqIDxwPgorICogPHN0cm9uZz4oVGV4dCk8L3N0cm9uZz46IDQgb3IgbW9yZSBwYXR0ZXJuIGxldHRlcnMtLXVzZSBmdWxsIGZvcm0sCisgKiAmbHQ7IDQtLXVzZSBzaG9ydCBvciBhYmJyZXZpYXRlZCBmb3JtIGlmIG9uZSBleGlzdHMuCisgKiA8cD4KKyAqIDxzdHJvbmc+KE51bWJlcik8L3N0cm9uZz46IHRoZSBtaW5pbXVtIG51bWJlciBvZiBkaWdpdHMuIFNob3J0ZXIKKyAqIG51bWJlcnMgYXJlIHplcm8tcGFkZGVkIHRvIHRoaXMgYW1vdW50LiBZZWFyIGlzIGhhbmRsZWQgc3BlY2lhbGx5OworICogdGhhdCBpcywgaWYgdGhlIGNvdW50IG9mICd5JyBpcyAyLCB0aGUgWWVhciB3aWxsIGJlIHRydW5jYXRlZCB0byAyIGRpZ2l0cy4KKyAqIDxwPgorICogPHN0cm9uZz4oVGV4dCAmIE51bWJlcik8L3N0cm9uZz46IDMgb3Igb3ZlciwgdXNlIHRleHQsIG90aGVyd2lzZSB1c2UgbnVtYmVyLgorICogPHA+CisgKiBBbnkgY2hhcmFjdGVycyBpbiB0aGUgcGF0dGVybiB0aGF0IGFyZSBub3QgaW4gdGhlIHJhbmdlcyBvZiBbJ2EnLi4neiddCisgKiBhbmQgWydBJy4uJ1onXSB3aWxsIGJlIHRyZWF0ZWQgYXMgcXVvdGVkIHRleHQuIEZvciBpbnN0YW5jZSwgY2hhcmFjdGVycworICogbGlrZSAnOicsICcuJywgJyAnLCAnIycgYW5kICdAJyB3aWxsIGFwcGVhciBpbiB0aGUgcmVzdWx0aW5nIHRpbWUgdGV4dAorICogZXZlbiB0aGV5IGFyZSBub3QgZW1icmFjZWQgd2l0aGluIHNpbmdsZSBxdW90ZXMuCisgKiA8cD4KKyAqIEEgcGF0dGVybiBjb250YWluaW5nIGFueSBpbnZhbGlkIHBhdHRlcm4gbGV0dGVyIHdpbGwgcmVzdWx0IGluIGEgdGhyb3duCisgKiBleGNlcHRpb24gZHVyaW5nIGZvcm1hdHRpbmcgb3IgcGFyc2luZy4KKyAqCisgKiA8cD4KKyAqIDxzdHJvbmc+RXhhbXBsZXMgVXNpbmcgdGhlIFVTIExvY2FsZTo8L3N0cm9uZz4KKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIEZvcm1hdCBQYXR0ZXJuICAgICAgICAgICAgICAgICAgICAgICAgIFJlc3VsdAorICogLS0tLS0tLS0tLS0tLS0gICAgICAgICAgICAgICAgICAgICAgICAgLS0tLS0tLQorICogInl5eXkuTU0uZGQgRyAnYXQnIEhIOm1tOnNzIHoiICAgIC0+PiAgMTk5Ni4wNy4xMCBBRCBhdCAxNTowODo1NiBQRFQKKyAqICJFRUUsIE1NTSBkLCAnJ3l5IiAgICAgICAgICAgICAgICAtPj4gIFdlZCwgSnVseSAxMCwgJzk2CisgKiAiaDptbSBhIiAgICAgICAgICAgICAgICAgICAgICAgICAgLT4+ICAxMjowOCBQTQorICogImhoICdvJydjbG9jaycgYSwgenp6eiIgICAgICAgICAgIC0+PiAgMTIgbydjbG9jayBQTSwgUGFjaWZpYyBEYXlsaWdodCBUaW1lCisgKiAiSzptbSBhLCB6IiAgICAgICAgICAgICAgICAgICAgICAgLT4+ICAwOjAwIFBNLCBQU1QKKyAqICJ5eXl5eS5NTU1NTS5kZCBHR0cgaGg6bW0gYWFhIiAgICAtPj4gIDAxOTk2Lkp1bHkuMTAgQUQgMTI6MDggUE0KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogPHN0cm9uZz5Db2RlIFNhbXBsZTo8L3N0cm9uZz4KKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIFNpbXBsZVRpbWVab25lIHBkdCA9IG5ldyBTaW1wbGVUaW1lWm9uZSgtOCAqIDYwICogNjAgKiAxMDAwLCAiUFNUIik7CisgKiBwZHQuc2V0U3RhcnRSdWxlKENhbGVuZGFyLkFQUklMLCAxLCBDYWxlbmRhci5TVU5EQVksIDIqNjAqNjAqMTAwMCk7CisgKiBwZHQuc2V0RW5kUnVsZShDYWxlbmRhci5PQ1RPQkVSLCAtMSwgQ2FsZW5kYXIuU1VOREFZLCAyKjYwKjYwKjEwMDApOworICogPGJyPgorICogLy8gRm9ybWF0IHRoZSBjdXJyZW50IHRpbWUuCisgKiBTaW1wbGVEYXRlRm9ybWF0IGZvcm1hdHRlcgorICogICAgID0gbmV3IFNpbXBsZURhdGVGb3JtYXQgKCJ5eXl5Lk1NLmRkIEcgJ2F0JyBoaDptbTpzcyBhIHp6eiIpOworICogRGF0ZSBjdXJyZW50VGltZV8xID0gbmV3IERhdGUoKTsKKyAqIFN0cmluZyBkYXRlU3RyaW5nID0gZm9ybWF0dGVyLmZvcm1hdChjdXJyZW50VGltZV8xKTsKKyAqIDxicj4KKyAqIC8vIFBhcnNlIHRoZSBwcmV2aW91cyBzdHJpbmcgYmFjayBpbnRvIGEgRGF0ZS4KKyAqIFBhcnNlUG9zaXRpb24gcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgKiBEYXRlIGN1cnJlbnRUaW1lXzIgPSBmb3JtYXR0ZXIucGFyc2UoZGF0ZVN0cmluZywgcG9zKTsKKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogSW4gdGhlIGV4YW1wbGUsIHRoZSB0aW1lIHZhbHVlIDxjb2RlPmN1cnJlbnRUaW1lXzI8L2NvZGU+IG9idGFpbmVkIGZyb20KKyAqIHBhcnNpbmcgd2lsbCBiZSBlcXVhbCB0byA8Y29kZT5jdXJyZW50VGltZV8xPC9jb2RlPi4gSG93ZXZlciwgdGhleSBtYXkgbm90IGJlCisgKiBlcXVhbCBpZiB0aGUgYW0vcG0gbWFya2VyICdhJyBpcyBsZWZ0IG91dCBmcm9tIHRoZSBmb3JtYXQgcGF0dGVybiB3aGlsZQorICogdGhlICJob3VyIGluIGFtL3BtIiBwYXR0ZXJuIHN5bWJvbCBpcyB1c2VkLiBUaGlzIGluZm9ybWF0aW9uIGxvc3MgY2FuCisgKiBoYXBwZW4gd2hlbiBmb3JtYXR0aW5nIHRoZSB0aW1lIGluIFBNLgorICoKKyAqIDxwPgorICogV2hlbiBwYXJzaW5nIGEgZGF0ZSBzdHJpbmcgdXNpbmcgdGhlIGFiYnJldmlhdGVkIHllYXIgcGF0dGVybiAoInl5IiksCisgKiBTaW1wbGVEYXRlRm9ybWF0IG11c3QgaW50ZXJwcmV0IHRoZSBhYmJyZXZpYXRlZCB5ZWFyCisgKiByZWxhdGl2ZSB0byBzb21lIGNlbnR1cnkuICBJdCBkb2VzIHRoaXMgYnkgYWRqdXN0aW5nIGRhdGVzIHRvIGJlCisgKiB3aXRoaW4gODAgeWVhcnMgYmVmb3JlIGFuZCAyMCB5ZWFycyBhZnRlciB0aGUgdGltZSB0aGUgU2ltcGxlRGF0ZUZvcm1hdAorICogaW5zdGFuY2UgaXMgY3JlYXRlZC4gRm9yIGV4YW1wbGUsIHVzaW5nIGEgcGF0dGVybiBvZiAiTU0vZGQveXkiIGFuZCBhCisgKiBTaW1wbGVEYXRlRm9ybWF0IGluc3RhbmNlIGNyZWF0ZWQgb24gSmFuIDEsIDE5OTcsICB0aGUgc3RyaW5nCisgKiAiMDEvMTEvMTIiIHdvdWxkIGJlIGludGVycHJldGVkIGFzIEphbiAxMSwgMjAxMiB3aGlsZSB0aGUgc3RyaW5nICIwNS8wNC82NCIKKyAqIHdvdWxkIGJlIGludGVycHJldGVkIGFzIE1heSA0LCAxOTY0LgorICogRHVyaW5nIHBhcnNpbmcsIG9ubHkgc3RyaW5ncyBjb25zaXN0aW5nIG9mIGV4YWN0bHkgdHdvIGRpZ2l0cywgYXMgZGVmaW5lZCBieQorICoge0BsaW5rIENoYXJhY3RlciNpc0RpZ2l0KGNoYXIpfSwgd2lsbCBiZSBwYXJzZWQgaW50byB0aGUgZGVmYXVsdCBjZW50dXJ5LgorICogQW55IG90aGVyIG51bWVyaWMgc3RyaW5nLCBzdWNoIGFzIGEgb25lIGRpZ2l0IHN0cmluZywgYSB0aHJlZSBvciBtb3JlIGRpZ2l0CisgKiBzdHJpbmcsIG9yIGEgdHdvIGRpZ2l0IHN0cmluZyB0aGF0IGlzbid0IGFsbCBkaWdpdHMgKGZvciBleGFtcGxlLCAiLTEiKSwgaXMKKyAqIGludGVycHJldGVkIGxpdGVyYWxseS4gIFNvICIwMS8wMi8zIiBvciAiMDEvMDIvMDAzIiBhcmUgcGFyc2VkLCB1c2luZyB0aGUKKyAqIHNhbWUgcGF0dGVybiwgYXMgSmFuIDIsIDMgQUQuICBMaWtld2lzZSwgIjAxLzAyLy0zIiBpcyBwYXJzZWQgYXMgSmFuIDIsIDQgQkMuCisgKgorICogPHA+CisgKiBJZiB0aGUgeWVhciBwYXR0ZXJuIGRvZXMgbm90IGhhdmUgZXhhY3RseSB0d28gJ3knIGNoYXJhY3RlcnMsIHRoZSB5ZWFyIGlzCisgKiBpbnRlcnByZXRlZCBsaXRlcmFsbHksIHJlZ2FyZGxlc3Mgb2YgdGhlIG51bWJlciBvZiBkaWdpdHMuICBTbyB1c2luZyB0aGUKKyAqIHBhdHRlcm4gIk1NL2RkL3l5eXkiLCAiMDEvMTEvMTIiIHBhcnNlcyB0byBKYW4gMTEsIDEyIEEuRC4KKyAqCisgKiA8cD4KKyAqIEZvciB0aW1lIHpvbmVzIHRoYXQgaGF2ZSBubyBuYW1lcywgdXNlIHN0cmluZ3MgR01UK2hvdXJzOm1pbnV0ZXMgb3IKKyAqIEdNVC1ob3VyczptaW51dGVzLgorICoKKyAqIDxwPgorICogVGhlIGNhbGVuZGFyIGRlZmluZXMgd2hhdCBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLCB0aGUgZmlyc3Qgd2VlaworICogb2YgdGhlIHllYXIsIHdoZXRoZXIgaG91cnMgYXJlIHplcm8gYmFzZWQgb3Igbm90ICgwIHZzIDEyIG9yIDI0KSwgYW5kIHRoZQorICogdGltZSB6b25lLiBUaGVyZSBpcyBvbmUgY29tbW9uIGRlY2ltYWwgZm9ybWF0IHRvIGhhbmRsZSBhbGwgdGhlIG51bWJlcnM7CisgKiB0aGUgZGlnaXQgY291bnQgaXMgaGFuZGxlZCBwcm9ncmFtbWF0aWNhbGx5IGFjY29yZGluZyB0byB0aGUgcGF0dGVybi4KKyAqCisgKiA8aDQ+U3luY2hyb25pemF0aW9uPC9oND4KKyAqCisgKiBEYXRlIGZvcm1hdHMgYXJlIG5vdCBzeW5jaHJvbml6ZWQuIEl0IGlzIHJlY29tbWVuZGVkIHRvIGNyZWF0ZSBzZXBhcmF0ZSAKKyAqIGZvcm1hdCBpbnN0YW5jZXMgZm9yIGVhY2ggdGhyZWFkLiBJZiBtdWx0aXBsZSB0aHJlYWRzIGFjY2VzcyBhIGZvcm1hdCAKKyAqIGNvbmN1cnJlbnRseSwgaXQgbXVzdCBiZSBzeW5jaHJvbml6ZWQgZXh0ZXJuYWxseS4gCisgKgorICogQHNlZSAgICAgICAgICBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyCisgKiBAc2VlICAgICAgICAgIGNvbS5pYm0uaWN1LnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIKKyAqIEBzZWUgICAgICAgICAgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZQorICogQHNlZSAgICAgICAgICBEYXRlRm9ybWF0CisgKiBAc2VlICAgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzCisgKiBAc2VlICAgICAgICAgIERlY2ltYWxGb3JtYXQKKyAqIEB2ZXJzaW9uICAgICAgMS41MSwgMDkvMjQvOTkKKyAqIEBhdXRob3IgICAgICAgTWFyayBEYXZpcywgQ2hlbi1MaWVoIEh1YW5nLCBBbGFuIExpdQorICovCitwdWJsaWMgY2xhc3MgU2ltcGxlRGF0ZUZvcm1hdCBleHRlbmRzIERhdGVGb3JtYXQgeworCisgICAgLy8gdGhlIG9mZmljaWFsIHNlcmlhbCB2ZXJzaW9uIElEIHdoaWNoIHNheXMgY3J5cHRpY2FsbHkKKyAgICAvLyB3aGljaCB2ZXJzaW9uIHdlJ3JlIGNvbXBhdGlibGUgd2l0aAorICAgIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSA0Nzc0ODgxOTcwNTU4ODc1MDI0TDsKKworICAgIC8vIHRoZSBpbnRlcm5hbCBzZXJpYWwgdmVyc2lvbiB3aGljaCBzYXlzIHdoaWNoIHZlcnNpb24gd2FzIHdyaXR0ZW4KKyAgICAvLyAtIDAgKGRlZmF1bHQpIGZvciB2ZXJzaW9uIHVwIHRvIEpESyAxLjEuMworICAgIC8vIC0gMSBmb3IgdmVyc2lvbiBmcm9tIEpESyAxLjEuNCwgd2hpY2ggaW5jbHVkZXMgYSBuZXcgZmllbGQKKyAgICBzdGF0aWMgZmluYWwgaW50IGN1cnJlbnRTZXJpYWxWZXJzaW9uID0gMTsKKworICAgIC8qKgorICAgICAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBzZXJpYWxpemVkIGRhdGEgb24gdGhlIHN0cmVhbS4gIFBvc3NpYmxlIHZhbHVlczoKKyAgICAgKiA8dWw+CisgICAgICogPGxpPjxiPjA8L2I+IG9yIG5vdCBwcmVzZW50IG9uIHN0cmVhbTogSkRLIDEuMS4zLiAgVGhpcyB2ZXJzaW9uCisgICAgICogaGFzIG5vIDxjb2RlPmRlZmF1bHRDZW50dXJ5U3RhcnQ8L2NvZGU+IG9uIHN0cmVhbS4KKyAgICAgKiA8bGk+PGI+MTwvYj4gSkRLIDEuMS40IG9yIGxhdGVyLiAgVGhpcyB2ZXJzaW9uIGFkZHMKKyAgICAgKiA8Y29kZT5kZWZhdWx0Q2VudHVyeVN0YXJ0PC9jb2RlPi4KKyAgICAgKiA8L3VsPgorICAgICAqIFdoZW4gc3RyZWFtaW5nIG91dCB0aGlzIGNsYXNzLCB0aGUgbW9zdCByZWNlbnQgZm9ybWF0CisgICAgICogYW5kIHRoZSBoaWdoZXN0IGFsbG93YWJsZSA8Y29kZT5zZXJpYWxWZXJzaW9uT25TdHJlYW08L2NvZGU+CisgICAgICogaXMgd3JpdHRlbi4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNpbmNlIEpESzEuMS40CisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgc2VyaWFsVmVyc2lvbk9uU3RyZWFtID0gY3VycmVudFNlcmlhbFZlcnNpb247CisKKyAgICAvKioKKyAgICAgKiBUaGUgcGF0dGVybiBzdHJpbmcgb2YgdGhpcyBmb3JtYXR0ZXIuICBUaGlzIGlzIGFsd2F5cyBhIG5vbi1sb2NhbGl6ZWQKKyAgICAgKiBwYXR0ZXJuLiAgTWF5IG5vdCBiZSBudWxsLiAgU2VlIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHMuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHBhdHRlcm47CisKKyAgICAvKioKKyAgICAgKiBUaGUgc3ltYm9scyB1c2VkIGJ5IHRoaXMgZm9ybWF0dGVyIGZvciB3ZWVrIG5hbWVzLCBtb250aCBuYW1lcywKKyAgICAgKiBldGMuICBNYXkgbm90IGJlIG51bGwuCisgICAgICogQHNlcmlhbAorICAgICAqIEBzZWUgRGF0ZUZvcm1hdFN5bWJvbHMKKyAgICAgKi8KKyAgICBwcml2YXRlIERhdGVGb3JtYXRTeW1ib2xzIGZvcm1hdERhdGE7CisKKyAgICAvKioKKyAgICAgKiBXZSBtYXAgZGF0ZXMgd2l0aCB0d28tZGlnaXQgeWVhcnMgaW50byB0aGUgY2VudHVyeSBzdGFydGluZyBhdAorICAgICAqIDxjb2RlPmRlZmF1bHRDZW50dXJ5U3RhcnQ8L2NvZGU+LCB3aGljaCBtYXkgYmUgYW55IGRhdGUuICBNYXkKKyAgICAgKiBub3QgYmUgbnVsbC4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNpbmNlIEpESzEuMS40CisgICAgICovCisgICAgcHJpdmF0ZSBEYXRlIGRlZmF1bHRDZW50dXJ5U3RhcnQ7CisKKyAgICB0cmFuc2llbnQgcHJpdmF0ZSBpbnQgZGVmYXVsdENlbnR1cnlTdGFydFllYXI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgbWlsbGlzUGVySG91ciA9IDYwICogNjAgKiAxMDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBtaWxsaXNQZXJNaW51dGUgPSA2MCAqIDEwMDA7CisKKyAgICAvLyBGb3IgdGltZSB6b25lcyB0aGF0IGhhdmUgbm8gbmFtZXMsIHVzZSBzdHJpbmdzIEdNVCttaW51dGVzIGFuZAorICAgIC8vIEdNVC1taW51dGVzLiBGb3IgaW5zdGFuY2UsIGluIEZyYW5jZSB0aGUgdGltZSB6b25lIGlzIEdNVCs2MC4KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgR01UX1BMVVMgPSAiR01UKyI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEdNVF9NSU5VUyA9ICJHTVQtIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgR01UID0gIkdNVCI7CisKKyAgICAvKioKKyAgICAgKiBDYWNoZSB0byBob2xkIHRoZSBEYXRlVGltZVBhdHRlcm5zIG9mIGEgTG9jYWxlLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIEhhc2h0YWJsZSBjYWNoZWRMb2NhbGVEYXRhID0gbmV3IEhhc2h0YWJsZSgzKTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIFNpbXBsZURhdGVGb3JtYXQgdXNpbmcgdGhlIGRlZmF1bHQgcGF0dGVybiBmb3IgdGhlIGRlZmF1bHQKKyAgICAgKiBsb2NhbGUuICA8Yj5Ob3RlOjwvYj4gTm90IGFsbCBsb2NhbGVzIHN1cHBvcnQgU2ltcGxlRGF0ZUZvcm1hdDsgZm9yIGZ1bGwKKyAgICAgKiBnZW5lcmFsaXR5LCB1c2UgdGhlIGZhY3RvcnkgbWV0aG9kcyBpbiB0aGUgRGF0ZUZvcm1hdCBjbGFzcy4KKyAgICAgKgorICAgICAqIEBzZWUgRGF0ZUZvcm1hdAorICAgICAqLworICAgIHB1YmxpYyBTaW1wbGVEYXRlRm9ybWF0KCkgeworICAgICAgICB0aGlzKFNIT1JULCBTSE9SVCwgTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgU2ltcGxlRGF0ZUZvcm1hdCB1c2luZyB0aGUgZ2l2ZW4gcGF0dGVybiBpbiB0aGUgZGVmYXVsdAorICAgICAqIGxvY2FsZS4gIDxiPk5vdGU6PC9iPiBOb3QgYWxsIGxvY2FsZXMgc3VwcG9ydCBTaW1wbGVEYXRlRm9ybWF0OyBmb3IgZnVsbAorICAgICAqIGdlbmVyYWxpdHksIHVzZSB0aGUgZmFjdG9yeSBtZXRob2RzIGluIHRoZSBEYXRlRm9ybWF0IGNsYXNzLgorICAgICAqLworICAgIHB1YmxpYyBTaW1wbGVEYXRlRm9ybWF0KFN0cmluZyBwYXR0ZXJuKQorICAgIHsKKyAgICAgICAgdGhpcyhwYXR0ZXJuLCBMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBTaW1wbGVEYXRlRm9ybWF0IHVzaW5nIHRoZSBnaXZlbiBwYXR0ZXJuIGFuZCBsb2NhbGUuCisgICAgICogPGI+Tm90ZTo8L2I+IE5vdCBhbGwgbG9jYWxlcyBzdXBwb3J0IFNpbXBsZURhdGVGb3JtYXQ7IGZvciBmdWxsCisgICAgICogZ2VuZXJhbGl0eSwgdXNlIHRoZSBmYWN0b3J5IG1ldGhvZHMgaW4gdGhlIERhdGVGb3JtYXQgY2xhc3MuCisgICAgICovCisgICAgcHVibGljIFNpbXBsZURhdGVGb3JtYXQoU3RyaW5nIHBhdHRlcm4sIExvY2FsZSBsb2MpCisgICAgeworICAgICAgICB0aGlzLnBhdHRlcm4gPSBwYXR0ZXJuOworICAgICAgICB0aGlzLmZvcm1hdERhdGEgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMobG9jKTsKKyAgICAgICAgaW5pdGlhbGl6ZShsb2MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIFNpbXBsZURhdGVGb3JtYXQgdXNpbmcgdGhlIGdpdmVuIHBhdHRlcm4gYW5kCisgICAgICogbG9jYWxlLXNwZWNpZmljIHN5bWJvbCBkYXRhLgorICAgICAqLworICAgIHB1YmxpYyBTaW1wbGVEYXRlRm9ybWF0KFN0cmluZyBwYXR0ZXJuLCBEYXRlRm9ybWF0U3ltYm9scyBmb3JtYXREYXRhKQorICAgIHsKKyAgICAgICAgdGhpcy5wYXR0ZXJuID0gcGF0dGVybjsKKyAgICAgICAgdGhpcy5mb3JtYXREYXRhID0gKERhdGVGb3JtYXRTeW1ib2xzKSBmb3JtYXREYXRhLmNsb25lKCk7CisgICAgICAgIGluaXRpYWxpemUoTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyogUGFja2FnZS1wcml2YXRlLCBjYWxsZWQgYnkgRGF0ZUZvcm1hdCBmYWN0b3J5IG1ldGhvZHMgKi8KKyAgICBTaW1wbGVEYXRlRm9ybWF0KGludCB0aW1lU3R5bGUsIGludCBkYXRlU3R5bGUsIExvY2FsZSBsb2MpIHsKKyAgICAgICAgLyogdHJ5IHRoZSBjYWNoZSBmaXJzdCAqLworICAgICAgICBTdHJpbmdbXSBkYXRlVGltZVBhdHRlcm5zID0gKFN0cmluZ1tdKSBjYWNoZWRMb2NhbGVEYXRhLmdldChsb2MpOworICAgICAgICBpZiAoZGF0ZVRpbWVQYXR0ZXJucyA9PSBudWxsKSB7IC8qIGNhY2hlIG1pc3MgKi8KKyAgICAgICAgICAgIFJlc291cmNlQnVuZGxlIHIgPSBJQ1VMb2NhbGVEYXRhLmdldExvY2FsZUVsZW1lbnRzKGxvYyk7CisgICAgICAgICAgICBkYXRlVGltZVBhdHRlcm5zID0gci5nZXRTdHJpbmdBcnJheSgiRGF0ZVRpbWVQYXR0ZXJucyIpOworICAgICAgICAgICAgLyogdXBkYXRlIGNhY2hlICovCisgICAgICAgICAgICBjYWNoZWRMb2NhbGVEYXRhLnB1dChsb2MsIGRhdGVUaW1lUGF0dGVybnMpOworICAgICAgICB9CisgICAgICAgIGZvcm1hdERhdGEgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMobG9jKTsKKyAgICAgICAgaWYgKCh0aW1lU3R5bGUgPj0gMCkgJiYgKGRhdGVTdHlsZSA+PSAwKSkgeworICAgICAgICAgICAgT2JqZWN0W10gZGF0ZVRpbWVBcmdzID0ge2RhdGVUaW1lUGF0dGVybnNbdGltZVN0eWxlXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlVGltZVBhdHRlcm5zW2RhdGVTdHlsZSArIDRdfTsKKyAgICAgICAgICAgIHBhdHRlcm4gPSBNZXNzYWdlRm9ybWF0LmZvcm1hdChkYXRlVGltZVBhdHRlcm5zWzhdLCBkYXRlVGltZUFyZ3MpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHRpbWVTdHlsZSA+PSAwKSB7CisgICAgICAgICAgICBwYXR0ZXJuID0gZGF0ZVRpbWVQYXR0ZXJuc1t0aW1lU3R5bGVdOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGRhdGVTdHlsZSA+PSAwKSB7CisgICAgICAgICAgICBwYXR0ZXJuID0gZGF0ZVRpbWVQYXR0ZXJuc1tkYXRlU3R5bGUgKyA0XTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk5vIGRhdGUgb3IgdGltZSBzdHlsZSBzcGVjaWZpZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGluaXRpYWxpemUobG9jKTsKKyAgICB9CisKKyAgICAvKiBJbml0aWFsaXplIGNhbGVuZGFyIGFuZCBudW1iZXJGb3JtYXQgZmllbGRzICovCisgICAgcHJpdmF0ZSB2b2lkIGluaXRpYWxpemUoTG9jYWxlIGxvYykgeworICAgICAgICAvLyBUaGUgZm9ybWF0IG9iamVjdCBtdXN0IGJlIGNvbnN0cnVjdGVkIHVzaW5nIHRoZSBzeW1ib2xzIGZvciB0aGlzIHpvbmUuCisgICAgICAgIC8vIEhvd2V2ZXIsIHRoZSBjYWxlbmRhciBzaG91bGQgdXNlIHRoZSBjdXJyZW50IGRlZmF1bHQgVGltZVpvbmUuCisgICAgICAgIC8vIElmIHRoaXMgaXMgbm90IGNvbnRhaW5lZCBpbiB0aGUgbG9jYWxlIHpvbmUgc3RyaW5ncywgdGhlbiB0aGUgem9uZQorICAgICAgICAvLyB3aWxsIGJlIGZvcm1hdHRlZCB1c2luZyBnZW5lcmljIEdNVCsvLUg6TU0gbm9tZW5jbGF0dXJlLgorICAgICAgICBjYWxlbmRhciA9IENhbGVuZGFyLmdldEluc3RhbmNlKFRpbWVab25lLmdldERlZmF1bHQoKSwgbG9jKTsKKyAgICAgICAgbnVtYmVyRm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKGxvYyk7CisgICAgICAgIG51bWJlckZvcm1hdC5zZXRHcm91cGluZ1VzZWQoZmFsc2UpOworICAgICAgICBpZiAobnVtYmVyRm9ybWF0IGluc3RhbmNlb2YgRGVjaW1hbEZvcm1hdCkKKyAgICAgICAgICAgICgoRGVjaW1hbEZvcm1hdCludW1iZXJGb3JtYXQpLnNldERlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bihmYWxzZSk7CisgICAgICAgIG51bWJlckZvcm1hdC5zZXRQYXJzZUludGVnZXJPbmx5KHRydWUpOyAvKiBTbyB0aGF0IGRkLk1NLnl5IGNhbiBiZSBwYXJzZWQgKi8KKyAgICAgICAgbnVtYmVyRm9ybWF0LnNldE1pbmltdW1GcmFjdGlvbkRpZ2l0cygwKTsgLy8gVG8gcHJldmVudCAiSmFuIDEuMDAsIDE5OTcuMDAiCisKKyAgICAgICAgaW5pdGlhbGl6ZURlZmF1bHRDZW50dXJ5KCk7CisgICAgfQorCisgICAgLyogSW5pdGlhbGl6ZSB0aGUgZmllbGRzIHdlIHVzZSB0byBkaXNhbWJpZ3VhdGUgYW1iaWd1b3VzIHllYXJzLiBTZXBhcmF0ZQorICAgICAqIHNvIHdlIGNhbiBjYWxsIGl0IGZyb20gcmVhZE9iamVjdCgpLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBpbml0aWFsaXplRGVmYXVsdENlbnR1cnkoKSB7CisgICAgICAgIGNhbGVuZGFyLnNldFRpbWUoIG5ldyBEYXRlKCkgKTsKKyAgICAgICAgY2FsZW5kYXIuYWRkKCBDYWxlbmRhci5ZRUFSLCAtODAgKTsKKyAgICAgICAgcGFyc2VBbWJpZ3VvdXNEYXRlc0FzQWZ0ZXIoY2FsZW5kYXIuZ2V0VGltZSgpKTsKKyAgICB9CisKKyAgICAvKiBEZWZpbmUgb25lLWNlbnR1cnkgd2luZG93IGludG8gd2hpY2ggdG8gZGlzYW1iaWd1YXRlIGRhdGVzIHVzaW5nCisgICAgICogdHdvLWRpZ2l0IHllYXJzLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBwYXJzZUFtYmlndW91c0RhdGVzQXNBZnRlcihEYXRlIHN0YXJ0RGF0ZSkgeworICAgICAgICBkZWZhdWx0Q2VudHVyeVN0YXJ0ID0gc3RhcnREYXRlOworICAgICAgICBjYWxlbmRhci5zZXRUaW1lKHN0YXJ0RGF0ZSk7CisgICAgICAgIGRlZmF1bHRDZW50dXJ5U3RhcnRZZWFyID0gY2FsZW5kYXIuZ2V0KENhbGVuZGFyLllFQVIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIDEwMC15ZWFyIHBlcmlvZCAyLWRpZ2l0IHllYXJzIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgYmVpbmcgaW4KKyAgICAgKiB0byBiZWdpbiBvbiB0aGUgZGF0ZSB0aGUgdXNlciBzcGVjaWZpZXMuCisgICAgICogQHBhcmFtIHN0YXJ0RGF0ZSBEdXJpbmcgcGFyc2luZywgdHdvIGRpZ2l0IHllYXJzIHdpbGwgYmUgcGxhY2VkIGluIHRoZSByYW5nZQorICAgICAqIDxjb2RlPnN0YXJ0RGF0ZTwvY29kZT4gdG8gPGNvZGU+c3RhcnREYXRlICsgMTAwIHllYXJzPC9jb2RlPi4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXQyRGlnaXRZZWFyU3RhcnQoRGF0ZSBzdGFydERhdGUpIHsKKyAgICAgICAgcGFyc2VBbWJpZ3VvdXNEYXRlc0FzQWZ0ZXIoc3RhcnREYXRlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBiZWdpbm5pbmcgZGF0ZSBvZiB0aGUgMTAwLXllYXIgcGVyaW9kIDItZGlnaXQgeWVhcnMgYXJlIGludGVycHJldGVkCisgICAgICogYXMgYmVpbmcgd2l0aGluLgorICAgICAqIEByZXR1cm4gdGhlIHN0YXJ0IG9mIHRoZSAxMDAteWVhciBwZXJpb2QgaW50byB3aGljaCB0d28gZGlnaXQgeWVhcnMgYXJlCisgICAgICogcGFyc2VkCisgICAgICovCisgICAgcHVibGljIERhdGUgZ2V0MkRpZ2l0WWVhclN0YXJ0KCkgeworICAgICAgICByZXR1cm4gZGVmYXVsdENlbnR1cnlTdGFydDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgRGF0ZUZvcm1hdC4KKyAgICAgKiA8cD5Gb3JtYXRzIGEgZGF0ZSBvciB0aW1lLCB3aGljaCBpcyB0aGUgc3RhbmRhcmQgbWlsbGlzCisgICAgICogc2luY2UgSmFudWFyeSAxLCAxOTcwLCAwMDowMDowMCBHTVQuCisgICAgICogPHA+RXhhbXBsZTogdXNpbmcgdGhlIFVTIGxvY2FsZToKKyAgICAgKiAieXl5eS5NTS5kZCBHICdhdCcgSEg6bW06c3Mgenp6IiAtPj4gMTk5Ni4wNy4xMCBBRCBhdCAxNTowODo1NiBQRFQKKyAgICAgKiBAcGFyYW0gZGF0ZSB0aGUgZGF0ZS10aW1lIHZhbHVlIHRvIGJlIGZvcm1hdHRlZCBpbnRvIGEgZGF0ZS10aW1lIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gdG9BcHBlbmRUbyB3aGVyZSB0aGUgbmV3IGRhdGUtdGltZSB0ZXh0IGlzIHRvIGJlIGFwcGVuZGVkLgorICAgICAqIEBwYXJhbSBwb3MgdGhlIGZvcm1hdHRpbmcgcG9zaXRpb24uIE9uIGlucHV0OiBhbiBhbGlnbm1lbnQgZmllbGQsCisgICAgICogaWYgZGVzaXJlZC4gT24gb3V0cHV0OiB0aGUgb2Zmc2V0cyBvZiB0aGUgYWxpZ25tZW50IGZpZWxkLgorICAgICAqIEByZXR1cm4gdGhlIGZvcm1hdHRlZCBkYXRlLXRpbWUgc3RyaW5nLgorICAgICAqIEBzZWUgRGF0ZUZvcm1hdAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KENhbGVuZGFyIGNhbCwgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MpCisgICAgeworICAgICAgICAvLyBJbml0aWFsaXplCisgICAgICAgIHBvcy5zZXRCZWdpbkluZGV4KDApOworICAgICAgICBwb3Muc2V0RW5kSW5kZXgoMCk7CisKKyAgICAgICAgYm9vbGVhbiBpblF1b3RlID0gZmFsc2U7IC8vIHRydWUgd2hlbiBiZXR3ZWVuIHNpbmdsZSBxdW90ZXMKKyAgICAgICAgY2hhciBwcmV2Q2ggPSAwOyAvLyBwcmV2aW91cyBwYXR0ZXJuIGNoYXJhY3RlcgorICAgICAgICBpbnQgY291bnQgPSAwOyAgLy8gbnVtYmVyIG9mIHRpbWUgcHJldkNoIHJlcGVhdGVkCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxwYXR0ZXJuLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgY2ggPSBwYXR0ZXJuLmNoYXJBdChpKTsKKyAgICAgICAgICAgIC8vIFVzZSBzdWJGb3JtYXQoKSB0byBmb3JtYXQgYSByZXBlYXRlZCBwYXR0ZXJuIGNoYXJhY3RlcgorICAgICAgICAgICAgLy8gd2hlbiBhIGRpZmZlcmVudCBwYXR0ZXJuIG9yIG5vbi1wYXR0ZXJuIGNoYXJhY3RlciBpcyBzZWVuCisgICAgICAgICAgICBpZiAoY2ggIT0gcHJldkNoICYmIGNvdW50ID4gMCkgeworICAgICAgICAgICAgICAgIHRvQXBwZW5kVG8uYXBwZW5kKAorICAgICAgICAgICAgICAgICAgICAgICAgc3ViRm9ybWF0KHByZXZDaCwgY291bnQsIHRvQXBwZW5kVG8ubGVuZ3RoKCksIHBvcywgZm9ybWF0RGF0YSwgY2FsKSk7CisgICAgICAgICAgICAgICAgY291bnQgPSAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGNoID09ICdcJycpIHsKKyAgICAgICAgICAgICAgICAvLyBDb25zZWN1dGl2ZSBzaW5nbGUgcXVvdGVzIGFyZSBhIHNpbmdsZSBxdW90ZSBsaXRlcmFsLAorICAgICAgICAgICAgICAgIC8vIGVpdGhlciBvdXRzaWRlIG9mIHF1b3RlcyBvciBiZXR3ZWVuIHF1b3RlcworICAgICAgICAgICAgICAgIGlmICgoaSsxKTxwYXR0ZXJuLmxlbmd0aCgpICYmIHBhdHRlcm4uY2hhckF0KGkrMSkgPT0gJ1wnJykgeworICAgICAgICAgICAgICAgICAgICB0b0FwcGVuZFRvLmFwcGVuZCgnXCcnKTsKKyAgICAgICAgICAgICAgICAgICAgKytpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGluUXVvdGUgPSAhaW5RdW90ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKCFpblF1b3RlCisgICAgICAgICAgICAgICAgICAgICAgICYmIChjaCA+PSAnYScgJiYgY2ggPD0gJ3onIHx8IGNoID49ICdBJyAmJiBjaCA8PSAnWicpKSB7CisgICAgICAgICAgICAgICAgLy8gY2ggaXMgYSBkYXRlLXRpbWUgcGF0dGVybiBjaGFyYWN0ZXIgdG8gYmUgaW50ZXJwcmV0ZWQKKyAgICAgICAgICAgICAgICAvLyBieSBzdWJGb3JtYXQoKTsgY291bnQgdGhlIG51bWJlciBvZiB0aW1lcyBpdCBpcyByZXBlYXRlZAorICAgICAgICAgICAgICAgIHByZXZDaCA9IGNoOworICAgICAgICAgICAgICAgICsrY291bnQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBBcHBlbmQgcXVvdGVkIGNoYXJhY3RlcnMgYW5kIHVucXVvdGVkIG5vbi1wYXR0ZXJuIGNoYXJhY3RlcnMKKyAgICAgICAgICAgICAgICB0b0FwcGVuZFRvLmFwcGVuZChjaCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gRm9ybWF0IHRoZSBsYXN0IGl0ZW0gaW4gdGhlIHBhdHRlcm4sIGlmIGFueQorICAgICAgICBpZiAoY291bnQgPiAwKSB7CisgICAgICAgICAgICB0b0FwcGVuZFRvLmFwcGVuZCgKKyAgICAgICAgICAgICAgICAgICAgc3ViRm9ybWF0KHByZXZDaCwgY291bnQsIHRvQXBwZW5kVG8ubGVuZ3RoKCksIHBvcywgZm9ybWF0RGF0YSwgY2FsKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRvQXBwZW5kVG87CisgICAgfQorCisgICAgLy8gTWFwIGluZGV4IGludG8gcGF0dGVybiBjaGFyYWN0ZXIgc3RyaW5nIHRvIENhbGVuZGFyIGZpZWxkIG51bWJlcgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludFtdIFBBVFRFUk5fSU5ERVhfVE9fQ0FMRU5EQVJfRklFTEQgPQorICAgIHsKKyAgICAgICAgQ2FsZW5kYXIuRVJBLCBDYWxlbmRhci5ZRUFSLCBDYWxlbmRhci5NT05USCwgQ2FsZW5kYXIuREFURSwKKyAgICAgICAgQ2FsZW5kYXIuSE9VUl9PRl9EQVksIENhbGVuZGFyLkhPVVJfT0ZfREFZLCBDYWxlbmRhci5NSU5VVEUsCisgICAgICAgIENhbGVuZGFyLlNFQ09ORCwgQ2FsZW5kYXIuTUlMTElTRUNPTkQsIENhbGVuZGFyLkRBWV9PRl9XRUVLLAorICAgICAgICBDYWxlbmRhci5EQVlfT0ZfWUVBUiwgQ2FsZW5kYXIuREFZX09GX1dFRUtfSU5fTU9OVEgsCisgICAgICAgIENhbGVuZGFyLldFRUtfT0ZfWUVBUiwgQ2FsZW5kYXIuV0VFS19PRl9NT05USCwKKyAgICAgICAgQ2FsZW5kYXIuQU1fUE0sIENhbGVuZGFyLkhPVVIsIENhbGVuZGFyLkhPVVIsIENhbGVuZGFyLlpPTkVfT0ZGU0VUCisgICAgfTsKKworICAgIC8vIE1hcCBpbmRleCBpbnRvIHBhdHRlcm4gY2hhcmFjdGVyIHN0cmluZyB0byBEYXRlRm9ybWF0IGZpZWxkIG51bWJlcgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludFtdIFBBVFRFUk5fSU5ERVhfVE9fREFURV9GT1JNQVRfRklFTEQgPSB7CisgICAgICAgIERhdGVGb3JtYXQuRVJBX0ZJRUxELCBEYXRlRm9ybWF0LllFQVJfRklFTEQsIERhdGVGb3JtYXQuTU9OVEhfRklFTEQsCisgICAgICAgIERhdGVGb3JtYXQuREFURV9GSUVMRCwgRGF0ZUZvcm1hdC5IT1VSX09GX0RBWTFfRklFTEQsCisgICAgICAgIERhdGVGb3JtYXQuSE9VUl9PRl9EQVkwX0ZJRUxELCBEYXRlRm9ybWF0Lk1JTlVURV9GSUVMRCwKKyAgICAgICAgRGF0ZUZvcm1hdC5TRUNPTkRfRklFTEQsIERhdGVGb3JtYXQuTUlMTElTRUNPTkRfRklFTEQsCisgICAgICAgIERhdGVGb3JtYXQuREFZX09GX1dFRUtfRklFTEQsIERhdGVGb3JtYXQuREFZX09GX1lFQVJfRklFTEQsCisgICAgICAgIERhdGVGb3JtYXQuREFZX09GX1dFRUtfSU5fTU9OVEhfRklFTEQsIERhdGVGb3JtYXQuV0VFS19PRl9ZRUFSX0ZJRUxELAorICAgICAgICBEYXRlRm9ybWF0LldFRUtfT0ZfTU9OVEhfRklFTEQsIERhdGVGb3JtYXQuQU1fUE1fRklFTEQsCisgICAgICAgIERhdGVGb3JtYXQuSE9VUjFfRklFTEQsIERhdGVGb3JtYXQuSE9VUjBfRklFTEQsCisgICAgICAgIERhdGVGb3JtYXQuVElNRVpPTkVfRklFTEQsCisgICAgfTsKKworICAgIC8qKgorICAgICAqIEZvcm1hdCBhIHNpbmdsZSBmaWVsZCwgZ2l2ZW4gaXRzIHBhdHRlcm4gY2hhcmFjdGVyLiAgU3ViY2xhc3NlcyBtYXkKKyAgICAgKiBvdmVycmlkZSB0aGlzIG1ldGhvZCBpbiBvcmRlciB0byBtb2RpZnkgb3IgYWRkIGZvcm1hdHRpbmcKKyAgICAgKiBjYXBhYmlsaXRpZXMuCisgICAgICogQHBhcmFtIGNoIHRoZSBwYXR0ZXJuIGNoYXJhY3RlcgorICAgICAqIEBwYXJhbSBjb3VudCB0aGUgbnVtYmVyIG9mIHRpbWVzIGNoIGlzIHJlcGVhdGVkIGluIHRoZSBwYXR0ZXJuCisgICAgICogQHBhcmFtIGJlZ2luT2Zmc2V0IHRoZSBvZmZzZXQgb2YgdGhlIG91dHB1dCBzdHJpbmcgYXQgdGhlIHN0YXJ0IG9mCisgICAgICogdGhpcyBmaWVsZDsgdXNlZCB0byBzZXQgcG9zIHdoZW4gYXBwcm9wcmlhdGUKKyAgICAgKiBAcGFyYW0gcG9zIHJlY2VpdmVzIHRoZSBwb3NpdGlvbiBvZiBhIGZpZWxkLCB3aGVuIGFwcHJvcHJpYXRlCisgICAgICogQHBhcmFtIGZvcm1hdERhdGEgdGhlIHN5bWJvbHMgZm9yIHRoaXMgZm9ybWF0dGVyCisgICAgICovCisgICAgcHJvdGVjdGVkIFN0cmluZyBzdWJGb3JtYXQoY2hhciBjaCwgaW50IGNvdW50LCBpbnQgYmVnaW5PZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MsIERhdGVGb3JtYXRTeW1ib2xzIGZvcm1hdERhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIgY2FsKQorICAgICAgICAgdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgaW50ICAgICBwYXR0ZXJuQ2hhckluZGV4ID0gLTE7CisgICAgICAgIGludCAgICAgbWF4SW50Q291bnQgPSBJbnRlZ2VyLk1BWF9WQUxVRTsKKyAgICAgICAgU3RyaW5nICBjdXJyZW50ID0gIiI7CisKKyAgICAgICAgLy8gVEVNUE9SQVJZIEhBQ0sgVE9ETyBmaXggdGhpcworICAgICAgICBpZiAoY2ggPT0gJ3UnKSB7IC8vICd1JyAtIEVYVEVOREVEX1lFQVIKKyAgICAgICAgICAgIHJldHVybiB6ZXJvUGFkZGluZ051bWJlcihjYWwuZ2V0KENhbGVuZGFyLkVYVEVOREVEX1lFQVIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsIG1heEludENvdW50KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgocGF0dGVybkNoYXJJbmRleD1mb3JtYXREYXRhLnBhdHRlcm5DaGFycy5pbmRleE9mKGNoKSkgPT0gLTEpCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIHBhdHRlcm4gY2hhcmFjdGVyICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJyIgKyBjaCArICInIik7CisKKyAgICAgICAgaW50IGZpZWxkID0gUEFUVEVSTl9JTkRFWF9UT19DQUxFTkRBUl9GSUVMRFtwYXR0ZXJuQ2hhckluZGV4XTsKKyAgICAgICAgaW50IHZhbHVlID0gY2FsLmdldChmaWVsZCk7CisKKyAgICAgICAgc3dpdGNoIChwYXR0ZXJuQ2hhckluZGV4KSB7CisgICAgICAgIGNhc2UgMDogLy8gJ0cnIC0gRVJBCisgICAgICAgICAgICBjdXJyZW50ID0gZm9ybWF0RGF0YS5lcmFzW3ZhbHVlXTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE6IC8vICd5JyAtIFlFQVIKKyAgICAgICAgICAgIC8qIEFjY29yZGluZyB0byB0aGUgc3BlY2lmaWNhdGlvbiwgaWYgdGhlIG51bWJlciBvZiBwYXR0ZXJuIGxldHRlcnMgKCd5JykgaXMgMiwgCisgICAgICAgICAgICAgKiB0aGUgeWVhciBpcyB0cnVuY2F0ZWQgdG8gMiBkaWdpdHM7IG90aGVyd2lzZSBpdCBpcyBpbnRlcnByZXRlZCBhcyBhIG51bWJlci4gCisgICAgICAgICAgICAgKiBCdXQgdGhlIG9yaWdpbmFsIGNvZGUgcHJvY2VzcyAneScsICd5eScsICd5eXknIGluIHRoZSBzYW1lIHdheS4gYW5kIHByb2Nlc3MgCisgICAgICAgICAgICAgKiBwYXR0ZXJucyB3aXRoIDQgb3IgbW9yZSB0aGFuIDQgJ3knIGNoYXJhY3RlcnMgaW4gdGhlIHNhbWUgd2F5LiAKKyAgICAgICAgICAgICAqIFNvIEkgY2hhbmdlIHRoZSBjb2RlcyB0byBtZWV0IHRoZSBzcGVjaWZpY2F0aW9uLiBbUmljaGFyZC9HQ2xdCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmIChjb3VudCA9PSAyKQorICAgICAgICAgICAgICAgIGN1cnJlbnQgPSB6ZXJvUGFkZGluZ051bWJlcih2YWx1ZSwgMiwgMik7IC8vIGNsaXAgMTk5NiB0byA5NgorICAgICAgICAgICAgZWxzZSAvL2NvdW50ID0gMSBvciBjb3VudCA+IDIKKyAgICAgICAgICAgICAgICBjdXJyZW50ID0gemVyb1BhZGRpbmdOdW1iZXIodmFsdWUsIGNvdW50LCBtYXhJbnRDb3VudCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOiAvLyAnTScgLSBNT05USAorICAgICAgICAgICAgaWYgKGNvdW50ID49IDQpCisgICAgICAgICAgICAgICAgY3VycmVudCA9IGZvcm1hdERhdGEubW9udGhzW3ZhbHVlXTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGNvdW50ID09IDMpCisgICAgICAgICAgICAgICAgY3VycmVudCA9IGZvcm1hdERhdGEuc2hvcnRNb250aHNbdmFsdWVdOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGN1cnJlbnQgPSB6ZXJvUGFkZGluZ051bWJlcih2YWx1ZSsxLCBjb3VudCwgbWF4SW50Q291bnQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDogLy8gJ2snIC0gSE9VUl9PRl9EQVk6IDEtYmFzZWQuICBlZywgMjM6NTkgKyAxIGhvdXIgPT4+IDI0OjU5CisgICAgICAgICAgICBpZiAodmFsdWUgPT0gMCkKKyAgICAgICAgICAgICAgICBjdXJyZW50ID0gemVyb1BhZGRpbmdOdW1iZXIoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXRNYXhpbXVtKENhbGVuZGFyLkhPVVJfT0ZfREFZKSsxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCwgbWF4SW50Q291bnQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGN1cnJlbnQgPSB6ZXJvUGFkZGluZ051bWJlcih2YWx1ZSwgY291bnQsIG1heEludENvdW50KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDk6IC8vICdFJyAtIERBWV9PRl9XRUVLCisgICAgICAgICAgICBpZiAoY291bnQgPj0gNCkKKyAgICAgICAgICAgICAgICBjdXJyZW50ID0gZm9ybWF0RGF0YS53ZWVrZGF5c1t2YWx1ZV07CisgICAgICAgICAgICBlbHNlIC8vIGNvdW50IDwgNCwgdXNlIGFiYnJldmlhdGVkIGZvcm0gaWYgZXhpc3RzCisgICAgICAgICAgICAgICAgY3VycmVudCA9IGZvcm1hdERhdGEuc2hvcnRXZWVrZGF5c1t2YWx1ZV07CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNDogICAgLy8gJ2EnIC0gQU1fUE0KKyAgICAgICAgICAgIGN1cnJlbnQgPSBmb3JtYXREYXRhLmFtcG1zW3ZhbHVlXTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE1OiAvLyAnaCcgLSBIT1VSOjEtYmFzZWQuICBlZywgMTFQTSArIDEgaG91ciA9Pj4gMTIgQU0KKyAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAwKQorICAgICAgICAgICAgICAgIGN1cnJlbnQgPSB6ZXJvUGFkZGluZ051bWJlcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldExlYXN0TWF4aW11bShDYWxlbmRhci5IT1VSKSsxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCwgbWF4SW50Q291bnQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGN1cnJlbnQgPSB6ZXJvUGFkZGluZ051bWJlcih2YWx1ZSwgY291bnQsIG1heEludENvdW50KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE3OiAvLyAneicgLSBaT05FX09GRlNFVAorICAgICAgICAgICAgaW50IHpvbmVJbmRleAorICAgICAgICAgICAgICAgID0gZm9ybWF0RGF0YS5nZXRab25lSW5kZXggKGNhbC5nZXRUaW1lWm9uZSgpLmdldElEKCkpOworICAgICAgICAgICAgaWYgKHpvbmVJbmRleCA9PSAtMSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBGb3IgdGltZSB6b25lcyB0aGF0IGhhdmUgbm8gbmFtZXMsIHVzZSBzdHJpbmdzCisgICAgICAgICAgICAgICAgLy8gR01UK2hvdXJzOm1pbnV0ZXMgYW5kIEdNVC1ob3VyczptaW51dGVzLgorICAgICAgICAgICAgICAgIC8vIEZvciBpbnN0YW5jZSwgRnJhbmNlIHRpbWUgem9uZSB1c2VzIEdNVCswMTowMC4KKyAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgem9uZVN0cmluZyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICAgICAgICAgIHZhbHVlID0gY2FsLmdldChDYWxlbmRhci5aT05FX09GRlNFVCkgKworICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLkRTVF9PRkZTRVQpOworCisgICAgICAgICAgICAgICAgaWYgKHZhbHVlIDwgMCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHpvbmVTdHJpbmcuYXBwZW5kKEdNVF9NSU5VUyk7CisgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gLXZhbHVlOyAvLyBzdXBwcmVzcyB0aGUgJy0nIHNpZ24gZm9yIHRleHQgZGlzcGxheS4KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB6b25lU3RyaW5nLmFwcGVuZChHTVRfUExVUyk7CisgICAgICAgICAgICAgICAgem9uZVN0cmluZy5hcHBlbmQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgemVyb1BhZGRpbmdOdW1iZXIoKGludCkodmFsdWUvbWlsbGlzUGVySG91ciksIDIsIDIpKTsKKyAgICAgICAgICAgICAgICB6b25lU3RyaW5nLmFwcGVuZCgnOicpOworICAgICAgICAgICAgICAgIHpvbmVTdHJpbmcuYXBwZW5kKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHplcm9QYWRkaW5nTnVtYmVyKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKCh2YWx1ZSVtaWxsaXNQZXJIb3VyKS9taWxsaXNQZXJNaW51dGUpLCAyLCAyKSk7CisgICAgICAgICAgICAgICAgY3VycmVudCA9IHpvbmVTdHJpbmcudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGNhbC5nZXQoQ2FsZW5kYXIuRFNUX09GRlNFVCkgIT0gMCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAoY291bnQgPj0gNCkKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudCA9IGZvcm1hdERhdGEuem9uZVN0cmluZ3Nbem9uZUluZGV4XVszXTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIC8vIGNvdW50IDwgNCwgdXNlIGFiYnJldmlhdGVkIGZvcm0gaWYgZXhpc3RzCisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBmb3JtYXREYXRhLnpvbmVTdHJpbmdzW3pvbmVJbmRleF1bNF07CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKGNvdW50ID49IDQpCisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBmb3JtYXREYXRhLnpvbmVTdHJpbmdzW3pvbmVJbmRleF1bMV07CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBjdXJyZW50ID0gZm9ybWF0RGF0YS56b25lU3RyaW5nc1t6b25lSW5kZXhdWzJdOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAvLyBjYXNlIDM6IC8vICdkJyAtIERBVEUKKyAgICAgICAgICAgIC8vIGNhc2UgNTogLy8gJ0gnIC0gSE9VUl9PRl9EQVk6MC1iYXNlZC4gIGVnLCAyMzo1OSArIDEgaG91ciA9Pj4gMDA6NTkKKyAgICAgICAgICAgIC8vIGNhc2UgNjogLy8gJ20nIC0gTUlOVVRFCisgICAgICAgICAgICAvLyBjYXNlIDc6IC8vICdzJyAtIFNFQ09ORAorICAgICAgICAgICAgLy8gY2FzZSA4OiAvLyAnUycgLSBNSUxMSVNFQ09ORAorICAgICAgICAgICAgLy8gY2FzZSAxMDogLy8gJ0QnIC0gREFZX09GX1lFQVIKKyAgICAgICAgICAgIC8vIGNhc2UgMTE6IC8vICdGJyAtIERBWV9PRl9XRUVLX0lOX01PTlRICisgICAgICAgICAgICAvLyBjYXNlIDEyOiAvLyAndycgLSBXRUVLX09GX1lFQVIKKyAgICAgICAgICAgIC8vIGNhc2UgMTM6IC8vICdXJyAtIFdFRUtfT0ZfTU9OVEgKKyAgICAgICAgICAgIC8vIGNhc2UgMTY6IC8vICdLJyAtIEhPVVI6IDAtYmFzZWQuICBlZywgMTFQTSArIDEgaG91ciA9Pj4gMCBBTQorICAgICAgICAgICAgY3VycmVudCA9IHplcm9QYWRkaW5nTnVtYmVyKHZhbHVlLCBjb3VudCwgbWF4SW50Q291bnQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0gLy8gc3dpdGNoIChwYXR0ZXJuQ2hhckluZGV4KQorCisgICAgICAgIGlmIChwb3MuZ2V0RmllbGQoKSA9PSBQQVRURVJOX0lOREVYX1RPX0RBVEVfRk9STUFUX0ZJRUxEW3BhdHRlcm5DaGFySW5kZXhdKSB7CisgICAgICAgICAgICAvLyBzZXQgZm9yIHRoZSBmaXJzdCBvY2N1cmVuY2Ugb25seS4KKyAgICAgICAgICAgIGlmIChwb3MuZ2V0QmVnaW5JbmRleCgpID09IDAgJiYgcG9zLmdldEVuZEluZGV4KCkgPT0gMCkgeworICAgICAgICAgICAgICAgIHBvcy5zZXRCZWdpbkluZGV4KGJlZ2luT2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBwb3Muc2V0RW5kSW5kZXgoYmVnaW5PZmZzZXQgKyBjdXJyZW50Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBjdXJyZW50OworICAgIH0KKworICAgIC8qKgorICAgICAqIEZvcm1hdHMgYSBudW1iZXIgd2l0aCB0aGUgc3BlY2lmaWVkIG1pbmltdW0gYW5kIG1heGltdW0gbnVtYmVyIG9mIGRpZ2l0cy4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgU3RyaW5nIHplcm9QYWRkaW5nTnVtYmVyKGxvbmcgdmFsdWUsIGludCBtaW5EaWdpdHMsIGludCBtYXhEaWdpdHMpCisgICAgeworICAgICAgICBudW1iZXJGb3JtYXQuc2V0TWluaW11bUludGVnZXJEaWdpdHMobWluRGlnaXRzKTsKKyAgICAgICAgbnVtYmVyRm9ybWF0LnNldE1heGltdW1JbnRlZ2VyRGlnaXRzKG1heERpZ2l0cyk7CisgICAgICAgIHJldHVybiBudW1iZXJGb3JtYXQuZm9ybWF0KHZhbHVlKTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlcyBEYXRlRm9ybWF0CisgICAgICogQHNlZSBEYXRlRm9ybWF0CisgICAgICovCisgICAgcHVibGljIHZvaWQgcGFyc2UoU3RyaW5nIHRleHQsIENhbGVuZGFyIGNhbCwgUGFyc2VQb3NpdGlvbiBwb3MpCisgICAgeworICAgICAgICBpbnQgc3RhcnQgPSBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgaW50IG9sZFN0YXJ0ID0gc3RhcnQ7CisgICAgICAgIGJvb2xlYW5bXSBhbWJpZ3VvdXNZZWFyID0ge2ZhbHNlfTsKKworICAgICAgICBib29sZWFuIGluUXVvdGUgPSBmYWxzZTsgLy8gaW5RdW90ZSBzZXQgdHJ1ZSB3aGVuIGhpdHMgMXN0IHNpbmdsZSBxdW90ZQorICAgICAgICBjaGFyIHByZXZDaCA9IDA7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIGludCBpbnRlclF1b3RlQ291bnQgPSAxOyAvLyBOdW1iZXIgb2YgY2hhcnMgYmV0d2VlbiBxdW90ZXMKKworICAgICAgICBmb3IgKGludCBpPTA7IGk8cGF0dGVybi5sZW5ndGgoKTsgKytpKQorICAgICAgICB7CisgICAgICAgICAgICBjaGFyIGNoID0gcGF0dGVybi5jaGFyQXQoaSk7CisKKyAgICAgICAgICAgIGlmIChpblF1b3RlKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmIChjaCA9PSAnXCcnKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gZW5kcyB3aXRoIDJuZCBzaW5nbGUgcXVvdGUKKyAgICAgICAgICAgICAgICAgICAgaW5RdW90ZSA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAvLyB0d28gY29uc2VjdXRpdmUgcXVvdGVzIG91dHNpZGUgYSBxdW90ZSBtZWFucyB3ZSBoYXZlCisgICAgICAgICAgICAgICAgICAgIC8vIGEgcXVvdGUgbGl0ZXJhbCB3ZSBuZWVkIHRvIG1hdGNoLgorICAgICAgICAgICAgICAgICAgICBpZiAoY291bnQgPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXJ0ID49IHRleHQubGVuZ3RoKCkgfHwgY2ggIT0gdGV4dC5jaGFyQXQoc3RhcnQpKQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcy5zZXRJbmRleChvbGRTdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zLnNldEVycm9ySW5kZXgoc3RhcnQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICsrc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY291bnQgPSAwOworICAgICAgICAgICAgICAgICAgICBpbnRlclF1b3RlQ291bnQgPSAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAvLyBwYXR0ZXJuIHVzZXMgdGV4dCBmb2xsb3dpbmcgZnJvbSAxc3Qgc2luZ2xlIHF1b3RlLgorICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnQgPj0gdGV4dC5sZW5ndGgoKSB8fCBjaCAhPSB0ZXh0LmNoYXJBdChzdGFydCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGZvciBjYXNlcyBsaWtlOiAnYXQnIGluIHBhdHRlcm4gdnMgInh0IgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW4gdGltZSB0ZXh0LCB3aGVyZSAnYScgZG9lc24ndCBtYXRjaCB3aXRoICd4Jy4KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIGZhaWwgdG8gbWF0Y2gsIHJldHVybi4KKyAgICAgICAgICAgICAgICAgICAgICAgIHBvcy5zZXRJbmRleChvbGRTdGFydCk7IC8vIGxlZnQgdW5jaGFuZ2VkCisgICAgICAgICAgICAgICAgICAgICAgICBwb3Muc2V0RXJyb3JJbmRleChzdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgKytjb3VudDsKKyAgICAgICAgICAgICAgICAgICAgKytzdGFydDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlICAgIC8vICFpblF1b3RlCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKGNoID09ICdcJycpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBpblF1b3RlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNvdW50ID4gMCkgLy8gaGFuZGxlIGNhc2VzIGxpa2U6IGUnYXQnCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydE9mZnNldCA9IHN0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQ9c3ViUGFyc2UodGV4dCwgc3RhcnQsIHByZXZDaCwgY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSwgYW1iaWd1b3VzWWVhciwgY2FsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICggc3RhcnQ8MCApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3Muc2V0RXJyb3JJbmRleChzdGFydE9mZnNldCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zLnNldEluZGV4KG9sZFN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCA9IDA7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBpZiAoaW50ZXJRdW90ZUNvdW50ID09IDApCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaW5kaWNhdGVzIHR3byBjb25zZWN1dGl2ZSBxdW90ZXMgaW5zaWRlIGEgcXVvdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBmb3IgZXhhbXBsZSwgJ28nJ2Nsb2NrJy4gIFdlIG5lZWQgdG8gcGFyc2UgdGhpcyBhcworICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVwcmVzZW50aW5nIGEgc2luZ2xlIHF1b3RlIHdpdGhpbiB0aGUgcXVvdGUuCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnRPZmZzZXQgPSBzdGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGFydCA+PSB0ZXh0Lmxlbmd0aCgpIHx8ICBjaCAhPSB0ZXh0LmNoYXJBdChzdGFydCkpCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zLnNldEVycm9ySW5kZXgoc3RhcnRPZmZzZXQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcy5zZXRJbmRleChvbGRTdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgKytzdGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50ID0gMTsgLy8gTWFrZSBpdCBsb29rIGxpa2Ugd2UgbmV2ZXIgbGVmdAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKGNoID49ICdhJyAmJiBjaCA8PSAneicgfHwgY2ggPj0gJ0EnICYmIGNoIDw9ICdaJykKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIC8vIGNoIGlzIGEgZGF0ZS10aW1lIHBhdHRlcm4KKyAgICAgICAgICAgICAgICAgICAgaWYgKGNoICE9IHByZXZDaCAmJiBjb3VudCA+IDApIC8vIGUuZy4sIHl5eXlNTWRkCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydE9mZnNldCA9IHN0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUgb25seSBjYXNlIHdoZXJlIHdlIHBhc3MgaW4gJ3RydWUnIGZvcgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gb2JleUNvdW50LiAgVGhhdCdzIGJlY2F1c2UgdGhlIG5leHQgZmllbGQgZGlyZWN0bHkKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFidXRzIHRoaXMgb25lLCBzbyB3ZSBoYXZlIHRvIHVzZSB0aGUgY291bnQgdG8ga25vdyB3aGVuCisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0byBzdG9wIHBhcnNpbmcuIFtMSVVdCisgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCA9IHN1YlBhcnNlKHRleHQsIHN0YXJ0LCBwcmV2Q2gsIGNvdW50LCB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbWJpZ3VvdXNZZWFyLCBjYWwpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXJ0IDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcy5zZXRFcnJvckluZGV4KHN0YXJ0T2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3Muc2V0SW5kZXgob2xkU3RhcnQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHByZXZDaCA9IGNoOworICAgICAgICAgICAgICAgICAgICAgICAgY291bnQgPSAxOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNoICE9IHByZXZDaCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2Q2ggPSBjaDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoY291bnQgPiAwKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gaGFuZGxlIGNhc2VzIGxpa2U6IE1NLWRkLXl5LCBISDptbTpzcywgb3IgeXl5eSBNTSBkZCwKKyAgICAgICAgICAgICAgICAgICAgLy8gd2hlcmUgY2ggPSAnLScsICc6Jywgb3IgJyAnLCByZXBlY3RpdmVseS4KKyAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0T2Zmc2V0ID0gc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0PXN1YlBhcnNlKHRleHQsIHN0YXJ0LCBwcmV2Q2gsIGNvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSwgYW1iaWd1b3VzWWVhciwgY2FsKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCBzdGFydCA8IDAgKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwb3Muc2V0RXJyb3JJbmRleChzdGFydE9mZnNldCk7CisgICAgICAgICAgICAgICAgICAgICAgICBwb3Muc2V0SW5kZXgob2xkU3RhcnQpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChzdGFydCA+PSB0ZXh0Lmxlbmd0aCgpIHx8IGNoICE9IHRleHQuY2hhckF0KHN0YXJ0KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGFuZGxlIGNhc2VzIGxpa2U6ICdNTU1NIGRkJyBpbiBwYXR0ZXJuIHZzLiAiamFueDIwIgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW4gdGltZSB0ZXh0LCB3aGVyZSAnICcgZG9lc24ndCBtYXRjaCB3aXRoICd4Jy4KKyAgICAgICAgICAgICAgICAgICAgICAgIHBvcy5zZXRFcnJvckluZGV4KHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBvcy5zZXRJbmRleChvbGRTdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgc3RhcnQrKzsKKyAgICAgICAgICAgICAgICAgICAgY291bnQgPSAwOworICAgICAgICAgICAgICAgICAgICBwcmV2Q2ggPSAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIC8vIGFueSBvdGhlciB1bnF1b3RlZCBjaGFyYWN0ZXJzCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnQgPj0gdGV4dC5sZW5ndGgoKSB8fCBjaCAhPSB0ZXh0LmNoYXJBdChzdGFydCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGhhbmRsZSBjYXNlcyBsaWtlOiAnTU1NTSAgIGRkJyBpbiBwYXR0ZXJuIHZzLgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gImphbiwsLDIwIiBpbiB0aW1lIHRleHQsIHdoZXJlICIgICAiIGRvZXNuJ3QKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1hdGNoIHdpdGggIiwsLCIuCisgICAgICAgICAgICAgICAgICAgICAgICBwb3Muc2V0RXJyb3JJbmRleChzdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICBwb3Muc2V0SW5kZXgob2xkU3RhcnQpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0Kys7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgKytpbnRlclF1b3RlQ291bnQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gUGFyc2UgdGhlIGxhc3QgaXRlbSBpbiB0aGUgcGF0dGVybgorICAgICAgICBpZiAoY291bnQgPiAwKQorICAgICAgICB7CisgICAgICAgICAgICBpbnQgc3RhcnRPZmZzZXQgPSBzdGFydDsKKyAgICAgICAgICAgIHN0YXJ0PXN1YlBhcnNlKHRleHQsIHN0YXJ0LCBwcmV2Q2gsIGNvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsIGFtYmlndW91c1llYXIsIGNhbCk7CisgICAgICAgICAgICBpZiAoIHN0YXJ0IDwgMCApIHsKKyAgICAgICAgICAgICAgICBwb3Muc2V0SW5kZXgob2xkU3RhcnQpOworICAgICAgICAgICAgICAgIHBvcy5zZXRFcnJvckluZGV4KHN0YXJ0T2Zmc2V0KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBBdCB0aGlzIHBvaW50IHRoZSBmaWVsZHMgb2YgQ2FsZW5kYXIgaGF2ZSBiZWVuIHNldC4gIENhbGVuZGFyCisgICAgICAgIC8vIHdpbGwgZmlsbCBpbiBkZWZhdWx0IHZhbHVlcyBmb3IgbWlzc2luZyBmaWVsZHMgd2hlbiB0aGUgdGltZQorICAgICAgICAvLyBpcyBjb21wdXRlZC4KKworICAgICAgICBwb3Muc2V0SW5kZXgoc3RhcnQpOworCisgICAgICAgIC8vIFRoaXMgcGFydCBpcyBhIHByb2JsZW06ICBXaGVuIHdlIGNhbGwgcGFyc2VkRGF0ZS5hZnRlciwgd2UgY29tcHV0ZSB0aGUgdGltZS4KKyAgICAgICAgLy8gVGFrZSB0aGUgZGF0ZSBBcHJpbCAzIDIwMDQgYXQgMjozMCBhbS4gIFdoZW4gdGhpcyBpcyBmaXJzdCBzZXQgdXAsIHRoZSB5ZWFyCisgICAgICAgIC8vIHdpbGwgYmUgd3JvbmcgaWYgd2UncmUgcGFyc2luZyBhIDItZGlnaXQgeWVhciBwYXR0ZXJuLiAgSXQgd2lsbCBiZSAxOTA0LgorICAgICAgICAvLyBBcHJpbCAzIDE5MDQgaXMgYSBTdW5kYXkgKHVubGlrZSAyMDA0KSBzbyBpdCBpcyB0aGUgRFNUIG9uc2V0IGRheS4gIDI6MzAgYW0KKyAgICAgICAgLy8gaXMgdGhlcmVmb3JlIGFuICJpbXBvc3NpYmxlIiB0aW1lLCBzaW5jZSB0aGUgdGltZSBnb2VzIGZyb20gMTo1OSB0byAzOjAwIGFtCisgICAgICAgIC8vIG9uIHRoYXQgZGF5LiAgSXQgaXMgdGhlcmVmb3JlIHBhcnNlZCBvdXQgdG8gZmllbGRzIGFzIDM6MzAgYW0uICBUaGVuIHdlCisgICAgICAgIC8vIGFkZCAxMDAgeWVhcnMsIGFuZCBnZXQgQXByaWwgMyAyMDA0IGF0IDM6MzAgYW0uICBOb3RlIHRoYXQgQXByaWwgMyAyMDA0IGlzCisgICAgICAgIC8vIGEgU2F0dXJkYXksIHNvIGl0IGNhbiBoYXZlIGEgMjozMCBhbSAtLSBhbmQgaXQgc2hvdWxkLiBbTElVXQorICAgICAgICAvKgorICAgICAgICBEYXRlIHBhcnNlZERhdGUgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBpZiggYW1iaWd1b3VzWWVhclswXSAmJiAhcGFyc2VkRGF0ZS5hZnRlcihkZWZhdWx0Q2VudHVyeVN0YXJ0KSApIHsKKyAgICAgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuWUVBUiwgMTAwKTsKKyAgICAgICAgICAgIHBhcnNlZERhdGUgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICB9CisgICAgICAgICovCisgICAgICAgIC8vIEJlY2F1c2Ugb2YgdGhlIGFib3ZlIGNvbmRpdGlvbiwgc2F2ZSBvZmYgdGhlIGZpZWxkcyBpbiBjYXNlIHdlIG5lZWQgdG8gcmVhZGp1c3QuCisgICAgICAgIC8vIFRoZSBwcm9jZWR1cmUgd2UgdXNlIGhlcmUgaXMgbm90IHBhcnRpY3VsYXJseSBlZmZpY2llbnQsIGJ1dCB0aGVyZSBpcyBubyBvdGhlcgorICAgICAgICAvLyB3YXkgdG8gZG8gdGhpcyBnaXZlbiB0aGUgQVBJIHJlc3RyaWN0aW9ucyBwcmVzZW50IGluIENhbGVuZGFyLiAgV2UgbWluaW1pemUKKyAgICAgICAgLy8gaW5lZmZpY2llbmN5IGJ5IG9ubHkgcGVyZm9ybWluZyB0aGlzIGNvbXB1dGF0aW9uIHdoZW4gaXQgbWlnaHQgYXBwbHksIHRoYXQgaXMsCisgICAgICAgIC8vIHdoZW4gdGhlIHR3by1kaWdpdCB5ZWFyIGlzIGVxdWFsIHRvIHRoZSBzdGFydCB5ZWFyLCBhbmQgdGh1cyBtaWdodCBmYWxsIGF0IHRoZQorICAgICAgICAvLyBmcm9udCBvciB0aGUgYmFjayBvZiB0aGUgZGVmYXVsdCBjZW50dXJ5LiAgVGhpcyBvbmx5IHdvcmtzIGJlY2F1c2Ugd2UgYWRqdXN0CisgICAgICAgIC8vIHRoZSB5ZWFyIGNvcnJlY3RseSB0byBzdGFydCB3aXRoIGluIG90aGVyIGNhc2VzIC0tIHNlZSBzdWJQYXJzZSgpLgorICAgICAgICB0cnkgeworICAgICAgICAgICAgaWYgKGFtYmlndW91c1llYXJbMF0pIC8vIElmIHRoaXMgaXMgdHJ1ZSB0aGVuIHRoZSB0d28tZGlnaXQgeWVhciA9PSB0aGUgZGVmYXVsdCBzdGFydCB5ZWFyCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gV2UgbmVlZCBhIGNvcHkgb2YgdGhlIGZpZWxkcywgYW5kIHdlIG5lZWQgdG8gYXZvaWQgdHJpZ2dlcmluZyBhIGNhbGwgdG8KKyAgICAgICAgICAgICAgICAvLyBjb21wbGV0ZSgpLCB3aGljaCB3aWxsIHJlY2FsY3VsYXRlIHRoZSBmaWVsZHMuICBTaW5jZSB3ZSBjYW4ndCBhY2Nlc3MKKyAgICAgICAgICAgICAgICAvLyB0aGUgZmllbGRzW10gYXJyYXkgaW4gQ2FsZW5kYXIsIHdlIGNsb25lIHRoZSBlbnRpcmUgb2JqZWN0LiAgVGhpcyB3aWxsCisgICAgICAgICAgICAgICAgLy8gc3RvcCB3b3JraW5nIGlmIENhbGVuZGFyLmNsb25lKCkgaXMgZXZlciByZXdyaXR0ZW4gdG8gY2FsbCBjb21wbGV0ZSgpLgorICAgICAgICAgICAgICAgIENhbGVuZGFyIGNvcHkgPSAoQ2FsZW5kYXIpY2FsLmNsb25lKCk7CisgICAgICAgICAgICAgICAgRGF0ZSBwYXJzZWREYXRlID0gY29weS5nZXRUaW1lKCk7CisgICAgICAgICAgICAgICAgaWYgKHBhcnNlZERhdGUuYmVmb3JlKGRlZmF1bHRDZW50dXJ5U3RhcnQpKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gV2UgY2FuJ3QgdXNlIGFkZCBoZXJlIGJlY2F1c2UgdGhhdCBkb2VzIGEgY29tcGxldGUoKSBmaXJzdC4KKyAgICAgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCBkZWZhdWx0Q2VudHVyeVN0YXJ0WWVhciArIDEwMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIEFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBieSBDYWxlbmRhci5nZXRUaW1lKCkKKyAgICAgICAgLy8gaWYgYW55IGZpZWxkcyBhcmUgb3V0IG9mIHJhbmdlLCBlLmcuLCBNT05USCA9PSAxNy4KKyAgICAgICAgY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBwb3Muc2V0RXJyb3JJbmRleChzdGFydCk7CisgICAgICAgICAgICBwb3Muc2V0SW5kZXgob2xkU3RhcnQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQXR0ZW1wdCB0byBtYXRjaCB0aGUgdGV4dCBhdCBhIGdpdmVuIHBvc2l0aW9uIGFnYWluc3QgYW4gYXJyYXkgb2YKKyAgICAgKiBzdHJpbmdzLiAgU2luY2UgbXVsdGlwbGUgc3RyaW5ncyBpbiB0aGUgYXJyYXkgbWF5IG1hdGNoIChmb3IKKyAgICAgKiBleGFtcGxlLCBpZiB0aGUgYXJyYXkgY29udGFpbnMgImEiLCAiYWIiLCBhbmQgImFiYyIsIGFsbCB3aWxsIG1hdGNoCisgICAgICogdGhlIGlucHV0IHN0cmluZyAiYWJjZCIpIHRoZSBsb25nZXN0IG1hdGNoIGlzIHJldHVybmVkLiAgQXMgYSBzaWRlCisgICAgICogZWZmZWN0LCB0aGUgZ2l2ZW4gZmllbGQgb2YgPGNvZGU+Y2FsPC9jb2RlPiBpcyBzZXQgdG8gdGhlIGluZGV4CisgICAgICogb2YgdGhlIGJlc3QgbWF0Y2gsIGlmIHRoZXJlIGlzIG9uZS4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgdGltZSB0ZXh0IGJlaW5nIHBhcnNlZC4KKyAgICAgKiBAcGFyYW0gc3RhcnQgd2hlcmUgdG8gc3RhcnQgcGFyc2luZy4KKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIGRhdGUgZmllbGQgYmVpbmcgcGFyc2VkLgorICAgICAqIEBwYXJhbSBkYXRhIHRoZSBzdHJpbmcgYXJyYXkgdG8gcGFyc2VkLgorICAgICAqIEByZXR1cm4gdGhlIG5ldyBzdGFydCBwb3NpdGlvbiBpZiBtYXRjaGluZyBzdWNjZWVkZWQ7IGEgbmVnYXRpdmUKKyAgICAgKiBudW1iZXIgaW5kaWNhdGluZyBtYXRjaGluZyBmYWlsdXJlLCBvdGhlcndpc2UuICBBcyBhIHNpZGUgZWZmZWN0LAorICAgICAqIHNldHMgdGhlIDxjb2RlPmNhbDwvY29kZT4gZmllbGQgPGNvZGU+ZmllbGQ8L2NvZGU+IHRvIHRoZSBpbmRleAorICAgICAqIG9mIHRoZSBiZXN0IG1hdGNoLCBpZiBtYXRjaGluZyBzdWNjZWVkZWQuCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBtYXRjaFN0cmluZyhTdHJpbmcgdGV4dCwgaW50IHN0YXJ0LCBpbnQgZmllbGQsIFN0cmluZ1tdIGRhdGEsIENhbGVuZGFyIGNhbCkKKyAgICB7CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgaW50IGNvdW50ID0gZGF0YS5sZW5ndGg7CisKKyAgICAgICAgaWYgKGZpZWxkID09IENhbGVuZGFyLkRBWV9PRl9XRUVLKSBpID0gMTsKKworICAgICAgICAvLyBUaGVyZSBtYXkgYmUgbXVsdGlwbGUgc3RyaW5ncyBpbiB0aGUgZGF0YVtdIGFycmF5IHdoaWNoIGJlZ2luIHdpdGgKKyAgICAgICAgLy8gdGhlIHNhbWUgcHJlZml4IChlLmcuLCBDZXJ2ZW4gYW5kIENlcnZlbmVjIChKdW5lIGFuZCBKdWx5KSBpbiBDemVjaCkuCisgICAgICAgIC8vIFdlIGtlZXAgdHJhY2sgb2YgdGhlIGxvbmdlc3QgbWF0Y2gsIGFuZCByZXR1cm4gdGhhdC4gIE5vdGUgdGhhdCB0aGlzCisgICAgICAgIC8vIHVuZm9ydHVuYXRlbHkgcmVxdWlyZXMgdXMgdG8gdGVzdCBhbGwgYXJyYXkgZWxlbWVudHMuCisgICAgICAgIGludCBiZXN0TWF0Y2hMZW5ndGggPSAwLCBiZXN0TWF0Y2ggPSAtMTsKKyAgICAgICAgZm9yICg7IGk8Y291bnQ7ICsraSkKKyAgICAgICAgeworICAgICAgICAgICAgaW50IGxlbmd0aCA9IGRhdGFbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAvLyBBbHdheXMgY29tcGFyZSBpZiB3ZSBoYXZlIG5vIG1hdGNoIHlldDsgb3RoZXJ3aXNlIG9ubHkgY29tcGFyZQorICAgICAgICAgICAgLy8gYWdhaW5zdCBwb3RlbnRpYWxseSBiZXR0ZXIgbWF0Y2hlcyAobG9uZ2VyIHN0cmluZ3MpLgorICAgICAgICAgICAgaWYgKGxlbmd0aCA+IGJlc3RNYXRjaExlbmd0aCAmJgorICAgICAgICAgICAgICAgIHRleHQucmVnaW9uTWF0Y2hlcyh0cnVlLCBzdGFydCwgZGF0YVtpXSwgMCwgbGVuZ3RoKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBiZXN0TWF0Y2ggPSBpOworICAgICAgICAgICAgICAgIGJlc3RNYXRjaExlbmd0aCA9IGxlbmd0aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoYmVzdE1hdGNoID49IDApCisgICAgICAgIHsKKyAgICAgICAgICAgIGNhbC5zZXQoZmllbGQsIGJlc3RNYXRjaCk7CisgICAgICAgICAgICByZXR1cm4gc3RhcnQgKyBiZXN0TWF0Y2hMZW5ndGg7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIC1zdGFydDsKKyAgICB9CisKKyAgICBwcml2YXRlIGludCBtYXRjaFpvbmVTdHJpbmcoU3RyaW5nIHRleHQsIGludCBzdGFydCwgaW50IHpvbmVJbmRleCkgeworICAgIGludCBqOworICAgIGZvciAoaiA9IDE7IGogPD0gNDsgKytqKSB7CisgICAgICAgIC8vIENoZWNraW5nIGxvbmcgYW5kIHNob3J0IHpvbmVzIFsxICYgMl0sCisgICAgICAgIC8vIGFuZCBsb25nIGFuZCBzaG9ydCBkYXlsaWdodCBbMyAmIDRdLgorICAgICAgICBpZiAodGV4dC5yZWdpb25NYXRjaGVzKHRydWUsIHN0YXJ0LAorICAgICAgICAgICAgICAgICAgIGZvcm1hdERhdGEuem9uZVN0cmluZ3Nbem9uZUluZGV4XVtqXSwgMCwKKyAgICAgICAgICAgICAgICAgICBmb3JtYXREYXRhLnpvbmVTdHJpbmdzW3pvbmVJbmRleF1bal0ubGVuZ3RoKCkpKSB7CisgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiAoaiA+IDQpID8gLTEgOiBqOworICAgIH0gICAKKworICAgIC8qKgorICAgICAqIGZpbmQgdGltZSB6b25lICd0ZXh0JyBtYXRjaGVkIHpvbmVTdHJpbmdzIGFuZCBzZXQgY2FsCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgc3ViUGFyc2Vab25lU3RyaW5nKFN0cmluZyB0ZXh0LCBpbnQgc3RhcnQsIENhbGVuZGFyIGNhbCkgeworICAgIC8vIEF0IHRoaXMgcG9pbnQsIGNoZWNrIGZvciBuYW1lZCB0aW1lIHpvbmVzIGJ5IGxvb2tpbmcgdGhyb3VnaAorICAgIC8vIHRoZSBsb2NhbGUgZGF0YSBmcm9tIHRoZSBEYXRlRm9ybWF0Wm9uZURhdGEgc3RyaW5ncy4KKyAgICAvLyBXYW50IHRvIGJlIGFibGUgdG8gcGFyc2UgYm90aCBzaG9ydCBhbmQgbG9uZyBmb3Jtcy4KKyAgICBpbnQgem9uZUluZGV4ID0gCisgICAgICAgIGZvcm1hdERhdGEuZ2V0Wm9uZUluZGV4IChnZXRUaW1lWm9uZSgpLmdldElEKCkpOworICAgIFRpbWVab25lIHR6ID0gbnVsbDsKKyAgICBpbnQgaiA9IDAsIGkgPSAwOworICAgIGlmICgoem9uZUluZGV4ICE9IC0xKSAmJiAoKGogPSBtYXRjaFpvbmVTdHJpbmcodGV4dCwgc3RhcnQsIHpvbmVJbmRleCkpID4gMCkpIHsKKyAgICAgICAgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZShmb3JtYXREYXRhLnpvbmVTdHJpbmdzW3pvbmVJbmRleF1bMF0pOworICAgICAgICBpID0gem9uZUluZGV4OworICAgIH0KKyAgICBpZiAodHogPT0gbnVsbCkgeworICAgICAgICB6b25lSW5kZXggPSAKKyAgICAgICAgZm9ybWF0RGF0YS5nZXRab25lSW5kZXggKFRpbWVab25lLmdldERlZmF1bHQoKS5nZXRJRCgpKTsKKyAgICAgICAgaWYgKCh6b25lSW5kZXggIT0gLTEpICYmICgoaiA9IG1hdGNoWm9uZVN0cmluZyh0ZXh0LCBzdGFydCwgem9uZUluZGV4KSkgPiAwKSkgeworICAgICAgICB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKGZvcm1hdERhdGEuem9uZVN0cmluZ3Nbem9uZUluZGV4XVswXSk7CisgICAgICAgIGkgPSB6b25lSW5kZXg7CisgICAgICAgIH0KKyAgICB9ICAgICAgIAorCisgICAgaWYgKHR6ID09IG51bGwpIHsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGZvcm1hdERhdGEuem9uZVN0cmluZ3MubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgaWYgKChqID0gbWF0Y2hab25lU3RyaW5nKHRleHQsIHN0YXJ0LCBpKSkgPiAwKSB7CisgICAgICAgICAgICB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKGZvcm1hdERhdGEuem9uZVN0cmluZ3NbaV1bMF0pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAodHogIT0gbnVsbCkgeyAvLyBNYXRjaGVkIGFueSA/CisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuWk9ORV9PRkZTRVQsIHR6LmdldFJhd09mZnNldCgpKTsKKyAgICAgICAgLy8gVGhlIGNvZGUgYmVsb3cgdGltZSB6b25lIGlzIGFzc3VtZWQgdG8gYmUgaW5zdGFuY2Ugb2YKKyAgICAgICAgLy8gU2ltcGxlVGltZVpvbmUuCisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuRFNUX09GRlNFVCwgCisgICAgICAgICAgICAgaiA+PSAzID8gKChTaW1wbGVUaW1lWm9uZSl0eikuZ2V0RFNUU2F2aW5ncygpIDogMCk7CisgICAgICAgIHJldHVybiAoc3RhcnQgKyBmb3JtYXREYXRhLnpvbmVTdHJpbmdzW2ldW2pdLmxlbmd0aCgpKTsKKyAgICB9CisgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJvdGVjdGVkIG1ldGhvZCB0aGF0IGNvbnZlcnRzIG9uZSBmaWVsZCBvZiB0aGUgaW5wdXQgc3RyaW5nIGludG8gYQorICAgICAqIG51bWVyaWMgZmllbGQgdmFsdWUgaW4gPGNvZGU+Y2FsPC9jb2RlPi4gIFJldHVybnMgLXN0YXJ0IChmb3IKKyAgICAgKiBQYXJzZVBvc2l0aW9uKSBpZiBmYWlsZWQuICBTdWJjbGFzc2VzIG1heSBvdmVycmlkZSB0aGlzIG1ldGhvZCB0bworICAgICAqIG1vZGlmeSBvciBhZGQgcGFyc2luZyBjYXBhYmlsaXRpZXMuCisgICAgICogQHBhcmFtIHRleHQgdGhlIHRpbWUgdGV4dCB0byBiZSBwYXJzZWQuCisgICAgICogQHBhcmFtIHN0YXJ0IHdoZXJlIHRvIHN0YXJ0IHBhcnNpbmcuCisgICAgICogQHBhcmFtIGNoIHRoZSBwYXR0ZXJuIGNoYXJhY3RlciBmb3IgdGhlIGRhdGUgZmllbGQgdGV4dCB0byBiZSBwYXJzZWQuCisgICAgICogQHBhcmFtIGNvdW50IHRoZSBjb3VudCBvZiBhIHBhdHRlcm4gY2hhcmFjdGVyLgorICAgICAqIEBwYXJhbSBvYmV5Q291bnQgaWYgdHJ1ZSwgdGhlbiB0aGUgbmV4dCBmaWVsZCBkaXJlY3RseSBhYnV0cyB0aGlzIG9uZSwKKyAgICAgKiBhbmQgd2Ugc2hvdWxkIHVzZSB0aGUgY291bnQgdG8ga25vdyB3aGVuIHRvIHN0b3AgcGFyc2luZy4KKyAgICAgKiBAcGFyYW0gYW1iaWd1b3VzWWVhciByZXR1cm4gcGFyYW1ldGVyOyB1cG9uIHJldHVybiwgaWYgYW1iaWd1b3VzWWVhclswXQorICAgICAqIGlzIHRydWUsIHRoZW4gYSB0d28tZGlnaXQgeWVhciB3YXMgcGFyc2VkIGFuZCBtYXkgbmVlZCB0byBiZSByZWFkanVzdGVkLgorICAgICAqIEByZXR1cm4gdGhlIG5ldyBzdGFydCBwb3NpdGlvbiBpZiBtYXRjaGluZyBzdWNjZWVkZWQ7IGEgbmVnYXRpdmUKKyAgICAgKiBudW1iZXIgaW5kaWNhdGluZyBtYXRjaGluZyBmYWlsdXJlLCBvdGhlcndpc2UuICBBcyBhIHNpZGUgZWZmZWN0LAorICAgICAqIHNldCB0aGUgYXBwcm9wcmlhdGUgZmllbGQgb2YgPGNvZGU+Y2FsPC9jb2RlPiB3aXRoIHRoZSBwYXJzZWQKKyAgICAgKiB2YWx1ZS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IHN1YlBhcnNlKFN0cmluZyB0ZXh0LCBpbnQgc3RhcnQsIGNoYXIgY2gsIGludCBjb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gb2JleUNvdW50LCBib29sZWFuW10gYW1iaWd1b3VzWWVhciwgQ2FsZW5kYXIgY2FsKQorICAgIHsKKyAgICAgICAgTnVtYmVyIG51bWJlciA9IG51bGw7CisgICAgICAgIGludCB2YWx1ZSA9IDA7CisgICAgICAgIGludCBpOworICAgICAgICBQYXJzZVBvc2l0aW9uIHBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICBpbnQgcGF0dGVybkNoYXJJbmRleCA9IC0xOworCisgICAgICAgIC8vIFRFTVBPUkFSWSBIQUNLIFRPRE8gZml4IHRoaXMKKyAgICAgICAgaWYgKGNoID09ICd1JykgeyAvLyAndScgLSBFWFRFTkRFRF9ZRUFSCisgICAgICAgICAgICBwb3Muc2V0SW5kZXgoc3RhcnQpOworICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgIGlmIChwb3MuZ2V0SW5kZXgoKSA+PSB0ZXh0Lmxlbmd0aCgpKSByZXR1cm4gLXN0YXJ0OworICAgICAgICAgICAgICAgIGNoYXIgYyA9IHRleHQuY2hhckF0KHBvcy5nZXRJbmRleCgpKTsKKyAgICAgICAgICAgICAgICBpZiAoYyAhPSAnICcgJiYgYyAhPSAnXHQnKSBicmVhazsKKyAgICAgICAgICAgICAgICBwb3Muc2V0SW5kZXgocG9zLmdldEluZGV4KCkrMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAob2JleUNvdW50KSB7CisgICAgICAgICAgICAgICAgaWYgKChzdGFydCtjb3VudCkgPiB0ZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtc3RhcnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG51bWJlciA9IG51bWJlckZvcm1hdC5wYXJzZSh0ZXh0LnN1YnN0cmluZygwLCBzdGFydCtjb3VudCksIHBvcyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG51bWJlciA9IG51bWJlckZvcm1hdC5wYXJzZSh0ZXh0LCBwb3MpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG51bWJlciA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC1zdGFydDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZhbHVlID0gbnVtYmVyLmludFZhbHVlKCk7CisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkVYVEVOREVEX1lFQVIsIHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybiBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgocGF0dGVybkNoYXJJbmRleD1mb3JtYXREYXRhLnBhdHRlcm5DaGFycy5pbmRleE9mKGNoKSkgPT0gLTEpCisgICAgICAgICAgICByZXR1cm4gLXN0YXJ0OworCisgICAgICAgIHBvcy5zZXRJbmRleChzdGFydCk7CisKKyAgICAgICAgaW50IGZpZWxkID0gUEFUVEVSTl9JTkRFWF9UT19DQUxFTkRBUl9GSUVMRFtwYXR0ZXJuQ2hhckluZGV4XTsKKworICAgICAgICAvLyBJZiB0aGVyZSBhcmUgYW55IHNwYWNlcyBoZXJlLCBza2lwIG92ZXIgdGhlbS4gIElmIHdlIGhpdCB0aGUgZW5kCisgICAgICAgIC8vIG9mIHRoZSBzdHJpbmcsIHRoZW4gZmFpbC4KKyAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgaWYgKHBvcy5nZXRJbmRleCgpID49IHRleHQubGVuZ3RoKCkpIHJldHVybiAtc3RhcnQ7CisgICAgICAgICAgICBjaGFyIGMgPSB0ZXh0LmNoYXJBdChwb3MuZ2V0SW5kZXgoKSk7CisgICAgICAgICAgICBpZiAoYyAhPSAnICcgJiYgYyAhPSAnXHQnKSBicmVhazsKKyAgICAgICAgICAgIHBvcy5zZXRJbmRleChwb3MuZ2V0SW5kZXgoKSsxKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFdlIGhhbmRsZSBhIGZldyBzcGVjaWFsIGNhc2VzIGhlcmUgd2hlcmUgd2UgbmVlZCB0byBwYXJzZQorICAgICAgICAvLyBhIG51bWJlciB2YWx1ZS4gIFdlIGhhbmRsZSBmdXJ0aGVyLCBtb3JlIGdlbmVyaWMgY2FzZXMgYmVsb3cuICBXZSBuZWVkCisgICAgICAgIC8vIHRvIGhhbmRsZSBzb21lIG9mIHRoZW0gaGVyZSBiZWNhdXNlIHNvbWUgZmllbGRzIHJlcXVpcmUgZXh0cmEgcHJvY2Vzc2luZyBvbgorICAgICAgICAvLyB0aGUgcGFyc2VkIHZhbHVlLgorICAgICAgICBpZiAocGF0dGVybkNoYXJJbmRleCA9PSA0IC8qSE9VUl9PRl9EQVkxX0ZJRUxEKi8gfHwKKyAgICAgICAgICAgIHBhdHRlcm5DaGFySW5kZXggPT0gMTUgLypIT1VSMV9GSUVMRCovIHx8CisgICAgICAgICAgICAocGF0dGVybkNoYXJJbmRleCA9PSAyIC8qTU9OVEhfRklFTEQqLyAmJiBjb3VudCA8PSAyKSB8fAorICAgICAgICAgICAgcGF0dGVybkNoYXJJbmRleCA9PSAxKQorICAgICAgICB7CisgICAgICAgICAgICAvLyBJdCB3b3VsZCBiZSBnb29kIHRvIHVuaWZ5IHRoaXMgd2l0aCB0aGUgb2JleUNvdW50IGxvZ2ljIGJlbG93LAorICAgICAgICAgICAgLy8gYnV0IHRoYXQncyBnb2luZyB0byBiZSBkaWZmaWN1bHQuCisgICAgICAgICAgICBpZiAob2JleUNvdW50KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmICgoc3RhcnQrY291bnQpID4gdGV4dC5sZW5ndGgoKSkgcmV0dXJuIC1zdGFydDsKKyAgICAgICAgICAgICAgICBudW1iZXIgPSBudW1iZXJGb3JtYXQucGFyc2UodGV4dC5zdWJzdHJpbmcoMCwgc3RhcnQrY291bnQpLCBwb3MpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBudW1iZXIgPSBudW1iZXJGb3JtYXQucGFyc2UodGV4dCwgcG9zKTsKKyAgICAgICAgICAgIGlmIChudW1iZXIgPT0gbnVsbCkKKyAgICAgICAgICAgICAgICByZXR1cm4gLXN0YXJ0OworICAgICAgICAgICAgdmFsdWUgPSBudW1iZXIuaW50VmFsdWUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHN3aXRjaCAocGF0dGVybkNoYXJJbmRleCkKKyAgICAgICAgeworICAgICAgICBjYXNlIDA6IC8vICdHJyAtIEVSQQorICAgICAgICAgICAgcmV0dXJuIG1hdGNoU3RyaW5nKHRleHQsIHN0YXJ0LCBDYWxlbmRhci5FUkEsIGZvcm1hdERhdGEuZXJhcywgY2FsKTsKKyAgICAgICAgY2FzZSAxOiAvLyAneScgLSBZRUFSCisgICAgICAgICAgICAvLyBJZiB0aGVyZSBhcmUgMyBvciBtb3JlIFlFQVIgcGF0dGVybiBjaGFyYWN0ZXJzLCB0aGlzIGluZGljYXRlcworICAgICAgICAgICAgLy8gdGhhdCB0aGUgeWVhciB2YWx1ZSBpcyB0byBiZSB0cmVhdGVkIGxpdGVyYWxseSwgd2l0aG91dCBhbnkKKyAgICAgICAgICAgIC8vIHR3by1kaWdpdCB5ZWFyIGFkanVzdG1lbnRzIChlLmcuLCBmcm9tICIwMSIgdG8gMjAwMSkuICBPdGhlcndpc2UKKyAgICAgICAgICAgIC8vIHdlIG1hZGUgYWRqdXN0bWVudHMgdG8gcGxhY2UgdGhlIDItZGlnaXQgeWVhciBpbiB0aGUgcHJvcGVyCisgICAgICAgICAgICAvLyBjZW50dXJ5LCBmb3IgcGFyc2VkIHN0cmluZ3MgZnJvbSAiMDAiIHRvICI5OSIuICBBbnkgb3RoZXIgc3RyaW5nCisgICAgICAgICAgICAvLyBpcyB0cmVhdGVkIGxpdGVyYWxseTogICIyMjUwIiwgIi0xIiwgIjEiLCAiMDAyIi4KKyAgICAgICAgICAgIC8qICd5eScgaXMgdGhlIG9ubHkgc3BlY2lhbCBjYXNlLCAneScgaXMgaW50ZXJwcmV0ZWQgYXMgbnVtYmVyLiBbUmljaGFyZC9HQ0xdKi8KKyAgICAgICAgICAgIGlmIChjb3VudCA9PSAyICYmIChwb3MuZ2V0SW5kZXgoKSAtIHN0YXJ0KSA9PSAyCisgICAgICAgICAgICAgICAgJiYgQ2hhcmFjdGVyLmlzRGlnaXQodGV4dC5jaGFyQXQoc3RhcnQpKQorICAgICAgICAgICAgICAgICYmIENoYXJhY3Rlci5pc0RpZ2l0KHRleHQuY2hhckF0KHN0YXJ0KzEpKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBBc3N1bWUgZm9yIGV4YW1wbGUgdGhhdCB0aGUgZGVmYXVsdENlbnR1cnlTdGFydCBpcyA2LzE4LzE5MDMuCisgICAgICAgICAgICAgICAgLy8gVGhpcyBtZWFucyB0aGF0IHR3by1kaWdpdCB5ZWFycyB3aWxsIGJlIGZvcmNlZCBpbnRvIHRoZSByYW5nZQorICAgICAgICAgICAgICAgIC8vIDYvMTgvMTkwMyB0byA2LzE3LzIwMDMuICBBcyBhIHJlc3VsdCwgeWVhcnMgMDAsIDAxLCBhbmQgMDIKKyAgICAgICAgICAgICAgICAvLyBjb3JyZXNwb25kIHRvIDIwMDAsIDIwMDEsIGFuZCAyMDAyLiAgWWVhcnMgMDQsIDA1LCBldGMuIGNvcnJlc3BvbmQKKyAgICAgICAgICAgICAgICAvLyB0byAxOTA0LCAxOTA1LCBldGMuICBJZiB0aGUgeWVhciBpcyAwMywgdGhlbiBpdCBpcyAyMDAzIGlmIHRoZQorICAgICAgICAgICAgICAgIC8vIG90aGVyIGZpZWxkcyBzcGVjaWZ5IGEgZGF0ZSBiZWZvcmUgNi8xOCwgb3IgMTkwMyBpZiB0aGV5IHNwZWNpZnkgYQorICAgICAgICAgICAgICAgIC8vIGRhdGUgYWZ0ZXJ3YXJkcy4gIEFzIGEgcmVzdWx0LCAwMyBpcyBhbiBhbWJpZ3VvdXMgeWVhci4gIEFsbCBvdGhlcgorICAgICAgICAgICAgICAgIC8vIHR3by1kaWdpdCB5ZWFycyBhcmUgdW5hbWJpZ3VvdXMuCisgICAgICAgICAgICAgICAgaW50IGFtYmlndW91c1R3b0RpZ2l0WWVhciA9IGRlZmF1bHRDZW50dXJ5U3RhcnRZZWFyICUgMTAwOworICAgICAgICAgICAgICAgIGFtYmlndW91c1llYXJbMF0gPSB2YWx1ZSA9PSBhbWJpZ3VvdXNUd29EaWdpdFllYXI7CisgICAgICAgICAgICAgICAgdmFsdWUgKz0gKGRlZmF1bHRDZW50dXJ5U3RhcnRZZWFyLzEwMCkqMTAwICsKKyAgICAgICAgICAgICAgICAgICAgKHZhbHVlIDwgYW1iaWd1b3VzVHdvRGlnaXRZZWFyID8gMTAwIDogMCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLllFQVIsIHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybiBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgY2FzZSAyOiAvLyAnTScgLSBNT05USAorICAgICAgICAgICAgaWYgKGNvdW50IDw9IDIpIC8vIGkuZS4sIE0gb3IgTU0uCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gRG9uJ3Qgd2FudCB0byBwYXJzZSB0aGUgbW9udGggaWYgaXQgaXMgYSBzdHJpbmcKKyAgICAgICAgICAgICAgICAvLyB3aGlsZSBwYXR0ZXJuIHVzZXMgbnVtZXJpYyBzdHlsZTogTSBvciBNTS4KKyAgICAgICAgICAgICAgICAvLyBbV2UgY29tcHV0ZWQgJ3ZhbHVlJyBhYm92ZS5dCisgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5NT05USCwgdmFsdWUgLSAxKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcG9zLmdldEluZGV4KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gY291bnQgPj0gMyAvLyBpLmUuLCBNTU0gb3IgTU1NTQorICAgICAgICAgICAgICAgIC8vIFdhbnQgdG8gYmUgYWJsZSB0byBwYXJzZSBib3RoIHNob3J0IGFuZCBsb25nIGZvcm1zLgorICAgICAgICAgICAgICAgIC8vIFRyeSBjb3VudCA9PSA0IGZpcnN0OgorICAgICAgICAgICAgICAgIGludCBuZXdTdGFydCA9IDA7CisgICAgICAgICAgICAgICAgaWYgKChuZXdTdGFydD1tYXRjaFN0cmluZyh0ZXh0LCBzdGFydCwgQ2FsZW5kYXIuTU9OVEgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXREYXRhLm1vbnRocywgY2FsKSkgPiAwKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3U3RhcnQ7CisgICAgICAgICAgICAgICAgZWxzZSAvLyBjb3VudCA9PSA0IGZhaWxlZCwgbm93IHRyeSBjb3VudCA9PSAzCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBtYXRjaFN0cmluZyh0ZXh0LCBzdGFydCwgQ2FsZW5kYXIuTU9OVEgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXREYXRhLnNob3J0TW9udGhzLCBjYWwpOworICAgICAgICAgICAgfQorICAgICAgICBjYXNlIDQ6IC8vICdrJyAtIEhPVVJfT0ZfREFZOiAxLWJhc2VkLiAgZWcsIDIzOjU5ICsgMSBob3VyID0+PiAyNDo1OQorICAgICAgICAgICAgLy8gW1dlIGNvbXB1dGVkICd2YWx1ZScgYWJvdmUuXQorICAgICAgICAgICAgaWYgKHZhbHVlID09IGNhbC5nZXRNYXhpbXVtKENhbGVuZGFyLkhPVVJfT0ZfREFZKSsxKSB2YWx1ZSA9IDA7CisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZLCB2YWx1ZSk7CisgICAgICAgICAgICByZXR1cm4gcG9zLmdldEluZGV4KCk7CisgICAgICAgIGNhc2UgOTogeyAvLyAnRScgLSBEQVlfT0ZfV0VFSworICAgICAgICAgICAgLy8gV2FudCB0byBiZSBhYmxlIHRvIHBhcnNlIGJvdGggc2hvcnQgYW5kIGxvbmcgZm9ybXMuCisgICAgICAgICAgICAvLyBUcnkgY291bnQgPT0gNCAoRERERCkgZmlyc3Q6CisgICAgICAgICAgICBpbnQgbmV3U3RhcnQgPSAwOworICAgICAgICAgICAgaWYgKChuZXdTdGFydD1tYXRjaFN0cmluZyh0ZXh0LCBzdGFydCwgQ2FsZW5kYXIuREFZX09GX1dFRUssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdERhdGEud2Vla2RheXMsIGNhbCkpID4gMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3U3RhcnQ7CisgICAgICAgICAgICBlbHNlIC8vIEREREQgZmFpbGVkLCBub3cgdHJ5IERERAorICAgICAgICAgICAgICAgIHJldHVybiBtYXRjaFN0cmluZyh0ZXh0LCBzdGFydCwgQ2FsZW5kYXIuREFZX09GX1dFRUssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdERhdGEuc2hvcnRXZWVrZGF5cywgY2FsKTsKKyAgICAgICAgfQorICAgICAgICBjYXNlIDE0OiAgICAvLyAnYScgLSBBTV9QTQorICAgICAgICAgICAgcmV0dXJuIG1hdGNoU3RyaW5nKHRleHQsIHN0YXJ0LCBDYWxlbmRhci5BTV9QTSwgZm9ybWF0RGF0YS5hbXBtcywgY2FsKTsKKyAgICAgICAgY2FzZSAxNTogLy8gJ2gnIC0gSE9VUjoxLWJhc2VkLiAgZWcsIDExUE0gKyAxIGhvdXIgPT4+IDEyIEFNCisgICAgICAgICAgICAvLyBbV2UgY29tcHV0ZWQgJ3ZhbHVlJyBhYm92ZS5dCisgICAgICAgICAgICBpZiAodmFsdWUgPT0gY2FsLmdldExlYXN0TWF4aW11bShDYWxlbmRhci5IT1VSKSsxKSB2YWx1ZSA9IDA7CisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkhPVVIsIHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybiBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgY2FzZSAxNzogLy8gJ3onIC0gWk9ORV9PRkZTRVQKKyAgICAgICAgICAgIC8vIEZpcnN0IHRyeSB0byBwYXJzZSBnZW5lcmljIGZvcm1zIHN1Y2ggYXMgR01ULTA3OjAwLiBEbyB0aGlzIGZpcnN0CisgICAgICAgICAgICAvLyBpbiBjYXNlIGxvY2FsaXplZCBEYXRlRm9ybWF0Wm9uZURhdGEgY29udGFpbnMgdGhlIHN0cmluZyAiR01UIgorICAgICAgICAgICAgLy8gZm9yIGEgem9uZTsgaW4gdGhhdCBjYXNlLCB3ZSBkb24ndCB3YW50IHRvIG1hdGNoIHRoZSBmaXJzdCB0aHJlZQorICAgICAgICAgICAgLy8gY2hhcmFjdGVycyBvZiBHTVQrLy1ISDpNTSBldGMuCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaW50IHNpZ24gPSAwOworICAgICAgICAgICAgICAgIGludCBvZmZzZXQ7CisKKyAgICAgICAgICAgICAgICAvLyBGb3IgdGltZSB6b25lcyB0aGF0IGhhdmUgbm8ga25vd24gbmFtZXMsIGxvb2sgZm9yIHN0cmluZ3MKKyAgICAgICAgICAgICAgICAvLyBvZiB0aGUgZm9ybToKKyAgICAgICAgICAgICAgICAvLyAgICBHTVRbKy1daG91cnM6bWludXRlcyBvcgorICAgICAgICAgICAgICAgIC8vICAgIEdNVFsrLV1oaG1tIG9yCisgICAgICAgICAgICAgICAgLy8gICAgR01ULgorICAgICAgICAgICAgICAgIGlmICgodGV4dC5sZW5ndGgoKSAtIHN0YXJ0KSA+PSBHTVQubGVuZ3RoKCkgJiYKKyAgICAgICAgICAgICAgICAgICAgdGV4dC5yZWdpb25NYXRjaGVzKHRydWUsIHN0YXJ0LCBHTVQsIDAsIEdNVC5sZW5ndGgoKSkpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkRTVF9PRkZTRVQsIDApOworCisgICAgICAgICAgICAgICAgICAgIHBvcy5zZXRJbmRleChzdGFydCArIEdNVC5sZW5ndGgoKSk7CisKKyAgICAgICAgICAgIHRyeSB7IC8vIHRyeS1jYXRjaCBmb3IgIkdNVCIgb25seSB0aW1lIHpvbmUgc3RyaW5nCisgICAgICAgICAgICBpZiggdGV4dC5jaGFyQXQocG9zLmdldEluZGV4KCkpID09ICcrJyApIHsKKyAgICAgICAgICAgICAgICBzaWduID0gMTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiggdGV4dC5jaGFyQXQocG9zLmdldEluZGV4KCkpID09ICctJyApIHsKKyAgICAgICAgICAgICAgICBzaWduID0gLTE7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgfSBjYXRjaChTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHNpZ24gPT0gMCkgeworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5aT05FX09GRlNFVCwgMCApOworICAgICAgICAgICAgcmV0dXJuIHBvcy5nZXRJbmRleCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8vIExvb2sgZm9yIGhvdXJzOm1pbnV0ZXMgb3IgaGhtbS4KKyAgICAgICAgICAgICAgICAgICAgcG9zLnNldEluZGV4KHBvcy5nZXRJbmRleCgpICsgMSk7CisgICAgICAgICAgICAgICAgICAgIE51bWJlciB0ek51bWJlciA9IG51bWJlckZvcm1hdC5wYXJzZSh0ZXh0LCBwb3MpOworICAgICAgICAgICAgICAgICAgICBpZiggdHpOdW1iZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1zdGFydDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiggdGV4dC5jaGFyQXQocG9zLmdldEluZGV4KCkpID09ICc6JyApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGhvdXJzOm1pbnV0ZXMgY2FzZQorICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gdHpOdW1iZXIuaW50VmFsdWUoKSAqIDYwOworICAgICAgICAgICAgICAgICAgICAgICAgcG9zLnNldEluZGV4KHBvcy5nZXRJbmRleCgpICsgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB0ek51bWJlciA9IG51bWJlckZvcm1hdC5wYXJzZSh0ZXh0LCBwb3MpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYoIHR6TnVtYmVyID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLXN0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IHR6TnVtYmVyLmludFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHRoZSBoaG1tIGNhc2UuCisgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgPSB0ek51bWJlci5pbnRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYoIG9mZnNldCA8IDI0ICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKj0gNjA7CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gb2Zmc2V0ICUgMTAwICsgb2Zmc2V0IC8gMTAwICogNjA7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAvLyBGYWxsIHRocm91Z2ggZm9yIGZpbmFsIHByb2Nlc3NpbmcgYmVsb3cgb2YgJ29mZnNldCcgYW5kICdzaWduJy4KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQsIGNoZWNrIGZvciBuYW1lZCB0aW1lIHpvbmVzIGJ5IGxvb2tpbmcgdGhyb3VnaAorICAgICAgICAgICAgICAgICAgICAvLyB0aGUgbG9jYWxlIGRhdGEgZnJvbSB0aGUgRGF0ZUZvcm1hdFpvbmVEYXRhIHN0cmluZ3MuCisgICAgICAgICAgICAgICAgICAgIC8vIFdhbnQgdG8gYmUgYWJsZSB0byBwYXJzZSBib3RoIHNob3J0IGFuZCBsb25nIGZvcm1zLgorICAgICAgICAgICAgaSA9IHN1YlBhcnNlWm9uZVN0cmluZyh0ZXh0LCBzdGFydCwgY2FsKTsKKyAgICAgICAgICAgIGlmIChpICE9IDApCisgICAgICAgICAgICByZXR1cm4gaTsKKworICAgICAgICAgICAgICAgICAgICAvLyBBcyBhIGxhc3QgcmVzb3J0LCBsb29rIGZvciBudW1lcmljIHRpbWV6b25lcyBvZiB0aGUgZm9ybQorICAgICAgICAgICAgICAgICAgICAvLyBbKy1daGhtbSBhcyBzcGVjaWZpZWQgYnkgUkZDIDgyMi4gIFRoaXMgY29kZSBpcyBhY3R1YWxseQorICAgICAgICAgICAgICAgICAgICAvLyBhIGxpdHRsZSBtb3JlIHBlcm1pc3NpdmUgdGhhbiBSRkMgODIyLiAgSXQgd2lsbCB0cnkgdG8gZG8KKyAgICAgICAgICAgICAgICAgICAgLy8gaXRzIGJlc3Qgd2l0aCBudW1iZXJzIHRoYXQgYXJlbid0IHN0cmljdGx5IDQgZGlnaXRzIGxvbmcuCisgICAgICAgICAgICAgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQoIisjIyMjOy0jIyMjIik7CisgICAgICAgICAgICAgICAgICAgIGZtdC5zZXRQYXJzZUludGVnZXJPbmx5KHRydWUpOworICAgICAgICAgICAgICAgICAgICBOdW1iZXIgdHpOdW1iZXIgPSBmbXQucGFyc2UoIHRleHQsIHBvcyApOworICAgICAgICAgICAgICAgICAgICBpZiggdHpOdW1iZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1zdGFydDsgICAvLyBXYXNuJ3QgYWN0dWFsbHkgYSBudW1iZXIuCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gdHpOdW1iZXIuaW50VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgc2lnbiA9IDE7CisgICAgICAgICAgICAgICAgICAgIGlmKCBvZmZzZXQgPCAwICkgeworICAgICAgICAgICAgICAgICAgICAgICAgc2lnbiA9IC0xOworICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gLW9mZnNldDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiggb2Zmc2V0IDwgMjQgKQorICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gb2Zmc2V0ICogNjA7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCA9IG9mZnNldCAlIDEwMCArIG9mZnNldCAvIDEwMCAqIDYwOworCisgICAgICAgICAgICAgICAgICAgIC8vIEZhbGwgdGhyb3VnaCBmb3IgZmluYWwgcHJvY2Vzc2luZyBiZWxvdyBvZiAnb2Zmc2V0JyBhbmQgJ3NpZ24nLgorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIERvIHRoZSBmaW5hbCBwcm9jZXNzaW5nIGZvciBib3RoIG9mIHRoZSBhYm92ZSBjYXNlcy4gIFdlIG9ubHkKKyAgICAgICAgICAgICAgICAvLyBhcnJpdmUgaGVyZSBpZiB0aGUgZm9ybSBHTVQrLy0uLi4gb3IgYW4gUkZDIDgyMiBmb3JtIHdhcyBzZWVuLgorICAgICAgICAgICAgICAgIGlmIChzaWduICE9IDApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKj0gbWlsbGlzUGVyTWludXRlICogc2lnbjsKKworICAgICAgICAgICAgICAgICAgICBpZiAoY2FsLmdldFRpbWVab25lKCkudXNlRGF5bGlnaHRUaW1lKCkpCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuRFNUX09GRlNFVCwgbWlsbGlzUGVySG91cik7CisgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgLT0gbWlsbGlzUGVySG91cjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLlpPTkVfT0ZGU0VULCBvZmZzZXQpOworCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIEFsbCBlZmZvcnRzIHRvIHBhcnNlIGEgem9uZSBmYWlsZWQuCisgICAgICAgICAgICByZXR1cm4gLXN0YXJ0OworCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAvLyBjYXNlIDM6IC8vICdkJyAtIERBVEUKKyAgICAgICAgICAgIC8vIGNhc2UgNTogLy8gJ0gnIC0gSE9VUl9PRl9EQVk6MC1iYXNlZC4gIGVnLCAyMzo1OSArIDEgaG91ciA9Pj4gMDA6NTkKKyAgICAgICAgICAgIC8vIGNhc2UgNjogLy8gJ20nIC0gTUlOVVRFCisgICAgICAgICAgICAvLyBjYXNlIDc6IC8vICdzJyAtIFNFQ09ORAorICAgICAgICAgICAgLy8gY2FzZSA4OiAvLyAnUycgLSBNSUxMSVNFQ09ORAorICAgICAgICAgICAgLy8gY2FzZSAxMDogLy8gJ0QnIC0gREFZX09GX1lFQVIKKyAgICAgICAgICAgIC8vIGNhc2UgMTE6IC8vICdGJyAtIERBWV9PRl9XRUVLX0lOX01PTlRICisgICAgICAgICAgICAvLyBjYXNlIDEyOiAvLyAndycgLSBXRUVLX09GX1lFQVIKKyAgICAgICAgICAgIC8vIGNhc2UgMTM6IC8vICdXJyAtIFdFRUtfT0ZfTU9OVEgKKyAgICAgICAgICAgIC8vIGNhc2UgMTY6IC8vICdLJyAtIEhPVVI6IDAtYmFzZWQuICBlZywgMTFQTSArIDEgaG91ciA9Pj4gMCBBTQorCisgICAgICAgICAgICAvLyBIYW5kbGUgImdlbmVyaWMiIGZpZWxkcworICAgICAgICAgICAgaWYgKG9iZXlDb3VudCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAoKHN0YXJ0K2NvdW50KSA+IHRleHQubGVuZ3RoKCkpIHJldHVybiAtc3RhcnQ7CisgICAgICAgICAgICAgICAgbnVtYmVyID0gbnVtYmVyRm9ybWF0LnBhcnNlKHRleHQuc3Vic3RyaW5nKDAsIHN0YXJ0K2NvdW50KSwgcG9zKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgbnVtYmVyID0gbnVtYmVyRm9ybWF0LnBhcnNlKHRleHQsIHBvcyk7CisgICAgICAgICAgICBpZiAobnVtYmVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KGZpZWxkLCBudW1iZXIuaW50VmFsdWUoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHBvcy5nZXRJbmRleCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIC1zdGFydDsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgLyoqCisgICAgICogVHJhbnNsYXRlIGEgcGF0dGVybiwgbWFwcGluZyBlYWNoIGNoYXJhY3RlciBpbiB0aGUgZnJvbSBzdHJpbmcgdG8gdGhlCisgICAgICogY29ycmVzcG9uZGluZyBjaGFyYWN0ZXIgaW4gdGhlIHRvIHN0cmluZy4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyB0cmFuc2xhdGVQYXR0ZXJuKFN0cmluZyBwYXR0ZXJuLCBTdHJpbmcgZnJvbSwgU3RyaW5nIHRvKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGJvb2xlYW4gaW5RdW90ZSA9IGZhbHNlOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHBhdHRlcm4ubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgY2hhciBjID0gcGF0dGVybi5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoaW5RdW90ZSkgeworICAgICAgICAgICAgICAgIGlmIChjID09ICdcJycpCisgICAgICAgICAgICAgICAgICAgIGluUXVvdGUgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChjID09ICdcJycpCisgICAgICAgICAgICAgICAgICAgIGluUXVvdGUgPSB0cnVlOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKChjID49ICdhJyAmJiBjIDw9ICd6JykgfHwgKGMgPj0gJ0EnICYmIGMgPD0gJ1onKSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgY2kgPSBmcm9tLmluZGV4T2YoYyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjaSA9PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgcGF0dGVybiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBjaGFyYWN0ZXIgJyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjICsgIiciKTsKKyAgICAgICAgICAgICAgICAgICAgYyA9IHRvLmNoYXJBdChjaSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChjKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaW5RdW90ZSkKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlVuZmluaXNoZWQgcXVvdGUgaW4gcGF0dGVybiIpOworICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgcGF0dGVybiBzdHJpbmcgZGVzY3JpYmluZyB0aGlzIGRhdGUgZm9ybWF0LgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9QYXR0ZXJuKCkgeworICAgICAgICByZXR1cm4gcGF0dGVybjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBsb2NhbGl6ZWQgcGF0dGVybiBzdHJpbmcgZGVzY3JpYmluZyB0aGlzIGRhdGUgZm9ybWF0LgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9Mb2NhbGl6ZWRQYXR0ZXJuKCkgeworICAgICAgICByZXR1cm4gdHJhbnNsYXRlUGF0dGVybihwYXR0ZXJuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXREYXRhLnBhdHRlcm5DaGFycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0RGF0YS5sb2NhbFBhdHRlcm5DaGFycyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQXBwbHkgdGhlIGdpdmVuIHVubG9jYWxpemVkIHBhdHRlcm4gc3RyaW5nIHRvIHRoaXMgZGF0ZSBmb3JtYXQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgYXBwbHlQYXR0ZXJuIChTdHJpbmcgcGF0dGVybikKKyAgICB7CisgICAgICAgIHRoaXMucGF0dGVybiA9IHBhdHRlcm47CisgICAgfQorCisgICAgLyoqCisgICAgICogQXBwbHkgdGhlIGdpdmVuIGxvY2FsaXplZCBwYXR0ZXJuIHN0cmluZyB0byB0aGlzIGRhdGUgZm9ybWF0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFwcGx5TG9jYWxpemVkUGF0dGVybihTdHJpbmcgcGF0dGVybikgeworICAgICAgICB0aGlzLnBhdHRlcm4gPSB0cmFuc2xhdGVQYXR0ZXJuKHBhdHRlcm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0RGF0YS5sb2NhbFBhdHRlcm5DaGFycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXREYXRhLnBhdHRlcm5DaGFycyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZGF0ZS90aW1lIGZvcm1hdHRpbmcgZGF0YS4KKyAgICAgKiBAcmV0dXJuIGEgY29weSBvZiB0aGUgZGF0ZS10aW1lIGZvcm1hdHRpbmcgZGF0YSBhc3NvY2lhdGVkCisgICAgICogd2l0aCB0aGlzIGRhdGUtdGltZSBmb3JtYXR0ZXIuCisgICAgICovCisgICAgcHVibGljIERhdGVGb3JtYXRTeW1ib2xzIGdldERhdGVGb3JtYXRTeW1ib2xzKCkKKyAgICB7CisgICAgICAgIHJldHVybiAoRGF0ZUZvcm1hdFN5bWJvbHMpZm9ybWF0RGF0YS5jbG9uZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFsbG93cyB5b3UgdG8gc2V0IHRoZSBkYXRlL3RpbWUgZm9ybWF0dGluZyBkYXRhLgorICAgICAqIEBwYXJhbSBuZXdGb3JtYXREYXRhIHRoZSBnaXZlbiBkYXRlLXRpbWUgZm9ybWF0dGluZyBkYXRhLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldERhdGVGb3JtYXRTeW1ib2xzKERhdGVGb3JtYXRTeW1ib2xzIG5ld0Zvcm1hdFN5bWJvbHMpCisgICAgeworICAgICAgICB0aGlzLmZvcm1hdERhdGEgPSAoRGF0ZUZvcm1hdFN5bWJvbHMpbmV3Rm9ybWF0U3ltYm9scy5jbG9uZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1ldGhvZCBmb3Igc3ViY2xhc3NlcyB0byBhY2Nlc3MgdGhlIERhdGVGb3JtYXRTeW1ib2xzLgorICAgICAqLworICAgIHByb3RlY3RlZCBEYXRlRm9ybWF0U3ltYm9scyBnZXRTeW1ib2xzKCkgeworICAgICAgICByZXR1cm4gZm9ybWF0RGF0YTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgQ2xvbmVhYmxlCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBvdGhlciA9IChTaW1wbGVEYXRlRm9ybWF0KSBzdXBlci5jbG9uZSgpOworICAgICAgICBvdGhlci5mb3JtYXREYXRhID0gKERhdGVGb3JtYXRTeW1ib2xzKSBmb3JtYXREYXRhLmNsb25lKCk7CisgICAgICAgIHJldHVybiBvdGhlcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBoYXNoQ29kZS4KKyAgICAgKiBHZW5lcmF0ZXMgdGhlIGhhc2ggY29kZSBmb3IgdGhlIFNpbXBsZURhdGVGb3JtYXQgb2JqZWN0CisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpCisgICAgeworICAgICAgICByZXR1cm4gcGF0dGVybi5oYXNoQ29kZSgpOworICAgICAgICAvLyBqdXN0IGVub3VnaCBmaWVsZHMgZm9yIGEgcmVhc29uYWJsZSBkaXN0cmlidXRpb24KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBlcXVhbHMuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmopCisgICAgeworICAgICAgICBpZiAoIXN1cGVyLmVxdWFscyhvYmopKSByZXR1cm4gZmFsc2U7IC8vIHN1cGVyIGRvZXMgY2xhc3MgY2hlY2sKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCB0aGF0ID0gKFNpbXBsZURhdGVGb3JtYXQpIG9iajsKKyAgICAgICAgcmV0dXJuIChwYXR0ZXJuLmVxdWFscyh0aGF0LnBhdHRlcm4pCisgICAgICAgICAgICAgICAgJiYgZm9ybWF0RGF0YS5lcXVhbHModGhhdC5mb3JtYXREYXRhKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgcmVhZE9iamVjdC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcmVhZE9iamVjdChPYmplY3RJbnB1dFN0cmVhbSBzdHJlYW0pCisgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24sIENsYXNzTm90Rm91bmRFeGNlcHRpb24geworICAgICAgICAgICAgIHN0cmVhbS5kZWZhdWx0UmVhZE9iamVjdCgpOworICAgICAgICAgICAgIGlmIChzZXJpYWxWZXJzaW9uT25TdHJlYW0gPCAxKSB7CisgICAgICAgICAgICAgICAgIC8vIGRpZG4ndCBoYXZlIGRlZmF1bHRDZW50dXJ5U3RhcnQgZmllbGQKKyAgICAgICAgICAgICAgICAgaW5pdGlhbGl6ZURlZmF1bHRDZW50dXJ5KCk7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAvLyBmaWxsIGluIGRlcGVuZGVudCB0cmFuc2llbnQgZmllbGQKKyAgICAgICAgICAgICAgICAgcGFyc2VBbWJpZ3VvdXNEYXRlc0FzQWZ0ZXIoZGVmYXVsdENlbnR1cnlTdGFydCk7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIHNlcmlhbFZlcnNpb25PblN0cmVhbSA9IGN1cnJlbnRTZXJpYWxWZXJzaW9uOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1N0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZhNThiYjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMjY5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvdGV4dC9TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvci5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA2OjE1ICQgCisgKiAkUmV2aXNpb246IDEuMyAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworCisvLyBOT1RFOiAgVGhpcyBjbGFzcyBpcyBpZGVudGljYWwgdG8gamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yCisvLyBpbiBKREsgMS4yLiAgSXQncyBjb3BpZWQgaGVyZSBiZWNhdXNlIHRoZSBKREsgMS4xIHZlcnNpb24gb2YKKy8vIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIGhhcyBhIGJ1ZyB0aGF0IHByZXZlbnRzIGl0IGZyb20gd29ya2luZworLy8gcmlnaHQgd2l0aCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLiAgVGhpcyBjbGFzcyBpcyB1bm5lY2Vzc2FyeQorLy8gd2hlbiB1c2luZyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHdpdGggSkRLIDEuMi4KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKKworLyoqCisgKiA8Y29kZT5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcjwvY29kZT4gaW1wbGVtZW50cyB0aGUKKyAqIDxjb2RlPkNoYXJhY3Rlckl0ZXJhdGVyPC9jb2RlPiBwcm90b2NvbCBmb3IgYSA8Y29kZT5TdHJpbmc8L2NvZGU+LgorICogVGhlIDxjb2RlPlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yPC9jb2RlPiBjbGFzcyBpdGVyYXRlcyBvdmVyIHRoZQorICogZW50aXJlIDxjb2RlPlN0cmluZzwvY29kZT4uCisgKgorICogQHNlZSBDaGFyYWN0ZXJJdGVyYXRvcgorICovCisKK3B1YmxpYyBmaW5hbCBjbGFzcyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBpbXBsZW1lbnRzIENoYXJhY3Rlckl0ZXJhdG9yCit7CisgICAgcHJpdmF0ZSBTdHJpbmcgdGV4dDsKKyAgICBwcml2YXRlIGludCBiZWdpbjsKKyAgICBwcml2YXRlIGludCBlbmQ7CisgICAgLy8gaW52YXJpYW50OiBiZWdpbiA8PSBwb3MgPD0gZW5kCisgICAgcHJpdmF0ZSBpbnQgcG9zOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhbiBpdGVyYXRvciB3aXRoIGFuIGluaXRpYWwgaW5kZXggb2YgMC4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoU3RyaW5nIHRleHQpCisgICAgeworICAgICAgICB0aGlzKHRleHQsIDApOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYW4gaXRlcmF0b3Igd2l0aCB0aGUgc3BlY2lmaWVkIGluaXRpYWwgaW5kZXguCisgICAgICoKKyAgICAgKiBAcGFyYW0gIHRleHQgICBUaGUgU3RyaW5nIHRvIGJlIGl0ZXJhdGVkIG92ZXIKKyAgICAgKiBAcGFyYW0gIHBvcyAgICBJbml0aWFsIGl0ZXJhdG9yIHBvc2l0aW9uCisgICAgICovCisgICAgcHVibGljIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKFN0cmluZyB0ZXh0LCBpbnQgcG9zKQorICAgIHsKKyAgICB0aGlzKHRleHQsIDAsIHRleHQubGVuZ3RoKCksIHBvcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhbiBpdGVyYXRvciBvdmVyIHRoZSBnaXZlbiByYW5nZSBvZiB0aGUgZ2l2ZW4gc3RyaW5nLCB3aXRoIHRoZQorICAgICAqIGluZGV4IHNldCBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLgorICAgICAqCisgICAgICogQHBhcmFtICB0ZXh0ICAgVGhlIFN0cmluZyB0byBiZSBpdGVyYXRlZCBvdmVyCisgICAgICogQHBhcmFtICBiZWdpbiAgSW5kZXggb2YgdGhlIGZpcnN0IGNoYXJhY3RlcgorICAgICAqIEBwYXJhbSAgZW5kICAgIEluZGV4IG9mIHRoZSBjaGFyYWN0ZXIgZm9sbG93aW5nIHRoZSBsYXN0IGNoYXJhY3RlcgorICAgICAqIEBwYXJhbSAgcG9zICAgIEluaXRpYWwgaXRlcmF0b3IgcG9zaXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoU3RyaW5nIHRleHQsIGludCBiZWdpbiwgaW50IGVuZCwgaW50IHBvcykgeworICAgICAgICBpZiAodGV4dCA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgTnVsbFBvaW50ZXJFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLnRleHQgPSB0ZXh0OworCisgICAgICAgIGlmIChiZWdpbiA8IDAgfHwgYmVnaW4gPiBlbmQgfHwgZW5kID4gdGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBzdWJzdHJpbmcgcmFuZ2UiKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChwb3MgPCBiZWdpbiB8fCBwb3MgPiBlbmQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgcG9zaXRpb24iKTsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuYmVnaW4gPSBiZWdpbjsKKyAgICAgICAgdGhpcy5lbmQgPSBlbmQ7CisgICAgICAgIHRoaXMucG9zID0gcG9zOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlc2V0IHRoaXMgaXRlcmF0b3IgdG8gcG9pbnQgdG8gYSBuZXcgc3RyaW5nLiAgVGhpcyBwYWNrYWdlLXZpc2libGUKKyAgICAgKiBtZXRob2QgaXMgdXNlZCBieSBvdGhlciBqYXZhLnRleHQgY2xhc3NlcyB0aGF0IHdhbnQgdG8gYXZvaWQgYWxsb2NhdGluZworICAgICAqIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBvYmplY3RzIGV2ZXJ5IHRpbWUgdGhlaXIgc2V0VGV4dCBtZXRob2QKKyAgICAgKiBpcyBjYWxsZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gIHRleHQgICBUaGUgU3RyaW5nIHRvIGJlIGl0ZXJhdGVkIG92ZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUZXh0KFN0cmluZyB0ZXh0KSB7CisgICAgICAgIGlmICh0ZXh0ID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIHRoaXMudGV4dCA9IHRleHQ7CisgICAgICAgIHRoaXMuYmVnaW4gPSAwOworICAgICAgICB0aGlzLmVuZCA9IHRleHQubGVuZ3RoKCk7CisgICAgICAgIHRoaXMucG9zID0gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRzIENoYXJhY3Rlckl0ZXJhdG9yLmZpcnN0KCkgZm9yIFN0cmluZy4KKyAgICAgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yI2ZpcnN0CisgICAgICovCisgICAgcHVibGljIGNoYXIgZmlyc3QoKQorICAgIHsKKyAgICAgICAgcG9zID0gYmVnaW47CisgICAgICAgIHJldHVybiBjdXJyZW50KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyBDaGFyYWN0ZXJJdGVyYXRvci5sYXN0KCkgZm9yIFN0cmluZy4KKyAgICAgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yI2xhc3QKKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBsYXN0KCkKKyAgICB7CisgICAgICAgIGlmIChlbmQgIT0gYmVnaW4pIHsKKyAgICAgICAgICAgIHBvcyA9IGVuZCAtIDE7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwb3MgPSBlbmQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGN1cnJlbnQoKTsKKyAgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyBDaGFyYWN0ZXJJdGVyYXRvci5zZXRJbmRleCgpIGZvciBTdHJpbmcuCisgICAgICogQHNlZSBDaGFyYWN0ZXJJdGVyYXRvciNzZXRJbmRleAorICAgICAqLworICAgIHB1YmxpYyBjaGFyIHNldEluZGV4KGludCBwKQorICAgIHsKKyAgICBpZiAocCA8IGJlZ2luIHx8IHAgPiBlbmQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgaW5kZXgiKTsKKyAgICB9CisgICAgICAgIHBvcyA9IHA7CisgICAgICAgIHJldHVybiBjdXJyZW50KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyBDaGFyYWN0ZXJJdGVyYXRvci5jdXJyZW50KCkgZm9yIFN0cmluZy4KKyAgICAgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yI2N1cnJlbnQKKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBjdXJyZW50KCkKKyAgICB7CisgICAgICAgIGlmIChwb3MgPj0gYmVnaW4gJiYgcG9zIDwgZW5kKSB7CisgICAgICAgICAgICByZXR1cm4gdGV4dC5jaGFyQXQocG9zKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBET05FOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyBDaGFyYWN0ZXJJdGVyYXRvci5uZXh0KCkgZm9yIFN0cmluZy4KKyAgICAgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yI25leHQKKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBuZXh0KCkKKyAgICB7CisgICAgICAgIGlmIChwb3MgPCBlbmQgLSAxKSB7CisgICAgICAgICAgICBwb3MrKzsKKyAgICAgICAgICAgIHJldHVybiB0ZXh0LmNoYXJBdChwb3MpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcG9zID0gZW5kOworICAgICAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRzIENoYXJhY3Rlckl0ZXJhdG9yLnByZXZpb3VzKCkgZm9yIFN0cmluZy4KKyAgICAgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yI3ByZXZpb3VzCisgICAgICovCisgICAgcHVibGljIGNoYXIgcHJldmlvdXMoKQorICAgIHsKKyAgICAgICAgaWYgKHBvcyA+IGJlZ2luKSB7CisgICAgICAgICAgICBwb3MtLTsKKyAgICAgICAgICAgIHJldHVybiB0ZXh0LmNoYXJBdChwb3MpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRzIENoYXJhY3Rlckl0ZXJhdG9yLmdldEJlZ2luSW5kZXgoKSBmb3IgU3RyaW5nLgorICAgICAqIEBzZWUgQ2hhcmFjdGVySXRlcmF0b3IjZ2V0QmVnaW5JbmRleAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0QmVnaW5JbmRleCgpCisgICAgeworICAgICAgICByZXR1cm4gYmVnaW47CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyBDaGFyYWN0ZXJJdGVyYXRvci5nZXRFbmRJbmRleCgpIGZvciBTdHJpbmcuCisgICAgICogQHNlZSBDaGFyYWN0ZXJJdGVyYXRvciNnZXRFbmRJbmRleAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0RW5kSW5kZXgoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGVuZDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRzIENoYXJhY3Rlckl0ZXJhdG9yLmdldEluZGV4KCkgZm9yIFN0cmluZy4KKyAgICAgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yI2dldEluZGV4CisgICAgICovCisgICAgcHVibGljIGludCBnZXRJbmRleCgpCisgICAgeworICAgICAgICByZXR1cm4gcG9zOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhcmVzIHRoZSBlcXVhbGl0eSBvZiB0d28gU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3Igb2JqZWN0cy4KKyAgICAgKiBAcGFyYW0gb2JqIHRoZSBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBvYmplY3QgdG8gYmUgY29tcGFyZWQgd2l0aC4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIG9iaiBpcyB0aGUgc2FtZSBhcyB0aGlzCisgICAgICogU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3Igb2JqZWN0OyBmYWxzZSBvdGhlcndpc2UuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmopCisgICAgeworICAgICAgICBpZiAodGhpcyA9PSBvYmopIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICghKG9iaiBpbnN0YW5jZW9mIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgdGhhdCA9IChTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcikgb2JqOworCisgICAgICAgIGlmIChoYXNoQ29kZSgpICE9IHRoYXQuaGFzaENvZGUoKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmICghdGV4dC5lcXVhbHModGhhdC50ZXh0KSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmIChwb3MgIT0gdGhhdC5wb3MgfHwgYmVnaW4gIT0gdGhhdC5iZWdpbiB8fCBlbmQgIT0gdGhhdC5lbmQpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wdXRlcyBhIGhhc2hjb2RlIGZvciB0aGlzIGl0ZXJhdG9yLgorICAgICAqIEByZXR1cm4gQSBoYXNoIGNvZGUKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0ZXh0Lmhhc2hDb2RlKCkgXiBwb3MgXiBiZWdpbiBeIGVuZDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgY29weSBvZiB0aGlzIGl0ZXJhdG9yLgorICAgICAqIEByZXR1cm4gQSBjb3B5IG9mIHRoaXMKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkKKyAgICB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBvdGhlcgorICAgICAgICAgICAgPSAoU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IpIHN1cGVyLmNsb25lKCk7CisgICAgICAgICAgICByZXR1cm4gb3RoZXI7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKCk7CisgICAgICAgIH0KKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1N0cmluZ01hdGNoZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1N0cmluZ01hdGNoZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hZGRjOTU4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvU3RyaW5nTWF0Y2hlci5qYXZhCkBAIC0wLDAgKzEsMjk1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L3RleHQvU3RyaW5nTWF0Y2hlci5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzA2LzI4IDE5OjE4OjA1ICQgCisgKiAkUmV2aXNpb246IDEuMTIgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCisvKioKKyAqIEFuIG9iamVjdCB0aGF0IG1hdGNoZXMgYSBmaXhlZCBpbnB1dCBzdHJpbmcsIGltcGxlbWVudGluZyB0aGUKKyAqIFVuaWNvZGVNYXRjaGVyIEFQSS4gIFRoaXMgb2JqZWN0IGFsc28gaW1wbGVtZW50cyB0aGUKKyAqIFVuaWNvZGVSZXBsYWNlciBBUEksIGFsbG93aW5nIGl0IHRvIGVtaXQgdGhlIG1hdGNoZWQgdGV4dCBhcworICogb3V0cHV0LiAgU2luY2UgdGhlIG1hdGNoIHRleHQgbWF5IGNvbnRhaW4gZmxleGlibGUgbWF0Y2ggZWxlbWVudHMsCisgKiBzdWNoIGFzIFVuaWNvZGVTZXRzLCB0aGUgZW1pdHRlZCB0ZXh0IGlzIG5vdCB0aGUgbWF0Y2ggcGF0dGVybiwgYnV0CisgKiBpbnN0ZWFkIGEgc3Vic3RyaW5nIG9mIHRoZSBhY3R1YWwgbWF0Y2hlZCB0ZXh0LiAgRm9sbG93aW5nCisgKiBjb252ZW50aW9uLCB0aGUgb3V0cHV0IHRleHQgaXMgdGhlIGxlZnRtb3N0IG1hdGNoIHNlZW4gdXAgdG8gdGhpcworICogcG9pbnQuCisgKgorICogQSBTdHJpbmdNYXRjaGVyIG1heSByZXByZXNlbnQgYSBzZWdtZW50LCBpbiB3aGljaCBjYXNlIGl0IGhhcyBhCisgKiBwb3NpdGl2ZSBzZWdtZW50IG51bWJlci4gIFRoaXMgYWZmZWN0cyBob3cgdGhlIG1hdGNoZXIgY29udmVydHMKKyAqIGl0c2VsZiB0byBhIHBhdHRlcm4gYnV0IGRvZXMgbm90IG90aGVyd2lzZSBhZmZlY3QgaXRzIGZ1bmN0aW9uLgorICoKKyAqIEEgU3RyaW5nTWF0Y2hlciB0aGF0IGlzIG5vdCBhIHNlZ21lbnQgc2hvdWxkIG5vdCBiZSB1c2VkIGFzIGEKKyAqIFVuaWNvZGVSZXBsYWNlci4KKyAqLworY2xhc3MgU3RyaW5nTWF0Y2hlciBpbXBsZW1lbnRzIFVuaWNvZGVNYXRjaGVyLCBVbmljb2RlUmVwbGFjZXIgeworCisgICAgLyoqCisgICAgICogVGhlIHRleHQgdG8gYmUgbWF0Y2hlZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBwYXR0ZXJuOworCisgICAgLyoqCisgICAgICogU3RhcnQgb2Zmc2V0LCBpbiB0aGUgbWF0Y2ggdGV4dCwgb2YgdGhlIDxlbT5yaWdodG1vc3Q8L2VtPgorICAgICAqIG1hdGNoLgorICAgICAqLworICAgIHByaXZhdGUgaW50IG1hdGNoU3RhcnQ7CisgICAgCisgICAgLyoqCisgICAgICogTGltaXQgb2Zmc2V0LCBpbiB0aGUgbWF0Y2ggdGV4dCwgb2YgdGhlIDxlbT5yaWdodG1vc3Q8L2VtPgorICAgICAqIG1hdGNoLgorICAgICAqLworICAgIHByaXZhdGUgaW50IG1hdGNoTGltaXQ7CisKKyAgICAvKioKKyAgICAgKiBUaGUgc2VnbWVudCBudW1iZXIsIDEtYmFzZWQsIG9yIDAgaWYgbm90IGEgc2VnbWVudC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBzZWdtZW50TnVtYmVyOworCisgICAgLyoqCisgICAgICogQ29udGV4dCBvYmplY3QgdGhhdCBtYXBzIHN0YW5kLWlucyB0byBtYXRjaGVyIGFuZCByZXBsYWNlcgorICAgICAqIG9iamVjdHMuCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5EYXRhIGRhdGE7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBtYXRjaGVyIHRoYXQgbWF0Y2hlcyB0aGUgZ2l2ZW4gcGF0dGVybiBzdHJpbmcuCisgICAgICogQHBhcmFtIHRoZVN0cmluZyB0aGUgcGF0dGVybiB0byBiZSBtYXRjaGVkLCBwb3NzaWJseSBjb250YWluaW5nCisgICAgICogc3RhbmQtaW5zIHRoYXQgcmVwcmVzZW50IG5lc3RlZCBVbmljb2RlTWF0Y2hlciBvYmplY3RzLgorICAgICAqIEBwYXJhbSBzZWdtZW50TnVtIHRoZSBzZWdtZW50IG51bWJlciBmcm9tIDEuLm4sIG9yIDAgaWYgdGhpcyBpcworICAgICAqIG5vdCBhIHNlZ21lbnQuCisgICAgICogQHBhcmFtIHRoZURhdGEgY29udGV4dCBvYmplY3QgbWFwcGluZyBzdGFuZC1pbnMgdG8KKyAgICAgKiBVbmljb2RlTWF0Y2hlciBvYmplY3RzLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdNYXRjaGVyKFN0cmluZyB0aGVTdHJpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNlZ21lbnROdW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSB0aGVEYXRhKSB7CisgICAgICAgIGRhdGEgPSB0aGVEYXRhOworICAgICAgICBwYXR0ZXJuID0gdGhlU3RyaW5nOworICAgICAgICBtYXRjaFN0YXJ0ID0gbWF0Y2hMaW1pdCA9IC0xOworICAgICAgICBzZWdtZW50TnVtYmVyID0gc2VnbWVudE51bTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBtYXRjaGVyIHRoYXQgbWF0Y2hlcyBhIHN1YnN0cmluZyBvZiB0aGUgZ2l2ZW4KKyAgICAgKiBwYXR0ZXJuIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gdGhlU3RyaW5nIHRoZSBwYXR0ZXJuIHRvIGJlIG1hdGNoZWQsIHBvc3NpYmx5IGNvbnRhaW5pbmcKKyAgICAgKiBzdGFuZC1pbnMgdGhhdCByZXByZXNlbnQgbmVzdGVkIFVuaWNvZGVNYXRjaGVyIG9iamVjdHMuCisgICAgICogQHBhcmFtIHN0YXJ0IGZpcnN0IGNoYXJhY3RlciBvZiB0aGVTdHJpbmcgdG8gYmUgbWF0Y2hlZAorICAgICAqIEBwYXJhbSBsaW1pdCBpbmRleCBhZnRlciB0aGUgbGFzdCBjaGFyYWN0ZXIgb2YgdGhlU3RyaW5nIHRvIGJlCisgICAgICogbWF0Y2hlZC4KKyAgICAgKiBAcGFyYW0gc2VnbWVudE51bSB0aGUgc2VnbWVudCBudW1iZXIgZnJvbSAxLi5uLCBvciAwIGlmIHRoaXMgaXMKKyAgICAgKiBub3QgYSBzZWdtZW50LgorICAgICAqIEBwYXJhbSB0aGVEYXRhIGNvbnRleHQgb2JqZWN0IG1hcHBpbmcgc3RhbmQtaW5zIHRvCisgICAgICogVW5pY29kZU1hdGNoZXIgb2JqZWN0cy4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nTWF0Y2hlcihTdHJpbmcgdGhlU3RyaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNlZ21lbnROdW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSB0aGVEYXRhKSB7CisgICAgICAgIHRoaXModGhlU3RyaW5nLnN1YnN0cmluZyhzdGFydCwgbGltaXQpLCBzZWdtZW50TnVtLCB0aGVEYXRhKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnQgVW5pY29kZU1hdGNoZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IG1hdGNoZXMoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50W10gb2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gaW5jcmVtZW50YWwpIHsKKyAgICAgICAgLy8gTm90ZSAoMSk6IFdlIHByb2Nlc3MgdGV4dCBpbiAxNi1iaXQgY29kZSB1bml0cywgcmF0aGVyIHRoYW4KKyAgICAgICAgLy8gMzItYml0IGNvZGUgcG9pbnRzLiAgVGhpcyB3b3JrcyBiZWNhdXNlIHN0YW5kLWlucyBhcmUKKyAgICAgICAgLy8gYWx3YXlzIGluIHRoZSBCTVAgYW5kIGJlY2F1c2Ugd2UgYXJlIGRvaW5nIGEgbGl0ZXJhbCBtYXRjaAorICAgICAgICAvLyBvcGVyYXRpb24sIHdoaWNoIGNhbiBiZSBkb25lIDE2LWJpdHMgYXQgYSB0aW1lLgorICAgICAgICBpbnQgaTsKKyAgICAgICAgaW50W10gY3Vyc29yID0gbmV3IGludFtdIHsgb2Zmc2V0WzBdIH07CisgICAgICAgIGlmIChsaW1pdCA8IGN1cnNvclswXSkgeworICAgICAgICAgICAgLy8gTWF0Y2ggaW4gdGhlIHJldmVyc2UgZGlyZWN0aW9uCisgICAgICAgICAgICBmb3IgKGk9cGF0dGVybi5sZW5ndGgoKS0xOyBpPj0wOyAtLWkpIHsKKyAgICAgICAgICAgICAgICBjaGFyIGtleUNoYXIgPSBwYXR0ZXJuLmNoYXJBdChpKTsgLy8gT0s7IHNlZSBub3RlICgxKSBhYm92ZQorICAgICAgICAgICAgICAgIFVuaWNvZGVNYXRjaGVyIHN1Ym0gPSBkYXRhLmxvb2t1cE1hdGNoZXIoa2V5Q2hhcik7CisgICAgICAgICAgICAgICAgaWYgKHN1Ym0gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoY3Vyc29yWzBdID4gbGltaXQgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGtleUNoYXIgPT0gdGV4dC5jaGFyQXQoY3Vyc29yWzBdKSkgeyAvLyBPSzsgc2VlIG5vdGUgKDEpIGFib3ZlCisgICAgICAgICAgICAgICAgICAgICAgICAtLWN1cnNvclswXTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBVX01JU01BVENIOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IG0gPQorICAgICAgICAgICAgICAgICAgICAgICAgc3VibS5tYXRjaGVzKHRleHQsIGN1cnNvciwgbGltaXQsIGluY3JlbWVudGFsKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG0gIT0gVV9NQVRDSCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBSZWNvcmQgdGhlIG1hdGNoIHBvc2l0aW9uLCBidXQgYWRqdXN0IGZvciBhIG5vcm1hbAorICAgICAgICAgICAgLy8gZm9yd2FyZCBzdGFydCwgbGltaXQsIGFuZCBvbmx5IGlmIGEgcHJpb3IgbWF0Y2ggZG9lcyBub3QKKyAgICAgICAgICAgIC8vIGV4aXN0IC0tIHdlIHdhbnQgdGhlIHJpZ2h0bW9zdCBtYXRjaC4KKyAgICAgICAgICAgIGlmIChtYXRjaFN0YXJ0IDwgMCkgeworICAgICAgICAgICAgICAgIG1hdGNoU3RhcnQgPSBjdXJzb3JbMF0rMTsKKyAgICAgICAgICAgICAgICBtYXRjaExpbWl0ID0gb2Zmc2V0WzBdKzE7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmb3IgKGk9MDsgaTxwYXR0ZXJuLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoaW5jcmVtZW50YWwgJiYgY3Vyc29yWzBdID09IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFdlJ3ZlIHJlYWNoZWQgdGhlIGNvbnRleHQgbGltaXQgd2l0aG91dCBhIG1pc21hdGNoIGFuZAorICAgICAgICAgICAgICAgICAgICAvLyB3aXRob3V0IGNvbXBsZXRpbmcgb3VyIG1hdGNoLgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gVV9QQVJUSUFMX01BVENIOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjaGFyIGtleUNoYXIgPSBwYXR0ZXJuLmNoYXJBdChpKTsgLy8gT0s7IHNlZSBub3RlICgxKSBhYm92ZQorICAgICAgICAgICAgICAgIFVuaWNvZGVNYXRjaGVyIHN1Ym0gPSBkYXRhLmxvb2t1cE1hdGNoZXIoa2V5Q2hhcik7CisgICAgICAgICAgICAgICAgaWYgKHN1Ym0gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAvLyBEb24ndCBuZWVkIHRoZSBjdXJzb3IgPCBsaW1pdCBjaGVjayBpZgorICAgICAgICAgICAgICAgICAgICAvLyBpbmNyZW1lbnRhbCBpcyB0cnVlIChiZWNhdXNlIGl0J3MgZG9uZSBhYm92ZSk7IGRvIG5lZWQKKyAgICAgICAgICAgICAgICAgICAgLy8gaXQgb3RoZXJ3aXNlLgorICAgICAgICAgICAgICAgICAgICBpZiAoY3Vyc29yWzBdIDwgbGltaXQgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGtleUNoYXIgPT0gdGV4dC5jaGFyQXQoY3Vyc29yWzBdKSkgeyAvLyBPSzsgc2VlIG5vdGUgKDEpIGFib3ZlCisgICAgICAgICAgICAgICAgICAgICAgICArK2N1cnNvclswXTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBVX01JU01BVENIOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IG0gPQorICAgICAgICAgICAgICAgICAgICAgICAgc3VibS5tYXRjaGVzKHRleHQsIGN1cnNvciwgbGltaXQsIGluY3JlbWVudGFsKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG0gIT0gVV9NQVRDSCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBSZWNvcmQgdGhlIG1hdGNoIHBvc2l0aW9uCisgICAgICAgICAgICBtYXRjaFN0YXJ0ID0gb2Zmc2V0WzBdOworICAgICAgICAgICAgbWF0Y2hMaW1pdCA9IGN1cnNvclswXTsKKyAgICAgICAgfQorCisgICAgICAgIG9mZnNldFswXSA9IGN1cnNvclswXTsKKyAgICAgICAgcmV0dXJuIFVfTUFUQ0g7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50IFVuaWNvZGVNYXRjaGVyCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1BhdHRlcm4oYm9vbGVhbiBlc2NhcGVVbnByaW50YWJsZSkgeworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBTdHJpbmdCdWZmZXIgcXVvdGVCdWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGlmIChzZWdtZW50TnVtYmVyID4gMCkgeyAvLyBpLmUuLCBpZiB0aGlzIGlzIGEgc2VnbWVudAorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnKCcpOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxwYXR0ZXJuLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIga2V5Q2hhciA9IHBhdHRlcm4uY2hhckF0KGkpOyAvLyBPSzsgc2VlIG5vdGUgKDEpIGFib3ZlCisgICAgICAgICAgICBVbmljb2RlTWF0Y2hlciBtID0gZGF0YS5sb29rdXBNYXRjaGVyKGtleUNoYXIpOworICAgICAgICAgICAgaWYgKG0gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIFV0aWxpdHkuYXBwZW5kVG9SdWxlKHJlc3VsdCwga2V5Q2hhciwgZmFsc2UsIGVzY2FwZVVucHJpbnRhYmxlLCBxdW90ZUJ1Zik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIFV0aWxpdHkuYXBwZW5kVG9SdWxlKHJlc3VsdCwgbS50b1BhdHRlcm4oZXNjYXBlVW5wcmludGFibGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUsIGVzY2FwZVVucHJpbnRhYmxlLCBxdW90ZUJ1Zik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNlZ21lbnROdW1iZXIgPiAwKSB7IC8vIGkuZS4sIGlmIHRoaXMgaXMgYSBzZWdtZW50CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcpJyk7CisgICAgICAgIH0KKyAgICAgICAgLy8gRmx1c2ggcXVvdGVCdWYgb3V0IHRvIHJlc3VsdAorICAgICAgICBVdGlsaXR5LmFwcGVuZFRvUnVsZShyZXN1bHQsIC0xLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLCBlc2NhcGVVbnByaW50YWJsZSwgcXVvdGVCdWYpOworICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50IFVuaWNvZGVNYXRjaGVyCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gbWF0Y2hlc0luZGV4VmFsdWUoaW50IHYpIHsKKyAgICAgICAgaWYgKHBhdHRlcm4ubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaW50IGMgPSBVVEYxNi5jaGFyQXQocGF0dGVybiwgMCk7CisgICAgICAgIFVuaWNvZGVNYXRjaGVyIG0gPSBkYXRhLmxvb2t1cE1hdGNoZXIoYyk7CisgICAgICAgIHJldHVybiAobSA9PSBudWxsKSA/ICgoYyAmIDB4RkYpID09IHYpIDogbS5tYXRjaGVzSW5kZXhWYWx1ZSh2KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRhdGlvbiBvZiBVbmljb2RlTWF0Y2hlciBBUEkuICBVbmlvbiB0aGUgc2V0IG9mIGFsbAorICAgICAqIGNoYXJhY3RlcnMgdGhhdCBtYXkgYmUgbWF0Y2hlZCBieSB0aGlzIG9iamVjdCBpbnRvIHRoZSBnaXZlbgorICAgICAqIHNldC4KKyAgICAgKiBAcGFyYW0gdG9VbmlvblRvIHRoZSBzZXQgaW50byB3aGljaCB0byB1bmlvbiB0aGUgc291cmNlIGNoYXJhY3RlcnMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhZGRNYXRjaFNldFRvKFVuaWNvZGVTZXQgdG9VbmlvblRvKSB7CisgICAgICAgIGludCBjaDsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHBhdHRlcm4ubGVuZ3RoKCk7IGkrPVVURjE2LmdldENoYXJDb3VudChjaCkpIHsKKyAgICAgICAgICAgIGNoID0gVVRGMTYuY2hhckF0KHBhdHRlcm4sIGkpOworICAgICAgICAgICAgVW5pY29kZU1hdGNoZXIgbWF0Y2hlciA9IGRhdGEubG9va3VwTWF0Y2hlcihjaCk7CisgICAgICAgICAgICBpZiAobWF0Y2hlciA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdG9VbmlvblRvLmFkZChjaCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG1hdGNoZXIuYWRkTWF0Y2hTZXRUbyh0b1VuaW9uVG8pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVW5pY29kZVJlcGxhY2VyIEFQSQorICAgICAqLworICAgIHB1YmxpYyBpbnQgcmVwbGFjZShSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50W10gY3Vyc29yKSB7CisKKyAgICAgICAgaW50IG91dExlbiA9IDA7CisKKyAgICAgICAgLy8gQ29weSBzZWdtZW50IHdpdGggb3V0LW9mLWJhbmQgZGF0YQorICAgICAgICBpbnQgZGVzdCA9IGxpbWl0OworICAgICAgICAvLyBJZiB0aGVyZSB3YXMgbm8gbWF0Y2gsIHRoYXQgbWVhbnMgdGhhdCBhIHF1YW50aWZpZXIKKyAgICAgICAgLy8gbWF0Y2hlZCB6ZXJvLWxlbmd0aC4gIEUuZy4sIHggKGEpKiB5IG1hdGNoZWQgInh5Ii4KKyAgICAgICAgaWYgKG1hdGNoU3RhcnQgPj0gMCkgeworICAgICAgICAgICAgaWYgKG1hdGNoU3RhcnQgIT0gbWF0Y2hMaW1pdCkgeworICAgICAgICAgICAgICAgIHRleHQuY29weShtYXRjaFN0YXJ0LCBtYXRjaExpbWl0LCBkZXN0KTsKKyAgICAgICAgICAgICAgICBvdXRMZW4gPSBtYXRjaExpbWl0IC0gbWF0Y2hTdGFydDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHRleHQucmVwbGFjZShzdGFydCwgbGltaXQsICIiKTsgLy8gZGVsZXRlIG9yaWdpbmFsIHRleHQKKworICAgICAgICByZXR1cm4gb3V0TGVuOworICAgIH0KKworICAgIC8qKgorICAgICAqIFVuaWNvZGVSZXBsYWNlciBBUEkKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvUmVwbGFjZXJQYXR0ZXJuKGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUpIHsKKyAgICAgICAgLy8gYXNzZXJ0KHNlZ21lbnROdW1iZXIgPiAwKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJ1bGUgPSBuZXcgU3RyaW5nQnVmZmVyKCIkIik7CisgICAgICAgIFV0aWxpdHkuYXBwZW5kTnVtYmVyKHJ1bGUsIHNlZ21lbnROdW1iZXIsIDEwLCAxKTsKKyAgICAgICAgcmV0dXJuIHJ1bGUudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgYW55IG1hdGNoIGRhdGEuICBUaGlzIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBwZXJmb3JtaW5nIGEKKyAgICAgKiBzZXQgb2YgbWF0Y2hlcyB3aXRoIHRoaXMgc2VnbWVudC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZXNldE1hdGNoKCkgeworICAgICAgICBtYXRjaFN0YXJ0ID0gbWF0Y2hMaW1pdCA9IC0xOworICAgIH0KKworICAgIC8qKgorICAgICAqIFVuaW9uIHRoZSBzZXQgb2YgYWxsIGNoYXJhY3RlcnMgdGhhdCBtYXkgb3V0cHV0IGJ5IHRoaXMgb2JqZWN0CisgICAgICogaW50byB0aGUgZ2l2ZW4gc2V0LgorICAgICAqIEBwYXJhbSB0b1VuaW9uVG8gdGhlIHNldCBpbnRvIHdoaWNoIHRvIHVuaW9uIHRoZSBvdXRwdXQgY2hhcmFjdGVycworICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFkZFJlcGxhY2VtZW50U2V0VG8oVW5pY29kZVNldCB0b1VuaW9uVG8pIHsKKyAgICAgICAgLy8gVGhlIG91dHB1dCBvZiB0aGlzIHJlcGxhY2VyIHZhcmllczsgaXQgaXMgdGhlIHNvdXJjZSB0ZXh0IGJldHdlZW4KKyAgICAgICAgLy8gbWF0Y2hTdGFydCBhbmQgbWF0Y2hMaW1pdC4gIFNpbmNlIHRoaXMgdmFyaWVzIGRlcGVuZGluZyBvbiB0aGUKKyAgICAgICAgLy8gaW5wdXQgdGV4dCwgd2UgY2FuJ3QgY29tcHV0ZSBpdCBoZXJlLiAgV2UgY2FuIGVpdGhlciBkbyBub3RoaW5nCisgICAgICAgIC8vIG9yIHdlIGNhbiBhZGQgQUxMIGNoYXJhY3RlcnMgdG8gdGhlIHNldC4gIEl0J3MgcHJvYmFibHkgbW9yZSB1c2VmdWwKKyAgICAgICAgLy8gdG8gZG8gbm90aGluZy4KKyAgICB9Cit9CisKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9TdHJpbmdSZXBsYWNlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvU3RyaW5nUmVwbGFjZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kNTU3MTU0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvU3RyaW5nUmVwbGFjZXIuamF2YQpAQCAtMCwwICsxLDI5NiBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKGMpIDIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24KKyogICBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDAxLzE0LzIwMDIgIGFsaXUgICAgICAgIENyZWF0aW9uLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKworLyoqCisgKiBBIHJlcGxhY2VyIHRoYXQgcHJvZHVjZXMgc3RhdGljIHRleHQgYXMgaXRzIG91dHB1dC4gIFRoZSB0ZXh0IG1heQorICogY29udGFpbiB0cmFuc2xpdGVyYXRvciBzdGFuZC1pbiBjaGFyYWN0ZXJzIHRoYXQgcmVwcmVzZW50IG5lc3RlZAorICogVW5pY29kZVJlcGxhY2VyIG9iamVjdHMsIG1ha2luZyBpdCBwb3NzaWJsZSB0byBlbmNvZGUgYSB0cmVlIG9mCisgKiByZXBsYWNlcnMgaW4gYSBTdHJpbmdSZXBsYWNlci4gIEEgU3RyaW5nUmVwbGFjZXIgdGhhdCBjb250YWlucyBzdWNoCisgKiBzdGFuZC1pbnMgaXMgY2FsbGVkIGEgPGVtPmNvbXBsZXg8L2VtPiBTdHJpbmdSZXBsYWNlci4gIEEgY29tcGxleAorICogU3RyaW5nUmVwbGFjZXIgaGFzIGEgc2xvd2VyIHByb2Nlc3NpbmcgbG9vcCB0aGFuIGEgbm9uLWNvbXBsZXggb25lLgorICogQGF1dGhvciBBbGFuIExpdQorICovCitjbGFzcyBTdHJpbmdSZXBsYWNlciBpbXBsZW1lbnRzIFVuaWNvZGVSZXBsYWNlciB7CisKKyAgICAvKioKKyAgICAgKiBPdXRwdXQgdGV4dCwgcG9zc2libHkgY29udGFpbmluZyBzdGFuZC1pbiBjaGFyYWN0ZXJzIHRoYXQKKyAgICAgKiByZXByZXNlbnQgbmVzdGVkIFVuaWNvZGVSZXBsYWNlcnMuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgb3V0cHV0OworCisgICAgLyoqCisgICAgICogQ3Vyc29yIHBvc2l0aW9uLiAgVmFsdWUgaXMgaWdub3JlZCBpZiBoYXNDdXJzb3IgaXMgZmFsc2UuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgY3Vyc29yUG9zOworCisgICAgLyoqCisgICAgICogVHJ1ZSBpZiB0aGlzIG9iamVjdCBvdXRwdXRzIGEgY3Vyc29yIHBvc2l0aW9uLgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBoYXNDdXJzb3I7CisKKyAgICAvKioKKyAgICAgKiBBIGNvbXBsZXggb2JqZWN0IGNvbnRhaW5zIG5lc3RlZCByZXBsYWNlcnMgYW5kIHJlcXVpcmVzIG1vcmUKKyAgICAgKiBjb21wbGV4IHByb2Nlc3NpbmcuICBTdHJpbmdSZXBsYWNlcnMgYXJlIGluaXRpYWxseSBhc3N1bWVkIHRvCisgICAgICogYmUgY29tcGxleC4gIElmIG5vIG5lc3RlZCByZXBsYWNlcnMgYXJlIHNlZW4gZHVyaW5nIHByb2Nlc3NpbmcsCisgICAgICogdGhlbiBpc0NvbXBsZXggaXMgc2V0IHRvIGZhbHNlLCBhbmQgZnV0dXJlIHJlcGxhY2VtZW50cyBhcmUKKyAgICAgKiBzaG9ydCBjaXJjdWl0ZWQgZm9yIGJldHRlciBwZXJmb3JtYW5jZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gaXNDb21wbGV4OworCisgICAgLyoqCisgICAgICogT2JqZWN0IHRoYXQgdHJhbnNsYXRlcyBzdGFuZC1pbiBjaGFyYWN0ZXJzIGluICdvdXRwdXQnIHRvCisgICAgICogVW5pY29kZVJlcGxhY2VyIG9iamVjdHMuCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5EYXRhIGRhdGE7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBTdHJpbmdSZXBsYWNlciB0aGF0IHNldHMgdGhlIGVtaXRzIHRoZSBnaXZlbiBvdXRwdXQKKyAgICAgKiB0ZXh0IGFuZCBzZXRzIHRoZSBjdXJzb3IgdG8gdGhlIGdpdmVuIHBvc2l0aW9uLgorICAgICAqIEBwYXJhbSB0aGVPdXRwdXQgdGV4dCB0aGF0IHdpbGwgcmVwbGFjZSBpbnB1dCB0ZXh0IHdoZW4gdGhlCisgICAgICogcmVwbGFjZSgpIG1ldGhvZCBpcyBjYWxsZWQuICBNYXkgY29udGFpbiBzdGFuZC1pbiBjaGFyYWN0ZXJzCisgICAgICogdGhhdCByZXByZXNlbnQgbmVzdGVkIHJlcGxhY2Vycy4KKyAgICAgKiBAcGFyYW0gdGhlQ3Vyc29yUG9zIGN1cnNvciBwb3NpdGlvbiB0aGF0IHdpbGwgYmUgcmV0dXJuZWQgYnkKKyAgICAgKiB0aGUgcmVwbGFjZSgpIG1ldGhvZAorICAgICAqIEBwYXJhbSB0aGVEYXRhIHRyYW5zbGl0ZXJhdG9yIGNvbnRleHQgb2JqZWN0IHRoYXQgdHJhbnNsYXRlcworICAgICAqIHN0YW5kLWluIGNoYXJhY3RlcnMgdG8gVW5pY29kZVJlcGxhY2VyIG9iamVjdHMKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nUmVwbGFjZXIoU3RyaW5nIHRoZU91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRoZUN1cnNvclBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSB0aGVEYXRhKSB7CisgICAgICAgIG91dHB1dCA9IHRoZU91dHB1dDsKKyAgICAgICAgY3Vyc29yUG9zID0gdGhlQ3Vyc29yUG9zOworICAgICAgICBoYXNDdXJzb3IgPSB0cnVlOworICAgICAgICBkYXRhID0gdGhlRGF0YTsKKyAgICAgICAgaXNDb21wbGV4ID0gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBTdHJpbmdSZXBsYWNlciB0aGF0IHNldHMgdGhlIGVtaXRzIHRoZSBnaXZlbiBvdXRwdXQKKyAgICAgKiB0ZXh0IGFuZCBkb2VzIG5vdCBtb2RpZnkgdGhlIGN1cnNvci4KKyAgICAgKiBAcGFyYW0gdGhlT3V0cHV0IHRleHQgdGhhdCB3aWxsIHJlcGxhY2UgaW5wdXQgdGV4dCB3aGVuIHRoZQorICAgICAqIHJlcGxhY2UoKSBtZXRob2QgaXMgY2FsbGVkLiAgTWF5IGNvbnRhaW4gc3RhbmQtaW4gY2hhcmFjdGVycworICAgICAqIHRoYXQgcmVwcmVzZW50IG5lc3RlZCByZXBsYWNlcnMuCisgICAgICogQHBhcmFtIHRoZURhdGEgdHJhbnNsaXRlcmF0b3IgY29udGV4dCBvYmplY3QgdGhhdCB0cmFuc2xhdGVzCisgICAgICogc3RhbmQtaW4gY2hhcmFjdGVycyB0byBVbmljb2RlUmVwbGFjZXIgb2JqZWN0cworICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdSZXBsYWNlcihTdHJpbmcgdGhlT3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5EYXRhIHRoZURhdGEpIHsKKyAgICAgICAgb3V0cHV0ID0gdGhlT3V0cHV0OworICAgICAgICBjdXJzb3JQb3MgPSAwOworICAgICAgICBoYXNDdXJzb3IgPSBmYWxzZTsKKyAgICAgICAgZGF0YSA9IHRoZURhdGE7CisgICAgICAgIGlzQ29tcGxleCA9IHRydWU7CisgICAgfQorCisvLz0gICAgcHVibGljIHN0YXRpYyBVbmljb2RlUmVwbGFjZXIgdmFsdWVPZihTdHJpbmcgb3V0cHV0LAorLy89ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGN1cnNvclBvcywKKy8vPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLkRhdGEgZGF0YSkgeworLy89ICAgICAgICBpZiAob3V0cHV0Lmxlbmd0aCgpID09IDEpIHsKKy8vPSAgICAgICAgICAgIGNoYXIgYyA9IG91dHB1dC5jaGFyQXQoMCk7CisvLz0gICAgICAgICAgICBVbmljb2RlUmVwbGFjZXIgciA9IGRhdGEubG9va3VwUmVwbGFjZXIoYyk7CisvLz0gICAgICAgICAgICBpZiAociAhPSBudWxsKSB7CisvLz0gICAgICAgICAgICAgICAgcmV0dXJuIHI7CisvLz0gICAgICAgICAgICB9CisvLz0gICAgICAgIH0KKy8vPSAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmdSZXBsYWNlcihvdXRwdXQsIGN1cnNvclBvcywgZGF0YSk7CisvLz0gICAgfQorCisgICAgLyoqCisgICAgICogVW5pY29kZVJlcGxhY2VyIEFQSQorICAgICAqLworICAgIHB1YmxpYyBpbnQgcmVwbGFjZShSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50W10gY3Vyc29yKSB7CisgICAgICAgIGludCBvdXRMZW47CisgICAgICAgIGludCBuZXdTdGFydCA9IDA7CisKKyAgICAgICAgLy8gTk9URTogSXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIF9hbHdheXNfIHJ1biB0aGUgY29tcGxleAorICAgICAgICAvLyBwcm9jZXNzaW5nIGNvZGU7IGp1c3Qgc2xvd2VyLiAgSWYgbm90LCB0aGVuIHRoZXJlIGlzIGEgYnVnCisgICAgICAgIC8vIGluIHRoZSBjb21wbGV4IHByb2Nlc3NpbmcgY29kZS4KKworICAgICAgICAvLyBTaW1wbGUgKG5vIG5lc3RlZCByZXBsYWNlcnMpIFByb2Nlc3NpbmcgQ29kZSA6CisgICAgICAgIGlmICghaXNDb21wbGV4KSB7CisgICAgICAgICAgICB0ZXh0LnJlcGxhY2Uoc3RhcnQsIGxpbWl0LCBvdXRwdXQpOworICAgICAgICAgICAgb3V0TGVuID0gb3V0cHV0Lmxlbmd0aCgpOworCisgICAgICAgICAgICAvLyBTZXR1cCBkZWZhdWx0IGN1cnNvciBwb3NpdGlvbiAoZm9yIGN1cnNvclBvcyB3aXRoaW4gb3V0cHV0KQorICAgICAgICAgICAgbmV3U3RhcnQgPSBjdXJzb3JQb3M7CisgICAgICAgIH0KKworICAgICAgICAvLyBDb21wbGV4IChuZXN0ZWQgcmVwbGFjZXJzKSBQcm9jZXNzaW5nIENvZGUgOgorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8qIFdoZW4gdGhlcmUgYXJlIHNlZ21lbnRzIHRvIGJlIGNvcGllZCwgdXNlIHRoZSBSZXBsYWNlYWJsZS5jb3B5KCkKKyAgICAgICAgICAgICAqIEFQSSBpbiBvcmRlciB0byByZXRhaW4gb3V0LW9mLWJhbmQgZGF0YS4gIENvcHkgZXZlcnl0aGluZyB0byB0aGUKKyAgICAgICAgICAgICAqIGVuZCBvZiB0aGUgc3RyaW5nLCB0aGVuIGNvcHkgdGhlbSBiYWNrIG92ZXIgdGhlIGtleS4gIFRoaXMgcHJlc2VydmVzCisgICAgICAgICAgICAgKiB0aGUgaW50ZWdyaXR5IG9mIGluZGljZXMgaW50byB0aGUga2V5IGFuZCBzdXJyb3VuZGluZyBjb250ZXh0IHdoaWxlCisgICAgICAgICAgICAgKiBnZW5lcmF0aW5nIHRoZSBvdXRwdXQgdGV4dC4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgaW50IGRlc3RTdGFydCA9IHRleHQubGVuZ3RoKCk7IC8vIGNvcHkgbmV3IHRleHQgdG8gaGVyZQorICAgICAgICAgICAgaW50IGRlc3RMaW1pdCA9IGRlc3RTdGFydDsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBpbnQgb091dHB1dDsgLy8gb2Zmc2V0IGludG8gJ291dHB1dCcKKyAgICAgICAgICAgIGlzQ29tcGxleCA9IGZhbHNlOworICAgICAgICAgICAgZm9yIChvT3V0cHV0PTA7IG9PdXRwdXQ8b3V0cHV0Lmxlbmd0aCgpOyApIHsKKyAgICAgICAgICAgICAgICBpZiAob091dHB1dCA9PSBjdXJzb3JQb3MpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gUmVjb3JkIHRoZSBwb3NpdGlvbiBvZiB0aGUgY3Vyc29yCisgICAgICAgICAgICAgICAgICAgIG5ld1N0YXJ0ID0gZGVzdExpbWl0IC0gZGVzdFN0YXJ0OyAvLyByZWxhdGl2ZSB0byBzdGFydAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpbnQgYyA9IFVURjE2LmNoYXJBdChvdXRwdXQsIG9PdXRwdXQpOworICAgICAgICAgICAgICAgIFVuaWNvZGVSZXBsYWNlciByID0gZGF0YS5sb29rdXBSZXBsYWNlcihjKTsKKyAgICAgICAgICAgICAgICBpZiAociA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIEFjY3VtdWxhdGUgc3RyYWlnaHQgKG5vbi1zZWdtZW50KSB0ZXh0LgorICAgICAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQoYnVmLCBjKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpc0NvbXBsZXggPSB0cnVlOworCisgICAgICAgICAgICAgICAgICAgIC8vIEluc2VydCBhbnkgYWNjdW11bGF0ZWQgc3RyYWlnaHQgdGV4dC4KKyAgICAgICAgICAgICAgICAgICAgaWYgKGJ1Zi5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRleHQucmVwbGFjZShkZXN0TGltaXQsIGRlc3RMaW1pdCwgYnVmLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgZGVzdExpbWl0ICs9IGJ1Zi5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAvLyBEZWxlZ2F0ZSBvdXRwdXQgZ2VuZXJhdGlvbiB0byByZXBsYWNlciBvYmplY3QKKyAgICAgICAgICAgICAgICAgICAgaW50IGxlbiA9IHIucmVwbGFjZSh0ZXh0LCBkZXN0TGltaXQsIGRlc3RMaW1pdCwgY3Vyc29yKTsKKyAgICAgICAgICAgICAgICAgICAgZGVzdExpbWl0ICs9IGxlbjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgb091dHB1dCArPSBVVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBJbnNlcnQgYW55IGFjY3VtdWxhdGVkIHN0cmFpZ2h0IHRleHQuCisgICAgICAgICAgICBpZiAoYnVmLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgIHRleHQucmVwbGFjZShkZXN0TGltaXQsIGRlc3RMaW1pdCwgYnVmLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIGRlc3RMaW1pdCArPSBidWYubGVuZ3RoKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAob091dHB1dCA9PSBjdXJzb3JQb3MpIHsKKyAgICAgICAgICAgICAgICAvLyBSZWNvcmQgdGhlIHBvc2l0aW9uIG9mIHRoZSBjdXJzb3IKKyAgICAgICAgICAgICAgICBuZXdTdGFydCA9IGRlc3RMaW1pdCAtIGRlc3RTdGFydDsgLy8gcmVsYXRpdmUgdG8gc3RhcnQKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgb3V0TGVuID0gZGVzdExpbWl0IC0gZGVzdFN0YXJ0OworCisgICAgICAgICAgICAvLyBDb3B5IG5ldyB0ZXh0IHRvIHN0YXJ0LCBhbmQgZGVsZXRlIGl0CisgICAgICAgICAgICB0ZXh0LmNvcHkoZGVzdFN0YXJ0LCBkZXN0TGltaXQsIHN0YXJ0KTsKKyAgICAgICAgICAgIHRleHQucmVwbGFjZShkZXN0U3RhcnQgKyBvdXRMZW4sIGRlc3RMaW1pdCArIG91dExlbiwgIiIpOworCisgICAgICAgICAgICAvLyBEZWxldGUgdGhlIG9sZCB0ZXh0ICh0aGUga2V5KQorICAgICAgICAgICAgdGV4dC5yZXBsYWNlKHN0YXJ0ICsgb3V0TGVuLCBsaW1pdCArIG91dExlbiwgIiIpOworICAgICAgICB9ICAgICAgICAKKworICAgICAgICBpZiAoaGFzQ3Vyc29yKSB7CisgICAgICAgICAgICAvLyBBZGp1c3QgdGhlIGN1cnNvciBmb3IgcG9zaXRpb25zIG91dHNpZGUgdGhlIGtleS4gIFRoZXNlCisgICAgICAgICAgICAvLyByZWZlciB0byBjb2RlIHBvaW50cyByYXRoZXIgdGhhbiBjb2RlIHVuaXRzLiAgSWYgY3Vyc29yUG9zCisgICAgICAgICAgICAvLyBpcyB3aXRoaW4gdGhlIG91dHB1dCBzdHJpbmcsIHRoZW4gdXNlIG5ld1N0YXJ0LCB3aGljaCBoYXMKKyAgICAgICAgICAgIC8vIGFscmVhZHkgYmVlbiBzZXQgYWJvdmUuCisgICAgICAgICAgICBpZiAoY3Vyc29yUG9zIDwgMCkgeworICAgICAgICAgICAgICAgIG5ld1N0YXJ0ID0gc3RhcnQ7CisgICAgICAgICAgICAgICAgaW50IG4gPSBjdXJzb3JQb3M7CisgICAgICAgICAgICAgICAgLy8gT3V0c2lkZSB0aGUgb3V0cHV0IHN0cmluZywgY3Vyc29yUG9zIGNvdW50cyBjb2RlIHBvaW50cworICAgICAgICAgICAgICAgIHdoaWxlIChuIDwgMCAmJiBuZXdTdGFydCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgbmV3U3RhcnQgLT0gVVRGMTYuZ2V0Q2hhckNvdW50KHRleHQuY2hhcjMyQXQobmV3U3RhcnQtMSkpOworICAgICAgICAgICAgICAgICAgICArK247CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG5ld1N0YXJ0ICs9IG47CisgICAgICAgICAgICB9IGVsc2UgaWYgKGN1cnNvclBvcyA+IG91dHB1dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIG5ld1N0YXJ0ID0gc3RhcnQgKyBvdXRMZW47CisgICAgICAgICAgICAgICAgaW50IG4gPSBjdXJzb3JQb3MgLSBvdXRwdXQubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgLy8gT3V0c2lkZSB0aGUgb3V0cHV0IHN0cmluZywgY3Vyc29yUG9zIGNvdW50cyBjb2RlIHBvaW50cworICAgICAgICAgICAgICAgIHdoaWxlIChuID4gMCAmJiBuZXdTdGFydCA8IHRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbmV3U3RhcnQgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KHRleHQuY2hhcjMyQXQobmV3U3RhcnQpKTsKKyAgICAgICAgICAgICAgICAgICAgLS1uOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBuZXdTdGFydCArPSBuOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBDdXJzb3IgaXMgd2l0aGluIG91dHB1dCBzdHJpbmcuICBJdCBoYXMgYmVlbiBzZXQgdXAgYWJvdmUKKyAgICAgICAgICAgICAgICAvLyB0byBiZSByZWxhdGl2ZSB0byBzdGFydC4KKyAgICAgICAgICAgICAgICBuZXdTdGFydCArPSBzdGFydDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgY3Vyc29yWzBdID0gbmV3U3RhcnQ7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gb3V0TGVuOworICAgIH0KKworICAgIC8qKgorICAgICAqIFVuaWNvZGVSZXBsYWNlciBBUEkKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvUmVwbGFjZXJQYXR0ZXJuKGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJ1bGUgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBxdW90ZUJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICBpbnQgY3Vyc29yID0gY3Vyc29yUG9zOworCisgICAgICAgIC8vIEhhbmRsZSBhIGN1cnNvciBwcmVjZWRpbmcgdGhlIG91dHB1dAorICAgICAgICBpZiAoaGFzQ3Vyc29yICYmIGN1cnNvciA8IDApIHsKKyAgICAgICAgICAgIHdoaWxlIChjdXJzb3IrKyA8IDApIHsKKyAgICAgICAgICAgICAgICBVdGlsaXR5LmFwcGVuZFRvUnVsZShydWxlLCAnQCcsIHRydWUsIGVzY2FwZVVucHJpbnRhYmxlLCBxdW90ZUJ1Zik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBGYWxsIHRocm91Z2ggYW5kIGFwcGVuZCAnfCcgYmVsb3cKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxvdXRwdXQubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgaWYgKGhhc0N1cnNvciAmJiBpID09IGN1cnNvcikgeworICAgICAgICAgICAgICAgIFV0aWxpdHkuYXBwZW5kVG9SdWxlKHJ1bGUsICd8JywgdHJ1ZSwgZXNjYXBlVW5wcmludGFibGUsIHF1b3RlQnVmKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNoYXIgYyA9IG91dHB1dC5jaGFyQXQoaSk7IC8vIE9rIHRvIHVzZSAxNi1iaXRzIGhlcmUKKworICAgICAgICAgICAgVW5pY29kZVJlcGxhY2VyIHIgPSBkYXRhLmxvb2t1cFJlcGxhY2VyKGMpOworICAgICAgICAgICAgaWYgKHIgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIFV0aWxpdHkuYXBwZW5kVG9SdWxlKHJ1bGUsIGMsIGZhbHNlLCBlc2NhcGVVbnByaW50YWJsZSwgcXVvdGVCdWYpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigiICIpOworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoci50b1JlcGxhY2VyUGF0dGVybihlc2NhcGVVbnByaW50YWJsZSkpOworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJyAnKTsKKyAgICAgICAgICAgICAgICBVdGlsaXR5LmFwcGVuZFRvUnVsZShydWxlLCBidWYudG9TdHJpbmcoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLCBlc2NhcGVVbnByaW50YWJsZSwgcXVvdGVCdWYpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gSGFuZGxlIGEgY3Vyc29yIGFmdGVyIHRoZSBvdXRwdXQuICBVc2UgPiByYXRoZXIgdGhhbiA+PSBiZWNhdXNlCisgICAgICAgIC8vIGlmIGN1cnNvciA9PSBvdXRwdXQubGVuZ3RoKCkgaXQgaXMgYXQgdGhlIGVuZCBvZiB0aGUgb3V0cHV0LAorICAgICAgICAvLyB3aGljaCBpcyB0aGUgZGVmYXVsdCBwb3NpdGlvbiwgc28gd2UgbmVlZCBub3QgZW1pdCBpdC4KKyAgICAgICAgaWYgKGhhc0N1cnNvciAmJiBjdXJzb3IgPiBvdXRwdXQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGN1cnNvciAtPSBvdXRwdXQubGVuZ3RoKCk7CisgICAgICAgICAgICB3aGlsZSAoY3Vyc29yLS0gPiAwKSB7CisgICAgICAgICAgICAgICAgVXRpbGl0eS5hcHBlbmRUb1J1bGUocnVsZSwgJ0AnLCB0cnVlLCBlc2NhcGVVbnByaW50YWJsZSwgcXVvdGVCdWYpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgVXRpbGl0eS5hcHBlbmRUb1J1bGUocnVsZSwgJ3wnLCB0cnVlLCBlc2NhcGVVbnByaW50YWJsZSwgcXVvdGVCdWYpOworICAgICAgICB9CisgICAgICAgIC8vIEZsdXNoIHF1b3RlQnVmIG91dCB0byByZXN1bHQKKyAgICAgICAgVXRpbGl0eS5hcHBlbmRUb1J1bGUocnVsZSwgLTEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUsIGVzY2FwZVVucHJpbnRhYmxlLCBxdW90ZUJ1Zik7CisKKyAgICAgICAgcmV0dXJuIHJ1bGUudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVbmlvbiB0aGUgc2V0IG9mIGFsbCBjaGFyYWN0ZXJzIHRoYXQgbWF5IG91dHB1dCBieSB0aGlzIG9iamVjdAorICAgICAqIGludG8gdGhlIGdpdmVuIHNldC4KKyAgICAgKiBAcGFyYW0gdG9VbmlvblRvIHRoZSBzZXQgaW50byB3aGljaCB0byB1bmlvbiB0aGUgb3V0cHV0IGNoYXJhY3RlcnMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhZGRSZXBsYWNlbWVudFNldFRvKFVuaWNvZGVTZXQgdG9VbmlvblRvKSB7CisgICAgICAgIGludCBjaDsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPG91dHB1dC5sZW5ndGgoKTsgaSs9VVRGMTYuZ2V0Q2hhckNvdW50KGNoKSkgeworICAgICAgICAgICAgY2ggPSBVVEYxNi5jaGFyQXQob3V0cHV0LCBpKTsKKyAgICAgICAgICAgIFVuaWNvZGVSZXBsYWNlciByID0gZGF0YS5sb29rdXBSZXBsYWNlcihjaCk7CisgICAgICAgICAgICBpZiAociA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdG9VbmlvblRvLmFkZChjaCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHIuYWRkUmVwbGFjZW1lbnRTZXRUbyh0b1VuaW9uVG8pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQorCisvL2VvZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvU3RyaW5nU2VhcmNoLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9TdHJpbmdTZWFyY2guamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kYzJhODY2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvU3RyaW5nU2VhcmNoLmphdmEKQEAgLTAsMCArMSwzMTMxIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvdGV4dC9TdHJpbmdTZWFyY2guamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wOC8wOCAyMzozNzo1MiAkIAorICogJFJldmlzaW9uOiAxLjEzICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTm9ybWFsaXplckltcGw7CisKKy8qKgorICogPHA+CisgKiA8Y29kZT5TdHJpbmdTZWFyY2g8L2NvZGU+IGlzIHRoZSBjb25jcmV0ZSBzdWJjbGFzcyBvZiAKKyAqIDxjb2RlPlNlYXJjaEl0ZXJhdG9yPC9jb2RlPiB0aGF0IHByb3ZpZGVzIGxhbmd1YWdlLXNlbnNpdGl2ZSB0ZXh0IHNlYXJjaGluZyAKKyAqIGJhc2VkIG9uIHRoZSBjb21wYXJpc29uIHJ1bGVzIGRlZmluZWQgaW4gYSB7QGxpbmsgUnVsZUJhc2VkQ29sbGF0b3J9IG9iamVjdC4KKyAqIDwvcD4KKyAqIDxwPgorICogPGNvZGU+U3RyaW5nU2VhcmNoPC9jb2RlPiB1c2VzIGEgdmVyc2lvbiBvZiB0aGUgZmFzdCBCb3llci1Nb29yZSBzZWFyY2gKKyAqIGFsZ29yaXRobSB0aGF0IGhhcyBiZWVuIGFkYXB0ZWQgdG8gd29yayB3aXRoIHRoZSBsYXJnZSBjaGFyYWN0ZXIgc2V0IG9mCisgKiBVbmljb2RlLiBSZWZlciB0byAKKyAqIDxhIGhyZWY9aHR0cDovL29zcy5zb2Z0d2FyZS5pYm0uY29tL2ljdS9kb2NzL3BhcGVycy9lZmZpY2llbnRfdGV4dF9zZWFyY2hpbmdfaW5famF2YS5odG1sPgorICogIkVmZmljaWVudCBUZXh0IFNlYXJjaGluZyBpbiBKYXZhIjwvYT4sIHB1Ymxpc2hlZCBpbiB0aGUgCisgKiA8aT5KYXZhIFJlcG9ydDwvaT4gb24gRmVicnVhcnksIDE5OTksIGZvciBmdXJ0aGVyIGluZm9ybWF0aW9uIG9uIHRoZSAKKyAqIGFsZ29yaXRobS4KKyAqIDwvcD4KKyAqIDxwPgorICogVXNlcnMgYXJlIGFsc28gc3Ryb25nbHkgZW5jb3VyYWdlZCB0byByZWFkIHRoZSBzZWN0aW9uIG9uIAorICogPGEgaHJlZj1odHRwOi8vb3NzLnNvZnR3YXJlLmlibS5jb20vaWN1L3VzZXJndWlkZS9zZWFyY2hTdHJpbmcuaHRtbD4KKyAqIFN0cmluZyBTZWFyY2g8L2E+IGFuZCAKKyAqIDxhIGhyZWY9aHR0cDovL29zcy5zb2Z0d2FyZS5pYm0uY29tL2ljdS91c2VyZ3VpZGUvQ29sbGF0ZV9JbnRyby5odG1sPgorICogQ29sbGF0aW9uPC9hPiBpbiB0aGUgdXNlciBndWlkZSBiZWZvcmUgYXR0ZW1wdGluZyB0byB1c2UgdGhpcyBjbGFzcy4KKyAqIDwvcD4KKyAqIDxwPgorICogU3RyaW5nIHNlYXJjaGluZyBnZXRzIGFsaXR0bGUgY29tcGxpY2F0ZWQgd2hlbiBhY2NlbnRzIGFyZSBlbmNvdW50ZXJlZCBhdAorICogbWF0Y2ggYm91bmRhcmllcy4gSWYgYSBtYXRjaCBpcyBmb3VuZCBhbmQgaXQgaGFzIHByZWNlZGluZyBvciB0cmFpbGluZyAKKyAqIGFjY2VudHMgbm90IHBhcnQgb2YgdGhlIG1hdGNoLCB0aGUgcmVzdWx0IHJldHVybmVkIHdpbGwgaW5jbHVkZSB0aGUgCisgKiBwcmVjZWRpbmcgYWNjZW50cyB1cCB0byB0aGUgZmlyc3QgYmFzZSBjaGFyYWN0ZXIsIGlmIHRoZSBwYXR0ZXJuIHNlYXJjaGVkIAorICogZm9yIHN0YXJ0cyBhbiBhY2NlbnQuIExpa2V3aXNlLCAKKyAqIGlmIHRoZSBwYXR0ZXJuIGVuZHMgd2l0aCBhbiBhY2NlbnQsIGFsbCB0cmFpbGluZyBhY2NlbnRzIHVwIHRvIHRoZSBmaXJzdAorICogYmFzZSBjaGFyYWN0ZXIgd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzdWx0LgorICogPC9wPgorICogPHA+CisgKiBGb3IgZXhhbXBsZSwgaWYgYSBtYXRjaCBpcyBmb3VuZCBpbiB0YXJnZXQgdGV4dCAiYSYjOTI7dTAzMjUmIzkyO3UwMzAwIiBmb3IgCisgKiB0aGUgcGF0dGVybgorICogImEmIzkyO3UwMzI1IiwgdGhlIHJlc3VsdCByZXR1cm5lZCBieSBTdHJpbmdTZWFyY2ggd2lsbCBiZSB0aGUgaW5kZXggMCBhbmQKKyAqIGxlbmd0aCAzICZsdDswLCAzJmd0Oy4gSWYgYSBtYXRjaCBpcyBmb3VuZCBpbiB0aGUgdGFyZ2V0IAorICogImEmIzkyO3UwMzI1JiM5Mjt1MDMwMCIgCisgKiBmb3IgdGhlIHBhdHRlcm4gIiYjOTI7dTAzMDAiLCB0aGVuIHRoZSByZXN1bHQgd2lsbCBiZSBpbmRleCAxIGFuZCBsZW5ndGggMiAKKyAqIDwxLCAyPi4KKyAqIDwvcD4KKyAqIDxwPgorICogSW4gdGhlIGNhc2Ugd2hlcmUgdGhlIGRlY29tcG9zaXRpb24gbW9kZSBpcyBvbiBmb3IgdGhlIFJ1bGVCYXNlZENvbGxhdG9yLAorICogYWxsIG1hdGNoZXMgdGhhdCBzdGFydHMgb3IgZW5kcyB3aXRoIGFuIGFjY2VudCB3aWxsIGhhdmUgaXRzIHJlc3VsdHMgaW5jbHVkZSAKKyAqIHByZWNlZGluZyBvciBmb2xsb3dpbmcgYWNjZW50cyByZXNwZWN0aXZlbHkuIEZvciBleGFtcGxlLCBpZiBwYXR0ZXJuICJhIiBpcworICogbG9va2VkIGZvciBpbiB0aGUgdGFyZ2V0IHRleHQgIiZhYWN1dGU7JiM5Mjt1MDMyNSIsIHRoZSByZXN1bHQgd2lsbCBiZQorICogaW5kZXggMCBhbmQgbGVuZ3RoIDIgJmx0OzAsIDImZ3Q7LgorICogPC9wPgorICogPHA+CisgKiBUaGUgU3RyaW5nU2VhcmNoIGNsYXNzIHByb3ZpZGVzIHR3byBvcHRpb25zIHRvIGhhbmRsZSBhY2NlbnQgbWF0Y2hpbmcgCisgKiBkZXNjcmliZWQgYmVsb3c6CisgKiA8L3A+CisgKiA8cD4KKyAqIExldCBTJyBiZSB0aGUgc3ViLXN0cmluZyBvZiBhIHRleHQgc3RyaW5nIFMgYmV0d2VlbiB0aGUgb2Zmc2V0cyBzdGFydCBhbmQgCisgKiBlbmQgJmx0O3N0YXJ0LCBlbmQmZ3Q7LgorICogPGJyPgorICogQSBwYXR0ZXJuIHN0cmluZyBQIG1hdGNoZXMgYSB0ZXh0IHN0cmluZyBTIGF0IHRoZSBvZmZzZXRzICZsdDtzdGFydCwgCisgKiBsZW5ndGgmZ3Q7IAorICogPGJyPgorICogaWYKKyAqIDxwcmU+IAorICogb3B0aW9uIDEuIFAgbWF0Y2hlcyBzb21lIGNhbm9uaWNhbCBlcXVpdmFsZW50IHN0cmluZyBvZiBTJy4gU3VwcG9zZSB0aGUgCisgKiAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgdXNlZCBmb3Igc2VhcmNoaW5nIGhhcyBhIGNvbGxhdGlvbiBzdHJlbmd0aCBvZiAKKyAqICAgICAgICAgICBURVJUSUFSWSwgYWxsIGFjY2VudHMgYXJlIG5vbi1pZ25vcmFibGUuIElmIHRoZSBwYXR0ZXJuIAorICogICAgICAgICAgICJhJiM5Mjt1MDMwMCIgaXMgc2VhcmNoZWQgaW4gdGhlIHRhcmdldCB0ZXh0IAorICogICAgICAgICAgICJhJiM5Mjt1MDMyNSYjOTI7dTAzMDAiLCAKKyAqICAgICAgICAgICBhIG1hdGNoIHdpbGwgYmUgZm91bmQsIHNpbmNlIHRoZSB0YXJnZXQgdGV4dCBpcyBjYW5vbmljYWxseSAKKyAqICAgICAgICAgICBlcXVpdmFsZW50IHRvICJhJiM5Mjt1MDMwMCYjOTI7dTAzMjUiCisgKiBvcHRpb24gMi4gUCBtYXRjaGVzIFMnIGFuZCBpZiBQIHN0YXJ0cyBvciBlbmRzIHdpdGggYSBjb21iaW5pbmcgbWFyaywgCisgKiAgICAgICAgICAgdGhlcmUgZXhpc3RzIG5vIG5vbi1pZ25vcmFibGUgY29tYmluaW5nIG1hcmsgYmVmb3JlIG9yIGFmdGVyIFOSIAorICogICAgICAgICAgIGluIFMgcmVzcGVjdGl2ZWx5LiBGb2xsb3dpbmcgdGhlIGV4YW1wbGUgYWJvdmUsIHRoZSBwYXR0ZXJuIAorICogICAgICAgICAgICJhJiM5Mjt1MDMwMCIgd2lsbCBub3QgZmluZCBhIG1hdGNoIGluICJhJiM5Mjt1MDMyNSYjOTI7dTAzMDAiLCAKKyAqICAgICAgICAgICBzaW5jZQorICogICAgICAgICAgIHRoZXJlIGV4aXN0cyBhIG5vbi1pZ25vcmFibGUgYWNjZW50ICcmIzkyO3UwMzI1JyBpbiB0aGUgbWlkZGxlIG9mIAorICogICAgICAgICAgICdhJyBhbmQgJyYjOTI7dTAzMDAnLiBFdmVuIHdpdGggYSB0YXJnZXQgdGV4dCBvZiAKKyAqICAgICAgICAgICAiYSYjOTI7dTAzMDAmIzkyO3UwMzI1IiBhIG1hdGNoIHdpbGwgbm90IGJlIGZvdW5kIGJlY2F1c2Ugb2YgdGhlIAorICogICAgICAgICAgIG5vbi1pZ25vcmFibGUgdHJhaWxpbmcgYWNjZW50ICYjOTI7dTAzMjUuCisgKiA8L3ByZT4KKyAqIE9wdGlvbiAyLiB3aWxsIGJlIHRoZSBkZWZhdWx0IG1vZGUgZm9yIGRlYWxpbmcgd2l0aCBib3VuZGFyeSBhY2NlbnRzIHVubGVzcworICogc3BlY2lmaWVkIHZpYSB0aGUgQVBJIHNldENhbm9uaWNhbChib29sZWFuKS4KKyAqIE9uZSByZXN0cmljdGlvbiBpcyB0byBiZSBub3RlZCBmb3Igb3B0aW9uIDEuIEN1cnJlbnRseSB0aGVyZSBhcmUgbm8gCisgKiBjb21wb3NpdGUgY2hhcmFjdGVycyB0aGF0IGNvbnNpc3RzIG9mIGEgY2hhcmFjdGVyIHdpdGggY29tYmluaW5nIGNsYXNzID4gMCAKKyAqIGJlZm9yZSBhIGNoYXJhY3RlciB3aXRoIGNvbWJpbmluZyBjbGFzcyA9PSAwLiBIb3dldmVyLCBpZiBzdWNoIGEgY2hhcmFjdGVyIAorICogZXhpc3RzIGluIHRoZSBmdXR1cmUsIHRoZSBTdHJpbmdTZWFyY2ggbWF5IG5vdCB3b3JrIGNvcnJlY3RseSB3aXRoIG9wdGlvbiAxCisgKiB3aGVuIHN1Y2ggY2hhcmFjdGVycyBhcmUgZW5jb3VudGVyZWQuCisgKiA8L3A+CisgKiA8cD4KKyAqIDx0dD5TZWFyY2hJdGVyYXRvcjwvdHQ+IHByb3ZpZGVzIEFQSXMgdG8gc3BlY2lmeSB0aGUgc3RhcnRpbmcgcG9zaXRpb24gCisgKiB3aXRoaW4gdGhlIHRleHQgc3RyaW5nIHRvIGJlIHNlYXJjaGVkLCBlLmcuIDx0dD5zZXRJbmRleDwvdHQ+LAorICogPHR0PnByZWNlZGluZzwvdHQ+IGFuZCA8dHQ+Zm9sbG93aW5nPC90dD4uIFNpbmNlIHRoZSBzdGFydGluZyBwb3NpdGlvbiB3aWxsIAorICogYmUgc2V0IGFzIGl0IGlzIHNwZWNpZmllZCwgcGxlYXNlIHRha2Ugbm90ZSB0aGF0IHRoZXJlIGFyZSBzb21lIGRhbmdlcm91cyAKKyAqIHBvc2l0aW9ucyB3aGljaCB0aGUgc2VhcmNoIG1heSByZW5kZXIgaW5jb3JyZWN0IHJlc3VsdHM6CisgKiA8dWw+CisgKiA8bGk+IFRoZSBtaWRzdCBvZiBhIHN1YnN0cmluZyB0aGF0IHJlcXVpcmVzIGRlY29tcG9zaXRpb24uCisgKiA8bGk+IElmIHRoZSBmb2xsb3dpbmcgbWF0Y2ggaXMgdG8gYmUgZm91bmQsIHRoZSBwb3NpdGlvbiBzaG91bGQgbm90IGJlIHRoZQorICogICAgICBzZWNvbmQgY2hhcmFjdGVyIHdoaWNoIHJlcXVpcmVzIHRvIGJlIHN3YXBwZWQgd2l0aCB0aGUgcHJlY2VkaW5nIAorICogICAgICBjaGFyYWN0ZXIuIFZpY2UgdmVyc2EsIGlmIHRoZSBwcmVjZWRpbmcgbWF0Y2ggaXMgdG8gYmUgZm91bmQsIAorICogICAgICBwb3NpdGlvbiB0byBzZWFyY2ggZnJvbSBzaG91bGQgbm90IGJlIHRoZSBmaXJzdCBjaGFyYWN0ZXIgd2hpY2ggCisgKiAgICAgIHJlcXVpcmVzIHRvIGJlIHN3YXBwZWQgd2l0aCB0aGUgbmV4dCBjaGFyYWN0ZXIuIEUuZyBjZXJ0YWluIFRoYWkgYW5kCisgKiAgICAgIExhbyBjaGFyYWN0ZXJzIHJlcXVpcmUgc3dhcHBpbmcuCisgKiA8bGk+IElmIGEgZm9sbG93aW5nIHBhdHRlcm4gbWF0Y2ggaXMgdG8gYmUgZm91bmQsIGFueSBwb3NpdGlvbiB3aXRoaW4gYSAKKyAqICAgICAgY29udHJhY3Rpbmcgc2VxdWVuY2UgZXhjZXB0IHRoZSBmaXJzdCB3aWxsIGZhaWwuIFZpY2UgdmVyc2EgaWYgYSAKKyAqICAgICAgcHJlY2VkaW5nIHBhdHRlcm4gbWF0Y2ggaXMgdG8gYmUgZm91bmQsIGEgaW52YWxpZCBzdGFydGluZyBwb2ludCAKKyAqICAgICAgd291bGQgYmUgYW55IGNoYXJhY3RlciB3aXRoaW4gYSBjb250cmFjdGluZyBzZXF1ZW5jZSBleGNlcHQgdGhlIGxhc3QuCisgKiA8L3VsPgorICogPC9wPgorICogPHA+CisgKiBUaG91Z2ggY29sbGF0b3IgYXR0cmlidXRlcyB3aWxsIGJlIHRha2VuIGludG8gY29uc2lkZXJhdGlvbiB3aGlsZSAKKyAqIHBlcmZvcm1pbmcgbWF0Y2hlcywgdGhlcmUgYXJlIG5vIEFQSXMgcHJvdmlkZWQgaW4gU3RyaW5nU2VhcmNoIGZvciBzZXR0aW5nIAorICogYW5kIGdldHRpbmcgdGhlIGF0dHJpYnV0ZXMuIFRoZXNlIGF0dHJpYnV0ZXMgY2FuIGJlIHNldCBieSBnZXR0aW5nIHRoZSAKKyAqIGNvbGxhdG9yIGZyb20gPHR0PmdldENvbGxhdG9yPC90dD4gYW5kIHVzaW5nIHRoZSBBUElzIGluIAorICogPHR0PmNvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3I8L3R0Pi4gVG8gdXBkYXRlIFN0cmluZ1NlYXJjaCB0byB0aGUgbmV3IAorICogY29sbGF0b3IgYXR0cmlidXRlcywgPHR0PnJlc2V0KCk8L3R0PiBvciAKKyAqIDx0dD5zZXRDb2xsYXRvcihSdWxlQmFzZWRDb2xsYXRvcik8L3R0PiBoYXMgdG8gYmUgY2FsbGVkLgorICogPC9wPgorICogPHA+CisgKiBDb25zdWx0IHRoZSAKKyAqIDxhIGhyZWY9aHR0cDovL29zcy5zb2Z0d2FyZS5pYm0uY29tL2ljdS91c2VyZ3VpZGUvc2VhcmNoU3RyaW5nLmh0bWw+CisgKiBTdHJpbmcgU2VhcmNoPC9hPiB1c2VyIGd1aWRlIGFuZCB0aGUgPGNvZGU+U2VhcmNoSXRlcmF0b3I8L2NvZGU+IAorICogZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgZXhhbXBsZXMgb2YgdXNlLgorICogPC9wPgorICogQHNlZSBTZWFyY2hJdGVyYXRvcgorICogQHNlZSBSdWxlQmFzZWRDb2xsYXRvcgorICogQGF1dGhvciBMYXVyYSBXZXJuZXIsIHN5bndlZQorICogQHNpbmNlIDEuMAorICovCisvLyBpbnRlcm5hbCBub3RlczogYWxsIG1ldGhvZHMgZG8gbm90IGd1YXJhbnRlZSB0aGUgY29ycmVjdCBzdGF0dXMgb2YgdGhlIAorLy8gY2hhcmFjdGVyaXRlcmF0b3IuIHRoZSBjYWxsZXIgaGFzIHRvIG1haW50YWluIHRoZSBvcmlnaW5hbCBpbmRleCBwb3NpdGlvbgorLy8gaWYgbmVjZXNzYXJ5LiBtZXRob2RzIGNvdWxkIGNoYW5nZSB0aGUgaW5kZXggcG9zaXRpb24gYXMgaXQgZGVlbXMgZml0CitwdWJsaWMgZmluYWwgY2xhc3MgU3RyaW5nU2VhcmNoIGV4dGVuZHMgU2VhcmNoSXRlcmF0b3IKK3sKKwkKKwkvLyBwdWJsaWMgY29uc3RydWN0b3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisJCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZXMgdGhlIGl0ZXJhdG9yIHRvIHVzZSB0aGUgbGFuZ3VhZ2Utc3BlY2lmaWMgcnVsZXMgZGVmaW5lZCBpbiAKKyAgICAgKiB0aGUgYXJndW1lbnQgY29sbGF0b3IgdG8gc2VhcmNoIGZvciBhcmd1bWVudCBwYXR0ZXJuIGluIHRoZSBhcmd1bWVudCAKKyAgICAgKiB0YXJnZXQgdGV4dC4gVGhlIGFyZ3VtZW50IGJyZWFraXRlciBpcyB1c2VkIHRvIGRlZmluZSBsb2dpY2FsIG1hdGNoZXMuCisgICAgICogU2VlIHN1cGVyIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlscyBvbiB0aGUgdXNlIG9mIHRoZSB0YXJnZXQgCisgICAgICogdGV4dCBhbmQgQnJlYWtJdGVyYXRvci4KKyAgICAgKiBAcGFyYW0gcGF0dGVybiB0ZXh0IHRvIGxvb2sgZm9yLgorICAgICAqIEBwYXJhbSB0YXJnZXQgdGFyZ2V0IHRleHQgdG8gc2VhcmNoIGZvciBwYXR0ZXJuLiAKKyAgICAgKiBAcGFyYW0gY29sbGF0b3IgUnVsZUJhc2VkQ29sbGF0b3IgdGhhdCBkZWZpbmVzIHRoZSBsYW5ndWFnZSBydWxlcworICAgICAqIEBwYXJhbSBicmVha2VyIEEge0BsaW5rIEJyZWFrSXRlcmF0b3J9IHRoYXQgaXMgdXNlZCB0byBkZXRlcm1pbmUgdGhlIAorICAgICAqICAgICAgICAgICAgICAgIGJvdW5kYXJpZXMgb2YgYSBsb2dpY2FsIG1hdGNoLiBUaGlzIGFyZ3VtZW50IGNhbiBiZSBudWxsLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRocm93biB3aGVuIGFyZ3VtZW50IHRhcmdldCBpcyBudWxsLAorICAgICAqICAgICAgICAgICAgb3Igb2YgbGVuZ3RoIDAKKyAgICAgKiBAc2VlIEJyZWFrSXRlcmF0b3IKKyAgICAgKiBAc2VlIFJ1bGVCYXNlZENvbGxhdG9yCisgICAgICogQHNlZSBTZWFyY2hJdGVyYXRvcgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdTZWFyY2goU3RyaW5nIHBhdHRlcm4sIENoYXJhY3Rlckl0ZXJhdG9yIHRhcmdldCwKKyAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yLCBCcmVha0l0ZXJhdG9yIGJyZWFraXRlcikgCisgICAgeworICAgICAgICBzdXBlcih0YXJnZXQsIGJyZWFraXRlcik7CisgICAgICAgIG1fdGV4dEJlZ2luT2Zmc2V0XyA9IHRhcmdldFRleHQuZ2V0QmVnaW5JbmRleCgpOworICAgICAgICBtX3RleHRMaW1pdE9mZnNldF8gPSB0YXJnZXRUZXh0LmdldEVuZEluZGV4KCk7CisgICAgICAgIG1fY29sbGF0b3JfID0gY29sbGF0b3I7CisgICAgICAgIG1fY29sRUl0ZXJfID0gbV9jb2xsYXRvcl8uZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHRhcmdldCk7CisgICAgICAgIG1fdXRpbENvbEVJdGVyXyA9IGNvbGxhdG9yLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcigiIik7CisgICAgICAgIG1fY2VNYXNrXyA9IGdldE1hc2sobV9jb2xsYXRvcl8uZ2V0U3RyZW5ndGgoKSk7CisgICAgICAgIG1faXNDYW5vbmljYWxNYXRjaF8gPSBmYWxzZTsKKyAgICAgICAgbV9wYXR0ZXJuXyA9IG5ldyBQYXR0ZXJuKHBhdHRlcm4pOworICAgICAgICBtX21hdGNoZWRJbmRleF8gPSBET05FOworICAgICAgICAKKyAgICAgICAgaW5pdGlhbGl6ZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEluaXRpYWxpemVzIHRoZSBpdGVyYXRvciB0byB1c2UgdGhlIGxhbmd1YWdlLXNwZWNpZmljIHJ1bGVzIGRlZmluZWQgaW4gCisgICAgICogdGhlIGFyZ3VtZW50IGNvbGxhdG9yIHRvIHNlYXJjaCBmb3IgYXJndW1lbnQgcGF0dGVybiBpbiB0aGUgYXJndW1lbnQgCisgICAgICogdGFyZ2V0IHRleHQuIE5vIEJyZWFrSXRlcmF0b3JzIGFyZSBzZXQgdG8gdGVzdCBmb3IgbG9naWNhbCBtYXRjaGVzLgorICAgICAqIEBwYXJhbSBwYXR0ZXJuIHRleHQgdG8gbG9vayBmb3IuCisgICAgICogQHBhcmFtIHRhcmdldCB0YXJnZXQgdGV4dCB0byBzZWFyY2ggZm9yIHBhdHRlcm4uIAorICAgICAqIEBwYXJhbSBjb2xsYXRvciBSdWxlQmFzZWRDb2xsYXRvciB0aGF0IGRlZmluZXMgdGhlIGxhbmd1YWdlIHJ1bGVzCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIHdoZW4gYXJndW1lbnQgdGFyZ2V0IGlzIG51bGwsCisgICAgICogICAgICAgICAgICBvciBvZiBsZW5ndGggMAorICAgICAqIEBzZWUgUnVsZUJhc2VkQ29sbGF0b3IKKyAgICAgKiBAc2VlIFNlYXJjaEl0ZXJhdG9yCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1NlYXJjaChTdHJpbmcgcGF0dGVybiwgQ2hhcmFjdGVySXRlcmF0b3IgdGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IpIAorICAgIHsKKyAgICAgICAgdGhpcyhwYXR0ZXJuLCB0YXJnZXQsIGNvbGxhdG9yLCBCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEluaXRpYWxpemVzIHRoZSBpdGVyYXRvciB0byB1c2UgdGhlIGxhbmd1YWdlLXNwZWNpZmljIHJ1bGVzIGFuZCAKKyAgICAgKiBicmVhayBpdGVyYXRvciBydWxlcyBkZWZpbmVkIGluIHRoZSBhcmd1bWVudCBsb2NhbGUgdG8gc2VhcmNoIGZvciAKKyAgICAgKiBhcmd1bWVudCBwYXR0ZXJuIGluIHRoZSBhcmd1bWVudCB0YXJnZXQgdGV4dC4gCisgICAgICogU2VlIHN1cGVyIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlscyBvbiB0aGUgdXNlIG9mIHRoZSB0YXJnZXQgCisgICAgICogdGV4dCBhbmQgQnJlYWtJdGVyYXRvci4KKyAgICAgKiBAcGFyYW0gcGF0dGVybiB0ZXh0IHRvIGxvb2sgZm9yLgorICAgICAqIEBwYXJhbSB0YXJnZXQgdGFyZ2V0IHRleHQgdG8gc2VhcmNoIGZvciBwYXR0ZXJuLiAKKyAgICAgKiBAcGFyYW0gbG9jYWxlIGxvY2FsZSB0byB1c2UgZm9yIGxhbmd1YWdlIGFuZCBicmVhayBpdGVyYXRvciBydWxlcworICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRocm93biB3aGVuIGFyZ3VtZW50IHRhcmdldCBpcyBudWxsLAorICAgICAqICAgICAgICAgICAgb3Igb2YgbGVuZ3RoIDAuIENsYXNzQ2FzdEV4Y2VwdGlvbiB0aHJvd24gaWYgdGhlIGNvbGxhdG9yIGZvciAKKyAgICAgKiAgICAgICAgICAgIHRoZSBzcGVjaWZpZWQgbG9jYWxlIGlzIG5vdCBhIFJ1bGVCYXNlZENvbGxhdG9yLgorICAgICAqIEBzZWUgQnJlYWtJdGVyYXRvcgorICAgICAqIEBzZWUgUnVsZUJhc2VkQ29sbGF0b3IKKyAgICAgKiBAc2VlIFNlYXJjaEl0ZXJhdG9yCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1NlYXJjaChTdHJpbmcgcGF0dGVybiwgQ2hhcmFjdGVySXRlcmF0b3IgdGFyZ2V0LCBMb2NhbGUgbG9jYWxlKQorICAgIHsKKyAgICAgICAgdGhpcyhwYXR0ZXJuLCB0YXJnZXQsIChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShsb2NhbGUpLAorICAgICAgICAgICAgIEJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UobG9jYWxlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZXMgdGhlIGl0ZXJhdG9yIHRvIHVzZSB0aGUgbGFuZ3VhZ2Utc3BlY2lmaWMgcnVsZXMgYW5kIAorICAgICAqIGJyZWFrIGl0ZXJhdG9yIHJ1bGVzIGRlZmluZWQgaW4gdGhlIGRlZmF1bHQgbG9jYWxlIHRvIHNlYXJjaCBmb3IgCisgICAgICogYXJndW1lbnQgcGF0dGVybiBpbiB0aGUgYXJndW1lbnQgdGFyZ2V0IHRleHQuIAorICAgICAqIFNlZSBzdXBlciBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGRldGFpbHMgb24gdGhlIHVzZSBvZiB0aGUgdGFyZ2V0IAorICAgICAqIHRleHQgYW5kIEJyZWFrSXRlcmF0b3IuCisgICAgICogQHBhcmFtIHBhdHRlcm4gdGV4dCB0byBsb29rIGZvci4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHRhcmdldCB0ZXh0IHRvIHNlYXJjaCBmb3IgcGF0dGVybi4gCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIHdoZW4gYXJndW1lbnQgdGFyZ2V0IGlzIG51bGwsCisgICAgICogICAgICAgICAgICBvciBvZiBsZW5ndGggMC4gQ2xhc3NDYXN0RXhjZXB0aW9uIHRocm93biBpZiB0aGUgY29sbGF0b3IgZm9yIAorICAgICAqICAgICAgICAgICAgdGhlIGRlZmF1bHQgbG9jYWxlIGlzIG5vdCBhIFJ1bGVCYXNlZENvbGxhdG9yLgorICAgICAqIEBzZWUgQnJlYWtJdGVyYXRvcgorICAgICAqIEBzZWUgUnVsZUJhc2VkQ29sbGF0b3IKKyAgICAgKiBAc2VlIFNlYXJjaEl0ZXJhdG9yCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1NlYXJjaChTdHJpbmcgcGF0dGVybiwgU3RyaW5nIHRhcmdldCkgCisgICAgeworICAgICAgICB0aGlzKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0YXJnZXQpLAorICAgICAgICAgICAgIChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZSgpLAorICAgICAgICAgICAgIEJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoKSk7CisgICAgfQorCisgICAgLy8gcHVibGljIGdldHRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBzdHJlbmd0aCBwcm9wZXJ0eSBvZiB0aGUgUnVsZUJhc2VkQ29sbGF0b3IgdXNlZCBpbiBzZWFyY2hpbmcuIAorICAgICAqIFNlZSB0aGUgUnVsZUJhc2VkQ29sbGF0b3IgY2xhc3MgZG9jdW1lbnRhdGlvbiBmb3IgYSBkZXNjcmlwdGlvbiBvZiB0aGUKKyAgICAgKiBzdHJlbmd0aCBwcm9wZXJ0eS4KKyAgICAgKiBAcmV0dXJuIHRoZSBzdHJlbmd0aCBwcm9wZXJ0eSBvZiB0aGUgUnVsZUJhc2VkQ29sbGF0b3IgdXNlZCBpbiBzZWFyY2hpbmcKKyAgICAgKiBAc2VlIFJ1bGVCYXNlZENvbGxhdG9yCisgICAgICogQHNlZSAjc2V0U3RyZW5ndGgKKyAgICAgKiBAc2VlICNnZXRDb2xsYXRvcgorICAgICAqIEBkZXByZWNhdGVkIHNpbmNlIHJlbGVhc2UgMi4yLCB1c2VyIHdobyB3b3VsZCBsaWtlIHRvIGFjY2VzcyB0aGUgCisgICAgICogICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3Igc3RyZW5ndGgsIHNob3VsZCByZXRyaWV2ZSB0aGUgCisgICAgICogICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgdmlhIHRoZSBBUEkgZ2V0Q29sbGF0b3IoKSwgYW5kIHVzZSB0aGUgCisgICAgICogICAgICAgICAgICAgQ29sbGF0b3IgQVBJcyB0byByZXRyaWV2ZSB0aGUgc3RyZW5ndGguCisgICAgICovCisgICAgcHVibGljIGludCBnZXRTdHJlbmd0aCgpIHsKKyAgICAgICAgcmV0dXJuIG1fY29sbGF0b3JfLmdldFN0cmVuZ3RoKCk7CisgICAgfQorICAgIAorICAgIC8qKgorCSAqIDxwPgorICAgICAqIEdldHMgdGhlIFJ1bGVCYXNlZENvbGxhdG9yIHVzZWQgZm9yIHRoZSBsYW5ndWFnZSBydWxlcy4KKyAgICAgKiA8L3A+CisJICogPHA+CisgICAgICogU2luY2UgU3RyaW5nU2VhcmNoIGRlcGVuZHMgb24gdGhlIHJldHVybmVkIFJ1bGVCYXNlZENvbGxhdG9yLCBhbnkgCisJICogY2hhbmdlcyB0byB0aGUgUnVsZUJhc2VkQ29sbGF0b3IgcmVzdWx0IHNob3VsZCBmb2xsb3cgd2l0aCBhIGNhbGwgdG8gCisJICogZWl0aGVyIFN0cmluZ1NlYXJjaC5yZXNldCgpIG9yIAorCSAqIFN0cmluZ1NlYXJjaC5zZXRDb2xsYXRvcihSdWxlQmFzZWRDb2xsYXRvcikgdG8gZW5zdXJlIHRoZSBjb3JyZWN0IAorCSAqIHNlYXJjaCBiZWhhdmlvdXIuCisgICAgICogPC9wPgorCSAqIEByZXR1cm4gUnVsZUJhc2VkQ29sbGF0b3IgdXNlZCBieSB0aGlzIFN0cmluZ1NlYXJjaAorICAgICAqIEBzZWUgUnVsZUJhc2VkQ29sbGF0b3IKKyAgICAgKiBAc2VlICNzZXRDb2xsYXRvcgorCSAqLworICAgIHB1YmxpYyBSdWxlQmFzZWRDb2xsYXRvciBnZXRDb2xsYXRvcigpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fY29sbGF0b3JfOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBwYXR0ZXJuIGZvciB3aGljaCBTdHJpbmdTZWFyY2ggaXMgc2VhcmNoaW5nIGZvci4KKyAgICAgKiBAcmV0dXJuIHRoZSBwYXR0ZXJuIHNlYXJjaGVkIGZvcgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0UGF0dGVybigpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fcGF0dGVybl8udGFyZ2V0VGV4dDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBpbmRleCBpbiB0aGUgdGFyZ2V0IHRleHQgd2hlcmUgdGhlIGl0ZXJhdG9yIGlzIGN1cnJlbnRseSAKKyAgICAgKiBwb3NpdGlvbmVkIGF0LiAKKyAgICAgKiBJZiB0aGUgaXRlcmF0aW9uIGhhcyBnb25lIHBhc3QgdGhlIGVuZCBvZiB0aGUgdGFyZ2V0IHRleHQgb3IgcGFzdCAKKyAgICAgKiB0aGUgYmVnaW5uaW5nIGZvciBhIGJhY2t3YXJkcyBzZWFyY2gsIHtAbGluayAjRE9ORX0gaXMgcmV0dXJuZWQuCisgICAgICogQHJldHVybiBpbmRleCBpbiB0aGUgdGFyZ2V0IHRleHQgd2hlcmUgdGhlIGl0ZXJhdG9yIGlzIGN1cnJlbnRseSAKKyAgICAgKiAgICAgICAgIHBvc2l0aW9uZWQgYXQKKyAgICAgKiBAZHJhZnQgcmVsZWFzZSAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEluZGV4KCkgCisgICAgeworICAgICAgICBpbnQgcmVzdWx0ID0gbV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCk7CisgICAgICAgIGlmIChpc091dE9mQm91bmRzKG1fdGV4dEJlZ2luT2Zmc2V0XywgbV90ZXh0TGltaXRPZmZzZXRfLCByZXN1bHQpKSB7CisgICAgICAgICAgICByZXR1cm4gRE9ORTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgY2Fub25pY2FsIG1hdGNoZXMgKG9wdGlvbiAxLCBhcyBkZXNjcmliZWQgaW4gdGhlIAorICAgICAqIGNsYXNzIGRvY3VtZW50YXRpb24pIGlzIHNldC4KKyAgICAgKiBTZWUgc2V0Q2Fub25pY2FsKGJvb2xlYW4pIGZvciBtb3JlIGluZm9ybWF0aW9uLgorICAgICAqIEBzZWUgI3NldENhbm9uaWNhbAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBjYW5vbmljYWwgbWF0Y2hlcyBpcyBzZXQsIGZhbHNlIG90aGVyd2lzZQorICAgICAqIEBkcmFmdCByZWxlYXNlIDIuMgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzQ2Fub25pY2FsKCkgCisgICAgeworICAgICAgICByZXR1cm4gbV9pc0Nhbm9uaWNhbE1hdGNoXzsKKyAgICB9CisgICAgCisgICAgLy8gcHVibGljIHNldHRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBTZXRzIHRoZSBzdHJlbmd0aCBwcm9wZXJ0eSBvZiB0aGUgUnVsZUJhc2VkQ29sbGF0b3IgdXNlZCBmb3Igc2VhcmNoaW5nLgorICAgICAqIFNlZSB0aGUgQ29sbGF0b3IgZG9jdW1lbnRhdGlvbiBmb3IgYSBkZXNjcmlwdGlvbiBvZiB0aGUgc3RyZW5ndGhzLgorICAgICAqIDwvcD4KKyAgICAgKiBAZGVwcmVjYXRlZCBzaW5jZSByZWxlYXNlIDIuMiwgdXNlciB3aG8gd291bGQgbGlrZSB0byBtb2RpZnkgdGhlIAorICAgICAqIAkJICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLCBzaG91bGQgcmV0cmlldmUgdGhlIFJ1bGVCYXNlZENvbGxhdG9yIAorICAgICAqICAgICAgICAgICAgIHZpYSB0aGUgQVBJIGdldENvbGxhdG9yKCksIGFuZCB1c2UgdGhlIENvbGxhdG9yIEFQSXMgdG8gCisgICAgICogCQkgICAgICAgbW9kaWZ5IHRoZSBzdHJlbmd0aC4gQWZ0ZXIgd2hpY2ggU3RyaW5nU2VhcmNoLnJlc2V0KCkgCisgICAgICogICAgICAgICAgICAgb3IgU3RyaW5nU2VhcmNoLnNldENvbGxhdG9yKFJ1bGVCYXNlZENvbGxhdG9yKSBzaG91bGQgYmUKKyAgICAgKiAgICAgICAgICAgICBjYWxsZWQgdG8gdXBkYXRlIFN0cmluZ1NlYXJjaC4KKyAgICAgKiBAc2VlIENvbGxhdG9yCisgICAgICogQHNlZSBDb2xsYXRvciNQUklNQVJZCisgICAgICogQHNlZSBDb2xsYXRvciNTRUNPTkRBUlkKKyAgICAgKiBAc2VlIENvbGxhdG9yI1RFUlRJQVJZCisgICAgICogQHNlZSBDb2xsYXRvciNRVUFURVJOQVJZCisgICAgICogQHNlZSBDb2xsYXRvciNJREVOVElDQUwKKyAgICAgKiBAc2VlICNzZXRDb2xsYXRvcgorICAgICAqIEBzZWUgI2dldENvbGxhdG9yCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0U3RyZW5ndGgoaW50IG5ld1N0cmVuZ3RoKSAKKyAgICB7CisgICAgICAgIC8vIER1ZSB0byBhIGJ1ZyAoPykgaW4gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLCB3ZSBtdXN0IHNldCB0aGUKKyAgICAgICAgLy8gY29sbGF0b3IncyBzdHJlbmd0aCBhcyB3ZWxsLCBzaW5jZSB0aGUgaXRlcmF0b3IgaXMgZ29pbmcgdG8KKyAgICAgICAgLy8gbWFzayBvdXQgdGhlIHBvcnRpb25zIG9mIHRoZSBjb2xsYXRpb24gZWxlbWVudCB0aGF0IGFyZSBub3QKKyAgICAgICAgLy8gcmVsZXZhbnQgZm9yIHRoZSBjb2xsYXRvcidzIGN1cnJlbnQgc3RyZW5ndGggc2V0dGluZworICAgICAgICAvLyBOb3RlIHRoYXQgdGhpcyBtYWtlcyBpdCBpbXBvc3NpYmxlIHRvIHNoYXJlIGEgQ29sbGF0b3IgYW1vbmcKKyAgICAgICAgLy8gbXVsdGlwbGUgU3RyaW5nU2VhcmNoIG9iamVjdHMgaWYgeW91IGFkanVzdCBTdHJlbmd0aCBzZXR0aW5ncy4KKyAgICAgICAgbV9jb2xsYXRvcl8uc2V0U3RyZW5ndGgobmV3U3RyZW5ndGgpOworICAgICAgICBpbml0aWFsaXplKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIFNldHMgdGhlIFJ1bGVCYXNlZENvbGxhdG9yIHRvIGJlIHVzZWQgZm9yIGxhbmd1YWdlLXNwZWNpZmljIHNlYXJjaGluZy4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogVGhpcyBtZXRob2QgY2F1c2VzIGludGVybmFsIGRhdGEgc3VjaCBhcyBCb3llci1Nb29yZSBzaGlmdCB0YWJsZXMKKyAgICAgKiB0byBiZSByZWNhbGN1bGF0ZWQsIGJ1dCB0aGUgaXRlcmF0b3IncyBwb3NpdGlvbiBpcyB1bmNoYW5nZWQuCisgICAgICogPC9wPgorICAgICAqIEBwYXJhbSBjb2xsYXRvciB0byB1c2UgZm9yIHRoaXMgU3RyaW5nU2VhcmNoCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIHdoZW4gY29sbGF0b3IgaXMgbnVsbAorICAgICAqIEBzZWUgI2dldENvbGxhdG9yCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Q29sbGF0b3IoUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IpIAorICAgIHsKKyAgICAJaWYgKGNvbGxhdG9yID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNvbGxhdG9yIGNhbiBub3QgYmUgbnVsbCIpOworICAgICAgICB9CisgICAgICAgIG1fY29sbGF0b3JfID0gY29sbGF0b3I7CisgICAgICAgIG1fY2VNYXNrXyA9IGdldE1hc2sobV9jb2xsYXRvcl8uZ2V0U3RyZW5ndGgoKSk7CisgICAgICAgIC8vIGlmIHN0YXR1cyBpcyBhIGZhaWx1cmUsIHVjb2xfZ2V0QXR0cmlidXRlIHJldHVybnMgVUNPTF9ERUZBVUxUCisgICAgICAgIGluaXRpYWxpemUoKTsKKyAgICAgICAgbV9jb2xFSXRlcl8uc2V0Q29sbGF0b3IobV9jb2xsYXRvcl8pOworICAgICAgICBtX3V0aWxDb2xFSXRlcl8uc2V0Q29sbGF0b3IobV9jb2xsYXRvcl8pOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBTZXQgdGhlIHBhdHRlcm4gdG8gc2VhcmNoIGZvci4gIAorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGlzIG1ldGhvZCBjYXVzZXMgaW50ZXJuYWwgZGF0YSBzdWNoIGFzIEJveWVyLU1vb3JlIHNoaWZ0IHRhYmxlcworICAgICAqIHRvIGJlIHJlY2FsY3VsYXRlZCwgYnV0IHRoZSBpdGVyYXRvcidzIHBvc2l0aW9uIGlzIHVuY2hhbmdlZC4KKyAgICAgKiA8L3A+CisgICAgICogQHBhcmFtIHBhdHRlcm4gZm9yIHNlYXJjaGluZworICAgICAqIEBzZWUgI2dldFBhdHRlcm4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB0aHJvd24gaWYgcGF0dGVybiBpcyBudWxsIG9yIG9mCisgICAgICogCQkJICBsZW5ndGggMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFBhdHRlcm4oU3RyaW5nIHBhdHRlcm4pIAorICAgIHsKKyAgICAJaWYgKHBhdHRlcm4gPT0gbnVsbCB8fCBwYXR0ZXJuLmxlbmd0aCgpIDw9IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgICAgICAgICAJCSJQYXR0ZXJuIHRvIHNlYXJjaCBmb3IgY2FuIG5vdCBiZSBudWxsIG9yIG9mIGxlbmd0aCAwIik7CisgICAgICAgIH0KKyAgICAgICAgbV9wYXR0ZXJuXy50YXJnZXRUZXh0ID0gcGF0dGVybjsKKyAgICAgICAgaW5pdGlhbGl6ZSgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAJICogU2V0IHRoZSB0YXJnZXQgdGV4dCB0byBiZSBzZWFyY2hlZC4gVGV4dCBpdGVyYXRpb24gd2lsbCBoZW5jZSBiZWdpbiBhdCAKKyAgICAgKiB0aGUgc3RhcnQgb2YgdGhlIHRleHQgc3RyaW5nLiBUaGlzIG1ldGhvZCBpcyB1c2VmdWwgaWYgeW91IHdhbnQgdG8gCisgICAgICogcmUtdXNlIGFuIGl0ZXJhdG9yIHRvIHNlYXJjaCB3aXRoaW4gYSBkaWZmZXJlbnQgYm9keSBvZiB0ZXh0LgorICAgICAqIEBwYXJhbSB0ZXh0IG5ldyB0ZXh0IGl0ZXJhdG9yIHRvIGxvb2sgZm9yIG1hdGNoLCAKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB0aHJvd24gd2hlbiB0ZXh0IGlzIG51bGwgb3IgaGFzCisgICAgICogICAgICAgICAgICAwIGxlbmd0aAorICAgICAqIEBzZWUgI2dldFRhcmdldAorCSAqIEBkcmFmdCByZWxlYXNlIDIuMgorCSAqLworCXB1YmxpYyB2b2lkIHNldFRhcmdldChDaGFyYWN0ZXJJdGVyYXRvciB0ZXh0KQorCXsKKwkJc3VwZXIuc2V0VGFyZ2V0KHRleHQpOworICAgICAgICBtX3RleHRCZWdpbk9mZnNldF8gPSB0YXJnZXRUZXh0LmdldEJlZ2luSW5kZXgoKTsKKyAgICAgICAgbV90ZXh0TGltaXRPZmZzZXRfID0gdGFyZ2V0VGV4dC5nZXRFbmRJbmRleCgpOworICAgICAgICBtX2NvbEVJdGVyXy5zZXRUZXh0KHRhcmdldFRleHQpOworCX0KKyAgICAKKyAgICAvKioKKwkgKiA8cD4KKyAgICAgKiBTZXRzIHRoZSBwb3NpdGlvbiBpbiB0aGUgdGFyZ2V0IHRleHQgd2hpY2ggdGhlIG5leHQgc2VhcmNoIHdpbGwgc3RhcnQgCisgICAgICogZnJvbSB0byB0aGUgYXJndW1lbnQuIFRoaXMgbWV0aG9kIGNsZWFycyBhbGwgcHJldmlvdXMgc3RhdGVzLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGlzIG1ldGhvZCB0YWtlcyB0aGUgYXJndW1lbnQgcG9zaXRpb24gYW5kIHNldHMgdGhlIHBvc2l0aW9uIGluIHRoZSAKKyAgICAgKiB0YXJnZXQgdGV4dCBhY2NvcmRpbmdseSwgd2l0aG91dCBjaGVja2luZyBpZiBwb3NpdGlvbiBpcyBwb2ludGluZyB0byBhIAorICAgICAqIHZhbGlkIHN0YXJ0aW5nIHBvaW50IHRvIGJlZ2luIHNlYXJjaGluZy4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogU2VhcmNoIHBvc2l0aW9ucyB0aGF0IG1heSByZW5kZXIgaW5jb3JyZWN0IHJlc3VsdHMgYXJlIGhpZ2hsaWdodGVkIGluIAorICAgICAqIHRoZSBjbGFzcyBkb2N1bWVudGF0aW9uLgorICAgICAqIDwvcD4KKyAgICAgKiBAcGFyYW0gcG9zaXRpb24gaW5kZXggdG8gc3RhcnQgbmV4dCBzZWFyY2ggZnJvbS4KKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gdGhyb3duIGlmIGFyZ3VtZW50IHBvc2l0aW9uIGlzIG91dAorICAgICAqICAgICAgICAgICAgb2YgdGhlIHRhcmdldCB0ZXh0IHJhbmdlLgorICAgICAqIEBzZWUgI2dldEluZGV4CisgICAgICogQGRyYWZ0IHJlbGVhc2UgMi4yCisJICovCisJcHVibGljIHZvaWQgc2V0SW5kZXgoaW50IHBvc2l0aW9uKQorCXsKKwkJc3VwZXIuc2V0SW5kZXgocG9zaXRpb24pOworICAgICAgICBtX21hdGNoZWRJbmRleF8gPSBET05FOworICAgICAgICBtX2NvbEVJdGVyXy5zZXRFeGFjdE9mZnNldChwb3NpdGlvbik7CisJfQorCQorCS8qKgorCSAqIDxwPgorICAgICAqIFNldCB0aGUgY2Fub25pY2FsIG1hdGNoIG1vZGUuIFNlZSBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBkZXRhaWxzLgorICAgICAqIFRoZSBkZWZhdWx0IHNldHRpbmcgZm9yIHRoaXMgcHJvcGVydHkgaXMgZmFsc2UuCisgICAgICogPC9wPgorCSAqIEBwYXJhbSBhbGxvd0Nhbm9uaWNhbCBmbGFnIGluZGljYXRvciBpZiBjYW5vbmljYWwgbWF0Y2hlcyBhcmUgYWxsb3dlZAorICAgICAqIEBzZWUgI2lzQ2Fub25pY2FsCisJICogQGRyYWZ0IHJlbGVhc2UgMi4yCisJICovCisJcHVibGljIHZvaWQgc2V0Q2Fub25pY2FsKGJvb2xlYW4gYWxsb3dDYW5vbmljYWwpCisJeworCQltX2lzQ2Fub25pY2FsTWF0Y2hfID0gYWxsb3dDYW5vbmljYWw7CisJCWlmIChtX2lzQ2Fub25pY2FsTWF0Y2hfID09IHRydWUpIHsKKwkJCWlmIChtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfID09IG51bGwpIHsKKwkJCQltX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCQkJfQorCQkJZWxzZSB7CisJCQkJbV9jYW5vbmljYWxQcmVmaXhBY2NlbnRzXy5kZWxldGUoMCwgCisJCQkJCQkJCQkJCW1fY2Fub25pY2FsUHJlZml4QWNjZW50c18ubGVuZ3RoKCkpOworCQkJfQorCQkJaWYgKG1fY2Fub25pY2FsU3VmZml4QWNjZW50c18gPT0gbnVsbCkgeworCQkJCW1fY2Fub25pY2FsU3VmZml4QWNjZW50c18gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisJCQl9CisJCQllbHNlIHsKKwkJCQltX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfLmRlbGV0ZSgwLCAKKwkJCQkJCQkJCQkJbV9jYW5vbmljYWxTdWZmaXhBY2NlbnRzXy5sZW5ndGgoKSk7CisJCQl9CisJCX0KKwl9CisJCisJLy8gcHVibGljIG1pc2NlbGxhbmVvdXMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCQorCS8qKiAKKwkgKiA8cD4KKyAgICAgKiBSZXNldHMgdGhlIHNlYXJjaCBpdGVyYXRpb24uIEFsbCBwcm9wZXJ0aWVzIHdpbGwgYmUgcmVzZXQgdG8gdGhlIAorICAgICAqIGRlZmF1bHQgdmFsdWUuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFNlYXJjaCB3aWxsIGJlZ2luIGF0IHRoZSBzdGFydCBvZiB0aGUgdGFyZ2V0IHRleHQgaWYgYSBmb3J3YXJkIGl0ZXJhdGlvbiAKKyAgICAgKiBpcyBpbml0aWF0ZWQgYmVmb3JlIGEgYmFja3dhcmRzIGl0ZXJhdGlvbi4gT3RoZXJ3aXNlIGlmIGEgCisgICAgICogYmFja3dhcmRzIGl0ZXJhdGlvbiBpcyBpbml0aWF0ZWQgYmVmb3JlIGEgZm9yd2FyZHMgaXRlcmF0aW9uLCB0aGUgc2VhcmNoIAorICAgICAqIHdpbGwgYmVnaW4gYXQgdGhlIGVuZCBvZiB0aGUgdGFyZ2V0IHRleHQuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIENhbm9uaWNhbCBtYXRjaCBvcHRpb24gd2lsbCBiZSByZXNldCB0byBmYWxzZSwgaWUgYW4gZXhhY3QgbWF0Y2guCisgICAgICogPC9wPgorCSAqIEBkcmFmdCByZWxlYXNlIDIuMgorCSAqLworCXB1YmxpYyB2b2lkIHJlc2V0KCkKKwl7CisJCS8vIHJlc2V0IGlzIHNldHRpbmcgdGhlIGF0dHJpYnV0ZXMgdGhhdCBhcmUgYWxyZWFkeSBpbiBzdHJpbmcgc2VhcmNoLCAKKwkJLy8gaGVuY2UgYWxsIGF0dHJpYnV0ZXMgaW4gdGhlIGNvbGxhdG9yIHNob3VsZCBiZSByZXRyaWV2ZWQgd2l0aG91dCBhbnkgCisJCS8vIHByb2JsZW1zCisJCXN1cGVyLnJlc2V0KCk7CisgICAgICAgIG1faXNDYW5vbmljYWxNYXRjaF8gPSBmYWxzZTsKKyAgICAgICAgbV9jZU1hc2tfID0gZ2V0TWFzayhtX2NvbGxhdG9yXy5nZXRTdHJlbmd0aCgpKTsKKyAgICAgICAgLy8gaWYgc3RhdHVzIGlzIGEgZmFpbHVyZSwgdWNvbF9nZXRBdHRyaWJ1dGUgcmV0dXJucyBVQ09MX0RFRkFVTFQKKyAgICAgICAgaW5pdGlhbGl6ZSgpOworICAgICAgICBtX2NvbEVJdGVyXy5zZXRDb2xsYXRvcihtX2NvbGxhdG9yXyk7CisgICAgICAgIG1fY29sRUl0ZXJfLnJlc2V0KCk7CisgICAgICAgIG1fdXRpbENvbEVJdGVyXy5zZXRDb2xsYXRvcihtX2NvbGxhdG9yXyk7CisJfQorCisgICAgLy8gcHJvdGVjdGVkIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBDb25jcmV0ZSBtZXRob2QgdG8gcHJvdmlkZSB0aGUgbWVjaGFuaXNtIAorICAgICAqIGZvciBmaW5kaW5nIHRoZSBuZXh0IDxiPmZvcndhcmRzPC9iPiBtYXRjaCBpbiB0aGUgdGFyZ2V0IHRleHQuCisgICAgICogU2VlIHN1cGVyIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIGl0cyB1c2UuCisgICAgICogPC9wPiAgCisgICAgICogQHBhcmFtIHN0YXJ0IGluZGV4IGluIHRoZSB0YXJnZXQgdGV4dCBhdCB3aGljaCB0aGUgZm9yd2FyZHMgc2VhcmNoIAorICAgICAqICAgICAgICBzaG91bGQgYmVnaW4uCisgICAgICogQHJldHVybiB0aGUgc3RhcnRpbmcgaW5kZXggb2YgdGhlIG5leHQgZm9yd2FyZHMgbWF0Y2ggaWYgZm91bmQsIERPTkUgCisgICAgICogICAgICAgICBvdGhlcndpc2UKKyAgICAgKiBAc2VlICNoYW5kbGVQcmV2aW91cyhpbnQpCisgICAgICogQHNlZSAjRE9ORQorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlTmV4dChpbnQgc3RhcnQpCisgICAgeworICAgIAlpZiAobV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXyA9PSAwKSB7CisgICAgICAgICAgICBtYXRjaExlbmd0aCA9IDA7CisgICAgICAgICAgICBpZiAobV9tYXRjaGVkSW5kZXhfID09IERPTkUgJiYgc3RhcnQgPT0gbV90ZXh0QmVnaW5PZmZzZXRfKSB7CisgICAgICAgICAgICAgICAgbV9tYXRjaGVkSW5kZXhfID0gc3RhcnQ7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1fbWF0Y2hlZEluZGV4XzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgIAkJdGFyZ2V0VGV4dC5zZXRJbmRleChzdGFydCk7CisJICAgICAgICBjaGFyIGNoID0gdGFyZ2V0VGV4dC5jdXJyZW50KCk7CisJICAgICAgICAvLyBjaCBjYW4gbmV2ZXIgYmUgZG9uZSwgaXQgaXMgaGFuZGxlZCBieSBuZXh0KCkKKwkgICAgICAgIGNoYXIgY2gyID0gdGFyZ2V0VGV4dC5uZXh0KCk7CisJICAgICAgICBpZiAoY2gyID09IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKwkgICAgICAgICAgICBtX21hdGNoZWRJbmRleF8gPSBET05FOwkKKwkgICAgICAgIH0KKwkgICAgICAgIGVsc2UgeworCSAgICAgICAgICAgIG1fbWF0Y2hlZEluZGV4XyA9IHRhcmdldFRleHQuZ2V0SW5kZXgoKTsKKwkgICAgICAgIH0KKwkgICAgICAgIGlmIChVVEYxNi5pc0xlYWRTdXJyb2dhdGUoY2gpICYmIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoY2gyKSkgeworCSAgICAgICAgICAgIHRhcmdldFRleHQubmV4dCgpOworCSAgICAgICAgICAgIG1fbWF0Y2hlZEluZGV4XyA9IHRhcmdldFRleHQuZ2V0SW5kZXgoKTsKKwkgICAgICAgIH0KKwkgICAgfQorCSAgICBlbHNlIHsKKwkgICAgCWlmIChtYXRjaExlbmd0aCAhPSAwKSB7CisJCSAgICAJc3RhcnQgKz0gbWF0Y2hMZW5ndGg7CisJCSAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyB3ZSBtdXN0IGhhdmUgcmV2ZXJzZWQgZGlyZWN0aW9uIGFmdGVyIHdlIHJlYWNoZWQgdGhlIHN0YXJ0CisgICAgICAgICAgICAgICAgLy8gb2YgdGhlIHRhcmdldCB0ZXh0CisgICAgICAgICAgICAgICAgLy8gc2VlIFNlYXJjaEl0ZXJhdG9yIG5leHQoKSwgaXQgY2hlY2tzIHRoZSBib3VuZHMgYW5kIHJldHVybnMKKyAgICAgICAgICAgICAgICAvLyBpZiBpdCBleGNlZWRzIHRoZSByYW5nZS4gSXQgZG9lcyBub3QgYWxsb3cgc2V0dGluZyBvZgorICAgICAgICAgICAgICAgIC8vIG1fbWF0Y2hlZEluZGV4CisgICAgICAgICAgICAgICAgbV9tYXRjaGVkSW5kZXhfID0gRE9ORTsKKyAgICAgICAgICAgIH0KKyAgICAKKwkgICAgICAgIC8vIHN0YXR1cyBjaGVja2VkIGJlbG93CisJICAgICAgICBpZiAobV9pc0Nhbm9uaWNhbE1hdGNoXykgeworCSAgICAgICAgICAgIC8vIGNhbid0IHVzZSBleGFjdCBoZXJlIHNpbmNlIGV4dHJhIGFjY2VudHMgYXJlIGFsbG93ZWQuCisJICAgICAgICAgICAgaGFuZGxlTmV4dENhbm9uaWNhbChzdGFydCk7CisJICAgICAgICB9CisJICAgICAgICBlbHNlIHsKKwkgICAgICAgICAgICBoYW5kbGVOZXh0RXhhY3Qoc3RhcnQpOworCSAgICAgICAgfQorCSAgICB9CisgICAgICAgIGlmIChtX21hdGNoZWRJbmRleF8gPT0gRE9ORSkgeworICAgICAgICAgICAgdGFyZ2V0VGV4dC5zZXRJbmRleChtX3RleHRMaW1pdE9mZnNldF8pOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdGFyZ2V0VGV4dC5zZXRJbmRleChtX21hdGNoZWRJbmRleF8pOworICAgICAgICB9CisgICAgCXJldHVybiBtX21hdGNoZWRJbmRleF87CisgICAgfQorICAgIAorICAgIC8qKgorCSAqIDxwPgorICAgICAqIENvbmNyZXRlIG1ldGhvZCB0byBwcm92aWRlIHRoZSBtZWNoYW5pc20gCisgICAgICogZm9yIGZpbmRpbmcgdGhlIG5leHQgPGI+YmFja3dhcmRzPC9iPiBtYXRjaCBpbiB0aGUgdGFyZ2V0IHRleHQuCisgICAgICogU2VlIHN1cGVyIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIGl0cyB1c2UuCisgICAgICogPC9wPiAgCisgICAgICogQHBhcmFtIHN0YXJ0IGluZGV4IGluIHRoZSB0YXJnZXQgdGV4dCBhdCB3aGljaCB0aGUgYmFja3dhcmRzIHNlYXJjaCAKKyAgICAgKiAgICAgICAgc2hvdWxkIGJlZ2luLgorICAgICAqIEByZXR1cm4gdGhlIHN0YXJ0aW5nIGluZGV4IG9mIHRoZSBuZXh0IGJhY2t3YXJkcyBtYXRjaCBpZiBmb3VuZCwgRE9ORSAKKyAgICAgKiAgICAgICAgIG90aGVyd2lzZQorICAgICAqIEBzZWUgI2hhbmRsZU5leHQoaW50KQorICAgICAqIEBzZWUgI0RPTkUKKwkgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZVByZXZpb3VzKGludCBzdGFydCkKKyAgICB7CisgICAgCWlmIChtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfID09IDApIHsKKyAgICAgICAgICAgIG1hdGNoTGVuZ3RoID0gMDsKKwkgICAgICAgIC8vIHN0YXJ0IGNhbiBuZXZlciBiZSBET05FIG9yIDAsIGl0IGlzIGhhbmRsZWQgaW4gcHJldmlvdXMKKyAgICAgICAgICAgIHRhcmdldFRleHQuc2V0SW5kZXgoc3RhcnQpOworICAgICAgICAgICAgY2hhciBjaCA9IHRhcmdldFRleHQucHJldmlvdXMoKTsKKyAgICAgICAgICAgIGlmIChjaCA9PSBDaGFyYWN0ZXJJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAJbV9tYXRjaGVkSW5kZXhfID0gRE9ORTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgCW1fbWF0Y2hlZEluZGV4XyA9IHRhcmdldFRleHQuZ2V0SW5kZXgoKTsKKwkgICAgICAgICAgICBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjaCkpIHsKKwkgICAgICAgICAgICAJaWYgKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZSh0YXJnZXRUZXh0LnByZXZpb3VzKCkpKSB7CisJICAgICAgICAgICAgICAgICAgICBtX21hdGNoZWRJbmRleF8gPSB0YXJnZXRUZXh0LmdldEluZGV4KCk7CisJICAgICAgICAgICAgCX0KKwkgICAgICAgICAgICB9CisgICAgICAgICAgICB9ICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpZiAobWF0Y2hMZW5ndGggPT0gMCkgeworICAgICAgICAgICAgICAgIC8vIHdlIG11c3QgaGF2ZSByZXZlcnNlZCBkaXJlY3Rpb24gYWZ0ZXIgd2UgcmVhY2hlZCB0aGUgZW5kCisgICAgICAgICAgICAgICAgLy8gb2YgdGhlIHRhcmdldCB0ZXh0CisgICAgICAgICAgICAgICAgLy8gc2VlIFNlYXJjaEl0ZXJhdG9yIG5leHQoKSwgaXQgY2hlY2tzIHRoZSBib3VuZHMgYW5kIHJldHVybnMKKyAgICAgICAgICAgICAgICAvLyBpZiBpdCBleGNlZWRzIHRoZSByYW5nZS4gSXQgZG9lcyBub3QgYWxsb3cgc2V0dGluZyBvZgorICAgICAgICAgICAgICAgIC8vIG1fbWF0Y2hlZEluZGV4CisgICAgICAgICAgICAgICAgbV9tYXRjaGVkSW5kZXhfID0gRE9ORTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChtX2lzQ2Fub25pY2FsTWF0Y2hfKSB7CisgICAgICAgICAgICAgICAgLy8gY2FuJ3QgdXNlIGV4YWN0IGhlcmUgc2luY2UgZXh0cmEgYWNjZW50cyBhcmUgYWxsb3dlZC4KKyAgICAgICAgICAgICAgICBoYW5kbGVQcmV2aW91c0Nhbm9uaWNhbChzdGFydCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBoYW5kbGVQcmV2aW91c0V4YWN0KHN0YXJ0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChtX21hdGNoZWRJbmRleF8gPT0gRE9ORSkgeworICAgICAgICAgICAgdGFyZ2V0VGV4dC5zZXRJbmRleChtX3RleHRCZWdpbk9mZnNldF8pOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdGFyZ2V0VGV4dC5zZXRJbmRleChtX21hdGNoZWRJbmRleF8pOworICAgICAgICB9CisgICAgICAgIHJldHVybiBtX21hdGNoZWRJbmRleF87CisgICAgfQorCisgICAgLy8gcHJpdmF0ZSBzdGF0aWMgaW5uZXIgY2xhc3NlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgUGF0dGVybiAKKyAgICB7CisgICAgCS8vIHByb3RlY3RlZCBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCQorICAgIAkvKioKKyAgICAJICogUGF0dGVybiBzdHJpbmcKKyAgICAJICovCisgICAgCXByb3RlY3RlZCBTdHJpbmcgdGFyZ2V0VGV4dDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFycmF5IGNvbnRhaW5pbmcgdGhlIGNvbGxhdGlvbiBlbGVtZW50cyBvZiB0YXJnZXRUZXh0CisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgaW50IG1fQ0VfW107CisgICAgICAgIC8qKgorICAgICAgICAgKiBOdW1iZXIgb2YgY29sbGF0aW9uIGVsZW1lbnRzIGluIG1fQ0VfCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgaW50IG1fQ0VMZW5ndGhfOyAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEZsYWcgaW5kaWNhdG9yIGlmIHRhcmdldFRleHQgc3RhcnRzIHdpdGggYW4gYWNjZW50CisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiBtX2hhc1ByZWZpeEFjY2VudHNfOworICAgICAgICAvKioKKyAgICAgICAgICogRmxhZyBpbmRpY2F0b3IgaWYgdGFyZ2V0VGV4dCBlbmRzIHdpdGggYW4gYWNjZW50CisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiBtX2hhc1N1ZmZpeEFjY2VudHNfOworICAgICAgICAvKioKKyAgICAgICAgICogRGVmYXVsdCBudW1iZXIgb2YgY2hhcmFjdGVycyB0byBzaGlmdCBmb3IgQm95ZXIgTW9vcmUKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBpbnQgbV9kZWZhdWx0U2hpZnRTaXplXzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIE51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIHNoaWZ0IGZvciBCb3llciBNb29yZSwgZGVwZW5kaW5nIG9uIHRoZQorICAgICAgICAgKiBzb3VyY2UgdGV4dCB0byBzZWFyY2gKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBjaGFyIG1fc2hpZnRfW107CisgICAgICAgIC8qKgorICAgICAgICAgKiBOdW1iZXIgb2YgY2hhcmFjdGVycyB0byBzaGlmdCBiYWNrd2FyZHMgZm9yIEJveWVyIE1vb3JlLCBkZXBlbmRpbmcgCisgICAgICAgICAqIG9uIHRoZSBzb3VyY2UgdGV4dCB0byBzZWFyY2gKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBjaGFyIG1fYmFja1NoaWZ0X1tdOworICAgICAgICAKKyAgICAgICAgLy8gcHJvdGVjdGVkIGNvbnN0cnVjdG9ycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBFbXB0eSBjb25zdHJ1Y3RvciAKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBQYXR0ZXJuKFN0cmluZyBwYXR0ZXJuKSAKKyAgICAgICAgeworICAgICAgICAJdGFyZ2V0VGV4dCA9IHBhdHRlcm47CisgICAgICAgIAltX0NFXyA9IG5ldyBpbnRbSU5JVElBTF9BUlJBWV9TSVpFX107CQorICAgICAgICAJbV9DRUxlbmd0aF8gPSAwOworICAgICAgICAJbV9oYXNQcmVmaXhBY2NlbnRzXyA9IGZhbHNlOworICAgICAgICAJbV9oYXNTdWZmaXhBY2NlbnRzXyA9IGZhbHNlOworICAgICAgICAJbV9kZWZhdWx0U2hpZnRTaXplXyA9IDE7CQkKKyAgICAgICAgCW1fc2hpZnRfID0gbmV3IGNoYXJbTUFYX1RBQkxFX1NJWkVfXTsKKyAgICAgICAgCW1fYmFja1NoaWZ0XyA9IG5ldyBjaGFyW01BWF9UQUJMRV9TSVpFX107CisgICAgICAgIH0KKyAgICB9OworCisKKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiB0YXJnZXQgdGV4dCBiZWdpbiBvZmZzZXQuIEVhY2ggdGFyZ2V0VGV4dCBoYXMgYSB2YWxpZCBjb250aWd1b3VzIHJlZ2lvbiAKKyAgICAgKiB0byBpdGVyYXRlIGFuZCB0aGlzIGRhdGEgbWVtYmVyIGlzIHRoZSBvZmZzZXQgdG8gdGhlIGZpcnN0IHN1Y2gKKyAgICAgKiBjaGFyYWN0ZXIgaW4gdGhlIHJlZ2lvbi4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX3RleHRCZWdpbk9mZnNldF87CisgICAgLyoqCisgICAgICogdGFyZ2V0IHRleHQgbGltaXQgb2Zmc2V0LiBFYWNoIHRhcmdldFRleHQgaGFzIGEgdmFsaWQgY29udGlndW91cyByZWdpb24gCisgICAgICogdG8gaXRlcmF0ZSBhbmQgdGhpcyBkYXRhIG1lbWJlciBpcyB0aGUgb2Zmc2V0IHRvIDEgYWZ0ZXIgdGhlIGxhc3Qgc3VjaAorICAgICAqIGNoYXJhY3RlciBpbiB0aGUgcmVnaW9uLgorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fdGV4dExpbWl0T2Zmc2V0XzsKKyAgICAvKioKKyAgICAgKiBVcG9uIGNvbXBsZXRpb24gb2YgYSBzZWFyY2gsIG1fbWF0Y2hJbmRleF8gd2lsbCBzdG9yZSBzdGFydGluZyBvZmZzZXQgaW4KKyAgICAgKiBtX3RleHQgZm9yIHRoZSBtYXRjaC4gVGhlIFZhbHVlIERPTkUgaXMgdGhlIGRlZmF1bHQgdmFsdWUuIAorICAgICAqIElmIHdlIGFyZSBub3QgYXQgdGhlIHN0YXJ0IG9mIHRoZSB0ZXh0IG9yIHRoZSBlbmQgb2YgdGhlIHRleHQgYW5kIAorICAgICAqIG1fbWF0Y2hlZEluZGV4XyBpcyBET05FIGl0IG1lYW5zIHRoYXQgd2UgY2FuIGZpbmQgYW55IG1vcmUgbWF0Y2hlcyBpbiAKKyAgICAgKiB0aGF0IHBhcnRpY3VsYXIgZGlyZWN0aW9uCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9tYXRjaGVkSW5kZXhfOyAKKyAgICAvKioKKyAgICAgKiBDdXJyZW50IHBhdHRlcm4gdG8gc2VhcmNoIGZvcgorICAgICAqLworICAgIHByaXZhdGUgUGF0dGVybiBtX3BhdHRlcm5fOworICAgIC8qKgorICAgICAqIENvbGxhdG9yIHdob3NlIHJ1bGVzIGFyZSB1c2VkIHRvIHBlcmZvcm0gdGhlIHNlYXJjaAorICAgICAqLworICAgIHByaXZhdGUgUnVsZUJhc2VkQ29sbGF0b3IgbV9jb2xsYXRvcl87CisgICAgLyoqIAorICAgICAqIFRoZSBjb2xsYXRpb24gZWxlbWVudCBpdGVyYXRvciBmb3IgdGhlIHRleHQgc291cmNlLgorICAgICAqLworICAgIHByaXZhdGUgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIG1fY29sRUl0ZXJfOworICAgIC8qKiAKKyAgICAgKiBVdGlsaXR5IGNvbGxhdGlvbiBlbGVtZW50LCB1c2VkIHRocm91Z2hvdXQgcHJvZ3JhbSBmb3IgdGVtcG9yYXJ5IAorICAgICAqIGl0ZXJhdGlvbi4KKyAgICAgKi8KKyAgICBwcml2YXRlIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBtX3V0aWxDb2xFSXRlcl87CisgICAgLyoqCisgICAgICogVGhlIG1hc2sgdXNlZCBvbiB0aGUgY29sbGF0aW9uIGVsZW1lbnRzIHRvIHJldHJpZXZlIHRoZSB2YWxpZCBzdHJlbmd0aAorICAgICAqIHdlaWdodCAKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX2NlTWFza187CisgICAgLyoqCisgICAgICogQnVmZmVyIHN0b3JpbmcgYWNjZW50cyBkdXJpbmcgYSBjYW5vbmljYWwgc2VhcmNoCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgbV9jYW5vbmljYWxQcmVmaXhBY2NlbnRzXzsKKyAgICAvKioKKyAgICAgKiBCdWZmZXIgc3RvcmluZyBhY2NlbnRzIGR1cmluZyBhIGNhbm9uaWNhbCBzZWFyY2gKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfOworICAgIC8qKgorICAgICAqIEZsYWcgdG8gaW5kaWNhdGUgaWYgY2Fub25pY2FsIHNlYXJjaCBpcyB0byBiZSBkb25lLgorICAgICAqIEUuZyBsb29raW5nIGZvciAiYVx1MDMwMCIgaW4gImFcdTAzMThcdTAzMDAiIHdpbGwgeWllbGQgdGhlIG1hdGNoIGF0IDAuCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIG1faXNDYW5vbmljYWxNYXRjaF87CisgICAgLyoqCisgICAgICogU2l6ZSBvZiB0aGUgc2hpZnQgdGFibGVzCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1BWF9UQUJMRV9TSVpFXyA9IDI1NzsgCisgICAgLyoqCisgICAgICogSW5pdGlhbCBhcnJheSBzaXplCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElOSVRJQUxfQVJSQVlfU0laRV8gPSAyNTY7CisgICAgLyoqCisgICAgICogVXRpbGl0eSBtYXNrCisgICAgICovCisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNFQ09ORF9MQVNUX0JZVEVfU0hJRlRfID0gODsKKwkvKioKKyAgICAgKiBVdGlsaXR5IG1hc2sKKyAgICAgKi8KKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEFTVF9CWVRFX01BU0tfID0gMHhmZjsKKwkvKioKKwkgKiBVdGlsaXR5IGJ1ZmZlciBmb3IgcmV0dXJuIHZhbHVlcyBhbmQgdGVtcG9yYXJ5IHN0b3JhZ2UKKwkgKi8KKwlwcml2YXRlIGludCBtX3V0aWxCdWZmZXJfW10gPSBuZXcgaW50WzJdOworCisJLy8gcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEhhc2ggYSBjb2xsYXRpb24gZWxlbWVudCBmcm9tIGl0cyBmdWxsIHNpemUgKDMyIGJpdHMpIGRvd24gaW50byBhCisgICAgICogdmFsdWUgdGhhdCBjYW4gYmUgdXNlZCBhcyBhbiBpbmRleCBpbnRvIHRoZSBzaGlmdCB0YWJsZXMuICBSaWdodAorICAgICAqIG5vdyB3ZSBkbyBhIG1vZHVsdXMgYnkgdGhlIHNpemUgb2YgdGhlIGhhc2ggdGFibGUuCisgICAgICogQHBhcmFtIGNlIGNvbGxhdGlvbiBlbGVtZW50CisJICogQHJldHVybiBjb2xsYXBzZWQgdmVyc2lvbiBvZiB0aGUgY29sbGF0aW9uIGVsZW1lbnQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgaGFzaChpbnQgY2UpIAorICAgIHsKKyAgICAgICAgLy8gdGhlIG9sZCB2YWx1ZSBVQ09MX1BSSU1BUllPUkRFUihjZSkgJSBNQVhfVEFCTEVfU0laRV8gZG9lcyBub3Qgd29yaworICAgIAkvLyB3ZWxsIHdpdGggdGhlIG5ldyBjb2xsYXRpb24gd2hlcmUgbW9zdCBvZiB0aGUgbGF0aW4gMSBjaGFyYWN0ZXJzCisgICAgCS8vIGFyZSBvZiB0aGUgdmFsdWUgeHgwMDB4eHguIHRoZWlyIGhhc2hlcyB3aWxsIG1vc3Qgb2YgdGhlIHRpbWUgYmUgMAorICAgIAkvLyB0byBiZSBkaXNjdXNzZWQgb24gdGhlIGhhc2ggYWxnby4KKyAgICAJcmV0dXJuIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIoY2UpICUgTUFYX1RBQkxFX1NJWkVfOworICAgIH0KKyAgICAKKyAgICAvKioKKwkgKiBHZXRzIHRoZSBmY2QgdmFsdWUgZm9yIGEgY2hhcmFjdGVyIGF0IHRoZSBhcmd1bWVudCBpbmRleC4KKwkgKiBUaGlzIG1ldGhvZCB0YWtlcyBpbnRvIGFjY291bnRzIG9mIHRoZSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMuCisJICogTm90ZSB0aGlzIG1ldGhvZCBjaGFuZ2VzIHRoZSBvZmZzZXQgaW4gdGhlIGNoYXJhY3RlciBpdGVyYXRvci4KKwkgKiBAcGFyYW0gc3RyIFVURjE2IHN0cmluZyB3aGVyZSBjaGFyYWN0ZXIgZm9yIGZjZCByZXRyaWV2YWwgcmVzaWRlcworCSAqIEBwYXJhbSBvZmZzZXQgcG9zaXRpb24gb2YgdGhlIGNoYXJhY3RlciB3aG9zZSBmY2QgaXMgdG8gYmUgcmV0cmlldmVkCisJICogQHJldHVybiBmY2QgdmFsdWUKKwkgKi8KKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIGdldEZDRChDaGFyYWN0ZXJJdGVyYXRvciBzdHIsIGludCBvZmZzZXQpCisJeworCSAgICBzdHIuc2V0SW5kZXgob2Zmc2V0KTsKKwkgICAgY2hhciBjaCA9IHN0ci5jdXJyZW50KCk7CisJICAgIGNoYXIgcmVzdWx0ID0gTm9ybWFsaXplckltcGwuZ2V0RkNEMTYoY2gpOworCSAgICAKKwkgICAgaWYgKChyZXN1bHQgIT0gMCkgJiYgKHN0ci5nZXRFbmRJbmRleCgpICE9IG9mZnNldCArIDEpICYmIAorCSAgICAJVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGNoKSkgeworCSAgICAgICAgY2ggPSBzdHIubmV4dCgpOworCSAgICAgICAgaWYgKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoY2gpKSB7CisJICAgICAgICAgICAgcmVzdWx0ID0gTm9ybWFsaXplckltcGwuZ2V0RkNEMTZGcm9tU3Vycm9nYXRlUGFpcihyZXN1bHQsIGNoKTsKKwkgICAgICAgIH0gZWxzZSB7CisJICAgICAgICAgICAgcmVzdWx0ID0gMDsKKwkgICAgICAgIH0KKwkgICAgfQorCSAgICByZXR1cm4gcmVzdWx0OworCX0KKwkKKwkvKioKKwkgKiBHZXRzIHRoZSBmY2QgdmFsdWUgZm9yIGEgY2hhcmFjdGVyIGF0IHRoZSBhcmd1bWVudCBpbmRleC4KKwkgKiBUaGlzIG1ldGhvZCB0YWtlcyBpbnRvIGFjY291bnRzIG9mIHRoZSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMuCisJICogQHBhcmFtIHN0ciBVVEYxNiBzdHJpbmcgd2hlcmUgY2hhcmFjdGVyIGZvciBmY2QgcmV0cmlldmFsIHJlc2lkZXMKKwkgKiBAcGFyYW0gb2Zmc2V0IHBvc2l0aW9uIG9mIHRoZSBjaGFyYWN0ZXIgd2hvc2UgZmNkIGlzIHRvIGJlIHJldHJpZXZlZAorCSAqIEByZXR1cm4gZmNkIHZhbHVlCisJICovCisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBnZXRGQ0QoU3RyaW5nIHN0ciwgaW50IG9mZnNldCkKKwl7CisJICAgIGNoYXIgY2ggPSBzdHIuY2hhckF0KG9mZnNldCk7CisJICAgIGNoYXIgcmVzdWx0ID0gTm9ybWFsaXplckltcGwuZ2V0RkNEMTYoY2gpOworCSAgICAKKwkgICAgaWYgKChyZXN1bHQgIT0gMCkgJiYgKHN0ci5sZW5ndGgoKSAhPSBvZmZzZXQgKyAxKSAmJiAKKwkgICAgCVVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjaCkpIHsKKwkgICAgICAgIGNoID0gc3RyLmNoYXJBdChvZmZzZXQgKyAxKTsKKwkgICAgICAgIGlmIChVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGNoKSkgeworCSAgICAgICAgICAgIHJlc3VsdCA9IE5vcm1hbGl6ZXJJbXBsLmdldEZDRDE2RnJvbVN1cnJvZ2F0ZVBhaXIocmVzdWx0LCBjaCk7CisJICAgICAgICB9IGVsc2UgeworCSAgICAgICAgICAgIHJlc3VsdCA9IDA7CisJICAgICAgICB9CisJICAgIH0KKwkgICAgcmV0dXJuIHJlc3VsdDsKKwl9CisJCisJLyoqCisJKiBHZXR0aW5nIHRoZSBtb2RpZmllZCBjb2xsYXRpb24gZWxlbWVudHMgdGFraW5nIGludG8gYWNjb3VudCB0aGUgY29sbGF0aW9uIAorCSogYXR0cmlidXRlcworCSogQHBhcmFtIGNlIAorCSogQHJldHVybiB0aGUgbW9kaWZpZWQgY29sbGF0aW9uIGVsZW1lbnQKKwkqLworCXByaXZhdGUgZmluYWwgaW50IGdldENFKGludCBjZSkKKwl7CisJICAgIC8vIG5vdGUgZm9yIHRlcnRpYXJ5IHdlIGNhbid0IHVzZSB0aGUgY29sbGF0b3ItPnRlcnRpYXJ5TWFzaywgdGhhdAorCSAgICAvLyBpcyBhIHByZXByb2Nlc3NlZCBtYXNrIHRoYXQgdGFrZXMgaW50byBhY2NvdW50IGNhc2Ugb3B0aW9ucy4gc2luY2UKKwkgICAgLy8gd2UgYXJlIG9ubHkgY29uY2VybmVkIHdpdGggZXhhY3QgbWF0Y2hlcywgd2UgZG9uJ3QgbmVlZCB0aGF0LgorCSAgICBjZSAmPSBtX2NlTWFza187CisJICAgIAorCSAgICBpZiAobV9jb2xsYXRvcl8uaXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQoKSkgeworCSAgICAgICAgLy8gYWx0ZXJuYXRlIGhhbmRsaW5nIGhlcmUsIHNpbmNlIG9ubHkgdGhlIDE2IG1vc3Qgc2lnbmlmaWNhbnQgCisJICAgICAgICAvLyBkaWdpdHMgaXMgb25seSB1c2VkLCB3ZSBjYW4gc2FmZWx5IGRvIGEgY29tcGFyZSB3aXRob3V0IG1hc2tpbmcKKwkgICAgICAgIC8vIGlmIHRoZSBjZSBpcyBhIHZhcmlhYmxlLCB3ZSBtYXNrIGFuZCBnZXQgb25seSB0aGUgcHJpbWFyeSB2YWx1ZXMKKwkgICAgICAgIC8vIG5vIHNoaWZ0aW5nIHRvIHF1YXJ0ZW5hcnkgaXMgcmVxdWlyZWQgc2luY2UgYWxsIHByaW1hcnkgdmFsdWVzCisJICAgICAgICAvLyBsZXNzIHRoYW4gdmFyaWFibGV0b3Agd2lsbCBuZWVkIHRvIGJlIG1hc2tlZCBvZmYgYW55d2F5LgorCSAgICAgICAgaWYgKChtX2NvbGxhdG9yXy5tX3ZhcmlhYmxlVG9wVmFsdWVfICA8PCAxNikgPiBjZSkgeworCSAgICAgICAgICAgIGlmIChtX2NvbGxhdG9yXy5nZXRTdHJlbmd0aCgpID09IENvbGxhdG9yLlFVQVRFUk5BUlkpIHsKKwkgICAgICAgICAgICAgICAgY2UgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKGNlKTsKKwkgICAgICAgICAgICB9CisJICAgICAgICAgICAgZWxzZSB7IAorCSAgICAgICAgICAgICAgICBjZSA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEU7CisJICAgICAgICAgICAgfQorCSAgICAgICAgfQorCSAgICB9CisJCisJICAgIHJldHVybiBjZTsKKwl9CisJCisJLyoqCisJICogQXBwZW5kcyBhIGludCB0byBhIGludCBhcnJheSwgaW5jcmVhc2luZyB0aGUgc2l6ZSBvZiB0aGUgYXJyYXkgd2hlbiAKKwkgKiB3ZSBhcmUgb3V0IG9mIHNwYWNlLgorCSAqIEBwYXJhbSBvZmZzZXQgaW4gYXJyYXkgdG8gYXBwZW5kIHRvCisJICogQHBhcmFtIHZhbHVlIHRvIGFwcGVuZAorCSAqIEBwYXJhbSBhcnJheSB0byBhcHBlbmQgdG8KKwkgKiBAcmV0dXJuIHRoZSBhcnJheSBhcHBlbmRlZCB0bywgdGhpcyBjb3VsZCBiZSBhIG5ldyBhbmQgYmlnZ2VyIGFycmF5CisJICovCisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50W10gYXBwZW5kKGludCBvZmZzZXQsIGludCB2YWx1ZSwgaW50IGFycmF5W10pCisJeworCQlpZiAob2Zmc2V0ID49IGFycmF5Lmxlbmd0aCkgeworCQkJaW50IHRlbXBbXSA9IG5ldyBpbnRbb2Zmc2V0ICsgSU5JVElBTF9BUlJBWV9TSVpFX107CisJCQlTeXN0ZW0uYXJyYXljb3B5KGFycmF5LCAwLCB0ZW1wLCAwLCBhcnJheS5sZW5ndGgpOworCQkJYXJyYXkgPSB0ZW1wOworCQl9CisJCWFycmF5W29mZnNldF0gPSB2YWx1ZTsKKwkJcmV0dXJuIGFycmF5OworCX0KKwkKKwkvKioKKwkgKiBJbml0aWFsaXppbmcgdGhlIGNlIHRhYmxlIGZvciBhIHBhdHRlcm4uIFN0b3JlcyBub24taWdub3JhYmxlIGNvbGxhdGlvbiAKKwkgKiBrZXlzLiBUYWJsZSBzaXplIHdpbGwgYmUgZXN0aW1hdGVkIGJ5IHRoZSBzaXplIG9mIHRoZSBwYXR0ZXJuIHRleHQuIAorCSAqIFRhYmxlIGV4cGFuc2lvbiB3aWxsIGJlIHBlcmZvcm0gYXMgd2UgZ28gYWxvbmcuIEFkZGluZyAxIHRvIGVuc3VyZSB0aGF0IAorCSAqIHRoZSB0YWJsZSBzaXplIGRlZmluaXRlbHkgaW5jcmVhc2VzLgorCSAqIEludGVybmFsIG1ldGhvZCwgc3RhdHVzIGFzc3VtZWQgdG8gYmUgYSBzdWNjZXNzLgorCSAqIEByZXR1cm4gdG90YWwgbnVtYmVyIG9mIGV4cGFuc2lvbnMgCisJICovCisJcHJpdmF0ZSBmaW5hbCBpbnQgaW5pdGlhbGl6ZVBhdHRlcm5DRVRhYmxlKCkKKwl7CisJICAgIG1fdXRpbENvbEVJdGVyXy5zZXRUZXh0KG1fcGF0dGVybl8udGFyZ2V0VGV4dCk7CisJICAgIAorCSAgICBpbnQgb2Zmc2V0ID0gMDsKKwkgICAgaW50IHJlc3VsdCA9IDA7CisJICAgIGludCBjZSA9IG1fdXRpbENvbEVJdGVyXy5uZXh0KCk7CisJCisJICAgIHdoaWxlIChjZSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisJICAgICAgICBpbnQgbmV3Y2UgPSBnZXRDRShjZSk7CisJICAgICAgICBpZiAobmV3Y2UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworCSAgICAgICAgICAgIG1fcGF0dGVybl8ubV9DRV8gPSBhcHBlbmQob2Zmc2V0LCBuZXdjZSwgbV9wYXR0ZXJuXy5tX0NFXyk7CisJICAgICAgICAgICAgb2Zmc2V0ICsrOwkgICAgICAgIAorCSAgICAgICAgfQorCSAgICAgICAgcmVzdWx0ICs9IG1fdXRpbENvbEVJdGVyXy5nZXRNYXhFeHBhbnNpb24oY2UpIC0gMTsKKwkgICAgICAgIGNlID0gbV91dGlsQ29sRUl0ZXJfLm5leHQoKTsKKwkgICAgfQorCQorCSAgICBtX3BhdHRlcm5fLm1fQ0VfID0gYXBwZW5kKG9mZnNldCwgMCwgbV9wYXR0ZXJuXy5tX0NFXyk7CisJICAgIG1fcGF0dGVybl8ubV9DRUxlbmd0aF8gPSBvZmZzZXQ7CisJCisJICAgIHJldHVybiByZXN1bHQ7CisJfQorCQorCS8qKgorCSAqIEluaXRpYWxpemVzIHRoZSBwYXR0ZXJuIHN0cnVjdC4KKwkgKiBJbnRlcm5hbCBtZXRob2QsIHN0YXR1cyBhc3N1bWVkIHRvIGJlIHN1Y2Nlc3MuCisJICogQHJldHVybiBleHBhbnNpb25zaXplIHRoZSB0b3RhbCBleHBhbnNpb24gc2l6ZSBvZiB0aGUgcGF0dGVybgorCSAqLyAKKwlwcml2YXRlIGZpbmFsIGludCBpbml0aWFsaXplUGF0dGVybigpCisJeworCSAgICBtX3BhdHRlcm5fLm1faGFzUHJlZml4QWNjZW50c18gPSAoZ2V0RkNEKG1fcGF0dGVybl8udGFyZ2V0VGV4dCwgMCkgCisJICAgIAkJCQkJCQkJCSA+PiBTRUNPTkRfTEFTVF9CWVRFX1NISUZUXykgIT0gMDsKKwkgICAgbV9wYXR0ZXJuXy5tX2hhc1N1ZmZpeEFjY2VudHNfID0gKGdldEZDRChtX3BhdHRlcm5fLnRhcmdldFRleHQsIAorCSAgICAJCQkJCQkJCQkJIG1fcGF0dGVybl8udGFyZ2V0VGV4dC5sZW5ndGgoKSAKKwkgICAgCQkJCQkJCQkJCSAtIDEpIAorCSAgICAJCQkJCQkJCQkmIExBU1RfQllURV9NQVNLXykgIT0gMDsKKwkgICAgLy8gc2luY2UgaW50aWFsaXplUGF0dGVybiBpcyBhbiBpbnRlcm5hbCBtZXRob2Qgc3RhdHVzIGlzIGEgc3VjY2Vzcy4KKwkgICAgcmV0dXJuIGluaXRpYWxpemVQYXR0ZXJuQ0VUYWJsZSgpOyAgIAorCX0KKwkKKwkvKioKKwkgKiBJbml0aWFsaXppbmcgc2hpZnQgdGFibGVzLCB3aXRoIHRoZSBkZWZhdWx0IHZhbHVlcy4KKwkgKiBJZiBhIGNvcnJlc3BvbmRpbmcgZGVmYXVsdCB2YWx1ZSBpcyAwLCB0aGUgc2hpZnQgdGFibGUgaXMgbm90IHNldC4KKwkgKiBAcGFyYW0gc2hpZnQgdGFibGUgZm9yIGZvcndhcmRzIHNoaWZ0IAorCSAqIEBwYXJhbSBiYWNrc2hpZnQgdGFibGUgZm9yIGJhY2t3YXJkcyBzaGlmdAorCSAqIEBwYXJhbSBjZXRhYmxlIHRhYmxlIGNvbnRhaW5pbmcgcGF0dGVybiBjZQorCSAqIEBwYXJhbSBjZXNpemUgc2l6ZSBvZiB0aGUgcGF0dGVybiBjZXMKKwkgKiBAcGFyYW0gZXhwYW5zaW9uc2l6ZSB0b3RhbCBzaXplIG9mIHRoZSBleHBhbnNpb25zCisJICogQHBhcmFtIGRlZmF1bHRmb3J3YXJkIHRoZSBkZWZhdWx0IGZvcndhcmQgdmFsdWUKKwkgKiBAcGFyYW0gZGVmYXVsdGJhY2t3YXJkIHRoZSBkZWZhdWx0IGJhY2t3YXJkIHZhbHVlCisJICovCisJIHByaXZhdGUgZmluYWwgdm9pZCBzZXRTaGlmdFRhYmxlKGNoYXIgc2hpZnRbXSwgCisJIAkJCQkJCQkJCQkJICAgY2hhciBiYWNrc2hpZnRbXSwgCisJCQkJCSAgICAgICAgICAgICAgICAgICAgICAgICAJICAgaW50IGNldGFibGVbXSwgaW50IGNlc2l6ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIAkJCQkJIAkgICBpbnQgZXhwYW5zaW9uc2l6ZSwKKwkJCQkJICAgICAgICAgICAgICAgICAgICAgICAgIAkgICBjaGFyIGRlZmF1bHRmb3J3YXJkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAJCQkJCSAJICAgY2hhciBkZWZhdWx0YmFja3dhcmQpCisJeworCSAgICAvLyBlc3RpbWF0ZSB0aGUgdmFsdWUgdG8gc2hpZnQuIHRvIGRvIHRoYXQgd2UgZXN0aW1hdGUgdGhlIHNtYWxsZXN0IAorCSAgICAvLyBudW1iZXIgb2YgY2hhcmFjdGVycyB0byBnaXZlIHRoZSByZWxldmFudCBjZXMsIGllIGFwcHJveGltYXRlbHkKKwkgICAgLy8gdGhlIG51bWJlciBvZiBjZXMgbWludXMgdGhlaXIgZXhwYW5zaW9uLCBzaW5jZSBleHBhbnNpb25zIGNhbiBjb21lIAorCSAgICAvLyBmcm9tIGEgY2hhcmFjdGVyLgorCSAgICBmb3IgKGludCBjb3VudCA9IDA7IGNvdW50IDwgTUFYX1RBQkxFX1NJWkVfOyBjb3VudCArKykgeworCSAgICAgICAgc2hpZnRbY291bnRdID0gZGVmYXVsdGZvcndhcmQ7CisJICAgIH0KKwkgICAgY2VzaXplIC0tOyAvLyBkb3duIHRvIHRoZSBsYXN0IGluZGV4CisJICAgIGZvciAoaW50IGNvdW50ID0gMDsgY291bnQgPCBjZXNpemU7IGNvdW50ICsrKSB7CisJICAgICAgICAvLyBudW1iZXIgb2YgY2VzIGZyb20gcmlnaHQgb2YgYXJyYXkgdG8gdGhlIGNvdW50CisJICAgICAgICBpbnQgdGVtcCA9IGRlZmF1bHRmb3J3YXJkIC0gY291bnQgLSAxOworCSAgICAgICAgc2hpZnRbaGFzaChjZXRhYmxlW2NvdW50XSldID0gdGVtcCA+IDEgPyAoKGNoYXIpdGVtcCkgOiAxOworCSAgICB9CisJICAgIHNoaWZ0W2hhc2goY2V0YWJsZVtjZXNpemVdKV0gPSAxOworCSAgICAvLyBmb3IgaWdub3JhYmxlcyB3ZSBqdXN0IHNoaWZ0IGJ5IG9uZS4gc2VlIHRlc3QgZXhhbXBsZXMuCisJICAgIHNoaWZ0W2hhc2goMCldID0gMTsKKwkgICAgCisJICAgIGZvciAoaW50IGNvdW50ID0gMDsgY291bnQgPCBNQVhfVEFCTEVfU0laRV87IGNvdW50ICsrKSB7CisJICAgICAgICBiYWNrc2hpZnRbY291bnRdID0gZGVmYXVsdGJhY2t3YXJkOworCSAgICB9CisJICAgIGZvciAoaW50IGNvdW50ID0gY2VzaXplOyBjb3VudCA+IDA7IGNvdW50IC0tKSB7CisJICAgICAgICAvLyB0aGUgb3JpZ2luYWwgdmFsdWUgY291bnQgZG9lcyBub3Qgc2VlbSB0byB3b3JrCisJICAgICAgICBiYWNrc2hpZnRbaGFzaChjZXRhYmxlW2NvdW50XSldID0gKGNoYXIpKGNvdW50ID4gZXhwYW5zaW9uc2l6ZSA/IAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAkJY291bnQgLSBleHBhbnNpb25zaXplIDogMSk7CisJICAgIH0KKwkgICAgYmFja3NoaWZ0W2hhc2goY2V0YWJsZVswXSldID0gMTsKKwkgICAgYmFja3NoaWZ0W2hhc2goMCldID0gMTsKKwl9CisJCisJLyoqCisJICogPHA+QnVpbGRpbmcgb2YgdGhlIHBhdHRlcm4gY29sbGF0aW9uIGVsZW1lbnQgbGlzdCBhbmQgdGhlIEJveWVyIE1vb3JlIAorCSAqIFN0cmluZ1NlYXJjaCB0YWJsZS48L3A+CisJICogPHA+VGhlIGNhbm9uaWNhbCBtYXRjaCB3aWxsIG9ubHkgYmUgcGVyZm9ybWVkIGFmdGVyIHRoZSBkZWZhdWx0IG1hdGNoIAorCSAqIGZhaWxzLjwvcD4KKwkgKiA8cD5Gb3IgYm90aCBjYXNlcyB3ZSBuZWVkIHRvIHJlbWVtYmVyIHRoZSBzaXplIG9mIHRoZSBjb21wb3NlZCBhbmQgCisJICogZGVjb21wb3NlZCB2ZXJzaW9ucyBvZiB0aGUgc3RyaW5nLiBTaW5jZSB0aGUgQm95ZXItTW9vcmUgc2hpZnQgCisJICogY2FsY3VsYXRpb25zIHNoaWZ0cyBieSBhIG51bWJlciBvZiBjaGFyYWN0ZXJzIGluIHRoZSB0ZXh0IGFuZCB0cmllcyB0byAKKwkgKiBtYXRjaCB0aGUgcGF0dGVybiBmcm9tIHRoYXQgb2Zmc2V0LCB0aGUgc2hpZnQgdmFsdWUgY2FuIG5vdCBiZSB0b28gbGFyZ2UgCisJICogaW4gY2FzZSB3ZSBtaXNzIHNvbWUgY2hhcmFjdGVycy4gVG8gY2hvb3NlIGEgcmlnaHQgc2hpZnQgc2l6ZSwgd2UgCisJICogZXN0aW1hdGUgdGhlIE5GQyBmb3JtIG9mIHRoZSBhbmQgdXNlIGl0cyBzaXplIGFzIGEgc2hpZnQgZ3VpZGUuIFRoZSBORkMgCisJICogZm9ybSBzaG91bGQgYmUgdGhlIHNtYWxsIHBvc3NpYmxlIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBwYXR0ZXJuLiBBbnl3YXlzLCAKKwkgKiB3ZSdsbCBlcnIgb24gdGhlIHNtYWxsZXIgc2hpZnQgc2l6ZS4gSGVuY2UgdGhlIGNhbGN1bGF0aW9uIGZvciAKKwkgKiBtaW5sZW5ndGguIENhbm9uaWNhbCBtYXRjaCB3aWxsIGJlIHBlcmZvcm1lZCBzbGlnaHRseSBkaWZmZXJlbnRseS4gV2UnbGwgCisJICogc3BsaXQgdGhlIHBhdHRlcm4gaW50byAzIHBhcnRzLCB0aGUgcHJlZml4IGFjY2VudHMgKFBBKSwgdGhlIG1pZGRsZSAKKwkgKiBzdHJpbmcgYm91bmRlZCBieSB0aGUgZmlyc3QgYW5kIGxhc3QgYmFzZSBjaGFyYWN0ZXIgKE1TKSwgdGhlIGVuZGluZyAKKwkgKiBhY2NlbnRzIChFQSkuIE1hdGNoZXMgd2lsbCBiZSBkb25lIG9uIE1TIGZpcnN0LCBhbmQgb25seSB3aGVuIHdlIG1hdGNoIAorCSAqIE1TIHRoZW4gc29tZSBwcm9jZXNzaW5nIHdpbGwgYmUgcmVxdWlyZWQgZm9yIHRoZSBwcmVmaXggYW5kIGVuZCBhY2NlbnRzIAorCSAqIGluIG9yZGVyIHRvIGRldGVybWluZSBpZiB0aGV5IG1hdGNoIFBBIGFuZCBFQS4gSGVuY2UgdGhlIGRlZmF1bHQgc2hpZnQgCisJICogdmFsdWVzIGZvciB0aGUgY2Fub25pY2FsIG1hdGNoIHdpbGwgdGFrZSB0aGUgc2l6ZSBvZiBlaXRoZXIgZW5kJ3MgYWNjZW50IAorCSAqIGludG8gY29uc2lkZXJhdGlvbi4gRm9yd2FyZHMgc2VhcmNoIHdpbGwgdGFrZSB0aGUgZW5kIGFjY2VudHMgaW50byAKKwkgKiBjb25zaWRlcmF0aW9uIGZvciB0aGUgZGVmYXVsdCBzaGlmdCB2YWx1ZXMgYW5kIHRoZSBiYWNrd2FyZHMgc2VhcmNoIHdpbGwgCisJICogdGFrZSB0aGUgcHJlZml4IGFjY2VudHMgaW50byBjb25zaWRlcmF0aW9uLjwvcD4KKwkgKiA8cD5JZiBwYXR0ZXJuIGhhcyBubyBub24taWdub3JhYmxlIGNlLCB3ZSByZXR1cm4gYSBpbGxlZ2FsIGFyZ3VtZW50IAorCSAqIGVycm9yLjwvcD4KKwkgKi8gCisJcHJpdmF0ZSBmaW5hbCB2b2lkIGluaXRpYWxpemUoKQorCXsKKwkgICAgaW50IGV4cGFuZGxlbmd0aCAgPSBpbml0aWFsaXplUGF0dGVybigpOyAgIAorCSAgICBpZiAobV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXyA+IDApIHsKKwkgICAgICAgIGNoYXIgbWlubGVuZ3RoID0gKGNoYXIpKG1fcGF0dGVybl8ubV9DRUxlbmd0aF8gPiBleHBhbmRsZW5ndGggCisJICAgICAgICAJCQkJCT8gbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXyAtIGV4cGFuZGxlbmd0aCA6IDEpOworCSAgICAgICAgbV9wYXR0ZXJuXy5tX2RlZmF1bHRTaGlmdFNpemVfID0gbWlubGVuZ3RoOworICAgICAgICAgICAgc2V0U2hpZnRUYWJsZShtX3BhdHRlcm5fLm1fc2hpZnRfLCBtX3BhdHRlcm5fLm1fYmFja1NoaWZ0XywgCisJICAgICAgICAJCQkgIG1fcGF0dGVybl8ubV9DRV8sIG1fcGF0dGVybl8ubV9DRUxlbmd0aF8sIAorCSAgICAgICAgCQkJICBleHBhbmRsZW5ndGgsIG1pbmxlbmd0aCwgbWlubGVuZ3RoKTsKKwkgICAgfQorCSAgICBlbHNlIHsKKwkgICAgCW1fcGF0dGVybl8ubV9kZWZhdWx0U2hpZnRTaXplXyA9IDA7CisJICAgIH0KKwl9CisJCisJLyoqCisJICogRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIHNlYXJjaCB0ZXh0IGJvdW5kZWQgYnkgdGhlIG9mZnNldCBzdGFydCBhbmQgZW5kIGlzIAorCSAqIG9uZSBvciBtb3JlIHdob2xlIHVuaXRzIG9mIHRleHQgYXMgZGV0ZXJtaW5lZCBieSB0aGUgYnJlYWtpdGVyYXRvciBpbiAKKwkgKiBTdHJpbmdTZWFyY2guCisJICogQHBhcmFtIHN0YXJ0IHRhcmdldCB0ZXh0IHN0YXJ0IG9mZnNldAorCSAqIEBwYXJhbSBlbmQgdGFyZ2V0IHRleHQgZW5kIG9mZnNldAorCSAqLworCXByaXZhdGUgZmluYWwgYm9vbGVhbiBpc0JyZWFrVW5pdChpbnQgc3RhcnQsIGludCBlbmQpIAorCXsKKwkgICAgaWYgKGJyZWFrSXRlcmF0b3IgIT0gbnVsbCkgeworCSAgICAgICAgaW50IHN0YXJ0aW5kZXggPSBicmVha0l0ZXJhdG9yLmZpcnN0KCk7CisJICAgICAgICBpbnQgZW5kaW5kZXggICA9IGJyZWFrSXRlcmF0b3IubGFzdCgpOworCSAgICAgICAgCisJICAgICAgICAvLyBvdXQtb2YtcmFuZ2UgaW5kZXhlcyBhcmUgbmV2ZXIgYm91bmRhcnkgcG9zaXRpb25zCisJICAgICAgICBpZiAoc3RhcnQgPCBzdGFydGluZGV4IHx8IHN0YXJ0ID4gZW5kaW5kZXggfHwgZW5kIDwgc3RhcnRpbmRleCAKKwkgICAgICAgIAl8fCBlbmQgPiBlbmRpbmRleCkgeworCSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKwkgICAgICAgIH0KKwkgICAgICAgIC8vIG90aGVyd2lzZSwgd2UgY2FuIHVzZSBmb2xsb3dpbmcoKSBvbiB0aGUgcG9zaXRpb24gYmVmb3JlIHRoZSAKKwkgICAgICAgIC8vIHNwZWNpZmllZCBvbmUgYW5kIHJldHVybiB0cnVlIG9mIHRoZSBwb3NpdGlvbiB3ZSBnZXQgYmFjayBpcyB0aGUgCisJICAgICAgICAvLyBvbmUgdGhlIHVzZXIgc3BlY2lmaWVkCisJICAgICAgICBib29sZWFuIHJlc3VsdCA9IChzdGFydCA9PSBzdGFydGluZGV4IAorCSAgICAgICAgCQkJCSAgfHwgYnJlYWtJdGVyYXRvci5mb2xsb3dpbmcoc3RhcnQgLSAxKSA9PSBzdGFydCkgCisJICAgICAgICAJCQkJICYmIChlbmQgPT0gZW5kaW5kZXggCisJICAgICAgICAJCQkJIAkgfHwgYnJlYWtJdGVyYXRvci5mb2xsb3dpbmcoZW5kIC0gMSkgPT0gZW5kKTsKKwkgICAgICAgIGlmIChyZXN1bHQpIHsKKwkgICAgICAgICAgICAvLyBpdGVyYXRlcyB0aGUgaW5kaXZpZHVhbCBjZXMKKwkgICAgICAgICAgICBtX3V0aWxDb2xFSXRlcl8uc2V0VGV4dCh0YXJnZXRUZXh0LCBzdGFydCk7CisJICAgICAgICAgICAgZm9yIChpbnQgY291bnQgPSAwOyBjb3VudCA8IG1fcGF0dGVybl8ubV9DRUxlbmd0aF87CisJICAgICAgICAgICAgICAgICBjb3VudCArKykgeworICAgICAgICAgICAgICAgICAgICBpbnQgY2UgPSBnZXRDRShtX3V0aWxDb2xFSXRlcl8ubmV4dCgpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50IC0tOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKwkgICAgICAgICAgICAgICAgaWYgKGNlICE9IG1fcGF0dGVybl8ubV9DRV9bY291bnRdKSB7CisJICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisJICAgICAgICAgICAgICAgIH0KKwkgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaW50IG5leHRjZSA9IG1fdXRpbENvbEVJdGVyXy5uZXh0KCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKG1fdXRpbENvbEVJdGVyXy5nZXRPZmZzZXQoKSA9PSBlbmQgCisgICAgICAgICAgICAgICAgICAgICAgICYmIGdldENFKG5leHRjZSkgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworICAgICAgICAgICAgICAgICAgICBuZXh0Y2UgPSBtX3V0aWxDb2xFSXRlcl8ubmV4dCgpOyAgICAgICAKKyAgICAgICAgICAgICAgICB9CisJICAgICAgICAgICAgaWYgKG5leHRjZSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSIAorCSAgICAgICAgICAgIAkmJiBtX3V0aWxDb2xFSXRlcl8uZ2V0T2Zmc2V0KCkgPT0gZW5kKSB7CisJICAgICAgICAgICAgICAgIC8vIGV4dHJhIGNvbGxhdGlvbiBlbGVtZW50cyBhdCB0aGUgZW5kIG9mIHRoZSBtYXRjaAorCSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisJICAgICAgICAgICAgfQorCSAgICAgICAgfQorCSAgICAgICAgcmV0dXJuIHJlc3VsdDsKKwkgICAgfQorCSAgICByZXR1cm4gdHJ1ZTsKKwl9CisJCisJLyoqCisJICogR2V0dGluZyB0aGUgbmV4dCBiYXNlIGNoYXJhY3RlciBvZmZzZXQgaWYgY3VycmVudCBvZmZzZXQgaXMgYW4gYWNjZW50LCAKKwkgKiBvciB0aGUgY3VycmVudCBvZmZzZXQgaWYgdGhlIGN1cnJlbnQgY2hhcmFjdGVyIGNvbnRhaW5zIGEgYmFzZSBjaGFyYWN0ZXIuIAorCSAqIGFjY2VudHMgdGhlIGZvbGxvd2luZyBiYXNlIGNoYXJhY3RlciB3aWxsIGJlIHJldHVybmVkCisJICogQHBhcmFtIHRleHQgc3RyaW5nCisJICogQHBhcmFtIHRleHRvZmZzZXQgY3VycmVudCBvZmZzZXQKKwkgKiBAcGFyYW0gdGV4dGxlbmd0aCBsZW5ndGggb2YgdGV4dCBzdHJpbmcKKwkgKiBAcmV0dXJuIHRoZSBuZXh0IGJhc2UgY2hhcmFjdGVyIG9yIHRoZSBjdXJyZW50IG9mZnNldAorCSAqICAgICAgICAgaWYgdGhlIGN1cnJlbnQgY2hhcmFjdGVyIGlzIGNvbnRhaW5zIGEgYmFzZSBjaGFyYWN0ZXIuCisJICovCisJcHJpdmF0ZSBmaW5hbCBpbnQgZ2V0TmV4dEJhc2VPZmZzZXQoQ2hhcmFjdGVySXRlcmF0b3IgdGV4dCwgCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAkJIGludCB0ZXh0b2Zmc2V0KQorCXsKKwkgICAgaWYgKHRleHRvZmZzZXQgPCB0ZXh0LmdldEVuZEluZGV4KCkpIHsKKwkgICAgICAgIHdoaWxlICh0ZXh0LmdldEluZGV4KCkgPCB0ZXh0LmdldEVuZEluZGV4KCkpIHsgCisJICAgICAgICAgICAgaW50IHJlc3VsdCA9IHRleHRvZmZzZXQ7CisJICAgICAgICAgICAgaWYgKChnZXRGQ0QodGV4dCwgdGV4dG9mZnNldCArKykgCisJICAgICAgICAgICAgICAgIAkJPj4gU0VDT05EX0xBU1RfQllURV9TSElGVF8pID09IDApIHsKKwkgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisJICAgICAgICAgICAgfQorCSAgICAgICAgfQorCSAgICAgICAgcmV0dXJuIHRleHQuZ2V0RW5kSW5kZXgoKTsKKwkgICAgfQorCSAgICByZXR1cm4gdGV4dG9mZnNldDsKKwl9CisJCisJLyoqCisJICogR2V0cyB0aGUgbmV4dCBiYXNlIGNoYXJhY3RlciBvZmZzZXQgZGVwZW5kaW5nIG9uIHRoZSBzdHJpbmcgc2VhcmNoIAorCSAqIHBhdHRlcm4gZGF0YQorCSAqIEBwYXJhbSB0ZXh0b2Zmc2V0IG9uZSBvZmZzZXQgYXdheSBmcm9tIHRoZSBsYXN0IGNoYXJhY3RlcgorCSAqICAgICAgICAgICAgICAgICAgIHRvIHNlYXJjaCBmb3IuCisJICogQHJldHVybiBzdGFydCBpbmRleCBvZiB0aGUgbmV4dCBiYXNlIGNoYXJhY3RlciBvciB0aGUgY3VycmVudCBvZmZzZXQKKwkgKiAgICAgICAgIGlmIHRoZSBjdXJyZW50IGNoYXJhY3RlciBpcyBjb250YWlucyBhIGJhc2UgY2hhcmFjdGVyLgorCSAqLworCXByaXZhdGUgZmluYWwgaW50IGdldE5leHRCYXNlT2Zmc2V0KGludCB0ZXh0b2Zmc2V0KQorCXsKKwkgICAgaWYgKG1fcGF0dGVybl8ubV9oYXNTdWZmaXhBY2NlbnRzXyAKKwkgICAgCSYmIHRleHRvZmZzZXQgPCBtX3RleHRMaW1pdE9mZnNldF8pIHsKKyAgICAgICAgICAgIHRhcmdldFRleHQuc2V0SW5kZXgodGV4dG9mZnNldCk7CisgICAgICAgICAgICB0YXJnZXRUZXh0LnByZXZpb3VzKCk7CisgICAgICAgICAgICBpZiAoKGdldEZDRCh0YXJnZXRUZXh0LCB0YXJnZXRUZXh0LmdldEluZGV4KCkpICYgTEFTVF9CWVRFX01BU0tfKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGdldE5leHRCYXNlT2Zmc2V0KHRhcmdldFRleHQsIHRleHRvZmZzZXQpOworICAgICAgICAgICAgfQorCSAgICB9CisJICAgIHJldHVybiB0ZXh0b2Zmc2V0OworCX0KKwkKKwkvKioKKwkgKiBTaGlmdGluZyB0aGUgY29sbGF0aW9uIGVsZW1lbnQgaXRlcmF0b3IgcG9zaXRpb24gZm9yd2FyZCB0byBwcmVwYXJlIGZvcgorCSAqIGEgZm9sbG93aW5nIG1hdGNoLiBJZiB0aGUgbGFzdCBjaGFyYWN0ZXIgaXMgYSB1bnNhZmUgY2hhcmFjdGVyLCB3ZSdsbCAKKwkgKiBvbmx5IHNoaWZ0IGJ5IDEgdG8gY2FwdHVyZSBjb250cmFjdGlvbnMsIG5vcm1hbGl6YXRpb24gZXRjLgorCSAqIEludGVybmFsIG1ldGhvZCwgc3RhdHVzIGFzc3VtZWQgdG8gYmUgc3VjY2Vzcy4KKwkgKiBAcGFyYW0gdGV4dG9mZnNldCBzdGFydCB0ZXh0IHBvc2l0aW9uIHRvIGRvIHNlYXJjaAorCSAqIEBwYXJhbSBjZSB0aGUgdGV4dCBjZSB3aGljaCBmYWlsZWQgdGhlIG1hdGNoLgorCSAqIEBwYXJhbSBwYXR0ZXJuY2VpbmRleCBpbmRleCBvZiB0aGUgY2Ugd2l0aGluIHRoZSBwYXR0ZXJuIGNlIGJ1ZmZlciB3aGljaAorCSAqICAgICAgICBmYWlsZWQgdGhlIG1hdGNoCisJICogQHJldHVybiBmaW5hbCBvZmZzZXQKKwkgKi8KKwlwcml2YXRlIGludCBzaGlmdEZvcndhcmQoaW50IHRleHRvZmZzZXQsIGludCBjZSwgaW50IHBhdHRlcm5jZWluZGV4KQorCQkJCQkJCQkJCisJeworCSAgICBpZiAoaXNPdmVybGFwcGluZygpKSB7CisJICAgICAgICBpZiAodGV4dG9mZnNldCA+IG1fdGV4dEJlZ2luT2Zmc2V0XykgeworCSAgICAgICAgICAgIHRleHRvZmZzZXQgKys7CisJICAgICAgICB9CisJICAgICAgICBlbHNlIHsKKwkgICAgICAgICAgICB0ZXh0b2Zmc2V0ID0gbV9wYXR0ZXJuXy5tX2RlZmF1bHRTaGlmdFNpemVfOworCSAgICAgICAgfQorCSAgICB9CisJICAgIGVsc2UgeworCSAgICAgICAgaWYgKGNlICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKwkgICAgICAgICAgICBpbnQgc2hpZnQgPSBtX3BhdHRlcm5fLm1fc2hpZnRfW2hhc2goY2UpXTsKKwkgICAgICAgICAgICAvLyB0aGlzIGlzIHRvIGFkanVzdCBmb3IgY2hhcmFjdGVycyBpbiB0aGUgbWlkZGxlIG9mIHRoZSAKKwkgICAgICAgICAgICAvLyBzdWJzdHJpbmcgZm9yIG1hdGNoaW5nIHRoYXQgZmFpbGVkLgorCSAgICAgICAgICAgIGludCBhZGp1c3QgPSBtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfIC0gcGF0dGVybmNlaW5kZXg7CisJICAgICAgICAgICAgaWYgKGFkanVzdCA+IDEgJiYgc2hpZnQgPj0gYWRqdXN0KSB7CisJICAgICAgICAgICAgICAgIHNoaWZ0IC09IGFkanVzdCAtIDE7CisJICAgICAgICAgICAgfQorCSAgICAgICAgICAgIHRleHRvZmZzZXQgKz0gc2hpZnQ7CisJICAgICAgICB9CisJICAgICAgICBlbHNlIHsKKwkgICAgICAgICAgICB0ZXh0b2Zmc2V0ICs9IG1fcGF0dGVybl8ubV9kZWZhdWx0U2hpZnRTaXplXzsKKwkgICAgICAgIH0KKwkgICAgfQorCSAgICAgCisgICAgICAgIHRleHRvZmZzZXQgPSBnZXROZXh0QmFzZU9mZnNldCh0ZXh0b2Zmc2V0KTsKKwkgICAgLy8gY2hlY2sgZm9yIHVuc2FmZSBjaGFyYWN0ZXJzCisJICAgIC8vICogaWYgaXQgaXMgdGhlIHN0YXJ0IG9yIG1pZGRsZSBvZiBhIGNvbnRyYWN0aW9uOiB0byBiZSBkb25lIGFmdGVyIAorCSAgICAvLyAgIGEgaW5pdGlhbCBtYXRjaCBpcyBmb3VuZAorCSAgICAvLyAqIHRoYWkgb3IgbGFvIGJhc2UgY29uc29uYW50IGNoYXJhY3Rlcjogc2ltaWxhciB0byBjb250cmFjdGlvbgorCSAgICAvLyAqIGhpZ2ggc3Vycm9nYXRlIGNoYXJhY3Rlcjogc2ltaWxhciB0byBjb250cmFjdGlvbgorCSAgICAvLyAqIG5leHQgY2hhcmFjdGVyIGlzIGEgYWNjZW50OiBzaGlmdCB0byB0aGUgbmV4dCBiYXNlIGNoYXJhY3RlcgorCSAgICByZXR1cm4gdGV4dG9mZnNldDsKKwl9CisJCisJLyoqCisJICogR2V0cyB0aGUgb2Zmc2V0IHRvIHRoZSBuZXh0IHNhZmUgcG9pbnQgaW4gdGV4dC4KKwkgKiBpZS4gbm90IHRoZSBtaWRkbGUgb2YgYSBjb250cmFjdGlvbiwgc3dhcHBhYmxlIGNoYXJhY3RlcnMgb3IgCisJICogc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzLgorCSAqIEBwYXJhbSB0ZXh0b2Zmc2V0IG9mZnNldCBpbiBzdHJpbmcKKwkgKiBAcGFyYW0gZW5kIG9mZnNldCBpbiBzdHJpbmcKKwkgKiBAcmV0dXJuIG9mZnNldCB0byB0aGUgbmV4dCBzYWZlIGNoYXJhY3RlcgorCSAqLworCXByaXZhdGUgZmluYWwgaW50IGdldE5leHRTYWZlT2Zmc2V0KGludCB0ZXh0b2Zmc2V0LCBpbnQgZW5kKQorCXsKKwkgICAgaW50IHJlc3VsdCA9IHRleHRvZmZzZXQ7IC8vIGZpcnN0IGNvbnRyYWN0aW9uIGNoYXJhY3RlcgorCSAgICB0YXJnZXRUZXh0LnNldEluZGV4KHJlc3VsdCk7CisJICAgIHdoaWxlIChyZXN1bHQgIT0gZW5kICYmIAorCSAgICAJbV9jb2xsYXRvcl8uaXNVbnNhZmUodGFyZ2V0VGV4dC5jdXJyZW50KCkpKSB7CisJICAgICAgIAlyZXN1bHQgKys7CisJICAgICAgIAl0YXJnZXRUZXh0LnNldEluZGV4KHJlc3VsdCk7CisJICAgIH0KKwkgICAgcmV0dXJuIHJlc3VsdDsgCisJfQorCQorCS8qKiAKKwkgKiBUaGlzIGNoZWNrcyBmb3IgYWNjZW50cyBpbiB0aGUgcG90ZW50aWFsIG1hdGNoIHN0YXJ0ZWQgd2l0aCBhIGNvbXBvc2l0ZSAKKwkgKiBjaGFyYWN0ZXIuCisJICogVGhpcyBpcyByZWFsbHkgcGFpbmZ1bC4uLiB3ZSBoYXZlIHRvIGNoZWNrIHRoYXQgY29tcG9zaXRlIGNoYXJhY3RlciBkbyAKKwkgKiBub3QgaGF2ZSBhbnkgZXh0cmEgYWNjZW50cy4gV2UgaGF2ZSB0byBub3JtYWxpemUgdGhlIHBvdGVudGlhbCBtYXRjaCBhbmQgCisJICogZmluZCB0aGUgaW1tZWRpYXRlIGRlY29tcG9zZWQgY2hhcmFjdGVyIGJlZm9yZSB0aGUgbWF0Y2guCisJICogVGhlIGZpcnN0IGNvbXBvc2l0ZSBjaGFyYWN0ZXIgd291bGQgaGF2ZSBiZWVuIHRha2VuIGNhcmUgb2YgYnkgdGhlIGZjZCAKKwkgKiBjaGVja3MgaW4gY2hlY2tGb3J3YXJkRXhhY3RNYXRjaC4KKwkgKiBUaGlzIGlzIHRoZSBzbG93IHBhdGggYWZ0ZXIgdGhlIGZjZCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGFuZCAKKwkgKiB0aGUgbGFzdCBjaGFyYWN0ZXIgaGFzIGJlZW4gY2hlY2tlZCBieSBjaGVja0ZvcndhcmRFeGFjdE1hdGNoIGFuZCB3ZSAKKwkgKiBkZXRlcm1pbmUgdGhhdCB0aGUgcG90ZW50aWFsIG1hdGNoIGhhcyBleHRyYSBub24taWdub3JhYmxlIHByZWNlZGluZworCSAqIGNlcy4KKwkgKiBFLmcuIGxvb2tpbmcgZm9yIFx1MDMwMSBhY3V0ZSBpbiBcdTAxRkEgQSByaW5nIGFib3ZlIGFuZCBhY3V0ZSwgCisJICogY2hlY2tFeHRyYU1hdGNoQWNjZW50IHNob3VsZCBmYWlsIHNpbmNlIHRoZXJlIGlzIGEgbWlkZGxlIHJpbmcgaW4gCisJICogXHUwMUZBIE5vdGUgaGVyZSB0aGF0IGFjY2VudHMgY2hlY2tpbmcgYXJlIHNsb3cgYW5kIGNhdXRpb25lZCBpbiB0aGUgQVBJIAorCSAqIGRvY3MuCisJICogSW50ZXJuYWwgbWV0aG9kLCBzdGF0dXMgYXNzdW1lZCB0byBiZSBhIHN1Y2Nlc3MsIGNhbGxlciBzaG91bGQgY2hlY2sgCisJICogc3RhdHVzIGJlZm9yZSBjYWxsaW5nIHRoaXMgbWV0aG9kCisJICogQHBhcmFtIHN0YXJ0IGluZGV4IG9mIHRoZSBwb3RlbnRpYWwgdW5mcmllbmRseSBjb21wb3NpdGUgY2hhcmFjdGVyCisJICogQHBhcmFtIGVuZCBpbmRleCBvZiB0aGUgcG90ZW50aWFsIHVuZnJpZW5kbHkgY29tcG9zaXRlIGNoYXJhY3RlcgorCSAqIEByZXR1cm4gdHJ1ZSBpZiB0aGVyZSBpcyBub24taWdub3JhYmxlIGFjY2VudHMgYmVmb3JlIGF0IHRoZSBiZWdpbm5pbmcKKwkgKiAgICAgICAgICAgICAgb2YgdGhlIG1hdGNoLCBmYWxzZSBvdGhlcndpc2UuCisJICovCisJcHJpdmF0ZSBmaW5hbCBib29sZWFuIGNoZWNrRXh0cmFNYXRjaEFjY2VudHMoaW50IHN0YXJ0LCBpbnQgZW5kKQorCXsKKwkgICAgYm9vbGVhbiByZXN1bHQgPSBmYWxzZTsKKwkgICAgaWYgKG1fcGF0dGVybl8ubV9oYXNQcmVmaXhBY2NlbnRzXykgeworCSAgICAgICAgdGFyZ2V0VGV4dC5zZXRJbmRleChzdGFydCk7CisJICAgICAgICAKKwkgICAgICAgIGlmIChVVEYxNi5pc0xlYWRTdXJyb2dhdGUodGFyZ2V0VGV4dC5uZXh0KCkpKSB7CisJICAgICAgICAJaWYgKCFVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHRhcmdldFRleHQubmV4dCgpKSkgeworCSAgICAgICAgCQl0YXJnZXRUZXh0LnByZXZpb3VzKCk7CisJICAgICAgICAJfQorCSAgICAgICAgfQorCSAgICAgICAgLy8gd2UgYXJlIG9ubHkgY29uY2VybmVkIHdpdGggdGhlIGZpcnN0IGNvbXBvc2l0ZSBjaGFyYWN0ZXIKKwkgICAgICAgIFN0cmluZyBzdHIgPSBnZXRTdHJpbmcodGFyZ2V0VGV4dCwgc3RhcnQsIGVuZCk7CisJICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKHN0ciwgTm9ybWFsaXplci5ORkQpIAorCSAgICAgICAgCQkJCQkJCQkJCT09IE5vcm1hbGl6ZXIuTk8pIHsKKwkgICAgICAgICAgICBpbnQgc2FmZW9mZnNldCA9IGdldE5leHRTYWZlT2Zmc2V0KHN0YXJ0LCBlbmQpOworCSAgICAgICAgICAgIGlmIChzYWZlb2Zmc2V0ICE9IGVuZCkgeworCSAgICAgICAgICAgICAgICBzYWZlb2Zmc2V0ICsrOworCSAgICAgICAgICAgIH0KKwkgICAgICAgICAgICBTdHJpbmcgZGVjb21wID0gTm9ybWFsaXplci5kZWNvbXBvc2UoCisJICAgICAgICAgICAgCQkJCXN0ci5zdWJzdHJpbmcoMCwgc2FmZW9mZnNldCAtIHN0YXJ0KSwgZmFsc2UpOworCSAgICAgICAgICAgIG1fdXRpbENvbEVJdGVyXy5zZXRUZXh0KGRlY29tcCk7CisJICAgICAgICAgICAgaW50IGZpcnN0Y2UgPSBtX3BhdHRlcm5fLm1fQ0VfWzBdOworCSAgICAgICAgICAgIGJvb2xlYW4gaWdub3JhYmxlID0gdHJ1ZTsKKwkgICAgICAgICAgICBpbnQgY2UgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFOworCSAgICAgICAgICAgIGludCBvZmZzZXQgPSAwOworCSAgICAgICAgICAgIHdoaWxlIChjZSAhPSBmaXJzdGNlKSB7CisJICAgICAgICAgICAgCW9mZnNldCA9IG1fdXRpbENvbEVJdGVyXy5nZXRPZmZzZXQoKTsKKwkgICAgICAgICAgICAgICAgaWYgKGNlICE9IGZpcnN0Y2UgCisJICAgICAgICAgICAgICAgIAkmJiBjZSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisJICAgICAgICAgICAgICAgICAgICBpZ25vcmFibGUgPSBmYWxzZTsKKwkgICAgICAgICAgICAgICAgfQorCSAgICAgICAgICAgICAgICBjZSA9IG1fdXRpbENvbEVJdGVyXy5uZXh0KCk7CisJICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1fdXRpbENvbEVJdGVyXy5zZXRFeGFjdE9mZnNldChvZmZzZXQpOyAvLyBiYWNrIHVwIDEgdG8gdGhlIAorICAgICAgICAgICAgICAgIG1fdXRpbENvbEVJdGVyXy5wcmV2aW91cygpOyAgICAgICAgICAgICAvLyByaWdodCBvZmZzZXQKKyAgICAgICAgICAgICAgICBvZmZzZXQgPSBtX3V0aWxDb2xFSXRlcl8uZ2V0T2Zmc2V0KCk7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gIWlnbm9yYWJsZSAmJiAoVUNoYXJhY3Rlci5nZXRDb21iaW5pbmdDbGFzcygKKwkgICAgICAgICAgICAJCQkJCQkJVVRGMTYuY2hhckF0KGRlY29tcCwgb2Zmc2V0KSkgIT0gMCk7CisJICAgICAgICB9CisJICAgIH0KKwkKKwkgICAgcmV0dXJuIHJlc3VsdDsKKwl9CisJCisJLyoqCisJKiBVc2VkIGJ5IGV4YWN0IG1hdGNoZXMsIGNoZWNrcyBpZiB0aGVyZSBhcmUgYWNjZW50cyBiZWZvcmUgdGhlIG1hdGNoLiAKKwkqIFRoaXMgaXMgcmVhbGx5IHBhaW5mdWwuLi4gd2UgaGF2ZSB0byBjaGVjayB0aGF0IGNvbXBvc2l0ZSBjaGFyYWN0ZXJzIGF0CisJKiB0aGUgc3RhcnQgb2YgdGhlIG1hdGNoZXMgaGF2ZSB0byBub3QgaGF2ZSBhbnkgZXh0cmEgYWNjZW50cy4gCisJKiBXZSBjaGVjayB0aGUgRkNEIG9mIHRoZSBjaGFyYWN0ZXIgZmlyc3QsIGlmIGl0IHN0YXJ0cyB3aXRoIGFuIGFjY2VudCBhbmQgCisJKiB0aGUgZmlyc3QgcGF0dGVybiBjZSBkb2VzIG5vdCBtYXRjaCB0aGUgZmlyc3QgY2Ugb2YgdGhlIGNoYXJhY3Rlciwgd2UgCisJKiBiYWlsLgorCSogT3RoZXJ3aXNlIHdlIHRyeSBub3JtYWxpemluZyB0aGUgZmlyc3QgY29tcG9zaXRlIAorCSogY2hhcmFjdGVyIGFuZCBmaW5kIHRoZSBpbW1lZGlhdGUgZGVjb21wb3NlZCBjaGFyYWN0ZXIgYmVmb3JlIHRoZSBtYXRjaCB0byAKKwkqIHNlZSBpZiBpdCBpcyBhbiBub24taWdub3JhYmxlIGFjY2VudC4KKwkqIE5vdyBub3JtYWxpemluZyB0aGUgZmlyc3QgY29tcG9zaXRlIGNoYXJhY3RlciBpcyBlbm91Z2ggYmVjYXVzZSB3ZSBlbnN1cmUgCisJKiB0aGF0IHdoZW4gdGhlIG1hdGNoIGlzIHBhc3NlZCBpbiBoZXJlIHdpdGggZXh0cmEgYmVnaW5uaW5nIGNlcywgdGhlIAorCSogZmlyc3Qgb3IgbGFzdCBjZSB0aGF0IG1hdGNoIGhhcyB0byBvY2N1ciB3aXRoaW4gdGhlIGZpcnN0IGNoYXJhY3Rlci4KKwkqIEUuZy4gbG9va2luZyBmb3IgXHUwMzAxIGFjdXRlIGluIFx1MDFGQSBBIHJpbmcgYWJvdmUgYW5kIGFjdXRlLCAKKwkqIGNoZWNrRXh0cmFNYXRjaEFjY2VudCBzaG91bGQgZmFpbCBzaW5jZSB0aGVyZSBpcyBhIG1pZGRsZSByaW5nIGluIFx1MDFGQQorCSogTm90ZSBoZXJlIHRoYXQgYWNjZW50cyBjaGVja2luZyBhcmUgc2xvdyBhbmQgY2F1dGlvbmVkIGluIHRoZSBBUEkgZG9jcy4KKwkqIEBwYXJhbSBzdGFydCBvZmZzZXQgCisJKiBAcGFyYW0gZW5kIG9mZnNldAorCSogQHJldHVybiB0cnVlIGlmIHRoZXJlIGFyZSBhY2NlbnRzIG9uIGVpdGhlciBzaWRlIG9mIHRoZSBtYXRjaCwgCisJKiAgICAgICAgIGZhbHNlIG90aGVyd2lzZQorCSovCisJcHJpdmF0ZSBmaW5hbCBib29sZWFuIGhhc0FjY2VudHNCZWZvcmVNYXRjaChpbnQgc3RhcnQsIGludCBlbmQpIAorCXsKKwkgICAgaWYgKG1fcGF0dGVybl8ubV9oYXNQcmVmaXhBY2NlbnRzXykgeworCSAgICAgICAgLy8gd2UgaGF2ZSBiZWVuIGl0ZXJhdGluZyBmb3J3YXJkcyBwcmV2aW91c2x5CisJICAgICAgICBib29sZWFuIGlnbm9yYWJsZSA9IHRydWU7CisJICAgICAgICBpbnQgZmlyc3RjZSA9IG1fcGF0dGVybl8ubV9DRV9bMF07CisJCQltX2NvbEVJdGVyXy5zZXRFeGFjdE9mZnNldChzdGFydCk7CisJICAgICAgICBpbnQgY2UgID0gZ2V0Q0UobV9jb2xFSXRlcl8ubmV4dCgpKTsKKwkgICAgICAgIHdoaWxlIChjZSAhPSBmaXJzdGNlKSB7CisJICAgICAgICAgICAgaWYgKGNlICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKwkgICAgICAgICAgICAgICAgaWdub3JhYmxlID0gZmFsc2U7CisJICAgICAgICAgICAgfQorCSAgICAgICAgICAgIGNlID0gZ2V0Q0UobV9jb2xFSXRlcl8ubmV4dCgpKTsKKwkgICAgICAgIH0KKwkgICAgICAgIGlmICghaWdub3JhYmxlICYmIG1fY29sRUl0ZXJfLmlzSW5CdWZmZXIoKSkgeworCSAgICAgICAgICAgIC8vIHdpdGhpbiBub3JtYWxpemF0aW9uIGJ1ZmZlciwgZGlzY29udGlndW91cyBoYW5kbGVkIGhlcmUKKwkgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKwkgICAgICAgIH0KKwkKKwkgICAgICAgIC8vIHdpdGhpbiB0ZXh0CisJICAgICAgICBib29sZWFuIGFjY2VudCA9IChnZXRGQ0QodGFyZ2V0VGV4dCwgc3RhcnQpID4+IFNFQ09ORF9MQVNUX0JZVEVfU0hJRlRfKQorCSAgICAgICAgCQkJCQkJCQkJCQkhPSAwOyAKKwkgICAgICAgIGlmICghYWNjZW50KSB7CisJICAgICAgICAgICAgcmV0dXJuIGNoZWNrRXh0cmFNYXRjaEFjY2VudHMoc3RhcnQsIGVuZCk7CisJICAgICAgICB9CisJICAgICAgICBpZiAoIWlnbm9yYWJsZSkgeworCSAgICAgICAgICAgIHJldHVybiB0cnVlOworCSAgICAgICAgfQorCSAgICAgICAgaWYgKHN0YXJ0ID4gbV90ZXh0QmVnaW5PZmZzZXRfKSB7CisJICAgICAgICAJdGFyZ2V0VGV4dC5zZXRJbmRleChzdGFydCk7CisJICAgICAgICAJdGFyZ2V0VGV4dC5wcmV2aW91cygpOworCSAgICAgICAgICAgIGlmICgoZ2V0RkNEKHRhcmdldFRleHQsIHRhcmdldFRleHQuZ2V0SW5kZXgoKSkgJiBMQVNUX0JZVEVfTUFTS18pIAorCSAgICAgICAgICAgIAkJCQkJCQkJCQkJCQkJIT0gMCkgeworCSAgICAgICAgICAgICAgICBtX2NvbEVJdGVyXy5zZXRFeGFjdE9mZnNldChzdGFydCk7CisJICAgICAgICAgICAgICAgIGNlID0gbV9jb2xFSXRlcl8ucHJldmlvdXMoKTsKKwkgICAgICAgICAgICAgICAgaWYgKGNlICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIgCisJICAgICAgICAgICAgICAgIAkmJiBjZSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisJICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKwkgICAgICAgICAgICAgICAgfQorCSAgICAgICAgICAgIH0KKwkgICAgICAgIH0KKwkgICAgfQorCSAgCisJICAgIHJldHVybiBmYWxzZTsKKwl9CisJCisJLyoqCisJICogVXNlZCBieSBleGFjdCBtYXRjaGVzLCBjaGVja3MgaWYgdGhlcmUgYXJlIGFjY2VudHMgYm91bmRpbmcgdGhlIG1hdGNoLgorCSAqIE5vdGUgdGhpcyBpcyB0aGUgaW5pdGlhbCBib3VuZGFyeSBjaGVjay4gSWYgdGhlIHBvdGVudGlhbCBtYXRjaAorCSAqIHN0YXJ0cyBvciBlbmRzIHdpdGggY29tcG9zaXRlIGNoYXJhY3RlcnMsIHRoZSBhY2NlbnRzIGluIHRob3NlCisJICogY2hhcmFjdGVycyB3aWxsIGJlIGRldGVybWluZWQgbGF0ZXIuCisJICogTm90IGRvaW5nIGJhY2t3YXJkcyBpdGVyYXRpb24gaGVyZSwgc2luY2UgZGlzY29udGlndW9zIGNvbnRyYWN0aW9uIGZvciAKKwkgKiBiYWNrd2FyZHMgY29sbGF0aW9uIGVsZW1lbnQgaXRlcmF0b3IsIHVzZSB1cCB0b28gbWFueSBjaGFyYWN0ZXJzLgorCSAqIEUuZy4gbG9va2luZyBmb3IgXHUwMzBBIHJpbmcgaW4gXHUwMUZBIEEgcmluZyBhYm92ZSBhbmQgYWN1dGUsIAorCSAqIHNob3VsZCBmYWlsIHNpbmNlIHRoZXJlIGlzIGEgYWN1dGUgYXQgdGhlIGVuZCBvZiBcdTAxRkEKKwkgKiBOb3RlIGhlcmUgdGhhdCBhY2NlbnRzIGNoZWNraW5nIGFyZSBzbG93IGFuZCBjYXV0aW9uZWQgaW4gdGhlIEFQSSBkb2NzLgorCSAqIEBwYXJhbSBzdGFydCBvZmZzZXQgb2YgbWF0Y2gKKwkgKiBAcGFyYW0gZW5kIGVuZCBvZmZzZXQgb2YgdGhlIG1hdGNoCisJICogQHJldHVybiB0cnVlIGlmIHRoZXJlIGFyZSBhY2NlbnRzIG9uIGVpdGhlciBzaWRlIG9mIHRoZSBtYXRjaCwgCisJICogICAgICAgICBmYWxzZSBvdGhlcndpc2UKKwkgKi8KKwlwcml2YXRlIGZpbmFsIGJvb2xlYW4gaGFzQWNjZW50c0FmdGVyTWF0Y2goaW50IHN0YXJ0LCBpbnQgZW5kKSAKKwl7CisJICAgIGlmIChtX3BhdHRlcm5fLm1faGFzU3VmZml4QWNjZW50c18pIHsKKwkgICAgCXRhcmdldFRleHQuc2V0SW5kZXgoZW5kKTsKKwkgICAgICAgIGlmIChlbmQgPiBtX3RleHRCZWdpbk9mZnNldF8gCisJICAgICAgICAJJiYgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSh0YXJnZXRUZXh0LnByZXZpb3VzKCkpKSB7CisJICAgICAgICAJaWYgKHRhcmdldFRleHQuZ2V0SW5kZXgoKSA+IG1fdGV4dEJlZ2luT2Zmc2V0XyAmJgorCSAgICAgICAgCQkhVVRGMTYuaXNMZWFkU3Vycm9nYXRlKHRhcmdldFRleHQucHJldmlvdXMoKSkpIHsKKwkgICAgICAgIAkJdGFyZ2V0VGV4dC5uZXh0KCk7CisJICAgICAgICAJfQorCSAgICAgICAgfQorCSAgICAgICAgaWYgKChnZXRGQ0QodGFyZ2V0VGV4dCwgdGFyZ2V0VGV4dC5nZXRJbmRleCgpKSAmIExBU1RfQllURV9NQVNLXykgIT0gMCkgeworCSAgICAgICAgICAgIGludCBmaXJzdGNlICA9IG1fcGF0dGVybl8ubV9DRV9bMF07CisJICAgICAgICAgICAgbV9jb2xFSXRlcl8uc2V0RXhhY3RPZmZzZXQoc3RhcnQpOworCSAgICAgICAgICAgIHdoaWxlIChnZXRDRShtX2NvbEVJdGVyXy5uZXh0KCkpICE9IGZpcnN0Y2UpIHsKKwkgICAgICAgICAgICB9CisJICAgICAgICAgICAgaW50IGNvdW50ID0gMTsKKwkgICAgICAgICAgICB3aGlsZSAoY291bnQgPCBtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfKSB7CisJICAgICAgICAgICAgICAgIGlmIChnZXRDRShtX2NvbEVJdGVyXy5uZXh0KCkpIAorCSAgICAgICAgICAgICAgICAJPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworCSAgICAgICAgICAgICAgICAJY291bnQgLS07CisJICAgICAgICAgICAgICAgIH0KKwkgICAgICAgICAgICAgICAgY291bnQgKys7CisJICAgICAgICAgICAgfQorCSAgICAgICAgICAgIGludCBjZSA9IGdldENFKG1fY29sRUl0ZXJfLm5leHQoKSk7CisJICAgICAgICAgICAgaWYgKGNlICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIgCisJICAgICAgICAgICAgCQkJJiYgY2UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworCSAgICAgICAgICAgICAgICBpZiAobV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCkgPD0gZW5kKSB7CisJICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKwkgICAgICAgICAgICAgICAgfQorCSAgICAgICAgICAgICAgICBpZiAoKGdldEZDRCh0YXJnZXRUZXh0LCBlbmQpID4+IFNFQ09ORF9MQVNUX0JZVEVfU0hJRlRfKSAKKwkgICAgICAgICAgICAgICAgCSE9IDApIHsKKwkgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworCSAgICAgICAgICAgICAgICB9CisJICAgICAgICAgICAgfQorCSAgICAgICAgfQorCSAgICB9CisJICAgIHJldHVybiBmYWxzZTsKKwl9CisJCisJLyoqCisJKiBDaGVja3MgaWYgdGhlIG9mZnNldCBydW5zIG91dCBvZiB0aGUgdGV4dCBzdHJpbmcgcmFuZ2UKKwkqIEBwYXJhbSB0ZXh0c3RhcnQgb2Zmc2V0IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaW4gdGhlIHJhbmdlCisJKiBAcGFyYW0gdGV4dGxpbWl0IGxpbWl0IG9mZnNldCBvZiB0aGUgdGV4dCBzdHJpbmcgcmFuZ2UKKwkqIEBwYXJhbSBvZmZzZXQgdG8gdGVzdAorCSogQHJldHVybiB0cnVlIGlmIG9mZnNldCBpcyBvdXQgb2YgYm91bmRzLCBmYWxzZSBvdGhlcndpc2UKKwkqLworCXByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gaXNPdXRPZkJvdW5kcyhpbnQgdGV4dHN0YXJ0LCBpbnQgdGV4dGxpbWl0LCAKKwkJCQkJCQkJCQkJCWludCBvZmZzZXQpCisJeworCSAgICByZXR1cm4gb2Zmc2V0IDwgdGV4dHN0YXJ0IHx8IG9mZnNldCA+IHRleHRsaW1pdDsKKwl9CisJCisJLyoqCisJICogQ2hlY2tzIGZvciBpZGVudGljYWwgbWF0Y2gKKwkgKiBAcGFyYW0gc3Ryc3JjaCBzdHJpbmcgc2VhcmNoIGRhdGEKKwkgKiBAcGFyYW0gc3RhcnQgb2Zmc2V0IG9mIHBvc3NpYmxlIG1hdGNoCisJICogQHBhcmFtIGVuZCBvZmZzZXQgb2YgcG9zc2libGUgbWF0Y2gKKwkgKiBAcmV0dXJuIHRydWUgaWYgaWRlbnRpY2FsIG1hdGNoIGlzIGZvdW5kCisJICovCisJcHJpdmF0ZSBmaW5hbCBib29sZWFuIGNoZWNrSWRlbnRpY2FsKGludCBzdGFydCwgaW50IGVuZCkgCisJeworCSAgICBpZiAobV9jb2xsYXRvcl8uZ2V0U3RyZW5ndGgoKSAhPSBDb2xsYXRvci5JREVOVElDQUwpIHsKKwkgICAgICAgIHJldHVybiB0cnVlOworCSAgICB9CisJCisJCVN0cmluZyB0ZXh0c3RyID0gZ2V0U3RyaW5nKHRhcmdldFRleHQsIHN0YXJ0LCBlbmQgLSBzdGFydCk7CisJCWlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2sodGV4dHN0ciwgTm9ybWFsaXplci5ORkQpIAorCSAgICAgICAgCQkJCQkJCQkJCT09IE5vcm1hbGl6ZXIuTk8pIHsKKwkgICAgICAgIHRleHRzdHIgPSBOb3JtYWxpemVyLmRlY29tcG9zZSh0ZXh0c3RyLCBmYWxzZSk7CisJICAgIH0KKwkgICAgU3RyaW5nIHBhdHRlcm5zdHIgPSBtX3BhdHRlcm5fLnRhcmdldFRleHQ7CisJICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2socGF0dGVybnN0ciwgTm9ybWFsaXplci5ORkQpIAorCSAgICAgICAgCQkJCQkJCQkJCT09IE5vcm1hbGl6ZXIuTk8pIHsKKwkgICAgICAgIHBhdHRlcm5zdHIgPSBOb3JtYWxpemVyLmRlY29tcG9zZShwYXR0ZXJuc3RyLCBmYWxzZSk7CisJICAgIH0KKwkgICAgcmV0dXJuIHRleHRzdHIuZXF1YWxzKHBhdHRlcm5zdHIpOworCX0KKwkKKwkvKioKKwkgKiBDaGVja3MgdG8gc2VlIGlmIHRoZSBtYXRjaCBpcyByZXBlYXRlZAorCSAqIEBwYXJhbSBzdGFydCBuZXcgbWF0Y2ggc3RhcnQgaW5kZXgKKwkgKiBAcGFyYW0gbGltaXQgbmV3IG1hdGNoIGxpbWl0IGluZGV4CisJICogQHJldHVybiB0cnVlIGlmIHRoZSB0aGUgbWF0Y2ggaXMgcmVwZWF0ZWQsIGZhbHNlIG90aGVyd2lzZQorCSAqLworCXByaXZhdGUgZmluYWwgYm9vbGVhbiBjaGVja1JlcGVhdGVkTWF0Y2goaW50IHN0YXJ0LCBpbnQgbGltaXQpCisJeworCSAgICBpZiAobV9tYXRjaGVkSW5kZXhfID09IERPTkUpIHsKKwkgICAgICAgIHJldHVybiBmYWxzZTsKKwkgICAgfQorICAgICAgICBpbnQgZW5kID0gbGltaXQgLSAxOyAvLyBsYXN0IGNoYXJhY3RlciBpbiB0aGUgbWF0Y2gKKwkgICAgaW50IGxhc3RtYXRjaGVuZCA9IG1fbWF0Y2hlZEluZGV4XyArIG1hdGNoTGVuZ3RoIC0gMTsgCisJICAgIGlmICghaXNPdmVybGFwcGluZygpKSB7CisgICAgICAgICAgICByZXR1cm4gKHN0YXJ0ID49IG1fbWF0Y2hlZEluZGV4XyAmJiBzdGFydCA8PSBsYXN0bWF0Y2hlbmQpIAorICAgICAgICAgICAgICAgICAgICB8fCAoZW5kID49IG1fbWF0Y2hlZEluZGV4XyAmJiBlbmQgPD0gbGFzdG1hdGNoZW5kKTsKKyAgICAgICAgICAgICAgICAgICAgICAKKwkgICAgfQorCSAgICByZXR1cm4gc3RhcnQgPT0gbV9tYXRjaGVkSW5kZXhfOworCX0KKwkKKwkvKioKKwkgKiBDaGVja3MgbWF0Y2ggZm9yIGNvbnRyYWN0aW9uLiAKKwkgKiBJZiB0aGUgbWF0Y2ggZW5kcyB3aXRoIGEgcGFydGlhbCBjb250cmFjdGlvbiB3ZSBmYWlsLgorCSAqIElmIHRoZSBtYXRjaCBzdGFydHMgdG9vIGZhciBvZmYgKGJlY2F1c2Ugb2YgYmFja3dhcmRzIGl0ZXJhdGlvbikgd2UgdHJ5IAorCSAqIHRvIGNoaXAgb2ZmIHRoZSBleHRyYSBjaGFyYWN0ZXJzIGRlcGVuZGluZyBvbiB3aGV0aGVyIGEgYnJlYWtpdGVyYXRvciAKKwkgKiBoYXMgYmVlbiB1c2VkLgorCSAqIFRlbXBvcmFyeSB1dGlsaXR5IGJ1ZmZlciB1c2VkIHRvIHJldHVybiBtb2RpZmllZCBzdGFydCBhbmQgZW5kLgorCSAqIEBwYXJhbSBzdGFydCBvZmZzZXQgb2YgcG90ZW50aWFsIG1hdGNoLCB0byBiZSBtb2RpZmllZCBpZiBuZWNlc3NhcnkKKwkgKiBAcGFyYW0gZW5kIG9mZnNldCBvZiBwb3RlbnRpYWwgbWF0Y2gsIHRvIGJlIG1vZGlmaWVkIGlmIG5lY2Vzc2FyeQorCSAqIEByZXR1cm4gdHJ1ZSBpZiBtYXRjaCBwYXNzZXMgdGhlIGNvbnRyYWN0aW9uIHRlc3QsIGZhbHNlIG90aGVyd2lzZS4KKwkgKi8KKwlwcml2YXRlIGZpbmFsIGJvb2xlYW4gY2hlY2tOZXh0RXhhY3RDb250cmFjdGlvbk1hdGNoKGludCBzdGFydCwgaW50IGVuZCkgCisJeworCSAgICAvLyBUaGlzIHBhcnQgY2hlY2tzIGlmIGVpdGhlciBlbmRzIG9mIHRoZSBtYXRjaCBjb250YWlucyBwb3RlbnRpYWwgCisJICAgIC8vIGNvbnRyYWN0aW9uLiBJZiBzbyB3ZSdsbCBoYXZlIHRvIGl0ZXJhdGUgdGhyb3VnaCB0aGVtCisJICAgIGNoYXIgZW5kY2hhciA9IDA7CisJICAgIGlmIChlbmQgPCBtX3RleHRMaW1pdE9mZnNldF8pIHsKKwkgICAgCXRhcmdldFRleHQuc2V0SW5kZXgoZW5kKTsKKwkgICAgCWVuZGNoYXIgPSB0YXJnZXRUZXh0LmN1cnJlbnQoKTsKKwkgICAgfQorCSAgICBjaGFyIHBvc3RzdGFydGNoYXIgPSAwOworCSAgICBpZiAoc3RhcnQgKyAxIDwgbV90ZXh0TGltaXRPZmZzZXRfKSB7CisJICAgIAl0YXJnZXRUZXh0LnNldEluZGV4KHN0YXJ0ICsgMSk7CisJICAgIAlwb3N0c3RhcnRjaGFyID0gdGFyZ2V0VGV4dC5jdXJyZW50KCk7CisJICAgIH0KKwkgICAgaWYgKG1fY29sbGF0b3JfLmlzVW5zYWZlKGVuZGNoYXIpIAorCSAgICAJfHwgbV9jb2xsYXRvcl8uaXNVbnNhZmUocG9zdHN0YXJ0Y2hhcikpIHsKKwkgICAgICAgIC8vIGV4cGFuc2lvbiBwcmVmaXgsIHdoYXQncyBsZWZ0IHRvIGl0ZXJhdGUKKwkgICAgICAgIGludCBidWZmZXJlZENFT2Zmc2V0ID0gbV9jb2xFSXRlcl8ubV9DRUJ1ZmZlck9mZnNldF87CisJICAgICAgICBib29sZWFuIGhhc0J1ZmZlcmVkQ0UgPSBidWZmZXJlZENFT2Zmc2V0ID4gMDsKKwkgICAgICAgIG1fY29sRUl0ZXJfLnNldEV4YWN0T2Zmc2V0KHN0YXJ0KTsKKwkgICAgICAgIGludCB0ZW1wID0gc3RhcnQ7CisJICAgICAgICB3aGlsZSAoYnVmZmVyZWRDRU9mZnNldCA+IDApIHsKKwkgICAgICAgICAgICAvLyBnZXR0aW5nIHJpZCBvZiB0aGUgcmVkdW5kYW50IGNlLCBjYXVzZWQgYnkgc2V0T2Zmc2V0LgorCSAgICAgICAgICAgIC8vIHNpbmNlIGJhY2t3YXJkIGNvbnRyYWN0aW9uL2V4cGFuc2lvbiBtYXkgaGF2ZSBleHRyYSBjZXMgaWYgCisJICAgICAgICAgICAgLy8gd2UgYXJlIGluIHRoZSBub3JtYWxpemF0aW9uIGJ1ZmZlciwgaGFzQWNjZW50c0JlZm9yZU1hdGNoIAorCSAgICAgICAgICAgIC8vIHdvdWxkIGhhdmUgdGFrZW4gY2FyZSBvZiBpdC4KKwkgICAgICAgICAgICAvLyBFLmcuIHRoZSBjaGFyYWN0ZXIgXHUwMUZBIHdpbGwgaGF2ZSBhbiBleHBhbnNpb24gb2YgMywgYnV0IAorCSAgICAgICAgICAgIC8vIGlmIHdlIGFyZSBvbmx5IGxvb2tpbmcgZm9yIGFjdXRlIGFuZCByaW5nIFx1MDMwQSBhbmQgXHUwMzAxLCAKKwkgICAgICAgICAgICAvLyB3ZSdsbCBoYXZlIHRvIHNraXAgdGhlIGZpcnN0IGNlIGluIHRoZSBleHBhbnNpb24gYnVmZmVyLgorCSAgICAgICAgICAgIG1fY29sRUl0ZXJfLm5leHQoKTsKKwkgICAgICAgICAgICBpZiAobV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCkgIT0gdGVtcCkgeworCSAgICAgICAgICAgICAgICBzdGFydCA9IHRlbXA7CisJICAgICAgICAgICAgICAgIHRlbXAgID0gbV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCk7CisJICAgICAgICAgICAgfQorCSAgICAgICAgICAgIGJ1ZmZlcmVkQ0VPZmZzZXQgLS07CisJICAgICAgICB9CisJCisJICAgICAgICBpbnQgY291bnQgPSAwOworCSAgICAgICAgd2hpbGUgKGNvdW50IDwgbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXykgeworCSAgICAgICAgICAgIGludCBjZSA9IGdldENFKG1fY29sRUl0ZXJfLm5leHQoKSk7CisJICAgICAgICAgICAgaWYgKGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKwkgICAgICAgICAgICAgICAgY29udGludWU7CisJICAgICAgICAgICAgfQorCSAgICAgICAgICAgIGlmIChoYXNCdWZmZXJlZENFICYmIGNvdW50ID09IDAgCisJICAgICAgICAgICAgCSYmIG1fY29sRUl0ZXJfLmdldE9mZnNldCgpICE9IHRlbXApIHsKKwkgICAgICAgICAgICAgICAgc3RhcnQgPSB0ZW1wOworCSAgICAgICAgICAgICAgICB0ZW1wICAgPSBtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKTsKKwkgICAgICAgICAgICB9CisJICAgICAgICAgICAgaWYgKGNlICE9IG1fcGF0dGVybl8ubV9DRV9bY291bnRdKSB7CisJICAgICAgICAgICAgICAgIGVuZCArKzsKKwkgICAgICAgICAgICAgICAgZW5kID0gZ2V0TmV4dEJhc2VPZmZzZXQoZW5kKTsgIAorCSAgICAgICAgICAgICAgICBtX3V0aWxCdWZmZXJfWzBdID0gc3RhcnQ7CisJICAgICAgICAgICAgICAgIG1fdXRpbEJ1ZmZlcl9bMV0gPSBlbmQ7CisJICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKwkgICAgICAgICAgICB9CisJICAgICAgICAgICAgY291bnQgKys7CisJICAgICAgICB9CisJICAgIH0gCisJICAgIG1fdXRpbEJ1ZmZlcl9bMF0gPSBzdGFydDsKKwkgICAgbV91dGlsQnVmZmVyX1sxXSA9IGVuZDsKKwkgICAgcmV0dXJuIHRydWU7CisJfQorCQorCQorCS8qKgorCSAqIENoZWNrcyBhbmQgc2V0cyB0aGUgbWF0Y2ggaW5mb3JtYXRpb24gaWYgZm91bmQuCisJICogQ2hlY2tzIAorCSAqIDx1bD4KKwkgKiA8bGk+IHRoZSBwb3RlbnRpYWwgbWF0Y2ggZG9lcyBub3QgcmVwZWF0IHRoZSBwcmV2aW91cyBtYXRjaAorCSAqIDxsaT4gYm91bmRhcmllcyBhcmUgY29ycmVjdAorCSAqIDxsaT4gZXhhY3QgbWF0Y2hlcyBoYXMgbm8gZXh0cmEgYWNjZW50cworCSAqIDxsaT4gaWRlbnRpY2FsIG1hdGNoZXNiCisJICogPGxpPiBwb3RlbnRpYWwgbWF0Y2ggZG9lcyBub3QgZW5kIGluIHRoZSBtaWRkbGUgb2YgYSBjb250cmFjdGlvbgorCSAqIDwvdWw+CisJICogT3RoZXJ3aXNlIHRoZSBvZmZzZXQgd2lsbCBiZSBzaGlmdGVkIHRvIHRoZSBuZXh0IGNoYXJhY3Rlci4KKwkgKiBUaGUgcmVzdWx0IG1fbWF0Y2hJbmRleF8gYW5kIG1fbWF0Y2hMZW5ndGhfIHdpbGwgYmUgc2V0IHRvIHRoZSB0cnVuY2F0ZWQKKwkgKiBtb3JlIGZpdHRpbmcgcmVzdWx0IHZhbHVlLgorCSAqIFVzZXMgdGhlIHRlbXBvcmFyeSB1dGlsaXR5IGJ1ZmZlciBmb3Igc3RvcmluZyB0aGUgbW9kaWZpZWQgdGV4dG9mZnNldC4KKwkgKiBAcGFyYW0gdGV4dG9mZnNldCBvZmZzZXQgaW4gdGhlIGNvbGxhdGlvbiBlbGVtZW50IHRleHQuCisJICogQHJldHVybiB0cnVlIGlmIHRoZSBtYXRjaCBpcyB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlCisJICovCisJcHJpdmF0ZSBmaW5hbCBib29sZWFuIGNoZWNrTmV4dEV4YWN0TWF0Y2goaW50IHRleHRvZmZzZXQpCisJeworCSAgICBpbnQgc3RhcnQgPSBtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKTsgICAgICAgIAorCSAgICBpZiAoIWNoZWNrTmV4dEV4YWN0Q29udHJhY3Rpb25NYXRjaChzdGFydCwgdGV4dG9mZnNldCkpIHsKKwkgICAgCS8vIHJldHVybnMgdGhlIG1vZGlmaWVkIHRleHRvZmZzZXQKKwkgICAgCW1fdXRpbEJ1ZmZlcl9bMF0gPSBtX3V0aWxCdWZmZXJfWzFdOworCSAgICAgICAgcmV0dXJuIGZhbHNlOworCSAgICB9CisJCisJCXN0YXJ0ID0gbV91dGlsQnVmZmVyX1swXTsKKwkJdGV4dG9mZnNldCA9IG1fdXRpbEJ1ZmZlcl9bMV07CisJICAgIC8vIHRoaXMgdG90YWxseSBtYXRjaGVzLCBob3dldmVyIHdlIG5lZWQgdG8gY2hlY2sgaWYgaXQgaXMgcmVwZWF0aW5nCisJICAgIGlmICghaXNCcmVha1VuaXQoc3RhcnQsIHRleHRvZmZzZXQpIAorCSAgICAJfHwgY2hlY2tSZXBlYXRlZE1hdGNoKHN0YXJ0LCB0ZXh0b2Zmc2V0KSAKKwkgICAgCXx8IGhhc0FjY2VudHNCZWZvcmVNYXRjaChzdGFydCwgdGV4dG9mZnNldCkgCisJICAgIAl8fCAhY2hlY2tJZGVudGljYWwoc3RhcnQsIHRleHRvZmZzZXQpIAorCSAgICAJfHwgaGFzQWNjZW50c0FmdGVyTWF0Y2goc3RhcnQsIHRleHRvZmZzZXQpKSB7CisJICAgICAgICB0ZXh0b2Zmc2V0ICsrOworCSAgICAgICAgdGV4dG9mZnNldCA9IGdldE5leHRCYXNlT2Zmc2V0KHRleHRvZmZzZXQpOyAgCisJICAgICAgICBtX3V0aWxCdWZmZXJfWzBdID0gdGV4dG9mZnNldDsKKwkgICAgICAgIHJldHVybiBmYWxzZTsKKwkgICAgfQorCSAgICAgICAgCisJICAgIC8vIHRvdGFsbHkgbWF0Y2gsIHdlIHdpbGwgZ2V0IHJpZCBvZiB0aGUgZW5kaW5nIGlnbm9yYWJsZXMuCisJICAgIG1fbWF0Y2hlZEluZGV4XyAgPSBzdGFydDsKKwkgICAgbWF0Y2hMZW5ndGggPSB0ZXh0b2Zmc2V0IC0gc3RhcnQ7CisJICAgIHJldHVybiB0cnVlOworCX0KKwkKKwkvKioKKwkqIEdldHRpbmcgdGhlIHByZXZpb3VzIGJhc2UgY2hhcmFjdGVyIG9mZnNldCwgb3IgdGhlIGN1cnJlbnQgb2Zmc2V0IGlmIHRoZSAKKwkqIGN1cnJlbnQgY2hhcmFjdGVyIGlzIGEgYmFzZSBjaGFyYWN0ZXIKKwkqIEBwYXJhbSB0ZXh0IHRoZSBzb3VyY2UgdGV4dCB0byB3b3JrIG9uCisJKiBAcGFyYW0gdGV4dG9mZnNldCBvbmUgb2Zmc2V0IGFmdGVyIHRoZSBjdXJyZW50IGNoYXJhY3RlcgorCSogQHJldHVybiB0aGUgb2Zmc2V0IG9mIHRoZSBuZXh0IGNoYXJhY3RlciBhZnRlciB0aGUgYmFzZSBjaGFyYWN0ZXIgb3IgdGhlIAorCSogCQkJZmlyc3QgY29tcG9zZWQgY2hhcmFjdGVyIHdpdGggYWNjZW50cworCSovCisJcHJpdmF0ZSBmaW5hbCBpbnQgZ2V0UHJldmlvdXNCYXNlT2Zmc2V0KENoYXJhY3Rlckl0ZXJhdG9yIHRleHQsIAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdGV4dG9mZnNldCkKKwl7CisJICAgIGlmICh0ZXh0b2Zmc2V0ID4gbV90ZXh0QmVnaW5PZmZzZXRfKSB7CisJICAgICAgICB3aGlsZSAodHJ1ZSkgeworCSAgICAgICAgICAgIGludCByZXN1bHQgPSB0ZXh0b2Zmc2V0OworCSAgICAgICAgICAgIHRleHQuc2V0SW5kZXgocmVzdWx0KTsKKwkgICAgICAgICAgICBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSh0ZXh0LnByZXZpb3VzKCkpKSB7CisJICAgICAgICAgICAgCWlmICh0ZXh0LmdldEluZGV4KCkgIT0gdGV4dC5nZXRCZWdpbkluZGV4KCkgJiYKKwkgICAgICAgICAgICAJCSFVVEYxNi5pc0xlYWRTdXJyb2dhdGUodGV4dC5wcmV2aW91cygpKSkgeworCSAgICAgICAgICAgIAkJdGV4dC5uZXh0KCk7CisJICAgICAgICAgICAgCX0KKwkgICAgICAgICAgICB9CisJICAgICAgICAgICAgdGV4dG9mZnNldCA9IHRleHQuZ2V0SW5kZXgoKTsKKwkgICAgICAgICAgICBjaGFyIGZjZCA9IGdldEZDRCh0ZXh0LCB0ZXh0b2Zmc2V0KTsKKwkgICAgICAgICAgICBpZiAoKGZjZCA+PiBTRUNPTkRfTEFTVF9CWVRFX1NISUZUXykgPT0gMCkgeworCSAgICAgICAgICAgICAgICBpZiAoKGZjZCAmIExBU1RfQllURV9NQVNLXykgIT0gMCkgeworCSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRleHRvZmZzZXQ7CisJICAgICAgICAgICAgICAgIH0KKwkgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKwkgICAgICAgICAgICB9CisJICAgICAgICAgICAgaWYgKHRleHRvZmZzZXQgPT0gbV90ZXh0QmVnaW5PZmZzZXRfKSB7CisJICAgICAgICAgICAgICAgIHJldHVybiBtX3RleHRCZWdpbk9mZnNldF87CisJICAgICAgICAgICAgfQorCSAgICAgICAgfQorCSAgICB9CisJICAgIHJldHVybiB0ZXh0b2Zmc2V0OworCX0KKwkKKwkvKioKKwkqIEdldHRpbmcgdGhlIGluZGV4ZXMgb2YgdGhlIGFjY2VudHMgdGhhdCBhcmUgbm90IGJsb2NrZWQgaW4gdGhlIGFyZ3VtZW50CisJKiBhY2NlbnQgYXJyYXkKKwkqIEBwYXJhbSBhY2NlbnRzIGFjY2VudHMgaW4gbmZkLgorCSogQHBhcmFtIGFjY2VudHNpbmRleCBhcnJheSB0byBzdG9yZSB0aGUgaW5kZXhlcyBvZiBhY2NlbnRzIGluIGFjY2VudHMgdGhhdCAKKwkqIAkJYXJlIG5vdCBibG9ja2VkCisJKiBAcmV0dXJuIHRoZSBsZW5ndGggb2YgcG9wdWxhdGVkIGFjY2VudHNpbmRleAorCSovCisJcHJpdmF0ZSBpbnQgZ2V0VW5ibG9ja2VkQWNjZW50SW5kZXgoU3RyaW5nQnVmZmVyIGFjY2VudHMsIAorCQkJCQkJCQkJCWludCBhY2NlbnRzaW5kZXhbXSkKKwl7CisJICAgIGludCBpbmRleCA9IDA7CisJICAgIGludCBsZW5ndGggPSBhY2NlbnRzLmxlbmd0aCgpOworCSAgICBpbnQgY2NsYXNzID0gMDsKKwkgICAgaW50IHJlc3VsdCA9IDA7CisJICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkgeworCSAgICAgICAgaW50IGNvZGVwb2ludCA9IFVURjE2LmNoYXJBdChhY2NlbnRzLCBpbmRleCk7CisJICAgICAgICBpbnQgdGVtcGNsYXNzID0gVUNoYXJhY3Rlci5nZXRDb21iaW5pbmdDbGFzcyhjb2RlcG9pbnQpOworCSAgICAgICAgaWYgKHRlbXBjbGFzcyAhPSBjY2xhc3MpIHsKKwkgICAgICAgICAgICBjY2xhc3MgPSB0ZW1wY2xhc3M7CisJICAgICAgICAgICAgYWNjZW50c2luZGV4W3Jlc3VsdF0gPSBpbmRleDsKKwkgICAgICAgICAgICByZXN1bHQgKys7CisJICAgICAgICB9CisJICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc1N1cHBsZW1lbnRhcnkoY29kZXBvaW50KSkgeworCSAgICAgICAgCWluZGV4ICs9IDI7CisJICAgICAgICB9CisJICAgICAgICBlbHNlIHsKKwkgICAgICAgIAlpbmRleCArKzsKKwkgICAgICAgIH0KKwkgICAgfQorCSAgICBhY2NlbnRzaW5kZXhbcmVzdWx0XSA9IGxlbmd0aDsKKwkgICAgcmV0dXJuIHJlc3VsdDsKKwl9CisKKwkvKioKKwkgKiBBcHBlbmRzIDMgU3RyaW5nQnVmZmVyL0NoYXJhY3Rlckl0ZXJhdG9yIHRvZ2V0aGVyIGludG8gYSBkZXN0aW5hdGlvbiAKKwkgKiBzdHJpbmcgYnVmZmVyLgorCSAqIEBwYXJhbSBzb3VyY2UxIHN0cmluZyBidWZmZXIKKwkgKiBAcGFyYW0gc291cmNlMiBjaGFyYWN0ZXIgaXRlcmF0b3IKKwkgKiBAcGFyYW0gc3RhcnQyIHN0YXJ0IG9mIHRoZSBjaGFyYWN0ZXIgaXRlcmF0b3IgdG8gbWVyZ2UKKwkgKiBAcGFyYW0gZW5kMiBlbmQgb2YgdGhlIGNoYXJhY3RlciBpdGVyYXRvciB0byBtZXJnZQorCSAqIEBwYXJhbSBzb3VyY2UzIHN0cmluZyBidWZmZXIKKwkgKiBAcmV0dXJuIGFwcGVuZGVkIHN0cmluZyBidWZmZXIKKwkgKi8KKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdCdWZmZXIgbWVyZ2UoU3RyaW5nQnVmZmVyIHNvdXJjZTEsIAorCQkJCQkJCQkJIAkJQ2hhcmFjdGVySXRlcmF0b3Igc291cmNlMiwKKwkJCQkJCQkJCSAJCWludCBzdGFydDIsIGludCBlbmQyLAorCQkJCQkJCQkJIAkJU3RyaW5nQnVmZmVyIHNvdXJjZTMpIAorCXsKKwkJU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsJCisJCWlmIChzb3VyY2UxICE9IG51bGwgJiYgc291cmNlMS5sZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICAvLyBqZGsgMS4zLjEgZG9lcyBub3QgaGF2ZSBhcHBlbmQoU3RyaW5nQnVmZmVyKSB5ZXQKKyAgICAgICAgICAgIGlmKGNvbS5pYm0uaWN1LmltcGwuSUNVRGVidWcuaXNKREsxNE9ySGlnaGVyKXsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHNvdXJjZTEpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChzb3VyY2UxLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorCQl9CisJCXNvdXJjZTIuc2V0SW5kZXgoc3RhcnQyKTsKKwkJd2hpbGUgKHNvdXJjZTIuZ2V0SW5kZXgoKSA8IGVuZDIpIHsKKwkJCXJlc3VsdC5hcHBlbmQoc291cmNlMi5jdXJyZW50KCkpOworCQkJc291cmNlMi5uZXh0KCk7CisJCX0KKwkJaWYgKHNvdXJjZTMgIT0gbnVsbCAmJiBzb3VyY2UzLmxlbmd0aCgpICE9IDApIHsKKwkJCS8vIGpkayAxLjMuMSBkb2VzIG5vdCBoYXZlIGFwcGVuZChTdHJpbmdCdWZmZXIpIHlldAorICAgICAgICAgICAgaWYoY29tLmlibS5pY3UuaW1wbC5JQ1VEZWJ1Zy5pc0pESzE0T3JIaWdoZXIpeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc291cmNlMyk7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHNvdXJjZTMudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisJCX0KKwkgICAgcmV0dXJuIHJlc3VsdDsKKwl9CisJCisJLyoqCisJKiBSdW5uaW5nIHRocm91Z2ggYSBjb2xsYXRpb24gZWxlbWVudCBpdGVyYXRvciB0byBzZWUgaWYgdGhlIGNvbnRlbnRzIAorCSogbWF0Y2hlcyBwYXR0ZXJuIGluIHN0cmluZyBzZWFyY2ggZGF0YQorCSogQHBhcmFtIGNvbGVpdGVyIGNvbGxhdGlvbiBlbGVtZW50IGl0ZXJhdG9yIHRvIHRlc3QKKwkqIEByZXR1cm4gdHJ1ZSBpZiBhIG1hdGNoIGlmIGZvdW5kLCBmYWxzZSBvdGhlcndpc2UKKwkqLworCXByaXZhdGUgZmluYWwgYm9vbGVhbiBjaGVja0NvbGxhdGlvbk1hdGNoKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBjb2xlaXRlcikKKwl7CisJICAgIGludCBwYXR0ZXJuY2VpbmRleCA9IG1fcGF0dGVybl8ubV9DRUxlbmd0aF87CisJICAgIGludCBvZmZzZXQgPSAwOworCSAgICB3aGlsZSAocGF0dGVybmNlaW5kZXggPiAwKSB7CisJICAgICAgICBpbnQgY2UgPSBnZXRDRShjb2xlaXRlci5uZXh0KCkpOworCSAgICAgICAgaWYgKGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKwkgICAgICAgICAgICBjb250aW51ZTsKKwkgICAgICAgIH0KKwkgICAgICAgIGlmIChjZSAhPSBtX3BhdHRlcm5fLm1fQ0VfW29mZnNldF0pIHsKKwkgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisJICAgICAgICB9CisJICAgICAgICBvZmZzZXQgKys7CisJICAgICAgICBwYXR0ZXJuY2VpbmRleCAtLTsKKwkgICAgfQorCSAgICByZXR1cm4gdHJ1ZTsKKwl9CisJCisJLyoqCisJICogUmVhcnJhbmdlcyB0aGUgZnJvbnQgYWNjZW50cyB0byB0cnkgbWF0Y2hpbmcuCisJICogUHJlZml4IGFjY2VudHMgaW4gdGhlIHRleHQgd2lsbCBiZSBncm91cGVkIGFjY29yZGluZyB0byB0aGVpciBjb21iaW5pbmcgCisJICogY2xhc3MgYW5kIHRoZSBncm91cHMgd2lsbCBiZSBtaXhlZCBhbmQgbWF0Y2hlZCB0byB0cnkgZmluZCB0aGUgcGVyZmVjdCAKKwkgKiBtYXRjaCB3aXRoIHRoZSBwYXR0ZXJuLgorCSAqIFNvIGZvciBpbnN0YW5jZSBsb29raW5nIGZvciAiXHUwMzAxIiBpbiAiXHUwMzBBXHUwMzAxXHUwMzI1IgorCSAqIHN0ZXAgMTogc3BsaXQgIlx1MDMwQVx1MDMwMSIgaW50byA2IG90aGVyIHR5cGUgb2YgcG90ZW50aWFsIGFjY2VudCAKKwkgKiAJCSAgIHN1YnN0cmluZ3MgIlx1MDMwQSIsICJcdTAzMDEiLCAiXHUwMzI1IiwgIlx1MDMwQVx1MDMwMSIsIAorCSAqIAkJICAgIlx1MDMwQVx1MDMyNSIsICJcdTAzMDFcdTAzMjUiLgorCSAqIHN0ZXAgMjogY2hlY2sgaWYgYW55IG9mIHRoZSBnZW5lcmF0ZWQgc3Vic3RyaW5ncyBtYXRjaGVzIHRoZSBwYXR0ZXJuLgorCSAqIEludGVybmFsIG1ldGhvZCwgc3RhdHVzIGlzIGFzc3VtZWQgdG8gYmUgc3VjY2VzcywgY2FsbGVyIGhhcyB0byBjaGVjayAKKwkgKiBzdGF0dXMgYmVmb3JlIGNhbGxpbmcgdGhpcyBtZXRob2QuCisJICogQHBhcmFtIHN0YXJ0IGZpcnN0IG9mZnNldCBvZiB0aGUgYWNjZW50cyB0byBzdGFydCBzZWFyY2hpbmcKKwkgKiBAcGFyYW0gZW5kIHN0YXJ0IG9mIHRoZSBsYXN0IGFjY2VudCBzZXQKKwkgKiBAcmV0dXJuIERPTkUgaWYgYSBtYXRjaCBpcyBub3QgZm91bmQsIG90aGVyd2lzZSByZXR1cm4gdGhlIHN0YXJ0aW5nCisJICogICAgICAgICBvZmZzZXQgb2YgdGhlIG1hdGNoLiBOb3RlIHRoaXMgc3RhcnQgaW5jbHVkZXMgYWxsIHByZWNlZGluZyAKKwkgKiAJCSAgIGFjY2VudHMuCisJICovCisJcHJpdmF0ZSBpbnQgZG9OZXh0Q2Fub25pY2FsUHJlZml4TWF0Y2goaW50IHN0YXJ0LCBpbnQgZW5kKQorCXsKKwkgICAgaWYgKChnZXRGQ0QodGFyZ2V0VGV4dCwgc3RhcnQpICYgTEFTVF9CWVRFX01BU0tfKSA9PSAwKSB7CisJICAgICAgICAvLyBkaWUuLi4gZmFpbGVkIGF0IGEgYmFzZSBjaGFyYWN0ZXIKKwkgICAgICAgIHJldHVybiBET05FOworCSAgICB9CisJCisJCXN0YXJ0ID0gdGFyZ2V0VGV4dC5nZXRJbmRleCgpOyAvLyBpbmRleCBjaGFuZ2VkIGJ5IGZjZAorCSAgICBpbnQgb2Zmc2V0ID0gZ2V0TmV4dEJhc2VPZmZzZXQodGFyZ2V0VGV4dCwgc3RhcnQpOworCSAgICBzdGFydCA9IGdldFByZXZpb3VzQmFzZU9mZnNldChzdGFydCk7CisJCisJICAgIFN0cmluZ0J1ZmZlciBhY2NlbnRzID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCSAgICBTdHJpbmcgYWNjZW50c3RyID0gZ2V0U3RyaW5nKHRhcmdldFRleHQsIHN0YXJ0LCBvZmZzZXQgLSBzdGFydCk7CisJICAgIC8vIG5vcm1hbGl6aW5nIHRoZSBvZmZlbnNpdmUgc3RyaW5nCisJICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soYWNjZW50c3RyLCBOb3JtYWxpemVyLk5GRCkgCisJICAgICAgICAJCQkJCQkJCQkJPT0gTm9ybWFsaXplci5OTykgeworCSAgICAgICAgYWNjZW50c3RyID0gTm9ybWFsaXplci5kZWNvbXBvc2UoYWNjZW50c3RyLCBmYWxzZSk7CisJICAgIH0KKwkgICAgYWNjZW50cy5hcHBlbmQoYWNjZW50c3RyKTsKKwkgICAgICAgIAorCSAgICBpbnQgYWNjZW50c2luZGV4W10gPSBuZXcgaW50W0lOSVRJQUxfQVJSQVlfU0laRV9dOyAgICAgIAorCSAgICBpbnQgYWNjZW50c2l6ZSA9IGdldFVuYmxvY2tlZEFjY2VudEluZGV4KGFjY2VudHMsIGFjY2VudHNpbmRleCk7CisJICAgIGludCBjb3VudCA9ICgyIDw8IChhY2NlbnRzaXplIC0gMSkpIC0gMjsgIAorCSAgICB3aGlsZSAoY291bnQgPiAwKSB7CisJICAgIAkvLyBjb3B5IHRoZSBiYXNlIGNoYXJhY3RlcnMKKwkgICAgCW1fY2Fub25pY2FsUHJlZml4QWNjZW50c18uZGVsZXRlKDAsIAorCSAgICAJCQkJCQkJCW1fY2Fub25pY2FsUHJlZml4QWNjZW50c18ubGVuZ3RoKCkpOworCSAgICAJaW50IGsgPSAwOworCSAgICAgICAgZm9yICg7IGsgPCBhY2NlbnRzaW5kZXhbMF07IGsgKyspIHsKKwkgICAgICAgICAgICBtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfLmFwcGVuZChhY2NlbnRzLmNoYXJBdChrKSk7CisJICAgICAgICB9CisJICAgICAgICAvLyBmb3JtaW5nIGFsbCBwb3NzaWJsZSBjYW5vbmljYWwgcmVhcnJhbmdlbWVudCBieSBkcm9wcGluZworCSAgICAgICAgLy8gc2V0cyBvZiBhY2NlbnRzCisJICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBhY2NlbnRzaXplIC0gMTsgaSArKykgeworCSAgICAgICAgICAgIGludCBtYXNrID0gMSA8PCAoYWNjZW50c2l6ZSAtIGkgLSAxKTsKKwkgICAgICAgICAgICBpZiAoKGNvdW50ICYgbWFzaykgIT0gMCkgeworCSAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gYWNjZW50c2luZGV4W2ldOyBqIDwgYWNjZW50c2luZGV4W2kgKyAxXTsgCisJICAgICAgICAgICAgICAgIAkJCQkJCQkJCQkJCQlqICsrKSB7CisJICAgICAgICAgICAgICAgICAgICBtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfLmFwcGVuZChhY2NlbnRzLmNoYXJBdChqKSk7CisJICAgICAgICAgICAgICAgIH0KKwkgICAgICAgICAgICB9CisJICAgICAgICB9CisJICAgICAgICBTdHJpbmdCdWZmZXIgbWF0Y2ggPSBtZXJnZShtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfLAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VGV4dCwgb2Zmc2V0LCBlbmQsCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfKTsKKwkgICAgICAgICAgICAKKwkgICAgICAgIC8vIGlmIHN0YXR1cyBpcyBhIGZhaWx1cmUsIHVjb2xfc2V0VGV4dCBkb2VzIG5vdGhpbmcuCisJICAgICAgICAvLyBydW4gdGhlIGNvbGxhdG9yIGl0ZXJhdG9yIHRocm91Z2ggdGhpcyBtYXRjaAorCSAgICAgICAgbV91dGlsQ29sRUl0ZXJfLnNldFRleHQobWF0Y2gudG9TdHJpbmcoKSk7CisJICAgICAgICBpZiAoY2hlY2tDb2xsYXRpb25NYXRjaChtX3V0aWxDb2xFSXRlcl8pKSB7CisJICAgICAgICAgCXJldHVybiBzdGFydDsKKwkgICAgICAgIH0KKwkgICAgICAgIGNvdW50IC0tOworCSAgICB9CisJICAgIHJldHVybiBET05FOworCX0KKworCS8qKgorCSogR2V0cyB0aGUgb2Zmc2V0IHRvIHRoZSBzYWZlIHBvaW50IGluIHRleHQgYmVmb3JlIHRleHRvZmZzZXQuCisJKiBpZS4gbm90IHRoZSBtaWRkbGUgb2YgYSBjb250cmFjdGlvbiwgc3dhcHBhYmxlIGNoYXJhY3RlcnMgb3IgCisJKiBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMuCisJKiBAcGFyYW0gc3RhcnQgb2Zmc2V0IGluIHN0cmluZworCSogQHBhcmFtIHRleHRvZmZzZXQgb2Zmc2V0IGluIHN0cmluZworCSogQHJldHVybiBvZmZzZXQgdG8gdGhlIHByZXZpb3VzIHNhZmUgY2hhcmFjdGVyCisJKi8KKwlwcml2YXRlIGZpbmFsIGludCBnZXRQcmV2aW91c1NhZmVPZmZzZXQoaW50IHN0YXJ0LCBpbnQgdGV4dG9mZnNldCkKKwl7CisJICAgIGludCByZXN1bHQgPSB0ZXh0b2Zmc2V0OyAvLyBmaXJzdCBjb250cmFjdGlvbiBjaGFyYWN0ZXIKKwkgICAgdGFyZ2V0VGV4dC5zZXRJbmRleCh0ZXh0b2Zmc2V0KTsKKwkgICAgd2hpbGUgKHJlc3VsdCA+PSBzdGFydCAmJiBtX2NvbGxhdG9yXy5pc1Vuc2FmZSh0YXJnZXRUZXh0LnByZXZpb3VzKCkpKSB7CisJICAgICAgICByZXN1bHQgPSB0YXJnZXRUZXh0LmdldEluZGV4KCk7CisJICAgIH0KKwkgICAgaWYgKHJlc3VsdCAhPSBzdGFydCkgeworCSAgICAgICAgLy8gdGhlIGZpcnN0IGNvbnRyYWN0aW9uIGNoYXJhY3RlciBpcyBjb25zaWRlciB1bnNhZmUgaGVyZQorCSAgICAgICAgcmVzdWx0ID0gdGFyZ2V0VGV4dC5nZXRJbmRleCgpOyAvLyBvcmlnaW5hbGx5IHJlc3VsdCAtLTsKKwkgICAgfQorCSAgICByZXR1cm4gcmVzdWx0OyAKKwl9CisKKwkvKioKKwkgKiBUYWtlIHRoZSByZWFycmFuZ2VkIGVuZCBhY2NlbnRzIGFuZCB0cmllcyBtYXRjaGluZy4gSWYgbWF0Y2ggZmFpbGVkIGF0CisJICogYSBzZXBlcmF0ZSBwcmVjZWRpbmcgc2V0IG9mIGFjY2VudHMgKHNlcGVyYXRlZCBmcm9tIHRoZSByZWFycmFuZ2VkIG9uIGJ5CisJICogYXQgbGVhc3QgYSBiYXNlIGNoYXJhY3RlcikgdGhlbiB3ZSByZWFycmFuZ2UgdGhlIHByZWNlZGluZyBhY2NlbnRzIGFuZCAKKwkgKiB0cmllcyBtYXRjaGluZyBhZ2Fpbi4KKwkgKiBXZSBhbGxvdyBza2lwcGluZyBvZiB0aGUgZW5kcyBvZiB0aGUgYWNjZW50IHNldCBpZiB0aGUgY2VzIGRvIG5vdCBtYXRjaC4gCisJICogSG93ZXZlciBpZiB0aGUgZmFpbHVyZSBpcyBmb3VuZCBiZWZvcmUgdGhlIGFjY2VudCBzZXQsIGl0IGZhaWxzLgorCSAqIEludGVybmFsIG1ldGhvZCwgc3RhdHVzIGFzc3VtZWQgdG8gYmUgc3VjY2VzcywgY2FsbGVyIGhhcyB0byBjaGVjayAKKwkgKiBzdGF0dXMgYmVmb3JlIGNhbGxpbmcgdGhpcyBtZXRob2QuCisJICogQHBhcmFtIHRleHRvZmZzZXQgb2YgdGhlIHN0YXJ0IG9mIHRoZSByZWFycmFuZ2VkIGFjY2VudAorCSAqIEByZXR1cm4gRE9ORSBpZiBhIG1hdGNoIGlzIG5vdCBmb3VuZCwgb3RoZXJ3aXNlIHJldHVybiB0aGUgc3RhcnRpbmcKKwkgKiAgICAgICAgIG9mZnNldCBvZiB0aGUgbWF0Y2guIE5vdGUgdGhpcyBzdGFydCBpbmNsdWRlcyBhbGwgcHJlY2VkaW5nIAorCSAqICAgICAgICAgYWNjZW50cy4KKwkgKi8KKwlwcml2YXRlIGludCBkb05leHRDYW5vbmljYWxTdWZmaXhNYXRjaChpbnQgdGV4dG9mZnNldCkKKwl7CisJICAgIGludCBzYWZlbGVuZ3RoID0gMDsKKwkgICAgU3RyaW5nQnVmZmVyIHNhZmV0ZXh0OworCQlpbnQgc2FmZW9mZnNldCA9IG1fdGV4dEJlZ2luT2Zmc2V0XzsgCisJCQorCSAgICBpZiAodGV4dG9mZnNldCAhPSBtX3RleHRCZWdpbk9mZnNldF8gCisJICAgIAkmJiBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfLmxlbmd0aCgpID4gMAorCSAgICAJJiYgbV9jb2xsYXRvcl8uaXNVbnNhZmUobV9jYW5vbmljYWxTdWZmaXhBY2NlbnRzXy5jaGFyQXQoMCkpKSB7CisJICAgICAgICBzYWZlb2Zmc2V0ICAgICA9IGdldFByZXZpb3VzU2FmZU9mZnNldChtX3RleHRCZWdpbk9mZnNldF8sIAorCSAgICAgICAgCQkJCQkJCQkJCXRleHRvZmZzZXQpOworCSAgICAgICAgc2FmZWxlbmd0aCAgICAgPSB0ZXh0b2Zmc2V0IC0gc2FmZW9mZnNldDsKKwkgICAgICAgIHNhZmV0ZXh0ICAgICAgID0gbWVyZ2UobnVsbCwgdGFyZ2V0VGV4dCwgc2FmZW9mZnNldCwgdGV4dG9mZnNldCwgCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY2Fub25pY2FsU3VmZml4QWNjZW50c18pOworCSAgICB9CisJICAgIGVsc2UgeworCSAgICAgICAgc2FmZXRleHQgPSBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfOworCSAgICB9CisJCisJICAgIC8vIGlmIHN0YXR1cyBpcyBhIGZhaWx1cmUsIHVjb2xfc2V0VGV4dCBkb2VzIG5vdGhpbmcKKwkgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGNvbGVpdGVyID0gbV91dGlsQ29sRUl0ZXJfOworCSAgICBjb2xlaXRlci5zZXRUZXh0KHNhZmV0ZXh0LnRvU3RyaW5nKCkpOworCSAgICAvLyBzdGF0dXMgY2hlY2tlZCBpbiBsb29wIGJlbG93CisJCisJICAgIGludCBjZWluZGV4ID0gbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXyAtIDE7CisJICAgIGJvb2xlYW4gaXNTYWZlID0gdHJ1ZTsgLy8gaW5kaWNhdGlvbiBmbGFnIGZvciBwb3NpdGlvbiBpbiBzYWZlIHpvbmUKKwkgICAgCisJICAgIHdoaWxlIChjZWluZGV4ID49IDApIHsKKwkgICAgICAgIGludCB0ZXh0Y2UgPSBjb2xlaXRlci5wcmV2aW91cygpOworCSAgICAgICAgaWYgKHRleHRjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisJICAgICAgICAgICAgLy8gY2hlY2sgaWYgd2UgaGF2ZSBwYXNzZWQgdGhlIHNhZmUgYnVmZmVyCisJICAgICAgICAgICAgaWYgKGNvbGVpdGVyID09IG1fY29sRUl0ZXJfKSB7CisJICAgICAgICAgICAgICAgIHJldHVybiBET05FOworCSAgICAgICAgICAgIH0KKwkgICAgICAgICAgICBjb2xlaXRlciA9IG1fY29sRUl0ZXJfOworCSAgICAgICAgICAgIGlmIChzYWZldGV4dCAhPSBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfKSB7CisJICAgICAgICAgICAgCXNhZmV0ZXh0LmRlbGV0ZSgwLCBzYWZldGV4dC5sZW5ndGgoKSk7CisJICAgICAgICAgICAgfQorCSAgICAgICAgICAgIGNvbGVpdGVyLnNldEV4YWN0T2Zmc2V0KHNhZmVvZmZzZXQpOworCSAgICAgICAgICAgIC8vIHN0YXR1cyBjaGVja2VkIGF0IHRoZSBzdGFydCBvZiB0aGUgbG9vcAorCSAgICAgICAgICAgIGlzU2FmZSA9IGZhbHNlOworCSAgICAgICAgICAgIGNvbnRpbnVlOworCSAgICAgICAgfQorCSAgICAgICAgdGV4dGNlID0gZ2V0Q0UodGV4dGNlKTsKKwkgICAgICAgIGlmICh0ZXh0Y2UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSAKKwkgICAgICAgIAkmJiB0ZXh0Y2UgIT0gbV9wYXR0ZXJuXy5tX0NFX1tjZWluZGV4XSkgeworCSAgICAgICAgICAgIC8vIGRvIHRoZSBiZWdpbm5pbmcgc3R1ZmYKKwkgICAgICAgICAgICBpbnQgZmFpbGVkb2Zmc2V0ID0gY29sZWl0ZXIuZ2V0T2Zmc2V0KCk7CisJICAgICAgICAgICAgaWYgKGlzU2FmZSAmJiBmYWlsZWRvZmZzZXQgPj0gc2FmZWxlbmd0aCkgeworCSAgICAgICAgICAgICAgICAvLyBhbGFzLi4uIG5vIGhvcGUuIGZhaWxlZCBhdCByZWFycmFuZ2VkIGFjY2VudCBzZXQKKwkgICAgICAgICAgICAgICAgcmV0dXJuIERPTkU7CisJICAgICAgICAgICAgfQorCSAgICAgICAgICAgIGVsc2UgeworCSAgICAgICAgICAgICAgICBpZiAoaXNTYWZlKSB7CisJICAgICAgICAgICAgICAgICAgICBmYWlsZWRvZmZzZXQgKz0gc2FmZW9mZnNldDsKKwkgICAgICAgICAgICAgICAgfQorCSAgICAgICAgICAgICAgICAKKwkgICAgICAgICAgICAgICAgLy8gdHJ5IHJlYXJyYW5naW5nIHRoZSBmcm9udCBhY2NlbnRzCisJICAgICAgICAgICAgICAgIGludCByZXN1bHQgPSBkb05leHRDYW5vbmljYWxQcmVmaXhNYXRjaChmYWlsZWRvZmZzZXQsIAorCSAgICAgICAgICAgICAgICAJCQkJCQkJCQkJdGV4dG9mZnNldCk7CisJICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gRE9ORSkgeworCSAgICAgICAgICAgICAgICAgICAgLy8gaWYgc3RhdHVzIGlzIGEgZmFpbHVyZSwgdWNvbF9zZXRPZmZzZXQgZG9lcyBub3RoaW5nCisJICAgICAgICAgICAgICAgICAgICBtX2NvbEVJdGVyXy5zZXRFeGFjdE9mZnNldChyZXN1bHQpOworCSAgICAgICAgICAgICAgICB9CisJICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisJICAgICAgICAgICAgfQorCSAgICAgICAgfQorCSAgICAgICAgaWYgKHRleHRjZSA9PSBtX3BhdHRlcm5fLm1fQ0VfW2NlaW5kZXhdKSB7CisJICAgICAgICAgICAgY2VpbmRleCAtLTsKKwkgICAgICAgIH0KKwkgICAgfQorCSAgICAvLyBzZXQgb2Zmc2V0IGhlcmUKKwkgICAgaWYgKGlzU2FmZSkgeworCSAgICAgICAgaW50IHJlc3VsdCA9IGNvbGVpdGVyLmdldE9mZnNldCgpOworCSAgICAgICAgLy8gc2V0cyB0aGUgdGV4dCBpdGVyYXRvciB3aXRoIHRoZSBjb3JyZWN0IGV4cGFuc2lvbiBhbmQgb2Zmc2V0CisJICAgICAgICBpbnQgbGVmdG92ZXJjZXMgPSBjb2xlaXRlci5tX0NFQnVmZmVyT2Zmc2V0XzsKKwkgICAgICAgIGlmIChyZXN1bHQgPj0gc2FmZWxlbmd0aCkgeyAKKwkgICAgICAgICAgICByZXN1bHQgPSB0ZXh0b2Zmc2V0OworCSAgICAgICAgfQorCSAgICAgICAgZWxzZSB7CisJICAgICAgICAgICAgcmVzdWx0ICs9IHNhZmVvZmZzZXQ7CisJICAgICAgICB9CisJICAgICAgICBtX2NvbEVJdGVyXy5zZXRFeGFjdE9mZnNldChyZXN1bHQpOworCSAgICAgICAgbV9jb2xFSXRlcl8ubV9DRUJ1ZmZlck9mZnNldF8gPSBsZWZ0b3ZlcmNlczsKKwkgICAgICAgIHJldHVybiByZXN1bHQ7CisJICAgIH0KKwkgICAgCisJICAgIHJldHVybiBjb2xlaXRlci5nZXRPZmZzZXQoKTsgICAgICAgICAgICAgIAorCX0KKwkKKwkvKioKKwkgKiBUcnlpbmcgb3V0IHRoZSBzdWJzdHJpbmcgYW5kIHNlZXMgaWYgaXQgY2FuIGJlIGEgY2Fub25pY2FsIG1hdGNoLgorCSAqIFRoaXMgd2lsbCB0cnkgbm9ybWFsaXppbmcgdGhlIGVuZCBhY2NlbnRzIGFuZCBhcnJhbmdpbmcgdGhlbSBpbnRvIAorCSAqIGNhbm9uaWNhbCBlcXVpdmFsZW50cyBhbmQgY2hlY2sgdGhlaXIgY29ycmVzcG9uZGluZyBjZXMgd2l0aCB0aGUgcGF0dGVybiAKKwkgKiBjZS4KKwkgKiBTdWZmaXggYWNjZW50cyBpbiB0aGUgdGV4dCB3aWxsIGJlIGdyb3VwZWQgYWNjb3JkaW5nIHRvIHRoZWlyIGNvbWJpbmluZyAKKwkgKiBjbGFzcyBhbmQgdGhlIGdyb3VwcyB3aWxsIGJlIG1peGVkIGFuZCBtYXRjaGVkIHRvIHRyeSBmaW5kIHRoZSBwZXJmZWN0IAorCSAqIG1hdGNoIHdpdGggdGhlIHBhdHRlcm4uCisJICogU28gZm9yIGluc3RhbmNlIGxvb2tpbmcgZm9yICJcdTAzMDEiIGluICJcdTAzMEFcdTAzMDFcdTAzMjUiCisJICogc3RlcCAxOiBzcGxpdCAiXHUwMzBBXHUwMzAxIiBpbnRvIDYgb3RoZXIgdHlwZSBvZiBwb3RlbnRpYWwgYWNjZW50IAorCSAqICAgICAgICAgc3Vic3RyaW5ncworCSAqICAgICAgICAgIlx1MDMwQSIsICJcdTAzMDEiLCAiXHUwMzI1IiwgIlx1MDMwQVx1MDMwMSIsICJcdTAzMEFcdTAzMjUiLCAKKwkgKiAgICAgICAgICJcdTAzMDFcdTAzMjUiLgorCSAqIHN0ZXAgMjogY2hlY2sgaWYgYW55IG9mIHRoZSBnZW5lcmF0ZWQgc3Vic3RyaW5ncyBtYXRjaGVzIHRoZSBwYXR0ZXJuLgorCSAqIEBwYXJhbSB0ZXh0b2Zmc2V0IGVuZCBvZmZzZXQgaW4gdGhlIGNvbGxhdGlvbiBlbGVtZW50IHRleHQgdGhhdCBlbmRzIHdpdGggCisJICogICAgICAgICAgICAgICAgICAgdGhlIGFjY2VudHMgdG8gYmUgcmVhcnJhbmdlZAorCSAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgbWF0Y2ggaXMgdmFsaWQsIGZhbHNlIG90aGVyd2lzZQorCSAqLworCXByaXZhdGUgYm9vbGVhbiBkb05leHRDYW5vbmljYWxNYXRjaChpbnQgdGV4dG9mZnNldCkKKwl7CisJCWludCBvZmZzZXQgPSBtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKTsKKwkJdGFyZ2V0VGV4dC5zZXRJbmRleCh0ZXh0b2Zmc2V0KTsKKwkJaWYgKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUodGFyZ2V0VGV4dC5wcmV2aW91cygpKSAKKwkJCSYmIHRhcmdldFRleHQuZ2V0SW5kZXgoKSA+IG1fdGV4dEJlZ2luT2Zmc2V0XykgeyAKKwkJCWlmICghVVRGMTYuaXNMZWFkU3Vycm9nYXRlKHRhcmdldFRleHQucHJldmlvdXMoKSkpIHsKKwkJCQl0YXJnZXRUZXh0Lm5leHQoKTsKKwkJCX0KKwkJfQorCSAgICBpZiAoKGdldEZDRCh0YXJnZXRUZXh0LCB0YXJnZXRUZXh0LmdldEluZGV4KCkpICYgTEFTVF9CWVRFX01BU0tfKSA9PSAwKSB7CisJICAgICAgICBpZiAobV9wYXR0ZXJuXy5tX2hhc1ByZWZpeEFjY2VudHNfKSB7CisJICAgICAgICAgICAgb2Zmc2V0ID0gZG9OZXh0Q2Fub25pY2FsUHJlZml4TWF0Y2gob2Zmc2V0LCB0ZXh0b2Zmc2V0KTsKKwkgICAgICAgICAgICBpZiAob2Zmc2V0ICE9IERPTkUpIHsKKwkgICAgICAgICAgICAgICAgbV9jb2xFSXRlcl8uc2V0RXhhY3RPZmZzZXQob2Zmc2V0KTsKKwkgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisJICAgICAgICAgICAgfQorCSAgICAgICAgfQorCSAgICAgICAgcmV0dXJuIGZhbHNlOworCSAgICB9CisJCisJICAgIGlmICghbV9wYXR0ZXJuXy5tX2hhc1N1ZmZpeEFjY2VudHNfKSB7CisJICAgICAgICByZXR1cm4gZmFsc2U7CisJICAgIH0KKwkKKwkgICAgU3RyaW5nQnVmZmVyIGFjY2VudHMgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisJICAgIC8vIG9mZnNldCB0byB0aGUgbGFzdCBiYXNlIGNoYXJhY3RlciBpbiBzdWJzdHJpbmcgdG8gc2VhcmNoCisJICAgIGludCBiYXNlb2Zmc2V0ID0gZ2V0UHJldmlvdXNCYXNlT2Zmc2V0KHRhcmdldFRleHQsIHRleHRvZmZzZXQpOworCSAgICAvLyBub3JtYWxpemluZyB0aGUgb2ZmZW5zaXZlIHN0cmluZworCSAgICBTdHJpbmcgYWNjZW50c3RyID0gZ2V0U3RyaW5nKHRhcmdldFRleHQsIGJhc2VvZmZzZXQsIAorCSAgICAJCQkJCQkJIHRleHRvZmZzZXQgLSBiYXNlb2Zmc2V0KTsKKwkgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayhhY2NlbnRzdHIsIE5vcm1hbGl6ZXIuTkZEKSAKKwkgICAgICAgIAkJCQkJCQkJCQk9PSBOb3JtYWxpemVyLk5PKSB7CisJICAgICAgICBhY2NlbnRzdHIgPSBOb3JtYWxpemVyLmRlY29tcG9zZShhY2NlbnRzdHIsIGZhbHNlKTsKKwkgICAgfQorCSAgICBhY2NlbnRzLmFwcGVuZChhY2NlbnRzdHIpOworCSAgICAvLyBzdGF0dXMgY2hlY2tlZCBpbiBsb29wIGJlbG93CisJICAgICAgICAKKwkgICAgaW50IGFjY2VudHNpbmRleFtdID0gbmV3IGludFtJTklUSUFMX0FSUkFZX1NJWkVfXTsKKwkgICAgaW50IHNpemUgPSBnZXRVbmJsb2NrZWRBY2NlbnRJbmRleChhY2NlbnRzLCBhY2NlbnRzaW5kZXgpOworCQorCSAgICAvLyAyIHBvd2VyIG4gLSAxIG1pbnVzIHRoZSBmdWxsIHNldCBvZiBhY2NlbnRzCisJICAgIGludCAgY291bnQgPSAoMiA8PCAoc2l6ZSAtIDEpKSAtIDI7ICAKKwkgICAgd2hpbGUgKGNvdW50ID4gMCkgeworICAgICAgICAgICAgbV9jYW5vbmljYWxTdWZmaXhBY2NlbnRzXy5kZWxldGUoMCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jYW5vbmljYWxTdWZmaXhBY2NlbnRzXy5sZW5ndGgoKSk7CisJICAgICAgICAvLyBjb3B5IHRoZSBiYXNlIGNoYXJhY3RlcnMKKwkgICAgICAgIGZvciAoaW50IGsgPSAwOyBrIDwgYWNjZW50c2luZGV4WzBdOyBrICsrKSB7CisJICAgICAgICAgICAgbV9jYW5vbmljYWxTdWZmaXhBY2NlbnRzXy5hcHBlbmQoYWNjZW50cy5jaGFyQXQoaykpOworCSAgICAgICAgfQorCSAgICAgICAgLy8gZm9ybWluZyBhbGwgcG9zc2libGUgY2Fub25pY2FsIHJlYXJyYW5nZW1lbnQgYnkgZHJvcHBpbmcKKwkgICAgICAgIC8vIHNldHMgb2YgYWNjZW50cworCSAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gc2l6ZSAtIDE7IGkgKyspIHsKKwkgICAgICAgICAgICBpbnQgbWFzayA9IDEgPDwgKHNpemUgLSBpIC0gMSk7CisJICAgICAgICAgICAgaWYgKChjb3VudCAmIG1hc2spICE9IDApIHsKKwkgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IGFjY2VudHNpbmRleFtpXTsgaiA8IGFjY2VudHNpbmRleFtpICsgMV07IAorCSAgICAgICAgICAgICAgICAJaiArKykgeworCSAgICAgICAgICAgICAgICAgICAgbV9jYW5vbmljYWxTdWZmaXhBY2NlbnRzXy5hcHBlbmQoYWNjZW50cy5jaGFyQXQoaikpOworCSAgICAgICAgICAgICAgICB9CisJICAgICAgICAgICAgfQorCSAgICAgICAgfQorCSAgICAgICAgb2Zmc2V0ID0gZG9OZXh0Q2Fub25pY2FsU3VmZml4TWF0Y2goYmFzZW9mZnNldCk7CisJICAgICAgICBpZiAob2Zmc2V0ICE9IERPTkUpIHsKKwkgICAgICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gbWF0Y2ggZm91bmQKKwkgICAgICAgIH0KKwkgICAgICAgIGNvdW50IC0tOworCSAgICB9CisJICAgIHJldHVybiBmYWxzZTsKKwl9CisJCisJLyoqCisJICogR2V0cyB0aGUgcHJldmlvdXMgYmFzZSBjaGFyYWN0ZXIgb2Zmc2V0IGRlcGVuZGluZyBvbiB0aGUgc3RyaW5nIHNlYXJjaCAKKwkgKiBwYXR0ZXJuIGRhdGEKKwkgKiBAcGFyYW0gc3Ryc3JjaCBzdHJpbmcgc2VhcmNoIGRhdGEKKwkgKiBAcGFyYW0gdGV4dG9mZnNldCBjdXJyZW50IG9mZnNldCwgY3VycmVudCBjaGFyYWN0ZXIKKwkgKiBAcmV0dXJuIHRoZSBvZmZzZXQgb2YgdGhlIG5leHQgY2hhcmFjdGVyIGFmdGVyIHRoaXMgYmFzZSBjaGFyYWN0ZXIgb3IgCisJICogCQkJaXRzZWxmIGlmIGl0IGlzIGEgY29tcG9zZWQgY2hhcmFjdGVyIHdpdGggYWNjZW50cworCSAqLworCXByaXZhdGUgZmluYWwgaW50IGdldFByZXZpb3VzQmFzZU9mZnNldChpbnQgdGV4dG9mZnNldCkKKwl7CisJICAgIGlmIChtX3BhdHRlcm5fLm1faGFzUHJlZml4QWNjZW50c18gJiYgdGV4dG9mZnNldCA+IG1fdGV4dEJlZ2luT2Zmc2V0XykgeworCSAgICAgICAgaW50IG9mZnNldCA9IHRleHRvZmZzZXQ7CisJICAgICAgICBpZiAoKGdldEZDRCh0YXJnZXRUZXh0LCBvZmZzZXQpID4+IFNFQ09ORF9MQVNUX0JZVEVfU0hJRlRfKSAhPSAwKSB7CisJICAgICAgICAgICAgcmV0dXJuIGdldFByZXZpb3VzQmFzZU9mZnNldCh0YXJnZXRUZXh0LCB0ZXh0b2Zmc2V0KTsKKwkgICAgICAgIH0KKwkgICAgfQorCSAgICByZXR1cm4gdGV4dG9mZnNldDsKKwl9CisJCisJLyoqCisJICogQ2hlY2tzIG1hdGNoIGZvciBjb250cmFjdGlvbi4gCisJICogSWYgdGhlIG1hdGNoIGVuZHMgd2l0aCBhIHBhcnRpYWwgY29udHJhY3Rpb24gd2UgZmFpbC4KKwkgKiBJZiB0aGUgbWF0Y2ggc3RhcnRzIHRvbyBmYXIgb2ZmIChiZWNhdXNlIG9mIGJhY2t3YXJkcyBpdGVyYXRpb24pIHdlIHRyeSAKKwkgKiB0byBjaGlwIG9mZiB0aGUgZXh0cmEgY2hhcmFjdGVycy4KKwkgKiBVc2VzIHRoZSB0ZW1wb3JhcnkgdXRpbCBidWZmZXIgZm9yIHJldHVybiB2YWx1ZXMgb2YgdGhlIG1vZGlmaWVkIHN0YXJ0CisJICogYW5kIGVuZC4KKwkgKiBAcGFyYW0gc3RhcnQgb2Zmc2V0IG9mIHBvdGVudGlhbCBtYXRjaCwgdG8gYmUgbW9kaWZpZWQgaWYgbmVjZXNzYXJ5CisJICogQHBhcmFtIGVuZCBvZmZzZXQgb2YgcG90ZW50aWFsIG1hdGNoLCB0byBiZSBtb2RpZmllZCBpZiBuZWNlc3NhcnkKKwkgKiBAcmV0dXJuIHRydWUgaWYgbWF0Y2ggcGFzc2VzIHRoZSBjb250cmFjdGlvbiB0ZXN0LCBmYWxzZSBvdGhlcndpc2UuIAorCSAqLworCXByaXZhdGUgYm9vbGVhbiBjaGVja05leHRDYW5vbmljYWxDb250cmFjdGlvbk1hdGNoKGludCBzdGFydCwgaW50IGVuZCkgCisJeworCSAgICAvLyBUaGlzIHBhcnQgY2hlY2tzIGlmIGVpdGhlciBlbmRzIG9mIHRoZSBtYXRjaCBjb250YWlucyBwb3RlbnRpYWwgCisJICAgIC8vIGNvbnRyYWN0aW9uLiBJZiBzbyB3ZSdsbCBoYXZlIHRvIGl0ZXJhdGUgdGhyb3VnaCB0aGVtCisJICAgIGNoYXIgc2NoYXIgPSAwOworCSAgICBjaGFyIGVjaGFyID0gMDsKKwkgICAgaWYgKGVuZCA8IG1fdGV4dExpbWl0T2Zmc2V0XykgeworCSAgICAJdGFyZ2V0VGV4dC5zZXRJbmRleChlbmQpOworCSAgICAJZWNoYXIgPSB0YXJnZXRUZXh0LmN1cnJlbnQoKTsKKwkgICAgfQorCSAgICBpZiAoc3RhcnQgPCBtX3RleHRMaW1pdE9mZnNldF8pIHsKKwkgICAgCXRhcmdldFRleHQuc2V0SW5kZXgoc3RhcnQgKyAxKTsKKwkgICAgCXNjaGFyID0gdGFyZ2V0VGV4dC5jdXJyZW50KCk7CisJICAgIH0KKwkgICAgaWYgKG1fY29sbGF0b3JfLmlzVW5zYWZlKGVjaGFyKSB8fCBtX2NvbGxhdG9yXy5pc1Vuc2FmZShzY2hhcikpIHsKKwkgICAgICAgIGludCBleHBhbnNpb24gID0gbV9jb2xFSXRlcl8ubV9DRUJ1ZmZlck9mZnNldF87CisJICAgICAgICBib29sZWFuIGhhc0V4cGFuc2lvbiA9IGV4cGFuc2lvbiA+IDA7CisJICAgICAgICBtX2NvbEVJdGVyXy5zZXRFeGFjdE9mZnNldChzdGFydCk7CisJICAgICAgICBpbnQgdGVtcCA9IHN0YXJ0OworCSAgICAgICAgd2hpbGUgKGV4cGFuc2lvbiA+IDApIHsKKwkgICAgICAgICAgICAvLyBnZXR0aW5nIHJpZCBvZiB0aGUgcmVkdW5kYW50IGNlLCBjYXVzZWQgYnkgc2V0T2Zmc2V0LgorCSAgICAgICAgICAgIC8vIHNpbmNlIGJhY2t3YXJkIGNvbnRyYWN0aW9uL2V4cGFuc2lvbiBtYXkgaGF2ZSBleHRyYSBjZXMgaWYgCisJICAgICAgICAgICAgLy8gd2UgYXJlIGluIHRoZSBub3JtYWxpemF0aW9uIGJ1ZmZlciwgaGFzQWNjZW50c0JlZm9yZU1hdGNoIAorCSAgICAgICAgICAgIC8vIHdvdWxkIGhhdmUgdGFrZW4gY2FyZSBvZiBpdC4KKwkgICAgICAgICAgICAvLyBFLmcuIHRoZSBjaGFyYWN0ZXIgXHUwMUZBIHdpbGwgaGF2ZSBhbiBleHBhbnNpb24gb2YgMywgYnV0IAorCSAgICAgICAgICAgIC8vIGlmIHdlIGFyZSBvbmx5IGxvb2tpbmcgZm9yIGFjdXRlIGFuZCByaW5nIFx1MDMwQSBhbmQgXHUwMzAxLCAKKwkgICAgICAgICAgICAvLyB3ZSdsbCBoYXZlIHRvIHNraXAgdGhlIGZpcnN0IGNlIGluIHRoZSBleHBhbnNpb24gYnVmZmVyLgorCSAgICAgICAgICAgIG1fY29sRUl0ZXJfLm5leHQoKTsKKwkgICAgICAgICAgICBpZiAobV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCkgIT0gdGVtcCkgeworCSAgICAgICAgICAgICAgICBzdGFydCA9IHRlbXA7CisJICAgICAgICAgICAgICAgIHRlbXAgID0gbV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCk7CisJICAgICAgICAgICAgfQorCSAgICAgICAgICAgIGV4cGFuc2lvbiAtLTsKKwkgICAgICAgIH0KKwkKKwkgICAgICAgIGludCBjb3VudCA9IDA7CisJICAgICAgICB3aGlsZSAoY291bnQgPCBtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfKSB7CisJICAgICAgICAgICAgaW50IGNlID0gZ2V0Q0UobV9jb2xFSXRlcl8ubmV4dCgpKTsKKwkgICAgICAgICAgICAvLyBzdGF0dXMgY2hlY2tlZCBiZWxvdywgbm90ZSB0aGF0IGlmIHN0YXR1cyBpcyBhIGZhaWx1cmUKKwkgICAgICAgICAgICAvLyB1Y29sX25leHQgcmV0dXJucyBVQ09MX05VTExPUkRFUgorCSAgICAgICAgICAgIGlmIChjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisJICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCSAgICAgICAgICAgIH0KKwkgICAgICAgICAgICBpZiAoaGFzRXhwYW5zaW9uICYmIGNvdW50ID09IDAgCisJICAgICAgICAgICAgCSYmIG1fY29sRUl0ZXJfLmdldE9mZnNldCgpICE9IHRlbXApIHsKKwkgICAgICAgICAgICAgICAgc3RhcnQgPSB0ZW1wOworCSAgICAgICAgICAgICAgICB0ZW1wID0gbV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCk7CisJICAgICAgICAgICAgfQorCQorCSAgICAgICAgICAgIGlmIChjb3VudCA9PSAwICYmIGNlICE9IG1fcGF0dGVybl8ubV9DRV9bMF0pIHsKKwkgICAgICAgICAgICAgICAgLy8gYWNjZW50cyBtYXkgaGF2ZSBleHRyYSBzdGFydGluZyBjZXMsIHRoaXMgb2NjdXJzIHdoZW4gYSAKKwkgICAgICAgICAgICAgICAgLy8gcHVyZSBhY2NlbnQgcGF0dGVybiBpcyBtYXRjaGVkIHdpdGhvdXQgcmVhcnJhbmdlbWVudAorCSAgICAgICAgICAgICAgICAvLyB0ZXh0IFx1MDMyNVx1MDMwMCBhbmQgbG9va2luZyBmb3IgXHUwMzAwCisJICAgICAgICAgICAgICAgIGludCBleHBlY3RlZCA9IG1fcGF0dGVybl8ubV9DRV9bMF07IAorCSAgICAgICAgICAgICAgICBpZiAoKGdldEZDRCh0YXJnZXRUZXh0LCBzdGFydCkgJiBMQVNUX0JZVEVfTUFTS18pICE9IDApIHsKKwkgICAgICAgICAgICAgICAgICAgIGNlID0gZ2V0Q0UobV9jb2xFSXRlcl8ubmV4dCgpKTsKKwkgICAgICAgICAgICAgICAgICAgIHdoaWxlIChjZSAhPSBleHBlY3RlZCAKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBjZSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSIAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIG1fY29sRUl0ZXJfLmdldE9mZnNldCgpIDw9IGVuZCkgeworCSAgICAgICAgICAgICAgICAgICAgICAgIGNlID0gZ2V0Q0UobV9jb2xFSXRlcl8ubmV4dCgpKTsKKwkgICAgICAgICAgICAgICAgICAgIH0KKwkgICAgICAgICAgICAgICAgfQorCSAgICAgICAgICAgIH0KKwkgICAgICAgICAgICBpZiAoY2UgIT0gbV9wYXR0ZXJuXy5tX0NFX1tjb3VudF0pIHsKKwkgICAgICAgICAgICAgICAgZW5kICsrOworCSAgICAgICAgICAgICAgICBlbmQgPSBnZXROZXh0QmFzZU9mZnNldChlbmQpOyAgCisJICAgICAgICAgICAgICAgIG1fdXRpbEJ1ZmZlcl9bMF0gPSBzdGFydDsKKwkgICAgICAgICAgICAgICAgbV91dGlsQnVmZmVyX1sxXSA9IGVuZDsKKwkgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCSAgICAgICAgICAgIH0KKwkgICAgICAgICAgICBjb3VudCArKzsKKwkgICAgICAgIH0KKwkgICAgfSAKKwkgICAgbV91dGlsQnVmZmVyX1swXSA9IHN0YXJ0OworCSAgICBtX3V0aWxCdWZmZXJfWzFdID0gZW5kOworCSAgICByZXR1cm4gdHJ1ZTsKKwl9CisKKwkvKioKKwkgKiBDaGVja3MgYW5kIHNldHMgdGhlIG1hdGNoIGluZm9ybWF0aW9uIGlmIGZvdW5kLgorCSAqIENoZWNrcyAKKwkgKiA8dWw+CisJICogPGxpPiB0aGUgcG90ZW50aWFsIG1hdGNoIGRvZXMgbm90IHJlcGVhdCB0aGUgcHJldmlvdXMgbWF0Y2gKKwkgKiA8bGk+IGJvdW5kYXJpZXMgYXJlIGNvcnJlY3QKKwkgKiA8bGk+IHBvdGVudGlhbCBtYXRjaCBkb2VzIG5vdCBlbmQgaW4gdGhlIG1pZGRsZSBvZiBhIGNvbnRyYWN0aW9uCisJICogPGxpPiBpZGVudGljYWwgbWF0Y2hlcworCSAqIDwvdWw+CisJICogT3RoZXJ3aXNlIHRoZSBvZmZzZXQgd2lsbCBiZSBzaGlmdGVkIHRvIHRoZSBuZXh0IGNoYXJhY3Rlci4KKwkgKiBUaGUgcmVzdWx0IG1fbWF0Y2hJbmRleF8gYW5kIG1fbWF0Y2hMZW5ndGhfIHdpbGwgYmUgc2V0IHRvIHRoZSB0cnVuY2F0ZWQKKwkgKiBtb3JlIGZpdHRpbmcgcmVzdWx0IHZhbHVlLgorCSAqIFVzZXMgdGhlIHRlbXBvcmFyeSB1dGlsaXR5IGJ1ZmZlciBmb3Igc3RvcmluZyB0aGUgbW9kaWZpZWQgdGV4dG9mZnNldC4KKwkgKiBAcGFyYW0gdGV4dG9mZnNldCBvZmZzZXQgaW4gdGhlIGNvbGxhdGlvbiBlbGVtZW50IHRleHQuCisJICogQHJldHVybiB0cnVlIGlmIHRoZSBtYXRjaCBpcyB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlCisJICovCisJcHJpdmF0ZSBib29sZWFuIGNoZWNrTmV4dENhbm9uaWNhbE1hdGNoKGludCB0ZXh0b2Zmc2V0KQorCXsKKwkgICAgLy8gdG8gZW5zdXJlIHRoYXQgdGhlIHN0YXJ0IGFuZCBlbmRzIGFyZSBub3QgY29tcG9zaXRlIGNoYXJhY3RlcnMKKwkgICAgLy8gaWYgd2UgaGF2ZSBhIGNhbm9uaWNhbCBhY2NlbnQgbWF0Y2gKKwkgICAgaWYgKChtX3BhdHRlcm5fLm1faGFzU3VmZml4QWNjZW50c18gCisJICAgIAkJJiYgbV9jYW5vbmljYWxTdWZmaXhBY2NlbnRzXy5sZW5ndGgoKSAhPSAwKSB8fCAKKwkgICAgICAgIChtX3BhdHRlcm5fLm1faGFzUHJlZml4QWNjZW50c18gCisJICAgICAgICAJJiYgbV9jYW5vbmljYWxQcmVmaXhBY2NlbnRzXy5sZW5ndGgoKSAhPSAwKSkgeworCSAgICAgICAgbV9tYXRjaGVkSW5kZXhfID0gZ2V0UHJldmlvdXNCYXNlT2Zmc2V0KG1fY29sRUl0ZXJfLmdldE9mZnNldCgpKTsKKwkgICAgICAgIG1hdGNoTGVuZ3RoID0gdGV4dG9mZnNldCAtIG1fbWF0Y2hlZEluZGV4XzsKKwkgICAgICAgIHJldHVybiB0cnVlOworCSAgICB9CisJCisJICAgIGludCBzdGFydCA9IG1fY29sRUl0ZXJfLmdldE9mZnNldCgpOworCSAgICBpZiAoIWNoZWNrTmV4dENhbm9uaWNhbENvbnRyYWN0aW9uTWF0Y2goc3RhcnQsIHRleHRvZmZzZXQpKSB7CisJICAgIAkvLyByZXR1cm4gdGhlIG1vZGlmaWVkIHRleHRvZmZzZXQKKwkgICAgCW1fdXRpbEJ1ZmZlcl9bMF0gPSBtX3V0aWxCdWZmZXJfWzFdOyAKKwkgICAgICAgIHJldHVybiBmYWxzZTsKKwkgICAgfQorCSAgICBzdGFydCA9IG1fdXRpbEJ1ZmZlcl9bMF07CisJICAgIHRleHRvZmZzZXQgPSBtX3V0aWxCdWZmZXJfWzFdOworCSAgICBzdGFydCA9IGdldFByZXZpb3VzQmFzZU9mZnNldChzdGFydCk7CisJICAgIC8vIHRoaXMgdG90YWxseSBtYXRjaGVzLCBob3dldmVyIHdlIG5lZWQgdG8gY2hlY2sgaWYgaXQgaXMgcmVwZWF0aW5nCisJICAgIGlmIChjaGVja1JlcGVhdGVkTWF0Y2goc3RhcnQsIHRleHRvZmZzZXQpIAorCSAgICAJfHwgIWlzQnJlYWtVbml0KHN0YXJ0LCB0ZXh0b2Zmc2V0KSAKKwkgICAgCXx8ICFjaGVja0lkZW50aWNhbChzdGFydCwgdGV4dG9mZnNldCkpIHsKKwkgICAgICAgIHRleHRvZmZzZXQgKys7CisJICAgICAgICB0ZXh0b2Zmc2V0ID0gZ2V0TmV4dEJhc2VPZmZzZXQodGFyZ2V0VGV4dCwgdGV4dG9mZnNldCk7CisJICAgICAgICBtX3V0aWxCdWZmZXJfWzBdID0gdGV4dG9mZnNldDsKKwkgICAgICAgIHJldHVybiBmYWxzZTsKKwkgICAgfQorCSAgICAKKwkgICAgbV9tYXRjaGVkSW5kZXhfICA9IHN0YXJ0OworCSAgICBtYXRjaExlbmd0aCA9IHRleHRvZmZzZXQgLSBzdGFydDsKKwkgICAgcmV0dXJuIHRydWU7CisJfQorCQorCS8qKgorCSAqIFNoaWZ0aW5nIHRoZSBjb2xsYXRpb24gZWxlbWVudCBpdGVyYXRvciBwb3NpdGlvbiBmb3J3YXJkIHRvIHByZXBhcmUgZm9yCisJICogYSBwcmVjZWRpbmcgbWF0Y2guIElmIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaXMgYSB1bnNhZmUgY2hhcmFjdGVyLCB3ZSdsbCAKKwkgKiBvbmx5IHNoaWZ0IGJ5IDEgdG8gY2FwdHVyZSBjb250cmFjdGlvbnMsIG5vcm1hbGl6YXRpb24gZXRjLgorCSAqIEBwYXJhbSB0ZXh0b2Zmc2V0IHN0YXJ0IHRleHQgcG9zaXRpb24gdG8gZG8gc2VhcmNoCisJICogQHBhcmFtIGNlIHRoZSB0ZXh0IGNlIHdoaWNoIGZhaWxlZCB0aGUgbWF0Y2guCisJICogQHBhcmFtIHBhdHRlcm5jZWluZGV4IGluZGV4IG9mIHRoZSBjZSB3aXRoaW4gdGhlIHBhdHRlcm4gY2UgYnVmZmVyIHdoaWNoCisJICogICAgICAgIGZhaWxlZCB0aGUgbWF0Y2gKKwkgKiBAcmV0dXJuIGZpbmFsIG9mZnNldAorCSAqLworCXByaXZhdGUgaW50IHJldmVyc2VTaGlmdChpbnQgdGV4dG9mZnNldCwgaW50IGNlLCBpbnQgcGF0dGVybmNlaW5kZXgpCisJeyAgICAgICAgIAorCSAgICBpZiAoaXNPdmVybGFwcGluZygpKSB7CisJICAgICAgICBpZiAodGV4dG9mZnNldCAhPSBtX3RleHRMaW1pdE9mZnNldF8pIHsKKwkgICAgICAgICAgICB0ZXh0b2Zmc2V0IC0tOworCSAgICAgICAgfQorCSAgICAgICAgZWxzZSB7CisJICAgICAgICAgICAgdGV4dG9mZnNldCAtPSBtX3BhdHRlcm5fLm1fZGVmYXVsdFNoaWZ0U2l6ZV87CisJICAgICAgICB9CisJICAgIH0KKwkgICAgZWxzZSB7CisJICAgICAgICBpZiAoY2UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworCSAgICAgICAgICAgIGludCBzaGlmdCA9IG1fcGF0dGVybl8ubV9iYWNrU2hpZnRfW2hhc2goY2UpXTsKKwkgICAgICAgICAgICAKKwkgICAgICAgICAgICAvLyB0aGlzIGlzIHRvIGFkanVzdCBmb3IgY2hhcmFjdGVycyBpbiB0aGUgbWlkZGxlIG9mIHRoZSBzdWJzdHJpbmcgCisJICAgICAgICAgICAgLy8gZm9yIG1hdGNoaW5nIHRoYXQgZmFpbGVkLgorCSAgICAgICAgICAgIGludCBhZGp1c3QgPSBwYXR0ZXJuY2VpbmRleDsKKwkgICAgICAgICAgICBpZiAoYWRqdXN0ID4gMSAmJiBzaGlmdCA+IGFkanVzdCkgeworCSAgICAgICAgICAgICAgICBzaGlmdCAtPSBhZGp1c3QgLSAxOworCSAgICAgICAgICAgIH0KKwkgICAgICAgICAgICB0ZXh0b2Zmc2V0IC09IHNoaWZ0OworCSAgICAgICAgfQorCSAgICAgICAgZWxzZSB7CisJICAgICAgICAgICAgdGV4dG9mZnNldCAtPSBtX3BhdHRlcm5fLm1fZGVmYXVsdFNoaWZ0U2l6ZV87CisJICAgICAgICB9CisJICAgIH0gICAgCisgICAgICAgIAorCSAgICB0ZXh0b2Zmc2V0ID0gZ2V0UHJldmlvdXNCYXNlT2Zmc2V0KHRleHRvZmZzZXQpOworCSAgICByZXR1cm4gdGV4dG9mZnNldDsKKwl9CisKKwkvKioKKwkgKiBDaGVja3MgbWF0Y2ggZm9yIGNvbnRyYWN0aW9uLiAKKwkgKiBJZiB0aGUgbWF0Y2ggc3RhcnRzIHdpdGggYSBwYXJ0aWFsIGNvbnRyYWN0aW9uIHdlIGZhaWwuCisJICogVXNlcyB0aGUgdGVtcG9yYXJ5IHV0aWxpdHkgYnVmZmVyIHRvIHJldHVybiB0aGUgbW9kaWZpZWQgc3RhcnQgYW5kIGVuZC4KKwkgKiBAcGFyYW0gc3RhcnQgb2Zmc2V0IG9mIHBvdGVudGlhbCBtYXRjaCwgdG8gYmUgbW9kaWZpZWQgaWYgbmVjZXNzYXJ5CisJICogQHBhcmFtIGVuZCBvZmZzZXQgb2YgcG90ZW50aWFsIG1hdGNoLCB0byBiZSBtb2RpZmllZCBpZiBuZWNlc3NhcnkKKwkgKiBAcmV0dXJuIHRydWUgaWYgbWF0Y2ggcGFzc2VzIHRoZSBjb250cmFjdGlvbiB0ZXN0LCBmYWxzZSBvdGhlcndpc2UuCisJICovCisJcHJpdmF0ZSBib29sZWFuIGNoZWNrUHJldmlvdXNFeGFjdENvbnRyYWN0aW9uTWF0Y2goaW50IHN0YXJ0LCBpbnQgZW5kKSAKKwl7CisJICAgIC8vIFRoaXMgcGFydCBjaGVja3MgaWYgZWl0aGVyIGVuZHMgb2YgdGhlIG1hdGNoIGNvbnRhaW5zIHBvdGVudGlhbCAKKwkgICAgLy8gY29udHJhY3Rpb24uIElmIHNvIHdlJ2xsIGhhdmUgdG8gaXRlcmF0ZSB0aHJvdWdoIHRoZW0KKwkgICAgY2hhciBlY2hhciA9IDA7CisJICAgIGlmIChlbmQgPCBtX3RleHRMaW1pdE9mZnNldF8pIHsKKwkgICAgCXRhcmdldFRleHQuc2V0SW5kZXgoZW5kKTsKKwkgICAgCWVjaGFyID0gdGFyZ2V0VGV4dC5jdXJyZW50KCk7CisJICAgIH0KKwkgICAgY2hhciBzY2hhciA9IDA7CisJICAgIGlmIChzdGFydCArIDEgPCBtX3RleHRMaW1pdE9mZnNldF8pIHsKKwkgICAgCXRhcmdldFRleHQuc2V0SW5kZXgoc3RhcnQgKyAxKTsKKwkgICAgCXNjaGFyID0gdGFyZ2V0VGV4dC5jdXJyZW50KCk7CisJICAgIH0KKwkgICAgaWYgKG1fY29sbGF0b3JfLmlzVW5zYWZlKGVjaGFyKSB8fCBtX2NvbGxhdG9yXy5pc1Vuc2FmZShzY2hhcikpIHsKKwkgICAgCS8vIGV4cGFuc2lvbiBzdWZmaXgsIHdoYXQncyBsZWZ0IHRvIGl0ZXJhdGUKKwkgICAgICAgIGludCBleHBhbnNpb24gPSBtX2NvbEVJdGVyXy5tX0NFQnVmZmVyU2l6ZV8gCisJICAgICAgICAJCQkJCQkJCS0gbV9jb2xFSXRlcl8ubV9DRUJ1ZmZlck9mZnNldF87CisJICAgICAgICBib29sZWFuIGhhc0V4cGFuc2lvbiA9IGV4cGFuc2lvbiA+IDA7CisJICAgICAgICBtX2NvbEVJdGVyXy5zZXRFeGFjdE9mZnNldChlbmQpOworCSAgICAgICAgaW50IHRlbXAgPSBlbmQ7CisJICAgICAgICB3aGlsZSAoZXhwYW5zaW9uID4gMCkgeworCSAgICAgICAgICAgIC8vIGdldHRpbmcgcmlkIG9mIHRoZSByZWR1bmRhbnQgY2UKKwkgICAgICAgICAgICAvLyBzaW5jZSBmb3J3YXJkIGNvbnRyYWN0aW9uL2V4cGFuc2lvbiBtYXkgaGF2ZSBleHRyYSBjZXMKKwkgICAgICAgICAgICAvLyBpZiB3ZSBhcmUgaW4gdGhlIG5vcm1hbGl6YXRpb24gYnVmZmVyLCBoYXNBY2NlbnRzQmVmb3JlTWF0Y2gKKwkgICAgICAgICAgICAvLyB3b3VsZCBoYXZlIHRha2VuIGNhcmUgb2YgaXQuCisJICAgICAgICAgICAgLy8gRS5nLiB0aGUgY2hhcmFjdGVyIFx1MDFGQSB3aWxsIGhhdmUgYW4gZXhwYW5zaW9uIG9mIDMsIGJ1dCBpZgorCSAgICAgICAgICAgIC8vIHdlIGFyZSBvbmx5IGxvb2tpbmcgZm9yIEEgcmluZyBBXHUwMzBBLCB3ZSdsbCBoYXZlIHRvIHNraXAgdGhlIAorCSAgICAgICAgICAgIC8vIGxhc3QgY2UgaW4gdGhlIGV4cGFuc2lvbiBidWZmZXIKKwkgICAgICAgICAgICBtX2NvbEVJdGVyXy5wcmV2aW91cygpOworCSAgICAgICAgICAgIGlmIChtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKSAhPSB0ZW1wKSB7CisJICAgICAgICAgICAgICAgIGVuZCA9IHRlbXA7CisJICAgICAgICAgICAgICAgIHRlbXAgPSBtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKTsKKwkgICAgICAgICAgICB9CisJICAgICAgICAgICAgZXhwYW5zaW9uIC0tOworCSAgICAgICAgfQorCQorCSAgICAgICAgaW50IGNvdW50ID0gbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXzsKKwkgICAgICAgIHdoaWxlIChjb3VudCA+IDApIHsKKwkgICAgICAgICAgICBpbnQgY2UgPSBnZXRDRShtX2NvbEVJdGVyXy5wcmV2aW91cygpKTsKKwkgICAgICAgICAgICAvLyBzdGF0dXMgY2hlY2tlZCBiZWxvdywgbm90ZSB0aGF0IGlmIHN0YXR1cyBpcyBhIGZhaWx1cmUKKwkgICAgICAgICAgICAvLyB1Y29sX3ByZXZpb3VzIHJldHVybnMgVUNPTF9OVUxMT1JERVIKKwkgICAgICAgICAgICBpZiAoY2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworCSAgICAgICAgICAgICAgICBjb250aW51ZTsKKwkgICAgICAgICAgICB9CisJICAgICAgICAgICAgaWYgKGhhc0V4cGFuc2lvbiAmJiBjb3VudCA9PSAwIAorCSAgICAgICAgICAgIAkmJiBtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKSAhPSB0ZW1wKSB7CisJICAgICAgICAgICAgICAgIGVuZCA9IHRlbXA7CisJICAgICAgICAgICAgICAgIHRlbXAgPSBtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKTsKKwkgICAgICAgICAgICB9CisJICAgICAgICAgICAgaWYgKGNlICE9IG1fcGF0dGVybl8ubV9DRV9bY291bnQgLSAxXSkgeworCSAgICAgICAgICAgICAgICBzdGFydCAtLTsKKwkgICAgICAgICAgICAgICAgc3RhcnQgPSBnZXRQcmV2aW91c0Jhc2VPZmZzZXQodGFyZ2V0VGV4dCwgc3RhcnQpOworCSAgICAgICAgICAgICAgICBtX3V0aWxCdWZmZXJfWzBdID0gc3RhcnQ7CisJICAgICAgICAgICAgICAgIG1fdXRpbEJ1ZmZlcl9bMV0gPSBlbmQ7CisJICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKwkgICAgICAgICAgICB9CisJICAgICAgICAgICAgY291bnQgLS07CisJICAgICAgICB9CisJICAgIH0gCisJICAgIG1fdXRpbEJ1ZmZlcl9bMF0gPSBzdGFydDsKKwkgICAgbV91dGlsQnVmZmVyX1sxXSA9IGVuZDsKKwkgICAgcmV0dXJuIHRydWU7CisJfQorCQorCS8qKgorCSAqIENoZWNrcyBhbmQgc2V0cyB0aGUgbWF0Y2ggaW5mb3JtYXRpb24gaWYgZm91bmQuCisJICogQ2hlY2tzIAorCSAqIDx1bD4KKwkgKiA8bGk+IHRoZSBjdXJyZW50IG1hdGNoIGRvZXMgbm90IHJlcGVhdCB0aGUgbGFzdCBtYXRjaAorCSAqIDxsaT4gYm91bmRhcmllcyBhcmUgY29ycmVjdAorCSAqIDxsaT4gZXhhY3QgbWF0Y2hlcyBoYXMgbm8gZXh0cmEgYWNjZW50cworCSAqIDxsaT4gaWRlbnRpY2FsIG1hdGNoZXMKKwkgKiA8L3VsPgorCSAqIE90aGVyd2lzZSB0aGUgb2Zmc2V0IHdpbGwgYmUgc2hpZnRlZCB0byB0aGUgcHJlY2VkaW5nIGNoYXJhY3Rlci4KKwkgKiBVc2VzIHRoZSB0ZW1wb3JhcnkgdXRpbGl0eSBidWZmZXIgdG8gc3RvcmUgdGhlIG1vZGlmaWVkIHRleHRvZmZzZXQuCisJICogQHBhcmFtIHRleHRvZmZzZXQgb2Zmc2V0IGluIHRoZSBjb2xsYXRpb24gZWxlbWVudCB0ZXh0LiB0aGUgcmV0dXJuZWQgdmFsdWUKKwkgKiAgICAgICAgd2lsbCBiZSB0aGUgdHJ1bmNhdGVkIHN0YXJ0IG9mZnNldCBvZiB0aGUgbWF0Y2ggb3IgdGhlIG5ldyBzdGFydCAKKwkgKiAgICAgICAgc2VhcmNoIG9mZnNldC4KKwkgKiBAcmV0dXJuIHRydWUgaWYgdGhlIG1hdGNoIGlzIHZhbGlkLCBmYWxzZSBvdGhlcndpc2UKKwkgKi8KKwlwcml2YXRlIGZpbmFsIGJvb2xlYW4gY2hlY2tQcmV2aW91c0V4YWN0TWF0Y2goaW50IHRleHRvZmZzZXQpCisJeworCSAgICAvLyB0byBlbnN1cmUgdGhhdCB0aGUgc3RhcnQgYW5kIGVuZHMgYXJlIG5vdCBjb21wb3NpdGUgY2hhcmFjdGVycworCSAgICBpbnQgZW5kID0gbV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCk7ICAgICAgICAKKwkgICAgaWYgKCFjaGVja1ByZXZpb3VzRXhhY3RDb250cmFjdGlvbk1hdGNoKHRleHRvZmZzZXQsIGVuZCkpIHsKKwkgICAgICAgIHJldHVybiBmYWxzZTsKKwkgICAgfQorCSAgICB0ZXh0b2Zmc2V0ID0gbV91dGlsQnVmZmVyX1swXTsKKwkgICAgZW5kID0gbV91dGlsQnVmZmVyX1sxXTsKKwkgICAgICAgIAorCSAgICAvLyB0aGlzIHRvdGFsbHkgbWF0Y2hlcywgaG93ZXZlciB3ZSBuZWVkIHRvIGNoZWNrIGlmIGl0IGlzIHJlcGVhdGluZworCSAgICAvLyB0aGUgb2xkIG1hdGNoCisJICAgIGlmIChjaGVja1JlcGVhdGVkTWF0Y2godGV4dG9mZnNldCwgZW5kKSAKKwkgICAgCXx8ICFpc0JyZWFrVW5pdCh0ZXh0b2Zmc2V0LCBlbmQpIAorCSAgICAJfHwgaGFzQWNjZW50c0JlZm9yZU1hdGNoKHRleHRvZmZzZXQsIGVuZCkgCisJICAgIAl8fCAhY2hlY2tJZGVudGljYWwodGV4dG9mZnNldCwgZW5kKSAKKwkgICAgCXx8IGhhc0FjY2VudHNBZnRlck1hdGNoKHRleHRvZmZzZXQsIGVuZCkpIHsKKwkgICAgICAgIHRleHRvZmZzZXQgLS07CisJICAgICAgICB0ZXh0b2Zmc2V0ID0gZ2V0UHJldmlvdXNCYXNlT2Zmc2V0KHRhcmdldFRleHQsIHRleHRvZmZzZXQpOworCSAgICAgICAgbV91dGlsQnVmZmVyX1swXSA9IHRleHRvZmZzZXQ7CisJICAgICAgICByZXR1cm4gZmFsc2U7CisJICAgIH0KKwkgICAgbV9tYXRjaGVkSW5kZXhfID0gdGV4dG9mZnNldDsKKwkgICAgbWF0Y2hMZW5ndGggPSBlbmQgLSB0ZXh0b2Zmc2V0OworCSAgICByZXR1cm4gdHJ1ZTsKKwl9CisKKwkvKioKKwkgKiBSZWFycmFuZ2VzIHRoZSBlbmQgYWNjZW50cyB0byB0cnkgbWF0Y2hpbmcuCisJICogU3VmZml4IGFjY2VudHMgaW4gdGhlIHRleHQgd2lsbCBiZSBncm91cGVkIGFjY29yZGluZyB0byB0aGVpciBjb21iaW5pbmcgCisJICogY2xhc3MgYW5kIHRoZSBncm91cHMgd2lsbCBiZSBtaXhlZCBhbmQgbWF0Y2hlZCB0byB0cnkgZmluZCB0aGUgcGVyZmVjdCAKKwkgKiBtYXRjaCB3aXRoIHRoZSBwYXR0ZXJuLgorCSAqIFNvIGZvciBpbnN0YW5jZSBsb29raW5nIGZvciAiXHUwMzAxIiBpbiAiXHUwMzBBXHUwMzAxXHUwMzI1IgorCSAqIHN0ZXAgMTogc3BsaXQgIlx1MDMwQVx1MDMwMSIgaW50byA2IG90aGVyIHR5cGUgb2YgcG90ZW50aWFsIGFjY2VudCAKKwkgKiAJCQlzdWJzdHJpbmdzCisJICogICAgICAgICAiXHUwMzBBIiwgIlx1MDMwMSIsICJcdTAzMjUiLCAiXHUwMzBBXHUwMzAxIiwgIlx1MDMwQVx1MDMyNSIsIAorCSAqICAgICAgICAgIlx1MDMwMVx1MDMyNSIuCisJICogc3RlcCAyOiBjaGVjayBpZiBhbnkgb2YgdGhlIGdlbmVyYXRlZCBzdWJzdHJpbmdzIG1hdGNoZXMgdGhlIHBhdHRlcm4uCisJICogQHBhcmFtIHN0YXJ0IG9mZnNldCBvZiB0aGUgZmlyc3QgYmFzZSBjaGFyYWN0ZXIKKwkgKiBAcGFyYW0gZW5kIHN0YXJ0IG9mIHRoZSBsYXN0IGFjY2VudCBzZXQKKwkgKiBAcmV0dXJuIERPTkUgaWYgYSBtYXRjaCBpcyBub3QgZm91bmQsIG90aGVyd2lzZSByZXR1cm4gdGhlIGVuZGluZworCSAqICAgICAgICAgb2Zmc2V0IG9mIHRoZSBtYXRjaC4gTm90ZSB0aGlzIHN0YXJ0IGluY2x1ZGVzIGFsbCBmb2xsb3dpbmcgCisJICogICAgICAgICBhY2NlbnRzLgorCSAqLworCXByaXZhdGUgaW50IGRvUHJldmlvdXNDYW5vbmljYWxTdWZmaXhNYXRjaChpbnQgc3RhcnQsIGludCBlbmQpCisJeworCSAgICB0YXJnZXRUZXh0LnNldEluZGV4KGVuZCk7CisJCWlmIChVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHRhcmdldFRleHQucHJldmlvdXMoKSkgCisJCQkmJiB0YXJnZXRUZXh0LmdldEluZGV4KCkgPiBtX3RleHRCZWdpbk9mZnNldF8pIHsKKwkJCWlmICghVVRGMTYuaXNMZWFkU3Vycm9nYXRlKHRhcmdldFRleHQucHJldmlvdXMoKSkpIHsKKwkJCQl0YXJnZXRUZXh0Lm5leHQoKTsKKwkJCX0gCisJCX0KKwkgICAgaWYgKChnZXRGQ0QodGFyZ2V0VGV4dCwgdGFyZ2V0VGV4dC5nZXRJbmRleCgpKSAmIExBU1RfQllURV9NQVNLXykgPT0gMCkgeworCSAgICAgICAgLy8gZGllLi4uIGZhaWxlZCBhdCBhIGJhc2UgY2hhcmFjdGVyCisJICAgICAgICByZXR1cm4gRE9ORTsKKwkgICAgfQorCSAgICBlbmQgPSBnZXROZXh0QmFzZU9mZnNldCh0YXJnZXRUZXh0LCBlbmQpOworCQorCSAgICBTdHJpbmdCdWZmZXIgYWNjZW50cyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKwkgICAgaW50IG9mZnNldCA9IGdldFByZXZpb3VzQmFzZU9mZnNldCh0YXJnZXRUZXh0LCBlbmQpOworCSAgICAvLyBub3JtYWxpemluZyB0aGUgb2ZmZW5zaXZlIHN0cmluZworCSAgICBTdHJpbmcgYWNjZW50c3RyID0gZ2V0U3RyaW5nKHRhcmdldFRleHQsIG9mZnNldCwgZW5kIC0gb2Zmc2V0KTsKKwkgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayhhY2NlbnRzdHIsIE5vcm1hbGl6ZXIuTkZEKSAKKwkgICAgICAgIAkJCQkJCQkJCQk9PSBOb3JtYWxpemVyLk5PKSB7CisJICAgICAgICBhY2NlbnRzdHIgPSBOb3JtYWxpemVyLmRlY29tcG9zZShhY2NlbnRzdHIsIGZhbHNlKTsKKwkgICAgfQorCSAgICBhY2NlbnRzLmFwcGVuZChhY2NlbnRzdHIpOyAgICAKKwkgICAgICAgIAorCSAgICBpbnQgYWNjZW50c2luZGV4W10gPSBuZXcgaW50W0lOSVRJQUxfQVJSQVlfU0laRV9dOyAgICAgIAorCSAgICBpbnQgYWNjZW50c2l6ZSA9IGdldFVuYmxvY2tlZEFjY2VudEluZGV4KGFjY2VudHMsIGFjY2VudHNpbmRleCk7CisJICAgIGludCBjb3VudCA9ICgyIDw8IChhY2NlbnRzaXplIC0gMSkpIC0gMjsgIAorCSAgICB3aGlsZSAoY291bnQgPiAwKSB7CisgICAgICAgICAgICBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfLmRlbGV0ZSgwLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfLmxlbmd0aCgpKTsKKwkgICAgICAgIC8vIGNvcHkgdGhlIGJhc2UgY2hhcmFjdGVycworCSAgICAgICAgZm9yIChpbnQgayA9IDA7IGsgPCBhY2NlbnRzaW5kZXhbMF07IGsgKyspIHsKKwkgICAgICAgICAgICAgbV9jYW5vbmljYWxTdWZmaXhBY2NlbnRzXy5hcHBlbmQoYWNjZW50cy5jaGFyQXQoaykpOworCSAgICAgICAgfQorCSAgICAgICAgLy8gZm9ybWluZyBhbGwgcG9zc2libGUgY2Fub25pY2FsIHJlYXJyYW5nZW1lbnQgYnkgZHJvcHBpbmcKKwkgICAgICAgIC8vIHNldHMgb2YgYWNjZW50cworCSAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gYWNjZW50c2l6ZSAtIDE7IGkgKyspIHsKKwkgICAgICAgICAgICBpbnQgbWFzayA9IDEgPDwgKGFjY2VudHNpemUgLSBpIC0gMSk7CisJICAgICAgICAgICAgaWYgKChjb3VudCAmIG1hc2spICE9IDApIHsKKwkgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IGFjY2VudHNpbmRleFtpXTsgaiA8IGFjY2VudHNpbmRleFtpICsgMV07IAorCSAgICAgICAgICAgICAgICAJCQkJCQkJCQkJCQkJaiArKykgeworCSAgICAgICAgICAgICAgICAgICAgbV9jYW5vbmljYWxTdWZmaXhBY2NlbnRzXy5hcHBlbmQoYWNjZW50cy5jaGFyQXQoaikpOworCSAgICAgICAgICAgICAgICB9CisJICAgICAgICAgICAgfQorCSAgICAgICAgfQorCSAgICAgICAgU3RyaW5nQnVmZmVyIG1hdGNoID0gbWVyZ2UobV9jYW5vbmljYWxQcmVmaXhBY2NlbnRzXywgdGFyZ2V0VGV4dCwKKwkgICAgICAgIAkJCQkJCQlzdGFydCwgb2Zmc2V0LCAKKwkgICAgICAgIAkJCQkJCQltX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfKTsKKwkgICAgICAgIC8vIHJ1biB0aGUgY29sbGF0b3IgaXRlcmF0b3IgdGhyb3VnaCB0aGlzIG1hdGNoCisJICAgICAgICAvLyBpZiBzdGF0dXMgaXMgYSBmYWlsdXJlIHVjb2xfc2V0VGV4dCBkb2VzIG5vdGhpbmcKKwkgICAgICAgIG1fdXRpbENvbEVJdGVyXy5zZXRUZXh0KG1hdGNoLnRvU3RyaW5nKCkpOworCSAgICAgICAgaWYgKGNoZWNrQ29sbGF0aW9uTWF0Y2gobV91dGlsQ29sRUl0ZXJfKSkgeworCSAgICAgICAgICAgIHJldHVybiBlbmQ7CisJICAgICAgICB9CisJICAgICAgICBjb3VudCAtLTsKKwkgICAgfQorCSAgICByZXR1cm4gRE9ORTsKKwl9CisJCisJLyoqCisJICogVGFrZSB0aGUgcmVhcnJhbmdlZCBzdGFydCBhY2NlbnRzIGFuZCB0cmllcyBtYXRjaGluZy4gSWYgbWF0Y2ggZmFpbGVkIGF0CisJICogYSBzZXBlcmF0ZSBmb2xsb3dpbmcgc2V0IG9mIGFjY2VudHMgKHNlcGVyYXRlZCBmcm9tIHRoZSByZWFycmFuZ2VkIG9uIGJ5CisJICogYXQgbGVhc3QgYSBiYXNlIGNoYXJhY3RlcikgdGhlbiB3ZSByZWFycmFuZ2UgdGhlIHByZWNlZGluZyBhY2NlbnRzIGFuZCAKKwkgKiB0cmllcyBtYXRjaGluZyBhZ2Fpbi4KKwkgKiBXZSBhbGxvdyBza2lwcGluZyBvZiB0aGUgZW5kcyBvZiB0aGUgYWNjZW50IHNldCBpZiB0aGUgY2VzIGRvIG5vdCBtYXRjaC4gCisJICogSG93ZXZlciBpZiB0aGUgZmFpbHVyZSBpcyBmb3VuZCBiZWZvcmUgdGhlIGFjY2VudCBzZXQsIGl0IGZhaWxzLgorCSAqIEludGVybmFsIG1ldGhvZCwgc3RhdHVzIGFzc3VtZWQgdG8gYmUgc3VjY2VzcywgY2FsbGVyIGhhcyB0byBjaGVjayAKKwkgKiBzdGF0dXMgYmVmb3JlIGNhbGxpbmcgdGhpcyBtZXRob2QuCisJICogQHBhcmFtIHRleHRvZmZzZXQgb2YgdGhlIGVuZHMgb2YgdGhlIHJlYXJyYW5nZWQgYWNjZW50CisJICogQHJldHVybiBET05FIGlmIGEgbWF0Y2ggaXMgbm90IGZvdW5kLCBvdGhlcndpc2UgcmV0dXJuIHRoZSBlbmRpbmcgb2Zmc2V0IAorCSAqIAkJCW9mIHRoZSBtYXRjaC4gTm90ZSB0aGlzIHN0YXJ0IGluY2x1ZGVzIGFsbCBmb2xsb3dpbmcgYWNjZW50cy4KKwkgKi8KKwlwcml2YXRlIGludCBkb1ByZXZpb3VzQ2Fub25pY2FsUHJlZml4TWF0Y2goaW50IHRleHRvZmZzZXQpCisJeworCSAgICBpbnQgc2FmZWxlbmd0aCA9IDA7CisJICAgIFN0cmluZ0J1ZmZlciBzYWZldGV4dDsKKwkgICAgaW50IHNhZmVvZmZzZXQgPSB0ZXh0b2Zmc2V0OworCQorCSAgICBpZiAodGV4dG9mZnNldCA+IG1fdGV4dEJlZ2luT2Zmc2V0XworCSAgICAJJiYgbV9jb2xsYXRvcl8uaXNVbnNhZmUobV9jYW5vbmljYWxQcmVmaXhBY2NlbnRzXy5jaGFyQXQoCisJICAgIAkJCQkJCQltX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfLmxlbmd0aCgpIC0gMSkpKSB7CisJICAgICAgICBzYWZlb2Zmc2V0ID0gZ2V0TmV4dFNhZmVPZmZzZXQodGV4dG9mZnNldCwgbV90ZXh0TGltaXRPZmZzZXRfKTsKKwkgICAgICAgIHNhZmVsZW5ndGggPSBzYWZlb2Zmc2V0IC0gdGV4dG9mZnNldDsKKwkgICAgICAgIHNhZmV0ZXh0ID0gbWVyZ2UobV9jYW5vbmljYWxQcmVmaXhBY2NlbnRzXywgdGFyZ2V0VGV4dCwgdGV4dG9mZnNldCwgCisJICAgICAgICAJCQkJIHNhZmVvZmZzZXQsIG51bGwpOworCSAgICB9CisJICAgIGVsc2UgeworCSAgICAgICAgc2FmZXRleHQgPSBtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfOworCSAgICB9CisJCisJICAgIC8vIGlmIHN0YXR1cyBpcyBhIGZhaWx1cmUsIHVjb2xfc2V0VGV4dCBkb2VzIG5vdGhpbmcKKwkgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGNvbGVpdGVyID0gbV91dGlsQ29sRUl0ZXJfOworCSAgICBjb2xlaXRlci5zZXRUZXh0KHNhZmV0ZXh0LnRvU3RyaW5nKCkpOworCSAgICAvLyBzdGF0dXMgY2hlY2tlZCBpbiBsb29wIGJlbG93CisJICAgIAorCSAgICBpbnQgY2VpbmRleCA9IDA7CisJICAgIGJvb2xlYW4gaXNTYWZlID0gdHJ1ZTsgLy8gc2FmZSB6b25lIGluZGljYXRpb24gZmxhZyBmb3IgcG9zaXRpb24KKwkgICAgaW50IHByZWZpeGxlbmd0aCA9IG1fY2Fub25pY2FsUHJlZml4QWNjZW50c18ubGVuZ3RoKCk7CisJICAgIAorCSAgICB3aGlsZSAoY2VpbmRleCA8IG1fcGF0dGVybl8ubV9DRUxlbmd0aF8pIHsKKwkgICAgICAgIGludCB0ZXh0Y2UgPSBjb2xlaXRlci5uZXh0KCk7CisJICAgICAgICBpZiAodGV4dGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKwkgICAgICAgICAgICAvLyBjaGVjayBpZiB3ZSBoYXZlIHBhc3NlZCB0aGUgc2FmZSBidWZmZXIKKwkgICAgICAgICAgICBpZiAoY29sZWl0ZXIgPT0gbV9jb2xFSXRlcl8pIHsKKwkgICAgICAgICAgICAgICAgcmV0dXJuIERPTkU7CisJICAgICAgICAgICAgfQorCSAgICAgICAgICAgIGlmIChzYWZldGV4dCAhPSBtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfKSB7CisJICAgICAgICAgICAgCXNhZmV0ZXh0LmRlbGV0ZSgwLCBzYWZldGV4dC5sZW5ndGgoKSk7CisJICAgICAgICAgICAgfQorCSAgICAgICAgICAgIGNvbGVpdGVyID0gbV9jb2xFSXRlcl87CisJICAgICAgICAgICAgY29sZWl0ZXIuc2V0RXhhY3RPZmZzZXQoc2FmZW9mZnNldCk7CisJICAgICAgICAgICAgLy8gc3RhdHVzIGNoZWNrZWQgYXQgdGhlIHN0YXJ0IG9mIHRoZSBsb29wCisJICAgICAgICAgICAgaXNTYWZlID0gZmFsc2U7CisJICAgICAgICAgICAgY29udGludWU7CisJICAgICAgICB9CisJICAgICAgICB0ZXh0Y2UgPSBnZXRDRSh0ZXh0Y2UpOworCSAgICAgICAgaWYgKHRleHRjZSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFIAorCSAgICAgICAgCSYmIHRleHRjZSAhPSBtX3BhdHRlcm5fLm1fQ0VfW2NlaW5kZXhdKSB7CisJICAgICAgICAgICAgLy8gZG8gdGhlIGJlZ2lubmluZyBzdHVmZgorCSAgICAgICAgICAgIGludCBmYWlsZWRvZmZzZXQgPSBjb2xlaXRlci5nZXRPZmZzZXQoKTsKKwkgICAgICAgICAgICBpZiAoaXNTYWZlICYmIGZhaWxlZG9mZnNldCA8PSBwcmVmaXhsZW5ndGgpIHsKKwkgICAgICAgICAgICAgICAgLy8gYWxhcy4uLiBubyBob3BlLiBmYWlsZWQgYXQgcmVhcnJhbmdlZCBhY2NlbnQgc2V0CisJICAgICAgICAgICAgICAgIHJldHVybiBET05FOworCSAgICAgICAgICAgIH0KKwkgICAgICAgICAgICBlbHNlIHsKKwkgICAgICAgICAgICAgICAgaWYgKGlzU2FmZSkgeworCSAgICAgICAgICAgICAgICAgICAgZmFpbGVkb2Zmc2V0ID0gc2FmZW9mZnNldCAtIGZhaWxlZG9mZnNldDsKKwkgICAgICAgICAgICAgICAgICAgIGlmIChzYWZldGV4dCAhPSBtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfKSB7CisJICAgICAgICAgICAgCQkJc2FmZXRleHQuZGVsZXRlKDAsIHNhZmV0ZXh0Lmxlbmd0aCgpKTsKKwkgICAgICAgICAgICAJCX0KKwkgICAgICAgICAgICAgICAgfQorCSAgICAgICAgICAgICAgICAKKwkgICAgICAgICAgICAgICAgLy8gdHJ5IHJlYXJyYW5naW5nIHRoZSBlbmQgYWNjZW50cworCSAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gZG9QcmV2aW91c0Nhbm9uaWNhbFN1ZmZpeE1hdGNoKHRleHRvZmZzZXQsIAorCSAgICAgICAgICAgICAgICAJCQkJCQkJCQkJCWZhaWxlZG9mZnNldCk7CisJICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gRE9ORSkgeworCSAgICAgICAgICAgICAgICAgICAgLy8gaWYgc3RhdHVzIGlzIGEgZmFpbHVyZSwgdWNvbF9zZXRPZmZzZXQgZG9lcyBub3RoaW5nCisJICAgICAgICAgICAgICAgICAgICBtX2NvbEVJdGVyXy5zZXRFeGFjdE9mZnNldChyZXN1bHQpOworCSAgICAgICAgICAgICAgICB9CisJICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisJICAgICAgICAgICAgfQorCSAgICAgICAgfQorCSAgICAgICAgaWYgKHRleHRjZSA9PSBtX3BhdHRlcm5fLm1fQ0VfW2NlaW5kZXhdKSB7CisJICAgICAgICAgICAgY2VpbmRleCArKzsKKwkgICAgICAgIH0KKwkgICAgfQorCSAgICAvLyBzZXQgb2Zmc2V0IGhlcmUKKwkgICAgaWYgKGlzU2FmZSkgeworCSAgICAgICAgaW50IHJlc3VsdCA9IGNvbGVpdGVyLmdldE9mZnNldCgpOworCSAgICAgICAgLy8gc2V0cyB0aGUgdGV4dCBpdGVyYXRvciBoZXJlIHdpdGggdGhlIGNvcnJlY3QgZXhwYW5zaW9uIGFuZCBvZmZzZXQKKwkgICAgICAgIGludCBsZWZ0b3ZlcmNlcyA9IGNvbGVpdGVyLm1fQ0VCdWZmZXJTaXplXyAKKwkgICAgICAgIAkJCQkJCQkJCS0gY29sZWl0ZXIubV9DRUJ1ZmZlck9mZnNldF87CisJICAgICAgICBpZiAocmVzdWx0IDw9IHByZWZpeGxlbmd0aCkgeyAKKwkgICAgICAgICAgICByZXN1bHQgPSB0ZXh0b2Zmc2V0OworCSAgICAgICAgfQorCSAgICAgICAgZWxzZSB7CisJICAgICAgICAgICAgcmVzdWx0ID0gdGV4dG9mZnNldCArIChzYWZlb2Zmc2V0IC0gcmVzdWx0KTsKKwkgICAgICAgIH0KKwkgICAgICAgIG1fY29sRUl0ZXJfLnNldEV4YWN0T2Zmc2V0KHJlc3VsdCk7CisJICAgICAgICBtX2NvbEVJdGVyXy5tX0NFQnVmZmVyT2Zmc2V0XyA9IG1fY29sRUl0ZXJfLm1fQ0VCdWZmZXJTaXplXyAKKwkgICAgICAgIAkJCQkJCQkJCQkJCQktIGxlZnRvdmVyY2VzOworCSAgICAgICAgcmV0dXJuIHJlc3VsdDsKKwkgICAgfQorCSAgICAKKwkgICAgcmV0dXJuIGNvbGVpdGVyLmdldE9mZnNldCgpOyAgICAgICAgICAgICAgCisJfQorCQorCS8qKgorCSAqIFRyeWluZyBvdXQgdGhlIHN1YnN0cmluZyBhbmQgc2VlcyBpZiBpdCBjYW4gYmUgYSBjYW5vbmljYWwgbWF0Y2guCisJICogVGhpcyB3aWxsIHRyeSBub3JtYWxpemluZyB0aGUgc3RhcnRpbmcgYWNjZW50cyBhbmQgYXJyYW5naW5nIHRoZW0gaW50byAKKwkgKiBjYW5vbmljYWwgZXF1aXZhbGVudHMgYW5kIGNoZWNrIHRoZWlyIGNvcnJlc3BvbmRpbmcgY2VzIHdpdGggdGhlIHBhdHRlcm4gCisJICogY2UuCisJICogUHJlZml4IGFjY2VudHMgaW4gdGhlIHRleHQgd2lsbCBiZSBncm91cGVkIGFjY29yZGluZyB0byB0aGVpciBjb21iaW5pbmcgCisJICogY2xhc3MgYW5kIHRoZSBncm91cHMgd2lsbCBiZSBtaXhlZCBhbmQgbWF0Y2hlZCB0byB0cnkgZmluZCB0aGUgcGVyZmVjdCAKKwkgKiBtYXRjaCB3aXRoIHRoZSBwYXR0ZXJuLgorCSAqIFNvIGZvciBpbnN0YW5jZSBsb29raW5nIGZvciAiXHUwMzAxIiBpbiAiXHUwMzBBXHUwMzAxXHUwMzI1IgorCSAqIHN0ZXAgMTogc3BsaXQgIlx1MDMwQVx1MDMwMSIgaW50byA2IG90aGVyIHR5cGUgb2YgcG90ZW50aWFsIGFjY2VudCAKKwkgKiAJCSAgIHN1YnN0cmluZ3MKKwkgKiAgICAgICAgICJcdTAzMEEiLCAiXHUwMzAxIiwgIlx1MDMyNSIsICJcdTAzMEFcdTAzMDEiLCAiXHUwMzBBXHUwMzI1IiwgCisJICogICAgICAgICAiXHUwMzAxXHUwMzI1Ii4KKwkgKiBzdGVwIDI6IGNoZWNrIGlmIGFueSBvZiB0aGUgZ2VuZXJhdGVkIHN1YnN0cmluZ3MgbWF0Y2hlcyB0aGUgcGF0dGVybi4KKwkgKiBAcGFyYW0gdGV4dG9mZnNldCBzdGFydCBvZmZzZXQgaW4gdGhlIGNvbGxhdGlvbiBlbGVtZW50IHRleHQgdGhhdCBzdGFydHMgCisJICogICAgICAgICAgICAgICAgICAgd2l0aCB0aGUgYWNjZW50cyB0byBiZSByZWFycmFuZ2VkCisJICogQHJldHVybiB0cnVlIGlmIHRoZSBtYXRjaCBpcyB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlCisJICovCisJcHJpdmF0ZSBib29sZWFuIGRvUHJldmlvdXNDYW5vbmljYWxNYXRjaChpbnQgdGV4dG9mZnNldCkKKwl7CisgICAgICAgIGludCBvZmZzZXQgPSBtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKTsKKwkgICAgaWYgKChnZXRGQ0QodGFyZ2V0VGV4dCwgdGV4dG9mZnNldCkgPj4gU0VDT05EX0xBU1RfQllURV9TSElGVF8pID09IDApIHsKKwkgICAgICAgIGlmIChtX3BhdHRlcm5fLm1faGFzU3VmZml4QWNjZW50c18pIHsKKwkgICAgICAgICAgICBvZmZzZXQgPSBkb1ByZXZpb3VzQ2Fub25pY2FsU3VmZml4TWF0Y2godGV4dG9mZnNldCwgb2Zmc2V0KTsKKwkgICAgICAgICAgICBpZiAob2Zmc2V0ICE9IERPTkUpIHsKKwkgICAgICAgICAgICAgICAgbV9jb2xFSXRlcl8uc2V0RXhhY3RPZmZzZXQob2Zmc2V0KTsKKwkgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisJICAgICAgICAgICAgfQorCSAgICAgICAgfQorCSAgICAgICAgcmV0dXJuIGZhbHNlOworCSAgICB9CisJCisJICAgIGlmICghbV9wYXR0ZXJuXy5tX2hhc1ByZWZpeEFjY2VudHNfKSB7CisJICAgICAgICByZXR1cm4gZmFsc2U7CisJICAgIH0KKwkKKwkgICAgU3RyaW5nQnVmZmVyIGFjY2VudHMgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisJICAgIC8vIG9mZnNldCB0byB0aGUgbGFzdCBiYXNlIGNoYXJhY3RlciBpbiBzdWJzdHJpbmcgdG8gc2VhcmNoCisJICAgIGludCBiYXNlb2Zmc2V0ID0gZ2V0TmV4dEJhc2VPZmZzZXQodGFyZ2V0VGV4dCwgdGV4dG9mZnNldCk7CisJICAgIC8vIG5vcm1hbGl6aW5nIHRoZSBvZmZlbnNpdmUgc3RyaW5nCisJICAgIFN0cmluZyB0ZXh0c3RyID0gZ2V0U3RyaW5nKHRhcmdldFRleHQsIHRleHRvZmZzZXQsIAorCSAgICAJCQkJCQkJCQkJCWJhc2VvZmZzZXQgLSB0ZXh0b2Zmc2V0KTsKKwkgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayh0ZXh0c3RyLCBOb3JtYWxpemVyLk5GRCkgCisJICAgICAgICAJCQkJCQkJCQkJPT0gTm9ybWFsaXplci5OTykgeworCSAgICAgICAgdGV4dHN0ciA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKHRleHRzdHIsIGZhbHNlKTsKKwkgICAgfQorCSAgICBhY2NlbnRzLmFwcGVuZCh0ZXh0c3RyKTsKKwkgICAgLy8gc3RhdHVzIGNoZWNrZWQgaW4gbG9vcAorCSAgICAgICAgCisJICAgIGludCBhY2NlbnRzaW5kZXhbXSA9IG5ldyBpbnRbSU5JVElBTF9BUlJBWV9TSVpFX107CisJICAgIGludCBzaXplID0gZ2V0VW5ibG9ja2VkQWNjZW50SW5kZXgoYWNjZW50cywgYWNjZW50c2luZGV4KTsKKwkKKwkgICAgLy8gMiBwb3dlciBuIC0gMSBtaW51cyB0aGUgZnVsbCBzZXQgb2YgYWNjZW50cworCSAgICBpbnQgY291bnQgPSAoMiA8PCAoc2l6ZSAtIDEpKSAtIDI7ICAKKwkgICAgd2hpbGUgKGNvdW50ID4gMCkgeworCSAgICAJbV9jYW5vbmljYWxQcmVmaXhBY2NlbnRzXy5kZWxldGUoMCwgCisJICAgIAkJCQkJCQkJbV9jYW5vbmljYWxQcmVmaXhBY2NlbnRzXy5sZW5ndGgoKSk7CisJICAgICAgICAvLyBjb3B5IHRoZSBiYXNlIGNoYXJhY3RlcnMKKwkgICAgICAgIGZvciAoaW50IGsgPSAwOyBrIDwgYWNjZW50c2luZGV4WzBdOyBrICsrKSB7CisJICAgICAgICAgICAgbV9jYW5vbmljYWxQcmVmaXhBY2NlbnRzXy5hcHBlbmQoYWNjZW50cy5jaGFyQXQoaykpOworCSAgICAgICAgfQorCSAgICAgICAgLy8gZm9ybWluZyBhbGwgcG9zc2libGUgY2Fub25pY2FsIHJlYXJyYW5nZW1lbnQgYnkgZHJvcHBpbmcKKwkgICAgICAgIC8vIHNldHMgb2YgYWNjZW50cworCSAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gc2l6ZSAtIDE7IGkgKyspIHsKKwkgICAgICAgICAgICBpbnQgbWFzayA9IDEgPDwgKHNpemUgLSBpIC0gMSk7CisJICAgICAgICAgICAgaWYgKChjb3VudCAmIG1hc2spICE9IDApIHsKKwkgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IGFjY2VudHNpbmRleFtpXTsgaiA8IGFjY2VudHNpbmRleFtpICsgMV07IAorCSAgICAgICAgICAgICAgICAJIGogKyspIHsKKwkgICAgICAgICAgICAgICAgICAgIG1fY2Fub25pY2FsUHJlZml4QWNjZW50c18uYXBwZW5kKGFjY2VudHMuY2hhckF0KGopKTsKKwkgICAgICAgICAgICAgICAgfQorCSAgICAgICAgICAgIH0KKwkgICAgICAgIH0KKwkgICAgICAgIG9mZnNldCA9IGRvUHJldmlvdXNDYW5vbmljYWxQcmVmaXhNYXRjaChiYXNlb2Zmc2V0KTsKKwkgICAgICAgIGlmIChvZmZzZXQgIT0gRE9ORSkgeworCSAgICAgICAgICAgIHJldHVybiB0cnVlOyAvLyBtYXRjaCBmb3VuZAorCSAgICAgICAgfQorCSAgICAgICAgY291bnQgLS07CisJICAgIH0KKwkgICAgcmV0dXJuIGZhbHNlOworCX0KKwkKKwkvKioKKwkgKiBDaGVja3MgbWF0Y2ggZm9yIGNvbnRyYWN0aW9uLiAKKwkgKiBJZiB0aGUgbWF0Y2ggc3RhcnRzIHdpdGggYSBwYXJ0aWFsIGNvbnRyYWN0aW9uIHdlIGZhaWwuCisJICogVXNlcyB0aGUgdGVtcG9yYXJ5IHV0aWxpdHkgYnVmZmVyIHRvIHJldHVybiB0aGUgbW9kaWZpZWQgc3RhcnQgYW5kIGVuZC4KKwkgKiBAcGFyYW0gc3RhcnQgb2Zmc2V0IG9mIHBvdGVudGlhbCBtYXRjaCwgdG8gYmUgbW9kaWZpZWQgaWYgbmVjZXNzYXJ5CisJICogQHBhcmFtIGVuZCBvZmZzZXQgb2YgcG90ZW50aWFsIG1hdGNoLCB0byBiZSBtb2RpZmllZCBpZiBuZWNlc3NhcnkKKwkgKiBAcmV0dXJuIHRydWUgaWYgbWF0Y2ggcGFzc2VzIHRoZSBjb250cmFjdGlvbiB0ZXN0LCBmYWxzZSBvdGhlcndpc2UuCisJICovCisJcHJpdmF0ZSBib29sZWFuIGNoZWNrUHJldmlvdXNDYW5vbmljYWxDb250cmFjdGlvbk1hdGNoKGludCBzdGFydCwgaW50IGVuZCkgCisJeworCSAgICBpbnQgdGVtcCA9IGVuZDsKKwkgICAgLy8gVGhpcyBwYXJ0IGNoZWNrcyBpZiBlaXRoZXIgZW5kcyBvZiB0aGUgbWF0Y2ggY29udGFpbnMgcG90ZW50aWFsIAorCSAgICAvLyBjb250cmFjdGlvbi4gSWYgc28gd2UnbGwgaGF2ZSB0byBpdGVyYXRlIHRocm91Z2ggdGhlbQorCSAgICBjaGFyIGVjaGFyID0gMDsKKwkgICAgY2hhciBzY2hhciA9IDA7CisJICAgIGlmIChlbmQgPCBtX3RleHRMaW1pdE9mZnNldF8pIHsKKwkgICAgCXRhcmdldFRleHQuc2V0SW5kZXgoZW5kKTsKKwkgICAgCWVjaGFyID0gdGFyZ2V0VGV4dC5jdXJyZW50KCk7CisJICAgIH0KKwkgICAgaWYgKHN0YXJ0ICsgMSA8IG1fdGV4dExpbWl0T2Zmc2V0XykgeworCSAgICAJdGFyZ2V0VGV4dC5zZXRJbmRleChzdGFydCArIDEpOworCSAgICAJc2NoYXIgPSB0YXJnZXRUZXh0LmN1cnJlbnQoKTsKKwkgICAgfQorCSAgICBpZiAobV9jb2xsYXRvcl8uaXNVbnNhZmUoZWNoYXIpIHx8IG1fY29sbGF0b3JfLmlzVW5zYWZlKHNjaGFyKSkgeworCSAgICAgICAgaW50IGV4cGFuc2lvbiA9IG1fY29sRUl0ZXJfLm1fQ0VCdWZmZXJTaXplXyAKKwkgICAgICAgIAkJCQkJCQkJLSBtX2NvbEVJdGVyXy5tX0NFQnVmZmVyT2Zmc2V0XzsKKwkgICAgICAgIGJvb2xlYW4gaGFzRXhwYW5zaW9uID0gZXhwYW5zaW9uID4gMDsKKwkgICAgICAgIG1fY29sRUl0ZXJfLnNldEV4YWN0T2Zmc2V0KGVuZCk7CisJICAgICAgICB3aGlsZSAoZXhwYW5zaW9uID4gMCkgeworCSAgICAgICAgICAgIC8vIGdldHRpbmcgcmlkIG9mIHRoZSByZWR1bmRhbnQgY2UKKwkgICAgICAgICAgICAvLyBzaW5jZSBmb3J3YXJkIGNvbnRyYWN0aW9uL2V4cGFuc2lvbiBtYXkgaGF2ZSBleHRyYSBjZXMKKwkgICAgICAgICAgICAvLyBpZiB3ZSBhcmUgaW4gdGhlIG5vcm1hbGl6YXRpb24gYnVmZmVyLCBoYXNBY2NlbnRzQmVmb3JlTWF0Y2gKKwkgICAgICAgICAgICAvLyB3b3VsZCBoYXZlIHRha2VuIGNhcmUgb2YgaXQuCisJICAgICAgICAgICAgLy8gRS5nLiB0aGUgY2hhcmFjdGVyIFx1MDFGQSB3aWxsIGhhdmUgYW4gZXhwYW5zaW9uIG9mIDMsIGJ1dCAKKwkgICAgICAgICAgICAvLyBpZiB3ZSBhcmUgb25seSBsb29raW5nIGZvciBBIHJpbmcgQVx1MDMwQSwgd2UnbGwgaGF2ZSB0byAKKwkgICAgICAgICAgICAvLyBza2lwIHRoZSBsYXN0IGNlIGluIHRoZSBleHBhbnNpb24gYnVmZmVyCisJICAgICAgICAgICAgbV9jb2xFSXRlcl8ucHJldmlvdXMoKTsKKwkgICAgICAgICAgICBpZiAobV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCkgIT0gdGVtcCkgeworCSAgICAgICAgICAgICAgICBlbmQgPSB0ZW1wOworCSAgICAgICAgICAgICAgICB0ZW1wID0gbV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCk7CisJICAgICAgICAgICAgfQorCSAgICAgICAgICAgIGV4cGFuc2lvbiAtLTsKKwkgICAgICAgIH0KKwkKKwkgICAgICAgIGludCBjb3VudCA9IG1fcGF0dGVybl8ubV9DRUxlbmd0aF87CisJICAgICAgICB3aGlsZSAoY291bnQgPiAwKSB7CisJICAgICAgICAgICAgaW50IGNlID0gZ2V0Q0UobV9jb2xFSXRlcl8ucHJldmlvdXMoKSk7CisJICAgICAgICAgICAgLy8gc3RhdHVzIGNoZWNrZWQgYmVsb3csIG5vdGUgdGhhdCBpZiBzdGF0dXMgaXMgYSBmYWlsdXJlCisJICAgICAgICAgICAgLy8gcHJldmlvdXMoKSByZXR1cm5zIE5VTExPUkRFUgorCSAgICAgICAgICAgIGlmIChjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisJICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCSAgICAgICAgICAgIH0KKwkgICAgICAgICAgICBpZiAoaGFzRXhwYW5zaW9uICYmIGNvdW50ID09IDAgCisJICAgICAgICAgICAgCSYmIG1fY29sRUl0ZXJfLmdldE9mZnNldCgpICE9IHRlbXApIHsKKwkgICAgICAgICAgICAgICAgZW5kID0gdGVtcDsKKwkgICAgICAgICAgICAgICAgdGVtcCA9IG1fY29sRUl0ZXJfLmdldE9mZnNldCgpOworCSAgICAgICAgICAgIH0KKwkgICAgICAgICAgICBpZiAoY291bnQgPT0gbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXyAKKwkgICAgICAgICAgICAJJiYgY2UgIT0gbV9wYXR0ZXJuXy5tX0NFX1ttX3BhdHRlcm5fLm1fQ0VMZW5ndGhfIC0gMV0pIHsKKwkgICAgICAgICAgICAgICAgLy8gYWNjZW50cyBtYXkgaGF2ZSBleHRyYSBzdGFydGluZyBjZXMsIHRoaXMgb2NjdXJzIHdoZW4gYSAKKwkgICAgICAgICAgICAgICAgLy8gcHVyZSBhY2NlbnQgcGF0dGVybiBpcyBtYXRjaGVkIHdpdGhvdXQgcmVhcnJhbmdlbWVudAorCSAgICAgICAgICAgICAgICBpbnQgZXhwZWN0ZWQgPSBtX3BhdHRlcm5fLm1fQ0VfW21fcGF0dGVybl8ubV9DRUxlbmd0aF8gLSAxXTsKKwkgICAgICAgICAgICAgICAgdGFyZ2V0VGV4dC5zZXRJbmRleChlbmQpOworCSAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSh0YXJnZXRUZXh0LnByZXZpb3VzKCkpKSB7CisJICAgICAgICAgICAgICAgIAlpZiAodGFyZ2V0VGV4dC5nZXRJbmRleCgpID4gbV90ZXh0QmVnaW5PZmZzZXRfICYmCisJICAgICAgICAgICAgICAgIAkJIVVURjE2LmlzTGVhZFN1cnJvZ2F0ZSh0YXJnZXRUZXh0LnByZXZpb3VzKCkpKSB7CisJICAgICAgICAgICAgICAgIAkJdGFyZ2V0VGV4dC5uZXh0KCk7CisJICAgICAgICAgICAgICAgIAl9CisJICAgICAgICAgICAgICAgIH0KKwkgICAgICAgICAgICAgICAgZW5kID0gdGFyZ2V0VGV4dC5nZXRJbmRleCgpOworCSAgICAgICAgICAgICAgICBpZiAoKGdldEZDRCh0YXJnZXRUZXh0LCBlbmQpICYgTEFTVF9CWVRFX01BU0tfKSAhPSAwKSB7CisJICAgICAgICAgICAgICAgICAgICBjZSA9IGdldENFKG1fY29sRUl0ZXJfLnByZXZpb3VzKCkpOworCSAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGNlICE9IGV4cGVjdGVkIAorCSAgICAgICAgICAgICAgICAgICAgCQkmJiBjZSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSIAorCSAgICAgICAgICAgICAgICAgICAgCQkmJiBtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKSA8PSBzdGFydCkgeworCSAgICAgICAgICAgICAgICAgICAgICAgIGNlID0gZ2V0Q0UobV9jb2xFSXRlcl8ucHJldmlvdXMoKSk7CisJICAgICAgICAgICAgICAgICAgICB9CisJICAgICAgICAgICAgICAgIH0KKwkgICAgICAgICAgICB9CisJICAgICAgICAgICAgaWYgKGNlICE9IG1fcGF0dGVybl8ubV9DRV9bY291bnQgLSAxXSkgeworCSAgICAgICAgICAgICAgICBzdGFydCAtLTsKKwkgICAgICAgICAgICAgICAgc3RhcnQgPSBnZXRQcmV2aW91c0Jhc2VPZmZzZXQoc3RhcnQpOworCSAgICAgICAgICAgICAgICBtX3V0aWxCdWZmZXJfWzBdID0gc3RhcnQ7CisJICAgICAgICAgICAgICAgIG1fdXRpbEJ1ZmZlcl9bMV0gPSBlbmQ7CisJICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKwkgICAgICAgICAgICB9CisJICAgICAgICAgICAgY291bnQgLS07CisJICAgICAgICB9CisJICAgIH0gCisJICAgIG1fdXRpbEJ1ZmZlcl9bMF0gPSBzdGFydDsKKwkgICAgbV91dGlsQnVmZmVyX1sxXSA9IGVuZDsKKwkgICAgcmV0dXJuIHRydWU7CisJfQorCQorCS8qKgorCSAqIENoZWNrcyBhbmQgc2V0cyB0aGUgbWF0Y2ggaW5mb3JtYXRpb24gaWYgZm91bmQuCisJICogQ2hlY2tzIAorCSAqIDx1bD4KKwkgKiA8bGk+IHRoZSBwb3RlbnRpYWwgbWF0Y2ggZG9lcyBub3QgcmVwZWF0IHRoZSBwcmV2aW91cyBtYXRjaAorCSAqIDxsaT4gYm91bmRhcmllcyBhcmUgY29ycmVjdAorCSAqIDxsaT4gcG90ZW50aWFsIG1hdGNoIGRvZXMgbm90IGVuZCBpbiB0aGUgbWlkZGxlIG9mIGEgY29udHJhY3Rpb24KKwkgKiA8bGk+IGlkZW50aWNhbCBtYXRjaGVzCisJICogPC91bD4KKwkgKiBPdGhlcndpc2UgdGhlIG9mZnNldCB3aWxsIGJlIHNoaWZ0ZWQgdG8gdGhlIG5leHQgY2hhcmFjdGVyLgorCSAqIFVzZXMgdGhlIHRlbXBvcmFyeSB1dGlsaXR5IGJ1ZmZlciBmb3Igc3RvcmluZyB0aGUgbW9kaWZpZWQgdGV4dG9mZnNldC4KKwkgKiBAcGFyYW0gdGV4dG9mZnNldCBvZmZzZXQgaW4gdGhlIGNvbGxhdGlvbiBlbGVtZW50IHRleHQuIHRoZSByZXR1cm5lZCAKKwkgKiAJCQl2YWx1ZSB3aWxsIGJlIHRoZSB0cnVuY2F0ZWQgc3RhcnQgb2Zmc2V0IG9mIHRoZSBtYXRjaCBvciB0aGUgCisJICogCQkJbmV3IHN0YXJ0IHNlYXJjaCBvZmZzZXQuCisJICogQHJldHVybiB0cnVlIGlmIHRoZSBtYXRjaCBpcyB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlCisJICovCisJcHJpdmF0ZSBib29sZWFuIGNoZWNrUHJldmlvdXNDYW5vbmljYWxNYXRjaChpbnQgdGV4dG9mZnNldCkKKwl7CisJICAgIC8vIHRvIGVuc3VyZSB0aGF0IHRoZSBzdGFydCBhbmQgZW5kcyBhcmUgbm90IGNvbXBvc2l0ZSBjaGFyYWN0ZXJzCisJICAgIC8vIGlmIHdlIGhhdmUgYSBjYW5vbmljYWwgYWNjZW50IG1hdGNoCisJICAgIGlmIChtX3BhdHRlcm5fLm1faGFzU3VmZml4QWNjZW50c18gCisJICAgIAkmJiBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfLmxlbmd0aCgpICE9IDAgCisJICAgIAl8fCBtX3BhdHRlcm5fLm1faGFzUHJlZml4QWNjZW50c18gCisJICAgIAkmJiBtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfLmxlbmd0aCgpICE9IDApIHsKKwkgICAgICAgIG1fbWF0Y2hlZEluZGV4XyA9IHRleHRvZmZzZXQ7CisJICAgICAgICBtYXRjaExlbmd0aCA9IGdldE5leHRCYXNlT2Zmc2V0KG1fY29sRUl0ZXJfLmdldE9mZnNldCgpKSAKKwkgICAgICAgICAgICAJCQkJCQkJCQkJCQktIHRleHRvZmZzZXQ7CisJICAgICAgICByZXR1cm4gdHJ1ZTsKKwkgICAgfQorCQorCSAgICBpbnQgZW5kID0gbV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCk7CisJICAgIGlmICghY2hlY2tQcmV2aW91c0Nhbm9uaWNhbENvbnRyYWN0aW9uTWF0Y2godGV4dG9mZnNldCwgZW5kKSkgeworCSAgICAJLy8gc3RvcmluZyB0aGUgbW9kaWZpZWQgdGV4dG9mZnNldAorCSAgICAJcmV0dXJuIGZhbHNlOworCSAgICB9CisJICAgIHRleHRvZmZzZXQgPSBtX3V0aWxCdWZmZXJfWzBdOworCQllbmQgPSBtX3V0aWxCdWZmZXJfWzFdOworCSAgICBlbmQgPSBnZXROZXh0QmFzZU9mZnNldChlbmQpOworCSAgICAvLyB0aGlzIHRvdGFsbHkgbWF0Y2hlcywgaG93ZXZlciB3ZSBuZWVkIHRvIGNoZWNrIGlmIGl0IGlzIHJlcGVhdGluZworCSAgICBpZiAoY2hlY2tSZXBlYXRlZE1hdGNoKHRleHRvZmZzZXQsIGVuZCkgCisJICAgIAl8fCAhaXNCcmVha1VuaXQodGV4dG9mZnNldCwgZW5kKSAKKwkgICAgCXx8ICFjaGVja0lkZW50aWNhbCh0ZXh0b2Zmc2V0LCBlbmQpKSB7CisJICAgICAgICB0ZXh0b2Zmc2V0IC0tOworCSAgICAgICAgdGV4dG9mZnNldCA9IGdldFByZXZpb3VzQmFzZU9mZnNldCh0ZXh0b2Zmc2V0KTsKKwkgICAgICAgIG1fdXRpbEJ1ZmZlcl9bMF0gPSB0ZXh0b2Zmc2V0OworCSAgICAgICAgcmV0dXJuIGZhbHNlOworCSAgICB9CisJICAgIAorCSAgICBtX21hdGNoZWRJbmRleF8gPSB0ZXh0b2Zmc2V0OworCSAgICBtYXRjaExlbmd0aCA9IGVuZCAtIHRleHRvZmZzZXQ7CisJICAgIHJldHVybiB0cnVlOworCX0KKwkKKwkvKioKKwkgKiBNZXRob2QgdGhhdCBkb2VzIHRoZSBuZXh0IGV4YWN0IG1hdGNoCisJICogQHBhcmFtIHN0YXJ0IHRoZSBvZmZzZXQgdG8gc3RhcnQgc2hpZnRpbmcgZnJvbSBhbmQgcGVyZm9ybWluZyB0aGUgCisJICogICAgICAgIG5leHQgZXhhY3QgbWF0Y2gKKwkgKi8KKwlwcml2YXRlIHZvaWQgaGFuZGxlTmV4dEV4YWN0KGludCBzdGFydCkKKwl7CisJICAgCWludCB0ZXh0b2Zmc2V0ID0gc2hpZnRGb3J3YXJkKHN0YXJ0LCAKKwkgICAJCQkJCQkJCSAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUiwKKwkgICAJCQkJCQkJCSAgbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXyk7CisJCWludCB0YXJnZXRjZSA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEU7CisJICAgIHdoaWxlICh0ZXh0b2Zmc2V0IDw9IG1fdGV4dExpbWl0T2Zmc2V0XykgeworICAgICAgICAgICAgbV9jb2xFSXRlcl8uc2V0RXhhY3RPZmZzZXQodGV4dG9mZnNldCk7CisJICAgICAgICBpbnQgcGF0dGVybmNlaW5kZXggPSBtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfIC0gMTsKKwkgICAgICAgIGJvb2xlYW4gZm91bmQgPSBmYWxzZTsKKwkgICAgICAgIGludCBsYXN0Y2UgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSOworCSAgICAgICAgCisJICAgICAgICB3aGlsZSAodHJ1ZSkgeworCSAgICAgICAgICAgIC8vIGZpbmRpbmcgdGhlIGxhc3QgcGF0dGVybiBjZSBtYXRjaCwgaW1hZ2luZSBjb21wb3NpdGUgCisJICAgICAgICAgICAgLy8gY2hhcmFjdGVycy4gZm9yIGV4YW1wbGU6IHNlYXJjaCBmb3IgcGF0dGVybiBBIGluIHRleHQgXHUwMEMwCisJICAgICAgICAgICAgLy8gd2UnbGwgaGF2ZSB0byBza2lwIFx1MDMwMCB0aGUgZ3JhdmUgZmlyc3QgYmVmb3JlIHdlIGdldCB0byBBCisJICAgICAgICAgICAgdGFyZ2V0Y2UgPSBtX2NvbEVJdGVyXy5wcmV2aW91cygpOworCSAgICAgICAgICAgIGlmICh0YXJnZXRjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisJICAgICAgICAgICAgICAgIGZvdW5kID0gZmFsc2U7CisJICAgICAgICAgICAgICAgIGJyZWFrOworCSAgICAgICAgICAgIH0KKwkgICAgICAgICAgICB0YXJnZXRjZSA9IGdldENFKHRhcmdldGNlKTsKKwkgICAgICAgICAgICBpZiAodGFyZ2V0Y2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSAmJiAKKwkgICAgICAgICAgICAJbV9jb2xFSXRlcl8uaXNJbkJ1ZmZlcigpKSB7IAorCSAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIGZvciB0aGUgdGV4dCBcdTAzMTVcdTAzMDAgdGhhdCByZXF1aXJlcyAKKwkgICAgICAgICAgICAgICAgLy8gbm9ybWFsaXphdGlvbiBhbmQgcGF0dGVybiBcdTAzMDAsIHdoZXJlIFx1MDMxNSBpcyBpZ25vcmFibGUKKwkgICAgICAgICAgICAgICAgY29udGludWU7CisJICAgICAgICAgICAgfQorCSAgICAgICAgICAgIGlmIChsYXN0Y2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUiAKKwkgICAgICAgICAgICAJfHwgbGFzdGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKwkgICAgICAgICAgICAgICAgbGFzdGNlID0gdGFyZ2V0Y2U7CisJICAgICAgICAgICAgfQorCSAgICAgICAgICAgIGlmICh0YXJnZXRjZSA9PSBtX3BhdHRlcm5fLm1fQ0VfW3BhdHRlcm5jZWluZGV4XSkgeworCSAgICAgICAgICAgICAgICAvLyB0aGUgZmlyc3QgY2UgY2FuIGJlIGEgY29udHJhY3Rpb24KKwkgICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlOworCSAgICAgICAgICAgICAgICBicmVhazsKKwkgICAgICAgICAgICB9CisJICAgICAgICAgICAgaWYgKG1fY29sRUl0ZXJfLm1fQ0VCdWZmZXJPZmZzZXRfIDw9IDApIHsKKwkgICAgICAgICAgICAgICAgZm91bmQgPSBmYWxzZTsKKwkgICAgICAgICAgICAgICAgYnJlYWs7CisJICAgICAgICAgICAgfQorCSAgICAgICAgfQorCQorCSAgICAgICAgdGFyZ2V0Y2UgPSBsYXN0Y2U7CisJICAgICAgICAKKwkgICAgICAgIHdoaWxlIChmb3VuZCAmJiBwYXR0ZXJuY2VpbmRleCA+IDApIHsKKwkgICAgICAgICAgICB0YXJnZXRjZSA9IG1fY29sRUl0ZXJfLnByZXZpb3VzKCk7CisJICAgICAgICAgICAgaWYgKHRhcmdldGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKwkgICAgICAgICAgICAgICAgZm91bmQgPSBmYWxzZTsKKwkgICAgICAgICAgICAgICAgYnJlYWs7CisJICAgICAgICAgICAgfQorCSAgICAgICAgICAgIHRhcmdldGNlID0gZ2V0Q0UodGFyZ2V0Y2UpOworCSAgICAgICAgICAgIGlmICh0YXJnZXRjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisJICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCSAgICAgICAgICAgIH0KKwkKKwkgICAgICAgICAgICBwYXR0ZXJuY2VpbmRleCAtLTsKKwkgICAgICAgICAgICBmb3VuZCA9IGZvdW5kICYmIHRhcmdldGNlID09IG1fcGF0dGVybl8ubV9DRV9bcGF0dGVybmNlaW5kZXhdOyAKKwkgICAgICAgIH0KKwkKKwkgICAgICAgIGlmICghZm91bmQpIHsKKwkgICAgICAgICAgICB0ZXh0b2Zmc2V0ID0gc2hpZnRGb3J3YXJkKHRleHRvZmZzZXQsIHRhcmdldGNlLCAKKwkgICAgICAgICAgICAJCQkJCQkJCQkJCXBhdHRlcm5jZWluZGV4KTsKKwkgICAgICAgICAgICAvLyBzdGF0dXMgY2hlY2tlZCBhdCBsb29wLgorCSAgICAgICAgICAgIHBhdHRlcm5jZWluZGV4ID0gbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXzsKKwkgICAgICAgICAgICBjb250aW51ZTsKKwkgICAgICAgIH0KKwkgICAgICAgIAorCSAgICAgICAgaWYgKGNoZWNrTmV4dEV4YWN0TWF0Y2godGV4dG9mZnNldCkpIHsKKwkgICAgICAgICAgICAvLyBzdGF0dXMgY2hlY2tlZCBpbiB1Y29sX3NldE9mZnNldAorCSAgICAgICAgICAgIHJldHVybjsKKwkgICAgICAgIH0KKwkgICAgICAgIHRleHRvZmZzZXQgPSBtX3V0aWxCdWZmZXJfWzBdOworCSAgICB9CisJICAgIHNldE1hdGNoTm90Rm91bmQoKTsKKwl9CisKKwkvKioKKwkgKiBNZXRob2QgdGhhdCBkb2VzIHRoZSBuZXh0IGNhbm9uaWNhbCBtYXRjaAorCSAqIEBwYXJhbSBzdGFydCB0aGUgb2Zmc2V0IHRvIHN0YXJ0IHNoaWZ0aW5nIGZyb20gYW5kIHBlcmZvcm1pbmcgdGhlIAorCSAqICAgICAgICBuZXh0IGNhbm9uaWNhbCBtYXRjaAorCSAqLworCXByaXZhdGUgdm9pZCBoYW5kbGVOZXh0Q2Fub25pY2FsKGludCBzdGFydCkKKwl7CisJICAgIGJvb2xlYW4gaGFzUGF0dGVybkFjY2VudHMgPSAKKwkgICAgICAgbV9wYXR0ZXJuXy5tX2hhc1N1ZmZpeEFjY2VudHNfIHx8IG1fcGF0dGVybl8ubV9oYXNQcmVmaXhBY2NlbnRzXzsKKwkgICAgICAgICAgCisJICAgIC8vIHNoaWZ0aW5nIGl0IGNoZWNrIGZvciBzZXR0aW5nIG9mZnNldAorCSAgICAvLyBpZiBzZXRPZmZzZXQgaXMgY2FsbGVkIHByZXZpb3VzbHkgb3IgdGhlcmUgd2FzIG5vIHByZXZpb3VzIG1hdGNoLCB3ZQorCSAgICAvLyBsZWF2ZSB0aGUgb2Zmc2V0IGFzIGl0IGlzLgorCSAgICBpbnQgdGV4dG9mZnNldCA9IHNoaWZ0Rm9yd2FyZChzdGFydCwgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUiwgCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCSAgbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXyk7CisJICAgIG1fY2Fub25pY2FsUHJlZml4QWNjZW50c18uZGVsZXRlKDAsIG1fY2Fub25pY2FsUHJlZml4QWNjZW50c18ubGVuZ3RoKCkpOworCSAgICBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfLmRlbGV0ZSgwLCBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfLmxlbmd0aCgpKTsKKwkJaW50IHRhcmdldGNlID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRTsKKwkgICAgCisJICAgIHdoaWxlICh0ZXh0b2Zmc2V0IDw9IG1fdGV4dExpbWl0T2Zmc2V0XykKKwkgICAgeworCSAgICAJbV9jb2xFSXRlcl8uc2V0RXhhY3RPZmZzZXQodGV4dG9mZnNldCk7CisJICAgICAgICBpbnQgcGF0dGVybmNlaW5kZXggPSBtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfIC0gMTsKKwkgICAgICAgIGJvb2xlYW4gZm91bmQgPSBmYWxzZTsKKwkgICAgICAgIGludCBsYXN0Y2UgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSOworCSAgICAgICAgCisJICAgICAgICB3aGlsZSAodHJ1ZSkgeworCSAgICAgICAgICAgIC8vIGZpbmRpbmcgdGhlIGxhc3QgcGF0dGVybiBjZSBtYXRjaCwgaW1hZ2luZSBjb21wb3NpdGUgY2hhcmFjdGVycworCSAgICAgICAgICAgIC8vIGZvciBleGFtcGxlOiBzZWFyY2ggZm9yIHBhdHRlcm4gQSBpbiB0ZXh0IFx1MDBDMAorCSAgICAgICAgICAgIC8vIHdlJ2xsIGhhdmUgdG8gc2tpcCBcdTAzMDAgdGhlIGdyYXZlIGZpcnN0IGJlZm9yZSB3ZSBnZXQgdG8gQQorCSAgICAgICAgICAgIHRhcmdldGNlID0gbV9jb2xFSXRlcl8ucHJldmlvdXMoKTsKKwkgICAgICAgICAgICBpZiAodGFyZ2V0Y2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworCSAgICAgICAgICAgICAgICBmb3VuZCA9IGZhbHNlOworCSAgICAgICAgICAgICAgICBicmVhazsKKwkgICAgICAgICAgICB9CisJICAgICAgICAgICAgdGFyZ2V0Y2UgPSBnZXRDRSh0YXJnZXRjZSk7CisJICAgICAgICAgICAgaWYgKGxhc3RjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSIAorCSAgICAgICAgICAgIAkJCXx8IGxhc3RjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisJICAgICAgICAgICAgICAgIGxhc3RjZSA9IHRhcmdldGNlOworCSAgICAgICAgICAgIH0KKwkgICAgICAgICAgICBpZiAodGFyZ2V0Y2UgPT0gbV9wYXR0ZXJuXy5tX0NFX1twYXR0ZXJuY2VpbmRleF0pIHsKKwkgICAgICAgICAgICAgICAgLy8gdGhlIGZpcnN0IGNlIGNhbiBiZSBhIGNvbnRyYWN0aW9uCisJICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKKwkgICAgICAgICAgICAgICAgYnJlYWs7CisJICAgICAgICAgICAgfQorCSAgICAgICAgICAgIGlmIChtX2NvbEVJdGVyXy5tX0NFQnVmZmVyT2Zmc2V0XyA8PSAwKSB7CisJICAgICAgICAgICAgICAgIGZvdW5kID0gZmFsc2U7CisJICAgICAgICAgICAgICAgIGJyZWFrOworCSAgICAgICAgICAgIH0KKwkgICAgICAgIH0KKwkgICAgICAgIHRhcmdldGNlID0gbGFzdGNlOworCSAgICAgICAgCisJICAgICAgICB3aGlsZSAoZm91bmQgJiYgcGF0dGVybmNlaW5kZXggPiAwKSB7CisJICAgICAgICAgICAgdGFyZ2V0Y2UgICAgPSBtX2NvbEVJdGVyXy5wcmV2aW91cygpOworCSAgICAgICAgICAgIGlmICh0YXJnZXRjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisJICAgICAgICAgICAgICAgIGZvdW5kID0gZmFsc2U7CisJICAgICAgICAgICAgICAgIGJyZWFrOworCSAgICAgICAgICAgIH0KKwkgICAgICAgICAgICB0YXJnZXRjZSAgICA9IGdldENFKHRhcmdldGNlKTsKKwkgICAgICAgICAgICBpZiAodGFyZ2V0Y2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworCSAgICAgICAgICAgICAgICBjb250aW51ZTsKKwkgICAgICAgICAgICB9CisJCisJICAgICAgICAgICAgcGF0dGVybmNlaW5kZXggLS07CisJICAgICAgICAgICAgZm91bmQgPSBmb3VuZCAmJiB0YXJnZXRjZSA9PSBtX3BhdHRlcm5fLm1fQ0VfW3BhdHRlcm5jZWluZGV4XTsgCisJICAgICAgICB9CisJCisJICAgICAgICAvLyBpbml0aWFsaXppbmcgdGhlIHJlYXJyYW5nZWQgYWNjZW50IGFycmF5CisJICAgICAgICBpZiAoaGFzUGF0dGVybkFjY2VudHMgJiYgIWZvdW5kKSB7CisJICAgICAgICAgICAgZm91bmQgPSBkb05leHRDYW5vbmljYWxNYXRjaCh0ZXh0b2Zmc2V0KTsKKwkgICAgICAgIH0KKwkKKwkgICAgICAgIGlmICghZm91bmQpIHsKKwkgICAgICAgICAgICB0ZXh0b2Zmc2V0ID0gc2hpZnRGb3J3YXJkKHRleHRvZmZzZXQsIHRhcmdldGNlLCBwYXR0ZXJuY2VpbmRleCk7CisJICAgICAgICAgICAgLy8gc3RhdHVzIGNoZWNrZWQgYXQgbG9vcAorCSAgICAgICAgICAgIHBhdHRlcm5jZWluZGV4ID0gbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXzsKKwkgICAgICAgICAgICBjb250aW51ZTsKKwkgICAgICAgIH0KKwkgICAgICAgIAorCSAgICAgICAgaWYgKGNoZWNrTmV4dENhbm9uaWNhbE1hdGNoKHRleHRvZmZzZXQpKSB7CisJICAgICAgICAgICAgcmV0dXJuOworCSAgICAgICAgfQorCSAgICAgICAgdGV4dG9mZnNldCA9IG1fdXRpbEJ1ZmZlcl9bMF07CisJICAgIH0KKwkgICAgc2V0TWF0Y2hOb3RGb3VuZCgpOworCX0KKwkKKwkvKioKKwkgKiBNZXRob2QgdGhhdCBkb2VzIHRoZSBwcmV2aW91cyBleGFjdCBtYXRjaAorCSAqIEBwYXJhbSBzdGFydCB0aGUgb2Zmc2V0IHRvIHN0YXJ0IHNoaWZ0aW5nIGZyb20gYW5kIHBlcmZvcm1pbmcgdGhlIAorCSAqICAgICAgICBwcmV2aW91cyBleGFjdCBtYXRjaAorCSAqLworCXByaXZhdGUgdm9pZCBoYW5kbGVQcmV2aW91c0V4YWN0KGludCBzdGFydCkKKwl7CisJICAgIGludCB0ZXh0b2Zmc2V0ID0gcmV2ZXJzZVNoaWZ0KHN0YXJ0LCBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSLCAKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXyk7CisJICAgIHdoaWxlICh0ZXh0b2Zmc2V0ID49IG1fdGV4dEJlZ2luT2Zmc2V0XykKKwkgICAgeworCSAgICAJbV9jb2xFSXRlcl8uc2V0RXhhY3RPZmZzZXQodGV4dG9mZnNldCk7CisJICAgICAgICBpbnQgcGF0dGVybmNlaW5kZXggPSAxOworCSAgICAgICAgaW50IHRhcmdldGNlID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRTsKKwkgICAgICAgIGJvb2xlYW4gZm91bmQgPSBmYWxzZTsKKwkgICAgICAgIGludCBmaXJzdGNlID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUjsKKwkgICAgICAgIAorCSAgICAgICAgd2hpbGUgKHRydWUpIHsKKwkgICAgICAgICAgICAvLyBmaW5kaW5nIHRoZSBmaXJzdCBwYXR0ZXJuIGNlIG1hdGNoLCBpbWFnaW5lIGNvbXBvc2l0ZSAKKwkgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzLiBmb3IgZXhhbXBsZTogc2VhcmNoIGZvciBwYXR0ZXJuIFx1MDMwMCBpbiB0ZXh0IAorCSAgICAgICAgICAgIC8vIFx1MDBDMCwgd2UnbGwgaGF2ZSB0byBza2lwIEEgZmlyc3QgYmVmb3JlIHdlIGdldCB0byAKKwkgICAgICAgICAgICAvLyBcdTAzMDAgdGhlIGdyYXZlIGFjY2VudAorCSAgICAgICAgICAgIHRhcmdldGNlID0gbV9jb2xFSXRlcl8ubmV4dCgpOworCSAgICAgICAgICAgIGlmICh0YXJnZXRjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisJICAgICAgICAgICAgICAgIGZvdW5kID0gZmFsc2U7CisJICAgICAgICAgICAgICAgIGJyZWFrOworCSAgICAgICAgICAgIH0KKwkgICAgICAgICAgICB0YXJnZXRjZSA9IGdldENFKHRhcmdldGNlKTsKKwkgICAgICAgICAgICBpZiAoZmlyc3RjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSIAorCSAgICAgICAgICAgIAl8fCBmaXJzdGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKwkgICAgICAgICAgICAgICAgZmlyc3RjZSA9IHRhcmdldGNlOworCSAgICAgICAgICAgIH0KKwkgICAgICAgICAgICBpZiAodGFyZ2V0Y2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworCSAgICAgICAgICAgICAgICBjb250aW51ZTsKKwkgICAgICAgICAgICB9ICAgICAgICAgCisJICAgICAgICAgICAgaWYgKHRhcmdldGNlID09IG1fcGF0dGVybl8ubV9DRV9bMF0pIHsKKwkgICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlOworCSAgICAgICAgICAgICAgICBicmVhazsKKwkgICAgICAgICAgICB9CisJICAgICAgICAgICAgaWYgKG1fY29sRUl0ZXJfLm1fQ0VCdWZmZXJPZmZzZXRfID09IC0xIAorCSAgICAgICAgICAgIAl8fCBtX2NvbEVJdGVyXy5tX0NFQnVmZmVyT2Zmc2V0XyAKKwkgICAgICAgICAgICAJCQkJCQkJPT0gbV9jb2xFSXRlcl8ubV9DRUJ1ZmZlclNpemVfKSB7CisJICAgICAgICAgICAgICAgIC8vIGNoZWNraW5nIGZvciBhY2NlbnRzIGluIGNvbXBvc2l0ZSBjaGFyYWN0ZXIKKwkgICAgICAgICAgICAgICAgZm91bmQgPSBmYWxzZTsKKwkgICAgICAgICAgICAgICAgYnJlYWs7CisJICAgICAgICAgICAgfQorCSAgICAgICAgfQorCQorCSAgICAgICAgdGFyZ2V0Y2UgPSBmaXJzdGNlOworCSAgICAgICAgCisJICAgICAgICB3aGlsZSAoZm91bmQgJiYgcGF0dGVybmNlaW5kZXggPCBtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfKSB7CisJICAgICAgICAgICAgdGFyZ2V0Y2UgPSBtX2NvbEVJdGVyXy5uZXh0KCk7CisJICAgICAgICAgICAgaWYgKHRhcmdldGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKwkgICAgICAgICAgICAgICAgZm91bmQgPSBmYWxzZTsKKwkgICAgICAgICAgICAgICAgYnJlYWs7CisJICAgICAgICAgICAgfQorCSAgICAgICAgICAgIHRhcmdldGNlID0gZ2V0Q0UodGFyZ2V0Y2UpOworCSAgICAgICAgICAgIGlmICh0YXJnZXRjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisJICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCSAgICAgICAgICAgIH0KKwkKKwkgICAgICAgICAgICBmb3VuZCA9IGZvdW5kICYmIHRhcmdldGNlID09IG1fcGF0dGVybl8ubV9DRV9bcGF0dGVybmNlaW5kZXhdOyAKKwkgICAgICAgICAgICBwYXR0ZXJuY2VpbmRleCArKzsKKwkgICAgICAgIH0KKwkKKwkgICAgICAgIGlmICghZm91bmQpIHsKKwkgICAgICAgICAgICB0ZXh0b2Zmc2V0ID0gcmV2ZXJzZVNoaWZ0KHRleHRvZmZzZXQsIHRhcmdldGNlLCBwYXR0ZXJuY2VpbmRleCk7CisJICAgICAgICAgICAgcGF0dGVybmNlaW5kZXggPSAwOworCSAgICAgICAgICAgIGNvbnRpbnVlOworCSAgICAgICAgfQorCSAgICAgICAgCisJICAgICAgICBpZiAoY2hlY2tQcmV2aW91c0V4YWN0TWF0Y2godGV4dG9mZnNldCkpIHsKKwkgICAgICAgICAgICByZXR1cm47CisJICAgICAgICB9CisJICAgICAgICB0ZXh0b2Zmc2V0ID0gbV91dGlsQnVmZmVyX1swXTsKKwkgICAgfQorCSAgICBzZXRNYXRjaE5vdEZvdW5kKCk7CisJfQorCQorCS8qKgorCSAqIE1ldGhvZCB0aGF0IGRvZXMgdGhlIHByZXZpb3VzIGNhbm9uaWNhbCBtYXRjaAorCSAqIEBwYXJhbSBzdGFydCB0aGUgb2Zmc2V0IHRvIHN0YXJ0IHNoaWZ0aW5nIGZyb20gYW5kIHBlcmZvcm1pbmcgdGhlIAorCSAqICAgICAgICBwcmV2aW91cyBjYW5vbmljYWwgbWF0Y2gKKwkgKi8KKwlwcml2YXRlIHZvaWQgaGFuZGxlUHJldmlvdXNDYW5vbmljYWwoaW50IHN0YXJ0KQorCXsKKwkgICAgYm9vbGVhbiBoYXNQYXR0ZXJuQWNjZW50cyA9IAorCSAgICAgICBtX3BhdHRlcm5fLm1faGFzU3VmZml4QWNjZW50c18gfHwgbV9wYXR0ZXJuXy5tX2hhc1ByZWZpeEFjY2VudHNfOworCSAgICAgICAgICAKKwkgICAgLy8gc2hpZnRpbmcgaXQgY2hlY2sgZm9yIHNldHRpbmcgb2Zmc2V0CisJICAgIC8vIGlmIHNldE9mZnNldCBpcyBjYWxsZWQgcHJldmlvdXNseSBvciB0aGVyZSB3YXMgbm8gcHJldmlvdXMgbWF0Y2gsIHdlCisJICAgIC8vIGxlYXZlIHRoZSBvZmZzZXQgYXMgaXQgaXMuCisJICAgIGludCB0ZXh0b2Zmc2V0ID0gcmV2ZXJzZVNoaWZ0KHN0YXJ0LCBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSLCAKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAJCW1fcGF0dGVybl8ubV9DRUxlbmd0aF8pOworCSAgICBtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfLmRlbGV0ZSgwLCBtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfLmxlbmd0aCgpKTsKKwkgICAgbV9jYW5vbmljYWxTdWZmaXhBY2NlbnRzXy5kZWxldGUoMCwgbV9jYW5vbmljYWxTdWZmaXhBY2NlbnRzXy5sZW5ndGgoKSk7CisJICAgIAorCSAgICB3aGlsZSAodGV4dG9mZnNldCA+PSBtX3RleHRCZWdpbk9mZnNldF8pCisJICAgIHsKKwkgICAgCW1fY29sRUl0ZXJfLnNldEV4YWN0T2Zmc2V0KHRleHRvZmZzZXQpOworCSAgICAgICAgaW50IHBhdHRlcm5jZWluZGV4ID0gMTsKKwkgICAgICAgIGludCB0YXJnZXRjZSA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEU7CisJICAgICAgICBib29sZWFuIGZvdW5kID0gZmFsc2U7CisJICAgICAgICBpbnQgZmlyc3RjZSA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVI7CisJICAgICAgICAKKwkgICAgICAgIHdoaWxlICh0cnVlKSB7CisJICAgICAgICAgICAgLy8gZmluZGluZyB0aGUgZmlyc3QgcGF0dGVybiBjZSBtYXRjaCwgaW1hZ2luZSBjb21wb3NpdGUgCisJICAgICAgICAgICAgLy8gY2hhcmFjdGVycy4gZm9yIGV4YW1wbGU6IHNlYXJjaCBmb3IgcGF0dGVybiBcdTAzMDAgaW4gdGV4dCAKKwkgICAgICAgICAgICAvLyBcdTAwQzAsIHdlJ2xsIGhhdmUgdG8gc2tpcCBBIGZpcnN0IGJlZm9yZSB3ZSBnZXQgdG8gCisJICAgICAgICAgICAgLy8gXHUwMzAwIHRoZSBncmF2ZSBhY2NlbnQKKwkgICAgICAgICAgICB0YXJnZXRjZSA9IG1fY29sRUl0ZXJfLm5leHQoKTsKKwkgICAgICAgICAgICBpZiAodGFyZ2V0Y2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworCSAgICAgICAgICAgICAgICBmb3VuZCA9IGZhbHNlOworCSAgICAgICAgICAgICAgICBicmVhazsKKwkgICAgICAgICAgICB9CisJICAgICAgICAgICAgdGFyZ2V0Y2UgPSBnZXRDRSh0YXJnZXRjZSk7CisJICAgICAgICAgICAgaWYgKGZpcnN0Y2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUiAKKwkgICAgICAgICAgICAJfHwgZmlyc3RjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisJICAgICAgICAgICAgICAgIGZpcnN0Y2UgPSB0YXJnZXRjZTsKKwkgICAgICAgICAgICB9CisJICAgICAgICAgICAgCisJICAgICAgICAgICAgaWYgKHRhcmdldGNlID09IG1fcGF0dGVybl8ubV9DRV9bMF0pIHsKKwkgICAgICAgICAgICAgICAgLy8gdGhlIGZpcnN0IGNlIGNhbiBiZSBhIGNvbnRyYWN0aW9uCisJICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKKwkgICAgICAgICAgICAgICAgYnJlYWs7CisJICAgICAgICAgICAgfQorCSAgICAgICAgICAgIGlmIChtX2NvbEVJdGVyXy5tX0NFQnVmZmVyT2Zmc2V0XyA9PSAtMSAKKwkgICAgICAgICAgICAJfHwgbV9jb2xFSXRlcl8ubV9DRUJ1ZmZlck9mZnNldF8gCisJICAgICAgICAgICAgCQkJCQkJCT09IG1fY29sRUl0ZXJfLm1fQ0VCdWZmZXJTaXplXykgeworCSAgICAgICAgICAgICAgICAvLyBjaGVja2luZyBmb3IgYWNjZW50cyBpbiBjb21wb3NpdGUgY2hhcmFjdGVyCisJICAgICAgICAgICAgICAgIGZvdW5kID0gZmFsc2U7CisJICAgICAgICAgICAgICAgIGJyZWFrOworCSAgICAgICAgICAgIH0KKwkgICAgICAgIH0KKwkKKwkgICAgICAgIHRhcmdldGNlID0gZmlyc3RjZTsKKwkgICAgICAgIAorCSAgICAgICAgd2hpbGUgKGZvdW5kICYmIHBhdHRlcm5jZWluZGV4IDwgbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXykgeworCSAgICAgICAgICAgIHRhcmdldGNlID0gbV9jb2xFSXRlcl8ubmV4dCgpOworCSAgICAgICAgICAgIGlmICh0YXJnZXRjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisJICAgICAgICAgICAgICAgIGZvdW5kID0gZmFsc2U7CisJICAgICAgICAgICAgICAgIGJyZWFrOworCSAgICAgICAgICAgIH0KKwkgICAgICAgICAgICB0YXJnZXRjZSA9IGdldENFKHRhcmdldGNlKTsKKwkgICAgICAgICAgICBpZiAodGFyZ2V0Y2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworCSAgICAgICAgICAgICAgICBjb250aW51ZTsKKwkgICAgICAgICAgICB9CisJCisJICAgICAgICAgICAgZm91bmQgPSBmb3VuZCAmJiB0YXJnZXRjZSA9PSBtX3BhdHRlcm5fLm1fQ0VfW3BhdHRlcm5jZWluZGV4XTsgCisJICAgICAgICAgICAgcGF0dGVybmNlaW5kZXggKys7CisJICAgICAgICB9CisJCisJICAgICAgICAvLyBpbml0aWFsaXppbmcgdGhlIHJlYXJyYW5nZWQgYWNjZW50IGFycmF5CisJICAgICAgICBpZiAoaGFzUGF0dGVybkFjY2VudHMgJiYgIWZvdW5kKSB7CisJICAgICAgICAgICAgZm91bmQgPSBkb1ByZXZpb3VzQ2Fub25pY2FsTWF0Y2godGV4dG9mZnNldCk7CisJICAgICAgICB9CisJCisJICAgICAgICBpZiAoIWZvdW5kKSB7CisJICAgICAgICAgICAgdGV4dG9mZnNldCA9IHJldmVyc2VTaGlmdCh0ZXh0b2Zmc2V0LCB0YXJnZXRjZSwgcGF0dGVybmNlaW5kZXgpOworCSAgICAgICAgICAgIHBhdHRlcm5jZWluZGV4ID0gMDsKKwkgICAgICAgICAgICBjb250aW51ZTsKKwkgICAgICAgIH0KKwkKKwkgICAgICAgIGlmIChjaGVja1ByZXZpb3VzQ2Fub25pY2FsTWF0Y2godGV4dG9mZnNldCkpIHsKKwkgICAgICAgICAgICByZXR1cm47CisJICAgICAgICB9CisJICAgICAgICB0ZXh0b2Zmc2V0ID0gbV91dGlsQnVmZmVyX1swXTsKKwkgICAgfQorCSAgICBzZXRNYXRjaE5vdEZvdW5kKCk7CisJfQorCQorCS8qKgorCSAqIEdldHMgYSBzdWJzdHJpbmcgb3V0IG9mIGEgQ2hhcmFjdGVySXRlcmF0b3IKKwkgKiBAcGFyYW0gdGV4dCBDaGFyYWN0ZXJJdGVyYXRvcgorCSAqIEBwYXJhbSBzdGFydCBzdGFydCBvZmZzZXQKKwkgKiBAcGFyYW0gbGVuZ3RoIG9mIHN1YnN0cmluZworCSAqIEByZXR1cm4gc3Vic3RyaW5nIGZyb20gdGV4dCBzdGFydGluZyBhdCBzdGFydCBhbmQgbGVuZ3RoIGxlbmd0aAorCSAqLworCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBnZXRTdHJpbmcoQ2hhcmFjdGVySXRlcmF0b3IgdGV4dCwgaW50IHN0YXJ0LAorCQkJCQkJCQkJCQlpbnQgbGVuZ3RoKQorCXsKKwkJU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIobGVuZ3RoKTsKKwkJaW50IG9mZnNldCA9IHRleHQuZ2V0SW5kZXgoKTsKKwkJdGV4dC5zZXRJbmRleChzdGFydCk7CisJCWZvciAoaW50IGkgPSAwOyBpIDwgbGVuZ3RoOyBpICsrKSB7CisJCQlyZXN1bHQuYXBwZW5kKHRleHQuY3VycmVudCgpKTsKKwkJCXRleHQubmV4dCgpOworCQl9CisJCXRleHQuc2V0SW5kZXgob2Zmc2V0KTsKKwkJcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworCX0KKwkKKwkvKioKKwkgKiBHZXR0aW5nIHRoZSBtYXNrIGZvciBjb2xsYXRpb24gc3RyZW5ndGgKKwkgKiBAcGFyYW0gc3RyZW5ndGggY29sbGF0aW9uIHN0cmVuZ3RoCisgCSAqIEByZXR1cm4gY29sbGF0aW9uIGVsZW1lbnQgbWFzaworCSAqLworCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBnZXRNYXNrKGludCBzdHJlbmd0aCkgCisJeworCSAgICBzd2l0Y2ggKHN0cmVuZ3RoKSAKKwkgICAgeworCSAgICAJY2FzZSBDb2xsYXRvci5QUklNQVJZOgorCSAgICAgICAgCXJldHVybiBSdWxlQmFzZWRDb2xsYXRvci5DRV9QUklNQVJZX01BU0tfOworCSAgICAJY2FzZSBDb2xsYXRvci5TRUNPTkRBUlk6CisJICAgICAgICAJcmV0dXJuIFJ1bGVCYXNlZENvbGxhdG9yLkNFX1NFQ09OREFSWV9NQVNLXyAKKwkgICAgICAgIAkgICAgICAgfCBSdWxlQmFzZWRDb2xsYXRvci5DRV9QUklNQVJZX01BU0tfOworCSAgICAJZGVmYXVsdDoKKwkgICAgICAgIAlyZXR1cm4gUnVsZUJhc2VkQ29sbGF0b3IuQ0VfVEVSVElBUllfTUFTS18gCisJICAgICAgICAJICAgICAgIHwgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfU0VDT05EQVJZX01BU0tfIAorCSAgICAgICAgICAgICAgICAgICB8IFJ1bGVCYXNlZENvbGxhdG9yLkNFX1BSSU1BUllfTUFTS187CisJICAgIH0KKwl9CisgICAgCisgICAgLyoqCisgICAgICogU2V0cyBtYXRjaCBub3QgZm91bmQgCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHNldE1hdGNoTm90Rm91bmQoKSAKKyAgICB7CisgICAgICAgIC8vIHRoaXMgbWV0aG9kIHJlc2V0cyB0aGUgbWF0Y2ggcmVzdWx0IHJlZ2FyZGxlc3Mgb2YgdGhlIGVycm9yIHN0YXR1cy4KKyAgICAgICAgbV9tYXRjaGVkSW5kZXhfID0gRE9ORTsKKyAgICAgICAgc2V0TWF0Y2hMZW5ndGgoMCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvU3ltYm9sVGFibGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1N5bWJvbFRhYmxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWE1YmRhMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1N5bWJvbFRhYmxlLmphdmEKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L3RleHQvU3ltYm9sVGFibGUuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNjoxNiAkIAorICogJFJldmlzaW9uOiAxLjkgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CisKKy8qKgorICogQW4gaW50ZXJmYWNlIHRoYXQgbWFwcyBzdHJpbmdzIHRvIG9iamVjdHMuICBUaGlzIGludGVyZmFjZSBkZWZpbmVzCisgKiBib3RoIGxvb2t1cCBwcm90b2NvbCBhbmQgcGFyc2luZy4gIFRoaXMgYWxsb3dzIGRpZmZlcmVudCBjb21wb25lbnRzCisgKiB0byBzaGFyZSBhIHN5bWJvbCB0YWJsZSBhbmQgdG8gaGFuZGxlIG5hbWUgcGFyc2luZyB1bmlmb3JtbHkuICBJdAorICogaXMgZXhwZWN0ZWQgdGhhdCBjbGllbnQgcGFyc2UgY29kZSBsb29rIGZvciB0aGUgU1lNQk9MX1JFRgorICogY2hhcmFjdGVyIGFuZCwgd2hlbiBzZWVuLCBhdHRlbXB0IHRvIHBhcnNlIHRoZSBjaGFyYWN0ZXJzIGFmdGVyIGl0CisgKiB1c2luZyBwYXJzZVJlZmVyZW5jZSgpLgorICoKKyAqIDxwPkN1cnJlbnRseSwgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IgYW5kIFVuaWNvZGVTZXQgdXNlIHRoaXMKKyAqIGludGVyZmFjZSB0byBzaGFyZSB2YXJpYWJsZSBkZWZpbml0aW9ucy4KKyAqLworcHVibGljIGludGVyZmFjZSBTeW1ib2xUYWJsZSB7CisKKyAgICAvKioKKyAgICAgKiBUaGUgY2hhcmFjdGVyIHByZWNlZGluZyBhIHN5bWJvbCByZWZlcmVuY2UgbmFtZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgY2hhciBTWU1CT0xfUkVGID0gJyQnOworCisgICAgLyoqCisgICAgICogTG9va3VwIHRoZSBjaGFyYWN0ZXJzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHN0cmluZyBhbmQgcmV0dXJuIGl0LgorICAgICAqIFJldHVybiA8dHQ+bnVsbDwvdHQ+IGlmIG5vIHN1Y2ggbmFtZSBleGlzdHMuICBUaGUgcmVzdWx0YW50CisgICAgICogYXJyYXkgbWF5IGhhdmUgbGVuZ3RoIHplcm8uCisgICAgICovCisgICAgY2hhcltdIGxvb2t1cChTdHJpbmcgcyk7CisKKyAgICAvKioKKyAgICAgKiBMb29rdXAgdGhlIFVuaWNvZGVNYXRjaGVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gY2hhcmFjdGVyLCBhbmQKKyAgICAgKiByZXR1cm4gaXQuICBSZXR1cm4gPHR0Pm51bGw8L3R0PiBpZiBub3QgZm91bmQuCisgICAgICogQHBhcmFtIGNoIGEgMzItYml0IGNvZGUgcG9pbnQgZnJvbSAwIHRvIDB4MTBGRkZGLgorICAgICAqLworICAgIFVuaWNvZGVNYXRjaGVyIGxvb2t1cE1hdGNoZXIoaW50IGNoKTsKKworICAgIC8qKgorICAgICAqIFBhcnNlIGEgc3ltYm9sIHJlZmVyZW5jZSBuYW1lIGZyb20gdGhlIGdpdmVuIHN0cmluZywgc3RhcnRpbmcKKyAgICAgKiBhdCB0aGUgZ2l2ZW4gcG9zaXRpb24uICBJZiBubyB2YWxpZCBzeW1ib2wgcmVmZXJlbmNlIG5hbWUgaXMKKyAgICAgKiBmb3VuZCwgcmV0dXJuIG51bGwgYW5kIGxlYXZlIHBvcyB1bmNoYW5nZWQuCisgICAgICogQHBhcmFtIHRleHQgdGhlIHRleHQgdG8gcGFyc2UgZm9yIHRoZSBuYW1lCisgICAgICogQHBhcmFtIHBvcyBvbiBlbnRyeSwgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgdG8gcGFyc2UuCisgICAgICogVGhpcyBpcyB0aGUgY2hhcmFjdGVyIGZvbGxvd2luZyB0aGUgU1lNQk9MX1JFRiBjaGFyYWN0ZXIuICBPbgorICAgICAqIGV4aXQsIHRoZSBpbmRleCBhZnRlciB0aGUgbGFzdCBwYXJzZWQgY2hhcmFjdGVyLgorICAgICAqIEBwYXJhbSBsaW1pdCB0aGUgaW5kZXggYWZ0ZXIgdGhlIGxhc3QgY2hhcmFjdGVyIHRvIGJlIHBhcnNlZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBwYXJzZWQgbmFtZS4KKyAgICAgKi8KKyAgICBTdHJpbmcgcGFyc2VSZWZlcmVuY2UoU3RyaW5nIHRleHQsIFBhcnNlUG9zaXRpb24gcG9zLCBpbnQgbGltaXQpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvVGl0bGVjYXNlVHJhbnNsaXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1RpdGxlY2FzZVRyYW5zbGl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzQ0OGZkYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1RpdGxlY2FzZVRyYW5zbGl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwxMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvdGV4dC9UaXRsZWNhc2VUcmFuc2xpdGVyYXRvci5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzA2LzIwIDAxOjIxOjE4ICQgCisgKiAkUmV2aXNpb246IDEuMTYgJAorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CitpbXBvcnQgamF2YS51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyUHJvcGVydHk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Vbmljb2RlQ2hhcmFjdGVySXRlcmF0b3I7CisKKy8qKgorICogQSB0cmFuc2xpdGVyYXRvciB0aGF0IGNvbnZlcnRzIGFsbCBsZXR0ZXJzIChhcyBkZWZpbmVkIGJ5CisgKiA8Y29kZT5VQ2hhcmFjdGVyLmlzTGV0dGVyKCk8L2NvZGU+KSB0byBsb3dlciBjYXNlLCBleGNlcHQgZm9yIHRob3NlCisgKiBsZXR0ZXJzIHByZWNlZGVkIGJ5IG5vbi1sZXR0ZXJzLiAgVGhlIGxhdHRlciBhcmUgY29udmVydGVkIHRvIHRpdGxlCisgKiBjYXNlIHVzaW5nIDxjb2RlPlVDaGFyYWN0ZXIudG9UaXRsZUNhc2UoKTwvY29kZT4uCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKi8KK2NsYXNzIFRpdGxlY2FzZVRyYW5zbGl0ZXJhdG9yIGV4dGVuZHMgVHJhbnNsaXRlcmF0b3IgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBfSUQgPSAiQW55LVRpdGxlIjsKKyAgICBwcml2YXRlIExvY2FsZSBsb2M7CisKKyAgICAvKioKKyAgICAgKiBUaGUgc2V0IG9mIGNoYXJhY3RlcnMgd2Ugc2tpcC4gIFRoZXNlIGFyZSBuZWl0aGVyIGNhc2VkIG5vcgorICAgICAqIG5vbi1jYXNlZCwgdG8gdXM7IHdlIGNvcHkgdGhlbSB2ZXJiYXRpbS4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgVW5pY29kZVNldCBTS0lQID0gbmV3IFVuaWNvZGVTZXQoIltcdTAwQUQgXHUyMDE5IFxcJyBbOk1uOl0gWzpNZTpdIFs6Q2Y6XSBbOkxtOl0gWzpTazpdXSIpOworCisgICAgLyoqCisgICAgICogVGhlIHNldCBvZiBjaGFyYWN0ZXJzIHRoYXQgY2F1c2UgdGhlIG5leHQgbm9uLVNLSVAgY2hhcmFjdGVyCisgICAgICogdG8gYmUgbG93ZXJjYXNlZC4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgVW5pY29kZVNldCBDQVNFRCA9IG5ldyBVbmljb2RlU2V0KCJbWzpMdTpdIFs6TGw6XSBbOkx0Ol1dIik7CisKKyAgICAvKioKKyAgICAgKiBTeXN0ZW0gcmVnaXN0cmF0aW9uIGhvb2suCisgICAgICovCisgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXIoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeShfSUQsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVGl0bGVjYXNlVHJhbnNsaXRlcmF0b3IoTG9jYWxlLlVTKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAgICAgICAgcmVnaXN0ZXJTcGVjaWFsSW52ZXJzZSgiVGl0bGUiLCAiTG93ZXIiLCBmYWxzZSk7CisgICAgfQorCisgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgdHJhbnNsaXRlcmF0b3IuCisgICAgICovCisgICAgcHVibGljIFRpdGxlY2FzZVRyYW5zbGl0ZXJhdG9yKExvY2FsZSBsb2MpIHsKKyAgICAgICAgc3VwZXIoX0lELCBudWxsKTsKKyAgICAgICAgdGhpcy5sb2MgPSBsb2M7CisgICAgICAgIC8vIE5lZWQgdG8gbG9vayBiYWNrIDIgY2hhcmFjdGVycyBpbiB0aGUgY2FzZSBvZiAiY2FuJ3QiCisgICAgICAgIHNldE1heGltdW1Db250ZXh0TGVuZ3RoKDIpOworICAgIH0KKyAgICAgCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyB7QGxpbmsgVHJhbnNsaXRlcmF0b3IjaGFuZGxlVHJhbnNsaXRlcmF0ZX0uCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlVHJhbnNsaXRlcmF0ZShSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9zaXRpb24gb2Zmc2V0cywgYm9vbGVhbiBpbmNyZW1lbnRhbCkgeworCisgICAgICAgIC8vIE91ciBtb2RlOyB3ZSBhcmUgZWl0aGVyIGNvbnZlcnRpbmcgbGV0dGVyIHRvVGl0bGUgb3IKKyAgICAgICAgLy8gdG9Mb3dlci4KKyAgICAgICAgYm9vbGVhbiBkb1RpdGxlID0gdHJ1ZTsKKworICAgICAgICAvLyBEZXRlcm1pbmUgaWYgdGhlcmUgaXMgYSBwcmVjZWRpbmcgY29udGV4dCBvZiBDQVNFRCBTS0lQKiwKKyAgICAgICAgLy8gaW4gd2hpY2ggY2FzZSB3ZSB3YW50IHRvIHN0YXJ0IGluIHRvTG93ZXIgbW9kZS4gIElmIHRoZQorICAgICAgICAvLyBwcmlvciBjb250ZXh0IGlzIGFueXRoaW5nIGVsc2UgKGluY2x1ZGluZyBlbXB0eSkgdGhlbiBzdGFydAorICAgICAgICAvLyBpbiB0b1RpdGxlIG1vZGUuCisgICAgICAgIGludCBjOworICAgICAgICBmb3IgKGludCBzdGFydCA9IG9mZnNldHMuc3RhcnQgLSAxOyBzdGFydCA+PSBvZmZzZXRzLmNvbnRleHRTdGFydDsgc3RhcnQgLT0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpKSB7CisgICAgICAgICAgICBjID0gdGV4dC5jaGFyMzJBdChzdGFydCk7CisgICAgICAgICAgICBpZiAoU0tJUC5jb250YWlucyhjKSkgeworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZG9UaXRsZSA9ICFDQVNFRC5jb250YWlucyhjKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ29udmVydCB0aGluZ3MgYWZ0ZXIgYSBDQVNFRCBjaGFyYWN0ZXIgdG9Mb3dlcjsgdGhpbmdzCisgICAgICAgIC8vIGFmdGVyIGEgbm9uLUNBU0VELCBub24tU0tJUCBjaGFyYWN0ZXIgdG9UaXRsZS4gIFNLSVAKKyAgICAgICAgLy8gY2hhcmFjdGVycyBhcmUgY29waWVkIGRpcmVjdGx5IGFuZCBkbyBub3QgY2hhbmdlIHRoZSBtb2RlLgorCisgICAgICAgIGludCB0ZXh0UG9zID0gb2Zmc2V0cy5zdGFydDsKKyAgICAgICAgaWYgKHRleHRQb3MgPj0gb2Zmc2V0cy5saW1pdCkgcmV0dXJuOworCisgICAgICAgIC8vIGdldCBzdHJpbmcgZm9yIGNvbnRleHQKKyAgICAgICAgLy8gVE9ETzogYWRkIGNvbnZlbmllbmNlIG1ldGhvZCB0byBkbyB0aGlzLCBzaW5jZSB3ZSBkbyBpdCBhbGwgb3ZlcgorICAgICAgICAKKyAgICAgICAgVW5pY29kZUNoYXJhY3Rlckl0ZXJhdG9yIG9yaWdpbmFsID0gbmV3IFVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KTsKKyAgICAgICAgCisgICAgICAgIC8vIFdhbGsgdGhyb3VnaCBvcmlnaW5hbCBzdHJpbmcKKyAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSBjYXNlIGNoYW5nZSwgbW9kaWZ5IGNvcnJlc3BvbmRpbmcgcG9zaXRpb24gaW4gcmVwbGFjZWFibGUKKyAgICAgICAgCisgICAgICAgIGludCBsaW1pdCA9IG9mZnNldHMubGltaXQ7CisgICAgICAgIGludCBjcDsKKyAgICAgICAgaW50IG9sZExlbjsKKyAgICAgICAgaW50IG5ld0xlbjsKKyAgICAgICAgCisgICAgICAgIHdoaWxlICh0ZXh0UG9zIDwgbGltaXQpIHsKKyAgICAgICAgCW9yaWdpbmFsLnNldEluZGV4KHRleHRQb3MpOworICAgICAgICAgICAgY3AgPSBvcmlnaW5hbC5jdXJyZW50Q29kZVBvaW50KCk7CisgICAgICAgICAgICBvbGRMZW4gPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoIVNLSVAuY29udGFpbnMoY3ApKSB7CisgICAgICAgICAgICAgICAgaWYgKGRvVGl0bGUpIHsKKyAgICAgICAgICAgICAgICAgICAgbmV3TGVuID0gbV9jaGFycHB0eV8udG9VcHBlck9yVGl0bGVDYXNlKGxvYywgY3AsIG9yaWdpbmFsLCBmYWxzZSwgYnVmZmVyKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBuZXdMZW4gPSBtX2NoYXJwcHR5Xy50b0xvd2VyQ2FzZShsb2MsIGNwLCBvcmlnaW5hbCwgYnVmZmVyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZG9UaXRsZSA9ICFDQVNFRC5jb250YWlucyhjcCk7CisgICAgICAgICAgICAgICAgaWYgKG5ld0xlbiA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHRleHQucmVwbGFjZSh0ZXh0UG9zLCB0ZXh0UG9zICsgb2xkTGVuLCBidWZmZXIsIDAsIG5ld0xlbik7CisgICAgICAgICAgICAgICAgICAgIGlmIChuZXdMZW4gIT0gb2xkTGVuKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0UG9zICs9IG5ld0xlbjsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMubGltaXQgKz0gbmV3TGVuIC0gb2xkTGVuOworICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5jb250ZXh0TGltaXQgKz0gbmV3TGVuIC0gb2xkTGVuOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0ZXh0UG9zICs9IG9sZExlbjsKKyAgICAgICAgfQorICAgICAgICBvZmZzZXRzLnN0YXJ0ID0gb2Zmc2V0cy5saW1pdDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBjaGFyIGJ1ZmZlcltdID0gbmV3IGNoYXJbVUNoYXJhY3RlclByb3BlcnR5Lk1BWF9DQVNFX01BUF9TSVpFXTsKKyAgICAvKioKKyAgICAgKiBDaGFyYWN0ZXIgcHJvcGVydHkgZGF0YWJhc2UKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBVQ2hhcmFjdGVyUHJvcGVydHkgbV9jaGFycHB0eV8gPSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3RlclByb3BlcnR5LmdldEluc3RhbmNlKCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9UcmFuc2Zvcm1UcmFuc2xpdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNmb3JtVHJhbnNsaXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lMDlkZDFhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNmb3JtVHJhbnNsaXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDEzMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS90ZXh0L1RyYW5zZm9ybVRyYW5zbGl0ZXJhdG9yLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6MTYgJCAKKyAqICRSZXZpc2lvbjogMS41ICQKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworaW1wb3J0IGphdmEudXRpbC4qOworCithYnN0cmFjdCBjbGFzcyBUcmFuc2Zvcm1UcmFuc2xpdGVyYXRvciB7CisgICAgLy8gQ3VycmVudGx5IHVudXNlZAorfQorCisvLy8qKgorLy8gKiBBbiBhYnN0cmFjdCBjbGFzcyBmb3IgdHJhbnNsaXRlcmF0b3JzIGJhc2VkIG9uIGEgdHJhbnNmb3JtCisvLyAqIG9wZXJhdGlvbi4gIFRvIGNyZWF0ZSBhIHRyYW5zbGl0ZXJhdG9yIHRoYXQgaW1wbGVtZW50cyBhCisvLyAqIHRyYW5zZm9ybWF0aW9uLCBjcmVhdGUgYSBzdWJjbGFzcyBvZiB0aGlzIGNsYXNzIGFuZCBpbXBsZW1lbnQgdGhlCisvLyAqIGFic3RyYWN0IDxjb2RlPnRyYW5zZm9ybSgpPC9jb2RlPiBhbmQgPGNvZGU+aGFzVHJhbnNmb3JtKCk8L2NvZGU+CisvLyAqIG1ldGhvZHMuCisvLyAqIEBhdXRob3IgQWxhbiBMaXUKKy8vICovCisvL2Fic3RyYWN0IGNsYXNzIFRyYW5zZm9ybVRyYW5zbGl0ZXJhdG9yIGV4dGVuZHMgVHJhbnNsaXRlcmF0b3IgeworLy8KKy8vICAgIC8qKgorLy8gICAgICogQ29uc3RydWN0cyBhIHRyYW5zbGl0ZXJhdG9yLiAgRm9yIHVzZSBieSBzdWJjbGFzc2VzLgorLy8gICAgICovCisvLyAgICBwcm90ZWN0ZWQgVHJhbnNmb3JtVHJhbnNsaXRlcmF0b3IoU3RyaW5nIGlkLCBVbmljb2RlRmlsdGVyIGYpIHsKKy8vICAgICAgICBzdXBlcihpZCwgZik7CisvLyAgICB9CisvLworLy8gICAgLyoqCisvLyAgICAgKiBJbXBsZW1lbnRzIHtAbGluayBUcmFuc2xpdGVyYXRvciNoYW5kbGVUcmFuc2xpdGVyYXRlfS4KKy8vICAgICAqLworLy8gICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlVHJhbnNsaXRlcmF0ZShSZXBsYWNlYWJsZSB0ZXh0LAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbiBvZmZzZXRzLCBib29sZWFuIGluY3JlbWVudGFsKSB7CisvLworLy8gICAgICAgIGludCBzdGFydDsKKy8vICAgICAgICBmb3IgKHN0YXJ0ID0gb2Zmc2V0cy5zdGFydDsgc3RhcnQgPCBvZmZzZXRzLmxpbWl0OyArK3N0YXJ0KSB7CisvLyAgICAgICAgICAgIC8vIFNjYW4gZm9yIHRoZSBmaXJzdCBjaGFyYWN0ZXIgdGhhdCBpcyAhPSBpdHMgdHJhbnNmb3JtLgorLy8gICAgICAgICAgICAvLyBJZiB0aGVyZSBhcmUgbm9uZSwgd2UgZmFsbCBvdXQgd2l0aG91dCBkb2luZyBhbnl0aGluZy4KKy8vICAgICAgICAgICAgY2hhciBjID0gdGV4dC5jaGFyQXQoc3RhcnQpOworLy8gICAgICAgICAgICBpZiAoaGFzVHJhbnNmb3JtKGMpKSB7CisvLyAgICAgICAgICAgICAgICAvLyBUaGVyZSBpcyBhIHRyYW5zZm9ybWluZyBjaGFyYWN0ZXIgYXQgc3RhcnQuICBCcmVhaworLy8gICAgICAgICAgICAgICAgLy8gdXAgdGhlIHJlbWFpbmluZyBzdHJpbmcsIGZyb20gc3RhcnQgdG8KKy8vICAgICAgICAgICAgICAgIC8vIG9mZnNldHMubGltaXQsIGludG8gc2VnbWVudHMgb2YgdW5maWx0ZXJlZCBhbmQKKy8vICAgICAgICAgICAgICAgIC8vIGZpbHRlcmVkIGNoYXJhY3RlcnMuICBPbmx5IHRyYW5zZm9ybSB0aGUgdW5maWx0ZXJlZAorLy8gICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVycy4gIEFzIGFsd2F5cywgbWluaW1pemUgdGhlIG51bWJlciBvZgorLy8gICAgICAgICAgICAgICAgLy8gY2FsbHMgdG8gUmVwbGFjZWFibGUucmVwbGFjZSgpLgorLy8KKy8vICAgICAgICAgICAgICAgIGludCBsZW4gPSBvZmZzZXRzLmxpbWl0IC0gc3RhcnQ7CisvLyAgICAgICAgICAgICAgICAvLyBhc3NlcnQobGVuID49IDEpOworLy8gICAgICAgICAgICAgICAgCisvLyAgICAgICAgICAgICAgICBjaGFyW10gYnVmID0gbmV3IGNoYXJbbGVuXTsKKy8vICAgICAgICAgICAgICAgIHRleHQuZ2V0Q2hhcnMoc3RhcnQsIG9mZnNldHMubGltaXQsIGJ1ZiwgMCk7CisvLworLy8gICAgICAgICAgICAgICAgaW50IHNlZ1N0YXJ0ID0gMDsKKy8vICAgICAgICAgICAgICAgIGludCBzZWdMaW1pdDsKKy8vICAgICAgICAgICAgICAgIFVuaWNvZGVGaWx0ZXIgZmlsdCA9IGdldEZpbHRlcigpOworLy8KKy8vICAgICAgICAgICAgICAgIC8vIGxlbkRlbHRhIGlzIHRoZSBhY2N1bXVsYXRlZCBsZW5ndGggZGlmZmVyZW5jZSBmb3IKKy8vICAgICAgICAgICAgICAgIC8vIGFsbCB0cmFuc2Zvcm1lZCBzZWdtZW50cy4gIEl0IGlzIG5ldyBsZW5ndGggLSBvbGQKKy8vICAgICAgICAgICAgICAgIC8vIGxlbmd0aC4KKy8vICAgICAgICAgICAgICAgIGludCBsZW5EZWx0YSA9IDA7CisvLworLy8gICAgICAgICAgICAgICAgLy8gU2V0IHNlZ1N0YXJ0LCBzZWdMaW1pdCB0byB0aGUgdW5maWx0ZXJlZCBzZWdtZW50CisvLyAgICAgICAgICAgICAgICAvLyBzdGFydGluZyB3aXRoIHN0YXJ0LiAgSWYgdGhlIGZpbHRlciBpcyBudWxsLCB0aGVuCisvLyAgICAgICAgICAgICAgICAvLyBzZWdTdGFydC9MaW1pdCB3aWxsIGJlIHNldCB0byB0aGUgd2hvbGUgc3RyaW5nLAorLy8gICAgICAgICAgICAgICAgLy8gdGhhdCBpcywgMC9sZW4uCisvLyAgICAgICAgICAgICAgICBkbyB7CisvLyAgICAgICAgICAgICAgICAgICAgLy8gU2V0IHNlZ0xpbWl0IHRvIHRoZSBmaXJzdCBmaWx0ZXJlZCBjaGFyIGF0IG9yCisvLyAgICAgICAgICAgICAgICAgICAgLy8gYWZ0ZXIgc2VnU3RhcnQuCisvLyAgICAgICAgICAgICAgICAgICAgc2VnTGltaXQgPSBsZW47CisvLyAgICAgICAgICAgICAgICAgICAgaWYgKGZpbHQgIT0gbnVsbCkgeworLy8gICAgICAgICAgICAgICAgICAgICAgICBzZWdMaW1pdCA9IHNlZ1N0YXJ0OworLy8gICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoc2VnTGltaXQgPCBsZW4gJiYgZmlsdC5jb250YWlucyhidWZbc2VnTGltaXRdKSkgeworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrc2VnTGltaXQ7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgICAgICAgICB9CisvLworLy8gICAgICAgICAgICAgICAgICAgIC8vIFRyYW5zZm9ybSB0aGUgdW5maWx0ZXJlZCBjaGFycyBiZXR3ZWVuIHNlZ1N0YXJ0CisvLyAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHNlZ0xpbWl0LgorLy8gICAgICAgICAgICAgICAgICAgIGludCBzZWdMZW4gPSBzZWdMaW1pdCAtIHNlZ1N0YXJ0OworLy8gICAgICAgICAgICAgICAgICAgIGlmIChzZWdMZW4gIT0gMCkgeworLy8gICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbmV3U3RyID0gdHJhbnNmb3JtKAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZyhidWYsIHNlZ1N0YXJ0LCBzZWdMZW4pKTsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC5yZXBsYWNlKHN0YXJ0LCBzdGFydCArIHNlZ0xlbiwgbmV3U3RyKTsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0gbmV3U3RyLmxlbmd0aCgpOworLy8gICAgICAgICAgICAgICAgICAgICAgICBsZW5EZWx0YSArPSBuZXdTdHIubGVuZ3RoKCkgLSBzZWdMZW47CisvLyAgICAgICAgICAgICAgICAgICAgfQorLy8KKy8vICAgICAgICAgICAgICAgICAgICAvLyBTZXQgc2VnU3RhcnQgdG8gdGhlIGZpcnN0IHVuZmlsdGVyZWQgY2hhciBhdCBvcgorLy8gICAgICAgICAgICAgICAgICAgIC8vIGFmdGVyIHNlZ0xpbWl0LgorLy8gICAgICAgICAgICAgICAgICAgIHNlZ1N0YXJ0ID0gc2VnTGltaXQ7CisvLyAgICAgICAgICAgICAgICAgICAgaWYgKGZpbHQgIT0gbnVsbCkgeworLy8gICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoc2VnU3RhcnQgPCBsZW4gJiYgIWZpbHQuY29udGFpbnMoYnVmW3NlZ1N0YXJ0XSkpIHsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrc2VnU3RhcnQ7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgICAgICAgICB9CisvLyAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0gc2VnU3RhcnQgLSBzZWdMaW1pdDsKKy8vCisvLyAgICAgICAgICAgICAgICB9IHdoaWxlIChzZWdTdGFydCA8IGxlbik7CisvLyAgICAgICAgICAgICAgICAKKy8vICAgICAgICAgICAgICAgIG9mZnNldHMubGltaXQgKz0gbGVuRGVsdGE7CisvLyAgICAgICAgICAgICAgICBvZmZzZXRzLmNvbnRleHRMaW1pdCArPSBsZW5EZWx0YTsKKy8vICAgICAgICAgICAgICAgIG9mZnNldHMuc3RhcnQgPSBvZmZzZXRzLmxpbWl0OworLy8gICAgICAgICAgICAgICAgcmV0dXJuOworLy8gICAgICAgICAgICB9CisvLyAgICAgICAgfQorLy8gICAgICAgIC8vIGFzc2VydChzdGFydCA9PSBvZmZzZXRzLmxpbWl0KTsKKy8vICAgICAgICBvZmZzZXRzLnN0YXJ0ID0gc3RhcnQ7CisvLyAgICB9CisvLworLy8gICAgLyoqCisvLyAgICAgKiBTdWJjbGFzc2VzIG11c3QgaW1wbGVtZW50IHRoaXMgbWV0aG9kIHRvIGRldGVybWluZSB3aGV0aGVyIGEKKy8vICAgICAqIGdpdmVuIGNoYXJhY3RlciBoYXMgYSB0cmFuc2Zvcm0gdGhhdCBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgorLy8gICAgICogVGhpcyBpcyBhcHByb3hpbWF0ZWx5IGVxdWl2YWxlbnQgdG8gPGNvZGU+YyAhPQorLy8gICAgICogdHJhbnNmb3JtKFN0cmluZy52YWx1ZU9mKGMpKTwvY29kZT4sIHdoZXJlCisvLyAgICAgKiA8Y29kZT5TdHJpbmcudmFsdWVPZihjKTwvY29kZT4gcmV0dXJucyBhIFN0cmluZyBjb250YWluaW5nIHRoZQorLy8gICAgICogc2luZ2xlIGNoYXJhY3RlciAobm90IGludGVnZXIpIDxjb2RlPmM8L2NvZGU+LiAgU3ViY2xhc3NlcyB0aGF0CisvLyAgICAgKiB0cmFuc2Zvcm0gYWxsIHRoZWlyIGlucHV0IGNhbiBzaW1wbHkgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+LgorLy8gICAgICovCisvLyAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgYm9vbGVhbiBoYXNUcmFuc2Zvcm0oaW50IGMpOworLy8KKy8vICAgIC8qKgorLy8gICAgICogU3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCB0aGlzIG1ldGhvZCB0byB0cmFuc2Zvcm0gYSBzdHJpbmcuCisvLyAgICAgKi8KKy8vICAgIHByb3RlY3RlZCBhYnN0cmFjdCBTdHJpbmcgdHJhbnNmb3JtKFN0cmluZyBzKTsKKy8vfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNsaXRlcmF0aW9uUnVsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNsaXRlcmF0aW9uUnVsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg5OGRiOWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9UcmFuc2xpdGVyYXRpb25SdWxlLmphdmEKQEAgLTAsMCArMSw3MzAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS90ZXh0L1RyYW5zbGl0ZXJhdGlvblJ1bGUuamF2YSx2ICQKKyAqICREYXRlOiAyMDAyLzA2LzI4IDE5OjE1OjUzICQKKyAqICRSZXZpc2lvbjogMS40NyAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKworLyoqCisgKiBBIHRyYW5zbGl0ZXJhdGlvbiBydWxlIHVzZWQgYnkKKyAqIDxjb2RlPlJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yPC9jb2RlPi4KKyAqIDxjb2RlPlRyYW5zbGl0ZXJhdGlvblJ1bGU8L2NvZGU+IGlzIGFuIGltbXV0YWJsZSBvYmplY3QuCisgKgorICogPHA+QSBydWxlIGNvbnNpc3RzIG9mIGFuIGlucHV0IHBhdHRlcm4gYW5kIGFuIG91dHB1dCBzdHJpbmcuICBXaGVuCisgKiB0aGUgaW5wdXQgcGF0dGVybiBpcyBtYXRjaGVkLCB0aGUgb3V0cHV0IHN0cmluZyBpcyBlbWl0dGVkLiAgVGhlCisgKiBpbnB1dCBwYXR0ZXJuIGNvbnNpc3RzIG9mIHplcm8gb3IgbW9yZSBjaGFyYWN0ZXJzIHdoaWNoIGFyZSBtYXRjaGVkCisgKiBleGFjdGx5ICh0aGUga2V5KSBhbmQgb3B0aW9uYWwgY29udGV4dC4gIENvbnRleHQgbXVzdCBtYXRjaCBpZiBpdAorICogaXMgc3BlY2lmaWVkLiAgQ29udGV4dCBtYXkgYmUgc3BlY2lmaWVkIGJlZm9yZSB0aGUga2V5LCBhZnRlciB0aGUKKyAqIGtleSwgb3IgYm90aC4gIFRoZSBrZXksIHByZWNlZGluZyBjb250ZXh0LCBhbmQgZm9sbG93aW5nIGNvbnRleHQKKyAqIG1heSBjb250YWluIHZhcmlhYmxlcy4gIFZhcmlhYmxlcyByZXByZXNlbnQgYSBzZXQgb2YgVW5pY29kZQorICogY2hhcmFjdGVycywgc3VjaCBhcyB0aGUgbGV0dGVycyA8aT5hPC9pPiB0aHJvdWdoIDxpPno8L2k+LgorICogVmFyaWFibGVzIGFyZSBkZXRlY3RlZCBieSBsb29raW5nIHVwIGVhY2ggY2hhcmFjdGVyIGluIGEgc3VwcGxpZWQKKyAqIHZhcmlhYmxlIGxpc3QgdG8gc2VlIGlmIGl0IGhhcyBiZWVuIHNvIGRlZmluZWQuCisgKgorICogPHA+QSBydWxlIG1heSBjb250YWluIHNlZ21lbnRzIGluIGl0cyBpbnB1dCBzdHJpbmcgYW5kIHNlZ21lbnQKKyAqIHJlZmVyZW5jZXMgaW4gaXRzIG91dHB1dCBzdHJpbmcuICBBIHNlZ21lbnQgaXMgYSBzdWJzdHJpbmcgb2YgdGhlCisgKiBpbnB1dCBwYXR0ZXJuLCBpbmRpY2F0ZWQgYnkgYW4gb2Zmc2V0IGFuZCBsaW1pdC4gIFRoZSBzZWdtZW50IG1heQorICogYmUgaW4gdGhlIHByZWNlZGluZyBvciBmb2xsb3dpbmcgY29udGV4dC4gIEl0IG1heSBub3Qgc3BhbiBhCisgKiBjb250ZXh0IGJvdW5kYXJ5LiAgQSBzZWdtZW50IHJlZmVyZW5jZSBpcyBhIHNwZWNpYWwgY2hhcmFjdGVyIGluCisgKiB0aGUgb3V0cHV0IHN0cmluZyB0aGF0IGNhdXNlcyBhIHNlZ21lbnQgb2YgdGhlIGlucHV0IHN0cmluZyAobm90CisgKiB0aGUgaW5wdXQgcGF0dGVybikgdG8gYmUgY29waWVkIHRvIHRoZSBvdXRwdXQgc3RyaW5nLiAgVGhlIHJhbmdlIG9mCisgKiBzcGVjaWFsIGNoYXJhY3RlcnMgdGhhdCByZXByZXNlbnQgc2VnbWVudCByZWZlcmVuY2VzIGlzIGRlZmluZWQgYnkKKyAqIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLkRhdGEuCisgKgorICogPHA+RXhhbXBsZTogVGhlIHJ1bGUgIihbYS16XSkgLiAoWzAtOV0pID4gJDIgLiAkMSIgd2lsbCBjaGFuZ2UgdGhlIGlucHV0CisgKiBzdHJpbmcgImFiYy4xMjMiIHRvICJhYjEuYzIzIi4KKyAqCisgKiA8cD5Db3B5cmlnaHQgJmNvcHk7IElCTSBDb3Jwb3JhdGlvbiAxOTk5LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAdmVyc2lvbiAkUkNTZmlsZTogVHJhbnNsaXRlcmF0aW9uUnVsZS5qYXZhLHYgJCAkUmV2aXNpb246IDEuNDcgJCAkRGF0ZTogMjAwMi8wNi8yOCAxOToxNTo1MyAkCisgKi8KK2NsYXNzIFRyYW5zbGl0ZXJhdGlvblJ1bGUgeworCisgICAgLy8gVE9ETyBFbGltaW5hdGUgdGhlIHBhdHRlcm4gYW5kIGtleUxlbmd0aCBkYXRhIG1lbWJlcnMuICBUaGV5CisgICAgLy8gYXJlIHVzZWQgb25seSBieSBtYXNrcygpIGFuZCBnZXRJbmRleFZhbHVlKCkgd2hpY2ggYXJlIGNhbGxlZAorICAgIC8vIG9ubHkgZHVyaW5nIGJ1aWxkIHRpbWUsIG5vdCBkdXJpbmcgcnVuLXRpbWUuICBQZXJoYXBzIHRoZXNlCisgICAgLy8gbWV0aG9kcyBhbmQgcGF0dGVybi9rZXlMZW5ndGggY2FuIGJlIGlzb2xhdGVkIGludG8gYSBzZXBhcmF0ZQorICAgIC8vIG9iamVjdC4KKworICAgIC8qKgorICAgICAqIFRoZSBtYXRjaCB0aGF0IG11c3Qgb2NjdXIgYmVmb3JlIHRoZSBrZXksIG9yIG51bGwgaWYgdGhlcmUgaXMgbm8KKyAgICAgKiBwcmVjZWRpbmcgY29udGV4dC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZ01hdGNoZXIgYW50ZUNvbnRleHQ7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbWF0Y2hlciBvYmplY3QgZm9yIHRoZSBrZXkuICBJZiBudWxsLCB0aGVuIHRoZSBrZXkgaXMgZW1wdHkuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmdNYXRjaGVyIGtleTsKKworICAgIC8qKgorICAgICAqIFRoZSBtYXRjaCB0aGF0IG11c3Qgb2NjdXIgYWZ0ZXIgdGhlIGtleSwgb3IgbnVsbCBpZiB0aGVyZSBpcyBubworICAgICAqIGZvbGxvd2luZyBjb250ZXh0LgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nTWF0Y2hlciBwb3N0Q29udGV4dDsKKworICAgIC8qKgorICAgICAqIFRoZSBvYmplY3QgdGhhdCBwZXJmb3JtcyB0aGUgcmVwbGFjZW1lbnQgaWYgdGhlIGtleSwKKyAgICAgKiBhbnRlQ29udGV4dCwgYW5kIHBvc3RDb250ZXh0IGFyZSBtYXRjaGVkLiAgTmV2ZXIgbnVsbC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFVuaWNvZGVSZXBsYWNlciBvdXRwdXQ7CisKKyAgICAvKioKKyAgICAgKiBUaGUgc3RyaW5nIHRoYXQgbXVzdCBiZSBtYXRjaGVkLCBjb25zaXN0aW5nIG9mIHRoZSBhbnRlQ29udGV4dCwga2V5LAorICAgICAqIGFuZCBwb3N0Q29udGV4dCwgY29uY2F0ZW5hdGVkIHRvZ2V0aGVyLCBpbiB0aGF0IG9yZGVyLiAgU29tZSBjb21wb25lbnRzCisgICAgICogbWF5IGJlIGVtcHR5ICh6ZXJvIGxlbmd0aCkuCisgICAgICogQHNlZSBhbnRlQ29udGV4dExlbmd0aAorICAgICAqIEBzZWUga2V5TGVuZ3RoCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgcGF0dGVybjsKKworICAgIC8qKgorICAgICAqIEFuIGFycmF5IG9mIG1hdGNoZXIgb2JqZWN0cyBjb3JyZXNwb25kaW5nIHRvIHRoZSBpbnB1dCBwYXR0ZXJuCisgICAgICogc2VnbWVudHMuICBJZiB0aGVyZSBhcmUgbm8gc2VnbWVudHMgdGhpcyBpcyBudWxsLiAgTi5CLiBUaGlzIGlzCisgICAgICogYSBVbmljb2RlTWF0Y2hlciBmb3IgZ2VuZXJhbGl0eSwgYnV0IGluIHByYWN0aWNlIGl0IGlzIGFsd2F5cyBhCisgICAgICogU3RyaW5nTWF0Y2hlci4gIEluIHRoZSBmdXR1cmUgd2UgbWF5IGdlbmVyYWxpemUgdGhpcywgYnV0IGZvcgorICAgICAqIG5vdyB3ZSBzb21ldGltZXMgY2FzdCBkb3duIHRvIFN0cmluZ01hdGNoZXIuCisgICAgICovCisgICAgVW5pY29kZU1hdGNoZXJbXSBzZWdtZW50czsKKworICAgIC8qKgorICAgICAqIFRoZSBsZW5ndGggb2YgdGhlIHN0cmluZyB0aGF0IG11c3QgbWF0Y2ggYmVmb3JlIHRoZSBrZXkuICBJZgorICAgICAqIHplcm8sIHRoZW4gdGhlcmUgaXMgbm8gbWF0Y2hpbmcgcmVxdWlyZW1lbnQgYmVmb3JlIHRoZSBrZXkuCisgICAgICogU3Vic3RyaW5nIFswLGFudGVDb250ZXh0TGVuZ3RoKSBvZiBwYXR0ZXJuIGlzIHRoZSBhbnRlQ29udGV4dC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBhbnRlQ29udGV4dExlbmd0aDsKKworICAgIC8qKgorICAgICAqIFRoZSBsZW5ndGggb2YgdGhlIGtleS4gIFN1YnN0cmluZyBbYW50ZUNvbnRleHRMZW5ndGgsCisgICAgICogYW50ZUNvbnRleHRMZW5ndGggKyBrZXlMZW5ndGgpIGlzIHRoZSBrZXkuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQga2V5TGVuZ3RoOworCisgICAgLyoqCisgICAgICogTWlzY2VsbGFuZW91cyBhdHRyaWJ1dGVzLgorICAgICAqLworICAgIGJ5dGUgZmxhZ3M7CisKKyAgICAvKioKKyAgICAgKiBGbGFnIGF0dHJpYnV0ZXMuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGludCBBTkNIT1JfU1RBUlQgPSAxOworICAgIHN0YXRpYyBmaW5hbCBpbnQgQU5DSE9SX0VORCAgID0gMjsKKworICAgIC8qKgorICAgICAqIEFuIGFsaWFzIHBvaW50ZXIgdG8gdGhlIGRhdGEgZm9yIHRoaXMgcnVsZS4gIFRoZSBkYXRhIHByb3ZpZGVzCisgICAgICogbG9va3VwIHNlcnZpY2VzIGZvciBtYXRjaGVycyBhbmQgc2VnbWVudHMuCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5EYXRhIGRhdGE7CisKKyAgICAvKioKKyAgICAgKiBUaGUgY2hhcmFjdGVyIGF0IGluZGV4IGksIHdoZXJlIGkgPCBjb250ZXh0U3RhcnQgfHwgaSA+PSBjb250ZXh0TGltaXQsCisgICAgICogaXMgRVRIRVIuICBUaGlzIGFsbG93cyBleHBsaWNpdCBtYXRjaGluZyBieSBydWxlcyBhbmQgVW5pY29kZVNldHMKKyAgICAgKiBvZiB0ZXh0IG91dHNpZGUgdGhlIGNvbnRleHQuICBJbiB0cmFkaXRpb25hbCB0ZXJtcywgdGhpcyBhbGxvd3MgYW5jaG9yaW5nCisgICAgICogYXQgdGhlIHN0YXJ0IGFuZC9vciBlbmQuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGNoYXIgRVRIRVIgPSAnXHVGRkZGJzsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAiXHUwMEE5IElCTSBDb3Jwb3JhdGlvbiAxOTk5LTIwMDEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIG5ldyBydWxlIHdpdGggdGhlIGdpdmVuIGlucHV0LCBvdXRwdXQgdGV4dCwgYW5kIG90aGVyCisgICAgICogYXR0cmlidXRlcy4gIEEgY3Vyc29yIHBvc2l0aW9uIG1heSBiZSBzcGVjaWZpZWQgZm9yIHRoZSBvdXRwdXQgdGV4dC4KKyAgICAgKiBAcGFyYW0gaW5wdXQgaW5wdXQgc3RyaW5nLCBpbmNsdWRpbmcga2V5IGFuZCBvcHRpb25hbCBhbnRlIGFuZAorICAgICAqIHBvc3QgY29udGV4dAorICAgICAqIEBwYXJhbSBhbnRlQ29udGV4dFBvcyBvZmZzZXQgaW50byBpbnB1dCB0byBlbmQgb2YgYW50ZSBjb250ZXh0LCBvciAtMSBpZgorICAgICAqIG5vbmUuICBNdXN0IGJlIDw9IGlucHV0Lmxlbmd0aCgpIGlmIG5vdCAtMS4KKyAgICAgKiBAcGFyYW0gcG9zdENvbnRleHRQb3Mgb2Zmc2V0IGludG8gaW5wdXQgdG8gc3RhcnQgb2YgcG9zdCBjb250ZXh0LCBvciAtMQorICAgICAqIGlmIG5vbmUuICBNdXN0IGJlIDw9IGlucHV0Lmxlbmd0aCgpIGlmIG5vdCAtMSwgYW5kIG11c3QgYmUgPj0KKyAgICAgKiBhbnRlQ29udGV4dFBvcy4KKyAgICAgKiBAcGFyYW0gb3V0cHV0IG91dHB1dCBzdHJpbmcKKyAgICAgKiBAcGFyYW0gY3Vyc29yUG9zIG9mZnNldCBpbnRvIG91dHB1dCBhdCB3aGljaCBjdXJzb3IgaXMgbG9jYXRlZCwgb3IgLTEgaWYKKyAgICAgKiBub25lLiAgSWYgbGVzcyB0aGFuIHplcm8sIHRoZW4gdGhlIGN1cnNvciBpcyBwbGFjZWQgYWZ0ZXIgdGhlCisgICAgICogPGNvZGU+b3V0cHV0PC9jb2RlPjsgdGhhdCBpcywgLTEgaXMgZXF1aXZhbGVudCB0bworICAgICAqIDxjb2RlPm91dHB1dC5sZW5ndGgoKTwvY29kZT4uICBJZiBncmVhdGVyIHRoYW4KKyAgICAgKiA8Y29kZT5vdXRwdXQubGVuZ3RoKCk8L2NvZGU+IHRoZW4gYW4gZXhjZXB0aW9uIGlzIHRocm93bi4KKyAgICAgKiBAcGFyYW0gY3Vyc29yT2Zmc2V0IGFuIG9mZnNldCB0byBiZSBhZGRlZCB0byBjdXJzb3JQb3MgdG8gcG9zaXRpb24gdGhlCisgICAgICogY3Vyc29yIGVpdGhlciBpbiB0aGUgYW50ZSBjb250ZXh0LCBpZiA8IDAsIG9yIGluIHRoZSBwb3N0IGNvbnRleHQsIGlmID4KKyAgICAgKiAwLiAgRm9yIGV4YW1wbGUsIHRoZSBydWxlICJhYmN7ZGVmfSA+IHwgQEBAIHh5ejsiIGNoYW5nZXMgImRlZiIgdG8KKyAgICAgKiAieHl6IiBhbmQgbW92ZXMgdGhlIGN1cnNvciB0byBiZWZvcmUgImEiLiAgSXQgd291bGQgaGF2ZSBhIGN1cnNvck9mZnNldAorICAgICAqIG9mIC0zLgorICAgICAqIEBwYXJhbSBzZWdzIGFycmF5IG9mIFVuaWNvZGVNYXRjaGVyIGNvcnJlc3BvbmRpbmcgdG8gaW5wdXQgcGF0dGVybgorICAgICAqIHNlZ21lbnRzLCBvciBudWxsIGlmIHRoZXJlIGFyZSBub25lCisgICAgICogQHBhcmFtIGFuY2hvclN0YXJ0IHRydWUgaWYgdGhlIHRoZSBydWxlIGlzIGFuY2hvcmVkIG9uIHRoZSBsZWZ0IHRvCisgICAgICogdGhlIGNvbnRleHQgc3RhcnQKKyAgICAgKiBAcGFyYW0gYW5jaG9yRW5kIHRydWUgaWYgdGhlIHJ1bGUgaXMgYW5jaG9yZWQgb24gdGhlIHJpZ2h0IHRvIHRoZQorICAgICAqIGNvbnRleHQgbGltaXQKKyAgICAgKi8KKyAgICBwdWJsaWMgVHJhbnNsaXRlcmF0aW9uUnVsZShTdHJpbmcgaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGFudGVDb250ZXh0UG9zLCBpbnQgcG9zdENvbnRleHRQb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY3Vyc29yUG9zLCBpbnQgY3Vyc29yT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVNYXRjaGVyW10gc2VncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGFuY2hvclN0YXJ0LCBib29sZWFuIGFuY2hvckVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5EYXRhIHRoZURhdGEpIHsKKyAgICAgICAgZGF0YSA9IHRoZURhdGE7CisKKyAgICAgICAgLy8gRG8gcmFuZ2UgY2hlY2tzIG9ubHkgd2hlbiB3YXJyYW50ZWQgdG8gc2F2ZSB0aW1lCisgICAgICAgIGlmIChhbnRlQ29udGV4dFBvcyA8IDApIHsKKyAgICAgICAgICAgIGFudGVDb250ZXh0TGVuZ3RoID0gMDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChhbnRlQ29udGV4dFBvcyA+IGlucHV0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBhbnRlIGNvbnRleHQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGFudGVDb250ZXh0TGVuZ3RoID0gYW50ZUNvbnRleHRQb3M7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHBvc3RDb250ZXh0UG9zIDwgMCkgeworICAgICAgICAgICAga2V5TGVuZ3RoID0gaW5wdXQubGVuZ3RoKCkgLSBhbnRlQ29udGV4dExlbmd0aDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChwb3N0Q29udGV4dFBvcyA8IGFudGVDb250ZXh0TGVuZ3RoIHx8CisgICAgICAgICAgICAgICAgcG9zdENvbnRleHRQb3MgPiBpbnB1dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgcG9zdCBjb250ZXh0Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBrZXlMZW5ndGggPSBwb3N0Q29udGV4dFBvcyAtIGFudGVDb250ZXh0TGVuZ3RoOworICAgICAgICB9CisgICAgICAgIGlmIChjdXJzb3JQb3MgPCAwKSB7CisgICAgICAgICAgICBjdXJzb3JQb3MgPSBvdXRwdXQubGVuZ3RoKCk7CisgICAgICAgIH0gZWxzZSBpZiAoY3Vyc29yUG9zID4gb3V0cHV0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGN1cnNvciBwb3NpdGlvbiIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gV2UgZG9uJ3QgdmFsaWRhdGUgdGhlIHNlZ21lbnRzIGFycmF5LiAgVGhlIGNhbGxlciBtdXN0CisgICAgICAgIC8vIGd1YXJhbnRlZSB0aGF0IHRoZSBzZWdtZW50cyBhcmUgd2VsbC1mb3JtZWQgKHRoYXQgaXMsIHRoYXQKKyAgICAgICAgLy8gYWxsICRuIHJlZmVyZW5jZXMgaW4gdGhlIG91dHB1dCByZWZlciB0byBpbmRpY2VzIG9mIHRoaXMKKyAgICAgICAgLy8gYXJyYXksIGFuZCB0aGF0IG5vIGFycmF5IGVsZW1lbnRzIGFyZSBudWxsKS4KKyAgICAgICAgdGhpcy5zZWdtZW50cyA9IHNlZ3M7CisKKyAgICAgICAgcGF0dGVybiA9IGlucHV0OworICAgICAgICBmbGFncyA9IDA7CisgICAgICAgIGlmIChhbmNob3JTdGFydCkgeworICAgICAgICAgICAgZmxhZ3MgfD0gQU5DSE9SX1NUQVJUOworICAgICAgICB9CisgICAgICAgIGlmIChhbmNob3JFbmQpIHsKKyAgICAgICAgICAgIGZsYWdzIHw9IEFOQ0hPUl9FTkQ7CisgICAgICAgIH0KKworICAgICAgICBhbnRlQ29udGV4dCA9IG51bGw7CisgICAgICAgIGlmIChhbnRlQ29udGV4dExlbmd0aCA+IDApIHsKKyAgICAgICAgICAgIGFudGVDb250ZXh0ID0gbmV3IFN0cmluZ01hdGNoZXIocGF0dGVybi5zdWJzdHJpbmcoMCwgYW50ZUNvbnRleHRMZW5ndGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCBkYXRhKTsKKyAgICAgICAgfQorCisgICAgICAgIGtleSA9IG51bGw7CisgICAgICAgIGlmIChrZXlMZW5ndGggPiAwKSB7CisgICAgICAgICAgICBrZXkgPSBuZXcgU3RyaW5nTWF0Y2hlcihwYXR0ZXJuLnN1YnN0cmluZyhhbnRlQ29udGV4dExlbmd0aCwgYW50ZUNvbnRleHRMZW5ndGggKyBrZXlMZW5ndGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgZGF0YSk7CisgICAgICAgIH0KKworICAgICAgICBpbnQgcG9zdENvbnRleHRMZW5ndGggPSBwYXR0ZXJuLmxlbmd0aCgpIC0ga2V5TGVuZ3RoIC0gYW50ZUNvbnRleHRMZW5ndGg7CisgICAgICAgIHBvc3RDb250ZXh0ID0gbnVsbDsKKyAgICAgICAgaWYgKHBvc3RDb250ZXh0TGVuZ3RoID4gMCkgeworICAgICAgICAgICAgcG9zdENvbnRleHQgPSBuZXcgU3RyaW5nTWF0Y2hlcihwYXR0ZXJuLnN1YnN0cmluZyhhbnRlQ29udGV4dExlbmd0aCArIGtleUxlbmd0aCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIGRhdGEpOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5vdXRwdXQgPSBuZXcgU3RyaW5nUmVwbGFjZXIob3V0cHV0LCBjdXJzb3JQb3MgKyBjdXJzb3JPZmZzZXQsIGRhdGEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgcHJlY2VkaW5nIGNvbnRleHQgbGVuZ3RoLiAgVGhpcyBtZXRob2QgaXMgbmVlZGVkIHRvCisgICAgICogc3VwcG9ydCB0aGUgPGNvZGU+VHJhbnNsaXRlcmF0b3I8L2NvZGU+IG1ldGhvZAorICAgICAqIDxjb2RlPmdldE1heGltdW1Db250ZXh0TGVuZ3RoKCk8L2NvZGU+LgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0QW50ZUNvbnRleHRMZW5ndGgoKSB7CisgICAgICAgIHJldHVybiBhbnRlQ29udGV4dExlbmd0aCArICgoKGZsYWdzICYgQU5DSE9SX1NUQVJUKSAhPSAwKSA/IDEgOiAwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbnRlcm5hbCBtZXRob2QuICBSZXR1cm5zIDgtYml0IGluZGV4IHZhbHVlIGZvciB0aGlzIHJ1bGUuCisgICAgICogVGhpcyBpcyB0aGUgbG93IGJ5dGUgb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUga2V5LAorICAgICAqIHVubGVzcyB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIHRoZSBrZXkgaXMgYSBzZXQuICBJZiBpdCdzIGEKKyAgICAgKiBzZXQsIG9yIG90aGVyd2lzZSBjYW4gbWF0Y2ggbXVsdGlwbGUga2V5cywgdGhlIGluZGV4IHZhbHVlIGlzIC0xLgorICAgICAqLworICAgIGZpbmFsIGludCBnZXRJbmRleFZhbHVlKCkgeworICAgICAgICBpZiAoYW50ZUNvbnRleHRMZW5ndGggPT0gcGF0dGVybi5sZW5ndGgoKSkgeworICAgICAgICAgICAgLy8gQSBwYXR0ZXJuIHdpdGgganVzdCBhbnRlIGNvbnRleHQge3N1Y2ggYXMgZm9vKT5iYXJ9IGNhbgorICAgICAgICAgICAgLy8gbWF0Y2ggYW55IGtleS4KKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICBpbnQgYyA9IFVURjE2LmNoYXJBdChwYXR0ZXJuLCBhbnRlQ29udGV4dExlbmd0aCk7CisgICAgICAgIHJldHVybiBkYXRhLmxvb2t1cE1hdGNoZXIoYykgPT0gbnVsbCA/IChjICYgMHhGRikgOiAtMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbnRlcm5hbCBtZXRob2QuICBSZXR1cm5zIHRydWUgaWYgdGhpcyBydWxlIG1hdGNoZXMgdGhlIGdpdmVuCisgICAgICogaW5kZXggdmFsdWUuICBUaGUgaW5kZXggdmFsdWUgaXMgYW4gOC1iaXQgaW50ZWdlciwgMC4uMjU1LAorICAgICAqIHJlcHJlc2VudGluZyB0aGUgbG93IGJ5dGUgb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUga2V5LgorICAgICAqIEl0IG1hdGNoZXMgdGhpcyBydWxlIGlmIGl0IG1hdGNoZXMgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUKKyAgICAgKiBrZXksIG9yIGlmIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIGtleSBpcyBhIHNldCwgYW5kIHRoZSBzZXQKKyAgICAgKiBjb250YWlucyBhbnkgY2hhcmFjdGVyIHdpdGggYSBsb3cgYnl0ZSBlcXVhbCB0byB0aGUgaW5kZXgKKyAgICAgKiB2YWx1ZS4gIElmIHRoZSBydWxlIGNvbnRhaW5zIG9ubHkgYW50ZSBjb250ZXh0LCBhcyBpbiBmb28pPmJhciwKKyAgICAgKiB0aGVuIGl0IHdpbGwgbWF0Y2ggYW55IGtleS4KKyAgICAgKi8KKyAgICBmaW5hbCBib29sZWFuIG1hdGNoZXNJbmRleFZhbHVlKGludCB2KSB7CisgICAgICAgIC8vIERlbGVnYXRlIHRvIHRoZSBrZXksIG9yIGlmIHRoZXJlIGlzIG5vbmUsIHRvIHRoZSBwb3N0Q29udGV4dC4KKyAgICAgICAgLy8gSWYgdGhlcmUgaXMgbmVpdGhlciB0aGVuIHdlIG1hdGNoIGFueSBrZXk7IHJldHVybiB0cnVlLgorICAgICAgICBVbmljb2RlTWF0Y2hlciBtID0gKGtleSAhPSBudWxsKSA/IGtleSA6IHBvc3RDb250ZXh0OworICAgICAgICByZXR1cm4gKG0gIT0gbnVsbCkgPyBtLm1hdGNoZXNJbmRleFZhbHVlKHYpIDogdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGlzIHJ1bGUgbWFza3MgYW5vdGhlciBydWxlLiAgSWYgcjEgbWFza3MgcjIgdGhlbgorICAgICAqIHIxIG1hdGNoZXMgYW55IGlucHV0IHN0cmluZyB0aGF0IHIyIG1hdGNoZXMuICBJZiByMSBtYXNrcyByMiBhbmQgcjIgbWFza3MKKyAgICAgKiByMSB0aGVuIHIxID09IHIyLiAgRXhhbXBsZXM6ICJhPngiIG1hc2tzICJhYj55Ii4gICJhPngiIG1hc2tzICJhW2JdPnkiLgorICAgICAqICJbY11hPngiIG1hc2tzICJbZGNdYT55Ii4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBtYXNrcyhUcmFuc2xpdGVyYXRpb25SdWxlIHIyKSB7CisgICAgICAgIC8qIFJ1bGUgcjEgbWFza3MgcnVsZSByMiBpZiB0aGUgc3RyaW5nIGZvcm1lZCBvZiB0aGUKKyAgICAgICAgICogYW50ZWNvbnRleHQsIGtleSwgYW5kIHBvc3Rjb250ZXh0IG92ZXJsYXBzIGluIHRoZSBmb2xsb3dpbmcKKyAgICAgICAgICogd2F5OgorICAgICAgICAgKgorICAgICAgICAgKiByMTogICAgICBhYWtra3BwcHAKKyAgICAgICAgICogcjI6ICAgICBhYWFra2tra3BwcHAKKyAgICAgICAgICogICAgICAgICAgICBeCisgICAgICAgICAqCisgICAgICAgICAqIFRoZSBzdHJpbmdzIG11c3QgYmUgYWxpZ25lZCBhdCB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIHRoZQorICAgICAgICAgKiBrZXkuICBUaGUgbGVuZ3RoIG9mIHIxIHRvIHRoZSBsZWZ0IG9mIHRoZSBhbGlnbm1lbnQgcG9pbnQKKyAgICAgICAgICogbXVzdCBiZSA8PSB0aGUgbGVuZ3RoIG9mIHIyIHRvIHRoZSBsZWZ0OyBkaXR0byBmb3IgdGhlCisgICAgICAgICAqIHJpZ2h0LiAgVGhlIGNoYXJhY3RlcnMgb2YgcjEgbXVzdCBlcXVhbCAob3IgYmUgYSBzdXBlcnNldAorICAgICAgICAgKiBvZikgdGhlIGNvcnJlc3BvbmRpbmcgY2hhcmFjdGVycyBvZiByMi4gIFRoZSBzdXBlcnNldAorICAgICAgICAgKiBvcGVyYXRpb24gc2hvdWxkIGJlIHBlcmZvcm1lZCB0byBjaGVjayBmb3IgVW5pY29kZVNldAorICAgICAgICAgKiBtYXNraW5nLgorICAgICAgICAgKgorICAgICAgICAgKiBBbmNob3JzOiAgVHdvIHBhdHRlcm5zIHRoYXQgZGlmZmVyIG9ubHkgaW4gYW5jaG9ycyBvbmx5CisgICAgICAgICAqIG1hc2sgb25lIGFub3RoZXIgaWYgdGhleSBhcmUgZXhhY3RseSBlcXVhbCwgYW5kIHIyIGhhcworICAgICAgICAgKiBhbGwgdGhlIGFuY2hvcnMgcjEgaGFzIChvcHRpb25hbGx5LCBwbHVzIHNvbWUpLiAgSGVyZSBZCisgICAgICAgICAqIG1lYW5zIHRoZSByb3cgbWFza3MgdGhlIGNvbHVtbiwgTiBtZWFucyBpdCBkb2Vzbid0LgorICAgICAgICAgKgorICAgICAgICAgKiAgICAgICAgIGFiICAgXmFiICAgIGFiJCAgXmFiJAorICAgICAgICAgKiAgIGFiICAgIFkgICAgIFkgICAgIFkgICAgIFkKKyAgICAgICAgICogIF5hYiAgICBOICAgICBZICAgICBOICAgICBZCisgICAgICAgICAqICAgYWIkICAgTiAgICAgTiAgICAgWSAgICAgWQorICAgICAgICAgKiAgXmFiJCAgIE4gICAgIE4gICAgIE4gICAgIFkKKyAgICAgICAgICoKKyAgICAgICAgICogUG9zdCBjb250ZXh0OiB7YX1iIG1hc2tzIGFiLCBidXQgbm90IHZpY2UgdmVyc2EsIHNpbmNlIHthfWIKKyAgICAgICAgICogbWF0Y2hlcyBldmVyeXRoaW5nIGFiIG1hdGNoZXMsIGFuZCB7YX1iIG1hdGNoZXMge3xhfH1iIGJ1dCBhYgorICAgICAgICAgKiBkb2VzIG5vdC4gIFByZSBjb250ZXh0IGlzIGRpZmZlcmVudCAoYXtifSBkb2VzIG5vdCBhbGlnbiB3aXRoCisgICAgICAgICAqIGFiKS4KKyAgICAgICAgICovCisKKyAgICAgICAgLyogTElNSVRBVElPTiBvZiB0aGUgY3VycmVudCBtYXNrIGFsZ29yaXRobTogU29tZSBydWxlCisgICAgICAgICAqIG1hc2tpbmdzIGFyZSBjdXJyZW50bHkgbm90IGRldGVjdGVkLiAgRm9yIGV4YW1wbGUsCisgICAgICAgICAqICJ7THV9XWE+eCIgbWFza3MgIkFdYT55Ii4gIFRoaXMgY2FuIGJlIGFkZGVkIGxhdGVyLiBUT0RPCisgICAgICAgICAqLworCisgICAgICAgIGludCBsZW4gPSBwYXR0ZXJuLmxlbmd0aCgpOworICAgICAgICBpbnQgbGVmdCA9IGFudGVDb250ZXh0TGVuZ3RoOworICAgICAgICBpbnQgbGVmdDIgPSByMi5hbnRlQ29udGV4dExlbmd0aDsKKyAgICAgICAgaW50IHJpZ2h0ID0gcGF0dGVybi5sZW5ndGgoKSAtIGxlZnQ7CisgICAgICAgIGludCByaWdodDIgPSByMi5wYXR0ZXJuLmxlbmd0aCgpIC0gbGVmdDI7CisKKyAgICAgICAgLy8gVE9ETyBDbGVhbiB0aGlzIHVwIC0tIHNvbWUgbG9naWMgbWlnaHQgYmUgY29tYmluYWJsZSB3aXRoIHRoZQorICAgICAgICAvLyBuZXh0IHN0YXRlbWVudC4KKworICAgICAgICAvLyBUZXN0IGZvciBhbmNob3IgbWFza2luZworICAgICAgICBpZiAobGVmdCA9PSBsZWZ0MiAmJiByaWdodCA9PSByaWdodDIgJiYKKyAgICAgICAgICAgIGtleUxlbmd0aCA8PSByMi5rZXlMZW5ndGggJiYKKyAgICAgICAgICAgIHIyLnBhdHRlcm4ucmVnaW9uTWF0Y2hlcygwLCBwYXR0ZXJuLCAwLCBsZW4pKSB7CisgICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGJvb2xlYW4gbG9naWMgaW1wbGVtZW50cyB0aGUgdGFibGUgYWJvdmUKKyAgICAgICAgICAgIHJldHVybiAoZmxhZ3MgPT0gcjIuZmxhZ3MpIHx8CisgICAgICAgICAgICAgICAgKCEoKGZsYWdzICYgQU5DSE9SX1NUQVJUKSAhPSAwKSAmJiAhKChmbGFncyAmIEFOQ0hPUl9FTkQpICE9IDApKSB8fAorICAgICAgICAgICAgICAgICgoKHIyLmZsYWdzICYgQU5DSE9SX1NUQVJUKSAhPSAwKSAmJiAoKHIyLmZsYWdzICYgQU5DSE9SX0VORCkgIT0gMCkpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGxlZnQgPD0gbGVmdDIgJiYKKyAgICAgICAgICAgIChyaWdodCA8IHJpZ2h0MiB8fAorICAgICAgICAgICAgIChyaWdodCA9PSByaWdodDIgJiYga2V5TGVuZ3RoIDw9IHIyLmtleUxlbmd0aCkpICYmCisgICAgICAgICAgICByMi5wYXR0ZXJuLnJlZ2lvbk1hdGNoZXMobGVmdDIgLSBsZWZ0LCBwYXR0ZXJuLCAwLCBsZW4pOworICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBpbnQgcG9zQmVmb3JlKFJlcGxhY2VhYmxlIHN0ciwgaW50IHBvcykgeworICAgICAgICByZXR1cm4gKHBvcyA+IDApID8KKyAgICAgICAgICAgIHBvcyAtIFVURjE2LmdldENoYXJDb3VudChzdHIuY2hhcjMyQXQocG9zLTEpKSA6CisgICAgICAgICAgICBwb3MgLSAxOworICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBpbnQgcG9zQWZ0ZXIoUmVwbGFjZWFibGUgc3RyLCBpbnQgcG9zKSB7CisgICAgICAgIHJldHVybiAocG9zID49IDAgJiYgcG9zIDwgc3RyLmxlbmd0aCgpKSA/CisgICAgICAgICAgICBwb3MgKyBVVEYxNi5nZXRDaGFyQ291bnQoc3RyLmNoYXIzMkF0KHBvcykpIDoKKyAgICAgICAgICAgIHBvcyArIDE7CisgICAgfQorCisgICAgLyoqCisgICAgICogQXR0ZW1wdCBhIG1hdGNoIGFuZCByZXBsYWNlbWVudCBhdCB0aGUgZ2l2ZW4gcG9zaXRpb24uICBSZXR1cm4KKyAgICAgKiB0aGUgZGVncmVlIG9mIG1hdGNoIGJldHdlZW4gdGhpcyBydWxlIGFuZCB0aGUgZ2l2ZW4gdGV4dC4gIFRoZQorICAgICAqIGRlZ3JlZSBvZiBtYXRjaCBtYXkgYmUgbWlzbWF0Y2gsIGEgcGFydGlhbCBtYXRjaCwgb3IgYSBmdWxsCisgICAgICogbWF0Y2guICBBIG1pc21hdGNoIG1lYW5zIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXIgb2YgdGhlIHRleHQKKyAgICAgKiBkb2VzIG5vdCBtYXRjaCB0aGUgY29udGV4dCBvciBrZXkuICBBIHBhcnRpYWwgbWF0Y2ggbWVhbnMgc29tZQorICAgICAqIGNvbnRleHQgYW5kIGtleSBjaGFyYWN0ZXJzIG1hdGNoLCBidXQgdGhlIHRleHQgaXMgbm90IGxvbmcKKyAgICAgKiBlbm91Z2ggdG8gbWF0Y2ggYWxsIG9mIHRoZW0uICBBIGZ1bGwgbWF0Y2ggbWVhbnMgYWxsIGNvbnRleHQKKyAgICAgKiBhbmQga2V5IGNoYXJhY3RlcnMgbWF0Y2guCisgICAgICoKKyAgICAgKiBJZiBhIGZ1bGwgbWF0Y2ggaXMgb2J0YWluZWQsIHBlcmZvcm0gYSByZXBsYWNlbWVudCwgdXBkYXRlIHBvcywKKyAgICAgKiBhbmQgcmV0dXJuIFVfTUFUQ0guICBPdGhlcndpc2UgYm90aCB0ZXh0IGFuZCBwb3MgYXJlIHVuY2hhbmdlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSB0ZXh0CisgICAgICogQHBhcmFtIHBvcyB0aGUgcG9zaXRpb24gaW5kaWNlcworICAgICAqIEBwYXJhbSBpbmNyZW1lbnRhbCBpZiBUUlVFLCB0ZXN0IGZvciBwYXJ0aWFsIG1hdGNoZXMgdGhhdCBtYXkKKyAgICAgKiBiZSBjb21wbGV0ZWQgYnkgYWRkaXRpb25hbCB0ZXh0IGluc2VydGVkIGF0IHBvcy5saW1pdC4KKyAgICAgKiBAcmV0dXJuIG9uZSBvZiA8Y29kZT5VX01JU01BVENIPC9jb2RlPiwKKyAgICAgKiA8Y29kZT5VX1BBUlRJQUxfTUFUQ0g8L2NvZGU+LCBvciA8Y29kZT5VX01BVENIPC9jb2RlPi4gIElmCisgICAgICogaW5jcmVtZW50YWwgaXMgRkFMU0UgdGhlbiBVX1BBUlRJQUxfTUFUQ0ggd2lsbCBub3QgYmUgcmV0dXJuZWQuCisgICAgICovCisgICAgcHVibGljIGludCBtYXRjaEFuZFJlcGxhY2UoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpbmNyZW1lbnRhbCkgeworICAgICAgICAvLyBNYXRjaGluZyBhbmQgcmVwbGFjaW5nIGFyZSBkb25lIGluIG9uZSBtZXRob2QgYmVjYXVzZSB0aGUKKyAgICAgICAgLy8gcmVwbGFjZW1lbnQgb3BlcmF0aW9uIG5lZWRzIGluZm9ybWF0aW9uIG9idGFpbmVkIGR1cmluZyB0aGUKKyAgICAgICAgLy8gbWF0Y2guICBBbm90aGVyIHdheSB0byBkbyB0aGlzIGlzIHRvIGhhdmUgdGhlIG1hdGNoIG1ldGhvZAorICAgICAgICAvLyBjcmVhdGUgYSBtYXRjaCByZXN1bHQgc3RydWN0IHdpdGggcmVsZXZhbnQgb2Zmc2V0cywgYW5kIHRvIHBhc3MKKyAgICAgICAgLy8gdGhpcyBpbnRvIHRoZSByZXBsYWNlIG1ldGhvZC4KKworICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09IE1BVENIID09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgICAgIC8vIFJlc2V0IHNlZ21lbnQgbWF0Y2ggZGF0YQorICAgICAgICBpZiAoc2VnbWVudHMgIT0gbnVsbCkgeworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPHNlZ21lbnRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgKChTdHJpbmdNYXRjaGVyKSBzZWdtZW50c1tpXSkucmVzZXRNYXRjaCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaW50IGtleUxpbWl0OworICAgICAgICBpbnRbXSBpbnRSZWYgPSBuZXcgaW50WzFdOworCisgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBBbnRlIENvbnRleHQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgLy8gQSBtaXNtYXRjaCBpbiB0aGUgYW50ZSBjb250ZXh0LCBvciB3aXRoIHRoZSBzdGFydCBhbmNob3IsCisgICAgICAgIC8vIGlzIGFuIG91dHJpZ2h0IFVfTUlTTUFUQ0ggcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHdlIGFyZQorICAgICAgICAvLyBpbmNyZW1lbnRhbCBvciBub3QuCisgICAgICAgIGludCBvVGV4dDsgLy8gb2Zmc2V0IGludG8gJ3RleHQnCisgICAgICAgIGludCBtaW5PVGV4dDsKKworICAgICAgICAvLyBOb3RlICgxKTogV2UgcHJvY2VzcyB0ZXh0IGluIDE2LWJpdCBjb2RlIHVuaXRzLCByYXRoZXIgdGhhbgorICAgICAgICAvLyAzMi1iaXQgY29kZSBwb2ludHMuICBUaGlzIHdvcmtzIGJlY2F1c2Ugc3RhbmQtaW5zIGFyZQorICAgICAgICAvLyBhbHdheXMgaW4gdGhlIEJNUCBhbmQgYmVjYXVzZSB3ZSBhcmUgZG9pbmcgYSBsaXRlcmFsIG1hdGNoCisgICAgICAgIC8vIG9wZXJhdGlvbiwgd2hpY2ggY2FuIGJlIGRvbmUgMTYtYml0cyBhdCBhIHRpbWUuCisKKyAgICAgICAgaW50IGFudGVMaW1pdCA9IHBvc0JlZm9yZSh0ZXh0LCBwb3MuY29udGV4dFN0YXJ0KTsKKworICAgICAgICBpbnQgbWF0Y2g7CisKKyAgICAgICAgLy8gU3RhcnQgcmV2ZXJzZSBtYXRjaCBhdCBjaGFyIGJlZm9yZSBwb3Muc3RhcnQKKyAgICAgICAgaW50UmVmWzBdID0gcG9zQmVmb3JlKHRleHQsIHBvcy5zdGFydCk7CisKKyAgICAgICAgaWYgKGFudGVDb250ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIG1hdGNoID0gYW50ZUNvbnRleHQubWF0Y2hlcyh0ZXh0LCBpbnRSZWYsIGFudGVMaW1pdCwgZmFsc2UpOworICAgICAgICAgICAgaWYgKG1hdGNoICE9IFVuaWNvZGVNYXRjaGVyLlVfTUFUQ0gpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gVW5pY29kZU1hdGNoZXIuVV9NSVNNQVRDSDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIG9UZXh0ID0gaW50UmVmWzBdOworICAgICAgICAKKyAgICAgICAgbWluT1RleHQgPSBwb3NBZnRlcih0ZXh0LCBvVGV4dCk7CisKKyAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFN0YXJ0IEFuY2hvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICBpZiAoKChmbGFncyAmIEFOQ0hPUl9TVEFSVCkgIT0gMCkgJiYgb1RleHQgIT0gYW50ZUxpbWl0KSB7CisgICAgICAgICAgICByZXR1cm4gVW5pY29kZU1hdGNoZXIuVV9NSVNNQVRDSDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tIEtleSBhbmQgUG9zdCBDb250ZXh0IC0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgaW50UmVmWzBdID0gcG9zLnN0YXJ0OworCisgICAgICAgIGlmIChrZXkgIT0gbnVsbCkgeworICAgICAgICAgICAgbWF0Y2ggPSBrZXkubWF0Y2hlcyh0ZXh0LCBpbnRSZWYsIHBvcy5saW1pdCwgaW5jcmVtZW50YWwpOworICAgICAgICAgICAgaWYgKG1hdGNoICE9IFVuaWNvZGVNYXRjaGVyLlVfTUFUQ0gpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbWF0Y2g7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBrZXlMaW1pdCA9IGludFJlZlswXTsKKworICAgICAgICBpZiAocG9zdENvbnRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKGluY3JlbWVudGFsICYmIGtleUxpbWl0ID09IHBvcy5saW1pdCkgeworICAgICAgICAgICAgICAgIC8vIFRoZSBrZXkgbWF0Y2hlcyBqdXN0IGJlZm9yZSBwb3MubGltaXQsIGFuZCB0aGVyZSBpcworICAgICAgICAgICAgICAgIC8vIGEgcG9zdENvbnRleHQuICBTaW5jZSB3ZSBhcmUgaW4gaW5jcmVtZW50YWwgbW9kZSwKKyAgICAgICAgICAgICAgICAvLyB3ZSBtdXN0IGFzc3VtZSBtb3JlIGNoYXJhY3RlcnMgbWF5IGJlIGluc2VydGVkIGF0CisgICAgICAgICAgICAgICAgLy8gcG9zLmxpbWl0IC0tIHRoaXMgaXMgYSBwYXJ0aWFsIG1hdGNoLgorICAgICAgICAgICAgICAgIHJldHVybiBVbmljb2RlTWF0Y2hlci5VX1BBUlRJQUxfTUFUQ0g7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG1hdGNoID0gcG9zdENvbnRleHQubWF0Y2hlcyh0ZXh0LCBpbnRSZWYsIHBvcy5jb250ZXh0TGltaXQsIGluY3JlbWVudGFsKTsKKyAgICAgICAgICAgIGlmIChtYXRjaCAhPSBVbmljb2RlTWF0Y2hlci5VX01BVENIKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgb1RleHQgPSBpbnRSZWZbMF07CisKKyAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTdG9wIEFuY2hvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICBpZiAoKChmbGFncyAmIEFOQ0hPUl9FTkQpKSAhPSAwKSB7CisgICAgICAgICAgICBpZiAob1RleHQgIT0gcG9zLmNvbnRleHRMaW1pdCkgeworICAgICAgICAgICAgICAgIHJldHVybiBVbmljb2RlTWF0Y2hlci5VX01JU01BVENIOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGluY3JlbWVudGFsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFVuaWNvZGVNYXRjaGVyLlVfUEFSVElBTF9NQVRDSDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PSBSRVBMQUNFID09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAgICAgLy8gV2UgaGF2ZSBhIGZ1bGwgbWF0Y2guICBUaGUga2V5IGlzIGJldHdlZW4gcG9zLnN0YXJ0IGFuZAorICAgICAgICAvLyBrZXlMaW1pdC4KKworICAgICAgICBpbnQgbmV3TGVuZ3RoID0gb3V0cHV0LnJlcGxhY2UodGV4dCwgcG9zLnN0YXJ0LCBrZXlMaW1pdCwgaW50UmVmKTsKKyAgICAgICAgaW50IGxlbkRlbHRhID0gbmV3TGVuZ3RoIC0gKGtleUxpbWl0IC0gcG9zLnN0YXJ0KTsKKyAgICAgICAgaW50IG5ld1N0YXJ0ID0gaW50UmVmWzBdOworCisgICAgICAgIG9UZXh0ICs9IGxlbkRlbHRhOworICAgICAgICBwb3MubGltaXQgKz0gbGVuRGVsdGE7CisgICAgICAgIHBvcy5jb250ZXh0TGltaXQgKz0gbGVuRGVsdGE7CisgICAgICAgIC8vIFJlc3RyaWN0IG5ldyB2YWx1ZSBvZiBzdGFydCB0byBbbWluT1RleHQsIG1pbihvVGV4dCwgcG9zLmxpbWl0KV0uCisgICAgICAgIHBvcy5zdGFydCA9IE1hdGgubWF4KG1pbk9UZXh0LCBNYXRoLm1pbihNYXRoLm1pbihvVGV4dCwgcG9zLmxpbWl0KSwgbmV3U3RhcnQpKTsKKyAgICAgICAgcmV0dXJuIFVuaWNvZGVNYXRjaGVyLlVfTUFUQ0g7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgc291cmNlIHN0cmluZyB0aGF0IHJlcHJlc2VudHMgdGhpcyBydWxlLiAgQXBwZW5kIGl0IHRvIHRoZQorICAgICAqIGdpdmVuIHN0cmluZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvUnVsZShib29sZWFuIGVzY2FwZVVucHJpbnRhYmxlKSB7CisgICAgICAgIGludCBpOworCisgICAgICAgIFN0cmluZ0J1ZmZlciBydWxlID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCisgICAgICAgIC8vIEFjY3VtdWxhdGUgc3BlY2lhbCBjaGFyYWN0ZXJzIChhbmQgbm9uLXNwZWNpYWxzIGZvbGxvd2luZyB0aGVtKQorICAgICAgICAvLyBpbnRvIHF1b3RlQnVmLiAgQXBwZW5kIHF1b3RlQnVmLCB3aXRoaW4gc2luZ2xlIHF1b3Rlcywgd2hlbgorICAgICAgICAvLyBhIG5vbi1xdW90ZWQgZWxlbWVudCBtdXN0IGJlIGluc2VydGVkLgorICAgICAgICBTdHJpbmdCdWZmZXIgcXVvdGVCdWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisKKyAgICAgICAgLy8gRG8gbm90IGVtaXQgdGhlIGJyYWNlcyAneycgJ30nIGFyb3VuZCB0aGUgcGF0dGVybiBpZiB0aGVyZQorICAgICAgICAvLyBpcyBuZWl0aGVyIGFudGVDb250ZXh0IG5vciBwb3N0Q29udGV4dC4KKyAgICAgICAgYm9vbGVhbiBlbWl0QnJhY2VzID0KKyAgICAgICAgICAgIChhbnRlQ29udGV4dCAhPSBudWxsKSB8fCAocG9zdENvbnRleHQgIT0gbnVsbCk7CisKKyAgICAgICAgLy8gRW1pdCBzdGFydCBhbmNob3IKKyAgICAgICAgaWYgKChmbGFncyAmIEFOQ0hPUl9TVEFSVCkgIT0gMCkgeworICAgICAgICAgICAgcnVsZS5hcHBlbmQoJ14nKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEVtaXQgdGhlIGlucHV0IHBhdHRlcm4KKyAgICAgICAgVXRpbGl0eS5hcHBlbmRUb1J1bGUocnVsZSwgYW50ZUNvbnRleHQsIGVzY2FwZVVucHJpbnRhYmxlLCBxdW90ZUJ1Zik7CisKKyAgICAgICAgaWYgKGVtaXRCcmFjZXMpIHsKKyAgICAgICAgICAgIFV0aWxpdHkuYXBwZW5kVG9SdWxlKHJ1bGUsICd7JywgdHJ1ZSwgZXNjYXBlVW5wcmludGFibGUsIHF1b3RlQnVmKTsKKyAgICAgICAgfQorCisgICAgICAgIFV0aWxpdHkuYXBwZW5kVG9SdWxlKHJ1bGUsIGtleSwgZXNjYXBlVW5wcmludGFibGUsIHF1b3RlQnVmKTsKKworICAgICAgICBpZiAoZW1pdEJyYWNlcykgeworICAgICAgICAgICAgVXRpbGl0eS5hcHBlbmRUb1J1bGUocnVsZSwgJ30nLCB0cnVlLCBlc2NhcGVVbnByaW50YWJsZSwgcXVvdGVCdWYpOworICAgICAgICB9CisKKyAgICAgICAgVXRpbGl0eS5hcHBlbmRUb1J1bGUocnVsZSwgcG9zdENvbnRleHQsIGVzY2FwZVVucHJpbnRhYmxlLCBxdW90ZUJ1Zik7CisKKyAgICAgICAgLy8gRW1pdCBlbmQgYW5jaG9yCisgICAgICAgIGlmICgoZmxhZ3MgJiBBTkNIT1JfRU5EKSAhPSAwKSB7CisgICAgICAgICAgICBydWxlLmFwcGVuZCgnJCcpOworICAgICAgICB9CisKKyAgICAgICAgVXRpbGl0eS5hcHBlbmRUb1J1bGUocnVsZSwgIiA+ICIsIHRydWUsIGVzY2FwZVVucHJpbnRhYmxlLCBxdW90ZUJ1Zik7CisKKyAgICAgICAgLy8gRW1pdCB0aGUgb3V0cHV0IHBhdHRlcm4KKworICAgICAgICBVdGlsaXR5LmFwcGVuZFRvUnVsZShydWxlLCBvdXRwdXQudG9SZXBsYWNlclBhdHRlcm4oZXNjYXBlVW5wcmludGFibGUpLAorICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwgZXNjYXBlVW5wcmludGFibGUsIHF1b3RlQnVmKTsKKworICAgICAgICBVdGlsaXR5LmFwcGVuZFRvUnVsZShydWxlLCAnOycsIHRydWUsIGVzY2FwZVVucHJpbnRhYmxlLCBxdW90ZUJ1Zik7CisKKyAgICAgICAgcmV0dXJuIHJ1bGUudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBvYmplY3QuCisgICAgICogQHJldHVybiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBvYmplY3QKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gZ2V0Q2xhc3MoKS5nZXROYW1lKCkgKyAneycgKyB0b1J1bGUodHJ1ZSkgKyAnfSc7CisgICAgfQorCisgICAgLyoqCisgICAgICogVW5pb24gdGhlIHNldCBvZiBhbGwgY2hhcmFjdGVycyB0aGF0IG1heSBiZSBtb2RpZmllZCBieSB0aGlzIHJ1bGUKKyAgICAgKiBpbnRvIHRoZSBnaXZlbiBzZXQuCisgICAgICovCisgICAgdm9pZCBhZGRTb3VyY2VTZXRUbyhVbmljb2RlU2V0IHRvVW5pb25UbykgeworICAgICAgICBpbnQgbGltaXQgPSBhbnRlQ29udGV4dExlbmd0aCArIGtleUxlbmd0aDsKKyAgICAgICAgZm9yIChpbnQgaT1hbnRlQ29udGV4dExlbmd0aDsgaTxsaW1pdDsgKSB7CisgICAgICAgICAgICBpbnQgY2ggPSBVVEYxNi5jaGFyQXQocGF0dGVybiwgaSk7CisgICAgICAgICAgICBpICs9IFVURjE2LmdldENoYXJDb3VudChjaCk7CisgICAgICAgICAgICBVbmljb2RlTWF0Y2hlciBtYXRjaGVyID0gZGF0YS5sb29rdXBNYXRjaGVyKGNoKTsKKyAgICAgICAgICAgIGlmIChtYXRjaGVyID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0b1VuaW9uVG8uYWRkKGNoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbWF0Y2hlci5hZGRNYXRjaFNldFRvKHRvVW5pb25Ubyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVbmlvbiB0aGUgc2V0IG9mIGFsbCBjaGFyYWN0ZXJzIHRoYXQgbWF5IGJlIGVtaXR0ZWQgYnkgdGhpcyBydWxlCisgICAgICogaW50byB0aGUgZ2l2ZW4gc2V0LgorICAgICAqLworICAgIHZvaWQgYWRkVGFyZ2V0U2V0VG8oVW5pY29kZVNldCB0b1VuaW9uVG8pIHsKKyAgICAgICAgb3V0cHV0LmFkZFJlcGxhY2VtZW50U2V0VG8odG9VbmlvblRvKTsKKyAgICB9Cit9CisKKy8qKgorICogJExvZzogVHJhbnNsaXRlcmF0aW9uUnVsZS5qYXZhLHYgJAorICogUmV2aXNpb24gMS40NyAgMjAwMi8wNi8yOCAxOToxNTo1MyAgYWxhbgorICogaml0dGVyYnVnIDE0MzQ6IGltcHJvdmUgbWV0aG9kIG5hbWVzOyBtaW5vciBjbGVhbnVwCisgKgorICogUmV2aXNpb24gMS40NiAgMjAwMi8wNi8yNiAxODoxMjozOSAgYWxhbgorICogaml0dGVyYnVnIDE0MzQ6IGluaXRpYWwgcHVibGljIGltcGxlbWVudGF0aW9uIG9mIGdldFNvdXJjZVNldCBhbmQgZ2V0VGFyZ2V0U2V0CisgKgorICogUmV2aXNpb24gMS40NSAgMjAwMi8wMi8yNSAyMjo0Mzo1NyAgcmFtCisgKiBNb3ZlIFV0aWxpdHkgY2xhc3MgdG8gaWN1LmltcGwKKyAqCisgKiBSZXZpc2lvbiAxLjQ0ICAyMDAyLzAyLzE2IDAzOjA2OjE2ICBNb2hhbgorICogSUNVNEogcmVvcmdhbml6YXRpb24KKyAqCisgKiBSZXZpc2lvbiAxLjQzICAyMDAyLzAyLzA5IDAxOjAxOjQ3ICBhbGFuCisgKiBqaXR0ZXJidWcgMTU0NDogYWRkIGNoYXIzMkF0KCkgdG8gUmVwbGFjZWFibGUKKyAqCisgKiBSZXZpc2lvbiAxLjQyICAyMDAyLzAyLzA3IDAwOjUzOjU0ICBhbGFuCisgKiBqaXR0ZXJidWcgMTIzNDogbWFrZSBvdXRwdXQgc2lkZSBvZiBSQlRzIG9iamVjdC1vcmllbnRlZDsgcmV3cml0ZSBJRCBwYXJzZXJzIGFuZCBtb2R1bGFyaXplIHRoZW07IGltcGxlbWVudCAmQW55LUxvd2VyKCkgc3VwcG9ydAorICoKKyAqIFJldmlzaW9uIDEuNDEgIDIwMDEvMTIvMTEgMjI6MTE6MDQgIGFsYW4KKyAqIGppdHRlcmJ1ZyAxNTkxOiBlZGl0IGNvbW1lbnRzCisgKgorICogUmV2aXNpb24gMS40MCAgMjAwMS8xMi8xMSAxNzo0Mzo1NyAgYWxhbgorICogaml0dGVyYnVnIDE1OTE6IGNsZWFuIHVwIFRyYW5zbGl0ZXJhdGlvblJ1bGUKKyAqCisgKiBSZXZpc2lvbiAxLjM5ICAyMDAxLzEyLzAzIDIxOjMzOjU4ICBhbGFuCisgKiBqaXR0ZXJidWcgMTM3MzogbW9yZSBmaXhlcyB0byBzdXBwb3J0IHN1cHBsZW1lbnRhbHMKKyAqCisgKiBSZXZpc2lvbiAxLjM4ICAyMDAxLzExLzMwIDIyOjI3OjI5ICBhbGFuCisgKiBqaXR0ZXJidWcgMTU2MDogZml4IGRvdWJsZSBpbmNyZW1lbnQgYnVnIGluIGdldFNvdXJjZVNldAorICoKKyAqIFJldmlzaW9uIDEuMzcgIDIwMDEvMTEvMjkgMjI6MzE6MTggIGFsYW4KKyAqIGppdHRlcmJ1ZyAxNTYwOiBhZGQgc291cmNlLXNldCBtZXRob2RzIGFuZCBUcmFuc2xpdGVyYXRvclV0aWxpdHkgY2xhc3MKKyAqCisgKiBSZXZpc2lvbiAxLjM2ICAyMDAxLzExLzIxIDIyOjIxOjQ1ICBhbGFuCisgKiBqaXR0ZXJidWcgMTUzMzogaW5jb3Jwb3JhdGUgTWFyaydzIHJldmlldyBjb21tZW50czsgbW92ZSBlc2NhcGUgaGFuZGxpbmcgbWV0aG9kcyB0byBVdGlsaXR5CisgKgorICogUmV2aXNpb24gMS4zNSAgMjAwMS8xMS8wMiAxNzo0NjowNSAgYWxhbgorICogaml0dGVyYnVnIDE0MjY6IGVsaW1pbmF0ZSBOT1AgY2FsbCB0byBjb3B5KCkKKyAqCisgKiBSZXZpc2lvbiAxLjM0ICAyMDAxLzEwLzMwIDE4OjA0OjA4ICBhbGFuCisgKiBqaXR0ZXJidWcgMTQwNjogbWFrZSBxdWFudGlmaWVkIHNlZ21lbnRzIGJlaGF2ZSBsaWtlIHBlcmwgY291bnRlcnBhcnRzCisgKgorICogUmV2aXNpb24gMS4zMyAgMjAwMS8xMC8yNSAyMzoyMjoxNSAgYWxhbgorICogaml0dGVyYnVnIDczOiBjaGFuZ2VzIHRvIHN1cHBvcnQgemVyby1sZW5ndGggbWF0Y2hlcnMgYXQgZW5kIG9mIGtleQorICoKKyAqIFJldmlzaW9uIDEuMzIgIDIwMDEvMTAvMjUgMjI6NDI6MjQgIGFsYW4KKyAqIGppdHRlcmJ1ZyA3MzogdXNlIGludCBmb3IgaW5kZXggdmFsdWVzIHRvIGF2b2lkIHNpZ25lZG5lc3MgcHJvYmxlbXMKKyAqCisgKiBSZXZpc2lvbiAxLjMxICAyMDAxLzEwLzE4IDIzOjAyOjMyICBhbGFuCisgKiBqaXR0ZXJidWcgNjA6IGZpeCBoYW5kbGluZyBvZiBhbmNob3JzIGluIHRvUnVsZQorICoKKyAqIFJldmlzaW9uIDEuMzAgIDIwMDEvMTAvMDQgMjI6MzM6NTMgIGFsYW4KKyAqIGppdHRlcmJ1ZyA2OTogbWlub3IgZml4IHRvIGluY3JlbWVudGFsIFJCVCBjb2RlCisgKgorICogUmV2aXNpb24gMS4yOSAgMjAwMS8xMC8wMyAwMDoxNDoyMyAgYWxhbgorICogaml0dGVyYnVnIDczOiBmaW5pc2ggcXVhbnRpZmllciBhbmQgc3VwcGxlbWVudGFsIGNoYXIgc3VwcG9ydAorICoKKyAqIFJldmlzaW9uIDEuMjggIDIwMDEvMDkvMjYgMTg6MDA6MDYgIGFsYW4KKyAqIGppdHRlcmJ1ZyA2Nzogc3luYyBwYXJzZXIgd2l0aCBpY3U0YywgYWxsb3cgdW5saW1pdGVkLCBuZXN0ZWQgc2VnbWVudHMKKyAqCisgKiBSZXZpc2lvbiAxLjI3ICAyMDAxLzA5LzE5IDE3OjQzOjM4ICBhbGFuCisgKiBqaXR0ZXJidWcgNjA6IGluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgdG9SdWxlcygpCisgKgorICogUmV2aXNpb24gMS4yNiAgMjAwMS8wNi8yOSAyMjozNTo0MSAgYWxhbjRqCisgKiBJbXBsZW1lbnQgQW55LVVwcGVyIEFueS1Mb3dlciBhbmQgQW55LVRpdGxlIHRyYW5zbGl0ZXJhdG9ycworICoKKyAqIFJldmlzaW9uIDEuMjUgIDIwMDAvMTEvMjkgMTk6MTI6MzIgIGFsYW40agorICogVXBkYXRlIGRvY3MKKyAqCisgKiBSZXZpc2lvbiAxLjI0ICAyMDAwLzA4LzMwIDIwOjQwOjMwICBhbGFuNGoKKyAqIEltcGxlbWVudCBhbmNob3JzLgorICoKKyAqIFJldmlzaW9uIDEuMjMgIDIwMDAvMDYvMjkgMjE6NTk6MjMgIGFsYW40agorICogRml4IGhhbmRsaW5nIG9mIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uIGZpZWxkcworICoKKyAqIFJldmlzaW9uIDEuMjIgIDIwMDAvMDUvMTggMjE6Mzc6MTkgIGFsYW4KKyAqIFVwZGF0ZSBkb2NzCisgKgorICogUmV2aXNpb24gMS4yMSAgMjAwMC8wNC8yOCAwMToyMjowMSAgYWxhbgorICogVXBkYXRlIHN5bnRheCBkaXNwbGF5ZWQgYnkgdG9TdHJpbmcKKyAqCisgKiBSZXZpc2lvbiAxLjIwICAyMDAwLzA0LzI1IDE3OjE3OjM3ICBhbGFuCisgKiBBZGQgUmVwbGFjZWFibGUuY29weSB0byByZXRhaW4gb3V0LW9mLWJhbmQgaW5mbyBkdXJpbmcgcmVvcmRlcmluZy4KKyAqCisgKiBSZXZpc2lvbiAxLjE5ICAyMDAwLzA0LzI1IDAxOjQyOjU4ICBhbGFuCisgKiBBbGxvdyBhcmJpdHJhcnkgbGVuZ3RoIHZhcmlhYmxlIHZhbHVlcy4gQ2xlYW4gdXAgRGF0YSBBUEkuIFVwZGF0ZSBqYXZhZG9jcy4KKyAqCisgKiBSZXZpc2lvbiAxLjE4ICAyMDAwLzA0LzIyIDAxOjI1OjEwICBhbGFuCisgKiBBZGQgc3VwcG9ydCBmb3IgY3Vyc29yIHBvc2l0aW9uZXIgJ0AnOyB1cGRhdGUgamF2YWRvYworICoKKyAqIFJldmlzaW9uIDEuMTcgIDIwMDAvMDQvMjEgMjE6MTY6NDAgIGFsYW4KKyAqIE1vZGlmeSBydWxlIHN5bnRheAorICoKKyAqIFJldmlzaW9uIDEuMTYgIDIwMDAvMDQvMTkgMTY6MzQ6MTggIGFsYW4KKyAqIEFkZCBzZWdtZW50IHN1cHBvcnQuCisgKgorICogUmV2aXNpb24gMS4xNSAgMjAwMC8wNC8xMiAyMDoxNzo0NSAgYWxhbgorICogRGVsZWdhdGUgcmVwbGFjZSBvcGVyYXRpb24gdG8gcnVsZSBvYmplY3QKKyAqCisgKiBSZXZpc2lvbiAxLjE0ICAyMDAwLzAzLzEwIDA0OjA3OjI0ICBqb2huZgorICogQ29weXJpZ2h0IHVwZGF0ZQorICoKKyAqIFJldmlzaW9uIDEuMTMgIDIwMDAvMDIvMTAgMDc6MzY6MjUgIGpvaG5mCisgKiBmaXhlZCBpbXBvcnRzIGZvciBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHkKKyAqCisgKiBSZXZpc2lvbiAxLjEyICAyMDAwLzAyLzAzIDE4OjExOjE5ICBBbGFuCisgKiBVc2UgYXJyYXkgcmF0aGVyIHRoYW4gaGFzaHRhYmxlIGZvciBjaGFyLXRvLXNldCBtYXAKKyAqCisgKiBSZXZpc2lvbiAxLjExICAyMDAwLzAxLzI3IDE4OjU5OjE5ICBBbGFuCisgKiBVc2UgUG9zaXRpb24gcmF0aGVyIHRoYW4gaW50W10gYW5kIG1vdmUgYWxsIHN1YmNsYXNzIG92ZXJyaWRlcyB0byBvbmUgbWV0aG9kIChoYW5kbGVUcmFuc2xpdGVyYXRlKQorICoKKyAqIFJldmlzaW9uIDEuMTAgIDIwMDAvMDEvMTggMjA6MzY6MTcgIEFsYW4KKyAqIE1ha2UgVW5pY29kZVNldCBpbmhlcml0IGZyb20gVW5pY29kZUZpbHRlcgorICoKKyAqIFJldmlzaW9uIDEuOSAgMjAwMC8wMS8xOCAwMjozODo1NSAgQWxhbgorICogRml4IGZpbHRlcmluZyBidWcuCisgKgorICogUmV2aXNpb24gMS44ICAyMDAwLzAxLzEzIDIzOjUzOjIzICBBbGFuCisgKiBGaXggYnVncyBmb3VuZCBkdXJpbmcgSUNVIHBvcnQKKyAqCisgKiBSZXZpc2lvbiAxLjcgIDIwMDAvMDEvMTEgMDQ6MTI6MDYgIEFsYW4KKyAqIENsZWFudXAsIGVtYmVsbGlzaCBjb21tZW50cworICoKKyAqIFJldmlzaW9uIDEuNiAgMjAwMC8wMS8xMSAwMjoyNTowMyAgQWxhbgorICogUmV3cml0ZSBVbmljb2RlU2V0IGFuZCBSQlQgcGFyc2VycyBmb3IgYmV0dGVyIHBlcmZvcm1hbmNlIGFuZCBuZXcgc3ludGF4CisgKgorICogUmV2aXNpb24gMS41ICAyMDAwLzAxLzA0IDIxOjQzOjU3ICBBbGFuCisgKiBBZGQgcnVsZSBpbmRleGluZywgYW5kIG1vdmUgbWFza2luZyBjaGVjayB0byBUcmFuc2xpdGVyYXRpb25SdWxlU2V0LgorICoKKyAqIFJldmlzaW9uIDEuNCAgMTk5OS8xMi8yMiAwMTo0MDo1NCAgQWxhbgorICogQ29uc29saWRhdGUgcnVsZSBwYXR0ZXJuIGFudGVDb250ZXh0LCBrZXksIGFuZCBwb3N0Q29udGV4dCBpbnRvIG9uZSBzdHJpbmcuCisgKgorICogUmV2aXNpb24gMS4zICAxOTk5LzEyLzIyIDAxOjA1OjU0ICBBbGFuCisgKiBJbXByb3ZlIG1hc2tpbmcgY2hlY2tpbmc7IHR1cm4gaXQgb2ZmIGJ5IGRlZmF1bHQsIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UKKyAqCisgKiBSZXZpc2lvbiAxLjIgIDE5OTkvMTIvMjEgMjM6NTg6NDQgIEFsYW4KKyAqIERldGVjdCBhPnggbWFza2luZyBhPnkKKyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNsaXRlcmF0aW9uUnVsZVNldC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNsaXRlcmF0aW9uUnVsZVNldC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjkyOGVkY2EKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9UcmFuc2xpdGVyYXRpb25SdWxlU2V0LmphdmEKQEAgLTAsMCArMSwzMzggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS90ZXh0L1RyYW5zbGl0ZXJhdGlvblJ1bGVTZXQuamF2YSx2ICQKKyAqICREYXRlOiAyMDAyLzA2LzI4IDE5OjE1OjUzICQKKyAqICRSZXZpc2lvbjogMS4yNSAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEudXRpbC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKworLyoqCisgKiBBIHNldCBvZiBydWxlcyBmb3IgYSA8Y29kZT5SdWxlQmFzZWRUcmFuc2xpdGVyYXRvcjwvY29kZT4uICBUaGlzIHNldCBlbmNvZGVzCisgKiB0aGUgdHJhbnNsaXRlcmF0aW9uIGluIG9uZSBkaXJlY3Rpb24gZnJvbSBvbmUgc2V0IG9mIGNoYXJhY3RlcnMgb3Igc2hvcnQKKyAqIHN0cmluZ3MgdG8gYW5vdGhlci4gIEEgPGNvZGU+UnVsZUJhc2VkVHJhbnNsaXRlcmF0b3I8L2NvZGU+IGNvbnNpc3RzIG9mIHVwIHRvCisgKiB0d28gc3VjaCBzZXRzLCBvbmUgZm9yIHRoZSBmb3J3YXJkIGRpcmVjdGlvbiwgYW5kIG9uZSBmb3IgdGhlIHJldmVyc2UuCisgKgorICogPHA+QSA8Y29kZT5UcmFuc2xpdGVyYXRpb25SdWxlU2V0PC9jb2RlPiBoYXMgb25lIGltcG9ydGFudCBvcGVyYXRpb24sIHRoYXQgb2YKKyAqIGZpbmRpbmcgYSBtYXRjaGluZyBydWxlIGF0IGEgZ2l2ZW4gcG9pbnQgaW4gdGhlIHRleHQuICBUaGlzIGlzIGFjY29tcGxpc2hlZAorICogYnkgdGhlIDxjb2RlPmZpbmRNYXRjaCgpPC9jb2RlPiBtZXRob2QuCisgKgorICogPHA+Q29weXJpZ2h0ICZjb3B5OyBJQk0gQ29ycG9yYXRpb24gMTk5OS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogQGF1dGhvciBBbGFuIExpdQorICogQHZlcnNpb24gJFJDU2ZpbGU6IFRyYW5zbGl0ZXJhdGlvblJ1bGVTZXQuamF2YSx2ICQgJFJldmlzaW9uOiAxLjI1ICQgJERhdGU6IDIwMDIvMDYvMjggMTk6MTU6NTMgJAorICovCitjbGFzcyBUcmFuc2xpdGVyYXRpb25SdWxlU2V0IHsKKyAgICAvKioKKyAgICAgKiBWZWN0b3Igb2YgcnVsZXMsIGluIHRoZSBvcmRlciBhZGRlZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFZlY3RvciBydWxlVmVjdG9yOworCisgICAgLyoqCisgICAgICogTGVuZ3RoIG9mIHRoZSBsb25nZXN0IHByZWNlZGluZyBjb250ZXh0CisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbWF4Q29udGV4dExlbmd0aDsKKworICAgIC8qKgorICAgICAqIFNvcnRlZCBhbmQgaW5kZXhlZCB0YWJsZSBvZiBydWxlcy4gIFRoaXMgaXMgY3JlYXRlZCBieSBmcmVlemUoKSBmcm9tCisgICAgICogdGhlIHJ1bGVzIGluIHJ1bGVWZWN0b3IuICBydWxlcy5sZW5ndGggPj0gcnVsZVZlY3Rvci5zaXplKCksIGFuZCB0aGUKKyAgICAgKiByZWZlcmVuY2VzIGluIHJ1bGVzW10gYXJlIGFsaWFzZXMgb2YgdGhlIHJlZmVyZW5jZXMgaW4gcnVsZVZlY3Rvci4KKyAgICAgKiBBIHNpbmdsZSBydWxlIGluIHJ1bGVWZWN0b3IgaXMgbGlzdGVkIG9uZSBvciBtb3JlIHRpbWVzIGluIHJ1bGVzW10uCisgICAgICovCisgICAgcHJpdmF0ZSBUcmFuc2xpdGVyYXRpb25SdWxlW10gcnVsZXM7CisKKyAgICAvKioKKyAgICAgKiBJbmRleCB0YWJsZS4gIEZvciB0ZXh0IGhhdmluZyBhIGZpcnN0IGNoYXJhY3RlciBjLCBjb21wdXRlIHggPSBjJjB4RkYuCisgICAgICogTm93IHVzZSBydWxlc1tpbmRleFt4XS4uaW5kZXhbeCsxXS0xXS4gIFRoaXMgaW5kZXggdGFibGUgaXMgY3JlYXRlZCBieQorICAgICAqIGZyZWV6ZSgpLgorICAgICAqLworICAgIHByaXZhdGUgaW50W10gaW5kZXg7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgIlx1MDBBOSBJQk0gQ29ycG9yYXRpb24gMTk5OS0yMDAxLiBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBuZXcgZW1wdHkgcnVsZSBzZXQuCisgICAgICovCisgICAgcHVibGljIFRyYW5zbGl0ZXJhdGlvblJ1bGVTZXQoKSB7CisgICAgICAgIHJ1bGVWZWN0b3IgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIG1heENvbnRleHRMZW5ndGggPSAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbWF4aW11bSBjb250ZXh0IGxlbmd0aC4KKyAgICAgKiBAcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIGxvbmdlc3QgcHJlY2VkaW5nIGNvbnRleHQuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRNYXhpbXVtQ29udGV4dExlbmd0aCgpIHsKKyAgICAgICAgcmV0dXJuIG1heENvbnRleHRMZW5ndGg7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkIGEgcnVsZSB0byB0aGlzIHNldC4gIFJ1bGVzIGFyZSBhZGRlZCBpbiBvcmRlciwgYW5kIG9yZGVyIGlzCisgICAgICogc2lnbmlmaWNhbnQuCisgICAgICogQHBhcmFtIHJ1bGUgdGhlIHJ1bGUgdG8gYWRkCisgICAgICovCisgICAgcHVibGljIHZvaWQgYWRkUnVsZShUcmFuc2xpdGVyYXRpb25SdWxlIHJ1bGUpIHsKKyAgICAgICAgcnVsZVZlY3Rvci5hZGRFbGVtZW50KHJ1bGUpOworICAgICAgICBpbnQgbGVuOworICAgICAgICBpZiAoKGxlbiA9IHJ1bGUuZ2V0QW50ZUNvbnRleHRMZW5ndGgoKSkgPiBtYXhDb250ZXh0TGVuZ3RoKSB7CisgICAgICAgICAgICBtYXhDb250ZXh0TGVuZ3RoID0gbGVuOworICAgICAgICB9CisKKyAgICAgICAgcnVsZXMgPSBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIENsb3NlIHRoaXMgcnVsZSBzZXQgdG8gZnVydGhlciBhZGRpdGlvbnMsIGNoZWNrIGl0IGZvciBtYXNrZWQgcnVsZXMsCisgICAgICogYW5kIGluZGV4IGl0IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHNvbWUgcnVsZXMgYXJlIG1hc2tlZAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGZyZWV6ZSgpIHsKKyAgICAgICAgLyogQ29uc3RydWN0IHRoZSBydWxlIGFycmF5IGFuZCBpbmRleCB0YWJsZS4gIFdlIHJlb3JkZXIgdGhlCisgICAgICAgICAqIHJ1bGVzIGJ5IHNvcnRpbmcgdGhlbSBpbnRvIDI1NiBiaW5zLiAgRWFjaCBiaW4gY29udGFpbnMgYWxsCisgICAgICAgICAqIHJ1bGVzIG1hdGNoaW5nIHRoZSBpbmRleCB2YWx1ZSBmb3IgdGhhdCBiaW4uICBBIHJ1bGUKKyAgICAgICAgICogbWF0Y2hlcyBhbiBpbmRleCB2YWx1ZSBpZiBzdHJpbmcgd2hvc2UgZmlyc3Qga2V5IGNoYXJhY3RlcgorICAgICAgICAgKiBoYXMgYSBsb3cgYnl0ZSBlcXVhbCB0byB0aGUgaW5kZXggdmFsdWUgY2FuIG1hdGNoIHRoZSBydWxlLgorICAgICAgICAgKgorICAgICAgICAgKiBFYWNoIGJpbiBjb250YWlucyB6ZXJvIG9yIG1vcmUgcnVsZXMsIGluIHRoZSBzYW1lIG9yZGVyCisgICAgICAgICAqIHRoZXkgd2VyZSBmb3VuZCBvcmlnaW5hbGx5LiAgSG93ZXZlciwgdGhlIHRvdGFsIHJ1bGVzIGluCisgICAgICAgICAqIHRoZSBiaW5zIG1heSBleGNlZWQgdGhlIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgdmVjdG9yLAorICAgICAgICAgKiBzaW5jZSBydWxlcyB0aGF0IGhhdmUgYSB2YXJpYWJsZSBhcyB0aGVpciBmaXJzdCBrZXkKKyAgICAgICAgICogY2hhcmFjdGVyIHdpbGwgZ2VuZXJhbGx5IGZhbGwgaW50byBtb3JlIHRoYW4gb25lIGJpbi4KKyAgICAgICAgICoKKyAgICAgICAgICogVGhhdCBpcywgZWFjaCBiaW4gY29udGFpbnMgYWxsIHJ1bGVzIHRoYXQgZWl0aGVyIGhhdmUgdGhhdAorICAgICAgICAgKiBmaXJzdCBpbmRleCB2YWx1ZSBhcyB0aGVpciBmaXJzdCBrZXkgY2hhcmFjdGVyLCBvciBoYXZlCisgICAgICAgICAqIGEgc2V0IGNvbnRhaW5pbmcgdGhlIGluZGV4IHZhbHVlIGFzIHRoZWlyIGZpcnN0IGNoYXJhY3Rlci4KKyAgICAgICAgICovCisgICAgICAgIGludCBuID0gcnVsZVZlY3Rvci5zaXplKCk7CisgICAgICAgIGluZGV4ID0gbmV3IGludFsyNTddOyAvLyBbc2ljXQorICAgICAgICBWZWN0b3IgdiA9IG5ldyBWZWN0b3IoMipuKTsgLy8gaGV1cmlzdGljOyBhZGp1c3QgYXMgbmVlZGVkCisKKyAgICAgICAgLyogUHJlY29tcHV0ZSB0aGUgaW5kZXggdmFsdWVzLiAgVGhpcyBzYXZlcyBhIExPVCBvZiB0aW1lLgorICAgICAgICAgKi8KKyAgICAgICAgaW50W10gaW5kZXhWYWx1ZSA9IG5ldyBpbnRbbl07CisgICAgICAgIGZvciAoaW50IGo9MDsgajxuOyArK2opIHsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdGlvblJ1bGUgciA9IChUcmFuc2xpdGVyYXRpb25SdWxlKSBydWxlVmVjdG9yLmVsZW1lbnRBdChqKTsKKyAgICAgICAgICAgIGluZGV4VmFsdWVbal0gPSByLmdldEluZGV4VmFsdWUoKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCB4PTA7IHg8MjU2OyArK3gpIHsKKyAgICAgICAgICAgIGluZGV4W3hdID0gdi5zaXplKCk7CisgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8bjsgKytqKSB7CisgICAgICAgICAgICAgICAgaWYgKGluZGV4VmFsdWVbal0gPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXhWYWx1ZVtqXSA9PSB4KSB7CisgICAgICAgICAgICAgICAgICAgICAgICB2LmFkZEVsZW1lbnQocnVsZVZlY3Rvci5lbGVtZW50QXQoaikpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGluZGV4VmFsdWUgaXMgPCAwLCB0aGVuIHRoZSBmaXJzdCBrZXkgY2hhcmFjdGVyIGlzCisgICAgICAgICAgICAgICAgICAgIC8vIGEgc2V0LCBhbmQgd2UgbXVzdCB1c2UgdGhlIG1vcmUgdGltZS1jb25zdW1pbmcKKyAgICAgICAgICAgICAgICAgICAgLy8gbWF0Y2hlc0luZGV4VmFsdWUgY2hlY2suICBJbiBwcmFjdGljZSB0aGlzIGhhcHBlbnMKKyAgICAgICAgICAgICAgICAgICAgLy8gcmFyZWx5LCBzbyB3ZSBzZWxkb20gdHJlYWQgdGhpcyBjb2RlIHBhdGguCisgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdGlvblJ1bGUgciA9IChUcmFuc2xpdGVyYXRpb25SdWxlKSBydWxlVmVjdG9yLmVsZW1lbnRBdChqKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHIubWF0Y2hlc0luZGV4VmFsdWUoeCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHYuYWRkRWxlbWVudChyKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpbmRleFsyNTZdID0gdi5zaXplKCk7CisKKyAgICAgICAgLyogRnJlZXplIHRoaW5ncyBpbnRvIGFuIGFycmF5LgorICAgICAgICAgKi8KKyAgICAgICAgcnVsZXMgPSBuZXcgVHJhbnNsaXRlcmF0aW9uUnVsZVt2LnNpemUoKV07CisgICAgICAgIHYuY29weUludG8ocnVsZXMpOworCisgICAgICAgIFN0cmluZ0J1ZmZlciBlcnJvcnMgPSBudWxsOworCisgICAgICAgIC8qIENoZWNrIGZvciBtYXNraW5nLiAgVGhpcyBpcyBNVUNIIGZhc3RlciB0aGFuIG91ciBvbGQgY2hlY2ssCisgICAgICAgICAqIHdoaWNoIHdhcyBlYWNoIHJ1bGUgYWdhaW5zdCBlYWNoIGZvbGxvd2luZyBydWxlLCBzaW5jZSB3ZQorICAgICAgICAgKiBvbmx5IGhhdmUgdG8gY2hlY2sgZm9yIG1hc2tpbmcgd2l0aGluIGVhY2ggYmluIG5vdy4gIEl0J3MKKyAgICAgICAgICogMjU2Kk8objJeMikgaW5zdGVhZCBvZiBPKG4xXjIpLCB3aGVyZSBuMSBpcyB0aGUgdG90YWwgcnVsZQorICAgICAgICAgKiBjb3VudCwgYW5kIG4yIGlzIHRoZSBwZXItYmluIHJ1bGUgY291bnQuICBCdXQgbjI8PG4xLCBzbworICAgICAgICAgKiBpdCdzIGEgYmlnIHdpbi4KKyAgICAgICAgICovCisgICAgICAgIGZvciAoaW50IHg9MDsgeDwyNTY7ICsreCkgeworICAgICAgICAgICAgZm9yIChpbnQgaj1pbmRleFt4XTsgajxpbmRleFt4KzFdLTE7ICsraikgeworICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdGlvblJ1bGUgcjEgPSBydWxlc1tqXTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBrPWorMTsgazxpbmRleFt4KzFdOyArK2spIHsKKyAgICAgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0aW9uUnVsZSByMiA9IHJ1bGVzW2tdOworICAgICAgICAgICAgICAgICAgICBpZiAocjEubWFza3MocjIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3JzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycy5hcHBlbmQoIlxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCJSdWxlICIgKyByMSArICIgbWFza3MgIiArIHIyKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChlcnJvcnMgIT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbihlcnJvcnMudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUcmFuc2xpdGVyYXRlIHRoZSBnaXZlbiB0ZXh0IHdpdGggdGhlIGdpdmVuIFVUcmFuc1Bvc2l0aW9uCisgICAgICogaW5kaWNlcy4gIFJldHVybiBUUlVFIGlmIHRoZSB0cmFuc2xpdGVyYXRpb24gc2hvdWxkIGNvbnRpbnVlCisgICAgICogb3IgRkFMU0UgaWYgaXQgc2hvdWxkIGhhbHQgKGJlY2F1c2Ugb2YgYSBVX1BBUlRJQUxfTUFUQ0ggbWF0Y2gpLgorICAgICAqIE5vdGUgdGhhdCBGQUxTRSBpcyBvbmx5IGV2ZXIgcmV0dXJuZWQgaWYgaXNJbmNyZW1lbnRhbCBpcyBUUlVFLgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSB0ZXh0IHRvIGJlIHRyYW5zbGl0ZXJhdGVkCisgICAgICogQHBhcmFtIHBvcyB0aGUgcG9zaXRpb24gaW5kaWNlcywgd2hpY2ggd2lsbCBiZSB1cGRhdGVkCisgICAgICogQHBhcmFtIGluY3JlbWVudGFsIGlmIFRSVUUsIGFzc3VtZSBuZXcgdGV4dCBtYXkgYmUgaW5zZXJ0ZWQKKyAgICAgKiBhdCBpbmRleC5saW1pdCwgYW5kIHJldHVybiBGQUxTRSBpZiB0aHJlIGlzIGEgcGFydGlhbCBtYXRjaC4KKyAgICAgKiBAcmV0dXJuIFRSVUUgdW5sZXNzIGEgVV9QQVJUSUFMX01BVENIIGhhcyBiZWVuIG9idGFpbmVkLAorICAgICAqIGluZGljYXRpbmcgdGhhdCB0cmFuc2xpdGVyYXRpb24gc2hvdWxkIHN0b3AgdW50aWwgbW9yZSB0ZXh0CisgICAgICogYXJyaXZlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiB0cmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGluY3JlbWVudGFsKSB7CisgICAgICAgIGludCBpbmRleEJ5dGUgPSB0ZXh0LmNoYXIzMkF0KHBvcy5zdGFydCkgJiAweEZGOworICAgICAgICBmb3IgKGludCBpPWluZGV4W2luZGV4Qnl0ZV07IGk8aW5kZXhbaW5kZXhCeXRlKzFdOyArK2kpIHsKKyAgICAgICAgICAgIGludCBtID0gcnVsZXNbaV0ubWF0Y2hBbmRSZXBsYWNlKHRleHQsIHBvcywgaW5jcmVtZW50YWwpOworICAgICAgICAgICAgc3dpdGNoIChtKSB7CisgICAgICAgICAgICBjYXNlIFVuaWNvZGVNYXRjaGVyLlVfTUFUQ0g6CisgICAgICAgICAgICAgICAgaWYgKFRyYW5zbGl0ZXJhdG9yLkRFQlVHKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigoaW5jcmVtZW50YWwgPyAiUnVsZS5pOiBtYXRjaCAiOiJSdWxlOiBtYXRjaCAiKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlc1tpXS50b1J1bGUodHJ1ZSkgKyAiID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0eS5mb3JtYXRJbnB1dCh0ZXh0LCBwb3MpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICBjYXNlIFVuaWNvZGVNYXRjaGVyLlVfUEFSVElBTF9NQVRDSDoKKyAgICAgICAgICAgICAgICBpZiAoVHJhbnNsaXRlcmF0b3IuREVCVUcpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKChpbmNyZW1lbnRhbCA/ICJSdWxlLmk6IHBhcnRpYWwgbWF0Y2ggIjoiUnVsZTogcGFydGlhbCBtYXRjaCAiKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlc1tpXS50b1J1bGUodHJ1ZSkgKyAiID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0eS5mb3JtYXRJbnB1dCh0ZXh0LCBwb3MpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIE5vIG1hdGNoIG9yIHBhcnRpYWwgbWF0Y2ggZnJvbSBhbnkgcnVsZQorICAgICAgICBwb3Muc3RhcnQgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KHRleHQuY2hhcjMyQXQocG9zLnN0YXJ0KSk7CisgICAgICAgIGlmIChUcmFuc2xpdGVyYXRvci5ERUJVRykgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKChpbmNyZW1lbnRhbCA/ICJSdWxlLmk6IG5vIG1hdGNoID0+ICI6IlJ1bGU6IG5vIG1hdGNoID0+ICIpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmZvcm1hdElucHV0KHRleHQsIHBvcykpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBydWxlIHN0cmluZ3MgdGhhdCByZXByZXNlbnRzIHRoaXMgcnVsZSBzZXQuCisgICAgICovCisgICAgU3RyaW5nIHRvUnVsZXMoYm9vbGVhbiBlc2NhcGVVbnByaW50YWJsZSkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgaW50IGNvdW50ID0gcnVsZVZlY3Rvci5zaXplKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBydWxlU291cmNlID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGk9MDsgaTxjb3VudDsgKytpKSB7CisgICAgICAgICAgICBpZiAoaSAhPSAwKSB7CisgICAgICAgICAgICAgICAgcnVsZVNvdXJjZS5hcHBlbmQoJ1xuJyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRpb25SdWxlIHIgPQorICAgICAgICAgICAgICAgIChUcmFuc2xpdGVyYXRpb25SdWxlKSBydWxlVmVjdG9yLmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgIHJ1bGVTb3VyY2UuYXBwZW5kKHIudG9SdWxlKGVzY2FwZVVucHJpbnRhYmxlKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJ1bGVTb3VyY2UudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHNldCBvZiBhbGwgY2hhcmFjdGVycyB0aGF0IG1heSBiZSBtb2RpZmllZCAoZ2V0VGFyZ2V0PWZhbHNlKQorICAgICAqIG9yIGVtaXR0ZWQgKGdldFRhcmdldD10cnVlKSBieSB0aGlzIHNldC4KKyAgICAgKi8KKyAgICBVbmljb2RlU2V0IGdldFNvdXJjZVRhcmdldFNldChib29sZWFuIGdldFRhcmdldCkgeworICAgICAgICBVbmljb2RlU2V0IHNldCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIGludCBjb3VudCA9IHJ1bGVWZWN0b3Iuc2l6ZSgpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8Y291bnQ7ICsraSkgeworICAgICAgICAgICAgVHJhbnNsaXRlcmF0aW9uUnVsZSByID0KKyAgICAgICAgICAgICAgICAoVHJhbnNsaXRlcmF0aW9uUnVsZSkgcnVsZVZlY3Rvci5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICBpZiAoZ2V0VGFyZ2V0KSB7CisgICAgICAgICAgICAJci5hZGRUYXJnZXRTZXRUbyhzZXQpOworICAgICAgICAgICAgfSBlbHNlIHsKKwkgICAgICAgICAgICByLmFkZFNvdXJjZVNldFRvKHNldCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNldDsKKyAgICB9Cit9CisKKy8qICRMb2c6IFRyYW5zbGl0ZXJhdGlvblJ1bGVTZXQuamF2YSx2ICQKKyAqIFJldmlzaW9uIDEuMjUgIDIwMDIvMDYvMjggMTk6MTU6NTMgIGFsYW4KKyAqIGppdHRlcmJ1ZyAxNDM0OiBpbXByb3ZlIG1ldGhvZCBuYW1lczsgbWlub3IgY2xlYW51cAorICoKKy8qIFJldmlzaW9uIDEuMjQgIDIwMDIvMDYvMjYgMTg6MTI6NDAgIGFsYW4KKy8qIGppdHRlcmJ1ZyAxNDM0OiBpbml0aWFsIHB1YmxpYyBpbXBsZW1lbnRhdGlvbiBvZiBnZXRTb3VyY2VTZXQgYW5kIGdldFRhcmdldFNldAorLyoKKy8qIFJldmlzaW9uIDEuMjMgIDIwMDIvMDIvMjUgMjI6NDM6NTggIHJhbQorLyogTW92ZSBVdGlsaXR5IGNsYXNzIHRvIGljdS5pbXBsCisvKgorLyogUmV2aXNpb24gMS4yMiAgMjAwMi8wMi8xNiAwMzowNjoxNyAgTW9oYW4KKy8qIElDVTRKIHJlb3JnYW5pemF0aW9uCisvKgorLyogUmV2aXNpb24gMS4yMSAgMjAwMi8wMi8wOSAwMTowMTo0NyAgYWxhbgorLyogaml0dGVyYnVnIDE1NDQ6IGFkZCBjaGFyMzJBdCgpIHRvIFJlcGxhY2VhYmxlCisvKgorLyogUmV2aXNpb24gMS4yMCAgMjAwMS8xMS8yOSAyMjozMToxOCAgYWxhbgorLyogaml0dGVyYnVnIDE1NjA6IGFkZCBzb3VyY2Utc2V0IG1ldGhvZHMgYW5kIFRyYW5zbGl0ZXJhdG9yVXRpbGl0eSBjbGFzcworLyoKKy8qIFJldmlzaW9uIDEuMTkgIDIwMDEvMTEvMjkgMTY6MTE6NDYgIGFsYW4KKy8qIGppdHRlcmJ1ZyAxNTYwOiBhZGQgZGVidWdnaW5nIGNvZGU7IGZpeCBoYW5kbGluZyBvZiBydW5zOyBkZXRlY3QgaW5jb21wbGV0ZSBub24taW5jcmVtZW50YWwgcHJvY2Vzc2luZworLyoKKy8qIFJldmlzaW9uIDEuMTggIDIwMDEvMTEvMjcgMjE6NTc6MDUgIGFsYW4KKy8qIGppdHRlcmJ1ZyAxMzg5OiBpbmNvcnBvcmF0ZSBNYXJrJ3MgcmV2aWV3IGNvbW1lbnRzIC0gY29tbWVudHMgb25seQorLyoKKy8qIFJldmlzaW9uIDEuMTcgIDIwMDEvMTEvMDYgMDU6MDY6MjYgIGFsYW4KKy8qIGppdHRlcmJ1ZyA2MDogbWFrZSB0b1J1bGVzKCkgcmVhZCBmcm9tIG9yaWdpbmFsIHZlY3RvcgorLyoKKy8qIFJldmlzaW9uIDEuMTYgIDIwMDEvMTEvMDUgMTg6NTU6NTQgIGFsYW4KKy8qIGppdHRlcmJ1ZyA2MDogZWxpZGUgZHVwbGljYXRlIHJ1bGVzIGluIHRvUnVsZXMoKQorLyoKKy8qIFJldmlzaW9uIDEuMTUgIDIwMDEvMTAvMjYgMjI6NDg6NDEgIGFsYW4KKy8qIGppdHRlcmJ1ZyA2ODogYWRkIERFQlVHIHN1cHBvcnQgdG8gZHVtcCBydWxlLWJhc2VkIG1hdGNoIHByb2dyZXNzaW9uCisvKgorICogUmV2aXNpb24gMS4xNCAgMjAwMS8xMC8yNSAyMjozMzoxOSAgYWxhbgorICogaml0dGVyYnVnIDczOiB1c2UgaW50IGZvciBpbmRleCB2YWx1ZXMgdG8gYXZvaWQgc2lnbmVkbmVzcyBwcm9ibGVtcworICoKKyAqIFJldmlzaW9uIDEuMTMgIDIwMDEvMDkvMjYgMTg6MTc6NDIgIGFsYW4KKyAqIGppdHRlcmJ1ZyA2NzogZGVsZXRlIG9ic29sZXRlIGNvZGUKKyAqCisgKiBSZXZpc2lvbiAxLjEyICAyMDAxLzA5LzI2IDE4OjAwOjA2ICBhbGFuCisgKiBqaXR0ZXJidWcgNjc6IHN5bmMgcGFyc2VyIHdpdGggaWN1NGMsIGFsbG93IHVubGltaXRlZCwgbmVzdGVkIHNlZ21lbnRzCisgKgorICogUmV2aXNpb24gMS4xMSAgMjAwMS8wOS8xOSAxNzo0MzozOCAgYWxhbgorICogaml0dGVyYnVnIDYwOiBpbml0aWFsIGltcGxlbWVudGF0aW9uIG9mIHRvUnVsZXMoKQorICoKKyAqIFJldmlzaW9uIDEuMTAgIDIwMDAvMDYvMjkgMjE6NTk6MjMgIGFsYW40agorICogRml4IGhhbmRsaW5nIG9mIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uIGZpZWxkcworICoKKyAqIFJldmlzaW9uIDEuOSAgMjAwMC8wMy8xMCAwNDowNzoyNCAgam9obmYKKyAqIENvcHlyaWdodCB1cGRhdGUKKyAqCisgKiBSZXZpc2lvbiAxLjggIDIwMDAvMDIvMDMgMTg6MTE6MTkgIEFsYW4KKyAqIFVzZSBhcnJheSByYXRoZXIgdGhhbiBoYXNodGFibGUgZm9yIGNoYXItdG8tc2V0IG1hcAorICoKKyAqIFJldmlzaW9uIDEuNyAgMjAwMC8wMS8yNyAxODo1OToxOSAgQWxhbgorICogVXNlIFBvc2l0aW9uIHJhdGhlciB0aGFuIGludFtdIGFuZCBtb3ZlIGFsbCBzdWJjbGFzcyBvdmVycmlkZXMgdG8gb25lIG1ldGhvZCAoaGFuZGxlVHJhbnNsaXRlcmF0ZSkKKyAqCisgKiBSZXZpc2lvbiAxLjYgIDIwMDAvMDEvMTggMjA6MzY6MTcgIEFsYW4KKyAqIE1ha2UgVW5pY29kZVNldCBpbmhlcml0IGZyb20gVW5pY29kZUZpbHRlcgorICoKKyAqIFJldmlzaW9uIDEuNSAgMjAwMC8wMS8wNCAyMTo0Mzo1NyAgQWxhbgorICogQWRkIHJ1bGUgaW5kZXhpbmcsIGFuZCBtb3ZlIG1hc2tpbmcgY2hlY2sgdG8gVHJhbnNsaXRlcmF0aW9uUnVsZVNldC4KKyAqCisgKiBSZXZpc2lvbiAxLjQgIDE5OTkvMTIvMjIgMDE6NDA6NTQgIEFsYW4KKyAqIENvbnNvbGlkYXRlIHJ1bGUgcGF0dGVybiBhbnRlQ29udGV4dCwga2V5LCBhbmQgcG9zdENvbnRleHQgaW50byBvbmUgc3RyaW5nLgorICoKKyAqIFJldmlzaW9uIDEuMyAgMTk5OS8xMi8yMiAwMTowNTo1NCAgQWxhbgorICogSW1wcm92ZSBtYXNraW5nIGNoZWNraW5nOyB0dXJuIGl0IG9mZiBieSBkZWZhdWx0LCBmb3IgYmV0dGVyIHBlcmZvcm1hbmNlCisgKgorICogUmV2aXNpb24gMS4yICAxOTk5LzEyLzIyIDAwOjAxOjM2ICBBbGFuCisgKiBEZXRlY3QgYT54IG1hc2tpbmcgYT55CisgKi8KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1RyYW5zbGl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9UcmFuc2xpdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmMwZjNlNGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9UcmFuc2xpdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMTY4MSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNsaXRlcmF0b3IuamF2YSx2ICQKKyAqICREYXRlOiAyMDAyLzA3LzMwIDIyOjEyOjQzICQKKyAqICRSZXZpc2lvbjogMS44MyAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlRGF0YTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLmRhdGEuUmVzb3VyY2VSZWFkZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FzZUluc2Vuc2l0aXZlU3RyaW5nOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3RlclByb3BlcnR5OworCitpbXBvcnQgamF2YS5pby5VbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uOworaW1wb3J0IGphdmEudGV4dC5NZXNzYWdlRm9ybWF0OworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5SdWxlQmFzZWRDb2xsYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CisKKy8qKgorICogPGNvZGU+VHJhbnNsaXRlcmF0b3I8L2NvZGU+IGlzIGFuIGFic3RyYWN0IGNsYXNzIHRoYXQKKyAqIHRyYW5zbGl0ZXJhdGVzIHRleHQgZnJvbSBvbmUgZm9ybWF0IHRvIGFub3RoZXIuICBUaGUgbW9zdCBjb21tb24KKyAqIGtpbmQgb2YgdHJhbnNsaXRlcmF0b3IgaXMgYSBzY3JpcHQsIG9yIGFscGhhYmV0LCB0cmFuc2xpdGVyYXRvci4KKyAqIEZvciBleGFtcGxlLCBhIFJ1c3NpYW4gdG8gTGF0aW4gdHJhbnNsaXRlcmF0b3IgY2hhbmdlcyBSdXNzaWFuIHRleHQKKyAqIHdyaXR0ZW4gaW4gQ3lyaWxsaWMgY2hhcmFjdGVycyB0byBwaG9uZXRpY2FsbHkgZXF1aXZhbGVudCBMYXRpbgorICogY2hhcmFjdGVycy4gIEl0IGRvZXMgbm90IDxlbT50cmFuc2xhdGU8L2VtPiBSdXNzaWFuIHRvIEVuZ2xpc2ghCisgKiBUcmFuc2xpdGVyYXRpb24sIHVubGlrZSB0cmFuc2xhdGlvbiwgb3BlcmF0ZXMgb24gY2hhcmFjdGVycywgd2l0aG91dAorICogcmVmZXJlbmNlIHRvIHRoZSBtZWFuaW5ncyBvZiB3b3JkcyBhbmQgc2VudGVuY2VzLgorICoKKyAqIDxwPkFsdGhvdWdoIHNjcmlwdCBjb252ZXJzaW9uIGlzIGl0cyBtb3N0IGNvbW1vbiB1c2UsIGEKKyAqIHRyYW5zbGl0ZXJhdG9yIGNhbiBhY3R1YWxseSBwZXJmb3JtIGEgbW9yZSBnZW5lcmFsIGNsYXNzIG9mIHRhc2tzLgorICogSW4gZmFjdCwgPGNvZGU+VHJhbnNsaXRlcmF0b3I8L2NvZGU+IGRlZmluZXMgYSB2ZXJ5IGdlbmVyYWwgQVBJCisgKiB3aGljaCBzcGVjaWZpZXMgb25seSB0aGF0IGEgc2VnbWVudCBvZiB0aGUgaW5wdXQgdGV4dCBpcyByZXBsYWNlZAorICogYnkgbmV3IHRleHQuICBUaGUgcGFydGljdWxhcnMgb2YgdGhpcyBjb252ZXJzaW9uIGFyZSBkZXRlcm1pbmVkCisgKiBlbnRpcmVseSBieSBzdWJjbGFzc2VzIG9mIDxjb2RlPlRyYW5zbGl0ZXJhdG9yPC9jb2RlPi4KKyAqCisgKiA8cD48Yj5UcmFuc2xpdGVyYXRvcnMgYXJlIHN0YXRlbGVzczwvYj4KKyAqCisgKiA8cD48Y29kZT5UcmFuc2xpdGVyYXRvcjwvY29kZT4gb2JqZWN0cyBhcmUgPGVtPnN0YXRlbGVzczwvZW0+OyB0aGV5CisgKiByZXRhaW4gbm8gaW5mb3JtYXRpb24gYmV0d2VlbiBjYWxscyB0bworICogPGNvZGU+dHJhbnNsaXRlcmF0ZSgpPC9jb2RlPi4gIEFzIGEgcmVzdWx0LCB0aHJlYWRzIG1heSBzaGFyZQorICogdHJhbnNsaXRlcmF0b3JzIHdpdGhvdXQgc3luY2hyb25pemluZyB0aGVtLiAgVGhpcyBtaWdodCBzZWVtIHRvCisgKiBsaW1pdCB0aGUgY29tcGxleGl0eSBvZiB0aGUgdHJhbnNsaXRlcmF0aW9uIG9wZXJhdGlvbi4gIEluCisgKiBwcmFjdGljZSwgc3ViY2xhc3NlcyBwZXJmb3JtIGNvbXBsZXggdHJhbnNsaXRlcmF0aW9ucyBieSBkZWxheWluZworICogdGhlIHJlcGxhY2VtZW50IG9mIHRleHQgdW50aWwgaXQgaXMga25vd24gdGhhdCBubyBvdGhlcgorICogcmVwbGFjZW1lbnRzIGFyZSBwb3NzaWJsZS4gIEluIG90aGVyIHdvcmRzLCBhbHRob3VnaCB0aGUKKyAqIDxjb2RlPlRyYW5zbGl0ZXJhdG9yPC9jb2RlPiBvYmplY3RzIGFyZSBzdGF0ZWxlc3MsIHRoZSBzb3VyY2UgdGV4dAorICogaXRzZWxmIGVtYm9kaWVzIGFsbCB0aGUgbmVlZGVkIGluZm9ybWF0aW9uLCBhbmQgZGVsYXllZCBvcGVyYXRpb24KKyAqIGFsbG93cyBhcmJpdHJhcnkgY29tcGxleGl0eS4KKyAqCisgKiA8cD48Yj5CYXRjaCB0cmFuc2xpdGVyYXRpb248L2I+CisgKgorICogPHA+VGhlIHNpbXBsZXN0IHdheSB0byBwZXJmb3JtIHRyYW5zbGl0ZXJhdGlvbiBpcyBhbGwgYXQgb25jZSwgb24gYQorICogc3RyaW5nIG9mIGV4aXN0aW5nIHRleHQuICBUaGlzIGlzIHJlZmVycmVkIHRvIGFzIDxlbT5iYXRjaDwvZW0+CisgKiB0cmFuc2xpdGVyYXRpb24uICBGb3IgZXhhbXBsZSwgZ2l2ZW4gYSBzdHJpbmcgPGNvZGU+aW5wdXQ8L2NvZGU+CisgKiBhbmQgYSB0cmFuc2xpdGVyYXRvciA8Y29kZT50PC9jb2RlPiwgdGhlIGNhbGwKKyAqCisgKiA8YmxvY2txdW90ZT48Y29kZT5TdHJpbmcgcmVzdWx0ID0gdC50cmFuc2xpdGVyYXRlKGlucHV0KTsKKyAqIDwvY29kZT48L2Jsb2NrcXVvdGU+CisgKgorICogd2lsbCB0cmFuc2xpdGVyYXRlIGl0IGFuZCByZXR1cm4gdGhlIHJlc3VsdC4gIE90aGVyIG1ldGhvZHMgYWxsb3cKKyAqIHRoZSBjbGllbnQgdG8gc3BlY2lmeSBhIHN1YnN0cmluZyB0byBiZSB0cmFuc2xpdGVyYXRlZCBhbmQgdG8gdXNlCisgKiB7QGxpbmsgUmVwbGFjZWFibGV9IG9iamVjdHMgaW5zdGVhZCBvZiBzdHJpbmdzLCBpbiBvcmRlciB0bworICogcHJlc2VydmUgb3V0LW9mLWJhbmQgaW5mb3JtYXRpb24gKHN1Y2ggYXMgdGV4dCBzdHlsZXMpLgorICoKKyAqIDxwPjxiPktleWJvYXJkIHRyYW5zbGl0ZXJhdGlvbjwvYj4KKyAqCisgKiA8cD5Tb21ld2hhdCBtb3JlIGludm9sdmVkIGlzIDxlbT5rZXlib2FyZDwvZW0+LCBvciBpbmNyZW1lbnRhbAorICogdHJhbnNsaXRlcmF0aW9uLiAgVGhpcyBpcyB0aGUgdHJhbnNsaXRlcmF0aW9uIG9mIHRleHQgdGhhdCBpcworICogYXJyaXZpbmcgZnJvbSBzb21lIHNvdXJjZSAodHlwaWNhbGx5IHRoZSB1c2VyJ3Mga2V5Ym9hcmQpIG9uZQorICogY2hhcmFjdGVyIGF0IGEgdGltZSwgb3IgaW4gc29tZSBvdGhlciBwaWVjZW1lYWwgZmFzaGlvbi4KKyAqCisgKiA8cD5JbiBrZXlib2FyZCB0cmFuc2xpdGVyYXRpb24sIGEgPGNvZGU+UmVwbGFjZWFibGU8L2NvZGU+IGJ1ZmZlcgorICogc3RvcmVzIHRoZSB0ZXh0LiAgQXMgdGV4dCBpcyBpbnNlcnRlZCwgYXMgbXVjaCBhcyBwb3NzaWJsZSBpcworICogdHJhbnNsaXRlcmF0ZWQgb24gdGhlIGZseS4gIFRoaXMgbWVhbnMgYSBHVUkgdGhhdCBkaXNwbGF5cyB0aGUKKyAqIGNvbnRlbnRzIG9mIHRoZSBidWZmZXIgbWF5IHNob3cgdGV4dCBiZWluZyBtb2RpZmllZCBhcyBlYWNoIG5ldworICogY2hhcmFjdGVyIGFycml2ZXMuCisgKgorICogPHA+Q29uc2lkZXIgdGhlIHNpbXBsZSA8Y29kZT5SdWxlQmFzZWRUcmFuc2xpdGVyYXRvcjwvY29kZT46CisgKgorICogPGJsb2NrcXVvdGU+PGNvZGU+CisgKiB0aCZndDt7dGhldGF9PGJyPgorICogdCZndDt7dGF1fQorICogPC9jb2RlPjwvYmxvY2txdW90ZT4KKyAqCisgKiBXaGVuIHRoZSB1c2VyIHR5cGVzICd0Jywgbm90aGluZyB3aWxsIGhhcHBlbiwgc2luY2UgdGhlCisgKiB0cmFuc2xpdGVyYXRvciBpcyB3YWl0aW5nIHRvIHNlZSBpZiB0aGUgbmV4dCBjaGFyYWN0ZXIgaXMgJ2gnLiAgVG8KKyAqIHJlbWVkeSB0aGlzLCB3ZSBpbnRyb2R1Y2UgdGhlIG5vdGlvbiBvZiBhIGN1cnNvciwgbWFya2VkIGJ5IGEgJ3wnCisgKiBpbiB0aGUgb3V0cHV0IHN0cmluZzoKKyAqCisgKiA8YmxvY2txdW90ZT48Y29kZT4KKyAqIHQmZ3Q7fHt0YXV9PGJyPgorICoge3RhdX1oJmd0O3t0aGV0YX0KKyAqIDwvY29kZT48L2Jsb2NrcXVvdGU+CisgKgorICogTm93IHdoZW4gdGhlIHVzZXIgdHlwZXMgJ3QnLCB0YXUgYXBwZWFycywgYW5kIGlmIHRoZSBuZXh0IGNoYXJhY3RlcgorICogaXMgJ2gnLCB0aGUgdGF1IGNoYW5nZXMgdG8gYSB0aGV0YS4gIFRoaXMgaXMgYWNjb21wbGlzaGVkIGJ5CisgKiBtYWludGFpbmluZyBhIGN1cnNvciBwb3NpdGlvbiAoaW5kZXBlbmRlbnQgb2YgdGhlIGluc2VydGlvbiBwb2ludCwKKyAqIGFuZCBpbnZpc2libGUgaW4gdGhlIEdVSSkgYWNyb3NzIGNhbGxzIHRvCisgKiA8Y29kZT50cmFuc2xpdGVyYXRlKCk8L2NvZGU+LiAgVHlwaWNhbGx5LCB0aGUgY3Vyc29yIHdpbGwKKyAqIGJlIGNvaW5jaWRlbnQgd2l0aCB0aGUgaW5zZXJ0aW9uIHBvaW50LCBidXQgaW4gYSBjYXNlIGxpa2UgdGhlIG9uZQorICogYWJvdmUsIGl0IHdpbGwgcHJlY2VkZSB0aGUgaW5zZXJ0aW9uIHBvaW50LgorICoKKyAqIDxwPktleWJvYXJkIHRyYW5zbGl0ZXJhdGlvbiBtZXRob2RzIG1haW50YWluIGEgc2V0IG9mIHRocmVlIGluZGljZXMKKyAqIHRoYXQgYXJlIHVwZGF0ZWQgd2l0aCBlYWNoIGNhbGwgdG8KKyAqIDxjb2RlPnRyYW5zbGl0ZXJhdGUoKTwvY29kZT4sIGluY2x1ZGluZyB0aGUgY3Vyc29yLCBzdGFydCwKKyAqIGFuZCBsaW1pdC4gIFRoZXNlIGluZGljZXMgYXJlIGNoYW5nZWQgYnkgdGhlIG1ldGhvZCwgYW5kIHRoZXkgYXJlCisgKiBwYXNzZWQgaW4gYW5kIG91dCB2aWEgYSBQb3NpdGlvbiBvYmplY3QuIFRoZSA8Y29kZT5zdGFydDwvY29kZT4gaW5kZXgKKyAqIG1hcmtzIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHN1YnN0cmluZyB0aGF0IHRoZSB0cmFuc2xpdGVyYXRvciB3aWxsCisgKiBsb29rIGF0LiAgSXQgaXMgYWR2YW5jZWQgYXMgdGV4dCBiZWNvbWVzIGNvbW1pdHRlZCAoYnV0IGl0IGlzIG5vdAorICogdGhlIGNvbW1pdHRlZCBpbmRleDsgdGhhdCdzIHRoZSA8Y29kZT5jdXJzb3I8L2NvZGU+KS4gIFRoZQorICogPGNvZGU+Y3Vyc29yPC9jb2RlPiBpbmRleCwgZGVzY3JpYmVkIGFib3ZlLCBtYXJrcyB0aGUgcG9pbnQgYXQKKyAqIHdoaWNoIHRoZSB0cmFuc2xpdGVyYXRvciBsYXN0IHN0b3BwZWQsIGVpdGhlciBiZWNhdXNlIGl0IHJlYWNoZWQKKyAqIHRoZSBlbmQsIG9yIGJlY2F1c2UgaXQgcmVxdWlyZWQgbW9yZSBjaGFyYWN0ZXJzIHRvIGRpc2FtYmlndWF0ZQorICogYmV0d2VlbiBwb3NzaWJsZSBpbnB1dHMuICBUaGUgPGNvZGU+Y3Vyc29yPC9jb2RlPiBjYW4gYWxzbyBiZQorICogZXhwbGljaXRseSBzZXQgYnkgcnVsZXMgaW4gYSA8Y29kZT5SdWxlQmFzZWRUcmFuc2xpdGVyYXRvcjwvY29kZT4uCisgKiBBbnkgY2hhcmFjdGVycyBiZWZvcmUgdGhlIDxjb2RlPmN1cnNvcjwvY29kZT4gaW5kZXggYXJlIGZyb3plbjsKKyAqIGZ1dHVyZSBrZXlib2FyZCB0cmFuc2xpdGVyYXRpb24gY2FsbHMgd2l0aGluIHRoaXMgaW5wdXQgc2VxdWVuY2UKKyAqIHdpbGwgbm90IGNoYW5nZSB0aGVtLiAgTmV3IHRleHQgaXMgaW5zZXJ0ZWQgYXQgdGhlCisgKiA8Y29kZT5saW1pdDwvY29kZT4gaW5kZXgsIHdoaWNoIG1hcmtzIHRoZSBlbmQgb2YgdGhlIHN1YnN0cmluZyB0aGF0CisgKiB0aGUgdHJhbnNsaXRlcmF0b3IgbG9va3MgYXQuCisgKgorICogPHA+QmVjYXVzZSBrZXlib2FyZCB0cmFuc2xpdGVyYXRpb24gYXNzdW1lcyB0aGF0IG1vcmUgY2hhcmFjdGVycworICogYXJlIHRvIGFycml2ZSwgaXQgaXMgY29uc2VydmF0aXZlIGluIGl0cyBvcGVyYXRpb24uICBJdCBvbmx5CisgKiB0cmFuc2xpdGVyYXRlcyB3aGVuIGl0IGNhbiBkbyBzbyB1bmFtYmlndW91c2x5LiAgT3RoZXJ3aXNlIGl0IHdhaXRzCisgKiBmb3IgbW9yZSBjaGFyYWN0ZXJzIHRvIGFycml2ZS4gIFdoZW4gdGhlIGNsaWVudCBjb2RlIGtub3dzIHRoYXQgbm8KKyAqIG1vcmUgY2hhcmFjdGVycyBhcmUgZm9ydGhjb21pbmcsIHBlcmhhcHMgYmVjYXVzZSB0aGUgdXNlciBoYXMKKyAqIHBlcmZvcm1lZCBzb21lIGlucHV0IHRlcm1pbmF0aW9uIG9wZXJhdGlvbiwgdGhlbiBpdCBzaG91bGQgY2FsbAorICogPGNvZGU+ZmluaXNoVHJhbnNsaXRlcmF0aW9uKCk8L2NvZGU+IHRvIGNvbXBsZXRlIGFueQorICogcGVuZGluZyB0cmFuc2xpdGVyYXRpb25zLgorICoKKyAqIDxwPjxiPkludmVyc2VzPC9iPgorICoKKyAqIDxwPlBhaXJzIG9mIHRyYW5zbGl0ZXJhdG9ycyBtYXkgYmUgaW52ZXJzZXMgb2Ygb25lIGFub3RoZXIuICBGb3IKKyAqIGV4YW1wbGUsIGlmIHRyYW5zbGl0ZXJhdG9yIDxiPkE8L2I+IHRyYW5zbGl0ZXJhdGVzIGNoYXJhY3RlcnMgYnkKKyAqIGluY3JlbWVudGluZyB0aGVpciBVbmljb2RlIHZhbHVlIChzbyAiYWJjIiAtPiAiZGVmIiksIGFuZAorICogdHJhbnNsaXRlcmF0b3IgPGI+QjwvYj4gZGVjcmVtZW50cyBjaGFyYWN0ZXIgdmFsdWVzLCB0aGVuIDxiPkE8L2I+CisgKiBpcyBhbiBpbnZlcnNlIG9mIDxiPkI8L2I+IGFuZCB2aWNlIHZlcnNhLiAgSWYgd2UgY29tcG9zZSA8Yj5BPC9iPgorICogd2l0aCA8Yj5CPC9iPiBpbiBhIGNvbXBvdW5kIHRyYW5zbGl0ZXJhdG9yLCB0aGUgcmVzdWx0IGlzIHRoZQorICogaW5kZW50aXR5IHRyYW5zbGl0ZXJhdG9yLCB0aGF0IGlzLCBhIHRyYW5zbGl0ZXJhdG9yIHRoYXQgZG9lcyBub3QKKyAqIGNoYW5nZSBpdHMgaW5wdXQgdGV4dC4KKyAqCisgKiBUaGUgPGNvZGU+VHJhbnNsaXRlcmF0b3I8L2NvZGU+IG1ldGhvZCA8Y29kZT5nZXRJbnZlcnNlKCk8L2NvZGU+CisgKiByZXR1cm5zIGEgdHJhbnNsaXRlcmF0b3IncyBpbnZlcnNlLCBpZiBvbmUgZXhpc3RzLCBvcgorICogPGNvZGU+bnVsbDwvY29kZT4gb3RoZXJ3aXNlLiAgSG93ZXZlciwgdGhlIHJlc3VsdCBvZgorICogPGNvZGU+Z2V0SW52ZXJzZSgpPC9jb2RlPiB1c3VhbGx5IHdpbGwgPGVtPm5vdDwvZW0+IGJlIGEgdHJ1ZQorICogbWF0aGVtYXRpY2FsIGludmVyc2UuICBUaGlzIGlzIGJlY2F1c2UgdHJ1ZSBpbnZlcnNlIHRyYW5zbGl0ZXJhdG9ycworICogYXJlIGRpZmZpY3VsdCB0byBmb3JtdWxhdGUuICBGb3IgZXhhbXBsZSwgY29uc2lkZXIgdHdvCisgKiB0cmFuc2xpdGVyYXRvcnM6IDxiPkFCPC9iPiwgd2hpY2ggdHJhbnNsaXRlcmF0ZXMgdGhlIGNoYXJhY3RlciAnQScKKyAqIHRvICdCJywgYW5kIDxiPkJBPC9iPiwgd2hpY2ggdHJhbnNsaXRlcmF0ZXMgJ0InIHRvICdBJy4gIEl0IG1pZ2h0CisgKiBzZWVtIHRoYXQgdGhlc2UgYXJlIGV4YWN0IGludmVyc2VzLCBzaW5jZQorICoKKyAqIDxibG9ja3F1b3RlPiJBIiB4IDxiPkFCPC9iPiAtPiAiQiI8YnI+CisgKiAiQiIgeCA8Yj5CQTwvYj4gLT4gIkEiPC9ibG9ja3F1b3RlPgorICoKKyAqIHdoZXJlICd4JyByZXByZXNlbnRzIHRyYW5zbGl0ZXJhdGlvbi4gIEhvd2V2ZXIsCisgKgorICogPGJsb2NrcXVvdGU+IkFCQ0QiIHggPGI+QUI8L2I+IC0+ICJCQkNEIjxicj4KKyAqICJCQkNEIiB4IDxiPkJBPC9iPiAtPiAiQUFDRCI8L2Jsb2NrcXVvdGU+CisgKgorICogc28gPGI+QUI8L2I+IGNvbXBvc2VkIHdpdGggPGI+QkE8L2I+IGlzIG5vdCB0aGUKKyAqIGlkZW50aXR5LiBOb25ldGhlbGVzcywgPGI+QkE8L2I+IG1heSBiZSB1c2VmdWxseSBjb25zaWRlcmVkIHRvIGJlCisgKiA8Yj5BQjwvYj4ncyBpbnZlcnNlLCBhbmQgaXQgaXMgb24gdGhpcyBiYXNpcyB0aGF0CisgKiA8Yj5BQjwvYj48Y29kZT4uZ2V0SW52ZXJzZSgpPC9jb2RlPiBjb3VsZCBsZWdpdGltYXRlbHkgcmV0dXJuCisgKiA8Yj5CQTwvYj4uCisgKgorICogPHA+PGI+SURzIGFuZCBkaXNwbGF5IG5hbWVzPC9iPgorICoKKyAqIDxwPkEgdHJhbnNsaXRlcmF0b3IgaXMgZGVzaWduYXRlZCBieSBhIHNob3J0IGlkZW50aWZpZXIgc3RyaW5nIG9yCisgKiA8ZW0+SUQ8L2VtPi4gIElEcyBmb2xsb3cgdGhlIGZvcm1hdCA8ZW0+c291cmNlLWRlc3RpbmF0aW9uPC9lbT4sCisgKiB3aGVyZSA8ZW0+c291cmNlPC9lbT4gZGVzY3JpYmVzIHRoZSBlbnRpdHkgYmVpbmcgcmVwbGFjZWQsIGFuZAorICogPGVtPmRlc3RpbmF0aW9uPC9lbT4gZGVzY3JpYmVzIHRoZSBlbnRpdHkgcmVwbGFjaW5nCisgKiA8ZW0+c291cmNlPC9lbT4uICBUaGUgZW50aXRpZXMgbWF5IGJlIHRoZSBuYW1lcyBvZiBzY3JpcHRzLAorICogcGFydGljdWxhciBzZXF1ZW5jZXMgb2YgY2hhcmFjdGVycywgb3Igd2hhdGV2ZXIgZWxzZSBpdCBpcyB0aGF0IHRoZQorICogdHJhbnNsaXRlcmF0b3IgY29udmVydHMgdG8gb3IgZnJvbS4gIEZvciBleGFtcGxlLCBhIHRyYW5zbGl0ZXJhdG9yCisgKiBmcm9tIFJ1c3NpYW4gdG8gTGF0aW4gbWlnaHQgYmUgbmFtZWQgIlJ1c3NpYW4tTGF0aW4iLiAgQQorICogdHJhbnNsaXRlcmF0b3IgZnJvbSBrZXlib2FyZCBlc2NhcGUgc2VxdWVuY2VzIHRvIExhdGluLTEgY2hhcmFjdGVycworICogbWlnaHQgYmUgbmFtZWQgIktleWJvYXJkRXNjYXBlLUxhdGluMSIuICBCeSBjb252ZW50aW9uLCBzeXN0ZW0KKyAqIGVudGl0eSBuYW1lcyBhcmUgaW4gRW5nbGlzaCwgd2l0aCB0aGUgaW5pdGlhbCBsZXR0ZXJzIG9mIHdvcmRzCisgKiBjYXBpdGFsaXplZDsgdXNlciBlbnRpdHkgbmFtZXMgbWF5IGZvbGxvdyBhbnkgZm9ybWF0IHNvIGxvbmcgYXMKKyAqIHRoZXkgZG8gbm90IGNvbnRhaW4gZGFzaGVzLgorICoKKyAqIDxwPkluIGFkZGl0aW9uIHRvIHByb2dyYW1tYXRpYyBJRHMsIHRyYW5zbGl0ZXJhdG9yIG9iamVjdHMgaGF2ZQorICogZGlzcGxheSBuYW1lcyBmb3IgcHJlc2VudGF0aW9uIGluIHVzZXIgaW50ZXJmYWNlcywgcmV0dXJuZWQgYnkKKyAqIHtAbGluayAjZ2V0RGlzcGxheU5hbWV9LgorICoKKyAqIDxwPjxiPkZhY3RvcnkgbWV0aG9kcyBhbmQgcmVnaXN0cmF0aW9uPC9iPgorICoKKyAqIDxwPkluIGdlbmVyYWwsIGNsaWVudCBjb2RlIHNob3VsZCB1c2UgdGhlIGZhY3RvcnkgbWV0aG9kCisgKiA8Y29kZT5nZXRJbnN0YW5jZSgpPC9jb2RlPiB0byBvYnRhaW4gYW4gaW5zdGFuY2Ugb2YgYQorICogdHJhbnNsaXRlcmF0b3IgZ2l2ZW4gaXRzIElELiAgVmFsaWQgSURzIG1heSBiZSBlbnVtZXJhdGVkIHVzaW5nCisgKiA8Y29kZT5nZXRBdmFpbGFibGVJRHMoKTwvY29kZT4uICBTaW5jZSB0cmFuc2xpdGVyYXRvcnMgYXJlCisgKiBzdGF0ZWxlc3MsIG11bHRpcGxlIGNhbGxzIHRvIDxjb2RlPmdldEluc3RhbmNlKCk8L2NvZGU+IHdpdGggdGhlCisgKiBzYW1lIElEIHdpbGwgcmV0dXJuIHRoZSBzYW1lIG9iamVjdC4KKyAqCisgKiA8cD5JbiBhZGRpdGlvbiB0byB0aGUgc3lzdGVtIHRyYW5zbGl0ZXJhdG9ycyByZWdpc3RlcmVkIGF0IHN0YXJ0dXAsCisgKiB1c2VyIHRyYW5zbGl0ZXJhdG9ycyBtYXkgYmUgcmVnaXN0ZXJlZCBieSBjYWxsaW5nCisgKiA8Y29kZT5yZWdpc3Rlckluc3RhbmNlKCk8L2NvZGU+IGF0IHJ1biB0aW1lLiAgVG8gcmVnaXN0ZXIgYQorICogdHJhbnNsaXRlcmF0b3Igc3ViY2xhc3Mgd2l0aG91dCBpbnN0YW50aWF0aW5nIGl0ICh1bnRpbCBpdCBpcworICogbmVlZGVkKSwgdXNlcnMgbWF5IGNhbGwgPGNvZGU+cmVnaXN0ZXJDbGFzcygpPC9jb2RlPi4KKyAqCisgKiA8cD48Yj5Db21wb3NlZCB0cmFuc2xpdGVyYXRvcnM8L2I+CisgKgorICogPHA+SW4gYWRkaXRpb24gdG8gYnVpbHQtaW4gc3lzdGVtIHRyYW5zbGl0ZXJhdG9ycyBsaWtlCisgKiAiTGF0aW4tR3JlZWsiLCB0aGVyZSBhcmUgYWxzbyBidWlsdC1pbiA8ZW0+Y29tcG9zZWQ8L2VtPgorICogdHJhbnNsaXRlcmF0b3JzLiAgVGhlc2UgYXJlIGltcGxlbWVudGVkIGJ5IGNvbXBvc2luZyB0d28gb3IgbW9yZQorICogY29tcG9uZW50IHRyYW5zbGl0ZXJhdG9ycy4gIEZvciBleGFtcGxlLCBpZiB3ZSBoYXZlIHNjcmlwdHMgIkEiLAorICogIkIiLCAiQyIsIGFuZCAiRCIsIGFuZCB3ZSB3YW50IHRvIHRyYW5zbGl0ZXJhdGUgYmV0d2VlbiBhbGwgcGFpcnMKKyAqIG9mIHRoZW0sIHRoZW4gd2UgbmVlZCB0byB3cml0ZSAxMiB0cmFuc2xpdGVyYXRvcnM6ICJBLUIiLCAiQS1DIiwKKyAqICJBLUQiLCAiQi1BIiwuLi4sICJELUEiLCAiRC1CIiwgIkQtQyIuICBJZiBpdCBpcyBwb3NzaWJsZSB0bworICogY29udmVydCBhbGwgc2NyaXB0cyB0byBhbiBpbnRlcm1lZGlhdGUgc2NyaXB0ICJNIiwgdGhlbiBpbnN0ZWFkIG9mCisgKiB3cml0aW5nIDEyIHJ1bGUgc2V0cywgd2Ugb25seSBuZWVkIHRvIHdyaXRlIDg6ICJBfk0iLCAiQn5NIiwgIkN+TSIsCisgKiAiRH5NIiwgIk1+QSIsICJNfkIiLCAiTX5DIiwgIk1+RCIuICAoVGhpcyBtaWdodCBub3Qgc2VlbSBsaWtlIGEgYmlnCisgKiB3aW4sIGJ1dCBpdCdzIHJlYWxseSAyPGVtPm48L2VtPiB2cy4gPGVtPm48L2VtPjxzdXA+Mjwvc3VwPiAtCisgKiA8ZW0+bjwvZW0+LCBzbyBhcyA8ZW0+bjwvZW0+IGdldHMgbGFyZ2VyIHRoZSBnYWluIGJlY29tZXMKKyAqIHNpZ25pZmljYW50LiAgV2l0aCA5IHNjcmlwdHMsIGl0J3MgMTggdnMuIDcyIHJ1bGUgc2V0cywgYSBiaWcKKyAqIGRpZmZlcmVuY2UuKSAgTm90ZSB0aGUgdXNlIG9mICJ+IiByYXRoZXIgdGhhbiAiLSIgZm9yIHRoZSBzY3JpcHQKKyAqIHNlcGFyYXRvciBoZXJlOyB0aGlzIGluZGljYXRlcyB0aGF0IHRoZSBnaXZlbiB0cmFuc2xpdGVyYXRvciBpcworICogaW50ZW5kZWQgdG8gYmUgY29tcG9zZWQgd2l0aCBvdGhlcnMsIHJhdGhlciB0aGFuIGJlIHVzZWQgYXMgaXMuCisgKgorICogPHA+Q29tcG9zZWQgdHJhbnNsaXRlcmF0b3JzIGNhbiBiZSBpbnN0YW50aWF0ZWQgYXMgdXN1YWwuICBGb3IKKyAqIGV4YW1wbGUsIHRoZSBzeXN0ZW0gdHJhbnNsaXRlcmF0b3IgIkRldmFuYWdhcmktR3VqYXJhdGkiIGlzIGEKKyAqIGNvbXBvc2VkIHRyYW5zbGl0ZXJhdG9yIGJ1aWx0IGludGVybmFsbHkgYXMKKyAqICJEZXZhbmFnYXJpfkludGVySW5kaWM7SW50ZXJJbmRpY35HdWphcmF0aSIuICBXaGVuIHRoaXMKKyAqIHRyYW5zbGl0ZXJhdG9yIGlzIGluc3RhbnRpYXRlZCwgaXQgYXBwZWFycyBleHRlcm5hbGx5IHRvIGJlIGEKKyAqIHN0YW5kYXJkIHRyYW5zbGl0ZXJhdG9yIChlLmcuLCBnZXRJRCgpIHJldHVybnMKKyAqICJEZXZhbmFnYXJpLUd1amFyYXRpIikuCisgKgorICogPHA+PGI+U3ViY2xhc3Npbmc8L2I+CisgKgorICogPHA+U3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCB0aGUgYWJzdHJhY3QgbWV0aG9kCisgKiA8Y29kZT5oYW5kbGVUcmFuc2xpdGVyYXRlKCk8L2NvZGU+LiAgPHA+U3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUKKyAqIHRoZSA8Y29kZT50cmFuc2xpdGVyYXRlKCk8L2NvZGU+IG1ldGhvZCB0YWtpbmcgYQorICogPGNvZGU+UmVwbGFjZWFibGU8L2NvZGU+IGFuZCB0aGUgPGNvZGU+dHJhbnNsaXRlcmF0ZSgpPC9jb2RlPgorICogbWV0aG9kIHRha2luZyBhIDxjb2RlPlN0cmluZzwvY29kZT4gYW5kIDxjb2RlPlN0cmluZ0J1ZmZlcjwvY29kZT4KKyAqIGlmIHRoZSBwZXJmb3JtYW5jZSBvZiB0aGVzZSBtZXRob2RzIGNhbiBiZSBpbXByb3ZlZCBvdmVyIHRoZQorICogcGVyZm9ybWFuY2Ugb2J0YWluZWQgYnkgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb25zIGluIHRoaXMgY2xhc3MuCisgKgorICogPHA+Q29weXJpZ2h0ICZjb3B5OyBJQk0gQ29ycG9yYXRpb24gMTk5OS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogQGF1dGhvciBBbGFuIExpdQorICogQHZlcnNpb24gJFJDU2ZpbGU6IFRyYW5zbGl0ZXJhdG9yLmphdmEsdiAkICRSZXZpc2lvbjogMS44MyAkICREYXRlOiAyMDAyLzA3LzMwIDIyOjEyOjQzICQKKyAqLworcHVibGljIGFic3RyYWN0IGNsYXNzIFRyYW5zbGl0ZXJhdG9yIHsKKyAgICAvKioKKyAgICAgKiBEaXJlY3Rpb24gY29uc3RhbnQgaW5kaWNhdGluZyB0aGUgZm9yd2FyZCBkaXJlY3Rpb24gaW4gYSB0cmFuc2xpdGVyYXRvciwKKyAgICAgKiBlLmcuLCB0aGUgZm9yd2FyZCBydWxlcyBvZiBhIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLiAgQW4gIkEtQiIKKyAgICAgKiB0cmFuc2xpdGVyYXRvciB0cmFuc2xpdGVyYXRlcyBBIHRvIEIgd2hlbiBvcGVyYXRpbmcgaW4gdGhlIGZvcndhcmQKKyAgICAgKiBkaXJlY3Rpb24sIGFuZCBCIHRvIEEgd2hlbiBvcGVyYXRpbmcgaW4gdGhlIHJldmVyc2UgZGlyZWN0aW9uLgorICAgICAqIEBzZWUgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IKKyAgICAgKiBAc2VlIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGT1JXQVJEID0gMDsKKworICAgIC8qKgorICAgICAqIERpcmVjdGlvbiBjb25zdGFudCBpbmRpY2F0aW5nIHRoZSByZXZlcnNlIGRpcmVjdGlvbiBpbiBhIHRyYW5zbGl0ZXJhdG9yLAorICAgICAqIGUuZy4sIHRoZSByZXZlcnNlIHJ1bGVzIG9mIGEgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuICBBbiAiQS1CIgorICAgICAqIHRyYW5zbGl0ZXJhdG9yIHRyYW5zbGl0ZXJhdGVzIEEgdG8gQiB3aGVuIG9wZXJhdGluZyBpbiB0aGUgZm9yd2FyZAorICAgICAqIGRpcmVjdGlvbiwgYW5kIEIgdG8gQSB3aGVuIG9wZXJhdGluZyBpbiB0aGUgcmV2ZXJzZSBkaXJlY3Rpb24uCisgICAgICogQHNlZSBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvcgorICAgICAqIEBzZWUgQ29tcG91bmRUcmFuc2xpdGVyYXRvcgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJFVkVSU0UgPSAxOworCisgICAgLyoqCisgICAgICogUG9zaXRpb24gc3RydWN0dXJlIGZvciBpbmNyZW1lbnRhbCB0cmFuc2xpdGVyYXRpb24uICBUaGlzIGRhdGEKKyAgICAgKiBzdHJ1Y3R1cmUgZGVmaW5lcyB0d28gc3Vic3RyaW5ncyBvZiB0aGUgdGV4dCBiZWluZworICAgICAqIHRyYW5zbGl0ZXJhdGVkLiAgVGhlIGZpcnN0IHJlZ2lvbiwgW2NvbnRleHRTdGFydCwKKyAgICAgKiBjb250ZXh0TGltaXQpLCBkZWZpbmVzIHdoYXQgY2hhcmFjdGVycyB0aGUgdHJhbnNsaXRlcmF0b3Igd2lsbAorICAgICAqIHJlYWQgYXMgY29udGV4dC4gIFRoZSBzZWNvbmQgcmVnaW9uLCBbc3RhcnQsIGxpbWl0KSwgZGVmaW5lcworICAgICAqIHdoYXQgY2hhcmFjdGVycyB3aWxsIGFjdHVhbGx5IGJlIHRyYW5zbGl0ZXJhdGVkLiAgVGhlIHNlY29uZAorICAgICAqIHJlZ2lvbiBzaG91bGQgYmUgYSBzdWJzZXQgb2YgdGhlIGZpcnN0LgorICAgICAqCisgICAgICogPHA+QWZ0ZXIgYSB0cmFuc2xpdGVyYXRpb24gb3BlcmF0aW9uLCBzb21lIG9mIHRoZSBpbmRpY2VzIGluIHRoaXMKKyAgICAgKiBzdHJ1Y3R1cmUgd2lsbCBiZSBtb2RpZmllZC4gIFNlZSB0aGUgZmllbGQgZGVzY3JpcHRpb25zIGZvcgorICAgICAqIGRldGFpbHMuCisgICAgICoKKyAgICAgKiA8cD5jb250ZXh0U3RhcnQgPD0gc3RhcnQgPD0gbGltaXQgPD0gY29udGV4dExpbWl0CisgICAgICoKKyAgICAgKiA8cD5Ob3RlOiBBbGwgaW5kZXggdmFsdWVzIGluIHRoaXMgc3RydWN0dXJlIG11c3QgYmUgYXQgY29kZSBwb2ludAorICAgICAqIGJvdW5kYXJpZXMuICBUaGF0IGlzLCBub25lIG9mIHRoZW0gbWF5IG9jY3VyIGJldHdlZW4gdHdvIGNvZGUgdW5pdHMKKyAgICAgKiBvZiBhIHN1cnJvZ2F0ZSBwYWlyLiAgSWYgYW55IGluZGV4IGRvZXMgc3BsaXQgYSBzdXJyb2dhdGUgcGFpciwKKyAgICAgKiByZXN1bHRzIGFyZSB1bnNwZWNpZmllZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFBvc2l0aW9uIHsKKworICAgICAgICAvKioKKyAgICAgICAgICogQmVnaW5uaW5nIGluZGV4LCBpbmNsdXNpdmUsIG9mIHRoZSBjb250ZXh0IHRvIGJlIGNvbnNpZGVyZWQgZm9yCisgICAgICAgICAqIGEgdHJhbnNsaXRlcmF0aW9uIG9wZXJhdGlvbi4gIFRoZSB0cmFuc2xpdGVyYXRvciB3aWxsIGlnbm9yZQorICAgICAgICAgKiBhbnl0aGluZyBiZWZvcmUgdGhpcyBpbmRleC4gIElOUFVUL09VVFBVVCBwYXJhbWV0ZXI6IFRoaXMgcGFyYW1ldGVyCisgICAgICAgICAqIGlzIHVwZGF0ZWQgYnkgYSB0cmFuc2xpdGVyYXRpb24gb3BlcmF0aW9uIHRvIHJlZmxlY3QgdGhlIG1heGltdW0KKyAgICAgICAgICogYW1vdW50IG9mIGFudGVjb250ZXh0IG5lZWRlZCBieSBhIHRyYW5zbGl0ZXJhdG9yLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBjb250ZXh0U3RhcnQ7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEVuZGluZyBpbmRleCwgZXhjbHVzaXZlLCBvZiB0aGUgY29udGV4dCB0byBiZSBjb25zaWRlcmVkIGZvciBhCisgICAgICAgICAqIHRyYW5zbGl0ZXJhdGlvbiBvcGVyYXRpb24uICBUaGUgdHJhbnNsaXRlcmF0b3Igd2lsbCBpZ25vcmUKKyAgICAgICAgICogYW55dGhpbmcgYXQgb3IgYWZ0ZXIgdGhpcyBpbmRleC4gIElOUFVUL09VVFBVVCBwYXJhbWV0ZXI6IFRoaXMKKyAgICAgICAgICogcGFyYW1ldGVyIGlzIHVwZGF0ZWQgdG8gcmVmbGVjdCBjaGFuZ2VzIGluIHRoZSBsZW5ndGggb2YgdGhlCisgICAgICAgICAqIHRleHQsIGJ1dCBwb2ludHMgdG8gdGhlIHNhbWUgbG9naWNhbCBwb3NpdGlvbiBpbiB0aGUgdGV4dC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgY29udGV4dExpbWl0OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBCZWdpbm5pbmcgaW5kZXgsIGluY2x1c2l2ZSwgb2YgdGhlIHRleHQgdG8gYmUgdHJhbnNsaXRlcmF0ZC4KKyAgICAgICAgICogSU5QVVQvT1VUUFVUIHBhcmFtZXRlcjogVGhpcyBwYXJhbWV0ZXIgaXMgYWR2YW5jZWQgcGFzdAorICAgICAgICAgKiBjaGFyYWN0ZXJzIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4gdHJhbnNsaXRlcmF0ZWQgYnkgYQorICAgICAgICAgKiB0cmFuc2xpdGVyYXRpb24gb3BlcmF0aW9uLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBzdGFydDsKKworICAgICAgICAvKioKKyAgICAgICAgICogRW5kaW5nIGluZGV4LCBleGNsdXNpdmUsIG9mIHRoZSB0ZXh0IHRvIGJlIHRyYW5zbGl0ZXJhdGQuCisgICAgICAgICAqIElOUFVUL09VVFBVVCBwYXJhbWV0ZXI6IFRoaXMgcGFyYW1ldGVyIGlzIHVwZGF0ZWQgdG8gcmVmbGVjdAorICAgICAgICAgKiBjaGFuZ2VzIGluIHRoZSBsZW5ndGggb2YgdGhlIHRleHQsIGJ1dCBwb2ludHMgdG8gdGhlIHNhbWUKKyAgICAgICAgICogbG9naWNhbCBwb3NpdGlvbiBpbiB0aGUgdGV4dC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgbGltaXQ7CisKKyAgICAgICAgcHVibGljIFBvc2l0aW9uKCkgeworICAgICAgICAgICAgdGhpcygwLCAwLCAwLCAwKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBQb3NpdGlvbihpbnQgY29udGV4dFN0YXJ0LCBpbnQgY29udGV4dExpbWl0LCBpbnQgc3RhcnQpIHsKKyAgICAgICAgICAgIHRoaXMoY29udGV4dFN0YXJ0LCBjb250ZXh0TGltaXQsIHN0YXJ0LCBjb250ZXh0TGltaXQpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFBvc2l0aW9uKGludCBjb250ZXh0U3RhcnQsIGludCBjb250ZXh0TGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQsIGludCBsaW1pdCkgeworICAgICAgICAgICAgdGhpcy5jb250ZXh0U3RhcnQgPSBjb250ZXh0U3RhcnQ7CisgICAgICAgICAgICB0aGlzLmNvbnRleHRMaW1pdCA9IGNvbnRleHRMaW1pdDsKKyAgICAgICAgICAgIHRoaXMuc3RhcnQgPSBzdGFydDsKKyAgICAgICAgICAgIHRoaXMubGltaXQgPSBsaW1pdDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBDaGVjayBhbGwgYm91bmRzLiAgSWYgdGhleSBhcmUgaW52YWxpZCwgdGhyb3cgYW4gZXhjZXB0aW9uLgorICAgICAgICAgKiBAcGFyYW0gbGVuZ3RoIHRoZSBsZW5ndGggb2YgdGhlIHN0cmluZyB0aGlzIG9iamVjdCBhcHBsaWVzIHRvCisgICAgICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIGFueSBpbmRpY2VzIGFyZSBvdXQKKyAgICAgICAgICogb2YgYm91bmRzCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgZmluYWwgdm9pZCB2YWxpZGF0ZShpbnQgbGVuZ3RoKSB7CisgICAgICAgICAgICBpZiAoY29udGV4dFN0YXJ0IDwgMCB8fAorICAgICAgICAgICAgICAgIHN0YXJ0IDwgY29udGV4dFN0YXJ0IHx8CisgICAgICAgICAgICAgICAgbGltaXQgPCBzdGFydCB8fAorICAgICAgICAgICAgICAgIGNvbnRleHRMaW1pdCA8IGxpbWl0IHx8CisgICAgICAgICAgICAgICAgbGVuZ3RoIDwgY29udGV4dExpbWl0KSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBQb3NpdGlvbiB7Y3M9IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0U3RhcnQgKyAiLCBzPSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKyAiLCBsPSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGltaXQgKyAiLCBjbD0iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHRMaW1pdCArICJ9LCBsZW49IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJvZ3JhbW1hdGljIG5hbWUsIGUuZy4sICJMYXRpbi1BcmFiaWMiLgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIElEOworCisgICAgLyoqCisgICAgICogVGhpcyB0cmFuc2xpdGVyYXRvcidzIGZpbHRlci4gIEFueSBjaGFyYWN0ZXIgZm9yIHdoaWNoCisgICAgICogPHR0PmZpbHRlci5jb250YWlucygpPC90dD4gcmV0dXJucyA8dHQ+ZmFsc2U8L3R0PiB3aWxsIG5vdCBiZQorICAgICAqIGFsdGVyZWQgYnkgdGhpcyB0cmFuc2xpdGVyYXRvci4gIElmIDx0dD5maWx0ZXI8L3R0PiBpcworICAgICAqIDx0dD5udWxsPC90dD4gdGhlbiBubyBmaWx0ZXJpbmcgaXMgYXBwbGllZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFVuaWNvZGVGaWx0ZXIgZmlsdGVyOworCisgICAgcHJpdmF0ZSBpbnQgbWF4aW11bUNvbnRleHRMZW5ndGggPSAwOworCisgICAgLyoqCisgICAgICogU3lzdGVtIHRyYW5zbGl0ZXJhdG9yIHJlZ2lzdHJ5LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIFRyYW5zbGl0ZXJhdG9yUmVnaXN0cnkgcmVnaXN0cnk7CisKKyAgICBwcml2YXRlIHN0YXRpYyBIYXNodGFibGUgZGlzcGxheU5hbWVDYWNoZTsKKworICAgIC8qKgorICAgICAqIFByZWZpeCBmb3IgcmVzb3VyY2UgYnVuZGxlIGtleSBmb3IgdGhlIGRpc3BsYXkgbmFtZSBmb3IgYQorICAgICAqIHRyYW5zbGl0ZXJhdG9yLiAgVGhlIElEIGlzIGFwcGVuZGVkIHRvIHRoaXMgdG8gZm9ybSB0aGUga2V5LgorICAgICAqIFRoZSByZXNvdXJjZSBidW5kbGUgdmFsdWUgc2hvdWxkIGJlIGEgU3RyaW5nLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBSQl9ESVNQTEFZX05BTUVfUFJFRklYID0gIiVUcmFuc2xpdCUlIjsKKworICAgIC8qKgorICAgICAqIFByZWZpeCBmb3IgcmVzb3VyY2UgYnVuZGxlIGtleSBmb3IgdGhlIGRpc3BsYXkgbmFtZSBmb3IgYQorICAgICAqIHRyYW5zbGl0ZXJhdG9yIFNDUklQVC4gIFRoZSBJRCBpcyBhcHBlbmRlZCB0byB0aGlzIHRvIGZvcm0gdGhlIGtleS4KKyAgICAgKiBUaGUgcmVzb3VyY2UgYnVuZGxlIHZhbHVlIHNob3VsZCBiZSBhIFN0cmluZy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgUkJfU0NSSVBUX0RJU1BMQVlfTkFNRV9QUkVGSVggPSAiJVRyYW5zbGl0JSI7CisKKyAgICAvKioKKyAgICAgKiBSZXNvdXJjZSBidW5kbGUga2V5IGZvciBkaXNwbGF5IG5hbWUgcGF0dGVybi4KKyAgICAgKiBUaGUgcmVzb3VyY2UgYnVuZGxlIHZhbHVlIHNob3VsZCBiZSBhIFN0cmluZyBmb3JtaW5nIGEKKyAgICAgKiBNZXNzYWdlRm9ybWF0IHBhdHRlcm4sIGUuZy46CisgICAgICogInswLGNob2ljZSwwI3wxI3sxfSBUcmFuc2xpdGVyYXRvcnwyI3sxfSB0byB7Mn0gVHJhbnNsaXRlcmF0b3J9Ii4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgUkJfRElTUExBWV9OQU1FX1BBVFRFUk4gPSAiVHJhbnNsaXRlcmF0b3JOYW1lUGF0dGVybiI7CisKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGNoYXIgSURfREVMSU0gPSAnOyc7CisKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGNoYXIgSURfU0VQID0gJy0nOworCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBjaGFyIFZBUklBTlRfU0VQID0gJy8nOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEFOWSA9ICJBbnkiOworCisgICAgLyoqCisgICAgICogVG8gZW5hYmxlIGRlYnVnZ2luZyBvdXRwdXQgaW4gdGhlIFRyYW5zbGl0ZXJhdG9yIGNvbXBvbmVudCwgc2V0CisgICAgICogREVCVUcgdG8gdHJ1ZS4KKyAgICAgKgorICAgICAqIE4uQi4gTWFrZSBzdXJlIHRvIHJlY29tcGlsZSBhbGwgb2YgdGhlIGNvbS5pYm0uaWN1LnRleHQgcGFja2FnZQorICAgICAqIGFmdGVyIGNoYW5naW5nIHRoaXMuICBFYXNpZXN0IHdheSB0byBkbyB0aGlzIGlzICdhbnQgY2xlYW4KKyAgICAgKiBjb3JlJyAoJ2FudCcgd2lsbCBOT1QgcGljayB1cCB0aGUgZGVwZW5kZW5jeSBhdXRvbWF0aWNhbGx5KS4KKyAgICAgKgorICAgICAqIDw8VGhpcyBnZW5lcmF0ZXMgYSBsb3Qgb2Ygb3V0cHV0Lj4+CisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUcgPSBmYWxzZTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAiXHUwMEE5IElCTSBDb3Jwb3JhdGlvbiAxOTk5LiBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvKioKKyAgICAgKiBEZWZhdWx0IGNvbnN0cnVjdG9yLgorICAgICAqIEBwYXJhbSBJRCB0aGUgc3RyaW5nIGlkZW50aWZpZXIgZm9yIHRoaXMgdHJhbnNsaXRlcmF0b3IKKyAgICAgKiBAcGFyYW0gZmlsdGVyIHRoZSBmaWx0ZXIuICBBbnkgY2hhcmFjdGVyIGZvciB3aGljaAorICAgICAqIDx0dD5maWx0ZXIuY29udGFpbnMoKTwvdHQ+IHJldHVybnMgPHR0PmZhbHNlPC90dD4gd2lsbCBub3QgYmUKKyAgICAgKiBhbHRlcmVkIGJ5IHRoaXMgdHJhbnNsaXRlcmF0b3IuICBJZiA8dHQ+ZmlsdGVyPC90dD4gaXMKKyAgICAgKiA8dHQ+bnVsbDwvdHQ+IHRoZW4gbm8gZmlsdGVyaW5nIGlzIGFwcGxpZWQuCisgICAgICovCisgICAgcHJvdGVjdGVkIFRyYW5zbGl0ZXJhdG9yKFN0cmluZyBJRCwgVW5pY29kZUZpbHRlciBmaWx0ZXIpIHsKKyAgICAgICAgaWYgKElEID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIHRoaXMuSUQgPSBJRDsKKyAgICAgICAgdGhpcy5maWx0ZXIgPSBmaWx0ZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogVHJhbnNsaXRlcmF0ZXMgYSBzZWdtZW50IG9mIGEgc3RyaW5nLCB3aXRoIG9wdGlvbmFsIGZpbHRlcmluZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSBzdHJpbmcgdG8gYmUgdHJhbnNsaXRlcmF0ZWQKKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIGJlZ2lubmluZyBpbmRleCwgaW5jbHVzaXZlOyA8Y29kZT4wIDw9IHN0YXJ0CisgICAgICogPD0gbGltaXQ8L2NvZGU+LgorICAgICAqIEBwYXJhbSBsaW1pdCB0aGUgZW5kaW5nIGluZGV4LCBleGNsdXNpdmU7IDxjb2RlPnN0YXJ0IDw9IGxpbWl0CisgICAgICogPD0gdGV4dC5sZW5ndGgoKTwvY29kZT4uCisgICAgICogQHJldHVybiBUaGUgbmV3IGxpbWl0IGluZGV4LiAgVGhlIHRleHQgcHJldmlvdXNseSBvY2N1cHlpbmcgPGNvZGU+W3N0YXJ0LAorICAgICAqIGxpbWl0KTwvY29kZT4gaGFzIGJlZW4gdHJhbnNsaXRlcmF0ZWQsIHBvc3NpYmx5IHRvIGEgc3RyaW5nIG9mIGEgZGlmZmVyZW50CisgICAgICogbGVuZ3RoLCBhdCA8Y29kZT5bc3RhcnQsIDwvY29kZT48ZW0+bmV3LWxpbWl0PC9lbT48Y29kZT4pPC9jb2RlPiwgd2hlcmUKKyAgICAgKiA8ZW0+bmV3LWxpbWl0PC9lbT4gaXMgdGhlIHJldHVybiB2YWx1ZS4gSWYgdGhlIGlucHV0IG9mZnNldHMgYXJlIG91dCBvZiBib3VuZHMsCisgICAgICogdGhlIHJldHVybmVkIHZhbHVlIGlzIC0xIGFuZCB0aGUgaW5wdXQgc3RyaW5nIHJlbWFpbnMgdW5jaGFuZ2VkLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgdHJhbnNsaXRlcmF0ZShSZXBsYWNlYWJsZSB0ZXh0LCBpbnQgc3RhcnQsIGludCBsaW1pdCkgeworICAgICAgICBpZiAoc3RhcnQgPCAwIHx8CisgICAgICAgICAgICBsaW1pdCA8IHN0YXJ0IHx8CisgICAgICAgICAgICB0ZXh0Lmxlbmd0aCgpIDwgbGltaXQpIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorCisgICAgICAgIFBvc2l0aW9uIHBvcyA9IG5ldyBQb3NpdGlvbihzdGFydCwgbGltaXQsIHN0YXJ0KTsKKyAgICAgICAgZmlsdGVyZWRUcmFuc2xpdGVyYXRlKHRleHQsIHBvcywgZmFsc2UsIHRydWUpOworICAgICAgICByZXR1cm4gcG9zLmxpbWl0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFRyYW5zbGl0ZXJhdGVzIGFuIGVudGlyZSBzdHJpbmcgaW4gcGxhY2UuIENvbnZlbmllbmNlIG1ldGhvZC4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgc3RyaW5nIHRvIGJlIHRyYW5zbGl0ZXJhdGVkCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdHJhbnNsaXRlcmF0ZShSZXBsYWNlYWJsZSB0ZXh0KSB7CisgICAgICAgIHRyYW5zbGl0ZXJhdGUodGV4dCwgMCwgdGV4dC5sZW5ndGgoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVHJhbnNsaXRlcmF0ZSBhbiBlbnRpcmUgc3RyaW5nIGFuZCByZXR1cm5zIHRoZSByZXN1bHQuIENvbnZlbmllbmNlIG1ldGhvZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSBzdHJpbmcgdG8gYmUgdHJhbnNsaXRlcmF0ZWQKKyAgICAgKiBAcmV0dXJuIFRoZSB0cmFuc2xpdGVyYXRlZCB0ZXh0CisgICAgICovCisgICAgcHVibGljIGZpbmFsIFN0cmluZyB0cmFuc2xpdGVyYXRlKFN0cmluZyB0ZXh0KSB7CisgICAgICAgIFJlcGxhY2VhYmxlU3RyaW5nIHJlc3VsdCA9IG5ldyBSZXBsYWNlYWJsZVN0cmluZyh0ZXh0KTsKKyAgICAgICAgdHJhbnNsaXRlcmF0ZShyZXN1bHQpOworICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVHJhbnNsaXRlcmF0ZXMgdGhlIHBvcnRpb24gb2YgdGhlIHRleHQgYnVmZmVyIHRoYXQgY2FuIGJlCisgICAgICogdHJhbnNsaXRlcmF0ZWQgdW5hbWJpZ3Vvc2x5IGFmdGVyIG5ldyB0ZXh0IGhhcyBiZWVuIGluc2VydGVkLAorICAgICAqIHR5cGljYWxseSBhcyBhIHJlc3VsdCBvZiBhIGtleWJvYXJkIGV2ZW50LiAgVGhlIG5ldyB0ZXh0IGluCisgICAgICogPGNvZGU+aW5zZXJ0aW9uPC9jb2RlPiB3aWxsIGJlIGluc2VydGVkIGludG8gPGNvZGU+dGV4dDwvY29kZT4KKyAgICAgKiBhdCA8Y29kZT5pbmRleC5jb250ZXh0TGltaXQ8L2NvZGU+LCBhZHZhbmNpbmcKKyAgICAgKiA8Y29kZT5pbmRleC5jb250ZXh0TGltaXQ8L2NvZGU+IGJ5IDxjb2RlPmluc2VydGlvbi5sZW5ndGgoKTwvY29kZT4uCisgICAgICogVGhlbiB0aGUgdHJhbnNsaXRlcmF0b3Igd2lsbCB0cnkgdG8gdHJhbnNsaXRlcmF0ZSBjaGFyYWN0ZXJzIG9mCisgICAgICogPGNvZGU+dGV4dDwvY29kZT4gYmV0d2VlbiA8Y29kZT5pbmRleC5zdGFydDwvY29kZT4gYW5kCisgICAgICogPGNvZGU+aW5kZXguY29udGV4dExpbWl0PC9jb2RlPi4gIENoYXJhY3RlcnMgYmVmb3JlCisgICAgICogPGNvZGU+aW5kZXguc3RhcnQ8L2NvZGU+IHdpbGwgbm90IGJlIGNoYW5nZWQuCisgICAgICoKKyAgICAgKiA8cD5VcG9uIHJldHVybiwgdmFsdWVzIGluIDxjb2RlPmluZGV4PC9jb2RlPiB3aWxsIGJlIHVwZGF0ZWQuCisgICAgICogPGNvZGU+aW5kZXguY29udGV4dFN0YXJ0PC9jb2RlPiB3aWxsIGJlIGFkdmFuY2VkIHRvIHRoZSBmaXJzdAorICAgICAqIGNoYXJhY3RlciB0aGF0IGZ1dHVyZSBjYWxscyB0byB0aGlzIG1ldGhvZCB3aWxsIHJlYWQuCisgICAgICogPGNvZGU+aW5kZXguc3RhcnQ8L2NvZGU+IGFuZCA8Y29kZT5pbmRleC5jb250ZXh0TGltaXQ8L2NvZGU+IHdpbGwKKyAgICAgKiBiZSBhZGp1c3RlZCB0byBkZWxpbWl0IHRoZSByYW5nZSBvZiB0ZXh0IHRoYXQgZnV0dXJlIGNhbGxzIHRvCisgICAgICogdGhpcyBtZXRob2QgbWF5IGNoYW5nZS4KKyAgICAgKgorICAgICAqIDxwPlR5cGljYWwgdXNhZ2Ugb2YgdGhpcyBtZXRob2QgYmVnaW5zIHdpdGggYW4gaW5pdGlhbCBjYWxsCisgICAgICogd2l0aCA8Y29kZT5pbmRleC5jb250ZXh0U3RhcnQ8L2NvZGU+IGFuZCA8Y29kZT5pbmRleC5jb250ZXh0TGltaXQ8L2NvZGU+CisgICAgICogc2V0IHRvIGluZGljYXRlIHRoZSBwb3J0aW9uIG9mIDxjb2RlPnRleHQ8L2NvZGU+IHRvIGJlCisgICAgICogdHJhbnNsaXRlcmF0ZWQsIGFuZCA8Y29kZT5pbmRleC5zdGFydCA9PSBpbmRleC5jb250ZXh0U3RhcnQ8L2NvZGU+LgorICAgICAqIFRoZXJlYWZ0ZXIsIDxjb2RlPmluZGV4PC9jb2RlPiBjYW4gYmUgdXNlZCB3aXRob3V0CisgICAgICogbW9kaWZpY2F0aW9uIGluIGZ1dHVyZSBjYWxscywgcHJvdmlkZWQgdGhhdCBhbGwgY2hhbmdlcyB0bworICAgICAqIDxjb2RlPnRleHQ8L2NvZGU+IGFyZSBtYWRlIHZpYSB0aGlzIG1ldGhvZC4KKyAgICAgKgorICAgICAqIDxwPlRoaXMgbWV0aG9kIGFzc3VtZXMgdGhhdCBmdXR1cmUgY2FsbHMgbWF5IGJlIG1hZGUgdGhhdCB3aWxsCisgICAgICogaW5zZXJ0IG5ldyB0ZXh0IGludG8gdGhlIGJ1ZmZlci4gIEFzIGEgcmVzdWx0LCBpdCBvbmx5IHBlcmZvcm1zCisgICAgICogdW5hbWJpZ3VvdXMgdHJhbnNsaXRlcmF0aW9ucy4gIEFmdGVyIHRoZSBsYXN0IGNhbGwgdG8gdGhpcworICAgICAqIG1ldGhvZCwgdGhlcmUgbWF5IGJlIHVudHJhbnNsaXRlcmF0ZWQgdGV4dCB0aGF0IGlzIHdhaXRpbmcgZm9yCisgICAgICogbW9yZSBpbnB1dCB0byByZXNvbHZlIGFuIGFtYmlndWl0eS4gIEluIG9yZGVyIHRvIHBlcmZvcm0gdGhlc2UKKyAgICAgKiBwZW5kaW5nIHRyYW5zbGl0ZXJhdGlvbnMsIGNsaWVudHMgc2hvdWxkIGNhbGwge0BsaW5rCisgICAgICogI2ZpbmlzaFRyYW5zbGl0ZXJhdGlvbn0gYWZ0ZXIgdGhlIGxhc3QgY2FsbCB0byB0aGlzCisgICAgICogbWV0aG9kIGhhcyBiZWVuIG1hZGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgYnVmZmVyIGhvbGRpbmcgdHJhbnNsaXRlcmF0ZWQgYW5kIHVudHJhbnNsaXRlcmF0ZWQgdGV4dAorICAgICAqIEBwYXJhbSBpbmRleCB0aGUgc3RhcnQgYW5kIGxpbWl0IG9mIHRoZSB0ZXh0LCB0aGUgcG9zaXRpb24KKyAgICAgKiBvZiB0aGUgY3Vyc29yLCBhbmQgdGhlIHN0YXJ0IGFuZCBsaW1pdCBvZiB0cmFuc2xpdGVyYXRpb24uCisgICAgICogQHBhcmFtIGluc2VydGlvbiB0ZXh0IHRvIGJlIGluc2VydGVkIGFuZCBwb3NzaWJseQorICAgICAqIHRyYW5zbGl0ZXJhdGVkIGludG8gdGhlIHRyYW5zbGF0aW9uIGJ1ZmZlciBhdAorICAgICAqIDxjb2RlPmluZGV4LmNvbnRleHRMaW1pdDwvY29kZT4uICBJZiA8Y29kZT5udWxsPC9jb2RlPiB0aGVuIG5vIHRleHQKKyAgICAgKiBpcyBpbnNlcnRlZC4KKyAgICAgKiBAc2VlICNoYW5kbGVUcmFuc2xpdGVyYXRlCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgPGNvZGU+aW5kZXg8L2NvZGU+CisgICAgICogaXMgaW52YWxpZAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCwgUG9zaXRpb24gaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgaW5zZXJ0aW9uKSB7CisgICAgICAgIGluZGV4LnZhbGlkYXRlKHRleHQubGVuZ3RoKCkpOworCisvLyAgICAgICAgaW50IG9yaWdpbmFsU3RhcnQgPSBpbmRleC5jb250ZXh0U3RhcnQ7CisgICAgICAgIGlmIChpbnNlcnRpb24gIT0gbnVsbCkgeworICAgICAgICAgICAgdGV4dC5yZXBsYWNlKGluZGV4LmxpbWl0LCBpbmRleC5saW1pdCwgaW5zZXJ0aW9uKTsKKyAgICAgICAgICAgIGluZGV4LmxpbWl0ICs9IGluc2VydGlvbi5sZW5ndGgoKTsKKyAgICAgICAgICAgIGluZGV4LmNvbnRleHRMaW1pdCArPSBpbnNlcnRpb24ubGVuZ3RoKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoaW5kZXgubGltaXQgPiAwICYmCisgICAgICAgICAgICBVVEYxNi5pc0xlYWRTdXJyb2dhdGUodGV4dC5jaGFyQXQoaW5kZXgubGltaXQgLSAxKSkpIHsKKyAgICAgICAgICAgIC8vIE9vcHMsIHRoZXJlIGlzIGEgZGFuZ2xpbmcgbGVhZCBzdXJyb2dhdGUgaW4gdGhlIGJ1ZmZlci4KKyAgICAgICAgICAgIC8vIFRoaXMgd2lsbCBicmVhayBtb3N0IHRyYW5zbGl0ZXJhdG9ycywgc2luY2UgdGhleSB3aWxsCisgICAgICAgICAgICAvLyBhc3N1bWUgaXQgaXMgcGFydCBvZiBhIHBhaXIuICBEb24ndCB0cmFuc2xpdGVyYXRlIHVudGlsCisgICAgICAgICAgICAvLyBtb3JlIHRleHQgY29tZXMgaW4uCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBmaWx0ZXJlZFRyYW5zbGl0ZXJhdGUodGV4dCwgaW5kZXgsIHRydWUsIHRydWUpOworCisvLyBUT0RPCisvLyBUaGlzIGRvZXNuJ3Qgd29yayBvbmNlIHdlIGFkZCBxdWFudGlmaWVyIHN1cHBvcnQuICBOZWVkIHRvIHJld3JpdGUKKy8vIHRoaXMgY29kZSB0byBzdXBwb3J0IHF1YW50aWZpZXJzIGFuZCAndXNlIG1heGltdW0gYmFja3VwIDxuPjsnLgorLy8KKy8vICAgICAgICBpbmRleC5jb250ZXh0U3RhcnQgPSBNYXRoLm1heChpbmRleC5zdGFydCAtIGdldE1heGltdW1Db250ZXh0TGVuZ3RoKCksCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxTdGFydCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVHJhbnNsaXRlcmF0ZXMgdGhlIHBvcnRpb24gb2YgdGhlIHRleHQgYnVmZmVyIHRoYXQgY2FuIGJlCisgICAgICogdHJhbnNsaXRlcmF0ZWQgdW5hbWJpZ3Vvc2x5IGFmdGVyIGEgbmV3IGNoYXJhY3RlciBoYXMgYmVlbgorICAgICAqIGluc2VydGVkLCB0eXBpY2FsbHkgYXMgYSByZXN1bHQgb2YgYSBrZXlib2FyZCBldmVudC4gIFRoaXMgaXMgYQorICAgICAqIGNvbnZlbmllbmNlIG1ldGhvZDsgc2VlIHtAbGluayAjdHJhbnNsaXRlcmF0ZShSZXBsYWNlYWJsZSwKKyAgICAgKiBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiwgU3RyaW5nKX0gZm9yIGRldGFpbHMuCisgICAgICogQHBhcmFtIHRleHQgdGhlIGJ1ZmZlciBob2xkaW5nIHRyYW5zbGl0ZXJhdGVkIGFuZAorICAgICAqIHVudHJhbnNsaXRlcmF0ZWQgdGV4dAorICAgICAqIEBwYXJhbSBpbmRleCB0aGUgc3RhcnQgYW5kIGxpbWl0IG9mIHRoZSB0ZXh0LCB0aGUgcG9zaXRpb24KKyAgICAgKiBvZiB0aGUgY3Vyc29yLCBhbmQgdGhlIHN0YXJ0IGFuZCBsaW1pdCBvZiB0cmFuc2xpdGVyYXRpb24uCisgICAgICogQHBhcmFtIGluc2VydGlvbiB0ZXh0IHRvIGJlIGluc2VydGVkIGFuZCBwb3NzaWJseQorICAgICAqIHRyYW5zbGl0ZXJhdGVkIGludG8gdGhlIHRyYW5zbGF0aW9uIGJ1ZmZlciBhdAorICAgICAqIDxjb2RlPmluZGV4LmNvbnRleHRMaW1pdDwvY29kZT4uCisgICAgICogQHNlZSAjdHJhbnNsaXRlcmF0ZShSZXBsYWNlYWJsZSwgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24sIFN0cmluZykKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0cmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlIHRleHQsIFBvc2l0aW9uIGluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGluc2VydGlvbikgeworICAgICAgICB0cmFuc2xpdGVyYXRlKHRleHQsIGluZGV4LCBVVEYxNi52YWx1ZU9mKGluc2VydGlvbikpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRyYW5zbGl0ZXJhdGVzIHRoZSBwb3J0aW9uIG9mIHRoZSB0ZXh0IGJ1ZmZlciB0aGF0IGNhbiBiZQorICAgICAqIHRyYW5zbGl0ZXJhdGVkIHVuYW1iaWd1b3NseS4gIFRoaXMgaXMgYSBjb252ZW5pZW5jZSBtZXRob2Q7IHNlZQorICAgICAqIHtAbGluayAjdHJhbnNsaXRlcmF0ZShSZXBsYWNlYWJsZSwgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24sCisgICAgICogU3RyaW5nKX0gZm9yIGRldGFpbHMuCisgICAgICogQHBhcmFtIHRleHQgdGhlIGJ1ZmZlciBob2xkaW5nIHRyYW5zbGl0ZXJhdGVkIGFuZAorICAgICAqIHVudHJhbnNsaXRlcmF0ZWQgdGV4dAorICAgICAqIEBwYXJhbSBpbmRleCB0aGUgc3RhcnQgYW5kIGxpbWl0IG9mIHRoZSB0ZXh0LCB0aGUgcG9zaXRpb24KKyAgICAgKiBvZiB0aGUgY3Vyc29yLCBhbmQgdGhlIHN0YXJ0IGFuZCBsaW1pdCBvZiB0cmFuc2xpdGVyYXRpb24uCisgICAgICogQHNlZSAjdHJhbnNsaXRlcmF0ZShSZXBsYWNlYWJsZSwgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24sIFN0cmluZykKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0cmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlIHRleHQsIFBvc2l0aW9uIGluZGV4KSB7CisgICAgICAgIHRyYW5zbGl0ZXJhdGUodGV4dCwgaW5kZXgsIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZpbmlzaGVzIGFueSBwZW5kaW5nIHRyYW5zbGl0ZXJhdGlvbnMgdGhhdCB3ZXJlIHdhaXRpbmcgZm9yCisgICAgICogbW9yZSBjaGFyYWN0ZXJzLiAgQ2xpZW50cyBzaG91bGQgY2FsbCB0aGlzIG1ldGhvZCBhcyB0aGUgbGFzdAorICAgICAqIGNhbGwgYWZ0ZXIgYSBzZXF1ZW5jZSBvZiBvbmUgb3IgbW9yZSBjYWxscyB0bworICAgICAqIDxjb2RlPnRyYW5zbGl0ZXJhdGUoKTwvY29kZT4uCisgICAgICogQHBhcmFtIHRleHQgdGhlIGJ1ZmZlciBob2xkaW5nIHRyYW5zbGl0ZXJhdGVkIGFuZAorICAgICAqIHVudHJhbnNsaXRlcmF0ZWQgdGV4dC4KKyAgICAgKiBAcGFyYW0gaW5kZXggdGhlIGFycmF5IG9mIGluZGljZXMgcHJldmlvdXNseSBwYXNzZWQgdG8ge0BsaW5rCisgICAgICogI3RyYW5zbGl0ZXJhdGV9CisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgZmluaXNoVHJhbnNsaXRlcmF0aW9uKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvc2l0aW9uIGluZGV4KSB7CisgICAgICAgIGluZGV4LnZhbGlkYXRlKHRleHQubGVuZ3RoKCkpOworICAgICAgICBmaWx0ZXJlZFRyYW5zbGl0ZXJhdGUodGV4dCwgaW5kZXgsIGZhbHNlLCB0cnVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBYnN0cmFjdCBtZXRob2QgdGhhdCBjb25jcmV0ZSBzdWJjbGFzc2VzIGRlZmluZSB0byBpbXBsZW1lbnQKKyAgICAgKiB0aGVpciB0cmFuc2xpdGVyYXRpb24gYWxnb3JpdGhtLiAgVGhpcyBtZXRob2QgaGFuZGxlcyBib3RoCisgICAgICogaW5jcmVtZW50YWwgYW5kIG5vbi1pbmNyZW1lbnRhbCB0cmFuc2xpdGVyYXRpb24uICBMZXQKKyAgICAgKiA8Y29kZT5vcmlnaW5hbFN0YXJ0PC9jb2RlPiByZWZlciB0byB0aGUgdmFsdWUgb2YKKyAgICAgKiA8Y29kZT5wb3Muc3RhcnQ8L2NvZGU+IHVwb24gZW50cnkuCisgICAgICogCisgICAgICogPHVsPgorICAgICAqICA8bGk+SWYgPGNvZGU+aW5jcmVtZW50YWw8L2NvZGU+IGlzIGZhbHNlLCB0aGVuIHRoaXMgbWV0aG9kCisgICAgICogIHNob3VsZCB0cmFuc2xpdGVyYXRlIGFsbCBjaGFyYWN0ZXJzIGJldHdlZW4KKyAgICAgKiAgPGNvZGU+cG9zLnN0YXJ0PC9jb2RlPiBhbmQgPGNvZGU+cG9zLmxpbWl0PC9jb2RlPi4gVXBvbiByZXR1cm4KKyAgICAgKiAgPGNvZGU+cG9zLnN0YXJ0PC9jb2RlPiBtdXN0ID09IDxjb2RlPiBwb3MubGltaXQ8L2NvZGU+LjwvbGk+CisgICAgICoKKyAgICAgKiAgPGxpPklmIDxjb2RlPmluY3JlbWVudGFsPC9jb2RlPiBpcyB0cnVlLCB0aGVuIHRoaXMgbWV0aG9kCisgICAgICogIHNob3VsZCB0cmFuc2xpdGVyYXRlIGFsbCBjaGFyYWN0ZXJzIGJldHdlZW4KKyAgICAgKiAgPGNvZGU+cG9zLnN0YXJ0PC9jb2RlPiBhbmQgPGNvZGU+cG9zLmxpbWl0PC9jb2RlPiB0aGF0IGNhbiBiZQorICAgICAqICB1bmFtYmlndW91c2x5IHRyYW5zbGl0ZXJhdGVkLCByZWdhcmRsZXNzIG9mIGZ1dHVyZSBpbnNlcnRpb25zCisgICAgICogIG9mIHRleHQgYXQgPGNvZGU+cG9zLmxpbWl0PC9jb2RlPi4gIFVwb24gcmV0dXJuLAorICAgICAqICA8Y29kZT5wb3Muc3RhcnQ8L2NvZGU+IHNob3VsZCBiZSBpbiB0aGUgcmFuZ2UKKyAgICAgKiAgWzxjb2RlPm9yaWdpbmFsU3RhcnQ8L2NvZGU+LCA8Y29kZT5wb3MubGltaXQ8L2NvZGU+KS4KKyAgICAgKiAgPGNvZGU+cG9zLnN0YXJ0PC9jb2RlPiBzaG91bGQgYmUgcG9zaXRpb25lZCBzdWNoIHRoYXQKKyAgICAgKiAgY2hhcmFjdGVycyBbPGNvZGU+b3JpZ2luYWxTdGFydDwvY29kZT4sIDxjb2RlPgorICAgICAqICBwb3Muc3RhcnQ8L2NvZGU+KSB3aWxsIG5vdCBiZSBjaGFuZ2VkIGluIHRoZSBmdXR1cmUgYnkgdGhpcworICAgICAqICB0cmFuc2xpdGVyYXRvciBhbmQgY2hhcmFjdGVycyBbPGNvZGU+cG9zLnN0YXJ0PC9jb2RlPiwKKyAgICAgKiAgPGNvZGU+cG9zLmxpbWl0PC9jb2RlPikgYXJlIHVuY2hhbmdlZC48L2xpPgorICAgICAqIDwvdWw+CisgICAgICogCisgICAgICogPHA+SW1wbGVtZW50YXRpb25zIG9mIHRoaXMgbWV0aG9kIHNob3VsZCBhbHNvIG9iZXkgdGhlCisgICAgICogZm9sbG93aW5nIGludmFyaWFudHM6PC9wPgorICAgICAqCisgICAgICogPHVsPgorICAgICAqICA8bGk+IDxjb2RlPnBvcy5saW1pdDwvY29kZT4gYW5kIDxjb2RlPnBvcy5jb250ZXh0TGltaXQ8L2NvZGU+CisgICAgICogIHNob3VsZCBiZSB1cGRhdGVkIHRvIHJlZmxlY3QgY2hhbmdlcyBpbiBsZW5ndGggb2YgdGhlIHRleHQKKyAgICAgKiAgYmV0d2VlbiA8Y29kZT5wb3Muc3RhcnQ8L2NvZGU+IGFuZCA8Y29kZT5wb3MubGltaXQ8L2NvZGU+LiBUaGUKKyAgICAgKiAgZGlmZmVyZW5jZSA8Y29kZT4gcG9zLmNvbnRleHRMaW1pdCAtIHBvcy5saW1pdDwvY29kZT4gc2hvdWxkCisgICAgICogIG5vdCBjaGFuZ2UuPC9saT4KKyAgICAgKgorICAgICAqICA8bGk+PGNvZGU+cG9zLmNvbnRleHRTdGFydDwvY29kZT4gc2hvdWxkIG5vdCBjaGFuZ2UuPC9saT4KKyAgICAgKgorICAgICAqICA8bGk+VXBvbiByZXR1cm4sIG5laXRoZXIgPGNvZGU+cG9zLnN0YXJ0PC9jb2RlPiBub3IKKyAgICAgKiAgPGNvZGU+cG9zLmxpbWl0PC9jb2RlPiBzaG91bGQgYmUgbGVzcyB0aGFuCisgICAgICogIDxjb2RlPm9yaWdpbmFsU3RhcnQ8L2NvZGU+LjwvbGk+CisgICAgICoKKyAgICAgKiAgPGxpPlRleHQgYmVmb3JlIDxjb2RlPm9yaWdpbmFsU3RhcnQ8L2NvZGU+IGFuZCB0ZXh0IGFmdGVyCisgICAgICogIDxjb2RlPnBvcy5saW1pdDwvY29kZT4gc2hvdWxkIG5vdCBjaGFuZ2UuPC9saT4KKyAgICAgKgorICAgICAqICA8bGk+VGV4dCBiZWZvcmUgPGNvZGU+cG9zLmNvbnRleHRTdGFydDwvY29kZT4gYW5kIHRleHQgYWZ0ZXIKKyAgICAgKiAgPGNvZGU+IHBvcy5jb250ZXh0TGltaXQ8L2NvZGU+IHNob3VsZCBiZSBpZ25vcmVkLjwvbGk+CisgICAgICogPC91bD4KKyAgICAgKiAgICAKKyAgICAgKiA8cD5TdWJjbGFzc2VzIG1heSBzYWZlbHkgYXNzdW1lIHRoYXQgYWxsIGNoYXJhY3RlcnMgaW4KKyAgICAgKiBbPGNvZGU+cG9zLnN0YXJ0PC9jb2RlPiwgPGNvZGU+cG9zLmxpbWl0PC9jb2RlPikgYXJlIGZpbHRlcmVkLgorICAgICAqIEluIG90aGVyIHdvcmRzLCB0aGUgZmlsdGVyIGhhcyBhbHJlYWR5IGJlZW4gYXBwbGllZCBieSB0aGUgdGltZQorICAgICAqIHRoaXMgbWV0aG9kIGlzIGNhbGxlZC4gIFNlZQorICAgICAqIDxjb2RlPmZpbHRlcmVkVHJhbnNsaXRlcmF0ZSgpPC9jb2RlPi4KKyAgICAgKiAgICAKKyAgICAgKiA8cD5UaGlzIG1ldGhvZCBpcyA8Yj5ub3Q8L2I+IGZvciBwdWJsaWMgY29uc3VtcHRpb24uICBDYWxsaW5nCisgICAgICogdGhpcyBtZXRob2QgZGlyZWN0bHkgd2lsbCB0cmFuc2xpdGVyYXRlCisgICAgICogWzxjb2RlPnBvcy5zdGFydDwvY29kZT4sIDxjb2RlPnBvcy5saW1pdDwvY29kZT4pIHdpdGhvdXQKKyAgICAgKiBhcHBseWluZyB0aGUgZmlsdGVyLiBFbmQgdXNlciBjb2RlIHNob3VsZCBjYWxsIDxjb2RlPgorICAgICAqIHRyYW5zbGl0ZXJhdGUoKTwvY29kZT4gaW5zdGVhZCBvZiB0aGlzIG1ldGhvZC4gU3ViY2xhc3MgY29kZQorICAgICAqIHNob3VsZCBjYWxsIDxjb2RlPmZpbHRlcmVkVHJhbnNsaXRlcmF0ZSgpPC9jb2RlPiBpbnN0ZWFkIG9mCisgICAgICogdGhpcyBtZXRob2QuPHA+CisgICAgICogCisgICAgICogQHBhcmFtIHRleHQgdGhlIGJ1ZmZlciBob2xkaW5nIHRyYW5zbGl0ZXJhdGVkIGFuZAorICAgICAqIHVudHJhbnNsaXRlcmF0ZWQgdGV4dAorICAgICAqIAorICAgICAqIEBwYXJhbSBwb3MgdGhlIGluZGljZXMgaW5kaWNhdGluZyB0aGUgc3RhcnQsIGxpbWl0LCBjb250ZXh0CisgICAgICogc3RhcnQsIGFuZCBjb250ZXh0IGxpbWl0IG9mIHRoZSB0ZXh0LgorICAgICAqIAorICAgICAqIEBwYXJhbSBpbmNyZW1lbnRhbCBpZiB0cnVlLCBhc3N1bWUgbW9yZSB0ZXh0IG1heSBiZSBpbnNlcnRlZCBhdAorICAgICAqIDxjb2RlPnBvcy5saW1pdDwvY29kZT4gYW5kIGFjdCBhY2NvcmRpbmdseS4gIE90aGVyd2lzZSwKKyAgICAgKiB0cmFuc2xpdGVyYXRlIGFsbCB0ZXh0IGJldHdlZW4gPGNvZGU+cG9zLnN0YXJ0PC9jb2RlPiBhbmQKKyAgICAgKiA8Y29kZT5wb3MubGltaXQ8L2NvZGU+IGFuZCBtb3ZlIDxjb2RlPnBvcy5zdGFydDwvY29kZT4gdXAgdG8KKyAgICAgKiA8Y29kZT5wb3MubGltaXQ8L2NvZGU+LgorICAgICAqIAorICAgICAqIEBzZWUgI3RyYW5zbGl0ZXJhdGUKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3Qgdm9pZCBoYW5kbGVUcmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbiBwb3MsIGJvb2xlYW4gaW5jcmVtZW50YWwpOworCisgICAgLyoqCisgICAgICogVG9wLWxldmVsIHRyYW5zbGl0ZXJhdGlvbiBtZXRob2QsIGhhbmRsaW5nIGZpbHRlcmluZywgaW5jcmVtZW50YWwgYW5kCisgICAgICogbm9uLWluY3JlbWVudGFsIHRyYW5zbGl0ZXJhdGlvbiwgYW5kIHJvbGxiYWNrLiAgQWxsIHRyYW5zbGl0ZXJhdGlvbgorICAgICAqIHB1YmxpYyBBUEkgbWV0aG9kcyBldmVudHVhbGx5IGNhbGwgdGhpcyBtZXRob2Qgd2l0aCBhIHJvbGxiYWNrIGFyZ3VtZW50CisgICAgICogb2YgVFJVRS4gIE90aGVyIGVudGl0aWVzIG1heSBjYWxsIHRoaXMgbWV0aG9kIGJ1dCByb2xsYmFjayBzaG91bGQgYmUKKyAgICAgKiBGQUxTRS4KKyAgICAgKiAKKyAgICAgKiA8cD5JZiB0aGlzIHRyYW5zbGl0ZXJhdG9yIGhhcyBhIGZpbHRlciwgYnJlYWsgdXAgdGhlIGlucHV0IHRleHQgaW50byBydW5zCisgICAgICogb2YgdW5maWx0ZXJlZCBjaGFyYWN0ZXJzLiAgUGFzcyBlYWNoIHJ1biB0bworICAgICAqIDxzdWJjbGFzcz4uaGFuZGxlVHJhbnNsaXRlcmF0ZSgpLgorICAgICAqCisgICAgICogPHA+SW4gaW5jcmVtZW50YWwgbW9kZSwgaWYgcm9sbGJhY2sgaXMgVFJVRSwgcGVyZm9ybSBhIHNwZWNpYWwKKyAgICAgKiBpbmNyZW1lbnRhbCBwcm9jZWR1cmUgaW4gd2hpY2ggc2V2ZXJhbCBwYXNzZXMgYXJlIG1hZGUgb3ZlciB0aGUgaW5wdXQKKyAgICAgKiB0ZXh0LCBhZGRpbmcgb25lIGNoYXJhY3RlciBhdCBhIHRpbWUsIGFuZCBjb21taXR0aW5nIHN1Y2Nlc3NmdWwKKyAgICAgKiB0cmFuc2xpdGVyYXRpb25zIGFzIHRoZXkgb2NjdXIuICBVbnN1Y2Nlc3NmdWwgdHJhbnNsaXRlcmF0aW9ucyBhcmUgcm9sbGVkCisgICAgICogYmFjayBhbmQgcmV0cmllZCB3aXRoIGFkZGl0aW9uYWwgY2hhcmFjdGVycyB0byBnaXZlIGNvcnJlY3QgcmVzdWx0cy4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSB0ZXh0IHRvIGJlIHRyYW5zbGl0ZXJhdGVkCisgICAgICogQHBhcmFtIGluZGV4IHRoZSBwb3NpdGlvbiBpbmRpY2VzCisgICAgICogQHBhcmFtIGluY3JlbWVudGFsIGlmIFRSVUUsIHRoZW4gYXNzdW1lIG1vcmUgY2hhcmFjdGVycyBtYXkgYmUgaW5zZXJ0ZWQKKyAgICAgKiBhdCBpbmRleC5saW1pdCwgYW5kIHBvc3Rwb25lIHByb2Nlc3NpbmcgdG8gYWNjb21vZGF0ZSBmdXR1cmUgaW5jb21pbmcKKyAgICAgKiBjaGFyYWN0ZXJzCisgICAgICogQHBhcmFtIHJvbGxiYWNrIGlmIFRSVUUgYW5kIGlmIGluY3JlbWVudGFsIGlzIFRSVUUsIHRoZW4gcGVyZm9ybSBzcGVjaWFsCisgICAgICogaW5jcmVtZW50YWwgcHJvY2Vzc2luZywgYXMgZGVzY3JpYmVkIGFib3ZlLCBhbmQgdW5kbyBwYXJ0aWFsCisgICAgICogdHJhbnNsaXRlcmF0aW9ucyB3aGVyZSBuZWNlc3NhcnkuICBJZiBpbmNyZW1lbnRhbCBpcyBGQUxTRSB0aGVuIHRoaXMKKyAgICAgKiBwYXJhbWV0ZXIgaXMgaWdub3JlZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgZmlsdGVyZWRUcmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbiBpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gaW5jcmVtZW50YWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHJvbGxiYWNrKSB7CisgICAgICAgIC8vIFNob3J0IGNpcmN1aXQgcGF0aCBmb3IgdHJhbnNsaXRlcmF0b3JzIHdpdGggbm8gZmlsdGVyIGluCisgICAgICAgIC8vIG5vbi1pbmNyZW1lbnRhbCBtb2RlLgorICAgICAgICBpZiAoZmlsdGVyID09IG51bGwgJiYgIXJvbGxiYWNrKSB7CisgICAgICAgICAgICBoYW5kbGVUcmFuc2xpdGVyYXRlKHRleHQsIGluZGV4LCBpbmNyZW1lbnRhbCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgLy8gVGhpcyBtZXRob2QgcHJvY2Vzc2VzIHRleHQgaW4gdHdvIGdyb3VwaW5nczoKKyAgICAgICAgLy8KKyAgICAgICAgLy8gUlVOUyAtLSBBIHJ1biBpcyBhIGNvbnRpZ3VvdXMgZ3JvdXAgb2YgY2hhcmFjdGVycyB3aGljaCBhcmUgY29udGFpbmVkCisgICAgICAgIC8vIGluIHRoZSBmaWx0ZXIgZm9yIHRoaXMgdHJhbnNsaXRlcmF0b3IgKGZpbHRlci5jb250YWlucyhjaCkgPT0gdHJ1ZSkuCisgICAgICAgIC8vIFRleHQgb3V0c2lkZSBvZiBydW5zIG1heSBhcHBlYXIgYXMgY29udGV4dCBidXQgaXQgaXMgbm90IG1vZGlmaWVkLgorICAgICAgICAvLyBUaGUgc3RhcnQgYW5kIGxpbWl0IFBvc2l0aW9uIHZhbHVlcyBhcmUgbmFycm93ZWQgdG8gZWFjaCBydW4uCisgICAgICAgIC8vCisgICAgICAgIC8vIFBBU1NFUyAoaW5jcmVtZW50YWwgb25seSkgLS0gVG8gbWFrZSBpbmNyZW1lbnRhbCBtb2RlIHdvcmsgY29ycmVjdGx5LAorICAgICAgICAvLyBlYWNoIHJ1biBpcyBicm9rZW4gdXAgaW50byBuIHBhc3Nlcywgd2hlcmUgbiBpcyB0aGUgbGVuZ3RoIChpbiBjb2RlCisgICAgICAgIC8vIHBvaW50cykgb2YgdGhlIHJ1bi4gIEVhY2ggcGFzcyBjb250YWlucyB0aGUgZmlyc3QgbiBjaGFyYWN0ZXJzLiAgSWYgYQorICAgICAgICAvLyBwYXNzIGlzIGNvbXBsZXRlbHkgdHJhbnNsaXRlcmF0ZWQsIGl0IGlzIGNvbW1pdHRlZCwgYW5kIGZ1cnRoZXIgcGFzc2VzCisgICAgICAgIC8vIGluY2x1ZGUgY2hhcmFjdGVycyBhZnRlciB0aGUgY29tbWl0dGVkIHRleHQuICBJZiBhIHBhc3MgaXMgYmxvY2tlZCwKKyAgICAgICAgLy8gYW5kIGRvZXMgbm90IHRyYW5zbGl0ZXJhdGUgY29tcGxldGVseSwgdGhlbiB0aGlzIG1ldGhvZCByb2xscyBiYWNrCisgICAgICAgIC8vIHRoZSBjaGFuZ2VzIG1hZGUgZHVyaW5nIHRoZSBwYXNzLCBleHRlbmRzIHRoZSBwYXNzIGJ5IG9uZSBjb2RlIHBvaW50LAorICAgICAgICAvLyBhbmQgdHJpZXMgYWdhaW4uCisgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIC8vIGdsb2JhbExpbWl0IGlzIHRoZSBsaW1pdCB2YWx1ZSBmb3IgdGhlIGVudGlyZSBvcGVyYXRpb24uICBXZQorICAgICAgICAvLyBzZXQgaW5kZXgubGltaXQgdG8gdGhlIGVuZCBvZiBlYWNoIHVuZmlsdGVyZWQgcnVuIGJlZm9yZQorICAgICAgICAvLyBjYWxsaW5nIGhhbmRsZVRyYW5zbGl0ZXJhdGUoKSwgc28gd2UgbmVlZCB0byBtYWludGFpbiB0aGUgcmVhbAorICAgICAgICAvLyB2YWx1ZSBvZiBpbmRleC5saW1pdCBoZXJlLiAgQWZ0ZXIgZWFjaCB0cmFuc2xpdGVyYXRpb24sIHdlCisgICAgICAgIC8vIHVwZGF0ZSBnbG9iYWxMaW1pdCBmb3IgaW5zZXJ0aW9ucyBvciBkZWxldGlvbnMgdGhhdCBoYXZlCisgICAgICAgIC8vIGhhcHBlbmVkLgorICAgICAgICBpbnQgZ2xvYmFsTGltaXQgPSBpbmRleC5saW1pdDsKKworICAgICAgICAvLyBJZiB0aGVyZSBpcyBhIG5vbi1udWxsIGZpbHRlciwgdGhlbiBicmVhayB0aGUgaW5wdXQgdGV4dCB1cC4gIFNheSB0aGUKKyAgICAgICAgLy8gaW5wdXQgdGV4dCBoYXMgdGhlIGZvcm06CisgICAgICAgIC8vICAgeHh4YWJjeHhkZWZ4eAorICAgICAgICAvLyB3aGVyZSAneCcgcmVwcmVzZW50cyBhIGZpbHRlcmVkIGNoYXJhY3RlciAoZmlsdGVyLmNvbnRhaW5zKCd4JykgPT0KKyAgICAgICAgLy8gZmFsc2UpLiAgVGhlbiB3ZSBicmVhayB0aGlzIHVwIGludG86CisgICAgICAgIC8vICAgeHh4YWJjIHh4ZGVmIHh4CisgICAgICAgIC8vIEVhY2ggcGFzcyB0aHJvdWdoIHRoZSBsb29wIGNvbnN1bWVzIGEgcnVuIG9mIGZpbHRlcmVkCisgICAgICAgIC8vIGNoYXJhY3RlcnMgKHdoaWNoIGFyZSBpZ25vcmVkKSBhbmQgYSBzdWJzZXF1ZW50IHJ1biBvZgorICAgICAgICAvLyB1bmZpbHRlcmVkIGNoYXJhY3RlcnMgKHdoaWNoIGFyZSB0cmFuc2xpdGVyYXRlZCkuCisKKyAgICAgICAgU3RyaW5nQnVmZmVyIGxvZyA9IG51bGw7CisgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgbG9nID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICB9CisKKyAgICAgICAgZm9yICg7OykgeworCisgICAgICAgICAgICBpZiAoZmlsdGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAvLyBOYXJyb3cgdGhlIHJhbmdlIHRvIGJlIHRyYW5zbGl0ZXJhdGVkIHRvIHRoZSBmaXJzdCBydW4KKyAgICAgICAgICAgICAgICAvLyBvZiB1bmZpbHRlcmVkIGNoYXJhY3RlcnMgYXQgb3IgYWZ0ZXIgaW5kZXguc3RhcnQuCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gQWR2YW5jZSBwYXN0IGZpbHRlcmVkIGNoYXJzCisgICAgICAgICAgICAgICAgaW50IGM7CisgICAgICAgICAgICAgICAgd2hpbGUgKGluZGV4LnN0YXJ0IDwgZ2xvYmFsTGltaXQgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIWZpbHRlci5jb250YWlucyhjPXRleHQuY2hhcjMyQXQoaW5kZXguc3RhcnQpKSkgeworICAgICAgICAgICAgICAgICAgICBpbmRleC5zdGFydCArPSBVVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIEZpbmQgdGhlIGVuZCBvZiB0aGlzIHJ1biBvZiB1bmZpbHRlcmVkIGNoYXJzCisgICAgICAgICAgICAgICAgaW5kZXgubGltaXQgPSBpbmRleC5zdGFydDsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaW5kZXgubGltaXQgPCBnbG9iYWxMaW1pdCAmJgorICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIuY29udGFpbnMoYz10ZXh0LmNoYXIzMkF0KGluZGV4LmxpbWl0KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaW5kZXgubGltaXQgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHRoZSB1bmZpbHRlcmVkIHJ1biBpcyBlbXB0eS4gIFRoaXMgb25seQorICAgICAgICAgICAgLy8gaGFwcGVucyBhdCB0aGUgZW5kIG9mIHRoZSBzdHJpbmcgd2hlbiBhbGwgdGhlIHJlbWFpbmluZworICAgICAgICAgICAgLy8gY2hhcmFjdGVycyBhcmUgZmlsdGVyZWQuCisgICAgICAgICAgICBpZiAoaW5kZXguc3RhcnQgPT0gaW5kZXgubGltaXQpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gSXMgdGhpcyBydW4gaW5jcmVtZW50YWw/ICBJZiB0aGVyZSBpcyBhZGRpdGlvbmFsCisgICAgICAgICAgICAvLyBmaWx0ZXJlZCB0ZXh0IChpZiBsaW1pdCA8IGdsb2JhbExpbWl0KSB0aGVuIHdlIHBhc3MgaW4KKyAgICAgICAgICAgIC8vIGFuIGluY3JlbWVudGFsIHZhbHVlIG9mIEZBTFNFIHRvIGZvcmNlIHRoZSBzdWJjbGFzcyB0bworICAgICAgICAgICAgLy8gY29tcGxldGUgdGhlIHRyYW5zbGl0ZXJhdGlvbiBmb3IgdGhpcyBydW4uCisgICAgICAgICAgICBib29sZWFuIGlzSW5jcmVtZW50YWxSdW4gPQorICAgICAgICAgICAgICAgIChpbmRleC5saW1pdCA8IGdsb2JhbExpbWl0ID8gZmFsc2UgOiBpbmNyZW1lbnRhbCk7CisKKyAgICAgICAgICAgIGludCBkZWx0YTsKKworICAgICAgICAgICAgLy8gSW1wbGVtZW50IHJvbGxiYWNrLiAgVG8gdW5kZXJzdGFuZCB0aGUgbmVlZCBmb3Igcm9sbGJhY2ssCisgICAgICAgICAgICAvLyBjb25zaWRlciB0aGUgZm9sbG93aW5nIHRyYW5zbGl0ZXJhdG9yOgorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vICAidCIgaXMgImEgPiBBOyIKKyAgICAgICAgICAgIC8vICAidSIgaXMgIkEgPiBiOyIKKyAgICAgICAgICAgIC8vICAidiIgaXMgYSBjb21wb3VuZCBvZiAidDsgTkZEOyB1IiB3aXRoIGEgZmlsdGVyIFs6TGw6XQorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIE5vdyBhcHBseSAidiIgdG8gdGhlIGlucHV0IHRleHQgImEiLiAgVGhlIHJlc3VsdCBpcyAiYiIuICBCdXQgaWYKKyAgICAgICAgICAgIC8vIHRoZSB0cmFuc2xpdGVyYXRpb24gaXMgZG9uZSBpbmNyZW1lbnRhbGx5LCB0aGVuIHRoZSBORkQgaG9sZHMKKyAgICAgICAgICAgIC8vIHRoaW5ncyB1cCBhZnRlciAidCIgaGFzIGFscmVhZHkgdHJhbnNmb3JtZWQgImEiIHRvICJBIi4gIFdoZW4KKyAgICAgICAgICAgIC8vIGZpbmlzaFRyYW5zbGl0ZXJhdGUoKSBpcyBjYWxsZWQsICJBIiBpcyBfbm90XyBwcm9jZXNzZWQgYmVjYXVzZQorICAgICAgICAgICAgLy8gaXQgZ2V0cyBleGNsdWRlZCBieSB0aGUgWzpMbDpdIGZpbHRlciwgYW5kIHRoZSBlbmQgcmVzdWx0IGlzICJBIgorICAgICAgICAgICAgLy8gLS0gaW5jb3JyZWN0LiAgVGhlIHByb2JsZW0gaXMgdGhhdCB0aGUgZmlsdGVyIGlzIGFwcGxpZWQgdG8gYQorICAgICAgICAgICAgLy8gcGFydGlhbGx5LXRyYW5zbGl0ZXJhdGVkIHJlc3VsdCwgd2hlbiB3ZSBvbmx5IHdhbnQgaXQgdG8gYXBwbHkgdG8KKyAgICAgICAgICAgIC8vIGlucHV0IHRleHQuICBBbHRob3VnaCB0aGlzIGV4YW1wbGUgZGVzY3JpYmVzIGEgY29tcG91bmQKKyAgICAgICAgICAgIC8vIHRyYW5zbGl0ZXJhdG9yIGNvbnRhaW5pbmcgTkZEIGFuZCBhIHNwZWNpZmljIGZpbHRlciwgaXQgY2FuCisgICAgICAgICAgICAvLyBoYXBwZW4gd2l0aCBhbnkgdHJhbnNsaXRlcmF0b3Igd2hpY2ggZG9lcyBhIHBhcnRpYWwKKyAgICAgICAgICAgIC8vIHRyYW5zZm9ybWF0aW9uIGluIGluY3JlbWVudGFsIG1vZGUgaW50byBjaGFyYWN0ZXJzIG91dHNpZGUgaXRzCisgICAgICAgICAgICAvLyBmaWx0ZXIuCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gVG8gaGFuZGxlIHRoaXMsIHdoZW4gaW4gaW5jcmVtZW50YWwgbW9kZSB3ZSBzdXBwbHkgY2hhcmFjdGVycyB0bworICAgICAgICAgICAgLy8gaGFuZGxlVHJhbnNsaXRlcmF0ZSgpIGluIHNldmVyYWwgcGFzc2VzLiAgRWFjaCBwYXNzIGFkZHMgb25lIG1vcmUKKyAgICAgICAgICAgIC8vIGlucHV0IGNoYXJhY3RlciB0byB0aGUgaW5wdXQgdGV4dC4gIFRoYXQgaXMsIGZvciBpbnB1dCAiQUJDRCIsIHdlCisgICAgICAgICAgICAvLyBmaXJzdCB0cnkgIkEiLCB0aGVuICJBQiIsIHRoZW4gIkFCQyIsIGFuZCBmaW5hbGx5ICJBQkNEIi4gIElmIGF0CisgICAgICAgICAgICAvLyBhbnkgcG9pbnQgd2UgYmxvY2sgKHVwb24gcmV0dXJuLCBzdGFydCA8IGxpbWl0KSB0aGVuIHdlIHJvbGwKKyAgICAgICAgICAgIC8vIGJhY2suICBJZiBhdCBhbnkgcG9pbnQgd2UgY29tcGxldGUgdGhlIHJ1biAodXBvbiByZXR1cm4gc3RhcnQgPT0KKyAgICAgICAgICAgIC8vIGxpbWl0KSB0aGVuIHdlIGNvbW1pdCB0aGF0IHJ1bi4KKworICAgICAgICAgICAgaWYgKHJvbGxiYWNrICYmIGlzSW5jcmVtZW50YWxSdW4pIHsKKworICAgICAgICAgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgICAgICAgICBsb2cuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImZpbHRlcmVkVHJhbnNsaXRlcmF0ZXsiK2dldElEKCkrIn1pOiBJTj0iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHkuZm9ybWF0SW5wdXQodGV4dCwgaW5kZXgpKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpbnQgcnVuU3RhcnQgPSBpbmRleC5zdGFydDsKKyAgICAgICAgICAgICAgICBpbnQgcnVuTGltaXQgPSBpbmRleC5saW1pdDsKKyAgICAgICAgICAgICAgICBpbnQgcnVuTGVuZ3RoID0gIHJ1bkxpbWl0IC0gcnVuU3RhcnQ7CisKKyAgICAgICAgICAgICAgICAvLyBNYWtlIGEgcm9sbGJhY2sgY29weSBhdCB0aGUgZW5kIG9mIHRoZSBzdHJpbmcKKyAgICAgICAgICAgICAgICBpbnQgcm9sbGJhY2tPcmlnaW4gPSB0ZXh0Lmxlbmd0aCgpOworICAgICAgICAgICAgICAgIHRleHQuY29weShydW5TdGFydCwgcnVuTGltaXQsIHJvbGxiYWNrT3JpZ2luKTsKKworICAgICAgICAgICAgICAgIC8vIFZhcmlhYmxlcyByZWZsZWN0aW5nIHRoZSBjb21taXRtZW50IG9mIGNvbXBsZXRlbHkKKyAgICAgICAgICAgICAgICAvLyB0cmFuc2xpdGVyYXRlZCB0ZXh0LiAgcGFzc1N0YXJ0IGlzIHRoZSBydW5TdGFydCwgYWR2YW5jZWQKKyAgICAgICAgICAgICAgICAvLyBwYXN0IGNvbW1pdHRlZCB0ZXh0LiAgcm9sbGJhY2tTdGFydCBpcyB0aGUgcm9sbGJhY2tPcmlnaW4sCisgICAgICAgICAgICAgICAgLy8gYWR2YW5jZWQgcGFzdCByb2xsYmFjayB0ZXh0IHRoYXQgY29ycmVzcG9uZHMgdG8gY29tbWl0dGVkCisgICAgICAgICAgICAgICAgLy8gdGV4dC4KKyAgICAgICAgICAgICAgICBpbnQgcGFzc1N0YXJ0ID0gcnVuU3RhcnQ7CisgICAgICAgICAgICAgICAgaW50IHJvbGxiYWNrU3RhcnQgPSByb2xsYmFja09yaWdpbjsKKworICAgICAgICAgICAgICAgIC8vIFRoZSBsaW1pdCBmb3IgZWFjaCBwYXNzOyB3ZSBhZHZhbmNlIGJ5IG9uZSBjb2RlIHBvaW50IHdpdGgKKyAgICAgICAgICAgICAgICAvLyBlYWNoIGl0ZXJhdGlvbi4KKyAgICAgICAgICAgICAgICBpbnQgcGFzc0xpbWl0ID0gaW5kZXguc3RhcnQ7CisKKyAgICAgICAgICAgICAgICAvLyBUb3RhbCBsZW5ndGgsIGluIDE2LWJpdCBjb2RlIHVuaXRzLCBvZiB1bmNvbW1pdHRlZCB0ZXh0LgorICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGxlbmd0aCB0byBiZSByb2xsZWQgYmFjay4KKyAgICAgICAgICAgICAgICBpbnQgdW5jb21taXR0ZWRMZW5ndGggPSAwOworCisgICAgICAgICAgICAgICAgLy8gVG90YWwgZGVsdGEgKGNoYW5nZSBpbiBsZW5ndGgpIGZvciBhbGwgcGFzc2VzCisgICAgICAgICAgICAgICAgaW50IHRvdGFsRGVsdGEgPSAwOworCisgICAgICAgICAgICAgICAgLy8gUEFTUyBNQUlOIExPT1AgLS0gU3RhcnQgd2l0aCBhIHNpbmdsZSBjaGFyYWN0ZXIsIGFuZCBleHRlbmQKKyAgICAgICAgICAgICAgICAvLyB0aGUgdGV4dCBieSBvbmUgY2hhcmFjdGVyIGF0IGEgdGltZS4gIFJvbGwgYmFjayBwYXJ0aWFsCisgICAgICAgICAgICAgICAgLy8gdHJhbnNsaXRlcmF0aW9ucyBhbmQgY29tbWl0IGNvbXBsZXRlIHRyYW5zbGl0ZXJhdGlvbnMuCisgICAgICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgICAgICAvLyBMZW5ndGggb2YgYWRkaXRpb25hbCBjb2RlIHBvaW50LCBlaXRoZXIgb25lIG9yIHR3bworICAgICAgICAgICAgICAgICAgICBpbnQgY2hhckxlbmd0aCA9CisgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5nZXRDaGFyQ291bnQodGV4dC5jaGFyMzJBdChwYXNzTGltaXQpKTsKKyAgICAgICAgICAgICAgICAgICAgcGFzc0xpbWl0ICs9IGNoYXJMZW5ndGg7CisgICAgICAgICAgICAgICAgICAgIGlmIChwYXNzTGltaXQgPiBydW5MaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgdW5jb21taXR0ZWRMZW5ndGggKz0gY2hhckxlbmd0aDsKKworICAgICAgICAgICAgICAgICAgICBpbmRleC5saW1pdCA9IHBhc3NMaW1pdDsKKworICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZy5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2cuYXBwZW5kKCJmaWx0ZXJlZFRyYW5zbGl0ZXJhdGV7IitnZXRJRCgpKyJ9aTogIik7CisgICAgICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmZvcm1hdElucHV0KGxvZywgdGV4dCwgaW5kZXgpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy8gRGVsZWdhdGUgdG8gc3ViY2xhc3MgZm9yIGFjdHVhbCB0cmFuc2xpdGVyYXRpb24uICBVcG9uCisgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiwgc3RhcnQgd2lsbCBiZSB1cGRhdGVkIHRvIHBvaW50IGFmdGVyIHRoZQorICAgICAgICAgICAgICAgICAgICAvLyB0cmFuc2xpdGVyYXRlZCB0ZXh0LCBhbmQgbGltaXQgYW5kIGNvbnRleHRMaW1pdCB3aWxsIGJlCisgICAgICAgICAgICAgICAgICAgIC8vIGFkanVzdGVkIGZvciBsZW5ndGggY2hhbmdlcy4KKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlVHJhbnNsaXRlcmF0ZSh0ZXh0LCBpbmRleCwgdHJ1ZSk7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2cuYXBwZW5kKCIgPT4gIik7CisgICAgICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmZvcm1hdElucHV0KGxvZywgdGV4dCwgaW5kZXgpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgZGVsdGEgPSBpbmRleC5saW1pdCAtIHBhc3NMaW1pdDsgLy8gY2hhbmdlIGluIGxlbmd0aAorICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIFdlIGZhaWxlZCB0byBjb21wbGV0ZWx5IHRyYW5zbGl0ZXJhdGUgdGhpcyBwYXNzLgorICAgICAgICAgICAgICAgICAgICAvLyBSb2xsIGJhY2sgdGhlIHRleHQuICBJbmRpY2VzIHJlbWFpbiB1bmNoYW5nZWQ7IHJlc2V0CisgICAgICAgICAgICAgICAgICAgIC8vIHRoZW0gd2hlcmUgbmVjZXNzYXJ5LgorICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXguc3RhcnQgIT0gaW5kZXgubGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZpbmQgdGhlIHJvbGxiYWNrU3RhcnQsIGFkanVzdGVkIGZvciBsZW5ndGggY2hhbmdlcworICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHRoZSBkZWxldGlvbiBvZiBwYXJ0aWFsbHkgdHJhbnNsaXRlcmF0ZWQgdGV4dC4KKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBycyA9IHJvbGxiYWNrU3RhcnQgKyBkZWx0YSAtIChpbmRleC5saW1pdCAtIHBhc3NTdGFydCk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gRGVsZXRlIHRoZSBwYXJ0aWFsbHkgdHJhbnNsaXRlcmF0ZWQgdGV4dAorICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC5yZXBsYWNlKHBhc3NTdGFydCwgaW5kZXgubGltaXQsICIiKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBDb3B5IHRoZSByb2xsYmFjayB0ZXh0IGJhY2sKKyAgICAgICAgICAgICAgICAgICAgICAgIHRleHQuY29weShycywgcnMgKyB1bmNvbW1pdHRlZExlbmd0aCwgcGFzc1N0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBSZXN0b3JlIGluZGljZXMgdG8gdGhlaXIgb3JpZ2luYWwgdmFsdWVzCisgICAgICAgICAgICAgICAgICAgICAgICBpbmRleC5zdGFydCA9IHBhc3NTdGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4LmxpbWl0ID0gcGFzc0xpbWl0OworICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXguY29udGV4dExpbWl0IC09IGRlbHRhOworCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2cuYXBwZW5kKCIgKFJPTExCQUNLKSIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy8gV2UgZGlkIGNvbXBsZXRlbHkgdHJhbnNsaXRlcmF0ZSB0aGlzIHBhc3MuICBVcGRhdGUgdGhlCisgICAgICAgICAgICAgICAgICAgIC8vIGNvbW1pdCBpbmRpY2VzIHRvIHJlY29yZCBob3cgZmFyIHdlIGdvdC4gIEFkanVzdCBpbmRpY2VzCisgICAgICAgICAgICAgICAgICAgIC8vIGZvciBsZW5ndGggY2hhbmdlLgorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIE1vdmUgdGhlIHBhc3MgaW5kaWNlcyBwYXN0IHRoZSBjb21taXR0ZWQgdGV4dC4KKyAgICAgICAgICAgICAgICAgICAgICAgIHBhc3NTdGFydCA9IHBhc3NMaW1pdCA9IGluZGV4LnN0YXJ0OworCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBBZGp1c3QgdGhlIHJvbGxiYWNrU3RhcnQgZm9yIGxlbmd0aCBjaGFuZ2VzIGFuZCBtb3ZlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBpdCBwYXN0IHRoZSBjb21taXR0ZWQgdGV4dC4gIEFsbCBjaGFyYWN0ZXJzIHdlJ3ZlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBwcm9jZXNzZWQgdG8gdGhpcyBwb2ludCBhcmUgY29tbWl0dGVkIG5vdywgc28gemVybworICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3V0IHRoZSB1bmNvbW1pdHRlZExlbmd0aC4KKyAgICAgICAgICAgICAgICAgICAgICAgIHJvbGxiYWNrU3RhcnQgKz0gZGVsdGEgKyB1bmNvbW1pdHRlZExlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHVuY29tbWl0dGVkTGVuZ3RoID0gMDsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWRqdXN0IGluZGljZXMgZm9yIGxlbmd0aCBjaGFuZ2VzLgorICAgICAgICAgICAgICAgICAgICAgICAgcnVuTGltaXQgKz0gZGVsdGE7CisgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbERlbHRhICs9IGRlbHRhOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oVXRpbGl0eS5lc2NhcGUobG9nLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIEFkanVzdCBvdmVyYWxsIGxpbWl0IGFuZCByb2xsYmFja09yaWdpbiBmb3IgaW5zZXJ0aW9ucyBhbmQKKyAgICAgICAgICAgICAgICAvLyBkZWxldGlvbnMuICBEb24ndCBuZWVkIHRvIHdvcnJ5IGFib3V0IGNvbnRleHRMaW1pdCBiZWNhdXNlCisgICAgICAgICAgICAgICAgLy8gaGFuZGxlVHJhbnNsaXRlcmF0ZSgpIG1haW50YWlucyB0aGF0LgorICAgICAgICAgICAgICAgIHJvbGxiYWNrT3JpZ2luICs9IHRvdGFsRGVsdGE7CisgICAgICAgICAgICAgICAgZ2xvYmFsTGltaXQgKz0gdG90YWxEZWx0YTsKKworICAgICAgICAgICAgICAgIC8vIERlbGV0ZSB0aGUgcm9sbGJhY2sgY29weQorICAgICAgICAgICAgICAgIHRleHQucmVwbGFjZShyb2xsYmFja09yaWdpbiwgcm9sbGJhY2tPcmlnaW4gKyBydW5MZW5ndGgsICIiKTsKKworICAgICAgICAgICAgICAgIC8vIE1vdmUgc3RhcnQgcGFzdCBjb21taXR0ZWQgdGV4dAorICAgICAgICAgICAgICAgIGluZGV4LnN0YXJ0ID0gcGFzc1N0YXJ0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBEZWxlZ2F0ZSB0byBzdWJjbGFzcyBmb3IgYWN0dWFsIHRyYW5zbGl0ZXJhdGlvbi4KKyAgICAgICAgICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICAgICAgbG9nLmFwcGVuZCgiZmlsdGVyZWRUcmFuc2xpdGVyYXRleyIrZ2V0SUQoKSsifTogIik7CisgICAgICAgICAgICAgICAgICAgIFV0aWxpdHkuZm9ybWF0SW5wdXQobG9nLCB0ZXh0LCBpbmRleCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaW50IGxpbWl0ID0gaW5kZXgubGltaXQ7CisgICAgICAgICAgICAgICAgaGFuZGxlVHJhbnNsaXRlcmF0ZSh0ZXh0LCBpbmRleCwgaXNJbmNyZW1lbnRhbFJ1bik7CisgICAgICAgICAgICAgICAgZGVsdGEgPSBpbmRleC5saW1pdCAtIGxpbWl0OyAvLyBjaGFuZ2UgaW4gbGVuZ3RoCisKKyAgICAgICAgICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nLmFwcGVuZCgiID0+ICIpOworICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmZvcm1hdElucHV0KGxvZywgdGV4dCwgaW5kZXgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIEluIGEgcHJvcGVybHkgd3JpdHRlbiB0cmFuc2xpdGVyYXRvciwgc3RhcnQgPT0gbGltaXQgYWZ0ZXIKKyAgICAgICAgICAgICAgICAvLyBoYW5kbGVUcmFuc2xpdGVyYXRlKCkgcmV0dXJucyB3aGVuIGluY3JlbWVudGFsIGlzIGZhbHNlLgorICAgICAgICAgICAgICAgIC8vIENhdGNoIGNhc2VzIHdoZXJlIHRoZSBzdWJjbGFzcyBkb2Vzbid0IGRvIHRoaXMsIGFuZCB0aHJvdworICAgICAgICAgICAgICAgIC8vIGFuIGV4Y2VwdGlvbi4gIChKdXN0IHBpbm5pbmcgc3RhcnQgdG8gbGltaXQgaXMgYSBiYWQgaWRlYSwKKyAgICAgICAgICAgICAgICAvLyBiZWNhdXNlIHdoYXQncyBwcm9iYWJseSBoYXBwZW5pbmcgaXMgdGhhdCB0aGUgc3ViY2xhc3MKKyAgICAgICAgICAgICAgICAvLyBpc24ndCB0cmFuc2xpdGVyYXRpbmcgYWxsIHRoZSB3YXkgdG8gdGhlIGVuZCwgYW5kIGl0IHNob3VsZAorICAgICAgICAgICAgICAgIC8vIGluIG5vbi1pbmNyZW1lbnRhbCBtb2RlLikKKyAgICAgICAgICAgICAgICBpZiAoIWlzSW5jcmVtZW50YWxSdW4gJiYgaW5kZXguc3RhcnQgIT0gaW5kZXgubGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIkVSUk9SOiBJbmNvbXBsZXRlIG5vbi1pbmNyZW1lbnRhbCB0cmFuc2xpdGVyYXRpb24gYnkgIiArIGdldElEKCkpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIEFkanVzdCBvdmVyYWxsIGxpbWl0IGZvciBpbnNlcnRpb25zL2RlbGV0aW9ucy4gIERvbid0IG5lZWQKKyAgICAgICAgICAgICAgICAvLyB0byB3b3JyeSBhYm91dCBjb250ZXh0TGltaXQgYmVjYXVzZSBoYW5kbGVUcmFuc2xpdGVyYXRlKCkKKyAgICAgICAgICAgICAgICAvLyBtYWludGFpbnMgdGhhdC4KKyAgICAgICAgICAgICAgICBnbG9iYWxMaW1pdCArPSBkZWx0YTsKKworICAgICAgICAgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oVXRpbGl0eS5lc2NhcGUobG9nLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChmaWx0ZXIgPT0gbnVsbCB8fCBpc0luY3JlbWVudGFsUnVuKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIElmIHdlIGRpZCBjb21wbGV0ZWx5IHRyYW5zbGl0ZXJhdGUgdGhpcworICAgICAgICAgICAgLy8gcnVuLCB0aGVuIHJlcGVhdCB3aXRoIHRoZSBuZXh0IHVuZmlsdGVyZWQgcnVuLgorICAgICAgICB9CisKKyAgICAgICAgLy8gU3RhcnQgaXMgdmFsaWQgd2hlcmUgaXQgaXMuICBMaW1pdCBuZWVkcyB0byBiZSBwdXQgYmFjayB3aGVyZQorICAgICAgICAvLyBpdCB3YXMsIG1vZHVsbyBhZGp1c3RtZW50cyBmb3IgZGVsZXRpb25zL2luc2VydGlvbnMuCisgICAgICAgIGluZGV4LmxpbWl0ID0gZ2xvYmFsTGltaXQ7CisKKyAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImZpbHRlcmVkVHJhbnNsaXRlcmF0ZXsiK2dldElEKCkrIn06IE9VVD0iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmZvcm1hdElucHV0KHRleHQsIGluZGV4KSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUcmFuc2xpdGVyYXRlIGEgc3Vic3RyaW5nIG9mIHRleHQsIGFzIHNwZWNpZmllZCBieSBpbmRleCwgdGFraW5nIGZpbHRlcnMKKyAgICAgKiBpbnRvIGFjY291bnQuICBUaGlzIG1ldGhvZCBpcyBmb3Igc3ViY2xhc3NlcyB0aGF0IG5lZWQgdG8gZGVsZWdhdGUgdG8KKyAgICAgKiBhbm90aGVyIHRyYW5zbGl0ZXJhdG9yLCBzdWNoIGFzIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IuCisgICAgICogQHBhcmFtIHRleHQgdGhlIHRleHQgdG8gYmUgdHJhbnNsaXRlcmF0ZWQKKyAgICAgKiBAcGFyYW0gaW5kZXggdGhlIHBvc2l0aW9uIGluZGljZXMKKyAgICAgKiBAcGFyYW0gaW5jcmVtZW50YWwgaWYgVFJVRSwgdGhlbiBhc3N1bWUgbW9yZSBjaGFyYWN0ZXJzIG1heSBiZSBpbnNlcnRlZAorICAgICAqIGF0IGluZGV4LmxpbWl0LCBhbmQgcG9zdHBvbmUgcHJvY2Vzc2luZyB0byBhY2NvbW9kYXRlIGZ1dHVyZSBpbmNvbWluZworICAgICAqIGNoYXJhY3RlcnMKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBmaWx0ZXJlZFRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9zaXRpb24gaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gaW5jcmVtZW50YWwpIHsKKyAgICAgICAgZmlsdGVyZWRUcmFuc2xpdGVyYXRlKHRleHQsIGluZGV4LCBpbmNyZW1lbnRhbCwgZmFsc2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgbG9uZ2VzdCBjb250ZXh0IHJlcXVpcmVkIGJ5IHRoaXMgdHJhbnNsaXRlcmF0b3IuCisgICAgICogVGhpcyBpcyA8ZW0+cHJlY2VkaW5nPC9lbT4gY29udGV4dC4gIFRoZSBkZWZhdWx0IHZhbHVlIGlzIHplcm8sIGJ1dAorICAgICAqIHN1YmNsYXNzZXMgY2FuIGNoYW5nZSB0aGlzIGJ5IGNhbGxpbmcgPGNvZGU+c2V0TWF4aW11bUNvbnRleHRMZW5ndGgoKTwvY29kZT4uCisgICAgICogRm9yIGV4YW1wbGUsIGlmIGEgdHJhbnNsaXRlcmF0b3IgdHJhbnNsYXRlcyAiZGRkIiAod2hlcmUKKyAgICAgKiBkIGlzIGFueSBkaWdpdCkgdG8gIjU1NSIgd2hlbiBwcmVjZWRlZCBieSAiKGRkZCkiLCB0aGVuIHRoZSBwcmVjZWRpbmcKKyAgICAgKiBjb250ZXh0IGxlbmd0aCBpcyA1LCB0aGUgbGVuZ3RoIG9mICIoZGRkKSIuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIFRoZSBtYXhpbXVtIG51bWJlciBvZiBwcmVjZWRpbmcgY29udGV4dCBjaGFyYWN0ZXJzIHRoaXMKKyAgICAgKiB0cmFuc2xpdGVyYXRvciBuZWVkcyB0byBleGFtaW5lCisgICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIGludCBnZXRNYXhpbXVtQ29udGV4dExlbmd0aCgpIHsKKyAgICAgICAgcmV0dXJuIG1heGltdW1Db250ZXh0TGVuZ3RoOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1ldGhvZCBmb3Igc3ViY2xhc3NlcyB0byB1c2UgdG8gc2V0IHRoZSBtYXhpbXVtIGNvbnRleHQgbGVuZ3RoLgorICAgICAqIEBzZWUgI2dldE1heGltdW1Db250ZXh0TGVuZ3RoCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgc2V0TWF4aW11bUNvbnRleHRMZW5ndGgoaW50IGEpIHsKKyAgICAgICAgaWYgKGEgPCAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGNvbnRleHQgbGVuZ3RoICIgKyBhKTsKKyAgICAgICAgfQorICAgICAgICBtYXhpbXVtQ29udGV4dExlbmd0aCA9IGE7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHByb2dyYW1tYXRpYyBpZGVudGlmaWVyIGZvciB0aGlzIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqIElmIHRoaXMgaWRlbnRpZmllciBpcyBwYXNzZWQgdG8gPGNvZGU+Z2V0SW5zdGFuY2UoKTwvY29kZT4sIGl0CisgICAgICogd2lsbCByZXR1cm4gdGhpcyBvYmplY3QsIGlmIGl0IGhhcyBiZWVuIHJlZ2lzdGVyZWQuCisgICAgICogQHNlZSAjcmVnaXN0ZXJDbGFzcworICAgICAqIEBzZWUgI2dldEF2YWlsYWJsZUlEcworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgZ2V0SUQoKSB7CisgICAgICAgIHJldHVybiBJRDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHByb2dyYW1tYXRpYyBpZGVudGlmaWVyIGZvciB0aGlzIHRyYW5zbGl0ZXJhdG9yLiAgT25seQorICAgICAqIGZvciB1c2UgYnkgc3ViY2xhc3Nlcy4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgdm9pZCBzZXRJRChTdHJpbmcgaWQpIHsKKyAgICAgICAgSUQgPSBpZDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmFtZSBmb3IgdGhpcyB0cmFuc2xpdGVyYXRvciB0aGF0IGlzIGFwcHJvcHJpYXRlIGZvcgorICAgICAqIGRpc3BsYXkgdG8gdGhlIHVzZXIgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLiAgU2VlIHtAbGluaworICAgICAqICNnZXREaXNwbGF5TmFtZShTdHJpbmcsTG9jYWxlKX0gZm9yIGRldGFpbHMuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoU3RyaW5nIElEKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5TmFtZShJRCwgTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5hbWUgZm9yIHRoaXMgdHJhbnNsaXRlcmF0b3IgdGhhdCBpcyBhcHByb3ByaWF0ZSBmb3IKKyAgICAgKiBkaXNwbGF5IHRvIHRoZSB1c2VyIGluIHRoZSBnaXZlbiBsb2NhbGUuICBUaGlzIG5hbWUgaXMgdGFrZW4KKyAgICAgKiBmcm9tIHRoZSBsb2NhbGUgcmVzb3VyY2UgZGF0YSBpbiB0aGUgc3RhbmRhcmQgbWFubmVyIG9mIHRoZQorICAgICAqIDxjb2RlPmphdmEudGV4dDwvY29kZT4gcGFja2FnZS4KKyAgICAgKgorICAgICAqIDxwPklmIG5vIGxvY2FsaXplZCBuYW1lcyBleGlzdCBpbiB0aGUgc3lzdGVtIHJlc291cmNlIGJ1bmRsZXMsCisgICAgICogYSBuYW1lIGlzIHN5bnRoZXNpemVkIHVzaW5nIGEgbG9jYWxpemVkCisgICAgICogPGNvZGU+TWVzc2FnZUZvcm1hdDwvY29kZT4gcGF0dGVybiBmcm9tIHRoZSByZXNvdXJjZSBkYXRhLiAgVGhlCisgICAgICogYXJndW1lbnRzIHRvIHRoaXMgcGF0dGVybiBhcmUgYW4gaW50ZWdlciBmb2xsb3dlZCBieSBvbmUgb3IgdHdvCisgICAgICogc3RyaW5ncy4gIFRoZSBpbnRlZ2VyIGlzIHRoZSBudW1iZXIgb2Ygc3RyaW5ncywgZWl0aGVyIDEgb3IgMi4KKyAgICAgKiBUaGUgc3RyaW5ncyBhcmUgZm9ybWVkIGJ5IHNwbGl0dGluZyB0aGUgSUQgZm9yIHRoaXMKKyAgICAgKiB0cmFuc2xpdGVyYXRvciBhdCB0aGUgZmlyc3QgJy0nLiAgSWYgdGhlcmUgaXMgbm8gJy0nLCB0aGVuIHRoZQorICAgICAqIGVudGlyZSBJRCBmb3JtcyB0aGUgb25seSBzdHJpbmcuCisgICAgICogQHBhcmFtIGluTG9jYWxlIHRoZSBMb2NhbGUgaW4gd2hpY2ggdGhlIGRpc3BsYXkgbmFtZSBzaG91bGQgYmUKKyAgICAgKiBsb2NhbGl6ZWQuCisgICAgICogQHNlZSBqYXZhLnRleHQuTWVzc2FnZUZvcm1hdAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKFN0cmluZyBpZCwgTG9jYWxlIGluTG9jYWxlKSB7CisKKwkJLy8gUmVzb3VyY2UgYnVuZGxlIGNvbnRhaW5pbmcgZGlzcGxheSBuYW1lIGtleXMgYW5kIHRoZQorCQkvLyBSQl9SVUxFX0JBU0VEX0lEUyBhcnJheS4KKwkJLy8KKwkJLy9JZiB3ZSBldmVyIGludGVncmF0ZSB0aGlzIHdpdGggdGhlIFN1biBKREssIHRoZSByZXNvdXJjZSBidW5kbGUKKyAgICAgICAgLy8gcm9vdCB3aWxsIGNoYW5nZSB0byBzdW4udGV4dC5yZXNvdXJjZXMuTG9jYWxlRWxlbWVudHMKKworICAgICAgICBSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSBJQ1VMb2NhbGVEYXRhLmdldExvY2FsZUVsZW1lbnRzKGluTG9jYWxlKTsKKworICAgICAgICAvLyBOb3JtYWxpemUgdGhlIElECisgICAgICAgIFN0cmluZyBzdHZbXSA9IFRyYW5zbGl0ZXJhdG9ySURQYXJzZXIuSUR0b1NUVihpZCk7CisgICAgICAgIGlmIChzdHYgPT0gbnVsbCkgeworICAgICAgICAgICAgLy8gTm8gdGFyZ2V0OyBtYWxmb3JtZWQgaWQKKyAgICAgICAgICAgIHJldHVybiAiIjsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgSUQgPSBzdHZbMF0gKyAnLScgKyBzdHZbMV07CisgICAgICAgIGlmIChzdHZbMl0gIT0gbnVsbCAmJiBzdHZbMl0ubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICBJRCA9IElEICsgJy8nICsgc3R2WzJdOworICAgICAgICB9CisKKyAgICAgICAgLy8gVXNlIHRoZSByZWdpc3RlcmVkIGRpc3BsYXkgbmFtZSwgaWYgYW55CisgICAgICAgIFN0cmluZyBuID0gKFN0cmluZykgZGlzcGxheU5hbWVDYWNoZS5nZXQobmV3IENhc2VJbnNlbnNpdGl2ZVN0cmluZyhJRCkpOworICAgICAgICBpZiAobiAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFVzZSBkaXNwbGF5IG5hbWUgZm9yIHRoZSBlbnRpcmUgdHJhbnNsaXRlcmF0b3IsIGlmIGl0CisgICAgICAgIC8vIGV4aXN0cy4KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiBidW5kbGUuZ2V0U3RyaW5nKFJCX0RJU1BMQVlfTkFNRV9QUkVGSVggKyBJRCk7CisgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7fQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAvLyBDb25zdHJ1Y3QgdGhlIGZvcm1hdHRlciBmaXJzdDsgaWYgZ2V0U3RyaW5nKCkgZmFpbHMKKyAgICAgICAgICAgIC8vIHdlJ2xsIGV4aXQgdGhlIHRyeSBibG9jaworICAgICAgICAgICAgTWVzc2FnZUZvcm1hdCBmb3JtYXQgPSBuZXcgTWVzc2FnZUZvcm1hdCgKKyAgICAgICAgICAgICAgICAgICAgYnVuZGxlLmdldFN0cmluZyhSQl9ESVNQTEFZX05BTUVfUEFUVEVSTikpOworICAgICAgICAgICAgLy8gQ29uc3RydWN0IHRoZSBhcmd1bWVudCBhcnJheQorICAgICAgICAgICAgT2JqZWN0W10gYXJncyA9IG5ldyBPYmplY3RbXSB7IG5ldyBJbnRlZ2VyKDIpLCBzdHZbMF0sIHN0dlsxXSB9OworCisgICAgICAgICAgICAvLyBVc2UgZGlzcGxheSBuYW1lcyBmb3IgdGhlIHNjcmlwdHMsIGlmIHRoZXkgZXhpc3QKKyAgICAgICAgICAgIGZvciAoaW50IGo9MTsgajw9MjsgKytqKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgYXJnc1tqXSA9IGJ1bmRsZS5nZXRTdHJpbmcoUkJfU0NSSVBUX0RJU1BMQVlfTkFNRV9QUkVGSVggKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoU3RyaW5nKSBhcmdzW2pdKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkge30KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gRm9ybWF0IGl0IHVzaW5nIHRoZSBwYXR0ZXJuIGluIHRoZSByZXNvdXJjZQorICAgICAgICAgICAgcmV0dXJuIChzdHZbMl0ubGVuZ3RoKCkgPiAwKSA/CisgICAgICAgICAgICAgICAgKGZvcm1hdC5mb3JtYXQoYXJncykgKyAnLycgKyBzdHZbMl0pIDoKKyAgICAgICAgICAgICAgICBmb3JtYXQuZm9ybWF0KGFyZ3MpOworICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZTIpIHt9CisKKyAgICAgICAgLy8gV2Ugc2hvdWxkIG5vdCByZWFjaCB0aGlzIHBvaW50IHVubGVzcyB0aGVyZSBpcyBzb21ldGhpbmcKKyAgICAgICAgLy8gd3Jvbmcgd2l0aCB0aGUgYnVpbGQgb3IgdGhlIFJCX0RJU1BMQVlfTkFNRV9QQVRURVJOIGhhcworICAgICAgICAvLyBiZWVuIGRlbGV0ZWQgZnJvbSB0aGUgcm9vdCBSQl9MT0NBTEVfRUxFTUVOVFMgcmVzb3VyY2UuCisgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgZmlsdGVyIHVzZWQgYnkgdGhpcyB0cmFuc2xpdGVyYXRvciwgb3IgPHR0Pm51bGw8L3R0PgorICAgICAqIGlmIHRoaXMgdHJhbnNsaXRlcmF0b3IgdXNlcyBubyBmaWx0ZXIuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFVuaWNvZGVGaWx0ZXIgZ2V0RmlsdGVyKCkgeworICAgICAgICByZXR1cm4gZmlsdGVyOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoYW5nZXMgdGhlIGZpbHRlciB1c2VkIGJ5IHRoaXMgdHJhbnNsaXRlcmF0b3IuICBJZiB0aGUgZmlsdGVyCisgICAgICogaXMgc2V0IHRvIDx0dD5udWxsPC90dD4gdGhlbiBubyBmaWx0ZXJpbmcgd2lsbCBvY2N1ci4KKyAgICAgKgorICAgICAqIDxwPkNhbGxlcnMgbXVzdCB0YWtlIGNhcmUgaWYgYSB0cmFuc2xpdGVyYXRvciBpcyBpbiB1c2UgYnkKKyAgICAgKiBtdWx0aXBsZSB0aHJlYWRzLiAgVGhlIGZpbHRlciBzaG91bGQgbm90IGJlIGNoYW5nZWQgYnkgb25lCisgICAgICogdGhyZWFkIHdoaWxlIGFub3RoZXIgdGhyZWFkIG1heSBiZSB0cmFuc2xpdGVyYXRpbmcuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RmlsdGVyKFVuaWNvZGVGaWx0ZXIgZmlsdGVyKSB7CisgICAgICAgIHRoaXMuZmlsdGVyID0gZmlsdGVyOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShJRCwgRk9SV0FSRCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIDxjb2RlPlRyYW5zbGl0ZXJhdG9yPC9jb2RlPiBvYmplY3QgZ2l2ZW4gaXRzIElELgorICAgICAqIFRoZSBJRCBtdXN0IGJlIGVpdGhlciBhIHN5c3RlbSB0cmFuc2xpdGVyYXRvciBJRCBvciBhIElEIHJlZ2lzdGVyZWQKKyAgICAgKiB1c2luZyA8Y29kZT5yZWdpc3RlckNsYXNzKCk8L2NvZGU+LgorICAgICAqCisgICAgICogQHBhcmFtIElEIGEgdmFsaWQgSUQsIGFzIGVudW1lcmF0ZWQgYnkgPGNvZGU+Z2V0QXZhaWxhYmxlSURzKCk8L2NvZGU+CisgICAgICogQHJldHVybiBBIDxjb2RlPlRyYW5zbGl0ZXJhdG9yPC9jb2RlPiBvYmplY3Qgd2l0aCB0aGUgZ2l2ZW4gSUQKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgZ2l2ZW4gSUQgaXMgaW52YWxpZC4KKyAgICAgKiBAc2VlICNyZWdpc3RlckNsYXNzCisgICAgICogQHNlZSAjZ2V0QXZhaWxhYmxlSURzCisgICAgICogQHNlZSAjZ2V0SUQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkaXIpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGNhbm9uSUQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFZlY3RvciBsaXN0ID0gbmV3IFZlY3RvcigpOworICAgICAgICBVbmljb2RlU2V0W10gZ2xvYmFsRmlsdGVyID0gbmV3IFVuaWNvZGVTZXRbMV07CisgICAgICAgIGlmICghVHJhbnNsaXRlcmF0b3JJRFBhcnNlci5wYXJzZUNvbXBvdW5kSUQoSUQsIGRpciwgY2Fub25JRCwgbGlzdCwgZ2xvYmFsRmlsdGVyKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBJRCAiICsgSUQpOworICAgICAgICB9CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3JJRFBhcnNlci5pbnN0YW50aWF0ZUxpc3QobGlzdCwgbnVsbCwgLTEpOworCisgICAgICAgIC8vIGFzc2VydChsaXN0LnNpemUoKSA+IDApOworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gbnVsbDsKKyAgICAgICAgc3dpdGNoIChsaXN0LnNpemUoKSkgeworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICB0ID0gKFRyYW5zbGl0ZXJhdG9yKSBsaXN0LmVsZW1lbnRBdCgwKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdCA9IG5ldyBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKGxpc3QpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgdC5zZXRJRChjYW5vbklELnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoZ2xvYmFsRmlsdGVyWzBdICE9IG51bGwpIHsKKyAgICAgICAgICAgIHQuc2V0RmlsdGVyKGdsb2JhbEZpbHRlclswXSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgdHJhbnNsaXRlcmF0b3IgZnJvbSBhIGJhc2ljIElELiAgVGhpcyBpcyBhbiBJRAorICAgICAqIGNvbnRhaW5pbmcgb25seSB0aGUgZm9yd2FyZCBkaXJlY3Rpb24gc291cmNlLCB0YXJnZXQsIGFuZAorICAgICAqIHZhcmlhbnQuCisgICAgICogQHBhcmFtIGlkIGEgYmFzaWMgSUQgb2YgdGhlIGZvcm0gUy1UIG9yIFMtVC9WLgorICAgICAqIEBwYXJhbSBjYW5vbklEIGNhbm9uaWNhbCBJRCB0byBhcHBseSB0byB0aGUgcmVzdWx0LCBvcgorICAgICAqIG51bGwgdG8gbGVhdmUgdGhlIElEIHVuY2hhbmdlZAorICAgICAqIEByZXR1cm4gYSBuZXdseSBjcmVhdGVkIFRyYW5zbGl0ZXJhdG9yIG9yIG51bGwgaWYgdGhlIElEIGlzCisgICAgICogaW52YWxpZC4KKyAgICAgKi8KKyAgICBzdGF0aWMgVHJhbnNsaXRlcmF0b3IgZ2V0QmFzaWNJbnN0YW5jZShTdHJpbmcgaWQsIFN0cmluZyBjYW5vbklEKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gcmVnaXN0cnkuZ2V0KGlkLCBzKTsKKyAgICAgICAgaWYgKHMubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgLy8gYXNzZXJ0KHQ9PTApOworICAgICAgICAgICAgLy8gSW5zdGFudGlhdGUgYW4gYWxpYXMKKyAgICAgICAgICAgIHQgPSBnZXRJbnN0YW5jZShzLnRvU3RyaW5nKCksIEZPUldBUkQpOworICAgICAgICB9CisgICAgICAgIGlmICh0ICE9IG51bGwgJiYgY2Fub25JRCAhPSBudWxsKSB7CisgICAgICAgICAgICB0LnNldElEKGNhbm9uSUQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSA8Y29kZT5UcmFuc2xpdGVyYXRvcjwvY29kZT4gb2JqZWN0IGNvbnN0cnVjdGVkIGZyb20KKyAgICAgKiB0aGUgZ2l2ZW4gcnVsZSBzdHJpbmcuICBUaGlzIHdpbGwgYmUgYSBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvciwKKyAgICAgKiBpZiB0aGUgcnVsZSBzdHJpbmcgY29udGFpbnMgb25seSBydWxlcywgb3IgYQorICAgICAqIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IsIGlmIGl0IGNvbnRhaW5zIElEIGJsb2Nrcywgb3IgYQorICAgICAqIE51bGxUcmFuc2xpdGVyYXRvciwgaWYgaXQgY29udGFpbnMgSUQgYmxvY2tzIHdoaWNoIHBhcnNlIGFzCisgICAgICogZW1wdHkgZm9yIHRoZSBnaXZlbiBkaXJlY3Rpb24uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBUcmFuc2xpdGVyYXRvciBjcmVhdGVGcm9tUnVsZXMoU3RyaW5nIElELCBTdHJpbmcgcnVsZXMsIGludCBkaXIpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IG51bGw7CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3JQYXJzZXIgcGFyc2VyID0gbmV3IFRyYW5zbGl0ZXJhdG9yUGFyc2VyKCk7CisgICAgICAgIHBhcnNlci5wYXJzZShydWxlcywgZGlyKTsKKworICAgICAgICAvLyBOT1RFOiBUaGUgbG9naWMgaGVyZSBtYXRjaGVzIHRoYXQgaW4gVHJhbnNsaXRlcmF0b3JSZWdpc3RyeS4KKyAgICAgICAgaWYgKHBhcnNlci5pZEJsb2NrLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIGlmIChwYXJzZXIuZGF0YSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgLy8gTm8gaWRCbG9jaywgbm8gZGF0YSAtLSB0aGlzIGlzIGp1c3QgYW4KKyAgICAgICAgICAgICAgICAvLyBhbGlhcyBmb3IgTnVsbAorICAgICAgICAgICAgICAgIHQgPSBuZXcgTnVsbFRyYW5zbGl0ZXJhdG9yKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIE5vIGlkQmxvY2ssIGRhdGEgIT0gMCAtLSB0aGlzIGlzIGFuCisgICAgICAgICAgICAgICAgLy8gb3JkaW5hcnkgUkJUX0RBVEEuCisgICAgICAgICAgICAgICAgdCA9IG5ldyBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvcihJRCwgcGFyc2VyLmRhdGEsIG51bGwpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKHBhcnNlci5kYXRhID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAvLyBpZEJsb2NrLCBubyBkYXRhIC0tIHRoaXMgaXMgYW4gYWxpYXMuICBUaGUgSUQgaGFzCisgICAgICAgICAgICAgICAgLy8gYmVlbiBtdW5nZWQgZnJvbSByZXZlcnNlIGludG8gZm9yd2FyZCBtb2RlLCBpZgorICAgICAgICAgICAgICAgIC8vIG5lY2Vzc2FyeSwgc28gaW5zdGFudGlhdGUgdGhlIElEIGluIHRoZSBmb3J3YXJkCisgICAgICAgICAgICAgICAgLy8gZGlyZWN0aW9uLgorICAgICAgICAgICAgICAgIHQgPSBnZXRJbnN0YW5jZShwYXJzZXIuaWRCbG9jayk7CisgICAgICAgICAgICAgICAgaWYgKHQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICB0LnNldElEKElEKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIGlkQmxvY2sgYW5kIGRhdGEgLS0gdGhpcyBpcyBhIGNvbXBvdW5kCisgICAgICAgICAgICAgICAgLy8gUkJUCisgICAgICAgICAgICAgICAgdCA9IG5ldyBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvcigiXyIsIHBhcnNlci5kYXRhLCBudWxsKTsKKyAgICAgICAgICAgICAgICB0ID0gbmV3IENvbXBvdW5kVHJhbnNsaXRlcmF0b3IoSUQsIHBhcnNlci5pZEJsb2NrLCBwYXJzZXIuaWRTcGxpdFBvaW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0KTsKKyAgICAgICAgICAgICAgICBpZiAocGFyc2VyLmNvbXBvdW5kRmlsdGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgdC5zZXRGaWx0ZXIocGFyc2VyLmNvbXBvdW5kRmlsdGVyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdDsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIHRvUnVsZXMoYm9vbGVhbiBlc2NhcGVVbnByaW50YWJsZSkgeworICAgICAgICByZXR1cm4gYmFzZVRvUnVsZXMoZXNjYXBlVW5wcmludGFibGUpOworICAgIH0KKworICAgIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgYmFzZVRvUnVsZXMoYm9vbGVhbiBlc2NhcGVVbnByaW50YWJsZSkgeworICAgICAgICAvLyBUaGUgYmFzZSBjbGFzcyBpbXBsZW1lbnRhdGlvbiBvZiB0b1J1bGVzIG11bmdlcyB0aGUgSUQgaW50bworICAgICAgICAvLyB0aGUgY29ycmVjdCBmb3JtYXQuICBUaGF0IGlzOiBmb28gPT4gOjpmb28KKyAgICAgICAgLy8gS0VFUCBpbiBzeW5jIHdpdGggcmJ0X3BhcnMKKyAgICAgICAgaWYgKGVzY2FwZVVucHJpbnRhYmxlKSB7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcnVsZXNTb3VyY2UgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBTdHJpbmcgaWQgPSBnZXRJRCgpOworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPGlkLmxlbmd0aCgpOykgeworICAgICAgICAgICAgICAgIGludCBjID0gVVRGMTYuY2hhckF0KGlkLCBpKTsKKyAgICAgICAgICAgICAgICBpZiAoIVV0aWxpdHkuZXNjYXBlVW5wcmludGFibGUocnVsZXNTb3VyY2UsIGMpKSB7CisgICAgICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZChydWxlc1NvdXJjZSwgYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcnVsZXNTb3VyY2UuaW5zZXJ0KDAsICI6OiIpOworICAgICAgICAgICAgcnVsZXNTb3VyY2UuYXBwZW5kKElEX0RFTElNKTsKKyAgICAgICAgICAgIHJldHVybiBydWxlc1NvdXJjZS50b1N0cmluZygpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAiOjoiICsgZ2V0SUQoKSArIElEX0RFTElNOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHNldCBvZiBhbGwgY2hhcmFjdGVycyB0aGF0IG1heSBiZSBtb2RpZmllZCBpbiB0aGUKKyAgICAgKiBpbnB1dCB0ZXh0IGJ5IHRoaXMgVHJhbnNsaXRlcmF0b3IuICBUaGlzIGluY29ycG9yYXRlcyB0aGlzCisgICAgICogb2JqZWN0J3MgY3VycmVudCBmaWx0ZXI7IGlmIHRoZSBmaWx0ZXIgaXMgY2hhbmdlZCwgdGhlIHJldHVybgorICAgICAqIHZhbHVlIG9mIHRoaXMgZnVuY3Rpb24gd2lsbCBjaGFuZ2UuICBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbgorICAgICAqIHJldHVybnMgYW4gZW1wdHkgc2V0LiAgU29tZSBzdWJjbGFzc2VzIG1heSBvdmVycmlkZSB7QGxpbmsKKyAgICAgKiAjaGFuZGxlR2V0U291cmNlU2V0fSB0byByZXR1cm4gYSBtb3JlIHByZWNpc2UgcmVzdWx0LiAgVGhlCisgICAgICogcmV0dXJuIHJlc3VsdCBpcyBhcHByb3hpbWF0ZSBpbiBhbnkgY2FzZSBhbmQgaXMgaW50ZW5kZWQgZm9yCisgICAgICogdXNlIGJ5IHRlc3RzLCB0b29scywgb3IgdXRpbGl0aWVzLgorICAgICAqIEBzZWUgI2dldFRhcmdldFNldAorICAgICAqIEBzZWUgI2hhbmRsZUdldFNvdXJjZVNldAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBVbmljb2RlU2V0IGdldFNvdXJjZVNldCgpIHsKKyAgICAgICAgVW5pY29kZVNldCBzZXQgPSBoYW5kbGVHZXRTb3VyY2VTZXQoKTsKKyAgICAgICAgaWYgKGZpbHRlciAhPSBudWxsKSB7CisgICAgICAgICAgICBVbmljb2RlU2V0IGZpbHRlclNldDsKKyAgICAgICAgICAgIC8vIE1vc3QsIGJ1dCBub3QgYWxsIGZpbHRlcnMgd2lsbCBiZSBVbmljb2RlU2V0cy4gIE9wdGltaXplIGZvcgorICAgICAgICAgICAgLy8gdGhlIGhpZ2gtcnVubmVyIGNhc2UuCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGZpbHRlclNldCA9IChVbmljb2RlU2V0KSBmaWx0ZXI7CisgICAgICAgICAgICB9IGNhdGNoIChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGZpbHRlclNldCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgICAgICAgICAgZmlsdGVyLmFkZE1hdGNoU2V0VG8oZmlsdGVyU2V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNldC5yZXRhaW5BbGwoZmlsdGVyU2V0KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2V0OworICAgIH0KKworICAgIC8qKgorICAgICAqIEZyYW1ld29yayBtZXRob2QgdGhhdCByZXR1cm5zIHRoZSBzZXQgb2YgYWxsIGNoYXJhY3RlcnMgdGhhdAorICAgICAqIG1heSBiZSBtb2RpZmllZCBpbiB0aGUgaW5wdXQgdGV4dCBieSB0aGlzIFRyYW5zbGl0ZXJhdG9yLAorICAgICAqIGlnbm9yaW5nIHRoZSBlZmZlY3Qgb2YgdGhpcyBvYmplY3QncyBmaWx0ZXIuICBUaGUgYmFzZSBjbGFzcworICAgICAqIGltcGxlbWVudGF0aW9uIHJldHVybnMgdGhlIGVtcHR5IHNldC4gIFN1YmNsYXNzZXMgdGhhdCB3aXNoIHRvCisgICAgICogaW1wbGVtZW50IHRoaXMgc2hvdWxkIG92ZXJyaWRlIHRoaXMgbWV0aG9kLgorICAgICAqIEByZXR1cm4gdGhlIHNldCBvZiBjaGFyYWN0ZXJzIHRoYXQgdGhpcyB0cmFuc2xpdGVyYXRvciBtYXkKKyAgICAgKiBtb2RpZnkuICBUaGUgc2V0IG1heSBiZSBtb2RpZmllZCwgc28gc3ViY2xhc3NlcyBzaG91bGQgcmV0dXJuIGEKKyAgICAgKiBuZXdseS1jcmVhdGVkIG9iamVjdC4KKyAgICAgKiBAc2VlICNnZXRTb3VyY2VTZXQKKyAgICAgKiBAc2VlICNnZXRUYXJnZXRTZXQKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgVW5pY29kZVNldCBoYW5kbGVHZXRTb3VyY2VTZXQoKSB7CisgICAgICAgIHJldHVybiBuZXcgVW5pY29kZVNldCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHNldCBvZiBhbGwgY2hhcmFjdGVycyB0aGF0IG1heSBiZSBnZW5lcmF0ZWQgYXMKKyAgICAgKiByZXBsYWNlbWVudCB0ZXh0IGJ5IHRoaXMgdHJhbnNsaXRlcmF0b3IuICBUaGUgZGVmYXVsdAorICAgICAqIGltcGxlbWVudGF0aW9uIHJldHVybnMgdGhlIGVtcHR5IHNldC4gIFNvbWUgc3ViY2xhc3NlcyBtYXkKKyAgICAgKiBvdmVycmlkZSB0aGlzIG1ldGhvZCB0byByZXR1cm4gYSBtb3JlIHByZWNpc2UgcmVzdWx0LiAgVGhlCisgICAgICogcmV0dXJuIHJlc3VsdCBpcyBhcHByb3hpbWF0ZSBpbiBhbnkgY2FzZSBhbmQgaXMgaW50ZW5kZWQgZm9yCisgICAgICogdXNlIGJ5IHRlc3RzLCB0b29scywgb3IgdXRpbGl0aWVzIHJlcXVpcmluZyBzdWNoCisgICAgICogbWV0YS1pbmZvcm1hdGlvbi4KKyAgICAgKiBAc2VlICNnZXRUYXJnZXRTZXQKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldCBnZXRUYXJnZXRTZXQoKSB7CisgICAgICAgIHJldHVybiBuZXcgVW5pY29kZVNldCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhpcyB0cmFuc2xpdGVyYXRvcidzIGludmVyc2UuICBTZWUgdGhlIGNsYXNzCisgICAgICogZG9jdW1lbnRhdGlvbiBmb3IgZGV0YWlscy4gIFRoaXMgaW1wbGVtZW50YXRpb24gc2ltcGx5IGludmVydHMKKyAgICAgKiB0aGUgdHdvIGVudGl0aWVzIGluIHRoZSBJRCBhbmQgYXR0ZW1wdHMgdG8gcmV0cmlldmUgdGhlCisgICAgICogcmVzdWx0aW5nIHRyYW5zbGl0ZXJhdG9yLiAgVGhhdCBpcywgaWYgPGNvZGU+Z2V0SUQoKTwvY29kZT4KKyAgICAgKiByZXR1cm5zICJBLUIiLCB0aGVuIHRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuIHRoZSByZXN1bHQgb2YKKyAgICAgKiA8Y29kZT5nZXRJbnN0YW5jZSgiQi1BIik8L2NvZGU+LCBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiB0aGF0CisgICAgICogY2FsbCBmYWlscy4KKyAgICAgKgorICAgICAqIDxwPlN1YmNsYXNzZXMgd2l0aCBrbm93bGVkZ2Ugb2YgdGhlaXIgaW52ZXJzZSBtYXkgd2lzaCB0bworICAgICAqIG92ZXJyaWRlIHRoaXMgbWV0aG9kLgorICAgICAqCisgICAgICogQHJldHVybiBhIHRyYW5zbGl0ZXJhdG9yIHRoYXQgaXMgYW4gaW52ZXJzZSwgbm90IG5lY2Vzc2FyaWx5CisgICAgICogZXhhY3QsIG9mIHRoaXMgdHJhbnNsaXRlcmF0b3IsIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIG5vIHN1Y2gKKyAgICAgKiB0cmFuc2xpdGVyYXRvciBpcyByZWdpc3RlcmVkLgorICAgICAqIEBzZWUgI3JlZ2lzdGVyQ2xhc3MKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgVHJhbnNsaXRlcmF0b3IgZ2V0SW52ZXJzZSgpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKElELCBSRVZFUlNFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlcnMgYSBzdWJjbGFzcyBvZiA8Y29kZT5UcmFuc2xpdGVyYXRvcjwvY29kZT4gd2l0aCB0aGUKKyAgICAgKiBzeXN0ZW0uICBUaGlzIHN1YmNsYXNzIG11c3QgaGF2ZSBhIHB1YmxpYyBjb25zdHJ1Y3RvciB0YWtpbmcgbm8KKyAgICAgKiBhcmd1bWVudHMuICBXaGVuIHRoYXQgY29uc3RydWN0b3IgaXMgY2FsbGVkLCB0aGUgcmVzdWx0aW5nCisgICAgICogb2JqZWN0IG11c3QgcmV0dXJuIHRoZSA8Y29kZT5JRDwvY29kZT4gcGFzc2VkIHRvIHRoaXMgbWV0aG9kIGlmCisgICAgICogaXRzIDxjb2RlPmdldElEKCk8L2NvZGU+IG1ldGhvZCBpcyBjYWxsZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gSUQgdGhlIHJlc3VsdCBvZiA8Y29kZT5nZXRJRCgpPC9jb2RlPiBmb3IgdGhpcworICAgICAqIHRyYW5zbGl0ZXJhdG9yCisgICAgICogQHBhcmFtIHRyYW5zQ2xhc3MgYSBzdWJjbGFzcyBvZiA8Y29kZT5UcmFuc2xpdGVyYXRvcjwvY29kZT4KKyAgICAgKiBAc2VlICN1bnJlZ2lzdGVyCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQ2xhc3MoU3RyaW5nIElELCBDbGFzcyB0cmFuc0NsYXNzLCBTdHJpbmcgZGlzcGxheU5hbWUpIHsKKyAgICAgICAgcmVnaXN0cnkucHV0KElELCB0cmFuc0NsYXNzLCB0cnVlKTsKKyAgICAgICAgaWYgKGRpc3BsYXlOYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgIGRpc3BsYXlOYW1lQ2FjaGUucHV0KG5ldyBDYXNlSW5zZW5zaXRpdmVTdHJpbmcoSUQpLCBkaXNwbGF5TmFtZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlciBhIGZhY3Rvcnkgb2JqZWN0IHdpdGggdGhlIGdpdmVuIElELiAgVGhlIGZhY3RvcnkKKyAgICAgKiBtZXRob2Qgc2hvdWxkIHJldHVybiBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgZ2l2ZW4gdHJhbnNsaXRlcmF0b3IuCisgICAgICogQHBhcmFtIElEIHRoZSBJRCBvZiB0aGlzIHRyYW5zbGl0ZXJhdG9yCisgICAgICogQHBhcmFtIGZhY3RvcnkgdGhlIGZhY3Rvcnkgb2JqZWN0CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHJlZ2lzdGVyRmFjdG9yeShTdHJpbmcgSUQsIEZhY3RvcnkgZmFjdG9yeSkgeworICAgICAgICByZWdpc3RyeS5wdXQoSUQsIGZhY3RvcnksIHRydWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlZ2lzdGVyIGEgVHJhbnNsaXRlcmF0b3Igb2JqZWN0IHdpdGggdGhlIGdpdmVuIElELgorICAgICAqIEBwYXJhbSBJRCB0aGUgSUQgb2YgdGhpcyB0cmFuc2xpdGVyYXRvcgorICAgICAqIEBwYXJhbSB0cmFucyB0aGUgVHJhbnNsaXRlcmF0b3Igb2JqZWN0CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHJlZ2lzdGVySW5zdGFuY2UoVHJhbnNsaXRlcmF0b3IgdHJhbnMpIHsKKyAgICAgICAgcmVnaXN0cnkucHV0KHRyYW5zLmdldElEKCksIHRyYW5zLCB0cnVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlciBhIFRyYW5zbGl0ZXJhdG9yIG9iamVjdCB3aXRoIHRoZSBnaXZlbiBJRC4KKyAgICAgKiBAcGFyYW0gSUQgdGhlIElEIG9mIHRoaXMgdHJhbnNsaXRlcmF0b3IKKyAgICAgKiBAcGFyYW0gdHJhbnMgdGhlIFRyYW5zbGl0ZXJhdG9yIG9iamVjdAorICAgICAqLworICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVySW5zdGFuY2UoVHJhbnNsaXRlcmF0b3IgdHJhbnMsIGJvb2xlYW4gdmlzaWJsZSkgeworICAgICAgICByZWdpc3RyeS5wdXQodHJhbnMuZ2V0SUQoKSwgdHJhbnMsIHZpc2libGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlZ2lzdGVyIHR3byB0YXJnZXRzIGFzIGJlaW5nIGludmVyc2VzIG9mIG9uZSBhbm90aGVyLiAgRm9yCisgICAgICogZXhhbXBsZSwgY2FsbGluZyByZWdpc3RlclNwZWNpYWxJbnZlcnNlKCJORkMiLCAiTkZEIiwgdHJ1ZSkgY2F1c2VzCisgICAgICogVHJhbnNsaXRlcmF0b3IgdG8gZm9ybSB0aGUgZm9sbG93aW5nIGludmVyc2UgcmVsYXRpb25zaGlwczoKKyAgICAgKgorICAgICAqIDxwcmU+TkZDID0+IE5GRAorICAgICAqIEFueS1ORkMgPT4gQW55LU5GRAorICAgICAqIE5GRCA9PiBORkMKKyAgICAgKiBBbnktTkZEID0+IEFueS1ORkM8L3ByZT4KKyAgICAgKgorICAgICAqIChXaXRob3V0IHRoZSBzcGVjaWFsIGludmVyc2UgcmVnaXN0cmF0aW9uLCB0aGUgaW52ZXJzZSBvZiBORkMKKyAgICAgKiB3b3VsZCBiZSBORkMtQW55LikgIE5vdGUgdGhhdCBORkQgaXMgc2hvcnRoYW5kIGZvciBBbnktTkZELCBidXQKKyAgICAgKiB0aGF0IHRoZSBwcmVzZW5jZSBvciBhYnNlbmNlIG9mICJBbnktIiBpcyBwcmVzZXJ2ZWQuCisgICAgICoKKyAgICAgKiA8cD5UaGUgcmVsYXRpb25zaGlwIGlzIHN5bW1ldHJpY2FsOyByZWdpc3RlcmluZyAoYSwgYikgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIHJlZ2lzdGVyaW5nIChiLCBhKS4KKyAgICAgKgorICAgICAqIDxwPlRoZSByZWxldmFudCBJRHMgbXVzdCBzdGlsbCBiZSByZWdpc3RlcmVkIHNlcGFyYXRlbHkgYXMKKyAgICAgKiBmYWN0b3JpZXMgb3IgY2xhc3Nlcy4KKyAgICAgKgorICAgICAqIDxwPk9ubHkgdGhlIHRhcmdldHMgYXJlIHNwZWNpZmllZC4gIFNwZWNpYWwgaW52ZXJzZXMgYWx3YXlzCisgICAgICogaGF2ZSB0aGUgZm9ybSBBbnktVGFyZ2V0MSA8PT4gQW55LVRhcmdldDIuICBUaGUgdGFyZ2V0IHNob3VsZAorICAgICAqIGhhdmUgY2Fub25pY2FsIGNhc2luZyAodGhlIGNhc2luZyBkZXNpcmVkIHRvIGJlIHByb2R1Y2VkIHdoZW4KKyAgICAgKiBhbiBpbnZlcnNlIGlzIGZvcm1lZCkgYW5kIHNob3VsZCBjb250YWluIG5vIHdoaXRlc3BhY2Ugb3Igb3RoZXIKKyAgICAgKiBleHRyYW5lb3VzIGNoYXJhY3RlcnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHRoZSB0YXJnZXQgYWdhaW5zdCB3aGljaCB0byByZWdpc3RlciB0aGUgaW52ZXJzZQorICAgICAqIEBwYXJhbSBpbnZlcnNlVGFyZ2V0IHRoZSBpbnZlcnNlIG9mIHRhcmdldCwgdGhhdCBpcworICAgICAqIEFueS10YXJnZXQuZ2V0SW52ZXJzZSgpID0+IEFueS1pbnZlcnNlVGFyZ2V0CisgICAgICogQHBhcmFtIGJpZGlyZWN0aW9uYWwgaWYgdHJ1ZSwgcmVnaXN0ZXIgdGhlIHJldmVyc2UgcmVsYXRpb24KKyAgICAgKiBhcyB3ZWxsLCB0aGF0IGlzLCBBbnktaW52ZXJzZVRhcmdldC5nZXRJbnZlcnNlKCkgPT4gQW55LXRhcmdldAorICAgICAqLworICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyU3BlY2lhbEludmVyc2UoU3RyaW5nIHRhcmdldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBpbnZlcnNlVGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBiaWRpcmVjdGlvbmFsKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9ySURQYXJzZXIucmVnaXN0ZXJTcGVjaWFsSW52ZXJzZSh0YXJnZXQsIGludmVyc2VUYXJnZXQsIGJpZGlyZWN0aW9uYWwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFVucmVnaXN0ZXJzIGEgdHJhbnNsaXRlcmF0b3Igb3IgY2xhc3MuICBUaGlzIG1heSBiZSBlaXRoZXIKKyAgICAgKiBhIHN5c3RlbSB0cmFuc2xpdGVyYXRvciBvciBhIHVzZXIgdHJhbnNsaXRlcmF0b3Igb3IgY2xhc3MuCisgICAgICoKKyAgICAgKiBAcGFyYW0gSUQgdGhlIElEIG9mIHRoZSB0cmFuc2xpdGVyYXRvciBvciBjbGFzcworICAgICAqIEBzZWUgI3JlZ2lzdGVyQ2xhc3MKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgdW5yZWdpc3RlcihTdHJpbmcgSUQpIHsKKyAgICAgICAgZGlzcGxheU5hbWVDYWNoZS5yZW1vdmUobmV3IENhc2VJbnNlbnNpdGl2ZVN0cmluZyhJRCkpOworICAgICAgICByZWdpc3RyeS5yZW1vdmUoSUQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYW4gZW51bWVyYXRpb24gb3ZlciB0aGUgcHJvZ3JhbW1hdGljIG5hbWVzIG9mIHJlZ2lzdGVyZWQKKyAgICAgKiA8Y29kZT5UcmFuc2xpdGVyYXRvcjwvY29kZT4gb2JqZWN0cy4gIFRoaXMgaW5jbHVkZXMgYm90aCBzeXN0ZW0KKyAgICAgKiB0cmFuc2xpdGVyYXRvcnMgYW5kIHVzZXIgdHJhbnNsaXRlcmF0b3JzIHJlZ2lzdGVyZWQgdXNpbmcKKyAgICAgKiA8Y29kZT5yZWdpc3RlckNsYXNzKCk8L2NvZGU+LiAgVGhlIGVudW1lcmF0ZWQgbmFtZXMgbWF5IGJlCisgICAgICogcGFzc2VkIHRvIDxjb2RlPmdldEluc3RhbmNlKCk8L2NvZGU+LgorICAgICAqCisgICAgICogQHJldHVybiBBbiA8Y29kZT5FbnVtZXJhdGlvbjwvY29kZT4gb3ZlciA8Y29kZT5TdHJpbmc8L2NvZGU+IG9iamVjdHMKKyAgICAgKiBAc2VlICNnZXRJbnN0YW5jZQorICAgICAqIEBzZWUgI3JlZ2lzdGVyQ2xhc3MKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEVudW1lcmF0aW9uIGdldEF2YWlsYWJsZUlEcygpIHsKKyAgICAgICAgcmV0dXJuIHJlZ2lzdHJ5LmdldEF2YWlsYWJsZUlEcygpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRW51bWVyYXRpb24gZ2V0QXZhaWxhYmxlU291cmNlcygpIHsKKyAgICAgICAgcmV0dXJuIHJlZ2lzdHJ5LmdldEF2YWlsYWJsZVNvdXJjZXMoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEVudW1lcmF0aW9uIGdldEF2YWlsYWJsZVRhcmdldHMoU3RyaW5nIHNvdXJjZSkgeworICAgICAgICByZXR1cm4gcmVnaXN0cnkuZ2V0QXZhaWxhYmxlVGFyZ2V0cyhzb3VyY2UpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRW51bWVyYXRpb24gZ2V0QXZhaWxhYmxlVmFyaWFudHMoU3RyaW5nIHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnZXQpIHsKKyAgICAgICAgcmV0dXJuIHJlZ2lzdHJ5LmdldEF2YWlsYWJsZVZhcmlhbnRzKHNvdXJjZSwgdGFyZ2V0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNZXRob2QgZm9yIHN1YmNsYXNzZXMgdG8gdXNlIHRvIG9idGFpbiBhIGNoYXJhY3RlciBpbiB0aGUgZ2l2ZW4KKyAgICAgKiBzdHJpbmcsIHdpdGggZmlsdGVyaW5nLiAgSWYgdGhlIGNoYXJhY3RlciBhdCB0aGUgZ2l2ZW4gb2Zmc2V0CisgICAgICogaXMgZXhjbHVkZWQgYnkgdGhpcyB0cmFuc2xpdGVyYXRvcidzIGZpbHRlciwgdGhlbiBVK0ZGRkUgaXMgcmV0dXJuZWQuCisgICAgICoKKyAgICAgKiA8cD48Yj5Ob3RlOjwvYj4gTW9zdCBzdWJjbGFzc2VzIHRoYXQgaW1wbGVtZW50CisgICAgICogaGFuZGxlVHJhbnNsaXRlcmF0b3IoKSB3aWxsIDxlbT5ub3Q8L2VtPiB3YW50IHRvIHVzZSB0aGlzCisgICAgICogbWV0aG9kLCBzaW5jZSBjaGFyYWN0ZXJzIHRoZXkgc2VlIGFyZSBhbHJlYWR5IGZpbHRlcmVkLgorICAgICAqCisgICAgICogQGRlcHJlY2F0ZWQgdGhlIG5ldyBhcmNoaXRlY3R1cmUgcHJvdmlkZXMgZmlsdGVyaW5nIGF0IHRoZSB0b3AKKyAgICAgKiBsZXZlbC4gIFRoaXMgbWV0aG9kIHdpbGwgYmUgcmVtb3ZlZCBEZWMgMzEgMjAwMS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgY2hhciBmaWx0ZXJlZENoYXJBdChSZXBsYWNlYWJsZSB0ZXh0LCBpbnQgaSkgeworICAgICAgICBjaGFyIGM7CisgICAgICAgIFVuaWNvZGVGaWx0ZXIgZmlsdGVyID0gZ2V0RmlsdGVyKCk7CisgICAgICAgIHJldHVybiAoZmlsdGVyID09IG51bGwpID8gdGV4dC5jaGFyQXQoaSkgOgorICAgICAgICAgICAgKGZpbHRlci5jb250YWlucyhjID0gdGV4dC5jaGFyQXQoaSkpID8gYyA6ICdcdUZGRkUnKTsKKyAgICB9CisKKyAgICBzdGF0aWMgeworICAgICAgICByZWdpc3RyeSA9IG5ldyBUcmFuc2xpdGVyYXRvclJlZ2lzdHJ5KCk7CisKKyAgICAgICAgLy8gVGhlIGRpc3BsYXkgbmFtZSBjYWNoZSBzdGFydHMgb3V0IGVtcHR5CisgICAgICAgIGRpc3BsYXlOYW1lQ2FjaGUgPSBuZXcgSGFzaHRhYmxlKCk7CisKKyAgICAgICAgLy8gUmVhZCB0aGUgaW5kZXggZmlsZSBhbmQgcG9wdWxhdGUgdGhlIHJlZ2lzdHJ5LgorICAgICAgICAvLyBFYWNoIGxpbmUgb2YgdGhlIGluZGV4IGZpbGUgaXMgZWl0aGVyIGJsYW5rLCBhICcjJyBjb21tZW50LAorICAgICAgICAvLyBvciBhIGNvbG9uLWRlbGltaXRlZCBsaW5lLiAgSW4gdGhlIGxhdHRlciBjYXNlIHRoZSBmaXJzdAorICAgICAgICAvLyBmaWVsZCBpcyB0aGUgSUQgYmVpbmcgZGVmaW5lZC4gIFRoZSBzZWNvbmQgZmllbGQgaXMgb25lIG9mCisgICAgICAgIC8vIHRocmVlIHN0cmluZ3M6ICJmaWxlIiwgImludGVybmFsIiwgb3IgImFsaWFzIi4gIFJlbWFpbmluZworICAgICAgICAvLyBmaWVsZHMgdmFyeSBhY2NvcmRpbmcgdGhlIHZhbHVlIGZvIHRoZSBzZWNvbmQgZmllbGQuICBTZWUKKyAgICAgICAgLy8gdGhlIGluZGV4IGZpbGUgaXRzZWxmIGZvciBmdXJ0aGVyIGRvY3VtZW50YXRpb24uCisgICAgICAgIFJlc291cmNlUmVhZGVyIHIgPSBuZXcgUmVzb3VyY2VSZWFkZXIoIlRyYW5zbGl0ZXJhdG9yX2luZGV4LnR4dCIpOworICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICBTdHJpbmcgbGluZSA9IG51bGw7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGxpbmUgPSByLnJlYWRMaW5lKCk7CisgICAgICAgICAgICB9IGNhdGNoIChqYXZhLmlvLklPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiQ2FuJ3QgcmVhZCBUcmFuc2xpdGVyYXRvcl9pbmRleC50eHQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChsaW5lID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgLy8gU2tpcCBvdmVyIHdoaXRlc3BhY2UKKyAgICAgICAgICAgICAgICBpbnQgcG9zID0gMDsKKyAgICAgICAgICAgICAgICB3aGlsZSAocG9zIDwgbGluZS5sZW5ndGgoKSAmJgorICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShsaW5lLmNoYXJBdChwb3MpKSkgeworICAgICAgICAgICAgICAgICAgICArK3BvczsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gSWdub3JlIGJsYW5rIGxpbmVzIGFuZCBjb21tZW50cworICAgICAgICAgICAgICAgIGlmIChwb3MgPT0gbGluZS5sZW5ndGgoKSB8fCBsaW5lLmNoYXJBdChwb3MpID09ICcjJykgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gUGFyc2UgY29sb24tZGVsaW1pdGVkIGxpbmUKKyAgICAgICAgICAgICAgICBpbnQgY29sb24gPSBsaW5lLmluZGV4T2YoJzonLCBwb3MpOworICAgICAgICAgICAgICAgIFN0cmluZyBJRCA9IGxpbmUuc3Vic3RyaW5nKHBvcywgY29sb24pOworICAgICAgICAgICAgICAgIHBvcyA9IGNvbG9uKzE7CisgICAgICAgICAgICAgICAgY29sb24gPSBsaW5lLmluZGV4T2YoJzonLCBwb3MpOworICAgICAgICAgICAgICAgIFN0cmluZyB0eXBlID0gbGluZS5zdWJzdHJpbmcocG9zLCBjb2xvbik7CisgICAgICAgICAgICAgICAgcG9zID0gY29sb24rMTsKKworICAgICAgICAgICAgICAgIGlmICh0eXBlLmVxdWFscygiZmlsZSIpIHx8IHR5cGUuZXF1YWxzKCJpbnRlcm5hbCIpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFJlc3Qgb2YgbGluZSBpcyA8cmVzb3VyY2U+OjxlbmNvZGluZz46PGRpcmVjdGlvbj4KKyAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgcG9zICAgICAgIGNvbG9uICAgICAgYzIKKyAgICAgICAgICAgICAgICAgICAgY29sb24gPSBsaW5lLmluZGV4T2YoJzonLCBwb3MpOworICAgICAgICAgICAgICAgICAgICBpbnQgYzIgPSBsaW5lLmluZGV4T2YoJzonLCBjb2xvbisxKTsKKyAgICAgICAgICAgICAgICAgICAgaW50IGRpcjsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChsaW5lLmNoYXJBdChjMisxKSkgeworICAgICAgICAgICAgICAgICAgICBjYXNlICdGJzoKKyAgICAgICAgICAgICAgICAgICAgICAgIGRpciA9IEZPUldBUkQ7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAnUic6CisgICAgICAgICAgICAgICAgICAgICAgICBkaXIgPSBSRVZFUlNFOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiQ2FuJ3QgcGFyc2UgbGluZTogIiArIGxpbmUpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJlZ2lzdHJ5LnB1dChJRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUuc3Vic3RyaW5nKHBvcywgY29sb24pLCAvLyByZXNvdXJjZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZS5zdWJzdHJpbmcoY29sb24rMSwgYzIpLCAvLyBlbmNvZGluZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXR5cGUuZXF1YWxzKCJpbnRlcm5hbCIpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUuZXF1YWxzKCJhbGlhcyIpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFJlc3Qgb2YgbGluZSBpcyB0aGUgPGdldEluc3RhbmNlQXJnPgorICAgICAgICAgICAgICAgICAgICByZWdpc3RyeS5wdXQoSUQsIGxpbmUuc3Vic3RyaW5nKHBvcyksIHRydWUpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFVua25vd24gdHlwZQorICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiQ2FuJ3QgcGFyc2UgbGluZTogIiArIGxpbmUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJDYW4ndCBwYXJzZSBsaW5lOiAiICsgbGluZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZWdpc3RlclNwZWNpYWxJbnZlcnNlKE51bGxUcmFuc2xpdGVyYXRvci5TSE9SVF9JRCwgTnVsbFRyYW5zbGl0ZXJhdG9yLlNIT1JUX0lELCBmYWxzZSk7CisKKyAgICAgICAgLy8gUmVnaXN0ZXIgbm9uLXJ1bGUtYmFzZWQgdHJhbnNsaXRlcmF0b3JzCisgICAgICAgIHJlZ2lzdGVyQ2xhc3MoTnVsbFRyYW5zbGl0ZXJhdG9yLl9JRCwKKyAgICAgICAgICAgICAgICAgICAgICBOdWxsVHJhbnNsaXRlcmF0b3IuY2xhc3MsIG51bGwpOworICAgICAgICBSZW1vdmVUcmFuc2xpdGVyYXRvci5yZWdpc3RlcigpOworICAgICAgICBFc2NhcGVUcmFuc2xpdGVyYXRvci5yZWdpc3RlcigpOworICAgICAgICBVbmVzY2FwZVRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyKCk7CisgICAgICAgIExvd2VyY2FzZVRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyKCk7CisgICAgICAgIFVwcGVyY2FzZVRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyKCk7CisgICAgICAgIFRpdGxlY2FzZVRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyKCk7CisgICAgICAgIFVuaWNvZGVOYW1lVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXIoKTsKKyAgICAgICAgTmFtZVVuaWNvZGVUcmFuc2xpdGVyYXRvci5yZWdpc3RlcigpOworICAgICAgICBOb3JtYWxpemF0aW9uVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXIoKTsKKyAgICAgICAgQnJlYWtUcmFuc2xpdGVyYXRvci5yZWdpc3RlcigpOworICAgICAgICBBbnlUcmFuc2xpdGVyYXRvci5yZWdpc3RlcigpOyAvLyBkbyB0aGlzIGxhc3QhCisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlIGZhY3RvcnkgaW50ZXJmYWNlIGZvciB0cmFuc2xpdGVyYXRvcnMuICBUcmFuc2xpdGVyYXRvcgorICAgICAqIHN1YmNsYXNzZXMgY2FuIHJlZ2lzdGVyIGZhY3Rvcnkgb2JqZWN0cyBmb3IgSURzIHVzaW5nIHRoZQorICAgICAqIHJlZ2lzdGVyRmFjdG9yeSgpIG1ldGhvZCBvZiBUcmFuc2xpdGVyYXRvci4gIFdoZW4gaW52b2tlZCwgdGhlCisgICAgICogZmFjdG9yeSBvYmplY3Qgd2lsbCBiZSBwYXNzZWQgdGhlIElEIGJlaW5nIGluc3RhbnRpYXRlZC4gIFRoaXMKKyAgICAgKiBtYWtlcyBpdCBwb3NzaWJsZSB0byByZWdpc3RlciBvbmUgZmFjdG9yeSBtZXRob2QgdG8gbW9yZSB0aGFuCisgICAgICogb25lIElELCBvciBmb3IgYSBmYWN0b3J5IG1ldGhvZCB0byBwYXJhbWV0ZXJpemUgaXRzIHJlc3VsdAorICAgICAqIGJhc2VkIG9uIHRoZSB2YXJpYW50LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50ZXJmYWNlIEZhY3RvcnkgeworICAgICAgICBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1RyYW5zbGl0ZXJhdG9ySURQYXJzZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1RyYW5zbGl0ZXJhdG9ySURQYXJzZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40OTUyZjdkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNsaXRlcmF0b3JJRFBhcnNlci5qYXZhCkBAIC0wLDAgKzEsNzkyIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoYykgMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbgorKiAgIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9uCisqICAgMDEvMTQvMjAwMiAgYWxpdSAgICAgICAgQ3JlYXRpb24uCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhc2VJbnNlbnNpdGl2ZVN0cmluZzsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworCisvKioKKyAqIFBhcnNpbmcgY29tcG9uZW50IGZvciB0cmFuc2xpdGVyYXRvciBJRHMuICBUaGlzIGNsYXNzIGNvbnRhaW5zIG9ubHkKKyAqIHN0YXRpYyBtZW1iZXJzOyBpdCBjYW5ub3QgYmUgaW5zdGFudGlhdGVkLiAgTWV0aG9kcyBpbiB0aGlzIGNsYXNzCisgKiBwYXJzZSB2YXJpb3VzIElEIGZvcm1hdHMsIGluY2x1ZGluZyB0aGUgZm9sbG93aW5nOgorICoKKyAqIEEgYmFzaWMgSUQsIHdoaWNoIGNvbnRhaW5zIHNvdXJjZSwgdGFyZ2V0LCBhbmQgdmFyaWFudCwgYnV0IG5vCisgKiBmaWx0ZXIgYW5kIG5vIGV4cGxpY2l0IGludmVyc2UuICBFeGFtcGxlcyBpbmNsdWRlCisgKiAiTGF0aW4tR3JlZWsvVU5HRUdOIiBhbmQgIk51bGwiLgorICoKKyAqIEEgc2luZ2xlIElELCB3aGljaCBpcyBhIGJhc2ljIElEIHBsdXMgb3B0aW9uYWwgZmlsdGVyIGFuZCBvcHRpb25hbAorICogZXhwbGljaXQgaW52ZXJzZS4gIEV4YW1wbGVzIGluY2x1ZGUgIlthLXpBLVpdIExhdGluLUdyZWVrIiBhbmQKKyAqICJMb3dlciAoVXBwZXIpIi4KKyAqCisgKiBBIGNvbXBvdW5kIElELCB3aGljaCBpcyBhIHNlcXVlbmNlIG9mIG9uZSBvciBtb3JlIHNpbmdsZSBJRHMsCisgKiBzZXBhcmF0ZWQgYnkgc2VtaWNvbG9ucywgd2l0aCBvcHRpb25hbCBmb3J3YXJkIGFuZCByZXZlcnNlIGdsb2JhbAorICogZmlsdGVycy4gIFRoZSBnbG9iYWwgZmlsdGVycyBhcmUgVW5pY29kZVNldCBwYXR0ZXJucyBwcmVwZW5kZWQgb3IKKyAqIGFwcGVuZGVkIHRvIHRoZSBJRHMsIHNlcGFyYXRlZCBieSBzZW1pY29sb25zLiAgQW4gYXBwZW5kZWQgZmlsdGVyCisgKiBtdXN0IGJlIGVuY2xvc2VkIGluIHBhcmVudGhlc2VzIGFuZCBhcHBsaWVzIGluIHRoZSByZXZlcnNlCisgKiBkaXJlY3Rpb24uCisgKgorICogQGF1dGhvciBBbGFuIExpdQorICovCitjbGFzcyBUcmFuc2xpdGVyYXRvcklEUGFyc2VyIHsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgSURfREVMSU0gPSAnOyc7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIFRBUkdFVF9TRVAgPSAnLSc7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIFZBUklBTlRfU0VQID0gJy8nOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBPUEVOX1JFViA9ICcoJzsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgQ0xPU0VfUkVWID0gJyknOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEFOWSA9ICJBbnkiOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZPUldBUkQgPSBUcmFuc2xpdGVyYXRvci5GT1JXQVJEOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFJFVkVSU0UgPSBUcmFuc2xpdGVyYXRvci5SRVZFUlNFOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgSGFzaHRhYmxlIFNQRUNJQUxfSU5WRVJTRVMgPSBuZXcgSGFzaHRhYmxlKCk7CisKKyAgICAvKioKKyAgICAgKiBBIHN0cnVjdHVyZSBjb250YWluaW5nIHRoZSBwYXJzZWQgZGF0YSBvZiBhIGZpbHRlcmVkIElELCB0aGF0CisgICAgICogaXMsIGEgYmFzaWMgSUQgb3B0aW9uYWxseSB3aXRoIGEgZmlsdGVyLgorICAgICAqCisgICAgICogJ3NvdXJjZScgYW5kICd0YXJnZXQnIHdpbGwgYWx3YXlzIGJlIG5vbi1udWxsLiAgVGhlICd2YXJpYW50JworICAgICAqIHdpbGwgYmUgbm9uLW51bGwgb25seSBpZiBhIG5vbi1lbXB0eSB2YXJpYW50IHdhcyBwYXJzZWQuCisgICAgICoKKyAgICAgKiAnc2F3U291cmNlJyBpcyB0cnVlIGlmIHRoZXJlIHdhcyBhbiBleHBsaWNpdCBzb3VyY2UgaW4gdGhlCisgICAgICogcGFyc2VkIGlkLiAgSWYgdGhlcmUgd2FzIG5vIGV4cGxpY2l0IHNvdXJjZSwgdGhlbiBhbiBpbXBsaWVkCisgICAgICogc291cmNlIG9mIEFOWSBpcyByZXR1cm5lZCBhbmQgJ3Nhd1NvdXJjZScgaXMgc2V0IHRvIGZhbHNlLgorICAgICAqIAorICAgICAqICdmaWx0ZXInIGlzIHRoZSBwYXJzZWQgZmlsdGVyIHBhdHRlcm4sIG9yIG51bGwgaWYgdGhlcmUgd2FzIG5vCisgICAgICogZmlsdGVyLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFNwZWNzIHsKKyAgICAgICAgcHVibGljIFN0cmluZyBzb3VyY2U7IC8vIG5vdCBudWxsCisgICAgICAgIHB1YmxpYyBTdHJpbmcgdGFyZ2V0OyAvLyBub3QgbnVsbAorICAgICAgICBwdWJsaWMgU3RyaW5nIHZhcmlhbnQ7IC8vIG1heSBiZSBudWxsCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZmlsdGVyOyAvLyBtYXkgYmUgbnVsbAorICAgICAgICBwdWJsaWMgYm9vbGVhbiBzYXdTb3VyY2U7CisgICAgICAgIFNwZWNzKFN0cmluZyBzLCBTdHJpbmcgdCwgU3RyaW5nIHYsIGJvb2xlYW4gc2F3UywgU3RyaW5nIGYpIHsKKyAgICAgICAgICAgIHNvdXJjZSA9IHM7CisgICAgICAgICAgICB0YXJnZXQgPSB0OworICAgICAgICAgICAgdmFyaWFudCA9IHY7CisgICAgICAgICAgICBzYXdTb3VyY2UgPSBzYXdTOworICAgICAgICAgICAgZmlsdGVyID0gZjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEEgc3RydWN0dXJlIGNvbnRhaW5pbmcgdGhlIGNhbm9uaWNhbGl6ZWQgZGF0YSBvZiBhIGZpbHRlcmVkIElELAorICAgICAqIHRoYXQgaXMsIGEgYmFzaWMgSUQgb3B0aW9uYWxseSB3aXRoIGEgZmlsdGVyLgorICAgICAqCisgICAgICogJ2Nhbm9uSUQnIGlzIGFsd2F5cyBub24tbnVsbC4gIEl0IG1heSBiZSB0aGUgZW1wdHkgc3RyaW5nICIiLgorICAgICAqIEl0IGlzIHRoZSBpZCB0aGF0IHNob3VsZCBiZSBhc3NpZ25lZCB0byB0aGUgY3JlYXRlZAorICAgICAqIHRyYW5zbGl0ZXJhdG9yLiAgSXQgX2Nhbm5vdF8gYmUgaW5zdGFudGlhdGVkIGRpcmVjdGx5LgorICAgICAqCisgICAgICogJ2Jhc2ljSUQnIGlzIGFsd2F5cyBub24tbnVsbCBhbmQgbm9uLWVtcHR5LiAgSXQgaXMgYWx3YXlzIG9mCisgICAgICogdGhlIGZvcm0gUy1UIG9yIFMtVC9WLiAgSXQgaXMgZGVzaWduZWQgdG8gYmUgZmVkIHRvIGxvdy1sZXZlbAorICAgICAqIGluc3RhbnRpYXRpb24gY29kZSB0aGF0IG9ubHkgdW5kZXJzdGFuZHMgdGhlc2UgdHdvIGZvcm1hdHMuCisgICAgICoKKyAgICAgKiAnZmlsdGVyJyBtYXkgYmUgbnVsbCwgaWYgdGhlcmUgaXMgbm9uZSwgb3Igbm9uLW51bGwgYW5kCisgICAgICogbm9uLWVtcHR5LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgU2luZ2xlSUQgeworICAgICAgICBwdWJsaWMgU3RyaW5nIGNhbm9uSUQ7CisgICAgICAgIHB1YmxpYyBTdHJpbmcgYmFzaWNJRDsKKyAgICAgICAgcHVibGljIFN0cmluZyBmaWx0ZXI7CisgICAgICAgIFNpbmdsZUlEKFN0cmluZyBjLCBTdHJpbmcgYiwgU3RyaW5nIGYpIHsKKyAgICAgICAgICAgIGNhbm9uSUQgPSBjOworICAgICAgICAgICAgYmFzaWNJRCA9IGI7CisgICAgICAgICAgICBmaWx0ZXIgPSBmOworICAgICAgICB9CisgICAgICAgIFNpbmdsZUlEKFN0cmluZyBjLCBTdHJpbmcgYikgeworICAgICAgICAgICAgdGhpcyhjLCBiLCBudWxsKTsKKyAgICAgICAgfQorICAgICAgICBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZSgpIHsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQ7CisgICAgICAgICAgICBpZiAoYmFzaWNJRCA9PSBudWxsIHx8IGJhc2ljSUQubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRCYXNpY0luc3RhbmNlKCJBbnktTnVsbCIsIGNhbm9uSUQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0QmFzaWNJbnN0YW5jZShiYXNpY0lELCBjYW5vbklEKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAoZmlsdGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgdC5zZXRGaWx0ZXIobmV3IFVuaWNvZGVTZXQoZmlsdGVyKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhIGZpbHRlciBJRCwgdGhhdCBpcywgYW4gSUQgb2YgdGhlIGdlbmVyYWwgZm9ybQorICAgICAqICJbZjFdIHMxLXQxL3YxIiwgd2l0aCB0aGUgZmlsdGVycyBvcHRpb25hbCwgYW5kIHRoZSB2YXJpYW50cyBvcHRpb25hbC4KKyAgICAgKiBAcGFyYW0gaWQgdGhlIGlkIHRvIGJlIHBhcnNlZAorICAgICAqIEBwYXJhbSBwb3MgSU5QVVQtT1VUUFVUIHBhcmFtZXRlci4gIE9uIGlucHV0LCB0aGUgcG9zaXRpb24gb2YKKyAgICAgKiB0aGUgZmlyc3QgY2hhcmFjdGVyIHRvIHBhcnNlLiAgT24gb3V0cHV0LCB0aGUgcG9zaXRpb24gYWZ0ZXIKKyAgICAgKiB0aGUgbGFzdCBjaGFyYWN0ZXIgcGFyc2VkLgorICAgICAqIEByZXR1cm4gYSBTaW5nbGVJRCBvYmplY3Qgb3IgbnVsbCBpZiB0aGUgcGFyc2UgZmFpbHMKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFNpbmdsZUlEIHBhcnNlRmlsdGVySUQoU3RyaW5nIGlkLCBpbnRbXSBwb3MpIHsKKworICAgICAgICBpbnQgc3RhcnQgPSBwb3NbMF07CisgICAgICAgIFNwZWNzIHNwZWNzID0gcGFyc2VGaWx0ZXJJRChpZCwgcG9zLCB0cnVlKTsKKyAgICAgICAgaWYgKHNwZWNzID09IG51bGwpIHsKKyAgICAgICAgICAgIHBvc1swXSA9IHN0YXJ0OworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICAvLyBBc3NlbWJsZSByZXR1cm4gcmVzdWx0cworICAgICAgICBTaW5nbGVJRCBzaW5nbGUgPSBzcGVjc1RvSUQoc3BlY3MsIEZPUldBUkQpOworICAgICAgICBzaW5nbGUuZmlsdGVyID0gc3BlY3MuZmlsdGVyOworICAgICAgICByZXR1cm4gc2luZ2xlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlIGEgc2luZ2xlIElELCB0aGF0IGlzLCBhbiBJRCBvZiB0aGUgZ2VuZXJhbCBmb3JtCisgICAgICogIltmMV0gczEtdDEvdjEgKFtmMl0gczItdDMvdjIpIiwgd2l0aCB0aGUgcGFyZW50aGVzaXplZCBlbGVtZW50CisgICAgICogb3B0aW9uYWwsIHRoZSBmaWx0ZXJzIG9wdGlvbmFsLCBhbmQgdGhlIHZhcmlhbnRzIG9wdGlvbmFsLgorICAgICAqIEBwYXJhbSBpZCB0aGUgaWQgdG8gYmUgcGFyc2VkCisgICAgICogQHBhcmFtIHBvcyBJTlBVVC1PVVRQVVQgcGFyYW1ldGVyLiAgT24gaW5wdXQsIHRoZSBwb3NpdGlvbiBvZgorICAgICAqIHRoZSBmaXJzdCBjaGFyYWN0ZXIgdG8gcGFyc2UuICBPbiBvdXRwdXQsIHRoZSBwb3NpdGlvbiBhZnRlcgorICAgICAqIHRoZSBsYXN0IGNoYXJhY3RlciBwYXJzZWQuCisgICAgICogQHBhcmFtIGRpciB0aGUgZGlyZWN0aW9uLiAgSWYgdGhlIGRpcmVjdGlvbiBpcyBSRVZFUlNFIHRoZW4gdGhlCisgICAgICogU2luZ2xlSUQgaXMgY29uc3RydWN0ZWQgZm9yIHRoZSByZXZlcnNlIGRpcmVjdGlvbi4KKyAgICAgKiBAcmV0dXJuIGEgU2luZ2xlSUQgb2JqZWN0IG9yIG51bGwKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFNpbmdsZUlEIHBhcnNlU2luZ2xlSUQoU3RyaW5nIGlkLCBpbnRbXSBwb3MsIGludCBkaXIpIHsKKworICAgICAgICBpbnQgc3RhcnQgPSBwb3NbMF07CisKKyAgICAgICAgLy8gVGhlIElEIHdpbGwgYmUgb2YgdGhlIGZvcm0gQSwgQSgpLCBBKEIpLCBvciAoQiksIHdoZXJlCisgICAgICAgIC8vIEEgYW5kIEIgYXJlIGZpbHRlciBJRHMuCisgICAgICAgIFNwZWNzIHNwZWNzQSA9IG51bGw7CisgICAgICAgIFNwZWNzIHNwZWNzQiA9IG51bGw7CisgICAgICAgIGJvb2xlYW4gc2F3UGFyZW4gPSBmYWxzZTsKKworICAgICAgICAvLyBPbiB0aGUgZmlyc3QgcGFzcywgbG9vayBmb3IgKEIpIG9yICgpLiAgSWYgdGhpcyBmYWlscywgdGhlbgorICAgICAgICAvLyBvbiB0aGUgc2Vjb25kIHBhc3MsIGxvb2sgZm9yIEEsIEEoQiksIG9yIEEoKS4KKyAgICAgICAgZm9yIChpbnQgcGFzcz0xOyBwYXNzPD0yOyArK3Bhc3MpIHsKKyAgICAgICAgICAgIGlmIChwYXNzID09IDIpIHsKKyAgICAgICAgICAgICAgICBzcGVjc0EgPSBwYXJzZUZpbHRlcklEKGlkLCBwb3MsIHRydWUpOworICAgICAgICAgICAgICAgIGlmIChzcGVjc0EgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBwb3NbMF0gPSBzdGFydDsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKFV0aWxpdHkucGFyc2VDaGFyKGlkLCBwb3MsIE9QRU5fUkVWKSkgeworICAgICAgICAgICAgICAgIHNhd1BhcmVuID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBpZiAoIVV0aWxpdHkucGFyc2VDaGFyKGlkLCBwb3MsIENMT1NFX1JFVikpIHsKKyAgICAgICAgICAgICAgICAgICAgc3BlY3NCID0gcGFyc2VGaWx0ZXJJRChpZCwgcG9zLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gTXVzdCBjbG9zZSB3aXRoIGEgJyknCisgICAgICAgICAgICAgICAgICAgIGlmIChzcGVjc0IgPT0gbnVsbCB8fCAhVXRpbGl0eS5wYXJzZUNoYXIoaWQsIHBvcywgQ0xPU0VfUkVWKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcG9zWzBdID0gc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIEFzc2VtYmxlIHJldHVybiByZXN1bHRzCisgICAgICAgIFNpbmdsZUlEIHNpbmdsZTsKKyAgICAgICAgaWYgKHNhd1BhcmVuKSB7CisgICAgICAgICAgICBpZiAoZGlyID09IEZPUldBUkQpIHsKKyAgICAgICAgICAgICAgICBzaW5nbGUgPSBzcGVjc1RvSUQoc3BlY3NBLCBGT1JXQVJEKTsKKyAgICAgICAgICAgICAgICBzaW5nbGUuY2Fub25JRCA9IHNpbmdsZS5jYW5vbklEICsKKyAgICAgICAgICAgICAgICAgICAgT1BFTl9SRVYgKyBzcGVjc1RvSUQoc3BlY3NCLCBGT1JXQVJEKS5jYW5vbklEICsgQ0xPU0VfUkVWOworICAgICAgICAgICAgICAgIGlmIChzcGVjc0EgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBzaW5nbGUuZmlsdGVyID0gc3BlY3NBLmZpbHRlcjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHNpbmdsZSA9IHNwZWNzVG9JRChzcGVjc0IsIEZPUldBUkQpOworICAgICAgICAgICAgICAgIHNpbmdsZS5jYW5vbklEID0gc2luZ2xlLmNhbm9uSUQgKworICAgICAgICAgICAgICAgICAgICBPUEVOX1JFViArIHNwZWNzVG9JRChzcGVjc0EsIEZPUldBUkQpLmNhbm9uSUQgKyBDTE9TRV9SRVY7CisgICAgICAgICAgICAgICAgaWYgKHNwZWNzQiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHNpbmdsZS5maWx0ZXIgPSBzcGVjc0IuZmlsdGVyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIGFzc2VydChzcGVjc0EgIT0gbnVsbCk7CisgICAgICAgICAgICBpZiAoZGlyID09IEZPUldBUkQpIHsKKyAgICAgICAgICAgICAgICBzaW5nbGUgPSBzcGVjc1RvSUQoc3BlY3NBLCBGT1JXQVJEKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgc2luZ2xlID0gc3BlY3NUb1NwZWNpYWxJbnZlcnNlKHNwZWNzQSk7CisgICAgICAgICAgICAgICAgaWYgKHNpbmdsZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHNpbmdsZSA9IHNwZWNzVG9JRChzcGVjc0EsIFJFVkVSU0UpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNpbmdsZS5maWx0ZXIgPSBzcGVjc0EuZmlsdGVyOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHNpbmdsZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhIGdsb2JhbCBmaWx0ZXIgb2YgdGhlIGZvcm0gIltmXSIgb3IgIihbZl0pIiwgZGVwZW5kaW5nCisgICAgICogb24gJ3dpdGhQYXJlbnMnLgorICAgICAqIEBwYXJhbSBpZCB0aGUgcGF0dGVybiB0aGUgcGFyc2UKKyAgICAgKiBAcGFyYW0gcG9zIElOUFVULU9VVFBVVCBwYXJhbWV0ZXIuICBPbiBpbnB1dCwgdGhlIHBvc2l0aW9uIG9mCisgICAgICogdGhlIGZpcnN0IGNoYXJhY3RlciB0byBwYXJzZS4gIE9uIG91dHB1dCwgdGhlIHBvc2l0aW9uIGFmdGVyCisgICAgICogdGhlIGxhc3QgY2hhcmFjdGVyIHBhcnNlZC4KKyAgICAgKiBAcGFyYW0gZGlyIHRoZSBkaXJlY3Rpb24uCisgICAgICogQHBhcmFtIHdpdGhQYXJlbnMgSU5QVVQtT1VUUFVUIHBhcmFtZXRlci4gIE9uIGVudHJ5LCBpZgorICAgICAqIHdpdGhQYXJlbnNbMF0gaXMgMCwgdGhlbiBwYXJlbnMgYXJlIGRpc2FsbG93ZWQuICBJZiBpdCBpcyAxLAorICAgICAqIHRoZW4gcGFyZW5zIGFyZSByZXF1aXJlcy4gIElmIGl0IGlzIC0xLCB0aGVuIHBhcmVucyBhcmUKKyAgICAgKiBvcHRpb25hbCwgYW5kIHRoZSByZXR1cm4gcmVzdWx0IHdpbGwgYmUgc2V0IHRvIDAgb3IgMS4KKyAgICAgKiBAcGFyYW0gY2Fub25JRCBPVVRQVVQgcGFyYW1ldGVyLiAgVGhlIHBhdHRlcm4gZm9yIHRoZSBmaWx0ZXIKKyAgICAgKiBhZGRlZCB0byB0aGUgY2Fub25JRCwgZWl0aGVyIGF0IHRoZSBlbmQsIGlmIGRpciBpcyBGT1JXQVJELCBvcgorICAgICAqIGF0IHRoZSBzdGFydCwgaWYgZGlyIGlzIFJFVkVSU0UuICBUaGUgcGF0dGVybiB3aWxsIGJlIGVuY2xvc2VkCisgICAgICogaW4gcGFyZW50aGVzZXMgaWYgYXBwcm9wcmlhdGUsIGFuZCB3aWxsIGJlIHN1ZmZpeGVkIHdpdGggYW4KKyAgICAgKiBJRF9ERUxJTSBjaGFyYWN0ZXIuICBNYXkgYmUgbnVsbC4KKyAgICAgKiBAcmV0dXJuIGEgVW5pY29kZVNldCBvYmplY3Qgb3IgbnVsbC4gIEEgbm9uLW51bGwgcmVzdWx0cworICAgICAqIGluZGljYXRlcyBhIHN1Y2Nlc3NmdWwgcGFyc2UsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgZmlsdGVyCisgICAgICogYXBwbGllcyB0byB0aGUgZ2l2ZW4gZGlyZWN0aW9uLiAgVGhlIGNhbGxlciBzaG91bGQgZGlzY2FyZCBpdAorICAgICAqIGlmIHdpdGhQYXJlbnMgIT0gKGRpciA9PSBSRVZFUlNFKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFVuaWNvZGVTZXQgcGFyc2VHbG9iYWxGaWx0ZXIoU3RyaW5nIGlkLCBpbnRbXSBwb3MsIGludCBkaXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludFtdIHdpdGhQYXJlbnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBjYW5vbklEKSB7CisgICAgICAgIFVuaWNvZGVTZXQgZmlsdGVyID0gbnVsbDsKKyAgICAgICAgaW50IHN0YXJ0ID0gcG9zWzBdOworCisgICAgICAgIGlmICh3aXRoUGFyZW5zWzBdID09IC0xKSB7CisgICAgICAgICAgICB3aXRoUGFyZW5zWzBdID0gVXRpbGl0eS5wYXJzZUNoYXIoaWQsIHBvcywgT1BFTl9SRVYpID8gMSA6IDA7CisgICAgICAgIH0gZWxzZSBpZiAod2l0aFBhcmVuc1swXSA9PSAxKSB7CisgICAgICAgICAgICBpZiAoIVV0aWxpdHkucGFyc2VDaGFyKGlkLCBwb3MsIE9QRU5fUkVWKSkgeworICAgICAgICAgICAgICAgIHBvc1swXSA9IHN0YXJ0OworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBVdGlsaXR5LnNraXBXaGl0ZXNwYWNlKGlkLCBwb3MpOworCisgICAgICAgIGlmIChVbmljb2RlU2V0LnJlc2VtYmxlc1BhdHRlcm4oaWQsIHBvc1swXSkpIHsKKyAgICAgICAgICAgIFBhcnNlUG9zaXRpb24gcHBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKHBvc1swXSk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGZpbHRlciA9IG5ldyBVbmljb2RlU2V0KGlkLCBwcG9zLCBudWxsKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgcG9zWzBdID0gc3RhcnQ7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gaWQuc3Vic3RyaW5nKHBvc1swXSwgcHBvcy5nZXRJbmRleCgpKTsKKyAgICAgICAgICAgIHBvc1swXSA9IHBwb3MuZ2V0SW5kZXgoKTsKKworICAgICAgICAgICAgaWYgKHdpdGhQYXJlbnNbMF0gPT0gMSAmJiAhVXRpbGl0eS5wYXJzZUNoYXIoaWQsIHBvcywgQ0xPU0VfUkVWKSkgeworICAgICAgICAgICAgICAgIHBvc1swXSA9IHN0YXJ0OworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBJbiB0aGUgZm9yd2FyZCBkaXJlY3Rpb24sIGFwcGVuZCB0aGUgcGF0dGVybiB0byB0aGUKKyAgICAgICAgICAgIC8vIGNhbm9uSUQuICBJbiB0aGUgcmV2ZXJzZSwgaW5zZXJ0IGl0IGF0IHplcm8sIGFuZCBpbnZlcnQKKyAgICAgICAgICAgIC8vIHRoZSBwcmVzZW5jZSBvZiBwYXJlbnMgKCJBIiA8LT4gIihBKSIpLgorICAgICAgICAgICAgaWYgKGNhbm9uSUQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGlmIChkaXIgPT0gRk9SV0FSRCkgeworICAgICAgICAgICAgICAgICAgICBpZiAod2l0aFBhcmVuc1swXSA9PSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuID0gU3RyaW5nLnZhbHVlT2YoT1BFTl9SRVYpICsgcGF0dGVybiArIENMT1NFX1JFVjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjYW5vbklELmFwcGVuZChwYXR0ZXJuICsgSURfREVMSU0pOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh3aXRoUGFyZW5zWzBdID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm4gPSBTdHJpbmcudmFsdWVPZihPUEVOX1JFVikgKyBwYXR0ZXJuICsgQ0xPU0VfUkVWOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNhbm9uSUQuaW5zZXJ0KDAsIHBhdHRlcm4gKyBJRF9ERUxJTSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZpbHRlcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhIGNvbXBvdW5kIElELCBjb25zaXN0aW5nIG9mIGFuIG9wdGlvbmFsIGZvcndhcmQgZ2xvYmFsCisgICAgICogZmlsdGVyLCBhIHNlcGFyYXRvciwgb25lIG9yIG1vcmUgc2luZ2xlIElEcyBkZWxpbWl0ZWQgYnkKKyAgICAgKiBzZXBhcmF0b3JzLCBhbiBhbiBvcHRpb25hbCByZXZlcnNlIGdsb2JhbCBmaWx0ZXIuICBUaGUKKyAgICAgKiBzZXBhcmF0b3IgaXMgYSBzZW1pY29sb24uICBUaGUgZ2xvYmFsIGZpbHRlcnMgYXJlIFVuaWNvZGVTZXQKKyAgICAgKiBwYXR0ZXJucy4gIFRoZSByZXZlcnNlIGdsb2JhbCBmaWx0ZXIgbXVzdCBiZSBlbmNsb3NlZCBpbgorICAgICAqIHBhcmVudGhlc2VzLgorICAgICAqIEBwYXJhbSBpZCB0aGUgcGF0dGVybiB0aGUgcGFyc2UKKyAgICAgKiBAcGFyYW0gZGlyIHRoZSBkaXJlY3Rpb24uCisgICAgICogQHBhcmFtIGNhbm9uSUQgT1VUUFVUIHBhcmFtZXRlciB0aGF0IHJlY2VpdmVzIHRoZSBjYW5vbmljYWwgSUQsCisgICAgICogY29uc2lzdGluZyBvZiBjYW5vbmljYWwgSURzIGZvciBhbGwgZWxlbWVudHMsIGFzIHJldHVybmVkIGJ5CisgICAgICogcGFyc2VTaW5nbGVJRCgpLCBzZXBhcmF0ZWQgYnkgc2VtaWNvbG9ucy4gIFByZXZpb3VzIGNvbnRlbnRzCisgICAgICogYXJlIGRpc2NhcmRlZC4KKyAgICAgKiBAcGFyYW0gbGlzdCBPVVRQVVQgcGFyYW1ldGVyIHRoYXQgcmVjZWl2ZXMgYSBsaXN0IG9mIFNpbmdsZUlECisgICAgICogb2JqZWN0cyByZXByZXNlbnRpbmcgdGhlIHBhcnNlZCBJRHMuICBQcmV2aW91cyBjb250ZW50cyBhcmUKKyAgICAgKiBkaXNjYXJkZWQuCisgICAgICogQHBhcmFtIGdsb2JhbEZpbHRlciBPVVRQVVQgcGFyYW1ldGVyIHRoYXQgcmVjZWl2ZXMgYSBwb2ludGVyIHRvCisgICAgICogYSBuZXdseSBjcmVhdGVkIGdsb2JhbCBmaWx0ZXIgZm9yIHRoaXMgSUQgaW4gdGhpcyBkaXJlY3Rpb24sIG9yCisgICAgICogbnVsbCBpZiB0aGVyZSBpcyBub25lLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgcGFyc2Ugc3VjY2VlZHMsIHRoYXQgaXMsIGlmIHRoZSBlbnRpcmUKKyAgICAgKiBpZCBpcyBjb25zdW1lZCB3aXRob3V0IHN5bnRheCBlcnJvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gcGFyc2VDb21wb3VuZElEKFN0cmluZyBpZCwgaW50IGRpciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBjYW5vbklELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVjdG9yIGxpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0W10gZ2xvYmFsRmlsdGVyKSB7CisgICAgICAgIGludFtdIHBvcyA9IG5ldyBpbnRbXSB7IDAgfTsKKyAgICAgICAgaW50W10gd2l0aFBhcmVucyA9IG5ldyBpbnRbMV07CisgICAgICAgIGxpc3QucmVtb3ZlQWxsRWxlbWVudHMoKTsKKyAgICAgICAgVW5pY29kZVNldCBmaWx0ZXI7CisgICAgICAgIGdsb2JhbEZpbHRlclswXSA9IG51bGw7CisgICAgICAgIGNhbm9uSUQuc2V0TGVuZ3RoKDApOworCisgICAgICAgIC8vIFBhcnNlIGxlYWRpbmcgZ2xvYmFsIGZpbHRlciwgaWYgYW55CisgICAgICAgIHdpdGhQYXJlbnNbMF0gPSAwOyAvLyBwYXJlbnMgZGlzYWxsb3dlZAorICAgICAgICBmaWx0ZXIgPSBwYXJzZUdsb2JhbEZpbHRlcihpZCwgcG9zLCBkaXIsIHdpdGhQYXJlbnMsIGNhbm9uSUQpOworICAgICAgICBpZiAoZmlsdGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmICghVXRpbGl0eS5wYXJzZUNoYXIoaWQsIHBvcywgSURfREVMSU0pKSB7CisgICAgICAgICAgICAgICAgLy8gTm90IGEgZ2xvYmFsIGZpbHRlcjsgYmFja3VwIGFuZCByZXN1bWUKKyAgICAgICAgICAgICAgICBjYW5vbklELnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICBwb3NbMF0gPSAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGRpciA9PSBGT1JXQVJEKSB7CisgICAgICAgICAgICAgICAgZ2xvYmFsRmlsdGVyWzBdID0gZmlsdGVyOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBzYXdEZWxpbWl0ZXIgPSB0cnVlOworICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICBTaW5nbGVJRCBzaW5nbGUgPSBwYXJzZVNpbmdsZUlEKGlkLCBwb3MsIGRpcik7CisgICAgICAgICAgICBpZiAoc2luZ2xlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChkaXIgPT0gRk9SV0FSRCkgeworICAgICAgICAgICAgICAgIGxpc3QuYWRkRWxlbWVudChzaW5nbGUpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsaXN0Lmluc2VydEVsZW1lbnRBdChzaW5nbGUsIDApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFVdGlsaXR5LnBhcnNlQ2hhcihpZCwgcG9zLCBJRF9ERUxJTSkpIHsKKyAgICAgICAgICAgICAgICBzYXdEZWxpbWl0ZXIgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChsaXN0LnNpemUoKSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAvLyBDb25zdHJ1Y3QgY2Fub25pY2FsIElECisgICAgICAgIGZvciAoaW50IGk9MDsgaTxsaXN0LnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBTaW5nbGVJRCBzaW5nbGUgPSAoU2luZ2xlSUQpIGxpc3QuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgY2Fub25JRC5hcHBlbmQoc2luZ2xlLmNhbm9uSUQpOworICAgICAgICAgICAgaWYgKGkgIT0gKGxpc3Quc2l6ZSgpLTEpKSB7CisgICAgICAgICAgICAgICAgY2Fub25JRC5hcHBlbmQoSURfREVMSU0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gUGFyc2UgdHJhaWxpbmcgZ2xvYmFsIGZpbHRlciwgaWYgYW55LCBhbmQgb25seSBpZiB3ZSBzYXcKKyAgICAgICAgLy8gYSB0cmFpbGluZyBkZWxpbWl0ZXIgYWZ0ZXIgdGhlIElEcy4KKyAgICAgICAgaWYgKHNhd0RlbGltaXRlcikgeworICAgICAgICAgICAgd2l0aFBhcmVuc1swXSA9IDE7IC8vIHBhcmVucyByZXF1aXJlZAorICAgICAgICAgICAgZmlsdGVyID0gcGFyc2VHbG9iYWxGaWx0ZXIoaWQsIHBvcywgZGlyLCB3aXRoUGFyZW5zLCBjYW5vbklEKTsKKyAgICAgICAgICAgIGlmIChmaWx0ZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIC8vIERvbid0IHJlcXVpcmUgdHJhaWxpbmcgJzsnLCBidXQgcGFyc2UgaXQgaWYgcHJlc2VudAorICAgICAgICAgICAgICAgIFV0aWxpdHkucGFyc2VDaGFyKGlkLCBwb3MsIElEX0RFTElNKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoZGlyID09IFJFVkVSU0UpIHsKKyAgICAgICAgICAgICAgICAgICAgZ2xvYmFsRmlsdGVyWzBdID0gZmlsdGVyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFRyYWlsaW5nIHVucGFyc2VkIHRleHQgaXMgYSBzeW50YXggZXJyb3IKKyAgICAgICAgVXRpbGl0eS5za2lwV2hpdGVzcGFjZShpZCwgcG9zWzBdKTsKKyAgICAgICAgaWYgKHBvc1swXSAhPSBpZC5sZW5ndGgoKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydCB0aGUgZWxlbWVudHMgb2YgdGhlICdsaXN0JyB2ZWN0b3IsIHdoaWNoIGFyZSBTaW5nbGVJRAorICAgICAqIG9iamVjdHMsIGludG8gYWN0dWFsIFRyYW5zbGl0ZXJhdG9yIG9iamVjdHMuICBJbiB0aGUgY291cnNlIG9mCisgICAgICogdGhpcywgc29tZSAob3IgYWxsKSBlbnRyaWVzIG1heSBiZSByZW1vdmVkLiAgSWYgYWxsIGVudHJpZXMKKyAgICAgKiBhcmUgcmVtb3ZlZCwgdGhlIE51bGwgdHJhbnNsaXRlcmF0b3Igd2lsbCBiZSBhZGRlZC4KKyAgICAgKgorICAgICAqIERlbGV0ZSBlbnRyaWVzIHdpdGggZW1wdHkgYmFzaWNJRHM7IHRoZXNlIGFyZSBnZW5lcmF0ZWQgYnkKKyAgICAgKiBlbGVtZW50cyBsaWtlICIoQSkiIGluIHRoZSBmb3J3YXJkIGRpcmVjdGlvbiwgb3IgIkEoKSIgaW4KKyAgICAgKiB0aGUgcmV2ZXJzZS4gIFRISVMgTUFZIFJFU1VMVCBJTiBBTiBFTVBUWSBWRUNUT1IuICBDb252ZXJ0CisgICAgICogU2luZ2xlSUQgZW50cmllcyB0byBhY3R1YWwgdHJhbnNsaXRlcmF0b3JzLgorICAgICAqCisgICAgICogQWxzbywgb3B0aW9uYWxseSwgaW5zZXJ0IHRoZSBnaXZlbiB0cmFuc2xpdGVyYXRvciBhdCB0aGUgZ2l2ZW4KKyAgICAgKiBwb3NpdGlvbi4gIFRoaXMgZWZmZWN0aXZlbHkgaGFwcGVucyBiZWZvcmUgYW55dGhpbmcgZWxzZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsaXN0IHZlY3RvciBvZiBTaW5nbGVJRCBvYmplY3RzLiAgT24gZXhpdCwgdmVjdG9yCisgICAgICogb2Ygb25lIG9yIG1vcmUgVHJhbnNsaXRlcmF0b3JzLgorICAgICAqIEBwYXJhbSBpbnNlcnQgVHJhbnNsaXRlcmF0b3IgdG8gaW5zZXJ0LCBvciBudWxsIGlmIG5vbmUuCisgICAgICogQHBhcmFtIGluc2VydEluZGV4IGluZGV4IGZyb20gMC4ubGlzdC5zaXplKCktMSwgYXQgd2hpY2gKKyAgICAgKiB0byBwbGFjZSAnaW5zZXJ0Jywgb3IgLTEgaWYgbm9uZS4KKyAgICAgKiBAcmV0dXJuIG5ldyB2YWx1ZSBvZiBpbnNlcnRJbmRleC4gIFRoZSBpbmRleCB3aWxsIHNoaWZ0IGlmCisgICAgICogdGhlcmUgYXJlIGVtcHR5IGl0ZW1zLCBsaWtlICIoTG93ZXIpIiwgd2l0aCBpbmRpY2VzIGxlc3MgdGhhbgorICAgICAqIGluc2VydEluZGV4LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGluc3RhbnRpYXRlTGlzdChWZWN0b3IgbGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgaW5zZXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaW5zZXJ0SW5kZXgpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPD1saXN0LnNpemUoKTsgKSB7IC8vIFtzaWNdOiBpPD1saXN0LnNpemUoKQorICAgICAgICAgICAgaWYgKGluc2VydEluZGV4ID09IGkpIHsKKyAgICAgICAgICAgICAgICBsaXN0Lmluc2VydEVsZW1lbnRBdChpbnNlcnQsIGkrKyk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFdlIHJ1biB0aGUgbG9vcCB0b28gbG9uZyBieSBvbmUsIHNvIHdlIGNhbgorICAgICAgICAgICAgLy8gZG8gYW4gaW5zZXJ0IGFmdGVyIHRoZSBsYXN0IGVsZW1lbnQKKyAgICAgICAgICAgIGlmIChpPT1saXN0LnNpemUoKSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBTaW5nbGVJRCBzaW5nbGUgPSAoU2luZ2xlSUQpIGxpc3QuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgaWYgKHNpbmdsZS5iYXNpY0lELmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICBsaXN0LnJlbW92ZUVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgICAgICBpZiAoaW5zZXJ0SW5kZXggPiBpKSB7CisgICAgICAgICAgICAgICAgICAgIC0taW5zZXJ0SW5kZXg7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0ID0gc2luZ2xlLmdldEluc3RhbmNlKCk7CisgICAgICAgICAgICAgICAgaWYgKHQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIElEICIgKyBzaW5nbGUuY2Fub25JRCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxpc3Quc2V0RWxlbWVudEF0KHQsIGkpOworICAgICAgICAgICAgICAgICsraTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gQW4gZW1wdHkgbGlzdCBpcyBlcXVpdmFsZW50IHRvIGEgTnVsbCB0cmFuc2xpdGVyYXRvci4KKyAgICAgICAgaWYgKGxpc3Quc2l6ZSgpID09IDApIHsKKyAgICAgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRCYXNpY0luc3RhbmNlKCJBbnktTnVsbCIsIG51bGwpOworICAgICAgICAgICAgaWYgKHQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIC8vIFNob3VsZCBuZXZlciBoYXBwZW4KKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnRlcm5hbCBlcnJvcjsgY2Fubm90IGluc3RhbnRpYXRlIEFueS1OdWxsIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsaXN0LmFkZEVsZW1lbnQodCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gaW5zZXJ0SW5kZXg7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgYW4gSUQgaW50byBwaWVjZXMuICBUYWtlIElEcyBvZiB0aGUgZm9ybSBULCBUL1YsIFMtVCwKKyAgICAgKiBTLVQvViwgb3IgUy9WLVQuICBJZiB0aGUgc291cmNlIGlzIG1pc3NpbmcsIHJldHVybiBhIHNvdXJjZSBvZgorICAgICAqIEFOWS4KKyAgICAgKiBAcGFyYW0gaWQgdGhlIGlkIHN0cmluZywgaW4gYW55IG9mIHNldmVyYWwgZm9ybXMKKyAgICAgKiBAcmV0dXJuIGFuIGFycmF5IG9mIDQgc3RyaW5nczogc291cmNlLCB0YXJnZXQsIHZhcmlhbnQsIGFuZAorICAgICAqIGlzU291cmNlUHJlc2VudC4gIElmIHRoZSBzb3VyY2UgaXMgbm90IHByZXNlbnQsIEFOWSB3aWxsIGJlCisgICAgICogZ2l2ZW4gYXMgdGhlIHNvdXJjZSwgYW5kIGlzU291cmNlUHJlc2VudCB3aWxsIGJlIG51bGwuICBPdGhlcndpc2UKKyAgICAgKiBpc1NvdXJjZVByZXNlbnQgd2lsbCBiZSBub24tbnVsbC4gIFRoZSB0YXJnZXQgbWF5IGJlIGVtcHR5IGlmIHRoZQorICAgICAqIGlkIGlzIG5vdCB3ZWxsLWZvcm1lZC4gIFRoZSB2YXJpYW50IG1heSBiZSBlbXB0eS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ1tdIElEdG9TVFYoU3RyaW5nIGlkKSB7CisgICAgICAgIFN0cmluZyBzb3VyY2UgPSBBTlk7CisgICAgICAgIFN0cmluZyB0YXJnZXQgPSBudWxsOworICAgICAgICBTdHJpbmcgdmFyaWFudCA9ICIiOworICAgICAgICAKKyAgICAgICAgaW50IHNlcCA9IGlkLmluZGV4T2YoVEFSR0VUX1NFUCk7CisgICAgICAgIGludCB2YXIgPSBpZC5pbmRleE9mKFZBUklBTlRfU0VQKTsKKyAgICAgICAgaWYgKHZhciA8IDApIHsKKyAgICAgICAgICAgIHZhciA9IGlkLmxlbmd0aCgpOworICAgICAgICB9CisgICAgICAgIGJvb2xlYW4gaXNTb3VyY2VQcmVzZW50ID0gZmFsc2U7CisgICAgICAgIAorICAgICAgICBpZiAoc2VwIDwgMCkgeworICAgICAgICAgICAgLy8gRm9ybTogVC9WIG9yIFQgKG9yIC9WKQorICAgICAgICAgICAgdGFyZ2V0ID0gaWQuc3Vic3RyaW5nKDAsIHZhcik7CisgICAgICAgICAgICB2YXJpYW50ID0gaWQuc3Vic3RyaW5nKHZhcik7CisgICAgICAgIH0gZWxzZSBpZiAoc2VwIDwgdmFyKSB7CisgICAgICAgICAgICAvLyBGb3JtOiBTLVQvViBvciBTLVQgKG9yIC1UL1Ygb3IgLVQpCisgICAgICAgICAgICBpZiAoc2VwID4gMCkgeworICAgICAgICAgICAgICAgIHNvdXJjZSA9IGlkLnN1YnN0cmluZygwLCBzZXApOworICAgICAgICAgICAgICBpc1NvdXJjZVByZXNlbnQgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGFyZ2V0ID0gaWQuc3Vic3RyaW5nKCsrc2VwLCB2YXIpOworICAgICAgICAgICAgdmFyaWFudCA9IGlkLnN1YnN0cmluZyh2YXIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gRm9ybTogKFMvVi1UIG9yIC9WLVQpCisgICAgICAgICAgICBpZiAodmFyID4gMCkgeworICAgICAgICAgICAgICAgIHNvdXJjZSA9IGlkLnN1YnN0cmluZygwLCB2YXIpOworICAgICAgICAgICAgICAgIGlzU291cmNlUHJlc2VudCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2YXJpYW50ID0gaWQuc3Vic3RyaW5nKHZhciwgc2VwKyspOworICAgICAgICAgICAgdGFyZ2V0ID0gaWQuc3Vic3RyaW5nKHNlcCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodmFyaWFudC5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgIHZhcmlhbnQgPSB2YXJpYW50LnN1YnN0cmluZygxKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmdbXSB7IHNvdXJjZSwgdGFyZ2V0LCB2YXJpYW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNTb3VyY2VQcmVzZW50ID8gIiIgOiBudWxsIH07CisgICAgfQorCisgICAgLyoqCisgICAgICogR2l2ZW4gc291cmNlLCB0YXJnZXQsIGFuZCB2YXJpYW50IHN0cmluZ3MsIGNvbmNhdGVuYXRlIHRoZW0gaW50byBhCisgICAgICogZnVsbCBJRC4gIElmIHRoZSBzb3VyY2UgaXMgZW1wdHksIHRoZW4gIkFueSIgd2lsbCBiZSB1c2VkIGZvciB0aGUKKyAgICAgKiBzb3VyY2UsIHNvIHRoZSBJRCB3aWxsIGFsd2F5cyBiZSBvZiB0aGUgZm9ybSBzLXQvdiBvciBzLXQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgU1RWdG9JRChTdHJpbmcgc291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRhcmdldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YXJpYW50KSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBpZCA9IG5ldyBTdHJpbmdCdWZmZXIoc291cmNlKTsKKyAgICAgICAgaWYgKGlkLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIGlkLmFwcGVuZChBTlkpOworICAgICAgICB9CisgICAgICAgIGlkLmFwcGVuZChUQVJHRVRfU0VQKS5hcHBlbmQodGFyZ2V0KTsKKyAgICAgICAgaWYgKHZhcmlhbnQgIT0gbnVsbCAmJiB2YXJpYW50Lmxlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgIGlkLmFwcGVuZChWQVJJQU5UX1NFUCkuYXBwZW5kKHZhcmlhbnQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBpZC50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlZ2lzdGVyIHR3byB0YXJnZXRzIGFzIGJlaW5nIGludmVyc2VzIG9mIG9uZSBhbm90aGVyLiAgRm9yCisgICAgICogZXhhbXBsZSwgY2FsbGluZyByZWdpc3RlclNwZWNpYWxJbnZlcnNlKCJORkMiLCAiTkZEIiwgdHJ1ZSkgY2F1c2VzCisgICAgICogVHJhbnNsaXRlcmF0b3IgdG8gZm9ybSB0aGUgZm9sbG93aW5nIGludmVyc2UgcmVsYXRpb25zaGlwczoKKyAgICAgKgorICAgICAqIDxwcmU+TkZDID0+IE5GRAorICAgICAqIEFueS1ORkMgPT4gQW55LU5GRAorICAgICAqIE5GRCA9PiBORkMKKyAgICAgKiBBbnktTkZEID0+IEFueS1ORkM8L3ByZT4KKyAgICAgKgorICAgICAqIChXaXRob3V0IHRoZSBzcGVjaWFsIGludmVyc2UgcmVnaXN0cmF0aW9uLCB0aGUgaW52ZXJzZSBvZiBORkMKKyAgICAgKiB3b3VsZCBiZSBORkMtQW55LikgIE5vdGUgdGhhdCBORkQgaXMgc2hvcnRoYW5kIGZvciBBbnktTkZELCBidXQKKyAgICAgKiB0aGF0IHRoZSBwcmVzZW5jZSBvciBhYnNlbmNlIG9mICJBbnktIiBpcyBwcmVzZXJ2ZWQuCisgICAgICoKKyAgICAgKiA8cD5UaGUgcmVsYXRpb25zaGlwIGlzIHN5bW1ldHJpY2FsOyByZWdpc3RlcmluZyAoYSwgYikgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIHJlZ2lzdGVyaW5nIChiLCBhKS4KKyAgICAgKgorICAgICAqIDxwPlRoZSByZWxldmFudCBJRHMgbXVzdCBzdGlsbCBiZSByZWdpc3RlcmVkIHNlcGFyYXRlbHkgYXMKKyAgICAgKiBmYWN0b3JpZXMgb3IgY2xhc3Nlcy4KKyAgICAgKgorICAgICAqIDxwPk9ubHkgdGhlIHRhcmdldHMgYXJlIHNwZWNpZmllZC4gIFNwZWNpYWwgaW52ZXJzZXMgYWx3YXlzCisgICAgICogaGF2ZSB0aGUgZm9ybSBBbnktVGFyZ2V0MSA8PT4gQW55LVRhcmdldDIuICBUaGUgdGFyZ2V0IHNob3VsZAorICAgICAqIGhhdmUgY2Fub25pY2FsIGNhc2luZyAodGhlIGNhc2luZyBkZXNpcmVkIHRvIGJlIHByb2R1Y2VkIHdoZW4KKyAgICAgKiBhbiBpbnZlcnNlIGlzIGZvcm1lZCkgYW5kIHNob3VsZCBjb250YWluIG5vIHdoaXRlc3BhY2Ugb3Igb3RoZXIKKyAgICAgKiBleHRyYW5lb3VzIGNoYXJhY3RlcnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHRoZSB0YXJnZXQgYWdhaW5zdCB3aGljaCB0byByZWdpc3RlciB0aGUgaW52ZXJzZQorICAgICAqIEBwYXJhbSBpbnZlcnNlVGFyZ2V0IHRoZSBpbnZlcnNlIG9mIHRhcmdldCwgdGhhdCBpcworICAgICAqIEFueS10YXJnZXQuZ2V0SW52ZXJzZSgpID0+IEFueS1pbnZlcnNlVGFyZ2V0CisgICAgICogQHBhcmFtIGJpZGlyZWN0aW9uYWwgaWYgdHJ1ZSwgcmVnaXN0ZXIgdGhlIHJldmVyc2UgcmVsYXRpb24KKyAgICAgKiBhcyB3ZWxsLCB0aGF0IGlzLCBBbnktaW52ZXJzZVRhcmdldC5nZXRJbnZlcnNlKCkgPT4gQW55LXRhcmdldAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCByZWdpc3RlclNwZWNpYWxJbnZlcnNlKFN0cmluZyB0YXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGludmVyc2VUYXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBiaWRpcmVjdGlvbmFsKSB7CisgICAgICAgIFNQRUNJQUxfSU5WRVJTRVMucHV0KG5ldyBDYXNlSW5zZW5zaXRpdmVTdHJpbmcodGFyZ2V0KSwgaW52ZXJzZVRhcmdldCk7CisgICAgICAgIGlmIChiaWRpcmVjdGlvbmFsICYmICF0YXJnZXQuZXF1YWxzSWdub3JlQ2FzZShpbnZlcnNlVGFyZ2V0KSkgeworICAgICAgICAgICAgU1BFQ0lBTF9JTlZFUlNFUy5wdXQobmV3IENhc2VJbnNlbnNpdGl2ZVN0cmluZyhpbnZlcnNlVGFyZ2V0KSwgdGFyZ2V0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFByaXZhdGUgaW1wbGVtZW50YXRpb24KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFBhcnNlIGFuIElEIGludG8gY29tcG9uZW50IHBpZWNlcy4gIFRha2UgSURzIG9mIHRoZSBmb3JtIFQsCisgICAgICogVC9WLCBTLVQsIFMtVC9WLCBvciBTL1YtVC4gIElmIHRoZSBzb3VyY2UgaXMgbWlzc2luZywgcmV0dXJuIGEKKyAgICAgKiBzb3VyY2Ugb2YgQU5ZLgorICAgICAqIEBwYXJhbSBpZCB0aGUgaWQgc3RyaW5nLCBpbiBhbnkgb2Ygc2V2ZXJhbCBmb3JtcworICAgICAqIEBwYXJhbSBwb3MgSU5QVVQtT1VUUFVUIHBhcmFtZXRlci4gIE9uIGlucHV0LCBwb3NbMF0gaXMgdGhlCisgICAgICogb2Zmc2V0IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgdG8gcGFyc2UgaW4gaWQuICBPbiBvdXRwdXQsCisgICAgICogcG9zWzBdIGlzIHRoZSBvZmZzZXQgYWZ0ZXIgdGhlIGxhc3QgcGFyc2VkIGNoYXJhY3Rlci4gIElmIHRoZQorICAgICAqIHBhcnNlIGZhaWxlZCwgcG9zWzBdIHdpbGwgYmUgdW5jaGFuZ2VkLgorICAgICAqIEBwYXJhbSBhbGxvd0ZpbHRlciBpZiB0cnVlLCBhIFVuaWNvZGVTZXQgcGF0dGVybiBpcyBhbGxvd2VkCisgICAgICogYXQgYW55IGxvY2F0aW9uIGJldHdlZW4gc3BlY3Mgb3IgZGVsaW1pdGVycywgYW5kIGlzIHJldHVybmVkCisgICAgICogYXMgdGhlIGZpZnRoIHN0cmluZyBpbiB0aGUgYXJyYXkuCisgICAgICogQHJldHVybiBhIFNwZWNzIG9iamVjdCwgb3IgbnVsbCBpZiB0aGUgcGFyc2UgZmFpbGVkLiAgSWYKKyAgICAgKiBuZWl0aGVyIHNvdXJjZSBub3IgdGFyZ2V0IHdhcyBzZWVuIGluIHRoZSBwYXJzZWQgaWQsIHRoZW4gdGhlCisgICAgICogcGFyc2UgZmFpbHMuICBJZiBhbGxvd0ZpbHRlciBpcyB0cnVlLCB0aGVuIHRoZSBwYXJzZWQgZmlsdGVyCisgICAgICogcGF0dGVybiBpcyByZXR1cm5lZCBpbiB0aGUgU3BlY3Mgb2JqZWN0LCBvdGhlcndpc2UgdGhlIHJldHVybmVkCisgICAgICogZmlsdGVyIHJlZmVyZW5jZSBpcyBudWxsLiAgSWYgdGhlIHBhcnNlIGZhaWxzIGZvciBhbnkgcmVhc29uCisgICAgICogbnVsbCBpcyByZXR1cm5lZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBTcGVjcyBwYXJzZUZpbHRlcklEKFN0cmluZyBpZCwgaW50W10gcG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBhbGxvd0ZpbHRlcikgeworICAgICAgICBTdHJpbmcgZmlyc3QgPSBudWxsOworICAgICAgICBTdHJpbmcgc291cmNlID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIHRhcmdldCA9IG51bGw7CisgICAgICAgIFN0cmluZyB2YXJpYW50ID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIGZpbHRlciA9IG51bGw7CisgICAgICAgIGNoYXIgZGVsaW1pdGVyID0gMDsKKyAgICAgICAgaW50IHNwZWNDb3VudCA9IDA7CisgICAgICAgIGludCBzdGFydCA9IHBvc1swXTsKKworICAgICAgICAvLyBUaGlzIGxvb3AgcGFyc2VzIG9uZSBvZiB0aGUgZm9sbG93aW5nIHRoaW5ncyB3aXRoIGVhY2gKKyAgICAgICAgLy8gcGFzczogYSBmaWx0ZXIsIGEgZGVsaW1pdGVyIGNoYXJhY3RlciAoZWl0aGVyICctJyBvciAnLycpLAorICAgICAgICAvLyBvciBhIHNwZWMgKHNvdXJjZSwgdGFyZ2V0LCBvciB2YXJpYW50KS4KKyAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgVXRpbGl0eS5za2lwV2hpdGVzcGFjZShpZCwgcG9zKTsKKyAgICAgICAgICAgIGlmIChwb3NbMF0gPT0gaWQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gUGFyc2UgZmlsdGVycworICAgICAgICAgICAgaWYgKGFsbG93RmlsdGVyICYmIGZpbHRlciA9PSBudWxsICYmCisgICAgICAgICAgICAgICAgVW5pY29kZVNldC5yZXNlbWJsZXNQYXR0ZXJuKGlkLCBwb3NbMF0pKSB7CisKKyAgICAgICAgICAgICAgICBQYXJzZVBvc2l0aW9uIHBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbihwb3NbMF0pOworICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgc2V0ID0gbmV3IFVuaWNvZGVTZXQoaWQsIHBwb3MsIG51bGwpOworICAgICAgICAgICAgICAgIGZpbHRlciA9IGlkLnN1YnN0cmluZyhwb3NbMF0sIHBwb3MuZ2V0SW5kZXgoKSk7CisgICAgICAgICAgICAgICAgcG9zWzBdID0gcHBvcy5nZXRJbmRleCgpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoZGVsaW1pdGVyID09IDApIHsKKyAgICAgICAgICAgICAgICBjaGFyIGMgPSBpZC5jaGFyQXQocG9zWzBdKTsKKyAgICAgICAgICAgICAgICBpZiAoKGMgPT0gVEFSR0VUX1NFUCAmJiB0YXJnZXQgPT0gbnVsbCkgfHwKKyAgICAgICAgICAgICAgICAgICAgKGMgPT0gVkFSSUFOVF9TRVAgJiYgdmFyaWFudCA9PSBudWxsKSkgeworICAgICAgICAgICAgICAgICAgICBkZWxpbWl0ZXIgPSBjOworICAgICAgICAgICAgICAgICAgICArK3Bvc1swXTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBXZSBhcmUgYWJvdXQgdG8gdHJ5IHRvIHBhcnNlIGEgc3BlYyB3aXRoIG5vIGRlbGltaXRlcgorICAgICAgICAgICAgLy8gd2hlbiB3ZSBjYW4gbm8gbG9uZ2VyIGRvIHNvICh3ZSBjYW4gb25seSBkbyBzbyBhdCB0aGUKKyAgICAgICAgICAgIC8vIHN0YXJ0KTsgYnJlYWsuCisgICAgICAgICAgICBpZiAoZGVsaW1pdGVyID09IDAgJiYgc3BlY0NvdW50ID4gMCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBTdHJpbmcgc3BlYyA9IFV0aWxpdHkucGFyc2VVbmljb2RlSWRlbnRpZmllcihpZCwgcG9zKTsKKyAgICAgICAgICAgIGlmIChzcGVjID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAvLyBOb3RlIHRoYXQgaWYgdGhlcmUgd2FzIGEgdHJhaWxpbmcgZGVsaW1pdGVyLCB3ZQorICAgICAgICAgICAgICAgIC8vIGNvbnN1bWUgaXQuICBTbyBGb28tLCBGb28vLCBGb28tQmFyLywgYW5kIEZvby9CYXItCisgICAgICAgICAgICAgICAgLy8gYXJlIGxlZ2FsLgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzd2l0Y2ggKGRlbGltaXRlcikgeworICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAgIGZpcnN0ID0gc3BlYzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVEFSR0VUX1NFUDoKKyAgICAgICAgICAgICAgICB0YXJnZXQgPSBzcGVjOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBWQVJJQU5UX1NFUDoKKyAgICAgICAgICAgICAgICB2YXJpYW50ID0gc3BlYzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICsrc3BlY0NvdW50OworICAgICAgICAgICAgZGVsaW1pdGVyID0gMDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEEgc3BlYyB3aXRoIG5vIHByaW9yIGNoYXJhY3RlciBpcyBlaXRoZXIgc291cmNlIG9yIHRhcmdldCwKKyAgICAgICAgLy8gZGVwZW5kaW5nIG9uIHdoZXRoZXIgYW4gZXhwbGljaXQgIi10YXJnZXQiIHdhcyBzZWVuLgorICAgICAgICBpZiAoZmlyc3QgIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKHRhcmdldCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdGFyZ2V0ID0gZmlyc3Q7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHNvdXJjZSA9IGZpcnN0OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gTXVzdCBoYXZlIGVpdGhlciBzb3VyY2Ugb3IgdGFyZ2V0CisgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCAmJiB0YXJnZXQgPT0gbnVsbCkgeworICAgICAgICAgICAgcG9zWzBdID0gc3RhcnQ7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEVtcHR5IHNvdXJjZSBvciB0YXJnZXQgZGVmYXVsdHMgdG8gQU5ZCisgICAgICAgIGJvb2xlYW4gc2F3U291cmNlID0gdHJ1ZTsKKyAgICAgICAgaWYgKHNvdXJjZSA9PSBudWxsKSB7CisgICAgICAgICAgICBzb3VyY2UgPSBBTlk7CisgICAgICAgICAgICBzYXdTb3VyY2UgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGFyZ2V0ID09IG51bGwpIHsKKyAgICAgICAgICAgIHRhcmdldCA9IEFOWTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBuZXcgU3BlY3Moc291cmNlLCB0YXJnZXQsIHZhcmlhbnQsIHNhd1NvdXJjZSwgZmlsdGVyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHaXZlbnMgYSBTcGVjIG9iamVjdCwgY29udmVydCBpdCB0byBhIFNpbmdsZUlEIG9iamVjdC4gIFRoZQorICAgICAqIFNwZWMgb2JqZWN0IGlzIGEgbW9yZSB1bnByb2Nlc3NlZCBwYXJzZSByZXN1bHQuICBUaGUgU2luZ2xlSUQKKyAgICAgKiBvYmplY3QgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgY2Fub25pY2FsIGFuZCBiYXNpYyBJRHMuCisgICAgICogQHJldHVybiBhIFNpbmdsZUlEOyBuZXZlciByZXR1cm5zIG51bGwuICBSZXR1cm5lZCBvYmplY3QgYWx3YXlzCisgICAgICogaGFzICdmaWx0ZXInIGZpZWxkIG9mIG51bGwuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgU2luZ2xlSUQgc3BlY3NUb0lEKFNwZWNzIHNwZWNzLCBpbnQgZGlyKSB7CisgICAgICAgIFN0cmluZyBjYW5vbklEID0gIiI7CisgICAgICAgIFN0cmluZyBiYXNpY0lEID0gIiI7CisgICAgICAgIFN0cmluZyBiYXNpY1ByZWZpeCA9ICIiOworICAgICAgICBpZiAoc3BlY3MgIT0gbnVsbCkgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGlmIChkaXIgPT0gRk9SV0FSRCkgeworICAgICAgICAgICAgICAgIGlmIChzcGVjcy5zYXdTb3VyY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChzcGVjcy5zb3VyY2UpLmFwcGVuZChUQVJHRVRfU0VQKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBiYXNpY1ByZWZpeCA9IHNwZWNzLnNvdXJjZSArIFRBUkdFVF9TRVA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoc3BlY3MudGFyZ2V0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChzcGVjcy50YXJnZXQpLmFwcGVuZChUQVJHRVRfU0VQKS5hcHBlbmQoc3BlY3Muc291cmNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChzcGVjcy52YXJpYW50ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKFZBUklBTlRfU0VQKS5hcHBlbmQoc3BlY3MudmFyaWFudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBiYXNpY0lEID0gYmFzaWNQcmVmaXggKyBidWYudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGlmIChzcGVjcy5maWx0ZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGJ1Zi5pbnNlcnQoMCwgc3BlY3MuZmlsdGVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhbm9uSUQgPSBidWYudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IFNpbmdsZUlEKGNhbm9uSUQsIGJhc2ljSUQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdpdmVuIGEgU3BlY3Mgb2JqZWN0LCByZXR1cm4gYSBTaW5nbGVJRCByZXByZXNlbnRpbmcgdGhlCisgICAgICogc3BlY2lhbCBpbnZlcnNlIG9mIHRoYXQgSUQuICBJZiB0aGVyZSBpcyBubyBzcGVjaWFsIGludmVyc2UKKyAgICAgKiB0aGVuIHJldHVybiBudWxsLgorICAgICAqIEByZXR1cm4gYSBTaW5nbGVJRCBvciBudWxsLiAgUmV0dXJuZWQgb2JqZWN0IGFsd2F5cyBoYXMKKyAgICAgKiAnZmlsdGVyJyBmaWVsZCBvZiBudWxsLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIFNpbmdsZUlEIHNwZWNzVG9TcGVjaWFsSW52ZXJzZShTcGVjcyBzcGVjcykgeworICAgICAgICBpZiAoIXNwZWNzLnNvdXJjZS5lcXVhbHNJZ25vcmVDYXNlKEFOWSkpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIFN0cmluZyBpbnZlcnNlVGFyZ2V0ID0gKFN0cmluZykgU1BFQ0lBTF9JTlZFUlNFUy5nZXQoCisgICAgICAgICAgICBuZXcgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nKHNwZWNzLnRhcmdldCkpOworICAgICAgICBpZiAoaW52ZXJzZVRhcmdldCAhPSBudWxsKSB7CisgICAgICAgICAgICAvLyBJZiB0aGUgb3JpZ2luYWwgSUQgY29udGFpbmVkICJBbnktIiB0aGVuIG1ha2UgdGhlCisgICAgICAgICAgICAvLyBzcGVjaWFsIGludmVyc2UgIkFueS1Gb28iOyBvdGhlcndpc2UgbWFrZSBpdCAiRm9vIi4KKyAgICAgICAgICAgIC8vIFNvICJBbnktTkZDIiA9PiAiQW55LU5GRCIgYnV0ICJORkMiID0+ICJORkQiLgorICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGlmIChzcGVjcy5maWx0ZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoc3BlY3MuZmlsdGVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChzcGVjcy5zYXdTb3VyY2UpIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKEFOWSkuYXBwZW5kKFRBUkdFVF9TRVApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVmLmFwcGVuZChpbnZlcnNlVGFyZ2V0KTsKKworICAgICAgICAgICAgU3RyaW5nIGJhc2ljSUQgPSBBTlkgKyBUQVJHRVRfU0VQICsgaW52ZXJzZVRhcmdldDsKKworICAgICAgICAgICAgaWYgKHNwZWNzLnZhcmlhbnQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoVkFSSUFOVF9TRVApLmFwcGVuZChzcGVjcy52YXJpYW50KTsKKyAgICAgICAgICAgICAgICBiYXNpY0lEID0gYmFzaWNJRCArIFZBUklBTlRfU0VQICsgc3BlY3MudmFyaWFudDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBuZXcgU2luZ2xlSUQoYnVmLnRvU3RyaW5nKCksIGJhc2ljSUQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KK30KKworLy9lb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1RyYW5zbGl0ZXJhdG9yUGFyc2VyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9UcmFuc2xpdGVyYXRvclBhcnNlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIxMjA2NzkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9UcmFuc2xpdGVyYXRvclBhcnNlci5qYXZhCkBAIC0wLDAgKzEsMTQ4NSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKGMpIDIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNsaXRlcmF0b3JQYXJzZXIuamF2YSx2ICQKKyogJERhdGU6IDIwMDIvMDcvMjYgMjE6MTI6MzYgJAorKiAkUmV2aXNpb246IDEuMjMgJAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuZGF0YS5SZXNvdXJjZVJlYWRlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgamF2YS51dGlsLlN0YWNrOworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3RlclByb3BlcnR5OworCitjbGFzcyBUcmFuc2xpdGVyYXRvclBhcnNlciB7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBEYXRhIG1lbWJlcnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFBVQkxJQyBkYXRhIG1lbWJlciBjb250YWluaW5nIHRoZSBwYXJzZWQgZGF0YSBvYmplY3QsIG9yIG51bGwgaWYKKyAgICAgKiB0aGVyZSB3ZXJlIG5vIHJ1bGVzLgorICAgICAqLworICAgIHB1YmxpYyBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5EYXRhIGRhdGE7CisKKyAgICAvKioKKyAgICAgKiBQVUJMSUMgZGF0YSBtZW1iZXIuCisgICAgICogVGhlIGJsb2NrIG9mIDo6SURzLCBib3RoIGF0IHRoZSB0b3AgYW5kIGF0IHRoZSBib3R0b20uCisgICAgICogSW5zZXJ0ZWQgaW50byB0aGVzZSBtYXkgYmUgYWRkaXRpb25hbCBydWxlcyBhdCB0aGUKKyAgICAgKiBpZFNwbGl0UG9pbnQuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBpZEJsb2NrOworCisgICAgLyoqCisgICAgICogUFVCTElDIGRhdGEgbWVtYmVyLgorICAgICAqIEluIGEgY29tcG91bmQgUkJULCB0aGUgaW5kZXggYXQgd2hpY2ggdGhlIFJCVCBydWxlcyBhcmUKKyAgICAgKiBpbnNlcnRlZCBpbnRvIHRoZSBJRCBibG9jay4gIEluZGV4IDAgbWVhbnMgYmVmb3JlIGFueSBJRHMKKyAgICAgKiBpbiB0aGUgYmxvY2suICBJbmRleCBpZEJsb2NrLmxlbmd0aCgpIG1lYW5zIGFmdGVyIGFsbCBJRHMKKyAgICAgKiBpbiB0aGUgYmxvY2suICBJbmRleCBpcyBhIHN0cmluZyBpbmRleC4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGlkU3BsaXRQb2ludDsKKworICAgIC8qKgorICAgICAqIFBVQkxJQyBkYXRhIG1lbWJlciBjb250YWluaW5nIHRoZSBwYXJzZWQgY29tcG91bmQgZmlsdGVyLCBpZiBhbnkuCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgY29tcG91bmRGaWx0ZXI7CisKKworICAgIC8vIFRoZSBudW1iZXIgb2YgcnVsZXMgcGFyc2VkLiAgVGhpcyB0ZWxscyB1cyBpZiB0aGVyZSB3ZXJlCisgICAgLy8gYW55IGFjdHVhbCB0cmFuc2xpdGVyYXRvciBydWxlcywgb3IgaWYgdGhlcmUgd2VyZSBqdXN0IDo6SUQKKyAgICAvLyBibG9jayBJRHMuCisgICAgcHJpdmF0ZSBpbnQgcnVsZUNvdW50OworCisgICAgcHJpdmF0ZSBpbnQgZGlyZWN0aW9uOworCisgICAgLyoqCisgICAgICogVGVtcG9yYXJ5IHN5bWJvbCB0YWJsZSB1c2VkIGR1cmluZyBwYXJzaW5nLgorICAgICAqLworICAgIHByaXZhdGUgUGFyc2VEYXRhIHBhcnNlRGF0YTsKKworICAgIC8qKgorICAgICAqIFRlbXBvcmFyeSB2ZWN0b3Igb2Ygc2V0IHZhcmlhYmxlcy4gIFdoZW4gcGFyc2luZyBpcyBjb21wbGV0ZSwgdGhpcworICAgICAqIGlzIGNvcGllZCBpbnRvIHRoZSBhcnJheSBkYXRhLnZhcmlhYmxlcy4gIEFzIHdpdGggZGF0YS52YXJpYWJsZXMsCisgICAgICogZWxlbWVudCAwIGNvcnJlc3BvbmRzIHRvIGNoYXJhY3RlciBkYXRhLnZhcmlhYmxlc0Jhc2UuCisgICAgICovCisgICAgcHJpdmF0ZSBWZWN0b3IgdmFyaWFibGVzVmVjdG9yOworCisgICAgLyoqCisgICAgICogU3RyaW5nIG9mIHN0YW5kaW5zIGZvciBzZWdtZW50cy4gIFVzZWQgZHVyaW5nIHRoZSBwYXJzaW5nIG9mIGEgc2luZ2xlCisgICAgICogcnVsZS4gIHNlZ21lbnRTdGFuZGlucy5jaGFyQXQoMCkgaXMgdGhlIHN0YW5kaW4gZm9yICIkMSIgYW5kIGNvcnJlc3BvbmRzCisgICAgICogdG8gU3RyaW5nTWF0Y2hlciBvYmplY3Qgc2VnbWVudE9iamVjdHMuZWxlbWVudEF0KDApLCBldGMuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgc2VnbWVudFN0YW5kaW5zOworCisgICAgLyoqCisgICAgICogVmVjdG9yIG9mIFN0cmluZ01hdGNoZXIgb2JqZWN0cyBmb3Igc2VnbWVudHMuICBVc2VkIGR1cmluZyB0aGUKKyAgICAgKiBwYXJzaW5nIG9mIGEgc2luZ2xlIHJ1bGUuICAKKyAgICAgKiBzZWdtZW50U3RhbmRpbnMuY2hhckF0KDApIGlzIHRoZSBzdGFuZGluIGZvciAiJDEiIGFuZCBjb3JyZXNwb25kcworICAgICAqIHRvIFN0cmluZ01hdGNoZXIgb2JqZWN0IHNlZ21lbnRPYmplY3RzLmVsZW1lbnRBdCgwKSwgZXRjLgorICAgICAqLworICAgIHByaXZhdGUgVmVjdG9yIHNlZ21lbnRPYmplY3RzOworCisgICAgLyoqCisgICAgICogVGhlIG5leHQgYXZhaWxhYmxlIHN0YW5kLWluIGZvciB2YXJpYWJsZXMuICBUaGlzIHN0YXJ0cyBhdCBzb21lIHBvaW50IGluCisgICAgICogdGhlIHByaXZhdGUgdXNlIGFyZWEgKGRpc2NvdmVyZWQgZHluYW1pY2FsbHkpIGFuZCBpbmNyZW1lbnRzIHVwIHRvd2FyZAorICAgICAqIDxjb2RlPnZhcmlhYmxlTGltaXQ8L2NvZGU+LiAgQXQgYW55IHBvaW50IGR1cmluZyBwYXJzaW5nLCBhdmFpbGFibGUKKyAgICAgKiB2YXJpYWJsZXMgYXJlIDxjb2RlPnZhcmlhYmxlTmV4dC4udmFyaWFibGVMaW1pdC0xPC9jb2RlPi4KKyAgICAgKi8KKyAgICBwcml2YXRlIGNoYXIgdmFyaWFibGVOZXh0OworCisgICAgLyoqCisgICAgICogVGhlIGxhc3QgYXZhaWxhYmxlIHN0YW5kLWluIGZvciB2YXJpYWJsZXMuICBUaGlzIGlzIGRpc2NvdmVyZWQKKyAgICAgKiBkeW5hbWljYWxseS4gIEF0IGFueSBwb2ludCBkdXJpbmcgcGFyc2luZywgYXZhaWxhYmxlIHZhcmlhYmxlcyBhcmUKKyAgICAgKiA8Y29kZT52YXJpYWJsZU5leHQuLnZhcmlhYmxlTGltaXQtMTwvY29kZT4uICBEdXJpbmcgdmFyaWFibGUgZGVmaW5pdGlvbgorICAgICAqIHdlIHVzZSB0aGUgc3BlY2lhbCB2YWx1ZSB2YXJpYWJsZUxpbWl0LTEgYXMgYSBwbGFjZWhvbGRlci4KKyAgICAgKi8KKyAgICBwcml2YXRlIGNoYXIgdmFyaWFibGVMaW1pdDsKKworICAgIC8qKgorICAgICAqIFdoZW4gd2UgZW5jb3VudGVyIGFuIHVuZGVmaW5lZCB2YXJpYWJsZSwgd2UgZG8gbm90IGltbWVkaWF0ZWx5IHNpZ25hbAorICAgICAqIGFuIGVycm9yLCBpbiBjYXNlIHdlIGFyZSBkZWZpbmluZyB0aGlzIHZhcmlhYmxlLCBlLmcuLCAiJGEgPSBbYS16XTsiLgorICAgICAqIEluc3RlYWQsIHdlIHNhdmUgdGhlIG5hbWUgb2YgdGhlIHVuZGVmaW5lZCB2YXJpYWJsZSwgYW5kIHN1YnN0aXR1dGUKKyAgICAgKiBpbiB0aGUgcGxhY2Vob2xkZXIgY2hhciB2YXJpYWJsZUxpbWl0IC0gMSwgYW5kIGRlY3JlbWVudAorICAgICAqIHZhcmlhYmxlTGltaXQuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgdW5kZWZpbmVkVmFyaWFibGVOYW1lOworCisgICAgLyoqCisgICAgICogVGhlIHN0YW5kLWluIGNoYXJhY3RlciBmb3IgdGhlICdkb3QnIHNldCwgcmVwcmVzZW50ZWQgYnkgJy4nIGluCisgICAgICogcGF0dGVybnMuICBUaGlzIGlzIGFsbG9jYXRlZCB0aGUgZmlyc3QgdGltZSBpdCBpcyBuZWVkZWQsIGFuZAorICAgICAqIHJldXNlZCB0aGVyZWFmdGVyLgorICAgICAqLworICAgIHByaXZhdGUgaW50IGRvdFN0YW5kSW4gPSAtMTsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIENvbnN0YW50cworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLy8gSW5kaWNhdG9yIGZvciBJRCBibG9ja3MKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSURfVE9LRU4gPSAiOjoiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJRF9UT0tFTl9MRU4gPSAyOworCisgICAgLy8gT3BlcmF0b3JzCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBWQVJJQUJMRV9ERUZfT1AgICA9ICc9JzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEZPUldBUkRfUlVMRV9PUCAgID0gJz4nOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgUkVWRVJTRV9SVUxFX09QICAgPSAnPCc7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBGV0RSRVZfUlVMRV9PUCAgICA9ICd+JzsgLy8gaW50ZXJuYWwgcmVwIG9mIDw+IG9wCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgT1BFUkFUT1JTID0gIj0+PCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEhBTEZfRU5ERVJTID0gIj0+PDsiOworCisgICAgLy8gT3RoZXIgc3BlY2lhbCBjaGFyYWN0ZXJzCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBRVU9URSAgICAgICAgICAgICAgID0gJ1wnJzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEVTQ0FQRSAgICAgICAgICAgICAgPSAnXFwnOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgRU5EX09GX1JVTEUgICAgICAgICA9ICc7JzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIFJVTEVfQ09NTUVOVF9DSEFSICAgPSAnIyc7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIENPTlRFWFRfQU5URSAgICAgICAgPSAneyc7IC8vIGFudGV7a2V5CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBDT05URVhUX1BPU1QgICAgICAgID0gJ30nOyAvLyBrZXl9cG9zdAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgQ1VSU09SX1BPUyAgICAgICAgICA9ICd8JzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIENVUlNPUl9PRkZTRVQgICAgICAgPSAnQCc7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBBTkNIT1JfU1RBUlQgICAgICAgID0gJ14nOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBLTEVFTkVfU1RBUiAgICAgICAgID0gJyonOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgT05FX09SX01PUkUgICAgICAgICA9ICcrJzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIFpFUk9fT1JfT05FICAgICAgICAgPSAnPyc7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIERPVCAgICAgICAgICAgICAgICAgPSAnLic7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIERPVF9TRVQgICAgICAgICAgID0gIlteWzpacDpdWzpabDpdXFxyXFxuJF0iOworCisgICAgLy8gQnkgZGVmaW5pdGlvbiwgdGhlIEFOQ0hPUl9FTkQgc3BlY2lhbCBjaGFyYWN0ZXIgaXMgYQorICAgIC8vIHRyYWlsaW5nIFN5bWJvbFRhYmxlLlNZTUJPTF9SRUYgY2hhcmFjdGVyLgorICAgIC8vIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgQU5DSE9SX0VORCAgICAgICA9ICckJzsKKworICAgIC8vIFNlZ21lbnRzIG9mIHRoZSBpbnB1dCBzdHJpbmcgYXJlIGRlbGltaXRlZCBieSAiKCIgYW5kICIpIi4gIEluIHRoZQorICAgIC8vIG91dHB1dCBzdHJpbmcgdGhlc2Ugc2VnbWVudHMgYXJlIHJlZmVyZW5jZWQgYXMgIiQxIiwgIiQyIiwgZXRjLgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgU0VHTUVOVF9PUEVOICAgICAgICA9ICcoJzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIFNFR01FTlRfQ0xPU0UgICAgICAgPSAnKSc7CisKKyAgICAvLyBBIGZ1bmN0aW9uIGlzIGRlbm90ZWQgJlNvdXJjZS1UYXJnZXQvVmFyaWFudCh0ZXh0KQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgRlVOQ1RJT04gICAgICAgICAgICA9ICcmJzsKKworICAgIC8vIFNwZWNpYWwgY2hhcmFjdGVycyBkaXNhbGxvd2VkIGF0IHRoZSB0b3AgbGV2ZWwKKyAgICBwcml2YXRlIHN0YXRpYyBVbmljb2RlU2V0IElMTEVHQUxfVE9QID0gbmV3IFVuaWNvZGVTZXQoIltcXCldIik7CisKKyAgICAvLyBTcGVjaWFsIGNoYXJhY3RlcnMgZGlzYWxsb3dlZCB3aXRoaW4gYSBzZWdtZW50CisgICAgcHJpdmF0ZSBzdGF0aWMgVW5pY29kZVNldCBJTExFR0FMX1NFRyA9IG5ldyBVbmljb2RlU2V0KCJbXFx7XFx9XFx8XFxAXSIpOworCisgICAgLy8gU3BlY2lhbCBjaGFyYWN0ZXJzIGRpc2FsbG93ZWQgd2l0aGluIGEgZnVuY3Rpb24gYXJndW1lbnQKKyAgICBwcml2YXRlIHN0YXRpYyBVbmljb2RlU2V0IElMTEVHQUxfRlVOQyA9IG5ldyBVbmljb2RlU2V0KCJbXFxeXFwoXFwuXFwqXFwrXFw/XFx7XFx9XFx8XFxAXSIpOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY2xhc3MgUGFyc2VEYXRhCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUaGlzIGNsYXNzIGltcGxlbWVudHMgdGhlIFN5bWJvbFRhYmxlIGludGVyZmFjZS4gIEl0IGlzIHVzZWQKKyAgICAgKiBkdXJpbmcgcGFyc2luZyB0byBnaXZlIFVuaWNvZGVTZXQgYWNjZXNzIHRvIHZhcmlhYmxlcyB0aGF0CisgICAgICogaGF2ZSBiZWVuIGRlZmluZWQgc28gZmFyLiAgTm90ZSB0aGF0IGl0IHVzZXMgdmFyaWFibGVzVmVjdG9yLAorICAgICAqIF9ub3RfIGRhdGEudmFyaWFibGVzLgorICAgICAqLworICAgIHByaXZhdGUgY2xhc3MgUGFyc2VEYXRhIGltcGxlbWVudHMgU3ltYm9sVGFibGUgeworCisgICAgICAgIC8qKgorICAgICAgICAgKiBJbXBsZW1lbnQgU3ltYm9sVGFibGUgQVBJLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGNoYXJbXSBsb29rdXAoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgICAgIHJldHVybiAoY2hhcltdKSBkYXRhLnZhcmlhYmxlTmFtZXMuZ2V0KG5hbWUpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEltcGxlbWVudCBTeW1ib2xUYWJsZSBBUEkuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgVW5pY29kZU1hdGNoZXIgbG9va3VwTWF0Y2hlcihpbnQgY2gpIHsKKyAgICAgICAgICAgIC8vIE5vdGUgdGhhdCB3ZSBjYW5ub3QgdXNlIGRhdGEubG9va3VwKCkgYmVjYXVzZSB0aGUKKyAgICAgICAgICAgIC8vIHNldCBhcnJheSBoYXMgbm90IGJlZW4gY29uc3RydWN0ZWQgeWV0LgorICAgICAgICAgICAgaW50IGkgPSBjaCAtIGRhdGEudmFyaWFibGVzQmFzZTsKKyAgICAgICAgICAgIGlmIChpID49IDAgJiYgaSA8IHZhcmlhYmxlc1ZlY3Rvci5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gKFVuaWNvZGVNYXRjaGVyKSB2YXJpYWJsZXNWZWN0b3IuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogSW1wbGVtZW50IFN5bWJvbFRhYmxlIEFQSS4gIFBhcnNlIG91dCBhIHN5bWJvbCByZWZlcmVuY2UKKyAgICAgICAgICogbmFtZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgcGFyc2VSZWZlcmVuY2UoU3RyaW5nIHRleHQsIFBhcnNlUG9zaXRpb24gcG9zLCBpbnQgbGltaXQpIHsKKyAgICAgICAgICAgIGludCBzdGFydCA9IHBvcy5nZXRJbmRleCgpOworICAgICAgICAgICAgaW50IGkgPSBzdGFydDsKKyAgICAgICAgICAgIHdoaWxlIChpIDwgbGltaXQpIHsKKyAgICAgICAgICAgICAgICBjaGFyIGMgPSB0ZXh0LmNoYXJBdChpKTsKKyAgICAgICAgICAgICAgICBpZiAoKGk9PXN0YXJ0ICYmICFDaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclN0YXJ0KGMpKSB8fAorICAgICAgICAgICAgICAgICAgICAhQ2hhcmFjdGVyLmlzVW5pY29kZUlkZW50aWZpZXJQYXJ0KGMpKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICArK2k7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaSA9PSBzdGFydCkgeyAvLyBObyB2YWxpZCBuYW1lIGNoYXJzCisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwb3Muc2V0SW5kZXgoaSk7CisgICAgICAgICAgICByZXR1cm4gdGV4dC5zdWJzdHJpbmcoc3RhcnQsIGkpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBjaGFyYWN0ZXIgaXMgYSBtYXRjaGVyIHN0YW5kaW4gb3IgYSBwbGFpbgorICAgICAgICAgKiBjaGFyYWN0ZXIgKG5vbiBzdGFuZGluKS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzTWF0Y2hlcihpbnQgY2gpIHsKKyAgICAgICAgICAgIC8vIE5vdGUgdGhhdCB3ZSBjYW5ub3QgdXNlIGRhdGEubG9va3VwKCkgYmVjYXVzZSB0aGUKKyAgICAgICAgICAgIC8vIHNldCBhcnJheSBoYXMgbm90IGJlZW4gY29uc3RydWN0ZWQgeWV0LgorICAgICAgICAgICAgaW50IGkgPSBjaCAtIGRhdGEudmFyaWFibGVzQmFzZTsKKyAgICAgICAgICAgIGlmIChpID49IDAgJiYgaSA8IHZhcmlhYmxlc1ZlY3Rvci5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdmFyaWFibGVzVmVjdG9yLmVsZW1lbnRBdChpKSBpbnN0YW5jZW9mIFVuaWNvZGVNYXRjaGVyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIGNoYXJhY3RlciBpcyBhIHJlcGxhY2VyIHN0YW5kaW4gb3IgYSBwbGFpbgorICAgICAgICAgKiBjaGFyYWN0ZXIgKG5vbiBzdGFuZGluKS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzUmVwbGFjZXIoaW50IGNoKSB7CisgICAgICAgICAgICAvLyBOb3RlIHRoYXQgd2UgY2Fubm90IHVzZSBkYXRhLmxvb2t1cCgpIGJlY2F1c2UgdGhlCisgICAgICAgICAgICAvLyBzZXQgYXJyYXkgaGFzIG5vdCBiZWVuIGNvbnN0cnVjdGVkIHlldC4KKyAgICAgICAgICAgIGludCBpID0gY2ggLSBkYXRhLnZhcmlhYmxlc0Jhc2U7CisgICAgICAgICAgICBpZiAoaSA+PSAwICYmIGkgPCB2YXJpYWJsZXNWZWN0b3Iuc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHZhcmlhYmxlc1ZlY3Rvci5lbGVtZW50QXQoaSkgaW5zdGFuY2VvZiBVbmljb2RlUmVwbGFjZXI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNsYXNzZXMgUnVsZUJvZHksIFJ1bGVBcnJheSwgYW5kIFJ1bGVSZWFkZXIKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEEgcHJpdmF0ZSBhYnN0cmFjdCBjbGFzcyByZXByZXNlbnRpbmcgdGhlIGludGVyZmFjZSB0byBydWxlCisgICAgICogc291cmNlIGNvZGUgdGhhdCBpcyBicm9rZW4gdXAgaW50byBsaW5lcy4gIEhhbmRsZXMgdGhlCisgICAgICogZm9sZGluZyBvZiBsaW5lcyB0ZXJtaW5hdGVkIGJ5IGEgYmFja3NsYXNoLiAgVGhpcyBmb2xkaW5nCisgICAgICogaXMgbGltaXRlZDsgaXQgZG9lcyBub3QgYWNjb3VudCBmb3IgY29tbWVudHMsIHF1b3Rlcywgb3IKKyAgICAgKiBlc2NhcGVzLCBzbyBpdHMgdXNlIHRvIGJlIGxpbWl0ZWQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgYWJzdHJhY3QgY2xhc3MgUnVsZUJvZHkgeworCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXRyaWV2ZSB0aGUgbmV4dCBsaW5lIG9mIHRoZSBzb3VyY2UsIG9yIHJldHVybiBudWxsIGlmCisgICAgICAgICAqIG5vbmUuICBGb2xkcyBsaW5lcyB0ZXJtaW5hdGVkIGJ5IGEgYmFja3NsYXNoIGludG8gdGhlCisgICAgICAgICAqIG5leHQgbGluZSwgd2l0aG91dCByZWdhcmQgZm9yIGNvbW1lbnRzLCBxdW90ZXMsIG9yCisgICAgICAgICAqIGVzY2FwZXMuCisgICAgICAgICAqLworICAgICAgICBTdHJpbmcgbmV4dExpbmUoKSB7CisgICAgICAgICAgICBTdHJpbmcgcyA9IGhhbmRsZU5leHRMaW5lKCk7CisgICAgICAgICAgICBpZiAocyAhPSBudWxsICYmCisgICAgICAgICAgICAgICAgcy5sZW5ndGgoKSA+IDAgJiYKKyAgICAgICAgICAgICAgICBzLmNoYXJBdChzLmxlbmd0aCgpIC0gMSkgPT0gJ1xcJykgeworCisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGIgPSBuZXcgU3RyaW5nQnVmZmVyKHMpOworICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgYi5kZWxldGVDaGFyQXQoYi5sZW5ndGgoKS0xKTsKKyAgICAgICAgICAgICAgICAgICAgcyA9IGhhbmRsZU5leHRMaW5lKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGIuYXBwZW5kKHMpOworICAgICAgICAgICAgICAgIH0gd2hpbGUgKHMubGVuZ3RoKCkgPiAwICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgcy5jaGFyQXQocy5sZW5ndGgoKSAtIDEpID09ICdcXCcpOworCisgICAgICAgICAgICAgICAgcyA9IGIudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBzOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJlc2V0IHRvIHRoZSBmaXJzdCBsaW5lIG9mIHRoZSBzb3VyY2UuCisgICAgICAgICAqLworICAgICAgICBhYnN0cmFjdCB2b2lkIHJlc2V0KCk7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFN1YmNsYXNzIG1ldGhvZCB0byByZXR1cm4gdGhlIG5leHQgbGluZSBvZiB0aGUgc291cmNlLgorICAgICAgICAgKi8KKyAgICAgICAgYWJzdHJhY3QgU3RyaW5nIGhhbmRsZU5leHRMaW5lKCk7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIFJ1bGVCb2R5IHN1YmNsYXNzIGZvciBhIFN0cmluZ1tdIGFycmF5LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFJ1bGVBcnJheSBleHRlbmRzIFJ1bGVCb2R5IHsKKyAgICAgICAgU3RyaW5nW10gYXJyYXk7CisgICAgICAgIGludCBpOworICAgICAgICBwdWJsaWMgUnVsZUFycmF5KFN0cmluZ1tdIGFycmF5KSB7IHRoaXMuYXJyYXkgPSBhcnJheTsgaSA9IDA7IH0KKyAgICAgICAgcHVibGljIFN0cmluZyBoYW5kbGVOZXh0TGluZSgpIHsKKyAgICAgICAgICAgIHJldHVybiAoaSA8IGFycmF5Lmxlbmd0aCkgPyBhcnJheVtpKytdIDogbnVsbDsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgdm9pZCByZXNldCgpIHsKKyAgICAgICAgICAgIGkgPSAwOworICAgICAgICB9CisgICAgfTsKKworICAgIC8qKgorICAgICAqIFJ1bGVCb2R5IHN1YmNsYXNzIGZvciBhIFJlc291cmNlUmVhZGVyLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFJ1bGVSZWFkZXIgZXh0ZW5kcyBSdWxlQm9keSB7CisgICAgICAgIFJlc291cmNlUmVhZGVyIHJlYWRlcjsKKyAgICAgICAgcHVibGljIFJ1bGVSZWFkZXIoUmVzb3VyY2VSZWFkZXIgcmVhZGVyKSB7IHRoaXMucmVhZGVyID0gcmVhZGVyOyB9CisgICAgICAgIHB1YmxpYyBTdHJpbmcgaGFuZGxlTmV4dExpbmUoKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHJldHVybiByZWFkZXIucmVhZExpbmUoKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGphdmEuaW8uSU9FeGNlcHRpb24gZSkge30KKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyB2b2lkIHJlc2V0KCkgeworICAgICAgICAgICAgcmVhZGVyLnJlc2V0KCk7CisgICAgICAgIH0KKyAgICB9OworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY2xhc3MgUnVsZUhhbGYKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEEgY2xhc3MgcmVwcmVzZW50aW5nIG9uZSBzaWRlIG9mIGEgcnVsZS4gIFRoaXMgY2xhc3Mga25vd3MgaG93IHRvCisgICAgICogcGFyc2UgaGFsZiBvZiBhIHJ1bGUuICBJdCBpcyB0aWdodGx5IGNvdXBsZWQgdG8gdGhlIG1ldGhvZAorICAgICAqIFRyYW5zbGl0ZXJhdG9yUGFyc2VyLnBhcnNlUnVsZSgpLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFJ1bGVIYWxmIHsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIHRleHQ7CisKKyAgICAgICAgcHVibGljIGludCBjdXJzb3IgPSAtMTsgLy8gcG9zaXRpb24gb2YgY3Vyc29yIGluIHRleHQKKyAgICAgICAgcHVibGljIGludCBhbnRlID0gLTE7ICAgLy8gcG9zaXRpb24gb2YgYW50ZSBjb250ZXh0IG1hcmtlciAneycgaW4gdGV4dAorICAgICAgICBwdWJsaWMgaW50IHBvc3QgPSAtMTsgICAvLyBwb3NpdGlvbiBvZiBwb3N0IGNvbnRleHQgbWFya2VyICd9JyBpbiB0ZXh0CisKKyAgICAgICAgLy8gUmVjb3JkIHRoZSBvZmZzZXQgdG8gdGhlIGN1cnNvciBlaXRoZXIgdG8gdGhlIGxlZnQgb3IgdG8gdGhlCisgICAgICAgIC8vIHJpZ2h0IG9mIHRoZSBrZXkuICBUaGlzIGlzIGluZGljYXRlZCBieSBjaGFyYWN0ZXJzIG9uIHRoZSBvdXRwdXQKKyAgICAgICAgLy8gc2lkZSB0aGF0IGFsbG93IHRoZSBjdXJzb3IgdG8gYmUgcG9zaXRpb25lZCBhcmJpdHJhcmlseSB3aXRoaW4KKyAgICAgICAgLy8gdGhlIG1hdGNoaW5nIHRleHQuICBGb3IgZXhhbXBsZSwgYWJje2RlZn0gPiB8IEBAQCB4eXo7IGNoYW5nZXMKKyAgICAgICAgLy8gZGVmIHRvIHh5eiBhbmQgbW92ZXMgdGhlIGN1cnNvciB0byBiZWZvcmUgYWJjLiAgT2Zmc2V0IGNoYXJhY3RlcnMKKyAgICAgICAgLy8gbXVzdCBiZSBhdCB0aGUgc3RhcnQgb3IgZW5kLCBhbmQgdGhleSBjYW5ub3QgbW92ZSB0aGUgY3Vyc29yIHBhc3QKKyAgICAgICAgLy8gdGhlIGFudGUtIG9yIHBvc3Rjb250ZXh0IHRleHQuICBQbGFjZWhvbGRlcnMgYXJlIG9ubHkgdmFsaWQgaW4KKyAgICAgICAgLy8gb3V0cHV0IHRleHQuICBUaGUgbGVuZ3RoIG9mIHRoZSBhbnRlIGFuZCBwb3N0IGNvbnRleHQgaXMKKyAgICAgICAgLy8gZGV0ZXJtaW5lZCBhdCBydW50aW1lLCBiZWNhdXNlIG9mIHN1cHBsZW1lbnRhbHMgYW5kIHF1YW50aWZpZXJzLgorICAgICAgICBwdWJsaWMgaW50IGN1cnNvck9mZnNldCA9IDA7IC8vIG9ubHkgbm9uemVybyBvbiBvdXRwdXQgc2lkZQorCisgICAgICAgIC8vIFBvc2l0aW9uIG9mIGZpcnN0IENVUlNPUl9PRkZTRVQgb24gX3JpZ2h0Xy4gIFRoaXMgd2lsbCBiZSAtMQorICAgICAgICAvLyBmb3IgfEAsIC0yIGZvciB8QEAsIGV0Yy4sIGFuZCAxIGZvciBAfCwgMiBmb3IgQEB8LCBldGMuCisgICAgICAgIHByaXZhdGUgaW50IGN1cnNvck9mZnNldFBvcyA9IDA7CisKKyAgICAgICAgcHVibGljIGJvb2xlYW4gYW5jaG9yU3RhcnQgPSBmYWxzZTsKKyAgICAgICAgcHVibGljIGJvb2xlYW4gYW5jaG9yRW5kICAgPSBmYWxzZTsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIHNlZ21lbnQgbnVtYmVyIGZyb20gMS4ubiBvZiB0aGUgbmV4dCAnKCcgd2Ugc2VlCisgICAgICAgICAqIGR1cmluZyBwYXJzaW5nOyAxLWJhc2VkLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBpbnQgbmV4dFNlZ21lbnROdW1iZXIgPSAxOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBQYXJzZSBvbmUgc2lkZSBvZiBhIHJ1bGUsIHN0b3BwaW5nIGF0IGVpdGhlciB0aGUgbGltaXQsCisgICAgICAgICAqIHRoZSBFTkRfT0ZfUlVMRSBjaGFyYWN0ZXIsIG9yIGFuIG9wZXJhdG9yLgorICAgICAgICAgKiBAcmV0dXJuIHRoZSBpbmRleCBhZnRlciB0aGUgdGVybWluYXRpbmcgY2hhcmFjdGVyLCBvcgorICAgICAgICAgKiBpZiBsaW1pdCB3YXMgcmVhY2hlZCwgbGltaXQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgcGFyc2UoU3RyaW5nIHJ1bGUsIGludCBwb3MsIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvclBhcnNlciBwYXJzZXIpIHsKKyAgICAgICAgICAgIGludCBzdGFydCA9IHBvczsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBwb3MgPSBwYXJzZVNlY3Rpb24ocnVsZSwgcG9zLCBsaW1pdCwgcGFyc2VyLCBidWYsIElMTEVHQUxfVE9QLCBmYWxzZSk7CisgICAgICAgICAgICB0ZXh0ID0gYnVmLnRvU3RyaW5nKCk7CisKKyAgICAgICAgICAgIGlmIChjdXJzb3JPZmZzZXQgPiAwICYmIGN1cnNvciAhPSBjdXJzb3JPZmZzZXRQb3MpIHsKKyAgICAgICAgICAgICAgICBzeW50YXhFcnJvcigiTWlzcGxhY2VkICIgKyBDVVJTT1JfUE9TLCBydWxlLCBzdGFydCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBwb3M7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUGFyc2UgYSBzZWN0aW9uIG9mIG9uZSBzaWRlIG9mIGEgcnVsZSwgc3RvcHBpbmcgYXQgZWl0aGVyCisgICAgICAgICAqIHRoZSBsaW1pdCwgdGhlIEVORF9PRl9SVUxFIGNoYXJhY3RlciwgYW4gb3BlcmF0b3IsIG9yIGEKKyAgICAgICAgICogc2VnbWVudCBjbG9zZSBjaGFyYWN0ZXIuICBUaGlzIG1ldGhvZCBwYXJzZXMgYm90aCBhCisgICAgICAgICAqIHRvcC1sZXZlbCBydWxlIGhhbGYgYW5kIGEgc2VnbWVudCB3aXRoaW4gc3VjaCBhIHJ1bGUgaGFsZi4KKyAgICAgICAgICogSXQgY2FsbHMgaXRzZWxmIHJlY3Vyc2l2ZWx5IHRvIHBhcnNlIHNlZ21lbnRzIGFuZCBuZXN0ZWQKKyAgICAgICAgICogc2VnbWVudHMuCisgICAgICAgICAqIEBwYXJhbSBidWYgYnVmZmVyIGludG8gd2hpY2ggdG8gYWNjdW11bGF0ZSB0aGUgcnVsZSBwYXR0ZXJuCisgICAgICAgICAqIGNoYXJhY3RlcnMsIGVpdGhlciBsaXRlcmFsIGNoYXJhY3RlcnMgZnJvbSB0aGUgcnVsZSBvcgorICAgICAgICAgKiBzdGFuZGlucyBmb3IgVW5pY29kZU1hdGNoZXIgb2JqZWN0cyBpbmNsdWRpbmcgc2VnbWVudHMuCisgICAgICAgICAqIEBwYXJhbSBpbGxlZ2FsIHRoZSBzZXQgb2Ygc3BlY2lhbCBjaGFyYWN0ZXJzIHRoYXQgaXMgaWxsZWdhbCBkdXJpbmcKKyAgICAgICAgICogdGhpcyBwYXJzZS4KKyAgICAgICAgICogQHBhcmFtIGlzU2VnbWVudCBpZiB0cnVlLCB0aGVuIHdlJ3ZlIGFscmVhZHkgc2VlbiBhICcoJyBhbmQKKyAgICAgICAgICogcG9zIG9uIGVudHJ5IHBvaW50cyByaWdodCBhZnRlciBpdC4gIEFjY3VtdWxhdGUgZXZlcnl0aGluZworICAgICAgICAgKiB1cCB0byB0aGUgY2xvc2luZyAnKScsIHB1dCBpdCBpbiBhIHNlZ21lbnQgbWF0Y2hlciBvYmplY3QsCisgICAgICAgICAqIGdlbmVyYXRlIGEgc3RhbmRpbiBmb3IgaXQsIGFuZCBhZGQgdGhlIHN0YW5kaW4gdG8gYnVmLiAgQXMKKyAgICAgICAgICogYSBzaWRlIGVmZmVjdCwgdXBkYXRlIHRoZSBzZWdtZW50cyB2ZWN0b3Igd2l0aCBhIHJlZmVyZW5jZQorICAgICAgICAgKiB0byB0aGUgc2VnbWVudCBtYXRjaGVyLiAgVGhpcyB3b3JrcyByZWN1cnNpdmVseSBmb3IgbmVzdGVkCisgICAgICAgICAqIHNlZ21lbnRzLiAgSWYgaXNTZWdtZW50IGlzIGZhbHNlLCBqdXN0IGFjY3VtdWxhdGUKKyAgICAgICAgICogY2hhcmFjdGVycyBpbnRvIGJ1Zi4KKyAgICAgICAgICogQHJldHVybiB0aGUgaW5kZXggYWZ0ZXIgdGhlIHRlcm1pbmF0aW5nIGNoYXJhY3Rlciwgb3IKKyAgICAgICAgICogaWYgbGltaXQgd2FzIHJlYWNoZWQsIGxpbWl0CisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGludCBwYXJzZVNlY3Rpb24oU3RyaW5nIHJ1bGUsIGludCBwb3MsIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yUGFyc2VyIHBhcnNlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0IGlsbGVnYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGlzU2VnbWVudCkgeworICAgICAgICAgICAgaW50IHN0YXJ0ID0gcG9zOworICAgICAgICAgICAgUGFyc2VQb3NpdGlvbiBwcCA9IG51bGw7CisgICAgICAgICAgICBpbnQgcXVvdGVTdGFydCA9IC0xOyAvLyBNb3N0IHJlY2VudCAnc2luZ2xlIHF1b3RlZCBzdHJpbmcnCisgICAgICAgICAgICBpbnQgcXVvdGVMaW1pdCA9IC0xOworICAgICAgICAgICAgaW50IHZhclN0YXJ0ID0gLTE7IC8vIE1vc3QgcmVjZW50ICR2YXJpYWJsZVJlZmVyZW5jZQorICAgICAgICAgICAgaW50IHZhckxpbWl0ID0gLTE7CisgICAgICAgICAgICBpbnRbXSBpcmVmID0gbmV3IGludFsxXTsKKyAgICAgICAgICAgIGludCBidWZTdGFydCA9IGJ1Zi5sZW5ndGgoKTsKKworICAgICAgICBtYWluOgorICAgICAgICAgICAgd2hpbGUgKHBvcyA8IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgLy8gU2luY2UgYWxsIHN5bnRheCBjaGFyYWN0ZXJzIGFyZSBpbiB0aGUgQk1QLCBmZXRjaGluZworICAgICAgICAgICAgICAgIC8vIDE2LWJpdCBjb2RlIHVuaXRzIHN1ZmZpY2VzIGhlcmUuCisgICAgICAgICAgICAgICAgY2hhciBjID0gcnVsZS5jaGFyQXQocG9zKyspOworICAgICAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShjKSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gSEFMRl9FTkRFUlMgaXMgYWxsIGNoYXJzIHRoYXQgZW5kIGEgcnVsZSBoYWxmOiAiPD49OyIKKyAgICAgICAgICAgICAgICBpZiAoSEFMRl9FTkRFUlMuaW5kZXhPZihjKSA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChpc1NlZ21lbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJVbmNsb3NlZCBzZWdtZW50IiwgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrIG1haW47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChhbmNob3JFbmQpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gVGV4dCBhZnRlciBhIHByZXN1bWVkIGVuZCBhbmNob3IgaXMgYSBzeW50YXggZXJyCisgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJNYWxmb3JtZWQgdmFyaWFibGUgcmVmZXJlbmNlIiwgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoVW5pY29kZVNldC5yZXNlbWJsZXNQYXR0ZXJuKHJ1bGUsIHBvcy0xKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAocHAgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcHAgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBwcC5zZXRJbmRleChwb3MtMSk7IC8vIEJhY2t1cCB0byBvcGVuaW5nICdbJworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKHBhcnNlci5wYXJzZVNldChydWxlLCBwcCkpOworICAgICAgICAgICAgICAgICAgICBwb3MgPSBwcC5nZXRJbmRleCgpOyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBIYW5kbGUgZXNjYXBlcworICAgICAgICAgICAgICAgIGlmIChjID09IEVTQ0FQRSkgeworICAgICAgICAgICAgICAgICAgICBpZiAocG9zID09IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcigiVHJhaWxpbmcgYmFja3NsYXNoIiwgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlyZWZbMF0gPSBwb3M7CisgICAgICAgICAgICAgICAgICAgIGludCBlc2NhcGVkID0gVXRpbGl0eS51bmVzY2FwZUF0KHJ1bGUsIGlyZWYpOworICAgICAgICAgICAgICAgICAgICBwb3MgPSBpcmVmWzBdOworICAgICAgICAgICAgICAgICAgICBpZiAoZXNjYXBlZCA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIk1hbGZvcm1lZCBlc2NhcGUiLCBydWxlLCBzdGFydCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcGFyc2VyLmNoZWNrVmFyaWFibGVSYW5nZShlc2NhcGVkLCBydWxlLCBzdGFydCk7CisgICAgICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZChidWYsIGVzY2FwZWQpOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gSGFuZGxlIHF1b3RlZCBtYXR0ZXIKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSBRVU9URSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgaXEgPSBydWxlLmluZGV4T2YoUVVPVEUsIHBvcyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChpcSA9PSBwb3MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoYyk7IC8vIFBhcnNlIFsnJ10gb3V0c2lkZSBxdW90ZXMgYXMgWyddCisgICAgICAgICAgICAgICAgICAgICAgICArK3BvczsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRoaXMgbG9vcCBwaWNrcyB1cCBhIHJ1biBvZiBxdW90ZWQgdGV4dCBvZiB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIGZvcm0gJ2FhYWEnIGVhY2ggdGltZSB0aHJvdWdoLiAgSWYgdGhpcyBydW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAqIGhhc24ndCByZWFsbHkgZW5kZWQgKCdhYWFhJydiYmJiJykgdGhlbiBpdCBrZWVwcworICAgICAgICAgICAgICAgICAgICAgICAgICogbG9vcGluZywgZWFjaCB0aW1lIGFkZGluZyBvbiBhIG5ldyBydW4uICBXaGVuIGl0CisgICAgICAgICAgICAgICAgICAgICAgICAgKiByZWFjaGVzIHRoZSBmaW5hbCBxdW90ZSBpdCBicmVha3MuCisgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIHF1b3RlU3RhcnQgPSBidWYubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlxIDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcigiVW50ZXJtaW5hdGVkIHF1b3RlIiwgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKHJ1bGUuc3Vic3RyaW5nKHBvcywgaXEpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBpcSsxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwb3MgPCBsaW1pdCAmJiBydWxlLmNoYXJBdChwb3MpID09IFFVT1RFKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUGFyc2UgWycnXSBpbnNpZGUgcXVvdGVzIGFzIFsnXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcSA9IHJ1bGUuaW5kZXhPZihRVU9URSwgcG9zKzEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENvbnRpbnVlIGxvb3BpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBxdW90ZUxpbWl0ID0gYnVmLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGlxPXF1b3RlU3RhcnQ7IGlxPHF1b3RlTGltaXQ7ICsraXEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZXIuY2hlY2tWYXJpYWJsZVJhbmdlKGJ1Zi5jaGFyQXQoaXEpLCBydWxlLCBzdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcGFyc2VyLmNoZWNrVmFyaWFibGVSYW5nZShjLCBydWxlLCBzdGFydCk7CisKKyAgICAgICAgICAgICAgICBpZiAoaWxsZWdhbC5jb250YWlucyhjKSkgeworICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcigiSWxsZWdhbCBjaGFyYWN0ZXIgJyIgKyBjICsgJ1wnJywgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgIC8vIEVsZW1lbnRzIGFsbG93ZWQgd2l0aGluIGFuZCBvdXQgb2Ygc2VnbWVudHMKKyAgICAgICAgICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgIGNhc2UgQU5DSE9SX1NUQVJUOgorICAgICAgICAgICAgICAgICAgICBpZiAoYnVmLmxlbmd0aCgpID09IDAgJiYgIWFuY2hvclN0YXJ0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhbmNob3JTdGFydCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcigiTWlzcGxhY2VkIGFuY2hvciBzdGFydCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlLCBzdGFydCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBTRUdNRU5UX09QRU46CisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1ZlNlZ1N0YXJ0IGlzIHRoZSBvZmZzZXQgaW4gYnVmIHRvIHRoZSBmaXJzdAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVyIG9mIHRoZSBzZWdtZW50IHdlIGFyZSBwYXJzaW5nLgorICAgICAgICAgICAgICAgICAgICAgICAgaW50IGJ1ZlNlZ1N0YXJ0ID0gYnVmLmxlbmd0aCgpOworCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBSZWNvcmQgc2VnbWVudCBudW1iZXIgbm93LCBzaW5jZSBuZXh0U2VnbWVudE51bWJlcgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2lsbCBiZSBpbmNyZW1lbnRlZCBkdXJpbmcgdGhlIGNhbGwgdG8gcGFyc2VTZWN0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGVyZSBhcmUgbmVzdGVkIHNlZ21lbnRzLgorICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNlZ21lbnROdW1iZXIgPSBuZXh0U2VnbWVudE51bWJlcisrOyAvLyAxLWJhc2VkCisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBhcnNlIHRoZSBzZWdtZW50CisgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBwYXJzZVNlY3Rpb24ocnVsZSwgcG9zLCBsaW1pdCwgcGFyc2VyLCBidWYsIElMTEVHQUxfU0VHLCB0cnVlKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWZ0ZXIgcGFyc2luZyBhIHNlZ21lbnQsIHRoZSByZWxldmFudCBjaGFyYWN0ZXJzIGFyZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW4gYnVmLCBzdGFydGluZyBhdCBvZmZzZXQgYnVmU2VnU3RhcnQuICBFeHRyYWN0IHRoZW0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGludG8gYSBzdHJpbmcgbWF0Y2hlciwgYW5kIHJlcGxhY2UgdGhlbSB3aXRoIGEKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN0YW5kaW4gZm9yIHRoYXQgbWF0Y2hlci4KKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ01hdGNoZXIgbSA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZ01hdGNoZXIoYnVmLnN1YnN0cmluZyhidWZTZWdTdGFydCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VnbWVudE51bWJlciwgcGFyc2VyLmRhdGEpOworCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBSZWNvcmQgYW5kIGFzc29jaWF0ZSBvYmplY3QgYW5kIHNlZ21lbnQgbnVtYmVyCisgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZXIuc2V0U2VnbWVudE9iamVjdChzZWdtZW50TnVtYmVyLCBtKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5zZXRMZW5ndGgoYnVmU2VnU3RhcnQpOworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChwYXJzZXIuZ2V0U2VnbWVudFN0YW5kaW4oc2VnbWVudE51bWJlcikpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgRlVOQ1RJT046CisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlyZWZbMF0gPSBwb3M7CisgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvcklEUGFyc2VyLlNpbmdsZUlEIHNpbmdsZSA9IFRyYW5zbGl0ZXJhdG9ySURQYXJzZXIucGFyc2VGaWx0ZXJJRChydWxlLCBpcmVmKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBuZXh0IGNoYXJhY3RlciBNVVNUIGJlIGEgc2VnbWVudCBvcGVuCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2luZ2xlID09IG51bGwgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAhVXRpbGl0eS5wYXJzZUNoYXIocnVsZSwgaXJlZiwgU0VHTUVOVF9PUEVOKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJJbnZhbGlkIGZ1bmN0aW9uIiwgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gc2luZ2xlLmdldEluc3RhbmNlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIkludmFsaWQgZnVuY3Rpb24gSUQiLCBydWxlLCBzdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1ZlNlZ1N0YXJ0IGlzIHRoZSBvZmZzZXQgaW4gYnVmIHRvIHRoZSBmaXJzdAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVyIG9mIHRoZSBzZWdtZW50IHdlIGFyZSBwYXJzaW5nLgorICAgICAgICAgICAgICAgICAgICAgICAgaW50IGJ1ZlNlZ1N0YXJ0ID0gYnVmLmxlbmd0aCgpOworCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBQYXJzZSB0aGUgc2VnbWVudAorICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gcGFyc2VTZWN0aW9uKHJ1bGUsIGlyZWZbMF0sIGxpbWl0LCBwYXJzZXIsIGJ1ZiwgSUxMRUdBTF9GVU5DLCB0cnVlKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWZ0ZXIgcGFyc2luZyBhIHNlZ21lbnQsIHRoZSByZWxldmFudCBjaGFyYWN0ZXJzIGFyZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW4gYnVmLCBzdGFydGluZyBhdCBvZmZzZXQgYnVmU2VnU3RhcnQuCisgICAgICAgICAgICAgICAgICAgICAgICBGdW5jdGlvblJlcGxhY2VyIHIgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBGdW5jdGlvblJlcGxhY2VyKHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdSZXBsYWNlcihidWYuc3Vic3RyaW5nKGJ1ZlNlZ1N0YXJ0KSwgcGFyc2VyLmRhdGEpKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVwbGFjZSB0aGUgYnVmZmVyIGNvbnRlbnRzIHdpdGggYSBzdGFuZC1pbgorICAgICAgICAgICAgICAgICAgICAgICAgYnVmLnNldExlbmd0aChidWZTZWdTdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKHBhcnNlci5nZW5lcmF0ZVN0YW5kSW5Gb3IocikpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgU3ltYm9sVGFibGUuU1lNQk9MX1JFRjoKKyAgICAgICAgICAgICAgICAgICAgLy8gSGFuZGxlIHZhcmlhYmxlIHJlZmVyZW5jZXMgYW5kIHNlZ21lbnQgcmVmZXJlbmNlcyAiJDEiIC4uICIkOSIKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gQSB2YXJpYWJsZSByZWZlcmVuY2UgbXVzdCBiZSBmb2xsb3dlZCBpbW1lZGlhdGVseQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gYnkgYSBVbmljb2RlIGlkZW50aWZpZXIgc3RhcnQgYW5kIHplcm8gb3IgbW9yZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gVW5pY29kZSBpZGVudGlmaWVyIHBhcnQgY2hhcmFjdGVycywgb3IgYnkgYSBkaWdpdAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gMS4uOSBpZiBpdCBpcyBhIHNlZ21lbnQgcmVmZXJlbmNlLgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBvcyA9PSBsaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEEgdmFyaWFibGUgcmVmIGNoYXJhY3RlciBhdCB0aGUgZW5kIGFjdHMgYXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbiBhbmNob3IgdG8gdGhlIGNvbnRleHQgbGltaXQsIGFzIGluIHBlcmwuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaG9yRW5kID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBhcnNlICIkMSIgIiQyIiAuLiAiJDkiIC4uIChubyB1cHBlciBsaW1pdCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBydWxlLmNoYXJBdChwb3MpOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IHIgPSBVQ2hhcmFjdGVyLmRpZ2l0KGMsIDEwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyID49IDEgJiYgciA8PSA5KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXJlZlswXSA9IHBvczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByID0gVXRpbGl0eS5wYXJzZU51bWJlcihydWxlLCBpcmVmLCAxMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHIgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJVbmRlZmluZWQgc2VnbWVudCByZWZlcmVuY2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlLCBzdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IGlyZWZbMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChwYXJzZXIuZ2V0U2VnbWVudFN0YW5kaW4ocikpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocHAgPT0gbnVsbCkgeyAvLyBMYXp5IGNyZWF0ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcCA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcC5zZXRJbmRleChwb3MpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lID0gcGFyc2VyLnBhcnNlRGF0YS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VSZWZlcmVuY2UocnVsZSwgcHAsIGxpbWl0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmFtZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgbWVhbnMgdGhlICckJyB3YXMgbm90IGZvbGxvd2VkIGJ5IGEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmFsaWQgbmFtZS4gIFRyeSB0byBpbnRlcnByZXQgaXQgYXMgYW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZW5kIGFuY2hvciB0aGVuLiAgSWYgdGhpcyBhbHNvIGRvZXNuJ3Qgd29yaworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAoaWYgd2Ugc2VlIGEgZm9sbG93aW5nIGNoYXJhY3RlcikgdGhlbiBzaWduYWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW4gZXJyb3IuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2hvckVuZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBwcC5nZXRJbmRleCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgYSB2YXJpYWJsZSBkZWZpbml0aW9uIHN0YXRlbWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGVuIHRoZSBMSFMgdmFyaWFibGUgd2lsbCBiZSB1bmRlZmluZWQuICBJbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQgY2FzZSBhcHBlbmRWYXJpYWJsZURlZigpIHdpbGwgYXBwZW5kIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNwZWNpYWwgcGxhY2Vob2xkZXIgY2hhciB2YXJpYWJsZUxpbWl0LTEuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyU3RhcnQgPSBidWYubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VyLmFwcGVuZFZhcmlhYmxlRGVmKG5hbWUsIGJ1Zik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyTGltaXQgPSBidWYubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBET1Q6CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQocGFyc2VyLmdldERvdFN0YW5kSW4oKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgS0xFRU5FX1NUQVI6CisgICAgICAgICAgICAgICAgY2FzZSBPTkVfT1JfTU9SRToKKyAgICAgICAgICAgICAgICBjYXNlIFpFUk9fT1JfT05FOgorICAgICAgICAgICAgICAgICAgICAvLyBRdWFudGlmaWVycy4gIFdlIGhhbmRsZSBzaW5nbGUgY2hhcmFjdGVycywgcXVvdGVkIHN0cmluZ3MsCisgICAgICAgICAgICAgICAgICAgIC8vIHZhcmlhYmxlIHJlZmVyZW5jZXMsIGFuZCBzZWdtZW50cy4KKyAgICAgICAgICAgICAgICAgICAgLy8gIGErICAgICAgbWF0Y2hlcyAgYWFhCisgICAgICAgICAgICAgICAgICAgIC8vICAnZm9vJysgIG1hdGNoZXMgIGZvb2Zvb2ZvbworICAgICAgICAgICAgICAgICAgICAvLyAgJHYrICAgICBtYXRjaGVzICB4eXh5eHkgaWYgJHYgPT0geHkKKyAgICAgICAgICAgICAgICAgICAgLy8gIChzZWcpKyAgbWF0Y2hlcyAgc2Vnc2Vnc2VnCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc1NlZ21lbnQgJiYgYnVmLmxlbmd0aCgpID09IGJ1ZlN0YXJ0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlICovKyBpbW1lZGlhdGVseSBmb2xsb3dzICcoJworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJNaXNwbGFjZWQgcXVhbnRpZmllciIsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcXN0YXJ0LCBxbGltaXQ7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgKi8rIGZvbGxvd3MgYW4gaXNvbGF0ZWQgY2hhcmFjdGVyIG9yIHF1b3RlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBvciB2YXJpYWJsZSByZWZlcmVuY2UKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChidWYubGVuZ3RoKCkgPT0gcXVvdGVMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSAqLysgZm9sbG93cyBhICdxdW90ZWQgc3RyaW5nJworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHFzdGFydCA9IHF1b3RlU3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcWxpbWl0ID0gcXVvdGVMaW1pdDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYnVmLmxlbmd0aCgpID09IHZhckxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlICovKyBmb2xsb3dzIGEgJHZhcmlhYmxlUmVmZXJlbmNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXN0YXJ0ID0gdmFyU3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcWxpbWl0ID0gdmFyTGltaXQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSAqLysgZm9sbG93cyBhIHNpbmdsZSBjaGFyYWN0ZXIsIHBvc3NpYmx5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYSBzZWdtZW50IHN0YW5kaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBxc3RhcnQgPSBidWYubGVuZ3RoKCkgLSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHFsaW1pdCA9IHFzdGFydCArIDE7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVNYXRjaGVyIG0gPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdNYXRjaGVyKGJ1Zi50b1N0cmluZygpLCBxc3RhcnQsIHFsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCBwYXJzZXIuZGF0YSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWluID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBtYXggPSBRdWFudGlmaWVyLk1BWDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBPTkVfT1JfTU9SRToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW4gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBaRVJPX09SX09ORToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW4gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heCA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2FzZSBLTEVFTkVfU1RBUjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICBkbyBub3RoaW5nIC0tIG1pbiwgbWF4IGFscmVhZHkgc2V0CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBtID0gbmV3IFF1YW50aWZpZXIobSwgbWluLCBtYXgpOworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLnNldExlbmd0aChxc3RhcnQpOworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChwYXJzZXIuZ2VuZXJhdGVTdGFuZEluRm9yKG0pKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgLy8gRWxlbWVudHMgYWxsb3dlZCBPTkxZIFdJVEhJTiBzZWdtZW50cworICAgICAgICAgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgY2FzZSBTRUdNRU5UX0NMT1NFOgorICAgICAgICAgICAgICAgICAgICAvLyBhc3NlcnQoaXNTZWdtZW50KTsKKyAgICAgICAgICAgICAgICAgICAgLy8gV2UncmUgZG9uZSBwYXJzaW5nIGEgc2VnbWVudC4KKyAgICAgICAgICAgICAgICAgICAgYnJlYWsgbWFpbjsKKworICAgICAgICAgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgLy8gRWxlbWVudHMgYWxsb3dlZCBPTkxZIE9VVFNJREUgc2VnbWVudHMKKyAgICAgICAgICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgIGNhc2UgQ09OVEVYVF9BTlRFOgorICAgICAgICAgICAgICAgICAgICBpZiAoYW50ZSA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcigiTXVsdGlwbGUgYW50ZSBjb250ZXh0cyIsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBhbnRlID0gYnVmLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIENPTlRFWFRfUE9TVDoKKyAgICAgICAgICAgICAgICAgICAgaWYgKHBvc3QgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIk11bHRpcGxlIHBvc3QgY29udGV4dHMiLCBydWxlLCBzdGFydCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcG9zdCA9IGJ1Zi5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBDVVJTT1JfUE9TOgorICAgICAgICAgICAgICAgICAgICBpZiAoY3Vyc29yID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJNdWx0aXBsZSBjdXJzb3JzIiwgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGN1cnNvciA9IGJ1Zi5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBDVVJTT1JfT0ZGU0VUOgorICAgICAgICAgICAgICAgICAgICBpZiAoY3Vyc29yT2Zmc2V0IDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJ1Zi5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcigiTWlzcGxhY2VkICIgKyBjLCBydWxlLCBzdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAtLWN1cnNvck9mZnNldDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJzb3JPZmZzZXQgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYnVmLmxlbmd0aCgpICE9IGN1cnNvck9mZnNldFBvcyB8fCBjdXJzb3IgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJNaXNwbGFjZWQgIiArIGMsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICsrY3Vyc29yT2Zmc2V0OworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnNvciA9PSAwICYmIGJ1Zi5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yT2Zmc2V0ID0gLTE7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGN1cnNvciA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3JPZmZzZXRQb3MgPSBidWYubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yT2Zmc2V0ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIk1pc3BsYWNlZCAiICsgYywgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAvLyBOb24tc3BlY2lhbCBjaGFyYWN0ZXJzCisgICAgICAgICAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAvLyBEaXNhbGxvdyB1bnF1b3RlZCBjaGFyYWN0ZXJzIG90aGVyIHRoYW4gWzAtOUEtWmEtel0KKyAgICAgICAgICAgICAgICAgICAgLy8gaW4gdGhlIHByaW50YWJsZSBBU0NJSSByYW5nZS4gIFRoZXNlIGNoYXJhY3RlcnMgYXJlCisgICAgICAgICAgICAgICAgICAgIC8vIHJlc2VydmVkIGZvciBwb3NzaWJsZSBmdXR1cmUgdXNlLgorICAgICAgICAgICAgICAgICAgICBpZiAoYyA+PSAweDAwMjEgJiYgYyA8PSAweDAwN0UgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICEoKGMgPj0gJzAnICYmIGMgPD0gJzknKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAoYyA+PSAnQScgJiYgYyA8PSAnWicpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgIChjID49ICdhJyAmJiBjIDw9ICd6JykpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcigiVW5xdW90ZWQgIiArIGMsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGMpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcG9zOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJlbW92ZSBjb250ZXh0LgorICAgICAgICAgKi8KKyAgICAgICAgdm9pZCByZW1vdmVDb250ZXh0KCkgeworICAgICAgICAgICAgdGV4dCA9IHRleHQuc3Vic3RyaW5nKGFudGUgPCAwID8gMCA6IGFudGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zdCA8IDAgPyB0ZXh0Lmxlbmd0aCgpIDogcG9zdCk7CisgICAgICAgICAgICBhbnRlID0gcG9zdCA9IC0xOworICAgICAgICAgICAgYW5jaG9yU3RhcnQgPSBhbmNob3JFbmQgPSBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGlzIGhhbGYgbG9va3MgbGlrZSB2YWxpZCBvdXRwdXQsIHRoYXQgaXMsIGRvZXMgbm90CisgICAgICAgICAqIGNvbnRhaW4gcXVhbnRpZmllcnMgb3Igb3RoZXIgc3BlY2lhbCBpbnB1dC1vbmx5IGVsZW1lbnRzLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXNWYWxpZE91dHB1dChUcmFuc2xpdGVyYXRvclBhcnNlciBwYXJzZXIpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTx0ZXh0Lmxlbmd0aCgpOyApIHsKKyAgICAgICAgICAgICAgICBpbnQgYyA9IFVURjE2LmNoYXJBdCh0ZXh0LCBpKTsKKyAgICAgICAgICAgICAgICBpICs9IFVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgICAgICBpZiAoIXBhcnNlci5wYXJzZURhdGEuaXNSZXBsYWNlcihjKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIHRydWUgaWYgdGhpcyBoYWxmIGxvb2tzIGxpa2UgdmFsaWQgaW5wdXQsIHRoYXQgaXMsIGRvZXMgbm90CisgICAgICAgICAqIGNvbnRhaW4gZnVuY3Rpb25zIG9yIG90aGVyIHNwZWNpYWwgb3V0cHV0LW9ubHkgZWxlbWVudHMuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc1ZhbGlkSW5wdXQoVHJhbnNsaXRlcmF0b3JQYXJzZXIgcGFyc2VyKSB7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8dGV4dC5sZW5ndGgoKTsgKSB7CisgICAgICAgICAgICAgICAgaW50IGMgPSBVVEYxNi5jaGFyQXQodGV4dCwgaSk7CisgICAgICAgICAgICAgICAgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgICAgICAgICAgaWYgKCFwYXJzZXIucGFyc2VEYXRhLmlzTWF0Y2hlcihjKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBQVUJMSUMgbWV0aG9kcworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IuCisgICAgICovCisgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yUGFyc2VyKCkgeworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlIGEgc2V0IG9mIHJ1bGVzLiAgQWZ0ZXIgdGhlIHBhcnNlIGNvbXBsZXRlcywgZXhhbWluZSB0aGUgcHVibGljCisgICAgICogZGF0YSBtZW1iZXJzIGZvciByZXN1bHRzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHBhcnNlKFN0cmluZyBydWxlcywgaW50IGRpcmVjdGlvbikgeworICAgICAgICBwYXJzZVJ1bGVzKG5ldyBSdWxlQXJyYXkobmV3IFN0cmluZ1tdIHsgcnVsZXMgfSksIGRpcmVjdGlvbik7CisgICAgfQorICAgCisgICAgLyoqCisgICAgICogUGFyc2UgYSBzZXQgb2YgcnVsZXMuICBBZnRlciB0aGUgcGFyc2UgY29tcGxldGVzLCBleGFtaW5lIHRoZSBwdWJsaWMKKyAgICAgKiBkYXRhIG1lbWJlcnMgZm9yIHJlc3VsdHMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgcGFyc2UoUmVzb3VyY2VSZWFkZXIgcnVsZXMsIGludCBkaXJlY3Rpb24pIHsKKyAgICAgICAgcGFyc2VSdWxlcyhuZXcgUnVsZVJlYWRlcihydWxlcyksIGRpcmVjdGlvbik7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gUFJJVkFURSBtZXRob2RzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhbiBhcnJheSBvZiB6ZXJvIG9yIG1vcmUgcnVsZXMuICBUaGUgc3RyaW5ncyBpbiB0aGUgYXJyYXkgYXJlCisgICAgICogdHJlYXRlZCBhcyBpZiB0aGV5IHdlcmUgY29uY2F0ZW5hdGVkIHRvZ2V0aGVyLCB3aXRoIHJ1bGUgdGVybWluYXRvcnMKKyAgICAgKiBpbnNlcnRlZCBiZXR3ZWVuIGFycmF5IGVsZW1lbnRzIGlmIG5vdCBwcmVzZW50IGFscmVhZHkuCisgICAgICoKKyAgICAgKiBBbnkgcHJldmlvdXMgcnVsZXMgYXJlIGRpc2NhcmRlZC4gIFR5cGljYWxseSB0aGlzIG1ldGhvZCBpcyBjYWxsZWQgZXhhY3RseQorICAgICAqIG9uY2UsIGR1cmluZyBjb25zdHJ1Y3Rpb24uCisgICAgICoKKyAgICAgKiBUaGUgbWVtYmVyIHRoaXMuZGF0YSB3aWxsIGJlIHNldCB0byBudWxsIGlmIHRoZXJlIGFyZSBubyBydWxlcy4KKyAgICAgKgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZXJlIGlzIGEgc3ludGF4IGVycm9yIGluIHRoZQorICAgICAqIHJ1bGVzCisgICAgICovCisgICAgdm9pZCBwYXJzZVJ1bGVzKFJ1bGVCb2R5IHJ1bGVBcnJheSwgaW50IGRpcikgeworICAgICAgICBkYXRhID0gbmV3IFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLkRhdGEoKTsKKyAgICAgICAgZGlyZWN0aW9uID0gZGlyOworICAgICAgICBydWxlQ291bnQgPSAwOworICAgICAgICBjb21wb3VuZEZpbHRlciA9IG51bGw7CisKKyAgICAgICAgLy8gQnkgZGVmYXVsdCwgcnVsZXMgdXNlIHBhcnQgb2YgdGhlIHByaXZhdGUgdXNlIGFyZWEKKyAgICAgICAgLy8gRTAwMC4uRjhGRiBmb3IgdmFyaWFibGVzIGFuZCBvdGhlciBzdGFuZC1pbnMuICBDdXJyZW50bHkKKyAgICAgICAgLy8gdGhlIHJhbmdlIEYwMDAuLkY4RkYgaXMgdHlwaWNhbGx5IHN1ZmZpY2llbnQuICBUaGUgJ3VzZQorICAgICAgICAvLyB2YXJpYWJsZSByYW5nZScgcHJhZ21hIGFsbG93cyBydWxlIHNldHMgdG8gbW9kaWZ5IHRoaXMuCisgICAgICAgIHNldFZhcmlhYmxlUmFuZ2UoMHhGMDAwLCAweEY4RkYpOworCisgICAgICAgIHZhcmlhYmxlc1ZlY3RvciA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgcGFyc2VEYXRhID0gbmV3IFBhcnNlRGF0YSgpOworCisgICAgICAgIFN0cmluZ0J1ZmZlciBlcnJvcnMgPSBudWxsOworICAgICAgICBpbnQgZXJyb3JDb3VudCA9IDA7CisKKyAgICAgICAgcnVsZUFycmF5LnJlc2V0KCk7CisKKyAgICAgICAgU3RyaW5nQnVmZmVyIGlkQmxvY2tSZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGlkU3BsaXRQb2ludCA9IC0xOworICAgICAgICAvLyBUaGUgbW9kZSBtYXJrcyB3aGV0aGVyIHdlIGFyZSBpbiB0aGUgaGVhZGVyIDo6aWQgYmxvY2ssIHRoZQorICAgICAgICAvLyBydWxlIGJsb2NrLCBvciB0aGUgZm9vdGVyIDo6aWQgYmxvY2suCisgICAgICAgIC8vIG1vZGUgPT0gMDogc3RhcnQ6IHJ1bGUtPjEsIDo6aWQtPjAKKyAgICAgICAgLy8gbW9kZSA9PSAxOiBpbiBydWxlczogcnVsZS0+MSwgOjppZC0+MgorICAgICAgICAvLyBtb2RlID09IDI6IGluIGZvb3RlciBydWxlIGJsb2NrOiBydWxlLT5FUlJPUiwgOjppZC0+MgorICAgICAgICBpbnQgbW9kZSA9IDA7CisKKyAgICAgICAgLy8gVGhlIGNvbXBvdW5kIGZpbHRlciBvZmZzZXQgaXMgYW4gaW5kZXggaW50byBpZEJsb2NrUmVzdWx0LgorICAgICAgICAvLyBJZiBpdCBpcyAwLCB0aGVuIHRoZSBjb21wb3VuZCBmaWx0ZXIgb2NjdXJyZWQgYXQgdGhlIHN0YXJ0LAorICAgICAgICAvLyBhbmQgaXQgaXMgdGhlIG9mZnNldCB0byB0aGUgX3N0YXJ0XyBvZiB0aGUgY29tcG91bmQgZmlsdGVyCisgICAgICAgIC8vIHBhdHRlcm4uICBPdGhlcndpc2UgaXQgaXMgdGhlIG9mZnNldCB0byB0aGUgX2xpbWl0XyBvZiB0aGUKKyAgICAgICAgLy8gY29tcG91bmQgZmlsdGVyIHBhdHRlcm4gd2l0aGluIGlkQmxvY2tSZXN1bHQuCisgICAgICAgIHRoaXMuY29tcG91bmRGaWx0ZXIgPSBudWxsOworICAgICAgICBpbnQgY29tcG91bmRGaWx0ZXJPZmZzZXQgPSAtMTsKKworICAgICAgICAvLyBUaGUgbnVtYmVyIG9mIDo6SUQgYmxvY2sgZW50cmllcyB3ZSBoYXZlIHBhcnNlZAorICAgICAgICBpbnQgaWRCbG9ja0NvdW50ID0gMDsKKworICAgIG1haW46CisgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgIFN0cmluZyBydWxlID0gcnVsZUFycmF5Lm5leHRMaW5lKCk7CisgICAgICAgICAgICBpZiAocnVsZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgcG9zID0gMDsKKyAgICAgICAgICAgIGludCBsaW1pdCA9IHJ1bGUubGVuZ3RoKCk7CisgICAgICAgICAgICB3aGlsZSAocG9zIDwgbGltaXQpIHsKKyAgICAgICAgICAgICAgICBjaGFyIGMgPSBydWxlLmNoYXJBdChwb3MrKyk7CisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGMpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBTa2lwIGxpbmVzIHN0YXJ0aW5nIHdpdGggdGhlIGNvbW1lbnQgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgaWYgKGMgPT0gUlVMRV9DT01NRU5UX0NIQVIpIHsKKyAgICAgICAgICAgICAgICAgICAgcG9zID0gcnVsZS5pbmRleE9mKCJcbiIsIHBvcykgKyAxOworICAgICAgICAgICAgICAgICAgICBpZiAocG9zID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAvLyBObyAiXG4iIGZvdW5kOyByZXN0IG9mIHJ1bGUgaXMgYSBjb21tbmV0CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7IC8vIEVpdGhlciBmYWxsIG91dCBvciByZXN0YXJ0IHdpdGggbmV4dCBsaW5lCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIE9mdGVuIGEgcnVsZSBmaWxlIGNvbnRhaW5zIG11bHRpcGxlIGVycm9ycy4gIEl0J3MKKyAgICAgICAgICAgICAgICAvLyBjb252ZW5pZW50IHRvIHRoZSBydWxlIGF1dGhvciBpZiB0aGVzZSBhcmUgYWxsIHJlcG9ydGVkCisgICAgICAgICAgICAgICAgLy8gYXQgb25jZS4gIFdlIGtlZXAgcGFyc2luZyBydWxlcyBldmVuIGFmdGVyIGEgZmFpbHVyZSwgdXAKKyAgICAgICAgICAgICAgICAvLyB0byBhIHNwZWNpZmllZCBsaW1pdCwgYW5kIHJlcG9ydCBhbGwgZXJyb3JzIGF0IG9uY2UuCisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgLy8gV2UndmUgZm91bmQgdGhlIHN0YXJ0IG9mIGEgcnVsZSBvciBJRC4gIGMgaXMgaXRzIGZpcnN0CisgICAgICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlciwgYW5kIHBvcyBwb2ludHMgcGFzdCBjLgorICAgICAgICAgICAgICAgICAgICAtLXBvczsKKyAgICAgICAgICAgICAgICAgICAgLy8gTG9vayBmb3IgYW4gSUQgdG9rZW4uICBNdXN0IGhhdmUgYXQgbGVhc3QgSURfVE9LRU5fTEVOICsgMQorICAgICAgICAgICAgICAgICAgICAvLyBjaGFycyBsZWZ0LgorICAgICAgICAgICAgICAgICAgICBpZiAoKHBvcyArIElEX1RPS0VOX0xFTiArIDEpIDw9IGxpbWl0ICYmCisgICAgICAgICAgICAgICAgICAgICAgICBydWxlLnJlZ2lvbk1hdGNoZXMocG9zLCBJRF9UT0tFTiwgMCwgSURfVE9LRU5fTEVOKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcG9zICs9IElEX1RPS0VOX0xFTjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBydWxlLmNoYXJBdChwb3MpOworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGMpICYmIHBvcyA8IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytwb3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYyA9IHJ1bGUuY2hhckF0KHBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobW9kZSA9PSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgaGF2ZSBqdXN0IGVudGVyZWQgdGhlIGZvb3RlciA6OklEIGJsb2NrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSA9IDI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW4gdGhlIGZvcndhcmQgZGlyZWN0aW9uIGFkZCBlbGVtZW50cyBhdCB0aGUgZW5kLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEluIHRoZSByZXZlcnNlIGRpcmVjdGlvbiBhZGQgZWxlbWVudHMgYXQgdGhlIHN0YXJ0LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkU3BsaXRQb2ludCA9IGlkQmxvY2tDb3VudDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGludFtdIHAgPSBuZXcgaW50W10geyBwb3MgfTsKKworICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3JJRFBhcnNlci5TaW5nbGVJRCBpZCA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3JJRFBhcnNlci5wYXJzZVNpbmdsZUlEKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZSwgcCwgZGlyZWN0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwWzBdICE9IHBvcyAmJiBVdGlsaXR5LnBhcnNlQ2hhcihydWxlLCBwLCBFTkRfT0ZfUlVMRSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTdWNjZXNzZnVsIDo6SUQgcGFyc2UuCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGlyZWN0aW9uID09IFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRCbG9ja1Jlc3VsdC5hcHBlbmQoaWQuY2Fub25JRCkuYXBwZW5kKEVORF9PRl9SVUxFKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZEJsb2NrUmVzdWx0Lmluc2VydCgwLCBpZC5jYW5vbklEICsgRU5EX09GX1JVTEUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsraWRCbG9ja0NvdW50OworCisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENvdWxkbid0IHBhcnNlIGFuIElELiAgVHJ5IHRvIHBhcnNlIGEgZ2xvYmFsIGZpbHRlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludFtdIHdpdGhQYXJlbnMgPSBuZXcgaW50W10geyAtMSB9OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgZiA9IFRyYW5zbGl0ZXJhdG9ySURQYXJzZXIucGFyc2VHbG9iYWxGaWx0ZXIocnVsZSwgcCwgZGlyZWN0aW9uLCB3aXRoUGFyZW5zLCBpZEJsb2NrUmVzdWx0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZiAhPSBudWxsICYmIFV0aWxpdHkucGFyc2VDaGFyKHJ1bGUsIHAsIEVORF9PRl9SVUxFKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKGRpcmVjdGlvbiA9PSBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKSA9PQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpdGhQYXJlbnNbMF0gPT0gMCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb21wb3VuZEZpbHRlciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTXVsdGlwbGUgY29tcG91bmQgZmlsdGVycworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJNdWx0aXBsZSBnbG9iYWwgZmlsdGVycyIsIHJ1bGUsIHBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wb3VuZEZpbHRlciA9IGY7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wb3VuZEZpbHRlck9mZnNldCA9IGlkQmxvY2tDb3VudDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW52YWxpZCA6OmlkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENhbiBiZSBwYXJzZWQgYXMgbmVpdGhlciBhbiBJRCBub3IgYSBnbG9iYWwgZmlsdGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJJbnZhbGlkIDo6SUQiLCBydWxlLCBwb3MpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gcFswXTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXNlbWJsZXNQcmFnbWEocnVsZSwgcG9zLCBsaW1pdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBwcHAgPSBwYXJzZVByYWdtYShydWxlLCBwb3MsIGxpbWl0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcHAgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIlVucmVjb2duaXplZCBwcmFnbWEiLCBydWxlLCBwb3MpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gcHBwOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gUGFyc2UgYSBydWxlCisgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBwYXJzZVJ1bGUocnVsZSwgcG9zLCBsaW1pdCk7CisgICAgICAgICAgICAgICAgICAgICAgICArK3J1bGVDb3VudDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtb2RlID09IDIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyA6OmlkIGluIGlsbGVnYWwgcG9zaXRpb24gKGJlY2F1c2UgYSBydWxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb2NjdXJyZWQgYWZ0ZXIgdGhlIDo6aWQgZm9vdGVyIGJsb2NrKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCI6OklEIGluIGlsbGVnYWwgcG9zaXRpb24iLCBydWxlLCBwb3MpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSA9IDE7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3JDb3VudCA9PSAzMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgiXG5Nb3JlIHRoYW4gMzAgZXJyb3JzOyBmdXJ0aGVyIG1lc3NhZ2VzIHNxdWVsY2hlZCIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgbWFpbjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3JzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycyA9IG5ldyBTdHJpbmdCdWZmZXIoZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgiXG4iICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICsrZXJyb3JDb3VudDsKKyAgICAgICAgICAgICAgICAgICAgcG9zID0gcnVsZUVuZChydWxlLCBwb3MsIGxpbWl0KSArIDE7IC8vICsxIGFkdmFuY2VzIHBhc3QgJzsnCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWRCbG9jayA9IGlkQmxvY2tSZXN1bHQudG9TdHJpbmcoKTsKKworICAgICAgICBpZiAoaWRTcGxpdFBvaW50IDwgMCkgeworICAgICAgICAgICAgaWRTcGxpdFBvaW50ID0gaWRCbG9ja0NvdW50OworICAgICAgICB9CisKKyAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBUcmFuc2xpdGVyYXRvci5SRVZFUlNFKSB7CisgICAgICAgICAgICBpZFNwbGl0UG9pbnQgPSBpZEJsb2NrQ291bnQgLSBpZFNwbGl0UG9pbnQ7CisgICAgICAgIH0KKworICAgICAgICAvLyBDb252ZXJ0IHRoZSBzZXQgdmVjdG9yIHRvIGFuIGFycmF5CisgICAgICAgIGRhdGEudmFyaWFibGVzID0gbmV3IE9iamVjdFt2YXJpYWJsZXNWZWN0b3Iuc2l6ZSgpXTsKKyAgICAgICAgdmFyaWFibGVzVmVjdG9yLmNvcHlJbnRvKGRhdGEudmFyaWFibGVzKTsKKyAgICAgICAgdmFyaWFibGVzVmVjdG9yID0gbnVsbDsKKworICAgICAgICAvLyBEbyBtb3JlIHN5bnRheCBjaGVja2luZyBhbmQgaW5kZXggdGhlIHJ1bGVzCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpZiAoY29tcG91bmRGaWx0ZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGlmICgoZGlyZWN0aW9uID09IFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQgJiYKKyAgICAgICAgICAgICAgICAgICAgIGNvbXBvdW5kRmlsdGVyT2Zmc2V0ICE9IDApIHx8CisgICAgICAgICAgICAgICAgICAgIChkaXJlY3Rpb24gPT0gVHJhbnNsaXRlcmF0b3IuUkVWRVJTRSAmJgorICAgICAgICAgICAgICAgICAgICAgY29tcG91bmRGaWx0ZXJPZmZzZXQgIT0gaWRCbG9ja0NvdW50KSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJDb21wb3VuZCBmaWx0ZXJzIG1pc3BsYWNlZCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZGF0YS5ydWxlU2V0LmZyZWV6ZSgpOworCisgICAgICAgICAgICBpZiAocnVsZUNvdW50ID09IDApIHsKKyAgICAgICAgICAgICAgICBkYXRhID0gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGlmIChlcnJvcnMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGVycm9ycyA9IG5ldyBTdHJpbmdCdWZmZXIoZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCJcbiIpLmFwcGVuZChlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoZXJyb3JzICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oZXJyb3JzLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTUFJTiBQQVJTRVIuICBQYXJzZSB0aGUgbmV4dCBydWxlIGluIHRoZSBnaXZlbiBydWxlIHN0cmluZywgc3RhcnRpbmcKKyAgICAgKiBhdCBwb3MuICBSZXR1cm4gdGhlIGluZGV4IGFmdGVyIHRoZSBsYXN0IGNoYXJhY3RlciBwYXJzZWQuICBEbyBub3QKKyAgICAgKiBwYXJzZSBjaGFyYWN0ZXJzIGF0IG9yIGFmdGVyIGxpbWl0LgorICAgICAqCisgICAgICogSW1wb3J0YW50OiAgVGhlIGNoYXJhY3RlciBhdCBwb3MgbXVzdCBiZSBhIG5vbi13aGl0ZXNwYWNlIGNoYXJhY3RlcgorICAgICAqIHRoYXQgaXMgbm90IHRoZSBjb21tZW50IGNoYXJhY3Rlci4KKyAgICAgKgorICAgICAqIFRoaXMgbWV0aG9kIGhhbmRsZXMgcXVvdGluZywgZXNjYXBpbmcsIGFuZCB3aGl0ZXNwYWNlIHJlbW92YWwuICBJdAorICAgICAqIHBhcnNlcyB0aGUgZW5kLW9mLXJ1bGUgY2hhcmFjdGVyLiAgSXQgcmVjb2duaXplcyBjb250ZXh0IGFuZCBjdXJzb3IKKyAgICAgKiBpbmRpY2F0b3JzLiAgT25jZSBpdCBkb2VzIGEgbGV4aWNhbCBicmVha2Rvd24gb2YgdGhlIHJ1bGUgYXQgcG9zLCBpdAorICAgICAqIGNyZWF0ZXMgYSBydWxlIG9iamVjdCBhbmQgYWRkcyBpdCB0byBvdXIgcnVsZSBsaXN0LgorICAgICAqCisgICAgICogVGhpcyBtZXRob2QgaXMgdGlnaHRseSBjb3VwbGVkIHRvIHRoZSBpbm5lciBjbGFzcyBSdWxlSGFsZi4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBwYXJzZVJ1bGUoU3RyaW5nIHJ1bGUsIGludCBwb3MsIGludCBsaW1pdCkgeworICAgICAgICAvLyBMb2NhdGUgdGhlIGxlZnQgc2lkZSwgb3BlcmF0b3IsIGFuZCByaWdodCBzaWRlCisgICAgICAgIGludCBzdGFydCA9IHBvczsKKyAgICAgICAgY2hhciBvcGVyYXRvciA9IDA7CisKKyAgICAgICAgLy8gU2V0IHVwIHNlZ21lbnRzIGRhdGEKKyAgICAgICAgc2VnbWVudFN0YW5kaW5zID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBzZWdtZW50T2JqZWN0cyA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICBSdWxlSGFsZiBsZWZ0ICA9IG5ldyBSdWxlSGFsZigpOworICAgICAgICBSdWxlSGFsZiByaWdodCA9IG5ldyBSdWxlSGFsZigpOworCisgICAgICAgIHVuZGVmaW5lZFZhcmlhYmxlTmFtZSA9IG51bGw7CisgICAgICAgIHBvcyA9IGxlZnQucGFyc2UocnVsZSwgcG9zLCBsaW1pdCwgdGhpcyk7CisKKyAgICAgICAgaWYgKHBvcyA9PSBsaW1pdCB8fAorICAgICAgICAgICAgT1BFUkFUT1JTLmluZGV4T2Yob3BlcmF0b3IgPSBydWxlLmNoYXJBdCgtLXBvcykpIDwgMCkgeworICAgICAgICAgICAgc3ludGF4RXJyb3IoIk5vIG9wZXJhdG9yIHBvcz0iICsgcG9zLCBydWxlLCBzdGFydCk7CisgICAgICAgIH0KKyAgICAgICAgKytwb3M7CisKKyAgICAgICAgLy8gRm91bmQgYW4gb3BlcmF0b3IgY2hhci4gIENoZWNrIGZvciBmb3J3YXJkLXJldmVyc2Ugb3BlcmF0b3IuCisgICAgICAgIGlmIChvcGVyYXRvciA9PSBSRVZFUlNFX1JVTEVfT1AgJiYKKyAgICAgICAgICAgIChwb3MgPCBsaW1pdCAmJiBydWxlLmNoYXJBdChwb3MpID09IEZPUldBUkRfUlVMRV9PUCkpIHsKKyAgICAgICAgICAgICsrcG9zOworICAgICAgICAgICAgb3BlcmF0b3IgPSBGV0RSRVZfUlVMRV9PUDsKKyAgICAgICAgfQorCisgICAgICAgIHBvcyA9IHJpZ2h0LnBhcnNlKHJ1bGUsIHBvcywgbGltaXQsIHRoaXMpOworCisgICAgICAgIGlmIChwb3MgPCBsaW1pdCkgeworICAgICAgICAgICAgaWYgKHJ1bGUuY2hhckF0KC0tcG9zKSA9PSBFTkRfT0ZfUlVMRSkgeworICAgICAgICAgICAgICAgICsrcG9zOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBSdWxlSGFsZiBwYXJzZXIgbXVzdCBoYXZlIHRlcm1pbmF0ZWQgYXQgYW4gb3BlcmF0b3IKKyAgICAgICAgICAgICAgICBzeW50YXhFcnJvcigiVW5xdW90ZWQgb3BlcmF0b3IiLCBydWxlLCBzdGFydCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAob3BlcmF0b3IgPT0gVkFSSUFCTEVfREVGX09QKSB7CisgICAgICAgICAgICAvLyBMSFMgaXMgdGhlIG5hbWUuICBSSFMgaXMgYSBzaW5nbGUgY2hhcmFjdGVyLCBlaXRoZXIgYSBsaXRlcmFsCisgICAgICAgICAgICAvLyBvciBhIHNldCAoYWxyZWFkeSBwYXJzZWQpLiAgSWYgUkhTIGlzIGxvbmdlciB0aGFuIG9uZQorICAgICAgICAgICAgLy8gY2hhcmFjdGVyLCBpdCBpcyBlaXRoZXIgYSBtdWx0aS1jaGFyYWN0ZXIgc3RyaW5nLCBvciBtdWx0aXBsZQorICAgICAgICAgICAgLy8gc2V0cywgb3IgYSBtaXh0dXJlIG9mIGNoYXJzIGFuZCBzZXRzIC0tIHN5bnRheCBlcnJvci4KKworICAgICAgICAgICAgLy8gV2UgZXhwZWN0IHRvIHNlZSBhIHNpbmdsZSB1bmRlZmluZWQgdmFyaWFibGUgKHRoZSBvbmUgYmVpbmcKKyAgICAgICAgICAgIC8vIGRlZmluZWQpLgorICAgICAgICAgICAgaWYgKHVuZGVmaW5lZFZhcmlhYmxlTmFtZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIk1pc3NpbmcgJyQnIG9yIGR1cGxpY2F0ZSBkZWZpbml0aW9uIiwgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGxlZnQudGV4dC5sZW5ndGgoKSAhPSAxIHx8IGxlZnQudGV4dC5jaGFyQXQoMCkgIT0gdmFyaWFibGVMaW1pdCkgeworICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJNYWxmb3JtZWQgTEhTIiwgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGxlZnQuYW5jaG9yU3RhcnQgfHwgbGVmdC5hbmNob3JFbmQgfHwKKyAgICAgICAgICAgICAgICByaWdodC5hbmNob3JTdGFydCB8fCByaWdodC5hbmNob3JFbmQpIHsKKyAgICAgICAgICAgICAgICBzeW50YXhFcnJvcigiTWFsZm9ybWVkIHZhcmlhYmxlIGRlZiIsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIFdlIGFsbG93IGFueXRoaW5nIG9uIHRoZSByaWdodCwgaW5jbHVkaW5nIGFuIGVtcHR5IHN0cmluZy4KKyAgICAgICAgICAgIGludCBuID0gcmlnaHQudGV4dC5sZW5ndGgoKTsKKyAgICAgICAgICAgIGNoYXJbXSB2YWx1ZSA9IG5ldyBjaGFyW25dOworICAgICAgICAgICAgcmlnaHQudGV4dC5nZXRDaGFycygwLCBuLCB2YWx1ZSwgMCk7CisgICAgICAgICAgICBkYXRhLnZhcmlhYmxlTmFtZXMucHV0KHVuZGVmaW5lZFZhcmlhYmxlTmFtZSwgdmFsdWUpOworCisgICAgICAgICAgICArK3ZhcmlhYmxlTGltaXQ7CisgICAgICAgICAgICByZXR1cm4gcG9zOworICAgICAgICB9CisKKyAgICAgICAgLy8gSWYgdGhpcyBpcyBub3QgYSB2YXJpYWJsZSBkZWZpbml0aW9uIHJ1bGUsIHdlIHNob3VsZG4ndCBoYXZlCisgICAgICAgIC8vIGFueSB1bmRlZmluZWQgdmFyaWFibGUgbmFtZXMuCisgICAgICAgIGlmICh1bmRlZmluZWRWYXJpYWJsZU5hbWUgIT0gbnVsbCkgeworICAgICAgICAgICAgc3ludGF4RXJyb3IoIlVuZGVmaW5lZCB2YXJpYWJsZSAkIiArIHVuZGVmaW5lZFZhcmlhYmxlTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFZlcmlmeSBzZWdtZW50cworICAgICAgICBpZiAoc2VnbWVudFN0YW5kaW5zLmxlbmd0aCgpID4gc2VnbWVudE9iamVjdHMuc2l6ZSgpKSB7CisgICAgICAgICAgICBzeW50YXhFcnJvcigiVW5kZWZpbmVkIHNlZ21lbnQgcmVmZXJlbmNlIiwgcnVsZSwgc3RhcnQpOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxzZWdtZW50U3RhbmRpbnMubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgaWYgKHNlZ21lbnRTdGFuZGlucy5jaGFyQXQoaSkgPT0gMCkgeworICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJJbnRlcm5hbCBlcnJvciIsIHJ1bGUsIHN0YXJ0KTsgLy8gd2lsbCBuZXZlciBoYXBwZW4KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpPTA7IGk8c2VnbWVudE9iamVjdHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChzZWdtZW50T2JqZWN0cy5lbGVtZW50QXQoaSkgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJJbnRlcm5hbCBlcnJvciIsIHJ1bGUsIHN0YXJ0KTsgLy8gd2lsbCBuZXZlciBoYXBwZW4KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIElmIHRoZSBkaXJlY3Rpb24gd2Ugd2FudCBkb2Vzbid0IG1hdGNoIHRoZSBydWxlCisgICAgICAgIC8vIGRpcmVjdGlvbiwgZG8gbm90aGluZy4KKyAgICAgICAgaWYgKG9wZXJhdG9yICE9IEZXRFJFVl9SVUxFX09QICYmCisgICAgICAgICAgICAoKGRpcmVjdGlvbiA9PSBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKSAhPSAob3BlcmF0b3IgPT0gRk9SV0FSRF9SVUxFX09QKSkpIHsKKyAgICAgICAgICAgIHJldHVybiBwb3M7CisgICAgICAgIH0KKworICAgICAgICAvLyBUcmFuc2Zvcm0gdGhlIHJ1bGUgaW50byBhIGZvcndhcmQgcnVsZSBieSBzd2FwcGluZyB0aGUKKyAgICAgICAgLy8gc2lkZXMgaWYgbmVjZXNzYXJ5LgorICAgICAgICBpZiAoZGlyZWN0aW9uID09IFRyYW5zbGl0ZXJhdG9yLlJFVkVSU0UpIHsKKyAgICAgICAgICAgIFJ1bGVIYWxmIHRlbXAgPSBsZWZ0OworICAgICAgICAgICAgbGVmdCA9IHJpZ2h0OworICAgICAgICAgICAgcmlnaHQgPSB0ZW1wOworICAgICAgICB9CisKKyAgICAgICAgLy8gUmVtb3ZlIG5vbi1hcHBsaWNhYmxlIGVsZW1lbnRzIGluIGZvcndhcmQtcmV2ZXJzZQorICAgICAgICAvLyBydWxlcy4gIEJpZGlyZWN0aW9uYWwgcnVsZXMgaWdub3JlIGVsZW1lbnRzIHRoYXQgZG8gbm90CisgICAgICAgIC8vIGFwcGx5LgorICAgICAgICBpZiAob3BlcmF0b3IgPT0gRldEUkVWX1JVTEVfT1ApIHsKKyAgICAgICAgICAgIHJpZ2h0LnJlbW92ZUNvbnRleHQoKTsKKyAgICAgICAgICAgIGxlZnQuY3Vyc29yID0gLTE7CisgICAgICAgICAgICBsZWZ0LmN1cnNvck9mZnNldCA9IDA7CisgICAgICAgIH0KKworICAgICAgICAvLyBOb3JtYWxpemUgY29udGV4dAorICAgICAgICBpZiAobGVmdC5hbnRlIDwgMCkgeworICAgICAgICAgICAgbGVmdC5hbnRlID0gMDsKKyAgICAgICAgfQorICAgICAgICBpZiAobGVmdC5wb3N0IDwgMCkgeworICAgICAgICAgICAgbGVmdC5wb3N0ID0gbGVmdC50ZXh0Lmxlbmd0aCgpOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ29udGV4dCBpcyBvbmx5IGFsbG93ZWQgb24gdGhlIGlucHV0IHNpZGUuICBDdXJzb3JzIGFyZSBvbmx5CisgICAgICAgIC8vIGFsbG93ZWQgb24gdGhlIG91dHB1dCBzaWRlLiAgU2VnbWVudCBkZWxpbWl0ZXJzIGNhbiBvbmx5IGFwcGVhcgorICAgICAgICAvLyBvbiB0aGUgbGVmdCwgYW5kIHJlZmVyZW5jZXMgb24gdGhlIHJpZ2h0LiAgQ3Vyc29yIG9mZnNldAorICAgICAgICAvLyBjYW5ub3QgYXBwZWFyIHdpdGhvdXQgYW4gZXhwbGljaXQgY3Vyc29yLiAgQ3Vyc29yIG9mZnNldAorICAgICAgICAvLyBjYW5ub3QgcGxhY2UgdGhlIGN1cnNvciBvdXRzaWRlIHRoZSBsaW1pdHMgb2YgdGhlIGNvbnRleHQuCisgICAgICAgIC8vIEFuY2hvcnMgYXJlIG9ubHkgYWxsb3dlZCBvbiB0aGUgaW5wdXQgc2lkZS4KKyAgICAgICAgaWYgKHJpZ2h0LmFudGUgPj0gMCB8fCByaWdodC5wb3N0ID49IDAgfHwgbGVmdC5jdXJzb3IgPj0gMCB8fAorICAgICAgICAgICAgKHJpZ2h0LmN1cnNvck9mZnNldCAhPSAwICYmIHJpZ2h0LmN1cnNvciA8IDApIHx8CisgICAgICAgICAgICAvLyAtIFRoZSBmb2xsb3dpbmcgdHdvIGNoZWNrcyB3ZXJlIHVzZWQgdG8gZW5zdXJlIHRoYXQgdGhlCisgICAgICAgICAgICAvLyAtIHRoZSBjdXJzb3Igb2Zmc2V0IHN0YXllZCB3aXRoaW4gdGhlIGFudGUtIG9yIHBvc3Rjb250ZXh0LgorICAgICAgICAgICAgLy8gLSBIb3dldmVyLCB3aXRoIHRoZSBhZGRpdGlvbiBvZiBxdWFudGlmaWVycywgd2UgaGF2ZSB0bworICAgICAgICAgICAgLy8gLSBhbGxvdyBhcmJpdHJhcnkgY3Vyc29yIG9mZnNldHMgYW5kIGRvIHJ1bnRpbWUgY2hlY2tpbmcuCisgICAgICAgICAgICAvLyhyaWdodC5jdXJzb3JPZmZzZXQgPiAobGVmdC50ZXh0Lmxlbmd0aCgpIC0gbGVmdC5wb3N0KSkgfHwKKyAgICAgICAgICAgIC8vKC1yaWdodC5jdXJzb3JPZmZzZXQgPiBsZWZ0LmFudGUpIHx8CisgICAgICAgICAgICByaWdodC5hbmNob3JTdGFydCB8fCByaWdodC5hbmNob3JFbmQgfHwKKyAgICAgICAgICAgICFsZWZ0LmlzVmFsaWRJbnB1dCh0aGlzKSB8fCAhcmlnaHQuaXNWYWxpZE91dHB1dCh0aGlzKSB8fAorICAgICAgICAgICAgbGVmdC5hbnRlID4gbGVmdC5wb3N0KSB7CisgICAgICAgICAgICBzeW50YXhFcnJvcigiTWFsZm9ybWVkIHJ1bGUiLCBydWxlLCBzdGFydCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBGbGF0dGVuIHNlZ21lbnQgb2JqZWN0cyB2ZWN0b3IgdG8gYW4gYXJyYXkKKyAgICAgICAgVW5pY29kZU1hdGNoZXJbXSBzZWdtZW50c0FycmF5ID0gbnVsbDsKKyAgICAgICAgaWYgKHNlZ21lbnRPYmplY3RzLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgIHNlZ21lbnRzQXJyYXkgPSBuZXcgVW5pY29kZU1hdGNoZXJbc2VnbWVudE9iamVjdHMuc2l6ZSgpXTsKKyAgICAgICAgICAgIHNlZ21lbnRPYmplY3RzLnRvQXJyYXkoc2VnbWVudHNBcnJheSk7CisgICAgICAgIH0KKworICAgICAgICBkYXRhLnJ1bGVTZXQuYWRkUnVsZShuZXcgVHJhbnNsaXRlcmF0aW9uUnVsZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0LnRleHQsIGxlZnQuYW50ZSwgbGVmdC5wb3N0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0LnRleHQsIHJpZ2h0LmN1cnNvciwgcmlnaHQuY3Vyc29yT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlZ21lbnRzQXJyYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdC5hbmNob3JTdGFydCwgbGVmdC5hbmNob3JFbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSkpOworCisgICAgICAgIHJldHVybiBwb3M7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSB2YXJpYWJsZSByYW5nZSB0byBbc3RhcnQsIGVuZF0gKGluY2x1c2l2ZSkuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHNldFZhcmlhYmxlUmFuZ2UoaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgIGlmIChzdGFydCA+IGVuZCB8fCBzdGFydCA8IDAgfHwgZW5kID4gMHhGRkZGKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIHZhcmlhYmxlIHJhbmdlICIgKyBzdGFydCArICIsICIgKyBlbmQpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBkYXRhLnZhcmlhYmxlc0Jhc2UgPSB2YXJpYWJsZU5leHQgPSAoY2hhcikgc3RhcnQ7IC8vIGZpcnN0IHByaXZhdGUgdXNlCisgICAgICAgIHZhcmlhYmxlTGltaXQgPSAoY2hhcikgKGVuZCArIDEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFzc2VydCB0aGF0IHRoZSBnaXZlbiBjaGFyYWN0ZXIgaXMgTk9UIHdpdGhpbiB0aGUgdmFyaWFibGUgcmFuZ2UuCisgICAgICogSWYgaXQgaXMsIHNpZ25hbCBhbiBlcnJvci4gIFRoaXMgaXMgbmVjY2VzYXJ5IHRvIGVuc3VyZSB0aGF0IHRoZQorICAgICAqIHZhcmlhYmxlIHJhbmdlIGRvZXMgbm90IG92ZXJsYXAgY2hhcmFjdGVycyB1c2VkIGluIGEgcnVsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgY2hlY2tWYXJpYWJsZVJhbmdlKGludCBjaCwgU3RyaW5nIHJ1bGUsIGludCBzdGFydCkgeworICAgICAgICBpZiAoY2ggPj0gZGF0YS52YXJpYWJsZXNCYXNlICYmIGNoIDwgdmFyaWFibGVMaW1pdCkgeworICAgICAgICAgICAgc3ludGF4RXJyb3IoIlZhcmlhYmxlIHJhbmdlIGNoYXJhY3RlciBpbiBydWxlIiwgcnVsZSwgc3RhcnQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBtYXhpbXVtIGJhY2t1cCB0byAnYmFja3VwJywgaW4gcmVzcG9uc2UgdG8gYSBwcmFnbWEKKyAgICAgKiBzdGF0ZW1lbnQuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHByYWdtYU1heGltdW1CYWNrdXAoaW50IGJhY2t1cCkgeworICAgICAgICAvL1RPRE8gRmluaXNoCisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oInVzZSBtYXhpbXVtIGJhY2t1cCBwcmFnbWEgbm90IGltcGxlbWVudGVkIHlldCIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEJlZ2luIG5vcm1hbGl6aW5nIGFsbCBydWxlcyB1c2luZyB0aGUgZ2l2ZW4gbW9kZSwgaW4gcmVzcG9uc2UKKyAgICAgKiB0byBhIHByYWdtYSBzdGF0ZW1lbnQuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHByYWdtYU5vcm1hbGl6ZVJ1bGVzKE5vcm1hbGl6ZXIuTW9kZSBtb2RlKSB7CisgICAgICAgIC8vVE9ETyBGaW5pc2gKKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigidXNlIG5vcm1hbGl6ZSBydWxlcyBwcmFnbWEgbm90IGltcGxlbWVudGVkIHlldCIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBydWxlIGxvb2tzIGxpa2UgYSBwcmFnbWEuCisgICAgICogQHBhcmFtIHBvcyBvZmZzZXQgdG8gdGhlIGZpcnN0IG5vbi13aGl0ZXNwYWNlIGNoYXJhY3RlcgorICAgICAqIG9mIHRoZSBydWxlLgorICAgICAqIEBwYXJhbSBsaW1pdCBwb2ludGVyIHBhc3QgdGhlIGxhc3QgY2hhcmFjdGVyIG9mIHRoZSBydWxlLgorICAgICAqLworICAgIHN0YXRpYyBib29sZWFuIHJlc2VtYmxlc1ByYWdtYShTdHJpbmcgcnVsZSwgaW50IHBvcywgaW50IGxpbWl0KSB7CisgICAgICAgIC8vIE11c3Qgc3RhcnQgd2l0aCAvdXNlXHMvaQorICAgICAgICByZXR1cm4gVXRpbGl0eS5wYXJzZVBhdHRlcm4ocnVsZSwgcG9zLCBsaW1pdCwgInVzZSAiLCBudWxsKSA+PSAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlIGEgcHJhZ21hLiAgVGhpcyBtZXRob2QgYXNzdW1lcyByZXNlbWJsZXNQcmFnbWEoKSBoYXMKKyAgICAgKiBhbHJlYWR5IHJldHVybmVkIHRydWUuCisgICAgICogQHBhcmFtIHBvcyBvZmZzZXQgdG8gdGhlIGZpcnN0IG5vbi13aGl0ZXNwYWNlIGNoYXJhY3RlcgorICAgICAqIG9mIHRoZSBydWxlLgorICAgICAqIEBwYXJhbSBsaW1pdCBwb2ludGVyIHBhc3QgdGhlIGxhc3QgY2hhcmFjdGVyIG9mIHRoZSBydWxlLgorICAgICAqIEByZXR1cm4gdGhlIHBvc2l0aW9uIGluZGV4IGFmdGVyIHRoZSBmaW5hbCAnOycgb2YgdGhlIHByYWdtYSwKKyAgICAgKiBvciAtMSBvbiBmYWlsdXJlLgorICAgICAqLworICAgIHByaXZhdGUgaW50IHBhcnNlUHJhZ21hKFN0cmluZyBydWxlLCBpbnQgcG9zLCBpbnQgbGltaXQpIHsKKyAgICAgICAgaW50W10gYXJyYXkgPSBuZXcgaW50WzJdOworCisgICAgICAgIC8vIHJlc2VtYmxlc1ByYWdtYSgpIGhhcyBhbHJlYWR5IHJldHVybmVkIHRydWUsIHNvIHdlCisgICAgICAgIC8vIGtub3cgdGhhdCBwb3MgcG9pbnRzIHRvIC91c2Vccy9pOyB3ZSBjYW4gc2tpcCA0IGNoYXJhY3RlcnMKKyAgICAgICAgLy8gaW1tZWRpYXRlbHkKKyAgICAgICAgcG9zICs9IDQ7CisgICAgICAgIAorICAgICAgICAvLyBIZXJlIGFyZSB0aGUgcHJhZ21hcyB3ZSByZWNvZ25pemU6CisgICAgICAgIC8vIHVzZSB2YXJpYWJsZSByYW5nZSAweEUwMDAgMHhFRkZGOworICAgICAgICAvLyB1c2UgbWF4aW11bSBiYWNrdXAgMTY7CisgICAgICAgIC8vIHVzZSBuZmQgcnVsZXM7CisgICAgICAgIGludCBwID0gVXRpbGl0eS5wYXJzZVBhdHRlcm4ocnVsZSwgcG9zLCBsaW1pdCwgIn52YXJpYWJsZSByYW5nZSAjICN+OyIsIGFycmF5KTsKKyAgICAgICAgaWYgKHAgPj0gMCkgeworICAgICAgICAgICAgc2V0VmFyaWFibGVSYW5nZShhcnJheVswXSwgYXJyYXlbMV0pOworICAgICAgICAgICAgcmV0dXJuIHA7CisgICAgICAgIH0KKworICAgICAgICBwID0gVXRpbGl0eS5wYXJzZVBhdHRlcm4ocnVsZSwgcG9zLCBsaW1pdCwgIn5tYXhpbXVtIGJhY2t1cCAjfjsiLCBhcnJheSk7CisgICAgICAgIGlmIChwID49IDApIHsKKyAgICAgICAgICAgIHByYWdtYU1heGltdW1CYWNrdXAoYXJyYXlbMF0pOworICAgICAgICAgICAgcmV0dXJuIHA7CisgICAgICAgIH0KKworICAgICAgICBwID0gVXRpbGl0eS5wYXJzZVBhdHRlcm4ocnVsZSwgcG9zLCBsaW1pdCwgIn5uZmQgcnVsZXN+OyIsIG51bGwpOworICAgICAgICBpZiAocCA+PSAwKSB7CisgICAgICAgICAgICBwcmFnbWFOb3JtYWxpemVSdWxlcyhOb3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICByZXR1cm4gcDsKKyAgICAgICAgfQorCisgICAgICAgIHAgPSBVdGlsaXR5LnBhcnNlUGF0dGVybihydWxlLCBwb3MsIGxpbWl0LCAifm5mYyBydWxlc347IiwgbnVsbCk7CisgICAgICAgIGlmIChwID49IDApIHsKKyAgICAgICAgICAgIHByYWdtYU5vcm1hbGl6ZVJ1bGVzKE5vcm1hbGl6ZXIuTkZDKTsKKyAgICAgICAgICAgIHJldHVybiBwOworICAgICAgICB9CisKKyAgICAgICAgLy8gU3ludGF4IGVycm9yOiB1bmFibGUgdG8gcGFyc2UgcHJhZ21hCisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaHJvdyBhbiBleGNlcHRpb24gaW5kaWNhdGluZyBhIHN5bnRheCBlcnJvci4gIFNlYXJjaCB0aGUgcnVsZSBzdHJpbmcKKyAgICAgKiBmb3IgdGhlIHByb2JhYmxlIGVuZCBvZiB0aGUgcnVsZS4gIE9mIGNvdXJzZSwgaWYgdGhlIGVycm9yIGlzIHRoYXQKKyAgICAgKiB0aGUgZW5kIG9mIHJ1bGUgbWFya2VyIGlzIG1pc3NpbmcsIHRoZW4gdGhlIHJ1bGUgZW5kIHdpbGwgbm90IGJlIGZvdW5kLgorICAgICAqIEluIGFueSBjYXNlIHRoZSBydWxlIHN0YXJ0IHdpbGwgYmUgY29ycmVjdGx5IHJlcG9ydGVkLgorICAgICAqIEBwYXJhbSBtc2cgZXJyb3IgZGVzY3JpcHRpb24KKyAgICAgKiBAcGFyYW0gcnVsZSBwYXR0ZXJuIHN0cmluZworICAgICAqIEBwYXJhbSBzdGFydCBwb3NpdGlvbiBvZiBmaXJzdCBjaGFyYWN0ZXIgb2YgY3VycmVudCBydWxlCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHZvaWQgc3ludGF4RXJyb3IoU3RyaW5nIG1zZywgU3RyaW5nIHJ1bGUsIGludCBzdGFydCkgeworICAgICAgICBpbnQgZW5kID0gcnVsZUVuZChydWxlLCBzdGFydCwgcnVsZS5sZW5ndGgoKSk7CisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24obXNnICsgIiBpbiBcIiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHkuZXNjYXBlKHJ1bGUuc3Vic3RyaW5nKHN0YXJ0LCBlbmQpKSArICciJyk7CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIGludCBydWxlRW5kKFN0cmluZyBydWxlLCBpbnQgc3RhcnQsIGludCBsaW1pdCkgeworICAgICAgICBpbnQgZW5kID0gVXRpbGl0eS5xdW90ZWRJbmRleE9mKHJ1bGUsIHN0YXJ0LCBsaW1pdCwgIjsiKTsKKyAgICAgICAgaWYgKGVuZCA8IDApIHsKKyAgICAgICAgICAgIGVuZCA9IGxpbWl0OworICAgICAgICB9CisgICAgICAgIHJldHVybiBlbmQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgYSBVbmljb2RlU2V0IG91dCwgc3RvcmUgaXQsIGFuZCByZXR1cm4gdGhlIHN0YW5kLWluIGNoYXJhY3RlcgorICAgICAqIHVzZWQgdG8gcmVwcmVzZW50IGl0LgorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgY2hhciBwYXJzZVNldChTdHJpbmcgcnVsZSwgUGFyc2VQb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgVW5pY29kZVNldCBzZXQgPSBuZXcgVW5pY29kZVNldChydWxlLCBwb3MsIHBhcnNlRGF0YSk7CisgICAgICAgIGlmICh2YXJpYWJsZU5leHQgPj0gdmFyaWFibGVMaW1pdCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIlByaXZhdGUgdXNlIHZhcmlhYmxlcyBleGhhdXN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICBzZXQuY29tcGFjdCgpOworICAgICAgICByZXR1cm4gZ2VuZXJhdGVTdGFuZEluRm9yKHNldCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2VuZXJhdGUgYW5kIHJldHVybiBhIHN0YW5kLWluIGZvciBhIG5ldyBVbmljb2RlTWF0Y2hlciBvciBVbmljb2RlUmVwbGFjZXIuCisgICAgICogU3RvcmUgdGhlIG9iamVjdC4KKyAgICAgKi8KKyAgICBjaGFyIGdlbmVyYXRlU3RhbmRJbkZvcihPYmplY3Qgb2JqKSB7CisgICAgICAgIC8vIGFzc2VydChvYmogIT0gbnVsbCk7CisKKyAgICAgICAgLy8gTG9vayB1cCBwcmV2aW91cyBzdGFuZC1pbiwgaWYgYW55LiAgVGhpcyBpcyBhIHNob3J0IGxpc3QKKyAgICAgICAgLy8gKHR5cGljYWwgbiBpcyAwLCAxLCBvciAyKTsgbGluZWFyIHNlYXJjaCBpcyBvcHRpbWFsLgorICAgICAgICBmb3IgKGludCBpPTA7IGk8dmFyaWFibGVzVmVjdG9yLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBpZiAodmFyaWFibGVzVmVjdG9yLmVsZW1lbnRBdChpKSA9PSBvYmopIHsgLy8gW3NpY10gcG9pbnRlciBjb21wYXJpc29uCisgICAgICAgICAgICAgICAgcmV0dXJuIChjaGFyKSAoZGF0YS52YXJpYWJsZXNCYXNlICsgaSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAodmFyaWFibGVOZXh0ID49IHZhcmlhYmxlTGltaXQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJWYXJpYWJsZSByYW5nZSBleGhhdXN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICB2YXJpYWJsZXNWZWN0b3IuYWRkRWxlbWVudChvYmopOworICAgICAgICByZXR1cm4gdmFyaWFibGVOZXh0Kys7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzdGFuZGluIGZvciBzZWdtZW50IHNlZyAoMS1iYXNlZCkuCisgICAgICovCisgICAgcHVibGljIGNoYXIgZ2V0U2VnbWVudFN0YW5kaW4oaW50IHNlZykgeworICAgICAgICBpZiAoc2VnbWVudFN0YW5kaW5zLmxlbmd0aCgpIDwgc2VnKSB7CisgICAgICAgICAgICBzZWdtZW50U3RhbmRpbnMuc2V0TGVuZ3RoKHNlZyk7CisgICAgICAgIH0KKyAgICAgICAgY2hhciBjID0gc2VnbWVudFN0YW5kaW5zLmNoYXJBdChzZWctMSk7CisgICAgICAgIGlmIChjID09IDApIHsKKyAgICAgICAgICAgIGlmICh2YXJpYWJsZU5leHQgPj0gdmFyaWFibGVMaW1pdCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJWYXJpYWJsZSByYW5nZSBleGhhdXN0ZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGMgPSB2YXJpYWJsZU5leHQrKzsKKyAgICAgICAgICAgIC8vIFNldCBhIHBsYWNlaG9sZGVyIGluIHRoZSBtYXN0ZXIgdmFyaWFibGVzIHZlY3RvciB0aGF0IHdpbGwgYmUKKyAgICAgICAgICAgIC8vIGZpbGxlZCBpbiBsYXRlciBieSBzZXRTZWdtZW50T2JqZWN0KCkuICBXZSBrbm93IHRoYXQgd2Ugd2lsbCBnZXQKKyAgICAgICAgICAgIC8vIGNhbGxlZCBmaXJzdCBiZWNhdXNlIHNldFNlZ21lbnRPYmplY3QoKSB3aWxsIGNhbGwgdXMuCisgICAgICAgICAgICB2YXJpYWJsZXNWZWN0b3IuYWRkRWxlbWVudChudWxsKTsKKyAgICAgICAgICAgIHNlZ21lbnRTdGFuZGlucy5zZXRDaGFyQXQoc2VnLTEsIGMpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBjOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIG9iamVjdCBmb3Igc2VnbWVudCBzZWcgKDEtYmFzZWQpLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNlZ21lbnRPYmplY3QoaW50IHNlZywgU3RyaW5nTWF0Y2hlciBvYmopIHsKKyAgICAgICAgLy8gU2luY2Ugd2UgY2FsbCBwYXJzZVNlY3Rpb24oKSByZWN1cnNpdmVseSwgbmVzdGVkCisgICAgICAgIC8vIHNlZ21lbnRzIHdpbGwgcmVzdWx0IGluIHNlZ21lbnQgaSsxIGdldHRpbmcgcGFyc2VkCisgICAgICAgIC8vIGFuZCBzdG9yZWQgYmVmb3JlIHNlZ21lbnQgaTsgYmUgY2FyZWZ1bCB3aXRoIHRoZQorICAgICAgICAvLyB2ZWN0b3IgaGFuZGxpbmcgaGVyZS4KKyAgICAgICAgaWYgKHNlZ21lbnRPYmplY3RzLnNpemUoKSA8IHNlZykgeworICAgICAgICAgICAgc2VnbWVudE9iamVjdHMuc2V0U2l6ZShzZWcpOworICAgICAgICB9CisgICAgICAgIGludCBpbmRleCA9IGdldFNlZ21lbnRTdGFuZGluKHNlZykgLSBkYXRhLnZhcmlhYmxlc0Jhc2U7CisgICAgICAgIGlmIChzZWdtZW50T2JqZWN0cy5lbGVtZW50QXQoc2VnLTEpICE9IG51bGwgfHwKKyAgICAgICAgICAgIHZhcmlhYmxlc1ZlY3Rvci5lbGVtZW50QXQoaW5kZXgpICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCk7IC8vIHNob3VsZCBuZXZlciBoYXBwZW4KKyAgICAgICAgfQorICAgICAgICBzZWdtZW50T2JqZWN0cy5zZXRFbGVtZW50QXQob2JqLCBzZWctMSk7CisgICAgICAgIHZhcmlhYmxlc1ZlY3Rvci5zZXRFbGVtZW50QXQob2JqLCBpbmRleCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzdGFuZC1pbiBmb3IgdGhlIGRvdCBzZXQuICBJdCBpcyBhbGxvY2F0ZWQgdGhlIGZpcnN0CisgICAgICogdGltZSBhbmQgcmV1c2VkIHRoZXJlYWZ0ZXIuCisgICAgICovCisgICAgY2hhciBnZXREb3RTdGFuZEluKCkgeworICAgICAgICBpZiAoZG90U3RhbmRJbiA9PSAtMSkgeworICAgICAgICAgICAgZG90U3RhbmRJbiA9IGdlbmVyYXRlU3RhbmRJbkZvcihuZXcgVW5pY29kZVNldChET1RfU0VUKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChjaGFyKSBkb3RTdGFuZEluOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFwcGVuZCB0aGUgdmFsdWUgb2YgdGhlIGdpdmVuIHZhcmlhYmxlIG5hbWUgdG8gdGhlIGdpdmVuCisgICAgICogU3RyaW5nQnVmZmVyLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBuYW1lIGlzIHVua25vd24uCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGFwcGVuZFZhcmlhYmxlRGVmKFN0cmluZyBuYW1lLCBTdHJpbmdCdWZmZXIgYnVmKSB7CisgICAgICAgIGNoYXJbXSBjaCA9IChjaGFyW10pIGRhdGEudmFyaWFibGVOYW1lcy5nZXQobmFtZSk7CisgICAgICAgIGlmIChjaCA9PSBudWxsKSB7CisgICAgICAgICAgICAvLyBXZSBhbGxvdyBvbmUgdW5kZWZpbmVkIHZhcmlhYmxlIHNvIHRoYXQgdmFyaWFibGUgZGVmaW5pdGlvbgorICAgICAgICAgICAgLy8gc3RhdGVtZW50cyB3b3JrLiAgRm9yIHRoZSBmaXJzdCB1bmRlZmluZWQgdmFyaWFibGUgd2UgcmV0dXJuCisgICAgICAgICAgICAvLyB0aGUgc3BlY2lhbCBwbGFjZWhvbGRlciB2YXJpYWJsZUxpbWl0LTEsIGFuZCBzYXZlIHRoZSB2YXJpYWJsZQorICAgICAgICAgICAgLy8gbmFtZS4KKyAgICAgICAgICAgIGlmICh1bmRlZmluZWRWYXJpYWJsZU5hbWUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHVuZGVmaW5lZFZhcmlhYmxlTmFtZSA9IG5hbWU7CisgICAgICAgICAgICAgICAgaWYgKHZhcmlhYmxlTmV4dCA+PSB2YXJpYWJsZUxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJQcml2YXRlIHVzZSB2YXJpYWJsZXMgZXhoYXVzdGVkIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoKGNoYXIpIC0tdmFyaWFibGVMaW1pdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlVuZGVmaW5lZCB2YXJpYWJsZSAkIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBuYW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoY2gpOworICAgICAgICB9CisgICAgfQorfQorCisvL2VvZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNsaXRlcmF0b3JSZWdpc3RyeS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNsaXRlcmF0b3JSZWdpc3RyeS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM5Yjg3ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9UcmFuc2xpdGVyYXRvclJlZ2lzdHJ5LmphdmEKQEAgLTAsMCArMSw4OTMgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChjKSAyMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICAwOC8xOS8yMDAxICBhbGl1ICAgICAgICBDcmVhdGlvbi4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlRGF0YTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkxvY2FsZVV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5kYXRhLlJlc291cmNlUmVhZGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVNjcmlwdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhc2VJbnNlbnNpdGl2ZVN0cmluZzsKKworaW1wb3J0IGphdmEuaW8uVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLlJlc291cmNlQnVuZGxlOworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CisKK2NsYXNzIFRyYW5zbGl0ZXJhdG9yUmVnaXN0cnkgeworCisgICAgLy8gY2hhciBjb25zdGFudHMKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIExPQ0FMRV9TRVAgID0gJ18nOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgSURfU0VQICAgICAgPSAnLSc7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBWQVJJQU5UX1NFUCA9ICcvJzsKKworICAgIC8vIFN0cmluZyBjb25zdGFudHMKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgTk9fVkFSSUFOVCA9ICIiOyAvLyBlbXB0eSBzdHJpbmcKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQU5ZID0gIkFueSI7CisKKyAgICAvKioKKyAgICAgKiBSZXNvdXJjZSBidW5kbGUga2V5IGZvciB0aGUgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IgcnVsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgUkJfUlVMRSA9ICJSdWxlIjsKKworICAgIC8qKgorICAgICAqIFJlc291cmNlIGJ1bmRsZSBjb250YWluaW5nIGxvY2FsZS1zcGVjaWZpYyB0cmFuc2xpdGVyYXRvciBkYXRhLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBSQl9MT0NBTEVfRUxFTUVOVFMgPQorICAgICAgICAiY29tLmlibS5pY3UuaW1wbC5kYXRhLkxvY2FsZUVsZW1lbnRzIjsKKworICAgIC8qKgorICAgICAqIExvY2FsZSBpbmRpY2F0aW5nIHRoZSByb290LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvY2FsZSBST09UX0xPQ0FMRSA9IG5ldyBMb2NhbGUoIiIsICIiLCAiIik7CisKKyAgICAvKioKKyAgICAgKiBEeW5hbWljIHJlZ2lzdHJ5IG1hcHBpbmcgZnVsbCBJRHMgdG8gRW50cnkgb2JqZWN0cy4gIFRoaXMKKyAgICAgKiBjb250YWlucyBib3RoIHB1YmxpYyBhbmQgaW50ZXJuYWwgZW50aXRpZXMuICBUaGUgdmlzaWJpbGl0eSBpcworICAgICAqIGNvbnRyb2xsZWQgYnkgd2hldGhlciBhbiBlbnRyeSBpcyBsaXN0ZWQgaW4gYXZhaWxhYmxlSURzIGFuZAorICAgICAqIHNwZWNEQUcgb3Igbm90LgorICAgICAqCisgICAgICogS2V5cyBhcmUgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nIG9iamVjdHMuCisgICAgICogVmFsdWVzIGFyZSBvYmplY3RzIG9mIGNsYXNzIENsYXNzIChzdWJjbGFzcyBvZiBUcmFuc2xpdGVyYXRvciksCisgICAgICogUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSwgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSwgb3Igb25lCisgICAgICogb2YgdGhlIGVudHJ5IGNsYXNzZXMgZGVmaW5lZCBoZXJlIChBbGlhc0VudHJ5IG9yIFJlc291cmNlRW50cnkpLgorICAgICAqLworICAgIHByaXZhdGUgSGFzaHRhYmxlIHJlZ2lzdHJ5OworCisgICAgLyoqCisgICAgICogREFHIG9mIHZpc2libGUgSURzIGJ5IHNwZWMuICBIYXNodGFibGU6IHNvdXJjZSA9PiAoSGFzaHRhYmxlOgorICAgICAqIHRhcmdldCA9PiAoVVZlY3RvcjogdmFyaWFudCkpIFRoZSBVVmVjdG9yIG9mIHZhcmlhbnRzIGlzIG5ldmVyCisgICAgICogZW1wdHkuICBGb3IgYSBzb3VyY2UtdGFyZ2V0IHdpdGggbm8gdmFyaWFudCwgdGhlIHNwZWNpYWwKKyAgICAgKiB2YXJpYW50IE5PX1ZBUklBTlQgKHRoZSBlbXB0eSBzdHJpbmcpIGlzIHN0b3JlZCBpbiBzbG90IHplcm8gb2YKKyAgICAgKiB0aGUgVVZlY3Rvci4KKyAgICAgKgorICAgICAqIEtleXMgYXJlIENhc2VJbnNlbnNpdGl2ZVN0cmluZyBvYmplY3RzLgorICAgICAqIFZhbHVlcyBhcmUgSGFzaHRhYmxlIG9mIChDYXNlSW5zZW5zaXRpdmVTdHJpbmcgLT4gVmVjdG9yIG9mCisgICAgICogQ2FzZUluc2Vuc2l0aXZlU3RyaW5nKQorICAgICAqLworICAgIHByaXZhdGUgSGFzaHRhYmxlIHNwZWNEQUc7CisKKyAgICAvKioKKyAgICAgKiBWZWN0b3Igb2YgcHVibGljIGZ1bGwgSURzIChDYXNlSW5zZW5zaXRpdmVTdHJpbmcgb2JqZWN0cykuCisgICAgICovCisgICAgcHJpdmF0ZSBWZWN0b3IgYXZhaWxhYmxlSURzOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY2xhc3MgU3BlYworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQSBTcGVjIGlzIGEgc3RyaW5nIHNwZWNpZnlpbmcgZWl0aGVyIGEgc291cmNlIG9yIGEgdGFyZ2V0LiAgSW4gbW9yZQorICAgICAqIGdlbmVyYWwgdGVybXMsIGl0IG1heSBhbHNvIHNwZWNpZnkgYSB2YXJpYW50LCBidXQgd2Ugb25seSB1c2UgdGhlCisgICAgICogU3BlYyBjbGFzcyBmb3Igc291cmNlcyBhbmQgdGFyZ2V0cy4KKyAgICAgKgorICAgICAqIEEgU3BlYyBtYXkgYmUgYSBsb2NhbGUgb3IgYSBzY3JpcHQuICBJZiBpdCBpcyBhIGxvY2FsZSwgaXQgaGFzIGEKKyAgICAgKiBmYWxsYmFjayBjaGFpbiB0aGF0IGdvZXMgeHhfWVlfWlpaIC0+IHh4X1lZIC0+IHh4IC0+IHNzc3MsIHdoZXJlCisgICAgICogc3NzcyBpcyB0aGUgc2NyaXB0IG1hcHBpbmcgb2YgeHhfWVlfWlpaLiAgVGhlIFNwZWMgQVBJIG1ldGhvZHMKKyAgICAgKiBoYXNGYWxsYmFjaygpLCBuZXh0KCksIGFuZCByZXNldCgpIGl0ZXJhdGUgb3ZlciB0aGlzIGZhbGxiYWNrCisgICAgICogc2VxdWVuY2UuCisgICAgICoKKyAgICAgKiBUaGUgU3BlYyBjbGFzcyBjYW5vbmljYWxpemVzIGl0c2VsZiwgc28gdGhlIGxvY2FsZSBpcyBwdXQgaW50bworICAgICAqIGNhbm9uaWNhbCBmb3JtLCBvciB0aGUgc2NyaXB0IGlzIHRyYW5zZm9ybWVkIGZyb20gYW4gYWJicmV2aWF0aW9uCisgICAgICogdG8gYSBmdWxsIG5hbWUuCisgICAgICovCisgICAgc3RhdGljIGNsYXNzIFNwZWMgeworCisgICAgICAgIHByaXZhdGUgU3RyaW5nIHRvcDsgICAgICAgIC8vIHRvcCBzcGVjCisgICAgICAgIHByaXZhdGUgU3RyaW5nIHNwZWM7ICAgICAgIC8vIGN1cnJlbnQgc3BlYworICAgICAgICBwcml2YXRlIFN0cmluZyBuZXh0U3BlYzsgICAvLyBuZXh0IHNwZWMKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgc2NyaXB0TmFtZTsgLy8gc2NyaXB0IG5hbWUgZXF1aXZhbGVudCBvZiB0b3AsIGlmICE9IHRvcAorICAgICAgICBwcml2YXRlIGJvb2xlYW4gaXNTcGVjTG9jYWxlOyAvLyBUUlVFIGlmIHNwZWMgaXMgYSBsb2NhbGUKKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIGlzTmV4dExvY2FsZTsgLy8gVFJVRSBpZiBuZXh0U3BlYyBpcyBhIGxvY2FsZQorICAgICAgICBwcml2YXRlIFJlc291cmNlQnVuZGxlIHJlczsKKworICAgICAgICBwdWJsaWMgU3BlYyhTdHJpbmcgdGhlU3BlYykgeworICAgICAgICAgICAgdG9wID0gdGhlU3BlYzsKKyAgICAgICAgICAgIHNwZWMgPSBudWxsOworICAgICAgICAgICAgc2NyaXB0TmFtZSA9IG51bGw7CisKKyAgICAgICAgICAgIExvY2FsZSB0b3Bsb2MgPSBMb2NhbGVVdGlsaXR5LmdldExvY2FsZUZyb21OYW1lKHRvcCk7CisgICAgICAgICAgICByZXMgPSBJQ1VMb2NhbGVEYXRhLmdldExvY2FsZUVsZW1lbnRzKHRvcGxvYyk7CisgICAgICAgICAgICAvLyBNYWtlIHN1cmUgd2UgZ290IHRoZSBidW5kbGUgd2Ugd2FudGVkOyBvdGhlcndpc2UsIGRvbid0IHVzZSBpdAorICAgICAgICAgICAgaWYgKExvY2FsZVV0aWxpdHkuaXNGYWxsYmFja09mKHJlcy5nZXRMb2NhbGUoKS50b1N0cmluZygpLCB0b3ApKSB7CisgICAgICAgICAgICAgICAgaXNTcGVjTG9jYWxlID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaXNTcGVjTG9jYWxlID0gZmFsc2U7CisgICAgICAgICAgICAgICAgcmVzID0gbnVsbDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gQ2Fub25pY2FsaXplIHNjcmlwdCBuYW1lIC1vci0gZG8gbG9jYWxlLT5zY3JpcHQgbWFwcGluZworICAgICAgICAgICAgaW50W10gcyA9IFVTY3JpcHQuZ2V0Q29kZSh0b3ApOworICAgICAgICAgICAgaWYgKHMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHNjcmlwdE5hbWUgPSBVU2NyaXB0LmdldE5hbWUoc1swXSk7CisgICAgICAgICAgICAgICAgLy8gSWYgdGhlIHNjcmlwdCBuYW1lIGlzIHRoZSBzYW1lIGFzIHRvcCB0aGVuIGl0J3MgcmVkdW5kYW50CisgICAgICAgICAgICAgICAgaWYgKHNjcmlwdE5hbWUuZXF1YWxzSWdub3JlQ2FzZSh0b3ApKSB7CisgICAgICAgICAgICAgICAgICAgIHNjcmlwdE5hbWUgPSBudWxsOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gYXNzZXJ0KHNwZWMgIT0gdG9wKTsKKyAgICAgICAgICAgIHJlc2V0KCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgYm9vbGVhbiBoYXNGYWxsYmFjaygpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXh0U3BlYyAhPSBudWxsOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgcmVzZXQoKSB7CisgICAgICAgICAgICBpZiAoc3BlYyAhPSB0b3ApIHsgLy8gW3NpY10gcG9pbnRlciBjb21wYXJpc29uCisgICAgICAgICAgICAgICAgc3BlYyA9IHRvcDsKKyAgICAgICAgICAgICAgICBpc1NwZWNMb2NhbGUgPSAocmVzICE9IG51bGwpOworICAgICAgICAgICAgICAgIHNldHVwTmV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSB2b2lkIHNldHVwTmV4dCgpIHsKKyAgICAgICAgICAgIGlzTmV4dExvY2FsZSA9IGZhbHNlOworICAgICAgICAgICAgaWYgKGlzU3BlY0xvY2FsZSkgeworICAgICAgICAgICAgICAgIG5leHRTcGVjID0gc3BlYzsKKyAgICAgICAgICAgICAgICBpbnQgaSA9IG5leHRTcGVjLmxhc3RJbmRleE9mKExPQ0FMRV9TRVApOworICAgICAgICAgICAgICAgIC8vIElmIGkgPT0gMCB0aGVuIHdlIGhhdmUgX0ZPTywgc28gd2UgZmFsbCB0aHJvdWdoCisgICAgICAgICAgICAgICAgLy8gdG8gdGhlIHNjcmlwdE5hbWUuCisgICAgICAgICAgICAgICAgaWYgKGkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIG5leHRTcGVjID0gc3BlYy5zdWJzdHJpbmcoMCwgaSk7CisgICAgICAgICAgICAgICAgICAgIGlzTmV4dExvY2FsZSA9IHRydWU7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbmV4dFNwZWMgPSBzY3JpcHROYW1lOyAvLyBzY3JpcHROYW1lIG1heSBiZSBudWxsCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBGYWxsYmFjayB0byB0aGUgc2NyaXB0LCB3aGljaCBtYXkgYmUgbnVsbAorCQkJCWlmIChuZXh0U3BlYyAhPSBzY3JpcHROYW1lKSB7CisJCQkJCW5leHRTcGVjID0gc2NyaXB0TmFtZTsKKwkJCQl9IGVsc2UgeworCQkJCQluZXh0U3BlYyA9IG51bGw7CisJCQkJfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gUHJvdG9jb2w6CisgICAgICAgIC8vIGZvcihTdHJpbmcmIHMoc3BlYy5nZXQoKSk7CisgICAgICAgIC8vICAgICBzcGVjLmhhc0ZhbGxiYWNrKCk7IHMoc3BlYy5uZXh0KCkpKSB7IC4uLgorCisgICAgICAgIHB1YmxpYyBTdHJpbmcgbmV4dCgpIHsKKyAgICAgICAgICAgIHNwZWMgPSBuZXh0U3BlYzsKKyAgICAgICAgICAgIGlzU3BlY0xvY2FsZSA9IGlzTmV4dExvY2FsZTsKKyAgICAgICAgICAgIHNldHVwTmV4dCgpOworICAgICAgICAgICAgcmV0dXJuIHNwZWM7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldCgpIHsKKyAgICAgICAgICAgIHJldHVybiBzcGVjOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXNMb2NhbGUoKSB7CisgICAgICAgICAgICByZXR1cm4gaXNTcGVjTG9jYWxlOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybiB0aGUgUmVzb3VyY2VCdW5kbGUgZm9yIHRoaXMgc3BlYywgYXQgdGhlIGN1cnJlbnQKKyAgICAgICAgICogbGV2ZWwgb2YgaXRlcmF0aW9uLiAgVGhlIGxldmVsIG9mIGl0ZXJhdGlvbiBnb2VzIGZyb20KKyAgICAgICAgICogYWFfQkJfQ0NDIHRvIGFhX0JCIHRvIGFhLiAgSWYgdGhlIGJ1bmRsZSBkb2VzIG5vdAorICAgICAgICAgKiBjb3JyZXNwb25kIHRvIHRoZSBjdXJyZW50IGxldmVsIG9mIGl0ZXJhdGlvbiwgcmV0dXJuIG51bGwuCisgICAgICAgICAqIElmIGlzTG9jYWxlKCkgaXMgZmFsc2UsIGFsd2F5cyByZXR1cm4gbnVsbC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBSZXNvdXJjZUJ1bmRsZSBnZXRCdW5kbGUoKSB7CisgICAgICAgICAgICBpZiAocmVzICE9IG51bGwgJiYKKyAgICAgICAgICAgICAgICByZXMuZ2V0TG9jYWxlKCkudG9TdHJpbmcoKS5lcXVhbHMoc3BlYykpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldFRvcCgpIHsKKyAgICAgICAgICAgIHJldHVybiB0b3A7CisgICAgICAgIH0KKwl9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBFbnRyeSBjbGFzc2VzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKwlzdGF0aWMgY2xhc3MgUmVzb3VyY2VFbnRyeSB7CisgICAgICAgIHB1YmxpYyBTdHJpbmcgcmVzb3VyY2VOYW1lOworICAgICAgICBwdWJsaWMgU3RyaW5nIGVuY29kaW5nOworICAgICAgICBwdWJsaWMgaW50IGRpcmVjdGlvbjsKKyAgICAgICAgcHVibGljIFJlc291cmNlRW50cnkoU3RyaW5nIG4sIFN0cmluZyBlbmMsIGludCBkKSB7CisgICAgICAgICAgICByZXNvdXJjZU5hbWUgPSBuOworICAgICAgICAgICAgZW5jb2RpbmcgPSBlbmM7CisgICAgICAgICAgICBkaXJlY3Rpb24gPSBkOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gQW4gZW50cnkgcmVwcmVzZW50aW5nIGEgcnVsZSBpbiBhIGxvY2FsZSByZXNvdXJjZSBidW5kbGUKKyAgICBzdGF0aWMgY2xhc3MgTG9jYWxlRW50cnkgeworICAgICAgICBwdWJsaWMgU3RyaW5nIHJ1bGU7CisgICAgICAgIHB1YmxpYyBpbnQgZGlyZWN0aW9uOworICAgICAgICBwdWJsaWMgTG9jYWxlRW50cnkoU3RyaW5nIHIsIGludCBkKSB7CisgICAgICAgICAgICBydWxlID0gcjsKKyAgICAgICAgICAgIGRpcmVjdGlvbiA9IGQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgQWxpYXNFbnRyeSB7CisgICAgICAgIHB1YmxpYyBTdHJpbmcgYWxpYXM7CisgICAgICAgIHB1YmxpYyBBbGlhc0VudHJ5KFN0cmluZyBhKSB7CisgICAgICAgICAgICBhbGlhcyA9IGE7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgQ29tcG91bmRSQlRFbnRyeSB7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIElEOworICAgICAgICBwcml2YXRlIFN0cmluZyBpZEJsb2NrOworICAgICAgICBwcml2YXRlIGludCBpZFNwbGl0UG9pbnQ7CisgICAgICAgIHByaXZhdGUgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSBkYXRhOworICAgICAgICBwcml2YXRlIFVuaWNvZGVTZXQgY29tcG91bmRGaWx0ZXI7CisKKyAgICAgICAgcHVibGljIENvbXBvdW5kUkJURW50cnkoU3RyaW5nIHRoZUlELCBTdHJpbmcgdGhlSURCbG9jaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRoZUlEU3BsaXRQb2ludCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSB0aGVEYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0IHRoZUNvbXBvdW5kRmlsdGVyKSB7CisgICAgICAgICAgICBJRCA9IHRoZUlEOworICAgICAgICAgICAgaWRCbG9jayA9IHRoZUlEQmxvY2s7CisgICAgICAgICAgICBpZFNwbGl0UG9pbnQgPSB0aGVJRFNwbGl0UG9pbnQ7CisgICAgICAgICAgICBkYXRhID0gdGhlRGF0YTsKKyAgICAgICAgICAgIGNvbXBvdW5kRmlsdGVyID0gdGhlQ29tcG91bmRGaWx0ZXI7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoKSB7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gbmV3IFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yKCJfIiwgZGF0YSwgbnVsbCk7CisgICAgICAgICAgICB0ID0gbmV3IENvbXBvdW5kVHJhbnNsaXRlcmF0b3IoSUQsIGlkQmxvY2ssIGlkU3BsaXRQb2ludCwgdCk7CisgICAgICAgICAgICB0LnNldEZpbHRlcihjb21wb3VuZEZpbHRlcik7CisgICAgICAgICAgICByZXR1cm4gdDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNsYXNzIFRyYW5zbGl0ZXJhdG9yUmVnaXN0cnk6IEJhc2ljIHB1YmxpYyBBUEkKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvclJlZ2lzdHJ5KCkgeworICAgICAgICByZWdpc3RyeSA9IG5ldyBIYXNodGFibGUoKTsKKyAgICAgICAgc3BlY0RBRyA9IG5ldyBIYXNodGFibGUoKTsKKyAgICAgICAgYXZhaWxhYmxlSURzID0gbmV3IFZlY3RvcigpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdpdmVuIGEgc2ltcGxlIElEIChmb3J3YXJkIGRpcmVjdGlvbiwgbm8gaW5saW5lIGZpbHRlciwgbm90CisgICAgICogY29tcG91bmQpIGF0dGVtcHQgdG8gaW5zdGFudGlhdGUgaXQgZnJvbSB0aGUgcmVnaXN0cnkuICBSZXR1cm4KKyAgICAgKiAwIG9uIGZhaWx1cmUuCisgICAgICoKKyAgICAgKiBSZXR1cm4gYSBub24tZW1wdHkgYWxpYXNSZXR1cm4gdmFsdWUgaWYgdGhlIElEIHBvaW50cyB0byBhbiBhbGlhcy4KKyAgICAgKiBXZSBjYW5ub3QgaW5zdGFudGlhdGUgaXQgb3Vyc2VsdmVzIGJlY2F1c2UgdGhlIGFsaWFzIG1heSBjb250YWluCisgICAgICogZmlsdGVycyBvciBjb21wb3VuZHMsIHdoaWNoIHdlIGRvIG5vdCB1bmRlcnN0YW5kLiAgQ2FsbGVyIHNob3VsZAorICAgICAqIG1ha2UgYWxpYXNSZXR1cm4gZW1wdHkgYmVmb3JlIGNhbGxpbmcuCisgICAgICovCisgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldChTdHJpbmcgSUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYWxpYXNSZXR1cm4pIHsKKyAgICAgICAgT2JqZWN0W10gZW50cnkgPSBmaW5kKElEKTsKKyAgICAgICAgcmV0dXJuIChlbnRyeSA9PSBudWxsKSA/IG51bGwKKyAgICAgICAgICAgIDogaW5zdGFudGlhdGVFbnRyeShJRCwgZW50cnksIGFsaWFzUmV0dXJuKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlciBhIGNsYXNzLiAgVGhpcyBhZGRzIGFuIGVudHJ5IHRvIHRoZQorICAgICAqIGR5bmFtaWMgc3RvcmUsIG9yIHJlcGxhY2VzIGFuIGV4aXN0aW5nIGVudHJ5LiAgQW55IGVudHJ5IGluIHRoZQorICAgICAqIHVuZGVybHlpbmcgc3RhdGljIGxvY2FsZSByZXNvdXJjZSBzdG9yZSBpcyBtYXNrZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgcHV0KFN0cmluZyBJRCwKKyAgICAgICAgICAgICAgICAgICAgQ2xhc3MgdHJhbnNsaXRlcmF0b3JTdWJjbGFzcywKKyAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB2aXNpYmxlKSB7CisgICAgICAgIHJlZ2lzdGVyRW50cnkoSUQsIHRyYW5zbGl0ZXJhdG9yU3ViY2xhc3MsIHZpc2libGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlZ2lzdGVyIGFuIElEIGFuZCBhIGZhY3RvcnkgZnVuY3Rpb24gcG9pbnRlci4gIFRoaXMgYWRkcyBhbgorICAgICAqIGVudHJ5IHRvIHRoZSBkeW5hbWljIHN0b3JlLCBvciByZXBsYWNlcyBhbiBleGlzdGluZyBlbnRyeS4gIEFueQorICAgICAqIGVudHJ5IGluIHRoZSB1bmRlcmx5aW5nIHN0YXRpYyBsb2NhbGUgcmVzb3VyY2Ugc3RvcmUgaXMgbWFza2VkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHB1dChTdHJpbmcgSUQsCisgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkgZmFjdG9yeSwKKyAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB2aXNpYmxlKSB7CisgICAgICAgIHJlZ2lzdGVyRW50cnkoSUQsIGZhY3RvcnksIHZpc2libGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlZ2lzdGVyIGFuIElEIGFuZCBhIHJlc291cmNlIG5hbWUuICBUaGlzIGFkZHMgYW4gZW50cnkgdG8gdGhlCisgICAgICogZHluYW1pYyBzdG9yZSwgb3IgcmVwbGFjZXMgYW4gZXhpc3RpbmcgZW50cnkuICBBbnkgZW50cnkgaW4gdGhlCisgICAgICogdW5kZXJseWluZyBzdGF0aWMgbG9jYWxlIHJlc291cmNlIHN0b3JlIGlzIG1hc2tlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwdXQoU3RyaW5nIElELAorICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcmVzb3VyY2VOYW1lLAorICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZW5jb2RpbmcsCisgICAgICAgICAgICAgICAgICAgIGludCBkaXIsCisgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gdmlzaWJsZSkgeworICAgICAgICByZWdpc3RlckVudHJ5KElELCBuZXcgUmVzb3VyY2VFbnRyeShyZXNvdXJjZU5hbWUsIGVuY29kaW5nLCBkaXIpLCB2aXNpYmxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlciBhbiBJRCBhbmQgYW4gYWxpYXMgSUQuICBUaGlzIGFkZHMgYW4gZW50cnkgdG8gdGhlCisgICAgICogZHluYW1pYyBzdG9yZSwgb3IgcmVwbGFjZXMgYW4gZXhpc3RpbmcgZW50cnkuICBBbnkgZW50cnkgaW4gdGhlCisgICAgICogdW5kZXJseWluZyBzdGF0aWMgbG9jYWxlIHJlc291cmNlIHN0b3JlIGlzIG1hc2tlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwdXQoU3RyaW5nIElELAorICAgICAgICAgICAgICAgICAgICBTdHJpbmcgYWxpYXMsCisgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gdmlzaWJsZSkgeworICAgICAgICByZWdpc3RlckVudHJ5KElELCBuZXcgQWxpYXNFbnRyeShhbGlhcyksIHZpc2libGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlZ2lzdGVyIGFuIElEIGFuZCBhIFRyYW5zbGl0ZXJhdG9yIG9iamVjdC4gIFRoaXMgYWRkcyBhbiBlbnRyeQorICAgICAqIHRvIHRoZSBkeW5hbWljIHN0b3JlLCBvciByZXBsYWNlcyBhbiBleGlzdGluZyBlbnRyeS4gIEFueSBlbnRyeQorICAgICAqIGluIHRoZSB1bmRlcmx5aW5nIHN0YXRpYyBsb2NhbGUgcmVzb3VyY2Ugc3RvcmUgaXMgbWFza2VkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHB1dChTdHJpbmcgSUQsCisgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHRyYW5zLAorICAgICAgICAgICAgICAgICAgICBib29sZWFuIHZpc2libGUpIHsKKyAgICAgICAgcmVnaXN0ZXJFbnRyeShJRCwgdHJhbnMsIHZpc2libGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFVucmVnaXN0ZXIgYW4gSUQuICBUaGlzIHJlbW92ZXMgYW4gZW50cnkgZnJvbSB0aGUgZHluYW1pYyBzdG9yZQorICAgICAqIGlmIHRoZXJlIGlzIG9uZS4gIFRoZSBzdGF0aWMgbG9jYWxlIHJlc291cmNlIHN0b3JlIGlzCisgICAgICogdW5hZmZlY3RlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZW1vdmUoU3RyaW5nIElEKSB7CisgICAgICAgIFN0cmluZ1tdIHN0diA9IFRyYW5zbGl0ZXJhdG9ySURQYXJzZXIuSUR0b1NUVihJRCk7CisgICAgICAgIC8vIE9ubHkgbmVlZCB0byBkbyB0aGlzIGlmIElELmluZGV4T2YoJy0nKSA8IDAKKyAgICAgICAgU3RyaW5nIGlkID0gVHJhbnNsaXRlcmF0b3JJRFBhcnNlci5TVFZ0b0lEKHN0dlswXSwgc3R2WzFdLCBzdHZbMl0pOworICAgICAgICByZWdpc3RyeS5yZW1vdmUobmV3IENhc2VJbnNlbnNpdGl2ZVN0cmluZyhpZCkpOworICAgICAgICByZW1vdmVTVFYoc3R2WzBdLCBzdHZbMV0sIHN0dlsyXSk7CisgICAgICAgIGF2YWlsYWJsZUlEcy5yZW1vdmVFbGVtZW50KG5ldyBDYXNlSW5zZW5zaXRpdmVTdHJpbmcoaWQpKTsKKyAgICB9CisgICAgCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY2xhc3MgVHJhbnNsaXRlcmF0b3JSZWdpc3RyeTogUHVibGljIElEIGFuZCBzcGVjIG1hbmFnZW1lbnQKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEFuIGludGVybmFsIGNsYXNzIHRoYXQgYWRhcHRzIGFuIGVudW1lcmF0aW9uIG92ZXIKKyAgICAgKiBDYXNlSW5zZW5zaXRpdmVTdHJpbmdzIHRvIGFuIGVudW1lcmF0aW9uIG92ZXIgU3RyaW5ncy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBJREVudW1lcmF0aW9uIGltcGxlbWVudHMgRW51bWVyYXRpb24geworICAgICAgICBFbnVtZXJhdGlvbiBlbnVtOworCisgICAgICAgIHB1YmxpYyBJREVudW1lcmF0aW9uKEVudW1lcmF0aW9uIGUpIHsKKyAgICAgICAgICAgIGVudW0gPSBlOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaGFzTW9yZUVsZW1lbnRzKCkgeworICAgICAgICAgICAgcmV0dXJuIGVudW0gIT0gbnVsbCAmJiBlbnVtLmhhc01vcmVFbGVtZW50cygpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIE9iamVjdCBuZXh0RWxlbWVudCgpIHsKKyAgICAgICAgICAgIHJldHVybiAoKENhc2VJbnNlbnNpdGl2ZVN0cmluZykgZW51bS5uZXh0RWxlbWVudCgpKS5nZXRTdHJpbmcoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYW4gZW51bWVyYXRpb24gb3ZlciB0aGUgcHJvZ3JhbW1hdGljIG5hbWVzIG9mIHZpc2libGUKKyAgICAgKiByZWdpc3RlcmVkIHRyYW5zbGl0ZXJhdG9ycy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gQW4gPGNvZGU+RW51bWVyYXRpb248L2NvZGU+IG92ZXIgPGNvZGU+U3RyaW5nPC9jb2RlPiBvYmplY3RzCisgICAgICovCisgICAgcHVibGljIEVudW1lcmF0aW9uIGdldEF2YWlsYWJsZUlEcygpIHsKKyAgICAgICAgLy8gU2luY2UgdGhlIGNhY2hlIGNvbnRhaW5zIENhc2VJbnNlbnNpdGl2ZVN0cmluZyBvYmplY3RzLCBidXQKKyAgICAgICAgLy8gdGhlIGNhbGxlciBleHBlY3RzIFN0cmluZ3MsIHdlIGhhdmUgdG8gdXNlIGFuIGludGVybWVkaWFyeS4KKyAgICAgICAgcmV0dXJuIG5ldyBJREVudW1lcmF0aW9uKGF2YWlsYWJsZUlEcy5lbGVtZW50cygpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGFuIGVudW1lcmF0aW9uIG92ZXIgYWxsIHZpc2libGUgc291cmNlIG5hbWVzLgorICAgICAqCisgICAgICogQHJldHVybiBBbiA8Y29kZT5FbnVtZXJhdGlvbjwvY29kZT4gb3ZlciA8Y29kZT5TdHJpbmc8L2NvZGU+IG9iamVjdHMKKyAgICAgKi8KKyAgICBwdWJsaWMgRW51bWVyYXRpb24gZ2V0QXZhaWxhYmxlU291cmNlcygpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBJREVudW1lcmF0aW9uKHNwZWNEQUcua2V5cygpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGFuIGVudW1lcmF0aW9uIG92ZXIgdmlzaWJsZSB0YXJnZXQgbmFtZXMgZm9yIHRoZSBnaXZlbgorICAgICAqIHNvdXJjZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gQW4gPGNvZGU+RW51bWVyYXRpb248L2NvZGU+IG92ZXIgPGNvZGU+U3RyaW5nPC9jb2RlPiBvYmplY3RzCisgICAgICovCisgICAgcHVibGljIEVudW1lcmF0aW9uIGdldEF2YWlsYWJsZVRhcmdldHMoU3RyaW5nIHNvdXJjZSkgeworICAgICAgICBDYXNlSW5zZW5zaXRpdmVTdHJpbmcgY2lzcmMgPSBuZXcgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nKHNvdXJjZSk7CisgICAgICAgIEhhc2h0YWJsZSB0YXJnZXRzID0gKEhhc2h0YWJsZSkgc3BlY0RBRy5nZXQoY2lzcmMpOworICAgICAgICBpZiAodGFyZ2V0cyA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IElERW51bWVyYXRpb24obnVsbCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBJREVudW1lcmF0aW9uKHRhcmdldHMua2V5cygpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGFuIGVudW1lcmF0aW9uIG92ZXIgdmlzaWJsZSB2YXJpYW50IG5hbWVzIGZvciB0aGUgZ2l2ZW4KKyAgICAgKiBzb3VyY2UgYW5kIHRhcmdldC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gQW4gPGNvZGU+RW51bWVyYXRpb248L2NvZGU+IG92ZXIgPGNvZGU+U3RyaW5nPC9jb2RlPiBvYmplY3RzCisgICAgICovCisgICAgcHVibGljIEVudW1lcmF0aW9uIGdldEF2YWlsYWJsZVZhcmlhbnRzKFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQpIHsKKyAgICAgICAgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nIGNpc3JjID0gbmV3IENhc2VJbnNlbnNpdGl2ZVN0cmluZyhzb3VyY2UpOworICAgICAgICBDYXNlSW5zZW5zaXRpdmVTdHJpbmcgY2l0cmcgPSBuZXcgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nKHRhcmdldCk7CisgICAgICAgIEhhc2h0YWJsZSB0YXJnZXRzID0gKEhhc2h0YWJsZSkgc3BlY0RBRy5nZXQoY2lzcmMpOworICAgICAgICBpZiAodGFyZ2V0cyA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IElERW51bWVyYXRpb24obnVsbCk7CisgICAgICAgIH0KKyAgICAgICAgVmVjdG9yIHZhcmlhbnRzID0gKFZlY3RvcikgdGFyZ2V0cy5nZXQoY2l0cmcpOworICAgICAgICBpZiAodmFyaWFudHMgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBJREVudW1lcmF0aW9uKG51bGwpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgSURFbnVtZXJhdGlvbih2YXJpYW50cy5lbGVtZW50cygpKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjbGFzcyBUcmFuc2xpdGVyYXRvclJlZ2lzdHJ5OiBpbnRlcm5hbAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kLiAgQ2FsbHMgNi1hcmcgcmVnaXN0ZXJFbnRyeSgpLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCByZWdpc3RlckVudHJ5KFN0cmluZyBzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRhcmdldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFyaWFudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QgZW50cnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB2aXNpYmxlKSB7CisgICAgICAgIFN0cmluZyBzID0gc291cmNlOworICAgICAgICBpZiAocy5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICBzID0gQU5ZOworICAgICAgICB9CisgICAgICAgIFN0cmluZyBJRCA9IFRyYW5zbGl0ZXJhdG9ySURQYXJzZXIuU1RWdG9JRChzb3VyY2UsIHRhcmdldCwgdmFyaWFudCk7CisgICAgICAgIHJlZ2lzdGVyRW50cnkoSUQsIHMsIHRhcmdldCwgdmFyaWFudCwgZW50cnksIHZpc2libGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG1ldGhvZC4gIENhbGxzIDYtYXJnIHJlZ2lzdGVyRW50cnkoKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcmVnaXN0ZXJFbnRyeShTdHJpbmcgSUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0IGVudHJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gdmlzaWJsZSkgeworICAgICAgICBTdHJpbmdbXSBzdHYgPSBUcmFuc2xpdGVyYXRvcklEUGFyc2VyLklEdG9TVFYoSUQpOworICAgICAgICAvLyBPbmx5IG5lZWQgdG8gZG8gdGhpcyBpZiBJRC5pbmRleE9mKCctJykgPCAwCisgICAgICAgIFN0cmluZyBpZCA9IFRyYW5zbGl0ZXJhdG9ySURQYXJzZXIuU1RWdG9JRChzdHZbMF0sIHN0dlsxXSwgc3R2WzJdKTsKKyAgICAgICAgcmVnaXN0ZXJFbnRyeShpZCwgc3R2WzBdLCBzdHZbMV0sIHN0dlsyXSwgZW50cnksIHZpc2libGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlZ2lzdGVyIGFuIGVudHJ5IG9iamVjdCAoYWRvcHRlZCkgd2l0aCB0aGUgZ2l2ZW4gSUQsIHNvdXJjZSwKKyAgICAgKiB0YXJnZXQsIGFuZCB2YXJpYW50IHN0cmluZ3MuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHJlZ2lzdGVyRW50cnkoU3RyaW5nIElELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRhcmdldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFyaWFudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QgZW50cnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB2aXNpYmxlKSB7CisgICAgICAgIENhc2VJbnNlbnNpdGl2ZVN0cmluZyBjaUlEID0gbmV3IENhc2VJbnNlbnNpdGl2ZVN0cmluZyhJRCk7CisKKyAgICAgICAgLy8gU3RvcmUgdGhlIGVudHJ5IHdpdGhpbiBhbiBhcnJheSBzbyBpdCBjYW4gYmUgbW9kaWZpZWQgbGF0ZXIKKyAgICAgICAgaWYgKCEoZW50cnkgaW5zdGFuY2VvZiBPYmplY3RbXSkpIHsKKyAgICAgICAgICAgIGVudHJ5ID0gbmV3IE9iamVjdFtdIHsgZW50cnkgfTsKKyAgICAgICAgfQorCisgICAgICAgIHJlZ2lzdHJ5LnB1dChjaUlELCBlbnRyeSk7CisgICAgICAgIGlmICh2aXNpYmxlKSB7CisgICAgICAgICAgICByZWdpc3RlclNUVihzb3VyY2UsIHRhcmdldCwgdmFyaWFudCk7CisgICAgICAgICAgICBpZiAoIWF2YWlsYWJsZUlEcy5jb250YWlucyhjaUlEKSkgeworICAgICAgICAgICAgICAgIGF2YWlsYWJsZUlEcy5hZGRFbGVtZW50KGNpSUQpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmVtb3ZlU1RWKHNvdXJjZSwgdGFyZ2V0LCB2YXJpYW50KTsKKyAgICAgICAgICAgIGF2YWlsYWJsZUlEcy5yZW1vdmVFbGVtZW50KGNpSUQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVnaXN0ZXIgYSBzb3VyY2UtdGFyZ2V0L3ZhcmlhbnQgaW4gdGhlIHNwZWNEQUcuICBWYXJpYW50IG1heSBiZQorICAgICAqIGVtcHR5LCBidXQgc291cmNlIGFuZCB0YXJnZXQgbXVzdCBub3QgYmUuICBJZiB2YXJpYW50IGlzIGVtcHR5IHRoZW4KKyAgICAgKiB0aGUgc3BlY2lhbCB2YXJpYW50IE5PX1ZBUklBTlQgaXMgc3RvcmVkIGluIHNsb3QgemVybyBvZiB0aGUKKyAgICAgKiBVVmVjdG9yIG9mIHZhcmlhbnRzLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCByZWdpc3RlclNUVihTdHJpbmcgc291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFyaWFudCkgeworICAgICAgICAvLyBhc3NlcnQoc291cmNlLmxlbmd0aCgpID4gMCk7CisgICAgICAgIC8vIGFzc2VydCh0YXJnZXQubGVuZ3RoKCkgPiAwKTsKKyAgICAgICAgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nIGNpc3JjID0gbmV3IENhc2VJbnNlbnNpdGl2ZVN0cmluZyhzb3VyY2UpOworICAgICAgICBDYXNlSW5zZW5zaXRpdmVTdHJpbmcgY2l0cmcgPSBuZXcgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nKHRhcmdldCk7CisgICAgICAgIENhc2VJbnNlbnNpdGl2ZVN0cmluZyBjaXZhciA9IG5ldyBDYXNlSW5zZW5zaXRpdmVTdHJpbmcodmFyaWFudCk7CisgICAgICAgIEhhc2h0YWJsZSB0YXJnZXRzID0gKEhhc2h0YWJsZSkgc3BlY0RBRy5nZXQoY2lzcmMpOworICAgICAgICBpZiAodGFyZ2V0cyA9PSBudWxsKSB7CisgICAgICAgICAgICB0YXJnZXRzID0gbmV3IEhhc2h0YWJsZSgpOworICAgICAgICAgICAgc3BlY0RBRy5wdXQoY2lzcmMsIHRhcmdldHMpOworICAgICAgICB9CisgICAgICAgIFZlY3RvciB2YXJpYW50cyA9IChWZWN0b3IpIHRhcmdldHMuZ2V0KGNpdHJnKTsKKyAgICAgICAgaWYgKHZhcmlhbnRzID09IG51bGwpIHsKKyAgICAgICAgICAgIHZhcmlhbnRzID0gbmV3IFZlY3RvcigpOworICAgICAgICAgICAgdGFyZ2V0cy5wdXQoY2l0cmcsIHZhcmlhbnRzKTsKKyAgICAgICAgfQorICAgICAgICAvLyBhc3NlcnQoTk9fVkFSSUFOVCA9PSAiIik7CisgICAgICAgIC8vIFdlIGFkZCB0aGUgdmFyaWFudCBzdHJpbmcuICBJZiBpdCBpcyB0aGUgc3BlY2lhbCAibm8gdmFyaWFudCIKKyAgICAgICAgLy8gc3RyaW5nLCB0aGF0IGlzLCB0aGUgZW1wdHkgc3RyaW5nLCB3ZSBhZGQgaXQgYXQgcG9zaXRpb24gemVyby4KKyAgICAgICAgaWYgKCF2YXJpYW50cy5jb250YWlucyhjaXZhcikpIHsKKyAgICAgICAgICAgIGlmICh2YXJpYW50Lmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgIHZhcmlhbnRzLmFkZEVsZW1lbnQoY2l2YXIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB2YXJpYW50cy5pbnNlcnRFbGVtZW50QXQoY2l2YXIsIDApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVtb3ZlIGEgc291cmNlLXRhcmdldC92YXJpYW50IGZyb20gdGhlIHNwZWNEQUcuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHJlbW92ZVNUVihTdHJpbmcgc291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRhcmdldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YXJpYW50KSB7CisgICAgICAgIC8vIGFzc2VydChzb3VyY2UubGVuZ3RoKCkgPiAwKTsKKyAgICAgICAgLy8gYXNzZXJ0KHRhcmdldC5sZW5ndGgoKSA+IDApOworICAgICAgICBDYXNlSW5zZW5zaXRpdmVTdHJpbmcgY2lzcmMgPSBuZXcgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nKHNvdXJjZSk7CisgICAgICAgIENhc2VJbnNlbnNpdGl2ZVN0cmluZyBjaXRyZyA9IG5ldyBDYXNlSW5zZW5zaXRpdmVTdHJpbmcodGFyZ2V0KTsKKyAgICAgICAgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nIGNpdmFyID0gbmV3IENhc2VJbnNlbnNpdGl2ZVN0cmluZyh2YXJpYW50KTsKKyAgICAgICAgSGFzaHRhYmxlIHRhcmdldHMgPSAoSGFzaHRhYmxlKSBzcGVjREFHLmdldChjaXNyYyk7CisgICAgICAgIGlmICh0YXJnZXRzID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybjsgLy8gc2hvdWxkIG5ldmVyIGhhcHBlbiBmb3IgdmFsaWQgcy10L3YKKyAgICAgICAgfQorICAgICAgICBWZWN0b3IgdmFyaWFudHMgPSAoVmVjdG9yKSB0YXJnZXRzLmdldChjaXRyZyk7CisgICAgICAgIGlmICh2YXJpYW50cyA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm47IC8vIHNob3VsZCBuZXZlciBoYXBwZW4gZm9yIHZhbGlkIHMtdC92CisgICAgICAgIH0KKyAgICAgICAgdmFyaWFudHMucmVtb3ZlRWxlbWVudCh2YXJpYW50KTsKKyAgICAgICAgaWYgKHZhcmlhbnRzLnNpemUoKSA9PSAwKSB7CisgICAgICAgICAgICB0YXJnZXRzLnJlbW92ZShjaXRyZyk7IC8vIHNob3VsZCBkZWxldGUgdmFyaWFudHMKKyAgICAgICAgICAgIGlmICh0YXJnZXRzLnNpemUoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgc3BlY0RBRy5yZW1vdmUoY2lzcmMpOyAvLyBzaG91bGQgZGVsZXRlIHRhcmdldHMKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUcgPSBmYWxzZTsKKworICAgIC8qKgorICAgICAqIEF0dGVtcHQgdG8gZmluZCBhIHNvdXJjZS10YXJnZXQvdmFyaWFudCBpbiB0aGUgZHluYW1pYyByZWdpc3RyeQorICAgICAqIHN0b3JlLiAgUmV0dXJuIDAgb24gZmFpbHVyZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIE9iamVjdFtdIGZpbmRJbkR5bmFtaWNTdG9yZShTcGVjIHNyYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3BlYyB0cmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YXJpYW50KSB7CisgICAgICAgIFN0cmluZyBJRCA9IFRyYW5zbGl0ZXJhdG9ySURQYXJzZXIuU1RWdG9JRChzcmMuZ2V0KCksIHRyZy5nZXQoKSwgdmFyaWFudCk7CisgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUcmFuc2xpdGVyYXRvclJlZ2lzdHJ5LmZpbmRJbkR5bmFtaWNTdG9yZToiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJRCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChPYmplY3RbXSkgcmVnaXN0cnkuZ2V0KG5ldyBDYXNlSW5zZW5zaXRpdmVTdHJpbmcoSUQpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBdHRlbXB0IHRvIGZpbmQgYSBzb3VyY2UtdGFyZ2V0L3ZhcmlhbnQgaW4gdGhlIHN0YXRpYyBsb2NhbGUKKyAgICAgKiByZXNvdXJjZSBzdG9yZS4gIERvIG5vdCBwZXJmb3JtIGZhbGxiYWNrLiAgUmV0dXJuIDAgb24gZmFpbHVyZS4KKyAgICAgKgorICAgICAqIE9uIHN1Y2Nlc3MsIGNyZWF0ZSBhIG5ldyBlbnRyeSBvYmplY3QsIHJlZ2lzdGVyIGl0IGluIHRoZSBkeW5hbWljCisgICAgICogc3RvcmUsIGFuZCByZXR1cm4gYSBwb2ludGVyIHRvIGl0LCBidXQgZG8gbm90IG1ha2UgaXQgcHVibGljIC0tCisgICAgICoganVzdCBiZWNhdXNlIHNvbWVvbmUgcmVxdWVzdGVkIHNvbWV0aGluZywgd2UgZG8gbm90IGV4cGFuZCB0aGUKKyAgICAgKiBhdmFpbGFibGUgSUQgbGlzdCAob3Igc3BlYyBEQUcpLgorICAgICAqLworICAgIHByaXZhdGUgT2JqZWN0W10gZmluZEluU3RhdGljU3RvcmUoU3BlYyBzcmMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3BlYyB0cmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhcmlhbnQpIHsKKyAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICBTdHJpbmcgSUQgPSBUcmFuc2xpdGVyYXRvcklEUGFyc2VyLlNUVnRvSUQoc3JjLmdldCgpLCB0cmcuZ2V0KCksIHZhcmlhbnQpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUcmFuc2xpdGVyYXRvclJlZ2lzdHJ5LmZpbmRJblN0YXRpY1N0b3JlOiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElEKTsKKyAgICAgICAgfQorICAgICAgICBPYmplY3RbXSBlbnRyeSA9IG51bGw7CisgICAgICAgIGlmIChzcmMuaXNMb2NhbGUoKSkgeworICAgICAgICAgICAgZW50cnkgPSBmaW5kSW5CdW5kbGUoc3JjLCB0cmcsIHZhcmlhbnQsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICB9IGVsc2UgaWYgKHRyZy5pc0xvY2FsZSgpKSB7CisgICAgICAgICAgICBlbnRyeSA9IGZpbmRJbkJ1bmRsZSh0cmcsIHNyYywgdmFyaWFudCwgVHJhbnNsaXRlcmF0b3IuUkVWRVJTRSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBJZiB3ZSBmb3VuZCBhbiBlbnRyeSwgc3RvcmUgaXQgaW4gdGhlIEhhc2h0YWJsZSBmb3IgbmV4dAorICAgICAgICAvLyB0aW1lLgorICAgICAgICBpZiAoZW50cnkgIT0gbnVsbCkgeworICAgICAgICAgICAgcmVnaXN0ZXJFbnRyeShzcmMuZ2V0VG9wKCksIHRyZy5nZXRUb3AoKSwgdmFyaWFudCwgZW50cnksIGZhbHNlKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBlbnRyeTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBdHRlbXB0IHRvIGZpbmQgYW4gZW50cnkgaW4gYSBzaW5nbGUgcmVzb3VyY2UgYnVuZGxlLiAgVGhpcyBpcworICAgICAqIGEgb25lLXNpZGVkIGxvb2t1cC4gIGZpbmRJblN0YXRpY1N0b3JlKCkgcGVyZm9ybXMgdXAgdG8gdHdvIHN1Y2gKKyAgICAgKiBsb29rdXBzLCBvbmUgZm9yIHRoZSBzb3VyY2UsIGFuZCBvbmUgZm9yIHRoZSB0YXJnZXQuCisgICAgICoKKyAgICAgKiBEbyBub3QgcGVyZm9ybSBmYWxsYmFjay4gIFJldHVybiAwIG9uIGZhaWx1cmUuCisgICAgICoKKyAgICAgKiBPbiBzdWNjZXNzLCBjcmVhdGUgYSBuZXcgRW50cnkgb2JqZWN0LCBwb3B1bGF0ZSBpdCwgYW5kIHJldHVybiBpdC4KKyAgICAgKiBUaGUgY2FsbGVyIG93bnMgdGhlIHJldHVybmVkIG9iamVjdC4KKyAgICAgKi8KKyAgICBwcml2YXRlIE9iamVjdFtdIGZpbmRJbkJ1bmRsZShTcGVjIHNwZWNUb09wZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3BlYyBzcGVjVG9GaW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YXJpYW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkaXJlY3Rpb24pIHsKKyAgICAgICAgLy8gYXNzZXJ0KHNwZWNUb09wZW4uaXNMb2NhbGUoKSk7CisgICAgICAgIFJlc291cmNlQnVuZGxlIHJlcyA9IHNwZWNUb09wZW4uZ2V0QnVuZGxlKCk7CisKKyAgICAgICAgaWYgKHJlcyA9PSBudWxsKSB7CisgICAgICAgICAgICAvLyBUaGlzIG1lYW5zIHRoYXQgdGhlIGJ1bmRsZSdzIGxvY2FsZSBkb2VzIG5vdCBtYXRjaAorICAgICAgICAgICAgLy8gdGhlIGN1cnJlbnQgbGV2ZWwgb2YgaXRlcmF0aW9uIGZvciB0aGUgc3BlYy4KKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChpbnQgcGFzcz0wOyBwYXNzPDI7ICsrcGFzcykgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHRhZyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIC8vIEZpcnN0IHRyeSBlaXRoZXIgVHJhbnNsaXRlcmF0b3JUb194eHggb3IKKyAgICAgICAgICAgIC8vIFRyYW5zbGl0ZXJhdGVGcm9tX3h4eCwgdGhlbiB0cnkgdGhlIGJpZGlyZWN0aW9uYWwKKyAgICAgICAgICAgIC8vIFRyYW5zbGl0ZXJhdGVfeHh4LiAgVGhpcyBwcmVjZWRlbmNlIG9yZGVyIGlzIGFyYml0cmFyeQorICAgICAgICAgICAgLy8gYnV0IG11c3QgYmUgY29uc2lzdGVudCBhbmQgZG9jdW1lbnRlZC4KKyAgICAgICAgICAgIGlmIChwYXNzID09IDApIHsKKyAgICAgICAgICAgICAgICB0YWcuYXBwZW5kKGRpcmVjdGlvbiA9PSBUcmFuc2xpdGVyYXRvci5GT1JXQVJEID8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJUcmFuc2xpdGVyYXRlVG9fIiA6ICJUcmFuc2xpdGVyYXRlRnJvbV8iKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdGFnLmFwcGVuZCgiVHJhbnNsaXRlcmF0ZV8iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRhZy5hcHBlbmQoc3BlY1RvRmluZC5nZXQoKS50b1VwcGVyQ2FzZSgpKTsKKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAvLyBUaGUgVHJhbnNsaXRlcmF0ZSpfeHh4IHJlc291cmNlIGlzIGFuIGFycmF5IG9mCisgICAgICAgICAgICAgICAgLy8gc3RyaW5ncyBvZiB0aGUgZm9ybWF0IHsgPHYwPiwgPHIwPiwgLi4uIH0uICBFYWNoCisgICAgICAgICAgICAgICAgLy8gPHZpPiBpcyBhIHZhcmlhbnQgbmFtZSwgYW5kIGVhY2ggPHJpPiBpcyBhIHJ1bGUuCisgICAgICAgICAgICAgICAgU3RyaW5nW10gc3VicmVzID0gcmVzLmdldFN0cmluZ0FycmF5KHRhZy50b1N0cmluZygpKTsKKworICAgICAgICAgICAgICAgIC8vIGFzc2VydChzdWJyZXMgIT0gbnVsbCk7CisgICAgICAgICAgICAgICAgLy8gYXNzZXJ0KHN1YnJlcy5sZW5ndGggJSAyID09IDApOworICAgICAgICAgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgICAgICAgICBpZiAodmFyaWFudC5sZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaT0wOyBpPHN1YnJlcy5sZW5ndGg7IGkrPSAyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3VicmVzW2ldLmVxdWFsc0lnbm9yZUNhc2UodmFyaWFudCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChpIDwgc3VicmVzLmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICAvLyBXZSBoYXZlIGEgbWF0Y2gsIG9yIHRoZXJlIGlzIG5vIHZhcmlhbnQgYW5kIGkgPT0gMC4KKyAgICAgICAgICAgICAgICAgICAgLy8gV2UgaGF2ZSBzdWNjZWVkZWQgaW4gbG9hZGluZyBhIHN0cmluZyBmcm9tIHRoZQorICAgICAgICAgICAgICAgICAgICAvLyBsb2NhbGUgcmVzb3VyY2VzLiAgUmV0dXJuIHRoZSBydWxlIHN0cmluZyB3aGljaAorICAgICAgICAgICAgICAgICAgICAvLyB3aWxsIGl0c2VsZiBiZWNvbWUgdGhlIHJlZ2lzdHJ5IGVudHJ5LgorCisgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBkaXJlY3Rpb24gaXMgYWx3YXlzIGZvcndhcmQgZm9yIHRoZQorICAgICAgICAgICAgICAgICAgICAvLyBUcmFuc2xpdGVyYXRlVG9feHh4IGFuZCBUcmFuc2xpdGVyYXRlRnJvbV94eHgKKyAgICAgICAgICAgICAgICAgICAgLy8gaXRlbXM7IHRob3NlIGFyZSB1bmlkaXJlY3Rpb25hbCBmb3J3YXJkIHJ1bGVzLgorICAgICAgICAgICAgICAgICAgICAvLyBGb3IgdGhlIGJpZGlyZWN0aW9uYWwgVHJhbnNsaXRlcmF0ZV94eHggaXRlbXMsCisgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBkaXJlY3Rpb24gaXMgdGhlIHZhbHVlIHBhc3NlZCBpbiB0byB0aGlzCisgICAgICAgICAgICAgICAgICAgIC8vIGZ1bmN0aW9uLgorICAgICAgICAgICAgICAgICAgICBpbnQgZGlyID0gKHBhc3MgPT0gMCkgPyBUcmFuc2xpdGVyYXRvci5GT1JXQVJEIDogZGlyZWN0aW9uOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE9iamVjdFtdIHsgbmV3IExvY2FsZUVudHJ5KHN1YnJlc1tpKzFdLCBkaXIpIH07CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeyAKKwkJCQlpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigibWlzc2luZyByZXNvdXJjZTogIiArIGUpOyAKKwkJCX0KKyAgICAgICAgfQorCisgICAgICAgIC8vIElmIHdlIGdldCBoZXJlIHdlIGhhZCBhIG1pc3NpbmcgcmVzb3VyY2UgZXhjZXB0aW9uIG9yIHdlCisgICAgICAgIC8vIGZhaWxlZCB0byBmaW5kIGEgZGVzaXJlZCB2YXJpYW50LgorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QuICBDYWxscyAzLWFyZyBmaW5kKCkuCisgICAgICovCisgICAgcHJpdmF0ZSBPYmplY3RbXSBmaW5kKFN0cmluZyBJRCkgeworICAgICAgICBTdHJpbmdbXSBzdHYgPSBUcmFuc2xpdGVyYXRvcklEUGFyc2VyLklEdG9TVFYoSUQpOworICAgICAgICByZXR1cm4gZmluZChzdHZbMF0sIHN0dlsxXSwgc3R2WzJdKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUb3AtbGV2ZWwgZmluZCBtZXRob2QuICBBdHRlbXB0IHRvIGZpbmQgYSBzb3VyY2UtdGFyZ2V0L3ZhcmlhbnQgaW4KKyAgICAgKiBlaXRoZXIgdGhlIGR5bmFtaWMgb3IgdGhlIHN0YXRpYyAobG9jYWxlIHJlc291cmNlKSBzdG9yZS4gIFBlcmZvcm0KKyAgICAgKiBmYWxsYmFjay4KKyAgICAgKgorICAgICAqIExvb2t1cCBzZXF1ZW5jZSBmb3Igc3NfU1NfU1NTLXR0X1RUX1RUVC92OgorICAgICAqCisgICAgICogICBzc19TU19TU1MtdHRfVFRfVFRUL3YgLS0gaW4gaGFzaHRhYmxlCisgICAgICogICBzc19TU19TU1MtdHRfVFRfVFRUL3YgLS0gaW4gc3NfU1NfU1NTIChubyBmYWxsYmFjaykKKyAgICAgKgorICAgICAqICAgICByZXBlYXQgd2l0aCB0ID0gdHRfVFRfVFRULCB0dF9UVCwgdHQsIGFuZCB0c2NyaXB0CisgICAgICoKKyAgICAgKiAgICAgc3NfU1NfU1NTLXQvKgorICAgICAqICAgICBzc19TUy10LyoKKyAgICAgKiAgICAgc3MtdC8qCisgICAgICogICAgIHNzY3JpcHQtdC8qCisgICAgICoKKyAgICAgKiBIZXJlICogbWF0Y2hlcyB0aGUgZmlyc3QgdmFyaWFudCBsaXN0ZWQuCisgICAgICoKKyAgICAgKiBDYWxsZXIgZG9lcyBOT1Qgb3duIHJldHVybmVkIG9iamVjdC4gIFJldHVybiAwIG9uIGZhaWx1cmUuCisgICAgICovCisgICAgcHJpdmF0ZSBPYmplY3RbXSBmaW5kKFN0cmluZyBzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YXJpYW50KSB7CisKKyAgICAgICAgU3BlYyBzcmMgPSBuZXcgU3BlYyhzb3VyY2UpOworICAgICAgICBTcGVjIHRyZyA9IG5ldyBTcGVjKHRhcmdldCk7CisgICAgICAgIE9iamVjdFtdIGVudHJ5ID0gbnVsbDsKKworICAgICAgICBpZiAodmFyaWFudC5sZW5ndGgoKSAhPSAwKSB7CisKKyAgICAgICAgICAgIC8vIFNlZWsgZXhhY3QgbWF0Y2ggaW4gaGFzaHRhYmxlCisgICAgICAgICAgICBlbnRyeSA9IGZpbmRJbkR5bmFtaWNTdG9yZShzcmMsIHRyZywgdmFyaWFudCk7CisgICAgICAgICAgICBpZiAoZW50cnkgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBlbnRyeTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gU2VlayBleGFjdCBtYXRjaCBpbiBsb2NhbGUgcmVzb3VyY2VzCisgICAgICAgICAgICBlbnRyeSA9IGZpbmRJblN0YXRpY1N0b3JlKHNyYywgdHJnLCB2YXJpYW50KTsKKyAgICAgICAgICAgIGlmIChlbnRyeSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGVudHJ5OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgc3JjLnJlc2V0KCk7CisgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgLy8gU2VlayBtYXRjaCBpbiBoYXNodGFibGUKKyAgICAgICAgICAgICAgICBlbnRyeSA9IGZpbmRJbkR5bmFtaWNTdG9yZShzcmMsIHRyZywgTk9fVkFSSUFOVCk7CisgICAgICAgICAgICAgICAgaWYgKGVudHJ5ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVudHJ5OworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIFNlZWsgbWF0Y2ggaW4gbG9jYWxlIHJlc291cmNlcworICAgICAgICAgICAgICAgIGVudHJ5ID0gZmluZEluU3RhdGljU3RvcmUoc3JjLCB0cmcsIE5PX1ZBUklBTlQpOworICAgICAgICAgICAgICAgIGlmIChlbnRyeSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBlbnRyeTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFzcmMuaGFzRmFsbGJhY2soKSkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc3JjLm5leHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghdHJnLmhhc0ZhbGxiYWNrKCkpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRyZy5uZXh0KCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHaXZlbiBhbiBFbnRyeSBvYmplY3QsIGluc3RhbnRpYXRlIGl0LiAgQ2FsbGVyIG93bnMgcmVzdWx0LiAgUmV0dXJuCisgICAgICogMCBvbiBmYWlsdXJlLgorICAgICAqCisgICAgICogUmV0dXJuIGEgbm9uLWVtcHR5IGFsaWFzUmV0dXJuIHZhbHVlIGlmIHRoZSBJRCBwb2ludHMgdG8gYW4gYWxpYXMuCisgICAgICogV2UgY2Fubm90IGluc3RhbnRpYXRlIGl0IG91cnNlbHZlcyBiZWNhdXNlIHRoZSBhbGlhcyBtYXkgY29udGFpbgorICAgICAqIGZpbHRlcnMgb3IgY29tcG91bmRzLCB3aGljaCB3ZSBkbyBub3QgdW5kZXJzdGFuZC4gIENhbGxlciBzaG91bGQKKyAgICAgKiBtYWtlIGFsaWFzUmV0dXJuIGVtcHR5IGJlZm9yZSBjYWxsaW5nLgorICAgICAqCisgICAgICogVGhlIGVudHJ5IG9iamVjdCBpcyBhc3N1bWVkIHRvIHJlc2lkZSBpbiB0aGUgZHluYW1pYyBzdG9yZS4gIEl0IG1heSBiZQorICAgICAqIG1vZGlmaWVkLgorICAgICAqLworICAgIHByaXZhdGUgVHJhbnNsaXRlcmF0b3IgaW5zdGFudGlhdGVFbnRyeShTdHJpbmcgSUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdFtdIGVudHJ5V3JhcHBlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGFsaWFzUmV0dXJuKSB7CisgICAgICAgIC8vIFdlIGFjdHVhbGx5IG1vZGlmeSB0aGUgZW50cnkgb2JqZWN0IGluIHNvbWUgY2FzZXMuICBJZiBpdAorICAgICAgICAvLyBpcyBhIHN0cmluZywgd2UgbWF5IHBhcnRpYWxseSBwYXJzZSBpdCBhbmQgdHVybiBpdCBpbnRvIGEKKyAgICAgICAgLy8gbW9yZSBwcm9jZXNzZWQgcHJlY3Vyc29yLiAgVGhpcyBtYWtlcyB0aGUgbmV4dAorICAgICAgICAvLyBpbnN0YW50aWF0aW9uIGZhc3RlciBhbmQgYWxsb3dzIHNoYXJpbmcgb2YgaW1tdXRhYmxlCisgICAgICAgIC8vIGNvbXBvbmVudHMgbGlrZSB0aGUgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSBvYmplY3RzLgorICAgICAgICAvLyBGb3IgdGhpcyByZWFzb24sIHRoZSBlbnRyeSBvYmplY3QgaXMgYW4gT2JqZWN0W10gb2YgbGVuZ3RoCisgICAgICAgIC8vIDEuCisKKyAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgT2JqZWN0IGVudHJ5ID0gZW50cnlXcmFwcGVyWzBdOworCisgICAgICAgICAgICBpZiAoZW50cnkgaW5zdGFuY2VvZiBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5EYXRhKSB7CisgICAgICAgICAgICAgICAgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSBkYXRhID0gKFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLkRhdGEpIGVudHJ5OworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IoSUQsIGRhdGEsIG51bGwpOworICAgICAgICAgICAgfSBlbHNlIGlmIChlbnRyeSBpbnN0YW5jZW9mIENsYXNzKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChUcmFuc2xpdGVyYXRvcikgKChDbGFzcykgZW50cnkpLm5ld0luc3RhbmNlKCk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoSW5zdGFudGlhdGlvbkV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiBlMikge30KKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZW50cnkgaW5zdGFuY2VvZiBBbGlhc0VudHJ5KSB7CisgICAgICAgICAgICAgICAgYWxpYXNSZXR1cm4uYXBwZW5kKCgoQWxpYXNFbnRyeSkgZW50cnkpLmFsaWFzKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZW50cnkgaW5zdGFuY2VvZiBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuICgoVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSkgZW50cnkpLmdldEluc3RhbmNlKElEKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZW50cnkgaW5zdGFuY2VvZiBDb21wb3VuZFJCVEVudHJ5KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuICgoQ29tcG91bmRSQlRFbnRyeSkgZW50cnkpLmdldEluc3RhbmNlKCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGVudHJ5IGluc3RhbmNlb2YgVHJhbnNsaXRlcmF0b3IpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gKFRyYW5zbGl0ZXJhdG9yKSBlbnRyeTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gQXQgdGhpcyBwb2ludCBlbnRyeSB0eXBlIG11c3QgYmUgZWl0aGVyIFJVTEVTX0ZPUldBUkQgb3IKKyAgICAgICAgICAgIC8vIFJVTEVTX1JFVkVSU0UuICBXZSBwcm9jZXNzIHRoZSBydWxlIGRhdGEgaW50byBhCisgICAgICAgICAgICAvLyBUcmFuc2xpdGVyYXRvclJ1bGVEYXRhIG9iamVjdCwgYW5kIHBvc3NpYmx5IGFsc28gaW50byBhbgorICAgICAgICAgICAgLy8gLmlkIGhlYWRlciBhbmQvb3IgZm9vdGVyLiAgVGhlbiB3ZSBtb2RpZnkgdGhlIHJlZ2lzdHJ5IHdpdGgKKyAgICAgICAgICAgIC8vIHRoZSBwYXJzZWQgZGF0YSBhbmQgcmV0cnkuCisKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yUGFyc2VyIHBhcnNlciA9IG5ldyBUcmFuc2xpdGVyYXRvclBhcnNlcigpOworCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIFJlc291cmNlRW50cnkgcmUgPSAoUmVzb3VyY2VFbnRyeSkgZW50cnk7CisgICAgICAgICAgICAgICAgUmVzb3VyY2VSZWFkZXIgciA9IG51bGw7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgciA9IG5ldyBSZXNvdXJjZVJlYWRlcihyZS5yZXNvdXJjZU5hbWUsIHJlLmVuY29kaW5nKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChVbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuOyBVVEY4IGlzIGFsd2F5cyBzdXBwb3J0ZWQKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBwYXJzZXIucGFyc2UociwgcmUuZGlyZWN0aW9uKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgLy8gSWYgd2UgcHVsbCBhIHJ1bGUgZnJvbSBhIGxvY2FsZSByZXNvdXJjZSBidW5kbGUgaXQgd2lsbAorICAgICAgICAgICAgICAgIC8vIGJlIGEgTG9jYWxlRW50cnkuCisgICAgICAgICAgICAgICAgTG9jYWxlRW50cnkgbGUgPSAoTG9jYWxlRW50cnkpIGVudHJ5OworICAgICAgICAgICAgICAgIHBhcnNlci5wYXJzZShsZS5ydWxlLCBsZS5kaXJlY3Rpb24pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBSZXNldCBlbnRyeSB0byBzb21ldGhpbmcgdGhhdCB3ZSBwcm9jZXNzIGF0IHRoZQorICAgICAgICAgICAgLy8gdG9wIG9mIHRoZSBsb29wLCB0aGVuIGxvb3AgYmFjayB0byB0aGUgdG9wLiAgQXMgbG9uZyBhcyB3ZQorICAgICAgICAgICAgLy8gZG8gdGhpcywgd2Ugb25seSBsb29wIHRocm91Z2ggdHdpY2UgYXQgbW9zdC4KKyAgICAgICAgICAgIC8vIE5PVEU6IFRoZSBsb2dpYyBoZXJlIG1hdGNoZXMgdGhhdCBpbgorICAgICAgICAgICAgLy8gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCkuCisgICAgICAgICAgICBpZiAocGFyc2VyLmlkQmxvY2subGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgIGlmIChwYXJzZXIuZGF0YSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIE5vIGlkQmxvY2ssIG5vIGRhdGEgLS0gdGhpcyBpcyBqdXN0IGFuCisgICAgICAgICAgICAgICAgICAgIC8vIGFsaWFzIGZvciBOdWxsCisgICAgICAgICAgICAgICAgICAgIGVudHJ5V3JhcHBlclswXSA9IG5ldyBBbGlhc0VudHJ5KE51bGxUcmFuc2xpdGVyYXRvci5fSUQpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIE5vIGlkQmxvY2ssIGRhdGEgIT0gMCAtLSB0aGlzIGlzIGFuCisgICAgICAgICAgICAgICAgICAgIC8vIG9yZGluYXJ5IFJCVF9EQVRBCisgICAgICAgICAgICAgICAgICAgIGVudHJ5V3JhcHBlclswXSA9IHBhcnNlci5kYXRhOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKHBhcnNlci5kYXRhID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gaWRCbG9jaywgbm8gZGF0YSAtLSB0aGlzIGlzIGFuIGFsaWFzLiAgVGhlIElEIGhhcworICAgICAgICAgICAgICAgICAgICAvLyBiZWVuIG11bmdlZCBmcm9tIHJldmVyc2UgaW50byBmb3J3YXJkIG1vZGUsIGlmCisgICAgICAgICAgICAgICAgICAgIC8vIG5lY2Vzc2FyeSwgc28gaW5zdGFudGlhdGUgdGhlIElEIGluIHRoZSBmb3J3YXJkCisgICAgICAgICAgICAgICAgICAgIC8vIGRpcmVjdGlvbi4KKyAgICAgICAgICAgICAgICAgICAgZW50cnlXcmFwcGVyWzBdID0gbmV3IEFsaWFzRW50cnkocGFyc2VyLmlkQmxvY2spOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGlkQmxvY2sgYW5kIGRhdGEgLS0gdGhpcyBpcyBhIGNvbXBvdW5kCisgICAgICAgICAgICAgICAgICAgIC8vIFJCVAorICAgICAgICAgICAgICAgICAgICBlbnRyeVdyYXBwZXJbMF0gPSBuZXcgQ29tcG91bmRSQlRFbnRyeSgKKyAgICAgICAgICAgICAgICAgICAgICAgIElELCBwYXJzZXIuaWRCbG9jaywgcGFyc2VyLmlkU3BsaXRQb2ludCwgcGFyc2VyLmRhdGEsIHBhcnNlci5jb21wb3VuZEZpbHRlcik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQorCisvL2VvZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvVVRGMTYuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VURjE2LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGFjYWIyNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VURjE2LmphdmEKQEAgLTAsMCArMSwyMjYzIEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L3RleHQvVVRGMTYuamF2YSx2ICQgCisqICREYXRlOiAyMDAyLzA3LzE2IDAwOjIxOjEzICQgCisqICRSZXZpc2lvbjogMS4yMiAkCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLk5vcm1hbGl6ZXJJbXBsOworLyoqCisqIFN0YW5kYWxvbmUgdXRpbGl0eSBjbGFzcyBwcm92aWRpbmcgVVRGMTYgY2hhcmFjdGVyIGNvbnZlcnNpb25zIGFuZCBpbmRleGluZyAKKyogY29udmVyc2lvbnMuCisqIDxwPkNvZGUgdGhhdCB1c2VzIHN0cmluZ3MgYWxvbmUgcmFyZWx5IG5lZWQgbW9kaWZpY2F0aW9uLiAKKyogQnkgZGVzaWduLCBVVEYtMTYgZG9lcyBub3QgYWxsb3cgb3ZlcmxhcCwgc28gc2VhcmNoaW5nIGZvciBzdHJpbmdzIGlzIGEgc2FmZSAKKyogb3BlcmF0aW9uLiBTaW1pbGFybHksIGNvbmNhdGVuYXRpb24gaXMgYWx3YXlzIHNhZmUuIFN1YnN0cmluZ2luZyBpcyBzYWZlIGlmIAorKiB0aGUgc3RhcnQgYW5kIGVuZCBhcmUgYm90aCBvbiBVVEYtMzIgYm91bmRhcmllcy4gSW4gbm9ybWFsIGNvZGUsIHRoZSB2YWx1ZXMgCisqIGZvciBzdGFydCBhbmQgZW5kIGFyZSBvbiB0aG9zZSBib3VuZGFyaWVzLCBzaW5jZSB0aGV5IGFyb3NlIGZyb20gb3BlcmF0aW9ucyAKKyogbGlrZSBzZWFyY2hpbmcuIElmIG5vdCwgdGhlIG5lYXJlc3QgVVRGLTMyIGJvdW5kYXJpZXMgY2FuIGJlIGRldGVybWluZWQgCisqIHVzaW5nIDxjb2RlPmJvdW5kcygpPC9jb2RlPi4KKyogPHN0cm9uZz5FeGFtcGxlczo8L3N0cm9uZz4KKyogPHA+VGhlIGZvbGxvd2luZyBleGFtcGxlcyBpbGx1c3RyYXRlIHVzZSBvZiBzb21lIG9mIHRoZXNlIG1ldGhvZHMuIAorKiA8cHJlPgorKiAvLyBpdGVyYXRpb24gZm9yd2FyZHM6IE9yaWdpbmFsCisqIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgKytpKSB7CisqoKCgY2hhciBjaCA9IHMuY2hhckF0KGkpOworKqCgoGRvU29tZXRoaW5nV2l0aChjaCk7CisqIH0KKyoKKyogLy8gaXRlcmF0aW9uIGZvcndhcmRzOiBDaGFuZ2VzIGZvciBVVEYtMzIKKyogaW50IGNoOworKiBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7IGkrPVVURjE2LmdldENoYXJDb3VudChjaCkpIHsKKyqgoKBjaCA9IFVURjE2LmNoYXJBdChzLGkpOworKqCgoGRvU29tZXRoaW5nV2l0aChjaCk7CisqIH0KKyoKKyogLy8gaXRlcmF0aW9uIGJhY2t3YXJkczogT3JpZ2luYWwKKyogZm9yIChpbnQgaSA9IHMubGVuZ3RoKCkgLTE7IGkgPj0gMDsgLS1pKSB7CisqoKCgY2hhciBjaCA9IHMuY2hhckF0KGkpOworKqCgoGRvU29tZXRoaW5nV2l0aChjaCk7CisqIH0KKyogIAorKiAvLyBpdGVyYXRpb24gYmFja3dhcmRzOiBDaGFuZ2VzIGZvciBVVEYtMzIKKyogaW50IGNoOworKiBmb3IgKGludCBpID0gcy5sZW5ndGgoKSAtMTsgaSA+IDA7IGktPVVURjE2LmdldENoYXJDb3VudChjaCkpIHsKKyqgoKBjaCA9IFVURjE2LmNoYXJBdChzLGkpOworKqCgoGRvU29tZXRoaW5nV2l0aChjaCk7CisqIH0KKyogPC9wcmU+CisqIDxzdHJvbmc+Tm90ZXM6PC9zdHJvbmc+CisqIDx1bD4KKyogICA8bGk+CisqICAgPHN0cm9uZz5OYW1pbmc6PC9zdHJvbmc+IEZvciBjbGFyaXR5LCBIaWdoIGFuZCBMb3cgc3Vycm9nYXRlcyBhcmUgY2FsbGVkIAorKiAgIDxjb2RlPkxlYWQ8L2NvZGU+IGFuZCA8Y29kZT5UcmFpbDwvY29kZT4gaW4gdGhlIEFQSSwgd2hpY2ggZ2l2ZXMgYSBiZXR0ZXIgCisqICAgc2Vuc2Ugb2YgdGhlaXIgb3JkZXJpbmcgaW4gYSBzdHJpbmcuIDxjb2RlPm9mZnNldDE2PC9jb2RlPiBhbmQgCisqICAgPGNvZGU+b2Zmc2V0MzI8L2NvZGU+IGFyZSB1c2VkIHRvIGRpc3Rpbmd1aXNoIG9mZnNldHMgdG8gVVRGLTE2IAorKiAgIGJvdW5kYXJpZXMgdnMgb2Zmc2V0cyB0byBVVEYtMzIgYm91bmRhcmllcy4gPGNvZGU+aW50IGNoYXIzMjwvY29kZT4gaXMgCisqICAgdXNlZCB0byBjb250YWluIFVURi0zMiBjaGFyYWN0ZXJzLCBhcyBvcHBvc2VkIHRvIDxjb2RlPmNoYXIxNjwvY29kZT4sIAorKiAgIHdoaWNoIGlzIGEgVVRGLTE2IGNvZGUgdW5pdC4KKyogICA8L2xpPgorKiAgIDxsaT4KKyogICA8c3Ryb25nPlJvdW5kdHJpcHBpbmcgT2Zmc2V0czo8L3N0cm9uZz4gWW91IGNhbiBhbHdheXMgcm91bmR0cmlwIGZyb20gYSAKKyogICBVVEYtMzIgb2Zmc2V0IHRvIGEgVVRGLTE2IG9mZnNldCBhbmQgYmFjay4gQmVjYXVzZSBvZiB0aGUgZGlmZmVyZW5jZSBpbiAKKyogICBzdHJ1Y3R1cmUsIHlvdSBjYW4gcm91bmR0cmlwIGZyb20gYSBVVEYtMTYgb2Zmc2V0IHRvIGEgVVRGLTMyIG9mZnNldCBhbmQgCisqICAgYmFjayBpZiBhbmQgb25seSBpZiA8Y29kZT5ib3VuZHMoc3RyaW5nLCBvZmZzZXQxNikgIT0gVFJBSUw8L2NvZGU+LgorKiAgIDwvbGk+CisqICAgPGxpPgorKiAgIDxzdHJvbmc+RXhjZXB0aW9uczo8L3N0cm9uZz4gVGhlIGVycm9yIGNoZWNraW5nIHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uIAorKiAgIGlmIGluZGljZXMgYXJlIG91dCBvZiBib3VuZHMuIE90aGVyIHRoYW4gdGhhbiB0aGF0LCBhbGwgbWV0aG9kcyB3aWxsIAorKiAgIGJlaGF2ZSByZWFzb25hYmx5LCBldmVuIGlmIHVubWF0Y2hlZCBzdXJyb2dhdGVzIG9yIG91dC1vZi1ib3VuZHMgVVRGLTMyIAorKiAgIHZhbHVlcyBhcmUgcHJlc2VudC4gPGNvZGU+VUNoYXJhY3Rlci5pc0xlZ2FsKCk8L2NvZGU+IGNhbiBiZSB1c2VkIHRvIGNoZWNrIAorKiAgIGZvciB2YWxpZGl0eSBpZiBkZXNpcmVkLgorKiAgIDwvbGk+CisqICAgPGxpPgorKiAgIDxzdHJvbmc+VW5tYXRjaGVkIFN1cnJvZ2F0ZXM6PC9zdHJvbmc+IElmIHRoZSBzdHJpbmcgY29udGFpbnMgdW5tYXRjaGVkIAorKiAgIHN1cnJvZ2F0ZXMsIHRoZW4gdGhlc2UgYXJlIGNvdW50ZWQgYXMgb25lIFVURi0zMiB2YWx1ZS4gVGhpcyBtYXRjaGVzIAorKiAgIHRoZWlyIGl0ZXJhdGlvbiBiZWhhdmlvciwgd2hpY2ggaXMgdml0YWwuIEl0IGFsc28gbWF0Y2hlcyBjb21tb24gZGlzcGxheSAKKyogICBwcmFjdGljZSBhcyBtaXNzaW5nIGdseXBocyAoc2VlIHRoZSBVbmljb2RlIFN0YW5kYXJkIFNlY3Rpb24gNS40LCA1LjUpLgorKiAgIDwvbGk+CisqICAgPGxpPgorKiAgICAgPHN0cm9uZz5PcHRpbWl6YXRpb246PC9zdHJvbmc+IFRoZSBtZXRob2QgaW1wbGVtZW50YXRpb25zIG1heSBuZWVkIAorKiAgICAgb3B0aW1pemF0aW9uIGlmIHRoZSBjb21waWxlciBkb2Vzbid0IGZvbGQgc3RhdGljIGZpbmFsIG1ldGhvZHMuIFNpbmNlIAorKiAgICAgc3Vycm9nYXRlIHBhaXJzIHdpbGwgZm9ybSBhbiBleGNlZWRpbmcgc21hbGwgcGVyY2VudGFnZSBvZiBhbGwgdGhlIHRleHQgCisqICAgICBpbiB0aGUgd29ybGQsIHRoZSBzaW5nbGV0b24gY2FzZSBzaG91bGQgYWx3YXlzIGJlIG9wdGltaXplZCBmb3IuCisqICAgPC9saT4KKyogPC91bD4KKyogQGF1dGhvciBNYXJrIERhdmlzLCB3aXRoIGhlbHAgZnJvbSBNYXJrdXMgU2NoZXJlcgorKiBAc2luY2UgTm92MjQwMAorKi8KKworcHVibGljIGZpbmFsIGNsYXNzIFVURjE2Cit7CisgICAgLy8gcHVibGljIHZhcmlhYmxlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgIAorICAgIC8qKgorICAgICogVmFsdWUgcmV0dXJuZWQgaW4gPGNvZGU+PGEgaHJlZj0iI2JvdW5kcyhqYXZhLmxhbmcuU3RyaW5nLCBpbnQpIj4KKyAgICAqIGJvdW5kcygpPC9hPjwvY29kZT4uCisgICAgKiBUaGVzZSB2YWx1ZXMgYXJlIGNob3NlbiBzcGVjaWZpY2FsbHkgc28gdGhhdCBpdCBhY3R1YWxseSByZXByZXNlbnRzICAKKyAgICAqIHRoZSBwb3NpdGlvbiBvZiB0aGUgY2hhcmFjdGVyIAorICAgICogW29mZnNldDE2IC0gKHZhbHVlID4+IDIpLCBvZmZzZXQxNiArICh2YWx1ZSAmIDMpXQorICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0lOR0xFX0NIQVJfQk9VTkRBUlkgPSAxLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBMRUFEX1NVUlJPR0FURV9CT1VOREFSWSA9IDIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSQUlMX1NVUlJPR0FURV9CT1VOREFSWSA9IDU7CisgICAgLyoqIAorICAgICogVGhlIGxvd2VzdCBVbmljb2RlIGNvZGUgcG9pbnQgdmFsdWUuCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT0RFUE9JTlRfTUlOX1ZBTFVFID0gMDsKKyAgICAvKioKKyAgICAqIFRoZSBoaWdoZXN0IFVuaWNvZGUgY29kZSBwb2ludCB2YWx1ZSAoc2NhbGFyIHZhbHVlKSBhY2NvcmRpbmcgdG8gdGhlIAorICAgICogVW5pY29kZSBTdGFuZGFyZC4KKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPREVQT0lOVF9NQVhfVkFMVUUgPSAweDEwZmZmZjsgCisgICAgLyoqCisgICAgKiBUaGUgbWluaW11bSB2YWx1ZSBmb3IgU3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cworICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUgID0gMHgxMDAwMDsgIAorICAgIC8qKgorICAgICAqIExlYWQgc3Vycm9nYXRlIG1pbmltdW0gdmFsdWUKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUgPSAweEQ4MDA7CisJLyoqCisgICAgICogVHJhaWwgc3Vycm9nYXRlIG1pbmltdW0gdmFsdWUKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUUkFJTF9TVVJST0dBVEVfTUlOX1ZBTFVFID0gMHhEQzAwOyAKKyAgICAvKioKKyAgICAgKiBMZWFkIHN1cnJvZ2F0ZSBtYXhpbXVtIHZhbHVlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEVBRF9TVVJST0dBVEVfTUFYX1ZBTFVFID0gMHhEQkZGOworCS8qKgorICAgICAqIFRyYWlsIHN1cnJvZ2F0ZSBtYXhpbXVtIHZhbHVlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVFJBSUxfU1VSUk9HQVRFX01BWF9WQUxVRSA9IDB4REZGRjsKKyAgICAvKioKKyAgICAgKiBTdXJyb2dhdGUgbWluaW11bSB2YWx1ZQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNVUlJPR0FURV9NSU5fVkFMVUUgPSBMRUFEX1NVUlJPR0FURV9NSU5fVkFMVUU7CisgICAgLyoqCisgICAgICogTWF4aW11bSBzdXJyb2dhdGUgdmFsdWUKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTVVJST0dBVEVfTUFYX1ZBTFVFID0gVFJBSUxfU1VSUk9HQVRFX01BWF9WQUxVRTsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAvLyBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgCisgICAgLyoqCisgICAgKiBQcmV2ZW50IGluc3RhbmNlIGZyb20gYmVpbmcgY3JlYXRlZC4KKyAgICAqLworICAgIHByaXZhdGUgVVRGMTYoKSAKKyAgICB7CisgICAgfQorCisgICAgLy8gcHVibGljIG1ldGhvZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgIAorICAgIC8qKgorICAgICogRXh0cmFjdCBhIHNpbmdsZSBVVEYtMzIgdmFsdWUgZnJvbSBhIHN0cmluZy4KKyAgICAqIFVzZWQgd2hlbiBpdGVyYXRpbmcgZm9yd2FyZHMgb3IgYmFja3dhcmRzICh3aXRoIAorICAgICogPGNvZGU+VVRGMTYuZ2V0Q2hhckNvdW50KCk8L2NvZGU+LCBhcyB3ZWxsIGFzIHJhbmRvbSBhY2Nlc3MuIElmIGEgCisgICAgKiB2YWxpZGl0eSBjaGVjayBpcyByZXF1aXJlZCwgdXNlIAorICAgICogPGNvZGU+PGEgaHJlZj0iLi4vVUNoYXJhY3Rlci5odG1sI2lzTGVnYWwoY2hhcikiPgorICAgICogVUNoYXJhY3Rlci5pc0xlZ2FsKCk8L2E+PC9jb2RlPiBvbiB0aGUgcmV0dXJuIHZhbHVlLgorICAgICogSWYgdGhlIGNoYXIgcmV0cmlldmVkIGlzIHBhcnQgb2YgYSBzdXJyb2dhdGUgcGFpciwgaXRzIHN1cHBsZW1lbnRhcnkgCisgICAgKiBjaGFyYWN0ZXIgd2lsbCBiZSByZXR1cm5lZC4gSWYgYSBjb21wbGV0ZSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlciBpcyAKKyAgICAqIG5vdCBmb3VuZCB0aGUgaW5jb21wbGV0ZSBjaGFyYWN0ZXIgd2lsbCBiZSByZXR1cm5lZAorICAgICogQHBhcmFtIHNvdXJjZSBhcnJheSBvZiBVVEYtMTYgY2hhcnMKKyAgICAqIEBwYXJhbSBvZmZzZXQxNiBVVEYtMTYgb2Zmc2V0IHRvIHRoZSBzdGFydCBvZiB0aGUgY2hhcmFjdGVyLgorICAgICogQHJldHVybiBVVEYtMzIgdmFsdWUgZm9yIHRoZSBVVEYtMzIgdmFsdWUgdGhhdCBjb250YWlucyB0aGUgY2hhciBhdCAKKyAgICAqICAgICAgICAgb2Zmc2V0MTYuIFRoZSBib3VuZGFyaWVzIG9mIHRoYXQgY29kZXBvaW50IGFyZSB0aGUgc2FtZSBhcyBpbiAKKyAgICAqICAgICAgICAgPGNvZGU+Ym91bmRzMzIoKTwvY29kZT4uIAorICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIHRocm93biBpZiBvZmZzZXQxNiBpcyBvdXQgb2YgCisgICAgKiAgICAgICAgICAgIGJvdW5kcy4KKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGNoYXJBdChTdHJpbmcgc291cmNlLCBpbnQgb2Zmc2V0MTYpIAorICAgIHsgICAgICAgICAgICAgCisgICAgICAgIGlmIChvZmZzZXQxNiA8IDAgfHwgb2Zmc2V0MTYgPj0gc291cmNlLmxlbmd0aCgpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihvZmZzZXQxNik7CisgICAgICAgIH0KKyAgICAgICAgICAKKyAgICAgICAgY2hhciBzaW5nbGUgPSBzb3VyY2UuY2hhckF0KG9mZnNldDE2KTsKKyAgICAgICAgaWYgKHNpbmdsZSA8IExFQURfU1VSUk9HQVRFX01JTl9WQUxVRSB8fCAKKyAgICAgICAgICAgIHNpbmdsZSA+IFRSQUlMX1NVUlJPR0FURV9NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHJldHVybiBzaW5nbGU7CisgICAgICAgIH0KKworICAgICAgICAvLyBDb252ZXJ0IHRoZSBVVEYtMTYgc3Vycm9nYXRlIHBhaXIgaWYgbmVjZXNzYXJ5LgorICAgICAgICAvLyBGb3Igc2ltcGxpY2l0eSBpbiB1c2FnZSwgYW5kIGJlY2F1c2UgdGhlIGZyZXF1ZW5jeSBvZiBwYWlycyBpcyAKKyAgICAgICAgLy8gbG93LCBsb29rIGJvdGggZGlyZWN0aW9ucy4KKyAgICAgICAgICAgICAgICAKKwkgICAgaWYgKHNpbmdsZSA8PSBMRUFEX1NVUlJPR0FURV9NQVhfVkFMVUUpIHsKKwkgICAgICAgICsrIG9mZnNldDE2OworCSAgICAgICAgaWYgKHNvdXJjZS5sZW5ndGgoKSAhPSBvZmZzZXQxNikgeworICAgIAkgICAgICAgIGNoYXIgdHJhaWwgPSBzb3VyY2UuY2hhckF0KG9mZnNldDE2KTsKKwkgICAgICAgICAgICBpZiAodHJhaWwgPj0gVFJBSUxfU1VSUk9HQVRFX01JTl9WQUxVRSAmJgorCSAgICAgICAgICAgICAgICB0cmFpbCA8PSBUUkFJTF9TVVJST0dBVEVfTUFYX1ZBTFVFKSB7CisJICAgICAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeShzaW5nbGUsIAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhaWwpOworCSAgICAgICAgICAgIH0KKwkgICAgICAgIH0KKwkgICAgfSAKKwkgICAgZWxzZSAKKwkgICAgeyAKKwkgICAgICAgIC0tIG9mZnNldDE2OworCSAgICAgICAgaWYgKG9mZnNldDE2ID49IDApIHsKKwkgICAgICAgIAkvLyBzaW5nbGUgaXMgYSB0cmFpbCBzdXJyb2dhdGUgc28KKwkgICAgICAgIAljaGFyIGxlYWQgPSBzb3VyY2UuY2hhckF0KG9mZnNldDE2KTsKKwkgICAgICAgIAlpZiAobGVhZCA+PSBMRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUgJiYKKwkgICAgICAgIAkgICAgbGVhZCA8PSBMRUFEX1NVUlJPR0FURV9NQVhfVkFMVUUpIHsKKwkgICAgICAgICAJICAgcmV0dXJuIFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRSYXdTdXBwbGVtZW50YXJ5KGxlYWQsIAorCSAgICAgICAgIAkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2luZ2xlKTsKKwkgICAgICAgIAl9CisJICAgICAgICB9CisJICAgIH0gCisJICAgIHJldHVybiBzaW5nbGU7IC8vIHJldHVybiB1bm1hdGNoZWQgc3Vycm9nYXRlCisgICAgfQorICAgICAgCisgICAgLyoqCisgICAgKiBFeHRyYWN0IGEgc2luZ2xlIFVURi0zMiB2YWx1ZSBmcm9tIGEgc3RyaW5nLgorICAgICogVXNlZCB3aGVuIGl0ZXJhdGluZyBmb3J3YXJkcyBvciBiYWNrd2FyZHMgKHdpdGgKKyAgICAqIDxjb2RlPlVURjE2LmdldENoYXJDb3VudCgpPC9jb2RlPiwgYXMgd2VsbCBhcyByYW5kb20gYWNjZXNzLiBJZiBhIAorICAgICogdmFsaWRpdHkgY2hlY2sgaXMgcmVxdWlyZWQsIHVzZSAKKyAgICAqIDxjb2RlPjxhIGhyZWY9Ii4uL1VDaGFyYWN0ZXIuaHRtbCNpc0xlZ2FsKGNoYXIpIj5VQ2hhcmFjdGVyLmlzTGVnYWwoKQorICAgICogPC9hPjwvY29kZT4gb24gdGhlIHJldHVybiB2YWx1ZS4KKyAgICAqIElmIHRoZSBjaGFyIHJldHJpZXZlZCBpcyBwYXJ0IG9mIGEgc3Vycm9nYXRlIHBhaXIsIGl0cyBzdXBwbGVtZW50YXJ5CisgICAgKiBjaGFyYWN0ZXIgd2lsbCBiZSByZXR1cm5lZC4gSWYgYSBjb21wbGV0ZSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlciBpcyAKKyAgICAqIG5vdCBmb3VuZCB0aGUgaW5jb21wbGV0ZSBjaGFyYWN0ZXIgd2lsbCBiZSByZXR1cm5lZAorICAgICogQHBhcmFtIHNvdXJjZSBVVEYtMTYgY2hhcnMgc3RyaW5nIGJ1ZmZlcgorICAgICogQHBhcmFtIG9mZnNldDE2IFVURi0xNiBvZmZzZXQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBjaGFyYWN0ZXIuCisgICAgKiBAcmV0dXJuIFVURi0zMiB2YWx1ZSBmb3IgdGhlIFVURi0zMiB2YWx1ZSB0aGF0IGNvbnRhaW5zIHRoZSBjaGFyIGF0CisgICAgKiAgICAgICAgIG9mZnNldDE2LiBUaGUgYm91bmRhcmllcyBvZiB0aGF0IGNvZGVwb2ludCBhcmUgdGhlIHNhbWUgYXMgaW4KKyAgICAqICAgICAgICAgPGNvZGU+Ym91bmRzMzIoKTwvY29kZT4uCisgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gdGhyb3duIGlmIG9mZnNldDE2IGlzIG91dCBvZiAKKyAgICAqICAgICAgICAgICAgYm91bmRzLgorICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgY2hhckF0KFN0cmluZ0J1ZmZlciBzb3VyY2UsIGludCBvZmZzZXQxNikKKyAgICB7CisgICAgICAgIGlmIChvZmZzZXQxNiA8IDAgfHwgb2Zmc2V0MTYgPj0gc291cmNlLmxlbmd0aCgpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihvZmZzZXQxNik7CisgICAgICAgIH0KKyAgICAgICAgICAKKyAgICAgICAgY2hhciBzaW5nbGUgPSBzb3VyY2UuY2hhckF0KG9mZnNldDE2KTsKKyAgICAgICAgaWYgKCFpc1N1cnJvZ2F0ZShzaW5nbGUpKSB7CisgICAgICAgICAgICByZXR1cm4gc2luZ2xlOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ29udmVydCB0aGUgVVRGLTE2IHN1cnJvZ2F0ZSBwYWlyIGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgLy8gRm9yIHNpbXBsaWNpdHkgaW4gdXNhZ2UsIGFuZCBiZWNhdXNlIHRoZSBmcmVxdWVuY3kgb2YgcGFpcnMgaXMgCisgICAgICAgIC8vIGxvdywgbG9vayBib3RoIGRpcmVjdGlvbnMuCisgICAgICAgICAgICAgICAgCisJICAgIGlmIChzaW5nbGUgPD0gTEVBRF9TVVJST0dBVEVfTUFYX1ZBTFVFKSAKKwkgICAgeworCSAgICAgICAgKysgb2Zmc2V0MTY7CisJICAgICAgICBpZiAoc291cmNlLmxlbmd0aCgpICE9IG9mZnNldDE2KQorCSAgICAgICAgeworCSAgICAgICAgY2hhciB0cmFpbCA9IHNvdXJjZS5jaGFyQXQob2Zmc2V0MTYpOworCSAgICAgICAgaWYgKGlzVHJhaWxTdXJyb2dhdGUodHJhaWwpKQorCSAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeShzaW5nbGUsIHRyYWlsKTsKKwkgICAgICAgIH0KKwkgICAgfSAKKwkgICAgZWxzZSAKKwkgICAgeyAKKwkgICAgICAgIC0tIG9mZnNldDE2OworCSAgICAgICAgaWYgKG9mZnNldDE2ID49IDApCisJICAgICAgICB7CisJICAgICAgICAvLyBzaW5nbGUgaXMgYSB0cmFpbCBzdXJyb2dhdGUgc28KKwkgICAgICAgIGNoYXIgbGVhZCA9IHNvdXJjZS5jaGFyQXQob2Zmc2V0MTYpOworCSAgICAgICAgaWYgKGlzTGVhZFN1cnJvZ2F0ZShsZWFkKSkgeworCSAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeShsZWFkLCBzaW5nbGUpOworCSAgICAgICAgfQorCSAgICAgICAgfQorCSAgICB9IAorCSAgICByZXR1cm4gc2luZ2xlOyAvLyByZXR1cm4gdW5tYXRjaGVkIHN1cnJvZ2F0ZQorICAgIH0KKyAgICAgIAorICAgIC8qKgorICAgICogRXh0cmFjdCBhIHNpbmdsZSBVVEYtMzIgdmFsdWUgZnJvbSBhIHN1YnN0cmluZy4KKyAgICAqIFVzZWQgd2hlbiBpdGVyYXRpbmcgZm9yd2FyZHMgb3IgYmFja3dhcmRzICh3aXRoCisgICAgKiA8Y29kZT5VVEYxNi5nZXRDaGFyQ291bnQoKTwvY29kZT4sIGFzIHdlbGwgYXMgcmFuZG9tIGFjY2Vzcy4gSWYgYQorICAgICogdmFsaWRpdHkgY2hlY2sgaXMgcmVxdWlyZWQsIHVzZSAKKyAgICAqIDxjb2RlPjxhIGhyZWY9Ii4uL1VDaGFyYWN0ZXIuaHRtbCNpc0xlZ2FsKGNoYXIpIj5VQ2hhcmFjdGVyLmlzTGVnYWwoKQorICAgICogPC9hPjwvY29kZT4gb24gdGhlIHJldHVybiB2YWx1ZS4KKyAgICAqIElmIHRoZSBjaGFyIHJldHJpZXZlZCBpcyBwYXJ0IG9mIGEgc3Vycm9nYXRlIHBhaXIsIGl0cyBzdXBwbGVtZW50YXJ5CisgICAgKiBjaGFyYWN0ZXIgd2lsbCBiZSByZXR1cm5lZC4gSWYgYSBjb21wbGV0ZSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlciBpcyAKKyAgICAqIG5vdCBmb3VuZCB0aGUgaW5jb21wbGV0ZSBjaGFyYWN0ZXIgd2lsbCBiZSByZXR1cm5lZAorICAgICogQHBhcmFtIHNvdXJjZSBhcnJheSBvZiBVVEYtMTYgY2hhcnMKKyAgICAqIEBwYXJhbSBzdGFydCBvZmZzZXQgdG8gc3Vic3RyaW5nIGluIHRoZSBzb3VyY2UgYXJyYXkgZm9yIGFuYWx5emluZworICAgICogQHBhcmFtIGxpbWl0IG9mZnNldCB0byBzdWJzdHJpbmcgaW4gdGhlIHNvdXJjZSBhcnJheSBmb3IgYW5hbHl6aW5nCisgICAgKiBAcGFyYW0gb2Zmc2V0MTYgVVRGLTE2IG9mZnNldCByZWxhdGl2ZSB0byBzdGFydAorICAgICogQHJldHVybiBVVEYtMzIgdmFsdWUgZm9yIHRoZSBVVEYtMzIgdmFsdWUgdGhhdCBjb250YWlucyB0aGUgY2hhciBhdAorICAgICogICAgICAgICBvZmZzZXQxNi4gVGhlIGJvdW5kYXJpZXMgb2YgdGhhdCBjb2RlcG9pbnQgYXJlIHRoZSBzYW1lIGFzIGluCisgICAgKiAgICAgICAgIDxjb2RlPmJvdW5kczMyKCk8L2NvZGU+LgorICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIHRocm93biBpZiBvZmZzZXQxNiBpcyBub3Qgd2l0aGluIAorICAgICogICAgICAgICAgICB0aGUgcmFuZ2Ugb2Ygc3RhcnQgYW5kIGxpbWl0LgorICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgY2hhckF0KGNoYXIgc291cmNlW10sIGludCBzdGFydCwgaW50IGxpbWl0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldDE2KQorICAgIHsKKyAgICAgICAgb2Zmc2V0MTYgKz0gc3RhcnQ7CisgICAgICAgIGlmIChvZmZzZXQxNiA8IHN0YXJ0IHx8IG9mZnNldDE2ID49IGxpbWl0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKG9mZnNldDE2KTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGNoYXIgc2luZ2xlID0gc291cmNlW29mZnNldDE2XTsKKyAgICAgICAgaWYgKCFpc1N1cnJvZ2F0ZShzaW5nbGUpKSB7CisgICAgICAgICAgICByZXR1cm4gc2luZ2xlOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ29udmVydCB0aGUgVVRGLTE2IHN1cnJvZ2F0ZSBwYWlyIGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgLy8gRm9yIHNpbXBsaWNpdHkgaW4gdXNhZ2UsIGFuZCBiZWNhdXNlIHRoZSBmcmVxdWVuY3kgb2YgcGFpcnMgaXMgCisgICAgICAgIC8vIGxvdywgbG9vayBib3RoIGRpcmVjdGlvbnMuICAgICAgCisJICAgIGlmIChzaW5nbGUgPD0gTEVBRF9TVVJST0dBVEVfTUFYX1ZBTFVFKSB7CisJICAgICAgICBvZmZzZXQxNiArKzsKKwkgICAgICAgIGlmIChvZmZzZXQxNiA+PSBsaW1pdCkgeworCSAgICAgICAgICAgIHJldHVybiBzaW5nbGU7CisJICAgICAgICB9CisJICAgICAgICBjaGFyIHRyYWlsID0gc291cmNlW29mZnNldDE2XTsKKwkgICAgICAgIGlmIChpc1RyYWlsU3Vycm9nYXRlKHRyYWlsKSkgeworCSAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeShzaW5nbGUsIHRyYWlsKTsKKwkgICAgICAgIH0KKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7IC8vIGlzVHJhaWxTdXJyb2dhdGUoc2luZ2xlKSwgc28KKyAgICAgICAgICAgIGlmIChvZmZzZXQxNiA9PSBzdGFydCkgeworICAgICAgICAgICAgICAgIHJldHVybiBzaW5nbGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvZmZzZXQxNiAtLTsKKwkgICAgICAgIGNoYXIgbGVhZCA9IHNvdXJjZVtvZmZzZXQxNl07CisJICAgICAgICBpZiAoaXNMZWFkU3Vycm9nYXRlKGxlYWQpKQorCSAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeShsZWFkLCBzaW5nbGUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzaW5nbGU7IC8vIHJldHVybiB1bm1hdGNoZWQgc3Vycm9nYXRlCisgICAgfQorICAgICAgCisgICAgLyoqCisgICAgKiBFeHRyYWN0IGEgc2luZ2xlIFVURi0zMiB2YWx1ZSBmcm9tIGEgc3RyaW5nLgorICAgICogVXNlZCB3aGVuIGl0ZXJhdGluZyBmb3J3YXJkcyBvciBiYWNrd2FyZHMgKHdpdGgKKyAgICAqIDxjb2RlPlVURjE2LmdldENoYXJDb3VudCgpPC9jb2RlPiwgYXMgd2VsbCBhcyByYW5kb20gYWNjZXNzLiBJZiBhIAorICAgICogdmFsaWRpdHkgY2hlY2sgaXMgcmVxdWlyZWQsIHVzZSAKKyAgICAqIDxjb2RlPjxhIGhyZWY9Ii4uL1VDaGFyYWN0ZXIuaHRtbCNpc0xlZ2FsKGNoYXIpIj5VQ2hhcmFjdGVyLmlzTGVnYWwoKQorICAgICogPC9hPjwvY29kZT4gb24gdGhlIHJldHVybiB2YWx1ZS4KKyAgICAqIElmIHRoZSBjaGFyIHJldHJpZXZlZCBpcyBwYXJ0IG9mIGEgc3Vycm9nYXRlIHBhaXIsIGl0cyBzdXBwbGVtZW50YXJ5CisgICAgKiBjaGFyYWN0ZXIgd2lsbCBiZSByZXR1cm5lZC4gSWYgYSBjb21wbGV0ZSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlciBpcyAKKyAgICAqIG5vdCBmb3VuZCB0aGUgaW5jb21wbGV0ZSBjaGFyYWN0ZXIgd2lsbCBiZSByZXR1cm5lZAorICAgICogQHBhcmFtIHNvdXJjZSBVVEYtMTYgY2hhcnMgc3RyaW5nIGJ1ZmZlcgorICAgICogQHBhcmFtIG9mZnNldDE2IFVURi0xNiBvZmZzZXQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBjaGFyYWN0ZXIuCisgICAgKiBAcmV0dXJuIFVURi0zMiB2YWx1ZSBmb3IgdGhlIFVURi0zMiB2YWx1ZSB0aGF0IGNvbnRhaW5zIHRoZSBjaGFyIGF0CisgICAgKiAgICAgICAgIG9mZnNldDE2LiBUaGUgYm91bmRhcmllcyBvZiB0aGF0IGNvZGVwb2ludCBhcmUgdGhlIHNhbWUgYXMgaW4KKyAgICAqICAgICAgICAgPGNvZGU+Ym91bmRzMzIoKTwvY29kZT4uCisgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gdGhyb3duIGlmIG9mZnNldDE2IGlzIG91dCBvZiAKKyAgICAqICAgICAgICAgICAgYm91bmRzLgorICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgY2hhckF0KFJlcGxhY2VhYmxlIHNvdXJjZSwgaW50IG9mZnNldDE2KQorICAgIHsKKyAgICAgICAgaWYgKG9mZnNldDE2IDwgMCB8fCBvZmZzZXQxNiA+PSBzb3VyY2UubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKG9mZnNldDE2KTsKKyAgICAgICAgfQorICAgICAgICAgIAorICAgICAgICBjaGFyIHNpbmdsZSA9IHNvdXJjZS5jaGFyQXQob2Zmc2V0MTYpOworICAgICAgICBpZiAoIWlzU3Vycm9nYXRlKHNpbmdsZSkpIHsKKyAgICAgICAgICAgIHJldHVybiBzaW5nbGU7CisgICAgICAgIH0KKworICAgICAgICAvLyBDb252ZXJ0IHRoZSBVVEYtMTYgc3Vycm9nYXRlIHBhaXIgaWYgbmVjZXNzYXJ5LgorICAgICAgICAvLyBGb3Igc2ltcGxpY2l0eSBpbiB1c2FnZSwgYW5kIGJlY2F1c2UgdGhlIGZyZXF1ZW5jeSBvZiBwYWlycyBpcyAKKyAgICAgICAgLy8gbG93LCBsb29rIGJvdGggZGlyZWN0aW9ucy4KKyAgICAgICAgICAgICAgICAKKwkgICAgaWYgKHNpbmdsZSA8PSBMRUFEX1NVUlJPR0FURV9NQVhfVkFMVUUpIAorCSAgICB7CisJICAgICAgICArKyBvZmZzZXQxNjsKKwkgICAgICAgIGlmIChzb3VyY2UubGVuZ3RoKCkgIT0gb2Zmc2V0MTYpCisJICAgICAgICB7CisJICAgICAgICBjaGFyIHRyYWlsID0gc291cmNlLmNoYXJBdChvZmZzZXQxNik7CisJICAgICAgICBpZiAoaXNUcmFpbFN1cnJvZ2F0ZSh0cmFpbCkpCisJICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRSYXdTdXBwbGVtZW50YXJ5KHNpbmdsZSwgdHJhaWwpOworCSAgICAgICAgfQorCSAgICB9IAorCSAgICBlbHNlIAorCSAgICB7IAorCSAgICAgICAgLS0gb2Zmc2V0MTY7CisJICAgICAgICBpZiAob2Zmc2V0MTYgPj0gMCkKKwkgICAgICAgIHsKKwkgICAgICAgIC8vIHNpbmdsZSBpcyBhIHRyYWlsIHN1cnJvZ2F0ZSBzbworCSAgICAgICAgY2hhciBsZWFkID0gc291cmNlLmNoYXJBdChvZmZzZXQxNik7CisJICAgICAgICBpZiAoaXNMZWFkU3Vycm9nYXRlKGxlYWQpKSB7CisJICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRSYXdTdXBwbGVtZW50YXJ5KGxlYWQsIHNpbmdsZSk7CisJICAgICAgICB9CisJICAgICAgICB9CisJICAgIH0gCisJICAgIHJldHVybiBzaW5nbGU7IC8vIHJldHVybiB1bm1hdGNoZWQgc3Vycm9nYXRlCisgICAgfQorICAgICAgCisgICAgLyoqCisgICAgKiBFeHRyYWN0IGEgc2luZ2xlIFVURi0zMiB2YWx1ZSBmcm9tIGEgc3RyaW5nLgorICAgICogSWYgYSB2YWxpZGl0eSBjaGVjayBpcyByZXF1aXJlZCwgdXNlIAorICAgICogPGNvZGU+PGEgaHJlZj0iLi4vVUNoYXJhY3Rlci5odG1sI2lzTGVnYWwoY2hhcikiPgorICAgICogVUNoYXJhY3Rlci5pc0xlZ2FsKCk8L2E+PC9jb2RlPiBvbiB0aGUgcmV0dXJuIHZhbHVlLgorICAgICogSWYgdGJlIGNoYXIgcmV0cmlldmVkIGlzIHBhcnQgb2YgYSBzdXJyb2dhdGUgcGFpciwgaXRzIHN1cHBsZW1lbnRhcnkgCisgICAgKiBjaGFyYWN0ZXIgd2lsbCBiZSByZXR1cm5lZC4gSWYgYSBjb21wbGV0ZSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlciBpcyAKKyAgICAqIG5vdCBmb3VuZCB0aGUgaW5jb21wbGV0ZSBjaGFyYWN0ZXIgd2lsbCBiZSByZXR1cm5lZAorICAgICogQHJldHVybiBVVEYtMzIgdmFsdWUgZm9yIHRoZSBVVEYtMzIgdmFsdWUgdGhhdCBjb250YWlucyB0aGUgY2hhciBhdCAKKyAgICAqICAgICAgICAgb2Zmc2V0MTYuIFRoZSBib3VuZGFyaWVzIG9mIHRoYXQgY29kZXBvaW50IGFyZSB0aGUgc2FtZSBhcyBpbiAKKyAgICAqICAgICAgICAgPGNvZGU+Ym91bmRzMzIoKTwvY29kZT4uIAorICAgICogQHBhcmFtIHNvdXJjZSBhcnJheSBvZiBVVEYtMTYgY2hhcnMKKyAgICAqIEBwYXJhbSBvZmZzZXQzMiBVVEYtMzIgb2Zmc2V0IHRvIHRoZSBzdGFydCBvZiB0aGUgY2hhcmFjdGVyLgorICAgICogQHJldHVybiBhIHNpbmdsZSBVVEYzMiB2YWx1ZQorICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGlmIG9mZnNldDE2IGlzIG91dCBvZiBib3VuZHMuCisgICAgKiBAZGVwcmVjYXRlZCB0byBiZSByZW1vdmVkIGFmdGVyIHRoZSB5ZWFyIDIwMDIsIHJlcGxhY2VkIGJ5IAorICAgICogICAgICBVVEYxNi5jaGFyQXQoc291cmNlLCBVVEYxNi5maW5kT2Zmc2V0RnJvbUNvZGVQb2ludChzb3VyY2UsIAorICAgICogICAgICAgICAgICAgICAgICAgb2Zmc2V0MzIpKTsKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGNoYXJBdENvZGVQb2ludE9mZnNldChTdHJpbmcgc291cmNlLCBpbnQgb2Zmc2V0MzIpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIGNoYXJBdChzb3VyY2UsIGZpbmRPZmZzZXRGcm9tQ29kZVBvaW50KHNvdXJjZSwgb2Zmc2V0MzIpKTsKKyAgICB9CisgICAgICAKKyAgICAvKioKKyAgICAqIERldGVybWluZXMgaG93IG1hbnkgY2hhcnMgdGhpcyBjaGFyMzIgcmVxdWlyZXMuCisgICAgKiBJZiBhIHZhbGlkaXR5IGNoZWNrIGlzIHJlcXVpcmVkLCB1c2UgPGNvZGU+CisgICAgKiA8YSBocmVmPSIuLi9VQ2hhcmFjdGVyLmh0bWwjaXNMZWdhbChjaGFyKSI+aXNMZWdhbCgpPC9hPjwvY29kZT4gb24gCisgICAgKiBjaGFyMzIgYmVmb3JlIGNhbGxpbmcuCisgICAgKiBAcGFyYW0gY2ggdGhlIGlucHV0IGNvZGVwb2ludC4KKyAgICAqIEByZXR1cm4gMiBpZiBpcyBpbiBzdXBwbGVtZW50YXJ5IHNwYWNlLCBvdGhlcndpc2UgMS4gCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRDaGFyQ291bnQoaW50IGNoYXIzMikgCisgICAgeworICAgICAgICBpZiAoY2hhcjMyIDwgU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUpIHsKKyAgICAgICAgCXJldHVybiAxOworICAgICAgICB9CisgICAgICAgIHJldHVybiAyOworICAgIH0KKyAgICAgIAorICAgIC8qKgorICAgICogUmV0dXJucyB0aGUgdHlwZSBvZiB0aGUgYm91bmRhcmllcyBhcm91bmQgdGhlIGNoYXIgYXQgb2Zmc2V0MTYuCisgICAgKiBVc2VkIGZvciByYW5kb20gYWNjZXNzLgorICAgICogQHBhcmFtIHNvdXJjZSB0ZXh0IHRvIGFuYWx5c2UKKyAgICAqIEBwYXJhbSBvZmZzZXQxNiBVVEYtMTYgb2Zmc2V0CisgICAgKiBAcmV0dXJuIDx1bD4KKyAgICAqICAgICAgICAgICA8bGk+IFNJTkdMRV9DSEFSX0JPVU5EQVJZIDogYSBzaW5nbGUgY2hhcjsgdGhlIGJvdW5kcyBhcmUgCisgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvZmZzZXQxNiwgb2Zmc2V0MTYrMV0KKyAgICAqICAgICAgICAgICA8bGk+IExFQURfU1VSUk9HQVRFX0JPVU5EQVJZIDogYSBzdXJyb2dhdGUgcGFpciBzdGFydGluZyBhdCAKKyAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0MTY7IAorICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgYm91bmRzIGFyZSAKKyAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW29mZnNldDE2LCBvZmZzZXQxNiArIDJdCisgICAgKiAgICAgICAgICAgPGxpPiBUUkFJTF9TVVJST0dBVEVfQk9VTkRBUlkgOiBhIHN1cnJvZ2F0ZSBwYWlyIHN0YXJ0aW5nIGF0IAorICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0MTYgLSAxOyB0aGUgYm91bmRzIGFyZSAKKyAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvZmZzZXQxNiAtIDEsIG9mZnNldDE2ICsgMV0KKyAgICAqICAgICAgICAgPC91bD4KKyAgICAqICAgICAgICAgRm9yIGJpdC10d2lkZGxlcnMsIHRoZSByZXR1cm4gdmFsdWVzIGZvciB0aGVzZSBhcmUgY2hvc2VuIHNvIAorICAgICogICAgICAgICB0aGF0IHRoZSBib3VuZGFyaWVzIGNhbiBiZSBnb3R0ZW4gYnk6CisgICAgKiAgICAgICAgIFtvZmZzZXQxNiAtICh2YWx1ZSA+PiAyKSwgb2Zmc2V0MTYgKyAodmFsdWUgJiAzKV0uCisgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaWYgb2Zmc2V0MTYgaXMgb3V0IG9mIGJvdW5kcy4KKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGJvdW5kcyhTdHJpbmcgc291cmNlLCBpbnQgb2Zmc2V0MTYpIAorICAgIHsKKyAgICAgICAgY2hhciBjaCA9IHNvdXJjZS5jaGFyQXQob2Zmc2V0MTYpOworICAgICAgICBpZiAoaXNTdXJyb2dhdGUoY2gpKSB7CisgICAgICAgICAgICBpZiAoaXNMZWFkU3Vycm9nYXRlKGNoKSkgCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKCsrIG9mZnNldDE2IDwgc291cmNlLmxlbmd0aCgpICYmIAorICAgICAgICAgICAgICAgICAgICBpc1RyYWlsU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQob2Zmc2V0MTYpKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gTEVBRF9TVVJST0dBVEVfQk9VTkRBUlk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8vIGlzVHJhaWxTdXJyb2dhdGUoY2gpLCBzbworICAgICAgICAgICAgICAgIC0tIG9mZnNldDE2OworICAgICAgICAgICAgICAgIGlmIChvZmZzZXQxNiA+PSAwICYmIGlzTGVhZFN1cnJvZ2F0ZShzb3VyY2UuY2hhckF0KG9mZnNldDE2KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRSQUlMX1NVUlJPR0FURV9CT1VOREFSWTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIFNJTkdMRV9DSEFSX0JPVU5EQVJZOworICAgIH0KKyAgICAgIAorICAgIC8qKgorICAgICogUmV0dXJucyB0aGUgdHlwZSBvZiB0aGUgYm91bmRhcmllcyBhcm91bmQgdGhlIGNoYXIgYXQgb2Zmc2V0MTYuIFVzZWQgCisgICAgKiBmb3IgcmFuZG9tIGFjY2Vzcy4KKyAgICAqIEBwYXJhbSBzb3VyY2Ugc3RyaW5nIGJ1ZmZlciB0byBhbmFseXNlCisgICAgKiBAcGFyYW0gb2Zmc2V0MTYgVVRGMTYgb2Zmc2V0CisgICAgKiBAcmV0dXJuCisgICAgKiAgICAgPHVsPgorICAgICogICAgIDxsaT4gU0lOR0xFX0NIQVJfQk9VTkRBUlkgOiBhIHNpbmdsZSBjaGFyOyB0aGUgYm91bmRzIGFyZQorICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvZmZzZXQxNiwgb2Zmc2V0MTYgKyAxXQorICAgICogICAgIDxsaT4gTEVBRF9TVVJST0dBVEVfQk9VTkRBUlkgOiBhIHN1cnJvZ2F0ZSBwYWlyIHN0YXJ0aW5nIGF0IAorICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQxNjsgdGhlIGJvdW5kcyBhcmUgCisgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvZmZzZXQxNiwgb2Zmc2V0MTYgKyAyXQorICAgICogICAgIDxsaT4gVFJBSUxfU1VSUk9HQVRFX0JPVU5EQVJZIDogYSBzdXJyb2dhdGUgcGFpciBzdGFydGluZyBhdCAKKyAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldDE2IC0gMTsgdGhlIGJvdW5kcyBhcmUgCisgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb2Zmc2V0MTYgLSAxLCBvZmZzZXQxNiArIDFdCisgICAgKiAgICAgPC91bD4KKyAgICAqIEZvciBiaXQtdHdpZGRsZXJzLCB0aGUgcmV0dXJuIHZhbHVlcyBmb3IgdGhlc2UgYXJlIGNob3NlbiBzbyB0aGF0IHRoZSAKKyAgICAqIGJvdW5kYXJpZXMgY2FuIGJlIGdvdHRlbiBieTogCisgICAgKiAgICAgICAgICAgICAgICAgICAgW29mZnNldDE2IC0gKHZhbHVlID4+IDIpLCBvZmZzZXQxNiArICh2YWx1ZSAmIDMpXS4KKyAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiBvZmZzZXQxNiBpcyBvdXQgb2YgYm91bmRzLgorICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgYm91bmRzKFN0cmluZ0J1ZmZlciBzb3VyY2UsIGludCBvZmZzZXQxNikKKyAgICB7CisgICAgICAgIGNoYXIgY2ggPSBzb3VyY2UuY2hhckF0KG9mZnNldDE2KTsKKyAgICAgICAgaWYgKGlzU3Vycm9nYXRlKGNoKSkgeworICAgICAgICAgICAgaWYgKGlzTGVhZFN1cnJvZ2F0ZShjaCkpIAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmICgrKyBvZmZzZXQxNiA8IHNvdXJjZS5sZW5ndGgoKSAmJiAKKyAgICAgICAgICAgICAgICAgICAgaXNUcmFpbFN1cnJvZ2F0ZShzb3VyY2UuY2hhckF0KG9mZnNldDE2KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIExFQURfU1VSUk9HQVRFX0JPVU5EQVJZOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBpc1RyYWlsU3Vycm9nYXRlKGNoKSwgc28KKyAgICAgICAgICAgICAgICAtLSBvZmZzZXQxNjsKKyAgICAgICAgICAgICAgICBpZiAob2Zmc2V0MTYgPj0gMCAmJiAKKyAgICAgICAgICAgICAgICAgICAgaXNMZWFkU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQob2Zmc2V0MTYpKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gVFJBSUxfU1VSUk9HQVRFX0JPVU5EQVJZOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gU0lOR0xFX0NIQVJfQk9VTkRBUlk7CisgICAgfQorCisgICAgLyoqCisgICAgKiBSZXR1cm5zIHRoZSB0eXBlIG9mIHRoZSBib3VuZGFyaWVzIGFyb3VuZCB0aGUgY2hhciBhdCBvZmZzZXQxNi4gVXNlZCAKKyAgICAqIGZvciByYW5kb20gYWNjZXNzLiBOb3RlIHRoYXQgdGhlIGJvdW5kYXJpZXMgYXJlIGRldGVybWluZWQgd2l0aCByZXNwZWN0IAorICAgICogdG8gdGhlIHN1YmFycmF5LCBoZW5jZSB0aGUgY2hhciBhcnJheSB7MHhEODAwLCAweERDMDB9IGhhcyB0aGUgcmVzdWx0IAorICAgICogU0lOR0xFX0NIQVJfQk9VTkRBUlkgZm9yIHN0YXJ0ID0gb2Zmc2V0MTYgPSAwIGFuZCBsaW1pdCA9IDEuCisgICAgKiBAcGFyYW0gc291cmNlIGNoYXIgYXJyYXkgdG8gYW5hbHlzZQorICAgICogQHBhcmFtIHN0YXJ0IG9mZnNldCB0byBzdWJzdHJpbmcgaW4gdGhlIHNvdXJjZSBhcnJheSBmb3IgYW5hbHl6aW5nCisgICAgKiBAcGFyYW0gbGltaXQgb2Zmc2V0IHRvIHN1YnN0cmluZyBpbiB0aGUgc291cmNlIGFycmF5IGZvciBhbmFseXppbmcKKyAgICAqIEBwYXJhbSBvZmZzZXQxNiBVVEYxNiBvZmZzZXQgcmVsYXRpdmUgdG8gc3RhcnQKKyAgICAqIEByZXR1cm4KKyAgICAqICAgICA8dWw+CisgICAgKiAgICAgICAgIDxsaT4gU0lOR0xFX0NIQVJfQk9VTkRBUlkgOiBhIHNpbmdsZSBjaGFyOyB0aGUgYm91bmRzIGFyZQorICAgICogICAgICAgICA8bGk+IExFQURfU1VSUk9HQVRFX0JPVU5EQVJZIDogYSBzdXJyb2dhdGUgcGFpciBzdGFydGluZyBhdAorICAgICogICAgICAgICAgICAgICAgICAgICAgIG9mZnNldDE2OyB0aGUgYm91bmRzIGFyZSBbb2Zmc2V0MTYsIG9mZnNldDE2ICsgMl0KKyAgICAqICAgICAgICAgPGxpPiBUUkFJTF9TVVJST0dBVEVfQk9VTkRBUlkgOiBhIHN1cnJvZ2F0ZSBwYWlyIHN0YXJ0aW5nIGF0CisgICAgKiAgICAgICAgICAgICAgIG9mZnNldDE2IC0gMTsgdGhlIGJvdW5kcyBhcmUgW29mZnNldDE2IC0gMSwgb2Zmc2V0MTYgKyAxXQorICAgICogICAgIDwvdWw+CisgICAgKiBGb3IgYml0LXR3aWRkbGVycywgdGhlIGJvdW5kYXJ5IHZhbHVlcyBmb3IgdGhlc2UgYXJlIGNob3NlbiBzbyB0aGF0IHRoZSAKKyAgICAqIGJvdW5kYXJpZXMgY2FuIGJlIGdvdHRlbiBieTogW29mZnNldDE2IC0gKGJvdW5kdmFsdWUgPj4gMiksIG9mZnNldDE2IAorICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAoYm91bmR2YWx1ZSAmIDMpXS4KKyAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiBvZmZzZXQxNiBpcyBub3Qgd2l0aGluIHRoZSAKKyAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5nZSBvZiBzdGFydCBhbmQgbGltaXQuCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBib3VuZHMoY2hhciBzb3VyY2VbXSwgaW50IHN0YXJ0LCBpbnQgbGltaXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0MTYpCisgICAgeworICAgICAgICBvZmZzZXQxNiArPSBzdGFydDsKKyAgICAgICAgaWYgKG9mZnNldDE2IDwgc3RhcnQgfHwgb2Zmc2V0MTYgPj0gbGltaXQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24ob2Zmc2V0MTYpOworICAgICAgICB9CisgICAgICAgIGNoYXIgY2ggPSBzb3VyY2Vbb2Zmc2V0MTZdOworICAgICAgICBpZiAoaXNTdXJyb2dhdGUoY2gpKSB7CisgICAgICAgICAgICBpZiAoaXNMZWFkU3Vycm9nYXRlKGNoKSkgeworICAgICAgICAgICAgICAgICsrIG9mZnNldDE2OworICAgICAgICAgICAgICAgIGlmIChvZmZzZXQxNiA8IGxpbWl0ICYmIGlzVHJhaWxTdXJyb2dhdGUoc291cmNlW29mZnNldDE2XSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIExFQURfU1VSUk9HQVRFX0JPVU5EQVJZOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsgLy8gaXNUcmFpbFN1cnJvZ2F0ZShjaCksIHNvCisgICAgICAgICAgICAgICAgLS0gb2Zmc2V0MTY7CisgICAgICAgICAgICAgICAgaWYgKG9mZnNldDE2ID49IHN0YXJ0ICYmIGlzTGVhZFN1cnJvZ2F0ZShzb3VyY2Vbb2Zmc2V0MTZdKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gVFJBSUxfU1VSUk9HQVRFX0JPVU5EQVJZOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gU0lOR0xFX0NIQVJfQk9VTkRBUlk7ICAgIAorICAgIH0KKworICAgIC8qKgorICAgICogUmV0dXJucyB0aGUgdHlwZSBvZiB0aGUgYm91bmRhcmllcyBhcm91bmQgdGhlIGNoYXIgYXQgb2Zmc2V0MzIuIFVzZWQgCisgICAgKiBmb3IgcmFuZG9tIGFjY2Vzcy4KKyAgICAqIEBwYXJhbSBzb3VyY2Ugc3RyaW5nIHRvIGFuYWx5c2UKKyAgICAqIEBwYXJhbSBvZmZzZXQzMiBVVEYzMiBvZmZzZXQKKyAgICAqIEByZXR1cm4KKyAgICAqICAgICA8dWw+CisgICAgKiAgICAgICAgIDxsaT4gU0lOR0xFX0NIQVJfQk9VTkRBUlkgOiBhIHNpbmdsZSBjaGFyCisgICAgKiAgICAgICAgIDxsaT4gTEVBRF9TVVJST0dBVEVfQk9VTkRBUlkgOiBhIHN1cnJvZ2F0ZSBwYWlyIHN0YXJ0aW5nIGF0CisgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQzMgorICAgICogICAgIDwvdWw+CisgICAgKiBGb3IgYml0LXR3aWRkbGVycywgc2VlIDxhIGhyZWY9I2JvdW5kcyhqYXZhLmxhbmcuU3RyaW5nLCBpbnQpPgorICAgICogYm91bmRzKGphdmEubGFuZy5TdHJpbmcsIGludCk8L2E+IGZvciBpbmZvcm1hdGlvbiBvbiB0aGUgY2hvaWNlIG9mIHRoZSAKKyAgICAqIGJvdW5kYXJ5IHZhbHVlcy4KKyAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiBvZmZzZXQxNiBpcyBvdXQgb2YgYm91bmRzLgorICAgICogQGRlcHJlY2F0ZWQgd2lsbCBiZSByZW1vdmVkIGFmdGVyIGVuZCBvZiB5ZWFyIDIwMDIsIHJlcGxhY2VkIGJ5CisgICAgKiAgVVRGMTYuYm91bmRzKHNvdXJjZSwgVVRGMTYuZmluZE9mZnNldEZyb21Db2RlUG9pbnQoc291cmNlLCBvZmZzZXQzMikpOworICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgYm91bmRzQXRDb2RlUG9pbnRPZmZzZXQoU3RyaW5nIHNvdXJjZSwgaW50IG9mZnNldDMyKSAKKyAgICB7CisgICAgICAgIHJldHVybiBib3VuZHMoc291cmNlLCBmaW5kT2Zmc2V0RnJvbUNvZGVQb2ludChzb3VyY2UsIG9mZnNldDMyKSk7CisgICAgfQorCisgICAgLyoqCisgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIDxiPmNvZGUgdmFsdWUgaXMgYSBzdXJyb2dhdGUuCisgICAgKiBAcGFyYW0gY2ggdGhlIGlucHV0IGNoYXJhY3Rlci4KKyAgICAqIEByZXR1cm4gdHJ1ZSBpZmYgdGhlIGlucHV0IGNoYXJhY3RlciBpcyBhIHN1cnJvZ2F0ZS4KKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1N1cnJvZ2F0ZShjaGFyIGNoYXIxNikgCisgICAgeworICAgICAgICByZXR1cm4gTEVBRF9TVVJST0dBVEVfTUlOX1ZBTFVFIDw9IGNoYXIxNiAmJiAKKyAgICAgICAgICAgIGNoYXIxNiA8PSBUUkFJTF9TVVJST0dBVEVfTUFYX1ZBTFVFOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBhIHRyYWlsIHN1cnJvZ2F0ZS4KKyAgICAqIEBwYXJhbSBjaGFyMTYgdGhlIGlucHV0IGNoYXJhY3Rlci4KKyAgICAqIEByZXR1cm4gdHJ1ZSBpZmYgdGhlIGlucHV0IGNoYXJhY3RlciBpcyBhIHRyYWlsIHN1cnJvZ2F0ZS4KKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1RyYWlsU3Vycm9nYXRlKGNoYXIgY2hhcjE2KSAKKyAgICB7CisgICAgICAgIHJldHVybiAoVFJBSUxfU1VSUk9HQVRFX01JTl9WQUxVRSA8PSBjaGFyMTYgJiYgCisgICAgICAgICAgICAgICAgY2hhcjE2IDw9IFRSQUlMX1NVUlJPR0FURV9NQVhfVkFMVUUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBhIGxlYWQgc3Vycm9nYXRlLgorICAgICogQHBhcmFtIGNoYXIxNiB0aGUgaW5wdXQgY2hhcmFjdGVyLgorICAgICogQHJldHVybiB0cnVlIGlmZiB0aGUgaW5wdXQgY2hhcmFjdGVyIGlzIGEgbGVhZCBzdXJyb2dhdGUKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0xlYWRTdXJyb2dhdGUoY2hhciBjaGFyMTYpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIExFQURfU1VSUk9HQVRFX01JTl9WQUxVRSA8PSBjaGFyMTYgJiYgCisgICAgICAgICAgICBjaGFyMTYgPD0gTEVBRF9TVVJST0dBVEVfTUFYX1ZBTFVFOworICAgIH0KKyAgICAgICAgICAgIAorICAgIC8qKgorICAgICogUmV0dXJucyB0aGUgbGVhZCBzdXJyb2dhdGUuCisgICAgKiBJZiBhIHZhbGlkaXR5IGNoZWNrIGlzIHJlcXVpcmVkLCB1c2UgCisgICAgKiA8Y29kZT48YSBocmVmPSIuLi9VQ2hhcmFjdGVyLmh0bWwjaXNMZWdhbChjaGFyKSI+aXNMZWdhbCgpPC9hPjwvY29kZT4gCisgICAgKiBvbiBjaGFyMzIgYmVmb3JlIGNhbGxpbmcuCisgICAgKiBAcGFyYW0gY2hhcjMyIHRoZSBpbnB1dCBjaGFyYWN0ZXIuCisgICAgKiBAcmV0dXJuIGxlYWQgc3Vycm9nYXRlIGlmIHRoZSBnZXRDaGFyQ291bnQoY2gpIGlzIDI7IDxicj4KKyAgICAqICAgICAgICAgYW5kIDAgb3RoZXJ3aXNlIChub3RlOiAwIGlzIG5vdCBhIHZhbGlkIGxlYWQgc3Vycm9nYXRlKS4KKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgY2hhciBnZXRMZWFkU3Vycm9nYXRlKGludCBjaGFyMzIpIAorICAgIHsKKyAgICAgICAgaWYgKGNoYXIzMiA+PSBTVVBQTEVNRU5UQVJZX01JTl9WQUxVRSkgeworICAgICAgICAJcmV0dXJuIChjaGFyKShMRUFEX1NVUlJPR0FURV9PRkZTRVRfICsgCisgICAgICAgICAgICAgICAgICAgICAgKGNoYXIzMiA+PiBMRUFEX1NVUlJPR0FURV9TSElGVF8pKTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgKiBSZXR1cm5zIHRoZSB0cmFpbCBzdXJyb2dhdGUuCisgICAgKiBJZiBhIHZhbGlkaXR5IGNoZWNrIGlzIHJlcXVpcmVkLCB1c2UgCisgICAgKiA8Y29kZT48YSBocmVmPSIuLi9VQ2hhcmFjdGVyLmh0bWwjaXNMZWdhbChjaGFyKSI+aXNMZWdhbCgpPC9hPjwvY29kZT4gCisgICAgKiBvbiBjaGFyMzIgYmVmb3JlIGNhbGxpbmcuCisgICAgKiBAcGFyYW0gY2hhcjMyIHRoZSBpbnB1dCBjaGFyYWN0ZXIuCisgICAgKiBAcmV0dXJuIHRoZSB0cmFpbCBzdXJyb2dhdGUgaWYgdGhlIGdldENoYXJDb3VudChjaCkgaXMgMjsgPGJyPm90aGVyd2lzZSAKKyAgICAqICAgICAgICAgdGhlIGNoYXJhY3RlciBpdHNlbGYKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgY2hhciBnZXRUcmFpbFN1cnJvZ2F0ZShpbnQgY2hhcjMyKSAKKyAgICB7CisgICAgICAgIGlmIChjaGFyMzIgPj0gU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUpIHsKKyAgICAgICAgCXJldHVybiAoY2hhcikoVFJBSUxfU1VSUk9HQVRFX01JTl9WQUxVRSArIAorICAgICAgICAgICAgICAgICAgICAgIChjaGFyMzIgJiBUUkFJTF9TVVJST0dBVEVfTUFTS18pKTsgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgICAKKyAgICAgICAgcmV0dXJuIChjaGFyKWNoYXIzMjsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICogQ29udmVuaWVuY2UgbWV0aG9kIGNvcnJlc3BvbmRpbmcgdG8gU3RyaW5nLnZhbHVlT2YoY2hhcikuIFJldHVybnMgYSBvbmUgCisgICAgKiBvciB0d28gY2hhciBzdHJpbmcgY29udGFpbmluZyB0aGUgVVRGLTMyIHZhbHVlIGluIFVURjE2IGZvcm1hdC4gSWYgYSAKKyAgICAqIHZhbGlkaXR5IGNoZWNrIGlzIHJlcXVpcmVkLCB1c2UgCisgICAgKiA8YSBocmVmPSIuLi9VQ2hhcmFjdGVyLmh0bWwjaXNMZWdhbChjaGFyKSI+aXNMZWdhbCgpPC9hPjwvY29kZT4gb24gCisgICAgKiBjaGFyMzIgYmVmb3JlIGNhbGxpbmcuCisgICAgKiBAcGFyYW0gY2hhcjMyIHRoZSBpbnB1dCBjaGFyYWN0ZXIuCisgICAgKiBAcmV0dXJuIHN0cmluZyB2YWx1ZSBvZiBjaGFyMzIgaW4gVVRGMTYgZm9ybWF0CisgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB0aHJvd24gaWYgY2hhcjMyIGlzIGEgaW52YWxpZCAKKyAgICAqICAgICAgICAgICAgY29kZXBvaW50LgorICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgdmFsdWVPZihpbnQgY2hhcjMyKQorICAgIHsKKyAgICAgICAgaWYgKGNoYXIzMiA8IENPREVQT0lOVF9NSU5fVkFMVUUgfHwgY2hhcjMyID4gQ09ERVBPSU5UX01BWF9WQUxVRSkgeworICAgICAgICAJdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBjb2RlcG9pbnQiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdG9TdHJpbmcoY2hhcjMyKTsKKyAgICB9CisgICAgICAKKyAgICAvKioKKyAgICAqIENvbnZlbmllbmNlIG1ldGhvZCBjb3JyZXNwb25kaW5nIHRvIFN0cmluZy52YWx1ZU9mKGNvZGVwb2ludCBhdCAKKyAgICAqIG9mZnNldDE2KS4gCisgICAgKiBSZXR1cm5zIGEgb25lIG9yIHR3byBjaGFyIHN0cmluZyBjb250YWluaW5nIHRoZSBVVEYtMzIgdmFsdWUgaW4gVVRGMTYgCisgICAgKiBmb3JtYXQuIElmIG9mZnNldDE2IGluZGV4ZXMgYSBzdXJyb2dhdGUgY2hhcmFjdGVyLCB0aGUgd2hvbGUgCisgICAgKiBzdXBwbGVtZW50YXJ5IGNvZGVwb2ludCB3aWxsIGJlIHJldHVybmVkLgorICAgICogSWYgYSB2YWxpZGl0eSBjaGVjayBpcyByZXF1aXJlZCwgdXNlIAorICAgICogPGEgaHJlZj0iLi4vVUNoYXJhY3Rlci5odG1sI2lzTGVnYWwoY2hhcikiPmlzTGVnYWwoKTwvYT48L2NvZGU+IG9uIHRoZSAKKyAgICAqIGNvZGVwb2ludCBhdCBvZmZzZXQxNiBiZWZvcmUgY2FsbGluZy4KKyAgICAqIFRoZSByZXN1bHQgcmV0dXJuZWQgd2lsbCBiZSBhIG5ld2x5IGNyZWF0ZWQgU3RyaW5nIG9idGFpbmVkIGJ5IGNhbGxpbmcgCisgICAgKiBzb3VyY2Uuc3Vic3RyaW5nKC4uKSB3aXRoIHRoZSBhcHByb3ByaWF0ZSBpbmRleGVzLgorICAgICogQHBhcmFtIHNvdXJjZSB0aGUgaW5wdXQgc3RyaW5nLgorICAgICogQHBhcmFtIG9mZnNldDE2IHRoZSBVVEYxNiBpbmRleCB0byB0aGUgY29kZXBvaW50IGluIHNvdXJjZQorICAgICogQHJldHVybiBzdHJpbmcgdmFsdWUgb2YgY2hhcjMyIGluIFVURjE2IGZvcm1hdAorICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgdmFsdWVPZihTdHJpbmcgc291cmNlLCBpbnQgb2Zmc2V0MTYpCisgICAgeworICAgICAgICBzd2l0Y2ggKGJvdW5kcyhzb3VyY2UsIG9mZnNldDE2KSkgeworICAgICAgICAgICAgY2FzZSBMRUFEX1NVUlJPR0FURV9CT1VOREFSWTogCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc291cmNlLnN1YnN0cmluZyhvZmZzZXQxNiwgb2Zmc2V0MTYgKyAyKTsKKyAgICAgICAgICAgIGNhc2UgVFJBSUxfU1VSUk9HQVRFX0JPVU5EQVJZOiAKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzb3VyY2Uuc3Vic3RyaW5nKG9mZnNldDE2IC0gMSwgb2Zmc2V0MTYgKyAxKTsKKyAgICAgICAgICAgIGRlZmF1bHQ6IHJldHVybiBzb3VyY2Uuc3Vic3RyaW5nKG9mZnNldDE2LCBvZmZzZXQxNiArIDEpOworICAgICAgICB9CisgICAgfQorICAgICAgCisgICAgLyoqCisgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgY29ycmVzcG9uZGluZyB0byAKKyAgICAqIFN0cmluZ0J1ZmZlci52YWx1ZU9mKGNvZGVwb2ludCBhdCBvZmZzZXQxNikuIAorICAgICogUmV0dXJucyBhIG9uZSBvciB0d28gY2hhciBzdHJpbmcgY29udGFpbmluZyB0aGUgVVRGLTMyIHZhbHVlIGluIFVURjE2IAorICAgICogZm9ybWF0LiBJZiBvZmZzZXQxNiBpbmRleGVzIGEgc3Vycm9nYXRlIGNoYXJhY3RlciwgdGhlIHdob2xlIAorICAgICogc3VwcGxlbWVudGFyeSBjb2RlcG9pbnQgd2lsbCBiZSByZXR1cm5lZC4KKyAgICAqIElmIGEgdmFsaWRpdHkgY2hlY2sgaXMgcmVxdWlyZWQsIHVzZSAKKyAgICAqIDxhIGhyZWY9Ii4uL1VDaGFyYWN0ZXIuaHRtbCNpc0xlZ2FsKGNoYXIpIj5pc0xlZ2FsKCk8L2E+PC9jb2RlPiBvbiB0aGUgCisgICAgKiBjb2RlcG9pbnQgYXQgb2Zmc2V0MTYgYmVmb3JlIGNhbGxpbmcuCisgICAgKiBUaGUgcmVzdWx0IHJldHVybmVkIHdpbGwgYmUgYSBuZXdseSBjcmVhdGVkIFN0cmluZyBvYnRhaW5lZCBieSBjYWxsaW5nIAorICAgICogc291cmNlLnN1YnN0cmluZyguLikgd2l0aCB0aGUgYXBwcm9wcmlhdGUgaW5kZXhlcy4KKyAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIGlucHV0IHN0cmluZyBidWZmZXIuCisgICAgKiBAcGFyYW0gb2Zmc2V0MTYgdGhlIFVURjE2IGluZGV4IHRvIHRoZSBjb2RlcG9pbnQgaW4gc291cmNlCisgICAgKiBAcmV0dXJuIHN0cmluZyB2YWx1ZSBvZiBjaGFyMzIgaW4gVVRGMTYgZm9ybWF0CisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB2YWx1ZU9mKFN0cmluZ0J1ZmZlciBzb3VyY2UsIGludCBvZmZzZXQxNikKKyAgICB7CisgICAgICAgIHN3aXRjaCAoYm91bmRzKHNvdXJjZSwgb2Zmc2V0MTYpKSB7CisgICAgICAgICAgICBjYXNlIExFQURfU1VSUk9HQVRFX0JPVU5EQVJZOiAKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc291cmNlLnN1YnN0cmluZyhvZmZzZXQxNiwgb2Zmc2V0MTYgKyAyKTsKKyAgICAgICAgICAgIGNhc2UgVFJBSUxfU1VSUk9HQVRFX0JPVU5EQVJZOiAKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc291cmNlLnN1YnN0cmluZyhvZmZzZXQxNiAtIDEsIG9mZnNldDE2ICsgMSk7CisgICAgICAgICAgICBkZWZhdWx0OiByZXR1cm4gc291cmNlLnN1YnN0cmluZyhvZmZzZXQxNiwgb2Zmc2V0MTYgKyAxKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgIAorICAgIC8qKgorICAgICogQ29udmVuaWVuY2UgbWV0aG9kLiAKKyAgICAqIFJldHVybnMgYSBvbmUgb3IgdHdvIGNoYXIgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIFVURi0zMiB2YWx1ZSBpbiBVVEYxNiAKKyAgICAqIGZvcm1hdC4gSWYgb2Zmc2V0MTYgaW5kZXhlcyBhIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIsIHRoZSB3aG9sZSAKKyAgICAqIHN1cHBsZW1lbnRhcnkgY29kZXBvaW50IHdpbGwgYmUgcmV0dXJuZWQsIGV4Y2VwdCB3aGVuIGVpdGhlciB0aGUgCisgICAgKiBsZWFkaW5nIG9yIHRyYWlsaW5nIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIgbGllcyBvdXQgb2YgdGhlIHNwZWNpZmllZCAKKyAgICAqIHN1YmFycmF5LiBJbiB0aGUgbGF0dGVyIGNhc2UsIG9ubHkgdGhlIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIgd2l0aGluIAorICAgICogYm91bmRzIHdpbGwgYmUgcmV0dXJuZWQuCisgICAgKiBJZiBhIHZhbGlkaXR5IGNoZWNrIGlzIHJlcXVpcmVkLCB1c2UgCisgICAgKiA8YSBocmVmPSIuLi9VQ2hhcmFjdGVyLmh0bWwjaXNMZWdhbChjaGFyKSI+aXNMZWdhbCgpPC9hPjwvY29kZT4gb24gdGhlIAorICAgICogY29kZXBvaW50IGF0IG9mZnNldDE2IGJlZm9yZSBjYWxsaW5nLgorICAgICogVGhlIHJlc3VsdCByZXR1cm5lZCB3aWxsIGJlIGEgbmV3bHkgY3JlYXRlZCBTdHJpbmcgY29udGFpbmluZyB0aGUgCisgICAgKiByZWxldmFudCBjaGFyYWN0ZXJzLgorICAgICogQHBhcmFtIHNvdXJjZSB0aGUgaW5wdXQgY2hhciBhcnJheS4KKyAgICAqIEBwYXJhbSBzdGFydCBzdGFydCBpbmRleCBvZiB0aGUgc3ViYXJyYXkKKyAgICAqIEBwYXJhbSBsaW1pdCBlbmQgaW5kZXggb2YgdGhlIHN1YmFycmF5CisgICAgKiBAcGFyYW0gb2Zmc2V0MTYgdGhlIFVURjE2IGluZGV4IHRvIHRoZSBjb2RlcG9pbnQgaW4gc291cmNlIHJlbGF0aXZlIHRvIAorICAgICogICAgICAgIHN0YXJ0CisgICAgKiBAcmV0dXJuIHN0cmluZyB2YWx1ZSBvZiBjaGFyMzIgaW4gVVRGMTYgZm9ybWF0CisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB2YWx1ZU9mKGNoYXIgc291cmNlW10sIGludCBzdGFydCwgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldDE2KQorICAgIHsKKyAgICAgICAgc3dpdGNoIChib3VuZHMoc291cmNlLCBzdGFydCwgbGltaXQsIG9mZnNldDE2KSkgeworICAgICAgICAgICAgY2FzZSBMRUFEX1NVUlJPR0FURV9CT1VOREFSWTogCisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoc291cmNlLCBzdGFydCArIG9mZnNldDE2LCAyKTsKKyAgICAgICAgICAgIGNhc2UgVFJBSUxfU1VSUk9HQVRFX0JPVU5EQVJZOiAKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhzb3VyY2UsIHN0YXJ0ICsgb2Zmc2V0MTYgLSAxLCAyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhzb3VyY2UsIHN0YXJ0ICsgb2Zmc2V0MTYsIDEpOworICAgIH0KKyAgICAgIAorICAgIC8qKgorICAgICogUmV0dXJucyB0aGUgVVRGLTE2IG9mZnNldCB0aGF0IGNvcnJlc3BvbmRzIHRvIGEgVVRGLTMyIG9mZnNldC4gCisgICAgKiBVc2VkIGZvciByYW5kb20gYWNjZXNzLiBTZWUgdGhlIDxhIG5hbWU9Il90b3BfIj5jbGFzcyBkZXNjcmlwdGlvbjwvYT4gCisgICAgKiBmb3Igbm90ZXMgb24gcm91bmR0cmlwcGluZy4KKyAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIFVURi0xNiBzdHJpbmcKKyAgICAqIEBwYXJhbSBvZmZzZXQzMiBVVEYtMzIgb2Zmc2V0CisgICAgKiBAcmV0dXJuIFVURi0xNiBvZmZzZXQgCisgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaWYgb2Zmc2V0MzIgaXMgb3V0IG9mIGJvdW5kcy4KKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGZpbmRPZmZzZXRGcm9tQ29kZVBvaW50KFN0cmluZyBzb3VyY2UsIGludCBvZmZzZXQzMikgCisgICAgeworICAgICAgICBjaGFyIGNoOworICAgICAgICBpbnQgc2l6ZSA9IHNvdXJjZS5sZW5ndGgoKSwKKyAgICAgICAgICAgIHJlc3VsdCA9IDAsCisgICAgICAgICAgICBjb3VudCA9IG9mZnNldDMyOworICAgICAgICBpZiAob2Zmc2V0MzIgPCAwIHx8IG9mZnNldDMyID4gc2l6ZSkgeworICAgICAgICB0aHJvdyBuZXcgU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihvZmZzZXQzMik7CisgICAgICAgIH0KKyAgICAgICAgd2hpbGUgKHJlc3VsdCA8IHNpemUgJiYgY291bnQgPiAwKQorICAgICAgICB7CisgICAgICAgIGNoID0gc291cmNlLmNoYXJBdChyZXN1bHQpOworICAgICAgICBpZiAoaXNMZWFkU3Vycm9nYXRlKGNoKSAmJiAoKHJlc3VsdCArIDEpIDwgc2l6ZSkgJiYgCisgICAgICAgICAgICBpc1RyYWlsU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0ICsgMSkpKSB7CisgICAgICAgICAgICByZXN1bHQgKys7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgcmVzdWx0ICsrOworICAgICAgICB9CisgICAgICAgIGlmIChjb3VudCAhPSAwKSB7CisgICAgICAgIHRocm93IG5ldyBTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKG9mZnNldDMyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAgIAorICAgIC8qKgorICAgICogUmV0dXJucyB0aGUgVVRGLTE2IG9mZnNldCB0aGF0IGNvcnJlc3BvbmRzIHRvIGEgVVRGLTMyIG9mZnNldC4KKyAgICAqIFVzZWQgZm9yIHJhbmRvbSBhY2Nlc3MuIFNlZSB0aGUgPGEgbmFtZT0iX3RvcF8iPmNsYXNzIGRlc2NyaXB0aW9uPC9hPgorICAgICogZm9yIG5vdGVzIG9uIHJvdW5kdHJpcHBpbmcuCisgICAgKiBAcGFyYW0gc291cmNlIHRoZSBVVEYtMTYgc3RyaW5nIGJ1ZmZlcgorICAgICogQHBhcmFtIG9mZnNldDMyIFVURi0zMiBvZmZzZXQKKyAgICAqIEByZXR1cm4gVVRGLTE2IG9mZnNldAorICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGlmIG9mZnNldDMyIGlzIG91dCBvZiBib3VuZHMuCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBmaW5kT2Zmc2V0RnJvbUNvZGVQb2ludChTdHJpbmdCdWZmZXIgc291cmNlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0MzIpCisgICAgeworICAgICAgICBjaGFyIGNoOworICAgICAgICBpbnQgc2l6ZSA9IHNvdXJjZS5sZW5ndGgoKSwKKyAgICAgICAgICAgIHJlc3VsdCA9IDAsCisgICAgICAgICAgICBjb3VudCA9IG9mZnNldDMyOworICAgICAgICBpZiAob2Zmc2V0MzIgPCAwIHx8IG9mZnNldDMyID4gc2l6ZSkgeworICAgICAgICB0aHJvdyBuZXcgU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihvZmZzZXQzMik7CisgICAgICAgIH0KKyAgICAgICAgd2hpbGUgKHJlc3VsdCA8IHNpemUgJiYgY291bnQgPiAwKQorICAgICAgICB7CisgICAgICAgIGNoID0gc291cmNlLmNoYXJBdChyZXN1bHQpOworICAgICAgICBpZiAoaXNMZWFkU3Vycm9nYXRlKGNoKSAmJiAoKHJlc3VsdCArIDEpIDwgc2l6ZSkgJiYgCisgICAgICAgICAgICBpc1RyYWlsU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0ICsgMSkpKSB7CisgICAgICAgICAgICByZXN1bHQgKys7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgcmVzdWx0ICsrOworICAgICAgICB9CisgICAgICAgIGlmIChjb3VudCAhPSAwKSB7CisgICAgICAgIHRocm93IG5ldyBTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKG9mZnNldDMyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICogUmV0dXJucyB0aGUgVVRGLTE2IG9mZnNldCB0aGF0IGNvcnJlc3BvbmRzIHRvIGEgVVRGLTMyIG9mZnNldC4KKyAgICAqIFVzZWQgZm9yIHJhbmRvbSBhY2Nlc3MuIFNlZSB0aGUgPGEgbmFtZT0iX3RvcF8iPmNsYXNzIGRlc2NyaXB0aW9uPC9hPgorICAgICogZm9yIG5vdGVzIG9uIHJvdW5kdHJpcHBpbmcuCisgICAgKiBAcGFyYW0gc291cmNlIHRoZSBVVEYtMTYgY2hhciBhcnJheSB3aG9zZSBzdWJzdHJpbmcgaXMgdG8gYmUgYW5hbHlzZWQKKyAgICAqIEBwYXJhbSBzdGFydCBvZmZzZXQgb2YgdGhlIHN1YnN0cmluZyB0byBiZSBhbmFseXNlZAorICAgICogQHBhcmFtIGxpbWl0IG9mZnNldCBvZiB0aGUgc3Vic3RyaW5nIHRvIGJlIGFuYWx5c2VkCisgICAgKiBAcGFyYW0gb2Zmc2V0MzIgVVRGLTMyIG9mZnNldCByZWxhdGl2ZSB0byBzdGFydAorICAgICogQHJldHVybiBVVEYtMTYgb2Zmc2V0IHJlbGF0aXZlIHRvIHN0YXJ0CisgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaWYgb2Zmc2V0MzIgaXMgb3V0IG9mIGJvdW5kcy4KKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGZpbmRPZmZzZXRGcm9tQ29kZVBvaW50KGNoYXIgc291cmNlW10sIGludCBzdGFydCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LCBpbnQgb2Zmc2V0MzIpCisgICAgeworICAgICAgICBjaGFyIGNoOworICAgICAgICBpbnQgcmVzdWx0ID0gc3RhcnQsCisgICAgICAgICAgICBjb3VudCA9IG9mZnNldDMyOworICAgICAgICBpZiAob2Zmc2V0MzIgPiBsaW1pdCAtIHN0YXJ0KSB7CisgICAgICAgIHRocm93IG5ldyBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24ob2Zmc2V0MzIpOworICAgICAgICB9CisgICAgICAgIHdoaWxlIChyZXN1bHQgPCBsaW1pdCAmJiBjb3VudCA+IDApCisgICAgICAgIHsKKyAgICAgICAgY2ggPSBzb3VyY2VbcmVzdWx0XTsKKyAgICAgICAgaWYgKGlzTGVhZFN1cnJvZ2F0ZShjaCkgJiYgKChyZXN1bHQgKyAxKSA8IGxpbWl0KSAmJiAKKyAgICAgICAgICAgIGlzVHJhaWxTdXJyb2dhdGUoc291cmNlW3Jlc3VsdCArIDFdKSkgeworICAgICAgICAgICAgcmVzdWx0ICsrOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgY291bnQgLS07CisgICAgICAgIHJlc3VsdCArKzsKKyAgICAgICAgfQorICAgICAgICBpZiAoY291bnQgIT0gMCkgeworICAgICAgICB0aHJvdyBuZXcgQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKG9mZnNldDMyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0IC0gc3RhcnQ7CisgICAgfQorICAgICAgCisgICAgLyoqCisgICAgKiBSZXR1cm5zIHRoZSBVVEYtMzIgb2Zmc2V0IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGZpcnN0IFVURi0zMiBib3VuZGFyeSBhdCAKKyAgICAqIG9yIGFmdGVyIHRoZSBnaXZlbiBVVEYtMTYgb2Zmc2V0LiBVc2VkIGZvciByYW5kb20gYWNjZXNzLiBTZWUgdGhlIAorICAgICogPGEgbmFtZT0iX3RvcF8iPmNsYXNzIGRlc2NyaXB0aW9uPC9hPiBmb3Igbm90ZXMgb24gcm91bmR0cmlwcGluZy48YnI+CisgICAgKiA8aT5Ob3RlOiBJZiB0aGUgVVRGLTE2IG9mZnNldCBpcyBpbnRvIHRoZSBtaWRkbGUgb2YgYSBzdXJyb2dhdGUgcGFpciwgCisgICAgKiB0aGVuIHRoZSBVVEYtMzIgb2Zmc2V0IG9mIHRoZSA8c3Ryb25nPmxlYWQ8L3N0cm9uZz4gb2YgdGhlIHBhaXIgaXMgCisgICAgKiByZXR1cm5lZC4KKyAgICAqIDwvaT4KKyAgICAqIDxwPgorICAgICogVG8gZmluZCB0aGUgVVRGLTMyIGxlbmd0aCBvZiBhIHN0cmluZywgdXNlOgorICAgICogICA8cHJlPgorICAgICogICAgIGxlbjMyID0gY291bnRDb2RlUG9pbnQoc291cmNlLCBzb3VyY2UubGVuZ3RoKCkpOworICAgICogICA8L3ByZT4KKyAgICAqIDwvcD4KKyAgICAqIDxwPgorICAgICogQHBhcmFtIHNvdXJjZSB0ZXh0IHRvIGFuYWx5c2UKKyAgICAqIEBwYXJhbSBvZmZzZXQxNiBVVEYtMTYgb2Zmc2V0IDwgc291cmNlIHRleHQgbGVuZ3RoLgorICAgICogQHJldHVybiBVVEYtMzIgb2Zmc2V0CisgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaWYgb2Zmc2V0MTYgaXMgb3V0IG9mIGJvdW5kcy4KKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGZpbmRDb2RlUG9pbnRPZmZzZXQoU3RyaW5nIHNvdXJjZSwgaW50IG9mZnNldDE2KSAKKyAgICB7CisgICAgICAgIGlmIChvZmZzZXQxNiA8IDAgfHwgb2Zmc2V0MTYgPiBzb3VyY2UubGVuZ3RoKCkpIHsKKyAgICAgICAgdGhyb3cgbmV3IFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24ob2Zmc2V0MTYpOworICAgICAgICB9CisgICAgICAgICAKKyAgICAgICAgaW50IHJlc3VsdCA9IDA7CisgICAgICAgIGNoYXIgY2g7CisgICAgICAgIGJvb2xlYW4gaGFkTGVhZFN1cnJvZ2F0ZSA9IGZhbHNlOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBvZmZzZXQxNjsgKysgaSkgCisgICAgICAgIHsKKyAgICAgICAgY2ggPSBzb3VyY2UuY2hhckF0KGkpOworICAgICAgICBpZiAoaGFkTGVhZFN1cnJvZ2F0ZSAmJiBpc1RyYWlsU3Vycm9nYXRlKGNoKSkgeworICAgICAgICAgICAgaGFkTGVhZFN1cnJvZ2F0ZSA9IGZhbHNlOyAgICAgICAgICAgLy8gY291bnQgdmFsaWQgdHJhaWwgYXMgemVybworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgaGFkTGVhZFN1cnJvZ2F0ZSA9IGlzTGVhZFN1cnJvZ2F0ZShjaCk7CisgICAgICAgICAgICArKyByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb3VudCBvdGhlcnMgYXMgMQorICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChvZmZzZXQxNiA9PSBzb3VyY2UubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIGVuZCBvZiBzb3VyY2UgYmVpbmcgdGhlIGxlc3Mgc2lnbmlmaWNhbnQgc3Vycm9nYXRlIGNoYXJhY3RlcgorICAgICAgICAvLyBzaGlmdCByZXN1bHQgYmFjayB0byB0aGUgc3RhcnQgb2YgdGhlIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyCisgICAgICAgIGlmIChoYWRMZWFkU3Vycm9nYXRlICYmIChpc1RyYWlsU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQob2Zmc2V0MTYpKSkpIHsKKyAgICAgICAgcmVzdWx0IC0tOworICAgICAgICB9CisgICAgICAgICAgCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgICAgCisgICAgLyoqCisgICAgKiBSZXR1cm5zIHRoZSBVVEYtMzIgb2Zmc2V0IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGZpcnN0IFVURi0zMiBib3VuZGFyeSBhdAorICAgICogdGhlIGdpdmVuIFVURi0xNiBvZmZzZXQuIFVzZWQgZm9yIHJhbmRvbSBhY2Nlc3MuIFNlZSB0aGUKKyAgICAqIDxhIG5hbWU9Il90b3BfIj5jbGFzcyBkZXNjcmlwdGlvbjwvYT4gZm9yIG5vdGVzIG9uIHJvdW5kdHJpcHBpbmcuPGJyPgorICAgICogPGk+Tm90ZTogSWYgdGhlIFVURi0xNiBvZmZzZXQgaXMgaW50byB0aGUgbWlkZGxlIG9mIGEgc3Vycm9nYXRlIHBhaXIsIAorICAgICogdGhlbiB0aGUgVVRGLTMyIG9mZnNldCBvZiB0aGUgPHN0cm9uZz5sZWFkPC9zdHJvbmc+IG9mIHRoZSBwYWlyIGlzIAorICAgICogcmV0dXJuZWQuCisgICAgKiA8L2k+CisgICAgKiA8cD4KKyAgICAqIFRvIGZpbmQgdGhlIFVURi0zMiBsZW5ndGggb2YgYSBzdHJpbmcsIHVzZToKKyAgICAqICAgPHByZT4KKyAgICAqICAgICBsZW4zMiA9IGNvdW50Q29kZVBvaW50KHNvdXJjZSk7CisgICAgKiAgIDwvcHJlPgorICAgICogPC9wPgorICAgICogPHA+CisgICAgKiBAcGFyYW0gc291cmNlIHRleHQgdG8gYW5hbHlzZQorICAgICogQHBhcmFtIG9mZnNldDE2IFVURi0xNiBvZmZzZXQgPCBzb3VyY2UgdGV4dCBsZW5ndGguCisgICAgKiBAcmV0dXJuIFVURi0zMiBvZmZzZXQKKyAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiBvZmZzZXQxNiBpcyBvdXQgb2YgYm91bmRzLgorICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZmluZENvZGVQb2ludE9mZnNldChTdHJpbmdCdWZmZXIgc291cmNlLCBpbnQgb2Zmc2V0MTYpCisgICAgeworICAgICAgICBpZiAob2Zmc2V0MTYgPCAwIHx8IG9mZnNldDE2ID4gc291cmNlLmxlbmd0aCgpKSB7CisgICAgICAgIHRocm93IG5ldyBTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKG9mZnNldDE2KTsKKyAgICAgICAgfQorICAgICAgICAgCisgICAgICAgIGludCByZXN1bHQgPSAwOworICAgICAgICBjaGFyIGNoOworICAgICAgICBib29sZWFuIGhhZExlYWRTdXJyb2dhdGUgPSBmYWxzZTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgb2Zmc2V0MTY7ICsrIGkpIAorICAgICAgICB7CisgICAgICAgIGNoID0gc291cmNlLmNoYXJBdChpKTsKKyAgICAgICAgaWYgKGhhZExlYWRTdXJyb2dhdGUgJiYgaXNUcmFpbFN1cnJvZ2F0ZShjaCkpIHsKKyAgICAgICAgICAgIGhhZExlYWRTdXJyb2dhdGUgPSBmYWxzZTsgICAgICAgICAgIC8vIGNvdW50IHZhbGlkIHRyYWlsIGFzIHplcm8KKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAgIGhhZExlYWRTdXJyb2dhdGUgPSBpc0xlYWRTdXJyb2dhdGUoY2gpOworICAgICAgICAgICAgKysgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY291bnQgb3RoZXJzIGFzIDEKKyAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAob2Zmc2V0MTYgPT0gc291cmNlLmxlbmd0aCgpKSB7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBlbmQgb2Ygc291cmNlIGJlaW5nIHRoZSBsZXNzIHNpZ25pZmljYW50IHN1cnJvZ2F0ZSBjaGFyYWN0ZXIKKyAgICAgICAgLy8gc2hpZnQgcmVzdWx0IGJhY2sgdG8gdGhlIHN0YXJ0IG9mIHRoZSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcgorICAgICAgICBpZiAoaGFkTGVhZFN1cnJvZ2F0ZSAmJiAoaXNUcmFpbFN1cnJvZ2F0ZShzb3VyY2UuY2hhckF0KG9mZnNldDE2KSkpKSAKKyAgICAgICAgeworICAgICAgICAgICAgcmVzdWx0IC0tOworICAgICAgICB9CisgICAgICAgICAgCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgKiBSZXR1cm5zIHRoZSBVVEYtMzIgb2Zmc2V0IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGZpcnN0IFVURi0zMiBib3VuZGFyeSBhdAorICAgICogdGhlIGdpdmVuIFVURi0xNiBvZmZzZXQuIFVzZWQgZm9yIHJhbmRvbSBhY2Nlc3MuIFNlZSB0aGUKKyAgICAqIDxhIG5hbWU9Il90b3BfIj5jbGFzcyBkZXNjcmlwdGlvbjwvYT4gZm9yIG5vdGVzIG9uIHJvdW5kdHJpcHBpbmcuPGJyPgorICAgICogPGk+Tm90ZTogSWYgdGhlIFVURi0xNiBvZmZzZXQgaXMgaW50byB0aGUgbWlkZGxlIG9mIGEgc3Vycm9nYXRlIHBhaXIsIAorICAgICogdGhlbiB0aGUgVVRGLTMyIG9mZnNldCBvZiB0aGUgPHN0cm9uZz5sZWFkPC9zdHJvbmc+IG9mIHRoZSBwYWlyIGlzIAorICAgICogcmV0dXJuZWQuCisgICAgKiA8L2k+CisgICAgKiA8cD4KKyAgICAqIFRvIGZpbmQgdGhlIFVURi0zMiBsZW5ndGggb2YgYSBzdWJzdHJpbmcsIHVzZToKKyAgICAqICAgPHByZT4KKyAgICAqICAgICBsZW4zMiA9IGNvdW50Q29kZVBvaW50KHNvdXJjZSwgc3RhcnQsIGxpbWl0KTsKKyAgICAqICAgPC9wcmU+CisgICAgKiA8L3A+CisgICAgKiA8cD4KKyAgICAqIEBwYXJhbSBzb3VyY2UgdGV4dCB0byBhbmFseXNlCisgICAgKiBAcGFyYW0gc3RhcnQgb2Zmc2V0IG9mIHRoZSBzdWJzdHJpbmcKKyAgICAqIEBwYXJhbSBsaW1pdCBvZmZzZXQgb2YgdGhlIHN1YnN0cmluZworICAgICogQHBhcmFtIG9mZnNldDE2IFVURi0xNiByZWxhdGl2ZSB0byBzdGFydAorICAgICogQHJldHVybiBVVEYtMzIgb2Zmc2V0IHJlbGF0aXZlIHRvIHN0YXJ0CisgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaWYgb2Zmc2V0MTYgaXMgbm90IHdpdGhpbiB0aGUgCisgICAgKiAgICAgICAgICAgIHJhbmdlIG9mIHN0YXJ0IGFuZCBsaW1pdC4KKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGZpbmRDb2RlUG9pbnRPZmZzZXQoY2hhciBzb3VyY2VbXSwgaW50IHN0YXJ0LCBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0MTYpCisgICAgeworICAgICAgICBvZmZzZXQxNiArPSBzdGFydDsKKyAgICAgICAgaWYgKG9mZnNldDE2ID4gbGltaXQpIHsKKyAgICAgICAgCXRocm93IG5ldyBTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKG9mZnNldDE2KTsKKyAgICAgICAgfQorICAgICAgICAgCisgICAgICAgIGludCByZXN1bHQgPSAwOworICAgICAgICBjaGFyIGNoOworICAgICAgICBib29sZWFuIGhhZExlYWRTdXJyb2dhdGUgPSBmYWxzZTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSBzdGFydDsgaSA8IG9mZnNldDE2OyArKyBpKSAKKyAgICAgICAgeworICAgICAgICAJY2ggPSBzb3VyY2VbaV07CisgICAgICAgIAlpZiAoaGFkTGVhZFN1cnJvZ2F0ZSAmJiBpc1RyYWlsU3Vycm9nYXRlKGNoKSkgeworICAgICAgICAgICAgCWhhZExlYWRTdXJyb2dhdGUgPSBmYWxzZTsgLy8gY291bnQgdmFsaWQgdHJhaWwgYXMgemVybworICAgICAgICAJfQorICAgICAgICAJZWxzZQorICAgICAgICAJeworICAgICAgICAgICAgCWhhZExlYWRTdXJyb2dhdGUgPSBpc0xlYWRTdXJyb2dhdGUoY2gpOworICAgICAgICAgICAgCSsrIHJlc3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvdW50IG90aGVycyBhcyAxCisgICAgICAgIAl9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChvZmZzZXQxNiA9PSBsaW1pdCkgeworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gZW5kIG9mIHNvdXJjZSBiZWluZyB0aGUgbGVzcyBzaWduaWZpY2FudCBzdXJyb2dhdGUgY2hhcmFjdGVyCisgICAgICAgIC8vIHNoaWZ0IHJlc3VsdCBiYWNrIHRvIHRoZSBzdGFydCBvZiB0aGUgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIKKyAgICAgICAgaWYgKGhhZExlYWRTdXJyb2dhdGUgJiYgKGlzVHJhaWxTdXJyb2dhdGUoc291cmNlW29mZnNldDE2XSkpKSB7CisgICAgICAgIAlyZXN1bHQgLS07CisgICAgICAgIH0KKyAgICAgICAgICAKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEFwcGVuZCBhIHNpbmdsZSBVVEYtMzIgdmFsdWUgdG8gdGhlIGVuZCBvZiBhIFN0cmluZ0J1ZmZlci4KKyAgICAqIElmIGEgdmFsaWRpdHkgY2hlY2sgaXMgcmVxdWlyZWQsIHVzZSAKKyAgICAqIDxhIGhyZWY9Ii4uL1VDaGFyYWN0ZXIuaHRtbCNpc0xlZ2FsKGNoYXIpIj5pc0xlZ2FsKCk8L2E+PC9jb2RlPiBvbiAKKyAgICAqIGNoYXIzMiBiZWZvcmUgY2FsbGluZy4KKyAgICAqIEBwYXJhbSBjaGFyMzIgdmFsdWUgdG8gYXBwZW5kLgorICAgICogQHJldHVybiB0aGUgdXBkYXRlZCBTdHJpbmdCdWZmZXIKKyAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRocm93biB3aGVuIGNoYXIzMiBkb2VzIG5vdCBsaWUgd2l0aGluCisgICAgKiAgICAgICAgICAgIHRoZSByYW5nZSBvZiB0aGUgVW5pY29kZSBjb2RlcG9pbnRzCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBhcHBlbmQoU3RyaW5nQnVmZmVyIHRhcmdldCwgaW50IGNoYXIzMikKKyAgICB7CisgICAgICAgIC8vIENoZWNrIGZvciBpcnJlZ3VsYXIgdmFsdWVzCisgICAgICAgIGlmIChjaGFyMzIgPCBDT0RFUE9JTlRfTUlOX1ZBTFVFIHx8IGNoYXIzMiA+IENPREVQT0lOVF9NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgY29kZXBvaW50Iik7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAvLyBXcml0ZSB0aGUgVVRGLTE2IHZhbHVlcworICAgICAgICBpZiAoY2hhcjMyID49IFNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFKSAKKyAgICAgICAgeworICAgICAgICAgICAgdGFyZ2V0LmFwcGVuZChnZXRMZWFkU3Vycm9nYXRlKGNoYXIzMikpOworCSAgICAgICAgdGFyZ2V0LmFwcGVuZChnZXRUcmFpbFN1cnJvZ2F0ZShjaGFyMzIpKTsKKyAgICAgICAgfSAKKwkgICAgZWxzZSB7CisJICAgICAgICB0YXJnZXQuYXBwZW5kKChjaGFyKWNoYXIzMik7CisJICAgIH0KKwkgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9CisgICAgICAKKyAgICAvKioKKyAgICAqIEFkZHMgYSBjb2RlcG9pbnQgdG8gb2Zmc2V0MTYgcG9zaXRpb24gb2YgdGhlIGFyZ3VtZW50IGNoYXIgYXJyYXkuCisgICAgKiBAcGFyYW0gdGFyZ2V0IGNoYXIgYXJyYXkgdG8gYmUgYXBwZW5kIHdpdGggdGhlIG5ldyBjb2RlIHBvaW50CisgICAgKiBAcGFyYW0gbGltaXQgVVRGMTYgb2Zmc2V0IHdoaWNoIHRoZSBjb2RlcG9pbnQgd2lsbCBiZSBhcHBlbmRlZC4KKyAgICAqIEBwYXJhbSBjaGFyMzIgY29kZSBwb2ludCB0byBiZSBhcHBlbmRlZAorICAgICogQHJldHVybiBvZmZzZXQgYWZ0ZXIgY2hhcjMyIGluIHRoZSBhcnJheS4KKyAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRocm93biBpZiB0aGVyZSBpcyBub3QgZW5vdWdoIAorICAgICogICAgICAgICAgICBzcGFjZSBmb3IgdGhlIGFwcGVuZCwgb3Igd2hlbiBjaGFyMzIgZG9lcyBub3QgbGllIHdpdGhpbgorICAgICogICAgICAgICAgICB0aGUgcmFuZ2Ugb2YgdGhlIFVuaWNvZGUgY29kZXBvaW50cy4KKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGFwcGVuZChjaGFyW10gdGFyZ2V0LCBpbnQgbGltaXQsIGludCBjaGFyMzIpCisgICAgeworICAgICAgICAvLyBDaGVjayBmb3IgaXJyZWd1bGFyIHZhbHVlcworICAgICAgICBpZiAoY2hhcjMyIDwgQ09ERVBPSU5UX01JTl9WQUxVRSB8fCBjaGFyMzIgPiBDT0RFUE9JTlRfTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIGNvZGVwb2ludCIpOworICAgICAgICB9CisgICAgICAgIC8vIFdyaXRlIHRoZSBVVEYtMTYgdmFsdWVzCisgICAgICAgIGlmIChjaGFyMzIgPj0gU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUpIAorICAgICAgICB7CisgICAgICAgICAgICB0YXJnZXRbbGltaXQgKytdID0gZ2V0TGVhZFN1cnJvZ2F0ZShjaGFyMzIpOworICAgICAgICAgICAgdGFyZ2V0W2xpbWl0ICsrXSA9IGdldFRyYWlsU3Vycm9nYXRlKGNoYXIzMik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0YXJnZXRbbGltaXQgKytdID0gKGNoYXIpY2hhcjMyOworICAgICAgICB9CisgICAgICAgIHJldHVybiBsaW1pdDsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICogTnVtYmVyIG9mIGNvZGVwb2ludHMgaW4gYSBVVEYxNiBTdHJpbmcKKyAgICAqIEBwYXJhbSBzb3VyY2UgVVRGMTYgc3RyaW5nCisgICAgKiBAcmV0dXJuIG51bWJlciBvZiBjb2RlcG9pbnQgaW4gc3RyaW5nCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBjb3VudENvZGVQb2ludChTdHJpbmcgc291cmNlKQorICAgIHsKKyAgICAgICAgaWYgKHNvdXJjZSA9PSBudWxsIHx8IHNvdXJjZS5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmluZENvZGVQb2ludE9mZnNldChzb3VyY2UsIHNvdXJjZS5sZW5ndGgoKSk7CisgICAgfQorICAgICAgCisgICAgLyoqCisgICAgKiBOdW1iZXIgb2YgY29kZXBvaW50cyBpbiBhIFVURjE2IFN0cmluZyBidWZmZXIKKyAgICAqIEBwYXJhbSBzb3VyY2UgVVRGMTYgc3RyaW5nIGJ1ZmZlcgorICAgICogQHJldHVybiBudW1iZXIgb2YgY29kZXBvaW50IGluIHN0cmluZworICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgY291bnRDb2RlUG9pbnQoU3RyaW5nQnVmZmVyIHNvdXJjZSkKKyAgICB7CisgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCB8fCBzb3VyY2UubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZpbmRDb2RlUG9pbnRPZmZzZXQoc291cmNlLCBzb3VyY2UubGVuZ3RoKCkpOworICAgIH0KKworICAgIC8qKgorICAgICogTnVtYmVyIG9mIGNvZGVwb2ludHMgaW4gYSBVVEYxNiBjaGFyIGFycmF5IHN1YnN0cmluZworICAgICogQHBhcmFtIHNvdXJjZSBVVEYxNiBjaGFyIGFycmF5CisgICAgKiBAcGFyYW0gc3RhcnQgb2Zmc2V0IG9mIHRoZSBzdWJzdHJpbmcKKyAgICAqIEBwYXJhbSBsaW1pdCBvZmZzZXQgb2YgdGhlIHN1YnN0cmluZworICAgICogQHJldHVybiBudW1iZXIgb2YgY29kZXBvaW50IGluIHRoZSBzdWJzdHJpbmcKKyAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiBzdGFydCBhbmQgbGltaXQgYXJlIG5vdCB2YWxpZC4KKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvdW50Q29kZVBvaW50KGNoYXIgc291cmNlW10sIGludCBzdGFydCwgaW50IGxpbWl0KQorICAgIHsKKyAgICAgICAgaWYgKHNvdXJjZSA9PSBudWxsIHx8IHNvdXJjZS5sZW5ndGggPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZpbmRDb2RlUG9pbnRPZmZzZXQoc291cmNlLCBzdGFydCwgbGltaXQsIGxpbWl0IC0gc3RhcnQpOworICAgIH0KKyAgICAgIAorICAgIC8qKgorICAgICogU2V0cyBhIGNvZGUgcG9pbnQgaW50byBhIFVURjMyIHBvc2l0aW9uLgorICAgICogQWRqdXN0cyB0YXJnZXQgYWNjb3JkaW5nIGlmIHdlIGFyZSByZXBsYWNpbmcgYSBub24tc3VwcGxlbWVudGFyeSAKKyAgICAqIGNvZGVwb2ludCB3aXRoIGEgc3VwcGxlbWVudGFyeSBhbmQgdmljZSB2ZXJzYS4KKyAgICAqIEBwYXJhbSB0YXJnZXQgc3RyaW5nYnVmZmVyCisgICAgKiBAcGFyYW0gb2Zmc2V0MzIgVVRGMzIgcG9zaXRpb24gdG8gaW5zZXJ0IGludG8KKyAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiBvZmZzZXQzMiBpcyBvdXQgb2YgYm91bmRzLgorICAgICogQHBhcmFtIGNoYXIzMiBjb2RlIHBvaW50CisgICAgKiBAZGVwcmVjYXRlZCB0byBiZSByZW1vdmVkIGFmdGVyIHRoZSB5ZWFyIDIwMDIsCisgICAgKiBVVEYxNi5zZXRDaGFyQXQodGFyZ2V0LCAKKyAgICAqICAgICAgICAgICAgICAgICBmaW5kT2Zmc2V0RnJvbUNvZGVQb2ludCh0YXJnZXQudG9TdHJpbmcoKSwgb2Zmc2V0MzIpLCAKKyAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyMzIpOworICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHNldENoYXJBdENvZGVQb2ludE9mZnNldChTdHJpbmdCdWZmZXIgdGFyZ2V0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvZmZzZXQzMiwgaW50IGNoYXIzMikKKyAgICB7CisgICAgICAgIGludCBvZmZzZXQxNiA9IGZpbmRPZmZzZXRGcm9tQ29kZVBvaW50KHRhcmdldC50b1N0cmluZygpLCBvZmZzZXQzMik7CisgICAgICAgIHNldENoYXJBdCh0YXJnZXQsIG9mZnNldDE2LCBjaGFyMzIpOworICAgIH0KKworICAgIC8qKgorICAgICogU2V0IGEgY29kZSBwb2ludCBpbnRvIGEgVVRGMTYgcG9zaXRpb24uIAorICAgICogQWRqdXN0cyB0YXJnZXQgYWNjb3JkaW5nIGlmIHdlIGFyZSByZXBsYWNpbmcgYSBub24tc3VwcGxlbWVudGFyeSAKKyAgICAqIGNvZGVwb2ludCB3aXRoIGEgc3VwcGxlbWVudGFyeSBhbmQgdmljZSB2ZXJzYS4KKyAgICAqIEBwYXJhbSB0YXJnZXQgc3RyaW5nYnVmZmVyCisgICAgKiBAcGFyYW0gb2Zmc2V0MTYgVVRGMTYgcG9zaXRpb24gdG8gaW5zZXJ0IGludG8KKyAgICAqIEBwYXJhbSBjaGFyMzIgY29kZSBwb2ludAorICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHNldENoYXJBdChTdHJpbmdCdWZmZXIgdGFyZ2V0LCBpbnQgb2Zmc2V0MTYsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNoYXIzMikKKyAgICB7CisgICAgICAgIGludCBjb3VudCA9IDE7CisgICAgICAgIGNoYXIgc2luZ2xlID0gdGFyZ2V0LmNoYXJBdChvZmZzZXQxNik7CisgICAgICAgIAorICAgICAgICBpZiAoaXNTdXJyb2dhdGUoc2luZ2xlKSkgCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIHBhaXJzIG9mIHRoZSBzdXJyb2dhdGUgd2l0aCBvZmZzZXQxNiBhdCB0aGUgbGVhZCBjaGFyIGZvdW5kCisgICAgICAgICAgICBpZiAoaXNMZWFkU3Vycm9nYXRlKHNpbmdsZSkgJiYgKHRhcmdldC5sZW5ndGgoKSA+IG9mZnNldDE2ICsgMSkgCisgICAgICAgICAgICAgICAgJiYgaXNUcmFpbFN1cnJvZ2F0ZSh0YXJnZXQuY2hhckF0KG9mZnNldDE2ICsgMSkpKSB7CisJICAgICAgICAgICAgY291bnQgKys7CisJICAgICAgICB9CisJICAgICAgICBlbHNlIHsKKwkgICAgICAgICAgICAvLyBwYWlycyBvZiB0aGUgc3Vycm9nYXRlIHdpdGggb2Zmc2V0MTYgYXQgdGhlIHRyYWlsIGNoYXIgCisJICAgICAgICAgICAgLy8gZm91bmQKKwkgICAgICAgICAgICBpZiAoaXNUcmFpbFN1cnJvZ2F0ZShzaW5nbGUpICYmIChvZmZzZXQxNiA+IDApICYmCisJICAgICAgICAgICAgICAgIGlzTGVhZFN1cnJvZ2F0ZSh0YXJnZXQuY2hhckF0KG9mZnNldDE2IC0xKSkpCisJICAgICAgICAgICAgeworCSAgICAgICAgICAgICAgICBvZmZzZXQxNiAtLTsKKwkgICAgICAgICAgICAgICAgY291bnQgKys7CisJICAgICAgICAgICAgfQorCSAgICAgICAgfQorCSAgICB9CisJICAgIHRhcmdldC5yZXBsYWNlKG9mZnNldDE2LCBvZmZzZXQxNiArIGNvdW50LCB2YWx1ZU9mKGNoYXIzMikpOworICAgIH0KKyAgICAJCisgICAgLyoqCisgICAgKiBTZXQgYSBjb2RlIHBvaW50IGludG8gYSBVVEYxNiBwb3NpdGlvbiBpbiBhIGNoYXIgYXJyYXkuCisgICAgKiBBZGp1c3RzIHRhcmdldCBhY2NvcmRpbmcgaWYgd2UgYXJlIHJlcGxhY2luZyBhIG5vbi1zdXBwbGVtZW50YXJ5IAorICAgICogY29kZXBvaW50IHdpdGggYSBzdXBwbGVtZW50YXJ5IGFuZCB2aWNlIHZlcnNhLgorICAgICogQHBhcmFtIHRhcmdldCBjaGFyIGFycmF5CisgICAgKiBAcGFyYW0gbGltaXQgbnVtYmVycyBvZiB2YWxpZCBjaGFycyBpbiB0YXJnZXQsIGRpZmZlcmVudCBmcm9tIAorICAgICogICAgICAgIHRhcmdldC5sZW5ndGguIGxpbWl0IGNvdW50cyB0aGUgbnVtYmVyIG9mIGNoYXJzIGluIHRhcmdldCAKKyAgICAqICAgICAgICB0aGF0IHJlcHJlc2VudHMgYSBzdHJpbmcsIG5vdCB0aGUgc2l6ZSBvZiBhcnJheSB0YXJnZXQuCisgICAgKiBAcGFyYW0gb2Zmc2V0MTYgVVRGMTYgcG9zaXRpb24gdG8gaW5zZXJ0IGludG8KKyAgICAqIEBwYXJhbSBjaGFyMzIgY29kZSBwb2ludAorICAgICogQHJldHVybiBuZXcgbnVtYmVyIG9mIGNoYXJzIGluIHRhcmdldCB0aGF0IHJlcHJlc2VudHMgYSBzdHJpbmcKKyAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiBvZmZzZXQxNiBpcyBvdXQgb2YgcmFuZ2UKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IHNldENoYXJBdChjaGFyIHRhcmdldFtdLCBpbnQgbGltaXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0MTYsIGludCBjaGFyMzIpCisgICAgeworICAgICAgICBpZiAob2Zmc2V0MTYgPj0gbGltaXQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24ob2Zmc2V0MTYpOworICAgICAgICB9CisgICAgICAgIGludCBjb3VudCA9IDE7CisgICAgICAgIGNoYXIgc2luZ2xlID0gdGFyZ2V0W29mZnNldDE2XTsKKyAgICAgICAgCisgICAgICAgIGlmIChpc1N1cnJvZ2F0ZShzaW5nbGUpKSAKKyAgICAgICAgeworICAgICAgICAgICAgLy8gcGFpcnMgb2YgdGhlIHN1cnJvZ2F0ZSB3aXRoIG9mZnNldDE2IGF0IHRoZSBsZWFkIGNoYXIgZm91bmQKKyAgICAgICAgICAgIGlmIChpc0xlYWRTdXJyb2dhdGUoc2luZ2xlKSAmJiAodGFyZ2V0Lmxlbmd0aCA+IG9mZnNldDE2ICsgMSkgJiYKKyAgICAgICAgICAgICAgICBpc1RyYWlsU3Vycm9nYXRlKHRhcmdldFtvZmZzZXQxNiArIDFdKSkgeworCSAgICAgICAgICAgIGNvdW50ICsrOworCSAgICAgICAgfQorCSAgICAgICAgZWxzZSB7CisJICAgICAgICAgICAgLy8gcGFpcnMgb2YgdGhlIHN1cnJvZ2F0ZSB3aXRoIG9mZnNldDE2IGF0IHRoZSB0cmFpbCBjaGFyIAorCSAgICAgICAgICAgIC8vIGZvdW5kCisJICAgICAgICAgICAgaWYgKGlzVHJhaWxTdXJyb2dhdGUoc2luZ2xlKSAmJiAob2Zmc2V0MTYgPiAwKSAmJgorCSAgICAgICAgICAgICAgICBpc0xlYWRTdXJyb2dhdGUodGFyZ2V0W29mZnNldDE2IC0xXSkpCisJICAgICAgICAgICAgeworCSAgICAgICAgICAgICAgICBvZmZzZXQxNiAtLTsKKwkgICAgICAgICAgICAgICAgY291bnQgKys7CisJICAgICAgICAgICAgfQorCSAgICAgICAgfQorCSAgICB9CisgICAgCSAgCisJICAgIFN0cmluZyBzdHIgPSB2YWx1ZU9mKGNoYXIzMik7CisJICAgIGludCByZXN1bHQgPSBsaW1pdDsKKwkgICAgaW50IHN0cmxlbmd0aCA9IHN0ci5sZW5ndGgoKTsKKwkgICAgdGFyZ2V0W29mZnNldDE2XSA9IHN0ci5jaGFyQXQoMCk7CisJICAgIGlmIChjb3VudCA9PSBzdHJsZW5ndGgpIHsKKwkgICAgICAgIGlmIChjb3VudCA9PSAyKSB7CisJICAgICAgICAgICAgdGFyZ2V0W29mZnNldDE2ICsgMV0gPSBzdHIuY2hhckF0KDEpOworCSAgICAgICAgfQorCSAgICB9CisJICAgIGVsc2UgeworCSAgICAgICAgLy8gdGhpcyBpcyBub3QgZXhhY3QgbWF0Y2ggaW4gc3BhY2UsIHdlJ2xsIGhhdmUgdG8gZG8gc29tZSAKKwkgICAgICAgIC8vIHNoaWZ0aW5nCisJICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHRhcmdldCwgb2Zmc2V0MTYgKyBjb3VudCwgdGFyZ2V0LCAKKwkgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldDE2ICsgc3RybGVuZ3RoLCBsaW1pdCAtIChvZmZzZXQxNiArIGNvdW50KSk7CisJICAgICAgICBpZiAoY291bnQgPCBzdHJsZW5ndGgpIHsKKwkgICAgICAgICAgICAvLyBjaGFyMzIgaXMgYSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlciB0cnlpbmcgdG8gc3F1ZWV6ZSBpbnRvCisJICAgICAgICAgICAgLy8gYSBub24tc3VwcGxlbWVudGFyeSBzcGFjZQorCSAgICAgICAgICAgIHRhcmdldFtvZmZzZXQxNiArIDFdID0gc3RyLmNoYXJBdCgxKTsKKwkgICAgICAgICAgICByZXN1bHQgKys7CisJICAgICAgICAgICAgaWYgKHJlc3VsdCA8IHRhcmdldC5sZW5ndGgpIHsKKwkgICAgICAgICAgICAgICAgdGFyZ2V0W3Jlc3VsdF0gPSAwOworCSAgICAgICAgICAgIH0KKwkgICAgICAgIH0KKwkgICAgICAgIGVsc2UgeworCSAgICAgICAgICAgIC8vIGNoYXIzMiBpcyBhIG5vbi1zdXBwbGVtZW50YXJ5IGNoYXJhY3RlciB0cnlpbmcgdG8gZmlsbCAKKwkgICAgICAgICAgICAvLyBpbnRvIGEgc3VwcGxlbWVudGFyeSBzcGFjZQorCSAgICAgICAgICAgIHJlc3VsdCAtLTsKKwkgICAgICAgICAgICB0YXJnZXRbcmVzdWx0XSA9IDA7CisJICAgICAgICB9CisJICAgIH0KKwkgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgICAKKyAgICAvKioKKyAgICAqIFNoaWZ0cyBvZmZzZXQxNiBieSB0aGUgYXJndW1lbnQgbnVtYmVyIG9mIGNvZGVwb2ludHMKKyAgICAqIEBwYXJhbSBzb3VyY2Ugc3RyaW5nCisgICAgKiBAcGFyYW0gb2Zmc2V0MTYgVVRGMTYgcG9zaXRpb24gdG8gc2hpZnQKKyAgICAqIEBwYXJhbSBzaGlmdDMyIG51bWJlciBvZiBjb2RlcG9pbnRzIHRvIHNoaWZ0CisgICAgKiBAcmV0dXJuIG5ldyBzaGlmdGVkIG9mZnNldDE2IAorICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGlmIHRoZSBuZXcgb2Zmc2V0MTYgaXMgb3V0IG9mIAorICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdW5kcy4KKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IG1vdmVDb2RlUG9pbnRPZmZzZXQoU3RyaW5nIHNvdXJjZSwgaW50IG9mZnNldDE2LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNoaWZ0MzIpCisgICAgeworICAgICAgICBpbnQgc2l6ZSA9IHNvdXJjZS5sZW5ndGgoKTsKKyAgICAgICAgaWYgKG9mZnNldDE2IDwgMCB8fCBzaGlmdDMyICsgb2Zmc2V0MTYgPiBzaXplKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihvZmZzZXQxNik7CisgICAgICAgIH0KKyAgICAgICAgY2hhciBjaDsKKyAgICAgICAgaW50IHJlc3VsdCA9IG9mZnNldDE2OworICAgICAgICBpbnQgY291bnQgPSBzaGlmdDMyOworICAgICAgICB3aGlsZSAocmVzdWx0IDwgc2l6ZSAmJiBjb3VudCA+IDApCisgICAgICAgIHsKKyAgICAgICAgICAgIGNoID0gc291cmNlLmNoYXJBdChyZXN1bHQpOworICAgICAgICAgICAgaWYgKGlzTGVhZFN1cnJvZ2F0ZShjaCkgJiYgKChyZXN1bHQgKyAxKSA8IHNpemUpICYmIAorICAgICAgICAgICAgICAgIGlzVHJhaWxTdXJyb2dhdGUoc291cmNlLmNoYXJBdChyZXN1bHQgKyAxKSkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgICAgIHJlc3VsdCArKzsKKyAgICAgICAgfQorICAgICAgICBpZiAoY291bnQgIT0gMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oc2hpZnQzMik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFNoaWZ0cyBvZmZzZXQxNiBieSB0aGUgYXJndW1lbnQgbnVtYmVyIG9mIGNvZGVwb2ludHMKKyAgICAqIEBwYXJhbSB0YXJnZXQgc3RyaW5nIGJ1ZmZlcgorICAgICogQHBhcmFtIG9mZnNldDE2IFVURjE2IHBvc2l0aW9uIHRvIHNoaWZ0CisgICAgKiBAcGFyYW0gc2hpZnQzMiBudW1iZXIgb2YgY29kZXBvaW50cyB0byBzaGlmdAorICAgICogQHJldHVybiBuZXcgc2hpZnRlZCBvZmZzZXQxNiAKKyAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiB0aGUgbmV3IG9mZnNldDE2IGlzIG91dCBvZiAKKyAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3VuZHMuCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBtb3ZlQ29kZVBvaW50T2Zmc2V0KFN0cmluZ0J1ZmZlciBzb3VyY2UsIGludCBvZmZzZXQxNiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNoaWZ0MzIpCisgICAgeworICAgICAgICBpbnQgc2l6ZSA9IHNvdXJjZS5sZW5ndGgoKTsKKyAgICAgICAgaWYgKG9mZnNldDE2IDwgMCB8fCBzaGlmdDMyICsgb2Zmc2V0MTYgPiBzaXplKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihvZmZzZXQxNik7CisgICAgICAgIH0KKyAgICAgICAgY2hhciBjaDsKKyAgICAgICAgaW50IHJlc3VsdCA9IG9mZnNldDE2OworICAgICAgICBpbnQgY291bnQgPSBzaGlmdDMyOworICAgICAgICB3aGlsZSAocmVzdWx0IDwgc2l6ZSAmJiBjb3VudCA+IDApCisgICAgICAgIHsKKyAgICAgICAgICAgIGNoID0gc291cmNlLmNoYXJBdChyZXN1bHQpOworICAgICAgICAgICAgaWYgKGlzTGVhZFN1cnJvZ2F0ZShjaCkgJiYgKChyZXN1bHQgKyAxKSA8IHNpemUpICYmIAorICAgICAgICAgICAgICAgIGlzVHJhaWxTdXJyb2dhdGUoc291cmNlLmNoYXJBdChyZXN1bHQgKyAxKSkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgICAgIHJlc3VsdCArKzsKKyAgICAgICAgfQorICAgICAgICBpZiAoY291bnQgIT0gMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oc2hpZnQzMik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFNoaWZ0cyBvZmZzZXQxNiBieSB0aGUgYXJndW1lbnQgbnVtYmVyIG9mIGNvZGVwb2ludHMgd2l0aGluIGEgc3ViYXJyYXkuCisgICAgKiBAcGFyYW0gdGFyZ2V0IGNoYXIgYXJyYXkKKyAgICAqIEBwYXJhbSBzdGFydCBwb3NpdGlvbiBvZiB0aGUgc3ViYXJyYXkgdG8gYmUgcGVyZm9ybWVkIG9uCisgICAgKiBAcGFyYW0gbGltaXQgcG9zaXRpb24gb2YgdGhlIHN1YmFycmF5IHRvIGJlIHBlcmZvcm1lZCBvbgorICAgICogQHBhcmFtIG9mZnNldDE2IFVURjE2IHBvc2l0aW9uIHRvIHNoaWZ0IHJlbGF0aXZlIHRvIHN0YXJ0CisgICAgKiBAcGFyYW0gc2hpZnQzMiBudW1iZXIgb2YgY29kZXBvaW50cyB0byBzaGlmdAorICAgICogQHJldHVybiBuZXcgc2hpZnRlZCBvZmZzZXQxNiByZWxhdGl2ZSB0byBzdGFydAorICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGlmIHRoZSBuZXcgb2Zmc2V0MTYgaXMgb3V0IG9mIAorICAgICogICAgICAgICAgICBib3VuZHMgd2l0aCByZXNwZWN0IHRvIHRoZSBzdWJhcnJheS4KKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IG1vdmVDb2RlUG9pbnRPZmZzZXQoY2hhciBzb3VyY2VbXSwgaW50IHN0YXJ0LCBpbnQgbGltaXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldDE2LCBpbnQgc2hpZnQzMikKKyAgICB7CisgICAgICAgIG9mZnNldDE2ICs9IHN0YXJ0OworICAgICAgICBpZiAoc2hpZnQzMiArIG9mZnNldDE2ID4gbGltaXQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKG9mZnNldDE2KTsKKyAgICAgICAgfQorICAgICAgICBjaGFyIGNoOworICAgICAgICBpbnQgcmVzdWx0ID0gb2Zmc2V0MTY7CisgICAgICAgIGludCBjb3VudCA9IHNoaWZ0MzI7CisgICAgICAgIHdoaWxlIChyZXN1bHQgPCBsaW1pdCAmJiBjb3VudCA+IDApCisgICAgICAgIHsKKyAgICAgICAgICAgIGNoID0gc291cmNlW3Jlc3VsdF07CisgICAgICAgICAgICBpZiAoaXNMZWFkU3Vycm9nYXRlKGNoKSAmJiAoKHJlc3VsdCArIDEpIDwgbGltaXQpICYmIAorICAgICAgICAgICAgICAgIGlzVHJhaWxTdXJyb2dhdGUoc291cmNlW3Jlc3VsdCArIDFdKSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGNvdW50IC0tOworICAgICAgICAgICAgcmVzdWx0ICsrOworICAgICAgICB9CisgICAgICAgIGlmIChjb3VudCAhPSAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihzaGlmdDMyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0IC0gc3RhcnQ7CisgICAgfQorICAgICAgCisgICAgLyoqCisgICAgKiBJbnNlcnRzIGNoYXIzMiBjb2RlcG9pbnQgaW50byB0YXJnZXQgYXQgdGhlIGFyZ3VtZW50IG9mZnNldDE2LiAKKyAgICAqIElmIHRoZSBvZmZzZXQxNiBpcyBpbiB0aGUgbWlkZGxlIG9mIGEgc3VwcGxlbWVudGFyeSBjb2RlcG9pbnQsIGNoYXIzMiAKKyAgICAqIHdpbGwgYmUgaW5zZXJ0ZWQgYWZ0ZXIgdGhlIHN1cHBsZW1lbnRhcnkgY29kZXBvaW50LgorICAgICogVGhlIGxlbmd0aCBvZiB0YXJnZXQgaW5jcmVhc2VzIGJ5IG9uZSBpZiBjb2RlcG9pbnQgaXMgbm9uLXN1cHBsZW1lbnRhcnksIAorICAgICogMiBvdGhlcndpc2UuIAorICAgICogPHA+CisgICAgKiBUaGUgb3ZlcmFsbCBlZmZlY3QgaXMgZXhhY3RseSBhcyBpZiB0aGUgYXJndW1lbnQgd2VyZSBjb252ZXJ0ZWQgdG8gYSAKKyAgICAqIHN0cmluZyBieSB0aGUgbWV0aG9kIHZhbHVlT2YoY2hhcikgYW5kIHRoZSBjaGFyYWN0ZXJzIGluIHRoYXQgc3RyaW5nIAorICAgICogd2VyZSB0aGVuIGluc2VydGVkIGludG8gdGFyZ2V0IGF0IHRoZSBwb3NpdGlvbiBpbmRpY2F0ZWQgYnkgb2Zmc2V0MTYuIAorICAgICogPC9wPgorICAgICogPHA+CisgICAgKiBUaGUgb2Zmc2V0IGFyZ3VtZW50IG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDAsIGFuZCBsZXNzIHRoYW4gCisgICAgKiBvciBlcXVhbCB0byB0aGUgbGVuZ3RoIG9mIHNvdXJjZS4KKyAgICAqIEBwYXJhbSB0YXJnZXQgc3RyaW5nIGJ1ZmZlciB0byBpbnNlcnQgdG8KKyAgICAqIEBwYXJhbSBvZmZzZXQxNiBvZmZzZXQgd2hpY2ggY2hhcjMyIHdpbGwgYmUgaW5zZXJ0ZWQgaW4KKyAgICAqIEBwYXJhbSBjaGFyMzIgY29kZXBvaW50IHRvIGJlIGluc2VydGVkCisgICAgKiBAcmV0dXJuIGEgcmVmZXJlbmNlIHRvIHRhcmdldAorICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIHRocm93biBpZiBvZmZzZXQxNiBpcyBpbnZhbGlkLgorICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgaW5zZXJ0KFN0cmluZ0J1ZmZlciB0YXJnZXQsIGludCBvZmZzZXQxNiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNoYXIzMikKKyAgICB7CisgICAgICAgIFN0cmluZyBzdHIgPSB2YWx1ZU9mKGNoYXIzMik7CisgICAgICAgIGlmIChvZmZzZXQxNiAhPSB0YXJnZXQubGVuZ3RoKCkgJiYgCisgICAgICAgICAgICBib3VuZHModGFyZ2V0LCBvZmZzZXQxNikgPT0gVFJBSUxfU1VSUk9HQVRFX0JPVU5EQVJZKSB7CisgICAgICAgICAgICBvZmZzZXQxNiArKzsKKyAgICAgICAgfQorICAgICAgICB0YXJnZXQuaW5zZXJ0KG9mZnNldDE2LCBzdHIpOworICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KKworICAgIC8qKgorICAgICogSW5zZXJ0cyBjaGFyMzIgY29kZXBvaW50IGludG8gdGFyZ2V0IGF0IHRoZSBhcmd1bWVudCBvZmZzZXQxNi4gCisgICAgKiBJZiB0aGUgb2Zmc2V0MTYgaXMgaW4gdGhlIG1pZGRsZSBvZiBhIHN1cHBsZW1lbnRhcnkgY29kZXBvaW50LCBjaGFyMzIgCisgICAgKiB3aWxsIGJlIGluc2VydGVkIGFmdGVyIHRoZSBzdXBwbGVtZW50YXJ5IGNvZGVwb2ludC4KKyAgICAqIExpbWl0IGluY3JlYXNlcyBieSBvbmUgaWYgY29kZXBvaW50IGlzIG5vbi1zdXBwbGVtZW50YXJ5LCAyIG90aGVyd2lzZS4gCisgICAgKiA8cD4KKyAgICAqIFRoZSBvdmVyYWxsIGVmZmVjdCBpcyBleGFjdGx5IGFzIGlmIHRoZSBhcmd1bWVudCB3ZXJlIGNvbnZlcnRlZCB0byBhIAorICAgICogc3RyaW5nIGJ5IHRoZSBtZXRob2QgdmFsdWVPZihjaGFyKSBhbmQgdGhlIGNoYXJhY3RlcnMgaW4gdGhhdCBzdHJpbmcgCisgICAgKiB3ZXJlIHRoZW4gaW5zZXJ0ZWQgaW50byB0YXJnZXQgYXQgdGhlIHBvc2l0aW9uIGluZGljYXRlZCBieSBvZmZzZXQxNi4gCisgICAgKiA8L3A+CisgICAgKiA8cD4KKyAgICAqIFRoZSBvZmZzZXQgYXJndW1lbnQgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMCwgYW5kIGxlc3MgdGhhbiAKKyAgICAqIG9yIGVxdWFsIHRvIHRoZSBsaW1pdC4KKyAgICAqIEBwYXJhbSB0YXJnZXQgY2hhciBhcnJheSB0byBpbnNlcnQgdG8KKyAgICAqIEBwYXJhbSBsaW1pdCBlbmQgaW5kZXggb2YgdGhlIGNoYXIgYXJyYXksIGxpbWl0IDw9IHRhcmdldC5sZW5ndGgKKyAgICAqIEBwYXJhbSBvZmZzZXQxNiBvZmZzZXQgd2hpY2ggY2hhcjMyIHdpbGwgYmUgaW5zZXJ0ZWQgaW4KKyAgICAqIEBwYXJhbSBjaGFyMzIgY29kZXBvaW50IHRvIGJlIGluc2VydGVkCisgICAgKiBAcmV0dXJuIG5ldyBsaW1pdCBzaXplCisgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gdGhyb3duIGlmIG9mZnNldDE2IGlzIGludmFsaWQuCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBpbnNlcnQoY2hhciB0YXJnZXRbXSwgaW50IGxpbWl0LCBpbnQgb2Zmc2V0MTYsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2hhcjMyKQorICAgIHsKKyAgICAgICAgU3RyaW5nIHN0ciA9IHZhbHVlT2YoY2hhcjMyKTsKKyAgICAgICAgaWYgKG9mZnNldDE2ICE9IGxpbWl0ICYmCisgICAgICAgICAgICBib3VuZHModGFyZ2V0LCAwLCBsaW1pdCwgb2Zmc2V0MTYpID09IFRSQUlMX1NVUlJPR0FURV9CT1VOREFSWSkgeworICAgICAgICAgICAgb2Zmc2V0MTYgKys7CisgICAgICAgIH0KKyAgICAgICAgaW50IHNpemUgPSBzdHIubGVuZ3RoKCk7CisgICAgICAgIGlmIChsaW1pdCArIHNpemUgPiB0YXJnZXQubGVuZ3RoKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKG9mZnNldDE2ICsgc2l6ZSk7CisgICAgICAgIH0KKyAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0YXJnZXQsIG9mZnNldDE2LCB0YXJnZXQsIG9mZnNldDE2ICsgc2l6ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICBsaW1pdCAtIG9mZnNldDE2KTsKKyAgICAgICAgdGFyZ2V0W29mZnNldDE2XSA9IHN0ci5jaGFyQXQoMCk7CisgICAgICAgIGlmIChzaXplID09IDIpIHsKKyAgICAgICAgICAgIHRhcmdldFtvZmZzZXQxNiArIDFdID0gc3RyLmNoYXJBdCgxKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbGltaXQgKyBzaXplOworICAgIH0KKworICAgIC8qKgorICAgICogUmVtb3ZlcyB0aGUgY29kZXBvaW50IGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gaW4gdGhpcyB0YXJnZXQgCisgICAgKiAoc2hvcnRlbmluZyB0YXJnZXQgYnkgMSBjaGFyYWN0ZXIgaWYgdGhlIGNvZGVwb2ludCBpcyBhIAorICAgICogbm9uLXN1cHBsZW1lbnRhcnksIDIgb3RoZXJ3aXNlKS4KKyAgICAqIEBwYXJhbSB0YXJnZXQgc3RyaW5nIGJ1ZmZlciB0byByZW1vdmUgY29kZXBvaW50IGZyb20KKyAgICAqIEBwYXJhbSBvZmZzZXQxNiBvZmZzZXQgd2hpY2ggdGhlIGNvZGVwb2ludCB3aWxsIGJlIHJlbW92ZWQKKyAgICAqIEByZXR1cm4gYSByZWZlcmVuY2UgdG8gdGFyZ2V0CisgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gdGhyb3duIGlmIG9mZnNldDE2IGlzIGludmFsaWQuCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBkZWxldGUoU3RyaW5nQnVmZmVyIHRhcmdldCwgaW50IG9mZnNldDE2KQorICAgIHsKKyAgICAgICAgaW50IGNvdW50ID0gMTsKKyAgICAgICAgc3dpdGNoIChib3VuZHModGFyZ2V0LCBvZmZzZXQxNikpIHsKKyAgICAgICAgICAgIGNhc2UgTEVBRF9TVVJST0dBVEVfQk9VTkRBUlk6IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFRSQUlMX1NVUlJPR0FURV9CT1VOREFSWTogCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQxNiAtLTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgdGFyZ2V0LmRlbGV0ZShvZmZzZXQxNiwgb2Zmc2V0MTYgKyBjb3VudCk7CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorCisgICAgLyoqCisgICAgKiBSZW1vdmVzIHRoZSBjb2RlcG9pbnQgYXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvbiBpbiB0aGlzIHRhcmdldCAKKyAgICAqIChzaG9ydGVuaW5nIHRhcmdldCBieSAxIGNoYXJhY3RlciBpZiB0aGUgY29kZXBvaW50IGlzIGEgCisgICAgKiBub24tc3VwcGxlbWVudGFyeSwgMiBvdGhlcndpc2UpLgorICAgICogQHBhcmFtIHRhcmdldCBzdHJpbmcgYnVmZmVyIHRvIHJlbW92ZSBjb2RlcG9pbnQgZnJvbQorICAgICogQHBhcmFtIGxpbWl0IGVuZCBpbmRleCBvZiB0aGUgY2hhciBhcnJheSwgbGltaXQgPD0gdGFyZ2V0Lmxlbmd0aAorICAgICogQHBhcmFtIG9mZnNldDE2IG9mZnNldCB3aGljaCB0aGUgY29kZXBvaW50IHdpbGwgYmUgcmVtb3ZlZAorICAgICogQHJldHVybiBhIG5ldyBsaW1pdCBzaXplCisgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gdGhyb3duIGlmIG9mZnNldDE2IGlzIGludmFsaWQuCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBkZWxldGUoY2hhciB0YXJnZXRbXSwgaW50IGxpbWl0LCBpbnQgb2Zmc2V0MTYpCisgICAgeworICAgICAgICBpbnQgY291bnQgPSAxOworICAgICAgICBzd2l0Y2ggKGJvdW5kcyh0YXJnZXQsIDAsIGxpbWl0LCBvZmZzZXQxNikpIHsKKyAgICAgICAgICAgIGNhc2UgTEVBRF9TVVJST0dBVEVfQk9VTkRBUlk6IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFRSQUlMX1NVUlJPR0FURV9CT1VOREFSWTogCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQxNiAtLTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0YXJnZXQsIG9mZnNldDE2ICsgY291bnQsIHRhcmdldCwgb2Zmc2V0MTYsIAorICAgICAgICAgICAgICAgICAgICAgICAgbGltaXQgLSAob2Zmc2V0MTYgKyBjb3VudCkpOworICAgICAgICB0YXJnZXRbbGltaXQgLSBjb3VudF0gPSAwOworICAgICAgICByZXR1cm4gbGltaXQgLSBjb3VudDsKKyAgICB9CisgICAgICAKKyAgICAvKioKKyAgICAqIFJldHVybnMgdGhlIGluZGV4IHdpdGhpbiB0aGUgYXJndW1lbnQgVVRGMTYgZm9ybWF0IFVuaWNvZGUgc3RyaW5nIG9mIAorICAgICogdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgdGhlIGFyZ3VtZW50IGNvZGVwb2ludC4gSS5lLiwgdGhlIHNtYWxsZXN0IAorICAgICogaW5kZXggPGNvZGU+aTwvY29kZT4gc3VjaCB0aGF0IDxjb2RlPlVURjE2LmNoYXJBdChzb3VyY2UsIGkpID09IGNoYXIzMjwvY29kZT4gaXMgdHJ1ZS4gCisgICAgKiA8cD5JZiBubyBzdWNoIGNoYXJhY3RlciBvY2N1cnMgaW4gdGhpcyBzdHJpbmcsIHRoZW4gLTEgaXMgcmV0dXJuZWQuPC9wPiAKKyAgICAqIDxwPgorICAgICogRXhhbXBsZXM6PGJyPgorICAgICogVVRGMTYuaW5kZXhPZigiYWJjIiwgJ2EnKSByZXR1cm5zIDA8YnI+CisgICAgKiBVVEYxNi5pbmRleE9mKCJhYmNcdWQ4MDBcdWRjMDAiLCAweDEwMDAwKSByZXR1cm5zIDM8YnI+CisgICAgKiBVVEYxNi5pbmRleE9mKCJhYmNcdWQ4MDBcdWRjMDAiLCAweGQ4MDApIHJldHVybnMgLTE8YnI+CisgICAgKiA8L3A+CisgICAgKiBOb3RlIHRoaXMgbWV0aG9kIGlzIHByb3ZpZGVkIGFzIHN1cHBvcnQgdG8gamRrIDEuMywgd2hpY2ggZG9lcyBub3QgCisgICAgKiBzdXBwb3J0IHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyB0byBpdHMgZnVsbGVzdC4KKyAgICAqIEBwYXJhbSBzb3VyY2UgVVRGMTYgZm9ybWF0IFVuaWNvZGUgc3RyaW5nIHRoYXQgd2lsbCBiZSBzZWFyY2hlZAorICAgICogQHBhcmFtIGNoYXIzMiBjb2RlcG9pbnQgdG8gc2VhcmNoIGZvciAKKyAgICAqIEByZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIHRoZSBjb2RlcG9pbnQgaW4gdGhlIAorICAgICogICAgICAgICBhcmd1bWVudCBVbmljb2RlIHN0cmluZywgb3IgLTEgaWYgdGhlIGNvZGVwb2ludCBkb2VzIG5vdCBvY2N1ci4KKyAgICAqIEBkcmFmdCBzaW5jZSByZWxlYXNlIDIuMQorICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgaW5kZXhPZihTdHJpbmcgc291cmNlLCBpbnQgY2hhcjMyKSAgCisgICAgeworICAgICAgICBpZiAoY2hhcjMyIDwgQ09ERVBPSU5UX01JTl9WQUxVRSB8fCAKKyAgICAgICAgICAgIGNoYXIzMiA+IENPREVQT0lOVF9NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFyZ3VtZW50IGNoYXIzMiBpcyBub3QgYSB2YWxpZCBjb2RlcG9pbnQiKTsKKyAgICAgICAgfQorICAgICAgICAvLyBub24tc3Vycm9nYXRlIGJtcAorICAgICAgICBpZiAoY2hhcjMyIDwgTEVBRF9TVVJST0dBVEVfTUlOX1ZBTFVFIHx8CisgICAgICAgICAgICAoY2hhcjMyID4gVFJBSUxfU1VSUk9HQVRFX01BWF9WQUxVRSAmJiAKKyAgICAgICAgICAgICBjaGFyMzIgPCBTVVBQTEVNRU5UQVJZX01JTl9WQUxVRSkpIHsKKyAgICAgICAgICAgIHJldHVybiBzb3VyY2UuaW5kZXhPZigoY2hhciljaGFyMzIpOworICAgICAgICB9CisgICAgICAgIC8vIHN1cnJvZ2F0ZQorICAgICAgICBpZiAoY2hhcjMyIDwgU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUpIHsKKyAgICAgICAgICAgIGludCByZXN1bHQgPSBzb3VyY2UuaW5kZXhPZigoY2hhciljaGFyMzIpOworICAgICAgICAgICAgaWYgKHJlc3VsdCA+PSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKGlzTGVhZFN1cnJvZ2F0ZSgoY2hhciljaGFyMzIpICYmIAorICAgICAgICAgICAgICAgICAgICAocmVzdWx0IDwgc291cmNlLmxlbmd0aCgpIC0gMSkgJiYgCisgICAgICAgICAgICAgICAgICAgIGlzVHJhaWxTdXJyb2dhdGUoc291cmNlLmNoYXJBdChyZXN1bHQgKyAxKSkpIHsgCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbmRleE9mKHNvdXJjZSwgY2hhcjMyLCByZXN1bHQgKyAxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gdHJhaWwgc3Vycm9nYXRlCisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA+IDAgJiYgCisgICAgICAgICAgICAgICAgICAgIGlzTGVhZFN1cnJvZ2F0ZShzb3VyY2UuY2hhckF0KHJlc3VsdCAtIDEpKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW5kZXhPZihzb3VyY2UsIGNoYXIzMiwgcmVzdWx0ICsgMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgLy8gc3VwcGxlbWVudGFyeQorICAgICAgICBTdHJpbmcgY2hhcjMyc3RyID0gdG9TdHJpbmcoY2hhcjMyKTsKKyAgICAgICAgcmV0dXJuIHNvdXJjZS5pbmRleE9mKGNoYXIzMnN0cik7CisgICAgfQorICAgICAKKyAgICAvKioKKyAgICAqIFJldHVybnMgdGhlIGluZGV4IHdpdGhpbiB0aGUgYXJndW1lbnQgVVRGMTYgZm9ybWF0IFVuaWNvZGUgc3RyaW5nIG9mIAorICAgICogdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgdGhlIGFyZ3VtZW50IHN0cmluZyBzdHIuIFRoaXMgbWV0aG9kIGlzIAorICAgICogaW1wbGVtZW50ZWQgYmFzZWQgb24gY29kZXBvaW50cywgaGVuY2UgYSAibGVhZCBzdXJyb2dhdGUgY2hhcmFjdGVyICsKKyAgICAqIHRyYWlsIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIiIGlzIHRyZWF0ZWQgYXMgb25lIGVudGl0eS5lCisgICAgKiBIZW5jZSBpZiB0aGUgc3RyIHN0YXJ0cyB3aXRoIHRyYWlsIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIgYXQgaW5kZXggMCwgYSAKKyAgICAqIHNvdXJjZSB3aXRoIGEgbGVhZGluZyBhIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIgYmVmb3JlIHN0ciBmb3VuZCBhdCBpbiAKKyAgICAqIHNvdXJjZSB3aWxsIG5vdCBoYXZlIGEgdmFsaWQgbWF0Y2guIFZpY2UgdmVyc2EgZm9yIGxlYWQgc3Vycm9nYXRlcyAKKyAgICAqIHRoYXQgZW5kcyBzdHIuCisgICAgKiBTZWUgZXhhbXBsZSBiZWxvdy4KKyAgICAqIDxwPklmIG5vIHN1Y2ggc3RyaW5nIHN0ciBvY2N1cnMgaW4gdGhpcyBzb3VyY2UsIHRoZW4gLTEgaXMgcmV0dXJuZWQuCisgICAgKiA8L3A+IDxwPgorICAgICogRXhhbXBsZXM6PGJyPgorICAgICogVVRGMTYuaW5kZXhPZigiYWJjIiwgImFiIikgcmV0dXJucyAwPGJyPgorICAgICogVVRGMTYuaW5kZXhPZigiYWJjXHVkODAwXHVkYzAwIiwgIlx1ZDgwMFx1ZGMwMCIpIHJldHVybnMgMzxicj4KKyAgICAqIFVURjE2LmluZGV4T2YoImFiY1x1ZDgwMFx1ZGMwMCIsICJcdWQ4MDAiKSByZXR1cm5zIC0xPGJyPgorICAgICogPC9wPgorICAgICogTm90ZSB0aGlzIG1ldGhvZCBpcyBwcm92aWRlZCBhcyBzdXBwb3J0IHRvIGpkayAxLjMsIHdoaWNoIGRvZXMgbm90IAorICAgICogc3VwcG9ydCBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMgdG8gaXRzIGZ1bGxlc3QuCisgICAgKiBAcGFyYW0gc291cmNlIFVURjE2IGZvcm1hdCBVbmljb2RlIHN0cmluZyB0aGF0IHdpbGwgYmUgc2VhcmNoZWQKKyAgICAqIEBwYXJhbSBzdHIgVVRGMTYgZm9ybWF0IFVuaWNvZGUgc3RyaW5nIHRvIHNlYXJjaCBmb3IKKyAgICAqIEByZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIHRoZSBjb2RlcG9pbnQgaW4gdGhlIAorICAgICogICAgICAgICBhcmd1bWVudCBVbmljb2RlIHN0cmluZywgb3IgLTEgaWYgdGhlIGNvZGVwb2ludCBkb2VzIG5vdCBvY2N1ci4KKyAgICAqIEBkcmFmdCBzaW5jZSByZWxlYXNlIDIuMQorICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgaW5kZXhPZihTdHJpbmcgc291cmNlLCBTdHJpbmcgc3RyKSAgCisgICAgeworICAgICAgICBpbnQgc3RyTGVuZ3RoID0gc3RyLmxlbmd0aCgpOworICAgICAgICAvLyBub24tc3Vycm9nYXRlIGVuZHMKKyAgICAgICAgaWYgKCFpc1RyYWlsU3Vycm9nYXRlKHN0ci5jaGFyQXQoMCkpICYmIAorICAgICAgICAgICAgIWlzTGVhZFN1cnJvZ2F0ZShzdHIuY2hhckF0KHN0ckxlbmd0aCAtIDEpKSkgeworICAgICAgICAgICAgcmV0dXJuIHNvdXJjZS5pbmRleE9mKHN0cik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCByZXN1bHQgICAgPSBzb3VyY2UuaW5kZXhPZihzdHIpOworICAgICAgICBpbnQgcmVzdWx0RW5kID0gcmVzdWx0ICsgc3RyTGVuZ3RoOworICAgICAgICBpZiAocmVzdWx0ID49IDApIHsKKyAgICAgICAgICAgIC8vIGNoZWNrIGxhc3QgY2hhcmFjdGVyCisgICAgICAgICAgICBpZiAoaXNMZWFkU3Vycm9nYXRlKHN0ci5jaGFyQXQoc3RyTGVuZ3RoIC0gMSkpICYmIAorICAgICAgICAgICAgICAgIChyZXN1bHQgPCBzb3VyY2UubGVuZ3RoKCkgLSAxKSAmJiAKKyAgICAgICAgICAgICAgICBpc1RyYWlsU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0RW5kICsgMSkpKSB7IAorICAgICAgICAgICAgICAgIHJldHVybiBpbmRleE9mKHNvdXJjZSwgc3RyLCByZXN1bHRFbmQgKyAxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGNoZWNrIGZpcnN0IGNoYXJhY3RlciB3aGljaCBpcyBhIHRyYWlsIHN1cnJvZ2F0ZQorICAgICAgICAgICAgaWYgKGlzVHJhaWxTdXJyb2dhdGUoc3RyLmNoYXJBdCgwKSkgJiYgcmVzdWx0ID4gMCAmJiAKKyAgICAgICAgICAgICAgICBpc0xlYWRTdXJyb2dhdGUoc291cmNlLmNoYXJBdChyZXN1bHQgLSAxKSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaW5kZXhPZihzb3VyY2UsIHN0ciwgcmVzdWx0RW5kICsgMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogUmV0dXJucyB0aGUgaW5kZXggd2l0aGluIHRoZSBhcmd1bWVudCBVVEYxNiBmb3JtYXQgVW5pY29kZSBzdHJpbmcgb2YgCisgICAgKiB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiB0aGUgYXJndW1lbnQgY29kZXBvaW50LiBJLmUuLCB0aGUgc21hbGxlc3QgCisgICAgKiBpbmRleCBpIHN1Y2ggdGhhdDogPGJyPgorICAgICogKFVURjE2LmNoYXJBdChzb3VyY2UsIGkpID09IGNoYXIzMiAmJiBpID49IGZyb21JbmRleCkgaXMgdHJ1ZS4gCisgICAgKiA8cD5JZiBubyBzdWNoIGNoYXJhY3RlciBvY2N1cnMgaW4gdGhpcyBzdHJpbmcsIHRoZW4gLTEgaXMgcmV0dXJuZWQuPC9wPiAKKyAgICAqIDxwPgorICAgICogRXhhbXBsZXM6PGJyPgorICAgICogVVRGMTYuaW5kZXhPZigiYWJjIiwgJ2EnLCAxKSByZXR1cm5zIC0xPGJyPgorICAgICogVVRGMTYuaW5kZXhPZigiYWJjXHVkODAwXHVkYzAwIiwgMHgxMDAwMCwgMSkgcmV0dXJucyAzPGJyPgorICAgICogVVRGMTYuaW5kZXhPZigiYWJjXHVkODAwXHVkYzAwIiwgMHhkODAwLCAxKSByZXR1cm5zIC0xPGJyPgorICAgICogPC9wPgorICAgICogTm90ZSB0aGlzIG1ldGhvZCBpcyBwcm92aWRlZCBhcyBzdXBwb3J0IHRvIGpkayAxLjMsIHdoaWNoIGRvZXMgbm90IAorICAgICogc3VwcG9ydCBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMgdG8gaXRzIGZ1bGxlc3QuCisgICAgKiBAcGFyYW0gc291cmNlIFVURjE2IGZvcm1hdCBVbmljb2RlIHN0cmluZyB0aGF0IHdpbGwgYmUgc2VhcmNoZWQKKyAgICAqIEBwYXJhbSBjaGFyMzIgY29kZXBvaW50IHRvIHNlYXJjaCBmb3IgCisgICAgKiBAcGFyYW0gZnJvbUluZGV4IHRoZSBpbmRleCB0byBzdGFydCB0aGUgc2VhcmNoIGZyb20uIAorICAgICogQHJldHVybiB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgdGhlIGNvZGVwb2ludCBpbiB0aGUgCisgICAgKiAgICAgICAgIGFyZ3VtZW50IFVuaWNvZGUgc3RyaW5nIGF0IG9yIGFmdGVyIGZyb21JbmRleCwgb3IgLTEgaWYgdGhlIAorICAgICogICAgICAgICBjb2RlcG9pbnQgZG9lcyBub3Qgb2NjdXIuCisgICAgKiBAZHJhZnQgc2luY2UgcmVsZWFzZSAyLjEKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGluZGV4T2YoU3RyaW5nIHNvdXJjZSwgaW50IGNoYXIzMiwgaW50IGZyb21JbmRleCkgCisgICAgeworICAgICAgICBpZiAoY2hhcjMyIDwgQ09ERVBPSU5UX01JTl9WQUxVRSB8fCBjaGFyMzIgPiBDT0RFUE9JTlRfTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBcmd1bWVudCBjaGFyMzIgaXMgbm90IGEgdmFsaWQgY29kZXBvaW50Iik7CisgICAgICAgIH0KKyAgICAgICAgLy8gbm9uLXN1cnJvZ2F0ZSBibXAKKyAgICAgICAgaWYgKGNoYXIzMiA8IExFQURfU1VSUk9HQVRFX01JTl9WQUxVRSB8fAorICAgICAgICAgICAgKGNoYXIzMiA+IFRSQUlMX1NVUlJPR0FURV9NQVhfVkFMVUUgJiYgCisgICAgICAgICAgICAgY2hhcjMyIDwgU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUpKSB7CisgICAgICAgICAgICByZXR1cm4gc291cmNlLmluZGV4T2YoKGNoYXIpY2hhcjMyLCBmcm9tSW5kZXgpOworICAgICAgICB9CisgICAgICAgIC8vIHN1cnJvZ2F0ZQorICAgICAgICBpZiAoY2hhcjMyIDwgU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUpIHsKKyAgICAgICAgICAgIGludCByZXN1bHQgPSBzb3VyY2UuaW5kZXhPZigoY2hhciljaGFyMzIsIGZyb21JbmRleCk7CisgICAgICAgICAgICBpZiAocmVzdWx0ID49IDApIHsKKyAgICAgICAgICAgICAgICBpZiAoaXNMZWFkU3Vycm9nYXRlKChjaGFyKWNoYXIzMikgJiYgCisgICAgICAgICAgICAgICAgICAgIChyZXN1bHQgPCBzb3VyY2UubGVuZ3RoKCkgLSAxKSAmJiAKKyAgICAgICAgICAgICAgICAgICAgaXNUcmFpbFN1cnJvZ2F0ZShzb3VyY2UuY2hhckF0KHJlc3VsdCArIDEpKSkgeyAKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGluZGV4T2Yoc291cmNlLCBjaGFyMzIsIHJlc3VsdCArIDEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyB0cmFpbCBzdXJyb2dhdGUKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID4gMCAmJiAKKyAgICAgICAgICAgICAgICAgICAgaXNMZWFkU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0IC0gMSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbmRleE9mKHNvdXJjZSwgY2hhcjMyLCByZXN1bHQgKyAxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICAvLyBzdXBwbGVtZW50YXJ5CisgICAgICAgIFN0cmluZyBjaGFyMzJzdHIgPSB0b1N0cmluZyhjaGFyMzIpOworICAgICAgICByZXR1cm4gc291cmNlLmluZGV4T2YoY2hhcjMyc3RyLCBmcm9tSW5kZXgpOworICAgIH0KKworICAgIC8qKgorICAgICogUmV0dXJucyB0aGUgaW5kZXggd2l0aGluIHRoZSBhcmd1bWVudCBVVEYxNiBmb3JtYXQgVW5pY29kZSBzdHJpbmcgb2YgCisgICAgKiB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiB0aGUgYXJndW1lbnQgc3RyaW5nIHN0ci4gVGhpcyBtZXRob2QgaXMgCisgICAgKiBpbXBsZW1lbnRlZCBiYXNlZCBvbiBjb2RlcG9pbnRzLCBoZW5jZSBhICJsZWFkIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIgKworICAgICogdHJhaWwgc3Vycm9nYXRlIGNoYXJhY3RlciIgaXMgdHJlYXRlZCBhcyBvbmUgZW50aXR5LmUKKyAgICAqIEhlbmNlIGlmIHRoZSBzdHIgc3RhcnRzIHdpdGggdHJhaWwgc3Vycm9nYXRlIGNoYXJhY3RlciBhdCBpbmRleCAwLCBhIAorICAgICogc291cmNlIHdpdGggYSBsZWFkaW5nIGEgc3Vycm9nYXRlIGNoYXJhY3RlciBiZWZvcmUgc3RyIGZvdW5kIGF0IGluIAorICAgICogc291cmNlIHdpbGwgbm90IGhhdmUgYSB2YWxpZCBtYXRjaC4gVmljZSB2ZXJzYSBmb3IgbGVhZCBzdXJyb2dhdGVzIAorICAgICogdGhhdCBlbmRzIHN0ci4KKyAgICAqIFNlZSBleGFtcGxlIGJlbG93LgorICAgICogPHA+SWYgbm8gc3VjaCBzdHJpbmcgc3RyIG9jY3VycyBpbiB0aGlzIHNvdXJjZSwgdGhlbiAtMSBpcyByZXR1cm5lZC4KKyAgICAqIDwvcD4gPHA+CisgICAgKiBFeGFtcGxlczo8YnI+CisgICAgKiBVVEYxNi5pbmRleE9mKCJhYmMiLCAiYWIiLCAwKSByZXR1cm5zIDA8YnI+CisgICAgKiBVVEYxNi5pbmRleE9mKCJhYmNcdWQ4MDBcdWRjMDAiLCAiXHVkODAwXHVkYzAwIiwgMCkgcmV0dXJucyAzPGJyPgorICAgICogVVRGMTYuaW5kZXhPZigiYWJjXHVkODAwXHVkYzAwIiwgIlx1ZDgwMFx1ZGMwMCIsIDIpIHJldHVybnMgMzxicj4KKyAgICAqIFVURjE2LmluZGV4T2YoImFiY1x1ZDgwMFx1ZGMwMCIsICJcdWQ4MDAiLCAwKSByZXR1cm5zIC0xPGJyPgorICAgICogPC9wPgorICAgICogTm90ZSB0aGlzIG1ldGhvZCBpcyBwcm92aWRlZCBhcyBzdXBwb3J0IHRvIGpkayAxLjMsIHdoaWNoIGRvZXMgbm90IAorICAgICogc3VwcG9ydCBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMgdG8gaXRzIGZ1bGxlc3QuCisgICAgKiBAcGFyYW0gc291cmNlIFVURjE2IGZvcm1hdCBVbmljb2RlIHN0cmluZyB0aGF0IHdpbGwgYmUgc2VhcmNoZWQKKyAgICAqIEBwYXJhbSBzdHIgVVRGMTYgZm9ybWF0IFVuaWNvZGUgc3RyaW5nIHRvIHNlYXJjaCBmb3IKKyAgICAqIEBwYXJhbSBmcm9tSW5kZXggdGhlIGluZGV4IHRvIHN0YXJ0IHRoZSBzZWFyY2ggZnJvbS4gCisgICAgKiBAcmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiB0aGUgY29kZXBvaW50IGluIHRoZSAKKyAgICAqICAgICAgICAgYXJndW1lbnQgVW5pY29kZSBzdHJpbmcsIG9yIC0xIGlmIHRoZSBjb2RlcG9pbnQgZG9lcyBub3Qgb2NjdXIuCisgICAgKiBAZHJhZnQgc2luY2UgcmVsZWFzZSAyLjEKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGluZGV4T2YoU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHN0ciwgaW50IGZyb21JbmRleCkgIAorICAgIHsKKyAgICAgICAgaW50IHN0ckxlbmd0aCA9IHN0ci5sZW5ndGgoKTsKKyAgICAgICAgLy8gbm9uLXN1cnJvZ2F0ZSBlbmRzCisgICAgICAgIGlmICghaXNUcmFpbFN1cnJvZ2F0ZShzdHIuY2hhckF0KDApKSAmJiAKKyAgICAgICAgICAgICFpc0xlYWRTdXJyb2dhdGUoc3RyLmNoYXJBdChzdHJMZW5ndGggLSAxKSkpIHsKKyAgICAgICAgICAgIHJldHVybiBzb3VyY2UuaW5kZXhPZihzdHIsIGZyb21JbmRleCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCByZXN1bHQgICAgPSBzb3VyY2UuaW5kZXhPZihzdHIsIGZyb21JbmRleCk7CisgICAgICAgIGludCByZXN1bHRFbmQgPSByZXN1bHQgKyBzdHJMZW5ndGg7CisgICAgICAgIGlmIChyZXN1bHQgPj0gMCkgeworICAgICAgICAgICAgLy8gY2hlY2sgbGFzdCBjaGFyYWN0ZXIKKyAgICAgICAgICAgIGlmIChpc0xlYWRTdXJyb2dhdGUoc3RyLmNoYXJBdChzdHJMZW5ndGggLSAxKSkgJiYgCisgICAgICAgICAgICAgICAgKHJlc3VsdCA8IHNvdXJjZS5sZW5ndGgoKSAtIDEpICYmIAorICAgICAgICAgICAgICAgIGlzVHJhaWxTdXJyb2dhdGUoc291cmNlLmNoYXJBdChyZXN1bHRFbmQpKSkgeyAKKyAgICAgICAgICAgICAgICByZXR1cm4gaW5kZXhPZihzb3VyY2UsIHN0ciwgcmVzdWx0RW5kICsgMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBjaGVjayBmaXJzdCBjaGFyYWN0ZXIgd2hpY2ggaXMgYSB0cmFpbCBzdXJyb2dhdGUKKyAgICAgICAgICAgIGlmIChpc1RyYWlsU3Vycm9nYXRlKHN0ci5jaGFyQXQoMCkpICYmIHJlc3VsdCA+IDAgJiYgCisgICAgICAgICAgICAgICAgaXNMZWFkU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0IC0gMSkpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGluZGV4T2Yoc291cmNlLCBzdHIsIHJlc3VsdEVuZCArIDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIFJldHVybnMgdGhlIGluZGV4IHdpdGhpbiB0aGUgYXJndW1lbnQgVVRGMTYgZm9ybWF0IFVuaWNvZGUgc3RyaW5nIG9mIAorICAgICogdGhlIGxhc3Qgb2NjdXJyZW5jZSBvZiB0aGUgYXJndW1lbnQgY29kZXBvaW50LiBJLmUuLCB0aGUgaW5kZXggcmV0dXJuZWQgCisgICAgKiBpcyB0aGUgbGFyZ2VzdCB2YWx1ZSBpIHN1Y2ggdGhhdDogVVRGMTYuY2hhckF0KHNvdXJjZSwgaSkgPT0gY2hhcjMyCisgICAgKiBpcyB0cnVlLiAKKyAgICAqIDxwPgorICAgICogRXhhbXBsZXM6PGJyPgorICAgICogVVRGMTYubGFzdEluZGV4T2YoImFiYyIsICdhJykgcmV0dXJucyAwPGJyPgorICAgICogVVRGMTYubGFzdEluZGV4T2YoImFiY1x1ZDgwMFx1ZGMwMCIsIDB4MTAwMDApIHJldHVybnMgMzxicj4KKyAgICAqIFVURjE2Lmxhc3RJbmRleE9mKCJhYmNcdWQ4MDBcdWRjMDAiLCAweGQ4MDApIHJldHVybnMgLTE8YnI+CisgICAgKiA8L3A+CisgICAgKiA8cD5zb3VyY2UgaXMgc2VhcmNoZWQgYmFja3dhcmRzIHN0YXJ0aW5nIGF0IHRoZSBsYXN0IGNoYXJhY3Rlci48L3A+IAorICAgICogTm90ZSB0aGlzIG1ldGhvZCBpcyBwcm92aWRlZCBhcyBzdXBwb3J0IHRvIGpkayAxLjMsIHdoaWNoIGRvZXMgbm90IAorICAgICogc3VwcG9ydCBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMgdG8gaXRzIGZ1bGxlc3QuCisgICAgKiBAcGFyYW0gc291cmNlIFVURjE2IGZvcm1hdCBVbmljb2RlIHN0cmluZyB0aGF0IHdpbGwgYmUgc2VhcmNoZWQKKyAgICAqIEBwYXJhbSBjaGFyMzIgY29kZXBvaW50IHRvIHNlYXJjaCBmb3IgCisgICAgKiBAcmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgbGFzdCBvY2N1cnJlbmNlIG9mIHRoZSBjb2RlcG9pbnQgaW4gc291cmNlLCAKKyAgICAqICAgICAgICAgb3IgLTEgaWYgdGhlIGNvZGVwb2ludCBkb2VzIG5vdCBvY2N1ci4KKyAgICAqIEBkcmFmdCBzaW5jZSByZWxlYXNlIDIuMQorICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgbGFzdEluZGV4T2YoU3RyaW5nIHNvdXJjZSwgaW50IGNoYXIzMikgIAorICAgIHsKKyAgICAgICAgaWYgKGNoYXIzMiA8IENPREVQT0lOVF9NSU5fVkFMVUUgfHwgY2hhcjMyID4gQ09ERVBPSU5UX01BWF9WQUxVRSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQXJndW1lbnQgY2hhcjMyIGlzIG5vdCBhIHZhbGlkIGNvZGVwb2ludCIpOworICAgICAgICB9CisgICAgICAgIC8vIG5vbi1zdXJyb2dhdGUgYm1wCisgICAgICAgIGlmIChjaGFyMzIgPCBMRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUgfHwKKyAgICAgICAgICAgIChjaGFyMzIgPiBUUkFJTF9TVVJST0dBVEVfTUFYX1ZBTFVFICYmIAorICAgICAgICAgICAgIGNoYXIzMiA8IFNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFKSkgeworICAgICAgICAgICAgcmV0dXJuIHNvdXJjZS5sYXN0SW5kZXhPZigoY2hhciljaGFyMzIpOworICAgICAgICB9CisgICAgICAgIC8vIHN1cnJvZ2F0ZQorICAgICAgICBpZiAoY2hhcjMyIDwgU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUpIHsKKyAgICAgICAgICAgIGludCByZXN1bHQgPSBzb3VyY2UubGFzdEluZGV4T2YoKGNoYXIpY2hhcjMyKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPj0gMCkgeworICAgICAgICAgICAgICAgIGlmIChpc0xlYWRTdXJyb2dhdGUoKGNoYXIpY2hhcjMyKSAmJiAKKyAgICAgICAgICAgICAgICAgICAgKHJlc3VsdCA8IHNvdXJjZS5sZW5ndGgoKSAtIDEpICYmIAorICAgICAgICAgICAgICAgICAgICBpc1RyYWlsU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0ICsgMSkpKSB7IAorICAgICAgICAgICAgICAgICAgICByZXR1cm4gbGFzdEluZGV4T2Yoc291cmNlLCBjaGFyMzIsIHJlc3VsdCAtIDEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyB0cmFpbCBzdXJyb2dhdGUKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID4gMCAmJiAKKyAgICAgICAgICAgICAgICAgICAgaXNMZWFkU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0IC0gMSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBsYXN0SW5kZXhPZihzb3VyY2UsIGNoYXIzMiwgcmVzdWx0IC0gMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgLy8gc3VwcGxlbWVudGFyeQorICAgICAgICBTdHJpbmcgY2hhcjMyc3RyID0gdG9TdHJpbmcoY2hhcjMyKTsKKyAgICAgICAgcmV0dXJuIHNvdXJjZS5sYXN0SW5kZXhPZihjaGFyMzJzdHIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIFJldHVybnMgdGhlIGluZGV4IHdpdGhpbiB0aGUgYXJndW1lbnQgVVRGMTYgZm9ybWF0IFVuaWNvZGUgc3RyaW5nIG9mIAorICAgICogdGhlIGxhc3Qgb2NjdXJyZW5jZSBvZiB0aGUgYXJndW1lbnQgc3RyaW5nIHN0ci4gVGhpcyBtZXRob2QgaXMgCisgICAgKiBpbXBsZW1lbnRlZCBiYXNlZCBvbiBjb2RlcG9pbnRzLCBoZW5jZSBhICJsZWFkIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIgKworICAgICogdHJhaWwgc3Vycm9nYXRlIGNoYXJhY3RlciIgaXMgdHJlYXRlZCBhcyBvbmUgZW50aXR5LmUKKyAgICAqIEhlbmNlIGlmIHRoZSBzdHIgc3RhcnRzIHdpdGggdHJhaWwgc3Vycm9nYXRlIGNoYXJhY3RlciBhdCBpbmRleCAwLCBhIAorICAgICogc291cmNlIHdpdGggYSBsZWFkaW5nIGEgc3Vycm9nYXRlIGNoYXJhY3RlciBiZWZvcmUgc3RyIGZvdW5kIGF0IGluIAorICAgICogc291cmNlIHdpbGwgbm90IGhhdmUgYSB2YWxpZCBtYXRjaC4gVmljZSB2ZXJzYSBmb3IgbGVhZCBzdXJyb2dhdGVzIAorICAgICogdGhhdCBlbmRzIHN0ci4KKyAgICAqIFNlZSBleGFtcGxlIGJlbG93LgorICAgICogPHA+CisgICAgKiBFeGFtcGxlczo8YnI+CisgICAgKiBVVEYxNi5sYXN0SW5kZXhPZigiYWJjIiwgImEiKSByZXR1cm5zIDA8YnI+CisgICAgKiBVVEYxNi5sYXN0SW5kZXhPZigiYWJjXHVkODAwXHVkYzAwIiwgIlx1ZDgwMFx1ZGMwMCIpIHJldHVybnMgMzxicj4KKyAgICAqIFVURjE2Lmxhc3RJbmRleE9mKCJhYmNcdWQ4MDBcdWRjMDAiLCAiXHVkODAwIikgcmV0dXJucyAtMTxicj4KKyAgICAqIDwvcD4KKyAgICAqIDxwPnNvdXJjZSBpcyBzZWFyY2hlZCBiYWNrd2FyZHMgc3RhcnRpbmcgYXQgdGhlIGxhc3QgY2hhcmFjdGVyLjwvcD4gCisgICAgKiBOb3RlIHRoaXMgbWV0aG9kIGlzIHByb3ZpZGVkIGFzIHN1cHBvcnQgdG8gamRrIDEuMywgd2hpY2ggZG9lcyBub3QgCisgICAgKiBzdXBwb3J0IHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyB0byBpdHMgZnVsbGVzdC4KKyAgICAqIEBwYXJhbSBzb3VyY2UgVVRGMTYgZm9ybWF0IFVuaWNvZGUgc3RyaW5nIHRoYXQgd2lsbCBiZSBzZWFyY2hlZAorICAgICogQHBhcmFtIHN0ciBVVEYxNiBmb3JtYXQgVW5pY29kZSBzdHJpbmcgdG8gc2VhcmNoIGZvciAKKyAgICAqIEByZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBsYXN0IG9jY3VycmVuY2Ugb2YgdGhlIGNvZGVwb2ludCBpbiBzb3VyY2UsIAorICAgICogICAgICAgICBvciAtMSBpZiB0aGUgY29kZXBvaW50IGRvZXMgbm90IG9jY3VyLgorICAgICogQGRyYWZ0IHNpbmNlIHJlbGVhc2UgMi4xCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBsYXN0SW5kZXhPZihTdHJpbmcgc291cmNlLCBTdHJpbmcgc3RyKSAgCisgICAgeworICAgICAgICBpbnQgc3RyTGVuZ3RoID0gc3RyLmxlbmd0aCgpOworICAgICAgICAvLyBub24tc3Vycm9nYXRlIGVuZHMKKyAgICAgICAgaWYgKCFpc1RyYWlsU3Vycm9nYXRlKHN0ci5jaGFyQXQoMCkpICYmIAorICAgICAgICAgICAgIWlzTGVhZFN1cnJvZ2F0ZShzdHIuY2hhckF0KHN0ckxlbmd0aCAtIDEpKSkgeworICAgICAgICAgICAgcmV0dXJuIHNvdXJjZS5sYXN0SW5kZXhPZihzdHIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgcmVzdWx0ICAgID0gc291cmNlLmxhc3RJbmRleE9mKHN0cik7CisgICAgICAgIGlmIChyZXN1bHQgPj0gMCkgeworICAgICAgICAgICAgLy8gY2hlY2sgbGFzdCBjaGFyYWN0ZXIKKyAgICAgICAgICAgIGlmIChpc0xlYWRTdXJyb2dhdGUoc3RyLmNoYXJBdChzdHJMZW5ndGggLSAxKSkgJiYgCisgICAgICAgICAgICAgICAgKHJlc3VsdCA8IHNvdXJjZS5sZW5ndGgoKSAtIDEpICYmIAorICAgICAgICAgICAgICAgIGlzVHJhaWxTdXJyb2dhdGUoc291cmNlLmNoYXJBdChyZXN1bHQgKyBzdHJMZW5ndGggKyAxKSkpIHsgCisgICAgICAgICAgICAgICAgcmV0dXJuIGxhc3RJbmRleE9mKHNvdXJjZSwgc3RyLCByZXN1bHQgLSAxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGNoZWNrIGZpcnN0IGNoYXJhY3RlciB3aGljaCBpcyBhIHRyYWlsIHN1cnJvZ2F0ZQorICAgICAgICAgICAgaWYgKGlzVHJhaWxTdXJyb2dhdGUoc3RyLmNoYXJBdCgwKSkgJiYgcmVzdWx0ID4gMCAmJiAKKyAgICAgICAgICAgICAgICBpc0xlYWRTdXJyb2dhdGUoc291cmNlLmNoYXJBdChyZXN1bHQgLSAxKSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbGFzdEluZGV4T2Yoc291cmNlLCBzdHIsIHJlc3VsdCAtIDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIDxwPlJldHVybnMgdGhlIGluZGV4IHdpdGhpbiB0aGUgYXJndW1lbnQgVVRGMTYgZm9ybWF0IFVuaWNvZGUgc3RyaW5nIG9mIAorICAgICogdGhlIGxhc3Qgb2NjdXJyZW5jZSBvZiB0aGUgYXJndW1lbnQgY29kZXBvaW50LCB3aGVyZSB0aGUgcmVzdWx0IGlzIGxlc3MKKyAgICAqIHRoYW4gb3IgZXF1YWxzIHRvIGZyb21JbmRleC48L3A+IAorICAgICogPHA+VGhpcyBtZXRob2QgaXMgaW1wbGVtZW50ZWQgYmFzZWQgb24gY29kZXBvaW50cywgaGVuY2UgYSBzaW5nbGUgCisgICAgKiBzdXJyb2dhdGUgY2hhcmFjdGVyIHdpbGwgbm90IG1hdGNoIGEgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIuPC9wPgorICAgICogPHA+c291cmNlIGlzIHNlYXJjaGVkIGJhY2t3YXJkcyBzdGFydGluZyBhdCB0aGUgbGFzdCBjaGFyYWN0ZXIgc3RhcnRpbmcgCisgICAgKiBhdCB0aGUgc3BlY2lmaWVkIGluZGV4LjwvcD4KKyAgICAqIDxwPgorICAgICogRXhhbXBsZXM6PGJyPgorICAgICogVVRGMTYubGFzdEluZGV4T2YoImFiYyIsICdjJywgMikgcmV0dXJucyAyPGJyPgorICAgICogVVRGMTYubGFzdEluZGV4T2YoImFiYyIsICdjJywgMSkgcmV0dXJucyAtMTxicj4KKyAgICAqIFVURjE2Lmxhc3RJbmRleE9mKCJhYmNcdWQ4MDBcdWRjMDAiLCAweDEwMDAwLCA1KSByZXR1cm5zIDM8YnI+CisgICAgKiBVVEYxNi5sYXN0SW5kZXhPZigiYWJjXHVkODAwXHVkYzAwIiwgMHgxMDAwMCwgMykgcmV0dXJucyAzPGJyPgorICAgICogVVRGMTYubGFzdEluZGV4T2YoImFiY1x1ZDgwMFx1ZGMwMCIsIDB4ZDgwMCkgcmV0dXJucyAtMTxicj4KKyAgICAqIDwvcD4KKyAgICAqIE5vdGUgdGhpcyBtZXRob2QgaXMgcHJvdmlkZWQgYXMgc3VwcG9ydCB0byBqZGsgMS4zLCB3aGljaCBkb2VzIG5vdCAKKyAgICAqIHN1cHBvcnQgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIHRvIGl0cyBmdWxsZXN0LgorICAgICogQHBhcmFtIHNvdXJjZSBVVEYxNiBmb3JtYXQgVW5pY29kZSBzdHJpbmcgdGhhdCB3aWxsIGJlIHNlYXJjaGVkCisgICAgKiBAcGFyYW0gY2hhcjMyIGNvZGVwb2ludCB0byBzZWFyY2ggZm9yIAorICAgICogQHBhcmFtIGZyb21JbmRleCB0aGUgaW5kZXggdG8gc3RhcnQgdGhlIHNlYXJjaCBmcm9tLiBUaGVyZSBpcyBubyAKKyAgICAqICAgICAgICAgICAgICAgICAgcmVzdHJpY3Rpb24gb24gdGhlIHZhbHVlIG9mIGZyb21JbmRleC4gSWYgaXQgaXMgCisgICAgKiAgICAgICAgICAgICAgICAgIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgbGVuZ3RoIG9mIHRoaXMgc3RyaW5nLCAKKyAgICAqICAgICAgICAgICAgICAgICAgaXQgaGFzIHRoZSBzYW1lIGVmZmVjdCBhcyBpZiBpdCB3ZXJlIGVxdWFsIHRvIG9uZSAKKyAgICAqICAgICAgICAgICAgICAgICAgbGVzcyB0aGFuIHRoZSBsZW5ndGggb2YgdGhpcyBzdHJpbmc6IHRoaXMgZW50aXJlIAorICAgICogICAgICAgICAgICAgICAgICBzdHJpbmcgbWF5IGJlIHNlYXJjaGVkLiBJZiBpdCBpcyBuZWdhdGl2ZSwgaXQgaGFzIAorICAgICogICAgICAgICAgICAgICAgICB0aGUgc2FtZSBlZmZlY3QgYXMgaWYgaXQgd2VyZSAtMTogLTEgaXMgcmV0dXJuZWQuIAorICAgICogQHJldHVybiB0aGUgaW5kZXggb2YgdGhlIGxhc3Qgb2NjdXJyZW5jZSBvZiB0aGUgY29kZXBvaW50IGluIHNvdXJjZSwgCisgICAgKiAgICAgICAgIG9yIC0xIGlmIHRoZSBjb2RlcG9pbnQgZG9lcyBub3Qgb2NjdXIuCisgICAgKiBAZHJhZnQgc2luY2UgcmVsZWFzZSAyLjEKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGxhc3RJbmRleE9mKFN0cmluZyBzb3VyY2UsIGludCBjaGFyMzIsIGludCBmcm9tSW5kZXgpCisgICAgeworICAgICAgICBpZiAoY2hhcjMyIDwgQ09ERVBPSU5UX01JTl9WQUxVRSB8fCBjaGFyMzIgPiBDT0RFUE9JTlRfTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBcmd1bWVudCBjaGFyMzIgaXMgbm90IGEgdmFsaWQgY29kZXBvaW50Iik7CisgICAgICAgIH0KKyAgICAgICAgLy8gbm9uLXN1cnJvZ2F0ZSBibXAKKyAgICAgICAgaWYgKGNoYXIzMiA8IExFQURfU1VSUk9HQVRFX01JTl9WQUxVRSB8fAorICAgICAgICAgICAgKGNoYXIzMiA+IFRSQUlMX1NVUlJPR0FURV9NQVhfVkFMVUUgJiYgCisgICAgICAgICAgICAgY2hhcjMyIDwgU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUpKSB7CisgICAgICAgICAgICByZXR1cm4gc291cmNlLmxhc3RJbmRleE9mKChjaGFyKWNoYXIzMiwgZnJvbUluZGV4KTsKKyAgICAgICAgfQorICAgICAgICAvLyBzdXJyb2dhdGUKKyAgICAgICAgaWYgKGNoYXIzMiA8IFNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gc291cmNlLmxhc3RJbmRleE9mKChjaGFyKWNoYXIzMiwgZnJvbUluZGV4KTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPj0gMCkgeworICAgICAgICAgICAgICAgIGlmIChpc0xlYWRTdXJyb2dhdGUoKGNoYXIpY2hhcjMyKSAmJiAKKyAgICAgICAgICAgICAgICAgICAgKHJlc3VsdCA8IHNvdXJjZS5sZW5ndGgoKSAtIDEpICYmIAorICAgICAgICAgICAgICAgICAgICBpc1RyYWlsU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0ICsgMSkpKSB7IAorICAgICAgICAgICAgICAgICAgICByZXR1cm4gbGFzdEluZGV4T2Yoc291cmNlLCBjaGFyMzIsIHJlc3VsdCAtIDEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyB0cmFpbCBzdXJyb2dhdGUKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID4gMCAmJiAKKyAgICAgICAgICAgICAgICAgICAgaXNMZWFkU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0IC0gMSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBsYXN0SW5kZXhPZihzb3VyY2UsIGNoYXIzMiwgcmVzdWx0IC0gMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgLy8gc3VwcGxlbWVudGFyeQorICAgICAgICBTdHJpbmcgY2hhcjMyc3RyID0gdG9TdHJpbmcoY2hhcjMyKTsKKyAgICAgICAgcmV0dXJuIHNvdXJjZS5sYXN0SW5kZXhPZihjaGFyMzJzdHIsIGZyb21JbmRleCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogPHA+UmV0dXJucyB0aGUgaW5kZXggd2l0aGluIHRoZSBhcmd1bWVudCBVVEYxNiBmb3JtYXQgVW5pY29kZSBzdHJpbmcgb2YgCisgICAgKiB0aGUgbGFzdCBvY2N1cnJlbmNlIG9mIHRoZSBhcmd1bWVudCBzdHJpbmcgc3RyLCB3aGVyZSB0aGUgcmVzdWx0IGlzIGxlc3MKKyAgICAqIHRoYW4gb3IgZXF1YWxzIHRvIGZyb21JbmRleC48L3A+IAorICAgICogPHA+VGhpcyBtZXRob2QgaXMgaW1wbGVtZW50ZWQgYmFzZWQgb24gY29kZXBvaW50cywgaGVuY2UgYSAKKyAgICAqICJsZWFkIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIgKyB0cmFpbCBzdXJyb2dhdGUgY2hhcmFjdGVyIiBpcyB0cmVhdGVkIGFzIG9uZSAKKyAgICAqIGVudGl0eS4KKyAgICAqIEhlbmNlIGlmIHRoZSBzdHIgc3RhcnRzIHdpdGggdHJhaWwgc3Vycm9nYXRlIGNoYXJhY3RlciBhdCBpbmRleCAwLCBhIAorICAgICogc291cmNlIHdpdGggYSBsZWFkaW5nIGEgc3Vycm9nYXRlIGNoYXJhY3RlciBiZWZvcmUgc3RyIGZvdW5kIGF0IGluIAorICAgICogc291cmNlIHdpbGwgbm90IGhhdmUgYSB2YWxpZCBtYXRjaC4gVmljZSB2ZXJzYSBmb3IgbGVhZCBzdXJyb2dhdGVzIAorICAgICogdGhhdCBlbmRzIHN0ci4KKyAgICAqIDwvcD4KKyAgICAqIFNlZSBleGFtcGxlIGJlbG93LgorICAgICogPHA+CisgICAgKiBFeGFtcGxlczo8YnI+CisgICAgKiBVVEYxNi5sYXN0SW5kZXhPZigiYWJjIiwgImMiLCAyKSByZXR1cm5zIDI8YnI+CisgICAgKiBVVEYxNi5sYXN0SW5kZXhPZigiYWJjIiwgImMiLCAxKSByZXR1cm5zIC0xPGJyPgorICAgICogVVRGMTYubGFzdEluZGV4T2YoImFiY1x1ZDgwMFx1ZGMwMCIsICJcdWQ4MDBcdWRjMDAiLCA1KSByZXR1cm5zIDM8YnI+CisgICAgKiBVVEYxNi5sYXN0SW5kZXhPZigiYWJjXHVkODAwXHVkYzAwIiwgIlx1ZDgwMFx1ZGMwMCIsIDMpIHJldHVybnMgMzxicj4KKyAgICAqIFVURjE2Lmxhc3RJbmRleE9mKCJhYmNcdWQ4MDBcdWRjMDAiLCAiXHVkODAwIiwgNCkgcmV0dXJucyAtMTxicj4KKyAgICAqIDwvcD4KKyAgICAqIDxwPnNvdXJjZSBpcyBzZWFyY2hlZCBiYWNrd2FyZHMgc3RhcnRpbmcgYXQgdGhlIGxhc3QgY2hhcmFjdGVyLjwvcD4gCisgICAgKiBOb3RlIHRoaXMgbWV0aG9kIGlzIHByb3ZpZGVkIGFzIHN1cHBvcnQgdG8gamRrIDEuMywgd2hpY2ggZG9lcyBub3QgCisgICAgKiBzdXBwb3J0IHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyB0byBpdHMgZnVsbGVzdC4KKyAgICAqIEBwYXJhbSBzb3VyY2UgVVRGMTYgZm9ybWF0IFVuaWNvZGUgc3RyaW5nIHRoYXQgd2lsbCBiZSBzZWFyY2hlZAorICAgICogQHBhcmFtIHN0ciBVVEYxNiBmb3JtYXQgVW5pY29kZSBzdHJpbmcgdG8gc2VhcmNoIGZvciAKKyAgICAqIEBwYXJhbSBmcm9tSW5kZXggdGhlIGluZGV4IHRvIHN0YXJ0IHRoZSBzZWFyY2ggZnJvbS4gVGhlcmUgaXMgbm8gCisgICAgKiAgICAgICAgICAgICAgICAgIHJlc3RyaWN0aW9uIG9uIHRoZSB2YWx1ZSBvZiBmcm9tSW5kZXguIElmIGl0IGlzIAorICAgICogICAgICAgICAgICAgICAgICBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIGxlbmd0aCBvZiB0aGlzIHN0cmluZywgCisgICAgKiAgICAgICAgICAgICAgICAgIGl0IGhhcyB0aGUgc2FtZSBlZmZlY3QgYXMgaWYgaXQgd2VyZSBlcXVhbCB0byBvbmUgCisgICAgKiAgICAgICAgICAgICAgICAgIGxlc3MgdGhhbiB0aGUgbGVuZ3RoIG9mIHRoaXMgc3RyaW5nOiB0aGlzIGVudGlyZSAKKyAgICAqICAgICAgICAgICAgICAgICAgc3RyaW5nIG1heSBiZSBzZWFyY2hlZC4gSWYgaXQgaXMgbmVnYXRpdmUsIGl0IGhhcyAKKyAgICAqICAgICAgICAgICAgICAgICAgdGhlIHNhbWUgZWZmZWN0IGFzIGlmIGl0IHdlcmUgLTE6IC0xIGlzIHJldHVybmVkLiAKKyAgICAqIEByZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBsYXN0IG9jY3VycmVuY2Ugb2YgdGhlIGNvZGVwb2ludCBpbiBzb3VyY2UsIAorICAgICogICAgICAgICBvciAtMSBpZiB0aGUgY29kZXBvaW50IGRvZXMgbm90IG9jY3VyLgorICAgICogQGRyYWZ0IHNpbmNlIHJlbGVhc2UgMi4xCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBsYXN0SW5kZXhPZihTdHJpbmcgc291cmNlLCBTdHJpbmcgc3RyLCBpbnQgZnJvbUluZGV4KSAgCisgICAgeworICAgICAgICBpbnQgc3RyTGVuZ3RoID0gc3RyLmxlbmd0aCgpOworICAgICAgICAvLyBub24tc3Vycm9nYXRlIGVuZHMKKyAgICAgICAgaWYgKCFpc1RyYWlsU3Vycm9nYXRlKHN0ci5jaGFyQXQoMCkpICYmIAorICAgICAgICAgICAgIWlzTGVhZFN1cnJvZ2F0ZShzdHIuY2hhckF0KHN0ckxlbmd0aCAtIDEpKSkgeworICAgICAgICAgICAgcmV0dXJuIHNvdXJjZS5sYXN0SW5kZXhPZihzdHIsIGZyb21JbmRleCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCByZXN1bHQgICAgPSBzb3VyY2UubGFzdEluZGV4T2Yoc3RyLCBmcm9tSW5kZXgpOworICAgICAgICBpZiAocmVzdWx0ID49IDApIHsKKyAgICAgICAgICAgIC8vIGNoZWNrIGxhc3QgY2hhcmFjdGVyCisgICAgICAgICAgICBpZiAoaXNMZWFkU3Vycm9nYXRlKHN0ci5jaGFyQXQoc3RyTGVuZ3RoIC0gMSkpICYmIAorICAgICAgICAgICAgICAgIChyZXN1bHQgPCBzb3VyY2UubGVuZ3RoKCkgLSAxKSAmJiAKKyAgICAgICAgICAgICAgICBpc1RyYWlsU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0ICsgc3RyTGVuZ3RoKSkpIHsgCisgICAgICAgICAgICAgICAgcmV0dXJuIGxhc3RJbmRleE9mKHNvdXJjZSwgc3RyLCByZXN1bHQgLSAxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGNoZWNrIGZpcnN0IGNoYXJhY3RlciB3aGljaCBpcyBhIHRyYWlsIHN1cnJvZ2F0ZQorICAgICAgICAgICAgaWYgKGlzVHJhaWxTdXJyb2dhdGUoc3RyLmNoYXJBdCgwKSkgJiYgcmVzdWx0ID4gMCAmJiAKKyAgICAgICAgICAgICAgICBpc0xlYWRTdXJyb2dhdGUoc291cmNlLmNoYXJBdChyZXN1bHQgLSAxKSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbGFzdEluZGV4T2Yoc291cmNlLCBzdHIsIHJlc3VsdCAtIDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICogUmV0dXJucyBhIG5ldyBVVEYxNiBmb3JtYXQgVW5pY29kZSBzdHJpbmcgcmVzdWx0aW5nIGZyb20gcmVwbGFjaW5nIGFsbCAKKyAgICAqIG9jY3VycmVuY2VzIG9mIG9sZENoYXIzMiBpbiBzb3VyY2Ugd2l0aCBuZXdDaGFyMzIuIAorICAgICogSWYgdGhlIGNoYXJhY3RlciBvbGRDaGFyMzIgZG9lcyBub3Qgb2NjdXIgaW4gdGhlIFVURjE2IGZvcm1hdCBVbmljb2RlCisgICAgKiBzdHJpbmcgc291cmNlLCB0aGVuIHNvdXJjZSB3aWxsIGJlIHJldHVybmVkLiBPdGhlcndpc2UsIGEgbmV3IFN0cmluZyAKKyAgICAqIG9iamVjdCBpcyBjcmVhdGVkIHRoYXQgcmVwcmVzZW50cyBhIGNvZGVwb2ludCBzZXF1ZW5jZSBpZGVudGljYWwgdG8gdGhlIAorICAgICogY29kZXBvaW50IHNlcXVlbmNlIHJlcHJlc2VudGVkIGJ5IHNvdXJjZSwgZXhjZXB0IHRoYXQgZXZlcnkgb2NjdXJyZW5jZSAKKyAgICAqIG9mIG9sZENoYXIzMiBpcyByZXBsYWNlZCBieSBhbiBvY2N1cnJlbmNlIG9mIG5ld0NoYXIzMi4gCisgICAgKiA8cD4KKyAgICAqIEV4YW1wbGVzOiA8YnI+CisgICAgKiBVVEYxNi5yZXBsYWNlKCJtZXNxdWl0ZSBpbiB5b3VyIGNlbGxhciIsICdlJywgJ28nKTs8YnI+CisgICAgKiAgICAgICAgcmV0dXJucyAibW9zcXVpdG8gaW4geW91ciBjb2xsYXIiPGJyPgorICAgICogVVRGMTYucmVwbGFjZSgiSm9uTCIsICdxJywgJ3gnKTs8YnI+CisgICAgKiAgICAgICAgcmV0dXJucyAiSm9uTCIgKG5vIGNoYW5nZSk8YnI+CisgICAgKiBVVEYxNi5yZXBsYWNlKCJTdXBwbGVtZW50YXJ5IGNoYXJhY3RlciBcdWQ4MDBcdWRjMDAiLCAweDEwMDAwLCAnIScpOworICAgICogPGJyPiAgIHJldHVybnMgIlN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyICEiPGJyPgorICAgICogVVRGMTYucmVwbGFjZSgiU3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIgXHVkODAwXHVkYzAwIiwgMHhkODAwLCAnIScpOworICAgICogPGJyPiAgIHJldHVybnMgIlN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyIFx1ZDgwMFx1ZGMwMCI8YnI+CisgICAgKiA8L3A+CisgICAgKiBOb3RlIHRoaXMgbWV0aG9kIGlzIHByb3ZpZGVkIGFzIHN1cHBvcnQgdG8gamRrIDEuMywgd2hpY2ggZG9lcyBub3QgCisgICAgKiBzdXBwb3J0IHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyB0byBpdHMgZnVsbGVzdC4KKyAgICAqIEBwYXJhbSBzb3VyY2UgVVRGMTYgZm9ybWF0IFVuaWNvZGUgc3RyaW5nIHdoaWNoIHRoZSBjb2RlcG9pbnQgCisgICAgKiAgICAgICAgICAgICAgIHJlcGxhY2VtZW50cyB3aWxsIGJlIGJhc2VkIG9uLgorICAgICogQHBhcmFtIG9sZENoYXIzMiBub24temVybyBvbGQgY29kZXBvaW50IHRvIGJlIHJlcGxhY2VkLgorICAgICogQHBhcmFtIG5ld0NoYXIzMiB0aGUgbmV3IGNvZGVwb2ludCB0byByZXBsYWNlIG9sZENoYXIzMgorICAgICogQHJldHVybiBuZXcgU3RyaW5nIGRlcml2ZWQgZnJvbSBzb3VyY2UgYnkgcmVwbGFjaW5nIGV2ZXJ5IG9jY3VycmVuY2UgCisgICAgKiAgICAgICAgIG9mIG9sZENoYXIzMiB3aXRoIG5ld0NoYXIzMiwgdW5sZXNzIHdoZW4gbm8gb2xkQ2hhcjMyIGlzIGZvdW5kCisgICAgKiAgICAgICAgIGluIHNvdXJjZSB0aGVuIHNvdXJjZSB3aWxsIGJlIHJldHVybmVkLgorICAgICogQGRyYWZ0IHNpbmNlIHJlbGVhc2UgMi4xCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyByZXBsYWNlKFN0cmluZyBzb3VyY2UsIGludCBvbGRDaGFyMzIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5ld0NoYXIzMikgIAorICAgIHsKKyAgICAgICAgaWYgKG9sZENoYXIzMiA8PSAwIHx8IG9sZENoYXIzMiA+IENPREVQT0lOVF9NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFyZ3VtZW50IG9sZENoYXIzMiBpcyBub3QgYSB2YWxpZCBjb2RlcG9pbnQiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAobmV3Q2hhcjMyIDw9IDAgfHwgbmV3Q2hhcjMyID4gQ09ERVBPSU5UX01BWF9WQUxVRSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQXJndW1lbnQgbmV3Q2hhcjMyIGlzIG5vdCBhIHZhbGlkIGNvZGVwb2ludCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgaW5kZXggICAgID0gaW5kZXhPZihzb3VyY2UsIG9sZENoYXIzMik7CisgICAgICAgIGlmIChpbmRleCA9PSAtMSkgeworICAgICAgICAgICAgcmV0dXJuIHNvdXJjZTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgICAgICAgbmV3Q2hhcjMyU3RyICAgID0gdG9TdHJpbmcobmV3Q2hhcjMyKTsKKyAgICAgICAgaW50ICAgICAgICAgIG9sZENoYXIzMlNpemUgICA9IDE7CisgICAgICAgIGludCAgICAgICAgICBuZXdDaGFyMzJTaXplICAgPSBuZXdDaGFyMzJTdHIubGVuZ3RoKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKHNvdXJjZSk7CisgICAgICAgIGludCAgICAgICAgICByZXN1bHRJbmRleCAgICAgPSBpbmRleDsKKyAgICAgICAgCisgICAgICAgIGlmIChvbGRDaGFyMzIgPj0gU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUpIHsKKyAgICAgICAgICAgIG9sZENoYXIzMlNpemUgPSAyOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB3aGlsZSAoaW5kZXggIT0gLTEpIHsKKyAgICAgICAgICAgIGludCBlbmRSZXN1bHRJbmRleCAgPSByZXN1bHRJbmRleCArIG9sZENoYXIzMlNpemU7CisgICAgICAgICAgICByZXN1bHQucmVwbGFjZShyZXN1bHRJbmRleCwgZW5kUmVzdWx0SW5kZXgsIG5ld0NoYXIzMlN0cik7CisgICAgICAgICAgICBpbnQgbGFzdEVuZEluZGV4ICAgID0gaW5kZXggKyBvbGRDaGFyMzJTaXplOworICAgICAgICAgICAgaW5kZXggICAgICAgPSBpbmRleE9mKHNvdXJjZSwgb2xkQ2hhcjMyLCBsYXN0RW5kSW5kZXgpOworICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gbmV3Q2hhcjMyU2l6ZSArIGluZGV4IC0gbGFzdEVuZEluZGV4OworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBSZXR1cm5zIGEgbmV3IFVURjE2IGZvcm1hdCBVbmljb2RlIHN0cmluZyByZXN1bHRpbmcgZnJvbSByZXBsYWNpbmcgYWxsIAorICAgICogb2NjdXJyZW5jZXMgb2Ygb2xkU3RyIGluIHNvdXJjZSB3aXRoIG5ld1N0ci4gCisgICAgKiBJZiB0aGUgY2hhcmFjdGVyIG9sZFN0ciBkb2VzIG5vdCBvY2N1ciBpbiB0aGUgVVRGMTYgZm9ybWF0IFVuaWNvZGUKKyAgICAqIHN0cmluZyBzb3VyY2UsIHRoZW4gc291cmNlIHdpbGwgYmUgcmV0dXJuZWQuIE90aGVyd2lzZSwgYSBuZXcgU3RyaW5nIAorICAgICogb2JqZWN0IGlzIGNyZWF0ZWQgdGhhdCByZXByZXNlbnRzIGEgY29kZXBvaW50IHNlcXVlbmNlIGlkZW50aWNhbCB0byB0aGUgCisgICAgKiBjb2RlcG9pbnQgc2VxdWVuY2UgcmVwcmVzZW50ZWQgYnkgc291cmNlLCBleGNlcHQgdGhhdCBldmVyeSBvY2N1cnJlbmNlIAorICAgICogb2Ygb2xkU3RyIGlzIHJlcGxhY2VkIGJ5IGFuIG9jY3VycmVuY2Ugb2YgbmV3U3RyLiAKKyAgICAqIDxwPgorICAgICogRXhhbXBsZXM6IDxicj4KKyAgICAqIFVURjE2LnJlcGxhY2UoIm1lc3F1aXRlIGluIHlvdXIgY2VsbGFyIiwgImUiLCAibyIpOzxicj4KKyAgICAqICAgICAgICByZXR1cm5zICJtb3NxdWl0byBpbiB5b3VyIGNvbGxhciI8YnI+CisgICAgKiBVVEYxNi5yZXBsYWNlKCJtZXNxdWl0ZSBpbiB5b3VyIGNlbGxhciIsICJtZXNxdWl0ZSIsICJjYXQiKTs8YnI+CisgICAgKiAgICAgICAgcmV0dXJucyAiY2F0IGluIHlvdXIgY29sbGFyIjxicj4KKyAgICAqIFVURjE2LnJlcGxhY2UoIkpvbkwiLCAicSIsICJ4Iik7PGJyPgorICAgICogICAgICAgIHJldHVybnMgIkpvbkwiIChubyBjaGFuZ2UpPGJyPgorICAgICogVVRGMTYucmVwbGFjZSgiU3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIgXHVkODAwXHVkYzAwIiwgIlx1ZDgwMFx1ZGMwMCIsCisgICAgKiAgICAgICAgICAgICAgICchJyk7CisgICAgKiA8YnI+ICAgcmV0dXJucyAiU3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIgISI8YnI+CisgICAgKiBVVEYxNi5yZXBsYWNlKCJTdXBwbGVtZW50YXJ5IGNoYXJhY3RlciBcdWQ4MDBcdWRjMDAiLCAiXHVkODAwIiwgJyEnKTsKKyAgICAqIDxicj4gICByZXR1cm5zICJTdXBwbGVtZW50YXJ5IGNoYXJhY3RlciBcdWQ4MDBcdWRjMDAiPGJyPgorICAgICogPC9wPgorICAgICogTm90ZSB0aGlzIG1ldGhvZCBpcyBwcm92aWRlZCBhcyBzdXBwb3J0IHRvIGpkayAxLjMsIHdoaWNoIGRvZXMgbm90IAorICAgICogc3VwcG9ydCBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMgdG8gaXRzIGZ1bGxlc3QuCisgICAgKiBAcGFyYW0gc291cmNlIFVURjE2IGZvcm1hdCBVbmljb2RlIHN0cmluZyB3aGljaCB0aGUgY29kZXBvaW50IAorICAgICogICAgICAgICAgICAgICByZXBsYWNlbWVudHMgd2lsbCBiZSBiYXNlZCBvbi4KKyAgICAqIEBwYXJhbSBvbGRDaGFyMzIgbm9uLXplcm8gb2xkIGNvZGVwb2ludCB0byBiZSByZXBsYWNlZC4KKyAgICAqIEBwYXJhbSBuZXdDaGFyMzIgdGhlIG5ldyBjb2RlcG9pbnQgdG8gcmVwbGFjZSBvbGRDaGFyMzIKKyAgICAqIEByZXR1cm4gbmV3IFN0cmluZyBkZXJpdmVkIGZyb20gc291cmNlIGJ5IHJlcGxhY2luZyBldmVyeSBvY2N1cnJlbmNlIAorICAgICogICAgICAgICBvZiBvbGRDaGFyMzIgd2l0aCBuZXdDaGFyMzIsIHVubGVzcyB3aGVuIG5vIG9sZENoYXIzMiBpcyBmb3VuZAorICAgICogICAgICAgICBpbiBzb3VyY2UgdGhlbiBzb3VyY2Ugd2lsbCBiZSByZXR1cm5lZC4KKyAgICAqIEBkcmFmdCBzaW5jZSByZWxlYXNlIDIuMQorICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgcmVwbGFjZShTdHJpbmcgc291cmNlLCBTdHJpbmcgb2xkU3RyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBuZXdTdHIpICAKKyAgICB7CisgICAgICAgIGludCBpbmRleCAgICAgPSBpbmRleE9mKHNvdXJjZSwgb2xkU3RyKTsKKyAgICAgICAgaWYgKGluZGV4ID09IC0xKSB7CisgICAgICAgICAgICByZXR1cm4gc291cmNlOworICAgICAgICB9CisgICAgICAgIGludCAgICAgICAgICBvbGRTdHJTaXplICAgPSBvbGRTdHIubGVuZ3RoKCk7CisgICAgICAgIGludCAgICAgICAgICBuZXdTdHJTaXplICAgPSBuZXdTdHIubGVuZ3RoKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgICAgICAgPSBuZXcgU3RyaW5nQnVmZmVyKHNvdXJjZSk7CisgICAgICAgIGludCAgICAgICAgICByZXN1bHRJbmRleCAgICAgPSBpbmRleDsKKyAgICAgICAgCisgICAgICAgIHdoaWxlIChpbmRleCAhPSAtMSkgeworICAgICAgICAgICAgaW50IGVuZFJlc3VsdEluZGV4ICA9IHJlc3VsdEluZGV4ICsgb2xkU3RyU2l6ZTsKKyAgICAgICAgICAgIHJlc3VsdC5yZXBsYWNlKHJlc3VsdEluZGV4LCBlbmRSZXN1bHRJbmRleCwgbmV3U3RyKTsKKyAgICAgICAgICAgIGludCBsYXN0RW5kSW5kZXggICAgPSBpbmRleCArIG9sZFN0clNpemU7CisgICAgICAgICAgICBpbmRleCAgICAgICA9IGluZGV4T2Yoc291cmNlLCBvbGRTdHIsIGxhc3RFbmRJbmRleCk7CisgICAgICAgICAgICByZXN1bHRJbmRleCArPSBuZXdTdHJTaXplICsgaW5kZXggLSBsYXN0RW5kSW5kZXg7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKyAgICAKKyAgICAvKiogCisgICAgKiBSZXZlcnNlcyBhIFVURjE2IGZvcm1hdCBVbmljb2RlIHN0cmluZyBhbmQgcmVwbGFjZXMgc291cmNlJ3MgY29udGVudCAKKyAgICAqIHdpdGggaXQuCisgICAgKiBUaGlzIG1ldGhvZCB3aWxsIHJldmVyc2Ugc3Vycm9nYXRlIGNoYXJhY3RlcnMgY29ycmVjdGx5LCBpbnN0ZWFkIG9mIAorICAgICogYmxpbmRseSByZXZlcnNpbmcgZXZlcnkgY2hhcmFjdGVyLgorICAgICogPHA+CisgICAgKiBFeGFtcGxlczo8YnI+CisgICAgKiBVVEYxNi5yZXZlcnNlKG5ldyBTdHJpbmdCdWZmZXIoCisgICAgKiAgICAgICAgICAgICAiU3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIFx1ZDgwMFx1ZGMwMFx1ZDgwMVx1ZGMwMSIpKTxicj4KKyAgICAqIHJldHVybnMgIlx1ZDgwMVx1ZGMwMVx1ZDgwMFx1ZGMwMCBzcmV0Y2FyYWhjIHlyYXRuZW1lbHBwdVMiLgorICAgICogQHBhcmFtIHNvdXJjZSB0aGUgc291cmNlIFN0cmluZ0J1ZmZlciB0aGF0IGNvbnRhaW5zIFVURjE2IGZvcm1hdCAKKyAgICAqICAgICAgICBVbmljb2RlIHN0cmluZyB0byBiZSByZXZlcnNlZAorICAgICogQHJldHVybiBhIG1vZGlmaWVkIHNvdXJjZSB3aXRoIHJldmVyc2VkIFVURjE2IGZvcm1hdCBVbmljb2RlIHN0cmluZy4KKyAgICAqIEBkcmFmdCBzaW5jZSByZWxlYXNlIDIuMQorICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgcmV2ZXJzZShTdHJpbmdCdWZmZXIgc291cmNlKSAgICAgIAorICAgIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IHNvdXJjZS5yZXZlcnNlKCk7CisgICAgICAgIGludCByZXN1bHRMZW5ndGggID0gcmVzdWx0Lmxlbmd0aCgpOworICAgICAgICBpbnQgbWF4TGVhZExlbmd0aCA9IHJlc3VsdExlbmd0aCAtIDI7CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgd2hpbGUgKGkgPCByZXN1bHRMZW5ndGgpIHsKKyAgICAgICAgICAgIGlmIChpIDw9IG1heExlYWRMZW5ndGggJiYgaXNUcmFpbFN1cnJvZ2F0ZShyZXN1bHQuY2hhckF0KGkpKSAmJgorICAgICAgICAgICAgICAgIGlzTGVhZFN1cnJvZ2F0ZShyZXN1bHQuY2hhckF0KGkgKyAxKSkpIHsKKyAgICAgICAgICAgICAgICBjaGFyIHRyYWlsID0gcmVzdWx0LmNoYXJBdChpKTsKKyAgICAgICAgICAgICAgICByZXN1bHQuZGVsZXRlQ2hhckF0KGkpOworICAgICAgICAgICAgICAgIHJlc3VsdC5pbnNlcnQoaSArIDEsIHRyYWlsKTsKKyAgICAgICAgICAgICAgICBpICs9IDI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpICsrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgKiBDb21wYXJlIHN0cmluZ3MgdXNpbmcgVW5pY29kZSBjb2RlIHBvaW50IG9yZGVyLCBpbnN0ZWFkIG9mIFVURi0xNiBjb2RlIAorICAgICogdW5pdCBvcmRlci4KKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgU3RyaW5nQ29tcGFyYXRvciBpbXBsZW1lbnRzIGphdmEudXRpbC5Db21wYXJhdG9yIAorICAgIHsKKyAgICAgICAgLyoqCisgICAgICAgICogU3RhbmRhcmQgU3RyaW5nIGNvbXBhcmUuIE9ubHkgb25lIHNtYWxsIHNlY3Rpb24gaXMgZGlmZmVyZW50LCBtYXJrZWQgaW4gCisgICAgICAgICogdGhlIGNvZGUuCisgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZShPYmplY3QgYSwgT2JqZWN0IGIpIAorICAgICAgICB7CisJICAgICAgICBpZiAoYSA9PSBiKSB7CisJICAgICAgICAJcmV0dXJuIDA7CisJICAgICAgICB9CisJICAgICAgICBpZiAoYSA9PSBudWxsKSB7CisJICAgICAgICAgICAgcmV0dXJuIC0xOworCSAgICAgICAgfQorCSAgICAgICAgaWYgKGIgPT0gbnVsbCkgeworCSAgICAgICAgICAgIHJldHVybiAxOworCSAgICAgICAgfQorCSAgICAgICAgICAgICAgCisJICAgICAgICBTdHJpbmcgc2EgPSAoU3RyaW5nKSBhOworCSAgICAgICAgU3RyaW5nIHNiID0gKFN0cmluZykgYjsKKwkgICAgICAgIGludCBsZW5hID0gc2EubGVuZ3RoKCk7CisJICAgICAgICBpbnQgbGVuYiA9IHNiLmxlbmd0aCgpOworCSAgICAgICAgaW50IGxlbiA9IGxlbmE7CisJICAgICAgICBpZiAobGVuID4gbGVuYikgeworCSAgICAgICAgICAgIGxlbiA9IGxlbmI7CisJICAgICAgICB9CisJICAgICAgICAgICAgCisJICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbjsgKytpKSAKKwkgICAgICAgIHsKKwkgICAgICAgICAgICBjaGFyIGNhID0gc2EuY2hhckF0KGkpOworCSAgICAgICAgICAgIGNoYXIgY2IgPSBzYi5jaGFyQXQoaSk7CisJICAgICAgICAgICAgaWYgKGNhID09IGNiKSB7CisJICAgICAgICAgICAgCWNvbnRpbnVlOyAvLyBza2lwIHJlbWFwIGlmIGVxdWFsCisJICAgICAgICAgICAgfQorCSAgICAgICAgICAgICAgICAgICAgCisJICAgICAgICAgICAgLy8gc3RhcnQgb2Ygb25seSBkaWZmZXJlbnQgc2VjdGlvbgorICAgICAgICAgICAgCS8vIGlmIGVpdGhlciBjb2RlIHVuaXQgaXMgYmVsb3cgMHhkODAwLCBpLmUuLCBiZWxvdyB0aGUgCisgICAgICAgICAgICAJLy8gc3Vycm9nYXRlIHJhbmdlLCB0aGVuIG5vdGhpbmcgbmVlZHMgdG8gYmUgZG9uZQorCisgICAgICAgICAgICAJLy8gaWYgYm90aCBhcmUgPj0weGQ4MDAgdGhlbiBzcGVjaWFsIGNvZGUgYWRqdXN0cyBjb2RlIHVuaXQgCisgICAgICAgICAgICAJLy8gdmFsdWVzIHNvIHRoYXQgYWxsIEJNUCBjb2RlIHBvaW50cyAoaW5jbHVkaW5nIHNpbmdsZSAKKyAgICAgICAgICAgIAkvLyBzdXJyb2dhdGUgY29kZSBwb2ludHMpIHNvcnQgYmVsb3cgc3VwcGxlbWVudGFyeSBvbmVzCisKKyAgICAgICAgICAgIAkvLyB0aGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHN1cnJvZ2F0ZXMgYXJlIG5vdCBhdCB0aGUgZW5kIG9mIAorICAgICAgICAgICAgCS8vIHRoZSBjb2RlIHVuaXQgcmFuZ2UKKyAgICAgICAgICAgIAlpZiAoY2EgPj0gTEVBRF9TVVJST0dBVEVfTUlOX1ZBTFVFIAorICAgICAgICAgICAgCQkmJiBjYiA+PSBMRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUpIHsKKyAgICAgICAgICAgICAgICAJLy8gc3VidHJhY3QgMHgyODAwIGZyb20gQk1QIGNvZGUgcG9pbnRzIHRvIG1ha2UgdGhlbSAKKyAgICAgICAgICAgICAgICAJLy8gc21hbGxlciB0aGFuIHN1cHBsZW1lbnRhcnkgb25lcworICAgICAgICAgICAgICAgIAlpZiAoKGNhIDw9IExFQURfU1VSUk9HQVRFX01BWF9WQUxVRSAmJiAoaSArIDEpIDwgbGVuYSAKKyAgICAgICAgICAgICAgICAJCSYmIGlzVHJhaWxTdXJyb2dhdGUoc2EuY2hhckF0KGkgKyAxKSkpIAorICAgICAgICAgICAgICAgIAkJfHwgKGlzVHJhaWxTdXJyb2dhdGUoY2EpICYmIGkgPiAwIAorICAgICAgICAgICAgICAgIAkJCSYmIGlzTGVhZFN1cnJvZ2F0ZShzYS5jaGFyQXQoaSAtIDEpKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgCS8vIHBhcnQgb2YgYSBzdXJyb2dhdGUgcGFpciwgbGVhdmUgPj1kODAwCisgICAgICAgICAgICAgICAgCX0gCisgICAgICAgICAgICAgICAgCWVsc2UgeworICAgICAgICAgICAgICAgICAgICAJLy8gQk1QIGNvZGUgcG9pbnQgLSBtYXkgYmUgc3Vycm9nYXRlIGNvZGUgcG9pbnQgLSBtYWtlIAorICAgICAgICAgICAgICAgICAgICAJLy8gPGQ4MDAKKyAgICAgICAgICAgICAgICAgICAgCWNhIC09IDB4MjgwMDsKKyAgICAgICAgICAgICAgICAJfQorCisgICAgICAgICAgICAgICAgCWlmICgoY2IgPD0gTEVBRF9TVVJST0dBVEVfTUFYX1ZBTFVFICYmIChpICsgMSkgPCBsZW5iIAorICAgICAgICAgICAgICAgIAkJJiYgaXNUcmFpbFN1cnJvZ2F0ZShzYi5jaGFyQXQoaSArIDEpKSkgCisgICAgICAgICAgICAgICAgCQl8fCAoaXNUcmFpbFN1cnJvZ2F0ZShjYikgJiYgaSA+IDAgCisgICAgICAgICAgICAgICAgCQkJJiYgaXNMZWFkU3Vycm9nYXRlKHNiLmNoYXJBdChpIC0gMSkpKSkgeworICAgICAgICAgICAgICAgICAgICAJLy8gcGFydCBvZiBhIHN1cnJvZ2F0ZSBwYWlyLCBsZWF2ZSA+PWQ4MDAKKyAgICAgICAgICAgICAgICAJfSAKKyAgICAgICAgICAgICAgICAJZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIAkvLyBCTVAgY29kZSBwb2ludCAtIG1heSBiZSBzdXJyb2dhdGUgY29kZSBwb2ludCAtIG1ha2UgCisgICAgICAgICAgICAgICAgICAgIAkvLyA8IGQ4MDAKKyAgICAgICAgICAgICAgICAgICAgCWNiIC09IDB4MjgwMDsKKyAgICAgICAgICAgICAgICAJfQorICAgICAgICAgICAgCX0KKworCSAgICAgICAgICAgIC8vIGVuZCBvZiBvbmx5IGRpZmZlcmVudCBzZWN0aW9uCisJICAgICAgICAgICAgICAgICAgICAKKwkgICAgICAgICAgICBpZiAoY2EgPCBjYikgeworCSAgICAgICAgICAgIAlyZXR1cm4gLTE7CisJICAgICAgICAgICAgfQorCSAgICAgICAgICAgICAgCisJICAgICAgICAgICAgcmV0dXJuIDE7IC8vIHdhc24ndCBlcXVhbCwgc28gcmV0dXJuIDEKKwkgICAgICAgIH0KKwkgICAgICAgICAgCisJICAgICAgICBpZiAobGVuYSA8IGxlbmIpIHsKKwkgICAgICAgICAgICByZXR1cm4gLTE7CisJICAgICAgICB9CisJICAgICAgICAgICAgCisJICAgICAgICBpZiAobGVuYSA+IGxlbmIpIHsKKwkgICAgICAgICAgICByZXR1cm4gMTsKKwkgICAgICAgIH0KKwkgICAgICAgICAgICAgICAgCisJICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICAKKworICAgIH0KKyAgICAKKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8qKgorICAgICogU2hpZnQgdmFsdWUgZm9yIGxlYWQgc3Vycm9nYXRlIHRvIGZvcm0gYSBzdXBwbGVtZW50YXJ5IGNoYXJhY3Rlci4KKyAgICAqLworCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMRUFEX1NVUlJPR0FURV9TSElGVF8gPSAxMDsKKwkvKioKKyAgICAqIE1hc2sgdG8gcmV0cmlldmUgdGhlIHNpZ25pZmljYW50IHZhbHVlIGZyb20gYSB0cmFpbCBzdXJyb2dhdGUuCisgICAgKi8KKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVFJBSUxfU1VSUk9HQVRFX01BU0tfICAgICA9IDB4M0ZGOyAgIAorICAgIC8qKgorICAgICAqIFZhbHVlIHRoYXQgYWxsIGxlYWQgc3Vycm9nYXRlIHN0YXJ0cyB3aXRoCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExFQURfU1VSUk9HQVRFX09GRlNFVF8gPSAKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUgLSAKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTVVBQTEVNRU5UQVJZX01JTl9WQUxVRSAKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PiBMRUFEX1NVUlJPR0FURV9TSElGVF8pOyAJICAgICAgICAgICAgICAgICAgCisgICAgCisgICAgLy8gcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICogPHA+Q29udmVydHMgYXJndW1lbnQgY29kZSBwb2ludCBhbmQgcmV0dXJucyBhIFN0cmluZyBvYmplY3QgcmVwcmVzZW50aW5nIAorICAgICogdGhlIGNvZGUgcG9pbnQncyB2YWx1ZSBpbiBVVEYxNiBmb3JtYXQuPC9wPgorICAgICogPHA+VGhpcyBtZXRob2QgZG9lcyBub3QgY2hlY2sgZm9yIHRoZSB2YWxpZGl0eSBvZiB0aGUgY29kZXBvaW50LCB0aGUKKyAgICAqIHJlc3VsdHMgYXJlIG5vdCBndWFyYW50ZWVkIGlmIGEgaW52YWxpZCBjb2RlcG9pbnQgaXMgcGFzc2VkIGFzIAorICAgICogYXJndW1lbnQuPC9wPgorICAgICogPHA+VGhlIHJlc3VsdCBpcyBhIHN0cmluZyB3aG9zZSBsZW5ndGggaXMgMSBmb3Igbm9uLXN1cHBsZW1lbnRhcnkgY29kZSAKKyAgICAqIHBvaW50cywgMiBvdGhlcndpc2UuPC9wPgorICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQKKyAgICAqIEByZXR1cm4gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBjb2RlIHBvaW50CisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB0b1N0cmluZyhpbnQgY2gpCisgICAgeyAgIAorICAgICAgICBpZiAoY2ggPCBTVVBQTEVNRU5UQVJZX01JTl9WQUxVRSkgeworICAgICAgICAgICAgcmV0dXJuIFN0cmluZy52YWx1ZU9mKChjaGFyKWNoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChnZXRMZWFkU3Vycm9nYXRlKGNoKSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoZ2V0VHJhaWxTdXJyb2dhdGUoY2gpKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuZXNjYXBlVHJhbnNsaXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuZXNjYXBlVHJhbnNsaXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yM2VlMmM1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5lc2NhcGVUcmFuc2xpdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMjUzIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoYykgMjAwMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9uCisqICAgMTEvMTkvMjAwMSAgYWxpdSAgICAgICAgQ3JlYXRpb24uCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CisKKy8qKgorICogQSB0cmFuc2xpdGVyYXRvciB0aGF0IGNvbnZlcnRzIFVuaWNvZGUgZXNjYXBlIGZvcm1zIHRvIHRoZQorICogY2hhcmFjdGVycyB0aGV5IHJlcHJlc2VudC4gIEVzY2FwZSBmb3JtcyBoYXZlIGEgcHJlZml4LCBhIHN1ZmZpeCwgYQorICogcmFkaXgsIGFuZCBtaW5pbXVtIGFuZCBtYXhpbXVtIGRpZ2l0IGNvdW50cy4KKyAqCisgKiA8cD5UaGlzIGNsYXNzIGlzIHBhY2thZ2UgcHJpdmF0ZS4gIEl0IHJlZ2lzdGVycyBzZXZlcmFsIHN0YW5kYXJkCisgKiB2YXJpYW50cyB3aXRoIHRoZSBzeXN0ZW0gd2hpY2ggYXJlIHRoZW4gYWNjZXNzZWQgdmlhIHRoZWlyIElEcy4KKyAqCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAdmVyc2lvbiAkUkNTZmlsZTogVW5lc2NhcGVUcmFuc2xpdGVyYXRvci5qYXZhLHYgJCAkUmV2aXNpb246IDEuNSAkICREYXRlOiAyMDAyLzAyLzI1IDIyOjQzOjU4ICQKKyAqLworY2xhc3MgVW5lc2NhcGVUcmFuc2xpdGVyYXRvciBleHRlbmRzIFRyYW5zbGl0ZXJhdG9yIHsKKworICAgIC8qKgorICAgICAqIFRoZSBlbmNvZGVkIHBhdHRlcm4gc3BlY2lmaWNhdGlvbi4gIFRoZSBwYXR0ZXJuIGNvbnNpc3RzIG9mCisgICAgICogemVybyBvciBtb3JlIGZvcm1zLiAgRWFjaCBmb3JtIGNvbnNpc3RzIG9mIGEgcHJlZml4LCBzdWZmaXgsCisgICAgICogcmFkaXgsIG1pbmltdW0gZGlnaXQgY291bnQsIGFuZCBtYXhpbXVtIGRpZ2l0IGNvdW50LiAgVGhlc2UKKyAgICAgKiB2YWx1ZXMgYXJlIHN0b3JlZCBhcyBhIGZpdmUgY2hhcmFjdGVyIGhlYWRlci4gIFRoYXQgaXMsIHRoZWlyCisgICAgICogbnVtZXJpYyB2YWx1ZXMgYXJlIGNhc3QgdG8gMTYtYml0IGNoYXJhY3RlcnMgYW5kIHN0b3JlZCBpbiB0aGUKKyAgICAgKiBzdHJpbmcuICBGb2xsb3dpbmcgdGhlc2UgZml2ZSBjaGFyYWN0ZXJzLCB0aGUgcHJlZml4CisgICAgICogY2hhcmFjdGVycywgdGhlbiBzdWZmaXggY2hhcmFjdGVycyBhcmUgc3RvcmVkLiAgRWFjaCBmb3JtIHRodXMKKyAgICAgKiB0YWtlcyBuKzUgY2hhcmFjdGVycywgd2hlcmUgbiBpcyB0aGUgdG90YWwgbGVuZ3RoIG9mIHRoZSBwcmVmaXgKKyAgICAgKiBhbmQgc3VmZml4LiAgVGhlIGVuZCBpcyBtYXJrZWQgYnkgYSBoZWFkZXIgb2YgbGVuZ3RoIG9uZQorICAgICAqIGNvbnNpc3Rpbmcgb2YgdGhlIGNoYXJhY3RlciBFTkQuCisgICAgICovCisgICAgcHJpdmF0ZSBjaGFyIHNwZWNbXTsKKworICAgIC8qKgorICAgICAqIFNwZWNpYWwgY2hhcmFjdGVyIG1hcmtpbmcgdGhlIGVuZCBvZiB0aGUgc3BlY1tdIGFycmF5LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgRU5EID0gMHhGRkZGOworCisgICAgLyoqCisgICAgICogUmVnaXN0ZXJzIHN0YW5kYXJkIHZhcmlhbnRzIHdpdGggdGhlIHN5c3RlbS4gIENhbGxlZCBieQorICAgICAqIFRyYW5zbGl0ZXJhdG9yIGR1cmluZyBpbml0aWFsaXphdGlvbi4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCByZWdpc3RlcigpIHsKKyAgICAgICAgLy8gVW5pY29kZTogIlUrMTBGRkZGIiBoZXgsIG1pbj00LCBtYXg9NgorICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoIkhleC1BbnkvVW5pY29kZSIsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVW5lc2NhcGVUcmFuc2xpdGVyYXRvcigiSGV4LUFueS9Vbmljb2RlIiwgbmV3IGNoYXJbXSB7CisgICAgICAgICAgICAgICAgICAgIDIsIDAsIDE2LCA0LCA2LCAnVScsICcrJywKKyAgICAgICAgICAgICAgICAgICAgRU5ECisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICAKKyAgICAgICAgLy8gSmF2YTogIlxcdUZGRkYiIGhleCwgbWluPTQsIG1heD00CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiSGV4LUFueS9KYXZhIiwgbmV3IFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkoKSB7CisgICAgICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBVbmVzY2FwZVRyYW5zbGl0ZXJhdG9yKCJIZXgtQW55L0phdmEiLCBuZXcgY2hhcltdIHsKKyAgICAgICAgICAgICAgICAgICAgMiwgMCwgMTYsIDQsIDQsICdcXCcsICd1JywKKyAgICAgICAgICAgICAgICAgICAgRU5ECisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICAKKyAgICAgICAgLy8gQzogIlxcdUZGRkYiIGhleCwgbWluPTQsIG1heD00OyBcXFUwMDEwRkZGRiBoZXgsIG1pbj04LCBtYXg9OAorICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoIkhleC1BbnkvQyIsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVW5lc2NhcGVUcmFuc2xpdGVyYXRvcigiSGV4LUFueS9DIiwgbmV3IGNoYXJbXSB7CisgICAgICAgICAgICAgICAgICAgIDIsIDAsIDE2LCA0LCA0LCAnXFwnLCAndScsCisgICAgICAgICAgICAgICAgICAgIDIsIDAsIDE2LCA4LCA4LCAnXFwnLCAnVScsCisgICAgICAgICAgICAgICAgICAgIEVORAorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgCisgICAgICAgIC8vIFhNTDogIiYjeDEwRkZGRjsiIGhleCwgbWluPTEsIG1heD02CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiSGV4LUFueS9YTUwiLCBuZXcgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFVuZXNjYXBlVHJhbnNsaXRlcmF0b3IoIkhleC1BbnkvWE1MIiwgbmV3IGNoYXJbXSB7CisgICAgICAgICAgICAgICAgICAgIDMsIDEsIDE2LCAxLCA2LCAnJicsICcjJywgJ3gnLCAnOycsCisgICAgICAgICAgICAgICAgICAgIEVORAorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgICAgICAvLyBYTUwxMDogIiYxMTE0MTExOyIgZGVjLCBtaW49MSwgbWF4PTcgKG5vdCByZWFsbHkgIkhleC1BbnkiKQorICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoIkhleC1BbnkvWE1MMTAiLCBuZXcgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFVuZXNjYXBlVHJhbnNsaXRlcmF0b3IoIkhleC1BbnkvWE1MMTAiLCBuZXcgY2hhcltdIHsKKyAgICAgICAgICAgICAgICAgICAgMiwgMSwgMTAsIDEsIDcsICcmJywgJyMnLCAnOycsCisgICAgICAgICAgICAgICAgICAgIEVORAorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgICAgICAvLyBQZXJsOiAiXFx4ezI2M0F9IiBoZXgsIG1pbj0xLCBtYXg9NgorICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoIkhleC1BbnkvUGVybCIsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVW5lc2NhcGVUcmFuc2xpdGVyYXRvcigiSGV4LUFueS9QZXJsIiwgbmV3IGNoYXJbXSB7CisgICAgICAgICAgICAgICAgICAgIDMsIDEsIDE2LCAxLCA2LCAnXFwnLCAneCcsICd7JywgJ30nLAorICAgICAgICAgICAgICAgICAgICBFTkQKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAgICAgICAgLy8gQWxsOiBKYXZhLCBDLCBQZXJsLCBYTUwsIFhNTDEwLCBVbmljb2RlCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiSGV4LUFueSIsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVW5lc2NhcGVUcmFuc2xpdGVyYXRvcigiSGV4LUFueSIsIG5ldyBjaGFyW10geworICAgICAgICAgICAgICAgICAgICAyLCAwLCAxNiwgNCwgNiwgJ1UnLCAnKycsICAgICAgICAgICAgLy8gVW5pY29kZQorICAgICAgICAgICAgICAgICAgICAyLCAwLCAxNiwgNCwgNCwgJ1xcJywgJ3UnLCAgICAgICAgICAgLy8gSmF2YQorICAgICAgICAgICAgICAgICAgICAyLCAwLCAxNiwgOCwgOCwgJ1xcJywgJ1UnLCAgICAgICAgICAgLy8gQyAoc3Vycm9nYXRlcykKKyAgICAgICAgICAgICAgICAgICAgMywgMSwgMTYsIDEsIDYsICcmJywgJyMnLCAneCcsICc7JywgIC8vIFhNTAorICAgICAgICAgICAgICAgICAgICAyLCAxLCAxMCwgMSwgNywgJyYnLCAnIycsICc7JywgICAgICAgLy8gWE1MMTAKKyAgICAgICAgICAgICAgICAgICAgMywgMSwgMTYsIDEsIDYsICdcXCcsICd4JywgJ3snLCAnfScsIC8vIFBlcmwKKyAgICAgICAgICAgICAgICAgICAgRU5ECisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhY2thZ2UgcHJpdmF0ZSBjb25zdHJ1Y3Rvci4gIFRha2VzIHRoZSBlbmNvZGVkIHNwZWMgYXJyYXkuCisgICAgICovCisgICAgVW5lc2NhcGVUcmFuc2xpdGVyYXRvcihTdHJpbmcgSUQsIGNoYXIgc3BlY1tdKSB7CisgICAgICAgIHN1cGVyKElELCBudWxsKTsKKyAgICAgICAgdGhpcy5zcGVjID0gc3BlYzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRzIHtAbGluayBUcmFuc2xpdGVyYXRvciNoYW5kbGVUcmFuc2xpdGVyYXRlfS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVUcmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbiBwb3MsIGJvb2xlYW4gaXNJbmNyZW1lbnRhbCkgeworICAgICAgICBpbnQgc3RhcnQgPSBwb3Muc3RhcnQ7CisgICAgICAgIGludCBsaW1pdCA9IHBvcy5saW1pdDsKKyAgICAgICAgaW50IGksIGosIGlwYXQ7CisKKyAgICAgIGxvb3A6CisgICAgICAgIHdoaWxlIChzdGFydCA8IGxpbWl0KSB7CisgICAgICAgICAgICAvLyBMb29wIG92ZXIgdGhlIGZvcm1zIGluIHNwZWNbXS4gIEV4aXQgdGhpcyBsb29wIHdoZW4gd2UKKyAgICAgICAgICAgIC8vIG1hdGNoIG9uZSBvZiB0aGUgc3BlY3MuICBFeGl0IHRoZSBvdXRlciBsb29wIGlmIGEKKyAgICAgICAgICAgIC8vIHBhcnRpYWwgbWF0Y2ggaXMgZGV0ZWN0ZWQgYW5kIGlzSW5jcmVtZW50YWwgaXMgdHJ1ZS4KKyAgICAgICAgICAgIGZvciAoaj0wLCBpcGF0PTA7IHNwZWNbaXBhdF0gIT0gRU5EOyArK2opIHsKKworICAgICAgICAgICAgICAgIC8vIFJlYWQgdGhlIGhlYWRlcgorICAgICAgICAgICAgICAgIGludCBwcmVmaXhMZW4gPSBzcGVjW2lwYXQrK107CisgICAgICAgICAgICAgICAgaW50IHN1ZmZpeExlbiA9IHNwZWNbaXBhdCsrXTsKKyAgICAgICAgICAgICAgICBpbnQgcmFkaXggICAgID0gc3BlY1tpcGF0KytdOworICAgICAgICAgICAgICAgIGludCBtaW5EaWdpdHMgPSBzcGVjW2lwYXQrK107CisgICAgICAgICAgICAgICAgaW50IG1heERpZ2l0cyA9IHNwZWNbaXBhdCsrXTsKKworICAgICAgICAgICAgICAgIC8vIHMgaXMgYSBjb3B5IG9mIHN0YXJ0IHRoYXQgaXMgYWR2YW5jZWQgb3ZlciB0aGUKKyAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzIGFzIHdlIHBhcnNlIHRoZW0uCisgICAgICAgICAgICAgICAgaW50IHMgPSBzdGFydDsKKyAgICAgICAgICAgICAgICBib29sZWFuIG1hdGNoID0gdHJ1ZTsKKworICAgICAgICAgICAgICAgIGZvciAoaT0wOyBpPHByZWZpeExlbjsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChzID49IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSd2ZSBhbHJlYWR5IG1hdGNoZWQgYSBjaGFyYWN0ZXIuICBUaGlzIGlzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYSBwYXJ0aWFsIG1hdGNoLCBzbyB3ZSByZXR1cm4gaWYgaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbmNyZW1lbnRhbCBtb2RlLiAgSW4gbm9uLWluY3JlbWVudGFsIG1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZ28gdG8gdGhlIG5leHQgc3BlYy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNJbmNyZW1lbnRhbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBsb29wOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNoYXIgYyA9IHRleHQuY2hhckF0KHMrKyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjICE9IHNwZWNbaXBhdCArIGldKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAobWF0Y2gpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHUgPSAwOworICAgICAgICAgICAgICAgICAgICBpbnQgZGlnaXRDb3VudCA9IDA7CisgICAgICAgICAgICAgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzID49IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgZm9yIHBhcnRpYWwgbWF0Y2ggaW4gaW5jcmVtZW50YWwgbW9kZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocyA+IHN0YXJ0ICYmIGlzSW5jcmVtZW50YWwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgbG9vcDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2ggPSB0ZXh0LmNoYXIzMkF0KHMpOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRpZ2l0ID0gVUNoYXJhY3Rlci5kaWdpdChjaCwgcmFkaXgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRpZ2l0IDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgcyArPSBVVEYxNi5nZXRDaGFyQ291bnQoY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgdSA9ICh1ICogcmFkaXgpICsgZGlnaXQ7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKytkaWdpdENvdW50ID09IG1heERpZ2l0cykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgbWF0Y2ggPSAoZGlnaXRDb3VudCA+PSBtaW5EaWdpdHMpOworCisgICAgICAgICAgICAgICAgICAgIGlmIChtYXRjaCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpPTA7IGk8c3VmZml4TGVuOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocyA+PSBsaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBmb3IgcGFydGlhbCBtYXRjaCBpbiBpbmNyZW1lbnRhbCBtb2RlLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocyA+IHN0YXJ0ICYmIGlzSW5jcmVtZW50YWwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGxvb3A7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgYyA9IHRleHQuY2hhckF0KHMrKyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMgIT0gc3BlY1tpcGF0ICsgcHJlZml4TGVuICsgaV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWF0Y2gpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBdCB0aGlzIHBvaW50LCB3ZSBoYXZlIGEgbWF0Y2gKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgc3RyID0gVVRGMTYudmFsdWVPZih1KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LnJlcGxhY2Uoc3RhcnQsIHMsIHN0cik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGltaXQgLT0gcyAtIHN0YXJ0IC0gc3RyLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgYnJlYWsgc3RhdGVtZW50IGxlYXZlcyB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsb29wIHRoYXQgaXMgdHJhdmVyc2luZyB0aGUgZm9ybXMgaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzcGVjW10uICBXZSB0aGVuIHBhcnNlIHRoZSBuZXh0IGlucHV0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVyLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaXBhdCArPSBwcmVmaXhMZW4gKyBzdWZmaXhMZW47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChzdGFydCA8IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgc3RhcnQgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KHRleHQuY2hhcjMyQXQoc3RhcnQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHBvcy5jb250ZXh0TGltaXQgKz0gbGltaXQgLSBwb3MubGltaXQ7CisgICAgICAgIHBvcy5saW1pdCA9IGxpbWl0OworICAgICAgICBwb3Muc3RhcnQgPSBzdGFydDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlQ29tcHJlc3Nvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZUNvbXByZXNzb3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42MTY4MTcxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZUNvbXByZXNzb3IuamF2YQpAQCAtMCwwICsxLDEwMDkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVDb21wcmVzc29yLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6MjAgJCAKKyAqICRSZXZpc2lvbjogMS4zICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCisvKioKKyogQSBjb21wcmVzc2lvbiBlbmdpbmUgaW1wbGVtZW50aW5nIHRoZSBTdGFuZGFyZCBDb21wcmVzc2lvbiBTY2hlbWUKKyogZm9yIFVuaWNvZGUgKFNDU1UpIGFzIG91dGxpbmVkIGluIDxBCisqIEhSRUY9Imh0dHA6Ly93d3cudW5pY29kZS5vcmcvdW5pY29kZS9yZXBvcnRzL3RyNiI+VW5pY29kZSBUZWNobmljYWwKKyogUmVwb3J0ICM2PC9BPi4KKyoKKyogPFA+VGhlIFNDU1Ugd29ya3MgYnkgdXNpbmcgZHluYW1pY2FsbHkgcG9zaXRpb25lZCA8RU0+d2luZG93czwvRU0+CisqIGNvbnNpc3Rpbmcgb2YgMTI4IGNvbnNlY3V0aXZlIGNoYXJhY3RlcnMgaW4gVW5pY29kZS4gIER1cmluZyBjb21wcmVzc2lvbiwgCisqIGNoYXJhY3RlcnMgd2l0aGluIGEgd2luZG93IGFyZSBlbmNvZGVkIGluIHRoZSBjb21wcmVzc2VkIHN0cmVhbSBhcyB0aGUgYnl0ZXMgCisqIDxUVD4weDdGIC0gMHhGRjwvVFQ+LiBUaGUgU0NTVSBwcm92aWRlcyB0cmFuc3BhcmVuY3kgZm9yIHRoZSBjaGFyYWN0ZXJzIAorKiAoYnl0ZXMpIGJldHdlZW4gPFRUPlUrMDAwMCAtIFUrMDBGRjwvVFQ+LiAgVGhlIFNDU1UgYXBwcm94aW1hdGVzIHRoZSAKKyogc3RvcmFnZSBzaXplIG9mIHRyYWRpdGlvbmFsIGNoYXJhY3RlciBzZXRzLCBmb3IgZXhhbXBsZSAxIGJ5dGUgcGVyCisqIGNoYXJhY3RlciBmb3IgQVNDSUkgb3IgTGF0aW4tMSB0ZXh0LCBhbmQgMiBieXRlcyBwZXIgY2hhcmFjdGVyIGZvciBDSksKKyogaWRlb2dyYXBocy48L1A+CisqCisqIDxQPjxTVFJPTkc+VVNBR0U8L1NUUk9ORz48L1A+CisqCisqIDxQPlRoZSBzdGF0aWMgbWV0aG9kcyBvbiA8VFQ+VW5pY29kZUNvbXByZXNzb3I8L1RUPiBtYXkgYmUgdXNlZCBpbiBhCisqIHN0cmFpZ2h0Zm9yd2FyZCBtYW5uZXIgdG8gY29tcHJlc3Mgc2ltcGxlIHN0cmluZ3M6PC9QPgorKgorKiA8UFJFPgorKiAgU3RyaW5nIHMgPSAuLi4gOyAvLyBnZXQgc3RyaW5nIGZyb20gc29tZXdoZXJlCisqICBieXRlIFtdIGNvbXByZXNzZWQgPSBVbmljb2RlQ29tcHJlc3Nvci5jb21wcmVzcyhzKTsKKyogPC9QUkU+CisqCisqIDxQPlRoZSBzdGF0aWMgbWV0aG9kcyBoYXZlIGEgZmFpcmx5IGxhcmdlIG1lbW9yeSBmb290cHJpbnQuCisqIEZvciBmaW5lci1ncmFpbmVkIGNvbnRyb2wgb3ZlciBtZW1vcnkgdXNhZ2UsIAorKiA8VFQ+VW5pY29kZUNvbXByZXNzb3I8L1RUPiBvZmZlcnMgbW9yZSBwb3dlcmZ1bCBBUElzIGFsbG93aW5nCisqIGl0ZXJhdGl2ZSBjb21wcmVzc2lvbjo8L1A+CisqCisqIDxQUkU+CisqICAvLyBDb21wcmVzcyBhbiBhcnJheSAiY2hhcnMiIG9mIGxlbmd0aCAibGVuIiB1c2luZyBhIGJ1ZmZlciBvZiA1MTIgYnl0ZXMKKyogIC8vIHRvIHRoZSBPdXRwdXRTdHJlYW0gIm91dCIKKyoKKyogIFVuaWNvZGVDb21wcmVzc29yIG15Q29tcHJlc3NvciAgICAgICAgID0gbmV3IFVuaWNvZGVDb21wcmVzc29yKCk7CisqICBmaW5hbCBzdGF0aWMgaW50ICBCVUZTSVpFICAgICAgICAgICAgICA9IDUxMjsKKyogIGJ5dGUgW10gICAgICAgICAgIGJ5dGVCdWZmZXIgICAgICAgICAgID0gbmV3IGJ5dGUgWyBCVUZTSVpFIF07CisqICBpbnQgICAgICAgICAgICAgICBieXRlc1dyaXR0ZW4gICAgICAgICA9IDA7CisqICBpbnQgW10gICAgICAgICAgICB1bmljaGFyc1JlYWQgICAgICAgICA9IG5ldyBpbnQgWzFdOworKiAgaW50ICAgICAgICAgICAgICAgdG90YWxDaGFyc0NvbXByZXNzZWQgPSAwOworKiAgaW50ICAgICAgICAgICAgICAgdG90YWxCeXRlc1dyaXR0ZW4gICAgPSAwOworKgorKiAgZG8geworKiAgICAvLyBkbyB0aGUgY29tcHJlc3Npb24KKyogICAgYnl0ZXNXcml0dGVuID0gbXlDb21wcmVzc29yLmNvbXByZXNzKGNoYXJzLCB0b3RhbENoYXJzQ29tcHJlc3NlZCwgCisqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4sIHVuaWNoYXJzUmVhZCwKKyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVCdWZmZXIsIDAsIEJVRlNJWkUpOworKgorKiAgICAvLyBkbyBzb21ldGhpbmcgd2l0aCB0aGUgY3VycmVudCBzZXQgb2YgYnl0ZXMKKyogICAgb3V0LndyaXRlKGJ5dGVCdWZmZXIsIDAsIGJ5dGVzV3JpdHRlbik7CisqCisqICAgIC8vIHVwZGF0ZSB0aGUgbm8uIG9mIGNoYXJhY3RlcnMgY29tcHJlc3NlZAorKiAgICB0b3RhbENoYXJzQ29tcHJlc3NlZCArPSB1bmljaGFyc1JlYWRbMF07CisqCisqICAgIC8vIHVwZGF0ZSB0aGUgbm8uIG9mIGJ5dGVzIHdyaXR0ZW4KKyogICAgdG90YWxCeXRlc1dyaXR0ZW4gKz0gYnl0ZXNXcml0dGVuOworKgorKiAgfSB3aGlsZSh0b3RhbENoYXJzQ29tcHJlc3NlZCA8IGxlbik7CisqCisqICBteUNvbXByZXNzb3IucmVzZXQoKTsgLy8gcmV1c2UgY29tcHJlc3NvcgorKiA8L1BSRT4KKyoKKyogQHNlZSBVbmljb2RlRGVjb21wcmVzc29yCisqCisqIEBhdXRob3IgU3RlcGhlbiBGLiBCb290aAorKiBAdmVyc2lvbiAxLjUgMDUgQXVnIDk5CisqIEB2ZXJzaW9uIDEuNCAyMSBKdWwgOTkKKyogQHZlcnNpb24gMS4zIDEwIE1hciA5OQorKiBAdmVyc2lvbiAxLjIgMDggTWFyIDk5CisqIEB2ZXJzaW9uIDEuMSAxMSBKYW4gOTkgCisqLworCisvKgorKgorKiBDT01QUkVTU0lPTiBTVFJBVEVHWQorKgorKiBTaW5nbGUgQnl0ZSBNb2RlCisqCisqIFRoZXJlIGFyZSB0aHJlZSByZWxldmFudCBjYXNlcy4KKyogSWYgdGhlIGNoYXJhY3RlciBpcyBpbiB0aGUgY3VycmVudCB3aW5kb3cgb3IgaXMgTGF0aW4tMSAoVSswMDAwLAorKiBVKzAwMDksIFUrMDAwQSwgVSswMDBELCBVKzAwMjAgLSBVKzAwN0YpLCB0aGUgY2hhcmFjdGVyIGlzIHBsYWNlZAorKiBkaXJlY3RseSBpbiB0aGUgc3RyZWFtIGFzIGEgc2luZ2xlIGJ5dGUuCisqCisqICAxLiBDdXJyZW50IGNoYXJhY3RlciBpcyBpbiBkZWZpbmVkLCBpbmFjdGl2ZSB3aW5kb3cuCisqICAyLiBDdXJyZW50IGNoYXJhY3RlciBpcyBpbiB1bmRlZmluZWQgd2luZG93LgorKiAgMy4gQ3VycmVudCBjaGFyYWN0ZXIgaXMgdW5jb21wcmVzc2libGUgVW5pY29kZSAoVSszNDAwIC0gVStERkZGKS4KKyogCisqICAxLiBDdXJyZW50IGNoYXJhY3RlciBpcyBpbiBkZWZpbmVkLCBpbmFjdGl2ZSB3aW5kb3cKKyogICAgQS4gTG9vayBhaGVhZCB0d28gY2hhcmFjdGVycworKiAgICBCLiBJZiBib3RoIGZvbGxvd2luZyBjaGFyYWN0ZXJzIGluIHNhbWUgd2luZG93IGFzIGN1cnJlbnQgY2hhcmFjdGVyLCAKKyogICAgICAgc3dpdGNoIHRvIGRlZmluZWQgd2luZG93CisqICAgIEMuIElmIG9ubHkgbmV4dCBjaGFyYWN0ZXIgaXMgaW4gc2FtZSB3aW5kb3cgYXMgY3VycmVudCBjaGFyYWN0ZXIsIAorKiAgICAgICBxdW90ZSBkZWZpbmVkIHdpbmRvdworKiAgICBELiBJZiBuZWl0aGVyIG9mIGZvbGxvd2luZyBjaGFyYWN0ZXJzIGlzIGluIHNhbWUgd2luZG93IGFzIGN1cnJlbnQsIAorKiAgICAgICBxdW90ZSBkZWZpbmVkIHdpbmRvdworKiAgIAorKiAgMi4gQ3VycmVudCBjaGFyYWN0ZXIgaXMgaW4gdW5kZWZpbmVkIHdpbmRvdworKiAgICBBLiBMb29rIGFoZWFkIHR3byBjaGFyYWN0ZXJzCisqICAgIEIuIElmIGJvdGggZm9sbG93aW5nIGNoYXJhY3RlcnMgaW4gc2FtZSB3aW5kb3cgYXMgY3VycmVudCBjaGFyYWN0ZXIsIAorKiAgICAgICBkZWZpbmUgbmV3IHdpbmRvdworKiAgICBDLiBJZiBvbmx5IG5leHQgY2hhcmFjdGVyIGluIHNhbWUgd2luZG93IGFzIGN1cnJlbnQgY2hhcmFjdGVyLCAKKyogICAgICAgc3dpdGNoIHRvIFVuaWNvZGUgbW9kZQorKiAgICAgICBOT1RFOiBUaGlzIGNvc3RzIHVzIG9uZSBleHRyYSBieXRlLiAgSG93ZXZlciwgCisqICAgICAgICBzaW5jZSB3ZSBoYXZlIGEgbGltaXRlZCBudW1iZXIgb2Ygd2luZG93cyB0byB3b3JrIHdpdGgsIGl0IGlzIAorKiAgICAgICAgYXNzdW1lZCB0aGUgY29zdCB3aWxsIHBheSBvZmYgbGF0ZXIgaW4gc2F2aW5ncyBmcm9tIGEgd2luZG93IHdpdGgKKyogICAgICAgIG1vcmUgY2hhcmFjdGVycyBpbiBpdC4KKyogICAgRC4gSWYgbmVpdGhlciBvZiBmb2xsb3dpbmcgY2hhcmFjdGVycyBpbiBzYW1lIHdpbmRvdyBhcyBjdXJyZW50LCAKKyogICAgICAgc3dpdGNoIHRvIFVuaWNvZGUgbW9kZS4gIEFsdGVybmF0aXZlIHRvIGFib3ZlOiBqdXN0IHF1b3RlIAorKiAgICAgICBVbmljb2RlIChzYW1lIGJ5dGUgY29zdCkKKyogICAKKyogIDMuIEN1cnJlbnQgY2hhcmFjdGVyIGlzIHVuY29tcHJlc3NpYmxlIFVuaWNvZGUgKFUrMzQwMCAtIFUrREZGRikKKyogICAgQS4gTG9vayBhaGVhZCBvbmUgY2hhcmFjdGVyCisqICAgIEIuIElmIG5leHQgY2hhcmFjdGVyIGluIG5vbi1jb21wcmVzc2libGUgcmVnaW9uLCBzd2l0Y2ggdG8gCisqICAgICAgIFVuaWNvZGUgbW9kZQorKiAgICBDLiBJZiBuZXh0IGNoYXJhY3RlciBub3QgaW4gbm9uLWNvbXByZXNzaWJsZSByZWdpb24sIHF1b3RlIFVuaWNvZGUKKyogICAKKyoKKyogVGhlIGZvbGxvd2luZyBjaGFydCBpbGx1c3RyYXRlcyB0aGUgYnl0ZXMgcmVxdWlyZWQgZm9yIGVuY29kaW5nIGNoYXJhY3RlcnMKKyogaW4gZWFjaCBwb3NzaWJsZSB3YXkKKyoKKyogCisqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSU5HTEUgQllURSBNT0RFCisqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhcmFjdGVycyBpbiBhIHJvdyB3aXRoIHNhbWUgaW5kZXgKKyogICAgICAgICAgICAgICB0YWcgZW5jb3VudGVyZWQgICAgICAgICAgICAgMSAgICAgICAyICAgICAgIDMgICAgICAgNAorKiAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgICAgICAgICAgICAgIG5vbmUgKGluIGN1cnJlbnQgd2luZG93KSAgICAxICAgICAgIDIgICAgICAgMyAgICAgICA0CisqCisqICAgICAgICAgICAgICAgcXVvdGUgVW5pY29kZSAgICAgICAgICAgICAgIDMgICAgICAgNiAgICAgICA5ICAgICAgIDEyCisqCisqICAgd2luZG93IG5vdCAgc3dpdGNoIHRvIFVuaWNvZGUgICAgICAgICAgIDMgICAgICAgNSAgICAgICA3ICAgICAgIDkgICAgIGJ5dGUKKyogICBkZWZpbmVkICAgICBkZWZpbmUgd2luZG93ICAgICAgICAgICAgICAgMyAgICAgICA0ICAgICAgIDUgICAgICAgNiAgICAgY29zdAorKiAgICAgIAorKiAgIHdpbmRvdyAgICAgIHN3aXRjaCB0byB3aW5kb3cgICAgICAgICAgICAyICAgICAgIDMgICAgICAgNCAgICAgICA1CisqICAgZGVmaW5lZCAgICAgcXVvdGUgd2luZG93ICAgICAgICAgICAgICAgIDIgICAgICAgNCAgICAgICA2ICAgICAgIDgKKyoKKyogIFVuaWNvZGUgTW9kZQorKgorKiBUaGVyZSBhcmUgdHdvIHJlbGV2YW50IGNhc2VzLgorKiBJZiB0aGUgY2hhcmFjdGVyIGlzIGluIHRoZSBub24tY29tcHJlc3NpYmxlIHJlZ2lvbgorKiAoVSszNDAwIC0gVStERkZGKSwgdGhlIGNoYXJhY3RlciBpcyBzaW1wbHkgd3JpdHRlbiB0byB0aGUKKyogc3RyZWFtIGFzIGEgcGFpciBvZiBieXRlcy4KKyoKKyogMS4gQ3VycmVudCBjaGFyYWN0ZXIgaXMgaW4gZGVmaW5lZCwgaW5hY3RpdmUgd2luZG93LgorKiAyLiBDdXJyZW50IGNoYXJhY3RlciBpcyBpbiB1bmRlZmluZWQgd2luZG93LgorKgorKiAgMS5DdXJyZW50IGNoYXJhY3RlciBpcyBpbiBkZWZpbmVkLCBpbmFjdGl2ZSB3aW5kb3cKKyogICAgQS4gTG9vayBhaGVhZCBvbmUgY2hhcmFjdGVyCisqICAgIEIuIElmIG5leHQgY2hhcmFjdGVyIGhhcyBzYW1lIGluZGV4IGFzIGN1cnJlbnQgY2hhcmFjdGVyLCAKKyogICAgICAgc3dpdGNoIHRvIGRlZmluZWQgd2luZG93IChhbmQgc3dpdGNoIHRvIHNpbmdsZS1ieXRlIG1vZGUpCisqICAgIEMuIElmIG5vdCwganVzdCBwdXQgYnl0ZXMgaW4gc3RyZWFtCisqICAgCisqICAKKyogIDIuIEN1cnJlbnQgY2hhcmFjdGVyIGlzIGluIHVuZGVmaW5lZCB3aW5kb3cKKyogICAgQS4gTG9vayBhaGVhZCB0d28gY2hhcmFjdGVycworKiAgICBCLiBJZiBib3RoIGluIHNhbWUgd2luZG93IGFzIGN1cnJlbnQgY2hhcmFjdGVyLCBkZWZpbmUgd2luZG93IAorKiAgICAgICAoYW5kIHN3aXRjaCB0byBzaW5nbGUtYnl0ZSBtb2RlKQorKiAgICBDLiBJZiBvbmx5IG5leHQgY2hhcmFjdGVyIGluIHNhbWUgd2luZG93LCBqdXN0IHB1dCBieXRlcyBpbiBzdHJlYW0KKyogICAgICAgIE5PVEU6IFRoaXMgY29zdHMgdXMgb25lIGV4dHJhIGJ5dGUuICBIb3dldmVyLCAKKyogICAgICAgIHNpbmNlIHdlIGhhdmUgYSBsaW1pdGVkIG51bWJlciBvZiB3aW5kb3dzIHRvIHdvcmsgd2l0aCwgaXQgaXMgCisqICAgICAgICBhc3N1bWVkIHRoZSBjb3N0IHdpbGwgcGF5IG9mZiBsYXRlciBpbiBzYXZpbmdzIGZyb20gYSB3aW5kb3cgd2l0aCAKKyogICAgICAgIG1vcmUgY2hhcmFjdGVycyBpbiBpdC4KKyogICAgRC4gSWYgbmVpdGhlciBpbiBzYW1lIHdpbmRvdywgcHV0IGJ5dGVzIGluIHN0cmVhbQorKiAgIAorKgorKiBUaGUgZm9sbG93aW5nIGNoYXJ0IGlsbHVzdHJhdGVzIHRoZSBieXRlcyByZXF1aXJlZCBmb3IgZW5jb2RpbmcgY2hhcmFjdGVycworKiBpbiBlYWNoIHBvc3NpYmxlIHdheQorKgorKiAKKyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVOSUNPREUgTU9ERQorKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYXJhY3RlcnMgaW4gYSByb3cgd2l0aCBzYW1lIGluZGV4CisqICAgICAgICAgICAgICAgdGFnIGVuY291bnRlcmVkICAgICAgICAgICAgIDEgICAgICAgMiAgICAgICAzICAgICAgIDQKKyogICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogICAgICAgICAgICAgICBub25lICAgICAgICAgICAgICAgICAgICAgICAgMiAgICAgICA0ICAgICAgIDYgICAgICAgOAorKgorKiAgICAgICAgICAgICAgIHF1b3RlIFVuaWNvZGUgICAgICAgICAgICAgICAzICAgICAgIDYgICAgICAgOSAgICAgICAxMgorKgorKiAgIHdpbmRvdyBub3QgIGRlZmluZSB3aW5kb3cgICAgICAgICAgICAgICAzICAgICAgIDQgICAgICAgNSAgICAgICA2ICAgICBieXRlCisqICAgZGVmaW5lZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvc3QKKyogICB3aW5kb3cgICAgICBzd2l0Y2ggdG8gd2luZG93ICAgICAgICAgICAgMiAgICAgICAzICAgICAgIDQgICAgICAgNQorKiAgIGRlZmluZWQKKyovCitwdWJsaWMgZmluYWwgY2xhc3MgVW5pY29kZUNvbXByZXNzb3IgaW1wbGVtZW50cyBTQ1NVCit7CisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIENsYXNzIHZhcmlhYmxlcworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKiBGb3IgcXVpY2sgaWRlbnRpZmljYXRpb24gb2YgYSBieXRlIGFzIGEgc2luZ2xlLWJ5dGUgbW9kZSB0YWcgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIFtdIHNTaW5nbGVUYWdUYWJsZSA9IHsKKyAgICAgICAgLy8gdGFibGUgZ2VuZXJhdGVkIGJ5IENvbXByZXNzaW9uVGFibGVHZW5lcmF0b3IKKyAgICAgICAgZmFsc2UsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIGZhbHNlLAorCWZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwKKwl0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLAorCXRydWUsIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsZmFsc2UsCisJZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKwlmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorCWZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisJZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKwlmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorCWZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisJZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKwlmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorCWZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisJZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKwlmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorCWZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisJZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKwlmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorCWZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisJZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKwlmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorCWZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisJZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKwlmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorCWZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisJZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKwlmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorCWZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisJZmFsc2UgICAKKyAgICB9OworCisgICAgLyoqIEZvciBxdWljayBpZGVudGlmaWNhdGlvbiBvZiBhIGJ5dGUgYXMgYSB1bmljb2RlIG1vZGUgdGFnICovCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBbXSBzVW5pY29kZVRhZ1RhYmxlID0geworICAgICAgICAvLyB0YWJsZSBnZW5lcmF0ZWQgYnkgQ29tcHJlc3Npb25UYWJsZUdlbmVyYXRvcgorICAgICAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorCWZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisJZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKwlmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorCWZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisJZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKwlmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorCWZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisJZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKwlmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorCWZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisJZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKwlmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorCWZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisJZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKwlmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorCWZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisJZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKwlmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorCWZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisJZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKwlmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorCWZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisJZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKwlmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIHRydWUsCisJdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwKKwl0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsCisJZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKwlmYWxzZSwgZmFsc2UgCisgICAgfTsKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBJbnN0YW5jZSB2YXJpYWJsZXMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgCisgICAgLyoqIEFsaWFzIHRvIGN1cnJlbnQgZHluYW1pYyB3aW5kb3cgKi8KKyAgICBwcml2YXRlIGludCAgICAgICBmQ3VycmVudFdpbmRvdyAgID0gMDsKKworICAgIC8qKiBEeW5hbWljIGNvbXByZXNzaW9uIHdpbmRvdyBvZmZzZXRzICovCisgICAgcHJpdmF0ZSBpbnQgW10gICAgZk9mZnNldHMgICAgICAgICA9IG5ldyBpbnQgWyBOVU1XSU5ET1dTIF07CisKKyAgICAvKiogQ3VycmVudCBjb21wcmVzc2lvbiBtb2RlICovCisgICAgcHJpdmF0ZSBpbnQgICAgICAgZk1vZGUgICAgICAgICAgICA9IFNJTkdMRUJZVEVNT0RFOworCisgICAgLyoqIEtlZXBzIGNvdW50IG9mIHRpbWVzIGNoYXJhY3RlciBpbmRpY2VzIGFyZSBlbmNvdW50ZXJlZCAqLworICAgIHByaXZhdGUgaW50IFtdICAgIGZJbmRleENvdW50ICAgICAgPSBuZXcgaW50IFsgTUFYSU5ERVggKyAxIF07CisKKyAgICAvKiogVGhlIHRpbWUgc3RhbXBzIGluZGljYXRlIHdoZW4gYSB3aW5kb3cgd2FzIGxhc3QgZGVmaW5lZCAqLworICAgIHByaXZhdGUgaW50IFtdICAgIGZUaW1lU3RhbXBzICAgICAgPSBuZXcgaW50IFsgTlVNV0lORE9XUyBdOworICAgIAorICAgIC8qKiBUaGUgY3VycmVudCB0aW1lIHN0YW1wICovCisgICAgcHJpdmF0ZSBpbnQgICAgICAgZlRpbWVTdGFtcCAgICAgICA9IDA7CisgICAgCisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBVbmljb2RlQ29tcHJlc3Nvci4KKyAgICAgKiBTZXRzIGFsbCB3aW5kb3dzIHRvIHRoZWlyIGRlZmF1bHQgdmFsdWVzLgorICAgICAqIEBzZWUgI3Jlc2V0CisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVDb21wcmVzc29yKCkKKyAgICB7CisJcmVzZXQoKTsgICAgICAgICAgICAgIC8vIGluaXRpYWxpemUgdG8gZGVmYXVsdHMKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wcmVzcyBhIHN0cmluZyBpbnRvIGEgYnl0ZSBhcnJheS4KKyAgICAgKiBAcGFyYW0gYnVmZmVyIFRoZSBzdHJpbmcgdG8gY29tcHJlc3MuCisgICAgICogQHJldHVybiBBIGJ5dGUgYXJyYXkgY29udGFpbmluZyB0aGUgY29tcHJlc3NlZCBjaGFyYWN0ZXJzLgorICAgICAqIEBzZWUgI2NvbXByZXNzKGNoYXIgW10sIGludCwgaW50KQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYnl0ZSBbXSBjb21wcmVzcyhTdHJpbmcgYnVmZmVyKQorICAgIHsKKwlyZXR1cm4gY29tcHJlc3MoYnVmZmVyLnRvQ2hhckFycmF5KCksIDAsIGJ1ZmZlci5sZW5ndGgoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcHJlc3MgYSBVbmljb2RlIGNoYXJhY3RlciBhcnJheSBpbnRvIGEgYnl0ZSBhcnJheS4KKyAgICAgKiBAcGFyYW0gYnVmZmVyIFRoZSBjaGFyYWN0ZXIgYnVmZmVyIHRvIGNvbXByZXNzLgorICAgICAqIEBwYXJhbSBzdGFydCBUaGUgc3RhcnQgb2YgdGhlIGNoYXJhY3RlciBydW4gdG8gY29tcHJlc3MuCisgICAgICogQHBhcmFtIGxpbWl0IFRoZSBsaW1pdCBvZiB0aGUgY2hhcmFjdGVyIHJ1biB0byBjb21wcmVzcy4KKyAgICAgKiBAcmV0dXJuIEEgYnl0ZSBhcnJheSBjb250YWluaW5nIHRoZSBjb21wcmVzc2VkIGNoYXJhY3RlcnMuCisgICAgICogQHNlZSAjY29tcHJlc3MoU3RyaW5nKQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYnl0ZSBbXSBjb21wcmVzcyhjaGFyIFtdIGJ1ZmZlciwKKwkJCQkgICBpbnQgc3RhcnQsCisJCQkJICAgaW50IGxpbWl0KQorICAgIHsKKwlVbmljb2RlQ29tcHJlc3NvciBjb21wID0gbmV3IFVuaWNvZGVDb21wcmVzc29yKCk7CisKKwkvLyB1c2UgYSBidWZmZXIgdGhhdCB3ZSBrbm93IHdpbGwgbmV2ZXIgb3ZlcmZsb3cKKwkvLyBpbiB0aGUgd29yc3QgY2FzZSwgZWFjaCBjaGFyYWN0ZXIgd2lsbCB0YWtlIDMgYnl0ZXMKKwkvLyB0byBlbmNvZGU6IFVRVSwgaGlieXRlLCBsb2J5dGUuICBJbiB0aGlzIGNhc2UsIHRoZQorCS8vIGNvbXByZXNzZWQgZGF0YSB3aWxsIGxvb2sgbGlrZTogU0NVLCBVUVUsIGhpYnl0ZSwgbG9ieXRlLCAuLi4KKwkvLyBidWZmZXIgbXVzdCBiZSBhdCBsZWFzdCA0IGJ5dGVzIGluIHNpemUKKwlpbnQgbGVuID0gTWF0aC5tYXgoNCwgMyAqIChsaW1pdCAtIHN0YXJ0KSArIDEpOworCWJ5dGUgW10gdGVtcCA9IG5ldyBieXRlIFtsZW5dOworCisJaW50IGJ5dGVDb3VudCA9IGNvbXAuY29tcHJlc3MoYnVmZmVyLCBzdGFydCwgbGltaXQsIG51bGwsIAorCQkJCSAgICAgIHRlbXAsIDAsIGxlbik7CisKKwlieXRlIFtdIHJlc3VsdCA9IG5ldyBieXRlIFtieXRlQ291bnRdOworCVN5c3RlbS5hcnJheWNvcHkodGVtcCwgMCwgcmVzdWx0LCAwLCBieXRlQ291bnQpOworCXJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcHJlc3MgYSBVbmljb2RlIGNoYXJhY3RlciBhcnJheSBpbnRvIGEgYnl0ZSBhcnJheS4KKyAgICAgKgorICAgICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBvbmx5IGNvbnN1bWUgaW5wdXQgdGhhdCBjYW4gYmUgY29tcGxldGVseQorICAgICAqIG91dHB1dC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjaGFyQnVmZmVyIFRoZSBjaGFyYWN0ZXIgYnVmZmVyIHRvIGNvbXByZXNzLgorICAgICAqIEBwYXJhbSBjaGFyQnVmZmVyU3RhcnQgVGhlIHN0YXJ0IG9mIHRoZSBjaGFyYWN0ZXIgcnVuIHRvIGNvbXByZXNzLgorICAgICAqIEBwYXJhbSBjaGFyQnVmZmVyTGltaXQgVGhlIGxpbWl0IG9mIHRoZSBjaGFyYWN0ZXIgcnVuIHRvIGNvbXByZXNzLgorICAgICAqIEBwYXJhbSBjaGFyc1JlYWQgQSBvbmUtZWxlbWVudCBhcnJheS4gIElmIG5vdCBudWxsLCBvbiByZXR1cm4gCisgICAgICogdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHJlYWQgZnJvbSBjaGFyQnVmZmVyLgorICAgICAqIEBwYXJhbSBieXRlQnVmZmVyIEEgYnVmZmVyIHRvIHJlY2VpdmUgdGhlIGNvbXByZXNzZWQgZGF0YS4gIFRoaXMgCisgICAgICogYnVmZmVyIG11c3QgYmUgYXQgbWluaW11bSBmb3VyIGJ5dGVzIGluIHNpemUuCisgICAgICogQHBhcmFtIGJ5dGVCdWZmZXJTdGFydCBUaGUgc3RhcnRpbmcgb2Zmc2V0IHRvIHdoaWNoIHRvIHdyaXRlIAorICAgICAqIGNvbXByZXNzZWQgZGF0YS4KKyAgICAgKiBAcGFyYW0gYnl0ZUJ1ZmZlckxpbWl0IFRoZSBsaW1pdGluZyBvZmZzZXQgZm9yIHdyaXRpbmcgY29tcHJlc3NlZCBkYXRhLgorICAgICAqIEByZXR1cm4gVGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuIHRvIGJ5dGVCdWZmZXIuCisgICAgICovCisgICAgcHVibGljIGludCBjb21wcmVzcyhjaGFyIFtdICAgICBjaGFyQnVmZmVyLAorCQkJaW50ICAgICAgICAgY2hhckJ1ZmZlclN0YXJ0LAorCQkJaW50ICAgICAgICAgY2hhckJ1ZmZlckxpbWl0LAorCQkJaW50IFtdICAgICAgY2hhcnNSZWFkLAorCQkJYnl0ZSBbXSAgICAgYnl0ZUJ1ZmZlciwKKwkJCWludCAgICAgICAgIGJ5dGVCdWZmZXJTdGFydCwKKwkJCWludCAgICAgICAgIGJ5dGVCdWZmZXJMaW1pdCkKKyAgICB7CisgICAgICAgIC8vIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSB0YXJnZXQgYnl0ZSBidWZmZXIKKwlpbnQgICAgIGJ5dGVQb3MgICAgICAgPSBieXRlQnVmZmVyU3RhcnQ7CisJCisJLy8gdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIHNvdXJjZSB1bmljb2RlIGNoYXJhY3RlciBidWZmZXIKKwlpbnQgICAgIHVjUG9zICAgICAgICAgPSBjaGFyQnVmZmVyU3RhcnQ7CisJCisJLy8gdGhlIGN1cnJlbnQgdW5pY29kZSBjaGFyYWN0ZXIgZnJvbSB0aGUgc291cmNlIGJ1ZmZlcgorCWludCAgICAgY3VyVUMgICAgICAgICA9IElOVkFMSURDSEFSOworCQorCS8vIHRoZSBpbmRleCBmb3IgdGhlIGN1cnJlbnQgY2hhcmFjdGVyCisgICAgICAgIGludCAgICAgY3VySW5kZXggICAgICA9IC0xOworICAgICAgICAKKwkvLyBsb29rIGFoZWFkCisJaW50ICAgICBuZXh0VUMgICAgICAgID0gSU5WQUxJRENIQVI7CisJaW50ICAgICBmb3J3YXJkVUMgICAgID0gSU5WQUxJRENIQVI7CisJCisgICAgICAgIC8vIHRlbXBvcmFyeSBmb3Igd2luZG93IHNlYXJjaGluZworCWludCAgICAgd2hpY2hXaW5kb3cgICA9IDA7CisJCisJLy8gaGlnaCBhbmQgbG93IGJ5dGVzIG9mIHRoZSBjdXJyZW50IHVuaWNvZGUgY2hhcmFjdGVyCisJaW50ICAgICBoaUJ5dGUgICAgICAgID0gMDsKKwlpbnQgICAgIGxvQnl0ZSAgICAgICAgPSAwOworCisKKwkvLyBieXRlQnVmZmVyIG11c3QgYmUgYXQgbGVhc3QgNCBieXRlcyBpbiBzaXplCisJaWYoYnl0ZUJ1ZmZlci5sZW5ndGggPCA0IHx8IChieXRlQnVmZmVyTGltaXQgLSBieXRlQnVmZmVyU3RhcnQpIDwgNCkKKwkgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiYnl0ZUJ1ZmZlci5sZW5ndGggPCA0Iik7CisKKyAgICBtYWluTG9vcDoKKwl3aGlsZSh1Y1BvcyA8IGNoYXJCdWZmZXJMaW1pdCAmJiBieXRlUG9zIDwgYnl0ZUJ1ZmZlckxpbWl0KSB7CisJICAgIHN3aXRjaChmTW9kZSkgeworCQkvLyBtYWluIHNpbmdsZSBieXRlIG1vZGUgY29tcHJlc3Npb24gbG9vcAorCSAgICBjYXNlIFNJTkdMRUJZVEVNT0RFOgorCSAgICBzaW5nbGVCeXRlTW9kZUxvb3A6CisJICAgIHdoaWxlKHVjUG9zIDwgY2hhckJ1ZmZlckxpbWl0ICYmIGJ5dGVQb3MgPCBieXRlQnVmZmVyTGltaXQpIHsKKwkJLy8gZ2V0IGN1cnJlbnQgY2hhcgorCQljdXJVQyA9IGNoYXJCdWZmZXJbdWNQb3MrK107CisKKwkJLy8gZ2V0IG5leHQgY2hhcgorCQlpZih1Y1BvcyA8IGNoYXJCdWZmZXJMaW1pdCkgCisJCSAgICBuZXh0VUMgPSBjaGFyQnVmZmVyW3VjUG9zXTsKKwkJZWxzZQorCQkgICAgbmV4dFVDID0gSU5WQUxJRENIQVI7CisJCQorCQkvLyBjaGFycyBsZXNzIHRoYW4gMHgwMDgwIChleGNsdWRpbmcgdGFncykgZ28gc3RyYWlnaHQKKwkJLy8gaW4gc3RyZWFtCisJCWlmKGN1clVDIDwgMHgwMDgwKSB7CisJCSAgICBsb0J5dGUgPSBjdXJVQyAmIDB4RkY7CisKKwkJICAgIC8vIHdlIG5lZWQgdG8gY2hlY2sgYW5kIG1ha2Ugc3VyZSB3ZSBkb24ndAorCQkgICAgLy8gYWNjaWRlbnRhbGx5IHdyaXRlIGEgc2luZ2xlIGJ5dGUgbW9kZSB0YWcgdG8KKwkJICAgIC8vIHRoZSBzdHJlYW0gdW5sZXNzIGl0J3MgcXVvdGVkCisJCSAgICBpZihzU2luZ2xlVGFnVGFibGVbbG9CeXRlXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhlcmUgaXMgZW5vdWdoIHJvb20gdG8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd3JpdGUgYm90aCBieXRlcyBpZiBub3QsIHJld2luZCB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc291cmNlIHN0cmVhbSBhbmQgYnJlYWsgb3V0CisJCQlpZiggKGJ5dGVQb3MgKyAxKSA+PSBieXRlQnVmZmVyTGltaXQpIAorCQkJICAgIHsgLS11Y1BvczsgYnJlYWsgbWFpbkxvb3A7IH0KKworCQkJLy8gc2luY2Ugd2Uga25vdyB0aGUgYnl0ZSBpcyBsZXNzIHRoYW4gMHg4MCwgU1FVT1RFMAorCQkJLy8gd2lsbCB1c2Ugc3RhdGljIHdpbmRvdyAwLCBvciBBU0NJSQorCQkJYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpIFNRVU9URTA7CisJCSAgICB9CisKKwkJICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSBsb0J5dGU7CisJCX0KKworCQkvLyBpZiB0aGUgY2hhciBiZWxvbmdzIHRvIGN1cnJlbnQgd2luZG93LCBjb252ZXJ0IGl0CisJCS8vIHRvIGEgYnl0ZSBieSBhZGRpbmcgdGhlIGdlbmVyaWMgY29tcHJlc3Npb24gb2Zmc2V0CisJCS8vIGFuZCBzdWJ0cmFjdGluZyB0aGUgd2luZG93J3Mgb2Zmc2V0CisJCWVsc2UgaWYoaW5EeW5hbWljV2luZG93KGN1clVDLCBmQ3VycmVudFdpbmRvdykgKSB7CisJCSAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgCisJCQkoY3VyVUMgLSBmT2Zmc2V0c1sgZkN1cnJlbnRXaW5kb3cgXSAKKwkJCSArIENPTVBSRVNTSU9OT0ZGU0VUKTsKKwkJfQorCQkKKwkJLy8gaWYgY2hhciBpcyBub3QgaW4gY29tcHJlc3NpYmxlIHJhbmdlLCBlaXRoZXIgc3dpdGNoIHRvIG9yCisJCS8vIHF1b3RlIGZyb20gdW5pY29kZQorCQllbHNlIGlmKCAhIGlzQ29tcHJlc3NpYmxlKGN1clVDKSApIHsKKwkJICAgIC8vIG9ubHkgY2hlY2sgbmV4dCBjaGFyYWN0ZXIgaWYgaXQgaXMgdmFsaWQKKwkJICAgIGlmKG5leHRVQyAhPSBJTlZBTElEQ0hBUiAmJiBpc0NvbXByZXNzaWJsZShuZXh0VUMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGVyZSBpcyBlbm91Z2ggcm9vbSB0bworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3cml0ZSBhbGwgdGhyZWUgYnl0ZXMgaWYgbm90LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXdpbmQgdGhlIHNvdXJjZSBzdHJlYW0gYW5kIGJyZWFrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG91dAorCQkJaWYoIChieXRlUG9zICsgMikgPj0gYnl0ZUJ1ZmZlckxpbWl0KSAKKwkJCSAgICB7IC0tdWNQb3M7IGJyZWFrIG1haW5Mb29wOyB9CisKKwkJCWJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSBTUVVPVEVVOworCQkJYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpIChjdXJVQyA+Pj4gOCk7CisJCQlieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgKGN1clVDICYgMHhGRik7CisJCSAgICB9CisJCSAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoZXJlIGlzIGVub3VnaCByb29tIHRvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdyaXRlIGFsbCBmb3VyIGJ5dGVzIGlmIG5vdCwgcmV3aW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBzb3VyY2Ugc3RyZWFtIGFuZCBicmVhayBvdXQKKwkJCWlmKChieXRlUG9zICsgMykgPj0gYnl0ZUJ1ZmZlckxpbWl0KSAKKwkJCSAgICB7IC0tdWNQb3M7IGJyZWFrIG1haW5Mb29wOyB9CisKKwkJCWJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSBTQ0hBTkdFVTsKKworCQkJaGlCeXRlID0gY3VyVUMgPj4+IDg7CisJCQlsb0J5dGUgPSBjdXJVQyAmIDB4RkY7CisKKwkJCWlmKHNVbmljb2RlVGFnVGFibGVbaGlCeXRlXSkKKwkJCSAgICAvLyBhZGQgcXVvdGUgVW5pY29kZSB0YWcKKwkJCSAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gICA9IChieXRlKSBVUVVPVEVVOyAgICAKKworCQkJYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpIGhpQnl0ZTsKKwkJCWJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSBsb0J5dGU7CisgICAgICAgICAgICAgICAgCisJCQlmTW9kZSA9IFVOSUNPREVNT0RFOworCQkJYnJlYWsgc2luZ2xlQnl0ZU1vZGVMb29wOworCQkgICAgfQorCQl9CisKKwkJLy8gaWYgdGhlIGNoYXIgaXMgaW4gYSBjdXJyZW50bHkgZGVmaW5lZCBkeW5hbWljCisJCS8vIHdpbmRvdywgZmlndXJlIG91dCB3aGljaCBvbmUsIGFuZCBlaXRoZXIgc3dpdGNoIHRvCisJCS8vIGl0IG9yIHF1b3RlIGZyb20gaXQKKwkJZWxzZSBpZigod2hpY2hXaW5kb3cgPSBmaW5kRHluYW1pY1dpbmRvdyhjdXJVQykpIAorCQkJIT0gSU5WQUxJRFdJTkRPVyApIHsKKwkJICAgIC8vIGxvb2sgYWhlYWQKKwkJICAgIGlmKCAodWNQb3MgKyAxKSA8IGNoYXJCdWZmZXJMaW1pdCApCisJCQlmb3J3YXJkVUMgPSBjaGFyQnVmZmVyW3VjUG9zICsgMV07CisJCSAgICBlbHNlCisJCQlmb3J3YXJkVUMgPSBJTlZBTElEQ0hBUjsKKwkJICAgIAorCQkgICAgLy8gYWxsIHRocmVlIGNoYXJzIGluIHNhbWUgd2luZG93LCBzd2l0Y2ggdG8gdGhhdAorCQkgICAgLy8gd2luZG93IGluRHluYW1pY1dpbmRvdyB3aWxsIHJldHVybiBmYWxzZSBmb3IKKwkJICAgIC8vIElOVkFMSURDSEFSCisJCSAgICBpZihpbkR5bmFtaWNXaW5kb3cobmV4dFVDLCB3aGljaFdpbmRvdykgCisJCSAgICAgICAmJiBpbkR5bmFtaWNXaW5kb3coZm9yd2FyZFVDLCB3aGljaFdpbmRvdykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoZXJlIGlzIGVub3VnaCByb29tIHRvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdyaXRlIGJvdGggYnl0ZXMgaWYgbm90LCByZXdpbmQgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNvdXJjZSBzdHJlYW0gYW5kIGJyZWFrIG91dAorCQkJaWYoIChieXRlUG9zICsgMSkgPj0gYnl0ZUJ1ZmZlckxpbWl0KSAKKwkJCSAgICB7IC0tdWNQb3M7IGJyZWFrIG1haW5Mb29wOyB9CisKKwkJCWJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKShTQ0hBTkdFMCArIHdoaWNoV2luZG93KTsKKwkJCWJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSAKKwkJCSAgICAoY3VyVUMgLSBmT2Zmc2V0c1t3aGljaFdpbmRvd10gCisJCQkgICAgICsgQ09NUFJFU1NJT05PRkZTRVQpOworCQkJZlRpbWVTdGFtcHMgWyB3aGljaFdpbmRvdyBdID0gKytmVGltZVN0YW1wOworCQkJZkN1cnJlbnRXaW5kb3cgPSB3aGljaFdpbmRvdzsKKwkJICAgIH0KKwkJICAgIAorCQkgICAgLy8gZWl0aGVyIG9ubHkgbmV4dCBjaGFyIG9yIG5laXRoZXIgaW4gc2FtZQorCQkgICAgLy8gd2luZG93LCBzbyBxdW90ZQorCQkgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGVyZSBpcyBlbm91Z2ggcm9vbSB0bworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3cml0ZSBib3RoIGJ5dGVzIGlmIG5vdCwgcmV3aW5kIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzb3VyY2Ugc3RyZWFtIGFuZCBicmVhayBvdXQKKwkJCWlmKChieXRlUG9zICsgMSkgPj0gYnl0ZUJ1ZmZlckxpbWl0KSAKKwkJCSAgICB7IC0tdWNQb3M7IGJyZWFrIG1haW5Mb29wOyB9CisKKwkJCWJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSAoU1FVT1RFMCArIHdoaWNoV2luZG93KTsKKwkJCWJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSAKKwkJCSAgICAoY3VyVUMgLSBmT2Zmc2V0c1t3aGljaFdpbmRvd10gCisJCQkgICAgICsgQ09NUFJFU1NJT05PRkZTRVQpOworCQkgICAgfQorCQl9CisKKwkJLy8gaWYgYSBzdGF0aWMgd2luZG93IGlzIGRlZmluZWQsIGFuZCB0aGUgZm9sbG93aW5nCisJCS8vIGNoYXJhY3RlciBpcyBub3QgaW4gdGhhdCBzdGF0aWMgd2luZG93LCBxdW90ZSBmcm9tCisJCS8vIHRoZSBzdGF0aWMgd2luZG93IE5vdGU6IHRvIHF1b3RlIGZyb20gYSBzdGF0aWMKKwkJLy8gd2luZG93LCBkb24ndCBhZGQgMHg4MAorCQllbHNlIGlmKCh3aGljaFdpbmRvdyA9IGZpbmRTdGF0aWNXaW5kb3coY3VyVUMpKSAKKwkJCSE9IElOVkFMSURXSU5ET1cgCisJCQkmJiAhIGluU3RhdGljV2luZG93KG5leHRVQywgd2hpY2hXaW5kb3cpICkgeworCQkgICAgLy8gbWFrZSBzdXJlIHRoZXJlIGlzIGVub3VnaCByb29tIHRvIHdyaXRlIGJvdGgKKwkJICAgIC8vIGJ5dGVzIGlmIG5vdCwgcmV3aW5kIHRoZSBzb3VyY2Ugc3RyZWFtIGFuZAorCQkgICAgLy8gYnJlYWsgb3V0CisJCSAgICBpZigoYnl0ZVBvcyArIDEpID49IGJ5dGVCdWZmZXJMaW1pdCkgCisJCQl7IC0tdWNQb3M7IGJyZWFrIG1haW5Mb29wOyB9CisKKwkJICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSAoU1FVT1RFMCArIHdoaWNoV2luZG93KTsKKwkJICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSAKKwkJCShjdXJVQyAtIHNPZmZzZXRzW3doaWNoV2luZG93XSk7CisJCX0KKwkJCisJCS8vIGlmIGEgd2luZG93IGlzIG5vdCBkZWZpbmVkLCBkZWNpZGUgaWYgd2Ugd2FudCB0bworCQkvLyBkZWZpbmUgYSBuZXcgb25lIG9yIHN3aXRjaCB0byB1bmljb2RlIG1vZGUKKwkJZWxzZSB7CisJCSAgICAvLyBkZXRlcm1pbmUgaW5kZXggZm9yIGN1cnJlbnQgY2hhciAoY2hhciBpcyBjb21wcmVzc2libGUpCisJCSAgICBjdXJJbmRleCA9IG1ha2VJbmRleChjdXJVQyk7CisJCSAgICBmSW5kZXhDb3VudFtjdXJJbmRleF0rKzsKKworCQkgICAgLy8gbG9vayBhaGVhZAorCQkgICAgaWYoKHVjUG9zICsgMSkgPCBjaGFyQnVmZmVyTGltaXQpCisJCQlmb3J3YXJkVUMgPSBjaGFyQnVmZmVyW3VjUG9zICsgMV07CisJCSAgICBlbHNlCisJCQlmb3J3YXJkVUMgPSBJTlZBTElEQ0hBUjsKKworCQkgICAgLy8gaWYgd2UgaGF2ZSBlbmNvdW50ZXJlZCB0aGlzIGluZGV4IGF0IGxlYXN0IG9uY2UKKwkJICAgIC8vIGJlZm9yZSwgZGVmaW5lIGEgbmV3IHdpbmRvdworCQkgICAgLy8gT1IKKwkJICAgIC8vIHRocmVlIGNoYXJzIGluIGEgcm93IHdpdGggc2FtZSBpbmRleCwgZGVmaW5lIGEKKwkJICAgIC8vIG5ldyB3aW5kb3cgKG1ha2VJbmRleCB3aWxsIHJldHVybiBSRVNFUlZFRElOREVYCisJCSAgICAvLyBmb3IgSU5WQUxJRENIQVIpCisJCSAgICBpZigoZkluZGV4Q291bnRbY3VySW5kZXhdID4gMSkgfHwKKwkJICAgICAgIChjdXJJbmRleCA9PSBtYWtlSW5kZXgobmV4dFVDKSAKKwkJCSYmIGN1ckluZGV4ID09IG1ha2VJbmRleChmb3J3YXJkVUMpKSkgeworCQkJLy8gbWFrZSBzdXJlIHRoZXJlIGlzIGVub3VnaCByb29tIHRvIHdyaXRlIGFsbAorCQkJLy8gdGhyZWUgYnl0ZXMgaWYgbm90LCByZXdpbmQgdGhlIHNvdXJjZQorCQkJLy8gc3RyZWFtIGFuZCBicmVhayBvdXQKKwkJCWlmKCAoYnl0ZVBvcyArIDIpID49IGJ5dGVCdWZmZXJMaW1pdCkgCisJCQkgICAgeyAtLXVjUG9zOyBicmVhayBtYWluTG9vcDsgfQorCisJCQkvLyBnZXQgbGVhc3QgcmVjZW50bHkgZGVmaW5lZCB3aW5kb3cKKwkJCXdoaWNoV2luZG93ID0gZ2V0TFJEZWZpbmVkV2luZG93KCk7CisKKwkJCWJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKShTREVGSU5FMCArIHdoaWNoV2luZG93KTsKKwkJCWJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSBjdXJJbmRleDsKKwkJCWJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSAKKwkJCSAgICAoY3VyVUMgLSBzT2Zmc2V0VGFibGVbY3VySW5kZXhdIAorCQkJICAgICArIENPTVBSRVNTSU9OT0ZGU0VUKTsKKworCQkJZk9mZnNldHNbd2hpY2hXaW5kb3ddID0gc09mZnNldFRhYmxlW2N1ckluZGV4XTsKKwkJCWZDdXJyZW50V2luZG93ID0gd2hpY2hXaW5kb3c7CisJCQlmVGltZVN0YW1wcyBbd2hpY2hXaW5kb3ddID0gKytmVGltZVN0YW1wOworCQkgICAgfQorCisJCSAgICAvLyBvbmx5IHR3byBjaGFycyBpbiBhIHJvdyB3aXRoIHNhbWUgaW5kZXgsIHNvCisJCSAgICAvLyBzd2l0Y2ggdG8gdW5pY29kZSBtb2RlIChtYWtlSW5kZXggd2lsbCByZXR1cm4KKwkJICAgIC8vIFJFU0VSVkVESU5ERVggZm9yIElOVkFMSURDSEFSKQorCQkgICAgLy8gT1IKKwkJICAgIC8vIHRocmVlIGNoYXJzIGhhdmUgZGlmZmVyZW50IGluZGljZXMsIHNvIHN3aXRjaAorCQkgICAgLy8gdG8gdW5pY29kZSBtb2RlCisJCSAgICBlbHNlIHsKKwkJCS8vIG1ha2Ugc3VyZSB0aGVyZSBpcyBlbm91Z2ggcm9vbSB0byB3cml0ZSBhbGwKKwkJCS8vIGZvdXIgYnl0ZXMgaWYgbm90LCByZXdpbmQgdGhlIHNvdXJjZSBzdHJlYW0KKwkJCS8vIGFuZCBicmVhayBvdXQKKwkJCWlmKChieXRlUG9zICsgMykgPj0gYnl0ZUJ1ZmZlckxpbWl0KSAKKwkJCSAgICB7IC0tdWNQb3M7IGJyZWFrIG1haW5Mb29wOyB9CisKKwkJCWJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSBTQ0hBTkdFVTsKKworCQkJaGlCeXRlID0gY3VyVUMgPj4+IDg7CisJCQlsb0J5dGUgPSBjdXJVQyAmIDB4RkY7CisKKwkJCWlmKHNVbmljb2RlVGFnVGFibGVbaGlCeXRlXSkKKwkJCSAgICAvLyBhZGQgcXVvdGUgVW5pY29kZSB0YWcKKwkJCSAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgVVFVT1RFVTsgCisKKwkJCWJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSBoaUJ5dGU7CisJCQlieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgbG9CeXRlOworCisJCQlmTW9kZSA9IFVOSUNPREVNT0RFOworCQkJYnJlYWsgc2luZ2xlQnl0ZU1vZGVMb29wOworCQkgICAgfQorCQl9CisJICAgIH0KKwkgICAgYnJlYWs7CisKKwkgICAgY2FzZSBVTklDT0RFTU9ERToKKwkJLy8gbWFpbiB1bmljb2RlIG1vZGUgY29tcHJlc3Npb24gbG9vcAorCSAgICB1bmljb2RlTW9kZUxvb3A6CisJICAgIHdoaWxlKHVjUG9zIDwgY2hhckJ1ZmZlckxpbWl0ICYmIGJ5dGVQb3MgPCBieXRlQnVmZmVyTGltaXQpIHsKKwkJLy8gZ2V0IGN1cnJlbnQgY2hhcgorCQljdXJVQyA9IGNoYXJCdWZmZXJbdWNQb3MrK107ICAgIAorCisJCS8vIGdldCBuZXh0IGNoYXIKKwkJaWYoIHVjUG9zIDwgY2hhckJ1ZmZlckxpbWl0ICkKKwkJICAgIG5leHRVQyA9IGNoYXJCdWZmZXJbdWNQb3NdOworCQllbHNlCisJCSAgICBuZXh0VUMgPSBJTlZBTElEQ0hBUjsKKworCQkvLyBpZiB3ZSBoYXZlIHR3byB1bmNvbXByZXNzaWJsZSBjaGFycyBpbiBhIHJvdywKKwkJLy8gcHV0IHRoZSBjdXJyZW50IGNoYXIncyBieXRlcyBpbiB0aGUgc3RyZWFtCisJCWlmKCAhIGlzQ29tcHJlc3NpYmxlKGN1clVDKSAKKwkJICAgIHx8IChuZXh0VUMgIT0gSU5WQUxJRENIQVIgJiYgISBpc0NvbXByZXNzaWJsZShuZXh0VUMpKSkgeworCQkgICAgLy8gbWFrZSBzdXJlIHRoZXJlIGlzIGVub3VnaCByb29tIHRvIHdyaXRlIGFsbCB0aHJlZSBieXRlcworCQkgICAgLy8gaWYgbm90LCByZXdpbmQgdGhlIHNvdXJjZSBzdHJlYW0gYW5kIGJyZWFrIG91dAorCQkgICAgaWYoIChieXRlUG9zICsgMikgPj0gYnl0ZUJ1ZmZlckxpbWl0KSAKKwkJCXsgLS11Y1BvczsgYnJlYWsgbWFpbkxvb3A7IH0KKworCQkgICAgaGlCeXRlID0gY3VyVUMgPj4+IDg7CisJCSAgICBsb0J5dGUgPSBjdXJVQyAmIDB4RkY7CisKKwkJICAgIGlmKHNVbmljb2RlVGFnVGFibGVbIGhpQnl0ZSBdKQorCQkJLy8gYWRkIHF1b3RlIFVuaWNvZGUgdGFnCisJCQlieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgVVFVT1RFVTsKKyAgICAgICAgICAgICAgICAKKwkJICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSBoaUJ5dGU7CisJCSAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgbG9CeXRlOworICAgICAgICB9CisJCQorCQkvLyBieXRlcyBsZXNzIHRoYW4gMHg4MCBjYW4gZ28gc3RyYWlnaHQgaW4gdGhlIHN0cmVhbSwKKwkJLy8gYnV0IGluIHNpbmdsZS1ieXRlIG1vZGUKKwkJZWxzZSBpZihjdXJVQyA8IDB4MDA4MCkgeworCQkgICAgbG9CeXRlID0gY3VyVUMgJiAweEZGOworCisJCSAgICAvLyBpZiB0d28gY2hhcnMgaW4gYSByb3cgYmVsb3cgMHg4MCBhbmQgdGhlCisJCSAgICAvLyBjdXJyZW50IGNoYXIgaXMgbm90IGEgc2luZ2xlLWJ5dGUgbW9kZSB0YWcsCisJCSAgICAvLyBzd2l0Y2ggdG8gc2luZ2xlLWJ5dGUgbW9kZQorCQkgICAgaWYobmV4dFVDICE9IElOVkFMSURDSEFSIAorCQkgICAgICAgJiYgbmV4dFVDIDwgMHgwMDgwICYmICEgc1NpbmdsZVRhZ1RhYmxlWyBsb0J5dGUgXSApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoZXJlIGlzIGVub3VnaCByb29tIHRvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdyaXRlIGJvdGggYnl0ZXMgaWYgbm90LCByZXdpbmQgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNvdXJjZSBzdHJlYW0gYW5kIGJyZWFrIG91dAorCQkJaWYoIChieXRlUG9zICsgMSkgPj0gYnl0ZUJ1ZmZlckxpbWl0KSAKKwkJCSAgICB7IC0tdWNQb3M7IGJyZWFrIG1haW5Mb29wOyB9CisKKwkJCS8vIHVzZSB0aGUgbGFzdC1hY3RpdmUgd2luZG93CisJCQl3aGljaFdpbmRvdyA9IGZDdXJyZW50V2luZG93OworCQkJYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpKFVDSEFOR0UwICsgd2hpY2hXaW5kb3cpOworCQkJYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpIGxvQnl0ZTsKKworCQkJLy9mQ3VycmVudFdpbmRvdyA9IDA7CisJCQlmVGltZVN0YW1wcyBbd2hpY2hXaW5kb3ddID0gKytmVGltZVN0YW1wOworCQkJZk1vZGUgPSBTSU5HTEVCWVRFTU9ERTsKKwkJCWJyZWFrIHVuaWNvZGVNb2RlTG9vcDsKKwkJICAgIH0KKworCQkgICAgLy8gb3RoZXJ3aXNlLCBqdXN0IHdyaXRlIHRoZSBieXRlcyB0byB0aGUgc3RyZWFtCisJCSAgICAvLyAodGhpcyB3aWxsIGNvdmVyIHRoZSBjYXNlIG9mIG9ubHkgMSBjaGFyIGxlc3MgdGhhbiAweDgwCisJCSAgICAvLyBhbmQgc2luZ2xlLWJ5dGUgbW9kZSB0YWdzKQorCQkgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGVyZSBpcyBlbm91Z2ggcm9vbSB0bworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3cml0ZSBib3RoIGJ5dGVzIGlmIG5vdCwgcmV3aW5kIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzb3VyY2Ugc3RyZWFtIGFuZCBicmVhayBvdXQKKwkJCWlmKChieXRlUG9zICsgMSkgPj0gYnl0ZUJ1ZmZlckxpbWl0KSAKKwkJCSAgICB7IC0tdWNQb3M7IGJyZWFrIG1haW5Mb29wOyB9CisKKwkJCS8vIHNpbmNlIHRoZSBjaGFyYWN0ZXIgaXMgbGVzcyB0aGFuIDB4ODAsIHRoZQorCQkJLy8gaGlnaCBieXRlIGlzIGFsd2F5cyAweDAwIC0gbm8gbmVlZCBmb3IKKwkJCS8vIChjdXJVQyA+Pj4gOCkKKwkJCWJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSAweDAwOworCQkJYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpIGxvQnl0ZTsKKwkJICAgIH0KKwkJfQorCisJCS8vIGZpZ3VyZSBvdXQgaWYgdGhlIGN1cnJlbnQgY2hhciBpcyBpbiBhIGRlZmluZWQgd2luZG93CisJCWVsc2UgaWYoKHdoaWNoV2luZG93ID0gZmluZER5bmFtaWNXaW5kb3coY3VyVUMpKSAKKwkJCSE9IElOVkFMSURXSU5ET1cgKSB7CisJCSAgICAvLyBpZiB0d28gY2hhcnMgaW4gYSByb3cgaW4gdGhlIHNhbWUgd2luZG93LAorCQkgICAgLy8gc3dpdGNoIHRvIHRoYXQgd2luZG93IGFuZCBnbyB0byBzaW5nbGUtYnl0ZSBtb2RlCisJCSAgICAvLyBpbkR5bmFtaWNXaW5kb3cgd2lsbCByZXR1cm4gZmFsc2UgZm9yIElOVkFMSURDSEFSCisJCSAgICBpZihpbkR5bmFtaWNXaW5kb3cobmV4dFVDLCB3aGljaFdpbmRvdykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoZXJlIGlzIGVub3VnaCByb29tIHRvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdyaXRlIGJvdGggYnl0ZXMgaWYgbm90LCByZXdpbmQgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNvdXJjZSBzdHJlYW0gYW5kIGJyZWFrIG91dAorCQkJaWYoKGJ5dGVQb3MgKyAxKSA+PSBieXRlQnVmZmVyTGltaXQpIAorCQkJICAgIHsgLS11Y1BvczsgYnJlYWsgbWFpbkxvb3A7IH0KKworCQkJYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpKFVDSEFOR0UwICsgd2hpY2hXaW5kb3cpOworCQkJYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpIAorCQkJICAgIChjdXJVQyAtIGZPZmZzZXRzW3doaWNoV2luZG93XSAKKwkJCSAgICAgKyBDT01QUkVTU0lPTk9GRlNFVCk7CisKKwkJCWZUaW1lU3RhbXBzIFsgd2hpY2hXaW5kb3cgXSA9ICsrZlRpbWVTdGFtcDsKKwkJCWZDdXJyZW50V2luZG93ID0gd2hpY2hXaW5kb3c7CisJCQlmTW9kZSA9IFNJTkdMRUJZVEVNT0RFOworCQkJYnJlYWsgdW5pY29kZU1vZGVMb29wOworCQkgICAgfQorCisJCSAgICAvLyBvdGhlcndpc2UsIGp1c3QgcXVvdGUgdGhlIHVuaWNvZGUgZm9yIHRoZSBjaGFyCisJCSAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoZXJlIGlzIGVub3VnaCByb29tIHRvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdyaXRlIGFsbCB0aHJlZSBieXRlcyBpZiBub3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJld2luZCB0aGUgc291cmNlIHN0cmVhbSBhbmQgYnJlYWsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3V0CisJCQlpZigoYnl0ZVBvcyArIDIpID49IGJ5dGVCdWZmZXJMaW1pdCkgCisJCQkgICAgeyAtLXVjUG9zOyBicmVhayBtYWluTG9vcDsgfQorCisJCQloaUJ5dGUgPSBjdXJVQyA+Pj4gODsKKwkJCWxvQnl0ZSA9IGN1clVDICYgMHhGRjsKKworCQkJaWYoc1VuaWNvZGVUYWdUYWJsZVsgaGlCeXRlIF0pCisJCQkgICAgLy8gYWRkIHF1b3RlIFVuaWNvZGUgdGFnCisJCQkgICAgYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpIFVRVU9URVU7CisKKwkJCWJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSBoaUJ5dGU7CisJCQlieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgbG9CeXRlOworCQkgICAgfQorCQl9CisJCQorCQkvLyBjaGFyIGlzIG5vdCBpbiBhIGRlZmluZWQgd2luZG93CisJCWVsc2UgeworCQkgICAgLy8gZGV0ZXJtaW5lIGluZGV4IGZvciBjdXJyZW50IGNoYXIgKGNoYXIgaXMgY29tcHJlc3NpYmxlKQorCQkgICAgY3VySW5kZXggPSBtYWtlSW5kZXgoY3VyVUMpOworCQkgICAgZkluZGV4Q291bnRbY3VySW5kZXhdKys7CisJCSAgICAKKwkJICAgIC8vIGxvb2sgYWhlYWQKKwkJICAgIGlmKCAodWNQb3MgKyAxKSA8IGNoYXJCdWZmZXJMaW1pdCApCisJCQlmb3J3YXJkVUMgPSBjaGFyQnVmZmVyW3VjUG9zICsgMV07CisJCSAgICBlbHNlCisJCQlmb3J3YXJkVUMgPSBJTlZBTElEQ0hBUjsKKwkJICAgIAorCQkgICAgLy8gaWYgd2UgaGF2ZSBlbmNvdW50ZXJlZCB0aGlzIGluZGV4IGF0IGxlYXN0IG9uY2UKKwkJICAgIC8vIGJlZm9yZSwgZGVmaW5lIGEgbmV3IHdpbmRvdyBmb3IgaXQgdGhhdCBoYXNuJ3QKKwkJICAgIC8vIHByZXZpb3VzbHkgYmVlbiByZWRlZmluZWQKKwkJICAgIC8vIE9SCisJCSAgICAvLyBpZiB0aHJlZSBjaGFycyBpbiBhIHJvdyB3aXRoIHRoZSBzYW1lIGluZGV4LAorCQkgICAgLy8gZGVmaW5lIGEgbmV3IHdpbmRvdyAobWFrZUluZGV4IHdpbGwgcmV0dXJuCisJCSAgICAvLyBSRVNFUlZFRElOREVYIGZvciBJTlZBTElEQ0hBUikKKwkJICAgIGlmKChmSW5kZXhDb3VudFtjdXJJbmRleF0gPiAxKSB8fAorCQkgICAgICAgKGN1ckluZGV4ID09IG1ha2VJbmRleChuZXh0VUMpIAorCQkJJiYgY3VySW5kZXggPT0gbWFrZUluZGV4KGZvcndhcmRVQykpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGVyZSBpcyBlbm91Z2ggcm9vbSB0bworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3cml0ZSBhbGwgdGhyZWUgYnl0ZXMgaWYgbm90LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXdpbmQgdGhlIHNvdXJjZSBzdHJlYW0gYW5kIGJyZWFrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG91dAorCQkJaWYoKGJ5dGVQb3MgKyAyKSA+PSBieXRlQnVmZmVyTGltaXQpIAorCQkJICAgIHsgLS11Y1BvczsgYnJlYWsgbWFpbkxvb3A7IH0KKworCQkJLy8gZ2V0IGxlYXN0IHJlY2VudGx5IGRlZmluZWQgd2luZG93CisJCQl3aGljaFdpbmRvdyA9IGdldExSRGVmaW5lZFdpbmRvdygpOworCisJCQlieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkoVURFRklORTAgKyB3aGljaFdpbmRvdyk7CisJCQlieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgY3VySW5kZXg7CisJCQlieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgCisJCQkgICAgKGN1clVDIC0gc09mZnNldFRhYmxlW2N1ckluZGV4XSAKKwkJCSAgICAgKyBDT01QUkVTU0lPTk9GRlNFVCk7CisJCQkKKwkJCWZPZmZzZXRzW3doaWNoV2luZG93XSA9IHNPZmZzZXRUYWJsZVtjdXJJbmRleF07CisJCQlmQ3VycmVudFdpbmRvdyA9IHdoaWNoV2luZG93OworCQkJZlRpbWVTdGFtcHMgW3doaWNoV2luZG93XSA9ICsrZlRpbWVTdGFtcDsKKwkJCWZNb2RlID0gU0lOR0xFQllURU1PREU7CisJCQlicmVhayB1bmljb2RlTW9kZUxvb3A7CisJCSAgICB9CisJCSAgICAKKwkJICAgIC8vIG90aGVyd2lzZSBqdXN0IHF1b3RlIHRoZSB1bmljb2RlLCBhbmQgc2F2ZSBvdXIKKwkJICAgIC8vIHdpbmRvd3MgZm9yIGxvbmdlciBydW5zCisJCSAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoZXJlIGlzIGVub3VnaCByb29tIHRvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdyaXRlIGFsbCB0aHJlZSBieXRlcyBpZiBub3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJld2luZCB0aGUgc291cmNlIHN0cmVhbSBhbmQgYnJlYWsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3V0CisJCQlpZigoYnl0ZVBvcyArIDIpID49IGJ5dGVCdWZmZXJMaW1pdCkgCisJCQkgICAgeyAtLXVjUG9zOyBicmVhayBtYWluTG9vcDsgfQorCisJCQloaUJ5dGUgPSBjdXJVQyA+Pj4gODsKKwkJCWxvQnl0ZSA9IGN1clVDICYgMHhGRjsKKworCQkJaWYoc1VuaWNvZGVUYWdUYWJsZVsgaGlCeXRlIF0pCisJCQkgICAgLy8gYWRkIHF1b3RlIFVuaWNvZGUgdGFnCisJCQkgICAgYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpIFVRVU9URVU7ICAKKwkJCQorCQkJYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpIGhpQnl0ZTsKKwkJCWJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSBsb0J5dGU7CisJCSAgICB9CisJCX0KKwkgICAgfQorCSAgICB9ICAvLyBlbmQgc3dpdGNoCisJfQorCQorICAgICAgICAvLyBmaWxsIGluIG91dHB1dCBwYXJhbWV0ZXIKKwlpZihjaGFyc1JlYWQgIT0gbnVsbCkKKwkgICAgY2hhcnNSZWFkIFswXSA9ICh1Y1BvcyAtIGNoYXJCdWZmZXJTdGFydCk7CisgICAgICAgIAorICAgICAgICAvLyByZXR1cm4gIyBvZiBieXRlcyB3cml0dGVuCisgICAgICAgIHJldHVybiAoYnl0ZVBvcyAtIGJ5dGVCdWZmZXJTdGFydCk7CisgICAgfQorCisgICAgLyoqIFJlc2V0IHRoZSBjb21wcmVzc29yIHRvIGl0cyBpbml0aWFsIHN0YXRlLiAqLworICAgIHB1YmxpYyB2b2lkIHJlc2V0KCkKKyAgICB7CisJaW50IGk7CisKKyAgICAgICAgLy8gcmVzZXQgZHluYW1pYyB3aW5kb3dzCisgICAgICAgIGZPZmZzZXRzWzBdID0gMHgwMDgwOyAgICAvLyBMYXRpbi0xCisgICAgICAgIGZPZmZzZXRzWzFdID0gMHgwMEMwOyAgICAvLyBMYXRpbi0xIFN1cHBsZW1lbnQgKyBMYXRpbiBFeHRlbmRlZC1BCisgICAgICAgIGZPZmZzZXRzWzJdID0gMHgwNDAwOyAgICAvLyBDeXJpbGxpYworICAgICAgICBmT2Zmc2V0c1szXSA9IDB4MDYwMDsgICAgLy8gQXJhYmljCisgICAgICAgIGZPZmZzZXRzWzRdID0gMHgwOTAwOyAgICAvLyBEZXZhbmFnYXJpCisgICAgICAgIGZPZmZzZXRzWzVdID0gMHgzMDQwOyAgICAvLyBIaXJhZ2FuYQorICAgICAgICBmT2Zmc2V0c1s2XSA9IDB4MzBBMDsgICAgLy8gS2F0YWthbmEKKyAgICAgICAgZk9mZnNldHNbN10gPSAweEZGMDA7ICAgIC8vIEZ1bGx3aWR0aCBBU0NJSQorCisKKyAgICAgICAgLy8gcmVzZXQgdGltZSBzdGFtcHMKKyAgICAgICAgZm9yKGkgPSAwOyBpIDwgTlVNV0lORE9XUzsgaSsrKSB7CisgICAgICAgICAgICBmVGltZVN0YW1wc1tpXSAgICAgICAgICA9IDA7CisgICAgICAgIH0KKworICAgICAgICAvLyByZXNldCBjb3VudCBvZiBzZWVuIGluZGljZXMKKyAgICAgICAgZm9yKGkgPSAwOyBpIDw9IE1BWElOREVYOyBpKysgKSB7CisgICAgICAgICAgICBmSW5kZXhDb3VudFtpXSA9IDA7CisgICAgICAgIH0KKworICAgICAgICBmVGltZVN0YW1wICAgICAgPSAwOyAgICAgICAgICAgICAgICAvLyBSZXNldCBjdXJyZW50IHRpbWUgc3RhbXAKKyAgICAgICAgZkN1cnJlbnRXaW5kb3cgID0gMDsgICAgICAgICAgICAgICAgLy8gTWFrZSBjdXJyZW50IHdpbmRvdyBMYXRpbi0xCisgICAgICAgIGZNb2RlICAgICAgICAgICA9IFNJTkdMRUJZVEVNT0RFOyAgIC8vIEFsd2F5cyBzdGFydCBpbiBzaW5nbGUtYnl0ZSBtb2RlCisgICAgfQorCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIERldGVybWluZSB0aGUgaW5kZXggZm9yIGEgY2hhcmFjdGVyCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIHRoZSBpbmRleCB2YWx1ZSBmb3IgYSBjaGFyYWN0ZXIuCisgICAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhpcyBmdW5jdGlvbiwgcmVmZXIgdG8gdGFibGUgWC0zCisgICAgICogPEEgSFJFRj0iaHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHI2Ij5VVFI2PC9BPi4KKyAgICAgKiBAcGFyYW0gYyBUaGUgY2hhcmFjdGVyIGluIHF1ZXN0aW9uLgorICAgICAqIEByZXR1cm4gQW4gaW5kZXggZm9yIGMKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgbWFrZUluZGV4KGludCBjKQorICAgIHsKKyAgICAgICAgLy8gY2hlY2sgdGhlIHByZWRlZmluZWQgaW5kaWNlcworICAgICAgICBpZihjID49IDB4MDBDMCAmJiBjIDwgMHgwMTQwKQorICAgICAgICAgICAgcmV0dXJuIExBVElOSU5ERVg7CisgICAgICAgIGVsc2UgaWYoYyA+PSAweDAyNTAgJiYgYyA8IDB4MDJEMCkKKyAgICAgICAgICAgIHJldHVybiBJUEFFWFRFTlNJT05JTkRFWDsKKyAgICAgICAgZWxzZSBpZihjID49IDB4MDM3MCAmJiBjIDwgMHgwM0YwKQorICAgICAgICAgICAgcmV0dXJuIEdSRUVLSU5ERVg7CisgICAgICAgIGVsc2UgaWYoYyA+PSAweDA1MzAgJiYgYyA8IDB4MDU5MCkKKyAgICAgICAgICAgIHJldHVybiBBUk1FTklBTklOREVYOworICAgICAgICBlbHNlIGlmKGMgPj0gMHgzMDQwICYmIGMgPCAweDMwQTApCisgICAgICAgICAgICByZXR1cm4gSElSQUdBTkFJTkRFWDsKKyAgICAgICAgZWxzZSBpZihjID49IDB4MzBBMCAmJiBjIDwgMHgzMTIwKQorICAgICAgICAgICAgcmV0dXJuIEtBVEFLQU5BSU5ERVg7CisgICAgICAgIGVsc2UgaWYoYyA+PSAweEZGNjAgJiYgYyA8IDB4RkY5RikKKyAgICAgICAgICAgIHJldHVybiBIQUxGV0lEVEhLQVRBS0FOQUlOREVYOworCisgICAgICAgIC8vIGNhbGN1bGF0ZSBpbmRleAorICAgICAgICBlbHNlIGlmKGMgPj0gMHgwMDgwICYmIGMgPCAweDM0MDApCisgICAgICAgICAgICByZXR1cm4gKGMgLyAweDgwKSAmIDB4RkY7CisgICAgICAgIGVsc2UgaWYoYyA+PSAweEUwMDAgJiYgYyA8PSAweEZGRkYpCisgICAgICAgICAgICByZXR1cm4gKChjIC0gMHhBQzAwKSAvIDB4ODApICYgMHhGRjsKKyAgICAgICAgICAgIAorICAgICAgICAvLyBzaG91bGQgbmV2ZXIgaGFwcGVuCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIFJFU0VSVkVESU5ERVg7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gQ2hlY2sgaWYgYSBnaXZlbiBjaGFyYWN0ZXIgZml0cyBpbiBhIHdpbmRvdworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICogRGV0ZXJtaW5lIGlmIGEgY2hhcmFjdGVyIGlzIGluIGEgZHluYW1pYyB3aW5kb3cuCisgICAgKiBAcGFyYW0gYyBUaGUgY2hhcmFjdGVyIHRvIHRlc3QKKyAgICAqIEBwYXJhbSB3aGljaFdpbmRvdyBUaGUgZHluYW1pYyB3aW5kb3cgdGhlIHRlc3QKKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiA8VFQ+YzwvVFQ+IHdpbGwgZml0IGluIDxUVD53aGljaFdpbmRvdzwvVFQ+LCAKKyAgICAqIGZhbHNlIG90aGVyd2lzZS4KKyAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBpbkR5bmFtaWNXaW5kb3coaW50IGMsIAorCQkJCSAgICBpbnQgd2hpY2hXaW5kb3cpCisgICAgeworICAgICAgICByZXR1cm4gKGMgPj0gZk9mZnNldHNbd2hpY2hXaW5kb3ddIAorCQkmJiBjIDwgKGZPZmZzZXRzW3doaWNoV2luZG93XSArIDB4ODApKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmUgaWYgYSBjaGFyYWN0ZXIgaXMgaW4gYSBzdGF0aWMgd2luZG93LgorICAgICogQHBhcmFtIGMgVGhlIGNoYXJhY3RlciB0byB0ZXN0CisgICAgKiBAcGFyYW0gd2hpY2hXaW5kb3cgVGhlIHN0YXRpYyB3aW5kb3cgdGhlIHRlc3QKKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiA8VFQ+YzwvVFQ+IHdpbGwgZml0IGluIDxUVD53aGljaFdpbmRvdzwvVFQ+LCAKKyAgICAqIGZhbHNlIG90aGVyd2lzZS4KKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaW5TdGF0aWNXaW5kb3coaW50IGMsIAorCQkJCQkgIGludCB3aGljaFdpbmRvdykKKyAgICB7CisgICAgICAgIHJldHVybiAoYyA+PSBzT2Zmc2V0c1t3aGljaFdpbmRvd10KKwkJJiYgYyA8IChzT2Zmc2V0c1t3aGljaFdpbmRvd10gKyAweDgwKSk7CisgICAgfQorCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIENoZWNrIGlmIGEgZ2l2ZW4gY2hhcmFjdGVyIGlzIGNvbXByZXNzaWJsZQorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICogRGV0ZXJtaW5lIGlmIGEgY2hhcmFjdGVyIGlzIGNvbXByZXNzaWJsZS4KKyAgICAqIEBwYXJhbSBjIFRoZSBjaGFyYWN0ZXIgdG8gdGVzdC4KKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgPFRUPmM8L1RUPiBpcyBjb21wcmVzc2libGUsIGZhbHNlIG90aGVyd2lzZS4KKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNDb21wcmVzc2libGUoaW50IGMpCisgICAgeworICAgICAgICByZXR1cm4gKGMgPCAweDM0MDAgfHwgYyA+PSAweEUwMDApOworICAgIH0KKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBDaGVjayBpZiBhIHdpbmRvdyBpcyBkZWZpbmVkIGZvciBhIGdpdmVuIGNoYXJhY3RlcgorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIERldGVybWluZSBpZiBhIGR5bmFtaWMgd2luZG93IGZvciBhIGNlcnRhaW4gY2hhcmFjdGVyIGlzIGRlZmluZWQKKyAgICAgKiBAcGFyYW0gYyBUaGUgY2hhcmFjdGVyIGluIHF1ZXN0aW9uCisgICAgICogQHJldHVybiBUaGUgZHluYW1pYyB3aW5kb3cgY29udGFpbmluZyA8VFQ+YzwvVFQ+LCBvciAKKyAgICAgKiBJTlZBTElEV0lORE9XIGlmIG5vdCBkZWZpbmVkLgorICAgICAqLworICAgIHByaXZhdGUgaW50IGZpbmREeW5hbWljV2luZG93KGludCBjKQorICAgIHsKKwkvLyBzdXBwb3NlZGx5IGZhc3RlciB0byBjb3VudCBkb3duCisgICAgICAgIC8vZm9yKGludCBpID0gMDsgaSA8IE5VTVdJTkRPV1M7IGkrKykgeworCWZvcihpbnQgaSA9IE5VTVdJTkRPV1MgLSAxOyBpID49IDA7IC0taSkgeworCSAgICBpZihpbkR5bmFtaWNXaW5kb3coYywgaSkpIHsKKwkJKytmVGltZVN0YW1wc1tpXTsKKyAgICAgICAgICAgICAgICByZXR1cm4gaTsKKwkgICAgfQorCX0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBJTlZBTElEV0lORE9XOworICAgIH0KKworICAgIC8qKgorICAgICAqIERldGVybWluZSBpZiBhIHN0YXRpYyB3aW5kb3cgZm9yIGEgY2VydGFpbiBjaGFyYWN0ZXIgaXMgZGVmaW5lZAorICAgICAqIEBwYXJhbSBjIFRoZSBjaGFyYWN0ZXIgaW4gcXVlc3Rpb24KKyAgICAgKiBAcmV0dXJuIFRoZSBzdGF0aWMgd2luZG93IGNvbnRhaW5pbmcgPFRUPmM8L1RUPiwgb3IgCisgICAgICogSU5WQUxJRFdJTkRPVyBpZiBub3QgZGVmaW5lZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZmluZFN0YXRpY1dpbmRvdyhpbnQgYykKKyAgICB7CisJLy8gc3VwcG9zZWRseSBmYXN0ZXIgdG8gY291bnQgZG93bgorICAgICAgICAvL2ZvcihpbnQgaSA9IDA7IGkgPCBOVU1TVEFUSUNXSU5ET1dTOyBpKyspIHsKKwlmb3IoaW50IGkgPSBOVU1TVEFUSUNXSU5ET1dTIC0gMTsgaSA+PSAwOyAtLWkpIHsKKwkgICAgaWYoaW5TdGF0aWNXaW5kb3coYywgaSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaTsKKwkgICAgfQorCX0KKwkKKyAgICAgICAgcmV0dXJuIElOVkFMSURXSU5ET1c7CisgICAgfQorICAgIAorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBGaW5kIHRoZSBsZWFzdC1yZWNlbnRseSB1c2VkIHdpbmRvdworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKiBGaW5kIHRoZSBsZWFzdC1yZWNlbnRseSBkZWZpbmVkIHdpbmRvdyAqLworICAgIHByaXZhdGUgaW50IGdldExSRGVmaW5lZFdpbmRvdygpCisgICAgeworICAgICAgICBpbnQgbGVhc3RSVSAgICAgICAgID0gSW50ZWdlci5NQVhfVkFMVUU7CisgICAgICAgIGludCB3aGljaFdpbmRvdyAgICAgPSBJTlZBTElEV0lORE9XOworCisgICAgICAgIC8vIGZpbmQgbGVhc3QgcmVjZW50bHkgdXNlZCB3aW5kb3cKKyAgICAgICAgLy8gc3VwcG9zZWRseSBmYXN0ZXIgdG8gY291bnQgZG93bgorICAgICAgICAvL2ZvciggaW50IGkgPSAwOyBpIDwgTlVNV0lORE9XUzsgaSsrICkgeworICAgICAgICBmb3IoaW50IGkgPSBOVU1XSU5ET1dTIC0gMTsgaSA+PSAwOyAtLWkgKSB7CisgICAgICAgICAgICBpZiggZlRpbWVTdGFtcHNbaV0gPCBsZWFzdFJVICkgeworICAgICAgICAgICAgICAgIGxlYXN0UlUgICA9IGZUaW1lU3RhbXBzW2ldOworICAgICAgICAgICAgICAgIHdoaWNoV2luZG93ICA9IGk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gd2hpY2hXaW5kb3c7CisgICAgfQorICAgIAorfTsKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVEZWNvbXByZXNzb3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVEZWNvbXByZXNzb3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lNTQ2MzhhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZURlY29tcHJlc3Nvci5qYXZhCkBAIC0wLDAgKzEsNTY1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlRGVjb21wcmVzc29yLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6MjEgJCAKKyAqICRSZXZpc2lvbjogMS4zICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKKy8qKgorKiBBIGRlY29tcHJlc3Npb24gZW5naW5lIGltcGxlbWVudGluZyB0aGUgU3RhbmRhcmQgQ29tcHJlc3Npb24gU2NoZW1lCisqIGZvciBVbmljb2RlIChTQ1NVKSBhcyBvdXRsaW5lZCBpbiA8QQorKiBIUkVGPSJodHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjYiPlVuaWNvZGUgVGVjaG5pY2FsCisqIFJlcG9ydCAjNjwvQT4uCisqCisqIDxQPjxTVFJPTkc+VVNBR0U8L1NUUk9ORz48L1A+CisqCisqIDxQPlRoZSBzdGF0aWMgbWV0aG9kcyBvbiA8VFQ+VW5pY29kZURlY29tcHJlc3NvcjwvVFQ+IG1heSBiZSB1c2VkIGluIGEKKyogc3RyYWlnaHRmb3J3YXJkIG1hbm5lciB0byBkZWNvbXByZXNzIHNpbXBsZSBzdHJpbmdzOjwvUD4KKyoKKyogPFBSRT4KKyogIGJ5dGUgW10gY29tcHJlc3NlZCA9IC4uLiA7IC8vIGdldCBjb21wcmVzc2VkIGJ5dGVzIGZyb20gc29tZXdoZXJlCisqICBTdHJpbmcgcmVzdWx0ID0gVW5pY29kZURlY29tcHJlc3Nvci5kZWNvbXByZXNzKGNvbXByZXNzZWQpOworKiA8L1BSRT4KKyoKKyogPFA+VGhlIHN0YXRpYyBtZXRob2RzIGhhdmUgYSBmYWlybHkgbGFyZ2UgbWVtb3J5IGZvb3RwcmludC4KKyogRm9yIGZpbmVyLWdyYWluZWQgY29udHJvbCBvdmVyIG1lbW9yeSB1c2FnZSwgCisqIDxUVD5Vbmljb2RlRGVjb21wcmVzc29yPC9UVD4gb2ZmZXJzIG1vcmUgcG93ZXJmdWwgQVBJcyBhbGxvd2luZworKiBpdGVyYXRpdmUgZGVjb21wcmVzc2lvbjo8L1A+CisqCisqIDxQUkU+CisqICAvLyBEZWNvbXByZXNzIGFuIGFycmF5ICJieXRlcyIgb2YgbGVuZ3RoICJsZW4iIHVzaW5nIGEgYnVmZmVyIG9mIDUxMiBjaGFycworKiAgLy8gdG8gdGhlIFdyaXRlciAib3V0IgorKgorKiAgVW5pY29kZURlY29tcHJlc3NvciBteURlY29tcHJlc3NvciAgICAgICAgID0gbmV3IFVuaWNvZGVEZWNvbXByZXNzb3IoKTsKKyogIGZpbmFsIHN0YXRpYyBpbnQgICAgQlVGU0laRSAgICAgICAgICAgICAgICA9IDUxMjsKKyogIGNoYXIgW10gICAgICAgICAgICAgY2hhckJ1ZmZlciAgICAgICAgICAgICA9IG5ldyBjaGFyIFsgQlVGU0laRSBdOworKiAgaW50ICAgICAgICAgICAgICAgICBjaGFyc1dyaXR0ZW4gICAgICAgICAgID0gMDsKKyogIGludCBbXSAgICAgICAgICAgICAgYnl0ZXNSZWFkICAgICAgICAgICAgICA9IG5ldyBpbnQgWzFdOworKiAgaW50ICAgICAgICAgICAgICAgICB0b3RhbEJ5dGVzRGVjb21wcmVzc2VkID0gMDsKKyogIGludCAgICAgICAgICAgICAgICAgdG90YWxDaGFyc1dyaXR0ZW4gICAgICA9IDA7CisqCisqICBkbyB7CisqICAgIC8vIGRvIHRoZSBkZWNvbXByZXNzaW9uCisqICAgIGNoYXJzV3JpdHRlbiA9IG15RGVjb21wcmVzc29yLmRlY29tcHJlc3MoYnl0ZXMsIHRvdGFsQnl0ZXNEZWNvbXByZXNzZWQsIAorKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiwgYnl0ZXNSZWFkLAorKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJCdWZmZXIsIDAsIEJVRlNJWkUpOworKgorKiAgICAvLyBkbyBzb21ldGhpbmcgd2l0aCB0aGUgY3VycmVudCBzZXQgb2YgY2hhcnMKKyogICAgb3V0LndyaXRlKGNoYXJCdWZmZXIsIDAsIGNoYXJzV3JpdHRlbik7CisqCisqICAgIC8vIHVwZGF0ZSB0aGUgbm8uIG9mIGJ5dGVzIGRlY29tcHJlc3NlZAorKiAgICB0b3RhbEJ5dGVzRGVjb21wcmVzc2VkICs9IGJ5dGVzUmVhZFswXTsKKyoKKyogICAgLy8gdXBkYXRlIHRoZSBuby4gb2YgY2hhcnMgd3JpdHRlbgorKiAgICB0b3RhbENoYXJzV3JpdHRlbiArPSBjaGFyc1dyaXR0ZW47CisqCisqICB9IHdoaWxlKHRvdGFsQnl0ZXNEZWNvbXByZXNzZWQgPCBsZW4pOworKgorKiAgbXlEZWNvbXByZXNzb3IucmVzZXQoKTsgLy8gcmV1c2UgZGVjb21wcmVzc29yCisqIDwvUFJFPgorKgorKiA8UD5EZWNvbXByZXNzaW9uIGlzIHBlcmZvcm1lZCBhY2NvcmRpbmcgdG8gdGhlIHN0YW5kYXJkIHNldCBmb3J0aCBpbiAKKyogPEEgSFJFRj0iaHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHI2Ij5Vbmljb2RlIFRlY2huaWNhbCAKKyogUmVwb3J0ICM2PC9BPjwvUD4KKyoKKyogQHNlZSBVbmljb2RlQ29tcHJlc3NvcgorKgorKiBAYXV0aG9yIFN0ZXBoZW4gRi4gQm9vdGgKKyogQHZlcnNpb24gMS41IDA1IEF1ZyA5OQorKiBAdmVyc2lvbiAxLjQgMjEgSnVsIDk5CisqIEB2ZXJzaW9uIDEuMyAxMCBNYXIgOTkKKyogQHZlcnNpb24gMS4yIDA4IE1hciA5OQorKiBAdmVyc2lvbiAxLjEgMTEgSmFuIDk5IAorKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBVbmljb2RlRGVjb21wcmVzc29yIGltcGxlbWVudHMgU0NTVQoreworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBJbnN0YW5jZSB2YXJpYWJsZXMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgCisgICAgLyoqIEFsaWFzIHRvIGN1cnJlbnQgZHluYW1pYyB3aW5kb3cgKi8KKyAgICBwcml2YXRlIGludCAgICAgICBmQ3VycmVudFdpbmRvdyAgID0gMDsKKworICAgIC8qKiBEeW5hbWljIGNvbXByZXNzaW9uIHdpbmRvdyBvZmZzZXRzICovCisgICAgcHJpdmF0ZSBpbnQgW10gICAgZk9mZnNldHMgICAgICAgICA9IG5ldyBpbnQgWyBOVU1XSU5ET1dTIF07CisKKyAgICAvKiogQ3VycmVudCBjb21wcmVzc2lvbiBtb2RlICovCisgICAgcHJpdmF0ZSBpbnQgICAgICAgZk1vZGUgICAgICAgICAgICA9IFNJTkdMRUJZVEVNT0RFOworCisgICAgLyoqIFNpemUgb2Ygb3VyIGludGVybmFsIGJ1ZmZlciAqLworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBCVUZTSVpFICAgPSAzOworCisgICAgLyoqIEludGVybmFsIGJ1ZmZlciBmb3Igc2F2aW5nIHN0YXRlICovCisgICAgcHJpdmF0ZSBieXRlIFtdICAgZkJ1ZmZlciAgICAgICAgICA9IG5ldyBieXRlIFtCVUZTSVpFXTsKKworICAgIC8qKiBOdW1iZXIgb2YgY2hhcmFjdGVycyBpbiBvdXIgaW50ZXJuYWwgYnVmZmVyICovCisgICAgcHJpdmF0ZSBpbnQgICAgICAgZkJ1ZmZlckxlbmd0aCAgICA9IDA7CisgICAgCisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBVbmljb2RlRGVjb21wcmVzc29yLgorICAgICAqIFNldHMgYWxsIHdpbmRvd3MgdG8gdGhlaXIgZGVmYXVsdCB2YWx1ZXMuCisgICAgICogQHNlZSAjcmVzZXQKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZURlY29tcHJlc3NvcigpCisgICAgeworCXJlc2V0KCk7ICAgICAgICAgICAgICAvLyBpbml0aWFsaXplIHRvIGRlZmF1bHRzCisgICAgfQorCisgICAgLyoqCisgICAgICogRGVjb21wcmVzcyBhIGJ5dGUgYXJyYXkgaW50byBhIFN0cmluZy4KKyAgICAgKiBAcGFyYW0gYnVmZmVyIFRoZSBieXRlIGFycmF5IHRvIGRlY29tcHJlc3MuCisgICAgICogQHJldHVybiBBIFN0cmluZyBjb250YWluaW5nIHRoZSBkZWNvbXByZXNzZWQgY2hhcmFjdGVycy4KKyAgICAgKiBAc2VlICNkZWNvbXByZXNzKGJ5dGUgW10sIGludCwgaW50KQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGRlY29tcHJlc3MoYnl0ZSBbXSBidWZmZXIpCisgICAgeworCWNoYXIgW10gYnVmID0gZGVjb21wcmVzcyhidWZmZXIsIDAsIGJ1ZmZlci5sZW5ndGgpOworCXJldHVybiBuZXcgU3RyaW5nKGJ1Zik7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGVjb21wcmVzcyBhIGJ5dGUgYXJyYXkgaW50byBhIFVuaWNvZGUgY2hhcmFjdGVyIGFycmF5LgorICAgICAqIEBwYXJhbSBidWZmZXIgVGhlIGJ5dGUgYXJyYXkgdG8gZGVjb21wcmVzcy4KKyAgICAgKiBAcGFyYW0gc3RhcnQgVGhlIHN0YXJ0IG9mIHRoZSBieXRlIHJ1biB0byBkZWNvbXByZXNzLgorICAgICAqIEBwYXJhbSBsaW1pdCBUaGUgbGltaXQgb2YgdGhlIGJ5dGUgcnVuIHRvIGRlY29tcHJlc3MuCisgICAgICogQHJldHVybiBBIGNoYXJhY3RlciBhcnJheSBjb250YWluaW5nIHRoZSBkZWNvbXByZXNzZWQgYnl0ZXMuCisgICAgICogQHNlZSAjZGVjb21wcmVzcyhieXRlIFtdKQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgY2hhciBbXSBkZWNvbXByZXNzKGJ5dGUgW10gYnVmZmVyLAorCQkJCSAgICAgaW50IHN0YXJ0LAorCQkJCSAgICAgaW50IGxpbWl0KQorICAgIHsKKwlVbmljb2RlRGVjb21wcmVzc29yIGNvbXAgPSBuZXcgVW5pY29kZURlY29tcHJlc3NvcigpOworCisJLy8gdXNlIGEgYnVmZmVyIHdlIGtub3cgd2lsbCBuZXZlciBvdmVyZmxvdworCS8vIGluIHRoZSB3b3JzdCBjYXNlLCBlYWNoIGJ5dGUgd2lsbCBkZWNvbXByZXNzCisJLy8gdG8gYSBzdXJyb2dhdGUgcGFpciAoYnVmZmVyIG11c3QgYmUgYXQgbGVhc3QgMiBjaGFycykKKwlpbnQgbGVuID0gTWF0aC5tYXgoMiwgMiAqIChsaW1pdCAtIHN0YXJ0KSk7CisJY2hhciBbXSB0ZW1wID0gbmV3IGNoYXIgW2xlbl07CisKKwlpbnQgY2hhckNvdW50ID0gY29tcC5kZWNvbXByZXNzKGJ1ZmZlciwgc3RhcnQsIGxpbWl0LCBudWxsLCAKKwkJCQkJdGVtcCwgMCwgbGVuKTsKKworCWNoYXIgW10gcmVzdWx0ID0gbmV3IGNoYXIgW2NoYXJDb3VudF07CisJU3lzdGVtLmFycmF5Y29weSh0ZW1wLCAwLCByZXN1bHQsIDAsIGNoYXJDb3VudCk7CisJcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogRGVjb21wcmVzcyBhIGJ5dGUgYXJyYXkgaW50byBhIFVuaWNvZGUgY2hhcmFjdGVyIGFycmF5LgorICAgICAqCisgICAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGVpdGhlciBjb21wbGV0ZWx5IGZpbGwgdGhlIG91dHB1dCBidWZmZXIsIAorICAgICAqIG9yIGNvbnN1bWUgdGhlIGVudGlyZSBpbnB1dC4gIAorICAgICAqCisgICAgICogQHBhcmFtIGJ5dGVCdWZmZXIgVGhlIGJ5dGUgYnVmZmVyIHRvIGRlY29tcHJlc3MuCisgICAgICogQHBhcmFtIGJ5dGVCdWZmZXJTdGFydCBUaGUgc3RhcnQgb2YgdGhlIGJ5dGUgcnVuIHRvIGRlY29tcHJlc3MuCisgICAgICogQHBhcmFtIGJ5dGVCdWZmZXJMaW1pdCBUaGUgbGltaXQgb2YgdGhlIGJ5dGUgcnVuIHRvIGRlY29tcHJlc3MuCisgICAgICogQHBhcmFtIGJ5dGVzUmVhZCBBIG9uZS1lbGVtZW50IGFycmF5LiAgSWYgbm90IG51bGwsIG9uIHJldHVybgorICAgICAqIHRoZSBudW1iZXIgb2YgYnl0ZXMgcmVhZCBmcm9tIGJ5dGVCdWZmZXIuCisgICAgICogQHBhcmFtIGNoYXJCdWZmZXIgQSBidWZmZXIgdG8gcmVjZWl2ZSB0aGUgZGVjb21wcmVzc2VkIGRhdGEuIAorICAgICAqIFRoaXMgYnVmZmVyIG11c3QgYmUgYXQgbWluaW11bSB0d28gY2hhcmFjdGVycyBpbiBzaXplLgorICAgICAqIEBwYXJhbSBjaGFyQnVmZmVyU3RhcnQgVGhlIHN0YXJ0aW5nIG9mZnNldCB0byB3aGljaCB0byB3cml0ZSAKKyAgICAgKiBkZWNvbXByZXNzZWQgZGF0YS4KKyAgICAgKiBAcGFyYW0gY2hhckJ1ZmZlckxpbWl0IFRoZSBsaW1pdGluZyBvZmZzZXQgZm9yIHdyaXRpbmcgCisgICAgICogZGVjb21wcmVzc2VkIGRhdGEuCisgICAgICogQHJldHVybiBUaGUgbnVtYmVyIG9mIFVuaWNvZGUgY2hhcmFjdGVycyB3cml0dGVuIHRvIGNoYXJCdWZmZXIuCisgICAgICovCisgICAgcHVibGljIGludCBkZWNvbXByZXNzKGJ5dGUgW10gICAgYnl0ZUJ1ZmZlciwKKwkJCSAgaW50ICAgICAgICBieXRlQnVmZmVyU3RhcnQsCisJCQkgIGludCAgICAgICAgYnl0ZUJ1ZmZlckxpbWl0LAorCQkJICBpbnQgW10gICAgIGJ5dGVzUmVhZCwKKwkJCSAgY2hhciBbXSAgICBjaGFyQnVmZmVyLAorCQkJICBpbnQgICAgICAgIGNoYXJCdWZmZXJTdGFydCwKKwkJCSAgaW50ICAgICAgICBjaGFyQnVmZmVyTGltaXQpCisgICAgeworCS8vIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBzb3VyY2UgYnl0ZSBidWZmZXIKKwlpbnQgYnl0ZVBvcyAgICAgID0gYnl0ZUJ1ZmZlclN0YXJ0OworCQorCS8vIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSB0YXJnZXQgY2hhciBidWZmZXIKKwlpbnQgdWNQb3MgICAgICAgID0gY2hhckJ1ZmZlclN0YXJ0OworICAgICAgICAKKyAgICAgICAgLy8gdGhlIGN1cnJlbnQgYnl0ZSBmcm9tIHRoZSBzb3VyY2UgYnVmZmVyCisJaW50IGFCeXRlICAgICAgICA9IDB4MDA7CisKKworCS8vIGNoYXJCdWZmZXIgbXVzdCBiZSBhdCBsZWFzdCAyIGNoYXJzIGluIHNpemUKKwlpZihjaGFyQnVmZmVyLmxlbmd0aCA8IDIgfHwgKGNoYXJCdWZmZXJMaW1pdCAtIGNoYXJCdWZmZXJTdGFydCkgPCAyKQorCSAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJjaGFyQnVmZmVyLmxlbmd0aCA8IDIiKTsKKwkKKwkvLyBpZiBvdXIgaW50ZXJuYWwgYnVmZmVyIGlzbid0IGVtcHR5LCBmbHVzaCBpdHMgY29udGVudHMKKwkvLyB0byB0aGUgb3V0cHV0IGJ1ZmZlciBiZWZvcmUgZG9pbmcgYW55IG1vcmUgZGVjb21wcmVzc2lvbgorCWlmKGZCdWZmZXJMZW5ndGggPiAwKSB7CisKKwkgICAgaW50IG5ld0J5dGVzID0gMDsKKworCSAgICAvLyBmaWxsIHRoZSBidWZmZXIgY29tcGxldGVseSwgdG8gZ3VhcmFudGVlIG9uZSBmdWxsIGNoYXJhY3RlcgorCSAgICBpZihmQnVmZmVyTGVuZ3RoICE9IEJVRlNJWkUpIHsKKwkJbmV3Qnl0ZXMgPSBmQnVmZmVyLmxlbmd0aCAtIGZCdWZmZXJMZW5ndGg7CisKKwkJLy8gdmVyaWZ5IHRoZXJlIGFyZSBuZXdCeXRlcyBieXRlcyBpbiBieXRlQnVmZmVyCisJCWlmKGJ5dGVCdWZmZXJMaW1pdCAtIGJ5dGVCdWZmZXJTdGFydCA8IG5ld0J5dGVzKQorCQkgICAgbmV3Qnl0ZXMgPSBieXRlQnVmZmVyTGltaXQgLSBieXRlQnVmZmVyU3RhcnQ7CisKKwkJU3lzdGVtLmFycmF5Y29weShieXRlQnVmZmVyLCBieXRlQnVmZmVyU3RhcnQsIAorCQkJCSBmQnVmZmVyLCBmQnVmZmVyTGVuZ3RoLCBuZXdCeXRlcyk7CisJICAgIH0KKworCSAgICAvLyByZXNldCBidWZmZXIgbGVuZ3RoIHRvIDAgYmVmb3JlIHJlY3Vyc2l2ZSBjYWxsCisJICAgIGZCdWZmZXJMZW5ndGggPSAwOworCisJICAgIC8vIGNhbGwgc2VsZiByZWN1cnNpdmVseSB0byBkZWNvbXByZXNzIHRoZSBidWZmZXIKKwkgICAgaW50IGNvdW50ID0gZGVjb21wcmVzcyhmQnVmZmVyLCAwLCBmQnVmZmVyLmxlbmd0aCwgbnVsbCwKKwkJCQkgICBjaGFyQnVmZmVyLCBjaGFyQnVmZmVyU3RhcnQsIAorCQkJCSAgIGNoYXJCdWZmZXJMaW1pdCk7CisKKwkgICAgLy8gdXBkYXRlIHRoZSBwb3NpdGlvbnMgaW50byB0aGUgYXJyYXlzCisJICAgIHVjUG9zICs9IGNvdW50OworCSAgICBieXRlUG9zICs9IG5ld0J5dGVzOworCX0KKworICAgICAgICAvLyB0aGUgbWFpbiBkZWNvbXByZXNzaW9uIGxvb3AKKyAgICBtYWluTG9vcDoKKwl3aGlsZShieXRlUG9zIDwgYnl0ZUJ1ZmZlckxpbWl0ICYmIHVjUG9zIDwgY2hhckJ1ZmZlckxpbWl0KSB7CisJICAgIHN3aXRjaChmTW9kZSkgeyAgCisJICAgIGNhc2UgU0lOR0xFQllURU1PREU6CisJCS8vIHNpbmdsZS1ieXRlIG1vZGUgZGVjb21wcmVzc2lvbiBsb29wCisJICAgIHNpbmdsZUJ5dGVNb2RlTG9vcDoKKwkgICAgd2hpbGUoYnl0ZVBvcyA8IGJ5dGVCdWZmZXJMaW1pdCAmJiB1Y1BvcyA8IGNoYXJCdWZmZXJMaW1pdCkgeworCQlhQnl0ZSA9IGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSAmIDB4RkY7CisJCXN3aXRjaChhQnl0ZSkgeworCQkgICAgLy8gQWxsIGJ5dGVzIGZyb20gMHg4MCB0aHJvdWdoIDB4RkYgYXJlIHJlbWFwcGVkCisJCSAgICAvLyB0byBjaGFycyBvciBzdXJyb2dhdGUgcGFpcnMgYWNjb3JkaW5nIHRvIHRoZQorCQkgICAgLy8gY3VycmVudGx5IGFjdGl2ZSB3aW5kb3cKKwkJY2FzZSAweDgwOiBjYXNlIDB4ODE6IGNhc2UgMHg4MjogY2FzZSAweDgzOiBjYXNlIDB4ODQ6IAorCQljYXNlIDB4ODU6IGNhc2UgMHg4NjogY2FzZSAweDg3OiBjYXNlIDB4ODg6IGNhc2UgMHg4OToKKwkJY2FzZSAweDhBOiBjYXNlIDB4OEI6IGNhc2UgMHg4QzogY2FzZSAweDhEOiBjYXNlIDB4OEU6CisJCWNhc2UgMHg4RjogY2FzZSAweDkwOiBjYXNlIDB4OTE6IGNhc2UgMHg5MjogY2FzZSAweDkzOgorCQljYXNlIDB4OTQ6IGNhc2UgMHg5NTogY2FzZSAweDk2OiBjYXNlIDB4OTc6IGNhc2UgMHg5ODoKKwkJY2FzZSAweDk5OiBjYXNlIDB4OUE6IGNhc2UgMHg5QjogY2FzZSAweDlDOiBjYXNlIDB4OUQ6CisJCWNhc2UgMHg5RTogY2FzZSAweDlGOiBjYXNlIDB4QTA6IGNhc2UgMHhBMTogY2FzZSAweEEyOgorCQljYXNlIDB4QTM6IGNhc2UgMHhBNDogY2FzZSAweEE1OiBjYXNlIDB4QTY6IGNhc2UgMHhBNzoKKwkJY2FzZSAweEE4OiBjYXNlIDB4QTk6IGNhc2UgMHhBQTogY2FzZSAweEFCOiBjYXNlIDB4QUM6CisJCWNhc2UgMHhBRDogY2FzZSAweEFFOiBjYXNlIDB4QUY6IGNhc2UgMHhCMDogY2FzZSAweEIxOgorCQljYXNlIDB4QjI6IGNhc2UgMHhCMzogY2FzZSAweEI0OiBjYXNlIDB4QjU6IGNhc2UgMHhCNjoKKwkJY2FzZSAweEI3OiBjYXNlIDB4Qjg6IGNhc2UgMHhCOTogY2FzZSAweEJBOiBjYXNlIDB4QkI6CisJCWNhc2UgMHhCQzogY2FzZSAweEJEOiBjYXNlIDB4QkU6IGNhc2UgMHhCRjogY2FzZSAweEMwOgorCQljYXNlIDB4QzE6IGNhc2UgMHhDMjogY2FzZSAweEMzOiBjYXNlIDB4QzQ6IGNhc2UgMHhDNToKKwkJY2FzZSAweEM2OiBjYXNlIDB4Qzc6IGNhc2UgMHhDODogY2FzZSAweEM5OiBjYXNlIDB4Q0E6CisJCWNhc2UgMHhDQjogY2FzZSAweENDOiBjYXNlIDB4Q0Q6IGNhc2UgMHhDRTogY2FzZSAweENGOgorCQljYXNlIDB4RDA6IGNhc2UgMHhEMTogY2FzZSAweEQyOiBjYXNlIDB4RDM6IGNhc2UgMHhENDoKKwkJY2FzZSAweEQ1OiBjYXNlIDB4RDY6IGNhc2UgMHhENzogY2FzZSAweEQ4OiBjYXNlIDB4RDk6CisJCWNhc2UgMHhEQTogY2FzZSAweERCOiBjYXNlIDB4REM6IGNhc2UgMHhERDogY2FzZSAweERFOgorCQljYXNlIDB4REY6IGNhc2UgMHhFMDogY2FzZSAweEUxOiBjYXNlIDB4RTI6IGNhc2UgMHhFMzoKKwkJY2FzZSAweEU0OiBjYXNlIDB4RTU6IGNhc2UgMHhFNjogY2FzZSAweEU3OiBjYXNlIDB4RTg6CisJCWNhc2UgMHhFOTogY2FzZSAweEVBOiBjYXNlIDB4RUI6IGNhc2UgMHhFQzogY2FzZSAweEVEOgorCQljYXNlIDB4RUU6IGNhc2UgMHhFRjogY2FzZSAweEYwOiBjYXNlIDB4RjE6IGNhc2UgMHhGMjoKKwkJY2FzZSAweEYzOiBjYXNlIDB4RjQ6IGNhc2UgMHhGNTogY2FzZSAweEY2OiBjYXNlIDB4Rjc6CisJCWNhc2UgMHhGODogY2FzZSAweEY5OiBjYXNlIDB4RkE6IGNhc2UgMHhGQjogY2FzZSAweEZDOgorCQljYXNlIDB4RkQ6IGNhc2UgMHhGRTogY2FzZSAweEZGOiAKKwkJICAgIC8vIEZvciBvZmZzZXRzIDw9IDB4RkZGRiwgY29udmVydCB0byBhIHNpbmdsZSBjaGFyCisJCSAgICAvLyBieSBhZGRpbmcgdGhlIHdpbmRvdydzIG9mZnNldCBhbmQgc3VidHJhY3RpbmcKKwkJICAgIC8vIHRoZSBnZW5lcmljIGNvbXByZXNzaW9uIG9mZnNldAorCQkgICAgaWYoZk9mZnNldHNbIGZDdXJyZW50V2luZG93IF0gPD0gMHhGRkZGKSB7CisJCQljaGFyQnVmZmVyW3VjUG9zKytdID0gKGNoYXIpIAorCQkJICAgIChhQnl0ZSArIGZPZmZzZXRzWyBmQ3VycmVudFdpbmRvdyBdIAorCQkJICAgICAtIENPTVBSRVNTSU9OT0ZGU0VUKTsKKwkJICAgIH0KKwkJICAgIC8vIEZvciBvZmZzZXRzID4gMHgxMDAwMCwgY29udmVydCB0byBhIHN1cnJvZ2F0ZSBwYWlyIGJ5IAorCQkgICAgLy8gbm9ybUJhc2UgPSB3aW5kb3cncyBvZmZzZXQgLSAweDEwMDAwCisJCSAgICAvLyBoaWdoIHN1cnIuID0gMHhEODAwICsgKG5vcm1CYXNlID4+IDEwKQorCQkgICAgLy8gbG93ICBzdXJyLiA9IDB4REMwMCArIChub3JtQmFzZSAmIDB4M0ZGKSArIChieXRlICYgMHg3RikKKwkJICAgIGVsc2UgeworCQkJLy8gbWFrZSBzdXJlIHRoZXJlIGlzIGVub3VnaCByb29tIHRvIHdyaXRlCisJCQkvLyBib3RoIGNoYXJhY3RlcnMgCisJCQkvLyBpZiBub3QsIHNhdmUgc3RhdGUgYW5kIGJyZWFrIG91dAorCQkJaWYoKHVjUG9zICsgMSkgPj0gY2hhckJ1ZmZlckxpbWl0KSB7CisJCQkgICAgLS1ieXRlUG9zOworCQkJICAgIFN5c3RlbS5hcnJheWNvcHkoYnl0ZUJ1ZmZlciwgYnl0ZVBvcywKKwkJCQkJICAgICBmQnVmZmVyLCAwLCAKKwkJCQkJICAgICBieXRlQnVmZmVyTGltaXQgLSBieXRlUG9zKTsKKwkJCSAgICBmQnVmZmVyTGVuZ3RoID0gYnl0ZUJ1ZmZlckxpbWl0IC0gYnl0ZVBvczsKKwkJCSAgICBieXRlUG9zICs9IGZCdWZmZXJMZW5ndGg7CisJCQkgICAgYnJlYWsgbWFpbkxvb3A7IAorCQkJfQorCQkJCisJCQlpbnQgbm9ybWFsaXplZEJhc2UgPSBmT2Zmc2V0c1sgZkN1cnJlbnRXaW5kb3cgXSAKKwkJCSAgICAtIDB4MTAwMDA7CisJCQljaGFyQnVmZmVyW3VjUG9zKytdID0gKGNoYXIpIAorCQkJICAgICgweEQ4MDAgKyAobm9ybWFsaXplZEJhc2UgPj4gMTApKTsKKwkJCWNoYXJCdWZmZXJbdWNQb3MrK10gPSAoY2hhcikgCisJCQkgICAgKDB4REMwMCArIChub3JtYWxpemVkQmFzZSAmIDB4M0ZGKSsoYUJ5dGUgJiAweDdGKSk7CisJCSAgICB9CisJCSAgICBicmVhazsKKworCQkgICAgLy8gYnl0ZXMgZnJvbSAweDIwIHRocm91Z2ggMHg3RiBhcmUgdHJlYXRlZCBhcyBBU0NJSSBhbmQKKwkJICAgIC8vIGFyZSByZW1hcHBlZCB0byBjaGFycyBieSBwYWRkaW5nIHRoZSBoaWdoIGJ5dGUKKwkJICAgIC8vICh0aGlzIGlzIHRoZSBzYW1lIGFzIHF1b3RpbmcgZnJvbSBzdGF0aWMgd2luZG93IDApCisJCSAgICAvLyBOVUwgKDB4MDApLCBIVCAoMHgwOSksIENSICgweDBBKSwgTEYgKDB4MEQpIAorCQkgICAgLy8gYXJlIHRyZWF0ZWQgYXMgQVNDSUkgYXMgd2VsbAorCQljYXNlIDB4MDA6IGNhc2UgMHgwOTogY2FzZSAweDBBOiBjYXNlIDB4MEQ6CisJCWNhc2UgMHgyMDogY2FzZSAweDIxOiBjYXNlIDB4MjI6IGNhc2UgMHgyMzogY2FzZSAweDI0OgorCQljYXNlIDB4MjU6IGNhc2UgMHgyNjogY2FzZSAweDI3OiBjYXNlIDB4Mjg6IGNhc2UgMHgyOToKKwkJY2FzZSAweDJBOiBjYXNlIDB4MkI6IGNhc2UgMHgyQzogY2FzZSAweDJEOiBjYXNlIDB4MkU6CisJCWNhc2UgMHgyRjogY2FzZSAweDMwOiBjYXNlIDB4MzE6IGNhc2UgMHgzMjogY2FzZSAweDMzOgorCQljYXNlIDB4MzQ6IGNhc2UgMHgzNTogY2FzZSAweDM2OiBjYXNlIDB4Mzc6IGNhc2UgMHgzODoKKwkJY2FzZSAweDM5OiBjYXNlIDB4M0E6IGNhc2UgMHgzQjogY2FzZSAweDNDOiBjYXNlIDB4M0Q6CisJCWNhc2UgMHgzRTogY2FzZSAweDNGOiBjYXNlIDB4NDA6IGNhc2UgMHg0MTogY2FzZSAweDQyOgorCQljYXNlIDB4NDM6IGNhc2UgMHg0NDogY2FzZSAweDQ1OiBjYXNlIDB4NDY6IGNhc2UgMHg0NzoKKwkJY2FzZSAweDQ4OiBjYXNlIDB4NDk6IGNhc2UgMHg0QTogY2FzZSAweDRCOiBjYXNlIDB4NEM6CisJCWNhc2UgMHg0RDogY2FzZSAweDRFOiBjYXNlIDB4NEY6IGNhc2UgMHg1MDogY2FzZSAweDUxOgorCQljYXNlIDB4NTI6IGNhc2UgMHg1MzogY2FzZSAweDU0OiBjYXNlIDB4NTU6IGNhc2UgMHg1NjoKKwkJY2FzZSAweDU3OiBjYXNlIDB4NTg6IGNhc2UgMHg1OTogY2FzZSAweDVBOiBjYXNlIDB4NUI6CisJCWNhc2UgMHg1QzogY2FzZSAweDVEOiBjYXNlIDB4NUU6IGNhc2UgMHg1RjogY2FzZSAweDYwOgorCQljYXNlIDB4NjE6IGNhc2UgMHg2MjogY2FzZSAweDYzOiBjYXNlIDB4NjQ6IGNhc2UgMHg2NToKKwkJY2FzZSAweDY2OiBjYXNlIDB4Njc6IGNhc2UgMHg2ODogY2FzZSAweDY5OiBjYXNlIDB4NkE6CisJCWNhc2UgMHg2QjogY2FzZSAweDZDOiBjYXNlIDB4NkQ6IGNhc2UgMHg2RTogY2FzZSAweDZGOgorCQljYXNlIDB4NzA6IGNhc2UgMHg3MTogY2FzZSAweDcyOiBjYXNlIDB4NzM6IGNhc2UgMHg3NDoKKwkJY2FzZSAweDc1OiBjYXNlIDB4NzY6IGNhc2UgMHg3NzogY2FzZSAweDc4OiBjYXNlIDB4Nzk6CisJCWNhc2UgMHg3QTogY2FzZSAweDdCOiBjYXNlIDB4N0M6IGNhc2UgMHg3RDogY2FzZSAweDdFOgorCQljYXNlIDB4N0Y6IAorCQkgICAgY2hhckJ1ZmZlclt1Y1BvcysrXSA9IChjaGFyKSBhQnl0ZTsKKwkJICAgIGJyZWFrOworCisJCSAgICAvLyBxdW90ZSB1bmljb2RlCisJCWNhc2UgU1FVT1RFVToKKwkJICAgIC8vIHZlcmlmeSB3ZSBoYXZlIHR3byBieXRlcyBmb2xsb3dpbmcgdGFnCisJCSAgICAvLyBpZiBub3QsIHNhdmUgc3RhdGUgYW5kIGJyZWFrIG91dAorCQkgICAgaWYoIChieXRlUG9zICsgMSkgPj0gYnl0ZUJ1ZmZlckxpbWl0ICkgeworCQkJLS1ieXRlUG9zOworCQkJU3lzdGVtLmFycmF5Y29weShieXRlQnVmZmVyLCBieXRlUG9zLAorCQkJCQkgZkJ1ZmZlciwgMCwgCisJCQkJCSBieXRlQnVmZmVyTGltaXQgLSBieXRlUG9zKTsKKwkJCWZCdWZmZXJMZW5ndGggPSBieXRlQnVmZmVyTGltaXQgLSBieXRlUG9zOworCQkJYnl0ZVBvcyArPSBmQnVmZmVyTGVuZ3RoOworCQkJYnJlYWsgbWFpbkxvb3A7IAorCQkgICAgfQorICAgICAgICAgICAgICAgIAorCQkgICAgYUJ5dGUgPSBieXRlQnVmZmVyW2J5dGVQb3MrK107CisJCSAgICBjaGFyQnVmZmVyW3VjUG9zKytdID0gKGNoYXIpCisJCQkoYUJ5dGUgPDwgOCB8IChieXRlQnVmZmVyW2J5dGVQb3MrK10gJiAweEZGKSk7CisJCSAgICBicmVhazsKKworCQkgICAgLy8gc3dpdGNoIHRvIFVuaWNvZGUgbW9kZQorCQljYXNlIFNDSEFOR0VVOgorCQkgICAgZk1vZGUgPSBVTklDT0RFTU9ERTsKKwkJICAgIGJyZWFrIHNpbmdsZUJ5dGVNb2RlTG9vcDsKKwkJICAgIC8vYnJlYWs7CisKKwkJICAgIC8vIGhhbmRsZSBhbGwgcXVvdGUgdGFncworCQljYXNlIFNRVU9URTA6IGNhc2UgU1FVT1RFMTogY2FzZSBTUVVPVEUyOiBjYXNlIFNRVU9URTM6CisJCWNhc2UgU1FVT1RFNDogY2FzZSBTUVVPVEU1OiBjYXNlIFNRVU9URTY6IGNhc2UgU1FVT1RFNzoKKwkJICAgIC8vIHZlcmlmeSB0aGVyZSBpcyBhIGJ5dGUgZm9sbG93aW5nIHRoZSB0YWcKKwkJICAgIC8vIGlmIG5vdCwgc2F2ZSBzdGF0ZSBhbmQgYnJlYWsgb3V0CisJCSAgICBpZihieXRlUG9zID49IGJ5dGVCdWZmZXJMaW1pdCkgeworCQkJLS1ieXRlUG9zOworCQkJU3lzdGVtLmFycmF5Y29weShieXRlQnVmZmVyLCBieXRlUG9zLAorCQkJCQkgZkJ1ZmZlciwgMCwgCisJCQkJCSBieXRlQnVmZmVyTGltaXQgLSBieXRlUG9zKTsKKwkJCWZCdWZmZXJMZW5ndGggPSBieXRlQnVmZmVyTGltaXQgLSBieXRlUG9zOworCQkJYnl0ZVBvcyArPSBmQnVmZmVyTGVuZ3RoOworCQkJYnJlYWsgbWFpbkxvb3A7IAorCQkgICAgfQorICAgICAgICAgICAgICAgIAorCQkgICAgLy8gaWYgdGhlIGJ5dGUgaXMgaW4gdGhlIHJhbmdlIDB4MDAgLSAweDdGLCB1c2UKKwkJICAgIC8vIHN0YXRpYyB3aW5kb3cgbiBvdGhlcndpc2UsIHVzZSBkeW5hbWljIHdpbmRvdyBuCisJCSAgICBpbnQgZEJ5dGUgPSBieXRlQnVmZmVyW2J5dGVQb3MrK10gJiAweEZGOworCQkgICAgY2hhckJ1ZmZlclt1Y1BvcysrXSA9IChjaGFyKSAKKwkJCShkQnl0ZSsgKGRCeXRlID49IDB4MDAgJiYgZEJ5dGUgPCAweDgwIAorCQkJCSA/IHNPZmZzZXRzW2FCeXRlIC0gU1FVT1RFMF0gCisJCQkJIDogKGZPZmZzZXRzW2FCeXRlIC0gU1FVT1RFMF0gCisJCQkJICAgIC0gQ09NUFJFU1NJT05PRkZTRVQpKSk7IAorCQkgICAgYnJlYWs7CisKKwkJICAgIC8vIGhhbmRsZSBhbGwgY2hhbmdlIHRhZ3MKKwkJY2FzZSBTQ0hBTkdFMDogY2FzZSBTQ0hBTkdFMTogY2FzZSBTQ0hBTkdFMjogY2FzZSBTQ0hBTkdFMzoKKwkJY2FzZSBTQ0hBTkdFNDogY2FzZSBTQ0hBTkdFNTogY2FzZSBTQ0hBTkdFNjogY2FzZSBTQ0hBTkdFNzoKKwkJICAgIGZDdXJyZW50V2luZG93ID0gYUJ5dGUgLSBTQ0hBTkdFMDsKKwkJICAgIGJyZWFrOworCisJCSAgICAvLyBoYW5kbGUgYWxsIGRlZmluZSB0YWdzCisJCWNhc2UgU0RFRklORTA6IGNhc2UgU0RFRklORTE6IGNhc2UgU0RFRklORTI6IGNhc2UgU0RFRklORTM6CisJCWNhc2UgU0RFRklORTQ6IGNhc2UgU0RFRklORTU6IGNhc2UgU0RFRklORTY6IGNhc2UgU0RFRklORTc6CisJCSAgICAvLyB2ZXJpZnkgdGhlcmUgaXMgYSBieXRlIGZvbGxvd2luZyB0aGUgdGFnCisJCSAgICAvLyBpZiBub3QsIHNhdmUgc3RhdGUgYW5kIGJyZWFrIG91dAorCQkgICAgaWYoYnl0ZVBvcyA+PSBieXRlQnVmZmVyTGltaXQpIHsKKwkJCS0tYnl0ZVBvczsKKwkJCVN5c3RlbS5hcnJheWNvcHkoYnl0ZUJ1ZmZlciwgYnl0ZVBvcywKKwkJCQkJIGZCdWZmZXIsIDAsIAorCQkJCQkgYnl0ZUJ1ZmZlckxpbWl0IC0gYnl0ZVBvcyk7CisJCQlmQnVmZmVyTGVuZ3RoID0gYnl0ZUJ1ZmZlckxpbWl0IC0gYnl0ZVBvczsKKwkJCWJ5dGVQb3MgKz0gZkJ1ZmZlckxlbmd0aDsKKwkJCWJyZWFrIG1haW5Mb29wOyAKKwkJICAgIH0KKworCQkgICAgZkN1cnJlbnRXaW5kb3cgPSBhQnl0ZSAtIFNERUZJTkUwOworCQkgICAgZk9mZnNldHNbZkN1cnJlbnRXaW5kb3ddID0gCisJCQlzT2Zmc2V0VGFibGVbYnl0ZUJ1ZmZlcltieXRlUG9zKytdICYgMHhGRl07CisJCSAgICBicmVhazsKKworCQkgICAgLy8gaGFuZGxlIGRlZmluZSBleHRlbmRlZCB0YWcKKwkJY2FzZSBTREVGSU5FWDoKKwkJICAgIC8vIHZlcmlmeSB3ZSBoYXZlIHR3byBieXRlcyBmb2xsb3dpbmcgdGFnCisJCSAgICAvLyBpZiBub3QsIHNhdmUgc3RhdGUgYW5kIGJyZWFrIG91dAorCQkgICAgaWYoKGJ5dGVQb3MgKyAxKSA+PSBieXRlQnVmZmVyTGltaXQgKSB7CisJCQktLWJ5dGVQb3M7CisJCQlTeXN0ZW0uYXJyYXljb3B5KGJ5dGVCdWZmZXIsIGJ5dGVQb3MsCisJCQkJCSBmQnVmZmVyLCAwLCAKKwkJCQkJIGJ5dGVCdWZmZXJMaW1pdCAtIGJ5dGVQb3MpOworCQkJZkJ1ZmZlckxlbmd0aCA9IGJ5dGVCdWZmZXJMaW1pdCAtIGJ5dGVQb3M7CisJCQlieXRlUG9zICs9IGZCdWZmZXJMZW5ndGg7CisJCQlicmVhayBtYWluTG9vcDsgCisJCSAgICB9CisgICAgICAgICAgICAgICAgCisJCSAgICBhQnl0ZSA9IGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSAmIDB4RkY7CisJCSAgICBmQ3VycmVudFdpbmRvdyA9IChhQnl0ZSAmIDB4RTApID4+IDU7CisJCSAgICBmT2Zmc2V0c1tmQ3VycmVudFdpbmRvd10gPSAweDEwMDAwICsgCisJCQkoMHg4MCAqICgoKGFCeXRlICYgMHgxRikgPDwgOCkgCisJCQkJIHwgKGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSAmIDB4RkYpKSk7CisJCSAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIHJlc2VydmVkLCBzaG91bGRuJ3QgaGFwcGVuCisJCWNhc2UgU1JFU0VSVkVEOgorCQkgICAgYnJlYWs7CisKKwkJfSAvLyBlbmQgc3dpdGNoCisJICAgIH0gLy8gZW5kIHdoaWxlCisJICAgIGJyZWFrOworCisJICAgIGNhc2UgVU5JQ09ERU1PREU6CisJCS8vIHVuaWNvZGUgbW9kZSBkZWNvbXByZXNzaW9uIGxvb3AKKwkgICAgdW5pY29kZU1vZGVMb29wOgorCSAgICB3aGlsZShieXRlUG9zIDwgYnl0ZUJ1ZmZlckxpbWl0ICYmIHVjUG9zIDwgY2hhckJ1ZmZlckxpbWl0KSB7CisJCWFCeXRlID0gYnl0ZUJ1ZmZlcltieXRlUG9zKytdICYgMHhGRjsKKwkJc3dpdGNoKGFCeXRlKSB7CisJCSAgICAvLyBoYW5kbGUgYWxsIGRlZmluZSB0YWdzCisJCWNhc2UgVURFRklORTA6IGNhc2UgVURFRklORTE6IGNhc2UgVURFRklORTI6IGNhc2UgVURFRklORTM6CisJCWNhc2UgVURFRklORTQ6IGNhc2UgVURFRklORTU6IGNhc2UgVURFRklORTY6IGNhc2UgVURFRklORTc6CisJCSAgICAvLyB2ZXJpZnkgdGhlcmUgaXMgYSBieXRlIGZvbGxvd2luZyB0YWcKKwkJICAgIC8vIGlmIG5vdCwgc2F2ZSBzdGF0ZSBhbmQgYnJlYWsgb3V0CisJCSAgICBpZihieXRlUG9zID49IGJ5dGVCdWZmZXJMaW1pdCApIHsKKwkJCS0tYnl0ZVBvczsKKwkJCVN5c3RlbS5hcnJheWNvcHkoYnl0ZUJ1ZmZlciwgYnl0ZVBvcywKKwkJCQkJIGZCdWZmZXIsIDAsIAorCQkJCQkgYnl0ZUJ1ZmZlckxpbWl0IC0gYnl0ZVBvcyk7CisJCQlmQnVmZmVyTGVuZ3RoID0gYnl0ZUJ1ZmZlckxpbWl0IC0gYnl0ZVBvczsKKwkJCWJ5dGVQb3MgKz0gZkJ1ZmZlckxlbmd0aDsKKwkJCWJyZWFrIG1haW5Mb29wOyAKKwkJICAgIH0KKyAgICAgICAgICAgICAgICAKKwkJICAgIGZDdXJyZW50V2luZG93ID0gYUJ5dGUgLSBVREVGSU5FMDsKKwkJICAgIGZPZmZzZXRzW2ZDdXJyZW50V2luZG93XSA9IAorCQkJc09mZnNldFRhYmxlW2J5dGVCdWZmZXJbYnl0ZVBvcysrXSAmIDB4RkZdOworCQkgICAgZk1vZGUgPSBTSU5HTEVCWVRFTU9ERTsKKwkJICAgIGJyZWFrIHVuaWNvZGVNb2RlTG9vcDsKKwkJICAgIC8vYnJlYWs7CisKKwkJICAgIC8vIGhhbmRsZSBkZWZpbmUgZXh0ZW5kZWQgdGFnCisJCWNhc2UgVURFRklORVg6CisJCSAgICAvLyB2ZXJpZnkgd2UgaGF2ZSB0d28gYnl0ZXMgZm9sbG93aW5nIHRhZworCQkgICAgLy8gaWYgbm90LCBzYXZlIHN0YXRlIGFuZCBicmVhayBvdXQKKwkJICAgIGlmKChieXRlUG9zICsgMSkgPj0gYnl0ZUJ1ZmZlckxpbWl0ICkgeworCQkJLS1ieXRlUG9zOworCQkJU3lzdGVtLmFycmF5Y29weShieXRlQnVmZmVyLCBieXRlUG9zLAorCQkJCQkgZkJ1ZmZlciwgMCwgCisJCQkJCSBieXRlQnVmZmVyTGltaXQgLSBieXRlUG9zKTsKKwkJCWZCdWZmZXJMZW5ndGggPSBieXRlQnVmZmVyTGltaXQgLSBieXRlUG9zOworCQkJYnl0ZVBvcyArPSBmQnVmZmVyTGVuZ3RoOworCQkJYnJlYWsgbWFpbkxvb3A7IAorCQkgICAgfQorCQkgICAgCisJCSAgICBhQnl0ZSA9IGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSAmIDB4RkY7CisJCSAgICBmQ3VycmVudFdpbmRvdyA9IChhQnl0ZSAmIDB4RTApID4+IDU7CisJCSAgICBmT2Zmc2V0c1tmQ3VycmVudFdpbmRvd10gPSAweDEwMDAwICsgCisJCQkoMHg4MCAqICgoKGFCeXRlICYgMHgxRikgPDwgOCkgCisJCQkJIHwgKGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSAmIDB4RkYpKSk7CisJCSAgICBmTW9kZSA9IFNJTkdMRUJZVEVNT0RFOworCQkgICAgYnJlYWsgdW5pY29kZU1vZGVMb29wOworCQkgICAgLy9icmVhazsKKworCQkgICAgLy8gaGFuZGxlIGFsbCBjaGFuZ2UgdGFncworCQljYXNlIFVDSEFOR0UwOiBjYXNlIFVDSEFOR0UxOiBjYXNlIFVDSEFOR0UyOiBjYXNlIFVDSEFOR0UzOgorCQljYXNlIFVDSEFOR0U0OiBjYXNlIFVDSEFOR0U1OiBjYXNlIFVDSEFOR0U2OiBjYXNlIFVDSEFOR0U3OgorCQkgICAgZkN1cnJlbnRXaW5kb3cgPSBhQnl0ZSAtIFVDSEFOR0UwOworCQkgICAgZk1vZGUgPSBTSU5HTEVCWVRFTU9ERTsKKwkJICAgIGJyZWFrIHVuaWNvZGVNb2RlTG9vcDsKKwkJICAgIC8vYnJlYWs7CisKKwkJICAgIC8vIHF1b3RlIHVuaWNvZGUKKwkJY2FzZSBVUVVPVEVVOgorCQkgICAgLy8gdmVyaWZ5IHdlIGhhdmUgdHdvIGJ5dGVzIGZvbGxvd2luZyB0YWcKKwkJICAgIC8vIGlmIG5vdCwgc2F2ZSBzdGF0ZSBhbmQgYnJlYWsgb3V0CisJCSAgICBpZihieXRlUG9zID49IGJ5dGVCdWZmZXJMaW1pdCAgLSAxKSB7CisJCQktLWJ5dGVQb3M7CisJCQlTeXN0ZW0uYXJyYXljb3B5KGJ5dGVCdWZmZXIsIGJ5dGVQb3MsCisJCQkJCSBmQnVmZmVyLCAwLCAKKwkJCQkJIGJ5dGVCdWZmZXJMaW1pdCAtIGJ5dGVQb3MpOworCQkJZkJ1ZmZlckxlbmd0aCA9IGJ5dGVCdWZmZXJMaW1pdCAtIGJ5dGVQb3M7CisJCQlieXRlUG9zICs9IGZCdWZmZXJMZW5ndGg7CisJCQlicmVhayBtYWluTG9vcDsgCisJCSAgICB9CisgICAgICAgICAgICAgICAgCisJCSAgICBhQnl0ZSA9IGJ5dGVCdWZmZXJbYnl0ZVBvcysrXTsKKwkJICAgIGNoYXJCdWZmZXJbdWNQb3MrK10gPSAoY2hhcikgCisJCQkoYUJ5dGUgPDwgOCB8IChieXRlQnVmZmVyW2J5dGVQb3MrK10gJiAweEZGKSk7CisJCSAgICBicmVhazsKKworCQlkZWZhdWx0OgorCQkgICAgLy8gdmVyaWZ5IHRoZXJlIGlzIGEgYnl0ZSBmb2xsb3dpbmcgdGFnCisJCSAgICAvLyBpZiBub3QsIHNhdmUgc3RhdGUgYW5kIGJyZWFrIG91dAorCQkgICAgaWYoYnl0ZVBvcyA+PSBieXRlQnVmZmVyTGltaXQgKSB7CisJCQktLWJ5dGVQb3M7CisJCQlTeXN0ZW0uYXJyYXljb3B5KGJ5dGVCdWZmZXIsIGJ5dGVQb3MsCisJCQkJCSBmQnVmZmVyLCAwLCAKKwkJCQkJIGJ5dGVCdWZmZXJMaW1pdCAtIGJ5dGVQb3MpOworCQkJZkJ1ZmZlckxlbmd0aCA9IGJ5dGVCdWZmZXJMaW1pdCAtIGJ5dGVQb3M7CisJCQlieXRlUG9zICs9IGZCdWZmZXJMZW5ndGg7CisJCQlicmVhayBtYWluTG9vcDsgCisJCSAgICB9CisKKwkJICAgIGNoYXJCdWZmZXJbdWNQb3MrK10gPSAoY2hhcikgCisJCQkoYUJ5dGUgPDwgOCB8IChieXRlQnVmZmVyW2J5dGVQb3MrK10gJiAweEZGKSk7CisJCSAgICBicmVhazsKKworCQl9IC8vIGVuZCBzd2l0Y2gKKwkgICAgfSAvLyBlbmQgd2hpbGUKKwkgICAgYnJlYWs7CisJICAgIAorCSAgICB9IC8vIGVuZCBzd2l0Y2goIGZNb2RlICkKKwl9IC8vIGVuZCB3aGlsZQorCisgICAgICAgIC8vIGZpbGwgaW4gb3V0cHV0IHBhcmFtZXRlcgorCWlmKGJ5dGVzUmVhZCAhPSBudWxsKQorCSAgICBieXRlc1JlYWQgWzBdID0gKGJ5dGVQb3MgLSBieXRlQnVmZmVyU3RhcnQpOworCisgICAgICAgIC8vIHJldHVybiAjIG9mIGNoYXJzIHdyaXR0ZW4KKwlyZXR1cm4gKHVjUG9zIC0gY2hhckJ1ZmZlclN0YXJ0KTsKKyAgICB9CisKKyAgICAvKiogUmVzZXQgdGhlIGRlY29tcHJlc3NvciB0byBpdHMgaW5pdGlhbCBzdGF0ZS4gKi8KKyAgICBwdWJsaWMgdm9pZCByZXNldCgpCisgICAgeworICAgICAgICAvLyByZXNldCBkeW5hbWljIHdpbmRvd3MKKyAgICAgICAgZk9mZnNldHNbMF0gPSAweDAwODA7ICAgIC8vIExhdGluLTEKKyAgICAgICAgZk9mZnNldHNbMV0gPSAweDAwQzA7ICAgIC8vIExhdGluLTEgU3VwcGxlbWVudCArIExhdGluIEV4dGVuZGVkLUEKKyAgICAgICAgZk9mZnNldHNbMl0gPSAweDA0MDA7ICAgIC8vIEN5cmlsbGljCisgICAgICAgIGZPZmZzZXRzWzNdID0gMHgwNjAwOyAgICAvLyBBcmFiaWMKKyAgICAgICAgZk9mZnNldHNbNF0gPSAweDA5MDA7ICAgIC8vIERldmFuYWdhcmkKKyAgICAgICAgZk9mZnNldHNbNV0gPSAweDMwNDA7ICAgIC8vIEhpcmFnYW5hCisgICAgICAgIGZPZmZzZXRzWzZdID0gMHgzMEEwOyAgICAvLyBLYXRha2FuYQorICAgICAgICBmT2Zmc2V0c1s3XSA9IDB4RkYwMDsgICAgLy8gRnVsbHdpZHRoIEFTQ0lJCisKKworICAgICAgICBmQ3VycmVudFdpbmRvdyAgPSAwOyAgICAgICAgICAgICAgICAvLyBNYWtlIGN1cnJlbnQgd2luZG93IExhdGluLTEKKyAgICAgICAgZk1vZGUgICAgICAgICAgID0gU0lOR0xFQllURU1PREU7ICAgLy8gQWx3YXlzIHN0YXJ0IGluIHNpbmdsZS1ieXRlIG1vZGUKKwlmQnVmZmVyTGVuZ3RoICAgPSAwOyAgICAgICAgICAgICAgICAvLyBFbXB0eSBidWZmZXIKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZUZpbHRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZUZpbHRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmVhOWM4YzUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlRmlsdGVyLmphdmEKQEAgLTAsMCArMSw4NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZUZpbHRlci5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzA2LzI4IDE5OjE1OjUzICQgCisgKiAkUmV2aXNpb246IDEuMTEgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKKy8qKgorICogPGNvZGU+VW5pY29kZUZpbHRlcjwvY29kZT4gZGVmaW5lcyBhIHByb3RvY29sIGZvciBzZWxlY3RpbmcgYQorICogc3Vic2V0IG9mIHRoZSBmdWxsIHJhbmdlIChVKzAwMDAgdG8gVStGRkZGKSBvZiBVbmljb2RlIGNoYXJhY3RlcnMuCisgKiBDdXJyZW50bHksIGZpbHRlcnMgYXJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBjbGFzc2VzIGxpa2Uge0BsaW5rCisgKiBUcmFuc2xpdGVyYXRvcn0gdG8gb25seSBwcm9jZXNzIHNlbGVjdGVkIGNoYXJhY3RlcnMgdGhyb3VnaCBhCisgKiB0cmFuc2Zvcm1hdGlvbi4KKyAqCisgKiB7QGxpbmsgVW5pY29kZUZpbHRlckxvZ2ljfQorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgVW5pY29kZUZpbHRlciBpbXBsZW1lbnRzIFVuaWNvZGVNYXRjaGVyIHsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgPHR0PnRydWU8L3R0PiBmb3IgY2hhcmFjdGVycyB0aGF0IGFyZSBpbiB0aGUgc2VsZWN0ZWQKKyAgICAgKiBzdWJzZXQuICBJbiBvdGhlciB3b3JkcywgaWYgYSBjaGFyYWN0ZXIgaXMgPGI+dG8gYmUKKyAgICAgKiBmaWx0ZXJlZDwvYj4sIHRoZW4gPHR0PmNvbnRhaW5zKCk8L3R0PiByZXR1cm5zCisgICAgICogPGI+PHR0PmZhbHNlPC90dD48L2I+LgorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBib29sZWFuIGNvbnRhaW5zKGludCBjKTsKKworICAgIC8qKgorICAgICAqIERlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgVW5pY29kZU1hdGNoZXI6Om1hdGNoZXMoKSBmb3IgVW5pY29kZQorICAgICAqIGZpbHRlcnMuICBNYXRjaGVzIGEgc2luZ2xlIDE2LWJpdCBjb2RlIHVuaXQgYXQgb2Zmc2V0LgorICAgICAqLworICAgIHB1YmxpYyBpbnQgbWF0Y2hlcyhSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpbmNyZW1lbnRhbCkgeworICAgICAgICBpbnQgYzsKKyAgICAgICAgaWYgKG9mZnNldFswXSA8IGxpbWl0ICYmCisgICAgICAgICAgICBjb250YWlucyhjID0gdGV4dC5jaGFyMzJBdChvZmZzZXRbMF0pKSkgeworICAgICAgICAgICAgb2Zmc2V0WzBdICs9IFVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgIHJldHVybiBVX01BVENIOworICAgICAgICB9CisgICAgICAgIGlmIChvZmZzZXRbMF0gPiBsaW1pdCAmJgorICAgICAgICAgICAgY29udGFpbnMoYyA9IHRleHQuY2hhcjMyQXQob2Zmc2V0WzBdKSkpIHsKKyAgICAgICAgICAgIC8vIEJhY2t1cCBvZmZzZXQgYnkgMSwgdW5sZXNzIHRoZSBwcmVjZWRpbmcgY2hhcmFjdGVyIGlzIGEKKyAgICAgICAgICAgIC8vIHN1cnJvZ2F0ZSBwYWlyIC0tIHRoZW4gYmFja3VwIGJ5IDIgKGtlZXAgb2Zmc2V0IHBvaW50aW5nIGF0CisgICAgICAgICAgICAvLyB0aGUgbGVhZCBzdXJyb2dhdGUpLgorICAgICAgICAgICAgLS1vZmZzZXRbMF07CisgICAgICAgICAgICBpZiAob2Zmc2V0WzBdID49IDApIHsKKyAgICAgICAgICAgICAgICBvZmZzZXRbMF0gLT0gVVRGMTYuZ2V0Q2hhckNvdW50KHRleHQuY2hhcjMyQXQob2Zmc2V0WzBdKSkgLSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIFVfTUFUQ0g7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGluY3JlbWVudGFsICYmIG9mZnNldFswXSA9PSBsaW1pdCkgeworICAgICAgICAgICAgcmV0dXJuIFVfUEFSVElBTF9NQVRDSDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gVV9NSVNNQVRDSDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTdHViYmVkIG91dCBVbmljb2RlTWF0Y2hlciBpbXBsZW1lbnRhdGlvbiBmb3IgZmlsdGVycyB0aGF0IGRvCisgICAgICogbm90IGltcGxlbWVudCBhIHBhdHRlcm4uCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1BhdHRlcm4oYm9vbGVhbiBlc2NhcGVVbnByaW50YWJsZSkgeworICAgICAgICByZXR1cm4gIiI7CisgICAgfQorCisgICAgLyoqCisgICAgICogU3R1YmJlZCBvdXQgVW5pY29kZU1hdGNoZXIgaW1wbGVtZW50YXRpb24gZm9yIGZpbHRlcnMgdGhhdCBkbworICAgICAqIG5vdCBpbXBsZW1lbnQgaW5kZXhpbmcuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gbWF0Y2hlc0luZGV4VmFsdWUoaW50IHYpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFN0dWJiZWQgb3V0IGltcGxlbWVudGF0aW9uIG9mIFVuaWNvZGVNYXRjaGVyIEFQSS4KKyAgICAgKiBAcGFyYW0gdG9VbmlvblRvIHRoZSBzZXQgaW50byB3aGljaCB0byB1bmlvbiB0aGUgc291cmNlIGNoYXJhY3RlcnMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhZGRNYXRjaFNldFRvKFVuaWNvZGVTZXQgdG9VbmlvblRvKSB7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZUZpbHRlckxvZ2ljLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlRmlsdGVyTG9naWMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45NmZkMjJkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZUZpbHRlckxvZ2ljLmphdmEKQEAgLTAsMCArMSwxMjQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS90ZXh0L0F0dGljL1VuaWNvZGVGaWx0ZXJMb2dpYy5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA2OjIxICQgCisgKiAkUmV2aXNpb246IDEuNSAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworLyoqCisgKiA8Y29kZT5Vbmljb2RlRmlsdGVyTG9naWM8L2NvZGU+IHByb3ZpZGVzIGxvZ2ljYWwgb3BlcmF0b3JzIG9uCisgKiB7QGxpbmsgVW5pY29kZUZpbHRlcn0gb2JqZWN0cy4gIFRoaXMgY2xhc3MgY2Fubm90IGJlIGluc3RhbnRpYXRlZDsKKyAqIGl0IGNvbnNpc3RzIG9ubHkgb2Ygc3RhdGljIG1ldGhvZHMuICBUaGUgc3RhdGljIG1ldGhvZHMgcmV0dXJuCisgKiBmaWx0ZXIgb2JqZWN0cyB0aGF0IHBlcmZvcm0gbG9naWNhbCBpbnZlcnNpb24gKDx0dD5ub3Q8L3R0PiksCisgKiBpbnRlcnNlY3Rpb24gKDx0dD5hbmQ8L3R0PiksIG9yIHVuaW9uICg8dHQ+b3I8L3R0Pikgb2YgdGhlIGdpdmVuCisgKiBmaWx0ZXIgb2JqZWN0cy4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFVuaWNvZGVGaWx0ZXJMb2dpYyB7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgPHR0PlVuaWNvZGVGaWx0ZXI8L3R0PiB0aGF0IGltcGxlbWVudHMgdGhlIGludmVyc2Ugb2YKKyAgICAgKiB0aGUgZ2l2ZW4gZmlsdGVyLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVW5pY29kZUZpbHRlciBub3QoZmluYWwgVW5pY29kZUZpbHRlciBmKSB7CisgICAgICAgIHJldHVybiBuZXcgVW5pY29kZUZpbHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zKGludCBjKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuICFmLmNvbnRhaW5zKGMpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSA8dHQ+VW5pY29kZUZpbHRlcjwvdHQ+IHRoYXQgaW1wbGVtZW50cyBhIHNob3J0CisgICAgICogY2lyY3VpdCBBTkQgb2YgdGhlIHJlc3VsdCBvZiB0aGUgdHdvIGdpdmVuIGZpbHRlcnMuICBUaGF0IGlzLAorICAgICAqIGlmIDx0dD5mLmNvbnRhaW5zKCk8L3R0PiBpcyA8dHQ+ZmFsc2U8L3R0PiwgdGhlbiA8dHQ+Zy5jb250YWlucygpPC90dD4KKyAgICAgKiBpcyBub3QgY2FsbGVkLCBhbmQgPHR0PmNvbnRhaW5zKCk8L3R0PiByZXR1cm5zIDx0dD5mYWxzZTwvdHQ+LgorICAgICAqCisgICAgICogPHA+RWl0aGVyIDx0dD5mPC90dD4gb3IgPHR0Pmc8L3R0PiBtdXN0IGJlIG5vbi1udWxsLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVW5pY29kZUZpbHRlciBhbmQoZmluYWwgVW5pY29kZUZpbHRlciBmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgVW5pY29kZUZpbHRlciBnKSB7CisgICAgICAgIGlmIChmID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBnOworICAgICAgICB9CisgICAgICAgIGlmIChnID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgVW5pY29kZUZpbHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zKGludCBjKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGYuY29udGFpbnMoYykgJiYgZy5jb250YWlucyhjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgPHR0PlVuaWNvZGVGaWx0ZXI8L3R0PiB0aGF0IGltcGxlbWVudHMgYSBzaG9ydAorICAgICAqIGNpcmN1aXQgQU5EIG9mIHRoZSByZXN1bHQgb2YgdGhlIGdpdmVuIGZpbHRlcnMuICBUaGF0IGlzLCBpZgorICAgICAqIDx0dD5mW2ldLmNvbnRhaW5zKCk8L3R0PiBpcyA8dHQ+ZmFsc2U8L3R0PiwgdGhlbgorICAgICAqIDx0dD5mW2pdLmNvbnRhaW5zKCk8L3R0PiBpcyBub3QgY2FsbGVkLCB3aGVyZSA8dHQ+aiA+IGk8L3R0PiwgYW5kCisgICAgICogPHR0PmNvbnRhaW5zKCk8L3R0PiByZXR1cm5zIDx0dD5mYWxzZTwvdHQ+LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVW5pY29kZUZpbHRlciBhbmQoZmluYWwgVW5pY29kZUZpbHRlcltdIGYpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBVbmljb2RlRmlsdGVyKCkgeworICAgICAgICAgICAgcHVibGljIGJvb2xlYW4gY29udGFpbnMoaW50IGMpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8Zi5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIWZbaV0uY29udGFpbnMoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgPHR0PlVuaWNvZGVGaWx0ZXI8L3R0PiB0aGF0IGltcGxlbWVudHMgYSBzaG9ydAorICAgICAqIGNpcmN1aXQgT1Igb2YgdGhlIHJlc3VsdCBvZiB0aGUgdHdvIGdpdmVuIGZpbHRlcnMuICBUaGF0IGlzLCBpZgorICAgICAqIDx0dD5mLmNvbnRhaW5zKCk8L3R0PiBpcyA8dHQ+dHJ1ZTwvdHQ+LCB0aGVuIDx0dD5nLmNvbnRhaW5zKCk8L3R0PiBpcworICAgICAqIG5vdCBjYWxsZWQsIGFuZCA8dHQ+Y29udGFpbnMoKTwvdHQ+IHJldHVybnMgPHR0PnRydWU8L3R0Pi4KKyAgICAgKgorICAgICAqIDxwPkVpdGhlciA8dHQ+ZjwvdHQ+IG9yIDx0dD5nPC90dD4gbXVzdCBiZSBub24tbnVsbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFVuaWNvZGVGaWx0ZXIgb3IoZmluYWwgVW5pY29kZUZpbHRlciBmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBVbmljb2RlRmlsdGVyIGcpIHsKKyAgICAgICAgaWYgKGYgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGc7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGcgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGY7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBVbmljb2RlRmlsdGVyKCkgeworICAgICAgICAgICAgcHVibGljIGJvb2xlYW4gY29udGFpbnMoaW50IGMpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZi5jb250YWlucyhjKSB8fCBnLmNvbnRhaW5zKGMpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSA8dHQ+VW5pY29kZUZpbHRlcjwvdHQ+IHRoYXQgaW1wbGVtZW50cyBhIHNob3J0CisgICAgICogY2lyY3VpdCBPUiBvZiB0aGUgcmVzdWx0IG9mIHRoZSBnaXZlbiBmaWx0ZXJzLiAgVGhhdCBpcywgaWYKKyAgICAgKiA8dHQ+ZltpXS5jb250YWlucygpPC90dD4gaXMgPHR0PmZhbHNlPC90dD4sIHRoZW4KKyAgICAgKiA8dHQ+ZltqXS5jb250YWlucygpPC90dD4gaXMgbm90IGNhbGxlZCwgd2hlcmUgPHR0PmogPiBpPC90dD4sIGFuZAorICAgICAqIDx0dD5jb250YWlucygpPC90dD4gcmV0dXJucyA8dHQ+dHJ1ZTwvdHQ+LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVW5pY29kZUZpbHRlciBvcihmaW5hbCBVbmljb2RlRmlsdGVyW10gZikgeworICAgICAgICByZXR1cm4gbmV3IFVuaWNvZGVGaWx0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgYm9vbGVhbiBjb250YWlucyhpbnQgYykgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxmLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChmW2ldLmNvbnRhaW5zKGMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorCisgICAgLy8gVE9ETzogQWRkIG5hbmQoKSAmIG5vcigpIGZvciBjb252ZW5pZW5jZSwgaWYgbmVlZGVkLgorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZU1hdGNoZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVNYXRjaGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjk3ZjVjNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVNYXRjaGVyLmphdmEKQEAgLTAsMCArMSwxMjcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlTWF0Y2hlci5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzA2LzI4IDE5OjE1OjUzICQgCisgKiAkUmV2aXNpb246IDEuNiAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworLyoqCisgKiA8Y29kZT5Vbmljb2RlTWF0Y2hlcjwvY29kZT4gZGVmaW5lcyBhIHByb3RvY29sIGZvciBvYmplY3RzIHRoYXQgY2FuCisgKiBtYXRjaCBhIHJhbmdlIG9mIGNoYXJhY3RlcnMgaW4gYSBSZXBsYWNlYWJsZSBzdHJpbmcuCisgKi8KK3B1YmxpYyBpbnRlcmZhY2UgVW5pY29kZU1hdGNoZXIgeworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgcmV0dXJuZWQgYnkgPGNvZGU+bWF0Y2hlcygpPC9jb2RlPiBpbmRpY2F0aW5nIGEKKyAgICAgKiBtaXNtYXRjaCBiZXR3ZWVuIHRoZSB0ZXh0IGFuZCB0aGlzIG1hdGNoZXIuICBUaGUgdGV4dCBjb250YWlucworICAgICAqIGEgY2hhcmFjdGVyIHdoaWNoIGRvZXMgbm90IG1hdGNoLCBvciB0aGUgdGV4dCBkb2VzIG5vdCBjb250YWluCisgICAgICogYWxsIGRlc2lyZWQgY2hhcmFjdGVycyBmb3IgYSBub24taW5jcmVtZW50YWwgbWF0Y2guCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVV9NSVNNQVRDSCA9IDA7CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgcmV0dXJuZWQgYnkgPGNvZGU+bWF0Y2hlcygpPC9jb2RlPiBpbmRpY2F0aW5nIGEKKyAgICAgKiBwYXJ0aWFsIG1hdGNoIGJldHdlZW4gdGhlIHRleHQgYW5kIHRoaXMgbWF0Y2hlci4gIFRoaXMgdmFsdWUgaXMKKyAgICAgKiBvbmx5IHJldHVybmVkIGZvciBpbmNyZW1lbnRhbCBtYXRjaCBvcGVyYXRpb25zLiAgQWxsIGNoYXJhY3RlcnMKKyAgICAgKiBvZiB0aGUgdGV4dCBtYXRjaCwgYnV0IG1vcmUgY2hhcmFjdGVycyBhcmUgcmVxdWlyZWQgZm9yIGEKKyAgICAgKiBjb21wbGV0ZSBtYXRjaC4gIEFsdGVybmF0aXZlbHksIGZvciB2YXJpYWJsZS1sZW5ndGggbWF0Y2hlcnMsCisgICAgICogYWxsIGNoYXJhY3RlcnMgb2YgdGhlIHRleHQgbWF0Y2gsIGFuZCBpZiBtb3JlIGNoYXJhY3RlcnMgd2VyZQorICAgICAqIHN1cHBsaWVkIGF0IGxpbWl0LCB0aGV5IG1pZ2h0IGFsc28gbWF0Y2guCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVV9QQVJUSUFMX01BVENIID0gMTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCByZXR1cm5lZCBieSA8Y29kZT5tYXRjaGVzKCk8L2NvZGU+IGluZGljYXRpbmcgYQorICAgICAqIGNvbXBsZXRlIG1hdGNoIGJldHdlZW4gdGhlIHRleHQgYW5kIHRoaXMgbWF0Y2hlci4gIEZvciBhbgorICAgICAqIGluY3JlbWVudGFsIHZhcmlhYmxlLWxlbmd0aCBtYXRjaCwgdGhpcyB2YWx1ZSBpcyByZXR1cm5lZCBpZgorICAgICAqIHRoZSBnaXZlbiB0ZXh0IG1hdGNoZXMsIGFuZCBpdCBpcyBrbm93biB0aGF0IGFkZGl0aW9uYWwKKyAgICAgKiBjaGFyYWN0ZXJzIHdvdWxkIG5vdCBhbHRlciB0aGUgZXh0ZW50IG9mIHRoZSBtYXRjaC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBVX01BVENIID0gMjsKKworICAgIC8qKgorICAgICAqIFJldHVybiBhIFVNYXRjaERlZ3JlZSB2YWx1ZSBpbmRpY2F0aW5nIHRoZSBkZWdyZWUgb2YgbWF0Y2ggZm9yCisgICAgICogdGhlIGdpdmVuIHRleHQgYXQgdGhlIGdpdmVuIG9mZnNldC4gIFplcm8sIG9uZSwgb3IgbW9yZQorICAgICAqIGNoYXJhY3RlcnMgbWF5IGJlIG1hdGNoZWQuCisgICAgICoKKyAgICAgKiBNYXRjaGluZyBpbiB0aGUgZm9yd2FyZCBkaXJlY3Rpb24gaXMgaW5kaWNhdGVkIGJ5IGxpbWl0ID4KKyAgICAgKiBvZmZzZXQuICBDaGFyYWN0ZXJzIGZyb20gb2Zmc2V0IGZvcndhcmRzIHRvIGxpbWl0LTEgd2lsbCBiZQorICAgICAqIGNvbnNpZGVyZWQgZm9yIG1hdGNoaW5nLgorICAgICAqIAorICAgICAqIE1hdGNoaW5nIGluIHRoZSByZXZlcnNlIGRpcmVjdGlvbiBpcyBpbmRpY2F0ZWQgYnkgbGltaXQgPAorICAgICAqIG9mZnNldC4gIENoYXJhY3RlcnMgZnJvbSBvZmZzZXQgYmFja3dhcmRzIHRvIGxpbWl0KzEgd2lsbCBiZQorICAgICAqIGNvbnNpZGVyZWQgZm9yIG1hdGNoaW5nLgorICAgICAqCisgICAgICogSWYgbGltaXQgPT0gb2Zmc2V0IHRoZW4gdGhlIG9ubHkgbWF0Y2ggcG9zc2libGUgaXMgYSB6ZXJvCisgICAgICogY2hhcmFjdGVyIG1hdGNoICh3aGljaCBzdWJjbGFzc2VzIG1heSBpbXBsZW1lbnQgaWYgZGVzaXJlZCkuCisgICAgICoKKyAgICAgKiBJZiBVX01BVENIIGlzIHJldHVybmVkLCB0aGVuIGFzIGEgc2lkZSBlZmZlY3QsIGFkdmFuY2UgdGhlCisgICAgICogb2Zmc2V0IHBhcmFtZXRlciB0byB0aGUgbGltaXQgb2YgdGhlIG1hdGNoZWQgc3Vic3RyaW5nLiAgSW4gdGhlCisgICAgICogZm9yd2FyZCBkaXJlY3Rpb24sIHRoaXMgd2lsbCBiZSB0aGUgaW5kZXggb2YgdGhlIGxhc3QgbWF0Y2hlZAorICAgICAqIGNoYXJhY3RlciBwbHVzIG9uZS4gIEluIHRoZSByZXZlcnNlIGRpcmVjdGlvbiwgdGhpcyB3aWxsIGJlIHRoZQorICAgICAqIGluZGV4IG9mIHRoZSBsYXN0IG1hdGNoZWQgY2hhcmFjdGVyIG1pbnVzIG9uZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSB0ZXh0IHRvIGJlIG1hdGNoZWQKKyAgICAgKiBAcGFyYW0gb2Zmc2V0IG9uIGlucHV0LCB0aGUgaW5kZXggaW50byB0ZXh0IGF0IHdoaWNoIHRvIGJlZ2luCisgICAgICogbWF0Y2hpbmcuICBPbiBvdXRwdXQsIHRoZSBsaW1pdCBvZiB0aGUgbWF0Y2hlZCB0ZXh0LiAgVGhlCisgICAgICogbnVtYmVyIG9mIG1hdGNoZWQgY2hhcmFjdGVycyBpcyB0aGUgb3V0cHV0IHZhbHVlIG9mIG9mZnNldAorICAgICAqIG1pbnVzIHRoZSBpbnB1dCB2YWx1ZS4gIE9mZnNldCBzaG91bGQgYWx3YXlzIHBvaW50IHRvIHRoZQorICAgICAqIEhJR0ggU1VSUk9HQVRFIChsZWFkaW5nIGNvZGUgdW5pdCkgb2YgYSBwYWlyIG9mIHN1cnJvZ2F0ZXMsCisgICAgICogYm90aCBvbiBlbnRyeSBhbmQgdXBvbiByZXR1cm4uCisgICAgICogQHBhcmFtIGxpbWl0IHRoZSBsaW1pdCBpbmRleCBvZiB0ZXh0IHRvIGJlIG1hdGNoZWQuICBHcmVhdGVyCisgICAgICogdGhhbiBvZmZzZXQgZm9yIGEgZm9yd2FyZCBkaXJlY3Rpb24gbWF0Y2gsIGxlc3MgdGhhbiBvZmZzZXQgZm9yCisgICAgICogYSBiYWNrd2FyZCBkaXJlY3Rpb24gbWF0Y2guICBUaGUgbGFzdCBjaGFyYWN0ZXIgdG8gYmUKKyAgICAgKiBjb25zaWRlcmVkIGZvciBtYXRjaGluZyB3aWxsIGJlIHRleHQuY2hhckF0KGxpbWl0LTEpIGluIHRoZQorICAgICAqIGZvcndhcmQgZGlyZWN0aW9uIG9yIHRleHQuY2hhckF0KGxpbWl0KzEpIGluIHRoZSBiYWNrd2FyZAorICAgICAqIGRpcmVjdGlvbi4KKyAgICAgKiBAcGFyYW0gaW5jcmVtZW50YWwgaWYgVFJVRSwgdGhlbiBhc3N1bWUgZnVydGhlciBjaGFyYWN0ZXJzIG1heQorICAgICAqIGJlIGluc2VydGVkIGF0IGxpbWl0IGFuZCBjaGVjayBmb3IgcGFydGlhbCBtYXRjaGluZy4gIE90aGVyd2lzZQorICAgICAqIGFzc3VtZSB0aGUgdGV4dCBhcyBnaXZlbiBpcyBjb21wbGV0ZS4KKyAgICAgKiBAcmV0dXJuIGEgbWF0Y2ggZGVncmVlIHZhbHVlIGluZGljYXRpbmcgYSBmdWxsIG1hdGNoLCBhIHBhcnRpYWwKKyAgICAgKiBtYXRjaCwgb3IgYSBtaXNtYXRjaC4gIElmIGluY3JlbWVudGFsIGlzIEZBTFNFIHRoZW4KKyAgICAgKiBVX1BBUlRJQUxfTUFUQ0ggc2hvdWxkIG5ldmVyIGJlIHJldHVybmVkLgorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgbWF0Y2hlcyhSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpbmNyZW1lbnRhbCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgbWF0Y2hlci4gIElmIHRoZSByZXN1bHQgb2YKKyAgICAgKiBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gaXMgcGFzc2VkIHRvIHRoZSBhcHByb3ByaWF0ZSBwYXJzZXIsIGl0CisgICAgICogd2lsbCBwcm9kdWNlIGFub3RoZXIgbWF0Y2hlciB0aGF0IGlzIGVxdWFsIHRvIHRoaXMgb25lLgorICAgICAqIEBwYXJhbSBlc2NhcGVVbnByaW50YWJsZSBpZiBUUlVFIHRoZW4gY29udmVydCB1bnByaW50YWJsZQorICAgICAqIGNoYXJhY3RlciB0byB0aGVpciBoZXggZXNjYXBlIHJlcHJlc2VudGF0aW9ucywgXFx1eHh4eCBvcgorICAgICAqIFxcVXh4eHh4eHh4LiAgVW5wcmludGFibGUgY2hhcmFjdGVycyBhcmUgdGhvc2Ugb3RoZXIgdGhhbgorICAgICAqIFUrMDAwQSwgVSswMDIwLi5VKzAwN0UuCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IFN0cmluZyB0b1BhdHRlcm4oYm9vbGVhbiBlc2NhcGVVbnByaW50YWJsZSk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIFRSVUUgaWYgdGhpcyBtYXRjaGVyIHdpbGwgbWF0Y2ggYSBjaGFyYWN0ZXIgYywgd2hlcmUgYworICAgICAqICYgMHhGRiA9PSB2LCBhdCBvZmZzZXQsIGluIHRoZSBmb3J3YXJkIGRpcmVjdGlvbiAod2l0aCBsaW1pdCA+CisgICAgICogb2Zmc2V0KS4gIFRoaXMgaXMgdXNlZCBieSA8dHQ+UnVsZUJhc2VkVHJhbnNsaXRlcmF0b3I8L3R0PiBmb3IKKyAgICAgKiBpbmRleGluZy4KKyAgICAgKgorICAgICAqIDxwPk5vdGU6ICBUaGlzIEFQSSB1c2VzIGFuIGludCBldmVuIHRob3VnaCB0aGUgdmFsdWUgd2lsbCBiZQorICAgICAqIHJlc3RyaWN0ZWQgdG8gOCBiaXRzIGluIG9yZGVyIHRvIGF2b2lkIGNvbXBsaWNhdGlvbnMgd2l0aAorICAgICAqIHNpZ25lZG5lc3MgKGJ5dGVzIGNvbnZlcnQgdG8gaW50cyBpbiB0aGUgcmFuZ2UgLTEyOC4uMTI3KS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbiBtYXRjaGVzSW5kZXhWYWx1ZShpbnQgdik7CisKKyAgICAvKioKKyAgICAgKiBVbmlvbiB0aGUgc2V0IG9mIGFsbCBjaGFyYWN0ZXJzIHRoYXQgbWF5IGJlIG1hdGNoZWQgYnkgdGhpcyBvYmplY3QKKyAgICAgKiBpbnRvIHRoZSBnaXZlbiBzZXQuCisgICAgICogQHBhcmFtIHRvVW5pb25UbyB0aGUgc2V0IGludG8gd2hpY2ggdG8gdW5pb24gdGhlIHNvdXJjZSBjaGFyYWN0ZXJzCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgYWRkTWF0Y2hTZXRUbyhVbmljb2RlU2V0IHRvVW5pb25Ubyk7Cit9CisKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlTmFtZVRyYW5zbGl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlTmFtZVRyYW5zbGl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDIzMmM3NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVOYW1lVHJhbnNsaXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZU5hbWVUcmFuc2xpdGVyYXRvci5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAzLzI3IDE5OjExOjM3ICQgCisgKiAkUmV2aXNpb246IDEuOCAkCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CisKKy8qKgorICogQSB0cmFuc2xpdGVyYXRvciB0aGF0IHBlcmZvcm1zIGNoYXJhY3RlciB0byBuYW1lIG1hcHBpbmcuCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKi8KK2NsYXNzIFVuaWNvZGVOYW1lVHJhbnNsaXRlcmF0b3IgZXh0ZW5kcyBUcmFuc2xpdGVyYXRvciB7CisKKyAgICBjaGFyIG9wZW5EZWxpbWl0ZXI7CisgICAgY2hhciBjbG9zZURlbGltaXRlcjsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgX0lEID0gIkFueS1OYW1lIjsKKworICAgIC8qKgorICAgICAqIFN5c3RlbSByZWdpc3RyYXRpb24gaG9vay4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCByZWdpc3RlcigpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJGYWN0b3J5KF9JRCwgbmV3IFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkoKSB7CisgICAgICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBVbmljb2RlTmFtZVRyYW5zbGl0ZXJhdG9yKG51bGwpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgdHJhbnNsaXRlcmF0b3IuCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVOYW1lVHJhbnNsaXRlcmF0b3IoY2hhciBvcGVuRGVsaW1pdGVyLCBjaGFyIGNsb3NlRGVsaW1pdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVGaWx0ZXIgZmlsdGVyKSB7CisgICAgICAgIHN1cGVyKF9JRCwgZmlsdGVyKTsKKyAgICAgICAgdGhpcy5vcGVuRGVsaW1pdGVyID0gb3BlbkRlbGltaXRlcjsKKyAgICAgICAgdGhpcy5jbG9zZURlbGltaXRlciA9IGNsb3NlRGVsaW1pdGVyOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSB0cmFuc2xpdGVyYXRvciB3aXRoIHRoZSBkZWZhdWx0IGRlbGltaXRlcnMgJ3snIGFuZAorICAgICAqICd9Jy4KKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZU5hbWVUcmFuc2xpdGVyYXRvcihVbmljb2RlRmlsdGVyIGZpbHRlcikgeworICAgICAgICB0aGlzKCd7JywgJ30nLCBmaWx0ZXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEltcGxlbWVudHMge0BsaW5rIFRyYW5zbGl0ZXJhdG9yI2hhbmRsZVRyYW5zbGl0ZXJhdGV9LgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvc2l0aW9uIG9mZnNldHMsIGJvb2xlYW4gaXNJbmNyZW1lbnRhbCkgeworICAgICAgICBpbnQgY3Vyc29yID0gb2Zmc2V0cy5zdGFydDsKKyAgICAgICAgaW50IGxpbWl0ID0gb2Zmc2V0cy5saW1pdDsKKyAgICAgICAgCisgICAgICAgIFN0cmluZ0J1ZmZlciBzdHIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIHN0ci5hcHBlbmQob3BlbkRlbGltaXRlcik7CisgICAgICAgIGludCBsZW47CisgICAgICAgIFN0cmluZyBuYW1lOworICAgICAgICAKKyAgICAgICAgd2hpbGUgKGN1cnNvciA8IGxpbWl0KSB7CisgICAgICAgICAgICBpbnQgYyA9IHRleHQuY2hhcjMyQXQoY3Vyc29yKTsKKyAgICAgICAgICAgIGlmICgobmFtZT1VQ2hhcmFjdGVyLmdldEV4dGVuZGVkTmFtZShjKSkgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHN0ci5zZXRMZW5ndGgoMSk7CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZChuYW1lKS5hcHBlbmQoY2xvc2VEZWxpbWl0ZXIpOworCisgICAgICAgICAgICAgICAgaW50IGNsZW4gPSBVVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgICAgICAgICAgdGV4dC5yZXBsYWNlKGN1cnNvciwgY3Vyc29yK2NsZW4sIHN0ci50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICBsZW4gPSBzdHIubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgY3Vyc29yICs9IGxlbjsgLy8gYWR2YW5jZSBjdXJzb3IgYnkgMSBhbmQgYWRqdXN0IGZvciBuZXcgdGV4dAorICAgICAgICAgICAgICAgIGxpbWl0ICs9IGxlbi1jbGVuOyAvLyBjaGFuZ2UgaW4gbGVuZ3RoCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICsrY3Vyc29yOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgb2Zmc2V0cy5jb250ZXh0TGltaXQgKz0gbGltaXQgLSBvZmZzZXRzLmxpbWl0OworICAgICAgICBvZmZzZXRzLmxpbWl0ID0gbGltaXQ7CisgICAgICAgIG9mZnNldHMuc3RhcnQgPSBjdXJzb3I7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZVByb3BlcnR5U2V0LmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlUHJvcGVydHlTZXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lYjQ2ZjBkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZVByb3BlcnR5U2V0LmphdmEKQEAgLTAsMCArMSw4NDcgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChjKSAyMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS90ZXh0L0F0dGljL1VuaWNvZGVQcm9wZXJ0eVNldC5qYXZhLHYgJAorKiAkRGF0ZTogMjAwMi8wNy8yNiAyMToxMjozNiAkCisqICRSZXZpc2lvbjogMS4xNSAkCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS50ZXh0Lio7CitpbXBvcnQgamF2YS51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLk5vcm1hbGl6ZXJJbXBsOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3RlclByb3BlcnR5OworCisvKioKKyAqIElOVEVSTkFMIENMQVNTIGltcGxlbWVudGluZyB0aGUgVW5pY29kZVNldCBwcm9wZXJ0aWVzIGFzIG91dGxpbmVkCisgKiBhdDoKKyAqCisgKiBodHRwOi8vb3NzLnNvZnR3YXJlLmlibS5jb20vY3ZzL2ljdS9+Y2hlY2tvdXR+L2ljdWh0bWwvZGVzaWduL3VuaWNvZGVzZXRfcHJvcGVydGllcy5odG1sCisgKgorICogUmVjb2duaXplZCBzeW50YXg6CisgKgorICogWzpmb286XSBbOl5mb286XSAtIHdoaXRlIHNwYWNlIG5vdCBhbGxvd2VkIHdpdGhpbiAiWzoiIG9yICI6XSIKKyAqIFxwe2Zvb30gXFB7Zm9vfSAgLSB3aGl0ZSBzcGFjZSBub3QgYWxsb3dlZCB3aXRoaW4gIlxwIiBvciAiXFAiCisgKgorICogT3RoZXIgdGhhbiB0aGUgYWJvdmUgcmVzdHJpY3Rpb25zLCB3aGl0ZSBzcGFjZSBpcyBpZ25vcmVkLiAgQ2FzZQorICogaXMgaWdub3JlZCBleGNlcHQgaW4gIlxwIiBhbmQgIlxQIi4KKyAqCisgKiBUaGlzIGNsYXNzIGNhbm5vdCBiZSBpbnN0YW50aWF0ZWQuICBJdCBoYXMgYSBwdWJsaWMgc3RhdGljIG1ldGhvZCwKKyAqIGNyZWF0ZVByb3BlcnR5U2V0KCksIHdpdGggdGFrZXMgYSBwYXR0ZXJuIHRvIGJlIHBhcnNlZCBhbmQgcmV0dXJucworICogYSBuZXcgVW5pY29kZVNldC4gIEFub3RoZXIgcHVibGljIHN0YXRpYyBtZXRob2QsCisgKiByZXNlbWJsZXNQYXR0ZXJuKCksIHJldHVybnMgdHJ1ZSBpZiBhIGdpdmVuIHBhdHRlcm4gc3RyaW5nIGFwcGVhcnMKKyAqIHRvIGJlIGEgcHJvcGVydHkgc2V0IHBhdHRlcm4sIGFuZCB0aGVyZWZvcmUgc2hvdWxkIGJlIHBhc3NlZCBpbiB0bworICogY3JlYXRlUHJvcGVydHlTZXQoKS4KKyAqCisgKiBOT1RFOiBDdXJyZW50IGltcGxlbWVudGF0aW9uIGlzIGluY29tcGxldGUuICBUaGUgZm9sbG93aW5nIGxpc3QKKyAqIGluZGljYXRlcyB3aGljaCBwcm9wZXJ0aWVzIGFyZSBzdXBwb3J0ZWQuCisgKgorICogICAgKyBHZW5lcmFsQ2F0ZWdvcnkKKyAqICAgICsgQ29tYmluaW5nQ2xhc3MKKyAqICAgICsgQmlkaUNsYXNzCisgKiAgICAgIERlY29tcG9zaXRpb25UeXBlCisgKiAgICArIE51bWVyaWNWYWx1ZQorICogICAgICBOdW1lcmljVHlwZQorICogICAgICBFYXN0QXNpYW5XaWR0aAorICogICAgICBMaW5lQnJlYWsKKyAqICAgICAgSm9pbmluZ1R5cGUKKyAqICAgICsgU2NyaXB0CisgKiAgICArIEJpbmFyeSBwcm9wZXJ0aWVzCisgKgorICogJysnIGluZGljYXRlcyBhIHN1cHBvcnRlZCBwcm9wZXJ0eS4KKyAqCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAdmVyc2lvbiAkUkNTZmlsZTogVW5pY29kZVByb3BlcnR5U2V0LmphdmEsdiAkICRSZXZpc2lvbjogMS4xNSAkICREYXRlOiAyMDAyLzA3LzI2IDIxOjEyOjM2ICQKKyAqLworY2xhc3MgVW5pY29kZVByb3BlcnR5U2V0IHsKKworICAgIHByaXZhdGUgc3RhdGljIEhhc2h0YWJsZSBOQU1FX01BUCA9IG51bGw7CisKKyAgICBwcml2YXRlIHN0YXRpYyBIYXNodGFibGUgQ0FURUdPUllfTUFQID0gbnVsbDsKKworICAgIHByaXZhdGUgc3RhdGljIEhhc2h0YWJsZSBDT01CSU5JTkdfQ0xBU1NfTUFQID0gbnVsbDsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBIYXNodGFibGUgQklESV9DTEFTU19NQVAgPSBudWxsOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIEhhc2h0YWJsZSBCSU5BUllfUFJPUEVSVFlfTUFQID0gbnVsbDsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBIYXNodGFibGUgQk9PTEVBTl9WQUxVRV9NQVAgPSBudWxsOworCisgICAgLyoqCisgICAgICogQSBjYWNoZSBtYXBwaW5nIGNoYXJhY3RlciBjYXRlZ29yeSBpbnRlZ2VycywgYXMgcmV0dXJuZWQgYnkKKyAgICAgKiBVQ2hhcmFjdGVyLmdldFR5cGUoKSwgdG8gc2V0cy4gIEVudHJpZXMgYXJlIGluaXRpYWxseQorICAgICAqIG51bGwgYW5kIGFyZSBjcmVhdGVkIG9uIGRlbWFuZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBVbmljb2RlU2V0W10gQ0FURUdPUllfQ0FDSEUgPSBudWxsOworCisgICAgLyoqCisgICAgICogQSBjYWNoZSBtYXBwaW5nIHNjcmlwdCBpbnRlZ2VycywgYXMgZGVmaW5lZCBieQorICAgICAqIFVTY3JpcHQsIHRvIHNldHMuICBFbnRyaWVzIGFyZSBpbml0aWFsbHkKKyAgICAgKiBudWxsIGFuZCBhcmUgY3JlYXRlZCBvbiBkZW1hbmQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgVW5pY29kZVNldFtdIFNDUklQVF9DQUNIRSA9IG51bGw7CisKKyAgICAvLyBTcGVjaWFsIHZhbHVlIGNvZGVzCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEFOWSA9IC0xOyAvLyBnZW5lcmFsIGNhdGVnb3J5OiBhbGwgY29kZSBwb2ludHMKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBBU0NJSSA9IC0yOyAvLyBbXHUwMDAwLVx1MDA3Rl0KKworICAgIC8vID5Gcm9tIFVuaWNvZGVEYXRhOgorICAgIC8vIDM0MDA7PENKSyBJZGVvZ3JhcGggRXh0ZW5zaW9uIEEsIEZpcnN0PjtMbzswO0w7Ozs7O047Ozs7OworICAgIC8vIDREQjU7PENKSyBJZGVvZ3JhcGggRXh0ZW5zaW9uIEEsIExhc3Q+O0xvOzA7TDs7Ozs7Tjs7Ozs7CisgICAgLy8gNEUwMDs8Q0pLIElkZW9ncmFwaCwgRmlyc3Q+O0xvOzA7TDs7Ozs7Tjs7Ozs7CisgICAgLy8gOUZBNTs8Q0pLIElkZW9ncmFwaCwgTGFzdD47TG87MDtMOzs7OztOOzs7OzsKKyAgICAvLyBBQzAwOzxIYW5ndWwgU3lsbGFibGUsIEZpcnN0PjtMbzswO0w7Ozs7O047Ozs7OworICAgIC8vIEQ3QTM7PEhhbmd1bCBTeWxsYWJsZSwgTGFzdD47TG87MDtMOzs7OztOOzs7OzsKKyAgICAvLyBEODAwOzxOb24gUHJpdmF0ZSBVc2UgSGlnaCBTdXJyb2dhdGUsIEZpcnN0PjtDczswO0w7Ozs7O047Ozs7OworICAgIC8vIERCN0Y7PE5vbiBQcml2YXRlIFVzZSBIaWdoIFN1cnJvZ2F0ZSwgTGFzdD47Q3M7MDtMOzs7OztOOzs7OzsKKyAgICAvLyBEQjgwOzxQcml2YXRlIFVzZSBIaWdoIFN1cnJvZ2F0ZSwgRmlyc3Q+O0NzOzA7TDs7Ozs7Tjs7Ozs7CisgICAgLy8gREJGRjs8UHJpdmF0ZSBVc2UgSGlnaCBTdXJyb2dhdGUsIExhc3Q+O0NzOzA7TDs7Ozs7Tjs7Ozs7CisgICAgLy8gREMwMDs8TG93IFN1cnJvZ2F0ZSwgRmlyc3Q+O0NzOzA7TDs7Ozs7Tjs7Ozs7CisgICAgLy8gREZGRjs8TG93IFN1cnJvZ2F0ZSwgTGFzdD47Q3M7MDtMOzs7OztOOzs7OzsKKyAgICAvLyBFMDAwOzxQcml2YXRlIFVzZSwgRmlyc3Q+O0NvOzA7TDs7Ozs7Tjs7Ozs7CisgICAgLy8gRjhGRjs8UHJpdmF0ZSBVc2UsIExhc3Q+O0NvOzA7TDs7Ozs7Tjs7Ozs7CisgICAgLy8gMjAwMDA7PENKSyBJZGVvZ3JhcGggRXh0ZW5zaW9uIEIsIEZpcnN0PjtMbzswO0w7Ozs7O047Ozs7OworICAgIC8vIDJBNkQ2OzxDSksgSWRlb2dyYXBoIEV4dGVuc2lvbiBCLCBMYXN0PjtMbzswO0w7Ozs7O047Ozs7OworICAgIC8vIEYwMDAwOzxQbGFuZSAxNSBQcml2YXRlIFVzZSwgRmlyc3Q+O0NvOzA7TDs7Ozs7Tjs7Ozs7CisgICAgLy8gRkZGRkQ7PFBsYW5lIDE1IFByaXZhdGUgVXNlLCBMYXN0PjtDbzswO0w7Ozs7O047Ozs7OworICAgIC8vIDEwMDAwMDs8UGxhbmUgMTYgUHJpdmF0ZSBVc2UsIEZpcnN0PjtDbzswO0w7Ozs7O047Ozs7OworICAgIC8vIDEwRkZGRDs8UGxhbmUgMTYgUHJpdmF0ZSBVc2UsIExhc3Q+O0NvOzA7TDs7Ozs7Tjs7Ozs7CisgICAgLy8gCisgICAgLy8gPkxhcmdlIEJsb2NrcyBvZiBVbmFzc2lnbmVkOiAoZnJvbSBEZXJpdmVkR2VuZXJhbENhdGVnb3J5KQorICAgIC8vIDEwNDRFLi4xQ0ZGRiAgOyBDbiAjIFs1MjE0Nl0KKyAgICAvLyAxRDgwMC4uMUZGRkYgIDsgQ24gIyBbMTAyNDBdCisgICAgLy8gMkE2RDcuLjJGN0ZGICA7IENuICMgWzIwNzc3XQorICAgIC8vIDJGQTFFLi5FMDAwMCAgOyBDbiAjIFs3MjI0MDNdCisgICAgLy8gRTAwODAuLkVGRkZGICA7IENuICMgWzY1NDA4XQorCisgICAgLy8gVE9ETzogVGhlIEluY2x1c2lvbiBMaXN0IHNob3VsZCBiZSBnZW5lcmF0ZWQgZnJvbSB0aGUgVUNEIGZvciBlYWNoCisgICAgLy8gdmVyc2lvbiwgYW5kIHRodXMgc2hvdWxkIGJlIGFjY2Vzc2VkIGZyb20gdGhlIHByb3BlcnRpZXMgZGF0YSBmaWxlCisgICAgLy8gKEV2ZW4gYmV0dGVyOiBtb3ZlIHRoZSBsb2dpYyBpbnRvIFVDaGFyYWN0ZXIgZm9yIGJ1aWxkaW5nIHRoZXNlCisgICAgLy8gcHJvcGVydGllcywgc2luY2UgdGhhdCBpcyB3aGVyZSBpdCBiZWxvbmdzISkKKworICAgIC8qKgorICAgICAqIEEgc2V0IG9mIGFsbCBjaGFyYWN0ZXJzIF9leGNlcHRfIHRoZSBzZWNvbmQgdGhyb3VnaCBsYXN0IGNoYXJhY3RlcnMgb2YKKyAgICAgKiBjZXJ0YWluIHJhbmdlcy4gIFRoZXNlIHJhbmdlcyBhcmUgcmFuZ2VzIG9mIGNoYXJhY3RlcnMgd2hvc2UKKyAgICAgKiBwcm9wZXJ0aWVzIGFyZSBhbGwgZXhhY3RseSBhbGlrZSwgZS5nLiBDSksgSWRlb2dyYXBocyBmcm9tCisgICAgICogVSs0RTAwIHRvIFUrOUZBNS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBVbmljb2RlU2V0IElOQ0xVU0lPTlMgPQorICAgICAgICBuZXcgVW5pY29kZVNldCgiW15cXHUzNDAxLVxcdTREQjUgXFx1NEUwMS1cXHU5RkE1IFxcdUFDMDEtXFx1RDdBMyBcXHVEODAxLVxcdURCN0YgXFx1REI4MS1cXHVEQkZGIFxcdURDMDEtXFx1REZGRiBcXHVFMDAxLVxcdUY4RkYgXFxVMDAwMTA0NEYtXFxVMDAwMUNGRkYgXFxVMDAwMUQ4MDEtXFxVMDAwMUZGRkYgXFxVMDAwMjAwMDEtXFxVMDAwMkE2RDYgXFxVMDAwMkE2RDgtXFxVMDAwMkY3RkYgXFxVMDAwMkZBMUYtXFxVMDAwRTAwMDAgXFxVMDAwRTAwODEtXFxVMDAwRUZGRkYgXFxVMDAwRjAwMDEtXFxVMDAwRkZGRkQgXFxVMDAxMDAwMDEtXFxVMDAxMEZGRkRdIik7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBQdWJsaWMgQVBJCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4gcG9zaXRpb24sIGluIHRoZSBnaXZlbiBwYXR0ZXJuLCBhcHBlYXJzCisgICAgICogdG8gYmUgdGhlIHN0YXJ0IG9mIGEgcHJvcGVydHkgc2V0IHBhdHRlcm4gWzpmb286XSwgXHB7Zm9vfSwgb3IKKyAgICAgKiBcUHtmb299LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiByZXNlbWJsZXNQYXR0ZXJuKFN0cmluZyBwYXR0ZXJuLCBpbnQgcG9zKSB7CisgICAgICAgIC8vIFBhdHRlcm5zIGFyZSBhdCBsZWFzdCA1IGNoYXJhY3RlcnMgbG9uZworICAgICAgICBpZiAoKHBvcys1KSA+IHBhdHRlcm4ubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIExvb2sgZm9yIGFuIG9wZW5pbmcgWzosIFs6XiwgXHAsIG9yIFxQCisgICAgICAgIHJldHVybiBwYXR0ZXJuLnJlZ2lvbk1hdGNoZXMocG9zLCAiWzoiLCAwLCAyKSB8fAorICAgICAgICAgICAgcGF0dGVybi5yZWdpb25NYXRjaGVzKHRydWUsIHBvcywgIlxccCIsIDAsIDIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIFVuaWNvZGVTZXQgYnkgcGFyc2luZyB0aGUgZ2l2ZW4gcGF0dGVybiBhdCB0aGUgZ2l2ZW4KKyAgICAgKiBwYXJzZSBwb3NpdGlvbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwYXR0ZXJuIHRoZSBwYXR0ZXJuIHN0cmluZworICAgICAqIEBwYXJhbSBwcG9zIG9uIGVudHJ5LCB0aGUgcG9zaXRpb24gYXQgd2hpY2ggdG8gYmVnaW4gcGFyc2luZy4KKyAgICAgKiBUaGlzIHNob2xkIGJlIG9uZSBvZiB0aGUgbG9jYXRpb25zIG1hcmtlZCAnXic6CisgICAgICoKKyAgICAgKiAgIFs6YmxhaDpdICAgICBccHtibGFofSAgICAgXFB7YmxhaH0KKyAgICAgKiAgIF4gICAgICAgJSAgICBeICAgICAgICUgICAgXiAgICAgICAlCisgICAgICoKKyAgICAgKiBPbiByZXR1cm4sIHRoZSBwb3NpdGlvbiBhZnRlciB0aGUgbGFzdCBjaGFyYWN0ZXIgcGFyc2VkLCB0aGF0IGlzLAorICAgICAqIHRoZSBsb2NhdGlvbnMgbWFya2VkICclJy4gIElmIHRoZSBwYXJzZSBmYWlscywgcHBvcyBpcyByZXR1cm5lZAorICAgICAqIHVuY2hhbmdlZC4KKyAgICAgKiBAcmV0dXJuIGEgbmV3bHktY29uc3RydWN0ZWQgVW5pY29kZVNldCBvYmplY3QsIG9yIG51bGwgdXBvbgorICAgICAqIGZhaWx1cmUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBVbmljb2RlU2V0IGNyZWF0ZUZyb21QYXR0ZXJuKFN0cmluZyBwYXR0ZXJuLCBQYXJzZVBvc2l0aW9uIHBwb3MpIHsKKyAgICAgICAgaW5pdCgpOworCisgICAgICAgIFVuaWNvZGVTZXQgc2V0ID0gbnVsbDsKKworICAgICAgICBpbnQgcG9zID0gcHBvcy5nZXRJbmRleCgpOworCisgICAgICAgIC8vIE9uIGVudHJ5LCBwcG9zIHNob3VsZCBwb2ludCB0byBvbmUgb2YgdGhlIGZvbGxvd2luZyBsb2NhdGlvbnM6CisKKyAgICAgICAgLy8gTWluaW11bSBsZW5ndGggaXMgNSBjaGFyYWN0ZXJzLCBlLmcuIFxwe0x9CisgICAgICAgIGlmICgocG9zKzUpID4gcGF0dGVybi5sZW5ndGgoKSkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICBib29sZWFuIHBvc2l4ID0gZmFsc2U7IC8vIHRydWUgZm9yIFs6cGF0Ol0sIGZhbHNlIGZvciBccHtwYXR9IFxQe3BhdH0KKyAgICAgICAgYm9vbGVhbiBpbnZlcnQgPSBmYWxzZTsKKworICAgICAgICAvLyBMb29rIGZvciBhbiBvcGVuaW5nIFs6LCBbOl4sIFxwLCBvciBcUAorICAgICAgICBpZiAocGF0dGVybi5yZWdpb25NYXRjaGVzKHBvcywgIls6IiwgMCwgMikpIHsKKyAgICAgICAgICAgIHBvc2l4ID0gdHJ1ZTsKKyAgICAgICAgICAgIHBvcyA9IFV0aWxpdHkuc2tpcFdoaXRlc3BhY2UocGF0dGVybiwgcG9zKzIpOworICAgICAgICAgICAgaWYgKHBvcyA8IHBhdHRlcm4ubGVuZ3RoKCkgJiYgcGF0dGVybi5jaGFyQXQocG9zKSA9PSAnXicpIHsKKyAgICAgICAgICAgICAgICArK3BvczsKKyAgICAgICAgICAgICAgICBpbnZlcnQgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKHBhdHRlcm4ucmVnaW9uTWF0Y2hlcyh0cnVlLCBwb3MsICJcXHAiLCAwLCAyKSkgeworICAgICAgICAgICAgaW52ZXJ0ID0gKHBhdHRlcm4uY2hhckF0KHBvcysxKSA9PSAnUCcpOworICAgICAgICAgICAgcG9zID0gVXRpbGl0eS5za2lwV2hpdGVzcGFjZShwYXR0ZXJuLCBwb3MrMik7CisgICAgICAgICAgICBpZiAocG9zID09IHBhdHRlcm4ubGVuZ3RoKCkgfHwgcGF0dGVybi5jaGFyQXQocG9zKyspICE9ICd7JykgeworICAgICAgICAgICAgICAgIC8vIFN5bnRheCBlcnJvcjsgIlxwIiBvciAiXFAiIG5vdCBmb2xsb3dlZCBieSAieyIKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIE9wZW4gZGVsaW1pdGVyIG5vdCBzZWVuCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIExvb2sgZm9yIHRoZSBtYXRjaGluZyBjbG9zZSBkZWxpbWl0ZXIsIGVpdGhlciA6XSBvciB9CisgICAgICAgIGludCBjbG9zZSA9IHBhdHRlcm4uaW5kZXhPZihwb3NpeCA/ICI6XSIgOiAifSIsIHBvcyk7CisgICAgICAgIGlmIChjbG9zZSA8IDApIHsKKyAgICAgICAgICAgIC8vIFN5bnRheCBlcnJvcjsgY2xvc2UgZGVsaW1pdGVyIG1pc3NpbmcKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgLy8gTG9vayBmb3IgYW4gJz0nIHNpZ24uICBJZiB0aGlzIGlzIHByZXNlbnQsIHdlIHdpbGwgcGFyc2UgYQorICAgICAgICAvLyBtZWRpdW0gXHB7Z2M9Q2Z9IG9yIGxvbmcgXHB7R2VuZXJhbENhdGVnb3J5PUZvcm1hdH0KKyAgICAgICAgLy8gcGF0dGVybi4KKyAgICAgICAgaW50IGVxdWFscyA9IHBhdHRlcm4uaW5kZXhPZignPScsIHBvcyk7CisgICAgICAgIGlmIChlcXVhbHMgPj0gMCAmJiBlcXVhbHMgPCBjbG9zZSkgeworICAgICAgICAgICAgLy8gRXF1YWxzIHNlZW47IHBhcnNlIG1lZGl1bS9sb25nIHBhdHRlcm4KKyAgICAgICAgICAgIFN0cmluZyB0eXBlTmFtZSA9IG11bmdlKHBhdHRlcm4sIHBvcywgZXF1YWxzKTsKKyAgICAgICAgICAgIFN0cmluZyB2YWx1ZU5hbWUgPSBtdW5nZShwYXR0ZXJuLCBlcXVhbHMrMSwgY2xvc2UpOworICAgICAgICAgICAgU2V0RmFjdG9yeSBmYWN0b3J5OworICAgICAgICAgICAgZmFjdG9yeSA9IChTZXRGYWN0b3J5KSBOQU1FX01BUC5nZXQodHlwZU5hbWUpOworICAgICAgICAgICAgaWYgKGZhY3RvcnkgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIC8vIE5vdCBhIGZhY3Rvcnk7IHRyeSBhIGJpbmFyeSBwcm9wZXJ0eSBvZiB0aGUgZm9ybQorICAgICAgICAgICAgICAgIC8vIFxwe2Zvbz10cnVlfSwgd2hlcmUgdGhlIHZhbHVlIGNhbiBiZSAndHJ1ZScsICd0JywKKyAgICAgICAgICAgICAgICAvLyAnZmFsc2UnLCBvciAnZicuCisgICAgICAgICAgICAgICAgSW50ZWdlciB2ID0gKEludGVnZXIpIEJPT0xFQU5fVkFMVUVfTUFQLmdldCh2YWx1ZU5hbWUpOworICAgICAgICAgICAgICAgIGlmICh2ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgc2V0ID0gY3JlYXRlQmluYXJ5UHJvcGVydHlTZXQodHlwZU5hbWUpOworICAgICAgICAgICAgICAgICAgICBpbnZlcnQgXj0gKHYuaW50VmFsdWUoKSA9PSAwKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoc2V0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gU3ludGF4IGVycm9yOyB0eXBlIG5hbWUgbm90IHJlY29nbml6ZWQKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzZXQgPSBmYWN0b3J5LmNyZWF0ZSh2YWx1ZU5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gTm8gZXF1YWxzIHNlZW47IHBhcnNlIHNob3J0IGZvcm1hdCBccHtDZn0KKyAgICAgICAgICAgIFN0cmluZyBzaG9ydE5hbWUgPSBtdW5nZShwYXR0ZXJuLCBwb3MsIGNsb3NlKTsKKworICAgICAgICAgICAgLy8gRmlyc3QgdHJ5IGdlbmVyYWwgY2F0ZWdvcnkKKyAgICAgICAgICAgIHNldCA9IGNyZWF0ZUNhdGVnb3J5U2V0KHNob3J0TmFtZSk7CisKKyAgICAgICAgICAgIC8vIElmIHRoaXMgZmFpbHMsIHRyeSBzY3JpcHQKKyAgICAgICAgICAgIGlmIChzZXQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHNldCA9IGNyZWF0ZVNjcmlwdFNldChzaG9ydE5hbWUpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBJZiB0aGlzIGZhaWxzLCB0cnkgYmluYXJ5IHByb3BlcnR5CisgICAgICAgICAgICBpZiAoc2V0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzZXQgPSBjcmVhdGVCaW5hcnlQcm9wZXJ0eVNldChzaG9ydE5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKGludmVydCkgeworICAgICAgICAgICAgc2V0LmNvbXBsZW1lbnQoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE1vdmUgdG8gdGhlIGxpbWl0IHBvc2l0aW9uIGFmdGVyIHRoZSBjbG9zZSBkZWxpbWl0ZXIKKyAgICAgICAgcHBvcy5zZXRJbmRleChjbG9zZSArIChwb3NpeCA/IDIgOiAxKSk7CisKKyAgICAgICAgcmV0dXJuIHNldDsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBQcm9wZXJ0eSBzZXQgZmFjdG9yeSBjbGFzc2VzCisgICAgLy8gTk9URTogVGhpcyB3aWxsIGNoYW5nZS9nbyBhd2F5IHdoZW4gd2UgaW1wbGVtZW50IFVDaGFyYWN0ZXIKKyAgICAvLyBiYXNlZCBwcm9wZXJ0eSByZXRyaWV2YWwuCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBzdGF0aWMgaW50ZXJmYWNlIFNldEZhY3RvcnkgeworCisgICAgICAgIFVuaWNvZGVTZXQgY3JlYXRlKFN0cmluZyB2YWx1ZU5hbWUpOworICAgIH0KKworICAgIHN0YXRpYyBjbGFzcyBOdW1lcmljVmFsdWVGYWN0b3J5IGltcGxlbWVudHMgU2V0RmFjdG9yeSB7CisgICAgICAgIE51bWVyaWNWYWx1ZUZhY3RvcnkoKSB7fQorICAgICAgICBwdWJsaWMgVW5pY29kZVNldCBjcmVhdGUoU3RyaW5nIHZhbHVlTmFtZSkgeworICAgICAgICAgICAgZG91YmxlIHZhbHVlID0gRG91YmxlLnBhcnNlRG91YmxlKHZhbHVlTmFtZSk7CisgICAgICAgICAgICBmaW5hbCBpbnQgaXZhbHVlID0gKGludCkgdmFsdWU7CisgICAgICAgICAgICBpZiAoaXZhbHVlICE9IHZhbHVlIHx8IGl2YWx1ZSA8IDApIHsKKyAgICAgICAgICAgICAgICAvLyBVQ2hhcmFjdGVyIGRvZXNuJ3Qgc3VwcG9ydCBuZWdhdGl2ZSBvciBub24taW50ZWdyYWwKKyAgICAgICAgICAgICAgICAvLyB2YWx1ZXMsIHNvIGp1c3QgcmV0dXJuIGFuIGVtcHR5IHNldAorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVW5pY29kZVNldCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVNldEZyb21GaWx0ZXIobmV3IEZpbHRlcigpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgYm9vbGVhbiBjb250YWlucyhpbnQgY3ApIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXIuZ2V0VW5pY29kZU51bWVyaWNWYWx1ZShjcCkgPT0gaXZhbHVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIENvbWJpbmluZ0NsYXNzRmFjdG9yeSBpbXBsZW1lbnRzIFNldEZhY3RvcnkgeworICAgICAgICBDb21iaW5pbmdDbGFzc0ZhY3RvcnkoKSB7fQorICAgICAgICBwdWJsaWMgVW5pY29kZVNldCBjcmVhdGUoU3RyaW5nIHZhbHVlTmFtZSkgeworICAgICAgICAgICAgaW50IGl2YWx1ZSA9IC0xOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpdmFsdWUgPSBJbnRlZ2VyLnBhcnNlSW50KHZhbHVlTmFtZSk7CisgICAgICAgICAgICB9IGNhdGNoIChOdW1iZXJGb3JtYXRFeGNlcHRpb24gZSkge30KKyAgICAgICAgICAgIGlmIChpdmFsdWUgPCAwKSB7CisgICAgICAgICAgICAgICAgLy8gV2UgaGF2ZSBhIG5lZ2F0aXZlIHZhbHVlLCBvciBub24tbnVtZXJpYyB0ZXh0LgorICAgICAgICAgICAgICAgIC8vIFRyeSB0byBsb29rdXAgYSBzeW1ib2xpYyBjb21iaW5pbmcgY2xhc3MgbmFtZQorICAgICAgICAgICAgICAgIEludGVnZXIgb2JqID0gKEludGVnZXIpIENPTUJJTklOR19DTEFTU19NQVAuZ2V0KHZhbHVlTmFtZSk7CisgICAgICAgICAgICAgICAgaWYgKG9iaiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGl2YWx1ZSA9IG9iai5pbnRWYWx1ZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZpbmFsIGludCBmaXZhbHVlID0gaXZhbHVlOworICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVNldEZyb21GaWx0ZXIobmV3IEZpbHRlcigpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgYm9vbGVhbiBjb250YWlucyhpbnQgY3ApIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLmdldENvbWJpbmluZ0NsYXNzKGNwKSA9PSBmaXZhbHVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIEJpZGlDbGFzc0ZhY3RvcnkgaW1wbGVtZW50cyBTZXRGYWN0b3J5IHsKKyAgICAgICAgQmlkaUNsYXNzRmFjdG9yeSgpIHt9CisgICAgICAgIHB1YmxpYyBVbmljb2RlU2V0IGNyZWF0ZShTdHJpbmcgdmFsdWVOYW1lKSB7CisgICAgICAgICAgICBJbnRlZ2VyIG9iaiA9IChJbnRlZ2VyKSBCSURJX0NMQVNTX01BUC5nZXQodmFsdWVOYW1lKTsKKyAgICAgICAgICAgIGlmIChvYmogPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZmluYWwgaW50IGl2YWx1ZSA9IG9iai5pbnRWYWx1ZSgpOworICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVNldEZyb21GaWx0ZXIobmV3IEZpbHRlcigpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgYm9vbGVhbiBjb250YWlucyhpbnQgY3ApIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXIuZ2V0RGlyZWN0aW9uKGNwKSA9PSBpdmFsdWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBQcm9wZXJ0eSBzZXQgZmFjdG9yeSBzdGF0aWMgbWV0aG9kcworICAgIC8vIE5PVEU6IFRoaXMgd2lsbCBjaGFuZ2UvZ28gYXdheSB3aGVuIHdlIGltcGxlbWVudCBVQ2hhcmFjdGVyCisgICAgLy8gYmFzZWQgcHJvcGVydHkgcmV0cmlldmFsLgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogR2l2ZW4gYSBnZW5lcmFsIGNhdGVnb3J5IHZhbHVlIG5hbWUsIGNyZWF0ZSBhIGNvcnJlc3BvbmRpbmcKKyAgICAgKiBzZXQgYW5kIHJldHVybiBpdCwgb3IgcmV0dXJuIG51bGwgaWYgdGhlIG5hbWUgaXMgaW52YWxpZC4KKyAgICAgKiBAcGFyYW0gdmFsdWVOYW1lIGEgcHJlLW11bmdlZCBnZW5lcmFsIGNhdGVnb3J5IHZhbHVlIG5hbWUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBVbmljb2RlU2V0IGNyZWF0ZUNhdGVnb3J5U2V0KFN0cmluZyB2YWx1ZU5hbWUpIHsKKyAgICAgICAgSW50ZWdlciB2YWx1ZU9iajsKKyAgICAgICAgdmFsdWVPYmogPSAoSW50ZWdlcikgQ0FURUdPUllfTUFQLmdldCh2YWx1ZU5hbWUpOworICAgICAgICBpZiAodmFsdWVPYmogPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgaW50IHZhbHVlQ29kZSA9IHZhbHVlT2JqLmludFZhbHVlKCk7CisKKyAgICAgICAgVW5pY29kZVNldCBzZXQgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICBpZiAodmFsdWVDb2RlID09IEFOWSkgeworICAgICAgICAgICAgc2V0LnNldCgwLCAweDEwRkZGRik7CisgICAgICAgIH0gZWxzZSBpZiAodmFsdWVDb2RlID09IEFTQ0lJKSB7CisgICAgICAgICAgICBzZXQuc2V0KDAsIDB4N0YpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZm9yIChpbnQgY2F0PTA7IGNhdDxVQ2hhcmFjdGVyQ2F0ZWdvcnkuQ0hBUl9DQVRFR09SWV9DT1VOVDsgKytjYXQpIHsKKyAgICAgICAgICAgICAgICBpZiAoKHZhbHVlQ29kZSAmICgxIDw8IGNhdCkpICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgc2V0LmFkZEFsbChVbmljb2RlUHJvcGVydHlTZXQuZ2V0Q2F0ZWdvcnlTZXQoY2F0KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBzZXQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2l2ZW4gYSBzY3JpcHQgdmFsdWUgbmFtZSwgY3JlYXRlIGEgY29ycmVzcG9uZGluZyBzZXQgYW5kCisgICAgICogcmV0dXJuIGl0LCBvciByZXR1cm4gbnVsbCBpZiB0aGUgbmFtZSBpcyBpbnZhbGlkLgorICAgICAqIEBwYXJhbSB2YWx1ZU5hbWUgYSBwcmUtbXVuZ2VkIHNjcmlwdCB2YWx1ZSBuYW1lCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgVW5pY29kZVNldCBjcmVhdGVTY3JpcHRTZXQoU3RyaW5nIHZhbHVlTmFtZSkgeworICAgICAgICBpbnRbXSBzY3JpcHQgPSBVU2NyaXB0LmdldENvZGUodmFsdWVOYW1lKTsKKyAgICAgICAgaWYgKHNjcmlwdCA9PSBudWxsKSB7CisgICAgICAgICAgICAvLyBTeW50YXggZXJyb3I7IHVua25vd24gc2hvcnQgbmFtZQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBVbmljb2RlU2V0KGdldFNjcmlwdFNldChzY3JpcHRbMF0pKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHaXZlbiBhIGJpbmFyeSBwcm9wZXJ0eSBuYW1lLCBjcmVhdGUgYSBjb3JyZXNwb25kaW5nCisgICAgICogc2V0IGFuZCByZXR1cm4gaXQsIG9yIHJldHVybiBudWxsIGlmIHRoZSBuYW1lIGlzIGludmFsaWQuCisgICAgICogQHBhcmFtIHZhbHVlTmFtZSBhIHByZS1tdW5nZWQgYmluYXJ5IHByb3BlcnR5IG5hbWUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBVbmljb2RlU2V0IGNyZWF0ZUJpbmFyeVByb3BlcnR5U2V0KFN0cmluZyB2YWx1ZU5hbWUpIHsKKyAgICAgICAgSW50ZWdlciBvYmogPSAoSW50ZWdlcikgQklOQVJZX1BST1BFUlRZX01BUC5nZXQodmFsdWVOYW1lKTsKKyAgICAgICAgaWYgKG9iaiA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICBmaW5hbCBpbnQgaXZhbHVlID0gb2JqLmludFZhbHVlKCk7CisgICAgICAgIHJldHVybiBjcmVhdGVTZXRGcm9tRmlsdGVyKG5ldyBGaWx0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgYm9vbGVhbiBjb250YWlucyhpbnQgY3ApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3Rlci5oYXNCaW5hcnlQcm9wZXJ0eShjcCwgaXZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gVXRpbGl0eSBtZXRob2RzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgVW5pY29kZVNldCBmb3IgdGhlIGdpdmVuIGNhdGVnb3J5LiAgVGhpcyBzZXQgaXMKKyAgICAgKiBjYWNoZWQgYW5kIHJldHVybmVkIGFnYWluIGlmIHRoaXMgbWV0aG9kIGlzIGNhbGxlZCBhZ2FpbiB3aXRoCisgICAgICogdGhlIHNhbWUgcGFyYW1ldGVyLgorICAgICAqCisgICAgICogQ2FsbGVycyBNVVNUIE5PVCBNT0RJRlkgdGhlIHJldHVybmVkIHNldC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBVbmljb2RlU2V0IGdldENhdGVnb3J5U2V0KGZpbmFsIGludCBjYXQpIHsKKyAgICAgICAgaWYgKENBVEVHT1JZX0NBQ0hFW2NhdF0gPT0gbnVsbCkgeworICAgICAgICAgICAgQ0FURUdPUllfQ0FDSEVbY2F0XSA9CisgICAgICAgICAgICAgICAgY3JlYXRlU2V0RnJvbUZpbHRlcihuZXcgRmlsdGVyKCkgeworICAgICAgICAgICAgICAgICAgICBwdWJsaWMgYm9vbGVhbiBjb250YWlucyhpbnQgY3ApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyLmdldFR5cGUoY3ApID09IGNhdDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgICAgIHJldHVybiBDQVRFR09SWV9DQUNIRVtjYXRdOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBVbmljb2RlU2V0IGZvciB0aGUgZ2l2ZW4gc2NyaXB0LiAgVGhpcyBzZXQgaXMKKyAgICAgKiBjYWNoZWQgYW5kIHJldHVybmVkIGFnYWluIGlmIHRoaXMgbWV0aG9kIGlzIGNhbGxlZCBhZ2FpbiB3aXRoCisgICAgICogdGhlIHNhbWUgcGFyYW1ldGVyLgorICAgICAqCisgICAgICogQ2FsbGVycyBNVVNUIE5PVCBNT0RJRlkgdGhlIHJldHVybmVkIHNldC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBVbmljb2RlU2V0IGdldFNjcmlwdFNldChmaW5hbCBpbnQgc2NyaXB0KSB7CisgICAgICAgIGlmIChTQ1JJUFRfQ0FDSEVbc2NyaXB0XSA9PSBudWxsKSB7CisgICAgICAgICAgICBTQ1JJUFRfQ0FDSEVbc2NyaXB0XSA9CisgICAgICAgICAgICAgICAgY3JlYXRlU2V0RnJvbUZpbHRlcihuZXcgRmlsdGVyKCkgeworICAgICAgICAgICAgICAgICAgICBwdWJsaWMgYm9vbGVhbiBjb250YWlucyhpbnQgY3ApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBVU2NyaXB0LmdldFNjcmlwdChjcCkgPT0gc2NyaXB0OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIFNDUklQVF9DQUNIRVtzY3JpcHRdOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdpdmVuIGEgc3RyaW5nLCBtdW5nZSBpdCB0byBsb3NlIHRoZSB3aGl0ZXNwYWNlLCB1bmRlcnNjb3JlcywKKyAgICAgKiBhbmQgaHlwaGVucy4gIFNvICJHZW5lcmFsIENhdGVnb3J5ICIgb3IgIkdlbmVyYWxfQ2F0ZWdvcnkiIG9yICIKKyAgICAgKiBHZW5lcmFsLUNhdGVnb3J5IiBiZWNvbWUgIkdlbmVyYWxDYXRlZ29yeSIuIFdlIG11bmdlIGFsbCB0eXBlCisgICAgICogYW5kIHZhbHVlIHN0cmluZ3MsIGFuZCBzdG9yZSBhbGwgdHlwZSBhbmQgdmFsdWUga2V5cworICAgICAqIHByZS1tdW5nZWQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIG11bmdlKFN0cmluZyBzdHIsIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGk9c3RhcnQ7IGk8bGltaXQ7ICkgeworICAgICAgICAgICAgaW50IGMgPSBVVEYxNi5jaGFyQXQoc3RyLCBpKTsKKyAgICAgICAgICAgIGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgaWYgKGMgIT0gJ18nICYmIGMgIT0gJy0nICYmICFVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShjKSkgeworICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZChidWYsIFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoYykpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBHZW5lcmljIGZpbHRlci1iYXNlZCBzY2FubmluZyBjb2RlCisgICAgLy8KKyAgICAvLyBOT1RFOiBJbiBnZW5lcmFsLCB3ZSBkb24ndCB3YW50IHRvIGRvIHRoaXMhICBUaGlzIGlzIGEgdGVtcG9yYXJ5CisgICAgLy8gaW1wbGVtZW50YXRpb24gdW50aWwgd2UgaGF2ZSB0aW1lIGZvciBzb21ldGhpbmcgdGhhdCBleGFtaW5lcworICAgIC8vIHRoZSB1bmRlcmx5aW5nIFVDaGFyYWN0ZXIgZGF0YSBzdHJ1Y3R1cmVzIGluIGFuIGludGVsbGlnZW50CisgICAgLy8gd2F5LiAgSXRlcmF0aW5nIG92ZXIgYWxsIGNvZGUgcG9pbnRzIGlzIGR1bWIuICBXaGF0IHdlIHdhbnQgdG8KKyAgICAvLyBkbywgZm9yIGluc3RhbmNlLCBpcyBpdGVyYXRlIG92ZXIgaW50ZXJuYWxseS1zdG9yZWQgcmFuZ2VzCisgICAgLy8gb2YgY2hhcmFjdGVycyB0aGF0IGhhdmUgYSBnaXZlbiBwcm9wZXJ0eS4KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHN0YXRpYyBpbnRlcmZhY2UgRmlsdGVyIHsKKyAgICAgICAgYm9vbGVhbiBjb250YWlucyhpbnQgY29kZVBvaW50KTsKKyAgICB9CisKKyAgICBzdGF0aWMgVW5pY29kZVNldCBjcmVhdGVTZXRGcm9tRmlsdGVyKEZpbHRlciBmaWx0ZXIpIHsKKyAgICAgICAgLy8gV2FsayB0aHJvdWdoIGFsbCBVbmljb2RlIGNoYXJhY3RlcnMsIG5vdGluZyB0aGUgc3RhcnQKKyAgICAgICAgLy8gYW5kIGVuZCBvZiBlYWNoIHJhbmdlIGZvciB3aGljaCBmaWx0ZXIuY29udGFpbihjKSBpcworICAgICAgICAvLyB0cnVlLiAgQWRkIGVhY2ggcmFuZ2UgdG8gYSBzZXQuCisgICAgICAgIC8vCisgICAgICAgIC8vIFRvIGltcHJvdmUgcGVyZm9ybWFuY2UsIHVzZSB0aGUgSU5DTFVTSU9OUyBzZXQsIHdoaWNoCisgICAgICAgIC8vIGVuY29kZXMgaW5mb3JtYXRpb24gYWJvdXQgY2hhcmFjdGVyIHJhbmdlcyB0aGF0IGFyZSBrbm93bgorICAgICAgICAvLyB0byBoYXZlIGlkZW50aWNhbCBwcm9wZXJ0aWVzLCBzdWNoIGFzIHRoZSBDSksgSWRlb2dyYXBocworICAgICAgICAvLyBmcm9tIFUrNEUwMCB0byBVKzlGQTUuICBJTkNMVVNJT05TIGNvbnRhaW5zIGFsbCBjaGFyYWN0ZXJzCisgICAgICAgIC8vIGV4Y2VwdCB0aGUgZmlyc3QgY2hhcmFjdGVycyBvZiBzdWNoIHJhbmdlcy4KKyAgICAgICAgLy8KKyAgICAgICAgLy8gVE9ETyBXaGVyZSBwb3NzaWJsZSwgaW5zdGVhZCBvZiBzY2FubmluZyBvdmVyIGNvZGUgcG9pbnRzLAorICAgICAgICAvLyB1c2UgaW50ZXJuYWwgcHJvcGVydHkgZGF0YSB0byBpbml0aWFsaXplIFVuaWNvZGVTZXRzIGZvcgorICAgICAgICAvLyB0aG9zZSBwcm9wZXJ0aWVzLiAgU2Nhbm5pbmcgY29kZSBwb2ludHMgaXMgc2xvdy4KKworICAgICAgICBVbmljb2RlU2V0IHNldCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIGludCBzdGFydEhhc1Byb3BlcnR5ID0gLTE7CisgICAgICAgIGludCBsaW1pdFJhbmdlID0gSU5DTFVTSU9OUy5nZXRSYW5nZUNvdW50KCk7CisKKyAgICAgICAgZm9yIChpbnQgaj0wOyBqPGxpbWl0UmFuZ2U7ICsraikgeworICAgICAgICAgICAgLy8gZ2V0IGN1cnJlbnQgcmFuZ2UKKyAgICAgICAgICAgIGludCBzdGFydCA9IElOQ0xVU0lPTlMuZ2V0UmFuZ2VTdGFydChqKTsKKyAgICAgICAgICAgIGludCBlbmQgPSBJTkNMVVNJT05TLmdldFJhbmdlRW5kKGopOworCisgICAgICAgICAgICAvLyBmb3IgYWxsIHRoZSBjb2RlIHBvaW50cyBpbiB0aGUgcmFuZ2UsIHByb2Nlc3MKKyAgICAgICAgICAgIGZvciAoaW50IGNoID0gc3RhcnQ7IGNoIDw9IGVuZDsgKytjaCkgeworICAgICAgICAgICAgICAgIC8vIG9ubHkgYWRkIHRvIHRoZSB1bmljb2Rlc2V0IG9uIGluZmxlY3Rpb24gcG9pbnRzIC0tCisgICAgICAgICAgICAgICAgLy8gd2hlcmUgdGhlIGhhc1Byb3BlcnR5IHZhbHVlIGNoYW5nZXMgdG8gZmFsc2UKKyAgICAgICAgICAgICAgICBpZiAoZmlsdGVyLmNvbnRhaW5zKGNoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnRIYXNQcm9wZXJ0eSA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0SGFzUHJvcGVydHkgPSBjaDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RhcnRIYXNQcm9wZXJ0eSA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHNldC5hZGQoc3RhcnRIYXNQcm9wZXJ0eSwgY2gtMSk7CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0SGFzUHJvcGVydHkgPSAtMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKHN0YXJ0SGFzUHJvcGVydHkgPj0gMCkgeworICAgICAgICAgICAgc2V0LmFkZChzdGFydEhhc1Byb3BlcnR5LCAweDEwRkZGRik7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gc2V0OworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFR5cGUgYW5kIHZhbHVlIG5hbWUgbWFwcworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQWRkIGEgdHlwZSBtYXBwaW5nIHRvIHRoZSBuYW1lIG1hcC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGFkZFR5cGUoU3RyaW5nIHNob3J0TmFtZSwgU3RyaW5nIGxvbmdOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZXRGYWN0b3J5IGZhY3RvcnkpIHsKKyAgICAgICAgLy8gREVCVUdHSU5HIENPREU6IERJU0FCTEUgRk9SIFBST0RVQ1RJT04gQlVJTEQKKyAgICAgICAgaWYgKGZhbHNlKSB7CisgICAgICAgICAgICBpZiAoTkFNRV9NQVAuZ2V0KHNob3J0TmFtZSkgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKCJEdXBsaWNhdGUgbmFtZSAiICsgc2hvcnROYW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChOQU1FX01BUC5nZXQobG9uZ05hbWUpICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcigiRHVwbGljYXRlIG5hbWUgIiArIGxvbmdOYW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIE5BTUVfTUFQLnB1dChzaG9ydE5hbWUsIGZhY3RvcnkpOworICAgICAgICBOQU1FX01BUC5wdXQobG9uZ05hbWUsIGZhY3RvcnkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZCBhIHZhbHVlIG1hcHBpbmcgdG8gdGhlIG5hbWUgbWFwLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgYWRkVmFsdWUoSGFzaHRhYmxlIG1hcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzaG9ydE5hbWUsIFN0cmluZyBsb25nTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB2YWx1ZSkgeworICAgICAgICAvLyBERUJVR0dJTkcgQ09ERTogRElTQUJMRSBGT1IgUFJPRFVDVElPTiBCVUlMRAorICAgICAgICBpZiAoZmFsc2UpIHsKKyAgICAgICAgICAgIGlmIChtYXAuZ2V0KHNob3J0TmFtZSkgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKCJEdXBsaWNhdGUgbmFtZSAiICsgc2hvcnROYW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChsb25nTmFtZSAhPSBudWxsICYmIG1hcC5nZXQobG9uZ05hbWUpICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcigiRHVwbGljYXRlIG5hbWUgIiArIGxvbmdOYW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIEludGVnZXIgdmFsdWVPYmogPSBuZXcgSW50ZWdlcih2YWx1ZSk7CisgICAgICAgIG1hcC5wdXQoc2hvcnROYW1lLCB2YWx1ZU9iaik7CisgICAgICAgIGlmIChsb25nTmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICBtYXAucHV0KGxvbmdOYW1lLCB2YWx1ZU9iaik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCBpbml0KCkgeworICAgICAgICBpZiAoTkFNRV9NQVAgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBOQU1FX01BUCA9IG5ldyBIYXNodGFibGUoKTsKKyAgICAgICAgQ0FURUdPUllfTUFQID0gbmV3IEhhc2h0YWJsZSgpOworICAgICAgICBDQVRFR09SWV9DQUNIRSA9IG5ldyBVbmljb2RlU2V0W1VDaGFyYWN0ZXJDYXRlZ29yeS5DSEFSX0NBVEVHT1JZX0NPVU5UXTsKKyAgICAgICAgQ09NQklOSU5HX0NMQVNTX01BUCA9IG5ldyBIYXNodGFibGUoKTsKKyAgICAgICAgQklESV9DTEFTU19NQVAgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgIEJJTkFSWV9QUk9QRVJUWV9NQVAgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgIEJPT0xFQU5fVkFMVUVfTUFQID0gbmV3IEhhc2h0YWJsZSgpOworICAgICAgICBTQ1JJUFRfQ0FDSEUgPSBuZXcgVW5pY29kZVNldFtVU2NyaXB0LkNPREVfTElNSVRdOworCisgICAgICAgIC8vIE5PVEU6ICBBbGwgc2hvcnQgYW5kIGxvbmcgbmFtZXMgdGFrZW4gZnJvbQorICAgICAgICAvLyBQcm9wZXJ0eUFsaWFzZXMudHh0IGFuZCBQcm9wZXJ0eVZhbHVlQWxpYXNlcy50eHQuCisKKyAgICAgICAgLy8gTk9URTogIFdlIG11bmdlIGFsbCBzZWFyY2gga2V5cyB0byBoYXZlIG5vIHdoaXRlc3BhY2UKKyAgICAgICAgLy8gYW5kIHVwcGVyIGNhc2UuICBBcyBzdWNoLCBhbGwgc3RvcmVkIGtleXMgc2hvdWxkIGhhdmUKKyAgICAgICAgLy8gdGhpcyBmb3JtYXQuCisKKyAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgLy8gTUFJTiBLRVkgTUFQCisKKyAgICAgICAgYWRkVHlwZSgiR0MiLCAiR0VORVJBTENBVEVHT1JZIiwgbmV3IFNldEZhY3RvcnkoKSB7CisgICAgICAgICAgICBwdWJsaWMgVW5pY29kZVNldCBjcmVhdGUoU3RyaW5nIHZhbHVlTmFtZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVDYXRlZ29yeVNldCh2YWx1ZU5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgICAgICBhZGRUeXBlKCJDQ0MiLCAiQ0FOT05JQ0FMQ09NQklOSU5HQ0xBU1MiLCBuZXcgQ29tYmluaW5nQ2xhc3NGYWN0b3J5KCkpOworCisgICAgICAgIGFkZFR5cGUoIkJDIiwgIkJJRElDTEFTUyIsIG5ldyBCaWRpQ2xhc3NGYWN0b3J5KCkpOworCisgICAgICAgIC8vYWRkVHlwZSgiRFQiLCAiREVDT01QT1NJVElPTlRZUEUiLCBERUNPTVBPU0lUSU9OX1RZUEUpOworCisgICAgICAgIGFkZFR5cGUoIk5WIiwgIk5VTUVSSUNWQUxVRSIsIG5ldyBOdW1lcmljVmFsdWVGYWN0b3J5KCkpOworCisgICAgICAgIC8vYWRkVHlwZSgiTlQiLCAiTlVNRVJJQ1RZUEUiLCBOVU1FUklDX1RZUEUpOworICAgICAgICAvL2FkZFR5cGUoIkVBIiwgIkVBU1RBU0lBTldJRFRIIiwgRUFTVF9BU0lBTl9XSURUSCk7CisgICAgICAgIC8vYWRkVHlwZSgiTEIiLCAiTElORUJSRUFLIiwgTElORV9CUkVBSyk7CisgICAgICAgIC8vYWRkVHlwZSgiSlQiLCAiSk9JTklOR1RZUEUiLCBKT0lOSU5HX1RZUEUpOworCisgICAgICAgIGFkZFR5cGUoIlNDIiwgIlNDUklQVCIsIG5ldyBTZXRGYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFVuaWNvZGVTZXQgY3JlYXRlKFN0cmluZyB2YWx1ZU5hbWUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlU2NyaXB0U2V0KHZhbHVlTmFtZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworCisgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIC8vIEJvb2xlYW4gVmFsdWUgTUFQCisgICAgICAgIAorICAgICAgICBhZGRWYWx1ZShCT09MRUFOX1ZBTFVFX01BUCwgIlQiLCAiVFJVRSIsIDEpOworICAgICAgICBhZGRWYWx1ZShCT09MRUFOX1ZBTFVFX01BUCwgIkYiLCAiRkFMU0UiLCAwKTsKKworICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAvLyBHZW5lcmFsIENhdGVnb3J5IE1BUAorCisgICAgICAgIGFkZFZhbHVlKENBVEVHT1JZX01BUCwgIkFOWSIsIG51bGwsIEFOWSk7IC8vIHNwZWNpYWwgY2FzZQorCisgICAgICAgIGFkZFZhbHVlKENBVEVHT1JZX01BUCwgIkFTQ0lJIiwgbnVsbCwgQVNDSUkpOyAvLyBzcGVjaWFsIGNhc2UKKworICAgICAgICBhZGRWYWx1ZShDQVRFR09SWV9NQVAsICJDIiwgIk9USEVSIiwKKyAgICAgICAgICAgICAgICAgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LkNPTlRST0wpIHwKKyAgICAgICAgICAgICAgICAgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LkZPUk1BVCkgfAorICAgICAgICAgICAgICAgICAoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuR0VORVJBTF9PVEhFUl9UWVBFUykgfAorICAgICAgICAgICAgICAgICAoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuUFJJVkFURV9VU0UpIHwKKyAgICAgICAgICAgICAgICAgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LlNVUlJPR0FURSkpOworCisgICAgICAgIGFkZFZhbHVlKENBVEVHT1JZX01BUCwgIkNDIiwgIkNPTlRST0wiLAorICAgICAgICAgICAgICAgICAxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5DT05UUk9MKTsKKyAgICAgICAgYWRkVmFsdWUoQ0FURUdPUllfTUFQLCAiQ0YiLCAiRk9STUFUIiwKKyAgICAgICAgICAgICAgICAgMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuRk9STUFUKTsKKyAgICAgICAgYWRkVmFsdWUoQ0FURUdPUllfTUFQLCAiQ04iLCAiVU5BU1NJR05FRCIsCisgICAgICAgICAgICAgICAgIDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LkdFTkVSQUxfT1RIRVJfVFlQRVMpOworICAgICAgICBhZGRWYWx1ZShDQVRFR09SWV9NQVAsICJDTyIsICJQUklWQVRFVVNFIiwKKyAgICAgICAgICAgICAgICAgMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuUFJJVkFURV9VU0UpOworICAgICAgICBhZGRWYWx1ZShDQVRFR09SWV9NQVAsICJDUyIsICJTVVJST0dBVEUiLAorICAgICAgICAgICAgICAgICAxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5TVVJST0dBVEUpOworCisgICAgICAgIGFkZFZhbHVlKENBVEVHT1JZX01BUCwgIkwiLCAiTEVUVEVSIiwKKyAgICAgICAgICAgICAgICAgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LkxPV0VSQ0FTRV9MRVRURVIpIHwKKyAgICAgICAgICAgICAgICAgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5Lk1PRElGSUVSX0xFVFRFUikgfAorICAgICAgICAgICAgICAgICAoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuT1RIRVJfTEVUVEVSKSB8CisgICAgICAgICAgICAgICAgICgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5USVRMRUNBU0VfTEVUVEVSKSB8CisgICAgICAgICAgICAgICAgICgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5VUFBFUkNBU0VfTEVUVEVSKSk7CisKKyAgICAgICAgYWRkVmFsdWUoQ0FURUdPUllfTUFQLCAiTEwiLCAiTE9XRVJDQVNFTEVUVEVSIiwKKyAgICAgICAgICAgICAgICAgMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTE9XRVJDQVNFX0xFVFRFUik7CisgICAgICAgIGFkZFZhbHVlKENBVEVHT1JZX01BUCwgIkxNIiwgIk1PRElGSUVSTEVUVEVSIiwKKyAgICAgICAgICAgICAgICAgMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTU9ESUZJRVJfTEVUVEVSKTsKKyAgICAgICAgYWRkVmFsdWUoQ0FURUdPUllfTUFQLCAiTE8iLCAiT1RIRVJMRVRURVIiLAorICAgICAgICAgICAgICAgICAxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5PVEhFUl9MRVRURVIpOworICAgICAgICBhZGRWYWx1ZShDQVRFR09SWV9NQVAsICJMVCIsICJUSVRMRUNBU0VMRVRURVIiLAorICAgICAgICAgICAgICAgICAxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5USVRMRUNBU0VfTEVUVEVSKTsKKyAgICAgICAgYWRkVmFsdWUoQ0FURUdPUllfTUFQLCAiTFUiLCAiVVBQRVJDQVNFTEVUVEVSIiwKKyAgICAgICAgICAgICAgICAgMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVVBQRVJDQVNFX0xFVFRFUik7CisKKyAgICAgICAgYWRkVmFsdWUoQ0FURUdPUllfTUFQLCAiTSIsICJNQVJLIiwKKyAgICAgICAgICAgICAgICAgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5Lk5PTl9TUEFDSU5HX01BUkspIHwKKyAgICAgICAgICAgICAgICAgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LkNPTUJJTklOR19TUEFDSU5HX01BUkspIHwKKyAgICAgICAgICAgICAgICAgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LkVOQ0xPU0lOR19NQVJLKSk7CisKKyAgICAgICAgYWRkVmFsdWUoQ0FURUdPUllfTUFQLCAiTU4iLCAiTk9OU1BBQ0lOR01BUksiLAorICAgICAgICAgICAgICAgICAxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5OT05fU1BBQ0lOR19NQVJLKTsKKyAgICAgICAgYWRkVmFsdWUoQ0FURUdPUllfTUFQLCAiTUMiLCAiU1BBQ0lOR01BUksiLAorICAgICAgICAgICAgICAgICAxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5DT01CSU5JTkdfU1BBQ0lOR19NQVJLKTsKKyAgICAgICAgYWRkVmFsdWUoQ0FURUdPUllfTUFQLCAiTUUiLCAiRU5DTE9TSU5HTUFSSyIsCisgICAgICAgICAgICAgICAgIDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LkVOQ0xPU0lOR19NQVJLKTsKKworICAgICAgICBhZGRWYWx1ZShDQVRFR09SWV9NQVAsICJOIiwgIk5VTUJFUiIsCisgICAgICAgICAgICAgICAgICgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5ERUNJTUFMX0RJR0lUX05VTUJFUikgfAorICAgICAgICAgICAgICAgICAoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTEVUVEVSX05VTUJFUikgfAorICAgICAgICAgICAgICAgICAoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuT1RIRVJfTlVNQkVSKSk7CisKKyAgICAgICAgYWRkVmFsdWUoQ0FURUdPUllfTUFQLCAiTkQiLCAiREVDSU1BTE5VTUJFUiIsCisgICAgICAgICAgICAgICAgIDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LkRFQ0lNQUxfRElHSVRfTlVNQkVSKTsKKyAgICAgICAgYWRkVmFsdWUoQ0FURUdPUllfTUFQLCAiTkwiLCAiTEVUVEVSTlVNQkVSIiwKKyAgICAgICAgICAgICAgICAgMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTEVUVEVSX05VTUJFUik7CisgICAgICAgIGFkZFZhbHVlKENBVEVHT1JZX01BUCwgIk5PIiwgIk9USEVSTlVNQkVSIiwKKyAgICAgICAgICAgICAgICAgMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuT1RIRVJfTlVNQkVSKTsKKworICAgICAgICBhZGRWYWx1ZShDQVRFR09SWV9NQVAsICJQIiwgIlBVTkNUVUFUSU9OIiwKKyAgICAgICAgICAgICAgICAgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LkNPTk5FQ1RPUl9QVU5DVFVBVElPTikgfAorICAgICAgICAgICAgICAgICAoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuREFTSF9QVU5DVFVBVElPTikgfAorICAgICAgICAgICAgICAgICAoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuRU5EX1BVTkNUVUFUSU9OKSB8CisgICAgICAgICAgICAgICAgICgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5GSU5BTF9QVU5DVFVBVElPTikgfAorICAgICAgICAgICAgICAgICAoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuSU5JVElBTF9QVU5DVFVBVElPTikgfAorICAgICAgICAgICAgICAgICAoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuT1RIRVJfUFVOQ1RVQVRJT04pIHwKKyAgICAgICAgICAgICAgICAgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LlNUQVJUX1BVTkNUVUFUSU9OKSk7CisKKyAgICAgICAgYWRkVmFsdWUoQ0FURUdPUllfTUFQLCAiUEMiLCAiQ09OTkVDVE9SUFVOQ1RVQVRJT04iLAorICAgICAgICAgICAgICAgICAxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5DT05ORUNUT1JfUFVOQ1RVQVRJT04pOworICAgICAgICBhZGRWYWx1ZShDQVRFR09SWV9NQVAsICJQRCIsICJEQVNIUFVOQ1RVQVRJT04iLAorICAgICAgICAgICAgICAgICAxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5EQVNIX1BVTkNUVUFUSU9OKTsKKyAgICAgICAgYWRkVmFsdWUoQ0FURUdPUllfTUFQLCAiUEUiLCAiRU5EUFVOQ1RVQVRJT04iLAorICAgICAgICAgICAgICAgICAxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5FTkRfUFVOQ1RVQVRJT04pOworICAgICAgICBhZGRWYWx1ZShDQVRFR09SWV9NQVAsICJQRiIsICJGSU5BTFBVTkNUVUFUSU9OIiwKKyAgICAgICAgICAgICAgICAgMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuRklOQUxfUFVOQ1RVQVRJT04pOworICAgICAgICBhZGRWYWx1ZShDQVRFR09SWV9NQVAsICJQSSIsICJJTklUSUFMUFVOQ1RVQVRJT04iLAorICAgICAgICAgICAgICAgICAxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5JTklUSUFMX1BVTkNUVUFUSU9OKTsKKyAgICAgICAgYWRkVmFsdWUoQ0FURUdPUllfTUFQLCAiUE8iLCAiT1RIRVJQVU5DVFVBVElPTiIsCisgICAgICAgICAgICAgICAgIDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5Lk9USEVSX1BVTkNUVUFUSU9OKTsKKyAgICAgICAgYWRkVmFsdWUoQ0FURUdPUllfTUFQLCAiUFMiLCAiU1RBUlRQVU5DVFVBVElPTiIsCisgICAgICAgICAgICAgICAgIDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LlNUQVJUX1BVTkNUVUFUSU9OKTsKKworICAgICAgICBhZGRWYWx1ZShDQVRFR09SWV9NQVAsICJTIiwgIlNZTUJPTCIsCisgICAgICAgICAgICAgICAgICgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5DVVJSRU5DWV9TWU1CT0wpIHwKKyAgICAgICAgICAgICAgICAgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5Lk1PRElGSUVSX1NZTUJPTCkgfAorICAgICAgICAgICAgICAgICAoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTUFUSF9TWU1CT0wpIHwKKyAgICAgICAgICAgICAgICAgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5Lk9USEVSX1NZTUJPTCkpOworCisgICAgICAgIGFkZFZhbHVlKENBVEVHT1JZX01BUCwgIlNDIiwgIkNVUlJFTkNZU1lNQk9MIiwKKyAgICAgICAgICAgICAgICAgMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuQ1VSUkVOQ1lfU1lNQk9MKTsKKyAgICAgICAgYWRkVmFsdWUoQ0FURUdPUllfTUFQLCAiU0siLCAiTU9ESUZJRVJTWU1CT0wiLAorICAgICAgICAgICAgICAgICAxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5NT0RJRklFUl9TWU1CT0wpOworICAgICAgICBhZGRWYWx1ZShDQVRFR09SWV9NQVAsICJTTSIsICJNQVRIU1lNQk9MIiwKKyAgICAgICAgICAgICAgICAgMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTUFUSF9TWU1CT0wpOworICAgICAgICBhZGRWYWx1ZShDQVRFR09SWV9NQVAsICJTTyIsICJPVEhFUlNZTUJPTCIsCisgICAgICAgICAgICAgICAgIDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5Lk9USEVSX1NZTUJPTCk7CisKKyAgICAgICAgYWRkVmFsdWUoQ0FURUdPUllfTUFQLCAiWiIsICJTRVBBUkFUT1IiLAorICAgICAgICAgICAgICAgICAoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTElORV9TRVBBUkFUT1IpIHwKKyAgICAgICAgICAgICAgICAgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LlBBUkFHUkFQSF9TRVBBUkFUT1IpIHwKKyAgICAgICAgICAgICAgICAgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LlNQQUNFX1NFUEFSQVRPUikpOworCisgICAgICAgIGFkZFZhbHVlKENBVEVHT1JZX01BUCwgIlpMIiwgIkxJTkVTRVBBUkFUT1IiLAorICAgICAgICAgICAgICAgICAxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5MSU5FX1NFUEFSQVRPUik7CisgICAgICAgIGFkZFZhbHVlKENBVEVHT1JZX01BUCwgIlpQIiwgIlBBUkFHUkFQSFNFUEFSQVRPUiIsCisgICAgICAgICAgICAgICAgIDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LlBBUkFHUkFQSF9TRVBBUkFUT1IpOworICAgICAgICBhZGRWYWx1ZShDQVRFR09SWV9NQVAsICJaUyIsICJTUEFDRVNFUEFSQVRPUiIsCisgICAgICAgICAgICAgICAgIDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LlNQQUNFX1NFUEFSQVRPUik7CisKKyAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgLy8gQ29tYmluaW5nIENsYXNzIE1BUAorCisgICAgICAgIGFkZFZhbHVlKENPTUJJTklOR19DTEFTU19NQVAsICJOUiIsICJOT1RSRU9SREVSRUQiLCAwKTsKKyAgICAgICAgYWRkVmFsdWUoQ09NQklOSU5HX0NMQVNTX01BUCwgIk9WIiwgIk9WRVJMQVkiLCAxKTsKKyAgICAgICAgYWRkVmFsdWUoQ09NQklOSU5HX0NMQVNTX01BUCwgIk5VIiwgIk5VS1RBIiwgNyk7CisgICAgICAgIGFkZFZhbHVlKENPTUJJTklOR19DTEFTU19NQVAsICJLViIsICJLQU5BVk9JQ0lORyIsIDgpOworICAgICAgICBhZGRWYWx1ZShDT01CSU5JTkdfQ0xBU1NfTUFQLCAiViIsICJWSVJBTUEiLCA5KTsKKyAgICAgICAgYWRkVmFsdWUoQ09NQklOSU5HX0NMQVNTX01BUCwgIkFUQkwiLCAiQVRUQUNIRURCRUxPV0xFRlQiLCAyMDIpOworICAgICAgICBhZGRWYWx1ZShDT01CSU5JTkdfQ0xBU1NfTUFQLCAiQVRBUiIsICJBVFRBQ0hFREFCT1ZFUklHSFQiLCAyMTYpOworICAgICAgICBhZGRWYWx1ZShDT01CSU5JTkdfQ0xBU1NfTUFQLCAiQkwiLCAiQkVMT1dMRUZUIiwgMjE4KTsKKyAgICAgICAgYWRkVmFsdWUoQ09NQklOSU5HX0NMQVNTX01BUCwgIkIiLCAiQkVMT1ciLCAyMjApOworICAgICAgICBhZGRWYWx1ZShDT01CSU5JTkdfQ0xBU1NfTUFQLCAiQlIiLCAiQkVMT1dSSUdIVCIsIDIyMik7CisgICAgICAgIGFkZFZhbHVlKENPTUJJTklOR19DTEFTU19NQVAsICJMIiwgIkxFRlQiLCAyMjQpOworICAgICAgICBhZGRWYWx1ZShDT01CSU5JTkdfQ0xBU1NfTUFQLCAiUiIsICJSSUdIVCIsIDIyNik7CisgICAgICAgIGFkZFZhbHVlKENPTUJJTklOR19DTEFTU19NQVAsICJBTCIsICJBQk9WRUxFRlQiLCAyMjgpOworICAgICAgICBhZGRWYWx1ZShDT01CSU5JTkdfQ0xBU1NfTUFQLCAiQSIsICJBQk9WRSIsIDIzMCk7CisgICAgICAgIGFkZFZhbHVlKENPTUJJTklOR19DTEFTU19NQVAsICJBUiIsICJBQk9WRVJJR0hUIiwgMjMyKTsKKyAgICAgICAgYWRkVmFsdWUoQ09NQklOSU5HX0NMQVNTX01BUCwgIkRCIiwgIkRPVUJMRUJFTE9XIiwgMjMyKTsKKyAgICAgICAgYWRkVmFsdWUoQ09NQklOSU5HX0NMQVNTX01BUCwgIkRBIiwgIkRPVUJMRUFCT1ZFIiwgMjM0KTsKKyAgICAgICAgYWRkVmFsdWUoQ09NQklOSU5HX0NMQVNTX01BUCwgIklTIiwgIklPVEFTVUJTQ1JJUFQiLCAyNDApOworCisgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIC8vIEJpZGkgQ2xhc3MgTUFQCisKKyAgICAgICAgYWRkVmFsdWUoQklESV9DTEFTU19NQVAsICJBTCIsICJBUkFCSUNMRVRURVIiLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlRfQVJBQklDKTsKKyAgICAgICAgYWRkVmFsdWUoQklESV9DTEFTU19NQVAsICJBTiIsICJBUkFCSUNOVU1CRVIiLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLkFSQUJJQ19OVU1CRVIpOworICAgICAgICBhZGRWYWx1ZShCSURJX0NMQVNTX01BUCwgIkIiLCAiUEFSQUdSQVBIU0VQQVJBVE9SIiwgVUNoYXJhY3RlckRpcmVjdGlvbi5CTE9DS19TRVBBUkFUT1IpOworICAgICAgICBhZGRWYWx1ZShCSURJX0NMQVNTX01BUCwgIkJOIiwgIkJPVU5EQVJZTkVVVFJBTCIsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uQk9VTkRBUllfTkVVVFJBTCk7CisgICAgICAgIGFkZFZhbHVlKEJJRElfQ0xBU1NfTUFQLCAiQ1MiLCAiQ09NTU9OU0VQQVJBVE9SIiwgVUNoYXJhY3RlckRpcmVjdGlvbi5DT01NT05fTlVNQkVSX1NFUEFSQVRPUik7CisgICAgICAgIGFkZFZhbHVlKEJJRElfQ0xBU1NfTUFQLCAiRU4iLCAiRVVST1BFQU5OVU1CRVIiLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLkVVUk9QRUFOX05VTUJFUik7CisgICAgICAgIGFkZFZhbHVlKEJJRElfQ0xBU1NfTUFQLCAiRVMiLCAiRVVST1BFQU5TRVBBUkFUT1IiLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLkVVUk9QRUFOX05VTUJFUl9TRVBBUkFUT1IpOworICAgICAgICBhZGRWYWx1ZShCSURJX0NMQVNTX01BUCwgIkVUIiwgIkVVUk9QRUFOVEVSTUlOQVRPUiIsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uRVVST1BFQU5fTlVNQkVSX1RFUk1JTkFUT1IpOworICAgICAgICBhZGRWYWx1ZShCSURJX0NMQVNTX01BUCwgIkwiLCAiTEVGVFRPUklHSFQiLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLkxFRlRfVE9fUklHSFQpOyAKKyAgICAgICAgYWRkVmFsdWUoQklESV9DTEFTU19NQVAsICJMUkUiLCAiTEVGVFRPUklHSFRFTUJFRERJTkciLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLkxFRlRfVE9fUklHSFRfRU1CRURESU5HKTsKKyAgICAgICAgYWRkVmFsdWUoQklESV9DTEFTU19NQVAsICJMUk8iLCAiTEVGVFRPUklHSFRPVkVSUklERSIsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uTEVGVF9UT19SSUdIVF9PVkVSUklERSk7CisgICAgICAgIGFkZFZhbHVlKEJJRElfQ0xBU1NfTUFQLCAiTlNNIiwgIk5PTlNQQUNJTkdNQVJLIiwgVUNoYXJhY3RlckRpcmVjdGlvbi5ESVJfTk9OX1NQQUNJTkdfTUFSSyk7CisgICAgICAgIGFkZFZhbHVlKEJJRElfQ0xBU1NfTUFQLCAiT04iLCAiT1RIRVJORVVUUkFMIiwgVUNoYXJhY3RlckRpcmVjdGlvbi5PVEhFUl9ORVVUUkFMKTsgCisgICAgICAgIGFkZFZhbHVlKEJJRElfQ0xBU1NfTUFQLCAiUERGIiwgIlBPUERJUkVDVElPTkFMRk9STUFUIiwgVUNoYXJhY3RlckRpcmVjdGlvbi5QT1BfRElSRUNUSU9OQUxfRk9STUFUKTsKKyAgICAgICAgYWRkVmFsdWUoQklESV9DTEFTU19NQVAsICJSIiwgIlJJR0hUVE9MRUZUIiwgVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUKTsgCisgICAgICAgIGFkZFZhbHVlKEJJRElfQ0xBU1NfTUFQLCAiUkxFIiwgIlJJR0hUVE9MRUZURU1CRURESU5HIiwgVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUX0VNQkVERElORyk7CisgICAgICAgIGFkZFZhbHVlKEJJRElfQ0xBU1NfTUFQLCAiUkxPIiwgIlJJR0hUVE9MRUZUT1ZFUlJJREUiLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlRfT1ZFUlJJREUpOworICAgICAgICBhZGRWYWx1ZShCSURJX0NMQVNTX01BUCwgIlMiLCAiU0VHTUVOVFNFUEFSQVRPUiIsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uU0VHTUVOVF9TRVBBUkFUT1IpOworICAgICAgICBhZGRWYWx1ZShCSURJX0NMQVNTX01BUCwgIldTIiwgIldISVRFU1BBQ0VORVVUUkFMIiwgVUNoYXJhY3RlckRpcmVjdGlvbi5XSElURV9TUEFDRV9ORVVUUkFMKTsKKworICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAvLyBCaW5hcnkgUHJvcGVydGllcyBNQVAuICBOYW1lcyB0YWtlbiBmcm9tIFByb3BlcnR5QWxpYXNlcy50eHQuCisgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgYXJlIG5vdCBzdXBwb3J0ZWQ6CisKKyAgICAgICAgLy8gQ0UgICAgICAgIDsgQ29tcG9zaXRpb25fRXhjbHVzaW9uCisgICAgICAgIC8vIE5CcmsgICAgICA7IE5vbl9CcmVhaworICAgICAgICAvLyBORkRfUUMgICAgOyBORkRfUXVpY2tfQ2hlY2sKKyAgICAgICAgLy8gTkZLRF9RQyAgIDsgTkZLRF9RdWlja19DaGVjaworICAgICAgICAvLyBPQWxwaGEgICAgOyBPdGhlcl9BbHBoYWJldGljCisgICAgICAgIC8vIE9ESSAgICAgICA7IE90aGVyX0RlZmF1bHRfSWdub3JhYmxlX0NvZGVfUG9pbnQKKyAgICAgICAgLy8gT0dyX0V4dCAgIDsgT3RoZXJfR3JhcGhlbWVfRXh0ZW5kCisgICAgICAgIC8vIE9Mb3dlciAgICA7IE90aGVyX0xvd2VyY2FzZQorICAgICAgICAvLyBPTWF0aCAgICAgOyBPdGhlcl9NYXRoCisgICAgICAgIC8vIE9VcHBlciAgICA7IE90aGVyX1VwcGVyY2FzZQorICAgICAgICAvLyBYT19ORkMgICAgOyBFeHBhbmRzX09uX05GQworICAgICAgICAvLyBYT19ORkQgICAgOyBFeHBhbmRzX09uX05GRAorICAgICAgICAvLyBYT19ORktDICAgOyBFeHBhbmRzX09uX05GS0MKKyAgICAgICAgLy8gWE9fTkZLRCAgIDsgRXhwYW5kc19Pbl9ORktECisKKyAgICAgICAgYWRkVmFsdWUoQklOQVJZX1BST1BFUlRZX01BUCwgIkFMUEhBIiwgIkFMUEhBQkVUSUMiLCBVUHJvcGVydHkuQUxQSEFCRVRJQyk7CisgICAgICAgIGFkZFZhbHVlKEJJTkFSWV9QUk9QRVJUWV9NQVAsICJBSEVYIiwgIkFTQ0lJX0hFWERJR0lUIiwgVVByb3BlcnR5LkFTQ0lJX0hFWF9ESUdJVCk7CisgICAgICAgIGFkZFZhbHVlKEJJTkFSWV9QUk9QRVJUWV9NQVAsICJCSURJQyIsICJCSURJQ09OVFJPTCIsIFVQcm9wZXJ0eS5CSURJX0NPTlRST0wpOworICAgICAgICBhZGRWYWx1ZShCSU5BUllfUFJPUEVSVFlfTUFQLCAiQklESU0iLCAiQklESU1JUlJPUkVEIiwgVVByb3BlcnR5LkJJRElfTUlSUk9SRUQpOworICAgICAgICBhZGRWYWx1ZShCSU5BUllfUFJPUEVSVFlfTUFQLCAiREFTSCIsIG51bGwsIFVQcm9wZXJ0eS5EQVNIKTsKKyAgICAgICAgYWRkVmFsdWUoQklOQVJZX1BST1BFUlRZX01BUCwgIkRJIiwgIkRFRkFVTFRJR05PUkFCTEVDT0RFUE9JTlQiLCBVUHJvcGVydHkuREVGQVVMVF9JR05PUkFCTEVfQ09ERV9QT0lOVCk7CisgICAgICAgIGFkZFZhbHVlKEJJTkFSWV9QUk9QRVJUWV9NQVAsICJERVAiLCAiREVQUkVDQVRFRCIsIFVQcm9wZXJ0eS5ERVBSRUNBVEVEKTsKKyAgICAgICAgYWRkVmFsdWUoQklOQVJZX1BST1BFUlRZX01BUCwgIkRJQSIsICJESUFDUklUSUMiLCBVUHJvcGVydHkuRElBQ1JJVElDKTsKKyAgICAgICAgYWRkVmFsdWUoQklOQVJZX1BST1BFUlRZX01BUCwgIkVYVCIsICJFWFRFTkRFUiIsIFVQcm9wZXJ0eS5FWFRFTkRFUik7CisgICAgICAgIGFkZFZhbHVlKEJJTkFSWV9QUk9QRVJUWV9NQVAsICJDT01QRVgiLCAiRlVMTENPTVBPU0lUSU9ORVhDTFVTSU9OIiwgVVByb3BlcnR5LkZVTExfQ09NUE9TSVRJT05fRVhDTFVTSU9OKTsKKyAgICAgICAgYWRkVmFsdWUoQklOQVJZX1BST1BFUlRZX01BUCwgIkdSQkFTRSIsICJHUkFQSEVNRUJBU0UiLCBVUHJvcGVydHkuR1JBUEhFTUVfQkFTRSk7CisgICAgICAgIGFkZFZhbHVlKEJJTkFSWV9QUk9QRVJUWV9NQVAsICJHUkVYVCIsICJHUkFQSEVNRUVYVEVORCIsIFVQcm9wZXJ0eS5HUkFQSEVNRV9FWFRFTkQpOworICAgICAgICBhZGRWYWx1ZShCSU5BUllfUFJPUEVSVFlfTUFQLCAiR1JMSU5LIiwgIkdSQVBIRU1FTElOSyIsIFVQcm9wZXJ0eS5HUkFQSEVNRV9MSU5LKTsKKyAgICAgICAgYWRkVmFsdWUoQklOQVJZX1BST1BFUlRZX01BUCwgIkhFWCIsICJIRVhESUdJVCIsIFVQcm9wZXJ0eS5IRVhfRElHSVQpOworICAgICAgICBhZGRWYWx1ZShCSU5BUllfUFJPUEVSVFlfTUFQLCAiSFlQSEVOIiwgbnVsbCwgVVByb3BlcnR5LkhZUEhFTik7CisgICAgICAgIGFkZFZhbHVlKEJJTkFSWV9QUk9QRVJUWV9NQVAsICJJREMiLCAiSURDT05USU5VRSIsIFVQcm9wZXJ0eS5JRF9DT05USU5VRSk7CisgICAgICAgIGFkZFZhbHVlKEJJTkFSWV9QUk9QRVJUWV9NQVAsICJJRFMiLCAiSURTVEFSVCIsIFVQcm9wZXJ0eS5JRF9TVEFSVCk7CisgICAgICAgIGFkZFZhbHVlKEJJTkFSWV9QUk9QRVJUWV9NQVAsICJJREVPIiwgIklERU9HUkFQSElDIiwgVVByb3BlcnR5LklERU9HUkFQSElDKTsKKyAgICAgICAgYWRkVmFsdWUoQklOQVJZX1BST1BFUlRZX01BUCwgIklEU0IiLCAiSURTQklOQVJZT1BFUkFUT1IiLCBVUHJvcGVydHkuSURTX0JJTkFSWV9PUEVSQVRPUik7CisgICAgICAgIGFkZFZhbHVlKEJJTkFSWV9QUk9QRVJUWV9NQVAsICJJRFNUIiwgIklEU1RSSU5BUllPUEVSQVRPUiIsIFVQcm9wZXJ0eS5JRFNfVFJJTkFSWV9PUEVSQVRPUik7CisgICAgICAgIGFkZFZhbHVlKEJJTkFSWV9QUk9QRVJUWV9NQVAsICJKT0lOQyIsICJKT0lOQ09OVFJPTCIsIFVQcm9wZXJ0eS5KT0lOX0NPTlRST0wpOworICAgICAgICBhZGRWYWx1ZShCSU5BUllfUFJPUEVSVFlfTUFQLCAiTE9FIiwgIkxPR0lDQUxPUkRFUkVYQ0VQVElPTiIsIFVQcm9wZXJ0eS5MT0dJQ0FMX09SREVSX0VYQ0VQVElPTik7CisgICAgICAgIGFkZFZhbHVlKEJJTkFSWV9QUk9QRVJUWV9NQVAsICJMT1dFUiIsICJMT1dFUkNBU0UiLCBVUHJvcGVydHkuTE9XRVJDQVNFKTsKKyAgICAgICAgYWRkVmFsdWUoQklOQVJZX1BST1BFUlRZX01BUCwgIk1BVEgiLCBudWxsLCBVUHJvcGVydHkuTUFUSCk7CisgICAgICAgIGFkZFZhbHVlKEJJTkFSWV9QUk9QRVJUWV9NQVAsICJOQ0hBUiIsICJOT05DSEFSQUNURVJDT0RFUE9JTlQiLCBVUHJvcGVydHkuTk9OQ0hBUkFDVEVSX0NPREVfUE9JTlQpOworICAgICAgICBhZGRWYWx1ZShCSU5BUllfUFJPUEVSVFlfTUFQLCAiUU1BUksiLCAiUVVPVEFUSU9OTUFSSyIsIFVQcm9wZXJ0eS5RVU9UQVRJT05fTUFSSyk7CisgICAgICAgIGFkZFZhbHVlKEJJTkFSWV9QUk9QRVJUWV9NQVAsICJSQURJQ0FMIiwgbnVsbCwgVVByb3BlcnR5LlJBRElDQUwpOworICAgICAgICBhZGRWYWx1ZShCSU5BUllfUFJPUEVSVFlfTUFQLCAiU0QiLCAiU09GVERPVFRFRCIsIFVQcm9wZXJ0eS5TT0ZUX0RPVFRFRCk7CisgICAgICAgIGFkZFZhbHVlKEJJTkFSWV9QUk9QRVJUWV9NQVAsICJURVJNIiwgIlRFUk1JTkFMUFVOQ1RVQVRJT04iLCBVUHJvcGVydHkuVEVSTUlOQUxfUFVOQ1RVQVRJT04pOworICAgICAgICBhZGRWYWx1ZShCSU5BUllfUFJPUEVSVFlfTUFQLCAiVUlERU8iLCAiVU5JRklFRElERU9HUkFQSCIsIFVQcm9wZXJ0eS5VTklGSUVEX0lERU9HUkFQSCk7CisgICAgICAgIGFkZFZhbHVlKEJJTkFSWV9QUk9QRVJUWV9NQVAsICJVUFBFUiIsICJVUFBFUkNBU0UiLCBVUHJvcGVydHkuVVBQRVJDQVNFKTsKKyAgICAgICAgYWRkVmFsdWUoQklOQVJZX1BST1BFUlRZX01BUCwgIldTUEFDRSIsICJXSElURVNQQUNFIiwgVVByb3BlcnR5LldISVRFX1NQQUNFKTsKKyAgICAgICAgYWRkVmFsdWUoQklOQVJZX1BST1BFUlRZX01BUCwgIlhJREMiLCAiWElEQ09OVElOVUUiLCBVUHJvcGVydHkuWElEX0NPTlRJTlVFKTsKKyAgICAgICAgYWRkVmFsdWUoQklOQVJZX1BST1BFUlRZX01BUCwgIlhJRFMiLCAiWElEU1RBUlQiLCBVUHJvcGVydHkuWElEX1NUQVJUKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlUmVwbGFjZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVSZXBsYWNlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQ5YzRjMzcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlUmVwbGFjZXIuamF2YQpAQCAtMCwwICsxLDY0IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoYykgMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbgorKiAgIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9uCisqICAgMDEvMTQvMjAwMiAgYWxpdSAgICAgICAgQ3JlYXRpb24uCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKKy8qKgorICogPGNvZGU+VW5pY29kZVJlcGxhY2VyPC9jb2RlPiBkZWZpbmVzIGEgcHJvdG9jb2wgZm9yIG9iamVjdHMgdGhhdAorICogcmVwbGFjZSBhIHJhbmdlIG9mIGNoYXJhY3RlcnMgaW4gYSBSZXBsYWNlYWJsZSBzdHJpbmcgd2l0aCBvdXRwdXQKKyAqIHRleHQuICBUaGUgcmVwbGFjZW1lbnQgaXMgZG9uZSB2aWEgdGhlIFJlcGxhY2VhYmxlIEFQSSBzbyBhcyB0bworICogcHJlc2VydmUgb3V0LW9mLWJhbmQgZGF0YS4KKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqLworaW50ZXJmYWNlIFVuaWNvZGVSZXBsYWNlciB7CisKKyAgICAvKioKKyAgICAgKiBSZXBsYWNlIGNoYXJhY3RlcnMgaW4gJ3RleHQnIGZyb20gJ3N0YXJ0JyB0byAnbGltaXQnIHdpdGggdGhlCisgICAgICogb3V0cHV0IHRleHQgb2YgdGhpcyBvYmplY3QuICBVcGRhdGUgdGhlICdjdXJzb3InIHBhcmFtZXRlciB0bworICAgICAqIGdpdmUgdGhlIGN1cnNvciBwb3NpdGlvbiBhbmQgcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlCisgICAgICogcmVwbGFjZW1lbnQgdGV4dC4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSB0ZXh0IHRvIGJlIG1hdGNoZWQKKyAgICAgKiBAcGFyYW0gc3RhcnQgaW5jbHVzaXZlIHN0YXJ0IGluZGV4IG9mIHRleHQgdG8gYmUgcmVwbGFjZWQKKyAgICAgKiBAcGFyYW0gbGltaXQgZXhjbHVzaXZlIGVuZCBpbmRleCBvZiB0ZXh0IHRvIGJlIHJlcGxhY2VkOworICAgICAqIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHN0YXJ0CisgICAgICogQHBhcmFtIGN1cnNvciBvdXRwdXQgcGFyYW1ldGVyIGZvciB0aGUgY3Vyc29yIHBvc2l0aW9uLgorICAgICAqIE5vdCBhbGwgcmVwbGFjZXIgb2JqZWN0cyB3aWxsIHVwZGF0ZSB0aGlzLCBidXQgaW4gYSBjb21wbGV0ZQorICAgICAqIHRyZWUgb2YgcmVwbGFjZXIgb2JqZWN0cywgcmVwcmVzZW50aW5nIHRoZSBlbnRpcmUgb3V0cHV0IHNpZGUKKyAgICAgKiBvZiBhIHRyYW5zbGl0ZXJhdGlvbiBydWxlLCBhdCBsZWFzdCBvbmUgbXVzdCB1cGRhdGUgaXQuCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIDE2LWJpdCBjb2RlIHVuaXRzIGluIHRoZSB0ZXh0IHJlcGxhY2luZworICAgICAqIHRoZSBjaGFyYWN0ZXJzIGF0IG9mZnNldHMgc3RhcnQuLihsaW1pdC0xKSBpbiB0ZXh0CisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCByZXBsYWNlKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBjdXJzb3IpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHJlcGxhY2VyLiAgSWYgdGhlCisgICAgICogcmVzdWx0IG9mIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiBpcyBwYXNzZWQgdG8gdGhlIGFwcHJvcHJpYXRlCisgICAgICogcGFyc2VyLCB0eXBpY2FsbHkgVHJhbnNsaXRlcmF0b3JQYXJzZXIsIGl0IHdpbGwgcHJvZHVjZSBhbm90aGVyCisgICAgICogcmVwbGFjZXIgdGhhdCBpcyBlcXVhbCB0byB0aGlzIG9uZS4KKyAgICAgKiBAcGFyYW0gZXNjYXBlVW5wcmludGFibGUgaWYgVFJVRSB0aGVuIGNvbnZlcnQgdW5wcmludGFibGUKKyAgICAgKiBjaGFyYWN0ZXIgdG8gdGhlaXIgaGV4IGVzY2FwZSByZXByZXNlbnRhdGlvbnMsIFxcdXh4eHggb3IKKyAgICAgKiBcXFV4eHh4eHh4eC4gIFVucHJpbnRhYmxlIGNoYXJhY3RlcnMgYXJlIGRlZmluZWQgYnkKKyAgICAgKiBVdGlsaXR5LmlzVW5wcmludGFibGUoKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgU3RyaW5nIHRvUmVwbGFjZXJQYXR0ZXJuKGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUpOworCisgICAgLyoqCisgICAgICogVW5pb24gdGhlIHNldCBvZiBhbGwgY2hhcmFjdGVycyB0aGF0IG1heSBvdXRwdXQgYnkgdGhpcyBvYmplY3QKKyAgICAgKiBpbnRvIHRoZSBnaXZlbiBzZXQuCisgICAgICogQHBhcmFtIHRvVW5pb25UbyB0aGUgc2V0IGludG8gd2hpY2ggdG8gdW5pb24gdGhlIG91dHB1dCBjaGFyYWN0ZXJzCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgYWRkUmVwbGFjZW1lbnRTZXRUbyhVbmljb2RlU2V0IHRvVW5pb25Ubyk7Cit9CisKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlU2V0LmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlU2V0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjc0MTgzMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVTZXQuamF2YQpAQCAtMCwwICsxLDI0MzMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVTZXQuamF2YSx2ICQKKyAqICREYXRlOiAyMDAyLzA3LzI5IDE5OjM2OjA3ICQKKyAqICRSZXZpc2lvbjogMS43MSAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyUHJvcGVydHk7CitpbXBvcnQgamF2YS51dGlsLlRyZWVTZXQ7CitpbXBvcnQgamF2YS51dGlsLlNvcnRlZFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CisKKy8qKgorICogQSBtdXRhYmxlIHNldCBvZiBVbmljb2RlIGNoYXJhY3RlcnMgYW5kIG11bHRpY2hhcmFjdGVyIHN0cmluZ3MuICBPYmplY3RzIG9mIHRoaXMgY2xhc3MKKyAqIHJlcHJlc2VudCA8ZW0+Y2hhcmFjdGVyIGNsYXNzZXM8L2VtPiB1c2VkIGluIHJlZ3VsYXIgZXhwcmVzc2lvbnMuCisgKiBBIGNoYXJhY3RlciBzcGVjaWZpZXMgYSBzdWJzZXQgb2YgVW5pY29kZSBjb2RlIHBvaW50cy4gIExlZ2FsCisgKiBjb2RlIHBvaW50cyBhcmUgVSswMDAwIHRvIFUrMTBGRkZGLCBpbmNsdXNpdmUuCisgKgorICogPHA+PGNvZGU+VW5pY29kZVNldDwvY29kZT4gc3VwcG9ydHMgdHdvIEFQSXMuIFRoZSBmaXJzdCBpcyB0aGUKKyAqIDxlbT5vcGVyYW5kPC9lbT4gQVBJIHRoYXQgYWxsb3dzIHRoZSBjYWxsZXIgdG8gbW9kaWZ5IHRoZSB2YWx1ZSBvZgorICogYSA8Y29kZT5Vbmljb2RlU2V0PC9jb2RlPiBvYmplY3QuIEl0IGNvbmZvcm1zIHRvIEphdmEgMidzCisgKiA8Y29kZT5qYXZhLnV0aWwuU2V0PC9jb2RlPiBpbnRlcmZhY2UsIGFsdGhvdWdoCisgKiA8Y29kZT5Vbmljb2RlU2V0PC9jb2RlPiBkb2VzIG5vdCBhY3R1YWxseSBpbXBsZW1lbnQgdGhhdAorICogaW50ZXJmYWNlLiBBbGwgbWV0aG9kcyBvZiA8Y29kZT5TZXQ8L2NvZGU+IGFyZSBzdXBwb3J0ZWQsIHdpdGggdGhlCisgKiBtb2RpZmljYXRpb24gdGhhdCB0aGV5IHRha2UgYSBjaGFyYWN0ZXIgcmFuZ2Ugb3Igc2luZ2xlIGNoYXJhY3RlcgorICogaW5zdGVhZCBvZiBhbiA8Y29kZT5PYmplY3Q8L2NvZGU+LCBhbmQgdGhleSB0YWtlIGEKKyAqIDxjb2RlPlVuaWNvZGVTZXQ8L2NvZGU+IGluc3RlYWQgb2YgYSA8Y29kZT5Db2xsZWN0aW9uPC9jb2RlPi4gIFRoZQorICogb3BlcmFuZCBBUEkgbWF5IGJlIHRob3VnaHQgb2YgaW4gdGVybXMgb2YgYm9vbGVhbiBsb2dpYzogYSBib29sZWFuCisgKiBPUiBpcyBpbXBsZW1lbnRlZCBieSA8Y29kZT5hZGQ8L2NvZGU+LCBhIGJvb2xlYW4gQU5EIGlzIGltcGxlbWVudGVkCisgKiBieSA8Y29kZT5yZXRhaW48L2NvZGU+LCBhIGJvb2xlYW4gWE9SIGlzIGltcGxlbWVudGVkIGJ5CisgKiA8Y29kZT5jb21wbGVtZW50PC9jb2RlPiB0YWtpbmcgYW4gYXJndW1lbnQsIGFuZCBhIGJvb2xlYW4gTk9UIGlzCisgKiBpbXBsZW1lbnRlZCBieSA8Y29kZT5jb21wbGVtZW50PC9jb2RlPiB3aXRoIG5vIGFyZ3VtZW50LiAgSW4gdGVybXMKKyAqIG9mIHRyYWRpdGlvbmFsIHNldCB0aGVvcnkgZnVuY3Rpb24gbmFtZXMsIDxjb2RlPmFkZDwvY29kZT4gaXMgYQorICogdW5pb24sIDxjb2RlPnJldGFpbjwvY29kZT4gaXMgYW4gaW50ZXJzZWN0aW9uLCA8Y29kZT5yZW1vdmU8L2NvZGU+CisgKiBpcyBhbiBhc3ltbWV0cmljIGRpZmZlcmVuY2UsIGFuZCA8Y29kZT5jb21wbGVtZW50PC9jb2RlPiB3aXRoIG5vCisgKiBhcmd1bWVudCBpcyBhIHNldCBjb21wbGVtZW50IHdpdGggcmVzcGVjdCB0byB0aGUgc3VwZXJzZXQgcmFuZ2UKKyAqIDxjb2RlPk1JTl9WQUxVRS1NQVhfVkFMVUU8L2NvZGU+CisgKgorICogPHA+VGhlIHNlY29uZCBBUEkgaXMgdGhlCisgKiA8Y29kZT5hcHBseVBhdHRlcm4oKTwvY29kZT4vPGNvZGU+dG9QYXR0ZXJuKCk8L2NvZGU+IEFQSSBmcm9tIHRoZQorICogPGNvZGU+amF2YS50ZXh0LkZvcm1hdDwvY29kZT4tZGVyaXZlZCBjbGFzc2VzLiAgVW5saWtlIHRoZQorICogbWV0aG9kcyB0aGF0IGFkZCBjaGFyYWN0ZXJzLCBhZGQgY2F0ZWdvcmllcywgYW5kIGNvbnRyb2wgdGhlIGxvZ2ljCisgKiBvZiB0aGUgc2V0LCB0aGUgbWV0aG9kIDxjb2RlPmFwcGx5UGF0dGVybigpPC9jb2RlPiBzZXRzIGFsbAorICogYXR0cmlidXRlcyBvZiBhIDxjb2RlPlVuaWNvZGVTZXQ8L2NvZGU+IGF0IG9uY2UsIGJhc2VkIG9uIGEKKyAqIHN0cmluZyBwYXR0ZXJuLgorICoKKyAqIDxwPjxiPlBhdHRlcm4gc3ludGF4PC9iPjwvcD4KKyAqCisgKiBQYXR0ZXJucyBhcmUgYWNjZXB0ZWQgYnkgdGhlIGNvbnN0cnVjdG9ycyBhbmQgdGhlCisgKiA8Y29kZT5hcHBseVBhdHRlcm4oKTwvY29kZT4gbWV0aG9kcyBhbmQgcmV0dXJuZWQgYnkgdGhlCisgKiA8Y29kZT50b1BhdHRlcm4oKTwvY29kZT4gbWV0aG9kLiAgVGhlc2UgcGF0dGVybnMgZm9sbG93IGEgc3ludGF4CisgKiBzaW1pbGFyIHRvIHRoYXQgZW1wbG95ZWQgYnkgdmVyc2lvbiA4IHJlZ3VsYXIgZXhwcmVzc2lvbiBjaGFyYWN0ZXIKKyAqIGNsYXNzZXM6CisgKgorICogPGJsb2NrcXVvdGU+CisgKiAgIDx0YWJsZT4KKyAqICAgICA8dHIgYWxpZ249InRvcCI+CisgKiAgICAgICA8dGQgbm93cmFwIHZhbGlnbj0idG9wIiBhbGlnbj0icmlnaHQiPjxjb2RlPnBhdHRlcm4gOj0mbmJzcDsgPC9jb2RlPjwvdGQ+CisgKiAgICAgICA8dGQgdmFsaWduPSJ0b3AiPjxjb2RlPignWycgJ14nPyBpdGVtKiAnXScpIHwKKyAqICAgICAgIHByb3BlcnR5PC9jb2RlPjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHIgYWxpZ249InRvcCI+CisgKiAgICAgICA8dGQgbm93cmFwIHZhbGlnbj0idG9wIiBhbGlnbj0icmlnaHQiPjxjb2RlPml0ZW0gOj0mbmJzcDsgPC9jb2RlPjwvdGQ+CisgKiAgICAgICA8dGQgdmFsaWduPSJ0b3AiPjxjb2RlPmNoYXIgfCAoY2hhciAnLScgY2hhcikgfCBwYXR0ZXJuLWV4cHI8YnI+CisgKiAgICAgICA8L2NvZGU+PC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0ciBhbGlnbj0idG9wIj4KKyAqICAgICAgIDx0ZCBub3dyYXAgdmFsaWduPSJ0b3AiIGFsaWduPSJyaWdodCI+PGNvZGU+cGF0dGVybi1leHByIDo9Jm5ic3A7IDwvY29kZT48L3RkPgorICogICAgICAgPHRkIHZhbGlnbj0idG9wIj48Y29kZT5wYXR0ZXJuIHwgcGF0dGVybi1leHByIHBhdHRlcm4gfAorICogICAgICAgcGF0dGVybi1leHByIG9wIHBhdHRlcm48YnI+CisgKiAgICAgICA8L2NvZGU+PC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0ciBhbGlnbj0idG9wIj4KKyAqICAgICAgIDx0ZCBub3dyYXAgdmFsaWduPSJ0b3AiIGFsaWduPSJyaWdodCI+PGNvZGU+b3AgOj0mbmJzcDsgPC9jb2RlPjwvdGQ+CisgKiAgICAgICA8dGQgdmFsaWduPSJ0b3AiPjxjb2RlPicmYW1wOycgfCAnLSc8YnI+CisgKiAgICAgICA8L2NvZGU+PC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0ciBhbGlnbj0idG9wIj4KKyAqICAgICAgIDx0ZCBub3dyYXAgdmFsaWduPSJ0b3AiIGFsaWduPSJyaWdodCI+PGNvZGU+c3BlY2lhbCA6PSZuYnNwOyA8L2NvZGU+PC90ZD4KKyAqICAgICAgIDx0ZCB2YWxpZ249InRvcCI+PGNvZGU+J1snIHwgJ10nIHwgJy0nPGJyPgorICogICAgICAgPC9jb2RlPjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHIgYWxpZ249InRvcCI+CisgKiAgICAgICA8dGQgbm93cmFwIHZhbGlnbj0idG9wIiBhbGlnbj0icmlnaHQiPjxjb2RlPmNoYXIgOj0mbmJzcDsgPC9jb2RlPjwvdGQ+CisgKiAgICAgICA8dGQgdmFsaWduPSJ0b3AiPjxlbT5hbnkgY2hhcmFjdGVyIHRoYXQgaXMgbm90PC9lbT48Y29kZT4gc3BlY2lhbDxicj4KKyAqICAgICAgIHwgKCdcdTAwNUMnIDwvY29kZT48ZW0+YW55IGNoYXJhY3RlcjwvZW0+PGNvZGU+KTxicj4KKyAqICAgICAgIHwgKCdcdTAwNUN1JyBoZXggaGV4IGhleCBoZXgpPGJyPgorICogICAgICAgPC9jb2RlPjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHIgYWxpZ249InRvcCI+CisgKiAgICAgICA8dGQgbm93cmFwIHZhbGlnbj0idG9wIiBhbGlnbj0icmlnaHQiPjxjb2RlPmhleCA6PSZuYnNwOyA8L2NvZGU+PC90ZD4KKyAqICAgICAgIDx0ZCB2YWxpZ249InRvcCI+PGVtPmFueSBjaGFyYWN0ZXIgZm9yIHdoaWNoCisgKiAgICAgICA8L2VtPjxjb2RlPkNoYXJhY3Rlci5kaWdpdChjLCAxNik8L2NvZGU+PGVtPgorICogICAgICAgcmV0dXJucyBhIG5vbi1uZWdhdGl2ZSByZXN1bHQ8L2VtPjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHI+CisgKiAgICAgICA8dGQgbm93cmFwIHZhbGlnbj0idG9wIiBhbGlnbj0icmlnaHQiPjxjb2RlPnByb3BlcnR5IDo9Jm5ic3A7IDwvY29kZT48L3RkPgorICogICAgICAgPHRkIHZhbGlnbj0idG9wIj48ZW0+YSBVbmljb2RlIHByb3BlcnR5IHNldCBwYXR0ZXJuPC90ZD4KKyAqICAgICA8L3RyPgorICogICA8L3RhYmxlPgorICogICA8YnI+CisgKiAgIDx0YWJsZSBib3JkZXI9IjEiPgorICogICAgIDx0cj4KKyAqICAgICAgIDx0ZD5MZWdlbmQ6IDx0YWJsZT4KKyAqICAgICAgICAgPHRyPgorICogICAgICAgICAgIDx0ZCBub3dyYXAgdmFsaWduPSJ0b3AiPjxjb2RlPmEgOj0gYjwvY29kZT48L3RkPgorICogICAgICAgICAgIDx0ZCB3aWR0aD0iMjAiIHZhbGlnbj0idG9wIj4mbmJzcDsgPC90ZD4KKyAqICAgICAgICAgICA8dGQgdmFsaWduPSJ0b3AiPjxjb2RlPmE8L2NvZGU+IG1heSBiZSByZXBsYWNlZCBieSA8Y29kZT5iPC9jb2RlPiA8L3RkPgorICogICAgICAgICA8L3RyPgorICogICAgICAgICA8dHI+CisgKiAgICAgICAgICAgPHRkIG5vd3JhcCB2YWxpZ249InRvcCI+PGNvZGU+YT88L2NvZGU+PC90ZD4KKyAqICAgICAgICAgICA8dGQgdmFsaWduPSJ0b3AiPjwvdGQ+CisgKiAgICAgICAgICAgPHRkIHZhbGlnbj0idG9wIj56ZXJvIG9yIG9uZSBpbnN0YW5jZSBvZiA8Y29kZT5hPC9jb2RlPjxicj4KKyAqICAgICAgICAgICA8L3RkPgorICogICAgICAgICA8L3RyPgorICogICAgICAgICA8dHI+CisgKiAgICAgICAgICAgPHRkIG5vd3JhcCB2YWxpZ249InRvcCI+PGNvZGU+YSo8L2NvZGU+PC90ZD4KKyAqICAgICAgICAgICA8dGQgdmFsaWduPSJ0b3AiPjwvdGQ+CisgKiAgICAgICAgICAgPHRkIHZhbGlnbj0idG9wIj5vbmUgb3IgbW9yZSBpbnN0YW5jZXMgb2YgPGNvZGU+YTwvY29kZT48YnI+CisgKiAgICAgICAgICAgPC90ZD4KKyAqICAgICAgICAgPC90cj4KKyAqICAgICAgICAgPHRyPgorICogICAgICAgICAgIDx0ZCBub3dyYXAgdmFsaWduPSJ0b3AiPjxjb2RlPmEgfCBiPC9jb2RlPjwvdGQ+CisgKiAgICAgICAgICAgPHRkIHZhbGlnbj0idG9wIj48L3RkPgorICogICAgICAgICAgIDx0ZCB2YWxpZ249InRvcCI+ZWl0aGVyIDxjb2RlPmE8L2NvZGU+IG9yIDxjb2RlPmI8L2NvZGU+PGJyPgorICogICAgICAgICAgIDwvdGQ+CisgKiAgICAgICAgIDwvdHI+CisgKiAgICAgICAgIDx0cj4KKyAqICAgICAgICAgICA8dGQgbm93cmFwIHZhbGlnbj0idG9wIj48Y29kZT4nYSc8L2NvZGU+PC90ZD4KKyAqICAgICAgICAgICA8dGQgdmFsaWduPSJ0b3AiPjwvdGQ+CisgKiAgICAgICAgICAgPHRkIHZhbGlnbj0idG9wIj50aGUgbGl0ZXJhbCBzdHJpbmcgYmV0d2VlbiB0aGUgcXVvdGVzIDwvdGQ+CisgKiAgICAgICAgIDwvdHI+CisgKiAgICAgICA8L3RhYmxlPgorICogICAgICAgPC90ZD4KKyAqICAgICA8L3RyPgorICogICA8L3RhYmxlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIEFueSBjaGFyYWN0ZXIgbWF5IGJlIHByZWNlZGVkIGJ5IGEgYmFja3NsYXNoIGluIG9yZGVyIHRvIHJlbW92ZSBhbnkgc3BlY2lhbAorICogbWVhbmluZy4gIFdoaXRlIHNwYWNlIGNoYXJhY3RlcnMsIGFzIGRlZmluZWQgYnkgVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoKSwgYXJlCisgKiBpZ25vcmVkLCB1bmxlc3MgdGhleSBhcmUgZXNjYXBlZC4KKyAqCisgKiA8cD5Qcm9wZXJ0eSBwYXR0ZXJucyBzcGVjaWZ5IGEgc2V0IG9mIGNoYXJhY3RlcnMgaGF2aW5nIGEgY2VydGFpbgorICogcHJvcGVydHkgYXMgZGVmaW5lZCBieSB0aGUgVW5pY29kZSBzdGFuZGFyZC4gIEJvdGggdGhlIFBPU0lYLWxpa2UKKyAqICJbOkx1Ol0iIGFuZCB0aGUgUGVybC1saWtlIHN5bnRheCAiXHB7THV9IiBhcmUgcmVjb2duaXplZC4gIEZvciBhCisgKiBjb21wbGV0ZSBsaXN0IG9mIHN1cHBvcnRlZCBwcm9wZXJ0eSBwYXR0ZXJucywgc2VlIHRoZSBVc2VyJ3MgR3VpZGUKKyAqIGZvciBVbmljb2RlU2V0IGF0CisgKiA8YSBocmVmPSJodHRwOi8vb3NzLnNvZnR3YXJlLmlibS5jb20vaWN1L3VzZXJndWlkZS91bmljb2Rlc2V0Lmh0bWwiPgorICogaHR0cDovL29zcy5zb2Z0d2FyZS5pYm0uY29tL2ljdS91c2VyZ3VpZGUvdW5pY29kZXNldC5odG1sPC9hPi4KKyAqIEFjdHVhbCBkZXRlcm1pbmF0aW9uIG9mIHByb3BlcnR5IGRhdGEgaXMgZGVmaW5lZCBieSB0aGUgdW5kZXJseWluZworICogVW5pY29kZSBkYXRhYmFzZSBhcyBpbXBsZW1lbnRlZCBieSBVQ2hhcmFjdGVyLgorICoKKyAqIDxwPlBhdHRlcm5zIHNwZWNpZnkgaW5kaXZpZHVhbCBjaGFyYWN0ZXJzLCByYW5nZXMgb2YgY2hhcmFjdGVycywgYW5kCisgKiBVbmljb2RlIHByb3BlcnR5IHNldHMuICBXaGVuIGVsZW1lbnRzIGFyZSBjb25jYXRlbmF0ZWQsIHRoZXkKKyAqIHNwZWNpZnkgdGhlaXIgdW5pb24uICBUbyBjb21wbGVtZW50IGEgc2V0LCBwbGFjZSBhICdeJyBpbW1lZGlhdGVseQorICogYWZ0ZXIgdGhlIG9wZW5pbmcgJ1snLiAgUHJvcGVydHkgcGF0dGVybnMgYXJlIGludmVydGVkIGJ5IG1vZGlmeWluZworICogdGhlaXIgZGVsaW1pdGVyczsgIls6XmZvb10iIGFuZCAiXFB7Zm9vfSIuICBJbiBhbnkgb3RoZXIgbG9jYXRpb24sCisgKiAnXicgaGFzIG5vIHNwZWNpYWwgbWVhbmluZy4KKyAqCisgKiA8cD5SYW5nZXMgYXJlIGluZGljYXRlZCBieSBwbGFjaW5nIHR3byBhICctJyBiZXR3ZWVuIHR3bworICogY2hhcmFjdGVycywgYXMgaW4gImEteiIuICBUaGlzIHNwZWNpZmllcyB0aGUgcmFuZ2Ugb2YgYWxsCisgKiBjaGFyYWN0ZXJzIGZyb20gdGhlIGxlZnQgdG8gdGhlIHJpZ2h0LCBpbiBVbmljb2RlIG9yZGVyLiAgSWYgdGhlCisgKiBsZWZ0IGNoYXJhY3RlciBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlCisgKiByaWdodCBjaGFyYWN0ZXIgaXQgaXMgYSBzeW50YXggZXJyb3IuICBJZiBhICctJyBvY2N1cnMgYXMgdGhlIGZpcnN0CisgKiBjaGFyYWN0ZXIgYWZ0ZXIgdGhlIG9wZW5pbmcgJ1snIG9yICdbXicsIG9yIGlmIGl0IG9jY3VycyBhcyB0aGUKKyAqIGxhc3QgY2hhcmFjdGVyIGJlZm9yZSB0aGUgY2xvc2luZyAnXScsIHRoZW4gaXQgaXMgdGFrZW4gYXMgYQorICogbGl0ZXJhbC4gIFRodXMgIlthXHUwMDVDLWJdIiwgIlstYWJdIiwgYW5kICJbYWItXSIgYWxsIGluZGljYXRlIHRoZSBzYW1lCisgKiBzZXQgb2YgdGhyZWUgY2hhcmFjdGVycywgJ2EnLCAnYicsIGFuZCAnLScuCisgKgorICogPHA+U2V0cyBtYXkgYmUgaW50ZXJzZWN0ZWQgdXNpbmcgdGhlICcmJyBvcGVyYXRvciBvciB0aGUgYXN5bW1ldHJpYworICogc2V0IGRpZmZlcmVuY2UgbWF5IGJlIHRha2VuIHVzaW5nIHRoZSAnLScgb3BlcmF0b3IsIGZvciBleGFtcGxlLAorICogIltbOkw6XSZbXHUwMDVDdTAwMDAtXHUwMDVDdTBGRkZdXSIgaW5kaWNhdGVzIHRoZSBzZXQgb2YgYWxsIFVuaWNvZGUgbGV0dGVycworICogd2l0aCB2YWx1ZXMgbGVzcyB0aGFuIDQwOTYuICBPcGVyYXRvcnMgKCcmJyBhbmQgJ3wnKSBoYXZlIGVxdWFsCisgKiBwcmVjZWRlbmNlIGFuZCBiaW5kIGxlZnQtdG8tcmlnaHQuICBUaHVzCisgKiAiW1s6TDpdLVthLXpdLVtcdTAwNUN1MDEwMC1cdTAwNUN1MDFGRl1dIiBpcyBlcXVpdmFsZW50IHRvCisgKiAiW1tbOkw6XS1bYS16XV0tW1x1MDA1Q3UwMTAwLVx1MDA1Q3UwMUZGXV0iLiAgVGhpcyBvbmx5IHJlYWxseSBtYXR0ZXJzIGZvcgorICogZGlmZmVyZW5jZTsgaW50ZXJzZWN0aW9uIGlzIGNvbW11dGF0aXZlLgorICoKKyAqIDx0YWJsZT4KKyAqIDx0ciB2YWxpZ249dG9wPjx0ZCBub3dyYXA+PGNvZGU+W2FdPC9jb2RlPjx0ZD5UaGUgc2V0IGNvbnRhaW5pbmcgJ2EnCisgKiA8dHIgdmFsaWduPXRvcD48dGQgbm93cmFwPjxjb2RlPlthLXpdPC9jb2RlPjx0ZD5UaGUgc2V0IGNvbnRhaW5pbmcgJ2EnCisgKiB0aHJvdWdoICd6JyBhbmQgYWxsIGxldHRlcnMgaW4gYmV0d2VlbiwgaW4gVW5pY29kZSBvcmRlcgorICogPHRyIHZhbGlnbj10b3A+PHRkIG5vd3JhcD48Y29kZT5bXmEtel08L2NvZGU+PHRkPlRoZSBzZXQgY29udGFpbmluZworICogYWxsIGNoYXJhY3RlcnMgYnV0ICdhJyB0aHJvdWdoICd6JywKKyAqIHRoYXQgaXMsIFUrMDAwMCB0aHJvdWdoICdhJy0xIGFuZCAneicrMSB0aHJvdWdoIFUrMTBGRkZGCisgKiA8dHIgdmFsaWduPXRvcD48dGQgbm93cmFwPjxjb2RlPltbPGVtPnBhdDE8L2VtPl1bPGVtPnBhdDI8L2VtPl1dPC9jb2RlPgorICogPHRkPlRoZSB1bmlvbiBvZiBzZXRzIHNwZWNpZmllZCBieSA8ZW0+cGF0MTwvZW0+IGFuZCA8ZW0+cGF0MjwvZW0+CisgKiA8dHIgdmFsaWduPXRvcD48dGQgbm93cmFwPjxjb2RlPltbPGVtPnBhdDE8L2VtPl0mWzxlbT5wYXQyPC9lbT5dXTwvY29kZT4KKyAqIDx0ZD5UaGUgaW50ZXJzZWN0aW9uIG9mIHNldHMgc3BlY2lmaWVkIGJ5IDxlbT5wYXQxPC9lbT4gYW5kIDxlbT5wYXQyPC9lbT4KKyAqIDx0ciB2YWxpZ249dG9wPjx0ZCBub3dyYXA+PGNvZGU+W1s8ZW0+cGF0MTwvZW0+XS1bPGVtPnBhdDI8L2VtPl1dPC9jb2RlPgorICogPHRkPlRoZSBhc3ltbWV0cmljIGRpZmZlcmVuY2Ugb2Ygc2V0cyBzcGVjaWZpZWQgYnkgPGVtPnBhdDE8L2VtPiBhbmQKKyAqIDxlbT5wYXQyPC9lbT4KKyAqIDx0ciB2YWxpZ249dG9wPjx0ZCBub3dyYXA+PGNvZGU+WzpMdTpdIG9yIFxwe0x1fTwvY29kZT4KKyAqIDx0ZD5UaGUgc2V0IG9mIGNoYXJhY3RlcnMgaGF2aW5nIHRoZSBzcGVjaWZpZWQKKyAqIFVuaWNvZGUgcHJvcGVydHk7IGluCisgKiB0aGlzIGNhc2UsIFVuaWNvZGUgdXBwZXJjYXNlIGxldHRlcnMKKyAqIDx0ciB2YWxpZ249dG9wPjx0ZCBub3dyYXA+PGNvZGU+WzpeTHU6XSBvciBcUHtMdX08L2NvZGU+CisgKiA8dGQ+VGhlIHNldCBvZiBjaGFyYWN0ZXJzIDxlbT5ub3Q8L2VtPiBoYXZpbmcgdGhlIGdpdmVuCisgKiBVbmljb2RlIHByb3BlcnR5CisgKiA8L3RhYmxlPgorICogPGJyPjxiPldhcm5pbmc6IHlvdSBjYW5ub3QgYWRkIGFuIGVtcHR5IHN0cmluZyAoIiIpIHRvIGEgVW5pY29kZVNldC48L2I+CisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAdmVyc2lvbiAkUkNTZmlsZTogVW5pY29kZVNldC5qYXZhLHYgJCAkUmV2aXNpb246IDEuNzEgJCAkRGF0ZTogMjAwMi8wNy8yOSAxOTozNjowNyAkCisgKi8KK3B1YmxpYyBjbGFzcyBVbmljb2RlU2V0IGV4dGVuZHMgVW5pY29kZUZpbHRlciB7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTE9XID0gMHgwMDAwMDA7IC8vIExPVyA8PSBhbGwgdmFsaWQgdmFsdWVzLiBaRVJPIGZvciBjb2RlcG9pbnRzCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEhJR0ggPSAweDExMDAwMDsgLy8gSElHSCA+IGFsbCB2YWxpZCB2YWx1ZXMuIDEwMDAwIGZvciBjb2RlIHVuaXRzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gMTEwMDAwIGZvciBjb2RlcG9pbnRzCisKKyAgICAvKioKKyAgICAgKiBNaW5pbXVtIHZhbHVlIHRoYXQgY2FuIGJlIHN0b3JlZCBpbiBhIFVuaWNvZGVTZXQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUlOX1ZBTFVFID0gTE9XOworCisgICAgLyoqCisgICAgICogTWF4aW11bSB2YWx1ZSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSBVbmljb2RlU2V0LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1BWF9WQUxVRSA9IEhJR0ggLSAxOworCisgICAgcHJpdmF0ZSBpbnQgbGVuOyAgICAgIC8vIGxlbmd0aCB1c2VkOyBsaXN0IG1heSBiZSBsb25nZXIgdG8gbWluaW1pemUgcmVhbGxvY3MKKyAgICBwcml2YXRlIGludFtdIGxpc3Q7ICAgLy8gTVVTVCBiZSB0ZXJtaW5hdGVkIHdpdGggSElHSAorICAgIHByaXZhdGUgaW50W10gcmFuZ2VMaXN0OyAvLyBpbnRlcm5hbCBidWZmZXIKKyAgICBwcml2YXRlIGludFtdIGJ1ZmZlcjsgLy8gaW50ZXJuYWwgYnVmZmVyCisgICAgCisgICAgLy8gTk9URTogbm9ybWFsbHkgdGhlIGZpZWxkIHNob3VsZCBiZSBvZiB0eXBlIFNvcnRlZFNldDsgYnV0IHRoYXQgaXMgbWlzc2luZyBhIHB1YmxpYyBjbG9uZSEhCisgICAgLy8gaXMgbm90IHByaXZhdGUgc28gdGhhdCBVbmljb2RlU2V0SXRlcmF0b3IgY2FuIGdldCBhY2Nlc3MKKyAgICBUcmVlU2V0IHN0cmluZ3MgPSBuZXcgVHJlZVNldCgpOworCisgICAgLyoqCisgICAgICogVGhlIHBhdHRlcm4gcmVwcmVzZW50YXRpb24gb2YgdGhpcyBzZXQuICBUaGlzIG1heSBub3QgYmUgdGhlCisgICAgICogbW9zdCBlY29ub21pY2FsIHBhdHRlcm4uICBJdCBpcyB0aGUgcGF0dGVybiBzdXBwbGllZCB0bworICAgICAqIGFwcGx5UGF0dGVybigpLCB3aXRoIHZhcmlhYmxlcyBzdWJzdGl0dXRlZCBhbmQgd2hpdGVzcGFjZQorICAgICAqIHJlbW92ZWQuICBGb3Igc2V0cyBjb25zdHJ1Y3RlZCB3aXRob3V0IGFwcGx5UGF0dGVybigpLCBvcgorICAgICAqIG1vZGlmaWVkIHVzaW5nIHRoZSBub24tcGF0dGVybiBBUEksIHRoaXMgc3RyaW5nIHdpbGwgYmUgbnVsbCwKKyAgICAgKiBpbmRpY2F0aW5nIHRoYXQgdG9QYXR0ZXJuKCkgbXVzdCBnZW5lcmF0ZSBhIHBhdHRlcm4KKyAgICAgKiByZXByZXNlbnRhdGlvbiBmcm9tIHRoZSBpbnZlcnNpb24gbGlzdC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBwYXQgPSBudWxsOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNUQVJUX0VYVFJBID0gMTY7ICAgICAgICAgLy8gaW5pdGlhbCBzdG9yYWdlLiBNdXN0IGJlID49IDAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgR1JPV19FWFRSQSA9IFNUQVJUX0VYVFJBOyAvLyBleHRyYSBhbW91bnQgZm9yIGdyb3d0aC4gTXVzdCBiZSA+PSAwCisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBQdWJsaWMgQVBJCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGFuIGVtcHR5IHNldC4KKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldCgpIHsKKyAgICAgICAgbGlzdCA9IG5ldyBpbnRbMSArIFNUQVJUX0VYVFJBXTsKKyAgICAgICAgbGlzdFtsZW4rK10gPSBISUdIOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBjb3B5IG9mIGFuIGV4aXN0aW5nIHNldC4KKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldChVbmljb2RlU2V0IG90aGVyKSB7CisgICAgICAgIHNldChvdGhlcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIHNldCBjb250YWluaW5nIHRoZSBnaXZlbiByYW5nZS4gSWYgPGNvZGU+ZW5kID4KKyAgICAgKiBzdGFydDwvY29kZT4gdGhlbiBhbiBlbXB0eSBzZXQgaXMgY3JlYXRlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdGFydCBmaXJzdCBjaGFyYWN0ZXIsIGluY2x1c2l2ZSwgb2YgcmFuZ2UKKyAgICAgKiBAcGFyYW0gZW5kIGxhc3QgY2hhcmFjdGVyLCBpbmNsdXNpdmUsIG9mIHJhbmdlCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQoaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgIHRoaXMoKTsKKyAgICAgICAgY29tcGxlbWVudChzdGFydCwgZW5kKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgc2V0IGZyb20gdGhlIGdpdmVuIHBhdHRlcm4uICBTZWUgdGhlIGNsYXNzIGRlc2NyaXB0aW9uCisgICAgICogZm9yIHRoZSBzeW50YXggb2YgdGhlIHBhdHRlcm4gbGFuZ3VhZ2UuICBXaGl0ZXNwYWNlIGlzIGlnbm9yZWQuCisgICAgICogQHBhcmFtIHBhdHRlcm4gYSBzdHJpbmcgc3BlY2lmeWluZyB3aGF0IGNoYXJhY3RlcnMgYXJlIGluIHRoZSBzZXQKKyAgICAgKiBAZXhjZXB0aW9uIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIHBhdHRlcm4gY29udGFpbnMKKyAgICAgKiBhIHN5bnRheCBlcnJvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldChTdHJpbmcgcGF0dGVybikgeworICAgICAgICB0aGlzKHBhdHRlcm4sIHRydWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBzZXQgZnJvbSB0aGUgZ2l2ZW4gcGF0dGVybi4gIFNlZSB0aGUgY2xhc3MgZGVzY3JpcHRpb24KKyAgICAgKiBmb3IgdGhlIHN5bnRheCBvZiB0aGUgcGF0dGVybiBsYW5ndWFnZS4KKyAgICAgKiBAcGFyYW0gcGF0dGVybiBhIHN0cmluZyBzcGVjaWZ5aW5nIHdoYXQgY2hhcmFjdGVycyBhcmUgaW4gdGhlIHNldAorICAgICAqIEBwYXJhbSBpZ25vcmVXaGl0ZXNwYWNlIGlmIHRydWUsIGlnbm9yZSBjaGFyYWN0ZXJzIGZvciB3aGljaAorICAgICAqIFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKCkgcmV0dXJucyB0cnVlCisgICAgICogQGV4Y2VwdGlvbiBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBwYXR0ZXJuIGNvbnRhaW5zCisgICAgICogYSBzeW50YXggZXJyb3IuCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQoU3RyaW5nIHBhdHRlcm4sIGJvb2xlYW4gaWdub3JlV2hpdGVzcGFjZSkgeworICAgICAgICB0aGlzKCk7CisgICAgICAgIGFwcGx5UGF0dGVybihwYXR0ZXJuLCBpZ25vcmVXaGl0ZXNwYWNlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgc2V0IGZyb20gdGhlIGdpdmVuIHBhdHRlcm4uICBTZWUgdGhlIGNsYXNzIGRlc2NyaXB0aW9uCisgICAgICogZm9yIHRoZSBzeW50YXggb2YgdGhlIHBhdHRlcm4gbGFuZ3VhZ2UuCisgICAgICogQHBhcmFtIHBhdHRlcm4gYSBzdHJpbmcgc3BlY2lmeWluZyB3aGF0IGNoYXJhY3RlcnMgYXJlIGluIHRoZSBzZXQKKyAgICAgKiBAcGFyYW0gcG9zIG9uIGlucHV0LCB0aGUgcG9zaXRpb24gaW4gcGF0dGVybiBhdCB3aGljaCB0byBzdGFydCBwYXJzaW5nLgorICAgICAqIE9uIG91dHB1dCwgdGhlIHBvc2l0aW9uIGFmdGVyIHRoZSBsYXN0IGNoYXJhY3RlciBwYXJzZWQuCisgICAgICogQHBhcmFtIHN5bWJvbHMgYSBzeW1ib2wgdGFibGUgbWFwcGluZyB2YXJpYWJsZXMgdG8gY2hhcltdIGFycmF5cworICAgICAqIGFuZCBjaGFycyB0byBVbmljb2RlU2V0cworICAgICAqIEBleGNlcHRpb24gamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgcGF0dGVybgorICAgICAqIGNvbnRhaW5zIGEgc3ludGF4IGVycm9yLgorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlU2V0KFN0cmluZyBwYXR0ZXJuLCBQYXJzZVBvc2l0aW9uIHBvcywgU3ltYm9sVGFibGUgc3ltYm9scykgeworICAgICAgICB0aGlzKCk7CisgICAgICAgIGFwcGx5UGF0dGVybihwYXR0ZXJuLCBwb3MsIHN5bWJvbHMsIHRydWUpOworICAgIH0KKworICAgIC8vIERlbGV0ZSB0aGUgZm9sbG93aW5nIHdoZW4gdGhlIGNhdGVnb3J5IGNvbnN0cnVjdG9yIGlzIHJlbW92ZWQKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0FURUdPUllfTkFNRVMgPQorICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgMSAxIDEgMSAxIDEgMSAgIDEgMSAyIDIgMiAyIDIgMiAyIDIgMgorICAgICAgICAvLzAgMSAyIDMgNCA1IDYgNyA4IDkgMCAxIDIgMyA0IDUgNiAgIDggOSAwIDEgMiAzIDQgNSA2IDcgOAorICAgICAgICAiQ25MdUxsTHRMbUxvTW5NZU1jTmRObE5vWnNabFpwQ2NDZi0tQ29Dc1BkUHNQZVBjUG9TbVNjU2tTbyI7CisgICAgLyoqCisgICAgICogREVQUkVDQVRFRCAtIENvbnN0cnVjdHMgYSBzZXQgZnJvbSB0aGUgZ2l2ZW4gVW5pY29kZSBjaGFyYWN0ZXIKKyAgICAgKiBjYXRlZ29yeS4KKyAgICAgKiBAcGFyYW0gY2F0ZWdvcnkgYW4gaW50ZWdlciBpbmRpY2F0aW5nIHRoZSBjaGFyYWN0ZXIgY2F0ZWdvcnkgYXMKKyAgICAgKiByZXR1cm5lZCBieSA8Y29kZT5qYXZhLmxhbmcuQ2hhcmFjdGVyLmdldFR5cGUoKTwvY29kZT4uICBOb3RlCisgICAgICogdGhhdCB0aGlzIGlzIDxlbT5kaWZmZXJlbnQ8L2VtPiBmcm9tIHRoZSBVQ2hhcmFjdGVyQ2F0ZWdvcnkKKyAgICAgKiBjb2Rlcy4KKyAgICAgKiBAZXhjZXB0aW9uIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIGdpdmVuCisgICAgICogY2F0ZWdvcnkgaXMgaW52YWxpZC4KKyAgICAgKiBAZGVwcmVjYXRlZCB0aGlzIHdpbGwgYmUgcmVtb3ZlZCBEZWMtMzEtMjAwMgorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlU2V0KGludCBjYXRlZ29yeSkgeworICAgICAgICBpZiAoY2F0ZWdvcnkgPCAwIHx8IGNhdGVnb3J5ID4gamF2YS5sYW5nLkNoYXJhY3Rlci5PVEhFUl9TWU1CT0wgfHwKKyAgICAgICAgICAgIGNhdGVnb3J5ID09IDE3KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGNhdGVnb3J5Iik7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHBhdCA9ICJbOiIgKyBDQVRFR09SWV9OQU1FUy5zdWJzdHJpbmcoMipjYXRlZ29yeSwgMipjYXRlZ29yeSsyKSArICI6XSI7CisgICAgICAgIGFwcGx5UGF0dGVybihwYXQsIGZhbHNlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBuZXcgc2V0IHRoYXQgaXMgZXF1aXZhbGVudCB0byB0aGlzIG9uZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgICAgICByZXR1cm4gbmV3IFVuaWNvZGVTZXQodGhpcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogTWFrZSB0aGlzIG9iamVjdCByZXByZXNlbnQgdGhlIHJhbmdlIDxjb2RlPnN0YXJ0IC0gZW5kPC9jb2RlPi4KKyAgICAgKiBJZiA8Y29kZT5lbmQgPiBzdGFydDwvY29kZT4gdGhlbiB0aGlzIG9iamVjdCBpcyBzZXQgdG8gYW4KKyAgICAgKiBhbiBlbXB0eSByYW5nZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdGFydCBmaXJzdCBjaGFyYWN0ZXIgaW4gdGhlIHNldCwgaW5jbHVzaXZlCisgICAgICogQHBhcmFtIGVuZCBsYXN0IGNoYXJhY3RlciBpbiB0aGUgc2V0LCBpbmNsdXNpdmUKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldCBzZXQoaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgIGNsZWFyKCk7CisgICAgICAgIGNvbXBsZW1lbnQoc3RhcnQsIGVuZCk7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1ha2UgdGhpcyBvYmplY3QgcmVwcmVzZW50IHRoZSBzYW1lIHNldCBhcyA8Y29kZT5vdGhlcjwvY29kZT4uCisgICAgICogQHBhcmFtIG90aGVyIGEgPGNvZGU+VW5pY29kZVNldDwvY29kZT4gd2hvc2UgdmFsdWUgd2lsbCBiZQorICAgICAqIGNvcGllZCB0byB0aGlzIG9iamVjdAorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlU2V0IHNldChVbmljb2RlU2V0IG90aGVyKSB7CisgICAgICAgIGxpc3QgPSAoaW50W10pIG90aGVyLmxpc3QuY2xvbmUoKTsKKyAgICAgICAgbGVuID0gb3RoZXIubGVuOworICAgICAgICBwYXQgPSBvdGhlci5wYXQ7CisgICAgICAgIHN0cmluZ3MgPSAoVHJlZVNldClvdGhlci5zdHJpbmdzLmNsb25lKCk7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1vZGlmaWVzIHRoaXMgc2V0IHRvIHJlcHJlc2VudCB0aGUgc2V0IHNwZWNpZmllZCBieSB0aGUgZ2l2ZW4gcGF0dGVybi4KKyAgICAgKiBTZWUgdGhlIGNsYXNzIGRlc2NyaXB0aW9uIGZvciB0aGUgc3ludGF4IG9mIHRoZSBwYXR0ZXJuIGxhbmd1YWdlLgorICAgICAqIFdoaXRlc3BhY2UgaXMgaWdub3JlZC4KKyAgICAgKiBAcGFyYW0gcGF0dGVybiBhIHN0cmluZyBzcGVjaWZ5aW5nIHdoYXQgY2hhcmFjdGVycyBhcmUgaW4gdGhlIHNldAorICAgICAqIEBleGNlcHRpb24gamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgcGF0dGVybgorICAgICAqIGNvbnRhaW5zIGEgc3ludGF4IGVycm9yLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBVbmljb2RlU2V0IGFwcGx5UGF0dGVybihTdHJpbmcgcGF0dGVybikgeworICAgICAgICByZXR1cm4gYXBwbHlQYXR0ZXJuKHBhdHRlcm4sIHRydWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1vZGlmaWVzIHRoaXMgc2V0IHRvIHJlcHJlc2VudCB0aGUgc2V0IHNwZWNpZmllZCBieSB0aGUgZ2l2ZW4gcGF0dGVybiwKKyAgICAgKiBvcHRpb25hbGx5IGlnbm9yaW5nIHdoaXRlc3BhY2UuCisgICAgICogU2VlIHRoZSBjbGFzcyBkZXNjcmlwdGlvbiBmb3IgdGhlIHN5bnRheCBvZiB0aGUgcGF0dGVybiBsYW5ndWFnZS4KKyAgICAgKiBAcGFyYW0gcGF0dGVybiBhIHN0cmluZyBzcGVjaWZ5aW5nIHdoYXQgY2hhcmFjdGVycyBhcmUgaW4gdGhlIHNldAorICAgICAqIEBwYXJhbSBpZ25vcmVXaGl0ZXNwYWNlIGlmIHRydWUgdGhlbiBjaGFyYWN0ZXJzIGZvciB3aGljaAorICAgICAqIFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKCkgcmV0dXJucyB0cnVlIGFyZSBpZ25vcmVkCisgICAgICogQGV4Y2VwdGlvbiBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBwYXR0ZXJuCisgICAgICogY29udGFpbnMgYSBzeW50YXggZXJyb3IuCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgYXBwbHlQYXR0ZXJuKFN0cmluZyBwYXR0ZXJuLCBib29sZWFuIGlnbm9yZVdoaXRlc3BhY2UpIHsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgYXBwbHlQYXR0ZXJuKHBhdHRlcm4sIHBvcywgbnVsbCwgaWdub3JlV2hpdGVzcGFjZSk7CisKKyAgICAgICAgaW50IGkgPSBwb3MuZ2V0SW5kZXgoKTsKKworICAgICAgICAvLyBTa2lwIG92ZXIgdHJhaWxpbmcgd2hpdGVzcGFjZQorICAgICAgICBpZiAoaWdub3JlV2hpdGVzcGFjZSkgeworICAgICAgICAgICAgaSA9IFV0aWxpdHkuc2tpcFdoaXRlc3BhY2UocGF0dGVybiwgaSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoaSAhPSBwYXR0ZXJuLmxlbmd0aCgpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJQYXJzZSBvZiBcIiIgKyBwYXR0ZXJuICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlwiIGZhaWxlZCBhdCAiICsgaSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIHBvc2l0aW9uLCBpbiB0aGUgZ2l2ZW4gcGF0dGVybiwgYXBwZWFycworICAgICAqIHRvIGJlIHRoZSBzdGFydCBvZiBhIFVuaWNvZGVTZXQgcGF0dGVybi4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gcmVzZW1ibGVzUGF0dGVybihTdHJpbmcgcGF0dGVybiwgaW50IHBvcykgeworICAgICAgICByZXR1cm4gKChwb3MrMSkgPCBwYXR0ZXJuLmxlbmd0aCgpICYmCisgICAgICAgICAgICAgICAgcGF0dGVybi5jaGFyQXQocG9zKSA9PSAnWycpIHx8CisgICAgICAgICAgICBVbmljb2RlUHJvcGVydHlTZXQucmVzZW1ibGVzUGF0dGVybihwYXR0ZXJuLCBwb3MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFwcGVuZCB0aGUgPGNvZGU+dG9QYXR0ZXJuKCk8L2NvZGU+IHJlcHJlc2VudGF0aW9uIG9mIGEKKyAgICAgKiBzdHJpbmcgdG8gdGhlIGdpdmVuIDxjb2RlPlN0cmluZ0J1ZmZlcjwvY29kZT4uCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBfYXBwZW5kVG9QYXQoU3RyaW5nQnVmZmVyIGJ1ZiwgU3RyaW5nIHMsIGJvb2xlYW4gdXNlSGV4RXNjYXBlKSB7CisgICAgICAgIGludCBjcDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyBpICs9IFVURjE2LmdldENoYXJDb3VudChpKSkgeworICAgICAgICAgICAgX2FwcGVuZFRvUGF0KGJ1ZiwgY3AgPSBVVEYxNi5jaGFyQXQocywgaSksIHVzZUhleEVzY2FwZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBcHBlbmQgdGhlIDxjb2RlPnRvUGF0dGVybigpPC9jb2RlPiByZXByZXNlbnRhdGlvbiBvZiBhCisgICAgICogY2hhcmFjdGVyIHRvIHRoZSBnaXZlbiA8Y29kZT5TdHJpbmdCdWZmZXI8L2NvZGU+LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgX2FwcGVuZFRvUGF0KFN0cmluZ0J1ZmZlciBidWYsIGludCBjLCBib29sZWFuIHVzZUhleEVzY2FwZSkgeworICAgICAgICBpZiAodXNlSGV4RXNjYXBlKSB7CisgICAgICAgICAgICAvLyBVc2UgaGV4IGVzY2FwZSBub3RhdGlvbiAoPGJhY2tzbGFzaD51eHh4eCBvciA8YmFja3NsYXNoPlV4eHh4eHh4eCkgZm9yIGFueXRoaW5nCisgICAgICAgICAgICAvLyB1bnByaW50YWJsZQorICAgICAgICAgICAgaWYgKFV0aWxpdHkuZXNjYXBlVW5wcmludGFibGUoYnVmLCBjKSkgeworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBPa2F5IHRvIGxldCAnOicgcGFzcyB0aHJvdWdoCisgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICBjYXNlICdbJzogLy8gU0VUX09QRU46CisgICAgICAgIGNhc2UgJ10nOiAvLyBTRVRfQ0xPU0U6CisgICAgICAgIGNhc2UgJy0nOiAvLyBIWVBIRU46CisgICAgICAgIGNhc2UgJ14nOiAvLyBDT01QTEVNRU5UOgorICAgICAgICBjYXNlICcmJzogLy8gSU5URVJTRUNUSU9OOgorICAgICAgICBjYXNlICdcXCc6IC8vQkFDS1NMQVNIOgorICAgICAgICBjYXNlICd7JzoKKyAgICAgICAgY2FzZSAnfSc6CisgICAgICAgIGNhc2UgJyQnOgorICAgICAgICBjYXNlICc6JzoKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJ1xcJyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIC8vIEVzY2FwZSB3aGl0ZXNwYWNlCisgICAgICAgICAgICBpZiAoVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoYykpIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCdcXCcpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgVVRGMTYuYXBwZW5kKGJ1ZiwgYyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHNldC4gIElmIHRoZSByZXN1bHQgb2YKKyAgICAgKiBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gaXMgcGFzc2VkIHRvIGEgVW5pY29kZVNldCBjb25zdHJ1Y3RvciwgaXQKKyAgICAgKiB3aWxsIHByb2R1Y2UgYW5vdGhlciBzZXQgdGhhdCBpcyBlcXVhbCB0byB0aGlzIG9uZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvUGF0dGVybihib29sZWFuIGVzY2FwZVVucHJpbnRhYmxlKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIHJldHVybiBfdG9QYXR0ZXJuKHJlc3VsdCwgZXNjYXBlVW5wcmludGFibGUpLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQXBwZW5kIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgc2V0IHRvIHJlc3VsdC4gIFRoaXMgd2lsbCBiZQorICAgICAqIGEgY2xlYW5lZCB2ZXJzaW9uIG9mIHRoZSBzdHJpbmcgcGFzc2VkIHRvIGFwcGx5UGF0dGVybigpLCBpZiB0aGVyZQorICAgICAqIGlzIG9uZS4gIE90aGVyd2lzZSBpdCB3aWxsIGJlIGdlbmVyYXRlZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciBfdG9QYXR0ZXJuKFN0cmluZ0J1ZmZlciByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGVzY2FwZVVucHJpbnRhYmxlKSB7CisgICAgICAgIGlmIChwYXQgIT0gbnVsbCkgeworICAgICAgICAgICAgaW50IGk7CisgICAgICAgICAgICBpbnQgYmFja3NsYXNoQ291bnQgPSAwOworICAgICAgICAgICAgZm9yIChpPTA7IGk8cGF0Lmxlbmd0aCgpOyApIHsKKyAgICAgICAgICAgICAgICBpbnQgYyA9IFVURjE2LmNoYXJBdChwYXQsIGkpOworICAgICAgICAgICAgICAgIGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgICAgIGlmIChlc2NhcGVVbnByaW50YWJsZSAmJiBVdGlsaXR5LmlzVW5wcmludGFibGUoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIHVucHJpbnRhYmxlIGNoYXJhY3RlciBpcyBwcmVjZWRlZCBieSBhbiBvZGQKKyAgICAgICAgICAgICAgICAgICAgLy8gbnVtYmVyIG9mIGJhY2tzbGFzaGVzLCB0aGVuIGl0IGhhcyBiZWVuIGVzY2FwZWQuCisgICAgICAgICAgICAgICAgICAgIC8vIEJlZm9yZSB1bmVzY2FwaW5nIGl0LCB3ZSBkZWxldGUgdGhlIGZpbmFsCisgICAgICAgICAgICAgICAgICAgIC8vIGJhY2tzbGFzaC4KKyAgICAgICAgICAgICAgICAgICAgaWYgKChiYWNrc2xhc2hDb3VudCAlIDIpID09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5zZXRMZW5ndGgocmVzdWx0Lmxlbmd0aCgpIC0gMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgVXRpbGl0eS5lc2NhcGVVbnByaW50YWJsZShyZXN1bHQsIGMpOworICAgICAgICAgICAgICAgICAgICBiYWNrc2xhc2hDb3VudCA9IDA7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHJlc3VsdCwgYyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjID09ICdcXCcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrYmFja3NsYXNoQ291bnQ7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBiYWNrc2xhc2hDb3VudCA9IDA7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIF9nZW5lcmF0ZVBhdHRlcm4ocmVzdWx0LCBlc2NhcGVVbnByaW50YWJsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2VuZXJhdGUgYW5kIGFwcGVuZCBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHNldCB0byByZXN1bHQuCisgICAgICogVGhpcyBkb2VzIG5vdCB1c2UgdGhpcy5wYXQsIHRoZSBjbGVhbmVkIHVwIGNvcHkgb2YgdGhlIHN0cmluZworICAgICAqIHBhc3NlZCB0byBhcHBseVBhdHRlcm4oKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIF9nZW5lcmF0ZVBhdHRlcm4oU3RyaW5nQnVmZmVyIHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBlc2NhcGVVbnByaW50YWJsZSkgeworICAgICAgICByZXN1bHQuYXBwZW5kKCdbJyk7CisKKy8vICAgICAgLy8gQ2hlY2sgYWdhaW5zdCB0aGUgcHJlZGVmaW5lZCBjYXRlZ29yaWVzLiAgV2UgaW1wbGljaXRseSBidWlsZAorLy8gICAgICAvLyB1cCBBTEwgY2F0ZWdvcnkgc2V0cyB0aGUgZmlyc3QgdGltZSB0b1BhdHRlcm4oKSBpcyBjYWxsZWQuCisvLyAgICAgIGZvciAoaW50IGNhdD0wOyBjYXQ8Q0FURUdPUllfQ09VTlQ7ICsrY2F0KSB7CisvLyAgICAgICAgICBpZiAodGhpcy5lcXVhbHMoZ2V0Q2F0ZWdvcnlTZXQoY2F0KSkpIHsKKy8vICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCc6Jyk7CisvLyAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChDQVRFR09SWV9OQU1FUy5zdWJzdHJpbmcoY2F0KjIsIGNhdCoyKzIpKTsKKy8vICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LmFwcGVuZCgiOl0iKTsKKy8vICAgICAgICAgIH0KKy8vICAgICAgfQorCisgICAgICAgIGludCBjb3VudCA9IGdldFJhbmdlQ291bnQoKTsKKworICAgICAgICAvLyBJZiB0aGUgc2V0IGNvbnRhaW5zIGF0IGxlYXN0IDIgaW50ZXJ2YWxzIGFuZCBpbmNsdWRlcyBib3RoCisgICAgICAgIC8vIE1JTl9WQUxVRSBhbmQgTUFYX1ZBTFVFLCB0aGVuIHRoZSBpbnZlcnNlIHJlcHJlc2VudGF0aW9uIHdpbGwKKyAgICAgICAgLy8gYmUgbW9yZSBlY29ub21pY2FsLgorICAgICAgICBpZiAoY291bnQgPiAxICYmCisgICAgICAgICAgICBnZXRSYW5nZVN0YXJ0KDApID09IE1JTl9WQUxVRSAmJgorICAgICAgICAgICAgZ2V0UmFuZ2VFbmQoY291bnQtMSkgPT0gTUFYX1ZBTFVFKSB7CisKKyAgICAgICAgICAgIC8vIEVtaXQgdGhlIGludmVyc2UKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ14nKTsKKworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgICAgICAgICAgaW50IHN0YXJ0ID0gZ2V0UmFuZ2VFbmQoaS0xKSsxOworICAgICAgICAgICAgICAgIGludCBlbmQgPSBnZXRSYW5nZVN0YXJ0KGkpLTE7CisgICAgICAgICAgICAgICAgX2FwcGVuZFRvUGF0KHJlc3VsdCwgc3RhcnQsIGVzY2FwZVVucHJpbnRhYmxlKTsKKyAgICAgICAgICAgICAgICBpZiAoc3RhcnQgIT0gZW5kKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJy0nKTsKKyAgICAgICAgICAgICAgICAgICAgX2FwcGVuZFRvUGF0KHJlc3VsdCwgZW5kLCBlc2NhcGVVbnByaW50YWJsZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gRGVmYXVsdDsgZW1pdCB0aGUgcmFuZ2VzIGFzIHBhaXJzCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgICAgICAgICAgaW50IHN0YXJ0ID0gZ2V0UmFuZ2VTdGFydChpKTsKKyAgICAgICAgICAgICAgICBpbnQgZW5kID0gZ2V0UmFuZ2VFbmQoaSk7CisgICAgICAgICAgICAgICAgX2FwcGVuZFRvUGF0KHJlc3VsdCwgc3RhcnQsIGVzY2FwZVVucHJpbnRhYmxlKTsKKyAgICAgICAgICAgICAgICBpZiAoc3RhcnQgIT0gZW5kKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJy0nKTsKKyAgICAgICAgICAgICAgICAgICAgX2FwcGVuZFRvUGF0KHJlc3VsdCwgZW5kLCBlc2NhcGVVbnByaW50YWJsZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHN0cmluZ3Muc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgSXRlcmF0b3IgaXQgPSBzdHJpbmdzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgneycpOworICAgICAgICAgICAgICAgIF9hcHBlbmRUb1BhdChyZXN1bHQsIChTdHJpbmcpIGl0Lm5leHQoKSwgZXNjYXBlVW5wcmludGFibGUpOworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ30nKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0LmFwcGVuZCgnXScpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGlzIHNldCAoaXRzIGNhcmRpbmFsaXR5KSwKKyAgICAgKiA8ZW0+bjwvZW0+LCB3aGVyZSA8Y29kZT4wIDw9IDwvY29kZT48ZW0+bjwvZW0+PGNvZGU+IDw9IDY1NTM2PC9jb2RlPi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGlzIHNldCAoaXRzIGNhcmRpbmFsaXR5KS4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IHNpemUoKSB7CisgICAgICAgIGludCBuID0gMDsKKyAgICAgICAgaW50IGNvdW50ID0gZ2V0UmFuZ2VDb3VudCgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgIG4gKz0gZ2V0UmFuZ2VFbmQoaSkgLSBnZXRSYW5nZVN0YXJ0KGkpICsgMTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbiArIHN0cmluZ3Muc2l6ZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgPHR0PnRydWU8L3R0PiBpZiB0aGlzIHNldCBjb250YWlucyBubyBlbGVtZW50cy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gPHR0PnRydWU8L3R0PiBpZiB0aGlzIHNldCBjb250YWlucyBubyBlbGVtZW50cy4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0VtcHR5KCkgeworICAgICAgICByZXR1cm4gbGVuID09IDEgJiYgc3RyaW5ncy5zaXplKCkgPT0gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRhdGlvbiBvZiBVbmljb2RlTWF0Y2hlciBBUEkuICBSZXR1cm5zIDx0dD50cnVlPC90dD4gaWYKKyAgICAgKiB0aGlzIHNldCBjb250YWlucyBhbnkgY2hhcmFjdGVyIHdob3NlIGxvdyBieXRlIGlzIHRoZSBnaXZlbgorICAgICAqIHZhbHVlLiAgVGhpcyBpcyB1c2VkIGJ5IDx0dD5SdWxlQmFzZWRUcmFuc2xpdGVyYXRvcjwvdHQ+IGZvcgorICAgICAqIGluZGV4aW5nLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIG1hdGNoZXNJbmRleFZhbHVlKGludCB2KSB7CisgICAgICAgIC8qIFRoZSBpbmRleCB2YWx1ZSB2LCBpbiB0aGUgcmFuZ2UgWzAsMjU1XSwgaXMgY29udGFpbmVkIGluIHRoaXMgc2V0IGlmCisgICAgICAgICAqIGl0IGlzIGNvbnRhaW5lZCBpbiBhbnkgcGFpciBvZiB0aGlzIHNldC4gIFBhaXJzIGVpdGhlciBoYXZlIHRoZSBoaWdoCisgICAgICAgICAqIGJ5dGVzIGVxdWFsLCBvciB1bmVxdWFsLiAgSWYgdGhlIGhpZ2ggYnl0ZXMgYXJlIGVxdWFsLCB0aGVuIHdlIGhhdmUKKyAgICAgICAgICogYWF4eC4uYWF5eSwgd2hlcmUgYWEgaXMgdGhlIGhpZ2ggYnl0ZS4gIFRoZW4gdiBpcyBjb250YWluZWQgaWYgeHggPD0KKyAgICAgICAgICogdiA8PSB5eS4gIElmIHRoZSBoaWdoIGJ5dGVzIGFyZSB1bmVxdWFsIHdlIGhhdmUgYWF4eC4uYmJ5eSwgYmI+YWEuCisgICAgICAgICAqIFRoZW4gdiBpcyBjb250YWluZWQgaWYgeHggPD0gdiB8fCB2IDw9IHl5LiAgKFRoaXMgaXMgaWRlbnRpY2FsIHRvIHRoZQorICAgICAgICAgKiB0aW1lIHpvbmUgbW9udGggY29udGFpbm1lbnQgbG9naWMuKQorICAgICAgICAgKi8KKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPGdldFJhbmdlQ291bnQoKTsgKytpKSB7CisgICAgICAgICAgICBpbnQgbG93ID0gZ2V0UmFuZ2VTdGFydChpKTsKKyAgICAgICAgICAgIGludCBoaWdoID0gZ2V0UmFuZ2VFbmQoaSk7CisgICAgICAgICAgICBpZiAoKGxvdyAmIH4weEZGKSA9PSAoaGlnaCAmIH4weEZGKSkgeworICAgICAgICAgICAgICAgIGlmICgobG93ICYgMHhGRikgPD0gdiAmJiB2IDw9IChoaWdoICYgMHhGRikpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmICgobG93ICYgMHhGRikgPD0gdiB8fCB2IDw9IChoaWdoICYgMHhGRikpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoc3RyaW5ncy5zaXplKCkgIT0gMCkgeworICAgICAgICAgICAgSXRlcmF0b3IgaXQgPSBzdHJpbmdzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHMgPSAoU3RyaW5nKSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgLy9pZiAocy5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgLy8gICAgLy8gRW1wdHkgc3RyaW5ncyBtYXRjaCBldmVyeXRoaW5nCisgICAgICAgICAgICAgICAgLy8gICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgLy99CisgICAgICAgICAgICAgICAgLy8gYXNzZXJ0KHMubGVuZ3RoKCkgIT0gMCk7IC8vIFdlIGVuZm9yY2UgdGhpcyBlbHNld2hlcmUKKyAgICAgICAgICAgICAgICBpbnQgYyA9IFVURjE2LmNoYXJBdChzLCAwKTsKKyAgICAgICAgICAgICAgICBpZiAoKGMgJiAweEZGKSA9PSB2KSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50YXRpb24gb2YgVW5pY29kZU1hdGNoZXIubWF0Y2hlcygpLiAgQWx3YXlzIG1hdGNoZXMgdGhlCisgICAgICogbG9uZ2VzdCBwb3NzaWJsZSBtdWx0aWNoYXIgc3RyaW5nLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgbWF0Y2hlcyhSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpbmNyZW1lbnRhbCkgeworICAgICAgICAKKyAgICAgICAgaWYgKG9mZnNldFswXSA9PSBsaW1pdCkgeworICAgICAgICAgICAgLy8gU3RyaW5ncywgaWYgYW55LCBoYXZlIGxlbmd0aCAhPSAwLCBzbyB3ZSBkb24ndCB3b3JyeQorICAgICAgICAgICAgLy8gYWJvdXQgdGhlbSBoZXJlLiAgSWYgd2UgZXZlciBhbGxvdyB6ZXJvLWxlbmd0aCBzdHJpbmdzCisgICAgICAgICAgICAvLyB3ZSBtdWNoIGNoZWNrIGZvciB0aGVtIGhlcmUuCisgICAgICAgICAgICBpZiAoY29udGFpbnMoVHJhbnNsaXRlcmF0aW9uUnVsZS5FVEhFUikpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaW5jcmVtZW50YWwgPyBVX1BBUlRJQUxfTUFUQ0ggOiBVX01BVENIOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gVV9NSVNNQVRDSDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChzdHJpbmdzLnNpemUoKSAhPSAwKSB7IC8vIHRyeSBzdHJpbmdzIGZpcnN0CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBtaWdodCBzZXBhcmF0ZSBmb3J3YXJkIGFuZCBiYWNrd2FyZCBsb29wcyBsYXRlcgorICAgICAgICAgICAgICAgIC8vIGZvciBub3cgdGhleSBhcmUgY29tYmluZWQKKworICAgICAgICAgICAgICAgIC8vIFRPRE8gSW1wcm92ZSBlZmZpY2llbmN5IG9mIHRoaXMsIGF0IGxlYXN0IGluIHRoZSBmb3J3YXJkCisgICAgICAgICAgICAgICAgLy8gZGlyZWN0aW9uLCBpZiBub3QgaW4gYm90aC4gIEluIHRoZSBmb3J3YXJkIGRpcmVjdGlvbiB3ZQorICAgICAgICAgICAgICAgIC8vIGNhbiBhc3N1bWUgdGhlIHN0cmluZ3MgYXJlIHNvcnRlZC4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGl0ID0gc3RyaW5ncy5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgIGJvb2xlYW4gZm9yd2FyZCA9IG9mZnNldFswXSA8IGxpbWl0OworCisgICAgICAgICAgICAgICAgLy8gZmlyc3RDaGFyIGlzIHRoZSBsZWZ0bW9zdCBjaGFyIHRvIG1hdGNoIGluIHRoZQorICAgICAgICAgICAgICAgIC8vIGZvcndhcmQgZGlyZWN0aW9uIG9yIHRoZSByaWdodG1vc3QgY2hhciB0byBtYXRjaCBpbgorICAgICAgICAgICAgICAgIC8vIHRoZSByZXZlcnNlIGRpcmVjdGlvbi4KKyAgICAgICAgICAgICAgICBjaGFyIGZpcnN0Q2hhciA9IHRleHQuY2hhckF0KG9mZnNldFswXSk7CisKKyAgICAgICAgICAgICAgICAvLyBJZiB0aGVyZSBhcmUgbXVsdGlwbGUgc3RyaW5ncyB0aGF0IGNhbiBtYXRjaCB3ZQorICAgICAgICAgICAgICAgIC8vIHJldHVybiB0aGUgbG9uZ2VzdCBtYXRjaC4KKyAgICAgICAgICAgICAgICBpbnQgaGlnaFdhdGVyTGVuZ3RoID0gMDsKKworICAgICAgICAgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRyaWFsID0gKFN0cmluZykgaXQubmV4dCgpOworCisgICAgICAgICAgICAgICAgICAgIC8vaWYgKHRyaWFsLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gICAgcmV0dXJuIFVfTUFUQ0g7IC8vIG51bGwtc3RyaW5nIGFsd2F5cyBtYXRjaGVzCisgICAgICAgICAgICAgICAgICAgIC8vfQorICAgICAgICAgICAgICAgICAgICAvLyBhc3NlcnQodHJpYWwubGVuZ3RoKCkgIT0gMCk7IC8vIFdlIGVuc3VyZSB0aGlzIGVsc2V3aGVyZQorCisgICAgICAgICAgICAgICAgICAgIGNoYXIgYyA9IHRyaWFsLmNoYXJBdChmb3J3YXJkID8gMCA6IHRyaWFsLmxlbmd0aCgpIC0gMSk7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gU3RyaW5ncyBhcmUgc29ydGVkLCBzbyB3ZSBjYW4gb3B0aW1pemUgaW4gdGhlCisgICAgICAgICAgICAgICAgICAgIC8vIGZvcndhcmQgZGlyZWN0aW9uLgorICAgICAgICAgICAgICAgICAgICBpZiAoZm9yd2FyZCAmJiBjID4gZmlyc3RDaGFyKSBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGMgIT0gZmlyc3RDaGFyKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpbnQgbGVuID0gbWF0Y2hSZXN0KHRleHQsIG9mZnNldFswXSwgbGltaXQsIHRyaWFsKTsKKworICAgICAgICAgICAgICAgICAgICBpZiAoaW5jcmVtZW50YWwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBtYXhMZW4gPSBmb3J3YXJkID8gbGltaXQtb2Zmc2V0WzBdIDogb2Zmc2V0WzBdLWxpbWl0OworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxlbiA9PSBtYXhMZW4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBoYXZlIHN1Y2Nlc3NmdWxseSBtYXRjaGVkIGJ1dCBvbmx5IHVwIHRvIGxpbWl0LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBVX1BBUlRJQUxfTUFUQ0g7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBpZiAobGVuID09IHRyaWFsLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBoYXZlIHN1Y2Nlc3NmdWxseSBtYXRjaGVkIHRoZSB3aG9sZSBzdHJpbmcuCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGVuID4gaGlnaFdhdGVyTGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlnaFdhdGVyTGVuZ3RoID0gbGVuOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW4gdGhlIGZvcndhcmQgZGlyZWN0aW9uIHdlIGtub3cgc3RyaW5ncworICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXJlIHNvcnRlZCBzbyB3ZSBjYW4gYmFpbCBlYXJseS4KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmb3J3YXJkICYmIGxlbiA8IGhpZ2hXYXRlckxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBXZSd2ZSBjaGVja2VkIGFsbCBzdHJpbmdzIHdpdGhvdXQgYSBwYXJ0aWFsIG1hdGNoLgorICAgICAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgZnVsbCBtYXRjaGVzLCByZXR1cm4gdGhlIGxvbmdlc3Qgb25lLgorICAgICAgICAgICAgICAgIGlmIChoaWdoV2F0ZXJMZW5ndGggIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBvZmZzZXRbMF0gKz0gZm9yd2FyZCA/IGhpZ2hXYXRlckxlbmd0aCA6IC1oaWdoV2F0ZXJMZW5ndGg7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBVX01BVENIOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBzdXBlci5tYXRjaGVzKHRleHQsIG9mZnNldCwgbGltaXQsIGluY3JlbWVudGFsKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsb25nZXN0IG1hdGNoIGZvciBzIGluIHRleHQgYXQgdGhlIGdpdmVuIHBvc2l0aW9uLgorICAgICAqIElmIGxpbWl0ID4gc3RhcnQgdGhlbiBtYXRjaCBmb3J3YXJkIGZyb20gc3RhcnQrMSB0byBsaW1pdAorICAgICAqIG1hdGNoaW5nIGFsbCBjaGFyYWN0ZXJzIGV4Y2VwdCBzLmNoYXJBdCgwKS4gIElmIGxpbWl0IDwgc3RhcnQsCisgICAgICogZ28gYmFja3dhcmQgc3RhcnRpbmcgZnJvbSBzdGFydC0xIG1hdGNoaW5nIGFsbCBjaGFyYWN0ZXJzCisgICAgICogZXhjZXB0IHMuY2hhckF0KHMubGVuZ3RoKCktMSkuICBUaGlzIG1ldGhvZCBhc3N1bWVzIHRoYXQgdGhlCisgICAgICogZmlyc3QgY2hhcmFjdGVyLCB0ZXh0LmNoYXJBdChzdGFydCksIG1hdGNoZXMgcywgc28gaXQgZG9lcyBub3QKKyAgICAgKiBjaGVjayBpdC4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgdGV4dCB0byBtYXRjaAorICAgICAqIEBwYXJhbSBzdGFydCB0aGUgZmlyc3QgY2hhcmFjdGVyIHRvIG1hdGNoLiAgSW4gdGhlIGZvcndhcmQKKyAgICAgKiBkaXJlY3Rpb24sIHRleHQuY2hhckF0KHN0YXJ0KSBpcyBtYXRjaGVkIGFnYWluc3Qgcy5jaGFyQXQoMCkuCisgICAgICogSW4gdGhlIHJldmVyc2UgZGlyZWN0aW9uLCBpdCBpcyBtYXRjaGVkIGFnYWluc3QKKyAgICAgKiBzLmNoYXJBdChzLmxlbmd0aCgpLTEpLgorICAgICAqIEBwYXJhbSBsaW1pdCB0aGUgbGltaXQgb2Zmc2V0IGZvciBtYXRjaGluZywgZWl0aGVyIGxhc3QrMSBpbgorICAgICAqIHRoZSBmb3J3YXJkIGRpcmVjdGlvbiwgb3IgbGFzdC0xIGluIHRoZSByZXZlcnNlIGRpcmVjdGlvbiwKKyAgICAgKiB3aGVyZSBsYXN0IGlzIHRoZSBpbmRleCBvZiB0aGUgbGFzdCBjaGFyYWN0ZXIgdG8gbWF0Y2guCisgICAgICogQHJldHVybiBJZiBwYXJ0IG9mIHMgbWF0Y2hlcyB1cCB0byB0aGUgbGltaXQsIHJldHVybiB8bGltaXQgLQorICAgICAqIHN0YXJ0fC4gIElmIGFsbCBvZiBzIG1hdGNoZXMgYmVmb3JlIHJlYWNoaW5nIHRoZSBsaW1pdCwgcmV0dXJuCisgICAgICogcy5sZW5ndGgoKS4gIElmIHRoZXJlIGlzIGEgbWlzbWF0Y2ggYmV0d2VlbiBzIGFuZCB0ZXh0LCByZXR1cm4KKyAgICAgKiAwCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IG1hdGNoUmVzdCAoUmVwbGFjZWFibGUgdGV4dCwgaW50IHN0YXJ0LCBpbnQgbGltaXQsIFN0cmluZyBzKSB7CisgICAgICAgIGludCBtYXhMZW47CisgICAgICAgIGludCBzbGVuID0gcy5sZW5ndGgoKTsKKyAgICAgICAgaWYgKHN0YXJ0IDwgbGltaXQpIHsKKyAgICAgICAgICAgIG1heExlbiA9IGxpbWl0IC0gc3RhcnQ7CisgICAgICAgICAgICBpZiAobWF4TGVuID4gc2xlbikgbWF4TGVuID0gc2xlbjsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgbWF4TGVuOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAodGV4dC5jaGFyQXQoc3RhcnQgKyBpKSAhPSBzLmNoYXJBdChpKSkgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtYXhMZW4gPSBzdGFydCAtIGxpbWl0OworICAgICAgICAgICAgaWYgKG1heExlbiA+IHNsZW4pIG1heExlbiA9IHNsZW47CisgICAgICAgICAgICAtLXNsZW47IC8vIDw9PiBzbGVuID0gcy5sZW5ndGgoKSAtIDE7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IG1heExlbjsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKHRleHQuY2hhckF0KHN0YXJ0IC0gaSkgIT0gcy5jaGFyQXQoc2xlbiAtIGkpKSByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbWF4TGVuOworICAgIH0KKyAgICAgICAgCisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRhdGlvbiBvZiBVbmljb2RlTWF0Y2hlciBBUEkuICBVbmlvbiB0aGUgc2V0IG9mIGFsbAorICAgICAqIGNoYXJhY3RlcnMgdGhhdCBtYXkgYmUgbWF0Y2hlZCBieSB0aGlzIG9iamVjdCBpbnRvIHRoZSBnaXZlbgorICAgICAqIHNldC4KKyAgICAgKiBAcGFyYW0gdG9VbmlvblRvIHRoZSBzZXQgaW50byB3aGljaCB0byB1bmlvbiB0aGUgc291cmNlIGNoYXJhY3RlcnMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhZGRNYXRjaFNldFRvKFVuaWNvZGVTZXQgdG9VbmlvblRvKSB7CisgICAgICAgIHRvVW5pb25Uby5hZGRBbGwodGhpcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGdpdmVuIGNoYXJhY3RlciB3aXRoaW4gdGhpcyBzZXQsIHdoZXJlCisgICAgICogdGhlIHNldCBpcyBvcmRlcmVkIGJ5IGFzY2VuZGluZyBjb2RlIHBvaW50LiAgSWYgdGhlIGNoYXJhY3RlcgorICAgICAqIGlzIG5vdCBpbiB0aGlzIHNldCwgcmV0dXJuIC0xLiAgVGhlIGludmVyc2Ugb2YgdGhpcyBtZXRob2QgaXMKKyAgICAgKiA8Y29kZT5jaGFyQXQoKTwvY29kZT4uCisgICAgICogQHJldHVybiBhbiBpbmRleCBmcm9tIDAuLnNpemUoKS0xLCBvciAtMQorICAgICAqLworICAgIHB1YmxpYyBpbnQgaW5kZXhPZihpbnQgYykgeworICAgICAgICBpZiAoYyA8IE1JTl9WQUxVRSB8fCBjID4gTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGNvZGUgcG9pbnQgVSsiICsgVXRpbGl0eS5oZXgoYywgNikpOworICAgICAgICB9CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgaW50IG4gPSAwOworICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICBpbnQgc3RhcnQgPSBsaXN0W2krK107CisgICAgICAgICAgICBpZiAoYyA8IHN0YXJ0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IGxpbWl0ID0gbGlzdFtpKytdOworICAgICAgICAgICAgaWYgKGMgPCBsaW1pdCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuICsgYyAtIHN0YXJ0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgbiArPSBsaW1pdCAtIHN0YXJ0OworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY2hhcmFjdGVyIGF0IHRoZSBnaXZlbiBpbmRleCB3aXRoaW4gdGhpcyBzZXQsIHdoZXJlCisgICAgICogdGhlIHNldCBpcyBvcmRlcmVkIGJ5IGFzY2VuZGluZyBjb2RlIHBvaW50LiAgSWYgdGhlIGluZGV4IGlzCisgICAgICogb3V0IG9mIHJhbmdlLCByZXR1cm4gLTEuICBUaGUgaW52ZXJzZSBvZiB0aGlzIG1ldGhvZCBpcworICAgICAqIDxjb2RlPmluZGV4T2YoKTwvY29kZT4uCisgICAgICogQHBhcmFtIGluZGV4IGFuIGluZGV4IGZyb20gMC4uc2l6ZSgpLTEKKyAgICAgKiBAcmV0dXJuIHRoZSBjaGFyYWN0ZXIgYXQgdGhlIGdpdmVuIGluZGV4LCBvciAtMS4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGNoYXJBdChpbnQgaW5kZXgpIHsKKyAgICAgICAgaWYgKGluZGV4ID49IDApIHsKKyAgICAgICAgICAgIC8vIGxlbjIgaXMgdGhlIGxhcmdlc3QgZXZlbiBpbnRlZ2VyIDw9IGxlbiwgdGhhdCBpcywgaXQgaXMgbGVuCisgICAgICAgICAgICAvLyBmb3IgZXZlbiB2YWx1ZXMgYW5kIGxlbi0xIGZvciBvZGQgdmFsdWVzLiAgV2l0aCBvZGQgdmFsdWVzCisgICAgICAgICAgICAvLyB0aGUgbGFzdCBlbnRyeSBpcyBVTklDT0RFU0VUX0hJR0guCisgICAgICAgICAgICBpbnQgbGVuMiA9IGxlbiAmIH4xOworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgbGVuMjspIHsKKyAgICAgICAgICAgICAgICBpbnQgc3RhcnQgPSBsaXN0W2krK107CisgICAgICAgICAgICAgICAgaW50IGNvdW50ID0gbGlzdFtpKytdIC0gc3RhcnQ7CisgICAgICAgICAgICAgICAgaWYgKGluZGV4IDwgY291bnQpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXJ0ICsgaW5kZXg7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGluZGV4IC09IGNvdW50OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGRzIHRoZSBzcGVjaWZpZWQgcmFuZ2UgdG8gdGhpcyBzZXQgaWYgaXQgaXMgbm90IGFscmVhZHkKKyAgICAgKiBwcmVzZW50LiAgSWYgdGhpcyBzZXQgYWxyZWFkeSBjb250YWlucyB0aGUgc3BlY2lmaWVkIHJhbmdlLAorICAgICAqIHRoZSBjYWxsIGxlYXZlcyB0aGlzIHNldCB1bmNoYW5nZWQuICBJZiA8Y29kZT5lbmQgPiBzdGFydDwvY29kZT4KKyAgICAgKiB0aGVuIGFuIGVtcHR5IHJhbmdlIGlzIGFkZGVkLCBsZWF2aW5nIHRoZSBzZXQgdW5jaGFuZ2VkLgorICAgICAqCisgICAgICogQHBhcmFtIHN0YXJ0IGZpcnN0IGNoYXJhY3RlciwgaW5jbHVzaXZlLCBvZiByYW5nZSB0byBiZSBhZGRlZAorICAgICAqIHRvIHRoaXMgc2V0LgorICAgICAqIEBwYXJhbSBlbmQgbGFzdCBjaGFyYWN0ZXIsIGluY2x1c2l2ZSwgb2YgcmFuZ2UgdG8gYmUgYWRkZWQKKyAgICAgKiB0byB0aGlzIHNldC4KKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldCBhZGQoaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgIGlmIChzdGFydCA8IE1JTl9WQUxVRSB8fCBzdGFydCA+IE1BWF9WQUxVRSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBjb2RlIHBvaW50IFUrIiArIFV0aWxpdHkuaGV4KHN0YXJ0LCA2KSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVuZCA8IE1JTl9WQUxVRSB8fCBlbmQgPiBNQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgY29kZSBwb2ludCBVKyIgKyBVdGlsaXR5LmhleChlbmQsIDYpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc3RhcnQgPD0gZW5kKSB7CisgICAgICAgICAgICBhZGQocmFuZ2Uoc3RhcnQsIGVuZCksIDIsIDApOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZHMgdGhlIHNwZWNpZmllZCBjaGFyYWN0ZXIgdG8gdGhpcyBzZXQgaWYgaXQgaXMgbm90IGFscmVhZHkKKyAgICAgKiBwcmVzZW50LiAgSWYgdGhpcyBzZXQgYWxyZWFkeSBjb250YWlucyB0aGUgc3BlY2lmaWVkIGNoYXJhY3RlciwKKyAgICAgKiB0aGUgY2FsbCBsZWF2ZXMgdGhpcyBzZXQgdW5jaGFuZ2VkLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBVbmljb2RlU2V0IGFkZChpbnQgYykgeworICAgICAgICBhZGQoYywgYyk7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZHMgdGhlIHNwZWNpZmllZCBtdWx0aWNoYXJhY3RlciB0byB0aGlzIHNldCBpZiBpdCBpcyBub3QgYWxyZWFkeQorICAgICAqIHByZXNlbnQuICBJZiB0aGlzIHNldCBhbHJlYWR5IGNvbnRhaW5zIHRoZSBtdWx0aWNoYXJhY3RlciwKKyAgICAgKiB0aGUgY2FsbCBsZWF2ZXMgdGhpcyBzZXQgdW5jaGFuZ2VkLgorICAgICAqIFRodXMgImNoIiA9PiB7ImNoIn0KKwkgKiA8YnI+PGI+V2FybmluZzogeW91IGNhbm5vdCBhZGQgYW4gZW1wdHkgc3RyaW5nICgiIikgdG8gYSBVbmljb2RlU2V0LjwvYj4KKyAgICAgKiBAcGFyYW0gcyB0aGUgc291cmNlIHN0cmluZworICAgICAqIEByZXR1cm4gdGhpcyBvYmplY3QsIGZvciBjaGFpbmluZworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBVbmljb2RlU2V0IGFkZChTdHJpbmcgcykgeworICAgICAgICAKKyAgICAgICAgaW50IGNwID0gZ2V0U2luZ2xlQ1Aocyk7CisgICAgICAgIGlmIChjcCA8IDApIHsKKyAgICAgICAgCXN0cmluZ3MuYWRkKHMpOworICAgICAgICAJcGF0ID0gbnVsbDsKKwkJfSBlbHNlIHsKKwkJCWFkZChjcCwgY3ApOworCQl9CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIGEgY29kZSBwb2ludCBJRiB0aGUgc3RyaW5nIGNvbnNpc3RzIG9mIGEgc2luZ2xlIG9uZS4KKyAgICAgKiBvdGhlcndpc2UgcmV0dXJucyAtMS4KKyAgICAgKiBAcGFyYW0gc3RyaW5nIHRvIHRlc3QKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZ2V0U2luZ2xlQ1AoU3RyaW5nIHMpIHsKKyAgICAgICAgaWYgKHMubGVuZ3RoKCkgPCAxKSB7CisgICAgICAgIAl0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJDYW4ndCB1c2UgemVyby1sZW5ndGggc3RyaW5ncyBpbiBVbmljb2RlU2V0Iik7CisgICAgICAgIH0KKyAgICAJaWYgKHMubGVuZ3RoKCkgPiAyKSByZXR1cm4gLTE7CisgICAgCWlmIChzLmxlbmd0aCgpID09IDEpIHJldHVybiBzLmNoYXJBdCgwKTsKKyAgICAJCisgICAgCS8vIGF0IHRoaXMgcG9pbnQsIGxlbiA9IDIKKyAgICAgICAgaW50IGNwID0gVVRGMTYuY2hhckF0KHMsIDApOworICAgICAgICBpZiAoY3AgPiAweEZGRkYpIHsgLy8gaXMgc3Vycm9nYXRlIHBhaXIKKyAgICAgICAgCXJldHVybiBjcDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEFkZHMgZWFjaCBvZiB0aGUgY2hhcmFjdGVycyBpbiB0aGlzIHN0cmluZyB0byB0aGUgc2V0LiBUaHVzICJjaCIgPT4geyJjIiwgImgifQorICAgICAqIElmIHRoaXMgc2V0IGFscmVhZHkgYW55IHBhcnRpY3VsYXIgY2hhcmFjdGVyLCBpdCBoYXMgbm8gZWZmZWN0IG9uIHRoYXQgY2hhcmFjdGVyLgorICAgICAqIEBwYXJhbSBzIHRoZSBzb3VyY2Ugc3RyaW5nCisgICAgICogQHJldHVybiB0aGlzIG9iamVjdCwgZm9yIGNoYWluaW5nCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFVuaWNvZGVTZXQgYWRkQWxsKFN0cmluZyBzKSB7CisgICAgICAgIGludCBjcDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyBpICs9IFVURjE2LmdldENoYXJDb3VudChjcCkpIHsKKyAgICAgICAgICAgIGNwID0gVVRGMTYuY2hhckF0KHMsIGkpOworICAgICAgICAgICAgYWRkKGNwLCBjcCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0YWlucyBFQUNIIG9mIHRoZSBjaGFyYWN0ZXJzIGluIHRoaXMgc3RyaW5nLiBOb3RlOiAiY2giID09IHsiYyIsICJoIn0KKyAgICAgKiBJZiB0aGlzIHNldCBhbHJlYWR5IGFueSBwYXJ0aWN1bGFyIGNoYXJhY3RlciwgaXQgaGFzIG5vIGVmZmVjdCBvbiB0aGF0IGNoYXJhY3Rlci4KKyAgICAgKiBAcGFyYW0gcyB0aGUgc291cmNlIHN0cmluZworICAgICAqIEByZXR1cm4gdGhpcyBvYmplY3QsIGZvciBjaGFpbmluZworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBVbmljb2RlU2V0IHJldGFpbkFsbChTdHJpbmcgcykgeworICAgIAlyZXR1cm4gcmV0YWluQWxsKGZyb21BbGwocykpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBsZW1lbnQgRUFDSCBvZiB0aGUgY2hhcmFjdGVycyBpbiB0aGlzIHN0cmluZy4gTm90ZTogImNoIiA9PSB7ImMiLCAiaCJ9CisgICAgICogSWYgdGhpcyBzZXQgYWxyZWFkeSBhbnkgcGFydGljdWxhciBjaGFyYWN0ZXIsIGl0IGhhcyBubyBlZmZlY3Qgb24gdGhhdCBjaGFyYWN0ZXIuCisgICAgICogQHBhcmFtIHMgdGhlIHNvdXJjZSBzdHJpbmcKKyAgICAgKiBAcmV0dXJuIHRoaXMgb2JqZWN0LCBmb3IgY2hhaW5pbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgVW5pY29kZVNldCBjb21wbGVtZW50QWxsKFN0cmluZyBzKSB7CisgICAgCXJldHVybiBjb21wbGVtZW50QWxsKGZyb21BbGwocykpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZSBFQUNIIG9mIHRoZSBjaGFyYWN0ZXJzIGluIHRoaXMgc3RyaW5nLiBOb3RlOiAiY2giID09IHsiYyIsICJoIn0KKyAgICAgKiBJZiB0aGlzIHNldCBhbHJlYWR5IGFueSBwYXJ0aWN1bGFyIGNoYXJhY3RlciwgaXQgaGFzIG5vIGVmZmVjdCBvbiB0aGF0IGNoYXJhY3Rlci4KKyAgICAgKiBAcGFyYW0gcyB0aGUgc291cmNlIHN0cmluZworICAgICAqIEByZXR1cm4gdGhpcyBvYmplY3QsIGZvciBjaGFpbmluZworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBVbmljb2RlU2V0IHJlbW92ZUFsbChTdHJpbmcgcykgeworICAgIAlyZXR1cm4gcmVtb3ZlQWxsKGZyb21BbGwocykpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1ha2VzIGEgc2V0IGZyb20gYSBtdWx0aWNoYXJhY3RlciBzdHJpbmcuIFRodXMgImNoIiA9PiB7ImNoIn0KKwkgKiA8YnI+PGI+V2FybmluZzogeW91IGNhbm5vdCBhZGQgYW4gZW1wdHkgc3RyaW5nICgiIikgdG8gYSBVbmljb2RlU2V0LjwvYj4KKyAgICAgKiBAcGFyYW0gcyB0aGUgc291cmNlIHN0cmluZworICAgICAqIEByZXR1cm4gYSBuZXdseSBjcmVhdGVkIHNldCBjb250YWluaW5nIHRoZSBnaXZlbiBzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFVuaWNvZGVTZXQgZnJvbShTdHJpbmcgcykgeworICAgICAgICByZXR1cm4gbmV3IFVuaWNvZGVTZXQoKS5hZGQocyk7CisgICAgfQorCisgICAgCisgICAgLyoqCisgICAgICogTWFrZXMgYSBzZXQgZnJvbSBlYWNoIG9mIHRoZSBjaGFyYWN0ZXJzIGluIHRoZSBzdHJpbmcuIFRodXMgImNoIiA9PiB7ImMiLCAiaCJ9CisgICAgICogQHBhcmFtIHMgdGhlIHNvdXJjZSBzdHJpbmcKKyAgICAgKiBAcmV0dXJuIGEgbmV3bHkgY3JlYXRlZCBzZXQgY29udGFpbmluZyB0aGUgZ2l2ZW4gY2hhcmFjdGVycworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVW5pY29kZVNldCBmcm9tQWxsKFN0cmluZyBzKSB7CisgICAgICAgIHJldHVybiBuZXcgVW5pY29kZVNldCgpLmFkZEFsbChzKTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFJldGFpbiBvbmx5IHRoZSBlbGVtZW50cyBpbiB0aGlzIHNldCB0aGF0IGFyZSBjb250YWluZWQgaW4gdGhlCisgICAgICogc3BlY2lmaWVkIHJhbmdlLiAgSWYgPGNvZGU+ZW5kID4gc3RhcnQ8L2NvZGU+IHRoZW4gYW4gZW1wdHkgcmFuZ2UgaXMKKyAgICAgKiByZXRhaW5lZCwgbGVhdmluZyB0aGUgc2V0IGVtcHR5LgorICAgICAqCisgICAgICogQHBhcmFtIHN0YXJ0IGZpcnN0IGNoYXJhY3RlciwgaW5jbHVzaXZlLCBvZiByYW5nZSB0byBiZSByZXRhaW5lZAorICAgICAqIHRvIHRoaXMgc2V0LgorICAgICAqIEBwYXJhbSBlbmQgbGFzdCBjaGFyYWN0ZXIsIGluY2x1c2l2ZSwgb2YgcmFuZ2UgdG8gYmUgcmV0YWluZWQKKyAgICAgKiB0byB0aGlzIHNldC4KKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldCByZXRhaW4oaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgIGlmIChzdGFydCA8IE1JTl9WQUxVRSB8fCBzdGFydCA+IE1BWF9WQUxVRSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBjb2RlIHBvaW50IFUrIiArIFV0aWxpdHkuaGV4KHN0YXJ0LCA2KSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVuZCA8IE1JTl9WQUxVRSB8fCBlbmQgPiBNQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgY29kZSBwb2ludCBVKyIgKyBVdGlsaXR5LmhleChlbmQsIDYpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc3RhcnQgPD0gZW5kKSB7CisgICAgICAgICAgICByZXRhaW4ocmFuZ2Uoc3RhcnQsIGVuZCksIDIsIDApOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgY2xlYXIoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXRhaW4gdGhlIHNwZWNpZmllZCBjaGFyYWN0ZXIgZnJvbSB0aGlzIHNldCBpZiBpdCBpcyBwcmVzZW50LgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBVbmljb2RlU2V0IHJldGFpbihpbnQgYykgeworICAgICAgICByZXR1cm4gcmV0YWluKGMsIGMpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXRhaW4gdGhlIHNwZWNpZmllZCBzdHJpbmcgaW4gdGhpcyBzZXQgaWYgaXQgaXMgcHJlc2VudC4KKyAgICAgKiBUaGUgc2V0IHdpbGwgbm90IGNvbnRhaW4gdGhlIHNwZWNpZmllZCBjaGFyYWN0ZXIgb25jZSB0aGUgY2FsbAorICAgICAqIHJldHVybnMuCisgICAgICogQHBhcmFtIHMgdGhlIHNvdXJjZSBzdHJpbmcKKyAgICAgKiBAcmV0dXJuIHRoaXMgb2JqZWN0LCBmb3IgY2hhaW5pbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgVW5pY29kZVNldCByZXRhaW4oU3RyaW5nIHMpIHsKKyAgICAgICAgaW50IGNwID0gZ2V0U2luZ2xlQ1Aocyk7CisgICAgICAgIGlmIChjcCA8IDApIHsKKyAgICAgICAgCWlmIChzdHJpbmdzLnNpemUoKSA9PSAxICYmIHN0cmluZ3MuY29udGFpbnMocykpIHJldHVybiB0aGlzOworICAgICAgICAJc3RyaW5ncy5jbGVhcigpOworICAgICAgICAJc3RyaW5ncy5hZGQocyk7CisgICAgICAgIAlwYXQgPSBudWxsOworCQl9IGVsc2UgeworCQkJcmV0YWluKGNwLCBjcCk7CisJCX0KKwkJcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVtb3ZlcyB0aGUgc3BlY2lmaWVkIHJhbmdlIGZyb20gdGhpcyBzZXQgaWYgaXQgaXMgcHJlc2VudC4KKyAgICAgKiBUaGUgc2V0IHdpbGwgbm90IGNvbnRhaW4gdGhlIHNwZWNpZmllZCByYW5nZSBvbmNlIHRoZSBjYWxsCisgICAgICogcmV0dXJucy4gIElmIDxjb2RlPmVuZCA+IHN0YXJ0PC9jb2RlPiB0aGVuIGFuIGVtcHR5IHJhbmdlIGlzCisgICAgICogcmVtb3ZlZCwgbGVhdmluZyB0aGUgc2V0IHVuY2hhbmdlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdGFydCBmaXJzdCBjaGFyYWN0ZXIsIGluY2x1c2l2ZSwgb2YgcmFuZ2UgdG8gYmUgcmVtb3ZlZAorICAgICAqIGZyb20gdGhpcyBzZXQuCisgICAgICogQHBhcmFtIGVuZCBsYXN0IGNoYXJhY3RlciwgaW5jbHVzaXZlLCBvZiByYW5nZSB0byBiZSByZW1vdmVkCisgICAgICogZnJvbSB0aGlzIHNldC4KKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldCByZW1vdmUoaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgIGlmIChzdGFydCA8IE1JTl9WQUxVRSB8fCBzdGFydCA+IE1BWF9WQUxVRSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBjb2RlIHBvaW50IFUrIiArIFV0aWxpdHkuaGV4KHN0YXJ0LCA2KSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVuZCA8IE1JTl9WQUxVRSB8fCBlbmQgPiBNQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgY29kZSBwb2ludCBVKyIgKyBVdGlsaXR5LmhleChlbmQsIDYpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc3RhcnQgPD0gZW5kKSB7CisgICAgICAgICAgICByZXRhaW4ocmFuZ2Uoc3RhcnQsIGVuZCksIDIsIDIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZXMgdGhlIHNwZWNpZmllZCBjaGFyYWN0ZXIgZnJvbSB0aGlzIHNldCBpZiBpdCBpcyBwcmVzZW50LgorICAgICAqIFRoZSBzZXQgd2lsbCBub3QgY29udGFpbiB0aGUgc3BlY2lmaWVkIGNoYXJhY3RlciBvbmNlIHRoZSBjYWxsCisgICAgICogcmV0dXJucy4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgVW5pY29kZVNldCByZW1vdmUoaW50IGMpIHsKKyAgICAgICAgcmV0dXJuIHJlbW92ZShjLCBjKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmVzIHRoZSBzcGVjaWZpZWQgc3RyaW5nIGZyb20gdGhpcyBzZXQgaWYgaXQgaXMgcHJlc2VudC4KKyAgICAgKiBUaGUgc2V0IHdpbGwgbm90IGNvbnRhaW4gdGhlIHNwZWNpZmllZCBjaGFyYWN0ZXIgb25jZSB0aGUgY2FsbAorICAgICAqIHJldHVybnMuCisgICAgICogQHBhcmFtIHMgdGhlIHNvdXJjZSBzdHJpbmcKKyAgICAgKiBAcmV0dXJuIHRoaXMgb2JqZWN0LCBmb3IgY2hhaW5pbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgVW5pY29kZVNldCByZW1vdmUoU3RyaW5nIHMpIHsKKyAgICAgICAgaW50IGNwID0gZ2V0U2luZ2xlQ1Aocyk7CisgICAgICAgIGlmIChjcCA8IDApIHsKKyAgICAgICAgCXN0cmluZ3MucmVtb3ZlKHMpOworICAgICAgICAJcGF0ID0gbnVsbDsKKwkJfSBlbHNlIHsKKwkJCXJlbW92ZShjcCwgY3ApOworCQl9CisJCXJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBsZW1lbnRzIHRoZSBzcGVjaWZpZWQgcmFuZ2UgaW4gdGhpcyBzZXQuICBBbnkgY2hhcmFjdGVyIGluCisgICAgICogdGhlIHJhbmdlIHdpbGwgYmUgcmVtb3ZlZCBpZiBpdCBpcyBpbiB0aGlzIHNldCwgb3Igd2lsbCBiZQorICAgICAqIGFkZGVkIGlmIGl0IGlzIG5vdCBpbiB0aGlzIHNldC4gIElmIDxjb2RlPmVuZCA+IHN0YXJ0PC9jb2RlPgorICAgICAqIHRoZW4gYW4gZW1wdHkgcmFuZ2UgaXMgY29tcGxlbWVudGVkLCBsZWF2aW5nIHRoZSBzZXQgdW5jaGFuZ2VkLgorICAgICAqCisgICAgICogQHBhcmFtIHN0YXJ0IGZpcnN0IGNoYXJhY3RlciwgaW5jbHVzaXZlLCBvZiByYW5nZSB0byBiZSByZW1vdmVkCisgICAgICogZnJvbSB0aGlzIHNldC4KKyAgICAgKiBAcGFyYW0gZW5kIGxhc3QgY2hhcmFjdGVyLCBpbmNsdXNpdmUsIG9mIHJhbmdlIHRvIGJlIHJlbW92ZWQKKyAgICAgKiBmcm9tIHRoaXMgc2V0LgorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlU2V0IGNvbXBsZW1lbnQoaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgIGlmIChzdGFydCA8IE1JTl9WQUxVRSB8fCBzdGFydCA+IE1BWF9WQUxVRSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBjb2RlIHBvaW50IFUrIiArIFV0aWxpdHkuaGV4KHN0YXJ0LCA2KSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVuZCA8IE1JTl9WQUxVRSB8fCBlbmQgPiBNQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgY29kZSBwb2ludCBVKyIgKyBVdGlsaXR5LmhleChlbmQsIDYpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc3RhcnQgPD0gZW5kKSB7CisgICAgICAgICAgICB4b3IocmFuZ2Uoc3RhcnQsIGVuZCksIDIsIDApOworICAgICAgICB9CisgICAgICAgIHBhdCA9IG51bGw7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBsZW1lbnRzIHRoZSBzcGVjaWZpZWQgY2hhcmFjdGVyIGluIHRoaXMgc2V0LiAgVGhlIGNoYXJhY3RlcgorICAgICAqIHdpbGwgYmUgcmVtb3ZlZCBpZiBpdCBpcyBpbiB0aGlzIHNldCwgb3Igd2lsbCBiZSBhZGRlZCBpZiBpdCBpcworICAgICAqIG5vdCBpbiB0aGlzIHNldC4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgVW5pY29kZVNldCBjb21wbGVtZW50KGludCBjKSB7CisgICAgICAgIHJldHVybiBjb21wbGVtZW50KGMsIGMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgaXMgZXF1aXZhbGVudCB0bworICAgICAqIDxjb2RlPmNvbXBsZW1lbnQoTUlOX1ZBTFVFLCBNQVhfVkFMVUUpPC9jb2RlPi4KKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldCBjb21wbGVtZW50KCkgeworICAgICAgICBpZiAobGlzdFswXSA9PSBMT1cpIHsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobGlzdCwgMSwgbGlzdCwgMCwgbGVuLTEpOworICAgICAgICAgICAgLS1sZW47CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlbnN1cmVDYXBhY2l0eShsZW4rMSk7CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGxpc3QsIDAsIGxpc3QsIDEsIGxlbik7CisgICAgICAgICAgICBsaXN0WzBdID0gTE9XOworICAgICAgICAgICAgKytsZW47CisgICAgICAgIH0KKyAgICAgICAgcGF0ID0gbnVsbDsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbXBsZW1lbnQgdGhlIHNwZWNpZmllZCBzdHJpbmcgaW4gdGhpcyBzZXQuCisgICAgICogVGhlIHNldCB3aWxsIG5vdCBjb250YWluIHRoZSBzcGVjaWZpZWQgc3RyaW5nIG9uY2UgdGhlIGNhbGwKKyAgICAgKiByZXR1cm5zLgorCSAqIDxicj48Yj5XYXJuaW5nOiB5b3UgY2Fubm90IGFkZCBhbiBlbXB0eSBzdHJpbmcgKCIiKSB0byBhIFVuaWNvZGVTZXQuPC9iPgorICAgICAqIEBwYXJhbSBzIHRoZSBzdHJpbmcgdG8gY29tcGxlbWVudAorICAgICAqIEByZXR1cm4gdGhpcyBvYmplY3QsIGZvciBjaGFpbmluZworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBVbmljb2RlU2V0IGNvbXBsZW1lbnQoU3RyaW5nIHMpIHsKKyAgICAgICAgaW50IGNwID0gZ2V0U2luZ2xlQ1Aocyk7CisgICAgICAgIGlmIChjcCA8IDApIHsKKyAgICAgICAgCWlmIChzdHJpbmdzLmNvbnRhaW5zKHMpKSBzdHJpbmdzLnJlbW92ZShzKTsKKyAgICAgICAgCWVsc2Ugc3RyaW5ncy5hZGQocyk7CisgICAgICAgIAlwYXQgPSBudWxsOworCQl9IGVsc2UgeworCQkJY29tcGxlbWVudChjcCwgY3ApOworCQl9CisJCXJldHVybiB0aGlzOworICAgIH0gICAgCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhpcyBzZXQgY29udGFpbnMgdGhlIGdpdmVuIGNoYXJhY3Rlci4KKyAgICAgKiBAcGFyYW0gYyBjaGFyYWN0ZXIgdG8gYmUgY2hlY2tlZCBmb3IgY29udGFpbm1lbnQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHRlc3QgY29uZGl0aW9uIGlzIG1ldAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zKGludCBjKSB7CisgICAgICAgIGlmIChjIDwgTUlOX1ZBTFVFIHx8IGMgPiBNQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgY29kZSBwb2ludCBVKyIgKyBVdGlsaXR5LmhleChjLCA2KSk7CisgICAgICAgIH0KKworICAgICAgICAvKgorICAgICAgICAvLyBTZXQgaSB0byB0aGUgaW5kZXggb2YgdGhlIHN0YXJ0IGl0ZW0gZ3JlYXRlciB0aGFuIGNoCisgICAgICAgIC8vIFdlIGtub3cgd2Ugd2lsbCB0ZXJtaW5hdGUgd2l0aG91dCBsZW5ndGggdGVzdCEKKyAgICAgICAgaW50IGkgPSAtMTsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGlmIChjIDwgbGlzdFsrK2ldKSBicmVhazsKKyAgICAgICAgfQorICAgICAgICAqLworCisgICAgICAgIGludCBpID0gZmluZENvZGVQb2ludChjKTsKKworICAgICAgICByZXR1cm4gKChpICYgMSkgIT0gMCk7IC8vIHJldHVybiB0cnVlIGlmIG9kZAorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHNtYWxsZXN0IHZhbHVlIGkgc3VjaCB0aGF0IGMgPCBsaXN0W2ldLiAgQ2FsbGVyCisgICAgICogbXVzdCBlbnN1cmUgdGhhdCBjIGlzIGEgbGVnYWwgdmFsdWUgb3IgdGhpcyBtZXRob2Qgd2lsbCBlbnRlcgorICAgICAqIGFuIGluZmluaXRlIGxvb3AuICBUaGlzIG1ldGhvZCBwZXJmb3JtcyBhIGJpbmFyeSBzZWFyY2guCisgICAgICogQHBhcmFtIGMgYSBjaGFyYWN0ZXIgaW4gdGhlIHJhbmdlIE1JTl9WQUxVRS4uTUFYX1ZBTFVFCisgICAgICogaW5jbHVzaXZlCisgICAgICogQHJldHVybiB0aGUgc21hbGxlc3QgaW50ZWdlciBpIGluIHRoZSByYW5nZSAwLi5sZW4tMSwKKyAgICAgKiBpbmNsdXNpdmUsIHN1Y2ggdGhhdCBjIDwgbGlzdFtpXQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgaW50IGZpbmRDb2RlUG9pbnQoaW50IGMpIHsKKyAgICAgICAgLy8gUmV0dXJuIHRoZSBzbWFsbGVzdCBpIHN1Y2ggdGhhdCBjIDwgbGlzdFtpXS4gIEFzc3VtZQorICAgICAgICAvLyBsaXN0W2xlbiAtIDFdID09IEhJR0ggYW5kIHRoYXQgYyBpcyBsZWdhbCAoMC4uSElHSC0xKS4KKyAgICAgICAgaWYgKGMgPCBsaXN0WzBdKSByZXR1cm4gMDsKKyAgICAgICAgaW50IGxvID0gMDsKKyAgICAgICAgaW50IGhpID0gbGVuIC0gMTsKKyAgICAgICAgLy8gaW52YXJpYW50OiBjID49IGxpc3RbbG9dCisgICAgICAgIC8vIGludmFyaWFudDogYyA8IGxpc3RbaGldCisgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgIGludCBpID0gKGxvICsgaGkpIC8gMjsKKyAgICAgICAgICAgIGlmIChpID09IGxvKSByZXR1cm4gaGk7CisgICAgICAgICAgICBpZiAoYyA8IGxpc3RbaV0pIHsKKyAgICAgICAgICAgICAgICBoaSA9IGk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvID0gaTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhpcyBzZXQgY29udGFpbnMgZXZlcnkgY2hhcmFjdGVyCisgICAgICogb2YgdGhlIGdpdmVuIHJhbmdlLgorICAgICAqIEBwYXJhbSBzdGFydCBmaXJzdCBjaGFyYWN0ZXIsIGluY2x1c2l2ZSwgb2YgdGhlIHJhbmdlCisgICAgICogQHBhcmFtIGVuZCBsYXN0IGNoYXJhY3RlciwgaW5jbHVzaXZlLCBvZiB0aGUgcmFuZ2UKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHRlc3QgY29uZGl0aW9uIGlzIG1ldAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zKGludCBzdGFydCwgaW50IGVuZCkgeworICAgICAgICBpZiAoc3RhcnQgPCBNSU5fVkFMVUUgfHwgc3RhcnQgPiBNQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgY29kZSBwb2ludCBVKyIgKyBVdGlsaXR5LmhleChzdGFydCwgNikpOworICAgICAgICB9CisgICAgICAgIGlmIChlbmQgPCBNSU5fVkFMVUUgfHwgZW5kID4gTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGNvZGUgcG9pbnQgVSsiICsgVXRpbGl0eS5oZXgoZW5kLCA2KSk7CisgICAgICAgIH0KKyAgICAgICAgLy9pbnQgaSA9IC0xOworICAgICAgICAvL3doaWxlICh0cnVlKSB7CisgICAgICAgIC8vICAgIGlmIChzdGFydCA8IGxpc3RbKytpXSkgYnJlYWs7CisgICAgICAgIC8vfQorICAgICAgICBpbnQgaSA9IGZpbmRDb2RlUG9pbnQoc3RhcnQpOworICAgICAgICByZXR1cm4gKChpICYgMSkgIT0gMCAmJiBlbmQgPCBsaXN0W2ldKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIDx0dD50cnVlPC90dD4gaWYgdGhpcyBzZXQgY29udGFpbnMgdGhlIGdpdmVuCisgICAgICogbXVsdGljaGFyYWN0ZXIgc3RyaW5nLgorICAgICAqIEBwYXJhbSBzIHN0cmluZyB0byBiZSBjaGVja2VkIGZvciBjb250YWlubWVudAorICAgICAqIEByZXR1cm4gPHR0PnRydWU8L3R0PiBpZiB0aGlzIHNldCBjb250YWlucyB0aGUgc3BlY2lmaWVkIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBib29sZWFuIGNvbnRhaW5zKFN0cmluZyBzKSB7CisgICAgICAgIAorICAgICAgICBpbnQgY3AgPSBnZXRTaW5nbGVDUChzKTsKKyAgICAgICAgaWYgKGNwIDwgMCkgeworICAgICAgICAJcmV0dXJuIHN0cmluZ3MuY29udGFpbnMocyk7CisJCX0gZWxzZSB7CisJCQlyZXR1cm4gY29udGFpbnMoY3ApOworCQl9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIHNldCBjb250YWlucyBhbGwgdGhlIGNoYXJhY3RlcnMgYW5kIHN0cmluZ3MKKyAgICAgKiBvZiB0aGUgZ2l2ZW4gc2V0LgorICAgICAqIEBwYXJhbSBjIHNldCB0byBiZSBjaGVja2VkIGZvciBjb250YWlubWVudAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgdGVzdCBjb25kaXRpb24gaXMgbWV0CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gY29udGFpbnNBbGwoVW5pY29kZVNldCBjKSB7CisgICAgICAgIC8vIFRoZSBzcGVjaWZpZWQgc2V0IGlzIGEgc3Vic2V0IGlmIGFsbCBvZiBpdHMgcGFpcnMgYXJlIGNvbnRhaW5lZCBpbgorICAgICAgICAvLyB0aGlzIHNldC4gIEl0J3MgcG9zc2libGUgdG8gY29kZSB0aGlzIG1vcmUgZWZmaWNpZW50bHkgaW4gdGVybXMgb2YKKyAgICAgICAgLy8gZGlyZWN0IG1hbmlwdWxhdGlvbiBvZiB0aGUgaW52ZXJzaW9uIGxpc3RzIGlmIHRoZSBuZWVkIGFyaXNlcy4KKyAgICAgICAgaW50IG4gPSBjLmdldFJhbmdlQ291bnQoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPG47ICsraSkgeworICAgICAgICAgICAgaWYgKCFjb250YWlucyhjLmdldFJhbmdlU3RhcnQoaSksIGMuZ2V0UmFuZ2VFbmQoaSkpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICghc3RyaW5ncy5jb250YWluc0FsbChjLnN0cmluZ3MpKSByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhpcyBzZXQgY29udGFpbnMgYWxsIHRoZSBjaGFyYWN0ZXJzCisgICAgICogb2YgdGhlIGdpdmVuIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gcyBzdHJpbmcgY29udGFpbmluZyBjaGFyYWN0ZXJzIHRvIGJlIGNoZWNrZWQgZm9yIGNvbnRhaW5tZW50CisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB0ZXN0IGNvbmRpdGlvbiBpcyBtZXQKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBjb250YWluc0FsbChTdHJpbmcgcykgeworICAgICAgICBpbnQgY3A7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdChzLCBpKTsKKyAgICAgICAgICAgIGlmICghY29udGFpbnMoY3ApKSByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIHNldCBjb250YWlucyBub25lIG9mIHRoZSBjaGFyYWN0ZXJzCisgICAgICogb2YgdGhlIGdpdmVuIHJhbmdlLgorICAgICAqIEBwYXJhbSBzdGFydCBmaXJzdCBjaGFyYWN0ZXIsIGluY2x1c2l2ZSwgb2YgdGhlIHJhbmdlCisgICAgICogQHBhcmFtIGVuZCBsYXN0IGNoYXJhY3RlciwgaW5jbHVzaXZlLCBvZiB0aGUgcmFuZ2UKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHRlc3QgY29uZGl0aW9uIGlzIG1ldAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zTm9uZShpbnQgc3RhcnQsIGludCBlbmQpIHsKKyAgICAgICAgaWYgKHN0YXJ0IDwgTUlOX1ZBTFVFIHx8IHN0YXJ0ID4gTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGNvZGUgcG9pbnQgVSsiICsgVXRpbGl0eS5oZXgoc3RhcnQsIDYpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZW5kIDwgTUlOX1ZBTFVFIHx8IGVuZCA+IE1BWF9WQUxVRSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBjb2RlIHBvaW50IFUrIiArIFV0aWxpdHkuaGV4KGVuZCwgNikpOworICAgICAgICB9CisgICAgICAgIGludCBpID0gLTE7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpZiAoc3RhcnQgPCBsaXN0WysraV0pIGJyZWFrOworICAgICAgICB9CisgICAgICAgIHJldHVybiAoKGkgJiAxKSA9PSAwICYmIGVuZCA8IGxpc3RbaV0pOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIHNldCBjb250YWlucyBub25lIG9mIHRoZSBjaGFyYWN0ZXJzIGFuZCBzdHJpbmdzCisgICAgICogb2YgdGhlIGdpdmVuIHNldC4KKyAgICAgKiBAcGFyYW0gYyBzZXQgdG8gYmUgY2hlY2tlZCBmb3IgY29udGFpbm1lbnQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHRlc3QgY29uZGl0aW9uIGlzIG1ldAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zTm9uZShVbmljb2RlU2V0IGMpIHsKKyAgICAgICAgLy8gVGhlIHNwZWNpZmllZCBzZXQgaXMgYSBzdWJzZXQgaWYgYWxsIG9mIGl0cyBwYWlycyBhcmUgY29udGFpbmVkIGluCisgICAgICAgIC8vIHRoaXMgc2V0LiAgSXQncyBwb3NzaWJsZSB0byBjb2RlIHRoaXMgbW9yZSBlZmZpY2llbnRseSBpbiB0ZXJtcyBvZgorICAgICAgICAvLyBkaXJlY3QgbWFuaXB1bGF0aW9uIG9mIHRoZSBpbnZlcnNpb24gbGlzdHMgaWYgdGhlIG5lZWQgYXJpc2VzLgorICAgICAgICBpbnQgbiA9IGMuZ2V0UmFuZ2VDb3VudCgpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8bjsgKytpKSB7CisgICAgICAgICAgICBpZiAoIWNvbnRhaW5zTm9uZShjLmdldFJhbmdlU3RhcnQoaSksIGMuZ2V0UmFuZ2VFbmQoaSkpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICghaGFzUmVsYXRpb24oc3RyaW5ncywgRElTSk9JTlQsIGMuc3RyaW5ncykpIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIHNldCBjb250YWlucyBub25lIG9mIHRoZSBjaGFyYWN0ZXJzCisgICAgICogb2YgdGhlIGdpdmVuIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gcyBzdHJpbmcgY29udGFpbmluZyBjaGFyYWN0ZXJzIHRvIGJlIGNoZWNrZWQgZm9yIGNvbnRhaW5tZW50CisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB0ZXN0IGNvbmRpdGlvbiBpcyBtZXQKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBjb250YWluc05vbmUoU3RyaW5nIHMpIHsKKyAgICAgICAgaW50IGNwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgY3AgPSBVVEYxNi5jaGFyQXQocywgaSk7CisgICAgICAgICAgICBpZiAoY29udGFpbnMoY3ApKSByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhpcyBzZXQgY29udGFpbnMgb25lIG9yIG1vcmUgb2YgdGhlIGNoYXJhY3RlcnMKKyAgICAgKiBpbiB0aGUgZ2l2ZW4gcmFuZ2UuCisgICAgICogQHBhcmFtIHN0YXJ0IGZpcnN0IGNoYXJhY3RlciwgaW5jbHVzaXZlLCBvZiB0aGUgcmFuZ2UKKyAgICAgKiBAcGFyYW0gZW5kIGxhc3QgY2hhcmFjdGVyLCBpbmNsdXNpdmUsIG9mIHRoZSByYW5nZQorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgY29uZGl0aW9uIGlzIG1ldAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBib29sZWFuIGNvbnRhaW5zU29tZShpbnQgc3RhcnQsIGludCBlbmQpIHsKKyAgICAJcmV0dXJuICFjb250YWluc05vbmUoc3RhcnQsIGVuZCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhpcyBzZXQgY29udGFpbnMgb25lIG9yIG1vcmUgb2YgdGhlIGNoYXJhY3RlcnMKKyAgICAgKiBhbmQgc3RyaW5ncyBvZiB0aGUgZ2l2ZW4gc2V0LgorICAgICAqIEBwYXJhbSBjIHNldCB0byBiZSBjaGVja2VkIGZvciBjb250YWlubWVudAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgY29uZGl0aW9uIGlzIG1ldAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBib29sZWFuIGNvbnRhaW5zU29tZShVbmljb2RlU2V0IHMpIHsKKyAgICAJcmV0dXJuICFjb250YWluc05vbmUocyk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhpcyBzZXQgY29udGFpbnMgb25lIG9yIG1vcmUgb2YgdGhlIGNoYXJhY3RlcnMKKyAgICAgKiBvZiB0aGUgZ2l2ZW4gc3RyaW5nLgorICAgICAqIEBwYXJhbSBzIHN0cmluZyBjb250YWluaW5nIGNoYXJhY3RlcnMgdG8gYmUgY2hlY2tlZCBmb3IgY29udGFpbm1lbnQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNvbmRpdGlvbiBpcyBtZXQKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiBjb250YWluc1NvbWUoU3RyaW5nIHMpIHsKKyAgICAJcmV0dXJuICFjb250YWluc05vbmUocyk7CisgICAgfQorICAgICAgICAKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQWRkcyBhbGwgb2YgdGhlIGVsZW1lbnRzIGluIHRoZSBzcGVjaWZpZWQgc2V0IHRvIHRoaXMgc2V0IGlmCisgICAgICogdGhleSdyZSBub3QgYWxyZWFkeSBwcmVzZW50LiAgVGhpcyBvcGVyYXRpb24gZWZmZWN0aXZlbHkKKyAgICAgKiBtb2RpZmllcyB0aGlzIHNldCBzbyB0aGF0IGl0cyB2YWx1ZSBpcyB0aGUgPGk+dW5pb248L2k+IG9mIHRoZSB0d28KKyAgICAgKiBzZXRzLiAgVGhlIGJlaGF2aW9yIG9mIHRoaXMgb3BlcmF0aW9uIGlzIHVuc3BlY2lmaWVkIGlmIHRoZSBzcGVjaWZpZWQKKyAgICAgKiBjb2xsZWN0aW9uIGlzIG1vZGlmaWVkIHdoaWxlIHRoZSBvcGVyYXRpb24gaXMgaW4gcHJvZ3Jlc3MuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYyBzZXQgd2hvc2UgZWxlbWVudHMgYXJlIHRvIGJlIGFkZGVkIHRvIHRoaXMgc2V0LgorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlU2V0IGFkZEFsbChVbmljb2RlU2V0IGMpIHsKKyAgICAgICAgYWRkKGMubGlzdCwgYy5sZW4sIDApOworICAgICAgICBzdHJpbmdzLmFkZEFsbChjLnN0cmluZ3MpOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXRhaW5zIG9ubHkgdGhlIGVsZW1lbnRzIGluIHRoaXMgc2V0IHRoYXQgYXJlIGNvbnRhaW5lZCBpbiB0aGUKKyAgICAgKiBzcGVjaWZpZWQgc2V0LiAgSW4gb3RoZXIgd29yZHMsIHJlbW92ZXMgZnJvbSB0aGlzIHNldCBhbGwgb2YKKyAgICAgKiBpdHMgZWxlbWVudHMgdGhhdCBhcmUgbm90IGNvbnRhaW5lZCBpbiB0aGUgc3BlY2lmaWVkIHNldC4gIFRoaXMKKyAgICAgKiBvcGVyYXRpb24gZWZmZWN0aXZlbHkgbW9kaWZpZXMgdGhpcyBzZXQgc28gdGhhdCBpdHMgdmFsdWUgaXMKKyAgICAgKiB0aGUgPGk+aW50ZXJzZWN0aW9uPC9pPiBvZiB0aGUgdHdvIHNldHMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYyBzZXQgdGhhdCBkZWZpbmVzIHdoaWNoIGVsZW1lbnRzIHRoaXMgc2V0IHdpbGwgcmV0YWluLgorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlU2V0IHJldGFpbkFsbChVbmljb2RlU2V0IGMpIHsKKyAgICAgICAgcmV0YWluKGMubGlzdCwgYy5sZW4sIDApOworICAgICAgICBzdHJpbmdzLnJldGFpbkFsbChjLnN0cmluZ3MpOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmVzIGZyb20gdGhpcyBzZXQgYWxsIG9mIGl0cyBlbGVtZW50cyB0aGF0IGFyZSBjb250YWluZWQgaW4gdGhlCisgICAgICogc3BlY2lmaWVkIHNldC4gIFRoaXMgb3BlcmF0aW9uIGVmZmVjdGl2ZWx5IG1vZGlmaWVzIHRoaXMKKyAgICAgKiBzZXQgc28gdGhhdCBpdHMgdmFsdWUgaXMgdGhlIDxpPmFzeW1tZXRyaWMgc2V0IGRpZmZlcmVuY2U8L2k+IG9mCisgICAgICogdGhlIHR3byBzZXRzLgorICAgICAqCisgICAgICogQHBhcmFtIGMgc2V0IHRoYXQgZGVmaW5lcyB3aGljaCBlbGVtZW50cyB3aWxsIGJlIHJlbW92ZWQgZnJvbQorICAgICAqICAgICAgICAgIHRoaXMgc2V0LgorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlU2V0IHJlbW92ZUFsbChVbmljb2RlU2V0IGMpIHsKKyAgICAgICAgcmV0YWluKGMubGlzdCwgYy5sZW4sIDIpOworICAgICAgICBzdHJpbmdzLnJlbW92ZUFsbChjLnN0cmluZ3MpOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wbGVtZW50cyBpbiB0aGlzIHNldCBhbGwgZWxlbWVudHMgY29udGFpbmVkIGluIHRoZSBzcGVjaWZpZWQKKyAgICAgKiBzZXQuICBBbnkgY2hhcmFjdGVyIGluIHRoZSBvdGhlciBzZXQgd2lsbCBiZSByZW1vdmVkIGlmIGl0IGlzCisgICAgICogaW4gdGhpcyBzZXQsIG9yIHdpbGwgYmUgYWRkZWQgaWYgaXQgaXMgbm90IGluIHRoaXMgc2V0LgorICAgICAqCisgICAgICogQHBhcmFtIGMgc2V0IHRoYXQgZGVmaW5lcyB3aGljaCBlbGVtZW50cyB3aWxsIGJlIGNvbXBsZW1lbnRlZCBmcm9tCisgICAgICogICAgICAgICAgdGhpcyBzZXQuCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgY29tcGxlbWVudEFsbChVbmljb2RlU2V0IGMpIHsKKyAgICAgICAgeG9yKGMubGlzdCwgYy5sZW4sIDApOworICAgICAgICBkb09wZXJhdGlvbihzdHJpbmdzLCBDT01QTEVNRU5UQUxMLCBjLnN0cmluZ3MpOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmVzIGFsbCBvZiB0aGUgZWxlbWVudHMgZnJvbSB0aGlzIHNldC4gIFRoaXMgc2V0IHdpbGwgYmUKKyAgICAgKiBlbXB0eSBhZnRlciB0aGlzIGNhbGwgcmV0dXJucy4KKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldCBjbGVhcigpIHsKKyAgICAgICAgbGlzdFswXSA9IEhJR0g7CisgICAgICAgIGxlbiA9IDE7CisgICAgICAgIHBhdCA9IG51bGw7CisgICAgICAgIHN0cmluZ3MuY2xlYXIoKTsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogSXRlcmF0aW9uIG1ldGhvZCB0aGF0IHJldHVybnMgdGhlIG51bWJlciBvZiByYW5nZXMgY29udGFpbmVkIGluCisgICAgICogdGhpcyBzZXQuCisgICAgICogQHNlZSAjZ2V0UmFuZ2VTdGFydAorICAgICAqIEBzZWUgI2dldFJhbmdlRW5kCisgICAgICovCisgICAgcHVibGljIGludCBnZXRSYW5nZUNvdW50KCkgeworICAgICAgICByZXR1cm4gbGVuLzI7CisgICAgfQorCisgICAgLyoqCisgICAgICogSXRlcmF0aW9uIG1ldGhvZCB0aGF0IHJldHVybnMgdGhlIGZpcnN0IGNoYXJhY3RlciBpbiB0aGUKKyAgICAgKiBzcGVjaWZpZWQgcmFuZ2Ugb2YgdGhpcyBzZXQuCisgICAgICogQGV4Y2VwdGlvbiBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaWYgaW5kZXggaXMgb3V0c2lkZQorICAgICAqIHRoZSByYW5nZSA8Y29kZT4wLi5nZXRSYW5nZUNvdW50KCktMTwvY29kZT4KKyAgICAgKiBAc2VlICNnZXRSYW5nZUNvdW50CisgICAgICogQHNlZSAjZ2V0UmFuZ2VFbmQKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFJhbmdlU3RhcnQoaW50IGluZGV4KSB7CisgICAgICAgIHJldHVybiBsaXN0W2luZGV4KjJdOworICAgIH0KKworICAgIC8qKgorICAgICAqIEl0ZXJhdGlvbiBtZXRob2QgdGhhdCByZXR1cm5zIHRoZSBsYXN0IGNoYXJhY3RlciBpbiB0aGUKKyAgICAgKiBzcGVjaWZpZWQgcmFuZ2Ugb2YgdGhpcyBzZXQuCisgICAgICogQGV4Y2VwdGlvbiBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaWYgaW5kZXggaXMgb3V0c2lkZQorICAgICAqIHRoZSByYW5nZSA8Y29kZT4wLi5nZXRSYW5nZUNvdW50KCktMTwvY29kZT4KKyAgICAgKiBAc2VlICNnZXRSYW5nZVN0YXJ0CisgICAgICogQHNlZSAjZ2V0UmFuZ2VFbmQKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFJhbmdlRW5kKGludCBpbmRleCkgeworICAgICAgICByZXR1cm4gKGxpc3RbaW5kZXgqMiArIDFdIC0gMSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVhbGxvY2F0ZSB0aGlzIG9iamVjdHMgaW50ZXJuYWwgc3RydWN0dXJlcyB0byB0YWtlIHVwIHRoZSBsZWFzdAorICAgICAqIHBvc3NpYmxlIHNwYWNlLCB3aXRob3V0IGNoYW5naW5nIHRoaXMgb2JqZWN0J3MgdmFsdWUuCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgY29tcGFjdCgpIHsKKyAgICAgICAgaWYgKGxlbiAhPSBsaXN0Lmxlbmd0aCkgeworICAgICAgICAgICAgaW50W10gdGVtcCA9IG5ldyBpbnRbbGVuXTsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobGlzdCwgMCwgdGVtcCwgMCwgbGVuKTsKKyAgICAgICAgICAgIGxpc3QgPSB0ZW1wOworICAgICAgICB9CisgICAgICAgIHJhbmdlTGlzdCA9IG51bGw7CisgICAgICAgIGJ1ZmZlciA9IG51bGw7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhcmVzIHRoZSBzcGVjaWZpZWQgb2JqZWN0IHdpdGggdGhpcyBzZXQgZm9yIGVxdWFsaXR5LiAgUmV0dXJucworICAgICAqIDx0dD50cnVlPC90dD4gaWYgdGhlIHNwZWNpZmllZCBvYmplY3QgaXMgYWxzbyBhIHNldCwgdGhlIHR3byBzZXRzCisgICAgICogaGF2ZSB0aGUgc2FtZSBzaXplLCBhbmQgZXZlcnkgbWVtYmVyIG9mIHRoZSBzcGVjaWZpZWQgc2V0IGlzCisgICAgICogY29udGFpbmVkIGluIHRoaXMgc2V0IChvciBlcXVpdmFsZW50bHksIGV2ZXJ5IG1lbWJlciBvZiB0aGlzIHNldCBpcworICAgICAqIGNvbnRhaW5lZCBpbiB0aGUgc3BlY2lmaWVkIHNldCkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbyBPYmplY3QgdG8gYmUgY29tcGFyZWQgZm9yIGVxdWFsaXR5IHdpdGggdGhpcyBzZXQuCisgICAgICogQHJldHVybiA8dHQ+dHJ1ZTwvdHQ+IGlmIHRoZSBzcGVjaWZpZWQgT2JqZWN0IGlzIGVxdWFsIHRvIHRoaXMgc2V0LgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgbykgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgVW5pY29kZVNldCB0aGF0ID0gKFVuaWNvZGVTZXQpIG87CisgICAgICAgICAgICBpZiAobGVuICE9IHRoYXQubGVuKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbjsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKGxpc3RbaV0gIT0gdGhhdC5saXN0W2ldKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIXN0cmluZ3MuZXF1YWxzKHRoYXQuc3RyaW5ncykpIHJldHVybiBmYWxzZTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBoYXNoIGNvZGUgdmFsdWUgZm9yIHRoaXMgc2V0LgorICAgICAqCisgICAgICogQHJldHVybiB0aGUgaGFzaCBjb2RlIHZhbHVlIGZvciB0aGlzIHNldC4KKyAgICAgKiBAc2VlIE9iamVjdCNoYXNoQ29kZSgpCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IGxlbjsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW47ICsraSkgeworICAgICAgICAgICAgcmVzdWx0ICo9IDEwMDAwMDM7CisgICAgICAgICAgICByZXN1bHQgKz0gbGlzdFtpXTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHByb2dyYW1tZXItcmVhZGFibGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0LgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIHJldHVybiBnZXRDbGFzcygpLmdldE5hbWUoKSArICcoJyArIHRvUGF0dGVybihmYWxzZSkgKyAnKSc7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gSW1wbGVtZW50YXRpb246IFBhdHRlcm4gcGFyc2luZworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUGFyc2VzIHRoZSBnaXZlbiBwYXR0ZXJuLCBzdGFydGluZyBhdCB0aGUgZ2l2ZW4gcG9zaXRpb24uICBUaGUgY2hhcmFjdGVyCisgICAgICogYXQgcGF0dGVybi5jaGFyQXQocG9zLmdldEluZGV4KCkpIG11c3QgYmUgJ1snLCBvciB0aGUgcGFyc2UgZmFpbHMuCisgICAgICogUGFyc2luZyBjb250aW51ZXMgdW50aWwgdGhlIGNvcnJlc3BvbmRpbmcgY2xvc2luZyAnXScuICBJZiBhIHN5bnRheCBlcnJvcgorICAgICAqIGlzIGVuY291bnRlcmVkIGJldHdlZW4gdGhlIG9wZW5pbmcgYW5kIGNsb3NpbmcgYnJhY2UsIHRoZSBwYXJzZSBmYWlscy4KKyAgICAgKiBVcG9uIHJldHVybiBmcm9tIGEgc3VjY2Vzc2Z1bCBwYXJzZSwgdGhlIFBhcnNlUG9zaXRpb24gaXMgdXBkYXRlZCB0bworICAgICAqIHBvaW50IHRvIHRoZSBjaGFyYWN0ZXIgZm9sbG93aW5nIHRoZSBjbG9zaW5nICddJywgYW5kIGFuIGludmVyc2lvbgorICAgICAqIGxpc3QgZm9yIHRoZSBwYXJzZWQgcGF0dGVybiBpcyByZXR1cm5lZC4gIFRoaXMgbWV0aG9kCisgICAgICogY2FsbHMgaXRzZWxmIHJlY3Vyc2l2ZWx5IHRvIHBhcnNlIGVtYmVkZGVkIHN1YnBhdHRlcm5zLgorICAgICAqCisgICAgICogQHBhcmFtIHBhdHRlcm4gdGhlIHN0cmluZyBjb250YWluaW5nIHRoZSBwYXR0ZXJuIHRvIGJlIHBhcnNlZC4gIFRoZQorICAgICAqIHBvcnRpb24gb2YgdGhlIHN0cmluZyBmcm9tIHBvcy5nZXRJbmRleCgpLCB3aGljaCBtdXN0IGJlIGEgJ1snLCB0byB0aGUKKyAgICAgKiBjb3JyZXNwb25kaW5nIGNsb3NpbmcgJ10nLCBpcyBwYXJzZWQuCisgICAgICogQHBhcmFtIHBvcyB1cG9uIGVudHJ5LCB0aGUgcG9zaXRpb24gYXQgd2hpY2ggdG8gYmVpbmcgcGFyc2luZy4gIFRoZQorICAgICAqIGNoYXJhY3RlciBhdCBwYXR0ZXJuLmNoYXJBdChwb3MuZ2V0SW5kZXgoKSkgbXVzdCBiZSBhICdbJy4gIFVwb24gcmV0dXJuCisgICAgICogZnJvbSBhIHN1Y2Nlc3NmdWwgcGFyc2UsIHBvcy5nZXRJbmRleCgpIGlzIGVpdGhlciB0aGUgY2hhcmFjdGVyIGFmdGVyIHRoZQorICAgICAqIGNsb3NpbmcgJ10nIG9mIHRoZSBwYXJzZWQgcGF0dGVybiwgb3IgcGF0dGVybi5sZW5ndGgoKSBpZiB0aGUgY2xvc2luZyAnXScKKyAgICAgKiBpcyB0aGUgbGFzdCBjaGFyYWN0ZXIgb2YgdGhlIHBhdHRlcm4gc3RyaW5nLgorICAgICAqIEByZXR1cm4gYW4gaW52ZXJzaW9uIGxpc3QgZm9yIHRoZSBwYXJzZWQgc3Vic3RyaW5nCisgICAgICogb2YgPGNvZGU+cGF0dGVybjwvY29kZT4KKyAgICAgKiBAZXhjZXB0aW9uIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIHBhcnNlIGZhaWxzLgorICAgICAqLworICAgIHZvaWQgYXBwbHlQYXR0ZXJuKFN0cmluZyBwYXR0ZXJuLAorICAgICAgICAgICAgICAgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zLAorICAgICAgICAgICAgICAgICAgICAgIFN5bWJvbFRhYmxlIHN5bWJvbHMsCisgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpZ25vcmVXaGl0ZXNwYWNlKSB7CisKKyAgICAgICAgLy8gTmVlZCB0byBidWlsZCB0aGUgcGF0dGVybiBpbiBhIHRlbXBvcmFyeSBzdHJpbmcgYmVjYXVzZQorICAgICAgICAvLyBfYXBwbHlQYXR0ZXJuIGNhbGxzIGFkZCgpIGV0Yy4sIHdoaWNoIHNldCBwYXQgdG8gZW1wdHkuCisgICAgICAgIFN0cmluZ0J1ZmZlciByZWJ1aWx0UGF0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBfYXBwbHlQYXR0ZXJuKHBhdHRlcm4sIHBvcywgc3ltYm9scywgcmVidWlsdFBhdCwgaWdub3JlV2hpdGVzcGFjZSk7CisgICAgICAgIHBhdCA9IHJlYnVpbHRQYXQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICB2b2lkIF9hcHBseVBhdHRlcm4oU3RyaW5nIHBhdHRlcm4sIFBhcnNlUG9zaXRpb24gcG9zLAorICAgICAgICAgICAgICAgICAgICAgICBTeW1ib2xUYWJsZSBzeW1ib2xzLCBTdHJpbmdCdWZmZXIgcmVidWlsdFBhdCwKKyAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpZ25vcmVXaGl0ZXNwYWNlKSB7CisKKyAgICAgICAgLy8gSWYgdGhlIHBhdHRlcm4gY29udGFpbnMgYW55IG9mIHRoZSBmb2xsb3dpbmcsIHdlIHNhdmUgYQorICAgICAgICAvLyByZWJ1aWx0ICh2YXJpYWJsZS1zdWJzdGl0dXRlZCkgY29weSBvZiB0aGUgc291cmNlIHBhdHRlcm46CisgICAgICAgIC8vIC0gYSBjYXRlZ29yeQorICAgICAgICAvLyAtIGFuIGludGVyc2VjdGlvbiBvciBzdWJ0cmFjdGlvbiBvcGVyYXRvcgorICAgICAgICAvLyAtIGFuIGFuY2hvciAodHJhaWxpbmcgJyQnLCBpbmRpY2F0aW5nIFJCVCBldGhlcikKKyAgICAgICAgYm9vbGVhbiByZWJ1aWxkUGF0dGVybiA9IGZhbHNlOworICAgICAgICBTdHJpbmdCdWZmZXIgbmV3UGF0ID0gbmV3IFN0cmluZ0J1ZmZlcigiWyIpOworICAgICAgICBpbnQgbmVzdGVkUGF0U3RhcnQgPSAtMTsgLy8gc2VlIGJlbG93IGZvciB1c2FnZQorICAgICAgICBib29sZWFuIG5lc3RlZFBhdERvbmUgPSBmYWxzZTsgLy8gc2VlIGJlbG93IGZvciB1c2FnZQorICAgICAgICBTdHJpbmdCdWZmZXIgbXVsdGlDaGFyQnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAKKworICAgICAgICBib29sZWFuIGludmVydCA9IGZhbHNlOworICAgICAgICBjbGVhcigpOworCisgICAgICAgIGZpbmFsIGludCBOT05FID0gLTE7CisgICAgICAgIGludCBsYXN0Q2hhciA9IE5PTkU7IC8vIFRoaXMgaXMgZWl0aGVyIGEgY2hhciAoMC4uMTBGRkZGKSBvciAtMQorICAgICAgICBib29sZWFuIGlzTGFzdExpdGVyYWwgPSBmYWxzZTsgLy8gVFJVRSBpZiBsYXN0Q2hhciB3YXMgYSBsaXRlcmFsCisgICAgICAgIGNoYXIgbGFzdE9wID0gMDsKKworICAgICAgICAvKiBUaGlzIGxvb3AgaXRlcmF0ZXMgb3ZlciB0aGUgY2hhcmFjdGVycyBpbiB0aGUgcGF0dGVybi4gIFdlIHN0YXJ0IGF0CisgICAgICAgICAqIHRoZSBwb3NpdGlvbiBzcGVjaWZpZWQgYnkgcG9zLiAgV2UgZXhpdCB0aGUgbG9vcCB3aGVuIGVpdGhlciBhCisgICAgICAgICAqIG1hdGNoaW5nIGNsb3NpbmcgJ10nIGlzIHNlZW4sIG9yIHdlIHJlYWQgYWxsIGNoYXJhY3RlcnMgb2YgdGhlCisgICAgICAgICAqIHBhdHRlcm4uICBJbiB0aGUgbGF0dGVyIGNhc2UgYW4gZXJyb3Igd2lsbCBiZSB0aHJvd24uCisgICAgICAgICAqLworCisgICAgICAgIC8qIFBhdHRlcm4gc3ludGF4OgorICAgICAgICAgKiAgcGF0IDo9ICdbJyAnXic/IGVsZW0qICddJworICAgICAgICAgKiAgZWxlbSA6PSBhIHwgYSAnLScgYSB8IHNldCB8IHNldCBvcCBzZXQKKyAgICAgICAgICogIHNldCA6PSBwYXQgfCAoYSBzZXQgdmFyaWFibGUpCisgICAgICAgICAqICBvcCA6PSAnJicgfCAnLScKKyAgICAgICAgICogIGEgOj0gKGEgY2hhcmFjdGVyLCBwb3NzaWJseSBkZWZpbmVkIGJ5IGEgdmFyKQorICAgICAgICAgKi8KKworICAgICAgICAvLyBtb2RlIDA6IE5vIGNoYXJzIHBhcnNlZCB5ZXQ7IG5leHQgbXVzdCBiZSAnWycKKyAgICAgICAgLy8gbW9kZSAxOiAnWycgc2VlbjsgaWYgbmV4dCBpcyAnXicgb3IgJzonIHRoZW4gc3BlY2lhbAorICAgICAgICAvLyBtb2RlIDI6ICdbJyAnXic/IHNlZW47IHBhcnNlIHBhdHRlcm4gYW5kIGNsb3NlIHdpdGggJ10nCisgICAgICAgIC8vIG1vZGUgMzogJ1s6JyBzZWVuOyBwYXJzZSBjYXRlZ29yeSBhbmQgY2xvc2Ugd2l0aCAnOl0nCisgICAgICAgIC8vIG1vZGUgNDogJ10nIHNlZW47IHBhcnNlIGNvbXBsZXRlCisgICAgICAgIC8vIG1vZGUgNTogVG9wLWxldmVsIHByb3BlcnR5IHBhdHRlcm4gc2VlbgorICAgICAgICBpbnQgbW9kZSA9IDA7CisgICAgICAgIGludCBzdGFydCA9IHBvcy5nZXRJbmRleCgpOworICAgICAgICBpbnQgaSA9IHN0YXJ0OworICAgICAgICBpbnQgbGltaXQgPSBwYXR0ZXJuLmxlbmd0aCgpOworICAgICAgICAvKiBJbiB0aGUgY2FzZSBvZiBhbiBlbWJlZGRlZCBTeW1ib2xUYWJsZSB2YXJpYWJsZSwgd2UgbG9vayBpdCB1cCBhbmQKKyAgICAgICAgICogdGhlbiB0YWtlIGNoYXJhY3RlcnMgZnJvbSB0aGUgcmVzdWx0YW50IGNoYXJbXSBhcnJheS4gIFRoZXNlIGNoYXJzCisgICAgICAgICAqIGFyZSBzdWJqZWN0ZWQgdG8gYW4gZXh0cmEgbGV2ZWwgb2YgbG9va3VwIGluIHRoZSBTeW1ib2xUYWJsZSBpbiBjYXNlCisgICAgICAgICAqIHRoZXkgYXJlIHN0YW5kLWlucyBmb3IgYSBuZXN0ZWQgVW5pY29kZVNldC4gICovCisgICAgICAgIGNoYXJbXSB2YXJWYWx1ZUJ1ZmZlciA9IG51bGw7CisgICAgICAgIGludCBpdmFyVmFsdWVCdWZmZXIgPSAwOworICAgICAgICBpbnQgYW5jaG9yID0gMDsKKyAgICAgICAgaW50IGM7CisgICAgICAgIHdoaWxlIChpPGxpbWl0KSB7CisgICAgICAgICAgICAvKiBJZiB0aGUgbmV4dCBlbGVtZW50IGlzIGEgc2luZ2xlIGNoYXJhY3RlciwgYyB3aWxsIGJlIHNldCB0byBpdCwKKyAgICAgICAgICAgICAqIGFuZCBuZXN0ZWRTZXQgd2lsbCBiZSBudWxsLiAgSW4gdGhpcyBjYXNlIGlzTGl0ZXJhbCBpbmRpY2F0ZXMKKyAgICAgICAgICAgICAqIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBzaG91bGQgYXNzdW1lIHNwZWNpYWwgbWVhbmluZyBpZiBpdCBoYXMKKyAgICAgICAgICAgICAqIG9uZS4gIElmIHRoZSBuZXh0IGVsZW1lbnQgaXMgYSBuZXN0ZWQgc2V0LCBlaXRoZXIgdmlhIGEgdmFyaWFibGUKKyAgICAgICAgICAgICAqIHJlZmVyZW5jZSwgb3IgdmlhIGFuIGVtYmVkZGVkICJbLi5dIiAgb3IgIls6Li46XSIgcGF0dGVybiwgdGhlbgorICAgICAgICAgICAgICogbmVzdGVkU2V0IHdpbGwgYmUgc2V0IHRvIHRoZSBwYWlycyBsaXN0IGZvciB0aGUgbmVzdGVkIHNldCwgYW5kCisgICAgICAgICAgICAgKiBjJ3MgdmFsdWUgc2hvdWxkIGJlIGlnbm9yZWQuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIFVuaWNvZGVTZXQgbmVzdGVkU2V0ID0gbnVsbDsKKyAgICAgICAgICAgIGJvb2xlYW4gaXNMaXRlcmFsID0gZmFsc2U7CisgICAgICAgICAgICBpZiAodmFyVmFsdWVCdWZmZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGlmIChpdmFyVmFsdWVCdWZmZXIgPCB2YXJWYWx1ZUJ1ZmZlci5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgYyA9IFVURjE2LmNoYXJBdCh2YXJWYWx1ZUJ1ZmZlciwgMCwgdmFyVmFsdWVCdWZmZXIubGVuZ3RoLCBpdmFyVmFsdWVCdWZmZXIpOworICAgICAgICAgICAgICAgICAgICBpdmFyVmFsdWVCdWZmZXIgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgICAgICAgICBVbmljb2RlTWF0Y2hlciBtID0gc3ltYm9scy5sb29rdXBNYXRjaGVyKGMpOyAvLyBtYXkgYmUgTlVMTAorICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgbmVzdGVkU2V0ID0gKFVuaWNvZGVTZXQpIG07CisgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJTeW50YXggZXJyb3IiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBuZXN0ZWRQYXREb25lID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdmFyVmFsdWVCdWZmZXIgPSBudWxsOworICAgICAgICAgICAgICAgICAgICBjID0gVVRGMTYuY2hhckF0KHBhdHRlcm4sIGkpOworICAgICAgICAgICAgICAgICAgICBpICs9IFVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGMgPSBVVEYxNi5jaGFyQXQocGF0dGVybiwgaSk7CisgICAgICAgICAgICAgICAgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChpZ25vcmVXaGl0ZXNwYWNlICYmIFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGMpKSB7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIEtlZXAgdHJhY2sgb2YgdGhlIGNvdW50IG9mIGNoYXJhY3RlcnMgYWZ0ZXIgYW4gYWxsZWdlZCBhbmNob3IKKyAgICAgICAgICAgIGlmIChhbmNob3IgPiAwKSB7CisgICAgICAgICAgICAgICAgKythbmNob3I7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIFBhcnNlIHRoZSBvcGVuaW5nICdbJyBhbmQgb3B0aW9uYWwgZm9sbG93aW5nICdeJworICAgICAgICAgICAgc3dpdGNoIChtb2RlKSB7CisgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgaWYgKFVuaWNvZGVQcm9wZXJ0eVNldC5yZXNlbWJsZXNQYXR0ZXJuKHBhdHRlcm4sIGktMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgbW9kZSA9IDM7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAvLyBGYWxsIHRocm91Z2gKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGMgPT0gJ1snKSB7CisgICAgICAgICAgICAgICAgICAgIG1vZGUgPSAxOyAvLyBOZXh0IGxvb2sgZm9yICdeJworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJNaXNzaW5nIG9wZW5pbmcgJ1snIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgIG1vZGUgPSAyOworICAgICAgICAgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgICAgIGNhc2UgJ14nOgorICAgICAgICAgICAgICAgICAgICBpbnZlcnQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBuZXdQYXQuYXBwZW5kKChjaGFyKSBjKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7IC8vIEJhY2sgdG8gdG9wIHRvIGZldGNoIG5leHQgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgY2FzZSAnLSc6CisgICAgICAgICAgICAgICAgICAgIGlzTGl0ZXJhbCA9IHRydWU7IC8vIFRyZWF0IGxlYWRpbmcgJy0nIGFzIGEgbGl0ZXJhbAorICAgICAgICAgICAgICAgICAgICBicmVhazsgLy8gRmFsbCB0aHJvdWdoCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIGVsc2UgZmFsbCB0aHJvdWdoIGFuZCBwYXJzZSB0aGlzIGNoYXJhY3RlciBub3JtYWxseQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBBZnRlciBvcGVuaW5nIG1hdHRlciBpcyBwYXJzZWQgKCJbIiwgIlteIiwgb3IgIls6IiksIHRoZSBtb2RlCisgICAgICAgICAgICAvLyB3aWxsIGJlIDIgaWYgd2Ugd2FudCBhIGNsb3NpbmcgJ10nLCBvciAzIGlmIHdlIHNob3VsZCBwYXJzZSBhCisgICAgICAgICAgICAvLyBjYXRlZ29yeSBhbmQgY2xvc2Ugd2l0aCAiOl0iLgorCisgICAgICAgICAgICAvLyBPbmx5IHByb2Nlc3MgZXNjYXBlcywgdmFyaWFibGUgcmVmZXJlbmNlcywgYW5kIG5lc3RlZCBzZXRzCisgICAgICAgICAgICAvLyBpZiB3ZSBhcmUgX25vdF8gcmV0cmlldmluZyBjaGFyYWN0ZXJzIGZyb20gdGhlIHZhcmlhYmxlCisgICAgICAgICAgICAvLyBidWZmZXIuICBDaGFyYWN0ZXJzIGluIHRoZSB2YXJpYWJsZSBidWZmZXIgaGF2ZSBhbHJlYWR5CisgICAgICAgICAgICAvLyBiZW5uIHRocm91Z2ggZXNjYXBlIGFuZCB2YXJpYWJsZSByZWZlcmVuY2UgcHJvY2Vzc2luZy4KKyAgICAgICAgICAgIGlmICh2YXJWYWx1ZUJ1ZmZlciA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgLyoqCisgICAgICAgICAgICAgICAgICogSGFuZGxlIHByb3BlcnR5IHNldCBwYXR0ZXJucy4KKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBpZiAoVW5pY29kZVByb3BlcnR5U2V0LnJlc2VtYmxlc1BhdHRlcm4ocGF0dGVybiwgaS0xKSkgeworICAgICAgICAgICAgICAgICAgICBQYXJzZVBvc2l0aW9uIHBwID0gbmV3IFBhcnNlUG9zaXRpb24oaS0xKTsKKyAgICAgICAgICAgICAgICAgICAgbmVzdGVkU2V0ID0gVW5pY29kZVByb3BlcnR5U2V0LmNyZWF0ZUZyb21QYXR0ZXJuKHBhdHRlcm4sIHBwKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5lc3RlZFNldCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBhc3NlcnQocHAuZ2V0SW5kZXgoKSA9PSBpLTEpOworICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBwcm9wZXJ0eSBwYXR0ZXJuICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuLnN1YnN0cmluZyhpLTEpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBuZXN0ZWRQYXRTdGFydCA9IG5ld1BhdC5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgbmVzdGVkUGF0RG9uZSA9IHRydWU7IC8vIHdlJ3JlIGdvaW5nIHRvIGRvIGl0IGp1c3QgYmVsb3cKKworICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGxhc3RPcCkgeworICAgICAgICAgICAgICAgICAgICBjYXNlICctJzoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAnJic6CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXQuYXBwZW5kKGxhc3RPcCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgYSB0b3AtbGV2ZWwgcHJvcGVydHkgcGF0dGVybiwgdGhlbiB0cmltCisgICAgICAgICAgICAgICAgICAgIC8vIG9mZiB0aGUgb3BlbmluZyAnWycgYW5kIHVzZSB0aGUgcHJvcGVydHkgcGF0dGVybgorICAgICAgICAgICAgICAgICAgICAvLyBhcyB0aGUgZW50aXJlIHBhdHRlcm4uCisgICAgICAgICAgICAgICAgICAgIGlmIChtb2RlID09IDMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld1BhdC5kZWxldGVDaGFyQXQoMCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbmV3UGF0LmFwcGVuZChwYXR0ZXJuLnN1YnN0cmluZyhpLTEsIHBwLmdldEluZGV4KCkpKTsKKyAgICAgICAgICAgICAgICAgICAgcmVidWlsZFBhdHRlcm4gPSB0cnVlOworCisgICAgICAgICAgICAgICAgICAgIGkgPSBwcC5nZXRJbmRleCgpOyAvLyBhZHZhbmNlIHBhc3QgcHJvcGVydHkgcGF0dGVybgorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGUgPT0gMykgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRW50aXJlIHBhdHRlcm4gaXMgYSBjYXRlZ29yeTsgbGVhdmUgcGFyc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvb3AuICBUaGlzIGlzIG9uZSBvZiAyIHdheXMgd2UgbGVhdmUgdGhpcworICAgICAgICAgICAgICAgICAgICAgICAgLy8gbG9vcCBpZiB0aGUgcGF0dGVybiBpcyB3ZWxsLWZvcm1lZC4KKyAgICAgICAgICAgICAgICAgICAgICAgIHNldChuZXN0ZWRTZXQpOworICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSA9IDU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8qIEhhbmRsZSBlc2NhcGVzLiAgSWYgYSBjaGFyYWN0ZXIgaXMgZXNjYXBlZCwgdGhlbiBpdCBhc3N1bWVzIGl0cworICAgICAgICAgICAgICAgICAqIGxpdGVyYWwgdmFsdWUuICBUaGlzIGlzIHRydWUgZm9yIGFsbCBjaGFyYWN0ZXJzLCBib3RoIHNwZWNpYWwKKyAgICAgICAgICAgICAgICAgKiBjaGFyYWN0ZXJzIGFuZCBjaGFyYWN0ZXJzIHdpdGggbm8gc3BlY2lhbCBtZWFuaW5nLiAgV2UgYWxzbworICAgICAgICAgICAgICAgICAqIGludGVycHJldCAnXFx1eHh4eCcgVW5pY29kZSBlc2NhcGVzIGhlcmUgKGFzIGxpdGVyYWxzKS4KKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBlbHNlIGlmIChjID09ICdcXCcpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50W10gb2Zmc2V0ID0gbmV3IGludFtdIHsgaSB9OworICAgICAgICAgICAgICAgICAgICBpbnQgZXNjYXBlZCA9IFV0aWxpdHkudW5lc2NhcGVBdChwYXR0ZXJuLCBvZmZzZXQpOworICAgICAgICAgICAgICAgICAgICBpZiAoZXNjYXBlZCA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YSA9IE1hdGgubWF4KGkgLSA4LCAwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW0gPSBNYXRoLm1pbihpICsgMTYsIHBhdHRlcm4ubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBlc2NhcGUgc2VxdWVuY2UgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm4uc3Vic3RyaW5nKHN0YSwgaS0xKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ8IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm4uc3Vic3RyaW5nKGktMSwgbGltKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaSA9IG9mZnNldFswXTsKKyAgICAgICAgICAgICAgICAgICAgaXNMaXRlcmFsID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYyA9IGVzY2FwZWQ7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLyogUGFyc2UgdmFyaWFibGUgcmVmZXJlbmNlcy4gIFRoZXNlIGFyZSB0cmVhdGVkIGFzIGxpdGVyYWxzLiAgSWYgYQorICAgICAgICAgICAgICAgICAqIHZhcmlhYmxlIHJlZmVycyB0byBhIFVuaWNvZGVTZXQsIGl0cyBzdGFuZCBpbiBjaGFyYWN0ZXIgaXMKKyAgICAgICAgICAgICAgICAgKiByZXR1cm5lZCBpbiB0aGUgY2hhcltdIGJ1ZmZlci4KKyAgICAgICAgICAgICAgICAgKiBWYXJpYWJsZSBuYW1lcyBhcmUgb25seSBwYXJzZWQgaWYgdmFyTmFtZVRvQ2hhciBpcyBub3QgbnVsbC4KKyAgICAgICAgICAgICAgICAgKiBTZXQgdmFyaWFibGVzIGFyZSBvbmx5IGxvb2tlZCB1cCBpZiB2YXJDaGFyVG9TZXQgaXMgbm90IG51bGwuCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgZWxzZSBpZiAoc3ltYm9scyAhPSBudWxsICYmICFpc0xpdGVyYWwgJiYgYyA9PSBTeW1ib2xUYWJsZS5TWU1CT0xfUkVGKSB7CisgICAgICAgICAgICAgICAgICAgIHBvcy5zZXRJbmRleChpKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBzeW1ib2xzLnBhcnNlUmVmZXJlbmNlKHBhdHRlcm4sIHBvcywgbGltaXQpOworICAgICAgICAgICAgICAgICAgICBpZiAobmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB2YXJWYWx1ZUJ1ZmZlciA9IHN5bWJvbHMubG9va3VwKG5hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhclZhbHVlQnVmZmVyID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJVbmRlZmluZWQgdmFyaWFibGU6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgbmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpdmFyVmFsdWVCdWZmZXIgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgaSA9IHBvcy5nZXRJbmRleCgpOyAvLyBNYWtlIGkgcG9pbnQgUEFTVCBsYXN0IGNoYXIgb2YgdmFyIG5hbWUKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEdvdCBhIG51bGw7IHRoaXMgbWVhbnMgd2UgaGF2ZSBhbiBpc29sYXRlZCAkLgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGVudGF0aXZlbHkgYXNzdW1lIHRoaXMgaXMgYW4gYW5jaG9yLgorICAgICAgICAgICAgICAgICAgICAgICAgYW5jaG9yID0gMTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsgLy8gQmFjayB0byB0aGUgdG9wIHRvIGdldCB2YXJWYWx1ZUJ1ZmZlclswXQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8qIEFuIG9wZW5pbmcgYnJhY2tldCBpbmRpY2F0ZXMgdGhlIGZpcnN0IGJyYWNrZXQgb2YgYSBuZXN0ZWQKKyAgICAgICAgICAgICAgICAgKiBzdWJwYXR0ZXJuLgorICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIGVsc2UgaWYgKCFpc0xpdGVyYWwgJiYgYyA9PSAnWycpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gUmVjb3JkIHBvc2l0aW9uIGJlZm9yZSBuZXN0ZWQgcGF0dGVybgorICAgICAgICAgICAgICAgICAgICBuZXN0ZWRQYXRTdGFydCA9IG5ld1BhdC5sZW5ndGgoKTsKKworICAgICAgICAgICAgICAgICAgICAvLyBSZWN1cnNlIHRvIGdldCB0aGUgcGFpcnMgZm9yIHRoaXMgbmVzdGVkIHNldC4KKyAgICAgICAgICAgICAgICAgICAgLy8gQmFja3VwIGkgdG8gJ1snLgorICAgICAgICAgICAgICAgICAgICBwb3Muc2V0SW5kZXgoLS1pKTsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChsYXN0T3ApIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAnLSc6CisgICAgICAgICAgICAgICAgICAgIGNhc2UgJyYnOgorICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGF0LmFwcGVuZChsYXN0T3ApOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbmVzdGVkU2V0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgICAgICAgICAgICAgbmVzdGVkU2V0Ll9hcHBseVBhdHRlcm4ocGF0dGVybiwgcG9zLCBzeW1ib2xzLCBuZXdQYXQsIGlnbm9yZVdoaXRlc3BhY2UpOworICAgICAgICAgICAgICAgICAgICBuZXN0ZWRQYXREb25lID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgaSA9IHBvcy5nZXRJbmRleCgpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIWlzTGl0ZXJhbCAmJiBjID09ICd7JykgeworICAgICAgICAgICAgICAgICAgICAvLyBzdGFydCBvZiBhIHN0cmluZy4gZmluZCB0aGUgcmVzdC4KKyAgICAgICAgICAgICAgICAgICAgaW50IGxlbmd0aCA9IDA7CisgICAgICAgICAgICAgICAgICAgIGludCBzdCA9IGk7CisgICAgICAgICAgICAgICAgICAgIG11bHRpQ2hhckJ1ZmZlci5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChpIDwgcGF0dGVybi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNoID0gVVRGMTYuY2hhckF0KHBhdHRlcm4sIGkpOworICAgICAgICAgICAgICAgICAgICAgICAgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY2gpOyAKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaCA9PSAnfScpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSAtbGVuZ3RoOyAvLyBzaWduYWwgdGhhdCB3ZSBzYXcgJ30nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09ICdcXCcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBvZmZzZXQgPSBuZXcgaW50W10geyBpIH07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2ggPSBVdGlsaXR5LnVuZXNjYXBlQXQocGF0dGVybiwgb2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YSA9IE1hdGgubWF4KGkgLSA4LCAwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbSA9IE1hdGgubWluKGkgKyAxNiwgcGF0dGVybi5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgZXNjYXBlIHNlcXVlbmNlICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm4uc3Vic3RyaW5nKHN0YSwgaS0xKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInwiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuLnN1YnN0cmluZyhpLTEsIGxpbSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpID0gb2Zmc2V0WzBdOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgLS1sZW5ndGg7IC8vIHNpYzsgc2VlIGFib3ZlCisgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQobXVsdGlDaGFyQnVmZmVyLCBjaCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA8IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgbXVsdGljaGFyYWN0ZXIgc3RyaW5nIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLy8gV2UgaGF2ZSBuZXcgc3RyaW5nLiBBZGQgaXQgdG8gc2V0IGFuZCBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgLy8gd2UgZG9uJ3QgbmVlZCB0byBkcm9wIHRocm91Z2ggdG8gdGhlIGZ1cnRoZXIKKyAgICAgICAgICAgICAgICAgICAgLy8gcHJvY2Vzc2luZworICAgICAgICAgICAgICAgICAgICBhZGQobXVsdGlDaGFyQnVmZmVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICBuZXdQYXQuYXBwZW5kKCd7JykuYXBwZW5kKHBhdHRlcm4uc3Vic3RyaW5nKHN0LCBpKSk7CisgICAgICAgICAgICAgICAgICAgIHJlYnVpbGRQYXR0ZXJuID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKiBBdCB0aGlzIHBvaW50IHdlIGhhdmUgZWl0aGVyIGEgY2hhcmFjdGVyIGMsIG9yIGEgbmVzdGVkIHNldC4gIElmCisgICAgICAgICAgICAgKiB3ZSBoYXZlIGVuY291bnRlcmVkIGEgbmVzdGVkIHNldCwgZWl0aGVyIGVtYmVkZGVkIGluIHRoZSBwYXR0ZXJuLAorICAgICAgICAgICAgICogb3IgYXMgYSB2YXJpYWJsZSwgd2UgaGF2ZSBhIG5vbi1udWxsIG5lc3RlZFNldCwgYW5kIGMgc2hvdWxkIGJlCisgICAgICAgICAgICAgKiBpZ25vcmVkLiAgT3RoZXJ3aXNlIGMgaXMgdGhlIGN1cnJlbnQgY2hhcmFjdGVyLCBhbmQgaXNMaXRlcmFsCisgICAgICAgICAgICAgKiBpbmRpY2F0ZXMgd2hldGhlciBpdCBpcyBhbiBlc2NhcGVkIGxpdGVyYWwgKG9yIHZhcmlhYmxlKSBvciBhCisgICAgICAgICAgICAgKiBub3JtYWwgdW5lc2NhcGVkIGNoYXJhY3Rlci4gIFVuZXNjYXBlZCBjaGFyYWN0ZXJzICctJywgJyYnLCBhbmQKKyAgICAgICAgICAgICAqICddJyBoYXZlIHNwZWNpYWwgbWVhbmluZ3MuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmIChuZXN0ZWRTZXQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGlmIChsYXN0Q2hhciAhPSBOT05FKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChsYXN0T3AgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCByaHMgZm9yICIgKyBsYXN0Q2hhciArIGxhc3RPcCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYWRkKGxhc3RDaGFyLCBsYXN0Q2hhcik7CisgICAgICAgICAgICAgICAgICAgIGlmIChuZXN0ZWRQYXREb25lKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGVyZSB3YXMgYSBjaGFyYWN0ZXIgYmVmb3JlIHRoZSBuZXN0ZWQgc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlbiB3ZSBuZWVkIHRvIGluc2VydCBpdCBpbiBuZXdQYXQgYmVmb3JlIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gcGF0dGVybiBmb3IgdGhlIG5lc3RlZCBzZXQuICBUaGlzIHBvc2l0aW9uIHdhcworICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVjb3JkZWQgaW4gbmVzdGVkUGF0U3RhcnQuCisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIF9hcHBlbmRUb1BhdChzLCBsYXN0Q2hhciwgZmFsc2UpOworICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGF0Lmluc2VydChuZXN0ZWRQYXRTdGFydCwgcy50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIF9hcHBlbmRUb1BhdChuZXdQYXQsIGxhc3RDaGFyLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbGFzdENoYXIgPSBOT05FOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGxhc3RPcCkgeworICAgICAgICAgICAgICAgIGNhc2UgJy0nOgorICAgICAgICAgICAgICAgICAgICByZW1vdmVBbGwobmVzdGVkU2V0KTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnJic6CisgICAgICAgICAgICAgICAgICAgIHJldGFpbkFsbChuZXN0ZWRTZXQpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgICAgIGFkZEFsbChuZXN0ZWRTZXQpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBHZXQgdGhlIHBhdHRlcm4gZm9yIHRoZSBuZXN0ZWQgc2V0LCBpZiB3ZSBoYXZlbid0IGRvbmUgc28KKyAgICAgICAgICAgICAgICAvLyBhbHJlYWR5LgorICAgICAgICAgICAgICAgIGlmICghbmVzdGVkUGF0RG9uZSkgeworICAgICAgICAgICAgICAgICAgICBpZiAobGFzdE9wICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld1BhdC5hcHBlbmQobGFzdE9wKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBuZXN0ZWRTZXQuX3RvUGF0dGVybihuZXdQYXQsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmVidWlsZFBhdHRlcm4gPSB0cnVlOworCisgICAgICAgICAgICAgICAgbGFzdE9wID0gMDsKKworICAgICAgICAgICAgfSBlbHNlIGlmICghaXNMaXRlcmFsICYmIGMgPT0gJ10nKSB7CisgICAgICAgICAgICAgICAgLy8gRmluYWwgY2xvc2luZyBkZWxpbWl0ZXIuICBUaGlzIGlzIHRoZSBvbmx5IHdheSB3ZSBsZWF2ZSB0aGlzCisgICAgICAgICAgICAgICAgLy8gbG9vcCBpZiB0aGUgcGF0dGVybiBpcyB3ZWxsLWZvcm1lZC4KKyAgICAgICAgICAgICAgICBpZiAoYW5jaG9yID4gMiB8fCBhbmNob3IgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJTeW50YXggZXJyb3IgbmVhciAkIiArIHBhdHRlcm4pOworCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChhbmNob3IgPT0gMikgeworICAgICAgICAgICAgICAgICAgICByZWJ1aWxkUGF0dGVybiA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIG5ld1BhdC5hcHBlbmQoU3ltYm9sVGFibGUuU1lNQk9MX1JFRik7CisgICAgICAgICAgICAgICAgICAgIGFkZChUcmFuc2xpdGVyYXRpb25SdWxlLkVUSEVSKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbW9kZSA9IDQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGxhc3RPcCA9PSAwICYmICFpc0xpdGVyYWwgJiYgKGMgPT0gJy0nIHx8IGMgPT0gJyYnKSkgeworICAgICAgICAgICAgICAgIGxhc3RPcCA9IChjaGFyKSBjOworICAgICAgICAgICAgfSBlbHNlIGlmIChsYXN0T3AgPT0gJy0nKSB7CisgICAgICAgICAgICAgICAgaWYgKGxhc3RDaGFyID49IGMpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gRG9uJ3QgYWxsb3cgcmVkdW5kYW50IChhLWEpIG9yIGVtcHR5IChiLWEpIHJhbmdlczsKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhlc2UgYXJlIG1vc3QgbGlrZWx5IHR5cG9zLgorICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIHJhbmdlICIgKyBsYXN0Q2hhciArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy0nICsgYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGFkZChsYXN0Q2hhciwgYyk7CisgICAgICAgICAgICAgICAgX2FwcGVuZFRvUGF0KG5ld1BhdCwgbGFzdENoYXIsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICBuZXdQYXQuYXBwZW5kKCctJyk7CisgICAgICAgICAgICAgICAgX2FwcGVuZFRvUGF0KG5ld1BhdCwgYywgZmFsc2UpOworICAgICAgICAgICAgICAgIGxhc3RPcCA9IDA7CisgICAgICAgICAgICAgICAgbGFzdENoYXIgPSBOT05FOworICAgICAgICAgICAgfSBlbHNlIGlmIChsYXN0T3AgIT0gMCkgeworICAgICAgICAgICAgICAgIC8vIFdlIGhhdmUgPHNldD4mPGNoYXI+IG9yIDxjaGFyPiY8Y2hhcj4KKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJVbnF1b3RlZCAiICsgbGFzdE9wKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGxhc3RDaGFyICE9IE5PTkUpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gV2UgaGF2ZSA8Y2hhcj48Y2hhcj4KKyAgICAgICAgICAgICAgICAgICAgYWRkKGxhc3RDaGFyLCBsYXN0Q2hhcik7CisgICAgICAgICAgICAgICAgICAgIF9hcHBlbmRUb1BhdChuZXdQYXQsIGxhc3RDaGFyLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxhc3RDaGFyID0gYzsKKyAgICAgICAgICAgICAgICBpc0xhc3RMaXRlcmFsID0gaXNMaXRlcmFsOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKG1vZGUgPCA0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJNaXNzaW5nICddJyIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gVHJlYXQgYSB0cmFpbGluZyAnJCcgYXMgaW5kaWNhdGluZyBFVEhFUi4gIFRoaXMgY29kZSBpcyBvbmx5CisgICAgICAgIC8vIGV4ZWN1dGVkIGlmIHN5bWJvbHMgPT0gTlVMTDsgb3RoZXJ3aXNlIG90aGVyIGNvZGUgcGFyc2VzIHRoZQorICAgICAgICAvLyBhbmNob3IuCisgICAgICAgIGlmIChsYXN0Q2hhciA9PSBTeW1ib2xUYWJsZS5TWU1CT0xfUkVGICYmICFpc0xhc3RMaXRlcmFsKSB7CisgICAgICAgICAgICByZWJ1aWxkUGF0dGVybiA9IHRydWU7CisgICAgICAgICAgICBuZXdQYXQuYXBwZW5kKChjaGFyKSBsYXN0Q2hhcik7CisgICAgICAgICAgICBhZGQoVHJhbnNsaXRlcmF0aW9uUnVsZS5FVEhFUik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGVsc2UgaWYgKGxhc3RDaGFyICE9IE5PTkUpIHsKKyAgICAgICAgICAgIGFkZChsYXN0Q2hhciwgbGFzdENoYXIpOworICAgICAgICAgICAgX2FwcGVuZFRvUGF0KG5ld1BhdCwgbGFzdENoYXIsIGZhbHNlKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEhhbmRsZSB1bnByb2Nlc3NlZCBzdHVmZiBwcmVjZWRpbmcgdGhlIGNsb3NpbmcgJ10nCisgICAgICAgIGlmIChsYXN0T3AgPT0gJy0nKSB7CisgICAgICAgICAgICAvLyBUcmFpbGluZyAnLScgaXMgdHJlYXRlZCBhcyBsaXRlcmFsCisgICAgICAgICAgICBhZGQobGFzdE9wLCBsYXN0T3ApOworICAgICAgICAgICAgbmV3UGF0LmFwcGVuZCgnLScpOworICAgICAgICB9IGVsc2UgaWYgKGxhc3RPcCA9PSAnJicpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlVucXVvdGVkIHRyYWlsaW5nICIgKyBsYXN0T3ApOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1vZGUgPT0gNCkgeworICAgICAgICAgICAgbmV3UGF0LmFwcGVuZCgnXScpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIElmIHdlIHNhdyBhICdeJyBhZnRlciB0aGUgaW5pdGlhbCAnWycgb2YgdGhpcyBwYXR0ZXJuLCB0aGVuIHBlcmZvcm0KKyAgICAgICAgICogdGhlIGNvbXBsZW1lbnQuICAoSW52ZXJzaW9uIGFmdGVyICdbOicgaXMgaGFuZGxlZCBlbHNld2hlcmUuKQorICAgICAgICAgKi8KKyAgICAgICAgaWYgKGludmVydCkgeworICAgICAgICAgICAgY29tcGxlbWVudCgpOworICAgICAgICB9CisKKyAgICAgICAgcG9zLnNldEluZGV4KGkpOworCisgICAgICAgIC8vIFVzZSB0aGUgcmVidWlsdCBwYXR0ZXJuIChuZXdQYXQpIG9ubHkgaWYgbmVjZXNzYXJ5LiAgUHJlZmVyIHRoZQorICAgICAgICAvLyBnZW5lcmF0ZWQgcGF0dGVybi4KKyAgICAgICAgaWYgKHJlYnVpbGRQYXR0ZXJuKSB7CisgICAgICAgICAgICByZWJ1aWx0UGF0LmFwcGVuZChuZXdQYXQudG9TdHJpbmcoKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBfZ2VuZXJhdGVQYXR0ZXJuKHJlYnVpbHRQYXQsIGZhbHNlKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmYWxzZSkgeworICAgICAgICAgICAgLy8gRGVidWcgcGFyc2VyCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlVuaWNvZGVTZXQoIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybi5zdWJzdHJpbmcoc3RhcnQsIGkrMSkgKyAiKSAtPiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmVzY2FwZSh0b1N0cmluZygpKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBJbXBsZW1lbnRhdGlvbjogVXRpbGl0eSBtZXRob2RzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBwcml2YXRlIHZvaWQgZW5zdXJlQ2FwYWNpdHkoaW50IG5ld0xlbikgeworICAgICAgICBpZiAobmV3TGVuIDw9IGxpc3QubGVuZ3RoKSByZXR1cm47CisgICAgICAgIGludFtdIHRlbXAgPSBuZXcgaW50W25ld0xlbiArIEdST1dfRVhUUkFdOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGxpc3QsIDAsIHRlbXAsIDAsIGxlbik7CisgICAgICAgIGxpc3QgPSB0ZW1wOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBlbnN1cmVCdWZmZXJDYXBhY2l0eShpbnQgbmV3TGVuKSB7CisgICAgICAgIGlmIChidWZmZXIgIT0gbnVsbCAmJiBuZXdMZW4gPD0gYnVmZmVyLmxlbmd0aCkgcmV0dXJuOworICAgICAgICBidWZmZXIgPSBuZXcgaW50W25ld0xlbiArIEdST1dfRVhUUkFdOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFzc3VtZXMgc3RhcnQgPD0gZW5kLgorICAgICAqLworICAgIHByaXZhdGUgaW50W10gcmFuZ2UoaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgIGlmIChyYW5nZUxpc3QgPT0gbnVsbCkgeworICAgICAgICAgICAgcmFuZ2VMaXN0ID0gbmV3IGludFtdIHsgc3RhcnQsIGVuZCsxLCBISUdIIH07CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByYW5nZUxpc3RbMF0gPSBzdGFydDsKKyAgICAgICAgICAgIHJhbmdlTGlzdFsxXSA9IGVuZCsxOworICAgICAgICB9CisgICAgICAgIHJldHVybiByYW5nZUxpc3Q7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gSW1wbGVtZW50YXRpb246IEZ1bmRhbWVudGFsIG9wZXJhdGlvbnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vIHBvbGFyaXR5ID0gMCwgMyBpcyBub3JtYWw6IHggeG9yIHkKKyAgICAvLyBwb2xhcml0eSA9IDEsIDI6IHggeG9yIH55ID09IHggPT09IHkKKworICAgIHByaXZhdGUgVW5pY29kZVNldCB4b3IoaW50W10gb3RoZXIsIGludCBvdGhlckxlbiwgaW50IHBvbGFyaXR5KSB7CisgICAgICAgIGVuc3VyZUJ1ZmZlckNhcGFjaXR5KGxlbiArIG90aGVyTGVuKTsKKyAgICAgICAgaW50IGkgPSAwLCBqID0gMCwgayA9IDA7CisgICAgICAgIGludCBhID0gbGlzdFtpKytdOworICAgICAgICBpbnQgYjsKKyAgICAgICAgaWYgKHBvbGFyaXR5ID09IDEgfHwgcG9sYXJpdHkgPT0gMikgeworICAgICAgICAgICAgYiA9IExPVzsKKyAgICAgICAgICAgIGlmIChvdGhlcltqXSA9PSBMT1cpIHsgLy8gc2tpcCBiYXNlIGlmIGFscmVhZHkgTE9XCisgICAgICAgICAgICAgICAgKytqOworICAgICAgICAgICAgICAgIGIgPSBvdGhlcltqXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGIgPSBvdGhlcltqKytdOworICAgICAgICB9CisgICAgICAgIC8vIHNpbXBsZXN0IG9mIGFsbCB0aGUgcm91dGluZXMKKyAgICAgICAgLy8gc29ydCB0aGUgdmFsdWVzLCBkaXNjYXJkaW5nIGlkZW50aWNhbHMhCisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpZiAoYSA8IGIpIHsKKyAgICAgICAgICAgICAgICBidWZmZXJbaysrXSA9IGE7CisgICAgICAgICAgICAgICAgYSA9IGxpc3RbaSsrXTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYiA8IGEpIHsKKyAgICAgICAgICAgICAgICBidWZmZXJbaysrXSA9IGI7CisgICAgICAgICAgICAgICAgYiA9IG90aGVyW2orK107CisgICAgICAgICAgICB9IGVsc2UgaWYgKGEgIT0gSElHSCkgeyAvLyBhdCB0aGlzIHBvaW50LCBhID09IGIKKyAgICAgICAgICAgICAgICAvLyBkaXNjYXJkIGJvdGggdmFsdWVzIQorICAgICAgICAgICAgICAgIGEgPSBsaXN0W2krK107CisgICAgICAgICAgICAgICAgYiA9IG90aGVyW2orK107CisgICAgICAgICAgICB9IGVsc2UgeyAvLyBET05FIQorICAgICAgICAgICAgICAgIGJ1ZmZlcltrKytdID0gSElHSDsKKyAgICAgICAgICAgICAgICBsZW4gPSBrOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIHN3YXAgbGlzdCBhbmQgYnVmZmVyCisgICAgICAgIGludFtdIHRlbXAgPSBsaXN0OworICAgICAgICBsaXN0ID0gYnVmZmVyOworICAgICAgICBidWZmZXIgPSB0ZW1wOworICAgICAgICBwYXQgPSBudWxsOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvLyBwb2xhcml0eSA9IDAgaXMgbm9ybWFsOiB4IHVuaW9uIHkKKyAgICAvLyBwb2xhcml0eSA9IDI6IHggdW5pb24gfnkKKyAgICAvLyBwb2xhcml0eSA9IDE6IH54IHVuaW9uIHkKKyAgICAvLyBwb2xhcml0eSA9IDM6IH54IHVuaW9uIH55CisKKyAgICBwcml2YXRlIFVuaWNvZGVTZXQgYWRkKGludFtdIG90aGVyLCBpbnQgb3RoZXJMZW4sIGludCBwb2xhcml0eSkgeworICAgICAgICBlbnN1cmVCdWZmZXJDYXBhY2l0eShsZW4gKyBvdGhlckxlbik7CisgICAgICAgIGludCBpID0gMCwgaiA9IDAsIGsgPSAwOworICAgICAgICBpbnQgYSA9IGxpc3RbaSsrXTsKKyAgICAgICAgaW50IGIgPSBvdGhlcltqKytdOworICAgICAgICAvLyBjaGFuZ2UgZnJvbSB4b3IgaXMgdGhhdCB3ZSBoYXZlIHRvIGNoZWNrIG92ZXJsYXBwaW5nIHBhaXJzCisgICAgICAgIC8vIHBvbGFyaXR5IGJpdCAxIG1lYW5zIGEgaXMgc2Vjb25kLCBiaXQgMiBtZWFucyBiIGlzLgorICAgICAgICBtYWluOgorICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgc3dpdGNoIChwb2xhcml0eSkgeworICAgICAgICAgICAgICBjYXNlIDA6IC8vIGJvdGggZmlyc3Q7IHRha2UgbG93ZXIgaWYgdW5lcXVhbAorICAgICAgICAgICAgICAgIGlmIChhIDwgYikgeyAvLyB0YWtlIGEKKyAgICAgICAgICAgICAgICAgICAgLy8gQmFjayB1cCBvdmVyIG92ZXJsYXBwaW5nIHJhbmdlcyBpbiBidWZmZXJbXQorICAgICAgICAgICAgICAgICAgICBpZiAoayA+IDAgJiYgYSA8PSBidWZmZXJbay0xXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gUGljayBsYXR0ZXIgZW5kIHZhbHVlIGluIGJ1ZmZlcltdIHZzLiBsaXN0W10KKyAgICAgICAgICAgICAgICAgICAgICAgIGEgPSBtYXgobGlzdFtpXSwgYnVmZmVyWy0ta10pOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm8gb3ZlcmxhcAorICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2srK10gPSBhOworICAgICAgICAgICAgICAgICAgICAgICAgYSA9IGxpc3RbaV07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaSsrOyAvLyBDb21tb24gaWYvZWxzZSBjb2RlIGZhY3RvcmVkIG91dAorICAgICAgICAgICAgICAgICAgICBwb2xhcml0eSBePSAxOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYiA8IGEpIHsgLy8gdGFrZSBiCisgICAgICAgICAgICAgICAgICAgIGlmIChrID4gMCAmJiBiIDw9IGJ1ZmZlcltrLTFdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBiID0gbWF4KG90aGVyW2pdLCBidWZmZXJbLS1rXSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJbaysrXSA9IGI7CisgICAgICAgICAgICAgICAgICAgICAgICBiID0gb3RoZXJbal07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaisrOworICAgICAgICAgICAgICAgICAgICBwb2xhcml0eSBePSAyOworICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8vIGEgPT0gYiwgdGFrZSBhLCBkcm9wIGIKKyAgICAgICAgICAgICAgICAgICAgaWYgKGEgPT0gSElHSCkgYnJlYWsgbWFpbjsKKyAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBzeW1tZXRyaWNhbDsgaXQgZG9lc24ndCBtYXR0ZXIgaWYKKyAgICAgICAgICAgICAgICAgICAgLy8gd2UgYmFja3RyYWNrIHdpdGggYSBvciBiLiAtIGxpdQorICAgICAgICAgICAgICAgICAgICBpZiAoayA+IDAgJiYgYSA8PSBidWZmZXJbay0xXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYSA9IG1heChsaXN0W2ldLCBidWZmZXJbLS1rXSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBObyBvdmVybGFwCisgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJbaysrXSA9IGE7CisgICAgICAgICAgICAgICAgICAgICAgICBhID0gbGlzdFtpXTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICAgICAgICAgIHBvbGFyaXR5IF49IDE7CisgICAgICAgICAgICAgICAgICAgIGIgPSBvdGhlcltqKytdOyBwb2xhcml0eSBePSAyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgY2FzZSAzOiAvLyBib3RoIHNlY29uZDsgdGFrZSBoaWdoZXIgaWYgdW5lcXVhbCwgYW5kIGRyb3Agb3RoZXIKKyAgICAgICAgICAgICAgICBpZiAoYiA8PSBhKSB7IC8vIHRha2UgYQorICAgICAgICAgICAgICAgICAgICBpZiAoYSA9PSBISUdIKSBicmVhayBtYWluOworICAgICAgICAgICAgICAgICAgICBidWZmZXJbaysrXSA9IGE7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsgLy8gdGFrZSBiCisgICAgICAgICAgICAgICAgICAgIGlmIChiID09IEhJR0gpIGJyZWFrIG1haW47CisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltrKytdID0gYjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYSA9IGxpc3RbaSsrXTsgcG9sYXJpdHkgXj0gMTsgICAvLyBmYWN0b3JlZCBjb21tb24gY29kZQorICAgICAgICAgICAgICAgIGIgPSBvdGhlcltqKytdOyBwb2xhcml0eSBePSAyOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICBjYXNlIDE6IC8vIGEgc2Vjb25kLCBiIGZpcnN0OyBpZiBiIDwgYSwgb3ZlcmxhcAorICAgICAgICAgICAgICAgIGlmIChhIDwgYikgeyAvLyBubyBvdmVybGFwLCB0YWtlIGEKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2srK10gPSBhOyBhID0gbGlzdFtpKytdOyBwb2xhcml0eSBePSAxOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYiA8IGEpIHsgLy8gT1ZFUkxBUCwgZHJvcCBiCisgICAgICAgICAgICAgICAgICAgIGIgPSBvdGhlcltqKytdOyBwb2xhcml0eSBePSAyOworICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8vIGEgPT0gYiwgZHJvcCBib3RoIQorICAgICAgICAgICAgICAgICAgICBpZiAoYSA9PSBISUdIKSBicmVhayBtYWluOworICAgICAgICAgICAgICAgICAgICBhID0gbGlzdFtpKytdOyBwb2xhcml0eSBePSAxOworICAgICAgICAgICAgICAgICAgICBiID0gb3RoZXJbaisrXTsgcG9sYXJpdHkgXj0gMjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgIGNhc2UgMjogLy8gYSBmaXJzdCwgYiBzZWNvbmQ7IGlmIGEgPCBiLCBvdmVybGFwCisgICAgICAgICAgICAgICAgaWYgKGIgPCBhKSB7IC8vIG5vIG92ZXJsYXAsIHRha2UgYgorICAgICAgICAgICAgICAgICAgICBidWZmZXJbaysrXSA9IGI7IGIgPSBvdGhlcltqKytdOyBwb2xhcml0eSBePSAyOworICAgICAgICAgICAgICAgIH0gZWxzZSAgaWYgKGEgPCBiKSB7IC8vIE9WRVJMQVAsIGRyb3AgYQorICAgICAgICAgICAgICAgICAgICBhID0gbGlzdFtpKytdOyBwb2xhcml0eSBePSAxOworICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8vIGEgPT0gYiwgZHJvcCBib3RoIQorICAgICAgICAgICAgICAgICAgICBpZiAoYSA9PSBISUdIKSBicmVhayBtYWluOworICAgICAgICAgICAgICAgICAgICBhID0gbGlzdFtpKytdOyBwb2xhcml0eSBePSAxOworICAgICAgICAgICAgICAgICAgICBiID0gb3RoZXJbaisrXTsgcG9sYXJpdHkgXj0gMjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgYnVmZmVyW2srK10gPSBISUdIOyAgICAvLyB0ZXJtaW5hdGUKKyAgICAgICAgbGVuID0gazsKKyAgICAgICAgLy8gc3dhcCBsaXN0IGFuZCBidWZmZXIKKyAgICAgICAgaW50W10gdGVtcCA9IGxpc3Q7CisgICAgICAgIGxpc3QgPSBidWZmZXI7CisgICAgICAgIGJ1ZmZlciA9IHRlbXA7CisgICAgICAgIHBhdCA9IG51bGw7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8vIHBvbGFyaXR5ID0gMCBpcyBub3JtYWw6IHggaW50ZXJzZWN0IHkKKyAgICAvLyBwb2xhcml0eSA9IDI6IHggaW50ZXJzZWN0IH55ID09IHNldC1taW51cworICAgIC8vIHBvbGFyaXR5ID0gMTogfnggaW50ZXJzZWN0IHkKKyAgICAvLyBwb2xhcml0eSA9IDM6IH54IGludGVyc2VjdCB+eQorCisgICAgcHJpdmF0ZSBVbmljb2RlU2V0IHJldGFpbihpbnRbXSBvdGhlciwgaW50IG90aGVyTGVuLCBpbnQgcG9sYXJpdHkpIHsKKyAgICAgICAgZW5zdXJlQnVmZmVyQ2FwYWNpdHkobGVuICsgb3RoZXJMZW4pOworICAgICAgICBpbnQgaSA9IDAsIGogPSAwLCBrID0gMDsKKyAgICAgICAgaW50IGEgPSBsaXN0W2krK107CisgICAgICAgIGludCBiID0gb3RoZXJbaisrXTsKKyAgICAgICAgLy8gY2hhbmdlIGZyb20geG9yIGlzIHRoYXQgd2UgaGF2ZSB0byBjaGVjayBvdmVybGFwcGluZyBwYWlycworICAgICAgICAvLyBwb2xhcml0eSBiaXQgMSBtZWFucyBhIGlzIHNlY29uZCwgYml0IDIgbWVhbnMgYiBpcy4KKyAgICAgICAgbWFpbjoKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIHN3aXRjaCAocG9sYXJpdHkpIHsKKyAgICAgICAgICAgICAgY2FzZSAwOiAvLyBib3RoIGZpcnN0OyBkcm9wIHRoZSBzbWFsbGVyCisgICAgICAgICAgICAgICAgaWYgKGEgPCBiKSB7IC8vIGRyb3AgYQorICAgICAgICAgICAgICAgICAgICBhID0gbGlzdFtpKytdOyBwb2xhcml0eSBePSAxOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYiA8IGEpIHsgLy8gZHJvcCBiCisgICAgICAgICAgICAgICAgICAgIGIgPSBvdGhlcltqKytdOyBwb2xhcml0eSBePSAyOworICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8vIGEgPT0gYiwgdGFrZSBvbmUsIGRyb3Agb3RoZXIKKyAgICAgICAgICAgICAgICAgICAgaWYgKGEgPT0gSElHSCkgYnJlYWsgbWFpbjsKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2srK10gPSBhOyBhID0gbGlzdFtpKytdOyBwb2xhcml0eSBePSAxOworICAgICAgICAgICAgICAgICAgICBiID0gb3RoZXJbaisrXTsgcG9sYXJpdHkgXj0gMjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgIGNhc2UgMzogLy8gYm90aCBzZWNvbmQ7IHRha2UgbG93ZXIgaWYgdW5lcXVhbAorICAgICAgICAgICAgICAgIGlmIChhIDwgYikgeyAvLyB0YWtlIGEKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2srK10gPSBhOyBhID0gbGlzdFtpKytdOyBwb2xhcml0eSBePSAxOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYiA8IGEpIHsgLy8gdGFrZSBiCisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltrKytdID0gYjsgYiA9IG90aGVyW2orK107IHBvbGFyaXR5IF49IDI7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsgLy8gYSA9PSBiLCB0YWtlIG9uZSwgZHJvcCBvdGhlcgorICAgICAgICAgICAgICAgICAgICBpZiAoYSA9PSBISUdIKSBicmVhayBtYWluOworICAgICAgICAgICAgICAgICAgICBidWZmZXJbaysrXSA9IGE7IGEgPSBsaXN0W2krK107IHBvbGFyaXR5IF49IDE7CisgICAgICAgICAgICAgICAgICAgIGIgPSBvdGhlcltqKytdOyBwb2xhcml0eSBePSAyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgY2FzZSAxOiAvLyBhIHNlY29uZCwgYiBmaXJzdDsKKyAgICAgICAgICAgICAgICBpZiAoYSA8IGIpIHsgLy8gTk8gT1ZFUkxBUCwgZHJvcCBhCisgICAgICAgICAgICAgICAgICAgIGEgPSBsaXN0W2krK107IHBvbGFyaXR5IF49IDE7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChiIDwgYSkgeyAvLyBPVkVSTEFQLCB0YWtlIGIKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2srK10gPSBiOyBiID0gb3RoZXJbaisrXTsgcG9sYXJpdHkgXj0gMjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeyAvLyBhID09IGIsIGRyb3AgYm90aCEKKyAgICAgICAgICAgICAgICAgICAgaWYgKGEgPT0gSElHSCkgYnJlYWsgbWFpbjsKKyAgICAgICAgICAgICAgICAgICAgYSA9IGxpc3RbaSsrXTsgcG9sYXJpdHkgXj0gMTsKKyAgICAgICAgICAgICAgICAgICAgYiA9IG90aGVyW2orK107IHBvbGFyaXR5IF49IDI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICBjYXNlIDI6IC8vIGEgZmlyc3QsIGIgc2Vjb25kOyBpZiBhIDwgYiwgb3ZlcmxhcAorICAgICAgICAgICAgICAgIGlmIChiIDwgYSkgeyAvLyBubyBvdmVybGFwLCBkcm9wIGIKKyAgICAgICAgICAgICAgICAgICAgYiA9IG90aGVyW2orK107IHBvbGFyaXR5IF49IDI7CisgICAgICAgICAgICAgICAgfSBlbHNlICBpZiAoYSA8IGIpIHsgLy8gT1ZFUkxBUCwgdGFrZSBhCisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltrKytdID0gYTsgYSA9IGxpc3RbaSsrXTsgcG9sYXJpdHkgXj0gMTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeyAvLyBhID09IGIsIGRyb3AgYm90aCEKKyAgICAgICAgICAgICAgICAgICAgaWYgKGEgPT0gSElHSCkgYnJlYWsgbWFpbjsKKyAgICAgICAgICAgICAgICAgICAgYSA9IGxpc3RbaSsrXTsgcG9sYXJpdHkgXj0gMTsKKyAgICAgICAgICAgICAgICAgICAgYiA9IG90aGVyW2orK107IHBvbGFyaXR5IF49IDI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGJ1ZmZlcltrKytdID0gSElHSDsgICAgLy8gdGVybWluYXRlCisgICAgICAgIGxlbiA9IGs7CisgICAgICAgIC8vIHN3YXAgbGlzdCBhbmQgYnVmZmVyCisgICAgICAgIGludFtdIHRlbXAgPSBsaXN0OworICAgICAgICBsaXN0ID0gYnVmZmVyOworICAgICAgICBidWZmZXIgPSB0ZW1wOworICAgICAgICBwYXQgPSBudWxsOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgbWF4KGludCBhLCBpbnQgYikgeworICAgICAgICByZXR1cm4gKGEgPiBiKSA/IGEgOiBiOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgcmVsYXRpb25zaGlwIGJldHdlZW4gdHdvIHNldHMgQSBhbmQgQiBjYW4gYmUgZGV0ZXJtaW5lZCBieSBsb29raW5nIGF0OgorICAgICAqIEEgLSBCCisgICAgICogQSAmIEIgKGludGVyc2VjdGlvbikKKyAgICAgKiBCIC0gQQorICAgICAqIFRoZXNlIGFyZSByZXByZXNlbnRlZCBieSBhIHNldCBvZiBiaXRzLgorICAgICAqIEJpdCAyIGlzIHRydWUgaWYgQSAtIEIgaXMgbm90IGVtcHR5CisgICAgICogQml0IDEgaXMgdHJ1ZSBpZiBBICYgQiBpcyBub3QgZW1wdHkKKyAgICAgKiBCSVQgMCBpcyB0cnVlIGlmIEIgLSBBIGlzIG5vdCBlbXB0eQorICAgICAqLworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50CisgICAgICAgIEFfTk9UX0IgPSA0LAorICAgICAgICBBX0FORF9CID0gMiwKKyAgICAgICAgQl9OT1RfQSA9IDE7CisgICAgCisgICAgLyoqCisgICAgICogVGhlcmUgYXJlIDggY29tYmluYXRpb25zIG9mIHRoZSByZWxhdGlvbnNoaXAgYml0cy4gVGhlc2UgY29ycmVzcG9uZCB0bworICAgICAqIHRoZSBmaWx0ZXJzIChjb21iaW5hdGlvbnMgb2YgYWxsb3dlZCBiaXRzKSBpbiBoYXNSZWxhdGlvbi4gVGhleSBhbHNvCisgICAgICogY29ycmVzcG9uZCB0byB0aGUgbW9kaWZpY2F0aW9uIGZ1bmN0aW9ucywgbGlzdGVkIGluIGNvbW1lbnRzLgorICAgICAqLworICAgICAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCAKKyAgICAgICBBTlkgPSAgICAgICAgICAgIEFfTk9UX0IgfCAgIEFfQU5EX0IgfCAgIEJfTk9UX0EsICAgIC8vIHVuaW9uLCAgICAgICAgICAgYWRkQWxsCisgICAgICAgQ09OVEFJTlMgPSAgICAgICBBX05PVF9CIHwgICBBX0FORF9CLCAgICAgICAgICAgICAgICAvLyBBICAgICAgICAgICAgICAgICh1bm5lY2Vzc2FyeSkKKyAgICAgICBESVNKT0lOVCA9ICAgICAgIEFfTk9UX0IgfCAgICAgICAgICAgICAgIEJfTk9UX0EsICAgIC8vIEEgeG9yIEIsICAgICAgICAgbWlzc2luZyBKYXZhIGZ1bmN0aW9uCisgICAgICAgSVNDT05UQUlORUQgPSAgICAgICAgICAgICAgICBBX0FORF9CIHwgICBCX05PVF9BLCAgICAvLyBCICAgICAgICAgICAgICAgICh1bm5lY2Vzc2FyeSkKKyAgICAgICBOT19CID0gICAgICAgICAgIEFfTk9UX0IsICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEEgc2V0RGlmZiBCLCAgICAgcmVtb3ZlQWxsCisgICAgICAgRVFVQUxTID0gICAgICAgICAgICAgICAgICAgICBBX0FORF9CLCAgICAgICAgICAgICAgICAvLyBBIGludGVyc2VjdCBCLCAgIHJldGFpbkFsbAorICAgICAgIE5PX0EgPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQl9OT1RfQSwgICAgLy8gQiBzZXREaWZmIEEsICAgICByZW1vdmVBbGwKKyAgICAgICBOT05FID0gICAgICAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG51bGwgICAgICAgICAgICAgKHVubmVjZXNzYXJ5KQorICAgICAgIAorICAgICAgIEFEREFMTCA9IEFOWSwgICAgICAgICAgICAgICAgLy8gdW5pb24sICAgICAgICAgICBhZGRBbGwKKyAgICAgICBBID0gQ09OVEFJTlMsICAgICAgICAgICAgICAgIC8vIEEgICAgICAgICAgICAgICAgKHVubmVjZXNzYXJ5KQorICAgICAgIENPTVBMRU1FTlRBTEwgPSBESVNKT0lOVCwgICAgLy8gQSB4b3IgQiwgICAgICAgICBtaXNzaW5nIEphdmEgZnVuY3Rpb24KKyAgICAgICBCID0gSVNDT05UQUlORUQsICAgICAgICAgICAgIC8vIEIgICAgICAgICAgICAgICAgKHVubmVjZXNzYXJ5KQorICAgICAgIFJFTU9WRUFMTCA9IE5PX0IsICAgICAgICAgICAgLy8gQSBzZXREaWZmIEIsICAgICByZW1vdmVBbGwKKyAgICAgICBSRVRBSU5BTEwgPSBFUVVBTFMsICAgICAgICAgIC8vIEEgaW50ZXJzZWN0IEIsICAgcmV0YWluQWxsCisgICAgICAgQl9SRU1PVkVBTEwgPSBOT19BOyAgICAgICAgICAvLyBCIHNldERpZmYgQSwgICAgIHJlbW92ZUFsbAorICAgICAgIAorICAKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IHRoYXQgY291bGQgYmUgb24gU29ydGVkU2V0LiBGYXN0ZXIgaW1wbGVtZW50YXRpb24gdGhhbgorICAgICAqIHdoYXQgaXMgaW4gSmF2YSBmb3IgZG9pbmcgY29udGFpbnMsIGVxdWFscywgZXRjLgorICAgICAqIEBwYXJhbSBhIGZpcnN0IHNldAorICAgICAqIEBwYXJhbSBhbGxvdyBmaWx0ZXIsIHVzaW5nIEFOWSwgQ09OVEFJTlMsIGV0Yy4KKyAgICAgKiBAcGFyYW0gYiBzZWNvbmQgc2V0CisgICAgICogQHJldHVybiB3aGV0aGVyIHRoZSBmaWx0ZXIgcmVsYXRpb25zaGlwIGlzIHRydWUgb3Igbm90LgorICAgICAqLworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBoYXNSZWxhdGlvbihTb3J0ZWRTZXQgYSwgaW50IGFsbG93LCBTb3J0ZWRTZXQgYikgeworICAgICAgICBpZiAoYWxsb3cgPCBOT05FIHx8IGFsbG93ID4gQU5ZKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJSZWxhdGlvbiAiICsgYWxsb3cgKyAiIG91dCBvZiByYW5nZSIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBleHRyYWN0IGZpbHRlciBjb25kaXRpb25zCisgICAgICAgIC8vIHRoZXNlIGFyZSB0aGUgQUxMT1dFRCBjb25kaXRpb25zIFNldAorICAgICAgICAKKyAgICAgICAgYm9vbGVhbiBhbmIgPSAoYWxsb3cgJiBBX05PVF9CKSAhPSAwOworICAgICAgICBib29sZWFuIGFiID0gKGFsbG93ICYgQV9BTkRfQikgIT0gMDsKKyAgICAgICAgYm9vbGVhbiBibmEgPSAoYWxsb3cgJiBCX05PVF9BKSAhPSAwOworICAgICAgICAKKyAgICAgICAgLy8gcXVpY2sgY2hlY2sgb24gc2l6ZXMKKyAgICAgICAgc3dpdGNoKGFsbG93KSB7CisgICAgICAgICAgICBjYXNlIENPTlRBSU5TOiBpZiAoYS5zaXplKCkgPCBiLnNpemUoKSkgcmV0dXJuIGZhbHNlOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgSVNDT05UQUlORUQ6IGlmIChhLnNpemUoKSA+IGIuc2l6ZSgpKSByZXR1cm4gZmFsc2U7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBFUVVBTFM6IGlmIChhLnNpemUoKSAhPSBiLnNpemUoKSkgcmV0dXJuIGZhbHNlOyBicmVhazsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gY2hlY2sgZm9yIG51bGwgc2V0cworICAgICAgICBpZiAoYS5zaXplKCkgPT0gMCkgeworICAgICAgICAgICAgaWYgKGIuc2l6ZSgpID09IDApIHJldHVybiB0cnVlOworICAgICAgICAgICAgcmV0dXJuIGJuYTsKKyAgICAgICAgfSBlbHNlIGlmIChiLnNpemUoKSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gYW5iOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBwaWNrIHVwIGZpcnN0IHN0cmluZ3MsIGFuZCBzdGFydCBjb21wYXJpbmcKKyAgICAgICAgSXRlcmF0b3IgYWl0ID0gYS5pdGVyYXRvcigpOworICAgICAgICBJdGVyYXRvciBiaXQgPSBiLml0ZXJhdG9yKCk7CisgICAgICAgIAorICAgICAgICBDb21wYXJhYmxlIGFhID0gKENvbXBhcmFibGUpIGFpdC5uZXh0KCk7CisgICAgICAgIENvbXBhcmFibGUgYmIgPSAoQ29tcGFyYWJsZSkgYml0Lm5leHQoKTsKKyAgICAgICAgCisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpbnQgY29tcCA9IGFhLmNvbXBhcmVUbyhiYik7CisgICAgICAgICAgICBpZiAoY29tcCA9PSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKCFhYikgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIGlmICghYWl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIWJpdC5oYXNOZXh0KCkpIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm5hOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIWJpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFuYjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYWEgPSAoQ29tcGFyYWJsZSkgYWl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICBiYiA9IChDb21wYXJhYmxlKSBiaXQubmV4dCgpOworICAgICAgICAgICAgfSBlbHNlIGlmIChjb21wIDwgMCkgeworICAgICAgICAgICAgICAgIGlmICghYW5iKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgaWYgKCFhaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBibmE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGFhID0gKENvbXBhcmFibGUpIGFpdC5uZXh0KCk7IAorICAgICAgICAgICAgfSBlbHNlICB7CisgICAgICAgICAgICAgICAgaWYgKCFibmEpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICBpZiAoIWJpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFuYjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYmIgPSAoQ29tcGFyYWJsZSkgYml0Lm5leHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IHRoYXQgY291bGQgYmUgb24gU29ydGVkU2V0LiBBbGxvd3MgZmFzdGVyIGltcGxlbWVudGF0aW9uIHRoYW4KKyAgICAgKiB3aGF0IGlzIGluIEphdmEgZm9yIGRvaW5nIGFkZEFsbCwgcmVtb3ZlQWxsLCByZXRhaW5BbGwsIChjb21wbGVtZW50QWxsKS4KKyAgICAgKiBAcGFyYW0gYSBmaXJzdCBzZXQKKyAgICAgKiBAcGFyYW0gYWxsb3cgZmlsdGVyLCB1c2luZyBBTlksIENPTlRBSU5TLCBldGMuCisgICAgICogQHBhcmFtIGIgc2Vjb25kIHNldAorICAgICAqIEByZXR1cm4gd2hldGhlciB0aGUgZmlsdGVyIHJlbGF0aW9uc2hpcCBpcyB0cnVlIG9yIG5vdC4KKyAgICAgKi8KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIFNvcnRlZFNldCBkb09wZXJhdGlvbihTb3J0ZWRTZXQgYSwgaW50IHJlbGF0aW9uLCBTb3J0ZWRTZXQgYikgeworICAgICAgICAvLyBUT0RPOiBvcHRpbWl6ZSB0aGlzIGFzIGFib3ZlCisgICAgICAgIFRyZWVTZXQgdGVtcDsKKyAgICAgICAgc3dpdGNoIChyZWxhdGlvbikgeworICAgICAgICAgICAgY2FzZSBBRERBTEw6CisgICAgICAgICAgICAgICAgYS5hZGRBbGwoYik7IAorICAgICAgICAgICAgICAgIHJldHVybiBhOworICAgICAgICAgICAgY2FzZSBBOgorICAgICAgICAgICAgICAgIHJldHVybiBhOyAvLyBubyBhY3Rpb24KKyAgICAgICAgICAgIGNhc2UgQjoKKyAgICAgICAgICAgICAgICBhLmNsZWFyKCk7IAorICAgICAgICAgICAgICAgIGEuYWRkQWxsKGIpOyAKKyAgICAgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgICAgIGNhc2UgUkVNT1ZFQUxMOiAKKyAgICAgICAgICAgICAgICBhLnJlbW92ZUFsbChiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgICAgIGNhc2UgUkVUQUlOQUxMOiAKKyAgICAgICAgICAgICAgICBhLnJldGFpbkFsbChiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgICAgIC8vIHRoZSBmb2xsb3dpbmcgaXMgdGhlIG9ubHkgY2FzZSBub3QgcmVhbGx5IHN1cHBvcnRlZCBieSBKYXZhCisgICAgICAgICAgICAvLyBhbHRob3VnaCBhbGwgY291bGQgYmUgb3B0aW1pemVkCisgICAgICAgICAgICBjYXNlIENPTVBMRU1FTlRBTEw6CisgICAgICAgICAgICAgICAgdGVtcCA9IG5ldyBUcmVlU2V0KGIpOworICAgICAgICAgICAgICAgIHRlbXAucmVtb3ZlQWxsKGEpOworICAgICAgICAgICAgICAgIGEucmVtb3ZlQWxsKGIpOworICAgICAgICAgICAgICAgIGEuYWRkQWxsKHRlbXApOworICAgICAgICAgICAgICAgIHJldHVybiBhOworICAgICAgICAgICAgY2FzZSBCX1JFTU9WRUFMTDoKKyAgICAgICAgICAgICAgICB0ZW1wID0gbmV3IFRyZWVTZXQoYik7CisgICAgICAgICAgICAgICAgdGVtcC5yZW1vdmVBbGwoYSk7CisgICAgICAgICAgICAgICAgYS5jbGVhcigpOworICAgICAgICAgICAgICAgIGEuYWRkQWxsKHRlbXApOworICAgICAgICAgICAgICAgIHJldHVybiBhOworICAgICAgICAgICAgY2FzZSBOT05FOgorICAgICAgICAgICAgICAgIGEuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgICAgIGRlZmF1bHQ6IAorICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlJlbGF0aW9uICIgKyByZWxhdGlvbiArICIgb3V0IG9mIHJhbmdlIik7CisgICAgICAgIH0KKyAgICB9ICAgIAorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZVNldEl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlU2V0SXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45OTE5YTY3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZVNldEl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwyNDcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVTZXRJdGVyYXRvci5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzA0LzI1IDIzOjM0OjMyICQgCisgKiAkUmV2aXNpb246IDEuOSAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKK2ltcG9ydCBqYXZhLmlvLio7CisKKy8qKgorICogVW5pY29kZVNldEl0ZXJhdG9yIGl0ZXJhdGVzIG92ZXIgdGhlIGNvbnRlbnRzIG9mIGEgVW5pY29kZVNldC4gIEl0CisgKiBpdGVyYXRlcyBvdmVyIGVpdGhlciBjb2RlIHBvaW50cyBvciBjb2RlIHBvaW50IHJhbmdlcy4gIEFmdGVyIGFsbAorICogY29kZSBwb2ludHMgb3IgcmFuZ2VzIGhhdmUgYmVlbiByZXR1cm5lZCwgaXQgcmV0dXJucyB0aGUKKyAqIG11bHRpY2hhcmFjdGVyIHN0cmluZ3Mgb2YgdGhlIFVuaWNvZFNldCwgaWYgYW55LgorICoKKyAqIDxwPlRvIGl0ZXJhdGUgb3ZlciBjb2RlIHBvaW50cywgdXNlIGEgbG9vcCBsaWtlIHRoaXM6CisgKiA8cHJlPgorICogVW5pY29kZVNldEl0ZXJhdG9yIGl0KHNldCk7CisgKiB3aGlsZSAoc2V0Lm5leHQoKSkgeworICogICBpZiAoc2V0LmNvZGVwb2ludCAhPSBVbmljb2RlU2V0SXRlcmF0b3I6OklTX1NUUklORykgeworICogICAgIHByb2Nlc3NDb2RlcG9pbnQoc2V0LmNvZGVwb2ludCk7CisgKiAgIH0gZWxzZSB7CisgKiAgICAgcHJvY2Vzc1N0cmluZyhzZXQuc3RyaW5nKTsKKyAqICAgfQorICogfQorICogPC9wcmU+CisgKgorICogPHA+VG8gaXRlcmF0ZSBvdmVyIGNvZGUgcG9pbnQgcmFuZ2VzLCB1c2UgYSBsb29wIGxpa2UgdGhpczoKKyAqIDxwcmU+CisgKiBVbmljb2RlU2V0SXRlcmF0b3IgaXQoc2V0KTsKKyAqIHdoaWxlIChzZXQubmV4dFJhbmdlKCkpIHsKKyAqICAgaWYgKHNldC5jb2RlcG9pbnQgIT0gVW5pY29kZVNldEl0ZXJhdG9yOjpJU19TVFJJTkcpIHsKKyAqICAgICBwcm9jZXNzQ29kZXBvaW50UmFuZ2Uoc2V0LmNvZGVwb2ludCwgc2V0LmNvZGVwb2ludEVuZCk7CisgKiAgIH0gZWxzZSB7CisgKiAgICAgcHJvY2Vzc1N0cmluZyhzZXQuc3RyaW5nKTsKKyAqICAgfQorICogfQorICogPC9wcmU+CisgKiBAYXV0aG9yIE0uIERhdmlzCisgKiBAZHJhZnQKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFVuaWNvZGVTZXRJdGVyYXRvciB7CisJCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgPHR0PmNvZGVwb2ludDwvdHQ+IGlmIHRoZSBpdGVyYXRvciBwb2ludHMgdG8gYSBzdHJpbmcuCisgICAgICogSWYgPHR0PmNvZGVwb2ludCA9PSBJU19TVFJJTkc8L3R0PiwgdGhlbiBleGFtaW5lCisgICAgICogPHR0PnN0cmluZzwvdHQ+IGZvciB0aGUgY3VycmVudCBpdGVyYXRpb24gcmVzdWx0LgorICAgICAqLworCXB1YmxpYyBzdGF0aWMgaW50IElTX1NUUklORyA9IC0xOworCQorCS8qKgorICAgICAqIEN1cnJlbnQgY29kZSBwb2ludCwgb3IgdGhlIHNwZWNpYWwgdmFsdWUgPHR0PklTX1NUUklORzwvdHQ+LCBpZgorICAgICAqIHRoZSBpdGVyYXRvciBwb2ludHMgdG8gYSBzdHJpbmcuCisgICAgICovCisJcHVibGljIGludCBjb2RlcG9pbnQ7CisKKyAgICAvKioKKyAgICAgKiBXaGVuIGl0ZXJhdGluZyBvdmVyIHJhbmdlcyB1c2luZyA8dHQ+bmV4dFJhbmdlKCk8L3R0PiwKKyAgICAgKiA8dHQ+Y29kZXBvaW50RW5kPC90dD4gY29udGFpbnMgdGhlIGluY2x1c2l2ZSBlbmQgb2YgdGhlCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCBpZiA8dHQ+Y29kZXBvaW50ICE9IElTX1NUUklORzwvdHQ+LiAgSWYKKyAgICAgKiBpdGVyYXRpbmcgb3ZlciBjb2RlIHBvaW50cyB1c2luZyA8dHQ+bmV4dCgpPC90dD4sIG9yIGlmCisgICAgICogPHR0PmNvZGVwb2ludCA9PSBJU19TVFJJTkc8L3R0PiwgdGhlbiB0aGUgdmFsdWUgb2YKKyAgICAgKiA8dHQ+Y29kZXBvaW50RW5kPC90dD4gaXMgdW5kZWZpbmVkLgorICAgICAqLworCXB1YmxpYyBpbnQgY29kZXBvaW50RW5kOworCisgICAgLyoqCisgICAgICogSWYgPHR0PmNvZGVwb2ludCA9PSBJU19TVFJJTkc8L3R0PiwgdGhlbiA8dHQ+c3RyaW5nPC90dD4gcG9pbnRzCisgICAgICogdG8gdGhlIGN1cnJlbnQgc3RyaW5nLiAgSWYgPHR0PmNvZGVwb2ludCAhPSBJU19TVFJJTkc8L3R0PiwgdGhlCisgICAgICogdmFsdWUgb2YgPHR0PnN0cmluZzwvdHQ+IGlzIHVuZGVmaW5lZC4KKyAgICAgKi8KKwlwdWJsaWMgU3RyaW5nIHN0cmluZzsKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVyIHRoZSBnaXZlbiBzZXQuCisgICAgICogQHBhcmFtIHNldCBzZXQgdG8gaXRlcmF0ZSBvdmVyCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXRJdGVyYXRvcihVbmljb2RlU2V0IHNldCkgeworICAgICAgICByZXNldChzZXQpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlIGFuIGl0ZXJhdG9yIG92ZXIgbm90aGluZy4gIDx0dD5uZXh0KCk8L3R0PiBhbmQKKyAgICAgKiA8dHQ+bmV4dFJhbmdlKCk8L3R0PiByZXR1cm4gZmFsc2UuIFRoaXMgaXMgYSBjb252ZW5pZW5jZQorICAgICAqIGNvbnN0cnVjdG9yIGFsbG93aW5nIHRoZSB0YXJnZXQgdG8gYmUgc2V0IGxhdGVyLgorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlU2V0SXRlcmF0b3IoKSB7CisgICAgICAgIHJlc2V0KG5ldyBVbmljb2RlU2V0KCkpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbmV4dCBlbGVtZW50IGluIHRoZSBzZXQsIGVpdGhlciBhIHNpbmdsZSBjb2RlIHBvaW50CisgICAgICogb3IgYSBzdHJpbmcuICBJZiB0aGVyZSBhcmUgbm8gbW9yZSBlbGVtZW50cyBpbiB0aGUgc2V0LCByZXR1cm4KKyAgICAgKiBmYWxzZS4gIElmIDx0dD5jb2RlcG9pbnQgPT0gSVNfU1RSSU5HPC90dD4sIHRoZSB2YWx1ZSBpcyBhCisgICAgICogc3RyaW5nIGluIHRoZSA8dHQ+c3RyaW5nPC90dD4gZmllbGQuICBPdGhlcndpc2UgdGhlIHZhbHVlIGlzIGEKKyAgICAgKiBzaW5nbGUgY29kZSBwb2ludCBpbiB0aGUgPHR0PmNvZGVwb2ludDwvdHQ+IGZpZWxkLgorICAgICAqIAorICAgICAqIDxwPlRoZSBvcmRlciBvZiBpdGVyYXRpb24gaXMgYWxsIGNvZGUgcG9pbnRzIGluIHNvcnRlZCBvcmRlciwKKyAgICAgKiBmb2xsb3dlZCBieSBhbGwgc3RyaW5ncyBzb3J0ZWQgb3JkZXIuICA8dHQ+Y29kZXBvaW50RW5kPC90dD4gaXMKKyAgICAgKiB1bmRlZmluZWQgYWZ0ZXIgY2FsbGluZyB0aGlzIG1ldGhvZC4gIDx0dD5zdHJpbmc8L3R0PiBpcworICAgICAqIHVuZGVmaW5lZCB1bmxlc3MgPHR0PmNvZGVwb2ludCA9PSBJU19TVFJJTkc8L3R0Pi4gIERvIG5vdCBtaXgKKyAgICAgKiBjYWxscyB0byA8dHQ+bmV4dCgpPC90dD4gYW5kIDx0dD5uZXh0UmFuZ2UoKTwvdHQ+IHdpdGhvdXQKKyAgICAgKiBjYWxsaW5nIDx0dD5yZXNldCgpPC90dD4gYmV0d2VlbiB0aGVtLiAgVGhlIHJlc3VsdHMgb2YgZG9pbmcgc28KKyAgICAgKiBhcmUgdW5kZWZpbmVkLgorICAgICAqCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZXJlIHdhcyBhbm90aGVyIGVsZW1lbnQgaW4gdGhlIHNldCBhbmQgdGhpcworICAgICAqIG9iamVjdCBjb250YWlucyB0aGUgZWxlbWVudC4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBuZXh0KCkgeworICAgICAgICBpZiAobmV4dEVsZW1lbnQgPD0gZW5kRWxlbWVudCkgeworICAgICAgICAJY29kZXBvaW50ID0gY29kZXBvaW50RW5kID0gbmV4dEVsZW1lbnQrKzsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmIChyYW5nZSA8IGVuZFJhbmdlKSB7CisgICAgICAgIAlsb2FkUmFuZ2UoKytyYW5nZSk7CisgICAgICAgIAljb2RlcG9pbnQgPSBjb2RlcG9pbnRFbmQgPSBuZXh0RWxlbWVudCsrOworICAgICAgICAJcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIHN0cmluZ0l0ZXJhdG9yID09IG51bGwgaWZmIHRoZXJlIGFyZSBubyBzdHJpbmcgZWxlbWVudHMgcmVtYWluaW5nCisgICAgICAgIAorICAgICAgICBpZiAoc3RyaW5nSXRlcmF0b3IgPT0gbnVsbCkgcmV0dXJuIGZhbHNlOworICAgICAgICBjb2RlcG9pbnQgPSBJU19TVFJJTkc7IC8vIHNpZ25hbCB0aGF0IHZhbHVlIGlzIGFjdHVhbGx5IGEgc3RyaW5nCisgICAgICAgIHN0cmluZyA9IChTdHJpbmcpc3RyaW5nSXRlcmF0b3IubmV4dCgpOworICAgICAgICBpZiAoIXN0cmluZ0l0ZXJhdG9yLmhhc05leHQoKSkgc3RyaW5nSXRlcmF0b3IgPSBudWxsOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG5leHQgZWxlbWVudCBpbiB0aGUgc2V0LCBlaXRoZXIgYSBjb2RlIHBvaW50IHJhbmdlCisgICAgICogb3IgYSBzdHJpbmcuICBJZiB0aGVyZSBhcmUgbm8gbW9yZSBlbGVtZW50cyBpbiB0aGUgc2V0LCByZXR1cm4KKyAgICAgKiBmYWxzZS4gIElmIDx0dD5jb2RlcG9pbnQgPT0gSVNfU1RSSU5HPC90dD4sIHRoZSB2YWx1ZSBpcyBhCisgICAgICogc3RyaW5nIGluIHRoZSA8dHQ+c3RyaW5nPC90dD4gZmllbGQuICBPdGhlcndpc2UgdGhlIHZhbHVlIGlzIGEKKyAgICAgKiByYW5nZSBvZiBvbmUgb3IgbW9yZSBjb2RlIHBvaW50cyBmcm9tIDx0dD5jb2RlcG9pbnQ8L3R0PiB0bworICAgICAqIDx0dD5jb2RlcG9pbnRlRW5kPC90dD4gaW5jbHVzaXZlLgorICAgICAqIAorICAgICAqIDxwPlRoZSBvcmRlciBvZiBpdGVyYXRpb24gaXMgYWxsIGNvZGUgcG9pbnRzIHJhbmdlcyBpbiBzb3J0ZWQKKyAgICAgKiBvcmRlciwgZm9sbG93ZWQgYnkgYWxsIHN0cmluZ3Mgc29ydGVkIG9yZGVyLiAgUmFuZ2VzIGFyZQorICAgICAqIGRpc2pvaW50IGFuZCBub24tY29udGlndW91cy4gIDx0dD5zdHJpbmc8L3R0PiBpcyB1bmRlZmluZWQKKyAgICAgKiB1bmxlc3MgPHR0PmNvZGVwb2ludCA9PSBJU19TVFJJTkc8L3R0Pi4gIERvIG5vdCBtaXggY2FsbHMgdG8KKyAgICAgKiA8dHQ+bmV4dCgpPC90dD4gYW5kIDx0dD5uZXh0UmFuZ2UoKTwvdHQ+IHdpdGhvdXQgY2FsbGluZworICAgICAqIDx0dD5yZXNldCgpPC90dD4gYmV0d2VlbiB0aGVtLiAgVGhlIHJlc3VsdHMgb2YgZG9pbmcgc28gYXJlCisgICAgICogdW5kZWZpbmVkLgorICAgICAqCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZXJlIHdhcyBhbm90aGVyIGVsZW1lbnQgaW4gdGhlIHNldCBhbmQgdGhpcworICAgICAqIG9iamVjdCBjb250YWlucyB0aGUgZWxlbWVudC4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBuZXh0UmFuZ2UoKSB7CisgICAgICAgIGlmIChuZXh0RWxlbWVudCA8PSBlbmRFbGVtZW50KSB7CisgICAgICAgIAljb2RlcG9pbnRFbmQgPSBlbmRFbGVtZW50OworICAgICAgICAJY29kZXBvaW50ID0gbmV4dEVsZW1lbnQ7CisgICAgICAgIAluZXh0RWxlbWVudCA9IGVuZEVsZW1lbnQrMTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmIChyYW5nZSA8IGVuZFJhbmdlKSB7CisgICAgICAgICAgICBsb2FkUmFuZ2UoKytyYW5nZSk7CisgICAgICAgIAljb2RlcG9pbnRFbmQgPSBlbmRFbGVtZW50OworICAgICAgICAJY29kZXBvaW50ID0gbmV4dEVsZW1lbnQ7CisgICAgICAgIAluZXh0RWxlbWVudCA9IGVuZEVsZW1lbnQrMTsKKyAgICAgICAgCXJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBzdHJpbmdJdGVyYXRvciA9PSBudWxsIGlmZiB0aGVyZSBhcmUgbm8gc3RyaW5nIGVsZW1lbnRzIHJlbWFpbmluZworICAgICAgICAKKyAgICAgICAgaWYgKHN0cmluZ0l0ZXJhdG9yID09IG51bGwpIHJldHVybiBmYWxzZTsKKyAgICAgICAgY29kZXBvaW50ID0gSVNfU1RSSU5HOyAvLyBzaWduYWwgdGhhdCB2YWx1ZSBpcyBhY3R1YWxseSBhIHN0cmluZworICAgICAgICBzdHJpbmcgPSAoU3RyaW5nKXN0cmluZ0l0ZXJhdG9yLm5leHQoKTsKKyAgICAgICAgaWYgKCFzdHJpbmdJdGVyYXRvci5oYXNOZXh0KCkpIHN0cmluZ0l0ZXJhdG9yID0gbnVsbDsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoaXMgaXRlcmF0b3IgdG8gdmlzaXQgdGhlIGVsZW1lbnRzIG9mIHRoZSBnaXZlbiBzZXQgYW5kCisgICAgICogcmVzZXRzIGl0IHRvIHRoZSBzdGFydCBvZiB0aGF0IHNldC4gIFRoZSBpdGVyYXRvciBpcyB2YWxpZCBvbmx5CisgICAgICogc28gbG9uZyBhcyA8dHQ+c2V0PC90dD4gaXMgdmFsaWQuCisgICAgICogQHBhcmFtIHNldCB0aGUgc2V0IHRvIGl0ZXJhdGUgb3Zlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZXNldChVbmljb2RlU2V0IHNldCkgeworICAgICAgICB0aGlzLnNldCA9IHNldDsKKyAgICAgICAgcmVzZXQoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJlc2V0cyB0aGlzIGl0ZXJhdG9yIHRvIHRoZSBzdGFydCBvZiB0aGUgc2V0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlc2V0KCkgeworICAgICAgICBlbmRSYW5nZSA9IHNldC5nZXRSYW5nZUNvdW50KCkgLSAxOworICAgICAgICByYW5nZSA9IDA7CisgICAgICAgIGVuZEVsZW1lbnQgPSAtMTsKKyAgICAgICAgbmV4dEVsZW1lbnQgPSAwOyAgICAgICAgICAgIAorICAgICAgICBpZiAoZW5kUmFuZ2UgPj0gMCkgeworICAgICAgICAgICAgbG9hZFJhbmdlKHJhbmdlKTsKKyAgICAgICAgfQorICAgICAgICBzdHJpbmdJdGVyYXRvciA9IG51bGw7CisgICAgICAgIGlmIChzZXQuc3RyaW5ncyAhPSBudWxsKSB7CisgICAgICAgIAlzdHJpbmdJdGVyYXRvciA9IHNldC5zdHJpbmdzLml0ZXJhdG9yKCk7CisgICAgICAgIAlpZiAoIXN0cmluZ0l0ZXJhdG9yLmhhc05leHQoKSkgc3RyaW5nSXRlcmF0b3IgPSBudWxsOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIElOVEVSTkFMOiBDYXVzZXMgdGhlIGludGVyYXRpb24gdG8gb25seSB2aXNpdCBwYXJ0IG9mIGxvbmcgcmFuZ2VzCisgICAgICogQGludGVybmFsIHVzZWQgb25seSBmb3IgdGVzdGluZworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEFiYnJldmlhdGVkKGJvb2xlYW4gYWJicikgeworICAgICAgICBhYmJyZXZpYXRlZCA9IGFiYnI7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIElOVEVSTkFMOiBDYXVzZXMgdGhlIGludGVyYXRpb24gdG8gb25seSB2aXNpdCBwYXJ0IG9mIGxvbmcgcmFuZ2VzCisgICAgICogQGludGVybmFsIHVzZWQgb25seSBmb3IgdGVzdGluZworICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGdldEFiYnJldmlhdGVkKCkgeworICAgICAgICByZXR1cm4gYWJicmV2aWF0ZWQ7CisgICAgfQorICAgIAorICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09IFBSSVZBVEVTID09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIAorICAgIHByaXZhdGUgVW5pY29kZVNldCBzZXQ7CisgICAgcHJpdmF0ZSBpbnQgZW5kUmFuZ2UgPSAwOworICAgIHByaXZhdGUgaW50IHJhbmdlID0gMDsKKyAgICBwcml2YXRlIGludCBlbmRFbGVtZW50OworICAgIHByaXZhdGUgaW50IG5leHRFbGVtZW50OworICAgIHByaXZhdGUgYm9vbGVhbiBhYmJyZXZpYXRlZCA9IGZhbHNlOworICAgIHByaXZhdGUgSXRlcmF0b3Igc3RyaW5nSXRlcmF0b3IgPSBudWxsOworICAgIAorICAgIC8qKgorICAgICAqIEludmFyaWFudDogc3RyaW5nSXRlcmF0b3IgaXMgbnVsbCB3aGVuIHRoZXJlIGFyZSBubyAobW9yZSkgc3RyaW5ncyByZW1haW5pbmcKKyAgICAgKi8KKworICAgIHByaXZhdGUgZmluYWwgdm9pZCBsb2FkUmFuZ2UoaW50IHJhbmdlKSB7CisgICAgICAgIG5leHRFbGVtZW50ID0gc2V0LmdldFJhbmdlU3RhcnQocmFuZ2UpOworICAgICAgICBlbmRFbGVtZW50ID0gc2V0LmdldFJhbmdlRW5kKHJhbmdlKTsKKyAgICAgICAgaWYgKGFiYnJldmlhdGVkICYmIChlbmRFbGVtZW50ID4gbmV4dEVsZW1lbnQgKyA1MCkpIHsKKyAgICAgICAgICAgIGVuZEVsZW1lbnQgPSBuZXh0RWxlbWVudCArIDUwOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZVRvSGV4VHJhbnNsaXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVUb0hleFRyYW5zbGl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTYxOGY3YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVUb0hleFRyYW5zbGl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwzMjUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS90ZXh0L0F0dGljL1VuaWNvZGVUb0hleFRyYW5zbGl0ZXJhdG9yLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6MjMgJCAKKyAqICRSZXZpc2lvbjogMS4xMiAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworLyoqCisgKiBBIHRyYW5zbGl0ZXJhdG9yIHRoYXQgY29udmVydHMgZnJvbSBVbmljb2RlIGNoYXJhY3RlcnMgdG8gCisgKiBoZXhhZGVjaW1hbCBVbmljb2RlIGVzY2FwZSBzZXF1ZW5jZXMuICBJdCBvdXRwdXRzIGEKKyAqIHByZWZpeCBzcGVjaWZpZWQgaW4gdGhlIGNvbnN0cnVjdG9yIGFuZCBvcHRpb25hbGx5IGNvbnZlcnRzIHRoZSBoZXgKKyAqIGRpZ2l0cyB0byB1cHBlcmNhc2UuCisgKgorICogPHA+VGhlIGZvcm1hdCBvZiB0aGUgb3V0cHV0IGlzIHNldCBieSBhIHBhdHRlcm4uICBUaGlzIHBhdHRlcm4KKyAqIGZvbGxvd3MgdGhlIHNhbWUgc3ludGF4IGFzIDxjb2RlPkhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yPC9jb2RlPiwKKyAqIGV4Y2VwdCBpdCBkb2VzIG5vdCBhbGxvdyBtdWx0aXBsZSBzcGVjaWZpY2F0aW9ucy4gIFRoZSBwYXR0ZXJuIHNldHMKKyAqIHRoZSBwcmVmaXggc3RyaW5nLCBzdWZmaXggc3RyaW5nLCBhbmQgbWluaW11bSBhbmQgbWF4aW11bSBkaWdpdAorICogY291bnQuICBUaGVyZSBhcmUgbm8gc2V0dGVycyBvciBnZXR0ZXJzIGZvciB0aGVzZSBhdHRyaWJ1dGVzOyB0aGV5CisgKiBhcmUgc2V0IG9ubHkgdGhyb3VnaCB0aGUgcGF0dGVybi4KKyAqCisgKiA8cD5UaGUgc2V0VXBwZXJjYXNlKCkgYW5kIGlzVXBwZXJjYXNlKCkgbWV0aG9kcyBjb250cm9sIHdoZXRoZXIgJ2EnCisgKiB0aHJvdWdoICdmJyBvciAnQScgdGhyb3VnaCAnRicgYXJlIG91dHB1dCBhcyBoZXggZGlnaXRzLiAgVGhpcyBpcworICogbm90IGNvbnRyb2xsZWQgdGhyb3VnaCB0aGUgcGF0dGVybjsgb25seSB0aHJvdWdoIHRoZSBtZXRob2RzLiAgVGhlCisgKiBkZWZhdWx0IGlzIHVwcGVyY2FzZS4KKyAqCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAdmVyc2lvbiAkUkNTZmlsZTogVW5pY29kZVRvSGV4VHJhbnNsaXRlcmF0b3IuamF2YSx2ICQgJFJldmlzaW9uOiAxLjEyICQgJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6MjMgJAorICovCitwdWJsaWMgY2xhc3MgVW5pY29kZVRvSGV4VHJhbnNsaXRlcmF0b3IgZXh0ZW5kcyBUcmFuc2xpdGVyYXRvciB7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgIlx1MDBBOSBJQk0gQ29ycG9yYXRpb24gMTk5OS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgLyoqCisgICAgICogUGFja2FnZSBhY2Nlc3NpYmxlIElEIGZvciB0aGlzIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgX0lEID0gIkFueS1IZXgiOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhcltdIEhFWF9ESUdJVFMgPSB7CisgICAgICAgICcwJywgJzEnLCAnMicsICczJywgJzQnLCAnNScsICc2JywgJzcnLAorICAgICAgICAnOCcsICc5JywgJ2EnLCAnYicsICdjJywgJ2QnLCAnZScsICdmJywKKyAgICAgICAgJzAnLCAnMScsICcyJywgJzMnLCAnNCcsICc1JywgJzYnLCAnNycsCisgICAgICAgICc4JywgJzknLCAnQScsICdCJywgJ0MnLCAnRCcsICdFJywgJ0YnLAorICAgIH07CisKKyAgICAvLyBDaGFyYWN0ZXIgY29uc3RhbnRzIGZvciBzcGVjaWFsIHBhdHRlcm4gY2hhcnMKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIFpFUk8gICAgICA9ICcwJzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIFBPVU5EICAgICA9ICcjJzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEJBQ0tTTEFTSCA9ICdcXCc7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcGF0dGVybiBzZXQgYnkgYXBwbHlQYXR0ZXJuKCkgYW5kIHJldHVybmVkIGJ5IHRvUGF0dGVybigpLgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHBhdHRlcm47CisKKyAgICAvKioKKyAgICAgKiBUaGUgc3RyaW5nIHByZWNlZGluZyB0aGUgaGV4IGRpZ2l0cywgcGFyc2VkIGZyb20gdGhlIHBhdHRlcm4uCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgcHJlZml4OworCisgICAgLyoqCisgICAgICogVGhlIHN0cmluZyBmb2xsb3dpbmcgdGhlIGhleCBkaWdpdHMsIHBhcnNlZCBmcm9tIHRoZSBwYXR0ZXJuLgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHN1ZmZpeDsKKworICAgIC8qKgorICAgICAqIFRoZSBtaW5pbXVtIG51bWJlciBvZiBoZXggZGlnaXRzIHRvIG91dHB1dCwgYmV0d2VlbiAxIGFuZCA0LAorICAgICAqIGluY2x1c2l2ZS4gIFBhcnNlZCBmcm9tIHRoZSBwYXR0ZXJuLgorICAgICAqLworICAgIHByaXZhdGUgaW50IG1pbkRpZ2l0czsKKworICAgIC8qKgorICAgICAqIElmIHRydWUsIG91dHB1dCB1cHBlcmNhc2UgaGV4IGRpZ2l0czsgb3RoZXJ3aXNlIG91dHB1dAorICAgICAqIGxvd2VyY2FzZS4gIFNldCBieSBzZXRVcHBlcmNhc2UoKSBhbmQgcmV0dXJuZWQgYnkgaXNVcHBlcmNhc2UoKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gdXBwZXJjYXNlOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqIEBwYXJhbSBwYXR0ZXJuIFRoZSBwYXR0ZXJuIGZvciB0aGlzIHRyYW5zbGl0ZXJhdG9yLiAgU2VlCisgICAgICogYXBwbHlQYXR0ZXJuKCkgZm9yIHBhdHRlcm4gc3ludGF4LgorICAgICAqIEBwYXJhbSB1cHBlcmNhc2UgaWYgdHJ1ZSwgdGhlIGZvdXIgaGV4IGRpZ2l0cyB3aWxsIGJlCisgICAgICogY29udmVydGVkIHRvIHVwcGVyY2FzZTsgb3RoZXJ3aXNlIHRoZXkgd2lsbCBiZSBsb3dlcmNhc2UuCisgICAgICogSWdub3JlZCBpZiBkaXJlY3Rpb24gaXMgSEVYX1VOSUNPREUuCisgICAgICogQHBhcmFtIGZpbHRlciB0aGUgZmlsdGVyIGZvciB0aGlzIHRyYW5zbGl0ZXJhdG9yLCBvcgorICAgICAqIG51bGwgaWYgbm9uZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVRvSGV4VHJhbnNsaXRlcmF0b3IoU3RyaW5nIHBhdHRlcm4sIGJvb2xlYW4gdXBwZXJjYXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlRmlsdGVyIGZpbHRlcikgeworICAgICAgICBzdXBlcihfSUQsIGZpbHRlcik7CisgICAgICAgIHRoaXMudXBwZXJjYXNlID0gdXBwZXJjYXNlOworICAgICAgICBhcHBseVBhdHRlcm4ocGF0dGVybik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhbiB1cHBlcmNhc2UgdHJhbnNsaXRlcmF0b3Igd2l0aCBubyBmaWx0ZXIuCisgICAgICogQHBhcmFtIHBhdHRlcm4gVGhlIHBhdHRlcm4gZm9yIHRoaXMgdHJhbnNsaXRlcmF0b3IuICBTZWUKKyAgICAgKiBhcHBseVBhdHRlcm4oKSBmb3IgcGF0dGVybiBzeW50YXguCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVUb0hleFRyYW5zbGl0ZXJhdG9yKFN0cmluZyBwYXR0ZXJuKSB7CisgICAgICAgIHRoaXMocGF0dGVybiwgdHJ1ZSwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIHRyYW5zbGl0ZXJhdG9yIHdpdGggdGhlIGRlZmF1bHQgcHJlZml4ICImIzA5Mjt1IgorICAgICAqIHRoYXQgb3V0cHV0cyBmb3VyIHVwcGVyY2FzZSBoZXggZGlnaXRzLgorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlVG9IZXhUcmFuc2xpdGVyYXRvcigpIHsKKyAgICAgICAgc3VwZXIoX0lELCBudWxsKTsKKyAgICAgICAgcGF0dGVybiA9ICJcXFxcdTAwMDAiOworICAgICAgICBwcmVmaXggPSAiXFx1IjsKKyAgICAgICAgc3VmZml4ID0gIiI7CisgICAgICAgIG1pbkRpZ2l0cyA9IDQ7CisgICAgICAgIHVwcGVyY2FzZSA9IHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBwYXR0ZXJuIHJlY29nbml6ZWQgYnkgdGhpcyB0cmFuc2xpdGVyYXRvci4gIFRoZSBwYXR0ZXJuCisgICAgICogbXVzdCBjb250YWluIHplcm8gb3IgbW9yZSBwcmVmaXggY2hhcmFjdGVycywgb25lIG9yIG1vcmUgZGlnaXQKKyAgICAgKiBjaGFyYWN0ZXJzLCBhbmQgemVybyBvciBtb3JlIHN1ZmZpeCBjaGFyYWN0ZXJzLiAgVGhlIGRpZ2l0CisgICAgICogY2hhcmFjdGVycyBpbmRpY2F0ZXMgb3B0aW9uYWwgZGlnaXRzICgnIycpIGZvbGxvd2VkIGJ5IHJlcXVpcmVkCisgICAgICogZGlnaXRzICgnMCcpLiAgVGhlIHRvdGFsIG51bWJlciBvZiBkaWdpdHMgY2Fubm90IGV4Y2VlZCA0LCBhbmQKKyAgICAgKiBtdXN0IGJlIGF0IGxlYXN0IDEgcmVxdWlyZWQgZGlnaXQuICBVc2UgYSBiYWNrc2xhc2ggKCdcXCcpIHRvCisgICAgICogZXNjYXBlIGFueSBvZiB0aGUgc3BlY2lhbCBjaGFyYWN0ZXJzLiAgQW4gZW1wdHkgcGF0dGVybiBpcyBub3QKKyAgICAgKiBhbGxvd2VkLgorICAgICAqCisgICAgICogPHA+RXhhbXBsZTogIlUrMDAwMCIgc3BlY2lmaWVzIGEgcHJlZml4IG9mICJVKyIsIGV4YWN0bHkgZm91cgorICAgICAqIGRpZ2l0cywgYW5kIG5vIHN1ZmZpeC4gICI8IyMjMD4iIGhhcyBhIHByZWZpeCBvZiAiPCIsIGJldHdlZW4KKyAgICAgKiBvbmUgYW5kIGZvdXIgZGlnaXRzLCBhbmQgYSBzdWZmaXggb2YgIj4iLgorICAgICAqCisgICAgICogPHA+PHByZT4KKyAgICAgKiBwYXR0ZXJuIDo9IHByZWZpeC1jaGFyKiBkaWdpdC1zcGVjIHN1ZmZpeC1jaGFyKgorICAgICAqIGRpZ2l0LXNwZWMgOj0gJyMnKiAnMCcrCisgICAgICogcHJlZml4LWNoYXIgOj0gW15zcGVjaWFsLWNoYXJdIHwgJ1xcJyBzcGVjaWFsLWNoYXIKKyAgICAgKiBzdWZmaXgtY2hhciA6PSBbXnNwZWNpYWwtY2hhcl0gfCAnXFwnIHNwZWNpYWwtY2hhcgorICAgICAqIHNwZWNpYWwtY2hhciA6PSAnOycgfCAnMCcgfCAnIycgfCAnXFwnCisgICAgICogPC9wcmU+CisgICAgICoKKyAgICAgKiA8cD5MaW1pdGF0aW9uczogVGhlcmUgaXMgbm8gd2F5IHRvIHNldCB0aGUgdXBwZXJjYXNlIGF0dHJpYnV0ZQorICAgICAqIGluIHRoZSBwYXR0ZXJuLiAgKGFwcGx5UGF0dGVybigpIGRvZXMgbm90IGFsdGVyIHRoZSB1cHBlcmNhc2UKKyAgICAgKiBhdHRyaWJ1dGUuKQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFwcGx5UGF0dGVybihTdHJpbmcgdGhlUGF0dGVybikgeworICAgICAgICBTdHJpbmdCdWZmZXIgcHJlZml4QnVmID0gbnVsbDsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHN1ZmZpeEJ1ZiA9IG51bGw7CisgICAgICAgIGludCBtaW5EaWdpdHMgPSAwOworICAgICAgICBpbnQgbWF4RGlnaXRzID0gMDsKKworICAgICAgICAvKiBUaGUgbW9kZSBzcGVjaWZpZXMgd2hlcmUgd2UgYXJlIGluIGVhY2ggc3BlYy4KKyAgICAgICAgICogbW9kZSAwID0gaW4gcHJlZml4CisgICAgICAgICAqIG1vZGUgMSA9IGluIG9wdGlvbmFsIGRpZ2l0cyAoIykKKyAgICAgICAgICogbW9kZSAyID0gaW4gcmVxdWlyZWQgZGlnaXRzICgwKQorICAgICAgICAgKiBtb2RlIDMgPSBpbiBzdWZmaXgKKyAgICAgICAgICovCisgICAgICAgIGludCBtb2RlID0gMDsKKworICAgICAgICBmb3IgKGludCBpPTA7IGk8dGhlUGF0dGVybi5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGMgPSB0aGVQYXR0ZXJuLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGJvb2xlYW4gaXNMaXRlcmFsID0gZmFsc2U7CisgICAgICAgICAgICBpZiAoYyA9PSBCQUNLU0xBU0gpIHsKKyAgICAgICAgICAgICAgICBpZiAoKGkrMSk8dGhlUGF0dGVybi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBpc0xpdGVyYWwgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBjID0gdGhlUGF0dGVybi5jaGFyQXQoKytpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBUcmFpbGluZyAnXFwnCisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlRyYWlsaW5nICdcXCciKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghaXNMaXRlcmFsKSB7CisgICAgICAgICAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgICAgICAgICAgY2FzZSBQT1VORDoKKyAgICAgICAgICAgICAgICAgICAgLy8gU2VlaW5nIGEgJyMnIG1vdmVzIHVzIGZyb20gbW9kZSAwIChwcmVmaXgpIHRvIG1vZGUgMQorICAgICAgICAgICAgICAgICAgICAvLyAob3B0aW9uYWwgZGlnaXRzKS4KKyAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGUgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgKyttb2RlOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1vZGUgIT0gMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gVW5xdW90ZWQgJyMnCisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJVbnF1b3RlZCAnIyciKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICArK21heERpZ2l0czsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBaRVJPOgorICAgICAgICAgICAgICAgICAgICAvLyBTZWVpbmcgYSAnMCcgbW92ZXMgdXMgdG8gbW9kZSAyIChyZXF1aXJlZCBkaWdpdHMpCisgICAgICAgICAgICAgICAgICAgIGlmIChtb2RlIDwgMikgeworICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSA9IDI7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobW9kZSAhPSAyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBVbnF1b3RlZCAnMCcKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlVucXVvdGVkICcwJyIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICsrbWluRGlnaXRzOworICAgICAgICAgICAgICAgICAgICArK21heERpZ2l0czsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgaXNMaXRlcmFsID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoaXNMaXRlcmFsKSB7CisgICAgICAgICAgICAgICAgaWYgKG1vZGUgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBpZiAocHJlZml4QnVmID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeEJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBwcmVmaXhCdWYuYXBwZW5kKGMpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIEFueSBsaXRlcmFsIG91dHNpZGUgdGhlIHByZWZpeCBtb3ZlcyB1cyBpbnRvIG1vZGUgMworICAgICAgICAgICAgICAgICAgICAvLyAoc3VmZml4KQorICAgICAgICAgICAgICAgICAgICBtb2RlID0gMzsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN1ZmZpeEJ1ZiA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdWZmaXhCdWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgc3VmZml4QnVmLmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAobWluRGlnaXRzIDwgMSB8fCBtYXhEaWdpdHMgPiA0KSB7CisgICAgICAgICAgICAvLyBJbnZhbGlkIG1pbi9tYXggZGlnaXQgY291bnQKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgbWluL21heCBkaWdpdCBjb3VudCIpOworICAgICAgICB9CisKKyAgICAgICAgcGF0dGVybiA9IHRoZVBhdHRlcm47CisgICAgICAgIHByZWZpeCA9IChwcmVmaXhCdWYgPT0gbnVsbCkgPyAiIiA6IHByZWZpeEJ1Zi50b1N0cmluZygpOworICAgICAgICBzdWZmaXggPSAoc3VmZml4QnVmID09IG51bGwpID8gIiIgOiBzdWZmaXhCdWYudG9TdHJpbmcoKTsKKyAgICAgICAgdGhpcy5taW5EaWdpdHMgPSBtaW5EaWdpdHM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoaXMgdHJhbnNsaXRlcmF0b3IncyBwYXR0ZXJuLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9QYXR0ZXJuKCkgeworICAgICAgICByZXR1cm4gcGF0dGVybjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBzdHJpbmcgdGhhdCBwcmVjZWRlcyB0aGUgZm91ciBoZXggZGlnaXRzLgorICAgICAqIEByZXR1cm4gcHJlZml4IHN0cmluZworICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0UHJlZml4KCkgeworICAgICAgICByZXR1cm4gcHJlZml4OworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHN0cmluZyB0aGF0IHByZWNlZGVzIHRoZSBmb3VyIGhleCBkaWdpdHMuCisgICAgICoKKyAgICAgKiA8cD5DYWxsZXJzIG11c3QgdGFrZSBjYXJlIGlmIGEgdHJhbnNsaXRlcmF0b3IgaXMgaW4gdXNlIGJ5CisgICAgICogbXVsdGlwbGUgdGhyZWFkcy4gIFRoZSBwcmVmaXggc2hvdWxkIG5vdCBiZSBjaGFuZ2VkIGJ5IG9uZQorICAgICAqIHRocmVhZCB3aGlsZSBhbm90aGVyIHRocmVhZCBtYXkgYmUgdHJhbnNsaXRlcmF0aW5nLgorICAgICAqIEBwYXJhbSBwcmVmaXggcHJlZml4IHN0cmluZworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFByZWZpeChTdHJpbmcgcHJlZml4KSB7CisgICAgICAgIHRoaXMucHJlZml4ID0gcHJlZml4OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIHRyYW5zbGl0ZXJhdG9yIG91dHB1dHMgdXBwZXJjYXNlIGhleCBkaWdpdHMuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNVcHBlcmNhc2UoKSB7CisgICAgICAgIHJldHVybiB1cHBlcmNhc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyBpZiB0aGlzIHRyYW5zbGl0ZXJhdG9yIG91dHB1dHMgdXBwZXJjYXNlIGhleCBkaWdpdHMuCisgICAgICoKKyAgICAgKiA8cD5DYWxsZXJzIG11c3QgdGFrZSBjYXJlIGlmIGEgdHJhbnNsaXRlcmF0b3IgaXMgaW4gdXNlIGJ5CisgICAgICogbXVsdGlwbGUgdGhyZWFkcy4gIFRoZSB1cHBlcmNhc2UgbW9kZSBzaG91bGQgbm90IGJlIGNoYW5nZWQgYnkKKyAgICAgKiBvbmUgdGhyZWFkIHdoaWxlIGFub3RoZXIgdGhyZWFkIG1heSBiZSB0cmFuc2xpdGVyYXRpbmcuCisgICAgICogQHBhcmFtIG91dHB1dFVwcGVyY2FzZSBpZiB0cnVlLCB0aGVuIHRoaXMgdHJhbnNsaXRlcmF0b3IKKyAgICAgKiBvdXRwdXRzIHVwcGVyY2FzZSBoZXggZGlnaXRzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFVwcGVyY2FzZShib29sZWFuIG91dHB1dFVwcGVyY2FzZSkgeworICAgICAgICB1cHBlcmNhc2UgPSBvdXRwdXRVcHBlcmNhc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyB7QGxpbmsgVHJhbnNsaXRlcmF0b3IjaGFuZGxlVHJhbnNsaXRlcmF0ZX0uCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlVHJhbnNsaXRlcmF0ZShSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9zaXRpb24gb2Zmc2V0cywgYm9vbGVhbiBpbmNyZW1lbnRhbCkgeworICAgICAgICAvKioKKyAgICAgICAgICogUGVyZm9ybXMgdHJhbnNsaXRlcmF0aW9uIGNoYW5naW5nIGFsbCBjaGFyYWN0ZXJzIHRvCisgICAgICAgICAqIFVuaWNvZGUgaGV4YWRlY2ltYWwgZXNjYXBlcy4gIEZvciBleGFtcGxlLCAnQCcgLT4gIlUrMDA0MCIsCisgICAgICAgICAqIGFzc3VtaW5nIHRoZSBwcmVmaXggaXMgIlUrIi4gCisgICAgICAgICAqLworICAgICAgICBpbnQgY3Vyc29yID0gb2Zmc2V0cy5zdGFydDsKKyAgICAgICAgaW50IGxpbWl0ID0gb2Zmc2V0cy5saW1pdDsKKworICAgICAgICBTdHJpbmdCdWZmZXIgaGV4ID0gbmV3IFN0cmluZ0J1ZmZlcihwcmVmaXgpOworICAgICAgICBpbnQgcHJlZml4TGVuID0gcHJlZml4Lmxlbmd0aCgpOworCisgICAgICAgIHdoaWxlIChjdXJzb3IgPCBsaW1pdCkgeworICAgICAgICAgICAgY2hhciBjID0gdGV4dC5jaGFyQXQoY3Vyc29yKTsKKworICAgICAgICAgICAgaGV4LnNldExlbmd0aChwcmVmaXhMZW4pOworICAgICAgICAgICAgYm9vbGVhbiBzaG93UmVzdCA9IGZhbHNlOworICAgICAgICAgICAgZm9yIChpbnQgaT0zOyBpPj0wOyAtLWkpIHsKKyAgICAgICAgICAgICAgICBpbnQgZCA9IChjID4+IChpKjQpKSAmIDB4RjsKKyAgICAgICAgICAgICAgICBpZiAoc2hvd1Jlc3QgfHwgKGQgIT0gMCkgfHwgbWluRGlnaXRzID4gaSkgeworICAgICAgICAgICAgICAgICAgICBoZXguYXBwZW5kKEhFWF9ESUdJVFNbdXBwZXJjYXNlID8gKGR8MTYpIDogZF0pOworICAgICAgICAgICAgICAgICAgICBzaG93UmVzdCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaGV4LmFwcGVuZChzdWZmaXgpOworCisgICAgICAgICAgICB0ZXh0LnJlcGxhY2UoY3Vyc29yLCBjdXJzb3IrMSwgaGV4LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgaW50IGxlbiA9IGhleC5sZW5ndGgoKTsKKyAgICAgICAgICAgIGN1cnNvciArPSBsZW47IC8vIEFkdmFuY2UgY3Vyc29yIGJ5IDEgYW5kIGFkanVzdCBmb3IgbmV3IHRleHQKKyAgICAgICAgICAgIC0tbGVuOworICAgICAgICAgICAgbGltaXQgKz0gbGVuOworICAgICAgICB9CisKKyAgICAgICAgb2Zmc2V0cy5jb250ZXh0TGltaXQgKz0gbGltaXQgLSBvZmZzZXRzLmxpbWl0OworICAgICAgICBvZmZzZXRzLmxpbWl0ID0gbGltaXQ7CisgICAgICAgIG9mZnNldHMuc3RhcnQgPSBjdXJzb3I7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvVXBwZXJjYXNlVHJhbnNsaXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VwcGVyY2FzZVRyYW5zbGl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjVkMjcxZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VwcGVyY2FzZVRyYW5zbGl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSw5NiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L3RleHQvVXBwZXJjYXNlVHJhbnNsaXRlcmF0b3IuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wNi8yMCAwMToyMToxOCAkIAorICogJFJldmlzaW9uOiAxLjEwICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworaW1wb3J0IGphdmEudXRpbC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3RlclByb3BlcnR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVW5pY29kZUNoYXJhY3Rlckl0ZXJhdG9yOworCisvKioKKyAqIEEgdHJhbnNsaXRlcmF0b3IgdGhhdCBwZXJmb3JtcyBsb2NhbGUtc2Vuc2l0aXZlIHRvVXBwZXIoKQorICogY2FzZSBtYXBwaW5nLgorICovCitjbGFzcyBVcHBlcmNhc2VUcmFuc2xpdGVyYXRvciBleHRlbmRzIFRyYW5zbGl0ZXJhdG9yIHsKKworICAgIC8qKgorICAgICAqIFBhY2thZ2UgYWNjZXNzaWJsZSBJRC4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIF9JRCA9ICJBbnktVXBwZXIiOworICAgIC8vIFRPRE86IEFkZCB2YXJpYW50cyBmb3IgdHIsIGF6LCBsdCwgZGVmYXVsdCA9IGRlZmF1bHQgbG9jYWxlCisKKyAgICAvKioKKyAgICAgKiBTeXN0ZW0gcmVnaXN0cmF0aW9uIGhvb2suCisgICAgICovCisgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXIoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeShfSUQsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVXBwZXJjYXNlVHJhbnNsaXRlcmF0b3IoTG9jYWxlLlVTKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBMb2NhbGUgbG9jOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqLworICAgIHB1YmxpYyBVcHBlcmNhc2VUcmFuc2xpdGVyYXRvcihMb2NhbGUgbG9jKSB7CisgICAgICAgIHN1cGVyKF9JRCwgbnVsbCk7CisgICAgICAgIHRoaXMubG9jID0gbG9jOworICAgIH0KKworICAgIC8qKgorICAgICAqIEltcGxlbWVudHMge0BsaW5rIFRyYW5zbGl0ZXJhdG9yI2hhbmRsZVRyYW5zbGl0ZXJhdGV9LgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvc2l0aW9uIG9mZnNldHMsIGJvb2xlYW4gaXNJbmNyZW1lbnRhbCkgeworICAgICAgICBpbnQgdGV4dFBvcyA9IG9mZnNldHMuc3RhcnQ7CisgICAgICAgIGlmICh0ZXh0UG9zID49IG9mZnNldHMubGltaXQpIHJldHVybjsKKworICAgICAgICAvLyBnZXQgc3RyaW5nIGZvciBjb250ZXh0CisgICAgICAgIC8vIFRPRE86IGFkZCBjb252ZW5pZW5jZSBtZXRob2QgdG8gZG8gdGhpcywgc2luY2Ugd2UgZG8gaXQgYWxsIG92ZXIKKyAgICAgICAgCisgICAgICAgIFVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvciBvcmlnaW5hbCA9IG5ldyBVbmljb2RlQ2hhcmFjdGVySXRlcmF0b3IodGV4dCk7CisgICAgICAgIAorICAgICAgICAvLyBXYWxrIHRocm91Z2ggb3JpZ2luYWwgc3RyaW5nCisgICAgICAgIC8vIElmIHRoZXJlIGlzIGEgY2FzZSBjaGFuZ2UsIG1vZGlmeSBjb3JyZXNwb25kaW5nIHBvc2l0aW9uIGluIHJlcGxhY2VhYmxlCisgICAgICAgIAorICAgICAgICBpbnQgbGltaXQgPSBvZmZzZXRzLmxpbWl0OworICAgICAgICBpbnQgY3A7CisgICAgICAgIGludCBvbGRMZW47CisgICAgICAgIAorICAgICAgICB3aGlsZSAodGV4dFBvcyA8IGxpbWl0KSB7CisgICAgICAgIAlvcmlnaW5hbC5zZXRJbmRleCh0ZXh0UG9zKTsKKyAgICAgICAgICAgIGNwID0gb3JpZ2luYWwuY3VycmVudENvZGVQb2ludCgpOworICAgICAgICAgICAgb2xkTGVuID0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKTsKKyAgICAgICAgICAgIGludCBuZXdMZW4gPSBtX2NoYXJwcHR5Xy50b1VwcGVyT3JUaXRsZUNhc2UobG9jLCBjcCwgb3JpZ2luYWwsIHRydWUsIGJ1ZmZlcik7CisgICAgICAgICAgICBpZiAobmV3TGVuID49IDApIHsKKyAgICAgICAgICAgICAgICB0ZXh0LnJlcGxhY2UodGV4dFBvcywgdGV4dFBvcyArIG9sZExlbiwgYnVmZmVyLCAwLCBuZXdMZW4pOworICAgICAgICAgICAgICAgIGlmIChuZXdMZW4gIT0gb2xkTGVuKSB7CisgICAgICAgICAgICAgICAgICAgIHRleHRQb3MgKz0gbmV3TGVuOworICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLmxpbWl0ICs9IG5ld0xlbiAtIG9sZExlbjsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0cy5jb250ZXh0TGltaXQgKz0gbmV3TGVuIC0gb2xkTGVuOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0ZXh0UG9zICs9IG9sZExlbjsKKyAgICAgICAgfQorICAgICAgICBvZmZzZXRzLnN0YXJ0ID0gb2Zmc2V0cy5saW1pdDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBjaGFyIGJ1ZmZlcltdID0gbmV3IGNoYXJbVUNoYXJhY3RlclByb3BlcnR5Lk1BWF9DQVNFX01BUF9TSVpFXTsKKwkvKioKKwkgKiBDaGFyYWN0ZXIgcHJvcGVydHkgZGF0YWJhc2UKKwkgKi8KKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBVQ2hhcmFjdGVyUHJvcGVydHkgbV9jaGFycHB0eV8gPSAKKwkJCQkJCQkJCQlVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0SW5zdGFuY2UoKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L3BhY2thZ2UuaHRtbCBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L3BhY2thZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41NjYyZGEwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvcGFja2FnZS5odG1sCkBAIC0wLDAgKzEsMTcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCAzLjIgRmluYWwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworICAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvdGV4dC9wYWNrYWdlLmh0bWwsdiAkCisgICRSZXZpc2lvbjogMS4xICQKKyAgJERhdGU6IDIwMDAvMDMvMTUgMjE6MzU6NTEgJAorLS0+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CitDbGFzc2VzIGZvciBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLCBEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yCitOb3JtYWxpemVyLCBSdWxlQmFzZWROdW1iZXJGb3JtYXQsIEJpZ051bWJlckZvcm1hdCwKK1VuaWNvZGUgY29tcHJlc3Npb24sIEludGVybmF0aW9uYWwgU2VhcmNoaW5nLCBhbmQgVHJhbnNsaXRlcmF0b3IuCis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQnVkZGhpc3RDYWxlbmRhci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQnVkZGhpc3RDYWxlbmRhci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjYwYjgwNjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9CdWRkaGlzdENhbGVuZGFyLmphdmEKQEAgLTAsMCArMSwxOTAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS91dGlsL0J1ZGRoaXN0Q2FsZW5kYXIuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNjoyNCAkIAorICogJFJldmlzaW9uOiAxLjggJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXI7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworLyoqCisgKiA8Y29kZT5CdWRkaGlzdENhbGVuZGFyPC9jb2RlPiBpcyBhIHN1YmNsYXNzIG9mIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPgorICogdGhhdCBudW1iZXJzIHllYXJzIHNpbmNlIHRoZSBiaXJ0aCBvZiB0aGUgQnVkZGhhLiAgVGhpcyBpcyB0aGUgY2l2aWwgY2FsZW5kYXIKKyAqIGluIHNvbWUgcHJlZG9taW5hbnRseSBCdWRkaGlzdCBjb3VudHJpZXMgc3VjaCBhcyBUaGFpbGFuZCwgYW5kIGl0IGlzIHVzZWQgZm9yCisgKiByZWxpZ2lvdXMgcHVycG9zZXMgZWxzZXdoZXJlLgorICogPHA+CisgKiBUaGUgQnVkZGhpc3QgY2FsZW5kYXIgaXMgaWRlbnRpY2FsIHRvIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIgaW4gYWxsIHJlc3BlY3RzCisgKiBleGNlcHQgZm9yIHRoZSB5ZWFyIGFuZCBlcmEuICBZZWFycyBhcmUgbnVtYmVyZWQgc2luY2UgdGhlIGJpcnRoIG9mIHRoZQorICogQnVkZGhhIGluIDU0MyBCQyAoR3JlZ29yaWFuKSwgc28gdGhhdCAxIEFEIChHcmVnb3JpYW4pIGlzIGVxdWl2YWxlbnQgdG8gNTQ0CisgKiBCRSAoQnVkZGhpc3QgRXJhKSBhbmQgMTk5OCBBRCBpcyAyNTQxIEJFLgorICogPHA+CisgKiBUaGUgQnVkZGhpc3QgQ2FsZW5kYXIgaGFzIG9ubHkgb25lIGFsbG93YWJsZSBlcmE6IDxjb2RlPkJFPC9jb2RlPi4gIElmIHRoZQorICogY2FsZW5kYXIgaXMgbm90IGluIGxlbmllbnQgbW9kZSAoc2VlIDxjb2RlPnNldExlbmllbnQ8L2NvZGU+KSwgZGF0ZXMgYmVmb3JlCisgKiAxLzEvMSBCRSBhcmUgcmVqZWN0ZWQgd2l0aCBhbiA8Y29kZT5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L2NvZGU+LgorICoKKyAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5HcmVnb3JpYW5DYWxlbmRhcgorICoKKyAqIEBhdXRob3IgTGF1cmEgV2VybmVyCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKi8KK3B1YmxpYyBjbGFzcyBCdWRkaGlzdENhbGVuZGFyIGV4dGVuZHMgR3JlZ29yaWFuQ2FsZW5kYXIgeworICAgIAorICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBjb3B5cmlnaHQgPSAiQ29weXJpZ2h0IFx1MDBhOSAxOTk4IElCTSBDb3JwLiBBbGwgUmlnaHRzIFJlc2VydmVkLiI7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBDb25zdHJ1Y3RvcnMuLi4KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciB0aGUgQnVkZGhpc3QgRXJhLiAgVGhpcyBpcyB0aGUgb25seSBhbGxvd2FibGUgPGNvZGU+RVJBPC9jb2RlPgorICAgICAqIHZhbHVlIGZvciB0aGUgQnVkZGhpc3QgY2FsZW5kYXIuCisgICAgICoKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIjRVJBCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQkUgPSAwOworICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5CdWRkaGlzdENhbGVuZGFyPC9jb2RlPiB1c2luZyB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqLworICAgIHB1YmxpYyBCdWRkaGlzdENhbGVuZGFyKCkgeworICAgICAgICBzdXBlcigpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5CdWRkaGlzdENhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGdpdmVuIHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB6b25lIHRoZSBnaXZlbiB0aW1lIHpvbmUuCisgICAgICovCisgICAgcHVibGljIEJ1ZGRoaXN0Q2FsZW5kYXIoVGltZVpvbmUgem9uZSkgeworICAgICAgICBzdXBlcih6b25lKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QnVkZGhpc3RDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYUxvY2FsZSB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqLworICAgIHB1YmxpYyBCdWRkaGlzdENhbGVuZGFyKExvY2FsZSBhTG9jYWxlKSB7CisgICAgICAgIHN1cGVyKGFMb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5CdWRkaGlzdENhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGdpdmVuIHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gem9uZSB0aGUgZ2l2ZW4gdGltZSB6b25lLgorICAgICAqCisgICAgICogQHBhcmFtIGFMb2NhbGUgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQnVkZGhpc3RDYWxlbmRhcihUaW1lWm9uZSB6b25lLCBMb2NhbGUgYUxvY2FsZSkgeworICAgICAgICBzdXBlcih6b25lLCBhTG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QnVkZGhpc3RDYWxlbmRhcjwvY29kZT4gd2l0aCB0aGUgZ2l2ZW4gZGF0ZSBzZXQKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZSAgICAgIFRoZSBkYXRlIHRvIHdoaWNoIHRoZSBuZXcgY2FsZW5kYXIgaXMgc2V0LgorICAgICAqLworICAgIHB1YmxpYyBCdWRkaGlzdENhbGVuZGFyKERhdGUgZGF0ZSkgeworICAgICAgICB0aGlzKCk7CisgICAgICAgIHNldFRpbWUoZGF0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkJ1ZGRoaXN0Q2FsZW5kYXI8L2NvZGU+IHdpdGggdGhlIGdpdmVuIGRhdGUgc2V0CisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHllYXIgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNZRUFSIFlFQVJ9IHRpbWUgZmllbGQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbW9udGggICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI01PTlRIIE1PTlRIfSB0aW1lIGZpZWxkLgorICAgICAqICAgICAgICAgICAgICAgICAgVGhlIHZhbHVlIGlzIDAtYmFzZWQuIGUuZy4sIDAgZm9yIEphbnVhcnkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZSAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI0RBVEUgREFURX0gdGltZSBmaWVsZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgQnVkZGhpc3RDYWxlbmRhcihpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSkgeworICAgICAgICBzdXBlcih5ZWFyLCBtb250aCwgZGF0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIEJ1ZGRoaXN0Q2FsZW5kYXIgd2l0aCB0aGUgZ2l2ZW4gZGF0ZQorICAgICAqIGFuZCB0aW1lIHNldCBmb3IgdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHllYXIgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNZRUFSIFlFQVJ9IHRpbWUgZmllbGQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbW9udGggICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI01PTlRIIE1PTlRIfSB0aW1lIGZpZWxkLgorICAgICAqICAgICAgICAgICAgICAgICAgVGhlIHZhbHVlIGlzIDAtYmFzZWQuIGUuZy4sIDAgZm9yIEphbnVhcnkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZSAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI0RBVEUgREFURX0gdGltZSBmaWVsZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBob3VyICAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjSE9VUl9PRl9EQVkgSE9VUl9PRl9EQVl9IHRpbWUgZmllbGQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWludXRlICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI01JTlVURSBNSU5VVEV9IHRpbWUgZmllbGQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2Vjb25kICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI1NFQ09ORCBTRUNPTkR9IHRpbWUgZmllbGQuCisgICAgICovCisgICAgcHVibGljIEJ1ZGRoaXN0Q2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUsIGludCBob3VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWludXRlLCBpbnQgc2Vjb25kKQorICAgIHsKKyAgICAgICAgc3VwZXIoeWVhciwgbW9udGgsIGRhdGUsIGhvdXIsIG1pbnV0ZSwgc2Vjb25kKTsKKyAgICB9CisKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFRoZSBvbmx5IHByYWN0aWNhbCBkaWZmZXJlbmNlIGZyb20gYSBHcmVnb3JpYW4gY2FsZW5kYXIgaXMgdGhhdCB5ZWFycworICAgIC8vIGFyZSBudW1iZXJlZCBzaW5jZSB0aGUgYmlydGggb2YgdGhlIEJ1ZGRoYS4gIEEgY291cGxlIG9mIG92ZXJyaWRlcyB3aWxsCisgICAgLy8gdGFrZSBjYXJlIG9mIHRoYXQuLi4uCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLy8gU3RhcnRzIGluIC01NDMgQUQsIGllIDU0NCBCQworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBCVURESElTVF9FUkFfU1RBUlQgPSAtNTQzOworICAgIAorICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0RXh0ZW5kZWRZZWFyKCkgeworICAgICAgICBpbnQgeWVhcjsKKyAgICAgICAgaWYgKG5ld2VyRmllbGQoRVhURU5ERURfWUVBUiwgWUVBUikgPT0gRVhURU5ERURfWUVBUikgeworICAgICAgICAgICAgeWVhciA9IGludGVybmFsR2V0KEVYVEVOREVEX1lFQVIsIDEpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gSWdub3JlIHRoZSBlcmEsIGFzIHRoZXJlIGlzIG9ubHkgb25lCisgICAgICAgICAgICB5ZWFyID0gaW50ZXJuYWxHZXQoWUVBUiwgMSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHllYXI7CisgICAgfQorCisgICAgLy8gUmV0dXJuIEpEIG9mIHN0YXJ0IG9mIGdpdmVuIG1vbnRoL3llYXIKKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUNvbXB1dGVNb250aFN0YXJ0KGludCBleWVhciwgaW50IG1vbnRoLCBib29sZWFuIHVzZU1vbnRoKSB7CisgICAgICAgIHJldHVybiBzdXBlci5oYW5kbGVDb21wdXRlTW9udGhTdGFydChleWVhciArIEJVRERISVNUX0VSQV9TVEFSVCwgbW9udGgsIHVzZU1vbnRoKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVDb21wdXRlRmllbGRzKGludCBqdWxpYW5EYXkpIHsKKyAgICAgICAgc3VwZXIuaGFuZGxlQ29tcHV0ZUZpZWxkcyhqdWxpYW5EYXkpOworICAgICAgICBpbnQgeSA9IGludGVybmFsR2V0KEVYVEVOREVEX1lFQVIpIC0gQlVEREhJU1RfRVJBX1NUQVJUOworICAgICAgICBpbnRlcm5hbFNldChFWFRFTkRFRF9ZRUFSLCB5KTsKKyAgICAgICAgaW50ZXJuYWxTZXQoRVJBLCAwKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoWUVBUiwgeSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgR3JlZ29yaWFuQ2FsZW5kYXIuICBUaGVyZSBpcyBvbmx5IG9uZSBCdWRkaGlzdCBFUkEuICBXZQorICAgICAqIHNob3VsZCByZWFsbHkgaGFuZGxlIFlFQVIsIFlFQVJfV09ZLCBhbmQgRVhURU5ERURfWUVBUiBoZXJlIHRvbyB0bworICAgICAqIGltcGxlbWVudCB0aGUgMS4uNTAwMDAwMCByYW5nZSwgYnV0IGl0J3Mgbm90IGNyaXRpY2FsLgorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0TGltaXQoaW50IGZpZWxkLCBpbnQgbGltaXRUeXBlKSB7CisgICAgICAgIGlmIChmaWVsZCA9PSBFUkEpIHsKKyAgICAgICAgICAgIHJldHVybiBCRTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc3VwZXIuaGFuZGxlR2V0TGltaXQoZmllbGQsIGxpbWl0VHlwZSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ2FsZW5kYXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0NhbGVuZGFyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmMyZWY1OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0NhbGVuZGFyLmphdmEKQEAgLTAsMCArMSw0NTEwIEBACisvKgorKiAgIENvcHlyaWdodCAoQykgMTk5Ni0yMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqLworCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlRGF0YTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9sczsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQ7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5PYmplY3RPdXRwdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5TZXJpYWxpemFibGU7CitpbXBvcnQgamF2YS50ZXh0Lk1lc3NhZ2VGb3JtYXQ7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLlJlc291cmNlQnVuZGxlOworCisvKioKKyAqIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBpcyBhbiBhYnN0cmFjdCBiYXNlIGNsYXNzIGZvciBjb252ZXJ0aW5nIGJldHdlZW4KKyAqIGEgPGNvZGU+RGF0ZTwvY29kZT4gb2JqZWN0IGFuZCBhIHNldCBvZiBpbnRlZ2VyIGZpZWxkcyBzdWNoIGFzCisgKiA8Y29kZT5ZRUFSPC9jb2RlPiwgPGNvZGU+TU9OVEg8L2NvZGU+LCA8Y29kZT5EQVk8L2NvZGU+LCA8Y29kZT5IT1VSPC9jb2RlPiwKKyAqIGFuZCBzbyBvbi4gKEEgPGNvZGU+RGF0ZTwvY29kZT4gb2JqZWN0IHJlcHJlc2VudHMgYSBzcGVjaWZpYyBpbnN0YW50IGluCisgKiB0aW1lIHdpdGggbWlsbGlzZWNvbmQgcHJlY2lzaW9uLiBTZWUKKyAqIHtAbGluayBEYXRlfQorICogZm9yIGluZm9ybWF0aW9uIGFib3V0IHRoZSA8Y29kZT5EYXRlPC9jb2RlPiBjbGFzcy4pCisgKgorICogPHA+PGI+Tm90ZTo8L2I+ICBUaGlzIGNsYXNzIGlzIHNpbWlsYXIsIGJ1dCBub3QgaWRlbnRpY2FsLCB0byB0aGUgY2xhc3MKKyAqIDxjb2RlPmphdmEudXRpbC5DYWxlbmRhcjwvY29kZT4uICBDaGFuZ2VzIGFyZSBkZXRhaWxlZCBiZWxvdy4KKyAqCisgKiA8cD4KKyAqIFN1YmNsYXNzZXMgb2YgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGludGVycHJldCBhIDxjb2RlPkRhdGU8L2NvZGU+CisgKiBhY2NvcmRpbmcgdG8gdGhlIHJ1bGVzIG9mIGEgc3BlY2lmaWMgY2FsZW5kYXIgc3lzdGVtLiAgSUNVNEogY29udGFpbnMKKyAqIHNldmVyYWwgc3ViY2xhc3NlcyBpbXBsZW1lbnRpbmcgZGlmZmVyZW50IGludGVybmF0aW9uYWwgY2FsZW5kYXIgc3lzdGVtcy4KKyAqCisgKiA8cD4KKyAqIExpa2Ugb3RoZXIgbG9jYWxlLXNlbnNpdGl2ZSBjbGFzc2VzLCA8Y29kZT5DYWxlbmRhcjwvY29kZT4gcHJvdmlkZXMgYQorICogY2xhc3MgbWV0aG9kLCA8Y29kZT5nZXRJbnN0YW5jZTwvY29kZT4sIGZvciBnZXR0aW5nIGEgZ2VuZXJhbGx5IHVzZWZ1bAorICogb2JqZWN0IG9mIHRoaXMgdHlwZS4gPGNvZGU+Q2FsZW5kYXI8L2NvZGU+J3MgPGNvZGU+Z2V0SW5zdGFuY2U8L2NvZGU+IG1ldGhvZAorICogcmV0dXJucyBhIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPiBvYmplY3Qgd2hvc2UKKyAqIHRpbWUgZmllbGRzIGhhdmUgYmVlbiBpbml0aWFsaXplZCB3aXRoIHRoZSBjdXJyZW50IGRhdGUgYW5kIHRpbWU6CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBDYWxlbmRhciByaWdodE5vdyA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiA8cD5BIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBvYmplY3QgY2FuIHByb2R1Y2UgYWxsIHRoZSB0aW1lIGZpZWxkIHZhbHVlcworICogbmVlZGVkIHRvIGltcGxlbWVudCB0aGUgZGF0ZS10aW1lIGZvcm1hdHRpbmcgZm9yIGEgcGFydGljdWxhciBsYW5ndWFnZSBhbmQKKyAqIGNhbGVuZGFyIHN0eWxlIChmb3IgZXhhbXBsZSwgSmFwYW5lc2UtR3JlZ29yaWFuLCBKYXBhbmVzZS1UcmFkaXRpb25hbCkuCisgKiA8Y29kZT5DYWxlbmRhcjwvY29kZT4gZGVmaW5lcyB0aGUgcmFuZ2Ugb2YgdmFsdWVzIHJldHVybmVkIGJ5IGNlcnRhaW4gZmllbGRzLAorICogYXMgd2VsbCBhcyB0aGVpciBtZWFuaW5nLiAgRm9yIGV4YW1wbGUsIHRoZSBmaXJzdCBtb250aCBvZiB0aGUgeWVhciBoYXMgdmFsdWUKKyAqIDxjb2RlPk1PTlRIPC9jb2RlPiA9PSA8Y29kZT5KQU5VQVJZPC9jb2RlPiBmb3IgYWxsIGNhbGVuZGFycy4gIE90aGVyIHZhbHVlcworICogYXJlIGRlZmluZWQgYnkgdGhlIGNvbmNyZXRlIHN1YmNsYXNzLCBzdWNoIGFzIDxjb2RlPkVSQTwvY29kZT4gYW5kCisgKiA8Y29kZT5ZRUFSPC9jb2RlPi4gIFNlZSBpbmRpdmlkdWFsIGZpZWxkIGRvY3VtZW50YXRpb24gYW5kIHN1YmNsYXNzCisgKiBkb2N1bWVudGF0aW9uIGZvciBkZXRhaWxzLgorICoKKyAqIDxwPldoZW4gYSA8Y29kZT5DYWxlbmRhcjwvY29kZT4gaXMgPGVtPmxlbmllbnQ8L2VtPiwgaXQgYWNjZXB0cyBhIHdpZGVyIHJhbmdlCisgKiBvZiBmaWVsZCB2YWx1ZXMgdGhhbiBpdCBwcm9kdWNlcy4gIEZvciBleGFtcGxlLCBhIGxlbmllbnQKKyAqIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPiBpbnRlcnByZXRzIDxjb2RlPk1PTlRIPC9jb2RlPiA9PQorICogPGNvZGU+SkFOVUFSWTwvY29kZT4sIDxjb2RlPkRBWV9PRl9NT05USDwvY29kZT4gPT0gMzIgYXMgRmVicnVhcnkgMS4gIEEKKyAqIG5vbi1sZW5pZW50IDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPiB0aHJvd3MgYW4gZXhjZXB0aW9uIHdoZW4gZ2l2ZW4KKyAqIG91dC1vZi1yYW5nZSBmaWVsZCBzZXR0aW5ncy4gIFdoZW4gY2FsZW5kYXJzIHJlY29tcHV0ZSBmaWVsZCB2YWx1ZXMgZm9yCisgKiByZXR1cm4gYnkgPGNvZGU+Z2V0KCk8L2NvZGU+LCB0aGV5IG5vcm1hbGl6ZSB0aGVtLiAgRm9yIGV4YW1wbGUsIGEKKyAqIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPiBhbHdheXMgcHJvZHVjZXMgPGNvZGU+REFZX09GX01PTlRIPC9jb2RlPgorICogdmFsdWVzIGJldHdlZW4gMSBhbmQgdGhlIGxlbmd0aCBvZiB0aGUgbW9udGguCisgKgorICogPHA+PGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGRlZmluZXMgYSBsb2NhbGUtc3BlY2lmaWMgc2V2ZW4gZGF5IHdlZWsgdXNpbmcgdHdvCisgKiBwYXJhbWV0ZXJzOiB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrIGFuZCB0aGUgbWluaW1hbCBkYXlzIGluIGZpcnN0IHdlZWsKKyAqIChmcm9tIDEgdG8gNykuICBUaGVzZSBudW1iZXJzIGFyZSB0YWtlbiBmcm9tIHRoZSBsb2NhbGUgcmVzb3VyY2UgZGF0YSB3aGVuIGEKKyAqIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBpcyBjb25zdHJ1Y3RlZC4gIFRoZXkgbWF5IGFsc28gYmUgc3BlY2lmaWVkIGV4cGxpY2l0bHkKKyAqIHRocm91Z2ggdGhlIEFQSS4KKyAqCisgKiA8cD5XaGVuIHNldHRpbmcgb3IgZ2V0dGluZyB0aGUgPGNvZGU+V0VFS19PRl9NT05USDwvY29kZT4gb3IKKyAqIDxjb2RlPldFRUtfT0ZfWUVBUjwvY29kZT4gZmllbGRzLCA8Y29kZT5DYWxlbmRhcjwvY29kZT4gbXVzdCBkZXRlcm1pbmUgdGhlCisgKiBmaXJzdCB3ZWVrIG9mIHRoZSBtb250aCBvciB5ZWFyIGFzIGEgcmVmZXJlbmNlIHBvaW50LiAgVGhlIGZpcnN0IHdlZWsgb2YgYQorICogbW9udGggb3IgeWVhciBpcyBkZWZpbmVkIGFzIHRoZSBlYXJsaWVzdCBzZXZlbiBkYXkgcGVyaW9kIGJlZ2lubmluZyBvbgorICogPGNvZGU+Z2V0Rmlyc3REYXlPZldlZWsoKTwvY29kZT4gYW5kIGNvbnRhaW5pbmcgYXQgbGVhc3QKKyAqIDxjb2RlPmdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKTwvY29kZT4gZGF5cyBvZiB0aGF0IG1vbnRoIG9yIHllYXIuICBXZWVrcworICogbnVtYmVyZWQgLi4uLCAtMSwgMCBwcmVjZWRlIHRoZSBmaXJzdCB3ZWVrOyB3ZWVrcyBudW1iZXJlZCAyLCAzLC4uLiBmb2xsb3cKKyAqIGl0LiAgTm90ZSB0aGF0IHRoZSBub3JtYWxpemVkIG51bWJlcmluZyByZXR1cm5lZCBieSA8Y29kZT5nZXQoKTwvY29kZT4gbWF5IGJlCisgKiBkaWZmZXJlbnQuICBGb3IgZXhhbXBsZSwgYSBzcGVjaWZpYyA8Y29kZT5DYWxlbmRhcjwvY29kZT4gc3ViY2xhc3MgbWF5CisgKiBkZXNpZ25hdGUgdGhlIHdlZWsgYmVmb3JlIHdlZWsgMSBvZiBhIHllYXIgYXMgd2VlayA8ZW0+bjwvZW0+IG9mIHRoZSBwcmV2aW91cworICogeWVhci4KKyAqCisgKiA8cD4gV2hlbiBjb21wdXRpbmcgYSA8Y29kZT5EYXRlPC9jb2RlPiBmcm9tIHRpbWUgZmllbGRzLCB0d28gc3BlY2lhbAorICogY2lyY3Vtc3RhbmNlcyBtYXkgYXJpc2U6IHRoZXJlIG1heSBiZSBpbnN1ZmZpY2llbnQgaW5mb3JtYXRpb24gdG8gY29tcHV0ZSB0aGUKKyAqIDxjb2RlPkRhdGU8L2NvZGU+IChzdWNoIGFzIG9ubHkgeWVhciBhbmQgbW9udGggYnV0IG5vIGRheSBpbiB0aGUgbW9udGgpLCBvcgorICogdGhlcmUgbWF5IGJlIGluY29uc2lzdGVudCBpbmZvcm1hdGlvbiAoc3VjaCBhcyAiVHVlc2RheSwgSnVseSAxNSwgMTk5NiIgLS0KKyAqIEp1bHkgMTUsIDE5OTYgaXMgYWN0dWFsbHkgYSBNb25kYXkpLgorICoKKyAqIDxwPgorICogPHN0cm9uZz5JbnN1ZmZpY2llbnQgaW5mb3JtYXRpb24uPC9zdHJvbmc+IFRoZSBjYWxlbmRhciB3aWxsIHVzZSBkZWZhdWx0CisgKiBpbmZvcm1hdGlvbiB0byBzcGVjaWZ5IHRoZSBtaXNzaW5nIGZpZWxkcy4gVGhpcyBtYXkgdmFyeSBieSBjYWxlbmRhcjsgZm9yCisgKiB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyLCB0aGUgZGVmYXVsdCBmb3IgYSBmaWVsZCBpcyB0aGUgc2FtZSBhcyB0aGF0IG9mIHRoZQorICogc3RhcnQgb2YgdGhlIGVwb2NoOiBpLmUuLCBZRUFSID0gMTk3MCwgTU9OVEggPSBKQU5VQVJZLCBEQVRFID0gMSwgZXRjLgorICoKKyAqIDxwPgorICogPHN0cm9uZz5JbmNvbnNpc3RlbnQgaW5mb3JtYXRpb24uPC9zdHJvbmc+IElmIGZpZWxkcyBjb25mbGljdCwgdGhlIGNhbGVuZGFyCisgKiB3aWxsIGdpdmUgcHJlZmVyZW5jZSB0byBmaWVsZHMgc2V0IG1vcmUgcmVjZW50bHkuIEZvciBleGFtcGxlLCB3aGVuCisgKiBkZXRlcm1pbmluZyB0aGUgZGF5LCB0aGUgY2FsZW5kYXIgd2lsbCBsb29rIGZvciBvbmUgb2YgdGhlIGZvbGxvd2luZworICogY29tYmluYXRpb25zIG9mIGZpZWxkcy4gIFRoZSBtb3N0IHJlY2VudCBjb21iaW5hdGlvbiwgYXMgZGV0ZXJtaW5lZCBieSB0aGUKKyAqIG1vc3QgcmVjZW50bHkgc2V0IHNpbmdsZSBmaWVsZCwgd2lsbCBiZSB1c2VkLgorICoKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIE1PTlRIICsgREFZX09GX01PTlRICisgKiBNT05USCArIFdFRUtfT0ZfTU9OVEggKyBEQVlfT0ZfV0VFSworICogTU9OVEggKyBEQVlfT0ZfV0VFS19JTl9NT05USCArIERBWV9PRl9XRUVLCisgKiBEQVlfT0ZfWUVBUgorICogREFZX09GX1dFRUsgKyBXRUVLX09GX1lFQVIKKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIEZvciB0aGUgdGltZSBvZiBkYXk6CisgKgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogSE9VUl9PRl9EQVkKKyAqIEFNX1BNICsgSE9VUgorICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogPHA+CisgKiA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IGZvciBzb21lIG5vbi1HcmVnb3JpYW4gY2FsZW5kYXJzLCBkaWZmZXJlbnQKKyAqIGZpZWxkcyBtYXkgYmUgbmVjZXNzYXJ5IGZvciBjb21wbGV0ZSBkaXNhbWJpZ3VhdGlvbi4gRm9yIGV4YW1wbGUsIGEgZnVsbAorICogc3BlY2lmaWNhdGlvbiBvZiB0aGUgaGlzdG9yaWFsIEFyYWJpYyBhc3Ryb25vbWljYWwgY2FsZW5kYXIgcmVxdWlyZXMgeWVhciwKKyAqIG1vbnRoLCBkYXktb2YtbW9udGggPGVtPmFuZDwvZW0+IGRheS1vZi13ZWVrIGluIHNvbWUgY2FzZXMuCisgKgorICogPHA+CisgKiA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoZXJlIGFyZSBjZXJ0YWluIHBvc3NpYmxlIGFtYmlndWl0aWVzIGluCisgKiBpbnRlcnByZXRhdGlvbiBvZiBjZXJ0YWluIHNpbmd1bGFyIHRpbWVzLCB3aGljaCBhcmUgcmVzb2x2ZWQgaW4gdGhlCisgKiBmb2xsb3dpbmcgd2F5czoKKyAqIDxvbD4KKyAqICAgICA8bGk+IDI0OjAwOjAwICJiZWxvbmdzIiB0byB0aGUgZm9sbG93aW5nIGRheS4gVGhhdCBpcywKKyAqICAgICAgICAgIDIzOjU5IG9uIERlYyAzMSwgMTk2OSAmbHQ7IDI0OjAwIG9uIEphbiAxLCAxOTcwICZsdDsgMjQ6MDE6MDAgb24gSmFuIDEsIDE5NzAKKyAqCisgKiAgICAgPGxpPiBBbHRob3VnaCBoaXN0b3JpY2FsbHkgbm90IHByZWNpc2UsIG1pZG5pZ2h0IGFsc28gYmVsb25ncyB0byAiYW0iLAorICogICAgICAgICAgYW5kIG5vb24gYmVsb25ncyB0byAicG0iLCBzbyBvbiB0aGUgc2FtZSBkYXksCisgKiAgICAgICAgICAxMjowMCBhbSAobWlkbmlnaHQpICZsdDsgMTI6MDEgYW0sIGFuZCAxMjowMCBwbSAobm9vbikgJmx0OyAxMjowMSBwbQorICogPC9vbD4KKyAqCisgKiA8cD4KKyAqIFRoZSBkYXRlIG9yIHRpbWUgZm9ybWF0IHN0cmluZ3MgYXJlIG5vdCBwYXJ0IG9mIHRoZSBkZWZpbml0aW9uIG9mIGEKKyAqIGNhbGVuZGFyLCBhcyB0aG9zZSBtdXN0IGJlIG1vZGlmaWFibGUgb3Igb3ZlcnJpZGFibGUgYnkgdGhlIHVzZXIgYXQKKyAqIHJ1bnRpbWUuIFVzZSB7QGxpbmsgRGF0ZUZvcm1hdH0KKyAqIHRvIGZvcm1hdCBkYXRlcy4KKyAqCisgKiA8cD48c3Ryb25nPkZpZWxkIG1hbmlwdWxhdGlvbiBtZXRob2RzPC9zdHJvbmc+PC9wPgorICogCisgKiA8cD48Y29kZT5DYWxlbmRhcjwvY29kZT4gZmllbGRzIGNhbiBiZSBjaGFuZ2VkIHVzaW5nIHRocmVlIG1ldGhvZHM6CisgKiA8Y29kZT5zZXQoKTwvY29kZT4sIDxjb2RlPmFkZCgpPC9jb2RlPiwgYW5kIDxjb2RlPnJvbGwoKTwvY29kZT4uPC9wPgorICogCisgKiA8cD48c3Ryb25nPjxjb2RlPnNldChmLCB2YWx1ZSk8L2NvZGU+PC9zdHJvbmc+IGNoYW5nZXMgZmllbGQKKyAqIDxjb2RlPmY8L2NvZGU+IHRvIDxjb2RlPnZhbHVlPC9jb2RlPi4gIEluIGFkZGl0aW9uLCBpdCBzZXRzIGFuCisgKiBpbnRlcm5hbCBtZW1iZXIgdmFyaWFibGUgdG8gaW5kaWNhdGUgdGhhdCBmaWVsZCA8Y29kZT5mPC9jb2RlPiBoYXMKKyAqIGJlZW4gY2hhbmdlZC4gQWx0aG91Z2ggZmllbGQgPGNvZGU+ZjwvY29kZT4gaXMgY2hhbmdlZCBpbW1lZGlhdGVseSwKKyAqIHRoZSBjYWxlbmRhcidzIG1pbGxpc2Vjb25kcyBpcyBub3QgcmVjb21wdXRlZCB1bnRpbCB0aGUgbmV4dCBjYWxsIHRvCisgKiA8Y29kZT5nZXQoKTwvY29kZT4sIDxjb2RlPmdldFRpbWUoKTwvY29kZT4sIG9yCisgKiA8Y29kZT5nZXRUaW1lSW5NaWxsaXMoKTwvY29kZT4gaXMgbWFkZS4gVGh1cywgbXVsdGlwbGUgY2FsbHMgdG8KKyAqIDxjb2RlPnNldCgpPC9jb2RlPiBkbyBub3QgdHJpZ2dlciBtdWx0aXBsZSwgdW5uZWNlc3NhcnkKKyAqIGNvbXB1dGF0aW9ucy4gQXMgYSByZXN1bHQgb2YgY2hhbmdpbmcgYSBmaWVsZCB1c2luZworICogPGNvZGU+c2V0KCk8L2NvZGU+LCBvdGhlciBmaWVsZHMgbWF5IGFsc28gY2hhbmdlLCBkZXBlbmRpbmcgb24gdGhlCisgKiBmaWVsZCwgdGhlIGZpZWxkIHZhbHVlLCBhbmQgdGhlIGNhbGVuZGFyIHN5c3RlbS4gSW4gYWRkaXRpb24sCisgKiA8Y29kZT5nZXQoZik8L2NvZGU+IHdpbGwgbm90IG5lY2Vzc2FyaWx5IHJldHVybiA8Y29kZT52YWx1ZTwvY29kZT4KKyAqIGFmdGVyIHRoZSBmaWVsZHMgaGF2ZSBiZWVuIHJlY29tcHV0ZWQuIFRoZSBzcGVjaWZpY3MgYXJlIGRldGVybWluZWQgYnkKKyAqIHRoZSBjb25jcmV0ZSBjYWxlbmRhciBjbGFzcy48L3A+CisgKiAKKyAqIDxwPjxlbT5FeGFtcGxlPC9lbT46IENvbnNpZGVyIGEgPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+CisgKiBvcmlnaW5hbGx5IHNldCB0byBBdWd1c3QgMzEsIDE5OTkuIENhbGxpbmcgPGNvZGU+c2V0KENhbGVuZGFyLk1PTlRILAorICogQ2FsZW5kYXIuU0VQVEVNQkVSKTwvY29kZT4gc2V0cyB0aGUgY2FsZW5kYXIgdG8gU2VwdGVtYmVyIDMxLAorICogMTk5OS4gVGhpcyBpcyBhIHRlbXBvcmFyeSBpbnRlcm5hbCByZXByZXNlbnRhdGlvbiB0aGF0IHJlc29sdmVzIHRvCisgKiBPY3RvYmVyIDEsIDE5OTkgaWYgPGNvZGU+Z2V0VGltZSgpPC9jb2RlPmlzIHRoZW4gY2FsbGVkLiBIb3dldmVyLCBhCisgKiBjYWxsIHRvIDxjb2RlPnNldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIDMwKTwvY29kZT4gYmVmb3JlIHRoZSBjYWxsIHRvCisgKiA8Y29kZT5nZXRUaW1lKCk8L2NvZGU+IHNldHMgdGhlIGNhbGVuZGFyIHRvIFNlcHRlbWJlciAzMCwgMTk5OSwgc2luY2UKKyAqIG5vIHJlY29tcHV0YXRpb24gb2NjdXJzIGFmdGVyIDxjb2RlPnNldCgpPC9jb2RlPiBpdHNlbGYuPC9wPgorICogCisgKiA8cD48c3Ryb25nPjxjb2RlPmFkZChmLCBkZWx0YSk8L2NvZGU+PC9zdHJvbmc+IGFkZHMgPGNvZGU+ZGVsdGE8L2NvZGU+CisgKiB0byBmaWVsZCA8Y29kZT5mPC9jb2RlPi4gIFRoaXMgaXMgZXF1aXZhbGVudCB0byBjYWxsaW5nIDxjb2RlPnNldChmLAorICogZ2V0KGYpICsgZGVsdGEpPC9jb2RlPiB3aXRoIHR3byBhZGp1c3RtZW50czo8L3A+CisgKiAKKyAqIDxibG9ja3F1b3RlPgorICogICA8cD48c3Ryb25nPkFkZCBydWxlIDE8L3N0cm9uZz4uIFRoZSB2YWx1ZSBvZiBmaWVsZCA8Y29kZT5mPC9jb2RlPgorICogICBhZnRlciB0aGUgY2FsbCBtaW51cyB0aGUgdmFsdWUgb2YgZmllbGQgPGNvZGU+ZjwvY29kZT4gYmVmb3JlIHRoZQorICogICBjYWxsIGlzIDxjb2RlPmRlbHRhPC9jb2RlPiwgbW9kdWxvIGFueSBvdmVyZmxvdyB0aGF0IGhhcyBvY2N1cnJlZCBpbgorICogICBmaWVsZCA8Y29kZT5mPC9jb2RlPi4gT3ZlcmZsb3cgb2NjdXJzIHdoZW4gYSBmaWVsZCB2YWx1ZSBleGNlZWRzIGl0cworICogICByYW5nZSBhbmQsIGFzIGEgcmVzdWx0LCB0aGUgbmV4dCBsYXJnZXIgZmllbGQgaXMgaW5jcmVtZW50ZWQgb3IKKyAqICAgZGVjcmVtZW50ZWQgYW5kIHRoZSBmaWVsZCB2YWx1ZSBpcyBhZGp1c3RlZCBiYWNrIGludG8gaXRzIHJhbmdlLjwvcD4KKyAqIAorICogICA8cD48c3Ryb25nPkFkZCBydWxlIDI8L3N0cm9uZz4uIElmIGEgc21hbGxlciBmaWVsZCBpcyBleHBlY3RlZCB0byBiZQorICogICBpbnZhcmlhbnQsIGJ1dCAmbmJzcDsgaXQgaXMgaW1wb3NzaWJsZSBmb3IgaXQgdG8gYmUgZXF1YWwgdG8gaXRzCisgKiAgIHByaW9yIHZhbHVlIGJlY2F1c2Ugb2YgY2hhbmdlcyBpbiBpdHMgbWluaW11bSBvciBtYXhpbXVtIGFmdGVyIGZpZWxkCisgKiAgIDxjb2RlPmY8L2NvZGU+IGlzIGNoYW5nZWQsIHRoZW4gaXRzIHZhbHVlIGlzIGFkanVzdGVkIHRvIGJlIGFzIGNsb3NlCisgKiAgIGFzIHBvc3NpYmxlIHRvIGl0cyBleHBlY3RlZCB2YWx1ZS4gQSBzbWFsbGVyIGZpZWxkIHJlcHJlc2VudHMgYQorICogICBzbWFsbGVyIHVuaXQgb2YgdGltZS4gPGNvZGU+SE9VUjwvY29kZT4gaXMgYSBzbWFsbGVyIGZpZWxkIHRoYW4KKyAqICAgPGNvZGU+REFZX09GX01PTlRIPC9jb2RlPi4gTm8gYWRqdXN0bWVudCBpcyBtYWRlIHRvIHNtYWxsZXIgZmllbGRzCisgKiAgIHRoYXQgYXJlIG5vdCBleHBlY3RlZCB0byBiZSBpbnZhcmlhbnQuIFRoZSBjYWxlbmRhciBzeXN0ZW0KKyAqICAgZGV0ZXJtaW5lcyB3aGF0IGZpZWxkcyBhcmUgZXhwZWN0ZWQgdG8gYmUgaW52YXJpYW50LjwvcD4KKyAqIDwvYmxvY2txdW90ZT4KKyAqIAorICogPHA+SW4gYWRkaXRpb24sIHVubGlrZSA8Y29kZT5zZXQoKTwvY29kZT4sIDxjb2RlPmFkZCgpPC9jb2RlPiBmb3JjZXMKKyAqIGFuIGltbWVkaWF0ZSByZWNvbXB1dGF0aW9uIG9mIHRoZSBjYWxlbmRhcidzIG1pbGxpc2Vjb25kcyBhbmQgYWxsCisgKiBmaWVsZHMuPC9wPgorICogCisgKiA8cD48ZW0+RXhhbXBsZTwvZW0+OiBDb25zaWRlciBhIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPgorICogb3JpZ2luYWxseSBzZXQgdG8gQXVndXN0IDMxLCAxOTk5LiBDYWxsaW5nIDxjb2RlPmFkZChDYWxlbmRhci5NT05USCwKKyAqIDEzKTwvY29kZT4gc2V0cyB0aGUgY2FsZW5kYXIgdG8gU2VwdGVtYmVyIDMwLCAyMDAwLiA8c3Ryb25nPkFkZCBydWxlCisgKiAxPC9zdHJvbmc+IHNldHMgdGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBmaWVsZCB0byBTZXB0ZW1iZXIsIHNpbmNlCisgKiBhZGRpbmcgMTMgbW9udGhzIHRvIEF1Z3VzdCBnaXZlcyBTZXB0ZW1iZXIgb2YgdGhlIG5leHQgeWVhci4gU2luY2UKKyAqIDxjb2RlPkRBWV9PRl9NT05USDwvY29kZT4gY2Fubm90IGJlIDMxIGluIFNlcHRlbWJlciBpbiBhCisgKiA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4sIDxzdHJvbmc+YWRkIHJ1bGUgMjwvc3Ryb25nPiBzZXRzIHRoZQorICogPGNvZGU+REFZX09GX01PTlRIPC9jb2RlPiB0byAzMCwgdGhlIGNsb3Nlc3QgcG9zc2libGUgdmFsdWUuIEFsdGhvdWdoCisgKiBpdCBpcyBhIHNtYWxsZXIgZmllbGQsIDxjb2RlPkRBWV9PRl9XRUVLPC9jb2RlPiBpcyBub3QgYWRqdXN0ZWQgYnkKKyAqIHJ1bGUgMiwgc2luY2UgaXQgaXMgZXhwZWN0ZWQgdG8gY2hhbmdlIHdoZW4gdGhlIG1vbnRoIGNoYW5nZXMgaW4gYQorICogPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+LjwvcD4KKyAqIAorICogPHA+PHN0cm9uZz48Y29kZT5yb2xsKGYsIGRlbHRhKTwvY29kZT48L3N0cm9uZz4gYWRkcworICogPGNvZGU+ZGVsdGE8L2NvZGU+IHRvIGZpZWxkIDxjb2RlPmY8L2NvZGU+IHdpdGhvdXQgY2hhbmdpbmcgbGFyZ2VyCisgKiBmaWVsZHMuIFRoaXMgaXMgZXF1aXZhbGVudCB0byBjYWxsaW5nIDxjb2RlPmFkZChmLCBkZWx0YSk8L2NvZGU+IHdpdGgKKyAqIHRoZSBmb2xsb3dpbmcgYWRqdXN0bWVudDo8L3A+CisgKiAKKyAqIDxibG9ja3F1b3RlPgorICogICA8cD48c3Ryb25nPlJvbGwgcnVsZTwvc3Ryb25nPi4gTGFyZ2VyIGZpZWxkcyBhcmUgdW5jaGFuZ2VkIGFmdGVyIHRoZQorICogICBjYWxsLiBBIGxhcmdlciBmaWVsZCByZXByZXNlbnRzIGEgbGFyZ2VyIHVuaXQgb2YKKyAqICAgdGltZS4gPGNvZGU+REFZX09GX01PTlRIPC9jb2RlPiBpcyBhIGxhcmdlciBmaWVsZCB0aGFuCisgKiAgIDxjb2RlPkhPVVI8L2NvZGU+LjwvcD4KKyAqIDwvYmxvY2txdW90ZT4KKyAqIAorICogPHA+PGVtPkV4YW1wbGU8L2VtPjogQ29uc2lkZXIgYSA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4KKyAqIG9yaWdpbmFsbHkgc2V0IHRvIEF1Z3VzdCAzMSwgMTk5OS4gQ2FsbGluZyA8Y29kZT5yb2xsKENhbGVuZGFyLk1PTlRILAorICogOCk8L2NvZGU+IHNldHMgdGhlIGNhbGVuZGFyIHRvIEFwcmlsIDMwLCA8c3Ryb25nPjE5OTk8L3N0cm9uZz4uICBBZGQKKyAqIHJ1bGUgMSBzZXRzIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgdG8gQXByaWwuIFVzaW5nIGEKKyAqIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPiwgdGhlIDxjb2RlPkRBWV9PRl9NT05USDwvY29kZT4gY2Fubm90CisgKiBiZSAzMSBpbiB0aGUgbW9udGggQXByaWwuIEFkZCBydWxlIDIgc2V0cyBpdCB0byB0aGUgY2xvc2VzdCBwb3NzaWJsZQorICogdmFsdWUsIDMwLiBGaW5hbGx5LCB0aGUgPHN0cm9uZz5yb2xsIHJ1bGU8L3N0cm9uZz4gbWFpbnRhaW5zIHRoZQorICogPGNvZGU+WUVBUjwvY29kZT4gZmllbGQgdmFsdWUgb2YgMTk5OS48L3A+CisgKiAKKyAqIDxwPjxlbT5FeGFtcGxlPC9lbT46IENvbnNpZGVyIGEgPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+CisgKiBvcmlnaW5hbGx5IHNldCB0byBTdW5kYXkgSnVuZSA2LCAxOTk5LiBDYWxsaW5nCisgKiA8Y29kZT5yb2xsKENhbGVuZGFyLldFRUtfT0ZfTU9OVEgsIC0xKTwvY29kZT4gc2V0cyB0aGUgY2FsZW5kYXIgdG8KKyAqIFR1ZXNkYXkgSnVuZSAxLCAxOTk5LCB3aGVyZWFzIGNhbGxpbmcKKyAqIDxjb2RlPmFkZChDYWxlbmRhci5XRUVLX09GX01PTlRILCAtMSk8L2NvZGU+IHNldHMgdGhlIGNhbGVuZGFyIHRvCisgKiBTdW5kYXkgTWF5IDMwLCAxOTk5LiBUaGlzIGlzIGJlY2F1c2UgdGhlIHJvbGwgcnVsZSBpbXBvc2VzIGFuCisgKiBhZGRpdGlvbmFsIGNvbnN0cmFpbnQ6IFRoZSA8Y29kZT5NT05USDwvY29kZT4gbXVzdCBub3QgY2hhbmdlIHdoZW4gdGhlCisgKiA8Y29kZT5XRUVLX09GX01PTlRIPC9jb2RlPiBpcyByb2xsZWQuIFRha2VuIHRvZ2V0aGVyIHdpdGggYWRkIHJ1bGUgMSwKKyAqIHRoZSByZXN1bHRhbnQgZGF0ZSBtdXN0IGJlIGJldHdlZW4gVHVlc2RheSBKdW5lIDEgYW5kIFNhdHVyZGF5IEp1bmUKKyAqIDUuIEFjY29yZGluZyB0byBhZGQgcnVsZSAyLCB0aGUgPGNvZGU+REFZX09GX1dFRUs8L2NvZGU+LCBhbiBpbnZhcmlhbnQKKyAqIHdoZW4gY2hhbmdpbmcgdGhlIDxjb2RlPldFRUtfT0ZfTU9OVEg8L2NvZGU+LCBpcyBzZXQgdG8gVHVlc2RheSwgdGhlCisgKiBjbG9zZXN0IHBvc3NpYmxlIHZhbHVlIHRvIFN1bmRheSAod2hlcmUgU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlCisgKiB3ZWVrKS48L3A+CisgKiAKKyAqIDxwPjxzdHJvbmc+VXNhZ2UgbW9kZWw8L3N0cm9uZz4uIFRvIG1vdGl2YXRlIHRoZSBiZWhhdmlvciBvZgorICogPGNvZGU+YWRkKCk8L2NvZGU+IGFuZCA8Y29kZT5yb2xsKCk8L2NvZGU+LCBjb25zaWRlciBhIHVzZXIgaW50ZXJmYWNlCisgKiBjb21wb25lbnQgd2l0aCBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGZvciB0aGUgbW9udGgsIGRheSwgYW5kCisgKiB5ZWFyLCBhbmQgYW4gdW5kZXJseWluZyA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4uIElmIHRoZQorICogaW50ZXJmYWNlIHJlYWRzIEphbnVhcnkgMzEsIDE5OTkgYW5kIHRoZSB1c2VyIHByZXNzZXMgdGhlIG1vbnRoCisgKiBpbmNyZW1lbnQgYnV0dG9uLCB3aGF0IHNob3VsZCBpdCByZWFkPyBJZiB0aGUgdW5kZXJseWluZworICogaW1wbGVtZW50YXRpb24gdXNlcyA8Y29kZT5zZXQoKTwvY29kZT4sIGl0IG1pZ2h0IHJlYWQgTWFyY2ggMywgMTk5OS4gQQorICogYmV0dGVyIHJlc3VsdCB3b3VsZCBiZSBGZWJydWFyeSAyOCwgMTk5OS4gRnVydGhlcm1vcmUsIGlmIHRoZSB1c2VyCisgKiBwcmVzc2VzIHRoZSBtb250aCBpbmNyZW1lbnQgYnV0dG9uIGFnYWluLCBpdCBzaG91bGQgcmVhZCBNYXJjaCAzMSwKKyAqIDE5OTksIG5vdCBNYXJjaCAyOCwgMTk5OS4gQnkgc2F2aW5nIHRoZSBvcmlnaW5hbCBkYXRlIGFuZCB1c2luZyBlaXRoZXIKKyAqIDxjb2RlPmFkZCgpPC9jb2RlPiBvciA8Y29kZT5yb2xsKCk8L2NvZGU+LCBkZXBlbmRpbmcgb24gd2hldGhlciBsYXJnZXIKKyAqIGZpZWxkcyBzaG91bGQgYmUgYWZmZWN0ZWQsIHRoZSB1c2VyIGludGVyZmFjZSBjYW4gYmVoYXZlIGFzIG1vc3QgdXNlcnMKKyAqIHdpbGwgaW50dWl0aXZlbHkgZXhwZWN0LjwvcD4KKyAqCisgKiA8cD48Yj5Ob3RlOjwvYj4gWW91IHNob3VsZCBhbHdheXMgdXNlIHtAbGluayAjcm9sbCByb2xsfSBhbmQge0BsaW5rICNhZGQgYWRkfSByYXRoZXIKKyAqIHRoYW4gYXR0ZW1wdGluZyB0byBwZXJmb3JtIGFyaXRobWV0aWMgb3BlcmF0aW9ucyBkaXJlY3RseSBvbiB0aGUgZmllbGRzCisgKiBvZiBhIDx0dD5DYWxlbmRhcjwvdHQ+LiAgSXQgaXMgcXVpdGUgcG9zc2libGUgZm9yIDx0dD5DYWxlbmRhcjwvdHQ+IHN1YmNsYXNzZXMKKyAqIHRvIGhhdmUgZmllbGRzIHdpdGggbm9uLWxpbmVhciBiZWhhdmlvciwgZm9yIGV4YW1wbGUgbWlzc2luZyBtb250aHMKKyAqIG9yIGRheXMgZHVyaW5nIG5vbi1sZWFwIHllYXJzLiAgVGhlIHN1YmNsYXNzZXMnIDx0dD5hZGQ8L3R0PiBhbmQgPHR0PnJvbGw8L3R0PgorICogbWV0aG9kcyB3aWxsIHRha2UgdGhpcyBpbnRvIGFjY291bnQsIHdoaWxlIHNpbXBsZSBhcml0aG1ldGljIG1hbmlwdWxhdGlvbnMKKyAqIG1heSBnaXZlIGludmFsaWQgcmVzdWx0cy4KKyAqCisgKiA8cD48YmlnPjxiaWc+PGI+Q2FsZW5kYXIgQXJjaGl0ZWN0dXJlIGluIElDVTRKPC9iPjwvYmlnPjwvYmlnPjwvcD4KKyAqIAorICogPHA+UmVjZW50bHkgdGhlIGltcGxlbWVudGF0aW9uIG9mIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBoYXMgY2hhbmdlZAorICogc2lnbmlmaWNhbnRseSBpbiBvcmRlciB0byBiZXR0ZXIgc3VwcG9ydCBzdWJjbGFzc2luZy4gVGhlIG9yaWdpbmFsCisgKiA8Y29kZT5DYWxlbmRhcjwvY29kZT4gY2xhc3Mgd2FzIGRlc2lnbmVkIHRvIHN1cHBvcnQgc3ViY2xhc3NpbmcsIGJ1dAorICogaXQgaGFkIG9ubHkgb25lIGltcGxlbWVudGVkIHN1YmNsYXNzLCA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4uCisgKiBXaXRoIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBzZXZlcmFsIG5ldyBjYWxlbmRhciBzdWJjbGFzc2VzLCBpbmNsdWRpbmcKKyAqIHRoZSA8Y29kZT5CdWRkaGlzdENhbGVuZGFyPC9jb2RlPiwgPGNvZGU+Q2hpbmVzZUNhbGVuZGFyPC9jb2RlPiwKKyAqIDxjb2RlPkhlYnJld0NhbGVuZGFyPC9jb2RlPiwgPGNvZGU+SXNsYW1pY0NhbGVuZGFyPC9jb2RlPiwgYW5kCisgKiA8Y29kZT5KYXBhbmVzZUNhbGVuZGFyPC9jb2RlPiwgdGhlIHN1YmNsYXNzaW5nIEFQSSBoYXMgYmVlbiByZXdvcmtlZAorICogdGhvcm91Z2hseS4gVGhpcyBzZWN0aW9uIGRldGFpbHMgdGhlIG5ldyBzdWJjbGFzc2luZyBBUEkgYW5kIG90aGVyCisgKiB3YXlzIGluIHdoaWNoIDxjb2RlPmNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI8L2NvZGU+IGRpZmZlcnMgZnJvbQorICogPGNvZGU+amF2YS51dGlsLkNhbGVuZGFyPC9jb2RlPi4KKyAqIDwvcD4KKyAqIAorICogPHA+PGJpZz48Yj5DaGFuZ2VzPC9iPjwvYmlnPjwvcD4KKyAqIAorICogPHA+T3ZlcnZpZXcgb2YgY2hhbmdlcyBiZXR3ZWVuIHRoZSBjbGFzc2ljIDxjb2RlPkNhbGVuZGFyPC9jb2RlPgorICogYXJjaGl0ZWN0dXJlIGFuZCB0aGUgbmV3IGFyY2hpdGVjdHVyZS4KKyAqIAorICogPHVsPgorICogCisgKiAgIDxsaT5UaGUgPGNvZGU+ZmllbGRzW108L2NvZGU+IGFycmF5IGlzIDxjb2RlPnByaXZhdGU8L2NvZGU+IG5vdworICogICAgIGluc3RlYWQgb2YgPGNvZGU+cHJvdGVjdGVkPC9jb2RlPi4gIFN1YmNsYXNzZXMgbXVzdCBhY2Nlc3MgaXQKKyAqICAgICB1c2luZyB0aGUgbWV0aG9kcyB7QGxpbmsgI2ludGVybmFsU2V0fSBhbmQKKyAqICAgICB7QGxpbmsgI2ludGVybmFsR2V0fS4gIDxiPk1vdGl2YXRpb246PC9iPiBTdWJjbGFzc2VzIHNob3VsZAorICogICAgIG5vdCBkaXJlY3RseSBhY2Nlc3MgZGF0YSBtZW1iZXJzLjwvbGk+CisgKiAKKyAqICAgPGxpPlRoZSA8Y29kZT50aW1lPC9jb2RlPiBsb25nIHdvcmQgaXMgPGNvZGU+cHJpdmF0ZTwvY29kZT4gbm93CisgKiAgICAgaW5zdGVhZCBvZiA8Y29kZT5wcm90ZWN0ZWQ8L2NvZGU+LiAgU3ViY2xhc3NlcyBtYXkgYWNjZXNzIGl0IHVzaW5nCisgKiAgICAgdGhlIG1ldGhvZCB7QGxpbmsgI2ludGVybmFsR2V0VGltZUluTWlsbGlzfSwgd2hpY2ggZG9lcyBub3QKKyAqICAgICBwcm92b2tlIGFuIHVwZGF0ZS4gPGI+TW90aXZhdGlvbjo8L2I+IFN1YmNsYXNzZXMgc2hvdWxkIG5vdAorICogICAgIGRpcmVjdGx5IGFjY2VzcyBkYXRhIG1lbWJlcnMuPC9saT4KKyAqIAorICogICA8bGk+VGhlIHNjb3BlIG9mIHJlc3BvbnNpYmlsaXR5IG9mIHN1YmNsYXNzZXMgaGFzIGJlZW4gZHJhc3RpY2FsbHkKKyAqICAgICByZWR1Y2VkLiBBcyBtdWNoIGZ1bmN0aW9uYWxpdHkgYXMgcG9zc2libGUgaXMgaW1wbGVtZW50ZWQgaW4gdGhlCisgKiAgICAgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGJhc2UgY2xhc3MuIEFzIGEgcmVzdWx0LCBpdCBpcyBtdWNoIGVhc2llcgorICogICAgIHRvIHN1YmNsYXNzIDxjb2RlPkNhbGVuZGFyPC9jb2RlPi4gPGI+TW90aXZhdGlvbjo8L2I+IFN1YmNsYXNzZXMKKyAqICAgICBzaG91bGQgbm90IGhhdmUgdG8gcmVpbXBsZW1lbnQgY29tbW9uIGNvZGUuIENlcnRhaW4gYmVoYXZpb3JzIGFyZQorICogICAgIGNvbW1vbiBhY3Jvc3MgY2FsZW5kYXIgc3lzdGVtczogVGhlIGRlZmluaXRpb24gYW5kIGJlaGF2aW9yIG9mCisgKiAgICAgd2Vlay1yZWxhdGVkIGZpZWxkcyBhbmQgdGltZSBmaWVsZHMsIHRoZSBhcml0aG1ldGljCisgKiAgICAgKHtAbGluayAjYWRkKGludCwgaW50KSBhZGR9IGFuZCB7QGxpbmsgI3JvbGwoaW50LCBpbnQpIHJvbGx9KSBiZWhhdmlvciBvZiBtYW55CisgKiAgICAgZmllbGRzLCBhbmQgdGhlIGZpZWxkIHZhbGlkYXRpb24gc3lzdGVtLjwvbGk+CisgKiAKKyAqICAgPGxpPlRoZSBzdWJjbGFzc2luZyBBUEkgaGFzIGJlZW4gY29tcGxldGVseSByZWRlc2lnbmVkLjwvbGk+CisgKiAKKyAqICAgPGxpPlRoZSA8Y29kZT5DYWxlbmRhcjwvY29kZT4gYmFzZSBjbGFzcyBjb250YWlucyBzb21lIEdyZWdvcmlhbgorICogICAgIGNhbGVuZGFyIGFsZ29yaXRobWljIHN1cHBvcnQgdGhhdCBzdWJjbGFzc2VzIGNhbiB1c2UgKHNwZWNpZmljYWxseQorICogICAgIGluIHtAbGluayAjaGFuZGxlQ29tcHV0ZUZpZWxkc30pLiAgU3ViY2xhc3NlcyBjYW4gdXNlIHRoZQorICogICAgIG1ldGhvZHMgPGNvZGU+Z2V0R3JlZ29yaWFuWHh4KCk8L2NvZGU+IHRvIG9idGFpbiBwcmVjb21wdXRlZAorICogICAgIHZhbHVlcy4gPGI+TW90aXZhdGlvbjo8L2I+IFRoaXMgaXMgcmVxdWlyZWQgYnkgYWxsCisgKiAgICAgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IHN1YmNsYXNzZXMgaW4gb3JkZXIgdG8gaW1wbGVtZW50IGNvbnNpc3RlbnQKKyAqICAgICB0aW1lIHpvbmUgYmVoYXZpb3IsIGFuZCBHcmVnb3JpYW4tZGVyaXZlZCBzeXN0ZW1zIGNhbiB1c2UgdGhlCisgKiAgICAgYWxyZWFkeSBjb21wdXRlZCBkYXRhLjwvbGk+CisgKiAKKyAqICAgPGxpPlRoZSA8Y29kZT5GSUVMRF9DT1VOVDwvY29kZT4gY29uc3RhbnQgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlCisgKiAgICAge0BsaW5rICNnZXRGaWVsZENvdW50fS4gIEluIGFkZGl0aW9uLCBmcmFtZXdvcmsgQVBJIGhhcyBiZWVuCisgKiAgICAgYWRkZWQgdG8gYWxsb3cgc3ViY2xhc3NlcyB0byBkZWZpbmUgYWRkaXRpb25hbCBmaWVsZHMuCisgKiAgICAgPGI+TW90aXZhdGlvbjogPC9iPlRoZSBudW1iZXIgb2YgZmllbGRzIGlzIG5vdCBjb25zdGFudCBhY3Jvc3MKKyAqICAgICBjYWxlbmRhciBzeXN0ZW1zLjwvbGk+CisgKiAKKyAqICAgPGxpPlRoZSByYW5nZSBvZiBoYW5kbGVkIGRhdGVzIGhhcyBiZWVuIG5hcnJvd2VkIGZyb20gKy8tCisgKiAgICAgfjMwMCwwMDAsMDAwIHllYXJzIHRvICsvLSB+NSwwMDAsMDAwIHllYXJzLiBJbiBwcmFjdGljYWwgdGVybXMKKyAqICAgICB0aGlzIHNob3VsZCBub3QgYWZmZWN0IGNsaWVudHMuIEhvd2V2ZXIsIGl0IGRvZXMgbWVhbiB0aGF0IGNsaWVudAorICogICAgIGNvZGUgY2Fubm90IGJlIGd1YXJhbnRlZWQgd2VsbC1iZWhhdmVkIHJlc3VsdHMgd2l0aCBkYXRlcyBzdWNoIGFzCisgKiAgICAgPGNvZGU+RGF0ZShMb25nLk1JTl9WQUxVRSk8L2NvZGU+IG9yCisgKiAgICAgPGNvZGU+RGF0ZShMb25nLk1BWF9WQUxVRSk8L2NvZGU+LiBJbnN0ZWFkLCB0aGUKKyAqICAgICA8Y29kZT5DYWxlbmRhcjwvY29kZT4gY29uc3RhbnRzIHtAbGluayAjTUlOX0RBVEV9LAorICogICAgIHtAbGluayAjTUFYX0RBVEV9LCB7QGxpbmsgI01JTl9NSUxMSVN9LAorICogICAgIHtAbGluayAjTUFYX01JTExJU30sIHtAbGluayAjTUlOX0pVTElBTn0sIGFuZAorICogICAgIHtAbGluayAjTUFYX0pVTElBTn0gc2hvdWxkIGJlIHVzZWQuIDxiPk1vdGl2YXRpb246PC9iPiBXaXRoCisgKiAgICAgdGhlIGFkZGl0aW9uIG9mIHRoZSB7QGxpbmsgI0pVTElBTl9EQVl9IGZpZWxkLCBKdWxpYW4gZGF5CisgKiAgICAgbnVtYmVycyBtdXN0IGJlIHJlc3RyaWN0ZWQgdG8gYSAzMi1iaXQgPGNvZGU+aW50PC9jb2RlPi4gIFRoaXMKKyAqICAgICByZXN0cmljdHMgdGhlIG92ZXJhbGwgc3VwcG9ydGVkIHJhbmdlLiBGdXJ0aGVybW9yZSwgcmVzdHJpY3RpbmcKKyAqICAgICB0aGUgc3VwcG9ydGVkIHJhbmdlIHNpbXBsaWZpZXMgdGhlIGNvbXB1dGF0aW9ucyBieSByZW1vdmluZworICogICAgIHNwZWNpYWwgY2FzZSBjb2RlIHRoYXQgd2FzIHVzZWQgdG8gYWNjb21vZGF0ZSBhcml0aG1ldGljIG92ZXJmbG93CisgKiAgICAgYXQgbWlsbGlzIG5lYXIgPGNvZGU+TG9uZy5NSU5fVkFMVUU8L2NvZGU+IGFuZAorICogICAgIDxjb2RlPkxvbmcuTUFYX1ZBTFVFPC9jb2RlPi48L2xpPgorICogCisgKiAgIDxsaT5OZXcgZmllbGRzIGFyZSBpbXBsZW1lbnRlZDoge0BsaW5rICNKVUxJQU5fREFZfSBkZWZpbmVzCisgKiAgICAgc2luZ2xlLWZpZWxkIHNwZWNpZmljYXRpb24gb2YgdGhlCisgKiAgICAgZGF0ZS4ge0BsaW5rICNNSUxMSVNFQ09ORFNfSU5fREFZfSBkZWZpbmVzIGEgc2luZ2xlLWZpZWxkCisgKiAgICAgc3BlY2lmaWNhdGlvbiBvZiB0aGUgd2FsbCB0aW1lLiB7QGxpbmsgI0RPV19MT0NBTH0gYW5kCisgKiAgICAge0BsaW5rICNZRUFSX1dPWX0gaW1wbGVtZW50IGxvY2FsaXplZCBkYXktb2Ytd2VlayBhbmQKKyAqICAgICB3ZWVrLW9mLXllYXIgYmVoYXZpb3IuPC9saT4KKyAqIAorICogICA8bGk+U3ViY2xhc3NlcyBjYW4gYWNjZXNzIG1pbGxpc2Vjb25kIGNvbnN0YW50cworICogICAgIHtAbGluayAjT05FX1NFQ09ORH0sIHtAbGluayAjT05FX01JTlVURX0sCisgKiAgICAge0BsaW5rICNPTkVfSE9VUn0sIHtAbGluayAjT05FX0RBWX0sIGFuZAorICogICAgIHtAbGluayAjT05FX1dFRUt9IGRlZmluZWQgaW4gPGNvZGU+Q2FsZW5kYXI8L2NvZGU+LjwvbGk+CisgKiAKKyAqICAgPGxpPk5ldyBBUEkgaGFzIGJlZW4gYWRkZWQgdG8gc3Vwb3J0IGNhbGVuZGFyLXNwZWNpZmljIHN1YmNsYXNzZXMKKyAqICAgICBvZiA8Y29kZT5EYXRlRm9ybWF0PC9jb2RlPi48L2xpPgorICogCisgKiAgIDxsaT5TZXZlcmFsIHN1YmNsYXNzZXMgaGF2ZSBiZWVuIGltcGxlbWVudGVkLCByZXByZXNlbnRpbmcKKyAqICAgICB2YXJpb3VzIGludGVybmF0aW9uYWwgY2FsZW5kYXIgc3lzdGVtcy48L2xpPgorICogCisgKiA8L3VsPgorICogCisgKiA8cD48YmlnPjxiPlN1YmNsYXNzIEFQSTwvYj48L2JpZz48L3A+CisgKiAKKyAqIDxwPlRoZSBvcmlnaW5hbCA8Y29kZT5DYWxlbmRhcjwvY29kZT4gQVBJIHdhcyBiYXNlZCBvbiB0aGUgZXhwZXJpZW5jZQorICogb2YgaW1wbGVtZW50aW5nIGEgb25seSBhIHNpbmdsZSBzdWJjbGFzcywKKyAqIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPi4gQXMgYSByZXN1bHQsIGFsbCBvZiB0aGUgc3ViY2xhc3NpbmcKKyAqIGtpbmtzIGhhZCBub3QgYmVlbiB3b3JrZWQgb3V0LiBUaGUgbmV3IHN1YmNsYXNzaW5nIEFQSSBoYXMgYmVlbgorICogcmVmaW5lZCBiYXNlZCBvbiBzZXZlcmFsIGltcGxlbWVudGVkIHN1YmNsYXNzZXMuIFRoaXMgaW5jbHVkZXMgbWV0aG9kcworICogdGhhdCBtdXN0IGJlIG92ZXJyaWRkZW4gYW5kIG1ldGhvZHMgZm9yIHN1YmNsYXNzZXMgdG8gY2FsbC4gU3ViY2xhc3NlcworICogbm8gbG9uZ2VyIGhhdmUgZGlyZWN0IGFjY2VzcyB0byA8Y29kZT5maWVsZHM8L2NvZGU+IGFuZAorICogPGNvZGU+c3RhbXA8L2NvZGU+LiBJbnN0ZWFkLCB0aGV5IGhhdmUgbmV3IEFQSSB0byBhY2Nlc3MKKyAqIHRoZXNlLiBTdWJjbGFzc2VzIGFyZSBhYmxlIHRvIGFsbG9jYXRlIHRoZSA8Y29kZT5maWVsZHM8L2NvZGU+IGFycmF5CisgKiB0aHJvdWdoIGEgcHJvdGVjdGVkIGZyYW1ld29yayBtZXRob2Q7IHRoaXMgYWxsb3dzIHN1YmNsYXNzZXMgdG8KKyAqIHNwZWNpZnkgYWRkaXRpb25hbCBmaWVsZHMuIDwvcD4KKyAqIAorICogPHA+TW9yZSBmdW5jdGlvbmFsaXR5IGhhcyBiZWVuIG1vdmVkIGludG8gdGhlIGJhc2UgY2xhc3MuIFRoZSBiYXNlCisgKiBjbGFzcyBub3cgY29udGFpbnMgbXVjaCBvZiB0aGUgY29tcHV0YXRpb25hbCBtYWNoaW5lcnkgdG8gc3VwcG9ydCB0aGUKKyAqIEdyZWdvcmlhbiBjYWxlbmRhci4gVGhpcyBpcyBiYXNlZCBvbiB0d28gdGhpbmdzOiAoMSkgTWFueSBjYWxlbmRhcnMKKyAqIGFyZSBiYXNlZCBvbiB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyIChzdWNoIGFzIHRoZSBCdWRkaGlzdCBhbmQgSmFwYW5lc2UKKyAqIGltcGVyaWFsIGNhbGVuZGFycykuICgyKSA8ZW0+QWxsPC9lbT4gY2FsZW5kYXJzIHJlcXVpcmUgYmFzaWMKKyAqIEdyZWdvcmlhbiBzdXBwb3J0IGluIG9yZGVyIHRvIGhhbmRsZSB0aW1lem9uZSBjb21wdXRhdGlvbnMuIDwvcD4KKyAqIAorICogPHA+Q29tbW9uIGNvbXB1dGF0aW9ucyBoYXZlIGJlZW4gbW92ZWQgaW50bworICogPGNvZGU+Q2FsZW5kYXI8L2NvZGU+LiBTdWJjbGFzc2VzIG5vIGxvbmdlciBjb21wdXRlIHRoZSB3ZWVrIHJlbGF0ZWQKKyAqIGZpZWxkcyBhbmQgdGhlIHRpbWUgcmVsYXRlZCBmaWVsZHMuIFRoZXNlIGFyZSBjb21tb25seSBoYW5kbGVkIGZvciBhbGwKKyAqIGNhbGVuZGFycyBieSB0aGUgYmFzZSBjbGFzcy4gPC9wPgorICogCisgKiA8cD48Yj5TdWJjbGFzcyBjb21wdXRhdGlvbiBvZiB0aW1lIDx0dD49Jmd0OzwvdHQ+IGZpZWxkczwvYj4KKyAqIAorICogPHA+VGhlIHtAbGluayAjRVJBfSwge0BsaW5rICNZRUFSfSwKKyAqIHtAbGluayAjRVhURU5ERURfWUVBUn0sIHtAbGluayAjTU9OVEh9LAorICoge0BsaW5rICNEQVlfT0ZfTU9OVEh9LCBhbmQge0BsaW5rICNEQVlfT0ZfWUVBUn0gZmllbGRzIGFyZQorICogY29tcHV0ZWQgYnkgdGhlIHN1YmNsYXNzLCBiYXNlZCBvbiB0aGUgSnVsaWFuIGRheS4gQWxsIG90aGVyIGZpZWxkcworICogYXJlIGNvbXB1dGVkIGJ5IDxjb2RlPkNhbGVuZGFyPC9jb2RlPi4KKyAqIAorICogPHVsPgorICogCisgKiAgIDxsaT5TdWJjbGFzc2VzIHNob3VsZCBpbXBsZW1lbnQge0BsaW5rICNoYW5kbGVDb21wdXRlRmllbGRzfQorICogICAgIHRvIGNvbXB1dGUgdGhlIHtAbGluayAjRVJBfSwge0BsaW5rICNZRUFSfSwKKyAqICAgICB7QGxpbmsgI0VYVEVOREVEX1lFQVJ9LCB7QGxpbmsgI01PTlRIfSwKKyAqICAgICB7QGxpbmsgI0RBWV9PRl9NT05USH0sIGFuZCB7QGxpbmsgI0RBWV9PRl9ZRUFSfSBmaWVsZHMsCisgKiAgICAgYmFzZWQgb24gdGhlIHZhbHVlIG9mIHRoZSB7QGxpbmsgI0pVTElBTl9EQVl9IGZpZWxkLiBJZiB0aGVyZQorICogICAgIGFyZSBjYWxlbmRhci1zcGVjaWZpYyBmaWVsZHMgbm90IGRlZmluZWQgYnkgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+LAorICogICAgIHRoZXkgbXVzdCBhbHNvIGJlIGNvbXB1dGVkLiBUaGVzZSBhcmUgdGhlIG9ubHkgZmllbGRzIHRoYXQgdGhlCisgKiAgICAgc3ViY2xhc3Mgc2hvdWxkIGNvbXB1dGUuIEFsbCBvdGhlciBmaWVsZHMgYXJlIGNvbXB1dGVkIGJ5IHRoZSBiYXNlCisgKiAgICAgY2xhc3MsIHNvIHRpbWUgYW5kIHdlZWsgZmllbGRzIGJlaGF2ZSBpbiBhIGNvbnNpc3RlbnQgd2F5IGFjcm9zcworICogICAgIGFsbCBjYWxlbmRhcnMuIFRoZSBkZWZhdWx0IHZlcnNpb24gb2YgdGhpcyBtZXRob2QgaW4KKyAqICAgICA8Y29kZT5DYWxlbmRhcjwvY29kZT4gaW1wbGVtZW50cyBhIHByb2xlcHRpYyBHcmVnb3JpYW4KKyAqICAgICBjYWxlbmRhci4gV2l0aGluIHRoaXMgbWV0aG9kLCBzdWJjbGFzc2VzIG1heSBjYWxsCisgKiAgICAgPGNvZGU+Z2V0R3JlZ29yaWFuWHh4KCk8L2NvZGU+IHRvIG9idGFpbiB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyCisgKiAgICAgbW9udGgsIGRheSBvZiBtb250aCwgYW5kIGV4dGVuZGVkIHllYXIgZm9yIHRoZSBnaXZlbiBkYXRlLjwvbGk+CisgKiAKKyAqIDwvdWw+CisgKiAKKyAqIDxwPjxiPlN1YmNsYXNzIGNvbXB1dGF0aW9uIG9mIGZpZWxkcyA8dHQ+PSZndDs8L3R0PiB0aW1lPC9iPgorICogCisgKiA8cD5UaGUgaW50ZXJwcmV0YXRpb24gb2YgbW9zdCBmaWVsZCB2YWx1ZXMgaXMgaGFuZGxlZCBlbnRpcmVseSBieQorICogPGNvZGU+Q2FsZW5kYXI8L2NvZGU+LiA8Y29kZT5DYWxlbmRhcjwvY29kZT4gZGV0ZXJtaW5lcyB3aGljaCBmaWVsZHMKKyAqIGFyZSBzZXQsIHdoaWNoIGFyZSBub3QsIHdoaWNoIGFyZSBzZXQgbW9yZSByZWNlbnRseSwgYW5kIHNvIG9uLiBJbgorICogYWRkaXRpb24sIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBoYW5kbGVzIHRoZSBjb21wdXRhdGlvbiBvZiB0aGUgdGltZQorICogZnJvbSB0aGUgdGltZSBmaWVsZHMgYW5kIGhhbmRsZXMgdGhlIHdlZWstcmVsYXRlZCBmaWVsZHMuIFRoZSBvbmx5CisgKiB0aGluZyB0aGUgc3ViY2xhc3MgbXVzdCBkbyBpcyBkZXRlcm1pbmUgdGhlIGV4dGVuZGVkIHllYXIsIGJhc2VkIG9uCisgKiB0aGUgeWVhciBmaWVsZHMsIGFuZCB0aGVuLCBnaXZlbiBhbiBleHRlbmRlZCB5ZWFyIGFuZCBhIG1vbnRoLCBpdCBtdXN0CisgKiByZXR1cm4gYSBKdWxpYW4gZGF5IG51bWJlci4KKyAqIAorICogPHVsPgorICogCisgKiAgIDxsaT5TdWJjbGFzc2VzIHNob3VsZCBpbXBsZW1lbnQge0BsaW5rICNoYW5kbGVHZXRFeHRlbmRlZFllYXJ9CisgKiAgICAgdG8gcmV0dXJuIHRoZSBleHRlbmRlZCB5ZWFyIGZvciB0aGlzIGNhbGVuZGFyIHN5c3RlbSwgYmFzZWQgb24gdGhlCisgKiAgICAge0BsaW5rICNZRUFSfSwge0BsaW5rICNFWFRFTkRFRF9ZRUFSfSwgYW5kIGFueSBmaWVsZHMgdGhhdAorICogICAgIHRoZSBjYWxlbmRhciBzeXN0ZW0gdXNlcyB0aGF0IGFyZSBsYXJnZXIgdGhhbiBhIHllYXIsIHN1Y2ggYXMKKyAqICAgICB7QGxpbmsgI0VSQX0uPC9saT4KKyAqIAorICogICA8bGk+U3ViY2xhc3NlcyBzaG91bGQgaW1wbGVtZW50IHtAbGluayAjaGFuZGxlQ29tcHV0ZU1vbnRoU3RhcnR9CisgKiAgICAgdG8gcmV0dXJuIHRoZSBKdWxpYW4gZGF5IG51bWJlcgorICogICAgIGFzc29jaWF0ZWQgd2l0aCBhIG1vbnRoIGFuZCBleHRlbmRlZCB5ZWFyLiBUaGlzIGlzIHRoZSBKdWxpYW4gZGF5CisgKiAgICAgbnVtYmVyIG9mIHRoZSBkYXkgYmVmb3JlIHRoZSBmaXJzdCBkYXkgb2YgdGhlIG1vbnRoLiBUaGUgbW9udGgKKyAqICAgICBudW1iZXIgaXMgemVyby1iYXNlZC4gVGhpcyBjb21wdXRhdGlvbiBzaG91bGQgbm90IGRlcGVuZCBvbiBhbnkKKyAqICAgICBmaWVsZCB2YWx1ZXMuPC9saT4KKyAqIAorICogPC91bD4KKyAqIAorICogPHA+PGI+T3RoZXIgbWV0aG9kczwvYj4KKyAqIAorICogPHVsPgorICogCisgKiAgIDxsaT5TdWJjbGFzc2VzIHNob3VsZCBpbXBsZW1lbnQge0BsaW5rICNoYW5kbGVHZXRNb250aExlbmd0aH0KKyAqICAgICB0byByZXR1cm4gdGhlIG51bWJlciBvZiBkYXlzIGluIGEKKyAqICAgICBnaXZlbiBtb250aCBvZiBhIGdpdmVuIGV4dGVuZGVkIHllYXIuIFRoZSBtb250aCBudW1iZXIsIGFzIGFsd2F5cywKKyAqICAgICBpcyB6ZXJvLWJhc2VkLjwvbGk+CisgKiAKKyAqICAgPGxpPlN1YmNsYXNzZXMgc2hvdWxkIGltcGxlbWVudCB7QGxpbmsgI2hhbmRsZUdldFllYXJMZW5ndGh9CisgKiAgICAgdG8gcmV0dXJuIHRoZSBudW1iZXIgb2YgZGF5cyBpbiB0aGUgZ2l2ZW4KKyAqICAgICBleHRlbmRlZCB5ZWFyLiBUaGlzIG1ldGhvZCBpcyB1c2VkIGJ5CisgKiAgICAgPHR0PmNvbXB1dGVXZWVrRmllbGRzPC90dD4gdG8gY29tcHV0ZSB0aGUKKyAqICAgICB7QGxpbmsgI1dFRUtfT0ZfWUVBUn0gYW5kIHtAbGluayAjWUVBUl9XT1l9IGZpZWxkcy48L2xpPgorICogCisgKiAgIDxsaT5TdWJjbGFzc2VzIHNob3VsZCBpbXBsZW1lbnQge0BsaW5rICNoYW5kbGVHZXRMaW1pdH0KKyAqICAgICB0byByZXR1cm4gdGhlIHtAbGluayAjTUlOSU1VTX0sCisgKiAgICAge0BsaW5rICNHUkVBVEVTVF9NSU5JTVVNfSwge0BsaW5rICNMRUFTVF9NQVhJTVVNfSwgb3IKKyAqICAgICB7QGxpbmsgI01BWElNVU19IG9mIGEgZmllbGQsIGRlcGVuZGluZyBvbiB0aGUgdmFsdWUgb2YKKyAqICAgICA8Y29kZT5saW1pdFR5cGU8L2NvZGU+LiBUaGlzIG1ldGhvZCBvbmx5IG5lZWRzIHRvIGhhbmRsZSB0aGUKKyAqICAgICBmaWVsZHMge0BsaW5rICNFUkF9LCB7QGxpbmsgI1lFQVJ9LCB7QGxpbmsgI01PTlRIfSwKKyAqICAgICB7QGxpbmsgI1dFRUtfT0ZfWUVBUn0sIHtAbGluayAjV0VFS19PRl9NT05USH0sCisgKiAgICAge0BsaW5rICNEQVlfT0ZfTU9OVEh9LCB7QGxpbmsgI0RBWV9PRl9ZRUFSfSwKKyAqICAgICB7QGxpbmsgI0RBWV9PRl9XRUVLX0lOX01PTlRIfSwge0BsaW5rICNZRUFSX1dPWX0sIGFuZAorICogICAgIHtAbGluayAjRVhURU5ERURfWUVBUn0uICBPdGhlciBmaWVsZHMgYXJlIGludmFyaWFudCAod2l0aAorICogICAgIHJlc3BlY3QgdG8gY2FsZW5kYXIgc3lzdGVtKSBhbmQgYXJlIGhhbmRsZWQgYnkgdGhlIGJhc2UKKyAqICAgICBjbGFzcy48L2xpPgorICogCisgKiAgIDxsaT5PcHRpb25hbGx5LCBzdWJjbGFzc2VzIG1heSBvdmVycmlkZSB7QGxpbmsgI3ZhbGlkYXRlRmllbGR9CisgKiAgICAgdG8gY2hlY2sgYW55IHN1YmNsYXNzLXNwZWNpZmljIGZpZWxkcy4gSWYgdGhlCisgKiAgICAgZmllbGQncyB2YWx1ZSBpcyBvdXQgb2YgcmFuZ2UsIHRoZSBtZXRob2Qgc2hvdWxkIHRocm93IGFuCisgKiAgICAgPGNvZGU+SWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uPC9jb2RlPi4gVGhlIG1ldGhvZCBtYXkgY2FsbAorICogICAgIDxjb2RlPnN1cGVyLnZhbGlkYXRlRmllbGQoZmllbGQpPC9jb2RlPiB0byBoYW5kbGUgZmllbGRzIGluIGEKKyAqICAgICBnZW5lcmljIHdheSwgdGhhdCBpcywgdG8gY29tcGFyZSB0aGVtIHRvIHRoZSByYW5nZQorICogICAgIDxjb2RlPmdldE1pbmltdW0oZmllbGQpPC9jb2RlPi4uPGNvZGU+Z2V0TWF4aW11bShmaWVsZCk8L2NvZGU+LjwvbGk+CisgKiAKKyAqICAgPGxpPk9wdGlvbmFsbHksIHN1YmNsYXNzZXMgbWF5IG92ZXJyaWRlCisgKiAgICAge0BsaW5rICNoYW5kbGVDcmVhdGVGaWVsZHN9IHRvIGNyZWF0ZSBhbiA8Y29kZT5pbnRbXTwvY29kZT4KKyAqICAgICBhcnJheSBsYXJnZSBlbm91Z2ggdG8gaG9sZCB0aGUgY2FsZW5kYXIncyBmaWVsZHMuIFRoaXMgaXMgb25seQorICogICAgIG5lY2Vzc2FyeSBpZiB0aGUgY2FsZW5kYXIgZGVmaW5lcyBhZGRpdGlvbmFsIGZpZWxkcyBiZXlvbmQgdGhvc2UKKyAqICAgICBkZWZpbmVkIGJ5IDxjb2RlPkNhbGVuZGFyPC9jb2RlPi4gVGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0IG11c3QgYmUKKyAqICAgICBhdCBsZWFzdCB7QGxpbmsgI0JBU0VfRklFTERfQ09VTlR9IGFuZCBubyBtb3JlIHRoYW4KKyAqICAgICB7QGxpbmsgI01BWF9GSUVMRF9DT1VOVH0uPC9saT4KKyAqIAorICogICA8bGk+T3B0aW9uYWxseSwgc3ViY2xhc3NlcyBtYXkgb3ZlcnJpZGUKKyAqICAgICB7QGxpbmsgI2hhbmRsZUdldERhdGVGb3JtYXR9IHRvIGNyZWF0ZSBhCisgKiAgICAgPGNvZGU+RGF0ZUZvcm1hdDwvY29kZT4gYXBwcm9wcmlhdGUgdG8gdGhpcyBjYWxlbmRhci4gVGhpcyBpcyBvbmx5CisgKiAgICAgcmVxdWlyZWQgaWYgYSBjYWxlbmRhciBzdWJjbGFzcyByZWRlZmluZXMgdGhlIHVzZSBvZiBhIGZpZWxkIChmb3IKKyAqICAgICBleGFtcGxlLCBjaGFuZ2VzIHRoZSB7QGxpbmsgI0VSQX0gZmllbGQgZnJvbSBhIHN5bWJvbGljIGZpZWxkCisgKiAgICAgdG8gYSBudW1lcmljIG9uZSkgb3IgZGVmaW5lcyBhbiBhZGRpdGlvbmFsIGZpZWxkLjwvbGk+CisgKiAKKyAqICAgPGxpPk9wdGlvbmFsbHksIHN1YmNsYXNzZXMgbWF5IG92ZXJyaWRlIHtAbGluayAjcm9sbCByb2xsfSBhbmQKKyAqICAgICB7QGxpbmsgI2FkZCBhZGR9IHRvIGhhbmRsZSBmaWVsZHMgdGhhdCBhcmUgZGlzY29udGludW91cy4gRm9yCisgKiAgICAgZXhhbXBsZSwgaW4gdGhlIEhlYnJldyBjYWxlbmRhciB0aGUgbW9udGggJnF1b3Q7QWRhciBJJnF1b3Q7IG9ubHkKKyAqICAgICBvY2N1cnMgaW4gbGVhcCB5ZWFyczsgaW4gb3RoZXIgeWVhcnMgdGhlIGNhbGVuZGFyIGp1bXBzIGZyb20KKyAqICAgICBTaGV2YXQgKG1vbnRoICM0KSB0byBBZGFyIChtb250aCAjNikuIFRoZSB7QGxpbmsKKyAqICAgICBIZWJyZXdDYWxlbmRhciNhZGQgSGVicmV3Q2FsZW5kYXIuYWRkfSBhbmQge0BsaW5rCisgKiAgICAgSGVicmV3Q2FsZW5kYXIjcm9sbCBIZWJyZXdDYWxlbmRhci5yb2xsfSBtZXRob2RzIHRha2UgdGhpcyBpbnRvCisgKiAgICAgYWNjb3VudCwgc28gdGhhdCBhZGRpbmcgMSBtb250aCB0byBTaGV2YXQgZ2l2ZXMgdGhlIHByb3BlciByZXN1bHQKKyAqICAgICAoQWRhcikgaW4gYSBub24tbGVhcCB5ZWFyLiBUaGUgcHJvdGVjdGVkIHV0aWxpdHkgbWV0aG9kIHtAbGluaworICogICAgICNwaW5GaWVsZCBwaW5GaWVsZH0gaXMgb2Z0ZW4gdXNlZnVsIHdoZW4gaW1wbGVtZW50aW5nIHRoZXNlIHR3bworICogICAgIG1ldGhvZHMuIDwvbGk+CisgKiAKKyAqIDwvdWw+CisgKiAKKyAqIDxwPjxiaWc+PGI+Tm9ybWFsaXplZCBiZWhhdmlvcjwvYj48L2JpZz4KKyAqIAorICogPHA+VGhlIGJlaGF2aW9yIG9mIGNlcnRhaW4gZmllbGRzIGhhcyBiZWVuIG1hZGUgY29uc2lzdGVudCBhY3Jvc3MgYWxsCisgKiBjYWxlbmRhciBzeXN0ZW1zIGFuZCBpbXBsZW1lbnRlZCBpbiA8Y29kZT5DYWxlbmRhcjwvY29kZT4uCisgKiAKKyAqIDx1bD4KKyAqIAorICogICA8bGk+VGltZSBpcyBub3JtYWxpemVkLiBFdmVuIHRob3VnaCBzb21lIGNhbGVuZGFyIHN5c3RlbXMgdHJhbnNpdGlvbgorICogICAgIGJldHdlZW4gZGF5cyBhdCBzdW5zZXQgb3IgYXQgb3RoZXIgdGltZXMsIGFsbCBJQ1U0SiBjYWxlbmRhcnMKKyAqICAgICB0cmFuc2l0aW9uIGJldHdlZW4gZGF5cyBhdCA8ZW0+bG9jYWwgem9uZSBtaWRuaWdodDwvZW0+LiAgVGhpcworICogICAgIGFsbG93cyBJQ1U0SiB0byBjZW50cmFsaXplIHRoZSB0aW1lIGNvbXB1dGF0aW9ucyBpbgorICogICAgIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBhbmQgdG8gbWFpbnRhaW4gYmFzaWMgY29ycmVwc29uZGVuY2VzCisgKiAgICAgYmV0d2VlbiBjYWxlbmRhciBzeXN0ZW1zLiBBZmZlY3RlZCBmaWVsZHM6IHtAbGluayAjQU1fUE19LAorICogICAgIHtAbGluayAjSE9VUn0sIHtAbGluayAjSE9VUl9PRl9EQVl9LCB7QGxpbmsgI01JTlVURX0sCisgKiAgICAge0BsaW5rICNTRUNPTkR9LCB7QGxpbmsgI01JTExJU0VDT05EfSwKKyAqICAgICB7QGxpbmsgI1pPTkVfT0ZGU0VUfSwgYW5kIHtAbGluayAjRFNUX09GRlNFVH0uPC9saT4KKyAqIAorICogICA8bGk+RFNUIGJlaGF2aW9yIGlzIG5vcm1hbGl6ZWQuIERheWxpZ2h0IHNhdmluZ3MgdGltZSBiZWhhdmlvciBpcworICogICAgIGNvbXB1dGVkIHRoZSBzYW1lIGZvciBhbGwgY2FsZW5kYXIgc3lzdGVtcywgYW5kIGRlcGVuZHMgb24gdGhlCisgKiAgICAgdmFsdWUgb2Ygc2V2ZXJhbCA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4gZmllbGRzOiB0aGUKKyAqICAgICB7QGxpbmsgI1lFQVJ9LCB7QGxpbmsgI01PTlRIfSwgYW5kCisgKiAgICAge0BsaW5rICNEQVlfT0ZfTU9OVEh9LiBBcyBhIHJlc3VsdCwgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+CisgKiAgICAgYWx3YXlzIGNvbXB1dGVzIHRoZXNlIGZpZWxkcywgZXZlbiBmb3Igbm9uLUdyZWdvcmlhbiBjYWxlbmRhcgorICogICAgIHN5c3RlbXMuIFRoZXNlIGZpZWxkcyBhcmUgYXZhaWxhYmxlIHRvIHN1YmNsYXNzZXMuPC9saT4KKyAqIAorICogICA8bGk+V2Vla3MgYXJlIG5vcm1hbGl6ZWQuIEFsdGhvdWdoIGxvY2FsZXMgZGVmaW5lIHRoZSB3ZWVrCisgKiAgICAgZGlmZmVyZW50bHksIGluIHRlcm1zIG9mIHRoZSBkYXkgb24gd2hpY2ggaXQgc3RhcnRzLCBhbmQgdGhlCisgKiAgICAgZGVzaWduYXRpb24gb2Ygd2VlayBudW1iZXIgb25lIG9mIGEgbW9udGggb3IgeWVhciwgdGhleSBhbGwgdXNlIGEKKyAqICAgICBjb21tb24gbWVjaGFuaXNtLiBGdXJ0aGVybW9yZSwgdGhlIGRheSBvZiB0aGUgd2VlayBoYXMgYSBzaW1wbGUKKyAqICAgICBhbmQgY29uc2lzdGVudCBkZWZpbml0aW9uIHRocm91Z2hvdXQgaGlzdG9yeS4gRm9yIGV4YW1wbGUsCisgKiAgICAgYWx0aG91Z2ggdGhlIEdyZWdvcmlhbiBjYWxlbmRhciBpbnRyb2R1Y2VkIGEgZGlzY29udGludWl0eSB3aGVuCisgKiAgICAgZmlyc3QgaW5zdGl0dXRlZCwgdGhlIGRheSBvZiB3ZWVrIHdhcyBub3QgZGlzcnVwdGVkLiBGb3IgdGhpcworICogICAgIHJlYXNvbiwgdGhlIGZpZWxkcyB7QGxpbmsgI0RBWV9PRl9XRUVLfSwgPGNvZGU+V0VFS19PRl9ZRUFSLAorICogICAgIFdFRUtfT0ZfTU9OVEg8L2NvZGU+LCB7QGxpbmsgI0RBWV9PRl9XRUVLX0lOX01PTlRIfSwKKyAqICAgICB7QGxpbmsgI0RPV19MT0NBTH0sIHtAbGluayAjWUVBUl9XT1l9IGFyZSBhbGwgY29tcHV0ZWQgaW4KKyAqICAgICBhIGNvbnNpc3RlbnQgd2F5IGluIHRoZSBiYXNlIGNsYXNzLCBiYXNlZCBvbiB0aGUKKyAqICAgICB7QGxpbmsgI0VYVEVOREVEX1lFQVJ9LCB7QGxpbmsgI0RBWV9PRl9ZRUFSfSwKKyAqICAgICB7QGxpbmsgI01PTlRIfSwgYW5kIHtAbGluayAjREFZX09GX01PTlRIfSwgd2hpY2ggYXJlCisgKiAgICAgY29tcHV0ZWQgYnkgdGhlIHN1YmNsYXNzLjwvbGk+CisgKiAKKyAqIDwvdWw+CisgKiAKKyAqIDxwPjxiaWc+PGI+U3VwcG9ydGVkIHJhbmdlPC9iPjwvYmlnPgorICogCisgKiA8cD5UaGUgYWxsb3dhYmxlIHJhbmdlIG9mIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBoYXMgYmVlbgorICogbmFycm93ZWQuIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPiB1c2VkIHRvIGF0dGVtcHQgdG8gc3VwcG9ydAorICogdGhlIHJhbmdlIG9mIGRhdGVzIHdpdGggbWlsbGlzZWNvbmQgdmFsdWVzIGZyb20KKyAqIDxjb2RlPkxvbmcuTUlOX1ZBTFVFPC9jb2RlPiB0byA8Y29kZT5Mb25nLk1BWF9WQUxVRTwvY29kZT4uIFRoaXMKKyAqIGludHJvZHVjZWQgYXdrd2FyZCBjb25zdHJ1Y3Rpb25zIChoYWNrcykgd2hpY2ggc2xvd2VkIGRvd24KKyAqIHBlcmZvcm1hbmNlLiBJdCBhbHNvIGludHJvZHVjZWQgbm9uLXVuaWZvcm0gYmVoYXZpb3IgYXQgdGhlCisgKiBib3VuZGFyaWVzLiBUaGUgbmV3IDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBwcm90b2NvbCBzcGVjaWZpZXMgdGhlCisgKiBtYXhpbXVtIHJhbmdlIG9mIHN1cHBvcnRhYmxlIGRhdGVzIGFzIHRob3NlIGhhdmluZyBKdWxpYW4gZGF5IG51bWJlcnMKKyAqIG9mIDxjb2RlPi0weDdGMDAwMDAwPC9jb2RlPiB0byA8Y29kZT4rMHg3RjAwMDAwMDwvY29kZT4uIFRoaXMKKyAqIGNvcnJlc3BvbmRzIHRvIHllYXJzIGZyb20gfjUsMDAwLDAwMCBCQ0UgdG8gfjUsMDAwLDAwMCBDRS4gUHJvZ3JhbW1lcnMKKyAqIHNob3VsZCB1c2UgdGhlIGNvbnN0YW50cyB7QGxpbmsgI01JTl9EQVRFfSAob3IKKyAqIHtAbGluayAjTUlOX01JTExJU30gb3Ige0BsaW5rICNNSU5fSlVMSUFOfSkgYW5kCisgKiB7QGxpbmsgI01BWF9EQVRFfSAob3Ige0BsaW5rICNNQVhfTUlMTElTfSBvcgorICoge0BsaW5rICNNQVhfSlVMSUFOfSkgaW4gPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IHRvIHNwZWNpZnkgYW4KKyAqIGV4dHJlbWVseSBlYXJseSBvciBleHRyZW1lbHkgbGF0ZSBkYXRlLjwvcD4KKyAqIAorICogPHA+PGJpZz48Yj5HZW5lcmFsIG5vdGVzPC9iPjwvYmlnPgorICogCisgKiA8dWw+CisgKiAKKyAqICAgPGxpPkNhbGVuZGFycyBpbXBsZW1lbnRhdGlvbnMgYXJlIDxlbT5wcm9sZXB0aWM8L2VtPi4gRm9yIGV4YW1wbGUsCisgKiAgICAgZXZlbiB0aG91Z2ggdGhlIEdyZWdvcmlhbiBjYWxlbmRhciB3YXMgbm90IGluc3RpdHV0ZWQgdW50aWwgdGhlCisgKiAgICAgMTZ0aCBjZW50dXJ5LCB0aGUgPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+IGNsYXNzIHN1cHBvcnRzCisgKiAgICAgZGF0ZXMgYmVmb3JlIHRoZSBoaXN0b3JpY2FsIG9uc2V0IG9mIHRoZSBjYWxlbmRhciBieSBleHRlbmRpbmcgdGhlCisgKiAgICAgY2FsZW5kYXIgc3lzdGVtIGJhY2t3YXJkIGluIHRpbWUuIFNpbWlsYXJseSwgdGhlCisgKiAgICAgPGNvZGU+SGVicmV3Q2FsZW5kYXI8L2NvZGU+IGV4dGVuZHMgYmFja3dhcmQgYmVmb3JlIHRoZSBzdGFydCBvZgorICogICAgIGl0cyBlcG9jaCBpbnRvIHplcm8gYW5kIG5lZ2F0aXZlIHllYXJzLiBTdWJjbGFzc2VzIGRvIG5vdCB0aHJvdworICogICAgIGV4Y2VwdGlvbnMgYmVjYXVzZSBhIGRhdGUgcHJlY2VkZXMgdGhlIGhpc3RvcmljYWwgc3RhcnQgb2YgYQorICogICAgIGNhbGVuZGFyIHN5c3RlbS4gSW5zdGVhZCwgdGhleSBpbXBsZW1lbnQKKyAqICAgICB7QGxpbmsgI2hhbmRsZUdldExpbWl0fSB0byByZXR1cm4gYXBwcm9wcmlhdGUgbGltaXRzIG9uCisgKiAgICAge0BsaW5rICNZRUFSfSwge0BsaW5rICNFUkF9LCBldGMuIGZpZWxkcy4gVGhlbiwgaWYgdGhlCisgKiAgICAgY2FsZW5kYXIgaXMgc2V0IHRvIG5vdCBiZSBsZW5pZW50LCBvdXQtb2YtcmFuZ2UgZmllbGQgdmFsdWVzIHdpbGwKKyAqICAgICB0cmlnZ2VyIGFuZCBleGNlcHRpb24uPC9saT4KKyAqIAorICogICA8bGk+Q2FsZW5kYXIgc3lzdGVtIHN1YmNsYXNzZXMgY29tcHV0ZSBhIDxlbT5leHRlbmRlZAorICogICAgIHllYXI8L2VtPi4gVGhpcyBkaWZmZXJzIGZyb20gdGhlIHtAbGluayAjWUVBUn0gZmllbGQgaW4gdGhhdAorICogICAgIGl0IHJhbmdlcyBvdmVyIGFsbCBpbnRlZ2VyIHZhbHVlcywgaW5jbHVkaW5nIHplcm8gYW5kIG5lZ2F0aXZlCisgKiAgICAgdmFsdWVzLCBhbmQgaXQgZW5jYXBzdWxhdGVzIHRoZSBpbmZvcm1hdGlvbiBvZiB0aGUKKyAqICAgICB7QGxpbmsgI1lFQVJ9IGZpZWxkIGFuZCBhbGwgbGFyZ2VyIGZpZWxkcy4gIFRodXMsIGZvciB0aGUKKyAqICAgICBHcmVnb3JpYW4gY2FsZW5kYXIsIHRoZSB7QGxpbmsgI0VYVEVOREVEX1lFQVJ9IGlzIGNvbXB1dGVkIGFzCisgKiAgICAgPGNvZGU+RVJBPT1BRCA/IFlFQVIgOiAxLVlFQVI8L2NvZGU+LiBBbm90aGVyIGV4YW1wbGUgaXMgdGhlIE1heWFuCisgKiAgICAgbG9uZyBjb3VudCwgd2hpY2ggaGFzIHllYXJzICg8Y29kZT5LVU48L2NvZGU+KSBhbmQgbmVzdGVkIGN5Y2xlcworICogICAgIG9mIHllYXJzICg8Y29kZT5LQVRVTjwvY29kZT4gYW5kIDxjb2RlPkJBS1RVTjwvY29kZT4pLiBUaGUgTWF5YW4KKyAqICAgICB7QGxpbmsgI0VYVEVOREVEX1lFQVJ9IGlzIGNvbXB1dGVkIGFzIDxjb2RlPlRVTiArIDIwICogKEtBVFVOCisgKiAgICAgKyAyMCAqIEJBS1RVTik8L2NvZGU+LiBUaGUgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGJhc2UgY2xhc3MgdXNlcworICogICAgIHRoZSB7QGxpbmsgI0VYVEVOREVEX1lFQVJ9IGZpZWxkIHRvIGNvbXB1dGUgdGhlIHdlZWstcmVsYXRlZAorICogICAgIGZpZWxkcy48L2xpPgorICogCisgKiA8L3VsPgorICoKKyAqIEBzZWUgICAgICAgICAgRGF0ZQorICogQHNlZSAgICAgICAgICBHcmVnb3JpYW5DYWxlbmRhcgorICogQHNlZSAgICAgICAgICBUaW1lWm9uZQorICogQHNlZSAgICAgICAgICBEYXRlRm9ybWF0CisgKiBAdmVyc2lvbiAgICAgICRSZXZpc2lvbjogMS4yOSAkICREYXRlOiAyMDAyLzA4LzA4IDAxOjQ1OjIxICQKKyAqIEBhdXRob3IgTWFyayBEYXZpcywgRGF2aWQgR29sZHNtaXRoLCBDaGVuLUxpZWggSHVhbmcsIEFsYW4gTGl1LCBMYXVyYSBXZXJuZXIKKyAqIEBzaW5jZSBKREsxLjEKKyAqLworcHVibGljIGFic3RyYWN0IGNsYXNzIENhbGVuZGFyIGltcGxlbWVudHMgU2VyaWFsaXphYmxlLCBDbG9uZWFibGUgeworCisgICAgLy8gRGF0YSBmbG93IGluIENhbGVuZGFyCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvLyBUaGUgY3VycmVudCB0aW1lIGlzIHJlcHJlc2VudGVkIGluIHR3byB3YXlzIGJ5IENhbGVuZGFyOiBhcyBVVEMKKyAgICAvLyBtaWxsaXNlY29uZHMgZnJvbSB0aGUgZXBvY2ggc3RhcnQgKDEgSmFudWFyeSAxOTcwIDA6MDAgVVRDKSwgYW5kIGFzIGxvY2FsCisgICAgLy8gZmllbGRzIHN1Y2ggYXMgTU9OVEgsIEhPVVIsIEFNX1BNLCBldGMuICBJdCBpcyBwb3NzaWJsZSB0byBjb21wdXRlIHRoZQorICAgIC8vIG1pbGxpcyBmcm9tIHRoZSBmaWVsZHMsIGFuZCB2aWNlIHZlcnNhLiAgVGhlIGRhdGEgbmVlZGVkIHRvIGRvIHRoaXMKKyAgICAvLyBjb252ZXJzaW9uIGlzIGVuY2Fwc3VsYXRlZCBieSBhIFRpbWVab25lIG9iamVjdCBvd25lZCBieSB0aGUgQ2FsZW5kYXIuCisgICAgLy8gVGhlIGRhdGEgcHJvdmlkZWQgYnkgdGhlIFRpbWVab25lIG9iamVjdCBtYXkgYWxzbyBiZSBvdmVycmlkZGVuIGlmIHRoZQorICAgIC8vIHVzZXIgc2V0cyB0aGUgWk9ORV9PRkZTRVQgYW5kL29yIERTVF9PRkZTRVQgZmllbGRzIGRpcmVjdGx5LiBUaGUgY2xhc3MKKyAgICAvLyBrZWVwcyB0cmFjayBvZiB3aGF0IGluZm9ybWF0aW9uIHdhcyBtb3N0IHJlY2VudGx5IHNldCBieSB0aGUgY2FsbGVyLCBhbmQKKyAgICAvLyB1c2VzIHRoYXQgdG8gY29tcHV0ZSBhbnkgb3RoZXIgaW5mb3JtYXRpb24gYXMgbmVlZGVkLgorCisgICAgLy8gSWYgdGhlIHVzZXIgc2V0cyB0aGUgZmllbGRzIHVzaW5nIHNldCgpLCB0aGUgZGF0YSBmbG93IGlzIGFzIGZvbGxvd3MuCisgICAgLy8gVGhpcyBpcyBpbXBsZW1lbnRlZCBieSB0aGUgQ2FsZW5kYXIgc3ViY2xhc3MncyBjb21wdXRlVGltZSgpIG1ldGhvZC4KKyAgICAvLyBEdXJpbmcgdGhpcyBwcm9jZXNzLCBjZXJ0YWluIGZpZWxkcyBtYXkgYmUgaWdub3JlZC4gIFRoZSBkaXNhbWJpZ3VhdGlvbgorICAgIC8vIGFsZ29yaXRobSBmb3IgcmVzb2x2aW5nIHdoaWNoIGZpZWxkcyB0byBwYXkgYXR0ZW50aW9uIHRvIGlzIGRlc2NyaWJlZAorICAgIC8vIGFib3ZlLgorCisgICAgLy8gICBsb2NhbCBmaWVsZHMgKFlFQVIsIE1PTlRILCBEQVRFLCBIT1VSLCBNSU5VVEUsIGV0Yy4pCisgICAgLy8gICAgICAgICAgIHwKKyAgICAvLyAgICAgICAgICAgfCBVc2luZyBDYWxlbmRhci1zcGVjaWZpYyBhbGdvcml0aG0KKyAgICAvLyAgICAgICAgICAgVgorICAgIC8vICAgbG9jYWwgc3RhbmRhcmQgbWlsbGlzCisgICAgLy8gICAgICAgICAgIHwKKyAgICAvLyAgICAgICAgICAgfCBVc2luZyBUaW1lWm9uZSBvciB1c2VyLXNldCBaT05FX09GRlNFVCAvIERTVF9PRkZTRVQKKyAgICAvLyAgICAgICAgICAgVgorICAgIC8vICAgVVRDIG1pbGxpcyAoaW4gdGltZSBkYXRhIG1lbWJlcikKKworICAgIC8vIElmIHRoZSB1c2VyIHNldHMgdGhlIFVUQyBtaWxsaXMgdXNpbmcgc2V0VGltZSgpLCB0aGUgZGF0YSBmbG93IGlzIGFzCisgICAgLy8gZm9sbG93cy4gIFRoaXMgaXMgaW1wbGVtZW50ZWQgYnkgdGhlIENhbGVuZGFyIHN1YmNsYXNzJ3MgY29tcHV0ZUZpZWxkcygpCisgICAgLy8gbWV0aG9kLgorCisgICAgLy8gICBVVEMgbWlsbGlzIChpbiB0aW1lIGRhdGEgbWVtYmVyKQorICAgIC8vICAgICAgICAgICB8CisgICAgLy8gICAgICAgICAgIHwgVXNpbmcgVGltZVpvbmUgZ2V0T2Zmc2V0KCkKKyAgICAvLyAgICAgICAgICAgVgorICAgIC8vICAgbG9jYWwgc3RhbmRhcmQgbWlsbGlzCisgICAgLy8gICAgICAgICAgIHwKKyAgICAvLyAgICAgICAgICAgfCBVc2luZyBDYWxlbmRhci1zcGVjaWZpYyBhbGdvcml0aG0KKyAgICAvLyAgICAgICAgICAgVgorICAgIC8vICAgbG9jYWwgZmllbGRzIChZRUFSLCBNT05USCwgREFURSwgSE9VUiwgTUlOVVRFLCBldGMuKQorCisgICAgLy8gSW4gZ2VuZXJhbCwgYSByb3VuZCB0cmlwIGZyb20gZmllbGRzLCB0aHJvdWdoIGxvY2FsIGFuZCBVVEMgbWlsbGlzLCBhbmQKKyAgICAvLyBiYWNrIG91dCB0byBmaWVsZHMgaXMgbWFkZSB3aGVuIG5lY2Vzc2FyeS4gIFRoaXMgaXMgaW1wbGVtZW50ZWQgYnkgdGhlCisgICAgLy8gY29tcGxldGUoKSBtZXRob2QuICBSZXNvbHZpbmcgYSBwYXJ0aWFsIHNldCBvZiBmaWVsZHMgaW50byBhIFVUQyBtaWxsaXMKKyAgICAvLyB2YWx1ZSBhbGxvd3MgYWxsIHJlbWFpbmluZyBmaWVsZHMgdG8gYmUgZ2VuZXJhdGVkIGZyb20gdGhhdCB2YWx1ZS4gIElmCisgICAgLy8gdGhlIENhbGVuZGFyIGlzIGxlbmllbnQsIHRoZSBmaWVsZHMgYXJlIGFsc28gcmVub3JtYWxpemVkIHRvIHN0YW5kYXJkCisgICAgLy8gcmFuZ2VzIHdoZW4gdGhleSBhcmUgcmVnZW5lcmF0ZWQuCisKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUKKyAgICAgKiBlcmEsIGUuZy4sIEFEIG9yIEJDIGluIHRoZSBKdWxpYW4gY2FsZW5kYXIuIFRoaXMgaXMgYSBjYWxlbmRhci1zcGVjaWZpYworICAgICAqIHZhbHVlOyBzZWUgc3ViY2xhc3MgZG9jdW1lbnRhdGlvbi4KKyAgICAgKiBAc2VlIEdyZWdvcmlhbkNhbGVuZGFyI0FECisgICAgICogQHNlZSBHcmVnb3JpYW5DYWxlbmRhciNCQworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEVSQSA9IDA7CisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogeWVhci4gVGhpcyBpcyBhIGNhbGVuZGFyLXNwZWNpZmljIHZhbHVlOyBzZWUgc3ViY2xhc3MgZG9jdW1lbnRhdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBZRUFSID0gMTsKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUKKyAgICAgKiBtb250aC4gVGhpcyBpcyBhIGNhbGVuZGFyLXNwZWNpZmljIHZhbHVlLiBUaGUgZmlyc3QgbW9udGggb2YgdGhlIHllYXIgaXMKKyAgICAgKiA8Y29kZT5KQU5VQVJZPC9jb2RlPjsgdGhlIGxhc3QgZGVwZW5kcyBvbiB0aGUgbnVtYmVyIG9mIG1vbnRocyBpbiBhIHllYXIuCisgICAgICogQHNlZSAjSkFOVUFSWQorICAgICAqIEBzZWUgI0ZFQlJVQVJZCisgICAgICogQHNlZSAjTUFSQ0gKKyAgICAgKiBAc2VlICNBUFJJTAorICAgICAqIEBzZWUgI01BWQorICAgICAqIEBzZWUgI0pVTkUKKyAgICAgKiBAc2VlICNKVUxZCisgICAgICogQHNlZSAjQVVHVVNUCisgICAgICogQHNlZSAjU0VQVEVNQkVSCisgICAgICogQHNlZSAjT0NUT0JFUgorICAgICAqIEBzZWUgI05PVkVNQkVSCisgICAgICogQHNlZSAjREVDRU1CRVIKKyAgICAgKiBAc2VlICNVTkRFQ0lNQkVSCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTU9OVEggPSAyOworICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nIHRoZQorICAgICAqIHdlZWsgbnVtYmVyIHdpdGhpbiB0aGUgY3VycmVudCB5ZWFyLiAgVGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIsIGFzCisgICAgICogZGVmaW5lZCBieSA8Y29kZT5nZXRGaXJzdERheU9mV2VlaygpPC9jb2RlPiBhbmQKKyAgICAgKiA8Y29kZT5nZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCk8L2NvZGU+LCBoYXMgdmFsdWUgMS4gIFN1YmNsYXNzZXMgZGVmaW5lCisgICAgICogdGhlIHZhbHVlIG9mIDxjb2RlPldFRUtfT0ZfWUVBUjwvY29kZT4gZm9yIGRheXMgYmVmb3JlIHRoZSBmaXJzdCB3ZWVrIG9mCisgICAgICogdGhlIHllYXIuCisgICAgICogQHNlZSAjZ2V0Rmlyc3REYXlPZldlZWsKKyAgICAgKiBAc2VlICNnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgV0VFS19PRl9ZRUFSID0gMzsKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUKKyAgICAgKiB3ZWVrIG51bWJlciB3aXRoaW4gdGhlIGN1cnJlbnQgbW9udGguICBUaGUgZmlyc3Qgd2VlayBvZiB0aGUgbW9udGgsIGFzCisgICAgICogZGVmaW5lZCBieSA8Y29kZT5nZXRGaXJzdERheU9mV2VlaygpPC9jb2RlPiBhbmQKKyAgICAgKiA8Y29kZT5nZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCk8L2NvZGU+LCBoYXMgdmFsdWUgMS4gIFN1YmNsYXNzZXMgZGVmaW5lCisgICAgICogdGhlIHZhbHVlIG9mIDxjb2RlPldFRUtfT0ZfTU9OVEg8L2NvZGU+IGZvciBkYXlzIGJlZm9yZSB0aGUgZmlyc3Qgd2VlayBvZgorICAgICAqIHRoZSBtb250aC4KKyAgICAgKiBAc2VlICNnZXRGaXJzdERheU9mV2VlaworICAgICAqIEBzZWUgI2dldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBXRUVLX09GX01PTlRIID0gNDsKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUKKyAgICAgKiBkYXkgb2YgdGhlIG1vbnRoLiBUaGlzIGlzIGEgc3lub255bSBmb3IgPGNvZGU+REFZX09GX01PTlRIPC9jb2RlPi4KKyAgICAgKiBUaGUgZmlyc3QgZGF5IG9mIHRoZSBtb250aCBoYXMgdmFsdWUgMS4KKyAgICAgKiBAc2VlICNEQVlfT0ZfTU9OVEgKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBEQVRFID0gNTsKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUKKyAgICAgKiBkYXkgb2YgdGhlIG1vbnRoLiBUaGlzIGlzIGEgc3lub255bSBmb3IgPGNvZGU+REFURTwvY29kZT4uCisgICAgICogVGhlIGZpcnN0IGRheSBvZiB0aGUgbW9udGggaGFzIHZhbHVlIDEuCisgICAgICogQHNlZSAjREFURQorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERBWV9PRl9NT05USCA9IDU7CisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlIGRheQorICAgICAqIG51bWJlciB3aXRoaW4gdGhlIGN1cnJlbnQgeWVhci4gIFRoZSBmaXJzdCBkYXkgb2YgdGhlIHllYXIgaGFzIHZhbHVlIDEuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREFZX09GX1lFQVIgPSA2OworICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nIHRoZSBkYXkKKyAgICAgKiBvZiB0aGUgd2Vlay4gIFRoaXMgZmllbGQgdGFrZXMgdmFsdWVzIDxjb2RlPlNVTkRBWTwvY29kZT4sCisgICAgICogPGNvZGU+TU9OREFZPC9jb2RlPiwgPGNvZGU+VFVFU0RBWTwvY29kZT4sIDxjb2RlPldFRE5FU0RBWTwvY29kZT4sCisgICAgICogPGNvZGU+VEhVUlNEQVk8L2NvZGU+LCA8Y29kZT5GUklEQVk8L2NvZGU+LCBhbmQgPGNvZGU+U0FUVVJEQVk8L2NvZGU+LgorICAgICAqIEBzZWUgI1NVTkRBWQorICAgICAqIEBzZWUgI01PTkRBWQorICAgICAqIEBzZWUgI1RVRVNEQVkKKyAgICAgKiBAc2VlICNXRURORVNEQVkKKyAgICAgKiBAc2VlICNUSFVSU0RBWQorICAgICAqIEBzZWUgI0ZSSURBWQorICAgICAqIEBzZWUgI1NBVFVSREFZCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREFZX09GX1dFRUsgPSA3OworICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nIHRoZQorICAgICAqIG9yZGluYWwgbnVtYmVyIG9mIHRoZSBkYXkgb2YgdGhlIHdlZWsgd2l0aGluIHRoZSBjdXJyZW50IG1vbnRoLiBUb2dldGhlcgorICAgICAqIHdpdGggdGhlIDxjb2RlPkRBWV9PRl9XRUVLPC9jb2RlPiBmaWVsZCwgdGhpcyB1bmlxdWVseSBzcGVjaWZpZXMgYSBkYXkKKyAgICAgKiB3aXRoaW4gYSBtb250aC4gIFVubGlrZSA8Y29kZT5XRUVLX09GX01PTlRIPC9jb2RlPiBhbmQKKyAgICAgKiA8Y29kZT5XRUVLX09GX1lFQVI8L2NvZGU+LCB0aGlzIGZpZWxkJ3MgdmFsdWUgZG9lcyA8ZW0+bm90PC9lbT4gZGVwZW5kIG9uCisgICAgICogPGNvZGU+Z2V0Rmlyc3REYXlPZldlZWsoKTwvY29kZT4gb3IKKyAgICAgKiA8Y29kZT5nZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCk8L2NvZGU+LiAgPGNvZGU+REFZX09GX01PTlRIIDE8L2NvZGU+CisgICAgICogdGhyb3VnaCA8Y29kZT43PC9jb2RlPiBhbHdheXMgY29ycmVzcG9uZCB0byA8Y29kZT5EQVlfT0ZfV0VFS19JTl9NT05USAorICAgICAqIDE8L2NvZGU+OyA8Y29kZT44PC9jb2RlPiB0aHJvdWdoIDxjb2RlPjE1PC9jb2RlPiBjb3JyZXNwb25kIHRvCisgICAgICogPGNvZGU+REFZX09GX1dFRUtfSU5fTU9OVEggMjwvY29kZT4sIGFuZCBzbyBvbi4KKyAgICAgKiA8Y29kZT5EQVlfT0ZfV0VFS19JTl9NT05USCAwPC9jb2RlPiBpbmRpY2F0ZXMgdGhlIHdlZWsgYmVmb3JlCisgICAgICogPGNvZGU+REFZX09GX1dFRUtfSU5fTU9OVEggMTwvY29kZT4uICBOZWdhdGl2ZSB2YWx1ZXMgY291bnQgYmFjayBmcm9tIHRoZQorICAgICAqIGVuZCBvZiB0aGUgbW9udGgsIHNvIHRoZSBsYXN0IFN1bmRheSBvZiBhIG1vbnRoIGlzIHNwZWNpZmllZCBhcworICAgICAqIDxjb2RlPkRBWV9PRl9XRUVLID0gU1VOREFZLCBEQVlfT0ZfV0VFS19JTl9NT05USCA9IC0xPC9jb2RlPi4gIEJlY2F1c2UKKyAgICAgKiBuZWdhdGl2ZSB2YWx1ZXMgY291bnQgYmFja3dhcmQgdGhleSB3aWxsIHVzdWFsbHkgYmUgYWxpZ25lZCBkaWZmZXJlbnRseQorICAgICAqIHdpdGhpbiB0aGUgbW9udGggdGhhbiBwb3NpdGl2ZSB2YWx1ZXMuICBGb3IgZXhhbXBsZSwgaWYgYSBtb250aCBoYXMgMzEKKyAgICAgKiBkYXlzLCA8Y29kZT5EQVlfT0ZfV0VFS19JTl9NT05USCAtMTwvY29kZT4gd2lsbCBvdmVybGFwCisgICAgICogPGNvZGU+REFZX09GX1dFRUtfSU5fTU9OVEggNTwvY29kZT4gYW5kIHRoZSBlbmQgb2YgPGNvZGU+NDwvY29kZT4uCisgICAgICogQHNlZSAjREFZX09GX1dFRUsKKyAgICAgKiBAc2VlICNXRUVLX09GX01PTlRICisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREFZX09GX1dFRUtfSU5fTU9OVEggPSA4OworICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nCisgICAgICogd2hldGhlciB0aGUgPGNvZGU+SE9VUjwvY29kZT4gaXMgYmVmb3JlIG9yIGFmdGVyIG5vb24uCisgICAgICogRS5nLiwgYXQgMTA6MDQ6MTUuMjUwIFBNIHRoZSA8Y29kZT5BTV9QTTwvY29kZT4gaXMgPGNvZGU+UE08L2NvZGU+LgorICAgICAqIEBzZWUgI0FNCisgICAgICogQHNlZSAjUE0KKyAgICAgKiBAc2VlICNIT1VSCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgQU1fUE0gPSA5OworICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nIHRoZQorICAgICAqIGhvdXIgb2YgdGhlIG1vcm5pbmcgb3IgYWZ0ZXJub29uLiA8Y29kZT5IT1VSPC9jb2RlPiBpcyB1c2VkIGZvciB0aGUgMTItaG91cgorICAgICAqIGNsb2NrLgorICAgICAqIEUuZy4sIGF0IDEwOjA0OjE1LjI1MCBQTSB0aGUgPGNvZGU+SE9VUjwvY29kZT4gaXMgMTAuCisgICAgICogQHNlZSAjQU1fUE0KKyAgICAgKiBAc2VlICNIT1VSX09GX0RBWQorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEhPVVIgPSAxMDsKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUKKyAgICAgKiBob3VyIG9mIHRoZSBkYXkuIDxjb2RlPkhPVVJfT0ZfREFZPC9jb2RlPiBpcyB1c2VkIGZvciB0aGUgMjQtaG91ciBjbG9jay4KKyAgICAgKiBFLmcuLCBhdCAxMDowNDoxNS4yNTAgUE0gdGhlIDxjb2RlPkhPVVJfT0ZfREFZPC9jb2RlPiBpcyAyMi4KKyAgICAgKiBAc2VlICNIT1VSCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSE9VUl9PRl9EQVkgPSAxMTsKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUKKyAgICAgKiBtaW51dGUgd2l0aGluIHRoZSBob3VyLgorICAgICAqIEUuZy4sIGF0IDEwOjA0OjE1LjI1MCBQTSB0aGUgPGNvZGU+TUlOVVRFPC9jb2RlPiBpcyA0LgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE1JTlVURSA9IDEyOworICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nIHRoZQorICAgICAqIHNlY29uZCB3aXRoaW4gdGhlIG1pbnV0ZS4KKyAgICAgKiBFLmcuLCBhdCAxMDowNDoxNS4yNTAgUE0gdGhlIDxjb2RlPlNFQ09ORDwvY29kZT4gaXMgMTUuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgU0VDT05EID0gMTM7CisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogbWlsbGlzZWNvbmQgd2l0aGluIHRoZSBzZWNvbmQuCisgICAgICogRS5nLiwgYXQgMTA6MDQ6MTUuMjUwIFBNIHRoZSA8Y29kZT5NSUxMSVNFQ09ORDwvY29kZT4gaXMgMjUwLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE1JTExJU0VDT05EID0gMTQ7CisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogcmF3IG9mZnNldCBmcm9tIEdNVCBpbiBtaWxsaXNlY29uZHMuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgWk9ORV9PRkZTRVQgPSAxNTsKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUKKyAgICAgKiBkYXlsaWdodCBzYXZpbmdzIG9mZnNldCBpbiBtaWxsaXNlY29uZHMuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgRFNUX09GRlNFVCA9IDE2OworCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQoKTwvY29kZT4gYW5kIDxjb2RlPnNldCgpPC9jb2RlPgorICAgICAqIGluZGljYXRpbmcgdGhlIGV4dGVuZGVkIHllYXIgY29ycmVzcG9uZGluZyB0byB0aGUKKyAgICAgKiA8Y29kZT5XRUVLX09GX1lFQVI8L2NvZGU+IGZpZWxkLiAgVGhpcyBtYXkgYmUgb25lIGdyZWF0ZXIgb3IgbGVzcworICAgICAqIHRoYW4gdGhlIHZhbHVlIG9mIDxjb2RlPkVYVEVOREVEX1lFQVI8L2NvZGU+LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFlFQVJfV09ZID0gMTc7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldCgpPC9jb2RlPiBhbmQgPGNvZGU+c2V0KCk8L2NvZGU+CisgICAgICogaW5kaWNhdGluZyB0aGUgbG9jYWxpemVkIGRheSBvZiB3ZWVrLiAgVGhpcyB3aWxsIGJlIGEgdmFsdWUgZnJvbSAxCisgICAgICogdG8gNyBpbmNsdXNpdmUsIHdpdGggMSBiZWluZyB0aGUgbG9jYWxpemVkIGZpcnN0IGRheSBvZiB0aGUgd2Vlay4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBET1dfTE9DQUwgPSAxODsKKworICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0KCk8L2NvZGU+IGFuZCA8Y29kZT5zZXQoKTwvY29kZT4KKyAgICAgKiBpbmRpY2F0aW5nIHRoZSBleHRlbmRlZCB5ZWFyLiAgVGhpcyBpcyBhIHNpbmdsZSBudW1iZXIgZGVzaWduYXRpbmcKKyAgICAgKiB0aGUgeWVhciBvZiB0aGlzIGNhbGVuZGFyIHN5c3RlbSwgZW5jb21wYXNzaW5nIGFsbCBzdXByYS15ZWFyCisgICAgICogZmllbGRzLiAgRm9yIGV4YW1wbGUsIGZvciB0aGUgSnVsaWFuIGNhbGVuZGFyIHN5c3RlbSwgeWVhciBudW1iZXJzCisgICAgICogYXJlIHBvc2l0aXZlLCB3aXRoIGFuIGVyYSBvZiBCQ0Ugb3IgQ0UuICBBbiBleHRlbmRlZCB5ZWFyIHZhbHVlIGZvcgorICAgICAqIHRoZSBKdWxpYW4gY2FsZW5kYXIgc3lzdGVtIGFzc2lnbnMgcG9zaXRpdmUgdmFsdWVzIHRvIENFIHllYXJzIGFuZAorICAgICAqIG5lZ2F0aXZlIHZhbHVlcyB0byBCQ0UgeWVhcnMsIHdpdGggMSBCQ0UgYmVpbmcgeWVhciAwLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVYVEVOREVEX1lFQVIgPSAxOTsKKworICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0KCk8L2NvZGU+IGFuZCA8Y29kZT5zZXQoKTwvY29kZT4KKyAgICAgKiBpbmRpY2F0aW5nIHRoZSBtb2RpZmllZCBKdWxpYW4gZGF5IG51bWJlci4gIFRoaXMgaXMgZGlmZmVyZW50IGZyb20KKyAgICAgKiB0aGUgY29udmVudGlvbmFsIEp1bGlhbiBkYXkgbnVtYmVyIGluIHR3byByZWdhcmRzLiAgRmlyc3QsIGl0CisgICAgICogZGVtYXJjYXRlcyBkYXlzIGF0IGxvY2FsIHpvbmUgbWlkbmlnaHQsIHJhdGhlciB0aGFuIG5vb24gR01ULgorICAgICAqIFNlY29uZCwgaXQgaXMgYSBsb2NhbCBudW1iZXI7IHRoYXQgaXMsIGl0IGRlcGVuZHMgb24gdGhlIGxvY2FsIHRpbWUKKyAgICAgKiB6b25lLiAgSXQgY2FuIGJlIHRob3VnaHQgb2YgYXMgYSBzaW5nbGUgbnVtYmVyIHRoYXQgZW5jb21wYXNzZXMgYWxsCisgICAgICogdGhlIGRhdGUtcmVsYXRlZCBmaWVsZHMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSlVMSUFOX0RBWSA9IDIwOworCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQoKTwvY29kZT4gYW5kIDxjb2RlPnNldCgpPC9jb2RlPgorICAgICAqIGluZGljYXRpbmcgdGhlIG1pbGxpc2Vjb25kcyBpbiB0aGUgZGF5LiAgVGhpcyByYW5nZXMgZnJvbSAwIHRvCisgICAgICogMjM6NTk6NTkuOTk5IChyZWdhcmRsZXNzIG9mIERTVCkuICBUaGlzIGZpZWxkIGJlaGF2ZXMKKyAgICAgKiA8ZW0+ZXhhY3RseTwvZW0+IGxpa2UgYSBjb21wb3NpdGUgb2YgYWxsIHRpbWUtcmVsYXRlZCBmaWVsZHMsIG5vdAorICAgICAqIGluY2x1ZGluZyB0aGUgem9uZSBmaWVsZHMuICBBcyBzdWNoLCBpdCBhbHNvIHJlZmxlY3RzCisgICAgICogZGlzY29udGludWl0aWVzIG9mIHRob3NlIGZpZWxkcyBvbiBEU1QgdHJhbnNpdGlvbiBkYXlzLiAgT24gYSBkYXkgb2YKKyAgICAgKiBEU1Qgb25zZXQsIGl0IHdpbGwganVtcCBmb3J3YXJkLiAgT24gYSBkYXkgb2YgRFNUIGNlc3NhdGlvbiwgaXQgd2lsbAorICAgICAqIGp1bXAgYmFja3dhcmQuICBUaGlzIHJlZmxlY3RzIHRoZSBmYWN0IHRoYXQgaXMgbXVzdCBiZSBjb21iaW5lZCB3aXRoCisgICAgICogdGhlIERTVF9PRkZTRVQgZmllbGQgdG8gb2J0YWluIGEgdW5pcXVlIGxvY2FsIHRpbWUgdmFsdWUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUlMTElTRUNPTkRTX0lOX0RBWSA9IDIxOworICAgIAorICAgIC8qKgorICAgICAqIFRoZSBudW1iZXIgb2YgZmllbGRzIGRlZmluZWQgYnkgdGhpcyBjbGFzcy4gIFN1YmNsYXNzZXMgbWF5IGRlZmluZQorICAgICAqIGFkZGl0aW9uIGZpZWxkcyBzdGFydGluZyB3aXRoIHRoaXMgbnVtYmVyLgorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEJBU0VfRklFTERfQ09VTlQgPSAyMjsKKworICAgIC8qKgorICAgICAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBmaWVsZHMgcG9zc2libGUuICBTdWJjbGFzc2VzIG11c3Qgbm90IGRlZmluZQorICAgICAqIG1vcmUgdG90YWwgZmllbGRzIHRoYW4gdGhpcyBudW1iZXIuCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0ZJRUxEX0NPVU5UID0gMzI7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+REFZX09GX1dFRUs8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcKKyAgICAgKiBTdW5kYXkuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgU1VOREFZID0gMTsKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+REFZX09GX1dFRUs8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcKKyAgICAgKiBNb25kYXkuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTU9OREFZID0gMjsKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+REFZX09GX1dFRUs8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcKKyAgICAgKiBUdWVzZGF5LgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFRVRVNEQVkgPSAzOworICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5EQVlfT0ZfV0VFSzwvY29kZT4gZmllbGQgaW5kaWNhdGluZworICAgICAqIFdlZG5lc2RheS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBXRURORVNEQVkgPSA0OworICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5EQVlfT0ZfV0VFSzwvY29kZT4gZmllbGQgaW5kaWNhdGluZworICAgICAqIFRodXJzZGF5LgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFRIVVJTREFZID0gNTsKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+REFZX09GX1dFRUs8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcKKyAgICAgKiBGcmlkYXkuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgRlJJREFZID0gNjsKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+REFZX09GX1dFRUs8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcKKyAgICAgKiBTYXR1cmRheS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBTQVRVUkRBWSA9IDc7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+TU9OVEg8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcgdGhlCisgICAgICogZmlyc3QgbW9udGggb2YgdGhlIHllYXIuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSkFOVUFSWSA9IDA7CisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nIHRoZQorICAgICAqIHNlY29uZCBtb250aCBvZiB0aGUgeWVhci4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBGRUJSVUFSWSA9IDE7CisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nIHRoZQorICAgICAqIHRoaXJkIG1vbnRoIG9mIHRoZSB5ZWFyLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE1BUkNIID0gMjsKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+TU9OVEg8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcgdGhlCisgICAgICogZm91cnRoIG1vbnRoIG9mIHRoZSB5ZWFyLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEFQUklMID0gMzsKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+TU9OVEg8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcgdGhlCisgICAgICogZmlmdGggbW9udGggb2YgdGhlIHllYXIuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTUFZID0gNDsKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+TU9OVEg8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcgdGhlCisgICAgICogc2l4dGggbW9udGggb2YgdGhlIHllYXIuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSlVORSA9IDU7CisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nIHRoZQorICAgICAqIHNldmVudGggbW9udGggb2YgdGhlIHllYXIuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSlVMWSA9IDY7CisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nIHRoZQorICAgICAqIGVpZ2h0aCBtb250aCBvZiB0aGUgeWVhci4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBBVUdVU1QgPSA3OworICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiBuaW50aCBtb250aCBvZiB0aGUgeWVhci4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBTRVBURU1CRVIgPSA4OworICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiB0ZW50aCBtb250aCBvZiB0aGUgeWVhci4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBPQ1RPQkVSID0gOTsKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+TU9OVEg8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcgdGhlCisgICAgICogZWxldmVudGggbW9udGggb2YgdGhlIHllYXIuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTk9WRU1CRVIgPSAxMDsKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+TU9OVEg8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcgdGhlCisgICAgICogdHdlbGZ0aCBtb250aCBvZiB0aGUgeWVhci4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBERUNFTUJFUiA9IDExOworICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiB0aGlydGVlbnRoIG1vbnRoIG9mIHRoZSB5ZWFyLiBBbHRob3VnaCA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4KKyAgICAgKiBkb2VzIG5vdCB1c2UgdGhpcyB2YWx1ZSwgbHVuYXIgY2FsZW5kYXJzIGRvLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFVOREVDSU1CRVIgPSAxMjsKKworICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5BTV9QTTwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiBwZXJpb2Qgb2YgdGhlIGRheSBmcm9tIG1pZG5pZ2h0IHRvIGp1c3QgYmVmb3JlIG5vb24uCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgQU0gPSAwOworICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5BTV9QTTwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiBwZXJpb2Qgb2YgdGhlIGRheSBmcm9tIG5vb24gdG8ganVzdCBiZWZvcmUgbWlkbmlnaHQuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgUE0gPSAxOworCisgICAgLyoqCisgICAgICogVmFsdWUgcmV0dXJuZWQgYnkgZ2V0RGF5T2ZXZWVrVHlwZShpbnQgZGF5T2ZXZWVrKSB0byBpbmRpY2F0ZSBhCisgICAgICogd2Vla2RheS4KKyAgICAgKiBAc2VlICNXRUVLRU5ECisgICAgICogQHNlZSAjV0VFS0VORF9PTlNFVAorICAgICAqIEBzZWUgI1dFRUtFTkRfQ0VBU0UKKyAgICAgKiBAc2VlICNnZXREYXlPZldlZWtUeXBlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV0VFS0RBWSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSByZXR1cm5lZCBieSBnZXREYXlPZldlZWtUeXBlKGludCBkYXlPZldlZWspIHRvIGluZGljYXRlIGEKKyAgICAgKiB3ZWVrZW5kIGRheS4KKyAgICAgKiBAc2VlICNXRUVLREFZCisgICAgICogQHNlZSAjV0VFS0VORF9PTlNFVAorICAgICAqIEBzZWUgI1dFRUtFTkRfQ0VBU0UKKyAgICAgKiBAc2VlICNnZXREYXlPZldlZWtUeXBlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV0VFS0VORCA9IDE7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSByZXR1cm5lZCBieSBnZXREYXlPZldlZWtUeXBlKGludCBkYXlPZldlZWspIHRvIGluZGljYXRlIGEKKyAgICAgKiBkYXkgdGhhdCBzdGFydHMgYXMgYSB3ZWVrZGF5IGFuZCB0cmFuc2l0aW9ucyB0byB0aGUgd2Vla2VuZC4KKyAgICAgKiBDYWxsIGdldFdlZWtlbmRUcmFuc2l0aW9uKCkgdG8gZ2V0IHRoZSBwb2ludCBvZiB0cmFuc2l0aW9uLgorICAgICAqIEBzZWUgI1dFRUtEQVkKKyAgICAgKiBAc2VlICNXRUVLRU5ECisgICAgICogQHNlZSAjV0VFS0VORF9DRUFTRQorICAgICAqIEBzZWUgI2dldERheU9mV2Vla1R5cGUKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXRUVLRU5EX09OU0VUID0gMjsKKworICAgIC8qKgorICAgICAqIFZhbHVlIHJldHVybmVkIGJ5IGdldERheU9mV2Vla1R5cGUoaW50IGRheU9mV2VlaykgdG8gaW5kaWNhdGUgYQorICAgICAqIGRheSB0aGF0IHN0YXJ0cyBhcyB0aGUgd2Vla2VuZCBhbmQgdHJhbnNpdGlvbnMgdG8gYSB3ZWVrZGF5LgorICAgICAqIENhbGwgZ2V0V2Vla2VuZFRyYW5zaXRpb24oKSB0byBnZXQgdGhlIHBvaW50IG9mIHRyYW5zaXRpb24uCisgICAgICogQHNlZSAjV0VFS0RBWQorICAgICAqIEBzZWUgI1dFRUtFTkQKKyAgICAgKiBAc2VlICNXRUVLRU5EX09OU0VUCisgICAgICogQHNlZSAjZ2V0RGF5T2ZXZWVrVHlwZQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFdFRUtFTkRfQ0VBU0UgPSAzOworCisgICAgLyoqCisgICAgICogVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgaW4gb25lIHNlY29uZC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCAgT05FX1NFQ09ORCA9IDEwMDA7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBpbiBvbmUgbWludXRlLgorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50ICBPTkVfTUlOVVRFID0gNjAqT05FX1NFQ09ORDsKKworICAgIC8qKgorICAgICAqIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGluIG9uZSBob3VyLgorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50ICBPTkVfSE9VUiAgID0gNjAqT05FX01JTlVURTsKKworICAgIC8qKgorICAgICAqIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGluIG9uZSBkYXkuICBBbHRob3VnaCBPTkVfREFZIGFuZAorICAgICAqIE9ORV9XRUVLIGNhbiBmaXQgaW50byBpbnRzLCB0aGV5IG11c3QgYmUgbG9uZ3MgaW4gb3JkZXIgdG8gcHJldmVudAorICAgICAqIGFyaXRobWV0aWMgb3ZlcmZsb3cgd2hlbiBwZXJmb3JtaW5nIChidWcgNDE3MzUxNikuCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBsb25nIE9ORV9EQVkgICAgPSAyNCpPTkVfSE9VUjsKKworICAgIC8qKgorICAgICAqIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGluIG9uZSB3ZWVrLiAgQWx0aG91Z2ggT05FX0RBWSBhbmQKKyAgICAgKiBPTkVfV0VFSyBjYW4gZml0IGludG8gaW50cywgdGhleSBtdXN0IGJlIGxvbmdzIGluIG9yZGVyIHRvIHByZXZlbnQKKyAgICAgKiBhcml0aG1ldGljIG92ZXJmbG93IHdoZW4gcGVyZm9ybWluZyAoYnVnIDQxNzM1MTYpLgorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgbG9uZyBPTkVfV0VFSyAgID0gNypPTkVfREFZOworCisgICAgLyoqCisgICAgICogVGhlIEp1bGlhbiBkYXkgb2YgdGhlIEdyZWdvcmlhbiBlcG9jaCwgdGhhdCBpcywgSmFudWFyeSAxLCAxIG9uIHRoZQorICAgICAqIEdyZWdvcmlhbiBjYWxlbmRhci4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBKQU5fMV8xX0pVTElBTl9EQVkgPSAxNzIxNDI2OworCisgICAgLyoqCisgICAgICogVGhlIEp1bGlhbiBkYXkgb2YgdGhlIGVwb2NoLCB0aGF0IGlzLCBKYW51YXJ5IDEsIDE5NzAgb24gdGhlCisgICAgICogR3JlZ29yaWFuIGNhbGVuZGFyLgorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEVQT0NIX0pVTElBTl9EQVkgICA9IDI0NDA1ODg7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbWluaW11bSBzdXBwb3J0ZWQgSnVsaWFuIGRheS4gIFRoaXMgdmFsdWUgaXMgZXF1aXZhbGVudCB0bworICAgICAqIDxjb2RlPk1JTl9NSUxMSVM8L2NvZGU+IGFuZCA8Y29kZT5NSU5fREFURTwvY29kZT4uCisgICAgICogQHNlZSAjSlVMSUFOX0RBWQorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1JTl9KVUxJQU4gPSAtMHg3RjAwMDAwMDsKKworICAgIC8qKgorICAgICAqIFRoZSBtaW5pbXVtIHN1cHBvcnRlZCBlcG9jaCBtaWxsaXNlY29uZHMuICBUaGlzIHZhbHVlIGlzIGVxdWl2YWxlbnQKKyAgICAgKiB0byA8Y29kZT5NSU5fSlVMSUFOPC9jb2RlPiBhbmQgPGNvZGU+TUlOX0RBVEU8L2NvZGU+LgorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgbG9uZyBNSU5fTUlMTElTID0gLTE4NDMwMzkwMjUyODAwMDAwMEw7CisgICAgLy8gR2V0IGFyb3VuZCBidWcgaW4gamlrZXMgMS4xMiBmb3Igbm93LiAgTGF0ZXIsIHVzZToKKyAgICAvL3Byb3RlY3RlZCBzdGF0aWMgZmluYWwgbG9uZyBNSU5fTUlMTElTID0gKE1JTl9KVUxJQU4gLSBFUE9DSF9KVUxJQU5fREFZKSAqIE9ORV9EQVk7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbWluaW11bSBzdXBwb3J0ZWQgPGNvZGU+RGF0ZTwvY29kZT4uICBUaGlzIHZhbHVlIGlzIGVxdWl2YWxlbnQKKyAgICAgKiB0byA8Y29kZT5NSU5fSlVMSUFOPC9jb2RlPiBhbmQgPGNvZGU+TUlOX01JTExJUzwvY29kZT4uCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBEYXRlIE1JTl9EQVRFID0gbmV3IERhdGUoTUlOX01JTExJUyk7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbWF4aW11bSBzdXBwb3J0ZWQgSnVsaWFuIGRheS4gIFRoaXMgdmFsdWUgaXMgZXF1aXZhbGVudCB0bworICAgICAqIDxjb2RlPk1BWF9NSUxMSVM8L2NvZGU+IGFuZCA8Y29kZT5NQVhfREFURTwvY29kZT4uCisgICAgICogQHNlZSAjSlVMSUFOX0RBWQorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1BWF9KVUxJQU4gPSArMHg3RjAwMDAwMDsKKworICAgIC8qKgorICAgICAqIFRoZSBtYXhpbXVtIHN1cHBvcnRlZCBlcG9jaCBtaWxsaXNlY29uZHMuICBUaGlzIHZhbHVlIGlzIGVxdWl2YWxlbnQKKyAgICAgKiB0byA8Y29kZT5NQVhfSlVMSUFOPC9jb2RlPiBhbmQgPGNvZGU+TUFYX0RBVEU8L2NvZGU+LgorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgbG9uZyBNQVhfTUlMTElTID0gKE1BWF9KVUxJQU4gLSBFUE9DSF9KVUxJQU5fREFZKSAqIE9ORV9EQVk7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbWF4aW11bSBzdXBwb3J0ZWQgPGNvZGU+RGF0ZTwvY29kZT4uICBUaGlzIHZhbHVlIGlzIGVxdWl2YWxlbnQKKyAgICAgKiB0byA8Y29kZT5NQVhfSlVMSUFOPC9jb2RlPiBhbmQgPGNvZGU+TUFYX01JTExJUzwvY29kZT4uCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBEYXRlIE1BWF9EQVRFID0gbmV3IERhdGUoTUFYX01JTExJUyk7CisKKyAgICAvLyBJbnRlcm5hbCBub3RlczoKKyAgICAvLyBDYWxlbmRhciBjb250YWlucyB0d28ga2luZHMgb2YgdGltZSByZXByZXNlbnRhdGlvbnM6IGN1cnJlbnQgInRpbWUiIGluCisgICAgLy8gbWlsbGlzZWNvbmRzLCBhbmQgYSBzZXQgb2YgdGltZSAiZmllbGRzIiByZXByZXNlbnRpbmcgdGhlIGN1cnJlbnQgdGltZS4KKyAgICAvLyBUaGUgdHdvIHJlcHJlc2VudGF0aW9ucyBhcmUgdXN1YWxseSBpbiBzeW5jLCBidXQgY2FuIGdldCBvdXQgb2Ygc3luYworICAgIC8vIGFzIGZvbGxvd3MuCisgICAgLy8gMS4gSW5pdGlhbGx5LCBubyBmaWVsZHMgYXJlIHNldCwgYW5kIHRoZSB0aW1lIGlzIGludmFsaWQuCisgICAgLy8gMi4gSWYgdGhlIHRpbWUgaXMgc2V0LCBhbGwgZmllbGRzIGFyZSBjb21wdXRlZCBhbmQgaW4gc3luYy4KKyAgICAvLyAzLiBJZiBhIHNpbmdsZSBmaWVsZCBpcyBzZXQsIHRoZSB0aW1lIGlzIGludmFsaWQuCisgICAgLy8gUmVjb21wdXRhdGlvbiBvZiB0aGUgdGltZSBhbmQgZmllbGRzIGhhcHBlbnMgd2hlbiB0aGUgb2JqZWN0IG5lZWRzCisgICAgLy8gdG8gcmV0dXJuIGEgcmVzdWx0IHRvIHRoZSB1c2VyLCBvciB1c2UgYSByZXN1bHQgZm9yIGEgY29tcHV0YXRpb24uCisKKyAgICAvKioKKyAgICAgKiBUaGUgZmllbGQgdmFsdWVzIGZvciB0aGUgY3VycmVudGx5IHNldCB0aW1lIGZvciB0aGlzIGNhbGVuZGFyLgorICAgICAqIFRoaXMgaXMgYW4gYXJyYXkgb2YgYXQgbGVhc3QgPGNvZGU+QkFTRV9GSUVMRF9DT1VOVDwvY29kZT4gaW50ZWdlcnMuCisgICAgICogQHNlZSAjaGFuZGxlQ3JlYXRlRmllbGRzCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IGludCAgICAgICAgICAgZmllbGRzW107CisKKyAgICAvKioKKyAgICAgKiBQc2V1ZG8tdGltZS1zdGFtcHMgd2hpY2ggc3BlY2lmeSB3aGVuIGVhY2ggZmllbGQgd2FzIHNldC4gVGhlcmUKKyAgICAgKiBhcmUgdHdvIHNwZWNpYWwgdmFsdWVzLCBVTlNFVCBhbmQgSU5URVJOQUxMWV9TRVQuIFZhbHVlcyBmcm9tCisgICAgICogTUlOSU1VTV9VU0VSX1NFVCB0byBJbnRlZ2VyLk1BWF9WQUxVRSBhcmUgbGVnYWwgdXNlciBzZXQgdmFsdWVzLgorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IGludCAgICAgICAgICAgc3RhbXBbXTsKKworICAgIC8qKgorICAgICAqIFRoZSBjdXJyZW50bHkgc2V0IHRpbWUgZm9yIHRoaXMgY2FsZW5kYXIsIGV4cHJlc3NlZCBpbiBtaWxsaXNlY29uZHMgYWZ0ZXIKKyAgICAgKiBKYW51YXJ5IDEsIDE5NzAsIDA6MDA6MDAgR01ULgorICAgICAqIEBzZWUgPHR0PmlzVGltZVNldDwvdHQ+CisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgbG9uZyAgICAgICAgICB0aW1lOworCisgICAgLyoqCisgICAgICogVHJ1ZSBpZiB0aGVuIHRoZSB2YWx1ZSBvZiA8Y29kZT50aW1lPC9jb2RlPiBpcyB2YWxpZC4KKyAgICAgKiBUaGUgdGltZSBpcyBtYWRlIGludmFsaWQgYnkgYSBjaGFuZ2UgdG8gYW4gaXRlbSBvZiA8Y29kZT5maWVsZFtdPC9jb2RlPi4KKyAgICAgKiBAc2VlICN0aW1lCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IGJvb2xlYW4gICAgICAgaXNUaW1lU2V0OworCisgICAgLyoqCisgICAgICogVHJ1ZSBpZiA8Y29kZT5maWVsZHNbXTwvY29kZT4gYXJlIGluIHN5bmMgd2l0aCB0aGUgY3VycmVudGx5IHNldCB0aW1lLgorICAgICAqIElmIGZhbHNlLCB0aGVuIHRoZSBuZXh0IGF0dGVtcHQgdG8gZ2V0IHRoZSB2YWx1ZSBvZiBhIGZpZWxkIHdpbGwKKyAgICAgKiBmb3JjZSBhIHJlY29tcHV0YXRpb24gb2YgYWxsIGZpZWxkcyBmcm9tIHRoZSBjdXJyZW50IHZhbHVlIG9mCisgICAgICogPGNvZGU+dGltZTwvY29kZT4uCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IGJvb2xlYW4gICAgICAgYXJlRmllbGRzU2V0OworCisgICAgLyoqCisgICAgICogVHJ1ZSBpZiBhbGwgZmllbGRzIGhhdmUgYmVlbiBzZXQuICBUaGlzIGlzIG9ubHkgZmFsc2UgaW4gYSBmZXcKKyAgICAgKiBzaXR1YXRpb25zOiBJbiBhIG5ld2x5IGNyZWF0ZWQsIHBhcnRpYWxseSBjb25zdHJ1Y3RlZCBvYmplY3QuICBBZnRlcgorICAgICAqIGEgY2FsbCB0byBjbGVhcigpLiAgSW4gYW4gb2JqZWN0IGp1c3QgcmVhZCBmcm9tIGEgc3RyZWFtIHVzaW5nCisgICAgICogcmVhZE9iamVjdCgpLiAgT25jZSBjb21wdXRlRmllbGRzKCkgaGFzIGJlZW4gY2FsbGVkIHRoaXMgaXMgc2V0IHRvCisgICAgICogdHJ1ZSBhbmQgc3RheXMgdHJ1ZSB1bnRpbCBvbmUgb2YgdGhlIGFib3ZlIHNpdHVhdGlvbnMgcmVjdXJzLgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBib29sZWFuICAgICAgIGFyZUFsbEZpZWxkc1NldDsKKworICAgIC8qKgorICAgICAqIFRydWUgaWYgdGhpcyBjYWxlbmRhciBhbGxvd3Mgb3V0LW9mLXJhbmdlIGZpZWxkIHZhbHVlcyBkdXJpbmcgY29tcHV0YXRpb24KKyAgICAgKiBvZiA8Y29kZT50aW1lPC9jb2RlPiBmcm9tIDxjb2RlPmZpZWxkc1tdPC9jb2RlPi4KKyAgICAgKiBAc2VlICNzZXRMZW5pZW50CisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiAgICAgICAgIGxlbmllbnQgPSB0cnVlOworCisgICAgLyoqCisgICAgICogVGhlIDxjb2RlPlRpbWVab25lPC9jb2RlPiB1c2VkIGJ5IHRoaXMgY2FsZW5kYXIuIDwvY29kZT5DYWxlbmRhcjwvY29kZT4KKyAgICAgKiB1c2VzIHRoZSB0aW1lIHpvbmUgZGF0YSB0byB0cmFuc2xhdGUgYmV0d2VlbiBsb2NhbGUgYW5kIEdNVCB0aW1lLgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIFRpbWVab25lICAgICAgICB6b25lOworCisgICAgLyoqCisgICAgICogVGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlaywgd2l0aCBwb3NzaWJsZSB2YWx1ZXMgPGNvZGU+U1VOREFZPC9jb2RlPiwKKyAgICAgKiA8Y29kZT5NT05EQVk8L2NvZGU+LCBldGMuICBUaGlzIGlzIGEgbG9jYWxlLWRlcGVuZGVudCB2YWx1ZS4KKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgICAgICAgICAgICAgZmlyc3REYXlPZldlZWs7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbnVtYmVyIG9mIGRheXMgcmVxdWlyZWQgZm9yIHRoZSBmaXJzdCB3ZWVrIGluIGEgbW9udGggb3IgeWVhciwKKyAgICAgKiB3aXRoIHBvc3NpYmxlIHZhbHVlcyBmcm9tIDEgdG8gNy4gIFRoaXMgaXMgYSBsb2NhbGUtZGVwZW5kZW50IHZhbHVlLgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCAgICAgICAgICAgICBtaW5pbWFsRGF5c0luRmlyc3RXZWVrOworCisgICAgLyoqCisgICAgICogRmlyc3QgZGF5IG9mIHRoZSB3ZWVrZW5kIGluIHRoaXMgY2FsZW5kYXIncyBsb2NhbGUuICBNdXN0IGJlIGluCisgICAgICogdGhlIHJhbmdlIFNVTkRBWS4uLlNBVFVSREFZICgxLi43KS4gIFRoZSB3ZWVrZW5kIHN0YXJ0cyBhdAorICAgICAqIHdlZWtlbmRPbnNldE1pbGxpcyBtaWxsaXNlY29uZHMgYWZ0ZXIgbWlkbmlnaHQgb24gdGhhdCBkYXkgb2YKKyAgICAgKiB0aGUgd2Vlay4gIFRoaXMgdmFsdWUgaXMgdGFrZW4gZnJvbSBsb2NhbGUgcmVzb3VyY2UgZGF0YS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCB3ZWVrZW5kT25zZXQ7CisKKyAgICAvKioKKyAgICAgKiBNaWxsaXNlY29uZHMgYWZ0ZXIgbWlkbmlnaHQgYXQgd2hpY2ggdGhlIHdlZWtlbmQgc3RhcnRzIG9uIHRoZQorICAgICAqIGRheSBvZiB0aGUgd2VlayB3ZWVrZW5kT25zZXQuICBUaW1lcyB0aGF0IGFyZSBncmVhdGVyIHRoYW4gb3IKKyAgICAgKiBlcXVhbCB0byB3ZWVrZW5kT25zZXRNaWxsaXMgYXJlIGNvbnNpZGVyZWQgcGFydCBvZiB0aGUgd2Vla2VuZC4KKyAgICAgKiBNdXN0IGJlIGluIHRoZSByYW5nZSAwLi4yNCo2MCo2MCoxMDAwLTEuICBUaGlzIHZhbHVlIGlzIHRha2VuCisgICAgICogZnJvbSBsb2NhbGUgcmVzb3VyY2UgZGF0YS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCB3ZWVrZW5kT25zZXRNaWxsaXM7CisKKyAgICAvKioKKyAgICAgKiBEYXkgb2YgdGhlIHdlZWsgd2hlbiB0aGUgd2Vla2VuZCBzdG9wcyBpbiB0aGlzIGNhbGVuZGFyJ3MKKyAgICAgKiBsb2NhbGUuICBNdXN0IGJlIGluIHRoZSByYW5nZSBTVU5EQVkuLi5TQVRVUkRBWSAoMS4uNykuICBUaGUKKyAgICAgKiB3ZWVrZW5kIHN0b3BzIGF0IHdlZWtlbmRDZWFzZU1pbGxpcyBtaWxsaXNlY29uZHMgYWZ0ZXIgbWlkbmlnaHQKKyAgICAgKiBvbiB0aGF0IGRheSBvZiB0aGUgd2Vlay4gIFRoaXMgdmFsdWUgaXMgdGFrZW4gZnJvbSBsb2NhbGUKKyAgICAgKiByZXNvdXJjZSBkYXRhLgorICAgICAqLworICAgIHByaXZhdGUgaW50IHdlZWtlbmRDZWFzZTsKKworICAgIC8qKgorICAgICAqIE1pbGxpc2Vjb25kcyBhZnRlciBtaWRuaWdodCBhdCB3aGljaCB0aGUgd2Vla2VuZCBzdG9wcyBvbiB0aGUKKyAgICAgKiBkYXkgb2YgdGhlIHdlZWsgd2Vla2VuZENlYXNlLiAgVGltZXMgdGhhdCBhcmUgZ3JlYXRlciB0aGFuIG9yCisgICAgICogZXF1YWwgdG8gd2Vla2VuZENlYXNlTWlsbGlzIGFyZSBjb25zaWRlcmVkIG5vdCB0byBiZSB0aGUKKyAgICAgKiB3ZWVrZW5kLiAgTXVzdCBiZSBpbiB0aGUgcmFuZ2UgMC4uMjQqNjAqNjAqMTAwMC0xLiAgVGhpcyB2YWx1ZQorICAgICAqIGlzIHRha2VuIGZyb20gbG9jYWxlIHJlc291cmNlIGRhdGEuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgd2Vla2VuZENlYXNlTWlsbGlzOworCisgICAgLyoqCisgICAgICogQ2FjaGUgdG8gaG9sZCB0aGUgZmlyc3REYXlPZldlZWsgYW5kIG1pbmltYWxEYXlzSW5GaXJzdFdlZWsKKyAgICAgKiBvZiBhIExvY2FsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBIYXNodGFibGUgY2FjaGVkTG9jYWxlRGF0YSA9IG5ldyBIYXNodGFibGUoMyk7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgdGltZSBzdGFtcCA8Y29kZT5zdGFtcFtdPC9jb2RlPiBpbmRpY2F0aW5nIHRoYXQKKyAgICAgKiBhIGZpZWxkIGhhcyBub3QgYmVlbiBzZXQgc2luY2UgdGhlIGxhc3QgY2FsbCB0byA8Y29kZT5jbGVhcigpPC9jb2RlPi4KKyAgICAgKiBAc2VlICNJTlRFUk5BTExZX1NFVAorICAgICAqIEBzZWUgI01JTklNVU1fVVNFUl9TVEFNUAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IFVOU0VUID0gMDsKKworICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSB0aW1lIHN0YW1wIDxjb2RlPnN0YW1wW108L2NvZGU+IGluZGljYXRpbmcgdGhhdCBhIGZpZWxkCisgICAgICogaGFzIGJlZW4gc2V0IHZpYSBjb21wdXRhdGlvbnMgZnJvbSB0aGUgdGltZSBvciBmcm9tIG90aGVyIGZpZWxkcy4KKyAgICAgKiBAc2VlICNVTlNFVAorICAgICAqIEBzZWUgI01JTklNVU1fVVNFUl9TVEFNUAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IElOVEVSTkFMTFlfU0VUID0gMTsKKworICAgIC8qKgorICAgICAqIElmIHRoZSB0aW1lIHN0YW1wIDxjb2RlPnN0YW1wW108L2NvZGU+IGhhcyBhIHZhbHVlIGdyZWF0ZXIgdGhhbiBvcgorICAgICAqIGVxdWFsIHRvIDxjb2RlPk1JTklNVU1fVVNFUl9TRVQ8L2NvZGU+IHRoZW4gaXQgaGFzIGJlZW4gc2V0IGJ5IHRoZQorICAgICAqIHVzZXIgdmlhIGEgY2FsbCB0byA8Y29kZT5zZXQoKTwvY29kZT4uCisgICAgICogQHNlZSAjVU5TRVQKKyAgICAgKiBAc2VlICNJTlRFUk5BTExZX1NFVAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1JTklNVU1fVVNFUl9TVEFNUCA9IDI7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbmV4dCBhdmFpbGFibGUgdmFsdWUgZm9yIDxjb2RlPnN0YW1wW108L2NvZGU+LCBhbiBpbnRlcm5hbCBhcnJheS4KKyAgICAgKiBUaGlzIGFjdHVhbGx5IHNob3VsZCBub3QgYmUgd3JpdHRlbiBvdXQgdG8gdGhlIHN0cmVhbSwgYW5kIHdpbGwgcHJvYmFibHkKKyAgICAgKiBiZSByZW1vdmVkIGZyb20gdGhlIHN0cmVhbSBpbiB0aGUgbmVhciBmdXR1cmUuICBJbiB0aGUgbWVhbnRpbWUsCisgICAgICogYSB2YWx1ZSBvZiA8Y29kZT5NSU5JTVVNX1VTRVJfU1RBTVA8L2NvZGU+IHNob3VsZCBiZSB1c2VkLgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBpbnQgICAgICAgICAgICAgbmV4dFN0YW1wID0gTUlOSU1VTV9VU0VSX1NUQU1QOworCisgICAgLy8gdGhlIGludGVybmFsIHNlcmlhbCB2ZXJzaW9uIHdoaWNoIHNheXMgd2hpY2ggdmVyc2lvbiB3YXMgd3JpdHRlbgorICAgIC8vIC0gMCAoZGVmYXVsdCkgZm9yIHZlcnNpb24gdXAgdG8gSkRLIDEuMS41CisgICAgLy8gLSAxIGZvciB2ZXJzaW9uIGZyb20gSkRLIDEuMS42LCB3aGljaCB3cml0ZXMgYSBjb3JyZWN0ICd0aW1lJyB2YWx1ZQorICAgIC8vICAgICBhcyB3ZWxsIGFzIGNvbXBhdGlibGUgdmFsdWVzIGZvciBvdGhlciBmaWVsZHMuICBUaGlzIGlzIGEKKyAgICAvLyAgICAgdHJhbnNpdGlvbmFsIGZvcm1hdC4KKyAgICAvLyAtIDIgKG5vdCBpbXBsZW1lbnRlZCB5ZXQpIGEgZnV0dXJlIHZlcnNpb24sIGluIHdoaWNoIGZpZWxkc1tdLAorICAgIC8vICAgICBhcmVGaWVsZHNTZXQsIGFuZCBpc1RpbWVTZXQgYmVjb21lIHRyYW5zaWVudCwgYW5kIGlzU2V0W10gaXMKKyAgICAvLyAgICAgcmVtb3ZlZC4gSW4gSkRLIDEuMS42IHdlIHdyaXRlIGEgZm9ybWF0IGNvbXBhdGlibGUgd2l0aCB2ZXJzaW9uIDIuCisgICAgLy8gc3RhdGljIGZpbmFsIGludCAgICAgICAgY3VycmVudFNlcmlhbFZlcnNpb24gPSAxOworICAgIAorICAgIC8qKgorICAgICAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBzZXJpYWxpemVkIGRhdGEgb24gdGhlIHN0cmVhbS4gIFBvc3NpYmxlIHZhbHVlczoKKyAgICAgKiA8ZGw+CisgICAgICogPGR0PjxiPjA8L2I+IG9yIG5vdCBwcmVzZW50IG9uIHN0cmVhbTwvZHQ+CisgICAgICogPGRkPgorICAgICAqIEpESyAxLjEuNSBvciBlYXJsaWVyLgorICAgICAqIDwvZGQ+CisgICAgICogPGR0PjxiPjE8L2I+PC9kdD4KKyAgICAgKiA8ZGQ+CisgICAgICogSkRLIDEuMS42IG9yIGxhdGVyLiAgV3JpdGVzIGEgY29ycmVjdCAndGltZScgdmFsdWUKKyAgICAgKiBhcyB3ZWxsIGFzIGNvbXBhdGlibGUgdmFsdWVzIGZvciBvdGhlciBmaWVsZHMuICBUaGlzIGlzIGEKKyAgICAgKiB0cmFuc2l0aW9uYWwgZm9ybWF0LgorICAgICAqIDwvZGQ+CisgICAgICogPC9kbD4KKyAgICAgKiBXaGVuIHN0cmVhbWluZyBvdXQgdGhpcyBjbGFzcywgdGhlIG1vc3QgcmVjZW50IGZvcm1hdAorICAgICAqIGFuZCB0aGUgaGlnaGVzdCBhbGxvd2FibGUgPGNvZGU+c2VyaWFsVmVyc2lvbk9uU3RyZWFtPC9jb2RlPgorICAgICAqIGlzIHdyaXR0ZW4uCisgICAgICogQHNlcmlhbAorICAgICAqIEBzaW5jZSBKREsxLjEuNgorICAgICAqLworICAgIC8vIHByaXZhdGUgaW50ICAgICAgICAgICAgIHNlcmlhbFZlcnNpb25PblN0cmVhbSA9IGN1cnJlbnRTZXJpYWxWZXJzaW9uOworCisgICAgLy8gUHJvY2xhaW0gc2VyaWFsaXphdGlvbiBjb21wYXRpYmlsaXR5IHdpdGggSkRLIDEuMQorICAgIC8vIHN0YXRpYyBmaW5hbCBsb25nICAgICAgIHNlcmlhbFZlcnNpb25VSUQgPSAtMTgwNzU0NzUwNTgyMTU5MDY0Mkw7CisKKyAgICAvKioKKyAgICAgKiBCaXRtYXNrIGZvciBpbnRlcm5hbFNldCgpIGRlZmluaW5nIHdoaWNoIGZpZWxkcyBtYXkgbGVnYWxseSBiZSBzZXQKKyAgICAgKiBieSBzdWJjbGFzc2VzLiAgQW55IGF0dGVtcHQgdG8gc2V0IGEgZmllbGQgbm90IGluIHRoaXMgYml0bWFzaworICAgICAqIHJlc3VsdHMgaW4gYW4gZXhjZXB0aW9uLCBiZWNhdXNlIHN1Y2ggZmllbGRzIG11c3QgYmUgc2V0IGJ5IHRoZSBiYXNlCisgICAgICogY2xhc3MuCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50IGludGVybmFsU2V0TWFzazsKKworICAgIC8qKgorICAgICAqIFRoZSBHcmVnb3JpYW4geWVhciwgYXMgY29tcHV0ZWQgYnkgY29tcHV0ZUdyZWdvcmlhbkZpZWxkcygpIGFuZAorICAgICAqIHJldHVybmVkIGJ5IGdldEdyZWdvcmlhblllYXIoKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBpbnQgZ3JlZ29yaWFuWWVhcjsKKworICAgIC8qKgorICAgICAqIFRoZSBHcmVnb3JpYW4gbW9udGgsIGFzIGNvbXB1dGVkIGJ5IGNvbXB1dGVHcmVnb3JpYW5GaWVsZHMoKSBhbmQKKyAgICAgKiByZXR1cm5lZCBieSBnZXRHcmVnb3JpYW5Nb250aCgpLgorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IGludCBncmVnb3JpYW5Nb250aDsKKworICAgIC8qKgorICAgICAqIFRoZSBHcmVnb3JpYW4gZGF5IG9mIHRoZSB5ZWFyLCBhcyBjb21wdXRlZCBieQorICAgICAqIGNvbXB1dGVHcmVnb3JpYW5GaWVsZHMoKSBhbmQgcmV0dXJuZWQgYnkgZ2V0R3JlZ29yaWFuRGF5T2ZZZWFyKCkuCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50IGdyZWdvcmlhbkRheU9mWWVhcjsKKworICAgIC8qKgorICAgICAqIFRoZSBHcmVnb3JpYW4gZGF5IG9mIHRoZSBtb250aCwgYXMgY29tcHV0ZWQgYnkKKyAgICAgKiBjb21wdXRlR3JlZ29yaWFuRmllbGRzKCkgYW5kIHJldHVybmVkIGJ5IGdldEdyZWdvcmlhbkRheU9mTW9udGgoKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBpbnQgZ3JlZ29yaWFuRGF5T2ZNb250aDsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBDYWxlbmRhciB3aXRoIHRoZSBkZWZhdWx0IHRpbWUgem9uZQorICAgICAqIGFuZCBsb2NhbGUuCisgICAgICogQHNlZSAgICAgVGltZVpvbmUjZ2V0RGVmYXVsdAorICAgICAqLworICAgIHByb3RlY3RlZCBDYWxlbmRhcigpCisgICAgeworICAgICAgICB0aGlzKFRpbWVab25lLmdldERlZmF1bHQoKSwgTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIGNhbGVuZGFyIHdpdGggdGhlIHNwZWNpZmllZCB0aW1lIHpvbmUgYW5kIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gem9uZSB0aGUgdGltZSB6b25lIHRvIHVzZQorICAgICAqIEBwYXJhbSBhTG9jYWxlIHRoZSBsb2NhbGUgZm9yIHRoZSB3ZWVrIGRhdGEKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgQ2FsZW5kYXIoVGltZVpvbmUgem9uZSwgTG9jYWxlIGFMb2NhbGUpCisgICAgeworICAgICAgICB0aGlzLnpvbmUgPSB6b25lOworICAgICAgICBzZXRXZWVrQ291bnREYXRhKGFMb2NhbGUpOworICAgICAgICBzZXRXZWVrZW5kRGF0YShhTG9jYWxlKTsKKyAgICAgICAgaW5pdEludGVybmFsKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGluaXRJbnRlcm5hbCgpCisgICAgeworICAgICAgICAvLyBBbGxvY2F0ZSBmaWVsZHMgdGhyb3VnaCB0aGUgZnJhbWV3b3JrIG1ldGhvZC4gIFN1YmNsYXNzZXMKKyAgICAgICAgLy8gbWF5IG92ZXJyaWRlIHRoaXMgdG8gZGVmaW5lIGFkZGl0aW9uYWwgZmllbGRzLgorICAgICAgICBmaWVsZHMgPSBoYW5kbGVDcmVhdGVGaWVsZHMoKTsKKyAgICAgICAgaWYgKGZpZWxkcyA9PSBudWxsIHx8IGZpZWxkcy5sZW5ndGggPCBCQVNFX0ZJRUxEX0NPVU5UIHx8CisgICAgICAgICAgICBmaWVsZHMubGVuZ3RoID4gTUFYX0ZJRUxEX0NPVU5UKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcigiSW52YWxpZCBmaWVsZHNbXSIpOworICAgICAgICB9CisgICAgICAgIHN0YW1wID0gbmV3IGludFtmaWVsZHMubGVuZ3RoXTsKKyAgICAgICAgaW50IG1hc2sgPSAoMSA8PCBFUkEpIHwKKyAgICAgICAgICAgICgxIDw8IFlFQVIpIHwKKyAgICAgICAgICAgICgxIDw8IE1PTlRIKSB8CisgICAgICAgICAgICAoMSA8PCBEQVlfT0ZfTU9OVEgpIHwKKyAgICAgICAgICAgICgxIDw8IERBWV9PRl9ZRUFSKSB8CisgICAgICAgICAgICAoMSA8PCBFWFRFTkRFRF9ZRUFSKTsKKyAgICAgICAgZm9yIChpbnQgaT1CQVNFX0ZJRUxEX0NPVU5UOyBpPGZpZWxkcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgbWFzayB8PSAoMSA8PCBpKTsKKyAgICAgICAgfQorICAgICAgICBpbnRlcm5hbFNldE1hc2sgPSBtYXNrOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgYSBjYWxlbmRhciB1c2luZyB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgYW5kIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgQ2FsZW5kYXIuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBzeW5jaHJvbml6ZWQgQ2FsZW5kYXIgZ2V0SW5zdGFuY2UoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgYSBjYWxlbmRhciB1c2luZyB0aGUgc3BlY2lmaWVkIHRpbWUgem9uZSBhbmQgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIHpvbmUgdGhlIHRpbWUgem9uZSB0byB1c2UKKyAgICAgKiBAcmV0dXJuIGEgQ2FsZW5kYXIuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBzeW5jaHJvbml6ZWQgQ2FsZW5kYXIgZ2V0SW5zdGFuY2UoVGltZVpvbmUgem9uZSkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoem9uZSwgTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyBhIGNhbGVuZGFyIHVzaW5nIHRoZSBkZWZhdWx0IHRpbWUgem9uZSBhbmQgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gYUxvY2FsZSB0aGUgbG9jYWxlIGZvciB0aGUgd2VlayBkYXRhCisgICAgICogQHJldHVybiBhIENhbGVuZGFyLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIENhbGVuZGFyIGdldEluc3RhbmNlKExvY2FsZSBhTG9jYWxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBHcmVnb3JpYW5DYWxlbmRhcihUaW1lWm9uZS5nZXREZWZhdWx0KCksIGFMb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgYSBjYWxlbmRhciB3aXRoIHRoZSBzcGVjaWZpZWQgdGltZSB6b25lIGFuZCBsb2NhbGUuCisgICAgICogQHBhcmFtIHpvbmUgdGhlIHRpbWUgem9uZSB0byB1c2UKKyAgICAgKiBAcGFyYW0gYUxvY2FsZSB0aGUgbG9jYWxlIGZvciB0aGUgd2VlayBkYXRhCisgICAgICogQHJldHVybiBhIENhbGVuZGFyLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIENhbGVuZGFyIGdldEluc3RhbmNlKFRpbWVab25lIHpvbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWxlIGFMb2NhbGUpCisgICAgeworICAgICAgICByZXR1cm4gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKHpvbmUsIGFMb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGxpc3Qgb2YgbG9jYWxlcyBmb3Igd2hpY2ggQ2FsZW5kYXJzIGFyZSBpbnN0YWxsZWQuCisgICAgICogQHJldHVybiB0aGUgbGlzdCBvZiBsb2NhbGVzIGZvciB3aGljaCBDYWxlbmRhcnMgYXJlIGluc3RhbGxlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCBMb2NhbGVbXSBnZXRBdmFpbGFibGVMb2NhbGVzKCkKKyAgICB7CisgICAgICAgIHJldHVybiBEYXRlRm9ybWF0LmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoaXMgQ2FsZW5kYXIncyBjdXJyZW50IHRpbWUuCisgICAgICogQHJldHVybiB0aGUgY3VycmVudCB0aW1lLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBEYXRlIGdldFRpbWUoKSB7CisgICAgICAgIHJldHVybiBuZXcgRGF0ZSggZ2V0VGltZUluTWlsbGlzKCkgKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoaXMgQ2FsZW5kYXIncyBjdXJyZW50IHRpbWUgd2l0aCB0aGUgZ2l2ZW4gRGF0ZS4KKyAgICAgKiA8cD4KKyAgICAgKiBOb3RlOiBDYWxsaW5nIDxjb2RlPnNldFRpbWUoKTwvY29kZT4gd2l0aAorICAgICAqIDxjb2RlPkRhdGUoTG9uZy5NQVhfVkFMVUUpPC9jb2RlPiBvciA8Y29kZT5EYXRlKExvbmcuTUlOX1ZBTFVFKTwvY29kZT4KKyAgICAgKiBtYXkgeWllbGQgaW5jb3JyZWN0IGZpZWxkIHZhbHVlcyBmcm9tIDxjb2RlPmdldCgpPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gZGF0ZSB0aGUgZ2l2ZW4gRGF0ZS4gICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgc2V0VGltZShEYXRlIGRhdGUpIHsKKyAgICAgICAgc2V0VGltZUluTWlsbGlzKCBkYXRlLmdldFRpbWUoKSApOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhpcyBDYWxlbmRhcidzIGN1cnJlbnQgdGltZSBhcyBhIGxvbmcuCisgICAgICogQHJldHVybiB0aGUgY3VycmVudCB0aW1lIGFzIFVUQyBtaWxsaXNlY29uZHMgZnJvbSB0aGUgZXBvY2guCisgICAgICovCisgICAgcHVibGljIGxvbmcgZ2V0VGltZUluTWlsbGlzKCkgeworICAgICAgICBpZiAoIWlzVGltZVNldCkgdXBkYXRlVGltZSgpOworICAgICAgICByZXR1cm4gdGltZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoaXMgQ2FsZW5kYXIncyBjdXJyZW50IHRpbWUgZnJvbSB0aGUgZ2l2ZW4gbG9uZyB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gZGF0ZSB0aGUgbmV3IHRpbWUgaW4gVVRDIG1pbGxpc2Vjb25kcyBmcm9tIHRoZSBlcG9jaC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUaW1lSW5NaWxsaXMoIGxvbmcgbWlsbGlzICkgeworICAgICAgICBpZiAobWlsbGlzID4gTUFYX01JTExJUykgeworICAgICAgICAgICAgbWlsbGlzID0gTUFYX01JTExJUzsKKyAgICAgICAgfSBlbHNlIGlmIChtaWxsaXMgPCBNSU5fTUlMTElTKSB7CisgICAgICAgICAgICBtaWxsaXMgPSBNSU5fTUlMTElTOworICAgICAgICB9CisgICAgICAgIHRpbWUgPSBtaWxsaXM7CisgICAgICAgIGlzVGltZVNldCA9IHRydWU7CisgICAgICAgIGNvbXB1dGVGaWVsZHMoKTsKKyAgICAgICAgYXJlRmllbGRzU2V0ID0gdHJ1ZTsKKyAgICAgICAgYXJlQWxsRmllbGRzU2V0ID0gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB2YWx1ZSBmb3IgYSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBmaWVsZCB0aGUgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKiBAcmV0dXJuIHRoZSB2YWx1ZSBmb3IgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBnZXQoaW50IGZpZWxkKQorICAgIHsKKyAgICAgICAgY29tcGxldGUoKTsKKyAgICAgICAgcmV0dXJuIGZpZWxkc1tmaWVsZF07CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdmFsdWUgZm9yIGEgZ2l2ZW4gdGltZSBmaWVsZC4gIFRoaXMgaXMgYW4gaW50ZXJuYWwgbWV0aG9kCisgICAgICogZm9yIHN1YmNsYXNzZXMgdGhhdCBkb2VzIDxlbT5ub3Q8L2VtPiB0cmlnZ2VyIGFueSBjYWxjdWxhdGlvbnMuCisgICAgICogQHBhcmFtIGZpZWxkIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIEByZXR1cm4gdGhlIHZhbHVlIGZvciB0aGUgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgaW50IGludGVybmFsR2V0KGludCBmaWVsZCkKKyAgICB7CisgICAgICAgIHJldHVybiBmaWVsZHNbZmllbGRdOworICAgIH0KKyAKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIHZhbHVlIGZvciBhIGdpdmVuIHRpbWUgZmllbGQsIG9yIHJldHVybiB0aGUgZ2l2ZW4gZGVmYXVsdAorICAgICAqIHZhbHVlIGlmIHRoZSBmaWVsZCBpcyBub3Qgc2V0LiAgVGhpcyBpcyBhbiBpbnRlcm5hbCBtZXRob2QgZm9yCisgICAgICogc3ViY2xhc3NlcyB0aGF0IGRvZXMgPGVtPm5vdDwvZW0+IHRyaWdnZXIgYW55IGNhbGN1bGF0aW9ucy4KKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIGRlZmF1bHRWYWx1ZSB2YWx1ZSB0byByZXR1cm4gaWYgZmllbGQgaXMgbm90IHNldAorICAgICAqIEByZXR1cm4gdGhlIHZhbHVlIGZvciB0aGUgZ2l2ZW4gdGltZSBmaWVsZCBvZiBkZWZhdWx0VmFsdWUgaWYgdGhlCisgICAgICogZmllbGQgaXMgdW5zZXQKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgaW50IGludGVybmFsR2V0KGludCBmaWVsZCwgaW50IGRlZmF1bHRWYWx1ZSkgeworICAgICAgICByZXR1cm4gKHN0YW1wW2ZpZWxkXSA+IFVOU0VUKSA/IGZpZWxkc1tmaWVsZF0gOiBkZWZhdWx0VmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgdGltZSBmaWVsZCB3aXRoIHRoZSBnaXZlbiB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZSB0byBiZSBzZXQgZm9yIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHNldChpbnQgZmllbGQsIGludCB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlzVGltZVNldCA9IGZhbHNlOworICAgICAgICBmaWVsZHNbZmllbGRdID0gdmFsdWU7CisgICAgICAgIHN0YW1wW2ZpZWxkXSA9IG5leHRTdGFtcCsrOworICAgICAgICBhcmVGaWVsZHNTZXQgPSBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB2YWx1ZXMgZm9yIHRoZSBmaWVsZHMgeWVhciwgbW9udGgsIGFuZCBkYXRlLgorICAgICAqIFByZXZpb3VzIHZhbHVlcyBvZiBvdGhlciBmaWVsZHMgYXJlIHJldGFpbmVkLiAgSWYgdGhpcyBpcyBub3QgZGVzaXJlZCwKKyAgICAgKiBjYWxsIDxjb2RlPmNsZWFyPC9jb2RlPiBmaXJzdC4KKyAgICAgKiBAcGFyYW0geWVhciB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIFlFQVIgdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gbW9udGggdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBNT05USCB0aW1lIGZpZWxkLgorICAgICAqIE1vbnRoIHZhbHVlIGlzIDAtYmFzZWQuIGUuZy4sIDAgZm9yIEphbnVhcnkuCisgICAgICogQHBhcmFtIGRhdGUgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBEQVRFIHRpbWUgZmllbGQuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgc2V0KGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlKQorICAgIHsKKyAgICAgICAgc2V0KFlFQVIsIHllYXIpOworICAgICAgICBzZXQoTU9OVEgsIG1vbnRoKTsKKyAgICAgICAgc2V0KERBVEUsIGRhdGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHZhbHVlcyBmb3IgdGhlIGZpZWxkcyB5ZWFyLCBtb250aCwgZGF0ZSwgaG91ciwgYW5kIG1pbnV0ZS4KKyAgICAgKiBQcmV2aW91cyB2YWx1ZXMgb2Ygb3RoZXIgZmllbGRzIGFyZSByZXRhaW5lZC4gIElmIHRoaXMgaXMgbm90IGRlc2lyZWQsCisgICAgICogY2FsbCA8Y29kZT5jbGVhcjwvY29kZT4gZmlyc3QuCisgICAgICogQHBhcmFtIHllYXIgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBZRUFSIHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIG1vbnRoIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgTU9OVEggdGltZSBmaWVsZC4KKyAgICAgKiBNb250aCB2YWx1ZSBpcyAwLWJhc2VkLiBlLmcuLCAwIGZvciBKYW51YXJ5LgorICAgICAqIEBwYXJhbSBkYXRlIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgREFURSB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBob3VyIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgSE9VUl9PRl9EQVkgdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gbWludXRlIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgTUlOVVRFIHRpbWUgZmllbGQuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgc2V0KGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlLCBpbnQgaG91ciwgaW50IG1pbnV0ZSkKKyAgICB7CisgICAgICAgIHNldChZRUFSLCB5ZWFyKTsKKyAgICAgICAgc2V0KE1PTlRILCBtb250aCk7CisgICAgICAgIHNldChEQVRFLCBkYXRlKTsKKyAgICAgICAgc2V0KEhPVVJfT0ZfREFZLCBob3VyKTsKKyAgICAgICAgc2V0KE1JTlVURSwgbWludXRlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB2YWx1ZXMgZm9yIHRoZSBmaWVsZHMgeWVhciwgbW9udGgsIGRhdGUsIGhvdXIsIG1pbnV0ZSwgYW5kIHNlY29uZC4KKyAgICAgKiBQcmV2aW91cyB2YWx1ZXMgb2Ygb3RoZXIgZmllbGRzIGFyZSByZXRhaW5lZC4gIElmIHRoaXMgaXMgbm90IGRlc2lyZWQsCisgICAgICogY2FsbCA8Y29kZT5jbGVhcjwvY29kZT4gZmlyc3QuCisgICAgICogQHBhcmFtIHllYXIgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBZRUFSIHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIG1vbnRoIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgTU9OVEggdGltZSBmaWVsZC4KKyAgICAgKiBNb250aCB2YWx1ZSBpcyAwLWJhc2VkLiBlLmcuLCAwIGZvciBKYW51YXJ5LgorICAgICAqIEBwYXJhbSBkYXRlIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgREFURSB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBob3VyIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgSE9VUl9PRl9EQVkgdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gbWludXRlIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgTUlOVVRFIHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIHNlY29uZCB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIFNFQ09ORCB0aW1lIGZpZWxkLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHNldChpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSwgaW50IGhvdXIsIGludCBtaW51dGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzZWNvbmQpCisgICAgeworICAgICAgICBzZXQoWUVBUiwgeWVhcik7CisgICAgICAgIHNldChNT05USCwgbW9udGgpOworICAgICAgICBzZXQoREFURSwgZGF0ZSk7CisgICAgICAgIHNldChIT1VSX09GX0RBWSwgaG91cik7CisgICAgICAgIHNldChNSU5VVEUsIG1pbnV0ZSk7CisgICAgICAgIHNldChTRUNPTkQsIHNlY29uZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2xlYXJzIHRoZSB2YWx1ZXMgb2YgYWxsIHRoZSB0aW1lIGZpZWxkcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCBjbGVhcigpCisgICAgeworICAgICAgICBmb3IgKGludCBpPTA7IGk8ZmllbGRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBmaWVsZHNbaV0gPSBzdGFtcFtpXSA9IDA7IC8vIFVOU0VUID09IDAKKyAgICAgICAgfQorICAgICAgICBhcmVGaWVsZHNTZXQgPSBmYWxzZTsKKyAgICAgICAgYXJlQWxsRmllbGRzU2V0ID0gZmFsc2U7CisgICAgICAgIGlzVGltZVNldCA9IGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIENsZWFycyB0aGUgdmFsdWUgaW4gdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIGZpZWxkIHRoZSB0aW1lIGZpZWxkIHRvIGJlIGNsZWFyZWQuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgY2xlYXIoaW50IGZpZWxkKQorICAgIHsKKyAgICAgICAgZmllbGRzW2ZpZWxkXSA9IDA7CisgICAgICAgIHN0YW1wW2ZpZWxkXSA9IFVOU0VUOworICAgICAgICBhcmVGaWVsZHNTZXQgPSBmYWxzZTsKKyAgICAgICAgYXJlQWxsRmllbGRzU2V0ID0gZmFsc2U7CisgICAgICAgIGlzVGltZVNldCA9IGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIHRpbWUgZmllbGQgaGFzIGEgdmFsdWUgc2V0LgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4gdGltZSBmaWVsZCBoYXMgYSB2YWx1ZSBzZXQ7IGZhbHNlIG90aGVyd2lzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiBpc1NldChpbnQgZmllbGQpCisgICAgeworICAgICAgICByZXR1cm4gc3RhbXBbZmllbGRdICE9IFVOU0VUOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZpbGxzIGluIGFueSB1bnNldCBmaWVsZHMgaW4gdGhlIHRpbWUgZmllbGQgbGlzdC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBjb21wbGV0ZSgpCisgICAgeworICAgICAgICBpZiAoIWlzVGltZVNldCkgdXBkYXRlVGltZSgpOworICAgICAgICBpZiAoIWFyZUZpZWxkc1NldCkgeworICAgICAgICAgICAgY29tcHV0ZUZpZWxkcygpOyAvLyBmaWxscyBpbiB1bnNldCBmaWVsZHMKKyAgICAgICAgICAgIGFyZUZpZWxkc1NldCA9IHRydWU7CisgICAgICAgICAgICBhcmVBbGxGaWVsZHNTZXQgPSB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGFyZXMgdGhpcyBjYWxlbmRhciB0byB0aGUgc3BlY2lmaWVkIG9iamVjdC4KKyAgICAgKiBUaGUgcmVzdWx0IGlzIDxjb2RlPnRydWU8L2NvZGU+IGlmIGFuZCBvbmx5IGlmIHRoZSBhcmd1bWVudCBpcworICAgICAqIG5vdCA8Y29kZT5udWxsPC9jb2RlPiBhbmQgaXMgYSA8Y29kZT5DYWxlbmRhcjwvY29kZT4gb2JqZWN0IHRoYXQKKyAgICAgKiByZXByZXNlbnRzIHRoZSBzYW1lIGNhbGVuZGFyIGFzIHRoaXMgb2JqZWN0LgorICAgICAqIEBwYXJhbSBvYmogdGhlIG9iamVjdCB0byBjb21wYXJlIHdpdGguCisgICAgICogQHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgb2JqZWN0cyBhcmUgdGhlIHNhbWU7CisgICAgICogPGNvZGU+ZmFsc2U8L2NvZGU+IG90aGVyd2lzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iaikgeworICAgICAgICBpZiAodGhpcyA9PSBvYmopIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICh0aGlzLmdldENsYXNzKCkgIT0gb2JqLmdldENsYXNzKCkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIENhbGVuZGFyIHRoYXQgPSAoQ2FsZW5kYXIpIG9iajsKKworICAgICAgICByZXR1cm4KKyAgICAgICAgICAgIGdldFRpbWVJbk1pbGxpcygpID09IHRoYXQuZ2V0VGltZSgpLmdldFRpbWUoKSAmJgorICAgICAgICAgICAgaXNMZW5pZW50KCkgPT0gdGhhdC5pc0xlbmllbnQoKSAmJgorICAgICAgICAgICAgZ2V0Rmlyc3REYXlPZldlZWsoKSA9PSB0aGF0LmdldEZpcnN0RGF5T2ZXZWVrKCkgJiYKKyAgICAgICAgICAgIGdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKSA9PSB0aGF0LmdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKSAmJgorICAgICAgICAgICAgZ2V0VGltZVpvbmUoKS5lcXVhbHModGhhdC5nZXRUaW1lWm9uZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgaGFzaCBjb2RlIGZvciB0aGlzIGNhbGVuZGFyLgorICAgICAqIEByZXR1cm4gYSBoYXNoIGNvZGUgdmFsdWUgZm9yIHRoaXMgb2JqZWN0LiAKKyAgICAgKiBAc2luY2UgMS4yCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgLyogRG9uJ3QgaW5jbHVkZSB0aGUgdGltZSBiZWNhdXNlIChhKSB3ZSBkb24ndCB3YW50IHRoZSBoYXNoIHZhbHVlIHRvCisgICAgICAgICAqIG1vdmUgYXJvdW5kIGp1c3QgYmVjYXVzZSBhIGNhbGVuZGFyIGlzIHNldCB0byBkaWZmZXJlbnQgdGltZXMsIGFuZAorICAgICAgICAgKiAoYikgd2UgZG9uJ3Qgd2FudCB0byB0cmlnZ2VyIGEgdGltZSBjb21wdXRhdGlvbiBqdXN0IHRvIGdldCBhIGhhc2guCisgICAgICAgICAqIE5vdGUgdGhhdCBpdCBpcyBub3QgbmVjZXNzYXJ5IGZvciB1bmVxdWFsIG9iamVjdHMgdG8gYWx3YXlzIGhhdmUKKyAgICAgICAgICogdW5lcXVhbCBoYXNoZXMsIGJ1dCBlcXVhbCBvYmplY3RzIG11c3QgaGF2ZSBlcXVhbCBoYXNoZXMuICAqLworICAgICAgICByZXR1cm4gKGxlbmllbnQgPyAxIDogMCkKKyAgICAgICAgICAgIHwgKGZpcnN0RGF5T2ZXZWVrIDw8IDEpCisgICAgICAgICAgICB8IChtaW5pbWFsRGF5c0luRmlyc3RXZWVrIDw8IDQpCisgICAgICAgICAgICB8ICh6b25lLmhhc2hDb2RlKCkgPDwgNyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBkaWZmZXJlbmNlIGluIG1pbGxpc2Vjb25kcyBiZXR3ZWVuIHRoZSBtb21lbnQgdGhpcworICAgICAqIGNhbGVuZGFyIGlzIHNldCB0byBhbmQgdGhlIG1vbWVudCB0aGUgZ2l2ZW4gY2FsZW5kYXIgb3IgRGF0ZSBvYmplY3QKKyAgICAgKiBpcyBzZXQgdG8uCisgICAgICovCisgICAgcHJpdmF0ZSBsb25nIGNvbXBhcmUoT2JqZWN0IHRoYXQpIHsKKyAgICAgICAgbG9uZyB0aGF0TXM7CisgICAgICAgIGlmICh0aGF0IGluc3RhbmNlb2YgQ2FsZW5kYXIpIHsKKyAgICAgICAgICAgIHRoYXRNcyA9ICgoQ2FsZW5kYXIpdGhhdCkuZ2V0VGltZUluTWlsbGlzKCk7CisgICAgICAgIH0gZWxzZSBpZiAodGhhdCBpbnN0YW5jZW9mIERhdGUpIHsKKyAgICAgICAgICAgIHRoYXRNcyA9ICgoRGF0ZSl0aGF0KS5nZXRUaW1lKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKHRoYXQgKyAiaXMgbm90IGEgQ2FsZW5kYXIgb3IgRGF0ZSIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBnZXRUaW1lSW5NaWxsaXMoKSAtIHRoYXRNczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlcyB0aGUgdGltZSBmaWVsZCByZWNvcmRzLgorICAgICAqIEVxdWl2YWxlbnQgdG8gY29tcGFyaW5nIHJlc3VsdCBvZiBjb252ZXJzaW9uIHRvIFVUQy4KKyAgICAgKiBAcGFyYW0gd2hlbiB0aGUgQ2FsZW5kYXIgdG8gYmUgY29tcGFyZWQgd2l0aCB0aGlzIENhbGVuZGFyLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgY3VycmVudCB0aW1lIG9mIHRoaXMgQ2FsZW5kYXIgaXMgYmVmb3JlCisgICAgICogdGhlIHRpbWUgb2YgQ2FsZW5kYXIgd2hlbjsgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGJlZm9yZShPYmplY3Qgd2hlbikgeworICAgICAgICByZXR1cm4gY29tcGFyZSh3aGVuKSA8IDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGFyZXMgdGhlIHRpbWUgZmllbGQgcmVjb3Jkcy4KKyAgICAgKiBFcXVpdmFsZW50IHRvIGNvbXBhcmluZyByZXN1bHQgb2YgY29udmVyc2lvbiB0byBVVEMuCisgICAgICogQHBhcmFtIHdoZW4gdGhlIENhbGVuZGFyIHRvIGJlIGNvbXBhcmVkIHdpdGggdGhpcyBDYWxlbmRhci4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGN1cnJlbnQgdGltZSBvZiB0aGlzIENhbGVuZGFyIGlzIGFmdGVyCisgICAgICogdGhlIHRpbWUgb2YgQ2FsZW5kYXIgd2hlbjsgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGFmdGVyKE9iamVjdCB3aGVuKSB7CisgICAgICAgIHJldHVybiBjb21wYXJlKHdoZW4pID4gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG1heGltdW0gdmFsdWUgdGhhdCB0aGlzIGZpZWxkIGNvdWxkIGhhdmUsIGdpdmVuIHRoZQorICAgICAqIGN1cnJlbnQgZGF0ZS4gIEZvciBleGFtcGxlLCB3aXRoIHRoZSBHcmVnb3JpYW4gZGF0ZSBGZWJydWFyeSAzLCAxOTk3CisgICAgICogYW5kIHRoZSB7QGxpbmsgI0RBWV9PRl9NT05USCBEQVlfT0ZfTU9OVEh9IGZpZWxkLCB0aGUgYWN0dWFsIG1heGltdW0KKyAgICAgKiBpcyAyODsgZm9yIEZlYnJ1YXJ5IDMsIDE5OTYgaXQgaXMgMjkuCisgICAgICoKKyAgICAgKiA8cD5UaGUgYWN0dWFsIG1heGltdW0gY29tcHV0YXRpb24gaWdub3JlcyBzbWFsbGVyIGZpZWxkcyBhbmQgdGhlCisgICAgICogY3VycmVudCB2YWx1ZSBvZiBsaWtlLXNpemVkIGZpZWxkcy4gIEZvciBleGFtcGxlLCB0aGUgYWN0dWFsIG1heGltdW0KKyAgICAgKiBvZiB0aGUgREFZX09GX1lFQVIgb3IgTU9OVEggZGVwZW5kcyBvbmx5IG9uIHRoZSB5ZWFyIGFuZCBzdXByYS15ZWFyCisgICAgICogZmllbGRzLiAgVGhlIGFjdHVhbCBtYXhpbXVtIG9mIHRoZSBEQVlfT0ZfTU9OVEggZGVwZW5kcywgaW4KKyAgICAgKiBhZGRpdGlvbiwgb24gdGhlIE1PTlRIIGZpZWxkIGFuZCBhbnkgb3RoZXIgZmllbGRzIGF0IHRoYXQKKyAgICAgKiBncmFudWxhcml0eSAoc3VjaCBhcyBDaGluZXNlQ2FsZW5kYXIuSVNfTEVBUF9NT05USCkuICBUaGUKKyAgICAgKiBEQVlfT0ZfV0VFS19JTl9NT05USCBmaWVsZCBkb2VzIG5vdCBkZXBlbmQgb24gdGhlIGN1cnJlbnQKKyAgICAgKiBEQVlfT0ZfV0VFSzsgaXQgcmV0dXJucyB0aGUgbWF4aW11bSBmb3IgYW55IGRheSBvZiB3ZWVrIGluIHRoZQorICAgICAqIGN1cnJlbnQgbW9udGguICBMaWtld2lzZSBmb3IgdGhlIFdFRUtfT0ZfTU9OVEggYW5kIFdFRUtfT0ZfWUVBUgorICAgICAqIGZpZWxkcy4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIGZpZWxkIHdob3NlIG1heGltdW0gaXMgZGVzaXJlZAorICAgICAqIEByZXR1cm4gdGhlIG1heGltdW0gb2YgdGhlIGdpdmVuIGZpZWxkIGZvciB0aGUgY3VycmVudCBkYXRlIG9mIHRoaXMgY2FsZW5kYXIKKyAgICAgKiBAc2VlICNnZXRNYXhpbXVtCisgICAgICogQHNlZSAjZ2V0TGVhc3RNYXhpbXVtCisgICAgICovCisgICAgcHVibGljIGludCBnZXRBY3R1YWxNYXhpbXVtKGludCBmaWVsZCkgeworICAgICAgICBpbnQgcmVzdWx0OworICAgICAgICAKKyAgICAgICAgc3dpdGNoIChmaWVsZCkgeworICAgICAgICBjYXNlIERBWV9PRl9NT05USDoKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBDYWxlbmRhciBjYWwgPSAoQ2FsZW5kYXIpIGNsb25lKCk7CisgICAgICAgICAgICAgICAgY2FsLnByZXBhcmVHZXRBY3R1YWwoZmllbGQsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBoYW5kbGVHZXRNb250aExlbmd0aChjYWwuZ2V0KEVYVEVOREVEX1lFQVIpLCBjYWwuZ2V0KE1PTlRIKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIERBWV9PRl9ZRUFSOgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIENhbGVuZGFyIGNhbCA9IChDYWxlbmRhcikgY2xvbmUoKTsKKyAgICAgICAgICAgICAgICBjYWwucHJlcGFyZUdldEFjdHVhbChmaWVsZCwgZmFsc2UpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGhhbmRsZUdldFllYXJMZW5ndGgoY2FsLmdldChFWFRFTkRFRF9ZRUFSKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIERBWV9PRl9XRUVLOgorICAgICAgICBjYXNlIEFNX1BNOgorICAgICAgICBjYXNlIEhPVVI6CisgICAgICAgIGNhc2UgSE9VUl9PRl9EQVk6CisgICAgICAgIGNhc2UgTUlOVVRFOgorICAgICAgICBjYXNlIFNFQ09ORDoKKyAgICAgICAgY2FzZSBNSUxMSVNFQ09ORDoKKyAgICAgICAgY2FzZSBaT05FX09GRlNFVDoKKyAgICAgICAgY2FzZSBEU1RfT0ZGU0VUOgorICAgICAgICBjYXNlIERPV19MT0NBTDoKKyAgICAgICAgY2FzZSBKVUxJQU5fREFZOgorICAgICAgICBjYXNlIE1JTExJU0VDT05EU19JTl9EQVk6CisgICAgICAgICAgICAvLyBUaGVzZSBmaWVsZHMgYWxsIGhhdmUgZml4ZWQgbWluaW1hL21heGltYQorICAgICAgICAgICAgcmVzdWx0ID0gZ2V0TWF4aW11bShmaWVsZCk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgLy8gRm9yIGFsbCBvdGhlciBmaWVsZHMsIGRvIGl0IHRoZSBoYXJkIHdheS4uLi4KKyAgICAgICAgICAgIHJlc3VsdCA9IGdldEFjdHVhbEhlbHBlcihmaWVsZCwgZ2V0TGVhc3RNYXhpbXVtKGZpZWxkKSwgZ2V0TWF4aW11bShmaWVsZCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBtaW5pbXVtIHZhbHVlIHRoYXQgdGhpcyBmaWVsZCBjb3VsZCBoYXZlLCBnaXZlbiB0aGUgY3VycmVudCBkYXRlLgorICAgICAqIEZvciBtb3N0IGZpZWxkcywgdGhpcyBpcyB0aGUgc2FtZSBhcyB7QGxpbmsgI2dldE1pbmltdW0gZ2V0TWluaW11bX0KKyAgICAgKiBhbmQge0BsaW5rICNnZXRHcmVhdGVzdE1pbmltdW0gZ2V0R3JlYXRlc3RNaW5pbXVtfS4gIEhvd2V2ZXIsIHNvbWUgZmllbGRzLAorICAgICAqIGVzcGVjaWFsbHkgdGhvc2UgcmVsYXRlZCB0byB3ZWVrIG51bWJlciwgYXJlIG1vcmUgY29tcGxpY2F0ZWQuCisgICAgICogPHA+CisgICAgICogRm9yIGV4YW1wbGUsIGFzc3VtZSB7QGxpbmsgI2dldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsgZ2V0TWluaW1hbERheXNJbkZpcnN0V2Vla30KKyAgICAgKiByZXR1cm5zIDQgYW5kIHtAbGluayAjZ2V0Rmlyc3REYXlPZldlZWsgZ2V0Rmlyc3REYXlPZldlZWt9IHJldHVybnMgU1VOREFZLgorICAgICAqIElmIHRoZSBmaXJzdCBkYXkgb2YgdGhlIG1vbnRoIGlzIFN1bmRheSwgTW9uZGF5LCBUdWVzZGF5LCBvciBXZWRuZXNkYXkKKyAgICAgKiB0aGVyZSB3aWxsIGJlIGZvdXIgb3IgbW9yZSBkYXlzIGluIHRoZSBmaXJzdCB3ZWVrLCBzbyBpdCB3aWxsIGJlIHdlZWsgbnVtYmVyIDEsCisgICAgICogYW5kIDxjb2RlPmdldEFjdHVhbE1pbmltdW0oV0VFS19PRl9NT05USCk8L2NvZGU+IHdpbGwgcmV0dXJuIDEuICBIb3dldmVyLAorICAgICAqIGlmIHRoZSBmaXJzdCBvZiB0aGUgbW9udGggaXMgYSBUaHVyc2RheSwgRnJpZGF5LCBvciBTYXR1cmRheSwgdGhlcmUgYXJlCisgICAgICogPGVtPm5vdDwvZW0+IGZvdXIgZGF5cyBpbiB0aGF0IHdlZWssIHNvIGl0IGlzIHdlZWsgbnVtYmVyIDAsIGFuZCAKKyAgICAgKiA8Y29kZT5nZXRBY3R1YWxNaW5pbXVtKFdFRUtfT0ZfTU9OVEgpPC9jb2RlPiB3aWxsIHJldHVybiAwLgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBmaWVsZCB0aGUgZmllbGQgd2hvc2UgYWN0dWFsIG1pbmltdW0gdmFsdWUgaXMgZGVzaXJlZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBtaW5pbXVtIG9mIHRoZSBnaXZlbiBmaWVsZCBmb3IgdGhlIGN1cnJlbnQgZGF0ZSBvZiB0aGlzIGNhbGVuZGFyCisgICAgICoKKyAgICAgKiBAc2VlICNnZXRNaW5pbXVtCisgICAgICogQHNlZSAjZ2V0R3JlYXRlc3RNaW5pbXVtCisgICAgICovCisgICAgcHVibGljIGludCBnZXRBY3R1YWxNaW5pbXVtKGludCBmaWVsZCkgeworICAgICAgICBpbnQgcmVzdWx0OworICAgICAgICAKKyAgICAgICAgc3dpdGNoIChmaWVsZCkgeworICAgICAgICBjYXNlIERBWV9PRl9XRUVLOgorICAgICAgICBjYXNlIEFNX1BNOgorICAgICAgICBjYXNlIEhPVVI6CisgICAgICAgIGNhc2UgSE9VUl9PRl9EQVk6CisgICAgICAgIGNhc2UgTUlOVVRFOgorICAgICAgICBjYXNlIFNFQ09ORDoKKyAgICAgICAgY2FzZSBNSUxMSVNFQ09ORDoKKyAgICAgICAgY2FzZSBaT05FX09GRlNFVDoKKyAgICAgICAgY2FzZSBEU1RfT0ZGU0VUOgorICAgICAgICBjYXNlIERPV19MT0NBTDoKKyAgICAgICAgY2FzZSBKVUxJQU5fREFZOgorICAgICAgICBjYXNlIE1JTExJU0VDT05EU19JTl9EQVk6CisgICAgICAgICAgICAvLyBUaGVzZSBmaWVsZHMgYWxsIGhhdmUgZml4ZWQgbWluaW1hL21heGltYQorICAgICAgICAgICAgcmVzdWx0ID0gZ2V0TWluaW11bShmaWVsZCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIAorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgLy8gRm9yIGFsbCBvdGhlciBmaWVsZHMsIGRvIGl0IHRoZSBoYXJkIHdheS4uLi4KKyAgICAgICAgICAgIHJlc3VsdCA9IGdldEFjdHVhbEhlbHBlcihmaWVsZCwgZ2V0R3JlYXRlc3RNaW5pbXVtKGZpZWxkKSwgZ2V0TWluaW11bShmaWVsZCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcmVwYXJlIHRoaXMgY2FsZW5kYXIgZm9yIGNvbXB1dGluZyB0aGUgYWN0dWFsIG1pbmltdW0gb3IgbWF4aW11bS4KKyAgICAgKiBUaGlzIG1ldGhvZCBtb2RpZmllcyB0aGlzIGNhbGVuZGFyJ3MgZmllbGRzOyBpdCBpcyBjYWxsZWQgb24gYQorICAgICAqIHRlbXBvcmFyeSBjYWxlbmRhci4KKyAgICAgKgorICAgICAqIDxwPlJhdGlvbmFsZTogVGhlIHNlbWFudGljcyBvZiBnZXRBY3R1YWxYeHgoKSBpcyB0byByZXR1cm4gdGhlCisgICAgICogbWF4aW11bSBvciBtaW5pbXVtIHZhbHVlIHRoYXQgdGhlIGdpdmVuIGZpZWxkIGNhbiB0YWtlLCB0YWtpbmcgaW50bworICAgICAqIGFjY291bnQgb3RoZXIgcmVsZXZhbnQgZmllbGRzLiAgSW4gZ2VuZXJhbCB0aGVzZSBvdGhlciBmaWVsZHMgYXJlCisgICAgICogbGFyZ2VyIGZpZWxkcy4gIEZvciBleGFtcGxlLCB3aGVuIGNvbXB1dGluZyB0aGUgYWN0dWFsIG1heGltdW0KKyAgICAgKiBEQVlfT0ZfTU9OVEgsIHRoZSBjdXJyZW50IHZhbHVlIG9mIERBWV9PRl9NT05USCBpdHNlbGYgaXMgaWdub3JlZCwKKyAgICAgKiBhcyBpcyB0aGUgdmFsdWUgb2YgYW55IGZpZWxkIHNtYWxsZXIuCisgICAgICoKKyAgICAgKiA8cD5UaGUgdGltZSBmaWVsZHMgYWxsIGhhdmUgZml4ZWQgbWluaW1hIGFuZCBtYXhpbWEsIHNvIHdlIGRvbid0CisgICAgICogbmVlZCB0byB3b3JyeSBhYm91dCB0aGVtLiAgVGhpcyBhbHNvIGxldHMgdXMgc2V0IHRoZQorICAgICAqIE1JTExJU0VDT05EU19JTl9EQVkgdG8gemVybyB0byBlcmFzZSBhbnkgZWZmZWN0cyB0aGUgdGltZSBmaWVsZHMKKyAgICAgKiBtaWdodCBoYXZlIHdoZW4gY29tcHV0aW5nIGRhdGUgZmllbGRzLgorICAgICAqCisgICAgICogPHA+REFZX09GX1dFRUsgaXMgYWRqdXN0ZWQgc3BlY2lhbGx5IGZvciB0aGUgV0VFS19PRl9NT05USCBhbmQKKyAgICAgKiBXRUVLX09GX1lFQVIgZmllbGRzIHRvIGVuc3VyZSB0aGF0IHRoZXkgYXJlIGNvbXB1dGVkIGNvcnJlY3RseS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBwcmVwYXJlR2V0QWN0dWFsKGludCBmaWVsZCwgYm9vbGVhbiBpc01pbmltdW0pIHsKKyAgICAgICAgc2V0KE1JTExJU0VDT05EU19JTl9EQVksIDApOworCisgICAgICAgIHN3aXRjaCAoZmllbGQpIHsKKyAgICAgICAgY2FzZSBZRUFSOgorICAgICAgICBjYXNlIFlFQVJfV09ZOgorICAgICAgICBjYXNlIEVYVEVOREVEX1lFQVI6CisgICAgICAgICAgICBzZXQoREFZX09GX1lFQVIsIGdldEdyZWF0ZXN0TWluaW11bShEQVlfT0ZfWUVBUikpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgIGNhc2UgTU9OVEg6CisgICAgICAgICAgICBzZXQoREFZX09GX01PTlRILCBnZXRHcmVhdGVzdE1pbmltdW0oREFZX09GX01PTlRIKSk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIERBWV9PRl9XRUVLX0lOX01PTlRIOgorICAgICAgICAgICAgLy8gRm9yIGRvd2ltLCB0aGUgbWF4aW11bSBvY2N1cnMgZm9yIHRoZSBET1cgb2YgdGhlIGZpcnN0IG9mIHRoZQorICAgICAgICAgICAgLy8gbW9udGguCisgICAgICAgICAgICBzZXQoREFZX09GX01PTlRILCAxKTsKKyAgICAgICAgICAgIHNldChEQVlfT0ZfV0VFSywgZ2V0KERBWV9PRl9XRUVLKSk7IC8vIE1ha2UgdGhpcyB1c2VyIHNldAorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgIGNhc2UgV0VFS19PRl9NT05USDoKKyAgICAgICAgY2FzZSBXRUVLX09GX1lFQVI6CisgICAgICAgICAgICAvLyBJZiB3ZSdyZSBjb3VudGluZyB3ZWVrcywgc2V0IHRoZSBkYXkgb2YgdGhlIHdlZWsgdG8gZWl0aGVyIHRoZQorICAgICAgICAgICAgLy8gZmlyc3Qgb3IgbGFzdCBsb2NhbGl6ZWQgRE9XLiAgV2Uga25vdyB0aGUgbGFzdCB3ZWVrIG9mIGEgbW9udGgKKyAgICAgICAgICAgIC8vIG9yIHllYXIgd2lsbCBjb250YWluIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWssIGFuZCB0aGF0IHRoZQorICAgICAgICAgICAgLy8gZmlyc3Qgd2VlayB3aWxsIGNvbnRhaW4gdGhlIGxhc3QgRE9XLgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGludCBkb3cgPSBmaXJzdERheU9mV2VlazsKKyAgICAgICAgICAgICAgICBpZiAoaXNNaW5pbXVtKSB7CisgICAgICAgICAgICAgICAgICAgIGRvdyA9IChkb3cgKyA2KSAlIDc7IC8vIHNldCB0byBsYXN0IERPVworICAgICAgICAgICAgICAgICAgICBpZiAoZG93IDwgU1VOREFZKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkb3cgKz0gNzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzZXQoREFZX09GX1dFRUssIGRvdyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIC8vIERvIHRoaXMgbGFzdCB0byBnaXZlIGl0IHRoZSBuZXdlc3QgdGltZSBzdGFtcAorICAgICAgICBzZXQoZmllbGQsIGdldEdyZWF0ZXN0TWluaW11bShmaWVsZCkpOworICAgIH0KKworICAgIHByaXZhdGUgaW50IGdldEFjdHVhbEhlbHBlcihpbnQgZmllbGQsIGludCBzdGFydFZhbHVlLCBpbnQgZW5kVmFsdWUpIHsKKworICAgICAgICBpZiAoc3RhcnRWYWx1ZSA9PSBlbmRWYWx1ZSkgeworICAgICAgICAgICAgLy8gaWYgd2Uga25vdyB0aGF0IHRoZSBtYXhpbXVtIHZhbHVlIGlzIGFsd2F5cyB0aGUgc2FtZSwganVzdCByZXR1cm4gaXQKKyAgICAgICAgICAgIHJldHVybiBzdGFydFZhbHVlOworICAgICAgICB9IAorCisgICAgICAgIGZpbmFsIGludCBkZWx0YSA9IChlbmRWYWx1ZSA+IHN0YXJ0VmFsdWUpID8gMSA6IC0xOworCisgICAgICAgIC8vIGNsb25lIHRoZSBjYWxlbmRhciBzbyB3ZSBkb24ndCBtZXNzIHdpdGggdGhlIHJlYWwgb25lLCBhbmQgc2V0IGl0IHRvCisgICAgICAgIC8vIGFjY2VwdCBhbnl0aGluZyBmb3IgdGhlIGZpZWxkIHZhbHVlcworICAgICAgICBDYWxlbmRhciB3b3JrID0gKENhbGVuZGFyKSBjbG9uZSgpOworICAgICAgICB3b3JrLnNldExlbmllbnQodHJ1ZSk7CisgICAgICAgIHdvcmsucHJlcGFyZUdldEFjdHVhbChmaWVsZCwgZGVsdGEgPCAwKTsKKyAgICAgICAgCisgICAgICAgIC8vIG5vdyB0cnkgZWFjaCB2YWx1ZSBmcm9tIHRoZSBzdGFydCB0byB0aGUgZW5kIG9uZSBieSBvbmUgdW50aWwKKyAgICAgICAgLy8gd2UgZ2V0IGEgdmFsdWUgdGhhdCBub3JtYWxpemVzIHRvIGFub3RoZXIgdmFsdWUuICBUaGUgbGFzdCB2YWx1ZSB0aGF0CisgICAgICAgIC8vIG5vcm1hbGl6ZXMgdG8gaXRzZWxmIGlzIHRoZSBhY3R1YWwgbWF4aW11bSBmb3IgdGhlIGN1cnJlbnQgZGF0ZQorICAgICAgICBpbnQgcmVzdWx0ID0gc3RhcnRWYWx1ZTsKKyAgICAgICAgZG8geworICAgICAgICAgICAgd29yay5zZXQoZmllbGQsIHN0YXJ0VmFsdWUpOworICAgICAgICAgICAgaWYgKHdvcmsuZ2V0KGZpZWxkKSAhPSBzdGFydFZhbHVlKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHN0YXJ0VmFsdWU7CisgICAgICAgICAgICAgICAgc3RhcnRWYWx1ZSArPSBkZWx0YTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSB3aGlsZSAocmVzdWx0ICE9IGVuZFZhbHVlKTsKKworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSb2xscyAodXAvZG93bikgYSBzaW5nbGUgdW5pdCBvZiB0aW1lIG9uIHRoZSBnaXZlbiBmaWVsZC4gIElmIHRoZQorICAgICAqIGZpZWxkIGlzIHJvbGxlZCBwYXN0IGl0cyBtYXhpbXVtIGFsbG93YWJsZSB2YWx1ZSwgaXQgd2lsbCAid3JhcCIgYmFjaworICAgICAqIHRvIGl0cyBtaW5pbXVtIGFuZCBjb250aW51ZSByb2xsaW5nLiBGb3IKKyAgICAgKiBleGFtcGxlLCB0byByb2xsIHRoZSBjdXJyZW50IGRhdGUgdXAgYnkgb25lIGRheSwgeW91IGNhbiBjYWxsOgorICAgICAqIDxwPgorICAgICAqIDxjb2RlPnJvbGwoe0BsaW5rICNEQVRFfSwgdHJ1ZSk8L2NvZGU+CisgICAgICogPHA+CisgICAgICogV2hlbiByb2xsaW5nIG9uIHRoZSB7QGxpbmsgI1lFQVJ9IGZpZWxkLCBpdCB3aWxsIHJvbGwgdGhlIHllYXIKKyAgICAgKiB2YWx1ZSBpbiB0aGUgcmFuZ2UgYmV0d2VlbiAxIGFuZCB0aGUgdmFsdWUgcmV0dXJuZWQgYnkgY2FsbGluZworICAgICAqIHtAbGluayAjZ2V0TWF4aW11bSBnZXRNYXhpbXVtfSh7QGxpbmsgI1lFQVJ9KS4KKyAgICAgKiA8cD4KKyAgICAgKiBXaGVuIHJvbGxpbmcgb24gY2VydGFpbiBmaWVsZHMsIHRoZSB2YWx1ZXMgb2Ygb3RoZXIgZmllbGRzIG1heSBjb25mbGljdCBhbmQKKyAgICAgKiBuZWVkIHRvIGJlIGNoYW5nZWQuICBGb3IgZXhhbXBsZSwgd2hlbiByb2xsaW5nIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQKKyAgICAgKiBmb3IgdGhlIEdyZWdvcmlhbiBkYXRlIDEvMzEvOTYgdXB3YXJkLCB0aGUgPGNvZGU+REFZX09GX01PTlRIPC9jb2RlPiBmaWVsZAorICAgICAqIG11c3QgYmUgYWRqdXN0ZWQgc28gdGhhdCB0aGUgcmVzdWx0IGlzIDIvMjkvOTYgcmF0aGVyIHRoYW4gdGhlIGludmFsaWQKKyAgICAgKiAyLzMxLzk2LgorICAgICAqIDxwPgorICAgICAqIDxiPk5vdGU6PC9iPiBDYWxsaW5nIDx0dD5yb2xsKGZpZWxkLCB0cnVlKTwvdHQ+IE4gdGltZXMgaXMgPGVtPm5vdDwvZW0+CisgICAgICogbmVjZXNzYXJpbHkgZXF1aXZhbGVudCB0byBjYWxsaW5nIDx0dD5yb2xsKGZpZWxkLCBOKTwvdHQ+LiAgRm9yIGV4YW1wbGUsCisgICAgICogaW1hZ2luZSB0aGF0IHlvdSBzdGFydCB3aXRoIHRoZSBkYXRlIEdyZWdvcmlhbiBkYXRlIEphbnVhcnkgMzEsIDE5OTUuICBJZiB5b3UgY2FsbAorICAgICAqIDx0dD5yb2xsKENhbGVuZGFyLk1PTlRILCAyKTwvdHQ+LCB0aGUgcmVzdWx0IHdpbGwgYmUgTWFyY2ggMzEsIDE5OTUuCisgICAgICogQnV0IGlmIHlvdSBjYWxsIDx0dD5yb2xsKENhbGVuZGFyLk1PTlRILCB0cnVlKTwvdHQ+LCB0aGUgcmVzdWx0IHdpbGwgYmUKKyAgICAgKiBGZWJydWFyeSAyOCwgMTk5NS4gIENhbGxpbmcgaXQgb25lIG1vcmUgdGltZSB3aWxsIGdpdmUgTWFyY2ggMjgsIDE5OTUsIHdoaWNoCisgICAgICogaXMgdXN1YWxseSBub3QgdGhlIGRlc2lyZWQgcmVzdWx0LgorICAgICAqIDxwPgorICAgICAqIDxiPk5vdGU6PC9iPiBZb3Ugc2hvdWxkIGFsd2F5cyB1c2UgPHR0PnJvbGw8L3R0PiBhbmQgPHR0PmFkZDwvdHQ+IHJhdGhlcgorICAgICAqIHRoYW4gYXR0ZW1wdGluZyB0byBwZXJmb3JtIGFyaXRobWV0aWMgb3BlcmF0aW9ucyBkaXJlY3RseSBvbiB0aGUgZmllbGRzCisgICAgICogb2YgYSA8dHQ+Q2FsZW5kYXI8L3R0Pi4gIEl0IGlzIHF1aXRlIHBvc3NpYmxlIGZvciA8dHQ+Q2FsZW5kYXI8L3R0PiBzdWJjbGFzc2VzCisgICAgICogdG8gaGF2ZSBmaWVsZHMgd2l0aCBub24tbGluZWFyIGJlaGF2aW9yLCBmb3IgZXhhbXBsZSBtaXNzaW5nIG1vbnRocworICAgICAqIG9yIGRheXMgZHVyaW5nIG5vbi1sZWFwIHllYXJzLiAgVGhlIHN1YmNsYXNzZXMnIDx0dD5hZGQ8L3R0PiBhbmQgPHR0PnJvbGw8L3R0PgorICAgICAqIG1ldGhvZHMgd2lsbCB0YWtlIHRoaXMgaW50byBhY2NvdW50LCB3aGlsZSBzaW1wbGUgYXJpdGhtZXRpYyBtYW5pcHVsYXRpb25zCisgICAgICogbWF5IGdpdmUgaW52YWxpZCByZXN1bHRzLgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBmaWVsZCB0aGUgY2FsZW5kYXIgZmllbGQgdG8gcm9sbC4KKyAgICAgKgorICAgICAqIEBwYXJhbSB1cCAgICBpbmRpY2F0ZXMgaWYgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgdGltZSBmaWVsZCBpcyB0byBiZQorICAgICAqICAgICAgICAgICAgICByb2xsZWQgdXAgb3Igcm9sbGVkIGRvd24uIFVzZSA8Y29kZT50cnVlPC9jb2RlPiBpZiByb2xsaW5nIHVwLAorICAgICAqICAgICAgICAgICAgICA8Y29kZT5mYWxzZTwvY29kZT4gb3RoZXJ3aXNlLgorICAgICAqCisgICAgICogQGV4Y2VwdGlvbiAgIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgZmllbGQgaXMgaW52YWxpZCBvciByZWZlcnMKKyAgICAgKiAgICAgICAgICAgICAgdG8gYSBmaWVsZCB0aGF0IGNhbm5vdCBiZSBoYW5kbGVkIGJ5IHRoaXMgbWV0aG9kLgorICAgICAqIEBzZWUgI3JvbGwoaW50LCBpbnQpCisgICAgICogQHNlZSAjYWRkCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgcm9sbChpbnQgZmllbGQsIGJvb2xlYW4gdXApCisgICAgeworICAgICAgICByb2xsKGZpZWxkLCB1cCA/ICsxIDogLTEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJvbGxzICh1cC9kb3duKSBhIHNwZWNpZmllZCBhbW91bnQgdGltZSBvbiB0aGUgZ2l2ZW4gZmllbGQuICBGb3IKKyAgICAgKiBleGFtcGxlLCB0byByb2xsIHRoZSBjdXJyZW50IGRhdGUgdXAgYnkgdGhyZWUgZGF5cywgeW91IGNhbiBjYWxsCisgICAgICogPGNvZGU+cm9sbChDYWxlbmRhci5EQVRFLCAzKTwvY29kZT4uICBJZiB0aGUKKyAgICAgKiBmaWVsZCBpcyByb2xsZWQgcGFzdCBpdHMgbWF4aW11bSBhbGxvd2FibGUgdmFsdWUsIGl0IHdpbGwgIndyYXAiIGJhY2sKKyAgICAgKiB0byBpdHMgbWluaW11bSBhbmQgY29udGludWUgcm9sbGluZy4gIAorICAgICAqIEZvciBleGFtcGxlLCBjYWxsaW5nIDxjb2RlPnJvbGwoQ2FsZW5kYXIuREFURSwgMTApPC9jb2RlPgorICAgICAqIG9uIGEgR3JlZ29yaWFuIGNhbGVuZGFyIHNldCB0byA0LzI1Lzk2IHdpbGwgcmVzdWx0IGluIHRoZSBkYXRlIDQvNS85Ni4KKyAgICAgKiA8cD4KKyAgICAgKiBXaGVuIHJvbGxpbmcgb24gY2VydGFpbiBmaWVsZHMsIHRoZSB2YWx1ZXMgb2Ygb3RoZXIgZmllbGRzIG1heSBjb25mbGljdCBhbmQKKyAgICAgKiBuZWVkIHRvIGJlIGNoYW5nZWQuICBGb3IgZXhhbXBsZSwgd2hlbiByb2xsaW5nIHRoZSB7QGxpbmsgI01PTlRIIE1PTlRIfSBmaWVsZAorICAgICAqIGZvciB0aGUgR3JlZ29yaWFuIGRhdGUgMS8zMS85NiBieSArMSwgdGhlIHtAbGluayAjREFZX09GX01PTlRIIERBWV9PRl9NT05USH0gZmllbGQKKyAgICAgKiBtdXN0IGJlIGFkanVzdGVkIHNvIHRoYXQgdGhlIHJlc3VsdCBpcyAyLzI5Lzk2IHJhdGhlciB0aGFuIHRoZSBpbnZhbGlkCisgICAgICogMi8zMS85Ni4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgPGNvZGU+Y29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjwvY29kZT4gaW1wbGVtZW50YXRpb24gb2YgdGhpcyBtZXRob2QgaXMgYWJsZSB0byByb2xsCisgICAgICogYWxsIGZpZWxkcyBleGNlcHQgZm9yIHtAbGluayAjRVJBIEVSQX0sIHtAbGluayAjRFNUX09GRlNFVCBEU1RfT0ZGU0VUfSwKKyAgICAgKiBhbmQge0BsaW5rICNaT05FX09GRlNFVCBaT05FX09GRlNFVH0uICBTdWJjbGFzc2VzIG1heSwgb2YgY291cnNlLCBhZGQgc3VwcG9ydCBmb3IKKyAgICAgKiBhZGRpdGlvbmFsIGZpZWxkcyBpbiB0aGVpciBvdmVycmlkZXMgb2YgPGNvZGU+cm9sbDwvY29kZT4uCisgICAgICogPHA+CisgICAgICogPGI+Tm90ZTo8L2I+IFlvdSBzaG91bGQgYWx3YXlzIHVzZSA8dHQ+cm9sbDwvdHQ+IGFuZCA8dHQ+YWRkPC90dD4gcmF0aGVyCisgICAgICogdGhhbiBhdHRlbXB0aW5nIHRvIHBlcmZvcm0gYXJpdGhtZXRpYyBvcGVyYXRpb25zIGRpcmVjdGx5IG9uIHRoZSBmaWVsZHMKKyAgICAgKiBvZiBhIDx0dD5DYWxlbmRhcjwvdHQ+LiAgSXQgaXMgcXVpdGUgcG9zc2libGUgZm9yIDx0dD5DYWxlbmRhcjwvdHQ+IHN1YmNsYXNzZXMKKyAgICAgKiB0byBoYXZlIGZpZWxkcyB3aXRoIG5vbi1saW5lYXIgYmVoYXZpb3IsIGZvciBleGFtcGxlIG1pc3NpbmcgbW9udGhzCisgICAgICogb3IgZGF5cyBkdXJpbmcgbm9uLWxlYXAgeWVhcnMuICBUaGUgc3ViY2xhc3NlcycgPHR0PmFkZDwvdHQ+IGFuZCA8dHQ+cm9sbDwvdHQ+CisgICAgICogbWV0aG9kcyB3aWxsIHRha2UgdGhpcyBpbnRvIGFjY291bnQsIHdoaWxlIHNpbXBsZSBhcml0aG1ldGljIG1hbmlwdWxhdGlvbnMKKyAgICAgKiBtYXkgZ2l2ZSBpbnZhbGlkIHJlc3VsdHMuCisgICAgICogPHA+CisgICAgICogPGI+U3ViY2xhc3Npbmc6PC9iPjxicj4KKyAgICAgKiBUaGlzIGltcGxlbWVudGF0aW9uIG9mIDxjb2RlPnJvbGw8L2NvZGU+IGFzc3VtZXMgdGhhdCB0aGUgYmVoYXZpb3Igb2YgdGhlCisgICAgICogZmllbGQgaXMgY29udGludW91cyBiZXR3ZWVuIGl0cyBtaW5pbXVtIGFuZCBtYXhpbXVtLCB3aGljaCBhcmUgZm91bmQgYnkKKyAgICAgKiBjYWxsaW5nIHtAbGluayAjZ2V0QWN0dWFsTWluaW11bSBnZXRBY3R1YWxNaW5pbXVtfSBhbmQge0BsaW5rICNnZXRBY3R1YWxNYXhpbXVtIGdldEFjdHVhbE1heGltdW19LgorICAgICAqIEZvciBtb3N0IHN1Y2ggZmllbGRzLCBzaW1wbGUgYWRkaXRpb24sIHN1YnRyYWN0aW9uLCBhbmQgbW9kdWx1cyBvcGVyYXRpb25zCisgICAgICogYXJlIHN1ZmZpY2llbnQgdG8gcGVyZm9ybSB0aGUgcm9sbC4gIEZvciB3ZWVrLXJlbGF0ZWQgZmllbGRzLAorICAgICAqIHRoZSByZXN1bHRzIG9mIHtAbGluayAjZ2V0Rmlyc3REYXlPZldlZWsgZ2V0Rmlyc3REYXlPZldlZWt9IGFuZAorICAgICAqIHtAbGluayAjZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlayBnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrfSBhcmUgYWxzbyBuZWNlc3NhcnkuCisgICAgICogU3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUgdGhlc2UgdHdvIG1ldGhvZHMgaWYgdGhlaXIgdmFsdWVzIGRpZmZlciBmcm9tIHRoZSBkZWZhdWx0cy4KKyAgICAgKiA8cD4KKyAgICAgKiBTdWJjbGFzc2VzIHRoYXQgaGF2ZSBmaWVsZHMgZm9yIHdoaWNoIHRoZSBhc3N1bXB0aW9uIG9mIGNvbnRpbnVpdHkgYnJlYWtzCisgICAgICogZG93biBtdXN0IG92ZXJpZGUgPGNvZGU+cm9sbDwvY29kZT4gdG8gaGFuZGxlIHRob3NlIGZpZWxkcyBzcGVjaWFsbHkuCisgICAgICogRm9yIGV4YW1wbGUsIGluIHRoZSBIZWJyZXcgY2FsZW5kYXIgdGhlIG1vbnRoICJBZGFyIEkiCisgICAgICogb25seSBvY2N1cnMgaW4gbGVhcCB5ZWFyczsgaW4gb3RoZXIgeWVhcnMgdGhlIGNhbGVuZGFyIGp1bXBzIGZyb20KKyAgICAgKiBTaGV2YXQgKG1vbnRoICM0KSB0byBBZGFyIChtb250aCAjNikuICBUaGUgCisgICAgICoge0BsaW5rIEhlYnJld0NhbGVuZGFyI3JvbGwgSGVicmV3Q2FsZW5kYXIucm9sbH0gbWV0aG9kIHRha2VzIHRoaXMgaW50byBhY2NvdW50LAorICAgICAqIHNvIHRoYXQgcm9sbGluZyB0aGUgbW9udGggb2YgU2hldmF0IGJ5IG9uZSBnaXZlcyB0aGUgcHJvcGVyIHJlc3VsdCAoQWRhcikgaW4gYQorICAgICAqIG5vbi1sZWFwIHllYXIuCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGZpZWxkICAgICB0aGUgY2FsZW5kYXIgZmllbGQgdG8gcm9sbC4KKyAgICAgKiBAcGFyYW0gYW1vdW50ICAgIHRoZSBhbW91bnQgYnkgd2hpY2ggdGhlIGZpZWxkIHNob3VsZCBiZSByb2xsZWQuCisgICAgICoKKyAgICAgKiBAZXhjZXB0aW9uICAgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBmaWVsZCBpcyBpbnZhbGlkIG9yIHJlZmVycworICAgICAqICAgICAgICAgICAgICB0byBhIGZpZWxkIHRoYXQgY2Fubm90IGJlIGhhbmRsZWQgYnkgdGhpcyBtZXRob2QuCisgICAgICogQHNlZSAjcm9sbChpbnQsIGJvb2xlYW4pCisgICAgICogQHNlZSAjYWRkCisgICAgICovCisgICAgcHVibGljIHZvaWQgcm9sbChpbnQgZmllbGQsIGludCBhbW91bnQpIHsKKworICAgICAgICBpZiAoYW1vdW50ID09IDApIHsKKyAgICAgICAgICAgIHJldHVybjsgLy8gTm90aGluZyB0byBkbworICAgICAgICB9CisKKyAgICAgICAgY29tcGxldGUoKTsKKworICAgICAgICBzd2l0Y2ggKGZpZWxkKSB7CisgICAgICAgIGNhc2UgREFZX09GX01PTlRIOgorICAgICAgICBjYXNlIEFNX1BNOgorICAgICAgICBjYXNlIE1JTlVURToKKyAgICAgICAgY2FzZSBTRUNPTkQ6CisgICAgICAgIGNhc2UgTUlMTElTRUNPTkQ6CisgICAgICAgIGNhc2UgTUlMTElTRUNPTkRTX0lOX0RBWToKKyAgICAgICAgICAgIC8vIFRoZXNlIGFyZSB0aGUgc3RhbmRhcmQgcm9sbCBpbnN0cnVjdGlvbnMuICBUaGVzZSB3b3JrIGZvciBhbGwKKyAgICAgICAgICAgIC8vIHNpbXBsZSBjYXNlcywgdGhhdCBpcywgY2FzZXMgaW4gd2hpY2ggdGhlIGxpbWl0cyBhcmUgZml4ZWQsIHN1Y2gKKyAgICAgICAgICAgIC8vIGFzIHRoZSBob3VyLCB0aGUgZGF5IG9mIHRoZSBtb250aCwgYW5kIHRoZSBlcmEuCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaW50IG1pbiA9IGdldEFjdHVhbE1pbmltdW0oZmllbGQpOworICAgICAgICAgICAgICAgIGludCBtYXggPSBnZXRBY3R1YWxNYXhpbXVtKGZpZWxkKTsKKyAgICAgICAgICAgICAgICBpbnQgZ2FwID0gbWF4IC0gbWluICsgMTsKKworICAgICAgICAgICAgICAgIGludCB2YWx1ZSA9IGludGVybmFsR2V0KGZpZWxkKSArIGFtb3VudDsKKyAgICAgICAgICAgICAgICB2YWx1ZSA9ICh2YWx1ZSAtIG1pbikgJSBnYXA7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlIDwgMCkgeworICAgICAgICAgICAgICAgICAgICB2YWx1ZSArPSBnYXA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHZhbHVlICs9IG1pbjsKKworICAgICAgICAgICAgICAgIHNldChmaWVsZCwgdmFsdWUpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICBjYXNlIEhPVVI6CisgICAgICAgIGNhc2UgSE9VUl9PRl9EQVk6CisgICAgICAgICAgICAvLyBSb2xsaW5nIHRoZSBob3VyIGlzIGRpZmZpY3VsdCBvbiB0aGUgT05TRVQgYW5kIENFQVNFIGRheXMgb2YKKyAgICAgICAgICAgIC8vIGRheWxpZ2h0IHNhdmluZ3MuICBGb3IgZXhhbXBsZSwgaWYgdGhlIGNoYW5nZSBvY2N1cnMgYXQKKyAgICAgICAgICAgIC8vIDIgQU0sIHdlIGhhdmUgdGhlIGZvbGxvd2luZyBwcm9ncmVzc2lvbjoKKyAgICAgICAgICAgIC8vIE9OU0VUOiAxMiBTdGQgLT4gMSBTdGQgLT4gMyBEc3QgLT4gNCBEc3QKKyAgICAgICAgICAgIC8vIENFQVNFOiAxMiBEc3QgLT4gMSBEc3QgLT4gMSBTdGQgLT4gMiBTdGQKKyAgICAgICAgICAgIC8vIFRvIGdldCBhcm91bmQgdGhpcyBwcm9ibGVtIHdlIGRvbid0IHVzZSBmaWVsZHM7IHdlIG1hbmlwdWxhdGUKKyAgICAgICAgICAgIC8vIHRoZSB0aW1lIGluIG1pbGxpcyBkaXJlY3RseS4KKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBBc3N1bWUgbWluID09IDAgaW4gY2FsY3VsYXRpb25zIGJlbG93CisgICAgICAgICAgICAgICAgbG9uZyBzdGFydCA9IGdldFRpbWVJbk1pbGxpcygpOworICAgICAgICAgICAgICAgIGludCBvbGRIb3VyID0gaW50ZXJuYWxHZXQoZmllbGQpOworICAgICAgICAgICAgICAgIGludCBtYXggPSBnZXRNYXhpbXVtKGZpZWxkKTsKKyAgICAgICAgICAgICAgICBpbnQgbmV3SG91ciA9IChvbGRIb3VyICsgYW1vdW50KSAlIChtYXggKyAxKTsKKyAgICAgICAgICAgICAgICBpZiAobmV3SG91ciA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgbmV3SG91ciArPSBtYXggKyAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzZXRUaW1lSW5NaWxsaXMoc3RhcnQgKyBPTkVfSE9VUiAqIChuZXdIb3VyIC0gb2xkSG91cikpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICBjYXNlIE1PTlRIOgorICAgICAgICAgICAgLy8gUm9sbGluZyB0aGUgbW9udGggaW52b2x2ZXMgYm90aCBwaW5uaW5nIHRoZSBmaW5hbCB2YWx1ZQorICAgICAgICAgICAgLy8gYW5kIGFkanVzdGluZyB0aGUgREFZX09GX01PTlRIIGlmIG5lY2Vzc2FyeS4gIFdlIG9ubHkgYWRqdXN0IHRoZQorICAgICAgICAgICAgLy8gREFZX09GX01PTlRIIGlmLCBhZnRlciB1cGRhdGluZyB0aGUgTU9OVEggZmllbGQsIGl0IGlzIGlsbGVnYWwuCisgICAgICAgICAgICAvLyBFLmcuLCA8amFuMzE+LnJvbGwoTU9OVEgsIDEpIC0+IDxmZWIyOD4gb3IgPGZlYjI5Pi4KKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpbnQgbWF4ID0gZ2V0QWN0dWFsTWF4aW11bShNT05USCk7CisgICAgICAgICAgICAgICAgaW50IG1vbiA9IChpbnRlcm5hbEdldChNT05USCkgKyBhbW91bnQpICUgKG1heCsxKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAobW9uIDwgMCkgeworICAgICAgICAgICAgICAgICAgICBtb24gKz0gKG1heCArIDEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzZXQoTU9OVEgsIG1vbik7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gS2VlcCB0aGUgZGF5IG9mIG1vbnRoIGluIHJhbmdlLiAgV2UgZG9uJ3Qgd2FudCB0byBzcGlsbCBvdmVyCisgICAgICAgICAgICAgICAgLy8gaW50byB0aGUgbmV4dCBtb250aDsgZS5nLiwgd2UgZG9uJ3Qgd2FudCBqYW4zMSArIDEgbW8gLT4gZmViMzEgLT4KKyAgICAgICAgICAgICAgICAvLyBtYXIzLgorICAgICAgICAgICAgICAgIHBpbkZpZWxkKERBWV9PRl9NT05USCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgIGNhc2UgWUVBUjoKKyAgICAgICAgY2FzZSBZRUFSX1dPWToKKyAgICAgICAgY2FzZSBFWFRFTkRFRF9ZRUFSOgorICAgICAgICAgICAgLy8gUm9sbGluZyB0aGUgeWVhciBjYW4gaW52b2x2ZSBwaW5uaW5nIHRoZSBEQVlfT0ZfTU9OVEguCisgICAgICAgICAgICBzZXQoZmllbGQsIGludGVybmFsR2V0KGZpZWxkKSArIGFtb3VudCk7CisgICAgICAgICAgICBwaW5GaWVsZChNT05USCk7CisgICAgICAgICAgICBwaW5GaWVsZChEQVlfT0ZfTU9OVEgpOworICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGNhc2UgV0VFS19PRl9NT05USDoKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHRyaWNreSwgYmVjYXVzZSBkdXJpbmcgdGhlIHJvbGwgd2UgbWF5IGhhdmUgdG8gc2hpZnQKKyAgICAgICAgICAgICAgICAvLyB0byBhIGRpZmZlcmVudCBkYXkgb2YgdGhlIHdlZWsuICBGb3IgZXhhbXBsZToKKworICAgICAgICAgICAgICAgIC8vICAgIHMgIG0gIHQgIHcgIHIgIGYgIHMKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgICAxICAyICAzICA0ICA1CisgICAgICAgICAgICAgICAgLy8gICAgNiAgNyAgOCAgOSAxMCAxMSAxMgorCisgICAgICAgICAgICAgICAgLy8gV2hlbiByb2xsaW5nIGZyb20gdGhlIDZ0aCBvciA3dGggYmFjayBvbmUgd2Vlaywgd2UgZ28gdG8gdGhlCisgICAgICAgICAgICAgICAgLy8gMXN0IChhc3N1bWluZyB0aGF0IHRoZSBmaXJzdCBwYXJ0aWFsIHdlZWsgY291bnRzKS4gIFRoZSBzYW1lCisgICAgICAgICAgICAgICAgLy8gdGhpbmcgaGFwcGVucyBhdCB0aGUgZW5kIG9mIHRoZSBtb250aC4KKworICAgICAgICAgICAgICAgIC8vIFRoZSBvdGhlciB0cmlja3kgdGhpbmcgaXMgdGhhdCB3ZSBoYXZlIHRvIGZpZ3VyZSBvdXQgd2hldGhlcgorICAgICAgICAgICAgICAgIC8vIHRoZSBmaXJzdCBwYXJ0aWFsIHdlZWsgYWN0dWFsbHkgY291bnRzIG9yIG5vdCwgYmFzZWQgb24gdGhlCisgICAgICAgICAgICAgICAgLy8gbWluaW1hbCBmaXJzdCBkYXlzIGluIHRoZSB3ZWVrLiAgQW5kIHdlIGhhdmUgdG8gdXNlIHRoZQorICAgICAgICAgICAgICAgIC8vIGNvcnJlY3QgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrIHRvIGRlbGluZWF0ZSB0aGUgd2VlaworICAgICAgICAgICAgICAgIC8vIGJvdW5kYXJpZXMuCisKKyAgICAgICAgICAgICAgICAvLyBIZXJlJ3Mgb3VyIGFsZ29yaXRobS4gIEZpcnN0LCB3ZSBmaW5kIHRoZSByZWFsIGJvdW5kYXJpZXMgb2YKKyAgICAgICAgICAgICAgICAvLyB0aGUgbW9udGguICBUaGVuIHdlIGRpc2NhcmQgdGhlIGZpcnN0IHBhcnRpYWwgd2VlayBpZiBpdAorICAgICAgICAgICAgICAgIC8vIGRvZXNuJ3QgY291bnQgaW4gdGhpcyBsb2NhbGUuICBUaGVuIHdlIGZpbGwgaW4gdGhlIGVuZHMgd2l0aAorICAgICAgICAgICAgICAgIC8vIHBoYW50b20gZGF5cywgc28gdGhhdCB0aGUgZmlyc3QgcGFydGlhbCB3ZWVrIGFuZCB0aGUgbGFzdAorICAgICAgICAgICAgICAgIC8vIHBhcnRpYWwgd2VlayBhcmUgZnVsbCB3ZWVrcy4gIFdlIHRoZW4gaGF2ZSBhIG5pY2Ugc3F1YXJlCisgICAgICAgICAgICAgICAgLy8gYmxvY2sgb2Ygd2Vla3MuICBXZSBkbyB0aGUgdXN1YWwgcm9sbGluZyB3aXRoaW4gdGhpcyBibG9jaywKKyAgICAgICAgICAgICAgICAvLyBhcyBpcyBkb25lIGVsc2V3aGVyZSBpbiB0aGlzIG1ldGhvZC4gIElmIHdlIHdpbmQgdXAgb24gb25lIG9mCisgICAgICAgICAgICAgICAgLy8gdGhlIHBoYW50b20gZGF5cyB0aGF0IHdlIGFkZGVkLCB3ZSByZWNvZ25pemUgdGhpcyBhbmQgcGluIHRvCisgICAgICAgICAgICAgICAgLy8gdGhlIGZpcnN0IG9yIHRoZSBsYXN0IGRheSBvZiB0aGUgbW9udGguICBFYXN5LCBlaD8KKworICAgICAgICAgICAgICAgIC8vIE5vcm1hbGl6ZSB0aGUgREFZX09GX1dFRUsgc28gdGhhdCAwIGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsKKyAgICAgICAgICAgICAgICAvLyBpbiB0aGlzIGxvY2FsZS4gIFdlIGhhdmUgZG93IGluIDAuLjYuCisgICAgICAgICAgICAgICAgaW50IGRvdyA9IGludGVybmFsR2V0KERBWV9PRl9XRUVLKSAtIGdldEZpcnN0RGF5T2ZXZWVrKCk7CisgICAgICAgICAgICAgICAgaWYgKGRvdyA8IDApIGRvdyArPSA3OworCisgICAgICAgICAgICAgICAgLy8gRmluZCB0aGUgZGF5IG9mIHRoZSB3ZWVrIChub3JtYWxpemVkIGZvciBsb2NhbGUpIGZvciB0aGUgZmlyc3QKKyAgICAgICAgICAgICAgICAvLyBvZiB0aGUgbW9udGguCisgICAgICAgICAgICAgICAgaW50IGZkbSA9IChkb3cgLSBpbnRlcm5hbEdldChEQVlfT0ZfTU9OVEgpICsgMSkgJSA3OworICAgICAgICAgICAgICAgIGlmIChmZG0gPCAwKSBmZG0gKz0gNzsKKworICAgICAgICAgICAgICAgIC8vIEdldCB0aGUgZmlyc3QgZGF5IG9mIHRoZSBmaXJzdCBmdWxsIHdlZWsgb2YgdGhlIG1vbnRoLAorICAgICAgICAgICAgICAgIC8vIGluY2x1ZGluZyBwaGFudG9tIGRheXMsIGlmIGFueS4gIEZpZ3VyZSBvdXQgaWYgdGhlIGZpcnN0IHdlZWsKKyAgICAgICAgICAgICAgICAvLyBjb3VudHMgb3Igbm90OyBpZiBpdCBjb3VudHMsIHRoZW4gZmlsbCBpbiBwaGFudG9tIGRheXMuICBJZgorICAgICAgICAgICAgICAgIC8vIG5vdCwgYWR2YW5jZSB0byB0aGUgZmlyc3QgcmVhbCBmdWxsIHdlZWsgKHNraXAgdGhlIHBhcnRpYWwgd2VlaykuCisgICAgICAgICAgICAgICAgaW50IHN0YXJ0OworICAgICAgICAgICAgICAgIGlmICgoNyAtIGZkbSkgPCBnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCkpCisgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gOCAtIGZkbTsgLy8gU2tpcCB0aGUgZmlyc3QgcGFydGlhbCB3ZWVrCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBzdGFydCA9IDEgLSBmZG07IC8vIFRoaXMgbWF5IGJlIHplcm8gb3IgbmVnYXRpdmUKKworICAgICAgICAgICAgICAgIC8vIEdldCB0aGUgZGF5IG9mIHRoZSB3ZWVrIChub3JtYWxpemVkIGZvciBsb2NhbGUpIGZvciB0aGUgbGFzdAorICAgICAgICAgICAgICAgIC8vIGRheSBvZiB0aGUgbW9udGguCisgICAgICAgICAgICAgICAgaW50IG1vbnRoTGVuID0gZ2V0QWN0dWFsTWF4aW11bShEQVlfT0ZfTU9OVEgpOworICAgICAgICAgICAgICAgIGludCBsZG0gPSAobW9udGhMZW4gLSBpbnRlcm5hbEdldChEQVlfT0ZfTU9OVEgpICsgZG93KSAlIDc7CisgICAgICAgICAgICAgICAgLy8gV2Uga25vdyBtb250aExlbiA+PSBEQVlfT0ZfTU9OVEggc28gd2Ugc2tpcCB0aGUgKz0gNyBzdGVwIGhlcmUuCisKKyAgICAgICAgICAgICAgICAvLyBHZXQgdGhlIGxpbWl0IGRheSBmb3IgdGhlIGJsb2NrZWQtb2ZmIHJlY3Rhbmd1bGFyIG1vbnRoOyB0aGF0CisgICAgICAgICAgICAgICAgLy8gaXMsIHRoZSBkYXkgd2hpY2ggaXMgb25lIHBhc3QgdGhlIGxhc3QgZGF5IG9mIHRoZSBtb250aCwKKyAgICAgICAgICAgICAgICAvLyBhZnRlciB0aGUgbW9udGggaGFzIGFscmVhZHkgYmVlbiBmaWxsZWQgaW4gd2l0aCBwaGFudG9tIGRheXMKKyAgICAgICAgICAgICAgICAvLyB0byBmaWxsIG91dCB0aGUgbGFzdCB3ZWVrLiAgVGhpcyBkYXkgaGFzIGEgbm9ybWFsaXplZCBET1cgb2YgMC4KKyAgICAgICAgICAgICAgICBpbnQgbGltaXQgPSBtb250aExlbiArIDcgLSBsZG07CisKKyAgICAgICAgICAgICAgICAvLyBOb3cgcm9sbCBiZXR3ZWVuIHN0YXJ0IGFuZCAobGltaXQgLSAxKS4KKyAgICAgICAgICAgICAgICBpbnQgZ2FwID0gbGltaXQgLSBzdGFydDsKKyAgICAgICAgICAgICAgICBpbnQgZGF5X29mX21vbnRoID0gKGludGVybmFsR2V0KERBWV9PRl9NT05USCkgKyBhbW91bnQqNyAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCkgJSBnYXA7CisgICAgICAgICAgICAgICAgaWYgKGRheV9vZl9tb250aCA8IDApIGRheV9vZl9tb250aCArPSBnYXA7CisgICAgICAgICAgICAgICAgZGF5X29mX21vbnRoICs9IHN0YXJ0OworCisgICAgICAgICAgICAgICAgLy8gRmluYWxseSwgcGluIHRvIHRoZSByZWFsIHN0YXJ0IGFuZCBlbmQgb2YgdGhlIG1vbnRoLgorICAgICAgICAgICAgICAgIGlmIChkYXlfb2ZfbW9udGggPCAxKSBkYXlfb2ZfbW9udGggPSAxOworICAgICAgICAgICAgICAgIGlmIChkYXlfb2ZfbW9udGggPiBtb250aExlbikgZGF5X29mX21vbnRoID0gbW9udGhMZW47CisKKyAgICAgICAgICAgICAgICAvLyBTZXQgdGhlIERBWV9PRl9NT05USC4gIFdlIHJlbHkgb24gdGhlIGZhY3QgdGhhdCB0aGlzIGZpZWxkCisgICAgICAgICAgICAgICAgLy8gdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGV2ZXJ5dGhpbmcgZWxzZSAoc2luY2UgYWxsIG90aGVyIGZpZWxkcworICAgICAgICAgICAgICAgIC8vIGFyZSBhbHNvIHNldCBhdCB0aGlzIHBvaW50KS4gIElmIHRoaXMgZmFjdCBjaGFuZ2VzIChpZiB0aGUKKyAgICAgICAgICAgICAgICAvLyBkaXNhbWJpZ3VhdGlvbiBhbGdvcml0aG0gY2hhbmdlcykgdGhlbiB3ZSB3aWxsIGhhdmUgdG8gdW5zZXQKKyAgICAgICAgICAgICAgICAvLyB0aGUgYXBwcm9wcmlhdGUgZmllbGRzIGhlcmUgc28gdGhhdCBEQVlfT0ZfTU9OVEggaXMgYXR0ZW5kZWQKKyAgICAgICAgICAgICAgICAvLyB0by4KKyAgICAgICAgICAgICAgICBzZXQoREFZX09GX01PTlRILCBkYXlfb2ZfbW9udGgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSBXRUVLX09GX1lFQVI6CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gVGhpcyBmb2xsb3dzIHRoZSBvdXRsaW5lIG9mIFdFRUtfT0ZfTU9OVEgsIGV4Y2VwdCBpdCBhcHBsaWVzCisgICAgICAgICAgICAgICAgLy8gdG8gdGhlIHdob2xlIHllYXIuICBQbGVhc2Ugc2VlIHRoZSBjb21tZW50IGZvciBXRUVLX09GX01PTlRICisgICAgICAgICAgICAgICAgLy8gZm9yIGdlbmVyYWwgbm90ZXMuCisKKyAgICAgICAgICAgICAgICAvLyBOb3JtYWxpemUgdGhlIERBWV9PRl9XRUVLIHNvIHRoYXQgMCBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrCisgICAgICAgICAgICAgICAgLy8gaW4gdGhpcyBsb2NhbGUuICBXZSBoYXZlIGRvdyBpbiAwLi42LgorICAgICAgICAgICAgICAgIGludCBkb3cgPSBpbnRlcm5hbEdldChEQVlfT0ZfV0VFSykgLSBnZXRGaXJzdERheU9mV2VlaygpOworICAgICAgICAgICAgICAgIGlmIChkb3cgPCAwKSBkb3cgKz0gNzsKKworICAgICAgICAgICAgICAgIC8vIEZpbmQgdGhlIGRheSBvZiB0aGUgd2VlayAobm9ybWFsaXplZCBmb3IgbG9jYWxlKSBmb3IgdGhlIGZpcnN0CisgICAgICAgICAgICAgICAgLy8gb2YgdGhlIHllYXIuCisgICAgICAgICAgICAgICAgaW50IGZkeSA9IChkb3cgLSBpbnRlcm5hbEdldChEQVlfT0ZfWUVBUikgKyAxKSAlIDc7CisgICAgICAgICAgICAgICAgaWYgKGZkeSA8IDApIGZkeSArPSA3OworCisgICAgICAgICAgICAgICAgLy8gR2V0IHRoZSBmaXJzdCBkYXkgb2YgdGhlIGZpcnN0IGZ1bGwgd2VlayBvZiB0aGUgeWVhciwKKyAgICAgICAgICAgICAgICAvLyBpbmNsdWRpbmcgcGhhbnRvbSBkYXlzLCBpZiBhbnkuICBGaWd1cmUgb3V0IGlmIHRoZSBmaXJzdCB3ZWVrCisgICAgICAgICAgICAgICAgLy8gY291bnRzIG9yIG5vdDsgaWYgaXQgY291bnRzLCB0aGVuIGZpbGwgaW4gcGhhbnRvbSBkYXlzLiAgSWYKKyAgICAgICAgICAgICAgICAvLyBub3QsIGFkdmFuY2UgdG8gdGhlIGZpcnN0IHJlYWwgZnVsbCB3ZWVrIChza2lwIHRoZSBwYXJ0aWFsIHdlZWspLgorICAgICAgICAgICAgICAgIGludCBzdGFydDsKKyAgICAgICAgICAgICAgICBpZiAoKDcgLSBmZHkpIDwgZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpKQorICAgICAgICAgICAgICAgICAgICBzdGFydCA9IDggLSBmZHk7IC8vIFNraXAgdGhlIGZpcnN0IHBhcnRpYWwgd2VlaworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSAxIC0gZmR5OyAvLyBUaGlzIG1heSBiZSB6ZXJvIG9yIG5lZ2F0aXZlCisKKyAgICAgICAgICAgICAgICAvLyBHZXQgdGhlIGRheSBvZiB0aGUgd2VlayAobm9ybWFsaXplZCBmb3IgbG9jYWxlKSBmb3IgdGhlIGxhc3QKKyAgICAgICAgICAgICAgICAvLyBkYXkgb2YgdGhlIHllYXIuCisgICAgICAgICAgICAgICAgaW50IHllYXJMZW4gPSBnZXRBY3R1YWxNYXhpbXVtKERBWV9PRl9ZRUFSKTsKKyAgICAgICAgICAgICAgICBpbnQgbGR5ID0gKHllYXJMZW4gLSBpbnRlcm5hbEdldChEQVlfT0ZfWUVBUikgKyBkb3cpICUgNzsKKyAgICAgICAgICAgICAgICAvLyBXZSBrbm93IHllYXJMZW4gPj0gREFZX09GX1lFQVIgc28gd2Ugc2tpcCB0aGUgKz0gNyBzdGVwIGhlcmUuCisKKyAgICAgICAgICAgICAgICAvLyBHZXQgdGhlIGxpbWl0IGRheSBmb3IgdGhlIGJsb2NrZWQtb2ZmIHJlY3Rhbmd1bGFyIHllYXI7IHRoYXQKKyAgICAgICAgICAgICAgICAvLyBpcywgdGhlIGRheSB3aGljaCBpcyBvbmUgcGFzdCB0aGUgbGFzdCBkYXkgb2YgdGhlIHllYXIsCisgICAgICAgICAgICAgICAgLy8gYWZ0ZXIgdGhlIHllYXIgaGFzIGFscmVhZHkgYmVlbiBmaWxsZWQgaW4gd2l0aCBwaGFudG9tIGRheXMKKyAgICAgICAgICAgICAgICAvLyB0byBmaWxsIG91dCB0aGUgbGFzdCB3ZWVrLiAgVGhpcyBkYXkgaGFzIGEgbm9ybWFsaXplZCBET1cgb2YgMC4KKyAgICAgICAgICAgICAgICBpbnQgbGltaXQgPSB5ZWFyTGVuICsgNyAtIGxkeTsKKworICAgICAgICAgICAgICAgIC8vIE5vdyByb2xsIGJldHdlZW4gc3RhcnQgYW5kIChsaW1pdCAtIDEpLgorICAgICAgICAgICAgICAgIGludCBnYXAgPSBsaW1pdCAtIHN0YXJ0OworICAgICAgICAgICAgICAgIGludCBkYXlfb2ZfeWVhciA9IChpbnRlcm5hbEdldChEQVlfT0ZfWUVBUikgKyBhbW91bnQqNyAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCkgJSBnYXA7CisgICAgICAgICAgICAgICAgaWYgKGRheV9vZl95ZWFyIDwgMCkgZGF5X29mX3llYXIgKz0gZ2FwOworICAgICAgICAgICAgICAgIGRheV9vZl95ZWFyICs9IHN0YXJ0OworCisgICAgICAgICAgICAgICAgLy8gRmluYWxseSwgcGluIHRvIHRoZSByZWFsIHN0YXJ0IGFuZCBlbmQgb2YgdGhlIG1vbnRoLgorICAgICAgICAgICAgICAgIGlmIChkYXlfb2ZfeWVhciA8IDEpIGRheV9vZl95ZWFyID0gMTsKKyAgICAgICAgICAgICAgICBpZiAoZGF5X29mX3llYXIgPiB5ZWFyTGVuKSBkYXlfb2ZfeWVhciA9IHllYXJMZW47CisKKyAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUgeWVhciBhbmQgZGF5IG9mIHllYXIgYXJlIGF0dGVuZGVkIHRvIGJ5CisgICAgICAgICAgICAgICAgLy8gY2xlYXJpbmcgb3RoZXIgZmllbGRzIHdoaWNoIHdvdWxkIG5vcm1hbGx5IHRha2UgcHJlY2VkZW5jZS4KKyAgICAgICAgICAgICAgICAvLyBJZiB0aGUgZGlzYW1iaWd1YXRpb24gYWxnb3JpdGhtIGlzIGNoYW5nZWQsIHRoaXMgc2VjdGlvbiB3aWxsCisgICAgICAgICAgICAgICAgLy8gaGF2ZSB0byBiZSB1cGRhdGVkIGFzIHdlbGwuCisgICAgICAgICAgICAgICAgc2V0KERBWV9PRl9ZRUFSLCBkYXlfb2ZfeWVhcik7CisgICAgICAgICAgICAgICAgY2xlYXIoTU9OVEgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSBEQVlfT0ZfWUVBUjoKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBSb2xsIHRoZSBkYXkgb2YgeWVhciB1c2luZyBtaWxsaXMuICBDb21wdXRlIHRoZSBtaWxsaXMgZm9yCisgICAgICAgICAgICAgICAgLy8gdGhlIHN0YXJ0IG9mIHRoZSB5ZWFyLCBhbmQgZ2V0IHRoZSBsZW5ndGggb2YgdGhlIHllYXIuCisgICAgICAgICAgICAgICAgbG9uZyBkZWx0YSA9IGFtb3VudCAqIE9ORV9EQVk7IC8vIFNjYWxlIHVwIGZyb20gZGF5cyB0byBtaWxsaXMKKyAgICAgICAgICAgICAgICBsb25nIG1pbjIgPSB0aW1lIC0gKGludGVybmFsR2V0KERBWV9PRl9ZRUFSKSAtIDEpICogT05FX0RBWTsKKyAgICAgICAgICAgICAgICBpbnQgeWVhckxlbmd0aCA9IGdldEFjdHVhbE1heGltdW0oREFZX09GX1lFQVIpOworICAgICAgICAgICAgICAgIHRpbWUgPSAodGltZSArIGRlbHRhIC0gbWluMikgJSAoeWVhckxlbmd0aCpPTkVfREFZKTsKKyAgICAgICAgICAgICAgICBpZiAodGltZSA8IDApIHRpbWUgKz0geWVhckxlbmd0aCpPTkVfREFZOworICAgICAgICAgICAgICAgIHNldFRpbWVJbk1pbGxpcyh0aW1lICsgbWluMik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICBjYXNlIERBWV9PRl9XRUVLOgorICAgICAgICBjYXNlIERPV19MT0NBTDoKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBSb2xsIHRoZSBkYXkgb2Ygd2VlayB1c2luZyBtaWxsaXMuICBDb21wdXRlIHRoZSBtaWxsaXMgZm9yCisgICAgICAgICAgICAgICAgLy8gdGhlIHN0YXJ0IG9mIHRoZSB3ZWVrLCB1c2luZyB0aGUgZmlyc3QgZGF5IG9mIHdlZWsgc2V0dGluZy4KKyAgICAgICAgICAgICAgICAvLyBSZXN0cmljdCB0aGUgbWlsbGlzIHRvIFtzdGFydCwgc3RhcnQrN2RheXMpLgorICAgICAgICAgICAgICAgIGxvbmcgZGVsdGEgPSBhbW91bnQgKiBPTkVfREFZOyAvLyBTY2FsZSB1cCBmcm9tIGRheXMgdG8gbWlsbGlzCisgICAgICAgICAgICAgICAgLy8gQ29tcHV0ZSB0aGUgbnVtYmVyIG9mIGRheXMgYmVmb3JlIHRoZSBjdXJyZW50IGRheSBpbiB0aGlzCisgICAgICAgICAgICAgICAgLy8gd2Vlay4gIFRoaXMgd2lsbCBiZSBhIHZhbHVlIDAuLjYuCisgICAgICAgICAgICAgICAgaW50IGxlYWREYXlzID0gaW50ZXJuYWxHZXQoZmllbGQpOworICAgICAgICAgICAgICAgIGxlYWREYXlzIC09IChmaWVsZCA9PSBEQVlfT0ZfV0VFSykgPyBnZXRGaXJzdERheU9mV2VlaygpIDogMTsKKyAgICAgICAgICAgICAgICBpZiAobGVhZERheXMgPCAwKSBsZWFkRGF5cyArPSA3OworICAgICAgICAgICAgICAgIGxvbmcgbWluMiA9IHRpbWUgLSBsZWFkRGF5cyAqIE9ORV9EQVk7CisgICAgICAgICAgICAgICAgdGltZSA9ICh0aW1lICsgZGVsdGEgLSBtaW4yKSAlIE9ORV9XRUVLOworICAgICAgICAgICAgICAgIGlmICh0aW1lIDwgMCkgdGltZSArPSBPTkVfV0VFSzsKKyAgICAgICAgICAgICAgICBzZXRUaW1lSW5NaWxsaXModGltZSArIG1pbjIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSBEQVlfT0ZfV0VFS19JTl9NT05USDoKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBSb2xsIHRoZSBkYXkgb2Ygd2VlayBpbiB0aGUgbW9udGggdXNpbmcgbWlsbGlzLiAgRGV0ZXJtaW5lCisgICAgICAgICAgICAgICAgLy8gdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlayBpbiB0aGUgbW9udGgsIGFuZCB0aGVuIHRoZSBsYXN0LAorICAgICAgICAgICAgICAgIC8vIGFuZCB0aGVuIHJvbGwgd2l0aGluIHRoYXQgcmFuZ2UuCisgICAgICAgICAgICAgICAgbG9uZyBkZWx0YSA9IGFtb3VudCAqIE9ORV9XRUVLOyAvLyBTY2FsZSB1cCBmcm9tIHdlZWtzIHRvIG1pbGxpcworICAgICAgICAgICAgICAgIC8vIEZpbmQgdGhlIG51bWJlciBvZiBzYW1lIGRheXMgb2YgdGhlIHdlZWsgYmVmb3JlIHRoaXMgb25lCisgICAgICAgICAgICAgICAgLy8gaW4gdGhpcyBtb250aC4KKyAgICAgICAgICAgICAgICBpbnQgcHJlV2Vla3MgPSAoaW50ZXJuYWxHZXQoREFZX09GX01PTlRIKSAtIDEpIC8gNzsKKyAgICAgICAgICAgICAgICAvLyBGaW5kIHRoZSBudW1iZXIgb2Ygc2FtZSBkYXlzIG9mIHRoZSB3ZWVrIGFmdGVyIHRoaXMgb25lCisgICAgICAgICAgICAgICAgLy8gaW4gdGhpcyBtb250aC4KKyAgICAgICAgICAgICAgICBpbnQgcG9zdFdlZWtzID0gKGdldEFjdHVhbE1heGltdW0oREFZX09GX01PTlRIKSAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbEdldChEQVlfT0ZfTU9OVEgpKSAvIDc7CisgICAgICAgICAgICAgICAgLy8gRnJvbSB0aGVzZSBjb21wdXRlIHRoZSBtaW4gYW5kIGdhcCBtaWxsaXMgZm9yIHJvbGxpbmcuCisgICAgICAgICAgICAgICAgbG9uZyBtaW4yID0gdGltZSAtIHByZVdlZWtzICogT05FX1dFRUs7CisgICAgICAgICAgICAgICAgbG9uZyBnYXAyID0gT05FX1dFRUsgKiAocHJlV2Vla3MgKyBwb3N0V2Vla3MgKyAxKTsgLy8gTXVzdCBhZGQgMSEKKyAgICAgICAgICAgICAgICAvLyBSb2xsIHdpdGhpbiB0aGlzIHJhbmdlCisgICAgICAgICAgICAgICAgdGltZSA9ICh0aW1lICsgZGVsdGEgLSBtaW4yKSAlIGdhcDI7CisgICAgICAgICAgICAgICAgaWYgKHRpbWUgPCAwKSB0aW1lICs9IGdhcDI7CisgICAgICAgICAgICAgICAgc2V0VGltZUluTWlsbGlzKHRpbWUgKyBtaW4yKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIGNhc2UgSlVMSUFOX0RBWToKKyAgICAgICAgICAgIHNldChmaWVsZCwgaW50ZXJuYWxHZXQoZmllbGQpICsgYW1vdW50KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIC8vIE90aGVyIGZpZWxkcyBjYW5ub3QgYmUgcm9sbGVkIGJ5IHRoaXMgbWV0aG9kCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJDYWxlbmRhci5yb2xsKCIgKyBmaWVsZE5hbWUoZmllbGQpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIikgbm90IHN1cHBvcnRlZCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEFkZCBhIHNpZ25lZCBhbW91bnQgdG8gYSBzcGVjaWZpZWQgZmllbGQsIHVzaW5nIHRoaXMgY2FsZW5kYXIncyBydWxlcy4KKyAgICAgKiBGb3IgZXhhbXBsZSwgdG8gYWRkIHRocmVlIGRheXMgdG8gdGhlIGN1cnJlbnQgZGF0ZSwgeW91IGNhbiBjYWxsCisgICAgICogPGNvZGU+YWRkKENhbGVuZGFyLkRBVEUsIDMpPC9jb2RlPi4gCisgICAgICogPHA+CisgICAgICogV2hlbiBhZGRpbmcgdG8gY2VydGFpbiBmaWVsZHMsIHRoZSB2YWx1ZXMgb2Ygb3RoZXIgZmllbGRzIG1heSBjb25mbGljdCBhbmQKKyAgICAgKiBuZWVkIHRvIGJlIGNoYW5nZWQuICBGb3IgZXhhbXBsZSwgd2hlbiBhZGRpbmcgb25lIHRvIHRoZSB7QGxpbmsgI01PTlRIIE1PTlRIfSBmaWVsZAorICAgICAqIGZvciB0aGUgR3JlZ29yaWFuIGRhdGUgMS8zMS85NiwgdGhlIHtAbGluayAjREFZX09GX01PTlRIIERBWV9PRl9NT05USH0gZmllbGQKKyAgICAgKiBtdXN0IGJlIGFkanVzdGVkIHNvIHRoYXQgdGhlIHJlc3VsdCBpcyAyLzI5Lzk2IHJhdGhlciB0aGFuIHRoZSBpbnZhbGlkCisgICAgICogMi8zMS85Ni4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgPGNvZGU+Y29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjwvY29kZT4gaW1wbGVtZW50YXRpb24gb2YgdGhpcyBtZXRob2QgaXMgYWJsZSB0byBhZGQgdG8KKyAgICAgKiBhbGwgZmllbGRzIGV4Y2VwdCBmb3Ige0BsaW5rICNFUkEgRVJBfSwge0BsaW5rICNEU1RfT0ZGU0VUIERTVF9PRkZTRVR9LAorICAgICAqIGFuZCB7QGxpbmsgI1pPTkVfT0ZGU0VUIFpPTkVfT0ZGU0VUfS4gIFN1YmNsYXNzZXMgbWF5LCBvZiBjb3Vyc2UsIGFkZCBzdXBwb3J0IGZvcgorICAgICAqIGFkZGl0aW9uYWwgZmllbGRzIGluIHRoZWlyIG92ZXJyaWRlcyBvZiA8Y29kZT5hZGQ8L2NvZGU+LgorICAgICAqIDxwPgorICAgICAqIDxiPk5vdGU6PC9iPiBZb3Ugc2hvdWxkIGFsd2F5cyB1c2UgPHR0PnJvbGw8L3R0PiBhbmQgPHR0PmFkZDwvdHQ+IHJhdGhlcgorICAgICAqIHRoYW4gYXR0ZW1wdGluZyB0byBwZXJmb3JtIGFyaXRobWV0aWMgb3BlcmF0aW9ucyBkaXJlY3RseSBvbiB0aGUgZmllbGRzCisgICAgICogb2YgYSA8dHQ+Q2FsZW5kYXI8L3R0Pi4gIEl0IGlzIHF1aXRlIHBvc3NpYmxlIGZvciA8dHQ+Q2FsZW5kYXI8L3R0PiBzdWJjbGFzc2VzCisgICAgICogdG8gaGF2ZSBmaWVsZHMgd2l0aCBub24tbGluZWFyIGJlaGF2aW9yLCBmb3IgZXhhbXBsZSBtaXNzaW5nIG1vbnRocworICAgICAqIG9yIGRheXMgZHVyaW5nIG5vbi1sZWFwIHllYXJzLiAgVGhlIHN1YmNsYXNzZXMnIDx0dD5hZGQ8L3R0PiBhbmQgPHR0PnJvbGw8L3R0PgorICAgICAqIG1ldGhvZHMgd2lsbCB0YWtlIHRoaXMgaW50byBhY2NvdW50LCB3aGlsZSBzaW1wbGUgYXJpdGhtZXRpYyBtYW5pcHVsYXRpb25zCisgICAgICogbWF5IGdpdmUgaW52YWxpZCByZXN1bHRzLgorICAgICAqIDxwPgorICAgICAqIDxiPlN1YmNsYXNzaW5nOjwvYj48YnI+CisgICAgICogVGhpcyBpbXBsZW1lbnRhdGlvbiBvZiA8Y29kZT5hZGQ8L2NvZGU+IGFzc3VtZXMgdGhhdCB0aGUgYmVoYXZpb3Igb2YgdGhlCisgICAgICogZmllbGQgaXMgY29udGludW91cyBiZXR3ZWVuIGl0cyBtaW5pbXVtIGFuZCBtYXhpbXVtLCB3aGljaCBhcmUgZm91bmQgYnkKKyAgICAgKiBjYWxsaW5nIHtAbGluayAjZ2V0QWN0dWFsTWluaW11bSBnZXRBY3R1YWxNaW5pbXVtfSBhbmQKKyAgICAgKiB7QGxpbmsgI2dldEFjdHVhbE1heGltdW0gZ2V0QWN0dWFsTWF4aW11bX0uCisgICAgICogRm9yIHN1Y2ggZmllbGRzLCBzaW1wbGUgYXJpdGhtZXRpYyBvcGVyYXRpb25zIGFyZSBzdWZmaWNpZW50IHRvCisgICAgICogcGVyZm9ybSB0aGUgYWRkLgorICAgICAqIDxwPgorICAgICAqIFN1YmNsYXNzZXMgdGhhdCBoYXZlIGZpZWxkcyBmb3Igd2hpY2ggdGhpcyBhc3N1bXB0aW9uIG9mIGNvbnRpbnVpdHkgYnJlYWtzCisgICAgICogZG93biBtdXN0IG92ZXJpZGUgPGNvZGU+YWRkPC9jb2RlPiB0byBoYW5kbGUgdGhvc2UgZmllbGRzIHNwZWNpYWxseS4KKyAgICAgKiBGb3IgZXhhbXBsZSwgaW4gdGhlIEhlYnJldyBjYWxlbmRhciB0aGUgbW9udGggIkFkYXIgSSIKKyAgICAgKiBvbmx5IG9jY3VycyBpbiBsZWFwIHllYXJzOyBpbiBvdGhlciB5ZWFycyB0aGUgY2FsZW5kYXIganVtcHMgZnJvbQorICAgICAqIFNoZXZhdCAobW9udGggIzQpIHRvIEFkYXIgKG1vbnRoICM2KS4gIFRoZSAKKyAgICAgKiB7QGxpbmsgSGVicmV3Q2FsZW5kYXIjYWRkIEhlYnJld0NhbGVuZGFyLmFkZH0gbWV0aG9kIHRha2VzIHRoaXMgaW50byBhY2NvdW50LAorICAgICAqIHNvIHRoYXQgYWRkaW5nIG9uZSBtb250aAorICAgICAqIHRvIGEgZGF0ZSBpbiBTaGV2YXQgZ2l2ZXMgdGhlIHByb3BlciByZXN1bHQgKEFkYXIpIGluIGEgbm9uLWxlYXAgeWVhci4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gZmllbGQgICAgIHRoZSB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBhbW91bnQgICAgdGhlIGFtb3VudCB0byBhZGQgdG8gdGhlIGZpZWxkLgorICAgICAqCisgICAgICogQGV4Y2VwdGlvbiAgIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgZmllbGQgaXMgaW52YWxpZCBvciByZWZlcnMKKyAgICAgKiAgICAgICAgICAgICAgdG8gYSBmaWVsZCB0aGF0IGNhbm5vdCBiZSBoYW5kbGVkIGJ5IHRoaXMgbWV0aG9kLgorICAgICAqIEBzZWUgI3JvbGwoaW50LCBpbnQpCisgICAgICovCisgICAgcHVibGljIHZvaWQgYWRkKGludCBmaWVsZCwgaW50IGFtb3VudCkgeworCisgICAgICAgIGlmIChhbW91bnQgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuOyAgIC8vIERvIG5vdGhpbmchCisgICAgICAgIH0KKworICAgICAgICAvLyBXZSBoYW5kbGUgbW9zdCBmaWVsZHMgaW4gdGhlIHNhbWUgd2F5LiAgVGhlIGFsZ29yaXRobSBpcyB0byBhZGQKKyAgICAgICAgLy8gYSBjb21wdXRlZCBhbW91bnQgb2YgbWlsbGlzIHRvIHRoZSBjdXJyZW50IG1pbGxpcy4gIFRoZSBvbmx5CisgICAgICAgIC8vIHdyaW5rbGUgaXMgd2l0aCBEU1QgLS0gZm9yIHNvbWUgZmllbGRzLCBsaWtlIHRoZSBEQVlfT0ZfTU9OVEgsCisgICAgICAgIC8vIHdlIGRvbid0IHdhbnQgdGhlIEhPVVIgdG8gc2hpZnQgZHVlIHRvIGNoYW5nZXMgaW4gRFNULiAgSWYgdGhlCisgICAgICAgIC8vIHJlc3VsdCBvZiB0aGUgYWRkIG9wZXJhdGlvbiBpcyB0byBtb3ZlIGZyb20gRFNUIHRvIFN0YW5kYXJkLCBvcgorICAgICAgICAvLyB2aWNlIHZlcnNhLCB3ZSBuZWVkIHRvIGFkanVzdCBieSBhbiBob3VyIGZvcndhcmQgb3IgYmFjaywKKyAgICAgICAgLy8gcmVzcGVjdGl2ZWx5LiAgRm9yIHN1Y2ggZmllbGRzIHdlIHNldCBrZWVwSG91ckludmFyaWFudCB0byB0cnVlLgorICAgICAgICAKKyAgICAgICAgLy8gV2Ugb25seSBhZGp1c3QgdGhlIERTVCBmb3IgZmllbGRzIGxhcmdlciB0aGFuIGFuIGhvdXIuICBGb3IKKyAgICAgICAgLy8gZmllbGRzIHNtYWxsZXIgdGhhbiBhbiBob3VyLCB3ZSBjYW5ub3QgYWRqdXN0IGZvciBEU1Qgd2l0aG91dAorICAgICAgICAvLyBjYXVzaW5nIHByb2JsZW1zLiAgZm9yIGluc3RhbmNlLCBpZiB5b3UgYWRkIG9uZSBob3VyIHRvIEFwcmlsIDUsCisgICAgICAgIC8vIDE5OTgsIDE6MDAgQU0sIGluIFBTVCwgdGhlIHRpbWUgYmVjb21lcyAiMjowMCBBTSBQRFQiIChhbgorICAgICAgICAvLyBpbGxlZ2FsIHZhbHVlKSwgYnV0IHRoZW4gdGhlIGFkanVzdG1lbnQgc2VlcyB0aGUgY2hhbmdlIGFuZAorICAgICAgICAvLyBjb21wZW5zYXRlcyBieSBzdWJ0cmFjdGluZyBhbiBob3VyLiAgQXMgYSByZXN1bHQgdGhlIHRpbWUKKyAgICAgICAgLy8gZG9lc24ndCBhZHZhbmNlIGF0IGFsbC4KKworICAgICAgICAvLyBGb3Igc29tZSBmaWVsZHMgbGFyZ2VyIHRoYW4gYSBkYXksIHN1Y2ggYXMgYSBNT05USCwgd2UgcGluIHRoZQorICAgICAgICAvLyBEQVlfT0ZfTU9OVEguICBUaGlzIGFsbG93cyA8TWFyY2ggMzE+LmFkZChNT05USCwgMSkgdG8gYmUKKyAgICAgICAgLy8gPEFwcmlsIDMwPiwgcmF0aGVyIHRoYW4gPEFwcmlsIDMxPiA9PiA8TWF5IDE+LgorCisgICAgICAgIGxvbmcgZGVsdGEgPSBhbW91bnQ7IC8vIGRlbHRhIGluIG1zCisgICAgICAgIGJvb2xlYW4ga2VlcEhvdXJJbnZhcmlhbnQgPSB0cnVlOworCisgICAgICAgIHN3aXRjaCAoZmllbGQpIHsKKyAgICAgICAgY2FzZSBZRUFSOgorICAgICAgICBjYXNlIEVYVEVOREVEX1lFQVI6CisgICAgICAgIGNhc2UgWUVBUl9XT1k6CisgICAgICAgIGNhc2UgTU9OVEg6CisgICAgICAgICAgICBzZXQoZmllbGQsIGdldChmaWVsZCkgKyBhbW91bnQpOworICAgICAgICAgICAgcGluRmllbGQoREFZX09GX01PTlRIKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIFdFRUtfT0ZfWUVBUjoKKyAgICAgICAgY2FzZSBXRUVLX09GX01PTlRIOgorICAgICAgICBjYXNlIERBWV9PRl9XRUVLX0lOX01PTlRIOgorICAgICAgICAgICAgZGVsdGEgKj0gT05FX1dFRUs7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIEFNX1BNOgorICAgICAgICAgICAgZGVsdGEgKj0gMTIgKiBPTkVfSE9VUjsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgREFZX09GX01PTlRIOgorICAgICAgICBjYXNlIERBWV9PRl9ZRUFSOgorICAgICAgICBjYXNlIERBWV9PRl9XRUVLOgorICAgICAgICBjYXNlIERPV19MT0NBTDoKKyAgICAgICAgY2FzZSBKVUxJQU5fREFZOgorICAgICAgICAgICAgZGVsdGEgKj0gT05FX0RBWTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgSE9VUl9PRl9EQVk6CisgICAgICAgIGNhc2UgSE9VUjoKKyAgICAgICAgICAgIGRlbHRhICo9IE9ORV9IT1VSOworICAgICAgICAgICAga2VlcEhvdXJJbnZhcmlhbnQgPSBmYWxzZTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgTUlOVVRFOgorICAgICAgICAgICAgZGVsdGEgKj0gT05FX01JTlVURTsKKyAgICAgICAgICAgIGtlZXBIb3VySW52YXJpYW50ID0gZmFsc2U7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFNFQ09ORDoKKyAgICAgICAgICAgIGRlbHRhICo9IE9ORV9TRUNPTkQ7CisgICAgICAgICAgICBrZWVwSG91ckludmFyaWFudCA9IGZhbHNlOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBNSUxMSVNFQ09ORDoKKyAgICAgICAgY2FzZSBNSUxMSVNFQ09ORFNfSU5fREFZOgorICAgICAgICAgICAga2VlcEhvdXJJbnZhcmlhbnQgPSBmYWxzZTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJDYWxlbmRhci5hZGQoIiArIGZpZWxkTmFtZShmaWVsZCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKSBub3Qgc3VwcG9ydGVkIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBJbiBvcmRlciB0byBrZWVwIHRoZSBob3VyIGludmFyaWFudCAoZm9yIGZpZWxkcyB3aGVyZSB0aGlzIGlzCisgICAgICAgIC8vIGFwcHJvcHJpYXRlKSwgcmVjb3JkIHRoZSBEU1RfT0ZGU0VUIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIGFkZCgpCisgICAgICAgIC8vIG9wZXJhdGlvbi4gIElmIGl0IGhhcyBjaGFuZ2VkLCB0aGVuIGFkanVzdCB0aGUgbWlsbGlzIHRvCisgICAgICAgIC8vIGNvbXBlbnNhdGUuCisgICAgICAgIGludCBkc3QgPSAwOworICAgICAgICBpZiAoa2VlcEhvdXJJbnZhcmlhbnQpIHsKKyAgICAgICAgICAgIGRzdCA9IGdldChEU1RfT0ZGU0VUKTsKKyAgICAgICAgfQorCisgICAgICAgIHNldFRpbWVJbk1pbGxpcyhnZXRUaW1lSW5NaWxsaXMoKSArIGRlbHRhKTsKKworICAgICAgICBpZiAoa2VlcEhvdXJJbnZhcmlhbnQpIHsKKyAgICAgICAgICAgIGRzdCAtPSBnZXQoRFNUX09GRlNFVCk7CisgICAgICAgICAgICBpZiAoZHN0ICE9IDApIHsKKyAgICAgICAgICAgICAgICBzZXRUaW1lSW5NaWxsaXModGltZSArIGRzdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBuYW1lIG9mIHRoaXMgY2FsZW5kYXIgaW4gdGhlIGxhbmd1YWdlIG9mIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShMb2NhbGUgbG9jKSB7CisgICAgICAgIHJldHVybiB0aGlzLmdldENsYXNzKCkuZ2V0TmFtZSgpOworICAgIH0KKyAgICAKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBJbnRlcmZhY2UgZm9yIGNyZWF0aW5nIGN1c3RvbiBEYXRlRm9ybWF0cyBmb3IgZGlmZmVyZW50IHR5cGVzIG9mIENhbGVuZGFycworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgPGNvZGU+RGF0ZUZvcm1hdDwvY29kZT4gYXBwcm9wcmlhdGUgdG8gdGhpcyBjYWxlbmRhci4KKyAgICAgKiBTdWJjbGFzc2VzIHdpc2hpbmcgdG8gc3BlY2lhbGl6ZSB0aGlzIGJlaGF2aW9yIHNob3VsZCBvdmVycmlkZQorICAgICAqIDxjb2RlPmhhbmRsZUdldERhdGVGb3JtYXQoKTwvY29kZT4KKyAgICAgKiBAc2VlICNoYW5kbGVHZXREYXRlRm9ybWF0CisgICAgICovCisgICAgcHVibGljIERhdGVGb3JtYXQgZ2V0RGF0ZVRpbWVGb3JtYXQoaW50IGRhdGVTdHlsZSwgaW50IHRpbWVTdHlsZSwgTG9jYWxlIGxvYykgeworICAgICAgICByZXR1cm4gZm9ybWF0SGVscGVyKHRoaXMsIGxvYywgZGF0ZVN0eWxlLCB0aW1lU3R5bGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIDxjb2RlPkRhdGVGb3JtYXQ8L2NvZGU+IGFwcHJvcHJpYXRlIHRvIHRoaXMgY2FsZW5kYXIuCisgICAgICogVGhpcyBpcyBhIGZyYW1ld29yayBtZXRob2QgZm9yIHN1YmNsYXNzZXMgdG8gb3ZlcnJpZGUuICBUaGlzIG1ldGhvZAorICAgICAqIGlzIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyB0aGUgY2FsZW5kYXItc3BlY2lmaWMgRGF0ZUZvcm1hdCBhbmQKKyAgICAgKiBEYXRlRm9ybWF0U3ltYm9scyBvYmplY3RzIGFzIG5lZWRlZC4KKyAgICAgKiBAcGFyYW0gcGF0dGVybiB0aGUgcGF0dGVybiwgc3BlY2lmaWMgdG8gdGhlIDxjb2RlPkRhdGVGb3JtYXQ8L2NvZGU+CisgICAgICogc3ViY2xhc3MKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUgZm9yIHdoaWNoIHRoZSBzeW1ib2xzIHNob3VsZCBiZSBkcmF3bgorICAgICAqIEByZXR1cm4gYSA8Y29kZT5EYXRlRm9ybWF0PC9jb2RlPiBhcHByb3ByaWF0ZSB0byB0aGlzIGNhbGVuZGFyCisgICAgICovCisgICAgcHJvdGVjdGVkIERhdGVGb3JtYXQgaGFuZGxlR2V0RGF0ZUZvcm1hdChTdHJpbmcgcGF0dGVybiwgTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBEYXRlRm9ybWF0U3ltYm9scyBzeW1ib2xzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKHRoaXMsIGxvY2FsZSk7CisgICAgICAgIHJldHVybiBuZXcgU2ltcGxlRGF0ZUZvcm1hdChwYXR0ZXJuLCBzeW1ib2xzKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIHByaXZhdGUgRGF0ZUZvcm1hdCBmb3JtYXRIZWxwZXIoQ2FsZW5kYXIgY2FsLCBMb2NhbGUgbG9jLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGF0ZVN0eWxlLCBpbnQgdGltZVN0eWxlKQorICAgIHsKKyAgICAgICAgLy8gU2VlIGlmIHRoZXJlIGFyZSBhbnkgY3VzdG9tIHJlc291cmNlcyBmb3IgdGhpcyBjYWxlbmRhcgorICAgICAgICAvLyBJZiBub3QsIGp1c3QgdXNlIHRoZSBkZWZhdWx0IERhdGVGb3JtYXQKKyAgICAgICAgRGF0ZUZvcm1hdCByZXN1bHQgPSBudWxsOworCisgICAgICAgIFJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IERhdGVGb3JtYXRTeW1ib2xzLmdldERhdGVGb3JtYXRCdW5kbGUoY2FsLCBsb2MpOworCisgICAgICAgIGlmIChidW5kbGUgIT0gbnVsbCkgeworCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIFN0cmluZ1tdIHBhdHRlcm5zID0gYnVuZGxlLmdldFN0cmluZ0FycmF5KCJEYXRlVGltZVBhdHRlcm5zIik7CisKKyAgICAgICAgICAgICAgICBTdHJpbmcgcGF0dGVybiA9IG51bGw7CisgICAgICAgICAgICAgICAgaWYgKCh0aW1lU3R5bGUgPj0gMCkgJiYgKGRhdGVTdHlsZSA+PSAwKSkgeworICAgICAgICAgICAgICAgICAgICBPYmplY3RbXSBkYXRlVGltZUFyZ3MgPSB7IHBhdHRlcm5zW3RpbWVTdHlsZV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybnNbZGF0ZVN0eWxlICsgNF0gfTsKKyAgICAgICAgICAgICAgICAgICAgcGF0dGVybiA9IE1lc3NhZ2VGb3JtYXQuZm9ybWF0KHBhdHRlcm5zWzhdLCBkYXRlVGltZUFyZ3MpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmICh0aW1lU3R5bGUgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuID0gcGF0dGVybnNbdGltZVN0eWxlXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoZGF0ZVN0eWxlID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcGF0dGVybiA9IHBhdHRlcm5zW2RhdGVTdHlsZSArIDRdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiTm8gZGF0ZSBvciB0aW1lIHN0eWxlIHNwZWNpZmllZCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXN1bHQgPSBjYWwuaGFuZGxlR2V0RGF0ZUZvcm1hdChwYXR0ZXJuLCBsb2MpOworICAgICAgICAgICAgfSBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAvLyBObyBjdXN0b20gcGF0dGVybnMKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoZGF0ZVN0eWxlLCB0aW1lU3R5bGUsIGxvYyk7CisgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgc3ltYm9scyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhjYWwsIGxvYyk7CisgICAgICAgICAgICAgICAgKChTaW1wbGVEYXRlRm9ybWF0KSByZXN1bHQpLnNldERhdGVGb3JtYXRTeW1ib2xzKHN5bWJvbHMpOyAvLyBhbGl1CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXN1bHQgPSBTaW1wbGVEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoZGF0ZVN0eWxlLCB0aW1lU3R5bGUsIGxvYyk7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0LnNldENhbGVuZGFyKGNhbCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gUHJvdGVjdGVkIHV0aWxpdHkgbWV0aG9kcyBmb3IgdXNlIGJ5IHN1YmNsYXNzZXMuICBUaGVzZSBhcmUgdmVyeSBoYW5keQorICAgIC8vIGZvciBpbXBsZW1lbnRpbmcgYWRkLCByb2xsLCBhbmQgY29tcHV0ZUZpZWxkcy4KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBBZGp1c3QgdGhlIHNwZWNpZmllZCBmaWVsZCBzbyB0aGF0IGl0IGlzIHdpdGhpbgorICAgICAqIHRoZSBhbGxvd2FibGUgcmFuZ2UgZm9yIHRoZSBkYXRlIHRvIHdoaWNoIHRoaXMgY2FsZW5kYXIgaXMgc2V0LgorICAgICAqIEZvciBleGFtcGxlLCBpbiBhIEdyZWdvcmlhbiBjYWxlbmRhciBwaW5uaW5nIHRoZSB7QGxpbmsgI0RBWV9PRl9NT05USCBEQVlfT0ZfTU9OVEh9CisgICAgICogZmllbGQgZm9yIGEgY2FsZW5kYXIgc2V0IHRvIEFwcmlsIDMxIHdvdWxkIGNhdXNlIGl0IHRvIGJlIHNldAorICAgICAqIHRvIEFwcmlsIDMwLgorICAgICAqIDxwPgorICAgICAqIDxiPlN1YmNsYXNzaW5nOjwvYj4KKyAgICAgKiA8YnI+CisgICAgICogVGhpcyB1dGlsaXR5IG1ldGhvZCBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IHN1YmNsYXNzZXMgdGhhdCBuZWVkIHRvIGltcGxlbWVudAorICAgICAqIHRoZWlyIG93biBvdmVycmlkZXMgb2Yge0BsaW5rICNyb2xsIHJvbGx9IGFuZCB7QGxpbmsgI2FkZCBhZGR9LgorICAgICAqIDxwPgorICAgICAqIDxiPk5vdGU6PC9iPgorICAgICAqIDxjb2RlPnBpbkZpZWxkPC9jb2RlPiBpcyBpbXBsZW1lbnRlZCBpbiB0ZXJtcyBvZgorICAgICAqIHtAbGluayAjZ2V0QWN0dWFsTWluaW11bSBnZXRBY3R1YWxNaW5pbXVtfQorICAgICAqIGFuZCB7QGxpbmsgI2dldEFjdHVhbE1heGltdW0gZ2V0QWN0dWFsTWF4aW11bX0uICBJZiBlaXRoZXIgb2YgdGhvc2UgbWV0aG9kcyB1c2VzCisgICAgICogYSBzbG93LCBpdGVyYXRpdmUgYWxnb3JpdGhtIGZvciBhIHBhcnRpY3VsYXIgZmllbGQsIGl0IHdvdWxkIGJlCisgICAgICogdW53aXNlIHRvIGF0dGVtcHQgdG8gY2FsbCA8Y29kZT5waW5GaWVsZDwvY29kZT4gZm9yIHRoYXQgZmllbGQuICBJZiB5b3UKKyAgICAgKiByZWFsbHkgZG8gbmVlZCB0byBkbyBzbywgeW91IHNob3VsZCBvdmVycmlkZSB0aGlzIG1ldGhvZCB0byBkbworICAgICAqIHNvbWV0aGluZyBtb3JlIGVmZmljaWVudCBmb3IgdGhhdCBmaWVsZC4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gZmllbGQgVGhlIGNhbGVuZGFyIGZpZWxkIHdob3NlIHZhbHVlIHNob3VsZCBiZSBwaW5uZWQuCisgICAgICoKKyAgICAgKiBAc2VlICNnZXRBY3R1YWxNaW5pbXVtCisgICAgICogQHNlZSAjZ2V0QWN0dWFsTWF4aW11bQorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIHBpbkZpZWxkKGludCBmaWVsZCkgeworICAgICAgICBpbnQgbWF4ID0gZ2V0QWN0dWFsTWF4aW11bShmaWVsZCk7CisgICAgICAgIGludCBtaW4gPSBnZXRBY3R1YWxNaW5pbXVtKGZpZWxkKTsKKyAgICAgICAgCisgICAgICAgIGlmIChmaWVsZHNbZmllbGRdID4gbWF4KSB7CisgICAgICAgICAgICBzZXQoZmllbGQsIG1heCk7CisgICAgICAgIH0gZWxzZSBpZiAoZmllbGRzW2ZpZWxkXSA8IG1pbikgeworICAgICAgICAgICAgc2V0KGZpZWxkLCBtaW4pOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB3ZWVrIG51bWJlciBvZiBhIGRheSwgd2l0aGluIGEgcGVyaW9kLiBUaGlzIG1heSBiZSB0aGUgd2VlayBudW1iZXIgaW4KKyAgICAgKiBhIHllYXIgb3IgdGhlIHdlZWsgbnVtYmVyIGluIGEgbW9udGguIFVzdWFsbHkgdGhpcyB3aWxsIGJlIGEgdmFsdWUgPj0gMSwgYnV0IGlmCisgICAgICogc29tZSBpbml0aWFsIGRheXMgb2YgdGhlIHBlcmlvZCBhcmUgZXhjbHVkZWQgZnJvbSB3ZWVrIDEsIGJlY2F1c2UKKyAgICAgKiB7QGxpbmsgI2dldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsgZ2V0TWluaW1hbERheXNJbkZpcnN0V2Vla30gaXMgPiAxLCB0aGVuIAorICAgICAqIHRoZSB3ZWVrIG51bWJlciB3aWxsIGJlIHplcm8gZm9yIHRob3NlCisgICAgICogaW5pdGlhbCBkYXlzLiBUaGlzIG1ldGhvZCByZXF1aXJlcyB0aGUgZGF5IG51bWJlciBhbmQgZGF5IG9mIHdlZWsgZm9yIHNvbWUKKyAgICAgKiBrbm93biBkYXRlIGluIHRoZSBwZXJpb2QgaW4gb3JkZXIgdG8gZGV0ZXJtaW5lIHRoZSBkYXkgb2Ygd2VlayAKKyAgICAgKiBvbiB0aGUgZGVzaXJlZCBkYXkuCisgICAgICogPHA+CisgICAgICogPGI+U3ViY2xhc3Npbmc6PC9iPgorICAgICAqIDxicj4KKyAgICAgKiBUaGlzIG1ldGhvZCBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IHN1YmNsYXNzZXMgaW4gaW1wbGVtZW50aW5nIHRoZWlyCisgICAgICoge0BsaW5rICNjb21wdXRlVGltZSBjb21wdXRlVGltZX0gYW5kL29yIHtAbGluayAjY29tcHV0ZUZpZWxkcyBjb21wdXRlRmllbGRzfSBtZXRob2RzLgorICAgICAqIEl0IGlzIG9mdGVuIHVzZWZ1bCBpbiB7QGxpbmsgI2dldEFjdHVhbE1pbmltdW0gZ2V0QWN0dWFsTWluaW11bX0gYW5kCisgICAgICoge0BsaW5rICNnZXRBY3R1YWxNYXhpbXVtIGdldEFjdHVhbE1heGltdW19IGFzIHdlbGwuCisgICAgICogPHA+CisgICAgICogVGhpcyB2YXJpYW50IGlzIGhhbmR5IGZvciBjb21wdXRpbmcgdGhlIHdlZWsgbnVtYmVyIG9mIHNvbWUgb3RoZXIKKyAgICAgKiBkYXkgb2YgYSBwZXJpb2QgKG9mdGVuIHRoZSBmaXJzdCBvciBsYXN0IGRheSBvZiB0aGUgcGVyaW9kKSB3aGVuIGl0cyBkYXkKKyAgICAgKiBvZiB0aGUgd2VlayBpcyBub3Qga25vd24gYnV0IHRoZSBkYXkgbnVtYmVyIGFuZCBkYXkgb2Ygd2VlayBmb3Igc29tZSBvdGhlcgorICAgICAqIGRheSBpbiB0aGUgcGVyaW9kIChlLmcuIHRoZSBjdXJyZW50IGRhdGUpIDxlbT5pczwvZW0+IGtub3duLgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBkZXNpcmVkRGF5ICAgIFRoZSB7QGxpbmsgI0RBWV9PRl9ZRUFSIERBWV9PRl9ZRUFSfSBvcgorICAgICAqICAgICAgICAgICAgICB7QGxpbmsgI0RBWV9PRl9NT05USCBEQVlfT0ZfTU9OVEh9IHdob3NlIHdlZWsgbnVtYmVyIGlzIGRlc2lyZWQuCisgICAgICogICAgICAgICAgICAgIFNob3VsZCBiZSAxIGZvciB0aGUgZmlyc3QgZGF5IG9mIHRoZSBwZXJpb2QuCisgICAgICoKKyAgICAgKiBAcGFyYW0ga25vd25EYXlPZlBlcmlvZCAgIFRoZSB7QGxpbmsgI0RBWV9PRl9ZRUFSIERBWV9PRl9ZRUFSfQorICAgICAqICAgICAgICAgICAgICBvciB7QGxpbmsgI0RBWV9PRl9NT05USCBEQVlfT0ZfTU9OVEh9IGZvciBhIGRheSBpbiB0aGUgcGVyaW9kIHdob3NlCisgICAgICogICAgICAgICAgICAgIHtAbGluayAjREFZX09GX1dFRUsgREFZX09GX1dFRUt9IGlzIHNwZWNpZmllZCBieSB0aGUKKyAgICAgKiAgICAgICAgICAgICAgPGNvZGU+a25vd25EYXlPZldlZWs8L2NvZGU+IHBhcmFtZXRlci4KKyAgICAgKiAgICAgICAgICAgICAgU2hvdWxkIGJlIDEgZm9yIGZpcnN0IGRheSBvZiBwZXJpb2QuCisgICAgICoKKyAgICAgKiBAcGFyYW0ga25vd25EYXlPZldlZWsgIFRoZSB7QGxpbmsgI0RBWV9PRl9XRUVLIERBWV9PRl9XRUVLfSBmb3IgdGhlIGRheQorICAgICAqICAgICAgICAgICAgICBjb3JyZXNwb25kaW5nIHRvIHRoZSA8Y29kZT5rbm93bkRheU9mUGVyaW9kPC9jb2RlPiBwYXJhbWV0ZXIuCisgICAgICogICAgICAgICAgICAgIDEtYmFzZWQgd2l0aCAxPVN1bmRheS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gICAgICBUaGUgd2VlayBudW1iZXIgKG9uZS1iYXNlZCksIG9yIHplcm8gaWYgdGhlIGRheSBmYWxscyBiZWZvcmUKKyAgICAgKiAgICAgICAgICAgICAgdGhlIGZpcnN0IHdlZWsgYmVjYXVzZQorICAgICAqICAgICAgICAgICAgICB7QGxpbmsgI2dldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsgZ2V0TWluaW1hbERheXNJbkZpcnN0V2Vla30KKyAgICAgKiAgICAgICAgICAgICAgaXMgbW9yZSB0aGFuIG9uZS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IHdlZWtOdW1iZXIoaW50IGRlc2lyZWREYXksIGludCBkYXlPZlBlcmlvZCwgaW50IGRheU9mV2VlaykKKyAgICB7CisgICAgICAgIC8vIERldGVybWluZSB0aGUgZGF5IG9mIHRoZSB3ZWVrIG9mIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHBlcmlvZAorICAgICAgICAvLyBpbiBxdWVzdGlvbiAoZWl0aGVyIGEgeWVhciBvciBhIG1vbnRoKS4gIFplcm8gcmVwcmVzZW50cyB0aGUKKyAgICAgICAgLy8gZmlyc3QgZGF5IG9mIHRoZSB3ZWVrIG9uIHRoaXMgY2FsZW5kYXIuCisgICAgICAgIGludCBwZXJpb2RTdGFydERheU9mV2VlayA9IChkYXlPZldlZWsgLSBnZXRGaXJzdERheU9mV2VlaygpIC0gZGF5T2ZQZXJpb2QgKyAxKSAlIDc7CisgICAgICAgIGlmIChwZXJpb2RTdGFydERheU9mV2VlayA8IDApIHBlcmlvZFN0YXJ0RGF5T2ZXZWVrICs9IDc7CisKKyAgICAgICAgLy8gQ29tcHV0ZSB0aGUgd2VlayBudW1iZXIuICBJbml0aWFsbHksIGlnbm9yZSB0aGUgZmlyc3Qgd2Vlaywgd2hpY2gKKyAgICAgICAgLy8gbWF5IGJlIGZyYWN0aW9uYWwgKG9yIG1heSBub3QgYmUpLiAgV2UgYWRkIHBlcmlvZFN0YXJ0RGF5T2ZXZWVrIGluCisgICAgICAgIC8vIG9yZGVyIHRvIGZpbGwgb3V0IHRoZSBmaXJzdCB3ZWVrLCBpZiBpdCBpcyBmcmFjdGlvbmFsLgorICAgICAgICBpbnQgd2Vla05vID0gKGRlc2lyZWREYXkgKyBwZXJpb2RTdGFydERheU9mV2VlayAtIDEpLzc7CisKKyAgICAgICAgLy8gSWYgdGhlIGZpcnN0IHdlZWsgaXMgbG9uZyBlbm91Z2gsIHRoZW4gY291bnQgaXQuICBJZgorICAgICAgICAvLyB0aGUgbWluaW1hbCBkYXlzIGluIHRoZSBmaXJzdCB3ZWVrIGlzIG9uZSwgb3IgaWYgdGhlIHBlcmlvZCBzdGFydAorICAgICAgICAvLyBpcyB6ZXJvLCB3ZSBhbHdheXMgaW5jcmVtZW50IHdlZWtOby4KKyAgICAgICAgaWYgKCg3IC0gcGVyaW9kU3RhcnREYXlPZldlZWspID49IGdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKSkgKyt3ZWVrTm87CisKKyAgICAgICAgcmV0dXJuIHdlZWtObzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHdlZWsgbnVtYmVyIG9mIGEgZGF5LCB3aXRoaW4gYSBwZXJpb2QuIFRoaXMgbWF5IGJlIHRoZSB3ZWVrIG51bWJlciBpbgorICAgICAqIGEgeWVhciwgb3IgdGhlIHdlZWsgbnVtYmVyIGluIGEgbW9udGguIFVzdWFsbHkgdGhpcyB3aWxsIGJlIGEgdmFsdWUgPj0gMSwgYnV0IGlmCisgICAgICogc29tZSBpbml0aWFsIGRheXMgb2YgdGhlIHBlcmlvZCBhcmUgZXhjbHVkZWQgZnJvbSB3ZWVrIDEsIGJlY2F1c2UKKyAgICAgKiB7QGxpbmsgI2dldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsgZ2V0TWluaW1hbERheXNJbkZpcnN0V2Vla30gaXMgPiAxLAorICAgICAqIHRoZW4gdGhlIHdlZWsgbnVtYmVyIHdpbGwgYmUgemVybyBmb3IgdGhvc2UKKyAgICAgKiBpbml0aWFsIGRheXMuIFRoaXMgbWV0aG9kIHJlcXVpcmVzIHRoZSBkYXkgb2Ygd2VlayBmb3IgdGhlIGdpdmVuIGRhdGUgaW4gb3JkZXIgdG8gCisgICAgICogZGV0ZXJtaW5lIHRoZSByZXN1bHQuCisgICAgICogPHA+CisgICAgICogPGI+U3ViY2xhc3Npbmc6PC9iPgorICAgICAqIDxicj4KKyAgICAgKiBUaGlzIG1ldGhvZCBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IHN1YmNsYXNzZXMgaW4gaW1wbGVtZW50aW5nIHRoZWlyCisgICAgICoge0BsaW5rICNjb21wdXRlVGltZSBjb21wdXRlVGltZX0gYW5kL29yIHtAbGluayAjY29tcHV0ZUZpZWxkcyBjb21wdXRlRmllbGRzfSBtZXRob2RzLgorICAgICAqIEl0IGlzIG9mdGVuIHVzZWZ1bCBpbiB7QGxpbmsgI2dldEFjdHVhbE1pbmltdW0gZ2V0QWN0dWFsTWluaW11bX0gYW5kCisgICAgICoge0BsaW5rICNnZXRBY3R1YWxNYXhpbXVtIGdldEFjdHVhbE1heGltdW19IGFzIHdlbGwuCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGRheU9mUGVyaW9kICAgVGhlIHtAbGluayAjREFZX09GX1lFQVIgREFZX09GX1lFQVJ9IG9yCisgICAgICogICAgICAgICAgICAgICAgICAgICAge0BsaW5rICNEQVlfT0ZfTU9OVEggREFZX09GX01PTlRIfSB3aG9zZSB3ZWVrIG51bWJlciBpcyBkZXNpcmVkLgorICAgICAqICAgICAgICAgICAgICAgICAgICAgIFNob3VsZCBiZSAxIGZvciB0aGUgZmlyc3QgZGF5IG9mIHRoZSBwZXJpb2QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF5b2ZXZWVrICAgICBUaGUge0BsaW5rICNEQVlfT0ZfV0VFSyBEQVlfT0ZfV0VFS30gZm9yIHRoZSBkYXkKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICBjb3JyZXNwb25kaW5nIHRvIHRoZSA8Y29kZT5kYXlPZlBlcmlvZDwvY29kZT4gcGFyYW1ldGVyLgorICAgICAqICAgICAgICAgICAgICAgICAgICAgIDEtYmFzZWQgd2l0aCAxPVN1bmRheS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gICAgICBUaGUgd2VlayBudW1iZXIgKG9uZS1iYXNlZCksIG9yIHplcm8gaWYgdGhlIGRheSBmYWxscyBiZWZvcmUKKyAgICAgKiAgICAgICAgICAgICAgdGhlIGZpcnN0IHdlZWsgYmVjYXVzZQorICAgICAqICAgICAgICAgICAgICB7QGxpbmsgI2dldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsgZ2V0TWluaW1hbERheXNJbkZpcnN0V2Vla30KKyAgICAgKiAgICAgICAgICAgICAgaXMgbW9yZSB0aGFuIG9uZS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgaW50IHdlZWtOdW1iZXIoaW50IGRheU9mUGVyaW9kLCBpbnQgZGF5T2ZXZWVrKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHdlZWtOdW1iZXIoZGF5T2ZQZXJpb2QsIGRheU9mUGVyaW9kLCBkYXlPZldlZWspOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIENvbnN0YW50cworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIFtORVddCisgICAgICogUmV0dXJuIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIGdpdmVuIHRpbWUgYW5kIHRoZSB0aW1lIHRoaXMKKyAgICAgKiBjYWxlbmRhciBvYmplY3QgaXMgc2V0IHRvLiAgSWYgdGhpcyBjYWxlbmRhciBpcyBzZXQKKyAgICAgKiA8ZW0+YmVmb3JlPC9lbT4gdGhlIGdpdmVuIHRpbWUsIHRoZSByZXR1cm5lZCB2YWx1ZSB3aWxsIGJlCisgICAgICogcG9zaXRpdmUuICBJZiB0aGlzIGNhbGVuZGFyIGlzIHNldCA8ZW0+YWZ0ZXI8L2VtPiB0aGUgZ2l2ZW4KKyAgICAgKiB0aW1lLCB0aGUgcmV0dXJuZWQgdmFsdWUgd2lsbCBiZSBuZWdhdGl2ZS4gIFRoZQorICAgICAqIDxjb2RlPmZpZWxkPC9jb2RlPiBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB1bml0cyBvZiB0aGUgcmV0dXJuCisgICAgICogdmFsdWUuICBGb3IgZXhhbXBsZSwgaWYgPGNvZGU+ZmllbGREaWZmZXJlbmNlKHdoZW4sCisgICAgICogQ2FsZW5kYXIuTU9OVEgpPC9jb2RlPiByZXR1cm5zIDMsIHRoZW4gdGhpcyBjYWxlbmRhciBpcyBzZXQgdG8KKyAgICAgKiAzIG1vbnRocyBiZWZvcmUgPGNvZGU+d2hlbjwvY29kZT4sIGFuZCBwb3NzaWJseSBzb21lIGFkZGl0aW9uCisgICAgICogdGltZSBsZXNzIHRoYW4gb25lIG1vbnRoLgorICAgICAqCisgICAgICogPHA+QXMgYSBzaWRlIGVmZmVjdCBvZiB0aGlzIGNhbGwsIHRoaXMgY2FsZW5kYXIgaXMgYWR2YW5jZWQKKyAgICAgKiB0b3dhcmQgPGNvZGU+d2hlbjwvY29kZT4gYnkgdGhlIGdpdmVuIGFtb3VudC4gIFRoYXQgaXMsIGNhbGxpbmcKKyAgICAgKiB0aGlzIG1ldGhvZCBoYXMgdGhlIHNpZGUgZWZmZWN0IG9mIGNhbGxpbmcgPGNvZGU+YWRkKGZpZWxkLAorICAgICAqIG4pPC9jb2RlPiwgd2hlcmUgPGNvZGU+bjwvY29kZT4gaXMgdGhlIHJldHVybiB2YWx1ZS4KKyAgICAgKgorICAgICAqIDxwPlVzYWdlOiBUbyB1c2UgdGhpcyBtZXRob2QsIGNhbGwgaXQgZmlyc3Qgd2l0aCB0aGUgbGFyZ2VzdAorICAgICAqIGZpZWxkIG9mIGludGVyZXN0LCB0aGVuIHdpdGggcHJvZ3Jlc3NpdmVseSBzbWFsbGVyIGZpZWxkcy4gIEZvcgorICAgICAqIGV4YW1wbGU6CisgICAgICoKKyAgICAgKiA8cHJlPgorICAgICAqIGludCB5ID0gY2FsLmZpZWxkRGlmZmVyZW5jZSh3aGVuLCBDYWxlbmRhci5ZRUFSKTsKKyAgICAgKiBpbnQgbSA9IGNhbC5maWVsZERpZmZlcmVuY2Uod2hlbiwgQ2FsZW5kYXIuTU9OVEgpOworICAgICAqIGludCBkID0gY2FsLmZpZWxkRGlmZmVyZW5jZSh3aGVuLCBDYWxlbmRhci5EQVRFKTs8L3ByZT4KKyAgICAgKgorICAgICAqIGNvbXB1dGVzIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gPGNvZGU+Y2FsPC9jb2RlPiBhbmQKKyAgICAgKiA8Y29kZT53aGVuPC9jb2RlPiBpbiB5ZWFycywgbW9udGhzLCBhbmQgZGF5cy4KKyAgICAgKgorICAgICAqIDxwPk5vdGU6IDxjb2RlPmZpZWxkRGlmZmVyZW5jZSgpPC9jb2RlPiBpcworICAgICAqIDxlbT5hc3ltbWV0cmljYWw8L2VtPi4gIFRoYXQgaXMsIGluIHRoZSBmb2xsb3dpbmcgY29kZToKKyAgICAgKgorICAgICAqIDxwcmU+CisgICAgICogY2FsLnNldFRpbWUoZGF0ZTEpOworICAgICAqIGludCBtMSA9IGNhbC5maWVsZERpZmZlcmVuY2UoZGF0ZTIsIENhbGVuZGFyLk1PTlRIKTsKKyAgICAgKiBpbnQgZDEgPSBjYWwuZmllbGREaWZmZXJlbmNlKGRhdGUyLCBDYWxlbmRhci5EQVRFKTsKKyAgICAgKiBjYWwuc2V0VGltZShkYXRlMik7CisgICAgICogaW50IG0yID0gY2FsLmZpZWxkRGlmZmVyZW5jZShkYXRlMSwgQ2FsZW5kYXIuTU9OVEgpOworICAgICAqIGludCBkMiA9IGNhbC5maWVsZERpZmZlcmVuY2UoZGF0ZTEsIENhbGVuZGFyLkRBVEUpOzwvcHJlPgorICAgICAqCisgICAgICogb25lIG1pZ2h0IGV4cGVjdCB0aGF0IDxjb2RlPm0xID09IC1tMiAmJiBkMSA9PSAtZDI8L2NvZGU+LgorICAgICAqIEhvd2V2ZXIsIHRoaXMgaXMgbm90IGdlbmVyYWxseSB0aGUgY2FzZSwgYmVjYXVzZSBvZgorICAgICAqIGlycmVndWxhcml0aWVzIGluIHRoZSB1bmRlcmx5aW5nIGNhbGVuZGFyIHN5c3RlbSAoZS5nLiwgdGhlCisgICAgICogR3JlZ29yaWFuIGNhbGVuZGFyIGhhcyBhIHZhcnlpbmcgbnVtYmVyIG9mIGRheXMgcGVyIG1vbnRoKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB3aGVuIHRoZSBkYXRlIHRvIGNvbXBhcmUgdGhpcyBjYWxlbmRhcidzIHRpbWUgdG8KKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIGZpZWxkIGluIHdoaWNoIHRvIGNvbXB1dGUgdGhlIHJlc3VsdAorICAgICAqIEByZXR1cm4gdGhlIGRpZmZlcmVuY2UsIGVpdGhlciBwb3NpdGl2ZSBvciBuZWdhdGl2ZSwgYmV0d2VlbgorICAgICAqIHRoaXMgY2FsZW5kYXIncyB0aW1lIGFuZCA8Y29kZT53aGVuPC9jb2RlPiwgaW4gdGVybXMgb2YKKyAgICAgKiA8Y29kZT5maWVsZDwvY29kZT4uCisgICAgICovCisgICAgcHVibGljIGludCBmaWVsZERpZmZlcmVuY2UoRGF0ZSB3aGVuLCBpbnQgZmllbGQpIHsKKyAgICAgICAgaW50IG1pbiA9IDA7CisgICAgICAgIGxvbmcgc3RhcnRNcyA9IGdldFRpbWVJbk1pbGxpcygpOworICAgICAgICBsb25nIHRhcmdldE1zID0gd2hlbi5nZXRUaW1lKCk7CisgICAgICAgIC8vIEFsd2F5cyBhZGQgZnJvbSB0aGUgc3RhcnQgbWlsbGlzLiAgVGhpcyBhY2NvbW9kYXRlcworICAgICAgICAvLyBvcGVyYXRpb25zIGxpa2UgYWRkaW5nIHllYXJzIGZyb20gRmVicnVhcnkgMjksIDIwMDAgdXAgdG8KKyAgICAgICAgLy8gRmVicnVhcnkgMjksIDIwMDQuICBJZiAxLCAxLCAxLCAxIGlzIGFkZGVkIHRvIHRoZSB5ZWFyCisgICAgICAgIC8vIGZpZWxkLCB0aGUgRE9NIGdldHMgcGlubmVkIHRvIDI4IGFuZCBzdGF5cyB0aGVyZSwgZ2l2aW5nIGFuCisgICAgICAgIC8vIGluY29ycmVjdCBET00gZGlmZmVyZW5jZSBvZiAxLiAgV2UgaGF2ZSB0byBhZGQgMSwgcmVzZXQsIDIsCisgICAgICAgIC8vIHJlc2V0LCAzLCByZXNldCwgNC4KKyAgICAgICAgaWYgKHN0YXJ0TXMgPCB0YXJnZXRNcykgeworICAgICAgICAgICAgaW50IG1heCA9IDE7CisgICAgICAgICAgICAvLyBGaW5kIGEgdmFsdWUgdGhhdCBpcyB0b28gbGFyZ2UKKyAgICAgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgICAgICBzZXRUaW1lSW5NaWxsaXMoc3RhcnRNcyk7CisgICAgICAgICAgICAgICAgYWRkKGZpZWxkLCBtYXgpOworICAgICAgICAgICAgICAgIGxvbmcgbXMgPSBnZXRUaW1lSW5NaWxsaXMoKTsKKyAgICAgICAgICAgICAgICBpZiAobXMgPT0gdGFyZ2V0TXMpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1heDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1zID4gdGFyZ2V0TXMpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbWF4IDw8PSAxOworICAgICAgICAgICAgICAgICAgICBpZiAobWF4IDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmllbGQgZGlmZmVyZW5jZSB0b28gbGFyZ2UgdG8gZml0IGludG8gaW50CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gRG8gYSBiaW5hcnkgc2VhcmNoCisgICAgICAgICAgICB3aGlsZSAoKG1heCAtIG1pbikgPiAxKSB7CisgICAgICAgICAgICAgICAgaW50IHQgPSAobWluICsgbWF4KSAvIDI7CisgICAgICAgICAgICAgICAgc2V0VGltZUluTWlsbGlzKHN0YXJ0TXMpOworICAgICAgICAgICAgICAgIGFkZChmaWVsZCwgdCk7CisgICAgICAgICAgICAgICAgbG9uZyBtcyA9IGdldFRpbWVJbk1pbGxpcygpOworICAgICAgICAgICAgICAgIGlmIChtcyA9PSB0YXJnZXRNcykgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1zID4gdGFyZ2V0TXMpIHsKKyAgICAgICAgICAgICAgICAgICAgbWF4ID0gdDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtaW4gPSB0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChzdGFydE1zID4gdGFyZ2V0TXMpIHsKKyAgICAgICAgICAgIGlmIChmYWxzZSkgeworICAgICAgICAgICAgICAgIC8vIFRoaXMgd29ya3MsIGFuZCBtYWtlcyB0aGUgY29kZSBzbWFsbGVyLCBidXQgY29zdHMKKyAgICAgICAgICAgICAgICAvLyBhbiBleHRyYSBvYmplY3QgY3JlYXRpb24gYW5kIGFuIGV4dHJhIGNvdXBsZSBjeWNsZXMKKyAgICAgICAgICAgICAgICAvLyBvZiBjYWxlbmRhciBjb21wdXRhdGlvbi4KKyAgICAgICAgICAgICAgICBzZXRUaW1lSW5NaWxsaXModGFyZ2V0TXMpOworICAgICAgICAgICAgICAgIG1pbiA9IC1maWVsZERpZmZlcmVuY2UobmV3IERhdGUoc3RhcnRNcyksIGZpZWxkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBtYXggPSAtMTsKKyAgICAgICAgICAgIC8vIEZpbmQgYSB2YWx1ZSB0aGF0IGlzIHRvbyBzbWFsbAorICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgIHNldFRpbWVJbk1pbGxpcyhzdGFydE1zKTsKKyAgICAgICAgICAgICAgICBhZGQoZmllbGQsIG1heCk7CisgICAgICAgICAgICAgICAgbG9uZyBtcyA9IGdldFRpbWVJbk1pbGxpcygpOworICAgICAgICAgICAgICAgIGlmIChtcyA9PSB0YXJnZXRNcykgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWF4OworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobXMgPCB0YXJnZXRNcykgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtYXggPDw9IDE7CisgICAgICAgICAgICAgICAgICAgIGlmIChtYXggPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmllbGQgZGlmZmVyZW5jZSB0b28gbGFyZ2UgdG8gZml0IGludG8gaW50CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gRG8gYSBiaW5hcnkgc2VhcmNoCisgICAgICAgICAgICB3aGlsZSAoKG1pbiAtIG1heCkgPiAxKSB7CisgICAgICAgICAgICAgICAgaW50IHQgPSAobWluICsgbWF4KSAvIDI7CisgICAgICAgICAgICAgICAgc2V0VGltZUluTWlsbGlzKHN0YXJ0TXMpOworICAgICAgICAgICAgICAgIGFkZChmaWVsZCwgdCk7CisgICAgICAgICAgICAgICAgbG9uZyBtcyA9IGdldFRpbWVJbk1pbGxpcygpOworICAgICAgICAgICAgICAgIGlmIChtcyA9PSB0YXJnZXRNcykgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1zIDwgdGFyZ2V0TXMpIHsKKyAgICAgICAgICAgICAgICAgICAgbWF4ID0gdDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtaW4gPSB0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBTZXQgY2FsZW5kYXIgdG8gZW5kIHBvaW50CisgICAgICAgIHNldFRpbWVJbk1pbGxpcyhzdGFydE1zKTsKKyAgICAgICAgYWRkKGZpZWxkLCBtaW4pOworICAgICAgICByZXR1cm4gbWluOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiB0aW1lIHpvbmUgdmFsdWUuCisgICAgICogQHBhcmFtIHZhbHVlIHRoZSBnaXZlbiB0aW1lIHpvbmUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGltZVpvbmUoVGltZVpvbmUgdmFsdWUpCisgICAgeworICAgICAgICB6b25lID0gdmFsdWU7CisgICAgICAgIC8qIFJlY29tcHV0ZSB0aGUgZmllbGRzIGZyb20gdGhlIHRpbWUgdXNpbmcgdGhlIG5ldyB6b25lLiAgVGhpcyBhbHNvCisgICAgICAgICAqIHdvcmtzIGlmIGlzVGltZVNldCBpcyBmYWxzZSAoYWZ0ZXIgYSBjYWxsIHRvIHNldCgpKS4gIEluIHRoYXQgY2FzZQorICAgICAgICAgKiB0aGUgdGltZSB3aWxsIGJlIGNvbXB1dGVkIGZyb20gdGhlIGZpZWxkcyB1c2luZyB0aGUgbmV3IHpvbmUsIHRoZW4KKyAgICAgICAgICogdGhlIGZpZWxkcyB3aWxsIGdldCByZWNvbXB1dGVkIGZyb20gdGhhdC4gIENvbnNpZGVyIHRoZSBzZXF1ZW5jZSBvZgorICAgICAgICAgKiBjYWxsczogY2FsLnNldFRpbWVab25lKEVTVCk7IGNhbC5zZXQoSE9VUiwgMSk7IGNhbC5zZXRUaW1lWm9uZShQU1QpLgorICAgICAgICAgKiBJcyBjYWwgc2V0IHRvIDEgbydjbG9jayBFU1Qgb3IgMSBvJ2Nsb2NrIFBTVD8gIEFuc3dlcjogUFNULiAgTW9yZQorICAgICAgICAgKiBnZW5lcmFsbHksIGEgY2FsbCB0byBzZXRUaW1lWm9uZSgpIGFmZmVjdHMgY2FsbHMgdG8gc2V0KCkgQkVGT1JFIEFORAorICAgICAgICAgKiBBRlRFUiBpdCB1cCB0byB0aGUgbmV4dCBjYWxsIHRvIGNvbXBsZXRlKCkuCisgICAgICAgICAqLworICAgICAgICBhcmVGaWVsZHNTZXQgPSBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB0aW1lIHpvbmUuCisgICAgICogQHJldHVybiB0aGUgdGltZSB6b25lIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhpcyBjYWxlbmRhci4KKyAgICAgKi8KKyAgICBwdWJsaWMgVGltZVpvbmUgZ2V0VGltZVpvbmUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHpvbmU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU3BlY2lmeSB3aGV0aGVyIG9yIG5vdCBkYXRlL3RpbWUgaW50ZXJwcmV0YXRpb24gaXMgdG8gYmUgbGVuaWVudC4gIFdpdGgKKyAgICAgKiBsZW5pZW50IGludGVycHJldGF0aW9uLCBhIGRhdGUgc3VjaCBhcyAiRmVicnVhcnkgOTQyLCAxOTk2IiB3aWxsIGJlCisgICAgICogdHJlYXRlZCBhcyBiZWluZyBlcXVpdmFsZW50IHRvIHRoZSA5NDFzdCBkYXkgYWZ0ZXIgRmVicnVhcnkgMSwgMTk5Ni4KKyAgICAgKiBXaXRoIHN0cmljdCBpbnRlcnByZXRhdGlvbiwgc3VjaCBkYXRlcyB3aWxsIGNhdXNlIGFuIGV4Y2VwdGlvbiB0byBiZQorICAgICAqIHRocm93bi4KKyAgICAgKgorICAgICAqIEBzZWUgRGF0ZUZvcm1hdCNzZXRMZW5pZW50CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TGVuaWVudChib29sZWFuIGxlbmllbnQpCisgICAgeworICAgICAgICB0aGlzLmxlbmllbnQgPSBsZW5pZW50OworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlbGwgd2hldGhlciBkYXRlL3RpbWUgaW50ZXJwcmV0YXRpb24gaXMgdG8gYmUgbGVuaWVudC4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0xlbmllbnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGxlbmllbnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB3aGF0IHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgaXM7IGUuZy4sIFN1bmRheSBpbiBVUywKKyAgICAgKiBNb25kYXkgaW4gRnJhbmNlLgorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgZ2l2ZW4gZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEZpcnN0RGF5T2ZXZWVrKGludCB2YWx1ZSkKKyAgICB7CisgICAgICAgIGZpcnN0RGF5T2ZXZWVrID0gdmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB3aGF0IHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgaXM7IGUuZy4sIFN1bmRheSBpbiBVUywKKyAgICAgKiBNb25kYXkgaW4gRnJhbmNlLgorICAgICAqIEByZXR1cm4gdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEZpcnN0RGF5T2ZXZWVrKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmaXJzdERheU9mV2VlazsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHdoYXQgdGhlIG1pbmltYWwgZGF5cyByZXF1aXJlZCBpbiB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhciBhcmUuCisgICAgICogRm9yIGV4YW1wbGUsIGlmIHRoZSBmaXJzdCB3ZWVrIGlzIGRlZmluZWQgYXMgb25lIHRoYXQgY29udGFpbnMgdGhlIGZpcnN0CisgICAgICogZGF5IG9mIHRoZSBmaXJzdCBtb250aCBvZiBhIHllYXIsIGNhbGwgdGhlIG1ldGhvZCB3aXRoIHZhbHVlIDEuIElmIGl0CisgICAgICogbXVzdCBiZSBhIGZ1bGwgd2VlaywgdXNlIHZhbHVlIDcuCisgICAgICogQHBhcmFtIHZhbHVlIHRoZSBnaXZlbiBtaW5pbWFsIGRheXMgcmVxdWlyZWQgaW4gdGhlIGZpcnN0IHdlZWsKKyAgICAgKiBvZiB0aGUgeWVhci4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKGludCB2YWx1ZSkKKyAgICB7CisgICAgICAgIG1pbmltYWxEYXlzSW5GaXJzdFdlZWsgPSB2YWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHdoYXQgdGhlIG1pbmltYWwgZGF5cyByZXF1aXJlZCBpbiB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhciBhcmU7CisgICAgICogZS5nLiwgaWYgdGhlIGZpcnN0IHdlZWsgaXMgZGVmaW5lZCBhcyBvbmUgdGhhdCBjb250YWlucyB0aGUgZmlyc3QgZGF5CisgICAgICogb2YgdGhlIGZpcnN0IG1vbnRoIG9mIGEgeWVhciwgZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlayByZXR1cm5zIDEuIElmCisgICAgICogdGhlIG1pbmltYWwgZGF5cyByZXF1aXJlZCBtdXN0IGJlIGEgZnVsbCB3ZWVrLCBnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrCisgICAgICogcmV0dXJucyA3LgorICAgICAqIEByZXR1cm4gdGhlIG1pbmltYWwgZGF5cyByZXF1aXJlZCBpbiB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1pbmltYWxEYXlzSW5GaXJzdFdlZWs7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExJTUlUU1tdW10gPSB7CisgICAgICAgIC8vICAgIE1pbmltdW0gIEdyZWF0ZXN0IG1pbiAgICAgIExlYXN0IG1heCAgIEdyZWF0ZXN0IG1heAorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIEVSQQorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIFlFQVIKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBNT05USAorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIFdFRUtfT0ZfWUVBUgorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIFdFRUtfT0ZfTU9OVEgKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBEQVlfT0ZfTU9OVEgKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBEQVlfT0ZfWUVBUgorICAgICAgICB7ICAgICAgICAgICAxLCAgICAgICAgICAgIDEsICAgICAgICAgICAgIDcsICAgICAgICAgICAgIDcgIH0sIC8vIERBWV9PRl9XRUVLCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gREFZX09GX1dFRUtfSU5fTU9OVEgKKyAgICAgICAgeyAgICAgICAgICAgMCwgICAgICAgICAgICAwLCAgICAgICAgICAgICAxLCAgICAgICAgICAgICAxICB9LCAvLyBBTV9QTQorICAgICAgICB7ICAgICAgICAgICAwLCAgICAgICAgICAgIDAsICAgICAgICAgICAgMTEsICAgICAgICAgICAgMTEgIH0sIC8vIEhPVVIKKyAgICAgICAgeyAgICAgICAgICAgMCwgICAgICAgICAgICAwLCAgICAgICAgICAgIDIzLCAgICAgICAgICAgIDIzICB9LCAvLyBIT1VSX09GX0RBWQorICAgICAgICB7ICAgICAgICAgICAwLCAgICAgICAgICAgIDAsICAgICAgICAgICAgNTksICAgICAgICAgICAgNTkgIH0sIC8vIE1JTlVURQorICAgICAgICB7ICAgICAgICAgICAwLCAgICAgICAgICAgIDAsICAgICAgICAgICAgNTksICAgICAgICAgICAgNTkgIH0sIC8vIFNFQ09ORAorICAgICAgICB7ICAgICAgICAgICAwLCAgICAgICAgICAgIDAsICAgICAgICAgICA5OTksICAgICAgICAgICA5OTkgIH0sIC8vIE1JTExJU0VDT05ECisgICAgICAgIHstMTIqT05FX0hPVVIsIC0xMipPTkVfSE9VUiwgICAxMipPTkVfSE9VUiwgICAxMipPTkVfSE9VUiAgfSwgLy8gWk9ORV9PRkZTRVQKKyAgICAgICAgeyAgICAgICAgICAgMCwgICAgICAgICAgICAwLCAgICAxKk9ORV9IT1VSLCAgICAxKk9ORV9IT1VSICB9LCAvLyBEU1RfT0ZGU0VUCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gWUVBUl9XT1kKKyAgICAgICAgeyAgICAgICAgICAgMSwgICAgICAgICAgICAxLCAgICAgICAgICAgICA3LCAgICAgICAgICAgICA3ICB9LCAvLyBET1dfTE9DQUwKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBFWFRFTkRFRF9ZRUFSCisgICAgICAgIHsgLTB4N0YwMDAwMDAsICAtMHg3RjAwMDAwMCwgICAgMHg3RjAwMDAwMCwgICAgMHg3RjAwMDAwMCAgfSwgLy8gSlVMSUFOX0RBWQorICAgICAgICB7ICAgICAgICAgICAwLCAgICAgICAgICAgIDAsIDI0Kk9ORV9IT1VSLTEsIDI0Kk9ORV9IT1VSLTEgIH0sIC8vIE1JTExJU0VDT05EU19JTl9EQVkKKyAgICB9OworCisgICAgLyoqCisgICAgICogU3ViY2xhc3MgQVBJIGZvciBkZWZpbmluZyBsaW1pdHMgb2YgZGlmZmVyZW50IHR5cGVzLgorICAgICAqIFN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQgdGhpcyBtZXRob2QgdG8gcmV0dXJuIGxpbWl0cyBmb3IgdGhlCisgICAgICogZm9sbG93aW5nIGZpZWxkczoKKyAgICAgKgorICAgICAqIDxwcmU+RVJBCisgICAgICogWUVBUgorICAgICAqIE1PTlRICisgICAgICogV0VFS19PRl9ZRUFSCisgICAgICogV0VFS19PRl9NT05USAorICAgICAqIERBWV9PRl9NT05USAorICAgICAqIERBWV9PRl9ZRUFSCisgICAgICogREFZX09GX1dFRUtfSU5fTU9OVEgKKyAgICAgKiBZRUFSX1dPWQorICAgICAqIEVYVEVOREVEX1lFQVI8L3ByZT4KKyAgICAgKgorICAgICAqIEBwYXJhbSBmaWVsZCBvbmUgb2YgdGhlIGFib3ZlIGZpZWxkIG51bWJlcnMKKyAgICAgKiBAcGFyYW0gbGltaXRUeXBlIG9uZSBvZiA8Y29kZT5NSU5JTVVNPC9jb2RlPiwgPGNvZGU+R1JFQVRFU1RfTUlOSU1VTTwvY29kZT4sCisgICAgICogPGNvZGU+TEVBU1RfTUFYSU1VTTwvY29kZT4sIG9yIDxjb2RlPk1BWElNVU08L2NvZGU+CisgICAgICovCisgICAgYWJzdHJhY3QgcHJvdGVjdGVkIGludCBoYW5kbGVHZXRMaW1pdChpbnQgZmllbGQsIGludCBsaW1pdFR5cGUpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgbGltaXQgZm9yIGEgZmllbGQuCisgICAgICogQHBhcmFtIGZpZWxkIHRoZSBmaWVsZCwgZnJvbSAwLi48L2NvZGU+Z2V0RmllbGRDb3VudCgpLTE8L2NvZGU+CisgICAgICogQHBhcmFtIGxpbWl0VHlwZSB0aGUgdHlwZSBzcGVjaWZpZXIgZm9yIHRoZSBsaW1pdAorICAgICAqIEBzZWUgI01JTklNVU0KKyAgICAgKiBAc2VlICNHUkVBVEVTVF9NSU5JTVVNCisgICAgICogQHNlZSAjTEVBU1RfTUFYSU1VTQorICAgICAqIEBzZWUgI01BWElNVU0KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGdldExpbWl0KGludCBmaWVsZCwgaW50IGxpbWl0VHlwZSkgeworICAgICAgICBzd2l0Y2ggKGZpZWxkKSB7CisgICAgICAgIGNhc2UgREFZX09GX1dFRUs6CisgICAgICAgIGNhc2UgQU1fUE06CisgICAgICAgIGNhc2UgSE9VUjoKKyAgICAgICAgY2FzZSBIT1VSX09GX0RBWToKKyAgICAgICAgY2FzZSBNSU5VVEU6CisgICAgICAgIGNhc2UgU0VDT05EOgorICAgICAgICBjYXNlIE1JTExJU0VDT05EOgorICAgICAgICBjYXNlIFpPTkVfT0ZGU0VUOgorICAgICAgICBjYXNlIERTVF9PRkZTRVQ6CisgICAgICAgIGNhc2UgRE9XX0xPQ0FMOgorICAgICAgICBjYXNlIEpVTElBTl9EQVk6CisgICAgICAgIGNhc2UgTUlMTElTRUNPTkRTX0lOX0RBWToKKyAgICAgICAgICAgIHJldHVybiBMSU1JVFNbZmllbGRdW2xpbWl0VHlwZV07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGhhbmRsZUdldExpbWl0KGZpZWxkLCBsaW1pdFR5cGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIExpbWl0IHR5cGUgZm9yIDxjb2RlPmdldExpbWl0KCk8L2NvZGU+IGFuZCA8Y29kZT5oYW5kbGVHZXRMaW1pdCgpPC9jb2RlPgorICAgICAqIGluZGljYXRpbmcgdGhlIG1pbmltdW0gdmFsdWUgdGhhdCBhIGZpZWxkIGNhbiB0YWtlIChsZWFzdCBtaW5pbXVtKS4KKyAgICAgKiBAc2VlICNnZXRMaW1pdAorICAgICAqIEBzZWUgI2hhbmRsZUdldExpbWl0CisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUlOSU1VTSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBMaW1pdCB0eXBlIGZvciA8Y29kZT5nZXRMaW1pdCgpPC9jb2RlPiBhbmQgPGNvZGU+aGFuZGxlR2V0TGltaXQoKTwvY29kZT4KKyAgICAgKiBpbmRpY2F0aW5nIHRoZSBncmVhdGVzdCBtaW5pbXVtIHZhbHVlIHRoYXQgYSBmaWVsZCBjYW4gdGFrZS4KKyAgICAgKiBAc2VlICNnZXRMaW1pdAorICAgICAqIEBzZWUgI2hhbmRsZUdldExpbWl0CisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgR1JFQVRFU1RfTUlOSU1VTSA9IDE7CisKKyAgICAvKioKKyAgICAgKiBMaW1pdCB0eXBlIGZvciA8Y29kZT5nZXRMaW1pdCgpPC9jb2RlPiBhbmQgPGNvZGU+aGFuZGxlR2V0TGltaXQoKTwvY29kZT4KKyAgICAgKiBpbmRpY2F0aW5nIHRoZSBsZWFzdCBtYXhpbXVtIHZhbHVlIHRoYXQgYSBmaWVsZCBjYW4gdGFrZS4KKyAgICAgKiBAc2VlICNnZXRMaW1pdAorICAgICAqIEBzZWUgI2hhbmRsZUdldExpbWl0CisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTEVBU1RfTUFYSU1VTSA9IDI7CisKKyAgICAvKioKKyAgICAgKiBMaW1pdCB0eXBlIGZvciA8Y29kZT5nZXRMaW1pdCgpPC9jb2RlPiBhbmQgPGNvZGU+aGFuZGxlR2V0TGltaXQoKTwvY29kZT4KKyAgICAgKiBpbmRpY2F0aW5nIHRoZSBtYXhpbXVtIHZhbHVlIHRoYXQgYSBmaWVsZCBjYW4gdGFrZSAoZ3JlYXRlc3QgbWF4aW11bSkuCisgICAgICogQHNlZSAjZ2V0TGltaXQKKyAgICAgKiBAc2VlICNoYW5kbGVHZXRMaW1pdAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1BWElNVU0gPSAzOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbWluaW11bSB2YWx1ZSBmb3IgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogZS5nLiwgZm9yIEdyZWdvcmlhbiBEQVlfT0ZfTU9OVEgsIDEuCisgICAgICogQHBhcmFtIGZpZWxkIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIEByZXR1cm4gdGhlIG1pbmltdW0gdmFsdWUgZm9yIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0TWluaW11bShpbnQgZmllbGQpIHsKKyAgICAgICAgcmV0dXJuIGdldExpbWl0KGZpZWxkLCBNSU5JTVVNKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBtYXhpbXVtIHZhbHVlIGZvciB0aGUgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKiBlLmcuIGZvciBHcmVnb3JpYW4gREFZX09GX01PTlRILCAzMS4KKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHJldHVybiB0aGUgbWF4aW11bSB2YWx1ZSBmb3IgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBnZXRNYXhpbXVtKGludCBmaWVsZCkgeworICAgICAgICByZXR1cm4gZ2V0TGltaXQoZmllbGQsIE1BWElNVU0pOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGhpZ2hlc3QgbWluaW11bSB2YWx1ZSBmb3IgdGhlIGdpdmVuIGZpZWxkIGlmIHZhcmllcy4KKyAgICAgKiBPdGhlcndpc2Ugc2FtZSBhcyBnZXRNaW5pbXVtKCkuIEZvciBHcmVnb3JpYW4sIG5vIGRpZmZlcmVuY2UuCisgICAgICogQHBhcmFtIGZpZWxkIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIEByZXR1cm4gdGhlIGhpZ2hlc3QgbWluaW11bSB2YWx1ZSBmb3IgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBnZXRHcmVhdGVzdE1pbmltdW0oaW50IGZpZWxkKSB7CisgICAgICAgIHJldHVybiBnZXRMaW1pdChmaWVsZCwgR1JFQVRFU1RfTUlOSU1VTSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbG93ZXN0IG1heGltdW0gdmFsdWUgZm9yIHRoZSBnaXZlbiBmaWVsZCBpZiB2YXJpZXMuCisgICAgICogT3RoZXJ3aXNlIHNhbWUgYXMgZ2V0TWF4aW11bSgpLiBlLmcuLCBmb3IgR3JlZ29yaWFuIERBWV9PRl9NT05USCwgMjguCisgICAgICogQHBhcmFtIGZpZWxkIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIEByZXR1cm4gdGhlIGxvd2VzdCBtYXhpbXVtIHZhbHVlIGZvciB0aGUgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldExlYXN0TWF4aW11bShpbnQgZmllbGQpIHsKKyAgICAgICAgcmV0dXJuIGdldExpbWl0KGZpZWxkLCBMRUFTVF9NQVhJTVVNKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBXZWVrZW5kIHN1cHBvcnQgLS0gZGV0ZXJtaW5pbmcgd2hpY2ggZGF5cyBvZiB0aGUgd2VlayBhcmUgdGhlIHdlZWtlbmQKKyAgICAvLyBpbiBhIGdpdmVuIGxvY2FsZQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHdoZXRoZXIgdGhlIGdpdmVuIGRheSBvZiB0aGUgd2VlayBpcyBhIHdlZWtkYXksIGEKKyAgICAgKiB3ZWVrZW5kIGRheSwgb3IgYSBkYXkgdGhhdCB0cmFuc2l0aW9ucyBmcm9tIG9uZSB0byB0aGUgb3RoZXIsCisgICAgICogaW4gdGhpcyBjYWxlbmRhciBzeXN0ZW0uICBJZiBhIHRyYW5zaXRpb24gb2NjdXJzIGF0IG1pZG5pZ2h0LAorICAgICAqIHRoZW4gdGhlIGRheXMgYmVmb3JlIGFuZCBhZnRlciB0aGUgdHJhbnNpdGlvbiB3aWxsIGhhdmUgdGhlCisgICAgICogdHlwZSBXRUVLREFZIG9yIFdFRUtFTkQuICBJZiBhIHRyYW5zaXRpb24gb2NjdXJzIGF0IGEgdGltZQorICAgICAqIG90aGVyIHRoYW4gbWlkbmlnaHQsIHRoZW4gdGhlIGRheSBvZiB0aGUgdHJhbnNpdGlvbiB3aWxsIGhhdmUKKyAgICAgKiB0aGUgdHlwZSBXRUVLRU5EX09OU0VUIG9yIFdFRUtFTkRfQ0VBU0UuICBJbiB0aGlzIGNhc2UsIHRoZQorICAgICAqIG1ldGhvZCBnZXRXZWVrZW5kVHJhbnNpdGlvbigpIHdpbGwgcmV0dXJuIHRoZSBwb2ludCBvZgorICAgICAqIHRyYW5zaXRpb24uCisgICAgICogQHBhcmFtIGRheU9mV2VlayBlaXRoZXIgU1VOREFZLCBNT05EQVksIFRVRVNEQVksIFdFRE5FU0RBWSwKKyAgICAgKiBUSFVSU0RBWSwgRlJJREFZLCBvciBTQVRVUkRBWQorICAgICAqIEByZXR1cm4gZWl0aGVyIFdFRUtEQVksIFdFRUtFTkQsIFdFRUtFTkRfT05TRVQsIG9yCisgICAgICogV0VFS0VORF9DRUFTRQorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIGRheU9mV2VlayBpcyBub3QKKyAgICAgKiBiZXR3ZWVuIFNVTkRBWSBhbmQgU0FUVVJEQVksIGluY2x1c2l2ZQorICAgICAqIEBzZWUgI1dFRUtEQVkKKyAgICAgKiBAc2VlICNXRUVLRU5ECisgICAgICogQHNlZSAjV0VFS0VORF9PTlNFVAorICAgICAqIEBzZWUgI1dFRUtFTkRfQ0VBU0UKKyAgICAgKiBAc2VlICNnZXRXZWVrZW5kVHJhbnNpdGlvbgorICAgICAqIEBzZWUgI2lzV2Vla2VuZChEYXRlKQorICAgICAqIEBzZWUgI2lzV2Vla2VuZCgpCisgICAgICovCisgICAgcHVibGljIGludCBnZXREYXlPZldlZWtUeXBlKGludCBkYXlPZldlZWspIHsKKyAgICAgICAgaWYgKGRheU9mV2VlayA8IFNVTkRBWSB8fCBkYXlPZldlZWsgPiBTQVRVUkRBWSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBkYXkgb2Ygd2VlayIpOworICAgICAgICB9CisgICAgICAgIGlmICh3ZWVrZW5kT25zZXQgPCB3ZWVrZW5kQ2Vhc2UpIHsKKyAgICAgICAgICAgIGlmIChkYXlPZldlZWsgPCB3ZWVrZW5kT25zZXQgfHwgZGF5T2ZXZWVrID4gd2Vla2VuZENlYXNlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFdFRUtEQVk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoZGF5T2ZXZWVrID4gd2Vla2VuZENlYXNlICYmIGRheU9mV2VlayA8IHdlZWtlbmRPbnNldCkgeworICAgICAgICAgICAgICAgIHJldHVybiBXRUVLREFZOworICAgICAgICAgICAgfQorICAgICAgICB9IAorICAgICAgICBpZiAoZGF5T2ZXZWVrID09IHdlZWtlbmRPbnNldCkgeworICAgICAgICAgICAgcmV0dXJuICh3ZWVrZW5kT25zZXRNaWxsaXMgPT0gMCkgPyBXRUVLRU5EIDogV0VFS0VORF9PTlNFVDsKKyAgICAgICAgfQorICAgICAgICBpZiAoZGF5T2ZXZWVrID09IHdlZWtlbmRDZWFzZSkgeworICAgICAgICAgICAgcmV0dXJuICh3ZWVrZW5kQ2Vhc2VNaWxsaXMgPT0gMCkgPyBXRUVLREFZIDogV0VFS0VORF9DRUFTRTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gV0VFS0VORDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHRpbWUgZHVyaW5nIHRoZSBkYXkgYXQgd2hpY2ggdGhlIHdlZWtlbmQgYmVnaW5zIG9yIGVuZCBpbgorICAgICAqIHRoaXMgY2FsZW5kYXIgc3lzdGVtLiAgSWYgZ2V0RGF5T2ZXZWVrVHlwZShkYXlPZldlZWspID09CisgICAgICogV0VFS0VORF9PTlNFVCByZXR1cm4gdGhlIHRpbWUgYXQgd2hpY2ggdGhlIHdlZWtlbmQgYmVnaW5zLiAgSWYKKyAgICAgKiBnZXREYXlPZldlZWtUeXBlKGRheU9mV2VlaykgPT0gV0VFS0VORF9DRUFTRSByZXR1cm4gdGhlIHRpbWUgYXQKKyAgICAgKiB3aGljaCB0aGUgd2Vla2VuZCBlbmRzLiAgSWYgZ2V0RGF5T2ZXZWVrVHlwZShkYXlPZldlZWspIGhhcyBzb21lCisgICAgICogb3RoZXIgdmFsdWUsIHRoZW4gdGhyb3cgYW4gZXhjZXB0aW9uLgorICAgICAqIEBwYXJhbSBkYXlPZldlZWsgZWl0aGVyIFNVTkRBWSwgTU9OREFZLCBUVUVTREFZLCBXRURORVNEQVksCisgICAgICogVEhVUlNEQVksIEZSSURBWSwgb3IgU0FUVVJEQVkKKyAgICAgKiBAcmV0dXJuIHRoZSBtaWxsaXNlY29uZHMgYWZ0ZXIgbWlkbmlnaHQgYXQgd2hpY2ggdGhlCisgICAgICogd2Vla2VuZCBiZWdpbnMgb3IgZW5kcworICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIGRheU9mV2VlayBpcyBub3QKKyAgICAgKiBXRUVLRU5EX09OU0VUIG9yIFdFRUtFTkRfQ0VBU0UKKyAgICAgKiBAc2VlICNnZXREYXlPZldlZWtUeXBlCisgICAgICogQHNlZSAjaXNXZWVrZW5kKERhdGUpCisgICAgICogQHNlZSAjaXNXZWVrZW5kKCkKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFdlZWtlbmRUcmFuc2l0aW9uKGludCBkYXlPZldlZWspIHsKKyAgICAgICAgaWYgKGRheU9mV2VlayA9PSB3ZWVrZW5kT25zZXQpIHsKKyAgICAgICAgICAgIHJldHVybiB3ZWVrZW5kT25zZXRNaWxsaXM7CisgICAgICAgIH0gZWxzZSBpZiAoZGF5T2ZXZWVrID09IHdlZWtlbmRDZWFzZSkgeworICAgICAgICAgICAgcmV0dXJuIHdlZWtlbmRDZWFzZU1pbGxpczsKKyAgICAgICAgfQorICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJOb3Qgd2Vla2VuZCB0cmFuc2l0aW9uIGRheSIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBkYXRlIGFuZCB0aW1lIGlzIGluIHRoZSB3ZWVrZW5kIGluCisgICAgICogdGhpcyBjYWxlbmRhciBzeXN0ZW0uICBFcXVpdmFsZW50IHRvIGNhbGxpbmcgc2V0VGltZSgpIGZvbGxvd2VkCisgICAgICogYnkgaXNXZWVrZW5kKCkuICBOb3RlOiBUaGlzIG1ldGhvZCBjaGFuZ2VzIHRoZSB0aW1lIHRoaXMKKyAgICAgKiBjYWxlbmRhciBpcyBzZXQgdG8uCisgICAgICogQHBhcmFtIGRhdGUgdGhlIGRhdGUgYW5kIHRpbWUKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIGRhdGUgYW5kIHRpbWUgaXMgcGFydCBvZiB0aGUKKyAgICAgKiB3ZWVrZW5kCisgICAgICogQHNlZSAjZ2V0RGF5T2ZXZWVrVHlwZQorICAgICAqIEBzZWUgI2dldFdlZWtlbmRUcmFuc2l0aW9uCisgICAgICogQHNlZSAjaXNXZWVrZW5kKCkKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc1dlZWtlbmQoRGF0ZSBkYXRlKSB7CisgICAgICAgIHNldFRpbWUoZGF0ZSk7CisgICAgICAgIHJldHVybiBpc1dlZWtlbmQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGlzIENhbGVuZGFyJ3MgY3VycmVudCBkYXRlIGFuZCB0aW1lIGlzIGluIHRoZQorICAgICAqIHdlZWtlbmQgaW4gdGhpcyBjYWxlbmRhciBzeXN0ZW0uCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBkYXRlIGFuZCB0aW1lIGlzIHBhcnQgb2YgdGhlCisgICAgICogd2Vla2VuZAorICAgICAqIEBzZWUgI2dldERheU9mV2Vla1R5cGUKKyAgICAgKiBAc2VlICNnZXRXZWVrZW5kVHJhbnNpdGlvbgorICAgICAqIEBzZWUgI2lzV2Vla2VuZChEYXRlKQorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzV2Vla2VuZCgpIHsKKyAgICAgICAgaW50IGRvdyA9ICBnZXQoREFZX09GX1dFRUspOworICAgICAgICBpbnQgZG93dCA9IGdldERheU9mV2Vla1R5cGUoZG93KTsKKyAgICAgICAgc3dpdGNoIChkb3d0KSB7CisgICAgICAgIGNhc2UgV0VFS0RBWToKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgY2FzZSBXRUVLRU5EOgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGRlZmF1bHQ6IC8vIFRoYXQgaXMsIFdFRUtFTkRfT05TRVQgb3IgV0VFS0VORF9DRUFTRQorICAgICAgICAgICAgLy8gVXNlIGludGVybmFsR2V0KCkgYmVjYXVzZSB0aGUgYWJvdmUgY2FsbCB0byBnZXQoKSBwb3B1bGF0ZWQKKyAgICAgICAgICAgIC8vIGFsbCBmaWVsZHMuCisgICAgICAgICAgICAvLyBbTm90ZTogVGhlcmUgc2hvdWxkIGJlIGEgYmV0dGVyIHdheSB0byBnZXQgbWlsbGlzIGluIGRheS4KKyAgICAgICAgICAgIC8vICBGb3IgSUNVNEosIHN1Ym1pdCByZXF1ZXN0IGZvciBhIE1JTExJU19JTl9EQVkgZmllbGQKKyAgICAgICAgICAgIC8vICBhbmQgYSBEQVlfTlVNQkVSIGZpZWxkIChjb3VsZCBiZSBKdWxpYW4gZGF5ICMpLiAtIGFsaXVdCisgICAgICAgICAgICBpbnQgbWlsbGlzSW5EYXkgPSBpbnRlcm5hbEdldChNSUxMSVNFQ09ORCkgKyAxMDAwICogKGludGVybmFsR2V0KFNFQ09ORCkgKworICAgICAgICAgICAgICAgIDYwICogKGludGVybmFsR2V0KE1JTlVURSkgKyA2MCAqIGludGVybmFsR2V0KEhPVVJfT0ZfREFZKSkpOworICAgICAgICAgICAgaW50IHRyYW5zaXRpb24gPSBnZXRXZWVrZW5kVHJhbnNpdGlvbihkb3cpOworICAgICAgICAgICAgcmV0dXJuIChkb3d0ID09IFdFRUtFTkRfT05TRVQpCisgICAgICAgICAgICAgICAgPyAobWlsbGlzSW5EYXkgPj0gdHJhbnNpdGlvbikKKyAgICAgICAgICAgICAgICA6IChtaWxsaXNJbkRheSA8ICB0cmFuc2l0aW9uKTsKKyAgICAgICAgfQorICAgICAgICAvLyAoV2UgY2FuIG5ldmVyIHJlYWNoIHRoaXMgcG9pbnQuKQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJlYWQgdGhlIGxvY2FsZSB3ZWVrZW5kIGRhdGEgZm9yIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBUaGlzIGlzIHRoZSBpbml0aWFsIHBsYWNlbWVudCBhbmQgZm9ybWF0IG9mIHRoaXMgZGF0YSAtLSBpdCBtYXkgdmVyeQorICAgICAqIHdlbGwgY2hhbmdlIGluIHRoZSBmdXR1cmUuICBTZWUgdGhlIGxvY2FsZSBmaWxlcyB0aGVtc2VsdmVzIGZvcgorICAgICAqIGRldGFpbHMuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHNldFdlZWtlbmREYXRhKExvY2FsZSBsb2MpIHsKKyAgICAgICAgUmVzb3VyY2VCdW5kbGUgcmVzb3VyY2UgPQorICAgICAgICAgICAgSUNVTG9jYWxlRGF0YS5nZXRSZXNvdXJjZUJ1bmRsZSgiQ2FsZW5kYXJEYXRhIiwgbG9jKTsKKyAgICAgICAgU3RyaW5nW10gZGF0YSA9IHJlc291cmNlLmdldFN0cmluZ0FycmF5KCJXZWVrZW5kIik7CisgICAgICAgIHdlZWtlbmRPbnNldCAgICAgICA9IEludGVnZXIucGFyc2VJbnQoZGF0YVswXSk7CisgICAgICAgIHdlZWtlbmRPbnNldE1pbGxpcyA9IEludGVnZXIucGFyc2VJbnQoZGF0YVsxXSk7CisgICAgICAgIHdlZWtlbmRDZWFzZSAgICAgICA9IEludGVnZXIucGFyc2VJbnQoZGF0YVsyXSk7CisgICAgICAgIHdlZWtlbmRDZWFzZU1pbGxpcyA9IEludGVnZXIucGFyc2VJbnQoZGF0YVszXSk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gRW5kIG9mIHdlZWtlbmQgc3VwcG9ydAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIENsb25lYWJsZQorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIENhbGVuZGFyIG90aGVyID0gKENhbGVuZGFyKSBzdXBlci5jbG9uZSgpOworCisgICAgICAgICAgICBvdGhlci5maWVsZHMgPSBuZXcgaW50W2ZpZWxkcy5sZW5ndGhdOworICAgICAgICAgICAgb3RoZXIuc3RhbXAgPSBuZXcgaW50W2ZpZWxkcy5sZW5ndGhdOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0aGlzLmZpZWxkcywgMCwgb3RoZXIuZmllbGRzLCAwLCBmaWVsZHMubGVuZ3RoKTsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkodGhpcy5zdGFtcCwgMCwgb3RoZXIuc3RhbXAsIDAsIGZpZWxkcy5sZW5ndGgpOworCisgICAgICAgICAgICBvdGhlci56b25lID0gKFRpbWVab25lKSB6b25lLmNsb25lKCk7CisgICAgICAgICAgICByZXR1cm4gb3RoZXI7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIC8vIHRoaXMgc2hvdWxkbid0IGhhcHBlbiwgc2luY2Ugd2UgYXJlIENsb25lYWJsZQorICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIGNhbGVuZGFyLiBUaGlzIG1ldGhvZCAKKyAgICAgKiBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIG9ubHkgZm9yIGRlYnVnZ2luZyBwdXJwb3NlcywgYW5kIHRoZSAKKyAgICAgKiBmb3JtYXQgb2YgdGhlIHJldHVybmVkIHN0cmluZyBtYXkgdmFyeSBiZXR3ZWVuIGltcGxlbWVudGF0aW9ucy4gCisgICAgICogVGhlIHJldHVybmVkIHN0cmluZyBtYXkgYmUgZW1wdHkgYnV0IG1heSBub3QgYmUgPGNvZGU+bnVsbDwvY29kZT4uCisgICAgICogCisgICAgICogQHJldHVybiAgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBjYWxlbmRhci4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBidWZmZXIuYXBwZW5kKGdldENsYXNzKCkuZ2V0TmFtZSgpKTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZCgiW3RpbWU9Iik7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoaXNUaW1lU2V0ID8gU3RyaW5nLnZhbHVlT2YodGltZSkgOiAiPyIpOworICAgICAgICBidWZmZXIuYXBwZW5kKCIsYXJlRmllbGRzU2V0PSIpOworICAgICAgICBidWZmZXIuYXBwZW5kKGFyZUZpZWxkc1NldCk7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoIixhcmVBbGxGaWVsZHNTZXQ9Iik7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoYXJlQWxsRmllbGRzU2V0KTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZCgiLGxlbmllbnQ9Iik7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQobGVuaWVudCk7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoIix6b25lPSIpOworICAgICAgICBidWZmZXIuYXBwZW5kKHpvbmUpOworICAgICAgICBidWZmZXIuYXBwZW5kKCIsZmlyc3REYXlPZldlZWs9Iik7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoZmlyc3REYXlPZldlZWspOworICAgICAgICBidWZmZXIuYXBwZW5kKCIsbWluaW1hbERheXNJbkZpcnN0V2Vlaz0iKTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZChtaW5pbWFsRGF5c0luRmlyc3RXZWVrKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPGZpZWxkcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgnLCcpLmFwcGVuZChGSUVMRF9OQU1FW2ldKS5hcHBlbmQoJz0nKTsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoaXNTZXQoaSkgPyBTdHJpbmcudmFsdWVPZihmaWVsZHNbaV0pIDogIj8iKTsKKyAgICAgICAgfQorICAgICAgICBidWZmZXIuYXBwZW5kKCddJyk7CisgICAgICAgIHJldHVybiBidWZmZXIudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PXByaXZhdGVzPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogQm90aCBmaXJzdERheU9mV2VlayBhbmQgbWluaW1hbERheXNJbkZpcnN0V2VlayBhcmUgbG9jYWxlLWRlcGVuZGVudC4KKyAgICAgKiBUaGV5IGFyZSB1c2VkIHRvIGZpZ3VyZSBvdXQgdGhlIHdlZWsgY291bnQgZm9yIGEgc3BlY2lmaWMgZGF0ZSBmb3IKKyAgICAgKiBhIGdpdmVuIGxvY2FsZS4gVGhlc2UgbXVzdCBiZSBzZXQgd2hlbiBhIENhbGVuZGFyIGlzIGNvbnN0cnVjdGVkLgorICAgICAqIEBwYXJhbSBkZXNpcmVkTG9jYWxlIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHNldFdlZWtDb3VudERhdGEoTG9jYWxlIGRlc2lyZWRMb2NhbGUpCisgICAgeworICAgIC8qIHRyeSB0byBnZXQgdGhlIExvY2FsZSBkYXRhIGZyb20gdGhlIGNhY2hlICovCisgICAgaW50W10gZGF0YSA9IChpbnRbXSkgY2FjaGVkTG9jYWxlRGF0YS5nZXQoZGVzaXJlZExvY2FsZSk7CisgICAgaWYgKGRhdGEgPT0gbnVsbCkgeyAgLyogY2FjaGUgbWlzcyAqLworICAgICAgICBSZXNvdXJjZUJ1bmRsZSByZXNvdXJjZSA9IElDVUxvY2FsZURhdGEuZ2V0TG9jYWxlRWxlbWVudHMoZGVzaXJlZExvY2FsZSk7CisgICAgICAgIFN0cmluZ1tdIGRhdGVUaW1lUGF0dGVybnMgPQorICAgICAgICByZXNvdXJjZS5nZXRTdHJpbmdBcnJheSgiRGF0ZVRpbWVFbGVtZW50cyIpOworICAgICAgICBkYXRhID0gbmV3IGludFsyXTsKKyAgICAgICAgZGF0YVswXSA9IEludGVnZXIucGFyc2VJbnQoZGF0ZVRpbWVQYXR0ZXJuc1swXSk7CisgICAgICAgIGRhdGFbMV0gPSBJbnRlZ2VyLnBhcnNlSW50KGRhdGVUaW1lUGF0dGVybnNbMV0pOworICAgICAgICAvKiBjYWNoZSB1cGRhdGUgKi8KKyAgICAgICAgY2FjaGVkTG9jYWxlRGF0YS5wdXQoZGVzaXJlZExvY2FsZSwgZGF0YSk7CisgICAgfQorICAgIGZpcnN0RGF5T2ZXZWVrID0gZGF0YVswXTsKKyAgICBtaW5pbWFsRGF5c0luRmlyc3RXZWVrID0gZGF0YVsxXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWNvbXB1dGUgdGhlIHRpbWUgYW5kIHVwZGF0ZSB0aGUgc3RhdHVzIGZpZWxkcyBpc1RpbWVTZXQKKyAgICAgKiBhbmQgYXJlRmllbGRzU2V0LiAgQ2FsbGVycyBzaG91bGQgY2hlY2sgaXNUaW1lU2V0IGFuZCBvbmx5CisgICAgICogY2FsbCB0aGlzIG1ldGhvZCBpZiBpc1RpbWVTZXQgaXMgZmFsc2UuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHVwZGF0ZVRpbWUoKSB7CisgICAgICAgIGNvbXB1dGVUaW1lKCk7CisgICAgICAgIC8vIElmIHdlIGFyZSBsZW5pZW50LCB3ZSBuZWVkIHRvIHJlY29tcHV0ZSB0aGUgZmllbGRzIHRvIG5vcm1hbGl6ZQorICAgICAgICAvLyB0aGUgdmFsdWVzLiAgQWxzbywgaWYgd2UgaGF2ZW4ndCBzZXQgYWxsIHRoZSBmaWVsZHMgeWV0IChpLmUuLAorICAgICAgICAvLyBpbiBhIG5ld2x5LWNyZWF0ZWQgb2JqZWN0KSwgd2UgbmVlZCB0byBmaWxsIGluIHRoZSBmaWVsZHMuIFtMSVVdCisgICAgICAgIGlmIChpc0xlbmllbnQoKSB8fCAhYXJlQWxsRmllbGRzU2V0KSBhcmVGaWVsZHNTZXQgPSBmYWxzZTsKKyAgICAgICAgaXNUaW1lU2V0ID0gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTYXZlIHRoZSBzdGF0ZSBvZiB0aGlzIG9iamVjdCB0byBhIHN0cmVhbSAoaS5lLiwgc2VyaWFsaXplIGl0KS4KKyAgICAgKgorICAgICAqIElkZWFsbHksIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiB3b3VsZCBvbmx5IHdyaXRlIG91dCBpdHMgc3RhdGUgZGF0YSBhbmQKKyAgICAgKiB0aGUgY3VycmVudCB0aW1lLCBhbmQgbm90IHdyaXRlIGFueSBmaWVsZCBkYXRhIG91dCwgc3VjaCBhcworICAgICAqIDxjb2RlPmZpZWxkc1tdPC9jb2RlPiwgPGNvZGU+aXNUaW1lU2V0PC9jb2RlPiwgPGNvZGU+YXJlRmllbGRzU2V0PC9jb2RlPiwKKyAgICAgKiBhbmQgPGNvZGU+aXNTZXRbXTwvY29kZT4uICA8Y29kZT5uZXh0U3RhbXA8L2NvZGU+IGFsc28gc2hvdWxkIG5vdCBiZSBwYXJ0CisgICAgICogb2YgdGhlIHBlcnNpc3RlbnQgc3RhdGUuIFVuZm9ydHVuYXRlbHksIHRoaXMgZGlkbid0IGhhcHBlbiBiZWZvcmUgSkRLIDEuMQorICAgICAqIHNoaXBwZWQuIFRvIGJlIGNvbXBhdGlibGUgd2l0aCBKREsgMS4xLCB3ZSB3aWxsIGFsd2F5cyBoYXZlIHRvIHdyaXRlIG91dAorICAgICAqIHRoZSBmaWVsZCB2YWx1ZXMgYW5kIHN0YXRlIGZsYWdzLiAgSG93ZXZlciwgPGNvZGU+bmV4dFN0YW1wPC9jb2RlPiBjYW4gYmUKKyAgICAgKiByZW1vdmVkIGZyb20gdGhlIHNlcmlhbGl6YXRpb24gc3RyZWFtOyB0aGlzIHdpbGwgcHJvYmFibHkgaGFwcGVuIGluIHRoZQorICAgICAqIG5lYXIgZnV0dXJlLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCB3cml0ZU9iamVjdChPYmplY3RPdXRwdXRTdHJlYW0gc3RyZWFtKQorICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICAvLyBUcnkgdG8gY29tcHV0ZSB0aGUgdGltZSBjb3JyZWN0bHksIGZvciB0aGUgZnV0dXJlIChzdHJlYW0KKyAgICAgICAgLy8gdmVyc2lvbiAyKSBpbiB3aGljaCB3ZSBkb24ndCB3cml0ZSBvdXQgZmllbGRzW10gb3IgaXNTZXRbXS4KKyAgICAgICAgaWYgKCFpc1RpbWVTZXQpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgdXBkYXRlVGltZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7fQorICAgICAgICB9CisKKyAgICAgICAgLy8gV3JpdGUgb3V0IHRoZSAxLjEgRkNTIG9iamVjdC4KKyAgICAgICAgc3RyZWFtLmRlZmF1bHRXcml0ZU9iamVjdCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlY29uc3RpdHV0ZSB0aGlzIG9iamVjdCBmcm9tIGEgc3RyZWFtIChpLmUuLCBkZXNlcmlhbGl6ZSBpdCkuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHJlYWRPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0gc3RyZWFtKQorICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24sIENsYXNzTm90Rm91bmRFeGNlcHRpb24geworICAgICAgICAKKyAgICAgICAgc3RyZWFtLmRlZmF1bHRSZWFkT2JqZWN0KCk7CisKKyAgICAgICAgaW5pdEludGVybmFsKCk7CisKKyAgICAgICAgaXNUaW1lU2V0ID0gdHJ1ZTsKKyAgICAgICAgYXJlRmllbGRzU2V0ID0gYXJlQWxsRmllbGRzU2V0ID0gZmFsc2U7CisgICAgICAgIG5leHRTdGFtcCA9IE1JTklNVU1fVVNFUl9TVEFNUDsKKyAgICB9CisKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFRpbWUgLT4gRmllbGRzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0cyB0aGUgY3VycmVudCBtaWxsaXNlY29uZCB0aW1lIHZhbHVlIDxjb2RlPnRpbWU8L2NvZGU+IHRvCisgICAgICogZmllbGQgdmFsdWVzIGluIDxjb2RlPmZpZWxkc1tdPC9jb2RlPi4gIFRoaXMgc3luY2hyb25pemVzIHRoZSB0aW1lCisgICAgICogZmllbGQgdmFsdWVzIHdpdGggYSBuZXcgdGltZSB0aGF0IGlzIHNldCBmb3IgdGhlIGNhbGVuZGFyLiAgVGhlIHRpbWUKKyAgICAgKiBpcyA8ZW0+bm90PC9lbT4gcmVjb21wdXRlZCBmaXJzdDsgdG8gcmVjb21wdXRlIHRoZSB0aW1lLCB0aGVuIHRoZQorICAgICAqIGZpZWxkcywgY2FsbCB0aGUgPGNvZGU+Y29tcGxldGU8L2NvZGU+IG1ldGhvZC4KKyAgICAgKiBAc2VlICNjb21wbGV0ZQorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGNvbXB1dGVGaWVsZHMoKSB7CisgICAgICAgIGludCByYXdPZmZzZXQgPSBnZXRUaW1lWm9uZSgpLmdldFJhd09mZnNldCgpOworICAgICAgICBsb25nIGxvY2FsTWlsbGlzID0gdGltZSArIHJhd09mZnNldDsKKworICAgICAgICAvLyBNYXJrIGZpZWxkcyBhcyBzZXQuICBEbyB0aGlzIGJlZm9yZSBjYWxsaW5nIGhhbmRsZUNvbXB1dGVGaWVsZHMoKS4KKyAgICAgICAgaW50IG1hc2sgPSBpbnRlcm5hbFNldE1hc2s7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxmaWVsZHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmICgobWFzayAmIDEpID09IDApIHsKKyAgICAgICAgICAgICAgICBzdGFtcFtpXSA9IElOVEVSTkFMTFlfU0VUOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzdGFtcFtpXSA9IFVOU0VUOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbWFzayA+Pj0gMTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFdlIHVzZWQgdG8gY2hlY2sgZm9yIGFuZCBjb3JyZWN0IGV4dHJlbWUgbWlsbGlzIHZhbHVlcyAobmVhcgorICAgICAgICAvLyBMb25nLk1JTl9WQUxVRSBvciBMb25nLk1BWF9WQUxVRSkgaGVyZS4gIFN1Y2ggdmFsdWVzIHdvdWxkIGNhdXNlCisgICAgICAgIC8vIG92ZXJmbG93cyBmcm9tIHBvc2l0aXZlIHRvIG5lZ2F0aXZlIChvciB2aWNlIHZlcnNhKSBhbmQgaGFkIHRvCisgICAgICAgIC8vIGJlIG1hbnVhbGx5IHR3ZWFrZWQuICBXZSBubyBsb25nZXIgbmVlZCB0byBkbyB0aGlzIGJlY2F1c2Ugd2UKKyAgICAgICAgLy8gaGF2ZSBsaW1pdGVkIHRoZSByYW5nZSBvZiBzdXBwb3J0ZWQgZGF0ZXMgdG8gdGhvc2UgdGhhdCBoYXZlIGEKKyAgICAgICAgLy8gSnVsaWFuIGRheSB0aGF0IGZpdHMgaW50byBhbiBpbnQuICBUaGlzIGFsbG93cyB1cyB0byBpbXBsZW1lbnQgYQorICAgICAgICAvLyBKVUxJQU5fREFZIGZpZWxkIGFuZCBhbHNvIHJlbW92ZXMgc29tZSBpbmVsZWdhbnQgY29kZS4gLSBMaXUKKyAgICAgICAgLy8gMTEvNi8wMAorCisgICAgICAgIGZpZWxkc1tKVUxJQU5fREFZXSA9IChpbnQpIGZsb29yRGl2aWRlKGxvY2FsTWlsbGlzLCBPTkVfREFZKSArCisgICAgICAgICAgICBFUE9DSF9KVUxJQU5fREFZOworCisgICAgICAgIC8vIEluIHNvbWUgY2FzZXMgd2Ugd2lsbCBoYXZlIHRvIGNhbGwgdGhpcyBtZXRob2QgYWdhaW4gYmVsb3cgdG8KKyAgICAgICAgLy8gYWRqdXN0IGZvciBEU1QgcHVzaGluZyB1cyBpbnRvIHRoZSBuZXh0IEp1bGlhbiBkYXkuCisgICAgICAgIGNvbXB1dGVHcmVnb3JpYW5BbmRET1dGaWVsZHMoZmllbGRzW0pVTElBTl9EQVldKTsKKworICAgICAgICBsb25nIGRheXMgPSAobG9uZykgKGxvY2FsTWlsbGlzIC8gT05FX0RBWSk7CisgICAgICAgIGludCBtaWxsaXNJbkRheSA9IChpbnQpIChsb2NhbE1pbGxpcyAtIChkYXlzICogT05FX0RBWSkpOworICAgICAgICBpZiAobWlsbGlzSW5EYXkgPCAwKSBtaWxsaXNJbkRheSArPSBPTkVfREFZOworCisgICAgICAgIC8vIENhbGwgZ2V0T2Zmc2V0KCkgdG8gZ2V0IHRoZSBUaW1lWm9uZSBvZmZzZXQuICBUaGUgbWlsbGlzSW5EYXkgdmFsdWUKKyAgICAgICAgLy8gbXVzdCBiZSBfc3RhbmRhcmRfIGxvY2FsIHpvbmUgbWlsbGlzLgorICAgICAgICBpbnQgZHN0T2Zmc2V0ID0gZ2V0VGltZVpvbmUoKS5nZXRPZmZzZXQoCisgICAgICAgICAgICAgICAgZ3JlZ29yaWFuWWVhciwgZ3JlZ29yaWFuTW9udGgsCisgICAgICAgICAgICAgICAgZ3JlZ29yaWFuRGF5T2ZNb250aCwKKyAgICAgICAgICAgICAgICBmaWVsZHNbREFZX09GX1dFRUtdLAorICAgICAgICAgICAgICAgIG1pbGxpc0luRGF5LAorICAgICAgICAgICAgICAgIGdyZWdvcmlhbk1vbnRoTGVuZ3RoKGdyZWdvcmlhblllYXIsIGdyZWdvcmlhbk1vbnRoKSwKKyAgICAgICAgICAgICAgICBncmVnb3JpYW5QcmV2aW91c01vbnRoTGVuZ3RoKGdyZWdvcmlhblllYXIsIGdyZWdvcmlhbk1vbnRoKSkKKyAgICAgICAgICAgIC0gcmF3T2Zmc2V0OworCisgICAgICAgIC8vIEFkanVzdCBvdXIgbWlsbGlzSW5EYXkgZm9yIERTVC4gIGRzdE9mZnNldCB3aWxsIGJlIHplcm8gaWYgRFNUCisgICAgICAgIC8vIGlzIG5vdCBpbiBlZmZlY3QgYXQgdGhpcyB0aW1lIG9mIHllYXIsIG9yIGlmIG91ciB6b25lIGRvZXMgbm90CisgICAgICAgIC8vIHVzZSBEU1QuCisgICAgICAgIG1pbGxpc0luRGF5ICs9IGRzdE9mZnNldDsKKworICAgICAgICAvLyBJZiBEU1QgaGFzIHB1c2hlZCB1cyBpbnRvIHRoZSBuZXh0IGRheSwgd2UgbXVzdCBjYWxsCisgICAgICAgIC8vIGNvbXB1dGVHcmVnb3JpYW5BbmRET1dGaWVsZHMoKSBhZ2Fpbi4gIFRoaXMgaGFwcGVucyBpbiBEU1QgYmV0d2VlbgorICAgICAgICAvLyAxMjowMCBhbSBhbmQgMTowMCBhbSBldmVyeSBkYXkuICBUaGUgZmlyc3QgY2FsbCB0bworICAgICAgICAvLyBjb21wdXRlR3JlZ29yaWFuQW5kRE9XRmllbGRzKCkgd2lsbCBnaXZlIHRoZSB3cm9uZyBkYXksIHNpbmNlIHRoZQorICAgICAgICAvLyBTdGFuZGFyZCB0aW1lIGlzIGluIHRoZSBwcmV2aW91cyBkYXkuCisgICAgICAgIGlmIChtaWxsaXNJbkRheSA+PSBPTkVfREFZKSB7CisgICAgICAgICAgICBtaWxsaXNJbkRheSAtPSBPTkVfREFZOyAvLyBBU1NVTUUgZHN0T2Zmc2V0IDwgMjQ6MDAKKworICAgICAgICAgICAgLy8gV2UgZG9uJ3Qgd29ycnkgYWJvdXQgb3ZlcmZsb3cgb2YgSlVMSUFOX0RBWSBiZWNhdXNlIHRoZQorICAgICAgICAgICAgLy8gYWxsb3dhYmxlIHJhbmdlIG9mIEpVTElBTl9EQVkgaGFzIHNsb3AgYXQgdGhlIGVuZHMgKHRoYXQgaXMsCisgICAgICAgICAgICAvLyB0aGUgbWF4IGlzIGxlc3MgdGhhdCAweDdGRkZGRkZGIGFuZCB0aGUgbWluIGlzIGdyZWF0ZXIgdGhhbgorICAgICAgICAgICAgLy8gLTB4ODAwMDAwMDApLgorICAgICAgICAgICAgY29tcHV0ZUdyZWdvcmlhbkFuZERPV0ZpZWxkcygrK2ZpZWxkc1tKVUxJQU5fREFZXSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBDYWxsIGZyYW1ld29yayBtZXRob2QgdG8gaGF2ZSBzdWJjbGFzcyBjb21wdXRlIGl0cyBmaWVsZHMuCisgICAgICAgIC8vIFRoZXNlIG11c3QgaW5jbHVkZSwgYXQgYSBtaW5pbXVtLCBNT05USCwgREFZX09GX01PTlRILAorICAgICAgICAvLyBFWFRFTkRFRF9ZRUFSLCBZRUFSLCBEQVlfT0ZfWUVBUi4gIFRoaXMgbWV0aG9kIHdpbGwgY2FsbCBpbnRlcm5hbFNldCgpLAorICAgICAgICAvLyB3aGljaCB3aWxsIHVwZGF0ZSBzdGFtcFtdLgorICAgICAgICBoYW5kbGVDb21wdXRlRmllbGRzKGZpZWxkc1tKVUxJQU5fREFZXSk7CisKKyAgICAgICAgLy8gQ29tcHV0ZSB3ZWVrLXJlbGF0ZWQgZmllbGRzLCBiYXNlZCBvbiB0aGUgc3ViY2xhc3MtY29tcHV0ZWQKKyAgICAgICAgLy8gZmllbGRzIGNvbXB1dGVkIGJ5IGhhbmRsZUNvbXB1dGVGaWVsZHMoKS4KKyAgICAgICAgY29tcHV0ZVdlZWtGaWVsZHMoKTsKKworICAgICAgICAvLyBDb21wdXRlIHRpbWUtcmVsYXRlZCBmaWVsZHMuICBUaGVzZSBhcmUgaW5kZXBlbnQgb2YgdGhlIGRhdGUgYW5kCisgICAgICAgIC8vIG9mIHRoZSBzdWJjbGFzcyBhbGdvcml0aG0uICBUaGV5IGRlcGVuZCBvbmx5IG9uIHRoZSBsb2NhbCB6b25lCisgICAgICAgIC8vIHdhbGwgbWlsbGlzZWNvbmRzIGluIGRheS4KKyAgICAgICAgZmllbGRzW01JTExJU0VDT05EU19JTl9EQVldID0gbWlsbGlzSW5EYXk7CisgICAgICAgIGZpZWxkc1tNSUxMSVNFQ09ORF0gPSBtaWxsaXNJbkRheSAlIDEwMDA7CisgICAgICAgIG1pbGxpc0luRGF5IC89IDEwMDA7CisgICAgICAgIGZpZWxkc1tTRUNPTkRdID0gbWlsbGlzSW5EYXkgJSA2MDsKKyAgICAgICAgbWlsbGlzSW5EYXkgLz0gNjA7CisgICAgICAgIGZpZWxkc1tNSU5VVEVdID0gbWlsbGlzSW5EYXkgJSA2MDsKKyAgICAgICAgbWlsbGlzSW5EYXkgLz0gNjA7CisgICAgICAgIGZpZWxkc1tIT1VSX09GX0RBWV0gPSBtaWxsaXNJbkRheTsKKyAgICAgICAgZmllbGRzW0FNX1BNXSA9IG1pbGxpc0luRGF5IC8gMTI7IC8vIEFzc3VtZSBBTSA9PSAwCisgICAgICAgIGZpZWxkc1tIT1VSXSA9IG1pbGxpc0luRGF5ICUgMTI7CisgICAgICAgIGZpZWxkc1taT05FX09GRlNFVF0gPSByYXdPZmZzZXQ7CisgICAgICAgIGZpZWxkc1tEU1RfT0ZGU0VUXSA9IGRzdE9mZnNldDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wdXRlIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIgeWVhciwgbW9udGgsIGFuZCBkYXkgb2YgbW9udGggZnJvbQorICAgICAqIHRoZSBnaXZlbiBKdWxpYW4gZGF5LiAgVGhlc2UgdmFsdWVzIGFyZSBub3Qgc3RvcmVkIGluIGZpZWxkcywgYnV0IGluCisgICAgICogbWVtYmVyIHZhcmlhYmxlcyBncmVnb3JpYW5YeHguICBBbHNvIGNvbXB1dGUgdGhlIERBWV9PRl9XRUVLIGFuZAorICAgICAqIERPV19MT0NBTCBmaWVsZHMuCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCB2b2lkIGNvbXB1dGVHcmVnb3JpYW5BbmRET1dGaWVsZHMoaW50IGp1bGlhbkRheSkgeworICAgICAgICBjb21wdXRlR3JlZ29yaWFuRmllbGRzKGp1bGlhbkRheSk7CisKKyAgICAgICAgLy8gQ29tcHV0ZSBkYXkgb2Ygd2VlazogSkQgMCA9IE1vbmRheQorICAgICAgICBpbnQgZG93ID0gZmllbGRzW0RBWV9PRl9XRUVLXSA9IGp1bGlhbkRheVRvRGF5T2ZXZWVrKGp1bGlhbkRheSk7CisKKyAgICAgICAgLy8gQ2FsY3VsYXRlIDEtYmFzZWQgbG9jYWxpemVkIGRheSBvZiB3ZWVrCisgICAgICAgIGludCBkb3dMb2NhbCA9IGRvdyAtIGdldEZpcnN0RGF5T2ZXZWVrKCkgKyAxOworICAgICAgICBpZiAoZG93TG9jYWwgPCAxKSB7CisgICAgICAgICAgICBkb3dMb2NhbCArPSA3OworICAgICAgICB9CisgICAgICAgIGZpZWxkc1tET1dfTE9DQUxdID0gZG93TG9jYWw7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbXB1dGUgdGhlIEdyZWdvcmlhbiBjYWxlbmRhciB5ZWFyLCBtb250aCwgYW5kIGRheSBvZiBtb250aCBmcm9tIHRoZQorICAgICAqIEp1bGlhbiBkYXkuICBUaGVzZSB2YWx1ZXMgYXJlIG5vdCBzdG9yZWQgaW4gZmllbGRzLCBidXQgaW4gbWVtYmVyCisgICAgICogdmFyaWFibGVzIGdyZWdvcmlhblh4eC4gIFRoZXkgYXJlIHVzZWQgZm9yIHRpbWUgem9uZSBjb21wdXRhdGlvbnMgYW5kIGJ5CisgICAgICogc3ViY2xhc3NlcyB0aGF0IGFyZSBHcmVnb3JpYW4gZGVyaXZhdGl2ZXMuICBTdWJjbGFzc2VzIG1heSBjYWxsIHRoaXMKKyAgICAgKiBtZXRob2QgdG8gcGVyZm9ybSBhIEdyZWdvcmlhbiBjYWxlbmRhciBtaWxsaXMtPmZpZWxkcyBjb21wdXRhdGlvbi4KKyAgICAgKiBUbyBwZXJmb3JtIGEgR3JlZ29yaWFuIGNhbGVuZGFyIGZpZWxkcy0+bWlsbGlzIGNvbXB1dGF0aW9uLCBjYWxsCisgICAgICogY29tcHV0ZUdyZWdvcmlhbk1vbnRoU3RhcnQoKS4KKyAgICAgKiBAc2VlICNjb21wdXRlR3JlZ29yaWFuTW9udGhTdGFydAorICAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCB2b2lkIGNvbXB1dGVHcmVnb3JpYW5GaWVsZHMoaW50IGp1bGlhbkRheSkgeworICAgICAgICBpbnQgeWVhciwgbW9udGgsIGRheU9mTW9udGgsIGRheU9mWWVhcjsKKworICAgICAgICAvLyBUaGUgR3JlZ29yaWFuIGVwb2NoIGRheSBpcyB6ZXJvIGZvciBNb25kYXkgSmFudWFyeSAxLCB5ZWFyIDEuCisgICAgICAgIGxvbmcgZ3JlZ29yaWFuRXBvY2hEYXkgPSBqdWxpYW5EYXkgLSBKQU5fMV8xX0pVTElBTl9EQVk7CisKKyAgICAgICAgLy8gSGVyZSB3ZSBjb252ZXJ0IGZyb20gdGhlIGRheSBudW1iZXIgdG8gdGhlIG11bHRpcGxlIHJhZGl4CisgICAgICAgIC8vIHJlcHJlc2VudGF0aW9uLiAgV2UgdXNlIDQwMC15ZWFyLCAxMDAteWVhciwgYW5kIDQteWVhciBjeWNsZXMuCisgICAgICAgIC8vIEZvciBleGFtcGxlLCB0aGUgNC15ZWFyIGN5Y2xlIGhhcyA0IHllYXJzICsgMSBsZWFwIGRheTsgZ2l2aW5nCisgICAgICAgIC8vIDE0NjEgPT0gMzY1KjQgKyAxIGRheXMuCisgICAgICAgIGludFtdIHJlbSA9IG5ldyBpbnRbMV07CisgICAgICAgIGludCBuNDAwID0gZmxvb3JEaXZpZGUoZ3JlZ29yaWFuRXBvY2hEYXksIDE0NjA5NywgcmVtKTsgLy8gNDAwLXllYXIgY3ljbGUgbGVuZ3RoCisgICAgICAgIGludCBuMTAwID0gZmxvb3JEaXZpZGUocmVtWzBdLCAzNjUyNCwgcmVtKTsgLy8gMTAwLXllYXIgY3ljbGUgbGVuZ3RoCisgICAgICAgIGludCBuNCA9IGZsb29yRGl2aWRlKHJlbVswXSwgMTQ2MSwgcmVtKTsgLy8gNC15ZWFyIGN5Y2xlIGxlbmd0aAorICAgICAgICBpbnQgbjEgPSBmbG9vckRpdmlkZShyZW1bMF0sIDM2NSwgcmVtKTsKKyAgICAgICAgeWVhciA9IDQwMCpuNDAwICsgMTAwKm4xMDAgKyA0Km40ICsgbjE7CisgICAgICAgIGRheU9mWWVhciA9IHJlbVswXTsgLy8gemVyby1iYXNlZCBkYXkgb2YgeWVhcgorICAgICAgICBpZiAobjEwMCA9PSA0IHx8IG4xID09IDQpIHsKKyAgICAgICAgICAgIGRheU9mWWVhciA9IDM2NTsgLy8gRGVjIDMxIGF0IGVuZCBvZiA0LSBvciA0MDAteXIgY3ljbGUKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICsreWVhcjsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gaXNMZWFwID0gKCh5ZWFyJjB4MykgPT0gMCkgJiYgLy8gZXF1aXYuIHRvICh5ZWFyJTQgPT0gMCkKKyAgICAgICAgICAgICh5ZWFyJTEwMCAhPSAwIHx8IHllYXIlNDAwID09IDApOworCisgICAgICAgIGludCBjb3JyZWN0aW9uID0gMDsKKyAgICAgICAgaW50IG1hcmNoMSA9IGlzTGVhcCA/IDYwIDogNTk7IC8vIHplcm8tYmFzZWQgRE9ZIGZvciBNYXJjaCAxCisgICAgICAgIGlmIChkYXlPZlllYXIgPj0gbWFyY2gxKSBjb3JyZWN0aW9uID0gaXNMZWFwID8gMSA6IDI7CisgICAgICAgIG1vbnRoID0gKDEyICogKGRheU9mWWVhciArIGNvcnJlY3Rpb24pICsgNikgLyAzNjc7IC8vIHplcm8tYmFzZWQgbW9udGgKKyAgICAgICAgZGF5T2ZNb250aCA9IGRheU9mWWVhciAtCisgICAgICAgICAgICBHUkVHT1JJQU5fTU9OVEhfQ09VTlRbbW9udGhdW2lzTGVhcD8zOjJdICsgMTsgLy8gb25lLWJhc2VkIERPTQorCisgICAgICAgIGdyZWdvcmlhblllYXIgPSB5ZWFyOworICAgICAgICBncmVnb3JpYW5Nb250aCA9IG1vbnRoOyAvLyAwLWJhc2VkIGFscmVhZHkKKyAgICAgICAgZ3JlZ29yaWFuRGF5T2ZNb250aCA9IGRheU9mTW9udGg7IC8vIDEtYmFzZWQgYWxyZWFkeQorICAgICAgICBncmVnb3JpYW5EYXlPZlllYXIgPSBkYXlPZlllYXIgKyAxOyAvLyBDb252ZXJ0IGZyb20gMC1iYXNlZCB0byAxLWJhc2VkCisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcHV0ZSB0aGUgZmllbGRzIFdFRUtfT0ZfWUVBUiwgWUVBUl9XT1ksIFdFRUtfT0ZfTU9OVEgsCisgICAgICogREFZX09GX1dFRUtfSU5fTU9OVEgsIGFuZCBET1dfTE9DQUwgZnJvbSBFWFRFTkRFRF9ZRUFSLCBZRUFSLAorICAgICAqIERBWV9PRl9XRUVLLCBhbmQgREFZX09GX1lFQVIuICBUaGUgbGF0dGVyIGZpZWxkcyBhcmUgY29tcHV0ZWQgYnkgdGhlCisgICAgICogc3ViY2xhc3MgYmFzZWQgb24gdGhlIGNhbGVuZGFyIHN5c3RlbS4KKyAgICAgKgorICAgICAqIDxwPlRoZSBZRUFSX1dPWSBmaWVsZCBpcyBjb21wdXRlZCBzaW1wbGlzdGljYWxseS4gIEl0IGlzIGVxdWFsIHRvIFlFQVIKKyAgICAgKiBtb3N0IG9mIHRoZSB0aW1lLCBidXQgYXQgdGhlIHllYXIgYm91bmRhcnkgaXQgbWF5IGJlIGFkanVzdGVkIHRvIFlFQVItMQorICAgICAqIG9yIFlFQVIrMSB0byByZWZsZWN0IHRoZSBvdmVybGFwIG9mIGEgd2VlayBpbnRvIGFuIGFkamFjZW50IHllYXIuICBJbgorICAgICAqIHRoaXMgY2FzZSwgYSBzaW1wbGUgaW5jcmVtZW50IG9yIGRlY3JlbWVudCBpcyBwZXJmb3JtZWQgb24gWUVBUiwgZXZlbgorICAgICAqIHRob3VnaCB0aGlzIG1heSB5aWVsZCBhbiBpbnZhbGlkIFlFQVIgdmFsdWUuICBGb3IgaW5zdGFuY2UsIGlmIHRoZSBZRUFSCisgICAgICogaXMgcGFydCBvZiBhIGNhbGVuZGFyIHN5c3RlbSB3aXRoIGFuIE4teWVhciBjeWNsZSBmaWVsZCBDWUNMRSwgdGhlbgorICAgICAqIGluY3JlbWVudGluZyB0aGUgWUVBUiBtYXkgaW52b2x2ZSBpbmNyZW1lbnRpbmcgQ1lDTEUgYW5kIHNldHRpbmcgWUVBUgorICAgICAqIGJhY2sgdG8gMCBvciAxLiAgVGhpcyBpcyBub3QgaGFuZGxlZCBieSB0aGlzIGNvZGUsIGFuZCBpbiBmYWN0IGNhbm5vdCBiZQorICAgICAqIHNpbXBseSBoYW5kbGVkIHdpdGhvdXQgaGF2aW5nIHN1YmNsYXNzZXMgZGVmaW5lIGFuIGVudGlyZSBwYXJhbGxlbCBzZXQgb2YKKyAgICAgKiBmaWVsZHMgZm9yIGZpZWxkcyBsYXJnZXIgdGhhbiBvciBlcXVhbCB0byBhIHllYXIuICBUaGlzIGFkZGl0aW9uYWwKKyAgICAgKiBjb21wbGV4aXR5IGlzIG5vdCB3YXJyYW50ZWQsIHNpbmNlIHRoZSBpbnRlbnRpb24gb2YgdGhlIFlFQVJfV09ZIGZpZWxkIGlzCisgICAgICogdG8gc3VwcG9ydCBJU08gODYwMSBub3RhdGlvbiwgc28gaXQgd2lsbCB0eXBpY2FsbHkgYmUgdXNlZCB3aXRoIGEKKyAgICAgKiBwcm9sZXB0aWMgR3JlZ29yaWFuIGNhbGVuZGFyLCB3aGljaCBoYXMgbm8gZmllbGQgbGFyZ2VyIHRoYW4gYSB5ZWFyLgorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgdm9pZCBjb21wdXRlV2Vla0ZpZWxkcygpIHsKKyAgICAgICAgaW50IGV5ZWFyID0gZmllbGRzW0VYVEVOREVEX1lFQVJdOworICAgICAgICBpbnQgeWVhciA9IGZpZWxkc1tZRUFSXTsKKyAgICAgICAgaW50IGRheU9mV2VlayA9IGZpZWxkc1tEQVlfT0ZfV0VFS107CisgICAgICAgIGludCBkYXlPZlllYXIgPSBmaWVsZHNbREFZX09GX1lFQVJdOworCisgICAgICAgIC8vIFdFRUtfT0ZfWUVBUiBzdGFydAorICAgICAgICAvLyBDb21wdXRlIHRoZSB3ZWVrIG9mIHRoZSB5ZWFyLiAgRm9yIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIsIHZhbGlkIHdlZWsKKyAgICAgICAgLy8gbnVtYmVycyBydW4gZnJvbSAxIHRvIDUyIG9yIDUzLCBkZXBlbmRpbmcgb24gdGhlIHllYXIsIHRoZSBmaXJzdCBkYXkKKyAgICAgICAgLy8gb2YgdGhlIHdlZWssIGFuZCB0aGUgbWluaW1hbCBkYXlzIGluIHRoZSBmaXJzdCB3ZWVrLiAgRm9yIG90aGVyCisgICAgICAgIC8vIGNhbGVuZGFycywgdGhlIHZhbGlkIHJhbmdlIG1heSBiZSBkaWZmZXJlbnQgLS0gaXQgZGVwZW5kcyBvbiB0aGUgeWVhcgorICAgICAgICAvLyBsZW5ndGguICBEYXlzIGF0IHRoZSBzdGFydCBvZiB0aGUgeWVhciBtYXkgZmFsbCBpbnRvIHRoZSBsYXN0IHdlZWsgb2YKKyAgICAgICAgLy8gdGhlIHByZXZpb3VzIHllYXI7IGRheXMgYXQgdGhlIGVuZCBvZiB0aGUgeWVhciBtYXkgZmFsbCBpbnRvIHRoZQorICAgICAgICAvLyBmaXJzdCB3ZWVrIG9mIHRoZSBuZXh0IHllYXIuICBBU1NVTUUgdGhhdCB0aGUgeWVhciBsZW5ndGggaXMgbGVzcyB0aGFuCisgICAgICAgIC8vIDcwMDAgZGF5cy4KKyAgICAgICAgaW50IHllYXJPZldlZWtPZlllYXIgPSB5ZWFyOworICAgICAgICBpbnQgcmVsRG93ID0gKGRheU9mV2VlayArIDcgLSBnZXRGaXJzdERheU9mV2VlaygpKSAlIDc7IC8vIDAuLjYKKyAgICAgICAgaW50IHJlbERvd0phbjEgPSAoZGF5T2ZXZWVrIC0gZGF5T2ZZZWFyICsgNzAwMSAtIGdldEZpcnN0RGF5T2ZXZWVrKCkpICUgNzsgLy8gMC4uNgorICAgICAgICBpbnQgd295ID0gKGRheU9mWWVhciAtIDEgKyByZWxEb3dKYW4xKSAvIDc7IC8vIDAuLjUzCisgICAgICAgIGlmICgoNyAtIHJlbERvd0phbjEpID49IGdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKSkgeworICAgICAgICAgICAgKyt3b3k7CisgICAgICAgIH0KKworICAgICAgICAvLyBBZGp1c3QgZm9yIHdlZWtzIGF0IHRoZSB5ZWFyIGVuZCB0aGF0IG92ZXJsYXAgaW50byB0aGUgcHJldmlvdXMgb3IKKyAgICAgICAgLy8gbmV4dCBjYWxlbmRhciB5ZWFyLgorICAgICAgICBpZiAod295ID09IDApIHsKKyAgICAgICAgICAgIC8vIFdlIGFyZSB0aGUgbGFzdCB3ZWVrIG9mIHRoZSBwcmV2aW91cyB5ZWFyLgorICAgICAgICAgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHdlIGFyZSBpbiB0aGUgbGFzdCB3ZWVrOyBpZiBzbywgd2UgbmVlZAorICAgICAgICAgICAgLy8gdG8gaGFuZGxlIHRoZSBjYXNlIGluIHdoaWNoIHdlIGFyZSB0aGUgZmlyc3Qgd2VlayBvZiB0aGUKKyAgICAgICAgICAgIC8vIG5leHQgeWVhci4KKworICAgICAgICAgICAgaW50IHByZXZEb3kgPSBkYXlPZlllYXIgKyBoYW5kbGVHZXRZZWFyTGVuZ3RoKGV5ZWFyIC0gMSk7CisgICAgICAgICAgICB3b3kgPSB3ZWVrTnVtYmVyKHByZXZEb3ksIGRheU9mV2Vlayk7CisgICAgICAgICAgICB5ZWFyT2ZXZWVrT2ZZZWFyLS07CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgbGFzdERveSA9IGhhbmRsZUdldFllYXJMZW5ndGgoZXllYXIpOworICAgICAgICAgICAgLy8gRmFzdCBjaGVjazogRm9yIGl0IHRvIGJlIHdlZWsgMSBvZiB0aGUgbmV4dCB5ZWFyLCB0aGUgRE9ZCisgICAgICAgICAgICAvLyBtdXN0IGJlIG9uIG9yIGFmdGVyIEwtNSwgd2hlcmUgTCBpcyB5ZWFyTGVuZ3RoKCksIHRoZW4gaXQKKyAgICAgICAgICAgIC8vIGNhbm5vdCBwb3NzaWJseSBiZSB3ZWVrIDEgb2YgdGhlIG5leHQgeWVhcjoKKyAgICAgICAgICAgIC8vICAgICAgICAgIEwtNSAgICAgICAgICAgICAgICAgIEwKKyAgICAgICAgICAgIC8vIGRveTogMzU5IDM2MCAzNjEgMzYyIDM2MyAzNjQgMzY1IDAwMQorICAgICAgICAgICAgLy8gZG93OiAgICAgIDEgICAyICAgMyAgIDQgICA1ICAgNiAgIDcKKyAgICAgICAgICAgIGlmIChkYXlPZlllYXIgPj0gKGxhc3REb3kgLSA1KSkgeworICAgICAgICAgICAgICAgIGludCBsYXN0UmVsRG93ID0gKHJlbERvdyArIGxhc3REb3kgLSBkYXlPZlllYXIpICUgNzsKKyAgICAgICAgICAgICAgICBpZiAobGFzdFJlbERvdyA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgbGFzdFJlbERvdyArPSA3OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoKCg2IC0gbGFzdFJlbERvdykgPj0gZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpKSAmJgorICAgICAgICAgICAgICAgICAgICAoKGRheU9mWWVhciArIDcgLSByZWxEb3cpID4gbGFzdERveSkpIHsKKyAgICAgICAgICAgICAgICAgICAgd295ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgeWVhck9mV2Vla09mWWVhcisrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmaWVsZHNbV0VFS19PRl9ZRUFSXSA9IHdveTsKKyAgICAgICAgZmllbGRzW1lFQVJfV09ZXSA9IHllYXJPZldlZWtPZlllYXI7CisgICAgICAgIC8vIFdFRUtfT0ZfWUVBUiBlbmQKKworICAgICAgICBpbnQgZGF5T2ZNb250aCA9IGZpZWxkc1tEQVlfT0ZfTU9OVEhdOworICAgICAgICBmaWVsZHNbV0VFS19PRl9NT05USF0gPSB3ZWVrTnVtYmVyKGRheU9mTW9udGgsIGRheU9mV2Vlayk7CisgICAgICAgIGZpZWxkc1tEQVlfT0ZfV0VFS19JTl9NT05USF0gPSAoZGF5T2ZNb250aC0xKSAvIDcgKyAxOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEZpZWxkcyAtPiBUaW1lCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSB0byBPUiBhZ2FpbnN0IHJlc29sdmUgdGFibGUgZmllbGQgdmFsdWVzIGZvciByZW1hcHBpbmcuCisgICAgICogQHNlZSAjcmVzb2x2ZUZpZWxkcworICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IFJFU09MVkVfUkVNQVAgPSAzMjsKKyAgICAvLyBBIHBvd2VyIG9mIDIgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIE1BWF9GSUVMRF9DT1VOVAorCisgICAgLy8gRGVmYXVsdCB0YWJsZSBmb3IgZGF5IGluIHllYXIKKyAgICBzdGF0aWMgZmluYWwgaW50W11bXVtdIERBVEVfUFJFQ0VERU5DRSA9IHsKKyAgICAgICAgeworICAgICAgICAgICAgeyBEQVlfT0ZfTU9OVEggfSwKKyAgICAgICAgICAgIHsgV0VFS19PRl9ZRUFSLCBEQVlfT0ZfV0VFSyB9LAorICAgICAgICAgICAgeyBXRUVLX09GX01PTlRILCBEQVlfT0ZfV0VFSyB9LAorICAgICAgICAgICAgeyBEQVlfT0ZfV0VFS19JTl9NT05USCwgREFZX09GX1dFRUsgfSwKKyAgICAgICAgICAgIHsgV0VFS19PRl9ZRUFSLCBET1dfTE9DQUwgfSwKKyAgICAgICAgICAgIHsgV0VFS19PRl9NT05USCwgRE9XX0xPQ0FMIH0sCisgICAgICAgICAgICB7IERBWV9PRl9XRUVLX0lOX01PTlRILCBET1dfTE9DQUwgfSwKKyAgICAgICAgICAgIHsgREFZX09GX1lFQVIgfSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgeyBXRUVLX09GX1lFQVIgfSwKKyAgICAgICAgICAgIHsgV0VFS19PRl9NT05USCB9LAorICAgICAgICAgICAgeyBEQVlfT0ZfV0VFS19JTl9NT05USCB9LAorICAgICAgICAgICAgeyBSRVNPTFZFX1JFTUFQIHwgREFZX09GX1dFRUtfSU5fTU9OVEgsIERBWV9PRl9XRUVLIH0sCisgICAgICAgICAgICB7IFJFU09MVkVfUkVNQVAgfCBEQVlfT0ZfV0VFS19JTl9NT05USCwgRE9XX0xPQ0FMIH0sCisgICAgICAgIH0sCisgICAgfTsKKworICAgIHN0YXRpYyBmaW5hbCBpbnRbXVtdW10gRE9XX1BSRUNFREVOQ0UgPSB7CisgICAgICAgIHsKKyAgICAgICAgICAgIHsgREFZX09GX1dFRUsgfSwKKyAgICAgICAgICAgIHsgRE9XX0xPQ0FMIH0sCisgICAgICAgIH0sCisgICAgfTsKKworICAgIC8qKgorICAgICAqIEdpdmVuIGEgcHJlY2VkZW5jZSB0YWJsZSwgcmV0dXJuIHRoZSBuZXdlc3QgZmllbGQgY29tYmluYXRpb24gaW4KKyAgICAgKiB0aGUgdGFibGUsIG9yIC0xIGlmIG5vbmUgaXMgZm91bmQuCisgICAgICoKKyAgICAgKiA8cD5UaGUgcHJlY2VkZW5jZSB0YWJsZSBpcyBhIDMtZGltZW5zaW9uYWwgYXJyYXkgb2YgaW50ZWdlcnMuICBJdAorICAgICAqIG1heSBiZSB0aG91Z2h0IG9mIGFzIGFuIGFycmF5IG9mIGdyb3Vwcy4gIEVhY2ggZ3JvdXAgaXMgYW4gYXJyYXkgb2YKKyAgICAgKiBsaW5lcy4gIEVhY2ggbGluZSBpcyBhbiBhcnJheSBvZiBmaWVsZCBudW1iZXJzLiAgV2l0aGluIGEgbGluZSwgaWYKKyAgICAgKiBhbGwgZmllbGRzIGFyZSBzZXQsIHRoZW4gdGhlIHRpbWUgc3RhbXAgb2YgdGhlIGxpbmUgaXMgdGFrZW4gdG8gYmUKKyAgICAgKiB0aGUgc3RhbXAgb2YgdGhlIG1vc3QgcmVjZW50bHkgc2V0IGZpZWxkLiAgSWYgYW55IGZpZWxkIG9mIGEgbGluZSBpcworICAgICAqIHVuc2V0LCB0aGVuIHRoZSBsaW5lIGZhaWxzIHRvIG1hdGNoLiAgV2l0aGluIGEgZ3JvdXAsIHRoZSBsaW5lIHdpdGgKKyAgICAgKiB0aGUgbmV3ZXN0IHRpbWUgc3RhbXAgaXMgc2VsZWN0ZWQuICBUaGUgZmlyc3QgZmllbGQgb2YgdGhlIGxpbmUgaXMKKyAgICAgKiByZXR1cm5lZCB0byBpbmRpY2F0ZSB3aGljaCBsaW5lIG1hdGNoZWQuCisgICAgICoKKyAgICAgKiA8cD5JbiBzb21lIGNhc2VzLCBpdCBtYXkgYmUgZGVzaXJhYmxlIHRvIG1hcCBhIGxpbmUgdG8gZmllbGQgdGhhdAorICAgICAqIHdob3NlIHN0YW1wIGlzIE5PVCBleGFtaW5lZC4gIEZvciBleGFtcGxlLCBpZiB0aGUgYmVzdCBmaWVsZCBpcworICAgICAqIERBWV9PRl9XRUVLIHRoZW4gdGhlIERBWV9PRl9XRUVLX0lOX01PTlRIIGFsZ29yaXRobSBtYXkgYmUgdXNlZC4gIEluCisgICAgICogb3JkZXIgdG8gZG8gdGhpcywgaW5zZXJ0IHRoZSB2YWx1ZSA8Y29kZT5SRU1BUF9SRVNPTFZFIHwgRjwvY29kZT4gYXQKKyAgICAgKiB0aGUgc3RhcnQgb2YgdGhlIGxpbmUsIHdoZXJlIDxjb2RlPkY8L2NvZGU+IGlzIHRoZSBkZXNpcmVkIHJldHVybgorICAgICAqIGZpZWxkIHZhbHVlLiAgVGhpcyBmaWVsZCB3aWxsIE5PVCBiZSBleGFtaW5lZDsgaXQgb25seSBkZXRlcm1pbmVzCisgICAgICogdGhlIHJldHVybiB2YWx1ZSBpZiB0aGUgb3RoZXIgZmllbGRzIGluIHRoZSBsaW5lIGFyZSB0aGUgbmV3ZXN0LgorICAgICAqCisgICAgICogPHA+SWYgYWxsIGxpbmVzIG9mIGEgZ3JvdXAgY29udGFpbiBhdCBsZWFzdCBvbmUgdW5zZXQgZmllbGQsIHRoZW4gbm8KKyAgICAgKiBsaW5lIHdpbGwgbWF0Y2gsIGFuZCB0aGUgZ3JvdXAgYXMgYSB3aG9sZSB3aWxsIGZhaWwgdG8gbWF0Y2guICBJbgorICAgICAqIHRoYXQgY2FzZSwgdGhlIG5leHQgZ3JvdXAgd2lsbCBiZSBwcm9jZXNzZWQuICBJZiBhbGwgZ3JvdXBzIGZhaWwgdG8KKyAgICAgKiBtYXRjaCwgdGhlbiAtMSBpcyByZXR1cm5lZC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IHJlc29sdmVGaWVsZHMoaW50W11bXVtdIHByZWNlZGVuY2VUYWJsZSkgeworICAgICAgICBpbnQgYmVzdEZpZWxkID0gLTE7CisgICAgICAgIGZvciAoaW50IGc9MDsgZzxwcmVjZWRlbmNlVGFibGUubGVuZ3RoICYmIGJlc3RGaWVsZCA8IDA7ICsrZykgeworICAgICAgICAgICAgaW50W11bXSBncm91cCA9IHByZWNlZGVuY2VUYWJsZVtnXTsKKyAgICAgICAgICAgIGludCBiZXN0U3RhbXAgPSBVTlNFVDsKKyAgICAgICAgbGluZXNJbkdyb3VwOgorICAgICAgICAgICAgZm9yIChpbnQgbD0wOyBsPGdyb3VwLmxlbmd0aDsgKytsKSB7CisgICAgICAgICAgICAgICAgaW50W10gbGluZT0gZ3JvdXBbbF07CisgICAgICAgICAgICAgICAgaW50IGxpbmVTdGFtcCA9IFVOU0VUOworICAgICAgICAgICAgICAgIC8vIFNraXAgb3ZlciBmaXJzdCBlbnRyeSBpZiBpdCBpcyBuZWdhdGl2ZQorICAgICAgICAgICAgICAgIGZvciAoaW50IGk9KGxpbmVbMF0+PVJFU09MVkVfUkVNQVApPzE6MDsgaTxsaW5lLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBzID0gc3RhbXBbbGluZVtpXV07CisgICAgICAgICAgICAgICAgICAgIC8vIElmIGFueSBmaWVsZCBpcyB1bnNldCB0aGVuIGRvbid0IHVzZSB0aGlzIGxpbmUKKyAgICAgICAgICAgICAgICAgICAgaWYgKHMgPT0gVU5TRVQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIGxpbmVzSW5Hcm91cDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVTdGFtcCA9IE1hdGgubWF4KGxpbmVTdGFtcCwgcyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gUmVjb3JkIG5ldyBtYXhpbXVtIHN0YW1wICYgZmllbGQgbm8uCisgICAgICAgICAgICAgICAgaWYgKGxpbmVTdGFtcCA+IGJlc3RTdGFtcCkgeworICAgICAgICAgICAgICAgICAgICBiZXN0U3RhbXAgPSBsaW5lU3RhbXA7CisgICAgICAgICAgICAgICAgICAgIGJlc3RGaWVsZCA9IGxpbmVbMF07IC8vIEZpcnN0IGZpZWxkIHJlZmVycyB0byBlbnRpcmUgbGluZQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKGJlc3RGaWVsZD49UkVTT0xWRV9SRU1BUCk/KGJlc3RGaWVsZCYoUkVTT0xWRV9SRU1BUC0xKSk6YmVzdEZpZWxkOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbmV3ZXN0IHN0YW1wIG9mIGEgZ2l2ZW4gcmFuZ2Ugb2YgZmllbGRzLgorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgbmV3ZXN0U3RhbXAoaW50IGZpcnN0LCBpbnQgbGFzdCwgaW50IGJlc3RTdGFtcFNvRmFyKSB7CisgICAgICAgIGludCBiZXN0U3RhbXAgPSBiZXN0U3RhbXBTb0ZhcjsKKyAgICAgICAgZm9yIChpbnQgaT1maXJzdDsgaTw9bGFzdDsgKytpKSB7CisgICAgICAgICAgICBpZiAoc3RhbXBbaV0gPiBiZXN0U3RhbXApIHsKKyAgICAgICAgICAgICAgICBiZXN0U3RhbXAgPSBzdGFtcFtpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYmVzdFN0YW1wOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgdGltZXN0YW1wIG9mIGEgZmllbGQuCisgICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIGludCBnZXRTdGFtcChpbnQgZmllbGQpIHsKKyAgICAgICAgcmV0dXJuIHN0YW1wW2ZpZWxkXTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBmaWVsZCB0aGF0IGlzIG5ld2VyLCBlaXRoZXIgZGVmYXVsdEZpZWxkLCBvcgorICAgICAqIGFsdGVybmF0ZUZpZWxkLiAgSWYgbmVpdGhlciBpcyBuZXdlciBvciBuZWl0aGVyIGlzIHNldCwgcmV0dXJuIGRlZmF1bHRGaWVsZC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IG5ld2VyRmllbGQoaW50IGRlZmF1bHRGaWVsZCwgaW50IGFsdGVybmF0ZUZpZWxkKSB7CisgICAgICAgIGlmIChzdGFtcFthbHRlcm5hdGVGaWVsZF0gPiBzdGFtcFtkZWZhdWx0RmllbGRdKSB7CisgICAgICAgICAgICByZXR1cm4gYWx0ZXJuYXRlRmllbGQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGRlZmF1bHRGaWVsZDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBFbnN1cmUgdGhhdCBlYWNoIGZpZWxkIGlzIHdpdGhpbiBpdHMgdmFsaWQgcmFuZ2UgYnkgY2FsbGluZyB7QGxpbmsKKyAgICAgKiAjdmFsaWRhdGVGaWVsZChpbnQpfSBvbiBlYWNoIGZpZWxkIHRoYXQgaGFzIGJlZW4gc2V0LiAgVGhpcyBtZXRob2QKKyAgICAgKiBzaG91bGQgb25seSBiZSBjYWxsZWQgaWYgdGhpcyBjYWxlbmRhciBpcyBub3QgbGVuaWVudC4KKyAgICAgKiBAc2VlICNpc0xlbmllbnQKKyAgICAgKiBAc2VlICN2YWxpZGF0ZUZpZWxkKGludCkKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCB2YWxpZGF0ZUZpZWxkcygpIHsKKyAgICAgICAgZm9yIChpbnQgZmllbGQgPSAwOyBmaWVsZCA8IGZpZWxkcy5sZW5ndGg7IGZpZWxkKyspIHsKKyAgICAgICAgICAgIGlmIChpc1NldChmaWVsZCkpIHsKKyAgICAgICAgICAgICAgICB2YWxpZGF0ZUZpZWxkKGZpZWxkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFZhbGlkYXRlIGEgc2luZ2xlIGZpZWxkIG9mIHRoaXMgY2FsZW5kYXIuICBTdWJjbGFzc2VzIHNob3VsZAorICAgICAqIG92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvIHZhbGlkYXRlIGFueSBjYWxlbmRhci1zcGVjaWZpYyBmaWVsZHMuCisgICAgICogR2VuZXJpYyBmaWVsZHMgY2FuIGJlIGhhbmRsZWQgYnkKKyAgICAgKiA8Y29kZT5DYWxlbmRhci52YWxpZGF0ZUZpZWxkKCk8L2NvZGU+LgorICAgICAqIEBzZWUgI3ZhbGlkYXRlRmllbGQoaW50LCBpbnQsIGludCkKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCB2YWxpZGF0ZUZpZWxkKGludCBmaWVsZCkgeworICAgICAgICBpbnQgeTsKKyAgICAgICAgc3dpdGNoIChmaWVsZCkgeworICAgICAgICBjYXNlIERBWV9PRl9NT05USDoKKyAgICAgICAgICAgIHkgPSBoYW5kbGVHZXRFeHRlbmRlZFllYXIoKTsKKyAgICAgICAgICAgIHZhbGlkYXRlRmllbGQoZmllbGQsIDEsIGhhbmRsZUdldE1vbnRoTGVuZ3RoKHksIGludGVybmFsR2V0KE1PTlRIKSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgREFZX09GX1lFQVI6CisgICAgICAgICAgICB5ID0gaGFuZGxlR2V0RXh0ZW5kZWRZZWFyKCk7CisgICAgICAgICAgICB2YWxpZGF0ZUZpZWxkKGZpZWxkLCAxLCBoYW5kbGVHZXRZZWFyTGVuZ3RoKHkpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERBWV9PRl9XRUVLX0lOX01PTlRIOgorICAgICAgICAgICAgaWYgKGludGVybmFsR2V0KGZpZWxkKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiREFZX09GX1dFRUtfSU5fTU9OVEggY2Fubm90IGJlIHplcm8iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZhbGlkYXRlRmllbGQoZmllbGQsIGdldE1pbmltdW0oZmllbGQpLCBnZXRNYXhpbXVtKGZpZWxkKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHZhbGlkYXRlRmllbGQoZmllbGQsIGdldE1pbmltdW0oZmllbGQpLCBnZXRNYXhpbXVtKGZpZWxkKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFZhbGlkYXRlIGEgc2luZ2xlIGZpZWxkIG9mIHRoaXMgY2FsZW5kYXIgZ2l2ZW4gaXRzIG1pbmltdW0gYW5kCisgICAgICogbWF4aW11bSBhbGxvd2VkIHZhbHVlLiAgSWYgdGhlIGZpZWxkIGlzIG91dCBvZiByYW5nZSwgdGhyb3cgYQorICAgICAqIGRlc2NyaXB0aXZlIDxjb2RlPklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjwvY29kZT4uICBTdWJjbGFzc2VzIG1heQorICAgICAqIHVzZSB0aGlzIG1ldGhvZCBpbiB0aGVpciBpbXBsZW1lbnRhdGlvbiBvZiB7QGxpbmsKKyAgICAgKiAjdmFsaWRhdGVGaWVsZChpbnQpfS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgdm9pZCB2YWxpZGF0ZUZpZWxkKGludCBmaWVsZCwgaW50IG1pbiwgaW50IG1heCkgeworICAgICAgICBpbnQgdmFsdWUgPSBmaWVsZHNbZmllbGRdOworICAgICAgICBpZiAodmFsdWUgPCBtaW4gfHwgdmFsdWUgPiBtYXgpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oZmllbGROYW1lKGZpZWxkKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc9JyArIHZhbHVlICsgIiwgdmFsaWQgcmFuZ2U9IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbiArICIuLiIgKyBtYXgpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydHMgdGhlIGN1cnJlbnQgZmllbGQgdmFsdWVzIGluIDxjb2RlPmZpZWxkc1tdPC9jb2RlPiB0byB0aGUKKyAgICAgKiBtaWxsaXNlY29uZCB0aW1lIHZhbHVlIDxjb2RlPnRpbWU8L2NvZGU+LgorICAgICAqLworICAgcHJvdGVjdGVkIHZvaWQgY29tcHV0ZVRpbWUoKSB7CisgICAgICAgIGlmICghaXNMZW5pZW50KCkpIHsKKyAgICAgICAgICAgIHZhbGlkYXRlRmllbGRzKCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBDb21wdXRlIHRoZSBKdWxpYW4gZGF5IAorICAgICAgICBpbnQganVsaWFuRGF5ID0gY29tcHV0ZUp1bGlhbkRheSgpOworCisgICAgICAgIGxvbmcgbWlsbGlzID0ganVsaWFuRGF5VG9NaWxsaXMoanVsaWFuRGF5KTsKKworICAgICAgICBpbnQgbWlsbGlzSW5EYXk7CisKKyAgICAgICAgLy8gV2Ugb25seSB1c2UgTUlMTElTRUNPTkRTX0lOX0RBWSBpZiBpdCBoYXMgYmVlbiBzZXQgYnkgdGhlIHVzZXIuCisgICAgICAgIC8vIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgZm9yIHRoZSBjYWxsZXIgdG8gc2V0IHRoZSBjYWxlbmRhciB0byBhCisgICAgICAgIC8vIHRpbWUgYW5kIGNhbGwgY2xlYXIoTU9OVEgpIHRvIHJlc2V0IHRoZSBNT05USCB0byBKYW51YXJ5LiAgVGhpcworICAgICAgICAvLyBpcyBsZWdhY3kgYmVoYXZpb3IuICBXaXRob3V0IHRoaXMsIGNsZWFyKE1PTlRIKSBoYXMgbm8gZWZmZWN0LAorICAgICAgICAvLyBzaW5jZSB0aGUgaW50ZXJuYWxseSBzZXQgSlVMSUFOX0RBWSBpcyB1c2VkLgorICAgICAgICBpZiAoc3RhbXBbTUlMTElTRUNPTkRTX0lOX0RBWV0gPj0gTUlOSU1VTV9VU0VSX1NUQU1QICYmCisgICAgICAgICAgICBuZXdlc3RTdGFtcChBTV9QTSwgTUlMTElTRUNPTkQsIFVOU0VUKSA8PSBzdGFtcFtNSUxMSVNFQ09ORFNfSU5fREFZXSkgeworICAgICAgICAgICAgbWlsbGlzSW5EYXkgPSBpbnRlcm5hbEdldChNSUxMSVNFQ09ORFNfSU5fREFZKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1pbGxpc0luRGF5ID0gY29tcHV0ZU1pbGxpc0luRGF5KCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBDb21wdXRlIHRoZSB0aW1lIHpvbmUgb2Zmc2V0IGFuZCBEU1Qgb2Zmc2V0LiAgVGhlcmUgYXJlIHR3byBwb3RlbnRpYWwKKyAgICAgICAgLy8gYW1iaWd1aXRpZXMgaGVyZS4gIFdlJ2xsIGFzc3VtZSBhIDI6MDAgYW0gKHdhbGwgdGltZSkgc3dpdGNob3ZlciB0aW1lCisgICAgICAgIC8vIGZvciBkaXNjdXNzaW9uIHB1cnBvc2VzIGhlcmUuCisgICAgICAgIC8vIDEuIFRoZSB0cmFuc2l0aW9uIGludG8gRFNULiAgSGVyZSwgYSBkZXNpZ25hdGVkIHRpbWUgb2YgMjowMCBhbSAtIDI6NTkgYW0KKyAgICAgICAgLy8gICAgY2FuIGJlIGluIHN0YW5kYXJkIG9yIGluIERTVCBkZXBlbmRpbmcuICBIb3dldmVyLCAyOjAwIGFtIGlzIGFuIGludmFsaWQKKyAgICAgICAgLy8gICAgcmVwcmVzZW50YXRpb24gKHRoZSByZXByZXNlbnRhdGlvbiBqdW1wcyBmcm9tIDE6NTk6NTkgYW0gU3RkIHRvIDM6MDA6MDAgYW0gRFNUKS4KKyAgICAgICAgLy8gICAgV2UgYXNzdW1lIHN0YW5kYXJkIHRpbWUuCisgICAgICAgIC8vIDIuIFRoZSB0cmFuc2l0aW9uIG91dCBvZiBEU1QuICBIZXJlLCBhIGRlc2lnbmF0ZWQgdGltZSBvZiAxOjAwIGFtIC0gMTo1OSBhbQorICAgICAgICAvLyAgICBjYW4gYmUgaW4gc3RhbmRhcmQgb3IgRFNULiAgQm90aCBhcmUgdmFsaWQgcmVwcmVzZW50YXRpb25zICh0aGUgcmVwCisgICAgICAgIC8vICAgIGp1bXBzIGZyb20gMTo1OTo1OSBEU1QgdG8gMTowMDowMCBTdGQpLgorICAgICAgICAvLyAgICBBZ2Fpbiwgd2UgYXNzdW1lIHN0YW5kYXJkIHRpbWUuCisgICAgICAgIC8vIFdlIHVzZSB0aGUgVGltZVpvbmUgb2JqZWN0LCB1bmxlc3MgdGhlIHVzZXIgaGFzIGV4cGxpY2l0bHkgc2V0IHRoZSBaT05FX09GRlNFVAorICAgICAgICAvLyBvciBEU1RfT0ZGU0VUIGZpZWxkczsgdGhlbiB3ZSB1c2UgdGhvc2UgZmllbGRzLgorICAgICAgICBpZiAoc3RhbXBbWk9ORV9PRkZTRVRdID49IE1JTklNVU1fVVNFUl9TVEFNUCB8fAorICAgICAgICAgICAgc3RhbXBbRFNUX09GRlNFVF0gPj0gTUlOSU1VTV9VU0VSX1NUQU1QKSB7CisgICAgICAgICAgICBtaWxsaXNJbkRheSAtPSBpbnRlcm5hbEdldChaT05FX09GRlNFVCkgKyBpbnRlcm5hbEdldChEU1RfT0ZGU0VUKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1pbGxpc0luRGF5IC09IGNvbXB1dGVab25lT2Zmc2V0KG1pbGxpcywgbWlsbGlzSW5EYXkpOworICAgICAgICB9CisKKyAgICAgICAgdGltZSA9IG1pbGxpcyArIG1pbGxpc0luRGF5OworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXB1dGUgdGhlIG1pbGxpc2Vjb25kcyBpbiB0aGUgZGF5IGZyb20gdGhlIGZpZWxkcy4gIFRoaXMgaXMgYQorICAgICAqIHZhbHVlIGZyb20gMCB0byAyMzo1OTo1OS45OTkgaW5jbHVzaXZlLCB1bmxlc3MgZmllbGRzIGFyZSBvdXQgb2YKKyAgICAgKiByYW5nZSwgaW4gd2hpY2ggY2FzZSBpdCBjYW4gYmUgYW4gYXJiaXRyYXJ5IHZhbHVlLiAgVGhpcyB2YWx1ZQorICAgICAqIHJlZmxlY3RzIGxvY2FsIHpvbmUgd2FsbCB0aW1lLgorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgY29tcHV0ZU1pbGxpc0luRGF5KCkgeworICAgICAgICAvLyBEbyB0aGUgdGltZSBwb3J0aW9uIG9mIHRoZSBjb252ZXJzaW9uLgorCisgICAgICAgIGludCBtaWxsaXNJbkRheSA9IDA7CisKKyAgICAgICAgLy8gRmluZCB0aGUgYmVzdCBzZXQgb2YgZmllbGRzIHNwZWNpZnlpbmcgdGhlIHRpbWUgb2YgZGF5LiAgVGhlcmUKKyAgICAgICAgLy8gYXJlIG9ubHkgdHdvIHBvc3NpYmlsaXRpZXMgaGVyZTsgdGhlIEhPVVJfT0ZfREFZIG9yIHRoZQorICAgICAgICAvLyBBTV9QTSBhbmQgdGhlIEhPVVIuCisgICAgICAgIGludCBob3VyT2ZEYXlTdGFtcCA9IHN0YW1wW0hPVVJfT0ZfREFZXTsKKyAgICAgICAgaW50IGhvdXJTdGFtcCA9IE1hdGgubWF4KHN0YW1wW0hPVVJdLCBzdGFtcFtBTV9QTV0pOworICAgICAgICBpbnQgYmVzdFN0YW1wID0gKGhvdXJTdGFtcCA+IGhvdXJPZkRheVN0YW1wKSA/IGhvdXJTdGFtcCA6IGhvdXJPZkRheVN0YW1wOworCisgICAgICAgIC8vIEhvdXJzCisgICAgICAgIGlmIChiZXN0U3RhbXAgIT0gVU5TRVQpIHsKKyAgICAgICAgICAgIGlmIChiZXN0U3RhbXAgPT0gaG91ck9mRGF5U3RhbXApIHsKKyAgICAgICAgICAgICAgICAvLyBEb24ndCBub3JtYWxpemUgaGVyZTsgbGV0IG92ZXJmbG93IGJ1bXAgaW50byB0aGUgbmV4dCBwZXJpb2QuCisgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBjb25zaXN0ZW50IHdpdGggaG93IHdlIGhhbmRsZSBvdGhlciBmaWVsZHMuCisgICAgICAgICAgICAgICAgbWlsbGlzSW5EYXkgKz0gaW50ZXJuYWxHZXQoSE9VUl9PRl9EQVkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBEb24ndCBub3JtYWxpemUgaGVyZTsgbGV0IG92ZXJmbG93IGJ1bXAgaW50byB0aGUgbmV4dCBwZXJpb2QuCisgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBjb25zaXN0ZW50IHdpdGggaG93IHdlIGhhbmRsZSBvdGhlciBmaWVsZHMuCisgICAgICAgICAgICAgICAgbWlsbGlzSW5EYXkgKz0gaW50ZXJuYWxHZXQoSE9VUik7CisgICAgICAgICAgICAgICAgbWlsbGlzSW5EYXkgKz0gMTIgKiBpbnRlcm5hbEdldChBTV9QTSk7IC8vIERlZmF1bHQgd29ya3MgZm9yIHVuc2V0IEFNX1BNCisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBXZSB1c2UgdGhlIGZhY3QgdGhhdCB1bnNldCA9PSAwOyB3ZSBzdGFydCB3aXRoIG1pbGxpc0luRGF5CisgICAgICAgIC8vID09IEhPVVJfT0ZfREFZLgorICAgICAgICBtaWxsaXNJbkRheSAqPSA2MDsKKyAgICAgICAgbWlsbGlzSW5EYXkgKz0gaW50ZXJuYWxHZXQoTUlOVVRFKTsgLy8gbm93IGhhdmUgbWludXRlcworICAgICAgICBtaWxsaXNJbkRheSAqPSA2MDsKKyAgICAgICAgbWlsbGlzSW5EYXkgKz0gaW50ZXJuYWxHZXQoU0VDT05EKTsgLy8gbm93IGhhdmUgc2Vjb25kcworICAgICAgICBtaWxsaXNJbkRheSAqPSAxMDAwOworICAgICAgICBtaWxsaXNJbkRheSArPSBpbnRlcm5hbEdldChNSUxMSVNFQ09ORCk7IC8vIG5vdyBoYXZlIG1pbGxpcworCisgICAgICAgIHJldHVybiBtaWxsaXNJbkRheTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBjYW4gYXNzdW1lIEVYVEVOREVEX1lFQVIgaGFzIGJlZW4gc2V0LgorICAgICAqIEBwYXJhbSBtaWxsaXMgbWlsbGlzZWNvbmRzIG9mIHRoZSBkYXRlIGZpZWxkcworICAgICAqIEBwYXJhbSBtaWxsaXNJbkRheSBtaWxsaXNlY29uZHMgb2YgdGhlIHRpbWUgZmllbGRzOyBtYXkgYmUgb3V0CisgICAgICogb3IgcmFuZ2UuCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBjb21wdXRlWm9uZU9mZnNldChsb25nIG1pbGxpcywgaW50IG1pbGxpc0luRGF5KSB7CisKKyAgICAgICAgLyogTm9ybWFsaXplIHRoZSBtaWxsaXNJbkRheSB0byAwLi5PTkVfREFZLTEuICBJZiB0aGUgbWlsbGlzIGlzIG91dAorICAgICAgICAgKiBvZiByYW5nZSwgdGhlbiB3ZSBtdXN0IGNhbGwgY29tcHV0ZUdyZWdvcmlhbkFuZERPV0ZpZWxkcygpIHRvCisgICAgICAgICAqIHJlY29tcHV0ZSBvdXIgZmllbGRzLiAqLworICAgICAgICBpbnRbXSBub3JtYWxpemVkTWlsbGlzSW5EYXkgPSBuZXcgaW50WzFdOworICAgICAgICBpbnQgZGF5cyA9IGZsb29yRGl2aWRlKG1pbGxpcyArIG1pbGxpc0luRGF5LCAoaW50KSBPTkVfREFZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRNaWxsaXNJbkRheSk7CisKKyAgICAgICAgaW50IGp1bGlhbkRheSA9IG1pbGxpc1RvSnVsaWFuRGF5KGRheXMgKiBPTkVfREFZKTsKKworICAgICAgICBjb21wdXRlR3JlZ29yaWFuQW5kRE9XRmllbGRzKGp1bGlhbkRheSk7CisKKyAgICAgICAgcmV0dXJuIHpvbmUuZ2V0T2Zmc2V0KAorICAgICAgICAgICAgICAgICAgICAgIGdyZWdvcmlhblllYXIsIGdyZWdvcmlhbk1vbnRoLCBncmVnb3JpYW5EYXlPZk1vbnRoLAorICAgICAgICAgICAgICAgICAgICAgIGZpZWxkc1tEQVlfT0ZfV0VFS10sIG5vcm1hbGl6ZWRNaWxsaXNJbkRheVswXSwKKyAgICAgICAgICAgICAgICAgICAgICBncmVnb3JpYW5Nb250aExlbmd0aChncmVnb3JpYW5ZZWFyLCBncmVnb3JpYW5Nb250aCksCisgICAgICAgICAgICAgICAgICAgICAgZ3JlZ29yaWFuUHJldmlvdXNNb250aExlbmd0aChncmVnb3JpYW5ZZWFyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JlZ29yaWFuTW9udGgpKTsKKworICAgICAgICAvLyBOb3RlOiBCZWNhdXNlIHdlIHBhc3MgaW4gd2FsbCBtaWxsaXNJbkRheSwgcmF0aGVyIHRoYW4KKyAgICAgICAgLy8gc3RhbmRhcmQgbWlsbGlzSW5EYXksIHdlIGludGVycHJldCAiMTowMCBhbSIgb24gdGhlIGRheQorICAgICAgICAvLyBvZiBjZXNzYXRpb24gb2YgRFNUIGFzICIxOjAwIGFtIFN0ZCIgKGFzc3VtaW5nIHRoZSB0aW1lCisgICAgICAgIC8vIG9mIGNlc3NhdGlvbiBpcyAyOjAwIGFtKS4KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wdXRlIHRoZSBKdWxpYW4gZGF5IG51bWJlciBhcyBzcGVjaWZpZWQgYnkgdGhpcyBjYWxlbmRhcidzIGZpZWxkcy4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGNvbXB1dGVKdWxpYW5EYXkoKSB7CisKKyAgICAgICAgLy8gV2Ugd2FudCB0byBzZWUgaWYgYW55IG9mIHRoZSBkYXRlIGZpZWxkcyBpcyBuZXdlciB0aGFuIHRoZQorICAgICAgICAvLyBKVUxJQU5fREFZLiAgSWYgbm90LCB0aGVuIHdlIHVzZSBKVUxJQU5fREFZLiAgSWYgc28sIHRoZW4gd2UgZG8KKyAgICAgICAgLy8gdGhlIG5vcm1hbCByZXNvbHV0aW9uLiAgV2Ugb25seSB1c2UgSlVMSUFOX0RBWSBpZiBpdCBoYXMgYmVlbgorICAgICAgICAvLyBzZXQgYnkgdGhlIHVzZXIuICBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIGZvciB0aGUgY2FsbGVyIHRvIHNldAorICAgICAgICAvLyB0aGUgY2FsZW5kYXIgdG8gYSB0aW1lIGFuZCBjYWxsIGNsZWFyKE1PTlRIKSB0byByZXNldCB0aGUgTU9OVEgKKyAgICAgICAgLy8gdG8gSmFudWFyeS4gIFRoaXMgaXMgbGVnYWN5IGJlaGF2aW9yLiAgV2l0aG91dCB0aGlzLAorICAgICAgICAvLyBjbGVhcihNT05USCkgaGFzIG5vIGVmZmVjdCwgc2luY2UgdGhlIGludGVybmFsbHkgc2V0IEpVTElBTl9EQVkKKyAgICAgICAgLy8gaXMgdXNlZC4KKyAgICAgICAgaWYgKHN0YW1wW0pVTElBTl9EQVldID49IE1JTklNVU1fVVNFUl9TVEFNUCkgeworICAgICAgICAgICAgaW50IGJlc3RTdGFtcCA9IG5ld2VzdFN0YW1wKEVSQSwgREFZX09GX1dFRUtfSU5fTU9OVEgsIFVOU0VUKTsKKyAgICAgICAgICAgIGJlc3RTdGFtcCA9IG5ld2VzdFN0YW1wKFlFQVJfV09ZLCBFWFRFTkRFRF9ZRUFSLCBiZXN0U3RhbXApOworICAgICAgICAgICAgaWYgKGJlc3RTdGFtcCA8PSBzdGFtcFtKVUxJQU5fREFZXSkgeworICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbEdldChKVUxJQU5fREFZKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGludCBiZXN0RmllbGQgPSByZXNvbHZlRmllbGRzKGdldEZpZWxkUmVzb2x1dGlvblRhYmxlKCkpOworICAgICAgICBpZiAoYmVzdEZpZWxkIDwgMCkgeworICAgICAgICAgICAgYmVzdEZpZWxkID0gREFZX09GX01PTlRIOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGhhbmRsZUNvbXB1dGVKdWxpYW5EYXkoYmVzdEZpZWxkKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGZpZWxkIHJlc29sdXRpb24gYXJyYXkgZm9yIHRoaXMgY2FsZW5kYXIuICBDYWxlbmRhcnMgdGhhdAorICAgICAqIGRlZmluZSBhZGRpdGlvbmFsIGZpZWxkcyBvciBjaGFuZ2UgdGhlIHNlbWFudGljcyBvZiBleGlzdGluZyBmaWVsZHMKKyAgICAgKiBzaG91bGQgb3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gYWRqdXN0IHRoZSBmaWVsZCByZXNvbHV0aW9uIHNlbWFudGljcworICAgICAqIGFjY29yZGluZ2x5LiAgT3RoZXIgc3ViY2xhc3NlcyBzaG91bGQgbm90IG92ZXJyaWRlIHRoaXMgbWV0aG9kLgorICAgICAqIEBzZWUgI3Jlc29sdmVGaWVsZHMKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50W11bXVtdIGdldEZpZWxkUmVzb2x1dGlvblRhYmxlKCkgeworICAgICAgICByZXR1cm4gREFURV9QUkVDRURFTkNFOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgSnVsaWFuIGRheSBudW1iZXIgb2YgZGF5IGJlZm9yZSB0aGUgZmlyc3QgZGF5IG9mIHRoZQorICAgICAqIGdpdmVuIG1vbnRoIGluIHRoZSBnaXZlbiBleHRlbmRlZCB5ZWFyLiAgU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUKKyAgICAgKiB0aGlzIG1ldGhvZCB0byBpbXBsZW1lbnQgdGhlaXIgY2FsZW5kYXIgc3lzdGVtLgorICAgICAqIEBwYXJhbSBleWVhciB0aGUgZXh0ZW5kZWQgeWVhcgorICAgICAqIEBwYXJhbSBtb250aCB0aGUgemVyby1iYXNlZCBtb250aCwgb3IgMCBpZiB1c2VNb250aCBpcyBmYWxzZQorICAgICAqIEBwYXJhbSB1c2VNb250aCBpZiBmYWxzZSwgY29tcHV0ZSB0aGUgZGF5IGJlZm9yZSB0aGUgZmlyc3QgZGF5IG9mCisgICAgICogdGhlIGdpdmVuIHllYXIsIG90aGVyd2lzZSwgY29tcHV0ZSB0aGUgZGF5IGJlZm9yZSB0aGUgZmlyc3QgZGF5IG9mCisgICAgICogdGhlIGdpdmVuIG1vbnRoCisgICAgICogQHBhcmFtIHJldHVybiB0aGUgSnVsaWFuIGRheSBudW1iZXIgb2YgdGhlIGRheSBiZWZvcmUgdGhlIGZpcnN0CisgICAgICogZGF5IG9mIHRoZSBnaXZlbiBtb250aCBhbmQgeWVhcgorICAgICAqLworICAgIGFic3RyYWN0IHByb3RlY3RlZCBpbnQgaGFuZGxlQ29tcHV0ZU1vbnRoU3RhcnQoaW50IGV5ZWFyLCBpbnQgbW9udGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHVzZU1vbnRoKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZXh0ZW5kZWQgeWVhciBkZWZpbmVkIGJ5IHRoZSBjdXJyZW50IGZpZWxkcy4gIFRoaXMgd2lsbAorICAgICAqIHVzZSB0aGUgRVhURU5ERURfWUVBUiBmaWVsZCBvciB0aGUgWUVBUiBhbmQgc3VwcmEteWVhciBmaWVsZHMgKHN1Y2gKKyAgICAgKiBhcyBFUkEpIHNwZWNpZmljIHRvIHRoZSBjYWxlbmRhciBzeXN0ZW0sIGRlcGVuZGluZyBvbiB3aGljaCBzZXQgb2YKKyAgICAgKiBmaWVsZHMgaXMgbmV3ZXIuCisgICAgICogQHJldHVybiB0aGUgZXh0ZW5kZWQgeWVhcgorICAgICAqLworICAgIGFic3RyYWN0IHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0RXh0ZW5kZWRZZWFyKCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBkYXlzIGluIHRoZSBnaXZlbiBtb250aCBvZiB0aGUgZ2l2ZW4gZXh0ZW5kZWQKKyAgICAgKiB5ZWFyIG9mIHRoaXMgY2FsZW5kYXIgc3lzdGVtLiAgU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgdGhpcworICAgICAqIG1ldGhvZCBpZiB0aGV5IGNhbiBwcm92aWRlIGEgbW9yZSBjb3JyZWN0IG9yIG1vcmUgZWZmaWNpZW50CisgICAgICogaW1wbGVtZW50YXRpb24gdGhhbiB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBpbiBDYWxlbmRhci4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldE1vbnRoTGVuZ3RoKGludCBleHRlbmRlZFllYXIsIGludCBtb250aCkgeworICAgICAgICByZXR1cm4gaGFuZGxlQ29tcHV0ZU1vbnRoU3RhcnQoZXh0ZW5kZWRZZWFyLCBtb250aCsxLCB0cnVlKSAtCisgICAgICAgICAgICAgICBoYW5kbGVDb21wdXRlTW9udGhTdGFydChleHRlbmRlZFllYXIsIG1vbnRoLCB0cnVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBkYXlzIGluIHRoZSBnaXZlbiBleHRlbmRlZCB5ZWFyIG9mIHRoaXMKKyAgICAgKiBjYWxlbmRhciBzeXN0ZW0uICBTdWJjbGFzc2VzIHNob3VsZCBvdmVycmlkZSB0aGlzIG1ldGhvZCBpZiB0aGV5IGNhbgorICAgICAqIHByb3ZpZGUgYSBtb3JlIGNvcnJlY3Qgb3IgbW9yZSBlZmZpY2llbnQgaW1wbGVtZW50YXRpb24gdGhhbiB0aGUKKyAgICAgKiBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGluIENhbGVuZGFyLgorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0WWVhckxlbmd0aChpbnQgZXllYXIpIHsKKyAgICAgICAgcmV0dXJuIGhhbmRsZUNvbXB1dGVNb250aFN0YXJ0KGV5ZWFyKzEsIDAsIGZhbHNlKSAtCisgICAgICAgICAgICAgICBoYW5kbGVDb21wdXRlTW9udGhTdGFydChleWVhciwgMCwgZmFsc2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFN1YmNsYXNzZXMgdGhhdCB1c2UgYWRkaXRpb25hbCBmaWVsZHMgYmV5b25kIHRob3NlIGRlZmluZWQgaW4KKyAgICAgKiA8Y29kZT5DYWxlbmRhcjwvY29kZT4gc2hvdWxkIG92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvIHJldHVybiBhbgorICAgICAqIDxjb2RlPmludFtdPC9jb2RlPiBhcnJheSBvZiB0aGUgYXBwcm9wcmlhdGUgbGVuZ3RoLiAgVGhlIGxlbmd0aAorICAgICAqIG11c3QgYmUgYXQgbGVhc3QgPGNvZGU+QkFTRV9GSUVMRF9DT1VOVDwvY29kZT4gYW5kIG5vIG1vcmUgdGhhbgorICAgICAqIDxjb2RlPk1BWF9GSUVMRF9DT1VOVDwvY29kZT4uCisgICAgICovCisgICAgcHJvdGVjdGVkIGludFtdIGhhbmRsZUNyZWF0ZUZpZWxkcygpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBpbnRbQkFTRV9GSUVMRF9DT1VOVF07CisgICAgfQorCisgICAgLyoqCisgICAgICogU3ViY2xhc3NlcyBtYXkgb3ZlcnJpZGUgdGhpcy4gIFRoaXMgbWV0aG9kIGNhbGxzCisgICAgICogaGFuZGxlR2V0TW9udGhMZW5ndGgoKSB0byBvYnRhaW4gdGhlIGNhbGVuZGFyLXNwZWNpZmljIG1vbnRoCisgICAgICogbGVuZ3RoLgorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlQ29tcHV0ZUp1bGlhbkRheShpbnQgYmVzdEZpZWxkKSB7CisKKyAgICAgICAgYm9vbGVhbiB1c2VNb250aCA9IChiZXN0RmllbGQgPT0gREFZX09GX01PTlRIIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVzdEZpZWxkID09IFdFRUtfT0ZfTU9OVEggfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZXN0RmllbGQgPT0gREFZX09GX1dFRUtfSU5fTU9OVEgpOworCisgICAgICAgIGludCB5ZWFyID0gaGFuZGxlR2V0RXh0ZW5kZWRZZWFyKCk7CisgICAgICAgIGludGVybmFsU2V0KEVYVEVOREVEX1lFQVIsIHllYXIpOworCisgICAgICAgIC8vIEdldCB0aGUgSnVsaWFuIGRheSBvZiB0aGUgZGF5IEJFRk9SRSB0aGUgc3RhcnQgb2YgdGhpcyB5ZWFyLgorICAgICAgICAvLyBJZiB1c2VNb250aCBpcyB0cnVlLCBnZXQgdGhlIGRheSBiZWZvcmUgdGhlIHN0YXJ0IG9mIHRoZSBtb250aC4KKyAgICAgICAgaW50IGp1bGlhbkRheSA9IGhhbmRsZUNvbXB1dGVNb250aFN0YXJ0KHllYXIsIHVzZU1vbnRoID8gaW50ZXJuYWxHZXQoTU9OVEgpIDogMCwgdXNlTW9udGgpOworCisgICAgICAgIGlmIChiZXN0RmllbGQgPT0gREFZX09GX01PTlRIKSB7CisgICAgICAgICAgICByZXR1cm4ganVsaWFuRGF5ICsgaW50ZXJuYWxHZXQoREFZX09GX01PTlRILCAxKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChiZXN0RmllbGQgPT0gREFZX09GX1lFQVIpIHsKKyAgICAgICAgICAgIHJldHVybiBqdWxpYW5EYXkgKyBpbnRlcm5hbEdldChEQVlfT0ZfWUVBUik7CisgICAgICAgIH0KKworICAgICAgICBpbnQgZmlyc3REYXlPZldlZWsgPSBnZXRGaXJzdERheU9mV2VlaygpOyAvLyBMb2NhbGl6ZWQgZmR3CisKKyAgICAgICAgLy8gQXQgdGhpcyBwb2ludCBqdWxpYW5EYXkgaXMgdGhlIDAtYmFzZWQgZGF5IEJFRk9SRSB0aGUgZmlyc3QgZGF5IG9mCisgICAgICAgIC8vIEphbnVhcnkgMSwgeWVhciAxIG9mIHRoZSBnaXZlbiBjYWxlbmRhci4gIElmIGp1bGlhbkRheSA9PSAwLCBpdAorICAgICAgICAvLyBzcGVjaWZpZXMgKEphbi4gMSwgMSkgLSAxLCBpbiB3aGF0ZXZlciBjYWxlbmRhciB3ZSBhcmUgdXNpbmcgKEp1bGlhbgorICAgICAgICAvLyBvciBHcmVnb3JpYW4pLgorCisgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgd2UgbmVlZCB0byBwcm9jZXNzIHRoZSBXRUVLX09GX01PTlRIIG9yCisgICAgICAgIC8vIFdFRUtfT0ZfWUVBUiwgd2hpY2ggYXJlIHNpbWlsYXIsIG9yIHRoZSBEQVlfT0ZfV0VFS19JTl9NT05USC4KKyAgICAgICAgLy8gRmlyc3QsIHBlcmZvcm0gaW5pdGlhbCBzaGFyZWQgY29tcHV0YXRpb25zLiAgVGhlc2UgbG9jYXRlIHRoZQorICAgICAgICAvLyBmaXJzdCB3ZWVrIG9mIHRoZSBwZXJpb2QuCisKKyAgICAgICAgLy8gR2V0IHRoZSAwLWJhc2VkIGxvY2FsaXplZCBET1cgb2YgZGF5IG9uZSBvZiB0aGUgbW9udGggb3IgeWVhci4KKyAgICAgICAgLy8gVmFsaWQgcmFuZ2UgMC4uNi4KKyAgICAgICAgaW50IGZpcnN0ID0ganVsaWFuRGF5VG9EYXlPZldlZWsoanVsaWFuRGF5ICsgMSkgLSBmaXJzdERheU9mV2VlazsKKyAgICAgICAgaWYgKGZpcnN0IDwgMCkgeworICAgICAgICAgICAgZmlyc3QgKz0gNzsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gR2V0IHplcm8tYmFzZWQgbG9jYWxpemVkIERPVywgdmFsaWQgcmFuZ2UgMC4uNi4gIFRoaXMgaXMgdGhlIERPVworICAgICAgICAvLyB3ZSBhcmUgbG9va2luZyBmb3IuCisgICAgICAgIGludCBkb3dMb2NhbCA9IDA7CisgICAgICAgIHN3aXRjaCAocmVzb2x2ZUZpZWxkcyhET1dfUFJFQ0VERU5DRSkpIHsKKyAgICAgICAgY2FzZSBEQVlfT0ZfV0VFSzoKKyAgICAgICAgICAgIGRvd0xvY2FsID0gaW50ZXJuYWxHZXQoREFZX09GX1dFRUspIC0gZmlyc3REYXlPZldlZWs7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBET1dfTE9DQUw6CisgICAgICAgICAgICBkb3dMb2NhbCA9IGludGVybmFsR2V0KERPV19MT0NBTCkgLSAxOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgZG93TG9jYWwgPSBkb3dMb2NhbCAlIDc7CisgICAgICAgIGlmIChkb3dMb2NhbCA8IDApIHsKKyAgICAgICAgICAgIGRvd0xvY2FsICs9IDc7CisgICAgICAgIH0KKworICAgICAgICAvLyBGaW5kIHRoZSBmaXJzdCB0YXJnZXQgRE9XIChkb3dMb2NhbCkgaW4gdGhlIG1vbnRoIG9yIHllYXIuCisgICAgICAgIC8vIEFjdHVhbGx5LCBpdCBtYXkgYmUganVzdCBiZWZvcmUgdGhlIGZpcnN0IG9mIHRoZSBtb250aCBvciB5ZWFyLgorICAgICAgICAvLyBJdCB3aWxsIGJlIGFuIGludGVnZXIgZnJvbSAtNS4uNy4KKyAgICAgICAgaW50IGRhdGUgPSAxIC0gZmlyc3QgKyBkb3dMb2NhbDsKKworICAgICAgICBpZiAoYmVzdEZpZWxkID09IERBWV9PRl9XRUVLX0lOX01PTlRIKSB7CisKKyAgICAgICAgICAgIC8vIEFkanVzdCB0aGUgdGFyZ2V0IERPVyB0byBiZSBpbiB0aGUgbW9udGggb3IgeWVhci4KKyAgICAgICAgICAgIGlmIChkYXRlIDwgMSkgeworICAgICAgICAgICAgICAgIGRhdGUgKz0gNzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gVGhlIG9ubHkgdHJpY2tpbmVzcyBvY2N1cnMgaWYgdGhlIGRheS1vZi13ZWVrLWluLW1vbnRoIGlzCisgICAgICAgICAgICAvLyBuZWdhdGl2ZS4KKyAgICAgICAgICAgIGludCBkaW0gPSBpbnRlcm5hbEdldChEQVlfT0ZfV0VFS19JTl9NT05USCwgMSk7CisgICAgICAgICAgICBpZiAoZGltID49IDApIHsKKyAgICAgICAgICAgICAgICBkYXRlICs9IDcqKGRpbSAtIDEpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBNb3ZlIGRhdGUgdG8gdGhlIGxhc3Qgb2YgdGhpcyBkYXktb2Ytd2VlayBpbiB0aGlzIG1vbnRoLAorICAgICAgICAgICAgICAgIC8vIHRoZW4gYmFjayB1cCBhcyBuZWVkZWQuICBJZiBkaW09PS0xLCB3ZSBkb24ndCBiYWNrIHVwIGF0CisgICAgICAgICAgICAgICAgLy8gYWxsLiAgSWYgZGltPT0tMiwgd2UgYmFjayB1cCBvbmNlLCBldGMuICBEb24ndCBiYWNrIHVwCisgICAgICAgICAgICAgICAgLy8gcGFzdCB0aGUgZmlyc3Qgb2YgdGhlIGdpdmVuIGRheS1vZi13ZWVrIGluIHRoaXMgbW9udGguCisgICAgICAgICAgICAgICAgLy8gTm90ZSB0aGF0IHdlIGhhbmRsZSAtMiwgLTMsIGV0Yy4gY29ycmVjdGx5LCBldmVuIHRob3VnaAorICAgICAgICAgICAgICAgIC8vIHZhbHVlcyA8IC0xIGFyZSB0ZWNobmljYWxseSBkaXNhbGxvd2VkLgorICAgICAgICAgICAgICAgIGludCBtID0gaW50ZXJuYWxHZXQoTU9OVEgsIEpBTlVBUlkpOworICAgICAgICAgICAgICAgIGludCBtb250aExlbmd0aCA9IGhhbmRsZUdldE1vbnRoTGVuZ3RoKHllYXIsIG0pOworICAgICAgICAgICAgICAgIGRhdGUgKz0gKChtb250aExlbmd0aCAtIGRhdGUpIC8gNyArIGRpbSArIDEpICogNzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIGFzc2VydChiZXN0RmllbGQgPT0gV0VFS19PRl9NT05USCB8fCBiZXN0RmllbGQgPT0gV0VFS19PRl9ZRUFSKQorCisgICAgICAgICAgICAvLyBBZGp1c3QgZm9yIG1pbmltYWwgZGF5cyBpbiBmaXJzdCB3ZWVrCisgICAgICAgICAgICBpZiAoKDcgLSBmaXJzdCkgPCBnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCkpIHsKKyAgICAgICAgICAgICAgICBkYXRlICs9IDc7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIE5vdyBhZGp1c3QgZm9yIHRoZSB3ZWVrIG51bWJlci4KKyAgICAgICAgICAgIGRhdGUgKz0gNyAqIChpbnRlcm5hbEdldChiZXN0RmllbGQpIC0gMSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4ganVsaWFuRGF5ICsgZGF0ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wdXRlIHRoZSBKdWxpYW4gZGF5IG9mIGEgbW9udGggb2YgdGhlIEdyZWdvcmlhbiBjYWxlbmRhci4KKyAgICAgKiBTdWJjbGFzc2VzIG1heSBjYWxsIHRoaXMgbWV0aG9kIHRvIHBlcmZvcm0gYSBHcmVnb3JpYW4gY2FsZW5kYXIKKyAgICAgKiBmaWVsZHMtPm1pbGxpcyBjb21wdXRhdGlvbi4gIFRvIHBlcmZvcm0gYSBHcmVnb3JpYW4gY2FsZW5kYXIKKyAgICAgKiBtaWxsaXMtPmZpZWxkcyBjb21wdXRhdGlvbiwgY2FsbCBjb21wdXRlR3JlZ29yaWFuRmllbGRzKCkuCisgICAgICogQHBhcmFtIHllYXIgZXh0ZW5kZWQgR3JlZ29yaWFuIHllYXIKKyAgICAgKiBAcGFyYW0gbW9udGggemVyby1iYXNlZCBHcmVnb3JpYW4gbW9udGgKKyAgICAgKiBAcmV0dXJuIHRoZSBKdWxpYW4gZGF5IG51bWJlciBvZiB0aGUgZGF5IGJlZm9yZSB0aGUgZmlyc3QKKyAgICAgKiBkYXkgb2YgdGhlIGdpdmVuIG1vbnRoIGluIHRoZSBnaXZlbiBleHRlbmRlZCB5ZWFyCisgICAgICogQHNlZSAjY29tcHV0ZUdyZWdvcmlhbkZpZWxkcworICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgY29tcHV0ZUdyZWdvcmlhbk1vbnRoU3RhcnQoaW50IHllYXIsIGludCBtb250aCkgeworCisgICAgICAgIC8vIElmIHRoZSBtb250aCBpcyBvdXQgb2YgcmFuZ2UsIGFkanVzdCBpdCBpbnRvIHJhbmdlLCBhbmQKKyAgICAgICAgLy8gbW9kaWZ5IHRoZSBleHRlbmRlZCB5ZWFyIHZhbHVlIGFjY29yZGluZ2x5LgorICAgICAgICBpZiAobW9udGggPCAwIHx8IG1vbnRoID4gMTEpIHsKKyAgICAgICAgICAgIGludFtdIHJlbSA9IG5ldyBpbnRbMV07CisgICAgICAgICAgICB5ZWFyICs9IGZsb29yRGl2aWRlKG1vbnRoLCAxMiwgcmVtKTsKKyAgICAgICAgICAgIG1vbnRoID0gcmVtWzBdOworICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBpc0xlYXAgPSAoeWVhciU0ID09IDApICYmICgoeWVhciUxMDAgIT0gMCkgfHwgKHllYXIlNDAwID09IDApKTsKKyAgICAgICAgaW50IHkgPSB5ZWFyIC0gMTsKKyAgICAgICAgLy8gVGhpcyBjb21wdXRhdGlvbiBpcyBhY3R1YWxseSAuLi4gKyAoSkFOXzFfMV9KVUxJQU5fREFZIC0gMykgKyAyLgorICAgICAgICAvLyBBZGQgMiBiZWNhdXNlIEdyZWdvcmlhbiBjYWxlbmRhciBzdGFydHMgMiBkYXlzIGFmdGVyIEp1bGlhbgorICAgICAgICAvLyBjYWxlbmRhci4KKyAgICAgICAgaW50IGp1bGlhbkRheSA9IDM2NSp5ICsgZmxvb3JEaXZpZGUoeSwgNCkgLSBmbG9vckRpdmlkZSh5LCAxMDApICsKKyAgICAgICAgICAgIGZsb29yRGl2aWRlKHksIDQwMCkgKyBKQU5fMV8xX0pVTElBTl9EQVkgLSAxOworCisgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQganVsaWFuRGF5IGluZGljYXRlcyB0aGUgZGF5IEJFRk9SRSB0aGUgZmlyc3QgZGF5CisgICAgICAgIC8vIG9mIEphbnVhcnkgMSwgPGV5ZWFyPiBvZiB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyLgorICAgICAgICBpZiAobW9udGggIT0gMCkgeworICAgICAgICAgICAganVsaWFuRGF5ICs9IEdSRUdPUklBTl9NT05USF9DT1VOVFttb250aF1baXNMZWFwPzM6Ml07CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4ganVsaWFuRGF5OworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFN1YmNsYXNzIEFQSQorICAgIC8vIEZvciBzdWJjbGFzc2VzIHRvIG92ZXJyaWRlCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBTdWJjbGFzc2VzIG1heSBvdmVycmlkZSB0aGlzIG1ldGhvZCB0byBjb21wdXRlIHNldmVyYWwgZmllbGRzCisgICAgICogc3BlY2lmaWMgdG8gZWFjaCBjYWxlbmRhciBzeXN0ZW0uICBUaGVzZSBhcmU6CisgICAgICoKKyAgICAgKiA8dWw+PGxpPkVSQQorICAgICAqIDxsaT5ZRUFSCisgICAgICogPGxpPk1PTlRICisgICAgICogPGxpPkRBWV9PRl9NT05USAorICAgICAqIDxsaT5EQVlfT0ZfWUVBUgorICAgICAqIDxsaT5FWFRFTkRFRF9ZRUFSPC91bD4KKyAgICAgKiAKKyAgICAgKiBTdWJjbGFzc2VzIGNhbiByZWZlciB0byB0aGUgREFZX09GX1dFRUsgYW5kIERPV19MT0NBTCBmaWVsZHMsIHdoaWNoCisgICAgICogd2lsbCBiZSBzZXQgd2hlbiB0aGlzIG1ldGhvZCBpcyBjYWxsZWQuICBTdWJjbGFzc2VzIGNhbiBhbHNvIGNhbGwKKyAgICAgKiB0aGUgZ2V0R3JlZ29yaWFuWHh4KCkgbWV0aG9kcyB0byBvYnRhaW4gR3JlZ29yaWFuIGNhbGVuZGFyCisgICAgICogZXF1aXZhbGVudHMgZm9yIHRoZSBnaXZlbiBKdWxpYW4gZGF5LgorICAgICAqCisgICAgICogPHA+SW4gYWRkaXRpb24sIHN1YmNsYXNzZXMgc2hvdWxkIGNvbXB1dGUgYW55IHN1YmNsYXNzLXNwZWNpZmljCisgICAgICogZmllbGRzLCB0aGF0IGlzLCBmaWVsZHMgZnJvbSBCQVNFX0ZJRUxEX0NPVU5UIHRvCisgICAgICogZ2V0RmllbGRDb3VudCgpIC0gMS4KKyAgICAgKgorICAgICAqIDxwPlRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGluIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBpbXBsZW1lbnRzCisgICAgICogYSBwdXJlIHByb2xlcHRpYyBHcmVnb3JpYW4gY2FsZW5kYXIuCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlQ29tcHV0ZUZpZWxkcyhpbnQganVsaWFuRGF5KSB7CisgICAgICAgIGludGVybmFsU2V0KE1PTlRILCBnZXRHcmVnb3JpYW5Nb250aCgpKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoREFZX09GX01PTlRILCBnZXRHcmVnb3JpYW5EYXlPZk1vbnRoKCkpOworICAgICAgICBpbnRlcm5hbFNldChEQVlfT0ZfWUVBUiwgZ2V0R3JlZ29yaWFuRGF5T2ZZZWFyKCkpOworICAgICAgICBpbnQgZXllYXIgPSBnZXRHcmVnb3JpYW5ZZWFyKCk7CisgICAgICAgIGludGVybmFsU2V0KEVYVEVOREVEX1lFQVIsIGV5ZWFyKTsKKyAgICAgICAgaW50IGVyYSA9IEdyZWdvcmlhbkNhbGVuZGFyLkFEOworICAgICAgICBpZiAoZXllYXIgPCAxKSB7CisgICAgICAgICAgICBlcmEgPSBHcmVnb3JpYW5DYWxlbmRhci5CQzsKKyAgICAgICAgICAgIGV5ZWFyID0gMSAtIGV5ZWFyOworICAgICAgICB9CisgICAgICAgIGludGVybmFsU2V0KEVSQSwgZXJhKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoWUVBUiwgZXllYXIpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFN1YmNsYXNzIEFQSQorICAgIC8vIEZvciBzdWJjbGFzc2VzIHRvIGNhbGwKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZXh0ZW5kZWQgeWVhciBvbiB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyIGFzIGNvbXB1dGVkIGJ5CisgICAgICogPGNvZGU+Y29tcHV0ZUdyZWdvcmlhbkZpZWxkcygpPC9jb2RlPi4KKyAgICAgKiBAc2VlICNjb21wdXRlR3JlZ29yaWFuRmllbGRzCisgICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIGludCBnZXRHcmVnb3JpYW5ZZWFyKCkgeworICAgICAgICByZXR1cm4gZ3JlZ29yaWFuWWVhcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG1vbnRoICgwLWJhc2VkKSBvbiB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyIGFzIGNvbXB1dGVkIGJ5CisgICAgICogPGNvZGU+Y29tcHV0ZUdyZWdvcmlhbkZpZWxkcygpPC9jb2RlPi4KKyAgICAgKiBAc2VlICNjb21wdXRlR3JlZ29yaWFuRmllbGRzCisgICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIGludCBnZXRHcmVnb3JpYW5Nb250aCgpIHsKKyAgICAgICAgcmV0dXJuIGdyZWdvcmlhbk1vbnRoOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZGF5IG9mIHllYXIgKDEtYmFzZWQpIG9uIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIgYXMKKyAgICAgKiBjb21wdXRlZCBieSA8Y29kZT5jb21wdXRlR3JlZ29yaWFuRmllbGRzKCk8L2NvZGU+LgorICAgICAqIEBzZWUgI2NvbXB1dGVHcmVnb3JpYW5GaWVsZHMKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgaW50IGdldEdyZWdvcmlhbkRheU9mWWVhcigpIHsKKyAgICAgICAgcmV0dXJuIGdyZWdvcmlhbkRheU9mWWVhcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGRheSBvZiBtb250aCAoMS1iYXNlZCkgb24gdGhlIEdyZWdvcmlhbiBjYWxlbmRhciBhcworICAgICAqIGNvbXB1dGVkIGJ5IDxjb2RlPmNvbXB1dGVHcmVnb3JpYW5GaWVsZHMoKTwvY29kZT4uCisgICAgICogQHNlZSAjY29tcHV0ZUdyZWdvcmlhbkZpZWxkcworICAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCBpbnQgZ2V0R3JlZ29yaWFuRGF5T2ZNb250aCgpIHsKKyAgICAgICAgcmV0dXJuIGdyZWdvcmlhbkRheU9mTW9udGg7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBudW1iZXIgb2YgZmllbGRzIGRlZmluZWQgYnkgdGhpcyBjYWxlbmRhci4gIFZhbGlkIGZpZWxkCisgICAgICogYXJndW1lbnRzIHRvIDxjb2RlPnNldCgpPC9jb2RlPiBhbmQgPGNvZGU+Z2V0KCk8L2NvZGU+IGFyZQorICAgICAqIDxjb2RlPjAuLmdldEZpZWxkQ291bnQoKS0xPC9jb2RlPi4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldEZpZWxkQ291bnQoKSB7CisgICAgICAgIHJldHVybiBmaWVsZHMubGVuZ3RoOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBhIGZpZWxkIHRvIGEgdmFsdWUuICBTdWJjbGFzc2VzIHNob3VsZCB1c2UgdGhpcyBtZXRob2Qgd2hlbgorICAgICAqIGNvbXB1dGluZyBmaWVsZHMuICBJdCBzZXRzIHRoZSB0aW1lIHN0YW1wIGluIHRoZQorICAgICAqIDxjb2RlPnN0YW1wW108L2NvZGU+IGFycmF5IHRvIDxjb2RlPklOVEVSTkFMTFlfU0VUPC9jb2RlPi4gIElmIGEKKyAgICAgKiBmaWVsZCB0aGF0IG1heSBub3QgYmUgc2V0IGJ5IHN1YmNsYXNzZXMgaXMgcGFzc2VkIGluLCBhbgorICAgICAqIDxjb2RlPklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjwvY29kZT4gaXMgdGhyb3duLiAgVGhpcyBwcmV2ZW50cworICAgICAqIHN1YmNsYXNzZXMgZnJvbSBtb2RpZnlpbmcgZmllbGRzIHRoYXQgYXJlIGludGVuZGVkIHRvIGJlCisgICAgICogY2FsZW5kYXItc3lzdGVtIGludmFyaWFudC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgdm9pZCBpbnRlcm5hbFNldChpbnQgZmllbGQsIGludCB2YWx1ZSkgeworICAgICAgICBpZiAoKCgxIDw8IGZpZWxkKSAmIGludGVybmFsU2V0TWFzaykgPT0gMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoIlN1YmNsYXNzIGNhbm5vdCBzZXQgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkTmFtZShmaWVsZCkpOworICAgICAgICB9CisgICAgICAgIGZpZWxkc1tmaWVsZF0gPSB2YWx1ZTsKKyAgICAgICAgc3RhbXBbZmllbGRdID0gSU5URVJOQUxMWV9TRVQ7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50W11bXSBHUkVHT1JJQU5fTU9OVEhfQ09VTlQgPSB7CisgICAgICAgIC8vbGVuIGxlbjIgICBzdCAgc3QyCisgICAgICAgIHsgIDMxLCAgMzEsICAgMCwgICAwIH0sIC8vIEphbgorICAgICAgICB7ICAyOCwgIDI5LCAgMzEsICAzMSB9LCAvLyBGZWIKKyAgICAgICAgeyAgMzEsICAzMSwgIDU5LCAgNjAgfSwgLy8gTWFyCisgICAgICAgIHsgIDMwLCAgMzAsICA5MCwgIDkxIH0sIC8vIEFwcgorICAgICAgICB7ICAzMSwgIDMxLCAxMjAsIDEyMSB9LCAvLyBNYXkKKyAgICAgICAgeyAgMzAsICAzMCwgMTUxLCAxNTIgfSwgLy8gSnVuCisgICAgICAgIHsgIDMxLCAgMzEsIDE4MSwgMTgyIH0sIC8vIEp1bAorICAgICAgICB7ICAzMSwgIDMxLCAyMTIsIDIxMyB9LCAvLyBBdWcKKyAgICAgICAgeyAgMzAsICAzMCwgMjQzLCAyNDQgfSwgLy8gU2VwCisgICAgICAgIHsgIDMxLCAgMzEsIDI3MywgMjc0IH0sIC8vIE9jdAorICAgICAgICB7ICAzMCwgIDMwLCAzMDQsIDMwNSB9LCAvLyBOb3YKKyAgICAgICAgeyAgMzEsICAzMSwgMzM0LCAzMzUgfSAgLy8gRGVjCisgICAgICAgIC8vIGxlbiAgbGVuZ3RoIG9mIG1vbnRoCisgICAgICAgIC8vIGxlbjIgbGVuZ3RoIG9mIG1vbnRoIGluIGEgbGVhcCB5ZWFyCisgICAgICAgIC8vIHN0ICAgZGF5cyBpbiB5ZWFyIGJlZm9yZSBzdGFydCBvZiBtb250aAorICAgICAgICAvLyBzdDIgIGRheXMgaW4geWVhciBiZWZvcmUgbW9udGggaW4gbGVhcCB5ZWFyCisgICAgfTsKKworICAgIC8qKgorICAgICAqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIHllYXIgaXMgYSBsZWFwIHllYXIuIFJldHVybnMgdHJ1ZSBpZiB0aGUKKyAgICAgKiBnaXZlbiB5ZWFyIGlzIGEgbGVhcCB5ZWFyLgorICAgICAqIEBwYXJhbSB5ZWFyIHRoZSBnaXZlbiB5ZWFyLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4geWVhciBpcyBhIGxlYXAgeWVhcjsgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgYm9vbGVhbiBpc0dyZWdvcmlhbkxlYXBZZWFyKGludCB5ZWFyKSB7CisgICAgICAgIHJldHVybiAoeWVhciU0ID09IDApICYmICgoeWVhciUxMDAgIT0gMCkgfHwgKHllYXIlNDAwID09IDApKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGxlbmd0aCBvZiBhIG1vbnRoIG9mIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIuCisgICAgICogQHBhcmFtIHkgdGhlIGV4dGVuZGVkIHllYXIKKyAgICAgKiBAcGFyYW0gbSB0aGUgMC1iYXNlZCBtb250aCBudW1iZXIKKyAgICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgZGF5cyBpbiB0aGUgZ2l2ZW4gbW9udGgKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBncmVnb3JpYW5Nb250aExlbmd0aChpbnQgeSwgaW50IG0pIHsKKyAgICAgICAgcmV0dXJuIEdSRUdPUklBTl9NT05USF9DT1VOVFttXVtpc0dyZWdvcmlhbkxlYXBZZWFyKHkpPzE6MF07CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsZW5ndGggb2YgYSBwcmV2aW91cyBtb250aCBvZiB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyLgorICAgICAqIEBwYXJhbSB5IHRoZSBleHRlbmRlZCB5ZWFyCisgICAgICogQHBhcmFtIG0gdGhlIDAtYmFzZWQgbW9udGggbnVtYmVyCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIGRheXMgaW4gdGhlIG1vbnRoIHByZXZpb3VzIHRvIHRoZSBnaXZlbiBtb250aAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IGdyZWdvcmlhblByZXZpb3VzTW9udGhMZW5ndGgoaW50IHksIGludCBtKSB7CisgICAgICAgIHJldHVybiAobSA+IDApID8gZ3JlZ29yaWFuTW9udGhMZW5ndGgoeSwgbS0xKSA6IDMxOworICAgIH0KKworICAgIC8qKgorICAgICAqIERpdmlkZSB0d28gbG9uZyBpbnRlZ2VycywgcmV0dXJuaW5nIHRoZSBmbG9vciBvZiB0aGUgcXVvdGllbnQuCisgICAgICogPHA+CisgICAgICogVW5saWtlIHRoZSBidWlsdC1pbiBkaXZpc2lvbiwgdGhpcyBpcyBtYXRoZW1hdGljYWxseSB3ZWxsLWJlaGF2ZWQuCisgICAgICogRS5nLiwgPGNvZGU+LTEvNDwvY29kZT4gPT4gMAorICAgICAqIGJ1dCA8Y29kZT5mbG9vckRpdmlkZSgtMSw0KTwvY29kZT4gPT4gLTEuCisgICAgICogQHBhcmFtIG51bWVyYXRvciB0aGUgbnVtZXJhdG9yCisgICAgICogQHBhcmFtIGRlbm9taW5hdG9yIGEgZGl2aXNvciB3aGljaCBtdXN0IGJlID4gMAorICAgICAqIEByZXR1cm4gdGhlIGZsb29yIG9mIHRoZSBxdW90aWVudC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGxvbmcgZmxvb3JEaXZpZGUobG9uZyBudW1lcmF0b3IsIGxvbmcgZGVub21pbmF0b3IpIHsKKyAgICAgICAgLy8gV2UgZG8gdGhpcyBjb21wdXRhdGlvbiBpbiBvcmRlciB0byBoYW5kbGUKKyAgICAgICAgLy8gYSBudW1lcmF0b3Igb2YgTG9uZy5NSU5fVkFMVUUgY29ycmVjdGx5CisgICAgICAgIHJldHVybiAobnVtZXJhdG9yID49IDApID8KKyAgICAgICAgICAgIG51bWVyYXRvciAvIGRlbm9taW5hdG9yIDoKKyAgICAgICAgICAgICgobnVtZXJhdG9yICsgMSkgLyBkZW5vbWluYXRvcikgLSAxOworICAgIH0KKworICAgIC8qKgorICAgICAqIERpdmlkZSB0d28gaW50ZWdlcnMsIHJldHVybmluZyB0aGUgZmxvb3Igb2YgdGhlIHF1b3RpZW50LgorICAgICAqIDxwPgorICAgICAqIFVubGlrZSB0aGUgYnVpbHQtaW4gZGl2aXNpb24sIHRoaXMgaXMgbWF0aGVtYXRpY2FsbHkgd2VsbC1iZWhhdmVkLgorICAgICAqIEUuZy4sIDxjb2RlPi0xLzQ8L2NvZGU+ID0+IDAKKyAgICAgKiBidXQgPGNvZGU+Zmxvb3JEaXZpZGUoLTEsNCk8L2NvZGU+ID0+IC0xLgorICAgICAqIEBwYXJhbSBudW1lcmF0b3IgdGhlIG51bWVyYXRvcgorICAgICAqIEBwYXJhbSBkZW5vbWluYXRvciBhIGRpdmlzb3Igd2hpY2ggbXVzdCBiZSA+IDAKKyAgICAgKiBAcmV0dXJuIHRoZSBmbG9vciBvZiB0aGUgcXVvdGllbnQuCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgZmxvb3JEaXZpZGUoaW50IG51bWVyYXRvciwgaW50IGRlbm9taW5hdG9yKSB7CisgICAgICAgIC8vIFdlIGRvIHRoaXMgY29tcHV0YXRpb24gaW4gb3JkZXIgdG8gaGFuZGxlCisgICAgICAgIC8vIGEgbnVtZXJhdG9yIG9mIEludGVnZXIuTUlOX1ZBTFVFIGNvcnJlY3RseQorICAgICAgICByZXR1cm4gKG51bWVyYXRvciA+PSAwKSA/CisgICAgICAgICAgICBudW1lcmF0b3IgLyBkZW5vbWluYXRvciA6CisgICAgICAgICAgICAoKG51bWVyYXRvciArIDEpIC8gZGVub21pbmF0b3IpIC0gMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEaXZpZGUgdHdvIGludGVnZXJzLCByZXR1cm5pbmcgdGhlIGZsb29yIG9mIHRoZSBxdW90aWVudCwgYW5kCisgICAgICogdGhlIG1vZHVsdXMgcmVtYWluZGVyLgorICAgICAqIDxwPgorICAgICAqIFVubGlrZSB0aGUgYnVpbHQtaW4gZGl2aXNpb24sIHRoaXMgaXMgbWF0aGVtYXRpY2FsbHkgd2VsbC1iZWhhdmVkLgorICAgICAqIEUuZy4sIDxjb2RlPi0xLzQ8L2NvZGU+ID0+IDAgYW5kIDxjb2RlPi0xJTQ8L2NvZGU+ID0+IC0xLAorICAgICAqIGJ1dCA8Y29kZT5mbG9vckRpdmlkZSgtMSw0KTwvY29kZT4gPT4gLTEgd2l0aCA8Y29kZT5yZW1haW5kZXJbMF08L2NvZGU+ID0+IDMuCisgICAgICogQHBhcmFtIG51bWVyYXRvciB0aGUgbnVtZXJhdG9yCisgICAgICogQHBhcmFtIGRlbm9taW5hdG9yIGEgZGl2aXNvciB3aGljaCBtdXN0IGJlID4gMAorICAgICAqIEBwYXJhbSByZW1haW5kZXIgYW4gYXJyYXkgb2YgYXQgbGVhc3Qgb25lIGVsZW1lbnQgaW4gd2hpY2ggdGhlIHZhbHVlCisgICAgICogPGNvZGU+bnVtZXJhdG9yIG1vZCBkZW5vbWluYXRvcjwvY29kZT4gaXMgcmV0dXJuZWQuIFVubGlrZSA8Y29kZT5udW1lcmF0b3IKKyAgICAgKiAlIGRlbm9taW5hdG9yPC9jb2RlPiwgdGhpcyB3aWxsIGFsd2F5cyBiZSBub24tbmVnYXRpdmUuCisgICAgICogQHJldHVybiB0aGUgZmxvb3Igb2YgdGhlIHF1b3RpZW50LgorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IGZsb29yRGl2aWRlKGludCBudW1lcmF0b3IsIGludCBkZW5vbWluYXRvciwgaW50W10gcmVtYWluZGVyKSB7CisgICAgICAgIGlmIChudW1lcmF0b3IgPj0gMCkgeworICAgICAgICAgICAgcmVtYWluZGVyWzBdID0gbnVtZXJhdG9yICUgZGVub21pbmF0b3I7CisgICAgICAgICAgICByZXR1cm4gbnVtZXJhdG9yIC8gZGVub21pbmF0b3I7CisgICAgICAgIH0KKwlpbnQgcXVvdGllbnQgPSAoKG51bWVyYXRvciArIDEpIC8gZGVub21pbmF0b3IpIC0gMTsKKyAgICAgICAgcmVtYWluZGVyWzBdID0gbnVtZXJhdG9yIC0gKHF1b3RpZW50ICogZGVub21pbmF0b3IpOworICAgICAgICByZXR1cm4gcXVvdGllbnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGl2aWRlIHR3byBpbnRlZ2VycywgcmV0dXJuaW5nIHRoZSBmbG9vciBvZiB0aGUgcXVvdGllbnQsIGFuZAorICAgICAqIHRoZSBtb2R1bHVzIHJlbWFpbmRlci4KKyAgICAgKiA8cD4KKyAgICAgKiBVbmxpa2UgdGhlIGJ1aWx0LWluIGRpdmlzaW9uLCB0aGlzIGlzIG1hdGhlbWF0aWNhbGx5IHdlbGwtYmVoYXZlZC4KKyAgICAgKiBFLmcuLCA8Y29kZT4tMS80PC9jb2RlPiA9PiAwIGFuZCA8Y29kZT4tMSU0PC9jb2RlPiA9PiAtMSwKKyAgICAgKiBidXQgPGNvZGU+Zmxvb3JEaXZpZGUoLTEsNCk8L2NvZGU+ID0+IC0xIHdpdGggPGNvZGU+cmVtYWluZGVyWzBdPC9jb2RlPiA9PiAzLgorICAgICAqIEBwYXJhbSBudW1lcmF0b3IgdGhlIG51bWVyYXRvcgorICAgICAqIEBwYXJhbSBkZW5vbWluYXRvciBhIGRpdmlzb3Igd2hpY2ggbXVzdCBiZSA+IDAKKyAgICAgKiBAcGFyYW0gcmVtYWluZGVyIGFuIGFycmF5IG9mIGF0IGxlYXN0IG9uZSBlbGVtZW50IGluIHdoaWNoIHRoZSB2YWx1ZQorICAgICAqIDxjb2RlPm51bWVyYXRvciBtb2QgZGVub21pbmF0b3I8L2NvZGU+IGlzIHJldHVybmVkLiBVbmxpa2UgPGNvZGU+bnVtZXJhdG9yCisgICAgICogJSBkZW5vbWluYXRvcjwvY29kZT4sIHRoaXMgd2lsbCBhbHdheXMgYmUgbm9uLW5lZ2F0aXZlLgorICAgICAqIEByZXR1cm4gdGhlIGZsb29yIG9mIHRoZSBxdW90aWVudC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBmbG9vckRpdmlkZShsb25nIG51bWVyYXRvciwgaW50IGRlbm9taW5hdG9yLCBpbnRbXSByZW1haW5kZXIpIHsKKyAgICAgICAgaWYgKG51bWVyYXRvciA+PSAwKSB7CisgICAgICAgICAgICByZW1haW5kZXJbMF0gPSAoaW50KShudW1lcmF0b3IgJSBkZW5vbWluYXRvcik7CisgICAgICAgICAgICByZXR1cm4gKGludCkobnVtZXJhdG9yIC8gZGVub21pbmF0b3IpOworICAgICAgICB9CisgICAgICAgIGludCBxdW90aWVudCA9IChpbnQpKCgobnVtZXJhdG9yICsgMSkgLyBkZW5vbWluYXRvcikgLSAxKTsKKyAgICAgICAgcmVtYWluZGVyWzBdID0gKGludCkobnVtZXJhdG9yIC0gKHF1b3RpZW50ICogZGVub21pbmF0b3IpKTsKKyAgICAgICAgcmV0dXJuIHF1b3RpZW50OworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIEZJRUxEX05BTUUgPSB7CisgICAgICAgICJFUkEiLCAiWUVBUiIsICJNT05USCIsICJXRUVLX09GX1lFQVIiLCAiV0VFS19PRl9NT05USCIsCisgICAgICAgICJEQVlfT0ZfTU9OVEgiLCAiREFZX09GX1lFQVIiLCAiREFZX09GX1dFRUsiLAorICAgICAgICAiREFZX09GX1dFRUtfSU5fTU9OVEgiLCAiQU1fUE0iLCAiSE9VUiIsICJIT1VSX09GX0RBWSIsCisgICAgICAgICJNSU5VVEUiLCAiU0VDT05EIiwgIk1JTExJU0VDT05EIiwgIlpPTkVfT0ZGU0VUIiwKKyAgICAgICAgIkRTVF9PRkZTRVQiLCAiWUVBUl9XT1kiLCAiRE9XX0xPQ0FMIiwgIkVYVEVOREVEX1lFQVIiLAorICAgICAgICAiSlVMSUFOX0RBWSIsICJNSUxMSVNFQ09ORFNfSU5fREFZIiwKKyAgICB9OworCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgc3RyaW5nIG5hbWUgZm9yIGEgZmllbGQsIGZvciBkZWJ1Z2dpbmcgYW5kIGV4Y2VwdGlvbnMuCisgICAgICovCisgICAgcHJvdGVjdGVkIFN0cmluZyBmaWVsZE5hbWUoaW50IGZpZWxkKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gRklFTERfTkFNRVtmaWVsZF07CisgICAgICAgIH0gY2F0Y2ggKEFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gIkZpZWxkICIgKyBmaWVsZDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnRzIHRpbWUgYXMgbWlsbGlzZWNvbmRzIHRvIEp1bGlhbiBkYXkuCisgICAgICogQHBhcmFtIG1pbGxpcyB0aGUgZ2l2ZW4gbWlsbGlzZWNvbmRzLgorICAgICAqIEByZXR1cm4gdGhlIEp1bGlhbiBkYXkgbnVtYmVyLgorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IG1pbGxpc1RvSnVsaWFuRGF5KGxvbmcgbWlsbGlzKSB7CisgICAgICAgIHJldHVybiAoaW50KSAoRVBPQ0hfSlVMSUFOX0RBWSArIGZsb29yRGl2aWRlKG1pbGxpcywgT05FX0RBWSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnRzIEp1bGlhbiBkYXkgdG8gdGltZSBhcyBtaWxsaXNlY29uZHMuCisgICAgICogQHBhcmFtIGp1bGlhbiB0aGUgZ2l2ZW4gSnVsaWFuIGRheSBudW1iZXIuCisgICAgICogQHJldHVybiB0aW1lIGFzIG1pbGxpc2Vjb25kcy4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGxvbmcganVsaWFuRGF5VG9NaWxsaXMoaW50IGp1bGlhbikgeworICAgICAgICByZXR1cm4gKGp1bGlhbiAtIEVQT0NIX0pVTElBTl9EQVkpICogT05FX0RBWTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGRheSBvZiB3ZWVrLCBmcm9tIFNVTkRBWSB0byBTQVRVUkRBWSwgZ2l2ZW4gYSBKdWxpYW4gZGF5LgorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IGp1bGlhbkRheVRvRGF5T2ZXZWVrKGludCBqdWxpYW4pIHsKKyAgICAgICAgLy8gSWYganVsaWFuIGlzIG5lZ2F0aXZlLCB0aGVuIGp1bGlhbiU3IHdpbGwgYmUgbmVnYXRpdmUsIHNvIHdlIGFkanVzdAorICAgICAgICAvLyBhY2NvcmRpbmdseS4gIEp1bGlhbiBkYXkgMCBpcyBNb25kYXkuCisgICAgICAgIGludCBkYXlPZldlZWsgPSAoanVsaWFuICsgTU9OREFZKSAlIDc7CisgICAgICAgIGlmIChkYXlPZldlZWsgPCBTVU5EQVkpIHsKKyAgICAgICAgICAgIGRheU9mV2VlayArPSA3OworICAgICAgICB9CisgICAgICAgIHJldHVybiBkYXlPZldlZWs7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjdXJyZW50IG1pbGxpc2Vjb25kcyB3aXRob3V0IHJlY29tcHV0aW5nLgorICAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCBsb25nIGludGVybmFsR2V0VGltZUluTWlsbGlzKCkgeworICAgICAgICByZXR1cm4gdGltZTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9DYWxlbmRhckFzdHJvbm9tZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0NhbGVuZGFyQXN0cm9ub21lci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjZjM2FlYTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9DYWxlbmRhckFzdHJvbm9tZXIuamF2YQpAQCAtMCwwICsxLDEyMTggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS91dGlsL0F0dGljL0NhbGVuZGFyQXN0cm9ub21lci5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA2OjI1ICQgCisgKiAkUmV2aXNpb246IDEuNiAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGphdmEudXRpbC4qOworaW1wb3J0IGphdmEudGV4dC4qOworCisvKioKKyAqIDxjb2RlPkNhbGVuZGFyQXN0cm9ub21lcjwvY29kZT4gaXMgYSBjbGFzcyB0aGF0IGNhbiBwZXJmb3JtIHRoZSBjYWxjdWxhdGlvbnMgdG8KKyAqIGRldGVybWluZSB0aGUgcG9zaXRpb25zIG9mIHRoZSBzdW4gYW5kIG1vb24sIHRoZSB0aW1lIG9mIHN1bnJpc2UgYW5kCisgKiBzdW5zZXQsIGFuZCBvdGhlciBhc3Ryb25vbXktcmVsYXRlZCBkYXRhLiAgVGhlIGNhbGN1bGF0aW9ucyBpdCBwZXJmb3JtcworICogYXJlIGluIHNvbWUgY2FzZXMgcXVpdGUgY29tcGxpY2F0ZWQsIGFuZCB0aGlzIHV0aWxpdHkgY2xhc3Mgc2F2ZXMgeW91CisgKiB0aGUgdHJvdWJsZSBvZiB3b3JyeWluZyBhYm91dCB0aGVtLgorICogPHA+CisgKiBUaGUgbWVhc3VyZW1lbnQgb2YgdGltZSBpcyBhIHZlcnkgaW1wb3J0YW50IHBhcnQgb2YgYXN0cm9ub215LiAgQmVjYXVzZQorICogYXN0cm9ub21pY2FsIGJvZGllcyBhcmUgY29uc3RhbnRseSBpbiBtb3Rpb24sIG9ic2VydmF0aW9ucyBhcmUgb25seSB2YWxpZAorICogYXQgYSBnaXZlbiBtb21lbnQgaW4gdGltZS4gIEFjY29yZGluZ2x5LCBlYWNoIDxjb2RlPkNhbGVuZGFyQXN0cm9ub21lcjwvY29kZT4KKyAqIG9iamVjdCBoYXMgYSA8Y29kZT50aW1lPC9jb2RlPiBwcm9wZXJ0eSB0aGF0IGRldGVybWluZXMgdGhlIGRhdGUKKyAqIGFuZCB0aW1lIGZvciB3aGljaCBpdHMgY2FsY3VsYXRpb25zIGFyZSBwZXJmb3JtZWQuICBZb3UgY2FuIHNldCBhbmQKKyAqIHJldHJpZXZlIHRoaXMgcHJvcGVydHkgd2l0aCB7QGxpbmsgI3NldERhdGUgc2V0RGF0ZX0sIHtAbGluayAjZ2V0RGF0ZSBnZXREYXRlfQorICogYW5kIHJlbGF0ZWQgbWV0aG9kcy4KKyAqIDxwPgorICogQWxtb3N0IGFsbCBvZiB0aGUgY2FsY3VsYXRpb25zIHBlcmZvcm1lZCBieSB0aGlzIGNsYXNzLCBvciBieSBhbnkKKyAqIGFzdHJvbm9tZXIsIGFyZSBhcHByb3hpbWF0aW9ucyB0byB2YXJpb3VzIGRlZ3JlZXMgb2YgYWNjdXJhY3kuICBUaGUKKyAqIGNhbGN1bGF0aW9ucyBpbiB0aGlzIGNsYXNzIGFyZSBtb3N0bHkgbW9kZWxsZWQgYWZ0ZXIgdGhvc2UgZGVzY3JpYmVkCisgKiBpbiB0aGUgYm9vaworICogPGEgaHJlZj0iaHR0cDovL3d3dy5hbWF6b24uY29tL2V4ZWMvb2JpZG9zL0lTQk49MDUyMTM1Njk5NyIgdGFyZ2V0PSJfdG9wIj4KKyAqIFByYWN0aWNhbCBBc3Ryb25vbXkgV2l0aCBZb3VyIENhbGN1bGF0b3I8L2E+LCBieSBQZXRlciBKLgorICogRHVmZmV0dC1TbWl0aCwgQ2FtYnJpZGdlIFVuaXZlcnNpdHkgUHJlc3MsIDE5OTAuICBUaGlzIGlzIGFuIGV4Y2VsbGVudAorICogYm9vaywgYW5kIGlmIHlvdSB3YW50IGEgZ3JlYXRlciB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0aGVzZSBjYWxjdWxhdGlvbnMKKyAqIGFyZSBwZXJmb3JtZWQgaXQgYSB2ZXJ5IGdvb2QsIHJlYWRhYmxlIHN0YXJ0aW5nIHBvaW50LgorICogPHA+CisgKiA8c3Ryb25nPldBUk5JTkc6PC9zdHJvbmc+IFRoaXMgY2xhc3MgaXMgdmVyeSBlYXJseSBpbiBpdHMgZGV2ZWxvcG1lbnQsIGFuZAorICogaXQgaXMgaGlnaGx5IGxpa2VseSB0aGF0IGl0cyBBUEkgd2lsbCBjaGFuZ2UgdG8gc29tZSBkZWdyZWUgaW4gdGhlIGZ1dHVyZS4KKyAqIEF0IHRoZSBtb21lbnQsIGl0IGJhc2ljYWxseSBkb2VzIGp1c3QgZW5vdWdoIHRvIHN1cHBvcnQge0BsaW5rIElzbGFtaWNDYWxlbmRhcn0KKyAqIGFuZCB7QGxpbmsgQ2hpbmVzZUNhbGVuZGFyfS4KKyAqCisgKiBAYXV0aG9yIExhdXJhIFdlcm5lcgorICogQGF1dGhvciBBbGFuIExpdQorICovCitwdWJsaWMgY2xhc3MgQ2FsZW5kYXJBc3Ryb25vbWVyIHsKKyAgICAKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBBc3Ryb25vbWljYWwgY29uc3RhbnRzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUaGUgbnVtYmVyIG9mIHN0YW5kYXJkIGhvdXJzIGluIG9uZSBzaWRlcmVhbCBkYXkuCisgICAgICogQXBwcm94aW1hdGVseSAyNC45My4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGRvdWJsZSBTSURFUkVBTF9EQVkgPSAyMy45MzQ0Njk2MDAyNzsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgbnVtYmVyIG9mIHNpZGVyZWFsIGhvdXJzIGluIG9uZSBtZWFuIHNvbGFyIGRheS4KKyAgICAgKiBBcHByb3hpbWF0ZWx5IDI0LjA3LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgZG91YmxlIFNPTEFSX0RBWSA9ICAyNC4wNjU3MDk4MTY7CisgICAgCisgICAgLyoqCisgICAgICogVGhlIGF2ZXJhZ2UgbnVtYmVyIG9mIHNvbGFyIGRheXMgZnJvbSBvbmUgbmV3IG1vb24gdG8gdGhlIG5leHQuICBUaGlzIGlzIHRoZSB0aW1lCisgICAgICogaXQgdGFrZXMgZm9yIHRoZSBtb29uIHRvIHJldHVybiB0aGUgc2FtZSBlY2xpcHRpYyBsb25naXR1ZGUgYXMgdGhlIHN1bi4KKyAgICAgKiBJdCBpcyBsb25nZXIgdGhhbiB0aGUgc2lkZXJlYWwgbW9udGggYmVjYXVzZSB0aGUgc3VuJ3MgbG9uZ2l0dWRlIGluY3JlYXNlcworICAgICAqIGR1cmluZyB0aGUgeWVhciBkdWUgdG8gdGhlIHJldm9sdXRpb24gb2YgdGhlIGVhcnRoIGFyb3VuZCB0aGUgc3VuLgorICAgICAqIEFwcHJveGltYXRlbHkgMjkuNTMuCisgICAgICoKKyAgICAgKiBAc2VlICNTSURFUkVBTF9NT05USAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgZG91YmxlIFNZTk9ESUNfTU9OVEggPSAyOS41MzA1ODg4NTM7CisgICAgCisgICAgLyoqCisgICAgICogVGhlIGF2ZXJhZ2UgbnVtYmVyIG9mIGRheXMgaXQgdGFrZXMKKyAgICAgKiBmb3IgdGhlIG1vb24gdG8gcmV0dXJuIHRvIHRoZSBzYW1lIGVjbGlwdGljIGxvbmdpdHVkZSByZWxhdGl2ZSB0byB0aGUKKyAgICAgKiBzdGVsbGFyIGJhY2tncm91bmQuICBUaGlzIGlzIHJlZmVycmVkIHRvIGFzIHRoZSBzaWRlcmVhbCBtb250aC4KKyAgICAgKiBJdCBpcyBzaG9ydGVyIHRoYW4gdGhlIHN5bm9kaWMgbW9udGggZHVlIHRvCisgICAgICogdGhlIHJldm9sdXRpb24gb2YgdGhlIGVhcnRoIGFyb3VuZCB0aGUgc3VuLgorICAgICAqIEFwcHJveGltYXRlbHkgMjcuMzIuCisgICAgICoKKyAgICAgKiBAc2VlICNTWU5PRElDX01PTlRICisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBkb3VibGUgU0lERVJFQUxfTU9OVEggPSAyNy4zMjE2NjsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgYXZlcmFnZSBudW1iZXIgbnVtYmVyIG9mIGRheXMgYmV0d2VlbiBzdWNjZXNzaXZlIHZlcm5hbCBlcXVpbm94ZXMuCisgICAgICogRHVlIHRvIHRoZSBwcmVjZXNzaW9uIG9mIHRoZSBlYXJ0aCdzCisgICAgICogYXhpcywgdGhpcyBpcyBub3QgcHJlY2lzZWx5IHRoZSBzYW1lIGFzIHRoZSBzaWRlcmVhbCB5ZWFyLgorICAgICAqIEFwcHJveGltYXRlbHkgMzY1LjI0CisgICAgICoKKyAgICAgKiBAc2VlICNTSURFUkVBTF9ZRUFSCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBkb3VibGUgVFJPUElDQUxfWUVBUiA9IDM2NS4yNDIxOTE7CisgICAgCisgICAgLyoqCisgICAgICogVGhlIGF2ZXJhZ2UgbnVtYmVyIG9mIGRheXMgaXQgdGFrZXMKKyAgICAgKiBmb3IgdGhlIHN1biB0byByZXR1cm4gdG8gdGhlIHNhbWUgcG9zaXRpb24gYWdhaW5zdCB0aGUgZml4ZWQgc3RlbGxhcgorICAgICAqIGJhY2tncm91bmQuICBUaGlzIGlzIHRoZSBkdXJhdGlvbiBvZiBvbmUgb3JiaXQgb2YgdGhlIGVhcnRoIGFib3V0IHRoZSBzdW4KKyAgICAgKiBhcyBpdCB3b3VsZCBhcHBlYXIgdG8gYW4gb3V0c2lkZSBvYnNlcnZlci4KKyAgICAgKiBEdWUgdG8gdGhlIHByZWNlc3Npb24gb2YgdGhlIGVhcnRoJ3MKKyAgICAgKiBheGlzLCB0aGlzIGlzIG5vdCBwcmVjaXNlbHkgdGhlIHNhbWUgYXMgdGhlIHRyb3BpY2FsIHllYXIuCisgICAgICogQXBwcm94aW1hdGVseSAzNjUuMjUuCisgICAgICoKKyAgICAgKiBAc2VlICNUUk9QSUNBTF9ZRUFSCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBkb3VibGUgU0lERVJFQUxfWUVBUiA9IDM2NS4yNTYzNjsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFRpbWUtcmVsYXRlZCBjb25zdGFudHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKiBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBpbiBvbmUgc2Vjb25kLiAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50ICBTRUNPTkRfTVMgPSAxMDAwOworCisgICAgLyoqIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGluIG9uZSBtaW51dGUuICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgIE1JTlVURV9NUyA9IDYwKlNFQ09ORF9NUzsKKworICAgIC8qKiBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBpbiBvbmUgaG91ci4gKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCAgSE9VUl9NUyAgID0gNjAqTUlOVVRFX01TOworCisgICAgLyoqIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGluIG9uZSBkYXkuICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBsb25nIERBWV9NUyAgICA9IDI0KkhPVVJfTVM7CisKKyAgICAvKioKKyAgICAgKiBUaGUgc3RhcnQgb2YgdGhlIGp1bGlhbiBkYXkgbnVtYmVyaW5nIHNjaGVtZSB1c2VkIGJ5IGFzdHJvbm9tZXJzLCB3aGljaAorICAgICAqIGlzIDEvMS80NzEzIEJDIChKdWxpYW4pLCAxMjowMCBHTVQuICBUaGlzIGlzIGdpdmVuIGFzIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzCisgICAgICogc2luY2UgMS8xLzE5NzAgQUQgKEdyZWdvcmlhbiksIGEgbmVnYXRpdmUgbnVtYmVyLgorICAgICAqIE5vdGUgdGhhdCBqdWxpYW4gZGF5IG51bWJlcnMgYW5kCisgICAgICogdGhlIEp1bGlhbiBjYWxlbmRhciBhcmUgPGVtPm5vdDwvZW0+IHRoZSBzYW1lIHRoaW5nLiAgQWxzbyBub3RlIHRoYXQKKyAgICAgKiBqdWxpYW4gZGF5cyBzdGFydCBhdCA8ZW0+bm9vbjwvZW0+LCBub3QgbWlkbmlnaHQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBsb25nIEpVTElBTl9FUE9DSF9NUyA9IC0yMTA4NjY3NjAwMDAwMDBMOworICAgIAorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gQXNzb3J0ZWQgcHJpdmF0ZSBkYXRhIHVzZWQgZm9yIGNvbnZlcnNpb25zCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvLyBNeSBvd24gY29waWVzIG9mIHRoZXNlIHNvIGNvbXBpbGVycyBhcmUgbW9yZSBsaWtlbHkgdG8gb3B0aW1pemUgdGhlbSBhd2F5CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgZG91YmxlIFBJID0gMy4xNDE1OTI2NTM1ODk3OTMyMzg0NjsKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBkb3VibGUgUEkyID0gUEkgKiAyLjA7CisKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBkb3VibGUgSE9VUl9SQUQgPSBQSSAvIDEyOyAgICAgICAgLy8gaG91cnMgLT4gcmFkaWFucworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIGRvdWJsZSBSQURfSE9VUiA9IDEyIC8gUEk7ICAgICAgICAvLyByYWRpYW5zIC0+IGhvdXJzCisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgZG91YmxlIERFR19SQUQgID0gUEkgLyAxODA7ICAgICAgICAvLyBkZWdyZWVzIC0+IHJhZGlhbnMKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBkb3VibGUgUkFEX0RFRyAgPSAxODAgLyBQSTsgICAgICAgIC8vIHJhZGlhbnMgLT4gZGVncmVlcworICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIENvbnN0cnVjdG9ycworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgbmV3IDxjb2RlPkNhbGVuZGFyQXN0cm9ub21lcjwvY29kZT4gb2JqZWN0IHRoYXQgaXMgaW5pdGlhbGl6ZWQgdG8KKyAgICAgKiB0aGUgY3VycmVudCBkYXRlIGFuZCB0aW1lLgorICAgICAqLworICAgIHB1YmxpYyBDYWxlbmRhckFzdHJvbm9tZXIoKSB7CisgICAgICAgIHRoaXMoU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBuZXcgPGNvZGU+Q2FsZW5kYXJBc3Ryb25vbWVyPC9jb2RlPiBvYmplY3QgdGhhdCBpcyBpbml0aWFsaXplZCB0bworICAgICAqIHRoZSBzcGVjaWZpZWQgZGF0ZSBhbmQgdGltZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ2FsZW5kYXJBc3Ryb25vbWVyKERhdGUgZCkgeworICAgICAgICB0aGlzKGQuZ2V0VGltZSgpKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgbmV3IDxjb2RlPkNhbGVuZGFyQXN0cm9ub21lcjwvY29kZT4gb2JqZWN0IHRoYXQgaXMgaW5pdGlhbGl6ZWQgdG8KKyAgICAgKiB0aGUgc3BlY2lmaWVkIHRpbWUuICBUaGUgdGltZSBpcyBleHByZXNzZWQgYXMgYSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHNpbmNlCisgICAgICogSmFudWFyeSAxLCAxOTcwIEFEIChHcmVnb3JpYW4pLgorICAgICAqCisgICAgICogQHNlZSBqYXZhLnV0aWwuRGF0ZSNnZXRUaW1lCisgICAgICovCisgICAgcHVibGljIENhbGVuZGFyQXN0cm9ub21lcihsb25nIGFUaW1lKSB7CisgICAgICAgIHRpbWUgPSBhVGltZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgbmV3IDxjb2RlPkNhbGVuZGFyQXN0cm9ub21lcjwvY29kZT4gb2JqZWN0IHdpdGggdGhlIGdpdmVuCisgICAgICogbGF0aXR1ZGUgYW5kIGxvbmdpdHVkZS4gIFRoZSBvYmplY3QncyB0aW1lIGlzIHNldCB0byB0aGUgY3VycmVudAorICAgICAqIGRhdGUgYW5kIHRpbWUuCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGxvbmdpdHVkZSBUaGUgZGVzaXJlZCBsb25naXR1ZGUsIGluIDxlbT5kZWdyZWVzPC9lbT4gZWFzdCBvZgorICAgICAqICAgICAgICAgICAgICAgICAgdGhlIEdyZWVud2ljaCBtZXJpZGlhbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsYXRpdHVkZSAgVGhlIGRlc2lyZWQgbGF0aXR1ZGUsIGluIDxlbT5kZWdyZWVzPC9lbT4uICBQb3NpdGl2ZQorICAgICAqICAgICAgICAgICAgICAgICAgdmFsdWVzIHNpZ25pZnkgTm9ydGgsIG5lZ2F0aXZlIFNvdXRoLgorICAgICAqCisgICAgICogQHNlZSBqYXZhLnV0aWwuRGF0ZSNnZXRUaW1lCisgICAgICovCisgICAgcHVibGljIENhbGVuZGFyQXN0cm9ub21lcihkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgbGF0aXR1ZGUpIHsKKyAgICAgICAgdGhpcygpOworICAgICAgICBmTG9uZ2l0dWRlID0gbm9ybVBJKGxvbmdpdHVkZSAqIERFR19SQUQpOworICAgICAgICBmTGF0aXR1ZGUgID0gbm9ybVBJKGxhdGl0dWRlICAqIERFR19SQUQpOworICAgICAgICBmR210T2Zmc2V0ID0gKGxvbmcpKGZMb25naXR1ZGUgKiAyNCAqIEhPVVJfTVMgLyBQSTIpOworICAgIH0KKyAgICAKKyAgICAKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBUaW1lIGFuZCBkYXRlIGdldHRlcnMgYW5kIHNldHRlcnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGN1cnJlbnQgZGF0ZSBhbmQgdGltZSBvZiB0aGlzIDxjb2RlPkNhbGVuZGFyQXN0cm9ub21lcjwvY29kZT4gb2JqZWN0LiAgQWxsCisgICAgICogYXN0cm9ub21pY2FsIGNhbGN1bGF0aW9ucyBhcmUgcGVyZm9ybWVkIGJhc2VkIG9uIHRoaXMgdGltZSBzZXR0aW5nLgorICAgICAqCisgICAgICogQHBhcmFtIGFUaW1lIHRoZSBkYXRlIGFuZCB0aW1lLCBleHByZXNzZWQgYXMgdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgc2luY2UKKyAgICAgKiAgICAgICAgICAgICAgMS8xLzE5NzAgMDowMCBHTVQgKEdyZWdvcmlhbikuCisgICAgICoKKyAgICAgKiBAc2VlICNzZXREYXRlCisgICAgICogQHNlZSAjZ2V0VGltZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRpbWUobG9uZyBhVGltZSkgeworICAgICAgICB0aW1lID0gYVRpbWU7CisgICAgICAgIGNsZWFyQ2FjaGUoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBjdXJyZW50IGRhdGUgYW5kIHRpbWUgb2YgdGhpcyA8Y29kZT5DYWxlbmRhckFzdHJvbm9tZXI8L2NvZGU+IG9iamVjdC4gIEFsbAorICAgICAqIGFzdHJvbm9taWNhbCBjYWxjdWxhdGlvbnMgYXJlIHBlcmZvcm1lZCBiYXNlZCBvbiB0aGlzIHRpbWUgc2V0dGluZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhVGltZSB0aGUgdGltZSBhbmQgZGF0ZSwgZXhwcmVzc2VkIGFzIGEgPGNvZGU+RGF0ZTwvY29kZT4gb2JqZWN0LgorICAgICAqCisgICAgICogQHNlZSAjc2V0VGltZQorICAgICAqIEBzZWUgI2dldERhdGUKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXREYXRlKERhdGUgZGF0ZSkgeworICAgICAgICBzZXRUaW1lKGRhdGUuZ2V0VGltZSgpKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBjdXJyZW50IGRhdGUgYW5kIHRpbWUgb2YgdGhpcyA8Y29kZT5DYWxlbmRhckFzdHJvbm9tZXI8L2NvZGU+IG9iamVjdC4gIEFsbAorICAgICAqIGFzdHJvbm9taWNhbCBjYWxjdWxhdGlvbnMgYXJlIHBlcmZvcm1lZCBiYXNlZCBvbiB0aGlzIHRpbWUgc2V0dGluZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBqZG4gICB0aGUgZGVzaXJlZCB0aW1lLCBleHByZXNzZWQgYXMgYSAianVsaWFuIGRheSBudW1iZXIiLAorICAgICAqICAgICAgICAgICAgICB3aGljaCBpcyB0aGUgbnVtYmVyIG9mIGVsYXBzZWQgZGF5cyBzaW5jZSAKKyAgICAgKiAgICAgICAgICAgICAgMS8xLzQ3MTMgQkMgKEp1bGlhbiksIDEyOjAwIEdNVC4gIE5vdGUgdGhhdCBqdWxpYW4gZGF5CisgICAgICogICAgICAgICAgICAgIG51bWJlcnMgc3RhcnQgYXQgPGVtPm5vb248L2VtPi4gIFRvIGdldCB0aGUgamRuIGZvcgorICAgICAqICAgICAgICAgICAgICB0aGUgY29ycmVzcG9uZGluZyBtaWRuaWdodCwgc3VidHJhY3QgMC41LgorICAgICAqCisgICAgICogQHNlZSAjZ2V0SnVsaWFuRGF5CisgICAgICogQHNlZSAjSlVMSUFOX0VQT0NIX01TCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0SnVsaWFuRGF5KGRvdWJsZSBqZG4pIHsKKyAgICAgICAgdGltZSA9IChsb25nKShqZG4gKiBEQVlfTVMpICsgSlVMSUFOX0VQT0NIX01TOworICAgICAgICBjbGVhckNhY2hlKCk7CisgICAgICAgIGp1bGlhbkRheSA9IGpkbjsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0IHRoZSBjdXJyZW50IHRpbWUgb2YgdGhpcyA8Y29kZT5DYWxlbmRhckFzdHJvbm9tZXI8L2NvZGU+IG9iamVjdCwKKyAgICAgKiByZXByZXNlbnRlZCBhcyB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBzaW5jZQorICAgICAqIDEvMS8xOTcwIEFEIDA6MDAgR01UIChHcmVnb3JpYW4pLgorICAgICAqCisgICAgICogQHNlZSAjc2V0VGltZQorICAgICAqIEBzZWUgI2dldERhdGUKKyAgICAgKi8KKyAgICBwdWJsaWMgbG9uZyBnZXRUaW1lKCkgeworICAgICAgICByZXR1cm4gdGltZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0IHRoZSBjdXJyZW50IHRpbWUgb2YgdGhpcyA8Y29kZT5DYWxlbmRhckFzdHJvbm9tZXI8L2NvZGU+IG9iamVjdCwKKyAgICAgKiByZXByZXNlbnRlZCBhcyBhIDxjb2RlPkRhdGU8L2NvZGU+IG9iamVjdC4KKyAgICAgKgorICAgICAqIEBzZWUgI3NldERhdGUKKyAgICAgKiBAc2VlICNnZXRUaW1lCisgICAgICovCisgICAgcHVibGljIERhdGUgZ2V0RGF0ZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHRpbWUpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIGN1cnJlbnQgdGltZSBvZiB0aGlzIDxjb2RlPkNhbGVuZGFyQXN0cm9ub21lcjwvY29kZT4gb2JqZWN0LAorICAgICAqIGV4cHJlc3NlZCBhcyBhICJqdWxpYW4gZGF5IG51bWJlciIsIHdoaWNoIGlzIHRoZSBudW1iZXIgb2YgZWxhcHNlZAorICAgICAqIGRheXMgc2luY2UgMS8xLzQ3MTMgQkMgKEp1bGlhbiksIDEyOjAwIEdNVC4KKyAgICAgKgorICAgICAqIEBzZWUgI3NldEp1bGlhbkRheQorICAgICAqIEBzZWUgI0pVTElBTl9FUE9DSF9NUworICAgICAqLworICAgIHB1YmxpYyBkb3VibGUgZ2V0SnVsaWFuRGF5KCkgeworICAgICAgICBpZiAoanVsaWFuRGF5ID09IElOVkFMSUQpIHsKKyAgICAgICAgICAgIGp1bGlhbkRheSA9IChkb3VibGUpKHRpbWUgLSBKVUxJQU5fRVBPQ0hfTVMpIC8gKGRvdWJsZSlEQVlfTVM7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGp1bGlhbkRheTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoaXMgb2JqZWN0J3MgdGltZSBleHByZXNzZWQgaW4ganVsaWFuIGNlbnR1cmllczoKKyAgICAgKiB0aGUgbnVtYmVyIG9mIGNlbnR1cmllcyBhZnRlciAxLzEvMTkwMCBBRCwgMTI6MDAgR01UCisgICAgICoKKyAgICAgKiBAc2VlICNnZXRKdWxpYW5EYXkKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIGdldEp1bGlhbkNlbnR1cnkoKSB7CisgICAgICAgIGlmIChqdWxpYW5DZW50dXJ5ID09IElOVkFMSUQpIHsKKyAgICAgICAgICAgIGp1bGlhbkNlbnR1cnkgPSAoZ2V0SnVsaWFuRGF5KCkgLSAyNDE1MDIwLjApIC8gMzY1MjU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGp1bGlhbkNlbnR1cnk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY3VycmVudCBHcmVlbndpY2ggc2lkZXJlYWwgdGltZSwgbWVhc3VyZWQgaW4gaG91cnMKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIGdldEdyZWVud2ljaFNpZGVyZWFsKCkgeworICAgICAgICBpZiAoc2lkZXJlYWxUaW1lID09IElOVkFMSUQpIHsKKyAgICAgICAgICAgIC8vIFNlZSBwYWdlIDg2IG9mICJQcmFjdGlhbCBBc3Ryb25vbXkgd2l0aCB5b3VyIENhbGN1bGF0b3IiLAorICAgICAgICAgICAgLy8gYnkgUGV0ZXIgRHVmZmV0LVNtaXRoLCBmb3IgZGV0YWlscyBvbiB0aGUgYWxnb3JpdGhtLgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgZG91YmxlIFVUID0gbm9ybWFsaXplKChkb3VibGUpdGltZS9IT1VSX01TLCAyNCk7CisgICAgICAgIAorICAgICAgICAgICAgc2lkZXJlYWxUaW1lID0gbm9ybWFsaXplKGdldFNpZGVyZWFsT2Zmc2V0KCkgKyBVVCoxLjAwMjczNzkwOSwgMjQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzaWRlcmVhbFRpbWU7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgZG91YmxlIGdldFNpZGVyZWFsT2Zmc2V0KCkgeworICAgICAgICBpZiAoc2lkZXJlYWxUMCA9PSBJTlZBTElEKSB7CisgICAgICAgICAgICBkb3VibGUgSkQgID0gTWF0aC5mbG9vcihnZXRKdWxpYW5EYXkoKSAtIDAuNSkgKyAwLjU7CisgICAgICAgICAgICBkb3VibGUgUyAgID0gSkQgLSAyNDUxNTQ1LjA7CisgICAgICAgICAgICBkb3VibGUgVCAgID0gUyAvIDM2NTI1LjA7CisgICAgICAgICAgICBzaWRlcmVhbFQwID0gbm9ybWFsaXplKDYuNjk3Mzc0NTU4ICsgMjQwMC4wNTEzMzYqVCArIDAuMDAwMDI1ODYyKlQqVCwgMjQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzaWRlcmVhbFQwOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGxvY2FsIHNpZGVyZWFsIHRpbWUsIG1lYXN1cmVkIGluIGhvdXJzCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSBnZXRMb2NhbFNpZGVyZWFsKCkgeworICAgICAgICByZXR1cm4gbm9ybWFsaXplKGdldEdyZWVud2ljaFNpZGVyZWFsKCkgKyAoZG91YmxlKWZHbXRPZmZzZXQvSE9VUl9NUywgMjQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0cyBsb2NhbCBzaWRlcmVhbCB0aW1lIHRvIFVuaXZlcnNhbCBUaW1lLgorICAgICAqCisgICAgICogQHBhcmFtIGxzdCAgIFRoZSBMb2NhbCBTaWRlcmVhbCBUaW1lLCBpbiBob3VycyBzaW5jZSBzaWRlcmVhbCBtaWRuaWdodAorICAgICAqICAgICAgICAgICAgICBvbiB0aGlzIG9iamVjdCdzIGN1cnJlbnQgZGF0ZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gICAgICBUaGUgY29ycmVzcG9uZGluZyBVbml2ZXJzYWwgVGltZSwgaW4gbWlsbGlzZWNvbmRzIHNpbmNlCisgICAgICogICAgICAgICAgICAgIDEgSmFuIDE5NzAsIEdNVC4gIAorICAgICAqLworICAgIHByaXZhdGUgbG9uZyBsc3RUb1VUKGRvdWJsZSBsc3QpIHsKKyAgICAgICAgLy8gQ29udmVydCB0byBsb2NhbCBtZWFuIHRpbWUKKyAgICAgICAgZG91YmxlIGx0ID0gbm9ybWFsaXplKChsc3QgLSBnZXRTaWRlcmVhbE9mZnNldCgpKSAqIDAuOTk3MjY5NTY2MywgMjQpOworICAgICAgICAKKyAgICAgICAgLy8gVGhlbiBmaW5kIGxvY2FsIG1pZG5pZ2h0IG9uIHRoaXMgZGF5CisgICAgICAgIGxvbmcgYmFzZSA9IERBWV9NUyAqICgodGltZSArIGZHbXRPZmZzZXQpL0RBWV9NUykgLSBmR210T2Zmc2V0OworICAgICAgICAKKyAgICAgICAgLy9vdXQoIiAgICBsdCAgPSIgKyBsdCArICIgaG91cnMiKTsKKyAgICAgICAgLy9vdXQoIiAgICBiYXNlPSIgKyBuZXcgRGF0ZShiYXNlKSk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gYmFzZSArIChsb25nKShsdCAqIEhPVVJfTVMpOworICAgIH0KKyAgICAKKyAgICAKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBDb29yZGluYXRlIHRyYW5zZm9ybWF0aW9ucywgYWxsIGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUgb2YgdGhpcyBvYmplY3QKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgZnJvbSBlY2xpcHRpYyB0byBlcXVhdG9yaWFsIGNvb3JkaW5hdGVzLgorICAgICAqCisgICAgICogQHBhcmFtIGVjbGlwdGljICBBIHBvaW50IGluIHRoZSBza3kgaW4gZWNsaXB0aWMgY29vcmRpbmF0ZXMuCisgICAgICogQHJldHVybiAgICAgICAgICBUaGUgY29ycmVzcG9uZGluZyBwb2ludCBpbiBlcXVhdG9yaWFsIGNvb3JkaW5hdGVzLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBFcXVhdG9yaWFsIGVjbGlwdGljVG9FcXVhdG9yaWFsKEVjbGlwdGljIGVjbGlwdGljKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGVjbGlwdGljVG9FcXVhdG9yaWFsKGVjbGlwdGljLmxvbmdpdHVkZSwgZWNsaXB0aWMubGF0aXR1ZGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgZnJvbSBlY2xpcHRpYyB0byBlcXVhdG9yaWFsIGNvb3JkaW5hdGVzLgorICAgICAqCisgICAgICogQHBhcmFtIGVjbGlwTG9uZyAgICAgVGhlIGVjbGlwdGljIGxvbmdpdHVkZQorICAgICAqIEBwYXJhbSBlY2xpcExhdCAgICAgIFRoZSBlY2xpcHRpYyBsYXRpdHVkZQorICAgICAqCisgICAgICogQHJldHVybiAgICAgICAgICAgICAgVGhlIGNvcnJlc3BvbmRpbmcgcG9pbnQgaW4gZXF1YXRvcmlhbCBjb29yZGluYXRlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgRXF1YXRvcmlhbCBlY2xpcHRpY1RvRXF1YXRvcmlhbChkb3VibGUgZWNsaXBMb25nLCBkb3VibGUgZWNsaXBMYXQpCisgICAgeworICAgICAgICAvLyBTZWUgcGFnZSA0MiBvZiAiUHJhY3RpYWwgQXN0cm9ub215IHdpdGggeW91ciBDYWxjdWxhdG9yIiwKKyAgICAgICAgLy8gYnkgUGV0ZXIgRHVmZmV0LVNtaXRoLCBmb3IgZGV0YWlscyBvbiB0aGUgYWxnb3JpdGhtLgorCisgICAgICAgIGRvdWJsZSBvYmxpcSA9IGVjbGlwdGljT2JsaXF1aXR5KCk7CisgICAgICAgIGRvdWJsZSBzaW5FID0gTWF0aC5zaW4ob2JsaXEpOworICAgICAgICBkb3VibGUgY29zRSA9IE1hdGguY29zKG9ibGlxKTsKKyAgICAgICAgCisgICAgICAgIGRvdWJsZSBzaW5MID0gTWF0aC5zaW4oZWNsaXBMb25nKTsKKyAgICAgICAgZG91YmxlIGNvc0wgPSBNYXRoLmNvcyhlY2xpcExvbmcpOworICAgICAgICAKKyAgICAgICAgZG91YmxlIHNpbkIgPSBNYXRoLnNpbihlY2xpcExhdCk7CisgICAgICAgIGRvdWJsZSBjb3NCID0gTWF0aC5jb3MoZWNsaXBMYXQpOworICAgICAgICBkb3VibGUgdGFuQiA9IE1hdGgudGFuKGVjbGlwTGF0KTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBuZXcgRXF1YXRvcmlhbChNYXRoLmF0YW4yKHNpbkwqY29zRSAtIHRhbkIqc2luRSwgY29zTCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5hc2luKHNpbkIqY29zRSArIGNvc0Iqc2luRSpzaW5MKSApOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgZnJvbSBlY2xpcHRpYyBsb25naXR1ZGUgdG8gZXF1YXRvcmlhbCBjb29yZGluYXRlcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBlY2xpcExvbmcgICAgIFRoZSBlY2xpcHRpYyBsb25naXR1ZGUKKyAgICAgKgorICAgICAqIEByZXR1cm4gICAgICAgICAgICAgIFRoZSBjb3JyZXNwb25kaW5nIHBvaW50IGluIGVxdWF0b3JpYWwgY29vcmRpbmF0ZXMuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIEVxdWF0b3JpYWwgZWNsaXB0aWNUb0VxdWF0b3JpYWwoZG91YmxlIGVjbGlwTG9uZykKKyAgICB7CisgICAgICAgIHJldHVybiBlY2xpcHRpY1RvRXF1YXRvcmlhbChlY2xpcExvbmcsIDApOyAgLy8gVE9ETzogb3B0aW1pemUKKyAgICB9CisKKworICAgIHB1YmxpYyBIb3Jpem9uIGVjbGlwdGljVG9Ib3Jpem9uKGRvdWJsZSBlY2xpcExvbmcpCisgICAgeworICAgICAgICBFcXVhdG9yaWFsIGVxdWF0b3JpYWwgPSBlY2xpcHRpY1RvRXF1YXRvcmlhbChlY2xpcExvbmcpOworICAgICAgICAKKyAgICAgICAgZG91YmxlIEggPSBnZXRMb2NhbFNpZGVyZWFsKCkqUEkvMTIgLSBlcXVhdG9yaWFsLmFzY2Vuc2lvbjsgICAgIC8vIEhvdXItYW5nbGUKKyAgICAgICAgCisgICAgICAgIGRvdWJsZSBzaW5IID0gTWF0aC5zaW4oSCk7CisgICAgICAgIGRvdWJsZSBjb3NIID0gTWF0aC5jb3MoSCk7CisgICAgICAgIGRvdWJsZSBzaW5EID0gTWF0aC5zaW4oZXF1YXRvcmlhbC5kZWNsaW5hdGlvbik7CisgICAgICAgIGRvdWJsZSBjb3NEID0gTWF0aC5jb3MoZXF1YXRvcmlhbC5kZWNsaW5hdGlvbik7CisgICAgICAgIGRvdWJsZSBzaW5MID0gTWF0aC5zaW4oZkxhdGl0dWRlKTsKKyAgICAgICAgZG91YmxlIGNvc0wgPSBNYXRoLmNvcyhmTGF0aXR1ZGUpOworICAgICAgICAKKyAgICAgICAgZG91YmxlIGFsdGl0dWRlID0gTWF0aC5hc2luKHNpbkQqc2luTCArIGNvc0QqY29zTCpjb3NIKTsKKyAgICAgICAgZG91YmxlIGF6aW11dGggID0gTWF0aC5hdGFuMigtY29zRCpjb3NMKnNpbkgsIHNpbkQgLSBzaW5MICogTWF0aC5zaW4oYWx0aXR1ZGUpKTsKKworICAgICAgICByZXR1cm4gbmV3IEhvcml6b24oYXppbXV0aCwgYWx0aXR1ZGUpOworICAgIH0KKworICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFRoZSBTdW4KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvLworICAgIC8vIFBhcmFtZXRlcnMgb2YgdGhlIFN1bidzIG9yYml0IGFzIG9mIDEvMS8xOTkwCisgICAgLy8gQW5nbGVzIGFyZSBpbiByYWRpYW5zIChhZnRlciBtdWx0aXBseWluZyBieSBQSS8xODApCisgICAgLy8KKyAgICBkb3VibGUgamRuRXBvY2ggID0gMjQ0Nzg5MS41OyAgICAgICAgICAgLy8gSkROIG9mIGVwb2NoIChKYW4gMC4wIDE5OTApCisKKyAgICBkb3VibGUgc3VuRXRhRyAgID0gMjc5LjQwMzMwMyAqIFBJLzE4MDsgLy8gRWNsaXB0aWMgbG9uZ2l0dWRlIGF0IGVwb2NoCisgICAgZG91YmxlIHN1bk9tZWdhRyA9IDI4Mi43Njg0MjIgKiBQSS8xODA7IC8vIEVjbGlwdGljIGxvbmdpdHVkZSBvZiBwZXJpZ2VlCisgICAgZG91YmxlIHN1bkUgICAgICA9ICAgMC4wMTY3MTM7ICAgICAgICAgIC8vIEVjY2VudHJpY2l0eSBvZiBvcmJpdAorICAgIGRvdWJsZSBzdW5SMCAgICAgPSAgIDEuNDk1NTg1ZTg7ICAgICAgICAvLyBTZW1pLW1ham9yIGF4aXMgaW4gS00KKyAgICBkb3VibGUgc3VuVGhldGEwID0gICAwLjUzMzEyOCAqIFBJLzE4MDsgLy8gQW5ndWxhciBkaWFtZXRlciBhdCBSMAorCisgICAgLyoqCisgICAgICogVGhlIGxvbmdpdHVkZSBvZiB0aGUgc3VuIGF0IHRoZSB0aW1lIHNwZWNpZmllZCBieSB0aGlzIG9iamVjdC4KKyAgICAgKiBUaGUgbG9uZ2l0dWRlIGlzIG1lYXN1cmVkIGluIHJhZGlhbnMgYWxvbmcgdGhlIGVjbGlwdGljCisgICAgICogZnJvbSB0aGUgImZpcnN0IHBvaW50IG9mIEFyaWVzLCIgdGhlIHBvaW50IGF0IHdoaWNoIHRoZSBlY2xpcHRpYworICAgICAqIGNyb3NzZXMgdGhlIGVhcnRoJ3MgZXF1YXRvcmlhbCBwbGFuZSBhdCB0aGUgdmVybmFsIGVxdWlub3guCisgICAgICogPHA+CisgICAgICogQ3VycmVudGx5LCB0aGlzIG1ldGhvZCB1c2VzIGFuIGFwcHJveGltYXRpb24gb2YgdGhlIHR3by1ib2R5IEtlcGxlcidzCisgICAgICogZXF1YXRpb24gZm9yIHRoZSBlYXJ0aCBhbmQgdGhlIHN1bi4gIEl0IGRvZXMgbm90IHRha2UgaW50byBhY2NvdW50IHRoZQorICAgICAqIHBlcnR1cmJhdGlvbnMgY2F1c2VkIGJ5IHRoZSBvdGhlciBwbGFuZXRzLCB0aGUgbW9vbiwgZXRjLgorICAgICAqLworICAgIHB1YmxpYyBkb3VibGUgZ2V0U3VuTG9uZ2l0dWRlKCkKKyAgICB7CisgICAgICAgIC8vIFNlZSBwYWdlIDg2IG9mICJQcmFjdGlhbCBBc3Ryb25vbXkgd2l0aCB5b3VyIENhbGN1bGF0b3IiLAorICAgICAgICAvLyBieSBQZXRlciBEdWZmZXQtU21pdGgsIGZvciBkZXRhaWxzIG9uIHRoZSBhbGdvcml0aG0uCisgICAgICAgIAorICAgICAgICBpZiAoc3VuTG9uZ2l0dWRlID09IElOVkFMSUQpIHsKKyAgICAgICAgICAgIGRvdWJsZSBkYXkgPSBnZXRKdWxpYW5EYXkoKSAtIGpkbkVwb2NoOyAgICAgICAvLyBEYXlzIHNpbmNlIGVwb2NoCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIEZpbmQgdGhlIGFuZ3VsYXIgZGlzdGFuY2UgdGhlIHN1biBpbiBhIGZpY3RpdGlvdXMKKyAgICAgICAgICAgIC8vIGNpcmN1bGFyIG9yYml0IGhhcyB0cmF2ZWxsZWQgc2luY2UgdGhlIGVwb2NoLgorICAgICAgICAgICAgZG91YmxlIGVwb2NoQW5nbGUgPSBub3JtMlBJKFBJMi9UUk9QSUNBTF9ZRUFSKmRheSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFRoZSBlcG9jaCB3YXNuJ3QgYXQgdGhlIHN1bidzIHBlcmlnZWU7IGZpbmQgdGhlIGFuZ3VsYXIgZGlzdGFuY2UKKyAgICAgICAgICAgIC8vIHNpbmNlIHBlcmlnZWUsIHdoaWNoIGlzIGNhbGxlZCB0aGUgIm1lYW4gYW5vbWFseSIKKyAgICAgICAgICAgIG1lYW5Bbm9tYWx5U3VuID0gbm9ybTJQSShlcG9jaEFuZ2xlICsgc3VuRXRhRyAtIHN1bk9tZWdhRyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIE5vdyBmaW5kIHRoZSAidHJ1ZSBhbm9tYWx5IiwgZS5nLiB0aGUgcmVhbCBzb2xhciBsb25naXR1ZGUKKyAgICAgICAgICAgIC8vIGJ5IHNvbHZpbmcgS2VwbGVyJ3MgZXF1YXRpb24gZm9yIGFuIGVsbGlwdGljYWwgb3JiaXQKKyAgICAgICAgICAgIHN1bkxvbmdpdHVkZSA9IG5vcm0yUEkodHJ1ZUFub21hbHkobWVhbkFub21hbHlTdW4sIHN1bkUpICsgc3VuT21lZ2FHKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc3VuTG9uZ2l0dWRlOworICAgIH0KKyAgCisgICAgLyoqCisgICAgICogVGhlIHBvc2l0aW9uIG9mIHRoZSBzdW4gYXQgdGhpcyBvYmplY3QncyBjdXJyZW50IGRhdGUgYW5kIHRpbWUsCisgICAgICogaW4gZXF1YXRvcmlhbCBjb29yZGluYXRlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgRXF1YXRvcmlhbCBnZXRTdW5Qb3NpdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIGVjbGlwdGljVG9FcXVhdG9yaWFsKGdldFN1bkxvbmdpdHVkZSgpLCAwKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgU29sYXJMb25naXR1ZGUgeworICAgICAgICBkb3VibGUgdmFsdWU7CisgICAgICAgIFNvbGFyTG9uZ2l0dWRlKGRvdWJsZSB2YWwpIHsgdmFsdWUgPSB2YWw7IH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgcmVwcmVzZW50aW5nIHRoZSB2ZXJuYWwgZXF1aW5veC4KKyAgICAgKiBGb3IgdXNlIHdpdGgge0BsaW5rICNnZXRTdW5UaW1lIGdldFN1blRpbWV9LiAKKyAgICAgKiBOb3RlOiBJbiB0aGlzIGNhc2UsICJ2ZXJuYWwiIHJlZmVycyB0byB0aGUgbm9ydGhlcm4gaGVtaXNwaGVyZSdzIHNlYXNvbnMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTb2xhckxvbmdpdHVkZSBWRVJOQUxfRVFVSU5PWCAgPSBuZXcgU29sYXJMb25naXR1ZGUoMCk7CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgcmVwcmVzZW50aW5nIHRoZSBzdW1tZXIgc29sc3RpY2UuCisgICAgICogRm9yIHVzZSB3aXRoIHtAbGluayAjZ2V0U3VuVGltZSBnZXRTdW5UaW1lfS4KKyAgICAgKiBOb3RlOiBJbiB0aGlzIGNhc2UsICJzdW1tZXIiIHJlZmVycyB0byB0aGUgbm9ydGhlcm4gaGVtaXNwaGVyZSdzIHNlYXNvbnMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTb2xhckxvbmdpdHVkZSBTVU1NRVJfU09MU1RJQ0UgPSBuZXcgU29sYXJMb25naXR1ZGUoUEkvMik7CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgcmVwcmVzZW50aW5nIHRoZSBhdXR1bW5hbCBlcXVpbm94LgorICAgICAqIEZvciB1c2Ugd2l0aCB7QGxpbmsgI2dldFN1blRpbWUgZ2V0U3VuVGltZX0uCisgICAgICogTm90ZTogSW4gdGhpcyBjYXNlLCAiYXV0dW1uIiByZWZlcnMgdG8gdGhlIG5vcnRoZXJuIGhlbWlzcGhlcmUncyBzZWFzb25zLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU29sYXJMb25naXR1ZGUgQVVUVU1OX0VRVUlOT1ggID0gbmV3IFNvbGFyTG9uZ2l0dWRlKFBJKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCByZXByZXNlbnRpbmcgdGhlIHdpbnRlciBzb2xzdGljZS4KKyAgICAgKiBGb3IgdXNlIHdpdGgge0BsaW5rICNnZXRTdW5UaW1lIGdldFN1blRpbWV9LgorICAgICAqIE5vdGU6IEluIHRoaXMgY2FzZSwgIndpbnRlciIgcmVmZXJzIHRvIHRoZSBub3J0aGVybiBoZW1pc3BoZXJlJ3Mgc2Vhc29ucy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFNvbGFyTG9uZ2l0dWRlIFdJTlRFUl9TT0xTVElDRSA9IG5ldyBTb2xhckxvbmdpdHVkZSgoUEkqMykvMik7CisgICAgCisgICAgLyoqCisgICAgICogRmluZCB0aGUgbmV4dCB0aW1lIGF0IHdoaWNoIHRoZSBzdW4ncyBlY2xpcHRpYyBsb25naXR1ZGUgd2lsbCBoYXZlCisgICAgICogdGhlIGRlc2lyZWQgdmFsdWUuICAKKyAgICAgKi8KKyAgICBwdWJsaWMgbG9uZyBnZXRTdW5UaW1lKGRvdWJsZSBkZXNpcmVkLCBib29sZWFuIG5leHQpCisgICAgeworICAgICAgICByZXR1cm4gdGltZU9mQW5nbGUoIG5ldyBBbmdsZUZ1bmMoKSB7IHB1YmxpYyBkb3VibGUgZXZhbCgpIHsgcmV0dXJuIGdldFN1bkxvbmdpdHVkZSgpOyB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzaXJlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUk9QSUNBTF9ZRUFSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1JTlVURV9NUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0KTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogRmluZCB0aGUgbmV4dCB0aW1lIGF0IHdoaWNoIHRoZSBzdW4ncyBlY2xpcHRpYyBsb25naXR1ZGUgd2lsbCBoYXZlCisgICAgICogdGhlIGRlc2lyZWQgdmFsdWUuICAKKyAgICAgKi8KKyAgICBwdWJsaWMgbG9uZyBnZXRTdW5UaW1lKFNvbGFyTG9uZ2l0dWRlIGRlc2lyZWQsIGJvb2xlYW4gbmV4dCkgeworICAgICAgICByZXR1cm4gZ2V0U3VuVGltZShkZXNpcmVkLnZhbHVlLCBuZXh0KTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdGltZSAoR01UKSBvZiBzdW5yaXNlIG9yIHN1bnNldCBvbiB0aGUgbG9jYWwgZGF0ZSB0byB3aGljaAorICAgICAqIHRoaXMgY2FsZW5kYXIgaXMgY3VycmVudGx5IHNldC4KKyAgICAgKi8KKyAgICBwdWJsaWMgbG9uZyBnZXRTdW5SaXNlU2V0KGJvb2xlYW4gcmlzZSkKKyAgICB7CisgICAgICAgIC8vIE1ha2UgYSByb3VnaCBndWVzczogNmFtIG9yIDZwbSBsb2NhbCB0aW1lIG9uIHRoZSBjdXJyZW50IGRheQorICAgICAgICBsb25nIG5vb24gPSAoKHRpbWUgKyBmR210T2Zmc2V0KS9EQVlfTVMpKkRBWV9NUyAtIGZHbXRPZmZzZXQgKyAxMipIT1VSX01TOworICAgICAgICAKKyAgICAgICAgc2V0VGltZShub29uICsgKGxvbmcpKChyaXNlID8gLTYgOiA2KSAqIEhPVVJfTVMpKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiByaXNlT3JTZXQobmV3IENvb3JkRnVuYygpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgRXF1YXRvcmlhbCBldmFsKCkgeyByZXR1cm4gZ2V0U3VuUG9zaXRpb24oKTsgfQorICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgcmlzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAuNTMzICogREVHX1JBRCwgICAgICAgIC8vIEFuZ3VsYXIgRGlhbWV0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAzNCAvNjAuMCAqIERFR19SQUQsICAgIC8vIFJlZnJhY3Rpb24gY29ycmVjdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgIE1JTlVURV9NUyk7ICAgICAgICAgICAgLy8gRGVzaXJlZCBhY2N1cmFjeQorICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFRoZSBNb29uCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgc3RhdGljIGZpbmFsIGRvdWJsZSBtb29uTDAgPSAzMTguMzUxNjQ4ICogUEkvMTgwOyAgIC8vIE1lYW4gbG9uZy4gYXQgZXBvY2gKKyAgICBzdGF0aWMgZmluYWwgZG91YmxlIG1vb25QMCA9ICAzNi4zNDA0MTAgKiBQSS8xODA7ICAgLy8gTWVhbiBsb25nLiBvZiBwZXJpZ2VlCisgICAgc3RhdGljIGZpbmFsIGRvdWJsZSBtb29uTjAgPSAzMTguNTEwMTA3ICogUEkvMTgwOyAgIC8vIE1lYW4gbG9uZy4gb2Ygbm9kZQorICAgIHN0YXRpYyBmaW5hbCBkb3VibGUgbW9vbkkgID0gICA1LjE0NTM2NiAqIFBJLzE4MDsgICAvLyBJbmNsaW5hdGlvbiBvZiBvcmJpdAorICAgIHN0YXRpYyBmaW5hbCBkb3VibGUgbW9vbkUgID0gICAwLjA1NDkwMDsgICAgICAgICAgICAvLyBFY2NlbnRyaWNpdHkgb2Ygb3JiaXQKKyAgICAKKyAgICAvLyBUaGVzZSBhcmVuJ3QgdXNlZCByaWdodCBub3cKKyAgICBzdGF0aWMgZmluYWwgZG91YmxlIG1vb25BICA9ICAgMy44NDQwMWU1OyAgICAgICAgICAgLy8gc2VtaS1tYWpvciBheGlzIChrbSkKKyAgICBzdGF0aWMgZmluYWwgZG91YmxlIG1vb25UMCA9ICAgMC41MTgxICogUEkvMTgwOyAgICAgLy8gQW5ndWxhciBzaXplIGF0IGRpc3RhbmNlIEEKKyAgICBzdGF0aWMgZmluYWwgZG91YmxlIG1vb25QaSA9ICAgMC45NTA3ICogUEkvMTgwOyAgICAgLy8gUGFyYWxsYXggYXQgZGlzdGFuY2UgQQorICAgIAorICAgIC8qKgorICAgICAqIFRoZSBwb3NpdGlvbiBvZiB0aGUgbW9vbiBhdCB0aGUgdGltZSBzZXQgb24gdGhpcworICAgICAqIG9iamVjdCwgaW4gZXF1YXRvcmlhbCBjb29yZGluYXRlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgRXF1YXRvcmlhbCBnZXRNb29uUG9zaXRpb24oKQorICAgIHsKKyAgICAgICAgLy8KKyAgICAgICAgLy8gU2VlIHBhZ2UgMTQyIG9mICJQcmFjdGlhbCBBc3Ryb25vbXkgd2l0aCB5b3VyIENhbGN1bGF0b3IiLAorICAgICAgICAvLyBieSBQZXRlciBEdWZmZXQtU21pdGgsIGZvciBkZXRhaWxzIG9uIHRoZSBhbGdvcml0aG0uCisgICAgICAgIC8vCisgICAgICAgIGlmIChtb29uUG9zaXRpb24gPT0gbnVsbCkgeworICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBzb2xhciBsb25naXR1ZGUuICBIYXMgdGhlIHNpZGUgZWZmZWN0IG9mCisgICAgICAgICAgICAvLyBmaWxsaW5nIGluICJtZWFuQW5vbWFseVN1biIgYXMgd2VsbC4KKyAgICAgICAgICAgIGRvdWJsZSBzdW5Mb25naXR1ZGUgPSBnZXRTdW5Mb25naXR1ZGUoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIEZpbmQgdGhlICMgb2YgZGF5cyBzaW5jZSB0aGUgZXBvY2ggb2Ygb3VyIG9yYml0YWwgcGFyYW1ldGVycy4KKyAgICAgICAgICAgIC8vIFRPRE86IENvbnZlcnQgdGhlIHRpbWUgb2YgZGF5IHBvcnRpb24gaW50byBlcGhlbWVyaXMgdGltZQorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIGRvdWJsZSBkYXkgPSBnZXRKdWxpYW5EYXkoKSAtIGpkbkVwb2NoOyAgICAgICAvLyBEYXlzIHNpbmNlIGVwb2NoCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgbWVhbiBsb25naXR1ZGUgYW5kIGFub21hbHkgb2YgdGhlIG1vb24sIGJhc2VkIG9uCisgICAgICAgICAgICAvLyBhIGNpcmN1bGFyIG9yYml0LiAgU2ltaWxhciB0byB0aGUgY29ycmVzcG9uZGluZyBzb2xhciBjYWxjdWxhdGlvbi4KKyAgICAgICAgICAgIGRvdWJsZSBtZWFuTG9uZ2l0dWRlID0gbm9ybTJQSSgxMy4xNzYzOTY2KlBJLzE4MCpkYXkgKyBtb29uTDApOworICAgICAgICAgICAgZG91YmxlIG1lYW5Bbm9tYWx5TW9vbiA9IG5vcm0yUEkobWVhbkxvbmdpdHVkZSAtIDAuMTExNDA0MSpQSS8xODAgKiBkYXkgLSBtb29uUDApOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBmb2xsb3dpbmcgY29ycmVjdGlvbnM6CisgICAgICAgICAgICAvLyAgRXZlY3Rpb246ICAgdGhlIHN1bidzIGdyYXZpdHkgYWZmZWN0cyB0aGUgbW9vbidzIGVjY2VudHJpY2l0eQorICAgICAgICAgICAgLy8gIEFubnVhbCBFcW46IHZhcmlhdGlvbiBpbiB0aGUgZWZmZWN0IGR1ZSB0byBlYXJ0aC1zdW4gZGlzdGFuY2UKKyAgICAgICAgICAgIC8vICBBMzogICAgICAgICBjb3JyZWN0aW9uIGZhY3RvciAoZm9yID8/PykKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICBkb3VibGUgZXZlY3Rpb24gPSAxLjI3MzkqUEkvMTgwICogTWF0aC5zaW4oMiAqIChtZWFuTG9uZ2l0dWRlIC0gc3VuTG9uZ2l0dWRlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBtZWFuQW5vbWFseU1vb24pOworICAgICAgICAgICAgZG91YmxlIGFubnVhbCAgID0gMC4xODU4KlBJLzE4MCAqIE1hdGguc2luKG1lYW5Bbm9tYWx5U3VuKTsKKyAgICAgICAgICAgIGRvdWJsZSBhMyAgICAgICA9IDAuMzcwMCpQSS8xODAgKiBNYXRoLnNpbihtZWFuQW5vbWFseVN1bik7CisKKyAgICAgICAgICAgIG1lYW5Bbm9tYWx5TW9vbiArPSBldmVjdGlvbiAtIGFubnVhbCAtIGEzOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gTW9yZSBjb3JyZWN0aW9uIGZhY3RvcnM6CisgICAgICAgICAgICAvLyAgY2VudGVyICBlcXVhdGlvbiBvZiB0aGUgY2VudGVyIGNvcnJlY3Rpb24KKyAgICAgICAgICAgIC8vICBhNCAgICAgIHlldCBhbm90aGVyIGVycm9yIGNvcnJlY3Rpb24gKD8/PykKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBUT0RPOiBTa2lwIHRoZSBlcXVhdGlvbiBvZiB0aGUgY2VudGVyIGNvcnJlY3Rpb24gYW5kIHNvbHZlIEtlcGxlcidzIGVxbj8KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICBkb3VibGUgY2VudGVyID0gNi4yODg2KlBJLzE4MCAqIE1hdGguc2luKG1lYW5Bbm9tYWx5TW9vbik7CisgICAgICAgICAgICBkb3VibGUgYTQgPSAgICAgMC4yMTQwKlBJLzE4MCAqIE1hdGguc2luKDIgKiBtZWFuQW5vbWFseU1vb24pOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBOb3cgZmluZCB0aGUgbW9vbidzIGNvcnJlY3RlZCBsb25naXR1ZGUKKyAgICAgICAgICAgIG1vb25Mb25naXR1ZGUgPSBtZWFuTG9uZ2l0dWRlICsgZXZlY3Rpb24gKyBjZW50ZXIgLSBhbm51YWwgKyBhNDsKKworICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIEFuZCBmaW5hbGx5LCBmaW5kIHRoZSB2YXJpYXRpb24sIGNhdXNlZCBieSB0aGUgZmFjdCB0aGF0IHRoZSBzdW4ncworICAgICAgICAgICAgLy8gZ3Jhdml0YXRpb25hbCBwdWxsIG9uIHRoZSBtb29uIHZhcmllcyBkZXBlbmRpbmcgb24gd2hpY2ggc2lkZSBvZgorICAgICAgICAgICAgLy8gdGhlIGVhcnRoIHRoZSBtb29uIGlzIG9uCisgICAgICAgICAgICAvLworICAgICAgICAgICAgZG91YmxlIHZhcmlhdGlvbiA9IDAuNjU4MypQSS8xODAgKiBNYXRoLnNpbigyKihtb29uTG9uZ2l0dWRlIC0gc3VuTG9uZ2l0dWRlKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1vb25Mb25naXR1ZGUgKz0gdmFyaWF0aW9uOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gV2hhdCB3ZSd2ZSBjYWxjdWxhdGVkIHNvIGZhciBpcyB0aGUgbW9vbidzIGxvbmdpdHVkZSBpbiB0aGUgcGxhbmUKKyAgICAgICAgICAgIC8vIG9mIGl0cyBvd24gb3JiaXQuICBOb3cgbWFwIHRvIHRoZSBlY2xpcHRpYyB0byBnZXQgdGhlIGxhdGl0dWRlCisgICAgICAgICAgICAvLyBhbmQgbG9uZ2l0dWRlLiAgRmlyc3Qgd2UgbmVlZCB0byBmaW5kIHRoZSBsb25naXR1ZGUgb2YgdGhlIGFzY2VuZGluZworICAgICAgICAgICAgLy8gbm9kZSwgdGhlIHBvc2l0aW9uIG9uIHRoZSBlY2xpcHRpYyB3aGVyZSBpdCBpcyBjcm9zc2VkIGJ5IHRoZSBtb29uJ3MKKyAgICAgICAgICAgIC8vIG9yYml0IGFzIGl0IGNyb3NzZXMgZnJvbSB0aGUgc291dGhlcm4gdG8gdGhlIG5vcnRoZXJuIGhlbWlzcGhlcmUuCisgICAgICAgICAgICAvLworICAgICAgICAgICAgZG91YmxlIG5vZGVMb25naXR1ZGUgPSBub3JtMlBJKG1vb25OMCAtIDAuMDUyOTUzOSpQSS8xODAgKiBkYXkpOworCisgICAgICAgICAgICBub2RlTG9uZ2l0dWRlIC09IDAuMTYqUEkvMTgwICogTWF0aC5zaW4obWVhbkFub21hbHlTdW4pOworCisgICAgICAgICAgICBkb3VibGUgeSA9IE1hdGguc2luKG1vb25Mb25naXR1ZGUgLSBub2RlTG9uZ2l0dWRlKTsKKyAgICAgICAgICAgIGRvdWJsZSB4ID0gTWF0aC5jb3MobW9vbkxvbmdpdHVkZSAtIG5vZGVMb25naXR1ZGUpOworICAgICAgICAgICAgCisgICAgICAgICAgICBtb29uRWNsaXBMb25nID0gTWF0aC5hdGFuMih5Kk1hdGguY29zKG1vb25JKSwgeCkgKyBub2RlTG9uZ2l0dWRlOworICAgICAgICAgICAgZG91YmxlIG1vb25FY2xpcExhdCA9IE1hdGguYXNpbih5ICogTWF0aC5zaW4obW9vbkkpKTsKKworICAgICAgICAgICAgbW9vblBvc2l0aW9uID0gZWNsaXB0aWNUb0VxdWF0b3JpYWwobW9vbkVjbGlwTG9uZywgbW9vbkVjbGlwTGF0KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbW9vblBvc2l0aW9uOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgImFnZSIgb2YgdGhlIG1vb24gYXQgdGhlIHRpbWUgc3BlY2lmaWVkIGluIHRoaXMgb2JqZWN0LgorICAgICAqIFRoaXMgaXMgcmVhbGx5IHRoZSBhbmdsZSBiZXR3ZWVuIHRoZQorICAgICAqIGN1cnJlbnQgZWNsaXB0aWMgbG9uZ2l0dWRlcyBvZiB0aGUgc3VuIGFuZCB0aGUgbW9vbiwKKyAgICAgKiBtZWFzdXJlZCBpbiByYWRpYW5zLgorICAgICAqCisgICAgICogQHNlZSAjZ2V0TW9vblBoYXNlCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSBnZXRNb29uQWdlKCkgeworICAgICAgICAvLyBTZWUgcGFnZSAxNDcgb2YgIlByYWN0aWFsIEFzdHJvbm9teSB3aXRoIHlvdXIgQ2FsY3VsYXRvciIsCisgICAgICAgIC8vIGJ5IFBldGVyIER1ZmZldC1TbWl0aCwgZm9yIGRldGFpbHMgb24gdGhlIGFsZ29yaXRobS4KKyAgICAgICAgLy8KKyAgICAgICAgLy8gRm9yY2UgdGhlIG1vb24ncyBwb3NpdGlvbiB0byBiZSBjYWxjdWxhdGVkLiAgV2UncmUgZ29pbmcgdG8gdXNlCisgICAgICAgIC8vIHNvbWUgdGhlIGludGVybWVkaWF0ZSByZXN1bHRzIGNhY2hlZCBkdXJpbmcgdGhhdCBjYWxjdWxhdGlvbi4KKyAgICAgICAgLy8KKyAgICAgICAgZ2V0TW9vblBvc2l0aW9uKCk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gbm9ybTJQSShtb29uRWNsaXBMb25nIC0gc3VuTG9uZ2l0dWRlKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ2FsY3VsYXRlIHRoZSBwaGFzZSBvZiB0aGUgbW9vbiBhdCB0aGUgdGltZSBzZXQgaW4gdGhpcyBvYmplY3QuCisgICAgICogVGhlIHJldHVybmVkIHBoYXNlIGlzIGEgPGNvZGU+ZG91YmxlPC9jb2RlPiBpbiB0aGUgcmFuZ2UKKyAgICAgKiA8Y29kZT4wIDw9IHBoYXNlIDwgMTwvY29kZT4sIGludGVycHJldGVkIGFzIGZvbGxvd3M6CisgICAgICogPHVsPgorICAgICAqIDxsaT4wLjAwOiBOZXcgbW9vbgorICAgICAqIDxsaT4wLjI1OiBGaXJzdCBxdWFydGVyCisgICAgICogPGxpPjAuNTA6IEZ1bGwgbW9vbgorICAgICAqIDxsaT4wLjc1OiBMYXN0IHF1YXJ0ZXIKKyAgICAgKiA8L3VsPgorICAgICAqCisgICAgICogQHNlZSAjZ2V0TW9vbkFnZQorICAgICAqLworICAgIHB1YmxpYyBkb3VibGUgZ2V0TW9vblBoYXNlKCkgeworICAgICAgICAvLyBTZWUgcGFnZSAxNDcgb2YgIlByYWN0aWFsIEFzdHJvbm9teSB3aXRoIHlvdXIgQ2FsY3VsYXRvciIsCisgICAgICAgIC8vIGJ5IFBldGVyIER1ZmZldC1TbWl0aCwgZm9yIGRldGFpbHMgb24gdGhlIGFsZ29yaXRobS4KKyAgICAgICAgcmV0dXJuIDAuNSAqICgxIC0gTWF0aC5jb3MoZ2V0TW9vbkFnZSgpKSk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIE1vb25BZ2UgeworICAgICAgICBkb3VibGUgdmFsdWU7CisgICAgICAgIE1vb25BZ2UoZG91YmxlIHZhbCkgeyB2YWx1ZSA9IHZhbDsgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCByZXByZXNlbnRpbmcgYSBuZXcgbW9vbi4KKyAgICAgKiBGb3IgdXNlIHdpdGgge0BsaW5rICNnZXRNb29uVGltZSBnZXRNb29uVGltZX0KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE1vb25BZ2UgTkVXX01PT04gICAgICA9IG5ldyBNb29uQWdlKDApOworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgcmVwcmVzZW50aW5nIHRoZSBtb29uJ3MgZmlyc3QgcXVhcnRlci4KKyAgICAgKiBGb3IgdXNlIHdpdGgge0BsaW5rICNnZXRNb29uVGltZSBnZXRNb29uVGltZX0KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE1vb25BZ2UgRklSU1RfUVVBUlRFUiA9IG5ldyBNb29uQWdlKFBJLzIpOworICAgIAorICAgIC8qKgorICAgICAqIENvbnN0YW50IHJlcHJlc2VudGluZyBhIGZ1bGwgbW9vbi4KKyAgICAgKiBGb3IgdXNlIHdpdGgge0BsaW5rICNnZXRNb29uVGltZSBnZXRNb29uVGltZX0KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE1vb25BZ2UgRlVMTF9NT09OICAgICA9IG5ldyBNb29uQWdlKFBJKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCByZXByZXNlbnRpbmcgdGhlIG1vb24ncyBsYXN0IHF1YXJ0ZXIuCisgICAgICogRm9yIHVzZSB3aXRoIHtAbGluayAjZ2V0TW9vblRpbWUgZ2V0TW9vblRpbWV9CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBNb29uQWdlIExBU1RfUVVBUlRFUiAgPSBuZXcgTW9vbkFnZSgoUEkqMykvMik7CisgICAgCisgICAgLyoqCisgICAgICogRmluZCB0aGUgbmV4dCBvciBwcmV2aW91cyB0aW1lIGF0IHdoaWNoIHRoZSBNb29uJ3MgZWNsaXB0aWMKKyAgICAgKiBsb25naXR1ZGUgd2lsbCBoYXZlIHRoZSBkZXNpcmVkIHZhbHVlLiAgCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGRlc2lyZWQgICBUaGUgZGVzaXJlZCBsb25naXR1ZGUuCisgICAgICogQHBhcmFtIG5leHQgICAgICA8dHQ+dHJ1ZTwvdHQ+IGlmIHRoZSBuZXh0IG9jY3VycmFuY2Ugb2YgdGhlIHBoYXNlCisgICAgICogICAgICAgICAgICAgICAgICBpcyBkZXNpcmVkLCA8dHQ+ZmFsc2U8L3R0PiBmb3IgdGhlIHByZXZpb3VzIG9jY3VycmFuY2UuIAorICAgICAqLworICAgIHB1YmxpYyBsb25nIGdldE1vb25UaW1lKGRvdWJsZSBkZXNpcmVkLCBib29sZWFuIG5leHQpCisgICAgeworICAgICAgICByZXR1cm4gdGltZU9mQW5nbGUoIG5ldyBBbmdsZUZ1bmMoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIGRvdWJsZSBldmFsKCkgeyByZXR1cm4gZ2V0TW9vbkFnZSgpOyB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzaXJlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTWU5PRElDX01PTlRILAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1JTlVURV9NUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0KTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogRmluZCB0aGUgbmV4dCBvciBwcmV2aW91cyB0aW1lIGF0IHdoaWNoIHRoZSBtb29uIHdpbGwgYmUgaW4gdGhlCisgICAgICogZGVzaXJlZCBwaGFzZS4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gZGVzaXJlZCAgIFRoZSBkZXNpcmVkIHBoYXNlIG9mIHRoZSBtb29uLgorICAgICAqIEBwYXJhbSBuZXh0ICAgICAgPHR0PnRydWU8L3R0PiBpZiB0aGUgbmV4dCBvY2N1cnJhbmNlIG9mIHRoZSBwaGFzZQorICAgICAqICAgICAgICAgICAgICAgICAgaXMgZGVzaXJlZCwgPHR0PmZhbHNlPC90dD4gZm9yIHRoZSBwcmV2aW91cyBvY2N1cnJhbmNlLiAKKyAgICAgKi8KKyAgICBwdWJsaWMgbG9uZyBnZXRNb29uVGltZShNb29uQWdlIGRlc2lyZWQsIGJvb2xlYW4gbmV4dCkgeworICAgICAgICByZXR1cm4gZ2V0TW9vblRpbWUoZGVzaXJlZC52YWx1ZSwgbmV4dCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHRpbWUgKEdNVCkgb2Ygc3VucmlzZSBvciBzdW5zZXQgb24gdGhlIGxvY2FsIGRhdGUgdG8gd2hpY2gKKyAgICAgKiB0aGlzIGNhbGVuZGFyIGlzIGN1cnJlbnRseSBzZXQuCisgICAgICovCisgICAgcHVibGljIGxvbmcgZ2V0TW9vblJpc2VTZXQoYm9vbGVhbiByaXNlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHJpc2VPclNldChuZXcgQ29vcmRGdW5jKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBFcXVhdG9yaWFsIGV2YWwoKSB7IHJldHVybiBnZXRNb29uUG9zaXRpb24oKTsgfQorICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgcmlzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAuNTMzICogREVHX1JBRCwgICAgICAgIC8vIEFuZ3VsYXIgRGlhbWV0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAzNCAvNjAuMCAqIERFR19SQUQsICAgIC8vIFJlZnJhY3Rpb24gY29ycmVjdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgIE1JTlVURV9NUyk7ICAgICAgICAgICAgLy8gRGVzaXJlZCBhY2N1cmFjeQorICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEludGVycG9sYXRpb24gbWV0aG9kcyBmb3IgZmluZGluZyB0aGUgdGltZSBhdCB3aGljaCBhIGdpdmVuIGV2ZW50IG9jY3VycworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIHByaXZhdGUgaW50ZXJmYWNlIEFuZ2xlRnVuYyB7CisgICAgICAgIHB1YmxpYyBkb3VibGUgZXZhbCgpOworICAgIH07CisgICAgCisgICAgcHJpdmF0ZSBsb25nIHRpbWVPZkFuZ2xlKEFuZ2xlRnVuYyBmdW5jLCBkb3VibGUgZGVzaXJlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIHBlcmlvZERheXMsIGxvbmcgZXBzaWxvbiwgYm9vbGVhbiBuZXh0KQorICAgIHsKKyAgICAgICAgLy8gRmluZCB0aGUgdmFsdWUgb2YgdGhlIGZ1bmN0aW9uIGF0IHRoZSBjdXJyZW50IHRpbWUKKyAgICAgICAgZG91YmxlIGxhc3RBbmdsZSA9IGZ1bmMuZXZhbCgpOworICAgICAgICAKKyAgICAgICAgLy8gRmluZCBvdXQgaG93IGZhciB3ZSBhcmUgZnJvbSB0aGUgZGVzaXJlZCBhbmdsZQorICAgICAgICBkb3VibGUgZGVsdGFBbmdsZSA9IG5vcm0yUEkoZGVzaXJlZCAtIGxhc3RBbmdsZSkgOworICAgICAgICAKKyAgICAgICAgLy8gVXNpbmcgdGhlIGF2ZXJhZ2UgcGVyaW9kLCBlc3RpbWF0ZSB0aGUgbmV4dCAob3IgcHJldmlvdXMpIHRpbWUgYXQKKyAgICAgICAgLy8gd2hpY2ggdGhlIGRlc2lyZWQgYW5nbGUgb2NjdXJzLgorICAgICAgICBkb3VibGUgZGVsdGFUID0gIChkZWx0YUFuZ2xlICsgKG5leHQgPyAwIDogLVBJMikpICogKHBlcmlvZERheXMqREFZX01TKSAvIFBJMjsKKyAgICAgICAgCisgICAgICAgIGRvdWJsZSBsYXN0RGVsdGFUID0gZGVsdGFUOyAvLyBMaXUKKyAgICAgICAgbG9uZyBzdGFydFRpbWUgPSB0aW1lOyAvLyBMaXUKKyAgICAgICAgCisgICAgICAgIHNldFRpbWUodGltZSArIChsb25nKWRlbHRhVCk7CisKKyAgICAgICAgLy8gTm93IGl0ZXJhdGUgdW50aWwgd2UgZ2V0IHRoZSBlcnJvciBiZWxvdyBlcHNpbG9uLiAgVGhyb3VnaG91dAorICAgICAgICAvLyB0aGlzIGxvb3Agd2UgdXNlIG5vcm1QSSB0byBnZXQgdmFsdWVzIGluIHRoZSByYW5nZSAtUGkgdG8gUGksCisgICAgICAgIC8vIHNpbmNlIHdlJ3JlIHVzaW5nIHRoZW0gYXMgY29ycmVjdGlvbiBmYWN0b3JzIHJhdGhlciB0aGFuIGFic29sdXRlIGFuZ2xlcy4KKyAgICAgICAgZG8geworICAgICAgICAgICAgLy8gRXZhbHVhdGUgdGhlIGZ1bmN0aW9uIGF0IHRoZSB0aW1lIHdlJ3ZlIGVzdGltYXRlZAorICAgICAgICAgICAgZG91YmxlIGFuZ2xlID0gZnVuYy5ldmFsKCk7CisKKyAgICAgICAgICAgIC8vIEZpbmQgdGhlICMgb2YgbWlsbGlzZWNvbmRzIHBlciByYWRpYW4gYXQgdGhpcyBwb2ludCBvbiB0aGUgY3VydmUKKyAgICAgICAgICAgIGRvdWJsZSBmYWN0b3IgPSBNYXRoLmFicyhkZWx0YVQgLyBub3JtUEkoYW5nbGUtbGFzdEFuZ2xlKSk7CisKKyAgICAgICAgICAgIC8vIENvcnJlY3QgdGhlIHRpbWUgZXN0aW1hdGUgYmFzZWQgb24gaG93IGZhciBvZmYgdGhlIGFuZ2xlIGlzCisgICAgICAgICAgICBkZWx0YVQgPSBub3JtUEkoZGVzaXJlZCAtIGFuZ2xlKSAqIGZhY3RvcjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gSEFDSzoKKyAgICAgICAgICAgIC8vIAorICAgICAgICAgICAgLy8gSWYgYWJzKGRlbHRhVCkgYmVnaW5zIHRvIGRpdmVyZ2Ugd2UgbmVlZCB0byBxdWl0IHRoaXMgbG9vcC4KKyAgICAgICAgICAgIC8vIFRoaXMgb25seSBhcHBlYXJzIHRvIGhhcHBlbiB3aGVuIGF0dGVtcHRpbmcgdG8gbG9jYXRlLCBmb3IKKyAgICAgICAgICAgIC8vIGV4YW1wbGUsIGEgbmV3IG1vb24gb24gdGhlIGRheSBvZiB0aGUgbmV3IG1vb24uICBFLmcuOgorICAgICAgICAgICAgLy8gCisgICAgICAgICAgICAvLyBUaGlzIHJlc3VsdCBpcyBjb3JyZWN0OgorICAgICAgICAgICAgLy8gbmV3TW9vbig3NTA4KE1vbiBKdWwgMjMgMDA6MDA6MDAgQ1NUIDE5OTAsZmFsc2UpKT0KKyAgICAgICAgICAgIC8vICAgU3VuIEp1bCAyMiAxMDo1Nzo0MSBDU1QgMTk5MAorICAgICAgICAgICAgLy8gCisgICAgICAgICAgICAvLyBCdXQgYXR0ZW1wdGluZyB0byBtYWtlIHRoZSBzYW1lIGNhbGwgYSBkYXkgZWFybGllciBjYXVzZXMgZGVsdGFUCisgICAgICAgICAgICAvLyB0byBkaXZlcmdlOgorICAgICAgICAgICAgLy8gQ2FsZW5kYXJBc3Ryb25vbWVyLnRpbWVPZkFuZ2xlKCkgZGl2ZXJnaW5nOiAxLjM0ODUwODcyNzU3NTYyNUU5IC0+CisgICAgICAgICAgICAvLyAgIDEuMzY0OTgyODU0MDIyNDAzMkU5CisgICAgICAgICAgICAvLyBuZXdNb29uKDc1MDcoU3VuIEp1bCAyMiAwMDowMDowMCBDU1QgMTk5MCxmYWxzZSkpPQorICAgICAgICAgICAgLy8gICBTdW4gSnVsIDA4IDEzOjU2OjE1IENTVCAxOTkwCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gQXMgYSB0ZW1wb3Jhcnkgc29sdXRpb24sIHdlIGNhdGNoIHRoaXMgc3BlY2lmaWMgY29uZGl0aW9uIGFuZAorICAgICAgICAgICAgLy8gYWRqdXN0IG91ciBzdGFydCB0aW1lIGJ5IG9uZSBlaWdodGggcGVyaW9kIGRheXMgKGVpdGhlciBmb3J3YXJkCisgICAgICAgICAgICAvLyBvciBiYWNrd2FyZCkgYW5kIHRyeSBhZ2Fpbi4KKyAgICAgICAgICAgIC8vIExpdSAxMS85LzAwCisgICAgICAgICAgICBpZiAoTWF0aC5hYnMoZGVsdGFUKSA+IE1hdGguYWJzKGxhc3REZWx0YVQpKSB7CisgICAgICAgICAgICAgICAgbG9uZyBkZWx0YSA9IChsb25nKSAocGVyaW9kRGF5cyAqIERBWV9NUyAvIDgpOworICAgICAgICAgICAgICAgIHNldFRpbWUoc3RhcnRUaW1lICsgKG5leHQgPyBkZWx0YSA6IC1kZWx0YSkpOworICAgICAgICAgICAgICAgIHJldHVybiB0aW1lT2ZBbmdsZShmdW5jLCBkZXNpcmVkLCBwZXJpb2REYXlzLCBlcHNpbG9uLCBuZXh0KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbGFzdERlbHRhVCA9IGRlbHRhVDsKKyAgICAgICAgICAgIGxhc3RBbmdsZSA9IGFuZ2xlOworCisgICAgICAgICAgICBzZXRUaW1lKHRpbWUgKyAobG9uZylkZWx0YVQpOworICAgICAgICB9CisgICAgICAgIHdoaWxlIChNYXRoLmFicyhkZWx0YVQpID4gZXBzaWxvbik7CisgICAgICAgIAorICAgICAgICByZXR1cm4gdGltZTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBpbnRlcmZhY2UgQ29vcmRGdW5jIHsKKyAgICAgICAgcHVibGljIEVxdWF0b3JpYWwgZXZhbCgpOworICAgIH07CisgICAgCisgICAgcHJpdmF0ZSBsb25nIHJpc2VPclNldChDb29yZEZ1bmMgZnVuYywgYm9vbGVhbiByaXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGRpYW1ldGVyLCBkb3VibGUgcmVmcmFjdGlvbiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGVwc2lsb24pCisgICAgeyAgICAgICAgCisgICAgICAgIEVxdWF0b3JpYWwgIHBvcyA9IG51bGw7CisgICAgICAgIGRvdWJsZSAgICAgIHRhbkwgICA9IE1hdGgudGFuKGZMYXRpdHVkZSk7CisgICAgICAgIGxvbmcgICAgICAgIGRlbHRhVCA9IExvbmcuTUFYX1ZBTFVFOworICAgICAgICBpbnQgICAgICAgICBjb3VudCA9IDA7CisgICAgICAgIAorICAgICAgICAvLworICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIG9iamVjdCdzIHBvc2l0aW9uIGF0IHRoZSBjdXJyZW50IHRpbWUsIHRoZW4gdXNlIHRoYXQKKyAgICAgICAgLy8gcG9zaXRpb24gdG8gY2FsY3VsYXRlIHRoZSB0aW1lIG9mIHJpc2luZyBvciBzZXR0aW5nLiAgVGhlIHBvc2l0aW9uCisgICAgICAgIC8vIHdpbGwgYmUgZGlmZmVyZW50IGF0IHRoYXQgdGltZSwgc28gaXRlcmF0ZSB1bnRpbCB0aGUgZXJyb3IgaXMgYWxsb3dhYmxlLgorICAgICAgICAvLworICAgICAgICBkbyB7CisgICAgICAgICAgICAvLyBTZWUgIlByYWN0aWNhbCBBc3Ryb25vbXkgV2l0aCBZb3VyIENhbGN1bGF0b3IsIHNlY3Rpb24gMzMuCisgICAgICAgICAgICBwb3MgPSBmdW5jLmV2YWwoKTsKKyAgICAgICAgICAgIGRvdWJsZSBhbmdsZSA9IE1hdGguYWNvcygtdGFuTCAqIE1hdGgudGFuKHBvcy5kZWNsaW5hdGlvbikpOworICAgICAgICAgICAgZG91YmxlIGxzdCA9ICgocmlzZSA/IFBJMi1hbmdsZSA6IGFuZ2xlKSArIHBvcy5hc2NlbnNpb24gKSAqIDI0IC8gUEkyOworICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gQ29udmVydCBmcm9tIExTVCB0byBVbml2ZXJzYWwgVGltZS4KKyAgICAgICAgICAgIGxvbmcgbmV3VGltZSA9IGxzdFRvVVQoIGxzdCApOworICAgICAgICAgICAgCisgICAgICAgICAgICBkZWx0YVQgPSBuZXdUaW1lIC0gdGltZTsKKyAgICAgICAgICAgIHNldFRpbWUobmV3VGltZSk7CisgICAgICAgIH0KKyAgICAgICAgd2hpbGUgKCsrIGNvdW50IDwgNSAmJiBNYXRoLmFicyhkZWx0YVQpID4gZXBzaWxvbik7CisgICAgICAgIAorICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIGNvcnJlY3Rpb24gZHVlIHRvIHJlZnJhY3Rpb24gYW5kIHRoZSBvYmplY3QncyBhbmd1bGFyIGRpYW1ldGVyCisgICAgICAgIGRvdWJsZSBjb3NEICA9IE1hdGguY29zKHBvcy5kZWNsaW5hdGlvbik7CisgICAgICAgIGRvdWJsZSBwc2kgICA9IE1hdGguYWNvcyhNYXRoLnNpbihmTGF0aXR1ZGUpIC8gY29zRCk7CisgICAgICAgIGRvdWJsZSB4ICAgICA9IGRpYW1ldGVyIC8gMiArIHJlZnJhY3Rpb247CisgICAgICAgIGRvdWJsZSB5ICAgICA9IE1hdGguYXNpbihNYXRoLnNpbih4KSAvIE1hdGguc2luKHBzaSkpOworICAgICAgICBsb25nICBkZWx0YSAgPSAobG9uZykoKDI0MCAqIHkgKiBSQURfREVHIC8gY29zRCkqU0VDT05EX01TKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiB0aW1lICsgKHJpc2UgPyAtZGVsdGEgOiBkZWx0YSk7CisgICAgfQorICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIE90aGVyIHV0aWxpdHkgbWV0aG9kcworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgZG91YmxlIG5vcm1hbGl6ZShkb3VibGUgdmFsdWUsIGRvdWJsZSByYW5nZSkgeworICAgICAgICByZXR1cm4gdmFsdWUgLSByYW5nZSAqIE1hdGguZmxvb3IodmFsdWUgLyByYW5nZSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIE5vcm1hbGl6ZSBhbiBhbmdsZSBzbyB0aGF0IGl0J3MgaW4gdGhlIHJhbmdlIDAgLSAycGkuCisgICAgICogRm9yIHBvc2l0aXZlIGFuZ2xlcyB0aGlzIGlzIGp1c3QgKGFuZ2xlICUgMnBpKSwgYnV0IHRoZSBKYXZhCisgICAgICogbW9kIG9wZXJhdG9yIGRvZXNuJ3Qgd29yayB0aGF0IHdheSBmb3IgbmVnYXRpdmUgbnVtYmVycy4uLi4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBkb3VibGUgbm9ybTJQSShkb3VibGUgYW5nbGUpIHsKKyAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZShhbmdsZSwgUEkyKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogTm9ybWFsaXplIGFuIGFuZ2xlIGludG8gdGhlIHJhbmdlIC1QSSAtIFBJCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgZG91YmxlIG5vcm1QSShkb3VibGUgYW5nbGUpIHsKKyAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZShhbmdsZSArIFBJLCBQSTIpIC0gUEk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEZpbmQgdGhlICJ0cnVlIGFub21hbHkiIChsb25naXR1ZGUpIG9mIGFuIG9iamVjdCBmcm9tCisgICAgICogaXRzIG1lYW4gYW5vbWFseSBhbmQgdGhlIGVjY2VudHJpY2l0eSBvZiBpdHMgb3JiaXQuICBUaGlzIHVzZXMKKyAgICAgKiBhbiBpdGVyYXRpdmUgc29sdXRpb24gdG8gS2VwbGVyJ3MgZXF1YXRpb24uCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWVhbkFub21hbHkgICBUaGUgb2JqZWN0J3MgbG9uZ2l0dWRlIGNhbGN1bGF0ZWQgYXMgaWYgaXQgd2VyZSBpbgorICAgICAqICAgICAgICAgICAgICAgICAgICAgIGEgcmVndWxhciwgY2lyY3VsYXIgb3JiaXQsIG1lYXN1cmVkIGluIHJhZGlhbnMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICBmcm9tIHRoZSBwb2ludCBvZiBwZXJpZ2VlLiAgCisgICAgICoKKyAgICAgKiBAcGFyYW0gZWNjZW50cmljaXR5ICBUaGUgZWNjZW50cmljaXR5IG9mIHRoZSBvcmJpdAorICAgICAqCisgICAgICogQHJldHVybiBUaGUgdHJ1ZSBhbm9tYWx5IChsb25naXR1ZGUpIG1lYXN1cmVkIGluIHJhZGlhbnMKKyAgICAgKi8KKyAgICBwcml2YXRlIGRvdWJsZSB0cnVlQW5vbWFseShkb3VibGUgbWVhbkFub21hbHksIGRvdWJsZSBlY2NlbnRyaWNpdHkpCisgICAgeworICAgICAgICAvLyBGaXJzdCwgc29sdmUgS2VwbGVyJ3MgZXF1YXRpb24gaXRlcmF0aXZlbHkKKyAgICAgICAgZG91YmxlIGRlbHRhOworICAgICAgICBkb3VibGUgRSA9IG1lYW5Bbm9tYWx5OworICAgICAgICBkbyB7CisgICAgICAgICAgICBkZWx0YSA9IEUgLSBlY2NlbnRyaWNpdHkgKiBNYXRoLnNpbihFKSAtIG1lYW5Bbm9tYWx5OworICAgICAgICAgICAgRSA9IEUgLSBkZWx0YSAvICgxIC0gZWNjZW50cmljaXR5ICogTWF0aC5jb3MoRSkpOworICAgICAgICB9IAorICAgICAgICB3aGlsZSAoTWF0aC5hYnMoZGVsdGEpID4gYWNjdXJhY3kpOworCisgICAgICAgIHJldHVybiAyLjAgKiBNYXRoLmF0YW4oIE1hdGgudGFuKEUvMikgKiBNYXRoLnNxcnQoICgxK2VjY2VudHJpY2l0eSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKDEtZWNjZW50cmljaXR5KSApICk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIGRvdWJsZSBhY2N1cmFjeSA9IDAuMDEgKiBQSS8xODA7ICAvLyAwLjAxIGRlZ3JlZXMKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG9ibGlxdWl0eSBvZiB0aGUgZWNsaXB0aWMgKHRoZSBhbmdsZSBiZXR3ZWVuIHRoZSBlY2xpcHRpYworICAgICAqIGFuZCB0aGUgZWFydGgncyBlcXVhdG9yKSBhdCB0aGUgY3VycmVudCB0aW1lLiAgVGhpcyB2YXJpZXMgZHVlIHRvCisgICAgICogdGhlIHByZWNlc3Npb24gb2YgdGhlIGVhcnRoJ3MgYXhpcy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gIHRoZSBvYmxpcXVpdHkgb2YgdGhlIGVjbGlwdGljIHJlbGF0aXZlIHRvIHRoZSBlcXVhdG9yLAorICAgICAqICAgICAgICAgIG1lYXN1cmVkIGluIHJhZGlhbnMuCisgICAgICovCisgICAgcHJpdmF0ZSBkb3VibGUgZWNsaXB0aWNPYmxpcXVpdHkoKSB7CisgICAgICAgIGlmIChlY2xpcE9ibGlxdWl0eSA9PSBJTlZBTElEKSB7CisgICAgICAgICAgICBmaW5hbCBkb3VibGUgZXBvY2ggPSAyNDUxNTQ1LjA7ICAgICAvLyAyMDAwIEFELCBKYW51YXJ5IDEuNQorCisgICAgICAgICAgICBkb3VibGUgVCA9IChnZXRKdWxpYW5EYXkoKSAtIGVwb2NoKSAvIDM2NTI1OworICAgICAgICAgICAgCisgICAgICAgICAgICBlY2xpcE9ibGlxdWl0eSA9IDIzLjQzOTI5MgorICAgICAgICAgICAgICAgICAgICAgICAgICAgLSA0Ni44MTUvMzYwMCAqIFQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gMC4wMDA2ICogVCpUCisgICAgICAgICAgICAgICAgICAgICAgICAgICArIDAuMDAxODEgKiBUKlQqVDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgZWNsaXBPYmxpcXVpdHkgKj0gREVHX1JBRDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZWNsaXBPYmxpcXVpdHk7CisgICAgfQorICAgIAorICAgICAKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBQcml2YXRlIGRhdGEKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDdXJyZW50IHRpbWUgaW4gbWlsbGlzZWNvbmRzIHNpbmNlIDEvMS8xOTcwIEFECisgICAgICogQHNlZSBqYXZhLnV0aWwuRGF0ZSNnZXRUaW1lCisgICAgICovCisgICAgcHJpdmF0ZSBsb25nIHRpbWU7CisgICAgCisgICAgLyogVGhlc2UgYXJlbid0IHVzZWQgeWV0LCBidXQgdGhleSdsbCBiZSBuZWVkZWQgZm9yIHN1bnNldCBjYWxjdWxhdGlvbnMKKyAgICAgKiBhbmQgZXF1YXRvcmlhbCB0byBob3Jpem9uIGNvb3JkaW5hdGUgY29udmVyc2lvbnMKKyAgICAgKi8KKyAgICBwcml2YXRlIGRvdWJsZSBmTG9uZ2l0dWRlID0gMC4wOworICAgIHByaXZhdGUgZG91YmxlIGZMYXRpdHVkZSAgPSAwLjA7CisgICAgcHJpdmF0ZSBsb25nICAgZkdtdE9mZnNldCA9IDA7CisgICAgCisgICAgLy8KKyAgICAvLyBUaGUgZm9sbG93aW5nIGZpZWxkcyBhcmUgdXNlZCB0byBjYWNoZSBjYWxjdWxhdGVkIHJlc3VsdHMgZm9yIGltcHJvdmVkCisgICAgLy8gcGVyZm9ybWFuY2UuICBUaGVzZSB2YWx1ZXMgYWxsIGRlcGVuZCBvbiB0aGUgY3VycmVudCB0aW1lIHNldHRpbmcKKyAgICAvLyBvZiB0aGlzIG9iamVjdCwgc28gdGhlIGNsZWFyQ2FjaGUgbWV0aG9kIGlzIHByb3ZpZGVkLgorICAgIC8vCisgICAgc3RhdGljIGZpbmFsIHByaXZhdGUgZG91YmxlIElOVkFMSUQgPSBEb3VibGUuTUlOX1ZBTFVFOworICAgIAorICAgIHByaXZhdGUgdHJhbnNpZW50IGRvdWJsZSAgICBqdWxpYW5EYXkgICAgICAgPSBJTlZBTElEOworICAgIHByaXZhdGUgdHJhbnNpZW50IGRvdWJsZSAgICBqdWxpYW5DZW50dXJ5ICAgPSBJTlZBTElEOworICAgIHByaXZhdGUgdHJhbnNpZW50IGRvdWJsZSAgICBzdW5Mb25naXR1ZGUgICAgPSBJTlZBTElEOworICAgIHByaXZhdGUgdHJhbnNpZW50IGRvdWJsZSAgICBtZWFuQW5vbWFseVN1biAgPSBJTlZBTElEOworICAgIHByaXZhdGUgdHJhbnNpZW50IGRvdWJsZSAgICBtb29uTG9uZ2l0dWRlICAgPSBJTlZBTElEOworICAgIHByaXZhdGUgdHJhbnNpZW50IGRvdWJsZSAgICBtb29uRWNsaXBMb25nICAgPSBJTlZBTElEOworICAgIHByaXZhdGUgdHJhbnNpZW50IGRvdWJsZSAgICBtZWFuQW5vbWFseU1vb24gPSBJTlZBTElEOworICAgIHByaXZhdGUgdHJhbnNpZW50IGRvdWJsZSAgICBlY2xpcE9ibGlxdWl0eSAgPSBJTlZBTElEOworICAgIHByaXZhdGUgdHJhbnNpZW50IGRvdWJsZSAgICBzaWRlcmVhbFQwICAgICAgPSBJTlZBTElEOworICAgIHByaXZhdGUgdHJhbnNpZW50IGRvdWJsZSAgICBzaWRlcmVhbFRpbWUgICAgPSBJTlZBTElEOworICAgIAorICAgIHByaXZhdGUgdHJhbnNpZW50IEVxdWF0b3JpYWwgIG1vb25Qb3NpdGlvbiA9IG51bGw7CisKKyAgICBwcml2YXRlIHZvaWQgY2xlYXJDYWNoZSgpIHsKKyAgICAgICAganVsaWFuRGF5ICAgICAgID0gSU5WQUxJRDsKKyAgICAgICAganVsaWFuQ2VudHVyeSAgID0gSU5WQUxJRDsKKyAgICAgICAgc3VuTG9uZ2l0dWRlICAgID0gSU5WQUxJRDsKKyAgICAgICAgbWVhbkFub21hbHlTdW4gID0gSU5WQUxJRDsKKyAgICAgICAgbW9vbkxvbmdpdHVkZSAgID0gSU5WQUxJRDsKKyAgICAgICAgbW9vbkVjbGlwTG9uZyAgID0gSU5WQUxJRDsKKyAgICAgICAgbWVhbkFub21hbHlNb29uID0gSU5WQUxJRDsKKyAgICAgICAgZWNsaXBPYmxpcXVpdHkgID0gSU5WQUxJRDsKKyAgICAgICAgc2lkZXJlYWxUaW1lICAgID0gSU5WQUxJRDsKKyAgICAgICAgc2lkZXJlYWxUMCAgICAgID0gSU5WQUxJRDsKKyAgICAgICAgbW9vblBvc2l0aW9uICAgID0gbnVsbDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBvdXQoU3RyaW5nIHMpIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHMpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgZGVnKGRvdWJsZSByYWQpIHsKKyAgICAgICAgcmV0dXJuIERvdWJsZS50b1N0cmluZyhyYWQgKiBSQURfREVHKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGhvdXJzKGxvbmcgbXMpIHsKKyAgICAgICAgcmV0dXJuIERvdWJsZS50b1N0cmluZygoZG91YmxlKW1zIC8gSE9VUl9NUykgKyAiIGhvdXJzIjsKKyAgICB9CisgICAgcHVibGljIFN0cmluZyBsb2NhbChsb25nIGxvY2FsTWlsbGlzKSB7CisgICAgICAgIHJldHVybiBuZXcgRGF0ZShsb2NhbE1pbGxpcyAtIFRpbWVab25lLmdldERlZmF1bHQoKS5nZXRSYXdPZmZzZXQoKSkudG9TdHJpbmcoKTsKKyAgICB9CisgICAgCisgICAgCisgICAgLyoqCisgICAgICogUmVwcmVzZW50cyB0aGUgcG9zaXRpb24gb2YgYW4gb2JqZWN0IGluIHRoZSBza3kgcmVsYXRpdmUgdG8gdGhlIGVjbGlwdGljLAorICAgICAqIHRoZSBwbGFuZSBvZiB0aGUgZWFydGgncyBvcmJpdCBhcm91bmQgdGhlIFN1bi4gCisgICAgICogVGhpcyBpcyBhIHNwaGVyaWNhbCBjb29yZGluYXRlIHN5c3RlbSBpbiB3aGljaCB0aGUgbGF0aXR1ZGUKKyAgICAgKiBzcGVjaWZpZXMgdGhlIHBvc2l0aW9uIG5vcnRoIG9yIHNvdXRoIG9mIHRoZSBwbGFuZSBvZiB0aGUgZWNsaXB0aWMuCisgICAgICogVGhlIGxvbmdpdHVkZSBzcGVjaWZpZXMgdGhlIHBvc2l0aW9uIGFsb25nIHRoZSBlY2xpcHRpYyBwbGFuZQorICAgICAqIHJlbGF0aXZlIHRvIHRoZSAiRmlyc3QgUG9pbnQgb2YgQXJpZXMiLCB3aGljaCBpcyB0aGUgU3VuJ3MgcG9zaXRpb24gaW4gdGhlIHNreQorICAgICAqIGF0IHRoZSBWZXJuYWwgRXF1aW5veC4KKyAgICAgKiA8cD4KKyAgICAgKiBOb3RlIHRoYXQgRWNsaXB0aWMgb2JqZWN0cyBhcmUgaW1tdXRhYmxlIGFuZCBjYW5ub3QgYmUgbW9kaWZpZWQKKyAgICAgKiBvbmNlIHRoZXkgYXJlIGNvbnN0cnVjdGVkLiAgVGhpcyBhbGxvd3MgdGhlbSB0byBiZSBwYXNzZWQgYW5kIHJldHVybmVkIGJ5CisgICAgICogdmFsdWUgd2l0aG91dCB3b3JyeWluZyBhYm91dCB3aGV0aGVyIG90aGVyIGNvZGUgd2lsbCBtb2RpZnkgdGhlbS4KKyAgICAgKgorICAgICAqIEBzZWUgQ2FsZW5kYXJBc3Ryb25vbWVyLkVxdWF0b3JpYWwKKyAgICAgKiBAc2VlIENhbGVuZGFyQXN0cm9ub21lci5Ib3Jpem9uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBFY2xpcHRpYyB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBDb25zdHJ1Y3RzIGFuIEVjbGlwdGljIGNvb3JkaW5hdGUgb2JqZWN0LgorICAgICAgICAgKiA8cD4KKyAgICAgICAgICogQHBhcmFtIGxhdCBUaGUgZWNsaXB0aWMgbGF0aXR1ZGUsIG1lYXN1cmVkIGluIHJhZGlhbnMuCisgICAgICAgICAqIEBwYXJhbSBsb24gVGhlIGVjbGlwdGljIGxvbmdpdHVkZSwgbWVhc3VyZWQgaW4gcmFkaWFucy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBFY2xpcHRpYyhkb3VibGUgbGF0LCBkb3VibGUgbG9uKSB7CisgICAgICAgICAgICBsYXRpdHVkZSA9IGxhdDsKKyAgICAgICAgICAgIGxvbmdpdHVkZSA9IGxvbjsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBvYmplY3QKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgICAgICByZXR1cm4gRG91YmxlLnRvU3RyaW5nKGxvbmdpdHVkZSpSQURfREVHKSArICIsIiArIChsYXRpdHVkZSpSQURfREVHKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBlY2xpcHRpYyBsYXRpdHVkZSwgaW4gcmFkaWFucy4gIFRoaXMgc3BlY2lmaWVzIGFuIG9iamVjdCdzCisgICAgICAgICAqIHBvc2l0aW9uIG5vcnRoIG9yIHNvdXRoIG9mIHRoZSBwbGFuZSBvZiB0aGUgZWNsaXB0aWMsCisgICAgICAgICAqIHdpdGggcG9zaXRpdmUgYW5nbGVzIHJlcHJlc2VudGluZyBub3J0aC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBmaW5hbCBkb3VibGUgbGF0aXR1ZGU7CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGVjbGlwdGljIGxvbmdpdHVkZSwgaW4gcmFkaWFucy4KKyAgICAgICAgICogVGhpcyBzcGVjaWZpZXMgYW4gb2JqZWN0J3MgcG9zaXRpb24gYWxvbmcgdGhlIGVjbGlwdGljIHBsYW5lCisgICAgICAgICAqIHJlbGF0aXZlIHRvIHRoZSAiRmlyc3QgUG9pbnQgb2YgQXJpZXMiLCB3aGljaCBpcyB0aGUgU3VuJ3MgcG9zaXRpb24KKyAgICAgICAgICogaW4gdGhlIHNreSBhdCB0aGUgVmVybmFsIEVxdWlub3gsCisgICAgICAgICAqIHdpdGggcG9zaXRpdmUgYW5nbGVzIHJlcHJlc2VudGluZyBlYXN0LgorICAgICAgICAgKiA8cD4KKyAgICAgICAgICogQSBiaXQgb2YgdHJpdmlhOiB0aGUgZmlyc3QgcG9pbnQgb2YgQXJpZXMgaXMgY3VycmVudGx5IGluIHRoZQorICAgICAgICAgKiBjb25zdGVsbGF0aW9uIFBpc2NlcywgZHVlIHRvIHRoZSBwcmVjZXNzaW9uIG9mIHRoZSBlYXJ0aCdzIGF4aXMuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgZmluYWwgZG91YmxlIGxvbmdpdHVkZTsKKyAgICB9OworCisgICAgLyoqCisgICAgICogUmVwcmVzZW50cyB0aGUgcG9zaXRpb24gb2YgYW4gCisgICAgICogb2JqZWN0IGluIHRoZSBza3kgcmVsYXRpdmUgdG8gdGhlIHBsYW5lIG9mIHRoZSBlYXJ0aCdzIGVxdWF0b3IuIAorICAgICAqIFRoZSA8aT5SaWdodCBBc2NlbnNpb248L2k+IHNwZWNpZmllcyB0aGUgcG9zaXRpb24gZWFzdCBvciB3ZXN0CisgICAgICogYWxvbmcgdGhlIGVxdWF0b3IsIHJlbGF0aXZlIHRvIHRoZSBzdW4ncyBwb3NpdGlvbiBhdCB0aGUgdmVybmFsCisgICAgICogZXF1aW5veC4gIFRoZSA8aT5EZWNsaW5hdGlvbjwvaT4gaXMgdGhlIHBvc2l0aW9uIG5vcnRoIG9yIHNvdXRoCisgICAgICogb2YgdGhlIGVxdWF0b3JpYWwgcGxhbmUuCisgICAgICogPHA+CisgICAgICogTm90ZSB0aGF0IEVxdWF0b3JpYWwgb2JqZWN0cyBhcmUgaW1tdXRhYmxlIGFuZCBjYW5ub3QgYmUgbW9kaWZpZWQKKyAgICAgKiBvbmNlIHRoZXkgYXJlIGNvbnN0cnVjdGVkLiAgVGhpcyBhbGxvd3MgdGhlbSB0byBiZSBwYXNzZWQgYW5kIHJldHVybmVkIGJ5CisgICAgICogdmFsdWUgd2l0aG91dCB3b3JyeWluZyBhYm91dCB3aGV0aGVyIG90aGVyIGNvZGUgd2lsbCBtb2RpZnkgdGhlbS4KKyAgICAgKgorICAgICAqIEBzZWUgQ2FsZW5kYXJBc3Ryb25vbWVyLkVjbGlwdGljCisgICAgICogQHNlZSBDYWxlbmRhckFzdHJvbm9tZXIuSG9yaXpvbgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgRXF1YXRvcmlhbCB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBDb25zdHJ1Y3RzIGFuIEVxdWF0b3JpYWwgY29vcmRpbmF0ZSBvYmplY3QuCisgICAgICAgICAqIDxwPgorICAgICAgICAgKiBAcGFyYW0gYXNjIFRoZSByaWdodCBhc2NlbnNpb24sIG1lYXN1cmVkIGluIHJhZGlhbnMuCisgICAgICAgICAqIEBwYXJhbSBkZWMgVGhlIGRlY2xpbmF0aW9uLCBtZWFzdXJlZCBpbiByYWRpYW5zLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIEVxdWF0b3JpYWwoZG91YmxlIGFzYywgZG91YmxlIGRlYykgeworICAgICAgICAgICAgYXNjZW5zaW9uID0gYXNjOworICAgICAgICAgICAgZGVjbGluYXRpb24gPSBkZWM7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0LCB3aXRoIHRoZQorICAgICAgICAgKiBhbmdsZXMgbWVhc3VyZWQgaW4gZGVncmVlcy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgICAgICByZXR1cm4gRG91YmxlLnRvU3RyaW5nKGFzY2Vuc2lvbipSQURfREVHKSArICIsIiArIChkZWNsaW5hdGlvbipSQURfREVHKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybiBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdCB3aXRoIHRoZSByaWdodCBhc2NlbnNpb24KKyAgICAgICAgICogbWVhc3VyZWQgaW4gaG91cnMsIG1pbnV0ZXMsIGFuZCBzZWNvbmRzLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyB0b0htc1N0cmluZygpIHsKKyAgICAgICAgICAgIHJldHVybiByYWRUb0htcyhhc2NlbnNpb24pICsgIiwiICsgcmFkVG9EbXMoZGVjbGluYXRpb24pOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogVGhlIHJpZ2h0IGFzY2Vuc2lvbiwgaW4gcmFkaWFucy4gCisgICAgICAgICAqIFRoaXMgaXMgdGhlIHBvc2l0aW9uIGVhc3Qgb3Igd2VzdCBhbG9uZyB0aGUgZXF1YXRvcgorICAgICAgICAgKiByZWxhdGl2ZSB0byB0aGUgc3VuJ3MgcG9zaXRpb24gYXQgdGhlIHZlcm5hbCBlcXVpbm94LAorICAgICAgICAgKiB3aXRoIHBvc2l0aXZlIGFuZ2xlcyByZXByZXNlbnRpbmcgRWFzdC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBmaW5hbCBkb3VibGUgYXNjZW5zaW9uOworICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBkZWNsaW5hdGlvbiwgaW4gcmFkaWFucy4KKyAgICAgICAgICogVGhpcyBpcyB0aGUgcG9zaXRpb24gbm9ydGggb3Igc291dGggb2YgdGhlIGVxdWF0b3JpYWwgcGxhbmUsCisgICAgICAgICAqIHdpdGggcG9zaXRpdmUgYW5nbGVzIHJlcHJlc2VudGluZyBub3J0aC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBmaW5hbCBkb3VibGUgZGVjbGluYXRpb247CisgICAgfTsKKworICAgIC8qKgorICAgICAqIFJlcHJlc2VudHMgdGhlIHBvc2l0aW9uIG9mIGFuICBvYmplY3QgaW4gdGhlIHNreSByZWxhdGl2ZSB0byAKKyAgICAgKiB0aGUgbG9jYWwgaG9yaXpvbi4KKyAgICAgKiBUaGUgPGk+QWx0aXR1ZGU8L2k+IHJlcHJlc2VudHMgdGhlIG9iamVjdCdzIGVsZXZhdGlvbiBhYm92ZSB0aGUgaG9yaXpvbiwKKyAgICAgKiB3aXRoIG9iamVjdHMgYmVsb3cgdGhlIGhvcml6b24gaGF2aW5nIGEgbmVnYXRpdmUgYWx0aXR1ZGUuCisgICAgICogVGhlIDxpPkF6aW11dGg8L2k+IGlzIHRoZSBnZW9ncmFwaGljIGRpcmVjdGlvbiBvZiB0aGUgb2JqZWN0IGZyb20gdGhlCisgICAgICogb2JzZXJ2ZXIncyBwb3NpdGlvbiwgd2l0aCAwIHJlcHJlc2VudGluZyBub3J0aC4gIFRoZSBhemltdXRoIGluY3JlYXNlcworICAgICAqIGNsb2Nrd2lzZSBmcm9tIG5vcnRoLgorICAgICAqIDxwPgorICAgICAqIE5vdGUgdGhhdCBIb3Jpem9uIG9iamVjdHMgYXJlIGltbXV0YWJsZSBhbmQgY2Fubm90IGJlIG1vZGlmaWVkCisgICAgICogb25jZSB0aGV5IGFyZSBjb25zdHJ1Y3RlZC4gIFRoaXMgYWxsb3dzIHRoZW0gdG8gYmUgcGFzc2VkIGFuZCByZXR1cm5lZCBieQorICAgICAqIHZhbHVlIHdpdGhvdXQgd29ycnlpbmcgYWJvdXQgd2hldGhlciBvdGhlciBjb2RlIHdpbGwgbW9kaWZ5IHRoZW0uCisgICAgICoKKyAgICAgKiBAc2VlIENhbGVuZGFyQXN0cm9ub21lci5FY2xpcHRpYworICAgICAqIEBzZWUgQ2FsZW5kYXJBc3Ryb25vbWVyLkVxdWF0b3JpYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIEhvcml6b24geworICAgICAgICAvKioKKyAgICAgICAgICogQ29uc3RydWN0cyBhIEhvcml6b24gY29vcmRpbmF0ZSBvYmplY3QuCisgICAgICAgICAqIDxwPgorICAgICAgICAgKiBAcGFyYW0gYWx0ICBUaGUgYWx0aXR1ZGUsIG1lYXN1cmVkIGluIHJhZGlhbnMgYWJvdmUgdGhlIGhvcml6b24uCisgICAgICAgICAqIEBwYXJhbSBhemltIFRoZSBhemltdXRoLCBtZWFzdXJlZCBpbiByYWRpYW5zIGNsb2Nrd2lzZSBmcm9tIG5vcnRoLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIEhvcml6b24oZG91YmxlIGFsdCwgZG91YmxlIGF6aW0pIHsKKyAgICAgICAgICAgIGFsdGl0dWRlID0gYWx0OworICAgICAgICAgICAgYXppbXV0aCA9IGF6aW07CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0LCB3aXRoIHRoZQorICAgICAgICAgKiBhbmdsZXMgbWVhc3VyZWQgaW4gZGVncmVlcy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgICAgICByZXR1cm4gRG91YmxlLnRvU3RyaW5nKGFsdGl0dWRlKlJBRF9ERUcpICsgIiwiICsgKGF6aW11dGgqUkFEX0RFRyk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKiBUaGUgb2JqZWN0J3MgYWx0aXR1ZGUgYWJvdmUgdGhlIGhvcml6b24sIGluIHJhZGlhbnMuICovCisgICAgICAgIHB1YmxpYyBmaW5hbCBkb3VibGUgYWx0aXR1ZGU7CisgICAgICAgIAorICAgICAgICAvKiogVGhlIG9iamVjdCdzIGRpcmVjdGlvbiwgaW4gcmFkaWFucyBjbG9ja3dpc2UgZnJvbSBub3J0aC4gKi8KKyAgICAgICAgcHVibGljIGZpbmFsIGRvdWJsZSBhemltdXRoOworICAgIH07CisKKyAgICBzdGF0aWMgcHJpdmF0ZSBTdHJpbmcgcmFkVG9IbXMoZG91YmxlIGFuZ2xlKSB7CisgICAgICAgIGludCBocnMgPSAoaW50KSAoYW5nbGUqUkFEX0hPVVIpOworICAgICAgICBpbnQgbWluID0gKGludCkoKGFuZ2xlKlJBRF9IT1VSIC0gaHJzKSAqIDYwKTsKKyAgICAgICAgaW50IHNlYyA9IChpbnQpKChhbmdsZSpSQURfSE9VUiAtIGhycyAtIG1pbi82MC4wKSAqIDM2MDApOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIEludGVnZXIudG9TdHJpbmcoaHJzKSArICJoIiArIG1pbiArICJtIiArIHNlYyArICJzIjsKKyAgICB9CisgICAgCisgICAgc3RhdGljIHByaXZhdGUgU3RyaW5nIHJhZFRvRG1zKGRvdWJsZSBhbmdsZSkgeworICAgICAgICBpbnQgZGVnID0gKGludCkgKGFuZ2xlKlJBRF9ERUcpOworICAgICAgICBpbnQgbWluID0gKGludCkoKGFuZ2xlKlJBRF9ERUcgLSBkZWcpICogNjApOworICAgICAgICBpbnQgc2VjID0gKGludCkoKGFuZ2xlKlJBRF9ERUcgLSBkZWcgLSBtaW4vNjAuMCkgKiAzNjAwKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBJbnRlZ2VyLnRvU3RyaW5nKGRlZykgKyAiXHUwMGIwIiArIG1pbiArICInIiArIHNlYyArICJcIiI7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ2FsZW5kYXJDYWNoZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ2FsZW5kYXJDYWNoZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE0MjkzMDUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9DYWxlbmRhckNhY2hlLmphdmEKQEAgLTAsMCArMSwxMTggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS91dGlsL0F0dGljL0NhbGVuZGFyQ2FjaGUuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNjoyNiAkIAorICogJFJldmlzaW9uOiAxLjQgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKK3B1YmxpYyBjbGFzcyBDYWxlbmRhckNhY2hlCit7CisgICAgcHVibGljIENhbGVuZGFyQ2FjaGUoKSB7CisgICAgICAgIG1ha2VBcnJheXMoYXJyYXlTaXplKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIG1ha2VBcnJheXMoaW50IG5ld1NpemUpIHsKKyAgICAgICAga2V5cyAgICA9IG5ldyBsb25nW25ld1NpemVdOworICAgICAgICB2YWx1ZXMgID0gbmV3IGxvbmdbbmV3U2l6ZV07CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG5ld1NpemU7IGkrKykgeworICAgICAgICAgICAgdmFsdWVzW2ldID0gRU1QVFk7CisgICAgICAgIH0KKyAgICAgICAgYXJyYXlTaXplID0gbmV3U2l6ZTsKKyAgICAgICAgdGhyZXNob2xkID0gKGludCkoYXJyYXlTaXplICogMC43NSk7CisgICAgICAgIHNpemUgPSAwOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIGxvbmcgZ2V0KGxvbmcga2V5KSB7CisgICAgICAgIHJldHVybiB2YWx1ZXNbZmluZEluZGV4KGtleSldOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIHZvaWQgcHV0KGxvbmcga2V5LCBsb25nIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHNpemUgPj0gdGhyZXNob2xkKSB7CisgICAgICAgICAgICByZWhhc2goKTsKKyAgICAgICAgfQorICAgICAgICBpbnQgaW5kZXggPSBmaW5kSW5kZXgoa2V5KTsKKyAgICAgICAgCisgICAgICAgIGtleXNbaW5kZXhdID0ga2V5OworICAgICAgICB2YWx1ZXNbaW5kZXhdID0gdmFsdWU7CisgICAgICAgIHNpemUrKzsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgZmluZEluZGV4KGxvbmcga2V5KSB7CisgICAgICAgIGludCBpbmRleCA9IGhhc2goa2V5KTsKKyAgICAgICAgaW50IGRlbHRhID0gMDsKKyAgICAgICAgCisgICAgICAgIHdoaWxlICh2YWx1ZXNbaW5kZXhdICE9IEVNUFRZICYmIGtleXNbaW5kZXhdICE9IGtleSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGRlbHRhID09IDApIHsKKyAgICAgICAgICAgICAgICBkZWx0YSA9IGhhc2gyKGtleSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbmRleCA9IChpbmRleCArIGRlbHRhKSAlIGFycmF5U2l6ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaW5kZXg7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCByZWhhc2goKQorICAgIHsKKyAgICAgICAgaW50IG9sZFNpemUgPSBhcnJheVNpemU7CisgICAgICAgIGxvbmdbXSBvbGRLZXlzID0ga2V5czsKKyAgICAgICAgbG9uZ1tdIG9sZFZhbHVlcyA9IHZhbHVlczsKKyAgICAgICAgCisgICAgICAgIGlmIChwSW5kZXggPCBwcmltZXMubGVuZ3RoIC0gMSkgeworICAgICAgICAgICAgYXJyYXlTaXplID0gcHJpbWVzWysrcEluZGV4XTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGFycmF5U2l6ZSA9IGFycmF5U2l6ZSAqIDIgKyAxOworICAgICAgICB9CisgICAgICAgIHNpemUgPSAwOworICAgICAgICAKKyAgICAgICAgbWFrZUFycmF5cyhhcnJheVNpemUpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG9sZFNpemU7IGkrKykgeworICAgICAgICAgICAgaWYgKG9sZFZhbHVlc1tpXSAhPSBFTVBUWSkgeworICAgICAgICAgICAgICAgIHB1dChvbGRLZXlzW2ldLCBvbGRWYWx1ZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG9sZEtleXMgPSBvbGRWYWx1ZXMgPSBudWxsOyAvLyBIZWxwIG91dCB0aGUgZ2FyYmFnZSBjb2xsZWN0b3IKKyAgICB9CisgICAgCisgICAgCisgICAgLyoqCisgICAgICogUHJvZHVjZSBhIHVuaWZvcm1seS1kaXN0cmlidXRlZCBoYXNoIHZhbHVlIGZyb20gYW4gaW50ZWdlciBrZXkuCisgICAgICogVGhpcyBpcyBlc3NlbnRpYWxseSBhIGxpbmVhciBjb25ncnVlbnRpYWwgcmFuZG9tIG51bWJlciBnZW5lcmF0b3IKKyAgICAgKiB0aGF0IHVzZXMgdGhlIGtleSBhcyBpdHMgc2VlZCB2YWx1ZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGludCBoYXNoKGxvbmcga2V5KQorICAgIHsKKyAgICAgICAgaW50IGggPSAoaW50KSgoa2V5ICogMTU4MjEgKyAxKSAlIGFycmF5U2l6ZSk7CisgICAgICAgIGlmIChoIDwgMCkgeworICAgICAgICAgICAgaCArPSBhcnJheVNpemU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGg7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgZmluYWwgaW50IGhhc2gyKGxvbmcga2V5KSB7CisgICAgICAgIHJldHVybiBhcnJheVNpemUgLSAyIC0gKGludCkoa2V5ICUgKGFycmF5U2l6ZS0yKSApOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBpbnQgcHJpbWVzW10gPSB7ICAvLyA1LCAxNywgMzEsIDQ3LCAvLyBmb3IgdGVzdGluZworICAgICAgICA2MSwgMTI3LCA1MDksIDEwMjEsIDIwMzksIDQwOTMsIDgxOTEsIDE2MzgxLCAzMjc0OSwgNjU1MjEsCisgICAgICAgIDEzMTA3MSwgMjYyMTM5LCAKKyAgICB9OworCisgICAgcHJpdmF0ZSBpbnQgICAgIHBJbmRleCAgICAgID0gMDsKKyAgICBwcml2YXRlIGludCAgICAgc2l6ZSAgICAgICAgPSAwOworICAgIHByaXZhdGUgaW50ICAgICBhcnJheVNpemUgICA9IHByaW1lc1twSW5kZXhdOworICAgIHByaXZhdGUgaW50ICAgICB0aHJlc2hvbGQgICA9IChhcnJheVNpemUgKiAzKSAvIDQ7CisgICAgCisgICAgcHJpdmF0ZSBsb25nW10gIGtleXMgICAgICAgID0gbmV3IGxvbmdbYXJyYXlTaXplXTsKKyAgICBwcml2YXRlIGxvbmdbXSAgdmFsdWVzICAgICAgPSBuZXcgbG9uZ1thcnJheVNpemVdOworICAgIAorICAgIHN0YXRpYyBwdWJsaWMgIGxvbmcgRU1QVFkgICA9IExvbmcuTUlOX1ZBTFVFOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ2FzZUluc2Vuc2l0aXZlU3RyaW5nLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9DYXNlSW5zZW5zaXRpdmVTdHJpbmcuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40MmU2NWUxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ2FzZUluc2Vuc2l0aXZlU3RyaW5nLmphdmEKQEAgLTAsMCArMSw1NCBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS91dGlsL0Nhc2VJbnNlbnNpdGl2ZVN0cmluZy5qYXZhLHYgJAorICogJERhdGU6IDIwMDIvMDgvMTMgMjM6NDM6MjcgJAorICogJFJldmlzaW9uOiAxLjMgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKKworLyoqCisgKiBBIHN0cmluZyB1c2VkIGFzIGEga2V5IGluIGphdmEudXRpbC5IYXNodGFibGUgYW5kIG90aGVyCisgKiBjb2xsZWN0aW9ucy4gIEl0IHJldGFpbnMgY2FzZSBpbmZvcm1hdGlvbiwgYnV0IGl0cyBlcXVhbHMoKSBhbmQKKyAqIGhhc2hDb2RlKCkgbWV0aG9kcyBpZ25vcmUgY2FzZS4KKyAqLworcHVibGljIGNsYXNzIENhc2VJbnNlbnNpdGl2ZVN0cmluZyB7CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgc3RyaW5nOworCisgICAgcHJpdmF0ZSBpbnQgaGFzaCA9IDA7CisKKyAgICBwdWJsaWMgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nKFN0cmluZyBzKSB7CisgICAgICAgIHN0cmluZyA9IHM7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXRTdHJpbmcoKSB7CisgICAgICAgIHJldHVybiBzdHJpbmc7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gc3RyaW5nLmVxdWFsc0lnbm9yZUNhc2UoKChDYXNlSW5zZW5zaXRpdmVTdHJpbmcpbykuc3RyaW5nKTsKKyAgICAgICAgfSBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5lcXVhbHNJZ25vcmVDYXNlKChTdHJpbmcpbyk7CisgICAgICAgICAgICB9IGNhdGNoIChDbGFzc0Nhc3RFeGNlcHRpb24gZTIpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICBpZiAoaGFzaCA9PSAwKSB7CisgICAgICAgICAgICBoYXNoID0gVUNoYXJhY3Rlci5mb2xkQ2FzZShzdHJpbmcsIHRydWUpLmhhc2hDb2RlKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGhhc2g7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ2hpbmVzZUNhbGVuZGFyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9DaGluZXNlQ2FsZW5kYXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kMGU5ZGI3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ2hpbmVzZUNhbGVuZGFyLmphdmEKQEAgLTAsMCArMSw3ODIgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS91dGlsL0NoaW5lc2VDYWxlbmRhci5qYXZhLHYgJAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6MjYgJAorICogJFJldmlzaW9uOiAxLjEwICQKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworLyoqCisgKiA8Y29kZT5DaGluZXNlQ2FsZW5kYXI8L2NvZGU+IGlzIGEgY29uY3JldGUgc3ViY2xhc3Mgb2Yge0BsaW5rIENhbGVuZGFyfQorICogdGhhdCBpbXBsZW1lbnRzIGEgdHJhZGl0aW9uYWwgQ2hpbmVzZSBjYWxlbmRhci4gIFRoZSB0cmFkaXRpb25hbCBDaGluZXNlCisgKiBjYWxlbmRhciBpcyBhIGx1bmlzb2xhciBjYWxlbmRhcjogRWFjaCBtb250aCBzdGFydHMgb24gYSBuZXcgbW9vbiwgYW5kCisgKiB0aGUgbW9udGhzIGFyZSBudW1iZXJlZCBhY2NvcmRpbmcgdG8gc29sYXIgZXZlbnRzLCBzcGVjaWZpY2FsbHksIHRvCisgKiBndWFyYW50ZWUgdGhhdCBtb250aCAxMSBhbHdheXMgY29udGFpbnMgdGhlIHdpbnRlciBzb2xzdGljZS4gIEluIG9yZGVyCisgKiB0byBhY2NvbXBsaXNoIHRoaXMsIGxlYXAgbW9udGhzIGFyZSBpbnNlcnRlZCBpbiBjZXJ0YWluIHllYXJzLiAgTGVhcAorICogbW9udGhzIGFyZSBudW1iZXJlZCB0aGUgc2FtZSBhcyB0aGUgbW9udGggdGhleSBmb2xsb3cuICBUaGUgZGVjaXNpb24gb2YKKyAqIHdoaWNoIG1vbnRoIGlzIGEgbGVhcCBtb250aCBkZXBlbmRzIG9uIHRoZSByZWxhdGl2ZSBtb3ZlbWVudHMgb2YgdGhlIHN1bgorICogYW5kIG1vb24uCisgKgorICogPHA+VGhpcyBjbGFzcyBkZWZpbmVzIG9uZSBhZGRpdGlvbiBmaWVsZCBiZXlvbmQgdGhvc2UgZGVmaW5lZCBieQorICogPGNvZGU+Q2FsZW5kYXI8L2NvZGU+OiBUaGUgPGNvZGU+SVNfTEVBUF9NT05USDwvY29kZT4gZmllbGQgdGFrZXMgdGhlCisgKiB2YWx1ZSBvZiAwIGZvciBub3JtYWwgbW9udGhzLCBvciAxIGZvciBsZWFwIG1vbnRocy4KKyAqCisgKiA8cD5BbGwgYXN0cm9ub21pY2FsIGNvbXB1dGF0aW9ucyBhcmUgcGVyZm9ybWVkIHdpdGggcmVzcGVjdCB0byBhIHRpbWUKKyAqIHpvbmUgb2YgR01UKzg6MDAgYW5kIGEgbG9uZ2l0dWRlIG9mIDEyMCBkZWdyZWVzIGVhc3QuICBBbHRob3VnaCBzb21lCisgKiBjYWxlbmRhcnMgaW1wbGVtZW50IGEgaGlzdG9yaWNhbGx5IG1vcmUgYWNjdXJhdGUgY29udmVudGlvbiBvZiB1c2luZworICogQmVpamluZydzIGxvY2FsIGxvbmdpdHVkZSAoMTE2IGRlZ3JlZXMgMjUgbWludXRlcyBlYXN0KSBhbmQgdGltZSB6b25lCisgKiAoR01UKzc6NDU6NDApIGZvciBkYXRlcyBiZWZvcmUgMTkyOSwgd2UgZG8gbm90IGltcGxlbWVudCB0aGlzIGhlcmUuCisgKgorICogPHA+WWVhcnMgYXJlIGNvdW50ZWQgaW4gdHdvIGRpZmZlcmVudCB3YXlzIGluIHRoZSBDaGluZXNlIGNhbGVuZGFyLiAgVGhlCisgKiBmaXJzdCBtZXRob2QgaXMgYnkgc2VxdWVudGlhbCBudW1iZXJpbmcgZnJvbSB0aGUgNjFzdCB5ZWFyIG9mIHRoZSByZWlnbgorICogb2YgSHVhbmcgRGksIDI2MzcgQkNFLCB3aGljaCBpcyBkZXNpZ25hdGVkIHllYXIgMSBvbiB0aGUgQ2hpbmVzZQorICogY2FsZW5kYXIuICBUaGUgc2Vjb25kIG1ldGhvZCB1c2VzIDYwLXllYXIgY3ljbGVzIGZyb20gdGhlIHNhbWUgc3RhcnRpbmcKKyAqIHBvaW50LCB3aGljaCBpcyBkZXNpZ25hdGVkIHllYXIgMSBvZiBjeWNsZSAxLiAgSW4gdGhpcyBjbGFzcywgdGhlCisgKiA8Y29kZT5FWFRFTkRFRF9ZRUFSPC9jb2RlPiBmaWVsZCBjb250YWlucyB0aGUgc2VxdWVudGlhbCB5ZWFyIGNvdW50LgorICogVGhlIDxjb2RlPkVSQTwvY29kZT4gZmllbGQgY29udGFpbnMgdGhlIGN5Y2xlIG51bWJlciwgYW5kIHRoZQorICogPGNvZGU+WUVBUjwvY29kZT4gZmllbGQgY29udGFpbnMgdGhlIHllYXIgb2YgdGhlIGN5Y2xlLCBhIHZhbHVlIGJldHdlZW4KKyAqIDEgYW5kIDYwLgorICoKKyAqIDxwPlRoZXJlIGlzIHNvbWUgdmFyaWF0aW9uIGluIHdoYXQgaXMgY29uc2lkZXJlZCB0aGUgc3RhcnRpbmcgcG9pbnQgb2YKKyAqIHRoZSBjYWxlbmRhciwgd2l0aCBzb21lIHNvdXJjZXMgc3RhcnRpbmcgaW4gdGhlIGZpcnN0IHllYXIgb2YgdGhlIHJlaWduCisgKiBvZiBIdWFuZyBEaSwgcmF0aGVyIHRoYW4gdGhlIDYxc3QuICBUaGlzIGdpdmVzIGNvbnRpbnVvdXMgeWVhciBudW1iZXJzCisgKiA2MCB5ZWFycyBncmVhdGVyIGFuZCBjeWNsZSBudW1iZXJzIG9uZSBncmVhdGVyIHRoYW4gd2hhdCB0aGlzIGNsYXNzCisgKiBpbXBsZW1lbnRzLgorICoKKyAqIDxwPkJlY2F1c2UgPGNvZGU+Q2hpbmVzZUNhbGVuZGFyPC9jb2RlPiBkZWZpbmVzIGFuIGFkZGl0aW9uYWwgZmllbGQgYW5kCisgKiByZWRlZmluZXMgdGhlIHdheSB0aGUgPGNvZGU+RVJBPC9jb2RlPiBmaWVsZCBpcyB1c2VkLCBpdCByZXF1aXJlcyBhIG5ldworICogZm9ybWF0IGNsYXNzLCA8Y29kZT5DaGluZXNlRGF0ZUZvcm1hdDwvY29kZT4uICBBcyBhbHdheXMsIHVzZSB0aGUKKyAqIG1ldGhvZHMgPGNvZGU+RGF0ZUZvcm1hdC5nZXRYeHhJbnN0YW5jZShDYWxlbmRhciBjYWwsLi4uKTwvY29kZT4gdG8KKyAqIG9idGFpbiBhIGZvcm1hdHRlciBmb3IgdGhpcyBjYWxlbmRhci4KKyAqCisgKiA8cD5SZWZlcmVuY2VzOjx1bD4KKyAqIAorICogPGxpPkRlcnNob3dpdHogYW5kIFJlaW5nb2xkLCA8aT5DYWxlbmRyaWNhbCBDYWxjdWxhdGlvbnM8L2k+LAorICogQ2FtYnJpZGdlIFVuaXZlcnNpdHkgUHJlc3MsIDE5OTc8L2xpPgorICogCisgKiA8bGk+SGVsbWVyIEFzbGFrc2VuJ3MKKyAqIDxhIGhyZWY9Imh0dHA6Ly93d3cubWF0aC5udXMuZWR1LnNnL2FzbGFrc2VuL2NhbGVuZGFyL2NoaW5lc2Uuc2h0bWwiPgorICogQ2hpbmVzZSBDYWxlbmRhciBwYWdlPC9hPjwvbGk+CisgKgorICogPGxpPlRoZSA8YSBocmVmPSJodHRwOi8vd3d3LnRvbmRlcmluZy5kay9jbGF1cy9jYWxlbmRhci5odG1sIj4KKyAqIENhbGVuZGFyIEZBUTwvYT48L2xpPgorICoKKyAqIDwvdWw+CisgKiBAc2VlIGNvbS5pYm0uaWN1LnRleHQuQ2hpbmVzZURhdGVGb3JtYXQKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqLworcHVibGljIGNsYXNzIENoaW5lc2VDYWxlbmRhciBleHRlbmRzIENhbGVuZGFyIHsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gRGV2ZWxvcGVyIE5vdGVzCisgICAgLy8gCisgICAgLy8gVGltZSBpcyByZXByZXNlbnRlZCBhcyBhIHNjYWxhciBpbiB0d28gd2F5cyBpbiB0aGlzIGNsYXNzLiAgT25lIGlzCisgICAgLy8gdGhlIHVzdWFsIFVUQyBlcG9jaCBtaWxsaXMsIHRoYXQgaXMsIG1pbGxpc2Vjb25kcyBhZnRlciBKYW51YXJ5IDEsCisgICAgLy8gMTk3MCBHcmVnb3JpYW4sIDA6MDA6MDAuMDAwIFVUQy4gIFRoZSBvdGhlciBpcyBpbiB0ZXJtcyBvZiAnbG9jYWwKKyAgICAvLyBkYXlzLicgIFRoaXMgaXMgdGhlIG51bWJlciBvZiBkYXlzIGFmdGVyIEphbnVhcnkgMSwgMTk3MCBHcmVnb3JpYW4sCisgICAgLy8gbG9jYWwgdG8gQmVpamluZywgQ2hpbmEgKHNpbmNlIGFsbCBjb21wdXRhdGlvbnMgb2YgdGhlIENoaW5lc2UKKyAgICAvLyBjYWxlbmRhciBhcmUgZG9uZSBpbiBCZWlqaW5nKS4gIFRoYXQgaXMsIDAgcmVwcmVzZW50cyBKYW51YXJ5IDEsCisgICAgLy8gMTk3MCAwOjAwIEFzaWEvU2hhbmdoYWkuICBDb252ZXJzaW9uIG9mIGxvY2FsIGRheXMgdG8gYW5kIGZyb20KKyAgICAvLyBzdGFuZGFyZCBlcG9jaCBtaWxsaXNlY29uZHMgaXMgYWNjb21wbGlzaGVkIGJ5IHRoZSBkYXlzVG9NaWxsaXMoKQorICAgIC8vIGFuZCBtaWxsaXNUb0RheXMoKSBtZXRob2RzLgorICAgIC8vIAorICAgIC8vIFNldmVyYWwgbWV0aG9kcyB1c2UgY2FjaGVzIHRvIGltcHJvdmUgcGVyZm9ybWFuY2UuICBDYWNoZXMgYXJlIGF0CisgICAgLy8gdGhlIG9iamVjdCwgbm90IGNsYXNzIGxldmVsLCB1bmRlciB0aGUgYXNzdW1wdGlvbiB0aGF0IHR5cGljYWwKKyAgICAvLyB1c2FnZSB3aWxsIGJlIHRvIGhhdmUgb25lIGluc3RhbmNlIG9mIENoaW5lc2VDYWxlbmRhciBhdCBhIHRpbWUuCisgCisgICAgLyoqCisgICAgICogV2UgaGF2ZSBvbmUgaW5zdGFuY2UgcGVyIG9iamVjdCwgYW5kIHdlIGRvbid0IHN5bmNocm9uaXplIGl0IGJlY2F1c2UKKyAgICAgKiBDYWxlbmRhciBkb2Vzbid0IHN1cHBvcnQgbXVsdGl0aHJlYWRlZCBleGVjdXRpb24gaW4gdGhlIGZpcnN0IHBsYWNlLgorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IENhbGVuZGFyQXN0cm9ub21lciBhc3RybyA9IG5ldyBDYWxlbmRhckFzdHJvbm9tZXIoKTsKKworICAgIC8qKgorICAgICAqIENhY2hlIHRoYXQgbWFwcyBHcmVnb3JpYW4geWVhciB0byBsb2NhbCBkYXlzIG9mIHdpbnRlciBzb2xzdGljZS4KKyAgICAgKiBAc2VlICN3aW50ZXJTb2xzdGljZQorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IENhbGVuZGFyQ2FjaGUgd2ludGVyU29sc3RpY2VDYWNoZSA9IG5ldyBDYWxlbmRhckNhY2hlKCk7CisKKyAgICAvKioKKyAgICAgKiBDYWNoZSB0aGF0IG1hcHMgR3JlZ29yaWFuIHllYXIgdG8gbG9jYWwgZGF5cyBvZiBDaGluZXNlIG5ldyB5ZWFyLgorICAgICAqIEBzZWUgI25ld1llYXIKKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBDYWxlbmRhckNhY2hlIG5ld1llYXJDYWNoZSA9IG5ldyBDYWxlbmRhckNhY2hlKCk7CisKKyAgICAvKioKKyAgICAgKiBUcnVlIGlmIHRoZSBjdXJyZW50IHllYXIgaXMgYSBsZWFwIHllYXIuICBVcGRhdGVkIHdpdGggZWFjaCB0aW1lIHRvCisgICAgICogZmllbGRzIHJlc29sdXRpb24uCisgICAgICogQHNlZSAjY29tcHV0ZUNoaW5lc2VGaWVsZHMKKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBib29sZWFuIGlzTGVhcFllYXI7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIENvbnN0cnVjdG9ycworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBDaGluZXNlIGNhbGVuZGFyIHdpdGggdGhlIGRlZmF1bHQgdGltZSB6b25lIGFuZCBsb2NhbGUuCisgICAgICovCisgICAgcHVibGljIENoaW5lc2VDYWxlbmRhcigpIHsKKyAgICAgICAgc3VwZXIoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBDaGluZXNlIGNhbGVuZGFyIHdpdGggdGhlIGdpdmVuIHRpbWUgem9uZSBhbmQgbG9jYWxlLgorICAgICAqIEBwYXJhbSB6b25lIHRpbWUgem9uZSBmb3IgdGhpcyBjYWxlbmRhcgorICAgICAqIEBwYXJhbSBsb2NhbGUgbG9jYWxlIGZvciB0aGlzIGNhbGVuZGFyCisgICAgICovCisgICAgcHVibGljIENoaW5lc2VDYWxlbmRhcihUaW1lWm9uZSB6b25lLCBMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHN1cGVyKHpvbmUsIGxvY2FsZSk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBQdWJsaWMgY29uc3RhbnRzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEZpZWxkIGluZGljYXRpbmcgd2hldGhlciBvciBub3QgdGhlIGN1cnJlbnQgbW9udGggaXMgYSBsZWFwIG1vbnRoLgorICAgICAqIFNob3VsZCBoYXZlIGEgdmFsdWUgb2YgMCBmb3Igbm9uLWxlYXAgbW9udGhzLCBhbmQgMSBmb3IgbGVhcCBtb250aHMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgSVNfTEVBUF9NT05USCA9IEJBU0VfRklFTERfQ09VTlQ7CisKKyAgICAvKioKKyAgICAgKiBDb3VudCBvZiBmaWVsZHMgaW4gdGhpcyBjbGFzcy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRklFTERfQ09VTlQgPSBJU19MRUFQX01PTlRIICsgMTsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gQ2FsZW5kYXIgZnJhbWV3b3JrCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlIENhbGVuZGFyIHRvIGFsbG9jYXRlIG91ciBhZGRpdGlvbmFsIGZpZWxkLgorICAgICAqLworICAgIHByb3RlY3RlZCBpbnRbXSBoYW5kbGVDcmVhdGVGaWVsZHMoKSB7CisgICAgICAgIHJldHVybiBuZXcgaW50W0ZJRUxEX0NPVU5UXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBcnJheSBkZWZpbmluZyB0aGUgbGltaXRzIG9mIGZpZWxkIHZhbHVlcyBmb3IgdGhpcyBjbGFzcy4gIEZpZWxkCisgICAgICogbGltaXRzIHdoaWNoIGFyZSBpbnZhcmlhbnQgd2l0aCByZXNwZWN0IHRvIGNhbGVuZGFyIHN5c3RlbSBhbmQKKyAgICAgKiBkZWZpbmVkIGJ5IENhbGVuZGFyIGFyZSBsZWZ0IGJsYW5rLgorICAgICAqCisgICAgICogTm90ZXM6CisgICAgICoKKyAgICAgKiBFUkEgNTAwMDAwMCAvIDYwID0gODMzMzMuCisgICAgICoKKyAgICAgKiBNT05USCBUaGVyZSBhcmUgMTIgb3IgMTMgbHVuYXIgbW9udGhzIGluIGEgeWVhci4gIEhvd2V2ZXIsIHdlIGFsd2F5cworICAgICAqIG51bWJlciB0aGVtIDAuLjExLCB3aXRoIGFuIGludGVyY2FsYXRlZCwgaWRlbnRpY2FsbHkgbnVtYmVyZWQgbGVhcAorICAgICAqIG1vbnRoLCB3aGVuIG5lY2Vzc2FyeS4KKyAgICAgKgorICAgICAqIERBWV9PRl9ZRUFSIEluIGEgbm9uLWxlYXAgeWVhciB0aGVyZSBhcmUgMzUzLCAzNTQsIG9yIDM1NSBkYXlzLiAgSW4KKyAgICAgKiBhIGxlYXAgeWVhciB0aGVyZSBhcmUgMzgzLCAzODQsIG9yIDM4NSBkYXlzLgorICAgICAqCisgICAgICogV0VFS19PRl9ZRUFSIFRoZSBsZWFzdCBtYXhpbXVtIG9jY3VycyBpZiB0aGVyZSBhcmUgMzUzIGRheXMgaW4gdGhlCisgICAgICogeWVhciwgYW5kIHRoZSBmaXJzdCA2IGFyZSB0aGUgbGFzdCB3ZWVrIG9mIHRoZSBwcmV2aW91cyB5ZWFyLiAgVGhlbgorICAgICAqIHdlIGhhdmUgNDkgZnVsbCB3ZWVrcyBhbmQgNCBkYXlzIGluIHRoZSBsYXN0IHdlZWs6IDYgKyA0OSo3ICsgNCA9CisgICAgICogMzUzLiAgU28gdGhlIGxlYXN0IG1heGltdW0gaXMgNTAuICBUaGUgbWF4aW11bSBvY2N1cnMgaWYgdGhlcmUgYXJlCisgICAgICogMzg1IGRheXMgaW4gdGhlIHllYXIsIGFuZCBXT1kgMSBleHRlbmRzIDYgZGF5cyBpbnRvIHRoZSBwcmlvciB5ZWFyLgorICAgICAqIFRoZW4gdGhlcmUgYXJlIDU0IGZ1bGwgd2Vla3MsIGFuZCA2IGRheXMgaW4gdGhlIGxhc3Qgd2VlazogMSArIDU0KjcKKyAgICAgKiArIDYgPSAzODUuICBUaGUgNiBkYXlzIG9mIHRoZSBsYXN0IHdlZWsgd2lsbCBmYWxsIGludG8gV09ZIDEgb2YgdGhlCisgICAgICogbmV4dCB5ZWFyLiAgTWF4aW11bSBpcyA1NS4KKyAgICAgKgorICAgICAqIFdFRUtfT0ZfTU9OVEggSW4gYSAyOSBkYXkgbW9udGgsIGlmIHRoZSBmaXJzdCA3IGRheXMgbWFrZSB1cCB3ZWVrIDEKKyAgICAgKiB0aGF0IGxlYXZlcyAzIGZ1bGwgd2Vla3MgYW5kIDEgZGF5IGF0IHRoZSBlbmQuICBUaGUgbGVhc3QgbWF4aW11bSBpcworICAgICAqIHRodXMgNS4gIEluIGEgMzAgZGF5cyBtb250aCwgaWYgdGhlIHByZXZpb3VzIDYgZGF5cyBiZWxvbmcgV09NIDEgb2YKKyAgICAgKiB0aGlzIG1vbnRoLCB3ZSBoYXZlIDQgZnVsbCB3ZWVrcyBhbmQgMSBkYXlzIGF0IHRoZSBlbmQgKHdoaWNoCisgICAgICogdGVjaG5pY2FsbHkgd2lsbCBiZSBXT00gMSBvZiB0aGUgbmV4dCBtb250aCwgYnV0IHdpbGwgYmUgcmVwb3J0ZWQgYnkKKyAgICAgKiB0aW1lLT5maWVsZHMgYW5kIGhlbmNlIGJ5IGdldEFjdHVhbE1heGltdW0gYXMgV09NIDYgb2YgdGhpcyBtb250aCkuCisgICAgICogTWF4aW11bSBpcyA2LgorICAgICAqCisgICAgICogREFZX09GX1dFRUtfSU5fTU9OVEggSW4gYSAyOSBvciAzMCBkYXkgbW9udGgsIHRoZXJlIGFyZSA0IGZ1bGwgd2Vla3MKKyAgICAgKiBwbHVzIDEgb3IgMiBkYXlzIGF0IHRoZSBlbmQsIHNvIHRoZSBtYXhpbXVtIGlzIGFsd2F5cyA1LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMSU1JVFNbXVtdID0geworICAgICAgICAvLyBNaW5pbXVtICBHcmVhdGVzdCAgICBMZWFzdCAgTWF4aW11bQorICAgICAgICAvLyAgICAgICAgICAgTWluaW11bSAgTWF4aW11bQorICAgICAgICB7ICAgICAgICAxLCAgICAgICAgMSwgICA4MzMzMywgICA4MzMzMyB9LCAvLyBFUkEKKyAgICAgICAgeyAgICAgICAgMSwgICAgICAgIDEsICAgICAgNzAsICAgICAgNzAgfSwgLy8gWUVBUgorICAgICAgICB7ICAgICAgICAwLCAgICAgICAgMCwgICAgICAxMSwgICAgICAxMSB9LCAvLyBNT05USAorICAgICAgICB7ICAgICAgICAxLCAgICAgICAgMSwgICAgICA1MCwgICAgICA1NSB9LCAvLyBXRUVLX09GX1lFQVIKKyAgICAgICAgeyAgICAgICAgMSwgICAgICAgIDEsICAgICAgIDUsICAgICAgIDYgfSwgLy8gV0VFS19PRl9NT05USAorICAgICAgICB7ICAgICAgICAxLCAgICAgICAgMSwgICAgICAyOSwgICAgICAzMCB9LCAvLyBEQVlfT0ZfTU9OVEgKKyAgICAgICAgeyAgICAgICAgMSwgICAgICAgIDEsICAgICAzNTMsICAgICAzODUgfSwgLy8gREFZX09GX1lFQVIKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gREFZX09GX1dFRUsKKyAgICAgICAgeyAgICAgICAtMSwgICAgICAgLTEsICAgICAgIDUsICAgICAgIDUgfSwgLy8gREFZX09GX1dFRUtfSU5fTU9OVEgKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gQU1fUE0KKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gSE9VUgorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBIT1VSX09GX0RBWQorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBNSU5VVEUKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gU0VDT05ECisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIE1JTExJU0VDT05ECisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIFpPTkVfT0ZGU0VUCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIERTVF9PRkZTRVQKKyAgICAgICAgeyAtNTAwMDAwMSwgLTUwMDAwMDEsIDUwMDAwMDEsIDUwMDAwMDEgfSwgLy8gWUVBUl9XT1kKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gRE9XX0xPQ0FMCisgICAgICAgIHsgLTUwMDAwMDAsIC01MDAwMDAwLCA1MDAwMDAwLCA1MDAwMDAwIH0sIC8vIEVYVEVOREVEX1lFQVIKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gSlVMSUFOX0RBWQorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBNSUxMSVNFQ09ORFNfSU5fREFZCisgICAgICAgIHsgICAgICAgIDAsICAgICAgICAwLCAgICAgICAxLCAgICAgICAxIH0sIC8vIElTX0xFQVBfTU9OVEgKKyAgICB9OworCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgQ2FsZW5kYXIgdG8gcmV0dXJuIHRoZSBsaW1pdCB2YWx1ZSBmb3IgdGhlIGdpdmVuIGZpZWxkLgorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0TGltaXQoaW50IGZpZWxkLCBpbnQgbGltaXRUeXBlKSB7CisgICAgICAgIHJldHVybiBMSU1JVFNbZmllbGRdW2xpbWl0VHlwZV07CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50IGFic3RyYWN0IENhbGVuZGFyIG1ldGhvZCB0byByZXR1cm4gdGhlIGV4dGVuZGVkIHllYXIKKyAgICAgKiBkZWZpbmVkIGJ5IHRoZSBjdXJyZW50IGZpZWxkcy4gIFRoaXMgd2lsbCB1c2UgZWl0aGVyIHRoZSBFUkEgYW5kCisgICAgICogWUVBUiBmaWVsZCBhcyB0aGUgY3ljbGUgYW5kIHllYXItb2YtY3ljbGUsIG9yIHRoZSBFWFRFTkRFRF9ZRUFSCisgICAgICogZmllbGQgYXMgdGhlIGNvbnRpbnVvdXMgeWVhciBjb3VudCwgZGVwZW5kaW5nIG9uIHdoaWNoIGlzIG5ld2VyLgorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0RXh0ZW5kZWRZZWFyKCkgeworICAgICAgICBpbnQgeWVhcjsKKyAgICAgICAgaWYgKG5ld2VzdFN0YW1wKEVSQSwgWUVBUiwgVU5TRVQpIDw9IGdldFN0YW1wKEVYVEVOREVEX1lFQVIpKSB7CisgICAgICAgICAgICB5ZWFyID0gaW50ZXJuYWxHZXQoRVhURU5ERURfWUVBUiwgMSk7IC8vIERlZmF1bHQgdG8geWVhciAxCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgY3ljbGUgPSBpbnRlcm5hbEdldChFUkEsIDEpIC0gMTsgLy8gMC1iYXNlZCBjeWNsZQorICAgICAgICAgICAgeWVhciA9IGN5Y2xlICogNjAgKyBpbnRlcm5hbEdldChZRUFSLCAxKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4geWVhcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBDYWxlbmRhciBtZXRob2QgdG8gcmV0dXJuIHRoZSBudW1iZXIgb2YgZGF5cyBpbiB0aGUgZ2l2ZW4KKyAgICAgKiBleHRlbmRlZCB5ZWFyIGFuZCBtb250aC4KKyAgICAgKgorICAgICAqIDxwPk5vdGU6IFRoaXMgbWV0aG9kIGFsc28gcmVhZHMgdGhlIElTX0xFQVBfTU9OVEggZmllbGQgdG8gZGV0ZXJtaW5lCisgICAgICogd2hldGhlciBvciBub3QgdGhlIGdpdmVuIG1vbnRoIGlzIGEgbGVhcCBtb250aC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldE1vbnRoTGVuZ3RoKGludCBleHRlbmRlZFllYXIsIGludCBtb250aCkgeworICAgICAgICBpbnQgdGhpc1N0YXJ0ID0gaGFuZGxlQ29tcHV0ZU1vbnRoU3RhcnQoZXh0ZW5kZWRZZWFyLCBtb250aCwgdHJ1ZSkgLQorICAgICAgICAgICAgRVBPQ0hfSlVMSUFOX0RBWSArIDE7IC8vIEp1bGlhbiBkYXkgLT4gbG9jYWwgZGF5cworICAgICAgICBpbnQgbmV4dFN0YXJ0ID0gbmV3TW9vbk5lYXIodGhpc1N0YXJ0ICsgU1lOT0RJQ19HQVAsIHRydWUpOworICAgICAgICByZXR1cm4gbmV4dFN0YXJ0IC0gdGhpc1N0YXJ0OworICAgIH0KKworICAgIC8qKgorICAgICAqIEZyYW1ld29yayBtZXRob2QgdG8gY3JlYXRlIGEgY2FsZW5kYXItc3BlY2lmaWMgRGF0ZUZvcm1hdCBvYmplY3QKKyAgICAgKiB1c2luZyB0aGUgdGhlIGdpdmVuIHBhdHRlcm4uICBUaGlzIG1ldGhvZCBpcyByZXNwb25zaWJsZSBmb3IKKyAgICAgKiBjcmVhdGluZyB0aGUgY2FsZW5kYXItIHNwZWNpZmljIERhdGVGb3JtYXQgYW5kIERhdGVGb3JtYXRTeW1ib2xzCisgICAgICogb2JqZWN0cyBhcyBuZWVkZWQuCisgICAgICovCisgICAgcHJvdGVjdGVkIERhdGVGb3JtYXQgaGFuZGxlR2V0RGF0ZUZvcm1hdChTdHJpbmcgcGF0dGVybiwgTG9jYWxlIGxvY2FsZSkgeworICAgICAgICByZXR1cm4gbmV3IENoaW5lc2VEYXRlRm9ybWF0KHBhdHRlcm4sIGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRmllbGQgcmVzb2x1dGlvbiB0YWJsZSB0aGF0IGluY29ycG9yYXRlcyBJU19MRUFQX01PTlRILgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBpbnRbXVtdW10gQ0hJTkVTRV9EQVRFX1BSRUNFREVOQ0UgPSB7CisgICAgICAgIHsKKyAgICAgICAgICAgIHsgREFZX09GX01PTlRIIH0sCisgICAgICAgICAgICB7IFdFRUtfT0ZfWUVBUiwgREFZX09GX1dFRUsgfSwKKyAgICAgICAgICAgIHsgV0VFS19PRl9NT05USCwgREFZX09GX1dFRUsgfSwKKyAgICAgICAgICAgIHsgREFZX09GX1dFRUtfSU5fTU9OVEgsIERBWV9PRl9XRUVLIH0sCisgICAgICAgICAgICB7IFdFRUtfT0ZfWUVBUiwgRE9XX0xPQ0FMIH0sCisgICAgICAgICAgICB7IFdFRUtfT0ZfTU9OVEgsIERPV19MT0NBTCB9LAorICAgICAgICAgICAgeyBEQVlfT0ZfV0VFS19JTl9NT05USCwgRE9XX0xPQ0FMIH0sCisgICAgICAgICAgICB7IERBWV9PRl9ZRUFSIH0sCisgICAgICAgICAgICB7IFJFU09MVkVfUkVNQVAgfCBEQVlfT0ZfTU9OVEgsIElTX0xFQVBfTU9OVEggfSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgeyBXRUVLX09GX1lFQVIgfSwKKyAgICAgICAgICAgIHsgV0VFS19PRl9NT05USCB9LAorICAgICAgICAgICAgeyBEQVlfT0ZfV0VFS19JTl9NT05USCB9LAorICAgICAgICAgICAgeyBSRVNPTFZFX1JFTUFQIHwgREFZX09GX1dFRUtfSU5fTU9OVEgsIERBWV9PRl9XRUVLIH0sCisgICAgICAgICAgICB7IFJFU09MVkVfUkVNQVAgfCBEQVlfT0ZfV0VFS19JTl9NT05USCwgRE9XX0xPQ0FMIH0sCisgICAgICAgIH0sCisgICAgfTsKKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlIENhbGVuZGFyIHRvIGFkZCBJU19MRUFQX01PTlRIIHRvIHRoZSBmaWVsZCByZXNvbHV0aW9uCisgICAgICogdGFibGUuCisgICAgICovCisgICAgcHJvdGVjdGVkIGludFtdW11bXSBnZXRGaWVsZFJlc29sdXRpb25UYWJsZSgpIHsKKyAgICAgICAgcmV0dXJuIENISU5FU0VfREFURV9QUkVDRURFTkNFOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkanVzdCB0aGlzIGNhbGVuZGFyIHRvIGJlIGRlbHRhIG1vbnRocyBiZWZvcmUgb3IgYWZ0ZXIgYSBnaXZlbgorICAgICAqIHN0YXJ0IHBvc2l0aW9uLCBwaW5uaW5nIHRoZSBkYXkgb2YgbW9udGggaWYgbmVjZXNzYXJ5LiAgVGhlIHN0YXJ0CisgICAgICogcG9zaXRpb24gaXMgZ2l2ZW4gYXMgYSBsb2NhbCBkYXlzIG51bWJlciBmb3IgdGhlIHN0YXJ0IG9mIHRoZSBtb250aAorICAgICAqIGFuZCBhIGRheS1vZi1tb250aC4gIFVzZWQgYnkgYWRkKCkgYW5kIHJvbGwoKS4KKyAgICAgKiBAcGFyYW0gbmV3TW9vbiB0aGUgbG9jYWwgZGF5cyBvZiB0aGUgZmlyc3QgZGF5IG9mIHRoZSBtb250aCBvZiB0aGUKKyAgICAgKiBzdGFydCBwb3NpdGlvbiAoZGF5cyBhZnRlciBKYW51YXJ5IDEsIDE5NzAgMDowMCBBc2lhL1NoYW5naGFpKQorICAgICAqIEBwYXJhbSBkb20gdGhlIDEtYmFzZWQgZGF5LW9mLW1vbnRoIG9mIHRoZSBzdGFydCBwb3NpdGlvbgorICAgICAqIEBwYXJhbSBkZWx0YSB0aGUgbnVtYmVyIG9mIG1vbnRocyB0byBtb3ZlIGZvcndhcmQgb3IgYmFja3dhcmQgZnJvbQorICAgICAqIHRoZSBzdGFydCBwb3NpdGlvbgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBvZmZzZXRNb250aChpbnQgbmV3TW9vbiwgaW50IGRvbSwgaW50IGRlbHRhKSB7CisgICAgICAgIC8vIE1vdmUgdG8gdGhlIG1pZGRsZSBvZiB0aGUgbW9udGggYmVmb3JlIG91ciB0YXJnZXQgbW9udGguCisgICAgICAgIG5ld01vb24gKz0gKGludCkgKENhbGVuZGFyQXN0cm9ub21lci5TWU5PRElDX01PTlRIICogKGRlbHRhIC0gMC41KSk7CisKKyAgICAgICAgLy8gU2VhcmNoIGZvcndhcmQgdG8gdGhlIHRhcmdldCBtb250aCdzIG5ldyBtb29uCisgICAgICAgIG5ld01vb24gPSBuZXdNb29uTmVhcihuZXdNb29uLCB0cnVlKTsKKworICAgICAgICAvLyBGaW5kIHRoZSB0YXJnZXQgZG9tCisgICAgICAgIGludCBqZCA9IG5ld01vb24gKyBFUE9DSF9KVUxJQU5fREFZIC0gMSArIGRvbTsKKworICAgICAgICAvLyBQaW4gdGhlIGRvbS4gIEluIHRoaXMgY2FsZW5kYXIgYWxsIG1vbnRocyBhcmUgMjkgb3IgMzAgZGF5cworICAgICAgICAvLyBzbyBwaW5uaW5nIGp1c3QgbWVhbnMgaGFuZGxpbmcgZG9tIDMwLgorICAgICAgICBpZiAoZG9tID4gMjkpIHsKKyAgICAgICAgICAgIHNldChKVUxJQU5fREFZLCBqZC0xKTsKKyAgICAgICAgICAgIC8vIFRPRE8gRml4IHRoaXMuICBXZSByZWFsbHkgc2hvdWxkbid0IGV2ZXIgaGF2ZSB0bworICAgICAgICAgICAgLy8gZXhwbGljaXRseSBjYWxsIGNvbXBsZXRlKCkuICBUaGlzIGlzIGVpdGhlciBhIGJ1ZyBpbgorICAgICAgICAgICAgLy8gdGhpcyBtZXRob2QsIGluIENoaW5lc2VDYWxlbmRhciwgb3IgaW4KKyAgICAgICAgICAgIC8vIENhbGVuZGFyLmdldEFjdHVhbE1heGltdW0oKS4gIEkgc3VzcGVjdCB0aGUgbGFzdC4KKyAgICAgICAgICAgIGNvbXBsZXRlKCk7CisgICAgICAgICAgICBpZiAoZ2V0QWN0dWFsTWF4aW11bShEQVlfT0ZfTU9OVEgpID49IGRvbSkgeworICAgICAgICAgICAgICAgIHNldChKVUxJQU5fREFZLCBqZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzZXQoSlVMSUFOX0RBWSwgamQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgQ2FsZW5kYXIgdG8gaGFuZGxlIGxlYXAgbW9udGhzIHByb3Blcmx5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFkZChpbnQgZmllbGQsIGludCBhbW91bnQpIHsKKyAgICAgICAgc3dpdGNoIChmaWVsZCkgeworICAgICAgICBjYXNlIE1PTlRIOgorICAgICAgICAgICAgaWYgKGFtb3VudCAhPSAwKSB7CisgICAgICAgICAgICAgICAgaW50IGRvbSA9IGdldChEQVlfT0ZfTU9OVEgpOworICAgICAgICAgICAgICAgIGludCBkYXkgPSBnZXQoSlVMSUFOX0RBWSkgLSBFUE9DSF9KVUxJQU5fREFZOyAvLyBHZXQgbG9jYWwgZGF5CisgICAgICAgICAgICAgICAgaW50IG1vb24gPSBkYXkgLSBkb20gKyAxOyAvLyBOZXcgbW9vbiAKKyAgICAgICAgICAgICAgICBvZmZzZXRNb250aChtb29uLCBkb20sIGFtb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHN1cGVyLmFkZChmaWVsZCwgYW1vdW50KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgQ2FsZW5kYXIgdG8gaGFuZGxlIGxlYXAgbW9udGhzIHByb3Blcmx5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJvbGwoaW50IGZpZWxkLCBpbnQgYW1vdW50KSB7CisgICAgICAgIHN3aXRjaCAoZmllbGQpIHsKKyAgICAgICAgY2FzZSBNT05USDoKKyAgICAgICAgICAgIGlmIChhbW91bnQgIT0gMCkgeworICAgICAgICAgICAgICAgIGludCBkb20gPSBnZXQoREFZX09GX01PTlRIKTsKKyAgICAgICAgICAgICAgICBpbnQgZGF5ID0gZ2V0KEpVTElBTl9EQVkpIC0gRVBPQ0hfSlVMSUFOX0RBWTsgLy8gR2V0IGxvY2FsIGRheQorICAgICAgICAgICAgICAgIGludCBtb29uID0gZGF5IC0gZG9tICsgMTsgLy8gTmV3IG1vb24gKHN0YXJ0IG9mIHRoaXMgbW9udGgpCisKKyAgICAgICAgICAgICAgICAvLyBOb3RlIHRocm91Z2hvdXQgdGhlIGZvbGxvd2luZzogIE1vbnRocyAxMiBhbmQgMSBhcmUgbmV2ZXIKKyAgICAgICAgICAgICAgICAvLyBmb2xsb3dlZCBieSBhIGxlYXAgbW9udGggKEQmUiBwLiAxODUpLgorCisgICAgICAgICAgICAgICAgLy8gQ29tcHV0ZSB0aGUgYWRqdXN0ZWQgbW9udGggbnVtYmVyIG0uICBUaGlzIGlzIHplcm8tYmFzZWQKKyAgICAgICAgICAgICAgICAvLyB2YWx1ZSBmcm9tIDAuLjExIGluIGEgbm9uLWxlYXAgeWVhciwgYW5kIGZyb20gMC4uMTIgaW4gYQorICAgICAgICAgICAgICAgIC8vIGxlYXAgeWVhci4KKyAgICAgICAgICAgICAgICBpbnQgbSA9IGdldChNT05USCk7IC8vIDAtYmFzZWQgbW9udGgKKyAgICAgICAgICAgICAgICBpZiAoaXNMZWFwWWVhcikgeyAvLyAobWVtYmVyIHZhcmlhYmxlKQorICAgICAgICAgICAgICAgICAgICBpZiAoZ2V0KElTX0xFQVBfTU9OVEgpID09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrbTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGZvciBhIHByaW9yIGxlYXAgbW9udGguICAoSW4gdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBmb2xsb3dpbmcsIG1vbnRoIDAgaXMgdGhlIGZpcnN0IG1vbnRoIG9mIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8geWVhci4pICBNb250aCAwIGlzIG5ldmVyIGZvbGxvd2VkIGJ5IGEgbGVhcAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gbW9udGgsIGFuZCB3ZSBrbm93IG1vbnRoIG0gaXMgbm90IGEgbGVhcCBtb250aC4KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1vb24xIHdpbGwgYmUgdGhlIHN0YXJ0IG9mIG1vbnRoIDAgaWYgdGhlcmUgaXMKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vIGxlYXAgbW9udGggYmV0d2VlbiBtb250aCAwIGFuZCBtb250aCBtOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3RoZXJ3aXNlIGl0IHdpbGwgYmUgdGhlIHN0YXJ0IG9mIG1vbnRoIDEuCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbW9vbjEgPSBtb29uIC0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSAoQ2FsZW5kYXJBc3Ryb25vbWVyLlNZTk9ESUNfTU9OVEggKiAobSAtIDAuNSkpOworICAgICAgICAgICAgICAgICAgICAgICAgbW9vbjEgPSBuZXdNb29uTmVhcihtb29uMSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNMZWFwTW9udGhCZXR3ZWVuKG1vb24xLCBtb29uKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrbTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIE5vdyBkbyB0aGUgc3RhbmRhcmQgcm9sbCBjb21wdXRhdGlvbiBvbiBtLCB3aXRoIHRoZQorICAgICAgICAgICAgICAgIC8vIGFsbG93ZWQgcmFuZ2Ugb2YgMC4ubi0xLCB3aGVyZSBuIGlzIDEyIG9yIDEzLgorICAgICAgICAgICAgICAgIGludCBuID0gaXNMZWFwWWVhciA/IDEzIDogMTI7IC8vIE1vbnRocyBpbiB0aGlzIHllYXIKKyAgICAgICAgICAgICAgICBpbnQgbmV3TSA9IChtICsgYW1vdW50KSAlIG47CisgICAgICAgICAgICAgICAgaWYgKG5ld00gPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIG5ld00gKz0gbjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAobmV3TSAhPSBtKSB7CisgICAgICAgICAgICAgICAgICAgIG9mZnNldE1vbnRoKG1vb24sIGRvbSwgbmV3TSAtIG0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgc3VwZXIucm9sbChmaWVsZCwgYW1vdW50KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBTdXBwb3J0IG1ldGhvZHMgYW5kIGNvbnN0YW50cworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAKKyAgICAvKioKKyAgICAgKiBUaGUgc3RhcnQgeWVhciBvZiB0aGUgQ2hpbmVzZSBjYWxlbmRhciwgdGhlIDYxc3QgeWVhciBvZiB0aGUgcmVpZ24KKyAgICAgKiBvZiBIdWFuZyBEaS4gIFNvbWUgc291cmNlcyB1c2UgdGhlIGZpcnN0IHllYXIgb2YgaGlzIHJlaWduLAorICAgICAqIHJlc3VsdGluZyBpbiBFWFRFTkRFRF9ZRUFSIHZhbHVlcyA2MCB5ZWFycyBncmVhdGVyIGFuZCBFUkEgKGN5Y2xlKQorICAgICAqIHZhbHVlcyBvbmUgZ3JlYXRlci4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0hJTkVTRV9FUE9DSF9ZRUFSID0gLTI2MzY7IC8vIEdyZWdvcmlhbiB5ZWFyCisKKyAgICAvKioKKyAgICAgKiBUaGUgb2Zmc2V0IGZyb20gR01UIGluIG1pbGxpc2Vjb25kcyBhdCB3aGljaCB3ZSBwZXJmb3JtIGFzdHJvbm9taWNhbAorICAgICAqIGNvbXB1dGF0aW9ucy4gIFNvbWUgc291cmNlcyB1c2UgYSBkaWZmZXJlbnQgaGlzdG9yaWNhbGx5IGFjY3VyYXRlCisgICAgICogb2Zmc2V0IG9mIEdNVCs3OjQ1OjQwIGZvciB5ZWFycyBiZWZvcmUgMTkyOTsgd2UgZG8gbm90IGRvIHRoaXMuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBDSElOQV9PRkZTRVQgPSA4Kk9ORV9IT1VSOworCisgICAgLyoqCisgICAgICogVmFsdWUgdG8gYmUgYWRkZWQgb3Igc3VidHJhY3RlZCBmcm9tIHRoZSBsb2NhbCBkYXlzIG9mIGEgbmV3IG1vb24gdG8KKyAgICAgKiBnZXQgY2xvc2UgdG8gdGhlIG5leHQgb3IgcHJpb3IgbmV3IG1vb24sIGJ1dCBub3QgY3Jvc3MgaXQuICBNdXN0IGJlCisgICAgICogPj0gMSBhbmQgPCBDYWxlbmRhckFzdHJvbm9tZXIuU1lOT0RJQ19NT05USC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1lOT0RJQ19HQVAgPSAyNTsKKworICAgIC8qKgorICAgICAqIENvbnZlcnQgbG9jYWwgZGF5cyB0byBVVEMgZXBvY2ggbWlsbGlzZWNvbmRzLgorICAgICAqIEBwYXJhbSBkYXlzIGRheXMgYWZ0ZXIgSmFudWFyeSAxLCAxOTcwIDA6MDAgQXNpYS9TaGFuZ2hhaQorICAgICAqIEByZXR1cm4gbWlsbGlzZWNvbmRzIGFmdGVyIEphbnVhcnkgMSwgMTk3MCAwOjAwIEdNVAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgZGF5c1RvTWlsbGlzKGludCBkYXlzKSB7CisgICAgICAgIHJldHVybiAoZGF5cyAqIE9ORV9EQVkpIC0gQ0hJTkFfT0ZGU0VUOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgVVRDIGVwb2NoIG1pbGxpc2Vjb25kcyB0byBsb2NhbCBkYXlzLgorICAgICAqIEBwYXJhbSBtaWxsaXMgbWlsbGlzZWNvbmRzIGFmdGVyIEphbnVhcnkgMSwgMTk3MCAwOjAwIEdNVAorICAgICAqIEByZXR1cm4gZGF5cyBhZnRlciBKYW51YXJ5IDEsIDE5NzAgMDowMCBBc2lhL1NoYW5naGFpCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IG1pbGxpc1RvRGF5cyhsb25nIG1pbGxpcykgeworICAgICAgICByZXR1cm4gKGludCkgZmxvb3JEaXZpZGUobWlsbGlzICsgQ0hJTkFfT0ZGU0VULCBPTkVfREFZKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEFzdHJvbm9taWNhbCBjb21wdXRhdGlvbnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbWFqb3Igc29sYXIgdGVybSBvbiBvciBhZnRlciBEZWNlbWJlciAxNSBvZiB0aGUgZ2l2ZW4KKyAgICAgKiBHcmVnb3JpYW4geWVhciwgdGhhdCBpcywgdGhlIHdpbnRlciBzb2xzdGljZSBvZiB0aGUgZ2l2ZW4geWVhci4KKyAgICAgKiBDb21wdXRhdGlvbnMgYXJlIHJlbGF0aXZlIHRvIEFzaWEvU2hhbmdoYWkgdGltZSB6b25lLgorICAgICAqIEBwYXJhbSBneWVhciBhIEdyZWdvcmlhbiB5ZWFyCisgICAgICogQHJldHVybiBkYXlzIGFmdGVyIEphbnVhcnkgMSwgMTk3MCAwOjAwIEFzaWEvU2hhbmdoYWkgb2YgdGhlCisgICAgICogd2ludGVyIHNvbHN0aWNlIG9mIHRoZSBnaXZlbiB5ZWFyCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgd2ludGVyU29sc3RpY2UoaW50IGd5ZWFyKSB7CisKKyAgICAgICAgbG9uZyBjYWNoZVZhbHVlID0gd2ludGVyU29sc3RpY2VDYWNoZS5nZXQoZ3llYXIpOworCisgICAgICAgIGlmIChjYWNoZVZhbHVlID09IENhbGVuZGFyQ2FjaGUuRU1QVFkpIHsKKyAgICAgICAgICAgIC8vIEluIGJvb2tzIERlY2VtYmVyIDE1IGlzIHVzZWQsIGJ1dCBpdCBmYWlscyBmb3Igc29tZSB5ZWFycworICAgICAgICAgICAgLy8gdXNpbmcgb3VyIGFsZ29yaXRobXMsIGUuZy46IDEyOTggMTM5MSAxNDkyIDE1NTMgMTU2MC4gIFRoYXQKKyAgICAgICAgICAgIC8vIGlzLCB3aW50ZXJTb2xzdGljZSgxMjk4KSBzdGFydHMgc2VhcmNoIGF0IERlYyAxNCAwODowMDowMAorICAgICAgICAgICAgLy8gUFNUIDEyOTggd2l0aCBhIGZpbmFsIHJlc3VsdCBvZiBEZWMgMTQgMTA6MzE6NTkgUFNUIDEyOTkuCisgICAgICAgICAgICBsb25nIG1zID0gZGF5c1RvTWlsbGlzKGNvbXB1dGVHcmVnb3JpYW5Nb250aFN0YXJ0KGd5ZWFyLCBERUNFTUJFUikgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxIC0gRVBPQ0hfSlVMSUFOX0RBWSk7CisgICAgICAgICAgICBhc3Ryby5zZXRUaW1lKG1zKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gV2ludGVyIHNvbHN0aWNlIGlzIDI3MCBkZWdyZWVzIHNvbGFyIGxvbmdpdHVkZSBha2EgRG9uZ3poaQorICAgICAgICAgICAgbG9uZyBzb2xhckxvbmcgPSBhc3Ryby5nZXRTdW5UaW1lKENhbGVuZGFyQXN0cm9ub21lci5XSU5URVJfU09MU1RJQ0UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSk7CisgICAgICAgICAgICBjYWNoZVZhbHVlID0gbWlsbGlzVG9EYXlzKHNvbGFyTG9uZyk7CisgICAgICAgICAgICB3aW50ZXJTb2xzdGljZUNhY2hlLnB1dChneWVhciwgY2FjaGVWYWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChpbnQpIGNhY2hlVmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjbG9zZXN0IG5ldyBtb29uIHRvIHRoZSBnaXZlbiBkYXRlLCBzZWFyY2hpbmcgZWl0aGVyCisgICAgICogZm9yd2FyZCBvciBiYWNrd2FyZCBpbiB0aW1lLgorICAgICAqIEBwYXJhbSBkYXlzIGRheXMgYWZ0ZXIgSmFudWFyeSAxLCAxOTcwIDA6MDAgQXNpYS9TaGFuZ2hhaQorICAgICAqIEBwYXJhbSBhZnRlciBpZiB0cnVlLCBzZWFyY2ggZm9yIGEgbmV3IG1vb24gb24gb3IgYWZ0ZXIgdGhlIGdpdmVuCisgICAgICogZGF0ZTsgb3RoZXJ3aXNlLCBzZWFyY2ggZm9yIGEgbmV3IG1vb24gYmVmb3JlIGl0CisgICAgICogQHJldHVybiBkYXlzIGFmdGVyIEphbnVhcnkgMSwgMTk3MCAwOjAwIEFzaWEvU2hhbmdoYWkgb2YgdGhlIG5lYXJlc3QKKyAgICAgKiBuZXcgbW9vbiBhZnRlciBvciBiZWZvcmUgPGNvZGU+ZGF5czwvY29kZT4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBuZXdNb29uTmVhcihpbnQgZGF5cywgYm9vbGVhbiBhZnRlcikgeworICAgICAgICAKKyAgICAgICAgYXN0cm8uc2V0VGltZShkYXlzVG9NaWxsaXMoZGF5cykpOworICAgICAgICBsb25nIG5ld01vb24gPSBhc3Ryby5nZXRNb29uVGltZShDYWxlbmRhckFzdHJvbm9tZXIuTkVXX01PT04sIGFmdGVyKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBtaWxsaXNUb0RheXMobmV3TW9vbik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBuZWFyZXN0IGludGVnZXIgbnVtYmVyIG9mIHN5bm9kaWMgbW9udGhzIGJldHdlZW4KKyAgICAgKiB0d28gZGF0ZXMuCisgICAgICogQHBhcmFtIGRheTEgZGF5cyBhZnRlciBKYW51YXJ5IDEsIDE5NzAgMDowMCBBc2lhL1NoYW5naGFpCisgICAgICogQHBhcmFtIGRheTIgZGF5cyBhZnRlciBKYW51YXJ5IDEsIDE5NzAgMDowMCBBc2lhL1NoYW5naGFpCisgICAgICogQHJldHVybiB0aGUgbmVhcmVzdCBpbnRlZ2VyIG51bWJlciBvZiBtb250aHMgYmV0d2VlbiBkYXkxIGFuZCBkYXkyCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgc3lub2RpY01vbnRoc0JldHdlZW4oaW50IGRheTEsIGludCBkYXkyKSB7CisgICAgICAgIHJldHVybiAoaW50KSBNYXRoLnJvdW5kKChkYXkyIC0gZGF5MSkgLyBDYWxlbmRhckFzdHJvbm9tZXIuU1lOT0RJQ19NT05USCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBtYWpvciBzb2xhciB0ZXJtIG9uIG9yIGJlZm9yZSBhIGdpdmVuIGRhdGUuICBUaGlzCisgICAgICogd2lsbCBiZSBhbiBpbnRlZ2VyIGZyb20gMS4uMTIsIHdpdGggMSBjb3JyZXNwb25kaW5nIHRvIDMzMCBkZWdyZWVzLAorICAgICAqIDIgdG8gMCBkZWdyZWVzLCAzIHRvIDMwIGRlZ3JlZXMsLi4uLCBhbmQgMTIgdG8gMzAwIGRlZ3JlZXMuCisgICAgICogQHBhcmFtIGRheXMgZGF5cyBhZnRlciBKYW51YXJ5IDEsIDE5NzAgMDowMCBBc2lhL1NoYW5naGFpCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbWFqb3JTb2xhclRlcm0oaW50IGRheXMpIHsKKyAgICAgICAgCisgICAgICAgIGFzdHJvLnNldFRpbWUoZGF5c1RvTWlsbGlzKGRheXMpKTsKKworICAgICAgICAvLyBDb21wdXRlIChmbG9vcihzb2xhckxvbmdpdHVkZSAvIChwaS82KSkgKyAyKSAlIDEyCisgICAgICAgIGludCB0ZXJtID0gKChpbnQpIE1hdGguZmxvb3IoNiAqIGFzdHJvLmdldFN1bkxvbmdpdHVkZSgpIC8gTWF0aC5QSSkgKyAyKSAlIDEyOworICAgICAgICBpZiAodGVybSA8IDEpIHsKKyAgICAgICAgICAgIHRlcm0gKz0gMTI7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRlcm07CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIG1vbnRoIGxhY2tzIGEgbWFqb3Igc29sYXIgdGVybS4KKyAgICAgKiBAcGFyYW0gbmV3TW9vbiBkYXlzIGFmdGVyIEphbnVhcnkgMSwgMTk3MCAwOjAwIEFzaWEvU2hhbmdoYWkgb2YgYSBuZXcKKyAgICAgKiBtb29uCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGhhc05vTWFqb3JTb2xhclRlcm0oaW50IG5ld01vb24pIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBtYWpvclNvbGFyVGVybShuZXdNb29uKSA9PQorICAgICAgICAgICAgbWFqb3JTb2xhclRlcm0obmV3TW9vbk5lYXIobmV3TW9vbiArIFNZTk9ESUNfR0FQLCB0cnVlKSk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBUaW1lIHRvIGZpZWxkcworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlcmUgaXMgYSBsZWFwIG1vbnRoIG9uIG9yIGFmdGVyIG1vbnRoIG5ld01vb24xIGFuZAorICAgICAqIGF0IG9yIGJlZm9yZSBtb250aCBuZXdNb29uMi4KKyAgICAgKiBAcGFyYW0gbmV3TW9vbjEgZGF5cyBhZnRlciBKYW51YXJ5IDEsIDE5NzAgMDowMCBBc2lhL1NoYW5naGFpIG9mIGEKKyAgICAgKiBuZXcgbW9vbgorICAgICAqIEBwYXJhbSBuZXdNb29uMiBkYXlzIGFmdGVyIEphbnVhcnkgMSwgMTk3MCAwOjAwIEFzaWEvU2hhbmdoYWkgb2YgYQorICAgICAqIG5ldyBtb29uCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGlzTGVhcE1vbnRoQmV0d2VlbihpbnQgbmV3TW9vbjEsIGludCBuZXdNb29uMikgeworCisgICAgICAgIC8vIFRoaXMgaXMgb25seSBuZWVkZWQgdG8gZGVidWcgdGhlIHRpbWVPZkFuZ2xlIGRpdmVyZ2VuY2UgYnVnLgorICAgICAgICAvLyBSZW1vdmUgdGhpcyBsYXRlci4gTGl1IDExLzkvMDAKKyAgICAgICAgLy8gREVCVUcKKyAgICAgICAgaWYgKHN5bm9kaWNNb250aHNCZXR3ZWVuKG5ld01vb24xLCBuZXdNb29uMikgPj0gNTApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImlzTGVhcE1vbnRoQmV0d2VlbigiICsgbmV3TW9vbjEgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLCAiICsgbmV3TW9vbjIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKTogSW52YWxpZCBwYXJhbWV0ZXJzIik7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gKG5ld01vb24yID49IG5ld01vb24xKSAmJgorICAgICAgICAgICAgKGlzTGVhcE1vbnRoQmV0d2VlbihuZXdNb29uMSwgbmV3TW9vbk5lYXIobmV3TW9vbjIgLSBTWU5PRElDX0dBUCwgZmFsc2UpKSB8fAorICAgICAgICAgICAgIGhhc05vTWFqb3JTb2xhclRlcm0obmV3TW9vbjIpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBDYWxlbmRhciB0byBjb21wdXRlIHNldmVyYWwgZmllbGRzIHNwZWNpZmljIHRvIHRoZSBDaGluZXNlCisgICAgICogY2FsZW5kYXIgc3lzdGVtLiAgVGhlc2UgYXJlOgorICAgICAqCisgICAgICogPHVsPjxsaT5FUkEKKyAgICAgKiA8bGk+WUVBUgorICAgICAqIDxsaT5NT05USAorICAgICAqIDxsaT5EQVlfT0ZfTU9OVEgKKyAgICAgKiA8bGk+REFZX09GX1lFQVIKKyAgICAgKiA8bGk+RVhURU5ERURfWUVBUjwvdWw+CisgICAgICogCisgICAgICogVGhlIERBWV9PRl9XRUVLIGFuZCBET1dfTE9DQUwgZmllbGRzIGFyZSBhbHJlYWR5IHNldCB3aGVuIHRoaXMKKyAgICAgKiBtZXRob2QgaXMgY2FsbGVkLiAgVGhlIGdldEdyZWdvcmlhblh4eCgpIG1ldGhvZHMgcmV0dXJuIEdyZWdvcmlhbgorICAgICAqIGNhbGVuZGFyIGVxdWl2YWxlbnRzIGZvciB0aGUgZ2l2ZW4gSnVsaWFuIGRheS4KKyAgICAgKgorICAgICAqIDxwPkNvbXB1dGUgdGhlIENoaW5lc2VDYWxlbmRhci1zcGVjaWZpYyBmaWVsZCBJU19MRUFQX01PTlRILgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZUNvbXB1dGVGaWVsZHMoaW50IGp1bGlhbkRheSkgeworCisgICAgICAgIGNvbXB1dGVDaGluZXNlRmllbGRzKGp1bGlhbkRheSAtIEVQT0NIX0pVTElBTl9EQVksIC8vIGxvY2FsIGRheXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0R3JlZ29yaWFuWWVhcigpLCBnZXRHcmVnb3JpYW5Nb250aCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKTsgLy8gc2V0IGFsbCBmaWVsZHMKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wdXRlIGZpZWxkcyBmb3IgdGhlIENoaW5lc2UgY2FsZW5kYXIgc3lzdGVtLiAgVGhpcyBtZXRob2QgY2FuCisgICAgICogZWl0aGVyIHNldCBhbGwgcmVsZXZhbnQgZmllbGRzLCBhcyByZXF1aXJlZCBieQorICAgICAqIDxjb2RlPmhhbmRsZUNvbXB1dGVGaWVsZHMoKTwvY29kZT4sIG9yIGl0IGNhbiBqdXN0IHNldCB0aGUgTU9OVEggYW5kCisgICAgICogSVNfTEVBUF9NT05USCBmaWVsZHMsIGFzIHJlcXVpcmVkIGJ5CisgICAgICogPGNvZGU+aGFuZGxlQ29tcHV0ZU1vbnRoU3RhcnQoKTwvY29kZT4uCisgICAgICoKKyAgICAgKiA8cD5BcyBhIHNpZGUgZWZmZWN0LCB0aGlzIG1ldGhvZCBzZXRzIHtAbGluayAjaXNMZWFwWWVhcn0uCisgICAgICogQHBhcmFtIGRheXMgZGF5cyBhZnRlciBKYW51YXJ5IDEsIDE5NzAgMDowMCBBc2lhL1NoYW5naGFpIG9mIHRoZQorICAgICAqIGRhdGUgdG8gY29tcHV0ZSBmaWVsZHMgZm9yCisgICAgICogQHBhcmFtIGd5ZWFyIHRoZSBHcmVnb3JpYW4geWVhciBvZiB0aGUgZ2l2ZW4gZGF0ZQorICAgICAqIEBwYXJhbSBnbW9udGggdGhlIEdyZWdvcmlhbiBtb250aCBvZiB0aGUgZ2l2ZW4gZGF0ZQorICAgICAqIEBwYXJhbSBzZXRBbGxGaWVsZHMgaWYgdHJ1ZSwgc2V0IHRoZSBFWFRFTkRFRF9ZRUFSLCBFUkEsIFlFQVIsCisgICAgICogREFZX09GX01PTlRILCBhbmQgREFZX09GX1lFQVIgZmllbGRzLiAgSW4gZWl0aGVyIGNhc2Ugc2V0IHRoZSBNT05USAorICAgICAqIGFuZCBJU19MRUFQX01PTlRIIGZpZWxkcy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgY29tcHV0ZUNoaW5lc2VGaWVsZHMoaW50IGRheXMsIGludCBneWVhciwgaW50IGdtb250aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBzZXRBbGxGaWVsZHMpIHsKKworICAgICAgICAvLyBGaW5kIHRoZSB3aW50ZXIgc29sc3RpY2VzIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIHRhcmdldCBkYXRlLgorICAgICAgICAvLyBUaGVzZSBkZWZpbmUgdGhlIGJvdW5kYXJpZXMgb2YgdGhpcyBDaGluZXNlIHllYXIsIHNwZWNpZmljYWxseSwKKyAgICAgICAgLy8gdGhlIHBvc2l0aW9uIG9mIG1vbnRoIDExLCB3aGljaCBhbHdheXMgY29udGFpbnMgdGhlIHNvbHN0aWNlLgorICAgICAgICAvLyBXZSB3YW50IHNvbHN0aWNlQmVmb3JlIDw9IGRhdGUgPCBzb2xzdGljZUFmdGVyLgorICAgICAgICBpbnQgc29sc3RpY2VCZWZvcmU7CisgICAgICAgIGludCBzb2xzdGljZUFmdGVyID0gd2ludGVyU29sc3RpY2UoZ3llYXIpOworICAgICAgICBpZiAoZGF5cyA8IHNvbHN0aWNlQWZ0ZXIpIHsKKyAgICAgICAgICAgIHNvbHN0aWNlQmVmb3JlID0gd2ludGVyU29sc3RpY2UoZ3llYXIgLSAxKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHNvbHN0aWNlQmVmb3JlID0gc29sc3RpY2VBZnRlcjsKKyAgICAgICAgICAgIHNvbHN0aWNlQWZ0ZXIgPSB3aW50ZXJTb2xzdGljZShneWVhciArIDEpOworICAgICAgICB9CisKKyAgICAgICAgLy8gRmluZCB0aGUgc3RhcnQgb2YgdGhlIG1vbnRoIGFmdGVyIG1vbnRoIDExLiAgVGhpcyB3aWxsIGJlIGVpdGhlcgorICAgICAgICAvLyB0aGUgcHJpb3IgbW9udGggMTIgb3IgbGVhcCBtb250aCAxMSAodmVyeSByYXJlKS4gIEFsc28gZmluZCB0aGUKKyAgICAgICAgLy8gc3RhcnQgb2YgdGhlIGZvbGxvd2luZyBtb250aCAxMS4KKyAgICAgICAgaW50IGZpcnN0TW9vbiA9IG5ld01vb25OZWFyKHNvbHN0aWNlQmVmb3JlICsgMSwgdHJ1ZSk7CisgICAgICAgIGludCBsYXN0TW9vbiA9IG5ld01vb25OZWFyKHNvbHN0aWNlQWZ0ZXIgKyAxLCBmYWxzZSk7CisgICAgICAgIGludCB0aGlzTW9vbiA9IG5ld01vb25OZWFyKGRheXMgKyAxLCBmYWxzZSk7IC8vIFN0YXJ0IG9mIHRoaXMgbW9udGgKKyAgICAgICAgLy8gTm90ZTogaXNMZWFwWWVhciBpcyBhIG1lbWJlciB2YXJpYWJsZQorICAgICAgICBpc0xlYXBZZWFyID0gc3lub2RpY01vbnRoc0JldHdlZW4oZmlyc3RNb29uLCBsYXN0TW9vbikgPT0gMTI7CisKKyAgICAgICAgaW50IG1vbnRoID0gc3lub2RpY01vbnRoc0JldHdlZW4oZmlyc3RNb29uLCB0aGlzTW9vbik7CisgICAgICAgIGlmIChpc0xlYXBZZWFyICYmIGlzTGVhcE1vbnRoQmV0d2VlbihmaXJzdE1vb24sIHRoaXNNb29uKSkgeworICAgICAgICAgICAgbW9udGgtLTsKKyAgICAgICAgfQorICAgICAgICBpZiAobW9udGggPCAxKSB7CisgICAgICAgICAgICBtb250aCArPSAxMjsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gaXNMZWFwTW9udGggPSBpc0xlYXBZZWFyICYmCisgICAgICAgICAgICBoYXNOb01ham9yU29sYXJUZXJtKHRoaXNNb29uKSAmJgorICAgICAgICAgICAgIWlzTGVhcE1vbnRoQmV0d2VlbihmaXJzdE1vb24sIG5ld01vb25OZWFyKHRoaXNNb29uIC0gU1lOT0RJQ19HQVAsIGZhbHNlKSk7CisKKyAgICAgICAgaW50ZXJuYWxTZXQoTU9OVEgsIG1vbnRoLTEpOyAvLyBDb252ZXJ0IGZyb20gMS1iYXNlZCB0byAwLWJhc2VkCisgICAgICAgIGludGVybmFsU2V0KElTX0xFQVBfTU9OVEgsIGlzTGVhcE1vbnRoPzE6MCk7CisKKyAgICAgICAgaWYgKHNldEFsbEZpZWxkcykgeworCisgICAgICAgICAgICBpbnQgeWVhciA9IGd5ZWFyIC0gQ0hJTkVTRV9FUE9DSF9ZRUFSOworICAgICAgICAgICAgaWYgKG1vbnRoIDwgMTEgfHwKKyAgICAgICAgICAgICAgICBnbW9udGggPj0gSlVMWSkgeworICAgICAgICAgICAgICAgIHllYXIrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBkYXlPZk1vbnRoID0gZGF5cyAtIHRoaXNNb29uICsgMTsKKworICAgICAgICAgICAgaW50ZXJuYWxTZXQoRVhURU5ERURfWUVBUiwgeWVhcik7CisKKyAgICAgICAgICAgIC8vIDAtPjAsNjAgIDEtPjEsMSAgNjAtPjEsNjAgIDYxLT4yLDEgIGV0Yy4KKyAgICAgICAgICAgIGludFtdIHllYXJPZkN5Y2xlID0gbmV3IGludFsxXTsKKyAgICAgICAgICAgIGludCBjeWNsZSA9IGZsb29yRGl2aWRlKHllYXItMSwgNjAsIHllYXJPZkN5Y2xlKTsKKyAgICAgICAgICAgIGludGVybmFsU2V0KEVSQSwgY3ljbGUrMSk7CisgICAgICAgICAgICBpbnRlcm5hbFNldChZRUFSLCB5ZWFyT2ZDeWNsZVswXSsxKTsKKworICAgICAgICAgICAgaW50ZXJuYWxTZXQoREFZX09GX01PTlRILCBkYXlPZk1vbnRoKTsKKworICAgICAgICAgICAgLy8gRGF5cyB3aWxsIGJlIGJlZm9yZSB0aGUgZmlyc3QgbmV3IHllYXIgd2UgY29tcHV0ZSBpZiB0aGlzCisgICAgICAgICAgICAvLyBkYXRlIGlzIGluIG1vbnRoIDExLCBsZWFwIDExLCAxMi4gIFRoZXJlIGlzIG5ldmVyIGEgbGVhcCAxMi4KKyAgICAgICAgICAgIC8vIE5ldyB5ZWFyIGNvbXB1dGF0aW9ucyBhcmUgY2FjaGVkIHNvIHRoaXMgc2hvdWxkIGJlIGNoZWFwIGluCisgICAgICAgICAgICAvLyB0aGUgbG9uZyBydW4uCisgICAgICAgICAgICBpbnQgbmV3WWVhciA9IG5ld1llYXIoZ3llYXIpOworICAgICAgICAgICAgaWYgKGRheXMgPCBuZXdZZWFyKSB7CisgICAgICAgICAgICAgICAgbmV3WWVhciA9IG5ld1llYXIoZ3llYXItMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnRlcm5hbFNldChEQVlfT0ZfWUVBUiwgZGF5cyAtIG5ld1llYXIgKyAxKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gRmllbGRzIHRvIHRpbWUKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgQ2hpbmVzZSBuZXcgeWVhciBvZiB0aGUgZ2l2ZW4gR3JlZ29yaWFuIHllYXIuCisgICAgICogQHBhcmFtIGd5ZWFyIGEgR3JlZ29yaWFuIHllYXIKKyAgICAgKiBAcmV0dXJuIGRheXMgYWZ0ZXIgSmFudWFyeSAxLCAxOTcwIDA6MDAgQXNpYS9TaGFuZ2hhaSBvZiB0aGUKKyAgICAgKiBDaGluZXNlIG5ldyB5ZWFyIG9mIHRoZSBnaXZlbiB5ZWFyICh0aGlzIHdpbGwgYmUgYSBuZXcgbW9vbikKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBuZXdZZWFyKGludCBneWVhcikgeworCisgICAgICAgIGxvbmcgY2FjaGVWYWx1ZSA9IG5ld1llYXJDYWNoZS5nZXQoZ3llYXIpOworCisgICAgICAgIGlmIChjYWNoZVZhbHVlID09IENhbGVuZGFyQ2FjaGUuRU1QVFkpIHsKKworICAgICAgICAgICAgaW50IHNvbHN0aWNlQmVmb3JlPSB3aW50ZXJTb2xzdGljZShneWVhciAtIDEpOworICAgICAgICAgICAgaW50IHNvbHN0aWNlQWZ0ZXIgPSB3aW50ZXJTb2xzdGljZShneWVhcik7CisgICAgICAgICAgICBpbnQgbmV3TW9vbjEgPSBuZXdNb29uTmVhcihzb2xzdGljZUJlZm9yZSArIDEsIHRydWUpOworICAgICAgICAgICAgaW50IG5ld01vb24yID0gbmV3TW9vbk5lYXIobmV3TW9vbjEgKyBTWU5PRElDX0dBUCwgdHJ1ZSk7CisgICAgICAgICAgICBpbnQgbmV3TW9vbjExID0gbmV3TW9vbk5lYXIoc29sc3RpY2VBZnRlciArIDEsIGZhbHNlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHN5bm9kaWNNb250aHNCZXR3ZWVuKG5ld01vb24xLCBuZXdNb29uMTEpID09IDEyICYmCisgICAgICAgICAgICAgICAgKGhhc05vTWFqb3JTb2xhclRlcm0obmV3TW9vbjEpIHx8IGhhc05vTWFqb3JTb2xhclRlcm0obmV3TW9vbjIpKSkgeworICAgICAgICAgICAgICAgIGNhY2hlVmFsdWUgPSBuZXdNb29uTmVhcihuZXdNb29uMiArIFNZTk9ESUNfR0FQLCB0cnVlKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY2FjaGVWYWx1ZSA9IG5ld01vb24yOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBuZXdZZWFyQ2FjaGUucHV0KGd5ZWFyLCBjYWNoZVZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKGludCkgY2FjaGVWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIEp1bGlhbiBkYXkgbnVtYmVyIG9mIGRheSBiZWZvcmUgdGhlIGZpcnN0IGRheSBvZiB0aGUKKyAgICAgKiBnaXZlbiBtb250aCBpbiB0aGUgZ2l2ZW4gZXh0ZW5kZWQgeWVhci4KKyAgICAgKiAKKyAgICAgKiA8cD5Ob3RlOiBUaGlzIG1ldGhvZCByZWFkcyB0aGUgSVNfTEVBUF9NT05USCBmaWVsZCB0byBkZXRlcm1pbmUKKyAgICAgKiB3aGV0aGVyIHRoZSBnaXZlbiBtb250aCBpcyBhIGxlYXAgbW9udGguCisgICAgICogQHBhcmFtIGV5ZWFyIHRoZSBleHRlbmRlZCB5ZWFyCisgICAgICogQHBhcmFtIG1vbnRoIHRoZSB6ZXJvLWJhc2VkIG1vbnRoLiAgVGhlIG1vbnRoIGlzIGFsc28gZGV0ZXJtaW5lZAorICAgICAqIGJ5IHJlYWRpbmcgdGhlIElTX0xFQVBfTU9OVEggZmllbGQuCisgICAgICogQHBhcmFtIHJldHVybiB0aGUgSnVsaWFuIGRheSBudW1iZXIgb2YgdGhlIGRheSBiZWZvcmUgdGhlIGZpcnN0CisgICAgICogZGF5IG9mIHRoZSBnaXZlbiBtb250aCBhbmQgeWVhcgorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlQ29tcHV0ZU1vbnRoU3RhcnQoaW50IGV5ZWFyLCBpbnQgbW9udGgsIGJvb2xlYW4gdXNlTW9udGgpIHsKKworICAgICAgICAvLyBJZiB0aGUgbW9udGggaXMgb3V0IG9mIHJhbmdlLCBhZGp1c3QgaXQgaW50byByYW5nZSwgYW5kCisgICAgICAgIC8vIG1vZGlmeSB0aGUgZXh0ZW5kZWQgeWVhciB2YWx1ZSBhY2NvcmRpbmdseS4KKyAgICAgICAgaWYgKG1vbnRoIDwgMCB8fCBtb250aCA+IDExKSB7CisgICAgICAgICAgICBpbnRbXSByZW0gPSBuZXcgaW50WzFdOworICAgICAgICAgICAgZXllYXIgKz0gZmxvb3JEaXZpZGUobW9udGgsIDEyLCByZW0pOworICAgICAgICAgICAgbW9udGggPSByZW1bMF07CisgICAgICAgIH0KKworICAgICAgICBpbnQgZ3llYXIgPSBleWVhciArIENISU5FU0VfRVBPQ0hfWUVBUiAtIDE7IC8vIEdyZWdvcmlhbiB5ZWFyCisgICAgICAgIGludCBuZXdZZWFyID0gbmV3WWVhcihneWVhcik7CisgICAgICAgIGludCBuZXdNb29uID0gbmV3TW9vbk5lYXIobmV3WWVhciArIG1vbnRoICogMjksIHRydWUpOworICAgICAgICAKKyAgICAgICAgaW50IGp1bGlhbkRheSA9IG5ld01vb24gKyBFUE9DSF9KVUxJQU5fREFZOworCisgICAgICAgIC8vIFNhdmUgZmllbGRzIGZvciBsYXRlciByZXN0b3JhdGlvbgorICAgICAgICBpbnQgc2F2ZU1vbnRoID0gaW50ZXJuYWxHZXQoTU9OVEgpOworICAgICAgICBpbnQgc2F2ZUlzTGVhcE1vbnRoID0gaW50ZXJuYWxHZXQoSVNfTEVBUF9NT05USCk7CisKKyAgICAgICAgLy8gSWdub3JlIElTX0xFQVBfTU9OVEggZmllbGQgaWYgdXNlTW9udGggaXMgZmFsc2UKKyAgICAgICAgaW50IGlzTGVhcE1vbnRoID0gdXNlTW9udGggPyBzYXZlSXNMZWFwTW9udGggOiAwOworCisgICAgICAgIGNvbXB1dGVHcmVnb3JpYW5GaWVsZHMoanVsaWFuRGF5KTsKKyAgICAgICAgCisgICAgICAgIC8vIFRoaXMgd2lsbCBtb2RpZnkgdGhlIE1PTlRIIGFuZCBJU19MRUFQX01PTlRIIGZpZWxkcyAob25seSkKKyAgICAgICAgY29tcHV0ZUNoaW5lc2VGaWVsZHMobmV3TW9vbiwgZ2V0R3JlZ29yaWFuWWVhcigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRHcmVnb3JpYW5Nb250aCgpLCBmYWxzZSk7ICAgICAgICAKKworICAgICAgICBpZiAobW9udGggIT0gaW50ZXJuYWxHZXQoTU9OVEgpIHx8CisgICAgICAgICAgICBpc0xlYXBNb250aCAhPSBpbnRlcm5hbEdldChJU19MRUFQX01PTlRIKSkgeworICAgICAgICAgICAgbmV3TW9vbiA9IG5ld01vb25OZWFyKG5ld01vb24gKyBTWU5PRElDX0dBUCwgdHJ1ZSk7CisgICAgICAgICAgICBqdWxpYW5EYXkgPSBuZXdNb29uICsgRVBPQ0hfSlVMSUFOX0RBWTsKKyAgICAgICAgfQorCisgICAgICAgIGludGVybmFsU2V0KE1PTlRILCBzYXZlTW9udGgpOworICAgICAgICBpbnRlcm5hbFNldChJU19MRUFQX01PTlRILCBzYXZlSXNMZWFwTW9udGgpOworCisgICAgICAgIHJldHVybiBqdWxpYW5EYXkgLSAxOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL0NvbXBhY3RCeXRlQXJyYXkuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0NvbXBhY3RCeXRlQXJyYXkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hMzAwMzNhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ29tcGFjdEJ5dGVBcnJheS5qYXZhCkBAIC0wLDAgKzEsMzU3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvdXRpbC9Db21wYWN0Qnl0ZUFycmF5LmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDgvMTIgMjA6MjY6MzkgJCAKKyAqICRSZXZpc2lvbjogMS44ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKworLyoqCisgKiBjbGFzcyBDb21wYWN0QVR5cGVBcnJheSA6IHVzZSBvbmx5IG9uIHByaW1pdGl2ZSBkYXRhIHR5cGVzCisgKiBQcm92aWRlcyBhIGNvbXBhY3Qgd2F5IHRvIHN0b3JlIGluZm9ybWF0aW9uIHRoYXQgaXMgaW5kZXhlZCBieSBVbmljb2RlCisgKiB2YWx1ZXMsIHN1Y2ggYXMgY2hhcmFjdGVyIHByb3BlcnRpZXMsIHR5cGVzLCBrZXlib2FyZCB2YWx1ZXMsIGV0Yy5UaGlzCisgKiBpcyB2ZXJ5IHVzZWZ1bCB3aGVuIHlvdSBoYXZlIGEgYmxvY2sgb2YgVW5pY29kZSBkYXRhIHRoYXQgY29udGFpbnMKKyAqIHNpZ25pZmljYW50IHZhbHVlcyB3aGlsZSB0aGUgcmVzdCBvZiB0aGUgVW5pY29kZSBkYXRhIGlzIHVudXNlZCBpbiB0aGUKKyAqIGFwcGxpY2F0aW9uIG9yIHdoZW4geW91IGhhdmUgYSBsb3Qgb2YgcmVkdW5kYW5jZSwgc3VjaCBhcyB3aGVyZSBhbGwgMjEsMDAwCisgKiBIYW4gaWRlb2dyYXBocyBoYXZlIHRoZSBzYW1lIHZhbHVlLiAgSG93ZXZlciwgbG9va3VwIGlzIG11Y2ggZmFzdGVyIHRoYW4gYQorICogaGFzaCB0YWJsZS4KKyAqIEEgY29tcGFjdCBhcnJheSBvZiBhbnkgcHJpbWl0aXZlIGRhdGEgdHlwZSBzZXJ2ZXMgdHdvIHB1cnBvc2VzOgorICogPFVMIHR5cGUgPSByb3VuZD4KKyAqICAgICA8TEk+RmFzdCBhY2Nlc3Mgb2YgdGhlIGluZGV4ZWQgdmFsdWVzLgorICogICAgIDxMST5TbWFsbGVyIG1lbW9yeSBmb290cHJpbnQuCisgKiA8L1VMPgorICogQSBjb21wYWN0IGFycmF5IGlzIGNvbXBvc2VkIG9mIGEgaW5kZXggYXJyYXkgYW5kIHZhbHVlIGFycmF5LiAgVGhlIGluZGV4CisgKiBhcnJheSBjb250YWlucyB0aGUgaW5kaWNpZXMgb2YgVW5pY29kZSBjaGFyYWN0ZXJzIHRvIHRoZSB2YWx1ZSBhcnJheS4KKyAqCisgKiBAc2VlICAgICAgICAgICAgICAgIENvbXBhY3RDaGFyQXJyYXkKKyAqIEB2ZXJzaW9uICAgICAgICAgICAgJFJldmlzaW9uOiAxLjggJAorICogQGF1dGhvciAgICAgICAgICAgICBIZWxlbmEgU2hpaAorICovCitwdWJsaWMgZmluYWwgY2xhc3MgQ29tcGFjdEJ5dGVBcnJheSBpbXBsZW1lbnRzIENsb25lYWJsZSB7CisKKyAgICAvKioKKyAgICAgKiBUaGUgdG90YWwgbnVtYmVyIG9mIFVuaWNvZGUgY2hhcmFjdGVycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljICBmaW5hbCBpbnQgVU5JQ09ERUNPVU5UID02NTUzNjsKKworICAgIC8qKgorICAgICAqIERlZmF1bHQgY29uc3RydWN0b3IgZm9yIENvbXBhY3RCeXRlQXJyYXksIHRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZQorICAgICAqIGNvbXBhY3QgYXJyYXkgaXMgMC4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ29tcGFjdEJ5dGVBcnJheSgpCisgICAgeworICAgICAgICB0aGlzKChieXRlKTApOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yIGZvciBDb21wYWN0Qnl0ZUFycmF5LgorICAgICAqIEBwYXJhbSBkZWZhdWx0VmFsdWUgdGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlIGNvbXBhY3QgYXJyYXkuCisgICAgICovCisgICAgcHVibGljIENvbXBhY3RCeXRlQXJyYXkoYnl0ZSBkZWZhdWx0VmFsdWUpCisgICAgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgdmFsdWVzID0gbmV3IGJ5dGVbVU5JQ09ERUNPVU5UXTsKKyAgICAgICAgaW5kaWNlcyA9IG5ldyBjaGFyW0lOREVYQ09VTlRdOworICAgICAgICBoYXNoZXMgPSBuZXcgaW50W0lOREVYQ09VTlRdOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgVU5JQ09ERUNPVU5UOyArK2kpIHsKKyAgICAgICAgICAgIHZhbHVlc1tpXSA9IGRlZmF1bHRWYWx1ZTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgSU5ERVhDT1VOVDsgKytpKSB7CisgICAgICAgICAgICBpbmRpY2VzW2ldID0gKGNoYXIpKGk8PEJMT0NLU0hJRlQpOworICAgICAgICAgICAgaGFzaGVzW2ldID0gMDsKKyAgICAgICAgfQorICAgICAgICBpc0NvbXBhY3QgPSBmYWxzZTsKKworICAgICAgICB0aGlzLmRlZmF1bHRWYWx1ZSA9IGRlZmF1bHRWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvciBmb3IgQ29tcGFjdEJ5dGVBcnJheS4KKyAgICAgKiBAcGFyYW0gaW5kZXhBcnJheSB0aGUgaW5kaWNpZXMgb2YgdGhlIGNvbXBhY3QgYXJyYXkuCisgICAgICogQHBhcmFtIG5ld1ZhbHVlcyB0aGUgdmFsdWVzIG9mIHRoZSBjb21wYWN0IGFycmF5LgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIElmIHRoZSBpbmRleCBpcyBvdXQgb2YgcmFuZ2UuCisgICAgICovCisgICAgcHVibGljIENvbXBhY3RCeXRlQXJyYXkoY2hhciBpbmRleEFycmF5W10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZSBuZXdWYWx1ZXNbXSkKKyAgICB7CisgICAgICAgIGludCBpOworICAgICAgICBpZiAoaW5kZXhBcnJheS5sZW5ndGggIT0gSU5ERVhDT1VOVCkKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkluZGV4IG91dCBvZiBib3VuZHMuIik7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBJTkRFWENPVU5UOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgaW5kZXggPSBpbmRleEFycmF5W2ldOworICAgICAgICAgICAgaWYgKChpbmRleCA8IDApIHx8IChpbmRleCA+PSBuZXdWYWx1ZXMubGVuZ3RoK0JMT0NLQ09VTlQpKQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkluZGV4IG91dCBvZiBib3VuZHMuIik7CisgICAgICAgIH0KKyAgICAgICAgaW5kaWNlcyA9IGluZGV4QXJyYXk7CisgICAgICAgIHZhbHVlcyA9IG5ld1ZhbHVlczsKKyAgICAgICAgaXNDb21wYWN0ID0gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvciBmb3IgQ29tcGFjdEJ5dGVBcnJheS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbmRleEFycmF5IHRoZSBSTEUtZW5jb2RlZCBpbmRpY2llcyBvZiB0aGUgY29tcGFjdCBhcnJheS4KKyAgICAgKiBAcGFyYW0gdmFsdWVBcnJheSB0aGUgUkxFLWVuY29kZWQgdmFsdWVzIG9mIHRoZSBjb21wYWN0IGFycmF5LgorICAgICAqCisgICAgICogQHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIGluZGV4IG9yIHZhbHVlIGFycmF5IGlzCisgICAgICogICAgICAgICAgdGhlIHdyb25nIHNpemUuCisgICAgICovCisgICAgcHVibGljIENvbXBhY3RCeXRlQXJyYXkoU3RyaW5nIGluZGV4QXJyYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlQXJyYXkpCisgICAgeworICAgICAgICB0aGlzKCBVdGlsaXR5LlJMRVN0cmluZ1RvQ2hhckFycmF5KGluZGV4QXJyYXkpLAorICAgICAgICAgICAgICBVdGlsaXR5LlJMRVN0cmluZ1RvQnl0ZUFycmF5KHZhbHVlQXJyYXkpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIG1hcHBlZCB2YWx1ZSBvZiBhIFVuaWNvZGUgY2hhcmFjdGVyLgorICAgICAqIEBwYXJhbSBpbmRleCB0aGUgY2hhcmFjdGVyIHRvIGdldCB0aGUgbWFwcGVkIHZhbHVlIHdpdGgKKyAgICAgKiBAcmV0dXJuIHRoZSBtYXBwZWQgdmFsdWUgb2YgdGhlIGdpdmVuIGNoYXJhY3RlcgorICAgICAqLworICAgIHB1YmxpYyBieXRlIGVsZW1lbnRBdChjaGFyIGluZGV4KQorICAgIHsKKyAgICAgICAgcmV0dXJuICh2YWx1ZXNbKGluZGljZXNbaW5kZXggPj4gQkxPQ0tTSElGVF0gJiAweEZGRkYpCisgICAgICAgICAgICAgICAgICAgICAgICsgKGluZGV4ICYgQkxPQ0tNQVNLKV0pOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBhIG5ldyB2YWx1ZSBmb3IgYSBVbmljb2RlIGNoYXJhY3Rlci4KKyAgICAgKiBTZXQgYXV0b21hdGljYWxseSBleHBhbmRzIHRoZSBhcnJheSBpZiBpdCBpcyBjb21wYWN0ZWQuCisgICAgICogQHBhcmFtIGluZGV4IHRoZSBjaGFyYWN0ZXIgdG8gc2V0IHRoZSBtYXBwZWQgdmFsdWUgd2l0aAorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgbmV3IG1hcHBlZCB2YWx1ZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEVsZW1lbnRBdChjaGFyIGluZGV4LCBieXRlIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKGlzQ29tcGFjdCkKKyAgICAgICAgICAgIGV4cGFuZCgpOworICAgICAgICB2YWx1ZXNbKGludClpbmRleF0gPSB2YWx1ZTsKKyAgICAgICAgdG91Y2hCbG9jayhpbmRleCA+PiBCTE9DS1NISUZULCB2YWx1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IG5ldyB2YWx1ZXMgZm9yIGEgcmFuZ2Ugb2YgVW5pY29kZSBjaGFyYWN0ZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIHN0YXJ0aW5nIG9mZnNldCBvZiB0aGUgcmFuZ2UKKyAgICAgKiBAcGFyYW0gZW5kIHRoZSBlbmRpbmcgb2Zmc2V0IG9mIHRoZSByYW5nZQorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgbmV3IG1hcHBlZCB2YWx1ZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEVsZW1lbnRBdChjaGFyIHN0YXJ0LCBjaGFyIGVuZCwgYnl0ZSB2YWx1ZSkKKyAgICB7CisgICAgICAgIGludCBpOworICAgICAgICBpZiAoaXNDb21wYWN0KSB7CisgICAgICAgICAgICBleHBhbmQoKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGkgPSBzdGFydDsgaSA8PSBlbmQ7ICsraSkgeworICAgICAgICAgICAgdmFsdWVzW2ldID0gdmFsdWU7CisgICAgICAgICAgICB0b3VjaEJsb2NrKGkgPj4gQkxPQ0tTSElGVCwgdmFsdWUpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgY29tcGFjdCgpIHsKKyAgICAgICAgY29tcGFjdChmYWxzZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGFjdCB0aGUgYXJyYXkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgY29tcGFjdChib29sZWFuIGV4aGF1c3RpdmUpCisgICAgeworICAgICAgICBpZiAoIWlzQ29tcGFjdCkgeworICAgICAgICAgICAgaW50IGxpbWl0Q29tcGFjdGVkID0gMDsKKyAgICAgICAgICAgIGludCBpQmxvY2tTdGFydCA9IDA7CisgICAgICAgICAgICBjaGFyIGlVbnRvdWNoZWQgPSAweEZGRkY7CisKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaW5kaWNlcy5sZW5ndGg7ICsraSwgaUJsb2NrU3RhcnQgKz0gQkxPQ0tDT1VOVCkgeworICAgICAgICAgICAgICAgIGluZGljZXNbaV0gPSAweEZGRkY7CisgICAgICAgICAgICAgICAgYm9vbGVhbiB0b3VjaGVkID0gYmxvY2tUb3VjaGVkKGkpOworICAgICAgICAgICAgICAgIGlmICghdG91Y2hlZCAmJiBpVW50b3VjaGVkICE9IDB4RkZGRikgeworICAgICAgICAgICAgICAgICAgICAvLyBJZiBubyB2YWx1ZXMgaW4gdGhpcyBibG9jayB3ZXJlIHNldCwgd2UgY2FuIGp1c3Qgc2V0IGl0cworICAgICAgICAgICAgICAgICAgICAvLyBpbmRleCB0byBiZSB0aGUgc2FtZSBhcyBzb21lIG90aGVyIGJsb2NrIHdpdGggbm8gdmFsdWVzCisgICAgICAgICAgICAgICAgICAgIC8vIHNldCwgYXNzdW1pbmcgd2UndmUgc2VlbiBvbmUgeWV0LgorICAgICAgICAgICAgICAgICAgICBpbmRpY2VzW2ldID0gaVVudG91Y2hlZDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpbnQgakJsb2NrU3RhcnQgPSAwOworICAgICAgICAgICAgICAgICAgICBpbnQgaiA9IDA7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBsaW1pdENvbXBhY3RlZDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK2osIGpCbG9ja1N0YXJ0ICs9IEJMT0NLQ09VTlQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoYXNoZXNbaV0gPT0gaGFzaGVzW2pdICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5UmVnaW9uTWF0Y2hlcyh2YWx1ZXMsIGlCbG9ja1N0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXMsIGpCbG9ja1N0YXJ0LCBCTE9DS0NPVU5UKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGljZXNbaV0gPSAoY2hhcilqQmxvY2tTdGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoaW5kaWNlc1tpXSA9PSAweEZGRkYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGRpZG4ndCBtYXRjaCwgc28gY29weSAmIHVwZGF0ZQorICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weSh2YWx1ZXMsIGlCbG9ja1N0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcywgakJsb2NrU3RhcnQsIEJMT0NLQ09VTlQpOworICAgICAgICAgICAgICAgICAgICAgICAgaW5kaWNlc1tpXSA9IChjaGFyKWpCbG9ja1N0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgaGFzaGVzW2pdID0gaGFzaGVzW2ldOworICAgICAgICAgICAgICAgICAgICAgICAgKytsaW1pdENvbXBhY3RlZDsKKworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0b3VjaGVkKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyB0aGUgZmlyc3QgdW50b3VjaGVkIGJsb2NrIHdlJ3ZlIHNlZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVtZW1iZXIgaXRzIGluZGV4LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlVbnRvdWNoZWQgPSAoY2hhcilqQmxvY2tTdGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIHdlIGFyZSBkb25lIGNvbXBhY3RpbmcsIHNvIG5vdyBtYWtlIHRoZSBhcnJheSBzaG9ydGVyCisgICAgICAgICAgICBpbnQgbmV3U2l6ZSA9IGxpbWl0Q29tcGFjdGVkKkJMT0NLQ09VTlQ7CisgICAgICAgICAgICBieXRlW10gcmVzdWx0ID0gbmV3IGJ5dGVbbmV3U2l6ZV07CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHZhbHVlcywgMCwgcmVzdWx0LCAwLCBuZXdTaXplKTsKKyAgICAgICAgICAgIHZhbHVlcyA9IHJlc3VsdDsKKyAgICAgICAgICAgIGlzQ29tcGFjdCA9IHRydWU7CisgICAgICAgICAgICBoYXNoZXMgPSBudWxsOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgdXRpbGl0eSB0byBjb21wYXJlIHR3byBhcnJheXMgb2YgZG91Ymxlcy4KKyAgICAgKiBAcGFyYW0gbGVuIHRoZSBsZW5ndGggdG8gY29tcGFyZS4KKyAgICAgKiBUaGUgc3RhcnQgaW5kaWNlcyBhbmQgc3RhcnQrbGVuIG11c3QgYmUgdmFsaWQuCisgICAgICovCisgICAgZmluYWwgc3RhdGljIGJvb2xlYW4gYXJyYXlSZWdpb25NYXRjaGVzKGJ5dGVbXSBzb3VyY2UsIGludCBzb3VyY2VTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZVtdIHRhcmdldCwgaW50IHRhcmdldFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuKQorICAgIHsKKyAgICAgICAgaW50IHNvdXJjZUVuZCA9IHNvdXJjZVN0YXJ0ICsgbGVuOworICAgICAgICBpbnQgZGVsdGEgPSB0YXJnZXRTdGFydCAtIHNvdXJjZVN0YXJ0OworICAgICAgICBmb3IgKGludCBpID0gc291cmNlU3RhcnQ7IGkgPCBzb3VyY2VFbmQ7IGkrKykgeworICAgICAgICAgICAgaWYgKHNvdXJjZVtpXSAhPSB0YXJnZXRbaSArIGRlbHRhXSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1lbWJlciB0aGF0IGEgc3BlY2lmaWVkIGJsb2NrIHdhcyAidG91Y2hlZCIsIGkuZS4gaGFkIGEgdmFsdWUgc2V0LgorICAgICAqIFVudG91Y2hlZCBibG9ja3MgY2FuIGJlIHNraXBwZWQgd2hlbiBjb21wYWN0aW5nIHRoZSBhcnJheQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgdm9pZCB0b3VjaEJsb2NrKGludCBpLCBpbnQgdmFsdWUpIHsKKyAgICAgICAgaGFzaGVzW2ldID0gKGhhc2hlc1tpXSArICh2YWx1ZTw8MSkpIHwgMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBRdWVyeSB3aGV0aGVyIGEgc3BlY2lmaWVkIGJsb2NrIHdhcyAidG91Y2hlZCIsIGkuZS4gaGFkIGEgdmFsdWUgc2V0LgorICAgICAqIFVudG91Y2hlZCBibG9ja3MgY2FuIGJlIHNraXBwZWQgd2hlbiBjb21wYWN0aW5nIHRoZSBhcnJheQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBibG9ja1RvdWNoZWQoaW50IGkpIHsKKyAgICAgICAgcmV0dXJuIGhhc2hlc1tpXSAhPSAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZvciBpbnRlcm5hbCB1c2Ugb25seS4gIERvIG5vdCBtb2RpZnkgdGhlIHJlc3VsdCwgdGhlIGJlaGF2aW9yIG9mCisgICAgICogbW9kaWZpZWQgcmVzdWx0cyBhcmUgdW5kZWZpbmVkLgorICAgICAqLworICAgIHB1YmxpYyBjaGFyW10gZ2V0SW5kZXhBcnJheSgpCisgICAgeworICAgICAgICByZXR1cm4gaW5kaWNlczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGb3IgaW50ZXJuYWwgdXNlIG9ubHkuICBEbyBub3QgbW9kaWZ5IHRoZSByZXN1bHQsIHRoZSBiZWhhdmlvciBvZgorICAgICAqIG1vZGlmaWVkIHJlc3VsdHMgYXJlIHVuZGVmaW5lZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgYnl0ZVtdIGdldFZhbHVlQXJyYXkoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHZhbHVlczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgQ2xvbmVhYmxlCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgQ29tcGFjdEJ5dGVBcnJheSBvdGhlciA9IChDb21wYWN0Qnl0ZUFycmF5KSBzdXBlci5jbG9uZSgpOworICAgICAgICAgICAgb3RoZXIudmFsdWVzID0gKGJ5dGVbXSl2YWx1ZXMuY2xvbmUoKTsKKyAgICAgICAgICAgIG90aGVyLmluZGljZXMgPSAoY2hhcltdKWluZGljZXMuY2xvbmUoKTsKKyAgICAgICAgICAgIGlmIChoYXNoZXMgIT0gbnVsbCkgb3RoZXIuaGFzaGVzID0gKGludFtdKWhhc2hlcy5jbG9uZSgpOworICAgICAgICAgICAgcmV0dXJuIG90aGVyOworICAgICAgICB9IGNhdGNoIChDbG9uZU5vdFN1cHBvcnRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcigpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGFyZXMgdGhlIGVxdWFsaXR5IG9mIHR3byBjb21wYWN0IGFycmF5IG9iamVjdHMuCisgICAgICogQHBhcmFtIG9iaiB0aGUgY29tcGFjdCBhcnJheSBvYmplY3QgdG8gYmUgY29tcGFyZWQgd2l0aCB0aGlzLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgY3VycmVudCBjb21wYWN0IGFycmF5IG9iamVjdCBpcyB0aGUgc2FtZQorICAgICAqIGFzIHRoZSBjb21wYWN0IGFycmF5IG9iamVjdCBvYmo7IGZhbHNlIG90aGVyd2lzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iaikgeworICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKHRoaXMgPT0gb2JqKSAgICAgICAgICAgICAgICAgICAgICAvLyBxdWljayBjaGVjaworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChnZXRDbGFzcygpICE9IG9iai5nZXRDbGFzcygpKSAgICAgICAgIC8vIHNhbWUgY2xhc3M/CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIENvbXBhY3RCeXRlQXJyYXkgb3RoZXIgPSAoQ29tcGFjdEJ5dGVBcnJheSkgb2JqOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IFVOSUNPREVDT1VOVDsgaSsrKSB7CisgICAgICAgICAgICAvLyBjb3VsZCBiZSBzcGVkIHVwIGxhdGVyCisgICAgICAgICAgICBpZiAoZWxlbWVudEF0KChjaGFyKWkpICE9IG90aGVyLmVsZW1lbnRBdCgoY2hhcilpKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7IC8vIHdlIG1hZGUgaXQgdGhyb3VnaCB0aGUgZ3VhbnRsZXQuCisgICAgfQorCisgICAgLyoqCisgICAgICogR2VuZXJhdGVzIHRoZSBoYXNoIGNvZGUgZm9yIHRoZSBjb21wYWN0IGFycmF5IG9iamVjdAorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgIGludCByZXN1bHQgPSAwOworICAgICAgICBpbnQgaW5jcmVtZW50ID0gTWF0aC5taW4oMywgdmFsdWVzLmxlbmd0aC8xNik7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSs9IGluY3JlbWVudCkgeworICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICogMzcgKyB2YWx1ZXNbaV07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHByaXZhdGUKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogRXhwYW5kaW5nIHRha2VzIHRoZSBhcnJheSBiYWNrIHRvIGEgNjU1MzYgZWxlbWVudCBhcnJheS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgZXhwYW5kKCkKKyAgICB7CisgICAgICAgIGludCBpOworICAgICAgICBpZiAoaXNDb21wYWN0KSB7CisgICAgICAgICAgICBieXRlW10gIHRlbXBBcnJheTsKKyAgICAgICAgICAgIGhhc2hlcyA9IG5ldyBpbnRbSU5ERVhDT1VOVF07CisgICAgICAgICAgICB0ZW1wQXJyYXkgPSBuZXcgYnl0ZVtVTklDT0RFQ09VTlRdOworICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IFVOSUNPREVDT1VOVDsgKytpKSB7CisgICAgICAgICAgICAgICAgYnl0ZSB2YWx1ZSA9IGVsZW1lbnRBdCgoY2hhcilpKTsKKyAgICAgICAgICAgICAgICB0ZW1wQXJyYXlbaV0gPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICB0b3VjaEJsb2NrKGkgPj4gQkxPQ0tTSElGVCwgdmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IElOREVYQ09VTlQ7ICsraSkgeworICAgICAgICAgICAgICAgIGluZGljZXNbaV0gPSAoY2hhcikoaTw8QkxPQ0tTSElGVCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2YWx1ZXMgPSBudWxsOworICAgICAgICAgICAgdmFsdWVzID0gdGVtcEFycmF5OworICAgICAgICAgICAgaXNDb21wYWN0ID0gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyAgZmluYWwgaW50IEJMT0NLU0hJRlQgPTc7CisgICAgcHJpdmF0ZSBzdGF0aWMgIGZpbmFsIGludCBCTE9DS0NPVU5UID0oMTw8QkxPQ0tTSElGVCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgIGZpbmFsIGludCBJTkRFWFNISUZUID0oMTYtQkxPQ0tTSElGVCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgIGZpbmFsIGludCBJTkRFWENPVU5UID0oMTw8SU5ERVhTSElGVCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgIGZpbmFsIGludCBCTE9DS01BU0sgPSBCTE9DS0NPVU5UIC0gMTsKKworICAgIHByaXZhdGUgYnl0ZVtdIHZhbHVlczsKKyAgICBwcml2YXRlIGNoYXIgaW5kaWNlc1tdOworICAgIHByaXZhdGUgaW50W10gaGFzaGVzOworICAgIHByaXZhdGUgYm9vbGVhbiBpc0NvbXBhY3Q7CisgICAgYnl0ZSBkZWZhdWx0VmFsdWU7Cit9OwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ29tcGFjdENoYXJBcnJheS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ29tcGFjdENoYXJBcnJheS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY3MzA2ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9Db21wYWN0Q2hhckFycmF5LmphdmEKQEAgLTAsMCArMSwzODAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS91dGlsL0NvbXBhY3RDaGFyQXJyYXkuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wOC8xMiAyMDoyNjozOSAkIAorICogJFJldmlzaW9uOiAxLjkgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKworLyoqCisgKiBjbGFzcyBDb21wYWN0QVR5cGVBcnJheSA6IHVzZSBvbmx5IG9uIHByaW1pdGl2ZSBkYXRhIHR5cGVzCisgKiBQcm92aWRlcyBhIGNvbXBhY3Qgd2F5IHRvIHN0b3JlIGluZm9ybWF0aW9uIHRoYXQgaXMgaW5kZXhlZCBieSBVbmljb2RlCisgKiB2YWx1ZXMsIHN1Y2ggYXMgY2hhcmFjdGVyIHByb3BlcnRpZXMsIHR5cGVzLCBrZXlib2FyZCB2YWx1ZXMsIGV0Yy5UaGlzCisgKiBpcyB2ZXJ5IHVzZWZ1bCB3aGVuIHlvdSBoYXZlIGEgYmxvY2sgb2YgVW5pY29kZSBkYXRhIHRoYXQgY29udGFpbnMKKyAqIHNpZ25pZmljYW50IHZhbHVlcyB3aGlsZSB0aGUgcmVzdCBvZiB0aGUgVW5pY29kZSBkYXRhIGlzIHVudXNlZCBpbiB0aGUKKyAqIGFwcGxpY2F0aW9uIG9yIHdoZW4geW91IGhhdmUgYSBsb3Qgb2YgcmVkdW5kYW5jZSwgc3VjaCBhcyB3aGVyZSBhbGwgMjEsMDAwCisgKiBIYW4gaWRlb2dyYXBocyBoYXZlIHRoZSBzYW1lIHZhbHVlLiAgSG93ZXZlciwgbG9va3VwIGlzIG11Y2ggZmFzdGVyIHRoYW4gYQorICogaGFzaCB0YWJsZS4KKyAqIEEgY29tcGFjdCBhcnJheSBvZiBhbnkgcHJpbWl0aXZlIGRhdGEgdHlwZSBzZXJ2ZXMgdHdvIHB1cnBvc2VzOgorICogPFVMIHR5cGUgPSByb3VuZD4KKyAqICAgICA8TEk+RmFzdCBhY2Nlc3Mgb2YgdGhlIGluZGV4ZWQgdmFsdWVzLgorICogICAgIDxMST5TbWFsbGVyIG1lbW9yeSBmb290cHJpbnQuCisgKiA8L1VMPgorICogQSBjb21wYWN0IGFycmF5IGlzIGNvbXBvc2VkIG9mIGEgaW5kZXggYXJyYXkgYW5kIHZhbHVlIGFycmF5LiAgVGhlIGluZGV4CisgKiBhcnJheSBjb250YWlucyB0aGUgaW5kaWNpZXMgb2YgVW5pY29kZSBjaGFyYWN0ZXJzIHRvIHRoZSB2YWx1ZSBhcnJheS4KKyAqIEBzZWUgICAgICAgICAgICAgICAgQ29tcGFjdEJ5dGVBcnJheQorICogQHZlcnNpb24gICAgICAgICAgICAkUmV2aXNpb246IDEuOSAkCisgKiBAYXV0aG9yICAgICAgICAgICAgIEhlbGVuYSBTaGloCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBDb21wYWN0Q2hhckFycmF5IGltcGxlbWVudHMgQ2xvbmVhYmxlIHsKKworICAgIC8qKgorICAgICAqIFRoZSB0b3RhbCBudW1iZXIgb2YgVW5pY29kZSBjaGFyYWN0ZXJzLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgIGZpbmFsIGludCBVTklDT0RFQ09VTlQgPSA2NTUzNjsKKworICAgIC8qKgorICAgICAqIERlZmF1bHQgY29uc3RydWN0b3IgZm9yIENvbXBhY3RDaGFyQXJyYXksIHRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZQorICAgICAqIGNvbXBhY3QgYXJyYXkgaXMgMC4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ29tcGFjdENoYXJBcnJheSgpCisgICAgeworICAgICAgICB0aGlzKChjaGFyKTApOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yIGZvciBDb21wYWN0Q2hhckFycmF5LgorICAgICAqIEBwYXJhbSBkZWZhdWx0VmFsdWUgdGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlIGNvbXBhY3QgYXJyYXkuCisgICAgICovCisgICAgcHVibGljIENvbXBhY3RDaGFyQXJyYXkoY2hhciBkZWZhdWx0VmFsdWUpCisgICAgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgdmFsdWVzID0gbmV3IGNoYXJbVU5JQ09ERUNPVU5UXTsKKyAgICAgICAgaW5kaWNlcyA9IG5ldyBjaGFyW0lOREVYQ09VTlRdOworICAgICAgICBoYXNoZXMgPSBuZXcgaW50W0lOREVYQ09VTlRdOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgVU5JQ09ERUNPVU5UOyArK2kpIHsKKyAgICAgICAgICAgIHZhbHVlc1tpXSA9IGRlZmF1bHRWYWx1ZTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgSU5ERVhDT1VOVDsgKytpKSB7CisgICAgICAgICAgICBpbmRpY2VzW2ldID0gKGNoYXIpKGk8PEJMT0NLU0hJRlQpOworICAgICAgICAgICAgaGFzaGVzW2ldID0gMDsKKyAgICAgICAgfQorICAgICAgICBpc0NvbXBhY3QgPSBmYWxzZTsKKworICAgICAgICB0aGlzLmRlZmF1bHRWYWx1ZSA9IGRlZmF1bHRWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvciBmb3IgQ29tcGFjdENoYXJBcnJheS4KKyAgICAgKiBAcGFyYW0gaW5kZXhBcnJheSB0aGUgaW5kaWNpZXMgb2YgdGhlIGNvbXBhY3QgYXJyYXkuCisgICAgICogQHBhcmFtIG5ld1ZhbHVlcyB0aGUgdmFsdWVzIG9mIHRoZSBjb21wYWN0IGFycmF5LgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIElmIHRoZSBpbmRleCBpcyBvdXQgb2YgcmFuZ2UuCisgICAgICovCisgICAgcHVibGljIENvbXBhY3RDaGFyQXJyYXkoY2hhciBpbmRleEFycmF5W10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgbmV3VmFsdWVzW10pCisgICAgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgaWYgKGluZGV4QXJyYXkubGVuZ3RoICE9IElOREVYQ09VTlQpCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbmRleCBvdXQgb2YgYm91bmRzLiIpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgSU5ERVhDT1VOVDsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGluZGV4ID0gaW5kZXhBcnJheVtpXTsKKyAgICAgICAgICAgIGlmICgoaW5kZXggPCAwKSB8fCAoaW5kZXggPj0gbmV3VmFsdWVzLmxlbmd0aCtCTE9DS0NPVU5UKSkKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbmRleCBvdXQgb2YgYm91bmRzLiIpOworICAgICAgICB9CisgICAgICAgIGluZGljZXMgPSBpbmRleEFycmF5OworICAgICAgICB2YWx1ZXMgPSBuZXdWYWx1ZXM7CisgICAgICAgIGlzQ29tcGFjdCA9IHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IgZm9yIENvbXBhY3RDaGFyQXJyYXkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW5kZXhBcnJheSB0aGUgUkxFLWVuY29kZWQgaW5kaWNpZXMgb2YgdGhlIGNvbXBhY3QgYXJyYXkuCisgICAgICogQHBhcmFtIHZhbHVlQXJyYXkgdGhlIFJMRS1lbmNvZGVkIHZhbHVlcyBvZiB0aGUgY29tcGFjdCBhcnJheS4KKyAgICAgKgorICAgICAqIEB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBpbmRleCBvciB2YWx1ZSBhcnJheSBpcworICAgICAqICAgICAgICAgIHRoZSB3cm9uZyBzaXplLgorICAgICAqLworICAgIHB1YmxpYyBDb21wYWN0Q2hhckFycmF5KFN0cmluZyBpbmRleEFycmF5LAorCQkJICAgIFN0cmluZyB2YWx1ZUFycmF5KQorICAgIHsKKyAgICAgICAgdGhpcyggVXRpbGl0eS5STEVTdHJpbmdUb0NoYXJBcnJheShpbmRleEFycmF5KSwKKyAgICAgICAgICAgICAgVXRpbGl0eS5STEVTdHJpbmdUb0NoYXJBcnJheSh2YWx1ZUFycmF5KSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBtYXBwZWQgdmFsdWUgb2YgYSBVbmljb2RlIGNoYXJhY3Rlci4KKyAgICAgKiBAcGFyYW0gaW5kZXggdGhlIGNoYXJhY3RlciB0byBnZXQgdGhlIG1hcHBlZCB2YWx1ZSB3aXRoCisgICAgICogQHJldHVybiB0aGUgbWFwcGVkIHZhbHVlIG9mIHRoZSBnaXZlbiBjaGFyYWN0ZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBlbGVtZW50QXQoY2hhciBpbmRleCkKKyAgICB7CisJaW50IGl4ID0gKGluZGljZXNbaW5kZXggPj4gQkxPQ0tTSElGVF0gJiAweEZGRkYpCisJICAgICsgKGluZGV4ICYgQkxPQ0tNQVNLKTsKKwlyZXR1cm4gaXggPj0gdmFsdWVzLmxlbmd0aCA/IGRlZmF1bHRWYWx1ZSA6IHZhbHVlc1tpeF07CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IGEgbmV3IHZhbHVlIGZvciBhIFVuaWNvZGUgY2hhcmFjdGVyLgorICAgICAqIFNldCBhdXRvbWF0aWNhbGx5IGV4cGFuZHMgdGhlIGFycmF5IGlmIGl0IGlzIGNvbXBhY3RlZC4KKyAgICAgKiBAcGFyYW0gaW5kZXggdGhlIGNoYXJhY3RlciB0byBzZXQgdGhlIG1hcHBlZCB2YWx1ZSB3aXRoCisgICAgICogQHBhcmFtIHZhbHVlIHRoZSBuZXcgbWFwcGVkIHZhbHVlCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RWxlbWVudEF0KGNoYXIgaW5kZXgsIGNoYXIgdmFsdWUpCisgICAgeworICAgICAgICBpZiAoaXNDb21wYWN0KQorICAgICAgICAgICAgZXhwYW5kKCk7CisgICAgICAgICB2YWx1ZXNbKGludClpbmRleF0gPSB2YWx1ZTsKKyAgICAgICAgdG91Y2hCbG9jayhpbmRleCA+PiBCTE9DS1NISUZULCB2YWx1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IG5ldyB2YWx1ZXMgZm9yIGEgcmFuZ2Ugb2YgVW5pY29kZSBjaGFyYWN0ZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIHN0YXJ0aW5nIG9mZnNldCBvZiB0aGUgcmFuZ2UKKyAgICAgKiBAcGFyYW0gZW5kIHRoZSBlbmRpbmcgb2Zmc2V0IG9mIHRoZSByYW5nZQorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgbmV3IG1hcHBlZCB2YWx1ZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEVsZW1lbnRBdChjaGFyIHN0YXJ0LCBjaGFyIGVuZCwgY2hhciB2YWx1ZSkKKyAgICB7CisgICAgICAgIGludCBpOworICAgICAgICBpZiAoaXNDb21wYWN0KSB7CisgICAgICAgICAgICBleHBhbmQoKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGkgPSBzdGFydDsgaSA8PSBlbmQ7ICsraSkgeworICAgICAgICAgICAgdmFsdWVzW2ldID0gdmFsdWU7CisgICAgICAgICAgICB0b3VjaEJsb2NrKGkgPj4gQkxPQ0tTSElGVCwgdmFsdWUpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgY29tcGFjdCgpIHsKKyAgICAgICAgY29tcGFjdCh0cnVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wYWN0IHRoZSBhcnJheS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjb21wYWN0KGJvb2xlYW4gZXhoYXVzdGl2ZSkKKyAgICB7CisgICAgICAgIGlmICghaXNDb21wYWN0KSB7CisgICAgICAgICAgICBpbnQgaUJsb2NrU3RhcnQgPSAwOworICAgICAgICAgICAgY2hhciBpVW50b3VjaGVkID0gMHhGRkZGOworICAgICAgICAgICAgaW50IG5ld1NpemUgPSAwOworCisgICAgICAgICAgICBjaGFyW10gdGFyZ2V0ID0gZXhoYXVzdGl2ZSA/IG5ldyBjaGFyW1VOSUNPREVDT1VOVF0gOiB2YWx1ZXM7CisKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaW5kaWNlcy5sZW5ndGg7ICsraSwgaUJsb2NrU3RhcnQgKz0gQkxPQ0tDT1VOVCkgeworICAgICAgICAgICAgICAgIGluZGljZXNbaV0gPSAweEZGRkY7CisgICAgICAgICAgICAgICAgYm9vbGVhbiB0b3VjaGVkID0gYmxvY2tUb3VjaGVkKGkpOworICAgICAgICAgICAgICAgIGlmICghdG91Y2hlZCAmJiBpVW50b3VjaGVkICE9IDB4RkZGRikgeworICAgICAgICAgICAgICAgICAgICAvLyBJZiBubyB2YWx1ZXMgaW4gdGhpcyBibG9jayB3ZXJlIHNldCwgd2UgY2FuIGp1c3Qgc2V0IGl0cworICAgICAgICAgICAgICAgICAgICAvLyBpbmRleCB0byBiZSB0aGUgc2FtZSBhcyBzb21lIG90aGVyIGJsb2NrIHdpdGggbm8gdmFsdWVzCisgICAgICAgICAgICAgICAgICAgIC8vIHNldCwgYXNzdW1pbmcgd2UndmUgc2VlbiBvbmUgeWV0LgorICAgICAgICAgICAgICAgICAgICBpbmRpY2VzW2ldID0gaVVudG91Y2hlZDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpbnQgakJsb2NrU3RhcnQgPSAwOworICAgICAgICAgICAgICAgICAgICAvLyBTZWUgaWYgd2UgY2FuIGZpbmQgYSBwcmV2aW91c2x5IGNvbXBhY3RlZCBibG9jayB0aGF0J3MgaWRlbnRpY2FsCisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgaTsgKytqLCBqQmxvY2tTdGFydCArPSBCTE9DS0NPVU5UKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFzaGVzW2ldID09IGhhc2hlc1tqXSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheVJlZ2lvbk1hdGNoZXModmFsdWVzLCBpQmxvY2tTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcywgakJsb2NrU3RhcnQsIEJMT0NLQ09VTlQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kaWNlc1tpXSA9IGluZGljZXNbal07CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGluZGljZXNbaV0gPT0gMHhGRkZGKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVzdDsgICAvLyBXaGVyZSB0byBjb3B5CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXhoYXVzdGl2ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNlZSBpZiB3ZSBjYW4gZmluZCBzb21lIG92ZXJsYXAgd2l0aCBhbm90aGVyIGJsb2NrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdCA9IEZpbmRPdmVybGFwcGluZ1Bvc2l0aW9uKGlCbG9ja1N0YXJ0LCB0YXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTaXplKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSnVzdCBjb3B5IHRvIHRoZSBlbmQ7IGl0J3MgcXVpY2tlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QgPSBuZXdTaXplOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0ID0gZGVzdCArIEJMT0NLQ09VTlQ7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGltaXQgPiBuZXdTaXplKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IG5ld1NpemU7IGogPCBsaW1pdDsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFtqXSA9IHZhbHVlc1tpQmxvY2tTdGFydCArIGogLSBkZXN0XTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3U2l6ZSA9IGxpbWl0OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaW5kaWNlc1tpXSA9IChjaGFyKWRlc3Q7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRvdWNoZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIGlzIHRoZSBmaXJzdCB1bnRvdWNoZWQgYmxvY2sgd2UndmUgc2VlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZW1lbWJlciBpdHMgaW5kZXguCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaVVudG91Y2hlZCA9IChjaGFyKWpCbG9ja1N0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gd2UgYXJlIGRvbmUgY29tcGFjdGluZywgc28gbm93IG1ha2UgdGhlIGFycmF5IHNob3J0ZXIKKyAgICAgICAgICAgIGNoYXJbXSByZXN1bHQgPSBuZXcgY2hhcltuZXdTaXplXTsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkodGFyZ2V0LCAwLCByZXN1bHQsIDAsIG5ld1NpemUpOworICAgICAgICAgICAgdmFsdWVzID0gcmVzdWx0OworICAgICAgICAgICAgaXNDb21wYWN0ID0gdHJ1ZTsKKyAgICAgICAgICAgIGhhc2hlcyA9IG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIGludCBGaW5kT3ZlcmxhcHBpbmdQb3NpdGlvbihpbnQgc3RhcnQsIGNoYXJbXSB0ZW1wVmFsdWVzLCBpbnQgdGVtcENvdW50KQorICAgIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZW1wQ291bnQ7IGkgKz0gMSkgeworICAgICAgICAgICAgaW50IGN1cnJlbnRDb3VudCA9IEJMT0NLQ09VTlQ7CisgICAgICAgICAgICBpZiAoaSArIEJMT0NLQ09VTlQgPiB0ZW1wQ291bnQpIHsKKyAgICAgICAgICAgICAgICBjdXJyZW50Q291bnQgPSB0ZW1wQ291bnQgLSBpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGFycmF5UmVnaW9uTWF0Y2hlcyh2YWx1ZXMsIHN0YXJ0LCB0ZW1wVmFsdWVzLCBpLCBjdXJyZW50Q291bnQpKQorICAgICAgICAgICAgICAgIHJldHVybiBpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0ZW1wQ291bnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgdXRpbGl0eSB0byBjb21wYXJlIHR3byBhcnJheXMgb2YgZG91Ymxlcy4KKyAgICAgKiBAcGFyYW0gbGVuIHRoZSBsZW5ndGggdG8gY29tcGFyZS4KKyAgICAgKiBUaGUgc3RhcnQgaW5kaWNlcyBhbmQgc3RhcnQrbGVuIG11c3QgYmUgdmFsaWQuCisgICAgICovCisgICAgZmluYWwgc3RhdGljIGJvb2xlYW4gYXJyYXlSZWdpb25NYXRjaGVzKGNoYXJbXSBzb3VyY2UsIGludCBzb3VyY2VTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIHRhcmdldCwgaW50IHRhcmdldFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuKQorICAgIHsKKyAgICAgICAgaW50IHNvdXJjZUVuZCA9IHNvdXJjZVN0YXJ0ICsgbGVuOworICAgICAgICBpbnQgZGVsdGEgPSB0YXJnZXRTdGFydCAtIHNvdXJjZVN0YXJ0OworICAgICAgICBmb3IgKGludCBpID0gc291cmNlU3RhcnQ7IGkgPCBzb3VyY2VFbmQ7IGkrKykgeworICAgICAgICAgICAgaWYgKHNvdXJjZVtpXSAhPSB0YXJnZXRbaSArIGRlbHRhXSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1lbWJlciB0aGF0IGEgc3BlY2lmaWVkIGJsb2NrIHdhcyAidG91Y2hlZCIsIGkuZS4gaGFkIGEgdmFsdWUgc2V0LgorICAgICAqIFVudG91Y2hlZCBibG9ja3MgY2FuIGJlIHNraXBwZWQgd2hlbiBjb21wYWN0aW5nIHRoZSBhcnJheQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgdm9pZCB0b3VjaEJsb2NrKGludCBpLCBpbnQgdmFsdWUpIHsKKyAgICAgICAgaGFzaGVzW2ldID0gKGhhc2hlc1tpXSArICh2YWx1ZTw8MSkpIHwgMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBRdWVyeSB3aGV0aGVyIGEgc3BlY2lmaWVkIGJsb2NrIHdhcyAidG91Y2hlZCIsIGkuZS4gaGFkIGEgdmFsdWUgc2V0LgorICAgICAqIFVudG91Y2hlZCBibG9ja3MgY2FuIGJlIHNraXBwZWQgd2hlbiBjb21wYWN0aW5nIHRoZSBhcnJheQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBibG9ja1RvdWNoZWQoaW50IGkpIHsKKyAgICAgICAgcmV0dXJuIGhhc2hlc1tpXSAhPSAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZvciBpbnRlcm5hbCB1c2Ugb25seS4gIERvIG5vdCBtb2RpZnkgdGhlIHJlc3VsdCwgdGhlIGJlaGF2aW9yIG9mCisgICAgICogbW9kaWZpZWQgcmVzdWx0cyBhcmUgdW5kZWZpbmVkLgorICAgICAqLworICAgIHB1YmxpYyBjaGFyW10gZ2V0SW5kZXhBcnJheSgpCisgICAgeworICAgICAgICByZXR1cm4gaW5kaWNlczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGb3IgaW50ZXJuYWwgdXNlIG9ubHkuICBEbyBub3QgbW9kaWZ5IHRoZSByZXN1bHQsIHRoZSBiZWhhdmlvciBvZgorICAgICAqIG1vZGlmaWVkIHJlc3VsdHMgYXJlIHVuZGVmaW5lZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhcltdIGdldFZhbHVlQXJyYXkoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHZhbHVlczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgQ2xvbmVhYmxlCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgQ29tcGFjdENoYXJBcnJheSBvdGhlciA9IChDb21wYWN0Q2hhckFycmF5KSBzdXBlci5jbG9uZSgpOworICAgICAgICAgICAgb3RoZXIudmFsdWVzID0gKGNoYXJbXSl2YWx1ZXMuY2xvbmUoKTsKKyAgICAgICAgICAgIG90aGVyLmluZGljZXMgPSAoY2hhcltdKWluZGljZXMuY2xvbmUoKTsKKyAgICAgICAgICAgIGlmIChoYXNoZXMgIT0gbnVsbCkgb3RoZXIuaGFzaGVzID0gKGludFtdKWhhc2hlcy5jbG9uZSgpOworICAgICAgICAgICAgcmV0dXJuIG90aGVyOworICAgICAgICB9IGNhdGNoIChDbG9uZU5vdFN1cHBvcnRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcigpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGFyZXMgdGhlIGVxdWFsaXR5IG9mIHR3byBjb21wYWN0IGFycmF5IG9iamVjdHMuCisgICAgICogQHBhcmFtIG9iaiB0aGUgY29tcGFjdCBhcnJheSBvYmplY3QgdG8gYmUgY29tcGFyZWQgd2l0aCB0aGlzLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgY3VycmVudCBjb21wYWN0IGFycmF5IG9iamVjdCBpcyB0aGUgc2FtZQorICAgICAqIGFzIHRoZSBjb21wYWN0IGFycmF5IG9iamVjdCBvYmo7IGZhbHNlIG90aGVyd2lzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iaikgeworICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKHRoaXMgPT0gb2JqKSAgICAgICAgICAgICAgICAgICAgICAvLyBxdWljayBjaGVjaworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChnZXRDbGFzcygpICE9IG9iai5nZXRDbGFzcygpKSAgICAgICAgIC8vIHNhbWUgY2xhc3M/CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIENvbXBhY3RDaGFyQXJyYXkgb3RoZXIgPSAoQ29tcGFjdENoYXJBcnJheSkgb2JqOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IFVOSUNPREVDT1VOVDsgaSsrKSB7CisgICAgICAgICAgICAvLyBjb3VsZCBiZSBzcGVkIHVwIGxhdGVyCisgICAgICAgICAgICBpZiAoZWxlbWVudEF0KChjaGFyKWkpICE9IG90aGVyLmVsZW1lbnRBdCgoY2hhcilpKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7IC8vIHdlIG1hZGUgaXQgdGhyb3VnaCB0aGUgZ3VhbnRsZXQuCisgICAgfQorCisgICAgLyoqCisgICAgICogR2VuZXJhdGVzIHRoZSBoYXNoIGNvZGUgZm9yIHRoZSBjb21wYWN0IGFycmF5IG9iamVjdAorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgIGludCByZXN1bHQgPSAwOworICAgICAgICBpbnQgaW5jcmVtZW50ID0gTWF0aC5taW4oMywgdmFsdWVzLmxlbmd0aC8xNik7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSs9IGluY3JlbWVudCkgeworICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICogMzcgKyB2YWx1ZXNbaV07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gcHJpdmF0ZQorICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBFeHBhbmRpbmcgdGFrZXMgdGhlIGFycmF5IGJhY2sgdG8gYSA2NTUzNiBlbGVtZW50IGFycmF5LgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBleHBhbmQoKQorICAgIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGlmIChpc0NvbXBhY3QpIHsKKyAgICAgICAgICAgIGNoYXJbXSB0ZW1wQXJyYXk7CisgICAgICAgICAgICBoYXNoZXMgPSBuZXcgaW50W0lOREVYQ09VTlRdOworICAgICAgICAgICAgdGVtcEFycmF5ID0gbmV3IGNoYXJbVU5JQ09ERUNPVU5UXTsKKyAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBVTklDT0RFQ09VTlQ7ICsraSkgeworICAgICAgICAgICAgICAgIHRlbXBBcnJheVtpXSA9IGVsZW1lbnRBdCgoY2hhcilpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBJTkRFWENPVU5UOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpbmRpY2VzW2ldID0gKGNoYXIpKGk8PEJMT0NLU0hJRlQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdmFsdWVzID0gbnVsbDsKKyAgICAgICAgICAgIHZhbHVlcyA9IHRlbXBBcnJheTsKKyAgICAgICAgICAgIGlzQ29tcGFjdCA9IGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyAgZmluYWwgaW50IEJMT0NLU0hJRlQgPSA1OyAvLyBOb3JtYWxpemVyQnVpbGRlciBuZWVkcyAtIGxpdQorICAgIHN0YXRpYyAgZmluYWwgaW50IEJMT0NLQ09VTlQgPSgxPDxCTE9DS1NISUZUKTsKKyAgICBzdGF0aWMgIGZpbmFsIGludCBJTkRFWFNISUZUID0oMTYtQkxPQ0tTSElGVCk7CisgICAgc3RhdGljICBmaW5hbCBpbnQgSU5ERVhDT1VOVCA9KDE8PElOREVYU0hJRlQpOworICAgIHN0YXRpYyAgZmluYWwgaW50IEJMT0NLTUFTSyA9IEJMT0NLQ09VTlQgLSAxOworCisgICAgcHJpdmF0ZSBjaGFyIHZhbHVlc1tdOworICAgIHByaXZhdGUgY2hhciBpbmRpY2VzW107CisgICAgcHJpdmF0ZSBpbnRbXSBoYXNoZXM7CisgICAgcHJpdmF0ZSBib29sZWFuIGlzQ29tcGFjdDsKKyAgICBjaGFyIGRlZmF1bHRWYWx1ZTsKK307CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9DdXJyZW5jeS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ3VycmVuY3kuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NWFiYTAyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ3VycmVuY3kuamF2YQpAQCAtMCwwICsxLDIzOCBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS91dGlsL0N1cnJlbmN5LmphdmEsdiAkCisgKiAkRGF0ZTogMjAwMi8wOC8xMyAyMzo0MzoyNyAkCisgKiAkUmV2aXNpb246IDEuNCAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLlNlcmlhbGl6YWJsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUxvY2FsZURhdGE7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9sczsKKworLyoqCisgKiBBIGNsYXNzIGVuY2Fwc3VsYXRpbmcgYSBjdXJyZW5jeSwgYXMgZGVmaW5lZCBieSBJU08gNDIxNy4gIEEKKyAqIDx0dD5DdXJyZW5jeTwvdHQ+IG9iamVjdCBjYW4gYmUgY3JlYXRlZCBnaXZlbiBhIDx0dD5Mb2NhbGU8L3R0PiBvcgorICogZ2l2ZW4gYW4gSVNPIDQyMTcgY29kZS4gIE9uY2UgY3JlYXRlZCwgdGhlIDx0dD5DdXJyZW5jeTwvdHQ+IG9iamVjdAorICogY2FuIHJldHVybiB2YXJpb3VzIGRhdGEgbmVjZXNzYXJ5IHRvIGl0cyBwcm9wZXIgZGlzcGxheToKKyAqCisgKiA8dWw+PGxpPkEgZGlzcGxheSBzeW1ib2wsIGZvciBhIHNwZWNpZmljIGxvY2FsZQorICogPGxpPlRoZSBudW1iZXIgb2YgZnJhY3Rpb24gZGlnaXRzIHRvIGRpc3BsYXkKKyAqIDxsaT5BIHJvdW5kaW5nIGluY3JlbWVudAorICogPC91bD4KKyAqCisgKiBUaGUgPHR0PkRlY2ltYWxGb3JtYXQ8L3R0PiBjbGFzcyB1c2VzIHRoZXNlIGRhdGEgdG8gZGlzcGxheQorICogY3VycmVuY2llcy4KKyAqCisgKiA8cD5Ob3RlOiBUaGlzIGNsYXNzIGRlbGliZXJhdGVseSByZXNlbWJsZXMKKyAqIDx0dD5qYXZhLnV0aWwuQ3VycmVuY3k8L3R0PiBidXQgaXQgaGFzIGEgY29tcGxldGVseSBpbmRlcGVuZGVudAorICogaW1wbGVtZW50YXRpb24sIGFuZCBhZGRzIGZlYXR1cmVzIG5vdCBwcmVzZW50IGluIHRoZSBKREsuCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAc2luY2UgSUNVIDIuMgorICovCitwdWJsaWMgY2xhc3MgQ3VycmVuY3kgaW1wbGVtZW50cyBTZXJpYWxpemFibGUgeworCisgICAgLyoqCisgICAgICogSVNPIDQyMTcgMy1sZXR0ZXIgY29kZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBpc29Db2RlOworCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGN1cnJlbmN5IG9iamVjdCBmb3IgdGhlIGRlZmF1bHQgY3VycmVuY3kgaW4gdGhlIGdpdmVuCisgICAgICogbG9jYWxlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQ3VycmVuY3kgZ2V0SW5zdGFuY2UoTG9jYWxlIGxvY2FsZSkgeworICAgICAgICAvLyBMb29rIHVwIHRoZSBDdXJyZW5jeUVsZW1lbnRzIHJlc291cmNlIGZvciB0aGlzIGxvY2FsZS4KKyAgICAgICAgLy8gSXQgY29udGFpbnM6IFswXSA9IGN1cnJlbmN5IHN5bWJvbCwgZS5nLiAiJCI7CisgICAgICAgIC8vIFsxXSA9IGludGwuIGN1cnJlbmN5IHN5bWJvbCwgZS5nLiAiVVNEIjsKKyAgICAgICAgLy8gWzJdID0gbW9uZXRhcnkgZGVjaW1hbCBzZXBhcmF0b3IsIGUuZy4gIi4iLgorICAgICAgICBSZXNvdXJjZUJ1bmRsZSByYiA9IElDVUxvY2FsZURhdGEuZ2V0TG9jYWxlRWxlbWVudHMobG9jYWxlKTsKKyAgICAgICAgU3RyaW5nW10gY3VycmVuY3lFbGVtZW50cyA9IHJiLmdldFN0cmluZ0FycmF5KCJDdXJyZW5jeUVsZW1lbnRzIik7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShjdXJyZW5jeUVsZW1lbnRzWzFdKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgY3VycmVuY3kgb2JqZWN0IGdpdmVuIGFuIElTTyA0MjE3IDMtbGV0dGVyIGNvZGUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBDdXJyZW5jeSBnZXRJbnN0YW5jZShTdHJpbmcgdGhlSVNPQ29kZSkgeworICAgICAgICByZXR1cm4gbmV3IEN1cnJlbmN5KHRoZUlTT0NvZGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIElTTyA0MjE3IDMtbGV0dGVyIGNvZGUgZm9yIHRoaXMgY3VycmVuY3kgb2JqZWN0LgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0Q3VycmVuY3lDb2RlKCkgeworICAgICAgICByZXR1cm4gaXNvQ29kZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBkaXNwbGF5IHN0cmluZyBmb3IgdGhpcyBjdXJyZW5jeSBvYmplY3QgaW4gdGhlCisgICAgICogZ2l2ZW4gbG9jYWxlLiAgRm9yIGV4YW1wbGUsIHRoZSBkaXNwbGF5IHN0cmluZyBmb3IgdGhlIFVTRAorICAgICAqIGN1cnJlbmN5IG9iamVjdCBpbiB0aGUgZW5fVVMgbG9jYWxlIGlzICIkIi4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFN5bWJvbChMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIC8vIExvb2sgdXAgdGhlIEN1cnJlbmNpZXMgcmVzb3VyY2UgZm9yIHRoZSBnaXZlbiBsb2NhbGUuICBUaGUKKyAgICAgICAgLy8gQ3VycmVuY2llcyBsb2NhbGUgbG9va3MgbGlrZSB0aGlzIGluIHRoZSBvcmlnaW5hbCBDCisgICAgICAgIC8vIHJlc291cmNlIGZpbGU6CisgICAgICAgIC8vfGVuIHsKKyAgICAgICAgLy98ICBDdXJyZW5jaWVzIHsgCisgICAgICAgIC8vfCAgICBVU0QgeyAiJCIgfQorICAgICAgICAvL3wgICAgQ0hGIHsgInNGciIgfQorICAgICAgICAvL3wgICAgLy8uLi4KKyAgICAgICAgLy98ICB9CisgICAgICAgIC8vfH0KKyAgICAgICAgUmVzb3VyY2VCdW5kbGUgcmIgPSBJQ1VMb2NhbGVEYXRhLmdldExvY2FsZUVsZW1lbnRzKGxvY2FsZSk7CisgICAgICAgIC8vIFdlIGNhbid0IGNhc3QgdGhpcyB0byBTdHJpbmdbXVtdOyB0aGUgY2FzdCBoYXMgdG8gaGFwcGVuIGxhdGVyCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBPYmplY3RbXVtdIGN1cnJlbmNpZXMgPSAoT2JqZWN0W11bXSkgcmIuZ2V0T2JqZWN0KCJDdXJyZW5jaWVzIik7CisgICAgICAgICAgICAvLyBEbyBhIGxpbmVhciBzZWFyY2gKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxjdXJyZW5jaWVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKGlzb0NvZGUuZXF1YWxzKChTdHJpbmcpIGN1cnJlbmNpZXNbaV1bMF0pKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAoU3RyaW5nKSBjdXJyZW5jaWVzW2ldWzFdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHt9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIC8vIFNpbmNlIHRoZSBDdXJyZW5jaWVzIHJlc291cmNlIGlzIG5vdCBmdWxseSBwb3B1bGF0ZWQgeWV0LAorICAgICAgICAgICAgLy8gY2hlY2sgdG8gc2VlIGlmIHdlIGNhbiBmaW5kIHdoYXQgd2Ugd2FudCBpbiB0aGUgQ3VycmVuY3lFbGVtZW50cworICAgICAgICAgICAgLy8gcmVzb3VyY2UuCisgICAgICAgICAgICBTdHJpbmdbXSBjdXJyZW5jeUVsZW1lbnRzID0gcmIuZ2V0U3RyaW5nQXJyYXkoIkN1cnJlbmN5RWxlbWVudHMiKTsKKyAgICAgICAgICAgIGlmIChjdXJyZW5jeUVsZW1lbnRzWzFdLmVxdWFscyhpc29Db2RlKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBjdXJyZW5jeUVsZW1lbnRzWzBdOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZTIpIHt9CisKKyAgICAgICAgLy8gSWYgd2UgZmFpbCB0byBmaW5kIGEgbWF0Y2gsIHVzZSB0aGUgZnVsbCBJU08gY29kZQorICAgICAgICByZXR1cm4gaXNvQ29kZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgdGhlIG51bWJlciBvZiBmcmFjdGlvbiBkaWdpdHMgdGhhdCBzaG91bGQKKyAgICAgKiBiZSBkaXNwbGF5ZWQgZm9yIHRoaXMgY3VycmVuY3kuCisgICAgICogQHJldHVybiBhIG5vbi1uZWdhdGl2ZSBudW1iZXIgb2YgZnJhY3Rpb24gZGlnaXRzIHRvIGJlCisgICAgICogZGlzcGxheWVkCisgICAgICovCisgICAgcHVibGljIGludCBnZXREZWZhdWx0RnJhY3Rpb25EaWdpdHMoKSB7CisgICAgICAgIHJldHVybiAoZmluZERhdGEoKSlbMF0uaW50VmFsdWUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSByb3VuZGluZyBpbmNyZW1lbnQgZm9yIHRoaXMgY3VycmVuY3ksIG9yIDAuMCBpZiBubworICAgICAqIHJvdW5kaW5nIGlzIGRvbmUgYnkgdGhpcyBjdXJyZW5jeS4KKyAgICAgKiBAcmV0dXJuIHRoZSBub24tbmVnYXRpdmUgcm91bmRpbmcgaW5jcmVtZW50LCBvciAwLjAgaWYgbm9uZQorICAgICAqLworICAgIHB1YmxpYyBkb3VibGUgZ2V0Um91bmRpbmdJbmNyZW1lbnQoKSB7CisgICAgICAgIEludGVnZXJbXSBkYXRhID0gZmluZERhdGEoKTsKKworICAgICAgICBpbnQgZGF0YTEgPSBkYXRhWzFdLmludFZhbHVlKCk7IC8vIHJvdW5kaW5nIGluY3JlbWVudAorCisgICAgICAgIC8vIElmIHRoZXJlIGlzIG5vIHJvdW5kaW5nIHJldHVybiAwLjAgdG8gaW5kaWNhdGUgbm8gcm91bmRpbmcuCisgICAgICAgIC8vIFRoaXMgaXMgdGhlIGhpZ2gtcnVubmVyIGNhc2UsIGJ5IGZhci4KKyAgICAgICAgaWYgKGRhdGExID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiAwLjA7CisgICAgICAgIH0KKworICAgICAgICBpbnQgZGF0YTAgPSBkYXRhWzBdLmludFZhbHVlKCk7IC8vIGZyYWN0aW9uIGRpZ2l0cworCisgICAgICAgIC8vIElmIHRoZSBtZXRhIGRhdGEgaXMgaW52YWxpZCwgcmV0dXJuIDAuMCB0byBpbmRpY2F0ZSBubyByb3VuZGluZy4KKyAgICAgICAgaWYgKGRhdGEwIDwgMCB8fCBkYXRhMCA+PSBQT1cxMC5sZW5ndGgpIHsKKyAgICAgICAgICAgIHJldHVybiAwLjA7CisgICAgICAgIH0KKworICAgICAgICAvLyBSZXR1cm4gZGF0YVsxXSAvIDEwXihkYXRhWzBdKS4gIFRoZSBvbmx5IGFjdHVhbCByb3VuZGluZyBkYXRhLAorICAgICAgICAvLyBhcyBvZiB0aGlzIHdyaXRpbmcsIGlzIENIRiB7IDIsIDI1IH0uCisgICAgICAgIHJldHVybiAoZG91YmxlKSBkYXRhMSAvIFBPVzEwW2RhdGEwXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBJU08gNDIxNyBjb2RlIGZvciB0aGlzIGN1cnJlbmN5LgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIHJldHVybiBpc29Db2RlOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBjdXJyZW5jeSBvYmplY3QgZm9yIHRoZSBnaXZlbiBJU08gNDIxNyAzLWxldHRlcgorICAgICAqIGNvZGUuICBUaGlzIGNvbnN0cnVjdG9yIGFzc3VtZXMgdGhhdCB0aGUgY29kZSBpcyB2YWxpZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIEN1cnJlbmN5KFN0cmluZyB0aGVJU09Db2RlKSB7CisgICAgICAgIGlzb0NvZGUgPSB0aGVJU09Db2RlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEludGVybmFsIGZ1bmN0aW9uIHRvIGxvb2sgdXAgY3VycmVuY3kgZGF0YS4gIFJlc3VsdCBpcyBhbiBhcnJheSBvZgorICAgICAqIHR3byBJbnRlZ2Vycy4gIFRoZSBmaXJzdCBpcyB0aGUgZnJhY3Rpb24gZGlnaXRzLiAgVGhlIHNlY29uZCBpcyB0aGUKKyAgICAgKiByb3VuZGluZyBpbmNyZW1lbnQsIG9yIDAgaWYgbm9uZS4gIFRoZSByb3VuZGluZyBpbmNyZW1lbnQgaXMgaW4KKyAgICAgKiB1bml0cyBvZiAxMF4oLWZyYWN0aW9uX2RpZ2l0cykuCisgICAgICovCisgICAgcHJpdmF0ZSBJbnRlZ2VyW10gZmluZERhdGEoKSB7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIC8vIEdldCBDdXJyZW5jeU1ldGEgcmVzb3VyY2Ugb3V0IG9mIHJvb3QgbG9jYWxlIGZpbGUuICBbVGhpcyBtYXkKKyAgICAgICAgICAgIC8vIG1vdmUgb3V0IG9mIHRoZSByb290IGxvY2FsZSBmaWxlIGxhdGVyOyBpZiBpdCBkb2VzLCB1cGRhdGUgdGhpcworICAgICAgICAgICAgLy8gY29kZS5dCisgICAgICAgICAgICBSZXNvdXJjZUJ1bmRsZSByb290ID0gSUNVTG9jYWxlRGF0YS5nZXRMb2NhbGVFbGVtZW50cygiIik7CisKKyAgICAgICAgICAgIE9iamVjdFtdW10gY3VycmVuY3lNZXRhID0gKE9iamVjdFtdW10pIHJvb3QuZ2V0T2JqZWN0KCJDdXJyZW5jeU1ldGEiKTsKKworICAgICAgICAgICAgSW50ZWdlcltdIGkgPSBudWxsOworICAgICAgICAgICAgaW50IGRlZmF1bHRQb3MgPSAtMTsKKworICAgICAgICAgICAgLy8gRG8gYSBsaW5lYXIgc2VhcmNoIGZvciBpc29Db2RlLiAgQXQgdGhlIHNhbWUgdGltZSwKKyAgICAgICAgICAgIC8vIHJlY29yZCB0aGUgcG9zaXRpb24gb2YgdGhlIERFRkFVTFQgbWV0YSBkYXRhLiAgSWYgdGhlCisgICAgICAgICAgICAvLyBtZXRhIGRhdGEgYmVjb21lcyBsYXJnZSwgbWFrZSB0aGlzIGZhc3Rlci4KKyAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajxjdXJyZW5jeU1ldGEubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICBPYmplY3RbXSByb3cgPSBjdXJyZW5jeU1ldGFbal07CisgICAgICAgICAgICAgICAgU3RyaW5nIHMgPSAoU3RyaW5nKSByb3dbMF07CisgICAgICAgICAgICAgICAgaW50IGMgPSBpc29Db2RlLmNvbXBhcmVUb0lnbm9yZUNhc2Uocyk7CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBpID0gKEludGVnZXJbXSkgcm93WzFdOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCJERUZBVUxUIi5lcXVhbHNJZ25vcmVDYXNlKHMpKSB7CisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRQb3MgPSBqOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoYyA8IDAgJiYgZGVmYXVsdFBvcyA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGkgPT0gbnVsbCAmJiBkZWZhdWx0UG9zID49IDApIHsKKyAgICAgICAgICAgICAgICBpID0gKEludGVnZXJbXSkgY3VycmVuY3lNZXRhW2RlZmF1bHRQb3NdWzFdOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoaSAhPSBudWxsICYmIGkubGVuZ3RoID49IDIpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHt9CisKKyAgICAgICAgLy8gQ29uZmlnL2J1aWxkIGVycm9yOyByZXR1cm4gaGFyZC1jb2RlZCBkZWZhdWx0cworICAgICAgICByZXR1cm4gTEFTVF9SRVNPUlRfREFUQTsKKyAgICB9CisKKyAgICAvLyBEZWZhdWx0IGN1cnJlbmN5IG1ldGEgZGF0YSBvZiBsYXN0IHJlc29ydC4gIFdlIHRyeSB0byB1c2UgdGhlCisgICAgLy8gZGVmYXVsdHMgZW5jb2RlZCBpbiB0aGUgbWV0YSBkYXRhIHJlc291cmNlIGJ1bmRsZS4gIElmIHRoZXJlIGlzIGEKKyAgICAvLyBjb25maWd1cmF0aW9uL2J1aWxkIGVycm9yIGFuZCB0aGVzZSBhcmUgbm90IGF2YWlsYWJsZSwgd2UgdXNlIHRoZXNlCisgICAgLy8gaGFyZC1jb2RlZCBkZWZhdWx0cyAod2hpY2ggc2hvdWxkIGJlIGlkZW50aWNhbCkuCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgSW50ZWdlcltdIExBU1RfUkVTT1JUX0RBVEEgPQorICAgICAgICBuZXcgSW50ZWdlcltdIHsgbmV3IEludGVnZXIoMiksIG5ldyBJbnRlZ2VyKDApIH07CisKKyAgICAvLyBQT1cxMFtpXSA9IDEwXmkKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnRbXSBQT1cxMCA9IHsgMSwgMTAsIDEwMCwgMTAwMCwgMTAwMDAsIDEwMDAwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAwMDAwMCwgMTAwMDAwMDAsIDEwMDAwMDAwMCwgMTAwMDAwMDAwMCB9OworfQorCisvL2VvZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvRGF0ZVJ1bGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0RhdGVSdWxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzlkNmM2YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0RhdGVSdWxlLmphdmEKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L3V0aWwvRGF0ZVJ1bGUuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNjoyNyAkIAorICogJFJldmlzaW9uOiAxLjMgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGphdmEudXRpbC5EYXRlOworCisvKioKKyAqIERhdGVSdWxlIGlzIGFuIGludGVyZmFjZSBmb3IgY2FsY3VsYXRpbmcgdGhlIGRhdGUgb2YgYW4gZXZlbnQuCisgKiBJdCBzdXBwb3J0cyBib3RoIHJlY3VycmluZyBldmVudHMgYW5kIHRob3NlIHdoaWNoIG9jY3VyIG9ubHkgb25jZS4KKyAqIERhdGVSdWxlIGlzIHVzZWZ1bCBmb3Igc3RvcmluZyBpbmZvcm1hdGlvbiBhYm91dCBob2xpZGF5cywKKyAqIERheWxpZ2h0IFNhdmluZ3MgVGltZSBydWxlcywgYW5kIG90aGVyIGV2ZW50cyBzdWNoIGFzIG1lZXRpbmdzLgorICoKKyAqIEBzZWUgU2ltcGxlRGF0ZVJ1bGUKKyAqLworcHVibGljIGludGVyZmFjZSBEYXRlUnVsZQoreworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZmlyc3Qgb2NjdXJyYW5jZSBvZiB0aGUgZXZlbnQgcmVwcmVzZW50ZWQgYnkgdGhpcyBydWxlCisgICAgICogdGhhdCBpcyBvbiBvciBhZnRlciB0aGUgZ2l2ZW4gc3RhcnQgZGF0ZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdGFydCBPbmx5IG9jY3VycmFuY2VzIG9uIG9yIGFmdGVyIHRoaXMgZGF0ZSBhcmUgcmV0dXJuZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuICAgICAgVGhlIGRhdGUgb24gd2hpY2ggdGhpcyBldmVudCBvY2N1cnMsIG9yIG51bGwgaWYgaXQKKyAgICAgKiAgICAgICAgICAgICAgZG9lcyBub3Qgb2NjdXIgb24gb3IgYWZ0ZXIgdGhlIHN0YXJ0IGRhdGUuCisgICAgICoKKyAgICAgKiBAc2VlICNmaXJzdEJldHdlZW4KKyAgICAgKi8KKyAgICBhYnN0cmFjdCBwdWJsaWMgRGF0ZSAgICBmaXJzdEFmdGVyKERhdGUgc3RhcnQpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBmaXJzdCBvY2N1cnJhbmNlIG9mIHRoZSBldmVudCByZXByZXNlbnRlZCBieSB0aGlzIHJ1bGUKKyAgICAgKiB0aGF0IGlzIG9uIG9yIGFmdGVyIHRoZSBnaXZlbiBzdGFydCBkYXRlIGFuZCBiZWZvcmUgdGhlIGdpdmVuCisgICAgICogZW5kIGRhdGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhcnQgT25seSBvY2N1cnJhbmNlcyBvbiBvciBhZnRlciB0aGlzIGRhdGUgYXJlIHJldHVybmVkLgorICAgICAqIEBwYXJhbSBlbmQgICBPbmx5IG9jY3VycmFuY2VzIGJlZm9yZSB0aGlzIGRhdGUgYXJlIHJldHVybmVkLgorICAgICAqCisgICAgICogQHJldHVybiAgICAgIFRoZSBkYXRlIG9uIHdoaWNoIHRoaXMgZXZlbnQgb2NjdXJzLCBvciBudWxsIGlmIGl0CisgICAgICogICAgICAgICAgICAgIGRvZXMgbm90IG9jY3VyIGJldHdlZW4gdGhlIHN0YXJ0IGFuZCBlbmQgZGF0ZXMuCisgICAgICoKKyAgICAgKiBAc2VlICNmaXJzdEFmdGVyCisgICAgICovCisgICAgYWJzdHJhY3QgcHVibGljIERhdGUgICAgZmlyc3RCZXR3ZWVuKERhdGUgc3RhcnQsIERhdGUgZW5kKTsKKworICAgIC8qKgorICAgICAqIENoZWNrcyB3aGV0aGVyIHRoaXMgZXZlbnQgb2NjdXJzIG9uIHRoZSBnaXZlbiBkYXRlLiAgVGhpcyBkb2VzCisgICAgICogPGVtPm5vdDwvZW0+IHRha2UgdGltZSBvZiBkYXkgaW50byBhY2NvdW50OyBpbnN0ZWFkIGl0IGNoZWNrcworICAgICAqIHdoZXRoZXIgdGhpcyBldmVudCBhbmQgdGhlIGdpdmVuIGRhdGUgYXJlIG9uIHRoZSBzYW1lIGRheS4KKyAgICAgKiBUaGlzIGlzIHVzZWZ1bCBmb3IgYXBwbGljYXRpb25zIHN1Y2ggYXMgZGV0ZXJtaW5pbmcgd2hldGhlciBhIGdpdmVuCisgICAgICogZGF5IGlzIGEgaG9saWRheS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlICBUaGUgZGF0ZSB0byBjaGVjay4KKyAgICAgKiBAcmV0dXJuICAgICAgdHJ1ZSBpZiB0aGlzIGV2ZW50IG9jY3VycyBvbiB0aGUgZ2l2ZW4gZGF0ZS4KKyAgICAgKgorICAgICAqLworICAgIGFic3RyYWN0IHB1YmxpYyBib29sZWFuIGlzT24oRGF0ZSBkYXRlKTsKKworICAgIC8qKgorICAgICAqIENoZWNrIHdoZXRoZXIgdGhpcyBldmVudCBvY2N1cnMgYXQgbGVhc3Qgb25jZSBiZXR3ZWVuIHRoZSB0d28KKyAgICAgKiBkYXRlcyBnaXZlbi4KKyAgICAgKi8KKyAgICBhYnN0cmFjdCBwdWJsaWMgYm9vbGVhbiBpc0JldHdlZW4oRGF0ZSBzdGFydCwgRGF0ZSBlbmQpOworfTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9FYXN0ZXJIb2xpZGF5LmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9FYXN0ZXJIb2xpZGF5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGVhYzQzMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0Vhc3RlckhvbGlkYXkuamF2YQpAQCAtMCwwICsxLDI3OSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L3V0aWwvRWFzdGVySG9saWRheS5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA2OjI3ICQgCisgKiAkUmV2aXNpb246IDEuNiAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5HcmVnb3JpYW5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuU2ltcGxlVGltZVpvbmU7CisKKy8qKgorICogQSBIb2xpZGF5IHN1YmNsYXNzIHdoaWNoIHJlcHJlc2VudHMgaG9saWRheXMgdGhhdCBvY2N1cgorICogYSBmaXhlZCBudW1iZXIgb2YgZGF5cyBiZWZvcmUgb3IgYWZ0ZXIgRWFzdGVyLiAgU3VwcG9ydHMgYm90aCB0aGUKKyAqIFdlc3Rlcm4gYW5kIE9ydGhvZG94IG1ldGhvZHMgZm9yIGNhbGN1bGF0aW5nIEVhc3Rlci4KKyAqCisgKi8KK3B1YmxpYyBjbGFzcyBFYXN0ZXJIb2xpZGF5IGV4dGVuZHMgSG9saWRheQoreworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIGhvbGlkYXkgdGhhdCBmYWxscyBvbiBFYXN0ZXIgU3VuZGF5IGV2ZXJ5IHllYXIKKyAgICAgKgorICAgICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBob2xpZGF5CisgICAgICovCisgICAgcHVibGljIEVhc3RlckhvbGlkYXkoU3RyaW5nIG5hbWUpCisgICAgeworICAgICAgICBzdXBlcihuYW1lLCBuZXcgRWFzdGVyUnVsZSgwLCBmYWxzZSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIGhvbGlkYXkgdGhhdCBmYWxscyBhIHNwZWNpZmllZCBudW1iZXIgb2YgZGF5cyBiZWZvcmUKKyAgICAgKiBvciBhZnRlciBFYXN0ZXIgU3VuZGF5IGVhY2ggeWVhci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXlzQWZ0ZXIgVGhlIG51bWJlciBvZiBkYXlzIGJlZm9yZSAoLSkgb3IgYWZ0ZXIgKCspIEVhc3RlcgorICAgICAqIEBwYXJhbSBuYW1lICAgICAgVGhlIG5hbWUgb2YgdGhlIGhvbGlkYXkKKyAgICAgKi8KKyAgICBwdWJsaWMgRWFzdGVySG9saWRheShpbnQgZGF5c0FmdGVyLCBTdHJpbmcgbmFtZSkKKyAgICB7CisgICAgICAgIHN1cGVyKG5hbWUsIG5ldyBFYXN0ZXJSdWxlKGRheXNBZnRlciwgZmFsc2UpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBob2xpZGF5IHRoYXQgZmFsbHMgYSBzcGVjaWZpZWQgbnVtYmVyIG9mIGRheXMgYmVmb3JlCisgICAgICogb3IgYWZ0ZXIgRWFzdGVyIFN1bmRheSBlYWNoIHllYXIsIHVzaW5nIGVpdGhlciB0aGUgV2VzdGVybgorICAgICAqIG9yIE9ydGhvZG94IGNhbGVuZGFyLgorICAgICAqCisgICAgICogQHBhcmFtIGRheXNBZnRlciBUaGUgbnVtYmVyIG9mIGRheXMgYmVmb3JlICgtKSBvciBhZnRlciAoKykgRWFzdGVyCisgICAgICogQHBhcmFtIG9ydGhvZG94ICBVc2UgdGhlIE9ydGhvZG94IGNhbGVuZGFyPworICAgICAqIEBwYXJhbSBuYW1lICAgICAgVGhlIG5hbWUgb2YgdGhlIGhvbGlkYXkKKyAgICAgKi8KKyAgICBwdWJsaWMgRWFzdGVySG9saWRheShpbnQgZGF5c0FmdGVyLCBib29sZWFuIG9ydGhvZG94LCBTdHJpbmcgbmFtZSkKKyAgICB7CisgICAgICAgIHN1cGVyKG5hbWUsIG5ldyBFYXN0ZXJSdWxlKGRheXNBZnRlciwgb3J0aG9kb3gpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTaHJvdmUgVHVlc2RheSwgYWthIE1hcmRpIEdyYXMsIDQ4IGRheXMgYmVmb3JlIEVhc3RlcgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgRWFzdGVySG9saWRheSBTSFJPVkVfVFVFU0RBWSAgPSBuZXcgRWFzdGVySG9saWRheSgtNDgsICAgICJTaHJvdmUgVHVlc2RheSIpOworCisgICAgLyoqCisgICAgICogQXNoIFdlZG5lc2RheSwgc3RhcnQgb2YgTGVudCwgNDcgZGF5cyBiZWZvcmUgRWFzdGVyCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBFYXN0ZXJIb2xpZGF5IEFTSF9XRURORVNEQVkgICA9IG5ldyBFYXN0ZXJIb2xpZGF5KC00NywgICAgIkFzaCBXZWRuZXNkYXkiKTsKKworICAgIC8qKgorICAgICAqIFBhbG0gU3VuZGF5LCA3IGRheXMgYmVmb3JlIEVhc3RlcgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgRWFzdGVySG9saWRheSBQQUxNX1NVTkRBWSAgICAgPSBuZXcgRWFzdGVySG9saWRheSggLTcsICAgICJQYWxtIFN1bmRheSIpOworCisgICAgLyoqCisgICAgICogTWF1bmR5IFRodXJzZGF5LCAzIGRheXMgYmVmb3JlIEVhc3RlcgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgRWFzdGVySG9saWRheSBNQVVORFlfVEhVUlNEQVkgPSBuZXcgRWFzdGVySG9saWRheSggLTMsICAgICJNYXVuZHkgVGh1cnNkYXkiKTsKKworICAgIC8qKgorICAgICAqIEdvb2QgRnJpZGF5LCAyIGRheXMgYmVmb3JlIEVhc3RlcgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgRWFzdGVySG9saWRheSBHT09EX0ZSSURBWSAgICAgPSBuZXcgRWFzdGVySG9saWRheSggLTIsICAgICJHb29kIEZyaWRheSIpOworCisgICAgLyoqCisgICAgICogRWFzdGVyIFN1bmRheQorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgRWFzdGVySG9saWRheSBFQVNURVJfU1VOREFZICAgPSBuZXcgRWFzdGVySG9saWRheSggIDAsICAgICJFYXN0ZXIgU3VuZGF5Iik7CisKKyAgICAvKioKKyAgICAgKiBFYXN0ZXIgTW9uZGF5LCAxIGRheSBhZnRlciBFYXN0ZXIKKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIEVhc3RlckhvbGlkYXkgRUFTVEVSX01PTkRBWSAgID0gbmV3IEVhc3RlckhvbGlkYXkoICAxLCAgICAiRWFzdGVyIE1vbmRheSIpOworCisgICAgLyoqCisgICAgICogQXNjZW5zaW9uLCAzOSBkYXlzIGFmdGVyIEVhc3RlcgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgRWFzdGVySG9saWRheSBBU0NFTlNJT04gICAgICAgPSBuZXcgRWFzdGVySG9saWRheSggMzksICAgICJBc2NlbnNpb24iKTsKKworICAgIC8qKgorICAgICAqIFBlbnRlY29zdCAoYWthIFdoaXQgU3VuZGF5KSwgNDkgZGF5cyBhZnRlciBFYXN0ZXIKKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIEVhc3RlckhvbGlkYXkgUEVOVEVDT1NUICAgICAgID0gbmV3IEVhc3RlckhvbGlkYXkoIDQ5LCAgICAiUGVudGVjb3N0Iik7CisKKyAgICAvKioKKyAgICAgKiBXaGl0IFN1bmRheSAoYWthIFBlbnRlY29zdCksIDQ5IGRheXMgYWZ0ZXIgRWFzdGVyCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBFYXN0ZXJIb2xpZGF5IFdISVRfU1VOREFZICAgICA9IG5ldyBFYXN0ZXJIb2xpZGF5KCA0OSwgICAgIldoaXQgU3VuZGF5Iik7CisKKyAgICAvKioKKyAgICAgKiBXaGl0IE1vbmRheSwgNTAgZGF5cyBhZnRlciBFYXN0ZXIKKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIEVhc3RlckhvbGlkYXkgV0hJVF9NT05EQVkgICAgID0gbmV3IEVhc3RlckhvbGlkYXkoIDUwLCAgICAiV2hpdCBNb25kYXkiKTsKKworICAgIC8qKgorICAgICAqIENvcnB1cyBDaHJpc3RpLCA2MCBkYXlzIGFmdGVyIEVhc3RlcgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgRWFzdGVySG9saWRheSBDT1JQVVNfQ0hSSVNUSSAgPSBuZXcgRWFzdGVySG9saWRheSggNjAsICAgICJDb3JwdXMgQ2hyaXN0aSIpOworfQorCitjbGFzcyBFYXN0ZXJSdWxlIGltcGxlbWVudHMgRGF0ZVJ1bGUgeworICAgIHB1YmxpYyBFYXN0ZXJSdWxlKGludCBkYXlzQWZ0ZXJFYXN0ZXIsIGJvb2xlYW4gaXNPcnRob2RveCkgeworICAgICAgICB0aGlzLmRheXNBZnRlckVhc3RlciA9IGRheXNBZnRlckVhc3RlcjsKKyAgICAgICAgaWYgKGlzT3J0aG9kb3gpIHsKKyAgICAgICAgICAgIG9ydGhvZG94LnNldEdyZWdvcmlhbkNoYW5nZShuZXcgRGF0ZShMb25nLk1BWF9WQUxVRSkpOworICAgICAgICAgICAgY2FsZW5kYXIgPSBvcnRob2RveDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZmlyc3Qgb2NjdXJyYW5jZSBvZiB0aGlzIHJ1bGUgb24gb3IgYWZ0ZXIgdGhlIGdpdmVuIGRhdGUKKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZSBmaXJzdEFmdGVyKERhdGUgc3RhcnQpCisgICAgeworICAgICAgICBpZiAoc3RhcnREYXRlICE9IG51bGwgJiYgc3RhcnQuYmVmb3JlKHN0YXJ0RGF0ZSkpIHsKKyAgICAgICAgICAgIHN0YXJ0ID0gc3RhcnREYXRlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBkb0ZpcnN0QmV0d2VlbihzdGFydCwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBmaXJzdCBvY2N1cnJhbmNlIG9mIHRoaXMgcnVsZSBvbiBvciBhZnRlcgorICAgICAqIHRoZSBnaXZlbiBzdGFydCBkYXRlIGFuZCBiZWZvcmUgdGhlIGdpdmVuIGVuZCBkYXRlLgorICAgICAqLworICAgIHB1YmxpYyBEYXRlIGZpcnN0QmV0d2VlbihEYXRlIHN0YXJ0LCBEYXRlIGVuZCkKKyAgICB7CisgICAgICAgIC8vIFBpbiB0byB0aGUgbWluL21heCBkYXRlcyBmb3IgdGhpcyBydWxlCisgICAgICAgIGlmIChzdGFydERhdGUgIT0gbnVsbCAmJiBzdGFydC5iZWZvcmUoc3RhcnREYXRlKSkgeworICAgICAgICAgICAgc3RhcnQgPSBzdGFydERhdGU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGRvRmlyc3RCZXR3ZWVuKHN0YXJ0LCBlbmQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBEYXRlIGlzIG9uIHRoZSBzYW1lIGRheSBhcyBFYXN0ZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc09uKERhdGUgZGF0ZSkKKyAgICB7CisgICAgICAgIGlmIChzdGFydERhdGUgIT0gbnVsbCAmJiBkYXRlLmJlZm9yZShzdGFydERhdGUpKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBzeW5jaHJvbml6ZWQoY2FsZW5kYXIpIHsKKyAgICAgICAgICAgIGNhbGVuZGFyLnNldFRpbWUoZGF0ZSk7CisgICAgICAgICAgICBpbnQgZGF5T2ZZZWFyID0gY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkRBWV9PRl9ZRUFSKTsKKworICAgICAgICAgICAgY2FsZW5kYXIuc2V0VGltZShjb21wdXRlSW5ZZWFyKGNhbGVuZGFyLmdldFRpbWUoKSwgY2FsZW5kYXIpKTsKKworICAgICAgICAgICAgcmV0dXJuIGNhbGVuZGFyLmdldChDYWxlbmRhci5EQVlfT0ZfWUVBUikgPT0gZGF5T2ZZZWFyOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgRWFzdGVyIG9jY3VycyBiZXR3ZWVuIHRoZSB0d28gZGF0ZXMgZ2l2ZW4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0JldHdlZW4oRGF0ZSBzdGFydCwgRGF0ZSBlbmQpCisgICAgeworICAgICAgICByZXR1cm4gZmlyc3RCZXR3ZWVuKHN0YXJ0LCBlbmQpICE9IG51bGw7IC8vIFRPRE86IG9wdGltaXplPworICAgIH0KKworICAgIHByaXZhdGUgRGF0ZSBkb0ZpcnN0QmV0d2VlbihEYXRlIHN0YXJ0LCBEYXRlIGVuZCkKKyAgICB7CisgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJkb0ZpcnN0QmV0d2Vlbjogc3RhcnQgICA9ICIgKyBzdGFydC50b1N0cmluZygpKTsKKyAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oImRvRmlyc3RCZXR3ZWVuOiBlbmQgICAgID0gIiArIGVuZC50b1N0cmluZygpKTsKKworICAgICAgICBzeW5jaHJvbml6ZWQoY2FsZW5kYXIpIHsKKyAgICAgICAgICAgIC8vIEZpZ3VyZSBvdXQgd2hlbiB0aGlzIGhvbGlkYXkgbGFuZHMgaW4gdGhlIGdpdmVuIHllYXIKKyAgICAgICAgICAgIERhdGUgcmVzdWx0ID0gY29tcHV0ZUluWWVhcihzdGFydCwgY2FsZW5kYXIpOworCisgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiICAgICAgICAgICAgICAgIHJlc3VsdCAgPSAiICsgcmVzdWx0LnRvU3RyaW5nKCkpOworCisgICAgICAgICAgICAvLyBXZSBtaWdodCBoYXZlIGdvdHRlbiBhIGRhdGUgdGhhdCdzIGluIHRoZSBzYW1lIHllYXIgYXMgInN0YXJ0IiwgYnV0CisgICAgICAgICAgICAvLyBlYXJsaWVyIGluIHRoZSB5ZWFyLiAgSWYgc28sIGdvIHRvIG5leHQgeWVhcgorICAgICAgICAgICAgaWYgKHJlc3VsdC5iZWZvcmUoc3RhcnQpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNhbGVuZGFyLnNldFRpbWUoc3RhcnQpOworICAgICAgICAgICAgICAgIGNhbGVuZGFyLmdldChDYWxlbmRhci5ZRUFSKTsgICAgLy8gSkRLIDEuMS4yIGJ1ZyB3b3JrYXJvdW5kCisgICAgICAgICAgICAgICAgY2FsZW5kYXIuYWRkKENhbGVuZGFyLllFQVIsIDEpOworCisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIiAgICAgICAgICAgICAgICBSZXN1bHQgYmVmb3JlIHN0YXJ0LCBnb2luZyB0byBuZXh0IHllYXI6ICIKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICsgY2FsZW5kYXIuZ2V0VGltZSgpLnRvU3RyaW5nKCkpOworCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gY29tcHV0ZUluWWVhcihjYWxlbmRhci5nZXRUaW1lKCksIGNhbGVuZGFyKTsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiICAgICAgICAgICAgICAgIHJlc3VsdCAgPSAiICsgcmVzdWx0LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoZW5kICE9IG51bGwgJiYgcmVzdWx0LmFmdGVyKGVuZCkpIHsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiUmVzdWx0IGFmdGVyIGVuZCwgcmV0dXJuaW5nIG51bGwiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wdXRlIHRoZSBtb250aCBhbmQgZGF0ZSBvbiB3aGljaCB0aGlzIGhvbGlkYXkgZmFsbHMgaW4gdGhlIHllYXIKKyAgICAgKiBjb250YWluaW5nIHRoZSBkYXRlICJkYXRlIi4gIEZpcnN0IGZpZ3VyZSBvdXQgd2hpY2ggZGF0ZSBFYXN0ZXIKKyAgICAgKiBsYW5kcyBvbiBpbiB0aGlzIHllYXIsIGFuZCB0aGVuIGFkZCB0aGUgb2Zmc2V0IGZvciB0aGlzIGhvbGlkYXkgdG8gZ2V0CisgICAgICogdGhlIHJpZ2h0IGRhdGUuCisgICAgICogPHA+CisgICAgICogVGhlIGFsZ29yaXRobSBoZXJlIGlzIHRha2VuIGZyb20gdGhlCisgICAgICogPGEgaHJlZj1odHRwOi8vd3d3LnBpcC5ka25ldC5kay9+cGlwMTAxNjAvY2FsZW5kYXIuaHRtbD5DYWxlbmRhciBGQVEsCisgICAgICogdmVyc2lvbiAxLjc8L2E+CisgICAgICovCisgICAgcHJpdmF0ZSBEYXRlIGNvbXB1dGVJblllYXIoRGF0ZSBkYXRlLCBHcmVnb3JpYW5DYWxlbmRhciBjYWwpCisgICAgeworICAgICAgICBpZiAoY2FsID09IG51bGwpIGNhbCA9IGNhbGVuZGFyOworCisgICAgICAgIHN5bmNocm9uaXplZChjYWwpIHsKKyAgICAgICAgICAgIGNhbC5zZXRUaW1lKGRhdGUpOworCisgICAgICAgICAgICBpbnQgeWVhciA9IGNhbC5nZXQoQ2FsZW5kYXIuWUVBUik7CisgICAgICAgICAgICBpbnQgZyA9IHllYXIgJSAxOTsgIC8vICJHb2xkZW4gTnVtYmVyIiBvZiB5ZWFyIC0gMQorICAgICAgICAgICAgaW50IGkgPSAwOyAgICAgICAgICAvLyAjIG9mIGRheXMgZnJvbSAzLzIxIHRvIHRoZSBQYXNjaGFsIGZ1bGwgbW9vbgorICAgICAgICAgICAgaW50IGogPSAwOyAgICAgICAgICAvLyBXZWVrZGF5ICgwLWJhc2VkKSBvZiBQYXNjaGFsIGZ1bGwgbW9vbgorCisgICAgICAgICAgICBpZiAoY2FsLmdldFRpbWUoKS5hZnRlciggY2FsLmdldEdyZWdvcmlhbkNoYW5nZSgpKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBXZSdyZSBwYXN0IHRoZSBHcmVnb3JpYW4gc3dpdGNob3Zlciwgc28gdXNlIHRoZSBHcmVnb3JpYW4gcnVsZXMuCisgICAgICAgICAgICAgICAgaW50IGMgPSB5ZWFyIC8gMTAwOworICAgICAgICAgICAgICAgIGludCBoID0gKGMgLSBjLzQgLSAoOCpjKzEzKS8yNSArIDE5KmcgKyAxNSkgJSAzMDsKKyAgICAgICAgICAgICAgICBpID0gaCAtIChoLzI4KSooMSAtIChoLzI4KSooMjkvKGgrMSkpKigoMjEtZykvMTEpKTsKKyAgICAgICAgICAgICAgICBqID0gKHllYXIgKyB5ZWFyLzQgKyBpICsgMiAtIGMgKyBjLzQpICUgNzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBVc2UgdGhlIG9sZCBKdWxpYW4gcnVsZXMuCisgICAgICAgICAgICAgICAgaSA9ICgxOSpnICsgMTUpICUgMzA7CisgICAgICAgICAgICAgICAgaiA9ICh5ZWFyICsgeWVhci80ICsgaSkgJSA3OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IGwgPSBpIC0gajsKKyAgICAgICAgICAgIGludCBtID0gMyArIChsKzQwKS80NDsgICAgICAgICAgICAgIC8vIDEtYmFzZWQgbW9udGggaW4gd2hpY2ggRWFzdGVyIGZhbGxzCisgICAgICAgICAgICBpbnQgZCA9IGwgKyAyOCAtIDMxKihtLzQpOyAgICAgICAgICAvLyBEYXRlIG9mIEVhc3RlciB3aXRoaW4gdGhhdCBtb250aAorCisgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuRVJBLCBHcmVnb3JpYW5DYWxlbmRhci5BRCk7CisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLllFQVIsIHllYXIpOworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5NT05USCwgbS0xKTsgICAgICAgLy8gMC1iYXNlZAorICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5EQVRFLCBkKTsKKyAgICAgICAgICAgIGNhbC5nZXRUaW1lKCk7ICAgICAgICAgICAgICAgICAgICAgIC8vIEpESyAxLjEuMiBidWcgd29ya2Fyb3VuZAorICAgICAgICAgICAgY2FsLmFkZChDYWxlbmRhci5EQVRFLCBkYXlzQWZ0ZXJFYXN0ZXIpOworCisgICAgICAgICAgICByZXR1cm4gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBHcmVnb3JpYW5DYWxlbmRhciBncmVnb3JpYW4gPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIobmV3IFNpbXBsZVRpbWVab25lKDAsICJVVEMiKSk7CisgICAgc3RhdGljIEdyZWdvcmlhbkNhbGVuZGFyIG9ydGhvZG94ID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiVVRDIikpOworCisgICAgaW50ICAgICAgICAgICAgICAgZGF5c0FmdGVyRWFzdGVyOworICAgIERhdGUgICAgICAgICAgICAgIHN0YXJ0RGF0ZSA9IG51bGw7CisgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsZW5kYXIgPSBncmVnb3JpYW47CisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL0dyZWdvcmlhbkNhbGVuZGFyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9HcmVnb3JpYW5DYWxlbmRhci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJlY2E1M2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9HcmVnb3JpYW5DYWxlbmRhci5qYXZhCkBAIC0wLDAgKzEsOTA0IEBACisvKgorKiAgIENvcHlyaWdodCAoQykgMTk5Ni0yMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqLworCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCisvKioKKyAqIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPiBpcyBhIGNvbmNyZXRlIHN1YmNsYXNzIG9mCisgKiB7QGxpbmsgQ2FsZW5kYXJ9CisgKiBhbmQgcHJvdmlkZXMgdGhlIHN0YW5kYXJkIGNhbGVuZGFyIHVzZWQgYnkgbW9zdCBvZiB0aGUgd29ybGQuCisgKgorICogPHA+CisgKiBUaGUgc3RhbmRhcmQgKEdyZWdvcmlhbikgY2FsZW5kYXIgaGFzIDIgZXJhcywgQkMgYW5kIEFELgorICoKKyAqIDxwPgorICogVGhpcyBpbXBsZW1lbnRhdGlvbiBoYW5kbGVzIGEgc2luZ2xlIGRpc2NvbnRpbnVpdHksIHdoaWNoIGNvcnJlc3BvbmRzIGJ5CisgKiBkZWZhdWx0IHRvIHRoZSBkYXRlIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIgd2FzIGluc3RpdHV0ZWQgKE9jdG9iZXIgMTUsIDE1ODIKKyAqIGluIHNvbWUgY291bnRyaWVzLCBsYXRlciBpbiBvdGhlcnMpLiAgVGhlIGN1dG92ZXIgZGF0ZSBtYXkgYmUgY2hhbmdlZCBieSB0aGUKKyAqIGNhbGxlciBieSBjYWxsaW5nIDxjb2RlPnNldEdyZWdvcmlhbkNoYW5nZSgpPC9jb2RlPi4KKyAqCisgKiA8cD4KKyAqIEhpc3RvcmljYWxseSwgaW4gdGhvc2UgY291bnRyaWVzIHdoaWNoIGFkb3B0ZWQgdGhlIEdyZWdvcmlhbiBjYWxlbmRhciBmaXJzdCwKKyAqIE9jdG9iZXIgNCwgMTU4MiB3YXMgdGh1cyBmb2xsb3dlZCBieSBPY3RvYmVyIDE1LCAxNTgyLiBUaGlzIGNhbGVuZGFyIG1vZGVscworICogdGhpcyBjb3JyZWN0bHkuICBCZWZvcmUgdGhlIEdyZWdvcmlhbiBjdXRvdmVyLCA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4KKyAqIGltcGxlbWVudHMgdGhlIEp1bGlhbiBjYWxlbmRhci4gIFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgR3JlZ29yaWFuCisgKiBhbmQgdGhlIEp1bGlhbiBjYWxlbmRhciBpcyB0aGUgbGVhcCB5ZWFyIHJ1bGUuIFRoZSBKdWxpYW4gY2FsZW5kYXIgc3BlY2lmaWVzCisgKiBsZWFwIHllYXJzIGV2ZXJ5IGZvdXIgeWVhcnMsIHdoZXJlYXMgdGhlIEdyZWdvcmlhbiBjYWxlbmRhciBvbWl0cyBjZW50dXJ5CisgKiB5ZWFycyB3aGljaCBhcmUgbm90IGRpdmlzaWJsZSBieSA0MDAuCisgKgorICogPHA+CisgKiA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4gaW1wbGVtZW50cyA8ZW0+cHJvbGVwdGljPC9lbT4gR3JlZ29yaWFuIGFuZAorICogSnVsaWFuIGNhbGVuZGFycy4gVGhhdCBpcywgZGF0ZXMgYXJlIGNvbXB1dGVkIGJ5IGV4dHJhcG9sYXRpbmcgdGhlIGN1cnJlbnQKKyAqIHJ1bGVzIGluZGVmaW5pdGVseSBmYXIgYmFja3dhcmQgYW5kIGZvcndhcmQgaW4gdGltZS4gQXMgYSByZXN1bHQsCisgKiA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4gbWF5IGJlIHVzZWQgZm9yIGFsbCB5ZWFycyB0byBnZW5lcmF0ZQorICogbWVhbmluZ2Z1bCBhbmQgY29uc2lzdGVudCByZXN1bHRzLiBIb3dldmVyLCBkYXRlcyBvYnRhaW5lZCB1c2luZworICogPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+IGFyZSBoaXN0b3JpY2FsbHkgYWNjdXJhdGUgb25seSBmcm9tIE1hcmNoIDEsIDQKKyAqIEFEIG9ud2FyZCwgd2hlbiBtb2Rlcm4gSnVsaWFuIGNhbGVuZGFyIHJ1bGVzIHdlcmUgYWRvcHRlZC4gIEJlZm9yZSB0aGlzIGRhdGUsCisgKiBsZWFwIHllYXIgcnVsZXMgd2VyZSBhcHBsaWVkIGlycmVndWxhcmx5LCBhbmQgYmVmb3JlIDQ1IEJDIHRoZSBKdWxpYW4KKyAqIGNhbGVuZGFyIGRpZCBub3QgZXZlbiBleGlzdC4KKyAqCisgKiA8cD4KKyAqIFByaW9yIHRvIHRoZSBpbnN0aXR1dGlvbiBvZiB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyLCBOZXcgWWVhcidzIERheSB3YXMKKyAqIE1hcmNoIDI1LiBUbyBhdm9pZCBjb25mdXNpb24sIHRoaXMgY2FsZW5kYXIgYWx3YXlzIHVzZXMgSmFudWFyeSAxLiBBIG1hbnVhbAorICogYWRqdXN0bWVudCBtYXkgYmUgbWFkZSBpZiBkZXNpcmVkIGZvciBkYXRlcyB0aGF0IGFyZSBwcmlvciB0byB0aGUgR3JlZ29yaWFuCisgKiBjaGFuZ2VvdmVyIGFuZCB3aGljaCBmYWxsIGJldHdlZW4gSmFudWFyeSAxIGFuZCBNYXJjaCAyNC4KKyAqCisgKiA8cD5WYWx1ZXMgY2FsY3VsYXRlZCBmb3IgdGhlIDxjb2RlPldFRUtfT0ZfWUVBUjwvY29kZT4gZmllbGQgcmFuZ2UgZnJvbSAxIHRvCisgKiA1My4gIFdlZWsgMSBmb3IgYSB5ZWFyIGlzIHRoZSBlYXJsaWVzdCBzZXZlbiBkYXkgcGVyaW9kIHN0YXJ0aW5nIG9uCisgKiA8Y29kZT5nZXRGaXJzdERheU9mV2VlaygpPC9jb2RlPiB0aGF0IGNvbnRhaW5zIGF0IGxlYXN0CisgKiA8Y29kZT5nZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCk8L2NvZGU+IGRheXMgZnJvbSB0aGF0IHllYXIuICBJdCB0aHVzCisgKiBkZXBlbmRzIG9uIHRoZSB2YWx1ZXMgb2YgPGNvZGU+Z2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpPC9jb2RlPiwKKyAqIDxjb2RlPmdldEZpcnN0RGF5T2ZXZWVrKCk8L2NvZGU+LCBhbmQgdGhlIGRheSBvZiB0aGUgd2VlayBvZiBKYW51YXJ5IDEuCisgKiBXZWVrcyBiZXR3ZWVuIHdlZWsgMSBvZiBvbmUgeWVhciBhbmQgd2VlayAxIG9mIHRoZSBmb2xsb3dpbmcgeWVhciBhcmUKKyAqIG51bWJlcmVkIHNlcXVlbnRpYWxseSBmcm9tIDIgdG8gNTIgb3IgNTMgKGFzIG5lZWRlZCkuCisKKyAqIDxwPkZvciBleGFtcGxlLCBKYW51YXJ5IDEsIDE5OTggd2FzIGEgVGh1cnNkYXkuICBJZgorICogPGNvZGU+Z2V0Rmlyc3REYXlPZldlZWsoKTwvY29kZT4gaXMgPGNvZGU+TU9OREFZPC9jb2RlPiBhbmQKKyAqIDxjb2RlPmdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKTwvY29kZT4gaXMgNCAodGhlc2UgYXJlIHRoZSB2YWx1ZXMKKyAqIHJlZmxlY3RpbmcgSVNPIDg2MDEgYW5kIG1hbnkgbmF0aW9uYWwgc3RhbmRhcmRzKSwgdGhlbiB3ZWVrIDEgb2YgMTk5OCBzdGFydHMKKyAqIG9uIERlY2VtYmVyIDI5LCAxOTk3LCBhbmQgZW5kcyBvbiBKYW51YXJ5IDQsIDE5OTguICBJZiwgaG93ZXZlciwKKyAqIDxjb2RlPmdldEZpcnN0RGF5T2ZXZWVrKCk8L2NvZGU+IGlzIDxjb2RlPlNVTkRBWTwvY29kZT4sIHRoZW4gd2VlayAxIG9mIDE5OTgKKyAqIHN0YXJ0cyBvbiBKYW51YXJ5IDQsIDE5OTgsIGFuZCBlbmRzIG9uIEphbnVhcnkgMTAsIDE5OTg7IHRoZSBmaXJzdCB0aHJlZSBkYXlzCisgKiBvZiAxOTk4IHRoZW4gYXJlIHBhcnQgb2Ygd2VlayA1MyBvZiAxOTk3LgorICoKKyAqIDxwPlZhbHVlcyBjYWxjdWxhdGVkIGZvciB0aGUgPGNvZGU+V0VFS19PRl9NT05USDwvY29kZT4gZmllbGQgcmFuZ2UgZnJvbSAwIG9yCisgKiAxIHRvIDQgb3IgNS4gIFdlZWsgMSBvZiBhIG1vbnRoICh0aGUgZGF5cyB3aXRoIDxjb2RlPldFRUtfT0ZfTU9OVEggPQorICogMTwvY29kZT4pIGlzIHRoZSBlYXJsaWVzdCBzZXQgb2YgYXQgbGVhc3QKKyAqIDxjb2RlPmdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKTwvY29kZT4gY29udGlndW91cyBkYXlzIGluIHRoYXQgbW9udGgsCisgKiBlbmRpbmcgb24gdGhlIGRheSBiZWZvcmUgPGNvZGU+Z2V0Rmlyc3REYXlPZldlZWsoKTwvY29kZT4uICBVbmxpa2UKKyAqIHdlZWsgMSBvZiBhIHllYXIsIHdlZWsgMSBvZiBhIG1vbnRoIG1heSBiZSBzaG9ydGVyIHRoYW4gNyBkYXlzLCBuZWVkCisgKiBub3Qgc3RhcnQgb24gPGNvZGU+Z2V0Rmlyc3REYXlPZldlZWsoKTwvY29kZT4sIGFuZCB3aWxsIG5vdCBpbmNsdWRlIGRheXMgb2YKKyAqIHRoZSBwcmV2aW91cyBtb250aC4gIERheXMgb2YgYSBtb250aCBiZWZvcmUgd2VlayAxIGhhdmUgYQorICogPGNvZGU+V0VFS19PRl9NT05USDwvY29kZT4gb2YgMC4KKyAqCisgKiA8cD5Gb3IgZXhhbXBsZSwgaWYgPGNvZGU+Z2V0Rmlyc3REYXlPZldlZWsoKTwvY29kZT4gaXMgPGNvZGU+U1VOREFZPC9jb2RlPgorICogYW5kIDxjb2RlPmdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKTwvY29kZT4gaXMgNCwgdGhlbiB0aGUgZmlyc3Qgd2VlayBvZgorICogSmFudWFyeSAxOTk4IGlzIFN1bmRheSwgSmFudWFyeSA0IHRocm91Z2ggU2F0dXJkYXksIEphbnVhcnkgMTAuICBUaGVzZSBkYXlzCisgKiBoYXZlIGEgPGNvZGU+V0VFS19PRl9NT05USDwvY29kZT4gb2YgMS4gIFRodXJzZGF5LCBKYW51YXJ5IDEgdGhyb3VnaAorICogU2F0dXJkYXksIEphbnVhcnkgMyBoYXZlIGEgPGNvZGU+V0VFS19PRl9NT05USDwvY29kZT4gb2YgMC4gIElmCisgKiA8Y29kZT5nZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCk8L2NvZGU+IGlzIGNoYW5nZWQgdG8gMywgdGhlbiBKYW51YXJ5IDEKKyAqIHRocm91Z2ggSmFudWFyeSAzIGhhdmUgYSA8Y29kZT5XRUVLX09GX01PTlRIPC9jb2RlPiBvZiAxLgorICoKKyAqIDxwPgorICogPHN0cm9uZz5FeGFtcGxlOjwvc3Ryb25nPgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogLy8gZ2V0IHRoZSBzdXBwb3J0ZWQgaWRzIGZvciBHTVQtMDg6MDAgKFBhY2lmaWMgU3RhbmRhcmQgVGltZSkKKyAqIFN0cmluZ1tdIGlkcyA9IFRpbWVab25lLmdldEF2YWlsYWJsZUlEcygtOCAqIDYwICogNjAgKiAxMDAwKTsKKyAqIC8vIGlmIG5vIGlkcyB3ZXJlIHJldHVybmVkLCBzb21ldGhpbmcgaXMgd3JvbmcuIGdldCBvdXQuCisgKiBpZiAoaWRzLmxlbmd0aCA9PSAwKQorICogICAgIFN5c3RlbS5leGl0KDApOworICoKKyAqICAvLyBiZWdpbiBvdXRwdXQKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiQ3VycmVudCBUaW1lIik7CisgKgorICogLy8gY3JlYXRlIGEgUGFjaWZpYyBTdGFuZGFyZCBUaW1lIHRpbWUgem9uZQorICogU2ltcGxlVGltZVpvbmUgcGR0ID0gbmV3IFNpbXBsZVRpbWVab25lKC04ICogNjAgKiA2MCAqIDEwMDAsIGlkc1swXSk7CisgKgorICogLy8gc2V0IHVwIHJ1bGVzIGZvciBkYXlsaWdodCBzYXZpbmdzIHRpbWUKKyAqIHBkdC5zZXRTdGFydFJ1bGUoQ2FsZW5kYXIuQVBSSUwsIDEsIENhbGVuZGFyLlNVTkRBWSwgMiAqIDYwICogNjAgKiAxMDAwKTsKKyAqIHBkdC5zZXRFbmRSdWxlKENhbGVuZGFyLk9DVE9CRVIsIC0xLCBDYWxlbmRhci5TVU5EQVksIDIgKiA2MCAqIDYwICogMTAwMCk7CisgKgorICogLy8gY3JlYXRlIGEgR3JlZ29yaWFuQ2FsZW5kYXIgd2l0aCB0aGUgUGFjaWZpYyBEYXlsaWdodCB0aW1lIHpvbmUKKyAqIC8vIGFuZCB0aGUgY3VycmVudCBkYXRlIGFuZCB0aW1lCisgKiBDYWxlbmRhciBjYWxlbmRhciA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcihwZHQpOworICogRGF0ZSB0cmlhbFRpbWUgPSBuZXcgRGF0ZSgpOworICogY2FsZW5kYXIuc2V0VGltZSh0cmlhbFRpbWUpOworICoKKyAqIC8vIHByaW50IG91dCBhIGJ1bmNoIG9mIGludGVyZXN0aW5nIHRoaW5ncworICogU3lzdGVtLm91dC5wcmludGxuKCJFUkE6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuRVJBKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIllFQVI6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuWUVBUikpOworICogU3lzdGVtLm91dC5wcmludGxuKCJNT05USDogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5NT05USCkpOworICogU3lzdGVtLm91dC5wcmludGxuKCJXRUVLX09GX1lFQVI6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuV0VFS19PRl9ZRUFSKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIldFRUtfT0ZfTU9OVEg6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuV0VFS19PRl9NT05USCkpOworICogU3lzdGVtLm91dC5wcmludGxuKCJEQVRFOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkRBVEUpKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiREFZX09GX01PTlRIOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCkpOworICogU3lzdGVtLm91dC5wcmludGxuKCJEQVlfT0ZfWUVBUjogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5EQVlfT0ZfWUVBUikpOworICogU3lzdGVtLm91dC5wcmludGxuKCJEQVlfT0ZfV0VFSzogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSykpOworICogU3lzdGVtLm91dC5wcmludGxuKCJEQVlfT0ZfV0VFS19JTl9NT05USDogIgorICogICAgICAgICAgICAgICAgICAgICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLX0lOX01PTlRIKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkFNX1BNOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkFNX1BNKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkhPVVI6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuSE9VUikpOworICogU3lzdGVtLm91dC5wcmludGxuKCJIT1VSX09GX0RBWTogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSkpOworICogU3lzdGVtLm91dC5wcmludGxuKCJNSU5VVEU6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuTUlOVVRFKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIlNFQ09ORDogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5TRUNPTkQpKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiTUlMTElTRUNPTkQ6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQpKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiWk9ORV9PRkZTRVQ6ICIKKyAqICAgICAgICAgICAgICAgICAgICArIChjYWxlbmRhci5nZXQoQ2FsZW5kYXIuWk9ORV9PRkZTRVQpLyg2MCo2MCoxMDAwKSkpOworICogU3lzdGVtLm91dC5wcmludGxuKCJEU1RfT0ZGU0VUOiAiCisgKiAgICAgICAgICAgICAgICAgICAgKyAoY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkRTVF9PRkZTRVQpLyg2MCo2MCoxMDAwKSkpOworCisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkN1cnJlbnQgVGltZSwgd2l0aCBob3VyIHJlc2V0IHRvIDMiKTsKKyAqIGNhbGVuZGFyLmNsZWFyKENhbGVuZGFyLkhPVVJfT0ZfREFZKTsgLy8gc28gZG9lc24ndCBvdmVycmlkZQorICogY2FsZW5kYXIuc2V0KENhbGVuZGFyLkhPVVIsIDMpOworICogU3lzdGVtLm91dC5wcmludGxuKCJFUkE6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuRVJBKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIllFQVI6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuWUVBUikpOworICogU3lzdGVtLm91dC5wcmludGxuKCJNT05USDogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5NT05USCkpOworICogU3lzdGVtLm91dC5wcmludGxuKCJXRUVLX09GX1lFQVI6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuV0VFS19PRl9ZRUFSKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIldFRUtfT0ZfTU9OVEg6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuV0VFS19PRl9NT05USCkpOworICogU3lzdGVtLm91dC5wcmludGxuKCJEQVRFOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkRBVEUpKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiREFZX09GX01PTlRIOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCkpOworICogU3lzdGVtLm91dC5wcmludGxuKCJEQVlfT0ZfWUVBUjogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5EQVlfT0ZfWUVBUikpOworICogU3lzdGVtLm91dC5wcmludGxuKCJEQVlfT0ZfV0VFSzogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSykpOworICogU3lzdGVtLm91dC5wcmludGxuKCJEQVlfT0ZfV0VFS19JTl9NT05USDogIgorICogICAgICAgICAgICAgICAgICAgICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLX0lOX01PTlRIKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkFNX1BNOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkFNX1BNKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkhPVVI6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuSE9VUikpOworICogU3lzdGVtLm91dC5wcmludGxuKCJIT1VSX09GX0RBWTogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSkpOworICogU3lzdGVtLm91dC5wcmludGxuKCJNSU5VVEU6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuTUlOVVRFKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIlNFQ09ORDogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5TRUNPTkQpKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiTUlMTElTRUNPTkQ6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQpKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiWk9ORV9PRkZTRVQ6ICIKKyAqICAgICAgICArIChjYWxlbmRhci5nZXQoQ2FsZW5kYXIuWk9ORV9PRkZTRVQpLyg2MCo2MCoxMDAwKSkpOyAvLyBpbiBob3VycworICogU3lzdGVtLm91dC5wcmludGxuKCJEU1RfT0ZGU0VUOiAiCisgKiAgICAgICAgKyAoY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkRTVF9PRkZTRVQpLyg2MCo2MCoxMDAwKSkpOyAvLyBpbiBob3VycworICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogQHNlZSAgICAgICAgICBDYWxlbmRhcgorICogQHNlZSAgICAgICAgICBUaW1lWm9uZQorICogQHZlcnNpb24gICAgICAxLjUyCisgKiBAYXV0aG9yIERhdmlkIEdvbGRzbWl0aCwgTWFyayBEYXZpcywgQ2hlbi1MaWVoIEh1YW5nLCBBbGFuIExpdQorICogQHNpbmNlIEpESzEuMQorICovCitwdWJsaWMgY2xhc3MgR3JlZ29yaWFuQ2FsZW5kYXIgZXh0ZW5kcyBDYWxlbmRhciB7CisgICAgLyoKKyAgICAgKiBJbXBsZW1lbnRhdGlvbiBOb3RlcworICAgICAqCisgICAgICogVGhlIEp1bGlhbiBkYXkgbnVtYmVyLCBhcyB1c2VkIGhlcmUsIGlzIGEgbW9kaWZpZWQgbnVtYmVyIHdoaWNoIGhhcyBpdHMKKyAgICAgKiBvbnNldCBhdCBtaWRuaWdodCwgcmF0aGVyIHRoYW4gbm9vbi4KKyAgICAgKgorICAgICAqIFRoZSBlcG9jaCBpcyB0aGUgbnVtYmVyIG9mIGRheXMgb3IgbWlsbGlzZWNvbmRzIGZyb20gc29tZSBkZWZpbmVkCisgICAgICogc3RhcnRpbmcgcG9pbnQuIFRoZSBlcG9jaCBmb3IgamF2YS51dGlsLkRhdGUgaXMgdXNlZCBoZXJlOyB0aGF0IGlzLAorICAgICAqIG1pbGxpc2Vjb25kcyBmcm9tIEphbnVhcnkgMSwgMTk3MCAoR3JlZ29yaWFuKSwgbWlkbmlnaHQgVVRDLiAgT3RoZXIKKyAgICAgKiBlcG9jaHMgd2hpY2ggYXJlIHVzZWQgYXJlIEphbnVhcnkgMSwgeWVhciAxIChHcmVnb3JpYW4pLCB3aGljaCBpcyBkYXkgMQorICAgICAqIG9mIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIsIGFuZCBEZWNlbWJlciAzMCwgeWVhciAwIChHcmVnb3JpYW4pLCB3aGljaCBpcworICAgICAqIGRheSAxIG9mIHRoZSBKdWxpYW4gY2FsZW5kYXIuCisgICAgICoKKyAgICAgKiBXZSBpbXBsZW1lbnQgdGhlIHByb2xlcHRpYyBKdWxpYW4gYW5kIEdyZWdvcmlhbiBjYWxlbmRhcnMuICBUaGlzIG1lYW5zIHdlCisgICAgICogaW1wbGVtZW50IHRoZSBtb2Rlcm4gZGVmaW5pdGlvbiBvZiB0aGUgY2FsZW5kYXIgZXZlbiB0aG91Z2ggdGhlCisgICAgICogaGlzdG9yaWNhbCB1c2FnZSBkaWZmZXJzLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBHcmVnb3JpYW4gY2hhbmdlIGlzIHNldAorICAgICAqIHRvIG5ldyBEYXRlKExvbmcuTUlOX1ZBTFVFKSwgd2UgaGF2ZSBhIHB1cmUgR3JlZ29yaWFuIGNhbGVuZGFyIHdoaWNoCisgICAgICogbGFiZWxzIGRhdGVzIHByZWNlZGluZyB0aGUgaW52ZW50aW9uIG9mIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIgaW4gMTU4MiBhcworICAgICAqIGlmIHRoZSBjYWxlbmRhciBleGlzdGVkIHRoZW4uCisgICAgICoKKyAgICAgKiBMaWtld2lzZSwgd2l0aCB0aGUgSnVsaWFuIGNhbGVuZGFyLCB3ZSBhc3N1bWUgYSBjb25zaXN0ZW50IDQteWVhciBsZWFwCisgICAgICogcnVsZSwgZXZlbiB0aG91Z2ggdGhlIGhpc3RvcmljYWwgcGF0dGVybiBvZiBsZWFwIHllYXJzIGlzIGlycmVndWxhciwKKyAgICAgKiBiZWluZyBldmVyeSAzIHllYXJzIGZyb20gNDUgQkMgdGhyb3VnaCA5IEJDLCB0aGVuIGV2ZXJ5IDQgeWVhcnMgZnJvbSA4IEFECisgICAgICogb253YXJkcywgd2l0aCBubyBsZWFwIHllYXJzIGluLWJldHdlZW4uICBUaHVzIGRhdGUgY29tcHV0YXRpb25zIGFuZAorICAgICAqIGZ1bmN0aW9ucyBzdWNoIGFzIGlzTGVhcFllYXIoKSBhcmUgbm90IGludGVuZGVkIHRvIGJlIGhpc3RvcmljYWxseQorICAgICAqIGFjY3VyYXRlLgorICAgICAqCisgICAgICogR2l2ZW4gdGhhdCBtaWxsaXNlY29uZHMgYXJlIGEgbG9uZywgZGF5IG51bWJlcnMgc3VjaCBhcyBKdWxpYW4gZGF5CisgICAgICogbnVtYmVycywgR3JlZ29yaWFuIG9yIEp1bGlhbiBjYWxlbmRhciBkYXlzLCBvciBlcG9jaCBkYXlzLCBhcmUgYWxzbworICAgICAqIGxvbmdzLiBZZWFycyBjYW4gZml0IGludG8gYW4gaW50LgorICAgICAqLworCisvLy8vLy8vLy8vLy8vLy8vLy8KKy8vIENsYXNzIFZhcmlhYmxlcworLy8vLy8vLy8vLy8vLy8vLy8vCisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+RVJBPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nCisgICAgICogdGhlIHBlcmlvZCBiZWZvcmUgdGhlIGNvbW1vbiBlcmEgKGJlZm9yZSBDaHJpc3QpLCBhbHNvIGtub3duIGFzIEJDRS4KKyAgICAgKiBUaGUgc2VxdWVuY2Ugb2YgeWVhcnMgYXQgdGhlIHRyYW5zaXRpb24gZnJvbSA8Y29kZT5CQzwvY29kZT4gdG8gPGNvZGU+QUQ8L2NvZGU+IGlzCisgICAgICogLi4uLCAyIEJDLCAxIEJDLCAxIEFELCAyIEFELC4uLgorICAgICAqIEBzZWUgQ2FsZW5kYXIjRVJBCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQkMgPSAwOworCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPkVSQTwvY29kZT4gZmllbGQgaW5kaWNhdGluZworICAgICAqIHRoZSBjb21tb24gZXJhIChBbm5vIERvbWluaSksIGFsc28ga25vd24gYXMgQ0UuCisgICAgICogVGhlIHNlcXVlbmNlIG9mIHllYXJzIGF0IHRoZSB0cmFuc2l0aW9uIGZyb20gPGNvZGU+QkM8L2NvZGU+IHRvIDxjb2RlPkFEPC9jb2RlPiBpcworICAgICAqIC4uLiwgMiBCQywgMSBCQywgMSBBRCwgMiBBRCwuLi4KKyAgICAgKiBAc2VlIENhbGVuZGFyI0VSQQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFEID0gMTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFUE9DSF9ZRUFSID0gMTk3MDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludFtdW10gTU9OVEhfQ09VTlQgPSB7CisgICAgICAgIC8vbGVuIGxlbjIgICBzdCAgc3QyCisgICAgICAgIHsgIDMxLCAgMzEsICAgMCwgICAwIH0sIC8vIEphbgorICAgICAgICB7ICAyOCwgIDI5LCAgMzEsICAzMSB9LCAvLyBGZWIKKyAgICAgICAgeyAgMzEsICAzMSwgIDU5LCAgNjAgfSwgLy8gTWFyCisgICAgICAgIHsgIDMwLCAgMzAsICA5MCwgIDkxIH0sIC8vIEFwcgorICAgICAgICB7ICAzMSwgIDMxLCAxMjAsIDEyMSB9LCAvLyBNYXkKKyAgICAgICAgeyAgMzAsICAzMCwgMTUxLCAxNTIgfSwgLy8gSnVuCisgICAgICAgIHsgIDMxLCAgMzEsIDE4MSwgMTgyIH0sIC8vIEp1bAorICAgICAgICB7ICAzMSwgIDMxLCAyMTIsIDIxMyB9LCAvLyBBdWcKKyAgICAgICAgeyAgMzAsICAzMCwgMjQzLCAyNDQgfSwgLy8gU2VwCisgICAgICAgIHsgIDMxLCAgMzEsIDI3MywgMjc0IH0sIC8vIE9jdAorICAgICAgICB7ICAzMCwgIDMwLCAzMDQsIDMwNSB9LCAvLyBOb3YKKyAgICAgICAgeyAgMzEsICAzMSwgMzM0LCAzMzUgfSAgLy8gRGVjCisgICAgICAgIC8vIGxlbiAgbGVuZ3RoIG9mIG1vbnRoCisgICAgICAgIC8vIGxlbjIgbGVuZ3RoIG9mIG1vbnRoIGluIGEgbGVhcCB5ZWFyCisgICAgICAgIC8vIHN0ICAgZGF5cyBpbiB5ZWFyIGJlZm9yZSBzdGFydCBvZiBtb250aAorICAgICAgICAvLyBzdDIgIGRheXMgaW4geWVhciBiZWZvcmUgbW9udGggaW4gbGVhcCB5ZWFyCisgICAgfTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBPbGQgeWVhciBsaW1pdHMgd2VyZSBsZWFzdCBtYXggMjkyMjY5MDU0LCBtYXggMjkyMjc4OTk0LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMSU1JVFNbXVtdID0geworICAgICAgICAvLyBNaW5pbXVtICBHcmVhdGVzdCAgICBMZWFzdCAgTWF4aW11bQorICAgICAgICAvLyAgICAgICAgICAgTWluaW11bSAgTWF4aW11bQorICAgICAgICB7ICAgICAgICAwLCAgICAgICAgMCwgICAgICAgMSwgICAgICAgMSB9LCAvLyBFUkEKKyAgICAgICAgeyAgICAgICAgMSwgICAgICAgIDEsIDU4Mjg5NjMsIDU4MzgyNzAgfSwgLy8gWUVBUgorICAgICAgICB7ICAgICAgICAwLCAgICAgICAgMCwgICAgICAxMSwgICAgICAxMSB9LCAvLyBNT05USAorICAgICAgICB7ICAgICAgICAxLCAgICAgICAgMSwgICAgICA1MiwgICAgICA1MyB9LCAvLyBXRUVLX09GX1lFQVIKKyAgICAgICAgeyAgICAgICAgMCwgICAgICAgIDAsICAgICAgIDQsICAgICAgIDYgfSwgLy8gV0VFS19PRl9NT05USAorICAgICAgICB7ICAgICAgICAxLCAgICAgICAgMSwgICAgICAyOCwgICAgICAzMSB9LCAvLyBEQVlfT0ZfTU9OVEgKKyAgICAgICAgeyAgICAgICAgMSwgICAgICAgIDEsICAgICAzNjUsICAgICAzNjYgfSwgLy8gREFZX09GX1lFQVIKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gREFZX09GX1dFRUsKKyAgICAgICAgeyAgICAgICAtMSwgICAgICAgLTEsICAgICAgIDQsICAgICAgIDYgfSwgLy8gREFZX09GX1dFRUtfSU5fTU9OVEgKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gQU1fUE0KKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gSE9VUgorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBIT1VSX09GX0RBWQorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBNSU5VVEUKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gU0VDT05ECisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIE1JTExJU0VDT05ECisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIFpPTkVfT0ZGU0VUCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIERTVF9PRkZTRVQKKyAgICAgICAgeyAtNTgzODI3MCwgLTU4MzgyNzAsIDU4Mjg5NjQsIDU4MzgyNzEgfSwgLy8gWUVBUl9XT1kKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gRE9XX0xPQ0FMCisgICAgICAgIHsgLTU4MzgyNjksIC01ODM4MjY5LCA1ODI4OTYzLCA1ODM4MjcwIH0sIC8vIEVYVEVOREVEX1lFQVIKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gSlVMSUFOX0RBWQorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBNSUxMSVNFQ09ORFNfSU5fREFZCisgICAgfTsKKworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0TGltaXQoaW50IGZpZWxkLCBpbnQgbGltaXRUeXBlKSB7CisgICAgICAgIHJldHVybiBMSU1JVFNbZmllbGRdW2xpbWl0VHlwZV07CisgICAgfQorCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEluc3RhbmNlIFZhcmlhYmxlcworLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKyAgICAvKioKKyAgICAgKiBUaGUgcG9pbnQgYXQgd2hpY2ggdGhlIEdyZWdvcmlhbiBjYWxlbmRhciBydWxlcyBhcmUgdXNlZCwgbWVhc3VyZWQgaW4KKyAgICAgKiBtaWxsaXNlY29uZHMgZnJvbSB0aGUgc3RhbmRhcmQgZXBvY2guICBEZWZhdWx0IGlzIE9jdG9iZXIgMTUsIDE1ODIKKyAgICAgKiAoR3JlZ29yaWFuKSAwMDowMDowMCBVVEMgb3IgLTEyMjE5MjkyODAwMDAwTC4gIEZvciB0aGlzIHZhbHVlLCBPY3RvYmVyIDQsCisgICAgICogMTU4MiAoSnVsaWFuKSBpcyBmb2xsb3dlZCBieSBPY3RvYmVyIDE1LCAxNTgyIChHcmVnb3JpYW4pLiAgVGhpcworICAgICAqIGNvcnJlc3BvbmRzIHRvIEp1bGlhbiBkYXkgbnVtYmVyIDIyOTkxNjEuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgbG9uZyBncmVnb3JpYW5DdXRvdmVyID0gLTEyMjE5MjkyODAwMDAwTDsKKworICAgIC8qKgorICAgICAqIEp1bGlhbiBkYXkgbnVtYmVyIG9mIHRoZSBHcmVnb3JpYW4gY3V0b3Zlci4KKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBpbnQgY3V0b3Zlckp1bGlhbkRheSA9IDIyOTkxNjE7CisgICAgCisgICAgLyoqCisgICAgICogVGhlIHllYXIgb2YgdGhlIGdyZWdvcmlhbkN1dG92ZXIsIHdpdGggMCByZXByZXNlbnRpbmcKKyAgICAgKiAxIEJDLCAtMSByZXByZXNlbnRpbmcgMiBCQywgZXRjLgorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IGludCBncmVnb3JpYW5DdXRvdmVyWWVhciA9IDE1ODI7CisKKyAgICAvKioKKyAgICAgKiBVc2VkIGJ5IGhhbmRsZUNvbXB1dGVKdWxpYW5EYXkoKSBhbmQgaGFuZGxlQ29tcHV0ZU1vbnRoU3RhcnQoKS4KKyAgICAgKi8KKyAgICB0cmFuc2llbnQgcHJvdGVjdGVkIGJvb2xlYW4gaXNHcmVnb3JpYW47CisKKyAgICAvKioKKyAgICAgKiBVc2VkIGJ5IGhhbmRsZUNvbXB1dGVKdWxpYW5EYXkoKSBhbmQgaGFuZGxlQ29tcHV0ZU1vbnRoU3RhcnQoKS4KKyAgICAgKi8KKyAgICB0cmFuc2llbnQgcHJvdGVjdGVkIGJvb2xlYW4gaW52ZXJ0R3JlZ29yaWFuOworCisvLy8vLy8vLy8vLy8vLy8KKy8vIENvbnN0cnVjdG9ycworLy8vLy8vLy8vLy8vLy8vCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgZGVmYXVsdCBHcmVnb3JpYW5DYWxlbmRhciB1c2luZyB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqLworICAgIHB1YmxpYyBHcmVnb3JpYW5DYWxlbmRhcigpIHsKKyAgICAgICAgdGhpcyhUaW1lWm9uZS5nZXREZWZhdWx0KCksIExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBHcmVnb3JpYW5DYWxlbmRhciBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGdpdmVuIHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gem9uZSB0aGUgZ2l2ZW4gdGltZSB6b25lLgorICAgICAqLworICAgIHB1YmxpYyBHcmVnb3JpYW5DYWxlbmRhcihUaW1lWm9uZSB6b25lKSB7CisgICAgICAgIHRoaXMoem9uZSwgTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIEdyZWdvcmlhbkNhbGVuZGFyIGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBwYXJhbSBhTG9jYWxlIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICovCisgICAgcHVibGljIEdyZWdvcmlhbkNhbGVuZGFyKExvY2FsZSBhTG9jYWxlKSB7CisgICAgICAgIHRoaXMoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBhTG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgR3JlZ29yaWFuQ2FsZW5kYXIgYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBnaXZlbiB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBwYXJhbSB6b25lIHRoZSBnaXZlbiB0aW1lIHpvbmUuCisgICAgICogQHBhcmFtIGFMb2NhbGUgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgR3JlZ29yaWFuQ2FsZW5kYXIoVGltZVpvbmUgem9uZSwgTG9jYWxlIGFMb2NhbGUpIHsKKyAgICAgICAgc3VwZXIoem9uZSwgYUxvY2FsZSk7CisgICAgICAgIHNldFRpbWVJbk1pbGxpcyhTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIEdyZWdvcmlhbkNhbGVuZGFyIHdpdGggdGhlIGdpdmVuIGRhdGUgc2V0CisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBwYXJhbSB5ZWFyIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgWUVBUiB0aW1lIGZpZWxkIGluIHRoZSBjYWxlbmRhci4KKyAgICAgKiBAcGFyYW0gbW9udGggdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBNT05USCB0aW1lIGZpZWxkIGluIHRoZSBjYWxlbmRhci4KKyAgICAgKiBNb250aCB2YWx1ZSBpcyAwLWJhc2VkLiBlLmcuLCAwIGZvciBKYW51YXJ5LgorICAgICAqIEBwYXJhbSBkYXRlIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgREFURSB0aW1lIGZpZWxkIGluIHRoZSBjYWxlbmRhci4KKyAgICAgKi8KKyAgICBwdWJsaWMgR3JlZ29yaWFuQ2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUpIHsKKyAgICAgICAgc3VwZXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgc2V0KEVSQSwgQUQpOworICAgICAgICBzZXQoWUVBUiwgeWVhcik7CisgICAgICAgIHNldChNT05USCwgbW9udGgpOworICAgICAgICBzZXQoREFURSwgZGF0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIEdyZWdvcmlhbkNhbGVuZGFyIHdpdGggdGhlIGdpdmVuIGRhdGUKKyAgICAgKiBhbmQgdGltZSBzZXQgZm9yIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcGFyYW0geWVhciB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIFlFQVIgdGltZSBmaWVsZCBpbiB0aGUgY2FsZW5kYXIuCisgICAgICogQHBhcmFtIG1vbnRoIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgTU9OVEggdGltZSBmaWVsZCBpbiB0aGUgY2FsZW5kYXIuCisgICAgICogTW9udGggdmFsdWUgaXMgMC1iYXNlZC4gZS5nLiwgMCBmb3IgSmFudWFyeS4KKyAgICAgKiBAcGFyYW0gZGF0ZSB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIERBVEUgdGltZSBmaWVsZCBpbiB0aGUgY2FsZW5kYXIuCisgICAgICogQHBhcmFtIGhvdXIgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBIT1VSX09GX0RBWSB0aW1lIGZpZWxkCisgICAgICogaW4gdGhlIGNhbGVuZGFyLgorICAgICAqIEBwYXJhbSBtaW51dGUgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBNSU5VVEUgdGltZSBmaWVsZAorICAgICAqIGluIHRoZSBjYWxlbmRhci4KKyAgICAgKi8KKyAgICBwdWJsaWMgR3JlZ29yaWFuQ2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUsIGludCBob3VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWludXRlKSB7CisgICAgICAgIHN1cGVyKFRpbWVab25lLmdldERlZmF1bHQoKSwgTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIHNldChFUkEsIEFEKTsKKyAgICAgICAgc2V0KFlFQVIsIHllYXIpOworICAgICAgICBzZXQoTU9OVEgsIG1vbnRoKTsKKyAgICAgICAgc2V0KERBVEUsIGRhdGUpOworICAgICAgICBzZXQoSE9VUl9PRl9EQVksIGhvdXIpOworICAgICAgICBzZXQoTUlOVVRFLCBtaW51dGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBHcmVnb3JpYW5DYWxlbmRhciB3aXRoIHRoZSBnaXZlbiBkYXRlCisgICAgICogYW5kIHRpbWUgc2V0IGZvciB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIHllYXIgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBZRUFSIHRpbWUgZmllbGQgaW4gdGhlIGNhbGVuZGFyLgorICAgICAqIEBwYXJhbSBtb250aCB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIE1PTlRIIHRpbWUgZmllbGQgaW4gdGhlIGNhbGVuZGFyLgorICAgICAqIE1vbnRoIHZhbHVlIGlzIDAtYmFzZWQuIGUuZy4sIDAgZm9yIEphbnVhcnkuCisgICAgICogQHBhcmFtIGRhdGUgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBEQVRFIHRpbWUgZmllbGQgaW4gdGhlIGNhbGVuZGFyLgorICAgICAqIEBwYXJhbSBob3VyIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgSE9VUl9PRl9EQVkgdGltZSBmaWVsZAorICAgICAqIGluIHRoZSBjYWxlbmRhci4KKyAgICAgKiBAcGFyYW0gbWludXRlIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgTUlOVVRFIHRpbWUgZmllbGQKKyAgICAgKiBpbiB0aGUgY2FsZW5kYXIuCisgICAgICogQHBhcmFtIHNlY29uZCB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIFNFQ09ORCB0aW1lIGZpZWxkCisgICAgICogaW4gdGhlIGNhbGVuZGFyLgorICAgICAqLworICAgIHB1YmxpYyBHcmVnb3JpYW5DYWxlbmRhcihpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSwgaW50IGhvdXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtaW51dGUsIGludCBzZWNvbmQpIHsKKyAgICAgICAgc3VwZXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgc2V0KEVSQSwgQUQpOworICAgICAgICBzZXQoWUVBUiwgeWVhcik7CisgICAgICAgIHNldChNT05USCwgbW9udGgpOworICAgICAgICBzZXQoREFURSwgZGF0ZSk7CisgICAgICAgIHNldChIT1VSX09GX0RBWSwgaG91cik7CisgICAgICAgIHNldChNSU5VVEUsIG1pbnV0ZSk7CisgICAgICAgIHNldChTRUNPTkQsIHNlY29uZCk7CisgICAgfQorCisvLy8vLy8vLy8vLy8vLy8vLworLy8gUHVibGljIG1ldGhvZHMKKy8vLy8vLy8vLy8vLy8vLy8vCisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBHcmVnb3JpYW5DYWxlbmRhciBjaGFuZ2UgZGF0ZS4gVGhpcyBpcyB0aGUgcG9pbnQgd2hlbiB0aGUgc3dpdGNoCisgICAgICogZnJvbSBKdWxpYW4gZGF0ZXMgdG8gR3JlZ29yaWFuIGRhdGVzIG9jY3VycmVkLiBEZWZhdWx0IGlzIE9jdG9iZXIgMTUsCisgICAgICogMTU4Mi4gUHJldmlvdXMgdG8gdGhpcywgZGF0ZXMgd2lsbCBiZSBpbiB0aGUgSnVsaWFuIGNhbGVuZGFyLgorICAgICAqIDxwPgorICAgICAqIFRvIG9idGFpbiBhIHB1cmUgSnVsaWFuIGNhbGVuZGFyLCBzZXQgdGhlIGNoYW5nZSBkYXRlIHRvCisgICAgICogPGNvZGU+RGF0ZShMb25nLk1BWF9WQUxVRSk8L2NvZGU+LiAgVG8gb2J0YWluIGEgcHVyZSBHcmVnb3JpYW4gY2FsZW5kYXIsCisgICAgICogc2V0IHRoZSBjaGFuZ2UgZGF0ZSB0byA8Y29kZT5EYXRlKExvbmcuTUlOX1ZBTFVFKTwvY29kZT4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZSB0aGUgZ2l2ZW4gR3JlZ29yaWFuIGN1dG92ZXIgZGF0ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRHcmVnb3JpYW5DaGFuZ2UoRGF0ZSBkYXRlKSB7CisgICAgICAgIGdyZWdvcmlhbkN1dG92ZXIgPSBkYXRlLmdldFRpbWUoKTsKKworICAgICAgICAvLyBJZiB0aGUgY3V0b3ZlciBoYXMgYW4gZXh0cmVtZSB2YWx1ZSwgdGhlbiBjcmVhdGUgYSBwdXJlCisgICAgICAgIC8vIEdyZWdvcmlhbiBvciBwdXJlIEp1bGlhbiBjYWxlbmRhciBieSBnaXZpbmcgdGhlIGN1dG92ZXIgeWVhciBhbmQKKyAgICAgICAgLy8gSkQgZXh0cmVtZSB2YWx1ZXMuCisgICAgICAgIGlmIChncmVnb3JpYW5DdXRvdmVyIDw9IE1JTl9NSUxMSVMpIHsKKyAgICAgICAgICAgIGdyZWdvcmlhbkN1dG92ZXJZZWFyID0gY3V0b3Zlckp1bGlhbkRheSA9IEludGVnZXIuTUlOX1ZBTFVFOworICAgICAgICB9IGVsc2UgaWYgKGdyZWdvcmlhbkN1dG92ZXIgPj0gTUFYX01JTExJUykgeworICAgICAgICAgICAgZ3JlZ29yaWFuQ3V0b3ZlclllYXIgPSBjdXRvdmVySnVsaWFuRGF5ID0gSW50ZWdlci5NQVhfVkFMVUU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBQcmVjb21wdXRlIHR3byBpbnRlcm5hbCB2YXJpYWJsZXMgd2hpY2ggd2UgdXNlIHRvIGRvIHRoZSBhY3R1YWwKKyAgICAgICAgICAgIC8vIGN1dG92ZXIgY29tcHV0YXRpb25zLiAgVGhlc2UgYXJlIHRoZSBKdWxpYW4gZGF5IG9mIHRoZSBjdXRvdmVyCisgICAgICAgICAgICAvLyBhbmQgdGhlIGN1dG92ZXIgeWVhci4KKyAgICAgICAgICAgIGN1dG92ZXJKdWxpYW5EYXkgPSAoaW50KSBmbG9vckRpdmlkZShncmVnb3JpYW5DdXRvdmVyLCBPTkVfREFZKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gQ29udmVydCBjdXRvdmVyIG1pbGxpcyB0byBleHRlbmRlZCB5ZWFyCisgICAgICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoZ2V0VGltZVpvbmUoKSk7CisgICAgICAgICAgICBjYWwuc2V0VGltZShkYXRlKTsKKyAgICAgICAgICAgIGdyZWdvcmlhbkN1dG92ZXJZZWFyID0gY2FsLmdldChFWFRFTkRFRF9ZRUFSKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIEdyZWdvcmlhbiBDYWxlbmRhciBjaGFuZ2UgZGF0ZS4gIFRoaXMgaXMgdGhlIHBvaW50IHdoZW4gdGhlCisgICAgICogc3dpdGNoIGZyb20gSnVsaWFuIGRhdGVzIHRvIEdyZWdvcmlhbiBkYXRlcyBvY2N1cnJlZC4gRGVmYXVsdCBpcworICAgICAqIE9jdG9iZXIgMTUsIDE1ODIuIFByZXZpb3VzIHRvIHRoaXMsIGRhdGVzIHdpbGwgYmUgaW4gdGhlIEp1bGlhbgorICAgICAqIGNhbGVuZGFyLgorICAgICAqIEByZXR1cm4gdGhlIEdyZWdvcmlhbiBjdXRvdmVyIGRhdGUgZm9yIHRoaXMgY2FsZW5kYXIuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIERhdGUgZ2V0R3JlZ29yaWFuQ2hhbmdlKCkgeworICAgICAgICByZXR1cm4gbmV3IERhdGUoZ3JlZ29yaWFuQ3V0b3Zlcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyBpZiB0aGUgZ2l2ZW4geWVhciBpcyBhIGxlYXAgeWVhci4gUmV0dXJucyB0cnVlIGlmIHRoZQorICAgICAqIGdpdmVuIHllYXIgaXMgYSBsZWFwIHllYXIuCisgICAgICogQHBhcmFtIHllYXIgdGhlIGdpdmVuIHllYXIuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiB5ZWFyIGlzIGEgbGVhcCB5ZWFyOyBmYWxzZSBvdGhlcndpc2UuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNMZWFwWWVhcihpbnQgeWVhcikgeworICAgICAgICByZXR1cm4geWVhciA+PSBncmVnb3JpYW5DdXRvdmVyWWVhciA/CisgICAgICAgICAgICAoKHllYXIlNCA9PSAwKSAmJiAoKHllYXIlMTAwICE9IDApIHx8ICh5ZWFyJTQwMCA9PSAwKSkpIDogLy8gR3JlZ29yaWFuCisgICAgICAgICAgICAoeWVhciU0ID09IDApOyAvLyBKdWxpYW4KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlcyB0aGlzIEdyZWdvcmlhbkNhbGVuZGFyIHRvIGFuIG9iamVjdCByZWZlcmVuY2UuCisgICAgICogQHBhcmFtIG9iaiB0aGUgb2JqZWN0IHJlZmVyZW5jZSB3aXRoIHdoaWNoIHRvIGNvbXBhcmUKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBvYmplY3QgaXMgZXF1YWwgdG8gPGNvZGU+b2JqPC9jb2RlPjsgZmFsc2Ugb3RoZXJ3aXNlCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmopIHsKKyAgICAgICAgcmV0dXJuIHN1cGVyLmVxdWFscyhvYmopICYmCisgICAgICAgICAgICAvLyBDYWxlbmRhci5lcXVhbHMoKSBlbnN1cmVzIG9iaiBpbnN0YW5jZW9mIEdyZWdvcmlhbkNhbGVuZGFyCisgICAgICAgICAgICBncmVnb3JpYW5DdXRvdmVyID09ICgoR3JlZ29yaWFuQ2FsZW5kYXIpb2JqKS5ncmVnb3JpYW5DdXRvdmVyOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBoYXNoQ29kZS4KKyAgICAgKiBHZW5lcmF0ZXMgdGhlIGhhc2ggY29kZSBmb3IgdGhlIEdyZWdvcmlhbkNhbGVuZGFyIG9iamVjdAorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgIHJldHVybiBzdXBlci5oYXNoQ29kZSgpIF4gKGludClncmVnb3JpYW5DdXRvdmVyOworICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlcyBDYWxlbmRhcgorICAgICAqIERhdGUgQXJpdGhtZXRpYyBmdW5jdGlvbi4KKyAgICAgKiBBZGRzIHRoZSBzcGVjaWZpZWQgKHNpZ25lZCkgYW1vdW50IG9mIHRpbWUgdG8gdGhlIGdpdmVuIHRpbWUgZmllbGQsCisgICAgICogYmFzZWQgb24gdGhlIGNhbGVuZGFyJ3MgcnVsZXMuCisgICAgICogQHBhcmFtIGZpZWxkIHRoZSB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBhbW91bnQgdGhlIGFtb3VudCBvZiBkYXRlIG9yIHRpbWUgdG8gYmUgYWRkZWQgdG8gdGhlIGZpZWxkLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIGFuIHVua25vd24gZmllbGQgaXMgZ2l2ZW4uCisgICAgICovCisgICAgcHVibGljIHZvaWQgYWRkKGludCBmaWVsZCwgaW50IGFtb3VudCkgeworICAgICAgICBzd2l0Y2ggKGZpZWxkKSB7CisgICAgICAgIGNhc2UgRVJBOgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGludCBlcmEgPSBnZXQoRVJBKSArIGFtb3VudDsKKyAgICAgICAgICAgICAgICBpZiAoZXJhIDwgMCkgeworICAgICAgICAgICAgICAgICAgICBlcmEgPSAwOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXJhID4gMSkgeworICAgICAgICAgICAgICAgICAgICBlcmEgPSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzZXQoRVJBLCBlcmEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBzdXBlci5hZGQoZmllbGQsIGFtb3VudCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJvbGwgYSBmaWVsZCBieSBhIHNpZ25lZCBhbW91bnQuCisgICAgICogQHNpbmNlIDEuMgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJvbGwoaW50IGZpZWxkLCBpbnQgYW1vdW50KSB7CisKKyAgICAgICAgc3dpdGNoIChmaWVsZCkgeworICAgICAgICBjYXNlIEVSQToKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpbnQgZXJhID0gKGdldChFUkEpICsgYW1vdW50ICkgJSAyOworICAgICAgICAgICAgICAgIGlmIChlcmEgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIGVyYSArPSAyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzZXQoRVJBLCBlcmEpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICBjYXNlIFdFRUtfT0ZfWUVBUjoKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBVbmxpa2UgV0VFS19PRl9NT05USCwgV0VFS19PRl9ZRUFSIG5ldmVyIHNoaWZ0cyB0aGUgZGF5IG9mIHRoZQorICAgICAgICAgICAgICAgIC8vIHdlZWsuICBBbHNvLCByb2xsaW5nIHRoZSB3ZWVrIG9mIHRoZSB5ZWFyIGNhbiBoYXZlIHNlZW1pbmdseQorICAgICAgICAgICAgICAgIC8vIHN0cmFuZ2UgZWZmZWN0cyBzaW1wbHkgYmVjYXVzZSB0aGUgeWVhciBvZiB0aGUgd2VlayBvZiB5ZWFyCisgICAgICAgICAgICAgICAgLy8gbWF5IGJlIGRpZmZlcmVudCBmcm9tIHRoZSBjYWxlbmRhciB5ZWFyLiAgRm9yIGV4YW1wbGUsIHRoZQorICAgICAgICAgICAgICAgIC8vIGRhdGUgRGVjIDI4LCAxOTk3IGlzIHRoZSBmaXJzdCBkYXkgb2Ygd2VlayAxIG9mIDE5OTggKGlmCisgICAgICAgICAgICAgICAgLy8gd2Vla3Mgc3RhcnQgb24gU3VuZGF5IGFuZCB0aGUgbWluaW1hbCBkYXlzIGluIGZpcnN0IHdlZWsgaXMKKyAgICAgICAgICAgICAgICAvLyA8PSAzKS4KKyAgICAgICAgICAgICAgICBpbnQgd295ID0gZ2V0KFdFRUtfT0ZfWUVBUik7CisgICAgICAgICAgICAgICAgLy8gR2V0IHRoZSBJU08geWVhciwgd2hpY2ggbWF0Y2hlcyB0aGUgd2VlayBvZiB5ZWFyLiAgVGhpcworICAgICAgICAgICAgICAgIC8vIG1heSBiZSBvbmUgeWVhciBiZWZvcmUgb3IgYWZ0ZXIgdGhlIGNhbGVuZGFyIHllYXIuCisgICAgICAgICAgICAgICAgaW50IGlzb1llYXIgPSBnZXQoWUVBUl9XT1kpOworICAgICAgICAgICAgICAgIGludCBpc29Eb3kgPSBpbnRlcm5hbEdldChEQVlfT0ZfWUVBUik7CisgICAgICAgICAgICAgICAgaWYgKGludGVybmFsR2V0KE1PTlRIKSA9PSBDYWxlbmRhci5KQU5VQVJZKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh3b3kgPj0gNTIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzb0RveSArPSBoYW5kbGVHZXRZZWFyTGVuZ3RoKGlzb1llYXIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHdveSA9PSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpc29Eb3kgLT0gaGFuZGxlR2V0WWVhckxlbmd0aChpc29ZZWFyIC0gMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgd295ICs9IGFtb3VudDsKKyAgICAgICAgICAgICAgICAvLyBEbyBmYXN0IGNoZWNrcyB0byBhdm9pZCB1bm5lY2Vzc2FyeSBjb21wdXRhdGlvbjoKKyAgICAgICAgICAgICAgICBpZiAod295IDwgMSB8fCB3b3kgPiA1MikgeworICAgICAgICAgICAgICAgICAgICAvLyBEZXRlcm1pbmUgdGhlIGxhc3Qgd2VlayBvZiB0aGUgSVNPIHllYXIuCisgICAgICAgICAgICAgICAgICAgIC8vIFdlIGRvIHRoaXMgdXNpbmcgdGhlIHN0YW5kYXJkIGZvcm11bGEgd2UgdXNlCisgICAgICAgICAgICAgICAgICAgIC8vIGV2ZXJ5d2hlcmUgaW4gdGhpcyBmaWxlLiAgSWYgd2UgY2FuIHNlZSB0aGF0IHRoZQorICAgICAgICAgICAgICAgICAgICAvLyBkYXlzIGF0IHRoZSBlbmQgb2YgdGhlIHllYXIgYXJlIGdvaW5nIHRvIGZhbGwgaW50bworICAgICAgICAgICAgICAgICAgICAvLyB3ZWVrIDEgb2YgdGhlIG5leHQgeWVhciwgd2UgZHJvcCB0aGUgbGFzdCB3ZWVrIGJ5CisgICAgICAgICAgICAgICAgICAgIC8vIHN1YnRyYWN0aW5nIDcgZnJvbSB0aGUgbGFzdCBkYXkgb2YgdGhlIHllYXIuCisgICAgICAgICAgICAgICAgICAgIGludCBsYXN0RG95ID0gaGFuZGxlR2V0WWVhckxlbmd0aChpc29ZZWFyKTsKKyAgICAgICAgICAgICAgICAgICAgaW50IGxhc3RSZWxEb3cgPSAobGFzdERveSAtIGlzb0RveSArIGludGVybmFsR2V0KERBWV9PRl9XRUVLKSAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldEZpcnN0RGF5T2ZXZWVrKCkpICUgNzsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RSZWxEb3cgPCAwKSBsYXN0UmVsRG93ICs9IDc7CisgICAgICAgICAgICAgICAgICAgIGlmICgoNiAtIGxhc3RSZWxEb3cpID49IGdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKSkgbGFzdERveSAtPSA3OworICAgICAgICAgICAgICAgICAgICBpbnQgbGFzdFdveSA9IHdlZWtOdW1iZXIobGFzdERveSwgbGFzdFJlbERvdyArIDEpOworICAgICAgICAgICAgICAgICAgICB3b3kgPSAoKHdveSArIGxhc3RXb3kgLSAxKSAlIGxhc3RXb3kpICsgMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc2V0KFdFRUtfT0ZfWUVBUiwgd295KTsKKyAgICAgICAgICAgICAgICBzZXQoWUVBUiwgaXNvWWVhcik7IC8vIFdoeSBub3QgWUVBUl9XT1k/IC0gQWxhbiAxMS82LzAwCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBzdXBlci5yb2xsKGZpZWxkLCBhbW91bnQpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBtaW5pbXVtIHZhbHVlIHRoYXQgdGhpcyBmaWVsZCBjb3VsZCBoYXZlLCBnaXZlbiB0aGUgY3VycmVudCBkYXRlLgorICAgICAqIEZvciB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyLCB0aGlzIGlzIHRoZSBzYW1lIGFzIGdldE1pbmltdW0oKSBhbmQgZ2V0R3JlYXRlc3RNaW5pbXVtKCkuCisgICAgICogQHNpbmNlIDEuMgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0QWN0dWFsTWluaW11bShpbnQgZmllbGQpIHsKKyAgICAgICAgcmV0dXJuIGdldE1pbmltdW0oZmllbGQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbWF4aW11bSB2YWx1ZSB0aGF0IHRoaXMgZmllbGQgY291bGQgaGF2ZSwgZ2l2ZW4gdGhlIGN1cnJlbnQgZGF0ZS4KKyAgICAgKiBGb3IgZXhhbXBsZSwgd2l0aCB0aGUgZGF0ZSAiRmViIDMsIDE5OTciIGFuZCB0aGUgREFZX09GX01PTlRIIGZpZWxkLCB0aGUgYWN0dWFsCisgICAgICogbWF4aW11bSB3b3VsZCBiZSAyODsgZm9yICJGZWIgMywgMTk5NiIgaXQgcyAyOS4gIFNpbWlsYXJseSBmb3IgYSBIZWJyZXcgY2FsZW5kYXIsCisgICAgICogZm9yIHNvbWUgeWVhcnMgdGhlIGFjdHVhbCBtYXhpbXVtIGZvciBNT05USCBpcyAxMiwgYW5kIGZvciBvdGhlcnMgMTMuCisgICAgICogQHNpbmNlIDEuMgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0QWN0dWFsTWF4aW11bShpbnQgZmllbGQpIHsKKyAgICAgICAgLyogSXQgaXMgYSBrbm93biBsaW1pdGF0aW9uIHRoYXQgdGhlIGNvZGUgaGVyZSAoYW5kIGluIGdldEFjdHVhbE1pbmltdW0pCisgICAgICAgICAqIHdvbid0IGJlaGF2ZSBwcm9wZXJseSBhdCB0aGUgZXh0cmVtZSBsaW1pdHMgb2YgR3JlZ29yaWFuQ2FsZW5kYXIncworICAgICAgICAgKiByZXByZXNlbnRhYmxlIHJhbmdlIChleGNlcHQgZm9yIHRoZSBjb2RlIHRoYXQgaGFuZGxlcyB0aGUgWUVBUgorICAgICAgICAgKiBmaWVsZCkuICBUaGF0J3MgYmVjYXVzZSB0aGUgZW5kcyBvZiB0aGUgcmVwcmVzZW50YWJsZSByYW5nZSBhcmUgYXQKKyAgICAgICAgICogb2RkIHNwb3RzIGluIHRoZSB5ZWFyLiAgRm9yIGNhbGVuZGFycyB3aXRoIHRoZSBkZWZhdWx0IEdyZWdvcmlhbgorICAgICAgICAgKiBjdXRvdmVyLCB0aGVzZSBsaW1pdHMgYXJlIFN1biBEZWMgMDIgMTY6NDc6MDQgR01UIDI5MjI2OTA1NSBCQyB0byBTdW4KKyAgICAgICAgICogQXVnIDE3IDA3OjEyOjU1IEdNVCAyOTIyNzg5OTQgQUQsIHNvbWV3aGF0IGRpZmZlcmVudCBmb3Igbm9uLUdNVAorICAgICAgICAgKiB6b25lcy4gIEFzIGEgcmVzdWx0LCBpZiB0aGUgY2FsZW5kYXIgaXMgc2V0IHRvIEF1ZyAxIDI5MjI3ODk5NCBBRCwKKyAgICAgICAgICogdGhlIGFjdHVhbCBtYXhpbXVtIG9mIERBWV9PRl9NT05USCBpcyAxNywgbm90IDMwLiAgSWYgdGhlIGRhdGUgaXMgTWFyCisgICAgICAgICAqIDMxIGluIHRoYXQgeWVhciwgdGhlIGFjdHVhbCBtYXhpbXVtIG1vbnRoIG1pZ2h0IGJlIEp1bCwgd2hlcmVhcyBpcworICAgICAgICAgKiB0aGUgZGF0ZSBpcyBNYXIgMTUsIHRoZSBhY3R1YWwgbWF4aW11bSBtaWdodCBiZSBBdWcgLS0gZGVwZW5kaW5nIG9uCisgICAgICAgICAqIHRoZSBwcmVjaXNlIHNlbWFudGljcyB0aGF0IGFyZSBkZXNpcmVkLiAgU2ltaWxhciBjb25zaWRlcmF0aW9ucworICAgICAgICAgKiBhZmZlY3QgYWxsIGZpZWxkcy4gIE5vbmV0aGVsZXNzLCB0aGlzIGVmZmVjdCBpcyBzdWZmaWNpZW50bHkgYXJjYW5lCisgICAgICAgICAqIHRoYXQgd2UgcGVybWl0IGl0LCByYXRoZXIgdGhhbiBjb21wbGljYXRpbmcgdGhlIGNvZGUgdG8gaGFuZGxlIHN1Y2gKKyAgICAgICAgICogaW50cmljYWNpZXMuIC0gbGl1IDgvMjAvOTgKKworICAgICAgICAgKiBVUERBVEU6IE5vIGxvbmdlciB0cnVlLCBzaW5jZSB3ZSBoYXZlIHB1bGxlZCBpbiB0aGUgbGltaXQgdmFsdWVzIG9uCisgICAgICAgICAqIHRoZSB5ZWFyLiAtIExpdSAxMS82LzAwICovCisKKyAgICAgICAgc3dpdGNoIChmaWVsZCkgeworCisgICAgICAgIGNhc2UgWUVBUjoKKyAgICAgICAgICAgIC8qIFRoZSB5ZWFyIGNvbXB1dGF0aW9uIGlzIG5vIGRpZmZlcmVudCwgaW4gcHJpbmNpcGxlLCBmcm9tIHRoZQorICAgICAgICAgICAgICogb3RoZXJzLCBob3dldmVyLCB0aGUgcmFuZ2Ugb2YgcG9zc2libGUgbWF4aW1hIGlzIGxhcmdlLiAgSW4KKyAgICAgICAgICAgICAqIGFkZGl0aW9uLCB0aGUgd2F5IHdlIGtub3cgd2UndmUgZXhjZWVkZWQgdGhlIHJhbmdlIGlzIGRpZmZlcmVudC4KKyAgICAgICAgICAgICAqIEZvciB0aGVzZSByZWFzb25zLCB3ZSB1c2UgdGhlIHNwZWNpYWwgY2FzZSBjb2RlIGJlbG93IHRvIGhhbmRsZQorICAgICAgICAgICAgICogdGhpcyBmaWVsZC4KKyAgICAgICAgICAgICAqCisgICAgICAgICAgICAgKiBUaGUgYWN0dWFsIG1heGltYSBmb3IgWUVBUiBkZXBlbmQgb24gdGhlIHR5cGUgb2YgY2FsZW5kYXI6CisgICAgICAgICAgICAgKgorICAgICAgICAgICAgICogICAgIEdyZWdvcmlhbiA9IE1heSAxNywgMjkyMjc1MDU2IEJDIC0gQXVnIDE3LCAyOTIyNzg5OTQgQUQKKyAgICAgICAgICAgICAqICAgICBKdWxpYW4gICAgPSBEZWMgIDIsIDI5MjI2OTA1NSBCQyAtIEphbiAgMywgMjkyMjcyOTkzIEFECisgICAgICAgICAgICAgKiAgICAgSHlicmlkICAgID0gRGVjICAyLCAyOTIyNjkwNTUgQkMgLSBBdWcgMTcsIDI5MjI3ODk5NCBBRAorICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAqIFdlIGtub3cgd2UndmUgZXhjZWVkZWQgdGhlIG1heGltdW0gd2hlbiBlaXRoZXIgdGhlIG1vbnRoLCBkYXRlLAorICAgICAgICAgICAgICogdGltZSwgb3IgZXJhIGNoYW5nZXMgaW4gcmVzcG9uc2UgdG8gc2V0dGluZyB0aGUgeWVhci4gIFdlIGRvbid0CisgICAgICAgICAgICAgKiBjaGVjayBmb3IgbW9udGgsIGRhdGUsIGFuZCB0aW1lIGhlcmUgYmVjYXVzZSB0aGUgeWVhciBhbmQgZXJhIGFyZQorICAgICAgICAgICAgICogc3VmZmljaWVudCB0byBkZXRlY3QgYW4gaW52YWxpZCB5ZWFyIHNldHRpbmcuICBOT1RFOiBJZiBjb2RlIGlzCisgICAgICAgICAgICAgKiBhZGRlZCB0byBjaGVjayB0aGUgbW9udGggYW5kIGRhdGUgaW4gdGhlIGZ1dHVyZSBmb3Igc29tZSByZWFzb24sCisgICAgICAgICAgICAgKiBGZWIgMjkgbXVzdCBiZSBhbGxvd2VkIHRvIHNoaWZ0IHRvIE1hciAxIHdoZW4gc2V0dGluZyB0aGUgeWVhci4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIENhbGVuZGFyIGNhbCA9IChDYWxlbmRhcikgY2xvbmUoKTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0TGVuaWVudCh0cnVlKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpbnQgZXJhID0gY2FsLmdldChFUkEpOworICAgICAgICAgICAgICAgIERhdGUgZCA9IGNhbC5nZXRUaW1lKCk7CisKKyAgICAgICAgICAgICAgICAvKiBQZXJmb3JtIGEgYmluYXJ5IHNlYXJjaCwgd2l0aCB0aGUgaW52YXJpYW50IHRoYXQgbG93R29vZCBpcyBhCisgICAgICAgICAgICAgICAgICogdmFsaWQgeWVhciwgYW5kIGhpZ2hCYWQgaXMgYW4gb3V0IG9mIHJhbmdlIHllYXIuCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgaW50IGxvd0dvb2QgPSBMSU1JVFNbWUVBUl1bMV07CisgICAgICAgICAgICAgICAgaW50IGhpZ2hCYWQgPSBMSU1JVFNbWUVBUl1bMl0rMTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoKGxvd0dvb2QgKyAxKSA8IGhpZ2hCYWQpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHkgPSAobG93R29vZCArIGhpZ2hCYWQpIC8gMjsKKyAgICAgICAgICAgICAgICAgICAgY2FsLnNldChZRUFSLCB5KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNhbC5nZXQoWUVBUikgPT0geSAmJiBjYWwuZ2V0KEVSQSkgPT0gZXJhKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb3dHb29kID0geTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhpZ2hCYWQgPSB5OworICAgICAgICAgICAgICAgICAgICAgICAgY2FsLnNldFRpbWUoZCk7IC8vIFJlc3RvcmUgb3JpZ2luYWwgZmllbGRzCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgcmV0dXJuIGxvd0dvb2Q7CisgICAgICAgICAgICB9CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBzdXBlci5nZXRBY3R1YWxNYXhpbXVtKGZpZWxkKTsKKyAgICAgICAgfQorICAgIH0KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gUHJvcG9zZWQgcHVibGljIEFQSQorLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGN1cnJlbnQgdGltZSBmb3IgdGhpcyBDYWxlbmRhciBpcyBpbiBEYXlsaWdudAorICAgICAqIFNhdmluZ3MgVGltZS4KKyAgICAgKgorICAgICAqIE5vdGUgLS0gTUFLRSBUSElTIFBVQkxJQyBBVCBUSEUgTkVYVCBBUEkgQ0hBTkdFLiAgUE9TU0lCTFkgREVQUkVDQVRFCisgICAgICogQU5EIFJFTU9WRSBUaW1lWm9uZS5pbkRheWxpZ2h0VGltZSgpLgorICAgICAqLworICAgIGJvb2xlYW4gaW5EYXlsaWdodFRpbWUoKSB7CisgICAgICAgIGlmICghZ2V0VGltZVpvbmUoKS51c2VEYXlsaWdodFRpbWUoKSkgcmV0dXJuIGZhbHNlOworICAgICAgICBjb21wbGV0ZSgpOyAvLyBGb3JjZSB1cGRhdGUgb2YgRFNUX09GRlNFVCBmaWVsZAorICAgICAgICByZXR1cm4gaW50ZXJuYWxHZXQoRFNUX09GRlNFVCkgIT0gMDsKKyAgICB9CisKKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBDYWxlbmRhciBmcmFtZXdvcmsKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVHZXRNb250aExlbmd0aChpbnQgZXh0ZW5kZWRZZWFyLCBpbnQgbW9udGgpIHsKKyAgICAgICAgcmV0dXJuIE1PTlRIX0NPVU5UW21vbnRoXVtpc0xlYXBZZWFyKGV4dGVuZGVkWWVhcik/MTowXTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldFllYXJMZW5ndGgoaW50IGV5ZWFyKSB7CisgICAgICAgIHJldHVybiBpc0xlYXBZZWFyKGV5ZWFyKSA/IDM2NiA6IDM2NTsKKyAgICB9CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBUaW1lID0+IEZpZWxkcyBjb21wdXRhdGlvbgorLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlIENhbGVuZGFyIHRvIGNvbXB1dGUgc2V2ZXJhbCBmaWVsZHMgc3BlY2lmaWMgdG8gdGhlIGh5YnJpZAorICAgICAqIEdyZWdvcmlhbi1KdWxpYW4gY2FsZW5kYXIgc3lzdGVtLiAgVGhlc2UgYXJlOgorICAgICAqCisgICAgICogPHVsPjxsaT5FUkEKKyAgICAgKiA8bGk+WUVBUgorICAgICAqIDxsaT5NT05USAorICAgICAqIDxsaT5EQVlfT0ZfTU9OVEgKKyAgICAgKiA8bGk+REFZX09GX1lFQVIKKyAgICAgKiA8bGk+RVhURU5ERURfWUVBUjwvdWw+CisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlQ29tcHV0ZUZpZWxkcyhpbnQganVsaWFuRGF5KSB7CisgICAgICAgIGludCBleWVhciwgbW9udGgsIGRheU9mTW9udGgsIGRheU9mWWVhcjsKKworICAgICAgICBpZiAoanVsaWFuRGF5ID49IGN1dG92ZXJKdWxpYW5EYXkpIHsKKyAgICAgICAgICAgIG1vbnRoID0gZ2V0R3JlZ29yaWFuTW9udGgoKTsKKyAgICAgICAgICAgIGRheU9mTW9udGggPSBnZXRHcmVnb3JpYW5EYXlPZk1vbnRoKCk7CisgICAgICAgICAgICBkYXlPZlllYXIgPSBnZXRHcmVnb3JpYW5EYXlPZlllYXIoKTsKKyAgICAgICAgICAgIGV5ZWFyID0gZ2V0R3JlZ29yaWFuWWVhcigpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gVGhlIEp1bGlhbiBlcG9jaCBkYXkgKG5vdCB0aGUgc2FtZSBhcyBKdWxpYW4gRGF5KQorICAgICAgICAgICAgLy8gaXMgemVybyBvbiBTYXR1cmRheSBEZWNlbWJlciAzMCwgMCAoR3JlZ29yaWFuKS4KKyAgICAgICAgICAgIGxvbmcganVsaWFuRXBvY2hEYXkgPSBqdWxpYW5EYXkgLSAoSkFOXzFfMV9KVUxJQU5fREFZIC0gMik7CisgICAgICAgICAgICBleWVhciA9IChpbnQpIGZsb29yRGl2aWRlKDQqanVsaWFuRXBvY2hEYXkgKyAxNDY0LCAxNDYxKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gQ29tcHV0ZSB0aGUgSnVsaWFuIGNhbGVuZGFyIGRheSBudW1iZXIgZm9yIEphbnVhcnkgMSwgZXllYXIKKyAgICAgICAgICAgIGxvbmcgamFudWFyeTEgPSAzNjUqKGV5ZWFyLTEpICsgZmxvb3JEaXZpZGUoZXllYXItMSwgNCk7CisgICAgICAgICAgICBkYXlPZlllYXIgPSAoaW50KShqdWxpYW5FcG9jaERheSAtIGphbnVhcnkxKTsgLy8gMC1iYXNlZAorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBKdWxpYW4gbGVhcCB5ZWFycyBvY2N1cnJlZCBoaXN0b3JpY2FsbHkgZXZlcnkgNCB5ZWFycyBzdGFydGluZworICAgICAgICAgICAgLy8gd2l0aCA4IEFELiAgQmVmb3JlIDggQUQgdGhlIHNwYWNpbmcgaXMgaXJyZWd1bGFyOyBldmVyeSAzIHllYXJzCisgICAgICAgICAgICAvLyBmcm9tIDQ1IEJDIHRvIDkgQkMsIGFuZCB0aGVuIG5vbmUgdW50aWwgOCBBRC4gIEhvd2V2ZXIsIHdlIGRvbid0CisgICAgICAgICAgICAvLyBpbXBsZW1lbnQgdGhpcyBoaXN0b3JpY2FsIGRldGFpbDsgaW5zdGVhZCwgd2UgaW1wbGVtZW50IHRoZQorICAgICAgICAgICAgLy8gY29tcHV0YXRpbmFsbHkgY2xlYW5lciBwcm9sZXB0aWMgY2FsZW5kYXIsIHdoaWNoIGFzc3VtZXMKKyAgICAgICAgICAgIC8vIGNvbnNpc3RlbnQgNC15ZWFyIGN5Y2xlcyB0aHJvdWdob3V0IHRpbWUuCisgICAgICAgICAgICBib29sZWFuIGlzTGVhcCA9ICgoZXllYXImMHgzKSA9PSAwKTsgLy8gZXF1aXYuIHRvIChleWVhciU0ID09IDApCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIENvbW1vbiBKdWxpYW4vR3JlZ29yaWFuIGNhbGN1bGF0aW9uCisgICAgICAgICAgICBpbnQgY29ycmVjdGlvbiA9IDA7CisgICAgICAgICAgICBpbnQgbWFyY2gxID0gaXNMZWFwID8gNjAgOiA1OTsgLy8gemVyby1iYXNlZCBET1kgZm9yIE1hcmNoIDEKKyAgICAgICAgICAgIGlmIChkYXlPZlllYXIgPj0gbWFyY2gxKSB7CisgICAgICAgICAgICAgICAgY29ycmVjdGlvbiA9IGlzTGVhcCA/IDEgOiAyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbW9udGggPSAoMTIgKiAoZGF5T2ZZZWFyICsgY29ycmVjdGlvbikgKyA2KSAvIDM2NzsgLy8gemVyby1iYXNlZCBtb250aAorICAgICAgICAgICAgZGF5T2ZNb250aCA9IGRheU9mWWVhciAtIE1PTlRIX0NPVU5UW21vbnRoXVtpc0xlYXA/MzoyXSArIDE7IC8vIG9uZS1iYXNlZCBET00KKyAgICAgICAgICAgICsrZGF5T2ZZZWFyOworICAgICAgICB9CisgICAgICAgIGludGVybmFsU2V0KE1PTlRILCBtb250aCk7CisgICAgICAgIGludGVybmFsU2V0KERBWV9PRl9NT05USCwgZGF5T2ZNb250aCk7CisgICAgICAgIGludGVybmFsU2V0KERBWV9PRl9ZRUFSLCBkYXlPZlllYXIpOworICAgICAgICBpbnRlcm5hbFNldChFWFRFTkRFRF9ZRUFSLCBleWVhcik7CisgICAgICAgIGludCBlcmEgPSBBRDsKKyAgICAgICAgaWYgKGV5ZWFyIDwgMSkgeworICAgICAgICAgICAgZXJhID0gQkM7CisgICAgICAgICAgICBleWVhciA9IDEgLSBleWVhcjsKKyAgICAgICAgfQorICAgICAgICBpbnRlcm5hbFNldChFUkEsIGVyYSk7CisgICAgICAgIGludGVybmFsU2V0KFlFQVIsIGV5ZWFyKTsKKyAgICB9CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBGaWVsZHMgPT4gVGltZSBjb21wdXRhdGlvbgorLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0RXh0ZW5kZWRZZWFyKCkgeworICAgICAgICBpbnQgeWVhcjsKKyAgICAgICAgaWYgKG5ld2VyRmllbGQoRVhURU5ERURfWUVBUiwgWUVBUikgPT0gRVhURU5ERURfWUVBUikgeworICAgICAgICAgICAgeWVhciA9IGludGVybmFsR2V0KEVYVEVOREVEX1lFQVIsIEVQT0NIX1lFQVIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gVGhlIHllYXIgZGVmYXVsdHMgdG8gdGhlIGVwb2NoIHN0YXJ0LCB0aGUgZXJhIHRvIEFECisgICAgICAgICAgICBpbnQgZXJhID0gaW50ZXJuYWxHZXQoRVJBLCBBRCk7CisgICAgICAgICAgICBpZiAoZXJhID09IEJDKSB7CisgICAgICAgICAgICAgICAgeWVhciA9IDEgLSBpbnRlcm5hbEdldChZRUFSLCAxKTsgLy8gQ29udmVydCB0byBleHRlbmRlZCB5ZWFyCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHllYXIgPSBpbnRlcm5hbEdldChZRUFSLCBFUE9DSF9ZRUFSKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4geWVhcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBDYWxlbmRhciB0byBpbXByb3ZlIHBlcmZvcm1hbmNlLiAgVGhpcyBtZXRob2QgdHJpZXMgdG8gdXNlCisgICAgICogdGhlIEVYVEVOREVEX1lFQVIsIE1PTlRILCBEQVRFLCBmaWVsZHMgaWYgdGhleSBhcmUgc2V0LCBpbnN0ZWFkIG9mCisgICAgICogY29tcHV0aW5nIHRoZW0uICBJZiB0aGV5IGFyZSBub3Qgc2V0LCB0aGlzIG1ldGhvZCBkZWZlcnMgdG8gdGhlCisgICAgICogZGVmYXVsdCBpbXBsZW1lbmF0aW9uLgorICAgICAqIEBwYXJhbSBtaWxsaXMgbWlsbGlzZWNvbmRzIG9mIHRoZSBkYXRlIGZpZWxkcworICAgICAqIEBwYXJhbSBtaWxsaXNJbkRheSBtaWxsaXNlY29uZHMgb2YgdGhlIHRpbWUgZmllbGRzOyBtYXkgYmUgb3V0CisgICAgICogb3IgcmFuZ2UuCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBjb21wdXRlWm9uZU9mZnNldChsb25nIG1pbGxpcywgaW50IG1pbGxpc0luRGF5KSB7CisKKyAgICAgICAgLy8gTm9ybWFsaXplIHRoZSBtaWxsaXNJbkRheSB0byAwLi5PTkVfREFZLTEuICBJZiB0aGUgbWlsbGlzIGlzIG91dAorICAgICAgICAvLyBvZiByYW5nZSwgdGhlbiB3ZSBkZWZlciB0byB0aGUgYmFzZSBjbGFzcyBpbXBsZW1lbnRhdGlvbiB3aGljaAorICAgICAgICAvLyB3aWxsIHJlY29tcHV0ZSB0aGUgY29ycmVjdCB2YWx1ZXMuCisgICAgICAgIGludFtdIG5vcm1hbGl6ZWRNaWxsaXNJbkRheSA9IG5ldyBpbnRbMV07CisgICAgICAgIGludCBkYXlzID0gZmxvb3JEaXZpZGUobWlsbGlzICsgbWlsbGlzSW5EYXksIChpbnQpIE9ORV9EQVksIG5vcm1hbGl6ZWRNaWxsaXNJbkRheSk7CisKKyAgICAgICAgLy8gV2UgbmVlZCB0byBoYXZlIHRoZSBtb250aCwgdGhlIGRheSwgYW5kIHRoZSBkYXkgb2YgdGhlIHdlZWsuICBJZgorICAgICAgICAvLyB0aGUgZmllbGRzIGFyZSBub3Qgc2V0IG9yIGlmIHdlJ3JlIGxlbmllbnQgKHNvIGZpZWxkcyBtYXkgYmUgb3V0CisgICAgICAgIC8vIG9mIHJhbmdlKSB0aGVuIHdlIGRlZmVyIHRvIHRoZSBiYXNlIGNsYXNzIHdoaWNoIHdpbGwgbm9ybWFsaXplCisgICAgICAgIC8vIHRoZSB5ZWFyLCBtb250aCwgYW5kIGRheSBvZiBtb250aC4KKyAgICAgICAgaWYgKGlzTGVuaWVudCgpIHx8ICFpc1NldChNT05USCkgfHwgIWlzU2V0KERBWV9PRl9NT05USCkKKyAgICAgICAgICAgIHx8IG1pbGxpc0luRGF5ICE9IG5vcm1hbGl6ZWRNaWxsaXNJbkRheVswXSkgeworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmNvbXB1dGVab25lT2Zmc2V0KG1pbGxpcywgbWlsbGlzSW5EYXkpOworICAgICAgICB9CisKKyAgICAgICAgaW50IGp1bGlhbkRheSA9IG1pbGxpc1RvSnVsaWFuRGF5KGRheXMgKiBPTkVfREFZKTsKKworICAgICAgICAvLyBJdCdzIHRlbXB0aW5nIHRvIHRyeSB0byB1c2UgREFZX09GX1dFRUsgaGVyZSwgaWYgaXQKKyAgICAgICAgLy8gaXMgc2V0LCBidXQgd2UgQ0FOJ1QuICBFdmVuIGlmIGl0J3Mgc2V0LCBpdCBtaWdodCBoYXZlCisgICAgICAgIC8vIGJlZW4gc2V0IHdyb25nIGJ5IHRoZSB1c2VyLiAgV2Ugc2hvdWxkIHJlbHkgb25seSBvbgorICAgICAgICAvLyB0aGUgSnVsaWFuIGRheSBudW1iZXIsIHdoaWNoIGhhcyBiZWVuIGNvbXB1dGVkIGNvcnJlY3RseQorICAgICAgICAvLyB1c2luZyB0aGUgZGlzYW1iaWd1YXRpb24gYWxnb3JpdGhtIGFib3ZlLiBbTElVXQorICAgICAgICBpbnQgeWVhciA9IGludGVybmFsR2V0KEVYVEVOREVEX1lFQVIpOworICAgICAgICBpbnQgbW9udGggPSBpbnRlcm5hbEdldChNT05USCk7CisgICAgICAgIGludCBwcmV2aW91c01vbnRoTGVuZ3RoID0gKG1vbnRoID09IDApID8KKyAgICAgICAgICAgIDMxIDogaGFuZGxlR2V0TW9udGhMZW5ndGgoeWVhciwgbW9udGgtMSk7CisKKyAgICAgICAgcmV0dXJuIGdldFRpbWVab25lKCkuZ2V0T2Zmc2V0KHllYXIsIG1vbnRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxHZXQoREFURSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdWxpYW5EYXlUb0RheU9mV2VlayhqdWxpYW5EYXkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZE1pbGxpc0luRGF5WzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlR2V0TW9udGhMZW5ndGgoeWVhciwgbW9udGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNNb250aExlbmd0aCk7CisKKyAgICAgICAgLy8gTm90ZTogQmVjYXVzZSB3ZSBwYXNzIGluIHdhbGwgbWlsbGlzSW5EYXksIHJhdGhlciB0aGFuCisgICAgICAgIC8vIHN0YW5kYXJkIG1pbGxpc0luRGF5LCB3ZSBpbnRlcnByZXQgIjE6MDAgYW0iIG9uIHRoZSBkYXkKKyAgICAgICAgLy8gb2YgY2Vzc2F0aW9uIG9mIERTVCBhcyAiMTowMCBhbSBTdGQiIChhc3N1bWluZyB0aGUgdGltZQorICAgICAgICAvLyBvZiBjZXNzYXRpb24gaXMgMjowMCBhbSkuCisgICAgfQorCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVDb21wdXRlSnVsaWFuRGF5KGludCBiZXN0RmllbGQpIHsKKworICAgICAgICBpbnZlcnRHcmVnb3JpYW4gPSBmYWxzZTsKKworICAgICAgICBpbnQgamQgPSBzdXBlci5oYW5kbGVDb21wdXRlSnVsaWFuRGF5KGJlc3RGaWVsZCk7CisKKyAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjaGVjayBoYW5kbGVzIHBvcnRpb25zIG9mIHRoZSBjdXRvdmVyIHllYXIgQkVGT1JFIHRoZQorICAgICAgICAvLyBjdXRvdmVyIGl0c2VsZiBoYXBwZW5zLgorICAgICAgICBpZiAoaXNHcmVnb3JpYW4gIT0gKGpkID49IGN1dG92ZXJKdWxpYW5EYXkpKSB7CisgICAgICAgICAgICBpbnZlcnRHcmVnb3JpYW4gPSB0cnVlOworICAgICAgICAgICAgamQgPSBzdXBlci5oYW5kbGVDb21wdXRlSnVsaWFuRGF5KGJlc3RGaWVsZCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBqZDsKKyAgICB9CisKKyAgICAvLyBSZXR1cm4gSkQgb2Ygc3RhcnQgb2YgZ2l2ZW4gbW9udGgveWVhcgorICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlQ29tcHV0ZU1vbnRoU3RhcnQoaW50IGV5ZWFyLCBpbnQgbW9udGgsIGJvb2xlYW4gdXNlTW9udGgpIHsKKworICAgICAgICAvLyBJZiB0aGUgbW9udGggaXMgb3V0IG9mIHJhbmdlLCBhZGp1c3QgaXQgaW50byByYW5nZSwgYW5kCisgICAgICAgIC8vIG1vZGlmeSB0aGUgZXh0ZW5kZWQgeWVhciB2YWx1ZSBhY2NvcmRpbmdseS4KKyAgICAgICAgaWYgKG1vbnRoIDwgMCB8fCBtb250aCA+IDExKSB7CisgICAgICAgICAgICBpbnRbXSByZW0gPSBuZXcgaW50WzFdOworICAgICAgICAgICAgZXllYXIgKz0gZmxvb3JEaXZpZGUobW9udGgsIDEyLCByZW0pOworICAgICAgICAgICAgbW9udGggPSByZW1bMF07CisgICAgICAgIH0KKworICAgICAgICBib29sZWFuIGlzTGVhcCA9IGV5ZWFyJTQgPT0gMDsKKyAgICAgICAgaW50IHkgPSBleWVhciAtIDE7CisgICAgICAgIGludCBqdWxpYW5EYXkgPSAzNjUqeSArIGZsb29yRGl2aWRlKHksIDQpICsgKEpBTl8xXzFfSlVMSUFOX0RBWSAtIDMpOworCisgICAgICAgIGlzR3JlZ29yaWFuID0gKGV5ZWFyID49IGdyZWdvcmlhbkN1dG92ZXJZZWFyKTsKKyAgICAgICAgaWYgKGludmVydEdyZWdvcmlhbikgeworICAgICAgICAgICAgaXNHcmVnb3JpYW4gPSAhaXNHcmVnb3JpYW47CisgICAgICAgIH0KKyAgICAgICAgaWYgKGlzR3JlZ29yaWFuKSB7CisgICAgICAgICAgICBpc0xlYXAgPSBpc0xlYXAgJiYgKChleWVhciUxMDAgIT0gMCkgfHwgKGV5ZWFyJTQwMCA9PSAwKSk7CisgICAgICAgICAgICAvLyBBZGQgMiBiZWNhdXNlIEdyZWdvcmlhbiBjYWxlbmRhciBzdGFydHMgMiBkYXlzIGFmdGVyCisgICAgICAgICAgICAvLyBKdWxpYW4gY2FsZW5kYXIKKyAgICAgICAgICAgIGp1bGlhbkRheSArPSBmbG9vckRpdmlkZSh5LCA0MDApIC0gZmxvb3JEaXZpZGUoeSwgMTAwKSArIDI7CisgICAgICAgIH0KKworICAgICAgICAvLyBBdCB0aGlzIHBvaW50IGp1bGlhbkRheSBpbmRpY2F0ZXMgdGhlIGRheSBCRUZPUkUgdGhlIGZpcnN0CisgICAgICAgIC8vIGRheSBvZiBKYW51YXJ5IDEsIDxleWVhcj4gb2YgZWl0aGVyIHRoZSBKdWxpYW4gb3IgR3JlZ29yaWFuCisgICAgICAgIC8vIGNhbGVuZGFyLgorCisgICAgICAgIGlmIChtb250aCAhPSAwKSB7CisgICAgICAgICAgICBqdWxpYW5EYXkgKz0gTU9OVEhfQ09VTlRbbW9udGhdW2lzTGVhcD8zOjJdOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGp1bGlhbkRheTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9IZWJyZXdDYWxlbmRhci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvSGVicmV3Q2FsZW5kYXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kYjUxZTU3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvSGVicmV3Q2FsZW5kYXIuamF2YQpAQCAtMCwwICsxLDc2OCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L3V0aWwvSGVicmV3Q2FsZW5kYXIuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wOC8wNyAwMzoxMDoyMCAkIAorICogJFJldmlzaW9uOiAxLjkgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCisvKioKKyAqIDxjb2RlPkhlYnJld0NhbGVuZGFyPC9jb2RlPiBpcyBhIHN1YmNsYXNzIG9mIDxjb2RlPkNhbGVuZGFyPC9jb2RlPgorICogdGhhdCB0aGF0IGltcGxlbWVudHMgdGhlIHRyYWRpdGlvbmFsIEhlYnJldyBjYWxlbmRhci4KKyAqIFRoaXMgaXMgdGhlIGNpdmlsIGNhbGVuZGFyIGluIElzcmFlbCBhbmQgdGhlIGxpdHVyZ2ljYWwgY2FsZW5kYXIKKyAqIG9mIHRoZSBKZXdpc2ggZmFpdGggd29ybGR3aWRlLgorICogPHA+CisgKiBUaGUgSGVicmV3IGNhbGVuZGFyIGlzIGx1bmlzb2xhciBhbmQgdGh1cyBoYXMgYSBudW1iZXIgb2YgaW50ZXJlc3RpbmcKKyAqIHByb3BlcnRpZXMgdGhhdCBkaXN0aW5ndWlzaCBpdCBmcm9tIHRoZSBHcmVnb3JpYW4uICBNb250aHMgc3RhcnQKKyAqIG9uIHRoZSBkYXkgb2YgKGFuIGFyaXRobWV0aWMgYXBwcm94aW1hdGlvbiBvZikgZWFjaCBuZXcgbW9vbi4gIFNpbmNlIHRoZQorICogc29sYXIgeWVhciAoYXBwcm94aW1hdGVseSAzNjUuMjQgZGF5cykgaXMgbm90IGFuIGV2ZW4gbXVsdGlwbGUgb2YKKyAqIHRoZSBsdW5hciBtb250aCAoYXBwcm94aW1hdGVseSAyOS41MyBkYXlzKSBhbiBleHRyYSAibGVhcCBtb250aCIgaXMKKyAqIGluc2VydGVkIGluIDcgb3V0IG9mIGV2ZXJ5IDE5IHllYXJzLiAgVG8gbWFrZSBtYXR0ZXJzIGV2ZW4gbW9yZQorICogaW50ZXJlc3RpbmcsIHRoZSBzdGFydCBvZiBhIHllYXIgY2FuIGJlIGRlbGF5ZWQgYnkgdXAgdG8gdGhyZWUgZGF5cworICogaW4gb3JkZXIgdG8gcHJldmVudCBjZXJ0YWluIGhvbGlkYXlzIGZyb20gZmFsbGluZyBvbiB0aGUgU2FiYmF0aCBhbmQKKyAqIHRvIHByZXZlbnQgY2VydGFpbiBpbGxlZ2FsIHllYXIgbGVuZ3Rocy4gIEZpbmFsbHksIHRoZSBsZW5ndGhzIG9mIGNlcnRhaW4KKyAqIG1vbnRocyBjYW4gdmFyeSBkZXBlbmRpbmcgb24gdGhlIG51bWJlciBvZiBkYXlzIGluIHRoZSB5ZWFyLgorICogPHA+CisgKiBUaGUgbGVhcCBtb250aCBpcyBrbm93biBhcyAiQWRhciAxIiBhbmQgaXMgaW5zZXJ0ZWQgYmV0d2VlbiB0aGUKKyAqIG1vbnRocyBvZiBTaGV2YXQgYW5kIEFkYXIgaW4gbGVhcCB5ZWFycy4gIFNpbmNlIHRoZSBsZWFwIG1vbnRoIGRvZXMKKyAqIG5vdCBjb21lIGF0IHRoZSBlbmQgb2YgdGhlIHllYXIsIGNhbGN1bGF0aW9ucyBpbnZvbHZpbmcKKyAqIG1vbnRoIG51bWJlcnMgYXJlIHBhcnRpY3VsYXJseSBjb21wbGV4LiAgVXNlcnMgb2YgdGhpcyBjbGFzcyBzaG91bGQKKyAqIG1ha2Ugc3VyZSB0byB1c2UgdGhlIHtAbGluayAjcm9sbCByb2xsfSBhbmQge0BsaW5rICNhZGQgYWRkfSBtZXRob2RzCisgKiByYXRoZXIgdGhhbiBhdHRlbXB0aW5nIHRvIHBlcmZvcm0gZGF0ZSBhcml0aG1ldGljIGJ5IG1hbmlwdWxhdGluZworICogdGhlIGZpZWxkcyBkaXJlY3RseS4KKyAqIDxwPgorICogPGI+Tm90ZTo8L2I+IEluIHRoZSB0cmFkaXRpb25hbCBIZWJyZXcgY2FsZW5kYXIsIGRheXMgc3RhcnQgYXQgc3Vuc2V0LgorICogSG93ZXZlciwgaW4gb3JkZXIgdG8ga2VlcCB0aGUgdGltZSBmaWVsZHMgaW4gdGhpcyBjbGFzcworICogc3luY2hyb25pemVkIHdpdGggdGhvc2Ugb2YgdGhlIG90aGVyIGNhbGVuZGFycyBhbmQgd2l0aCBsb2NhbCBjbG9jayB0aW1lLAorICogd2UgdHJlYXQgZGF5cyBhbmQgbW9udGhzIGFzIGJlZ2lubmluZyBhdCBtaWRuaWdodCwKKyAqIHJvdWdobHkgNiBob3VycyBhZnRlciB0aGUgY29ycmVzcG9uZGluZyBzdW5zZXQuCisgKiA8cD4KKyAqIElmIHlvdSBhcmUgaW50ZXJlc3RlZCBpbiBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBydWxlcyBiZWhpbmQgdGhlIEhlYnJldworICogY2FsZW5kYXIsIHNlZSBvbmUgb2YgdGhlIGZvbGxvd2luZyByZWZlcmVuY2VzOgorICogPHVsPgorICogPGxpPiI8YSBocmVmPSJodHRwOi8vd3d3LmFtYXpvbi5jb20vZXhlYy9vYmlkb3MvQVNJTi8wNTIxNTY0NzQzIj5DYWxlbmRyaWNhbCBDYWxjdWxhdGlvbnM8L2E+IiwKKyAqICAgICAgYnkgTmFjaHVtIERlcnNob3dpdHogJiBFZHdhcmQgUmVpbmdvbGQsIENhbWJyaWRnZSBVbml2ZXJzaXR5IFByZXNzLCAxOTk3LCBwYWdlcyA4NS05MS4KKyAqCisgKiA8bGk+SGVicmV3IENhbGVuZGFyIFNjaWVuY2UgYW5kIE15dGhzLAorICogICAgICA8YSBocmVmPSJodHRwOi8vd3d3Lmdlb2NpdGllcy5jb20vQXRoZW5zLzE1ODQvIj4KKyAqICAgICAgaHR0cDovL3d3dy5nZW9jaXRpZXMuY29tL0F0aGVucy8xNTg0LzwvYT4KKyAqCisgKiA8bGk+VGhlIENhbGVuZGFyIEZBUSwKKyAqICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5waXAuZGtuZXQuZGsvfnBpcDEwMTYwL2NhbGVuZGFyLmh0bWwiPgorICogICAgICBodHRwOi8vd3d3LnBpcC5ka25ldC5kay9+cGlwMTAxNjAvY2FsZW5kYXIuaHRtbDwvYT4KKyAqIDwvdWw+CisgKiA8cD4KKyAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5HcmVnb3JpYW5DYWxlbmRhcgorICoKKyAqIEBhdXRob3IgTGF1cmEgV2VybmVyCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKi8KK3B1YmxpYyBjbGFzcyBIZWJyZXdDYWxlbmRhciBleHRlbmRzIENhbGVuZGFyIHsKKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBjb3B5cmlnaHQgPSAiQ29weXJpZ2h0IFx1MDBhOSAxOTk3LTE5OTggSUJNIENvcnAuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIjsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFRvbnMgbycgQ29uc3RhbnRzLi4uCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKiogQ29uc3RhbnQgZm9yIFRpc2hyaSwgdGhlIDFzdCBtb250aCBvZiB0aGUgSGVicmV3IHllYXIuICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVElTSFJJID0gMDsKKworICAgIC8qKiBDb25zdGFudCBmb3IgSGVzaHZhbiwgdGhlIDJuZCBtb250aCBvZiB0aGUgSGVicmV3IHllYXIuICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSEVTSFZBTiA9IDE7CisKKyAgICAvKiogQ29uc3RhbnQgZm9yIEtpc2xldiwgdGhlIDNyZCBtb250aCBvZiB0aGUgSGVicmV3IHllYXIuICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0lTTEVWID0gMjsKKworICAgIC8qKiBDb25zdGFudCBmb3IgVGV2ZXQsIHRoZSA0dGggbW9udGggb2YgdGhlIEhlYnJldyB5ZWFyLiAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFVkVUID0gMzsKKworICAgIC8qKiBDb25zdGFudCBmb3IgU2hldmF0LCB0aGUgNXRoIG1vbnRoIG9mIHRoZSBIZWJyZXcgeWVhci4gKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTSEVWQVQgPSA0OworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIEFkYXIgSSwgdGhlIDZ0aCBtb250aCBvZiB0aGUgSGVicmV3IHllYXIKKyAgICAgKiAocHJlc2VudCBpbiBsZWFwIHllYXJzIG9ubHkpLiBJbiBub24tbGVhcCB5ZWFycywgdGhlIGNhbGVuZGFyCisgICAgICoganVtcHMgZnJvbSBTaGV2YXQgKDV0aCBtb250aCkgdG8gQWRhciAoN3RoIG1vbnRoKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBREFSXzEgPSA1OworCisgICAgLyoqIENvbnN0YW50IGZvciB0aGUgQWRhciwgdGhlIDd0aCBtb250aCBvZiB0aGUgSGVicmV3IHllYXIuICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQURBUiA9IDY7CisKKyAgICAvKiogQ29uc3RhbnQgZm9yIE5pc2FuLCB0aGUgOHRoIG1vbnRoIG9mIHRoZSBIZWJyZXcgeWVhci4gKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOSVNBTiA9IDc7CisKKyAgICAvKiogQ29uc3RhbnQgZm9yIEl5YXIsIHRoZSA5dGggbW9udGggb2YgdGhlIEhlYnJldyB5ZWFyLiAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElZQVIgPSA4OworCisgICAgLyoqIENvbnN0YW50IGZvciBTaXZhbiwgdGhlIDEwdGggbW9udGggb2YgdGhlIEhlYnJldyB5ZWFyLiAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNJVkFOID0gOTsKKworICAgIC8qKiBDb25zdGFudCBmb3IgVGFtbXV6LCB0aGUgMTF0aCBtb250aCBvZiB0aGUgSGVicmV3IHllYXIuICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEFNVVogPSAxMDsKKworICAgIC8qKiBDb25zdGFudCBmb3IgQXYsIHRoZSAxMnRoIG1vbnRoIG9mIHRoZSBIZWJyZXcgeWVhci4gKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBViA9IDExOworCisgICAgLyoqIENvbnN0YW50IGZvciBFbHVsLCB0aGUgMTN0aCBtb250aCBvZiB0aGUgSGVicmV3IHllYXIuICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRUxVTCA9IDEyOworCisgICAgLyoqCisgICAgICogVGhlIGFic29sdXRlIGRhdGUsIGluIG1pbGxpc2Vjb25kcyBzaW5jZSAxLzEvMTk3MCBBRCwgR3JlZ29yaWFuLAorICAgICAqIG9mIHRoZSBzdGFydCBvZiB0aGUgSGVicmV3IGNhbGVuZGFyLiAgSW4gb3JkZXIgdG8ga2VlcCB0aGlzIGNhbGVuZGFyJ3MKKyAgICAgKiB0aW1lIG9mIGRheSBpbiBzeW5jIHdpdGggdGhhdCBvZiB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyLCB3ZSB1c2UKKyAgICAgKiBtaWRuaWdodCwgcmF0aGVyIHRoYW4gc3Vuc2V0IHRoZSBkYXkgYmVmb3JlLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgRVBPQ0hfTUlMTElTID0gLTE4MDc5OTg2MjQwMDAwMEw7IC8vIDEvMS8xIEhZCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTElNSVRTW11bXSA9IHsKKyAgICAgICAgLy8gTWluaW11bSAgR3JlYXRlc3QgICAgTGVhc3QgIE1heGltdW0KKyAgICAgICAgLy8gICAgICAgICAgIE1pbmltdW0gIE1heGltdW0KKyAgICAgICAgeyAgICAgICAgMCwgICAgICAgIDAsICAgICAgIDAsICAgICAgIDAgfSwgLy8gRVJBCisgICAgICAgIHsgICAgICAgIDEsICAgICAgICAxLCA1MDAwMDAwLCA1MDAwMDAwIH0sIC8vIFlFQVIKKyAgICAgICAgeyAgICAgICAgMCwgICAgICAgIDAsICAgICAgMTIsICAgICAgMTIgfSwgLy8gTU9OVEgKKyAgICAgICAgeyAgICAgICAgMSwgICAgICAgIDEsICAgICAgNTEsICAgICAgNTYgfSwgLy8gV0VFS19PRl9ZRUFSCisgICAgICAgIHsgICAgICAgIDAsICAgICAgICAwLCAgICAgICA1LCAgICAgICA2IH0sIC8vIFdFRUtfT0ZfTU9OVEgKKyAgICAgICAgeyAgICAgICAgMSwgICAgICAgIDEsICAgICAgMjksICAgICAgMzAgfSwgLy8gREFZX09GX01PTlRICisgICAgICAgIHsgICAgICAgIDEsICAgICAgICAxLCAgICAgMzUzLCAgICAgMzg1IH0sIC8vIERBWV9PRl9ZRUFSCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIERBWV9PRl9XRUVLCisgICAgICAgIHsgICAgICAgLTEsICAgICAgIC0xLCAgICAgICA0LCAgICAgICA2IH0sIC8vIERBWV9PRl9XRUVLX0lOX01PTlRICisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIEFNX1BNCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIEhPVVIKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gSE9VUl9PRl9EQVkKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gTUlOVVRFCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIFNFQ09ORAorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBNSUxMSVNFQ09ORAorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBaT05FX09GRlNFVAorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBEU1RfT0ZGU0VUCisgICAgICAgIHsgLTUwMDAwMDEsIC01MDAwMDAxLCA1MDAwMDAxLCA1MDAwMDAxIH0sIC8vIFlFQVJfV09ZCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIERPV19MT0NBTAorICAgICAgICB7IC01MDAwMDAwLCAtNTAwMDAwMCwgNTAwMDAwMCwgNTAwMDAwMCB9LCAvLyBFWFRFTkRFRF9ZRUFSCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIEpVTElBTl9EQVkKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gTUlMTElTRUNPTkRTX0lOX0RBWQorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBUaGUgbGVuZ3RocyBvZiB0aGUgSGVicmV3IG1vbnRocy4gIFRoaXMgaXMgY29tcGxpY2F0ZWQsIGJlY2F1c2UgdGhlcmUKKyAgICAgKiBhcmUgdGhyZWUgZGlmZmVyZW50IHR5cGVzIG9mIHllYXJzLCBvciBzaXggaWYgeW91IGNvdW50IGxlYXAgeWVhcnMuCisgICAgICogRHVlIHRvIHRoZSBydWxlcyBmb3IgcG9zdHBvbmluZyB0aGUgc3RhcnQgb2YgdGhlIHllYXIgdG8gYXZvaWQgaGF2aW5nCisgICAgICogY2VydGFpbiBob2xpZGF5cyBmYWxsIG9uIHRoZSBzYWJiYXRoLCB0aGUgeWVhciBjYW4gZW5kIHVwIGJlaW5nIHRocmVlCisgICAgICogZGlmZmVyZW50IGxlbmd0aHMsIGNhbGxlZCAiZGVmaWNpZW50IiwgIm5vcm1hbCIsIGFuZCAiY29tcGxldGUiLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNT05USF9MRU5HVEhbXVtdID0geworICAgICAgICAvLyBEZWZpY2llbnQgIE5vcm1hbCAgICAgQ29tcGxldGUKKyAgICAgICAgeyAgIDMwLCAgICAgICAgIDMwLCAgICAgICAgIDMwICAgICB9LCAgICAgICAgICAgLy9UaXNocmkKKyAgICAgICAgeyAgIDI5LCAgICAgICAgIDI5LCAgICAgICAgIDMwICAgICB9LCAgICAgICAgICAgLy9IZXNodmFuCisgICAgICAgIHsgICAyOSwgICAgICAgICAzMCwgICAgICAgICAzMCAgICAgfSwgICAgICAgICAgIC8vS2lzbGV2CisgICAgICAgIHsgICAyOSwgICAgICAgICAyOSwgICAgICAgICAyOSAgICAgfSwgICAgICAgICAgIC8vVGV2ZXQKKyAgICAgICAgeyAgIDMwLCAgICAgICAgIDMwLCAgICAgICAgIDMwICAgICB9LCAgICAgICAgICAgLy9TaGV2YXQKKyAgICAgICAgeyAgIDMwLCAgICAgICAgIDMwLCAgICAgICAgIDMwICAgICB9LCAgICAgICAgICAgLy9BZGFyIEkgKGxlYXAgeWVhcnMgb25seSkKKyAgICAgICAgeyAgIDI5LCAgICAgICAgIDI5LCAgICAgICAgIDI5ICAgICB9LCAgICAgICAgICAgLy9BZGFyCisgICAgICAgIHsgICAzMCwgICAgICAgICAzMCwgICAgICAgICAzMCAgICAgfSwgICAgICAgICAgIC8vTmlzYW4KKyAgICAgICAgeyAgIDI5LCAgICAgICAgIDI5LCAgICAgICAgIDI5ICAgICB9LCAgICAgICAgICAgLy9JeWFyCisgICAgICAgIHsgICAzMCwgICAgICAgICAzMCwgICAgICAgICAzMCAgICAgfSwgICAgICAgICAgIC8vU2l2YW4KKyAgICAgICAgeyAgIDI5LCAgICAgICAgIDI5LCAgICAgICAgIDI5ICAgICB9LCAgICAgICAgICAgLy9UYW1tdXoKKyAgICAgICAgeyAgIDMwLCAgICAgICAgIDMwLCAgICAgICAgIDMwICAgICB9LCAgICAgICAgICAgLy9BdgorICAgICAgICB7ICAgMjksICAgICAgICAgMjksICAgICAgICAgMjkgICAgIH0sICAgICAgICAgICAvL0VsdWwKKyAgICB9OworCisgICAgLyoqCisgICAgICogVGhlIGN1bXVsYXRpdmUgIyBvZiBkYXlzIHRvIHRoZSBlbmQgb2YgZWFjaCBtb250aCBpbiBhIG5vbi1sZWFwIHllYXIKKyAgICAgKiBBbHRob3VnaCB0aGlzIGNhbiBiZSBjYWxjdWxhdGVkIGZyb20gdGhlIE1PTlRIX0xFTkdUSCB0YWJsZSwKKyAgICAgKiBrZWVwaW5nIGl0IGFyb3VuZCBzZXBhcmF0ZWx5IG1ha2VzIHNvbWUgY2FsY3VsYXRpb25zIGEgbG90IGZhc3RlcgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNT05USF9TVEFSVFtdW10gPSB7CisgICAgICAgIC8vIERlZmljaWVudCAgTm9ybWFsICAgICBDb21wbGV0ZQorICAgICAgICB7ICAgIDAsICAgICAgICAgIDAsICAgICAgICAgIDAgIH0sICAgICAgICAgIC8vIChwbGFjZWhvbGRlcikKKyAgICAgICAgeyAgIDMwLCAgICAgICAgIDMwLCAgICAgICAgIDMwICB9LCAgICAgICAgICAvLyBUaXNocmkKKyAgICAgICAgeyAgIDU5LCAgICAgICAgIDU5LCAgICAgICAgIDYwICB9LCAgICAgICAgICAvLyBIZXNodmFuCisgICAgICAgIHsgICA4OCwgICAgICAgICA4OSwgICAgICAgICA5MCAgfSwgICAgICAgICAgLy8gS2lzbGV2CisgICAgICAgIHsgIDExNywgICAgICAgIDExOCwgICAgICAgIDExOSAgfSwgICAgICAgICAgLy8gVGV2ZXQKKyAgICAgICAgeyAgMTQ3LCAgICAgICAgMTQ4LCAgICAgICAgMTQ5ICB9LCAgICAgICAgICAvLyBTaGV2YXQKKyAgICAgICAgeyAgMTQ3LCAgICAgICAgMTQ4LCAgICAgICAgMTQ5ICB9LCAgICAgICAgICAvLyAoQWRhciBJKQorICAgICAgICB7ICAxNzYsICAgICAgICAxNzcsICAgICAgICAxNzggIH0sICAgICAgICAgIC8vIEFkYXIKKyAgICAgICAgeyAgMjA2LCAgICAgICAgMjA3LCAgICAgICAgMjA4ICB9LCAgICAgICAgICAvLyBOaXNhbgorICAgICAgICB7ICAyMzUsICAgICAgICAyMzYsICAgICAgICAyMzcgIH0sICAgICAgICAgIC8vIEl5YXIKKyAgICAgICAgeyAgMjY1LCAgICAgICAgMjY2LCAgICAgICAgMjY3ICB9LCAgICAgICAgICAvLyBTaXZhbgorICAgICAgICB7ICAyOTQsICAgICAgICAyOTUsICAgICAgICAyOTYgIH0sICAgICAgICAgIC8vIFRhbW11egorICAgICAgICB7ICAzMjQsICAgICAgICAzMjUsICAgICAgICAzMjYgIH0sICAgICAgICAgIC8vIEF2CisgICAgICAgIHsgIDM1MywgICAgICAgIDM1NCwgICAgICAgIDM1NSAgfSwgICAgICAgICAgLy8gRWx1bAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBUaGUgY3VtdWxhdGl2ZSAjIG9mIGRheXMgdG8gdGhlIGVuZCBvZiBlYWNoIG1vbnRoIGluIGEgbGVhcCB5ZWFyCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExFQVBfTU9OVEhfU1RBUlRbXVtdID0geworICAgICAgICAvLyBEZWZpY2llbnQgIE5vcm1hbCAgICAgQ29tcGxldGUKKyAgICAgICAgeyAgICAwLCAgICAgICAgICAwLCAgICAgICAgICAwICB9LCAgICAgICAgICAvLyAocGxhY2Vob2xkZXIpCisgICAgICAgIHsgICAzMCwgICAgICAgICAzMCwgICAgICAgICAzMCAgfSwgICAgICAgICAgLy8gVGlzaHJpCisgICAgICAgIHsgICA1OSwgICAgICAgICA1OSwgICAgICAgICA2MCAgfSwgICAgICAgICAgLy8gSGVzaHZhbgorICAgICAgICB7ICAgODgsICAgICAgICAgODksICAgICAgICAgOTAgIH0sICAgICAgICAgIC8vIEtpc2xldgorICAgICAgICB7ICAxMTcsICAgICAgICAxMTgsICAgICAgICAxMTkgIH0sICAgICAgICAgIC8vIFRldmV0CisgICAgICAgIHsgIDE0NywgICAgICAgIDE0OCwgICAgICAgIDE0OSAgfSwgICAgICAgICAgLy8gU2hldmF0CisgICAgICAgIHsgIDE3NywgICAgICAgIDE3OCwgICAgICAgIDE3OSAgfSwgICAgICAgICAgLy8gQWRhciBJCisgICAgICAgIHsgIDIwNiwgICAgICAgIDIwNywgICAgICAgIDIwOCAgfSwgICAgICAgICAgLy8gQWRhciBJSQorICAgICAgICB7ICAyMzYsICAgICAgICAyMzcsICAgICAgICAyMzggIH0sICAgICAgICAgIC8vIE5pc2FuCisgICAgICAgIHsgIDI2NSwgICAgICAgIDI2NiwgICAgICAgIDI2NyAgfSwgICAgICAgICAgLy8gSXlhcgorICAgICAgICB7ICAyOTUsICAgICAgICAyOTYsICAgICAgICAyOTcgIH0sICAgICAgICAgIC8vIFNpdmFuCisgICAgICAgIHsgIDMyNCwgICAgICAgIDMyNSwgICAgICAgIDMyNiAgfSwgICAgICAgICAgLy8gVGFtbXV6CisgICAgICAgIHsgIDM1NCwgICAgICAgIDM1NSwgICAgICAgIDM1NiAgfSwgICAgICAgICAgLy8gQXYKKyAgICAgICAgeyAgMzgzLCAgICAgICAgMzg0LCAgICAgICAgMzg1ICB9LCAgICAgICAgICAvLyBFbHVsCisgICAgfTsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIERhdGEgTWVtYmVycy4uLgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgcHJpdmF0ZSBzdGF0aWMgQ2FsZW5kYXJDYWNoZSBjYWNoZSA9IG5ldyBDYWxlbmRhckNhY2hlKCk7CisgICAgCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gQ29uc3RydWN0b3JzLi4uCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgZGVmYXVsdCA8Y29kZT5IZWJyZXdDYWxlbmRhcjwvY29kZT4gdXNpbmcgdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgSGVicmV3Q2FsZW5kYXIoKSB7CisgICAgICAgIHRoaXMoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SGVicmV3Q2FsZW5kYXI8L2NvZGU+IGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZ2l2ZW4gdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHpvbmUgVGhlIHRpbWUgem9uZSBmb3IgdGhlIG5ldyBjYWxlbmRhci4KKyAgICAgKi8KKyAgICBwdWJsaWMgSGVicmV3Q2FsZW5kYXIoVGltZVpvbmUgem9uZSkgeworICAgICAgICB0aGlzKHpvbmUsIExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5IZWJyZXdDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYUxvY2FsZSBUaGUgbG9jYWxlIGZvciB0aGUgbmV3IGNhbGVuZGFyLgorICAgICAqLworICAgIHB1YmxpYyBIZWJyZXdDYWxlbmRhcihMb2NhbGUgYUxvY2FsZSkgeworICAgICAgICB0aGlzKFRpbWVab25lLmdldERlZmF1bHQoKSwgYUxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkhlYnJld0NhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGdpdmVuIHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gem9uZSBUaGUgdGltZSB6b25lIGZvciB0aGUgbmV3IGNhbGVuZGFyLgorICAgICAqCisgICAgICogQHBhcmFtIGFMb2NhbGUgVGhlIGxvY2FsZSBmb3IgdGhlIG5ldyBjYWxlbmRhci4KKyAgICAgKi8KKyAgICBwdWJsaWMgSGVicmV3Q2FsZW5kYXIoVGltZVpvbmUgem9uZSwgTG9jYWxlIGFMb2NhbGUpIHsKKyAgICAgICAgc3VwZXIoem9uZSwgYUxvY2FsZSk7CisgICAgICAgIHNldFRpbWVJbk1pbGxpcyhTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkhlYnJld0NhbGVuZGFyPC9jb2RlPiB3aXRoIHRoZSBnaXZlbiBkYXRlIHNldAorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB5ZWFyICAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjWUVBUiBZRUFSfSB0aW1lIGZpZWxkLgorICAgICAqCisgICAgICogQHBhcmFtIG1vbnRoICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNNT05USCBNT05USH0gdGltZSBmaWVsZC4KKyAgICAgKiAgICAgICAgICAgICAgICAgIFRoZSB2YWx1ZSBpcyAwLWJhc2VkLiBlLmcuLCAwIGZvciBUaXNocmkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZSAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI0RBVEUgREFURX0gdGltZSBmaWVsZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgSGVicmV3Q2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUpIHsKKyAgICAgICAgc3VwZXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgdGhpcy5zZXQoWUVBUiwgeWVhcik7CisgICAgICAgIHRoaXMuc2V0KE1PTlRILCBtb250aCk7CisgICAgICAgIHRoaXMuc2V0KERBVEUsIGRhdGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5IZWJyZXdDYWxlbmRhcjwvY29kZT4gd2l0aCB0aGUgZ2l2ZW4gZGF0ZSBzZXQKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZSAgICAgIFRoZSBkYXRlIHRvIHdoaWNoIHRoZSBuZXcgY2FsZW5kYXIgaXMgc2V0LgorICAgICAqLworICAgIHB1YmxpYyBIZWJyZXdDYWxlbmRhcihEYXRlIGRhdGUpIHsKKyAgICAgICAgc3VwZXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgdGhpcy5zZXRUaW1lKGRhdGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5IZWJyZXdDYWxlbmRhcjwvY29kZT4gd2l0aCB0aGUgZ2l2ZW4gZGF0ZQorICAgICAqIGFuZCB0aW1lIHNldCBmb3IgdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHllYXIgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNZRUFSIFlFQVJ9IHRpbWUgZmllbGQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbW9udGggICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI01PTlRIIE1PTlRIfSB0aW1lIGZpZWxkLgorICAgICAqICAgICAgICAgICAgICAgICAgVGhlIHZhbHVlIGlzIDAtYmFzZWQuIGUuZy4sIDAgZm9yIFRpc2hyaS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlICAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjREFURSBEQVRFfSB0aW1lIGZpZWxkLgorICAgICAqCisgICAgICogQHBhcmFtIGhvdXIgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNIT1VSX09GX0RBWSBIT1VSX09GX0RBWX0gdGltZSBmaWVsZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtaW51dGUgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjTUlOVVRFIE1JTlVURX0gdGltZSBmaWVsZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZWNvbmQgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjU0VDT05EIFNFQ09ORH0gdGltZSBmaWVsZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgSGVicmV3Q2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUsIGludCBob3VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWludXRlLCBpbnQgc2Vjb25kKQorICAgIHsKKyAgICAgICAgc3VwZXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgdGhpcy5zZXQoWUVBUiwgeWVhcik7CisgICAgICAgIHRoaXMuc2V0KE1PTlRILCBtb250aCk7CisgICAgICAgIHRoaXMuc2V0KERBVEUsIGRhdGUpOworICAgICAgICB0aGlzLnNldChIT1VSX09GX0RBWSwgaG91cik7CisgICAgICAgIHRoaXMuc2V0KE1JTlVURSwgbWludXRlKTsKKyAgICAgICAgdGhpcy5zZXQoU0VDT05ELCBzZWNvbmQpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFJvbGxpbmcgYW5kIGFkZGluZyBmdW5jdGlvbnMgb3ZlcnJpZGRlbiBmcm9tIENhbGVuZGFyCisgICAgLy8KKyAgICAvLyBUaGVzZSBtZXRob2RzIGNhbGwgdGhyb3VnaCB0byB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBpbiBJQk1DYWxlbmRhcgorICAgIC8vIGZvciBtb3N0IG9mIHRoZSBmaWVsZHMgYW5kIG9ubHkgaGFuZGxlIHRoZSB1bnVzdWFsIG9uZXMgdGhlbXNlbHZlcy4KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEFkZCBhIHNpZ25lZCBhbW91bnQgdG8gYSBzcGVjaWZpZWQgZmllbGQsIHVzaW5nIHRoaXMgY2FsZW5kYXIncyBydWxlcy4KKyAgICAgKiBGb3IgZXhhbXBsZSwgdG8gYWRkIHRocmVlIGRheXMgdG8gdGhlIGN1cnJlbnQgZGF0ZSwgeW91IGNhbiBjYWxsCisgICAgICogPGNvZGU+YWRkKENhbGVuZGFyLkRBVEUsIDMpPC9jb2RlPi4gCisgICAgICogPHA+CisgICAgICogV2hlbiBhZGRpbmcgdG8gY2VydGFpbiBmaWVsZHMsIHRoZSB2YWx1ZXMgb2Ygb3RoZXIgZmllbGRzIG1heSBjb25mbGljdCBhbmQKKyAgICAgKiBuZWVkIHRvIGJlIGNoYW5nZWQuICBGb3IgZXhhbXBsZSwgd2hlbiBhZGRpbmcgb25lIHRvIHRoZSB7QGxpbmsgI01PTlRIIE1PTlRIfSBmaWVsZAorICAgICAqIGZvciB0aGUgZGF0ZSAiMzAgQXYgNTc1OCIsIHRoZSB7QGxpbmsgI0RBWV9PRl9NT05USCBEQVlfT0ZfTU9OVEh9IGZpZWxkCisgICAgICogbXVzdCBiZSBhZGp1c3RlZCBzbyB0aGF0IHRoZSByZXN1bHQgaXMgIjI5IEVsdWwgNTc1OCIgcmF0aGVyIHRoYW4gdGhlIGludmFsaWQKKyAgICAgKiAiMzAgRWx1bCA1NzU4Ii4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGlzIG1ldGhvZCBpcyBhYmxlIHRvIGFkZCB0bworICAgICAqIGFsbCBmaWVsZHMgZXhjZXB0IGZvciB7QGxpbmsgI0VSQSBFUkF9LCB7QGxpbmsgI0RTVF9PRkZTRVQgRFNUX09GRlNFVH0sCisgICAgICogYW5kIHtAbGluayAjWk9ORV9PRkZTRVQgWk9ORV9PRkZTRVR9LgorICAgICAqIDxwPgorICAgICAqIDxiPk5vdGU6PC9iPiBZb3Ugc2hvdWxkIGFsd2F5cyB1c2Uge0BsaW5rICNyb2xsIHJvbGx9IGFuZCBhZGQgcmF0aGVyCisgICAgICogdGhhbiBhdHRlbXB0aW5nIHRvIHBlcmZvcm0gYXJpdGhtZXRpYyBvcGVyYXRpb25zIGRpcmVjdGx5IG9uIHRoZSBmaWVsZHMKKyAgICAgKiBvZiBhIDx0dD5IZWJyZXdDYWxlbmRhcjwvdHQ+LiAgU2luY2UgdGhlIHtAbGluayAjTU9OVEggTU9OVEh9IGZpZWxkIGJlaGF2ZXMKKyAgICAgKiBkaXNjb250aW51b3VzbHkgaW4gbm9uLWxlYXAgeWVhcnMsIHNpbXBsZSBhcml0aG1ldGljIGNhbiBnaXZlIGludmFsaWQgcmVzdWx0cy4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gZmllbGQgICAgIHRoZSB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBhbW91bnQgICAgdGhlIGFtb3VudCB0byBhZGQgdG8gdGhlIGZpZWxkLgorICAgICAqCisgICAgICogQGV4Y2VwdGlvbiAgIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgZmllbGQgaXMgaW52YWxpZCBvciByZWZlcnMKKyAgICAgKiAgICAgICAgICAgICAgdG8gYSBmaWVsZCB0aGF0IGNhbm5vdCBiZSBoYW5kbGVkIGJ5IHRoaXMgbWV0aG9kLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFkZChpbnQgZmllbGQsIGludCBhbW91bnQpCisgICAgeworICAgICAgICBzd2l0Y2ggKGZpZWxkKSB7CisgICAgICAgIGNhc2UgTU9OVEg6IAorICAgICAgICAgICAgeworLy9+ICAgICAgICAgICAgIC8vIFRoaXMgc2VlbXMgbGlrZSBhIGdvb2QgaWRlYSBidXQgaXQgaXNuJ3Qgd29ya2luZyA6KCAtIEFsYW4KKworLy9+ICAgICAgICAgICAgIC8vIE1PTlRIIGlzIHRyaWNreSwgYmVjYXVzZSB0aGUgbnVtYmVyIG9mIG1vbnRocyBwZXIgeWVhciB2YXJpZXMKKy8vfiAgICAgICAgICAgICAvLyBJdCdzIGVhc2llc3QgdG8ganVzdCBjb252ZXJ0IHRvIGFuIGFic29sdXRlICMgb2YgbW9udGhzCisvL34gICAgICAgICAgICAgLy8gc2luY2UgdGhlIGVwb2NoLCBkbyB0aGUgYWRkaXRpb24sIGFuZCBjb252ZXJ0IGJhY2suCisvL34gICAgICAgICAgICAgaW50IG1vbnRoID0gKDIzNSAqIGdldChZRUFSKSAtIDIzNCkgLyAxOSArIGdldChNT05USCk7CisvL34gICAgICAgICAgICAgbW9udGggKz0gYW1vdW50OworCisvL34gICAgICAgICAgICAgLy8gTm93IGNvbnZlcnQgYmFjayB0byB5ZWFyIGFuZCBtb250aCB2YWx1ZXMKKy8vfiAgICAgICAgICAgICBpbnQgeWVhciA9ICgxOSAqIG1vbnRoICsgMjM0KSAvIDIzNTsKKy8vfiAgICAgICAgICAgICBtb250aCAtPSAoMjM1ICogeWVhciAtIDIzNCkgLyAxOTsKKy8vfiAgICAgICAgICAgICAKKy8vfiAgICAgICAgICAgICAvLyBJbiBhIG5vbi1sZWFwIHllYXIsIG1vbnRocyBhZnRlciB0aGUgKG1pc3NpbmcpIGxlYXAgbW9udGgKKy8vfiAgICAgICAgICAgICAvLyBtdXN0IGJlIGJ1bXBlZCB1cCBieSBvbmUuCisvL34gICAgICAgICAgICAgLy8gVE9ETzogYnV0IG9ubHkgaWYgd2Ugc3RhcnRlZCBiZWZvcmUgdGhlIGxlYXAgbW9udGgKKy8vfiAgICAgICAgICAgICBpZiAobW9udGggPj0gQURBUl8xICYmICFpc0xlYXBZZWFyKHllYXIpKSB7CisvL34gICAgICAgICAgICAgICAgIG1vbnRoKys7CisvL34gICAgICAgICAgICAgfQorLy9+ICAgICAgICAgICAgIHNldChZRUFSLCB5ZWFyKTsKKy8vfiAgICAgICAgICAgICBzZXQoTU9OVEgsIG1vbnRoKTsKKy8vfiAgICAgICAgICAgICBwaW5GaWVsZChEQVlfT0ZfTU9OVEgpOworCisgICAgICAgICAgICAgICAgLy8gV2UgY2FuJ3QganVzdCBkbyBhIHNldChNT05USCwgZ2V0KE1PTlRIKSArIGFtb3VudCkuICBUaGUKKyAgICAgICAgICAgICAgICAvLyByZWFzb24gaXMgQURBUl8xLiAgU3VwcG9zZSBhbW91bnQgaXMgKzIgYW5kIHdlIGxhbmQgaW4KKyAgICAgICAgICAgICAgICAvLyBBREFSXzEgLS0gdGhlbiB3ZSBoYXZlIHRvIGJ1bXAgdG8gQURBUl8yIGFrYSBBREFSLiAgQnV0CisgICAgICAgICAgICAgICAgLy8gaWYgYW1vdW50IGlzIC0yIGFuZCB3ZSBsYW5kIGluIEFEQVJfMSwgdGhlbiB3ZSBoYXZlIHRvCisgICAgICAgICAgICAgICAgLy8gYnVtcCB0aGUgb3RoZXIgd2F5IC0tIGRvd24gdG8gU0hFVkFULiAgLSBBbGFuIDExLzAwCisgICAgICAgICAgICAgICAgaW50IG1vbnRoID0gZ2V0KE1PTlRIKTsKKyAgICAgICAgICAgICAgICBpbnQgeWVhciA9IGdldChZRUFSKTsKKyAgICAgICAgICAgICAgICAvL3B1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNIRVZBVCA9IDQ7CisgICAgICAgICAgICAgICAgLy9wdWJsaWMgc3RhdGljIGZpbmFsIGludCBBREFSXzEgPSA1OworICAgICAgICAgICAgICAgIC8vcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQURBUiA9IDY7CisgICAgICAgICAgICAgICAgaWYgKGFtb3VudCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGFtb3VudC0tID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgKyttb250aDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtb250aCA9PSBBREFSXzEgJiYgIWlzTGVhcFllYXIoeWVhcikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK21vbnRoOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1vbnRoID4gRUxVTCkgeyAvLyBMYXN0IG1vbnRoIG9mIHllYXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250aCA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyt5ZWFyOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGFtb3VudCsrIDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLS1tb250aDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtb250aCA9PSBBREFSXzEgJiYgIWlzTGVhcFllYXIoeWVhcikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLW1vbnRoOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1vbnRoIDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRoID0gRUxVTDsgLy8gTGFzdCBtb250aCBvZiB5ZWFyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS15ZWFyOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNldChNT05USCwgbW9udGgpOworICAgICAgICAgICAgICAgIHNldChZRUFSLCB5ZWFyKTsKKyAgICAgICAgICAgICAgICBwaW5GaWVsZChEQVlfT0ZfTU9OVEgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBzdXBlci5hZGQoZmllbGQsIGFtb3VudCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJvbGxzICh1cC9kb3duKSBhIHNwZWNpZmllZCBhbW91bnQgdGltZSBvbiB0aGUgZ2l2ZW4gZmllbGQuICBGb3IKKyAgICAgKiBleGFtcGxlLCB0byByb2xsIHRoZSBjdXJyZW50IGRhdGUgdXAgYnkgdGhyZWUgZGF5cywgeW91IGNhbiBjYWxsCisgICAgICogPGNvZGU+cm9sbChDYWxlbmRhci5EQVRFLCAzKTwvY29kZT4uICBJZiB0aGUKKyAgICAgKiBmaWVsZCBpcyByb2xsZWQgcGFzdCBpdHMgbWF4aW11bSBhbGxvd2FibGUgdmFsdWUsIGl0IHdpbGwgIndyYXAiIGJhY2sKKyAgICAgKiB0byBpdHMgbWluaW11bSBhbmQgY29udGludWUgcm9sbGluZy4gIAorICAgICAqIEZvciBleGFtcGxlLCBjYWxsaW5nIDxjb2RlPnJvbGwoQ2FsZW5kYXIuREFURSwgMTApPC9jb2RlPgorICAgICAqIG9uIGEgSGVicmV3IGNhbGVuZGFyIHNldCB0byAiMjUgQXYgNTc1OCIgd2lsbCByZXN1bHQgaW4gdGhlIGRhdGUgIjUgQXYgNTc1OCIuCisgICAgICogPHA+CisgICAgICogV2hlbiByb2xsaW5nIGNlcnRhaW4gZmllbGRzLCB0aGUgdmFsdWVzIG9mIG90aGVyIGZpZWxkcyBtYXkgY29uZmxpY3QgYW5kCisgICAgICogbmVlZCB0byBiZSBjaGFuZ2VkLiAgRm9yIGV4YW1wbGUsIHdoZW4gcm9sbGluZyB0aGUge0BsaW5rICNNT05USCBNT05USH0gZmllbGQKKyAgICAgKiB1cHdhcmQgYnkgb25lIGZvciB0aGUgZGF0ZSAiMzAgQXYgNTc1OCIsIHRoZSB7QGxpbmsgI0RBWV9PRl9NT05USCBEQVlfT0ZfTU9OVEh9IGZpZWxkCisgICAgICogbXVzdCBiZSBhZGp1c3RlZCBzbyB0aGF0IHRoZSByZXN1bHQgaXMgIjI5IEVsdWwgNTc1OCIgcmF0aGVyIHRoYW4gdGhlIGludmFsaWQKKyAgICAgKiAiMzAgRWx1bCIuCisgICAgICogPHA+CisgICAgICogVGhpcyBtZXRob2QgaXMgYWJsZSB0byByb2xsCisgICAgICogYWxsIGZpZWxkcyBleGNlcHQgZm9yIHtAbGluayAjRVJBIEVSQX0sIHtAbGluayAjRFNUX09GRlNFVCBEU1RfT0ZGU0VUfSwKKyAgICAgKiBhbmQge0BsaW5rICNaT05FX09GRlNFVCBaT05FX09GRlNFVH0uICBTdWJjbGFzc2VzIG1heSwgb2YgY291cnNlLCBhZGQgc3VwcG9ydCBmb3IKKyAgICAgKiBhZGRpdGlvbmFsIGZpZWxkcyBpbiB0aGVpciBvdmVycmlkZXMgb2YgPGNvZGU+cm9sbDwvY29kZT4uCisgICAgICogPHA+CisgICAgICogPGI+Tm90ZTo8L2I+IFlvdSBzaG91bGQgYWx3YXlzIHVzZSByb2xsIGFuZCB7QGxpbmsgI2FkZCBhZGR9IHJhdGhlcgorICAgICAqIHRoYW4gYXR0ZW1wdGluZyB0byBwZXJmb3JtIGFyaXRobWV0aWMgb3BlcmF0aW9ucyBkaXJlY3RseSBvbiB0aGUgZmllbGRzCisgICAgICogb2YgYSA8dHQ+SGVicmV3Q2FsZW5kYXI8L3R0Pi4gIFNpbmNlIHRoZSB7QGxpbmsgI01PTlRIIE1PTlRIfSBmaWVsZCBiZWhhdmVzCisgICAgICogZGlzY29udGludW91c2x5IGluIG5vbi1sZWFwIHllYXJzLCBzaW1wbGUgYXJpdGhtZXRpYyBjYW4gZ2l2ZSBpbnZhbGlkIHJlc3VsdHMuCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGZpZWxkICAgICB0aGUgdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gYW1vdW50ICAgIHRoZSBhbW91bnQgYnkgd2hpY2ggdGhlIGZpZWxkIHNob3VsZCBiZSByb2xsZWQuCisgICAgICoKKyAgICAgKiBAZXhjZXB0aW9uICAgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBmaWVsZCBpcyBpbnZhbGlkIG9yIHJlZmVycworICAgICAqICAgICAgICAgICAgICB0byBhIGZpZWxkIHRoYXQgY2Fubm90IGJlIGhhbmRsZWQgYnkgdGhpcyBtZXRob2QuCisgICAgICovCisgICAgcHVibGljIHZvaWQgcm9sbChpbnQgZmllbGQsIGludCBhbW91bnQpCisgICAgeworICAgICAgICBzd2l0Y2ggKGZpZWxkKSB7CisgICAgICAgIGNhc2UgTU9OVEg6CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaW50IG1vbnRoID0gZ2V0KE1PTlRIKTsKKyAgICAgICAgICAgICAgICBpbnQgeWVhciA9IGdldChZRUFSKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBib29sZWFuIGxlYXBZZWFyID0gaXNMZWFwWWVhcih5ZWFyKTsKKyAgICAgICAgICAgICAgICBpbnQgeWVhckxlbmd0aCA9IG1vbnRoc0luWWVhcih5ZWFyKTsKKyAgICAgICAgICAgICAgICBpbnQgbmV3TW9udGggPSBtb250aCArIChhbW91bnQgJSB5ZWFyTGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgIC8vIElmIGl0J3Mgbm90IGEgbGVhcCB5ZWFyIGFuZCB3ZSdyZSByb2xsaW5nIHBhc3QgdGhlIG1pc3NpbmcgbW9udGgKKyAgICAgICAgICAgICAgICAvLyBvZiBBREFSXzEsIHdlIG5lZWQgdG8gcm9sbCBhbiBleHRyYSBtb250aCB0byBtYWtlIHVwIGZvciBpdC4KKyAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgIGlmICghbGVhcFllYXIpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGFtb3VudCA+IDAgJiYgbW9udGggPCBBREFSXzEgJiYgbmV3TW9udGggPj0gQURBUl8xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdNb250aCsrOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFtb3VudCA8IDAgJiYgbW9udGggPiBBREFSXzEgJiYgbmV3TW9udGggPD0gQURBUl8xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdNb250aC0tOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNldChNT05USCwgKG5ld01vbnRoICsgMTMpICUgMTMpOworICAgICAgICAgICAgICAgIHBpbkZpZWxkKERBWV9PRl9NT05USCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgc3VwZXIucm9sbChmaWVsZCwgYW1vdW50KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFN1cHBvcnQgbWV0aG9kcworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLy8gSGVicmV3IGRhdGUgY2FsY3VsYXRpb25zIGFyZSBwZXJmb3JtZWQgaW4gdGVybXMgb2YgZGF5cywgaG91cnMsIGFuZAorICAgIC8vICJwYXJ0cyIgKG9yIGhhbGFraW0pLCB3aGljaCBhcmUgMS8xMDgwIG9mIGFuIGhvdXIsIG9yIDMgMS8zIHNlY29uZHMuCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBIT1VSX1BBUlRTID0gMTA4MDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIERBWV9QQVJUUyAgPSAyNCpIT1VSX1BBUlRTOworICAgIAorICAgIC8vIEFuIGFwcHJveGltYXRlIHZhbHVlIGZvciB0aGUgbGVuZ3RoIG9mIGEgbHVuYXIgbW9udGguCisgICAgLy8gSXQgaXMgdXNlZCB0byBjYWxjdWxhdGUgdGhlIGFwcHJveGltYXRlIHllYXIgYW5kIG1vbnRoIG9mIGEgZ2l2ZW4KKyAgICAvLyBhYnNvbHV0ZSBkYXRlLgorICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIGludCAgTU9OVEhfREFZUyA9IDI5OworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIGxvbmcgTU9OVEhfRlJBQ1QgPSAxMipIT1VSX1BBUlRTICsgNzkzOworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIGxvbmcgTU9OVEhfUEFSVFMgPSBNT05USF9EQVlTKkRBWV9QQVJUUyArIE1PTlRIX0ZSQUNUOworICAgIAorICAgIC8vIFRoZSB0aW1lIG9mIHRoZSBuZXcgbW9vbiAoaW4gcGFydHMpIG9uIDEgVGlzaHJpLCB5ZWFyIDEgKHRoZSBlcG9jaCkKKyAgICAvLyBjb3VudGluZyBmcm9tIG5vb24gb24gdGhlIGRheSBiZWZvcmUuICBCQUhBUkFEIGlzIGFuIGFiYnJldmlhdGlvbiBvZgorICAgIC8vIEJldCAoTW9uZGF5KSwgSGV5ICg1IGhvdXJzIGZyb20gc3Vuc2V0KSwgUmVzaC1EYWxlZCAoMjA0KS4KKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBsb25nIEJBSEFSQUQgPSAxMSpIT1VSX1BBUlRTICsgMjA0OworCisgICAgLyoqCisgICAgICogRmluZHMgdGhlIGRheSAjIG9mIHRoZSBmaXJzdCBkYXkgaW4gdGhlIGdpdmVuIEhlYnJldyB5ZWFyLgorICAgICAqIFRvIGRvIHRoaXMsIHdlIHdhbnQgdG8gY2FsY3VsYXRlIHRoZSB0aW1lIG9mIHRoZSBUaXNocmkgMSBuZXcgbW9vbgorICAgICAqIGluIHRoYXQgeWVhci4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgYWxnb3JpdGhtIGhlcmUgaXMgc2ltaWxhciB0byBvbmVzIGRlc2NyaWJlZCBpbiBhIG51bWJlciBvZgorICAgICAqIHJlZmVyZW5jZXMsIGluY2x1ZGluZzoKKyAgICAgKiA8dWw+CisgICAgICogPGxpPiJDYWxlbmRyaWNhbCBDYWxjdWxhdGlvbnMiLCBieSBOYWNodW0gRGVyc2hvd2l0eiAmIEVkd2FyZCBSZWluZ29sZCwKKyAgICAgKiAgICAgQ2FtYnJpZGdlIFVuaXZlcnNpdHkgUHJlc3MsIDE5OTcsIHBhZ2VzIDg1LTkxLgorICAgICAqCisgICAgICogPGxpPkhlYnJldyBDYWxlbmRhciBTY2llbmNlIGFuZCBNeXRocywKKyAgICAgKiAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5nZW9jaXRpZXMuY29tL0F0aGVucy8xNTg0LyI+CisgICAgICogICAgIGh0dHA6Ly93d3cuZ2VvY2l0aWVzLmNvbS9BdGhlbnMvMTU4NC88L2E+CisgICAgICoKKyAgICAgKiA8bGk+VGhlIENhbGVuZGFyIEZBUSwKKyAgICAgKiAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cucGlwLmRrbmV0LmRrL35waXAxMDE2MC9jYWxlbmRhci5mYXEyLnR4dCI+CisgICAgICogICAgICBodHRwOi8vd3d3LnBpcC5ka25ldC5kay9+cGlwMTAxNjAvY2FsZW5kYXIuaHRtbDwvYT4KKyAgICAgKiA8L3VsPgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGxvbmcgc3RhcnRPZlllYXIoaW50IHllYXIpCisgICAgeworICAgICAgICBsb25nIGRheSA9IGNhY2hlLmdldCh5ZWFyKTsKKyAgICAgICAgCisgICAgICAgIGlmIChkYXkgPT0gQ2FsZW5kYXJDYWNoZS5FTVBUWSkgeworICAgICAgICAgICAgaW50IG1vbnRocyA9ICgyMzUgKiB5ZWFyIC0gMjM0KSAvIDE5OyAgICAgICAgICAgLy8gIyBvZiBtb250aHMgYmVmb3JlIHllYXIKKworICAgICAgICAgICAgbG9uZyBmcmFjID0gbW9udGhzICogTU9OVEhfRlJBQ1QgKyBCQUhBUkFEOyAgICAgLy8gRnJhY3Rpb25hbCBwYXJ0IG9mIGRheSAjCisgICAgICAgICAgICBkYXkgID0gbW9udGhzICogMjkgKyAoZnJhYyAvIERBWV9QQVJUUyk7ICAgLy8gV2hvbGUgIyBwYXJ0IG9mIGNhbGN1bGF0aW9uCisgICAgICAgICAgICBmcmFjID0gZnJhYyAlIERBWV9QQVJUUzsgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaW1lIG9mIGRheQorCisgICAgICAgICAgICBpbnQgd2QgPSAoaW50KShkYXkgJSA3KTsgICAgICAgICAgICAgICAgICAgICAgICAvLyBEYXkgb2Ygd2VlayAoMCA9PSBNb25kYXkpCisKKyAgICAgICAgICAgIGlmICh3ZCA9PSAyIHx8IHdkID09IDQgfHwgd2QgPT0gNikgeworICAgICAgICAgICAgICAgIC8vIElmIHRoZSAxc3QgaXMgb24gU3VuLCBXZWQsIG9yIEZyaSwgcG9zdHBvbmUgdG8gdGhlIG5leHQgZGF5CisgICAgICAgICAgICAgICAgZGF5ICs9IDE7CisgICAgICAgICAgICAgICAgd2QgPSAoaW50KShkYXkgJSA3KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh3ZCA9PSAxICYmIGZyYWMgPiAxNSpIT1VSX1BBUlRTKzIwNCAmJiAhaXNMZWFwWWVhcih5ZWFyKSApIHsKKyAgICAgICAgICAgICAgICAvLyBJZiB0aGUgbmV3IG1vb24gZmFsbHMgYWZ0ZXIgMzoxMToyMGFtICgxNWgyMDRwIGZyb20gdGhlIHByZXZpb3VzIG5vb24pCisgICAgICAgICAgICAgICAgLy8gb24gYSBUdWVzZGF5IGFuZCBpdCBpcyBub3QgYSBsZWFwIHllYXIsIHBvc3Rwb25lIGJ5IDIgZGF5cy4KKyAgICAgICAgICAgICAgICAvLyBUaGlzIHByZXZlbnRzIDM1Ni1kYXkgeWVhcnMuCisgICAgICAgICAgICAgICAgZGF5ICs9IDI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmICh3ZCA9PSAwICYmIGZyYWMgPiAyMSpIT1VSX1BBUlRTKzU4OSAmJiBpc0xlYXBZZWFyKHllYXItMSkgKSB7CisgICAgICAgICAgICAgICAgLy8gSWYgdGhlIG5ldyBtb29uIGZhbGxzIGFmdGVyIDk6MzI6NDMgMS8zYW0gKDIxaDU4OXAgZnJvbSB5ZXN0ZXJkYXkgbm9vbikKKyAgICAgICAgICAgICAgICAvLyBvbiBhIE1vbmRheSBhbmQgKmxhc3QqIHllYXIgd2FzIGEgbGVhcCB5ZWFyLCBwb3N0cG9uZSBieSAxIGRheS4KKyAgICAgICAgICAgICAgICAvLyBQcmV2ZW50cyAzODItZGF5IHllYXJzLgorICAgICAgICAgICAgICAgIGRheSArPSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FjaGUucHV0KHllYXIsIGRheSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGRheTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGaW5kIHRoZSBkYXkgb2YgdGhlIHdlZWsgZm9yIGEgZ2l2ZW4gZGF5CisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF5ICAgVGhlICMgb2YgZGF5cyBzaW5jZSB0aGUgc3RhcnQgb2YgdGhlIEhlYnJldyBjYWxlbmRhciwKKyAgICAgKiAgICAgICAgICAgICAgMS1iYXNlZCAoaS5lLiAxLzEvMSBBTSBpcyBkYXkgMSkuCisgICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHByaXZhdGUgc3RhdGljIGludCBhYnNvbHV0ZURheVRvRGF5T2ZXZWVrKGxvbmcgZGF5KQorICAgIHsKKyAgICAgICAgLy8gV2Uga25vdyB0aGF0IDEvMS8xIEFNIGlzIGEgTW9uZGF5LCB3aGljaCBtYWtlcyB0aGUgbWF0aCBlYXN5Li4uCisgICAgICAgIHJldHVybiAoaW50KShkYXkgJSA3KSArIDE7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdGhlIHR5cGUgb2YgYSBnaXZlbiB5ZWFyLgorICAgICAqICAwICAgIkRlZmljaWVudCIgeWVhciB3aXRoIDM1MyBvciAzODMgZGF5cworICAgICAqICAxICAgIk5vcm1hbCIgICAgeWVhciB3aXRoIDM1NCBvciAzODQgZGF5cworICAgICAqICAyICAgIkNvbXBsZXRlIiAgeWVhciB3aXRoIDM1NSBvciAzODUgZGF5cworICAgICAqLworICAgIHByaXZhdGUgZmluYWwgaW50IHllYXJUeXBlKGludCB5ZWFyKQorICAgIHsKKyAgICAgICAgaW50IHllYXJMZW5ndGggPSBoYW5kbGVHZXRZZWFyTGVuZ3RoKHllYXIpOworCisgICAgICAgIGlmICh5ZWFyTGVuZ3RoID4gMzgwKSB7CisgICAgICAgICAgIHllYXJMZW5ndGggLT0gMzA7ICAgICAgICAvLyBTdWJ0cmFjdCBsZW5ndGggb2YgbGVhcCBtb250aC4KKyAgICAgICAgfQorCisgICAgICAgIGludCB0eXBlID0gMDsKKworICAgICAgICBzd2l0Y2ggKHllYXJMZW5ndGgpIHsKKyAgICAgICAgICAgIGNhc2UgMzUzOgorICAgICAgICAgICAgICAgIHR5cGUgPSAwOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMzU0OgorICAgICAgICAgICAgICAgIHR5cGUgPSAxOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMzU1OgorICAgICAgICAgICAgICAgIHR5cGUgPSAyOyBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJJbGxlZ2FsIHllYXIgbGVuZ3RoICIgKyB5ZWFyTGVuZ3RoICsgIiBpbiB5ZWFyVHlwZSIpOworCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHR5cGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lIHdoZXRoZXIgYSBnaXZlbiBIZWJyZXcgeWVhciBpcyBhIGxlYXAgeWVhcgorICAgICAqCisgICAgICogVGhlIHJ1bGUgaGVyZSBpcyB0aGF0IGlmICh5ZWFyICUgMTkpID09IDAsIDMsIDYsIDgsIDExLCAxNCwgb3IgMTcuCisgICAgICogVGhlIGZvcm11bGEgYmVsb3cgcGVyZm9ybXMgdGhlIHNhbWUgdGVzdCwgYmVsaWV2ZSBpdCBvciBub3QuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBpc0xlYXBZZWFyKGludCB5ZWFyKSB7CisgICAgICAgIHJldHVybiAoeWVhciAqIDEyICsgMTcpICUgMTkgPj0gMTI7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IG1vbnRoc0luWWVhcihpbnQgeWVhcikgeworICAgICAgICByZXR1cm4gaXNMZWFwWWVhcih5ZWFyKSA/IDEzIDogMTI7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gQ2FsZW5kYXIgZnJhbWV3b3JrCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldExpbWl0KGludCBmaWVsZCwgaW50IGxpbWl0VHlwZSkgeworICAgICAgICByZXR1cm4gTElNSVRTW2ZpZWxkXVtsaW1pdFR5cGVdOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgZ2l2ZW4gbW9udGggaW4gdGhlIGdpdmVuIHllYXIKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldE1vbnRoTGVuZ3RoKGludCBleHRlbmRlZFllYXIsIGludCBtb250aCkgeworCisgICAgICAgIHN3aXRjaCAobW9udGgpIHsKKyAgICAgICAgICAgIGNhc2UgSEVTSFZBTjoKKyAgICAgICAgICAgIGNhc2UgS0lTTEVWOgorICAgICAgICAgICAgICAgIC8vIFRoZXNlIHR3byBtb250aCBsZW5ndGhzIGNhbiB2YXJ5CisgICAgICAgICAgICAgICAgcmV0dXJuIE1PTlRIX0xFTkdUSFttb250aF1beWVhclR5cGUoZXh0ZW5kZWRZZWFyKV07CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIC8vIFRoZSByZXN0IGFyZSBhIGZpeGVkIGxlbmd0aAorICAgICAgICAgICAgICAgIHJldHVybiBNT05USF9MRU5HVEhbbW9udGhdWzBdOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGRheXMgaW4gdGhlIGdpdmVuIEhlYnJldyB5ZWFyCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVHZXRZZWFyTGVuZ3RoKGludCBleWVhcikgeworICAgICAgICByZXR1cm4gKGludCkoc3RhcnRPZlllYXIoZXllYXIrMSkgLSBzdGFydE9mWWVhcihleWVhcikpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEZ1bmN0aW9ucyBmb3IgY29udmVydGluZyBmcm9tIG1pbGxpc2Vjb25kcyB0byBmaWVsZCB2YWx1ZXMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFN1YmNsYXNzZXMgbWF5IG92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvIGNvbXB1dGUgc2V2ZXJhbCBmaWVsZHMKKyAgICAgKiBzcGVjaWZpYyB0byBlYWNoIGNhbGVuZGFyIHN5c3RlbS4gIFRoZXNlIGFyZToKKyAgICAgKgorICAgICAqIDx1bD48bGk+RVJBCisgICAgICogPGxpPllFQVIKKyAgICAgKiA8bGk+TU9OVEgKKyAgICAgKiA8bGk+REFZX09GX01PTlRICisgICAgICogPGxpPkRBWV9PRl9ZRUFSCisgICAgICogPGxpPkVYVEVOREVEX1lFQVI8L3VsPgorICAgICAqIAorICAgICAqIFN1YmNsYXNzZXMgY2FuIHJlZmVyIHRvIHRoZSBEQVlfT0ZfV0VFSyBhbmQgRE9XX0xPQ0FMIGZpZWxkcywKKyAgICAgKiB3aGljaCB3aWxsIGJlIHNldCB3aGVuIHRoaXMgbWV0aG9kIGlzIGNhbGxlZC4gIFN1YmNsYXNzZXMgY2FuCisgICAgICogYWxzbyBjYWxsIHRoZSBnZXRHcmVnb3JpYW5YeHgoKSBtZXRob2RzIHRvIG9idGFpbiBHcmVnb3JpYW4KKyAgICAgKiBjYWxlbmRhciBlcXVpdmFsZW50cyBmb3IgdGhlIGdpdmVuIEp1bGlhbiBkYXkuCisgICAgICoKKyAgICAgKiA8cD5JbiBhZGRpdGlvbiwgc3ViY2xhc3NlcyBzaG91bGQgY29tcHV0ZSBhbnkgc3ViY2xhc3Mtc3BlY2lmaWMKKyAgICAgKiBmaWVsZHMsIHRoYXQgaXMsIGZpZWxkcyBmcm9tIEJBU0VfRklFTERfQ09VTlQgdG8KKyAgICAgKiBnZXRGaWVsZENvdW50KCkgLSAxLgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZUNvbXB1dGVGaWVsZHMoaW50IGp1bGlhbkRheSkgeworICAgICAgICBsb25nIGQgPSBqdWxpYW5EYXkgLSAzNDc5OTc7CisgICAgICAgIGxvbmcgbSA9IChkICogREFZX1BBUlRTKSAvIE1PTlRIX1BBUlRTOyAgICAgICAgIC8vIE1vbnRocyAoYXBwcm94KQorICAgICAgICBpbnQgeWVhciA9IChpbnQpKCgxOSAqIG0gKyAyMzQpIC8gMjM1KSArIDE7ICAgICAvLyBZZWFycyAoYXBwcm94KQorICAgICAgICBsb25nIHlzICA9IHN0YXJ0T2ZZZWFyKHllYXIpOyAgICAgICAgICAgICAgICAgICAvLyAxc3QgZGF5IG9mIHllYXIKKyAgICAgICAgaW50IGRheU9mWWVhciA9IChpbnQpKGQgLSB5cyk7CisKKyAgICAgICAgLy8gQmVjYXVzZSBvZiB0aGUgcG9zdHBvbmVtZW50IHJ1bGVzLCBpdCdzIHBvc3NpYmxlIHRvIGd1ZXNzIHdyb25nLiAgRml4IGl0LgorICAgICAgICB3aGlsZSAoZGF5T2ZZZWFyIDwgMSkgeworICAgICAgICAgICAgeWVhci0tOworICAgICAgICAgICAgeXMgID0gc3RhcnRPZlllYXIoeWVhcik7CisgICAgICAgICAgICBkYXlPZlllYXIgPSAoaW50KShkIC0geXMpOworICAgICAgICB9CisKKyAgICAgICAgLy8gTm93IGZpZ3VyZSBvdXQgd2hpY2ggbW9udGggd2UncmUgaW4sIGFuZCB0aGUgZGF0ZSB3aXRoaW4gdGhhdCBtb250aAorICAgICAgICBpbnQgeWVhclR5cGUgPSB5ZWFyVHlwZSh5ZWFyKTsKKyAgICAgICAgaW50IG1vbnRoU3RhcnRbXVtdID0gaXNMZWFwWWVhcih5ZWFyKSA/IExFQVBfTU9OVEhfU1RBUlQgOiBNT05USF9TVEFSVDsKKworICAgICAgICBpbnQgbW9udGggPSAwOworICAgICAgICB3aGlsZSAoZGF5T2ZZZWFyID4gbW9udGhTdGFydFttb250aF1beWVhclR5cGVdKSB7CisgICAgICAgICAgICBtb250aCsrOworICAgICAgICB9CisgICAgICAgIG1vbnRoLS07CisgICAgICAgIGludCBkYXlPZk1vbnRoID0gZGF5T2ZZZWFyIC0gbW9udGhTdGFydFttb250aF1beWVhclR5cGVdOworCisgICAgICAgIGludGVybmFsU2V0KEVSQSwgMCk7CisgICAgICAgIGludGVybmFsU2V0KFlFQVIsIHllYXIpOworICAgICAgICBpbnRlcm5hbFNldChFWFRFTkRFRF9ZRUFSLCB5ZWFyKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoTU9OVEgsIG1vbnRoKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoREFZX09GX01PTlRILCBkYXlPZk1vbnRoKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoREFZX09GX1lFQVIsIGRheU9mWWVhcik7ICAgICAgIAorICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEZ1bmN0aW9ucyBmb3IgY29udmVydGluZyBmcm9tIGZpZWxkIHZhbHVlcyB0byBtaWxsaXNlY29uZHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0RXh0ZW5kZWRZZWFyKCkgeworICAgICAgICBpbnQgeWVhcjsKKyAgICAgICAgaWYgKG5ld2VyRmllbGQoRVhURU5ERURfWUVBUiwgWUVBUikgPT0gRVhURU5ERURfWUVBUikgeworICAgICAgICAgICAgeWVhciA9IGludGVybmFsR2V0KEVYVEVOREVEX1lFQVIsIDEpOyAvLyBEZWZhdWx0IHRvIHllYXIgMQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgeWVhciA9IGludGVybmFsR2V0KFlFQVIsIDEpOyAvLyBEZWZhdWx0IHRvIHllYXIgMQorICAgICAgICB9CisgICAgICAgIHJldHVybiB5ZWFyOworICAgIH0KKworICAgIC8vIFJldHVybiBKRCBvZiBzdGFydCBvZiBnaXZlbiBtb250aC95ZWFyCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVDb21wdXRlTW9udGhTdGFydChpbnQgZXllYXIsIGludCBtb250aCwgYm9vbGVhbiB1c2VNb250aCkgeworCisgICAgICAgIC8vIFJlc29sdmUgb3V0LW9mLXJhbmdlIG1vbnRocy4gIFRoaXMgaXMgbmVjZXNzYXJ5IGluIG9yZGVyIHRvCisgICAgICAgIC8vIG9idGFpbiB0aGUgY29ycmVjdCB5ZWFyLgorICAgICAgICBpZiAobW9udGggPCAwKSB7CisgICAgICAgICAgICB3aGlsZSAobW9udGggPCAwKSB7CisgICAgICAgICAgICAgICAgbW9udGggKz0gbW9udGhzSW5ZZWFyKC0tZXllYXIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKG1vbnRoID4gMCkgeworICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgIGludCBtb250aHNJblllYXIgPSBtb250aHNJblllYXIoZXllYXIpOworICAgICAgICAgICAgICAgIGlmIChtb250aCA8IG1vbnRoc0luWWVhcikgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKytleWVhcjsKKyAgICAgICAgICAgICAgICBtb250aCAtPSBtb250aHNJblllYXI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBsb25nIGRheSA9IHN0YXJ0T2ZZZWFyKGV5ZWFyKTsKKworICAgICAgICBpZiAobW9udGggIT0gMCkgeworICAgICAgICAgICAgaWYgKGlzTGVhcFllYXIoZXllYXIpKSB7CisgICAgICAgICAgICAgICAgZGF5ICs9IExFQVBfTU9OVEhfU1RBUlRbbW9udGhdW3llYXJUeXBlKGV5ZWFyKV07CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGRheSArPSBNT05USF9TVEFSVFttb250aF1beWVhclR5cGUoZXllYXIpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAoaW50KSAoZGF5ICsgMzQ3OTk3KTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9IZWJyZXdIb2xpZGF5LmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9IZWJyZXdIb2xpZGF5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWRjNDNhNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0hlYnJld0hvbGlkYXkuamF2YQpAQCAtMCwwICsxLDY2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvdXRpbC9IZWJyZXdIb2xpZGF5LmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6MjggJCAKKyAqICRSZXZpc2lvbjogMS40ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKK3B1YmxpYyBjbGFzcyBIZWJyZXdIb2xpZGF5IGV4dGVuZHMgSG9saWRheQoreworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEhlYnJld0NhbGVuZGFyIGdDYWxlbmRhciA9IG5ldyBIZWJyZXdDYWxlbmRhcigpOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgaG9saWRheSBkZWZpbmVkIGluIHJlZmVyZW5jZSB0byB0aGUgSGVicmV3IGNhbGVuZGFyLgorICAgICAqCisgICAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGhvbGlkYXkKKyAgICAgKi8KKyAgICBwdWJsaWMgSGVicmV3SG9saWRheShpbnQgbW9udGgsIGludCBkYXRlLCBTdHJpbmcgbmFtZSkKKyAgICB7CisgICAgICAgIHRoaXMobW9udGgsIGRhdGUsIDEsIG5hbWUpOworICAgIH0KKworICAgIHB1YmxpYyBIZWJyZXdIb2xpZGF5KGludCBtb250aCwgaW50IGRhdGUsIGludCBsZW5ndGgsIFN0cmluZyBuYW1lKQorICAgIHsKKyAgICAgICAgc3VwZXIobmFtZSwgbnVsbCk7CisKKyAgICAgICAgU2ltcGxlRGF0ZVJ1bGUgcnVsZSA9IG5ldyBTaW1wbGVEYXRlUnVsZShtb250aCwgZGF0ZSk7CisgICAgICAgIHJ1bGUuc2V0Q2FsZW5kYXIoZ0NhbGVuZGFyKTsKKworICAgICAgICBzZXRSdWxlKHJ1bGUpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgSGVicmV3SG9saWRheQorICAgICAgICBST1NIX0hBU0hBTkFIICAgPSBuZXcgSGVicmV3SG9saWRheShIZWJyZXdDYWxlbmRhci5USVNIUkksICAxLCAgMiwgICJSb3NoIEhhc2hhbmFoIiksCisgICAgICAgIEdFREFMSUFIICAgICAgICA9IG5ldyBIZWJyZXdIb2xpZGF5KEhlYnJld0NhbGVuZGFyLlRJU0hSSSwgIDMsICAgICAgIkZhc3Qgb2YgR2VkYWxpYWgiKSwKKyAgICAgICAgWU9NX0tJUFBVUiAgICAgID0gbmV3IEhlYnJld0hvbGlkYXkoSGVicmV3Q2FsZW5kYXIuVElTSFJJLCAxMCwgICAgICAiWW9tIEtpcHB1ciIpLAorICAgICAgICBTVUtLT1QgICAgICAgICAgPSBuZXcgSGVicmV3SG9saWRheShIZWJyZXdDYWxlbmRhci5USVNIUkksIDE1LCAgNiwgICJTdWtrb3QiKSwKKyAgICAgICAgSE9TSEFOQUhfUkFCQkFIID0gbmV3IEhlYnJld0hvbGlkYXkoSGVicmV3Q2FsZW5kYXIuVElTSFJJLCAyMSwgICAgICAiSG9zaGFuYWggUmFiYmFoIiksCisgICAgICAgIFNIRU1JTklfQVRaRVJFVCA9IG5ldyBIZWJyZXdIb2xpZGF5KEhlYnJld0NhbGVuZGFyLlRJU0hSSSwgMjIsICAgICAgIlNoZW1pbmkgQXR6ZXJldCIpLAorICAgICAgICBTSU1DSEFUX1RPUkFIICAgPSBuZXcgSGVicmV3SG9saWRheShIZWJyZXdDYWxlbmRhci5USVNIUkksIDIzLCAgICAgICJTaW1jaGF0IFRvcmFoIiksCisgICAgICAgIEhBTlVLS0FIICAgICAgICA9IG5ldyBIZWJyZXdIb2xpZGF5KEhlYnJld0NhbGVuZGFyLktJU0xFViwgMjUsICAgICAgIkhhbnVra2FoIiksCisgICAgICAgIFRFVkVUXzEwICAgICAgICA9IG5ldyBIZWJyZXdIb2xpZGF5KEhlYnJld0NhbGVuZGFyLlRFVkVULCAgMTAsICAgICAgIkZhc3Qgb2YgVGV2ZXQgMTAiKSwKKyAgICAgICAgVFVfQlNIRVZBVCAgICAgID0gbmV3IEhlYnJld0hvbGlkYXkoSGVicmV3Q2FsZW5kYXIuU0hFVkFULCAxNSwgICAgICAiVHUgQidTaGV2YXQiKSwKKyAgICAgICAgRVNUSEVSICAgICAgICAgID0gbmV3IEhlYnJld0hvbGlkYXkoSGVicmV3Q2FsZW5kYXIuQURBUiwgICAxMywgICAgICAiRmFzdCBvZiBFc3RoZXIiKSwKKyAgICAgICAgUFVSSU0gICAgICAgICAgID0gbmV3IEhlYnJld0hvbGlkYXkoSGVicmV3Q2FsZW5kYXIuQURBUiwgICAxNCwgICAgICAiUHVyaW0iKSwKKyAgICAgICAgU0hVU0hBTl9QVVJJTSAgID0gbmV3IEhlYnJld0hvbGlkYXkoSGVicmV3Q2FsZW5kYXIuQURBUiwgICAxNSwgICAgICAiU2h1c2hhbiBQdXJpbSIpLAorICAgICAgICBQQVNTT1ZFUiAgICAgICAgPSBuZXcgSGVicmV3SG9saWRheShIZWJyZXdDYWxlbmRhci5OSVNBTiwgIDE1LCAgOCwgICJQYXNzb3ZlciIpLAorICAgICAgICBZT01fSEFTSE9BSCAgICAgPSBuZXcgSGVicmV3SG9saWRheShIZWJyZXdDYWxlbmRhci5OSVNBTiwgIDI3LCAgICAgICJZb20gSGFzaG9haCIpLAorICAgICAgICBZT01fSEFaSUtBUk9OICAgPSBuZXcgSGVicmV3SG9saWRheShIZWJyZXdDYWxlbmRhci5JWUFSLCAgICA0LCAgICAgICJZb20gSGF6aWthcm9uIiksCisgICAgICAgIFlPTV9IQUFUWk1BVVQgICA9IG5ldyBIZWJyZXdIb2xpZGF5KEhlYnJld0NhbGVuZGFyLklZQVIsICAgIDUsICAgICAgIllvbSBIYSdBdHptYXV0IiksCisgICAgICAgIFBFU0FDSF9TSEVJTkkgICA9IG5ldyBIZWJyZXdIb2xpZGF5KEhlYnJld0NhbGVuZGFyLklZQVIsICAgMTQsICAgICAgIlBlc2FjaCBTaGVpbmkiKSwKKyAgICAgICAgTEFHX0JPTUVSICAgICAgID0gbmV3IEhlYnJld0hvbGlkYXkoSGVicmV3Q2FsZW5kYXIuSVlBUiwgICAxOCwgICAgICAiTGFiIEInT21lciIpLAorICAgICAgICBZT01fWUVSVVNIQUxBWUlNPSBuZXcgSGVicmV3SG9saWRheShIZWJyZXdDYWxlbmRhci5JWUFSLCAgIDI4LCAgICAgICJZb20gWWVydXNoYWxheWltIiksCisgICAgICAgIFNIQVZVT1QgICAgICAgICA9IG5ldyBIZWJyZXdIb2xpZGF5KEhlYnJld0NhbGVuZGFyLlNJVkFOLCAgIDYsICAyLCAgIlNoYXZ1b3QiKSwKKyAgICAgICAgVEFNTVVaXzE3ICAgICAgID0gbmV3IEhlYnJld0hvbGlkYXkoSGVicmV3Q2FsZW5kYXIuVEFNVVosICAxNywgICAgICAiRmFzdCBvZiBUYW1tdXogMTciKSwKKyAgICAgICAgVElTSEFfQkFWICAgICAgID0gbmV3IEhlYnJld0hvbGlkYXkoSGVicmV3Q2FsZW5kYXIuQVYsICAgICAgOSwgICAgICAiRmFzdCBvZiBUaXNoYSBCJ0F2IiksCisgICAgICAgIFNFTElIT1QgICAgICAgICA9IG5ldyBIZWJyZXdIb2xpZGF5KEhlYnJld0NhbGVuZGFyLkVMVUwsICAgMjEsICAgICAgIlNlbGlob3QiKTsKKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvSG9saWRheS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvSG9saWRheS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBhNDdjNjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9Ib2xpZGF5LmphdmEKQEAgLTAsMCArMSwxNjQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS91dGlsL0hvbGlkYXkuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMy8xMCAxOTo0MDoxNyAkIAorICogJFJldmlzaW9uOiAxLjUgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlRGF0YTsKKworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGU7CisKKy8qKgorICogQW4gYWJzdHJhY3QgY2xhc3MgcmVwcmVzZW50aW5nIGEgaG9saWRheS4gIFRoaXMgY2xhc3Mgc2ltcGx5IGFkZHMKKyAqIGEgaG9saWRheSBuYW1lIHRvIHRoZSBEYXRlUnVsZSBpbnRlcmZhY2UgZm9yIGNhbGN1bGF0aW5nIHRoZSBkYXRlCisgKiBvZiBhbiBldmVudC4KKyAqCisgKi8KK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBIb2xpZGF5IGltcGxlbWVudHMgRGF0ZVJ1bGUKK3sKKyAgICBwdWJsaWMgc3RhdGljIEhvbGlkYXlbXSBnZXRIb2xpZGF5cygpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0SG9saWRheXMoTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBIb2xpZGF5W10gZ2V0SG9saWRheXMoTG9jYWxlIGxvY2FsZSkKKyAgICB7CisgICAgICAgIEhvbGlkYXlbXSByZXN1bHQgPSBub0hvbGlkYXlzOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSBJQ1VMb2NhbGVEYXRhLmdldFJlc291cmNlQnVuZGxlKCJIb2xpZGF5QnVuZGxlIiwgbG9jYWxlKTsKKworICAgICAgICAgICAgcmVzdWx0ID0gKEhvbGlkYXlbXSkgYnVuZGxlLmdldE9iamVjdCgiaG9saWRheXMiKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZmlyc3Qgb2NjdXJyYW5jZSBvZiB0aGlzIGhvbGlkYXkgb24gb3IgYWZ0ZXIgdGhlIGdpdmVuIGRhdGUKKyAgICAgKgorICAgICAqIEBwYXJhbSBzdGFydCBPbmx5IGhvbGlkYXlzIG9uIG9yIGFmdGVyIHRoaXMgZGF0ZSBhcmUgcmV0dXJuZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuICAgICAgVGhlIGRhdGUgb24gd2hpY2ggdGhpcyBob2xpZGF5IG9jY3Vycywgb3IgbnVsbCBpZiBpdAorICAgICAqICAgICAgICAgICAgICBkb2VzIG5vdCBvY2N1ciBvbiBvciBhZnRlciB0aGUgc3RhcnQgZGF0ZS4KKyAgICAgKgorICAgICAqIEBzZWUgI2ZpcnN0QmV0d2VlbgorICAgICAqLworICAgIHB1YmxpYyBEYXRlIGZpcnN0QWZ0ZXIoRGF0ZSBzdGFydCkgeworICAgICAgICByZXR1cm4gcnVsZS5maXJzdEFmdGVyKHN0YXJ0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGZpcnN0IG9jY3VycmFuY2Ugb2YgdGhpcyBob2xpZGF5IHRoYXQgaXMgb24gb3IgYWZ0ZXIKKyAgICAgKiB0aGUgZ2l2ZW4gc3RhcnQgZGF0ZSBhbmQgYmVmb3JlIHRoZSBnaXZlbiBlbmQgZGF0ZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdGFydCBPbmx5IG9jY3VycmFuY2VzIG9uIG9yIGFmdGVyIHRoaXMgZGF0ZSBhcmUgcmV0dXJuZWQuCisgICAgICogQHBhcmFtIGVuZCAgIE9ubHkgb2NjdXJyYW5jZXMgYmVmb3JlIHRoaXMgZGF0ZSBhcmUgcmV0dXJuZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuICAgICAgVGhlIGRhdGUgb24gd2hpY2ggdGhpcyBldmVudCBvY2N1cnMsIG9yIG51bGwgaWYgaXQKKyAgICAgKiAgICAgICAgICAgICAgZG9lcyBub3Qgb2NjdXIgYmV0d2VlbiB0aGUgc3RhcnQgYW5kIGVuZCBkYXRlcy4KKyAgICAgKgorICAgICAqIEBzZWUgI2ZpcnN0QWZ0ZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZSBmaXJzdEJldHdlZW4oRGF0ZSBzdGFydCwgRGF0ZSBlbmQpIHsKKyAgICAgICAgcmV0dXJuIHJ1bGUuZmlyc3RCZXR3ZWVuKHN0YXJ0LCBlbmQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrcyB3aGV0aGVyIHRoaXMgaG9saWRheSBmYWxscyBvbiB0aGUgZ2l2ZW4gZGF0ZS4gIFRoaXMgZG9lcworICAgICAqIDxlbT5ub3Q8L2VtPiB0YWtlIHRpbWUgb2YgZGF5IGludG8gYWNjb3VudDsgaW5zdGVhZCBpdCBjaGVja3MKKyAgICAgKiB3aGV0aGVyIHRoZSBob2xpZGF5IGFuZCB0aGUgZ2l2ZW4gZGF0ZSBhcmUgb24gdGhlIHNhbWUgZGF5LgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGUgIFRoZSBkYXRlIHRvIGNoZWNrLgorICAgICAqIEByZXR1cm4gICAgICB0cnVlIGlmIHRoaXMgaG9saWRheSBvY2N1cnMgb24gdGhlIGdpdmVuIGRhdGUuCisgICAgICoKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc09uKERhdGUgZGF0ZSkgeworICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbihuYW1lICsgIi5pc09uKCIgKyBkYXRlLnRvU3RyaW5nKCkgKyAiKToiKTsKKyAgICAgICAgcmV0dXJuIHJ1bGUuaXNPbihkYXRlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVjayB3aGV0aGVyIHRoaXMgaG9saWRheSBvY2N1cnMgYXQgbGVhc3Qgb25jZSBiZXR3ZWVuIHRoZSB0d28KKyAgICAgKiBkYXRlcyBnaXZlbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0JldHdlZW4oRGF0ZSBzdGFydCwgRGF0ZSBlbmQpIHsKKyAgICAgICAgcmV0dXJuIHJ1bGUuaXNCZXR3ZWVuKHN0YXJ0LCBlbmQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIG5ldyBIb2xpZGF5IG9iamVjdC4gIFRoaXMgaXMgZm9yIHVzZSBieSBzdWJjbGFzc2VzIG9ubHkuCisgICAgICogVGhpcyBjb25zdHJ1Y3RzIGEgbmV3IGhvbGlkYXkgd2l0aCB0aGUgZ2l2ZW4gbmFtZSBhbmQgZGF0ZSBydWxlcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBuYW1lICBUaGUgbmFtZSBvZiB0aGlzIGhvbGlkYXkuICBUaGUgZ2V0RGlzcGxheU5hbWUgbWV0aG9kCisgICAgICogICAgICAgICAgICAgIHVzZXMgdGhpcyBzdHJpbmcgYXMgYSBrZXkgdG8gbG9vayB1cCB0aGUgaG9saWRheSdzIG5hbWUgYQorICAgICAqICAgICAgICAgICAgICByZXNvdXJjZSBidW5kbGUgb2JqZWN0IG5hbWVkIEhvbGlkYXlCdW5kbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcnVsZSAgVGhlIGRhdGUgcnVsZXMgdXNlZCBmb3IgZGV0ZXJtaW5pbmcgd2hlbiB0aGlzIGhvbGlkYXkKKyAgICAgKiAgICAgICAgICAgICAgZmFsbHMuICBIb2xpZGF5J3MgaW1wbGVtZW50YXRpb24gb2YgdGhlIERhdGVSdWxlIGludGVmYWNlCisgICAgICogICAgICAgICAgICAgIHNpbXBseSBkZWxlZ2F0ZXMgdG8gdGhpcyBEYXRlUnVsZSBvYmplY3QuCisgICAgICovCisgICAgcHJvdGVjdGVkIEhvbGlkYXkoU3RyaW5nIG5hbWUsIERhdGVSdWxlIHJ1bGUpCisgICAgeworICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOworICAgICAgICB0aGlzLnJ1bGUgPSBydWxlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbmFtZSBvZiB0aGlzIGhvbGlkYXkgaW4gdGhlIGxhbmd1YWdlIG9mIHRoZSBkZWZhdWx0IGxvY2FsZQorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5TmFtZShMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG5hbWUgb2YgdGhpcyBob2xpZGF5IGluIHRoZSBsYW5ndWFnZSBvZiB0aGUgc3BlY2lmaWVkIGxvY2FsZQorICAgICAqIFRoZSA8Y29kZT5uYW1lPC9jb2RlPiBwYXJhbWV0ZXIgcGFzc2VkIHRvIHRoaXMgb2JqZWN0J3MgY29uc3RydWN0b3IgaXMgdXNlZAorICAgICAqIGFzIGEga2V5IHRvIGxvb2sgdXAgdGhlIGhvbGlkYXkncyBsb2NhbGl6ZWQgbmFtZSBpbiBhIFJlc291cmNlQnVuZGxlIG9iamVjdAorICAgICAqIG5hbWVkIEhvbGlkYXlCdW5kbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jICAgQSBsb2NhbGUgc3BlY2lmeWluZyB0aGUgbGFuZ3VhZ2UgaW4gd2hpY2ggdGhlIG5hbWUgaXMgZGVzaXJlZC4KKyAgICAgKgorICAgICAqIEBzZWUgUmVzb3VyY2VCdW5kbGUKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKExvY2FsZSBsb2NhbGUpCisgICAgeworICAgICAgICBTdHJpbmcgbmFtZSA9IHRoaXMubmFtZTsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gSUNVTG9jYWxlRGF0YS5nZXRSZXNvdXJjZUJ1bmRsZSgiSG9saWRheUJ1bmRsZSIsIGxvY2FsZSk7CisgICAgICAgICAgICBuYW1lID0gYnVuZGxlLmdldFN0cmluZyhuYW1lKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJVc2luZyBkZWZhdWx0IGRpc3BsYXkgbmFtZSBmb3IgIiArIG5hbWUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuYW1lOworICAgIH0KKworICAgIHB1YmxpYyBEYXRlUnVsZSBnZXRSdWxlKCkgeworICAgICAgICByZXR1cm4gcnVsZTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRSdWxlKERhdGVSdWxlIHJ1bGUpIHsKKyAgICAgICAgdGhpcy5ydWxlID0gcnVsZTsKKyAgICB9CisKKyAgICBwcml2YXRlIFN0cmluZyAgICAgIG5hbWU7CisgICAgcHJpdmF0ZSBEYXRlUnVsZSAgICBydWxlOworCisgICAgcHJpdmF0ZSBzdGF0aWMgSG9saWRheVtdIG5vSG9saWRheXMgPSB7fTsKKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvSXNsYW1pY0NhbGVuZGFyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9Jc2xhbWljQ2FsZW5kYXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44YjRhZWViCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvSXNsYW1pY0NhbGVuZGFyLmphdmEKQEAgLTAsMCArMSw1NjMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS91dGlsL0lzbGFtaWNDYWxlbmRhci5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzA4LzA3IDAzOjEwOjE4ICQgCisgKiAkUmV2aXNpb246IDEuMTEgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXI7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyQXN0cm9ub21lcjsKKworLyoqCisgKiA8Y29kZT5Jc2xhbWljQ2FsZW5kYXI8L2NvZGU+IGlzIGEgc3ViY2xhc3Mgb2YgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+CisgKiB0aGF0IHRoYXQgaW1wbGVtZW50cyB0aGUgSXNsYW1pYyBjaXZpbCBhbmQgcmVsaWdpb3VzIGNhbGVuZGFycy4gIEl0CisgKiBpcyB1c2VkIGFzIHRoZSBjaXZpbCBjYWxlbmRhciBpbiBtb3N0IG9mIHRoZSBBcmFiIHdvcmxkIGFuZCB0aGUKKyAqIGxpdHVyZ2ljYWwgY2FsZW5kYXIgb2YgdGhlIElzbGFtaWMgZmFpdGggd29ybGR3aWRlLiAgVGhpcyBjYWxlbmRhcgorICogaXMgYWxzbyBrbm93biBhcyB0aGUgIkhpanJpIiBjYWxlbmRhciwgc2luY2UgaXQgc3RhcnRzIGF0IHRoZSB0aW1lCisgKiBvZiBNb2hhbW1lZCdzIGVtaWdyYXRpb24gKG9yICJoaWpyYSIpIHRvIE1lZGluYWggb24gVGh1cnNkYXksIAorICogSnVseSAxNSwgNjIyIEFEIChKdWxpYW4pLgorICogPHA+CisgKiBUaGUgSXNsYW1pYyBjYWxlbmRhciBpcyBzdHJpY3RseSBsdW5hciwgYW5kIHRodXMgYW4gSXNsYW1pYyB5ZWFyIG9mIHR3ZWx2ZQorICogbHVuYXIgbW9udGhzIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gdGhlIHNvbGFyIHllYXIgdXNlZCBieSBtb3N0IG90aGVyCisgKiBjYWxlbmRhciBzeXN0ZW1zLCBpbmNsdWRpbmcgdGhlIEdyZWdvcmlhbi4gIEFuIElzbGFtaWMgeWVhciBpcywgb24gYXZlcmFnZSwKKyAqIGFib3V0IDM1NCBkYXlzIGxvbmcsIHNvIGVhY2ggc3VjY2Vzc2l2ZSBJc2xhbWljIHllYXIgc3RhcnRzIGFib3V0IDExIGRheXMKKyAqIGVhcmxpZXIgaW4gdGhlIGNvcnJlc3BvbmRpbmcgR3JlZ29yaWFuIHllYXIuCisgKiA8cD4KKyAqIEVhY2ggbW9udGggb2YgdGhlIGNhbGVuZGFyIHN0YXJ0cyB3aGVuIHRoZSBuZXcgbW9vbidzIGNyZXNjZW50IGlzIHZpc2libGUKKyAqIGF0IHN1bnNldC4gIEhvd2V2ZXIsIGluIG9yZGVyIHRvIGtlZXAgdGhlIHRpbWUgZmllbGRzIGluIHRoaXMgY2xhc3MKKyAqIHN5bmNocm9uaXplZCB3aXRoIHRob3NlIG9mIHRoZSBvdGhlciBjYWxlbmRhcnMgYW5kIHdpdGggbG9jYWwgY2xvY2sgdGltZSwKKyAqIHdlIHRyZWF0IGRheXMgYW5kIG1vbnRocyBhcyBiZWdpbm5pbmcgYXQgbWlkbmlnaHQsCisgKiByb3VnaGx5IDYgaG91cnMgYWZ0ZXIgdGhlIGNvcnJlc3BvbmRpbmcgc3Vuc2V0LgorICogPHA+CisgKiBUaGVyZSBhcmUgdHdvIG1haW4gdmFyaWFudHMgb2YgdGhlIElzbGFtaWMgY2FsZW5kYXIgaW4gZXhpc3RlbmNlLiAgVGhlIGZpcnN0CisgKiBpcyB0aGUgPGVtPmNpdmlsPC9lbT4gY2FsZW5kYXIsIHdoaWNoIHVzZXMgYSBmaXhlZCBjeWNsZSBvZiBhbHRlcm5hdGluZyAyOS0KKyAqIGFuZCAzMC1kYXkgbW9udGhzLCB3aXRoIGEgbGVhcCBkYXkgYWRkZWQgdG8gdGhlIGxhc3QgbW9udGggb2YgMTEgb3V0IG9mCisgKiBldmVyeSAzMCB5ZWFycy4gIFRoaXMgY2FsZW5kYXIgaXMgZWFzaWx5IGNhbGN1bGF0ZWQgYW5kIHRodXMgcHJlZGljdGFibGUgaW4KKyAqIGFkdmFuY2UsIHNvIGl0IGlzIHVzZWQgYXMgdGhlIGNpdmlsIGNhbGVuZGFyIGluIGEgbnVtYmVyIG9mIEFyYWIgY291bnRyaWVzLgorICogVGhpcyBpcyB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiBhIG5ld2x5LWNyZWF0ZWQgPGNvZGU+SXNsYW1pY0NhbGVuZGFyPC9jb2RlPgorICogb2JqZWN0LgorICogPHA+CisgKiBUaGUgSXNsYW1pYyA8ZW0+cmVsaWdpb3VzPC9lbT4gY2FsZW5kYXIsIGhvd2V2ZXIsIGlzIGJhc2VkIG9uIHRoZSA8ZW0+b2JzZXJ2YXRpb248L2VtPgorICogb2YgdGhlIGNyZXNjZW50IG1vb24uICBJdCBpcyB0aHVzIGFmZmVjdGVkIGJ5IHRoZSBwb3NpdGlvbiBhdCB3aGljaCB0aGUKKyAqIG9ic2VydmF0aW9ucyBhcmUgbWFkZSwgc2Vhc29uYWwgdmFyaWF0aW9ucyBpbiB0aGUgdGltZSBvZiBzdW5zZXQsIHRoZQorICogZWNjZW50cmljaXRpZXMgb2YgdGhlIG1vb24ncyBvcmJpdCwgYW5kIGV2ZW4gdGhlIHdlYXRoZXIgYXQgdGhlIG9ic2VydmF0aW9uCisgKiBzaXRlLiAgVGhpcyBtYWtlcyBpdCBpbXBvc3NpYmxlIHRvIGNhbGN1bGF0ZSBpbiBhZHZhbmNlLCBhbmQgaXQgY2F1c2VzIHRoZQorICogc3RhcnQgb2YgYSBtb250aCBpbiB0aGUgcmVsaWdpb3VzIGNhbGVuZGFyIHRvIGRpZmZlciBmcm9tIHRoZSBjaXZpbCBjYWxlbmRhcgorICogYnkgdXAgdG8gdGhyZWUgZGF5cy4KKyAqIDxwPgorICogVXNpbmcgYXN0cm9ub21pY2FsIGNhbGN1bGF0aW9ucyBmb3IgdGhlIHBvc2l0aW9uIG9mIHRoZSBzdW4gYW5kIG1vb24sIHRoZQorICogbW9vbidzIGlsbHVtaW5hdGlvbiwgYW5kIG90aGVyIGZhY3RvcnMsIGl0IGlzIHBvc3NpYmxlIHRvIGRldGVybWluZSB0aGUgc3RhcnQKKyAqIG9mIGEgbHVuYXIgbW9udGggd2l0aCBhIGZhaXJseSBoaWdoIGRlZ3JlZSBvZiBjZXJ0YWludHkuICBIb3dldmVyLCB0aGVzZQorICogY2FsY3VsYXRpb25zIGFyZSBleHRyZW1lbHkgY29tcGxpY2F0ZWQgYW5kIHRodXMgc2xvdywgc28gbW9zdCBhbGdvcml0aG1zLAorICogaW5jbHVkaW5nIHRoZSBvbmUgdXNlZCBoZXJlLCBhcmUgb25seSBhcHByb3hpbWF0aW9ucyBvZiB0aGUgdHJ1ZSBhc3Ryb25pY2FsCisgKiBjYWxjdWxhdGlvbnMuICBBdCBwcmVzZW50LCB0aGUgYXBwcm94aW1hdGlvbnMgdXNlZCBpbiB0aGlzIGNsYXNzIGFyZSBmYWlybHkKKyAqIHNpbXBsaXN0aWM7IHRoZXkgd2lsbCBiZSBpbXByb3ZlZCBpbiBsYXRlciB2ZXJzaW9ucyBvZiB0aGUgY29kZS4KKyAqIDxwPgorICogVGhlIHtAbGluayAjc2V0Q2l2aWwgc2V0Q2l2aWx9IG1ldGhvZCBkZXRlcm1pbmVzCisgKiB3aGljaCBhcHByb2FjaCBpcyB1c2VkIHRvIGRldGVybWluZSB0aGUgc3RhcnQgb2YgYSBtb250aC4gIEJ5IGRlZmF1bHQsIHRoZQorICogZml4ZWQtY3ljbGUgY2l2aWwgY2FsZW5kYXIgaXMgdXNlZC4gIEhvd2V2ZXIsIGlmIDxjb2RlPnNldENpdmlsKGZhbHNlKTwvY29kZT4KKyAqIGlzIGNhbGxlZCwgYW4gYXBwcm94aW1hdGlvbiBvZiB0aGUgdHJ1ZSBsdW5hciBjYWxlbmRhciB3aWxsIGJlIHVzZWQuCisgKgorICogQHNlZSBjb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyCisgKgorICogQGF1dGhvciBMYXVyYSBXZXJuZXIKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqLworcHVibGljIGNsYXNzIElzbGFtaWNDYWxlbmRhciBleHRlbmRzIENhbGVuZGFyIHsKKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBjb3B5cmlnaHQgPSAiQ29weXJpZ2h0IFx1MDBhOSAxOTk3LTE5OTggSUJNIENvcnAuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIjsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIENvbnN0YW50cy4uLgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKiBDb25zdGFudCBmb3IgTXVoYXJyYW0sIHRoZSAxc3QgbW9udGggb2YgdGhlIElzbGFtaWMgeWVhci4gKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNVUhBUlJBTSA9IDA7CisKKyAgICAvKiogQ29uc3RhbnQgZm9yIFNhZmFyLCB0aGUgMm5kIG1vbnRoIG9mIHRoZSBJc2xhbWljIHllYXIuICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0FGQVIgPSAxOworCisgICAgLyoqIENvbnN0YW50IGZvciBSYWJpJyBhbC1hd3dhbCAob3IgUmFiaScgSSksIHRoZSAzcmQgbW9udGggb2YgdGhlIElzbGFtaWMgeWVhci4gKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBSQUJJXzEgPSAyOworCisgICAgLyoqIENvbnN0YW50IGZvciBSYWJpJyBhbC10aGFuaSBvciAoUmFiaScgSUkpLCB0aGUgNHRoIG1vbnRoIG9mIHRoZSBJc2xhbWljIHllYXIuICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUkFCSV8yID0gMzsKKworICAgIC8qKiBDb25zdGFudCBmb3IgSnVtYWRhIGFsLWF3d2FsIG9yIChKdW1hZGEgSSksIHRoZSA1dGggbW9udGggb2YgdGhlIElzbGFtaWMgeWVhci4gKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBKVU1BREFfMSA9IDQ7CisKKyAgICAvKiogQ29uc3RhbnQgZm9yIEp1bWFkYSBhbC10aGFuaSBvciAoSnVtYWRhIElJKSwgdGhlIDZ0aCBtb250aCBvZiB0aGUgSXNsYW1pYyB5ZWFyLiAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEpVTUFEQV8yID0gNTsKKworICAgIC8qKiBDb25zdGFudCBmb3IgUmFqYWIsIHRoZSA3dGggbW9udGggb2YgdGhlIElzbGFtaWMgeWVhci4gKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBSQUpBQiA9IDY7CisKKyAgICAvKiogQ29uc3RhbnQgZm9yIFNoYSdiYW4sIHRoZSA4dGggbW9udGggb2YgdGhlIElzbGFtaWMgeWVhci4gKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTSEFCQU4gPSA3OworCisgICAgLyoqIENvbnN0YW50IGZvciBSYW1hZGFuLCB0aGUgOXRoIG1vbnRoIG9mIHRoZSBJc2xhbWljIHllYXIuICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUkFNQURBTiA9IDg7CisKKyAgICAvKiogQ29uc3RhbnQgZm9yIFNoYXd3YWwsIHRoZSAxMHRoIG1vbnRoIG9mIHRoZSBJc2xhbWljIHllYXIuICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0hBV1dBTCA9IDk7CisKKyAgICAvKiogQ29uc3RhbnQgZm9yIERodSBhbC1RaSdkYWgsIHRoZSAxMXRoIG1vbnRoIG9mIHRoZSBJc2xhbWljIHllYXIuICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgREhVX0FMX1FJREFIID0gMTA7CisKKyAgICAvKiogQ29uc3RhbnQgZm9yIERodSBhbC1IaWpqYWgsIHRoZSAxMnRoIG1vbnRoIG9mIHRoZSBJc2xhbWljIHllYXIuICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgREhVX0FMX0hJSkpBSCA9IDExOworCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIEhJSlJBX01JTExJUyA9IC00MjUyMTU4NzIwMDAwMEw7ICAgIC8vIDcvMTYvNjIyIEFEIDAwOjAwCisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBDb25zdHJ1Y3RvcnMuLi4KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBkZWZhdWx0IDxjb2RlPklzbGFtaWNDYWxlbmRhcjwvY29kZT4gdXNpbmcgdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgSXNsYW1pY0NhbGVuZGFyKCkKKyAgICB7CisgICAgICAgIHRoaXMoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGFuIDxjb2RlPklzbGFtaWNDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBnaXZlbiB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIHpvbmUgdGhlIGdpdmVuIHRpbWUgem9uZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgSXNsYW1pY0NhbGVuZGFyKFRpbWVab25lIHpvbmUpCisgICAgeworICAgICAgICB0aGlzKHpvbmUsIExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYW4gPGNvZGU+SXNsYW1pY0NhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhTG9jYWxlIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICovCisgICAgcHVibGljIElzbGFtaWNDYWxlbmRhcihMb2NhbGUgYUxvY2FsZSkKKyAgICB7CisgICAgICAgIHRoaXMoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBhTG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGFuIDxjb2RlPklzbGFtaWNDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBnaXZlbiB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHpvbmUgdGhlIGdpdmVuIHRpbWUgem9uZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhTG9jYWxlIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICovCisgICAgcHVibGljIElzbGFtaWNDYWxlbmRhcihUaW1lWm9uZSB6b25lLCBMb2NhbGUgYUxvY2FsZSkKKyAgICB7CisgICAgICAgIHN1cGVyKHpvbmUsIGFMb2NhbGUpOworICAgICAgICBzZXRUaW1lSW5NaWxsaXMoU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYW4gPGNvZGU+SXNsYW1pY0NhbGVuZGFyPC9jb2RlPiB3aXRoIHRoZSBnaXZlbiBkYXRlIHNldAorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlICAgICAgVGhlIGRhdGUgdG8gd2hpY2ggdGhlIG5ldyBjYWxlbmRhciBpcyBzZXQuCisgICAgICovCisgICAgcHVibGljIElzbGFtaWNDYWxlbmRhcihEYXRlIGRhdGUpIHsKKyAgICAgICAgc3VwZXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgdGhpcy5zZXRUaW1lKGRhdGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYW4gPGNvZGU+SXNsYW1pY0NhbGVuZGFyPC9jb2RlPiB3aXRoIHRoZSBnaXZlbiBkYXRlIHNldAorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB5ZWFyIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUge0BsaW5rICNZRUFSIFlFQVJ9IHRpbWUgZmllbGQgaW4gdGhlIGNhbGVuZGFyLgorICAgICAqCisgICAgICogQHBhcmFtIG1vbnRoIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUge0BsaW5rICNNT05USCBNT05USH0gdGltZSBmaWVsZCBpbiB0aGUgY2FsZW5kYXIuCisgICAgICogICAgICAgICAgICAgIE5vdGUgdGhhdCB0aGUgbW9udGggdmFsdWUgaXMgMC1iYXNlZC4gZS5nLiwgMCBmb3IgTXVoYXJyYW0uCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZSB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIHtAbGluayAjREFURSBEQVRFfSB0aW1lIGZpZWxkIGluIHRoZSBjYWxlbmRhci4KKyAgICAgKi8KKyAgICBwdWJsaWMgSXNsYW1pY0NhbGVuZGFyKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlKQorICAgIHsKKyAgICAgICAgc3VwZXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgdGhpcy5zZXQoQ2FsZW5kYXIuWUVBUiwgeWVhcik7CisgICAgICAgIHRoaXMuc2V0KENhbGVuZGFyLk1PTlRILCBtb250aCk7CisgICAgICAgIHRoaXMuc2V0KENhbGVuZGFyLkRBVEUsIGRhdGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYW4gPGNvZGU+SXNsYW1pY0NhbGVuZGFyPC9jb2RlPiB3aXRoIHRoZSBnaXZlbiBkYXRlCisgICAgICogYW5kIHRpbWUgc2V0IGZvciB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0geWVhciAgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSB7QGxpbmsgI1lFQVIgWUVBUn0gdGltZSBmaWVsZCBpbiB0aGUgY2FsZW5kYXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbW9udGggdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSB7QGxpbmsgI01PTlRIIE1PTlRIfSB0aW1lIGZpZWxkIGluIHRoZSBjYWxlbmRhci4KKyAgICAgKiAgICAgICAgICAgICAgTm90ZSB0aGF0IHRoZSBtb250aCB2YWx1ZSBpcyAwLWJhc2VkLiBlLmcuLCAwIGZvciBNdWhhcnJhbS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlICB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIHtAbGluayAjREFURSBEQVRFfSB0aW1lIGZpZWxkIGluIHRoZSBjYWxlbmRhci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBob3VyICB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIHtAbGluayAjSE9VUl9PRl9EQVkgSE9VUl9PRl9EQVl9IHRpbWUgZmllbGQKKyAgICAgKiAgICAgICAgICAgICAgaW4gdGhlIGNhbGVuZGFyLgorICAgICAqCisgICAgICogQHBhcmFtIG1pbnV0ZSB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIHtAbGluayAjTUlOVVRFIE1JTlVURX0gdGltZSBmaWVsZAorICAgICAqICAgICAgICAgICAgICBpbiB0aGUgY2FsZW5kYXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2Vjb25kIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUge0BsaW5rICNTRUNPTkQgU0VDT05EfSB0aW1lIGZpZWxkCisgICAgICogICAgICAgICAgICAgIGluIHRoZSBjYWxlbmRhci4KKyAgICAgKi8KKyAgICBwdWJsaWMgSXNsYW1pY0NhbGVuZGFyKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlLCBpbnQgaG91ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1pbnV0ZSwgaW50IHNlY29uZCkKKyAgICB7CisgICAgICAgIHN1cGVyKFRpbWVab25lLmdldERlZmF1bHQoKSwgTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIHRoaXMuc2V0KENhbGVuZGFyLllFQVIsIHllYXIpOworICAgICAgICB0aGlzLnNldChDYWxlbmRhci5NT05USCwgbW9udGgpOworICAgICAgICB0aGlzLnNldChDYWxlbmRhci5EQVRFLCBkYXRlKTsKKyAgICAgICAgdGhpcy5zZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVksIGhvdXIpOworICAgICAgICB0aGlzLnNldChDYWxlbmRhci5NSU5VVEUsIG1pbnV0ZSk7CisgICAgICAgIHRoaXMuc2V0KENhbGVuZGFyLlNFQ09ORCwgc2Vjb25kKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhpcyBvYmplY3QgdXNlcyB0aGUgZml4ZWQtY3ljbGUgSXNsYW1pYyBjaXZpbCBjYWxlbmRhcgorICAgICAqIG9yIGFuIGFwcHJveGltYXRpb24gb2YgdGhlIHJlbGlnaW91cywgYXN0cm9ub21pY2FsIGNhbGVuZGFyLgorICAgICAqCisgICAgICogQHBhcmFtIGJlQ2l2aWwgICA8Y29kZT50cnVlPC9jb2RlPiB0byB1c2UgdGhlIGNpdmlsIGNhbGVuZGFyLAorICAgICAqICAgICAgICAgICAgICAgICAgPGNvZGU+ZmFsc2U8L2NvZGU+IHRvIHVzZSB0aGUgYXN0cm9ub21pY2FsIGNhbGVuZGFyLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldENpdmlsKGJvb2xlYW4gYmVDaXZpbCkKKyAgICB7CisgICAgICAgIGlmIChjaXZpbCAhPSBiZUNpdmlsKSB7CisgICAgICAgICAgICAvLyBUaGUgZmllbGRzIG9mIHRoZSBjYWxlbmRhciB3aWxsIGJlY29tZSBpbnZhbGlkLCBiZWNhdXNlIHRoZSBjYWxlbmRhcgorICAgICAgICAgICAgLy8gcnVsZXMgYXJlIGRpZmZlcmVudAorICAgICAgICAgICAgbG9uZyBtID0gZ2V0VGltZUluTWlsbGlzKCk7CisgICAgICAgICAgICBjaXZpbCA9IGJlQ2l2aWw7CisgICAgICAgICAgICBjbGVhcigpOworICAgICAgICAgICAgc2V0VGltZUluTWlsbGlzKG0pOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBvYmplY3QgaXMgdXNpbmcgdGhlIGZpeGVkLWN5Y2xlIGNpdmlsCisgICAgICogY2FsZW5kYXIsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiB1c2luZyB0aGUgcmVsaWdpb3VzLCBhc3Ryb25vbWljYWwKKyAgICAgKiBjYWxlbmRhci4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0NpdmlsKCkgeworICAgICAgICByZXR1cm4gY2l2aWw7CisgICAgfQorICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIE1pbmltdW0gLyBNYXhpbXVtIGFjY2VzcyBmdW5jdGlvbnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMSU1JVFNbXVtdID0geworICAgICAgICAvLyBNaW5pbXVtICBHcmVhdGVzdCAgICBMZWFzdCAgTWF4aW11bQorICAgICAgICAvLyAgICAgICAgICAgTWluaW11bSAgTWF4aW11bQorICAgICAgICB7ICAgICAgICAwLCAgICAgICAgMCwgICAgICAgMCwgICAgICAgMCB9LCAvLyBFUkEKKyAgICAgICAgeyAgICAgICAgMSwgICAgICAgIDEsIDUwMDAwMDAsIDUwMDAwMDAgfSwgLy8gWUVBUgorICAgICAgICB7ICAgICAgICAwLCAgICAgICAgMCwgICAgICAxMSwgICAgICAxMSB9LCAvLyBNT05USAorICAgICAgICB7ICAgICAgICAxLCAgICAgICAgMSwgICAgICA1MSwgICAgICA1MiB9LCAvLyBXRUVLX09GX1lFQVIKKyAgICAgICAgeyAgICAgICAgMCwgICAgICAgIDAsICAgICAgIDUsICAgICAgIDYgfSwgLy8gV0VFS19PRl9NT05USAorICAgICAgICB7ICAgICAgICAxLCAgICAgICAgMSwgICAgICAyOSwgICAgICAzMCB9LCAvLyBEQVlfT0ZfTU9OVEgKKyAgICAgICAgeyAgICAgICAgMSwgICAgICAgIDEsICAgICAzNTQsICAgICAzNTUgfSwgLy8gREFZX09GX1lFQVIKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gREFZX09GX1dFRUsKKyAgICAgICAgeyAgICAgICAtMSwgICAgICAgLTEsICAgICAgIDQsICAgICAgIDUgfSwgLy8gREFZX09GX1dFRUtfSU5fTU9OVEgKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gQU1fUE0KKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gSE9VUgorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBIT1VSX09GX0RBWQorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBNSU5VVEUKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gU0VDT05ECisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIE1JTExJU0VDT05ECisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIFpPTkVfT0ZGU0VUCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIERTVF9PRkZTRVQKKyAgICAgICAgeyAtNTAwMDAwMSwgLTUwMDAwMDEsIDUwMDAwMDEsIDUwMDAwMDEgfSwgLy8gWUVBUl9XT1kKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gRE9XX0xPQ0FMCisgICAgICAgIHsgLTUwMDAwMDAsIC01MDAwMDAwLCA1MDAwMDAwLCA1MDAwMDAwIH0sIC8vIEVYVEVOREVEX1lFQVIKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gSlVMSUFOX0RBWQorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBNSUxMSVNFQ09ORFNfSU5fREFZCisgICAgfTsKKworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0TGltaXQoaW50IGZpZWxkLCBpbnQgbGltaXRUeXBlKSB7CisgICAgICAgIHJldHVybiBMSU1JVFNbZmllbGRdW2xpbWl0VHlwZV07CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gQXNzb3J0ZWQgY2FsY3VsYXRpb24gdXRpbGl0aWVzCisgICAgLy8KKworICAgIC8qKgorICAgICAqIEZpbmQgdGhlIGRheSBvZiB0aGUgd2VlayBmb3IgYSBnaXZlbiBkYXkKKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXkgICBUaGUgIyBvZiBkYXlzIHNpbmNlIHRoZSBzdGFydCBvZiB0aGUgSXNsYW1pYyBjYWxlbmRhci4KKyAgICAgKi8KKyAgICAvLyBwcml2YXRlIGFuZCB1bmNhbGxlZCwgcGVyaGFwcyBub3QgdXNlZCB5ZXQ/CisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBhYnNvbHV0ZURheVRvRGF5T2ZXZWVrKGxvbmcgZGF5KQorICAgIHsKKyAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBkYXkgb2YgdGhlIHdlZWsuCisgICAgICAgIC8vIFRoaXMgcmVsaWVzIG9uIHRoZSBmYWN0IHRoYXQgdGhlIGVwb2NoIHdhcyBhIFRodXJzZGF5LgorICAgICAgICBpbnQgZGF5T2ZXZWVrID0gKGludCkoZGF5ICsgVEhVUlNEQVkpICUgNyArIFNVTkRBWTsKKyAgICAgICAgaWYgKGRheU9mV2VlayA8IDApIHsKKyAgICAgICAgICAgIGRheU9mV2VlayArPSA3OworICAgICAgICB9CisgICAgICAgIHJldHVybiBkYXlPZldlZWs7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lIHdoZXRoZXIgYSB5ZWFyIGlzIGEgbGVhcCB5ZWFyIGluIHRoZSBJc2xhbWljIGNpdmlsIGNhbGVuZGFyCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgYm9vbGVhbiBjaXZpbExlYXBZZWFyKGludCB5ZWFyKQorICAgIHsKKyAgICAgICAgcmV0dXJuICgxNCArIDExICogeWVhcikgJSAzMCA8IDExOworICAgICAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBkYXkgIyBvbiB3aGljaCB0aGUgZ2l2ZW4geWVhciBzdGFydHMuICBEYXlzIGFyZSBjb3VudGVkCisgICAgICogZnJvbSB0aGUgSGlqcmkgZXBvY2gsIG9yaWdpbiAwLgorICAgICAqLworICAgIHByaXZhdGUgbG9uZyB5ZWFyU3RhcnQoaW50IHllYXIpIHsKKyAgICAgICAgaWYgKGNpdmlsKSB7CisgICAgICAgICAgICByZXR1cm4gKHllYXItMSkqMzU0ICsgKGxvbmcpTWF0aC5mbG9vcigoMysxMSp5ZWFyKS8zMC4wKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlTW9udGhTdGFydCgxMiooeWVhci0xKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBkYXkgIyBvbiB3aGljaCB0aGUgZ2l2ZW4gbW9udGggc3RhcnRzLiAgRGF5cyBhcmUgY291bnRlZAorICAgICAqIGZyb20gdGhlIEhpanJpIGVwb2NoLCBvcmlnaW4gMC4KKyAgICAgKgorICAgICAqIEBwYXJhbSB5ZWFyICBUaGUgaGlqcmkgeWVhcgorICAgICAqIEBwYXJhbSB5ZWFyICBUaGUgaGlqcmkgbW9udGgsIDAtYmFzZWQKKyAgICAgKi8KKyAgICBwcml2YXRlIGxvbmcgbW9udGhTdGFydChpbnQgeWVhciwgaW50IG1vbnRoKSB7CisgICAgICAgIGlmIChjaXZpbCkgeworICAgICAgICAgICAgcmV0dXJuIChsb25nKU1hdGguY2VpbCgyOS41Km1vbnRoKQorICAgICAgICAgICAgICAgICAgICArICh5ZWFyLTEpKjM1NCArIChsb25nKU1hdGguZmxvb3IoKDMrMTEqeWVhcikvMzAuMCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZU1vbnRoU3RhcnQoMTIqKHllYXItMSkgKyBtb250aCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogRmluZCB0aGUgZGF5IG51bWJlciBvbiB3aGljaCBhIHBhcnRpY3VsYXIgbW9udGggb2YgdGhlIHRydWUvbHVuYXIKKyAgICAgKiBJc2xhbWljIGNhbGVuZGFyIHN0YXJ0cy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtb250aCBUaGUgbW9udGggaW4gcXVlc3Rpb24sIG9yaWdpbiAwIGZyb20gdGhlIEhpanJpIGVwb2NoCisgICAgICoKKyAgICAgKiBAcmV0dXJuIFRoZSBkYXkgbnVtYmVyIG9uIHdoaWNoIHRoZSBnaXZlbiBtb250aCBzdGFydHMuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyB0cnVlTW9udGhTdGFydChsb25nIG1vbnRoKQorICAgIHsKKyAgICAgICAgbG9uZyBzdGFydCA9IGNhY2hlLmdldChtb250aCk7CisKKyAgICAgICAgaWYgKHN0YXJ0ID09IENhbGVuZGFyQ2FjaGUuRU1QVFkpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIE1ha2UgYSBndWVzcyBhdCB3aGVuIHRoZSBtb250aCBzdGFydGVkLCB1c2luZyB0aGUgYXZlcmFnZSBsZW5ndGgKKyAgICAgICAgICAgIGxvbmcgb3JpZ2luID0gSElKUkFfTUlMTElTIAorICAgICAgICAgICAgICAgICAgICAgICAgKyAobG9uZylNYXRoLmZsb29yKG1vbnRoICogQ2FsZW5kYXJBc3Ryb25vbWVyLlNZTk9ESUNfTU9OVEggLSAxKSAqIE9ORV9EQVk7CisKKyAgICAgICAgICAgIGRvdWJsZSBhZ2UgPSBtb29uQWdlKG9yaWdpbik7CisKKyAgICAgICAgICAgIGlmIChtb29uQWdlKG9yaWdpbikgPj0gMCkgeworICAgICAgICAgICAgICAgIC8vIFRoZSBtb250aCBoYXMgYWxyZWFkeSBzdGFydGVkCisgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICBvcmlnaW4gLT0gT05FX0RBWTsKKyAgICAgICAgICAgICAgICAgICAgYWdlID0gbW9vbkFnZShvcmlnaW4pOworICAgICAgICAgICAgICAgIH0gd2hpbGUgKGFnZSA+PSAwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8vIFByZWNlZGluZyBtb250aCBoYXMgbm90IGVuZGVkIHlldC4KKyAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgIG9yaWdpbiArPSBPTkVfREFZOworICAgICAgICAgICAgICAgICAgICBhZ2UgPSBtb29uQWdlKG9yaWdpbik7CisgICAgICAgICAgICAgICAgfSB3aGlsZSAoYWdlIDwgMCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHN0YXJ0ID0gKG9yaWdpbiAtIEhJSlJBX01JTExJUykgLyBPTkVfREFZICsgMTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY2FjaGUucHV0KG1vbnRoLCBzdGFydCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN0YXJ0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgImFnZSIgb2YgdGhlIG1vb24gYXQgdGhlIGdpdmVuIHRpbWU7IHRoaXMgaXMgdGhlIGRpZmZlcmVuY2UKKyAgICAgKiBpbiBlY2xpcHRpYyBsYXRpdHVkZSBiZXR3ZWVuIHRoZSBtb29uIGFuZCB0aGUgc3VuLiAgVGhpcyBtZXRob2Qgc2ltcGx5CisgICAgICogY2FsbHMgQ2FsZW5kYXJBc3Ryb25vbWVyLm1vb25BZ2UsIGNvbnZlcnRzIHRvIGRlZ3JlZXMsIAorICAgICAqIGFuZCBhZGp1c3RzIHRoZSByZXN1bHR0byBiZSBpbiB0aGUgcmFuZ2UgWy0xODAsIDE4MF0uCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGltZSAgVGhlIHRpbWUgYXQgd2hpY2ggdGhlIG1vb24ncyBhZ2UgaXMgZGVzaXJlZCwKKyAgICAgKiAgICAgICAgICAgICAgaW4gbWlsbGlzIHNpbmNlIDEvMS8xOTcwLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBkb3VibGUgbW9vbkFnZShsb25nIHRpbWUpCisgICAgeworICAgICAgICBkb3VibGUgYWdlID0gMDsKKyAgICAgICAgCisgICAgICAgIHN5bmNocm9uaXplZChhc3RybykgeworICAgICAgICAgICAgYXN0cm8uc2V0VGltZSh0aW1lKTsKKyAgICAgICAgICAgIGFnZSA9IGFzdHJvLmdldE1vb25BZ2UoKTsKKyAgICAgICAgfQorICAgICAgICAvLyBDb252ZXJ0IHRvIGRlZ3JlZXMgYW5kIG5vcm1hbGl6ZS4uLgorICAgICAgICBhZ2UgPSBhZ2UgKiAxODAgLyBNYXRoLlBJOworICAgICAgICBpZiAoYWdlID4gMTgwKSB7CisgICAgICAgICAgICBhZ2UgPSBhZ2UgLSAzNjA7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gYWdlOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEludGVybmFsIGRhdGEuLi4uCisgICAgLy8KKyAgICAKKyAgICAvLyBBbmQgYW4gQXN0cm9ub21lciBvYmplY3QgZm9yIHRoZSBtb29uIGFnZSBjYWxjdWxhdGlvbnMKKyAgICBwcml2YXRlIHN0YXRpYyBDYWxlbmRhckFzdHJvbm9tZXIgYXN0cm8gPSBuZXcgQ2FsZW5kYXJBc3Ryb25vbWVyKCk7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgQ2FsZW5kYXJDYWNoZSBjYWNoZSA9IG5ldyBDYWxlbmRhckNhY2hlKCk7CisgICAgCisgICAgLyoqCisgICAgICogPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBvYmplY3QgdXNlcyB0aGUgZml4ZWQtY3ljbGUgSXNsYW1pYyBjaXZpbCBjYWxlbmRhciwKKyAgICAgKiBhbmQgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IGFwcHJveGltYXRlcyB0aGUgdHJ1ZSByZWxpZ2lvdXMgY2FsZW5kYXIgdXNpbmcKKyAgICAgKiBhc3Ryb25vbWljYWwgY2FsY3VsYXRpb25zIGZvciB0aGUgdGltZSBvZiB0aGUgbmV3IG1vb24uCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGNpdmlsID0gdHJ1ZTsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIENhbGVuZGFyIGZyYW1ld29yaworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsZW5ndGggKGluIGRheXMpIG9mIHRoZSBnaXZlbiBtb250aC4KKyAgICAgKgorICAgICAqIEBwYXJhbSB5ZWFyICBUaGUgaGlqcmkgeWVhcgorICAgICAqIEBwYXJhbSB5ZWFyICBUaGUgaGlqcmkgbW9udGgsIDAtYmFzZWQKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldE1vbnRoTGVuZ3RoKGludCBleHRlbmRlZFllYXIsIGludCBtb250aCkgeworCisgICAgICAgIGludCBsZW5ndGggPSAwOworICAgICAgICAKKyAgICAgICAgaWYgKGNpdmlsKSB7CisgICAgICAgICAgICBsZW5ndGggPSAyOSArIChtb250aCsxKSAlIDI7CisgICAgICAgICAgICBpZiAobW9udGggPT0gREhVX0FMX0hJSkpBSCAmJiBjaXZpbExlYXBZZWFyKGV4dGVuZGVkWWVhcikpIHsKKyAgICAgICAgICAgICAgICBsZW5ndGgrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1vbnRoID0gMTIqKGV4dGVuZGVkWWVhci0xKSArIG1vbnRoOworICAgICAgICAgICAgbGVuZ3RoID0gKGludCkoIHRydWVNb250aFN0YXJ0KG1vbnRoKzEpIC0gdHJ1ZU1vbnRoU3RhcnQobW9udGgpICk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxlbmd0aDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBkYXlzIGluIHRoZSBnaXZlbiBJc2xhbWljIHllYXIKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldFllYXJMZW5ndGgoaW50IGV4dGVuZGVkWWVhcikgeworICAgICAgICBpZiAoY2l2aWwpIHsKKyAgICAgICAgICAgIHJldHVybiAzNTQgKyAoY2l2aWxMZWFwWWVhcihleHRlbmRlZFllYXIpID8gMSA6IDApOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaW50IG1vbnRoID0gMTIqKGV4dGVuZGVkWWVhci0xKTsKKyAgICAgICAgICAgIHJldHVybiAoaW50KSh0cnVlTW9udGhTdGFydChtb250aCArIDEyKSAtIHRydWVNb250aFN0YXJ0KG1vbnRoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gRnVuY3Rpb25zIGZvciBjb252ZXJ0aW5nIGZyb20gZmllbGQgdmFsdWVzIHRvIG1pbGxpc2Vjb25kcy4uLi4KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vIFJldHVybiBKRCBvZiBzdGFydCBvZiBnaXZlbiBtb250aC95ZWFyCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVDb21wdXRlTW9udGhTdGFydChpbnQgZXllYXIsIGludCBtb250aCwgYm9vbGVhbiB1c2VNb250aCkgeworICAgICAgICByZXR1cm4gKGludCkgbW9udGhTdGFydChleWVhciwgbW9udGgpICsgMTk0ODQzOTsKKyAgICB9ICAgIAorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gRnVuY3Rpb25zIGZvciBjb252ZXJ0aW5nIGZyb20gbWlsbGlzZWNvbmRzIHRvIGZpZWxkIHZhbHVlcworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVHZXRFeHRlbmRlZFllYXIoKSB7CisgICAgICAgIGludCB5ZWFyOworICAgICAgICBpZiAobmV3ZXJGaWVsZChFWFRFTkRFRF9ZRUFSLCBZRUFSKSA9PSBFWFRFTkRFRF9ZRUFSKSB7CisgICAgICAgICAgICB5ZWFyID0gaW50ZXJuYWxHZXQoRVhURU5ERURfWUVBUiwgMSk7IC8vIERlZmF1bHQgdG8geWVhciAxCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB5ZWFyID0gaW50ZXJuYWxHZXQoWUVBUiwgMSk7IC8vIERlZmF1bHQgdG8geWVhciAxCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHllYXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgQ2FsZW5kYXIgdG8gY29tcHV0ZSBzZXZlcmFsIGZpZWxkcyBzcGVjaWZpYyB0byB0aGUgSXNsYW1pYworICAgICAqIGNhbGVuZGFyIHN5c3RlbS4gIFRoZXNlIGFyZToKKyAgICAgKgorICAgICAqIDx1bD48bGk+RVJBCisgICAgICogPGxpPllFQVIKKyAgICAgKiA8bGk+TU9OVEgKKyAgICAgKiA8bGk+REFZX09GX01PTlRICisgICAgICogPGxpPkRBWV9PRl9ZRUFSCisgICAgICogPGxpPkVYVEVOREVEX1lFQVI8L3VsPgorICAgICAqIAorICAgICAqIFRoZSBEQVlfT0ZfV0VFSyBhbmQgRE9XX0xPQ0FMIGZpZWxkcyBhcmUgYWxyZWFkeSBzZXQgd2hlbiB0aGlzCisgICAgICogbWV0aG9kIGlzIGNhbGxlZC4gVGhlIGdldEdyZWdvcmlhblh4eCgpIG1ldGhvZHMgcmV0dXJuIEdyZWdvcmlhbgorICAgICAqIGNhbGVuZGFyIGVxdWl2YWxlbnRzIGZvciB0aGUgZ2l2ZW4gSnVsaWFuIGRheS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVDb21wdXRlRmllbGRzKGludCBqdWxpYW5EYXkpIHsKKyAgICAgICAgaW50IHllYXIsIG1vbnRoLCBkYXlPZk1vbnRoLCBkYXlPZlllYXI7CisgICAgICAgIGxvbmcgbW9udGhTdGFydDsKKyAgICAgICAgbG9uZyBkYXlzID0ganVsaWFuRGF5IC0gMTk0ODQ0MDsKKworICAgICAgICBpZiAoY2l2aWwpIHsKKyAgICAgICAgICAgIC8vIFVzZSB0aGUgY2l2aWwgY2FsZW5kYXIgYXBwcm94aW1hdGlvbiwgd2hpY2ggaXMganVzdCBhcml0aG1ldGljCisgICAgICAgICAgICB5ZWFyICA9IChpbnQpTWF0aC5mbG9vciggKDMwICogZGF5cyArIDEwNjQ2KSAvIDEwNjMxLjAgKTsKKyAgICAgICAgICAgIG1vbnRoID0gKGludClNYXRoLmNlaWwoKGRheXMgLSAyOSAtIHllYXJTdGFydCh5ZWFyKSkgLyAyOS41ICk7CisgICAgICAgICAgICBtb250aCA9IE1hdGgubWluKG1vbnRoLCAxMSk7CisgICAgICAgICAgICBtb250aFN0YXJ0ID0gbW9udGhTdGFydCh5ZWFyLCBtb250aCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBHdWVzcyBhdCB0aGUgbnVtYmVyIG9mIGVsYXBzZWQgZnVsbCBtb250aHMgc2luY2UgdGhlIGVwb2NoCisgICAgICAgICAgICBpbnQgbW9udGhzID0gKGludClNYXRoLmZsb29yKGRheXMgLyBDYWxlbmRhckFzdHJvbm9tZXIuU1lOT0RJQ19NT05USCk7CisKKyAgICAgICAgICAgIG1vbnRoU3RhcnQgPSAobG9uZylNYXRoLmZsb29yKG1vbnRocyAqIENhbGVuZGFyQXN0cm9ub21lci5TWU5PRElDX01PTlRIIC0gMSk7CisKKyAgICAgICAgICAgIGlmICggZGF5cyAtIG1vbnRoU3RhcnQgPj0gMjggJiYgbW9vbkFnZShpbnRlcm5hbEdldFRpbWVJbk1pbGxpcygpKSA+IDApIHsKKyAgICAgICAgICAgICAgICAvLyBJZiB3ZSdyZSBuZWFyIHRoZSBlbmQgb2YgdGhlIG1vbnRoLCBhc3N1bWUgbmV4dCBtb250aCBhbmQgc2VhcmNoIGJhY2t3YXJkcworICAgICAgICAgICAgICAgIG1vbnRocysrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBGaW5kIG91dCB0aGUgbGFzdCB0aW1lIHRoYXQgdGhlIG5ldyBtb29uIHdhcyBhY3R1YWxseSB2aXNpYmxlIGF0IHRoaXMgbG9uZ2l0dWRlCisgICAgICAgICAgICAvLyBUaGlzIHJldHVybnMgbWlkbmlnaHQgdGhlIG5pZ2h0IHRoYXQgdGhlIG1vb24gd2FzIHZpc2libGUgYXQgc3Vuc2V0LgorICAgICAgICAgICAgd2hpbGUgKChtb250aFN0YXJ0ID0gdHJ1ZU1vbnRoU3RhcnQobW9udGhzKSkgPiBkYXlzKSB7CisgICAgICAgICAgICAgICAgLy8gSWYgaXQgd2FzIGFmdGVyIHRoZSBkYXRlIGluIHF1ZXN0aW9uLCBiYWNrIHVwIGEgbW9udGggYW5kIHRyeSBhZ2FpbgorICAgICAgICAgICAgICAgIG1vbnRocy0tOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB5ZWFyID0gbW9udGhzIC8gMTIgKyAxOworICAgICAgICAgICAgbW9udGggPSBtb250aHMgJSAxMjsKKyAgICAgICAgfQorCisgICAgICAgIGRheU9mTW9udGggPSAoaW50KShkYXlzIC0gbW9udGhTdGFydCh5ZWFyLCBtb250aCkpICsgMTsKKworICAgICAgICAvLyBOb3cgZmlndXJlIG91dCB0aGUgZGF5IG9mIHRoZSB5ZWFyLgorICAgICAgICBkYXlPZlllYXIgPSAoaW50KShkYXlzIC0gbW9udGhTdGFydCh5ZWFyLCAwKSArIDEpOworCisgICAgICAgIGludGVybmFsU2V0KEVSQSwgMCk7CisgICAgICAgIGludGVybmFsU2V0KFlFQVIsIHllYXIpOworICAgICAgICBpbnRlcm5hbFNldChFWFRFTkRFRF9ZRUFSLCB5ZWFyKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoTU9OVEgsIG1vbnRoKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoREFZX09GX01PTlRILCBkYXlPZk1vbnRoKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoREFZX09GX1lFQVIsIGRheU9mWWVhcik7ICAgICAgIAorICAgIH0gICAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9KYXBhbmVzZUNhbGVuZGFyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9KYXBhbmVzZUNhbGVuZGFyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTA2YmIzZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0phcGFuZXNlQ2FsZW5kYXIuamF2YQpAQCAtMCwwICsxLDUzOCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L3V0aWwvSmFwYW5lc2VDYWxlbmRhci5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA2OjI5ICQgCisgKiAkUmV2aXNpb246IDEuOCAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKKy8qKgorICogPGNvZGU+SmFwYW5lc2VDYWxlbmRhcjwvY29kZT4gaXMgYSBzdWJjbGFzcyBvZiA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4KKyAqIHRoYXQgbnVtYmVycyB5ZWFycyBhbmQgZXJhcyBiYXNlZCBvbiB0aGUgcmVpZ25zIG9mIHRoZSBKYXBhbmVzZSBlbXBlcm9ycy4KKyAqIFRoZSBKYXBhbmVzZSBjYWxlbmRhciBpcyBpZGVudGljYWwgdG8gdGhlIEdyZWdvcmlhbiBjYWxlbmRhciBpbiBhbGwgcmVzcGVjdHMKKyAqIGV4Y2VwdCBmb3IgdGhlIHllYXIgYW5kIGVyYS4gIFRoZSBhc2NlbnNpb24gb2YgZWFjaCAgZW1wZXJvciB0byB0aGUgdGhyb25lCisgKiBiZWdpbnMgYSBuZXcgZXJhLCBhbmQgdGhlIHllYXJzIG9mIHRoYXQgZXJhIGFyZSBudW1iZXJlZCBzdGFydGluZyB3aXRoIHRoZQorICogeWVhciBvZiBhc2NlbnNpb24gYXMgeWVhciAxLgorICogPHA+CisgKiBOb3RlIHRoYXQgaW4gdGhlIHllYXIgb2YgYW4gaW1wZXJpYWwgYXNjZW5zaW9uLCB0aGVyZSBhcmUgdHdvIHBvc3NpYmxlIHNldHMKKyAqIG9mIHllYXIgYW5kIGVyYSB2YWx1ZXM6IHRoYXQgZm9yIHRoZSBvbGQgZXJhIGFuZCBmb3IgdGhlIG5ldy4gIEZvciBleGFtcGxlLCBhCisgKiBuZXcgZXJhIGJlZ2FuIG9uIEphbnVhcnkgNywgMTk4OSBBRC4gIFN0cmljdGx5IHNwZWFraW5nLCB0aGUgZmlyc3Qgc2l4IGRheXMKKyAqIG9mIHRoYXQgeWVhciB3ZXJlIGluIHRoZSBTaG93YSBlcmEsIGUuZy4gIkphbnVhcnkgNiwgNjQgU2hvd2EiLCB3aGlsZSB0aGUgcmVzdAorICogb2YgdGhlIHllYXIgd2FzIGluIHRoZSBIZWlzZWkgZXJhLCBlLmcuICJKYW51YXJ5IDcsIDEgSGVpc2VpIi4gIFRoaXMgY2xhc3MKKyAqIGhhbmRsZXMgdGhpcyBkaXN0aW5jdGlvbiBjb3JyZWN0bHkgd2hlbiBjb21wdXRpbmcgZGF0ZXMuICBIb3dldmVyLCBpbiBsZW5pZW50CisgKiBtb2RlIGVpdGhlciBmb3JtIG9mIGRhdGUgaXMgYWNjZXB0YWJsZSBhcyBpbnB1dC4gCisgKiA8cD4KKyAqIEluIG1vZGVybiB0aW1lcywgZXJhcyBoYXZlIHN0YXJ0ZWQgb24gSmFudWFyeSA4LCAxODY4IEFELCBHcmVnb3JpYW4gKE1laWppKSwKKyAqIEp1bHkgMzAsIDE5MTIgKFRhaXNobyksIERlY2VtYmVyIDI1LCAxOTI2IChTaG93YSksIGFuZCBKYW51YXJ5IDcsIDE5ODkgKEhlaXNlaSkuICBDb25zdGFudHMKKyAqIGZvciB0aGVzZSBlcmFzLCBzdWl0YWJsZSBmb3IgdXNlIGluIHRoZSA8Y29kZT5FUkE8L2NvZGU+IGZpZWxkLCBhcmUgcHJvdmlkZWQKKyAqIGluIHRoaXMgY2xhc3MuICBOb3RlIHRoYXQgdGhlIDxlbT5udW1iZXI8L2VtPiB1c2VkIGZvciBlYWNoIGVyYSBpcyBtb3JlIG9yCisgKiBsZXNzIGFyYml0cmFyeS4gIEN1cnJlbnRseSwgdGhlIGVyYSBzdGFydGluZyBpbiAxMDUzIEFEIGlzIGVyYSAjMDsgaG93ZXZlciB0aGlzCisgKiBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUgYXMgd2UgYWRkIG1vcmUgaGlzdG9yaWNhbCBkYXRhLiAgVXNlIHRoZSBwcmVkZWZpbmVkCisgKiBjb25zdGFudHMgcmF0aGVyIHRoYW4gdXNpbmcgYWN0dWFsLCBhYnNvbHV0ZSBudW1iZXJzLgorICogPHA+CisgKgorICogQHNlZSBjb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyCisgKgorICogQGF1dGhvciBMYXVyYSBXZXJuZXIKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqLworcHVibGljIGNsYXNzIEphcGFuZXNlQ2FsZW5kYXIgZXh0ZW5kcyBHcmVnb3JpYW5DYWxlbmRhciB7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGNvcHlyaWdodCA9ICJDb3B5cmlnaHQgXHUwMGE5IDE5OTggSUJNIENvcnAuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIjsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIENvbnN0cnVjdG9ycy4uLgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIGRlZmF1bHQgPGNvZGU+SmFwYW5lc2VDYWxlbmRhcjwvY29kZT4gdXNpbmcgdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgSmFwYW5lc2VDYWxlbmRhcigpIHsKKyAgICAgICAgc3VwZXIoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SmFwYW5lc2VDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBnaXZlbiB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIHpvbmUgdGhlIGdpdmVuIHRpbWUgem9uZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgSmFwYW5lc2VDYWxlbmRhcihUaW1lWm9uZSB6b25lKSB7CisgICAgICAgIHN1cGVyKHpvbmUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5KYXBhbmVzZUNhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gYUxvY2FsZSB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqLworICAgIHB1YmxpYyBKYXBhbmVzZUNhbGVuZGFyKExvY2FsZSBhTG9jYWxlKSB7CisgICAgICAgIHN1cGVyKGFMb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5KYXBhbmVzZUNhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGdpdmVuIHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gem9uZSB0aGUgZ2l2ZW4gdGltZSB6b25lLgorICAgICAqCisgICAgICogQHBhcmFtIGFMb2NhbGUgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgSmFwYW5lc2VDYWxlbmRhcihUaW1lWm9uZSB6b25lLCBMb2NhbGUgYUxvY2FsZSkgeworICAgICAgICBzdXBlcih6b25lLCBhTG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SmFwYW5lc2VDYWxlbmRhcjwvY29kZT4gd2l0aCB0aGUgZ2l2ZW4gZGF0ZSBzZXQKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZSAgICAgIFRoZSBkYXRlIHRvIHdoaWNoIHRoZSBuZXcgY2FsZW5kYXIgaXMgc2V0LgorICAgICAqLworICAgIHB1YmxpYyBKYXBhbmVzZUNhbGVuZGFyKERhdGUgZGF0ZSkgeworICAgICAgICB0aGlzKCk7CisgICAgICAgIHNldFRpbWUoZGF0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkphcGFuZXNlQ2FsZW5kYXI8L2NvZGU+IHdpdGggdGhlIGdpdmVuIGRhdGUgc2V0CisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIGVyYSAgICAgICBUaGUgaW1wZXJpYWwgZXJhIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjRVJBIEVSQX0gZmllbGQuCisgICAgICogICAgICAgICAgICAgICAgICBFcmFzIGFyZSBudW1iZXJlZCBzdGFydGluZyB3aXRoIHRoZSBUZW5raSBlcmEsIHdoaWNoCisgICAgICogICAgICAgICAgICAgICAgICBiZWdhbiBpbiAxMDUzIEFEIEdyZWdvcmlhbiwgYXMgZXJhIHplcm8uICBSZWNlbnQKKyAgICAgKiAgICAgICAgICAgICAgICAgIGVyYXMgY2FuIGJlIHNwZWNpZmllZCB1c2luZyB0aGUgY29uc3RhbnRzCisgICAgICogICAgICAgICAgICAgICAgICB7QGxpbmsgI01FSUpJfSAod2hpY2ggc3RhcnRlZCBpbiAxODY4IEFEKSwKKyAgICAgKiAgICAgICAgICAgICAgICAgIHtAbGluayAjVEFJU0hPfSAoMTkxMiBBRCksCisgICAgICogICAgICAgICAgICAgICAgICB7QGxpbmsgI1NIT1dBfSAoMTkyNiBBRCksIGFuZAorICAgICAqICAgICAgICAgICAgICAgICAge0BsaW5rICNIRUlTRUl9ICgxOTg5IEFEKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB5ZWFyICAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjWUVBUiBZRUFSfSBmaWVsZCwKKyAgICAgKiAgICAgICAgICAgICAgICAgIGluIHRlcm1zIG9mIHRoZSBlcmEuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbW9udGggICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI01PTlRIIE1PTlRIfSBmaWVsZC4KKyAgICAgKiAgICAgICAgICAgICAgICAgIFRoZSB2YWx1ZSBpcyAwLWJhc2VkLiBlLmcuLCAwIGZvciBKYW51YXJ5LgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGUgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3MgREFURSBmaWVsZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgSmFwYW5lc2VDYWxlbmRhcihpbnQgZXJhLCBpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSkgeworICAgICAgICBzdXBlcih5ZWFyLCBtb250aCwgZGF0ZSk7CisgICAgICAgIHNldChFUkEsIGVyYSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkphcGFuZXNlQ2FsZW5kYXI8L2NvZGU+IHdpdGggdGhlIGdpdmVuIGRhdGUgc2V0CisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHllYXIgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNZRUFSIFlFQVJ9IGZpZWxkLAorICAgICAqICAgICAgICAgICAgICAgICAgaW4gdGhlIGVyYSBIZWlzZWksIHRoZSBtb3N0IGN1cnJlbnQgYXQgdGhlIHRpbWUgdGhpcworICAgICAqICAgICAgICAgICAgICAgICAgY2xhc3Mgd2FzIGxhc3QgdXBkYXRlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtb250aCAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjTU9OVEggTU9OVEh9IGZpZWxkLgorICAgICAqICAgICAgICAgICAgICAgICAgVGhlIHZhbHVlIGlzIDAtYmFzZWQuIGUuZy4sIDAgZm9yIEphbnVhcnkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZSAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI0RBVEUgREFURX0gZmllbGQuCisgICAgICovCisgICAgcHVibGljIEphcGFuZXNlQ2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUpIHsKKyAgICAgICAgc3VwZXIoeWVhciwgbW9udGgsIGRhdGUpOworICAgICAgICBzZXQoRVJBLCBDVVJSRU5UX0VSQSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkphcGFuZXNlQ2FsZW5kYXI8L2NvZGU+IHdpdGggdGhlIGdpdmVuIGRhdGUKKyAgICAgKiBhbmQgdGltZSBzZXQgZm9yIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB5ZWFyICAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjWUVBUiBZRUFSfSB0aW1lIGZpZWxkLAorICAgICAqICAgICAgICAgICAgICAgICAgaW4gdGhlIGVyYSBIZWlzZWksIHRoZSBtb3N0IGN1cnJlbnQgYXQgdGhlIHRpbWUgb2YgdGhpcworICAgICAqICAgICAgICAgICAgICAgICAgd3JpdGluZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtb250aCAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjTU9OVEggTU9OVEh9IHRpbWUgZmllbGQuCisgICAgICogICAgICAgICAgICAgICAgICBUaGUgdmFsdWUgaXMgMC1iYXNlZC4gZS5nLiwgMCBmb3IgSmFudWFyeS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlICAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjREFURSBEQVRFfSB0aW1lIGZpZWxkLgorICAgICAqCisgICAgICogQHBhcmFtIGhvdXIgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNIT1VSX09GX0RBWSBIT1VSX09GX0RBWX0gdGltZSBmaWVsZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtaW51dGUgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjTUlOVVRFIE1JTlVURX0gdGltZSBmaWVsZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZWNvbmQgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjU0VDT05EIFNFQ09ORH0gdGltZSBmaWVsZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgSmFwYW5lc2VDYWxlbmRhcihpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSwgaW50IGhvdXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtaW51dGUsIGludCBzZWNvbmQpCisgICAgeworICAgICAgICBzdXBlcih5ZWFyLCBtb250aCwgZGF0ZSwgaG91ciwgbWludXRlLCBzZWNvbmQpOworICAgICAgICBzZXQoRVJBLCBDVVJSRU5UX0VSQSk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldEV4dGVuZGVkWWVhcigpIHsKKyAgICAgICAgaW50IHllYXI7CisgICAgICAgIC8vIFRPRE8gcmVpbXBsZW1lbnQgdGhpcyB0byBiZSBmYXN0ZXI/CisgICAgICAgIGlmIChuZXdlckZpZWxkKEVYVEVOREVEX1lFQVIsIFlFQVIpID09IEVYVEVOREVEX1lFQVIgJiYKKyAgICAgICAgICAgIG5ld2VyRmllbGQoRVhURU5ERURfWUVBUiwgRVJBKSA9PSBFWFRFTkRFRF9ZRUFSKSB7CisgICAgICAgICAgICB5ZWFyID0gaW50ZXJuYWxHZXQoRVhURU5ERURfWUVBUiwgMSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBTdWJ0cmFjdCBvbmUgYmVjYXVzZSB5ZWFyIHN0YXJ0cyBhdCAxCisgICAgICAgICAgICB5ZWFyID0gaW50ZXJuYWxHZXQoWUVBUikgKyBFUkFTW2ludGVybmFsR2V0KEVSQSkgKiAzXSAtIDE7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHllYXI7CisgICAgfQorCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlQ29tcHV0ZUZpZWxkcyhpbnQganVsaWFuRGF5KSB7CisgICAgICAgIHN1cGVyLmhhbmRsZUNvbXB1dGVGaWVsZHMoanVsaWFuRGF5KTsKKyAgICAgICAgaW50IHllYXIgPSBpbnRlcm5hbEdldChFWFRFTkRFRF9ZRUFSKTsKKworICAgICAgICBpbnQgbG93ID0gMDsKKworICAgICAgICAvLyBTaG9ydCBjaXJjdWl0IGZvciByZWNlbnQgeWVhcnMuICBNb3N0IG1vZGVybiBjb21wdXRhdGlvbnMgd2lsbAorICAgICAgICAvLyBvY2N1ciBpbiB0aGUgY3VycmVudCBlcmEgYW5kIHdvbid0IHJlcXVpcmUgdGhlIGJpbmFyeSBzZWFyY2guCisgICAgICAgIC8vIE5vdGUgdGhhdCBpZiB0aGUgeWVhciBpcyA9PSB0aGUgY3VycmVudCBlcmEgeWVhciwgdGhlbiB3ZSB1c2UKKyAgICAgICAgLy8gdGhlIGJpbmFyeSBzZWFyY2ggdG8gaGFuZGxlIHRoZSBtb250aC9kb20gY29tcGFyaXNvbi4KKyAgICAgICAgaWYgKHllYXIgPiBFUkFTW0VSQVMubGVuZ3RoIC0gM10pIHsKKyAgICAgICAgICAgIGxvdyA9IENVUlJFTlRfRVJBOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gQmluYXJ5IHNlYXJjaAorICAgICAgICAgICAgaW50IGhpZ2ggPSBFUkFTLmxlbmd0aCAvIDM7CisgICAgICAgIAorICAgICAgICAgICAgd2hpbGUgKGxvdyA8IGhpZ2ggLSAxKSB7CisgICAgICAgICAgICAgICAgaW50IGkgPSAobG93ICsgaGlnaCkgLyAyOworICAgICAgICAgICAgICAgIGludCBkaWZmID0geWVhciAtIEVSQVNbaSozXTsKKworICAgICAgICAgICAgICAgIC8vIElmIHllYXJzIGFyZSB0aGUgc2FtZSwgdGhlbiBjb21wYXJlIHRoZSBtb250aHMsIGFuZCBpZiB0aG9zZQorICAgICAgICAgICAgICAgIC8vIGFyZSB0aGUgc2FtZSwgY29tcGFyZSBkYXlzIG9mIG1vbnRoLiAgSW4gdGhlIEVSQVMgYXJyYXkKKyAgICAgICAgICAgICAgICAvLyBtb250aHMgYXJlIDEtYmFzZWQgZm9yIGVhc2llciBtYWludGVuYW5jZS4KKyAgICAgICAgICAgICAgICBpZiAoZGlmZiA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGRpZmYgPSBpbnRlcm5hbEdldChNT05USCkgLSAoRVJBU1tpKjMgKyAxXSAtIDEpOworICAgICAgICAgICAgICAgICAgICBpZiAoZGlmZiA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkaWZmID0gaW50ZXJuYWxHZXQoREFZX09GX01PTlRIKSAtIEVSQVNbaSozICsgMl07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGRpZmYgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBsb3cgPSBpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGhpZ2ggPSBpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIE5vdyB3ZSd2ZSBmb3VuZCB0aGUgbGFzdCBlcmEgdGhhdCBzdGFydHMgYmVmb3JlIHRoaXMgZGF0ZSwgc28KKyAgICAgICAgLy8gYWRqdXN0IHRoZSB5ZWFyIHRvIGNvdW50IGZyb20gdGhlIHN0YXJ0IG9mIHRoYXQgZXJhLiAgTm90ZSB0aGF0CisgICAgICAgIC8vIGFsbCBkYXRlcyBiZWZvcmUgdGhlIGZpcnN0IGVyYSB3aWxsIGZhbGwgaW50byB0aGUgZmlyc3QgZXJhIGJ5CisgICAgICAgIC8vIHRoZSBhbGdvcml0aG0uCisgICAgICAgIGludGVybmFsU2V0KEVSQSwgbG93KTsKKyAgICAgICAgaW50ZXJuYWxTZXQoWUVBUiwgeWVhciAtIEVSQVNbbG93KjNdICsgMSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50W10gRVJBUyA9IHsKKyAgICAvLyAgR3JlZ29yaWFuIGRhdGUgb2YgZWFjaCBlbXBlcm9yJ3MgYXNjZW5zaW9uCisgICAgLy8gIFllYXJzIGFyZSBBRCwgbW9udGhzIGFyZSAxLWJhc2VkLgorICAgIC8vICBZZWFyICBNb250aCBEYXkKKyAgICAgICAgIDY0NSwgICAgNiwgMTksICAgICAvLyBUYWlrYQorICAgICAgICAgNjUwLCAgICAyLCAxNSwgICAgIC8vIEhha3VjaGkKKyAgICAgICAgIDY3MiwgICAgMSwgIDEsICAgICAvLyBIYWt1aG8KKyAgICAgICAgIDY4NiwgICAgNywgMjAsICAgICAvLyBTaHVjaG8KKyAgICAgICAgIDcwMSwgICAgMywgMjEsICAgICAvLyBUYWlobworICAgICAgICAgNzA0LCAgICA1LCAxMCwgICAgIC8vIEtlaXVuCisgICAgICAgICA3MDgsICAgIDEsIDExLCAgICAgLy8gV2FkbworICAgICAgICAgNzE1LCAgICA5LCAgMiwgICAgIC8vIFJlaWtpCisgICAgICAgICA3MTcsICAgMTEsIDE3LCAgICAgLy8gWW9ybworICAgICAgICAgNzI0LCAgICAyLCAgNCwgICAgIC8vIEppbmtpCisgICAgICAgICA3MjksICAgIDgsICA1LCAgICAgLy8gVGVtcHlvCisgICAgICAgICA3NDksICAgIDQsIDE0LCAgICAgLy8gVGVtcHlvLWthbXBvCisgICAgICAgICA3NDksICAgIDcsICAyLCAgICAgLy8gVGVtcHlvLXNob2hvCisgICAgICAgICA3NTcsICAgIDgsIDE4LCAgICAgLy8gVGVtcHlvLWhvamkKKyAgICAgICAgIDc2NSwgICAgMSwgIDcsICAgICAvLyBUZW1waG8tamluZ28KKyAgICAgICAgIDc2NywgICAgOCwgMTYsICAgICAvLyBKaW5nby1rZWl1bgorICAgICAgICAgNzcwLCAgIDEwLCAgMSwgICAgIC8vIEhva2kKKyAgICAgICAgIDc4MSwgICAgMSwgIDEsICAgICAvLyBUZW4tbworICAgICAgICAgNzgyLCAgICA4LCAxOSwgICAgIC8vIEVucnlha3UKKyAgICAgICAgIDgwNiwgICAgNSwgMTgsICAgICAvLyBEYWlkbworICAgICAgICAgODEwLCAgICA5LCAxOSwgICAgIC8vIEtvbmluCisgICAgICAgICA4MjQsICAgIDEsICA1LCAgICAgLy8gVGVuY2hvCisgICAgICAgICA4MzQsICAgIDEsICAzLCAgICAgLy8gU2hvd2EKKyAgICAgICAgIDg0OCwgICAgNiwgMTMsICAgICAvLyBLYWpvCisgICAgICAgICA4NTEsICAgIDQsIDI4LCAgICAgLy8gTmluanUKKyAgICAgICAgIDg1NCwgICAxMSwgMzAsICAgICAvLyBTYWlrbworICAgICAgICAgODU3LCAgICAyLCAyMSwgICAgIC8vIFRlbm5hbgorICAgICAgICAgODU5LCAgICA0LCAxNSwgICAgIC8vIEpvZ2FuCisgICAgICAgICA4NzcsICAgIDQsIDE2LCAgICAgLy8gR2Vua2VpCisgICAgICAgICA4ODUsICAgIDIsIDIxLCAgICAgLy8gTmlubmEKKyAgICAgICAgIDg4OSwgICAgNCwgMjcsICAgICAvLyBLYW1weW8KKyAgICAgICAgIDg5OCwgICAgNCwgMjYsICAgICAvLyBTaG90YWkKKyAgICAgICAgIDkwMSwgICAgNywgMTUsICAgICAvLyBFbmdpCisgICAgICAgICA5MjMsICAgIDQsIDExLCAgICAgLy8gRW5jaG8KKyAgICAgICAgIDkzMSwgICAgNCwgMjYsICAgICAvLyBTaG9oZWkKKyAgICAgICAgIDkzOCwgICAgNSwgMjIsICAgICAvLyBUZW5neW8KKyAgICAgICAgIDk0NywgICAgNCwgMjIsICAgICAvLyBUZW5yeWFrdQorICAgICAgICAgOTU3LCAgIDEwLCAyNywgICAgIC8vIFRlbnRva3UKKyAgICAgICAgIDk2MSwgICAgMiwgMTYsICAgICAvLyBPd2EKKyAgICAgICAgIDk2NCwgICAgNywgMTAsICAgICAvLyBLb2hvCisgICAgICAgICA5NjgsICAgIDgsIDEzLCAgICAgLy8gQW5uYQorICAgICAgICAgOTcwLCAgICAzLCAyNSwgICAgIC8vIFRlbnJva3UKKyAgICAgICAgIDk3MywgICAxMiwgMjAsICAgICAvLyBUZW4tZW4KKyAgICAgICAgIDk3NiwgICAgNywgMTMsICAgICAvLyBKb2dlbgorICAgICAgICAgOTc4LCAgIDExLCAyOSwgICAgIC8vIFRlbmdlbgorICAgICAgICAgOTgzLCAgICA0LCAxNSwgICAgIC8vIEVpa2FuCisgICAgICAgICA5ODUsICAgIDQsIDI3LCAgICAgLy8gS2FubmEKKyAgICAgICAgIDk4NywgICAgNCwgIDUsICAgICAvLyBFaS1lbgorICAgICAgICAgOTg5LCAgICA4LCAgOCwgICAgIC8vIEVpc28KKyAgICAgICAgIDk5MCwgICAxMSwgIDcsICAgICAvLyBTaG9yeWFrdQorICAgICAgICAgOTk1LCAgICAyLCAyMiwgICAgIC8vIENob3Rva3UKKyAgICAgICAgIDk5OSwgICAgMSwgMTMsICAgICAvLyBDaG9obworICAgICAgICAxMDA0LCAgICA3LCAyMCwgICAgIC8vIEthbmtvCisgICAgICAgIDEwMTIsICAgMTIsIDI1LCAgICAgLy8gQ2hvd2EKKyAgICAgICAgMTAxNywgICAgNCwgMjMsICAgICAvLyBLYW5uaW4KKyAgICAgICAgMTAyMSwgICAgMiwgIDIsICAgICAvLyBKaWFuCisgICAgICAgIDEwMjQsICAgIDcsIDEzLCAgICAgLy8gTWFuanUKKyAgICAgICAgMTAyOCwgICAgNywgMjUsICAgICAvLyBDaG9nZW4KKyAgICAgICAgMTAzNywgICAgNCwgMjEsICAgICAvLyBDaG9yeWFrdQorICAgICAgICAxMDQwLCAgIDExLCAxMCwgICAgIC8vIENob2t5dQorICAgICAgICAxMDQ0LCAgIDExLCAyNCwgICAgIC8vIEthbnRva3UKKyAgICAgICAgMTA0NiwgICAgNCwgMTQsICAgICAvLyBFaXNobworICAgICAgICAxMDUzLCAgICAxLCAxMSwgICAgIC8vIFRlbmdpCisgICAgICAgIDEwNTgsICAgIDgsIDI5LCAgICAgLy8gS29oZWkKKyAgICAgICAgMTA2NSwgICAgOCwgIDIsICAgICAvLyBKaXJ5YWt1CisgICAgICAgIDEwNjksICAgIDQsIDEzLCAgICAgLy8gRW5reXUKKyAgICAgICAgMTA3NCwgICAgOCwgMjMsICAgICAvLyBTaG9obworICAgICAgICAxMDc3LCAgIDExLCAxNywgICAgIC8vIFNob3J5YWt1CisgICAgICAgIDEwODEsICAgIDIsIDEwLCAgICAgLy8gRWlobworICAgICAgICAxMDg0LCAgICAyLCAgNywgICAgIC8vIE90b2t1CisgICAgICAgIDEwODcsICAgIDQsICA3LCAgICAgLy8gS2FuamkKKyAgICAgICAgMTA5NCwgICAxMiwgMTUsICAgICAvLyBLYWhvCisgICAgICAgIDEwOTYsICAgMTIsIDE3LCAgICAgLy8gRWljaG8KKyAgICAgICAgMTA5NywgICAxMSwgMjEsICAgICAvLyBTaG90b2t1CisgICAgICAgIDEwOTksICAgIDgsIDI4LCAgICAgLy8gS293YQorICAgICAgICAxMTA0LCAgICAyLCAxMCwgICAgIC8vIENob2ppCisgICAgICAgIDExMDYsICAgIDQsICA5LCAgICAgLy8gS2FzaG8KKyAgICAgICAgMTEwOCwgICAgOCwgIDMsICAgICAvLyBUZW5uaW4KKyAgICAgICAgMTExMCwgICAgNywgMTMsICAgICAvLyBUZW4tZWkKKyAgICAgICAgMTExMywgICAgNywgMTMsICAgICAvLyBFaWt5dQorICAgICAgICAxMTE4LCAgICA0LCAgMywgICAgIC8vIEdlbi1laQorICAgICAgICAxMTIwLCAgICA0LCAxMCwgICAgIC8vIEhvYW4KKyAgICAgICAgMTEyNCwgICAgNCwgIDMsICAgICAvLyBUZW5qaQorICAgICAgICAxMTI2LCAgICAxLCAyMiwgICAgIC8vIERhaWppCisgICAgICAgIDExMzEsICAgIDEsIDI5LCAgICAgLy8gVGVuc2hvCisgICAgICAgIDExMzIsICAgIDgsIDExLCAgICAgLy8gQ2hvc2hvCisgICAgICAgIDExMzUsICAgIDQsIDI3LCAgICAgLy8gSG9lbgorICAgICAgICAxMTQxLCAgICA3LCAxMCwgICAgIC8vIEVpamkKKyAgICAgICAgMTE0MiwgICAgNCwgMjgsICAgICAvLyBLb2ppCisgICAgICAgIDExNDQsICAgIDIsIDIzLCAgICAgLy8gVGVueW8KKyAgICAgICAgMTE0NSwgICAgNywgMjIsICAgICAvLyBLeXVhbgorICAgICAgICAxMTUxLCAgICAxLCAyNiwgICAgIC8vIE5pbnBlaQorICAgICAgICAxMTU0LCAgIDEwLCAyOCwgICAgIC8vIEt5dWp1CisgICAgICAgIDExNTYsICAgIDQsIDI3LCAgICAgLy8gSG9nZW4KKyAgICAgICAgMTE1OSwgICAgNCwgMjAsICAgICAvLyBIZWlqaQorICAgICAgICAxMTYwLCAgICAxLCAxMCwgICAgIC8vIEVpcnlha3UKKyAgICAgICAgMTE2MSwgICAgOSwgIDQsICAgICAvLyBPaG8KKyAgICAgICAgMTE2MywgICAgMywgMjksICAgICAvLyBDaG9rYW4KKyAgICAgICAgMTE2NSwgICAgNiwgIDUsICAgICAvLyBFaW1hbgorICAgICAgICAxMTY2LCAgICA4LCAyNywgICAgIC8vIE5pbi1hbgorICAgICAgICAxMTY5LCAgICA0LCAgOCwgICAgIC8vIEthbworICAgICAgICAxMTcxLCAgICA0LCAyMSwgICAgIC8vIFNob2FuCisgICAgICAgIDExNzUsICAgIDcsIDI4LCAgICAgLy8gQW5nZW4KKyAgICAgICAgMTE3NywgICAgOCwgIDQsICAgICAvLyBKaXNobworICAgICAgICAxMTgxLCAgICA3LCAxNCwgICAgIC8vIFlvd2EKKyAgICAgICAgMTE4MiwgICAgNSwgMjcsICAgICAvLyBKdWVpCisgICAgICAgIDExODQsICAgIDQsIDE2LCAgICAgLy8gR2Vucnl1a3UKKyAgICAgICAgMTE4NSwgICAgOCwgMTQsICAgICAvLyBCdW5qaQorICAgICAgICAxMTkwLCAgICA0LCAxMSwgICAgIC8vIEtlbmt5dQorICAgICAgICAxMTk5LCAgICA0LCAyNywgICAgIC8vIFNob2ppCisgICAgICAgIDEyMDEsICAgIDIsIDEzLCAgICAgLy8gS2VubmluCisgICAgICAgIDEyMDQsICAgIDIsIDIwLCAgICAgLy8gR2Vua3l1CisgICAgICAgIDEyMDYsICAgIDQsIDI3LCAgICAgLy8gS2VuLWVpCisgICAgICAgIDEyMDcsICAgMTAsIDI1LCAgICAgLy8gU2hvZ2VuCisgICAgICAgIDEyMTEsICAgIDMsICA5LCAgICAgLy8gS2Vucnlha3UKKyAgICAgICAgMTIxMywgICAxMiwgIDYsICAgICAvLyBLZW5wbworICAgICAgICAxMjE5LCAgICA0LCAxMiwgICAgIC8vIFNob2t5dQorICAgICAgICAxMjIyLCAgICA0LCAxMywgICAgIC8vIEpvbworICAgICAgICAxMjI0LCAgIDExLCAyMCwgICAgIC8vIEdlbm5pbgorICAgICAgICAxMjI1LCAgICA0LCAyMCwgICAgIC8vIEthcm9rdQorICAgICAgICAxMjI3LCAgIDEyLCAxMCwgICAgIC8vIEFudGVpCisgICAgICAgIDEyMjksICAgIDMsICA1LCAgICAgLy8gS2Fua2kKKyAgICAgICAgMTIzMiwgICAgNCwgIDIsICAgICAvLyBKb2VpCisgICAgICAgIDEyMzMsICAgIDQsIDE1LCAgICAgLy8gVGVtcHVrdQorICAgICAgICAxMjM0LCAgIDExLCAgNSwgICAgIC8vIEJ1bnJ5YWt1CisgICAgICAgIDEyMzUsICAgIDksIDE5LCAgICAgLy8gS2F0ZWkKKyAgICAgICAgMTIzOCwgICAxMSwgMjMsICAgICAvLyBSeWFrdW5pbgorICAgICAgICAxMjM5LCAgICAyLCAgNywgICAgIC8vIEVuLW8KKyAgICAgICAgMTI0MCwgICAgNywgMTYsICAgICAvLyBOaW5qaQorICAgICAgICAxMjQzLCAgICAyLCAyNiwgICAgIC8vIEthbmdlbgorICAgICAgICAxMjQ3LCAgICAyLCAyOCwgICAgIC8vIEhvamkKKyAgICAgICAgMTI0OSwgICAgMywgMTgsICAgICAvLyBLZW5jaG8KKyAgICAgICAgMTI1NiwgICAxMCwgIDUsICAgICAvLyBLb2dlbgorICAgICAgICAxMjU3LCAgICAzLCAxNCwgICAgIC8vIFNob2thCisgICAgICAgIDEyNTksICAgIDMsIDI2LCAgICAgLy8gU2hvZ2VuCisgICAgICAgIDEyNjAsICAgIDQsIDEzLCAgICAgLy8gQnVuLW8KKyAgICAgICAgMTI2MSwgICAgMiwgMjAsICAgICAvLyBLb2NobworICAgICAgICAxMjY0LCAgICAyLCAyOCwgICAgIC8vIEJ1bi1laQorICAgICAgICAxMjc1LCAgICA0LCAyNSwgICAgIC8vIEtlbmppCisgICAgICAgIDEyNzgsICAgIDIsIDI5LCAgICAgLy8gS29hbgorICAgICAgICAxMjg4LCAgICA0LCAyOCwgICAgIC8vIFNob28KKyAgICAgICAgMTI5MywgICAgOCwgNTUsICAgICAvLyBFaW5pbgorICAgICAgICAxMjk5LCAgICA0LCAyNSwgICAgIC8vIFNob2FuCisgICAgICAgIDEzMDIsICAgMTEsIDIxLCAgICAgLy8gS2VuZ2VuCisgICAgICAgIDEzMDMsICAgIDgsICA1LCAgICAgLy8gS2FnZW4KKyAgICAgICAgMTMwNiwgICAxMiwgMTQsICAgICAvLyBUb2t1amkKKyAgICAgICAgMTMwOCwgICAxMCwgIDksICAgICAvLyBFbmtlaQorICAgICAgICAxMzExLCAgICA0LCAyOCwgICAgIC8vIE9jaG8KKyAgICAgICAgMTMxMiwgICAgMywgMjAsICAgICAvLyBTaG93YQorICAgICAgICAxMzE3LCAgICAyLCAgMywgICAgIC8vIEJ1bnBvCisgICAgICAgIDEzMTksICAgIDQsIDI4LCAgICAgLy8gR2VubworICAgICAgICAxMzIxLCAgICAyLCAyMywgICAgIC8vIEdlbmt5bworICAgICAgICAxMzI0LCAgIDEyLCAgOSwgICAgIC8vIFNob2NodQorICAgICAgICAxMzI2LCAgICA0LCAyNiwgICAgIC8vIEthcmVraQorICAgICAgICAxMzI5LCAgICA4LCAyOSwgICAgIC8vIEdlbnRva3UKKyAgICAgICAgMTMzMSwgICAgOCwgIDksICAgICAvLyBHZW5rbworICAgICAgICAxMzM0LCAgICAxLCAyOSwgICAgIC8vIEtlbW11CisgICAgICAgIDEzMzYsICAgIDIsIDI5LCAgICAgLy8gRW5nZW4KKyAgICAgICAgMTM0MCwgICAgNCwgMjgsICAgICAvLyBLb2tva3UKKyAgICAgICAgMTM0NiwgICAxMiwgIDgsICAgICAvLyBTaG9oZWkKKyAgICAgICAgMTM3MCwgICAgNywgMjQsICAgICAvLyBLZW50b2t1CisgICAgICAgIDEzNzIsICAgIDQsICAxLCAgICAgLy8gQnVuY2hcdTAxNjkKKyAgICAgICAgMTM3NSwgICAgNSwgMjcsICAgICAvLyBUZW5qdQorICAgICAgICAxMzgxLCAgICAyLCAxMCwgICAgIC8vIEtvd2EKKyAgICAgICAgMTM4NCwgICAgNCwgMjgsICAgICAvLyBHZW5jaFx1MDE2OQorICAgICAgICAxMzg0LCAgICAyLCAyNywgICAgIC8vIE1laXRva3UKKyAgICAgICAgMTM3OSwgICAgMywgMjIsICAgICAvLyBLb3J5YWt1CisgICAgICAgIDEzODcsICAgIDgsIDIzLCAgICAgLy8gS2FrZWkKKyAgICAgICAgMTM4OSwgICAgMiwgIDksICAgICAvLyBLb28KKyAgICAgICAgMTM5MCwgICAgMywgMjYsICAgICAvLyBNZWl0b2t1CisgICAgICAgIDEzOTQsICAgIDcsICA1LCAgICAgLy8gT2VpCisgICAgICAgIDE0MjgsICAgIDQsIDI3LCAgICAgLy8gU2hvY2hvCisgICAgICAgIDE0MjksICAgIDksICA1LCAgICAgLy8gRWlreW8KKyAgICAgICAgMTQ0MSwgICAgMiwgMTcsICAgICAvLyBLYWtpdHN1CisgICAgICAgIDE0NDQsICAgIDIsICA1LCAgICAgLy8gQnVuLWFuCisgICAgICAgIDE0NDksICAgIDcsIDI4LCAgICAgLy8gSG90b2t1CisgICAgICAgIDE0NTIsICAgIDcsIDI1LCAgICAgLy8gS3lvdG9rdQorICAgICAgICAxNDU1LCAgICA3LCAyNSwgICAgIC8vIEtvc2hvCisgICAgICAgIDE0NTcsICAgIDksIDI4LCAgICAgLy8gQ2hvcm9rdQorICAgICAgICAxNDYwLCAgIDEyLCAyMSwgICAgIC8vIEthbnNobworICAgICAgICAxNDY2LCAgICAyLCAyOCwgICAgIC8vIEJ1bnNobworICAgICAgICAxNDY3LCAgICAzLCAgMywgICAgIC8vIE9uaW4KKyAgICAgICAgMTQ2OSwgICAgNCwgMjgsICAgICAvLyBCdW5tZWkKKyAgICAgICAgMTQ4NywgICAgNywgMjksICAgICAvLyBDaG9reW8KKyAgICAgICAgMTQ4OSwgICAgOCwgMjEsICAgICAvLyBFbnRva3UKKyAgICAgICAgMTQ5MiwgICAgNywgMTksICAgICAvLyBNZWlvCisgICAgICAgIDE1MDEsICAgIDIsIDI5LCAgICAgLy8gQnVua2kKKyAgICAgICAgMTUwNCwgICAgMiwgMzAsICAgICAvLyBFaXNobworICAgICAgICAxNTIxLCAgICA4LCAyMywgICAgIC8vIFRhaWVpCisgICAgICAgIDE1MjgsICAgIDgsIDIwLCAgICAgLy8gS3lvcm9rdQorICAgICAgICAxNTMyLCAgICA3LCAyOSwgICAgIC8vIFRlbm1vbgorICAgICAgICAxNTU1LCAgIDEwLCAyMywgICAgIC8vIEtvamkKKyAgICAgICAgMTU1OCwgICAgMiwgMjgsICAgICAvLyBFaXJva3UKKyAgICAgICAgMTU3MCwgICAgNCwgMjMsICAgICAvLyBHZW5raQorICAgICAgICAxNTczLCAgICA3LCAyOCwgICAgIC8vIFRlbnNobworICAgICAgICAxNTkyLCAgIDEyLCAgOCwgICAgIC8vIEJ1bnJva3UKKyAgICAgICAgMTU5NiwgICAxMCwgMjcsICAgICAvLyBLZWljaG8KKyAgICAgICAgMTYxNSwgICAgNywgMTMsICAgICAvLyBHZW53YQorICAgICAgICAxNjI0LCAgICAyLCAzMCwgICAgIC8vIEthbi1laQorICAgICAgICAxNjQ0LCAgIDEyLCAxNiwgICAgIC8vIFNob2hvCisgICAgICAgIDE2NDgsICAgIDIsIDE1LCAgICAgLy8gS2VpYW4KKyAgICAgICAgMTY1MiwgICAgOSwgMTgsICAgICAvLyBTaG9vCisgICAgICAgIDE2NTUsICAgIDQsIDEzLCAgICAgLy8gTWVpcnlha3UKKyAgICAgICAgMTY1OCwgICAgNywgMjMsICAgICAvLyBNYW5qaQorICAgICAgICAxNjYxLCAgICA0LCAyNSwgICAgIC8vIEthbmJ1bgorICAgICAgICAxNjczLCAgICA5LCAyMSwgICAgIC8vIEVucG8KKyAgICAgICAgMTY4MSwgICAgOSwgMjksICAgICAvLyBUZW53YQorICAgICAgICAxNjg0LCAgICAyLCAyMSwgICAgIC8vIEpva3lvCisgICAgICAgIDE2ODgsICAgIDksIDMwLCAgICAgLy8gR2Vucm9rdQorICAgICAgICAxNzA0LCAgICAzLCAxMywgICAgIC8vIEhvZWkKKyAgICAgICAgMTcxMSwgICAgNCwgMjUsICAgICAvLyBTaG90b2t1CisgICAgICAgIDE3MTYsICAgIDYsIDIyLCAgICAgLy8gS3lvaG8KKyAgICAgICAgMTczNiwgICAgNCwgMjgsICAgICAvLyBHZW5idW4KKyAgICAgICAgMTc0MSwgICAgMiwgMjcsICAgICAvLyBLYW5wbworICAgICAgICAxNzQ0LCAgICAyLCAyMSwgICAgIC8vIEVua3lvCisgICAgICAgIDE3NDgsICAgIDcsIDEyLCAgICAgLy8gS2FuLWVuCisgICAgICAgIDE3NTEsICAgMTAsIDI3LCAgICAgLy8gSG9yeWFrdQorICAgICAgICAxNzY0LCAgICA2LCAgMiwgICAgIC8vIE1laXdhCisgICAgICAgIDE3NzIsICAgMTEsIDE2LCAgICAgLy8gQW4tZWkKKyAgICAgICAgMTc4MSwgICAgNCwgIDIsICAgICAvLyBUZW5tZWkKKyAgICAgICAgMTc4OSwgICAgMSwgMjUsICAgICAvLyBLYW5zZWkKKyAgICAgICAgMTgwMSwgICAgMiwgIDUsICAgICAvLyBLeW93YQorICAgICAgICAxODA0LCAgICAyLCAxMSwgICAgIC8vIEJ1bmthCisgICAgICAgIDE4MTgsICAgIDQsIDIyLCAgICAgLy8gQnVuc2VpCisgICAgICAgIDE4MzAsICAgMTIsIDEwLCAgICAgLy8gVGVucG8KKyAgICAgICAgMTg0NCwgICAxMiwgIDIsICAgICAvLyBLb2thCisgICAgICAgIDE4NDgsICAgIDIsIDI4LCAgICAgLy8gS2FlaQorICAgICAgICAxODU0LCAgIDExLCAyNywgICAgIC8vIEFuc2VpCisgICAgICAgIDE4NjAsICAgIDMsIDE4LCAgICAgLy8gTWFuLWVuCisgICAgICAgIDE4NjEsICAgIDIsIDE5LCAgICAgLy8gQnVua3l1CisgICAgICAgIDE4NjQsICAgIDIsIDIwLCAgICAgLy8gR2VuamkKKyAgICAgICAgMTg2NSwgICAgNCwgIDcsICAgICAvLyBLZWlvCisgICAgICAgIDE4NjgsICAgIDksICA4LCAgICAgLy8gTWVpamkKKyAgICAgICAgMTkxMiwgICAgNywgMzAsICAgICAvLyBUYWlzaG8KKyAgICAgICAgMTkyNiwgICAxMiwgMjUsICAgICAvLyBTaG93YQorICAgICAgICAxOTg5LCAgICAxLCAgOCwgICAgIC8vIEhlaXNlaQorICAgIH07CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBQdWJsaWMgY29uc3RhbnRzIGZvciBzb21lIG9mIHRoZSByZWNlbnQgZXJhcyB0aGF0IGZvbGtzIG1pZ2h0IHVzZS4uLgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLy8gQ29uc3RhbnQgZm9yIHRoZSBjdXJyZW50IGVyYS4gIFRoaXMgbXVzdCBiZSByZWd1bGFybHkgdXBkYXRlZC4KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIGludCBDVVJSRU5UX0VSQSA9IChFUkFTLmxlbmd0aCAvIDMpIC0gMTsKKyAgICAKKyAgICAvKiogQ29uc3RhbnQgZm9yIHRoZSBlcmEgc3RhcnRpbmcgb24gU2VwdC4gOCwgMTg2OCBBRCAqLworICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgaW50IE1FSUpJID0gQ1VSUkVOVF9FUkEgLSAzOworCisgICAgLyoqIENvbnN0YW50IGZvciB0aGUgZXJhIHN0YXJ0aW5nIG9uIEp1bHkgMzAsIDE5MTIgQUQgKi8KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIGludCBUQUlTSE8gPSBDVVJSRU5UX0VSQSAtIDI7CisgICAgCisgICAgLyoqIENvbnN0YW50IGZvciB0aGUgZXJhIHN0YXJ0aW5nIG9uIERlYy4gMjUsIDE5MjYgQUQgKi8KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIGludCBTSE9XQSA9IENVUlJFTlRfRVJBIC0gMTsKKworICAgIC8qKiBDb25zdGFudCBmb3IgdGhlIGVyYSBzdGFydGluZyBvbiBKYW4uIDcsIDE5ODkgQUQgKi8KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIGludCBIRUlTRUkgPSBDVVJSRU5UX0VSQTsKKworICAgIC8qKgorICAgICAqIFBhcnRpYWwgbGltaXRzIHRhYmxlIGZvciBsaW1pdHMgdGhhdCBkaWZmZXIgZnJvbSBHcmVnb3JpYW5DYWxlbmRhcidzLgorICAgICAqIFRoZSBZRUFSIG1heCBsaW1pdHMgYXJlIGZpbGxlZCBpbiB0aGUgZmlyc3QgdGltZSB0aGV5IGFyZSBuZWVkZWQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IExJTUlUU1tdW10gPSB7CisgICAgICAgIC8vIE1pbmltdW0gIEdyZWF0ZXN0ICAgICAgICBMZWFzdCAgICAgIE1heGltdW0KKyAgICAgICAgLy8gICAgICAgICAgIE1pbmltdW0gICAgICBNYXhpbXVtCisgICAgICAgIHsgICAgICAgIDAsICAgICAgICAwLCBDVVJSRU5UX0VSQSwgQ1VSUkVOVF9FUkEgfSwgLy8gRVJBCisgICAgICAgIHsgICAgICAgIDEsICAgICAgICAxLCAgICAgICAgICAgMCwgICAgICAgICAgIDAgfSwgLy8gWUVBUgorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIFlFQVJfTElNSVRfS05PV04gPSBmYWxzZTsKKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlIEdyZWdvcmlhbkNhbGVuZGFyLiAgV2Ugc2hvdWxkIHJlYWxseSBoYW5kbGUgWUVBUl9XT1kgYW5kCisgICAgICogRVhURU5ERURfWUVBUiBoZXJlIHRvbyB0byBpbXBsZW1lbnQgdGhlIDEuLjUwMDAwMDAgcmFuZ2UsIGJ1dCBpdCdzCisgICAgICogbm90IGNyaXRpY2FsLgorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0TGltaXQoaW50IGZpZWxkLCBpbnQgbGltaXRUeXBlKSB7CisgICAgICAgIHN3aXRjaCAoZmllbGQpIHsKKyAgICAgICAgY2FzZSBFUkE6CisgICAgICAgICAgICByZXR1cm4gTElNSVRTW2ZpZWxkXVtsaW1pdFR5cGVdOworICAgICAgICBjYXNlIFlFQVI6CisgICAgICAgICAgICBpZiAoIVlFQVJfTElNSVRfS05PV04pIHsKKyAgICAgICAgICAgICAgICBpbnQgbWluID0gRVJBU1szXSAtIEVSQVNbMF07CisgICAgICAgICAgICAgICAgaW50IG1heCA9IG1pbjsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpPTY7IGk8RVJBUy5sZW5ndGg7IGkrPTMpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGQgPSBFUkFTW2ldIC0gRVJBU1tpLTNdOworICAgICAgICAgICAgICAgICAgICBpZiAoZCA8IG1pbikgeworICAgICAgICAgICAgICAgICAgICAgICAgbWluID0gZDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChkID4gbWF4KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtYXggPSBkOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIExJTUlUU1tmaWVsZF1bTEVBU1RfTUFYSU1VTV0gPSBtaW47CisgICAgICAgICAgICAgICAgTElNSVRTW2ZpZWxkXVtNQVhJTVVNXSA9IG1heDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBMSU1JVFNbZmllbGRdW2xpbWl0VHlwZV07CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gc3VwZXIuaGFuZGxlR2V0TGltaXQoZmllbGQsIGxpbWl0VHlwZSk7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9PdmVybGF5QnVuZGxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9PdmVybGF5QnVuZGxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDVlY2E5NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL092ZXJsYXlCdW5kbGUuamF2YQpAQCAtMCwwICsxLDE3MSBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS91dGlsL092ZXJsYXlCdW5kbGUuamF2YSx2ICQKKyAqICREYXRlOiAyMDAyLzA4LzEzIDIzOjQzOjI3ICQKKyAqICRSZXZpc2lvbjogMS41ICQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworLyoqCisgKiBBIFJlc291cmNlQnVuZGxlIHRoYXQgb3ZlcmxheXMgb25lIGhpZXJhcmNoeSBhdG9wIGFub3RoZXIuICBUaGlzIGlzCisgKiBiZXN0IGV4cGxhaW5lZCBieSBleGFtcGxlLiAgU3VwcG9zZSBvbmUgd2FudHMgdG8gdXNlIHRoZQorICogcmVzb3VyY2UgaGlhcmFyY2h5IChpbiBKREsgMS4yIGFuZCAxLjMsIGJ1dCBub3QgMS40KSBhdCAKKyAqICJqYXZhLnRleHQucmVzb3VyY2VzLkxvY2FsZUVsZW1lbnRzIiwgYnV0IG9uZSB3YW50cyB0byB1c2UKKyAqIGEgbW9kaWZpZWQgdmVyc2lvbiBvZiB0aGUgIk51bWJlclBhdHRlcm5zIiByZXNvdXJjZSBpbiB0aGUKKyAqIGZyX0ZSIGxvY2FsZS4gIE9uZSB3YXkgdG8gZG8gdGhpcyBpcyB0byBhZGQgc3BlY2lhbCBjYXNlIGNvZGUKKyAqIHRvIHRoZSBsb29rdXAgb3BlcmF0aW9uIHRvIGNoZWNrIGZvciBmcl9GUiBhbmQgdGhlIGtleQorICogIk51bWJlclBhdHRlcm5zIiwgYW5kIGluIHRoYXQgY2FzZSwgbG9hZCB1cCBjdXN0b20gZGF0YS4gIEhvd2V2ZXIsCisgKiB0aGlzIGJlY29tZXMgdW53aWVsZHkgYW5kIHBsYWNlcyBzb21lIGluZm9ybWF0aW9uIGFib3V0IHRoZQorICogZWZmZWN0aXZlIHJlc291cmNlIGhpZXJhcmNoeSBpbnRvIHRoZSBjb2RlLgorICoKKyAqIFRoZSBPdmVybGF5QnVuZGxlIHNvbHZlcyB0aGlzIHByb2JsZW0gYnkgbGF5ZXJpbmcgYW5vdGhlcgorICogaGllcmFyY2h5LCBlLmcsICJjb20uYWNtZS5yZXNvdXJjZXMuTG9jYWxlRWxlbWVudHMiLCBvbiB0b3Agb2YgYQorICogYmFzZSBoaWVyYXJjaHkuICBXaGVuIGEgcmVzb3VyY2UgaXMgcmVxdWVzdGVkLCBpdCBpcyBmaXJzdCBzb3VnaHQKKyAqIGluIHRoZSBvdmVybGF5IGhpZXJhcmNoeSwgYW5kIGlmIG5vdCBmb3VuZCB0aGVyZSwgaXQgaXMgc291Z2h0IGluCisgKiB0aGUgYmFzZSBoaWVyYXJjaHkuICBNdWx0aXBsZSBvdmVybGF5cyBhcmUgc3VwcG9ydGVkLCBidXQgaW4KKyAqIHByYWN0aWNlIG9uZSBpcyB1c3VhbGx5IHN1ZmZpY2llbnQuCisgKiAKKyAqIFRoZSBPdmVybGF5QnVuZGxlIGFsc28gYWRkcmVzc2VzIHRoZSBwcm9ibGVtIG9mIGNvdW50cnktb3JpZW50ZWQKKyAqIGRhdGEuICBUbyBzcGVjaWZ5IHRoZSBkZWZhdWx0IGRhdGEgZm9yIGEgbGFuZ3VhZ2UsIG9uZSBqdXN0IHNldHMKKyAqIHRoZSBsYW5ndWFnZSByZXNvdXJjZSBidW5kbGUgZGF0YS4gIEhvd2V2ZXIsIHNwZWNpZnlpbmcgdGhlIGRlZmF1bHQKKyAqIGRhdGEgZm9yIGEgY291bnRyeSB1c2luZyB0aGUgc3RhbmRhcmQgUmVzb3VyY2VCdW5kbGUgbWVjaGFuaXNtIGlzCisgKiBpbXBvc3NpYmxlLiAgVGhlIE92ZXJsYXlCdW5kbGUgcmVjb2duaXplcyAid2lsZGNhcmQiIGxvY2FsZXMgd2l0aAorICogdGhlIHNwZWNpYWwgbGFuZ3VhZ2UgY29kZSAieHgiLiAgV2hlbiBsb29raW5nIHVwIGRhdGEgZm9yIGEgbG9jYWxlCisgKiB3aXRoIGEgbm9uLWVtcHR5IGNvdW50cnksIGlmIGFuIGV4YWN0IGxvY2FsZSBtYXRjaCBjYW5ub3QgYmUgZm91bmQsCisgKiB0aGUgT3ZlcmxheUJ1bmRsZSBsb29rcyBmb3IgZGF0YSBpbiB0aGUgbG9jYWxlIHh4X1lZLCB3aGVyZSBZWSBpcworICogdGhlIGNvdW50cnkgYmVpbmcgc291Z2h0LiAgVGhpcyBlZmZlY3RpdmVseSBhZGRzIGFub3RoZXIgZW50cnkgaW4KKyAqIHRoZSBmYWxsYmFjayBzZXF1ZW5jZSBmb3IgYSBsb2NhbGUgYWFfQkI6IGFhX0JCLCB4eF9CQiwgYWEsIHJvb3QuCisgKiBXaWxkY2FyZCBsb2NhbGVzIGFyZSBub3QgaW1wbGVtZW50ZWQgZm9yIHRoZSBiYXNlIGhpZXJhcmNoeSwgb25seQorICogZm9yIG92ZXJsYXlzLgorICoKKyAqIFRoZSBPdmVybGF5QnVuZGxlIGlzIGltcGxlbWVudGVkIGFzIGFuIGFycmF5IG9mIG4gUmVzb3VyY2VCdW5kbGUKKyAqIGJhc2UgbmFtZXMuICBUaGUgYmFzZSBuYW1lcyBhcmUgc2VhcmNoZWQgZnJvbSAwIHRvIG4tMS4gIEJhc2UgbmFtZQorICogbi0xIGlzIHNwZWNpYWw7IGl0IGlzIHRoZSBiYXNlIGhpZXJhcmNoeS4gIFRoaXMgc2hvdWxkIGJlIGEKKyAqIHdlbGwtcG9wdWxhdGVkIGhpZXJhcmNoeSB3aXRoIG1vc3Qgb2YgdGhlIGRlZmF1bHQgZGF0YSwgdHlwaWNhbGx5LAorICogdGhlIGljdSBvciBzdW4gY29yZSBoaWVyYXJjaGllcy4gIFRoZSBiYXNlIGhpZXJhcmNoeSBpcworICogdHJlYXRlZCBkaWZmZXJlbnRseSBmcm9tIHRoZSBvdmVybGF5cyBhYm92ZSBpdC4gIEl0IGRvZXMgbm90IGdldAorICogd2lsZGNhcmQgcmVzb2x1dGlvbiwgYW5kIHRoZSBnZXRLZXlzKCkgZnJhbWV3b3JrIG1ldGhvZCBpcworICogZGVsZWdhdGVkIHRvIHRoZSBiYXNlIGhpZXJhcmNoeSBidW5kbGUuCisgKgorICogVXNhZ2U6IEluc3RhbnRpYXRlIGFuIE92ZXJsYXlCdW5kbGUgZGlyZWN0bHkgKG5vdCB2aWEgYSBmYWN0b3J5CisgKiBtZXRob2QgYXMgaW4gUmVzb3VyY2VCdW5kbGUpLiAgSW5zdGVhZCBvZiBzcGVjaWZ5aW5nIGEgc2luZ2xlIGJhc2UKKyAqIG5hbWUsIHBhc3MgaXQgYW4gYXJyYXkgb2YgMiBvciBtb3JlIGJhc2UgbmFtZXMuICBBZnRlciB0aGF0LCB1c2UgaXQKKyAqIGV4YWN0bHkgYXMgeW91IHdvdWxkIHVzZSBSZXNvdXJjZUJ1bmRsZS4KKyAqCisgKiBAc2VlIGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZQorICogQGF1dGhvciBBbGFuIExpdQorICovCisvLyBwcmVwYXJlIHRvIGRlcHJlY2F0ZSBpbiBuZXh0IHJlbGVhc2UKKy8vL0NMT1ZFUjpPRkYKK3B1YmxpYyBjbGFzcyBPdmVybGF5QnVuZGxlIGV4dGVuZHMgUmVzb3VyY2VCdW5kbGUgeworCisgICAgLyoqCisgICAgICogVGhlIGFycmF5IG9mIGJhc2UgbmFtZXMsIHdpdGggdGhlIGxlbmd0aC0xIGVudHJ5IGJlaW5nIHRoZSBiYXNlCisgICAgICogaGllcmFyY2h5LCB0eXBpY2FsbHkgInN1bi50ZXh0LnJlc291cmNlcy5Mb2NhbGVFbGVtZW50cyIuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmdbXSBiYXNlTmFtZXM7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcmVxdWVzdGVkIGxvY2FsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIExvY2FsZSBsb2NhbGU7CisKKyAgICAvKioKKyAgICAgKiBMb2FkZWQgYnVuZGxlcy4gIFRoZXNlIHdpbGwgYmUgbnVsbCB1bnRpbCB0aGV5IGFyZSBsb2FkZWQgb24KKyAgICAgKiBkZW1hbmQuCisgICAgICovCisgICAgcHJpdmF0ZSBSZXNvdXJjZUJ1bmRsZVtdIGJ1bmRsZXM7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYW4gb3ZlcmxheSBidW5kbGUgZ2l2ZW4gYSBzZXF1ZW5jZSBvZiBiYXNlIG5hbWVzIGFuZAorICAgICAqIGEgbG9jYWxlLgorICAgICAqLworICAgIHB1YmxpYyBPdmVybGF5QnVuZGxlKFN0cmluZ1tdIGJhc2VOYW1lcywKKyAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHRoaXMuYmFzZU5hbWVzID0gYmFzZU5hbWVzOworICAgICAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZTsKKyAgICAgICAgYnVuZGxlcyA9IG5ldyBSZXNvdXJjZUJ1bmRsZVtiYXNlTmFtZXMubGVuZ3RoXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXNvdXJjZUJ1bmRsZSBmcmFtZXdvcmsgbWV0aG9kLiAgRGVsZWdhdGVzIHRvCisgICAgICogYnVuZGxlc1tpXS5nZXRPYmplY3QoKS4KKyAgICAgKi8gCisgICBwcm90ZWN0ZWQgT2JqZWN0IGhhbmRsZUdldE9iamVjdChTdHJpbmcga2V5KSAKKyAgICAgICAgdGhyb3dzIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiB7CisKKyAgICAgICAgT2JqZWN0IG8gPSBudWxsOworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxidW5kbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBsb2FkKGkpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBvID0gYnVuZGxlc1tpXS5nZXRPYmplY3Qoa2V5KTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgaWYgKGkgPT0gYnVuZGxlcy5sZW5ndGgtMSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChvICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBvOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlc291cmNlQnVuZGxlIGZyYW1ld29yayBtZXRob2QuICBEZWxlZ2F0ZXMgdG8KKyAgICAgKiBidW5kbGVzW2J1bmRsZXMubGVuZ3RoLTFdLmdldEtleXMoKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRW51bWVyYXRpb24gZ2V0S2V5cygpIHsKKyAgICAgICAgLy8gUmV0dXJuIHRoZSBlbnVtZXJhdGlvbiBvZiB0aGUgbGFzdCBidW5kbGUsIHdoaWNoIGlzIHRoZSBiYXNlCisgICAgICAgIC8vIG9mIG91ciBoaWVyYXJjaHkgc3RhY2suCisgICAgICAgIGludCBpID0gYnVuZGxlcy5sZW5ndGggLSAxOworICAgICAgICBsb2FkKGkpOworICAgICAgICByZXR1cm4gYnVuZGxlc1tpXS5nZXRLZXlzKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogTG9hZCB0aGUgaS10aCBidW5kbGUgYW5kIGltcGxlbWVudCB3aWxkY2FyZCByZXNvbHV0aW9uLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBsb2FkKGludCBpKQorICAgICAgICB0aHJvd3MgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIHsKKworICAgICAgICBpZiAoYnVuZGxlc1tpXSA9PSBudWxsKSB7CisgICAgICAgICAgICBib29sZWFuIHRyeVdpbGRjYXJkID0gZmFsc2U7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGJ1bmRsZXNbaV0gPSBSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGUoYmFzZU5hbWVzW2ldLCBsb2NhbGUpOworICAgICAgICAgICAgICAgIGlmIChidW5kbGVzW2ldLmdldExvY2FsZSgpLmVxdWFscyhsb2NhbGUpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGxvY2FsZS5nZXRDb3VudHJ5KCkubGVuZ3RoKCkgIT0gMCAmJiBpICE9IGJ1bmRsZXMubGVuZ3RoLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgdHJ5V2lsZGNhcmQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgaWYgKGkgPT0gYnVuZGxlcy5sZW5ndGgtMSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0cnlXaWxkY2FyZCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodHJ5V2lsZGNhcmQpIHsKKyAgICAgICAgICAgICAgICBMb2NhbGUgd2lsZGNhcmQgPSBuZXcgTG9jYWxlKCJ4eCIsIGxvY2FsZS5nZXRDb3VudHJ5KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGUuZ2V0VmFyaWFudCgpKTsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBidW5kbGVzW2ldID0gUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlKGJhc2VOYW1lc1tpXSwgd2lsZGNhcmQpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChidW5kbGVzW2ldID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9SYW5nZURhdGVSdWxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9SYW5nZURhdGVSdWxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjJkMGU5YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL1JhbmdlRGF0ZVJ1bGUuamF2YQpAQCAtMCwwICsxLDE0MSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L3V0aWwvUmFuZ2VEYXRlUnVsZS5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA2OjI5ICQgCisgKiAkUmV2aXNpb246IDEuNSAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKKworcHVibGljIGNsYXNzIFJhbmdlRGF0ZVJ1bGUgaW1wbGVtZW50cyBEYXRlUnVsZQoreworICAgIHB1YmxpYyBSYW5nZURhdGVSdWxlKCkKKyAgICB7CisgICAgfQorCisgICAgcHVibGljIFJhbmdlRGF0ZVJ1bGUoUmFuZ2VbXSByYW5nZXMpCisgICAgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJhbmdlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdGhpcy5yYW5nZXMuYWRkRWxlbWVudChyYW5nZXNbaV0pOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYWRkKERhdGVSdWxlIHJ1bGUpCisgICAgeworICAgICAgICBhZGQobmV3IERhdGUoTG9uZy5NSU5fVkFMVUUpLCBydWxlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBhZGQoRGF0ZSBzdGFydCwgRGF0ZVJ1bGUgcnVsZSkKKyAgICB7CisgICAgICAgIC8vIFRPRE86IEluc2VydCBpbiB0aGUgcmlnaHQgcGxhY2UKKyAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKCJBZGQ6ICIgKyBzdGFydC50b1N0cmluZygpKTsKKyAgICAgICAgcmFuZ2VzLmFkZEVsZW1lbnQobmV3IFJhbmdlKHN0YXJ0LCBydWxlKSk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgcHVibGljIERhdGUgZmlyc3RBZnRlcihEYXRlIHN0YXJ0KQorICAgIHsKKyAgICAgICAgLy8gRmluZCB0aGUgcmFuZ2UgdGhhdCBJIHNob3VsZCBsb29rIGF0CisgICAgICAgIGludCBpbmRleCA9IHN0YXJ0SW5kZXgoc3RhcnQpOworICAgICAgICBEYXRlIHJlc3VsdCA9IG51bGw7CisKKyAgICAgICAgUmFuZ2UgciA9IHJhbmdlQXQoaW5kZXgpOworICAgICAgICBSYW5nZSBlID0gcmFuZ2VBdChpbmRleCsxKTsKKworICAgICAgICBpZiAociAhPSBudWxsICYmIHIucnVsZSAhPSBudWxsKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gci5ydWxlLmZpcnN0QmV0d2VlbihzdGFydCwgZS5zdGFydCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHIucnVsZS5maXJzdEFmdGVyKHN0YXJ0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHB1YmxpYyBEYXRlIGZpcnN0QmV0d2VlbihEYXRlIHN0YXJ0LCBEYXRlIGVuZCkKKyAgICB7CisgICAgICAgIC8vIEZpbmQgdGhlIHJhbmdlIHRoYXQgSSBzaG91bGQgbG9vayBhdAorICAgICAgICBpbnQgaW5kZXggPSBzdGFydEluZGV4KHN0YXJ0KTsKKyAgICAgICAgRGF0ZSByZXN1bHQgPSBudWxsOworCisgICAgICAgIFJhbmdlIG5leHQgPSByYW5nZUF0KGluZGV4KTsKKworICAgICAgICB3aGlsZSAocmVzdWx0ID09IG51bGwgJiYgbmV4dCAhPSBudWxsICYmICEgbmV4dC5zdGFydC5hZnRlcihlbmQpKQorICAgICAgICB7CisgICAgICAgICAgICBSYW5nZSByID0gbmV4dDsKKyAgICAgICAgICAgIG5leHQgPSByYW5nZUF0KGluZGV4KzEpOworCisgICAgICAgICAgICBpZiAoci5ydWxlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBEYXRlIGUgPSAobmV4dCAhPSBudWxsICYmIG5leHQuc3RhcnQuYmVmb3JlKGVuZCkpID8gbmV4dC5zdGFydAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBlbmQ7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gci5ydWxlLmZpcnN0QmV0d2VlbihzdGFydCwgZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBpc09uKERhdGUgZGF0ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVjayB3aGV0aGVyIHRoaXMgZXZlbnQgb2NjdXJzIGF0IGxlYXN0IG9uY2UgYmV0d2VlbiB0aGUgdHdvCisgICAgICogZGF0ZXMgZ2l2ZW4uCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNCZXR3ZWVuKERhdGUgc3RhcnQsIERhdGUgZW5kKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZpcnN0QmV0d2VlbihzdGFydCxlbmQpID09IG51bGw7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBmaW5kIHRoZSBpbmRleCBvZiB0aGUgbGFzdCByYW5nZSB3aG9zZSBzdGFydCBkYXRlIGlzIGJlZm9yZSAic3RhcnQiCisgICAgICogcmV0dXJucyBhbiBpbmRleCA+PSByYW5nZXMuc2l6ZSgpIGlmIHRoZXJlIGlzIG5vbmUKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBzdGFydEluZGV4KERhdGUgc3RhcnQpCisgICAgeworICAgICAgICBpbnQgbGFzdEluZGV4ID0gcmFuZ2VzLnNpemUoKTsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJhbmdlcy5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgUmFuZ2UgciA9IChSYW5nZSkgcmFuZ2VzLmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgIGlmIChzdGFydC5iZWZvcmUoci5zdGFydCkpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxhc3RJbmRleCA9IGk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxhc3RJbmRleDsKKyAgICB9CisKKyAgICBwcml2YXRlIFJhbmdlIHJhbmdlQXQoaW50IGluZGV4KQorICAgIHsKKyAgICAgICByZXR1cm4gKGluZGV4IDwgcmFuZ2VzLnNpemUoKSkgPyAoUmFuZ2UpIHJhbmdlcy5lbGVtZW50QXQoaW5kZXgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogbnVsbDsKKyAgICB9CisKKyAgICBWZWN0b3IgcmFuZ2VzID0gbmV3IFZlY3RvcigyLDIpOworfTsKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gUHJpdmF0ZXMKKy8vCisKK2NsYXNzIFJhbmdlIHsKKyAgICBwdWJsaWMgUmFuZ2UoRGF0ZSBzdGFydCwgRGF0ZVJ1bGUgcnVsZSkgeworICAgICAgICB0aGlzLnN0YXJ0ID0gc3RhcnQ7CisgICAgICAgIHRoaXMucnVsZSA9IHJ1bGU7CisgICAgfQorICAgIHB1YmxpYyBEYXRlICAgICBzdGFydDsKKyAgICBwdWJsaWMgRGF0ZVJ1bGUgcnVsZTsKK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvUmFuZ2VWYWx1ZUl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9SYW5nZVZhbHVlSXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41ODE4MDAxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvUmFuZ2VWYWx1ZUl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwxMDUgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L3V0aWwvUmFuZ2VWYWx1ZUl0ZXJhdG9yLmphdmEsdiAkCisqICREYXRlOiAyMDAyLzA0LzE1IDE3OjI2OjU2ICQKKyogJFJldmlzaW9uOiAxLjQgJAorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKKy8qKgorICogPHA+SW50ZXJmYWNlIGZvciBlbmFibGluZyBpdGVyYXRpb24gb3ZlciBzZXRzIG9mIDxpbnQgaW5kZXgsIGludCB2YWx1ZT4sIAorICogd2hlcmUgaW5kZXggaXMgdGhlIHNvcnRlZCBpbnRlZ2VyIGluZGV4IGluIGFzY2VuZGluZyBvcmRlciBhbmQgdmFsdWUsIGl0cyAKKyAqIGFzc29jaWF0ZWQgaW50ZWdlciB2YWx1ZS48L3A+CisgKiA8cD5UaGUgcmVzdWx0IGZvciBlYWNoIGl0ZXJhdGlvbiBpcyB0aGUgY29uc2VjdXRpdmUgcmFuZ2Ugb2YgCisgKiA8aW50IGluZGV4LCBpbnQgdmFsdWU+IHdpdGggdGhlIHNhbWUgdmFsdWUuIFJlc3VsdCBpcyByZXByZXNlbnRlZCBieSAKKyAqIDxzdGFydCwgbGltaXQsIHZhbHVlPiB3aGVyZTwvcD4KKyAqIDx1bD4KKyAqIDxsaT4gc3RhcnQgaXMgdGhlIHN0YXJ0aW5nIGludGVnZXIgb2YgdGhlIHJlc3VsdCByYW5nZQorICogPGxpPiBsaW1pdCBpcyAxIGFmdGVyIHRoZSBtYXhpbXVtIGludGVnZXIgdGhhdCBmb2xsb3dzIHN0YXJ0LCBzdWNoIHRoYXQKKyAqICAgICAgYWxsIGludGVnZXJzIGJldHdlZW4gc3RhcnQgYW5kIChsaW1pdCAtIDEpLCBpbmNsdXNpdmUsIGhhdmUgdGhlIHNhbWUgCisgKiAgICAgIGFzc29jaWF0ZWQgaW50ZWdlciB2YWx1ZS4KKyAqIDxsaT4gdmFsdWUgaXMgdGhlIGludGVnZXIgdmFsdWUgdGhhdCBhbGwgaW50ZWdlcnMgZnJvbSBzdGFydCB0byAobGltaXQgLSAxKSAKKyAqICAgICAgc2hhcmUgaW4gY29tbW9uLgorICogPC91bD4KKyAqIDxwPgorICogSGVuY2UgdmFsdWUoc3RhcnQpID0gdmFsdWUoc3RhcnQgKyAxKSA9IC4uLi4gPSB2YWx1ZShzdGFydCArIG4pID0gLi4uLiA9CisgKiB2YWx1ZShsaW1pdCAtIDEpLiBIb3dldmVyIHZhbHVlKHN0YXJ0IC0xKSAhPSB2YWx1ZShzdGFydCkgYW5kIAorICogdmFsdWUobGltaXQpICE9IHZhbHVlKHN0YXJ0KS4KKyAqIDwvcD4KKyAqIDxwPk1vc3QgaW1wbGVtZW50YXRpb25zIHdpbGwgYmUgY3JlYXRlZCBieSBmYWN0b3J5IG1ldGhvZHMsIHN1Y2ggYXMgdGhlCisgKiBjaGFyYWN0ZXIgdHlwZSBpdGVyYXRvciBpbiBVQ2hhcmFjdGVyLmdldFR5cGVJdGVyYXRvci4gU2VlIGV4YW1wbGUgYmVsb3cuCisgKiA8L3A+CisgKiBFeGFtcGxlIG9mIHVzZTo8YnI+CisgKiA8cHJlPgorICogUmFuZ2VWYWx1ZUl0ZXJhdG9yIGl0ZXJhdG9yID0gVUNoYXJhY3Rlci5nZXRUeXBlSXRlcmF0b3IoKTsKKyAqIFJhbmdlVmFsdWVJdGVyYXRvci5FbGVtZW50IHJlc3VsdCA9IG5ldyBSYW5nZVZhbHVlSXRlcmF0b3IuRWxlbWVudCgpOworICogd2hpbGUgKGl0ZXJhdG9yLm5leHQocmVzdWx0KSkgeworICogICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29kZXBvaW50IFxcdSIgKyAKKyAqICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhyZXN1bHQuc3RhcnQpICsgCisgKiAgICAgICAgICAgICAgICAgICAgICAgICIgdG8gY29kZXBvaW50IFxcdSIgKworICogICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKHJlc3VsdC5saW1pdCAtIDEpICsgCisgKiAgICAgICAgICAgICAgICAgICAgICAgICIgaGFzIHRoZSBjaGFyYWN0ZXIgdHlwZSAiICsgcmVzdWx0LnZhbHVlKTsKKyAqIH0KKyAqIDwvcHJlPgorICogQGF1dGhvciBzeW53ZWUKKyAqIEBzaW5jZSByZWxlYXNlIDIuMSwgSmFuIDE3IDIwMDIKKyAqIEBkcmFmdCAyLjEKKyAqLworcHVibGljIGludGVyZmFjZSBSYW5nZVZhbHVlSXRlcmF0b3IKK3sKKyAgICAvLyBwdWJsaWMgaW5uZXIgY2xhc3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgKiBSZXR1cm4gcmVzdWx0IHdyYXBwZXIgZm9yIGNvbS5pYm0uaWN1LnV0aWwuUmFuZ2VWYWx1ZUl0ZXJhdG9yLgorICAgICogU3RvcmVzIHRoZSBzdGFydCBhbmQgbGltaXQgb2YgdGhlIGNvbnRpbm91cyByZXN1bHQgcmFuZ2UgYW5kIHRoZQorICAgICogY29tbW9uIHZhbHVlIGFsbCBpbnRlZ2VycyBiZXR3ZWVuIFtzdGFydCwgbGltaXQgLSAxXSBoYXMuCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwdWJsaWMgY2xhc3MgRWxlbWVudAorICAgIHsKKyAgICAgICAgLyoqCisgICAgICAgICogU3RhcnRpbmcgaW50ZWdlciBvZiB0aGUgY29udGludW91cyByZXN1bHQgcmFuZ2UgdGhhdCBoYXMgdGhlIHNhbWUgCisgICAgICAgICogdmFsdWUKKyAgICAgICAgKiBAZHJhZnQgMi4xCisgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgc3RhcnQ7CisgICAgICAgIC8qKgorICAgICAgICAqIChFbmQgKyAxKSBpbnRlZ2VyIG9mIGNvbnRpbnVvdXMgcmVzdWx0IHJhbmdlIHRoYXQgaGFzIHRoZSBzYW1lIAorICAgICAgICAqIHZhbHVlCisgICAgICAgICogQGRyYWZ0IDIuMQorICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IGxpbWl0OworICAgICAgICAvKioKKyAgICAgICAgKiBHZXRzIHRoZSBjb21tb24gdmFsdWUgb2YgdGhlIGNvbnRpbm91cyByZXN1bHQgcmFuZ2UKKyAgICAgICAgKiBAZHJhZnQgMi4xCisgICAgICAgICovIAorICAgICAgICBwdWJsaWMgaW50IHZhbHVlOworICAgIH0KKyAgICAKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgKiA8cD5HZXRzIHRoZSBuZXh0IG1heGltYWwgcmVzdWx0IHJhbmdlIHdpdGggYSBjb21tb24gdmFsdWUgYW5kIHJldHVybnMgCisgICAgKiB0cnVlIGlmIHdlIGFyZSBub3QgYXQgdGhlIGVuZCBvZiB0aGUgaXRlcmF0aW9uLCBmYWxzZSBvdGhlcndpc2UuPC9wPgorICAgICogPHA+SWYgdGhlIHJldHVybiBib29sZWFuIGlzIGEgZmFsc2UsIHRoZSBjb250ZW50cyBvZiBlbGVtZW50cyB3aWxsIG5vdAorICAgICogYmUgdXBkYXRlZC48L3A+CisgICAgKiBAcGFyYW0gZWxlbWVudCBmb3Igc3RvcmluZyB0aGUgcmVzdWx0IHJhbmdlIGFuZCB2YWx1ZQorICAgICogQHJldHVybiB0cnVlIGlmIHdlIGFyZSBub3QgYXQgdGhlIGVuZCBvZiB0aGUgaXRlcmF0aW9uLCBmYWxzZSBvdGhlcndpc2UuCisgICAgKiBAc2VlIEVsZW1lbnQKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHB1YmxpYyBib29sZWFuIG5leHQoRWxlbWVudCBlbGVtZW50KTsKKyAgICAKKyAgICAvKioKKyAgICAqIFJlc2V0cyB0aGUgaXRlcmF0b3IgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgaXRlcmF0aW9uLgorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHVibGljIHZvaWQgcmVzZXQoKTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9TaW1wbGVEYXRlUnVsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvU2ltcGxlRGF0ZVJ1bGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hMzk0MzVmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvU2ltcGxlRGF0ZVJ1bGUuamF2YQpAQCAtMCwwICsxLDIyOCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L3V0aWwvU2ltcGxlRGF0ZVJ1bGUuamF2YSx2ICQgCisgKiAkRGF0ZTogMjAwMi8wMy8yMCAwNToxMToxNyAkIAorICogJFJldmlzaW9uOiAxLjcgJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5HcmVnb3JpYW5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlNpbXBsZVRpbWVab25lOworCitwdWJsaWMgY2xhc3MgU2ltcGxlRGF0ZVJ1bGUgaW1wbGVtZW50cyBEYXRlUnVsZQoreworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIHJ1bGUgZm9yIGEgZml4ZWQgZGF0ZSB3aXRoaW4gYSBtb250aAorICAgICAqCisgICAgICogQHBhcmFtIG1vbnRoICAgICAgICAgVGhlIG1vbnRoIGluIHdoaWNoIHRoaXMgcnVsZSBvY2N1cnMgKDAtYmFzZWQpLgorICAgICAqIEBwYXJhbSBkYXlPZk1vbnRoICAgIFRoZSBkYXRlIGluIHRoYXQgbW9udGggKDEtYmFzZWQpLgorICAgICAqIDwvdWw+CisgICAgICovCisgICAgcHVibGljIFNpbXBsZURhdGVSdWxlKGludCBtb250aCwgaW50IGRheU9mTW9udGgpCisgICAgeworICAgICAgICB0aGlzLm1vbnRoICAgICAgPSBtb250aDsKKyAgICAgICAgdGhpcy5kYXlPZk1vbnRoID0gZGF5T2ZNb250aDsKKyAgICAgICAgdGhpcy5kYXlPZldlZWsgID0gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBydWxlIGZvciBhIHdlZWtkYXkgd2l0aGluIGEgbW9udGgsIGUuZy4gdGhlIGZpcnN0IE1vbmRheS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtb250aCAgICAgICAgIFRoZSBtb250aCBpbiB3aGljaCB0aGlzIHJ1bGUgb2NjdXJzICgwLWJhc2VkKS4KKyAgICAgKiBAcGFyYW0gZGF5T2ZNb250aCAgICBBIGRhdGUgd2l0aGluIHRoYXQgbW9udGggKDEtYmFzZWQpLgorICAgICAqIEBwYXJhbSBkYXlPZldlZWsgICAgIFRoZSBkYXkgb2YgdGhlIHdlZWsgb24gd2hpY2ggdGhpcyBydWxlIG9jY3Vycy4KKyAgICAgKiBAcGFyYW0gYWZ0ZXIgICAgICAgICBJZiB0cnVlLCB0aGlzIHJ1bGUgc2VsZWN0cyB0aGUgZmlyc3QgZGF5T2ZXZWVrCisgICAgICogICAgICAgICAgICAgICAgICAgICAgb24gb3IgYWZ0ZXIgZGF5T2ZNb250aC4gIElmIGZhbHNlLCB0aGUgcnVsZSBzZWxlY3RzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgdGhlIGZpcnN0IGRheU9mV2VlayBvbiBvciBiZWZvcmUgZGF5T2ZNb250aC4KKyAgICAgKiA8L3VsPgorICAgICAqLworICAgIHB1YmxpYyBTaW1wbGVEYXRlUnVsZShpbnQgbW9udGgsIGludCBkYXlPZk1vbnRoLCBpbnQgZGF5T2ZXZWVrLCBib29sZWFuIGFmdGVyKQorICAgIHsKKyAgICAgICAgdGhpcy5tb250aCAgICAgID0gbW9udGg7CisgICAgICAgIHRoaXMuZGF5T2ZNb250aCA9IGRheU9mTW9udGg7CisgICAgICAgIHRoaXMuZGF5T2ZXZWVrICA9IGFmdGVyID8gZGF5T2ZXZWVrIDogLWRheU9mV2VlazsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGZpcnN0IG9jY3VycmFuY2Ugb2YgdGhlIGV2ZW50IHJlcHJlc2VudGVkIGJ5IHRoaXMgcnVsZQorICAgICAqIHRoYXQgaXMgb24gb3IgYWZ0ZXIgdGhlIGdpdmVuIHN0YXJ0IGRhdGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhcnQgT25seSBvY2N1cnJhbmNlcyBvbiBvciBhZnRlciB0aGlzIGRhdGUgYXJlIHJldHVybmVkLgorICAgICAqCisgICAgICogQHJldHVybiAgICAgIFRoZSBkYXRlIG9uIHdoaWNoIHRoaXMgZXZlbnQgb2NjdXJzLCBvciBudWxsIGlmIGl0CisgICAgICogICAgICAgICAgICAgIGRvZXMgbm90IG9jY3VyIG9uIG9yIGFmdGVyIHRoZSBzdGFydCBkYXRlLgorICAgICAqCisgICAgICogQHNlZSAjZmlyc3RCZXR3ZWVuCisgICAgICovCisgICAgcHVibGljIERhdGUgZmlyc3RBZnRlcihEYXRlIHN0YXJ0KQorICAgIHsKKyAgICAgICAgaWYgKHN0YXJ0RGF0ZSAhPSBudWxsICYmIHN0YXJ0LmJlZm9yZShzdGFydERhdGUpKSB7CisgICAgICAgICAgICBzdGFydCA9IHN0YXJ0RGF0ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZG9GaXJzdEJldHdlZW4oc3RhcnQsIGVuZERhdGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZmlyc3Qgb2NjdXJyYW5jZSBvZiB0aGUgZXZlbnQgcmVwcmVzZW50ZWQgYnkgdGhpcyBydWxlCisgICAgICogdGhhdCBpcyBvbiBvciBhZnRlciB0aGUgZ2l2ZW4gc3RhcnQgZGF0ZSBhbmQgYmVmb3JlIHRoZSBnaXZlbgorICAgICAqIGVuZCBkYXRlLgorICAgICAqCisgICAgICogQHBhcmFtIHN0YXJ0IE9ubHkgb2NjdXJyYW5jZXMgb24gb3IgYWZ0ZXIgdGhpcyBkYXRlIGFyZSByZXR1cm5lZC4KKyAgICAgKiBAcGFyYW0gZW5kICAgT25seSBvY2N1cnJhbmNlcyBiZWZvcmUgdGhpcyBkYXRlIGFyZSByZXR1cm5lZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gICAgICBUaGUgZGF0ZSBvbiB3aGljaCB0aGlzIGV2ZW50IG9jY3Vycywgb3IgbnVsbCBpZiBpdAorICAgICAqICAgICAgICAgICAgICBkb2VzIG5vdCBvY2N1ciBiZXR3ZWVuIHRoZSBzdGFydCBhbmQgZW5kIGRhdGVzLgorICAgICAqCisgICAgICogQHNlZSAjZmlyc3RBZnRlcgorICAgICAqLworICAgIHB1YmxpYyBEYXRlIGZpcnN0QmV0d2VlbihEYXRlIHN0YXJ0LCBEYXRlIGVuZCkKKyAgICB7CisgICAgICAgIC8vIFBpbiB0byB0aGUgbWluL21heCBkYXRlcyBmb3IgdGhpcyBydWxlCisgICAgICAgIGlmIChzdGFydERhdGUgIT0gbnVsbCAmJiBzdGFydC5iZWZvcmUoc3RhcnREYXRlKSkgeworICAgICAgICAgICAgc3RhcnQgPSBzdGFydERhdGU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVuZERhdGUgIT0gbnVsbCAmJiBlbmQuYWZ0ZXIoZW5kRGF0ZSkpIHsKKyAgICAgICAgICAgIGVuZCA9IGVuZERhdGU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGRvRmlyc3RCZXR3ZWVuKHN0YXJ0LCBlbmQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrcyB3aGV0aGVyIHRoaXMgZXZlbnQgb2NjdXJzIG9uIHRoZSBnaXZlbiBkYXRlLiAgVGhpcyBkb2VzCisgICAgICogPGVtPm5vdDwvZW0+IHRha2UgdGltZSBvZiBkYXkgaW50byBhY2NvdW50OyBpbnN0ZWFkIGl0IGNoZWNrcworICAgICAqIHdoZXRoZXIgdGhpcyBldmVudCBhbmQgdGhlIGdpdmVuIGRhdGUgYXJlIG9uIHRoZSBzYW1lIGRheS4KKyAgICAgKiBUaGlzIGlzIHVzZWZ1bCBmb3IgYXBwbGljYXRpb25zIHN1Y2ggYXMgZGV0ZXJtaW5pbmcgd2hldGhlciBhIGdpdmVuCisgICAgICogZGF5IGlzIGEgaG9saWRheS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlICBUaGUgZGF0ZSB0byBjaGVjay4KKyAgICAgKiBAcmV0dXJuICAgICAgdHJ1ZSBpZiB0aGlzIGV2ZW50IG9jY3VycyBvbiB0aGUgZ2l2ZW4gZGF0ZS4KKyAgICAgKgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzT24oRGF0ZSBkYXRlKQorICAgIHsKKyAgICAgICAgaWYgKHN0YXJ0RGF0ZSAhPSBudWxsICYmIGRhdGUuYmVmb3JlKHN0YXJ0RGF0ZSkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZW5kRGF0ZSAhPSBudWxsICYmIGRhdGUuYWZ0ZXIoZW5kRGF0ZSkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIENhbGVuZGFyIGMgPSBjYWxlbmRhcjsKKworICAgICAgICBzeW5jaHJvbml6ZWQoYykgeworICAgICAgICAgICAgYy5zZXRUaW1lKGRhdGUpOworCisgICAgICAgICAgICBpbnQgZGF5T2ZZZWFyID0gYy5nZXQoQ2FsZW5kYXIuREFZX09GX1lFQVIpOworCisgICAgICAgICAgICBjLnNldFRpbWUoY29tcHV0ZUluWWVhcihjLmdldChDYWxlbmRhci5ZRUFSKSwgYykpOworCisgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiICBpc09uOiBkYXlPZlllYXIgPSAiICsgZGF5T2ZZZWFyKTsKKyAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCIgICAgICAgIGhvbGlkYXkgICA9ICIgKyBjLmdldChDYWxlbmRhci5EQVlfT0ZfWUVBUikpOworCisgICAgICAgICAgICByZXR1cm4gYy5nZXQoQ2FsZW5kYXIuREFZX09GX1lFQVIpID09IGRheU9mWWVhcjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrIHdoZXRoZXIgdGhpcyBldmVudCBvY2N1cnMgYXQgbGVhc3Qgb25jZSBiZXR3ZWVuIHRoZSB0d28KKyAgICAgKiBkYXRlcyBnaXZlbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0JldHdlZW4oRGF0ZSBzdGFydCwgRGF0ZSBlbmQpCisgICAgeworICAgICAgICByZXR1cm4gZmlyc3RCZXR3ZWVuKHN0YXJ0LCBlbmQpICE9IG51bGw7IC8vIFRPRE86IG9wdGltaXplPworICAgIH0KKworICAgIHByaXZhdGUgRGF0ZSBkb0ZpcnN0QmV0d2VlbihEYXRlIHN0YXJ0LCBEYXRlIGVuZCkKKyAgICB7CisgICAgICAgIENhbGVuZGFyIGMgPSBjYWxlbmRhcjsKKworICAgICAgICBzeW5jaHJvbml6ZWQoYykgeworICAgICAgICAgICAgYy5zZXRUaW1lKHN0YXJ0KTsKKworICAgICAgICAgICAgaW50IHllYXIgPSBjLmdldChDYWxlbmRhci5ZRUFSKTsKKyAgICAgICAgICAgIGludCBtb250aCA9IGMuZ2V0KENhbGVuZGFyLk1PTlRIKTsKKworICAgICAgICAgICAgLy8gSWYgdGhlIHJ1bGUgaXMgZWFybGllciBpbiB0aGUgeWVhciB0aGFuIHRoZSBzdGFydCBkYXRlCisgICAgICAgICAgICAvLyB3ZSBoYXZlIHRvIGdvIHRvIHRoZSBuZXh0IHllYXIuCisgICAgICAgICAgICBpZiAobW9udGggPiB0aGlzLm1vbnRoKSB7CisgICAgICAgICAgICAgICAgeWVhcisrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBGaWd1cmUgb3V0IHdoZW4gdGhlIHJ1bGUgbGFuZHMgaW4gdGhlIGdpdmVuIHllYXIKKyAgICAgICAgICAgIERhdGUgcmVzdWx0ID0gY29tcHV0ZUluWWVhcih5ZWFyLCBjKTsKKworICAgICAgICAgICAgLy8gSWYgdGhlIHJ1bGUgaXMgaW4gdGhlIHNhbWUgbW9udGggYXMgdGhlIHN0YXJ0IGRhdGUsIGl0J3MgcG9zc2libGUKKyAgICAgICAgICAgIC8vIHRvIGdldCBhIHJlc3VsdCB0aGF0J3MgYmVmb3JlIHRoZSBzdGFydC4gIElmIHNvLCBnbyB0byBuZXh0IHllYXIuCisgICAgICAgICAgICBpZiAobW9udGggPT0gdGhpcy5tb250aCAmJiByZXN1bHQuYmVmb3JlKHN0YXJ0KSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNvbXB1dGVJblllYXIoeWVhcisxLCBjKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGVuZCAhPSBudWxsICYmIHJlc3VsdC5hZnRlcihlbmQpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgRGF0ZSBjb21wdXRlSW5ZZWFyKGludCB5ZWFyLCBDYWxlbmRhciBjKQorICAgIHsKKyAgICAgICAgaWYgKGMgPT0gbnVsbCkgYyA9IGNhbGVuZGFyOworCisgICAgICAgIHN5bmNocm9uaXplZChjKSB7CisgICAgICAgICAgICBjLmNsZWFyKCk7CisgICAgICAgICAgICBjLnNldChDYWxlbmRhci5FUkEsIGMuZ2V0TWF4aW11bShDYWxlbmRhci5FUkEpKTsKKyAgICAgICAgICAgIGMuc2V0KENhbGVuZGFyLllFQVIsIHllYXIpOworICAgICAgICAgICAgYy5zZXQoQ2FsZW5kYXIuTU9OVEgsIG1vbnRoKTsKKyAgICAgICAgICAgIGMuc2V0KENhbGVuZGFyLkRBVEUsIGRheU9mTW9udGgpOworCisgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiICAgICBjb21wdXRlSW5ZZWFyOiBzdGFydCBhdCAiICsgYy5nZXRUaW1lKCkudG9TdHJpbmcoKSk7CisKKyAgICAgICAgICAgIGlmIChkYXlPZldlZWsgIT0gMCkgeworICAgICAgICAgICAgICAgIGMuc2V0VGltZShjLmdldFRpbWUoKSk7ICAgICAgICAvLyBKREsgMS4xLjIgd29ya2Fyb3VuZAorICAgICAgICAgICAgICAgIGludCB3ZWVrZGF5ID0gYy5nZXQoQ2FsZW5kYXIuREFZX09GX1dFRUspOworCisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIiAgICAgICAgICAgICAgICAgICAgd2Vla2RheSA9ICIgKyB3ZWVrZGF5KTsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiICAgICAgICAgICAgICAgICAgICBkYXlPZlllYXIgPSAiICsgYy5nZXQoQ2FsZW5kYXIuREFZX09GX1lFQVIpKTsKKworICAgICAgICAgICAgICAgIGludCBkZWx0YSA9IDA7CisgICAgICAgICAgICAgICAgaWYgKGRheU9mV2VlayA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gV2Ugd2FudCB0aGUgZmlyc3Qgb2NjdXJyYW5jZSBvZiB0aGUgZ2l2ZW4gZGF5IG9mIHRoZSB3ZWVrCisgICAgICAgICAgICAgICAgICAgIC8vIG9uIG9yIGFmdGVyIHRoZSBzcGVjaWZpZWQgZGF0ZSBpbiB0aGUgbW9udGguCisgICAgICAgICAgICAgICAgICAgIGRlbHRhID0gKGRheU9mV2VlayAtIHdlZWtkYXkgKyA3KSAlIDc7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKGRheU9mV2VlayA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gV2Ugd2FudCB0aGUgZmlyc3Qgb2NjdXJyYW5jZSBvZiB0aGUgKC1kYXlPZldlZWspCisgICAgICAgICAgICAgICAgICAgIC8vIG9uIG9yIGJlZm9yZSB0aGUgc3BlY2lmaWVkIGRhdGUgaW4gdGhlIG1vbnRoLgorICAgICAgICAgICAgICAgICAgICBkZWx0YSA9IC0oKGRheU9mV2VlayArIHdlZWtkYXkgKyA3KSAlIDcpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiICAgICAgICAgICAgICAgICAgICBhZGRpbmcgIiArIGRlbHRhICsgIiBkYXlzIik7CisgICAgICAgICAgICAgICAgYy5hZGQoQ2FsZW5kYXIuREFURSwgZGVsdGEpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gYy5nZXRUaW1lKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRDYWxlbmRhcihDYWxlbmRhciBjKSB7CisgICAgICAgIGNhbGVuZGFyID0gYzsKKyAgICB9CisKKyAgICBzdGF0aWMgR3JlZ29yaWFuQ2FsZW5kYXIgZ0NhbGVuZGFyID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiVVRDIikpOworCisgICAgQ2FsZW5kYXIgY2FsZW5kYXIgPSBnQ2FsZW5kYXI7CisKKyAgICBwcml2YXRlIGludCAgICAgbW9udGg7CisgICAgcHJpdmF0ZSBpbnQgICAgIGRheU9mTW9udGg7CisgICAgcHJpdmF0ZSBpbnQgICAgIGRheU9mV2VlazsKKworICAgIHByaXZhdGUgRGF0ZSAgICBzdGFydERhdGUgPSBudWxsOworICAgIHByaXZhdGUgRGF0ZSAgICBlbmREYXRlID0gbnVsbDsKK307CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9TaW1wbGVIb2xpZGF5LmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9TaW1wbGVIb2xpZGF5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDAxZWYzOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL1NpbXBsZUhvbGlkYXkuamF2YQpAQCAtMCwwICsxLDIzOSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L3V0aWwvU2ltcGxlSG9saWRheS5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzAyLzE2IDAzOjA2OjMwICQgCisgKiAkUmV2aXNpb246IDEuNSAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyOworCisvKioKKyAqIEEgaG9saWRheSB3aG9zZSBkYXRlIGNhbiBiZSByZXByZXNlbnRlZCBieSBhIFNpbXBsZURhdGVSdWxlIG9iamVjdAorICoKKyAqIEBzZWUgU2ltcGxlRGF0ZVJ1bGUKKyAqLworcHVibGljIGNsYXNzIFNpbXBsZUhvbGlkYXkgZXh0ZW5kcyBIb2xpZGF5IHsKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYW4gb2JqZWN0IHJlcHJlc2VudGluZyBhIGhvbGlkYXkKKyAgICAgKgorICAgICAqIEBwYXJhbSBtb250aCAgICAgICAgIFRoZSBtb250aCBpbiB3aGljaCB0aGlzIGhvbGlkYXkgb2NjdXJzICgwLWJhc2VkKQorICAgICAqIEBwYXJhbSBkYXlPZk1vbnRoICAgIFRoZSBkYXRlIHdpdGhpbiB0aGUgbW9udGggKDEtYmFzZWQpLgorICAgICAqCisgICAgICogQHBhcmFtIG5hbWUgIFRoZSBuYW1lIG9mIHRoaXMgaG9saWRheS4gIFRoaXMgc3RyaW5nIGlzIHVzZWQgYXMgYSBrZXkKKyAgICAgKiAgICAgICAgICAgICAgdG8gbG9vayB1cCB0aGUgaG9saWRheSdzIG5hbWUgYSByZXNvdXJjZSBidW5kbGUuCisgICAgICogICAgICAgICAgICAgIElmIHRoZSBuYW1lIGlzIG5vdCBmb3VuZCBpbiB0aGUgcmVzb3VyY2UgYnVuZGxlLAorICAgICAqICAgICAgICAgICAgICBnZXREaXNwbGF5TmFtZSB3aWxsIHJldHVybiB0aGlzIHN0cmluZyBpbnN0ZWFkLgorICAgICAqCisgICAgICogQHNlZSBTaW1wbGVEYXRlUnVsZQorICAgICAqIEBzZWUgSG9saWRheSNnZXREaXNwbGF5TmFtZShqYXZhLnV0aWwuTG9jYWxlKQorICAgICAqCisgICAgICovCisgICAgcHVibGljIFNpbXBsZUhvbGlkYXkoaW50IG1vbnRoLCBpbnQgZGF5T2ZNb250aCwgU3RyaW5nIG5hbWUpCisgICAgeworICAgICAgICBzdXBlcihuYW1lLCBuZXcgU2ltcGxlRGF0ZVJ1bGUobW9udGgsIGRheU9mTW9udGgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYW4gb2JqZWN0IHJlcHJlc2VudGluZyBhIGhvbGlkYXkKKyAgICAgKgorICAgICAqIEBwYXJhbSBtb250aCAgICAgICAgIFRoZSBtb250aCBpbiB3aGljaCB0aGlzIGhvbGlkYXkgb2NjdXJzICgwLWJhc2VkKQorICAgICAqIEBwYXJhbSBkYXlPZk1vbnRoICAgIFRoZSBkYXRlIHdpdGhpbiB0aGUgbW9udGggKDEtYmFzZWQpLgorICAgICAqCisgICAgICogQHBhcmFtIG5hbWUgIFRoZSBuYW1lIG9mIHRoaXMgaG9saWRheS4gIFRoaXMgc3RyaW5nIGlzIHVzZWQgYXMgYSBrZXkKKyAgICAgKiAgICAgICAgICAgICAgdG8gbG9vayB1cCB0aGUgaG9saWRheSdzIG5hbWUgYSByZXNvdXJjZSBidW5kbGUuCisgICAgICogICAgICAgICAgICAgIElmIHRoZSBuYW1lIGlzIG5vdCBmb3VuZCBpbiB0aGUgcmVzb3VyY2UgYnVuZGxlLAorICAgICAqICAgICAgICAgICAgICBnZXREaXNwbGF5TmFtZSB3aWxsIHJldHVybiB0aGlzIHN0cmluZyBpbnN0ZWFkLgorICAgICAqCisgICAgICogQHNlZSBTaW1wbGVEYXRlUnVsZQorICAgICAqIEBzZWUgSG9saWRheSNnZXREaXNwbGF5TmFtZShqYXZhLnV0aWwuTG9jYWxlKQorICAgICAqCisgICAgICovCisgICAgcHVibGljIFNpbXBsZUhvbGlkYXkoaW50IG1vbnRoLCBpbnQgZGF5T2ZNb250aCwgU3RyaW5nIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0WWVhcikKKyAgICB7CisgICAgICAgIHN1cGVyKG5hbWUsIG51bGwpOworCisgICAgICAgIHNldFJhbmdlKHN0YXJ0WWVhciwgMCwgbmV3IFNpbXBsZURhdGVSdWxlKG1vbnRoLCBkYXlPZk1vbnRoKSApOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhbiBvYmplY3QgcmVwcmVzZW50aW5nIGEgaG9saWRheQorICAgICAqCisgICAgICogQHBhcmFtIG1vbnRoICAgICAgICAgVGhlIG1vbnRoIGluIHdoaWNoIHRoaXMgaG9saWRheSBvY2N1cnMgKDAtYmFzZWQpCisgICAgICogQHBhcmFtIGRheU9mTW9udGggICAgVGhlIGRhdGUgd2l0aGluIHRoZSBtb250aCAoMS1iYXNlZCkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbmFtZSAgVGhlIG5hbWUgb2YgdGhpcyBob2xpZGF5LiAgVGhpcyBzdHJpbmcgaXMgdXNlZCBhcyBhIGtleQorICAgICAqICAgICAgICAgICAgICB0byBsb29rIHVwIHRoZSBob2xpZGF5J3MgbmFtZSBhIHJlc291cmNlIGJ1bmRsZS4KKyAgICAgKiAgICAgICAgICAgICAgSWYgdGhlIG5hbWUgaXMgbm90IGZvdW5kIGluIHRoZSByZXNvdXJjZSBidW5kbGUsCisgICAgICogICAgICAgICAgICAgIGdldERpc3BsYXlOYW1lIHdpbGwgcmV0dXJuIHRoaXMgc3RyaW5nIGluc3RlYWQuCisgICAgICoKKyAgICAgKiBAc2VlIFNpbXBsZURhdGVSdWxlCisgICAgICogQHNlZSBIb2xpZGF5I2dldERpc3BsYXlOYW1lKGphdmEudXRpbC5Mb2NhbGUpCisgICAgICoKKyAgICAgKi8KKyAgICBwdWJsaWMgU2ltcGxlSG9saWRheShpbnQgbW9udGgsIGludCBkYXlPZk1vbnRoLCBTdHJpbmcgbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnRZZWFyLCBpbnQgZW5kWWVhcikKKyAgICB7CisgICAgICAgIHN1cGVyKG5hbWUsIG51bGwpOworCisgICAgICAgIHNldFJhbmdlKHN0YXJ0WWVhciwgZW5kWWVhciwgbmV3IFNpbXBsZURhdGVSdWxlKG1vbnRoLCBkYXlPZk1vbnRoKSApOworICAgIH0KKworICAgIC8qKiAvLyBUT0RPOiByZW1vdmUKKyAgICAgKiBDb25zdHJ1Y3QgYW4gb2JqZWN0IHJlcHJlc2VudGluZyBhIGhvbGlkYXkKKyAgICAgKgorICAgICAqIEBwYXJhbSBtb250aCBUaGUgbW9udGggaW4gd2hpY2ggdGhpcyBob2xpZGF5IG9jY3VycyAoMC1iYXNlZCkKKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXlPZk1vbnRoIEEgZGF0ZSB3aXRoaW4gdGhlIG1vbnRoICgxLWJhc2VkKS4gIFRoZQorICAgICAqICAgICAgaW50ZXJwcmV0YXRpb24gb2YgdGhpcyBwYXJhbWV0ZXIgZGVwZW5kcyBvbiB0aGUgdmFsdWUgb2YKKyAgICAgKiAgICAgIDxjb2RlPmRheU9mV2VlazwvY29kZT4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF5T2ZXZWVrIFRoZSBkYXkgb2YgdGhlIHdlZWsgb24gd2hpY2ggdGhpcyBob2xpZGF5IG9jY3Vycy4KKyAgICAgKiAgICAgIFRoZSBmb2xsb3dpbmcgdmFsdWVzIGFyZSBsZWdhbDogPHVsPgorICAgICAqICAgICAgPGxpPmRheU9mV2VlayA9PSAwIC0gdXNlIGRheU9mTW9udGggb25seQorICAgICAqICAgICAgPGxpPmRheU9mV2VlayA8IDAgIC0gdXNlIGxhc3QgLWRheU9mV2VlayBiZWZvcmUgb3Igb24gZGF5T2ZNb250aAorICAgICAqICAgICAgPGxpPmRheU9mV2VlayA+IDAgIC0gdXNlIGZpcnN0IGRheU9mV2VlayBhZnRlciBvciBvbiBkYXlPZk1vbnRoCisgICAgICogICAgICA8L3VsPgorICAgICAqCisgICAgICogQHBhcmFtIG5hbWUgIFRoZSBuYW1lIG9mIHRoaXMgaG9saWRheS4gIFRoaXMgc3RyaW5nIGlzIHVzZWQgYXMgYSBrZXkKKyAgICAgKiAgICAgICAgICAgICAgdG8gbG9vayB1cCB0aGUgaG9saWRheSdzIG5hbWUgYSByZXNvdXJjZSBidW5kbGUuCisgICAgICogICAgICAgICAgICAgIElmIHRoZSBuYW1lIGlzIG5vdCBmb3VuZCBpbiB0aGUgcmVzb3VyY2UgYnVuZGxlLAorICAgICAqICAgICAgICAgICAgICBnZXREaXNwbGF5TmFtZSB3aWxsIHJldHVybiB0aGlzIHN0cmluZyBpbnN0ZWFkLgorICAgICAqCisgICAgICogQHNlZSBTaW1wbGVEYXRlUnVsZQorICAgICAqIEBzZWUgSG9saWRheSNnZXREaXNwbGF5TmFtZShqYXZhLnV0aWwuTG9jYWxlKQorICAgICAqCisgICAgICovCisgICAgcHVibGljIFNpbXBsZUhvbGlkYXkoaW50IG1vbnRoLCBpbnQgZGF5T2ZNb250aCwgaW50IGRheU9mV2VlaywgU3RyaW5nIG5hbWUpCisgICAgeworICAgICAgICBzdXBlcihuYW1lLCBuZXcgU2ltcGxlRGF0ZVJ1bGUobW9udGgsIGRheU9mTW9udGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5T2ZXZWVrID4gMCA/IGRheU9mV2VlayA6IC0gZGF5T2ZXZWVrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRheU9mV2VlayA+IDApICk7CisgICAgfQorCisKKyAgICBwdWJsaWMgU2ltcGxlSG9saWRheShpbnQgbW9udGgsIGludCBkYXlPZk1vbnRoLCBpbnQgZGF5T2ZXZWVrLCBTdHJpbmcgbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydFllYXIpCisgICAgeworICAgICAgICBzdXBlcihuYW1lLCBudWxsKTsKKworICAgICAgICBzZXRSYW5nZShzdGFydFllYXIsIDAsIG5ldyBTaW1wbGVEYXRlUnVsZShtb250aCwgZGF5T2ZNb250aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5T2ZXZWVrID4gMCA/IGRheU9mV2VlayA6IC0gZGF5T2ZXZWVrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXlPZldlZWsgPiAwKSApOworICAgIH0KKworCisgICAgcHVibGljIFNpbXBsZUhvbGlkYXkoaW50IG1vbnRoLCBpbnQgZGF5T2ZNb250aCwgaW50IGRheU9mV2VlaywgU3RyaW5nIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnRZZWFyLCBpbnQgZW5kWWVhcikKKyAgICB7CisgICAgICAgIHN1cGVyKG5hbWUsIG51bGwpOworCisgICAgICAgIHNldFJhbmdlKHN0YXJ0WWVhciwgZW5kWWVhciwgbmV3IFNpbXBsZURhdGVSdWxlKG1vbnRoLCBkYXlPZk1vbnRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXlPZldlZWsgPiAwID8gZGF5T2ZXZWVrIDogLSBkYXlPZldlZWssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRheU9mV2VlayA+IDApICk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHNldFJhbmdlKGludCBzdGFydFllYXIsIGludCBlbmRZZWFyLCBEYXRlUnVsZSBydWxlKQorICAgIHsKKyAgICAgICAgUmFuZ2VEYXRlUnVsZSByYW5nZVJ1bGUgPSBuZXcgUmFuZ2VEYXRlUnVsZSgpOworCisgICAgICAgIGlmIChzdGFydFllYXIgIT0gMCkgeworICAgICAgICAgICAgQ2FsZW5kYXIgc3RhcnQgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoc3RhcnRZZWFyLCBDYWxlbmRhci5KQU5VQVJZLCAxKTsKKyAgICAgICAgICAgIHJhbmdlUnVsZS5hZGQoc3RhcnQuZ2V0VGltZSgpLCBydWxlKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJhbmdlUnVsZS5hZGQocnVsZSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVuZFllYXIgIT0gMCkgeworICAgICAgICAgICAgRGF0ZSBlbmQgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoZW5kWWVhciwgQ2FsZW5kYXIuREVDRU1CRVIsIDMxKS5nZXRUaW1lKCk7CisgICAgICAgICAgICByYW5nZVJ1bGUuYWRkKGVuZCwgbnVsbCk7CisgICAgICAgIH0KKworICAgICAgICBzZXRSdWxlKHJhbmdlUnVsZSk7CisgICAgfQorCisgICAgLyogQ29uc3RhbnRzIGZvciBob2xpZGF5cyB0aGF0IGFyZSBjb21tb24gdGhyb3VnaG91dCB0aGUgV2VzdGVybgorICAgICAqIGFuZCBDaHJpc3RpYW4gd29ybGRzLi4uLiAqLworCisgICAgLyoqCisgICAgICogTmV3IFllYXIncyBEYXkgLSBKYW51YXJ5IDFzdAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU2ltcGxlSG9saWRheSBORVdfWUVBUlNfREFZID0KKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuSkFOVUFSWSwgICAgMSwgICJOZXcgWWVhcidzIERheSIpOworCisgICAgLyoqCisgICAgICogRXBpcGhhbnksIEphbnVhcnkgNnRoCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTaW1wbGVIb2xpZGF5IEVQSVBIQU5ZID0KKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuSkFOVUFSWSwgICAgNiwgICJFcGlwaGFueSIpOworCisgICAgLyoqCisgICAgICogTWF5IERheSwgTWF5IDFzdAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU2ltcGxlSG9saWRheSBNQVlfREFZID0KKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuTUFZLCAgICAgICAgMSwgICJNYXkgRGF5Iik7CisKKyAgICAvKioKKyAgICAgKiBBc3N1bXB0aW9uLCBBdWd1c3QgMTV0aAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU2ltcGxlSG9saWRheSBBU1NVTVBUSU9OID0KKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuQVVHVVNULCAgICAxNSwgICJBc3N1bXB0aW9uIik7CisKKyAgICAvKioKKyAgICAgKiBBbGwgU2FpbnRzJyBEYXksIE5vdmVtYmVyIDFzdAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU2ltcGxlSG9saWRheSBBTExfU0FJTlRTX0RBWSA9CisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk5PVkVNQkVSLCAgIDEsICAiQWxsIFNhaW50cycgRGF5Iik7CisKKyAgICAvKioKKyAgICAgKiBBbGwgU291bHMnIERheSwgTm92ZW1iZXIgMXN0CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTaW1wbGVIb2xpZGF5IEFMTF9TT1VMU19EQVkgPQorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5OT1ZFTUJFUiwgICAyLCAgIkFsbCBTb3VscycgRGF5Iik7CisKKyAgICAvKioKKyAgICAgKiBJbW1hY3VsYXRlIENvbmNlcHRpb24sIERlY2VtYmVyIDh0aAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU2ltcGxlSG9saWRheSBJTU1BQ1VMQVRFX0NPTkNFUFRJT04gPQorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5ERUNFTUJFUiwgICA4LCAgIkltbWFjdWxhdGUgQ29uY2VwdGlvbiIpOworCisgICAgLyoqCisgICAgICogQ2hyaXN0bWFzIEV2ZSwgRGVjZW1iZXIgMjR0aAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU2ltcGxlSG9saWRheSBDSFJJU1RNQVNfRVZFID0KKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuREVDRU1CRVIsICAyNCwgICJDaHJpc3RtYXMgRXZlIik7CisKKyAgICAvKioKKyAgICAgKiBDaHJpc3RtYXMsIERlY2VtYmVyIDI1dGgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFNpbXBsZUhvbGlkYXkgQ0hSSVNUTUFTID0KKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuREVDRU1CRVIsICAyNSwgICJDaHJpc3RtYXMiKTsKKworICAgIC8qKgorICAgICAqIEJveGluZyBEYXksIERlY2VtYmVyIDI2dGgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFNpbXBsZUhvbGlkYXkgQk9YSU5HX0RBWSA9CisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkRFQ0VNQkVSLCAgMjYsICAiQm94aW5nIERheSIpOworCisgICAgLyoqCisgICAgICogU2FpbnQgU3RlcGhlbidzIERheSwgRGVjZW1iZXIgMjZ0aAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU2ltcGxlSG9saWRheSBTVF9TVEVQSEVOU19EQVkgPQorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5ERUNFTUJFUiwgIDI2LCAgIlN0LiBTdGVwaGVuJ3MgRGF5Iik7CisKKyAgICAvKioKKyAgICAgKiBOZXcgWWVhcidzIEV2ZSwgRGVjZW1iZXIgMzFzdAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU2ltcGxlSG9saWRheSBORVdfWUVBUlNfRVZFID0KKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuREVDRU1CRVIsICAzMSwgICJOZXcgWWVhcidzIEV2ZSIpOworCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9TaW1wbGVUaW1lWm9uZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvU2ltcGxlVGltZVpvbmUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wMWUzYThjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvU2ltcGxlVGltZVpvbmUuamF2YQpAQCAtMCwwICsxLDE0NzEgQEAKKy8qCisqICAgQ29weXJpZ2h0IChDKSAxOTk2LTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5PYmplY3RPdXRwdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKKworLyoqCisgKiA8Y29kZT5TaW1wbGVUaW1lWm9uZTwvY29kZT4gaXMgYSBjb25jcmV0ZSBzdWJjbGFzcyBvZiA8Y29kZT5UaW1lWm9uZTwvY29kZT4KKyAqIHRoYXQgcmVwcmVzZW50cyBhIHRpbWUgem9uZSBmb3IgdXNlIHdpdGggYSBHcmVnb3JpYW4gY2FsZW5kYXIuIFRoaXMKKyAqIGNsYXNzIGRvZXMgbm90IGhhbmRsZSBoaXN0b3JpY2FsIGNoYW5nZXMuCisgKgorICogPFA+CisgKiBVc2UgYSBuZWdhdGl2ZSB2YWx1ZSBmb3IgPGNvZGU+ZGF5T2ZXZWVrSW5Nb250aDwvY29kZT4gdG8gaW5kaWNhdGUgdGhhdAorICogPGNvZGU+U2ltcGxlVGltZVpvbmU8L2NvZGU+IHNob3VsZCBjb3VudCBmcm9tIHRoZSBlbmQgb2YgdGhlIG1vbnRoIGJhY2t3YXJkcy4KKyAqIEZvciBleGFtcGxlLCBEYXlsaWdodCBTYXZpbmdzIFRpbWUgZW5kcyBhdCB0aGUgbGFzdAorICogKGRheU9mV2Vla0luTW9udGggPSAtMSkgU3VuZGF5IGluIE9jdG9iZXIsIGF0IDIgQU0gaW4gc3RhbmRhcmQgdGltZS4KKyAqCisgKiBAc2VlICAgICAgQ2FsZW5kYXIKKyAqIEBzZWUgICAgICBHcmVnb3JpYW5DYWxlbmRhcgorICogQHNlZSAgICAgIFRpbWVab25lCisgKiBAdmVyc2lvbiAgMS4zOCAwMS8xOS8wMAorICogQGF1dGhvciAgIERhdmlkIEdvbGRzbWl0aCwgTWFyayBEYXZpcywgQ2hlbi1MaWVoIEh1YW5nLCBBbGFuIExpdQorICovCitwdWJsaWMgY2xhc3MgU2ltcGxlVGltZVpvbmUgZXh0ZW5kcyBUaW1lWm9uZSB7CisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIFNpbXBsZVRpbWVab25lIHdpdGggdGhlIGdpdmVuIGJhc2UgdGltZSB6b25lIG9mZnNldCBmcm9tIEdNVAorICAgICAqIGFuZCB0aW1lIHpvbmUgSUQuIFRpbWV6b25lIElEcyBjYW4gYmUgb2J0YWluZWQgZnJvbQorICAgICAqIFRpbWVab25lLmdldEF2YWlsYWJsZUlEcy4gTm9ybWFsbHkgeW91IHNob3VsZCB1c2UgVGltZVpvbmUuZ2V0RGVmYXVsdCB0bworICAgICAqIGNvbnN0cnVjdCBhIFRpbWVab25lLgorICAgICAqCisgICAgICogQHBhcmFtIHJhd09mZnNldCAgVGhlIGdpdmVuIGJhc2UgdGltZSB6b25lIG9mZnNldCB0byBHTVQuCisgICAgICogQHBhcmFtIElEICAgICAgICAgVGhlIHRpbWUgem9uZSBJRCB3aGljaCBpcyBvYnRhaW5lZCBmcm9tCisgICAgICogICAgICAgICAgICAgICAgICAgVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzLgorICAgICAqLworICAgIHB1YmxpYyBTaW1wbGVUaW1lWm9uZShpbnQgcmF3T2Zmc2V0LCBTdHJpbmcgSUQpCisgICAgeworICAgICAgICB0aGlzLnJhd09mZnNldCA9IHJhd09mZnNldDsKKyAgICAgICAgc2V0SUQgKElEKTsKKyAgICAgICAgZHN0U2F2aW5ncyA9IG1pbGxpc1BlckhvdXI7IC8vIEluIGNhc2UgdXNlciBzZXRzIHJ1bGVzIGxhdGVyCisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgU2ltcGxlVGltZVpvbmUgd2l0aCB0aGUgZ2l2ZW4gYmFzZSB0aW1lIHpvbmUgb2Zmc2V0IGZyb20KKyAgICAgKiBHTVQsIHRpbWUgem9uZSBJRCwgdGltZSB0byBzdGFydCBhbmQgZW5kIHRoZSBkYXlsaWdodCB0aW1lLiBUaW1lem9uZSBJRHMKKyAgICAgKiBjYW4gYmUgb2J0YWluZWQgZnJvbSBUaW1lWm9uZS5nZXRBdmFpbGFibGVJRHMuIE5vcm1hbGx5IHlvdSBzaG91bGQgdXNlCisgICAgICogVGltZVpvbmUuZ2V0RGVmYXVsdCB0byBjcmVhdGUgYSBUaW1lWm9uZS4gRm9yIGEgdGltZSB6b25lIHRoYXQgZG9lcyBub3QKKyAgICAgKiB1c2UgZGF5bGlnaHQgc2F2aW5nIHRpbWUsIGRvIG5vdCB1c2UgdGhpcyBjb25zdHJ1Y3RvcjsgaW5zdGVhZCB5b3Ugc2hvdWxkCisgICAgICogdXNlIFNpbXBsZVRpbWVab25lKHJhd09mZnNldCwgSUQpLgorICAgICAqCisgICAgICogQnkgZGVmYXVsdCwgdGhpcyBjb25zdHJ1Y3RvciBzcGVjaWZpZXMgZGF5LW9mLXdlZWstaW4tbW9udGggcnVsZXMuIFRoYXQKKyAgICAgKiBpcywgaWYgdGhlIHN0YXJ0RGF5IGlzIDEsIGFuZCB0aGUgc3RhcnREYXlPZldlZWsgaXMgU1VOREFZLCB0aGVuIHRoaXMKKyAgICAgKiBpbmRpY2F0ZXMgdGhlIGZpcnN0IFN1bmRheSBpbiB0aGUgc3RhcnRNb250aC4gQSBzdGFydERheSBvZiAtMSBsaWtld2lzZQorICAgICAqIGluZGljYXRlcyB0aGUgbGFzdCBTdW5kYXkuIEhvd2V2ZXIsIGJ5IHVzaW5nIG5lZ2F0aXZlIG9yIHplcm8gdmFsdWVzIGZvcgorICAgICAqIGNlcnRhaW4gcGFyYW1ldGVycywgb3RoZXIgdHlwZXMgb2YgcnVsZXMgY2FuIGJlIHNwZWNpZmllZC4KKyAgICAgKgorICAgICAqIERheSBvZiBtb250aC4gVG8gc3BlY2lmeSBhbiBleGFjdCBkYXkgb2YgdGhlIG1vbnRoLCBzdWNoIGFzIE1hcmNoIDEsIHNldAorICAgICAqIHN0YXJ0RGF5T2ZXZWVrIHRvIHplcm8uCisgICAgICoKKyAgICAgKiBEYXkgb2Ygd2VlayBhZnRlciBkYXkgb2YgbW9udGguIFRvIHNwZWNpZnkgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlaworICAgICAqIG9jY3VycmluZyBvbiBvciBhZnRlciBhbiBleGFjdCBkYXkgb2YgdGhlIG1vbnRoLCBtYWtlIHRoZSBkYXkgb2YgdGhlIHdlZWsKKyAgICAgKiBuZWdhdGl2ZS4gRm9yIGV4YW1wbGUsIGlmIHN0YXJ0RGF5IGlzIDUgYW5kIHN0YXJ0RGF5T2ZXZWVrIGlzIC1NT05EQVksCisgICAgICogdGhpcyBpbmRpY2F0ZXMgdGhlIGZpcnN0IE1vbmRheSBvbiBvciBhZnRlciB0aGUgNXRoIGRheSBvZiB0aGUKKyAgICAgKiBzdGFydE1vbnRoLgorICAgICAqCisgICAgICogRGF5IG9mIHdlZWsgYmVmb3JlIGRheSBvZiBtb250aC4gVG8gc3BlY2lmeSB0aGUgbGFzdCBkYXkgb2YgdGhlIHdlZWsKKyAgICAgKiBvY2N1cnJpbmcgb24gb3IgYmVmb3JlIGFuIGV4YWN0IGRheSBvZiB0aGUgbW9udGgsIG1ha2UgdGhlIGRheSBvZiB0aGUKKyAgICAgKiB3ZWVrIGFuZCB0aGUgZGF5IG9mIHRoZSBtb250aCBuZWdhdGl2ZS4gRm9yIGV4YW1wbGUsIGlmIHN0YXJ0RGF5IGlzIC0yMQorICAgICAqIGFuZCBzdGFydERheU9mV2VlayBpcyAtV0VETkVTREFZLCB0aGlzIGluZGljYXRlcyB0aGUgbGFzdCBXZWRuZXNkYXkgb24gb3IKKyAgICAgKiBiZWZvcmUgdGhlIDIxc3Qgb2YgdGhlIHN0YXJ0TW9udGguCisgICAgICoKKyAgICAgKiBUaGUgYWJvdmUgZXhhbXBsZXMgcmVmZXIgdG8gdGhlIHN0YXJ0TW9udGgsIHN0YXJ0RGF5LCBhbmQgc3RhcnREYXlPZldlZWs7CisgICAgICogdGhlIHNhbWUgYXBwbGllcyBmb3IgdGhlIGVuZE1vbnRoLCBlbmREYXksIGFuZCBlbmREYXlPZldlZWsuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcmF3T2Zmc2V0ICAgICAgIFRoZSBnaXZlbiBiYXNlIHRpbWUgem9uZSBvZmZzZXQgdG8gR01ULgorICAgICAqIEBwYXJhbSBJRCAgICAgICAgICAgICAgVGhlIHRpbWUgem9uZSBJRCB3aGljaCBpcyBvYnRhaW5lZCBmcm9tCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICBUaW1lWm9uZS5nZXRBdmFpbGFibGVJRHMuCisgICAgICogQHBhcmFtIHN0YXJ0TW9udGggICAgICBUaGUgZGF5bGlnaHQgc2F2aW5ncyBzdGFydGluZyBtb250aC4gTW9udGggaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIDAtYmFzZWQuIGVnLCAwIGZvciBKYW51YXJ5LgorICAgICAqIEBwYXJhbSBzdGFydERheSAgICAgICAgVGhlIGRheWxpZ2h0IHNhdmluZ3Mgc3RhcnRpbmcKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIGRheS1vZi13ZWVrLWluLW1vbnRoLiBQbGVhc2Ugc2VlIHRoZSBtZW1iZXIKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uIGZvciBhbiBleGFtcGxlLgorICAgICAqIEBwYXJhbSBzdGFydERheU9mV2VlayAgVGhlIGRheWxpZ2h0IHNhdmluZ3Mgc3RhcnRpbmcgZGF5LW9mLXdlZWsuIFBsZWFzZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgc2VlIHRoZSBtZW1iZXIgZGVzY3JpcHRpb24gZm9yIGFuIGV4YW1wbGUuCisgICAgICogQHBhcmFtIHN0YXJ0VGltZSAgICAgICBUaGUgZGF5bGlnaHQgc2F2aW5ncyBzdGFydGluZyB0aW1lIGluIGxvY2FsIHdhbGwKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUsIHdoaWNoIGlzIHN0YW5kYXJkIHRpbWUgaW4gdGhpcyBjYXNlLiBQbGVhc2Ugc2VlIHRoZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgbWVtYmVyIGRlc2NyaXB0aW9uIGZvciBhbiBleGFtcGxlLgorICAgICAqIEBwYXJhbSBlbmRNb250aCAgICAgICAgVGhlIGRheWxpZ2h0IHNhdmluZ3MgZW5kaW5nIG1vbnRoLiBNb250aCBpcworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgMC1iYXNlZC4gZWcsIDAgZm9yIEphbnVhcnkuCisgICAgICogQHBhcmFtIGVuZERheSAgICAgICAgICBUaGUgZGF5bGlnaHQgc2F2aW5ncyBlbmRpbmcgZGF5LW9mLXdlZWstaW4tbW9udGguCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICBQbGVhc2Ugc2VlIHRoZSBtZW1iZXIgZGVzY3JpcHRpb24gZm9yIGFuIGV4YW1wbGUuCisgICAgICogQHBhcmFtIGVuZERheU9mV2VlayAgICBUaGUgZGF5bGlnaHQgc2F2aW5ncyBlbmRpbmcgZGF5LW9mLXdlZWsuIFBsZWFzZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgc2VlIHRoZSBtZW1iZXIgZGVzY3JpcHRpb24gZm9yIGFuIGV4YW1wbGUuCisgICAgICogQHBhcmFtIGVuZFRpbWUgICAgICAgICBUaGUgZGF5bGlnaHQgc2F2aW5ncyBlbmRpbmcgdGltZSBpbiBsb2NhbCB3YWxsIHRpbWUsCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICB3aGljaCBpcyBkYXlsaWdodCB0aW1lIGluIHRoaXMgY2FzZS4gUGxlYXNlIHNlZSB0aGUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIG1lbWJlciBkZXNjcmlwdGlvbiBmb3IgYW4gZXhhbXBsZS4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB0aGUgbW9udGgsIGRheSwgZGF5T2ZXZWVrLCBvciB0aW1lCisgICAgICogcGFyYW1ldGVycyBhcmUgb3V0IG9mIHJhbmdlIGZvciB0aGUgc3RhcnQgb3IgZW5kIHJ1bGUKKyAgICAgKiBAc2luY2UgSkRLMS4xCisgICAgICovCisgICAgcHVibGljIFNpbXBsZVRpbWVab25lKGludCByYXdPZmZzZXQsIFN0cmluZyBJRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0TW9udGgsIGludCBzdGFydERheSwgaW50IHN0YXJ0RGF5T2ZXZWVrLCBpbnQgc3RhcnRUaW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZW5kTW9udGgsIGludCBlbmREYXksIGludCBlbmREYXlPZldlZWssIGludCBlbmRUaW1lKQorICAgIHsKKyAgICAgICAgdGhpcyhyYXdPZmZzZXQsIElELAorICAgICAgICAgICAgIHN0YXJ0TW9udGgsIHN0YXJ0RGF5LCBzdGFydERheU9mV2Vlaywgc3RhcnRUaW1lLCBXQUxMX1RJTUUsCisgICAgICAgICAgICAgZW5kTW9udGgsIGVuZERheSwgZW5kRGF5T2ZXZWVrLCBlbmRUaW1lLCBXQUxMX1RJTUUsCisgICAgICAgICAgICAgbWlsbGlzUGVySG91cik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IuICBUaGlzIGNvbnN0cnVjdG9yIGlzIGlkZW50aWNhbCB0byB0aGUgMTAtYXJndW1lbnQKKyAgICAgKiBjb25zdHJ1Y3RvciwgYnV0IGFsc28gdGFrZXMgYSBkc3RTYXZpbmdzIHBhcmFtZXRlci4KKyAgICAgKiBAcGFyYW0gZHN0U2F2aW5ncyAgIFRoZSBhbW91bnQgb2YgdGltZSBpbiBtcyBzYXZlZCBkdXJpbmcgRFNULgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRoZSBtb250aCwgZGF5LCBkYXlPZldlZWssIG9yIHRpbWUKKyAgICAgKiBwYXJhbWV0ZXJzIGFyZSBvdXQgb2YgcmFuZ2UgZm9yIHRoZSBzdGFydCBvciBlbmQgcnVsZQorICAgICAqIEBzaW5jZSAxLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgU2ltcGxlVGltZVpvbmUoaW50IHJhd09mZnNldCwgU3RyaW5nIElELAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnRNb250aCwgaW50IHN0YXJ0RGF5LCBpbnQgc3RhcnREYXlPZldlZWssIGludCBzdGFydFRpbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBlbmRNb250aCwgaW50IGVuZERheSwgaW50IGVuZERheU9mV2VlaywgaW50IGVuZFRpbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkc3RTYXZpbmdzKQorICAgIHsKKyAgICAgICAgdGhpcyhyYXdPZmZzZXQsIElELAorICAgICAgICAgICAgIHN0YXJ0TW9udGgsIHN0YXJ0RGF5LCBzdGFydERheU9mV2Vlaywgc3RhcnRUaW1lLCBXQUxMX1RJTUUsCisgICAgICAgICAgICAgZW5kTW9udGgsIGVuZERheSwgZW5kRGF5T2ZXZWVrLCBlbmRUaW1lLCBXQUxMX1RJTUUsCisgICAgICAgICAgICAgZHN0U2F2aW5ncyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IuCisgICAgICovCisgICAgU2ltcGxlVGltZVpvbmUoaW50IHJhd09mZnNldCwgU3RyaW5nIElELAorICAgICAgICAgICAgICAgICAgIGludCBzdGFydE1vbnRoLCBpbnQgc3RhcnREYXksIGludCBzdGFydERheU9mV2VlaywKKyAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnRUaW1lLCBpbnQgc3RhcnRUaW1lTW9kZSwKKyAgICAgICAgICAgICAgICAgICBpbnQgZW5kTW9udGgsIGludCBlbmREYXksIGludCBlbmREYXlPZldlZWssCisgICAgICAgICAgICAgICAgICAgaW50IGVuZFRpbWUsIGludCBlbmRUaW1lTW9kZSwKKyAgICAgICAgICAgICAgICAgICBpbnQgZHN0U2F2aW5ncykgeworICAgICAgICBzZXRJRChJRCk7CisgICAgICAgIHRoaXMucmF3T2Zmc2V0ICAgICAgPSByYXdPZmZzZXQ7CisgICAgICAgIHRoaXMuc3RhcnRNb250aCAgICAgPSBzdGFydE1vbnRoOworICAgICAgICB0aGlzLnN0YXJ0RGF5ICAgICAgID0gc3RhcnREYXk7CisgICAgICAgIHRoaXMuc3RhcnREYXlPZldlZWsgPSBzdGFydERheU9mV2VlazsKKyAgICAgICAgdGhpcy5zdGFydFRpbWUgICAgICA9IHN0YXJ0VGltZTsKKyAgICAgICAgdGhpcy5zdGFydFRpbWVNb2RlICA9IHN0YXJ0VGltZU1vZGU7CisgICAgICAgIHRoaXMuZW5kTW9udGggICAgICAgPSBlbmRNb250aDsKKyAgICAgICAgdGhpcy5lbmREYXkgICAgICAgICA9IGVuZERheTsKKyAgICAgICAgdGhpcy5lbmREYXlPZldlZWsgICA9IGVuZERheU9mV2VlazsKKyAgICAgICAgdGhpcy5lbmRUaW1lICAgICAgICA9IGVuZFRpbWU7CisgICAgICAgIHRoaXMuZW5kVGltZU1vZGUgICAgPSBlbmRUaW1lTW9kZTsKKyAgICAgICAgdGhpcy5kc3RTYXZpbmdzICAgICA9IGRzdFNhdmluZ3M7CisgICAgICAgIC8vIHRoaXMudXNlRGF5bGlnaHQgICAgPSB0cnVlOyAvLyBTZXQgYnkgZGVjb2RlUnVsZXMKKyAgICAgICAgZGVjb2RlUnVsZXMoKTsKKyAgICAgICAgaWYgKGRzdFNhdmluZ3MgPD0gMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBEU1Qgc2F2aW5ncyIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IgZm9yIFRpbWVab25lRGF0YS4gIFRha2VzIGFzIGlucHV0IGFuIGFycmF5IGFuZCBhbiBpbmRleAorICAgICAqIGludG8gdGhlIGFycmF5LiAgVGhlIGFycmF5IGZvcm1hdCBpcyB0aGF0IG9mIFRpbWVab25lRGF0YS5EQVRBLgorICAgICAqLworICAgIFNpbXBsZVRpbWVab25lKFN0cmluZyBJRCwgaW50W10gZGF0YSwgaW50IGkpIHsKKyAgICAgICAgc2V0SUQoSUQpOworICAgICAgICByYXdPZmZzZXQgPSBkYXRhW2krMV0qMTAwMDsKKyAgICAgICAgaWYgKGRhdGFbaV0gPT0gMCkgeworICAgICAgICAgICAgZHN0U2F2aW5ncyA9IG1pbGxpc1BlckhvdXI7IC8vIEluIGNhc2UgdXNlciBzZXRzIHJ1bGVzIGxhdGVyCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzdGFydE1vbnRoICAgICA9IGRhdGFbaSsyXTsKKyAgICAgICAgICAgIHN0YXJ0RGF5ICAgICAgID0gZGF0YVtpKzNdOworICAgICAgICAgICAgc3RhcnREYXlPZldlZWsgPSBkYXRhW2krNF07CisgICAgICAgICAgICBzdGFydFRpbWUgICAgICA9IGRhdGFbaSs1XSo2MDAwMDsKKyAgICAgICAgICAgIHN0YXJ0VGltZU1vZGUgID0gZGF0YVtpKzZdOworICAgICAgICAgICAgZW5kTW9udGggICAgICAgPSBkYXRhW2krN107CisgICAgICAgICAgICBlbmREYXkgICAgICAgICA9IGRhdGFbaSs4XTsKKyAgICAgICAgICAgIGVuZERheU9mV2VlayAgID0gZGF0YVtpKzldOworICAgICAgICAgICAgZW5kVGltZSAgICAgICAgPSBkYXRhW2krMTBdKjYwMDAwOworICAgICAgICAgICAgZW5kVGltZU1vZGUgICAgPSBkYXRhW2krMTFdOworICAgICAgICAgICAgZHN0U2F2aW5ncyAgICAgPSBkYXRhW2krMTJdKjYwMDAwOworICAgICAgICAgICAgZGVjb2RlUnVsZXMoKTsKKyAgICAgICAgICAgIGlmIChkc3RTYXZpbmdzIDw9IDApIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIERTVCBzYXZpbmdzIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBkYXlsaWdodCBzYXZpbmdzIHN0YXJ0aW5nIHllYXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0geWVhciAgVGhlIGRheWxpZ2h0IHNhdmluZ3Mgc3RhcnRpbmcgeWVhci4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTdGFydFllYXIoaW50IHllYXIpCisgICAgeworICAgICAgICBzdGFydFllYXIgPSB5ZWFyOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGRheWxpZ2h0IHNhdmluZ3Mgc3RhcnRpbmcgcnVsZS4gRm9yIGV4YW1wbGUsIERheWxpZ2h0IFNhdmluZ3MKKyAgICAgKiBUaW1lIHN0YXJ0cyBhdCB0aGUgZmlyc3QgU3VuZGF5IGluIEFwcmlsLCBhdCAyIEFNIGluIHN0YW5kYXJkIHRpbWUuCisgICAgICogVGhlcmVmb3JlLCB5b3UgY2FuIHNldCB0aGUgc3RhcnQgcnVsZSBieSBjYWxsaW5nOgorICAgICAqIHNldFN0YXJ0UnVsZShUaW1lRmllbGRzLkFQUklMLCAxLCBUaW1lRmllbGRzLlNVTkRBWSwgMio2MCo2MCoxMDAwKTsKKyAgICAgKgorICAgICAqIEBwYXJhbSBtb250aCAgICAgICAgICAgICBUaGUgZGF5bGlnaHQgc2F2aW5ncyBzdGFydGluZyBtb250aC4gTW9udGggaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgMC1iYXNlZC4gZWcsIDAgZm9yIEphbnVhcnkuCisgICAgICogQHBhcmFtIGRheU9mV2Vla0luTW9udGggIFRoZSBkYXlsaWdodCBzYXZpbmdzIHN0YXJ0aW5nCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIGRheS1vZi13ZWVrLWluLW1vbnRoLiBQbGVhc2Ugc2VlIHRoZSBtZW1iZXIKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gZm9yIGFuIGV4YW1wbGUuCisgICAgICogQHBhcmFtIGRheU9mV2VlayAgICAgICAgIFRoZSBkYXlsaWdodCBzYXZpbmdzIHN0YXJ0aW5nIGRheS1vZi13ZWVrLgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICBQbGVhc2Ugc2VlIHRoZSBtZW1iZXIgZGVzY3JpcHRpb24gZm9yIGFuCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIGV4YW1wbGUuCisgICAgICogQHBhcmFtIHRpbWUgICAgICAgICAgICAgIFRoZSBkYXlsaWdodCBzYXZpbmdzIHN0YXJ0aW5nIHRpbWUgaW4gbG9jYWwgd2FsbAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lLCB3aGljaCBpcyBzdGFuZGFyZCB0aW1lIGluIHRoaXMgY2FzZS4gUGxlYXNlIHNlZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgbWVtYmVyIGRlc2NyaXB0aW9uIGZvciBhbiBleGFtcGxlLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRoZSBtb250aCwgZGF5T2ZXZWVrSW5Nb250aCwKKyAgICAgKiBkYXlPZldlZWssIG9yIHRpbWUgcGFyYW1ldGVycyBhcmUgb3V0IG9mIHJhbmdlCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0U3RhcnRSdWxlKGludCBtb250aCwgaW50IGRheU9mV2Vla0luTW9udGgsIGludCBkYXlPZldlZWssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0aW1lKQorICAgIHsKKyAgICAgICAgc3RhcnRNb250aCA9IG1vbnRoOworICAgICAgICBzdGFydERheSA9IGRheU9mV2Vla0luTW9udGg7CisgICAgICAgIHN0YXJ0RGF5T2ZXZWVrID0gZGF5T2ZXZWVrOworICAgICAgICBzdGFydFRpbWUgPSB0aW1lOworICAgICAgICBzdGFydFRpbWVNb2RlID0gV0FMTF9USU1FOworICAgICAgICAvLyB1c2VEYXlsaWdodCA9IHRydWU7IC8vIFNldCBieSBkZWNvZGVSdWxlcworICAgICAgICBkZWNvZGVTdGFydFJ1bGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBEU1Qgc3RhcnQgcnVsZSB0byBhIGZpeGVkIGRhdGUgd2l0aGluIGEgbW9udGguCisgICAgICoKKyAgICAgKiBAcGFyYW0gbW9udGggICAgICAgICBUaGUgbW9udGggaW4gd2hpY2ggdGhpcyBydWxlIG9jY3VycyAoMC1iYXNlZCkuCisgICAgICogQHBhcmFtIGRheU9mTW9udGggICAgVGhlIGRhdGUgaW4gdGhhdCBtb250aCAoMS1iYXNlZCkuCisgICAgICogQHBhcmFtIHRpbWUgICAgICAgICAgVGhlIHRpbWUgb2YgdGhhdCBkYXkgKG51bWJlciBvZiBtaWxsaXMgYWZ0ZXIgbWlkbmlnaHQpCisgICAgICogICAgICAgICAgICAgICAgICAgICAgd2hlbiBEU1QgdGFrZXMgZWZmZWN0IGluIGxvY2FsIHdhbGwgdGltZSwgd2hpY2ggaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICBzdGFuZGFyZCB0aW1lIGluIHRoaXMgY2FzZS4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB0aGUgbW9udGgsCisgICAgICogZGF5T2ZNb250aCwgb3IgdGltZSBwYXJhbWV0ZXJzIGFyZSBvdXQgb2YgcmFuZ2UKKyAgICAgKiBAc2luY2UgMS4yCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0U3RhcnRSdWxlKGludCBtb250aCwgaW50IGRheU9mTW9udGgsIGludCB0aW1lKSB7CisgICAgICAgIHNldFN0YXJ0UnVsZShtb250aCwgZGF5T2ZNb250aCwgMCwgdGltZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgRFNUIHN0YXJ0IHJ1bGUgdG8gYSB3ZWVrZGF5IGJlZm9yZSBvciBhZnRlciBhIGdpdmUgZGF0ZSB3aXRoaW4KKyAgICAgKiBhIG1vbnRoLCBlLmcuLCB0aGUgZmlyc3QgTW9uZGF5IG9uIG9yIGFmdGVyIHRoZSA4dGguCisgICAgICoKKyAgICAgKiBAcGFyYW0gbW9udGggICAgICAgICBUaGUgbW9udGggaW4gd2hpY2ggdGhpcyBydWxlIG9jY3VycyAoMC1iYXNlZCkuCisgICAgICogQHBhcmFtIGRheU9mTW9udGggICAgQSBkYXRlIHdpdGhpbiB0aGF0IG1vbnRoICgxLWJhc2VkKS4KKyAgICAgKiBAcGFyYW0gZGF5T2ZXZWVrICAgICBUaGUgZGF5IG9mIHRoZSB3ZWVrIG9uIHdoaWNoIHRoaXMgcnVsZSBvY2N1cnMuCisgICAgICogQHBhcmFtIHRpbWUgICAgICAgICAgVGhlIHRpbWUgb2YgdGhhdCBkYXkgKG51bWJlciBvZiBtaWxsaXMgYWZ0ZXIgbWlkbmlnaHQpCisgICAgICogICAgICAgICAgICAgICAgICAgICAgd2hlbiBEU1QgdGFrZXMgZWZmZWN0IGluIGxvY2FsIHdhbGwgdGltZSwgd2hpY2ggaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICBzdGFuZGFyZCB0aW1lIGluIHRoaXMgY2FzZS4KKyAgICAgKiBAcGFyYW0gYWZ0ZXIgICAgICAgICBJZiB0cnVlLCB0aGlzIHJ1bGUgc2VsZWN0cyB0aGUgZmlyc3QgZGF5T2ZXZWVrIG9uCisgICAgICogICAgICAgICAgICAgICAgICAgICAgb3IgYWZ0ZXIgZGF5T2ZNb250aC4gIElmIGZhbHNlLCB0aGlzIHJ1bGUgc2VsZWN0cworICAgICAqICAgICAgICAgICAgICAgICAgICAgIHRoZSBsYXN0IGRheU9mV2VlayBvbiBvciBiZWZvcmUgZGF5T2ZNb250aC4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB0aGUgbW9udGgsIGRheU9mTW9udGgsCisgICAgICogZGF5T2ZXZWVrLCBvciB0aW1lIHBhcmFtZXRlcnMgYXJlIG91dCBvZiByYW5nZQorICAgICAqIEBzaW5jZSAxLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTdGFydFJ1bGUoaW50IG1vbnRoLCBpbnQgZGF5T2ZNb250aCwgaW50IGRheU9mV2VlaywgaW50IHRpbWUsIGJvb2xlYW4gYWZ0ZXIpCisgICAgeworICAgICAgICBpZiAoYWZ0ZXIpCisgICAgICAgICAgICBzZXRTdGFydFJ1bGUobW9udGgsIGRheU9mTW9udGgsIC1kYXlPZldlZWssIHRpbWUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBzZXRTdGFydFJ1bGUobW9udGgsIC1kYXlPZk1vbnRoLCAtZGF5T2ZXZWVrLCB0aW1lKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBkYXlsaWdodCBzYXZpbmdzIGVuZGluZyBydWxlLiBGb3IgZXhhbXBsZSwgRGF5bGlnaHQgU2F2aW5ncyBUaW1lCisgICAgICogZW5kcyBhdCB0aGUgbGFzdCAoLTEpIFN1bmRheSBpbiBPY3RvYmVyLCBhdCAyIEFNIGluIHN0YW5kYXJkIHRpbWUuCisgICAgICogVGhlcmVmb3JlLCB5b3UgY2FuIHNldCB0aGUgZW5kIHJ1bGUgYnkgY2FsbGluZzoKKyAgICAgKiBzZXRFbmRSdWxlKFRpbWVGaWVsZHMuT0NUT0JFUiwgLTEsIFRpbWVGaWVsZHMuU1VOREFZLCAyKjYwKjYwKjEwMDApOworICAgICAqCisgICAgICogQHBhcmFtIG1vbnRoICAgICAgICAgICAgIFRoZSBkYXlsaWdodCBzYXZpbmdzIGVuZGluZyBtb250aC4gTW9udGggaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgMC1iYXNlZC4gZWcsIDAgZm9yIEphbnVhcnkuCisgICAgICogQHBhcmFtIGRheU9mV2Vla0luTW9udGggIFRoZSBkYXlsaWdodCBzYXZpbmdzIGVuZGluZworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICBkYXktb2Ytd2Vlay1pbi1tb250aC4gUGxlYXNlIHNlZSB0aGUgbWVtYmVyCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uIGZvciBhbiBleGFtcGxlLgorICAgICAqIEBwYXJhbSBkYXlPZldlZWsgICAgICAgICBUaGUgZGF5bGlnaHQgc2F2aW5ncyBlbmRpbmcgZGF5LW9mLXdlZWsuIFBsZWFzZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICBzZWUgdGhlIG1lbWJlciBkZXNjcmlwdGlvbiBmb3IgYW4gZXhhbXBsZS4KKyAgICAgKiBAcGFyYW0gdGltZSAgICAgICAgICAgICAgVGhlIGRheWxpZ2h0IHNhdmluZ3MgZW5kaW5nIHRpbWUgaW4gbG9jYWwgd2FsbCB0aW1lLAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICB3aGljaCBpcyBkYXlsaWdodCB0aW1lIGluIHRoaXMgY2FzZS4gUGxlYXNlIHNlZSB0aGUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgbWVtYmVyIGRlc2NyaXB0aW9uIGZvciBhbiBleGFtcGxlLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRoZSBtb250aCwgZGF5T2ZXZWVrSW5Nb250aCwKKyAgICAgKiBkYXlPZldlZWssIG9yIHRpbWUgcGFyYW1ldGVycyBhcmUgb3V0IG9mIHJhbmdlCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RW5kUnVsZShpbnQgbW9udGgsIGludCBkYXlPZldlZWtJbk1vbnRoLCBpbnQgZGF5T2ZXZWVrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRpbWUpCisgICAgeworICAgICAgICBlbmRNb250aCA9IG1vbnRoOworICAgICAgICBlbmREYXkgPSBkYXlPZldlZWtJbk1vbnRoOworICAgICAgICBlbmREYXlPZldlZWsgPSBkYXlPZldlZWs7CisgICAgICAgIGVuZFRpbWUgPSB0aW1lOworICAgICAgICBlbmRUaW1lTW9kZSA9IFdBTExfVElNRTsKKyAgICAgICAgLy8gdXNlRGF5bGlnaHQgPSB0cnVlOyAvLyBTZXQgYnkgZGVjb2RlUnVsZXMKKyAgICAgICAgZGVjb2RlRW5kUnVsZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIERTVCBlbmQgcnVsZSB0byBhIGZpeGVkIGRhdGUgd2l0aGluIGEgbW9udGguCisgICAgICoKKyAgICAgKiBAcGFyYW0gbW9udGggICAgICAgICBUaGUgbW9udGggaW4gd2hpY2ggdGhpcyBydWxlIG9jY3VycyAoMC1iYXNlZCkuCisgICAgICogQHBhcmFtIGRheU9mTW9udGggICAgVGhlIGRhdGUgaW4gdGhhdCBtb250aCAoMS1iYXNlZCkuCisgICAgICogQHBhcmFtIHRpbWUgICAgICAgICAgVGhlIHRpbWUgb2YgdGhhdCBkYXkgKG51bWJlciBvZiBtaWxsaXMgYWZ0ZXIgbWlkbmlnaHQpCisgICAgICogICAgICAgICAgICAgICAgICAgICAgd2hlbiBEU1QgZW5kcyBpbiBsb2NhbCB3YWxsIHRpbWUsIHdoaWNoIGlzIGRheWxpZ2h0CisgICAgICogICAgICAgICAgICAgICAgICAgICAgdGltZSBpbiB0aGlzIGNhc2UuCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhlIG1vbnRoLAorICAgICAqIGRheU9mTW9udGgsIG9yIHRpbWUgcGFyYW1ldGVycyBhcmUgb3V0IG9mIHJhbmdlCisgICAgICogQHNpbmNlIDEuMgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEVuZFJ1bGUoaW50IG1vbnRoLCBpbnQgZGF5T2ZNb250aCwgaW50IHRpbWUpCisgICAgeworICAgICAgICBzZXRFbmRSdWxlKG1vbnRoLCBkYXlPZk1vbnRoLCAwLCB0aW1lKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBEU1QgZW5kIHJ1bGUgdG8gYSB3ZWVrZGF5IGJlZm9yZSBvciBhZnRlciBhIGdpdmUgZGF0ZSB3aXRoaW4KKyAgICAgKiBhIG1vbnRoLCBlLmcuLCB0aGUgZmlyc3QgTW9uZGF5IG9uIG9yIGFmdGVyIHRoZSA4dGguCisgICAgICoKKyAgICAgKiBAcGFyYW0gbW9udGggICAgICAgICBUaGUgbW9udGggaW4gd2hpY2ggdGhpcyBydWxlIG9jY3VycyAoMC1iYXNlZCkuCisgICAgICogQHBhcmFtIGRheU9mTW9udGggICAgQSBkYXRlIHdpdGhpbiB0aGF0IG1vbnRoICgxLWJhc2VkKS4KKyAgICAgKiBAcGFyYW0gZGF5T2ZXZWVrICAgICBUaGUgZGF5IG9mIHRoZSB3ZWVrIG9uIHdoaWNoIHRoaXMgcnVsZSBvY2N1cnMuCisgICAgICogQHBhcmFtIHRpbWUgICAgICAgICAgVGhlIHRpbWUgb2YgdGhhdCBkYXkgKG51bWJlciBvZiBtaWxsaXMgYWZ0ZXIgbWlkbmlnaHQpCisgICAgICogICAgICAgICAgICAgICAgICAgICAgd2hlbiBEU1QgZW5kcyBpbiBsb2NhbCB3YWxsIHRpbWUsIHdoaWNoIGlzIGRheWxpZ2h0CisgICAgICogICAgICAgICAgICAgICAgICAgICAgdGltZSBpbiB0aGlzIGNhc2UuCisgICAgICogQHBhcmFtIGFmdGVyICAgICAgICAgSWYgdHJ1ZSwgdGhpcyBydWxlIHNlbGVjdHMgdGhlIGZpcnN0IGRheU9mV2VlayBvbgorICAgICAqICAgICAgICAgICAgICAgICAgICAgIG9yIGFmdGVyIGRheU9mTW9udGguICBJZiBmYWxzZSwgdGhpcyBydWxlIHNlbGVjdHMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICB0aGUgbGFzdCBkYXlPZldlZWsgb24gb3IgYmVmb3JlIGRheU9mTW9udGguCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhlIG1vbnRoLCBkYXlPZk1vbnRoLAorICAgICAqIGRheU9mV2Vlaywgb3IgdGltZSBwYXJhbWV0ZXJzIGFyZSBvdXQgb2YgcmFuZ2UKKyAgICAgKiBAc2luY2UgMS4yCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RW5kUnVsZShpbnQgbW9udGgsIGludCBkYXlPZk1vbnRoLCBpbnQgZGF5T2ZXZWVrLCBpbnQgdGltZSwgYm9vbGVhbiBhZnRlcikKKyAgICB7CisgICAgICAgIGlmIChhZnRlcikKKyAgICAgICAgICAgIHNldEVuZFJ1bGUobW9udGgsIGRheU9mTW9udGgsIC1kYXlPZldlZWssIHRpbWUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBzZXRFbmRSdWxlKG1vbnRoLCAtZGF5T2ZNb250aCwgLWRheU9mV2VlaywgdGltZSk7CisgICAgfQorCisgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBkaWZmZXJlbmNlIGluIG1pbGxpc2Vjb25kcyBiZXR3ZWVuIGxvY2FsIHRpbWUgYW5kCisgICAgICogVVRDLCB0YWtpbmcgaW50byBhY2NvdW50IGJvdGggdGhlIHJhdyBvZmZzZXQgYW5kIHRoZSBlZmZlY3Qgb2YKKyAgICAgKiBkYXlsaWdodCBzYXZpbmdzLCBmb3IgdGhlIHNwZWNpZmllZCBkYXRlIGFuZCB0aW1lLiAgVGhpcyBtZXRob2QKKyAgICAgKiBhc3N1bWVzIHRoYXQgdGhlIHN0YXJ0IGFuZCBlbmQgbW9udGggYXJlIGRpc3RpbmN0LiAgSXQgYWxzbworICAgICAqIHVzZXMgYSBkZWZhdWx0IHtAbGluayBHcmVnb3JpYW5DYWxlbmRhcn0gb2JqZWN0IGFzIGl0cworICAgICAqIHVuZGVybHlpbmcgY2FsZW5kYXIsIHN1Y2ggYXMgZm9yIGRldGVybWluaW5nIGxlYXAgeWVhcnMuICBEbworICAgICAqIG5vdCB1c2UgdGhlIHJlc3VsdCBvZiB0aGlzIG1ldGhvZCB3aXRoIGEgY2FsZW5kYXIgb3RoZXIgdGhhbiBhCisgICAgICogZGVmYXVsdCA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4uCisgICAgICoKKyAgICAgKiA8cD48ZW0+Tm90ZTogIEluIGdlbmVyYWwsIGNsaWVudHMgc2hvdWxkIHVzZQorICAgICAqIDxjb2RlPkNhbGVuZGFyLmdldChaT05FX09GRlNFVCkgKyBDYWxlbmRhci5nZXQoRFNUX09GRlNFVCk8L2NvZGU+CisgICAgICogaW5zdGVhZCBvZiBjYWxsaW5nIHRoaXMgbWV0aG9kLjwvZW0+CisgICAgICoKKyAgICAgKiBAcGFyYW0gZXJhICAgICAgIFRoZSBlcmEgb2YgdGhlIGdpdmVuIGRhdGUuCisgICAgICogQHBhcmFtIHllYXIgICAgICBUaGUgeWVhciBpbiB0aGUgZ2l2ZW4gZGF0ZS4KKyAgICAgKiBAcGFyYW0gbW9udGggICAgIFRoZSBtb250aCBpbiB0aGUgZ2l2ZW4gZGF0ZS4gTW9udGggaXMgMC1iYXNlZC4gZS5nLiwKKyAgICAgKiAgICAgICAgICAgICAgICAgIDAgZm9yIEphbnVhcnkuCisgICAgICogQHBhcmFtIGRheSAgICAgICBUaGUgZGF5LWluLW1vbnRoIG9mIHRoZSBnaXZlbiBkYXRlLgorICAgICAqIEBwYXJhbSBkYXlPZldlZWsgVGhlIGRheS1vZi13ZWVrIG9mIHRoZSBnaXZlbiBkYXRlLgorICAgICAqIEBwYXJhbSBtaWxsaXMgICAgVGhlIG1pbGxpc2Vjb25kcyBpbiBkYXkgaW4gPGVtPnN0YW5kYXJkPC9lbT4gbG9jYWwgdGltZS4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgIFRoZSBtaWxsaXNlY29uZHMgdG8gYWRkIHRvIFVUQyB0byBnZXQgbG9jYWwgdGltZS4KKyAgICAgKiBAZXhjZXB0aW9uICAgICAgIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB0aGUgZXJhLCBtb250aCwgZGF5LAorICAgICAqICAgICAgICAgICAgICAgICAgZGF5T2ZXZWVrLCBvciBtaWxsaXMgcGFyYW1ldGVycyBhcmUgb3V0IG9mIHJhbmdlCisgICAgICovCisgICAgcHVibGljIGludCBnZXRPZmZzZXQoaW50IGVyYSwgaW50IHllYXIsIGludCBtb250aCwgaW50IGRheSwgaW50IGRheU9mV2VlaywKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWlsbGlzKQorICAgIHsKKyAgICAgICAgLy8gQ2hlY2sgdGhlIG1vbnRoIGJlZm9yZSBpbmRleGluZyBpbnRvIHN0YXRpY01vbnRoTGVuZ3RoLiBUaGlzCisJLy8gZHVwbGljYXRlcyB0aGUgdGVzdCB0aGF0IG9jY3VycyBpbiB0aGUgNy1hcmd1bWVudCBnZXRPZmZzZXQoKSwKKwkvLyBob3dldmVyLCB0aGlzIGlzIHVuYXZvaWRhYmxlLiBXZSBkb24ndCBtaW5kIGJlY2F1c2UgdGhpcyBtZXRob2QsIGluCisJLy8gZmFjdCwgc2hvdWxkIG5vdCBiZSBjYWxsZWQ7IGludGVybmFsIGNvZGUgc2hvdWxkIGFsd2F5cyBjYWxsIHRoZQorCS8vIDctYXJndW1lbnQgZ2V0T2Zmc2V0KCksIGFuZCBvdXRzaWRlIGNvZGUgc2hvdWxkIHVzZSBDYWxlbmRhci5nZXQoaW50CisJLy8gZmllbGQpIHdpdGggZmllbGRzIFpPTkVfT0ZGU0VUIGFuZCBEU1RfT0ZGU0VULiBXZSBjYW4ndCBnZXQgcmlkIG9mCisJLy8gdGhpcyBtZXRob2QgYmVjYXVzZSBpdCdzIHB1YmxpYyBBUEkuIC0gbGl1IDgvMTAvOTgKKyAgICAgICAgaWYgKG1vbnRoIDwgQ2FsZW5kYXIuSkFOVUFSWQorICAgICAgICAgICAgfHwgbW9udGggPiBDYWxlbmRhci5ERUNFTUJFUikgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBtb250aCAiICsgbW9udGgpOworICAgICAgICB9CisJaW50IG1vbnRoTGVuZ3RoLCBwcmV2TW9udGhMZW5ndGg7CisJaWYgKChlcmEgPT0gR3JlZ29yaWFuQ2FsZW5kYXIuQUQpICYmIGludGVybmFsQ2FsLmlzTGVhcFllYXIoeWVhcikpIHsKKwkgICAgbW9udGhMZW5ndGggPSBzdGF0aWNMZWFwTW9udGhMZW5ndGhbbW9udGhdOworCSAgICBwcmV2TW9udGhMZW5ndGggPSAobW9udGggPiAxKSA/IHN0YXRpY0xlYXBNb250aExlbmd0aFttb250aCAtIDFdIDogMzE7CisJfSBlbHNlIHsKKwkgICAgbW9udGhMZW5ndGggPSBzdGF0aWNNb250aExlbmd0aFttb250aF07CisJICAgIHByZXZNb250aExlbmd0aCA9IChtb250aCA+IDEpID8gc3RhdGljTW9udGhMZW5ndGhbbW9udGggLSAxXSA6IDMxOworCX0KKworICAgICAgICByZXR1cm4gZ2V0T2Zmc2V0KGVyYSwgeWVhciwgbW9udGgsIGRheSwgZGF5T2ZXZWVrLCBtaWxsaXMsCisJCQkgbW9udGhMZW5ndGgsIHByZXZNb250aExlbmd0aCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyBvZmZzZXQsIGZvciBjdXJyZW50IGRhdGUsIG1vZGlmaWVkIGluIGNhc2Ugb2YKKyAgICAgKiBkYXlsaWdodCBzYXZpbmdzLiBUaGlzIGlzIHRoZSBvZmZzZXQgdG8gYWRkIDxlbT50bzwvZW0+IFVUQyB0byBnZXQgbG9jYWwgdGltZS4KKyAgICAgKiBHZXRzIHRoZSB0aW1lIHpvbmUgb2Zmc2V0LCBmb3IgY3VycmVudCBkYXRlLCBtb2RpZmllZCBpbiBjYXNlIG9mIGRheWxpZ2h0CisgICAgICogc2F2aW5ncy4gVGhpcyBpcyB0aGUgb2Zmc2V0IHRvIGFkZCAqdG8qIFVUQyB0byBnZXQgbG9jYWwgdGltZS4gQXNzdW1lCisgICAgICogdGhhdCB0aGUgc3RhcnQgYW5kIGVuZCBtb250aCBhcmUgZGlzdGluY3QuCisgICAgICogQHBhcmFtIGVyYSAgICAgICAgICAgVGhlIGVyYSBvZiB0aGUgZ2l2ZW4gZGF0ZS4KKyAgICAgKiBAcGFyYW0geWVhciAgICAgICAgICBUaGUgeWVhciBpbiB0aGUgZ2l2ZW4gZGF0ZS4KKyAgICAgKiBAcGFyYW0gbW9udGggICAgICAgICBUaGUgbW9udGggaW4gdGhlIGdpdmVuIGRhdGUuIE1vbnRoIGlzIDAtYmFzZWQuIGUuZy4sCisgICAgICogICAgICAgICAgICAgICAgICAgICAgMCBmb3IgSmFudWFyeS4KKyAgICAgKiBAcGFyYW0gZGF5ICAgICAgICAgICBUaGUgZGF5LWluLW1vbnRoIG9mIHRoZSBnaXZlbiBkYXRlLgorICAgICAqIEBwYXJhbSBkYXlPZldlZWsgICAgIFRoZSBkYXktb2Ytd2VlayBvZiB0aGUgZ2l2ZW4gZGF0ZS4KKyAgICAgKiBAcGFyYW0gbWlsbGlzICAgICAgICBUaGUgbWlsbGlzZWNvbmRzIGluIGRheSBpbiA8ZW0+c3RhbmRhcmQ8L2VtPiBsb2NhbCB0aW1lLgorICAgICAqIEBwYXJhbSBtb250aExlbmd0aCAgIFRoZSBsZW5ndGggb2YgdGhlIGdpdmVuIG1vbnRoIGluIGRheXMuCisgICAgICogQHBhcmFtIHByZXZNb250aExlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBwcmV2aW91cyBtb250aCBpbiBkYXlzLgorICAgICAqIEByZXR1cm4gICAgICAgICAgICAgIFRoZSBvZmZzZXQgdG8gYWRkICp0byogR01UIHRvIGdldCBsb2NhbCB0aW1lLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRoZSBlcmEsIG1vbnRoLCBkYXksCisgICAgICogZGF5T2ZXZWVrLCBtaWxsaXMsIG9yIG1vbnRoTGVuZ3RoIHBhcmFtZXRlcnMgYXJlIG91dCBvZiByYW5nZQorICAgICAqLworICAgIGludCBnZXRPZmZzZXQoaW50IGVyYSwgaW50IHllYXIsIGludCBtb250aCwgaW50IGRheSwgaW50IGRheU9mV2VlaywKKyAgICAgICAgICAgICAgICAgIGludCBtaWxsaXMsIGludCBtb250aExlbmd0aCwgaW50IHByZXZNb250aExlbmd0aCkgeworICAgICAgICBpZiAoZmFsc2UpIHsKKyAgICAgICAgICAgIC8qIFVzZSB0aGlzIHBhcmFtZXRlciBjaGVja2luZyBjb2RlIGZvciBub3JtYWwgb3BlcmF0aW9uLiAgT25seSBvbmUKKyAgICAgICAgICAgICAqIG9mIHRoZXNlIHR3byBibG9ja3Mgc2hvdWxkIGFjdHVhbGx5IGdldCBjb21waWxlZCBpbnRvIHRoZSBjbGFzcworICAgICAgICAgICAgICogZmlsZS4gICovCisgICAgICAgICAgICBpZiAoKGVyYSAhPSBHcmVnb3JpYW5DYWxlbmRhci5BRCAmJiBlcmEgIT0gR3JlZ29yaWFuQ2FsZW5kYXIuQkMpCisgICAgICAgICAgICAgICAgfHwgbW9udGggPCBDYWxlbmRhci5KQU5VQVJZCisgICAgICAgICAgICAgICAgfHwgbW9udGggPiBDYWxlbmRhci5ERUNFTUJFUgorICAgICAgICAgICAgICAgIHx8IGRheSA8IDEKKyAgICAgICAgICAgICAgICB8fCBkYXkgPiBtb250aExlbmd0aAorICAgICAgICAgICAgICAgIHx8IGRheU9mV2VlayA8IENhbGVuZGFyLlNVTkRBWQorICAgICAgICAgICAgICAgIHx8IGRheU9mV2VlayA+IENhbGVuZGFyLlNBVFVSREFZCisgICAgICAgICAgICAgICAgfHwgbWlsbGlzIDwgMAorICAgICAgICAgICAgICAgIHx8IG1pbGxpcyA+PSBtaWxsaXNQZXJEYXkKKyAgICAgICAgICAgICAgICB8fCBtb250aExlbmd0aCA8IDI4CisgICAgICAgICAgICAgICAgfHwgbW9udGhMZW5ndGggPiAzMQorICAgICAgICAgICAgICAgIHx8IHByZXZNb250aExlbmd0aCA8IDI4CisgICAgICAgICAgICAgICAgfHwgcHJldk1vbnRoTGVuZ3RoID4gMzEpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvKiBUaGlzIHBhcmFtZXRlciBjaGVja2luZyBjb2RlIGlzIGJldHRlciBmb3IgZGVidWdnaW5nLCBidXQKKyAgICAgICAgICAgICAqIG92ZXJraWxsIGZvciBub3JtYWwgb3BlcmF0aW9uLiAgT25seSBvbmUgb2YgdGhlc2UgdHdvIGJsb2NrcworICAgICAgICAgICAgICogc2hvdWxkIGFjdHVhbGx5IGdldCBjb21waWxlZCBpbnRvIHRoZSBjbGFzcyBmaWxlLiAgKi8KKyAgICAgICAgICAgIGlmIChlcmEgIT0gR3JlZ29yaWFuQ2FsZW5kYXIuQUQgJiYgZXJhICE9IEdyZWdvcmlhbkNhbGVuZGFyLkJDKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBlcmEgIiArIGVyYSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobW9udGggPCBDYWxlbmRhci5KQU5VQVJZCisgICAgICAgICAgICAgICAgfHwgbW9udGggPiBDYWxlbmRhci5ERUNFTUJFUikgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgbW9udGggIiArIG1vbnRoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChkYXkgPCAxCisgICAgICAgICAgICAgICAgfHwgZGF5ID4gbW9udGhMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIGRheSAiICsgZGF5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChkYXlPZldlZWsgPCBDYWxlbmRhci5TVU5EQVkKKyAgICAgICAgICAgICAgICB8fCBkYXlPZldlZWsgPiBDYWxlbmRhci5TQVRVUkRBWSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgZGF5IG9mIHdlZWsgIiArIGRheU9mV2Vlayk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobWlsbGlzIDwgMAorICAgICAgICAgICAgICAgIHx8IG1pbGxpcyA+PSBtaWxsaXNQZXJEYXkpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIG1pbGxpcyAiICsgbWlsbGlzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChtb250aExlbmd0aCA8IDI4CisgICAgICAgICAgICAgICAgfHwgbW9udGhMZW5ndGggPiAzMSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgbW9udGggbGVuZ3RoICIgKyBtb250aExlbmd0aCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAocHJldk1vbnRoTGVuZ3RoIDwgMjgKKyAgICAgICAgICAgICAgICB8fCBwcmV2TW9udGhMZW5ndGggPiAzMSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgcHJldmlvdXMgbW9udGggbGVuZ3RoICIgKyBwcmV2TW9udGhMZW5ndGgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaW50IHJlc3VsdCA9IHJhd09mZnNldDsKKworICAgICAgICAvLyBCYWlsIG91dCBpZiB3ZSBhcmUgYmVmb3JlIHRoZSBvbnNldCBvZiBkYXlsaWdodCBzYXZpbmdzIHRpbWUKKyAgICAgICAgaWYgKCF1c2VEYXlsaWdodCB8fCB5ZWFyIDwgc3RhcnRZZWFyIHx8IGVyYSAhPSBHcmVnb3JpYW5DYWxlbmRhci5BRCkgcmV0dXJuIHJlc3VsdDsKKworICAgICAgICAvLyBDaGVjayBmb3Igc291dGhlcm4gaGVtaXNwaGVyZS4gIFdlIGFzc3VtZSB0aGF0IHRoZSBzdGFydCBhbmQgZW5kCisgICAgICAgIC8vIG1vbnRoIGFyZSBkaWZmZXJlbnQuCisgICAgICAgIGJvb2xlYW4gc291dGhlcm4gPSAoc3RhcnRNb250aCA+IGVuZE1vbnRoKTsKKworICAgICAgICAvLyBDb21wYXJlIHRoZSBkYXRlIHRvIHRoZSBzdGFydGluZyBhbmQgZW5kaW5nIHJ1bGVzLisxID0gZGF0ZT5ydWxlLCAtMQorICAgICAgICAvLyA9IGRhdGU8cnVsZSwgMCA9IGRhdGU9PXJ1bGUuCisgICAgICAgIGludCBzdGFydENvbXBhcmUgPSBjb21wYXJlVG9SdWxlKG1vbnRoLCBtb250aExlbmd0aCwgcHJldk1vbnRoTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXksIGRheU9mV2VlaywgbWlsbGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWVNb2RlID09IFVUQ19USU1FID8gLXJhd09mZnNldCA6IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0TW9kZSwgc3RhcnRNb250aCwgc3RhcnREYXlPZldlZWssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0RGF5LCBzdGFydFRpbWUpOworICAgICAgICBpbnQgZW5kQ29tcGFyZSA9IDA7CisKKyAgICAgICAgLyogV2UgZG9uJ3QgYWx3YXlzIGhhdmUgdG8gY29tcHV0ZSBlbmRDb21wYXJlLiAgRm9yIG1hbnkgaW5zdGFuY2VzLAorICAgICAgICAgKiBzdGFydENvbXBhcmUgaXMgZW5vdWdoIHRvIGRldGVybWluZSBpZiB3ZSBhcmUgaW4gRFNUIG9yIG5vdC4gIEluIHRoZQorICAgICAgICAgKiBub3J0aGVybiBoZW1pc3BoZXJlLCBpZiB3ZSBhcmUgYmVmb3JlIHRoZSBzdGFydCBydWxlLCB3ZSBjYW4ndCBoYXZlCisgICAgICAgICAqIERTVC4gIEluIHRoZSBzb3V0aGVybiBoZW1pc3BoZXJlLCBpZiB3ZSBhcmUgYWZ0ZXIgdGhlIHN0YXJ0IHJ1bGUsIHdlCisgICAgICAgICAqIG11c3QgaGF2ZSBEU1QuICBUaGlzIGlzIHJlZmxlY3RlZCBpbiB0aGUgd2F5IHRoZSBuZXh0IGlmIHN0YXRlbWVudAorICAgICAgICAgKiAobm90IHRoZSBvbmUgaW1tZWRpYXRlbHkgZm9sbG93aW5nKSBzaG9ydCBjaXJjdWl0cy4gKi8KKyAgICAgICAgaWYgKHNvdXRoZXJuICE9IChzdGFydENvbXBhcmUgPj0gMCkpIHsKKyAgICAgICAgICAgIC8qIEZvciB0aGUgZW5kaW5nIHJ1bGUgY29tcGFyaXNvbiwgd2UgYWRkIHRoZSBkc3RTYXZpbmdzIHRvIHRoZSBtaWxsaXMKKyAgICAgICAgICAgICAqIHBhc3NlZCBpbiB0byBjb252ZXJ0IHRoZW0gZnJvbSBzdGFuZGFyZCB0byB3YWxsIHRpbWUuICBXZSB0aGVuIG11c3QKKyAgICAgICAgICAgICAqIG5vcm1hbGl6ZSB0aGUgbWlsbGlzIHRvIHRoZSByYW5nZSAwLi5taWxsaXNQZXJEYXktMS4gKi8KKyAgICAgICAgICAgIGVuZENvbXBhcmUgPSBjb21wYXJlVG9SdWxlKG1vbnRoLCBtb250aExlbmd0aCwgcHJldk1vbnRoTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5LCBkYXlPZldlZWssIG1pbGxpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZFRpbWVNb2RlID09IFdBTExfVElNRSA/IGRzdFNhdmluZ3MgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmRUaW1lTW9kZSA9PSBVVENfVElNRSA/IC1yYXdPZmZzZXQgOiAwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZE1vZGUsIGVuZE1vbnRoLCBlbmREYXlPZldlZWssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmREYXksIGVuZFRpbWUpOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ2hlY2sgZm9yIGJvdGggdGhlIG5vcnRoZXJuIGFuZCBzb3V0aGVybiBoZW1pc3BoZXJlIGNhc2VzLiAgV2UKKyAgICAgICAgLy8gYXNzdW1lIHRoYXQgaW4gdGhlIG5vcnRoZXJuIGhlbWlzcGhlcmUsIHRoZSBzdGFydCBydWxlIGlzIGJlZm9yZSB0aGUKKyAgICAgICAgLy8gZW5kIHJ1bGUgd2l0aGluIHRoZSBjYWxlbmRhciB5ZWFyLCBhbmQgdmljZSB2ZXJzYSBmb3IgdGhlIHNvdXRoZXJuCisgICAgICAgIC8vIGhlbWlzcGhlcmUuCisgICAgICAgIGlmICgoIXNvdXRoZXJuICYmIChzdGFydENvbXBhcmUgPj0gMCAmJiBlbmRDb21wYXJlIDwgMCkpIHx8CisgICAgICAgICAgICAoc291dGhlcm4gJiYgKHN0YXJ0Q29tcGFyZSA+PSAwIHx8IGVuZENvbXBhcmUgPCAwKSkpCisgICAgICAgICAgICByZXN1bHQgKz0gZHN0U2F2aW5nczsKKworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhcmUgYSBnaXZlbiBkYXRlIGluIHRoZSB5ZWFyIHRvIGEgcnVsZS4gUmV0dXJuIDEsIDAsIG9yIC0xLCBkZXBlbmRpbmcKKyAgICAgKiBvbiB3aGV0aGVyIHRoZSBkYXRlIGlzIGFmdGVyLCBlcXVhbCB0bywgb3IgYmVmb3JlIHRoZSBydWxlIGRhdGUuIFRoZQorICAgICAqIG1pbGxpcyBhcmUgY29tcGFyZWQgZGlyZWN0bHkgYWdhaW5zdCB0aGUgcnVsZU1pbGxpcywgc28gYW55CisgICAgICogc3RhbmRhcmQtZGF5bGlnaHQgYWRqdXN0bWVudHMgbXVzdCBiZSBoYW5kbGVkIGJ5IHRoZSBjYWxsZXIuCisgICAgICoKKyAgICAgKiBAcmV0dXJuICAxIGlmIHRoZSBkYXRlIGlzIGFmdGVyIHRoZSBydWxlIGRhdGUsIC0xIGlmIHRoZSBkYXRlIGlzIGJlZm9yZQorICAgICAqICAgICAgICAgIHRoZSBydWxlIGRhdGUsIG9yIDAgaWYgdGhlIGRhdGUgaXMgZXF1YWwgdG8gdGhlIHJ1bGUgZGF0ZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgY29tcGFyZVRvUnVsZShpbnQgbW9udGgsIGludCBtb250aExlbiwgaW50IHByZXZNb250aExlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGF5T2ZNb250aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGF5T2ZXZWVrLCBpbnQgbWlsbGlzLCBpbnQgbWlsbGlzRGVsdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJ1bGVNb2RlLCBpbnQgcnVsZU1vbnRoLCBpbnQgcnVsZURheU9mV2VlaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcnVsZURheSwgaW50IHJ1bGVNaWxsaXMpCisgICAgeworICAgICAgICAvLyBNYWtlIGFkanVzdG1lbnRzIGZvciBzdGFydFRpbWVNb2RlIGFuZCBlbmRUaW1lTW9kZQorICAgICAgICBtaWxsaXMgKz0gbWlsbGlzRGVsdGE7CisgICAgICAgIHdoaWxlIChtaWxsaXMgPj0gbWlsbGlzUGVyRGF5KSB7CisgICAgICAgICAgICBtaWxsaXMgLT0gbWlsbGlzUGVyRGF5OworICAgICAgICAgICAgKytkYXlPZk1vbnRoOworICAgICAgICAgICAgZGF5T2ZXZWVrID0gMSArIChkYXlPZldlZWsgJSA3KTsgLy8gZGF5T2ZXZWVrIGlzIG9uZS1iYXNlZAorICAgICAgICAgICAgaWYgKGRheU9mTW9udGggPiBtb250aExlbikgeworICAgICAgICAgICAgICAgIGRheU9mTW9udGggPSAxOworICAgICAgICAgICAgICAgIC8qIFdoZW4gaW5jcmVtZW50aW5nIHRoZSBtb250aCwgaXQgaXMgZGVzaXJpYmxlIHRvIG92ZXJmbG93CisgICAgICAgICAgICAgICAgICogZnJvbSBERUNFTUJFUiB0byBERUNFTUJFUisxLCBzaW5jZSB3ZSB1c2UgdGhlIHJlc3VsdCB0bworICAgICAgICAgICAgICAgICAqIGNvbXBhcmUgYWdhaW5zdCBhIHJlYWwgbW9udGguIFdyYXBhcm91bmQgb2YgdGhlIHZhbHVlCisgICAgICAgICAgICAgICAgICogbGVhZHMgdG8gYnVnIDQxNzM2MDQuICovCisgICAgICAgICAgICAgICAgKyttb250aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB3aGlsZSAobWlsbGlzIDwgMCkgeworICAgICAgICAgICAgbWlsbGlzICs9IG1pbGxpc1BlckRheTsKKyAgICAgICAgICAgIC0tZGF5T2ZNb250aDsKKyAgICAgICAgICAgIGRheU9mV2VlayA9IDEgKyAoKGRheU9mV2Vlays1KSAlIDcpOyAvLyBkYXlPZldlZWsgaXMgb25lLWJhc2VkCisgICAgICAgICAgICBpZiAoZGF5T2ZNb250aCA8IDEpIHsKKyAgICAgICAgICAgICAgICBkYXlPZk1vbnRoID0gcHJldk1vbnRoTGVuOworICAgICAgICAgICAgICAgIC0tbW9udGg7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChtb250aCA8IHJ1bGVNb250aCkgcmV0dXJuIC0xOworICAgICAgICBlbHNlIGlmIChtb250aCA+IHJ1bGVNb250aCkgcmV0dXJuIDE7CisKKyAgICAgICAgaW50IHJ1bGVEYXlPZk1vbnRoID0gMDsKKyAgICAgICAgc3dpdGNoIChydWxlTW9kZSkKKyAgICAgICAgeworICAgICAgICBjYXNlIERPTV9NT0RFOgorICAgICAgICAgICAgcnVsZURheU9mTW9udGggPSBydWxlRGF5OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRE9XX0lOX01PTlRIX01PREU6CisgICAgICAgICAgICAvLyBJbiB0aGlzIGNhc2UgcnVsZURheSBpcyB0aGUgZGF5LW9mLXdlZWstaW4tbW9udGgKKyAgICAgICAgICAgIGlmIChydWxlRGF5ID4gMCkKKyAgICAgICAgICAgICAgICBydWxlRGF5T2ZNb250aCA9IDEgKyAocnVsZURheSAtIDEpICogNyArCisgICAgICAgICAgICAgICAgICAgICg3ICsgcnVsZURheU9mV2VlayAtIChkYXlPZldlZWsgLSBkYXlPZk1vbnRoICsgMSkpICUgNzsKKyAgICAgICAgICAgIGVsc2UgLy8gQXNzdW1lIHJ1bGVEYXkgPCAwIGhlcmUKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBydWxlRGF5T2ZNb250aCA9IG1vbnRoTGVuICsgKHJ1bGVEYXkgKyAxKSAqIDcgLQorICAgICAgICAgICAgICAgICAgICAoNyArIChkYXlPZldlZWsgKyBtb250aExlbiAtIGRheU9mTW9udGgpIC0gcnVsZURheU9mV2VlaykgJSA3OworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRE9XX0dFX0RPTV9NT0RFOgorICAgICAgICAgICAgcnVsZURheU9mTW9udGggPSBydWxlRGF5ICsKKyAgICAgICAgICAgICAgICAoNDkgKyBydWxlRGF5T2ZXZWVrIC0gcnVsZURheSAtIGRheU9mV2VlayArIGRheU9mTW9udGgpICUgNzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERPV19MRV9ET01fTU9ERToKKyAgICAgICAgICAgIHJ1bGVEYXlPZk1vbnRoID0gcnVsZURheSAtCisgICAgICAgICAgICAgICAgKDQ5IC0gcnVsZURheU9mV2VlayArIHJ1bGVEYXkgKyBkYXlPZldlZWsgLSBkYXlPZk1vbnRoKSAlIDc7CisgICAgICAgICAgICAvLyBOb3RlIGF0IHRoaXMgcG9pbnQgcnVsZURheU9mTW9udGggbWF5IGJlIDwxLCBhbHRob3VnaCBpdCB3aWxsCisgICAgICAgICAgICAvLyBiZSA+PTEgZm9yIHdlbGwtZm9ybWVkIHJ1bGVzLgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZGF5T2ZNb250aCA8IHJ1bGVEYXlPZk1vbnRoKSByZXR1cm4gLTE7CisgICAgICAgIGVsc2UgaWYgKGRheU9mTW9udGggPiBydWxlRGF5T2ZNb250aCkgcmV0dXJuIDE7CisKKyAgICAgICAgaWYgKG1pbGxpcyA8IHJ1bGVNaWxsaXMpIHJldHVybiAtMTsKKyAgICAgICAgZWxzZSBpZiAobWlsbGlzID4gcnVsZU1pbGxpcykgcmV0dXJuIDE7CisgICAgICAgIGVsc2UgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIFRpbWVab25lCisgICAgICogR2V0cyB0aGUgR01UIG9mZnNldCBmb3IgdGhpcyB0aW1lIHpvbmUuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRSYXdPZmZzZXQoKQorICAgIHsKKyAgICAgICAgLy8gVGhlIGdpdmVuIGRhdGUgd2lsbCBiZSB0YWtlbiBpbnRvIGFjY291bnQgd2hpbGUKKyAgICAgICAgLy8gd2UgaGF2ZSB0aGUgaGlzdG9yaWNhbCB0aW1lIHpvbmUgZGF0YSBpbiBwbGFjZS4KKyAgICAgICAgcmV0dXJuIHJhd09mZnNldDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgVGltZVpvbmUKKyAgICAgKiBTZXRzIHRoZSBiYXNlIHRpbWUgem9uZSBvZmZzZXQgdG8gR01ULgorICAgICAqIFRoaXMgaXMgdGhlIG9mZnNldCB0byBhZGQgKnRvKiBVVEMgdG8gZ2V0IGxvY2FsIHRpbWUuCisgICAgICogUGxlYXNlIHNlZSBUaW1lWm9uZS5zZXRSYXdPZmZzZXQgZm9yIGRlc2NyaXB0aW9ucyBvbiB0aGUgcGFyYW1ldGVyLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFJhd09mZnNldChpbnQgb2Zmc2V0TWlsbGlzKQorICAgIHsKKyAgICAgICAgdGhpcy5yYXdPZmZzZXQgPSBvZmZzZXRNaWxsaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgYW1vdW50IG9mIHRpbWUgaW4gbXMgdGhhdCB0aGUgY2xvY2sgaXMgYWR2YW5jZWQgZHVyaW5nIERTVC4KKyAgICAgKiBAcGFyYW0gbWlsbGlzU2F2ZWREdXJpbmdEU1QgdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdGhlIHRpbWUgaXMKKyAgICAgKiBhZHZhbmNlZCB3aXRoIHJlc3BlY3QgdG8gc3RhbmRhcmQgdGltZSB3aGVuIHRoZSBkYXlsaWdodCBzYXZpbmdzIHJ1bGVzCisgICAgICogYXJlIGluIGVmZmVjdC4gQSBwb3NpdGl2ZSBudW1iZXIsIHR5cGljYWxseSBvbmUgaG91ciAoMzYwMDAwMCkuCisgICAgICogQHNpbmNlIDEuMgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldERTVFNhdmluZ3MoaW50IG1pbGxpc1NhdmVkRHVyaW5nRFNUKSB7CisgICAgICAgIGlmIChtaWxsaXNTYXZlZER1cmluZ0RTVCA8PSAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIERTVCBzYXZpbmdzIik7CisgICAgICAgIH0KKyAgICAgICAgZHN0U2F2aW5ncyA9IG1pbGxpc1NhdmVkRHVyaW5nRFNUOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGFtb3VudCBvZiB0aW1lIGluIG1zIHRoYXQgdGhlIGNsb2NrIGlzIGFkdmFuY2VkIGR1cmluZyBEU1QuCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0aGUgdGltZSBpcworICAgICAqIGFkdmFuY2VkIHdpdGggcmVzcGVjdCB0byBzdGFuZGFyZCB0aW1lIHdoZW4gdGhlIGRheWxpZ2h0IHNhdmluZ3MgcnVsZXMKKyAgICAgKiBhcmUgaW4gZWZmZWN0LiBBIHBvc2l0aXZlIG51bWJlciwgdHlwaWNhbGx5IG9uZSBob3VyICgzNjAwMDAwKS4KKyAgICAgKiBAc2luY2UgMS4yCisgICAgICovCisgICAgcHVibGljIGludCBnZXREU1RTYXZpbmdzKCkgeworICAgICAgICByZXR1cm4gZHN0U2F2aW5nczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgVGltZVpvbmUKKyAgICAgKiBRdWVyaWVzIGlmIHRoaXMgdGltZSB6b25lIHVzZXMgRGF5bGlnaHQgU2F2aW5ncyBUaW1lLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIHVzZURheWxpZ2h0VGltZSgpCisgICAgeworICAgICAgICByZXR1cm4gdXNlRGF5bGlnaHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIFRpbWVab25lCisgICAgICogUXVlcmllcyBpZiB0aGUgZ2l2ZW4gZGF0ZSBpcyBpbiBEYXlsaWdodCBTYXZpbmdzIFRpbWUuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaW5EYXlsaWdodFRpbWUoRGF0ZSBkYXRlKQorICAgIHsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZ2MgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIodGhpcyk7CisgICAgICAgIGdjLnNldFRpbWUoZGF0ZSk7CisgICAgICAgIHJldHVybiBnYy5pbkRheWxpZ2h0VGltZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlcyBDbG9uZWFibGUKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkKKyAgICB7CisgICAgICAgIHJldHVybiBzdXBlci5jbG9uZSgpOworICAgICAgICAvLyBvdGhlciBmaWVsZHMgYXJlIGJpdC1jb3BpZWQKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBoYXNoQ29kZS4KKyAgICAgKiBHZW5lcmF0ZXMgdGhlIGhhc2ggY29kZSBmb3IgdGhlIFNpbXBsZURhdGVGb3JtYXQgb2JqZWN0CisgICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCBpbnQgaGFzaENvZGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0YXJ0TW9udGggXiBzdGFydERheSBeIHN0YXJ0RGF5T2ZXZWVrIF4gc3RhcnRUaW1lIF4KKyAgICAgICAgICAgIGVuZE1vbnRoIF4gZW5kRGF5IF4gZW5kRGF5T2ZXZWVrIF4gZW5kVGltZSBeIHJhd09mZnNldDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlcyB0aGUgZXF1YWxpdHkgb2YgdHdvIFNpbXBsZVRpbWVab25lIG9iamVjdHMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb2JqICBUaGUgU2ltcGxlVGltZVpvbmUgb2JqZWN0IHRvIGJlIGNvbXBhcmVkIHdpdGguCisgICAgICogQHJldHVybiAgICAgVHJ1ZSBpZiB0aGUgZ2l2ZW4gb2JqIGlzIHRoZSBzYW1lIGFzIHRoaXMgU2ltcGxlVGltZVpvbmUKKyAgICAgKiAgICAgICAgICAgICBvYmplY3Q7IGZhbHNlIG90aGVyd2lzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iaikKKyAgICB7CisgICAgICAgIGlmICh0aGlzID09IG9iaikKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAoIShvYmogaW5zdGFuY2VvZiBTaW1wbGVUaW1lWm9uZSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgU2ltcGxlVGltZVpvbmUgdGhhdCA9IChTaW1wbGVUaW1lWm9uZSkgb2JqOworCisgICAgICAgIHJldHVybiBnZXRJRCgpLmVxdWFscyh0aGF0LmdldElEKCkpICYmCisgICAgICAgICAgICBoYXNTYW1lUnVsZXModGhhdCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhpcyB6b25lIGhhcyB0aGUgc2FtZSBydWxlcyBhbmQgb2Zmc2V0IGFzIGFub3RoZXIgem9uZS4KKyAgICAgKiBAcGFyYW0gb3RoZXIgdGhlIFRpbWVab25lIG9iamVjdCB0byBiZSBjb21wYXJlZCB3aXRoCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiB6b25lIGhhcyB0aGUgc2FtZSBydWxlcyBhbmQgb2Zmc2V0IGFzIHRoaXMgb25lCisgICAgICogQHNpbmNlIDEuMgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGhhc1NhbWVSdWxlcyhUaW1lWm9uZSBvdGhlcikgeworICAgICAgICBpZiAodGhpcyA9PSBvdGhlcikgcmV0dXJuIHRydWU7CisgICAgICAgIGlmICghKG90aGVyIGluc3RhbmNlb2YgU2ltcGxlVGltZVpvbmUpKSByZXR1cm4gZmFsc2U7CisgICAgICAgIFNpbXBsZVRpbWVab25lIHRoYXQgPSAoU2ltcGxlVGltZVpvbmUpIG90aGVyOworICAgICAgICByZXR1cm4gcmF3T2Zmc2V0ID09IHRoYXQucmF3T2Zmc2V0ICYmCisgICAgICAgICAgICB1c2VEYXlsaWdodCA9PSB0aGF0LnVzZURheWxpZ2h0ICYmCisgICAgICAgICAgICAoIXVzZURheWxpZ2h0CisgICAgICAgICAgICAgLy8gT25seSBjaGVjayBydWxlcyBpZiB1c2luZyBEU1QKKyAgICAgICAgICAgICB8fCAoZHN0U2F2aW5ncyA9PSB0aGF0LmRzdFNhdmluZ3MgJiYKKyAgICAgICAgICAgICAgICAgc3RhcnRNb2RlID09IHRoYXQuc3RhcnRNb2RlICYmCisgICAgICAgICAgICAgICAgIHN0YXJ0TW9udGggPT0gdGhhdC5zdGFydE1vbnRoICYmCisgICAgICAgICAgICAgICAgIHN0YXJ0RGF5ID09IHRoYXQuc3RhcnREYXkgJiYKKyAgICAgICAgICAgICAgICAgc3RhcnREYXlPZldlZWsgPT0gdGhhdC5zdGFydERheU9mV2VlayAmJgorICAgICAgICAgICAgICAgICBzdGFydFRpbWUgPT0gdGhhdC5zdGFydFRpbWUgJiYKKyAgICAgICAgICAgICAgICAgc3RhcnRUaW1lTW9kZSA9PSB0aGF0LnN0YXJ0VGltZU1vZGUgJiYKKyAgICAgICAgICAgICAgICAgZW5kTW9kZSA9PSB0aGF0LmVuZE1vZGUgJiYKKyAgICAgICAgICAgICAgICAgZW5kTW9udGggPT0gdGhhdC5lbmRNb250aCAmJgorICAgICAgICAgICAgICAgICBlbmREYXkgPT0gdGhhdC5lbmREYXkgJiYKKyAgICAgICAgICAgICAgICAgZW5kRGF5T2ZXZWVrID09IHRoYXQuZW5kRGF5T2ZXZWVrICYmCisgICAgICAgICAgICAgICAgIGVuZFRpbWUgPT0gdGhhdC5lbmRUaW1lICYmCisgICAgICAgICAgICAgICAgIGVuZFRpbWVNb2RlID09IHRoYXQuZW5kVGltZU1vZGUgJiYKKyAgICAgICAgICAgICAgICAgc3RhcnRZZWFyID09IHRoYXQuc3RhcnRZZWFyKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgdGltZSB6b25lLgorICAgICAqIEByZXR1cm4gIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgdGltZSB6b25lLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIHJldHVybiBnZXRDbGFzcygpLmdldE5hbWUoKSArCisgICAgICAgICAgICAiW2lkPSIgKyBnZXRJRCgpICsKKyAgICAgICAgICAgICIsb2Zmc2V0PSIgKyByYXdPZmZzZXQgKworICAgICAgICAgICAgIixkc3RTYXZpbmdzPSIgKyBkc3RTYXZpbmdzICsKKyAgICAgICAgICAgICIsdXNlRGF5bGlnaHQ9IiArIHVzZURheWxpZ2h0ICsKKyAgICAgICAgICAgICIsc3RhcnRZZWFyPSIgKyBzdGFydFllYXIgKworICAgICAgICAgICAgIixzdGFydE1vZGU9IiArIHN0YXJ0TW9kZSArCisgICAgICAgICAgICAiLHN0YXJ0TW9udGg9IiArIHN0YXJ0TW9udGggKworICAgICAgICAgICAgIixzdGFydERheT0iICsgc3RhcnREYXkgKworICAgICAgICAgICAgIixzdGFydERheU9mV2Vlaz0iICsgc3RhcnREYXlPZldlZWsgKworICAgICAgICAgICAgIixzdGFydFRpbWU9IiArIHN0YXJ0VGltZSArCisgICAgICAgICAgICAiLHN0YXJ0VGltZU1vZGU9IiArIHN0YXJ0VGltZU1vZGUgKworICAgICAgICAgICAgIixlbmRNb2RlPSIgKyBlbmRNb2RlICsKKyAgICAgICAgICAgICIsZW5kTW9udGg9IiArIGVuZE1vbnRoICsKKyAgICAgICAgICAgICIsZW5kRGF5PSIgKyBlbmREYXkgKworICAgICAgICAgICAgIixlbmREYXlPZldlZWs9IiArIGVuZERheU9mV2VlayArCisgICAgICAgICAgICAiLGVuZFRpbWU9IiArIGVuZFRpbWUgKworICAgICAgICAgICAgIixlbmRUaW1lTW9kZT0iICsgZW5kVGltZU1vZGUgKyAnXSc7CisgICAgfQorCisgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT1wcml2YXRlcz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFRoZSBtb250aCBpbiB3aGljaCBkYXlsaWdodCBzYXZpbmdzIHRpbWUgc3RhcnRzLiAgVGhpcyB2YWx1ZSBtdXN0IGJlCisgICAgICogYmV0d2VlbiA8Y29kZT5DYWxlbmRhci5KQU5VQVJZPC9jb2RlPiBhbmQKKyAgICAgKiA8Y29kZT5DYWxlbmRhci5ERUNFTUJFUjwvY29kZT4gaW5jbHVzaXZlLiAgVGhpcyB2YWx1ZSBtdXN0IG5vdCBlcXVhbAorICAgICAqIDxjb2RlPmVuZE1vbnRoPC9jb2RlPi4KKyAgICAgKiA8cD5JZiA8Y29kZT51c2VEYXlsaWdodDwvY29kZT4gaXMgZmFsc2UsIHRoaXMgdmFsdWUgaXMgaWdub3JlZC4KKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgc3RhcnRNb250aDsKKworICAgIC8qKgorICAgICAqIFRoaXMgZmllbGQgaGFzIHR3byBwb3NzaWJsZSBpbnRlcnByZXRhdGlvbnM6CisgICAgICogPGRsPgorICAgICAqIDxkdD48Y29kZT5zdGFydE1vZGUgPT0gRE9XX0lOX01PTlRIPC9jb2RlPjwvZHQ+CisgICAgICogPGRkPgorICAgICAqIDxjb2RlPnN0YXJ0RGF5PC9jb2RlPiBpbmRpY2F0ZXMgdGhlIGRheSBvZiB0aGUgbW9udGggb2YKKyAgICAgKiA8Y29kZT5zdGFydE1vbnRoPC9jb2RlPiBvbiB3aGljaCBkYXlsaWdodAorICAgICAqIHNhdmluZ3MgdGltZSBzdGFydHMsIGZyb20gMSB0byAyOCwgMzAsIG9yIDMxLCBkZXBlbmRpbmcgb24gdGhlCisgICAgICogPGNvZGU+c3RhcnRNb250aDwvY29kZT4uCisgICAgICogPC9kZD4KKyAgICAgKiA8ZHQ+PGNvZGU+c3RhcnRNb2RlICE9IERPV19JTl9NT05USDwvY29kZT48L2R0PgorICAgICAqIDxkZD4KKyAgICAgKiA8Y29kZT5zdGFydERheTwvY29kZT4gaW5kaWNhdGVzIHdoaWNoIDxjb2RlPnN0YXJ0RGF5T2ZXZWVrPC9jb2RlPiBpbiB0aAorICAgICAqIG1vbnRoIDxjb2RlPnN0YXJ0TW9udGg8L2NvZGU+IGRheWxpZ2h0CisgICAgICogc2F2aW5ncyB0aW1lIHN0YXJ0cyBvbi4gIEZvciBleGFtcGxlLCBhIHZhbHVlIG9mICsxIGFuZCBhCisgICAgICogPGNvZGU+c3RhcnREYXlPZldlZWs8L2NvZGU+IG9mIDxjb2RlPkNhbGVuZGFyLlNVTkRBWTwvY29kZT4gaW5kaWNhdGVzIHRoZQorICAgICAqIGZpcnN0IFN1bmRheSBvZiA8Y29kZT5zdGFydE1vbnRoPC9jb2RlPi4gIExpa2V3aXNlLCArMiB3b3VsZCBpbmRpY2F0ZSB0aGUKKyAgICAgKiBzZWNvbmQgU3VuZGF5LCBhbmQgLTEgdGhlIGxhc3QgU3VuZGF5LiAgQSB2YWx1ZSBvZiAwIGlzIGlsbGVnYWwuCisgICAgICogPC9kZD4KKyAgICAgKiA8L3VsPgorICAgICAqIDxwPklmIDxjb2RlPnVzZURheWxpZ2h0PC9jb2RlPiBpcyBmYWxzZSwgdGhpcyB2YWx1ZSBpcyBpZ25vcmVkLgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBzdGFydERheTsKKworICAgIC8qKgorICAgICAqIFRoZSBkYXkgb2YgdGhlIHdlZWsgb24gd2hpY2ggZGF5bGlnaHQgc2F2aW5ncyB0aW1lIHN0YXJ0cy4gIFRoaXMgdmFsdWUKKyAgICAgKiBtdXN0IGJlIGJldHdlZW4gPGNvZGU+Q2FsZW5kYXIuU1VOREFZPC9jb2RlPiBhbmQKKyAgICAgKiA8Y29kZT5DYWxlbmRhci5TQVRVUkRBWTwvY29kZT4gaW5jbHVzaXZlLgorICAgICAqIDxwPklmIDxjb2RlPnVzZURheWxpZ2h0PC9jb2RlPiBpcyBmYWxzZSBvcgorICAgICAqIDxjb2RlPnN0YXJ0TW9kZSA9PSBEQVlfT0ZfTU9OVEg8L2NvZGU+LCB0aGlzIHZhbHVlIGlzIGlnbm9yZWQuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgaW50IHN0YXJ0RGF5T2ZXZWVrOworCisgICAgLyoqCisgICAgICogVGhlIHRpbWUgaW4gbWlsbGlzZWNvbmRzIGFmdGVyIG1pZG5pZ2h0IGF0IHdoaWNoIGRheWxpZ2h0IHNhdmluZ3MKKyAgICAgKiB0aW1lIHN0YXJ0cy4gIFRoaXMgdmFsdWUgaXMgZXhwcmVzc2VkIGFzIHdhbGwgdGltZSwgc3RhbmRhcmQgdGltZSwKKyAgICAgKiBvciBVVEMgdGltZSwgZGVwZW5kaW5nIG9uIHRoZSBzZXR0aW5nIG9mIDxjb2RlPnN0YXJ0VGltZU1vZGU8L2NvZGU+LgorICAgICAqIDxwPklmIDxjb2RlPnVzZURheWxpZ2h0PC9jb2RlPiBpcyBmYWxzZSwgdGhpcyB2YWx1ZSBpcyBpZ25vcmVkLgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBzdGFydFRpbWU7CisKKyAgICAvKioKKyAgICAgKiBUaGUgZm9ybWF0IG9mIHN0YXJ0VGltZSwgZWl0aGVyIFdBTExfVElNRSwgU1RBTkRBUkRfVElNRSwgb3IgVVRDX1RJTUUuCisgICAgICogQHNlcmlhbAorICAgICAqIEBzaW5jZSBKREsgMS4zCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgc3RhcnRUaW1lTW9kZTsKKworICAgIC8qKgorICAgICAqIFRoZSBtb250aCBpbiB3aGljaCBkYXlsaWdodCBzYXZpbmdzIHRpbWUgZW5kcy4gIFRoaXMgdmFsdWUgbXVzdCBiZQorICAgICAqIGJldHdlZW4gPGNvZGU+Q2FsZW5kYXIuSkFOVUFSWTwvY29kZT4gYW5kCisgICAgICogPGNvZGU+Q2FsZW5kYXIuVU5ERUNJTUJFUjwvY29kZT4uICBUaGlzIHZhbHVlIG11c3Qgbm90IGVxdWFsCisgICAgICogPGNvZGU+c3RhcnRNb250aDwvY29kZT4uCisgICAgICogPHA+SWYgPGNvZGU+dXNlRGF5bGlnaHQ8L2NvZGU+IGlzIGZhbHNlLCB0aGlzIHZhbHVlIGlzIGlnbm9yZWQuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgaW50IGVuZE1vbnRoOworCisgICAgLyoqCisgICAgICogVGhpcyBmaWVsZCBoYXMgdHdvIHBvc3NpYmxlIGludGVycHJldGF0aW9uczoKKyAgICAgKiA8ZGw+CisgICAgICogPGR0Pjxjb2RlPmVuZE1vZGUgPT0gRE9XX0lOX01PTlRIPC9jb2RlPjwvZHQ+CisgICAgICogPGRkPgorICAgICAqIDxjb2RlPmVuZERheTwvY29kZT4gaW5kaWNhdGVzIHRoZSBkYXkgb2YgdGhlIG1vbnRoIG9mCisgICAgICogPGNvZGU+ZW5kTW9udGg8L2NvZGU+IG9uIHdoaWNoIGRheWxpZ2h0CisgICAgICogc2F2aW5ncyB0aW1lIGVuZHMsIGZyb20gMSB0byAyOCwgMzAsIG9yIDMxLCBkZXBlbmRpbmcgb24gdGhlCisgICAgICogPGNvZGU+ZW5kTW9udGg8L2NvZGU+LgorICAgICAqIDwvZGQ+CisgICAgICogPGR0Pjxjb2RlPmVuZE1vZGUgIT0gRE9XX0lOX01PTlRIPC9jb2RlPjwvZHQ+CisgICAgICogPGRkPgorICAgICAqIDxjb2RlPmVuZERheTwvY29kZT4gaW5kaWNhdGVzIHdoaWNoIDxjb2RlPmVuZERheU9mV2VlazwvY29kZT4gaW4gdGgKKyAgICAgKiBtb250aCA8Y29kZT5lbmRNb250aDwvY29kZT4gZGF5bGlnaHQKKyAgICAgKiBzYXZpbmdzIHRpbWUgZW5kcyBvbi4gIEZvciBleGFtcGxlLCBhIHZhbHVlIG9mICsxIGFuZCBhCisgICAgICogPGNvZGU+ZW5kRGF5T2ZXZWVrPC9jb2RlPiBvZiA8Y29kZT5DYWxlbmRhci5TVU5EQVk8L2NvZGU+IGluZGljYXRlcyB0aGUKKyAgICAgKiBmaXJzdCBTdW5kYXkgb2YgPGNvZGU+ZW5kTW9udGg8L2NvZGU+LiAgTGlrZXdpc2UsICsyIHdvdWxkIGluZGljYXRlIHRoZQorICAgICAqIHNlY29uZCBTdW5kYXksIGFuZCAtMSB0aGUgbGFzdCBTdW5kYXkuICBBIHZhbHVlIG9mIDAgaXMgaWxsZWdhbC4KKyAgICAgKiA8L2RkPgorICAgICAqIDwvdWw+CisgICAgICogPHA+SWYgPGNvZGU+dXNlRGF5bGlnaHQ8L2NvZGU+IGlzIGZhbHNlLCB0aGlzIHZhbHVlIGlzIGlnbm9yZWQuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgaW50IGVuZERheTsKKworICAgIC8qKgorICAgICAqIFRoZSBkYXkgb2YgdGhlIHdlZWsgb24gd2hpY2ggZGF5bGlnaHQgc2F2aW5ncyB0aW1lIGVuZHMuICBUaGlzIHZhbHVlCisgICAgICogbXVzdCBiZSBiZXR3ZWVuIDxjb2RlPkNhbGVuZGFyLlNVTkRBWTwvY29kZT4gYW5kCisgICAgICogPGNvZGU+Q2FsZW5kYXIuU0FUVVJEQVk8L2NvZGU+IGluY2x1c2l2ZS4KKyAgICAgKiA8cD5JZiA8Y29kZT51c2VEYXlsaWdodDwvY29kZT4gaXMgZmFsc2Ugb3IKKyAgICAgKiA8Y29kZT5lbmRNb2RlID09IERBWV9PRl9NT05USDwvY29kZT4sIHRoaXMgdmFsdWUgaXMgaWdub3JlZC4KKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZW5kRGF5T2ZXZWVrOworCisgICAgLyoqCisgICAgICogVGhlIHRpbWUgaW4gbWlsbGlzZWNvbmRzIGFmdGVyIG1pZG5pZ2h0IGF0IHdoaWNoIGRheWxpZ2h0IHNhdmluZ3MKKyAgICAgKiB0aW1lIGVuZHMuICBUaGlzIHZhbHVlIGlzIGV4cHJlc3NlZCBhcyB3YWxsIHRpbWUsIHN0YW5kYXJkIHRpbWUsCisgICAgICogb3IgVVRDIHRpbWUsIGRlcGVuZGluZyBvbiB0aGUgc2V0dGluZyBvZiA8Y29kZT5lbmRUaW1lTW9kZTwvY29kZT4uCisgICAgICogPHA+SWYgPGNvZGU+dXNlRGF5bGlnaHQ8L2NvZGU+IGlzIGZhbHNlLCB0aGlzIHZhbHVlIGlzIGlnbm9yZWQuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgaW50IGVuZFRpbWU7CisKKyAgICAvKioKKyAgICAgKiBUaGUgZm9ybWF0IG9mIGVuZFRpbWUsIGVpdGhlciBXQUxMX1RJTUUsIFNUQU5EQVJEX1RJTUUsIG9yIFVUQ19USU1FLgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2luY2UgSkRLIDEuMworICAgICAqLworICAgIHByaXZhdGUgaW50IGVuZFRpbWVNb2RlOworCisgICAgLyoqCisgICAgICogVGhlIHllYXIgaW4gd2hpY2ggZGF5bGlnaHQgc2F2aW5ncyB0aW1lIGlzIGZpcnN0IG9ic2VydmVkLiAgVGhpcyBpcyBhbiBBRAorICAgICAqIHZhbHVlLiAgSWYgdGhpcyB2YWx1ZSBpcyBsZXNzIHRoYW4gMSB0aGVuIGRheWxpZ2h0IHNhdmluZ3MgaXMgb2JzZXJ2ZWQKKyAgICAgKiBmb3IgYWxsIEFEIHllYXJzLgorICAgICAqIDxwPklmIDxjb2RlPnVzZURheWxpZ2h0PC9jb2RlPiBpcyBmYWxzZSwgdGhpcyB2YWx1ZSBpcyBpZ25vcmVkLgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBzdGFydFllYXI7CisKKyAgICAvKioKKyAgICAgKiBUaGUgb2Zmc2V0IGluIG1pbGxpc2Vjb25kcyBiZXR3ZWVuIHRoaXMgem9uZSBhbmQgR01ULiAgTmVnYXRpdmUgb2Zmc2V0cworICAgICAqIGFyZSB0byB0aGUgd2VzdCBvZiBHcmVlbndpY2guICBUbyBvYnRhaW4gbG9jYWwgPGVtPnN0YW5kYXJkPC9lbT4gdGltZSwKKyAgICAgKiBhZGQgdGhlIG9mZnNldCB0byBHTVQgdGltZS4gIFRvIG9idGFpbiBsb2NhbCB3YWxsIHRpbWUgaXQgbWF5IGFsc28gYmUKKyAgICAgKiBuZWNlc3NhcnkgdG8gYWRkIDxjb2RlPmRzdFNhdmluZ3M8L2NvZGU+LgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCByYXdPZmZzZXQ7CisKKyAgICAvKioKKyAgICAgKiBBIGJvb2xlYW4gdmFsdWUgd2hpY2ggaXMgdHJ1ZSBpZiBhbmQgb25seSBpZiB0aGlzIHpvbmUgdXNlcyBkYXlsaWdodAorICAgICAqIHNhdmluZ3MgdGltZS4gIElmIHRoaXMgdmFsdWUgaXMgZmFsc2UsIHNldmVyYWwgb3RoZXIgZmllbGRzIGFyZSBpZ25vcmVkLgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gdXNlRGF5bGlnaHQ9ZmFsc2U7IC8vIGluZGljYXRlIGlmIHRoaXMgdGltZSB6b25lIHVzZXMgRFNUCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgbWlsbGlzUGVySG91ciA9IDYwKjYwKjEwMDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IG1pbGxpc1BlckRheSAgPSAyNCptaWxsaXNQZXJIb3VyOworCisgICAgLyoqCisgICAgICogVGhpcyBmaWVsZCB3YXMgc2VyaWFsaXplZCBpbiBKREsgMS4xLCBzbyB3ZSBoYXZlIHRvIGtlZXAgaXQgdGhhdCB3YXkKKyAgICAgKiB0byBtYWludGFpbiBzZXJpYWxpemF0aW9uIGNvbXBhdGliaWxpdHkuIEhvd2V2ZXIsIHRoZXJlJ3Mgbm8gbmVlZCB0bworICAgICAqIHJlY3JlYXRlIHRoZSBhcnJheSBlYWNoIHRpbWUgd2UgY3JlYXRlIGEgbmV3IHRpbWUgem9uZS4KKyAgICAgKiBAc2VyaWFsIEFuIGFycmF5IG9mIGJ5dGVzIGNvbnRhaW5pbmcgdGhlIHZhbHVlcyB7MzEsIDI4LCAzMSwgMzAsIDMxLCAzMCwKKyAgICAgKiAzMSwgMzEsIDMwLCAzMSwgMzAsIDMxfS4gIFRoaXMgaXMgaWdub3JlZCBhcyBvZiB0aGUgSmF2YSAyIHBsYXRmb3JtIHYxLjIsIGhvd2V2ZXIsIGl0IG11c3QKKyAgICAgKiBiZSBzdHJlYW1lZCBvdXQgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBKREsgMS4xLgorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgYnl0ZSBtb250aExlbmd0aFtdID0gc3RhdGljTW9udGhMZW5ndGg7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgYnl0ZSBzdGF0aWNNb250aExlbmd0aFtdID0gezMxLDI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxfTsKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBieXRlIHN0YXRpY0xlYXBNb250aExlbmd0aFtdID0gezMxLDI5LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxfTsKKyAgICAvLyBIYWNrOiBVc2UgdGhlIHkvbS9kIGNvbnN0cnVjdG9yIGluIHRoZSBmb2xsb3dpbmcgbGluZS4KKyAgICAvLyBUaGlzIHByZXZlbnRzIHRoZSBpbmZpbml0ZSByZWN1cnNpb24gdGhhdCByZXN1bHRzIHdoZW4KKyAgICAvLyB0aGUgR0Mgd2FudHMgdG8gY2FsbCBTVFouZ2V0T2Zmc2V0LiAtIGxpdQorICAgIHByaXZhdGUgc3RhdGljIEdyZWdvcmlhbkNhbGVuZGFyIGludGVybmFsQ2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKDAsIDAsIDApOworCisgICAgLyoqCisgICAgICogVmFyaWFibGVzIHNwZWNpZnlpbmcgdGhlIG1vZGUgb2YgdGhlIHN0YXJ0IHJ1bGUuICBUYWtlcyB0aGUgZm9sbG93aW5nCisgICAgICogdmFsdWVzOgorICAgICAqIDxkbD4KKyAgICAgKiA8ZHQ+PGNvZGU+RE9NX01PREU8L2NvZGU+PC9kdD4KKyAgICAgKiA8ZGQ+CisgICAgICogRXhhY3QgZGF5IG9mIHdlZWs7IGUuZy4sIE1hcmNoIDEuCisgICAgICogPC9kZD4KKyAgICAgKiA8ZHQ+PGNvZGU+RE9XX0lOX01PTlRIX01PREU8L2NvZGU+PC9kdD4gICAgCisgICAgICogPGRkPgorICAgICAqIERheSBvZiB3ZWVrIGluIG1vbnRoOyBlLmcuLCBsYXN0IFN1bmRheSBpbiBNYXJjaC4KKyAgICAgKiA8L2RkPgorICAgICAqIDxkdD48Y29kZT5ET1dfR0VfRE9NX01PREU8L2NvZGU+PC9kdD4KKyAgICAgKiA8ZGQ+CisgICAgICogRGF5IG9mIHdlZWsgYWZ0ZXIgZGF5IG9mIG1vbnRoOyBlLmcuLCBTdW5kYXkgb24gb3IgYWZ0ZXIgTWFyY2ggMTUuCisgICAgICogPC9kZD4KKyAgICAgKiA8ZHQ+PGNvZGU+RE9XX0xFX0RPTV9NT0RFPC9jb2RlPjwvZHQ+CisgICAgICogPGRkPgorICAgICAqIERheSBvZiB3ZWVrIGJlZm9yZSBkYXkgb2YgbW9udGg7IGUuZy4sIFN1bmRheSBvbiBvciBiZWZvcmUgTWFyY2ggMTUuCisgICAgICogPC9kZD4KKyAgICAgKiA8L2RsPgorICAgICAqIFRoZSBzZXR0aW5nIG9mIHRoaXMgZmllbGQgYWZmZWN0cyB0aGUgaW50ZXJwcmV0YXRpb24gb2YgdGhlCisgICAgICogPGNvZGU+c3RhcnREYXk8L2NvZGU+IGZpZWxkLgorICAgICAqIDxwPklmIDxjb2RlPnVzZURheWxpZ2h0PC9jb2RlPiBpcyBmYWxzZSwgdGhpcyB2YWx1ZSBpcyBpZ25vcmVkLgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2luY2UgSkRLMS4xLjQKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBzdGFydE1vZGU7CisKKyAgICAvKioKKyAgICAgKiBWYXJpYWJsZXMgc3BlY2lmeWluZyB0aGUgbW9kZSBvZiB0aGUgZW5kIHJ1bGUuICBUYWtlcyB0aGUgZm9sbG93aW5nCisgICAgICogdmFsdWVzOgorICAgICAqIDxkbD4KKyAgICAgKiA8ZHQ+PGNvZGU+RE9NX01PREU8L2NvZGU+PC9kdD4KKyAgICAgKiA8ZGQ+CisgICAgICogRXhhY3QgZGF5IG9mIHdlZWs7IGUuZy4sIE1hcmNoIDEuCisgICAgICogPC9kZD4KKyAgICAgKiA8ZHQ+PGNvZGU+RE9XX0lOX01PTlRIX01PREU8L2NvZGU+PC9kdD4gICAgCisgICAgICogPGRkPgorICAgICAqIERheSBvZiB3ZWVrIGluIG1vbnRoOyBlLmcuLCBsYXN0IFN1bmRheSBpbiBNYXJjaC4KKyAgICAgKiA8L2RkPgorICAgICAqIDxkdD48Y29kZT5ET1dfR0VfRE9NX01PREU8L2NvZGU+PC9kdD4KKyAgICAgKiA8ZGQ+CisgICAgICogRGF5IG9mIHdlZWsgYWZ0ZXIgZGF5IG9mIG1vbnRoOyBlLmcuLCBTdW5kYXkgb24gb3IgYWZ0ZXIgTWFyY2ggMTUuCisgICAgICogPC9kZD4KKyAgICAgKiA8ZHQ+PGNvZGU+RE9XX0xFX0RPTV9NT0RFPC9jb2RlPjwvZHQ+CisgICAgICogPGRkPgorICAgICAqIERheSBvZiB3ZWVrIGJlZm9yZSBkYXkgb2YgbW9udGg7IGUuZy4sIFN1bmRheSBvbiBvciBiZWZvcmUgTWFyY2ggMTUuCisgICAgICogPC9kZD4KKyAgICAgKiA8L2RsPgorICAgICAqIFRoZSBzZXR0aW5nIG9mIHRoaXMgZmllbGQgYWZmZWN0cyB0aGUgaW50ZXJwcmV0YXRpb24gb2YgdGhlCisgICAgICogPGNvZGU+ZW5kRGF5PC9jb2RlPiBmaWVsZC4KKyAgICAgKiA8cD5JZiA8Y29kZT51c2VEYXlsaWdodDwvY29kZT4gaXMgZmFsc2UsIHRoaXMgdmFsdWUgaXMgaWdub3JlZC4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNpbmNlIEpESzEuMS40CisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZW5kTW9kZTsKKworICAgIC8qKgorICAgICAqIEEgcG9zaXRpdmUgdmFsdWUgaW5kaWNhdGluZyB0aGUgYW1vdW50IG9mIHRpbWUgc2F2ZWQgZHVyaW5nIERTVCBpbgorICAgICAqIG1pbGxpc2Vjb25kcy4KKyAgICAgKiBUeXBpY2FsbHkgb25lIGhvdXIgKDM2MDAwMDApOyBzb21ldGltZXMgMzAgbWludXRlcyAoMTgwMDAwMCkuCisgICAgICogPHA+SWYgPGNvZGU+dXNlRGF5bGlnaHQ8L2NvZGU+IGlzIGZhbHNlLCB0aGlzIHZhbHVlIGlzIGlnbm9yZWQuCisgICAgICogQHNlcmlhbAorICAgICAqIEBzaW5jZSBKREsxLjEuNAorICAgICAqLworICAgIHByaXZhdGUgaW50IGRzdFNhdmluZ3M7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudHMgc3BlY2lmeWluZyB2YWx1ZXMgb2Ygc3RhcnRNb2RlIGFuZCBlbmRNb2RlLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBET01fTU9ERSAgICAgICAgICA9IDE7IC8vIEV4YWN0IGRheSBvZiBtb250aCwgIk1hciAxIgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBET1dfSU5fTU9OVEhfTU9ERSA9IDI7IC8vIERheSBvZiB3ZWVrIGluIG1vbnRoLCAibGFzdFN1biIKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRE9XX0dFX0RPTV9NT0RFICAgPSAzOyAvLyBEYXkgb2Ygd2VlayBhZnRlciBkYXkgb2YgbW9udGgsICJTdW4+PTE1IgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBET1dfTEVfRE9NX01PREUgICA9IDQ7IC8vIERheSBvZiB3ZWVrIGJlZm9yZSBkYXkgb2YgbW9udGgsICJTdW48PTIxIgorCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIGEgcnVsZSBzcGVjaWZpZWQgYXMgd2FsbCB0aW1lLiAgV2FsbCB0aW1lIGlzIHN0YW5kYXJkIHRpbWUKKyAgICAgKiBmb3IgdGhlIG9uc2V0IHJ1bGUsIGFuZCBkYXlsaWdodCB0aW1lIGZvciB0aGUgZW5kIHJ1bGUuICBNb3N0IHJ1bGVzCisgICAgICogYXJlIHNwZWNpZmllZCBhcyB3YWxsIHRpbWUuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGludCBXQUxMX1RJTUUgPSAwOyAvLyBaZXJvIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgYSBydWxlIHNwZWNpZmllZCBhcyBzdGFuZGFyZCB0aW1lLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgU1RBTkRBUkRfVElNRSA9IDE7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgYSBydWxlIHNwZWNpZmllZCBhcyBVVEMuICBFVSBydWxlcyBhcmUgc3BlY2lmaWVkIGFzIFVUQworICAgICAqIHRpbWUuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGludCBVVENfVElNRSA9IDI7CisKKyAgICAvLyBQcm9jbGFpbSBjb21wYXRpYmlsaXR5IHdpdGggMS4xCisgICAgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IC00MDMyNTA5NzEyMTU0NjUwNTBMOworCisgICAgLy8gdGhlIGludGVybmFsIHNlcmlhbCB2ZXJzaW9uIHdoaWNoIHNheXMgd2hpY2ggdmVyc2lvbiB3YXMgd3JpdHRlbgorICAgIC8vIC0gMCAoZGVmYXVsdCkgZm9yIHZlcnNpb24gdXAgdG8gSkRLIDEuMS4zCisgICAgLy8gLSAxIGZvciB2ZXJzaW9uIGZyb20gSkRLIDEuMS40LCB3aGljaCBpbmNsdWRlcyAzIG5ldyBmaWVsZHMKKyAgICAvLyAtIDIgZm9yIEpESyAxLjMsIHdoaWNoIGluY2x1ZGVzIDIgbmV3IGZpbGVzCisgICAgc3RhdGljIGZpbmFsIGludCBjdXJyZW50U2VyaWFsVmVyc2lvbiA9IDI7CisKKyAgICAvKioKKyAgICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgc2VyaWFsaXplZCBkYXRhIG9uIHRoZSBzdHJlYW0uICBQb3NzaWJsZSB2YWx1ZXM6CisgICAgICogPGRsPgorICAgICAqIDxkdD48Yj4wPC9iPiBvciBub3QgcHJlc2VudCBvbiBzdHJlYW08L2R0PgorICAgICAqIDxkZD4KKyAgICAgKiBKREsgMS4xLjMgb3IgZWFybGllci4KKyAgICAgKiA8L2RkPgorICAgICAqIDxkdD48Yj4xPC9iPjwvZHQ+CisgICAgICogPGRkPgorICAgICAqIEpESyAxLjEuNCBvciBsYXRlci4gIEluY2x1ZGVzIHRocmVlIG5ldyBmaWVsZHM6IDxjb2RlPnN0YXJ0TW9kZTwvY29kZT4sCisgICAgICogPGNvZGU+ZW5kTW9kZTwvY29kZT4sIGFuZCA8Y29kZT5kc3RTYXZpbmdzPC9jb2RlPi4KKyAgICAgKiA8L2RkPgorICAgICAqIDxkdD48Yj4yPC9iPjwvZHQ+CisgICAgICogPGRkPgorICAgICAqIEpESyAxLjMgb3IgbGF0ZXIuICBJbmNsdWRlcyB0d28gbmV3IGZpZWxkczogPGNvZGU+c3RhcnRUaW1lTW9kZTwvY29kZT4KKyAgICAgKiBhbmQgPGNvZGU+ZW5kVGltZU1vZGU8L2NvZGU+LgorICAgICAqIDwvZGQ+CisgICAgICogPC9kbD4KKyAgICAgKiBXaGVuIHN0cmVhbWluZyBvdXQgdGhpcyBjbGFzcywgdGhlIG1vc3QgcmVjZW50IGZvcm1hdAorICAgICAqIGFuZCB0aGUgaGlnaGVzdCBhbGxvd2FibGUgPGNvZGU+c2VyaWFsVmVyc2lvbk9uU3RyZWFtPC9jb2RlPgorICAgICAqIGlzIHdyaXR0ZW4uCisgICAgICogQHNlcmlhbAorICAgICAqIEBzaW5jZSBKREsxLjEuNAorICAgICAqLworICAgIHByaXZhdGUgaW50IHNlcmlhbFZlcnNpb25PblN0cmVhbSA9IGN1cnJlbnRTZXJpYWxWZXJzaW9uOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gUnVsZSByZXByZXNlbnRhdGlvbgorICAgIC8vCisgICAgLy8gV2UgcmVwcmVzZW50IHRoZSBmb2xsb3dpbmcgZmxhdm9ycyBvZiBydWxlczoKKyAgICAvLyAgICAgICA1ICAgICAgICB0aGUgZmlmdGggb2YgdGhlIG1vbnRoCisgICAgLy8gICAgICAgbGFzdFN1biAgdGhlIGxhc3QgU3VuZGF5IGluIHRoZSBtb250aAorICAgIC8vICAgICAgIGxhc3RNb24gIHRoZSBsYXN0IE1vbmRheSBpbiB0aGUgbW9udGgKKyAgICAvLyAgICAgICBTdW4+PTggICBmaXJzdCBTdW5kYXkgb24gb3IgYWZ0ZXIgdGhlIGVpZ2h0aAorICAgIC8vICAgICAgIFN1bjw9MjUgIGxhc3QgU3VuZGF5IG9uIG9yIGJlZm9yZSB0aGUgMjV0aAorICAgIC8vIFRoaXMgaXMgZnVydGhlciBjb21wbGljYXRlZCBieSB0aGUgZmFjdCB0aGF0IHdlIG5lZWQgdG8gcmVtYWluCisgICAgLy8gYmFja3dhcmQgY29tcGF0aWJsZSB3aXRoIHRoZSAxLjEgRkNTLiAgRmluYWxseSwgd2UgbmVlZCB0byBtaW5pbWl6ZQorICAgIC8vIEFQSSBjaGFuZ2VzLiAgSW4gb3JkZXIgdG8gc2F0aXNmeSB0aGVzZSByZXF1aXJlbWVudHMsIHdlIHN1cHBvcnQKKyAgICAvLyB0aHJlZSByZXByZXNlbnRhdGlvbiBzeXN0ZW1zLCBhbmQgd2UgdHJhbnNsYXRlIGJldHdlZW4gdGhlbS4KKyAgICAvLworICAgIC8vIElOVEVSTkFMIFJFUFJFU0VOVEFUSU9OCisgICAgLy8gVGhpcyBpcyB0aGUgZm9ybWF0IFNpbXBsZVRpbWVab25lIG9iamVjdHMgdGFrZSBhZnRlciBjb25zdHJ1Y3Rpb24gb3IKKyAgICAvLyBzdHJlYW1pbmcgaW4gaXMgY29tcGxldGUuICBSdWxlcyBhcmUgcmVwcmVzZW50ZWQgZGlyZWN0bHksIHVzaW5nIGFuCisgICAgLy8gdW5lbmNvZGVkIGZvcm1hdC4gIFdlIHdpbGwgZGlzY3VzcyB0aGUgc3RhcnQgcnVsZSBvbmx5IGJlbG93OyB0aGUgZW5kCisgICAgLy8gcnVsZSBpcyBhbmFsb2dvdXMuCisgICAgLy8gICBzdGFydE1vZGUgICAgICBUYWtlcyBvbiBlbnVtZXJhdGVkIHZhbHVlcyBEQVlfT0ZfTU9OVEgsCisgICAgLy8gICAgICAgICAgICAgICAgICBET1dfSU5fTU9OVEgsIERPV19BRlRFUl9ET00sIG9yIERPV19CRUZPUkVfRE9NLgorICAgIC8vICAgc3RhcnREYXkgICAgICAgVGhlIGRheSBvZiB0aGUgbW9udGgsIG9yIGZvciBET1dfSU5fTU9OVEggbW9kZSwgYQorICAgIC8vICAgICAgICAgICAgICAgICAgdmFsdWUgaW5kaWNhdGluZyB3aGljaCBET1csIHN1Y2ggYXMgKzEgZm9yIGZpcnN0LAorICAgIC8vICAgICAgICAgICAgICAgICAgKzIgZm9yIHNlY29uZCwgLTEgZm9yIGxhc3QsIGV0Yy4KKyAgICAvLyAgIHN0YXJ0RGF5T2ZXZWVrIFRoZSBkYXkgb2YgdGhlIHdlZWsuICBJZ25vcmVkIGZvciBEQVlfT0ZfTU9OVEguCisgICAgLy8KKyAgICAvLyBFTkNPREVEIFJFUFJFU0VOVEFUSU9OCisgICAgLy8gVGhpcyBpcyB0aGUgZm9ybWF0IGFjY2VwdGVkIGJ5IHRoZSBjb25zdHJ1Y3RvciBhbmQgYnkgc2V0U3RhcnRSdWxlKCkKKyAgICAvLyBhbmQgc2V0RW5kUnVsZSgpLiAgSXQgdXNlcyB2YXJpb3VzIGNvbWJpbmF0aW9ucyBvZiBwb3NpdGl2ZSwgbmVnYXRpdmUsCisgICAgLy8gYW5kIHplcm8gdmFsdWVzIHRvIGVuY29kZSB0aGUgZGlmZmVyZW50IHJ1bGVzLiAgVGhpcyByZXByZXNlbnRhdGlvbgorICAgIC8vIGFsbG93cyB1cyB0byBzcGVjaWZ5IGFsbCB0aGUgZGlmZmVyZW50IHJ1bGUgZmxhdm9ycyB3aXRob3V0IGFsdGVyaW5nCisgICAgLy8gdGhlIEFQSS4KKyAgICAvLyAgIE1PREUgICAgICAgICAgICAgIHN0YXJ0TW9udGggICAgc3RhcnREYXkgICAgc3RhcnREYXlPZldlZWsKKyAgICAvLyAgIERPV19JTl9NT05USF9NT0RFID49MCAgICAgICAgICAgIT0wICAgICAgICAgPjAKKyAgICAvLyAgIERPTV9NT0RFICAgICAgICAgID49MCAgICAgICAgICAgPjAgICAgICAgICAgPT0wCisgICAgLy8gICBET1dfR0VfRE9NX01PREUgICA+PTAgICAgICAgICAgID4wICAgICAgICAgIDwwCisgICAgLy8gICBET1dfTEVfRE9NX01PREUgICA+PTAgICAgICAgICAgIDwwICAgICAgICAgIDwwCisgICAgLy8gICAobm8gRFNUKSAgICAgICAgICBkb24ndCBjYXJlICAgID09MCAgICAgICAgIGRvbid0IGNhcmUKKyAgICAvLworICAgIC8vIFNUUkVBTUVEIFJFUFJFU0VOVEFUSU9OCisgICAgLy8gV2UgbXVzdCByZXRhaW4gYmluYXJ5IGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgMS4xIEZDUy4gIFRoZSAxLjEgY29kZSBvbmx5CisgICAgLy8gaGFuZGxlcyBET1dfSU5fTU9OVEhfTU9ERSBhbmQgbm9uLURTVCBtb2RlLCB0aGUgbGF0dGVyIGluZGljYXRlZCBieSB0aGUKKyAgICAvLyBmbGFnIHVzZURheWxpZ2h0LiAgV2hlbiB3ZSBzdHJlYW0gYW4gb2JqZWN0IG91dCwgd2UgdHJhbnNsYXRlIGludG8gYW4KKyAgICAvLyBhcHByb3hpbWF0ZSBET1dfSU5fTU9OVEhfTU9ERSByZXByZXNlbnRhdGlvbiBzbyB0aGUgb2JqZWN0IGNhbiBiZSBwYXJzZWQKKyAgICAvLyBhbmQgdXNlZCBieSAxLjEgY29kZS4gIEZvbGxvd2luZyB0aGF0LCB3ZSB3cml0ZSBvdXQgdGhlIGZ1bGwKKyAgICAvLyByZXByZXNlbnRhdGlvbiBzZXBhcmF0ZWx5IHNvIHRoYXQgY29udGVtcG9yYXJ5IGNvZGUgY2FuIHJlY29nbml6ZSBhbmQKKyAgICAvLyBwYXJzZSBpdC4gIFRoZSBmdWxsIHJlcHJlc2VudGF0aW9uIGlzIHdyaXR0ZW4gaW4gYSAicGFja2VkIiBmb3JtYXQsCisgICAgLy8gY29uc2lzdGluZyBvZiBhIHZlcnNpb24gbnVtYmVyLCBhIGxlbmd0aCwgYW5kIGFuIGFycmF5IG9mIGJ5dGVzLiAgRnV0dXJlCisgICAgLy8gdmVyc2lvbnMgb2YgdGhpcyBjbGFzcyBtYXkgc3BlY2lmeSBkaWZmZXJlbnQgdmVyc2lvbnMuICBJZiB0aGV5IHdpc2ggdG8KKyAgICAvLyBpbmNsdWRlIGFkZGl0aW9uYWwgZGF0YSwgdGhleSBzaG91bGQgZG8gc28gYnkgc3RvcmluZyB0aGVtIGFmdGVyIHRoZQorICAgIC8vIHBhY2tlZCByZXByZXNlbnRhdGlvbiBiZWxvdy4KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEdpdmVuIGEgc2V0IG9mIGVuY29kZWQgcnVsZXMgaW4gc3RhcnREYXkgYW5kIHN0YXJ0RGF5T2ZNb250aCwgZGVjb2RlCisgICAgICogdGhlbSBhbmQgc2V0IHRoZSBzdGFydE1vZGUgYXBwcm9wcmlhdGVseS4gIERvIHRoZSBzYW1lIGZvciBlbmREYXkgYW5kCisgICAgICogZW5kRGF5T2ZNb250aC4gIFVwb24gZW50cnksIHRoZSBkYXkgb2Ygd2VlayB2YXJpYWJsZXMgbWF5IGJlIHplcm8gb3IKKyAgICAgKiBuZWdhdGl2ZSwgaW4gb3JkZXIgdG8gaW5kaWNhdGUgc3BlY2lhbCBtb2Rlcy4gIFRoZSBkYXkgb2YgbW9udGgKKyAgICAgKiB2YXJpYWJsZXMgbWF5IGFsc28gYmUgbmVnYXRpdmUuICBVcG9uIGV4aXQsIHRoZSBtb2RlIHZhcmlhYmxlcyB3aWxsIGJlCisgICAgICogc2V0LCBhbmQgdGhlIGRheSBvZiB3ZWVrIGFuZCBkYXkgb2YgbW9udGggdmFyaWFibGVzIHdpbGwgYmUgcG9zaXRpdmUuCisgICAgICogVGhpcyBtZXRob2QgYWxzbyByZWNvZ25pemVzIGEgc3RhcnREYXkgb3IgZW5kRGF5IG9mIHplcm8gYXMgaW5kaWNhdGluZworICAgICAqIG5vIERTVC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgZGVjb2RlUnVsZXMoKQorICAgIHsKKyAgICAgICAgZGVjb2RlU3RhcnRSdWxlKCk7CisgICAgICAgIGRlY29kZUVuZFJ1bGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNvZGUgdGhlIHN0YXJ0IHJ1bGUgYW5kIHZhbGlkYXRlIHRoZSBwYXJhbWV0ZXJzLiAgVGhlIHBhcmFtZXRlcnMgYXJlCisgICAgICogZXhwZWN0ZWQgdG8gYmUgaW4gZW5jb2RlZCBmb3JtLCB3aGljaCByZXByZXNlbnRzIHRoZSB2YXJpb3VzIHJ1bGUgbW9kZXMKKyAgICAgKiBieSBuZWdhdGluZyBvciB6ZXJvaW5nIGNlcnRhaW4gdmFsdWVzLiAgUmVwcmVzZW50YXRpb24gZm9ybWF0cyBhcmU6CisgICAgICogPHA+CisgICAgICogPHByZT4KKyAgICAgKiAgICAgICAgICAgIERPV19JTl9NT05USCAgRE9NICAgIERPVz49RE9NICBET1c8PURPTSAgbm8gRFNUCisgICAgICogICAgICAgICAgICAtLS0tLS0tLS0tLS0gIC0tLS0tICAtLS0tLS0tLSAgLS0tLS0tLS0gIC0tLS0tLS0tLS0KKyAgICAgKiBtb250aCAgICAgICAwLi4xMSAgICAgICAgc2FtZSAgICBzYW1lICAgICAgc2FtZSAgICAgZG9uJ3QgY2FyZQorICAgICAqIGRheSAgICAgICAgLTUuLjUgICAgICAgICAxLi4zMSAgIDEuLjMxICAgIC0xLi4tMzEgICAwCisgICAgICogZGF5T2ZXZWVrICAgMS4uNyAgICAgICAgIDAgICAgICAtMS4uLTcgICAgLTEuLi03ICAgIGRvbid0IGNhcmUKKyAgICAgKiB0aW1lICAgICAgICAwLi5PTkVEQVkgICAgc2FtZSAgICBzYW1lICAgICAgc2FtZSAgICAgZG9uJ3QgY2FyZQorICAgICAqIDwvcHJlPgorICAgICAqIFRoZSByYW5nZSBmb3IgbW9udGggZG9lcyBub3QgaW5jbHVkZSBVTkRFQ0lNQkVSIHNpbmNlIHRoaXMgY2xhc3MgaXMKKyAgICAgKiByZWFsbHkgc3BlY2lmaWMgdG8gR3JlZ29yaWFuQ2FsZW5kYXIsIHdoaWNoIGRvZXMgbm90IHVzZSB0aGF0IG1vbnRoLgorICAgICAqIFRoZSByYW5nZSBmb3IgdGltZSBpbmNsdWRlcyBPTkVEQVkgKHZzLiBlbmRpbmcgYXQgT05FREFZLTEpIGJlY2F1c2UgdGhlCisgICAgICogZW5kIHJ1bGUgaXMgYW4gZXhjbHVzaXZlIGxpbWl0IHBvaW50LiAgVGhhdCBpcywgdGhlIHJhbmdlIG9mIHRpbWVzIHRoYXQKKyAgICAgKiBhcmUgaW4gRFNUIGluY2x1ZGUgdGhvc2UgPj0gdGhlIHN0YXJ0IGFuZCA8IHRoZSBlbmQuICBGb3IgdGhpcyByZWFzb24sCisgICAgICogaXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIHNwZWNpZnkgYW4gZW5kIG9mIE9ORURBWSBpbiBvcmRlciB0byBpbmNsdWRlIHRoZQorICAgICAqIGVudGlyZSBkYXkuICBBbHRob3VnaCB0aGlzIGlzIGVxdWl2YWxlbnQgdG8gdGltZSAwIG9mIHRoZSBmb2xsb3dpbmcgZGF5LAorICAgICAqIGl0J3Mgbm90IGFsd2F5cyBwb3NzaWJsZSB0byBzcGVjaWZ5IHRoYXQsIGZvciBleGFtcGxlLCBvbiBEZWNlbWJlciAzMS4KKyAgICAgKiBXaGlsZSBhcmd1YWJseSB0aGUgc3RhcnQgcmFuZ2Ugc2hvdWxkIHN0aWxsIGJlIDAuLk9ORURBWS0xLCB3ZSBrZWVwCisgICAgICogdGhlIHN0YXJ0IGFuZCBlbmQgcmFuZ2VzIHRoZSBzYW1lIGZvciBjb25zaXN0ZW5jeS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgZGVjb2RlU3RhcnRSdWxlKCkgeworICAgICAgICB1c2VEYXlsaWdodCA9IChzdGFydERheSAhPSAwKSAmJiAoZW5kRGF5ICE9IDApOworICAgICAgICBpZiAoc3RhcnREYXkgIT0gMCkgeworICAgICAgICAgICAgaWYgKHN0YXJ0TW9udGggPCBDYWxlbmRhci5KQU5VQVJZIHx8IHN0YXJ0TW9udGggPiBDYWxlbmRhci5ERUNFTUJFUikgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAiSWxsZWdhbCBzdGFydCBtb250aCAiICsgc3RhcnRNb250aCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc3RhcnRUaW1lIDwgMCB8fCBzdGFydFRpbWUgPj0gbWlsbGlzUGVyRGF5KSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICJJbGxlZ2FsIHN0YXJ0IHRpbWUgIiArIHN0YXJ0VGltZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc3RhcnREYXlPZldlZWsgPT0gMCkgeworICAgICAgICAgICAgICAgIHN0YXJ0TW9kZSA9IERPTV9NT0RFOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoc3RhcnREYXlPZldlZWsgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0TW9kZSA9IERPV19JTl9NT05USF9NT0RFOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0RGF5T2ZXZWVrID0gLXN0YXJ0RGF5T2ZXZWVrOworICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnREYXkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGFydE1vZGUgPSBET1dfR0VfRE9NX01PREU7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGFydERheSA9IC1zdGFydERheTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0TW9kZSA9IERPV19MRV9ET01fTU9ERTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoc3RhcnREYXlPZldlZWsgPiBDYWxlbmRhci5TQVRVUkRBWSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIklsbGVnYWwgc3RhcnQgZGF5IG9mIHdlZWsgIiArIHN0YXJ0RGF5T2ZXZWVrKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc3RhcnRNb2RlID09IERPV19JTl9NT05USF9NT0RFKSB7CisgICAgICAgICAgICAgICAgaWYgKHN0YXJ0RGF5IDwgLTUgfHwgc3RhcnREYXkgPiA1KSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIklsbGVnYWwgc3RhcnQgZGF5IG9mIHdlZWsgaW4gbW9udGggIiArIHN0YXJ0RGF5KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKHN0YXJ0RGF5IDwgMSB8fCBzdGFydERheSA+IHN0YXRpY01vbnRoTGVuZ3RoW3N0YXJ0TW9udGhdKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICJJbGxlZ2FsIHN0YXJ0IGRheSAiICsgc3RhcnREYXkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRGVjb2RlIHRoZSBlbmQgcnVsZSBhbmQgdmFsaWRhdGUgdGhlIHBhcmFtZXRlcnMuICBUaGlzIG1ldGhvZCBpcyBleGFjdGx5CisgICAgICogYW5hbG9nb3VzIHRvIGRlY29kZVN0YXJ0UnVsZSgpLgorICAgICAqIEBzZWUgZGVjb2RlU3RhcnRSdWxlCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGRlY29kZUVuZFJ1bGUoKSB7CisgICAgICAgIHVzZURheWxpZ2h0ID0gKHN0YXJ0RGF5ICE9IDApICYmIChlbmREYXkgIT0gMCk7CisgICAgICAgIGlmIChlbmREYXkgIT0gMCkgeworICAgICAgICAgICAgaWYgKGVuZE1vbnRoIDwgQ2FsZW5kYXIuSkFOVUFSWSB8fCBlbmRNb250aCA+IENhbGVuZGFyLkRFQ0VNQkVSKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICJJbGxlZ2FsIGVuZCBtb250aCAiICsgZW5kTW9udGgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGVuZFRpbWUgPCAwIHx8IGVuZFRpbWUgPj0gbWlsbGlzUGVyRGF5KSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICJJbGxlZ2FsIGVuZCB0aW1lICIgKyBlbmRUaW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChlbmREYXlPZldlZWsgPT0gMCkgeworICAgICAgICAgICAgICAgIGVuZE1vZGUgPSBET01fTU9ERTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGVuZERheU9mV2VlayA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZW5kTW9kZSA9IERPV19JTl9NT05USF9NT0RFOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGVuZERheU9mV2VlayA9IC1lbmREYXlPZldlZWs7CisgICAgICAgICAgICAgICAgICAgIGlmIChlbmREYXkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlbmRNb2RlID0gRE9XX0dFX0RPTV9NT0RFOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgZW5kRGF5ID0gLWVuZERheTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVuZE1vZGUgPSBET1dfTEVfRE9NX01PREU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGVuZERheU9mV2VlayA+IENhbGVuZGFyLlNBVFVSREFZKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiSWxsZWdhbCBlbmQgZGF5IG9mIHdlZWsgIiArIGVuZERheU9mV2Vlayk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGVuZE1vZGUgPT0gRE9XX0lOX01PTlRIX01PREUpIHsKKyAgICAgICAgICAgICAgICBpZiAoZW5kRGF5IDwgLTUgfHwgZW5kRGF5ID4gNSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbGxlZ2FsIGVuZCBkYXkgb2Ygd2VlayBpbiBtb250aCAiICsgZW5kRGF5KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKGVuZERheSA8IDEgfHwgZW5kRGF5ID4gc3RhdGljTW9udGhMZW5ndGhbZW5kTW9udGhdKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICJJbGxlZ2FsIGVuZCBkYXkgIiArIGVuZERheSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNYWtlIHJ1bGVzIGNvbXBhdGlibGUgdG8gMS4xIEZDUyBjb2RlLiAgU2luY2UgMS4xIEZDUyBjb2RlIG9ubHkgdW5kZXJzdGFuZHMKKyAgICAgKiBkYXktb2Ytd2Vlay1pbi1tb250aCBydWxlcywgd2UgbXVzdCBtb2RpZnkgb3RoZXIgbW9kZXMgb2YgcnVsZXMgdG8gdGhlaXIKKyAgICAgKiBhcHByb3hpbWF0ZSBlcXVpdmFsZW50IGluIDEuMSBGQ1MgdGVybXMuICBUaGlzIG1ldGhvZCBpcyB1c2VkIHdoZW4gc3RyZWFtaW5nCisgICAgICogb3V0IG9iamVjdHMgb2YgdGhpcyBjbGFzcy4gIEFmdGVyIGl0IGlzIGNhbGxlZCwgdGhlIHJ1bGVzIHdpbGwgYmUgbW9kaWZpZWQsCisgICAgICogd2l0aCBhIHBvc3NpYmxlIGxvc3Mgb2YgaW5mb3JtYXRpb24uICBzdGFydE1vZGUgYW5kIGVuZE1vZGUgd2lsbCBOT1QgYmUKKyAgICAgKiBhbHRlcmVkLCBldmVuIHRob3VnaCBzZW1hbnRpY2FsbHkgdGhleSBzaG91bGQgYmUgc2V0IHRvIERPV19JTl9NT05USF9NT0RFLAorICAgICAqIHNpbmNlIHRoZSBydWxlIG1vZGlmaWNhdGlvbiBpcyBvbmx5IGludGVuZGVkIHRvIGJlIHRlbXBvcmFyeS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgbWFrZVJ1bGVzQ29tcGF0aWJsZSgpCisgICAgeworICAgICAgICBzd2l0Y2ggKHN0YXJ0TW9kZSkKKyAgICAgICAgeworICAgICAgICBjYXNlIERPTV9NT0RFOgorICAgICAgICAgICAgc3RhcnREYXkgPSAxICsgKHN0YXJ0RGF5IC8gNyk7CisgICAgICAgICAgICBzdGFydERheU9mV2VlayA9IENhbGVuZGFyLlNVTkRBWTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERPV19HRV9ET01fTU9ERToKKyAgICAgICAgICAgIC8vIEEgZGF5LW9mLW1vbnRoIG9mIDEgaXMgZXF1aXZhbGVudCB0byBET1dfSU5fTU9OVEhfTU9ERQorICAgICAgICAgICAgLy8gdGhhdCBpcywgU3VuPj0xID09IGZpcnN0U3VuLgorICAgICAgICAgICAgaWYgKHN0YXJ0RGF5ICE9IDEpCisgICAgICAgICAgICAgICAgc3RhcnREYXkgPSAxICsgKHN0YXJ0RGF5IC8gNyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBET1dfTEVfRE9NX01PREU6CisgICAgICAgICAgICBpZiAoc3RhcnREYXkgPj0gMzApCisgICAgICAgICAgICAgICAgc3RhcnREYXkgPSAtMTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBzdGFydERheSA9IDEgKyAoc3RhcnREYXkgLyA3KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgc3dpdGNoIChlbmRNb2RlKQorICAgICAgICB7CisgICAgICAgIGNhc2UgRE9NX01PREU6CisgICAgICAgICAgICBlbmREYXkgPSAxICsgKGVuZERheSAvIDcpOworICAgICAgICAgICAgZW5kRGF5T2ZXZWVrID0gQ2FsZW5kYXIuU1VOREFZOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRE9XX0dFX0RPTV9NT0RFOgorICAgICAgICAgICAgLy8gQSBkYXktb2YtbW9udGggb2YgMSBpcyBlcXVpdmFsZW50IHRvIERPV19JTl9NT05USF9NT0RFCisgICAgICAgICAgICAvLyB0aGF0IGlzLCBTdW4+PTEgPT0gZmlyc3RTdW4uCisgICAgICAgICAgICBpZiAoZW5kRGF5ICE9IDEpCisgICAgICAgICAgICAgICAgZW5kRGF5ID0gMSArIChlbmREYXkgLyA3KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERPV19MRV9ET01fTU9ERToKKyAgICAgICAgICAgIGlmIChlbmREYXkgPj0gMzApCisgICAgICAgICAgICAgICAgZW5kRGF5ID0gLTE7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZW5kRGF5ID0gMSArIChlbmREYXkgLyA3KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgLyogQWRqdXN0IHRoZSBzdGFydCBhbmQgZW5kIHRpbWVzIHRvIHdhbGwgdGltZS4gIFRoaXMgd29ya3MgcGVyZmVjdGx5CisgICAgICAgICAqIHdlbGwgdW5sZXNzIGl0IHB1c2hlcyBpbnRvIHRoZSBuZXh0IG9yIHByZXZpb3VzIGRheS4gIElmIHRoYXQKKyAgICAgICAgICogaGFwcGVucywgd2UgYXR0ZW1wdCB0byBhZGp1c3QgdGhlIGRheSBydWxlIHNvbWV3aGF0IGNydWRlbHkuICBUaGUgZGF5CisgICAgICAgICAqIHJ1bGVzIGhhdmUgYmVlbiBmb3JjZWQgaW50byBET1dfSU5fTU9OVEggbW9kZSBhbHJlYWR5LCBzbyB3ZSBjaGFuZ2UKKyAgICAgICAgICogdGhlIGRheSBvZiB3ZWVrIHRvIG1vdmUgZm9yd2FyZCBvciBiYWNrIGJ5IGEgZGF5LiAgSXQncyBwb3NzaWJsZSB0bworICAgICAgICAgKiBtYWtlIGEgbW9yZSByZWZpbmVkIGFkanVzdG1lbnQgb2YgdGhlIG9yaWdpbmFsIHJ1bGVzIGZpcnN0LCBidXQgaW4KKyAgICAgICAgICogbW9zdCBjYXNlcyB0aGlzIGV4dHJhIGVmZm9ydCB3aWxsIGdvIHRvIHdhc3RlIG9uY2Ugd2UgYWRqdXN0IHRoZSBkYXkKKyAgICAgICAgICogcnVsZXMgYW55d2F5LiAqLworICAgICAgICBzd2l0Y2ggKHN0YXJ0VGltZU1vZGUpIHsKKyAgICAgICAgY2FzZSBVVENfVElNRToKKyAgICAgICAgICAgIHN0YXJ0VGltZSArPSByYXdPZmZzZXQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICB3aGlsZSAoc3RhcnRUaW1lIDwgMCkgeworICAgICAgICAgICAgc3RhcnRUaW1lICs9IG1pbGxpc1BlckRheTsKKyAgICAgICAgICAgIHN0YXJ0RGF5T2ZXZWVrID0gMSArICgoc3RhcnREYXlPZldlZWsrNSkgJSA3KTsgLy8gQmFjayAxIGRheQorICAgICAgICB9CisgICAgICAgIHdoaWxlIChzdGFydFRpbWUgPj0gbWlsbGlzUGVyRGF5KSB7CisgICAgICAgICAgICBzdGFydFRpbWUgLT0gbWlsbGlzUGVyRGF5OworICAgICAgICAgICAgc3RhcnREYXlPZldlZWsgPSAxICsgKHN0YXJ0RGF5T2ZXZWVrICUgNyk7IC8vIEZvcndhcmQgMSBkYXkKKyAgICAgICAgfQorCisgICAgICAgIHN3aXRjaCAoZW5kVGltZU1vZGUpIHsKKyAgICAgICAgY2FzZSBVVENfVElNRToKKyAgICAgICAgICAgIGVuZFRpbWUgKz0gcmF3T2Zmc2V0ICsgZHN0U2F2aW5nczsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFNUQU5EQVJEX1RJTUU6CisgICAgICAgICAgICBlbmRUaW1lICs9IGRzdFNhdmluZ3M7CisgICAgICAgIH0KKyAgICAgICAgd2hpbGUgKGVuZFRpbWUgPCAwKSB7CisgICAgICAgICAgICBlbmRUaW1lICs9IG1pbGxpc1BlckRheTsKKyAgICAgICAgICAgIGVuZERheU9mV2VlayA9IDEgKyAoKGVuZERheU9mV2Vlays1KSAlIDcpOyAvLyBCYWNrIDEgZGF5CisgICAgICAgIH0KKyAgICAgICAgd2hpbGUgKGVuZFRpbWUgPj0gbWlsbGlzUGVyRGF5KSB7CisgICAgICAgICAgICBlbmRUaW1lIC09IG1pbGxpc1BlckRheTsKKyAgICAgICAgICAgIGVuZERheU9mV2VlayA9IDEgKyAoZW5kRGF5T2ZXZWVrICUgNyk7IC8vIEZvcndhcmQgMSBkYXkKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFBhY2sgdGhlIHN0YXJ0IGFuZCBlbmQgcnVsZXMgaW50byBhbiBhcnJheSBvZiBieXRlcy4gIE9ubHkgcGFjaworICAgICAqIGRhdGEgd2hpY2ggaXMgbm90IHByZXNlcnZlZCBieSBtYWtlUnVsZXNDb21wYXRpYmxlLgorICAgICAqLworICAgIHByaXZhdGUgYnl0ZVtdIHBhY2tSdWxlcygpCisgICAgeworICAgICAgICBieXRlW10gcnVsZXMgPSBuZXcgYnl0ZVs2XTsKKyAgICAgICAgcnVsZXNbMF0gPSAoYnl0ZSlzdGFydERheTsKKyAgICAgICAgcnVsZXNbMV0gPSAoYnl0ZSlzdGFydERheU9mV2VlazsKKyAgICAgICAgcnVsZXNbMl0gPSAoYnl0ZSllbmREYXk7CisgICAgICAgIHJ1bGVzWzNdID0gKGJ5dGUpZW5kRGF5T2ZXZWVrOworCisgICAgICAgIC8vIEFzIG9mIHNlcmlhbCB2ZXJzaW9uIDIsIGluY2x1ZGUgdGltZSBtb2RlcworICAgICAgICBydWxlc1s0XSA9IChieXRlKXN0YXJ0VGltZU1vZGU7CisgICAgICAgIHJ1bGVzWzVdID0gKGJ5dGUpZW5kVGltZU1vZGU7CisKKyAgICAgICAgcmV0dXJuIHJ1bGVzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdpdmVuIGFuIGFycmF5IG9mIGJ5dGVzIHByb2R1Y2VkIGJ5IHBhY2tSdWxlcywgaW50ZXJwcmV0IHRoZW0KKyAgICAgKiBhcyB0aGUgc3RhcnQgYW5kIGVuZCBydWxlcy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgdW5wYWNrUnVsZXMoYnl0ZVtdIHJ1bGVzKQorICAgIHsKKyAgICAgICAgc3RhcnREYXkgICAgICAgPSBydWxlc1swXTsKKyAgICAgICAgc3RhcnREYXlPZldlZWsgPSBydWxlc1sxXTsKKyAgICAgICAgZW5kRGF5ICAgICAgICAgPSBydWxlc1syXTsKKyAgICAgICAgZW5kRGF5T2ZXZWVrICAgPSBydWxlc1szXTsKKworICAgICAgICAvLyBBcyBvZiBzZXJpYWwgdmVyc2lvbiAyLCBpbmNsdWRlIHRpbWUgbW9kZXMKKyAgICAgICAgaWYgKHJ1bGVzLmxlbmd0aCA+PSA2KSB7CisgICAgICAgICAgICBzdGFydFRpbWVNb2RlID0gcnVsZXNbNF07CisgICAgICAgICAgICBlbmRUaW1lTW9kZSAgID0gcnVsZXNbNV07CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYWNrIHRoZSBzdGFydCBhbmQgZW5kIHRpbWVzIGludG8gYW4gYXJyYXkgb2YgYnl0ZXMuICBUaGlzIGlzIHJlcXVpcmVkCisgICAgICogYXMgb2Ygc2VyaWFsIHZlcnNpb24gMi4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludFtdIHBhY2tUaW1lcygpIHsKKyAgICAgICAgaW50W10gdGltZXMgPSBuZXcgaW50WzJdOworICAgICAgICB0aW1lc1swXSA9IHN0YXJ0VGltZTsKKyAgICAgICAgdGltZXNbMV0gPSBlbmRUaW1lOworICAgICAgICByZXR1cm4gdGltZXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogVW5wYWNrIHRoZSBzdGFydCBhbmQgZW5kIHRpbWVzIGZyb20gYW4gYXJyYXkgb2YgYnl0ZXMuICBUaGlzIGlzIHJlcXVpcmVkCisgICAgICogYXMgb2Ygc2VyaWFsIHZlcnNpb24gMi4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgdW5wYWNrVGltZXMoaW50W10gdGltZXMpIHsKKyAgICAgICAgc3RhcnRUaW1lID0gdGltZXNbMF07CisgICAgICAgIGVuZFRpbWUgPSB0aW1lc1sxXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTYXZlIHRoZSBzdGF0ZSBvZiB0aGlzIG9iamVjdCB0byBhIHN0cmVhbSAoaS5lLiwgc2VyaWFsaXplIGl0KS4KKyAgICAgKgorICAgICAqIEBzZXJpYWxEYXRhIFdlIHdyaXRlIG91dCB0d28gZm9ybWF0cywgYSBKREsgMS4xIGNvbXBhdGlibGUgZm9ybWF0LCB1c2luZworICAgICAqIDxjb2RlPkRPV19JTl9NT05USF9NT0RFPC9jb2RlPiBydWxlcywgaW4gdGhlIHJlcXVpcmVkIHNlY3Rpb24sIGZvbGxvd2VkCisgICAgICogYnkgdGhlIGZ1bGwgcnVsZXMsIGluIHBhY2tlZCBmb3JtYXQsIGluIHRoZSBvcHRpb25hbCBzZWN0aW9uLiAgVGhlCisgICAgICogb3B0aW9uYWwgc2VjdGlvbiB3aWxsIGJlIGlnbm9yZWQgYnkgSkRLIDEuMSBjb2RlIHVwb24gc3RyZWFtIGluLgorICAgICAqIDxwPiBDb250ZW50cyBvZiB0aGUgb3B0aW9uYWwgc2VjdGlvbjogVGhlIGxlbmd0aCBvZiBhIGJ5dGUgYXJyYXkgaXMKKyAgICAgKiBlbWl0dGVkIChpbnQpOyB0aGlzIGlzIDQgYXMgb2YgdGhpcyByZWxlYXNlLiBUaGUgYnl0ZSBhcnJheSBvZiB0aGUgZ2l2ZW4KKyAgICAgKiBsZW5ndGggaXMgZW1pdHRlZC4gVGhlIGNvbnRlbnRzIG9mIHRoZSBieXRlIGFycmF5IGFyZSB0aGUgdHJ1ZSB2YWx1ZXMgb2YKKyAgICAgKiB0aGUgZmllbGRzIDxjb2RlPnN0YXJ0RGF5PC9jb2RlPiwgPGNvZGU+c3RhcnREYXlPZldlZWs8L2NvZGU+LAorICAgICAqIDxjb2RlPmVuZERheTwvY29kZT4sIGFuZCA8Y29kZT5lbmREYXlPZldlZWs8L2NvZGU+LiAgVGhlIHZhbHVlcyBvZiB0aGVzZQorICAgICAqIGZpZWxkcyBpbiB0aGUgcmVxdWlyZWQgc2VjdGlvbiBhcmUgYXBwcm94aW1hdGUgdmFsdWVzIHN1aXRlZCB0byB0aGUgcnVsZQorICAgICAqIG1vZGUgPGNvZGU+RE9XX0lOX01PTlRIX01PREU8L2NvZGU+LCB3aGljaCBpcyB0aGUgb25seSBtb2RlIHJlY29nbml6ZWQgYnkKKyAgICAgKiBKREsgMS4xLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCB3cml0ZU9iamVjdChPYmplY3RPdXRwdXRTdHJlYW0gc3RyZWFtKQorICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICAvLyBDb25zdHJ1Y3QgYSBiaW5hcnkgcnVsZQorICAgICAgICBieXRlW10gcnVsZXMgPSBwYWNrUnVsZXMoKTsKKyAgICAgICAgaW50W10gdGltZXMgPSBwYWNrVGltZXMoKTsKKworICAgICAgICAvLyBDb252ZXJ0IHRvIDEuMSBGQ1MgcnVsZXMuICBUaGlzIHN0ZXAgbWF5IGNhdXNlIHVzIHRvIGxvc2UgaW5mb3JtYXRpb24uCisgICAgICAgIG1ha2VSdWxlc0NvbXBhdGlibGUoKTsKKworICAgICAgICAvLyBXcml0ZSBvdXQgdGhlIDEuMSBGQ1MgcnVsZXMKKyAgICAgICAgc3RyZWFtLmRlZmF1bHRXcml0ZU9iamVjdCgpOworCisgICAgICAgIC8vIFdyaXRlIG91dCB0aGUgYmluYXJ5IHJ1bGVzIGluIHRoZSBvcHRpb25hbCBkYXRhIGFyZWEgb2YgdGhlIHN0cmVhbS4KKyAgICAgICAgc3RyZWFtLndyaXRlSW50KHJ1bGVzLmxlbmd0aCk7CisgICAgICAgIHN0cmVhbS53cml0ZShydWxlcyk7CisgICAgICAgIHN0cmVhbS53cml0ZU9iamVjdCh0aW1lcyk7CisKKyAgICAgICAgLy8gUmVjb3ZlciB0aGUgb3JpZ2luYWwgcnVsZXMuICBUaGlzIHJlY292ZXJzIHRoZSBpbmZvcm1hdGlvbiBsb3N0CisgICAgICAgIC8vIGJ5IG1ha2VSdWxlc0NvbXBhdGlibGUuCisgICAgICAgIHVucGFja1J1bGVzKHJ1bGVzKTsKKyAgICAgICAgdW5wYWNrVGltZXModGltZXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlY29uc3RpdHV0ZSB0aGlzIG9iamVjdCBmcm9tIGEgc3RyZWFtIChpLmUuLCBkZXNlcmlhbGl6ZSBpdCkuCisgICAgICoKKyAgICAgKiBXZSBoYW5kbGUgYm90aCBKREsgMS4xCisgICAgICogYmluYXJ5IGZvcm1hdHMgYW5kIGZ1bGwgZm9ybWF0cyB3aXRoIGEgcGFja2VkIGJ5dGUgYXJyYXkuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHJlYWRPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0gc3RyZWFtKQorICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uLCBDbGFzc05vdEZvdW5kRXhjZXB0aW9uCisgICAgeworICAgICAgICBzdHJlYW0uZGVmYXVsdFJlYWRPYmplY3QoKTsKKworICAgICAgICBpZiAoc2VyaWFsVmVyc2lvbk9uU3RyZWFtIDwgMSkKKyAgICAgICAgeworICAgICAgICAgICAgLy8gRml4IGEgYnVnIGluIHRoZSAxLjEgU2ltcGxlVGltZVpvbmUgY29kZSAtLSBuYW1lbHksCisgICAgICAgICAgICAvLyBzdGFydERheU9mV2VlayBhbmQgZW5kRGF5T2ZXZWVrIHdlcmUgdXN1YWxseSB1bmluaXRpYWxpemVkLiAgV2UgY2FuJ3QgZG8KKyAgICAgICAgICAgIC8vIHRvbyBtdWNoLCBzbyB3ZSBhc3N1bWUgU1VOREFZLCB3aGljaCBhY3R1YWxseSB3b3JrcyBtb3N0IG9mIHRoZSB0aW1lLgorICAgICAgICAgICAgaWYgKHN0YXJ0RGF5T2ZXZWVrID09IDApIHN0YXJ0RGF5T2ZXZWVrID0gQ2FsZW5kYXIuU1VOREFZOworICAgICAgICAgICAgaWYgKGVuZERheU9mV2VlayA9PSAwKSBlbmREYXlPZldlZWsgPSBDYWxlbmRhci5TVU5EQVk7CisKKyAgICAgICAgICAgIC8vIFRoZSB2YXJpYWJsZXMgZHN0U2F2aW5ncywgc3RhcnRNb2RlLCBhbmQgZW5kTW9kZSBhcmUgcG9zdC0xLjEsIHNvIHRoZXkKKyAgICAgICAgICAgIC8vIHdvbid0IGJlIHByZXNlbnQgaWYgd2UncmUgcmVhZGluZyBmcm9tIGEgMS4xIHN0cmVhbS4gIEZpeCB0aGVtIHVwLgorICAgICAgICAgICAgc3RhcnRNb2RlID0gZW5kTW9kZSA9IERPV19JTl9NT05USF9NT0RFOworICAgICAgICAgICAgZHN0U2F2aW5ncyA9IG1pbGxpc1BlckhvdXI7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAgICAvLyBGb3IgMS4xLjQsIGluIGFkZGl0aW9uIHRvIHRoZSAzIG5ldyBpbnN0YW5jZSB2YXJpYWJsZXMsIHdlIGFsc28KKyAgICAgICAgICAgIC8vIHN0b3JlIHRoZSBhY3R1YWwgcnVsZXMgKHdoaWNoIGhhdmUgbm90IGJlIG1hZGUgY29tcGF0aWJsZSB3aXRoIDEuMSkKKyAgICAgICAgICAgIC8vIGluIHRoZSBvcHRpb25hbCBhcmVhLiAgUmVhZCB0aGVtIGluIGhlcmUgYW5kIHBhcnNlIHRoZW0uCisgICAgICAgICAgICBpbnQgbGVuZ3RoID0gc3RyZWFtLnJlYWRJbnQoKTsKKyAgICAgICAgICAgIGJ5dGVbXSBydWxlcyA9IG5ldyBieXRlW2xlbmd0aF07CisgICAgICAgICAgICBzdHJlYW0ucmVhZEZ1bGx5KHJ1bGVzKTsKKyAgICAgICAgICAgIHVucGFja1J1bGVzKHJ1bGVzKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzZXJpYWxWZXJzaW9uT25TdHJlYW0gPj0gMikgeworICAgICAgICAgICAgaW50W10gdGltZXMgPSAoaW50W10pIHN0cmVhbS5yZWFkT2JqZWN0KCk7CisgICAgICAgICAgICB1bnBhY2tUaW1lcyh0aW1lcyk7CisgICAgICAgIH0KKworICAgICAgICBzZXJpYWxWZXJzaW9uT25TdHJlYW0gPSBjdXJyZW50U2VyaWFsVmVyc2lvbjsKKyAgICB9Cit9CisKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9TaW1wbGVUaW1lWm9uZUFkYXB0ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL1NpbXBsZVRpbWVab25lQWRhcHRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM2NjlmMGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9TaW1wbGVUaW1lWm9uZUFkYXB0ZXIuamF2YQpAQCAtMCwwICsxLDE1NyBAQAorLyogQ29weXJpZ2h0IChjKSAyMDAwIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L3V0aWwvQXR0aWMvU2ltcGxlVGltZVpvbmVBZGFwdGVyLmphdmEsdiAkIAorICogJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6MzAgJCAKKyAqICRSZXZpc2lvbjogMS4yICQKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworCisvKioKKyAqIDxjb2RlPlNpbXBsZVRpbWVab25lQWRhcHRlcjwvY29kZT4gd3JhcHMgYQorICogY29tLmlibS5pY3UudXRpbC5TaW1wbGVUaW1lWm9uZSBhbmQgaW5oZXJpdHMgZnJvbSBqYXZhLnV0aWwuVGltZVpvbmUuCisgKiBXaXRob3V0IHRoaXMgY2xhc3MsIHdlIHdvdWxkIG5lZWQgdG8gJ3BvcnQnIGphdmEudXRpbC5EYXRlIHRvCisgKiBjb20uaWJtLmljdS51dGlsIGFzIHdlbGwsIHNvIHRoYXQgRGF0ZSBjb3VsZCBpbnRlcm9wZXJhdGUgcHJvcGVybHkgd2l0aAorICogdGhlIGNvbS5pYm0uaWN1LnV0aWwgVGltZVpvbmUgYW5kIENhbGVuZGFyIGNsYXNzZXMuICBXaXRoIHRoaXMgY2xhc3MsCisgKiB3ZSBjYW4gKG1vc3RseSkgdXNlIGphdmEudXRpbC5EYXRlIHRvZ2V0aGVyIHdpdGggY29tLmlibS5pY3UudXRpbAorICogY2xhc3Nlcy4KKyAqCisgKiA8cD5UaGlzIHNvbHV0aW9uIGlzIGltcGVyZmVjdCBiZWNhdXNlIG9mIHRoZSBmYXVsdHkgZGVzaWduIG9mCisgKiBqYXZhLnV0aWwuVGltZVpvbmUuICBTcGVjaWZpY2FsbHksIFRaIGNvbnRhaW5zIGEgcGFja2FnZSBwcml2YXRlCisgKiBtZXRob2QsIGdldE9mZnNldCgpLCB0aGF0IHNob3VsZCByZWFsbHkgYmUgcHVibGljLiAgQmVjYXVzZSBpdCBpcworICogcGFja2FnZSBwcml2YXRlLCBpdCBjYW5ub3QgYmUgb3ZlcnJpZGRlbiBmcm9tIHdoZXJlIHdlIGFyZSwgYW5kIHdlCisgKiBjYW5ub3QgcHJvcGVybHkgZGVsZWdhdGUgaXRzIG9wZXJhdGlvbiB0byBvdXIgY29udGFpbmVkCisgKiBjb20uaWJtLmljdS51dGlsLlNUWiBvYmplY3QuCisgKgorICogPHA+Rm9yIHRoZSBtb21lbnQgd2UgbGl2ZSB3aXRoIHRoaXMgcHJvYmxlbS4gIEl0IGFwcGVhciBub3QgdG8KKyAqIGNhdXNlIHRvbyBtdWNoIHRyb3VibGUgc2luY2UgbW9zdCByZWFsIGNvbXB1dGF0aW9ucyBoYXBwZW4gdXNpbmcKKyAqIHRoZSBjb20uaWJtLmljdS51dGlsIGNsYXNzZXMuICBIb3dldmVyLCBpZiB0aGlzIGJlY29tZXMgYSBwcm9ibGVtIGluCisgKiB0aGUgZnV0dXJlLCB3ZSB3aWxsIGhhdmUgdG8gc3RvcCB1c2luZyB0aGlzIGFkYXB0ZXIsIGFuZCAncG9ydCcKKyAqIGphdmEudXRpbC5EYXRlIGludG8gY29tLmlibS5pY3UudXRpbC4KKyAqCisgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUjc2V0RGVmYXVsdAorICogQGF1dGhvciBBbGFuIExpdQorICovCitwdWJsaWMgY2xhc3MgU2ltcGxlVGltZVpvbmVBZGFwdGVyIGV4dGVuZHMgamF2YS51dGlsLlRpbWVab25lIHsKKworICAgIC8qKgorICAgICAqIFRoZSBjb250YWluZWQgY29tLmlibS5pY3UudXRpbC5TaW1wbGVUaW1lWm9uZSBvYmplY3QuCisgICAgICogV2UgZGVsZWdhdGUgYWxsIG1ldGhvZHMgdG8gdGhpcyBvYmplY3QuCisgICAgICovCisgICAgcHJpdmF0ZSBTaW1wbGVUaW1lWm9uZSB6b25lOworCisgICAgcHVibGljIFNpbXBsZVRpbWVab25lQWRhcHRlcihTaW1wbGVUaW1lWm9uZSB6b25lKSB7CisgICAgICAgIHRoaXMuem9uZSA9IHpvbmU7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgVGltZVpvbmUKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldElEKCkgeworICAgICAgICByZXR1cm4gem9uZS5nZXRJRCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlIFRpbWVab25lCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0SUQoU3RyaW5nIElEKSB7CisgICAgICAgIHpvbmUuc2V0SUQoSUQpOworICAgIH0gICAgCisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBUaW1lWm9uZQorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGhhc1NhbWVSdWxlcyhqYXZhLnV0aWwuVGltZVpvbmUgb3RoZXIpIHsKKyAgICAgICAgcmV0dXJuIG90aGVyIGluc3RhbmNlb2YgU2ltcGxlVGltZVpvbmVBZGFwdGVyICYmCisgICAgICAgICAgICB6b25lLmhhc1NhbWVSdWxlcygoKFNpbXBsZVRpbWVab25lQWRhcHRlcilvdGhlcikuem9uZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgVGltZVpvbmUKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldE9mZnNldChpbnQgZXJhLCBpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF5LCBpbnQgZGF5T2ZXZWVrLAorICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtaWxsaXMpIHsKKyAgICAgICAgcmV0dXJuIHpvbmUuZ2V0T2Zmc2V0KGVyYSwgeWVhciwgbW9udGgsIGRheSwgZGF5T2ZXZWVrLCBtaWxsaXMpOworICAgIH0KKworICAgIC8vIFRoaXMgZG9lc24ndCB3b3JrISBCZWNhdXNlIHRoaXMgaXMgYSBwYWNrYWdlLXByaXZhdGUgbWV0aG9kLAorICAgIC8vIGl0IGNhbm5vdCBvdmVycmlkZSB0aGUgY29ycmVzcG9uZGluZyBtZXRob2QgaW4gamF2YS51dGlsLlRaLgorICAgIC8vIFRoaXMgcmVmbGVjdHMgYSBmdW5kYW1lbnRhbCBidWcgaW4gdGhlIGFyY2hpdGVjdHVyZSBvZgorICAgIC8vIGphdmEudXRpbC5UWi4gIElmIG5vdCBmb3IgdGhpcywgdGhpcyBhZGFwdGVyIGNsYXNzIHdvdWxkCisgICAgLy8gd29yayBmbGF3bGVzc2x5LiAtIGxpdQorLy8hICAgIC8qKgorLy8hICAgICAqIE92ZXJyaWRlIFRpbWVab25lCisvLyEgICAgICovCisvLyEgICAgaW50IGdldE9mZnNldChpbnQgZXJhLCBpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF5LCBpbnQgZGF5T2ZXZWVrLAorLy8hICAgICAgICAgICAgICAgICAgaW50IG1pbGxpcywgaW50IG1vbnRoTGVuZ3RoLCBpbnQgcHJldk1vbnRoTGVuZ3RoKSB7CisvLyEgICAgICAgIHJldHVybiB6b25lLmdldE9mZnNldChlcmEsIHllYXIsIG1vbnRoLCBkYXksIGRheU9mV2VlaywKKy8vISAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbGxpcywgbW9udGhMZW5ndGgsIHByZXZNb250aExlbmd0aCk7CisvLyEgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIFRpbWVab25lCisgICAgICogR2V0cyB0aGUgR01UIG9mZnNldCBmb3IgdGhpcyB0aW1lIHpvbmUuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRSYXdPZmZzZXQoKSB7CisgICAgICAgIHJldHVybiB6b25lLmdldFJhd09mZnNldCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlcyBUaW1lWm9uZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFJhd09mZnNldChpbnQgb2Zmc2V0TWlsbGlzKSB7CisgICAgICAgIHpvbmUuc2V0UmF3T2Zmc2V0KG9mZnNldE1pbGxpcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIFRpbWVab25lCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gdXNlRGF5bGlnaHRUaW1lKCkgeworICAgICAgICByZXR1cm4gem9uZS51c2VEYXlsaWdodFRpbWUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgVGltZVpvbmUKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpbkRheWxpZ2h0VGltZShEYXRlIGRhdGUpIHsKKyAgICAgICAgcmV0dXJuIHpvbmUuaW5EYXlsaWdodFRpbWUoZGF0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIENsb25lYWJsZQorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKSB7CisgICAgICAgIHJldHVybiBuZXcgU2ltcGxlVGltZVpvbmVBZGFwdGVyKChTaW1wbGVUaW1lWm9uZSl6b25lLmNsb25lKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlIGhhc2hDb2RlLgorICAgICAqLworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgaW50IGhhc2hDb2RlKCkgeworICAgICAgICByZXR1cm4gem9uZS5oYXNoQ29kZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhcmVzIHRoZSBlcXVhbGl0eSBvZiB0d28gU2ltcGxlVGltZVpvbmUgb2JqZWN0cy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBvYmogIFRoZSBTaW1wbGVUaW1lWm9uZSBvYmplY3QgdG8gYmUgY29tcGFyZWQgd2l0aC4KKyAgICAgKiBAcmV0dXJuICAgICBUcnVlIGlmIHRoZSBnaXZlbiBvYmogaXMgdGhlIHNhbWUgYXMgdGhpcyBTaW1wbGVUaW1lWm9uZQorICAgICAqICAgICAgICAgICAgIG9iamVjdDsgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKSB7CisgICAgICAgIGlmIChvYmogaW5zdGFuY2VvZiBTaW1wbGVUaW1lWm9uZUFkYXB0ZXIpIHsKKyAgICAgICAgICAgIG9iaiA9ICgoU2ltcGxlVGltZVpvbmVBZGFwdGVyKW9iaikuem9uZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gem9uZS5lcXVhbHMob2JqKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyB0aW1lIHpvbmUuCisgICAgICogQHJldHVybiAgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyB0aW1lIHpvbmUuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgLy8gU2hvdWxkIHByb2JhYmx5IHNob3cgb3VyIGNsYXNzIG5hbWUgaGVyZS4uLmZpeCBsYXRlci4KKyAgICAgICAgcmV0dXJuIHpvbmUudG9TdHJpbmcoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9UaW1lWm9uZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVGltZVpvbmUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zZWIxZTE3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVGltZVpvbmUuamF2YQpAQCAtMCwwICsxLDY5MSBAQAorLyoKKyAqIEAoIylUaW1lWm9uZS5qYXZhCTEuNTEgMDAvMDEvMTkKKyAqCisgKgorICogICBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqLworCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKK2ltcG9ydCBqYXZhLmlvLlNlcmlhbGl6YWJsZTsKK2ltcG9ydCBqYXZhLmxhbmcucmVmLlNvZnRSZWZlcmVuY2U7CitpbXBvcnQgamF2YS5zZWN1cml0eS5BY2Nlc3NDb250cm9sbGVyOworaW1wb3J0IGphdmEuc2VjdXJpdHkuUHJpdmlsZWdlZEFjdGlvbjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5OdW1iZXJGb3JtYXQ7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgc3VuLnNlY3VyaXR5LmFjdGlvbi5HZXRQcm9wZXJ0eUFjdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKKworLyoqCisgKiA8Y29kZT5UaW1lWm9uZTwvY29kZT4gcmVwcmVzZW50cyBhIHRpbWUgem9uZSBvZmZzZXQsIGFuZCBhbHNvIGZpZ3VyZXMgb3V0IGRheWxpZ2h0CisgKiBzYXZpbmdzLgorICoKKyAqIDxwPgorICogVHlwaWNhbGx5LCB5b3UgZ2V0IGEgPGNvZGU+VGltZVpvbmU8L2NvZGU+IHVzaW5nIDxjb2RlPmdldERlZmF1bHQ8L2NvZGU+CisgKiB3aGljaCBjcmVhdGVzIGEgPGNvZGU+VGltZVpvbmU8L2NvZGU+IGJhc2VkIG9uIHRoZSB0aW1lIHpvbmUgd2hlcmUgdGhlIHByb2dyYW0KKyAqIGlzIHJ1bm5pbmcuIEZvciBleGFtcGxlLCBmb3IgYSBwcm9ncmFtIHJ1bm5pbmcgaW4gSmFwYW4sIDxjb2RlPmdldERlZmF1bHQ8L2NvZGU+CisgKiBjcmVhdGVzIGEgPGNvZGU+VGltZVpvbmU8L2NvZGU+IG9iamVjdCBiYXNlZCBvbiBKYXBhbmVzZSBTdGFuZGFyZCBUaW1lLgorICoKKyAqIDxwPgorICogWW91IGNhbiBhbHNvIGdldCBhIDxjb2RlPlRpbWVab25lPC9jb2RlPiB1c2luZyA8Y29kZT5nZXRUaW1lWm9uZTwvY29kZT4KKyAqIGFsb25nIHdpdGggYSB0aW1lIHpvbmUgSUQuIEZvciBpbnN0YW5jZSwgdGhlIHRpbWUgem9uZSBJRCBmb3IgdGhlCisgKiBVLlMuIFBhY2lmaWMgVGltZSB6b25lIGlzICJBbWVyaWNhL0xvc19BbmdlbGVzIi4gU28sIHlvdSBjYW4gZ2V0IGEKKyAqIFUuUy4gUGFjaWZpYyBUaW1lIDxjb2RlPlRpbWVab25lPC9jb2RlPiBvYmplY3Qgd2l0aDoKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIFRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkFtZXJpY2EvTG9zX0FuZ2VsZXMiKTsKKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogWW91IGNhbiB1c2UgPGNvZGU+Z2V0QXZhaWxhYmxlSURzPC9jb2RlPiBtZXRob2QgdG8gaXRlcmF0ZSB0aHJvdWdoCisgKiBhbGwgdGhlIHN1cHBvcnRlZCB0aW1lIHpvbmUgSURzLiBZb3UgY2FuIHRoZW4gY2hvb3NlIGEKKyAqIHN1cHBvcnRlZCBJRCB0byBnZXQgYSA8Y29kZT5UaW1lWm9uZTwvY29kZT4uCisgKiBJZiB0aGUgdGltZSB6b25lIHlvdSB3YW50IGlzIG5vdCByZXByZXNlbnRlZCBieSBvbmUgb2YgdGhlCisgKiBzdXBwb3J0ZWQgSURzLCB0aGVuIHlvdSBjYW4gY3JlYXRlIGEgY3VzdG9tIHRpbWUgem9uZSBJRCB3aXRoCisgKiB0aGUgZm9sbG93aW5nIHN5bnRheDoKKyAqCisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBHTVRbK3wtXWhoW1s6XW1tXQorICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogRm9yIGV4YW1wbGUsIHlvdSBtaWdodCBzcGVjaWZ5IEdNVCsxNDowMCBhcyBhIGN1c3RvbQorICogdGltZSB6b25lIElELiAgVGhlIDxjb2RlPlRpbWVab25lPC9jb2RlPiB0aGF0IGlzIHJldHVybmVkCisgKiB3aGVuIHlvdSBzcGVjaWZ5IGEgY3VzdG9tIHRpbWUgem9uZSBJRCBkb2VzIG5vdCBpbmNsdWRlCisgKiBkYXlsaWdodCBzYXZpbmdzIHRpbWUuCisgKiA8cD4KKyAqIEZvciBjb21wYXRpYmlsaXR5IHdpdGggSkRLIDEuMS54LCBzb21lIG90aGVyIHRocmVlLWxldHRlciB0aW1lIHpvbmUgSURzCisgKiAoc3VjaCBhcyAiUFNUIiwgIkNUVCIsICJBU1QiKSBhcmUgYWxzbyBzdXBwb3J0ZWQuIEhvd2V2ZXIsIDxzdHJvbmc+dGhlaXIKKyAqIHVzZSBpcyBkZXByZWNhdGVkPC9zdHJvbmc+IGJlY2F1c2UgdGhlIHNhbWUgYWJicmV2aWF0aW9uIGlzIG9mdGVuIHVzZWQKKyAqIGZvciBtdWx0aXBsZSB0aW1lIHpvbmVzIChmb3IgZXhhbXBsZSwgIkNTVCIgY291bGQgYmUgVS5TLiAiQ2VudHJhbCBTdGFuZGFyZAorICogVGltZSIgYW5kICJDaGluYSBTdGFuZGFyZCBUaW1lIiksIGFuZCB0aGUgSmF2YSBwbGF0Zm9ybSBjYW4gdGhlbiBvbmx5CisgKiByZWNvZ25pemUgb25lIG9mIHRoZW0uCisgKgorICoKKyAqIEBzZWUgICAgICAgICAgQ2FsZW5kYXIKKyAqIEBzZWUgICAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIKKyAqIEBzZWUgICAgICAgICAgU2ltcGxlVGltZVpvbmUKKyAqIEB2ZXJzaW9uICAgICAgMS41MSAwMS8xOS8wMAorICogQGF1dGhvciAgICAgICBNYXJrIERhdmlzLCBEYXZpZCBHb2xkc21pdGgsIENoZW4tTGllaCBIdWFuZywgQWxhbiBMaXUKKyAqIEBzaW5jZSAgICAgICAgSkRLMS4xCisgKi8KK2Fic3RyYWN0IHB1YmxpYyBjbGFzcyBUaW1lWm9uZSBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZSwgQ2xvbmVhYmxlIHsKKyAgICAvKioKKyAgICAgKiBTb2xlIGNvbnN0cnVjdG9yLiAgKEZvciBpbnZvY2F0aW9uIGJ5IHN1YmNsYXNzIGNvbnN0cnVjdG9ycywgdHlwaWNhbGx5CisgICAgICogaW1wbGljaXQuKQorICAgICAqLworICAgIHB1YmxpYyBUaW1lWm9uZSgpIHsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBIHN0eWxlIHNwZWNpZmllciBmb3IgPGNvZGU+Z2V0RGlzcGxheU5hbWUoKTwvY29kZT4gaW5kaWNhdGluZworICAgICAqIGEgc2hvcnQgbmFtZSwgc3VjaCBhcyAiUFNULiIKKyAgICAgKiBAc2VlICNMT05HCisgICAgICogQHNpbmNlIDEuMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNIT1JUID0gMDsKKworICAgIC8qKgorICAgICAqIEEgc3R5bGUgc3BlY2lmaWVyIGZvciA8Y29kZT5nZXREaXNwbGF5TmFtZSgpPC9jb2RlPiBpbmRpY2F0aW5nCisgICAgICogYSBsb25nIG5hbWUsIHN1Y2ggYXMgIlBhY2lmaWMgU3RhbmRhcmQgVGltZS4iCisgICAgICogQHNlZSAjU0hPUlQKKyAgICAgKiBAc2luY2UgMS4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTE9ORyAgPSAxOworCisgICAgLy8gQ29uc3RhbnRzIHVzZWQgaW50ZXJuYWxseTsgdW5pdCBpcyBtaWxsaXNlY29uZHMKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgT05FX01JTlVURSA9IDYwKjEwMDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE9ORV9IT1VSICAgPSA2MCpPTkVfTUlOVVRFOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBPTkVfREFZICAgID0gMjQqT05FX0hPVVI7CisKKyAgICAvKioKKyAgICAgKiBDYWNoZSB0byBob2xkIHRoZSBTaW1wbGVEYXRlRm9ybWF0IG9iamVjdHMgZm9yIGEgTG9jYWxlLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIEhhc2h0YWJsZSBjYWNoZWRMb2NhbGVEYXRhID0gbmV3IEhhc2h0YWJsZSgzKTsKKworICAgIC8vIFByb2NsYWltIHNlcmlhbGl6YXRpb24gY29tcGF0aWJpbGl0eSB3aXRoIEpESyAxLjEKKyAgICBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gMzU4MTQ2MzM2OTE2NjkyNDk2MUw7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB0aW1lIHpvbmUgb2Zmc2V0LCBmb3IgY3VycmVudCBkYXRlLCBtb2RpZmllZCBpbiBjYXNlIG9mCisgICAgICogZGF5bGlnaHQgc2F2aW5ncy4gVGhpcyBpcyB0aGUgb2Zmc2V0IHRvIGFkZCAqdG8qIFVUQyB0byBnZXQgbG9jYWwgdGltZS4KKyAgICAgKiBAcGFyYW0gZXJhIHRoZSBlcmEgb2YgdGhlIGdpdmVuIGRhdGUuCisgICAgICogQHBhcmFtIHllYXIgdGhlIHllYXIgaW4gdGhlIGdpdmVuIGRhdGUuCisgICAgICogQHBhcmFtIG1vbnRoIHRoZSBtb250aCBpbiB0aGUgZ2l2ZW4gZGF0ZS4KKyAgICAgKiBNb250aCBpcyAwLWJhc2VkLiBlLmcuLCAwIGZvciBKYW51YXJ5LgorICAgICAqIEBwYXJhbSBkYXkgdGhlIGRheS1pbi1tb250aCBvZiB0aGUgZ2l2ZW4gZGF0ZS4KKyAgICAgKiBAcGFyYW0gZGF5T2ZXZWVrIHRoZSBkYXktb2Ytd2VlayBvZiB0aGUgZ2l2ZW4gZGF0ZS4KKyAgICAgKiBAcGFyYW0gbWlsbGlzZWNvbmRzIHRoZSBtaWxsaXMgaW4gZGF5IGluIDxlbT5zdGFuZGFyZDwvZW0+IGxvY2FsIHRpbWUuCisgICAgICogQHJldHVybiB0aGUgb2Zmc2V0IHRvIGFkZCAqdG8qIEdNVCB0byBnZXQgbG9jYWwgdGltZS4KKyAgICAgKi8KKyAgICBhYnN0cmFjdCBwdWJsaWMgaW50IGdldE9mZnNldChpbnQgZXJhLCBpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkYXlPZldlZWssIGludCBtaWxsaXNlY29uZHMpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdGltZSB6b25lIG9mZnNldCwgZm9yIGN1cnJlbnQgZGF0ZSwgbW9kaWZpZWQgaW4gY2FzZSBvZgorICAgICAqIGRheWxpZ2h0IHNhdmluZ3MuIFRoaXMgaXMgdGhlIG9mZnNldCB0byBhZGQgKnRvKiBVVEMgdG8gZ2V0IGxvY2FsIHRpbWUuCisgICAgICogQHBhcmFtIGVyYSB0aGUgZXJhIG9mIHRoZSBnaXZlbiBkYXRlLgorICAgICAqIEBwYXJhbSB5ZWFyIHRoZSB5ZWFyIGluIHRoZSBnaXZlbiBkYXRlLgorICAgICAqIEBwYXJhbSBtb250aCB0aGUgbW9udGggaW4gdGhlIGdpdmVuIGRhdGUuCisgICAgICogTW9udGggaXMgMC1iYXNlZC4gZS5nLiwgMCBmb3IgSmFudWFyeS4KKyAgICAgKiBAcGFyYW0gZGF5IHRoZSBkYXktaW4tbW9udGggb2YgdGhlIGdpdmVuIGRhdGUuCisgICAgICogQHBhcmFtIGRheU9mV2VlayB0aGUgZGF5LW9mLXdlZWsgb2YgdGhlIGdpdmVuIGRhdGUuCisgICAgICogQHBhcmFtIG1pbGxpc2Vjb25kcyB0aGUgbWlsbGlzIGluIGRheSBpbiA8ZW0+c3RhbmRhcmQ8L2VtPiBsb2NhbCB0aW1lLgorICAgICAqIEBwYXJhbSBtb250aExlbmd0aCB0aGUgbGVuZ3RoIG9mIHRoZSBnaXZlbiBtb250aCBpbiBkYXlzLgorICAgICAqIEBwYXJhbSBwcmV2TW9udGhMZW5ndGggdGhlIGxlbmd0aCBvZiB0aGUgcHJldmlvdXMgbW9udGggaW4gZGF5cy4KKyAgICAgKiBAcmV0dXJuIHRoZSBvZmZzZXQgdG8gYWRkICp0byogR01UIHRvIGdldCBsb2NhbCB0aW1lLgorICAgICAqLworICAgIGludCBnZXRPZmZzZXQoaW50IGVyYSwgaW50IHllYXIsIGludCBtb250aCwgaW50IGRheSwKKwkJICBpbnQgZGF5T2ZXZWVrLCBpbnQgbWlsbGlzZWNvbmRzLCBpbnQgbW9udGhMZW5ndGgsIGludCBwcmV2TW9udGhMZW5ndGgpIHsKKwkvLyBEZWZhdWx0IGltcGxlbWVudGF0aW9uIHdoaWNoIGlnbm9yZXMgdGhlIG1vbnRoTGVuZ3RoLgorCS8vIFNpbXBsZVRpbWVab25lIG92ZXJyaWRlcyB0aGlzIGFuZCBhY3R1YWxseSB1c2VzIG1vbnRoTGVuZ3RoLgorCXJldHVybiBnZXRPZmZzZXQoZXJhLCB5ZWFyLCBtb250aCwgZGF5LCBkYXlPZldlZWssIG1pbGxpc2Vjb25kcyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIE5FV0NBTAorICAgICAqIEdldHMgdGhlIGxvY2FsIHRpbWUgem9uZSBvZmZzZXQgZm9yIHRoaXMgem9uZSwgZm9yIHRoZSBnaXZlbiBkYXRlLgorICAgICAqIEBwYXJhbSBleWVhciB0aGUgZXh0ZW5kZWQgR3JlZ29yaWFuIHllYXIsIHdpdGggMCA9IDEgQkMsIC0xID0gMiBCQywKKyAgICAgKiBldGMuCisgICAgICovCisgICAgaW50IGdldE9mZnNldChpbnQgZXllYXIsIGludCBtb250aCwgaW50IGRheU9mTW9udGgsIGludCBkYXlPZldlZWssCisgICAgICAgICAgICAgICAgICBpbnQgbWlsbGlzZWNvbmRzLCBpbnQgbW9udGhMZW5ndGgsIGludCBwcmV2TW9udGhMZW5ndGgpIHsKKyAgICAgICAgLy8gVEVNUE9SQVJZOiBDb252ZXJ0IHRoZSBleWVhciB0byBhbiBlcmEveWVhciBhbmQgY2FsbCBvbGQgQVBJCisgICAgICAgIGludCBlcmEgPSBHcmVnb3JpYW5DYWxlbmRhci5BRDsKKyAgICAgICAgaWYgKGV5ZWFyIDwgMSkgeworICAgICAgICAgICAgZXJhID0gR3JlZ29yaWFuQ2FsZW5kYXIuQkM7CisgICAgICAgICAgICBleWVhciA9IDEgLSBleWVhcjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZ2V0T2Zmc2V0KGVyYSwgZXllYXIsIG1vbnRoLCBkYXlPZk1vbnRoLCBkYXlPZldlZWssCisgICAgICAgICAgICAgICAgICAgICAgICAgbWlsbGlzZWNvbmRzLCBtb250aExlbmd0aCwgcHJldk1vbnRoTGVuZ3RoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBiYXNlIHRpbWUgem9uZSBvZmZzZXQgdG8gR01ULgorICAgICAqIFRoaXMgaXMgdGhlIG9mZnNldCB0byBhZGQgKnRvKiBVVEMgdG8gZ2V0IGxvY2FsIHRpbWUuCisgICAgICogQHBhcmFtIG9mZnNldE1pbGxpcyB0aGUgZ2l2ZW4gYmFzZSB0aW1lIHpvbmUgb2Zmc2V0IHRvIEdNVC4KKyAgICAgKi8KKyAgICBhYnN0cmFjdCBwdWJsaWMgdm9pZCBzZXRSYXdPZmZzZXQoaW50IG9mZnNldE1pbGxpcyk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHVubW9kaWZpZWQgb2Zmc2V0LCBOT1QgbW9kaWZpZWQgaW4gY2FzZSBvZiBkYXlsaWdodCBzYXZpbmdzLgorICAgICAqIFRoaXMgaXMgdGhlIG9mZnNldCB0byBhZGQgKnRvKiBVVEMgdG8gZ2V0IGxvY2FsIHRpbWUuCisgICAgICogQHJldHVybiB0aGUgdW5tb2RpZmllZCBvZmZzZXQgdG8gYWRkICp0byogVVRDIHRvIGdldCBsb2NhbCB0aW1lLgorICAgICAqLworICAgIGFic3RyYWN0IHB1YmxpYyBpbnQgZ2V0UmF3T2Zmc2V0KCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBJRCBvZiB0aGlzIHRpbWUgem9uZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBJRCBvZiB0aGlzIHRpbWUgem9uZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldElEKCkKKyAgICB7CisgICAgICAgIHJldHVybiBJRDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB0aW1lIHpvbmUgSUQuIFRoaXMgZG9lcyBub3QgY2hhbmdlIGFueSBvdGhlciBkYXRhIGluCisgICAgICogdGhlIHRpbWUgem9uZSBvYmplY3QuCisgICAgICogQHBhcmFtIElEIHRoZSBuZXcgdGltZSB6b25lIElELgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldElEKFN0cmluZyBJRCkKKyAgICB7CisgICAgICAgIGlmIChJRCA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgTnVsbFBvaW50ZXJFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLklEID0gSUQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5hbWUgb2YgdGhpcyB0aW1lIHpvbmUgc3VpdGFibGUgZm9yIHByZXNlbnRhdGlvbiB0byB0aGUgdXNlcgorICAgICAqIGluIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBsb25nIG5hbWUsIG5vdCBpbmNsdWRpbmcgZGF5bGlnaHQgc2F2aW5ncy4KKyAgICAgKiBJZiB0aGUgZGlzcGxheSBuYW1lIGlzIG5vdCBhdmFpbGFibGUgZm9yIHRoZSBsb2NhbGUsCisgICAgICogdGhlbiB0aGlzIG1ldGhvZCByZXR1cm5zIGEgc3RyaW5nIGluIHRoZSBmb3JtYXQKKyAgICAgKiA8Y29kZT5HTVRbKy1daGg6bW08L2NvZGU+LgorICAgICAqIEByZXR1cm4gdGhlIGh1bWFuLXJlYWRhYmxlIG5hbWUgb2YgdGhpcyB0aW1lIHpvbmUgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBzaW5jZSAxLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgU3RyaW5nIGdldERpc3BsYXlOYW1lKCkgeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheU5hbWUoZmFsc2UsIExPTkcsIExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuYW1lIG9mIHRoaXMgdGltZSB6b25lIHN1aXRhYmxlIGZvciBwcmVzZW50YXRpb24gdG8gdGhlIHVzZXIKKyAgICAgKiBpbiB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBsb25nIG5hbWUsIG5vdCBpbmNsdWRpbmcgZGF5bGlnaHQgc2F2aW5ncy4KKyAgICAgKiBJZiB0aGUgZGlzcGxheSBuYW1lIGlzIG5vdCBhdmFpbGFibGUgZm9yIHRoZSBsb2NhbGUsCisgICAgICogdGhlbiB0aGlzIG1ldGhvZCByZXR1cm5zIGEgc3RyaW5nIGluIHRoZSBmb3JtYXQKKyAgICAgKiA8Y29kZT5HTVRbKy1daGg6bW08L2NvZGU+LgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBzdXBwbHkgdGhlIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBodW1hbi1yZWFkYWJsZSBuYW1lIG9mIHRoaXMgdGltZSB6b25lIGluIHRoZSBnaXZlbiBsb2NhbGUKKyAgICAgKiBvciBpbiB0aGUgZGVmYXVsdCBsb2NhbGUgaWYgdGhlIGdpdmVuIGxvY2FsZSBpcyBub3QgcmVjb2duaXplZC4KKyAgICAgKiBAc2luY2UgMS4yCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFN0cmluZyBnZXREaXNwbGF5TmFtZShMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5TmFtZShmYWxzZSwgTE9ORywgbG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmFtZSBvZiB0aGlzIHRpbWUgem9uZSBzdWl0YWJsZSBmb3IgcHJlc2VudGF0aW9uIHRvIHRoZSB1c2VyCisgICAgICogaW4gdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIElmIHRoZSBkaXNwbGF5IG5hbWUgaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhlIGxvY2FsZSwKKyAgICAgKiB0aGVuIHRoaXMgbWV0aG9kIHJldHVybnMgYSBzdHJpbmcgaW4gdGhlIGZvcm1hdAorICAgICAqIDxjb2RlPkdNVFsrLV1oaDptbTwvY29kZT4uCisgICAgICogQHBhcmFtIGRheWxpZ2h0IGlmIHRydWUsIHJldHVybiB0aGUgZGF5bGlnaHQgc2F2aW5ncyBuYW1lLgorICAgICAqIEBwYXJhbSBzdHlsZSBlaXRoZXIgPGNvZGU+TE9ORzwvY29kZT4gb3IgPGNvZGU+U0hPUlQ8L2NvZGU+CisgICAgICogQHJldHVybiB0aGUgaHVtYW4tcmVhZGFibGUgbmFtZSBvZiB0aGlzIHRpbWUgem9uZSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHNpbmNlIDEuMgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoYm9vbGVhbiBkYXlsaWdodCwgaW50IHN0eWxlKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5TmFtZShkYXlsaWdodCwgc3R5bGUsIExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuYW1lIG9mIHRoaXMgdGltZSB6b25lIHN1aXRhYmxlIGZvciBwcmVzZW50YXRpb24gdG8gdGhlIHVzZXIKKyAgICAgKiBpbiB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBJZiB0aGUgZGlzcGxheSBuYW1lIGlzIG5vdCBhdmFpbGFibGUgZm9yIHRoZSBsb2NhbGUsCisgICAgICogdGhlbiB0aGlzIG1ldGhvZCByZXR1cm5zIGEgc3RyaW5nIGluIHRoZSBmb3JtYXQKKyAgICAgKiA8Y29kZT5HTVRbKy1daGg6bW08L2NvZGU+LgorICAgICAqIEBwYXJhbSBkYXlsaWdodCBpZiB0cnVlLCByZXR1cm4gdGhlIGRheWxpZ2h0IHNhdmluZ3MgbmFtZS4KKyAgICAgKiBAcGFyYW0gc3R5bGUgZWl0aGVyIDxjb2RlPkxPTkc8L2NvZGU+IG9yIDxjb2RlPlNIT1JUPC9jb2RlPgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBzdXBwbHkgdGhlIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBodW1hbi1yZWFkYWJsZSBuYW1lIG9mIHRoaXMgdGltZSB6b25lIGluIHRoZSBnaXZlbiBsb2NhbGUKKyAgICAgKiBvciBpbiB0aGUgZGVmYXVsdCBsb2NhbGUgaWYgdGhlIGdpdmVuIGxvY2FsZSBpcyBub3QgcmVjb2duaXplZC4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBzdHlsZSBpcyBpbnZhbGlkLgorICAgICAqIEBzaW5jZSAxLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKGJvb2xlYW4gZGF5bGlnaHQsIGludCBzdHlsZSwgTG9jYWxlIGxvY2FsZSkgeworICAgICAgICAvKiBOT1RFUzoKKyAgICAgICAgICogKDEpIFdlIHVzZSBTaW1wbGVEYXRlRm9ybWF0IGZvciBzaW1wbGljaXR5OyB3ZSBjb3VsZCBkbyB0aGlzCisgICAgICAgICAqIG1vcmUgZWZmaWNpZW50bHkgYnV0IGl0IHdvdWxkIGR1cGxpY2F0ZSB0aGUgU2ltcGxlRGF0ZUZvcm1hdCBjb2RlCisgICAgICAgICAqIGhlcmUsIHdoaWNoIGlzIHVuZGVzaXJhYmxlLgorICAgICAgICAgKiAoMikgQXR0ZW1wdHMgdG8gbW92ZSB0aGUgY29kZSBmcm9tIFNpbXBsZURhdGVGb3JtYXQgdG8gaGVyZSBhbHNvIHJ1bgorICAgICAgICAgKiBhZ3JvdW5kIGJlY2F1c2UgdGhpcyByZXF1aXJlcyBTaW1wbGVEYXRlRm9ybWF0IHRvIGtlZXAgYSBMb2NhbGUKKyAgICAgICAgICogb2JqZWN0IGFyb3VuZCwgd2hpY2ggaXQgY3VycmVudGx5IGRvZXNuJ3Q7IHRvIHN5bnRoZXNpemUgc3VjaCBhCisgICAgICAgICAqIGxvY2FsZSB1cG9uIHJlc3VycmVjdGlvbjsgYW5kIHRvIHNvbWVob3cgaGFuZGxlIHRoZSBzcGVjaWFsIGNhc2Ugb2YKKyAgICAgICAgICogY29uc3RydWN0aW9uIGZyb20gYSBEYXRlRm9ybWF0U3ltYm9scyBvYmplY3QuCisgICAgICAgICAqLworICAgICAgICBpZiAoc3R5bGUgIT0gU0hPUlQgJiYgc3R5bGUgIT0gTE9ORykgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBzdHlsZTogIiArIHN0eWxlKTsKKyAgICAgICAgfQorICAgICAgICAvLyBXZSBrZWVwIGEgY2FjaGUsIGluZGV4ZWQgYnkgbG9jYWxlLiAgVGhlIGNhY2hlIGNvbnRhaW5zIGEKKyAgICAgICAgLy8gU2ltcGxlRGF0ZUZvcm1hdCBvYmplY3QsIHdoaWNoIHdlIGNyZWF0ZSBvbiBkZW1hbmQuCisgICAgICAgIFNvZnRSZWZlcmVuY2UgZGF0YSA9IChTb2Z0UmVmZXJlbmNlKWNhY2hlZExvY2FsZURhdGEuZ2V0KGxvY2FsZSk7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm9ybWF0OworICAgICAgICBpZiAoZGF0YSA9PSBudWxsIHx8CisgICAgICAgICAgICAoZm9ybWF0ID0gKFNpbXBsZURhdGVGb3JtYXQpZGF0YS5nZXQoKSkgPT0gbnVsbCkgeworICAgICAgICAgICAgZm9ybWF0ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQobnVsbCwgbG9jYWxlKTsKKyAgICAgICAgICAgIGNhY2hlZExvY2FsZURhdGEucHV0KGxvY2FsZSwgbmV3IFNvZnRSZWZlcmVuY2UoZm9ybWF0KSk7CisgICAgICAgIH0KKyAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IFNpbXBsZVRpbWVab25lIGFzIGEgc3RhbmQtaW4gZm9yIHRoaXMgem9uZTsgdGhlIHN0YW5kLWluCisgICAgICAgIC8vIHdpbGwgaGF2ZSBubyBEU1QsIG9yIERTVCBkdXJpbmcgSmFudWFyeSwgYnV0IHRoZSBzYW1lIElEIGFuZCBvZmZzZXQsCisgICAgICAgIC8vIGFuZCBoZW5jZSB0aGUgc2FtZSBkaXNwbGF5IG5hbWUuICBXZSBkb24ndCBjYWNoZSB0aGVzZSBiZWNhdXNlCisgICAgICAgIC8vIHRoZXkncmUgc21hbGwgYW5kIGNoZWFwIHRvIGNyZWF0ZS4KKyAgICAgICAgU2ltcGxlVGltZVpvbmUgdHo7CisgICAgICAgIGlmIChkYXlsaWdodCAmJiB1c2VEYXlsaWdodFRpbWUoKSkgeworICAgICAgICAgICAgaW50IHNhdmluZ3MgPSBPTkVfSE9VUjsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgc2F2aW5ncyA9ICgoU2ltcGxlVGltZVpvbmUpIHRoaXMpLmdldERTVFNhdmluZ3MoKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7fQorICAgICAgICAgICAgdHogPSBuZXcgU2ltcGxlVGltZVpvbmUoZ2V0UmF3T2Zmc2V0KCksIGdldElEKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5KQU5VQVJZLCAxLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuRkVCUlVBUlksIDEsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYXZpbmdzKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHR6ID0gbmV3IFNpbXBsZVRpbWVab25lKGdldFJhd09mZnNldCgpLCBnZXRJRCgpKTsKKyAgICAgICAgfQorICAgICAgICBmb3JtYXQuYXBwbHlQYXR0ZXJuKHN0eWxlID09IExPTkcgPyAienp6eiIgOiAieiIpOyAgICAgIAorICAgICAgICBmb3JtYXQuc2V0VGltZVpvbmUodHopOworICAgICAgICAvLyBGb3JtYXQgYSBkYXRlIGluIEphbnVhcnkuICBXZSB1c2UgdGhlIHZhbHVlIDEwKk9ORV9EQVkgPT0gSmFuIDExIDE5NzAKKyAgICAgICAgLy8gMDowMCBHTVQuCisgICAgICAgIHJldHVybiBmb3JtYXQuZm9ybWF0KG5ldyBEYXRlKDg2NDAwMDAwMEwpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBRdWVyaWVzIGlmIHRoaXMgdGltZSB6b25lIHVzZXMgZGF5bGlnaHQgc2F2aW5ncyB0aW1lLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIHRpbWUgem9uZSB1c2VzIGRheWxpZ2h0IHNhdmluZ3MgdGltZSwKKyAgICAgKiBmYWxzZSwgb3RoZXJ3aXNlLgorICAgICAqLworICAgIGFic3RyYWN0IHB1YmxpYyBib29sZWFuIHVzZURheWxpZ2h0VGltZSgpOworCisgICAgLyoqCisgICAgICogUXVlcmllcyBpZiB0aGUgZ2l2ZW4gZGF0ZSBpcyBpbiBkYXlsaWdodCBzYXZpbmdzIHRpbWUgaW4KKyAgICAgKiB0aGlzIHRpbWUgem9uZS4KKyAgICAgKiBAcGFyYW0gZGF0ZSB0aGUgZ2l2ZW4gRGF0ZS4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIGRhdGUgaXMgaW4gZGF5bGlnaHQgc2F2aW5ncyB0aW1lLAorICAgICAqIGZhbHNlLCBvdGhlcndpc2UuCisgICAgICovCisgICAgYWJzdHJhY3QgcHVibGljIGJvb2xlYW4gaW5EYXlsaWdodFRpbWUoRGF0ZSBkYXRlKTsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIDxjb2RlPlRpbWVab25lPC9jb2RlPiBmb3IgdGhlIGdpdmVuIElELgorICAgICAqCisgICAgICogQHBhcmFtIElEIHRoZSBJRCBmb3IgYSA8Y29kZT5UaW1lWm9uZTwvY29kZT4sIGVpdGhlciBhbiBhYmJyZXZpYXRpb24KKyAgICAgKiBzdWNoIGFzICJQU1QiLCBhIGZ1bGwgbmFtZSBzdWNoIGFzICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgb3IgYSBjdXN0b20KKyAgICAgKiBJRCBzdWNoIGFzICJHTVQtODowMCIuIE5vdGUgdGhhdCB0aGUgc3VwcG9ydCBvZiBhYmJyZXZpYXRpb25zIGlzCisgICAgICogZm9yIEpESyAxLjEueCBjb21wYXRpYmlsaXR5IG9ubHkgYW5kIGZ1bGwgbmFtZXMgc2hvdWxkIGJlIHVzZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRoZSBzcGVjaWZpZWQgPGNvZGU+VGltZVpvbmU8L2NvZGU+LCBvciB0aGUgR01UIHpvbmUgaWYgdGhlIGdpdmVuIElECisgICAgICogY2Fubm90IGJlIHVuZGVyc3Rvb2QuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBzeW5jaHJvbml6ZWQgVGltZVpvbmUgZ2V0VGltZVpvbmUoU3RyaW5nIElEKSB7CisgICAgICAgIC8qIFdlIGZpcnN0IHRyeSB0byBsb29rdXAgdGhlIHpvbmUgSUQgaW4gb3VyIGhhc2h0YWJsZS4gIElmIHRoaXMgZmFpbHMsCisgICAgICAgICAqIHdlIHRyeSB0byBwYXJzZSBpdCBhcyBhIGN1c3RvbSBzdHJpbmcgR01UWystXWhoOm1tLiAgVGhpcyBhbGxvd3MgdXMKKyAgICAgICAgICogdG8gcmVjb2duaXplIHpvbmVzIGluIHVzZXIudGltZXpvbmUgdGhhdCBvdGhlcndpc2UgY2Fubm90IGJlCisgICAgICAgICAqIGlkZW50aWZpZWQuICBXZSBkbyB0aGUgcmVjb2duaXRpb24gaGVyZSwgcmF0aGVyIHRoYW4gaW4gZ2V0RGVmYXVsdCgpLAorICAgICAgICAgKiBzbyB0aGF0IHRoZSBkZWZhdWx0IHpvbmUgaXMgYWx3YXlzIHRoZSByZXN1bHQgb2YgY2FsbGluZworICAgICAgICAgKiBnZXRUaW1lWm9uZSgpIHdpdGggdGhlIHByb3BlcnR5IHVzZXIudGltZXpvbmUuCisgICAgICAgICAqCisgICAgICAgICAqIElmIGFsbCBlbHNlIGZhaWxzLCB3ZSByZXR1cm4gR01ULCB3aGljaCBpcyBwcm9iYWJseSBub3Qgd2hhdCB0aGUgdXNlcgorICAgICAgICAgKiB3YW50cywgYnV0IGF0IGxlYXN0IGlzIGEgZnVuY3Rpb25pbmcgVGltZVpvbmUgb2JqZWN0LiAqLworICAgICAgICBUaW1lWm9uZSB6b25lID0gVGltZVpvbmVEYXRhLmdldChJRCk7CisgICAgICAgIGlmICh6b25lID09IG51bGwpIHpvbmUgPSBwYXJzZUN1c3RvbVRpbWVab25lKElEKTsKKyAgICAgICAgaWYgKHpvbmUgPT0gbnVsbCkgem9uZSA9IChUaW1lWm9uZSlHTVQuY2xvbmUoKTsKKyAgICAgICAgcmV0dXJuIHpvbmU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgbmV3IFN0cmluZyBhcnJheSBjb250YWluaW5nIGFsbCBzeXN0ZW0gVGltZVpvbmUgSURzCisgICAgICogd2l0aCB0aGUgZ2l2ZW4gcmF3IG9mZnNldCBmcm9tIEdNVC4gIFRoZXNlIElEcyBtYXkgYmUgcGFzc2VkIHRvCisgICAgICogPGNvZGU+Z2V0KCk8L2NvZGU+IHRvIGNvbnN0cnVjdCB0aGUgY29ycmVzcG9uZGluZyBUaW1lWm9uZQorICAgICAqIG9iamVjdC4KKyAgICAgKiBAcGFyYW0gcmF3T2Zmc2V0IHRoZSBvZmZzZXQgaW4gbWlsbGlzZWNvbmRzIGZyb20gR01UCisgICAgICogQHJldHVybiBhbiBhcnJheSBvZiBJRHMgZm9yIHN5c3RlbSBUaW1lWm9uZXMgd2l0aCB0aGUgZ2l2ZW4KKyAgICAgKiByYXcgb2Zmc2V0LiAgSWYgdGhlcmUgYXJlIG5vbmUsIHJldHVybiBhIHplcm8tbGVuZ3RoIGFycmF5LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nW10gZ2V0QXZhaWxhYmxlSURzKGludCByYXdPZmZzZXQpIHsKKyAgICAgICAgcmV0dXJuIFRpbWVab25lRGF0YS5nZXRBdmFpbGFibGVJRHMocmF3T2Zmc2V0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBuZXcgU3RyaW5nIGFycmF5IGNvbnRhaW5pbmcgYWxsIHN5c3RlbSBUaW1lWm9uZSBJRHMKKyAgICAgKiBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIGNvdW50cnkuICBUaGVzZSBJRHMgbWF5IGJlIHBhc3NlZCB0bworICAgICAqIDxjb2RlPmdldCgpPC9jb2RlPiB0byBjb25zdHJ1Y3QgdGhlIGNvcnJlc3BvbmRpbmcgVGltZVpvbmUKKyAgICAgKiBvYmplY3QuCisgICAgICogQHBhcmFtIGEgdHdvLWxldHRlciBJU08gMzE2NiBjb3VudHJ5IGNvZGUsIG9yIDxjb2RlPm51bGw8L2NvZGU+CisgICAgICogdG8gcmV0dXJuIHpvbmVzIG5vdCBhc3NvY2lhdGVkIHdpdGggYW55IGNvdW50cnkKKyAgICAgKiBAcmV0dXJuIGFuIGFycmF5IG9mIElEcyBmb3Igc3lzdGVtIFRpbWVab25lcyBpbiB0aGUgZ2l2ZW4KKyAgICAgKiBjb3VudHJ5LiAgSWYgdGhlcmUgYXJlIG5vbmUsIHJldHVybiBhIHplcm8tbGVuZ3RoIGFycmF5LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nW10gZ2V0QXZhaWxhYmxlSURzKFN0cmluZyBjb3VudHJ5KSB7CisgICAgICAgIHJldHVybiBUaW1lWm9uZURhdGEuZ2V0QXZhaWxhYmxlSURzKGNvdW50cnkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIG5ldyBTdHJpbmcgYXJyYXkgY29udGFpbmluZyBhbGwgc3lzdGVtIFRpbWVab25lIElEcy4KKyAgICAgKiBUaGVzZSBJRHMgKGFuZCBvbmx5IHRoZXNlIElEcykgbWF5IGJlIHBhc3NlZCB0bworICAgICAqIDxjb2RlPmdldCgpPC9jb2RlPiB0byBjb25zdHJ1Y3QgdGhlIGNvcnJlc3BvbmRpbmcgVGltZVpvbmUKKyAgICAgKiBvYmplY3QuCisgICAgICogQHJldHVybiBhbiBhcnJheSBvZiBhbGwgc3lzdGVtIFRpbWVab25lIElEcworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nW10gZ2V0QXZhaWxhYmxlSURzKCkgeworICAgICAgICByZXR1cm4gVGltZVpvbmVEYXRhLmdldEF2YWlsYWJsZUlEcygpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgSURzIGluIHRoZSBlcXVpdmFsZW5jeSBncm91cCB0aGF0CisgICAgICogaW5jbHVkZXMgdGhlIGdpdmVuIElELiAgQW4gZXF1aXZhbGVuY3kgZ3JvdXAgY29udGFpbnMgem9uZXMKKyAgICAgKiB0aGF0IGhhdmUgdGhlIHNhbWUgR01UIG9mZnNldCBhbmQgcnVsZXMuCisgICAgICoKKyAgICAgKiA8cD5UaGUgcmV0dXJuZWQgY291bnQgaW5jbHVkZXMgdGhlIGdpdmVuIElEOyBpdCBpcyBhbHdheXMgPj0gMQorICAgICAqIGZvciB2YWxpZCBJRHMuICBUaGUgZ2l2ZW4gSUQgbXVzdCBiZSBhIHN5c3RlbSB0aW1lIHpvbmUuICBJZiBpdAorICAgICAqIGlzIG5vdCwgcmV0dXJucyB6ZXJvLgorICAgICAqIEBwYXJhbSBpZCBhIHN5c3RlbSB0aW1lIHpvbmUgSUQKKyAgICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2Ygem9uZXMgaW4gdGhlIGVxdWl2YWxlbmN5IGdyb3VwIGNvbnRhaW5pbmcKKyAgICAgKiAnaWQnLCBvciB6ZXJvIGlmICdpZCcgaXMgbm90IGEgdmFsaWQgc3lzdGVtIElECisgICAgICogQHNlZSAjZ2V0RXF1aXZhbGVudElECisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgY291bnRFcXVpdmFsZW50SURzKFN0cmluZyBpZCkgeworICAgICAgICByZXR1cm4gVGltZVpvbmVEYXRhLmNvdW50RXF1aXZhbGVudElEcyhpZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhbiBJRCBpbiB0aGUgZXF1aXZhbGVuY3kgZ3JvdXAgdGhhdAorICAgICAqIGluY2x1ZGVzIHRoZSBnaXZlbiBJRC4gIEFuIGVxdWl2YWxlbmN5IGdyb3VwIGNvbnRhaW5zIHpvbmVzCisgICAgICogdGhhdCBoYXZlIHRoZSBzYW1lIEdNVCBvZmZzZXQgYW5kIHJ1bGVzLgorICAgICAqCisgICAgICogPHA+VGhlIGdpdmVuIGluZGV4IG11c3QgYmUgaW4gdGhlIHJhbmdlIDAuLm4tMSwgd2hlcmUgbiBpcyB0aGUKKyAgICAgKiB2YWx1ZSByZXR1cm5lZCBieSA8Y29kZT5jb3VudEVxdWl2YWxlbnRJRHMoaWQpPC9jb2RlPi4gIEZvcgorICAgICAqIHNvbWUgdmFsdWUgb2YgJ2luZGV4JywgdGhlIHJldHVybmVkIHZhbHVlIHdpbGwgYmUgZXF1YWwgdG8gdGhlCisgICAgICogZ2l2ZW4gaWQuICBJZiB0aGUgZ2l2ZW4gaWQgaXMgbm90IGEgdmFsaWQgc3lzdGVtIHRpbWUgem9uZSwgb3IKKyAgICAgKiBpZiAnaW5kZXgnIGlzIG91dCBvZiByYW5nZSwgdGhlbiByZXR1cm5zIGFuIGVtcHR5IHN0cmluZy4KKyAgICAgKiBAcGFyYW0gaWQgYSBzeXN0ZW0gdGltZSB6b25lIElECisgICAgICogQHBhcmFtIGluZGV4IGEgdmFsdWUgZnJvbSAwIHRvIG4tMSwgd2hlcmUgbiBpcyB0aGUgdmFsdWUKKyAgICAgKiByZXR1cm5lZCBieSA8Y29kZT5jb3VudEVxdWl2YWxlbnRJRHMoaWQpPC9jb2RlPgorICAgICAqIEByZXR1cm4gdGhlIElEIG9mIHRoZSBpbmRleC10aCB6b25lIGluIHRoZSBlcXVpdmFsZW5jeSBncm91cAorICAgICAqIGNvbnRhaW5pbmcgJ2lkJywgb3IgYW4gZW1wdHkgc3RyaW5nIGlmICdpZCcgaXMgbm90IGEgdmFsaWQKKyAgICAgKiBzeXN0ZW0gSUQgb3IgJ2luZGV4JyBpcyBvdXQgb2YgcmFuZ2UKKyAgICAgKiBAc2VlICNjb3VudEVxdWl2YWxlbnRJRHMKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRFcXVpdmFsZW50SUQoU3RyaW5nIGlkLCBpbnQgaW5kZXgpIHsKKyAgICAgICAgcmV0dXJuIFRpbWVab25lRGF0YS5nZXRFcXVpdmFsZW50SUQoaWQsIGluZGV4KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBwbGF0Zm9ybSBkZWZpbmVkIFRpbWVab25lIElELgorICAgICAqKi8KKy8vICAgIHByaXZhdGUgc3RhdGljIG5hdGl2ZSBTdHJpbmcgZ2V0U3lzdGVtVGltZVpvbmVJRChTdHJpbmcgamF2YUhvbWUsIAorLy8JCQkJCQkgICAgIFN0cmluZyByZWdpb24pOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZGVmYXVsdCA8Y29kZT5UaW1lWm9uZTwvY29kZT4gZm9yIHRoaXMgaG9zdC4KKyAgICAgKiBUaGUgc291cmNlIG9mIHRoZSBkZWZhdWx0IDxjb2RlPlRpbWVab25lPC9jb2RlPiAKKyAgICAgKiBtYXkgdmFyeSB3aXRoIGltcGxlbWVudGF0aW9uLgorICAgICAqIEByZXR1cm4gYSBkZWZhdWx0IDxjb2RlPlRpbWVab25lPC9jb2RlPi4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCBUaW1lWm9uZSBnZXREZWZhdWx0KCkgeworICAgICAgICBpZiAoZGVmYXVsdFpvbmUgPT0gbnVsbCkgeworICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjYXVzZXMgYW4gQWNjZXNzQ29udHJvbEV4Y2VwdGlvbiB3aGVuIHJ1biBpbiBhbgorICAgICAgICAgICAgLy8gYXBwbGV0LiAgVG8gZ2V0IGFyb3VuZCB0aGlzLCB3ZSBkb24ndCByZWFkIHRoZSB1c2VyLnRpbWV6b25lCisgICAgICAgICAgICAvLyBwcm9wZXJ0eTsgaW5zdGVhZCB3ZSBkZWZlciB0byBUaW1lWm9uZS5nZXREZWZhdWx0KCkuIC0gTGl1CisgICAgICAgICAgICAvLyEvLyBnZXQgdGhlIHRpbWUgem9uZSBJRCBmcm9tIHRoZSBzeXN0ZW0gcHJvcGVydGllcworICAgICAgICAgICAgLy8hU3RyaW5nIHpvbmVJRCA9IChTdHJpbmcpIEFjY2Vzc0NvbnRyb2xsZXIuZG9Qcml2aWxlZ2VkKAorICAgICAgICAgICAgLy8hICAgIG5ldyBHZXRQcm9wZXJ0eUFjdGlvbigidXNlci50aW1lem9uZSIpKTsKKyAgICAgICAgICAgIC8vIQorCSAgICAvLyEvLyBpZiB0aGUgdGltZSB6b25lIElEIGlzIG5vdCBzZXQgKHlldCksIHBlcmZvcm0gdGhlCisJICAgIC8vIS8vIHBsYXRmb3JtIHRvIEphdmEgdGltZSB6b25lIElEIG1hcHBpbmcuCisJICAgIC8vIWlmICh6b25lSUQgPT0gbnVsbCB8fCB6b25lSUQuZXF1YWxzKCIiKSkgeyAKKwkJLy9TdHJpbmcgcmVnaW9uID0gKFN0cmluZykgQWNjZXNzQ29udHJvbGxlci5kb1ByaXZpbGVnZWQoCisJCS8vICAgIG5ldyBHZXRQcm9wZXJ0eUFjdGlvbigidXNlci5yZWdpb24iKSk7CisJCS8vU3RyaW5nIGphdmFIb21lID0gKFN0cmluZykgQWNjZXNzQ29udHJvbGxlci5kb1ByaXZpbGVnZWQoCisJCS8vICAgIG5ldyBHZXRQcm9wZXJ0eUFjdGlvbigiamF2YS5ob21lIikpOworCQkvL3pvbmVJRCA9IGdldFN5c3RlbVRpbWVab25lSUQoamF2YUhvbWUsIHJlZ2lvbik7CisKKyAgICAgICAgICAgICAgICAvLyBbaWN1NGogV2UgZ2V0IHRoZSBkZWZhdWx0IHpvbmUgYnkgcXVlcnlpbmcgamF2YS51dGlsLlRpbWVab25lLAorICAgICAgICAgICAgICAgIC8vICAgICAgICBhbmQgdGhlbiBhdHRlbXB0aW5nIHRvIG1hcCB0aGUgSUQuIC0gbGl1IF0KKyAgICAgICAgICAgICAgICBqYXZhLnV0aWwuVGltZVpvbmUgX2RlZmF1bHQgPSBqYXZhLnV0aWwuVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICAgICAgICAgIGlmIChmYWxzZSkgU3lzdGVtLm91dC5wcmludGxuKCJqYXZhLnV0aWwuVFouZGVmYXVsdCAiICsgX2RlZmF1bHQpOworICAgICAgICAgICAgICAgIFN0cmluZyB6b25lSUQgPSBfZGVmYXVsdC5nZXRJRCgpOworICAgICAgICAgICAgICAgIGRlZmF1bHRab25lID0gVGltZVpvbmVEYXRhLmdldCh6b25lSUQpOworICAgICAgICAgICAgICAgIGlmIChkZWZhdWx0Wm9uZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFtpY3U0aiBUaGlzIG1lYW5zIHRoYXQgdGhlIHpvbmUgcmV0dXJuZWQgYnkgdGhlIEpESyBkb2VzCisgICAgICAgICAgICAgICAgICAgIC8vIG5vdCBleGlzdCBpbiBvdXIgdGFibGUuICBXZSB3aWxsLCBmb3IgdGhlIG1vbWVudCwgbWFwIHRvCisgICAgICAgICAgICAgICAgICAgIC8vIGEgc3RkIHpvbmUgdGhhdCBoYXMgdGhlIHNhbWUgcmF3IG9mZnNldC4gIEluIHRoZSBmdXR1cmUKKyAgICAgICAgICAgICAgICAgICAgLy8gd2UgbWlnaHQgZmluZCBpdCB3b3J0aHdoaWxlIHRvIGV4dHJhY3QgdGhlIHJ1bGVzIGZyb20gdGhlCisgICAgICAgICAgICAgICAgICAgIC8vIHN5c3RlbSBkZWZhdWx0IHpvbmUsIGJ1dCB0aGlzIGlzIHRvbyBtdWNoIHRyb3VibGUgZm9yCisgICAgICAgICAgICAgICAgICAgIC8vIG5vdy4gIEl0IHdpbGwgYmUgZWFzaWVyIHRvIGV4dGVuZCBvdXIgbWFwcGluZyB0YWJsZSB0bworICAgICAgICAgICAgICAgICAgICAvLyBtYXRjaCB0aGUgSkRLcyB3ZSB3YW50IHRvIHN1cHBvcnQuIC0gbGl1IF0KKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGphdmEudXRpbC5TaW1wbGVUaW1lWm9uZSBzID0gKGphdmEudXRpbC5TaW1wbGVUaW1lWm9uZSkgX2RlZmF1bHQ7CisgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Wm9uZSA9IG5ldyBTaW1wbGVUaW1lWm9uZShzLmdldFJhd09mZnNldCgpLCBzLmdldElEKCkpOworICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChDbGFzc0Nhc3RFeGNlcHRpb24gZSkge30KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoem9uZUlEID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHpvbmVJRCA9IEdNVF9JRDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvLyBBZ2Fpbiwgd2UgY2FuJ3QgZG8gdGhpcyBmcm9tIG91dHNpZGUgdGhlIEpESyBpbiBhbiBhcHBsZXQuCisgICAgICAgICAgICAgICAgICAgIC8vIWZpbmFsIFN0cmluZyBpZCA9IHpvbmVJRDsKKyAgICAgICAgICAgICAgICAgICAgLy8hQWNjZXNzQ29udHJvbGxlci5kb1ByaXZpbGVnZWQobmV3IFByaXZpbGVnZWRBY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIC8vISAgICBwdWJsaWMgT2JqZWN0IHJ1bigpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8hICAgICAgICBTeXN0ZW0uc2V0UHJvcGVydHkoInVzZXIudGltZXpvbmUiLCBpZCk7CisgICAgICAgICAgICAgICAgICAgIC8vISAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgICAgICAgIC8vISAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vIX0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIX0KKyAgICAgICAgICAgIGlmIChkZWZhdWx0Wm9uZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgZGVmYXVsdFpvbmUgPSBnZXRUaW1lWm9uZSh6b25lSUQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGZhbHNlKSBTeXN0ZW0ub3V0LnByaW50bG4oImNvbS5pYm0uaWN1LnV0aWwuVFouZGVmYXVsdCAiICsgZGVmYXVsdFpvbmUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAoVGltZVpvbmUpZGVmYXVsdFpvbmUuY2xvbmUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSA8Y29kZT5UaW1lWm9uZTwvY29kZT4gdGhhdCBpcworICAgICAqIHJldHVybmVkIGJ5IHRoZSA8Y29kZT5nZXREZWZhdWx0PC9jb2RlPiBtZXRob2QuICBJZiA8Y29kZT56b25lPC9jb2RlPgorICAgICAqIGlzIG51bGwsIHJlc2V0IHRoZSBkZWZhdWx0IHRvIHRoZSB2YWx1ZSBpdCBoYWQgb3JpZ2luYWxseSB3aGVuIHRoZQorICAgICAqIFZNIGZpcnN0IHN0YXJ0ZWQuCisgICAgICogQHBhcmFtIHpvbmUgdGhlIG5ldyBkZWZhdWx0IHRpbWUgem9uZQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIHZvaWQgc2V0RGVmYXVsdChUaW1lWm9uZSB6b25lKQorICAgIHsKKyAgICAgICAgZGVmYXVsdFpvbmUgPSB6b25lOworICAgICAgICAvLyBbaWN1NGogS2VlcCBqYXZhLnV0aWwuVGltZVpvbmUgZGVmYXVsdCBpbiBzeW5jIHNvIGphdmEudXRpbC5EYXRlCisgICAgICAgIC8vICAgICAgICBjYW4gaW50ZXJvcGVyYXRlIHdpdGggY29tLmlibS5pY3UudXRpbCBjbGFzc2VzLiAgVGhpcyBzb2x1dGlvbgorICAgICAgICAvLyAgICAgICAgaXMgX2ltcGVyZmVjdF87IHNlZSBTaW1wbGVUaW1lWm9uZUFkYXB0ZXIuIC0gbGl1XQorICAgICAgICB0cnkgeworICAgICAgICAgICAgamF2YS51dGlsLlRpbWVab25lLnNldERlZmF1bHQoCisgICAgICAgICAgICAgICAgbmV3IFNpbXBsZVRpbWVab25lQWRhcHRlcigoU2ltcGxlVGltZVpvbmUpIHpvbmUpKTsKKyAgICAgICAgfSBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHt9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgem9uZSBoYXMgdGhlIHNhbWUgcnVsZSBhbmQgb2Zmc2V0IGFzIGFub3RoZXIgem9uZS4KKyAgICAgKiBUaGF0IGlzLCBpZiB0aGlzIHpvbmUgZGlmZmVycyBvbmx5IGluIElELCBpZiBhdCBhbGwuICBSZXR1cm5zIGZhbHNlCisgICAgICogaWYgdGhlIG90aGVyIHpvbmUgaXMgbnVsbC4KKyAgICAgKiBAcGFyYW0gb3RoZXIgdGhlIDxjb2RlPlRpbWVab25lPC9jb2RlPiBvYmplY3QgdG8gYmUgY29tcGFyZWQgd2l0aAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgb3RoZXIgem9uZSBpcyBub3QgbnVsbCBhbmQgaXMgdGhlIHNhbWUgYXMgdGhpcyBvbmUsCisgICAgICogd2l0aCB0aGUgcG9zc2libGUgZXhjZXB0aW9uIG9mIHRoZSBJRAorICAgICAqIEBzaW5jZSAxLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBoYXNTYW1lUnVsZXMoVGltZVpvbmUgb3RoZXIpIHsKKyAgICAgICAgcmV0dXJuIG90aGVyICE9IG51bGwgJiYgZ2V0UmF3T2Zmc2V0KCkgPT0gb3RoZXIuZ2V0UmF3T2Zmc2V0KCkgJiYKKyAgICAgICAgICAgIHVzZURheWxpZ2h0VGltZSgpID09IG90aGVyLnVzZURheWxpZ2h0VGltZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlcyBDbG9uZWFibGUKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkKKyAgICB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBUaW1lWm9uZSBvdGhlciA9IChUaW1lWm9uZSkgc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgICAgIG90aGVyLklEID0gSUQ7CisgICAgICAgICAgICByZXR1cm4gb3RoZXI7CisgICAgICAgIH0gY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PXByaXZhdGVzPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogVGhlIHN0cmluZyBpZGVudGlmaWVyIG9mIHRoaXMgPGNvZGU+VGltZVpvbmU8L2NvZGU+LiAgVGhpcyBpcyBhCisgICAgICogcHJvZ3JhbW1hdGljIGlkZW50aWZpZXIgdXNlZCBpbnRlcm5hbGx5IHRvIGxvb2sgdXAgPGNvZGU+VGltZVpvbmU8L2NvZGU+CisgICAgICogb2JqZWN0cyBmcm9tIHRoZSBzeXN0ZW0gdGFibGUgYW5kIGFsc28gdG8gbWFwIHRoZW0gdG8gdGhlaXIgbG9jYWxpemVkCisgICAgICogZGlzcGxheSBuYW1lcy4gIDxjb2RlPklEPC9jb2RlPiB2YWx1ZXMgYXJlIHVuaXF1ZSBpbiB0aGUgc3lzdGVtCisgICAgICogdGFibGUgYnV0IG1heSBub3QgYmUgZm9yIGR5bmFtaWNhbGx5IGNyZWF0ZWQgem9uZXMuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nICAgICAgICAgICBJRDsKKyAgICBwcml2YXRlIHN0YXRpYyBUaW1lWm9uZSAgZGVmYXVsdFpvbmUgPSBudWxsOworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyAgICAgICAgIEdNVF9JRCAgICAgICAgPSAiR01UIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgICAgR01UX0lEX0xFTkdUSCA9IDM7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENVU1RPTV9JRCAgICAgPSAiQ3VzdG9tIjsKKworICAgIHByaXZhdGUgc3RhdGljIE51bWJlckZvcm1hdCBudW1iZXJGb3JtYXQgPSBudWxsOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVGltZVpvbmUgR01UID0gbmV3IFNpbXBsZVRpbWVab25lKDAsIEdNVF9JRCk7CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhIGN1c3RvbSB0aW1lIHpvbmUgaWRlbnRpZmllciBhbmQgcmV0dXJuIGEgY29ycmVzcG9uZGluZyB6b25lLgorICAgICAqIEBwYXJhbSBpZCBhIHN0cmluZyBvZiB0aGUgZm9ybSBHTVRbKy1daGg6bW0sIEdNVFsrLV1oaG1tLCBvcgorICAgICAqIEdNVFsrLV1oaC4KKyAgICAgKiBAcmV0dXJuIGEgbmV3bHkgY3JlYXRlZCBTaW1wbGVUaW1lWm9uZSB3aXRoIHRoZSBnaXZlbiBvZmZzZXQgYW5kCisgICAgICogbm8gZGF5bGlnaHQgc2F2aW5ncyB0aW1lLCBvciBudWxsIGlmIHRoZSBpZCBjYW5ub3QgYmUgcGFyc2VkLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFNpbXBsZVRpbWVab25lIHBhcnNlQ3VzdG9tVGltZVpvbmUoU3RyaW5nIGlkKSB7CisgICAgICAgIGlmIChpZC5sZW5ndGgoKSA+IEdNVF9JRF9MRU5HVEggJiYKKyAgICAgICAgICAgIGlkLnJlZ2lvbk1hdGNoZXModHJ1ZSwgMCwgR01UX0lELCAwLCBHTVRfSURfTEVOR1RIKSkgeworICAgICAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbihHTVRfSURfTEVOR1RIKTsKKyAgICAgICAgICAgIGJvb2xlYW4gbmVnYXRpdmUgPSBmYWxzZTsKKyAgICAgICAgICAgIGludCBvZmZzZXQ7CisKKyAgICAgICAgICAgIGlmIChpZC5jaGFyQXQocG9zLmdldEluZGV4KCkpID09ICctJykKKyAgICAgICAgICAgICAgICBuZWdhdGl2ZSA9IHRydWU7CisgICAgICAgICAgICBlbHNlIGlmIChpZC5jaGFyQXQocG9zLmdldEluZGV4KCkpICE9ICcrJykKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIHBvcy5zZXRJbmRleChwb3MuZ2V0SW5kZXgoKSArIDEpOworCisgICAgICAgICAgICAvLyBDcmVhdGUgTnVtYmVyRm9ybWF0IGlmIG5lY2Vzc2FyeQorICAgICAgICAgICAgc3luY2hyb25pemVkIChUaW1lWm9uZS5jbGFzcykgeworICAgICAgICAgICAgICAgIGlmIChudW1iZXJGb3JtYXQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBudW1iZXJGb3JtYXQgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgICAgICAgICAgICAgbnVtYmVyRm9ybWF0LnNldFBhcnNlSW50ZWdlck9ubHkodHJ1ZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKG51bWJlckZvcm1hdCkgeworICAgICAgICAgICAgICAgIC8vIExvb2sgZm9yIGVpdGhlciBoaDptbSwgaGhtbSwgb3IgaGgKKyAgICAgICAgICAgICAgICBpbnQgc3RhcnQgPSBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgICAgICBOdW1iZXIgbiA9IG51bWJlckZvcm1hdC5wYXJzZShpZCwgcG9zKTsKKyAgICAgICAgICAgICAgICBpZiAobiA9PSBudWxsKSByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgICAgICBvZmZzZXQgPSBuLmludFZhbHVlKCk7CisKKyAgICAgICAgICAgICAgICBpZiAocG9zLmdldEluZGV4KCkgPCBpZC5sZW5ndGgoKSAmJgorICAgICAgICAgICAgICAgICAgICBpZC5jaGFyQXQocG9zLmdldEluZGV4KCkpID09ICc6JykgeworICAgICAgICAgICAgICAgICAgICAvLyBoaDptbQorICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKj0gNjA7CisgICAgICAgICAgICAgICAgICAgIHBvcy5zZXRJbmRleChwb3MuZ2V0SW5kZXgoKSArIDEpOworICAgICAgICAgICAgICAgICAgICBuID0gbnVtYmVyRm9ybWF0LnBhcnNlKGlkLCBwb3MpOworICAgICAgICAgICAgICAgICAgICBpZiAobiA9PSBudWxsKSByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IG4uaW50VmFsdWUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGhobW0gb3IgaGgKKworICAgICAgICAgICAgICAgICAgICAvLyBCZSBzdHJpY3QgYWJvdXQgaW50ZXJwcmV0aW5nIHNvbWV0aGluZyBhcyBoaDsgaXQgbXVzdCBiZQorICAgICAgICAgICAgICAgICAgICAvLyBhbiBvZmZzZXQgPCAzMCwgYW5kIGl0IG11c3QgYmUgb25lIG9yIHR3byBkaWdpdHMuIFRodXMKKyAgICAgICAgICAgICAgICAgICAgLy8gMDAxMCBpcyBpbnRlcnByZXRlZCBhcyAwMDoxMCwgYnV0IDEwIGlzIGludGVycHJldGVkIGFzCisgICAgICAgICAgICAgICAgICAgIC8vIDEwOjAwLgorICAgICAgICAgICAgICAgICAgICBpZiAob2Zmc2V0IDwgMzAgJiYgKHBvcy5nZXRJbmRleCgpIC0gc3RhcnQpIDw9IDIpCisgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKj0gNjA7IC8vIGhoLCBmcm9tIDAwIHRvIDI5OyAzMCBpcyAwMDozMAorICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgPSBvZmZzZXQgJSAxMDAgKyBvZmZzZXQgLyAxMDAgKiA2MDsgLy8gaGhtbQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChuZWdhdGl2ZSkgb2Zmc2V0ID0gLW9mZnNldDsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFNpbXBsZVRpbWVab25lKG9mZnNldCAqIDYwMDAwLCBDVVNUT01fSUQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLy8gSW50ZXJuYWwgSW1wbGVtZW50YXRpb24gTm90ZXMgW0xJVV0KKyAgICAvLworICAgIC8vIFRpbWVab25lIGRhdGEgaXMgc3RvcmVkIGluIHR3byBwYXJ0cy4gIFRoZSBmaXJzdCBpcyBhbiBlbmNvZGluZyBvZiB0aGUKKyAgICAvLyBydWxlcyBmb3IgZWFjaCBUaW1lWm9uZS4gIEEgVGltZVpvbmUgcnVsZSBpbmNsdWRlcyB0aGUgb2Zmc2V0IG9mIGEgem9uZQorICAgIC8vIGluIG1pbGxpc2Vjb25kcyBmcm9tIEdNVCwgdGhlIHN0YXJ0aW5nIG1vbnRoIGFuZCBkYXkgZm9yIGRheWxpZ2h0IHNhdmluZ3MKKyAgICAvLyB0aW1lLCBpZiB0aGVyZSBpcyBhbnksIGFuZCB0aGUgZW5kaW5nIG1vbnRoIGFuZCBkYXkgZm9yIGRheWxpZ2h0IHNhdmluZ3MKKyAgICAvLyB0aW1lLiAgVGhlIHN0YXJ0aW5nIGFuZCBlbmRpbmcgZGF5cyBhcmUgc3BlY2lmaWVkIGluIHRlcm1zIG9mIHRoZSBuLXRoCisgICAgLy8gZGF5IG9mIHRoZSB3ZWVrLCBmb3IgaW5zdGFuY2UsIHRoZSBmaXJzdCBTdW5kYXkgb3IgdGhlIGxhc3QgKCItMSItdGgpCisgICAgLy8gU3VuZGF5IG9mIHRoZSBtb250aC4gIFRoZSBydWxlcyBhcmUgc3RvcmVkIGFzIHN0YXRpY2FsbHktY29uc3RydWN0ZWQKKyAgICAvLyBTaW1wbGVUaW1lWm9uZSBvYmplY3RzIGluIHRoZSBUaW1lWm9uZSBjbGFzcy4KKyAgICAvLworICAgIC8vIEVhY2ggcnVsZSBoYXMgYSB1bmlxdWUgaW50ZXJuYWwgaWRlbnRpZmllciBzdHJpbmcgd2hpY2ggaXMgdXNlZCB0bworICAgIC8vIHNwZWNpZnkgaXQuICBUaGlzIGlkZW50aWZpZXIgc3RyaW5nIGlzIGFyYml0cmFyeSwgYW5kIGlzIG5vdCB0byBiZSBzaG93bgorICAgIC8vIHRvIHRoZSB1c2VyIC0tIGl0IGlzIGZvciBwcm9ncmFtbWF0aWMgdXNlIG9ubHkuICBJbiBvcmRlciB0byBpbnN0YW50aWF0ZQorICAgIC8vIGEgVGltZVpvbmUgb2JqZWN0LCB5b3UgcGFzcyBpdHMgaWRlbnRpZmllciBzdHJpbmcgdG8KKyAgICAvLyBUaW1lWm9uZS5nZXRUaW1lWm9uZSgpLiAgKFRoaXMgaWRlbnRpZmllciBpcyBhbHNvIHVzZWQgdG8gaW5kZXggdGhlCisgICAgLy8gbG9jYWxpemVkIHN0cmluZyBkYXRhLikKKyAgICAvLworICAgIC8vIFRoZSBzZWNvbmQgcGFydCBvZiB0aGUgZGF0YSBjb25zaXN0cyBvZiBsb2NhbGl6ZWQgc3RyaW5nIG5hbWVzIHVzZWQgYnkKKyAgICAvLyBEYXRlRm9ybWF0IHRvIGRlc2NyaWJlIHZhcmlvdXMgVGltZVpvbmVzLiAgQSBUaW1lWm9uZSBtYXkgaGF2ZSB1cCB0byBmb3VyCisgICAgLy8gbmFtZXM6IFRoZSBhYmJyZXZpYXRlZCBhbmQgbG9uZyBuYW1lIGZvciBzdGFuZGFyZCB0aW1lIGluIHRoYXQgem9uZSwgYW5kCisgICAgLy8gdGhlIGFiYnJldmlhdGVkIGFuZCBsb25nIG5hbWUgZm9yIGRheWxpZ2h0IHNhdmluZ3MgdGltZSBpbiB0aGF0IHpvbmUuCisgICAgLy8gVGhlIGRhdGEgYWxzbyBpbmNsdWRlcyBhIHJlcHJlc2VudGF0aXZlIGNpdHkuICBGb3IgZXhhbXBsZSwgWyAiUFNUIiwKKyAgICAvLyAiUGFjaWZpYyBTdGFuZGFyZCBUaW1lIiwgIlBEVCIsICJQYWNpZmljIERheWxpZ2h0IFRpbWUiLCAiTG9zIEFuZ2VsZXMiIF0KKyAgICAvLyBtaWdodCBiZSBvbmUgc3VjaCBzZXQgb2Ygc3RyaW5nIG5hbWVzIGluIHRoZSBlbl9VUyBsb2NhbGUuICBUaGVzZSBzdHJpbmdzCisgICAgLy8gYXJlIGludGVuZGVkIHRvIGJlIHNob3duIHRvIHRoZSB1c2VyLiAgVGhlIHN0cmluZyBkYXRhIGlzIGluZGV4ZWQgaW4gdGhlCisgICAgLy8gc3lzdGVtIGJ5IGEgcGFpciAoU3RyaW5nIGlkLCBMb2NhbGUgbG9jYWxlKS4gIFRoZSBpZCBpcyB0aGUgdW5pcXVlIHN0cmluZworICAgIC8vIGlkZW50aWZpZXIgZm9yIHRoZSBydWxlIGZvciB0aGUgZ2l2ZW4gVGltZVpvbmUgKGFzIHBhc3NlZCB0bworICAgIC8vIFRpbWVab25lLmdldFRpbWVab25lKCkpLiAgU3RyaW5nIG5hbWVzIGFyZSBzdG9yZWQgYXMgbG9jYWxpemVkIHJlc291cmNlCisgICAgLy8gZGF0YSAoaW4gamRrIDEuMiBhbmQgMS4zKSBvZiB0aGUgY2xhc3MgTG9jYWxlRGF0YT8/PyAgd2hlcmUgPz8/IGlzCisgICAgLy8gdGhlIExvY2FsZSBzcGVjaWZpZXIgKGUuZy4sIERhdGVGb3JtYXRab25lRGF0YV9lbl9VUykuICBUaGlzIGRhdGEgaXMgYQorICAgIC8vIHR3by1kaW1lbnNpb25hbCBhcnJheSBvZiBzdHJpbmdzIHdpdGggTiByb3dzIGFuZCA2IGNvbHVtbnMuICBUaGUgY29sdW1ucworICAgIC8vIGFyZSBpZCwgc2hvcnQgc3RhbmRhcmQgbmFtZSwgbG9uZyBzdGFuZGFyZCBuYW1lLCBzaG9ydCBkYXlsaWdodCBuYW1lLAorICAgIC8vIGxvbmcgZGF5bGlnaHQgbmFtZSwgcmVwcmVzZW50YXRpdmUgY2l0eSBuYW1lLgorICAgIC8vCisgICAgLy8gVGhlIG1hcHBpbmcgYmV0d2VlbiBydWxlcyAoU2ltcGxlVGltZVpvbmUgb2JqZWN0cykgYW5kIGxvY2FsaXplZCBzdHJpbmcKKyAgICAvLyBuYW1lcyAoRGF0ZUZvcm1hdFpvbmVEYXRhIG9iamVjdHMpIGlzIG9uZS10by1tYW55LiAgVGhhdCBpcywgdGhlcmUgd2lsbAorICAgIC8vIHNvbWV0aW1lcyBiZSBtb3JlIHRoYW4gb25lIGxvY2FsaXplZCBzdHJpbmcgbmFtZSBzZXRzIGFzc29jaWF0ZWQgd2l0aAorICAgIC8vIGVhY2ggcnVsZS4KKyAgICAvLworICAgIC8vIEVhY2ggbG9jYWxlIGNhbiBwb3RlbnRpYWxseSBoYXZlIGxvY2FsaXplZCBuYW1lIGRhdGEgZm9yIGFsbCB0aW1lIHpvbmVzLgorICAgIC8vIFNpbmNlIHdlIHN1cHBvcnQgYXBwcm94aW1hdGVseSA5MCB0aW1lIHpvbmVzIGFuZCBhcHByb3hpbWF0ZWx5IDUwCisgICAgLy8gbG9jYWxlcywgdGhlcmUgY2FuIGJlIG92ZXIgNDUwMCBzZXRzIG9mIGxvY2FsaXplZCBuYW1lcy4gIEluIHByYWN0aWNlLAorICAgIC8vIG9ubHkgYSBmcmFjdGlvbiBvZiB0aGVzZSBuYW1lcyBhcmUgcHJvdmlkZWQuICBJZiBhIHRpbWUgem9uZSBuZWVkcyB0byBiZQorICAgIC8vIGRpc3BsYXllZCB0byB0aGUgdXNlciBpbiBhIGdpdmVuIGxvY2FsZSwgYW5kIHRoZXJlIGlzIG5vIHN0cmluZyBkYXRhIGluCisgICAgLy8gdGhhdCBsb2NhbGUgZm9yIHRoYXQgdGltZSB6b25lLCB0aGVuIHRoZSBkZWZhdWx0IHJlcHJlc2VudGF0aW9uIHdpbGwgYmUKKyAgICAvLyBzaG93bi4gIFRoaXMgaXMgYSBzdHJpbmcgb2YgdGhlIGZvcm0gR01UK0hITU0gb3IgR01ULUhITU0sIHdoZXJlIEhITU0KKyAgICAvLyByZXByZXNlbnRzIHRoZSBvZmZzZXQgaW4gaG91cnMgYW5kIG1pbnV0ZXMgd2l0aCByZXNwZWN0IHRvIEdNVC4gIFRoaXMKKyAgICAvLyBmb3JtYXQgaXMgdXNlZCBiZWNhdXNlIGl0IGlzIHJlY29nbml6ZWQgaW4gYWxsIGxvY2FsZXMuICBJbiBvcmRlciB0byBtYWtlCisgICAgLy8gdGhpcyBtZWNoYW5pc20gdG8gd29yaywgdGhlIHJvb3QgcmVzb3VyY2UgZGF0YSAoaW4gdGhlIGNsYXNzCisgICAgLy8gRGF0ZUZvcm1hdFpvbmVEYXRhKSBpcyBsZWZ0IGVtcHR5LgorICAgIC8vCisgICAgLy8gVGhlIGN1cnJlbnQgZGVmYXVsdCBUaW1lWm9uZSBpcyBkZXRlcm1pbmVkIHZpYSB0aGUgc3lzdGVtIHByb3BlcnR5CisgICAgLy8gdXNlci50aW1lem9uZS4gIFRoaXMgaXMgc2V0IGJ5IHRoZSBwbGF0Zm9ybS1kZXBlbmRlbnQgbmF0aXZlIGNvZGUgdG8KKyAgICAvLyBhIHRocmVlLWxldHRlciBhYmJyZXZpYXRpb24uICBXZSBpbnRlcnByZXQgdGhlc2UgaW50byBvdXIgb3duIGludGVybmFsCisgICAgLy8gSURzIHVzaW5nIGEgbG9va3VwIHRhYmxlLgorfQorCisvL2VvZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVGltZVpvbmVEYXRhLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9UaW1lWm9uZURhdGEuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jODY4YWE2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVGltZVpvbmVEYXRhLmphdmEKQEAgLTAsMCArMSwxMjEyIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvdXRpbC9BdHRpYy9UaW1lWm9uZURhdGEuamF2YSx2ICQKKyAqICREYXRlOiAyMDAyLzAyLzI1IDIyOjQzOjU5ICQKKyAqICRSZXZpc2lvbjogMS42ICQKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCisvKioKKyAqIEludGVybmFsIGNsYXNzIHRoYXQgZW5jYXBzdWxhdGVzIGRhdGEgYWJvdXQgdGhlIHN5c3RlbSB0aW1lIHpvbmVzLgorICogVGhpcyBpbmNsdWRlcyB0aGUgbmFtZXMgb2YgYWxsIHpvbmVzLCB0aGVpciByYXcgb2Zmc2V0cywgdGhlaXIKKyAqIHJ1bGVzIChmb3Igem9uZXMgb2JzZXJ2aW5nIERTVCksIGFuZCBpbmRleCB0YWJsZXMgdGhhdCBncm91cAorICogdG9nZXRoZXIgem9uZXMgd2l0aCB0aGUgc2FtZSByYXcgb2Zmc2V0LCBhcyB3ZWxsIGFzIHpvbmVzIHRoYXQgYXJlCisgKiBlcXVpdmFsZW50IChzYW1lIHJhdyBvZmZzZXQgYW5kIHJ1bGVzKS4KKyAqIAorICogPHA+VGhpcyBjbGFzcyBjb250YWlucyB0d28gcGFydHM6IEEgbmFycm93IEFQSSBmb3IgaW5zdGFudGlhdGluZworICogdGhlIHN5c3RlbSB6b25lIG9iamVjdHMgYW5kIGZvciBvYnRhaW5pbmcgbWV0YWluZm9ybWF0aW9uCisgKiAoYXZhaWxhYmxlIHpvbmUgbGlzdHMgYW5kIGVxdWl2YWxlbmN5IGdyb3VwIGxpc3RzKSwgYW5kIGJsb2NrcyBvZgorICogY29tcHJlc3NlZCBkYXRhIHRoYXQgdGFrZSB0aGUgZm9ybSBvZiBzdGF0aWMgc3RyaW5ncyBvciBzdHJpbmcKKyAqIGFycmF5cy4gIFRoZSBjb21wcmVzc2VkIGRhdGEgaXMgZ2VuZXJhdGVkIHNvdXJjZSBjb2RlIHRoYXQgY2Fubm90CisgKiBiZSBoYW5kIGVkaXRlZC4gIEl0IGlzIGRlcml2ZWQgZnJvbSB0aGUgc3RhbmRhcmQgVU5JWCB6b25lIGRhdGEgYXQKKyAqIGZ0cDovL2Vsc2llLm5jaS5uaWguZ292L3B1YiBhbmQgaXMgcHJvY2Vzc2VkIGJ5IHRoZSB0b29sIGdlbnR6CisgKiBsb2NhdGVkIGF0IGljdS9zb3VyY2UvdG9vbHMvZ2VudHouICBXaGVuIHRoZSBVTklYIHpvbmUgZGF0YQorICogY2hhbmdlcywgdGhlIGdlbnR6IHRvb2wgbXVzdCBiZSBydW4gdG8gZ2VuZXJhdGUgdGhlIG5ldyBkYXRhIGFuZAorICogdGhlIGNvbXByZXNzZWQgZGF0YSBibG9ja3MgaW4gdGhpcyBmaWxlIGFuZCB0aGUgbmV3IGJsb2NrcyBtdXN0IGJlCisgKiBwYXN0ZWQgaW4uICBGb3Igc3RlcC1ieS1zdGVwIGluc3RydWN0aW9ucywgc2VlCisgKiBpY3Uvc291cmNlL3Rvb2xzL2dlbnR6L3JlYWRtZS50eHQuCisgKgorICogQGF1dGhvciBBbGFuIExpdQorICovCitjbGFzcyBUaW1lWm9uZURhdGEgeworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGFuZCByZXR1cm4gdGhlIGdpdmVuIHN5c3RlbSBUaW1lWm9uZSwgb3IgcmV0dXJuIG51bGwgaWYKKyAgICAgKiB0aGUgZ2l2ZW4gSUQgZG9lcyBub3QgcmVmZXIgdG8gYSBzeXN0ZW0gVGltZVpvbmUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBUaW1lWm9uZSBnZXQoU3RyaW5nIElEKSB7CisgICAgICAgIGludCBpID0gbG9va3VwKElEKTsKKyAgICAgICAgcmV0dXJuIChpPDApID8gbnVsbCA6IG5ldyBTaW1wbGVUaW1lWm9uZShJRCwgREFUQSwgaSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgbmV3IFN0cmluZyBhcnJheSBjb250YWluaW5nIGFsbCBzeXN0ZW0gVGltZVpvbmUgSURzLgorICAgICAqIFRoZXNlIElEcyAoYW5kIG9ubHkgdGhlc2UgSURzKSBtYXkgYmUgcGFzc2VkIHRvCisgICAgICogPGNvZGU+Z2V0KCk8L2NvZGU+IHRvIGNvbnN0cnVjdCB0aGUgY29ycmVzcG9uZGluZyBUaW1lWm9uZQorICAgICAqIG9iamVjdC4KKyAgICAgKiBAcmV0dXJuIGFuIGFycmF5IG9mIGFsbCBzeXN0ZW0gVGltZVpvbmUgSURzCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdbXSBnZXRBdmFpbGFibGVJRHMoKSB7CisgICAgICAgIFN0cmluZ1tdIHJlc3VsdCA9IG5ldyBTdHJpbmdbSURTLmxlbmd0aF07CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoSURTLCAwLCByZXN1bHQsIDAsIElEUy5sZW5ndGgpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIG5ldyBTdHJpbmcgYXJyYXkgY29udGFpbmluZyBhbGwgc3lzdGVtIFRpbWVab25lIElEcworICAgICAqIHdpdGggdGhlIGdpdmVuIHJhdyBvZmZzZXQgZnJvbSBHTVQuICBUaGVzZSBJRHMgbWF5IGJlIHBhc3NlZCB0bworICAgICAqIDxjb2RlPmdldCgpPC9jb2RlPiB0byBjb25zdHJ1Y3QgdGhlIGNvcnJlc3BvbmRpbmcgVGltZVpvbmUKKyAgICAgKiBvYmplY3QuCisgICAgICogQHBhcmFtIHJhd09mZnNldCB0aGUgb2Zmc2V0IGluIG1pbGxpc2Vjb25kcyBmcm9tIEdNVAorICAgICAqIEByZXR1cm4gYW4gYXJyYXkgb2YgSURzIGZvciBzeXN0ZW0gVGltZVpvbmVzIHdpdGggdGhlIGdpdmVuCisgICAgICogcmF3IG9mZnNldC4gIElmIHRoZXJlIGFyZSBub25lLCByZXR1cm4gYSB6ZXJvLWxlbmd0aCBhcnJheS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ1tdIGdldEF2YWlsYWJsZUlEcyhpbnQgcmF3T2Zmc2V0KSB7CisgICAgICAgIC8vIERvIGEgbGluZWFyIHNlYXJjaDsgdGhlcmUgYXJlIDwgMjAwIGVudHJpZXMKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPElOREVYX0JZX09GRlNFVC5sZW5ndGg7KSB7CisgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gSU5ERVhfQllfT0ZGU0VUW2ldICogMTAwMDsKKyAgICAgICAgICAgIGlmIChvZmZzZXQgPiByYXdPZmZzZXQpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChvZmZzZXQgPT0gcmF3T2Zmc2V0KSB7CisgICAgICAgICAgICAgICAgLy8gRm91bmQgb3VyIGRlc2lyZWQgb2Zmc2V0CisgICAgICAgICAgICAgICAgaW50IG4gPSBJTkRFWF9CWV9PRkZTRVRbaSsyXTsKKyAgICAgICAgICAgICAgICBTdHJpbmdbXSByZXN1bHQgPSBuZXcgU3RyaW5nW25dOworICAgICAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajxuOyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0W2pdID0gSURTW0lOREVYX0JZX09GRlNFVFtpKzMral1dOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gQWR2YW5jZSB0byB0aGUgbmV4dCBlbnRyeQorICAgICAgICAgICAgaSArPSBJTkRFWF9CWV9PRkZTRVRbaSsyXSArIDM7CisgICAgICAgIH0KKyAgICAgICAgLy8gRmFpbGVkIHRvIGZpbmQgYW55OyByZXR1cm4gZW1wdHkgYXJyYXkKKyAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmdbMF07CisgICAgfQorIAorICAgIC8qKgorICAgICAqIFJldHVybiBhIG5ldyBTdHJpbmcgYXJyYXkgY29udGFpbmluZyBhbGwgc3lzdGVtIFRpbWVab25lIElEcworICAgICAqIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gY291bnRyeS4gIFRoZXNlIElEcyBtYXkgYmUgcGFzc2VkIHRvCisgICAgICogPGNvZGU+Z2V0KCk8L2NvZGU+IHRvIGNvbnN0cnVjdCB0aGUgY29ycmVzcG9uZGluZyBUaW1lWm9uZQorICAgICAqIG9iamVjdC4KKyAgICAgKiBAcGFyYW0gYSB0d28tbGV0dGVyIElTTyAzMTY2IGNvdW50cnkgY29kZSwgb3IgPGNvZGU+bnVsbDwvY29kZT4KKyAgICAgKiB0byByZXR1cm4gem9uZXMgbm90IGFzc29jaWF0ZWQgd2l0aCBhbnkgY291bnRyeQorICAgICAqIEByZXR1cm4gYW4gYXJyYXkgb2YgSURzIGZvciBzeXN0ZW0gVGltZVpvbmVzIHdpdGggdGhlIGdpdmVuCisgICAgICogcmF3IG9mZnNldC4gIElmIHRoZXJlIGFyZSBub25lLCByZXR1cm4gYSB6ZXJvLWxlbmd0aCBhcnJheS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ1tdIGdldEF2YWlsYWJsZUlEcyhTdHJpbmcgY291bnRyeUNvZGUpIHsKKyAgICAgICAgLy8gQ29uc3RydWN0IG91ciBrZXk7IHRoaXMgaXMgYW4gaW50ZWdlciBvZiB0aGUgZm9ybQorICAgICAgICAvLyAzMipuMSArIG4wLCB3aGVyZSAwPD1uPD0yNS4KKyAgICAgICAgaW50IGNvdW50cnlIYXNoID0gMDsKKyAgICAgICAgaWYgKGNvdW50cnlDb2RlICE9IG51bGwpIHsKKyAgICAgICAgICAgIGNvdW50cnlIYXNoID0KKyAgICAgICAgICAgICAgICAoKENoYXJhY3Rlci50b1VwcGVyQ2FzZShjb3VudHJ5Q29kZS5jaGFyQXQoMCkpIC0gJ0EnKSA8PCA1KSB8CisgICAgICAgICAgICAgICAgKENoYXJhY3Rlci50b1VwcGVyQ2FzZShjb3VudHJ5Q29kZS5jaGFyQXQoMSkpIC0gJ0EnKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIERvIGEgbGluZWFyIHNlYXJjaDsgdGhlcmUgYXJlIH4gMjUwIGVudHJpZXMKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPElOREVYX0JZX0NPVU5UUlkubGVuZ3RoOyApIHsKKyAgICAgICAgICAgIGlmIChjb3VudHJ5SGFzaCA9PSBJTkRFWF9CWV9DT1VOVFJZW2ldKSB7CisgICAgICAgICAgICAgICAgLy8gRm91bmQgdGhlIGRlc2lyZWQgY291bnRyeQorICAgICAgICAgICAgICAgIGludCBuID0gSU5ERVhfQllfQ09VTlRSWVtpKzFdOworICAgICAgICAgICAgICAgIFN0cmluZ1tdIHJlc3VsdCA9IG5ldyBTdHJpbmdbbl07CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaj0wOyBqPG47ICsraikgeworICAgICAgICAgICAgICAgICAgICByZXN1bHRbal0gPSBJRFNbSU5ERVhfQllfQ09VTlRSWVtpKzIral1dOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpICs9IElOREVYX0JZX0NPVU5UUllbaSsxXSArIDI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gRmFpbGVkIHRvIGZpbmQgYW55OyByZXR1cm4gZW1wdHkgYXJyYXkKKyAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmdbMF07CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIElEcyBpbiB0aGUgZXF1aXZhbGVuY3kgZ3JvdXAgdGhhdAorICAgICAqIGluY2x1ZGVzIHRoZSBnaXZlbiBJRC4gIEFuIGVxdWl2YWxlbmN5IGdyb3VwIGNvbnRhaW5zIHpvbmVzCisgICAgICogdGhhdCBoYXZlIHRoZSBzYW1lIEdNVCBvZmZzZXQgYW5kIHJ1bGVzLgorICAgICAqCisgICAgICogPHA+VGhlIHJldHVybmVkIGNvdW50IGluY2x1ZGVzIHRoZSBnaXZlbiBJRDsgaXQgaXMgYWx3YXlzID49IDEKKyAgICAgKiBmb3IgdmFsaWQgSURzLiAgVGhlIGdpdmVuIElEIG11c3QgYmUgYSBzeXN0ZW0gdGltZSB6b25lLiAgSWYgaXQKKyAgICAgKiBpcyBub3QsIHJldHVybnMgemVyby4KKyAgICAgKiBAcGFyYW0gSUQgYSBzeXN0ZW0gdGltZSB6b25lIElECisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIHpvbmVzIGluIHRoZSBlcXVpdmFsZW5jeSBncm91cCBjb250YWluaW5nCisgICAgICogJ0lEJywgb3IgemVybyBpZiAnSUQnIGlzIG5vdCBhIHZhbGlkIHN5c3RlbSBJRAorICAgICAqIEBzZWUgI2dldEVxdWl2YWxlbnRJRAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvdW50RXF1aXZhbGVudElEcyhTdHJpbmcgSUQpIHsKKyAgICAgICAgaW50IGkgPSBsb29rdXAoSUQpOworICAgICAgICByZXR1cm4gKGk8MCkgPyAwIDogREFUQVtpICsgKChEQVRBW2ldPT0wKT8yOjEzKV07CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhbiBJRCBpbiB0aGUgZXF1aXZhbGVuY3kgZ3JvdXAgdGhhdAorICAgICAqIGluY2x1ZGVzIHRoZSBnaXZlbiBJRC4gIEFuIGVxdWl2YWxlbmN5IGdyb3VwIGNvbnRhaW5zIHpvbmVzCisgICAgICogdGhhdCBoYXZlIHRoZSBzYW1lIEdNVCBvZmZzZXQgYW5kIHJ1bGVzLgorICAgICAqCisgICAgICogPHA+VGhlIGdpdmVuIGluZGV4IG11c3QgYmUgaW4gdGhlIHJhbmdlIDAuLm4tMSwgd2hlcmUgbiBpcyB0aGUKKyAgICAgKiB2YWx1ZSByZXR1cm5lZCBieSA8Y29kZT5jb3VudEVxdWl2YWxlbnRJRHMoaWQpPC9jb2RlPi4gIEZvcgorICAgICAqIHNvbWUgdmFsdWUgb2YgJ2luZGV4JywgdGhlIHJldHVybmVkIHZhbHVlIHdpbGwgYmUgZXF1YWwgdG8gdGhlCisgICAgICogZ2l2ZW4gaWQuICBJZiB0aGUgZ2l2ZW4gaWQgaXMgbm90IGEgdmFsaWQgc3lzdGVtIHRpbWUgem9uZSwgb3IKKyAgICAgKiBpZiAnaW5kZXgnIGlzIG91dCBvZiByYW5nZSwgdGhlbiByZXR1cm5zIGFuIGVtcHR5IHN0cmluZy4KKyAgICAgKiBAcGFyYW0gSUQgYSBzeXN0ZW0gdGltZSB6b25lIElECisgICAgICogQHBhcmFtIGluZGV4IGEgdmFsdWUgZnJvbSAwIHRvIG4tMSwgd2hlcmUgbiBpcyB0aGUgdmFsdWUKKyAgICAgKiByZXR1cm5lZCBieSA8Y29kZT5jb3VudEVxdWl2YWxlbnRJRHMoaWQpPC9jb2RlPgorICAgICAqIEByZXR1cm4gdGhlIElEIG9mIHRoZSBpbmRleC10aCB6b25lIGluIHRoZSBlcXVpdmFsZW5jeSBncm91cAorICAgICAqIGNvbnRhaW5pbmcgJ0lEJywgb3IgYW4gZW1wdHkgc3RyaW5nIGlmICdJRCcgaXMgbm90IGEgdmFsaWQKKyAgICAgKiBzeXN0ZW0gSUQgb3IgJ2luZGV4JyBpcyBvdXQgb2YgcmFuZ2UKKyAgICAgKiBAc2VlICNjb3VudEVxdWl2YWxlbnRJRHMKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRFcXVpdmFsZW50SUQoU3RyaW5nIElELCBpbnQgaW5kZXgpIHsKKyAgICAgICAgaW50IGkgPSBsb29rdXAoSUQpOworICAgICAgICBpZiAoaTwwKSB7CisgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgIH0KKyAgICAgICAgaW50IGogPSBpICsgKChEQVRBW2ldPT0wKT8yOjEzKTsKKyAgICAgICAgcmV0dXJuIChpbmRleDxEQVRBW2pdKSA/IElEU1tEQVRBW2oraW5kZXgrMV1dIDogIiI7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2l2ZW4gYW4gSUQsIHJldHVybiB0aGUgZXF1aXZhbGVuY3kgZ3JvdXAgaW5kZXggKGluZGV4IG9mCisgICAgICogREFUQVtdIGZvciB0aGUgc3RhcnQgb2YgdGhlIGdyb3VwJ3MgZGF0YSkgb3IgLTEgaWYgbm90IGZvdW5kLgorICAgICAqLworICAgIHN0YXRpYyBpbnQgbG9va3VwKFN0cmluZyBJRCkgeworICAgICAgICBJbnRlZ2VyIGkgPSAoSW50ZWdlcikgSU5ERVhfQllfTkFNRS5nZXQoSUQpOworICAgICAgICByZXR1cm4gKGkgPT0gbnVsbCkgPyAtMSA6IGkuaW50VmFsdWUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBFcXVpdmFsZW5jeSBncm91cCBkYXRhIGluIGludFtdIGZvcm0uICBUaGlzIGlzIHJlcHJlc2VudGVkIGFzIGEKKyAgICAgKiBzaW5nbGUgZmxhdCBhcnJheSBvZiBpbnRzIGZvciBjb21wYWN0bmVzcy4gIEVhY2ggZXF1aXZhbGVuY3kKKyAgICAgKiBncm91cCBpcyByZXByZXNlbnRlZCBieSBhIHNlcXVlbmNlIG9mIGludHMgb2YgdmFyaWFibGUgbGVuZ3RoLgorICAgICAqIEdyb3VwcyBhcmUgaWRlbnRpZmllZCBieSBhIHNpbmdsZSBpbnRlZ2VyLCB0aGUgb2Zmc2V0IHRvIHRoZQorICAgICAqIHN0YXJ0IG9mIHRoZSBncm91cC4gIElmIGkgaXMgdGhlIG9mZnNldCB0byB0aGUgc3RhcnQgb2YgdGhlCisgICAgICogZ3JvdXAsIHRoZW4gdGhlIGxheW91dCBvZiBkYXRhIGlzOgorICAgICAqCisgICAgICogT2Zmc2V0ICBEYXRhICAgICAgIE5vdGVzCisgICAgICogaSswICAgICBpc0RTVCAgICAgIDAgZm9yIHN0YW5kYXJkIHpvbmVzLCAxIGZvciBEU1QKKyAgICAgKiBpKzEgICAgIHJhd09mZnNldCAgaW4gc2Vjb25kcyBmcm9tIEdNVAorICAgICAqIDxEU1Qgem9uZXMgY29udGFpbiBhZGRpdGlvbmFsIGVudHJpZXMgaGVyZTsgc2VlIGJlbG93PgorICAgICAqIGorMCAgICAgY291bnQgICAgICBudW1iZXIgb2YgSURzIHRvIGZvbGxvdywgPj0gMQorICAgICAqIGorMS4uayAgSURzICAgICAgICBpbmRpY2VzIGludG8gSURTW10gYXJyYXkKKyAgICAgKiBqK2srMSAgIChuZXh0IGVudHJ5IHN0YXJ0KQorICAgICAqCisgICAgICogRm9yIHN0YW5kYXJkIHpvbmVzLCBqID0gaSsyLiAgRm9yIERTVCB6b25lcywgaiA9IGkrMTMKKyAgICAgKiBhbmQgdGhlIGZvbGxvd2luZyBlbnRyaWVzIGFwcGx5OgorICAgICAqCisgICAgICogT2Zmc2V0ICBEYXRhICAgICAgIE5vdGVzCisgICAgICogaSsyICAgICBzdGFydE1vbnRoIDAtYmFzZWQKKyAgICAgKiBpKzMgICAgIHN0YXJ0RG93aW0KKyAgICAgKiBpKzQgICAgIHN0YXJ0RG93ICAKKyAgICAgKiBpKzUgICAgIHN0YXJ0VGltZSAgaW4gbWludXRlcworICAgICAqIGkrNiAgICAgc3RhcnRNb2RlICB3L3MvdSBlbmNvZGVkIGFzIDAvMS8yCisgICAgICogaSs3ICAgICBlbmRNb250aCAgIDAtYmFzZWQKKyAgICAgKiBpKzggICAgIGVuZERvd2ltCisgICAgICogaSs5ICAgICBlbmREb3cgIAorICAgICAqIGkrMTAgICAgZW5kVGltZSAgICBpbiBtaW51dGVzCisgICAgICogaSsxMSAgICBlbmRNb2RlICAgIHcvcy91IGVuY29kZWQgYXMgMC8xLzIKKyAgICAgKiBpKzEyICAgICBkc3RTYXZpbmdzIGluIG1pbnV0ZXMKKyAgICAgKgorICAgICAqIEEgc3RhbmRhcmQgem9uZSBlbnRyeSBpcyAzK24gaW50cyBsb25nLCBhbmQgYSBEU1Qgem9uZSBlbnRyeSBpcworICAgICAqIDE0K24gaW50cyBsb25nLCB3aGVyZSBuIGlzIGNvdW50IG9mIElEcyB0byBmb2xsb3cgKHRoZSB2YWx1ZSBhdAorICAgICAqIGorMCkuCisgICAgICovCisgICAgc3RhdGljIGludFtdIERBVEE7CisKKyAgICAvKioKKyAgICAgKiBNYXAgZnJvbSBUaW1lWm9uZSBJRCB0byBlcXVpdmFsZW5jeSBncm91cCBvZmZzZXQuICBUaGlzIGlzIGFuCisgICAgICogaW5kZXggaW50byBEQVRBLiAgVGhlIGVxdWl2YWxlbmN5IGdyb3VwIGRhdGEgc3RhcnRzIGF0IERBVEFbaV0KKyAgICAgKiBhbmQgb2NjdXBpZXMgdGhlIG0gaW50cyB0aGF0IGZvbGxvdywgd2hlcmUgdGhlIHZhbHVlIG9mIG0gZGVwZW5kcworICAgICAqIG9uIHdoZXRoZXIgdGhlIHpvbmUgaXMgc3RhbmRhcmQgb3IgRFNUIGFuZCBob3cgbWFueSBJRHMgYXJlIGluCisgICAgICogdGhlIGdyb3VwLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBIYXNodGFibGUgSU5ERVhfQllfTkFNRSA9IG5ldyBIYXNodGFibGUoKTsKKworICAgIC8qKgorICAgICAqIEluZGV4IG9mIHJhd09mZnNldCB0byBsaXN0IG9mIHpvbmVzLiAgRW50cmllcyBhcmUgaW4gb3JkZXIgb2YgCisgICAgICogYXNjZW5kaW5nIHJhd09mZnNldC4gIEZvcm1hdDoKKyAgICAgKgorICAgICAqIE9mZnNldCAgRGF0YSAgICAgICBOb3RlcworICAgICAqIGkrMCAgICAgcmF3T2Zmc2V0ICBpbiBtaWxsaXNlY29uZHMgZnJvbSBHTVQKKyAgICAgKiBpKzEgICAgIGRlZmF1bHQgICAgZGVmYXVsdCB6b25lIGZvciB0aGlzIG9mZnNldAorICAgICAqIGkrMiAgICAgY291bnQgICAgICBudW1iZXIgb2YgSURzIHRvIGZvbGxvdworICAgICAqIGkrMy4uaiAgSURzICAgICAgICBpbmRpY2VzIGludG8gSURTCisgICAgICogaStqKzEgICAobmV4dCBlbnRyeSBzdGFydCkKKyAgICAgKgorICAgICAqIElmIHRoZSBudW1iZXIgb2YgZXF1aXZhbGVuY3kgZ3JvdXBzIGlzIG4sIHRoZW4gaj1uKzIuCisgICAgICoKKyAgICAgKiBFcXVpdmFsZW5jeSBncm91cCBJRHMgYXJlIGluZGljZXMgaW4gREFUQSB0byB0aGUgc3RhcnQgb2YgZWFjaAorICAgICAqIGVxdWl2YWxlbmN5IGdyb3VwLgorICAgICAqLworICAgIHN0YXRpYyBpbnRbXSBJTkRFWF9CWV9PRkZTRVQ7CisKKyAgICAvKioKKyAgICAgKiBJbmRleCBieSBjb3VudHJ5IHRvIGxpc3Qgb2Ygem9uZXMuICBFbnRyaWVzIGFyZSBpbiBvcmRlciBvZiAKKyAgICAgKiBhc2NlbmRpbmcgY291bnRyeSBjb2RlLiAgRm9ybWF0OgorICAgICAqCisgICAgICogT2Zmc2V0ICBEYXRhICAgICAgIE5vdGVzCisgICAgICogaSswICAgICBjb3VudHJ5ICAgIGFzIGFuIGludGVnZXIgMzJuMSArIG4wOyBzZWUgYmVsb3cKKyAgICAgKiBpKzEgICAgIGNvdW50ICAgICAgbnVtYmVyIG9mIElEcyB0byBmb2xsb3cKKyAgICAgKiBpKzIuLmogIElEcyAgICAgICAgaW5kaWNlcyBpbnRvIElEU1tdCisgICAgICoKKyAgICAgKiBJZiB0aGUgbnVtYmVyIG9mIHpvbmVzIGlzIG4sIHRoZW4gaj1uKzEuCisgICAgICoKKyAgICAgKiBUaGUgZmlyc3QgaW50ZWdlciBpbiBlYWNoIGVudHJ5IGlzIHRoZSBjb3VudHJ5IGNvZGUgYXMgYW4gaW50ZWdlcgorICAgICAqIGZyb20gMC4uKDI2LTEpKjMyKygyNi0xKS4gIFRoaXMgaXMgY29tcHV0ZWQgYXMgZm9sbG93czogIEEgdHdvCisgICAgICogbGV0dGVyIGNvdW50cnkgY29kZSBYWSBpcyBjb252ZXJ0ZWQgdG8gKChYLSdBJyk8PDUpIHwgKFktJ0EnKS4KKyAgICAgKiBUaGUgc3BlY2lhbCB2YWx1ZSAwIGluZGljYXRlcyBubyBhc3NpZ25lZCBjb3VudHJ5LiAgVGhpcyBhbHNvCisgICAgICogbWFwcyB0byB0aGUgY291bnRyeSBjb2RlICdBQScgYnV0IGN1cnJlbnRseSB0aGlzIGlzIG5vdCBhIHZhbGlkCisgICAgICogY291bnRyeSBjb2RlLgorICAgICAqCisgICAgICogWm9uZSBJRCB2YWx1ZXMgYXJlIGluZGljZXMgaW50byBJRFNbXS4KKyAgICAgKi8KKyAgICBzdGF0aWMgaW50W10gSU5ERVhfQllfQ09VTlRSWTsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEJFR0lOIEdFTkVSQVRFRCBTT1VSQ0UgQ09ERQorICAgIC8vIERhdGU6IEZyaSBGZWIgMDIgMTA6MzY6MzIgUFNUIDIwMDEKKyAgICAvLyBWZXJzaW9uOiB0emRhdGEyMDAwaCBmcm9tIGZ0cDovL2Vsc2llLm5jaS5uaWguZ292L3B1YgorICAgIC8vIFRvb2w6IGljdS9zb3VyY2UvdG9vbHMvZ2VudHoKKyAgICAvLyBTZWU6IGljdS9zb3VyY2UvdG9vbHMvZ2VudHovcmVhZG1lLnR4dAorICAgIC8vIERPIE5PVCBFRElUIFRISVMgU0VDVElPTgorCisgICAgLyoqCisgICAgICogQXJyYXkgb2YgSURzIGluIGxleGljb2dyYXBoaWMgb3JkZXIuICBUaGUgSU5ERVhfQllfT0ZGU0VUIGFuZCBEQVRBCisgICAgICogYXJyYXlzIHJlZmVyIHRvIHpvbmVzIHVzaW5nIGluZGljZXMgaW50byB0aGlzIGFycmF5LiAgVG8gbWFwIGZyb20gSUQKKyAgICAgKiB0byBlcXVpdmFsZW5jeSBncm91cCwgdXNlIHRoZSBJTkRFWF9CWV9OQU1FIEhhc2h0YWJsZS4KKyAgICAgKiA+PiBHRU5FUkFURUQgREFUQTogRE8gTk9UIEVESVQgPDwKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nW10gSURTID0geworICAgICAgICAiQUNUIiwKKyAgICAgICAgIkFFVCIsCisgICAgICAgICJBR1QiLAorICAgICAgICAiQVJUIiwKKyAgICAgICAgIkFTVCIsCisgICAgICAgICJBZnJpY2EvQWJpZGphbiIsCisgICAgICAgICJBZnJpY2EvQWNjcmEiLAorICAgICAgICAiQWZyaWNhL0FkZGlzX0FiYWJhIiwKKyAgICAgICAgIkFmcmljYS9BbGdpZXJzIiwKKyAgICAgICAgIkFmcmljYS9Bc21lcmEiLAorICAgICAgICAiQWZyaWNhL0JhbWFrbyIsCisgICAgICAgICJBZnJpY2EvQmFuZ3VpIiwKKyAgICAgICAgIkFmcmljYS9CYW5qdWwiLAorICAgICAgICAiQWZyaWNhL0Jpc3NhdSIsCisgICAgICAgICJBZnJpY2EvQmxhbnR5cmUiLAorICAgICAgICAiQWZyaWNhL0JyYXp6YXZpbGxlIiwKKyAgICAgICAgIkFmcmljYS9CdWp1bWJ1cmEiLAorICAgICAgICAiQWZyaWNhL0NhaXJvIiwKKyAgICAgICAgIkFmcmljYS9DYXNhYmxhbmNhIiwKKyAgICAgICAgIkFmcmljYS9DZXV0YSIsCisgICAgICAgICJBZnJpY2EvQ29uYWtyeSIsCisgICAgICAgICJBZnJpY2EvRGFrYXIiLAorICAgICAgICAiQWZyaWNhL0Rhcl9lc19TYWxhYW0iLAorICAgICAgICAiQWZyaWNhL0RqaWJvdXRpIiwKKyAgICAgICAgIkFmcmljYS9Eb3VhbGEiLAorICAgICAgICAiQWZyaWNhL0VsX0FhaXVuIiwKKyAgICAgICAgIkFmcmljYS9GcmVldG93biIsCisgICAgICAgICJBZnJpY2EvR2Fib3JvbmUiLAorICAgICAgICAiQWZyaWNhL0hhcmFyZSIsCisgICAgICAgICJBZnJpY2EvSm9oYW5uZXNidXJnIiwKKyAgICAgICAgIkFmcmljYS9LYW1wYWxhIiwKKyAgICAgICAgIkFmcmljYS9LaGFydG91bSIsCisgICAgICAgICJBZnJpY2EvS2lnYWxpIiwKKyAgICAgICAgIkFmcmljYS9LaW5zaGFzYSIsCisgICAgICAgICJBZnJpY2EvTGFnb3MiLAorICAgICAgICAiQWZyaWNhL0xpYnJldmlsbGUiLAorICAgICAgICAiQWZyaWNhL0xvbWUiLAorICAgICAgICAiQWZyaWNhL0x1YW5kYSIsCisgICAgICAgICJBZnJpY2EvTHVidW1iYXNoaSIsCisgICAgICAgICJBZnJpY2EvTHVzYWthIiwKKyAgICAgICAgIkFmcmljYS9NYWxhYm8iLAorICAgICAgICAiQWZyaWNhL01hcHV0byIsCisgICAgICAgICJBZnJpY2EvTWFzZXJ1IiwKKyAgICAgICAgIkFmcmljYS9NYmFiYW5lIiwKKyAgICAgICAgIkFmcmljYS9Nb2dhZGlzaHUiLAorICAgICAgICAiQWZyaWNhL01vbnJvdmlhIiwKKyAgICAgICAgIkFmcmljYS9OYWlyb2JpIiwKKyAgICAgICAgIkFmcmljYS9OZGphbWVuYSIsCisgICAgICAgICJBZnJpY2EvTmlhbWV5IiwKKyAgICAgICAgIkFmcmljYS9Ob3Vha2Nob3R0IiwKKyAgICAgICAgIkFmcmljYS9PdWFnYWRvdWdvdSIsCisgICAgICAgICJBZnJpY2EvUG9ydG8tTm92byIsCisgICAgICAgICJBZnJpY2EvU2FvX1RvbWUiLAorICAgICAgICAiQWZyaWNhL1RpbWJ1a3R1IiwKKyAgICAgICAgIkFmcmljYS9Ucmlwb2xpIiwKKyAgICAgICAgIkFmcmljYS9UdW5pcyIsCisgICAgICAgICJBZnJpY2EvV2luZGhvZWsiLAorICAgICAgICAiQW1lcmljYS9BZGFrIiwKKyAgICAgICAgIkFtZXJpY2EvQW5jaG9yYWdlIiwKKyAgICAgICAgIkFtZXJpY2EvQW5ndWlsbGEiLAorICAgICAgICAiQW1lcmljYS9BbnRpZ3VhIiwKKyAgICAgICAgIkFtZXJpY2EvQXJhZ3VhaW5hIiwKKyAgICAgICAgIkFtZXJpY2EvQXJ1YmEiLAorICAgICAgICAiQW1lcmljYS9Bc3VuY2lvbiIsCisgICAgICAgICJBbWVyaWNhL0JhcmJhZG9zIiwKKyAgICAgICAgIkFtZXJpY2EvQmVsZW0iLAorICAgICAgICAiQW1lcmljYS9CZWxpemUiLAorICAgICAgICAiQW1lcmljYS9Cb2FfVmlzdGEiLAorICAgICAgICAiQW1lcmljYS9Cb2dvdGEiLAorICAgICAgICAiQW1lcmljYS9Cb2lzZSIsCisgICAgICAgICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsCisgICAgICAgICJBbWVyaWNhL0NhbWJyaWRnZV9CYXkiLAorICAgICAgICAiQW1lcmljYS9DYW5jdW4iLAorICAgICAgICAiQW1lcmljYS9DYXJhY2FzIiwKKyAgICAgICAgIkFtZXJpY2EvQ2F0YW1hcmNhIiwKKyAgICAgICAgIkFtZXJpY2EvQ2F5ZW5uZSIsCisgICAgICAgICJBbWVyaWNhL0NheW1hbiIsCisgICAgICAgICJBbWVyaWNhL0NoaWNhZ28iLAorICAgICAgICAiQW1lcmljYS9DaGlodWFodWEiLAorICAgICAgICAiQW1lcmljYS9Db3Jkb2JhIiwKKyAgICAgICAgIkFtZXJpY2EvQ29zdGFfUmljYSIsCisgICAgICAgICJBbWVyaWNhL0N1aWFiYSIsCisgICAgICAgICJBbWVyaWNhL0N1cmFjYW8iLAorICAgICAgICAiQW1lcmljYS9EYXdzb24iLAorICAgICAgICAiQW1lcmljYS9EYXdzb25fQ3JlZWsiLAorICAgICAgICAiQW1lcmljYS9EZW52ZXIiLAorICAgICAgICAiQW1lcmljYS9EZXRyb2l0IiwKKyAgICAgICAgIkFtZXJpY2EvRG9taW5pY2EiLAorICAgICAgICAiQW1lcmljYS9FZG1vbnRvbiIsCisgICAgICAgICJBbWVyaWNhL0VpcnVuZXBlIiwKKyAgICAgICAgIkFtZXJpY2EvRWxfU2FsdmFkb3IiLAorICAgICAgICAiQW1lcmljYS9Gb3J0YWxlemEiLAorICAgICAgICAiQW1lcmljYS9HbGFjZV9CYXkiLAorICAgICAgICAiQW1lcmljYS9Hb2R0aGFiIiwKKyAgICAgICAgIkFtZXJpY2EvR29vc2VfQmF5IiwKKyAgICAgICAgIkFtZXJpY2EvR3JhbmRfVHVyayIsCisgICAgICAgICJBbWVyaWNhL0dyZW5hZGEiLAorICAgICAgICAiQW1lcmljYS9HdWFkZWxvdXBlIiwKKyAgICAgICAgIkFtZXJpY2EvR3VhdGVtYWxhIiwKKyAgICAgICAgIkFtZXJpY2EvR3VheWFxdWlsIiwKKyAgICAgICAgIkFtZXJpY2EvR3V5YW5hIiwKKyAgICAgICAgIkFtZXJpY2EvSGFsaWZheCIsCisgICAgICAgICJBbWVyaWNhL0hhdmFuYSIsCisgICAgICAgICJBbWVyaWNhL0hlcm1vc2lsbG8iLAorICAgICAgICAiQW1lcmljYS9JbmRpYW5hL0tub3giLAorICAgICAgICAiQW1lcmljYS9JbmRpYW5hL01hcmVuZ28iLAorICAgICAgICAiQW1lcmljYS9JbmRpYW5hL1ZldmF5IiwKKyAgICAgICAgIkFtZXJpY2EvSW5kaWFuYXBvbGlzIiwKKyAgICAgICAgIkFtZXJpY2EvSW51dmlrIiwKKyAgICAgICAgIkFtZXJpY2EvSXFhbHVpdCIsCisgICAgICAgICJBbWVyaWNhL0phbWFpY2EiLAorICAgICAgICAiQW1lcmljYS9KdWp1eSIsCisgICAgICAgICJBbWVyaWNhL0p1bmVhdSIsCisgICAgICAgICJBbWVyaWNhL0tlbnR1Y2t5L01vbnRpY2VsbG8iLAorICAgICAgICAiQW1lcmljYS9MYV9QYXoiLAorICAgICAgICAiQW1lcmljYS9MaW1hIiwKKyAgICAgICAgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLAorICAgICAgICAiQW1lcmljYS9Mb3Vpc3ZpbGxlIiwKKyAgICAgICAgIkFtZXJpY2EvTWFjZWlvIiwKKyAgICAgICAgIkFtZXJpY2EvTWFuYWd1YSIsCisgICAgICAgICJBbWVyaWNhL01hbmF1cyIsCisgICAgICAgICJBbWVyaWNhL01hcnRpbmlxdWUiLAorICAgICAgICAiQW1lcmljYS9NYXphdGxhbiIsCisgICAgICAgICJBbWVyaWNhL01lbmRvemEiLAorICAgICAgICAiQW1lcmljYS9NZW5vbWluZWUiLAorICAgICAgICAiQW1lcmljYS9NZXJpZGEiLAorICAgICAgICAiQW1lcmljYS9NZXhpY29fQ2l0eSIsCisgICAgICAgICJBbWVyaWNhL01pcXVlbG9uIiwKKyAgICAgICAgIkFtZXJpY2EvTW9udGVycmV5IiwKKyAgICAgICAgIkFtZXJpY2EvTW9udGV2aWRlbyIsCisgICAgICAgICJBbWVyaWNhL01vbnRyZWFsIiwKKyAgICAgICAgIkFtZXJpY2EvTW9udHNlcnJhdCIsCisgICAgICAgICJBbWVyaWNhL05hc3NhdSIsCisgICAgICAgICJBbWVyaWNhL05ld19Zb3JrIiwKKyAgICAgICAgIkFtZXJpY2EvTmlwaWdvbiIsCisgICAgICAgICJBbWVyaWNhL05vbWUiLAorICAgICAgICAiQW1lcmljYS9Ob3JvbmhhIiwKKyAgICAgICAgIkFtZXJpY2EvUGFuYW1hIiwKKyAgICAgICAgIkFtZXJpY2EvUGFuZ25pcnR1bmciLAorICAgICAgICAiQW1lcmljYS9QYXJhbWFyaWJvIiwKKyAgICAgICAgIkFtZXJpY2EvUGhvZW5peCIsCisgICAgICAgICJBbWVyaWNhL1BvcnQtYXUtUHJpbmNlIiwKKyAgICAgICAgIkFtZXJpY2EvUG9ydF9vZl9TcGFpbiIsCisgICAgICAgICJBbWVyaWNhL1BvcnRvX0FjcmUiLAorICAgICAgICAiQW1lcmljYS9Qb3J0b19WZWxobyIsCisgICAgICAgICJBbWVyaWNhL1B1ZXJ0b19SaWNvIiwKKyAgICAgICAgIkFtZXJpY2EvUmFpbnlfUml2ZXIiLAorICAgICAgICAiQW1lcmljYS9SYW5raW5fSW5sZXQiLAorICAgICAgICAiQW1lcmljYS9SZWNpZmUiLAorICAgICAgICAiQW1lcmljYS9SZWdpbmEiLAorICAgICAgICAiQW1lcmljYS9Sb3NhcmlvIiwKKyAgICAgICAgIkFtZXJpY2EvU2FudGlhZ28iLAorICAgICAgICAiQW1lcmljYS9TYW50b19Eb21pbmdvIiwKKyAgICAgICAgIkFtZXJpY2EvU2FvX1BhdWxvIiwKKyAgICAgICAgIkFtZXJpY2EvU2NvcmVzYnlzdW5kIiwKKyAgICAgICAgIkFtZXJpY2EvU3RfSm9obnMiLAorICAgICAgICAiQW1lcmljYS9TdF9LaXR0cyIsCisgICAgICAgICJBbWVyaWNhL1N0X0x1Y2lhIiwKKyAgICAgICAgIkFtZXJpY2EvU3RfVGhvbWFzIiwKKyAgICAgICAgIkFtZXJpY2EvU3RfVmluY2VudCIsCisgICAgICAgICJBbWVyaWNhL1N3aWZ0X0N1cnJlbnQiLAorICAgICAgICAiQW1lcmljYS9UZWd1Y2lnYWxwYSIsCisgICAgICAgICJBbWVyaWNhL1RodWxlIiwKKyAgICAgICAgIkFtZXJpY2EvVGh1bmRlcl9CYXkiLAorICAgICAgICAiQW1lcmljYS9UaWp1YW5hIiwKKyAgICAgICAgIkFtZXJpY2EvVG9ydG9sYSIsCisgICAgICAgICJBbWVyaWNhL1ZhbmNvdXZlciIsCisgICAgICAgICJBbWVyaWNhL1doaXRlaG9yc2UiLAorICAgICAgICAiQW1lcmljYS9XaW5uaXBlZyIsCisgICAgICAgICJBbWVyaWNhL1lha3V0YXQiLAorICAgICAgICAiQW1lcmljYS9ZZWxsb3drbmlmZSIsCisgICAgICAgICJBbnRhcmN0aWNhL0Nhc2V5IiwKKyAgICAgICAgIkFudGFyY3RpY2EvRGF2aXMiLAorICAgICAgICAiQW50YXJjdGljYS9EdW1vbnREVXJ2aWxsZSIsCisgICAgICAgICJBbnRhcmN0aWNhL01hd3NvbiIsCisgICAgICAgICJBbnRhcmN0aWNhL01jTXVyZG8iLAorICAgICAgICAiQW50YXJjdGljYS9QYWxtZXIiLAorICAgICAgICAiQW50YXJjdGljYS9TeW93YSIsCisgICAgICAgICJBcmN0aWMvTG9uZ3llYXJieWVuIiwKKyAgICAgICAgIkFzaWEvQWRlbiIsCisgICAgICAgICJBc2lhL0FsbWF0eSIsCisgICAgICAgICJBc2lhL0FtbWFuIiwKKyAgICAgICAgIkFzaWEvQW5hZHlyIiwKKyAgICAgICAgIkFzaWEvQXF0YXUiLAorICAgICAgICAiQXNpYS9BcXRvYmUiLAorICAgICAgICAiQXNpYS9Bc2hnYWJhdCIsCisgICAgICAgICJBc2lhL0JhZ2hkYWQiLAorICAgICAgICAiQXNpYS9CYWhyYWluIiwKKyAgICAgICAgIkFzaWEvQmFrdSIsCisgICAgICAgICJBc2lhL0Jhbmdrb2siLAorICAgICAgICAiQXNpYS9CZWlydXQiLAorICAgICAgICAiQXNpYS9CaXNoa2VrIiwKKyAgICAgICAgIkFzaWEvQnJ1bmVpIiwKKyAgICAgICAgIkFzaWEvQ2FsY3V0dGEiLAorICAgICAgICAiQXNpYS9DaHVuZ2tpbmciLAorICAgICAgICAiQXNpYS9Db2xvbWJvIiwKKyAgICAgICAgIkFzaWEvRGFtYXNjdXMiLAorICAgICAgICAiQXNpYS9EaGFrYSIsCisgICAgICAgICJBc2lhL0RpbGkiLAorICAgICAgICAiQXNpYS9EdWJhaSIsCisgICAgICAgICJBc2lhL0R1c2hhbmJlIiwKKyAgICAgICAgIkFzaWEvR2F6YSIsCisgICAgICAgICJBc2lhL0hhcmJpbiIsCisgICAgICAgICJBc2lhL0hvbmdfS29uZyIsCisgICAgICAgICJBc2lhL0hvdmQiLAorICAgICAgICAiQXNpYS9Jcmt1dHNrIiwKKyAgICAgICAgIkFzaWEvSmFrYXJ0YSIsCisgICAgICAgICJBc2lhL0pheWFwdXJhIiwKKyAgICAgICAgIkFzaWEvSmVydXNhbGVtIiwKKyAgICAgICAgIkFzaWEvS2FidWwiLAorICAgICAgICAiQXNpYS9LYW1jaGF0a2EiLAorICAgICAgICAiQXNpYS9LYXJhY2hpIiwKKyAgICAgICAgIkFzaWEvS2FzaGdhciIsCisgICAgICAgICJBc2lhL0thdG1hbmR1IiwKKyAgICAgICAgIkFzaWEvS3Jhc25veWFyc2siLAorICAgICAgICAiQXNpYS9LdWFsYV9MdW1wdXIiLAorICAgICAgICAiQXNpYS9LdWNoaW5nIiwKKyAgICAgICAgIkFzaWEvS3V3YWl0IiwKKyAgICAgICAgIkFzaWEvTWFjYW8iLAorICAgICAgICAiQXNpYS9NYWdhZGFuIiwKKyAgICAgICAgIkFzaWEvTWFuaWxhIiwKKyAgICAgICAgIkFzaWEvTXVzY2F0IiwKKyAgICAgICAgIkFzaWEvTmljb3NpYSIsCisgICAgICAgICJBc2lhL05vdm9zaWJpcnNrIiwKKyAgICAgICAgIkFzaWEvT21zayIsCisgICAgICAgICJBc2lhL1Bobm9tX1BlbmgiLAorICAgICAgICAiQXNpYS9QeW9uZ3lhbmciLAorICAgICAgICAiQXNpYS9RYXRhciIsCisgICAgICAgICJBc2lhL1Jhbmdvb24iLAorICAgICAgICAiQXNpYS9SaXlhZGgiLAorICAgICAgICAiQXNpYS9SaXlhZGg4NyIsCisgICAgICAgICJBc2lhL1JpeWFkaDg4IiwKKyAgICAgICAgIkFzaWEvUml5YWRoODkiLAorICAgICAgICAiQXNpYS9TYWlnb24iLAorICAgICAgICAiQXNpYS9TYW1hcmthbmQiLAorICAgICAgICAiQXNpYS9TZW91bCIsCisgICAgICAgICJBc2lhL1NoYW5naGFpIiwKKyAgICAgICAgIkFzaWEvU2luZ2Fwb3JlIiwKKyAgICAgICAgIkFzaWEvVGFpcGVpIiwKKyAgICAgICAgIkFzaWEvVGFzaGtlbnQiLAorICAgICAgICAiQXNpYS9UYmlsaXNpIiwKKyAgICAgICAgIkFzaWEvVGVocmFuIiwKKyAgICAgICAgIkFzaWEvVGhpbXBodSIsCisgICAgICAgICJBc2lhL1Rva3lvIiwKKyAgICAgICAgIkFzaWEvVWp1bmdfUGFuZGFuZyIsCisgICAgICAgICJBc2lhL1VsYWFuYmFhdGFyIiwKKyAgICAgICAgIkFzaWEvVXJ1bXFpIiwKKyAgICAgICAgIkFzaWEvVmllbnRpYW5lIiwKKyAgICAgICAgIkFzaWEvVmxhZGl2b3N0b2siLAorICAgICAgICAiQXNpYS9ZYWt1dHNrIiwKKyAgICAgICAgIkFzaWEvWWVrYXRlcmluYnVyZyIsCisgICAgICAgICJBc2lhL1llcmV2YW4iLAorICAgICAgICAiQXRsYW50aWMvQXpvcmVzIiwKKyAgICAgICAgIkF0bGFudGljL0Jlcm11ZGEiLAorICAgICAgICAiQXRsYW50aWMvQ2FuYXJ5IiwKKyAgICAgICAgIkF0bGFudGljL0NhcGVfVmVyZGUiLAorICAgICAgICAiQXRsYW50aWMvRmFlcm9lIiwKKyAgICAgICAgIkF0bGFudGljL0phbl9NYXllbiIsCisgICAgICAgICJBdGxhbnRpYy9NYWRlaXJhIiwKKyAgICAgICAgIkF0bGFudGljL1JleWtqYXZpayIsCisgICAgICAgICJBdGxhbnRpYy9Tb3V0aF9HZW9yZ2lhIiwKKyAgICAgICAgIkF0bGFudGljL1N0X0hlbGVuYSIsCisgICAgICAgICJBdGxhbnRpYy9TdGFubGV5IiwKKyAgICAgICAgIkF1c3RyYWxpYS9BZGVsYWlkZSIsCisgICAgICAgICJBdXN0cmFsaWEvQnJpc2JhbmUiLAorICAgICAgICAiQXVzdHJhbGlhL0Jyb2tlbl9IaWxsIiwKKyAgICAgICAgIkF1c3RyYWxpYS9EYXJ3aW4iLAorICAgICAgICAiQXVzdHJhbGlhL0hvYmFydCIsCisgICAgICAgICJBdXN0cmFsaWEvTGluZGVtYW4iLAorICAgICAgICAiQXVzdHJhbGlhL0xvcmRfSG93ZSIsCisgICAgICAgICJBdXN0cmFsaWEvTWVsYm91cm5lIiwKKyAgICAgICAgIkF1c3RyYWxpYS9QZXJ0aCIsCisgICAgICAgICJBdXN0cmFsaWEvU3lkbmV5IiwKKyAgICAgICAgIkJFVCIsCisgICAgICAgICJCU1QiLAorICAgICAgICAiQ0FUIiwKKyAgICAgICAgIkNFVCIsCisgICAgICAgICJDTlQiLAorICAgICAgICAiQ1NUIiwKKyAgICAgICAgIkNUVCIsCisgICAgICAgICJFQVQiLAorICAgICAgICAiRUNUIiwKKyAgICAgICAgIkVFVCIsCisgICAgICAgICJFU1QiLAorICAgICAgICAiRXRjL0dNVCIsCisgICAgICAgICJFdGMvR01UKzEiLAorICAgICAgICAiRXRjL0dNVCsxMCIsCisgICAgICAgICJFdGMvR01UKzExIiwKKyAgICAgICAgIkV0Yy9HTVQrMTIiLAorICAgICAgICAiRXRjL0dNVCsyIiwKKyAgICAgICAgIkV0Yy9HTVQrMyIsCisgICAgICAgICJFdGMvR01UKzQiLAorICAgICAgICAiRXRjL0dNVCs1IiwKKyAgICAgICAgIkV0Yy9HTVQrNiIsCisgICAgICAgICJFdGMvR01UKzciLAorICAgICAgICAiRXRjL0dNVCs4IiwKKyAgICAgICAgIkV0Yy9HTVQrOSIsCisgICAgICAgICJFdGMvR01ULTEiLAorICAgICAgICAiRXRjL0dNVC0xMCIsCisgICAgICAgICJFdGMvR01ULTExIiwKKyAgICAgICAgIkV0Yy9HTVQtMTIiLAorICAgICAgICAiRXRjL0dNVC0xMyIsCisgICAgICAgICJFdGMvR01ULTE0IiwKKyAgICAgICAgIkV0Yy9HTVQtMiIsCisgICAgICAgICJFdGMvR01ULTMiLAorICAgICAgICAiRXRjL0dNVC00IiwKKyAgICAgICAgIkV0Yy9HTVQtNSIsCisgICAgICAgICJFdGMvR01ULTYiLAorICAgICAgICAiRXRjL0dNVC03IiwKKyAgICAgICAgIkV0Yy9HTVQtOCIsCisgICAgICAgICJFdGMvR01ULTkiLAorICAgICAgICAiRXRjL1VDVCIsCisgICAgICAgICJFdGMvVVRDIiwKKyAgICAgICAgIkV1cm9wZS9BbXN0ZXJkYW0iLAorICAgICAgICAiRXVyb3BlL0FuZG9ycmEiLAorICAgICAgICAiRXVyb3BlL0F0aGVucyIsCisgICAgICAgICJFdXJvcGUvQmVsZmFzdCIsCisgICAgICAgICJFdXJvcGUvQmVsZ3JhZGUiLAorICAgICAgICAiRXVyb3BlL0JlcmxpbiIsCisgICAgICAgICJFdXJvcGUvQnJhdGlzbGF2YSIsCisgICAgICAgICJFdXJvcGUvQnJ1c3NlbHMiLAorICAgICAgICAiRXVyb3BlL0J1Y2hhcmVzdCIsCisgICAgICAgICJFdXJvcGUvQnVkYXBlc3QiLAorICAgICAgICAiRXVyb3BlL0NoaXNpbmF1IiwKKyAgICAgICAgIkV1cm9wZS9Db3BlbmhhZ2VuIiwKKyAgICAgICAgIkV1cm9wZS9EdWJsaW4iLAorICAgICAgICAiRXVyb3BlL0dpYnJhbHRhciIsCisgICAgICAgICJFdXJvcGUvSGVsc2lua2kiLAorICAgICAgICAiRXVyb3BlL0lzdGFuYnVsIiwKKyAgICAgICAgIkV1cm9wZS9LYWxpbmluZ3JhZCIsCisgICAgICAgICJFdXJvcGUvS2lldiIsCisgICAgICAgICJFdXJvcGUvTGlzYm9uIiwKKyAgICAgICAgIkV1cm9wZS9ManVibGphbmEiLAorICAgICAgICAiRXVyb3BlL0xvbmRvbiIsCisgICAgICAgICJFdXJvcGUvTHV4ZW1ib3VyZyIsCisgICAgICAgICJFdXJvcGUvTWFkcmlkIiwKKyAgICAgICAgIkV1cm9wZS9NYWx0YSIsCisgICAgICAgICJFdXJvcGUvTWluc2siLAorICAgICAgICAiRXVyb3BlL01vbmFjbyIsCisgICAgICAgICJFdXJvcGUvTW9zY293IiwKKyAgICAgICAgIkV1cm9wZS9Pc2xvIiwKKyAgICAgICAgIkV1cm9wZS9QYXJpcyIsCisgICAgICAgICJFdXJvcGUvUHJhZ3VlIiwKKyAgICAgICAgIkV1cm9wZS9SaWdhIiwKKyAgICAgICAgIkV1cm9wZS9Sb21lIiwKKyAgICAgICAgIkV1cm9wZS9TYW1hcmEiLAorICAgICAgICAiRXVyb3BlL1Nhbl9NYXJpbm8iLAorICAgICAgICAiRXVyb3BlL1NhcmFqZXZvIiwKKyAgICAgICAgIkV1cm9wZS9TaW1mZXJvcG9sIiwKKyAgICAgICAgIkV1cm9wZS9Ta29wamUiLAorICAgICAgICAiRXVyb3BlL1NvZmlhIiwKKyAgICAgICAgIkV1cm9wZS9TdG9ja2hvbG0iLAorICAgICAgICAiRXVyb3BlL1RhbGxpbm4iLAorICAgICAgICAiRXVyb3BlL1RpcmFuZSIsCisgICAgICAgICJFdXJvcGUvVGlyYXNwb2wiLAorICAgICAgICAiRXVyb3BlL1V6aGdvcm9kIiwKKyAgICAgICAgIkV1cm9wZS9WYWR1eiIsCisgICAgICAgICJFdXJvcGUvVmF0aWNhbiIsCisgICAgICAgICJFdXJvcGUvVmllbm5hIiwKKyAgICAgICAgIkV1cm9wZS9WaWxuaXVzIiwKKyAgICAgICAgIkV1cm9wZS9XYXJzYXciLAorICAgICAgICAiRXVyb3BlL1phZ3JlYiIsCisgICAgICAgICJFdXJvcGUvWmFwb3Jvemh5ZSIsCisgICAgICAgICJFdXJvcGUvWnVyaWNoIiwKKyAgICAgICAgIkdNVCIsCisgICAgICAgICJIU1QiLAorICAgICAgICAiSUVUIiwKKyAgICAgICAgIklTVCIsCisgICAgICAgICJJbmRpYW4vQW50YW5hbmFyaXZvIiwKKyAgICAgICAgIkluZGlhbi9DaGFnb3MiLAorICAgICAgICAiSW5kaWFuL0NocmlzdG1hcyIsCisgICAgICAgICJJbmRpYW4vQ29jb3MiLAorICAgICAgICAiSW5kaWFuL0NvbW9ybyIsCisgICAgICAgICJJbmRpYW4vS2VyZ3VlbGVuIiwKKyAgICAgICAgIkluZGlhbi9NYWhlIiwKKyAgICAgICAgIkluZGlhbi9NYWxkaXZlcyIsCisgICAgICAgICJJbmRpYW4vTWF1cml0aXVzIiwKKyAgICAgICAgIkluZGlhbi9NYXlvdHRlIiwKKyAgICAgICAgIkluZGlhbi9SZXVuaW9uIiwKKyAgICAgICAgIkpTVCIsCisgICAgICAgICJNRVQiLAorICAgICAgICAiTUlUIiwKKyAgICAgICAgIk1TVCIsCisgICAgICAgICJORVQiLAorICAgICAgICAiTlNUIiwKKyAgICAgICAgIlBMVCIsCisgICAgICAgICJQTlQiLAorICAgICAgICAiUFJUIiwKKyAgICAgICAgIlBTVCIsCisgICAgICAgICJQYWNpZmljL0FwaWEiLAorICAgICAgICAiUGFjaWZpYy9BdWNrbGFuZCIsCisgICAgICAgICJQYWNpZmljL0NoYXRoYW0iLAorICAgICAgICAiUGFjaWZpYy9FYXN0ZXIiLAorICAgICAgICAiUGFjaWZpYy9FZmF0ZSIsCisgICAgICAgICJQYWNpZmljL0VuZGVyYnVyeSIsCisgICAgICAgICJQYWNpZmljL0Zha2FvZm8iLAorICAgICAgICAiUGFjaWZpYy9GaWppIiwKKyAgICAgICAgIlBhY2lmaWMvRnVuYWZ1dGkiLAorICAgICAgICAiUGFjaWZpYy9HYWxhcGFnb3MiLAorICAgICAgICAiUGFjaWZpYy9HYW1iaWVyIiwKKyAgICAgICAgIlBhY2lmaWMvR3VhZGFsY2FuYWwiLAorICAgICAgICAiUGFjaWZpYy9HdWFtIiwKKyAgICAgICAgIlBhY2lmaWMvSG9ub2x1bHUiLAorICAgICAgICAiUGFjaWZpYy9Kb2huc3RvbiIsCisgICAgICAgICJQYWNpZmljL0tpcml0aW1hdGkiLAorICAgICAgICAiUGFjaWZpYy9Lb3NyYWUiLAorICAgICAgICAiUGFjaWZpYy9Ld2FqYWxlaW4iLAorICAgICAgICAiUGFjaWZpYy9NYWp1cm8iLAorICAgICAgICAiUGFjaWZpYy9NYXJxdWVzYXMiLAorICAgICAgICAiUGFjaWZpYy9NaWR3YXkiLAorICAgICAgICAiUGFjaWZpYy9OYXVydSIsCisgICAgICAgICJQYWNpZmljL05pdWUiLAorICAgICAgICAiUGFjaWZpYy9Ob3Jmb2xrIiwKKyAgICAgICAgIlBhY2lmaWMvTm91bWVhIiwKKyAgICAgICAgIlBhY2lmaWMvUGFnb19QYWdvIiwKKyAgICAgICAgIlBhY2lmaWMvUGFsYXUiLAorICAgICAgICAiUGFjaWZpYy9QaXRjYWlybiIsCisgICAgICAgICJQYWNpZmljL1BvbmFwZSIsCisgICAgICAgICJQYWNpZmljL1BvcnRfTW9yZXNieSIsCisgICAgICAgICJQYWNpZmljL1Jhcm90b25nYSIsCisgICAgICAgICJQYWNpZmljL1NhaXBhbiIsCisgICAgICAgICJQYWNpZmljL1RhaGl0aSIsCisgICAgICAgICJQYWNpZmljL1RhcmF3YSIsCisgICAgICAgICJQYWNpZmljL1RvbmdhdGFwdSIsCisgICAgICAgICJQYWNpZmljL1RydWsiLAorICAgICAgICAiUGFjaWZpYy9XYWtlIiwKKyAgICAgICAgIlBhY2lmaWMvV2FsbGlzIiwKKyAgICAgICAgIlBhY2lmaWMvWWFwIiwKKyAgICAgICAgIlNTVCIsCisgICAgICAgICJVVEMiLAorICAgICAgICAiVlNUIiwKKyAgICAgICAgIldFVCIsCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFJMRSBlbmNvZGVkIGZvcm0gb2YgREFUQS4KKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eS5STEVTdHJpbmdUb0ludEFycmF5CisgICAgICogPj4gR0VORVJBVEVEIERBVEE6IERPIE5PVCBFRElUIDw8CisgICAgICovCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBEQVRBX1JMRSA9CisgICAgICAgICJcMDAwXHUwNkEwXDAwMFwwMDBcdUZGRkZcdTU3NDBcMDAwXDAwMVwwMDBcdTAxMjBcMDAwXDAwMFx1RkZGRlx1NjU1MFwwMDAiKworICAgICAgICAiXDAwNlwwMDBcdTAxMUZcMDAwXHUwMTdEXDAwMFx1MDE4NVwwMDBcdTAxOTlcMDAwXHUwMTlCXDAwMFx1MDE5RVwwMDBcMDAwIisKKyAgICAgICAgIlx1RkZGRlx1NzM2MFwwMDBcMDA2XDAwMFx1MDExRVwwMDBcdTAxNkRcMDAwXHUwMThCXDAwMFx1MDE5MlwwMDBcdTAxOTMiKworICAgICAgICAiXDAwMFx1MDFBNVwwMDBcMDAxXHVGRkZGXHU3MzYwXDAwMFwwMDNcMDAwXDAwMVx1RkZGRlx1RkZGRlwwMDB4XDAwMFwwMDAiKworICAgICAgICAiXDAwMFwwMTFcdUZGRkZcdUZGRkZcMDAwXDAwMVwwMDB4XDAwMFwwMDBcMDAwPFwwMDBcMDAxXDAwMDlcMDAwXDAwMVx1RkZGRiIrCisgICAgICAgICJcdTczNjBcMDAwXDAxMVx1RkZGRlx1RkZGRlwwMDBcMDAxXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAyXDAwMFwwMDFcdUZGRkYiKworICAgICAgICAiXHVGRkZGXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDM2XDAwMFwwMDFcMDAwXHUwMUEzXDAwMFwwMDBcdUZGRkZcdTdBNjhcMDAwIisKKyAgICAgICAgIlwwMDFcMDAwXHUwMTk4XDAwMFwwMDBcdUZGRkZcdTgxNzBcMDAwXDAwMlwwMDBcdTAxMjhcMDAwXHUwMThGXDAwMFwwMDEiKworICAgICAgICAiXHVGRkZGXHU4MTcwXDAwMFwwMDNcMDAwXDAwMVx1RkZGRlx1RkZGRlwwMDB4XDAwMFwwMDBcMDAwXDAxMVx1RkZGRlx1RkZGRiIrCisgICAgICAgICJcMDAwXDAwMVwwMDB4XDAwMFwwMDBcMDAwPFwwMDBcMDA1XDAwMFwwMDRcMDAwOlwwMDBwXDAwMFx1MDA4N1wwMDBcdTAwQTkiKworICAgICAgICAiXDAwMFwwMDBcdUZGRkZcdThGODBcMDAwXDAwMlwwMDBcdTAxMjdcMDAwXHUwMUEwXDAwMFwwMDFcdUZGRkZcdThGODBcMDAwIisKKyAgICAgICAgIlwwMDNcMDAwXDAwMVx1RkZGRlx1RkZGRlwwMDB4XDAwMFwwMDBcMDAwXDAxMVx1RkZGRlx1RkZGRlwwMDBcMDAxXDAwMCIrCisgICAgICAgICJ4XDAwMFwwMDBcMDAwPFwwMDBcMDA2XDAwMFNcMDAwdFwwMDBcdTAwQTRcMDAwXHUwMEE2XDAwMFx1MDBBN1wwMDBcdTAxODQiKworICAgICAgICAiXDAwMFwwMDBcdUZGRkZcdTlEOTBcMDAwXDAwNVwwMDBUXDAwMGdcMDAwXHUwMDhDXDAwMFx1MDEyNlwwMDBcdTAxODJcMDAwIisKKyAgICAgICAgIlwwMDFcdUZGRkZcdTlEOTBcMDAwXDAwM1wwMDBcMDAxXHVGRkZGXHVGRkZGXDAwMHhcMDAwXDAwMFwwMDBcMDExXHVGRkZGIisKKyAgICAgICAgIlx1RkZGRlwwMDBcMDAxXDAwMHhcMDAwXDAwMFwwMDA8XDAwMFwwMTBcMDAwRVwwMDBOXDAwMFVcMDAwWFwwMDBsXDAwMCIrCisgICAgICAgICJ6XDAwMFx1MDBBQVwwMDBcdTAxN0VcMDAwXDAwMFx1RkZGRlx1QUJBMFwwMDBcMDA1XDAwMHdcMDAwXHUwMDk1XDAwMFx1MDBBMCIrCisgICAgICAgICJcMDAwXHUwMTI1XDAwMFx1MDE4RVwwMDBcMDAxXHVGRkZGXHVBQkEwXDAwMFwwMDNcMDAwXDAwMVx1RkZGRlx1RkZGRlwwMDAiKworICAgICAgICAieFwwMDBcMDAwXDAwMFwwMTFcdUZGRkZcdUZGRkZcMDAwXDAwMVwwMDB4XDAwMFwwMDBcMDAwPFwwMDBcMDExXDAwMEdcMDAwIisKKyAgICAgICAgIkhcMDAwTVwwMDB8XDAwMH1cMDAwflwwMDBcdTAwODBcMDAwXHUwMDkyXDAwMFx1MDExNlwwMDBcMDAxXHVGRkZGXHVBQkEwIisKKyAgICAgICAgIlwwMDBcMDAzXDAwMFwwMDFcdUZGRkZcdUZGRkZcMDAweFwwMDBcMDAwXDAwMFwwMTFcdUZGRkZcdUZGRkZcMDAwXDAwMSIrCisgICAgICAgICJcMDAweFwwMDBcMDAxXDAwMDxcMDAwXDAwMVwwMDBcdTAwQThcMDAwXDAwMVx1RkZGRlx1QUJBMFwwMDBcMDEzXDAwMFwwMjIiKworICAgICAgICAiXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDFcMDAwXDAxNFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDA8IisKKyAgICAgICAgIlwwMDBcMDAxXDAwMEJcMDAwXDAwMVx1RkZGRlx1QUJBMFwwMDBcMDAwXDAwMFwwMTdcdUZGRkZcdUZGRjlcMDAwXDAwMCIrCisgICAgICAgICJcMDAwXDAwMFwwMDBcMDAyXDAwMFwwMTdcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwPFwwMDBcMDAxXDAwMFBcMDAwIisKKyAgICAgICAgIlwwMDFcdUZGRkZcdUFCQTBcMDAwXDAwMlwwMDBcMDI3XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMTBcMDAwXDAwNyIrCisgICAgICAgICJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwPFwwMDBcMDAxXDAwMGJcMDAwXDAwMVx1RkZGRlx1QUJBMFwwMDBcMDA0IisKKyAgICAgICAgIlwwMDBcMDAxXHVGRkZGXHVGRkZGXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDEwXHVGRkZGXHVGRkZGXDAwMFwwMDFcMDAwXDAwMCIrCisgICAgICAgICJcMDAwXDAwMFwwMDA8XDAwMFwwMDJcMDAwWlwwMDBcdTAwQTFcMDAwXDAwMVx1RkZGRlx1QUJBMFwwMDBcMDExXDAwMFwwMTEiKworICAgICAgICAiXHVGRkZGXHVGRkZGXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAyXDAwMFwwMTFcdUZGRkZcdUZGRkZcMDAwXDAwMFwwMDBcMDAwIisKKyAgICAgICAgIlwwMDA8XDAwMFwwMDFcMDAwXHUwMTg4XDAwMFwwMDBcdUZGRkZcdUI5QjBcMDAwXDAxN1wwMDBMXDAwMFlcMDAwY1wwMDAiKworICAgICAgICAiaFwwMDBpXDAwMGpcMDAwa1wwMDBtXDAwMG5cMDAwXHUwMDg5XDAwMFx1MDA4QVwwMDBcdTAwOEZcMDAwXHUwMDkzXDAwMCIrCisgICAgICAgICJcdTAxMjRcMDAwXHUwMTZFXDAwMFwwMDFcdUZGRkZcdUI5QjBcMDAwXDAwM1wwMDBcMDAxXHVGRkZGXHVGRkZGXDAwMFwwMDAiKworICAgICAgICAiXDAwMFwwMDBcMDAwXDAxMVx1RkZGRlx1RkZGRlwwMDBcMDAxXDAwMFwwMDBcMDAwXDAwMFwwMDA8XDAwMFwwMDFcMDAwIisKKyAgICAgICAgIl9cMDAwXDAwMVx1RkZGRlx1QjlCMFwwMDBcMDAzXDAwMFwwMDFcdUZGRkZcdUZGRkZcMDAwXDAwMFwwMDBcMDAxXDAwMCIrCisgICAgICAgICJcMDExXHVGRkZGXHVGRkZGXDAwMFwwMDFcMDAwXDAwMFwwMDBcMDAxXDAwMDxcMDAwXDAwMVwwMDBmXDAwMFwwMDFcdUZGRkYiKworICAgICAgICAiXHVCOUIwXDAwMFwwMDNcMDAwXDAwMVx1RkZGRlx1RkZGRlwwMDA8XDAwMFwwMDFcMDAwXDAxMVx1RkZGRlx1RkZGRlwwMDAiKworICAgICAgICAiXDAwMVwwMDA8XDAwMFwwMDFcMDAwPFwwMDBcMDAxXDAwMFx1MDA4RFwwMDBcMDAxXHVGRkZGXHVCOUIwXDAwMFwwMDNcMDAwIisKKyAgICAgICAgIlwwMDFcdUZGRkZcdUZGRkZcMDAweFwwMDBcMDAwXDAwMFwwMTFcdUZGRkZcdUZGRkZcMDAwXDAwMVwwMDB4XDAwMFwwMDAiKworICAgICAgICAiXDAwMDxcMDAwXDAxMVwwMDBWXDAwMHFcMDAwdVwwMDBcdTAwODJcMDAwXHUwMDg0XDAwMFx1MDA4NVwwMDBcdTAwODZcMDAwIisKKyAgICAgICAgIlx1MDBBM1wwMDBcdTAxMUJcMDAwXDAwMVx1RkZGRlx1QjlCMFwwMDBcMDAwXDAwMFwwMDFcMDAwXDAwMFwwMDBcMDAwXDAwMCIrCisgICAgICAgICJcMDAwXDAwMFwwMDNcMDAwXDAwMVwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDA8XDAwMFwwMDFcMDAwc1wwMDBcMDAxIisKKyAgICAgICAgIlx1RkZGRlx1QjlCMFwwMDBcMDA0XDAwMFwwMDJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAxM1wwMDBcMDM3XDAwMCIrCisgICAgICAgICJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDA8XDAwMFwwMDFcMDAwRFwwMDBcMDAwXHVGRkZGXHVDN0MwXDAwMFwwMzFcMDAwIisKKyAgICAgICAgIjtcMDAwPFwwMDA+XDAwMENcMDAwSVwwMDBSXDAwMFdcMDAwYFwwMDBhXDAwMGRcMDAwclwwMDB4XDAwMHlcMDAwXHUwMDgzIisKKyAgICAgICAgIlwwMDBcdTAwOEVcMDAwXHUwMDkwXDAwMFx1MDA5MVwwMDBcdTAwOThcMDAwXHUwMDlDXDAwMFx1MDA5RFwwMDBcdTAwOUUiKworICAgICAgICAiXDAwMFx1MDA5RlwwMDBcdTAwQTVcMDAwXHUwMTIzXDAwMFx1MDE4M1wwMDBcMDAxXHVGRkZGXHVDN0MwXDAwMFwwMDNcMDAwIisKKyAgICAgICAgIlwwMDFcdUZGRkZcdUZGRkZcMDAwXDAwMVwwMDBcMDAwXDAwMFwwMTFcdUZGRkZcdUZGRkZcMDAwXDAwMVwwMDBcMDAxXDAwMCIrCisgICAgICAgICJcMDAwXDAwMDxcMDAwXDAwMVwwMDBeXDAwMFwwMDFcdUZGRkZcdUM3QzBcMDAwXDAwM1wwMDBcMDAxXHVGRkZGXHVGRkZGIisKKyAgICAgICAgIlwwMDB4XDAwMFwwMDBcMDAwXDAxMVx1RkZGRlx1RkZGRlwwMDBcMDAxXDAwMHhcMDAwXDAwMFwwMDA8XDAwMFwwMDRcMDAwIisKKyAgICAgICAgIlwxMzRcMDAwZVwwMDBcdTAwQTJcMDAwXHUwMEZEXDAwMFwwMDFcdUZGRkZcdUM3QzBcMDAwXDAwM1wwMDBcMDE3XHVGRkZGIisKKyAgICAgICAgIlx1RkZGRlwwMDB4XDAwMFwwMDBcMDAwXDAxMFwwMDBcMDMxXDAwMFwwMDBcMDAweFwwMDBcMDAwXDAwMDxcMDAwXDAwMSIrCisgICAgICAgICJcMDAwQFwwMDBcMDAxXHVGRkZGXHVDN0MwXDAwMFwwMTFcMDAwXDAwMVx1RkZGRlx1RkZGRlwwMDBcMDAwXDAwMFwwMDAiKworICAgICAgICAiXDAwMFwwMDFcdUZGRkZcdUZGRkZcMDAwXDAwMVwwMDBcMDAwXDAwMFwwMDBcMDAwPFwwMDBcMDAxXDAwMD9cMDAwXDAwMSIrCisgICAgICAgICJcdUZGRkZcdUM3QzBcMDAwXDAxMVwwMDBcMDEwXHVGRkZGXHVGRkZGXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAxXDAwMFwwMTciKworICAgICAgICAiXHVGRkZGXHVGRkZGXDAwMFwwMDBcMDAwXDAwMFwwMDA8XDAwMFwwMDFcMDAwUVwwMDBcMDAxXHVGRkZGXHVDN0MwXDAwMCIrCisgICAgICAgICJcMDExXDAwMFwwMTFcdUZGRkZcdUZGRkZcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDJcMDAwXDAxMVx1RkZGRlx1RkZGRlwwMDAiKworICAgICAgICAiXDAwMFwwMDBcMDAwXDAwMDxcMDAwXDAwMlwwMDBcdTAwOTdcMDAwXHUwMEIwXDAwMFwwMDFcdUZGRkZcdUM3QzBcMDAwIisKKyAgICAgICAgIlwwMTBcMDAwXDAxMFx1RkZGRlx1RkZGRlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwM1wwMDBcMDIwXHVGRkZGXHVGRkZGXDAwMCIrCisgICAgICAgICJcMDAwXDAwMFwwMDBcMDAwPFwwMDBcMDAxXDAwMFx1MDEwNlwwMDBcMDAxXHVGRkZGXHVDRUM4XDAwMFwwMDNcMDAwXDAwMSIrCisgICAgICAgICJcdUZGRkZcdUZGRkZcMDAwXDAwMVwwMDBcMDAwXDAwMFwwMTFcdUZGRkZcdUZGRkZcMDAwXDAwMVwwMDBcMDAxXDAwMFwwMDAiKworICAgICAgICAiXDAwMDxcMDAwXDAwMlwwMDBcdTAwOUJcMDAwXHUwMTE1XDAwMFwwMDBcdUZGRkZcdUQ1RDBcMDAwXDAxNlwwMDBcMDAyIisKKyAgICAgICAgIlwwMDBBXDAwMEZcMDAwSlwwMDBLXDAwME9cMDAwW1wwMDBvXDAwMHZcMDAwe1wwMDBcdTAwOEJcMDAwXHUwMDk0XDAwMCIrCisgICAgICAgICJcdTAwOTZcMDAwXHUwMTIyXDAwMFwwMDFcdUZGRkZcdUQ1RDBcMDAwXDAwM1wwMDBcMDAxXHVGRkZGXHVGRkZGXDAwMHgiKworICAgICAgICAiXDAwMFwwMDBcMDAwXDAxMVx1RkZGRlx1RkZGRlwwMDBcMDAxXDAwMHhcMDAwXDAwMFwwMDA8XDAwMFwwMDFcMDAwXHUwMDdGIisKKyAgICAgICAgIlwwMDBcMDAxXHVGRkZGXHVENUQwXDAwMFwwMDJcdUZGRkZcdUZGRkZcMDAwXDAwMVwwMDA8XDAwMFwwMDJcMDAwXDAxMSIrCisgICAgICAgICJcdUZGRkZcdUZGRkZcMDAwXDAwMVwwMDA8XDAwMFwwMDJcMDAwPFwwMDBcMDAxXDAwMF1cMDAwXDAwMVx1RkZGRlx1RDVEMCIrCisgICAgICAgICJcMDAwXDAxMVwwMDBcMDIyXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDFcMDAwXDAzNFwwMDBcMDAwXDAwMFwwMDAiKworICAgICAgICAiXDAwMFwwMDBcMDAwPFwwMDBcMDAxXDAwMFx1MDA4MVwwMDBcMDAxXHVGRkZGXHVENUQwXDAwMFwwMTFcMDAwXDAxMFx1RkZGRiIrCisgICAgICAgICJcdUZGRkZcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDFcMDAwXDAxN1x1RkZGRlx1RkZGRlwwMDBcMDAwXDAwMFwwMDBcMDAwIisKKyAgICAgICAgIjxcMDAwXDAwM1wwMDA9XDAwMFx1MDA5OVwwMDBcdTAxMTFcMDAwXDAwMFx1RkZGRlx1RTNFMFwwMDBcMDAzXDAwMFx1MDA4OCIrCisgICAgICAgICJcMDAwXHUwMTA0XDAwMFx1MDEyMVwwMDBcMDAwXHVGRkZGXHVGMUYwXDAwMFwwMDNcMDAwXHUwMEZGXDAwMFx1MDEwMVwwMDAiKworICAgICAgICAiXHUwMTFEXDAwMFwwMDFcdUZGRkZcdUYxRjBcMDAwXDAwMlx1RkZGRlx1RkZGRlwwMDBcMDAxXDAwMDxcMDAwXDAwMlwwMDAiKworICAgICAgICAiXDAxMVx1RkZGRlx1RkZGRlwwMDBcMDAxXDAwMDxcMDAwXDAwMlwwMDA8XDAwMFwwMDJcMDAwXHUwMDlBXDAwMFx1MDBGQyIrCisgICAgICAgICJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMjVcMDAwXDAwNVwwMDBcMDEyXDAwMFwwMTRcMDAwXDAxNVwwMDBcMDIyXDAwMFwwMjQiKworICAgICAgICAiXDAwMFwwMjVcMDAwXDAzMVwwMDAkXDAwMC1cMDAwMVwwMDAyXDAwMDRcMDAwNVwwMDBcdTAxMDNcMDAwXHUwMTA1XDAwMCIrCisgICAgICAgICJcdTAxMUNcMDAwXHUwMTM3XDAwMFx1MDEzOFwwMDBcdTAxNkNcMDAwXHUwMUFEXDAwMFwwMDFcMDAwXDAwMFwwMDBcMDA1IisKKyAgICAgICAgIlwwMDBcMDAxXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMTBcMDAwXDAwMVwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMCIrCisgICAgICAgICJcMDAwPFwwMDBcMDAxXDAwMFwwMzJcMDAwXDAwMVwwMDBcMDAwXDAwMFwwMDJcdUZGRkZcdUZGRkZcMDAwXDAwMVwwMDAiKworICAgICAgICAiPFwwMDBcMDAyXDAwMFwwMTFcdUZGRkZcdUZGRkZcMDAwXDAwMVwwMDA8XDAwMFwwMDJcMDAwPFwwMDBcMDEwXDAwMFx1MDBGRSIrCisgICAgICAgICJcMDAwXHUwMTAwXDAwMFx1MDEwMlwwMDBcdTAxM0NcMDAwXHUwMTQ1XDAwMFx1MDE0QlwwMDBcdTAxNERcMDAwXHUwMUFGIisKKyAgICAgICAgIlwwMDBcMDAxXDAwMFwwMDBcMDAwXDAxMFwwMDBcMDAxXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMTNcMDAwXDAzNyIrCisgICAgICAgICJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAyNFwwMDBcMDAxXDAwMFwwMDZcMDAwXDAwMFwwMDBcdTBFMTBcMDAwIisKKyAgICAgICAgIlwwMTVcMDAwXDAxMFwwMDBcMDEzXDAwMFwwMTdcMDAwXDAzMFwwMDAhXDAwMFwwNDJcMDAwI1wwMDAlXDAwMChcMDAwLyIrCisgICAgICAgICJcMDAwMFwwMDAzXDAwMFx1MDEyOVwwMDBcMDAxXDAwMFx1MEUxMFwwMDBcMDAyXHVGRkZGXHVGRkZGXDAwMFwwMDFcMDAwIisKKyAgICAgICAgIjxcMDAwXDAwMlwwMDBcMDExXHVGRkZGXHVGRkZGXDAwMFwwMDFcMDAwPFwwMDBcMDAyXDAwMDxcMDAwIFwwMDBcMDIzXDAwMCIrCisgICAgICAgICJcdTAwQjJcMDAwXHUwMTE5XDAwMFx1MDEzOVwwMDBcdTAxM0FcMDAwXHUwMTNEXDAwMFx1MDEzRVwwMDBcdTAxM0ZcMDAwIisKKyAgICAgICAgIlx1MDE0MFwwMDBcdTAxNDJcMDAwXHUwMTQ0XDAwMFx1MDE0NlwwMDBcdTAxNENcMDAwXHUwMTRFXDAwMFx1MDE0RlwwMDAiKworICAgICAgICAiXHUwMTUwXDAwMFx1MDE1MlwwMDBcdTAxNTRcMDAwXHUwMTU1XDAwMFx1MDE1NlwwMDBcdTAxNThcMDAwXHUwMTVBXDAwMCIrCisgICAgICAgICJcdTAxNUJcMDAwXHUwMTVEXDAwMFx1MDE1RlwwMDBcdTAxNjFcMDAwXHUwMTY0XDAwMFx1MDE2NVwwMDBcdTAxNjZcMDAwIisKKyAgICAgICAgIlx1MDE2OFwwMDBcdTAxNjlcMDAwXHUwMTZCXDAwMFwwMDFcMDAwXHUwRTEwXDAwMFwwMDJcdUZGRkZcdUZGRkZcMDAwXDAwMSIrCisgICAgICAgICJcMDAweFwwMDBcMDAxXDAwMFwwMTFcdUZGRkZcdUZGRkZcMDAwXDAwMVwwMDB4XDAwMFwwMDFcMDAwPFwwMDBcMDAyXDAwMCIrCisgICAgICAgICJcdTAxMTRcMDAwXHUwMTdDXDAwMFwwMDFcMDAwXHUwRTEwXDAwMFwwMDRcMDAwXDAwMVwwMDBcMDAwXDAwMFwwMDBcMDAwIisKKyAgICAgICAgIlwwMDFcMDAwXDAxMFx1RkZGRlx1RkZGRlwwMDBcMDAxXDAwMFwwMDBcMDAwXDAwMVwwMDA8XDAwMFwwMDFcMDAwN1wwMDAiKworICAgICAgICAiXDAwMVwwMDBcdTBFMTBcMDAwXDAxMFwwMDBcMDAxXHVGRkZGXHVGRkZGXDAwMHhcMDAwXDAwMFwwMDBcMDAzXDAwMFwwMDEiKworICAgICAgICAiXHVGRkZGXHVGRkZGXDAwMHhcMDAwXDAwMFwwMDA8XDAwMFwwMDFcMDAwOFwwMDBcMDAwXDAwMFx1MUMyMFwwMDBcMDIwIisKKyAgICAgICAgIlwwMDBcMDE2XDAwMFwwMjBcMDAwXDAzM1wwMDBcMDM0XDAwMCBcMDAwJlwwMDAnXDAwMClcMDAwKlwwMDArXDAwMDZcMDAwIisKKyAgICAgICAgIlx1MDExM1wwMDBcdTAxMkZcMDAwXHUwMTU3XDAwMFx1MDE2MFwwMDBcdTAxNjdcMDAwXDAwMVwwMDBcdTFDMjBcMDAwXDAwMyIrCisgICAgICAgICJcMDAwXDAwMVwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDExXDAwMFwwMDFcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDAiKworICAgICAgICAiXDAwMDxcMDAwXDAwMVwwMDBcdTAwQzRcMDAwXDAwMVwwMDBcdTFDMjBcMDAwXDAwM1wwMDBcMDAxXDAwMFwwMDBcMDAwIisKKyAgICAgICAgIjxcMDAwXDAwMFwwMDBcMDEwXDAwMFwwMzBcMDAwXDAwMFwwMDA8XDAwMFwwMDBcMDAwPFwwMDBcMDAxXDAwMFx1MDBEMCIrCisgICAgICAgICJcMDAwXDAwMVwwMDBcdTFDMjBcMDAwXDAwM1wwMDBcMDE3XHVGRkZGXHVGRkZBXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDExIisKKyAgICAgICAgIlwwMDBcMDE3XHVGRkZGXHVGRkZBXDAwMFwwMDBcMDAwXDAwMFwwMDA8XDAwMFwwMDFcMDAwXHUwMEM5XDAwMFwwMDFcMDAwIisKKyAgICAgICAgIlx1MUMyMFwwMDBcMDAzXHVGRkZGXHVGRkZGXDAwMFwwMDZcMDAwXDAwMFwwMDBcMDAxXDAwMFwwMTBcdUZGRkZcdUZGRkYiKworICAgICAgICAiXDAwMFwwMDVcMDAwXHUwNTY0XDAwMFwwMDFcMDAwPFwwMDBcMDAyXDAwMFwwMDNcMDAwXDAyMVwwMDBcMDAxXDAwMFx1MUMyMCIrCisgICAgICAgICJcMDAwXDAwMlx1RkZGRlx1RkZGRlwwMDBcMDAxXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDExXHVGRkZGXHVGRkZGXDAwMFwwMDEiKworICAgICAgICAiXDAwMFwwMDBcMDAwXDAwMFwwMDA8XDAwMFwwMDFcMDAwXHUwMEJFXDAwMFwwMDFcMDAwXHUxQzIwXDAwMFwwMDJcdUZGRkYiKworICAgICAgICAiXHVGRkZGXDAwMFwwMDFcMDAwPFwwMDBcMDAyXDAwMFwwMTFcdUZGRkZcdUZGRkZcMDAwXDAwMVwwMDA8XDAwMFwwMDJcMDAwIisKKyAgICAgICAgIjxcMDAwXDAxNFwwMDBcdTAwREVcMDAwXHUwMTFBXDAwMFx1MDEzQlwwMDBcdTAxNDFcMDAwXHUwMTQzXDAwMFx1MDE0NyIrCisgICAgICAgICJcMDAwXHUwMTQ4XDAwMFx1MDE0QVwwMDBcdTAxNUNcMDAwXHUwMTVFXDAwMFx1MDE2M1wwMDBcdTAxNkFcMDAwXDAwMVwwMDAiKworICAgICAgICAiXHUxQzIwXDAwMFwwMDJcdUZGRkZcdUZGRkZcMDAwXDAwMVwwMDB4XDAwMFwwMDFcMDAwXDAxMVx1RkZGRlx1RkZGRlwwMDAiKworICAgICAgICAiXDAwMVwwMDB4XDAwMFwwMDFcMDAwPFwwMDBcMDAyXDAwMFx1MDE0OVwwMDBcdTAxNTFcMDAwXDAwMVwwMDBcdTFDMjBcMDAwIisKKyAgICAgICAgIlwwMDJcdUZGRkZcdUZGRkZcMDAwXDAwNVwwMDBcMDAwXDAwMFwwMDFcMDAwXDAxMFx1RkZGRlx1RkZGRlwwMDBcMDA1XDAwMCIrCisgICAgICAgICJcMDAwXDAwMFwwMDFcMDAwPFwwMDBcMDAxXDAwMFx1MDBCNVwwMDBcMDAxXDAwMFx1MUMyMFwwMDBcMDEwXDAwMFwwMTciKworICAgICAgICAiXHVGRkZGXHVGRkZGXDAwMHhcMDAwXDAwMFwwMDBcMDAyXDAwMFwwMTdcdUZGRkZcdUZGRkZcMDAweFwwMDBcMDAwXDAwMCIrCisgICAgICAgICI8XDAwMFwwMDFcMDAwXDAzNVwwMDBcMDAwXDAwMFx1MkEzMFwwMDBcMDIzXDAwMFwwMDdcMDAwXDAxMVwwMDBcMDI2XDAwMCIrCisgICAgICAgICJcMDI3XDAwMFwwMzZcMDAwXDAzN1wwMDAsXDAwMC5cMDAwXHUwMEIxXDAwMFx1MDBCM1wwMDBcdTAwQkJcMDAwXHUwMEQ5IisKKyAgICAgICAgIlwwMDBcdTAwRTNcMDAwXHUwMEU1XDAwMFx1MDExOFwwMDBcdTAxMzBcMDAwXHUwMTcwXDAwMFx1MDE3NFwwMDBcdTAxNzkiKworICAgICAgICAiXDAwMFwwMDFcMDAwXHUyQTMwXDAwMFwwMDNcMDAwXDAwMVwwMDBcMDAwXDAwMFx1MDBCNFwwMDBcMDAxXDAwMFwwMTFcMDAwIisKKyAgICAgICAgIlwwMDFcMDAwXDAwMFwwMDBcdTAwQjRcMDAwXDAwMVwwMDA8XDAwMFwwMDFcMDAwXHUwMEJBXDAwMFwwMDFcMDAwXHUyQTMwIisKKyAgICAgICAgIlwwMDBcMDAyXHVGRkZGXHVGRkZGXDAwMFwwMDFcMDAweFwwMDBcMDAxXDAwMFwwMTFcdUZGRkZcdUZGRkZcMDAwXDAwMSIrCisgICAgICAgICJcMDAweFwwMDBcMDAxXDAwMDxcMDAwXDAwMlwwMDBcdTAxNTNcMDAwXHUwMTYyXDAwMFwwMDBcMDAwXHUyQkQ4XDAwMFwwMDMiKworICAgICAgICAiXDAwMFx1MDBFNlwwMDBcdTAwRTdcMDAwXHUwMEU4XDAwMFwwMDFcMDAwXHUzMTM4XDAwMFwwMDJcMDAwXDAyNFwwMDBcMDAwIisKKyAgICAgICAgIlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAxMFwwMDBcMDI3XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMDxcMDAwXDAwMSIrCisgICAgICAgICJcMDAwXHUwMEYxXDAwMFwwMDBcMDAwXHUzODQwXDAwMFwwMDZcMDAwXHUwMEM3XDAwMFx1MDBERFwwMDBcdTAxMzFcMDAwIisKKyAgICAgICAgIlx1MDE3NlwwMDBcdTAxNzhcMDAwXHUwMTdBXDAwMFwwMDFcMDAwXHUzODQwXDAwMFwwMDJcdUZGRkZcdUZGRkZcMDAwXDAwMSIrCisgICAgICAgICJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMTFcdUZGRkZcdUZGRkZcMDAwXDAwMVwwMDBcMDAwXDAwMFwwMDBcMDAwPFwwMDAiKworICAgICAgICAiXDAwMlwwMDBcdTAwQjdcMDAwXHUwMEYwXDAwMFwwMDFcMDAwXHUzODQwXDAwMFwwMDJcdUZGRkZcdUZGRkZcMDAwXDAwMSIrCisgICAgICAgICJcMDAwPFwwMDBcMDAwXDAwMFwwMTFcdUZGRkZcdUZGRkZcMDAwXDAwMVwwMDA8XDAwMFwwMDBcMDAwPFwwMDBcMDAxXDAwMCIrCisgICAgICAgICJcdTAwQkNcMDAwXDAwMVwwMDBcdTM4NDBcMDAwXDAwMlx1RkZGRlx1RkZGRlwwMDBcMDAxXDAwMHhcMDAwXDAwMVwwMDAiKworICAgICAgICAiXDAxMVx1RkZGRlx1RkZGRlwwMDBcMDAxXDAwMHhcMDAwXDAwMVwwMDA8XDAwMFwwMDNcMDAwXHUwMEZCXDAwMFx1MDE1OSIrCisgICAgICAgICJcMDAwXHUwMTdGXDAwMFwwMDBcMDAwXHUzRjQ4XDAwMFwwMDFcMDAwXHUwMEQxXDAwMFwwMDBcMDAwXHU0NjUwXDAwMFwwMTIiKworICAgICAgICAiXDAwMFx1MDBCOVwwMDBcdTAwQzhcMDAwXHUwMEQzXDAwMFx1MDBFQVwwMDBcdTAwRUZcMDAwXHUwMTMyXDAwMFx1MDE3MSIrCisgICAgICAgICJcMDAwXHUwMTc1XDAwMFx1MDE3N1wwMDBcdTAxODFcMDAwXDAwMVwwMDBcdTQ2NTBcMDAwXDAwMlx1RkZGRlx1RkZGRlwwMDAiKworICAgICAgICAiXDAwMVwwMDBcMDAwXDAwMFwwMDBcMDAwXDAxMVx1RkZGRlx1RkZGRlwwMDBcMDAxXDAwMFwwMDBcMDAwXDAwMFwwMDA8IisKKyAgICAgICAgIlwwMDBcMDAxXDAwMFx1MDBCOFwwMDBcMDAxXDAwMFx1NDY1MFwwMDBcMDAyXHVGRkZGXHVGRkZGXDAwMFwwMDFcMDAweCIrCisgICAgICAgICJcMDAwXDAwMVwwMDBcMDExXHVGRkZGXHVGRkZGXDAwMFwwMDFcMDAweFwwMDBcMDAxXDAwMDxcMDAwXDAwMVwwMDBcdTAwRkEiKworICAgICAgICAiXDAwMFwwMDFcMDAwXHU0NjUwXDAwMFwwMDJcdUZGRkZcdUZGRkZcMDAwXDAwMVwwMDBcdTAwOTZcMDAwXDAwMFwwMDBcMDExIisKKyAgICAgICAgIlx1RkZGRlx1RkZGRlwwMDBcMDAxXDAwMFx1MDA5NlwwMDBcMDAwXDAwMDxcMDAwXDAwMVwwMDBcdTAwQkZcMDAwXDAwMCIrCisgICAgICAgICJcMDAwXHU0RDU4XDAwMFwwMDJcMDAwXHUwMEMxXDAwMFx1MDE2RlwwMDBcMDAwXDAwMFx1NTBEQ1wwMDBcMDAxXDAwMFx1MDBENSIrCisgICAgICAgICJcMDAwXDAwMFwwMDBcdTU0NjBcMDAwXDAwNlwwMDBcdTAwQUVcMDAwXHUwMEMzXDAwMFx1MDBDNVwwMDBcdTAwRjJcMDAwIisKKyAgICAgICAgIlx1MDExMlwwMDBcdTAxMzNcMDAwXDAwMVwwMDBcdTU0NjBcMDAwXDAwMlx1RkZGRlx1RkZGRlwwMDBcMDAxXDAwMFwwMDAiKworICAgICAgICAiXDAwMFwwMDBcMDAwXDAxMVx1RkZGRlx1RkZGRlwwMDBcMDAxXDAwMFwwMDBcMDAwXDAwMFwwMDA8XDAwMFwwMDFcMDAwIisKKyAgICAgICAgIlx1MDBCNFwwMDBcMDAxXDAwMFx1NTQ2MFwwMDBcMDAyXHVGRkZGXHVGRkZGXDAwMFwwMDFcMDAweFwwMDBcMDAxXDAwMCIrCisgICAgICAgICJcMDExXHVGRkZGXHVGRkZGXDAwMFwwMDFcMDAweFwwMDBcMDAxXDAwMDxcMDAwXDAwMlwwMDBcdTAwREZcMDAwXHUwMEUwIisKKyAgICAgICAgIlwwMDBcMDAwXDAwMFx1NUI2OFwwMDBcMDAyXDAwMFx1MDBFNFwwMDBcdTAxNzNcMDAwXDAwMFwwMDBcdTYyNzBcMDAwXDAxMSIrCisgICAgICAgICJcMDAwXHUwMEFDXDAwMFx1MDBCRFwwMDBcdTAwQ0VcMDAwXHUwMEUxXDAwMFx1MDBFOVwwMDBcdTAwRjdcMDAwXHUwMTM0IisKKyAgICAgICAgIlwwMDBcdTAxNzJcMDAwXHUwMUFFXDAwMFwwMDFcMDAwXHU2MjcwXDAwMFwwMDJcdUZGRkZcdUZGRkZcMDAwXDAwMVwwMDAiKworICAgICAgICAiXDAwMFwwMDBcMDAwXDAwMFwwMTBcdUZGRkZcdUZGRkZcMDAwXDAwMVwwMDBcMDAwXDAwMFwwMDBcMDAwPFwwMDBcMDAxIisKKyAgICAgICAgIlwwMDBcdTAwQ0NcMDAwXDAwMVwwMDBcdTYyNzBcMDAwXDAwMlx1RkZGRlx1RkZGRlwwMDBcMDAxXDAwMHhcMDAwXDAwMSIrCisgICAgICAgICJcMDAwXDAxMVx1RkZGRlx1RkZGRlwwMDBcMDAxXDAwMHhcMDAwXDAwMVwwMDA8XDAwMFwwMDFcMDAwXHUwMEQ2XDAwMFwwMDAiKworICAgICAgICAiXDAwMFx1NzA4MFwwMDBcMDEwXDAwMFx1MDBBQlwwMDBcdTAwQzBcMDAwXHUwMEQ3XDAwMFx1MDBEOFwwMDBcdTAwRURcMDAwIisKKyAgICAgICAgIlx1MDBGNFwwMDBcdTAxMEZcMDAwXHUwMTM1XDAwMFwwMDFcMDAwXHU3MDgwXDAwMFwwMDNcMDAwXDAxMlx1RkZGRlx1RkZGRiIrCisgICAgICAgICJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMTBcMDAwXDAxM1x1RkZGRlx1RkZGRlwwMDBcMDAwXDAwMFwwMDBcMDAwPFwwMDAiKworICAgICAgICAiXDAwN1wwMDBcdTAwQzJcMDAwXHUwMENBXDAwMFx1MDBENFwwMDBcdTAwREFcMDAwXHUwMEVDXDAwMFx1MDBGNlwwMDBcdTAxMTciKworICAgICAgICAiXDAwMFwwMDFcMDAwXHU3MDgwXDAwMFwwMDVcMDAwXDAzNlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDEwXDAwMCIrCisgICAgICAgICJcMDM2XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMDxcMDAwXDAwMVwwMDBcdTAwRUVcMDAwXDAwMVwwMDBcdTcwODAiKworICAgICAgICAiXDAwMFwwMDJcMDAwXDAyNlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDEwXDAwMFwwMjVcMDAwXDAwMFwwMDBcMDAwIisKKyAgICAgICAgIlwwMDBcMDAwXDAwMDxcMDAwXDAwMVwwMDBcdTAwRENcMDAwXDAwMVwwMDBcdTcwODBcMDAwXDAwMlx1RkZGRlx1RkZGRiIrCisgICAgICAgICJcMDAwXDAwMVwwMDBcMDAwXDAwMFwwMDBcMDAwXDAxMFx1RkZGRlx1RkZGRlwwMDBcMDAxXDAwMFwwMDBcMDAwXDAwMFwwMDAiKworICAgICAgICAiPFwwMDBcMDAxXDAwMFx1MDBGNVwwMDBcMDAxXDAwMFx1NzA4MFwwMDBcMDAyXHVGRkZGXHVGRkZGXDAwMFwwMDFcMDAwIisKKyAgICAgICAgInhcMDAwXDAwMVwwMDBcMDExXHVGRkZGXHVGRkZGXDAwMFwwMDFcMDAweFwwMDBcMDAxXDAwMDxcMDAwXDAwMVwwMDBcdTAwQ0QiKworICAgICAgICAiXDAwMFwwMDFcMDAwXHU3MDgwXDAwMFwwMDRcMDAwXDAxMFx1RkZGRlx1RkZGRlwwMDBcdTAwRDJcMDAwXDAwMFwwMDBcMDExIisKKyAgICAgICAgIlwwMDBcMDIwXHVGRkZGXHVGRkZGXDAwMFx1MDBEMlwwMDBcMDAwXDAwMDxcMDAwXDAwMVwwMDBcdTAwQ0JcMDAwXDAwMCIrCisgICAgICAgICJcMDAwXHU3RTkwXDAwMFwwMDdcMDAwXHUwMEM2XDAwMFx1MDBDRlwwMDBcdTAwRTJcMDAwXHUwMEYzXDAwMFx1MDEzNlwwMDAiKworICAgICAgICAiXHUwMTdCXDAwMFx1MDE5RlwwMDBcMDAxXDAwMFx1N0U5MFwwMDBcMDAyXHVGRkZGXHVGRkZGXDAwMFwwMDFcMDAweFwwMDAiKworICAgICAgICAiXDAwMVwwMDBcMDExXHVGRkZGXHVGRkZGXDAwMFwwMDFcMDAweFwwMDBcMDAxXDAwMDxcMDAwXDAwMVwwMDBcdTAwRjlcMDAwIisKKyAgICAgICAgIlwwMDFcMDAwXHU3RTkwXDAwMFwwMDRcdUZGRkZcdUZGRjJcdUZGRkZcdUZGRkZcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMTEiKworICAgICAgICAiXHVGRkZGXHVGRkYyXHVGRkZGXHVGRkZGXDAwMFwwMDBcMDAwXDAwMFwwMDA8XDAwMFwwMDFcMDAwXHUwMEVCXDAwMFwwMDEiKworICAgICAgICAiXDAwMFx1ODU5OFwwMDBcMDExXDAwMFwwMDNcMDAwXDAwMFwwMDB4XDAwMFwwMDBcMDAwXDAwMlx1RkZGRlx1RkZGRlwwMDAiKworICAgICAgICAiXDAwMVwwMDB4XDAwMFwwMDBcMDAwPFwwMDBcMDAyXDAwMFwwMDBcMDAwXHUwMTBBXDAwMFwwMDFcMDAwXHU4NTk4XDAwMCIrCisgICAgICAgICJcMDExXHVGRkZGXHVGRkZGXDAwMFwwMDFcMDAweFwwMDBcMDAxXDAwMFwwMDJcdUZGRkZcdUZGRkZcMDAwXDAwMVwwMDAiKworICAgICAgICAieFwwMDBcMDAxXDAwMDxcMDAwXDAwMlwwMDBcdTAxMDdcMDAwXHUwMTA5XDAwMFwwMDBcMDAwXHU4Q0EwXDAwMFwwMDdcMDAwIisKKyAgICAgICAgIlx1MDBBRFwwMDBcdTAxMkFcMDAwXHUwMTkxXDAwMFx1MDFBMlwwMDBcdTAxQTRcMDAwXHUwMUE4XDAwMFx1MDFBQlwwMDAiKworICAgICAgICAiXDAwMVwwMDBcdThDQTBcMDAwXDAwMlx1RkZGRlx1RkZGRlwwMDBcMDAxXDAwMHhcMDAwXDAwMVwwMDBcMDExXHVGRkZGIisKKyAgICAgICAgIlx1RkZGRlwwMDBcMDAxXDAwMHhcMDAwXDAwMVwwMDA8XDAwMFwwMDFcMDAwXHUwMEY4XDAwMFwwMDFcMDAwXHU4Q0EwXDAwMCIrCisgICAgICAgICJcMDExXHVGRkZGXHVGRkZGXDAwMFwwMDFcMDAweFwwMDBcMDAxXDAwMFwwMDJcdUZGRkZcdUZGRkZcMDAwXDAwMVwwMDAiKworICAgICAgICAieFwwMDBcMDAxXDAwMDxcMDAwXDAwM1wwMDBcMDAxXDAwMFx1MDEwRVwwMDBcdTAxMTBcMDAwXDAwMVwwMDBcdThDQTBcMDAwIisKKyAgICAgICAgIlwwMTFcdUZGRkZcdUZGRkZcMDAwXDAwMVwwMDB4XDAwMFwwMDFcMDAwXDAwMlwwMDBcMDAxXHVGRkZGXHVGRkZGXDAwMCIrCisgICAgICAgICJ4XDAwMFwwMDFcMDAwPFwwMDBcMDAyXDAwMFx1MDEwOFwwMDBcdTAxMENcMDAwXDAwMVwwMDBcdThDQTBcMDAwXDAxMVwwMDAiKworICAgICAgICAiXDAwMVx1RkZGRlx1RkZGRlwwMDB4XDAwMFwwMDFcMDAwXDAwMlx1RkZGRlx1RkZGRlwwMDBcMDAxXDAwMHhcMDAwXDAwMSIrCisgICAgICAgICJcMDAwPFwwMDBcMDAxXDAwMFx1MDEwQlwwMDBcMDAxXDAwMFx1OTNBOFwwMDBcMDExXHVGRkZGXHVGRkZGXDAwMFwwMDEiKworICAgICAgICAiXDAwMHhcMDAwXDAwMVwwMDBcMDAyXHVGRkZGXHVGRkZGXDAwMFwwMDFcMDAweFwwMDBcMDAxXDAwMFwwMzZcMDAwXDAwMSIrCisgICAgICAgICJcMDAwXHUwMTBEXDAwMFwwMDBcMDAwXHU5QUIwXDAwMFwwMDVcMDAwXHUwMTJCXDAwMFx1MDE5MFwwMDBcdTAxOTVcMDAwIisKKyAgICAgICAgIlx1MDFBMVwwMDBcdTAxQUNcMDAwXDAwMVwwMDBcdTlBQjBcMDAwXDAxM1wwMDBcMDAxXDAwMFwwMDBcMDAweFwwMDBcMDAxIisKKyAgICAgICAgIlwwMDBcMDAyXDAwMFwwMDJcMDAwXDAwMFwwMDB4XDAwMFwwMDFcMDAwPFwwMDBcMDAxXDAwMFx1MDE5RFwwMDBcMDAxXDAwMCIrCisgICAgICAgICJcdTlBQjBcMDAwXDAwMlx1RkZGRlx1RkZGRlwwMDBcMDAxXDAwMHhcMDAwXDAwMVwwMDBcMDExXHVGRkZGXHVGRkZGXDAwMCIrCisgICAgICAgICJcMDAxXDAwMHhcMDAwXDAwMVwwMDA8XDAwMFwwMDFcMDAwXHUwMERCXDAwMFwwMDFcMDAwXHU5QUIwXDAwMFwwMTFcMDAwIisKKyAgICAgICAgIlwwMjdcdUZGRkZcdUZGRkZcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAyN1x1RkZGRlx1RkZGRlwwMDBcMDAwXDAwMCIrCisgICAgICAgICJcMDAwXDAwMDxcMDAwXDAwMVwwMDBcdTAxODlcMDAwXDAwMFwwMDBcdUExQjhcMDAwXDAwMVwwMDBcdTAxOUNcMDAwXDAwMCIrCisgICAgICAgICJcMDAwXHVBOEMwXDAwMFwwMTBcMDAwXHUwMTJDXDAwMFx1MDE4RFwwMDBcdTAxOTZcMDAwXHUwMTk3XDAwMFx1MDE5QVwwMDAiKworICAgICAgICAiXHUwMUE2XDAwMFx1MDFBOVwwMDBcdTAxQUFcMDAwXDAwMVwwMDBcdUE4QzBcMDAwXDAwMlx1RkZGRlx1RkZGRlwwMDBcMDAxIisKKyAgICAgICAgIlwwMDB4XDAwMFwwMDFcMDAwXDAxMVx1RkZGRlx1RkZGRlwwMDBcMDAxXDAwMHhcMDAwXDAwMVwwMDA8XDAwMFwwMDJcMDAwIisKKyAgICAgICAgIlx1MDBCNlwwMDBcdTAwRDJcMDAwXDAwMVwwMDBcdUE4QzBcMDAwXDAxMlwwMDBcMDAxXHVGRkZGXHVGRkZGXDAwMHhcMDAwIisKKyAgICAgICAgIlwwMDBcMDAwXDAwMVx1RkZGRlx1RkZGRlwwMDBcMDAxXDAwMFx1MDBCNFwwMDBcMDAwXDAwMDxcMDAwXDAwMVwwMDBcdTAxOEMiKworICAgICAgICAiXDAwMFwwMDFcMDAwXHVBOEMwXDAwMFwwMTFcMDAwXDAwMVx1RkZGRlx1RkZGRlwwMDB4XDAwMFwwMDFcMDAwXDAwMlwwMDAiKworICAgICAgICAiXDAxN1x1RkZGRlx1RkZGRlwwMDB4XDAwMFwwMDFcMDAwPFwwMDBcMDAzXDAwMFx1MDBBRlwwMDBcdTAxODBcMDAwXHUwMTg2IisKKyAgICAgICAgIlwwMDBcMDAxXDAwMFx1QjM0Q1wwMDBcMDExXDAwMFwwMDFcdUZGRkZcdUZGRkZcMDAwXHUwMEE1XDAwMFwwMDFcMDAwXDAwMiIrCisgICAgICAgICJcMDAwXDAxN1x1RkZGRlx1RkZGRlwwMDBcdTAwQTVcMDAwXDAwMVwwMDA8XDAwMFwwMDFcMDAwXHUwMTg3XDAwMFwwMDAiKworICAgICAgICAiXDAwMFx1QjZEMFwwMDBcMDAyXDAwMFx1MDEyRFwwMDBcdTAxOEFcMDAwXDAwMVwwMDBcdUI2RDBcMDAwXDAxMlwwMDBcMDA0IisKKyAgICAgICAgIlwwMDBcMDAwXDAwMHhcMDAwXDAwMVwwMDBcMDAwXDAwMFwwMzNcMDAwXDAwMFwwMDB4XDAwMFwwMDFcMDAwPFwwMDBcMDAxIisKKyAgICAgICAgIlwwMDBcdTAxQTdcMDAwXDAwMFwwMDBcdUM0RTBcMDAwXDAwMlwwMDBcdTAxMkVcMDAwXHUwMTk0IgorICAgICAgICA7CisKKyAgICAvKioKKyAgICAgKiBSTEUgZW5jb2RlZCBmb3JtIG9mIElOREVYX0JZX05BTUVfQVJSQVkuCisgICAgICogQHNlZSBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHkuUkxFU3RyaW5nVG9JbnRBcnJheQorICAgICAqID4+IEdFTkVSQVRFRCBEQVRBOiBETyBOT1QgRURJVCA8PAorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgSU5ERVhfQllfTkFNRV9BUlJBWV9STEUgPQorICAgICAgICAiXDAwMFx1MDFCMFwwMDBcdTA1OENcMDAwXHUwNUM1XDAwMFx1MDIwRVwwMDBcdTAzNzFcMDAwPVwwMDBcdTAyNzlcMDAwIisKKyAgICAgICAgIlx1MDJCNlwwMDBcdTAzRDhcMDAwXHUwMkM1XDAwMFx1MDNEOFwwMDBcdTAyNzlcMDAwXHUwMkM1XDAwMFx1MDI3OVwwMDAiKworICAgICAgICAiXHUwMjc5XDAwMFx1MDMzMVwwMDBcdTAyQzVcMDAwXHUwMzMxXDAwMFx1MDM3MVwwMDBcdTAyNzlcMDAwXHUwMkQ1XDAwMCIrCisgICAgICAgICJcdTAyNzlcMDAwXHUwMjc5XDAwMFx1MDNEOFwwMDBcdTAzRDhcMDAwXHUwMkM1XDAwMFx1MDI3OVwwMDBcdTAyOTFcMDAwIisKKyAgICAgICAgIlx1MDMzMVwwMDBcdTAzMzFcMDAwXHUwM0M5XDAwMFx1MDNEOFwwMDBcdTAzRDhcMDAwXHUwMzMxXDAwMFx1MDJDNVwwMDAiKworICAgICAgICAiXHUwMkM1XDAwMFx1MDJDNVwwMDBcdTAyNzlcMDAwXHUwMkM1XDAwMFx1MDMzMVwwMDBcdTAzMzFcMDAwXHUwMkM1XDAwMCIrCisgICAgICAgICJcdTAzMzFcMDAwXHUwMzMxXDAwMFx1MDMzMVwwMDBcdTAzRDhcMDAwXHUwMjc5XDAwMFx1MDNEOFwwMDBcdTAyQzVcMDAwIisKKyAgICAgICAgIlx1MDJDNVwwMDBcdTAyNzlcMDAwXHUwMjc5XDAwMFx1MDJDNVwwMDBcdTAyNzlcMDAwXHUwMjc5XDAwMFx1MDMzMVwwMDAiKworICAgICAgICAiXHUwMzEzXDAwMFx1MDMyMlwwMDBcMDI2XDAwMD1cMDAwXHUwMTc1XDAwMFx1MDE3NVwwMDBcdTAyNENcMDAwXHUwMTc1IisKKyAgICAgICAgIlwwMDBcdTAxQzFcMDAwXHUwMUIyXDAwMFx1MDIwRVwwMDBcdTAwQjVcMDAwXHUwMTc1XDAwMFx1MDE2NlwwMDBxXDAwMCIrCisgICAgICAgICJcdTAyMEVcMDAwXHUwMDhGXDAwMFx1MDA4RlwwMDBcdTAxNzVcMDAwXHUwMjBFXDAwMFx1MDIwRVwwMDBcdTAxMDFcMDAwIisKKyAgICAgICAgIlx1MDA4RlwwMDBxXDAwMFx1MDIwRVwwMDBcdTAwQzRcMDAwXHUwMUQwXDAwMFx1MDE3NVwwMDBVXDAwMGlcMDAwcVwwMDAiKworICAgICAgICAiXHUwMTQwXDAwMFx1MDE3NVwwMDBxXDAwMFx1MDEwMVwwMDBcdTAwRTJcMDAwXHUwMjBFXDAwMFx1MDFBMFwwMDBcdTAyMkUiKworICAgICAgICAiXDAwMFx1MDE5MVwwMDBcdTAxMTNcMDAwXHUwMTc1XDAwMFx1MDE3NVwwMDBcdTAwRDNcMDAwXHUwMTAxXDAwMFx1MDE3NSIrCisgICAgICAgICJcMDAwXHUwMUEwXDAwMFx1MDEyMlwwMDBpXDAwMFx1QTVBNVwwMDBcMDA0XDAwMFx1MDEwMVwwMDBxXDAwMFx1MDEwMVwwMDAiKworICAgICAgICAiXHUwMTAxXDAwMFx1MDIwRVwwMDA9XDAwMFx1MDE0MFwwMDBcdTAxNzVcMDAwXHUwMTU3XDAwMFVcMDAwXHUwMTQwXDAwMCIrCisgICAgICAgICJcdTAyMEVcMDAwXHUwMDg3XDAwMFx1MDE3NVwwMDBcdTAxNzVcMDAwcVwwMDBcdTAyMEVcMDAwXHUwMDhGXDAwMFx1MDA4RiIrCisgICAgICAgICJcMDAwXHUwMDhGXDAwMFx1MDIxRlwwMDBcdTAwOEZcMDAwXHUwMjNEXDAwMFx1MDE0MFwwMDBcdTAxNzVcMDAwXHUwMTQwIisKKyAgICAgICAgIlwwMDBcdTAxNDBcMDAwXHUwMTQwXDAwMD1cMDAwXHUwMjVEXDAwMFx1MDEwMVwwMDBcdTAxMDFcMDAwXHUwMjBFXDAwMCIrCisgICAgICAgICJpXDAwMFx1MDEzMVwwMDBcdTAxNzVcMDAwXHUwMTAxXDAwMFx1MDE3NVwwMDBcdTAxNzVcMDAwXHUwMDhGXDAwMFx1MDEwMSIrCisgICAgICAgICJcMDAwXHUwMjBFXDAwMFx1MDA4N1wwMDBcdTAyMEVcMDAwXHUwMURGXDAwMFx1MDE3NVwwMDBcdTAyNENcMDAwXHUwMjY5IisKKyAgICAgICAgIlwwMDBcdTAxRkVcMDAwXHVBNUE1XDAwMFwwMDRcMDAwXHUwMTc1XDAwMFx1MDA4N1wwMDBcdTAwRTJcMDAwXHUwMUEwXDAwMCIrCisgICAgICAgICJcdTAxNDBcMDAwVVwwMDBcdTAxNzVcMDAwVVwwMDBVXDAwMFx1MDBBNlwwMDA9XDAwMHFcMDAwXHUwNEY5XDAwMFx1MDRDRiIrCisgICAgICAgICJcMDAwXHUwNUFDXDAwMFx1MDRBMlwwMDBcdTA2NjdcMDAwXHUwMURGXDAwMFx1MDNEOFwwMDBcdTAyRDVcMDAwXHUwM0Q4IisKKyAgICAgICAgIlwwMDBcdTA0QUJcMDAwXHUwM0JBXDAwMFx1MDY0OFwwMDBcdTA0MkJcMDAwXHUwNDZDXDAwMFx1MDQ1RlwwMDBcdTAzRUUiKworICAgICAgICAiXDAwMFx1MDNEOFwwMDBcdTA0M0JcMDAwXHUwNENGXDAwMFx1MDM4MVwwMDBcdTA0OEFcMDAwXHUwNEY5XDAwMFx1MDQ5OSIrCisgICAgICAgICJcMDAwXHUwNTA0XDAwMFx1MDRBMlwwMDBcdTAzNDRcMDAwXHUwNEEyXDAwMFx1MDU2NFwwMDBcdTA0MjJcMDAwXHUwNDVGIisKKyAgICAgICAgIlwwMDBcdTAzNjJcMDAwXHUwNTA0XDAwMFx1MDU1NVwwMDBcdTA0REJcMDAwXHUwNTQ2XDAwMFx1MDRDRlwwMDBcdTA1NjQiKworICAgICAgICAiXDAwMFx1MDM1M1wwMDBcdTA0NUJcMDAwXHUwNjQ4XDAwMFx1MDQ1RlwwMDBcdTA1MDRcMDAwXHUwNDlFXDAwMFx1MDRFQSIrCisgICAgICAgICJcMDAwXHUwNEY5XDAwMFx1MDRGOVwwMDBcdTAzRDhcMDAwXHUwNTA0XDAwMFx1MDYxQlwwMDBcdTA1MjhcMDAwXHUwNDIyIisKKyAgICAgICAgIlwwMDBcdTAzOTBcMDAwXHUwNEJBXDAwMFx1MDRCQVwwMDBcdTA0Q0ZcMDAwXHUwNTY0XDAwMFx1MDNEOFwwMDBcdTA0Q0EiKworICAgICAgICAiXDAwMFx1MDNEOFwwMDBcdTA0MERcMDAwXHUwNDBEXDAwMFx1MDQwRFwwMDBcdTA0Q0ZcMDAwXHUwNDVGXDAwMFx1MDU3RCIrCisgICAgICAgICJcMDAwXHUwNTA0XDAwMFx1MDRGOVwwMDBcdTA1MTlcMDAwXHUwNDVGXDAwMFx1MDQyQlwwMDBcdTA0MTNcMDAwXHUwNEEyIisKKyAgICAgICAgIlwwMDBcdTA1NjRcMDAwXHUwNEY5XDAwMFx1MDUzN1wwMDBcdTA1MDRcMDAwXHUwNENGXDAwMFx1MDVCNlwwMDBcdTA1NkUiKworICAgICAgICAiXDAwMFx1MDQ3QlwwMDBcdTA0NEFcMDAwXHUwMjY5XDAwMFx1MDFBMFwwMDBcdTAyQTBcMDAwXHUwMjYzXDAwMFx1MDJBMCIrCisgICAgICAgICJcMDAwXHUwMjYzXDAwMFx1MDJBMFwwMDBcdTAyNzlcMDAwXHUwMjVEXDAwMFx1MDI3OVwwMDBcdTAxRUZcMDAwXHUwNTlDIisKKyAgICAgICAgIlwwMDBcdTA1RDZcMDAwXHUwNTlDXDAwMFx1MDU4Q1wwMDBcdTA1RTZcMDAwXHUwNUQ2XDAwMFx1MDVGNVwwMDBcdTA1QzUiKworICAgICAgICAiXDAwMFx1MDRGOVwwMDBcdTA1QzVcMDAwXHUwMjRDXDAwMFx1MDRBMlwwMDBcdTAzMzFcMDAwXHUwMzAzXDAwMFx1MDFGRSIrCisgICAgICAgICJcMDAwXHUwMDhGXDAwMFx1MDUwNFwwMDBcdTAzRDhcMDAwXHUwMkQ1XDAwMFx1MDM5MFwwMDBcdTAxNDBcMDAwXHUwMjc5IisKKyAgICAgICAgIlwwMDBcdTAyNjNcMDAwXDAxNVwwMDBcMDA0XDAwMFwwMDBcMDAwXHUwMjVEXDAwMFx1MDIwRVwwMDBcdTAxNzVcMDAwXHUwMTAxIisKKyAgICAgICAgIlwwMDBcdTAwODdcMDAwaVwwMDBQXDAwMDhcMDAwXHUwMkM1XDAwMFx1MDVBQ1wwMDBcdTA2MDRcMDAwXHUwNjNEXDAwMCIrCisgICAgICAgICJcdTA2ODdcMDAwXHUwNjlCXDAwMFx1MDMzMVwwMDBcdTAzRDhcMDAwXHUwNDIyXDAwMFx1MDQ1RlwwMDBcdTA0QTJcMDAwIisKKyAgICAgICAgIlx1MDRDRlwwMDBcdTA0RjlcMDAwXHUwNTY0XDAwMFx1MDI3OVwwMDBcdTAyNzlcMDAwXHUwMkQ1XDAwMFx1MDJENVwwMDAiKworICAgICAgICAiXHUwMzkwXDAwMFx1MDJBMFwwMDBcdUE1QTVcMDAwXDAwNFwwMDBcdTAyRDVcMDAwXHUwMzkwXDAwMFx1MDJENVwwMDBcdTAzOTAiKworICAgICAgICAiXDAwMFx1MDJENVwwMDBcdTAyQTBcMDAwXHUwMkQ1XDAwMFx1MDM5MFwwMDBcdTAzOTBcMDAwXHUwM0FBXDAwMFx1MDM5MCIrCisgICAgICAgICJcMDAwXHUwMkEwXDAwMFx1MDJENVwwMDBcdTAyQTBcMDAwXHUwMkQ1XDAwMFx1MDJENVwwMDBcdTAyRDVcMDAwXHUwM0FBIisKKyAgICAgICAgIlwwMDBcdTAyRDVcMDAwXHUwM0ZEXDAwMFx1MDJENVwwMDBcdTAyRDVcMDAwXHUwMkQ1XDAwMFx1MDMzMVwwMDBcdTAyRDUiKworICAgICAgICAiXDAwMFx1MDQ0QVwwMDBcdTAyRDVcMDAwXHUwMkQ1XDAwMFx1MDM5MFwwMDBcdTAyRDVcMDAwXHUwMzkwXDAwMFx1MDJENSIrCisgICAgICAgICJcMDAwXHUwMzMxXDAwMFx1MDJENVwwMDBcdTAzRkRcMDAwXHUwMzkwXDAwMFx1MDJENVwwMDBcdTAyRDVcMDAwXHUwMkQ1IisKKyAgICAgICAgIlwwMDBcdTAzMzFcMDAwXHUwMkQ1XDAwMFx1MDJENVwwMDBcdTAzOTBcMDAwXHUwMkQ1XDAwMFx1MDI3OVwwMDBcMDE1XDAwMCIrCisgICAgICAgICJcdTAxMDFcMDAwXHUwNDk5XDAwMFx1MDNEOFwwMDBcdTA0NUZcMDAwXHUwNENGXDAwMFx1MDRDQVwwMDBcdTAzRDhcMDAwIisKKyAgICAgICAgIlx1MDQ1RlwwMDBcdTA0MjJcMDAwXHUwNDVGXDAwMFx1MDQyMlwwMDBcdTAzRDhcMDAwXHUwNDIyXDAwMFx1MDU2NFwwMDAiKworICAgICAgICAiXHUwMzAzXDAwMFwwMDRcMDAwcVwwMDBcdTA0NEFcMDAwXHUwNjY3XDAwMFx1MDQ1RlwwMDBpXDAwMFx1MDE3NVwwMDBVIisKKyAgICAgICAgIlwwMDBcMDA0XDAwMFx1MDY2N1wwMDBcdTA2NzhcMDAwXHUwMEYyXDAwMFx1MDYyQVwwMDBcdTA2ODdcMDAwXDAxNVwwMDAiKworICAgICAgICAiXHUwNjU4XDAwMFx1MDYzRFwwMDBcdTAwODdcMDAwOFwwMDBcdTA2MDRcMDAwXHUwNUFDXDAwMFwwMTVcMDAwXDAxNVwwMDAiKworICAgICAgICAiXHUwNjlCXDAwMFx1MDYwNFwwMDBcdTA2M0RcMDAwXHUwNjNEXDAwMDRcMDAwXDAwNFwwMDBcdTA2M0RcMDAwXDAwNFwwMDAiKworICAgICAgICAiXHUwNjM5XDAwMFx1MDYwQ1wwMDBcMDA0XDAwMFx1MDU2NFwwMDBQXDAwMFx1MDYwNFwwMDBcdTA1QUNcMDAwJVwwMDBcdTA1QUMiKworICAgICAgICAiXDAwMFwwMTVcMDAwXHUwNjNEXDAwMFx1MDY4Q1wwMDBcdTA1QUNcMDAwXHUwNjNEXDAwMFx1MDYzRFwwMDBcdTA1QUNcMDAwIisKKyAgICAgICAgIlx1MDYwNFwwMDBcdTAyNzlcMDAwXHUwNENGXDAwMFx1MDJBMCIKKyAgICAgICAgOworCisgICAgLyoqCisgICAgICogUkxFIGVuY29kZWQgZm9ybSBvZiBJTkRFWF9CWV9PRkZTRVQuCisgICAgICogQHNlZSBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHkuUkxFU3RyaW5nVG9JbnRBcnJheQorICAgICAqID4+IEdFTkVSQVRFRCBEQVRBOiBETyBOT1QgRURJVCA8PAorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgSU5ERVhfQllfT0ZGU0VUX1JMRSA9CisgICAgICAgICJcMDAwXHUwMjI1XHVGRkZGXHU1NzQwXDAwMFx1MDEyMFwwMDBcMDAxXDAwMFx1MDEyMFx1RkZGRlx1NjU1MFwwMDBcdTAxODUiKworICAgICAgICAiXDAwMFwwMDZcMDAwXHUwMTFGXDAwMFx1MDE3RFwwMDBcdTAxODVcMDAwXHUwMTk5XDAwMFx1MDE5QlwwMDBcdTAxOUVcdUZGRkYiKworICAgICAgICAiXHU3MzYwXDAwMFx1MDE5MlwwMDBcMDEwXDAwMDlcMDAwXHUwMTFFXDAwMFx1MDE2RFwwMDBcdTAxOEJcMDAwXHUwMTkyIisKKyAgICAgICAgIlwwMDBcdTAxOTNcMDAwXHUwMUEzXDAwMFx1MDFBNVx1RkZGRlx1N0E2OFwwMDBcdTAxOThcMDAwXDAwMVwwMDBcdTAxOTgiKworICAgICAgICAiXHVGRkZGXHU4MTcwXDAwMDpcMDAwXDAwN1wwMDBcMDA0XDAwMDpcMDAwcFwwMDBcdTAwODdcMDAwXHUwMEE5XDAwMFx1MDEyOCIrCisgICAgICAgICJcMDAwXHUwMThGXHVGRkZGXHU4RjgwXDAwMHRcMDAwXDAxMFwwMDBTXDAwMHRcMDAwXHUwMEE0XDAwMFx1MDBBNlwwMDAiKworICAgICAgICAiXHUwMEE3XDAwMFx1MDEyN1wwMDBcdTAxODRcMDAwXHUwMUEwXHVGRkZGXHU5RDkwXDAwMFVcMDAwXDAxNVwwMDBFXDAwMCIrCisgICAgICAgICJOXDAwMFRcMDAwVVwwMDBYXDAwMGdcMDAwbFwwMDB6XDAwMFx1MDA4Q1wwMDBcdTAwQUFcMDAwXHUwMTI2XDAwMFx1MDE3RSIrCisgICAgICAgICJcMDAwXHUwMTgyXHVGRkZGXHVBQkEwXDAwME1cMDAwXDAyNVwwMDBCXDAwMEdcMDAwSFwwMDBNXDAwMFBcMDAwWlwwMDAiKworICAgICAgICAiYlwwMDB3XDAwMHxcMDAwfVwwMDB+XDAwMFx1MDA4MFwwMDBcdTAwOTJcMDAwXHUwMDk1XDAwMFx1MDBBMFwwMDBcdTAwQTEiKworICAgICAgICAiXDAwMFx1MDBBOFwwMDBcdTAxMTZcMDAwXHUwMTI1XDAwMFx1MDE4OFwwMDBcdTAxOEVcdUZGRkZcdUI5QjBcMDAwa1wwMDAiKworICAgICAgICAiXDAzNVwwMDBEXDAwMExcMDAwVlwwMDBZXDAwMF9cMDAwY1wwMDBmXDAwMGhcMDAwaVwwMDBqXDAwMGtcMDAwbVwwMDBuIisKKyAgICAgICAgIlwwMDBxXDAwMHNcMDAwdVwwMDBcdTAwODJcMDAwXHUwMDg0XDAwMFx1MDA4NVwwMDBcdTAwODZcMDAwXHUwMDg5XDAwMCIrCisgICAgICAgICJcdTAwOEFcMDAwXHUwMDhEXDAwMFx1MDA4RlwwMDBcdTAwOTNcMDAwXHUwMEEzXDAwMFx1MDExQlwwMDBcdTAxMjRcMDAwIisKKyAgICAgICAgIlx1MDE2RVx1RkZGRlx1QzdDMFwwMDBcdTAwOTFcMDAwJFwwMDA7XDAwMDxcMDAwPlwwMDA/XDAwMEBcMDAwQ1wwMDBJXDAwMCIrCisgICAgICAgICJRXDAwMFJcMDAwV1wwMDBcMTM0XDAwMF5cMDAwYFwwMDBhXDAwMGRcMDAwZVwwMDByXDAwMHhcMDAweVwwMDBcdTAwODMiKworICAgICAgICAiXDAwMFx1MDA4RVwwMDBcdTAwOTBcMDAwXHUwMDkxXDAwMFx1MDA5N1wwMDBcdTAwOThcMDAwXHUwMDlDXDAwMFx1MDA5RCIrCisgICAgICAgICJcMDAwXHUwMDlFXDAwMFx1MDA5RlwwMDBcdTAwQTJcMDAwXHUwMEE1XDAwMFx1MDBCMFwwMDBcdTAwRkRcMDAwXHUwMTA2IisKKyAgICAgICAgIlwwMDBcdTAxMjNcMDAwXHUwMTgzXHVGRkZGXHVDRUM4XDAwMFx1MDA5QlwwMDBcMDAyXDAwMFx1MDA5QlwwMDBcdTAxMTUiKworICAgICAgICAiXHVGRkZGXHVENUQwXDAwMEZcMDAwXDAyNFwwMDBcMDAyXDAwMD1cMDAwQVwwMDBGXDAwMEpcMDAwS1wwMDBPXDAwMFtcMDAwIisKKyAgICAgICAgIl1cMDAwb1wwMDB2XDAwMHtcMDAwXHUwMDdGXDAwMFx1MDA4MVwwMDBcdTAwOEJcMDAwXHUwMDk0XDAwMFx1MDA5NlwwMDAiKworICAgICAgICAiXHUwMDk5XDAwMFx1MDExMVwwMDBcdTAxMjJcdUZGRkZcdUUzRTBcMDAwXHUwMDg4XDAwMFwwMDNcMDAwXHUwMDg4XDAwMCIrCisgICAgICAgICJcdTAxMDRcMDAwXHUwMTIxXHVGRkZGXHVGMUYwXDAwMFx1MDBGQ1wwMDBcMDA1XDAwMFx1MDA5QVwwMDBcdTAwRkNcMDAwIisKKyAgICAgICAgIlx1MDBGRlwwMDBcdTAxMDFcMDAwXHUwMTFEXDAwMFwwMDBcMDAwXHUwMTZDXDAwMFwwMzdcMDAwXDAwNVwwMDBcMDA2XDAwMCIrCisgICAgICAgICJcMDEyXDAwMFwwMTRcMDAwXDAxNVwwMDBcMDIyXDAwMFwwMjRcMDAwXDAyNVwwMDBcMDMxXDAwMFwwMzJcMDAwJFwwMDAiKworICAgICAgICAiLVwwMDAxXDAwMDJcMDAwNFwwMDA1XDAwMFx1MDBGRVwwMDBcdTAxMDBcMDAwXHUwMTAyXDAwMFx1MDEwM1wwMDBcdTAxMDUiKworICAgICAgICAiXDAwMFx1MDExQ1wwMDBcdTAxMzdcMDAwXHUwMTM4XDAwMFx1MDEzQ1wwMDBcdTAxNDVcMDAwXHUwMTRCXDAwMFx1MDE0RCIrCisgICAgICAgICJcMDAwXHUwMTZDXDAwMFx1MDFBRFwwMDBcdTAxQUZcMDAwXHUwRTEwXDAwMFx1MDE1NVwwMDAxXDAwMFwwMTBcMDAwXDAxMyIrCisgICAgICAgICJcMDAwXDAxN1wwMDBcMDIzXDAwMFwwMzBcMDAwIVwwMDBcMDQyXDAwMCNcMDAwJVwwMDAoXDAwMC9cMDAwMFwwMDAzXDAwMCIrCisgICAgICAgICI3XDAwMDhcMDAwXHUwMEIyXDAwMFx1MDExNFwwMDBcdTAxMTlcMDAwXHUwMTI5XDAwMFx1MDEzOVwwMDBcdTAxM0FcMDAwIisKKyAgICAgICAgIlx1MDEzRFwwMDBcdTAxM0VcMDAwXHUwMTNGXDAwMFx1MDE0MFwwMDBcdTAxNDJcMDAwXHUwMTQ0XDAwMFx1MDE0NlwwMDAiKworICAgICAgICAiXHUwMTRDXDAwMFx1MDE0RVwwMDBcdTAxNEZcMDAwXHUwMTUwXDAwMFx1MDE1MlwwMDBcdTAxNTRcMDAwXHUwMTU1XDAwMCIrCisgICAgICAgICJcdTAxNTZcMDAwXHUwMTU4XDAwMFx1MDE1QVwwMDBcdTAxNUJcMDAwXHUwMTVEXDAwMFx1MDE1RlwwMDBcdTAxNjFcMDAwIisKKyAgICAgICAgIlx1MDE2NFwwMDBcdTAxNjVcMDAwXHUwMTY2XDAwMFx1MDE2OFwwMDBcdTAxNjlcMDAwXHUwMTZCXDAwMFx1MDE3Q1wwMDAiKworICAgICAgICAiXHUxQzIwXDAwMFwwMjFcMDAwJlwwMDBcMDAzXDAwMFwwMTZcMDAwXDAyMFwwMDBcMDIxXDAwMFwwMzNcMDAwXDAzNFwwMDAiKworICAgICAgICAiXDAzNVwwMDAgXDAwMCZcMDAwJ1wwMDApXDAwMCpcMDAwK1wwMDA2XDAwMFx1MDBCNVwwMDBcdTAwQkVcMDAwXHUwMEM0IisKKyAgICAgICAgIlwwMDBcdTAwQzlcMDAwXHUwMEQwXDAwMFx1MDBERVwwMDBcdTAxMTNcMDAwXHUwMTFBXDAwMFx1MDEyRlwwMDBcdTAxM0IiKworICAgICAgICAiXDAwMFx1MDE0MVwwMDBcdTAxNDNcMDAwXHUwMTQ3XDAwMFx1MDE0OFwwMDBcdTAxNDlcMDAwXHUwMTRBXDAwMFx1MDE1MSIrCisgICAgICAgICJcMDAwXHUwMTU3XDAwMFx1MDE1Q1wwMDBcdTAxNUVcMDAwXHUwMTYwXDAwMFx1MDE2M1wwMDBcdTAxNjdcMDAwXHUwMTZBIisKKyAgICAgICAgIlwwMDBcdTJBMzBcMDAwXDAwN1wwMDBcMDI2XDAwMFwwMDdcMDAwXDAxMVwwMDBcMDI2XDAwMFwwMjdcMDAwXDAzNlwwMDAiKworICAgICAgICAiXDAzN1wwMDAsXDAwMC5cMDAwXHUwMEIxXDAwMFx1MDBCM1wwMDBcdTAwQkFcMDAwXHUwMEJCXDAwMFx1MDBEOVwwMDBcdTAwRTMiKworICAgICAgICAiXDAwMFx1MDBFNVwwMDBcdTAxMThcMDAwXHUwMTMwXDAwMFx1MDE1M1wwMDBcdTAxNjJcMDAwXHUwMTcwXDAwMFx1MDE3NCIrCisgICAgICAgICJcMDAwXHUwMTc5XDAwMFx1MkJEOFwwMDBcdTAwRThcMDAwXDAwM1wwMDBcdTAwRTZcMDAwXHUwMEU3XDAwMFx1MDBFOFwwMDAiKworICAgICAgICAiXHUzMTM4XDAwMFx1MDBGMVwwMDBcMDAxXDAwMFx1MDBGMVwwMDBcdTM4NDBcMDAwXHUwMEZCXDAwMFwwMTRcMDAwXHUwMEI3IisKKyAgICAgICAgIlwwMDBcdTAwQkNcMDAwXHUwMEM3XDAwMFx1MDBERFwwMDBcdTAwRjBcMDAwXHUwMEZCXDAwMFx1MDEzMVwwMDBcdTAxNTkiKworICAgICAgICAiXDAwMFx1MDE3NlwwMDBcdTAxNzhcMDAwXHUwMTdBXDAwMFx1MDE3RlwwMDBcdTNGNDhcMDAwXHUwMEQxXDAwMFwwMDFcMDAwIisKKyAgICAgICAgIlx1MDBEMVwwMDBcdTQ2NTBcMDAwXHUwMEQzXDAwMFwwMTVcMDAwXHUwMEI4XDAwMFx1MDBCOVwwMDBcdTAwQkZcMDAwXHUwMEM4IisKKyAgICAgICAgIlwwMDBcdTAwRDNcMDAwXHUwMEVBXDAwMFx1MDBFRlwwMDBcdTAwRkFcMDAwXHUwMTMyXDAwMFx1MDE3MVwwMDBcdTAxNzUiKworICAgICAgICAiXDAwMFx1MDE3N1wwMDBcdTAxODFcMDAwXHU0RDU4XDAwMFx1MDBDMVwwMDBcMDAyXDAwMFx1MDBDMVwwMDBcdTAxNkZcMDAwIisKKyAgICAgICAgIlx1NTBEQ1wwMDBcdTAwRDVcMDAwXDAwMVwwMDBcdTAwRDVcMDAwXHU1NDYwXDAwMFx1MDBDNVwwMDBcMDExXDAwMFx1MDBBRSIrCisgICAgICAgICJcMDAwXHUwMEI0XDAwMFx1MDBDM1wwMDBcdTAwQzVcMDAwXHUwMERGXDAwMFx1MDBFMFwwMDBcdTAwRjJcMDAwXHUwMTEyIisKKyAgICAgICAgIlwwMDBcdTAxMzNcMDAwXHU1QjY4XDAwMFx1MDBFNFwwMDBcMDAyXDAwMFx1MDBFNFwwMDBcdTAxNzNcMDAwXHU2MjcwXDAwMCIrCisgICAgICAgICJcdTAwRTlcMDAwXDAxM1wwMDBcdTAwQUNcMDAwXHUwMEJEXDAwMFx1MDBDQ1wwMDBcdTAwQ0VcMDAwXHUwMEQ2XDAwMFx1MDBFMSIrCisgICAgICAgICJcMDAwXHUwMEU5XDAwMFx1MDBGN1wwMDBcdTAxMzRcMDAwXHUwMTcyXDAwMFx1MDFBRVwwMDBcdTcwODBcMDAwXHUwMEVDIisKKyAgICAgICAgIlwwMDBcMDI0XDAwMFx1MDBBQlwwMDBcdTAwQzBcMDAwXHUwMEMyXDAwMFx1MDBDQVwwMDBcdTAwQ0JcMDAwXHUwMENEXDAwMCIrCisgICAgICAgICJcdTAwRDRcMDAwXHUwMEQ3XDAwMFx1MDBEOFwwMDBcdTAwREFcMDAwXHUwMERDXDAwMFx1MDBFQ1wwMDBcdTAwRURcMDAwIisKKyAgICAgICAgIlx1MDBFRVwwMDBcdTAwRjRcMDAwXHUwMEY1XDAwMFx1MDBGNlwwMDBcdTAxMEZcMDAwXHUwMTE3XDAwMFx1MDEzNVwwMDAiKworICAgICAgICAiXHU3RTkwXDAwMFx1MDBGM1wwMDBcMDExXDAwMFx1MDBDNlwwMDBcdTAwQ0ZcMDAwXHUwMEUyXDAwMFx1MDBFQlwwMDBcdTAwRjMiKworICAgICAgICAiXDAwMFx1MDBGOVwwMDBcdTAxMzZcMDAwXHUwMTdCXDAwMFx1MDE5RlwwMDBcdTg1OThcMDAwXHUwMTBBXDAwMFwwMDRcMDAwIisKKyAgICAgICAgIlwwMDBcMDAwXHUwMTA3XDAwMFx1MDEwOVwwMDBcdTAxMEFcMDAwXHU4Q0EwXDAwMFx1MDExMFwwMDBcMDE2XDAwMFwwMDEiKworICAgICAgICAiXDAwMFx1MDBBRFwwMDBcdTAwRjhcMDAwXHUwMTA4XDAwMFx1MDEwQlwwMDBcdTAxMENcMDAwXHUwMTBFXDAwMFx1MDExMCIrCisgICAgICAgICJcMDAwXHUwMTJBXDAwMFx1MDE5MVwwMDBcdTAxQTJcMDAwXHUwMUE0XDAwMFx1MDFBOFwwMDBcdTAxQUJcMDAwXHU5M0E4IisKKyAgICAgICAgIlwwMDBcdTAxMERcMDAwXDAwMVwwMDBcdTAxMERcMDAwXHU5QUIwXDAwMFx1MDE5MFwwMDBcMDEwXDAwMFx1MDBEQlwwMDAiKworICAgICAgICAiXHUwMTJCXDAwMFx1MDE4OVwwMDBcdTAxOTBcMDAwXHUwMTk1XDAwMFx1MDE5RFwwMDBcdTAxQTFcMDAwXHUwMUFDXDAwMCIrCisgICAgICAgICJcdUExQjhcMDAwXHUwMTlDXDAwMFwwMDFcMDAwXHUwMTlDXDAwMFx1QThDMFwwMDBcdTAxODZcMDAwXDAxNlwwMDBcdTAwQUYiKworICAgICAgICAiXDAwMFx1MDBCNlwwMDBcdTAwRDJcMDAwXHUwMTJDXDAwMFx1MDE4MFwwMDBcdTAxODZcMDAwXHUwMThDXDAwMFx1MDE4RCIrCisgICAgICAgICJcMDAwXHUwMTk2XDAwMFx1MDE5N1wwMDBcdTAxOUFcMDAwXHUwMUE2XDAwMFx1MDFBOVwwMDBcdTAxQUFcMDAwXHVCMzRDIisKKyAgICAgICAgIlwwMDBcdTAxODdcMDAwXDAwMVwwMDBcdTAxODdcMDAwXHVCNkQwXDAwMFx1MDE4QVwwMDBcMDAzXDAwMFx1MDEyRFwwMDAiKworICAgICAgICAiXHUwMThBXDAwMFx1MDFBN1wwMDBcdUM0RTBcMDAwXHUwMTk0XDAwMFwwMDJcMDAwXHUwMTJFXDAwMFx1MDE5NCIKKyAgICAgICAgOworCisgICAgLyoqCisgICAgICogUkxFIGVuY29kZWQgZm9ybSBvZiBJTkRFWF9CWV9DT1VOVFJZLgorICAgICAqIEBzZWUgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5LlJMRVN0cmluZ1RvSW50QXJyYXkKKyAgICAgKiA+PiBHRU5FUkFURUQgREFUQTogRE8gTk9UIEVESVQgPDwKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIElOREVYX0JZX0NPVU5UUllfUkxFID0KKyAgICAgICAgIlwwMDBcdTAzOENcMDAwXDAwMFwwMDAmXDAwMFx1MDBFNlwwMDBcdTAwRTdcMDAwXHUwMEU4XDAwMFx1MDExNFwwMDBcdTAxMUEiKworICAgICAgICAiXDAwMFx1MDExQ1wwMDBcdTAxMURcMDAwXHUwMTFFXDAwMFx1MDExRlwwMDBcdTAxMjBcMDAwXHUwMTIxXDAwMFx1MDEyMiIrCisgICAgICAgICJcMDAwXHUwMTIzXDAwMFx1MDEyNFwwMDBcdTAxMjVcMDAwXHUwMTI2XDAwMFx1MDEyN1wwMDBcdTAxMjhcMDAwXHUwMTI5IisKKyAgICAgICAgIlwwMDBcdTAxMkFcMDAwXHUwMTJCXDAwMFx1MDEyQ1wwMDBcdTAxMkRcMDAwXHUwMTJFXDAwMFx1MDEyRlwwMDBcdTAxMzAiKworICAgICAgICAiXDAwMFx1MDEzMVwwMDBcdTAxMzJcMDAwXHUwMTMzXDAwMFx1MDEzNFwwMDBcdTAxMzVcMDAwXHUwMTM2XDAwMFx1MDEzNyIrCisgICAgICAgICJcMDAwXHUwMTM4XDAwMFx1MDE2Q1wwMDBcdTAxN0NcMDAwXHUwMUFEXDAwMFx1MDFBRlwwMDBcMDAzXDAwMFwwMDFcMDAwIisKKyAgICAgICAgIlx1MDEzQVwwMDBcMDA0XDAwMFwwMDFcMDAwXHUwMEM3XDAwMFwwMDVcMDAwXDAwMVwwMDBcdTAwRDFcMDAwXDAwNlwwMDAiKworICAgICAgICAiXDAwMVwwMDA8XDAwMFwwMTBcMDAwXDAwMVwwMDA7XDAwMFwwMTNcMDAwXDAwMVwwMDBcdTAxNjFcMDAwXDAxNFwwMDBcMDAyIisKKyAgICAgICAgIlwwMDBcdTAwRkJcMDAwXHUwMTdGXDAwMFwwMTVcMDAwXDAwMVwwMDBSXDAwMFwwMTZcMDAwXDAwMVwwMDAlXDAwMFwwMjAiKworICAgICAgICAiXDAwMFwwMDdcMDAwXHUwMEFCXDAwMFx1MDBBQ1wwMDBcdTAwQURcMDAwXHUwMEFFXDAwMFx1MDBBRlwwMDBcdTAwQjBcMDAwIisKKyAgICAgICAgIlx1MDBCMVwwMDBcMDIxXDAwMFwwMDdcMDAwXDAwMlwwMDBGXDAwMEpcMDAwT1wwMDBvXDAwMHtcMDAwXHUwMDk2XDAwMCIrCisgICAgICAgICJcMDIyXDAwMFwwMDFcMDAwXHUwMTlFXDAwMFwwMjNcMDAwXDAwMVwwMDBcdTAxNjZcMDAwXDAyNFwwMDBcMDE0XDAwMFwwMDAiKworICAgICAgICAiXDAwMFwwMDFcMDAwXHUwMTA3XDAwMFx1MDEwOFwwMDBcdTAxMDlcMDAwXHUwMTBBXDAwMFx1MDEwQlwwMDBcdTAxMENcMDAwIisKKyAgICAgICAgIlx1MDEwRFwwMDBcdTAxMEVcMDAwXHUwMTBGXDAwMFx1MDExMFwwMDBcMDI2XDAwMFwwMDFcMDAwPlwwMDBcMDMxXDAwMCIrCisgICAgICAgICJcMDAxXDAwMFx1MDBCQ1wwMDAgXDAwMFwwMDFcMDAwXHUwMTVCXDAwMCFcMDAwXDAwMVwwMDBAXDAwMCNcMDAwXDAwMlwwMDAiKworICAgICAgICAiXHUwMEM1XDAwMFx1MDExMlwwMDAkXDAwMFwwMDFcMDAwXHUwMTQwXDAwMCVcMDAwXDAwMVwwMDAyXDAwMCZcMDAwXDAwMSIrCisgICAgICAgICJcMDAwXHUwMTVFXDAwMCdcMDAwXDAwMVwwMDBcdTAwQkJcMDAwKFwwMDBcMDAxXDAwMFwwMjBcMDAwKVwwMDBcMDAxXDAwMCIrCisgICAgICAgICIzXDAwMCxcMDAwXDAwMVwwMDBcdTAwRkRcMDAwLVwwMDBcMDAxXDAwMFx1MDBDMFwwMDAuXDAwMFwwMDFcMDAwclwwMDAiKworICAgICAgICAiMVwwMDBcMDE2XDAwMD1cMDAwQVwwMDBDXDAwMFFcMDAwWVwwMDBbXDAwMHZcMDAweFwwMDBcdTAwODhcMDAwXHUwMDhGIisKKyAgICAgICAgIlwwMDBcdTAwOTBcMDAwXHUwMDk0XDAwMFx1MDA5OVwwMDBcdTAxMTFcMDAwMlwwMDBcMDAxXDAwMFx1MDA4NFwwMDAzXDAwMCIrCisgICAgICAgICJcMDAxXDAwMFx1MDBGMlwwMDA2XDAwMFwwMDFcMDAwXDAzM1wwMDA4XDAwMFwwMDFcMDAwXHUwMTUxXDAwMDlcMDAwXDAwMSIrCisgICAgICAgICJcMDAwQlwwMDBAXDAwMFwwMjdcMDAwR1wwMDBTXDAwMFRcMDAwWFwwMDBcMTM0XDAwMF5cMDAwZVwwMDBsXDAwMG1cMDAwIisKKyAgICAgICAgIlx1MDA4MlwwMDBcdTAwODZcMDAwXHUwMDhBXDAwMFx1MDA5MlwwMDBcdTAwOTNcMDAwXHUwMDk1XDAwMFx1MDA5QlwwMDAiKworICAgICAgICAiXHUwMEEwXDAwMFx1MDBBM1wwMDBcdTAwQTZcMDAwXHUwMEE3XDAwMFx1MDBBOFwwMDBcdTAwQUFcMDAwXHUwMTE1XDAwMCIrCisgICAgICAgICJCXDAwMFwwMDFcMDAwXHUwMTczXDAwMENcMDAwXDAwMlwwMDAhXDAwMCZcMDAwRVwwMDBcMDAxXDAwMFwwMTNcMDAwRlwwMDAiKworICAgICAgICAiXDAwMVwwMDBcMDE3XDAwMEdcMDAwXDAwMVwwMDBcdTAxNkJcMDAwSFwwMDBcMDAxXDAwMFwwMDVcMDAwSlwwMDBcMDAxIisKKyAgICAgICAgIlwwMDBcdTAxQTNcMDAwS1wwMDBcMDAyXDAwMFx1MDA5N1wwMDBcdTAxODhcMDAwTFwwMDBcMDAxXDAwMFwwMzBcMDAwTSIrCisgICAgICAgICJcMDAwXDAwNlwwMDBcdTAwQzJcMDAwXHUwMENBXDAwMFx1MDBENFwwMDBcdTAwRUNcMDAwXHUwMEY2XDAwMFx1MDExN1wwMDAiKworICAgICAgICAiTlwwMDBcMDAxXDAwMERcMDAwUVwwMDBcMDAxXDAwMFBcMDAwVFwwMDBcMDAxXDAwMGZcMDAwVVwwMDBcMDAxXDAwMFx1MDBGRiIrCisgICAgICAgICJcMDAwV1wwMDBcMDAxXDAwMFx1MDE3MlwwMDBYXDAwMFwwMDFcMDAwXHUwMERFXDAwMFlcMDAwXDAwMVwwMDBcdTAxNTYiKworICAgICAgICAiXDAwMGRcMDAwXDAwMVwwMDBcdTAxM0VcMDAwaVwwMDBcMDAxXDAwMFwwMjdcMDAwalwwMDBcMDAxXDAwMFx1MDE0NFwwMDAiKworICAgICAgICAibFwwMDBcMDAxXDAwMFdcMDAwblwwMDBcMDAxXDAwMFx1MDA5OFwwMDB5XDAwMFwwMDFcMDAwXDAxMFwwMDBcdTAwODJcMDAwIisKKyAgICAgICAgIlwwMDJcMDAwY1wwMDBcdTAxOEVcMDAwXHUwMDg0XDAwMFwwMDFcMDAwXHUwMTYwXDAwMFx1MDA4NlwwMDBcMDAyXDAwMCIrCisgICAgICAgICJcMDAzXDAwMFwwMjFcMDAwXHUwMDg3XDAwMFwwMDFcMDAwXDAzMVwwMDBcdTAwOTFcMDAwXDAwMVwwMDBcMDExXDAwMFx1MDA5MiIrCisgICAgICAgICJcMDAwXDAwM1wwMDBcMDIzXDAwMFx1MDBGRVwwMDBcdTAxNEZcMDAwXHUwMDkzXDAwMFwwMDJcMDAwXDAwN1wwMDBcdTAxMTgiKworICAgICAgICAiXDAwMFx1MDBBOFwwMDBcMDAxXDAwMFx1MDE0N1wwMDBcdTAwQTlcMDAwXDAwMVwwMDBcdTAxOENcMDAwXHUwMEFBXDAwMCIrCisgICAgICAgICJcMDAxXDAwMFx1MDEwNlwwMDBcdTAwQUNcMDAwXDAwNFwwMDBcdTAxOTVcMDAwXHUwMUExXDAwMFx1MDFBOFwwMDBcdTAxQUIiKworICAgICAgICAiXDAwMFx1MDBBRVwwMDBcMDAxXDAwMFx1MDEwMFwwMDBcdTAwQjFcMDAwXDAwMlwwMDBcdTAxMTlcMDAwXHUwMTU1XDAwMCIrCisgICAgICAgICJcdTAwQzBcMDAwXDAwMVwwMDAjXDAwMFx1MDBDMVwwMDBcMDAyXDAwMFx1MDEzQ1wwMDBcdTAxNERcMDAwXHUwMEMzXDAwMCIrCisgICAgICAgICJcMDAxXDAwMGBcMDAwXHUwMEM0XDAwMFwwMDFcMDAwXHUwMEYwXDAwMFx1MDBDNVwwMDBcMDAxXDAwMEtcMDAwXHUwMEM3IisKKyAgICAgICAgIlwwMDBcMDAxXDAwMFwwMDZcMDAwXHUwMEM4XDAwMFwwMDFcMDAwXHUwMTQ2XDAwMFx1MDBDQlwwMDBcMDAzXDAwMF1cMDAwIisKKyAgICAgICAgIlx1MDA5QVwwMDBcdTAwQTJcMDAwXHUwMENDXDAwMFwwMDFcMDAwXDAxNFwwMDBcdTAwQ0RcMDAwXDAwMVwwMDBcMDI0XDAwMCIrCisgICAgICAgICJcdTAwQ0ZcMDAwXDAwMVwwMDBhXDAwMFx1MDBEMFwwMDBcMDAxXDAwMChcMDAwXHUwMEQxXDAwMFwwMDFcMDAwXHUwMTNCIisKKyAgICAgICAgIlwwMDBcdTAwRDJcMDAwXDAwMVwwMDBcdTAxMDRcMDAwXHUwMEQzXDAwMFwwMDFcMDAwYlwwMDBcdTAwRDRcMDAwXDAwMSIrCisgICAgICAgICJcMDAwXHUwMTkxXDAwMFx1MDBENlwwMDBcMDAxXDAwMFwwMTVcMDAwXHUwMEQ4XDAwMFwwMDFcMDAwZFwwMDBcdTAwRUEiKworICAgICAgICAiXDAwMFwwMDFcMDAwXHUwMENCXDAwMFx1MDBFRFwwMDBcMDAxXDAwMFx1MDBBMVwwMDBcdTAwRjFcMDAwXDAwMVwwMDBcdTAxNjkiKworICAgICAgICAiXDAwMFx1MDBGM1wwMDBcMDAxXDAwMFx1MDA4RFwwMDBcdTAwRjRcMDAwXDAwMVwwMDBcdTAxNDJcMDAwXHUwMTAzXDAwMCIrCisgICAgICAgICJcMDAzXDAwMFx1MDBDRVwwMDBcdTAwQ0ZcMDAwXHUwMEY0XDAwMFx1MDEwNFwwMDBcMDAxXDAwMFx1MDE0NVwwMDBcdTAxMEIiKworICAgICAgICAiXDAwMFwwMDFcMDAwXHUwMEQwXDAwMFx1MDEwRFwwMDBcMDAyXDAwMFx1MDBDMVwwMDBcdTAxNkZcMDAwXHUwMTBFXDAwMCIrCisgICAgICAgICJcMDAxXDAwMFx1MDE3MVwwMDBcdTAxMTBcMDAwXDAwMVwwMDBcdTAwQkFcMDAwXHUwMTExXDAwMFwwMDFcMDAwXHUwMEYxIisKKyAgICAgICAgIlwwMDBcdTAxMTJcMDAwXDAwMVwwMDBcdTAxMDNcMDAwXHUwMTEzXDAwMFwwMDFcMDAwXHUwMTU4XDAwMFx1MDEyQ1wwMDAiKworICAgICAgICAiXDAwMVwwMDBuXDAwMFx1MDEyRVwwMDBcMDAxXDAwMFx1MDBCNVwwMDBcdTAxMkZcMDAwXDAwMlwwMDBcdTAwRjNcMDAwIisKKyAgICAgICAgIlx1MDE3QlwwMDBcdTAxNDRcMDAwXDAwMVwwMDAuXDAwMFx1MDE0NlwwMDBcMDAxXDAwMFx1MDBCRlwwMDBcdTAxNDdcMDAwIisKKyAgICAgICAgIlwwMDFcMDAwXHUwMEUxXDAwMFx1MDE0OFwwMDBcMDAzXDAwMFx1MDE4QVwwMDBcdTAxOTRcMDAwXHUwMUE2XDAwMFx1MDE0QyIrCisgICAgICAgICJcMDAwXDAwMVwwMDBcdTAxNzRcMDAwXHUwMTREXDAwMFwwMDFcMDAwXHUwMDlDXDAwMFx1MDE0RlwwMDBcMDAxXDAwMFx1MDBFMiIrCisgICAgICAgICJcMDAwXHUwMTUxXDAwMFwwMDFcMDAwXHUwMEVCXDAwMFx1MDE1NlwwMDBcMDAxXDAwMFx1MDBEOVwwMDBcdTAxNThcMDAwIisKKyAgICAgICAgIlwwMDFcMDAwTFwwMDBcdTAxNTlcMDAwXDAwM1wwMDBcdTAwQjRcMDAwXHUwMEI3XDAwMFx1MDBCOFwwMDBcdTAxNjBcMDAwIisKKyAgICAgICAgIlwwMDFcMDAwXHUwMEY3XDAwMFx1MDE2MVwwMDBcMDAxXDAwMFx1MDBCRVwwMDBcdTAxNjJcMDAwXDAwMVwwMDBcdTAwOUQiKworICAgICAgICAiXDAwMFx1MDE2OFwwMDBcMDAxXDAwMFx1MDE2NFwwMDBcdTAxNkFcMDAwXDAwMVwwMDBcdTAwQzNcMDAwXHUwMTcxXDAwMCIrCisgICAgICAgICJcMDAxXDAwMC1cMDAwXHUwMTcyXDAwMFwwMDFcMDAwKlwwMDBcdTAxNzNcMDAwXDAwMVwwMDBcdTAxNjdcMDAwXHUwMTc0IisKKyAgICAgICAgIlwwMDBcMDAxXDAwMFx1MDE0RVwwMDBcdTAxNzVcMDAwXDAwMVwwMDBcdTAxNTdcMDAwXHUwMTc4XDAwMFwwMDFcMDAwNiIrCisgICAgICAgICJcMDAwXHUwMTgwXDAwMFwwMDFcMDAwXDAyMlwwMDBcdTAxODJcMDAwXDAwMVwwMDBcdTAxNTJcMDAwXHUwMTgzXDAwMFwwMDIiKworICAgICAgICAiXDAwMFx1MDE0M1wwMDBcdTAxNjJcMDAwXHUwMTg2XDAwMFwwMDFcMDAwXHUwMTcwXDAwMFx1MDE4N1wwMDBcMDAyXDAwMCIrCisgICAgICAgICJcdTAxOTZcMDAwXHUwMTk3XDAwMFx1MDE4QVwwMDBcMDAxXDAwMFx1MDE1RFwwMDBcdTAxOEJcMDAwXDAwMlwwMDBcMDEyIisKKyAgICAgICAgIlwwMDA1XDAwMFx1MDE4Q1wwMDBcMDAxXDAwMFx1MDBFNFwwMDBcdTAxOERcMDAwXDAwMlwwMDBcdTAwQ0NcMDAwXHUwMEY1IisKKyAgICAgICAgIlwwMDBcdTAxOEVcMDAwXDAwMVwwMDBcdTAwREFcMDAwXHUwMThGXDAwMFwwMDFcMDAwXHUwMUE0XDAwMFx1MDE5MFwwMDAiKworICAgICAgICAiXDAwMVwwMDB5XDAwMFx1MDE5MVwwMDBcMDAxXDAwMDFcMDAwXHUwMTkyXDAwMFwwMDFcMDAwXHUwMDgzXDAwMFx1MDE5MyIrCisgICAgICAgICJcMDAwXDAwMVwwMDBcdTAxNTBcMDAwXHUwMTk0XDAwMFwwMDFcMDAwXHUwMTc4XDAwMFx1MDE5NVwwMDBcMDAxXDAwMFx1MDE3NyIrCisgICAgICAgICJcMDAwXHUwMTk2XDAwMFwwMDFcMDAwXDAxNlwwMDBcdTAxOTdcMDAwXDAxMFwwMDBIXDAwME5cMDAwZ1wwMDB6XDAwMH0iKworICAgICAgICAiXDAwMH5cMDAwXHUwMDgwXDAwMFx1MDBBNFwwMDBcdTAxOThcMDAwXDAwMlwwMDBcdTAwRDdcMDAwXHUwMEQ4XDAwMFx1MDE5OSIrCisgICAgICAgICJcMDAwXDAwMVwwMDApXDAwMFx1MDFBMFwwMDBcMDAxXDAwMDhcMDAwXHUwMUEyXDAwMFwwMDFcMDAwXHUwMTlEXDAwMFx1MDFBNCIrCisgICAgICAgICJcMDAwXDAwMVwwMDAwXDAwMFx1MDFBNVwwMDBcMDAxXDAwMFx1MDE5Q1wwMDBcdTAxQTZcMDAwXDAwMVwwMDBcMDQyXDAwMCIrCisgICAgICAgICJcdTAxQThcMDAwXDAwMVwwMDB3XDAwMFx1MDFBQlwwMDBcMDAxXDAwMFx1MDEzOVwwMDBcdTAxQUVcMDAwXDAwMVwwMDAiKworICAgICAgICAiXHUwMTU0XDAwMFx1MDFBRlwwMDBcMDAxXDAwMFx1MDBENVwwMDBcdTAxQjFcMDAwXDAwMVwwMDBcdTAxOUFcMDAwXHUwMUI0IisKKyAgICAgICAgIlwwMDBcMDAxXDAwMFx1MDE5QlwwMDBcdTAxQjlcMDAwXDAwM1wwMDBcdTAxODBcMDAwXHUwMTg2XDAwMFx1MDE4N1wwMDAiKworICAgICAgICAiXHUwMUNDXDAwMFwwMDFcMDAwXHUwMEREXDAwMFx1MDFFMFwwMDBcMDAxXDAwMFx1MDA4OVwwMDBcdTAxRTRcMDAwXDAwMSIrCisgICAgICAgICJcMDAwc1wwMDBcdTAxRTVcMDAwXDAwM1wwMDBcdTAxOEZcMDAwXHUwMTk4XDAwMFx1MDFBNVwwMDBcdTAxRTZcMDAwXDAwMSIrCisgICAgICAgICJcMDAwXHUwMUEyXDAwMFx1MDFFN1wwMDBcMDAxXDAwMFx1MDBEQ1wwMDBcdTAxRUFcMDAwXDAwMlwwMDBcdTAwRDNcMDAwIisKKyAgICAgICAgIlx1MDE4MVwwMDBcdTAxRUJcMDAwXDAwMVwwMDBcdTAxNjhcMDAwXHUwMUVDXDAwMFwwMDFcMDAwXHUwMDdGXDAwMFx1MDFFRCIrCisgICAgICAgICJcMDAwXDAwMVwwMDBcdTAxQTBcMDAwXHUwMUYxXDAwMFwwMDJcMDAwXHUwMDkxXDAwMFx1MDE4M1wwMDBcdTAxRjJcMDAwIisKKyAgICAgICAgIlwwMDFcMDAwXHUwMEM5XDAwMFx1MDFGM1wwMDBcMDAzXDAwMFx1MDBGQ1wwMDBcdTAxMDJcMDAwXHUwMTRCXDAwMFx1MDFGNiIrCisgICAgICAgICJcMDAwXDAwMVwwMDBcdTAxOUZcMDAwXHUwMUY4XDAwMFwwMDFcMDAwP1wwMDBcdTAyMDBcMDAwXDAwMVwwMDBcdTAwRTMiKworICAgICAgICAiXDAwMFx1MDIyNFwwMDBcMDAxXDAwMFx1MDE3QVwwMDBcdTAyMkVcMDAwXDAwMVwwMDBcdTAxNDFcMDAwXHUwMjM0XDAwMCIrCisgICAgICAgICJcMDE1XDAwMFx1MDBCNlwwMDBcdTAwQ0RcMDAwXHUwMEQyXDAwMFx1MDBENlwwMDBcdTAwREJcMDAwXHUwMERGXDAwMFx1MDBFMCIrCisgICAgICAgICJcMDAwXHUwMEY4XDAwMFx1MDBGOVwwMDBcdTAwRkFcMDAwXHUwMTQ5XDAwMFx1MDE1M1wwMDBcdTAxNTlcMDAwXHUwMjM2IisKKyAgICAgICAgIlwwMDBcMDAxXDAwMCBcMDAwXHUwMjQwXDAwMFwwMDFcMDAwXHUwMEU1XDAwMFx1MDI0MVwwMDBcMDAyXDAwMFx1MDE5MCIrCisgICAgICAgICJcMDAwXHUwMUFDXDAwMFx1MDI0MlwwMDBcMDAxXDAwMFx1MDE3NlwwMDBcdTAyNDNcMDAwXDAwMVwwMDBcMDM3XDAwMFx1MDI0NCIrCisgICAgICAgICJcMDAwXDAwMVwwMDBcdTAxNUZcMDAwXHUwMjQ2XDAwMFwwMDFcMDAwXHUwMEVEXDAwMFx1MDI0N1wwMDBcMDAxXDAwMFx1MDEwNSIrCisgICAgICAgICJcMDAwXHUwMjQ4XDAwMFwwMDFcMDAwXHUwMTRDXDAwMFx1MDI0OVwwMDBcMDAyXDAwMFx1MDBCMlwwMDBcdTAxMDFcMDAwIisKKyAgICAgICAgIlx1MDI0QVwwMDBcMDAxXDAwMFx1MDEzRlwwMDBcdTAyNEJcMDAwXDAwMVwwMDBcMDMyXDAwMFx1MDI0Q1wwMDBcMDAxXDAwMCIrCisgICAgICAgICJcdTAxNUFcMDAwXHUwMjREXDAwMFwwMDFcMDAwXDAyNVwwMDBcdTAyNEVcMDAwXDAwMVwwMDAsXDAwMFx1MDI1MVwwMDAiKworICAgICAgICAiXDAwMVwwMDBcdTAwOEJcMDAwXHUwMjUzXDAwMFwwMDFcMDAwNFwwMDBcdTAyNTVcMDAwXDAwMVwwMDBaXDAwMFx1MDI1OCIrCisgICAgICAgICJcMDAwXDAwMVwwMDBcdTAwQzRcMDAwXHUwMjU5XDAwMFwwMDFcMDAwK1wwMDBcdTAyNjJcMDAwXDAwMVwwMDBfXDAwMFx1MDI2MyIrCisgICAgICAgICJcMDAwXDAwMVwwMDAvXDAwMFx1MDI2NVwwMDBcMDAxXDAwMFx1MDE3NVwwMDBcdTAyNjZcMDAwXDAwMVwwMDAkXDAwMFx1MDI2NyIrCisgICAgICAgICJcMDAwXDAwMVwwMDBcdTAwQkRcMDAwXHUwMjY5XDAwMFwwMDFcMDAwXHUwMEM4XDAwMFx1MDI2QVwwMDBcMDAxXDAwMFx1MDE4QiIrCisgICAgICAgICJcMDAwXHUwMjZDXDAwMFwwMDFcMDAwXHUwMEI5XDAwMFx1MDI2RFwwMDBcMDAxXDAwMDdcMDAwXHUwMjZFXDAwMFwwMDEiKworICAgICAgICAiXDAwMFx1MDFBN1wwMDBcdTAyNkZcMDAwXDAwMVwwMDBcdTAwQzZcMDAwXHUwMjcxXDAwMFwwMDFcMDAwXHUwMTQ4XDAwMCIrCisgICAgICAgICJcdTAyNzNcMDAwXDAwMVwwMDBcdTAwOEVcMDAwXHUwMjc1XDAwMFwwMDFcMDAwXHUwMThEXDAwMFx1MDI3NlwwMDBcMDAxIisKKyAgICAgICAgIlwwMDBcdTAwRUVcMDAwXHUwMjc5XDAwMFwwMDFcMDAwXDAyNlwwMDBcdTAyODBcMDAwXDAwNFwwMDBcdTAxNEFcMDAwXHUwMTVDIisKKyAgICAgICAgIlwwMDBcdTAxNjNcMDAwXHUwMTZBXDAwMFx1MDI4NlwwMDBcMDAxXDAwMFwwMzZcMDAwXHUwMjhDXDAwMFwwMDNcMDAwXHUwMTkzIisKKyAgICAgICAgIlwwMDBcdTAxOTlcMDAwXHUwMUE5XDAwMFx1MDI5MlwwMDBcMDM0XDAwMFwwMDRcMDAwOVwwMDA6XDAwMEVcMDAwTVwwMDAiKworICAgICAgICAiVVwwMDBWXDAwMGhcMDAwaVwwMDBqXDAwMGtcMDAwcFwwMDBxXDAwMHRcMDAwdVwwMDB8XDAwMFx1MDA4NVwwMDBcdTAwODciKworICAgICAgICAiXDAwMFx1MDA4Q1wwMDBcdTAwQTlcMDAwXHUwMTE2XDAwMFx1MDExQlwwMDBcdTAxNkRcMDAwXHUwMTZFXDAwMFx1MDE3RSIrCisgICAgICAgICJcMDAwXHUwMTgyXDAwMFx1MDE4NFwwMDBcdTAxOTJcMDAwXHUwMjk4XDAwMFwwMDFcMDAwXHUwMDgxXDAwMFx1MDI5OVwwMDAiKworICAgICAgICAiXDAwMlwwMDBcdTAwRUFcMDAwXHUwMEVGXDAwMFx1MDJBMFwwMDBcMDAxXDAwMFx1MDE2NVwwMDBcdTAyQTJcMDAwXDAwMSIrCisgICAgICAgICJcMDAwXHUwMDlGXDAwMFx1MDJBNFwwMDBcMDAxXDAwMElcMDAwXHUwMkE2XDAwMFwwMDFcMDAwXHUwMEE1XDAwMFx1MDJBOCIrCisgICAgICAgICJcMDAwXDAwMVwwMDBcdTAwOUVcMDAwXHUwMkFEXDAwMFwwMDJcMDAwXHUwMEU5XDAwMFx1MDFBRVwwMDBcdTAyQjRcMDAwIisKKyAgICAgICAgIlwwMDFcMDAwXHUwMTg5XDAwMFx1MDJDNVwwMDBcMDAxXDAwMFx1MDFBQVwwMDBcdTAyRDJcMDAwXDAwMlwwMDBcdTAxN0QiKworICAgICAgICAiXDAwMFx1MDE4NVwwMDBcdTAzMDRcMDAwXDAwMVwwMDBcdTAwQjNcMDAwXHUwMzEzXDAwMFwwMDFcMDAwXHUwMTc5XDAwMCIrCisgICAgICAgICJcdTAzMTRcMDAwXDAwMVwwMDBcdTAxM0RcMDAwXHUwMzIwXDAwMFwwMDFcMDAwXDAzNVwwMDBcdTAzMkNcMDAwXDAwMVwwMDAiKworICAgICAgICAiJ1wwMDBcdTAzMzZcMDAwXDAwMlwwMDBcMDM0XDAwMFx1MDExMyIKKyAgICAgICAgOworCisgICAgLy8gRU5EIEdFTkVSQVRFRCBTT1VSQ0UgQ09ERQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgc3RhdGljIHsKKyAgICAgICAgLy8gVW5wYWNrIHRoZSBpbnRbXSBEQVRBIGFycmF5CisgICAgICAgIERBVEEgPSBVdGlsaXR5LlJMRVN0cmluZ1RvSW50QXJyYXkoREFUQV9STEUpOworCisgICAgICAgIC8vIFVucGFjayB0aGUgaW50W10gSU5ERVhfQllfT0ZGU0VUIGFycmF5CisgICAgICAgIElOREVYX0JZX09GRlNFVCA9IFV0aWxpdHkuUkxFU3RyaW5nVG9JbnRBcnJheShJTkRFWF9CWV9PRkZTRVRfUkxFKTsKKworICAgICAgICAvLyBVbnBhY2sgdGhlIGludFtdIElOREVYX0JZX0NPVU5UUlkgYXJyYXkKKyAgICAgICAgSU5ERVhfQllfQ09VTlRSWSA9IFV0aWxpdHkuUkxFU3RyaW5nVG9JbnRBcnJheShJTkRFWF9CWV9DT1VOVFJZX1JMRSk7CisKKyAgICAgICAgLy8gQ29uc3RydWN0IHRoZSBpbmRleCBieSBuYW1lLiAgV2UgdW5wYWNrIHRoaXMgYXJyYXkgYW5kIHRoZW4KKyAgICAgICAgLy8gZGlzY2FyZCBpdCBhZnRlciB3ZSdyZSBkb25lIHdpdGggaXQuCisgICAgICAgIGludFtdIGluZGV4X2J5X25hbWVfYXJyYXkgPSBVdGlsaXR5LlJMRVN0cmluZ1RvSW50QXJyYXkoSU5ERVhfQllfTkFNRV9BUlJBWV9STEUpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8SURTLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBJTkRFWF9CWV9OQU1FLnB1dChJRFNbaV0sIG5ldyBJbnRlZ2VyKGluZGV4X2J5X25hbWVfYXJyYXlbaV0pKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL1ZhbHVlSXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL1ZhbHVlSXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYjJlNzk5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVmFsdWVJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMTA0IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICRTb3VyY2U6IC94c3JsL05zdm4vaWN1L2ljdTRqL3NyYy9jb20vaWJtL2ljdS91dGlsL1ZhbHVlSXRlcmF0b3IuamF2YSx2ICQKKyogJERhdGU6IDIwMDIvMDQvMDUgMDE6NDk6MDMgJAorKiAkUmV2aXNpb246IDEuOCAkCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworLyoqCisgKiA8cD5JbnRlcmZhY2UgZm9yIGVuYWJsaW5nIGl0ZXJhdGlvbiBvdmVyIHNldHMgb2YgPGludCwgT2JqZWN0Piwgd2hlcmUKKyAqIGludCBpcyB0aGUgc29ydGVkIGludGVnZXIgaW5kZXggaW4gYXNjZW5kaW5nIG9yZGVyIGFuZCBPYmplY3QsIGl0cyAKKyAqIGFzc29jaWF0ZWQgdmFsdWUuPC9wPgorICogPHA+VGhlIFZhbHVlSXRlcmF0b3IgYWxsb3dzIGl0ZXJhdGlvbnMgb3ZlciBpbnRlZ2VyIGluZGV4ZXMgaW4gdGhlIHJhbmdlIAorICogb2YgSW50ZWdlci5NSU5fVkFMVUUgdG8gSW50ZWdlci5NQVhfVkFMVUUgaW5jbHVzaXZlLiBJbXBsZW1lbnRhdGlvbnMgb2YgCisgKiBWYWx1ZUl0ZXJhdG9yIHNob3VsZCBzcGVjaWZ5IHRoZWlyIG93biBtYXhpbXVtIHN1YnJhbmdlIHdpdGhpbiB0aGUgYWJvdmUgCisgKiByYW5nZSB0aGF0IGlzIG1lYW5pbmdmdWwgdG8gaXRzIGFwcGxpY2F0aW9ucy48L3A+CisgKiA8cD5Nb3N0IGltcGxlbWVudGF0aW9ucyB3aWxsIGJlIGNyZWF0ZWQgYnkgZmFjdG9yeSBtZXRob2RzLCBzdWNoIGFzIHRoZQorICogY2hhcmFjdGVyIG5hbWUgaXRlcmF0b3IgaW4gVUNoYXJhY3Rlci5nZXROYW1lSXRlcmF0b3IuIFNlZSBleGFtcGxlIGJlbG93LgorICogPC9wPgorICogRXhhbXBsZSBvZiB1c2U6PGJyPgorICogPHByZT4KKyAqIFZhbHVlSXRlcmF0b3IgaXRlcmF0b3IgPSBVQ2hhcmFjdGVyLmdldE5hbWVJdGVyYXRvcigpOworICogVmFsdWVJdGVyYXRvci5FbGVtZW50IHJlc3VsdCA9IG5ldyBWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQoKTsKKyAqIGl0ZXJhdG9yLnNldFJhbmdlKFVDaGFyYWN0ZXIuTUlOX1ZBTFVFLCBVQ2hhcmFjdGVyLk1BWF9WQUxVRSk7CisgKiB3aGlsZSAoaXRlcmF0b3IubmV4dChyZXN1bHQpKSB7CisgKiAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb2RlcG9pbnQgXFx1IiArIAorICogICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKHJlc3VsdC5pbnRlZ2VyKSArIAorICogICAgICAgICAgICAgICAgICAgICAgICAiIGhhcyB0aGUgY2hhcmFjdGVyIG5hbWUgIiArIChTdHJpbmcpcmVzdWx0LnZhbHVlKTsKKyAqIH0KKyAqIDwvcHJlPgorICogQGF1dGhvciBzeW53ZWUKKyAqIEBzaW5jZSByZWxlYXNlIDIuMSwgTWFyY2ggNXRoIDIwMDIKKyAqIEBkcmFmdCAyLjEKKyAqLworcHVibGljIGludGVyZmFjZSBWYWx1ZUl0ZXJhdG9yCit7CisgICAgLy8gcHVibGljIGlubmVyIGNsYXNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICogPHA+VGhlIHJldHVybiByZXN1bHQgY29udGFpbmVyIG9mIGVhY2ggaXRlcmF0aW9uLiBTdG9yZXMgdGhlIG5leHQgCisgICAgKiBpbnRlZ2VyIGluZGV4IGFuZCBpdHMgYXNzb2NpYXRlZCB2YWx1ZSBPYmplY3QuPC9wPiAKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgRWxlbWVudAorICAgIHsKKyAgICAgICAgLyoqCisgICAgICAgICogSW50ZWdlciBpbmRleCBvZiB0aGUgY3VycmVudCBpdGVyYXRpb24KKyAgICAgICAgKiBAZHJhZnQgMi4xCisgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgaW50ZWdlcjsKKyAgICAgICAgLyoqCisgICAgICAgICogR2V0cyB0aGUgT2JqZWN0IHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUgaW50ZWdlciBpbmRleC4KKyAgICAgICAgKiBAZHJhZnQgMi4xCisgICAgICAgICovIAorICAgICAgICBwdWJsaWMgT2JqZWN0IHZhbHVlOworICAgIH0KKyAgICAKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgKiA8cD5HZXRzIHRoZSBuZXh0IHJlc3VsdCBmb3IgdGhpcyBpdGVyYXRpb24gYW5kIHJldHVybnMgCisgICAgKiB0cnVlIGlmIHdlIGFyZSBub3QgYXQgdGhlIGVuZCBvZiB0aGUgaXRlcmF0aW9uLCBmYWxzZSBvdGhlcndpc2UuPC9wPgorICAgICogPHA+SWYgdGhlIHJldHVybiBib29sZWFuIGlzIGEgZmFsc2UsIHRoZSBjb250ZW50cyBvZiBlbGVtZW50cyB3aWxsIG5vdAorICAgICogYmUgdXBkYXRlZC48L3A+CisgICAgKiBAcGFyYW0gZWxlbWVudCBmb3Igc3RvcmluZyB0aGUgcmVzdWx0IGluZGV4IGFuZCB2YWx1ZQorICAgICogQHJldHVybiB0cnVlIGlmIHdlIGFyZSBub3QgYXQgdGhlIGVuZCBvZiB0aGUgaXRlcmF0aW9uLCBmYWxzZSBvdGhlcndpc2UuCisgICAgKiBAc2VlIEVsZW1lbnQKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHB1YmxpYyBib29sZWFuIG5leHQoRWxlbWVudCBlbGVtZW50KTsKKyAgICAKKyAgICAvKioKKyAgICAqIDxwPlJlc2V0cyB0aGUgaXRlcmF0b3IgdG8gc3RhcnQgaXRlcmF0aW5nIGZyb20gdGhlIGludGVnZXIgaW5kZXggCisgICAgKiBJbnRlZ2VyLk1JTl9WQUxVRSBvciBYIGlmIGEgc2V0UmFuZ2UoWCwgWSkgaGFzIGJlZW4gY2FsbGVkIHByZXZpb3VzbHkuCisgICAgKiA8L3A+CisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZXNldCgpOworICAgIAorICAgIC8qKgorICAgICAqIDxwPlJlc3RyaWN0cyB0aGUgcmFuZ2Ugb2YgaW50ZWdlcnMgdG8gaXRlcmF0ZSBhbmQgcmVzZXRzIHRoZSBpdGVyYXRpb24gCisgICAgICogdG8gYmVnaW4gYXQgdGhlIGluZGV4IGFyZ3VtZW50IHN0YXJ0LjwvcD4KKyAgICAgKiA8cD5JZiBzZXRSYW5nZShzdGFydCwgZW5kKSBpcyBub3QgcGVyZm9ybWVkIGJlZm9yZSBuZXh0KGVsZW1lbnQpIGlzIAorICAgICAqIGNhbGxlZCwgdGhlIGl0ZXJhdGlvbiB3aWxsIHN0YXJ0IGZyb20gdGhlIGludGVnZXIgaW5kZXggCisgICAgICogSW50ZWdlci5NSU5fVkFMVUUgYW5kIGVuZCBhdCBJbnRlZ2VyLk1BWF9WQUxVRS48L3A+CisgICAgICogPHA+CisgICAgICogSWYgdGhpcyByYW5nZSBpcyBzZXQgb3V0c2lkZSB0aGUgbWVhbmluZ2Z1bCByYW5nZSBzcGVjaWZpZWQgYnkgdGhlIAorICAgICAqIGltcGxlbWVudGF0aW9uLCBuZXh0KGVsZW1lbnQpIHdpbGwgYWx3YXlzIHJldHVybiBmYWxzZS4KKyAgICAgKiA8L3A+CisgICAgICogQHBhcmFtIHN0YXJ0IGZpcnN0IGludGVnZXIgaW4gcmFuZ2UgdG8gaXRlcmF0ZQorICAgICAqIEBwYXJhbSBsaW1pdCAxIGludGVnZXIgYWZ0ZXIgdGhlIGxhc3QgaW50ZWdlciBpbiByYW5nZSAKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB0aHJvd24gd2hlbiBhdHRlbXB0aW5nIHRvIHNldCBhbiAKKyAgICAgKiAgICAgICAgICAgIGlsbGVnYWwgcmFuZ2UuIEUuZyBsaW1pdCA8PSBzdGFydAorICAgICAqIEBkcmFmdCAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRSYW5nZShpbnQgc3RhcnQsIGludCBlbmQpOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL1ZlcnNpb25JbmZvLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9WZXJzaW9uSW5mby5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQyN2UwZGEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9WZXJzaW9uSW5mby5qYXZhCkBAIC0wLDAgKzEsMzgwIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9pY3UvdXRpbC9WZXJzaW9uSW5mby5qYXZhLHYgJCAKKyAqICREYXRlOiAyMDAyLzEwLzA5IDE4OjI3OjA5ICQgCisgKiAkUmV2aXNpb246IDEuOC4yLjEgJAorICoKKyAqIGppdHRlcmJ1ZyAxNzQxCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKKworLyoqCisgKiBDbGFzcyB0byBzdG9yZSB2ZXJzaW9uIG51bWJlcnMgb2YgdGhlIGZvcm0gbWFqb3IubWlub3IubWlsbGkubWljcm8uCisgKiBAYXV0aG9yIHN5bndlZQorICogQHNpbmNlIE1hcmNoIDEgMjAwMgorICogQGRyYWZ0IDIuMQorICovCitwdWJsaWMgZmluYWwgY2xhc3MgVmVyc2lvbkluZm8KK3sKKyAgICAvLyBwdWJsaWMgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogVW5pY29kZSAxLjAgdmVyc2lvbgorICAgICAqIEBkcmFmdCAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFZlcnNpb25JbmZvIFVOSUNPREVfMV8wOworICAgIC8qKgorICAgICAqIFVuaWNvZGUgMS4wLjEgdmVyc2lvbgorICAgICAqIEBkcmFmdCAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFZlcnNpb25JbmZvIFVOSUNPREVfMV8wXzE7CisgICAgLyoqCisgICAgICogVW5pY29kZSAxLjEuMCB2ZXJzaW9uCisgICAgICogQGRyYWZ0IDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVmVyc2lvbkluZm8gVU5JQ09ERV8xXzFfMDsKKyAgICAvKioKKyAgICAgKiBVbmljb2RlIDEuMS41IHZlcnNpb24KKyAgICAgKiBAZHJhZnQgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBWZXJzaW9uSW5mbyBVTklDT0RFXzFfMV81OworICAgIC8qKgorICAgICAqIFVuaWNvZGUgMi4wIHZlcnNpb24KKyAgICAgKiBAZHJhZnQgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBWZXJzaW9uSW5mbyBVTklDT0RFXzJfMDsgICAgICAgIAorICAgIC8qKgorICAgICAqIFVuaWNvZGUgMi4xLjIgdmVyc2lvbgorICAgICAqIEBkcmFmdCAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFZlcnNpb25JbmZvIFVOSUNPREVfMl8xXzI7CisgICAgLyoqCisgICAgICogVW5pY29kZSAyLjEuNSB2ZXJzaW9uCisgICAgICogQGRyYWZ0IDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVmVyc2lvbkluZm8gVU5JQ09ERV8yXzFfNTsKKyAgICAvKioKKyAgICAgKiBVbmljb2RlIDIuMS44IHZlcnNpb24KKyAgICAgKiBAZHJhZnQgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBWZXJzaW9uSW5mbyBVTklDT0RFXzJfMV84OworICAgIC8qKgorICAgICAqIFVuaWNvZGUgMi4xLjkgdmVyc2lvbgorICAgICAqIEBkcmFmdCAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFZlcnNpb25JbmZvIFVOSUNPREVfMl8xXzk7CisgICAgLyoqCisgICAgICogVW5pY29kZSAzLjAgdmVyc2lvbgorICAgICAqIEBkcmFmdCAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFZlcnNpb25JbmZvIFVOSUNPREVfM18wOworICAgIC8qKgorICAgICAqIFVuaWNvZGUgMy4wLjEgdmVyc2lvbgorICAgICAqIEBkcmFmdCAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFZlcnNpb25JbmZvIFVOSUNPREVfM18wXzE7CisgICAgLyoqCisgICAgICogVW5pY29kZSAzLjEuMCB2ZXJzaW9uCisgICAgICogQGRyYWZ0IDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVmVyc2lvbkluZm8gVU5JQ09ERV8zXzFfMDsKKyAgICAvKioKKyAgICAgKiBVbmljb2RlIDMuMS4xIHZlcnNpb24KKyAgICAgKiBAZHJhZnQgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBWZXJzaW9uSW5mbyBVTklDT0RFXzNfMV8xOworICAgIC8qKgorICAgICAqIFVuaWNvZGUgMy4yIHZlcnNpb24KKyAgICAgKiBAZHJhZnQgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBWZXJzaW9uSW5mbyBVTklDT0RFXzNfMjsKKyAgICAvKioKKyAgICAgKiBJQ1U0SiBjdXJyZW50IHJlbGVhc2UgdmVyc2lvbgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVmVyc2lvbkluZm8gSUNVX1ZFUlNJT047CisgICAgCisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgVmVyc2lvbkluZm8gd2l0aCB0aGUgYXJndW1lbnQgdmVyc2lvbi4KKyAgICAgKiBAcGFyYW0gdmVyc2lvbiB2ZXJzaW9uIFN0cmluZyBpbiB0aGUgZm9ybWF0IG9mICJtYWpvci5taW5vci5taWxsaS5taWNybyIKKyAgICAgKiAgICAgICAgICAgICAgICBvciAibWFqb3IubWlub3IubWlsbGkiIG9yICJtYWpvci5taW5vciIgb3IgIm1ham9yIiwKKyAgICAgKiAgICAgICAgICAgICAgICB3aGVyZSBtYWpvciwgbWlub3IsIG1pbGxpLCBtaWNybyBhcmUgbm9uLW5lZ2F0aXZlIG51bWJlcnMKKyAgICAgKiAgICAgICAgICAgICAgICA8PSAyNTUuIElmIHRoZSB0cmFpbGluZyB2ZXJzaW9uIG51bWJlcnMgYXJlIAorICAgICAqICAgICAgICAgICAgICAgIG5vdCBzcGVjaWZpZWQgdGhleSBhcmUgdGFrZW4gYXMgMHMuIEUuZy4gVmVyc2lvbiAiMy4xIiBpcworICAgICAqICAgICAgICAgICAgICAgIGVxdWl2YWxlbnQgdG8gIjMuMS4wLjAiLgorICAgICAqIEByZXR1cm4gYW4gaW5zdGFuY2Ugb2YgVmVyc2lvbkluZm8gd2l0aCB0aGUgYXJndW1lbnQgdmVyc2lvbi4KKyAgICAgKiBAZXhjZXB0aW9uIHRocm93cyBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gd2hlbiB0aGUgYXJndW1lbnQgdmVyc2lvbiAKKyAgICAgKiAgICAgICAgICAgICAgICBpcyBub3QgaW4gdGhlIHJpZ2h0IGZvcm1hdAorICAgICAqIEBkcmFmdCAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFZlcnNpb25JbmZvIGdldEluc3RhbmNlKFN0cmluZyB2ZXJzaW9uKQorICAgIHsKKyAgICAgICAgaW50IGxlbmd0aCAgPSB2ZXJzaW9uLmxlbmd0aCgpOworICAgICAgICBpbnQgYXJyYXlbXSA9IHswLCAwLCAwLCAwfTsKKyAgICAgICAgaW50IGNvdW50ICAgPSAwOworICAgICAgICBpbnQgaW5kZXggICA9IDA7CisgICAgICAgIAorICAgICAgICB3aGlsZSAoY291bnQgPCA0ICYmIGluZGV4IDwgbGVuZ3RoKSB7CisgICAgICAgICAgICBjaGFyIGMgPSB2ZXJzaW9uLmNoYXJBdChpbmRleCk7CisgICAgICAgICAgICBpZiAoYyA9PSAnLicpIHsKKyAgICAgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGMgLT0gJzAnOworICAgICAgICAgICAgICAgIGlmIChjIDwgMCB8fCBjID4gOSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKElOVkFMSURfVkVSU0lPTl9OVU1CRVJfKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYXJyYXlbY291bnRdICo9IDEwOworICAgICAgICAgICAgICAgIGFycmF5W2NvdW50XSArPSBjOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW5kZXggKys7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGluZGV4ICE9IGxlbmd0aCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkludmFsaWQgdmVyc2lvbiBudW1iZXI6IFN0cmluZyAnIiArIHZlcnNpb24gKyAiJyBleGNlZWRzIHZlcnNpb24gZm9ybWF0Iik7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA0OyBpICsrKSB7CisgICAgICAgICAgICBpZiAoYXJyYXlbaV0gPCAwIHx8IGFycmF5W2ldID4gMjU1KSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbihJTlZBTElEX1ZFUlNJT05fTlVNQkVSXyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShhcnJheVswXSwgYXJyYXlbMV0sIGFycmF5WzJdLCBhcnJheVszXSk7CisgICAgfQorIAorICAgIC8qKiAKKyAgICAgKiBSZXR1cm5zIGFuIGluc3RhbmNlIG9mIFZlcnNpb25JbmZvIHdpdGggdGhlIGFyZ3VtZW50IHZlcnNpb24uCisgICAgICogQHBhcmFtIG1ham9yIG1ham9yIHZlcnNpb24sIG5vbi1uZWdhdGl2ZSBudW1iZXIgPD0gMjU1LgorICAgICAqIEBwYXJhbSBtaW5vciBtaW5vciB2ZXJzaW9uLCBub24tbmVnYXRpdmUgbnVtYmVyIDw9IDI1NS4KKyAgICAgKiBAcGFyYW0gbWlsbGkgbWlsbGkgdmVyc2lvbiwgbm9uLW5lZ2F0aXZlIG51bWJlciA8PSAyNTUuCisgICAgICogQHBhcmFtIG1pY3JvIG1pY3JvIHZlcnNpb24sIG5vbi1uZWdhdGl2ZSBudW1iZXIgPD0gMjU1LgorICAgICAqIEBleGNlcHRpb24gdGhyb3dzIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB3aGVuIGVpdGhlciBhcmd1bWVudHMgYXJlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVnYXRpdmUgb3IgPiAyNTUgCisgICAgICogQGRyYWZ0IDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVmVyc2lvbkluZm8gZ2V0SW5zdGFuY2UoaW50IG1ham9yLCBpbnQgbWlub3IsIGludCBtaWxsaSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWljcm8pCisgICAgeworICAgICAgICAvLyBjaGVja3MgaWYgaXQgaXMgaW4gdGhlIGhhc2htYXAKKyAgICAgICAgLy8gZWxzZQorICAgICAgICBpZiAobWFqb3IgPCAwIHx8IG1ham9yID4gMjU1IHx8IG1pbm9yIDwgMCB8fCBtaW5vciA+IDI1NSB8fCAKKyAgICAgICAgICAgIG1pbGxpIDwgMCB8fCBtaWxsaSA+IDI1NSB8fCBtaWNybyA8IDAgfHwgbWljcm8gPiAyNTUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oSU5WQUxJRF9WRVJTSU9OX05VTUJFUl8pOworICAgICAgICB9CisgICAgICAgIGludCAgICAgdmVyc2lvbiA9IGdldEludChtYWpvciwgbWlub3IsIG1pbGxpLCBtaWNybyk7CisgICAgICAgIEludGVnZXIga2V5ICAgICA9IG5ldyBJbnRlZ2VyKHZlcnNpb24pOworICAgICAgICBPYmplY3QgIHJlc3VsdCAgPSBNQVBfLmdldChrZXkpOworICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBWZXJzaW9uSW5mbyh2ZXJzaW9uKTsKKyAgICAgICAgICAgIE1BUF8ucHV0KGtleSwgcmVzdWx0KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKFZlcnNpb25JbmZvKXJlc3VsdDsKKyAgICB9CisgICAgCisgICAgLyoqIAorICAgICAqIFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgVmVyc2lvbkluZm8gd2l0aCB0aGUgYXJndW1lbnQgdmVyc2lvbi4KKyAgICAgKiBFcXVpdmFsZW50IHRvIGdldEluc3RhbmNlKG1ham9yLCBtaW5vciwgbWlsbGksIDApLgorICAgICAqIEBwYXJhbSBtYWpvciBtYWpvciB2ZXJzaW9uLCBub24tbmVnYXRpdmUgbnVtYmVyIDw9IDI1NS4KKyAgICAgKiBAcGFyYW0gbWlub3IgbWlub3IgdmVyc2lvbiwgbm9uLW5lZ2F0aXZlIG51bWJlciA8PSAyNTUuCisgICAgICogQHBhcmFtIG1pbGxpIG1pbGxpIHZlcnNpb24sIG5vbi1uZWdhdGl2ZSBudW1iZXIgPD0gMjU1LgorICAgICAqIEBleGNlcHRpb24gdGhyb3dzIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB3aGVuIGVpdGhlciBhcmd1bWVudHMgYXJlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVnYXRpdmUgb3IgPiAyNTUgCisgICAgICogQGRyYWZ0IDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVmVyc2lvbkluZm8gZ2V0SW5zdGFuY2UoaW50IG1ham9yLCBpbnQgbWlub3IsIGludCBtaWxsaSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShtYWpvciwgbWlub3IsIG1pbGxpLCAwKTsKKyAgICB9CisgICAgCisgICAgLyoqIAorICAgICAqIFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgVmVyc2lvbkluZm8gd2l0aCB0aGUgYXJndW1lbnQgdmVyc2lvbi4KKyAgICAgKiBFcXVpdmFsZW50IHRvIGdldEluc3RhbmNlKG1ham9yLCBtaW5vciwgMCwgMCkuCisgICAgICogQHBhcmFtIG1ham9yIG1ham9yIHZlcnNpb24sIG5vbi1uZWdhdGl2ZSBudW1iZXIgPD0gMjU1LgorICAgICAqIEBwYXJhbSBtaW5vciBtaW5vciB2ZXJzaW9uLCBub24tbmVnYXRpdmUgbnVtYmVyIDw9IDI1NS4KKyAgICAgKiBAZXhjZXB0aW9uIHRocm93cyBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gd2hlbiBlaXRoZXIgYXJndW1lbnRzIGFyZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5lZ2F0aXZlIG9yID4gMjU1IAorICAgICAqIEBkcmFmdCAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFZlcnNpb25JbmZvIGdldEluc3RhbmNlKGludCBtYWpvciwgaW50IG1pbm9yKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKG1ham9yLCBtaW5vciwgMCwgMCk7CisgICAgfQorICAgIAorICAgIC8qKiAKKyAgICAgKiBSZXR1cm5zIGFuIGluc3RhbmNlIG9mIFZlcnNpb25JbmZvIHdpdGggdGhlIGFyZ3VtZW50IHZlcnNpb24uCisgICAgICogRXF1aXZhbGVudCB0byBnZXRJbnN0YW5jZShtYWpvciwgMCwgMCwgMCkuCisgICAgICogQHBhcmFtIG1ham9yIG1ham9yIHZlcnNpb24sIG5vbi1uZWdhdGl2ZSBudW1iZXIgPD0gMjU1LgorICAgICAqIEBleGNlcHRpb24gdGhyb3dzIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB3aGVuIGVpdGhlciBhcmd1bWVudHMgYXJlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVnYXRpdmUgb3IgPiAyNTUgCisgICAgICogQGRyYWZ0IDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVmVyc2lvbkluZm8gZ2V0SW5zdGFuY2UoaW50IG1ham9yKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKG1ham9yLCAwLCAwLCAwKTsKKyAgICB9CisgCisgICAgLyoqIAorICAgICAqIFJldHVybnMgdGhlIFN0cmluZyByZXByZXNlbnRhdGl2ZSBvZiBWZXJzaW9uSW5mbyBpbiB0aGUgZm9ybWF0IG9mIAorICAgICAqICJtYWpvci5taW5vci5taWxsaS5taWNybyIgICAKKyAgICAgKiBAcmV0dXJuIFN0cmluZyByZXByZXNlbnRhdGl2ZSBvZiBWZXJzaW9uSW5mbworICAgICAqIEBkcmFmdCAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKDcpOworICAgICAgICByZXN1bHQuYXBwZW5kKGdldE1ham9yKCkpOworICAgICAgICByZXN1bHQuYXBwZW5kKCcuJyk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoZ2V0TWlub3IoKSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoJy4nKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChnZXRNaWxsaSgpKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgnLicpOworICAgICAgICByZXN1bHQuYXBwZW5kKGdldE1pY3JvKCkpOworICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorICAgIAorICAgIC8qKiAKKyAgICAgKiBSZXR1cm5zIHRoZSBtYWpvciB2ZXJzaW9uIG51bWJlcgorICAgICAqIEByZXR1cm4gdGhlIG1ham9yIHZlcnNpb24gbnVtYmVyICAgIAorICAgICAqIEBkcmFmdCAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldE1ham9yKCkKKyAgICB7CisgICAgICAgIHJldHVybiAobV92ZXJzaW9uXyA+PiAyNCkgJiBMQVNUX0JZVEVfTUFTS18gOworICAgIH0KKyAKKyAgICAvKiogCisgICAgICogUmV0dXJucyB0aGUgbWlub3IgdmVyc2lvbiBudW1iZXIKKyAgICAgKiBAcmV0dXJuIHRoZSBtaW5vciB2ZXJzaW9uIG51bWJlciAgICAKKyAgICAgKiBAZHJhZnQgMi4xCisgICAgICovCisgICAgcHVibGljIGludCBnZXRNaW5vcigpCisgICAgeworICAgICAgICByZXR1cm4gKG1fdmVyc2lvbl8gPj4gMTYpICYgTEFTVF9CWVRFX01BU0tfIDsKKyAgICB9CisgCisgICAgLyoqIAorICAgICAqIFJldHVybnMgdGhlIG1pbGxpIHZlcnNpb24gbnVtYmVyCisgICAgICogQHJldHVybiB0aGUgbWlsbGkgdmVyc2lvbiBudW1iZXIgICAgCisgICAgICogQGRyYWZ0IDIuMQorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TWlsbGkoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChtX3ZlcnNpb25fID4+IDgpICYgTEFTVF9CWVRFX01BU0tfIDsKKyAgICB9CisgCisgICAgLyoqIAorICAgICAqIFJldHVybnMgdGhlIG1pY3JvIHZlcnNpb24gbnVtYmVyCisgICAgICogQHJldHVybiB0aGUgbWljcm8gdmVyc2lvbiBudW1iZXIKKyAgICAgKiBAZHJhZnQgMi4xICAgIAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TWljcm8oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fdmVyc2lvbl8gJiBMQVNUX0JZVEVfTUFTS18gOworICAgIH0KKyAKKyAgICAvKioKKyAgICAgKiBDaGVja3MgaWYgdGhpcyB2ZXJzaW9uIGluZm9ybWF0aW9uIGlzIGVxdWFscyB0byB0aGUgYXJndW1lbnQgdmVyc2lvbgorICAgICAqIEBwYXJhbSBvdGhlciBvYmplY3QgdG8gYmUgY29tcGFyZWQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgb3RoZXIgaXMgZXF1YWxzIHRvIHRoaXMgb2JqZWN0J3MgdmVyc2lvbiBpbmZvcm1hdGlvbiwgCisgICAgICogICAgICAgICBmYWxzZSBvdGhlcndpc2UKKyAgICAgKiBAZHJhZnQgMi4xCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvdGhlcikKKyAgICB7CisgICAgICAgIHJldHVybiBvdGhlciA9PSB0aGlzOworICAgIH0KKyAKKyAgICAvKioKKyAgICAgKiBDb21wYXJlcyBvdGhlciB3aXRoIHRoaXMgVmVyc2lvbkluZm8uIAorICAgICAqIEBwYXJhbSBvdGhlciBWZXJzaW9uSW5mbyB0byBiZSBjb21wYXJlZAorICAgICAqIEByZXR1cm4gMCBpZiB0aGUgYXJndW1lbnQgaXMgYSBWZXJzaW9uSW5mbyBvYmplY3QgdGhhdCBoYXMgdmVyc2lvbiAKKyAgICAgKiAgICAgICAgICAgaW5mb3JtYXRpb24gZXF1YWxzIHRvIHRoaXMgb2JqZWN0LiAKKyAgICAgKiAgICAgICAgICAgTGVzcyB0aGFuIDAgaWYgdGhlIGFyZ3VtZW50IGlzIGEgVmVyc2lvbkluZm8gb2JqZWN0IHRoYXQgaGFzIAorICAgICAqICAgICAgICAgICB2ZXJzaW9uIGluZm9ybWF0aW9uIGdyZWF0ZXIgdGhhbiB0aGlzIG9iamVjdC4gCisgICAgICogICAgICAgICAgIEdyZWF0ZXIgdGhhbiAwIGlmIHRoZSBhcmd1bWVudCBpcyBhIFZlcnNpb25JbmZvIG9iamVjdCB0aGF0IAorICAgICAqICAgICAgICAgICBoYXMgdmVyc2lvbiBpbmZvcm1hdGlvbiBsZXNzIHRoYW4gdGhpcyBvYmplY3QuCisgICAgICogQGRyYWZ0IDIuMQorICAgICAqLworICAgIHB1YmxpYyBpbnQgY29tcGFyZVRvKFZlcnNpb25JbmZvIG90aGVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fdmVyc2lvbl8gLSBvdGhlci5tX3ZlcnNpb25fOworICAgIH0KKyAgIAorICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBWZXJzaW9uIG51bWJlciBzdG9yZWQgYXMgYSBieXRlIGZvciBlYWNoIG9mIHRoZSBtYWpvciwgbWlub3IsIG1pbGxpIGFuZAorICAgICAqIG1pY3JvIG51bWJlcnMgaW4gdGhlIDMyIGJpdCBpbnQuCisgICAgICogTW9zdCBzaWduaWZpY2FudCBmb3IgdGhlIG1ham9yIGFuZCB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgY29udGFpbnMgdGhlIAorICAgICAqIG1pY3JvIG51bWJlcnMuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV92ZXJzaW9uXzsKKyAgICAvKioKKyAgICAgKiBNYXAgb2Ygc2luZ2xldG9ucworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEhhc2hNYXAgTUFQXyA9IG5ldyBIYXNoTWFwKCk7CisgICAgLyoqCisgICAgICogTGFzdCBieXRlIG1hc2sKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEFTVF9CWVRFX01BU0tfID0gMHhGRjsKKyAgICAvKioKKyAgICAgKiBFcnJvciBzdGF0ZW1lbnQgc3RyaW5nCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIElOVkFMSURfVkVSU0lPTl9OVU1CRVJfID0gCisgICAgICAgICJJbnZhbGlkIHZlcnNpb24gbnVtYmVyOiBWZXJzaW9uIG51bWJlciBtYXkgYmUgbmVnYXRpdmUgb3IgZ3JlYXRlciB0aGFuIDI1NSI7CisgICAgICAgIAorICAgIC8vIHN0YXRpYyBkZWNsYXJhdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXplIHZlcnNpb25zIG9ubHkgYWZ0ZXIgTUFQXyBoYXMgYmVlbiBjcmVhdGVkCisgICAgICovCisgICAgc3RhdGljIHsKKyAgICAgICAgVU5JQ09ERV8xXzAgICA9IGdldEluc3RhbmNlKDEsIDAsIDAsIDApOworICAgICAgICBVTklDT0RFXzFfMF8xID0gZ2V0SW5zdGFuY2UoMSwgMCwgMSwgMCk7CisgICAgICAgIFVOSUNPREVfMV8xXzAgPSBnZXRJbnN0YW5jZSgxLCAxLCAwLCAwKTsKKyAgICAgICAgVU5JQ09ERV8xXzFfNSA9IGdldEluc3RhbmNlKDEsIDEsIDUsIDApOworICAgICAgICBVTklDT0RFXzJfMCAgID0gZ2V0SW5zdGFuY2UoMiwgMCwgMCwgMCk7ICAgICAgICAKKyAgICAgICAgVU5JQ09ERV8yXzFfMiA9IGdldEluc3RhbmNlKDIsIDEsIDIsIDApOworICAgICAgICBVTklDT0RFXzJfMV81ID0gZ2V0SW5zdGFuY2UoMiwgMSwgNSwgMCk7CisgICAgICAgIFVOSUNPREVfMl8xXzggPSBnZXRJbnN0YW5jZSgyLCAxLCA4LCAwKTsKKyAgICAgICAgVU5JQ09ERV8yXzFfOSA9IGdldEluc3RhbmNlKDIsIDEsIDksIDApOworICAgICAgICBVTklDT0RFXzNfMCAgID0gZ2V0SW5zdGFuY2UoMywgMCwgMCwgMCk7CisgICAgICAgIFVOSUNPREVfM18wXzEgPSBnZXRJbnN0YW5jZSgzLCAwLCAxLCAwKTsKKyAgICAgICAgVU5JQ09ERV8zXzFfMCA9IGdldEluc3RhbmNlKDMsIDEsIDAsIDApOworICAgICAgICBVTklDT0RFXzNfMV8xID0gZ2V0SW5zdGFuY2UoMywgMSwgMSwgMCk7CisgICAgICAgIFVOSUNPREVfM18yICAgPSBnZXRJbnN0YW5jZSgzLCAyLCAwLCAwKTsKKyAgICAgICAgSUNVX1ZFUlNJT04gPSBnZXRJbnN0YW5jZSgyLCAyLCAxLCAwKTsKKyAgICB9CisgICAgCisgICAgLy8gcHJpdmF0ZSBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yIHdpdGggaW50IAorICAgICAqIEBwYXJhbSBjb21wYWN0dmVyc2lvbiBhIDMyIGJpdCBpbnQgd2l0aCBlYWNoIGJ5dGUgcmVwcmVzZW50aW5nIGEgbnVtYmVyCisgICAgICovCisgICAgcHJpdmF0ZSBWZXJzaW9uSW5mbyhpbnQgY29tcGFjdHZlcnNpb24pIAorICAgIHsKKyAgICAgICAgbV92ZXJzaW9uXyA9IGNvbXBhY3R2ZXJzaW9uOyAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgaW50IGZyb20gdGhlIHZlcnNpb24gbnVtYmVycworICAgICAqIEBwYXJhbSBtYWpvciBub24tbmVnYXRpdmUgdmVyc2lvbiBudW1iZXIKKyAgICAgKiBAcGFyYW0gbWlub3Igbm9uLW5lZ2F0aXZldmVyc2lvbiBudW1iZXIKKyAgICAgKiBAcGFyYW0gbWlsbGkgbm9uLW5lZ2F0aXZldmVyc2lvbiBudW1iZXIKKyAgICAgKiBAcGFyYW0gbWljcm8gbm9uLW5lZ2F0aXZldmVyc2lvbiBudW1iZXIKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZ2V0SW50KGludCBtYWpvciwgaW50IG1pbm9yLCBpbnQgbWlsbGksIGludCBtaWNybykgCisgICAgeworICAgICAgICByZXR1cm4gKG1ham9yIDw8IDI0KSB8IChtaW5vciA8PCAxNikgfCAobWlsbGkgPDwgOCkgfCBtaWNybzsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9pY3UvdXRpbC9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2M2YTc1ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKyAgJFNvdXJjZTogL3hzcmwvTnN2bi9pY3UvaWN1NGovc3JjL2NvbS9pYm0vaWN1L3V0aWwvcGFja2FnZS5odG1sLHYgJAorICAkUmV2aXNpb246IDEuMSAkCisgICREYXRlOiAyMDAwLzAzLzE1IDIxOjM1OjUzICQKKy0tPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiPgorSW50ZXJuYXRpb25hbCBjYWxlbmRhcnMgYW5kIG90aGVyIHV0aWxpdHkgY2xhc3Nlcy4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9Bd3RNZW51QnVpbGRlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvYXd0dWkvQXd0TWVudUJ1aWxkZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lZGU5MTdiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvYXd0dWkvQXd0TWVudUJ1aWxkZXIuamF2YQpAQCAtMCwwICsxLDIzOCBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogQXd0TWVudUJ1aWxkZXIuamF2YSx2ICQgJFJldmlzaW9uOiAxLjEgJCAkRGF0ZTogMjAwMC8wNC8yMCAxNzo0MTo0OSAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LmF3dHVpOworCitpbXBvcnQgamF2YS5hd3QuRnJhbWU7CitpbXBvcnQgamF2YS5hd3QuTWVudTsKK2ltcG9ydCBqYXZhLmF3dC5NZW51QmFyOworaW1wb3J0IGphdmEuYXd0LldpbmRvdzsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuRnJhbWVSZXNvdXJjZXM7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC4qOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLkRpYWxvZ0l0ZW0uRGlhbG9nRmFjdG9yeTsKKworLy8gVE8gRE86ICBEb24ndCBoYXJkLWNvZGUgbWVudSBjb25maWd1cmF0aW9ucy4gIEluc3RlYWQsIHNwZWNpZnkgdGhlbSB3aXRoCisvLyBzdHJpbmdzIHNvbWVob3cuICBUaGlzIGlzIGFuIGltcHJvdmVtZW50IG92ZXIgd2hhdCB3ZSBoYWQsIGFuZCBpdCdsbCBkbworLy8gZm9yIG5vdy4KKworLyoqCisgKiBBd3RNZW51QnVpbGRlciBjcmVhdGVzIGEgc2V0IG9mIEFXVCBtZW51cyBmb3IgaW50ZXJhY3RpbmcKKyAqIHdpdGggYW4gTVRleHRQYW5lbC4gIEZ1dHVyZSB2ZXJzaW9ucyBvZiB0aGlzIGNsYXNzIG1heSBhbGxvdworICogY2xpZW50cyB0byBjb250cm9sIHRoZSBtZW51IGNvbnRlbnRzLgorICogQHNlZSBNVGV4dFBhbmVsCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBBd3RNZW51QnVpbGRlciBleHRlbmRzIE1lbnVCdWlsZGVyIHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEF3dE1lbnVCdWlsZGVyIElOU1RBTkNFID0gbmV3IEF3dE1lbnVCdWlsZGVyKCk7CisgICAgCisgICAgLyoqCisgICAgICogSWQgZm9yIGFuIEVkaXQgbWVudS4gIFRoZSBFZGl0IG1lbnUgaGFzIHRoZSBmb2xsb3dpbmcgaXRlbXM6CisgICAgICogPHVsPgorICAgICAqIDxsaT48Yj5VbmRvPC9iPiAtIGludm9rZSB1bmRvKCkgb24gdGhlIE1UZXh0UGFuZWw8L2xpPgorICAgICAqIDxsaT48Yj5SZWRvPC9iPiAtIGludm9rZSByZWRvKCkgb24gdGhlIE1UZXh0UGFuZWw8L2xpPgorICAgICAqIDxsaT48Yj5DdXQ8L2I+IC0gaW52b2tlIGN1dCgpIG9uIHRoZSBNVGV4dFBhbmVsPC9saT4KKyAgICAgKiA8bGk+PGI+Q29weTwvYj4gLSBpbnZva2UgY29weSgpIG9uIHRoZSBNVGV4dFBhbmVsPC9saT4KKyAgICAgKiA8bGk+PGI+UGFzdGU8L2I+IC0gaW52b2tlIHBhc3RlKCkgb24gdGhlIE1UZXh0UGFuZWw8L2xpPgorICAgICAqIDxsaT48Yj5DbGVhcjwvYj4gLSBpbnZva2UgY2xlYXIoKSBvbiB0aGUgTVRleHRQYW5lbDwvbGk+CisgICAgICogPGxpPjxiPlNlbGVjdCBBbGw8L2I+IC0gaW52b2tlIHNlbGVjdEFsbCgpIG9uIHRoZSBNVGV4dFBhbmVsPC9saT4KKyAgICAgKiA8L3VsPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVESVQgPSBNZW51QnVpbGRlci5FRElUOworICAgIC8qKgorICAgICAqIElkIGZvciB0aGUgcG9pbnQgc2l6ZXMgbWVudS4gIFRoZSBtZW51IGhhcyBpdGVtcyB0aGF0IHNldCB0aGUgc2l6ZSBvZiBhIGNoYXJhY3RlcgorICAgICAqIGluIGEgdHlwZWZhY2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0laRSA9IE1lbnVCdWlsZGVyLlNJWkU7CisgICAgLyoqCisgICAgICogSWQgZm9yIGEgU3R5bGUgbWVudS4gIFRoZSBTdHlsZSBtZW51IGhhcyB0aGUgZm9sbG93aW5nIGl0ZW1zOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+PGI+UGxhaW48L2I+IC0gcmVtb3ZlIDxjb2RlPldFSUdIVDwvY29kZT4sCisgICAgICogICAgICAgICAgICAgICAgICAgIDxjb2RlPlBPU1RVUkU8L2NvZGU+LAorICAgICAqICAgICAgICAgICAgICAgICAgICA8Y29kZT5VTkRFUkxJTkU8L2NvZGU+IGFuZAorICAgICAqICAgICAgICAgICAgICAgICAgICA8Y29kZT5TVFJJS0VUSFJPVUdIPC9jb2RlPiBhdHRyaWJ1dGVzIGZyb20gdGhlCisgICAgICogY3VycmVudCBzZWxlY3Rpb248L2xpPgorICAgICAqIDxsaT48Yj5Cb2xkPC9iPiAtIGFkZCA8Y29kZT57V0VJR0hULFdFSUdIVF9CT0xEfTwvY29kZT4gdG8KKyAgICAgKiB0aGUgY3VycmVudCBzZWxlY3Rpb248L2xpPgorICAgICAqIDxsaT48Yj5JdGFsaWM8L2I+IC0gYWRkIDxjb2RlPntQT1NUVVJFLFBPU1RVUkVfSVRBTElDfTwvY29kZT4gdG8KKyAgICAgKiB0aGUgY3VycmVudCBzZWxlY3Rpb248L2xpPgorICAgICAqIDxsaT48Yj5VbmRlcmxpbmU8L2I+IC0gYWRkIDxjb2RlPntVTkRFUkxJTkUsVU5ERVJMSU5FX09OfTwvY29kZT4gdG8KKyAgICAgKiB0aGUgY3VycmVudCBzZWxlY3Rpb248L2xpPgorICAgICAqIDxsaT48Yj5TdHJpa2V0aHJvdWdoPC9iPiAtIGFkZCA8Y29kZT57U1RSSUtFVEhST1VHSCxTVFJJS0VUSFJPVUdIX09OfTwvY29kZT4KKyAgICAgKiB0byB0aGUgY3VycmVudCBzZWxlY3Rpb248L2xpPgorICAgICAqIDxsaT48Yj5Gb250Li4uPC9iPiAtIGRpc3BsYXkgYSBkaWFsb2cgYWxsb3dpbmcgdGhlIHVzZXIgdG8KKyAgICAgKiBzZWxlY3QgYSB0eXBlZmFjZSAoZm9udCBmYW1pbHkpIGZvciB0aGUgY3VycmVudCBzZWxlY3Rpb248L2xpPgorICAgICAqIDxsaT48Yj5Gb3JlY29sb3IuLi48L2I+IC0gZGlzcGxheSBhIGRpYWxvZyBhbGxvd2luZyB0aGUgdXNlciB0bworICAgICAqIHNlbGVjdCBhIGZvcmVncm91bmQgY29sb3IgZm9yIHRoZSBjdXJyZW50IHNlbGVjdGlvbjwvbGk+CisgICAgICogPGxpPjxiPkJhY2tjb2xvci4uLjwvYj4gLSBkaXNwbGF5IGEgZGlhbG9nIGFsbG93aW5nIHRoZSB1c2VyIHRvCisgICAgICogc2VsZWN0IGEgYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIGN1cnJlbnQgc2VsZWN0aW9uPC9saT4KKyAgICAgKiA8L3VsPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNUWUxFID0gTWVudUJ1aWxkZXIuU1RZTEU7CisgICAgLyoqCisgICAgICogSWQgZm9yIGEgcGFyYWdyYXBoIGFsaWdubWVudCBtZW51LiAgVGhlIG1lbnUgaGFzIHRoZSBmb2xsb3dpbmcgaXRlbXM6CisgICAgICogPHVsPgorICAgICAqIDxsaT48Yj5MZWFkaW5nPC9iPiAtIGdpdmUgc2VsZWN0ZWQgcGFyYWdyYXBoKHMpIExFQURJTkcgZmx1c2g8L2xpPgorICAgICAqIDxsaT48Yj5DZW50ZXI8L2I+IC0gZ2l2ZSBzZWxlY3RlZCBwYXJhZ3JhcGgocykgQ0VOVEVSIGZsdXNoPC9saT4KKyAgICAgKiA8bGk+PGI+VHJhaWxpbmc8L2I+IC0gZ2l2ZSBzZWxlY3RlZCBwYXJhZ3JhcGgocykgVFJBSUxJTkcgZmx1c2g8L2xpPgorICAgICAqIDxsaT48Yj5KdXN0aWZpZWQ8L2I+IC0gZ2l2ZSBzZWxlY3RlZCBwYXJhZ3JhcGgocykgZnVsbCBqdXN0aWZpY2F0aW9uPC9saT4KKyAgICAgKiA8L3VsPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZMVVNIID0gTWVudUJ1aWxkZXIuRkxVU0g7CisgICAgLyoqCisgICAgICogSWQgZm9yIGEgbWVudSB0aGF0IHNldHMgdGhlIEtleVJlbWFwCisgICAgICogb24gYW4gTVRleHRQYW5lbC4gIFRoZSBtZW51IGhhcyB0aGUgZm9sbG93aW5nIGl0ZW1zOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+PGI+RGVmYXVsdDwvYj4gLSBzZXQgS2V5UmVtYXAgdG8gaWRlbnRpdHkgcmVtYXA8L2xpPgorICAgICAqIDxsaT48Yj5BcmFiaWM8L2I+IC0gc2V0IEtleVJlbWFwIHRvIEFyYWJpYyB0cmFuc2xpdGVyYXRpb248L2xpPgorICAgICAqIDxsaT48Yj5IZWJyZXc8L2I+IC0gc2V0IEtleVJlbWFwIHRvIEhlYnJldyB0cmFuc2xpdGVyYXRpb248L2xpPgorICAgICAqIDxsaT48Yj5Jc3JhZWwgTmlrdWQ8L2I+IC0gc2V0IEtleVJlbWFwIHRvIElzcmFlbCBOaWt1ZDwvbGk+CisgICAgICogPGxpPjxiPlRoYWkgS2V0bWFuZWU8L2I+IC0gc2V0IEtleVJlbWFwIHRvIFRoYWkgS2V0bWFuZWU8L2xpPgorICAgICAqIDwvdWw+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0VZTUFQID0gTWVudUJ1aWxkZXIuS0VZTUFQOworICAgIC8qKgorICAgICAqIElkIGZvciBhIG1lbnUgdGhhdCBzZXRzCisgICAgICogdGhlIHByaW1hcnkgcnVuIGRpcmVjdGlvbiBmb3IgYSBwYXJhZ3JhcGguICBSdW4gZGlyZWN0aW9uIGNhbiBiZSBsZWZ0LXRvLXJpZ2h0LAorICAgICAqIHJpZ2h0LXRvLWxlZnQsIG9yIGNhbiB1c2UgdGhlIGRlZmF1bHQgcnVuIGRpcmVjdGlvbiBmcm9tIHRoZSBVbmljb2RlIGJpZGkgYWxnb3JpdGhtLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJJREkgPSBNZW51QnVpbGRlci5CSURJOworICAgIC8qKgorICAgICAqIElkIGZvciBhIG1lbnUgd2l0aCBhbiA8Yj5BYm91dDwvYj4gaXRlbS4gIFdoZW4gc2VsZWN0ZWQsIAorICAgICAqIHRoZSBpdGVtIGRpc3BsYXlzIGEgRnJhbWUgY29udGFpbmluZyBzb21lCisgICAgICogc2VsZi1wcm9tb3Rpb25hbCB0ZXh0LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFCT1VUID0gTWVudUJ1aWxkZXIuQUJPVVQ7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIGFuIGluc3RhbmNlIG9mIEF3dE1lbnVCdWlsZGVyLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQXd0TWVudUJ1aWxkZXIgZ2V0SW5zdGFuY2UoKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gSU5TVEFOQ0U7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgTWVudUJhciBmTWVudUJhcjsKKyAgICAKKyAgICBwcml2YXRlIEF3dE1lbnVCdWlsZGVyKCkgeworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBBZGQgYSBzdGFuZGFyZCBzZXQgb2YgbWVudXMgdG8gdGhlIGdpdmVuIG1lbnUgYmFyLiAgVGhlIG1lbnVzIAorICAgICAqIHdpbGwgaW50ZXJhY3Qgd2l0aCB0aGUgZ2l2ZW4gTVRleHRQYW5lbC4KKyAgICAgKiBAcGFyYW0gbWVudUJhciB0aGUgTWVudUJhciB0byB3aGljaCBtZW51cyBhcmUgYWRkZWQKKyAgICAgKiBAcGFyYW0gdGV4dFBhbmVsIHRoZSBNVGV4dFBhbmVsIHdpdGggd2hpY2ggdGhlIG1lbnVzIGludGVyYWN0CisgICAgICogQHBhcmFtIGZyYW1lIGEgRnJhbWUgdG8gdXNlIGFzIHRoZSBwYXJlbnQgb2YgYW55IGRpYWxvZ3MgY3JlYXRlZCBieSBhIAorICAgICAqICAgYSBtZW51IGl0ZW0uICBJZiBudWxsLCBtZW51IGl0ZW1zIHdoaWNoIGNyZWF0ZSBkaWFsb2dzIHdpbGwgYmUgb21pdHRlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjcmVhdGVNZW51cyhNZW51QmFyIG1lbnVCYXIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1UZXh0UGFuZWwgdGV4dFBhbmVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZyYW1lIGZyYW1lKSB7CisgICAgICAgIAorICAgICAgICBjcmVhdGVNZW51cyhtZW51QmFyLCB0ZXh0UGFuZWwsIGZyYW1lLCBkZWZhdWx0TWVudXMpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBBZGQgYSBzZXQgb2YgbWVudXMgdG8gdGhlIGdpdmVuIG1lbnUgYmFyLiAgVGhlIG1lbnVzIAorICAgICAqIHdpbGwgaW50ZXJhY3Qgd2l0aCB0aGUgZ2l2ZW4gTVRleHRQYW5lbC4KKyAgICAgKiBAcGFyYW0gbWVudUJhciB0aGUgTWVudUJhciB0byB3aGljaCBtZW51cyBhcmUgYWRkZWQKKyAgICAgKiBAcGFyYW0gdGV4dFBhbmVsIHRoZSBNVGV4dFBhbmVsIHdpdGggd2hpY2ggdGhlIG1lbnVzIGludGVyYWN0CisgICAgICogQHBhcmFtIGZyYW1lIGEgRnJhbWUgdG8gdXNlIGFzIHRoZSBwYXJlbnQgb2YgYW55IGRpYWxvZ3MgY3JlYXRlZCBieSBhIAorICAgICAqICAgYSBtZW51IGl0ZW0uICBJZiBudWxsLCBtZW51IGl0ZW1zIHdoaWNoIGNyZWF0ZSBkaWFsb2dzIHdpbGwgYmUgb21pdHRlZC4KKyAgICAgKiBAcGFyYW0gbWVudXMgYW4gYXJyYXkgb2YgaW50ZWdlciBtZW51IGlkJ3MuICBFYWNoIGVsZW1lbnQgb2YgdGhlCisgICAgICogICBhcnJheSBtdXN0IGJlIG9uZSBvZiB0aGlzIGNsYXNzJ3MgbWVudSBpZCBjb25zdGFudHMuICBJZiBudWxsLAorICAgICAqICAgdGhlIGRlZmF1bHQgbWVudXMgYXJlIGNyZWF0ZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgY3JlYXRlTWVudXMoTWVudUJhciBtZW51QmFyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBNVGV4dFBhbmVsIHRleHRQYW5lbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcmFtZSBmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBtZW51cykgeworICAgICAgICAKKyAgICAgICAgaWYgKG1lbnVzID09IG51bGwpIHsKKyAgICAgICAgICAgIG1lbnVzID0gZGVmYXVsdE1lbnVzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBzeW5jaHJvbml6ZWQgKE1JdGVtLkxPQ0spIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZk1lbnVCYXIgPSBtZW51QmFyOworICAgICAgICAgICAgZG9DcmVhdGVNZW51cyh0ZXh0UGFuZWwsIGZyYW1lLCBtZW51cyk7CisgICAgICAgICAgICBmTWVudUJhciA9IG51bGw7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlQWRkTWVudShTdHJpbmcga2V5KSB7CisgICAgICAgIAorICAgICAgICBNZW51IG1lbnUgPSBuZXcgTWVudShSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKGtleSkpOworICAgICAgICBmTWVudUJhci5hZGQobWVudSk7CisgICAgICAgIE1JdGVtLnNldEl0ZW1GYWN0b3J5KG5ldyBBd3RNZW51RmFjdG9yeShtZW51KSk7CisgICAgfQorCisgICAgcHJvdGVjdGVkIERpYWxvZ0ZhY3RvcnkgY3JlYXRlT2JqZWN0RGlhbG9nRmFjdG9yeShmaW5hbCBTdHJpbmcgZGlhbG9nVGl0bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmcgZGlhbG9nTWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIE9iamVjdCBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBib29sZWFuIGNoYXJhY3RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIFN0cmluZ1tdIG5hbWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgT2JqZWN0W10gdmFsdWVzKSB7CisgICAgICAgIAorICAgICAgICBmaW5hbCBGcmFtZSBkaWFsb2dQYXJlbnQgPSBmRGlhbG9nUGFyZW50OworCisgICAgICAgIHJldHVybiBuZXcgRGlhbG9nRmFjdG9yeSgpIHsgICAgCisgICAgICAgICAgICBwdWJsaWMgV2luZG93IGNyZWF0ZURpYWxvZyhNVGV4dFBhbmVsIHRleHRQYW5lbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgT2JqZWN0RGlhbG9nKGRpYWxvZ1BhcmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWFsb2dUaXRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWFsb2dNZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRQYW5lbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcmFjdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBEaWFsb2dGYWN0b3J5IGNyZWF0ZU51bWJlckRpYWxvZ0ZhY3RvcnkoZmluYWwgU3RyaW5nIGRpYWxvZ1RpdGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgU3RyaW5nIGRpYWxvZ01lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBPYmplY3Qga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgYm9vbGVhbiBjaGFyYWN0ZXIpIHsKKyAgICAgICAgCisgICAgICAgIGZpbmFsIEZyYW1lIGRpYWxvZ1BhcmVudCA9IGZEaWFsb2dQYXJlbnQ7CisgICAgICAgICAgICAKKyAgICAgICAgcmV0dXJuIG5ldyBEaWFsb2dGYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFdpbmRvdyBjcmVhdGVEaWFsb2coTVRleHRQYW5lbCB0ZXh0UGFuZWwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE51bWJlckRpYWxvZyhkaWFsb2dQYXJlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlhbG9nVGl0bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlhbG9nTWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0UGFuZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJhY3RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9ICAgIAorICAgIAorICAgIHByb3RlY3RlZCBEaWFsb2dGYWN0b3J5IGNyZWF0ZUFib3V0RGlhbG9nRmFjdG9yeSgpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBuZXcgRGlhbG9nRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBXaW5kb3cgY3JlYXRlRGlhbG9nKE1UZXh0UGFuZWwgdGV4dFBhbmVsKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRpdGxlID0gUmVzb3VyY2VVdGlscy5nZXRSZXNvdXJjZVN0cmluZyhGcmFtZVJlc291cmNlcy5BQk9VVF9USVRMRSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBNZXNzYWdlRGlhbG9nKHRpdGxlLCBBYm91dFRleHQuZ2V0QWJvdXRUZXh0KCkpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9Bd3RNZW51RmFjdG9yeS5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvYXd0dWkvQXd0TWVudUZhY3RvcnkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45ZTI2MTc5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvYXd0dWkvQXd0TWVudUZhY3RvcnkuamF2YQpAQCAtMCwwICsxLDExNiBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogQXd0TWVudUZhY3RvcnkuamF2YSx2ICQgJFJldmlzaW9uOiAxLjIgJCAkRGF0ZTogMjAwMC8wNC8yMCAxOToyOTowOCAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LmF3dHVpOworCitpbXBvcnQgamF2YS5hd3QuQ2hlY2tib3hNZW51SXRlbTsKK2ltcG9ydCBqYXZhLmF3dC5NZW51OworaW1wb3J0IGphdmEuYXd0Lk1lbnVJdGVtOworaW1wb3J0IGphdmEuYXd0Lk1lbnVTaG9ydGN1dDsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkxpc3RlbmVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lkl0ZW1FdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5JdGVtTGlzdGVuZXI7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuTWVudURhdGE7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwuTUl0ZW07CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwuTUl0ZW0uSXRlbUZhY3Rvcnk7CisKK2ZpbmFsIGNsYXNzIEF3dE1lbnVGYWN0b3J5IGltcGxlbWVudHMgSXRlbUZhY3RvcnkgeworICAgICAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgZmluYWwgY2xhc3MgQXd0TUl0ZW0gZXh0ZW5kcyBNSXRlbSB7CisgICAgICAgIAorICAgICAgICBwcml2YXRlIE1lbnVJdGVtIGZJdGVtOworICAgICAgICAKKyAgICAgICAgQXd0TUl0ZW0oTWVudUl0ZW0gaXRlbSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBmSXRlbSA9IGl0ZW07CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIENoZWNrYm94TWVudUl0ZW0gY2hJdGVtID0gKENoZWNrYm94TWVudUl0ZW0pIGZJdGVtOworICAgICAgICAgICAgICAgIGNoSXRlbS5hZGRJdGVtTGlzdGVuZXIobmV3IEl0ZW1MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgaXRlbVN0YXRlQ2hhbmdlZChJdGVtRXZlbnQgZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWQoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2goQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBpdGVtLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGV2dCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWQoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBBY2sgLSBob3cgZG8geW91IGRvIHRoaXMgZnJvbSBpbm5lciBjbGFzc2VzPz8KKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlU2VsZWN0ZWQoKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHN1cGVyLmhhbmRsZVNlbGVjdGVkKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBmaW5hbCB2b2lkIHNldEVuYWJsZWQoYm9vbGVhbiBlbmFibGVkKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZJdGVtLnNldEVuYWJsZWQoZW5hYmxlZCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyB2b2lkIHNldFN0YXRlKGJvb2xlYW4gY2hlY2tlZCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIENoZWNrYm94TWVudUl0ZW0gaXRlbSA9IChDaGVja2JveE1lbnVJdGVtKSBmSXRlbTsKKyAgICAgICAgICAgICAgICBpdGVtLnNldFN0YXRlKGNoZWNrZWQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2goQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBwZXJmb3JtIHNldENoZWNrZWQgb24gbm9uLWNoZWNrYm94IGl0ZW0iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIE1lbnUgZk1lbnU7CisgICAgICAgIAorICAgIEF3dE1lbnVGYWN0b3J5KE1lbnUgbWVudSkgeworICAgICAgICAgICAgCisgICAgICAgIGZNZW51ID0gbWVudTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBNSXRlbSBoYW5kbGVDcmVhdGUoTWVudUl0ZW0gaXRlbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZW51RGF0YSBtZW51RGF0YSkgeworCisgICAgICAgIGlmIChtZW51RGF0YS5oYXNTaG9ydGN1dCgpKSB7CisgICAgICAgICAgICBpdGVtLnNldFNob3J0Y3V0KG5ldyBNZW51U2hvcnRjdXQobWVudURhdGEuZ2V0U2hvcnRjdXRDaGFyKCkpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZk1lbnUuYWRkKGl0ZW0pOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIG5ldyBBd3RNSXRlbShpdGVtKTsKKyAgICB9CisgICAgICAgIAorICAgIHB1YmxpYyBNSXRlbSBjcmVhdGVJdGVtKE1lbnVEYXRhIG1lbnVEYXRhKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gaGFuZGxlQ3JlYXRlKG5ldyBNZW51SXRlbShtZW51RGF0YS5nZXROYW1lKCkpLCBtZW51RGF0YSk7CisgICAgfSAgICAgICAgCisKKyAgICBwdWJsaWMgTUl0ZW0gY3JlYXRlQ2hlY2tib3hJdGVtKE1lbnVEYXRhIG1lbnVEYXRhKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gaGFuZGxlQ3JlYXRlKG5ldyBDaGVja2JveE1lbnVJdGVtKG1lbnVEYXRhLmdldE5hbWUoKSksIG1lbnVEYXRhKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgY3JlYXRlU2VwYXJhdG9yKCkgeworICAgICAgICAKKyAgICAgICAgZk1lbnUuYWRkKG5ldyBNZW51SXRlbSgiLSIpKTsKKyAgICB9Cit9CisgICAgCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9NVGFiUnVsZXJDb21wb25lbnQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2F3dHVpL01UYWJSdWxlckNvbXBvbmVudC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQ2YjQ3YmMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9NVGFiUnVsZXJDb21wb25lbnQuamF2YQpAQCAtMCwwICsxLDkyIEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBNVGFiUnVsZXJDb21wb25lbnQuamF2YSx2ICQgJFJldmlzaW9uOiAxLjEgJCAkRGF0ZTogMjAwMC8wNC8yMCAxNzo0MTo0OSAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LmF3dHVpOworCitpbXBvcnQgamF2YS5hd3QuQ29sb3I7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1UYWJSdWxlcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5NVGV4dFBhbmVsOworCisvKioKKyAqIE1UYWJSdWxlckNvbXBvbmVudCBpcyBpbXBsZW1lbnRlZCBieSBjb21wb25lbnRzIHdoaWNoIHByb3ZpZGUgYSB0YWItcnVsZXIKKyAqIGludGVyZmFjZSBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBhbiBNVGV4dFBhbmVsLgorICogPHA+CisgKiBVc2VycyBpbnRlcmFjdCB3aXRoIE1UYWJSdWxlckNvbXBvbmVudCBpbXBsZW1lbnRhdGlvbnMgYXMgZm9sbG93czoKKyAqIDx1bD4KKyAqIDxsaT5UaGUgbGVhZGluZyBtYXJnaW4gY2FuIGJlIHNldCBieSBkcmFnZ2luZyB0aGUgYm90dG9tIGhhbGYKKyAqIG9mIHRoZSBsZWZ0bW9zdCB0cmlhbmdsZS4gIFRoZSBmaXJzdC1saW5lIGluZGVudCB3aWxsICJzdGljayIgd2l0aAorICogdGhlIGxlYWRpbmcgbWFyZ2luLjwvbGk+CisgKiA8bGk+VGhlIGZpcnN0LWxpbmUgaW5kZW50IGNhbiBiZSBzZXQgYnkgZHJhZ2dpbmcgdGhlIHRvcCBoYWxmIG9mIHRoZQorICogbGVmdG1vc3QgdHJpYW5nbGUuICBUaGUgZmlyc3QtbGluZSBpbmRlbnQgYXBwbGllcyB0byB0aGUgZmlyc3QgbGluZSBvZgorICogYSBwYXJhZ3JhcGguPC9saT4KKyAqIDxsaT5UaGUgdHJhaWxpbmcgbWFyZ2luIGNhbiBiZSBzZXQgYnkgZHJhZ2dpbmcgdGhlIHJpZ2h0bW9zdCB0cmlhbmdsZS48L2xpPgorICogPGxpPlRhYnMgY2FuIGJlIGFkZGVkIHRvIHRoZSBydWxlciBieSBjbGlja2luZyB0aGUgbW91c2Ugb24gdGhlIHJ1bGVyIHdpdGggdGhlCisgKiBjb250cm9sIGtleSBwcmVzc2VkLiAgRm91ciBraW5kcyBvZiB0YWJzIGFyZSBwcm92aWRlZDogIGxlYWRpbmcsIHRyYWlsaW5nLCBjZW50ZXIsCisgKiBhbmQgZGVjaW1hbC4gIFRoZSB0eXBlIG9mIGEgdGFiIGNhbiBiZSBjaGFuZ2VkIGJ5IGRvdWJsZS1jbGlja2luZyB0aGUgdGFiLjwvbGk+CisgKiA8bGk+VGFicyBjYW4gYmUgcmVwb3NpdGlvbmVkIGJ5IGRyYWdnaW5nIHRoZW0gd2l0aCB0aGUgbW91c2UuPC9saT4KKyAqIDwvdWw+CisgKiA8cD4KKyAqIE1UYWJSdWxlckNvbXBvbmVudCdzIGFwcGVhcmFuY2Ugd2lsbCByZWZsZWN0IHRoZSBwYXJhZ3JhcGggc3R5bGVzIGluIHRoZQorICogZmlyc3Qgc2VsZWN0ZWQgcGFyYWdyYXBoLiAgU3R5bGUgY2hhbmdlcyBwZXJmb3JtZWQgd2l0aCBhbiAKKyAqIE1UYWJSdWxlckNvbXBvbmVudCB3aWxsIGFwcGx5IHRvIGFsbCBzZWxlY3RlZCBwYXJhZ3JhcGhzLgorICovCitwdWJsaWMgaW50ZXJmYWNlIE1UYWJSdWxlckNvbXBvbmVudCB7CisgICAgCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKworICAgIC8qKgorICAgICAqIExpc3RlbiB0byB0aGUgZ2l2ZW4gTVRleHRQYW5lbCBhbmQgcmVmbGVjdCBpdHMgY2hhbmdlcywKKyAgICAgKiBhbmQgdXBkYXRlIGl0cyBwYXJhZ3JhcGggc3R5bGVzIHdoZW4gVGFiUnVsZXIgaXMKKyAgICAgKiBtYW5pcHVsYXRlZC4KKyAgICAgKiBAcGFyYW0gdGV4dFBhbmVsIHRoZSBNVGV4dFBhbmVsIHRvIGxpc3RlbiB0bworICAgICAqLworICAgIHB1YmxpYyB2b2lkIGxpc3RlblRvVGV4dFBhbmVsKE1UZXh0UGFuZWwgdGV4dFBhbmVsKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgYmFja2dyb3VuZCBjb2xvciBvZiB0aGlzIFRhYlJ1bGVyLgorICAgICAqIEByZXR1cm4gdGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhpcyBUYWJSdWxlcgorICAgICAqLworICAgIHB1YmxpYyBDb2xvciBnZXRCYWNrQ29sb3IoKTsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgYmFja2dyb3VuZCBjb2xvciBvZiB0aGlzIFRhYlJ1bGVyLgorICAgICAqIEBwYXJhbSBiYWNrQ29sb3IgdGhlIG5ldyBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoaXMgVGFiUnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRCYWNrQ29sb3IoQ29sb3IgYmFja0NvbG9yKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgTVRhYlJ1bGVyIHJlcHJlc2VudGVkIGJ5IHRoaXMgVGFiUnVsZXIuCisgICAgICogQHJldHVybiB0aGUgTVRhYlJ1bGVyIHJlcHJlc2VudGVkIGJ5IHRoaXMgVGFiUnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgTVRhYlJ1bGVyIGdldFJ1bGVyKCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGxlYWRpbmcgbWFyZ2luIG9mIHRoaXMgVGFiUnVsZXIuCisgICAgICogQHJldHVybiB0aGUgbGVhZGluZyBtYXJnaW4gb2YgdGhpcyBUYWJSdWxlcgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TGVhZGluZ01hcmdpbigpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBmaXJzdCBsaW5lIGluZGVudCBvZiB0aGlzIFRhYlJ1bGVyLgorICAgICAqIEByZXR1cm4gdGhlIGZpcnN0IGxpbmUgaW5kZW50IG9mIHRoaXMgVGFiUnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEZpcnN0TGluZUluZGVudCgpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB0cmFpbGluZyBtYXJnaW4gb2YgdGhpcyBUYWJSdWxlci4KKyAgICAgKiBAcmV0dXJuIHRoZSB0cmFpbGluZyBtYXJnaW4gb2YgdGhpcyBUYWJSdWxlcgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0VHJhaWxpbmdNYXJnaW4oKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2F3dHVpL01lc3NhZ2VEaWFsb2cuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2F3dHVpL01lc3NhZ2VEaWFsb2cuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40N2M5MzhkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvYXd0dWkvTWVzc2FnZURpYWxvZy5qYXZhCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IE1lc3NhZ2VEaWFsb2cuamF2YSx2ICQgJFJldmlzaW9uOiAxLjEgJCAkRGF0ZTogMjAwMC8wNC8yMCAxNzo0MTo0OSAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LmF3dHVpOworCitpbXBvcnQgamF2YS5hd3QuQ29sb3I7CitpbXBvcnQgamF2YS5hd3QuRnJhbWU7CitpbXBvcnQgamF2YS5hd3QuQ2FyZExheW91dDsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0FkYXB0ZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93RXZlbnQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxTZXR0aW5nczsKKworLyoqCisgKiBNZXNzYWdlRGlhbG9nIGlzIGEgc2ltcGxlIEZyYW1lIHdoaWNoIGRpc3BsYXlzIGEgc3R5bGVkCisgKiB0ZXh0IG1lc3NhZ2UgaW4gYSBUZXh0UGFuZWwuCisgKiBUaGUgdGV4dCBpbiB0aGUgbWVzc2FnZSBpcyBub3Qgc2VsZWN0YWJsZSBvciBlZGl0YWJsZS4KKyAqIEBzZWUgTUNvbnN0VGV4dAorICogQHNlZSBUZXh0UGFuZWwKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIE1lc3NhZ2VEaWFsb2cgZXh0ZW5kcyBGcmFtZSB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIC8qKgorICAgICogQ3JlYXRlIGEgbmV3IE1lc3NhZ2VEaWFsb2cuCisgICAgKiBAcGFyYW0gdGl0bGUgdGhlIGRpYWxvZydzIHRpdGxlCisgICAgKiBAcGFyYW0gbWVzc2FnZSB0aGUgdGV4dCB3aGljaCB3aWxsIGFwcGVhciBpbiB0aGUgZGlhbG9nCisgICAgKi8KKyAgICBwdWJsaWMgTWVzc2FnZURpYWxvZyhTdHJpbmcgdGl0bGUsIE1Db25zdFRleHQgbWVzc2FnZSkKKyAgICB7CisgICAgICAgIHN1cGVyKHRpdGxlKTsKKworICAgICAgICBzZXRMYXlvdXQobmV3IENhcmRMYXlvdXQoKSk7CisgICAgICAgIFRleHRQYW5lbFNldHRpbmdzIHNldHRpbmdzID0gVGV4dFBhbmVsLmdldERlZmF1bHRTZXR0aW5ncygpOworICAgICAgICBzZXR0aW5ncy5zZXRTY3JvbGxhYmxlKGZhbHNlKTsKKyAgICAgICAgc2V0dGluZ3Muc2V0U2VsZWN0YWJsZShmYWxzZSk7CisgICAgICAgIFRleHRQYW5lbCBwYW5lbCA9IG5ldyBUZXh0UGFuZWwoc2V0dGluZ3MsIG1lc3NhZ2UsIG51bGwpOworCisgICAgICAgIHBhbmVsLnNldEJhY2tncm91bmQoQ29sb3IuYmxhY2spOworICAgICAgICBhZGQoIkNlbnRlciIsIHBhbmVsKTsKKworICAgICAgICBhZGRXaW5kb3dMaXN0ZW5lcihuZXcgV2luZG93QWRhcHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgZSkgeworICAgICAgICAgICAgICAgIHNldFZpc2libGUoZmFsc2UpOworICAgICAgICAgICAgICAgIGRpc3Bvc2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAgICAgICAgc2V0U2l6ZSg0NTAsMzIwKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9OdW1iZXJEaWFsb2cuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2F3dHVpL051bWJlckRpYWxvZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmYzYzk3NmYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9OdW1iZXJEaWFsb2cuamF2YQpAQCAtMCwwICsxLDE1NSBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogTnVtYmVyRGlhbG9nLmphdmEsdiAkICRSZXZpc2lvbjogMS4xICQgJERhdGU6IDIwMDAvMDQvMjAgMTc6NDE6NDkgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5hd3R1aTsKKworaW1wb3J0IGphdmEuYXd0LkZsb3dMYXlvdXQ7CitpbXBvcnQgamF2YS5hd3QuRGlhbG9nOworaW1wb3J0IGphdmEuYXd0LlRleHRGaWVsZDsKK2ltcG9ydCBqYXZhLmF3dC5CdXR0b247CitpbXBvcnQgamF2YS5hd3QuRnJhbWU7CitpbXBvcnQgamF2YS5hd3QuUGFuZWw7CitpbXBvcnQgamF2YS5hd3QuTGFiZWw7CisKK2ltcG9ydCBqYXZhLnRleHQuTnVtYmVyRm9ybWF0OworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkxpc3RlbmVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0FkYXB0ZXI7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuRnJhbWVSZXNvdXJjZXM7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwuTWVudUl0ZW1TZXQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwuUmVzb3VyY2VVdGlsczsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZU1vZGlmaWVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CisKKy8qKgorKiBTaW1wbGUgZGlhbG9nIHdoaWNoIGdldHMgYSBudW1iZXIsIGFuZCBzZW5kcyBhbiBhcHByb3ByaWF0ZSBjb21tYW5kCisqLworZmluYWwgY2xhc3MgTnVtYmVyRGlhbG9nIGV4dGVuZHMgRGlhbG9nIGltcGxlbWVudHMgQWN0aW9uTGlzdGVuZXIKK3sKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgTVRleHRQYW5lbCBmVGV4dFBhbmVsOworICAgIHByaXZhdGUgVGV4dEZpZWxkIGZJbnB1dCA9IG51bGw7CisgICAgcHJpdmF0ZSBCdXR0b24gZk9LQnV0dG9uID0gbnVsbDsKKyAgICBwcml2YXRlIEJ1dHRvbiBmQ2FuY2VsQnV0dG9uID0gbnVsbDsKKyAgICBwcml2YXRlIGJvb2xlYW4gZkNoYXJhY3RlcjsKKyAgICBwcml2YXRlIE9iamVjdCBmS2V5OworICAgIHByaXZhdGUgZmxvYXQgZk11bHRpcGxpZXI7IAorCisgICAgLyoqCisgICAgICogQHBhcmFtIG11bHRpcGxpZXIgdGhlIGZhY3RvciBieSB3aGljaCB0byBtdWx0aXBseSB0aGUgdXNlcidzCisgICAgICogICAgICAgIHNlbGVjdGlvbiBiZWZvcmUgY3JlYXRpbmcgdGhlIGF0dHJpYnV0ZSB2YWx1ZS4gICBUaGlzCisgICAgICogICAgICAgIGlzIHVzZWZ1bCBmb3Igc3Vic2NyaXB0aW5nLgorICAgICAqLworICAgIE51bWJlckRpYWxvZyhGcmFtZSBwYXJlbnQsCisgICAgICAgICAgICAgICAgIFN0cmluZyB0aXRsZSwKKyAgICAgICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2UsCisgICAgICAgICAgICAgICAgIE1UZXh0UGFuZWwgdGV4dFBhbmVsLAorICAgICAgICAgICAgICAgICBPYmplY3Qga2V5LAorICAgICAgICAgICAgICAgICBib29sZWFuIGNoYXJhY3RlciwKKyAgICAgICAgICAgICAgICAgZmxvYXQgbXVsdGlwbGllcikgeworCisgICAgICAgIHN1cGVyKHBhcmVudCwgdGl0bGUsIGZhbHNlKTsKKyAgICAgICAgZlRleHRQYW5lbCA9IHRleHRQYW5lbDsKKyAgICAgICAgZktleSA9IGtleTsKKyAgICAgICAgZkNoYXJhY3RlciA9IGNoYXJhY3RlcjsKKyAgICAgICAgZk11bHRpcGxpZXIgPSBtdWx0aXBsaWVyOworICAgICAgICBzZXRMYXlvdXQobmV3IGphdmEuYXd0LkdyaWRMYXlvdXQoMiwxKSk7CisKKyAgICAgICAgUGFuZWwgcGFuZWwgPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgcGFuZWwuc2V0TGF5b3V0KG5ldyBGbG93TGF5b3V0KEZsb3dMYXlvdXQuQ0VOVEVSLCAxMCwgMTUpKTsKKyAgICAgICAgZklucHV0ID0gbmV3IFRleHRGaWVsZCg1KTsKKyAgICAgICAgcGFuZWwuYWRkKG5ldyBMYWJlbChtZXNzYWdlKSk7CisgICAgICAgIHBhbmVsLmFkZChmSW5wdXQpOworICAgICAgICBhZGQoIkNlbnRlciIsIHBhbmVsKTsKKworICAgICAgICBmQ2FuY2VsQnV0dG9uID0gbmV3IEJ1dHRvbihSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLkNBTkNFTCkpOworICAgICAgICBmT0tCdXR0b24gPSBuZXcgQnV0dG9uKFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuT0spKTsKKyAgICAgICAgUGFuZWwgcCA9IG5ldyBQYW5lbCgpOworICAgICAgICBwLnNldExheW91dChuZXcgRmxvd0xheW91dChGbG93TGF5b3V0LkNFTlRFUiwgNSwgNSkpOworICAgICAgICBwLmFkZChmQ2FuY2VsQnV0dG9uKTsKKyAgICAgICAgcC5hZGQoZk9LQnV0dG9uKTsKKyAgICAgICAgYWRkKCJTb3V0aCIsIHApOworCisgICAgICAgIHBhY2soKTsKKworICAgICAgICBhZGRXaW5kb3dMaXN0ZW5lcihuZXcgV2luZG93QWRhcHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgZSkgeworICAgICAgICAgICAgICAgIGNsb3NlV2luZG93KGZhbHNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIAorICAgICAgICBmT0tCdXR0b24uYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgIGZDYW5jZWxCdXR0b24uYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGNsb3NlV2luZG93KGJvb2xlYW4gc2VuZEFjdGlvbikgeworCisgICAgICAgIHNldFZpc2libGUoZmFsc2UpOworCisgICAgICAgIGludCBudW0gPSAwOworICAgICAgICBpZiAoc2VuZEFjdGlvbikgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdGV4dCA9IGZJbnB1dC5nZXRUZXh0KCk7CisgICAgICAgICAgICAgICAgbnVtID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCkucGFyc2UodGV4dCkuaW50VmFsdWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBleGNlcHRpb24pIHsKKyAgICAgICAgICAgICAgICBzZW5kQWN0aW9uID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoc2VuZEFjdGlvbikgeworICAgICAgICAgICAgc2VuZEFjdGlvbihudW0pOworICAgICAgICB9CisKKyAgICAgICAgZGlzcG9zZSgpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisKKyAgICAgICAgT2JqZWN0IHNvdXJjZSA9IGUuZ2V0U291cmNlKCk7CisKKyAgICAgICAgaWYgKHNvdXJjZSA9PSBmT0tCdXR0b24pIHsKKyAgICAgICAgICAgIGNsb3NlV2luZG93KHRydWUpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHNvdXJjZSA9PSBmQ2FuY2VsQnV0dG9uKSB7CisgICAgICAgICAgICBjbG9zZVdpbmRvdyhmYWxzZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIEFjdGlvbkV2ZW50ISIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgKiBIYW5kbGUgdGhlIHVzZXIgaW5wdXQKKyAgICAqIEBwYXJhbSB0aGUgbnVtYmVyIHRoZSB1c2VyIHR5cGVkIGluCisgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgc2VuZEFjdGlvbihpbnQgbnVtYmVyKSB7CisgICAgICAgIGZsb2F0IG51bSA9IG51bWJlciAqIGZNdWx0aXBsaWVyOworICAgICAgICBTdHlsZU1vZGlmaWVyIG1vZGlmaWVyID0gU3R5bGVNb2RpZmllci5jcmVhdGVBZGRNb2RpZmllcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRmxvYXQobnVtKSk7CisgICAgICAgIGlmIChmQ2hhcmFjdGVyID09IE1lbnVJdGVtU2V0LkNIQVJBQ1RFUikgeworICAgICAgICAgICAgZlRleHRQYW5lbC5tb2RpZnlDaGFyYWN0ZXJTdHlsZU9uU2VsZWN0aW9uKG1vZGlmaWVyKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwubW9kaWZ5UGFyYWdyYXBoU3R5bGVPblNlbGVjdGlvbihtb2RpZmllcik7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9PYmplY3REaWFsb2cuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2F3dHVpL09iamVjdERpYWxvZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRlODY2MjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9PYmplY3REaWFsb2cuamF2YQpAQCAtMCwwICsxLDE3MCBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogT2JqZWN0RGlhbG9nLmphdmEsdiAkICRSZXZpc2lvbjogMS4yICQgJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6MzIgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5hd3R1aTsKKworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlU2V0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZU1vZGlmaWVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwuTWVudUl0ZW1TZXQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuRnJhbWVSZXNvdXJjZXM7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwuUmVzb3VyY2VVdGlsczsKKworaW1wb3J0IGphdmEuYXd0LkRpYWxvZzsKK2ltcG9ydCBqYXZhLmF3dC5GcmFtZTsKK2ltcG9ydCBqYXZhLmF3dC5CdXR0b247CitpbXBvcnQgamF2YS5hd3QuQ2hvaWNlOworaW1wb3J0IGphdmEuYXd0LkxhYmVsOworaW1wb3J0IGphdmEuYXd0LkJvcmRlckxheW91dDsKK2ltcG9ydCBqYXZhLmF3dC5GbG93TGF5b3V0OworaW1wb3J0IGphdmEuYXd0LlBhbmVsOworaW1wb3J0IGphdmEuYXd0LkdyaWRMYXlvdXQ7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5BY3Rpb25FdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5BY3Rpb25MaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dBZGFwdGVyOworCisvKioKKyogU2ltcGxlIGRpYWxvZyB3aGljaCBnZXRzIGEgY29sb3IKKyovCitmaW5hbCBjbGFzcyBPYmplY3REaWFsb2cgZXh0ZW5kcyBEaWFsb2cgaW1wbGVtZW50cyBBY3Rpb25MaXN0ZW5lcgoreworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICBwcml2YXRlIGZpbmFsIE1UZXh0UGFuZWwgZlRleHRQYW5lbDsKKyAgICBwcml2YXRlIGZpbmFsIE9iamVjdCBmS2V5OworICAgIHByaXZhdGUgYm9vbGVhbiBmQ2hhcmFjdGVyOworCisgICAgcHJpdmF0ZSBmaW5hbCBCdXR0b24gZk9LQnV0dG9uOworICAgIHByaXZhdGUgZmluYWwgQnV0dG9uIGZDYW5jZWxCdXR0b247CisgICAgcHJpdmF0ZSBmaW5hbCBDaG9pY2UgZkl0ZW1zOworICAgIHByaXZhdGUgZmluYWwgSGFzaHRhYmxlIGZOYW1lVG9WYWx1ZU1hcDsKKyAgICAvKioKKyAgICAqIENvbnN0cnVjdCBhIG5ldyBDb2xvckRpYWxvZy4KKyAgICAqIEBwYXJhbSBwYXJlbnQgdGhlIGRpYWxvZydzIHBhcmVudCBmcmFtZQorICAgICogQHBhcmFtIHRpdGxlIHRoZSBkaWFsb2dzIHRpdGxlCisgICAgKiBAcGFyYW0gbWVzc2FnZSB0aGUgbWVzc2FnZSBkaXNwbGF5ZWQgbmV4dCB0byB0aGUgaW5wdXQgYm94CisgICAgKi8KKyAgICBPYmplY3REaWFsb2coRnJhbWUgcGFyZW50LCAKKyAgICAgICAgICAgICAgICAgU3RyaW5nIHRpdGxlLCAKKyAgICAgICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2UsIAorICAgICAgICAgICAgICAgICBNVGV4dFBhbmVsIHRleHRQYW5lbCwKKyAgICAgICAgICAgICAgICAgT2JqZWN0IGtleSwKKyAgICAgICAgICAgICAgICAgYm9vbGVhbiBjaGFyYWN0ZXIsCisgICAgICAgICAgICAgICAgIFN0cmluZ1tdIG5hbWVzLAorICAgICAgICAgICAgICAgICBPYmplY3RbXSB2YWx1ZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIHN1cGVyKHBhcmVudCwgdGl0bGUsIGZhbHNlKTsKKyAgICAgICAgZlRleHRQYW5lbCA9IHRleHRQYW5lbDsKKyAgICAgICAgZktleSA9IGtleTsKKyAgICAgICAgZkNoYXJhY3RlciA9IGNoYXJhY3RlcjsKKyAgICAgICAgCisgICAgICAgIHNldExheW91dChuZXcgR3JpZExheW91dCgyLCAxKSk7CisKKyAgICAgICAgUGFuZWwgcGFuZWwgPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgcGFuZWwuc2V0TGF5b3V0KG5ldyBGbG93TGF5b3V0KEZsb3dMYXlvdXQuQ0VOVEVSLCAxMCwgMTApKTsKKyAgICAgICAgZkl0ZW1zID0gbmV3IENob2ljZSgpOworCisgICAgICAgIGlmIChuYW1lcy5sZW5ndGggIT0gdmFsdWVzLmxlbmd0aCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiTXVzdCBoYXZlIHNhbWUgbnVtYmVyIG9mIG5hbWVzIGFuZCB2YWx1ZXMuIik7CisgICAgICAgIH0KKworICAgICAgICBmTmFtZVRvVmFsdWVNYXAgPSBuZXcgSGFzaHRhYmxlKG5hbWVzLmxlbmd0aCk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBuYW1lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgZkl0ZW1zLmFkZChuYW1lc1tpXSk7CisgICAgICAgICAgICBpZiAodmFsdWVzW2ldICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBmTmFtZVRvVmFsdWVNYXAucHV0KG5hbWVzW2ldLCB2YWx1ZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcGFuZWwuYWRkKG5ldyBMYWJlbChtZXNzYWdlKSk7ICAgICAgICAKKyAgICAgICAgcGFuZWwuYWRkKGZJdGVtcyk7CisgICAgICAgIAorICAgICAgICBhZGQoIk5vcnRoIiwgcGFuZWwpOworCisgICAgICAgIGZDYW5jZWxCdXR0b24gPSBuZXcgQnV0dG9uKFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuQ0FOQ0VMKSk7CisgICAgICAgIGZPS0J1dHRvbiA9IG5ldyBCdXR0b24oUmVzb3VyY2VVdGlscy5nZXRSZXNvdXJjZVN0cmluZyhGcmFtZVJlc291cmNlcy5PSykpOworICAgICAgICBQYW5lbCBwID0gbmV3IFBhbmVsKCk7CisgICAgICAgIHAuc2V0TGF5b3V0KG5ldyBGbG93TGF5b3V0KEZsb3dMYXlvdXQuQ0VOVEVSLCA1LCA1KSk7CisgICAgICAgIHAuYWRkKGZDYW5jZWxCdXR0b24pOworICAgICAgICBwLmFkZChmT0tCdXR0b24pOworICAgICAgICBhZGQoIlNvdXRoIiwgcCk7CisKKyAgICAgICAgcGFjaygpOworCisgICAgICAgIGFkZFdpbmRvd0xpc3RlbmVyKG5ldyBXaW5kb3dBZGFwdGVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgd2luZG93Q2xvc2luZyhXaW5kb3dFdmVudCBlKSB7CisgICAgICAgICAgICAgICAgY2xvc2VXaW5kb3coZmFsc2UpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgCisgICAgICAgIGZPS0J1dHRvbi5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgZkNhbmNlbEJ1dHRvbi5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgY2xvc2VXaW5kb3coYm9vbGVhbiBzZW5kQWN0aW9uKSB7CisKKyAgICAgICAgc2V0VmlzaWJsZShmYWxzZSk7CisgICAgICAgIGlmIChzZW5kQWN0aW9uKSB7CisgICAgICAgICAgICBPYmplY3QgdmFsdWUgPSBmTmFtZVRvVmFsdWVNYXAuZ2V0KGZJdGVtcy5nZXRTZWxlY3RlZEl0ZW0oKSk7CisgICAgICAgICAgICBzZW5kQWN0aW9uKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBkaXNwb3NlKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKworICAgICAgICBPYmplY3Qgc291cmNlID0gZS5nZXRTb3VyY2UoKTsKKworICAgICAgICBpZiAoc291cmNlID09IGZPS0J1dHRvbikgeworICAgICAgICAgICAgY2xvc2VXaW5kb3codHJ1ZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoc291cmNlID09IGZDYW5jZWxCdXR0b24pIHsKKyAgICAgICAgICAgIGNsb3NlV2luZG93KGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgQWN0aW9uRXZlbnQhIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAqIEhhbmRsZSB0aGUgdXNlciBpbnB1dAorICAgICogQHBhcmFtIG9iaiB0aGUgdmFsdWUgb2JqZWN0CisgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgc2VuZEFjdGlvbihPYmplY3QgdmFsdWUpIHsKKworICAgICAgICBTdHlsZU1vZGlmaWVyIG1vZGlmaWVyOworICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkgeworICAgICAgICAgICAgbW9kaWZpZXIgPSBTdHlsZU1vZGlmaWVyLmNyZWF0ZUFkZE1vZGlmaWVyKGZLZXksIHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIEF0dHJpYnV0ZVNldCBzZXQgPSBuZXcgQXR0cmlidXRlU2V0KGZLZXkpOworICAgICAgICAgICAgbW9kaWZpZXIgPSBTdHlsZU1vZGlmaWVyLmNyZWF0ZVJlbW92ZU1vZGlmaWVyKHNldCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChmQ2hhcmFjdGVyID09IE1lbnVJdGVtU2V0LkNIQVJBQ1RFUikgeworICAgICAgICAgICAgZlRleHRQYW5lbC5tb2RpZnlDaGFyYWN0ZXJTdHlsZU9uU2VsZWN0aW9uKG1vZGlmaWVyKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwubW9kaWZ5UGFyYWdyYXBoU3R5bGVPblNlbGVjdGlvbihtb2RpZmllcik7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9UYWJSdWxlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvYXd0dWkvVGFiUnVsZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40NDgyNWQ1YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2F3dHVpL1RhYlJ1bGVyLmphdmEKQEAgLTAsMCArMSwxMzEgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IFRhYlJ1bGVyLmphdmEsdiAkICRSZXZpc2lvbjogMS4xICQgJERhdGU6IDIwMDAvMDQvMjAgMTc6NDE6NDkgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5hd3R1aTsKKworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworaW1wb3J0IGphdmEuYXd0LkNvbXBvbmVudDsKK2ltcG9ydCBqYXZhLmF3dC5EaW1lbnNpb247CitpbXBvcnQgamF2YS5hd3QuR3JhcGhpY3M7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5NVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLlRhYlJ1bGVySW1wbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTVRhYlJ1bGVyOworCisvKioKKyAqIFRhYlJ1bGVyIGlzIGFuIGltcGxlbWVudGF0aW9uIG9mIE1UYWJSdWxlckNvbXBvbmVudCBpbiBhbiBBV1QgY29tcG9uZW50LgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgVGFiUnVsZXIgZXh0ZW5kcyBDb21wb25lbnQgaW1wbGVtZW50cyBNVGFiUnVsZXJDb21wb25lbnQgeworICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBUYWJSdWxlckltcGwgZkltcGw7CisgICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgbmV3IFRhYlJ1bGVyLgorICAgICAqIEBwYXJhbSBiYXNlbGluZSB0aGUgeS1jb29yZGluYXRlIG9mIHRoZSBydWxlcidzIGJhc2VsaW5lCisgICAgICogQHBhcmFtIG9yaWdpbiB0aGUgeC1jb29yZGluYXRlIGluIHRoaXMgQ29tcG9uZW50IHdoZXJlCisgICAgICogICAgIHRoZSBsZWZ0IG1hcmdpbiBhcHBlYXJzCisgICAgICogQHBhcmFtIHRleHRQYW5lbCB0aGUgTVRleHRQYW5lbCB0byBsaXN0ZW4gdG8uICBUaGlzIFRhYlJ1bGVyCisgICAgICogICAgIHdpbGwgcmVmbGVjdCB0aGUgTVRleHRQYW5lbCdzIHBhcmFncmFwaCBzdHlsZXMsIGFuZCB1cGRhdGUKKyAgICAgKiAgICAgdGhlIHBhcmFncmFwaCBzdHlsZXMgd2hlbiBtYW5pcHVsYXRlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgVGFiUnVsZXIoaW50IGJhc2VsaW5lLCBpbnQgb3JpZ2luLCBNVGV4dFBhbmVsIHRleHRQYW5lbCkgeworICAgICAgICAKKyAgICAgICAgZkltcGwgPSBuZXcgVGFiUnVsZXJJbXBsKGJhc2VsaW5lLCBvcmlnaW4sIHRleHRQYW5lbCwgdGhpcyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIExpc3RlbiB0byB0aGUgZ2l2ZW4gTVRleHRQYW5lbCBhbmQgcmVmbGVjdCBpdHMgY2hhbmdlcywKKyAgICAgKiBhbmQgdXBkYXRlIGl0cyBwYXJhZ3JhcGggc3R5bGVzIHdoZW4gVGFiUnVsZXIgaXMKKyAgICAgKiBtYW5pcHVsYXRlZC4KKyAgICAgKiBAcGFyYW0gdGV4dFBhbmVsIHRoZSBNVGV4dFBhbmVsIHRvIGxpc3RlbiB0bworICAgICAqLworICAgIHB1YmxpYyB2b2lkIGxpc3RlblRvVGV4dFBhbmVsKE1UZXh0UGFuZWwgdGV4dFBhbmVsKSB7CisKKyAgICAgICAgZkltcGwubGlzdGVuVG9UZXh0UGFuZWwodGV4dFBhbmVsKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoaXMgVGFiUnVsZXIuCisgICAgICogQHJldHVybiB0aGUgYmFja2dyb3VuZCBjb2xvciBvZiB0aGlzIFRhYlJ1bGVyCisgICAgICovCisgICAgcHVibGljIENvbG9yIGdldEJhY2tDb2xvcigpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuZ2V0QmFja0NvbG9yKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgYmFja2dyb3VuZCBjb2xvciBvZiB0aGlzIFRhYlJ1bGVyLgorICAgICAqIEBwYXJhbSBiYWNrQ29sb3IgdGhlIG5ldyBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoaXMgVGFiUnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRCYWNrQ29sb3IoQ29sb3IgYmFja0NvbG9yKSB7CisKKyAgICAgICAgZkltcGwuc2V0QmFja0NvbG9yKGJhY2tDb2xvcik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgTVRhYlJ1bGVyIHJlcHJlc2VudGVkIGJ5IHRoaXMgVGFiUnVsZXIuCisgICAgICogQHJldHVybiB0aGUgTVRhYlJ1bGVyIHJlcHJlc2VudGVkIGJ5IHRoaXMgVGFiUnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgTVRhYlJ1bGVyIGdldFJ1bGVyKCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldFJ1bGVyKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsZWFkaW5nIG1hcmdpbiBvZiB0aGlzIFRhYlJ1bGVyLgorICAgICAqIEByZXR1cm4gdGhlIGxlYWRpbmcgbWFyZ2luIG9mIHRoaXMgVGFiUnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldExlYWRpbmdNYXJnaW4oKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkltcGwuZ2V0TGVhZGluZ01hcmdpbigpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZmlyc3QgbGluZSBpbmRlbnQgb2YgdGhpcyBUYWJSdWxlci4KKyAgICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBsaW5lIGluZGVudCBvZiB0aGlzIFRhYlJ1bGVyCisgICAgICovCisgICAgcHVibGljIGludCBnZXRGaXJzdExpbmVJbmRlbnQoKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkltcGwuZ2V0Rmlyc3RMaW5lSW5kZW50KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB0cmFpbGluZyBtYXJnaW4gb2YgdGhpcyBUYWJSdWxlci4KKyAgICAgKiBAcmV0dXJuIHRoZSB0cmFpbGluZyBtYXJnaW4gb2YgdGhpcyBUYWJSdWxlcgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0VHJhaWxpbmdNYXJnaW4oKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkltcGwuZ2V0VHJhaWxpbmdNYXJnaW4oKTsKKyAgICB9CisgICAgCisgICAgLy8gVGhlIGZvbGxvd2luZyBhcmUgQ29tcG9uZW50IG1ldGhvZHMgd2hpY2ggbmVlZCB0byBiZSBkZWxlZ2F0ZWQgdG8KKyAgICAvLyB0aGUgaW1wbGVtZW50YXRpb246CisgICAgCisgICAgcHVibGljIHZvaWQgcGFpbnQoR3JhcGhpY3MgZykgeworICAgICAgICAKKyAgICAgICAgZkltcGwucGFpbnQoZyk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBEaW1lbnNpb24gZ2V0UHJlZmVycmVkU2l6ZSgpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBmSW1wbC5nZXRQcmVmZXJyZWRTaXplKCk7CisgICAgfQorCisgICAgcHVibGljIERpbWVuc2lvbiBnZXRNaW5pbXVtU2l6ZSgpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBmSW1wbC5nZXRNaW5pbXVtU2l6ZSgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2F3dHVpL1RleHRGcmFtZS5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvYXd0dWkvVGV4dEZyYW1lLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjM5NmZkOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2F3dHVpL1RleHRGcmFtZS5qYXZhCkBAIC0wLDAgKzEsMTI4IEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBUZXh0RnJhbWUuamF2YSx2ICQgJFJldmlzaW9uOiAxLjEgJCAkRGF0ZTogMjAwMC8wNC8yMCAxNzo0MTo0OSAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LmF3dHVpOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlTW9kaWZpZXI7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5SZXNvdXJjZVV0aWxzOworCitpbXBvcnQgamF2YS5hd3QuQm9yZGVyTGF5b3V0OworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworaW1wb3J0IGphdmEuYXd0Lk1lbnU7CitpbXBvcnQgamF2YS5hd3QuTWVudUJhcjsKK2ltcG9ydCBqYXZhLmF3dC5Ub29sa2l0OworCitpbXBvcnQgamF2YS5hd3QuZGF0YXRyYW5zZmVyLkNsaXBib2FyZDsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0FkYXB0ZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93RXZlbnQ7CisKKy8qKgorICogVGV4dEZyYW1lIGlzIGEgRnJhbWUgY29udGFpbmluZyBhbiBlZGl0YWJsZSBUZXh0UGFuZWwsIGEgc2V0IG9mIHN0YW5kYXJkCisgKiBtZW51cywgYW5kIGEgVGFiUnVsZXIuICBUaGlzIGNsYXNzIGNhbiBiZSB1c2VkIGFzLWlzLCBidXQgaXMKKyAqIHByaW1hcmlseSBpbnRlbmRlZCB0byBiZSBhIHNpbXBsZSBleGFtcGxlIG9mIGhvdyB0byB1c2UgdGhlIG90aGVyIGNsYXNzZXMKKyAqIGluIHRoaXMgcGFja2FnZS4KKyAqIEBzZWUgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuVGV4dFBhbmVsCisgKiBAc2VlIEF3dE1lbnVCdWlsZGVyCisgKiBAc2VlIFRhYlJ1bGVyCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBUZXh0RnJhbWUgZXh0ZW5kcyBGcmFtZSB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgVGV4dFBhbmVsIGZUZXh0UGFuZWw7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBuZXcgVGV4dEZyYW1lIHdpdGggbm8gdGV4dCBhbmQgbm8gdGl0bGUuCisgICAgICovCisgICAgcHVibGljIFRleHRGcmFtZSgpIHsKKyAgICAgICAgCisgICAgICAgIHN1cGVyKCk7CisgICAgICAgIGluaXQobnVsbCwgVG9vbGtpdC5nZXREZWZhdWx0VG9vbGtpdCgpLmdldFN5c3RlbUNsaXBib2FyZCgpKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgbmV3IFRleHRGcmFtZSB3aXRoIG5vIHRleHQgYW5kIHRoZSBnaXZlbiB0aXRsZS4KKyAgICAgKiBAcGFyYW0gdGl0bGUgdGhlIHRpdGxlIG9mIHRoaXMgRnJhbWUKKyAgICAgKi8KKyAgICBwdWJsaWMgVGV4dEZyYW1lKFN0cmluZyB0aXRsZSkgeworICAgICAgICAKKyAgICAgICAgc3VwZXIodGl0bGUpOworICAgICAgICBpbml0KG51bGwsIFRvb2xraXQuZ2V0RGVmYXVsdFRvb2xraXQoKS5nZXRTeXN0ZW1DbGlwYm9hcmQoKSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZSBhIG5ldyBUZXh0RnJhbWUgd2l0aCB0aGUgZ2l2ZW4gdGV4dCBhbmQgdGl0bGUsIHdob3NlCisgICAgICogVGV4dFBhbmVsIHdpbGwgdXNlIHRoZSBnaXZlbiBjbGlwYm9hcmQuCisgICAgICogQHBhcmFtIHRleHQgdGhlIGluaXRpYWwgdGV4dCBpbiB0aGUgVGV4dFBhbmVsLiAgSWYgbnVsbCB0aGUKKyAgICAgKiAgICAgIFRleHRQYW5lbCB3aWxsIGluaXRpYWxseSBiZSBlbXB0eQorICAgICAqIEBwYXJhbSB0aXRsZSB0aGUgdGl0bGUgb2YgdGhpcyBGcmFtZQorICAgICAqIEBwYXJhbSBjbGlwYm9hcmQgdGhlIENsaXBib2FyZCB3aGljaCB0aGUgVGV4dFBhbmVsIHdpbGwgdXNlLgorICAgICAqICAgICAgSWYgbnVsbCB0aGUgVGV4dFBhbmVsIHdpbGwgdXNlIGEgcHJpdmF0ZSBDbGlwYm9hcmQKKyAgICAgKi8KKyAgICBwdWJsaWMgVGV4dEZyYW1lKE1Db25zdFRleHQgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0aXRsZSwKKyAgICAgICAgICAgICAgICAgICAgIENsaXBib2FyZCBjbGlwYm9hcmQpIHsKKworICAgICAgICBzdXBlcih0aXRsZSk7CisgICAgICAgIGluaXQodGV4dCwgY2xpcGJvYXJkKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgaW5pdChNQ29uc3RUZXh0IHRleHQsIENsaXBib2FyZCBjbGlwYm9hcmQpIHsKKyAgICAgICAgCisgICAgICAgIGZUZXh0UGFuZWwgPSBuZXcgVGV4dFBhbmVsKHRleHQsIGNsaXBib2FyZCk7CisKKyAgICAgICAgVGFiUnVsZXIgdGFiUnVsZXIgPSBuZXcgVGFiUnVsZXIoMTQsIDEwLCBmVGV4dFBhbmVsKTsKKworICAgICAgICBjcmVhdGVNZW51cygpOworCisgICAgICAgIHNldExheW91dChuZXcgQm9yZGVyTGF5b3V0KCkpOworICAgICAgICBhZGQoZlRleHRQYW5lbCwgIkNlbnRlciIpOworICAgICAgICBhZGQodGFiUnVsZXIsICJOb3J0aCIpOworICAgICAgICBwYWNrKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGNyZWF0ZU1lbnVzKCkgeworCisgICAgICAgIE1lbnVCYXIgbWVudUJhciA9IG5ldyBNZW51QmFyKCk7CisKKyAgICAgICAgQXd0TWVudUJ1aWxkZXIuZ2V0SW5zdGFuY2UoKS5jcmVhdGVNZW51cyhtZW51QmFyLCBmVGV4dFBhbmVsLCB0aGlzKTsKKworICAgICAgICBzZXRNZW51QmFyKG1lbnVCYXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgTVRleHRQYW5lbCBpbiB0aGlzIGZyYW1lLgorICAgICAqLworICAgIHB1YmxpYyBNVGV4dFBhbmVsIGdldFRleHRQYW5lbCgpIHsKKworICAgICAgICByZXR1cm4gZlRleHRQYW5lbDsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICAKKyAgICAgICAgVGV4dEZyYW1lIGZyYW1lID0gbmV3IFRleHRGcmFtZSgpOworICAgICAgICBmcmFtZS5hZGRXaW5kb3dMaXN0ZW5lcihuZXcgV2luZG93QWRhcHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5leGl0KDApOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgZnJhbWUuc2V0U2l6ZSg1NTAsIDcwMCk7CisgICAgICAgIGZyYW1lLnNob3coKTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvYXd0dWkvcGFja2FnZS5odG1sIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvYXd0dWkvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU3ZmNjNDEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9wYWNrYWdlLmh0bWwKQEAgLTAsMCArMSw1IEBACis8aHRtbD4KKzxib2R5IGJnY29sb3I9IndoaXRlIj4KK1Byb3ZpZGVzIGNsYXNzZXMgZm9yIGJ1aWxkaW5nIGFuIEFXVC1iYXNlZCB1c2VyIGludGVyZmFjZSBmb3IgYSBUZXh0UGFuZWwuCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL0F3dERvY3VtZW50V2luZG93LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL0F3dERvY3VtZW50V2luZG93LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYWIwNDAwZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vQXd0RG9jdW1lbnRXaW5kb3cuamF2YQpAQCAtMCwwICsxLDM2NSBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogQXd0RG9jdW1lbnRXaW5kb3cuamF2YSx2ICQgJFJldmlzaW9uOiAxLjIgJCAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNjozMyAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LmRlbW87CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmF3dHVpLlRhYlJ1bGVyOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbExpc3RlbmVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbFNldHRpbmdzOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlZFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlTW9kaWZpZXI7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmF3dHVpLkF3dE1lbnVCdWlsZGVyOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5wcmludC5QcmludGluZ1V0aWxzOworCitpbXBvcnQgamF2YS5hd3QuQm9yZGVyTGF5b3V0OworaW1wb3J0IGphdmEuYXd0LkJ1dHRvbjsKK2ltcG9ydCBqYXZhLmF3dC5EaWFsb2c7CitpbXBvcnQgamF2YS5hd3QuRmlsZURpYWxvZzsKK2ltcG9ydCBqYXZhLmF3dC5HcmlkTGF5b3V0OworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworaW1wb3J0IGphdmEuYXd0Lk1lbnU7CitpbXBvcnQgamF2YS5hd3QuTWVudUJhcjsKK2ltcG9ydCBqYXZhLmF3dC5MYWJlbDsKK2ltcG9ydCBqYXZhLmF3dC5QYW5lbDsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkxpc3RlbmVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0FkYXB0ZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93RXZlbnQ7CisKK2ltcG9ydCBqYXZhLmlvLkZpbGU7CisKK2ltcG9ydCBqYXZhLnRleHQuTWVzc2FnZUZvcm1hdDsKKworLyoqCisgKiBBd3REb2N1bWVudFdpbmRvdyBpcyBhIEZyYW1lIGNvbnRhaW5pbmcgYSBUZXh0UGFuZWwsIHdpdGggYSBkb2N1bWVudAorICogZm9yIHN0b3JpbmcgdGhlIHRleHQgaW4gdGhlIFRleHRQYW5lbC4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIEF3dERvY3VtZW50V2luZG93IGV4dGVuZHMgRnJhbWUgaW1wbGVtZW50cyBEb2N1bWVudFdpbmRvdyB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworCisgICAgcHJpdmF0ZSBUZXh0UGFuZWwgZlRleHRQYW5lbDsKKyAgICBwcml2YXRlIEVkaXRBcHBsaWNhdGlvbiBmQXBwbGljYXRpb247CisgICAgcHJpdmF0ZSBUZXh0RG9jdW1lbnQgZkRvY3VtZW50OworCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgbmV3IEF3dERvY3VtZW50V2luZG93LgorICAgICAqIEBwYXJhbSBhcHBsaWNhdGlvbiB0aGUgYXBwbGljYXRpb24gdGhhdCBvd25zIHRoaXMgZG9jdW1lbnQKKyAgICAgKiBAcGFyYW0gY2xpcGJvYXJkIHRoZSBjbGlwYm9hcmQgdG8gdXNlCisgICAgICogQHBhcmFtIGRvY3VtZW50IHRoZSBkb2N1bWVudCB0byBzaG93IGluIHRoaXMgQXd0RG9jdW1lbnRXaW5kb3cKKyAgICAgKi8KKyAgICBBd3REb2N1bWVudFdpbmRvdyhFZGl0QXBwbGljYXRpb24gYXBwbGljYXRpb24sCisgICAgICAgICAgICAgICAgICAgVGV4dERvY3VtZW50IGRvY3VtZW50LAorICAgICAgICAgICAgICAgICAgIFRleHRQYW5lbFNldHRpbmdzIHRleHRQYW5lbFNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gdXNlVGFiUnVsZXIsCisgICAgICAgICAgICAgICAgICAgVGV4dFBhbmVsTGlzdGVuZXIgbGlzdGVuZXIsCisgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBzdXBwb3J0U3R5bGVkVGV4dCwKKyAgICAgICAgICAgICAgICAgICBib29sZWFuIHN1cHBvcnRQbGFpblRleHQsCisgICAgICAgICAgICAgICAgICAgaW50W10gbWVudXMpIHsKKworICAgICAgICBmQXBwbGljYXRpb24gPSBhcHBsaWNhdGlvbjsKKyAgICAgICAgCisgICAgICAgIGZUZXh0UGFuZWwgPSBuZXcgVGV4dFBhbmVsKHRleHRQYW5lbFNldHRpbmdzLCBudWxsLCBhcHBsaWNhdGlvbi5nZXRDbGlwYm9hcmQoKSk7CisgICAgICAgIGlmIChsaXN0ZW5lciAhPSBudWxsKSB7CisgICAgICAgICAgICBmVGV4dFBhbmVsLmFkZExpc3RlbmVyKGxpc3RlbmVyKTsKKyAgICAgICAgfQorICAgICAgICBzZXREb2N1bWVudChkb2N1bWVudCk7CisKKyAgICAgICAgYWRkTWVudUJhcihzdXBwb3J0U3R5bGVkVGV4dCwgc3VwcG9ydFBsYWluVGV4dCwgbWVudXMpOworCisgICAgICAgIHNldExheW91dChuZXcgQm9yZGVyTGF5b3V0KCkpOworCisgICAgICAgIGlmICh1c2VUYWJSdWxlcikgeworICAgICAgICAgICAgVGFiUnVsZXIgdGFiUnVsZXIgPSBuZXcgVGFiUnVsZXIoMTQsIDEwLCBmVGV4dFBhbmVsKTsKKyAgICAgICAgICAgIGFkZCh0YWJSdWxlciwgIk5vcnRoIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGFkZChmVGV4dFBhbmVsLCAiQ2VudGVyIik7CisgICAgICAgIHBhY2soKTsKKyAgICAgICAgYWRkV2luZG93TGlzdGVuZXIobmV3IFdpbmRvd0FkYXB0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCB3aW5kb3dDbG9zaW5nKFdpbmRvd0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBkb0Nsb3NlKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBhZGRNZW51QmFyKGJvb2xlYW4gc3VwcG9ydFN0eWxlZFRleHQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gc3VwcG9ydFBsYWluVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBtZW51cykgeworICAgICAgICAKKyAgICAgICAgTWVudUJhciBtZW51QmFyID0gbmV3IE1lbnVCYXIoKTsKKyAgICAgICAgU3RyaW5nIG1lbnVUaXRsZSA9IFJlc291cmNlVXRpbHMuZ2V0U3RyaW5nKEVkaXRvclJlc291cmNlcy5GSUxFKTsKKyAgICAgICAgTWVudSBtZW51ID0gbmV3IE1lbnUobWVudVRpdGxlKTsKKyAgICAgICAgbmV3IEF3dEZpbGVNZW51TWFuYWdlcihtZW51LCBmQXBwbGljYXRpb24sIHRoaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRTdHlsZWRUZXh0LCBzdXBwb3J0UGxhaW5UZXh0KTsKKyAgICAgICAgbWVudUJhci5hZGQobWVudSk7CisKKyAgICAgICAgQXd0TWVudUJ1aWxkZXIuZ2V0SW5zdGFuY2UoKS5jcmVhdGVNZW51cyhtZW51QmFyLCBmVGV4dFBhbmVsLCB0aGlzLCBtZW51cyk7CisgICAgICAgIHNldE1lbnVCYXIobWVudUJhcik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIGl0IGlzIE9LIHRvIHNldCB0aGUgZG9jdW1lbnQgdGV4dCBhbmQgZmlsZSB0bworICAgICAqIHNvbWV0aGluZyBkaWZmZXJlbnQuCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGNhbkNoYW5nZURvY3VtZW50cygpIHsKKworICAgICAgICAvLyBJZiB0aGUgdGV4dCBpcyBtb2RpZmllZCwgZ2l2ZSB0aGUgdXNlciBhIGNoYW5jZSB0bworICAgICAgICAvLyBzYXZlIGl0LiAgT3RoZXJ3aXNlIHJldHVybiB0cnVlLgorCisgICAgICAgIGlmIChmRG9jdW1lbnQuaXNNb2RpZmllZCgpKSB7CisgICAgICAgICAgICBieXRlIHNhdmUgPSBhc2tTYXZlKHRoaXMsIGdldFRpdGxlKCkpOworICAgICAgICAgICAgaWYgKHNhdmUgPT0gWUVTKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGRvU2F2ZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHNhdmUgPT0gTk87CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBzZXREb2N1bWVudChUZXh0RG9jdW1lbnQgZG9jdW1lbnQpIHsKKworICAgICAgICBmRG9jdW1lbnQgPSBkb2N1bWVudDsKKyAgICAgICAgZkRvY3VtZW50LnNldFRleHRQYW5lbChmVGV4dFBhbmVsKTsKKyAgICAgICAgc2V0VGl0bGUoZkRvY3VtZW50LmdldFRpdGxlKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgZG9jdW1lbnQgdG8gZW1wdHkgdGV4dCB3aXRoIG5vIGFzc29jaWF0ZWQgZmlsZS4gIElmCisgICAgICogdGhlIGRvY3VtZW50IHRleHQgaXMgbm90IHNhdmVkLCBwcm9tcHQgdGhlIHVzZXIgdG8gc2F2ZSB0aGUKKyAgICAgKiB0aGUgdGV4dCBmaXJzdC4gIElmIHRoaXMgb3BlcmF0aW9uIGlzIGNhbmNlbGVkLCB0aGUgZG9jdW1lbnQKKyAgICAgKiBpcyB1bmNoYW5nZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgZG9OZXcoKSB7CisKKyAgICAgICAgaWYgKCFjYW5DaGFuZ2VEb2N1bWVudHMoKSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBzZXREb2N1bWVudChmQXBwbGljYXRpb24uY3JlYXRlTmV3RG9jdW1lbnQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJvbXB0IHRoZSB1c2VyIGZvciBhIGZpbGUgZnJvbSB3aGljaCB0byBsb2FkIGEgdGV4dCBkb2N1bWVudC4KKyAgICAgKiBJZiB0aGUgY3VycmVudCB0ZXh0IGlzIG5vdCBzYXZlZCwgZmlyc3QgcHJvbXB0IHRoZSB1c2VyIHRvCisgICAgICogc2F2ZS4gIElmIGVpdGhlciBvcGVyYXRpb24gaXMgY2FuY2VsZWQgb3IgZmFpbHMsIHRoZSBkb2N1bWVudAorICAgICAqIGlzIHVuY2hhbmdlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBkb09wZW4oKSB7CisKKyAgICAgICAgaWYgKCFjYW5DaGFuZ2VEb2N1bWVudHMoKSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgVGV4dERvY3VtZW50IGRvY3VtZW50ID0gZkFwcGxpY2F0aW9uLm9wZW5Eb2N1bWVudCh0aGlzKTsKKworICAgICAgICBpZiAoZG9jdW1lbnQgIT0gbnVsbCkgeworICAgICAgICAgICAgc2V0RG9jdW1lbnQoZG9jdW1lbnQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJvbXB0IHRoZSB1c2VyIGZvciBhIGZpbGUgaW4gd2hpY2ggdG8gc2F2ZSB0aGUgZG9jdW1lbnQgdGV4dC4KKyAgICAgKiBJZiB0aGlzIG9wZXJhdGlvbiBpcyBub3QgY2FuY2VsZWQsIHNhdmUgdGhlIHRleHQgaW4gdGhlIGZpbGUuCisgICAgICogVGhlIGZpbGUgYmVjb21lcyB0aGlzIGRvY3VtZW50J3MgZmlsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBkb1NhdmVBcyhpbnQgZm9ybWF0KSB7CisKKyAgICAgICAgU3RyaW5nIHRpdGxlID0gUmVzb3VyY2VVdGlscy5nZXRTdHJpbmcoRWRpdG9yUmVzb3VyY2VzLlNBVkVfVElUTEUpOworICAgICAgICBGaWxlIGZpbGUgPSBnZXRGaWxlRnJvbURpYWxvZyhmRG9jdW1lbnQuZ2V0RmlsZSgpLCB0aXRsZSwgdGhpcywgRmlsZURpYWxvZy5TQVZFKTsKKyAgICAgICAgCisgICAgICAgIGlmIChmaWxlID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZkRvY3VtZW50LnNldEZpbGUoZmlsZSk7CisgICAgICAgIHNldFRpdGxlKGZEb2N1bWVudC5nZXRUaXRsZSgpKTsKKworICAgICAgICBmRG9jdW1lbnQuc2V0Rm9ybWF0KGZvcm1hdCk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkRvY3VtZW50LnNhdmUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTYXZlIHRoZSB0ZXh0IGluIHRoaXMgZG9jdW1lbnQuICBJZiB0aGVyZSBpcyBubyBmaWxlIGFzc29jaWF0ZWQKKyAgICAgKiB3aXRoIHRoZSB0ZXh0LCB0aGlzIGlzIGVxdWl2YWxlbnQgdG8gPGNvZGU+ZG9TYXZlQXM8L2NvZGU+LgorICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdHJ1ZSBpZiB0aGUgZG9jdW1lbnQgd2FzIHN1Y2Nlc3NmdWxseSBzYXZlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBkb1NhdmUoKSB7CisKKyAgICAgICAgaWYgKGZEb2N1bWVudC5nZXRGaWxlKCkgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGRvU2F2ZUFzKGZEb2N1bWVudC5nZXRGb3JtYXQoKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBmRG9jdW1lbnQuc2F2ZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFByaW50IHRoZSBjb250ZW50cyBvZiB0aGlzIHdpbmRvdy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBkb1ByaW50KCkgeworCisgICAgICAgIFByaW50aW5nVXRpbHMudXNlclByaW50VGV4dChmRG9jdW1lbnQuZ2V0VGV4dCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlRleHRQYW5lbC5nZXREZWZhdWx0VmFsdWVzKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRUaXRsZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBdHRlbXB0IHRvIGNsb3NlIHRoaXMgd2luZG93LiAgSWYgdGhlIHRleHQgaGFzIG5vdCBiZWVuIHNhdmVkLAorICAgICAqIGdpdmUgdGhlIHVzZXIgYSBjaGFuY2UgdG8gc2F2ZSB0aGUgdGV4dCBiZWZvcmUgY2xvc2luZyB0aGUKKyAgICAgKiB3aW5kb3cuICBJZiB0aGUgdXNlciBjYW5jZWxzIHRoaXMgb3BlcmF0aW9uLCB0aGlzIG1ldGhvZCByZXR1cm5zCisgICAgICogZmFsc2UgYW5kIHRoZSB3aW5kb3cgaXMgbm90IGNsb3NlZDsgIG90aGVyd2lzZSB0aGlzIG1ldGhvZAorICAgICAqIHJldHVybnMgdHJ1ZSBhbmQgdGhlIHdpbmRvdyBpcyBjbG9zZWQuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZG9DbG9zZSgpIHsKKworICAgICAgICBpZiAoY2FuQ2hhbmdlRG9jdW1lbnRzKCkpIHsKKyAgICAgICAgICAgIHNldFZpc2libGUoZmFsc2UpOworICAgICAgICAgICAgZGlzcG9zZSgpOworICAgICAgICAgICAgZkFwcGxpY2F0aW9uLnJlbW92ZURvY3VtZW50V2luZG93KHRoaXMpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSBhIGZpbGUgZnJvbSBhIGRpYWxvZy4gIElmIHRoZSB1c2VyIGRvZXMgbm90CisgICAgICogc2VsZWN0IGEgZmlsZSBpbiB0aGUgZGlhbG9nIHRoaXMgbWV0aG9kIHJldHVybnMgbnVsbC4KKyAgICAgKiBAcGFyYW0ga2luZCBlaXRoZXIgRmlsZURpYWxvZy5MT0FEIG9yIEZpbGVEaWFsb2cuU0FWRS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEZpbGUgZ2V0RmlsZUZyb21EaWFsb2coRmlsZSBvcmlnRmlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGRpYWxvZ1RpdGxlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJhbWUgb3duZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBraW5kKSB7CisgICAgICAgIAorICAgICAgICBGaWxlRGlhbG9nIGRpYWxvZyA9IG5ldyBGaWxlRGlhbG9nKG93bmVyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWFsb2dUaXRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraW5kKTsKKyAgICAgICAgaWYgKG9yaWdGaWxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIGRpYWxvZy5zZXREaXJlY3Rvcnkob3JpZ0ZpbGUuZ2V0UGFyZW50KCkpOworICAgICAgICAgICAgZGlhbG9nLnNldEZpbGUob3JpZ0ZpbGUuZ2V0TmFtZSgpKTsKKyAgICAgICAgfQorICAgICAgICBkaWFsb2cuc2hvdygpOworICAgICAgICBTdHJpbmcgZmlsZVN0ciA9IGRpYWxvZy5nZXRGaWxlKCk7CisgICAgICAgIFN0cmluZyBkaXJTdHIgPSBkaWFsb2cuZ2V0RGlyZWN0b3J5KCk7CisgICAgICAgIAorICAgICAgICBGaWxlIGZpbGUgPSBudWxsOworICAgICAgICAKKyAgICAgICAgaWYgKGZpbGVTdHIgIT0gbnVsbCkgeworICAgICAgICAgICAgZmlsZSA9IG5ldyBGaWxlKGRpclN0ciwgZmlsZVN0cik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBmaWxlOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIFlFUyA9IDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBOTyA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBDQU5DRUwgPSAyOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgRGlhbG9nTGlzdGVuZXIgaW1wbGVtZW50cyBBY3Rpb25MaXN0ZW5lciB7CisKKyAgICAgICAgRGlhbG9nIGZEaWFsb2c7CisgICAgICAgIEJ1dHRvbiBmWWVzLCBmTm8sIGZDYW5jZWw7CisgICAgICAgIGJ5dGUgZlN0YXRlOworCisgICAgICAgIERpYWxvZ0xpc3RlbmVyKERpYWxvZyBkaWFsb2csCisgICAgICAgICAgICAgICAgICAgICAgIEJ1dHRvbiB5ZXMsCisgICAgICAgICAgICAgICAgICAgICAgIEJ1dHRvbiBubywKKyAgICAgICAgICAgICAgICAgICAgICAgQnV0dG9uIGNhbmNlbCkgeworCisgICAgICAgICAgICBmRGlhbG9nID0gZGlhbG9nOworICAgICAgICAgICAgZlllcyA9IHllczsKKyAgICAgICAgICAgIGZObyA9IG5vOworICAgICAgICAgICAgZkNhbmNlbCA9IGNhbmNlbDsKKyAgICAgICAgICAgIGZZZXMuYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgICAgICBmTm8uYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgICAgICBmQ2FuY2VsLmFkZEFjdGlvbkxpc3RlbmVyKHRoaXMpOworICAgICAgICAgICAgZlN0YXRlID0gLTE7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZXZlbnQpIHsKKworICAgICAgICAgICAgT2JqZWN0IHNvdXJjZSA9IGV2ZW50LmdldFNvdXJjZSgpOworICAgICAgICAgICAgaWYgKHNvdXJjZSA9PSBmWWVzKSB7CisgICAgICAgICAgICAgICAgZlN0YXRlID0gWUVTOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoc291cmNlID09IGZObykgeworICAgICAgICAgICAgICAgIGZTdGF0ZSA9IE5POworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoc291cmNlID09IGZDYW5jZWwpIHsKKyAgICAgICAgICAgICAgICBmU3RhdGUgPSBDQU5DRUw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZEaWFsb2cuZGlzcG9zZSgpOworICAgICAgICB9CisKKyAgICAgICAgYnl0ZSBnZXRTdGF0ZSgpIHsKKworICAgICAgICAgICAgcmV0dXJuIGZTdGF0ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIERpc3BsYXkgYSBkaWFsb2cgdGhhdCBhc2tzIHdoZXRoZXIgdGhlIHVzZXIgd2FudHMgdG8KKyAgICAgKiBzYXZlIGEgZG9jdW1lbnQuICBQb3NzaWJsZSByZXBvbnNlcyBhcmUgWWVzLCBObywgYW5kCisgICAgICogQ2FuY2VsLiAgVGhlIHJldHVybmVkIHZhbHVlIGluZGljYXRlcyB3aGljaCByZXNwb25zZQorICAgICAqIHdhcyBjaG9zZW4uCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgYnl0ZSBhc2tTYXZlKEZyYW1lIHBhcmVudCwgU3RyaW5nIGZpbGVOYW1lKSB7CisKKyAgICAgICAgRGlhbG9nIGRpYWxvZyA9IG5ldyBEaWFsb2cocGFyZW50LCB0cnVlKTsKKyAgICAgICAgZGlhbG9nLnNldExheW91dChuZXcgR3JpZExheW91dCgwLCAxKSk7CisgICAgICAgIAorICAgICAgICBTdHJpbmcgcGF0dGVybiA9IFJlc291cmNlVXRpbHMuZ2V0U3RyaW5nKEVkaXRvclJlc291cmNlcy5TQVZFX01TRyk7CisgICAgICAgIFN0cmluZyB0ZXh0ID0gTWVzc2FnZUZvcm1hdC5mb3JtYXQocGF0dGVybiwgbmV3IE9iamVjdFtdIHtmaWxlTmFtZX0pOworICAgICAgICBkaWFsb2cuYWRkKG5ldyBMYWJlbCh0ZXh0LCBMYWJlbC5DRU5URVIpKTsKKyAgICAgICAgCisgICAgICAgIEJ1dHRvbiB5ZXMgPSBuZXcgQnV0dG9uKFJlc291cmNlVXRpbHMuZ2V0U3RyaW5nKEVkaXRvclJlc291cmNlcy5ZRVMpKTsKKyAgICAgICAgQnV0dG9uIG5vID0gbmV3IEJ1dHRvbihSZXNvdXJjZVV0aWxzLmdldFN0cmluZyhFZGl0b3JSZXNvdXJjZXMuTk8pKTsKKyAgICAgICAgQnV0dG9uIGNhbmNlbCA9IG5ldyBCdXR0b24oUmVzb3VyY2VVdGlscy5nZXRTdHJpbmcoRWRpdG9yUmVzb3VyY2VzLkNBTkNFTCkpOworCisgICAgICAgIFBhbmVsIHBhbmVsID0gbmV3IFBhbmVsKCk7CisgICAgICAgIHBhbmVsLmFkZCh5ZXMpOworICAgICAgICBwYW5lbC5hZGQobm8pOworICAgICAgICBwYW5lbC5hZGQoY2FuY2VsKTsKKyAgICAgICAgZGlhbG9nLmFkZChwYW5lbCk7CisKKyAgICAgICAgRGlhbG9nTGlzdGVuZXIgbGlzdGVuZXIgPSBuZXcgRGlhbG9nTGlzdGVuZXIoZGlhbG9nLCB5ZXMsIG5vLCBjYW5jZWwpOworCisgICAgICAgIGRpYWxvZy5zZXRTaXplKDIyMCwgMTMwKTsKKyAgICAgICAgZGlhbG9nLnNob3coKTsKKworICAgICAgICByZXR1cm4gbGlzdGVuZXIuZ2V0U3RhdGUoKTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9Bd3RGaWxlTWVudU1hbmFnZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vQXd0RmlsZU1lbnVNYW5hZ2VyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjlkZjJkNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vQXd0RmlsZU1lbnVNYW5hZ2VyLmphdmEKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogQXd0RmlsZU1lbnVNYW5hZ2VyLmphdmEsdiAkICRSZXZpc2lvbjogMS4xICQgJERhdGU6IDIwMDAvMDQvMjAgMTc6NDM6MDkgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5kZW1vOworCitpbXBvcnQgamF2YS5hd3QuTWVudTsKK2ltcG9ydCBqYXZhLmF3dC5NZW51SXRlbTsKKworZmluYWwgY2xhc3MgQXd0RmlsZU1lbnVNYW5hZ2VyIGV4dGVuZHMgRmlsZU1lbnVNYW5hZ2VyIHsKKworICAgIHByaXZhdGUgTWVudSBmTWVudTsKKyAgICAKKyAgICBwdWJsaWMgQXd0RmlsZU1lbnVNYW5hZ2VyKE1lbnUgbWVudSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVkaXRBcHBsaWNhdGlvbiBhcHBsaWNhdGlvbiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEb2N1bWVudFdpbmRvdyBkb2N1bWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gc3VwcG9ydFN0eWxlZEZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gc3VwcG9ydFBsYWluRm9ybWF0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBzdXBlcihhcHBsaWNhdGlvbiwgZG9jdW1lbnQpOworICAgICAgICAKKyAgICAgICAgZk1lbnUgPSBtZW51OworICAgICAgICBjcmVhdGVJdGVtcyhzdXBwb3J0U3R5bGVkRm9ybWF0LCBzdXBwb3J0UGxhaW5Gb3JtYXQpOworICAgICAgICBmTWVudSA9IG51bGw7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBPYmplY3QgYWRkTWVudUl0ZW0oU3RyaW5nIGtleSkgeworCisgICAgICAgIE1lbnVJdGVtIGl0ZW0gPSBSZXNvdXJjZVV0aWxzLmNyZWF0ZU1lbnVJdGVtKGtleSk7CisgICAgICAgIGl0ZW0uYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgIGZNZW51LmFkZChpdGVtKTsKKyAgICAgICAgcmV0dXJuIGl0ZW07CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIGFkZFNlcGFyYXRvcigpIHsKKyAgICAKKyAgICAgICAgZk1lbnUuYWRkKG5ldyBNZW51SXRlbSgiLSIpKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL0NvZGVFZGl0LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL0NvZGVFZGl0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2E4ZTg4YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vQ29kZUVkaXQuamF2YQpAQCAtMCwwICsxLDEyNCBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogQ29kZUVkaXQuamF2YSx2ICQgJFJldmlzaW9uOiAxLjMgJCAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNjozMyAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LmRlbW87CisKK2ltcG9ydCBqYXZhLmF3dC5GaWxlRGlhbG9nOworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworaW1wb3J0IGphdmEuYXd0Lk1lbnU7CitpbXBvcnQgamF2YS5hd3QuTWVudUJhcjsKK2ltcG9ydCBqYXZhLmF3dC5Ub29sa2l0OworCitpbXBvcnQgamF2YS5pby5GaWxlOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLlRleHRBdHRyaWJ1dGU7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5NVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxTZXR0aW5nczsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmF3dHVpLkF3dE1lbnVCdWlsZGVyOworCitwdWJsaWMgY2xhc3MgQ29kZUVkaXQgZXh0ZW5kcyBFZGl0QXBwbGljYXRpb24geworICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgCisgICAgcHJvdGVjdGVkIGZpbmFsIFRleHRQYW5lbFNldHRpbmdzIGZTZXR0aW5nczsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworCisgICAgICAgIGlmIChhcmdzLmxlbmd0aCA+IDAgJiYgYXJnc1swXS5lcXVhbHMoIi1zd2luZyIpKSB7CisgICAgICAgICAgICBuZXcgY29tLmlibS5yaWNodGV4dC5zd2luZ2RlbW8uU3dpbmdDb2RlRWRpdChhcmdzLDEpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbmV3IENvZGVFZGl0KGFyZ3MsIDApOworICAgICAgICB9CisgICAgfQorCisgICAgcHJvdGVjdGVkIENvZGVFZGl0KFN0cmluZ1tdIGFyZ3MsIGludCBzdGFydCkgeworCisgICAgICAgIHN1cGVyKFRvb2xraXQuZ2V0RGVmYXVsdFRvb2xraXQoKS5nZXRTeXN0ZW1DbGlwYm9hcmQoKSwKKyAgICAgICAgICAgICAgVGV4dERvY3VtZW50LlBMQUlOX1RFWFQpOworCisgICAgICAgIEF0dHJpYnV0ZU1hcCBkZWZhdWx0U3R5bGUgPSBuZXcgQXR0cmlidXRlTWFwKFRleHRBdHRyaWJ1dGUuU0laRSwgbmV3IEZsb2F0KDEyKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hZGRBdHRyaWJ1dGUoVGV4dEF0dHJpYnV0ZS5GQU1JTFksICJNb25vc3BhY2VkIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgZlNldHRpbmdzID0gVGV4dFBhbmVsLmdldERlZmF1bHRTZXR0aW5ncygpOworICAgICAgICBmU2V0dGluZ3Muc2V0V3JhcHMoZmFsc2UpOworICAgICAgICBmU2V0dGluZ3MuYWRkRGVmYXVsdFZhbHVlcyhkZWZhdWx0U3R5bGUpOworICAgICAgICAKKyAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID09IHN0YXJ0KSB7CisgICAgICAgICAgICBkb05ld1dpbmRvdygpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgYm9vbGVhbiBvcGVuZWRBRG9jdW1lbnQgPSBmYWxzZTsKKyAgICAgICAgICAgIGZvciAoaW50IGk9c3RhcnQ7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKSB7CisKKyAgICAgICAgICAgICAgICBGaWxlIGZpbGUgPSBuZXcgRmlsZShhcmdzW2ldKTsKKyAgICAgICAgICAgICAgICBUZXh0RG9jdW1lbnQgZG9jdW1lbnQgPSBudWxsOworICAgICAgICAgICAgICAgIFRocm93YWJsZSBlcnJvciA9IG51bGw7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQgPSBUZXh0RG9jdW1lbnQuY3JlYXRlRnJvbUZpbGUoZmlsZSwgVGV4dERvY3VtZW50LlBMQUlOX1RFWFQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBlcnJvciA9IGU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChlcnJvciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGVycm9yLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYWRkRG9jdW1lbnQoZG9jdW1lbnQpOworICAgICAgICAgICAgICAgICAgICBvcGVuZWRBRG9jdW1lbnQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghb3BlbmVkQURvY3VtZW50KSB7CisgICAgICAgICAgICAgICAgcXVpdCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBEb2N1bWVudFdpbmRvdyBjcmVhdGVEb2N1bWVudFdpbmRvdyhUZXh0RG9jdW1lbnQgZG9jdW1lbnQpIHsKKworICAgICAgICByZXR1cm4gbmV3IEF3dERvY3VtZW50V2luZG93KHRoaXMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZTZXR0aW5ncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3ludGF4Q29sb3JlcigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVudXMpOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludFtdIG1lbnVzID0geyBBd3RNZW51QnVpbGRlci5FRElULCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBd3RNZW51QnVpbGRlci5CSURJLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF3dE1lbnVCdWlsZGVyLkFCT1VUIH07CisKKyAgICBwdWJsaWMgVGV4dERvY3VtZW50IG9wZW5Eb2N1bWVudChGcmFtZSBkaWFsb2dQYXJlbnQpIHsKKyAgICAKKyAgICAgICAgU3RyaW5nIHRpdGxlID0gUmVzb3VyY2VVdGlscy5nZXRTdHJpbmcoRWRpdG9yUmVzb3VyY2VzLk9QRU5fVElUTEUpOworICAgICAgICAKKyAgICAgICAgRmlsZSBmaWxlID0gQXd0RG9jdW1lbnRXaW5kb3cuZ2V0RmlsZUZyb21EaWFsb2cobnVsbCwgdGl0bGUsIGRpYWxvZ1BhcmVudCwgRmlsZURpYWxvZy5MT0FEKTsKKyAgICAgICAgaWYgKGZpbGUgIT0gbnVsbCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gVGV4dERvY3VtZW50LmNyZWF0ZUZyb21GaWxlKGZpbGUsIFRleHREb2N1bWVudC5QTEFJTl9URVhUKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vRG9jdW1lbnRXaW5kb3cuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vRG9jdW1lbnRXaW5kb3cuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44MDY0MDAzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9Eb2N1bWVudFdpbmRvdy5qYXZhCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IERvY3VtZW50V2luZG93LmphdmEsdiAkICRSZXZpc2lvbjogMS4xICQgJERhdGU6IDIwMDAvMDQvMjAgMTc6NDM6MDkgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5kZW1vOworCitwdWJsaWMgaW50ZXJmYWNlIERvY3VtZW50V2luZG93IHsKKworICAgIHB1YmxpYyB2b2lkIGRvTmV3KCk7CisgICAgCisgICAgcHVibGljIHZvaWQgZG9PcGVuKCk7CisgICAgCisgICAgcHVibGljIGJvb2xlYW4gZG9DbG9zZSgpOworICAgIAorICAgIHB1YmxpYyBib29sZWFuIGRvU2F2ZSgpOworICAgIAorICAgIHB1YmxpYyBib29sZWFuIGRvU2F2ZUFzKGludCBmb3JtYXQpOworICAgIAorICAgIHB1YmxpYyB2b2lkIGRvUHJpbnQoKTsKKyAgICAKKyAgICBwdWJsaWMgdm9pZCBzZXRTaXplKGludCB3ZCwgaW50IGh0KTsKKyAgICAKKyAgICBwdWJsaWMgdm9pZCBzaG93KCk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9FZGl0QXBwbGljYXRpb24uamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vRWRpdEFwcGxpY2F0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjIwNDc5NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vRWRpdEFwcGxpY2F0aW9uLmphdmEKQEAgLTAsMCArMSwxMjggQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IEVkaXRBcHBsaWNhdGlvbi5qYXZhLHYgJCAkUmV2aXNpb246IDEuMiAkICREYXRlOiAyMDAyLzAyLzE2IDAzOjA2OjMzICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuZGVtbzsKKworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworaW1wb3J0IGphdmEuYXd0Lk1lbnVCYXI7CisKK2ltcG9ydCBqYXZhLmF3dC5kYXRhdHJhbnNmZXIuQ2xpcGJvYXJkOworCitpbXBvcnQgamF2YS50ZXh0Lk1lc3NhZ2VGb3JtYXQ7CisKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxTZXR0aW5nczsKKworcHVibGljIGFic3RyYWN0IGNsYXNzIEVkaXRBcHBsaWNhdGlvbiB7CisKKyAgICBwcml2YXRlIENsaXBib2FyZCBmQ2xpcGJvYXJkOworICAgIHByaXZhdGUgaW50IGZEZWZhdWx0Rm9ybWF0OworICAgIHByaXZhdGUgVmVjdG9yIGZXaW5kb3dzID0gbmV3IFZlY3RvcigpOworICAgIHByaXZhdGUgaW50IGZVbnRpdGxlZENvdW50ID0gMDsKKyAgICAKKyAgICBwcm90ZWN0ZWQgRWRpdEFwcGxpY2F0aW9uKENsaXBib2FyZCBjbGlwYm9hcmQsIGludCBkZWZhdWx0Rm9ybWF0KSB7CisgICAgICAgIAorICAgICAgICBmQ2xpcGJvYXJkID0gY2xpcGJvYXJkOworICAgICAgICBmRGVmYXVsdEZvcm1hdCA9IGRlZmF1bHRGb3JtYXQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIE5ldyBkb2N1bWVudHMgYXJlIG5hbWVkICJVbnRpdGxlZCAxIiwgIlVudGl0bGVkIDIiLCBldGMuICBUaGlzCisgICAgICogbWV0aG9kIHJldHVybnMgdGhlIGFwcHJvcHJpYXRlIG5hbWUgZm9yIHRoZSBuZXh0IG5ldyBkb2N1bWVudC4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXh0IG5ldyBkb2N1bWVudCBuYW1lCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgZ2V0TmV4dE5ld05hbWUoKSB7CisKKyAgICAgICAgZlVudGl0bGVkQ291bnQgKz0gMTsKKyAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSBSZXNvdXJjZVV0aWxzLmdldFN0cmluZyhFZGl0b3JSZXNvdXJjZXMuVU5USVRMRURfTVNHKTsKKyAgICAgICAgcmV0dXJuIE1lc3NhZ2VGb3JtYXQuZm9ybWF0KHBhdHRlcm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117bmV3IEludGVnZXIoZlVudGl0bGVkQ291bnQpfSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBmaW5hbCBDbGlwYm9hcmQgZ2V0Q2xpcGJvYXJkKCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZDbGlwYm9hcmQ7CisgICAgfQorCisgICAgcHJvdGVjdGVkIGFic3RyYWN0IERvY3VtZW50V2luZG93IGNyZWF0ZURvY3VtZW50V2luZG93KFRleHREb2N1bWVudCBkb2N1bWVudCk7CisgICAgCisgICAgcHVibGljIGFic3RyYWN0IFRleHREb2N1bWVudCBvcGVuRG9jdW1lbnQoRnJhbWUgZGlhbG9nUGFyZW50KTsKKyAgICAKKyAgICBwdWJsaWMgZmluYWwgVGV4dERvY3VtZW50IGNyZWF0ZU5ld0RvY3VtZW50KCkgeworICAgIAorICAgICAgICBTdHJpbmcgbmFtZSA9IGdldE5leHROZXdOYW1lKCk7CisgICAgICAgIGludCBmb3JtYXQgPSBmRGVmYXVsdEZvcm1hdDsKKyAgICAgICAgcmV0dXJuIFRleHREb2N1bWVudC5jcmVhdGVFbXB0eShuYW1lLCBmb3JtYXQpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgZmluYWwgdm9pZCBkb05ld1dpbmRvdygpIHsKKyAgICAgICAgCisgICAgICAgIGFkZERvY3VtZW50KFRleHREb2N1bWVudC5jcmVhdGVFbXB0eShnZXROZXh0TmV3TmFtZSgpLCBmRGVmYXVsdEZvcm1hdCkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgZmluYWwgdm9pZCBhZGREb2N1bWVudChUZXh0RG9jdW1lbnQgZG9jdW1lbnQpIHsKKyAgICAgICAgCisgICAgICAgIGZpbmFsIERvY3VtZW50V2luZG93IHdpbmRvdyA9IGNyZWF0ZURvY3VtZW50V2luZG93KGRvY3VtZW50KTsKKworICAgICAgICB3aW5kb3cuc2V0U2l6ZSg1MDAsIDQwMCk7CisgICAgICAgIHdpbmRvdy5zaG93KCk7CisgICAgICAgIGZXaW5kb3dzLmFkZEVsZW1lbnQod2luZG93KTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmVtb3ZlIGRvY3VtZW50IGZyb20gbGlzdCBvZiBkb2N1bWVudHMuICBRdWl0IGFwcGxpY2F0aW9uIGlmIGxpc3QKKyAgICAgKiBsZW5ndGggZmFsbHMgdG8gemVyby4KKyAgICAgKiBAcGFyYW0gZG9jdW1lbnQgdGhlIGRvY3VtZW50IHRvIHJlbW92ZQorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHJlbW92ZURvY3VtZW50V2luZG93KERvY3VtZW50V2luZG93IHdpbmRvdykgeworCisgICAgICAgIGZXaW5kb3dzLnJlbW92ZUVsZW1lbnQod2luZG93KTsKKyAgICAgICAgaWYgKGZXaW5kb3dzLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgcXVpdCgpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogR28gdGhyb3VnaCBsaXN0IG9mIGRvY3VtZW50cyBhbmQgYXR0ZW1wdCB0byBjbG9zZSBlYWNoIGRvY3VtZW50LgorICAgICAqIElmIGFsbCBkb2N1bWVudHMgY2xvc2Ugc3VjY2Vzc2Z1bGx5LCB0aGVuIGV4aXQuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgZG9FeGl0KCkgeworCisgICAgICAgIC8vIENsb25lIGZXaW5kb3dzIHNpbmNlIGl0IGNhbiBnZXQgbW9kaWZpZWQgd2hpbGUgYmVpbmcgdHJhdmVyc2VkLgorICAgICAgICBWZWN0b3Igd2luZG93cyA9IChWZWN0b3IpIGZXaW5kb3dzLmNsb25lKCk7CisKKyAgICAgICAgaW50IHNpemUgPSB3aW5kb3dzLnNpemUoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAgICAgICBEb2N1bWVudFdpbmRvdyB3aW5kb3cgPSAoRG9jdW1lbnRXaW5kb3cpIHdpbmRvd3MuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgaWYgKCF3aW5kb3cuZG9DbG9zZSgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gcXVpdCB3aWxsIGJlIGNhbGxlZCB3aGVuIGxhc3QgZG9jdW1lbnQgcmVtb3ZlcyBpdHNlbGYKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDYWxsZWQgd2hlbiBsYXN0IGRvY3VtZW50IHdpbmRvdyBjbG9zZXMuICBEZWZhdWx0IGltcGxlbWVudGF0aW9uCisgICAgICogY2FsbHMgU3lzdGVtLmV4aXQuCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgcXVpdCgpIHsKKworICAgICAgICBTeXN0ZW0uZXhpdCgwKTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9FZGl0RGVtby5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9FZGl0RGVtby5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE0YmRiNjcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL0VkaXREZW1vLmphdmEKQEAgLTAsMCArMSwxMzQgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IEVkaXREZW1vLmphdmEsdiAkICRSZXZpc2lvbjogMS4zICQgJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6MzMgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5kZW1vOworCitpbXBvcnQgamF2YS5hd3QuRmlsZURpYWxvZzsKK2ltcG9ydCBqYXZhLmF3dC5GcmFtZTsKK2ltcG9ydCBqYXZhLmF3dC5NZW51OworaW1wb3J0IGphdmEuYXd0Lk1lbnVCYXI7CitpbXBvcnQgamF2YS5hd3QuVG9vbGtpdDsKKworaW1wb3J0IGphdmEuaW8uRmlsZTsKK2ltcG9ydCBqYXZhLmlvLlN0cmVhbUNvcnJ1cHRlZEV4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5NVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxTZXR0aW5nczsKKworLyoqCisgKiBFZGl0RGVtbyBpcyB0aGUgbWFpbiBjbGFzcyBmb3IgYSBzaW1wbGUsIG11bHRpcGxlLWRvY3VtZW50CisgKiBzdHlsZWQgdGV4dCBlZGl0b3IsIGJ1aWx0IHdpdGggdGhlIGNsYXNzZXMgaW4gdGhlIHRleHRwYW5lbAorICogYW5kIHRleHRmcmFtZSBwYWNrYWdlcy4KKyAqIDxwPgorICogVG8gcnVuIEVkaXREZW1vLCB0eXBlOgorICogPGJsb2NrcXVvdGU+PHByZT4KKyAqIGphdmEgY29tLmlibS5yaWNodGV4dC5kZW1vLkVkaXREZW1vIFtmaWxlMV0gW2ZpbGUyXSBbLi4uXQorICogPC9wcmU+PC9ibG9ja3F1b3RlPgorICogd2hlcmUgdGhlIGZpbGVuYW1lcyBhcmUgZmlsZXMgc2F2ZWQgd2l0aCB0aGlzIGRlbW8uCisgKi8KK3B1YmxpYyBjbGFzcyBFZGl0RGVtbyBleHRlbmRzIEVkaXRBcHBsaWNhdGlvbiB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisKKyAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID4gMCAmJiBhcmdzWzBdLmVxdWFscygiLXN3aW5nIikpIHsKKyAgICAgICAgICAgIG5ldyBjb20uaWJtLnJpY2h0ZXh0LnN3aW5nZGVtby5Td2luZ0VkaXREZW1vKGFyZ3MsMSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBuZXcgRWRpdERlbW8oYXJncywgMCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgRWRpdERlbW8oU3RyaW5nW10gYXJncywgaW50IHN0YXJ0KSB7CisKKyAgICAgICAgc3VwZXIoVG9vbGtpdC5nZXREZWZhdWx0VG9vbGtpdCgpLmdldFN5c3RlbUNsaXBib2FyZCgpLCAKKyAgICAgICAgICAgICAgVGV4dERvY3VtZW50LlNUWUxFRF9URVhUKTsKKworICAgICAgICBpZiAoYXJncy5sZW5ndGggPT0gc3RhcnQpIHsKKyAgICAgICAgICAgIGRvTmV3V2luZG93KCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBib29sZWFuIG9wZW5lZEFEb2N1bWVudCA9IGZhbHNlOworICAgICAgICAgICAgZm9yIChpbnQgaT1zdGFydDsgaSA8IGFyZ3MubGVuZ3RoOyBpKyspIHsKKworICAgICAgICAgICAgICAgIEZpbGUgZmlsZSA9IG5ldyBGaWxlKGFyZ3NbaV0pOworICAgICAgICAgICAgICAgIFRleHREb2N1bWVudCBkb2N1bWVudCA9IGdldERvY3VtZW50RnJvbUZpbGUoZmlsZSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgYWRkRG9jdW1lbnQoZG9jdW1lbnQpOworICAgICAgICAgICAgICAgICAgICBvcGVuZWRBRG9jdW1lbnQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghb3BlbmVkQURvY3VtZW50KSB7CisgICAgICAgICAgICAgICAgcXVpdCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgVGV4dERvY3VtZW50IGdldERvY3VtZW50RnJvbUZpbGUoRmlsZSBmaWxlKSB7CisgICAgCisgICAgICAgIEV4Y2VwdGlvbiBleGNlcHRpb24gPSBudWxsOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiBUZXh0RG9jdW1lbnQuY3JlYXRlRnJvbUZpbGUoZmlsZSwgVGV4dERvY3VtZW50LlNUWUxFRF9URVhUKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChTdHJlYW1Db3JydXB0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gVGV4dERvY3VtZW50LmNyZWF0ZUZyb21GaWxlKGZpbGUsIFRleHREb2N1bWVudC5QTEFJTl9URVhUKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoKEV4Y2VwdGlvbiBlMikgeworICAgICAgICAgICAgICAgIGV4Y2VwdGlvbiA9IGUyOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdGNoKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBleGNlcHRpb24gPSBlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkV4Y2VwdGlvbiBvcGVuaW5nIGZpbGUuIik7CisgICAgICAgIGV4Y2VwdGlvbi5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgRG9jdW1lbnRXaW5kb3cgY3JlYXRlRG9jdW1lbnRXaW5kb3coVGV4dERvY3VtZW50IGRvY3VtZW50KSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gbmV3IEF3dERvY3VtZW50V2luZG93KHRoaXMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRQYW5lbC5nZXREZWZhdWx0U2V0dGluZ3MoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgVGV4dERvY3VtZW50IG9wZW5Eb2N1bWVudChGcmFtZSBkaWFsb2dQYXJlbnQpIHsKKyAgICAKKyAgICAgICAgU3RyaW5nIHRpdGxlID0gUmVzb3VyY2VVdGlscy5nZXRTdHJpbmcoRWRpdG9yUmVzb3VyY2VzLk9QRU5fVElUTEUpOworICAgICAgICBGaWxlIGZpbGUgPSBBd3REb2N1bWVudFdpbmRvdy5nZXRGaWxlRnJvbURpYWxvZyhudWxsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlhbG9nUGFyZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWxlRGlhbG9nLkxPQUQpOworICAgICAgICBpZiAoZmlsZSAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0RG9jdW1lbnRGcm9tRmlsZShmaWxlKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vRWRpdG9yUmVzb3VyY2VzLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL0VkaXRvclJlc291cmNlcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNmNDNlYjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL0VkaXRvclJlc291cmNlcy5qYXZhCkBAIC0wLDAgKzEsMTA3IEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBFZGl0b3JSZXNvdXJjZXMuamF2YSx2ICQgJFJldmlzaW9uOiAxLjEgJCAkRGF0ZTogMjAwMC8wNC8yMCAxNzo0MzowOSAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LmRlbW87CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LktleUV2ZW50OworCitwdWJsaWMgZmluYWwgY2xhc3MgRWRpdG9yUmVzb3VyY2VzIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgLy8gbWVudSBuYW1lcyAtIHZhbHVlcyBhcmUgU3RyaW5ncworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEZJTEUgPSAiRmlsZSI7CisKKyAgICAvLyBmaWxlIG1lbnUgaXRlbXMgLSB2YWx1ZXMgYXJlIE1lbnVEYXRhIGluc3RhbmNlcworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIE5FVyA9ICJOZXciOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIE5FV19XSU5ET1cgPSAiTmV3IFdpbmRvdyI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgT1BFTiA9ICJPcGVuLi4uIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTQVZFID0gIlNhdmUiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNBVkVfQVMgPSAiU2F2ZSBBcy4uLiI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0FWRV9BU19TVFlMRUQgPSAiU2F2ZSBBcyBTdHlsZWQgVGV4dC4uLiI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0FWRV9BU19URVhUID0gIlNhdmUgQXMgUGxhaW4gVGV4dC4uLiI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0xPU0UgPSAiQ2xvc2UiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFBSSU5UID0gIlByaW50IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBFWElUID0gIkV4aXQiOworCisgICAgLy8gYnV0dG9uIGxhYmVscyAtIHZhbHVlcyBhcmUgU3RyaW5ncworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFlFUyA9ICJZZXMiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIE5PID0gIk5vIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDQU5DRUwgPSAiQ2FuY2VsIjsKKworICAgIC8vIG1lc3NhZ2Ugc3RyaW5ncyAtIHZhbHVlcyBhcmUgU3RyaW5ncworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNBVkVfTVNHID0gIlNhdmUgezB9IGJlZm9yZSBjbG9zaW5nPyI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgVU5USVRMRURfTVNHID0gIlVudGl0bGVkIHswfSI7CisKKyAgICAvLyB3aW5kb3cgYW5kIGRpYWxvZyB0aXRsZXMgLSB2YWx1ZXMgYXJlIFN0cmluZ3MKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBPUEVOX1RJVExFID0gIk9wZW4gRG9jdW1lbnQiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNBVkVfVElUTEUgPSAiU2F2ZSBBcyI7CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgdGhhdCByZXR1cm5zIGEgdHdvLWVsZW1lbnQKKyAgICAgKiBPYmplY3QgYXJyYXkuICBUaGUgZmlyc3QgZWxlbWVudCBpcyBuYW1lLCB0aGUKKyAgICAgKiBzZWNvbmQgaXMgYSBNZW51RGF0YSBpbnN0YW5jZSB3aXRoIHRoZSBnaXZlbgorICAgICAqIHNob3J0Y3V0LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIE9iamVjdFtdIG1ha2VFbnRyeShTdHJpbmcgbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBzaG9ydEN1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGtleUNvZGUpIHsKKworICAgICAgICByZXR1cm4gbmV3IE9iamVjdFtdIHsgbmFtZSwgbmV3IE1lbnVEYXRhKG5hbWUsIHNob3J0Q3V0LCBrZXlDb2RlKSB9OworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG1ldGhvZCB0aGF0IHJldHVybnMgYSB0d28tZWxlbWVudAorICAgICAqIE9iamVjdCBhcnJheS4gIFRoZSBmaXJzdCBlbGVtZW50IGlzIG5hbWUsIHRoZQorICAgICAqIHNlY29uZCBpcyBhIE1lbnVEYXRhIGluc3RhbmNlLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIE9iamVjdFtdIG1ha2VFbnRyeShTdHJpbmcgbmFtZSkgeworCisgICAgICAgIHJldHVybiBuZXcgT2JqZWN0W10geyBuYW1lLCBuZXcgTWVudURhdGEobmFtZSkgfTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgdGhhdCByZXR1cm5zIGEgdHdvLWVsZW1lbnQKKyAgICAgKiBPYmplY3QgYXJyYXkgaW4gd2hpY2ggYm90aCBlbGVtZW50cyBhcmUgb2JqLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIE9iamVjdFtdIGR1cGxpY2F0ZShPYmplY3Qgb2JqKSB7CisKKyAgICAgICAgcmV0dXJuIG5ldyBPYmplY3RbXSB7IG9iaiwgb2JqIH07CisgICAgfQorCisgICAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisKKyAgICAgICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgICAgICAgIGR1cGxpY2F0ZShGSUxFKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShZRVMpLAorICAgICAgICAgICAgZHVwbGljYXRlKE5PKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShDQU5DRUwpLAorICAgICAgICAgICAgZHVwbGljYXRlKFNBVkVfTVNHKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShTQVZFX1RJVExFKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShPUEVOX1RJVExFKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShVTlRJVExFRF9NU0cpLAorICAgICAgICAgICAgbWFrZUVudHJ5KE5FVywgJ24nLCBLZXlFdmVudC5WS19OKSwKKyAgICAgICAgICAgIG1ha2VFbnRyeShORVdfV0lORE9XKSwKKyAgICAgICAgICAgIG1ha2VFbnRyeShPUEVOLCAnbycsIEtleUV2ZW50LlZLX08pLAorICAgICAgICAgICAgbWFrZUVudHJ5KFNBVkUsICdzJywgS2V5RXZlbnQuVktfUyksCisgICAgICAgICAgICBtYWtlRW50cnkoU0FWRV9BUyksCisgICAgICAgICAgICBtYWtlRW50cnkoU0FWRV9BU19TVFlMRUQpLAorICAgICAgICAgICAgbWFrZUVudHJ5KFNBVkVfQVNfVEVYVCksCisgICAgICAgICAgICBtYWtlRW50cnkoQ0xPU0UpLAorICAgICAgICAgICAgbWFrZUVudHJ5KFBSSU5UKSwKKyAgICAgICAgICAgIG1ha2VFbnRyeShFWElUKSwKKyAgICAgICAgfTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL0ZpbGVNZW51TWFuYWdlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9GaWxlTWVudU1hbmFnZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hMTljMDRkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9GaWxlTWVudU1hbmFnZXIuamF2YQpAQCAtMCwwICsxLDExNiBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogRmlsZU1lbnVNYW5hZ2VyLmphdmEsdiAkICRSZXZpc2lvbjogMS4xICQgJERhdGU6IDIwMDAvMDQvMjAgMTc6NDM6MDkgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5kZW1vOworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uTGlzdGVuZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uRXZlbnQ7CisKKy8qKgorICogVGhpcyBjbGFzcyBjcmVhdGVzIGEgRmlsZSBtZW51IGFuZCBtYW5hZ2VzIHVzZXIgaW50ZXJhY3Rpb25zCisgKiB3aXRoIHRoZSBtZW51LgorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgRmlsZU1lbnVNYW5hZ2VyIGltcGxlbWVudHMgQWN0aW9uTGlzdGVuZXIgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIEVkaXRBcHBsaWNhdGlvbiBmQXBwbGljYXRpb247CisgICAgcHJpdmF0ZSBEb2N1bWVudFdpbmRvdyBmRG9jdW1lbnRXaW5kb3c7CisgICAgcHJpdmF0ZSBPYmplY3QgZk5ldywgZk5ld1dpbmRvdywgZk9wZW4sIGZTYXZlOworICAgIHByaXZhdGUgT2JqZWN0IGZTYXZlQXNTdHlsZWQsIGZTYXZlQXNUZXh0LCBmQ2xvc2UsIGZQcmludCwgZkV4aXQ7CisKKyAgICBwcm90ZWN0ZWQgRmlsZU1lbnVNYW5hZ2VyKEVkaXRBcHBsaWNhdGlvbiBhcHBsaWNhdGlvbiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEb2N1bWVudFdpbmRvdyBkb2N1bWVudCkgeworCisgICAgICAgIGZBcHBsaWNhdGlvbiA9IGFwcGxpY2F0aW9uOworICAgICAgICBmRG9jdW1lbnRXaW5kb3cgPSBkb2N1bWVudDsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIGZpbmFsIHZvaWQgY3JlYXRlSXRlbXMoYm9vbGVhbiBzdXBwb3J0U3R5bGVkRm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gc3VwcG9ydFBsYWluRm9ybWF0KSB7CisgICAgICAgIAorICAgICAgICBpZiAoIXN1cHBvcnRTdHlsZWRGb3JtYXQgJiYgIXN1cHBvcnRQbGFpbkZvcm1hdCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiTXVzdCBzdXBwb3J0IGF0IGxlYXN0IG9uZSBmb3JtYXQuIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZOZXcgPSBhZGRNZW51SXRlbShFZGl0b3JSZXNvdXJjZXMuTkVXKTsKKyAgICAgICAgZk5ld1dpbmRvdyA9IGFkZE1lbnVJdGVtKEVkaXRvclJlc291cmNlcy5ORVdfV0lORE9XKTsKKyAgICAgICAgCisgICAgICAgIGFkZFNlcGFyYXRvcigpOworCisgICAgICAgIGZPcGVuID0gYWRkTWVudUl0ZW0oRWRpdG9yUmVzb3VyY2VzLk9QRU4pOworCisgICAgICAgIGZTYXZlID0gYWRkTWVudUl0ZW0oRWRpdG9yUmVzb3VyY2VzLlNBVkUpOworICAgICAgICAKKyAgICAgICAgaWYgKHN1cHBvcnRTdHlsZWRGb3JtYXQpIHsKKyAgICAgICAgICAgIGlmIChzdXBwb3J0UGxhaW5Gb3JtYXQpIHsKKyAgICAgICAgICAgICAgICBmU2F2ZUFzU3R5bGVkID0gYWRkTWVudUl0ZW0oRWRpdG9yUmVzb3VyY2VzLlNBVkVfQVNfU1RZTEVEKTsKKyAgICAgICAgICAgICAgICBmU2F2ZUFzVGV4dCA9IGFkZE1lbnVJdGVtKEVkaXRvclJlc291cmNlcy5TQVZFX0FTX1RFWFQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgZlNhdmVBc1N0eWxlZCA9IGFkZE1lbnVJdGVtKEVkaXRvclJlc291cmNlcy5TQVZFX0FTKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZTYXZlQXNUZXh0ID0gYWRkTWVudUl0ZW0oRWRpdG9yUmVzb3VyY2VzLlNBVkVfQVMpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBhZGRTZXBhcmF0b3IoKTsKKyAgICAgICAgZkNsb3NlID0gYWRkTWVudUl0ZW0oRWRpdG9yUmVzb3VyY2VzLkNMT1NFKTsKKyAgICAgICAgYWRkU2VwYXJhdG9yKCk7CisgICAgICAgIGZQcmludCA9IGFkZE1lbnVJdGVtKEVkaXRvclJlc291cmNlcy5QUklOVCk7CisgICAgICAgIGFkZFNlcGFyYXRvcigpOworICAgICAgICBmRXhpdCA9IGFkZE1lbnVJdGVtKEVkaXRvclJlc291cmNlcy5FWElUKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIGFic3RyYWN0IE9iamVjdCBhZGRNZW51SXRlbShTdHJpbmcga2V5KTsKKworICAgIHByb3RlY3RlZCBhYnN0cmFjdCB2b2lkIGFkZFNlcGFyYXRvcigpOworICAgIAorICAgIHB1YmxpYyBmaW5hbCB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBldmVudCkgeworCisgICAgICAgIE9iamVjdCBzb3VyY2UgPSBldmVudC5nZXRTb3VyY2UoKTsKKworICAgICAgICBpZiAoc291cmNlID09IGZOZXcpIHsKKyAgICAgICAgICAgIGZEb2N1bWVudFdpbmRvdy5kb05ldygpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHNvdXJjZSA9PSBmTmV3V2luZG93KSB7CisgICAgICAgICAgICBmQXBwbGljYXRpb24uZG9OZXdXaW5kb3coKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChzb3VyY2UgPT0gZk9wZW4pIHsKKyAgICAgICAgICAgIGZEb2N1bWVudFdpbmRvdy5kb09wZW4oKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChzb3VyY2UgPT0gZkNsb3NlKSB7CisgICAgICAgICAgICBmRG9jdW1lbnRXaW5kb3cuZG9DbG9zZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHNvdXJjZSA9PSBmU2F2ZSkgeworICAgICAgICAgICAgZkRvY3VtZW50V2luZG93LmRvU2F2ZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHNvdXJjZSA9PSBmU2F2ZUFzU3R5bGVkKSB7CisgICAgICAgICAgICBmRG9jdW1lbnRXaW5kb3cuZG9TYXZlQXMoVGV4dERvY3VtZW50LlNUWUxFRF9URVhUKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChzb3VyY2UgPT0gZlNhdmVBc1RleHQpIHsKKyAgICAgICAgICAgIGZEb2N1bWVudFdpbmRvdy5kb1NhdmVBcyhUZXh0RG9jdW1lbnQuUExBSU5fVEVYVCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoc291cmNlID09IGZQcmludCkgeworICAgICAgICAgICAgZkRvY3VtZW50V2luZG93LmRvUHJpbnQoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChzb3VyY2UgPT0gZkV4aXQpIHsKKyAgICAgICAgICAgIGZBcHBsaWNhdGlvbi5kb0V4aXQoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBldmVudCBzb3VyY2U6ICIgKyBzb3VyY2UpOworICAgICAgICB9CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vTWVudURhdGEuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vTWVudURhdGEuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jZGY0MWU5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9NZW51RGF0YS5qYXZhCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IE1lbnVEYXRhLmphdmEsdiAkICRSZXZpc2lvbjogMS4xICQgJERhdGU6IDIwMDAvMDQvMjAgMTc6NDM6MDkgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5kZW1vOworCitwdWJsaWMgZmluYWwgY2xhc3MgTWVudURhdGEgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIFN0cmluZyBmTmFtZTsKKyAgICBwcml2YXRlIGJvb2xlYW4gZkhhc1Nob3J0Y3V0OworICAgIHByaXZhdGUgY2hhciBmU2hvcnRjdXQ7CisgICAgcHJpdmF0ZSBpbnQgZlNob3J0Y3V0S2V5Q29kZTsKKworICAgIHB1YmxpYyBNZW51RGF0YShTdHJpbmcgbmFtZSkgeworCisgICAgICAgIGZOYW1lID0gbmFtZTsKKyAgICAgICAgZkhhc1Nob3J0Y3V0ID0gZmFsc2U7CisgICAgfQorCisgICAgcHVibGljIE1lbnVEYXRhKFN0cmluZyBuYW1lLCBjaGFyIGNoLCBpbnQga2V5Q29kZSkgeworCisgICAgICAgIGZOYW1lID0gbmFtZTsKKyAgICAgICAgZkhhc1Nob3J0Y3V0ID0gdHJ1ZTsKKyAgICAgICAgZlNob3J0Y3V0ID0gY2g7CisgICAgICAgIGZTaG9ydGN1dEtleUNvZGUgPSBrZXlDb2RlOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpIHsKKworICAgICAgICByZXR1cm4gZk5hbWU7CisgICAgfQorCisgICAgcHVibGljIGNoYXIgZ2V0U2hvcnRjdXQoKSB7CisKKyAgICAgICAgaWYgKCFmSGFzU2hvcnRjdXQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTWVudSBkb2Vzbid0IGhhdmUgc2hvcnRjdXQiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZlNob3J0Y3V0OworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGdldFNob3J0Y3V0S2V5Q29kZSgpIHsKKyAgICAKKyAgICAgICAgcmV0dXJuIGZTaG9ydGN1dEtleUNvZGU7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaGFzU2hvcnRjdXQoKSB7CisKKyAgICAgICAgcmV0dXJuIGZIYXNTaG9ydGN1dDsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9SZXNvdXJjZVV0aWxzLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL1Jlc291cmNlVXRpbHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lNjdkZjgxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9SZXNvdXJjZVV0aWxzLmphdmEKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogUmVzb3VyY2VVdGlscy5qYXZhLHYgJCAkUmV2aXNpb246IDEuMSAkICREYXRlOiAyMDAwLzA0LzIwIDE3OjQzOjA5ICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuZGVtbzsKKworaW1wb3J0IGphdmEuYXd0Lk1lbnVJdGVtOworaW1wb3J0IGphdmEuYXd0Lk1lbnVTaG9ydGN1dDsKKworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLlJlc291cmNlQnVuZGxlOworCisvKioKKyAqIFV0aWxpdHkgY2xhc3MgZm9yIGRlYWxpbmcgd2l0aCByZXNvdXJjZSBkYXRhLgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgUmVzb3VyY2VVdGlscyB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgc3RhdGljIFJlc291cmNlQnVuZGxlIEJVTkRMRTsKKyAgICBzdGF0aWMgeworICAgICAgICBTdHJpbmcgYnVuZGxlTmFtZSA9ICJjb20uaWJtLnJpY2h0ZXh0LmRlbW8uRWRpdG9yUmVzb3VyY2VzIjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEJVTkRMRSA9IFJlc291cmNlQnVuZGxlLmdldEJ1bmRsZShidW5kbGVOYW1lKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb3VsZG4ndCBsb2FkICIgKyBidW5kbGVOYW1lICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOyAgRXhjZXB0aW9uOiAiICsgZSk7CisgICAgICAgICAgICBCVU5ETEUgPSBuZXcgRWRpdG9yUmVzb3VyY2VzKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRTdHJpbmcoU3RyaW5nIGtleSkgeworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gQlVORExFLmdldFN0cmluZyhrZXkpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4ga2V5OworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBNZW51RGF0YSBnZXRNZW51RGF0YShTdHJpbmcga2V5KSB7CisgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gKE1lbnVEYXRhKSBCVU5ETEUuZ2V0T2JqZWN0KGtleSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgTWVudURhdGEoa2V5KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgcHVibGljIHN0YXRpYyBNZW51SXRlbSBjcmVhdGVNZW51SXRlbShTdHJpbmcga2V5KSB7CisKKyAgICAgICAgTWVudURhdGEgbWVudURhdGEgPSBnZXRNZW51RGF0YShrZXkpOworCisgICAgICAgIGlmIChtZW51RGF0YS5oYXNTaG9ydGN1dCgpKSB7CisgICAgICAgICAgICBNZW51U2hvcnRjdXQgc2hvcnRjdXQgPSBuZXcgTWVudVNob3J0Y3V0KG1lbnVEYXRhLmdldFNob3J0Y3V0KCkpOworICAgICAgICAgICAgcmV0dXJuIG5ldyBNZW51SXRlbShtZW51RGF0YS5nZXROYW1lKCksIHNob3J0Y3V0KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgTWVudUl0ZW0obWVudURhdGEuZ2V0TmFtZSgpKTsKKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL1N5bnRheENvbG9yZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vU3ludGF4Q29sb3Jlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg1NDZkNjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL1N5bnRheENvbG9yZXIuamF2YQpAQCAtMCwwICsxLDI4OCBAQAorLyoKKyAqICRSQ1NmaWxlOiBTeW50YXhDb2xvcmVyLmphdmEsdiAkICRSZXZpc2lvbjogMS4yICQgJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6MzMgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisKK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5kZW1vOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5hd3R1aS5UZXh0RnJhbWU7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxFdmVudDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxMaXN0ZW5lcjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVkVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVNb2RpZmllcjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5UZXh0QXR0cmlidXRlOworCitpbXBvcnQgamF2YS5hd3QuQ29sb3I7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dBZGFwdGVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50OworCitpbXBvcnQgamF2YS50ZXh0LkJyZWFrSXRlcmF0b3I7CitpbXBvcnQgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudGV4dC5Db2xsYXRpb25LZXk7CitpbXBvcnQgamF2YS50ZXh0LkNvbGxhdG9yOworCitpbXBvcnQgamF2YS51dGlsLkVudW1lcmF0aW9uOworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CisKKy8qKgorICogU3ludGF4Q29sb3JlciBpcyBhIFRleHRQYW5lbExpc3RlbmVyIHRoYXQgYXBwbGllcyBhIHN0eWxlCisgKiB0byBhIHNldCBvZiB3b3JkcyBpbiB0aGUgVGV4dFBhbmVsLgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgU3ludGF4Q29sb3JlciBpbXBsZW1lbnRzIFRleHRQYW5lbExpc3RlbmVyIHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIENvbG9yZXIgeworICAgICAgICAKKyAgICAgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAgICAgcHJpdmF0ZSBpbnQgZlN0YXJ0OworICAgICAgICBwcml2YXRlIEhhc2h0YWJsZSBmU3R5bGVNYXA7CisgICAgICAgIHByaXZhdGUgQ29sbGF0b3IgZkNvbGxhdG9yID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgcHJpdmF0ZSBCcmVha0l0ZXJhdG9yIGZCcmVha0l0ZXIgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSgpOworCisgICAgICAgIHByaXZhdGUgU3RyaW5nIGZUZXh0OworICAgICAgICBwcml2YXRlIGludCBmQ3VycmVudFN0YXJ0OworICAgICAgICBwcml2YXRlIGludCBmQ3VycmVudExpbWl0OworICAgICAgICBwcml2YXRlIEF0dHJpYnV0ZU1hcCBmQ3VycmVudFN0eWxlOworICAgICAgICAKKyAgICAgICAgQ29sb3JlcihIYXNodGFibGUgc3R5bGVzKSB7CisKKyAgICAgICAgICAgIGZTdHlsZU1hcCA9IG5ldyBIYXNodGFibGUoc3R5bGVzLnNpemUoKSk7CisKKyAgICAgICAgICAgIEVudW1lcmF0aW9uIGUgPSBzdHlsZXMua2V5cygpOworICAgICAgICAgICAgd2hpbGUgKGUuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgayA9IChTdHJpbmcpIGUubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICBmU3R5bGVNYXAucHV0KGZDb2xsYXRvci5nZXRDb2xsYXRpb25LZXkoayksIHN0eWxlcy5nZXQoaykpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICB2b2lkIHNldChDaGFyYWN0ZXJJdGVyYXRvciB0ZXh0LCBpbnQgc3RhcnQsIGludCBsaW1pdCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBmU3RhcnQgPSBzdGFydDsKKworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHNiID0gbmV3IFN0cmluZ0J1ZmZlcihsaW1pdC1zdGFydCk7CisgICAgICAgICAgICBmb3IgKGNoYXIgYz10ZXh0LnNldEluZGV4KHN0YXJ0KTsgdGV4dC5nZXRJbmRleCgpICE9IGxpbWl0OyBjPXRleHQubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgc2IuYXBwZW5kKGMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZlRleHQgPSBzYi50b1N0cmluZygpOworICAgICAgICAgICAgZkN1cnJlbnRTdGFydCA9IGZDdXJyZW50TGltaXQgPSAwOworICAgICAgICAgICAgZkN1cnJlbnRTdHlsZSA9IEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQOworICAgICAgICAgICAgCisgICAgICAgICAgICBmQnJlYWtJdGVyLnNldFRleHQoZlRleHQpOworICAgICAgICAgICAgZkJyZWFrSXRlci5maXJzdCgpOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgYm9vbGVhbiBuZXh0KCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoZkN1cnJlbnRMaW1pdCA9PSBmVGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGZUZXh0ID0gbnVsbDsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZDdXJyZW50U3RhcnQgPSBmQ3VycmVudExpbWl0OworICAgICAgICAgICAgZkN1cnJlbnRMaW1pdCA9IGZCcmVha0l0ZXIubmV4dCgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgd29yZCA9IGZUZXh0LnN1YnN0cmluZyhmQ3VycmVudFN0YXJ0LCBmQ3VycmVudExpbWl0KTsKKyAgICAgICAgICAgIENvbGxhdGlvbktleSBjayA9IGZDb2xsYXRvci5nZXRDb2xsYXRpb25LZXkod29yZCk7CisgICAgICAgICAgICBmQ3VycmVudFN0eWxlID0gKEF0dHJpYnV0ZU1hcCkgZlN0eWxlTWFwLmdldChjayk7CisgICAgICAgICAgICBpZiAoZkN1cnJlbnRTdHlsZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgZkN1cnJlbnRTdHlsZSA9IEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGludCBjdXJyZW50U3RhcnQoKSB7CisgICAgICAgICAgICByZXR1cm4gZkN1cnJlbnRTdGFydCArIGZTdGFydDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50IGN1cnJlbnRMaW1pdCgpIHsKKyAgICAgICAgICAgIHJldHVybiBmQ3VycmVudExpbWl0ICsgZlN0YXJ0OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBBdHRyaWJ1dGVNYXAgY3VycmVudFN0eWxlKCkgeworICAgICAgICAgICAgcmV0dXJuIGZDdXJyZW50U3R5bGU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIEJyZWFrSXRlcmF0b3IgZkJyZWFrSXRlciA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKCk7CisgICAgcHJpdmF0ZSBDb2xvcmVyIGZDb2xvcmVyOworICAgIHByaXZhdGUgYm9vbGVhbiBmTW9kaWZ5aW5nID0gZmFsc2U7CisgICAgcHJpdmF0ZSBBdHRyaWJ1dGVNYXAgZkRlZmF1bHRLZXl3b3JkU3R5bGUgPSBBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUDsKKyAgICBwcml2YXRlIEhhc2h0YWJsZSBmTW9kaWZpZXJDYWNoZTsKKyAgICAKKyAgICBwdWJsaWMgU3ludGF4Q29sb3JlcigpIHsKKyAgICAgICAgCisgICAgICAgIHRoaXMobnVsbCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTeW50YXhDb2xvcmVyKE1UZXh0UGFuZWwgcGFuZWwpIHsKKyAgICAgICAgCisgICAgICAgIEhhc2h0YWJsZSBodCA9IG5ldyBIYXNodGFibGUoKTsKKworICAgICAgICAvL1VuY29tbWVudCB0aGlzIHRvIG1ha2Uga2V5d29yZHMgYXBwZWFyIHJpZ2h0LXRvLWxlZnQhCisgICAgICAgIC8vZkRlZmF1bHRLZXl3b3JkU3R5bGUgPSBmRGVmYXVsdEtleXdvcmRTdHlsZS5hZGRBdHRyaWJ1dGUoVGV4dEF0dHJpYnV0ZS5CSURJX0VNQkVERElORywgCisgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEludGVnZXIoLTEpKTsKKyAgICAgICAgCisgICAgICAgIGZEZWZhdWx0S2V5d29yZFN0eWxlID0gZkRlZmF1bHRLZXl3b3JkU3R5bGUuYWRkQXR0cmlidXRlKFRleHRBdHRyaWJ1dGUuVU5ERVJMSU5FLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLlVOREVSTElORV9PTik7CisgICAgICAgIGZEZWZhdWx0S2V5d29yZFN0eWxlID0gZkRlZmF1bHRLZXl3b3JkU3R5bGUuYWRkQXR0cmlidXRlKFRleHRBdHRyaWJ1dGUuRk9SRUdST1VORCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yLmJsdWUpOworICAgICAgICAKKyAgICAgICAgU3RyaW5nW10gamF2YVdvcmRzID0geyJhYnN0cmFjdCIgLCAiYm9vbGVhbiIsICJicmVhayIsICJieXRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJieXZhbHVlIiwgImNhc2UiLCAiY2FzdCIsICJkZWZhdWx0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkbyIsICJkb3VibGUiLCAiZWxzZSIsICJleHRlbmRzIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmFsc2UiLCAiZmluYWwiLCAiZ290byIsICJpZiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW1wbGVtZW50cyIsICJpbXBvcnQiLCAiaW5uZXIiLCAiaW5zdGFuY2VvZiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW50IiwgIm9wZXJhdG9yIiwgIm91dGVyIiwgInBhY2thZ2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByaXZhdGUiLCAicHJvdGVjdGVkIiwgInB1YmxpYyIsICJyZXN0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzeW5jaHJvbml6ZWQiLCAidGhpcyIsICJ0aHJvdyIsICJ0aHJvd3MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRyYW5zaWVudCIsICJ0cnVlIiwgInRyeSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY2F0Y2giLCAiY2hhciIsICJjb25zdCIsICJjb250aW51ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmluYWxseSIsICJmbG9hdCIsICJmb3IiLCAiZnV0dXJlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJnZW5lcmljIiwgImludGVyZmFjZSIsICJsb25nIiwgIm5hdGl2ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmV3IiwgIm51bGwiLCAicmV0dXJuIiwgInNob3J0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0aWMiLCAic3VwZXIiLCAic3dpdGNoIiwgInZhciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidm9pZCIsICJ2b2xhdGlsZSIsICJ3aGlsZSIsICJjbGFzcyJ9OworCisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IGphdmFXb3Jkcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaHQucHV0KGphdmFXb3Jkc1tpXSwgZkRlZmF1bHRLZXl3b3JkU3R5bGUpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmQ29sb3JlciA9IG5ldyBDb2xvcmVyKGh0KTsKKyAgICAgICAgCisgICAgICAgIGlmIChwYW5lbCAhPSBudWxsKSB7CisgICAgICAgICAgICBNQ29uc3RUZXh0IHRleHQgPSBwYW5lbC5nZXRUZXh0KCk7CisgICAgICAgICAgICBjb2xvclJhbmdlKDAsIHRleHQubGVuZ3RoKCksIHRleHQuY3JlYXRlQ2hhcmFjdGVySXRlcmF0b3IoKSwgcGFuZWwpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmTW9kaWZpZXJDYWNoZSA9IG5ldyBIYXNodGFibGUoMik7CisgICAgICAgIGZNb2RpZmllckNhY2hlLnB1dChmRGVmYXVsdEtleXdvcmRTdHlsZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHlsZU1vZGlmaWVyLmNyZWF0ZVJlcGxhY2VNb2RpZmllcihmRGVmYXVsdEtleXdvcmRTdHlsZSkpOworICAgICAgICBmTW9kaWZpZXJDYWNoZS5wdXQoQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVAsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVSZXBsYWNlTW9kaWZpZXIoQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVApKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGJvb2xlYW4gcmVzcG9uZHNUb0V2ZW50VHlwZShpbnQgdHlwZSkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHR5cGUgPT0gVGV4dFBhbmVsRXZlbnQuVEVYVF9DSEFOR0VEOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCB0ZXh0RXZlbnRPY2N1cnJlZChUZXh0UGFuZWxFdmVudCBlKSB7CisKKyAgICAgICAgaWYgKGZNb2RpZnlpbmcpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgTVRleHRQYW5lbCBwYW5lbCA9IChNVGV4dFBhbmVsKSBlLmdldFNvdXJjZSgpOworICAgICAgICAKKyAgICAgICAgZmluYWwgTUNvbnN0VGV4dCB0ZXh0ID0gcGFuZWwuZ2V0VGV4dCgpOworICAgICAgICBpbnQgc3RhcnQgPSB0ZXh0LmRhbWFnZWRSYW5nZVN0YXJ0KCk7CisgICAgICAgIGludCBsaW1pdCA9IHRleHQuZGFtYWdlZFJhbmdlTGltaXQoKTsKKyAgICAgICAgaWYgKHN0YXJ0ID4gbGltaXQpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgQ2hhcmFjdGVySXRlcmF0b3IgdGV4dEl0ZXIgPSB0ZXh0LmNyZWF0ZUNoYXJhY3Rlckl0ZXJhdG9yKCk7CisgICAgICAgIAorICAgICAgICBmQnJlYWtJdGVyLnNldFRleHQodGV4dEl0ZXIpOworICAgICAgICBpZiAoc3RhcnQgPiAwKSB7CisgICAgICAgICAgICBpZiAoc3RhcnQgPT0gdGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGZCcmVha0l0ZXIubGFzdCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgZkJyZWFrSXRlci5mb2xsb3dpbmcoc3RhcnQtMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdGFydCA9IGZCcmVha0l0ZXIucHJldmlvdXMoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAobGltaXQgPCB0ZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICBmQnJlYWtJdGVyLmZvbGxvd2luZyhsaW1pdCk7CisgICAgICAgICAgICBpbnQgbDsKKyAgICAgICAgICAgIGlmICgobD1mQnJlYWtJdGVyLnByZXZpb3VzKCkpIDw9IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgbGltaXQgPSBmQnJlYWtJdGVyLm5leHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZk1vZGlmeWluZyA9IHRydWU7CisgICAgICAgIGNvbG9yUmFuZ2Uoc3RhcnQsIGxpbWl0LCB0ZXh0SXRlciwgcGFuZWwpOworICAgICAgICBmTW9kaWZ5aW5nID0gZmFsc2U7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBjb2xvclJhbmdlKGZpbmFsIGludCBzdGFydCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgaW50IGxpbWl0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciB0ZXh0SXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBNVGV4dFBhbmVsIHBhbmVsKSB7CisgICAgICAgIAorICAgICAgICBmQ29sb3Jlci5zZXQodGV4dEl0ZXIsIHN0YXJ0LCBsaW1pdCk7CisKKyAgICAgICAgTUNvbnN0VGV4dCBvbGRUZXh0ID0gcGFuZWwuZ2V0VGV4dCgpOworICAgICAgICBNVGV4dCBuZXdUZXh0ID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIHdoaWxlIChmQ29sb3Jlci5uZXh0KCkpIHsKKworICAgICAgICAgICAgaW50IHJhbmdlU3RhcnQgPSBmQ29sb3Jlci5jdXJyZW50U3RhcnQoKTsKKyAgICAgICAgICAgIGludCByYW5nZUxpbWl0ID0gZkNvbG9yZXIuY3VycmVudExpbWl0KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBzdHlsZSA9IGZDb2xvcmVyLmN1cnJlbnRTdHlsZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAob2xkVGV4dC5jaGFyYWN0ZXJTdHlsZUxpbWl0KHJhbmdlU3RhcnQpIDwgcmFuZ2VMaW1pdCB8fAorICAgICAgICAgICAgICAgICAgICBvbGRUZXh0LmNoYXJhY3RlclN0eWxlQXQocmFuZ2VTdGFydCkgIT0gc3R5bGUpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGludCBjc3RhcnQgPSByYW5nZVN0YXJ0LXN0YXJ0OworICAgICAgICAgICAgICAgIGludCBjbGltaXQgPSByYW5nZUxpbWl0LXN0YXJ0OworICAgICAgICAgICAgICAgIGlmIChuZXdUZXh0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgbmV3VGV4dCA9IG5ldyBTdHlsZWRUZXh0KG9sZFRleHQsIHN0YXJ0LCBsaW1pdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN0eWxlTW9kaWZpZXIgbW9kID0gKFN0eWxlTW9kaWZpZXIpIGZNb2RpZmllckNhY2hlLmdldChzdHlsZSk7CisgICAgICAgICAgICAgICAgbmV3VGV4dC5tb2RpZnlDaGFyYWN0ZXJTdHlsZXMoY3N0YXJ0LCBjbGltaXQsIG1vZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChuZXdUZXh0ICE9IG51bGwpIHsKKyAgICAgICAgCisgICAgICAgICAgICBpbnQgb2xkU3RhcnQgPSBwYW5lbC5nZXRTZWxlY3Rpb25TdGFydCgpOworICAgICAgICAgICAgaW50IG9sZExpbWl0ID0gcGFuZWwuZ2V0U2VsZWN0aW9uRW5kKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHBhbmVsLnJlcGxhY2VSYW5nZShuZXdUZXh0LCBzdGFydCwgbGltaXQpOyAgICAgICAgICAgIAorICAgIAorICAgICAgICAgICAgcGFuZWwuc2VsZWN0KG9sZFN0YXJ0LCBvbGRMaW1pdCk7CisgICAgICAgICAgICBpZiAob2xkU3RhcnQgPT0gb2xkTGltaXQpIHsKKyAgICAgICAgICAgICAgICBTdHlsZU1vZGlmaWVyIG1vZCA9IChTdHlsZU1vZGlmaWVyKSBmTW9kaWZpZXJDYWNoZS5nZXQoQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVApOyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBwYW5lbC5tb2RpZnlDaGFyYWN0ZXJTdHlsZU9uU2VsZWN0aW9uKG1vZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICAKKyAgICAgICAgVGV4dEZyYW1lIGYgPSBuZXcgVGV4dEZyYW1lKCk7CisgICAgICAgIGYuYWRkV2luZG93TGlzdGVuZXIobmV3IFdpbmRvd0FkYXB0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCB3aW5kb3dDbG9zaW5nKFdpbmRvd0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXhpdCgwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIGYuc2V0U2l6ZSg0MDAsIDMwMCk7CisgICAgICAgIE1UZXh0UGFuZWwgcGFuZWwgPSBmLmdldFRleHRQYW5lbCgpOworICAgICAgICBwYW5lbC5hZGRMaXN0ZW5lcihuZXcgU3ludGF4Q29sb3JlcihwYW5lbCkpOworICAgICAgICBmLnNob3coKTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9UZXh0RG9jdW1lbnQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vVGV4dERvY3VtZW50LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2M0NjRjZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vVGV4dERvY3VtZW50LmphdmEKQEAgLTAsMCArMSwzNTEgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IFRleHREb2N1bWVudC5qYXZhLHYgJCAkUmV2aXNpb246IDEuMyAkICREYXRlOiAyMDAyLzAyLzE2IDAzOjA2OjM0ICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuZGVtbzsKKworaW1wb3J0IGphdmEuaW8uKjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVkVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5NVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKKworLyoqCisgKiBBIFRleHREb2N1bWVudCBoYW5kbGVzIHRoZSBhc3NvY2lhdGlvbiBiZXR3ZWVuIGEgZmlsZSBvbiBkaXNrCisgKiBhbmQgYSBUZXh0UGFuZWwuCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBUZXh0RG9jdW1lbnQgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQlVGX1NJWkUgPSAxMDI0OworICAgIAorICAgIHByaXZhdGUgU3RyaW5nIGZUaXRsZTsKKyAgICBwcml2YXRlIE1Db25zdFRleHQgZlRleHQ7CisgICAgcHJpdmF0ZSBGaWxlIGZGaWxlOworICAgIHByaXZhdGUgTVRleHRQYW5lbCBmVGV4dFBhbmVsID0gbnVsbDsKKyAgICBwcml2YXRlIGJvb2xlYW4gaXNNb2RpZmllZCA9IGZhbHNlOworICAgIHByaXZhdGUgaW50IGZGb3JtYXQgPSBTVFlMRURfVEVYVDsKKyAgICAKKyAgICBwcml2YXRlIFRleHREb2N1bWVudChTdHJpbmcgdGl0bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgTUNvbnN0VGV4dCB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgIEZpbGUgZmlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZm9ybWF0KSB7CisgICAgICAgIAorICAgICAgICBmVGl0bGUgPSB0aXRsZTsKKyAgICAgICAgZlRleHQgPSB0ZXh0OworICAgICAgICBmRmlsZSA9IGZpbGU7CisgICAgICAgIHNldEZvcm1hdChmb3JtYXQpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTVFlMRURfVEVYVCA9IDA7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUExBSU5fVEVYVCA9IDE7CisgICAgCisgICAgLyoqIAorICAgICAqIFJldHVybiBhIG5ldyBUZXh0RG9jdW1lbnQgd2l0aCBubyBhc3NvY2lhdGVkIGZpbGUgYW5kCisgICAgICogZW1wdHkgdGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFRleHREb2N1bWVudCBjcmVhdGVFbXB0eShTdHJpbmcgdGl0bGUsIGludCBmb3JtYXQpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBuZXcgVGV4dERvY3VtZW50KHRpdGxlLCBuZXcgU3R5bGVkVGV4dCgpLCBudWxsLCBmb3JtYXQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBUZXh0RG9jdW1lbnQgY3JlYXRlZCBmcm9tIHRoZSBjb250ZW50cyBvZiB0aGUgZ2l2ZW4KKyAgICAgKiBmaWxlLiAgVGhpcyBtZXRob2QgbWF5IHRocm93IGFuIGV4Y2VwdGlvbiBpZiB0aGUgZmlsZSBjYW5ub3QKKyAgICAgKiBiZSByZWFkLiAgSW4gcGFydGljdWxhciwgaWYgdGhlIGZvcm1hdCBpcyBnaXZlbiBhcyBTVFlMRURfVEVYVAorICAgICAqIGJ1dCB0aGUgZmlsZSBkb2VzIG5vdCBjb250YWluIGEgc2VyaWFsaXplZCBNQ29uc3RUZXh0LCAKKyAgICAgKiB0aGlzIG1ldGhvZCB3aWxsIHRocm93IFN0cmVhbUNvcnJ1cHRlZEV4Y2VwdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFRleHREb2N1bWVudCBjcmVhdGVGcm9tRmlsZShGaWxlIGZpbGUsIGludCBmb3JtYXQpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICAKKyAgICAgICAgaWYgKGZvcm1hdCAhPSBTVFlMRURfVEVYVCAmJiBmb3JtYXQgIT0gUExBSU5fVEVYVCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBmb3JtYXQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgTUNvbnN0VGV4dCB0ZXh0OworICAgICAgICBpZiAoZm9ybWF0ID09IFNUWUxFRF9URVhUKSB7CisgICAgICAgICAgICB0ZXh0ID0gcmVhZE1UZXh0KGZpbGUpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdGV4dCA9IHJlYWRNVGV4dEZyb21UZXh0RmlsZShmaWxlKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgVGV4dERvY3VtZW50IGRvY3VtZW50ID0gbmV3IFRleHREb2N1bWVudChmaWxlLmdldE5hbWUoKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdCk7CisgICAgICAgIHJldHVybiBkb2N1bWVudDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhpcyBkb2N1bWVudCdzIHRleHQgZGlmZmVycyBmcm9tIHRoZSBjb250ZW50cworICAgICAqIG9mIGl0cyBmaWxlLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzTW9kaWZpZWQoKSB7CisgICAgICAgIAorICAgICAgICBpZiAoZlRleHRQYW5lbCA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gaXNNb2RpZmllZDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBmVGV4dFBhbmVsLmlzTW9kaWZpZWQoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIE1UZXh0UGFuZWwgdGhhdCB3aWxsIGJlIHVzZWQgdG8gZWRpdCB0aGUgZG9jdW1lbnQncworICAgICAqIHRleHQuICBUaGUgZG9jdW1lbnQncyB0ZXh0IGJlY29tZXMgdGhlIGNvbnRlbnRzIG9mIHRoZQorICAgICAqIE1UZXh0UGFuZWwuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGV4dFBhbmVsKE1UZXh0UGFuZWwgdGV4dFBhbmVsKSB7CisKKyAgICAgICAgaWYgKGZUZXh0UGFuZWwgIT0gbnVsbCkgeworICAgICAgICAgICAgZlRleHQgPSBmVGV4dFBhbmVsLmdldFRleHQoKTsKKyAgICAgICAgICAgIGlzTW9kaWZpZWQgPSBmVGV4dFBhbmVsLmlzTW9kaWZpZWQoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZlRleHRQYW5lbCA9IHRleHRQYW5lbDsKKyAgICAgICAgCisgICAgICAgIGlmIChmVGV4dFBhbmVsICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwuc2V0VGV4dChmVGV4dCk7CisgICAgICAgICAgICBmVGV4dCA9IG51bGw7CisgICAgICAgICAgICBmVGV4dFBhbmVsLnNldE1vZGlmaWVkKGlzTW9kaWZpZWQpOworICAgICAgICAgICAgZlRleHRQYW5lbC5jbGVhckNvbW1hbmRMb2coKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgRmlsZSBnZXRGaWxlKCkgeworICAgIAorICAgICAgICByZXR1cm4gZkZpbGU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGlzIGRvY3VtZW50J3MgZmlsZS4gIFRoZSBkb2N1bWVudCdzIHRpdGxlIHdpbGwKKyAgICAgKiBjaGFuZ2UgdG8gdGhlIGZpbGUgbmFtZS4gIFRoZSBmaWxlIGNhbm5vdCBiZSBudWxsLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEZpbGUoRmlsZSBmaWxlKSB7CisgICAgICAgIAorICAgICAgICBmRmlsZSA9IGZpbGU7CisgICAgICAgIGZUaXRsZSA9IGZpbGUuZ2V0TmFtZSgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGZvcm1hdCBvZiB0aGlzIGRvY3VtZW50LiAgVGhlIGZvcm1hdCBkZXRlcm1pbmVzCisgICAgICogd2hldGhlciB0aGUgZG9jdW1lbnQgd2lsbCBiZSB3cml0dGVuIHRvIGZpbGVzIGFzIHN0eWxlZAorICAgICAqIHRleHQgb3IgcGxhaW4gY2hhcmFjdGVycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRGb3JtYXQoaW50IGZvcm1hdCkgeworICAgICAgICAKKyAgICAgICAgaWYgKGZvcm1hdCAhPSBTVFlMRURfVEVYVCAmJiBmb3JtYXQgIT0gUExBSU5fVEVYVCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBmb3JtYXQiKTsKKyAgICAgICAgfQorICAgICAgICBmRm9ybWF0ID0gZm9ybWF0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGZvcm1hdCBvZiB0aGlzIGRvY3VtZW50LgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0Rm9ybWF0KCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZGb3JtYXQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFdyaXRlIHRoZSBkb2N1bWVudCdzIHRleHQgdG8gaXRzIGZpbGUuICBJZiB0aGUgZG9jdW1lbnQgZG9lcworICAgICAqIG5vdCBoYXZlIGFuIGFzc29jaWF0ZWQgZmlsZSB0aGVuIHRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQgdG8KKyAgICAgKiBzYXZlQXMuICBUaGlzIG1ldGhvZCByZXR1cm5zIHRydWUgaWYgdGhlIHNhdmUgb3BlcmF0aW9uIHN1Y2NlZWRzLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIHNhdmUoKSB7CisKKyAgICAgICAgaWYgKGZGaWxlID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJDYW4ndCBzYXZlIHdpdGhvdXQgYSBmaWxlLiIpOworICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgIE1Db25zdFRleHQgdGV4dCA9IGdldFRleHQoKTsKKyAgICAgICAgYm9vbGVhbiBzdWNjZXNzID0gZkZvcm1hdD09U1RZTEVEX1RFWFQ/IHdyaXRlTVRleHQoZkZpbGUsIHRleHQpIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlUGxhaW5NVGV4dChmRmlsZSwgdGV4dCk7CisgICAgICAgIGlmIChzdWNjZXNzICYmIGZUZXh0UGFuZWwgIT0gbnVsbCkgeworICAgICAgICAgICAgZlRleHRQYW5lbC5zZXRNb2RpZmllZChmYWxzZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN1Y2Nlc3M7CisgICAgfQorICAgIAorICAgIC8qKiAKKyAgICAgKiBSZXR1cm4gdGhpcyBkb2N1bWVudCdzIHN0eWxlZCB0ZXh0LgorICAgICAqLworICAgIHB1YmxpYyBNQ29uc3RUZXh0IGdldFRleHQoKSB7CisgICAgICAgIAorICAgICAgICBpZiAoZlRleHRQYW5lbCA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZlRleHQ7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZlRleHRQYW5lbC5nZXRUZXh0KCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB0aXRsZSBvZiB0aGlzIGRvY3VtZW50LgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0VGl0bGUoKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZlRpdGxlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIE1UZXh0IHNlcmlhbGl6ZWQgaW4gdGhlIGdpdmVuIGZpbGUuCisgICAgICogSW4gY2FzZSBvZiBhbiBlcnJvciByZXR1cm4gbnVsbC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBNQ29uc3RUZXh0IHJlYWRNVGV4dChGaWxlIGZpbGUpIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIEZpbGVJbnB1dFN0cmVhbSBpblN0cmVhbSA9IG51bGw7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgaW5TdHJlYW0gPSBuZXcgRmlsZUlucHV0U3RyZWFtKGZpbGUpOworICAgICAgICAgICAgT2JqZWN0SW5wdXRTdHJlYW0gb2JqU3RyZWFtID0gbmV3IE9iamVjdElucHV0U3RyZWFtKGluU3RyZWFtKTsKKworICAgICAgICAgICAgcmV0dXJuIChNQ29uc3RUZXh0KSBvYmpTdHJlYW0ucmVhZE9iamVjdCgpOworICAgICAgICB9CisgICAgICAgIGZpbmFsbHkgeworICAgICAgICAgICAgaWYgKGluU3RyZWFtICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBpblN0cmVhbS5jbG9zZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZWFkIHRoZSBnaXZlbiBmaWxlIGFzIGEgcGxhaW4gdGV4dCBmaWxlLCBhbmQgcmV0dXJuIGl0cworICAgICAqIGNvbnRlbnRzIGFzIGFuIE1Db25zdFRleHQuICBUaGUgY2hhcmFjdGVyIGFuZCBwYXJhZ3JhcGggc3R5bGVzIGluIAorICAgICAqIHRoZSByZXR1cm5lZCB0ZXh0IHdpbGwgYmUgRU1QVFlfQVRUUklCVVRFX01BUC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBNQ29uc3RUZXh0IHJlYWRNVGV4dEZyb21UZXh0RmlsZShGaWxlIGZpbGUpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICAKKyAgICAgICAgSW5wdXRTdHJlYW1SZWFkZXIgaW4gPSBudWxsOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGluID0gbmV3IEZpbGVSZWFkZXIoZmlsZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIE1UZXh0IHRleHQgPSBuZXcgU3R5bGVkVGV4dCgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBjaGFyW10gYnVmID0gbmV3IGNoYXJbQlVGX1NJWkVdOworICAgICAgICAgICAgaW50IHJlYWQ7CisgICAgICAgICAgICB3aGlsZSAoKHJlYWQ9aW4ucmVhZChidWYsIDAsIGJ1Zi5sZW5ndGgpKSAhPSAtMSkgeworICAgICAgICAgICAgICAgIGludCBsZW4gPSB0ZXh0Lmxlbmd0aCgpOworICAgICAgICAgICAgICAgIHRleHQucmVwbGFjZShsZW4sIGxlbiwgYnVmLCAwLCByZWFkLCBBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdGV4dDsKKyAgICAgICAgfQorICAgICAgICBmaW5hbGx5IHsKKyAgICAgICAgICAgIGlmIChpbiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgaW4uY2xvc2UoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2goSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBdHRlbXB0IHRvIHNhdmUgdGhlIGdpdmVuIHRleHQgaW4gdGhlIGdpdmVuIGZpbGUuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBvcGVyYXRpb24gc3VjY2VlZGVkCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiB3cml0ZU1UZXh0KEZpbGUgZmlsZSwgTUNvbnN0VGV4dCB0ZXh0KSB7CisKKyAgICAgICAgVGhyb3dhYmxlIGVycm9yID0gbnVsbDsKKyAgICAgICAgT3V0cHV0U3RyZWFtIG91dFN0cmVhbSA9IG51bGw7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgb3V0U3RyZWFtID0gbmV3IEZpbGVPdXRwdXRTdHJlYW0oZmlsZSk7CisgICAgICAgICAgICBPYmplY3RPdXRwdXRTdHJlYW0gb2JqU3RyZWFtID0gbmV3IE9iamVjdE91dHB1dFN0cmVhbShvdXRTdHJlYW0pOworCisgICAgICAgICAgICBvYmpTdHJlYW0ud3JpdGVPYmplY3QodGV4dCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJyb3IgPSBlOworICAgICAgICB9CisgICAgICAgIGNhdGNoKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJvciA9IGU7CisgICAgICAgIH0KKyAgICAgICAgZmluYWxseSB7CisgICAgICAgICAgICBpZiAob3V0U3RyZWFtICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBvdXRTdHJlYW0uY2xvc2UoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2goSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworCisgICAgICAgIGlmIChlcnJvciAhPSBudWxsKSB7CisgICAgICAgICAgICBlcnJvci5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogV3JpdGUgdGhlIGdpdmVuIE1Db25zdFRleHQgdG8gdGhlIGdpdmVuIGZpbGUgYXMgcGxhaW4gdGV4dC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIHdyaXRlUGxhaW5NVGV4dChGaWxlIGZpbGUsIE1Db25zdFRleHQgdGV4dCkgeworCisgICAgICAgIFRocm93YWJsZSBlcnJvciA9IG51bGw7CisgICAgICAgIE91dHB1dFN0cmVhbVdyaXRlciBvdXRTdHJlYW0gPSBudWxsOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG91dFN0cmVhbSA9IG5ldyBGaWxlV3JpdGVyKGZpbGUpOworICAgICAgICAgICAgY2hhcltdIGJ1ZiA9IG5ldyBjaGFyW0JVRl9TSVpFXTsKKyAgICAgICAgICAgIGludCBsZW5ndGggPSB0ZXh0Lmxlbmd0aCgpOworICAgICAgICAgICAgaW50IHN0YXJ0ID0gMDsKKyAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICBpbnQgY291bnQgPSBNYXRoLm1pbihsZW5ndGgtc3RhcnQsIGJ1Zi5sZW5ndGgpOworICAgICAgICAgICAgICAgIHRleHQuZXh0cmFjdENoYXJzKHN0YXJ0LCBzdGFydCtjb3VudCwgYnVmLCAwKTsKKyAgICAgICAgICAgICAgICBvdXRTdHJlYW0ud3JpdGUoYnVmLCAwLCBjb3VudCk7CisgICAgICAgICAgICAgICAgc3RhcnQgKz0gY291bnQ7CisgICAgICAgICAgICB9IHdoaWxlIChzdGFydCA8IGxlbmd0aCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJyb3IgPSBlOworICAgICAgICB9CisgICAgICAgIGZpbmFsbHkgeworICAgICAgICAgICAgaWYgKG91dFN0cmVhbSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgb3V0U3RyZWFtLmNsb3NlKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKworICAgICAgICBpZiAoZXJyb3IgIT0gbnVsbCkgeworICAgICAgICAgICAgZXJyb3IucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9tYW5pZmVzdC5zdHViIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvbWFuaWZlc3Quc3R1YgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNDBjZTUxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvbWFuaWZlc3Quc3R1YgpAQCAtMCwwICsxLDEzIEBACitNYWluLUNsYXNzOiBjb20uaWJtLnJpY2h0ZXh0LmRlbW8uRWRpdERlbW8KK01hbmlmZXN0LVZlcnNpb246IDEuMAorU3BlY2lmaWNhdGlvbi1UaXRsZTogSUNVIGZvciBKYXZhIFJpY2hFZGl0CitTcGVjaWZpY2F0aW9uLVZlcnNpb246IDIuMgorU3BlY2lmaWNhdGlvbi1WZW5kb3I6IElDVQorSW1wbGVtZW50YXRpb24tVGl0bGU6IElDVSBmb3IgSmF2YSBSaWNoRWRpdAorSW1wbGVtZW50YXRpb24tVmVyc2lvbjogMi4yCitJbXBsZW1lbnRhdGlvbi1WZW5kb3I6IElCTSBDb3Jwb3JhdGlvbgorSW1wbGVtZW50YXRpb24tVmVuZG9yLUlkOiBjb20uaWJtCisKK05hbWU6IGNvbS9pYm0vcmljaHRleHQKKworCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9wcmludC9NQ29uc3RUZXh0UHJpbnRhYmxlLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9wcmludC9NQ29uc3RUZXh0UHJpbnRhYmxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2E1YWY3YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3ByaW50L01Db25zdFRleHRQcmludGFibGUuamF2YQpAQCAtMCwwICsxLDE2MiBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogTUNvbnN0VGV4dFByaW50YWJsZS5qYXZhLHYgJCAkUmV2aXNpb246IDEuMiAkICREYXRlOiAyMDAyLzAyLzE2IDAzOjA2OjM0ICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQucHJpbnQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdC5NRm9ybWF0dGVyOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCitpbXBvcnQgamF2YS5hd3QuQ29sb3I7CitpbXBvcnQgamF2YS5hd3QuR3JhcGhpY3M7CitpbXBvcnQgamF2YS5hd3QuUG9pbnQ7CitpbXBvcnQgamF2YS5hd3QuUmVjdGFuZ2xlOworCitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKKworLyoqCisgKiBUaGlzIGNsYXNzJ3MgaW50ZXJmYWNlIGlzIHZlcnkgY2xvc2UgdG8gdGhhdCBvZiB0aGUgSkRLIDEuMiBQcmludGFibGUgCisgKiBpbnRlcmZhY2UsIGJ1dCBjYW4gZXhlY3V0ZSBvbiBKREsgMS4xLiAgT24gMS4yLCB0aGlzIGNsYXNzIGlzIHdyYXBwZWQKKyAqIGluIGEgcmVhbCBQcmludGFibGUuICBPbiAxLjEsIHRoZSBQcmludENvbnRleHQgY2xhc3MgdXNlcyB0aGlzIGNsYXNzCisgKiBhbmQgYSBQcmludEpvYiBmb3IgcHJpbnRpbmcuCisgKgorICogTm90ZSB0aGF0IHRoaXMgY2xhc3MgcGFnaW5hdGVzIHRoZSB0ZXh0IGluIHRoZSBmaXJzdCBjYWxsIHRvIHByaW50LAorICogb3IgdG8gZ2V0UGFnZUNvdW50LgorICogQWZ0ZXIgY29uc3RydWN0aW9uLCBpdHMgcGFnZSBzaXplIGlzIGVzc2VudGlhbGx5IGZpeGVkLiAgVGhpcyBpcyBub3QgCisgKiBhcyBmbGV4aWJsZSBhcyB0aGUgMS4yIGNsYXNzZXMgYWxsb3csIGJ1dCBpdCBzaG91bGQgc3VmZmljZS4KKyAqLworZmluYWwgY2xhc3MgTUNvbnN0VGV4dFByaW50YWJsZSB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworCisgICAgc3RhdGljIGZpbmFsIGludCBQQUdFX0VYSVNUUyA9IDA7CisgICAgc3RhdGljIGZpbmFsIGludCBOT19TVUNIX1BBR0UgPSAxOworICAgIAorICAgIHByaXZhdGUgTUNvbnN0VGV4dCBmVGV4dDsKKyAgICBwcml2YXRlIEF0dHJpYnV0ZU1hcCBmRGVmYXVsdFN0eWxlczsKKyAgICBwcml2YXRlIFJlY3RhbmdsZSBmUGFnZVJlY3Q7CisgICAgCisgICAgLy8gSWYgdGhlc2UgdHdvIGZpZWxkcyBhcmUgbnVsbCB0aGUgdGV4dCBoYXMgbm90IGJlZW4gcGFnaW5hdGVkLgorICAgIHByaXZhdGUgTUZvcm1hdHRlciBmRm9ybWF0dGVyOworICAgIHByaXZhdGUgVmVjdG9yIGZQYWdlU3RhcnRzOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGFuIE1Db25zdFRleHRQcmludGFibGUgdG8gcHJpbnQgdGhlIGdpdmVuIHRleHQuICBFYWNoIHBhZ2Ugd2lsbCBmaXQKKyAgICAgKiBpbnRvIHBhZ2VSZWN0LgorICAgICAqLworICAgIE1Db25zdFRleHRQcmludGFibGUoTUNvbnN0VGV4dCB0ZXh0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBkZWZhdWx0U3R5bGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgUmVjdGFuZ2xlIHBhZ2VSZWN0KSB7CisKKyAgICAgICAgZlRleHQgPSB0ZXh0OworICAgICAgICBmRGVmYXVsdFN0eWxlcyA9IGRlZmF1bHRTdHlsZXM7CisgICAgICAgIGZQYWdlUmVjdCA9IG5ldyBSZWN0YW5nbGUocGFnZVJlY3QpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGVtcHR5UGFyYWdyYXBoQXRFbmRPZlRleHQoTUNvbnN0VGV4dCB0ZXh0KSB7CisKKyAgICAgICAgaWYgKHRleHQubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICBjaGFyIGNoID0gdGV4dC5hdCh0ZXh0Lmxlbmd0aCgpLTEpOworICAgICAgICAgICAgcmV0dXJuIGNoID09ICdcbicgfHwgY2ggPT0gJ1x1MjAyOSc7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcGFnaW5hdGUoR3JhcGhpY3MgZ3JhcGhpY3MpIHsKKyAgICAgICAgCisgICAgICAgIGlmIChmUGFnZVN0YXJ0cyA9PSBudWxsKSB7CisKKyAgICAgICAgICAgIGZGb3JtYXR0ZXIgPSBNRm9ybWF0dGVyLmNyZWF0ZUZvcm1hdHRlcihmVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmRGVmYXVsdFN0eWxlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmUGFnZVJlY3Qud2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmFwaGljcyk7CisgCisgICAgICAgICAgICBmRm9ybWF0dGVyLmZvcm1hdFRvSGVpZ2h0KEludGVnZXIuTUFYX1ZBTFVFKTsKKyAgICAgICAgICAgIGZGb3JtYXR0ZXIuc3RvcEJhY2tncm91bmRGb3JtYXR0aW5nKCk7CisKKyAgICAgICAgICAgIGZQYWdlU3RhcnRzID0gbmV3IFZlY3RvcigpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgbGluZUNvdW50ID0gZkZvcm1hdHRlci5nZXRMaW5lQ291bnQoKTsKKyAgICAgICAgICAgIGlmIChlbXB0eVBhcmFncmFwaEF0RW5kT2ZUZXh0KGZUZXh0KSkgeworICAgICAgICAgICAgICAgIGxpbmVDb3VudCAtPSAxOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbnQgc3RhcnRMaW5lID0gMDsKKyAgICAgICAgICAgIGZQYWdlU3RhcnRzLmFkZEVsZW1lbnQobmV3IEludGVnZXIoc3RhcnRMaW5lKSk7CisgICAgICAgICAgICBpbnQgc3RhcnRIZWlnaHQgPSAwOworICAgICAgICAgICAgZmluYWwgaW50IHBhZ2VIZWlnaHQgPSBmUGFnZVJlY3QuaGVpZ2h0OworCisgICAgICAgICAgICB3aGlsZSAoc3RhcnRMaW5lIDwgbGluZUNvdW50KSB7CisKKyAgICAgICAgICAgICAgICBpbnQgbmV4dFN0YXJ0ID0gZkZvcm1hdHRlci5saW5lQXRIZWlnaHQoc3RhcnRIZWlnaHQgKyBwYWdlSGVpZ2h0KTsKKyAgICAgICAgICAgICAgICBmUGFnZVN0YXJ0cy5hZGRFbGVtZW50KG5ldyBJbnRlZ2VyKG5leHRTdGFydCkpOworICAgICAgICAgICAgICAgIHN0YXJ0SGVpZ2h0ID0gZkZvcm1hdHRlci5saW5lR3JhcGhpY1N0YXJ0KG5leHRTdGFydCk7CisgICAgICAgICAgICAgICAgc3RhcnRMaW5lID0gbmV4dFN0YXJ0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJpbnQgdGhlIGdpdmVuIHBhZ2UgaW4gdGhlIGdpdmVuIGdyYXBoaWNzLiAgUGFnZSBudW1iZXJzIGFyZQorICAgICAqIDAtYmFzZWQuICBUaGUgdGhlIHJldHVybiB2YWx1ZSBpbmRpY2F0ZXMgd2hldGhlcgorICAgICAqIHRoZSBwYWdlIG51bWJlciBpcyB2YWxpZCAoYXMgaW4gSkRLIDEuMikuICBTaW5jZSB5b3UgY2FuIGdldCB0aGUgcGFnZSBjb3VudAorICAgICAqIGRpcmVjdGx5LCB0aGVyZSdzIHJlYWxseSBubyBleGN1c2UgZm9yIHBhc3NpbmcgaW4gYW4gaW52YWxpZCBwYWdlCisgICAgICogaW5kZXguCisgICAgICogQHBhcmFtIGdyYXBoaWNzIHRoZSBHcmFwaGljcyB0byBwcmludCB0bworICAgICAqIEBwYXJhbSBwYWdlTnVtYmVyIHRoZSAwLWJhc2VkIHBhZ2UgbnVtYmVyLiAgU2hvdWxkIGJlIG5vbm5lZ2F0aXZlIGFuZAorICAgICAqIGxlc3MgdGhhbiBnZXRQYWdlQ291bnQoKQorICAgICAqIEByZXR1cm4gUEFHRV9FWElTVFMgaWYgdGhlIHBhZ2UgbnVtYmVyIGlzIHZhbGlkLCBvciAKKyAgICAgKiAgICAgICAgIE5PX1NVQ0hfUEFHRSBvdGhlcndpc2UKKyAgICAgKi8KKyAgICBpbnQgcHJpbnQoR3JhcGhpY3MgZ3JhcGhpY3MsIGludCBwYWdlTnVtYmVyKSB7CisgICAgICAgIAorICAgICAgICBwYWdpbmF0ZShncmFwaGljcyk7CisgICAgICAgIAorICAgICAgICBpZiAocGFnZU51bWJlciA8IGdldFBhZ2VDb3VudChncmFwaGljcykgJiYgcGFnZU51bWJlciA+PSAwKSB7CisgICAgICAgICAgICBncmFwaGljcy5zZXRDb2xvcihDb2xvci5ibGFjayk7IC8vIHdvcmthcm91bmQgZm9yIDEuMiBwcmludGluZyBidWcKKyAgICAgICAgICAgIGludCBzdGFydExpbmUgPSAoKEludGVnZXIpZlBhZ2VTdGFydHMuZWxlbWVudEF0KHBhZ2VOdW1iZXIpKS5pbnRWYWx1ZSgpOworICAgICAgICAgICAgaW50IGxpbWl0TGluZSA9ICgoSW50ZWdlcilmUGFnZVN0YXJ0cy5lbGVtZW50QXQocGFnZU51bWJlcisxKSkuaW50VmFsdWUoKTsKKworICAgICAgICAgICAgaW50IHRvcE9mUGFnZSA9IGZGb3JtYXR0ZXIubGluZUdyYXBoaWNTdGFydChzdGFydExpbmUpOworICAgICAgICAgICAgaW50IHBhZ2VIZWlnaHQgPSBmRm9ybWF0dGVyLmxpbmVHcmFwaGljU3RhcnQobGltaXRMaW5lKSAtIHRvcE9mUGFnZTsKKworICAgICAgICAgICAgUG9pbnQgb3JpZ2luID0gbmV3IFBvaW50KGZQYWdlUmVjdC54LCBmUGFnZVJlY3QueSAtIHRvcE9mUGFnZSk7CisgICAgICAgICAgICBSZWN0YW5nbGUgZHJhd1JlY3QgPSBuZXcgUmVjdGFuZ2xlKGZQYWdlUmVjdCk7CisgICAgICAgICAgICBkcmF3UmVjdC5oZWlnaHQgPSBwYWdlSGVpZ2h0OworICAgICAgICAgICAgCisgICAgICAgICAgICBmRm9ybWF0dGVyLmRyYXcoZ3JhcGhpY3MsIGRyYXdSZWN0LCBvcmlnaW4pOworICAgICAgICAgICAgcmV0dXJuIFBBR0VfRVhJU1RTOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIE5PX1NVQ0hfUEFHRTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBwYWdlcyB0aGF0IGNhbiBiZSBwcmludGVkLgorICAgICAqIEBwYXJhbSBncmFwaGljcyBhIEdyYXBoaWNzIGluc3RhbmNlIHJlcHJlc2VudGF0aXZlIG9mIHRob3NlIAorICAgICAqIHdoaWNoIHdpbGwgYmUgcHJpbnRlZCBpbnRvCisgICAgICovCisgICAgaW50IGdldFBhZ2VDb3VudChHcmFwaGljcyBncmFwaGljcykgeworICAgICAgICAKKyAgICAgICAgcGFnaW5hdGUoZ3JhcGhpY3MpOworICAgICAgICByZXR1cm4gZlBhZ2VTdGFydHMuc2l6ZSgpIC0gMTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvcHJpbnQvUHJpbnRDb250ZXh0LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9wcmludC9QcmludENvbnRleHQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40MjgzNmU4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvcHJpbnQvUHJpbnRDb250ZXh0LmphdmEKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogUHJpbnRDb250ZXh0LmphdmEsdiAkICRSZXZpc2lvbjogMS4yICQgJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6MzQgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8vIFJlcXVpcmVzIEphdmEyCisKK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5wcmludDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKKworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworaW1wb3J0IGphdmEuYXd0LkdyYXBoaWNzOworaW1wb3J0IGphdmEuYXd0LlJlY3RhbmdsZTsKKworaW1wb3J0IGphdmEuYXd0LnByaW50LlBhZ2VGb3JtYXQ7CitpbXBvcnQgamF2YS5hd3QucHJpbnQuUHJpbnRhYmxlOworaW1wb3J0IGphdmEuYXd0LnByaW50LlByaW50ZXJKb2I7CitpbXBvcnQgamF2YS5hd3QucHJpbnQuUHJpbnRlckV4Y2VwdGlvbjsKKworZmluYWwgY2xhc3MgUHJpbnRDb250ZXh0IGltcGxlbWVudHMgUHJpbnRhYmxlIHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworCisgICAgcHJpdmF0ZSBNQ29uc3RUZXh0UHJpbnRhYmxlIGZQcmludGFibGU7CisgICAgCisgICAgUHJpbnRDb250ZXh0KE1Db25zdFRleHQgdGV4dCwgQXR0cmlidXRlTWFwIGRlZmF1bHRTdHlsZXMsIFBhZ2VGb3JtYXQgcGYpIHsKKyAgICAgICAgCisgICAgICAgIGludCB3aWR0aCA9IChpbnQpIE1hdGgucm91bmQocGYuZ2V0SW1hZ2VhYmxlV2lkdGgoKSk7CisgICAgICAgIGludCBoZWlnaHQgPSAoaW50KSBNYXRoLnJvdW5kKHBmLmdldEltYWdlYWJsZUhlaWdodCgpKTsKKyAgICAgICAgaW50IGxlZnQgPSAoKChpbnQpTWF0aC5yb3VuZChwZi5nZXRXaWR0aCgpKSkgLSB3aWR0aCkgLyAyOworICAgICAgICBpbnQgdG9wID0gKCgoaW50KU1hdGgucm91bmQocGYuZ2V0SGVpZ2h0KCkpKSAtIGhlaWdodCkgLyAyOworICAgICAgICAKKyAgICAgICAgUmVjdGFuZ2xlIHBhZ2VSZWN0ID0gbmV3IFJlY3RhbmdsZShsZWZ0LCB0b3AsIHdpZHRoLCBoZWlnaHQpOworICAgICAgICBmUHJpbnRhYmxlID0gbmV3IE1Db25zdFRleHRQcmludGFibGUodGV4dCwgZGVmYXVsdFN0eWxlcywgcGFnZVJlY3QpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IHByaW50KEdyYXBoaWNzIGdyYXBoaWNzLAorICAgICAgICAgICAgICAgICAgICAgUGFnZUZvcm1hdCBmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICBpbnQgcGFnZUluZGV4KSB0aHJvd3MgUHJpbnRlckV4Y2VwdGlvbiB7CisgICAgICAgIAorICAgICAgICBpZiAoZmFsc2UpCisgICAgICAgICAgICB0aHJvdyBuZXcgUHJpbnRlckV4Y2VwdGlvbigic2F2ZSB0cmVlcyIpOworICAgICAgICAgICAgCisgICAgICAgIGlmIChmUHJpbnRhYmxlLnByaW50KGdyYXBoaWNzLCBwYWdlSW5kZXgpID09IGZQcmludGFibGUuUEFHRV9FWElTVFMpIHsKKyAgICAgICAgICAgIHJldHVybiBQQUdFX0VYSVNUUzsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBOT19TVUNIX1BBR0U7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIHZvaWQgdXNlclByaW50VGV4dChNQ29uc3RUZXh0IHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgZGVmYXVsdFN0eWxlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZyYW1lIGZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGpvYlRpdGxlKSB7CisKKyAgICAgICAgUHJpbnRlckpvYiBqb2IgPSBQcmludGVySm9iLmdldFByaW50ZXJKb2IoKTsKKyAgICAgICAgam9iLnNldEpvYk5hbWUoam9iVGl0bGUpOworICAgICAgICBpZiAoam9iLnByaW50RGlhbG9nKCkpIHsKKyAgICAgICAgICAgIGpvYi5zZXRQcmludGFibGUobmV3IFByaW50Q29udGV4dCh0ZXh0LCBkZWZhdWx0U3R5bGVzLCBqb2IuZGVmYXVsdFBhZ2UoKSkpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBqb2IucHJpbnQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoKFByaW50ZXJFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUHJpbnRlciBleGNlcHRpb246ICIgKyBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3ByaW50L1ByaW50aW5nVXRpbHMuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3ByaW50L1ByaW50aW5nVXRpbHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lYTMwZDhhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvcHJpbnQvUHJpbnRpbmdVdGlscy5qYXZhCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IFByaW50aW5nVXRpbHMuamF2YSx2ICQgJFJldmlzaW9uOiAxLjIgJCAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNjozNCAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnByaW50OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CisKK2ltcG9ydCBqYXZhLmF3dC5GcmFtZTsKKworLyoqCisgKiBQcmludGluZ1V0aWxzIGNvbnRhaW5zIGEgc3RhdGljIG1ldGhvZCBmb3IgcHJpbnRpbmcgc3R5bGVkIHRleHQuCisgKiBAc2VlIGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0CisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBQcmludGluZ1V0aWxzIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICAvLyBLZWVwIGl0IG91dCBvZiBKYXZhZG9jLi4uCisgICAgcHJpdmF0ZSBQcmludGluZ1V0aWxzKCkgeworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBQcmludCB0aGUgZ2l2ZW4gdGV4dC4gIEEgUHJpbnQgZGlhbG9nIGlzIHByZXNlbnRlZCB0byB0aGUgdXNlcjsKKyAgICAgKiB1bmxlc3MgdGhlIHVzZXIgY2FuY2VscywgdGhlIHRleHQgaXMgcHJpbnRlZC4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgdGV4dCB0byBwcmludAorICAgICAqIEBwYXJhbSBkZWZhdWx0U3R5bGVzIGRlZmF1bHQgdmFsdWVzIGZvciB1bnNwZWNpZmllZCBhdHRyaWJ1dGVzCisgICAgICogQHBhcmFtIGZyYW1lIHRoZSBwYXJlbnQgb2YgdGhlIFByaW50IGRpYWxvZworICAgICAqIEBwYXJhbSBqb2JUaXRsZSB0aGUgdGl0bGUgb2YgdGhlIFByaW50Sm9iCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHVzZXJQcmludFRleHQoTUNvbnN0VGV4dCB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBkZWZhdWx0U3R5bGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZyYW1lIGZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBqb2JUaXRsZSkgeworCisgICAgICAgIFByaW50Q29udGV4dC51c2VyUHJpbnRUZXh0KHRleHQsIGRlZmF1bHRTdHlsZXMsIGZyYW1lLCBqb2JUaXRsZSk7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3ByaW50L3BhY2thZ2UuaHRtbCBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3ByaW50L3BhY2thZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41Mzg2YjI0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvcHJpbnQvcGFja2FnZS5odG1sCkBAIC0wLDAgKzEsNSBAQAorPGh0bWw+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CitQcm92aWRlcyBwcmludGluZyBmb3Igc3R5bGVkIHRleHQuCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L0NoYXJCdWZmZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvQ2hhckJ1ZmZlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjcxMDhmN2EKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L0NoYXJCdWZmZXIuamF2YQpAQCAtMCwwICsxLDM3OSBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogQ2hhckJ1ZmZlci5qYXZhLHYgJCAkUmV2aXNpb246IDEuMSAkICREYXRlOiAyMDAwLzA0LzIwIDE3OjQ1OjEwICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvKiogQW4gaW1wbGVtZW50YXRpb24gb2YgTUNoYXJCdWZmZXIgdGhhdCBzdG9yZXMgY2hhcnMgaW4gYW4gYXJyYXkgd2l0aCBhbiBpbnNlcnRpb24gZ2FwLiAqLworLyoKKyAgICBDaGFuZ2UgaGlzdG9yeQorICAgIDA3MjM5NiBqZiAgIC0gZml4ZWQgYSBidWcgaW4gcmVwbGFjZShpbnQsIGludCwgY2hhcltdLCBpbnQsIGludCkgc28gdGhhdCBpdCBjb3JyZWN0bHkKKyAgICAgICAgICAgICAgICBpbnNlcnRlZCBpbnRvIHRoZSBtaWRkbGUgb2YgdGhlIGJ1ZmZlci4KKyAgICAwODAyOTYgamYgICAtIGFkZGVkIHRpbWVzdGFtcC4gIFRoaXMgaXMgc3RyaWN0bHkgYSBkZWJ1Z2dpbmcgZGV2aWNlIHRvIGhlbHAgY2F0Y2gKKyAgICAgICAgICAgICAgICBzdGFsZSBpdGVyYXRvcnMuCisKKyAgICAwODIyOTYgamJyICBhZGRlZCBjaGVjayBmb3IgMC1sZW5ndGggaXRlcmF0b3IgaW4gcmVwbGFjZQorKi8KKworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQ7CisKK2ltcG9ydCBqYXZhLmlvLkV4dGVybmFsaXphYmxlOworaW1wb3J0IGphdmEuaW8uT2JqZWN0SW5wdXQ7CitpbXBvcnQgamF2YS5pby5PYmplY3RPdXRwdXQ7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKKworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKKworZmluYWwgY2xhc3MgQ2hhckJ1ZmZlcgorICAgIGV4dGVuZHMgTUNoYXJCdWZmZXIgaW1wbGVtZW50cyBFeHRlcm5hbGl6YWJsZQoreworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGtHcm93U2l6ZSA9IDB4ODA7IC8vIHNtYWxsIHNpemUgZm9yIHRlc3RpbmcKKyAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENVUlJFTlRfVkVSU0lPTiA9IDE7IC8vIHZlcnNpb24gY29kZSBmb3Igc3RyZWFtaW5nCisgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDU2MzE3NDsKKworICB0cmFuc2llbnQgVmFsaWRhdGlvbiBmVmFsaWRhdGlvbiA9IG51bGw7CisgIHByaXZhdGUgY2hhcltdIGZBcnJheTsKKyAgdHJhbnNpZW50IHByaXZhdGUgaW50IGZBcnJheVNpemU7CisgIHRyYW5zaWVudCBwcml2YXRlIGludCBmR2FwOworCisgIC8qKiBDcmVhdGUgYW4gZW1wdHkgY2hhciBidWZmZXIuICovCisgIHB1YmxpYyBDaGFyQnVmZmVyKCkKKyAgeworICB9CisKKyAgLyoqIENyZWF0ZSBhIGNoYXIgYnVmZmVyIHRoYXQgY2FuIGhvbGQgYXQgbGVhc3QgY2FwYWNpdHkgY2hhcnMuICovCisKKyAgcHVibGljIENoYXJCdWZmZXIoaW50IGNhcGFjaXR5KQorICB7CisgICAgZkFycmF5ID0gYWxsb2NhdGUoY2FwYWNpdHkpOworICB9CisKKyAgcHVibGljIHZvaWQgcmVhZEV4dGVybmFsKE9iamVjdElucHV0IGluKSB0aHJvd3MgSU9FeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzTm90Rm91bmRFeGNlcHRpb24geworCisgICAgaWYgKGluLnJlYWRJbnQoKSAhPSBDVVJSRU5UX1ZFUlNJT04pIHsKKyAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJJbnZhbGlkIHZlcnNpb24gb2YgQ2hhckJ1ZmZlciIpOworICAgIH0KKworICAgIGZBcnJheSA9IChjaGFyW10pIGluLnJlYWRPYmplY3QoKTsKKyAgICBpZiAoZkFycmF5ICE9IG51bGwpIHsKKyAgICAgICAgZkFycmF5U2l6ZSA9IGZBcnJheS5sZW5ndGg7CisgICAgICAgIGZHYXAgPSBmQXJyYXlTaXplOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgZkFycmF5U2l6ZSA9IDA7CisgICAgICAgIGZHYXAgPSAwOworICAgIH0KKyAgfQorCisgIHB1YmxpYyB2b2lkIHdyaXRlRXh0ZXJuYWwoT2JqZWN0T3V0cHV0IG91dCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKworICAgIGNvbXByZXNzKCk7CisgICAgb3V0LndyaXRlSW50KENVUlJFTlRfVkVSU0lPTik7CisgICAgb3V0LndyaXRlT2JqZWN0KGZBcnJheSk7CisgIH0KKworICBwcml2YXRlIHZvaWQgaW52YWxpZGF0ZSgpIHsKKworICAgIGlmIChmVmFsaWRhdGlvbiAhPSBudWxsKSB7CisgICAgICAgIGZWYWxpZGF0aW9uLmludmFsaWRhdGUoKTsKKyAgICAgICAgZlZhbGlkYXRpb24gPSBudWxsOworICAgIH0KKyAgfQorCisgIC8vIG5vdCBUaHJlYWRTYWZlIC0gY291bGQgZW5kIHVwIHdpdGggdHdvIFZhbGlkYXRpb25zCisgIC8vIGJlaW5nIGdlbmVyYXRlZAorICBwcml2YXRlIFZhbGlkYXRpb24gZ2V0VmFsaWRhdGlvbigpIHsKKworICAgIGlmIChmVmFsaWRhdGlvbiA9PSBudWxsKSB7CisgICAgICAgIGZWYWxpZGF0aW9uID0gbmV3IFZhbGlkYXRpb24oKTsKKyAgICB9CisgICAgcmV0dXJuIGZWYWxpZGF0aW9uOworICB9CisKKyAgLyoqIFJlcGxhY2UgdGhlIGNoYXJzIGZyb20gc3RhcnQgdG8gbGltaXQgd2l0aCB0aGUgY2hhcnMgZnJvbSBzcmNTdGFydCB0byBzcmNMaW1pdCBpbiBzcmNCdWZmZXIuICovCisKKyAgLyoqIFJlcGxhY2UgdGhlIGNoYXJzIGZyb20gc3RhcnQgdG8gbGltaXQgd2l0aCB0aGUgY2hhcnMgZnJvbSBzcmNTdGFydCB0byBzcmNMaW1pdCBpbiBzcmNDaGFycy4KKyAgKiBUaGlzIGlzIHRoZSBjb3JlIHJvdXRpbmUgZm9yIG1hbmlwdWxhdGluZyB0aGUgYnVmZmVyLgorICAqLworICBwdWJsaWMgdm9pZCByZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBjaGFyW10gc3JjQ2hhcnMsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0KQorICB7CisgICAgaW52YWxpZGF0ZSgpOworICAgIGludCBkc3RMZW5ndGggPSBsaW1pdCAtIHN0YXJ0OworICAgIGludCBzcmNMZW5ndGggPSBzcmNMaW1pdCAtIHNyY1N0YXJ0OworCisgICAgaWYgKGRzdExlbmd0aCA8IDAgfHwgc3JjTGVuZ3RoIDwgMCkgeworICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJyZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBjaGFyW10gc3JjQ2hhcnMsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0KSIpOworICAgIH0KKworICAgIGludCBnYXBBbGxvYyA9IDA7CisgICAgaWYgKHNyY0NoYXJzID09IG51bGwpIHsKKyAgICAgICAgZ2FwQWxsb2MgPSBzcmNMZW5ndGg7CisgICAgICAgIHNyY0xlbmd0aCA9IDA7CisgICAgfQorCisgICAgaW50IG5ld1NpemUgPSBmQXJyYXlTaXplIC0gZHN0TGVuZ3RoICsgc3JjTGVuZ3RoOworCisgICAgaWYgKGZBcnJheSA9PSBudWxsKSB7CisgICAgICAgIGlmIChzdGFydCAhPSAwIHx8IGxpbWl0ICE9IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oInJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIGNoYXJbXSBzcmNDaGFycywgaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQpIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG5ld1NpemUgKyBnYXBBbGxvYyA+IDApIHsKKyAgICAgICAgICAgIGZBcnJheSA9IGFsbG9jYXRlKG5ld1NpemUgKyBnYXBBbGxvYyk7CisgICAgICAgICAgICBpZiAoc3JjTGVuZ3RoID4gMCkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoc3JjQ2hhcnMsIHNyY1N0YXJ0LCBmQXJyYXksIDAsIHNyY0xlbmd0aCk7CisgICAgICAgICAgICAgICAgZkFycmF5U2l6ZSA9IHNyY0xlbmd0aDsKKyAgICAgICAgICAgICAgICBmR2FwID0gc3JjTGVuZ3RoOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgaW50IG5ld0dhcCA9IHN0YXJ0ICsgc3JjTGVuZ3RoOworICAgICAgICBpbnQgZ2FwTGltaXQgPSBmQXJyYXkubGVuZ3RoIC0gZkFycmF5U2l6ZSArIGZHYXA7CisKKyAgICAgICAgaWYgKG5ld1NpemUgKyBnYXBBbGxvYyA+IGZBcnJheS5sZW5ndGgpIHsKKyAgICAgICAgICAgIGNoYXJbXSB0ZW1wID0gYWxsb2NhdGUobmV3U2l6ZSArIGdhcEFsbG9jKTsKKworICAgICAgICAgICAgLy9tb3ZlIHN0dWZmIGF0IGJlZ2lubmluZyB0aGF0IHdlIGFyZW4ndCB3cml0aW5nIG92ZXIKKyAgICAgICAgICAgIGlmIChzdGFydCA+IDApIHsKKyAgICAgICAgICAgICAgICBhdCgwLCBzdGFydCwgdGVtcCwgMCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvL21vdmUgc3R1ZmYgZnJvbSBzcmMgYXJyYXkgdGhhdCB3ZSBhcmUgY29weWluZworICAgICAgICAgICAgaWYgKHNyY0xlbmd0aCA+IDApIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHNyY0NoYXJzLCBzcmNTdGFydCwgdGVtcCwgc3RhcnQsIHNyY0xlbmd0aCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvL21vdmUgc3R1ZmYgYXQgZW5kIHRoYXQgd2UgYXJlbid0IGNvcHlpbmcgb3ZlcgorICAgICAgICAgICAgaWYgKGxpbWl0IDwgZkFycmF5U2l6ZSkgeworICAgICAgICAgICAgICAgIGF0KGxpbWl0LCBmQXJyYXlTaXplLCB0ZW1wLCB0ZW1wLmxlbmd0aCAtIG5ld1NpemUgKyBuZXdHYXApOworICAgICAgICAgICAgLy9jaGFuZ2UgNy0yMy05NgorICAgICAgICAgICAgLy8gICAgYXQobGltaXQsIGZBcnJheVNpemUgLSBsaW1pdCwgdGVtcCwgdGVtcC5sZW5ndGggLSBuZXdTaXplICsgbmV3R2FwKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZkFycmF5ID0gdGVtcDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChzdGFydCA+IGZHYXApIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGZBcnJheSwgZ2FwTGltaXQsIGZBcnJheSwgZkdhcCwgc3RhcnQgLSBmR2FwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChsaW1pdCA8IGZHYXApIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGZBcnJheSwgbGltaXQsIGZBcnJheSwgZkFycmF5Lmxlbmd0aCAtIG5ld1NpemUgKyBuZXdHYXAsIGZHYXAgLSBsaW1pdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc3JjTGVuZ3RoID4gMCkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoc3JjQ2hhcnMsIHNyY1N0YXJ0LCBmQXJyYXksIHN0YXJ0LCBzcmNMZW5ndGgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZkFycmF5U2l6ZSA9IG5ld1NpemU7CisgICAgICAgIGZHYXAgPSBuZXdHYXA7CisgICAgfQorICB9CisKKyAgLyoqIFJlcGxhY2UgdGhlIGNoYXJzIGZyb20gc3RhcnQgdG8gbGltaXQgd2l0aCB0aGUgY2hhcnMgZnJvbSBzcmNTdGFydCB0byBzcmNMaW1pdCBpbiBzcmNTdHJpbmcuICovCisKKyAgLyogVGhpcyBpbXBsZW1lbnRzIG9wdGltaXphdGlvbnMgZm9yIG51bGwgdGV4dCBvciBpbnNlcnRpbmcgdGV4dCB0aGF0IGZpdHMgYXQgdGhlIGdhcCwKKyAgICAgYW5kIGRlZmF1bHRzIHRvIGNhbGwgdGhlIGNvcmUgcmVwbGFjZSByb3V0aW5lIGlmIHRoZXNlIG9wdGltaXphdGlvbnMgZmFpbC4gKi8KKworICBwdWJsaWMgdm9pZCByZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBTdHJpbmcgc3JjU3RyaW5nLCBpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCkKKyAgeworICAgIGludmFsaWRhdGUoKTsKKyAgICBpbnQgbGVuZ3RoID0gbGltaXQgLSBzdGFydDsKKyAgICBpbnQgc3JjTGVuZ3RoID0gc3JjTGltaXQgLSBzcmNTdGFydDsKKworICAgIGlmIChmQXJyYXkgPT0gbnVsbCkgeworICAgICAgICBpZiAoc3RhcnQgIT0gMCB8fCBsaW1pdCAhPSAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJyZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBTdHJpbmcgc3JjU3RyaW5nLCBpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCkiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc3JjTGVuZ3RoID4gMCkgeworICAgICAgICAgICAgZkFycmF5ID0gYWxsb2NhdGUoc3JjTGVuZ3RoKTsKKyAgICAgICAgICAgIHNyY1N0cmluZy5nZXRDaGFycyhzcmNTdGFydCwgc3JjTGltaXQsIGZBcnJheSwgMCk7CisgICAgICAgICAgICBmQXJyYXlTaXplID0gc3JjTGVuZ3RoOworICAgICAgICAgICAgZkdhcCA9IHNyY0xlbmd0aDsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChzdGFydCA9PSBmR2FwICYmIGZBcnJheS5sZW5ndGggPj0gZkFycmF5U2l6ZSAtIGxlbmd0aCArIHNyY0xlbmd0aCkgeworICAgICAgICAgICAgaWYgKHNyY0xpbWl0ID4gMCkgeworICAgICAgICAgICAgICAgIHNyY1N0cmluZy5nZXRDaGFycyhzcmNTdGFydCwgc3JjTGltaXQsIGZBcnJheSwgZkdhcCk7CisgICAgICAgICAgICAgICAgZkdhcCArPSBzcmNMZW5ndGg7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmQXJyYXlTaXplICs9IHNyY0xlbmd0aCAtIGxlbmd0aDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJlcGxhY2Uoc3RhcnQsIGxpbWl0LCBzcmNTdHJpbmcgIT0gbnVsbCA/IHNyY1N0cmluZy50b0NoYXJBcnJheSgpIDogbnVsbCwgc3JjU3RhcnQsIHNyY0xpbWl0KTsKKyAgICAgICAgfQorICAgIH0KKyAgfQorCisgIHB1YmxpYyB2b2lkIHJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIE1Db25zdFRleHQgc3JjVGV4dCwgaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQpCisgIHsKKyAgICBpbnZhbGlkYXRlKCk7CisgICAgaW50IGxlbmd0aCA9IGxpbWl0IC0gc3RhcnQ7CisgICAgaW50IHNyY0xlbmd0aCA9IHNyY0xpbWl0IC0gc3JjU3RhcnQ7CisKKyAgICBpZiAoZkFycmF5ID09IG51bGwpIHsKKyAgICAgICAgaWYgKHN0YXJ0ICE9IDAgfHwgbGltaXQgIT0gMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigicmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgU3RyaW5nIHNyY1N0cmluZywgaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQpIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNyY0xlbmd0aCA+IDApIHsKKyAgICAgICAgICAgIGZBcnJheSA9IGFsbG9jYXRlKHNyY0xlbmd0aCk7CisgICAgICAgICAgICBzcmNUZXh0LmV4dHJhY3RDaGFycyhzcmNTdGFydCwgc3JjTGltaXQsIGZBcnJheSwgMCk7CisgICAgICAgICAgICBmQXJyYXlTaXplID0gc3JjTGVuZ3RoOworICAgICAgICAgICAgZkdhcCA9IHNyY0xlbmd0aDsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChzdGFydCA9PSBmR2FwICYmIGZBcnJheS5sZW5ndGggPj0gZkFycmF5U2l6ZSAtIGxlbmd0aCArIHNyY0xlbmd0aCkgeworICAgICAgICAgICAgaWYgKHNyY0xpbWl0ID4gMCkgeworICAgICAgICAgICAgICAgIHNyY1RleHQuZXh0cmFjdENoYXJzKHNyY1N0YXJ0LCBzcmNMaW1pdCwgZkFycmF5LCBmR2FwKTsKKyAgICAgICAgICAgICAgICBmR2FwICs9IHNyY0xlbmd0aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZBcnJheVNpemUgKz0gc3JjTGVuZ3RoIC0gbGVuZ3RoOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgY2hhcltdIHRlbXAgPSBzcmNMZW5ndGggPT0gMD8gbnVsbCA6IG5ldyBjaGFyW3NyY0xlbmd0aF07CisgICAgICAgICAgICBpZiAodGVtcCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgc3JjVGV4dC5leHRyYWN0Q2hhcnMoc3JjU3RhcnQsIHNyY0xpbWl0LCB0ZW1wLCAwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlcGxhY2Uoc3RhcnQsIGxpbWl0LCB0ZW1wLCAwLCBzcmNMaW1pdCAtIHNyY1N0YXJ0KTsKKyAgICAgICAgfQorICAgIH0KKyAgfQorCisgIC8qKiBSZXBsYWNlIHRoZSBjaGFycyBmcm9tIHN0YXJ0IHRvIGxpbWl0IHdpdGggc3JjQ2hhci4gKi8KKworICAvKiBUaGlzIGltcGxlbWVudHMgb3B0aW1pemF0aW9ucyBmb3IgbnVsbCB0ZXh0IG9yIHJlcGxhY2luZyBhIGNoYXJhY3RlciB0aGF0IGZpdHMgaW50byB0aGUgZ2FwLAorICAgICBhbmQgZGVmYXVsdHMgdG8gY2FsbCB0aGUgY29yZSByZXBsYWNlIHJvdXRpbmUgaWYgdGhlc2Ugb3B0aW1pemF0aW9ucyBmYWlsLiAqLworCisgIHB1YmxpYyB2b2lkIHJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIGNoYXIgc3JjQ2hhcikKKyAgeworICAgIGludmFsaWRhdGUoKTsKKyAgICBpZiAoZkFycmF5ID09IG51bGwpIHsKKyAgICAgICAgaWYgKHN0YXJ0ICE9IDAgfHwgbGltaXQgIT0gMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigicmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgY2hhciBzcmNDaGFyKSIpOworICAgICAgICB9CisgICAgICAgIGZBcnJheSA9IGFsbG9jYXRlKDEpOworICAgICAgICBmQXJyYXlbMF0gPSBzcmNDaGFyOworICAgICAgICBmQXJyYXlTaXplID0gMTsKKyAgICAgICAgZkdhcCA9IDE7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaW50IGxlbmd0aCA9IGxpbWl0IC0gc3RhcnQ7CisgICAgICAgIGlmIChzdGFydCA9PSBmR2FwICYmIGZBcnJheS5sZW5ndGggPiBmQXJyYXlTaXplIC0gbGVuZ3RoKSB7CisgICAgICAgICAgICBmQXJyYXlbZkdhcF0gPSBzcmNDaGFyOworICAgICAgICAgICAgZkdhcCArPSAxOworICAgICAgICAgICAgZkFycmF5U2l6ZSArPSAxIC0gbGVuZ3RoOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmVwbGFjZShzdGFydCwgbGltaXQsIG5ldyBjaGFyW10geyBzcmNDaGFyfSAsIDAsIDEpOworICAgICAgICB9CisgICAgfQorICB9CisKKyAgLyoqIFJldHVybiB0aGUgY2hhciBhdCBwb3MuICovCisKKyAgcHVibGljIGNoYXIgYXQoaW50IHBvcykKKyAgeworICAgIGlmIChwb3MgPCAwIHx8IHBvcyA+PSBmQXJyYXlTaXplKSB7CisgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgfQorICAgIHJldHVybiBwb3MgPCBmR2FwID8gZkFycmF5W3Bvc10gOiBmQXJyYXlbZkFycmF5Lmxlbmd0aCAtIGZBcnJheVNpemUgKyBwb3NdOworICB9CisKKyAgLyoqIENvcHkgdGhlIGNoYXJzIGZyb20gc3RhcnQgdG8gbGltaXQgdG8gZHN0IHN0YXJ0aW5nIGF0IGRzdFN0YXJ0LiAqLworCisgIHB1YmxpYyB2b2lkIGF0KGludCBzdGFydCwgaW50IGxpbWl0LCBjaGFyW10gZHN0LCBpbnQgZHN0U3RhcnQpCisgIHsKKyAgICBpbnQgbGVuZ3RoID0gbGltaXQgLSBzdGFydDsKKworICAgIGlmIChzdGFydCA8IDAgfHwgbGltaXQgPCBzdGFydCB8fCBsaW1pdCA+IGZBcnJheVNpemUpIHsKKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgIH0KKworICAgIGlmIChsaW1pdCA8PSBmR2FwKSB7CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoZkFycmF5LCBzdGFydCwgZHN0LCBkc3RTdGFydCwgbGVuZ3RoKTsKKyAgICB9IGVsc2UgaWYgKHN0YXJ0ID49IGZHYXApIHsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShmQXJyYXksIGZBcnJheS5sZW5ndGggLSBmQXJyYXlTaXplICsgc3RhcnQsIGRzdCwgZHN0U3RhcnQsIGxlbmd0aCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShmQXJyYXksIHN0YXJ0LCBkc3QsIGRzdFN0YXJ0LCBmR2FwIC0gc3RhcnQpOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGZBcnJheSwgZkFycmF5Lmxlbmd0aCAtIGZBcnJheVNpemUgKyBmR2FwLCBkc3QsIGRzdFN0YXJ0ICsgZkdhcCAtIHN0YXJ0LCBsaW1pdCAtIGZHYXApOworICAgIH0KKyAgfQorCisgIC8qKiBSZXR1cm4gdGhlIG51bWJlciBvZiBjaGFycyBpbiB0aGUgYnVmZmVyLiAqLworCisgIHB1YmxpYyBmaW5hbCBpbnQgbGVuZ3RoKCkKKyAgeworICAgIHJldHVybiBmQXJyYXlTaXplOworICB9CisKKyAgLyoqIFJldHVybiB0aGUgbnVtYmVyIG9mIGNoYXJzIHRoZSBidWZmZXIgY2FuIGhvbGQgYmVmb3JlIGl0IG11c3QgcmVhbGxvY2F0ZS4gKi8KKworICBwdWJsaWMgZmluYWwgaW50IGNhcGFjaXR5KCkKKyAgeworICAgIHJldHVybiBmQXJyYXkgIT0gbnVsbCA/IGZBcnJheS5sZW5ndGggOiAwOworICB9CisKKyAgLyoqIFJlc2VydmUgY2FwYWNpdHkgY2hhcnMgYXQgc3RhcnQuIFV0aWxpdHkgdG8gb3B0aW1pemUgYSBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGF0IHN0YXJ0LiAqLworCisgIHB1YmxpYyB2b2lkIHJlc2VydmVDYXBhY2l0eShpbnQgc3RhcnQsIGludCBjYXBhY2l0eSkKKyAgeworICAgIHJlcGxhY2Uoc3RhcnQsIHN0YXJ0LCAoY2hhcltdKW51bGwsIDAsIGNhcGFjaXR5KTsKKyAgfQorCisgIC8qKiBNaW5pbWl6ZSB0aGUgc3RvcmFnZSB1c2VkIGJ5IHRoZSBidWZmZXIuICovCisKKyAgcHVibGljIHZvaWQgY29tcHJlc3MoKQorICB7CisgICAgaW52YWxpZGF0ZSgpOworICAgIGlmIChmQXJyYXlTaXplID09IDApIHsKKyAgICAgICAgZkFycmF5ID0gbnVsbDsKKyAgICAgICAgZkdhcCA9IDA7CisgICAgfSBlbHNlIGlmIChmQXJyYXlTaXplICE9IGZBcnJheS5sZW5ndGgpIHsKKyAgICAgICAgY2hhcltdIHRlbXAgPSBuZXcgY2hhcltmQXJyYXlTaXplXTsKKyAgICAgICAgYXQoMCwgZkFycmF5U2l6ZSwgdGVtcCwgMCk7CisgICAgICAgIGZBcnJheSA9IHRlbXA7CisgICAgICAgIGZHYXAgPSBmQXJyYXlTaXplOworICAgIH0KKyAgfQorCisgIC8qKiBEaXNwbGF5IHRoZSBidWZmZXIuICovCisKKyAgcHVibGljIFN0cmluZyB0b1N0cmluZygpCisgIHsKKyAgICBpZiAoZkFycmF5ICE9IG51bGwpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmdCdWZmZXIoKQorICAgICAgICAuYXBwZW5kKCJsaW1pdDogIikuYXBwZW5kKGZBcnJheS5sZW5ndGgpCisgICAgICAgIC5hcHBlbmQoIiwgc2l6ZTogIikuYXBwZW5kKGZBcnJheVNpemUpCisgICAgICAgIC5hcHBlbmQoIiwgZ2FwOiAiKS5hcHBlbmQoZkdhcCkKKyAgICAgICAgLmFwcGVuZCgiLCAiKS5hcHBlbmQoZkFycmF5LCAwLCBmR2FwKQorICAgICAgICAuYXBwZW5kKGZBcnJheSwgZkFycmF5Lmxlbmd0aCAtIGZBcnJheVNpemUgKyBmR2FwLCBmQXJyYXlTaXplIC0gZkdhcCkKKyAgICAgICAgLnRvU3RyaW5nKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoIlRoZSBidWZmZXIgaXMgZW1wdHkuIik7CisgICAgfQorICB9CisKKyAgcHVibGljIENoYXJhY3Rlckl0ZXJhdG9yIGNyZWF0ZUNoYXJhY3Rlckl0ZXJhdG9yKGludCBzdGFydCwgaW50IGxpbWl0KSB7CisKKyAgICBWYWxpZGF0aW9uIHZhbCA9IGdldFZhbGlkYXRpb24oKTsKKyAgICByZXR1cm4gbmV3IENoYXJCdWZmZXJJdGVyYXRvcihzdGFydCwgbGltaXQsIGZBcnJheSwgZkFycmF5U2l6ZSwgZkdhcCwgdmFsKTsKKyAgfQorCisgIC8qKiBUaGUgcmVzaXppbmcgYWxnb3JpdGhtLiBSZXR1cm4gYSB2YWx1ZSA+PSBtaW5TaXplLiAqLworCisgIHByb3RlY3RlZCBpbnQgYWxsb2NhdGlvbihpbnQgbWluU2l6ZSkKKyAgeworICAgIC8vICAgIHJldHVybiAobWluU2l6ZSArIGtHcm93U2l6ZSkgJiB+KGtHcm93U2l6ZSAtIDEpOworICAgIHJldHVybiBtaW5TaXplIDwga0dyb3dTaXplID8ga0dyb3dTaXplIDogKG1pblNpemUgKiAyICsga0dyb3dTaXplKSAmIH4oa0dyb3dTaXplIC0gMSk7CisgIH0KKworICAvKiogQWxsb2NhdGUgYSBuZXcgY2hhcmFjdGVyIGFycmF5IG9mIGxpbWl0ID49IG1pblNpemUuICovCisKKyAgcHJvdGVjdGVkIGNoYXJbXSBhbGxvY2F0ZShpbnQgbWluU2l6ZSkKKyAgeworICAgIHJldHVybiBuZXcgY2hhclthbGxvY2F0aW9uKG1pblNpemUpXTsKKyAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9DaGFyQnVmZmVySXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvQ2hhckJ1ZmZlckl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmEwYWMxNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvQ2hhckJ1ZmZlckl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwxMzEgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IENoYXJCdWZmZXJJdGVyYXRvci5qYXZhLHYgJCAkUmV2aXNpb246IDEuMSAkICREYXRlOiAyMDAwLzA0LzIwIDE3OjQ1OjEwICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dDsKKworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKKworZmluYWwgY2xhc3MgQ2hhckJ1ZmZlckl0ZXJhdG9yIGltcGxlbWVudHMgQ2hhcmFjdGVySXRlcmF0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbG9uZWFibGUKK3sKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgaW50IGZSYW5nZVN0YXJ0OworICAgIHByaXZhdGUgaW50IGZSYW5nZUxpbWl0OworICAgIHByaXZhdGUgaW50IGZDdXJyZW50SW5kZXg7CisgICAgcHJpdmF0ZSBjaGFyIGZTdG9yYWdlW107CisgICAgcHJpdmF0ZSBpbnQgZkdhcDsKKyAgICBwcml2YXRlIGludCBmR2FwTGVuZ3RoOworICAgIHByaXZhdGUgVmFsaWRhdGlvbiBmVmFsaWRhdGlvbjsKKworICAgIENoYXJCdWZmZXJJdGVyYXRvcihpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIHN0b3JhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBnYXAsCisgICAgICAgICAgICAgICAgICAgICAgIFZhbGlkYXRpb24gdmFsaWRhdGlvbikgeworCisgICAgICAgIGlmIChzdGFydCA+IGxpbWl0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJzdGFydCA+IGxpbWl0Iik7CisgICAgICAgIH0KKyAgICAgICAgZlJhbmdlU3RhcnQgPSBzdGFydDsKKyAgICAgICAgZlJhbmdlTGltaXQgPSBsaW1pdDsKKyAgICAgICAgZkN1cnJlbnRJbmRleCA9IGZSYW5nZVN0YXJ0OworICAgICAgICBmU3RvcmFnZSA9IHN0b3JhZ2U7CisgICAgICAgIGZHYXAgPSBnYXA7CisgICAgICAgIGZHYXBMZW5ndGggPSAoc3RvcmFnZT09bnVsbD8gMCA6IHN0b3JhZ2UubGVuZ3RoKSAtIGxlbmd0aDsKKyAgICAgICAgZlZhbGlkYXRpb24gPSB2YWxpZGF0aW9uOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBjaGVja1ZhbGlkYXRpb24oKSB7CisKKyAgICAgICAgaWYgKCFmVmFsaWRhdGlvbi5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiSXRlcmF0b3IgaXMgbm8gbG9uZ2VyIHZhbGlkIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgY2hhciBmaXJzdCgpCisgICAgeworICAgICAgICByZXR1cm4gc2V0SW5kZXgoZlJhbmdlU3RhcnQpOworICAgIH0KKworICAgIHB1YmxpYyBjaGFyIGxhc3QoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHNldEluZGV4KGZSYW5nZUxpbWl0IC0gMSk7CisgICAgfQorCisgICAgcHVibGljIGNoYXIgY3VycmVudCgpCisgICAgeworICAgICAgICBjaGVja1ZhbGlkYXRpb24oKTsKKyAgICAgICAgaWYgKGZDdXJyZW50SW5kZXggPCBmUmFuZ2VTdGFydCB8fCBmQ3VycmVudEluZGV4ID49IGZSYW5nZUxpbWl0KQorICAgICAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgIGludCBpID0gKGZDdXJyZW50SW5kZXggPCBmR2FwKSA/IGZDdXJyZW50SW5kZXggOiAoZkN1cnJlbnRJbmRleCArIGZHYXBMZW5ndGgpOworICAgICAgICByZXR1cm4gZlN0b3JhZ2VbaV07CisgICAgfQorCisgICAgcHVibGljIGNoYXIgbmV4dCgpCisgICAgeworICAgICAgICBjaGVja1ZhbGlkYXRpb24oKTsKKyAgICAgICAgZkN1cnJlbnRJbmRleCsrOworICAgICAgICBpZiAoZkN1cnJlbnRJbmRleCA+PSBmUmFuZ2VMaW1pdCkKKyAgICAgICAgeworICAgICAgICAgICAgZkN1cnJlbnRJbmRleCA9IGZSYW5nZUxpbWl0OworICAgICAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgIH0KKyAgICAgICAgaW50IGkgPSAoZkN1cnJlbnRJbmRleCA8IGZHYXApID8gZkN1cnJlbnRJbmRleCA6IChmQ3VycmVudEluZGV4ICsgZkdhcExlbmd0aCk7CisgICAgICAgIHJldHVybiBmU3RvcmFnZVtpXTsKKyAgICB9CisKKyAgICBwdWJsaWMgY2hhciBwcmV2aW91cygpCisgICAgeworICAgICAgICBmQ3VycmVudEluZGV4LS07CisgICAgICAgIGlmIChmQ3VycmVudEluZGV4ID49IGZSYW5nZVN0YXJ0KQorICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnQoKTsKKyAgICAgICAgZkN1cnJlbnRJbmRleCA9IGZSYW5nZVN0YXJ0OworICAgICAgICByZXR1cm4gRE9ORTsKKyAgICB9CisKKyAgICBwdWJsaWMgY2hhciBzZXRJbmRleChpbnQgaSkKKyAgICB7CisgICAgICAgIGlmIChpIDwgZlJhbmdlU3RhcnQgfHwgaSA+IGZSYW5nZUxpbWl0KQorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBwb3NpdGlvbiIpOworICAgICAgICBmQ3VycmVudEluZGV4ID0gaTsKKyAgICAgICAgcmV0dXJuIGN1cnJlbnQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldEJlZ2luSW5kZXgoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZSYW5nZVN0YXJ0OworICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0RW5kSW5kZXgoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZSYW5nZUxpbWl0OworICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0SW5kZXgoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZDdXJyZW50SW5kZXg7CisgICAgfQorCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmNsb25lKCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9GYXN0SW50QmluYXJ5U2VhcmNoLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L0Zhc3RJbnRCaW5hcnlTZWFyY2guamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mNGViMGEwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9GYXN0SW50QmluYXJ5U2VhcmNoLmphdmEKQEAgLTAsMCArMSwxMTUgQEAKKy8qCisqICAgQ29weXJpZ2h0IChDKSAxOTk2LTIwMDIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyovCisKKy8qCisgICAgNy8yOS85NgorICAgICAgICBNb2RpZmllZCB0byBzZWFyY2ggcG9ydGlvbnMgb2YgYW4gaW50ZWdlciBhcnJheS4gIFNob3VsZCBiZSByZXRlc3RlZC4KKyovCisKK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0OworCisvKioKKyAqIFRoaXMgY2xhc3Mgc2VhcmNoZXMgYSBzZWdtZW50IG9mIGFuIGFycmF5IG9mIGludGVnZXJzLiAgVGhlIHNlZ21lbnQKKyAqIG11c3QgYmUgc29ydGVkIGluIGFzY2VuZGluZyBvcmRlciAoYnV0IHRoaXMgY2xhc3MgZG9lcyBub3QgdmVyaWZ5IHRoaXMpLgorICogQWxzbywgdGhpcyBjbGFzcyBhbGlhc2VzIHRoZSBhcnJheTsgIGlmIHRoZSBhcnJheSBpcyBtb2RpZmllZCBsYXRlciB0aGUKKyAqIHNlYXJjaCByZXN1bHRzIGFyZSB1bmRlZmluZWQuCisgKi8KK2ZpbmFsIGNsYXNzIEZhc3RJbnRCaW5hcnlTZWFyY2gKK3sKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgaW50IGRhdGFBcnJheVtdOworICAgIHByaXZhdGUgaW50IGF1eFN0YXJ0OworICAgIHByaXZhdGUgaW50IHBvd2VyOworCisgICAgcHJpdmF0ZSBpbnQgZkZpcnN0SW5kZXg7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgZXhwMltdID0geyAxLCAyLCA0LCA4LCAxNiwgMzIsIDY0LCAxMjgsIDI1NiwgNTEyLCAxMDI0LCAyMDQ4LCA0MDk2LCA4MTkyLCAxNjM4NCwgMzI3NjgsIDY1NTM2LCAxMzEwNzIgfTsKKworICAgIHB1YmxpYyBGYXN0SW50QmluYXJ5U2VhcmNoKGludCBkYXRhW10pCisgICAgeworICAgICAgICB0aGlzKGRhdGEsIDAsIGRhdGEubGVuZ3RoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgRmFzdEludEJpbmFyeVNlYXJjaChpbnQgZGF0YVtdLCBpbnQgZmlyc3RWYWxpZEluZGV4LCBpbnQgdmFsaWRMZW5ndGgpCisgICAgeworICAgICAgICBzZXREYXRhKGRhdGEsIGZpcnN0VmFsaWRJbmRleCwgdmFsaWRMZW5ndGgpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBzZXREYXRhKGludCBkYXRhW10pIHsKKyAgICAgICAgCisgICAgICAgIHNldERhdGEoZGF0YSwgMCwgZGF0YS5sZW5ndGgpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBzZXREYXRhKGludCBkYXRhW10sIGludCBmaXJzdFZhbGlkSW5kZXgsIGludCB2YWxpZExlbmd0aCkgeworCisgICAgICAgIGlmIChkYXRhLmxlbmd0aCA8IDEpIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgaWYgKGRhdGEubGVuZ3RoID49IGV4cDJbZXhwMi5sZW5ndGgtMV0pIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKworICAgICAgICBkYXRhQXJyYXkgPSBkYXRhOworICAgICAgICBmRmlyc3RJbmRleCA9IGZpcnN0VmFsaWRJbmRleDsKKworICAgICAgICBmb3IgKHBvd2VyID0gZXhwMi5sZW5ndGgtMTsgcG93ZXIgPiAwICYmIHZhbGlkTGVuZ3RoIDwgZXhwMltwb3dlcl07IHBvd2VyLS0pIHt9CisKKyAgICAgICAgLy8gYXQgdGhpcyBwb2ludCwgYXJyYXkubGVuZ3RoID49IDJecG93ZXIKKworICAgICAgICBhdXhTdGFydCA9IHZhbGlkTGVuZ3RoIC0gZXhwMltwb3dlcl07CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgaW5kZXggaW4gdGhlIGFycmF5IG9mIHRoZSBmaXJzdCBlbGVtZW50IHdoaWNoIGlzIGF0IGxlYXN0CisgICAgICogYXMgbGFyZ2UgYXMgPHR0PnZhbHVlPC90dD4uICBJZiB2YWx1ZSBpcyBsYXJnZXIgdGhhbiB0aGUgbGFyZ2VzdAorICAgICAqIGVsZW1lbnQgaW4gdGhlIGFycmF5IHRoZSBsYXN0IHZhbGlkIGluZGV4IGluIHRoZSBhcnJheSBpcyByZXR1cm5lZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGZpbmRJbmRleChpbnQgdmFsdWUpCisgICAgeworICAgICAgICBpbnQgaW5kZXggPSBleHAyW3Bvd2VyXS0xICsgZkZpcnN0SW5kZXg7CisgICAgICAgIGlmICh2YWx1ZSA+PSBkYXRhQXJyYXlbYXV4U3RhcnQgKyBmRmlyc3RJbmRleF0pIHsKKyAgICAgICAgICAgIGluZGV4ICs9IGF1eFN0YXJ0OworICAgICAgICB9CisKKyAgICAgICAgLy8gYXQgdGhpcyBwb2ludCwgaW5kZXggaXMgdGhlICJ1cHBlciBsaW1pdCIgb2YgdGhlIHNlYXJjaAorCisgICAgICAgIHN3aXRjaCAocG93ZXIpIHsKKyAgICAgICAgY2FzZSAxNzoKKyAgICAgICAgICAgIGlmICh2YWx1ZSA8IGRhdGFBcnJheVtpbmRleC02NTUzNl0pIGluZGV4IC09IDY1NTM2OworICAgICAgICBjYXNlIDE2OgorICAgICAgICAgICAgaWYgKHZhbHVlIDwgZGF0YUFycmF5W2luZGV4LTMyNzY4XSkgaW5kZXggLT0gMzI3Njg7CisgICAgICAgIGNhc2UgMTU6CisgICAgICAgICAgICBpZiAodmFsdWUgPCBkYXRhQXJyYXlbaW5kZXgtMTYzODRdKSBpbmRleCAtPSAxNjM4NDsKKyAgICAgICAgY2FzZSAxNDoKKyAgICAgICAgICAgIGlmICh2YWx1ZSA8IGRhdGFBcnJheVtpbmRleC04MTkyXSkgaW5kZXggLT0gODE5MjsKKyAgICAgICAgY2FzZSAxMzoKKyAgICAgICAgICAgIGlmICh2YWx1ZSA8IGRhdGFBcnJheVtpbmRleC00MDk2XSkgaW5kZXggLT0gNDA5NjsKKyAgICAgICAgY2FzZSAxMjoKKyAgICAgICAgICAgIGlmICh2YWx1ZSA8IGRhdGFBcnJheVtpbmRleC0yMDQ4XSkgaW5kZXggLT0gMjA0ODsKKyAgICAgICAgY2FzZSAxMToKKyAgICAgICAgICAgIGlmICh2YWx1ZSA8IGRhdGFBcnJheVtpbmRleC0xMDI0XSkgaW5kZXggLT0gMTAyNDsKKyAgICAgICAgY2FzZSAxMDoKKyAgICAgICAgICAgIGlmICh2YWx1ZSA8IGRhdGFBcnJheVtpbmRleC01MTJdKSBpbmRleCAtPSA1MTI7CisgICAgICAgIGNhc2UgOToKKyAgICAgICAgICAgIGlmICh2YWx1ZSA8IGRhdGFBcnJheVtpbmRleC0yNTZdKSBpbmRleCAtPSAyNTY7CisgICAgICAgIGNhc2UgODoKKyAgICAgICAgICAgIGlmICh2YWx1ZSA8IGRhdGFBcnJheVtpbmRleC0xMjhdKSBpbmRleCAtPSAxMjg7CisgICAgICAgIGNhc2UgNzoKKyAgICAgICAgICAgIGlmICh2YWx1ZSA8IGRhdGFBcnJheVtpbmRleC02NF0pIGluZGV4IC09IDY0OworICAgICAgICBjYXNlIDY6CisgICAgICAgICAgICBpZiAodmFsdWUgPCBkYXRhQXJyYXlbaW5kZXgtMzJdKSBpbmRleCAtPSAzMjsKKyAgICAgICAgY2FzZSA1OgorICAgICAgICAgICAgaWYgKHZhbHVlIDwgZGF0YUFycmF5W2luZGV4LTE2XSkgaW5kZXggLT0gMTY7CisgICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAgIGlmICh2YWx1ZSA8IGRhdGFBcnJheVtpbmRleC04XSkgaW5kZXggLT0gODsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgaWYgKHZhbHVlIDwgZGF0YUFycmF5W2luZGV4LTRdKSBpbmRleCAtPSA0OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBpZiAodmFsdWUgPCBkYXRhQXJyYXlbaW5kZXgtMl0pIGluZGV4IC09IDI7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIGlmICh2YWx1ZSA8IGRhdGFBcnJheVtpbmRleC0xXSkgaW5kZXggLT0gMTsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgaWYgKHZhbHVlIDwgZGF0YUFycmF5W2luZGV4XSkgaW5kZXggLT0gMTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaW5kZXg7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9NQ2hhckJ1ZmZlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9NQ2hhckJ1ZmZlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBlZWJmZjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L01DaGFyQnVmZmVyLmphdmEKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogTUNoYXJCdWZmZXIuamF2YSx2ICQgJFJldmlzaW9uOiAxLjEgJCAkRGF0ZTogMjAwMC8wNC8yMCAxNzo0NToxMCAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQ7CitpbXBvcnQgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yOworCisvKiogQSBkeW5hbWljIGNoYXJhY3RlciBhcnJheSBvcHRpbWl6ZWQgZm9yIHNlcXVlbmNlcyBvZiBpbnNlcnQKKyAgICBvciBkZWxldGUgb3BlcmF0aW9ucyBpbiBhIGxvY2FsIHJlZ2lvbi4gKi8KKworYWJzdHJhY3QgY2xhc3MgTUNoYXJCdWZmZXIKK3sKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIGFic3RyYWN0IHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgTUNvbnN0VGV4dCB0ZXh0LCBpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCk7CisgICAgYWJzdHJhY3Qgdm9pZCByZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBjaGFyW10gc3JjQ2hhcnMsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0KTsKKyAgICBhYnN0cmFjdCB2b2lkIHJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIFN0cmluZyBzcmNTdHJpbmcsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0KTsKKyAgICBhYnN0cmFjdCB2b2lkIHJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIGNoYXIgc3JjQ2hhcik7CisgICAgYWJzdHJhY3QgQ2hhcmFjdGVySXRlcmF0b3IgY3JlYXRlQ2hhcmFjdGVySXRlcmF0b3IoaW50IHN0YXJ0LCBpbnQgbGltaXQpOworICAgIGFic3RyYWN0IGNoYXIgYXQoaW50IHBvcyk7CisgICAgYWJzdHJhY3Qgdm9pZCBhdChpbnQgc3RhcnQsIGludCBsaW1pdCwgY2hhcltdIGRzdCwgaW50IGRzdFN0YXJ0KTsKKworICAgIGFic3RyYWN0IGludCAgbGVuZ3RoKCk7CisKKyAgICBhYnN0cmFjdCBpbnQgIGNhcGFjaXR5KCk7CisgICAgYWJzdHJhY3Qgdm9pZCByZXNlcnZlQ2FwYWNpdHkoaW50IHBvcywgaW50IGxlbmd0aCk7CisgICAgYWJzdHJhY3Qgdm9pZCBjb21wcmVzcygpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9NQ29uc3RUZXh0LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L01Db25zdFRleHQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40MjBjZDQ2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9NQ29uc3RUZXh0LmphdmEKQEAgLTAsMCArMSwzMjUgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IE1Db25zdFRleHQuamF2YSx2ICQgJFJldmlzaW9uOiAxLjMgJCAkRGF0ZTogMjAwMi8wMy8yMCAwNToxMToxNyAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CitpbXBvcnQgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEuYXd0LmRhdGF0cmFuc2Zlci5EYXRhRmxhdm9yOworCisvKioKKyAqIE1Db25zdFRleHQgaXMgYSBiYXNlIGNsYXNzIGZvciB0ZXh0IHdpdGggbXVsdGlwbGUgY2hhcmFjdGVyIGFuZAorICogcGFyYWdyYXBoIHN0eWxlcy4gIFRoZSB0ZXh0IGlzIGEgc2VxdWVuY2Ugb2YgVW5pY29kZSBjaGFyYWN0ZXJzLAorICogcmVwcmVzZW50ZWQgYnkgPGNvZGU+Y2hhcjwvY29kZT4uICBDaGFyYWN0ZXIgYW5kIHBhcmFncmFwaAorICogc3R5bGVzIGFyZSByZXByZXNlbnRlZCBieSB0aGUgPGNvZGU+QXR0cmlidXRlTWFwPC9jb2RlPiBjbGFzcy4KKyAqIDxwPgorICogQ2hhcmFjdGVycyBpbiB0aGUgdGV4dCBhcmUgYWNjZXNzZWQgd2l0aCBhbiBpbnRlZ2VyIGluZGV4IHVzaW5nIHRoZQorICogPGNvZGU+YXQ8L2NvZGU+IG1ldGhvZC4KKyAqIFZhbGlkIGluZGljZXMgYXJlIGJldHdlZW4gMCBhbmQgKGxlbmd0aC0xKSwgd2hlcmUgbGVuZ3RoIGlzIHRoZSBudW1iZXIKKyAqIG9mIGNoYXJhY3RlcnMgaW4gdGhlIHRleHQuICBBZGRpdGlvbmFsbHksIHRoZQorICogY2hhcmFjdGVycyBpbiB0aGUgdGV4dCBtYXkgYmUgYWNjZXNzZWQgdGhyb3VnaCBhCisgKiA8Y29kZT5qYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+LgorICogPHA+CisgKiBFdmVyeSBjaGFyYWN0ZXIgaW4gdGhlIHRleHQgaGFzIGEgY2hhcmFjdGVyIHN0eWxlIGFzc29jaWF0ZWQgd2l0aCBpdCwKKyAqIHJlcHJlc2VudGVkIGJ5IHRoZSA8Y29kZT5BdHRyaWJ1dGVNYXA8L2NvZGU+IGNsYXNzLiAgVGhlIGNoYXJhY3RlcgorICogc3R5bGUgZm9yIGEgcGFydGljdWxhciBjaGFyYWN0ZXIgY2FuIGJlIG9idGFpbmVkIHVzaW5nIHRoZQorICogPGNvZGU+Y2hhcmFjdGVyU3R5bGVBdDwvY29kZT4gbWV0aG9kLgorICogPHA+CisgKiBFYWNoIGNoYXJhY3RlciBpbiB0aGUgdGV4dCBpcyBjb250YWluZWQgaW4gYSBwYXJhZ3JhcGguICBBIHBhcmFncmFwaAorICogaXMgYSByYW5nZSBvZiB0ZXh0IGluY2x1ZGluZyBhbmQgdGVybWluYXRlZCBieSBhCisgKiBwYXJhZ3JhcGggc2VwYXJhdG9yIChlaXRoZXIgPGNvZGU+XG48L2NvZGU+IG9yIDxjb2RlPlUrMjAyOTwvY29kZT4pLgorICogRXZlcnkKKyAqIHBhcmFncmFwaCBoYXMgYSBwYXJhZ3JhcGggc3R5bGUgYXNzb2NpYXRlZCB3aXRoIGl0LCByZXByZXNlbnRlZAorICogYnkgdGhlIDxjb2RlPkF0dHJpYnV0ZU1hcDwvY29kZT4gY2xhc3MuICBQYXJhZ3JhcGggYm91bmRhcmllcyBhbmQKKyAqIHN0eWxlcyBjYW4gYmUgb2J0YWluZWQgZnJvbSB0aGUgTUNvbnN0VGV4dC4KKyAqIDxwPgorICogVGhpcyBjbGFzcyBkb2VzIG5vdCBoYXZlIG1ldGhvZHMgZm9yIG1vZGlmeWluZyB0aGUgdGV4dCBvciBzdHlsZXMuCisgKiBIb3dldmVyLCBzdWJjbGFzc2VzIG1heSBhZGQgdGhpcyBjYXBhYmlsaXR5LCBzbyBpdCBpcyBub3Qgc2FmZSB0bworICogYXNzdW1lIHRoYXQgYW4gTUNvbnN0VGV4dCBpbnN0YW5jZSBpcyBpbW11dGFibGUuICBJbiBwYXJ0aWN1bGFyLAorICogdGhlIE1UZXh0IGNsYXNzIGFkZHMgbW9kaWZpY2F0aW9uIHByb3RvY29sIHRvIHRoaXMgY2xhc3MuICBDbGllbnRzCisgKiBjYW4gZGV0ZWN0IHdoZXRoZXIgYW4gTUNvbnN0VGV4dCBoYXMgY2hhbmdlZCBieSBrZWVwaW5nIHRyYWNrIG9mIGl0cworICogdGltZXN0YW1wLgorICogPHA+CisgKiBBIERhdGFGbGF2b3IgZm9yIGNsaXBib2FyZCBjb250ZW50IGlzIGRlZmluZWQgaW4gdGhpcyBjbGFzcy4gIFVzaW5nCisgKiB0aGlzIERhdGFGbGF2b3IgaW5zdXJlcyB0aGF0IGFsbCBjbGllbnRzIHdpbGwgcmVjb2duaXplIE1Db25zdFRleHQKKyAqIGNvbnRlbnQgb24gdGhlIGNsaXBib2FyZC4KKyAqIEBzZWUgTVRleHQKKyAqIEBzZWUgQXR0cmlidXRlTWFwCisgKiBAc2VlIGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcgorICogQHNlZSBqYXZhLmF3dC5kYXRhdHJhbnNmZXIuRGF0YUZsYXZvcgorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgTUNvbnN0VGV4dCB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIC8qKgorICAgICAqIFRoZSBEYXRhRmxhdm9yIGZvciBNQ29uc3RUZXh0IGNsaXBib2FyZCBjb250ZW50LiAgVXNlZCB0bworICAgICAqIGluZGljYXRlIHRoYXQgY2xpcGJvYXJkIGRhdGEgaGFzIGFuIE1Db25zdFRleHQgcmVwcmVzZW50YXRpb24uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBEYXRhRmxhdm9yIHN0eWxlZFRleHRGbGF2b3IgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEYXRhRmxhdm9yKE1Db25zdFRleHQuY2xhc3MsICJTdHlsZWQgVGV4dCIpOworCisgICAgcHJvdGVjdGVkIE1Db25zdFRleHQoKSB7CisgICAgfQorCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBDSEFSQUNURVIgQUNDRVNTCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvKioKKyogUmV0dXJuIHRoZSBjaGFyYWN0ZXIgYXQgb2Zmc2V0IDxjb2RlPnBvczwvY29kZT4uCisqIEBwYXJhbSBwb3MgYSB2YWxpZCBvZmZzZXQgaW50byB0aGUgdGV4dAorKiBAcmV0dXJuIHRoZSBjaGFyYWN0ZXIgYXQgb2Zmc2V0IDxjb2RlPnBvczwvY29kZT4KKyovCisgICAgcHVibGljIGFic3RyYWN0IGNoYXIgYXQoaW50IHBvcyk7CisKKy8qKgorKiBDb3B5IHRoZSBjaGFyYWN0ZXJzIGluIHRoZSByYW5nZSBbPGNvZGU+c3RhcnQ8L2NvZGU+LCA8Y29kZT5saW1pdDwvY29kZT4pCisqIGludG8gdGhlIGFycmF5IDxjb2RlPmRzdDwvY29kZT4sIGJlZ2lubmluZyBhdCA8Y29kZT5kc3RTdGFydDwvY29kZT4uCisqIEBwYXJhbSBzdGFydCBvZmZzZXQgb2YgZmlyc3QgY2hhcmFjdGVyIHdoaWNoIHdpbGwgYmUgY29waWVkIGludG8gdGhlIGFycmF5CisqIEBwYXJhbSBsaW1pdCBvZmZzZXQgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGxhc3QgY2hhcmFjdGVyIHdoaWNoIHdpbGwgYmUgY29waWVkIGludG8gdGhlIGFycmF5CisqIEBwYXJhbSBkc3QgYXJyYXkgaW4gd2hpY2ggdG8gY29weSBjaGFyYWN0ZXJzLiAgVGhlIGxlbmd0aCBvZiA8Y29kZT5kc3Q8L2NvZGU+IG11c3QgYmUgYXQgbGVhc3QKKyogKDxjb2RlPmRzdFN0YXJ0ICsgbGltaXQgLSBzdGFydDwvY29kZT4pLgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBleHRyYWN0Q2hhcnMoaW50IHN0YXJ0LCBpbnQgbGltaXQsIGNoYXJbXSBkc3QsIGludCBkc3RTdGFydCk7CisKKy8qKgorKiBDcmVhdGUgYW4gTUNvbnN0VGV4dCBjb250YWluaW5nIHRoZSBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMgaW4gdGhlIHJhbmdlCisqIFs8Y29kZT5zdGFydDwvY29kZT4sIDxjb2RlPmxpbWl0PC9jb2RlPikuCisqIEBwYXJhbSBzdGFydCBvZmZzZXQgb2YgZmlyc3QgY2hhcmFjdGVyIGluIHRoZSBuZXcgdGV4dAorKiBAcGFyYW0gbGltaXQgb2Zmc2V0IGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBsYXN0IGNoYXJhY3RlciBpbiB0aGUgbmV3IHRleHQKKyogQHJldHVybiBhbiBNQ29uc3RUZXh0IG9iamVjdCBjb250YWluaW5nIHRoZSBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMgaW4gdGhlIGdpdmVuIHJhbmdlCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBNQ29uc3RUZXh0IGV4dHJhY3QoaW50IHN0YXJ0LCBpbnQgbGltaXQpOworCisvKioKKyogQ3JlYXRlIGEgPGNvZGU+amF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yPC9jb2RlPiBvdmVyIGFsbAorKiBvZiB0aGUgY2hhcmFjdGVycyBpbiB0aGUgdGV4dC4gIERlZmF1bHQgaW1wbGVtZW50YXRpb24gY2FsbHMKKyogPGNvZGU+Y3JlYXRlQ2hhcmFjdGVySXRlcmF0b3IoMCwgbGVuZ3RoKCkpPC9jb2RlPgorKiBAcmV0dXJuIGEgPGNvZGU+amF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yPC9jb2RlPiBvdmVyIGFsbAorKiAgICAgIG9mIHRoZSBjaGFyYWN0ZXJzIGluIHRoZSB0ZXh0CisqLworICAgIHB1YmxpYyBDaGFyYWN0ZXJJdGVyYXRvciBjcmVhdGVDaGFyYWN0ZXJJdGVyYXRvcigpIHsKKworICAgICAgICByZXR1cm4gY3JlYXRlQ2hhcmFjdGVySXRlcmF0b3IoMCwgbGVuZ3RoKCkpOworICAgIH0KKworLyoqCisqIENyZWF0ZSBhIDxjb2RlPmphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjwvY29kZT4gb3ZlciB0aGUKKyogZ2l2ZW4gcmFuZ2Ugb2YgY2hhcmFjdGVycyBpbiB0aGUgdGV4dC4KKyogQHBhcmFtIHN0YXJ0IHRoZSBmaXJzdCBpbmRleCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisqIEBwYXJhbSBsaW1pdCB0aGUgaW5kZXggYWZ0ZXIgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyogQHJldHVybiBhIDxjb2RlPmphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjwvY29kZT4gb3ZlciB0aGUKKyogICAgIGdpdmVuIHJhbmdlCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBDaGFyYWN0ZXJJdGVyYXRvciBjcmVhdGVDaGFyYWN0ZXJJdGVyYXRvcihpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCk7CisKKworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gU0laRS9DQVBBQ0lUWQorLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLyoqCisqIFJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSBNQ29uc3RUZXh0IG9iamVjdC4gIFRoZSBsZW5ndGggaXMgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIGluIHRoZSB0ZXh0LgorKiBAcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIE1Db25zdFRleHQgb2JqZWN0CisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgbGVuZ3RoKCk7CisKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIENoYXJhY3RlciBzdHlsZXMKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLyoqCisqIFJldHVybiB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBpbiB0aGUgY2hhcmFjdGVyIHN0eWxlIHJ1bgorKiBjb250YWluaW5nIHBvcy4gIEFsbCBjaGFyYWN0ZXJzIGluIGEgc3R5bGUgcnVuIGhhdmUgdGhlIHNhbWUgY2hhcmFjdGVyCisqIHN0eWxlLgorKiBAcmV0dXJuIHRoZSBzdHlsZSBhdCBvZmZzZXQgPGNvZGU+cG9zPC9jb2RlPgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGNoYXJhY3RlclN0eWxlU3RhcnQoaW50IHBvcyk7CisKKy8qKgorKiBSZXR1cm4gdGhlIGluZGV4IGFmdGVyIHRoZSBsYXN0IGNoYXJhY3RlciBpbiB0aGUgY2hhcmFjdGVyIHN0eWxlIHJ1bgorKiBjb250YWluaW5nIHBvcy4gIEFsbCBjaGFyYWN0ZXJzIGluIGEgc3R5bGUgcnVuIGhhdmUgdGhlIHNhbWUgY2hhcmFjdGVyCisqIHN0eWxlLgorKiBAcmV0dXJuIHRoZSBzdHlsZSBhdCBvZmZzZXQgPGNvZGU+cG9zPC9jb2RlPgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGNoYXJhY3RlclN0eWxlTGltaXQoaW50IHBvcyk7CisKKy8qKgorKiBSZXR1cm4gdGhlIHN0eWxlIGFwcGxpZWQgdG8gdGhlIGNoYXJhY3RlciBhdCBvZmZzZXQgPGNvZGU+cG9zPC9jb2RlPi4KKyogQHBhcmFtIHBvcyBhIHZhbGlkIG9mZnNldCBpbnRvIHRoZSB0ZXh0CisqIEByZXR1cm4gdGhlIHN0eWxlIGF0IG9mZnNldCA8Y29kZT5wb3M8L2NvZGU+CisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBBdHRyaWJ1dGVNYXAgY2hhcmFjdGVyU3R5bGVBdChpbnQgcG9zKTsKKworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gUEFSQUdSQVBIIEJPVU5EQVJJRVMKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8qKgorKiBSZXR1cm4gdGhlIHN0YXJ0IG9mIHRoZSBwYXJhZ3JhcGggY29udGFpbmluZyB0aGUgY2hhcmFjdGVyIGF0IG9mZnNldCA8Y29kZT5wb3M8L2NvZGU+LgorKiBAcGFyYW0gcG9zIGEgdmFsaWQgb2Zmc2V0IGludG8gdGhlIHRleHQKKyogQHJldHVybiB0aGUgc3RhcnQgb2YgdGhlIHBhcmFncmFwaCBjb250YWluaW5nIHRoZSBjaGFyYWN0ZXIgYXQgb2Zmc2V0IDxjb2RlPnBvczwvY29kZT4KKyovCisgICAgcHVibGljIGFic3RyYWN0IGludCBwYXJhZ3JhcGhTdGFydChpbnQgcG9zKTsKKworLyoqCisqIFJldHVybiB0aGUgbGltaXQgb2YgdGhlIHBhcmFncmFwaCBjb250YWluaW5nIHRoZSBjaGFyYWN0ZXIgYXQgb2Zmc2V0IDxjb2RlPnBvczwvY29kZT4uCisqIEBwYXJhbSBwb3MgYSB2YWxpZCBvZmZzZXQgaW50byB0aGUgdGV4dAorKiBAcmV0dXJuIHRoZSBsaW1pdCBvZiB0aGUgcGFyYWdyYXBoIGNvbnRhaW5pbmcgdGhlIGNoYXJhY3RlciBhdCBvZmZzZXQgPGNvZGU+cG9zPC9jb2RlPgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IHBhcmFncmFwaExpbWl0KGludCBwb3MpOworCisvKioKKyogUmV0dXJuIHRoZSBwYXJhZ3JhcGggc3R5bGUgYXBwbGllZCB0byB0aGUgcGFyYWdyYXBoIGNvbnRhaW5pbmcgb2Zmc2V0IDxjb2RlPnBvczwvY29kZT4uCisqIEBwYXJhbSBwb3MgYSB2YWxpZCBvZmZzZXQgaW50byB0aGUgdGV4dAorKiBAcmV0dXJuIHRoZSBwYXJhZ3JhcGggc3R5bGUgaW4gZWZmZWN0IGF0IDxjb2RlPnBvczwvY29kZT4KKyovCisgICAgcHVibGljIGFic3RyYWN0IEF0dHJpYnV0ZU1hcCBwYXJhZ3JhcGhTdHlsZUF0KGludCBwb3MpOworCisvKioKKyogUmV0dXJuIHRoZSBjdXJyZW50IHRpbWUgc3RhbXAuICBUaGUgdGltZSBzdGFtcCBpcworKiBpbmNyZW1lbnRlZCB3aGVuZXZlciB0aGUgY29udGVudHMgb2YgdGhlIE1Db25zdFRleHQgY2hhbmdlcy4KKyogQHJldHVybiB0aGUgY3VycmVudCBwYXJhZ3JhcGggc3R5bGUgdGltZSBzdGFtcAorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGdldFRpbWVTdGFtcCgpOworCisvKioKKyogUmV0dXJuIHRoZSBzdGFydCBvZiB0aGUgZGFtYWdlZCByYW5nZS4gIElmIHRoZSBzdGFydCBpcyBub3QgbGVzcworKiB0aGFuIHRoZSB0aGUgbGltaXQgb2YgdGhlIGRhbWFnZWQgcmFuZ2UsIHRoZW4gdGhlIGRhbWFnZWQgcmFuZ2UKKyogaXMgZW1wdHkuCisqIEByZXR1cm4gdGhlIHN0YXJ0IG9mIHRoZSBkYW1hZ2VkIHJhbmdlCisqIEBzZWUgI2RhbWFnZWRSYW5nZUxpbWl0CisqIEBzZWUgTVRleHQjcmVzZXREYW1hZ2VkUmFuZ2UKKyovCisgICAgcHVibGljIGFic3RyYWN0IGludCBkYW1hZ2VkUmFuZ2VTdGFydCgpOworCisvKioKKyogUmV0dXJuIHRoZSBsaW1pdCBvZiB0aGUgZGFtYWdlZCByYW5nZS4gIElmIHRoZSBzdGFydCBpcyBub3QgbGVzcworKiB0aGFuIHRoZSB0aGUgbGltaXQgb2YgdGhlIGRhbWFnZWQgcmFuZ2UsIHRoZW4gdGhlIGRhbWFnZWQgcmFuZ2UKKyogaXMgZW1wdHkuCisqIEByZXR1cm4gdGhlIHN0YXJ0IG9mIHRoZSBkYW1hZ2VkIHJhbmdlCisqIEBzZWUgI2RhbWFnZWRSYW5nZVN0YXJ0CisqIEBzZWUgTVRleHQjcmVzZXREYW1hZ2VkUmFuZ2UKKyovCisgICAgcHVibGljIGFic3RyYWN0IGludCBkYW1hZ2VkUmFuZ2VMaW1pdCgpOworCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBFcXVhbGl0eSBhbmQgaGFzaENvZGUKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8qKgorKiBDb21wYXJlIHRoaXMgdG8gYW5vdGhlciBPYmplY3QgZm9yIGVxdWFsaXR5LiAgVGhpcyBpcworKiBlcXVhbCB0byByaHMgaWYgcmhzIGlzIGFuIE1Db25zdFRleHQgd2hpY2ggaXMgZXF1YWwKKyogdG8gdGhpcy4KKyogQHBhcmFtIHJocyBPYmplY3QgdG8gY29tcGFyZSB0bworKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBlcXVhbHMgPGNvZGU+cmhzPC9jb2RlPgorKi8KKyAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IHJocykgeworCisgICAgICAgIE1Db25zdFRleHQgb3RoZXJUZXh0OworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBvdGhlclRleHQgPSAoTUNvbnN0VGV4dCkgcmhzOworICAgICAgICB9CisgICAgICAgIGNhdGNoKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZXF1YWxzKG90aGVyVGV4dCk7CisgICAgfQorCisvKioKKyogQ29tcGFyZSB0aGlzIHRvIGFub3RoZXIgTUNvbnN0VGV4dCBmb3IgZXF1YWxpdHkuICBUaGlzIGlzCisqIGVxdWFsIHRvIHJocyBpZiB0aGUgY2hhcmFjdGVycyBhbmQgc3R5bGVzIGluIHJocyBhcmUgdGhlCisqIHNhbWUgYXMgdGhpcy4gIFN1YmNsYXNzZXMgbWF5IG92ZXJyaWRlIHRoaXMgaW1wbGVtZW50YXRpb24KKyogZm9yIGVmZmljaWVuY3ksIGJ1dCB0aGV5IHNob3VsZCBwcmVzZXJ2ZSB0aGVzZSBzZW1hbnRpY3MuCisqIERldGVybWluaW5nIHRoYXQgdHdvIE1Db25zdFRleHQgaW5zdGFuY2VzIGFyZSBlcXVhbCBtYXkgYmUKKyogYW4gZXhwZW5zaXZlIG9wZXJhdGlvbiwgc2luY2UgZXZlcnkgY2hhcmFjdGVyIGFuZCBzdHlsZSBtdXN0CisqIGJlIGNvbXBhcmVkLgorKiBAcGFyYW0gcmhzIE9iamVjdCB0byBjb21wYXJlIHRvCisqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIGVxdWFscyA8Y29kZT5yaHM8L2NvZGU+CisqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhNQ29uc3RUZXh0IHJocykgeworCisgICAgICAgIGlmIChyaHMgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHJocyA9PSB0aGlzKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChoYXNoQ29kZSgpICE9IHJocy5oYXNoQ29kZSgpKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBpbnQgbGVuZ3RoID0gbGVuZ3RoKCk7CisgICAgICAgIGlmIChsZW5ndGggIT0gcmhzLmxlbmd0aCgpKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBsZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKGkgPCBsZW5ndGggJiYgYXQoaSkgIT0gcmhzLmF0KGkpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZm9yIChpbnQgc3RhcnQgPSAwOyBzdGFydCA8IGxlbmd0aDspIHsKKyAgICAgICAgICAgIGlmICghY2hhcmFjdGVyU3R5bGVBdChzdGFydCkuZXF1YWxzKHJocy5jaGFyYWN0ZXJTdHlsZUF0KHN0YXJ0KSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgbGltaXQgPSBjaGFyYWN0ZXJTdHlsZUxpbWl0KHN0YXJ0KTsKKyAgICAgICAgICAgIGlmIChsaW1pdCAhPSByaHMuY2hhcmFjdGVyU3R5bGVMaW1pdChzdGFydCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdGFydCA9IGxpbWl0OworICAgICAgICB9CisKKyAgICAgICAgZm9yIChpbnQgc3RhcnQgPSAwOyBzdGFydCA8IGxlbmd0aDspIHsKKworICAgICAgICAgICAgaWYgKCFwYXJhZ3JhcGhTdHlsZUF0KHN0YXJ0KS5lcXVhbHMocmhzLnBhcmFncmFwaFN0eWxlQXQoc3RhcnQpKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN0YXJ0ID0gcGFyYWdyYXBoTGltaXQoc3RhcnQpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHBhcmFncmFwaFN0eWxlQXQobGVuZ3RoKS5lcXVhbHMocmhzLnBhcmFncmFwaFN0eWxlQXQobGVuZ3RoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBoYXNoQ29kZSBmb3IgdGhpcyBNQ29uc3RUZXh0LiAgQW4gZW1wdHkgTUNvbnN0VGV4dAorICAgICAqIGhhcyBoYXNoQ29kZSAwOyAgYSBub25lbXB0eSBNQ29uc3RUZXh0J3MgaGFzaENvZGUgaXMKKyAgICAgKiA8YmxvY2txdW90ZT48cHJlPgorICAgICAqICAgICAgIGF0KDApICsKKyAgICAgKiAgICAgICBhdChsZW5ndGgvMikqMzFeMSArCisgICAgICogICAgICAgYXQobGVuZ3RoLTEpKjMxXjIgKworICAgICAqICAgICAgIGNoYXJhY3RlclN0eWxlQXQoMCkuaGFzaENvZGUoKSozMV4zICsKKyAgICAgKiAgICAgICBwYXJhZ3JhcGhTdHlsZUF0KGxlbmd0aC0xKS5oYXNoQ29kZSgpKjMxXjQKKyAgICAgKiA8L3ByZT48L2Jsb2NrcXVvdGU+CisgICAgICogd2hlcmUgPGNvZGU+XjwvY29kZT4gaXMgZXhwb25lbnRpYXRpb24gKG5vdCBiaXR3aXNlIFhPUikuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBoYXNoQ29kZSgpIHsKKworICAgICAgICBpbnQgaGFzaENvZGUgPSAwOworICAgICAgICBpbnQgbGVuZ3RoID0gbGVuZ3RoKCk7CisKKyAgICAgICAgaWYgKGxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgIGhhc2hDb2RlID0gcGFyYWdyYXBoU3R5bGVBdChsZW5ndGgtMSkuaGFzaENvZGUoKTsKKyAgICAgICAgICAgIGhhc2hDb2RlID0gaGFzaENvZGUqMzEgKyBjaGFyYWN0ZXJTdHlsZUF0KDApLmhhc2hDb2RlKCk7CisgICAgICAgICAgICBoYXNoQ29kZSA9IGhhc2hDb2RlKjMxICsgYXQobGVuZ3RoLTEpOworICAgICAgICAgICAgaGFzaENvZGUgPSBoYXNoQ29kZSozMSArIGF0KGxlbmd0aC8yKTsKKyAgICAgICAgICAgIGhhc2hDb2RlID0gaGFzaENvZGUqMzEgKyBhdCgwKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBoYXNoQ29kZTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L01QYXJhZ3JhcGhCdWZmZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvTVBhcmFncmFwaEJ1ZmZlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhhMDE4ZmYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L01QYXJhZ3JhcGhCdWZmZXIuamF2YQpAQCAtMCwwICsxLDk0IEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBNUGFyYWdyYXBoQnVmZmVyLmphdmEsdiAkICRSZXZpc2lvbjogMS4yICQgJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6MzUgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0OworCitpbXBvcnQgamF2YS5pby5TZXJpYWxpemFibGU7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCithYnN0cmFjdCBjbGFzcyBNUGFyYWdyYXBoQnVmZmVyCit7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKworLyoqCisqIFJldHVybnMgdGhlIHN0YXJ0IG9mIHRoZSBwYXJhZ3JhcGggY29udGFpbmluZyBvZmZzZXQgPHR0PnBvczwvdHQ+LgorKi8KKyAgICBhYnN0cmFjdCBpbnQgcGFyYWdyYXBoU3RhcnQoaW50IHBvcyk7CisKKy8qKgorKiBSZXR1cm5zIHRoZSBsaW1pdCBvZiB0aGUgcGFyYWdyYXBoIGNvbnRhaW5pbmcgb2Zmc2V0IDx0dD5wb3M8L3R0Pi4KKyovCisgICAgYWJzdHJhY3QgaW50IHBhcmFncmFwaExpbWl0KGludCBwb3MpOworCisvKioKKyogUmV0dXJucyB0aGUgc3R5bGUgb2YgdGhlIHBhcmFncmFwaCBjb250YWluaW5nIG9mZnNldCA8dHQ+cG9zPC90dD4uCisqLworICAgIGFic3RyYWN0IEF0dHJpYnV0ZU1hcCBwYXJhZ3JhcGhTdHlsZUF0KGludCBvZmZzZXQpOworCisvKioKKyogUHJvY2VzcyBhIGNoYXJhY3RlciBpbnNlcnRpb24gYXQgb2Zmc2V0IDx0dD5zdGFydDwvdHQ+LgorKiBJZiBhIHBhcmFncmFwaCBicmVhayB3YXMgaW5zZXJ0ZWQsIHByb3BvZ2F0ZSBwYXJhZ3JhcGggc3R5bGUgYXQKKyogPHR0PnN0YXJ0PC90dD4gdG8gbmV3IHBhcmFncmFwaC4KKyovCisgICAgYWJzdHJhY3Qgdm9pZCBpbnNlcnRUZXh0KGludCBzdGFydCwgY2hhciBpbnNlcnRlZENoYXIpOworCisvKioKKyogUHJvY2VzcyBjaGFyYWN0ZXIgaW5zZXJ0aW9uIGF0IG9mZnNldCA8dHQ+c3RhcnQ8L3R0Pi4KKyogRWFjaCBuZXcgcGFyYWdyYXBoIGdldHMgcGFyYWdyYXBoIHN0eWxlIGF0CisqIDx0dD5zdGFydDwvdHQ+LgorKi8KKyAgICBhYnN0cmFjdCB2b2lkIGluc2VydFRleHQoaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gc3JjQ2hhcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzcmNTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNyY0xpbWl0KTsKKworLyoqCisqIFByb2Nlc3MgZGVsZXRpb24gYnkgcmVtb3ZpbmcgcGFyYWdyYXBoIGJyZWFrcyBjb250YWluZWQgaW4KKyogZGVsZXRlZCByYW5nZS4gIFByb3BvZ2F0ZSBwYXJhZ3JhcGggc3R5bGVzIGJhY2t3YXJkLCBpZiBuZWNlc3NhcnkuCisqLworICAgIGFic3RyYWN0IHZvaWQgZGVsZXRlVGV4dChpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gZGFtYWdlZFJhbmdlKTsKKworLyoKKyogUmVwbGFjZSBwYXJhZ3JhcGggYnJlYWtzL3N0eWxlcyBiZXR3ZWVuIHN0YXJ0IGFuZCBsaW1pdCB3aXRoIHBhcmFncmFwaCBicmVha3Mvc3R5bGVzCisqIGZyb20gPHR0PnNyY1RleHQ8L3R0Pi4KKyogQHBhcmFtIHN0YXJ0IGFuIG9mZnNldCBpbnRvIHRoZSB0ZXh0CisqIEBwYXJhbSBsaW1pdCB0aGUgaW5kZXggYWZ0ZXIgdGhlIGxhc3QgY2hhcmFjdGVyIHRvIHJlcGxhY2UKKyogQHBhcmFtIHNyY1RleHQgdGhlIHRleHQgZnJvbSB3aGljaCBuZXcgcGFyYWdyYXBocyBhcmUgdGFrZW4KKyogQHBhcmFtIHNyY1N0YXJ0IHRoZSBzdGFydCBvZiB0aGUgcmFuZ2UgaW4gPGNvZGU+c3JjVGV4dDwvY29kZT4gdG8gY29weQorKiBAcGFyYW0gc3JjTGltaXQgdGhlIGZpcnN0IGluZGV4IGFmdGVyIHRoZSByYW5nZSBpbiA8Y29kZT5zcmNUZXh0PC9jb2RlPiB0byBjb3B5CisqLworICAgIGFic3RyYWN0IHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgTUNvbnN0VGV4dCBzcmNUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3JjU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzcmNMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gZGFtYWdlZFJhbmdlKTsKKworLyoqCisqIFNldCB0aGUgc3R5bGUgb2YgYWxsIHBhcmFncmFwaHMgY29udGFpbmluZyBvZmZzZXRzIGluIHRoZSByYW5nZSBbc3RhcnQsIGxpbWl0KSB0bworKiA8dHQ+c3R5bGU8L3R0Pi4KKyovCisgICAgYWJzdHJhY3QgYm9vbGVhbiBtb2RpZnlQYXJhZ3JhcGhTdHlsZXMoaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHlsZU1vZGlmaWVyIG1vZGlmaWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludFtdIGRhbWFnZWRSYW5nZSk7CisKKy8qKgorKiBNaW5pbWl6ZSB0aGUgYW1vdW50IG9mIG1lbW9yeSB1c2VkIGJ5IHRoaXMgb2JqZWN0LgorKi8KKyAgICBhYnN0cmFjdCB2b2lkIGNvbXByZXNzKCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L01TdHlsZUJ1ZmZlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9NU3R5bGVCdWZmZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43N2JlOGYxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9NU3R5bGVCdWZmZXIuamF2YQpAQCAtMCwwICsxLDExMiBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogTVN0eWxlQnVmZmVyLmphdmEsdiAkICRSZXZpc2lvbjogMS4yICQgJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6MzUgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKKworLyoKKyAgICA4LzEvOTYKKyAgICAgICAgU3R5bGUgLT4gUmVzb2x2ZWRTdHlsZQorICAgIDgvNy85NiBqZgorICAgICAgICBhZGRlZCBjb3VudFN0eWxlcyBhbmQgZ2V0U3R5bGVzIHByb3RvY29sCisgICAgOC8xMy85NgorICAgICAgICBSZXNvbHZlZFN0eWxlLT5TdHlsZQorICAgIDgvMjIvOTYgamYKKyAgICAgICAgUmVtb3ZlZCB0aGUgc2V0SXRlcmF0b3IgbWV0aG9kcy4KKyovCisvKgorKiBNU3R5bGVCdWZmZXIgaXMgdGhlIGFic3RyYWN0IGludGVyZmFjZSBmb3IgYSBjbGFzcyB3aGljaCBtYWludGFpbnMKKyogc3R5bGUgcnVucyBpbiBhbiA8dHQ+TVRleHQ8L3R0Pi4gIEEgInN0eWxlIHJ1biIgY29uc2lzdHMgb2YgYQorKiBzdHlsZSBhbmQgdGhlIGludGVydmFsIG9uIHdoaWNoIHRoZSBzdHlsZSBhcHBsaWVzLgorKiA8cD4KKyogTVN0eWxlQnVmZmVyIGluY2x1ZGVzIG1ldGhvZHMgdG8gY2FsbCB3aGVuIHRleHQgaXMgaW5zZXJ0ZWQgaW50bworKiBvciBkZWxldGVkIGZyb20gdGhlIDx0dD5NVGV4dDwvdHQ+LiAgVGhlc2UgbWV0aG9kcyB1cGRhdGUgdGhlCisqIHN0eWxlIHJ1bnMgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBjb21tb25seSBhY2NlcHRlZCBiZWhhdmlvciBmb3IKKyogc3R5bGUgcnVucy4KKyogPHA+CisqIEFkZGl0aW9uYWxseSwgTVN0eWxlQnVmZmVyIHByb3ZpZGVzIG1ldGhvZHMgZm9yIHJlcGxhY2luZyB0aGUgc3R5bGUgcnVucyBvbiBhCisqIHRleHQgcmFuZ2Ugd2l0aCBhbm90aGVyIHNldCBvZiBzdHlsZSBydW5zLiAgTVN0eWxlQnVmZmVyIGRvZXMgbm90IGRvIHN0eWxlICJjb21iaW5pbmciIChmb3IKKyogZXhhbXBsZSwgYWRkaW5nIHRoZSBib2xkIGF0dHJpYnV0ZSB0byB0ZXh0IHdoaWNoIGlzIGl0YWxpY2l6ZWQpOyAgY2xpZW50cyBhcmUKKyogcmVzcG9uc2libGUgZm9yIGNvbXB1dGluZyB0aGUgY29tYmluZWQgc3R5bGVzLCBhbmQgcGFzc2luZyB0aGVzZSBzdHlsZXMgaW50bworKiBNU3R5bGVCdWZmZXIuCisqIDxwPgorKiBNU3R5bGVCdWZmZXIgc3VwcGxpZXMgYSBtZXRob2QgZm9yIHJlcGxhY2luZyB0aGUgc3R5bGUgcnVucyBvbiBhIHRleHQgcmFuZ2Ugd2l0aCB0aGUgcnVucworKiByZXByZXNlbnRlZCBpbiBhbiA8dHQ+TVN0eWxlUnVuSXRlcmF0b3I8L3R0Pi4gIFRoaXMgaXMgdXNlZnVsIGZvciBpbXBsZW1lbnRpbmcgcGFzdGUKKyogb3BlcmF0aW9ucywgaW4gd2hpY2ggdGhlIHN0eWxlIHJ1bnMgb24gYSByYW5nZSBvZiB0ZXh0IGFyZSByZXBsYWNlZCBieSBzdHlsZSBydW5zCisqIGZyb20gYW4gZXh0ZXJuYWwgc291cmNlLgorKiA8cD4KKyoKKyogQGF1dGhvciBKb2huIFJhbGV5CisqCisqIEBzZWUgQXR0cmlidXRlTWFwCisqIEBzZWUgTVRleHQKKyovCithYnN0cmFjdCBjbGFzcyBNU3R5bGVCdWZmZXIKK3sKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisvKioKKyogUmVzcG9uZCB0byBhbiBpbnNlcnRpb24gaW4gdGhlIHRleHQuICBUaGUgbGVuZ3RoIG9mIHRoZSBsYXN0IHN0eWxlIHJ1biB3aGljaAorKiBiZWdpbnMgYmVmb3JlIDx0dD5zdGFydDwvdHQ+IGlzIGluY3JlYXNlZCBieSA8dHQ+bGltaXQtc3RhcnQ8L3R0Pi4KKyogQHBhcmFtIHN0YXJ0IHRoZSBvZmZzZXQgd2hlcmUgdGhlIGluc2VydGlvbiBiZWdhbgorKiBAcGFyYW0gbGltaXQgdGhlIG9mZnNldCB3aGVyZSB0aGUgaW5zZXJ0aW9uIGVuZGVkCisqLworICAgIGFic3RyYWN0IHZvaWQgaW5zZXJ0VGV4dChpbnQgc3RhcnQsIGludCBsaW1pdCk7CisKKy8qKgorKiBSZXNwb25kIHRvIGEgZGVsZXRpb24gaW4gdGhlIHRleHQuICBUaGUgbGFzdCBzdHlsZSBydW4gYmVmb3JlCisqIDx0dD5zdGFydDwvdHQ+IGlzIHRydW5jYXRlZCB0byBlbmQgYXQgPHR0PnN0YXJ0PC90dD4uICBUaGUKKyogc3R5bGUgcnVuIGNvbnRhaW5pbmcgKDx0dD5zdGFydDwvdHQ+Kzx0dD5sZW5ndGg8L3R0PikgaXMgc2V0IHRvIGJlZ2luCisqIGF0ICg8dHQ+c3RhcnQ8L3R0Pis8dHQ+bGVuZ3RoPC90dD4pLiAgUnVucyBpbiBiZXR3ZWVuIGFyZSBkZWxldGVkLgorKiBJZiB0aGUgZGVsZXRpb24gb2NjdXJzIGVudGlyZWx5IHdpdGhpbiBvbmUgc3R5bGUgcnVuLCB0aGUgbGVuZ3RoIG9mIHRoZSBzdHlsZQorKiBydW4gaXMgcmVkdWNlZCBieSA8dHQ+bGVuZ3RoPC90dD4uCisqIEBwYXJhbSBzdGFydCB0aGUgb2Zmc2V0IHdoZXJlIHRoZSBkZWxldGlvbiBiZWdhbgorKiBAcGFyYW0gbGVuZ3RoIHRoZSBvZmZzZXQgd2hlcmUgdGhlIGRlbGV0aW9uIGVuZGVkCisqLworICAgIGFic3RyYWN0IHZvaWQgZGVsZXRlVGV4dChpbnQgc3RhcnQsIGludCBsaW1pdCk7CisKKy8qCisqIFJlcGxhY2Ugc3R5bGUgcnVucyBiZXR3ZWVuIG9mZnNldHMgPHR0PnN0YXJ0PC90dD4gYW5kIDx0dD5saW1pdDwvdHQ+IHdpdGggc3R5bGVzIGluCisqIDx0dD5pdGVyPC90dD4uICBUaGlzIG1ldGhvZCBjYW4gYmUgdXNlZCB0byBwZXJmb3JtIGEgInBhc3RlIiBvcGVyYXRpb24uCisqIEBwYXJhbSBzdGFydCB0aGUgb2Zmc2V0IHdoZXJlIHRoZSByZXBsYWNlbWVudCBiZWdpbnMKKyogQHBhcmFtIGxpbWl0IHRoZSBvZmZzZXQgd2hlcmUgdGhlIHJlcGxhY2VtZW50IGVuZHMKKyogQHBhcmFtIGl0ZXIgYW4gPHR0Pk1TdHlsZVJ1bkl0ZXJhdG9yPC90dD4gY29udGFpbmluZyBzdHlsZSBydW5zIHdoaWNoIHdpbGwgcmVwbGFjZSBvbGQKKyogc3R5bGUgcnVucy4KKyovCisgICAgYWJzdHJhY3Qgdm9pZCByZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBNQ29uc3RUZXh0IHNyY1RleHQsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0KTsKKworICAgIGFic3RyYWN0IGludCBzdHlsZVN0YXJ0KGludCBwb3MpOworICAgIGFic3RyYWN0IGludCBzdHlsZUxpbWl0KGludCBwb3MpOworCisvKioKKyogUmV0dXJuIHN0eWxlIGF0IGxvY2F0aW9uIDx0dD5wb3M8L3R0Pi4KKyogQHBhcmFtIHBvcyBhbiBvZmZzZXQgaW50byB0aGUgdGV4dAorKiBAcmV0dXJucyB0aGUgc3R5bGUgb2YgdGhlIGNoYXJhY3RlciBhdCA8dHQ+b2Zmc2V0PC90dD4KKyovCisgICAgYWJzdHJhY3QgQXR0cmlidXRlTWFwIHN0eWxlQXQoaW50IHBvcyk7CisKKy8qKgorICogUmV0dXJuIHRydWUgaWYgc3R5bGVzIHdlcmUgbW9kaWZpZWQuCisgKi8KKyAgICBhYnN0cmFjdCBib29sZWFuIG1vZGlmeVN0eWxlcyhpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0eWxlTW9kaWZpZXIgbW9kaWZpZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gZGFtYWdlZFJhbmdlKTsKKworLyoqCisqIE1pbmltaXplIHRoZSBhbW91bnQgb2YgbWVtb3J5IHVzZWQgYnkgdGhpcyBvYmplY3QuCisqLworICAgIGFic3RyYWN0IHZvaWQgY29tcHJlc3MoKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvTVRhYlJ1bGVyLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L01UYWJSdWxlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQwZmE0ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L01UYWJSdWxlci5qYXZhCkBAIC0wLDAgKzEsMTEzIEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBNVGFiUnVsZXIuamF2YSx2ICQgJFJldmlzaW9uOiAxLjEgJCAkRGF0ZTogMjAwMC8wNC8yMCAxNzo0NToxMCAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQ7CisKKy8qKgorICogVGhpcyBpbnRlcmZhY2UgcmVwcmVzZW50cyBhIHNlcXVlbmNlIG9mIFRhYlN0b3BzLCBvcmRlcmVkIGJ5IHBvc2l0aW9uLgorICogVGhlIGZpcnN0CisgKiBUYWJTdG9wIGluIHRoZSBydWxlciBjYW4gYmUgb2J0YWluZWQgd2l0aCB0aGUgPGNvZGU+Zmlyc3RUYWI8L2NvZGU+CisgKiBtZXRob2Q7ICBzdWJzZXF1ZW50IFRhYlN0b3BzIGFyZSBvYnRhaW5lZCB3aXRoIHRoZSA8Y29kZT5uZXh0VGFiPC9jb2RlPgorICogbWV0aG9kLgorICogPHA+CisgKiBJZiBhIFRhYlN0b3Agd2l0aCB0eXBlIDxjb2RlPlRhYlN0b3Aua0F1dG88L2NvZGU+IGlzIHJldHVybmVkLCBhbGwgdGFicworICogYWZ0ZXIgdGhhdCBUYWJTdG9wIHdpbGwgYWxzbyBoYXZlIHR5cGUgPGNvZGU+VGFiU3RvcC5rQXV0bzwvY29kZT4sIGFuZAorICogdGhlaXIgcG9zaXRpb25zIHdpbGwgYmUgbXVsdGlwbGVzIG9mIDxjb2RlPmF1dG9TcGFjaW5nPC9jb2RlPi4KKyAqIEBzZWUgVGFiU3RvcAorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgTVRhYlJ1bGVyCit7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gZmlyc3QgdGFiIGluIHRoZSBydWxlci4gIElmIGFuIGF1dG9UYWIsIGl0IGlzIGF0IHBvc2l0aW9uIHplcm8sIGFuZAorICAgICAqIGFsbCBzdWJzZXF1ZW50IHRhYnMgd2lsbCBiZSBhdXRvdGFicyBhdCBhdXRvU3BhY2luZyBpbnRlcnZhbHMuCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IFRhYlN0b3AgZmlyc3RUYWIoKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZmlyc3QgdGFiIGluIHRoZSBydWxlciB3aXRoIGZQb3NpdGlvbiA+IHBvc2l0aW9uLiAgSWYgaXQgaXMgYW4KKyAgICAgKiBhdXRvdGFiLCBpdCBpcyBhdCBhbiBpbmNyZW1lbnQgb2YgYXV0b1NwYWNpbmcsIGFuZCBhbGwgc3Vic2VxdWVudCB0YWJzIHdpbGwgYmUKKyAgICAgKiBhdXRvdGFicyBhdCBhdXRvU3BhY2luZyBpbnRlcnZhbHMuCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IFRhYlN0b3AgbmV4dFRhYihpbnQgcG9zaXRpb24pOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBpbnRlcnZhbCBmb3IgYXV0b3RhYnMuCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBhdXRvU3BhY2luZygpOworCisgICAgLyoqCisgICAgICogQ29tcHV0ZSB0aGUgaGFzaENvZGUgZm9yIHRoaXMgcnVsZXIuICBUaGUgaGFzaENvZGUgaXMgdGhlCisgICAgICogaGFzaENvZGUgb2YgdGhlIGZpcnN0IHRhYiBtdWx0aXBsaWVkIGJ5IHRoZSBhdXRvU3BhY2luZworICAgICAqIGludGVydmFsLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgaGFzaENvZGUoKSB7CisKKyAgICAgICAgcmV0dXJuIGZpcnN0VGFiKCkuaGFzaENvZGUoKSAqIGF1dG9TcGFjaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhpcyB0YWIgcnVsZXIgY29udGFpbnMgdGhlIGdpdmVuIHRhYi4KKyAgICAgKiBAcGFyYW0gdGFiVG9UZXN0IHRoZSB0YWIgdG8gc2VhcmNoIGZvcgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIHRhYiBydWxlciBjb250YWlucyA8Y29kZT50YWJUb1Rlc3Q8L2NvZGU+CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gY29udGFpbnNUYWIoVGFiU3RvcCB0YWJUb1Rlc3QpIHsKKworICAgICAgICBmb3IgKFRhYlN0b3AgdGFiID0gZmlyc3RUYWIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhYi5nZXRUeXBlKCkgIT0gVGFiU3RvcC5rQXV0bzsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhYiA9IG5leHRUYWIodGFiLmdldFBvc2l0aW9uKCkpKSB7CisgICAgICAgICAgICBpZiAodGFiLmdldFBvc2l0aW9uKCkgPj0gdGFiVG9UZXN0LmdldFBvc2l0aW9uKCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGFiVG9UZXN0LmVxdWFscyh0YWIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHRhYiBydWxlciBpZGVudGljYWwgdG8gdGhpcyBydWxlciwgZXhjZXB0IHdpdGggdGhlCisgICAgICogZ2l2ZW4gdGFiIGFkZGVkLiAgVGhpcyBydWxlciBpcyBub3QgbW9kaWZpZWQuCisgICAgICogQHBhcmFtIHRhYlRvQWRkIHRoZSB0YWIgdG8gYWRkIHRvIHRoZSBuZXcgdGFiIHJ1bGVyCisgICAgICogQHJldHVybiBhbiBNVGFiUnVsZXIgcmVzdWx0aW5nIGZyb20gdGhpcyBvcGVyYXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgTVRhYlJ1bGVyIGFkZFRhYihUYWJTdG9wIHRhYlRvQWRkKSB7CisKKyAgICAgICAgcmV0dXJuIFN0YW5kYXJkVGFiUnVsZXIuYWRkVGFiVG9SdWxlcih0aGlzLCB0YWJUb0FkZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgdGFiIHJ1bGVyIGlkZW50aWNhbCB0byB0aGUgZ2l2ZW4gcnVsZXIsIGV4Y2VwdCB3aXRoIHRoZQorICAgICAqIHRhYiBhdCB0aGUgZ2l2ZW4gcG9zaXRpb24gcmVtb3ZlZC4gIFRoaXMgcnVsZXIgaXMgbm90IG1vZGlmaWVkLgorICAgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgcG9zaXRpb24gb2YgdGhlIHRhYiB0byByZW1vdmUgZnJvbSB0aGUgbmV3IHRhYiBydWxlcgorICAgICAqIEByZXR1cm4gYW4gTVRhYlJ1bGVyIHJlc3VsdGluZyBmcm9tIHRoaXMgb3BlcmF0aW9uCisgICAgICovCisgICAgcHVibGljIE1UYWJSdWxlciByZW1vdmVUYWIoaW50IHBvc2l0aW9uKSB7CisKKyAgICAgICAgcmV0dXJuIFN0YW5kYXJkVGFiUnVsZXIucmVtb3ZlVGFiRnJvbVJ1bGVyKHRoaXMsIHBvc2l0aW9uKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSB0YWIgcnVsZXIgaWRlbnRpY2FsIHRvIHRoaXMgcnVsZXIsIGV4Y2VwdCB3aXRoIHRoZQorICAgICAqIHRhYiBhdCBwb3NpdGlvbiA8Y29kZT5mcm9tUG9zaXRpb248L2NvZGU+IG1vdmVkIHRvIHBvc2l0aW9uCisgICAgICogPGNvZGU+dG9Qb3NpdGlvbjwvY29kZT4uICBUaGlzIHJ1bGVyIGlzIG5vdCBtb2RpZmllZC4KKyAgICAgKiBAcGFyYW0gZnJvbVBvc2l0aW9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgdGFiIHRvIG1vdmUKKyAgICAgKiBAcGFyYW0gdG9Qb3NpdGlvbiB0aGUgbmV3IHBvc2l0aW9uIG9mIHRoZSB0YWIKKyAgICAgKiBAcmV0dXJuIGFuIE1UYWJSdWxlciByZXN1bHRpbmcgZnJvbSB0aGlzIG9wZXJhdGlvbgorICAgICAqLworICAgIHB1YmxpYyBNVGFiUnVsZXIgbW92ZVRhYihpbnQgZnJvbVBvc2l0aW9uLCBpbnQgdG9Qb3NpdGlvbikgeworCisgICAgICAgIHJldHVybiBTdGFuZGFyZFRhYlJ1bGVyLm1vdmVUYWJPblJ1bGVyKHRoaXMsIGZyb21Qb3NpdGlvbiwgdG9Qb3NpdGlvbik7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvTVRleHQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvTVRleHQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kMDE0OWZlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9NVGV4dC5qYXZhCkBAIC0wLDAgKzEsMjQzIEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBNVGV4dC5qYXZhLHYgJCAkUmV2aXNpb246IDEuMiAkICREYXRlOiAyMDAyLzAyLzE2IDAzOjA2OjM2ICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKKworLyoKKyAgICBDaGFuZ2UgaGlzdG9yeToKKworICAgIDEwLzI5Lzk2IGplZiAgICBzcGxpdCB0aGUgY2hhcmFjdGVyIGFuZCBwYXJhZ3JhcGggc3R5bGUgYWNjZXNzIGZ1bmN0aW9ucworICAgIDgvMTQvOTYgc2ZiICAgICBlbGltaW5hdGVkIFN0eWxlU2hlZXRJdGVyYXRvcgorICAgIDgvMjEvOTYgamVmICAgICAgICBjb21wbGV0ZWQgYWJzdHJhY3QgaW50ZXJmYWNlIChjaGFuZ2VkIGl0ZXJhdG9yIGNsYXNzZXMgZXRjLikKKyAgICAxLzMwLzk3IHJ0ZyAgICAgY2xlYW5lZCB1cCBpbnRlcmZhY2UsIGJyb3VnaHQgaW4gZnVuY3Rpb25zIGZyb20gU2ltcGxlVGV4dFZpZXcKKyAgICA3LzMxLzk4IGpiciBzd2l0Y2hlZCBmcm9tIFN0eWxlIHRvIEF0dHJpYnV0ZU1hcAorCisqLworCisvKioKKyAqIFRoaXMgY2xhc3MgaXMgYSBtdXRhYmxlIGV4dGVuc2lvbiBvZiBNQ29uc3RUZXh0LiAgSXQgaGFzIG1ldGhvZHMgZm9yCisgKiBpbnNlcnRpbmcsIGFwcGVuZGluZywgcmVwbGFjaW5nLCBhbmQgcmVtb3Zpbmcgc3R5bGVkIHRleHQuICBBZGRpdGlvbmFsbHksCisgKiBpdCBoYXMgbWV0aG9kcyBmb3IgbW9kaWZ5aW5nIHBhcmFncmFwaCBhbmQgY2hhcmFjdGVyIHN0eWxlcy4KKyAqIDxwPgorICogU3R5bGVkIGNoYXJhY3RlcnMgKGZyb20gYW5vdGhlciA8Y29kZT5NQ29uc3RUZXh0PC9jb2RlPiBpbnN0YW5jZSkgYWRkZWQKKyAqIHRvIHRoZSB0ZXh0IHJldGFpbiB0aGVpciBvcmlnaW5hbCBjaGFyYWN0ZXIgc3R5bGVzLiAgVGhlIHN0eWxlIG9mIHBsYWluIGNoYXJhY3RlcnMKKyAqIChzcGVjaWZpZWQgYXMgYSA8Y29kZT5jaGFyPC9jb2RlPiBvciA8Y29kZT5jaGFyW108L2NvZGU+KSBpcyBhbHdheXMKKyAqIHNwZWNpZmllZCBleHBsaWNpdGx5IHdoZW4gdGhleSBhcmUgYWRkZWQgdG8gdGhlIHRleHQuICBNVGV4dCBkb2VzIG5vdCBkbworICogY2hhcmFjdGVyIHN0eWxlICJwcm9wYWdhdGlvbiIsIHdoZXJlIHVuc3R5bGVkIGNoYXJhY3RlcnMgdGFrZSBvbiB0aGUKKyAqIHN0eWxlIG9mIHByZXZpb3VzIGNoYXJhY3RlcnMuICBDbGllbnRzIGNhbiBpbXBsZW1lbnQgdGhpcyBiZWhhdmlvciBieQorICogc3BlY2lmeWluZyB0aGUgc3R5bGVzIHRvIHByb3BhZ2F0ZS4KKyAqIDxwPgorICogV2hlbiB1bnN0eWxlZCBjaGFyYWN0ZXJzIGFyZSBhZGRlZCB0byB0aGUgdGV4dCwgdGhlaXIgcGFyYWdyYXBoIHN0eWxlCisgKiBpcyB0aGUgcGFyYWdyYXBoIHN0eWxlIGluIGVmZmVjdCBpbW1lZGlhdGVseSBhZnRlciB0aGUgbGFzdCBuZXcgY2hhcmFjdGVyLgorICogSWYgdGhlIGNoYXJhY3RlcnMgY29udGFpbiBwYXJhZ3JhcGggc2VwYXJhdG9ycywgdGhlbiBldmVyeSBuZXcgcGFyYWdyYXBoCisgKiB3aWxsIGhhdmUgdGhlIHNhbWUgcGFyYWdyYXBoIHN0eWxlLiAgV2hlbiBzdHlsZWQgY2hhcmFjdGVycyBhcmUgYWRkZWQKKyAqIHRvIHRoZSB0ZXh0LCB0aGVpciByZXN1bHRpbmcgcGFyYWdyYXBoIHN0eWxlIGlzIGRldGVybWluZWQgYnkgdGhlCisgKiBmb2xsb3dpbmcgcnVsZToKKyAqIDxibG9ja3F1b3RlPgorICogVGhlIHBhcmFncmFwaCBzdHlsZXMgaW4gdGhlIG5ldyB0ZXh0CisgKiBiZWNvbWUgdGhlIHBhcmFncmFwaCBzdHlsZXMgaW4gdGhlIHRhcmdldCB0ZXh0LCB3aXRoIHRoZSBleGNlcHRpb24gb2YgdGhlCisgKiBsYXN0IHBhcmFncmFwaCBpbiB0aGUgbmV3IHRleHQsIHdoaWNoIHRha2VzIG9uIHRoZSBwYXJhZ3JhcGggc3R5bGUgaW4KKyAqIGVmZmVjdCBpbW1lZGlhdGVseSBhZnRlciB0aGUgaW5zZXJ0ZWQgdGV4dC4KKyAqIElmIHRoZSBuZXcgdGV4dCBpcyBhZGRlZCBhdCB0aGUgZW5kIG9mIHRoZSB0YXJnZXQgdGV4dCwgdGhlIG5ldyB0ZXh0J3MKKyAqIHBhcmFncmFwaCBzdHlsZXMgdGFrZSBlZmZlY3QgaW4gYW55IHBhcmFncmFwaCBhZmZlY3RlZCBieSB0aGUgYWRkaXRpb24uCisgKiA8L2Jsb2NrcXVvdGU+CisgKiBGb3IgZXhhbXBsZSwgc3VwcG9zZSB0aGVyZSBpcyBhIHNpbmdsZSBwYXJhZ3JhcGggb2YgdGV4dCB3aXRoIHN0eWxlICdBJywKKyAqIGRlbGltaXRlZCB3aXRoIGEgcGFyYWdyYXBoIHNlcGFyYXRvciAnUCc6CisgKiA8YmxvY2txdW90ZT4KKyAqIEFBQUFBQVAKKyAqIDwvYmxvY2txdW90ZT4KKyAqIFN1cHBvc2UgdGhlIGZvbGxvd2luZyBzdHlsZWQgcGFyYWdyYXBocyBhcmUgaW5zZXJ0ZWQgaW50byB0aGUgYWJvdmUgdGV4dAorICogYWZ0ZXIgdGhlIGZvdXJ0aCBjaGFyYWN0ZXI6CisgKiA8YmxvY2txdW90ZT4KKyAqIEJCQkJQQ0NDUERERAorICogPC9ibG9ja3F1b3RlPgorICogVGhlbiB0aGUgb3JpZ2luYWwgcGFyYWdyYXBoIHN0eWxlIG9mIGVhY2ggY2hhcmFjdGVyIGlzOgorICogPGJsb2NrcXVvdGU+CisgKiBBQUFBQkJCQlBDQ0NQREREQUFQCisgKiA8L2Jsb2NrcXVvdGU+CisgKiBUaGUgcmVzdWx0aW5nIHBhcmFncmFwaCBzdHlsZXMgYXJlOgorICogPGJsb2NrcXVvdGU+CisgKiBCQkJCQkJCQlBDQ0NQQUFBQUFQCisgKiA8L2Jsb2NrcXVvdGU+CisgKiBTaW1pbGFybHksIGlmIGNoYXJhY3RlcnMgYXJlIGRlbGV0ZWQsIHRoZSBwYXJhZ3JhcGggc3R5bGUgaW1tZWRpYXRlbHkKKyAqIGFmdGVyIHRoZSBkZWxldGlvbiB0YWtlcyBlZmZlY3Qgb24gdGhlIHBhcmFncmFwaCBjb250YWluaW5nIHRoZSBkZWxldGlvbi4KKyAqIFNvLCBpZiBjaGFyYWN0ZXJzIDQtMTYgd2VyZSBkZWxldGVkIGluIHRoZSBleGFtcGxlIGFib3ZlLCB0aGUgcGFyYWdyYXBoCisgKiBzdHlsZXMgd291bGQgYmU6CisgKiA8YmxvY2txdW90ZT4KKyAqIEFBQUFBQVAKKyAqIDwvYmxvY2txdW90ZT4KKyAqIFRoaXMgcGFyYWdyYXBoLXN0eWxlIHByb3BhZ2F0aW9uIHBvbGljeSBpcyBzb21ldGltZXMgcmVmZXJyZWQgdG8gYXMgPHN0cm9uZz4KKyAqIGZvbGxvd2luZyBzdHlsZXMgd2luPC9zdHJvbmc+LCBzaW5jZSBzdHlsZXMgYXQgdGhlIGVuZCBvZiB0aGUgcGFyYWdyYXBoCisgKiBiZWNvbWUgdGhlIHN0eWxlIGZvciB0aGUgZW50aXJlIHBhcmFncmFwaC4KKyAqIDxwPgorICogVGhpcyBjbGFzcyBjYW4gYWNjdW11bGF0ZSBhIDxzdHJvbmc+ZGFtYWdlZCByYW5nZTwvc3Ryb25nPiAtIGFuIGludGVydmFsIGluCisgKiB3aGljaCBjaGFyYWN0ZXJzLCBjaGFyYWN0ZXIgc3R5bGVzLCBvciBwYXJhZ3JhcGggc3R5bGVzIGhhdmUgY2hhbmdlZC4gIFRoaXMgaXMKKyAqIHVzZWZ1bCBmb3IgY2xpZW50cyBzdWNoIGFzIHRleHQgZWRpdG9ycyB3aGljaCByZWZvcm1hdCBhbmQgZHJhdyB0ZXh0IGFmdGVyCisgKiBjaGFuZ2VzLiAgVXN1YWxseSB0aGUgZGFtYWdlZCByYW5nZSBpcyBleGFjdGx5IHRoZSByYW5nZSBvZiBjaGFyYWN0ZXJzCisgKiBvcGVyYXRlZCB1cG9uOyAgaG93ZXZlciwgbGFyZ2VyIHJhbmdlcyBtYXkgYmUgZGFtYWdlZCBpZiBwYXJhZ3JhcGggc3R5bGVzCisgKiBjaGFuZ2UuCisgKiBAc2VlIFN0eWxlTW9kaWZpZXIKKyAqLworCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgTVRleHQgZXh0ZW5kcyBNQ29uc3RUZXh0Cit7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcm90ZWN0ZWQgTVRleHQoKSB7CisgICAgfQorCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBNQUlOIENIQVJBQ1RFUiBNT0RJRklDQVRJT04gRlVOQ1RJT05TCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvKioKKyogUmVwbGFjZSB0aGUgY2hhcmFjdGVycyBhbmQgc3R5bGVzIGluIHRoZSByYW5nZSBbPGNvZGU+c3RhcnQ8L2NvZGU+LCA8Y29kZT5saW1pdDwvY29kZT4pIHdpdGggdGhlIGNoYXJhY3RlcnMKKyogYW5kIHN0eWxlcyBpbiA8Y29kZT5zcmNUZXh0PC9jb2RlPiBpbiB0aGUgcmFuZ2UgWzxjb2RlPnNyY1N0YXJ0PC9jb2RlPiwgPGNvZGU+c3JjTGltaXQ8L2NvZGU+KS4gIDxjb2RlPnNyY1RleHQ8L2NvZGU+IGlzIG5vdAorKiBtb2RpZmllZC4KKyogQHBhcmFtIHN0YXJ0IHRoZSBvZmZzZXQgYXQgd2hpY2ggdGhlIHJlcGxhY2Ugb3BlcmF0aW9uIGJlZ2lucworKiBAcGFyYW0gbGltaXQgdGhlIG9mZnNldCBhdCB3aGljaCB0aGUgcmVwbGFjZSBvcGVyYXRpb24gZW5kcy4gIFRoZSBjaGFyYWN0ZXIgYW5kIHN0eWxlIGF0CisqIDxjb2RlPmxpbWl0PC9jb2RlPiBpcyBub3QgbW9kaWZpZWQuCisqIEBwYXJhbSBzcmNUZXh0IHRoZSBzb3VyY2UgZm9yIHRoZSBuZXcgY2hhcmFjdGVycyBhbmQgc3R5bGVzCisqIEBwYXJhbSBzcmNTdGFydCB0aGUgb2Zmc2V0IGludG8gPGNvZGU+c3JjVGV4dDwvY29kZT4gd2hlcmUgbmV3IGNoYXJhY3RlcnMgYW5kIHN0eWxlcyB3aWxsIGJlIG9idGFpbmVkCisqIEBwYXJhbSBzcmNMaW1pdCB0aGUgb2Zmc2V0IGludG8gPGNvZGU+c3JjVGV4dDwvY29kZT4gd2hlcmUgdGhlIG5ldyBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMgZW5kCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIE1Db25zdFRleHQgc3JjVGV4dCwgaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQpOworCisvKioKKyogUmVwbGFjZSB0aGUgY2hhcmFjdGVycyBhbmQgc3R5bGVzIGluIHRoZSByYW5nZSBbPGNvZGU+c3RhcnQ8L2NvZGU+LCA8Y29kZT5saW1pdDwvY29kZT4pIHdpdGggdGhlIGNoYXJhY3RlcnMKKyogYW5kIHN0eWxlcyBpbiA8Y29kZT5zcmNUZXh0PC9jb2RlPi4gIDxjb2RlPnNyY1RleHQ8L2NvZGU+IGlzIG5vdAorKiBtb2RpZmllZC4KKyogQHBhcmFtIHN0YXJ0IHRoZSBvZmZzZXQgYXQgd2hpY2ggdGhlIHJlcGxhY2Ugb3BlcmF0aW9uIGJlZ2lucworKiBAcGFyYW0gbGltaXQgdGhlIG9mZnNldCBhdCB3aGljaCB0aGUgcmVwbGFjZSBvcGVyYXRpb24gZW5kcy4gIFRoZSBjaGFyYWN0ZXIgYW5kIHN0eWxlIGF0CisqIDxjb2RlPmxpbWl0PC9jb2RlPiBpcyBub3QgbW9kaWZpZWQuCisqIEBwYXJhbSBzcmNUZXh0IHRoZSBzb3VyY2UgZm9yIHRoZSBuZXcgY2hhcmFjdGVycyBhbmQgc3R5bGVzCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIE1Db25zdFRleHQgdGV4dCk7CisKKy8qKgorKiBSZXBsYWNlIHRoZSBjaGFyYWN0ZXJzIGluIHRoZSByYW5nZSBbPGNvZGU+c3RhcnQ8L2NvZGU+LCA8Y29kZT5saW1pdDwvY29kZT4pIHdpdGggdGhlIGNoYXJhY3RlcnMKKyogaW4gPGNvZGU+c3JjQ2hhcnM8L2NvZGU+IGluIHRoZSByYW5nZSBbPGNvZGU+c3JjU3RhcnQ8L2NvZGU+LCA8Y29kZT5zcmNMaW1pdDwvY29kZT4pLiAgTmV3IGNoYXJhY3RlcnMgdGFrZSBvbiB0aGUgc3R5bGUKKyogPGNvZGU+Y2hhcnNTdHlsZTwvY29kZT4uCisqIDxjb2RlPnNyY0NoYXJzPC9jb2RlPiBpcyBub3QgbW9kaWZpZWQuCisqIEBwYXJhbSBzdGFydCB0aGUgb2Zmc2V0IGF0IHdoaWNoIHRoZSByZXBsYWNlIG9wZXJhdGlvbiBiZWdpbnMKKyogQHBhcmFtIGxpbWl0IHRoZSBvZmZzZXQgYXQgd2hpY2ggdGhlIHJlcGxhY2Ugb3BlcmF0aW9uIGVuZHMuICBUaGUgY2hhcmFjdGVyIGF0CisqIDxjb2RlPmxpbWl0PC9jb2RlPiBpcyBub3QgbW9kaWZpZWQuCisqIEBwYXJhbSBzcmNDaGFycyB0aGUgc291cmNlIGZvciB0aGUgbmV3IGNoYXJhY3RlcnMKKyogQHBhcmFtIHNyY1N0YXJ0IHRoZSBvZmZzZXQgaW50byA8Y29kZT5zcmNDaGFyczwvY29kZT4gd2hlcmUgbmV3IGNoYXJhY3RlcnMgd2lsbCBiZSBvYnRhaW5lZAorKiBAcGFyYW0gc3JjTGltaXQgdGhlIG9mZnNldCBpbnRvIDxjb2RlPnNyY0NoYXJzPC9jb2RlPiB3aGVyZSB0aGUgbmV3IGNoYXJhY3RlcnMgZW5kCisqIEBwYXJhbSBjaGFyc1N0eWxlIHRoZSBzdHlsZSBvZiB0aGUgbmV3IGNoYXJhY3RlcnMKKyovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgY2hhcltdIHNyY0NoYXJzLCBpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCwgQXR0cmlidXRlTWFwIGNoYXJzU3R5bGUpOworCisvKioKKyogUmVwbGFjZSB0aGUgY2hhcmFjdGVycyBpbiB0aGUgcmFuZ2UgWzxjb2RlPnN0YXJ0PC9jb2RlPiwgPGNvZGU+bGltaXQ8L2NvZGU+KSB3aXRoIHRoZSBjaGFyYWN0ZXIgPGNvZGU+c3JjQ2hhcjwvY29kZT4uCisqIFRoZSBuZXcgY2hhcmFjdGVyIHRha2VzIG9uIHRoZSBzdHlsZSA8Y29kZT5jaGFyU3R5bGU8L2NvZGU+CisqIEBwYXJhbSBzdGFydCB0aGUgb2Zmc2V0IGF0IHdoaWNoIHRoZSByZXBsYWNlIG9wZXJhdGlvbiBiZWdpbnMKKyogQHBhcmFtIGxpbWl0IHRoZSBvZmZzZXQgYXQgd2hpY2ggdGhlIHJlcGxhY2Ugb3BlcmF0aW9uIGVuZHMuICBUaGUgY2hhcmFjdGVyIGF0CisqIDxjb2RlPmxpbWl0PC9jb2RlPiBpcyBub3QgbW9kaWZpZWQuCisqIEBwYXJhbSBzcmNDaGFyIHRoZSBuZXcgY2hhcmFjdGVyCisqIEBwYXJhbSBjaGFyc1N0eWxlIHRoZSBzdHlsZSBvZiB0aGUgbmV3IGNoYXJhY3RlcgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCByZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBjaGFyIHNyY0NoYXIsIEF0dHJpYnV0ZU1hcCBjaGFyU3R5bGUpOworCisvKioKKyogUmVwbGFjZSB0aGUgZW50aXJlIGNvbnRlbnRzIG9mIHRoaXMgTVRleHQgKGJvdGggY2hhcmFjdGVycyBhbmQgc3R5bGVzKSB3aXRoCisqIHRoZSBjb250ZW50cyBvZiA8Y29kZT5zcmNUZXh0PC9jb2RlPi4KKyogQHBhcmFtIHNyY1RleHQgdGhlIHNvdXJjZSBmb3IgdGhlIG5ldyBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMKKyovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgcmVwbGFjZUFsbChNQ29uc3RUZXh0IHNyY1RleHQpOworCisvKioKKyogSW5zZXJ0IHRoZSBjb250ZW50cyBvZiA8Y29kZT5zcmNUZXh0PC9jb2RlPiAoYm90aCBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMpIGludG8gdGhpcworKiBNVGV4dCBhdCB0aGUgcG9zaXRpb24gc3BlY2lmaWVkIGJ5IDxjb2RlPnBvczwvY29kZT4uCisqIEBwYXJhbSBwb3MgVGhlIGNoYXJhY3RlciBvZmZzZXQgd2hlcmUgdGhlIG5ldyB0ZXh0IGlzIHRvIGJlIGluc2VydGVkLgorKiBAcGFyYW0gc3JjVGV4dCBUaGUgdGV4dCB0byBpbnNlcnQuICovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgaW5zZXJ0KGludCBwb3MsIE1Db25zdFRleHQgc3JjVGV4dCk7CisKKy8qKgorKiBBcHBlbmQgdGhlIGNvbnRlbnRzIG9mIDxjb2RlPnNyY1RleHQ8L2NvZGU+IChib3RoIGNoYXJhY3RlcnMgYW5kIHN0eWxlcykgdG8gdGhlCisqIGVuZCBvZiB0aGlzIE1UZXh0LgorKiBAcGFyYW0gc3JjVGV4dCBUaGUgdGV4dCB0byBhcHBlbmQuICovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgYXBwZW5kKE1Db25zdFRleHQgc3JjVGV4dCk7CisKKy8qKgorKiBEZWxldGUgdGhlIHNwZWNpZmllZCByYW5nZSBvZiBjaGFyYWN0ZXJzIChhbmQgc3R5bGVzKS4KKyogQHBhcmFtIHN0YXJ0IE9mZnNldCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIHRvIGRlbGV0ZS4KKyogQHBhcmFtIGxpbWl0IE9mZnNldCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGFmdGVyIHRoZSByYW5nZSB0byBkZWxldGUuICovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgcmVtb3ZlKGludCBzdGFydCwgaW50IGxpbWl0KTsKKworLyoqCisqIERlbGV0ZSBhbGwgY2hhcmFjdGVycyBhbmQgc3R5bGVzLgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCByZW1vdmUoKTsKKworLyoqCisqIENyZWF0ZSBhbiBNVGV4dCBjb250YWluaW5nIHRoZSBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMgaW4gdGhlIHJhbmdlCisqIFs8Y29kZT5zdGFydDwvY29kZT4sIDxjb2RlPmxpbWl0PC9jb2RlPikuCisqIEBwYXJhbSBzdGFydCBvZmZzZXQgb2YgZmlyc3QgY2hhcmFjdGVyIGluIHRoZSBuZXcgdGV4dAorKiBAcGFyYW0gbGltaXQgb2Zmc2V0IGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBsYXN0IGNoYXJhY3RlciBpbiB0aGUgbmV3IHRleHQKKyogQHJldHVybiBhbiBNQ29uc3RUZXh0IG9iamVjdCBjb250YWluaW5nIHRoZSBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMgaW4gdGhlIGdpdmVuIHJhbmdlCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBNVGV4dCBleHRyYWN0V3JpdGFibGUoaW50IHN0YXJ0LCBpbnQgbGltaXQpOworCisKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIFNUT1JBR0UgTUFOQUdFTUVOVAorLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisvKioKKyogTWluaW1pemUgdGhlIGFtb3VudCBvZiBtZW1vcnkgdXNlZCBieSB0aGUgTVRleHQgb2JqZWN0LgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBjb21wcmVzcygpOworCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBTVFlMRSBNT0RJRklDQVRJT04KKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLyoqCisqIFNldCB0aGUgY2hhcmFjdGVyIHN0eWxlIG9mIGFsbCBjaGFyYWN0ZXJzIGluIHRoZSBNVGV4dCBvYmplY3QgdG8KKyogPGNvZGU+QXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVA8L2NvZGU+LgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCByZW1vdmVDaGFyYWN0ZXJTdHlsZXMoKTsKKworLyoqCisqIEludm9rZSB0aGUgZ2l2ZW4gbW9kaWZpZXIgb24gYWxsIGNoYXJhY3RlciBzdHlsZXMgZnJvbSBzdGFydCB0byBsaW1pdC4KKyogQHBhcmFtIG1vZGlmaWVyIHRoZSBtb2RpZmllciB0byBhcHBseSB0byB0aGUgcmFuZ2UuCisqIEBwYXJhbSBzdGFydCB0aGUgc3RhcnQgb2YgdGhlIHJhbmdlIG9mIHRleHQgdG8gbW9kaWZ5LgorKiBAcGFyYW0gbGltaXQgdGhlIGxpbWl0IG9mIHRoZSByYW5nZSBvZiB0ZXh0IHRvIG1vZGlmeS4KKyovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgbW9kaWZ5Q2hhcmFjdGVyU3R5bGVzKGludCBzdGFydCwgaW50IGxpbWl0LCBTdHlsZU1vZGlmaWVyIG1vZGlmaWVyKTsKKworLyoqCisqIEludm9rZSB0aGUgZ2l2ZW4gbW9kaWZpZXIgb24gYWxsIHBhcmFncmFwaCBzdHlsZXMgaW4gcGFyYWdyYXBocworKiBjb250YWluaW5nIGNoYXJhY3RlcnMgaW4gdGhlIHJhbmdlIFtzdGFydCwgbGltaXQpLgorKiBAcGFyYW0gbW9kaWZpZXIgdGhlIG1vZGlmaWVyIHRvIGFwcGx5IHRvIHRoZSByYW5nZS4KKyogQHBhcmFtIHN0YXJ0IHRoZSBzdGFydCBvZiB0aGUgcmFuZ2Ugb2YgdGV4dCB0byBtb2RpZnkuCisqIEBwYXJhbSBsaW1pdCB0aGUgbGltaXQgb2YgdGhlIHJhbmdlIG9mIHRleHQgdG8gbW9kaWZ5LgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBtb2RpZnlQYXJhZ3JhcGhTdHlsZXMoaW50IHN0YXJ0LCBpbnQgbGltaXQsIFN0eWxlTW9kaWZpZXIgbW9kaWZpZXIpOworCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBEQU1BR0VEIFJBTkdFCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvKioKKyogUmVzZXQgdGhlIGRhbWFnZWQgcmFuZ2UgdG8gYW4gZW1wdHkgaW50ZXJ2YWwsIGFuZCBiZWdpbiBhY2N1bXVsYXRpbmcgdGhlIGRhbWFnZWQKKyogcmFuZ2UuICBUaGUgZGFtYWdlZCByYW5nZSBpbmNsdWRlcyBldmVyeSBpbmRleCB3aGVyZSBhIGNoYXJhY3RlciwgY2hhcmFjdGVyIHN0eWxlLAorKiBvciBwYXJhZ3JhcGggc3R5bGUgaGFzIGNoYW5nZWQuCisqIEBzZWUgI2RhbWFnZWRSYW5nZVN0YXJ0CisqIEBzZWUgI2RhbWFnZWRSYW5nZUxpbWl0CisqLworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHJlc2V0RGFtYWdlZFJhbmdlKCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L1BhcmFncmFwaEJ1ZmZlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9QYXJhZ3JhcGhCdWZmZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44ZTlmMmU4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9QYXJhZ3JhcGhCdWZmZXIuamF2YQpAQCAtMCwwICsxLDcxNiBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogUGFyYWdyYXBoQnVmZmVyLmphdmEsdiAkICRSZXZpc2lvbjogMS4yICQgJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6MzYgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0OworCitpbXBvcnQgamF2YS5pby5FeHRlcm5hbGl6YWJsZTsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdElucHV0OworaW1wb3J0IGphdmEuaW8uT2JqZWN0T3V0cHV0OworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CisKKy8qCisgICAgUmlnaHQgbm93LCB5b3UgaGF2ZSB0byBjb25zdHJ1Y3QgdGhpcyBjbGFzcyB3aXRoIGEgY2hhckJ1ZmZlci4gIFRoYXQncyBwcmV0dHkgdWdseS4uLiAqLworCisvKgorICAgIDgvOC85NgorICAgICAgICBBZGRlZCByZXBsYWNlIG1ldGhvZCwgd2hpY2ggcmVhZHMgc3R5bGVzIGZyb20gYSBQYXJhZ3JhcGhJdGVyYXRvci4KKyAgICAgICAgQWxzbywgYWRkZWQgYSBjb25zdHJ1Y3RvciB3aGljaCB0YWtlcyBhIFBhcmFncmFwaEl0ZXJhdG9yLgorICAgICAgICBUaGVzZSBtZXRob2RzIGFyZSBmb3IgY29weS9wYXN0ZSBzdXBwb3J0LgorCisgICAgOC8yMi85NgorICAgICAgICBSZXBsYWNlIG1ldGhvZCAod2hpY2ggdGFrZXMgYW4gaXRlcmF0b3IgYXMgYW4gYXJndW1lbnQpIHRlc3RzIGZvciBhCisgICAgICAgIDAtbGVuZ3RoIGl0ZXJhdG9yLgorCisgICAgOS8zMC85NgorICAgICAgICB7amJyfSBtb2RpZmllZCBwYXJhZ3JhcGhMaW1pdCgpOworCisgICAgMTAvMjMvOTYKKyAgICAgICAgVGhpcyBjbGFzcyBub3cgbWFpbnRhaW5zIHBhcmFncmFwaCBzdHlsZXMuICBBbHNvIGhhcyBhIHRpbWVzdGFtcC4KKworICAgIDEwLzI1Lzk2CisgICAgICAgIEhvbGRzIG9uIHRvIFN0eWxlIGluc3RlYWQgb2YgU3R5bGUuCisKKyAgICA3LzMxLzk4IFN3aXRjaGVkIHRvIEF0dHJpYnV0ZU1hcAorCisqLworCisvKioKKyogVGhpcyBjbGFzcyBzdG9yZXMgb2Zmc2V0cyB3aGVyZSBwYXJhZ3JhcGggYnJlYWtzIG9jY3VyLCBhbmQgdGhlIHN0eWxlIGFwcGxpZWQgdG8KKyogZWFjaCBwYXJhZ3JhcGguCisqCisqIFRoZSBvZmZzZXRzIHdoZXJlIHBhcmFncmFwaCBicmVha3Mgb2NjdXIgYXJlIHN0b3JlZCBpbiBhIFJ1bkFycmF5IG9iamVjdC4gIFRoaXMgaXMKKyogbm90IHN0cmljdGx5IG5lY2Vzc2FyeSwgYnV0IGl0IG1ha2VzIHNjYW5uaW5nIHRoZSB0ZXh0IGZvciBwYXJhZ3JhcGggYnJlYWtzIHVubmVjZXNzYXJ5LgorKiBIb3dldmVyLCBpdCBtYWtlcyBkZXRlcm1pbmluZyB3aGVyZSBwYXJhZ3JhcGhzIHN0YXJ0IGEgbGl0dGxlIGNvbmZ1c2luZy4gIElmIHRoZXJlIGlzIGEKKyogcGFyYWdyYXBoIGJyZWFrIGF0IG9mZnNldCBwLCB0aGVuIHRoZXJlIHdpbGwgYmUgYSBwYXJhZ3JhcGggc3RhcnQgYXQgb2Zmc2V0IHArMS4KKyogSWYgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0IGlzIGEgcGFyYWdyYXBoIGJyZWFrLCB0aGVyZSB3aWxsIGJlIGEgcnVuIGFycmF5IGVudHJ5CisqIGZvciB0aGF0IGNoYXJhY3RlciAoYW5kIGFsc28gYSBwYXJhZ3JhcGggc3R5bGUgZm9yIHRoYXQgcGFyYWdyYXBoLCBldmVuIHRob3VnaCB0aGUKKyogc3R5bGUgZG9lcyBub3QgYXBwbHkgdG8gYW55IHRleHQpLgorKgorKiBUaGUgc3R5bGUgb2YgdGhlIGZpcnN0IHBhcmFncmFwaCBpbiB0aGUgdGV4dCBpcyBpbiB0aGUgZkZpcnN0U3R5bGUgbWVtYmVyLiAgT3RoZXIKKyogcGFyYWdyYXBoIHN0eWxlcyBhcmUgc3RvcmVkIGluIHRoZSBmU3R5bGVUYWJsZSBhcnJheSwgaW4gdGhlIGZvbGxvd2luZyBtYW5uZXI6ICB0aGUKKyogcGFyYWdyYXBoIHdpdGggYmVnaW5zIGF0IG9mZnNldCBmUnVuQXJyYXkuZlJ1blN0YXJ0W2ldKzEgaGFzIHN0eWxlIGZTdHlsZVRhYmxlW2ldLgorKiBUaGUgc3R5bGUgdGFibGUncyAiZ2FwIHJhbmdlIiBpcyBrZXB0IGluIHN5bmMgd2l0aCB0aGUgUnVuQXJyYXkuCisqCisqIFRoaXMgY2xhc3MgcHJvcG9nYXRlcyBwYXJhZ3JhcGggc3R5bGVzIGluIHRoZSAiTWljcm9zb2Z0IFdvcmQiIGZhc2hpb246ICBzdHlsZXMKKyogcHJvcG9nYXRlIGJhY2t3YXJkIGZyb20gcGFyYWdyYXBoIGJyZWFrcy4KKyoKKyogVGhpcyBjbGFzcyBtYWludGFpbnMgYSB0aW1lIHN0YW1wLCB3aGljaCBjaGFuZ2VzIGV2ZXJ5IHRpbWUgZXh0cmEgZm9ybWF0dGluZyAoZm9ybWF0dGluZworKiBvbiBhIHJhbmdlIG90aGVyIHRoYW4gdGhlIGN1cnJlbnQgc2VsZWN0aW9uKSBpcyBuZWVkZWQ7ICBmb3IgZXhhbXBsZSwgd2hlbiBhIHBhcmFncmFwaAorKiBicmVhayBpcyByZW1vdmVkLgorKi8KKworCitmaW5hbCBjbGFzcyBQYXJhZ3JhcGhCdWZmZXIgZXh0ZW5kcyBNUGFyYWdyYXBoQnVmZmVyIGltcGxlbWVudHMgRXh0ZXJuYWxpemFibGUgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQga0luaXRpYWxTaXplID0gMTA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENVUlJFTlRfVkVSU0lPTiA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gMjIzNTY5MzQ7CisKKyAgICBwcml2YXRlIFJ1bkFycmF5IGZSdW5BcnJheTsKKyAgICBwcml2YXRlIEF0dHJpYnV0ZU1hcFtdIGZTdHlsZVRhYmxlOworICAgIHByaXZhdGUgQXR0cmlidXRlTWFwIGZGaXJzdFN0eWxlOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBpc1BhcmFncmFwaEJyZWFrKGNoYXIgYykgeworCisgICAgICAgIHJldHVybiBjID09J1x1MjAyOScgfHwgYyA9PSAnXG4nOworICAgIH0KKworLyoqCisqIENvbnN0cnVjdCBhIG5ldyBwYXJhZ3JhcGggYnVmZmVyIGZyb20gdGhlIGNoYXJhY3RlcnMgaW4gPHR0PmNoYXJCdWZmZXI8L3R0Pi4KKyovCisgICAgUGFyYWdyYXBoQnVmZmVyKE1DaGFyQnVmZmVyIGNoYXJCdWZmZXIpIHsKKworICAgICAgICB0aGlzKGNoYXJCdWZmZXIubGVuZ3RoKCkpOworCisgICAgICAgIC8vIHNjYW4gdGV4dCBmb3IgcGFyYWdyYXBoIGJvdW5kYXJpZXMKKworICAgICAgICBpbnQgdGV4dExlbmd0aCA9IGZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCk7CisKKyAgICAgICAgZm9yIChpbnQgcG9zPTA7IHBvcyA8IHRleHRMZW5ndGg7IHBvcysrKSB7CisKKyAgICAgICAgICAgIGlmIChpc1BhcmFncmFwaEJyZWFrKGNoYXJCdWZmZXIuYXQocG9zKSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoZlJ1bkFycmF5LmZQb3NFbmQrMSA+PSBmUnVuQXJyYXkuZk5lZ1N0YXJ0KQorICAgICAgICAgICAgICAgICAgICBleHBhbmRTdHlsZVRhYmxlKCk7CisgICAgICAgICAgICAgICAgZlJ1bkFycmF5LmZSdW5TdGFydFsrK2ZSdW5BcnJheS5mUG9zRW5kXSA9IHBvczsKKyAgICAgICAgICAgICAgICBmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZlBvc0VuZF0gPSBmRmlyc3RTdHlsZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgfQorCisvKioKKyogUHJpdmF0ZSBjb25zdHJ1Y3Rvci4KKyovCisgICAgcHJpdmF0ZSBQYXJhZ3JhcGhCdWZmZXIoaW50IGluaXRpYWxMZW5ndGgpIHsKKworICAgICAgICBmUnVuQXJyYXkgPSBuZXcgUnVuQXJyYXkoa0luaXRpYWxTaXplLCBpbml0aWFsTGVuZ3RoKTsKKyAgICAgICAgZlN0eWxlVGFibGUgPSBuZXcgQXR0cmlidXRlTWFwW2ZSdW5BcnJheS5nZXRBcnJheUxlbmd0aCgpXTsKKworICAgICAgICBmRmlyc3RTdHlsZSA9IEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQOworICAgIH0KKworICAgIC8qKgorICAgICAqIE5vdGU6IHRoaXMgY29uc3RydWN0b3IgaXMgT05MWSBmb3IgdXNlIGJ5IHRoZSBTZXJpYWxpemF0aW9uCisgICAgICogbWVjaGFuaXNtLiAgSXQgZG9lcyBub3QgbGVhdmUgdGhpcyBvYmplY3QgaW4gYSB2YWxpZCBzdGF0ZSEKKyAgICAgKi8KKyAgICBwdWJsaWMgUGFyYWdyYXBoQnVmZmVyKCkgeworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlRXh0ZXJuYWwoT2JqZWN0T3V0cHV0IG91dCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKworICAgICAgICBjb21wcmVzcygpOworICAgICAgICBvdXQud3JpdGVJbnQoQ1VSUkVOVF9WRVJTSU9OKTsKKyAgICAgICAgb3V0LndyaXRlT2JqZWN0KGZSdW5BcnJheSk7CisgICAgICAgIG91dC53cml0ZU9iamVjdChmU3R5bGVUYWJsZSk7CisgICAgICAgIG91dC53cml0ZU9iamVjdChmRmlyc3RTdHlsZSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVhZEV4dGVybmFsKE9iamVjdElucHV0IGluKSB0aHJvd3MgSU9FeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGFzc05vdEZvdW5kRXhjZXB0aW9uIHsKKworICAgICAgICBpZiAoaW4ucmVhZEludCgpICE9IENVUlJFTlRfVkVSU0lPTikgeworICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJJbnZhbGlkIHZlcnNpb24gb2YgUGFyYWdyYXBoQnVmZmVyIik7CisgICAgICAgIH0KKyAgICAgICAgZlJ1bkFycmF5ID0gKFJ1bkFycmF5KSBpbi5yZWFkT2JqZWN0KCk7CisgICAgICAgIGZTdHlsZVRhYmxlID0gKEF0dHJpYnV0ZU1hcFtdKSBpbi5yZWFkT2JqZWN0KCk7CisgICAgICAgIGZGaXJzdFN0eWxlID0gKEF0dHJpYnV0ZU1hcCkgaW4ucmVhZE9iamVjdCgpOworICAgIH0KKworLyoqCisqIFNoaWZ0IHRhYmxlIHN1Y2ggdGhhdCB0aGUgbGFzdCBwb3NpdGl2ZSBydW4gc3RhcnRzIGJlZm9yZSBwb3MuCisqLworICAgIHByaXZhdGUgdm9pZCBzaGlmdFRhYmxlVG8oaW50IHBvcykgeworCisgICAgICAgIGludCBvbGROZWdTdGFydCA9IGZSdW5BcnJheS5mTmVnU3RhcnQ7CisgICAgICAgIGludCBvbGRQb3NFbmQgPSBmUnVuQXJyYXkuZlBvc0VuZDsKKworICAgICAgICBmUnVuQXJyYXkuc2hpZnRUYWJsZVRvKHBvcyk7CisKKyAgICAgICAgaWYgKG9sZFBvc0VuZCA+IGZSdW5BcnJheS5mUG9zRW5kKQorICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShmU3R5bGVUYWJsZSwgZlJ1bkFycmF5LmZQb3NFbmQrMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlN0eWxlVGFibGUsIGZSdW5BcnJheS5mTmVnU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZFBvc0VuZC1mUnVuQXJyYXkuZlBvc0VuZCk7CisgICAgICAgIGVsc2UgaWYgKG9sZE5lZ1N0YXJ0IDwgZlJ1bkFycmF5LmZOZWdTdGFydCkKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoZlN0eWxlVGFibGUsIG9sZE5lZ1N0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmU3R5bGVUYWJsZSwgb2xkUG9zRW5kKzEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZSdW5BcnJheS5mTmVnU3RhcnQtb2xkTmVnU3RhcnQpOworICAgIH0KKworLyoqCisqIFVwZGF0ZSB0aGUgc3R5bGUgdGFibGUgdG8gcmVmbGVjdCBhIGNoYW5nZSBpbiB0aGUgUnVuQXJyYXkncyBzaXplLgorKi8KKyAgICBwcml2YXRlIHZvaWQgaGFuZGxlQXJyYXlSZXNpemUoaW50IG9sZE5lZ1N0YXJ0KSB7CisKKyAgICAgICAgQXR0cmlidXRlTWFwIG5ld1N0eWxlVGFibGVbXSA9IG5ldyBBdHRyaWJ1dGVNYXBbZlJ1bkFycmF5LmdldEFycmF5TGVuZ3RoKCldOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGZTdHlsZVRhYmxlLCAwLCBuZXdTdHlsZVRhYmxlLCAwLCBmUnVuQXJyYXkuZlBvc0VuZCsxKTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShmU3R5bGVUYWJsZSwgb2xkTmVnU3RhcnQsIG5ld1N0eWxlVGFibGUsIGZSdW5BcnJheS5mTmVnU3RhcnQsIChmUnVuQXJyYXkuZ2V0QXJyYXlMZW5ndGgoKS1mUnVuQXJyYXkuZk5lZ1N0YXJ0KSk7CisgICAgICAgIGZTdHlsZVRhYmxlID0gbmV3U3R5bGVUYWJsZTsKKyAgICB9CisKKyAgICB2b2lkIGNvbXByZXNzKCkgeworCisgICAgICAgIGludCBvbGROZWdTdGFydCA9IGZSdW5BcnJheS5mTmVnU3RhcnQ7CisgICAgICAgIGZSdW5BcnJheS5jb21wcmVzcygpOworICAgICAgICBpZiAoZlJ1bkFycmF5LmZOZWdTdGFydCAhPSBvbGROZWdTdGFydCkgeworICAgICAgICAgICAgaGFuZGxlQXJyYXlSZXNpemUob2xkTmVnU3RhcnQpOworICAgICAgICB9CisgICAgfQorCisvKioKKyogTWFrZSBtb3JlIHJvb20gaW4gcnVuL3N0eWxlIHRhYmxlcy4KKyovCisgICAgcHJpdmF0ZSB2b2lkIGV4cGFuZFN0eWxlVGFibGUoKSB7CisKKyAgICAgICAgaW50IG9sZE5lZ1N0YXJ0ID0gZlJ1bkFycmF5LmZOZWdTdGFydDsKKyAgICAgICAgZlJ1bkFycmF5LmV4cGFuZFJ1blRhYmxlKCk7CisgICAgICAgIGhhbmRsZUFycmF5UmVzaXplKG9sZE5lZ1N0YXJ0KTsKKyAgICB9CisKKy8qKgorKiBQcm9jZXNzIGEgY2hhcmFjdGVyIGluc2VydGlvbiBhdCBvZmZzZXQgPHR0PnN0YXJ0PC90dD4uCisqIElmIGEgcGFyYWdyYXBoIGJyZWFrIHdhcyBpbnNlcnRlZCwgcHJvcG9nYXRlIHBhcmFncmFwaCBzdHlsZSBhdAorKiA8dHQ+c3RhcnQ8L3R0PiB0byBuZXcgcGFyYWdyYXBoLgorKi8KKyAgICBwdWJsaWMgdm9pZCBpbnNlcnRUZXh0KGludCBzdGFydCwgY2hhciBpbnNlcnRlZENoYXIpIHsKKworICAgICAgICBzaGlmdFRhYmxlVG8oc3RhcnQpOworICAgICAgICBpZiAoaXNQYXJhZ3JhcGhCcmVhayhpbnNlcnRlZENoYXIpKSB7CisgICAgICAgICAgICBpZiAoZlJ1bkFycmF5LmZQb3NFbmQrMSA+PSBmUnVuQXJyYXkuZk5lZ1N0YXJ0KQorICAgICAgICAgICAgICAgIGV4cGFuZFN0eWxlVGFibGUoKTsKKyAgICAgICAgICAgIGZSdW5BcnJheS5mUnVuU3RhcnRbKytmUnVuQXJyYXkuZlBvc0VuZF0gPSBzdGFydDsKKyAgICAgICAgICAgIGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mUG9zRW5kXSA9CisgICAgICAgICAgICAgICAgKGZSdW5BcnJheS5mUG9zRW5kID09IDApPyBmRmlyc3RTdHlsZSA6IGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mUG9zRW5kLTFdOworICAgICAgICAgICAgZlJ1bkFycmF5LnJ1blN0YXJ0c0NoYW5nZWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vZlJ1bkFycmF5LmZDdXJUZXh0TGVuZ3RoKys7CisgICAgICAgIGZSdW5BcnJheS5hZGRUb0N1clRleHRMZW5ndGgoMSk7CisgICAgfQorCisvKioKKyogUHJvY2VzcyBjaGFyYWN0ZXIgaW5zZXJ0aW9uIGF0IG9mZnNldCA8dHQ+c3RhcnQ8L3R0Pi4KKyogRWFjaCBuZXcgcGFyYWdyYXBoIGdldHMgcGFyYWdyYXBoIHN0eWxlIGF0CisqIDx0dD5zdGFydDwvdHQ+LgorKi8KKyAgICBwdWJsaWMgdm9pZCBpbnNlcnRUZXh0KGludCBzdGFydCwgY2hhciBzcmNDaGFyc1tdLCBpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCkgeworCisgICAgICAgIHNoaWZ0VGFibGVUbyhzdGFydCk7CisKKyAgICAgICAgaW50IGFkanVzdCA9IHN0YXJ0IC0gc3JjU3RhcnQ7CisKKyAgICAgICAgZm9yIChpbnQgaT1zcmNTdGFydDsgIGkgPCBzcmNMaW1pdDsgaSsrKQorICAgICAgICAgICAgaWYgKGlzUGFyYWdyYXBoQnJlYWsoc3JjQ2hhcnNbaV0pKSB7CisgICAgICAgICAgICAgICAgaWYgKGZSdW5BcnJheS5mUG9zRW5kKzEgPj0gZlJ1bkFycmF5LmZOZWdTdGFydCkKKyAgICAgICAgICAgICAgICAgICAgZXhwYW5kU3R5bGVUYWJsZSgpOworICAgICAgICAgICAgICAgIGZSdW5BcnJheS5mUnVuU3RhcnRbKytmUnVuQXJyYXkuZlBvc0VuZF0gPSBhZGp1c3QgKyBpOworICAgICAgICAgICAgICAgIGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mUG9zRW5kXSA9CisgICAgICAgICAgICAgICAgICAgIChmUnVuQXJyYXkuZlBvc0VuZCA9PSAwKT8gZkZpcnN0U3R5bGUgOiBmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZlBvc0VuZC0xXTsKKyAgICAgICAgICAgICAgICBmUnVuQXJyYXkucnVuU3RhcnRzQ2hhbmdlZCgpOworICAgICAgICAgICAgfQorCisgICAgICAgIC8vZlJ1bkFycmF5LmZDdXJUZXh0TGVuZ3RoICs9IChzcmNMaW1pdC1zcmNTdGFydCk7CisgICAgICAgIGZSdW5BcnJheS5hZGRUb0N1clRleHRMZW5ndGgoc3JjTGltaXQtc3JjU3RhcnQpOworICAgIH0KKworLyoqCisqIFByb2Nlc3MgZGVsZXRpb24gYnkgcmVtb3ZpbmcgcGFyYWdyYXBoIGJyZWFrcyBjb250YWluZWQgaW4KKyogZGVsZXRlZCByYW5nZS4gIFByb3BvZ2F0ZSBwYXJhZ3JhcGggc3R5bGVzIGJhY2t3YXJkLCBpZiBuZWNlc3NhcnkuCisqLworICAgIHB1YmxpYyB2b2lkIGRlbGV0ZVRleHQoaW50IHN0YXJ0LCBpbnQgbGltaXQsIGludFtdIGRhbWFnZWRSYW5nZSkgeworCisgICAgICAgIGludCBsZW5ndGggPSBsaW1pdCAtIHN0YXJ0OworICAgICAgICBpZiAobGVuZ3RoIDwgMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCByYW5nZSIpOworICAgICAgICB9CisKKyAgICAgICAgc2hpZnRUYWJsZVRvKGxpbWl0KTsKKworICAgICAgICBpbnQgbmV3RW5kID0gZlJ1bkFycmF5LmZpbmRSdW5Db250YWluaW5nKHN0YXJ0LTEpOworCisgICAgICAgIGlmIChuZXdFbmQgIT0gZlJ1bkFycmF5LmZQb3NFbmQpIHsKKworICAgICAgICAgICAgQXR0cmlidXRlTWFwIHByb3BTdHlsZSA9IGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mUG9zRW5kXTsKKyAgICAgICAgICAgIGJvb2xlYW4gcHJvcG9nYXRlZDsKKworICAgICAgICAgICAgaWYgKG5ld0VuZCA9PSAtMSkgeworICAgICAgICAgICAgICAgIHByb3BvZ2F0ZWQgPSAhcHJvcFN0eWxlLmVxdWFscyhmRmlyc3RTdHlsZSk7CisgICAgICAgICAgICAgICAgZkZpcnN0U3R5bGUgPSBwcm9wU3R5bGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBwcm9wb2dhdGVkID0gIXByb3BTdHlsZS5lcXVhbHMoZlN0eWxlVGFibGVbbmV3RW5kXSk7CisgICAgICAgICAgICAgICAgZlN0eWxlVGFibGVbbmV3RW5kXSA9IHByb3BTdHlsZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHByb3BvZ2F0ZWQpIHsKKyAgICAgICAgICAgICAgICBpbnQgcFN0YXJ0ID0gKG5ld0VuZD09LTEpPyAwIDogZlJ1bkFycmF5LmZSdW5TdGFydFtuZXdFbmRdICsgMTsKKyAgICAgICAgICAgICAgICBkYW1hZ2VkUmFuZ2VbMF0gPSBNYXRoLm1pbihkYW1hZ2VkUmFuZ2VbMF0sIHBTdGFydCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZSdW5BcnJheS5mUG9zRW5kID0gbmV3RW5kOworICAgICAgICB9CisKKyAgICAgICAgZlJ1bkFycmF5LmFkZFRvQ3VyVGV4dExlbmd0aCgtbGVuZ3RoKTsKKworICAgICAgICBmUnVuQXJyYXkucnVuU3RhcnRzQ2hhbmdlZCgpOworICAgIH0KKworLyoqCisqIFJldHVybnMgdGhlIHN0YXJ0IG9mIHRoZSBwYXJhZ3JhcGggY29udGFpbmluZyBvZmZzZXQgPHR0PnBvczwvdHQ+LgorKi8KKyAgICBwdWJsaWMgaW50IHBhcmFncmFwaFN0YXJ0KGludCBwb3MpIHsKKworICAgICAgICBpbnQgcnVuID0gZlJ1bkFycmF5LmZpbmRSdW5Db250YWluaW5nKHBvcy0xKTsKKyAgICAgICAgaWYgKHJ1biA9PSAtMSkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZlJ1bkFycmF5LmdldExvZ2ljYWxSdW5TdGFydChydW4pICsgMTsKKyAgICAgICAgfQorICAgIH0KKworLyoqCisqIFJldHVybnMgdGhlIGxpbWl0IG9mIHRoZSBwYXJhZ3JhcGggY29udGFpbmluZyBvZmZzZXQgPHR0PnBvczwvdHQ+LgorKi8KKyAgICBwdWJsaWMgaW50IHBhcmFncmFwaExpbWl0KGludCBwb3MpIHsKKworICAgICAgICBpbnQgcnVuID0gZlJ1bkFycmF5LmZpbmRSdW5Db250YWluaW5nKHBvcy0xKTsKKworICAgICAgICBpZiAocnVuID09IGZSdW5BcnJheS5mUG9zRW5kKQorICAgICAgICAgICAgcnVuID0gZlJ1bkFycmF5LmZOZWdTdGFydDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcnVuKys7CisKKyAgICAgICAgaWYgKHJ1biA9PSBmUnVuQXJyYXkuZ2V0QXJyYXlMZW5ndGgoKSkgeworICAgICAgICAgICAgcmV0dXJuIGZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCk7CisgICAgICAgIH0KKworICAgICAgICBpbnQgc3RhcnQgPSBmUnVuQXJyYXkuZ2V0TG9naWNhbFJ1blN0YXJ0KHJ1bik7CisKKyAgICAgICAgcmV0dXJuIHN0YXJ0KzE7CisgICAgfQorCisvKioKKyogUmV0dXJucyB0aGUgc3R5bGUgb2YgdGhlIHBhcmFncmFwaCBjb250YWluaW5nIG9mZnNldCA8dHQ+cG9zPC90dD4uCisqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgcGFyYWdyYXBoU3R5bGVBdChpbnQgb2Zmc2V0KSB7CisKKyAgICAgICAgaW50IHJ1biA9IGZSdW5BcnJheS5maW5kUnVuQ29udGFpbmluZyhvZmZzZXQtMSk7CisgICAgICAgIGlmIChydW4gPCAwKQorICAgICAgICAgICAgcmV0dXJuIGZGaXJzdFN0eWxlOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gZlN0eWxlVGFibGVbcnVuXTsKKyAgICB9CisKKy8qKgorKiBDcmVhdGUgcGFyYWdyYXBoIGl0ZXJhdG9yLgorKi8KKy8qCisgICAgcHVibGljIE1QYXJhZ3JhcGhJdGVyYXRvciBjcmVhdGVQYXJhZ3JhcGhJdGVyYXRvcihpbnQgc3RhcnQsIGludCBsaW1pdCkgeworCisgICAgICAgIHJldHVybiBuZXcgUGFyYWdyYXBoSXRlcmF0b3Ioc3RhcnQsIGxpbWl0KTsKKyAgICB9CisqLworCisvKioKKyogQ2FsbGVkIGJ5IGl0ZXJhdG9yIHRvIGdldCBydW4gaW5mby4KKyovCisgICAgcHJpdmF0ZSB2b2lkIHNldEl0ZXJhdG9yKGludCBwb3MsIFBhcmFncmFwaEl0ZXJhdG9yIGl0ZXIpIHsKKworICAgICAgICBpZiAoKHBvcyA8IDApIHx8IChwb3MgPj0gZlJ1bkFycmF5LmdldEN1clRleHRMZW5ndGgoKSkpIHsKKyAgICAgICAgICAgIGl0ZXIuc2V0KDAsIDAsIGtOb1J1biwgbnVsbCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpbnQgcnVuOworCisgICAgICAgIGlmIChwb3MgPiAwKQorICAgICAgICAgICAgcnVuID0gZlJ1bkFycmF5LmZpbmRSdW5Db250YWluaW5nKHBvcy0xKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcnVuID0gLTE7CisKKyAgICAgICAgc2V0SXRlcmF0b3JVc2luZ1J1bihydW4sIGl0ZXIpOworICAgIH0KKworLyoqCisqIENhbGxlZCBieSBpdGVyYXRvciB0byBnZXQgcnVuIGluZm8uCisqLworICAgIHByaXZhdGUgdm9pZCBzZXRJdGVyYXRvclVzaW5nUnVuKGludCBydW4sIFBhcmFncmFwaEl0ZXJhdG9yIGl0ZXIpIHsKKworICAgICAgICBpbnQgbGFzdFZhbGlkUnVuID0gZlJ1bkFycmF5Lmxhc3RSdW4oKTsKKworICAgICAgICBpZiAocnVuIDwgLTEgfHwgcnVuID4gbGFzdFZhbGlkUnVuKSB7CisgICAgICAgICAgICBpdGVyLnNldCgwLCAwLCBrTm9SdW4sIG51bGwpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHJ1biA9PSBmUnVuQXJyYXkuZlBvc0VuZCsxKQorICAgICAgICAgICAgcnVuID0gZlJ1bkFycmF5LmZOZWdTdGFydDsKKyAgICAgICAgZWxzZSBpZiAocnVuID09IGZSdW5BcnJheS5mTmVnU3RhcnQtMSkKKyAgICAgICAgICAgIHJ1biA9IGZSdW5BcnJheS5mUG9zRW5kOworCisgICAgICAgIGludCBydW5TdGFydDsKKyAgICAgICAgQXR0cmlidXRlTWFwIHN0eWxlOworCisgICAgICAgIGlmIChydW4gPCAwKSB7CisgICAgICAgICAgICBydW5TdGFydCA9IDA7CisgICAgICAgICAgICBzdHlsZSA9IGZGaXJzdFN0eWxlOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcnVuU3RhcnQgPSBmUnVuQXJyYXkuZlJ1blN0YXJ0W3J1bl07CisgICAgICAgICAgICBzdHlsZSA9IGZTdHlsZVRhYmxlW3J1bl07CisgICAgICAgICAgICBpZiAocnVuU3RhcnQgPCAwKQorICAgICAgICAgICAgICAgIHJ1blN0YXJ0ICs9IGZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCk7CisgICAgICAgICAgICBydW5TdGFydCsrOworICAgICAgICB9CisKKyAgICAgICAgaW50IG5leHRSdW47CisKKyAgICAgICAgaWYgKHJ1biA9PSBmUnVuQXJyYXkuZlBvc0VuZCkKKyAgICAgICAgICAgIG5leHRSdW4gPSBmUnVuQXJyYXkuZk5lZ1N0YXJ0OworICAgICAgICBlbHNlCisgICAgICAgICAgICBuZXh0UnVuID0gcnVuICsgMTsKKworICAgICAgICBpbnQgcnVuTGltaXQ7CisKKyAgICAgICAgaWYgKG5leHRSdW4gPj0gZlJ1bkFycmF5LmdldEFycmF5TGVuZ3RoKCkpCisgICAgICAgICAgICBydW5MaW1pdCA9IGZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcnVuTGltaXQgPSBmUnVuQXJyYXkuZlJ1blN0YXJ0W25leHRSdW5dOworICAgICAgICAgICAgaWYgKHJ1bkxpbWl0IDwgMCkKKyAgICAgICAgICAgICAgICBydW5MaW1pdCArPSBmUnVuQXJyYXkuZ2V0Q3VyVGV4dExlbmd0aCgpOworICAgICAgICAgICAgcnVuTGltaXQrKzsKKyAgICAgICAgICAgIH0KKworICAgICAgICBpdGVyLnNldChydW5TdGFydCwgcnVuTGltaXQsIHJ1biwgc3R5bGUpOworICAgIH0KKworLyoqCisqIFJlcGxhY2UgcGFyYWdyYXBoIGJyZWFrcy9zdHlsZXMgYmV0d2VlbiBzdGFydCBhbmQgbGVuZ3RoIHdpdGggcGFyYWdyYXBoIGJyZWFrcy9zdHlsZXMKKyogZnJvbSA8dHQ+c3JjVGV4dDwvdHQ+LgorKiBAcGFyYW0gc3RhcnQgYW4gb2Zmc2V0IGludG8gdGhlIHRleHQKKyogQHBhcmFtIGxpbWl0IHRoZSBpbmRleCBhZnRlciB0aGUgbGFzdCBjaGFyYWN0ZXIgdG8gcmVwbGFjZQorKiBAcGFyYW0gc3JjVGV4dCB0aGUgdGV4dCBmcm9tIHdoaWNoIG5ldyBwYXJhZ3JhcGhzIGFyZSB0YWtlbgorKiBAcGFyYW0gc3JjU3RhcnQgdGhlIHN0YXJ0IG9mIHRoZSByYW5nZSBpbiA8Y29kZT5zcmNUZXh0PC9jb2RlPiB0byBjb3B5CisqIEBwYXJhbSBzcmNMaW1pdCB0aGUgZmlyc3QgaW5kZXggYWZ0ZXIgdGhlIHJhbmdlIGluIDxjb2RlPnNyY1RleHQ8L2NvZGU+IHRvIGNvcHkKKyovCisgICAgcHVibGljIHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICBNQ29uc3RUZXh0IHNyY1RleHQsCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3JjU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBkYW1hZ2VkUmFuZ2UpIHsKKworICAgICAgICBmaW5hbCBpbnQgaW5zTGVuZ3RoID0gc3JjTGltaXQgLSBzcmNTdGFydDsKKyAgICAgICAgaWYgKGluc0xlbmd0aCA8IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiaW52YWxpZCByYW5nZSIpOworICAgICAgICB9CisgICAgICAgIGZpbmFsIGludCBvcmlnTGVuZ3RoID0gZlJ1bkFycmF5LmdldEN1clRleHRMZW5ndGgoKTsKKyAgICAgICAgZGVsZXRlVGV4dChzdGFydCwgbGltaXQsIGRhbWFnZWRSYW5nZSk7CisKKyAgICAgICAgaWYgKGluc0xlbmd0aCA9PSAwKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGZpbmFsIGludCBvbGRQb3NFbmQgPSBmUnVuQXJyYXkuZlBvc0VuZDsKKyAgICAgICAgQXR0cmlidXRlTWFwIG9yaWdTdHlsZTsKKyAgICAgICAgaWYgKGxpbWl0IDwgb3JpZ0xlbmd0aCkgeworICAgICAgICAgICAgb3JpZ1N0eWxlID0gKGZSdW5BcnJheS5mUG9zRW5kPj0wKT8gZlN0eWxlVGFibGVbZlJ1bkFycmF5LmZQb3NFbmRdIDogZkZpcnN0U3R5bGU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBvcmlnU3R5bGUgPSBzcmNUZXh0LnBhcmFncmFwaFN0eWxlQXQoc3JjTGltaXQpOworICAgICAgICB9CisKKyAgICAgICAgaW50IHBhcmFncmFwaFN0YXJ0ID0gc3JjU3RhcnQ7CisgICAgICAgIGludCBsYXN0UExpbWl0ID0gc3JjVGV4dC5wYXJhZ3JhcGhTdGFydChzcmNMaW1pdCk7CisgICAgICAgIGJvb2xlYW4gc2VwYXJhdG9yQXRFbmQgPSBsYXN0UExpbWl0ID4gc3JjU3RhcnQgJiYgaXNQYXJhZ3JhcGhCcmVhayhzcmNUZXh0LmF0KGxhc3RQTGltaXQtMSkpOworCisgICAgICAgIGlmIChsaW1pdCA9PSBvcmlnTGVuZ3RoICYmIGxhc3RQTGltaXQgPT0gcGFyYWdyYXBoU3RhcnQpIHsKKyAgICAgICAgICAgIGlmIChmUnVuQXJyYXkuZlBvc0VuZCA+IDApIHsKKyAgICAgICAgICAgICAgICBmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZlBvc0VuZF0gPSBvcmlnU3R5bGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBmRmlyc3RTdHlsZSA9IG9yaWdTdHlsZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGJvb2xlYW4gZmlyc3RQYXNzID0gdHJ1ZTsKKyAgICAgICAgICAgIHdoaWxlIChwYXJhZ3JhcGhTdGFydCA8IGxhc3RQTGltaXQpIHsKKworICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBzdHlsZSA9IHNyY1RleHQucGFyYWdyYXBoU3R5bGVBdChwYXJhZ3JhcGhTdGFydCk7CisgICAgICAgICAgICAgICAgaW50IHBhcmFncmFwaExpbWl0ID0gc3JjVGV4dC5wYXJhZ3JhcGhMaW1pdChwYXJhZ3JhcGhTdGFydCk7CisKKyAgICAgICAgICAgICAgICBpZiAoZlJ1bkFycmF5LmZQb3NFbmQrMSA+PSBmUnVuQXJyYXkuZk5lZ1N0YXJ0KQorICAgICAgICAgICAgICAgICAgICBleHBhbmRTdHlsZVRhYmxlKCk7CisKKyAgICAgICAgICAgICAgICBpZiAoZlJ1bkFycmF5LmZQb3NFbmQgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXN0eWxlLmVxdWFscyhmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZlBvc0VuZF0pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZlBvc0VuZF0gPSBzdHlsZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaXJzdFBhc3MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcFN0YXJ0ID0gZlJ1bkFycmF5LmZSdW5TdGFydFtmUnVuQXJyYXkuZlBvc0VuZF0rMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW1hZ2VkUmFuZ2VbMF0gPSBNYXRoLm1pbihkYW1hZ2VkUmFuZ2VbMF0sIHBTdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoIXN0eWxlLmVxdWFscyhmRmlyc3RTdHlsZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZkZpcnN0U3R5bGUgPSBzdHlsZTsKKyAgICAgICAgICAgICAgICAgICAgZGFtYWdlZFJhbmdlWzBdID0gMDsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBmaXJzdFBhc3MgPSBmYWxzZTsKKworICAgICAgICAgICAgICAgIGlmIChwYXJhZ3JhcGhMaW1pdCA8IGxhc3RQTGltaXQgfHwgc2VwYXJhdG9yQXRFbmQpIHsKKyAgICAgICAgICAgICAgICAgICAgZlJ1bkFycmF5LmZSdW5TdGFydFsrK2ZSdW5BcnJheS5mUG9zRW5kXSA9IHBhcmFncmFwaExpbWl0IC0gMSArIHN0YXJ0IC0gc3JjU3RhcnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHBhcmFncmFwaFN0YXJ0ID0gcGFyYWdyYXBoTGltaXQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZlJ1bkFycmF5LmZQb3NFbmQgIT0gb2xkUG9zRW5kKSB7CisgICAgICAgICAgICAgICAgZlN0eWxlVGFibGVbZlJ1bkFycmF5LmZQb3NFbmRdID0gb3JpZ1N0eWxlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZlJ1bkFycmF5LmFkZFRvQ3VyVGV4dExlbmd0aChpbnNMZW5ndGgpOworICAgIH0KKworLyoqCisqIE1vZGlmeSB0aGUgc3R5bGUgb2YgYWxsIHBhcmFncmFwaHMgY29udGFpbmluZyBvZmZzZXRzIGluIHRoZSByYW5nZSBbc3RhcnQsIGxpbWl0KSB0bworKiA8dHQ+c3R5bGU8L3R0Pi4KKyovCisgICAgcHVibGljIGJvb2xlYW4gbW9kaWZ5UGFyYWdyYXBoU3R5bGVzKGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHlsZU1vZGlmaWVyIG1vZGlmaWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBkYW1hZ2VkUmFuZ2UpICB7CisKKyAgICAgICAgaW50IHJ1biA9IGZSdW5BcnJheS5maW5kUnVuQ29udGFpbmluZyhzdGFydC0xKTsKKyAgICAgICAgaW50IGN1cnJlbnRQU3RhcnQ7CisgICAgICAgIGlmIChydW4gPT0gLTEpIHsKKyAgICAgICAgICAgIGN1cnJlbnRQU3RhcnQgPSAwOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgY3VycmVudFBTdGFydCA9IGZSdW5BcnJheS5nZXRMb2dpY2FsUnVuU3RhcnQocnVuKSArIDE7CisgICAgICAgIH0KKworICAgICAgICBib29sZWFuIG1vZGlmaWVkQW55d2hlcmUgPSBmYWxzZTsKKworICAgICAgICBmb3IgKDs7KSB7CisKKyAgICAgICAgICAgIGJvb2xlYW4gbW9kaWZpZWQgPSBmYWxzZTsKKworICAgICAgICAgICAgaWYgKHJ1biA8IDApIHsKKworICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBuZXdTdHlsZSA9IG1vZGlmaWVyLm1vZGlmeVN0eWxlKGZGaXJzdFN0eWxlKTsKKworICAgICAgICAgICAgICAgIGlmICghbmV3U3R5bGUuZXF1YWxzKGZGaXJzdFN0eWxlKSkgeworICAgICAgICAgICAgICAgICAgICBmRmlyc3RTdHlsZSA9IG5ld1N0eWxlOworICAgICAgICAgICAgICAgICAgICBtb2RpZmllZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisKKyAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgbmV3U3R5bGUgPSBtb2RpZmllci5tb2RpZnlTdHlsZShmU3R5bGVUYWJsZVtydW5dKTsKKworICAgICAgICAgICAgICAgIGlmICghZlN0eWxlVGFibGVbcnVuXS5lcXVhbHMobmV3U3R5bGUpKSB7CisgICAgICAgICAgICAgICAgICAgIGZTdHlsZVRhYmxlW3J1bl0gPSBuZXdTdHlsZTsKKyAgICAgICAgICAgICAgICAgICAgbW9kaWZpZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHJ1biA9PSBmUnVuQXJyYXkuZlBvc0VuZCkgeworICAgICAgICAgICAgICAgIHJ1biA9IGZSdW5BcnJheS5mTmVnU3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBydW4rKzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaW50IG5leHRQU3RhcnQ7CisgICAgICAgICAgICBpZiAocnVuID09IGZSdW5BcnJheS5nZXRBcnJheUxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgbmV4dFBTdGFydCA9IGZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBuZXh0UFN0YXJ0ID0gZlJ1bkFycmF5LmdldExvZ2ljYWxSdW5TdGFydChydW4pICsgMTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKG1vZGlmaWVkKSB7CisgICAgICAgICAgICAgICAgbW9kaWZpZWRBbnl3aGVyZSA9IHRydWU7CisgICAgICAgICAgICAgICAgZGFtYWdlZFJhbmdlWzBdID0gTWF0aC5taW4oZGFtYWdlZFJhbmdlWzBdLCBjdXJyZW50UFN0YXJ0KTsKKyAgICAgICAgICAgICAgICBkYW1hZ2VkUmFuZ2VbMV0gPSBNYXRoLm1heChkYW1hZ2VkUmFuZ2VbMV0sIG5leHRQU3RhcnQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobGltaXQgPD0gbmV4dFBTdGFydCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgY3VycmVudFBTdGFydCA9IG5leHRQU3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbW9kaWZpZWRBbnl3aGVyZTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGR1bXBQYXJhZ3JhcGhTdGFydHMoUGFyYWdyYXBoQnVmZmVyIHN0KSB7CisKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJmUnVuQXJyYXkuZlBvc0VuZD0iK3N0LmZSdW5BcnJheS5mUG9zRW5kKyIsIGZSdW5BcnJheS5mTmVnU3RhcnQ9IitzdC5mUnVuQXJyYXkuZk5lZ1N0YXJ0KworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsIGZSdW5BcnJheS5nZXRBcnJheUxlbmd0aCgpPSIrc3QuZlJ1bkFycmF5LmdldEFycmF5TGVuZ3RoKCkrIiwgZlJ1bkFycmF5LmdldEN1clRleHRMZW5ndGgoKT0iK3N0LmZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCkpOworCisgICAgICAgIGludCBpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJQb3NpdGl2ZXM6ICIpOworICAgICAgICBmb3IgKGk9MDsgaTw9c3QuZlJ1bkFycmF5LmZQb3NFbmQ7IGkrKykKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoc3QuZlJ1bkFycmF5LmZSdW5TdGFydFtpXSsiICIpOworCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAgIE5lZ2F0aXZlczogIik7CisgICAgICAgIGZvciAoaT1zdC5mUnVuQXJyYXkuZk5lZ1N0YXJ0OyBpPHN0LmZSdW5BcnJheS5nZXRBcnJheUxlbmd0aCgpOyBpKyspCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KHN0LmZSdW5BcnJheS5mUnVuU3RhcnRbaV0rIiAiKTsKKworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiAiKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQga05vUnVuID0gLTQyOyAvLyBpdGVyYXRvciB1c2UKKworICAgIHByaXZhdGUgZmluYWwgY2xhc3MgUGFyYWdyYXBoSXRlcmF0b3IgLyppbXBsZW1lbnRzIE1QYXJhZ3JhcGhJdGVyYXRvciovCisgICAgeworICAgICAgICBQYXJhZ3JhcGhJdGVyYXRvcihpbnQgc3RhcnQsIGludCBsaW1pdCkKKyAgICAgICAgeworICAgICAgICAgICAgcmVzZXQoc3RhcnQsIGxpbWl0LCBzdGFydCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCByZXNldChpbnQgc3RhcnQsIGludCBsaW1pdCwgaW50IHBvcykKKyAgICAgICAgeworICAgICAgICAgICAgZlN0YXJ0ID0gc3RhcnQ7CisgICAgICAgICAgICBmTGltaXQgPSBsaW1pdDsKKyAgICAgICAgICAgIHNldEl0ZXJhdG9yKGZTdGFydCwgdGhpcyk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc1ZhbGlkKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZDdXJyZW50UnVuICE9IGtOb1J1bjsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIG5leHQoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZlJ1bkxpbWl0IDwgZkxpbWl0KSB7CisgICAgICAgICAgICAgICAgZkN1cnJlbnRSdW4rKzsKKyAgICAgICAgICAgICAgICBzZXRJdGVyYXRvclVzaW5nUnVuKGZDdXJyZW50UnVuLCB0aGlzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBzZXQoMCwgMCwga05vUnVuLCBudWxsKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHByZXYoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZlJ1blN0YXJ0ID4gZlN0YXJ0KSB7CisgICAgICAgICAgICAgICAgZkN1cnJlbnRSdW4tLTsKKyAgICAgICAgICAgICAgICBzZXRJdGVyYXRvclVzaW5nUnVuKGZDdXJyZW50UnVuLCB0aGlzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBzZXQoMCwgMCwga05vUnVuLCBudWxsKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHNldChpbnQgcG9zKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAocG9zID49IGZTdGFydCAmJiBwb3MgPCBmTGltaXQpIHsKKyAgICAgICAgICAgICAgICBzZXRJdGVyYXRvcihwb3MsIHRoaXMpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzZXQoMCwgMCwga05vUnVuLCBudWxsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFBhcmFncmFwaEJ1ZmZlciBjYWxscyBiYWNrIG9uIHRoaXMgdG8gc2V0IGl0ZXJhdG9ycworICAgICAgICB2b2lkIHNldChpbnQgc3RhcnQsIGludCBsaW1pdCwgaW50IGN1cnJlbnRSdW4sIEF0dHJpYnV0ZU1hcCBzdHlsZSkKKyAgICAgICAgeworICAgICAgICAgICAgZlJ1blN0YXJ0ID0gc3RhcnQgPCBmU3RhcnQgPyBmU3RhcnQgOiBzdGFydDsKKyAgICAgICAgICAgIGZSdW5MaW1pdCA9IGxpbWl0ID4gZkxpbWl0ID8gZkxpbWl0IDogbGltaXQ7CisgICAgICAgICAgICBmQ3VycmVudFJ1biA9IGN1cnJlbnRSdW47CisgICAgICAgICAgICBmU3R5bGUgPSBzdHlsZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHJlc2V0KGludCBzdGFydCwgaW50IGxpbWl0KQorICAgICAgICB7CisgICAgICAgICAgICByZXNldChzdGFydCwgbGltaXQsIHN0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIGZpcnN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgc2V0KGZTdGFydCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBsYXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgc2V0KGZMaW1pdCAtIDEpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCByYW5nZVN0YXJ0KCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZTdGFydDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgcmFuZ2VMaW1pdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmTGltaXQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IHJhbmdlTGVuZ3RoKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZMaW1pdCAtIGZTdGFydDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgcnVuU3RhcnQoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZlJ1blN0YXJ0OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBydW5MaW1pdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmUnVuTGltaXQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IHJ1bkxlbmd0aCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmUnVuTGltaXQgLSBmUnVuU3RhcnQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgQXR0cmlidXRlTWFwIHN0eWxlKCkgeworCisgICAgICAgICAgICByZXR1cm4gZlN0eWxlOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBpbnQgZlN0YXJ0OworICAgICAgICBwcml2YXRlIGludCBmTGltaXQ7CisgICAgICAgIHByaXZhdGUgaW50IGZSdW5TdGFydDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgZlJ1bkxpbWl0OworICAgICAgICBwcml2YXRlIGludCBmQ3VycmVudFJ1bjsKKyAgICAgICAgcHJpdmF0ZSBBdHRyaWJ1dGVNYXAgZlN0eWxlOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvUnVuQXJyYXkuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvUnVuQXJyYXkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43ZTE4ZjAzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9SdW5BcnJheS5qYXZhCkBAIC0wLDAgKzEsMjgyIEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBSdW5BcnJheS5qYXZhLHYgJCAkUmV2aXNpb246IDEuMSAkICREYXRlOiAyMDAwLzA0LzIwIDE3OjQ1OjEwICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvKioKKyogVGhpcyBjbGFzcyBtYWludGFpbnMgaW50ZXJ2YWxzIHdpdGhpbiBhIHBpZWNlIG9mIHRleHQuICBJbnRlcnZhbCBib3VuZGFyaWVzCisqIGFyZSBzdG9yZWQgaW4gdGhlIGZSdW5TdGFydCBhcnJheS4gIEludGVydmFsIGJvdW5kYXJpZXMgbWF5IGhhdmUgYQorKiBwb3NpdGl2ZSBvciBuZWdhdGl2ZSByZXByZXNlbnRhdGlvbi4gIEEgcG9zaXRpdmUgYm91bmRhcnkgaXMgZ2l2ZW4gYXMgYW4gb2Zmc2V0CisqIGZyb20gMC4gIEEgbmVnYXRpdmUgYm91bmRhcnkgaXMgZ2l2ZW4gYXMgYSBuZWdhdGl2ZSBvZmZzZXQgZnJvbSB0aGUgbmVkIG9mIHRoZSB0ZXh0LgorKiBUaGUgUnVuQXJyYXkgc3RvcmVzIHBvc2l0aXZlIGJvdW5kYXJpZXMgaW4gdGhlIGVudHJpZXMgWzAsIGZQb3NFbmRdLCBhbmQgbmVnYXRpdmUKKyogYm91bmRhcmllcyBpbiB0aGUgZW50cmllcyBbZk5lZ1N0YXJ0LCBmTGVuZ3RoKS4gIE5ldyBib3VuZGFyaWVzIG1heSBiZSBpbnNlcnRlZCBpbnRvCisqIHRoZSB1bmRlZmluZWQgbWlkZGxlIG9mIHRoZSBSdW5BcnJheS4gIElmIGZQb3NFbmQgPCAwLCB0aGVyZSBhcmUgbm8gcG9zaXRpdmUgZW50cmllcy4KKyogSWYgZk5lZ1N0YXJ0ID49IGZSdW5BcnJheS5sZW5ndGgsIHRoZXJlIGFyZSBubyBuZWdhdGl2ZSBuZXRyaWVzLiAgSXQncyBwb3NzaWJsZSB0byBoYXZlCisqIGEgcnVuYXJyYXkgd2l0aCBuZWl0aGVyIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGVudHJpZXMuCisqCisqIEFzIGFuIGV4YW1wbGUgb2YgaG93IHRoZSBSdW5BcnJheSB3b3JrcywgY29uc2lkZXIgYSBwaWVjZSBvZiB0ZXh0IHdpdGggNSBpbnRlcnZhbHMsCisqIHdoZXJlIGVhY2ggaW50ZXJ2YWwgaXMgMyBjaGFyYWN0ZXJzIGluIGxlbmd0aC4gIFRoZSBSdW5BcnJheSBmb3IgdGhpcyB0ZXh0IGNvdWxkCisqIGxvb2sgbGlrZToKKyogICAgZkN1clRleHRMZW5ndGggPSAxNSwgZlBvc0VuZCA9IDUsIGZOZWdTdGFydCA9IDEwLAorKiAgICBmUnVuU3RhcnQgPSB7IDAsIDMsIDYsIDksIDEyLCBVLCBVLCBVLCBVLCBVIH07CisqIHdoZXJlIFUgaXMgYW4gdW5kZWZpbmVkIGFycmF5IGVsZW1lbnQuCisKKyogQW4gZXF1aXZhbGVudCByZXByZXNlbnRhdGlvbiB3b3VsZCBiZToKKyogICAgZkN1clRleHRMZW5ndGggPSAxNSwgZlBvc0VuZCA9IDMsIGZOZWdTdGFydCA9IDgsCisqICAgIGZSdW5TdGFydCA9IHsgMCwgMywgNiwgVSwgVSwgVSwgVSwgVSwgLTYsIC0zIH07CisqCisqIFRoZSBSdW5BcnJheSBjbGFzcyBpcyB1c2VkIGluIHRoZSBTdHlsZUJ1ZmZlciBhbmQgdGhlIFBhcmFncmFwaEJ1ZmZlci4gIEluIHRoZSBTdHlsZUJ1ZmZlciwKKyogdGhlIGVudHJpZXMgaW4gZlJ1blN0YXJ0IGdpdmUgdGhlIG9mZnNldHMgd2hlcmUgc3R5bGUgcnVucyBiZWdpbi4gIEluIHRoZQorKiBQYXJhZ3JhcGhCdWZmZXIsIHRoZSBmUnVuU3RhcnQgZW50cmllcyBzdG9yZSBvZmZzZXRzIG9mIHBhcmFncmFwaCBicmVha3MuCisqCisqIFRoaXMgY2xhc3MgcHJvdmlkZXMgbWV0aG9kcyBmb3Igc2hpZnRpbmcgdGhlIHJ1biB0YWJsZSB0byBhIHBhcnRpY3VsYXIgcG9zaXRpb24sIGV4cGFuZGluZyB0aGUKKyogcnVuIHRhYmxlLCBhbmQgcmV0dXJuaW5nIHRoZSBpbmRleCBvZiB0aGUgcnVuIGNvbnRhaW5pbmcgYSBwYXJ0aWN1bGFyIG9mZnNldCBpbiB0aGUgdGV4dC4gIEFsbAorKiBvdGhlciBmdW5jdGlvbmFsaXR5IGlzIGltcGxlbWVudGVkIGluIHRoZSBSdW5BcnJheSBjbGllbnRzLgorKgorKiBSdW5BcnJheSB1c2VzIEZhc3RJbnRCaW5hcnlTZWFyY2ggZm9yIHNlYXJjaGVzLiAgVGhlIHNlYXJjaGVzIGFyZSBjb25zdHJ1Y3RlZCBvbiBkZW1hbmQgaW4KKyogdGhlIGZpbmRSdW5Db250YWluaW5nIG1ldGhvZC4gIFRoZSBzZWFyY2hlcyBhcmUgaW52YWxpZGF0ZWQgd2hlbiB0aGUgcnVuIGFycmF5IGlzIHNoaWZ0ZWQ7CisqIGhvd2V2ZXIsIHRoZSBSdW5BcnJheSBjYW4gYmUgbW9kaWZpZWQgYnkgb3RoZXIgY2xhc3Nlcy4gIFRodXMsIGlmIGFub3RoZXIgY2xhc3MgbW9kaWZpZXMKKyogdGhlIGVudHJpZXMgaW4gZlJ1bkFycmF5LCBvciBtb2RpZmllcyBmUG9zRW5kIG9yIGZOZWdTdGFydCwgaXQgaXMgcmVzcG9uc2libGUgZm9yCisqIGNhbGxpbmcgcnVuU3RhcnRzQ2hhbmdlZC4KKyovCisKK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0OworCitpbXBvcnQgamF2YS5pby5FeHRlcm5hbGl6YWJsZTsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdElucHV0OworaW1wb3J0IGphdmEuaW8uT2JqZWN0T3V0cHV0OworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CisKK2ZpbmFsIGNsYXNzIFJ1bkFycmF5IGltcGxlbWVudHMgRXh0ZXJuYWxpemFibGUgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAyMjM1NjkzNDsKKworICAgIGludFtdIGZSdW5TdGFydDsKKyAgICBwcml2YXRlIGludCBmQ3VyVGV4dExlbmd0aDsKKyAgICBpbnQgZlBvc0VuZCwgZk5lZ1N0YXJ0OworICAgIAorICAgIHRyYW5zaWVudCBwcml2YXRlIEZhc3RJbnRCaW5hcnlTZWFyY2ggZlBvc1NlYXJjaDsKKyAgICB0cmFuc2llbnQgcHJpdmF0ZSBib29sZWFuIGZQb3NTZWFyY2hWYWxpZDsKKyAgICB0cmFuc2llbnQgcHJpdmF0ZSBGYXN0SW50QmluYXJ5U2VhcmNoIGZOZWdTZWFyY2g7CisgICAgdHJhbnNpZW50IHByaXZhdGUgYm9vbGVhbiBmTmVnU2VhcmNoVmFsaWQ7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ1VSUkVOVF9WRVJTSU9OID0gMTsKKworICAgIFJ1bkFycmF5KGludCBpbml0aWFsU2l6ZSwgaW50IGN1clRleHRMZW5ndGgpIHsKKworICAgICAgICBmUnVuU3RhcnQgPSBuZXcgaW50W2luaXRpYWxTaXplXTsKKyAgICAgICAgZkN1clRleHRMZW5ndGggPSBjdXJUZXh0TGVuZ3RoOworICAgICAgICBmUG9zRW5kID0gLTE7CisgICAgICAgIGZOZWdTdGFydCA9IGluaXRpYWxTaXplOworICAgICAgICAKKyAgICAgICAgZlBvc1NlYXJjaCA9IG5ldyBGYXN0SW50QmluYXJ5U2VhcmNoKGZSdW5TdGFydCwgMCwgMSk7CisgICAgICAgIGZOZWdTZWFyY2ggPSBuZXcgRmFzdEludEJpbmFyeVNlYXJjaChmUnVuU3RhcnQsIDAsIDEpOworICAgICAgICBmUG9zU2VhcmNoVmFsaWQgPSBmTmVnU2VhcmNoVmFsaWQgPSBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBOb3RlOiB0aGlzIGNvbnN0cnVjdG9yIGlzIE9OTFkgZm9yIHVzZSBieSB0aGUgU2VyaWFsaXphdGlvbgorICAgICAqIG1lY2hhbmlzbS4gIEl0IGRvZXMgbm90IGxlYXZlIHRoaXMgb2JqZWN0IGluIGEgdmFsaWQgc3RhdGUhCisgICAgICovCisgICAgcHVibGljIFJ1bkFycmF5KCkgeworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlRXh0ZXJuYWwoT2JqZWN0T3V0cHV0IG91dCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKworICAgICAgICBvdXQud3JpdGVJbnQoQ1VSUkVOVF9WRVJTSU9OKTsKKyAgICAgICAgb3V0LndyaXRlT2JqZWN0KGZSdW5TdGFydCk7CisgICAgICAgIG91dC53cml0ZUludChmQ3VyVGV4dExlbmd0aCk7CisgICAgICAgIG91dC53cml0ZUludChmUG9zRW5kKTsKKyAgICAgICAgb3V0LndyaXRlSW50KGZOZWdTdGFydCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVhZEV4dGVybmFsKE9iamVjdElucHV0IGluKSB0aHJvd3MgSU9FeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzTm90Rm91bmRFeGNlcHRpb24geworCisgICAgICAgIGlmIChpbi5yZWFkSW50KCkgIT0gQ1VSUkVOVF9WRVJTSU9OKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oIkludmFsaWQgdmVyc2lvbiBvZiBSdW5BcnJheSIpOworICAgICAgICB9CisgICAgICAgIGZSdW5TdGFydCA9IChpbnRbXSkgaW4ucmVhZE9iamVjdCgpOworICAgICAgICBmQ3VyVGV4dExlbmd0aCA9IGluLnJlYWRJbnQoKTsKKyAgICAgICAgZlBvc0VuZCA9IGluLnJlYWRJbnQoKTsKKyAgICAgICAgZk5lZ1N0YXJ0ID0gaW4ucmVhZEludCgpOworICAgICAgICAKKyAgICAgICAgZlBvc1NlYXJjaCA9IG5ldyBGYXN0SW50QmluYXJ5U2VhcmNoKGZSdW5TdGFydCwgMCwgMSk7CisgICAgICAgIGZOZWdTZWFyY2ggPSBuZXcgRmFzdEludEJpbmFyeVNlYXJjaChmUnVuU3RhcnQsIDAsIDEpOworICAgICAgICBmUG9zU2VhcmNoVmFsaWQgPSBmTmVnU2VhcmNoVmFsaWQgPSBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldEN1clRleHRMZW5ndGgoKSB7CisKKyAgICAgICAgcmV0dXJuIGZDdXJUZXh0TGVuZ3RoOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldEN1clRleHRMZW5ndGgoaW50IGN1clRleHRMZW5ndGgpIHsKKworICAgICAgICBmQ3VyVGV4dExlbmd0aCA9IGN1clRleHRMZW5ndGg7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYWRkVG9DdXJUZXh0TGVuZ3RoKGludCBkZWx0YSkgeworCisgICAgICAgIGZDdXJUZXh0TGVuZ3RoICs9IGRlbHRhOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJ1blN0YXJ0c0NoYW5nZWQoKSB7CisKKyAgICAgICAgZlBvc1NlYXJjaFZhbGlkID0gZk5lZ1NlYXJjaFZhbGlkID0gZmFsc2U7CisgICAgfQorCisvKioKKyogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGxhc3QgdmFsaWQgcnVuLgorKi8KKyAgICBpbnQgbGFzdFJ1bigpIHsKKworICAgICAgICByZXR1cm4gKGZOZWdTdGFydCA9PSBmUnVuU3RhcnQubGVuZ3RoKT8gZlBvc0VuZCA6IGZSdW5TdGFydC5sZW5ndGgtMTsKKyAgICB9CisKKy8qKgorKiBSZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIHJ1biBhcnJheS4gIFJlcGxhY2VzIG9sZCBmTGVuZ3RoIG1lbWJlci4KKyovCisgICAgaW50IGdldEFycmF5TGVuZ3RoKCkgeworCisgICAgICAgIHJldHVybiBmUnVuU3RhcnQubGVuZ3RoOworICAgIH0KKworLyoqCisqIFNoaWZ0cyBzdHlsZSB0YWJsZSBzdWNoIHRoYXQgdGhlIGxhc3QgcG9zaXRpdmUgcnVuCisqIHN0YXJ0cyBiZWZvcmUgcG9zLgorKi8KKyAgICB2b2lkIHNoaWZ0VGFibGVUbyhpbnQgcG9zKSB7CisKKyAgICAgICAgaW50IG9sZFBvc0VuZCA9IGZQb3NFbmQ7CisKKyAgICAgICAgd2hpbGUgKGZQb3NFbmQgPj0gMCAmJiBmUnVuU3RhcnRbZlBvc0VuZF0gPj0gcG9zKSB7CisKKyAgICAgICAgICAgIGZOZWdTdGFydC0tOworICAgICAgICAgICAgZlJ1blN0YXJ0W2ZOZWdTdGFydF0gPSBmUnVuU3RhcnRbZlBvc0VuZF0gLSBmQ3VyVGV4dExlbmd0aDsKKyAgICAgICAgICAgIGZQb3NFbmQtLTsKKworICAgICAgICB9CisKKyAgICAgICAgcG9zIC09IGZDdXJUZXh0TGVuZ3RoOworCisgICAgICAgIHdoaWxlIChmTmVnU3RhcnQ8ZlJ1blN0YXJ0Lmxlbmd0aCAmJiBmUnVuU3RhcnRbZk5lZ1N0YXJ0XSA8IHBvcykgeworCisgICAgICAgICAgICBmUG9zRW5kKys7CisgICAgICAgICAgICBmUnVuU3RhcnRbZlBvc0VuZF0gPSBmUnVuU3RhcnRbZk5lZ1N0YXJ0XSArIGZDdXJUZXh0TGVuZ3RoOworICAgICAgICAgICAgZk5lZ1N0YXJ0Kys7CisgICAgICAgIH0KKworICAgICAgICBpZiAob2xkUG9zRW5kICE9IGZQb3NFbmQpIHsKKyAgICAgICAgICAgIGZQb3NTZWFyY2hWYWxpZCA9IGZOZWdTZWFyY2hWYWxpZCA9IGZhbHNlOworICAgICAgICB9CisgICAgfQorCisvKioKKyogUmV0dXJucyBpbmRleCBvZiBzdHlsZSBydW4gY29udGFpbmluZyBwb3MuICBJZiBmaXJzdCBzdHlsZSBydW4gc3RhcnRzIGJlZm9yZQorKiBwb3MsIC0xIGlzIHJldHVybmVkLiAgSWYgcG9zIGlzIGdyZWF0ZXIgdGhhbiB0ZXh0IGxlbmd0aCwgbGFzdHJ1biBpcyByZXR1cm5lZC4KKyovCisgICAgaW50IGZpbmRSdW5Db250YWluaW5nKGludCBwb3MpIHsKKworICAgICAgICBGYXN0SW50QmluYXJ5U2VhcmNoIHNlYXJjaDsKKyAgICAgICAgZmluYWwgaW50IGxlbmd0aCA9IGZSdW5TdGFydC5sZW5ndGg7CisKKyAgICAgICAgaWYgKGZOZWdTdGFydCA8IGxlbmd0aCAmJiAocG9zLWZDdXJUZXh0TGVuZ3RoID49IGZSdW5TdGFydFtmTmVnU3RhcnRdKSkgeworCisgICAgICAgICAgICBwb3MgLT0gZkN1clRleHRMZW5ndGg7CisKKyAgICAgICAgICAgIGlmICghZk5lZ1NlYXJjaFZhbGlkKSB7CisgICAgICAgICAgICAgICAgZk5lZ1NlYXJjaC5zZXREYXRhKGZSdW5TdGFydCwgZk5lZ1N0YXJ0LCBsZW5ndGgtZk5lZ1N0YXJ0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNlYXJjaCA9IGZOZWdTZWFyY2g7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoZlBvc0VuZCA+PSAwKSB7CisKKyAgICAgICAgICAgIGlmICghZlBvc1NlYXJjaFZhbGlkKSB7CisgICAgICAgICAgICAgICAgZlBvc1NlYXJjaC5zZXREYXRhKGZSdW5TdGFydCwgMCwgZlBvc0VuZCsxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNlYXJjaCA9IGZQb3NTZWFyY2g7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIC0xOworCisgICAgICAgIGludCBydW4gPSBzZWFyY2guZmluZEluZGV4KHBvcyk7CisKKyAgICAgICAgcmV0dXJuIHJ1bjsKKyAgICB9CisKKyAgICBpbnQgZ2V0TG9naWNhbFJ1blN0YXJ0KGludCBydW4pIHsKKworICAgICAgICBpZiAocnVuID09IC0xKSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChydW4gPT0gZlJ1blN0YXJ0Lmxlbmd0aCkgeworICAgICAgICAgICAgcmV0dXJuIGZDdXJUZXh0TGVuZ3RoOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKHJ1biA8PSBmUG9zRW5kKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZSdW5TdGFydFtydW5dOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAocnVuID49IGZOZWdTdGFydCkgeworICAgICAgICAgICAgICAgIHJldHVybiBmUnVuU3RhcnRbcnVuXSArIGZDdXJUZXh0TGVuZ3RoOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBydW4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworLyoqCisqIEluY3JlYXNlcyBzaXplIG9mIHJ1biB0YWJsZS4gIEN1cnJlbnQgaW1wbGVtZW50YXRpb24gZG91YmxlcyB0aGUgcnVuIHRhYmxlJ3Mgc2l6ZS4KKyovCisgICAgdm9pZCBleHBhbmRSdW5UYWJsZSgpIHsKKworICAgICAgICByZXNpemVSdW5UYWJsZShmUnVuU3RhcnQubGVuZ3RoICogMik7CisgICAgfQorCisvKioKKyogUmV0dXJuIHRoZSBtaW5pbXVtIG51bWJlciBvZiBlbGVtZW50cyBwb3NzaWJsZSBpbiBmUnVuU3RhcnQuCisqLworICAgIHByaXZhdGUgaW50IGdldE1pblNpemUoKSB7CisKKyAgICAgICAgcmV0dXJuIE1hdGgubWF4KGZQb3NFbmQgKyAoZlJ1blN0YXJ0Lmxlbmd0aC1mTmVnU3RhcnQpICsgMSwgMSk7CisgICAgfQorCisgICAgdm9pZCBjb21wcmVzcygpIHsKKworICAgICAgICBpbnQgbWluU2l6ZSA9IGdldE1pblNpemUoKTsKKyAgICAgICAgaWYgKGZSdW5TdGFydC5sZW5ndGggPiBtaW5TaXplKSB7CisgICAgICAgICAgICByZXNpemVSdW5UYWJsZShtaW5TaXplKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCByZXNpemVSdW5UYWJsZShpbnQgbmV3U2l6ZSkgeworCisgICAgICAgIGlmIChuZXdTaXplIDwgZ2V0TWluU2l6ZSgpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJBdHRlbXB0IHRvIG1ha2UgUnVuQXJyYXkgdG9vIHNtYWxsLiIpOworICAgICAgICB9CisKKyAgICAgICAgZmluYWwgaW50IG9sZExlbmd0aCA9IGZSdW5TdGFydC5sZW5ndGg7CisKKyAgICAgICAgaW50IG5ld1J1blN0YXJ0W10gPSBuZXcgaW50W25ld1NpemVdOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGZSdW5TdGFydCwgMCwgbmV3UnVuU3RhcnQsIDAsIGZQb3NFbmQrMSk7CisgICAgICAgIGludCBuZXdOZWdTdGFydCA9IG5ld1J1blN0YXJ0Lmxlbmd0aCAtIChvbGRMZW5ndGgtZk5lZ1N0YXJ0KTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShmUnVuU3RhcnQsIGZOZWdTdGFydCwgbmV3UnVuU3RhcnQsIG5ld05lZ1N0YXJ0LCAob2xkTGVuZ3RoLWZOZWdTdGFydCkpOworCisgICAgICAgIGZOZWdTdGFydCA9IG5ld05lZ1N0YXJ0OworICAgICAgICBmUnVuU3RhcnQgPSBuZXdSdW5TdGFydDsKKworICAgICAgICBmUG9zU2VhcmNoVmFsaWQgPSBmTmVnU2VhcmNoVmFsaWQgPSBmYWxzZTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L1N0YW5kYXJkVGFiUnVsZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvU3RhbmRhcmRUYWJSdWxlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmUwYjU4M2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L1N0YW5kYXJkVGFiUnVsZXIuamF2YQpAQCAtMCwwICsxLDM3NCBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogU3RhbmRhcmRUYWJSdWxlci5qYXZhLHYgJCAkUmV2aXNpb246IDEuMSAkICREYXRlOiAyMDAwLzA0LzIwIDE3OjQ1OjEwICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dDsKKworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CisKK2ltcG9ydCBqYXZhLmlvLkV4dGVybmFsaXphYmxlOworaW1wb3J0IGphdmEuaW8uT2JqZWN0SW5wdXQ7CitpbXBvcnQgamF2YS5pby5PYmplY3RPdXRwdXQ7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKKworLyoqCisgKiBUaGlzIGNsYXNzIGlzIGEgc3RhbmRhcmQgaW1wbGVtZW50YXRpb24gb2YgTVRhYlJ1bGVyLgorICogSXQgY2FuIGhhdmUgYSBmaW5pdGUgbnVtYmVyIG9mIGNsaWVudC1zcGVjaWZpZWQgVGFiU3RvcHMuICBBZnRlcgorICogdGhlIGNsaWVudC1zcGVjaWZpZWQgVGFiU3RvcHMsIGFsbCBUYWJTdG9wcyBoYXZlIHR5cGUKKyAqIDxjb2RlPlRhYlN0b3Aua0F1dG88L2NvZGU+IGFuZCBhcmUgYXQgdGhlIGF1dG9zcGFjZSBpbnRlcnZhbHMuCisgKiBAc2VlIFRhYlN0b3AKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFN0YW5kYXJkVGFiUnVsZXIgZXh0ZW5kcyBNVGFiUnVsZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltcGxlbWVudHMgRXh0ZXJuYWxpemFibGUKK3sKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDVVJSRU5UX1ZFUlNJT04gPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDIyMzU2OTM0OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVGFiU3RvcCBBVVRPX1pFUk8gPSBuZXcgVGFiU3RvcCgwLCBUYWJTdG9wLmtBdXRvKTsKKworICAgIHByaXZhdGUgVGFiU3RvcFtdIGZUYWJzID0gbnVsbDsKKyAgICBwcml2YXRlIGludCBmQXV0b1NwYWNpbmcgPSAzNjsgLy8gZXZlcnkgMS8yIGluY2guCisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBTdGFuZGFyZFRhYlJ1bGVyIHdpdGggb25seSBhdXRvIHRhYnMsIHdpdGggc3BhY2luZyBvZiAzNi4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RhbmRhcmRUYWJSdWxlcigpCisgICAgeworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIFN0YW5kYXJkVGFiUnVsZXIgd2l0aCBvbmx5IGF1dG8gdGFicywgd2l0aCB0aGUKKyAgICAgKiBnaXZlbiBhdXRvU3BhY2luZy4KKyAgICAgKiBAcGFyYW0gYXV0b1NwYWNpbmcgdGhlIGF1dG9TcGFjaW5nIGZvciB0aGlzIHRhYiBydWxlcgorICAgICAqLworICAgIHB1YmxpYyBTdGFuZGFyZFRhYlJ1bGVyKGludCBhdXRvU3BhY2luZykKKyAgICB7CisgICAgICAgIGZBdXRvU3BhY2luZyA9IGF1dG9TcGFjaW5nOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIFN0YW5kYXJkVGFiUnVsZXIuICBUaGUgZmlyc3QgVGFiU3RvcHMgb24gdGhlIHJ1bGVyIHdpbGwgYmUKKyAgICAgKiB0aGUgVGFiU3RvcHMgaW4gdGhlIDxjb2RlPnRhYnM8L2NvZGU+IGFycmF5LiAgQWZ0ZXIgdGhlc2UgdGFicyBhbGwKKyAgICAgKiB0YWJzIGFyZSBhdXRvIHRhYnMuCisgICAgICogQHBhcmFtIHRhYnMgYW4gYXJyYXkgb2YgVGFiU3RvcHMuICBUaGUgVGFiU3RvcHMgaW4gdGhlIGFycmF5IG11c3QKKyAgICAgKiAgICBiZSBpbiBzdHJpY3RseSBpbmNyZWFzaW5nIG9yZGVyIChvZiBwb3NpdGlvbnMpLCBhbmQgY2Fubm90IGhhdmUKKyAgICAgKiAgICB0eXBlIDxjb2RlPlRhYlN0b3Aua0F1dG88L2NvZGU+LgorICAgICAqIEBwYXJhbSBhdXRvU3BhY2luZyB0aGUgYXV0b1NwYWNpbmcgaW50ZXJ2YWwgdG8gdXNlIGFmdGVyIHRoZSBsYXN0CisgICAgICogICAgY2xpZW50LXNwZWNpZmllZCB0YWIuCisgICAgICovCisgICAgcHVibGljIFN0YW5kYXJkVGFiUnVsZXIoVGFiU3RvcFtdIHRhYnMsIGludCBhdXRvU3BhY2luZykKKyAgICB7CisgICAgICAgIGlmICh0YWJzLmxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgIHZhbGlkYXRlVGFiQXJyYXkodGFicyk7CisgICAgICAgICAgICBmVGFicyA9IChUYWJTdG9wW10pIHRhYnMuY2xvbmUoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZUYWJzID0gbnVsbDsKKyAgICAgICAgfQorICAgICAgICBmQXV0b1NwYWNpbmcgPSBhdXRvU3BhY2luZzsKKyAgICB9CisKKyAgICAvKiogVGFicyBhcyBwcm92aWRlZCwgdGhlbiBhdXRvU3BhY2luZyBhZnRlciB0aGUgbGFzdCB0YWIgdG8gZXRlcm5pdHkuICBVc2UgdGhpcyBjb25zdHJ1Y3RvciB3aGVuCisgICAgICAgIG11bmdpbmcgYSBydWxlciwgaXQgZG9lcyBubyB2YWxpZGF0aW9uIG9uIHRoZSB0YWJzIGluIHRoZSB2ZWN0b3IuIFZlY3RvciBtYXkgbm90IGJlIG51bGwuICovCisKKyAgICAvKnB1YmxpYyovIFN0YW5kYXJkVGFiUnVsZXIoVmVjdG9yIHYsIGludCBhdXRvU3BhY2luZykKKyAgICB7CisgICAgICAgIGZUYWJzID0gdGFiQXJyYXlGcm9tVmVjdG9yKHYpOworICAgICAgICBmQXV0b1NwYWNpbmcgPSBhdXRvU3BhY2luZzsKKyAgICB9CisKKyAgICAvKiogQ29uc3RydWN0IGZyb20gYW5vdGhlciBydWxlci4gTm8gdmFsaWRhdGlvbi4gUnVsZXIgbWF5IG5vdCBiZSBudWxsLiAqLworCisgICAgLypwdWJsaWMqLyBTdGFuZGFyZFRhYlJ1bGVyKE1UYWJSdWxlciBydWxlcikKKyAgICB7CisgICAgICAgIGlmIChydWxlciA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJydWxlciBtYXkgbm90IGJlIG51bGwiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZUYWJzID0gdGFiQXJyYXlGcm9tVmVjdG9yKHZlY3RvckZyb21UYWJSdWxlcihydWxlcikpOworICAgICAgICBmQXV0b1NwYWNpbmcgPSBydWxlci5hdXRvU3BhY2luZygpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlYWRFeHRlcm5hbChPYmplY3RJbnB1dCBpbikgdGhyb3dzIElPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGFzc05vdEZvdW5kRXhjZXB0aW9uIHsKKworICAgICAgICBpbnQgdmVyc2lvbiA9IGluLnJlYWRJbnQoKTsKKyAgICAgICAgaWYgKHZlcnNpb24gIT0gQ1VSUkVOVF9WRVJTSU9OKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oIkludmFsaWQgdmVyc2lvbiBvZiBTdHlsZWRUZXh0OiAiICsgdmVyc2lvbik7CisgICAgICAgIH0KKyAgICAgICAgZlRhYnMgPSAoVGFiU3RvcFtdKSBpbi5yZWFkT2JqZWN0KCk7CisgICAgICAgIGZBdXRvU3BhY2luZyA9IGluLnJlYWRJbnQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZUV4dGVybmFsKE9iamVjdE91dHB1dCBvdXQpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisKKyAgICAgICAgb3V0LndyaXRlSW50KENVUlJFTlRfVkVSU0lPTik7CisgICAgICAgIG91dC53cml0ZU9iamVjdChmVGFicyk7CisgICAgICAgIG91dC53cml0ZUludChmQXV0b1NwYWNpbmcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBmaXJzdCB0YWIgaW4gdGhlIHJ1bGVyLiAgSWYgYW4gYXV0b1RhYiwgaXQgaXMgYXQgcG9zaXRpb24gemVybywgYW5kCisgICAgICogYWxsIHN1YnNlcXVlbnQgdGFicyB3aWxsIGJlIGF1dG90YWJzIGF0IGF1dG9TcGFjaW5nIGludGVydmFscy4KKyAgICAgKi8KKyAgICBwdWJsaWMgVGFiU3RvcCBmaXJzdFRhYigpCisgICAgeworICAgICAgICBpZiAoZlRhYnMgIT0gbnVsbCAmJiBmVGFicy5sZW5ndGggPiAwKSB7CisgICAgICAgICAgICByZXR1cm4gZlRhYnNbMF07CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gQVVUT19aRVJPOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZmlyc3QgdGFiIGluIHRoZSBydWxlciB3aXRoIGZQb3NpdGlvbiA+IHBvc2l0aW9uLiAgSWYgaXQgaXMgYW4KKyAgICAgKiBhdXRvdGFiLCBpdCBpcyBhdCBhbiBpbmNyZW1lbnQgb2YgYXV0b1NwYWNpbmcsIGFuZCBhbGwgc3Vic2VxdWVudCB0YWJzIHdpbGwgYmUKKyAgICAgKiBhdXRvdGFicyBhdCBhdXRvU3BhY2luZyBpbnRlcnZhbHMuCisgICAgICogQHBhcmFtIHBvc2l0aW9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgVGFiU3RvcCByZXR1cm5lZCB3aWxsIGJlIGdyZWF0ZXIgdGhhbiB0aGlzIHBhcmFtZXRlcgorICAgICAqLworICAgIHB1YmxpYyBUYWJTdG9wIG5leHRUYWIoaW50IHBvc2l0aW9uKQorICAgIHsKKyAgICAgICAgaWYgKGZUYWJzICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZlRhYnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAocG9zaXRpb24gPCBmVGFic1tpXS5nZXRQb3NpdGlvbigpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZlRhYnNbaV07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAocG9zaXRpb24gPj0gNDAwMCkgeyAvLyBkZWJ1Zzogc2FuaXR5IGNoZWNrCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImF1dG8gdGFiIHBhc3QgNDAwMCIpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG5ldyBUYWJTdG9wKCgocG9zaXRpb24gLyBmQXV0b1NwYWNpbmcpICsgMSkgKiBmQXV0b1NwYWNpbmcsIFRhYlN0b3Aua0F1dG8pOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgaW50ZXJ2YWwgZm9yIGF1dG90YWJzLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgYXV0b1NwYWNpbmcoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZBdXRvU3BhY2luZzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlIHRoaXMgdG8gYW5vdGhlciBPYmplY3QuIFJldHVybnMgdHJ1ZSBpZiB0aGUgb2JqZWN0CisgICAgICogaXMgYW4gTVRhYlJ1bGVyIHdpdGggdGhlIHNhbWUgYXV0b1NwYWNpbmcgYW5kIHRhYnMuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvKQorICAgIHsKKyAgICAgICAgaWYgKG8gPT0gdGhpcykgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAobyA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIE1UYWJSdWxlciByaHM7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByaHMgPSAoTVRhYlJ1bGVyKW87CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmQXV0b1NwYWNpbmcgIT0gcmhzLmF1dG9TcGFjaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgVGFiU3RvcCByaHNUYWIgPSByaHMuZmlyc3RUYWIoKTsKKworICAgICAgICBpZiAoZlRhYnMgIT0gbnVsbCkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmVGFicy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmICghZlRhYnNbaV0uZXF1YWxzKHJoc1RhYikpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgICAgIHJoc1RhYiA9IHJocy5uZXh0VGFiKHJoc1RhYi5nZXRQb3NpdGlvbigpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiByaHNUYWIuZ2V0VHlwZSgpID09IFRhYlN0b3Aua0F1dG87CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGRlYnVnIGluZm9ybWF0aW9uIGFib3V0IHRoaXMgdGFiIHJ1bGVyLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKQorICAgIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoc3VwZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoIiBhdXRvOiAiKTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZChJbnRlZ2VyLnRvU3RyaW5nKGZBdXRvU3BhY2luZykpOworCisgICAgICAgIGlmIChmVGFicyAhPSBudWxsKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZUYWJzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChmVGFic1tpXS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBidWZmZXIudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKiogVXRpbGl0eSB0byBjb252ZXJ0IGEgdmVjdG9yIG9mIHRhYnMgdG8gYW4gYXJyYXkuICovCisKKyAgICBwcml2YXRlIHN0YXRpYyBUYWJTdG9wW10gdGFiQXJyYXlGcm9tVmVjdG9yKFZlY3RvciB2KQorICAgIHsKKyAgICAgICAgaW50IGNvdW50ID0gdi5zaXplKCk7CisgICAgICAgIFRhYlN0b3BbXSB0YWJzID0gbmV3IFRhYlN0b3BbY291bnRdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgIHRhYnNbaV0gPSAoVGFiU3RvcCl2LmVsZW1lbnRBdChpKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0YWJzOworICAgIH0KKworICAgIC8qKiBVdGlsaXR5IHRvIGNvbnZlcnQgYSBydWxlciB0byBhIHZlY3RvciBvZiB0YWJzLCBmb3IgbXVuZ2luZy4gKi8KKworICAgIHByaXZhdGUgc3RhdGljIFZlY3RvciB2ZWN0b3JGcm9tVGFiUnVsZXIoTVRhYlJ1bGVyIHJ1bGVyKQorICAgIHsKKyAgICAgICAgVmVjdG9yIHYgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIGZvciAoVGFiU3RvcCB0YWIgPSBydWxlci5maXJzdFRhYigpOyB0YWIgIT0gbnVsbCAmJiB0YWIuZ2V0VHlwZSgpICE9IFRhYlN0b3Aua0F1dG87IHRhYiA9IHJ1bGVyLm5leHRUYWIodGFiLmdldFBvc2l0aW9uKCkpKSB7CisgICAgICAgICAgICB2LmFkZEVsZW1lbnQodGFiKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB2OworICAgIH0KKworICAgIC8qKiBVdGlsaXR5IHRvIHZhbGlkYXRlIGFuIGFycmF5IG9mIHRhYnMuICBUaGUgYXJyYXkgbXVzdCBub3QgYmUgbnVsbCwgbXVzdCBub3QgY29udGFpbiBudWxsCisgICAgICAgIGVudHJpZXMsIG11c3Qgbm90IGJlIGtBdXRvLCBhbmQgcG9zaXRpb25zIG11c3QgaW4gaW5jcmVhc2luZyBvcmRlci4gKi8KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgdmFsaWRhdGVUYWJBcnJheShUYWJTdG9wW10gdGFicykKKyAgICB7CisgICAgICAgIGludCBwb3MgPSBJbnRlZ2VyLk1JTl9WQUxVRTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0YWJzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAodGFic1tpXS5nZXRUeXBlKCkgPT0gVGFiU3RvcC5rQXV0bykgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImNhbid0IGV4cGxpY2l0bHkgc3BlY2lmeSBhbiBhdXRvIHRhYi4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBuZXh0cG9zID0gdGFic1tpXS5nZXRQb3NpdGlvbigpOworICAgICAgICAgICAgaWYgKG5leHRwb3MgPD0gcG9zKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigidGFiIHBvc2l0aW9ucyBtdXN0IGJlIGluIGluY3JlYXNpbmcgb3JkZXIuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwb3MgPSBuZXh0cG9zOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgdGFiIHJ1bGVyIGlkZW50aWNhbCB0byB0aGUgZ2l2ZW4gcnVsZXIsIGV4Y2VwdCB3aXRoIHRoZQorICAgICAqIGdpdmVuIHRhYiBhZGRlZC4KKyAgICAgKiBAcGFyYW0gcnVsZXIgdGhlIG9yaWdpbmFsIHJ1bGVyLiAgVGhlIE1UYWJSdWxlciB3aWxsIGJlIHRoZSBzYW1lIGFzCisgICAgICogICB0aGlzIGV4Y2VwdCBmb3IgdGhlIGFkZGl0aW9uYWwgdGFiLiAgPGNvZGU+cnVsZXI8L2NvZGU+IGlzIG5vdCBtb2RpZmllZC4KKyAgICAgKiBAcGFyYW0gdGFiVG9BZGQgdGhlIHRhYiB0byBhZGQgdG8gdGhlIG5ldyB0YWIgcnVsZXIKKyAgICAgKiBAcmV0dXJuIGFuIE1UYWJSdWxlciByZXN1bHRpbmcgZnJvbSB0aGlzIG9wZXJhdGlvbgorICAgICAqLworICAgIC8qcHVibGljKi8gc3RhdGljIE1UYWJSdWxlciBhZGRUYWJUb1J1bGVyKE1UYWJSdWxlciBydWxlciwgVGFiU3RvcCB0YWJUb0FkZCkKKyAgICB7CisgICAgICAgIGlmIChydWxlciA9PSBudWxsIHx8IHRhYlRvQWRkID09IG51bGwpCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJydWxlciBhbmQgdGFiVG9BZGQgbWF5IG5vdCBiZSBudWxsIik7CisKKyAgICAgICAgVmVjdG9yIHZlY3RvciA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICBpbnQgcG9zID0gMDsKKyAgICAgICAgYm9vbGVhbiBhZGRlZCA9IGZhbHNlOworICAgICAgICBmb3IgKFRhYlN0b3AgdGFiID0gcnVsZXIuZmlyc3RUYWIoKTsgdGFiLmdldFR5cGUoKSAhPSBUYWJTdG9wLmtBdXRvOyB0YWIgPSBydWxlci5uZXh0VGFiKHBvcykpIHsKKyAgICAgICAgICAgIHBvcyA9IHRhYi5nZXRQb3NpdGlvbigpOworCisgICAgICAgICAgICBpZiAoIWFkZGVkICYmIHBvcyA+PSB0YWJUb0FkZC5nZXRQb3NpdGlvbigpKSB7CisgICAgICAgICAgICAgICAgaWYgKHBvcyA9PSB0YWJUb0FkZC5nZXRQb3NpdGlvbigpKQorICAgICAgICAgICAgICAgICAgICB0YWIgPSBudWxsOworICAgICAgICAgICAgICAgIHZlY3Rvci5hZGRFbGVtZW50KHRhYlRvQWRkKTsKKyAgICAgICAgICAgICAgICBhZGRlZCA9IHRydWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh0YWIgIT0gbnVsbCkKKyAgICAgICAgICAgICAgICB2ZWN0b3IuYWRkRWxlbWVudCh0YWIpOworICAgICAgICB9CisgICAgICAgIGlmICghYWRkZWQpCisgICAgICAgICAgICB2ZWN0b3IuYWRkRWxlbWVudCh0YWJUb0FkZCk7CisKKyAgICAgICAgcmV0dXJuIG5ldyBTdGFuZGFyZFRhYlJ1bGVyKHZlY3RvciwgcnVsZXIuYXV0b1NwYWNpbmcoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgdGFiIHJ1bGVyIGlkZW50aWNhbCB0byB0aGUgZ2l2ZW4gcnVsZXIsIGV4Y2VwdCB3aXRoIHRoZQorICAgICAqIGdpdmVuIHRhYiByZW1vdmVkLgorICAgICAqIEBwYXJhbSBydWxlciB0aGUgb3JpZ2luYWwgcnVsZXIuICBUaGUgTVRhYlJ1bGVyIHdpbGwgYmUgdGhlIHNhbWUgYXMKKyAgICAgKiAgIHRoaXMgZXhjZXB0IGZvciB0aGUgcmVtb3ZlZCB0YWIuICA8Y29kZT5ydWxlcjwvY29kZT4gaXMgbm90IG1vZGlmaWVkLgorICAgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgcG9zaXRpb24gb2YgdGhlIHRhYiB0byByZW1vdmUgZnJvbSB0aGUgbmV3IHRhYiBydWxlcgorICAgICAqIEByZXR1cm4gYW4gTVRhYlJ1bGVyIHJlc3VsdGluZyBmcm9tIHRoaXMgb3BlcmF0aW9uCisgICAgICovCisgICAgLypwdWJsaWMqLyBzdGF0aWMgTVRhYlJ1bGVyIHJlbW92ZVRhYkZyb21SdWxlcihNVGFiUnVsZXIgcnVsZXIsIGludCBwb3NpdGlvbikKKyAgICB7CisgICAgICAgIGlmIChydWxlciA9PSBudWxsKQorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigicnVsZXIgbWF5IG5vdCBiZSBudWxsIik7CisKKyAgICAgICAgVmVjdG9yIHZlY3RvciA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICBpbnQgcG9zID0gMDsKKyAgICAgICAgYm9vbGVhbiByZW1vdmVkID0gZmFsc2U7CisgICAgICAgIGZvciAoVGFiU3RvcCB0YWIgPSBydWxlci5maXJzdFRhYigpOyB0YWIuZ2V0VHlwZSgpICE9IFRhYlN0b3Aua0F1dG87IHRhYiA9IHJ1bGVyLm5leHRUYWIocG9zKSkgeworICAgICAgICAgICAgcG9zID0gdGFiLmdldFBvc2l0aW9uKCk7CisKKyAgICAgICAgICAgIGlmICghcmVtb3ZlZCAmJiBwb3MgPj0gcG9zaXRpb24pIHsKKyAgICAgICAgICAgICAgICBpZiAocG9zID09IHBvc2l0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgIHJlbW92ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsgLy8gc2tpcCB0aGlzIHRhYiBhbmQgY29udGludWUgd2l0aCB0aGUgcmVtYWluZGVyCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOyAvLyB3ZSBkaWRuJ3QgcmVtb3ZlIGEgdGFiLCBidXQgc2tpcHBlZCBwb3NpdGlvbiwgc28gZG9uJ3QgYm90aGVyIHdpdGggdGhlIHJlc3QKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdmVjdG9yLmFkZEVsZW1lbnQodGFiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIXJlbW92ZWQpIC8vIG5vIGNoYW5nZQorICAgICAgICAgICAgcmV0dXJuIHJ1bGVyOworCisgICAgICAgIGlmICh2ZWN0b3Iuc2l6ZSgpID09IDApCisgICAgICAgICAgICByZXR1cm4gbmV3IFN0YW5kYXJkVGFiUnVsZXIocnVsZXIuYXV0b1NwYWNpbmcoKSk7CisKKyAgICAgICAgcmV0dXJuIG5ldyBTdGFuZGFyZFRhYlJ1bGVyKHZlY3RvciwgcnVsZXIuYXV0b1NwYWNpbmcoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgdGFiIHJ1bGVyIGlkZW50aWNhbCB0byB0aGUgZ2l2ZW4gcnVsZXIsIGV4Y2VwdCB3aXRoIHRoZQorICAgICAqIHRhYiBhdCBwb3NpdGlvbiA8Y29kZT5mcm9tUG9zaXRpb248L2NvZGU+IG1vdmVkIHRvIHBvc2l0aW9uCisgICAgICogPGNvZGU+dG9Qb3NpdGlvbjwvY29kZT4uCisgICAgICogQHBhcmFtIHJ1bGVyIHRoZSBvcmlnaW5hbCBydWxlci4gIFRoZSBNVGFiUnVsZXIgd2lsbCBiZSB0aGUgc2FtZSBhcworICAgICAqICAgdGhpcyBleGNlcHQgZm9yIHRoZSBtb3ZlZCB0YWIuICA8Y29kZT5ydWxlcjwvY29kZT4gaXMgbm90IG1vZGlmaWVkLgorICAgICAqIEBwYXJhbSBmcm9tUG9zaXRpb24gdGhlIHBvc2l0aW9uIG9mIHRoZSB0YWIgdG8gbW92ZQorICAgICAqIEBwYXJhbSB0b1Bvc2l0aW9uIHRoZSBuZXcgcG9zaXRpb24gb2YgdGhlIHRhYgorICAgICAqIEByZXR1cm4gYW4gTVRhYlJ1bGVyIHJlc3VsdGluZyBmcm9tIHRoaXMgb3BlcmF0aW9uCisgICAgICovCisgICAgLypwdWJsaWMqLyBzdGF0aWMgTVRhYlJ1bGVyIG1vdmVUYWJPblJ1bGVyKE1UYWJSdWxlciBydWxlciwgaW50IGZyb21Qb3NpdGlvbiwgaW50IHRvUG9zaXRpb24pCisgICAgeworICAgICAgICBpZiAocnVsZXIgPT0gbnVsbCkKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oInJ1bGVyIG1heSBub3QgYmUgbnVsbCIpOworCisgICAgICAgIFZlY3RvciB2ZWN0b3IgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgaW50IHBvcyA9IDA7CisgICAgICAgIGJvb2xlYW4gbW92ZWQgPSBmYWxzZTsKKyAgICAgICAgZm9yIChUYWJTdG9wIHRhYiA9IHJ1bGVyLmZpcnN0VGFiKCk7IHRhYi5nZXRUeXBlKCkgIT0gVGFiU3RvcC5rQXV0bzsgdGFiID0gcnVsZXIubmV4dFRhYihwb3MpKSB7CisgICAgICAgICAgICBwb3MgPSB0YWIuZ2V0UG9zaXRpb24oKTsKKworICAgICAgICAgICAgaWYgKCFtb3ZlZCAmJiBwb3MgPT0gZnJvbVBvc2l0aW9uKSB7CisgICAgICAgICAgICAgICAgbW92ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIHRhYiA9IG5ldyBUYWJTdG9wKHRvUG9zaXRpb24sIHRhYi5nZXRUeXBlKCkpOyAvLyBjb3B5IGl0CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZlY3Rvci5hZGRFbGVtZW50KHRhYik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFtb3ZlZCkgLy8gbm8gY2hhbmdlCisgICAgICAgICAgICByZXR1cm4gcnVsZXI7CisKKyAgICAgICAgcmV0dXJuIG5ldyBTdGFuZGFyZFRhYlJ1bGVyKHZlY3RvciwgcnVsZXIuYXV0b1NwYWNpbmcoKSk7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L1N0eWxlQnVmZmVyLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L1N0eWxlQnVmZmVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTYyYWJlNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvU3R5bGVCdWZmZXIuamF2YQpAQCAtMCwwICsxLDY3MSBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogU3R5bGVCdWZmZXIuamF2YSx2ICQgJFJldmlzaW9uOiAxLjIgJCAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNjozNiAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQ7CisKK2ltcG9ydCBqYXZhLmlvLkV4dGVybmFsaXphYmxlOworaW1wb3J0IGphdmEuaW8uT2JqZWN0SW5wdXQ7CitpbXBvcnQgamF2YS5pby5PYmplY3RPdXRwdXQ7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKKworLyoKKyAgICA4LzIvOTYKKyAgICAgICAgQWRkZWQgc2V0SXRlcmF0b3JVc2luZ1J1biBtZXRob2QKKworICAgIDgvNS85NgorICAgICAgICBObyBsb25nZXIgaGFzIHRvIGJlIGNvbnN0cnVjdGVkIHdpdGggYW4gTVRleHQuCisKKyAgICA4LzgvOTYKKyAgICAgICAgQWRkZWQgcmVwbGFjZSBtZXRob2QsIHdoaWNoIHJlYWRzIHN0eWxlcyBmcm9tIGEgU3R5bGVSdW5JdGVyYXRvci4KKyAgICAgICAgQWxzbywgYWRkZWQgYSBjb25zdHJ1Y3RvciB3aGljaCB0YWtlcyBhIFN0eWxlUnVuSXRlcmF0b3IuCisgICAgICAgIFRoZXNlIG1ldGhvZHMgYXJlIGZvciBjb3B5L3Bhc3RlIHN1cHBvcnQuCisgICAgOC8xNi85NgorICAgICAgICBTdHlsZUJ1ZmZlciBub3cgdGFrZXMgTUNvbnN0VGV4dCBpbnN0ZWFkIG9mIE1UZXh0IHdoZXJlIHBvc3NpYmxlLgorCisgICAgMTAvMjMvOTYKKyAgICAgICAgU29tZSBvbGQgY29tbWVudGVkLW91dCBjb2RlIHJlbW92ZWQgZm9yIGFlc3RoZXRpYyByZWFzb25zLgorCisgICAgNy8zMS85OCBTd2l0Y2hlZCB0byBBdHRyaWJ1dGVNYXAKKyovCisKKy8qKgorKiBTdHlsZUJ1ZmZlciBpbXBsZW1lbnRzIDx0dD5NU3R5bGVCdWZmZXI8L3R0Pi4gIEl0IG1haW50YWlucworKiA8dHQ+QXR0cmlidXRlTWFwPC90dD4gb2JqZWN0cyB0byBhcHBseSB0byB0aGUgdGV4dCBpbiBhbiA8dHQ+TVRleHQ8L3R0PiBvYmplY3QsCisqIGFuZCB0aGUKKyogaW50ZXJ2YWxzIG9uIHdoaWNoIHRob3NlIHN0eWxlcyBhcHBseS4KKyogPHA+CisqIFN0eWxlQnVmZmVyIHN0b3JlcyB0aGUgaW50ZXJ2YWxzIG9uIHdoaWNoIHN0eWxlcyBhcHBseSBpbiBhIDx0dD5SdW5BcnJheTwvdHQ+CisqIG9iamVjdCAoc2VlIDx0dD5SdW5BcnJheTwvdHQ+IGZvciBtb3JlIGluZm9ybWF0aW9uKS4gIFRoZSBzdHlsZXMgYXJlIHN0b3JlZCBpbgorKiBhbiBhcnJheSBvZiA8dHQ+QXR0cmlidXRlTWFwPC90dD4gb2JqZWN0cy4KKyogPHA+CisqIDx0dD5SdW5BcnJheTwvdHQ+IG1haW50YWlucyBhbiBhcnJheSBvZiBpbnRlZ2VycyB3aGljaCByZXByZXNlbnQgb2Zmc2V0cyBpbnRvIHRleHQuCisqIFRoZSBhcnJheSBoYXMgYSAicG9zaXRpdmUiIHJlZ2lvbiBpbiB3aGljaCBvZmZzZXRzIGFyZSBnaXZlbiBhcyBwb3NpdGl2ZSBkaXN0YW5jZXMKKyogZnJvbSB0aGUgc3RhcnQgb2YgdGhlIHRleHQsIGFuZCBhICJuZWdhdGl2ZSIgcmVnaW9uIGluIHdoaWNoIG9mZnNldHMgYXJlIGdpdmVuIGFzCisqIG5lZ2F0aXZlIGRpc3RhbmNlcyBmcm9tIHRoZSBlbmQgb2YgdGhlIHRleHQuICBCZXR3ZWVuIHRoZSBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgcmVnaW9ucworKiBpcyBhIGdhcCwgaW50byB3aGljaCBuZXcgb2Zmc2V0cyBtYXkgYmUgaW5zZXJ0ZWQuICBUaGlzIHN0b3JhZ2Ugc2NoZW1lIGFsbG93cyBmb3IKKyogZWZmaWNpZW50IHJlc3BvbnNlIHRvIGEgc2VyaWVzIG9mIGVkaXRpbmcgb3BlcmF0aW9ucyB3aGljaCBvY2N1ciBpbiB0aGUgc2FtZSBhcmVhIG9mIHRoZQorKiB0ZXh0LgorKiA8cD4KKyogU3R5bGVCdWZmZXIgdXNlcyB0aGUgb2Zmc2V0cyBpbiA8dHQ+UnVuQXJyYXk8L3R0PiBhcyB0aGUgYm91bmRhcmllcyBvZiBzdHlsZSBydW5zLgorKiBBIHN0eWxlIHJ1biBiZWdpbnMgYXQgZWFjaCBvZmZzZXQgaW4gPHR0PlJ1bkFycmF5PC90dD4sIGFuZCBlYWNoIHN0eWxlIHJ1biBjb250aW51ZXMgdG8KKyogdGhlIG5leHQgb2Zmc2V0LiAgVGhlIHN0eWxlIGFycmF5IGlzIGtlcHQgaW4gc3luYyB3aXRoIHRoZSBhcnJheSBvZiBvZmZzZXRzIGluIDx0dD5SdW5BcnJheTwvdHQ+OworKiB0aGF0IGlzLCB0aGUgc3R5bGUgd2hpY2ggYmVnaW5zIGF0IFJ1bkFycmF5W2ldIGlzIHN0b3JlZCBpbiBTdHlsZUFycmF5W2ldLgorKiA8cD4KKyogVGhlIGZpcnN0IGVudHJ5IGluIHRoZSA8dHQ+UnVuQXJyYXk8L3R0PiBpcyBhbHdheXMgMC4KKyoKKyogQGF1dGhvciBKb2huIFJhbGV5CisqCisqIEBzZWUgQXR0cmlidXRlTWFwCisqIEBzZWUgTVRleHQKKyogQHNlZSBSdW5BcnJheQorKi8KKworZmluYWwgY2xhc3MgU3R5bGVCdWZmZXIgZXh0ZW5kcyBNU3R5bGVCdWZmZXIgaW1wbGVtZW50cyBFeHRlcm5hbGl6YWJsZSB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIC8qKgorICAgICogQ3JlYXRlcyBhIG5ldyBzdHlsZSBidWZmZXIgd2l0aCBsZW5ndGggZXF1YWwgdG8gdGhlIGxlbmd0aCBvZiA8dHQ+dGV4dDwvdHQ+LAorICAgICogYW5kIHdpdGggYSBzaW5nbGUgcnVuIG9mIDx0dD5kZWZhdWx0U3R5bGU8L3R0Pi4KKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDIyMzU2OTM0OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENVUlJFTlRfVkVSU0lPTiA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGtJbml0aWFsU2l6ZSA9IDEwOworICAgIHByaXZhdGUgUnVuQXJyYXkgZlJ1bkFycmF5OworCisgICAgcHJpdmF0ZSBBdHRyaWJ1dGVNYXAgZlN0eWxlVGFibGVbXTsKKworICAgIFN0eWxlQnVmZmVyKE1Db25zdFRleHQgdGV4dCwgQXR0cmlidXRlTWFwIGluaXRpYWxTdHlsZSkgeworCisgICAgICAgIHRoaXModGV4dC5sZW5ndGgoKSwgaW5pdGlhbFN0eWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIENyZWF0ZXMgYSBuZXcgc3R5bGUgYnVmZmVyIHdpdGggbGVuZ3RoIDx0dD5pbml0aWFsTGVuZ3RoPC90dD4gYW5kIHdpdGggYQorICAgICogc2luZ2xlIHJ1biBvZiA8dHQ+ZGVmYXVsdFN0eWxlPC90dD4uCisgICAgKi8KKworICAgIFN0eWxlQnVmZmVyKGludCBpbml0aWFsTGVuZ3RoLCBBdHRyaWJ1dGVNYXAgaW5pdGlhbFN0eWxlKSB7CisKKyAgICAgICAgZlJ1bkFycmF5ID0gbmV3IFJ1bkFycmF5KGtJbml0aWFsU2l6ZSwgaW5pdGlhbExlbmd0aCk7CisgICAgICAgIGZSdW5BcnJheS5mUG9zRW5kID0gMDsKKyAgICAgICAgZlJ1bkFycmF5LmZSdW5TdGFydFswXSA9IDA7CisKKyAgICAgICAgZlN0eWxlVGFibGUgPSBuZXcgQXR0cmlidXRlTWFwW2tJbml0aWFsU2l6ZV07IC8vIGRvIEkgcmVhbGx5IHdhbnQgdG8gZG8gdGhpcz8/PworCisgICAgICAgIGZTdHlsZVRhYmxlWzBdID0gaW5pdGlhbFN0eWxlOworICAgIH0KKworICAgIC8qKgorICAgICAqIE5vdGU6IHRoaXMgY29uc3RydWN0b3IgaXMgT05MWSBmb3IgdXNlIGJ5IHRoZSBTZXJpYWxpemF0aW9uCisgICAgICogbWVjaGFuaXNtLiAgSXQgZG9lcyBub3QgbGVhdmUgdGhpcyBvYmplY3QgaW4gYSB2YWxpZCBzdGF0ZSEKKyAgICAgKi8KKyAgICBwdWJsaWMgU3R5bGVCdWZmZXIoKSB7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGVFeHRlcm5hbChPYmplY3RPdXRwdXQgb3V0KSB0aHJvd3MgSU9FeGNlcHRpb24geworCisgICAgICAgIGNvbXByZXNzKCk7CisgICAgICAgIG91dC53cml0ZUludChDVVJSRU5UX1ZFUlNJT04pOworICAgICAgICBvdXQud3JpdGVPYmplY3QoZlJ1bkFycmF5KTsKKyAgICAgICAgb3V0LndyaXRlT2JqZWN0KGZTdHlsZVRhYmxlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCByZWFkRXh0ZXJuYWwoT2JqZWN0SW5wdXQgaW4pIHRocm93cyBJT0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzTm90Rm91bmRFeGNlcHRpb24geworCisgICAgICAgIGlmIChpbi5yZWFkSW50KCkgIT0gQ1VSUkVOVF9WRVJTSU9OKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oIkludmFsaWQgdmVyc2lvbiBvZiBTdHlsZUJ1ZmZlciIpOworICAgICAgICB9CisgICAgICAgIGZSdW5BcnJheSA9IChSdW5BcnJheSkgaW4ucmVhZE9iamVjdCgpOworICAgICAgICBmU3R5bGVUYWJsZSA9IChBdHRyaWJ1dGVNYXBbXSkgaW4ucmVhZE9iamVjdCgpOworICAgIH0KKworLyoqCisqIFNoaWZ0IHN0eWxlIGFuZCBydW4gdGFibGVzIHN1Y2ggdGhhdCB0aGUgbGFzdCBwb3NpdGl2ZSBydW4gYmVnaW5zIGJlZm9yZSB0aGUgZ2l2ZW4gcG9zaXRpb24uCisqIFNpbmNlIHRoZXJlIGlzIGFsd2F5cyBhIHJ1biBzdGFydCBhdCAwLCB0aGlzIG1ldGhvZCBlbnN1cmVzIHRoYXQgdGhlIGZpcnN0IHJ1biB3aWxsIG5vdCBiZSBzaGlmdGVkLgorKiBUaGlzIGlzIGNhbGxlZCBieTogPHR0Pmluc2VydFRleHQ8L3R0PiBhbmQgPHR0PmRlbGV0ZVRleHQ8L3R0Pi4KKyogQHBhcmFtIHBvcyBhIHBvc2l0aW9uIGluIHRoZSB0ZXh0LgorKi8KKworICAgIHByaXZhdGUgdm9pZCBzaGlmdFRhYmxlVG8oaW50IHBvcykgeworCisgICAgICAgIGlmIChwb3MgPT0gMCkKKyAgICAgICAgICAgIHBvcyA9IDE7CisKKyAgICAgICAgaW50IG9sZE5lZ1N0YXJ0ID0gZlJ1bkFycmF5LmZOZWdTdGFydDsKKyAgICAgICAgaW50IG9sZFBvc0VuZCA9IGZSdW5BcnJheS5mUG9zRW5kOworCisgICAgICAgIGZSdW5BcnJheS5zaGlmdFRhYmxlVG8ocG9zKTsKKworICAgICAgICBpZiAob2xkUG9zRW5kID4gZlJ1bkFycmF5LmZQb3NFbmQpCisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGZTdHlsZVRhYmxlLCBmUnVuQXJyYXkuZlBvc0VuZCsxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmU3R5bGVUYWJsZSwgZlJ1bkFycmF5LmZOZWdTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkUG9zRW5kLWZSdW5BcnJheS5mUG9zRW5kKTsKKyAgICAgICAgZWxzZSBpZiAob2xkTmVnU3RhcnQgPCBmUnVuQXJyYXkuZk5lZ1N0YXJ0KQorICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShmU3R5bGVUYWJsZSwgb2xkTmVnU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZTdHlsZVRhYmxlLCBvbGRQb3NFbmQrMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlJ1bkFycmF5LmZOZWdTdGFydC1vbGROZWdTdGFydCk7CisgICAgfQorCisvKioKKyogVXBkYXRlIHRoZSBzdHlsZSB0YWJsZSB0byByZWZsZWN0IGEgY2hhbmdlIGluIHRoZSBSdW5BcnJheSdzIHNpemUuCisqLworICAgIHByaXZhdGUgdm9pZCBoYW5kbGVBcnJheVJlc2l6ZShpbnQgb2xkTmVnU3RhcnQpIHsKKworICAgICAgICBBdHRyaWJ1dGVNYXAgbmV3U3R5bGVUYWJsZVtdID0gbmV3IEF0dHJpYnV0ZU1hcFtmUnVuQXJyYXkuZ2V0QXJyYXlMZW5ndGgoKV07CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoZlN0eWxlVGFibGUsIDAsIG5ld1N0eWxlVGFibGUsIDAsIGZSdW5BcnJheS5mUG9zRW5kKzEpOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGZTdHlsZVRhYmxlLCBvbGROZWdTdGFydCwgbmV3U3R5bGVUYWJsZSwgZlJ1bkFycmF5LmZOZWdTdGFydCwgKGZSdW5BcnJheS5nZXRBcnJheUxlbmd0aCgpLWZSdW5BcnJheS5mTmVnU3RhcnQpKTsKKyAgICAgICAgZlN0eWxlVGFibGUgPSBuZXdTdHlsZVRhYmxlOworICAgIH0KKworLyoqCisqIE1pbmltaXplIHRoZSBhbW91bnQgb2Ygc3RvcmFnZSB1c2VkIGJ5IHRoaXMgb2JqZWN0LgorKi8KKyAgICB2b2lkIGNvbXByZXNzKCkgeworCisgICAgICAgIGludCBvbGROZWdTdGFydCA9IGZSdW5BcnJheS5mTmVnU3RhcnQ7CisgICAgICAgIGZSdW5BcnJheS5jb21wcmVzcygpOworICAgICAgICBpZiAoZlJ1bkFycmF5LmZOZWdTdGFydCAhPSBvbGROZWdTdGFydCkgeworICAgICAgICAgICAgaGFuZGxlQXJyYXlSZXNpemUob2xkTmVnU3RhcnQpOworICAgICAgICB9CisgICAgfQorCisvKioKKyogSW5jcmVhc2UgdGhlIHN0b3JhZ2UgY2FwYWNpdHkgb2YgdGhlIHN0eWxlIGFuZCBydW4gdGFibGVzIGlmIG5vIHJvb20gcmVtYWlucy4KKyovCisgICAgcHJpdmF0ZSB2b2lkIGV4cGFuZFN0eWxlVGFibGVJZkZ1bGwoKSB7CisKKyAgICAgICAgaWYgKGZSdW5BcnJheS5mUG9zRW5kICsgMSA9PSBmUnVuQXJyYXkuZk5lZ1N0YXJ0KSB7CisKKyAgICAgICAgICAgIGludCBvbGROZWdTdGFydCA9IGZSdW5BcnJheS5mTmVnU3RhcnQ7CisgICAgICAgICAgICBmUnVuQXJyYXkuZXhwYW5kUnVuVGFibGUoKTsKKyAgICAgICAgICAgIGhhbmRsZUFycmF5UmVzaXplKG9sZE5lZ1N0YXJ0KTsKKyAgICAgICAgfQorICAgIH0KKworLyoKKyAgICBwdWJsaWMgTVN0eWxlUnVuSXRlcmF0b3IgY3JlYXRlU3R5bGVSdW5JdGVyYXRvcihpbnQgc3RhcnQsIGludCBsaW1pdCkgeworCisgICAgICAgIHJldHVybiBuZXcgU3R5bGVSdW5JdGVyYXRvcihzdGFydCwgbGltaXQpOworICAgIH0KKyovCisvKioKKyogUmVzcG9uZCB0byBhbiBpbnNlcnRpb24gaW4gdGhlIHRleHQuICBUaGUgbGVuZ3RoIG9mIHRoZSBsYXN0IHN0eWxlIHJ1biB3aGljaAorKiBiZWdpbnMgYmVmb3JlIDx0dD5zdGFydDwvdHQ+IGlzIGluY3JlYXNlZCBieSA8dHQ+bGVuZ3RoPC90dD4uICBUaGUgcnVuIHRhYmxlCisqIGlzIHNoaWZ0ZWQgc3VjaCB0aGF0IHRoZSBydW4gaW50byB3aGljaCB0ZXh0IHdhcyBpbnNlcnRlZCBpcyB0aGUgbGFzdCBwb3NpdGl2ZSBydW4uCisqIFRoaXMgaW1wbGVtZW50YXRpb24gYXNzdW1lcyB0aGF0IGFsbCBzdHlsZXMgcHJvcG9nYXRlLgorKiBAcGFyYW0gc3RhcnQgdGhlIG9mZnNldCB3aGVyZSB0aGUgaW5zZXJ0aW9uIGJlZ2FuCisqIEBwYXJhbSBsZW5ndGggdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIGluc2VydGVkCisqLworICAgIHB1YmxpYyB2b2lkIGluc2VydFRleHQoaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKworICAgICAgICBzaGlmdFRhYmxlVG8oc3RhcnQpOworICAgICAgICBmUnVuQXJyYXkuYWRkVG9DdXJUZXh0TGVuZ3RoKGxpbWl0IC0gc3RhcnQpOworICAgIH0KKworLyoqCisqIFJlc3BvbmQgdG8gYSBkZWxldGlvbiBpbiB0aGUgdGV4dC4gIFRoZSBsYXN0IHN0eWxlIHJ1biBiZWZvcmUKKyogPHR0PnN0YXJ0PC90dD4gaXMgdHJ1bmNhdGVkIHRvIGVuZCBhdCA8dHQ+c3RhcnQ8L3R0Pi4gIFRoZQorKiBzdHlsZSBydW4gY29udGFpbmluZyAoPHR0PnN0YXJ0PC90dD4rPHR0Pmxlbmd0aDwvdHQ+KSBpcyBzZXQgdG8gYmVnaW4KKyogYXQgKDx0dD5zdGFydDwvdHQ+Kzx0dD5sZW5ndGg8L3R0PikuICBSdW5zIGluIGJldHdlZW4gYXJlIGRlbGV0ZWQuCisqIElmIHRoZSBkZWxldGlvbiBvY2N1cnMgZW50aXJlbHkgd2l0aGluIG9uZSBzdHlsZSBydW4sIHRoZSBsZW5ndGggb2YgdGhlIHN0eWxlCisqIHJ1biBpcyByZWR1Y2VkIGJ5IDx0dD5sZW5ndGg8L3R0Pi4KKyogVGhpcyBpbXBsZW1lbnRhdGlvbiBhc3N1bWVzIHRoYXQgYWxsIHN0eWxlcyBwcm9wb2dhdGUuCisqIFRoaXMgbWV0aG9kIHNoaWZ0cyB0aGUgcnVuIHRhYmxlIHN1Y2ggdGhhdCB0aGUgcnVuIGluIHdoaWNoIHRoZSBkZWxldGUgYmVnYW4KKyogaXMgdGhlIGxhc3QgcG9zaXRpdmUgcnVuLiAgT3RoZXIgbWV0aG9kcyBkZXBlbmQgb24gdGhpcyAic2lkZSBlZmZlY3QiLgorKiBAcGFyYW0gc3RhcnQgdGhlIG9mZnNldCB3aGVyZSB0aGUgZGVsZXRpb24gYmVnYW4KKyogQHBhcmFtIGxlbmd0aCB0aGUgb2Zmc2V0IHdoZXJlIHRoZSBkZWxldGlvbiBzdG9wcGVkCisqLworICAgIHB1YmxpYyB2b2lkIGRlbGV0ZVRleHQoaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKworICAgICAgICBpbnQgbGVuZ3RoID0gbGltaXQgLSBzdGFydDsKKworICAgICAgICAvLyBBbiBvcHRpbWl6YXRpb24gLSBpZiBhIHdob2xlIHJ1biB3YXNuJ3QgZGVsZXRlZCB3ZSBkb24ndAorICAgICAgICAvLyBuZWVkIHRvIGNoZWNrIGZvciBydW4gbWVyZ2luZywgd2hpY2ggY291bGQgYmUgZXhwZW5zaXZlLgorICAgICAgICBib29sZWFuIHdob2xlUnVuRGVsZXRlZCA9IGZhbHNlOworCisgICAgICAgIHNoaWZ0VGFibGVUbyhzdGFydCk7CisKKyAgICAgICAgaW50IGZpcnN0UnVuTGltaXQgPSBmUnVuQXJyYXkuZ2V0Q3VyVGV4dExlbmd0aCgpOworICAgICAgICBpZiAoZlJ1bkFycmF5LmZOZWdTdGFydCA8IGZSdW5BcnJheS5nZXRBcnJheUxlbmd0aCgpKQorICAgICAgICAgICAgZmlyc3RSdW5MaW1pdCArPSBmUnVuQXJyYXkuZlJ1blN0YXJ0W2ZSdW5BcnJheS5mTmVnU3RhcnRdOworCisgICAgICAgIGlmIChsaW1pdCA9PSBmUnVuQXJyYXkuZ2V0Q3VyVGV4dExlbmd0aCgpKSB7CisgICAgICAgICAgICBmUnVuQXJyYXkuZk5lZ1N0YXJ0ID0gZlJ1bkFycmF5LmdldEFycmF5TGVuZ3RoKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAobGltaXQgPj0gZmlyc3RSdW5MaW1pdCkgeworCisgICAgICAgICAgICBpbnQgZW5kID0gZlJ1bkFycmF5LmZpbmRSdW5Db250YWluaW5nKGxpbWl0KTsKKyAgICAgICAgICAgIGlmIChlbmQgIT0gZlJ1bkFycmF5LmZQb3NFbmQpIHsKKyAgICAgICAgICAgICAgICBmUnVuQXJyYXkuZlJ1blN0YXJ0W2VuZF0gPSBsaW1pdCAtIGZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgZlJ1bkFycmF5LmZOZWdTdGFydCA9IGVuZDsKKyAgICAgICAgICAgICAgICB3aG9sZVJ1bkRlbGV0ZWQgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKGZSdW5BcnJheS5mTmVnU3RhcnQgIT0gZlJ1bkFycmF5LmdldEFycmF5TGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGlmIChzdGFydCA9PSAwICYmIGxpbWl0ID49IGZpcnN0UnVuTGltaXQpIHsKKyAgICAgICAgICAgICAgICAvLyB0aGUgZmlyc3Qgc3R5bGUgcnVuIHdhcyBkZWxldGVkOyAgbW92ZSBmaXJzdCAibmVnYXRpdmUiIHJ1biBpbnRvCisgICAgICAgICAgICAgICAgLy8gZmlyc3QgcG9zaXRpb24KKyAgICAgICAgICAgICAgICBmU3R5bGVUYWJsZVswXSA9IGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mTmVnU3RhcnQrK107CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmICh3aG9sZVJ1bkRlbGV0ZWQpIHsKKyAgICAgICAgICAgICAgICBpZiAoZlN0eWxlVGFibGVbZlJ1bkFycmF5LmZOZWdTdGFydF0uZXF1YWxzKGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mUG9zRW5kXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gbWVyZ2Ugc3R5bGUgcnVucworICAgICAgICAgICAgICAgICAgICBmUnVuQXJyYXkuZk5lZ1N0YXJ0Kys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZlJ1bkFycmF5LmFkZFRvQ3VyVGV4dExlbmd0aCgtbGVuZ3RoKTsKKworICAgICAgICBmUnVuQXJyYXkucnVuU3RhcnRzQ2hhbmdlZCgpOworICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiSW4gZGVsZXRlVGV4dDogIG51bWJlciBvZiBzdHlsZSBydW5zID0gIiArIG51bVJ1bnModGhpcykpOworICAgIH0KKworLyoqCisqIEFycmFuZ2Ugc3R5bGUgdGFibGUgc28gdGhhdCBvbGQgc3R5bGVzIGluIHRoZSBwcm92aWRlZCByYW5nZSBhcmUgcmVtb3ZlZCwgYW5kCisqIG5ldyBzdHlsZXMgY2FuIGJlIGluc2VydGVkIGludG8gdGhlIGluc2VydGlvbiBnYXAuCisqIEFmdGVyIGNhbGxpbmcgdGhpcyBtZXRob2QsIG5ldyBzdHlsZSBzdGFydHMgYW5kIHN0eWxlcyBtYXkgYmUgcGxhY2VkCisqIGluIHRoZSBpbnNlcnRpb24gZ2FwcyBvZiBmUnVuQXJyYXkuZlN0eWxlU3RhcnQgYW5kIGZTdHlsZVRhYmxlLgorKiBAcGFyYW0gc3RhcnQgb2Zmc2V0IGluIHRoZSB0ZXh0IHdoZXJlIGluc2VydGlvbiBvcGVyYXRpb24gYmVnaW5zCisqIEBwYXJhbSBsaW1pdCBvZmZzZXQgaW4gdGhlIHRleHQgd2hlcmUgcHJldmlvdXMgc3R5bGVzIHJlc3VtZQorKi8KKyAgICBwcml2YXRlIHZvaWQgcHJlcGFyZVN0eWxlSW5zZXJ0KGludCBzdGFydCkgeworCisgICAgICAgIGlmIChzdGFydCA9PSAwKSB7CisKKyAgICAgICAgICAgIC8vIGZSdW5BcnJheS5mUG9zRW5kIHNob3VsZCBiZSAwIGlmIHdlJ3JlIGluIHRoaXMgYnJhbmNoLgorCisgICAgICAgICAgICBpZiAoZlJ1bkFycmF5LmdldEN1clRleHRMZW5ndGgoKSA+IDApIHsKKworICAgICAgICAgICAgICAgIC8qIE1vdmUgZmlyc3QgZXhpc3Rpbmcgc3R5bGUgcnVuIHRvIG5lZ2F0aXZlIGVuZCBvZiBidWZmZXIuCisgICAgICAgICAgICAgICAgICAgRG9uJ3QgZG8gdGhpcyBpZiBsZW5ndGg9PTA7ICB0aGF0IGlzLCBpZiB0aGVyZSBpcyBubyByZWFsCisgICAgICAgICAgICAgICAgICAgc3R5bGUgcnVuIGF0IDAuCisgICAgICAgICAgICAgICAgICovCisKKyAgICAgICAgICAgICAgICBmUnVuQXJyYXkuZk5lZ1N0YXJ0LS07CisgICAgICAgICAgICAgICAgZlN0eWxlVGFibGVbZlJ1bkFycmF5LmZOZWdTdGFydF0gPSBmU3R5bGVUYWJsZVswXTsKKyAgICAgICAgICAgICAgICBmUnVuQXJyYXkuZlJ1blN0YXJ0W2ZSdW5BcnJheS5mTmVnU3RhcnRdID0gLWZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZSdW5BcnJheS5mUG9zRW5kID0gLTE7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisKKyAgICAgICAgICAgIC8vIGNvbnNpc3RlbmN5IGNoZWNrOiBzdGFydCBzaG91bGQgYmUgaW4gY3VycmVudCBnYXAKKyAgICAgICAgICAgIGlmIChmUnVuQXJyYXkuZlJ1blN0YXJ0W2ZSdW5BcnJheS5mUG9zRW5kXSA+PSBzdGFydCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiSW5jb25zaXN0ZW50IHN0YXRlISAgU3RhcnQgc2hvdWxkIGJlIHdpdGhpbiBpbnNlcnRpb24gZ2FwLiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbnQgZW5kT2ZJbnNlcnRpb25HYXAgPSBmUnVuQXJyYXkuZ2V0Q3VyVGV4dExlbmd0aCgpOworICAgICAgICAgICAgaWYgKGZSdW5BcnJheS5mTmVnU3RhcnQgPCBmUnVuQXJyYXkuZ2V0QXJyYXlMZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGVuZE9mSW5zZXJ0aW9uR2FwICs9IGZSdW5BcnJheS5mUnVuU3RhcnRbZlJ1bkFycmF5LmZOZWdTdGFydF07CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChlbmRPZkluc2VydGlvbkdhcCA8IHN0YXJ0KSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJJbmNvbnNpc3RlbnQgc3RhdGUhICBTdGFydCBzaG91bGQgYmUgd2l0aGluIGluc2VydGlvbiBnYXAuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGlmIG5vIGJyZWFrIGF0IHN0YXJ0IChvbiBuZWdhdGl2ZSBlbmQgb2YgYnVmZmVyKSBtYWtlIG9uZQorCisgICAgICAgICAgICBpZiAoZW5kT2ZJbnNlcnRpb25HYXAgIT0gc3RhcnQpIHsKKworICAgICAgICAgICAgICAgIC8vIHNwbGl0IHN0eWxlIHJ1biBpbiBpbnNlcnRpb24gZ2FwCisKKyAgICAgICAgICAgICAgICBleHBhbmRTdHlsZVRhYmxlSWZGdWxsKCk7CisKKyAgICAgICAgICAgICAgICBmUnVuQXJyYXkuZk5lZ1N0YXJ0LS07CisgICAgICAgICAgICAgICAgZlN0eWxlVGFibGVbZlJ1bkFycmF5LmZOZWdTdGFydF0gPSBmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZlBvc0VuZF07CisgICAgICAgICAgICAgICAgZlJ1bkFycmF5LmZSdW5TdGFydFtmUnVuQXJyYXkuZk5lZ1N0YXJ0XSA9IHN0YXJ0IC0gZlJ1bkFycmF5LmdldEN1clRleHRMZW5ndGgoKTsKKworICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJzcGxpdHRpbmcgcnVuLiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gbW9kaWZ5U3R5bGVzKGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHlsZU1vZGlmaWVyIG1vZGlmaWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBkYW1hZ2VkUmFuZ2UpIHsKKworICAgICAgICBpZiAobGltaXQgPT0gc3RhcnQpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHNoaWZ0VGFibGVUbyhzdGFydCk7CisKKyAgICAgICAgaW50IGN1cnJlbnRSdW5TdGFydCA9IHN0YXJ0OworICAgICAgICBBdHRyaWJ1dGVNYXAgb2xkU3R5bGU7CisgICAgICAgIEF0dHJpYnV0ZU1hcCBtZXJnZVN0eWxlID0gZlN0eWxlVGFibGVbZlJ1bkFycmF5LmZQb3NFbmRdOworCisgICAgICAgIGlmIChmUnVuQXJyYXkuZk5lZ1N0YXJ0IDwgZlJ1bkFycmF5LmdldEFycmF5TGVuZ3RoKCkgJiYKKyAgICAgICAgICAgICAgICBmUnVuQXJyYXkuZlJ1blN0YXJ0W2ZSdW5BcnJheS5mTmVnU3RhcnRdK2ZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCkgPT0gc3RhcnQpIHsKKworICAgICAgICAgICAgb2xkU3R5bGUgPSBmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZk5lZ1N0YXJ0XTsKKyAgICAgICAgICAgICsrZlJ1bkFycmF5LmZOZWdTdGFydDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG9sZFN0eWxlID0gbWVyZ2VTdHlsZTsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gbW9kaWZpZWRBbnl3aGVyZSA9IGZhbHNlOworICAgICAgICBmb3IoOzspIHsKKworICAgICAgICAgICAgYm9vbGVhbiBtb2RpZmllZCA9IGZhbHNlOworCisgICAgICAgICAgICAvLyBwdXNoIG5ldyBzdHlsZSBpbnRvIGdhcCBvbiBwb3NpdGl2ZSBzaWRlCisgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgbmV3U3R5bGUgPSBtb2RpZmllci5tb2RpZnlTdHlsZShvbGRTdHlsZSk7CisgICAgICAgICAgICBpZiAoZGFtYWdlZFJhbmdlICE9IG51bGwgJiYgIW5ld1N0eWxlLmVxdWFscyhvbGRTdHlsZSkpIHsKKyAgICAgICAgICAgICAgICBtb2RpZmllZCA9IG1vZGlmaWVkQW55d2hlcmUgPSB0cnVlOworICAgICAgICAgICAgICAgIGRhbWFnZWRSYW5nZVswXSA9IE1hdGgubWluKGN1cnJlbnRSdW5TdGFydCwgZGFtYWdlZFJhbmdlWzBdKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCFuZXdTdHlsZS5lcXVhbHMobWVyZ2VTdHlsZSkpIHsKKworICAgICAgICAgICAgICAgIGlmIChjdXJyZW50UnVuU3RhcnQgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBleHBhbmRTdHlsZVRhYmxlSWZGdWxsKCk7CisgICAgICAgICAgICAgICAgICAgICsrZlJ1bkFycmF5LmZQb3NFbmQ7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZlN0eWxlVGFibGVbZlJ1bkFycmF5LmZQb3NFbmRdID0gbmV3U3R5bGU7CisgICAgICAgICAgICAgICAgZlJ1bkFycmF5LmZSdW5TdGFydFtmUnVuQXJyYXkuZlBvc0VuZF0gPSBjdXJyZW50UnVuU3RhcnQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG1lcmdlU3R5bGUgPSBuZXdTdHlsZTsKKworICAgICAgICAgICAgaW50IG5leHRSdW5TdGFydCA9IGZSdW5BcnJheS5nZXRMb2dpY2FsUnVuU3RhcnQoZlJ1bkFycmF5LmZOZWdTdGFydCk7CisKKyAgICAgICAgICAgIGlmIChsaW1pdCA+IG5leHRSdW5TdGFydCkgeworICAgICAgICAgICAgICAgIG9sZFN0eWxlID0gZlN0eWxlVGFibGVbZlJ1bkFycmF5LmZOZWdTdGFydF07CisgICAgICAgICAgICAgICAgY3VycmVudFJ1blN0YXJ0ID0gbmV4dFJ1blN0YXJ0OworICAgICAgICAgICAgICAgIGlmIChtb2RpZmllZCkgeworICAgICAgICAgICAgICAgICAgICBkYW1hZ2VkUmFuZ2VbMV0gPSBNYXRoLm1heChjdXJyZW50UnVuU3RhcnQsIGRhbWFnZWRSYW5nZVsxXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICsrZlJ1bkFycmF5LmZOZWdTdGFydDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChsaW1pdCA8IG5leHRSdW5TdGFydCAmJiAhb2xkU3R5bGUuZXF1YWxzKG1lcmdlU3R5bGUpKSB7CisgICAgICAgICAgICAgICAgICAgIGV4cGFuZFN0eWxlVGFibGVJZkZ1bGwoKTsKKyAgICAgICAgICAgICAgICAgICAgKytmUnVuQXJyYXkuZlBvc0VuZDsKKyAgICAgICAgICAgICAgICAgICAgZlN0eWxlVGFibGVbZlJ1bkFycmF5LmZQb3NFbmRdID0gb2xkU3R5bGU7CisgICAgICAgICAgICAgICAgICAgIGZSdW5BcnJheS5mUnVuU3RhcnRbZlJ1bkFycmF5LmZQb3NFbmRdID0gbGltaXQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChtb2RpZmllZCkgeworICAgICAgICAgICAgICAgICAgICBkYW1hZ2VkUmFuZ2VbMV0gPSBNYXRoLm1heChsaW1pdCwgZGFtYWdlZFJhbmdlWzFdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBtZXJnZSBsYXN0IHJ1biBpZiBuZWVkZWQKKyAgICAgICAgaWYgKChmUnVuQXJyYXkuZk5lZ1N0YXJ0IDwgZlJ1bkFycmF5LmdldEFycmF5TGVuZ3RoKCkpICYmCisgICAgICAgICAgICAgICAgICAgIChmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZk5lZ1N0YXJ0XS5lcXVhbHMoZlN0eWxlVGFibGVbZlJ1bkFycmF5LmZQb3NFbmRdKSkpIHsKKyAgICAgICAgICAgIGZSdW5BcnJheS5mTmVnU3RhcnQrKzsKKyAgICAgICAgfQorCisgICAgICAgIGZSdW5BcnJheS5ydW5TdGFydHNDaGFuZ2VkKCk7CisKKyAgICAgICAgcmV0dXJuIG1vZGlmaWVkQW55d2hlcmU7CisgICAgfQorCisgICAgcHVibGljIGludCBzdHlsZVN0YXJ0KGludCBwb3MpIHsKKworICAgICAgICBpZiAocG9zID09IGZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHJldHVybiBwb3M7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZlJ1bkFycmF5LmdldExvZ2ljYWxSdW5TdGFydChmUnVuQXJyYXkuZmluZFJ1bkNvbnRhaW5pbmcocG9zKSk7CisgICAgfQorCisgICAgcHVibGljIGludCBzdHlsZUxpbWl0KGludCBwb3MpIHsKKworICAgICAgICBpZiAocG9zID09IGZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHJldHVybiBwb3M7CisgICAgICAgIH0KKworICAgICAgICBpbnQgcnVuID0gZlJ1bkFycmF5LmZpbmRSdW5Db250YWluaW5nKHBvcyk7CisKKyAgICAgICAgaWYgKHJ1biA9PSBmUnVuQXJyYXkuZlBvc0VuZCkgeworICAgICAgICAgICAgcnVuID0gZlJ1bkFycmF5LmZOZWdTdGFydDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICsrcnVuOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZSdW5BcnJheS5nZXRMb2dpY2FsUnVuU3RhcnQocnVuKTsKKyAgICB9CisKKy8qKgorKiBSZXR1cm4gc3R5bGUgYXQgbG9jYXRpb24gPHR0PnBvczwvdHQ+LgorKiBAcGFyYW0gcG9zIGFuIG9mZnNldCBpbnRvIHRoZSB0ZXh0CisqIEByZXR1cm5zIHRoZSBzdHlsZSBvZiB0aGUgY2hhcmFjdGVyIGF0IDx0dD5vZmZzZXQ8L3R0PgorKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlTWFwIHN0eWxlQXQoaW50IHBvcykgeworCisgICAgICAgIHJldHVybiBmU3R5bGVUYWJsZVsgZlJ1bkFycmF5LmZpbmRSdW5Db250YWluaW5nKHBvcykgXTsKKyAgICB9CisKKy8qCisqIFNldCBydW4gc3RhcnQsIHJ1biBsZW5ndGgsIGFuZCBydW4gdmFsdWUgaW4gYW4gaXRlcmF0b3IuICBUaGlzIG1ldGhvZCBpcworKiBvbmx5IGNhbGxlZCBieSBhIDx0dD5TdHlsZVJ1bkl0ZXJhdG9yPC90dD4uCisqIEBwYXJhbSBwb3MgYW4gb2Zmc2V0IGludG8gdGhlIHRleHQuICBUaGUgaXRlcmF0b3IncyBydW4gc3RhcnQgYW5kIHJ1biBsaW1pdCBhcmUKKyogc2V0IHRvIHRoZSBydW4gY29udGFpbmluZyA8dHQ+cG9zPC90dD4uCisqIEBwYXJhbSBpdGVyIHRoZSBpdGVyYXRvciB0byBzZXQKKyovCisgICAgdm9pZCBzZXRJdGVyYXRvcihpbnQgcG9zLCBTdHlsZVJ1bkl0ZXJhdG9yIGl0ZXIpIHsKKworICAgICAgICBpZiAoKHBvcyA8IDApIHx8IChwb3MgPiBmUnVuQXJyYXkuZ2V0Q3VyVGV4dExlbmd0aCgpKSkgeworCisgICAgICAgICAgICBpdGVyLnNldChudWxsLCAwLCAwLCBrTm9SdW4pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaW50IHJ1biA9IGZSdW5BcnJheS5maW5kUnVuQ29udGFpbmluZyhwb3MpOworCisgICAgICAgIHNldEl0ZXJhdG9yVXNpbmdSdW4ocnVuLCBpdGVyKTsKKyAgICB9CisKKy8qKgorKiBTZXQgcnVuIHN0YXJ0LCBydW4gbGVuZ3RoLCBhbmQgcnVuIHZhbHVlIGluIGFuIGl0ZXJhdG9yLiAgVGhpcyBtZXRob2QgaXMKKyogb25seSBjYWxsZWQgYnkgYSA8dHQ+U3R5bGVSdW5JdGVyYXRvcjwvdHQ+LgorKiBAcGFyYW0gcnVuIHRoZSBpbmRleCBvZiB0aGUgcnVuIHRvIHdoaWNoIHRoZSBpdGVyYXRvciBzaG91bGQgYmUgc2V0CisqIEBwYXJhbSBpdGVyIHRoZSBpdGVyYXRvciB0byBzZXQKKyovCisgICAgcHJpdmF0ZSB2b2lkIHNldEl0ZXJhdG9yVXNpbmdSdW4oaW50IHJ1biwgU3R5bGVSdW5JdGVyYXRvciBpdGVyKSB7CisKKyAgICAgICAgaW50IGxhc3RWYWxpZFJ1biA9IGZSdW5BcnJheS5sYXN0UnVuKCk7CisKKyAgICAgICAgaWYgKHJ1biA8IDAgfHwgcnVuID4gbGFzdFZhbGlkUnVuKSB7CisKKyAgICAgICAgICAgIGl0ZXIuc2V0KG51bGwsIDAsIDAsIGtOb1J1bik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAocnVuID09IGZSdW5BcnJheS5mUG9zRW5kKzEpCisgICAgICAgICAgICBydW4gPSBmUnVuQXJyYXkuZk5lZ1N0YXJ0OworICAgICAgICBlbHNlIGlmIChydW4gPT0gZlJ1bkFycmF5LmZOZWdTdGFydC0xKQorICAgICAgICAgICAgcnVuID0gZlJ1bkFycmF5LmZQb3NFbmQ7CisKKyAgICAgICAgaW50IHJ1blN0YXJ0ID0gZlJ1bkFycmF5LmZSdW5TdGFydFtydW5dOworICAgICAgICBpZiAocnVuU3RhcnQgPCAwKQorICAgICAgICAgICAgcnVuU3RhcnQgKz0gZlJ1bkFycmF5LmdldEN1clRleHRMZW5ndGgoKTsKKworICAgICAgICBBdHRyaWJ1dGVNYXAgc3R5bGUgPSBmU3R5bGVUYWJsZVtydW5dOworCisgICAgICAgIGludCBuZXh0UnVuOworCisgICAgICAgIGlmIChydW4gPT0gZlJ1bkFycmF5LmZQb3NFbmQpCisgICAgICAgICAgICBuZXh0UnVuID0gZlJ1bkFycmF5LmZOZWdTdGFydDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbmV4dFJ1biA9IHJ1biArIDE7CisKKyAgICAgICAgaW50IHJ1bkxpbWl0OworCisgICAgICAgIGlmIChuZXh0UnVuID49IGZSdW5BcnJheS5nZXRBcnJheUxlbmd0aCgpKQorICAgICAgICAgICAgcnVuTGltaXQgPSBmUnVuQXJyYXkuZ2V0Q3VyVGV4dExlbmd0aCgpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJ1bkxpbWl0ID0gZlJ1bkFycmF5LmZSdW5TdGFydFtuZXh0UnVuXTsKKyAgICAgICAgICAgIGlmIChydW5MaW1pdCA8IDApCisgICAgICAgICAgICAgICAgcnVuTGltaXQgKz0gZlJ1bkFycmF5LmdldEN1clRleHRMZW5ndGgoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJzZXRJdGVyYXRvcjogcG9zPSIrcG9zKyIsIHJ1blN0YXJ0PSIrcnVuU3RhcnQrIiwgcnVuTGltaXQ9IitydW5MaW1pdCsKKyAgICAgICAgLy8gICAgICAgICAgICAgICAgICAiLCBydW49IitydW4rIiwgZlBvc0VuZD0iK2ZQb3NFbmQpOworCisgICAgICAgIGl0ZXIuc2V0KHN0eWxlLCBydW5TdGFydCwgcnVuTGltaXQsIHJ1bik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgTUNvbnN0VGV4dCBzcmNUZXh0LCBpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCkKKyAgICB7CisgICAgICAgIGRlbGV0ZVRleHQoc3RhcnQsIGxpbWl0KTsKKyAgICAgICAgaWYgKHNyY1N0YXJ0ID09IHNyY0xpbWl0KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBwcmVwYXJlU3R5bGVJbnNlcnQoc3RhcnQpOworICAgICAgICBmb3IgKGludCBqMiA9IHNyY1N0YXJ0OyBqMiA8IHNyY0xpbWl0OyBqMiA9IHNyY1RleHQuY2hhcmFjdGVyU3R5bGVMaW1pdChqMikpCisgICAgICAgIHsKKyAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBhdHRyaWJ1dGVNYXAgPSBzcmNUZXh0LmNoYXJhY3RlclN0eWxlQXQoajIpOworICAgICAgICAgICAgaWYgKGZSdW5BcnJheS5mUG9zRW5kIDwgMCB8fCAhZlN0eWxlVGFibGVbZlJ1bkFycmF5LmZQb3NFbmRdLmVxdWFscyhhdHRyaWJ1dGVNYXApKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGV4cGFuZFN0eWxlVGFibGVJZkZ1bGwoKTsKKyAgICAgICAgICAgICAgICBmUnVuQXJyYXkuZlBvc0VuZCsrOworICAgICAgICAgICAgICAgIGZSdW5BcnJheS5mUnVuU3RhcnRbZlJ1bkFycmF5LmZQb3NFbmRdID0gajIgLSBzcmNTdGFydCArIHN0YXJ0OworICAgICAgICAgICAgICAgIGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mUG9zRW5kXSA9IGF0dHJpYnV0ZU1hcDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmUnVuQXJyYXkuYWRkVG9DdXJUZXh0TGVuZ3RoKHNyY0xpbWl0IC0gc3JjU3RhcnQpOworICAgICAgICBpZiAoZlJ1bkFycmF5LmZOZWdTdGFydCA8IGZSdW5BcnJheS5nZXRBcnJheUxlbmd0aCgpICYmIGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mTmVnU3RhcnRdLmVxdWFscyhmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZlBvc0VuZF0pKQorICAgICAgICAgICAgZlJ1bkFycmF5LmZOZWdTdGFydCsrOworICAgIH0KKworICAgIHByaXZhdGUgIHN0YXRpYyBmaW5hbCBpbnQga05vUnVuID0gLTQyOyAvLyBpdGVyYXRvciB1c2UKKworICAgIHByaXZhdGUgZmluYWwgY2xhc3MgU3R5bGVSdW5JdGVyYXRvciAvKmltcGxlbWVudHMgTVN0eWxlUnVuSXRlcmF0b3IqLyB7CisKKyAgICAgICAgU3R5bGVSdW5JdGVyYXRvcihpbnQgc3RhcnQsIGludCBsaW1pdCkKKyAgICAgICAgeworICAgICAgICAgICAgcmVzZXQoc3RhcnQsIGxpbWl0LCBzdGFydCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCByZXNldChpbnQgc3RhcnQsIGludCBsaW1pdCwgaW50IHBvcykKKyAgICAgICAgeworICAgICAgICAgICAgZlN0YXJ0ID0gc3RhcnQ7CisgICAgICAgICAgICBmTGltaXQgPSBsaW1pdDsKKyAgICAgICAgICAgIHNldEl0ZXJhdG9yKGZTdGFydCwgdGhpcyk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc1ZhbGlkKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZTdHlsZSAhPSBudWxsOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgbmV4dCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChmUnVuTGltaXQgPCBmTGltaXQpIHsKKyAgICAgICAgICAgICAgICBmQ3VycmVudFJ1bisrOworICAgICAgICAgICAgICAgIHNldEl0ZXJhdG9yVXNpbmdSdW4oZkN1cnJlbnRSdW4sIHRoaXMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHNldChudWxsLCAwLCAwLCBrTm9SdW4pOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgcHJldigpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChmUnVuU3RhcnQgPiBmU3RhcnQpIHsKKyAgICAgICAgICAgICAgICBmQ3VycmVudFJ1bi0tOworICAgICAgICAgICAgICAgIHNldEl0ZXJhdG9yVXNpbmdSdW4oZkN1cnJlbnRSdW4sIHRoaXMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHNldChudWxsLCAwLCAwLCBrTm9SdW4pOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgc2V0KGludCBwb3MpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChwb3MgPj0gZlN0YXJ0ICYmIHBvcyA8IGZMaW1pdCkgeworICAgICAgICAgICAgICAgIHNldEl0ZXJhdG9yKHBvcywgdGhpcyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHNldChudWxsLCAwLCAwLCBrTm9SdW4pOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgdm9pZCBzZXQoQXR0cmlidXRlTWFwIHN0eWxlLCBpbnQgc3RhcnQsIGludCBsaW1pdCwgaW50IGN1cnJlbnRSdW4pCisgICAgICAgIHsKKyAgICAgICAgICAgIGZTdHlsZSA9IHN0eWxlOworICAgICAgICAgICAgZkN1cnJlbnRSdW4gPSBjdXJyZW50UnVuOworICAgICAgICAgICAgZlJ1blN0YXJ0ID0gc3RhcnQgPCBmU3RhcnQgPyBmU3RhcnQgOiBzdGFydDsKKyAgICAgICAgICAgIGZSdW5MaW1pdCA9IGxpbWl0ID4gZkxpbWl0ID8gZkxpbWl0IDogbGltaXQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCByZXNldChpbnQgc3RhcnQsIGludCBsaW1pdCkKKyAgICAgICAgeworICAgICAgICAgICAgcmVzZXQoc3RhcnQsIGxpbWl0LCBzdGFydCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBmaXJzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHNldChmU3RhcnQpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgbGFzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHNldChmTGltaXQgLSAxKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgcmFuZ2VTdGFydCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmU3RhcnQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IHJhbmdlTGltaXQoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZkxpbWl0OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCByYW5nZUxlbmd0aCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmTGltaXQgLSBmU3RhcnQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgQXR0cmlidXRlTWFwIHN0eWxlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZTdHlsZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgcnVuU3RhcnQoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZlJ1blN0YXJ0OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBydW5MaW1pdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmUnVuTGltaXQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IHJ1bkxlbmd0aCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmUnVuTGltaXQgLSBmUnVuU3RhcnQ7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIGludCBmU3RhcnQ7CisgICAgICAgIHByaXZhdGUgaW50IGZMaW1pdDsKKyAgICAgICAgcHJpdmF0ZSBBdHRyaWJ1dGVNYXAgZlN0eWxlOworICAgICAgICBwcml2YXRlIGludCBmUnVuU3RhcnQ7CisgICAgICAgIHByaXZhdGUgaW50IGZSdW5MaW1pdDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgZkN1cnJlbnRSdW47CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvU3R5bGVNb2RpZmllci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9TdHlsZU1vZGlmaWVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTdmYmE4YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvU3R5bGVNb2RpZmllci5qYXZhCkBAIC0wLDAgKzEsMTkyIEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBTdHlsZU1vZGlmaWVyLmphdmEsdiAkICRSZXZpc2lvbjogMS4yICQgJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6MzYgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZVNldDsKKworLyoqCisgKiBTdHlsZU1vZGlmaWVyIGlzIHRoZSBiYXNlIGNsYXNzIGZvciBvcGVyYXRpb25zIG9uIEF0dHJpYnV0ZU1hcC4gIFRvIGltcGxlbWVudAorICogYW4gb3BlcmF0aW9uIG9uIEF0dHJpYnV0ZU1hcCwgc3ViY2xhc3MgU3R5bGVNb2RpZmllciBhbmQgb3ZlcnJpZGUKKyAqIDxjb2RlPm1vZGlmeVN0eWxlPC9jb2RlPi4gIFN0eWxlTW9kaWZpZXJzIGFyZSB1c2VkIGJ5IE1UZXh0LgorICogPHA+CisgKiBGb3IgY29udmVuaWVuY2UsIHRoaXMgY2xhc3MgY29udGFpbnMgZmFjdG9yeSBtZXRob2RzIHdoaWNoIHdpbGwgY3JlYXRlIGEKKyAqIFN0eWxlTW9kaWZpZXIgZm9yCisgKiBjZXJ0YWluIGNvbW1vbiBvcGVyYXRpb25zOiBhdHRyaWJ1dGUgdW5pb24sIGF0dHJpYnV0ZSByZW1vdmFsLCBhbmQgQXR0cmlidXRlTWFwCisgKiByZXBsYWNlbWVudC4KKyAqIEBzZWUgQXR0cmlidXRlTWFwCisgKiBAc2VlIEF0dHJpYnV0ZVNldAorICogQHNlZSBNVGV4dAorICovCisvKgorICoge2picn0gU3R5bGVNb2RpZmllciBpcyBub3QgdGhlIGJlc3QgbmFtZSBmb3IgdGhpcyBjbGFzcyAtIHN0eWxlcyBhcmUgaW1tdXRhYmxlIGFuZCBuZXZlcgorICogcmVhbGx5IG1vZGlmaWVkLgorICovCitwdWJsaWMgY2xhc3MgU3R5bGVNb2RpZmllcgoreworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgU3R5bGVNb2RpZmllci4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgU3R5bGVNb2RpZmllcigpIHsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHJlc3VsdCBvZiB0aGlzIFN0eWxlTW9kaWZpZXIncyBvcGVyYXRpb24gb24gdGhlIGdpdmVuIHN0eWxlLgorICAgICAqIERlZmF1bHQgaW1wbGVtZW50YXRpb24ganVzdCByZXR1cm5zIHRoZSBnaXZlbiBzdHlsZS4KKyAgICAgKiBAcGFyYW0gc3R5bGUgdGhlIEF0dHJpYnV0ZU1hcCB0byBwZXJmb3JtIHRoZSBvcGVyYXRpb24gb24KKyAgICAgKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlTWFwIG1vZGlmeVN0eWxlKEF0dHJpYnV0ZU1hcCBzdHlsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBzdHlsZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBIFN0eWxlTW9kaWZpZXIgd2hpY2ggc2ltcGx5IHJldHVybnMgdGhlIGdpdmVuIHN0eWxlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3R5bGVNb2RpZmllciBJREVOVElUWSA9IG5ldyBTdHlsZU1vZGlmaWVyKCk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBTdHlsZU1vZGlmaWVyIHdob3NlIG9wZXJhdGlvbiBpcworICAgICAqIDxjb2RlPnN0eWxlLmFkZEF0dHJpYnV0ZXMocyk8L2NvZGU+LAorICAgICAqIHdoZXJlIDxjb2RlPnN0eWxlPC9jb2RlPiBpcyB0aGUgQXR0cmlidXRlTWFwIHBhc3NlZCB0bworICAgICAqIDxjb2RlPm1vZGlmeVN0eWxlPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gcyB0aGUgQXR0cmlidXRlTWFwIHRvIHVuaW9uIHdpdGgKKyAgICAgKiBAcmV0dXJuIGEgU3R5bGVNb2RpZmllciBmb3IgdGhpcyBvcGVyYXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0eWxlTW9kaWZpZXIgY3JlYXRlQWRkTW9kaWZpZXIoQXR0cmlidXRlTWFwIHMpIHsKKworICAgICAgICByZXR1cm4gbmV3IFN0eWxlQWRkTW9kaWZpZXIocyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgU3R5bGVNb2RpZmllciB3aG9zZSBvcGVyYXRpb24gaXMKKyAgICAgKiA8Y29kZT5zdHlsZS5hZGRBdHRyaWJ1dGUoa2V5LCB2YWx1ZSk8L2NvZGU+LAorICAgICAqIHdoZXJlIDxjb2RlPnN0eWxlPC9jb2RlPiBpcyB0aGUgQXR0cmlidXRlTWFwIHBhc3NlZCB0bworICAgICAqIDxjb2RlPm1vZGlmeVN0eWxlPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0ga2V5IHRoZSBrZXkgdG8gYWRkCisgICAgICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZSB0byBhZGQKKyAgICAgKiBAcmV0dXJuIGEgU3R5bGVNb2RpZmllciBmb3IgdGhpcyBvcGVyYXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0eWxlTW9kaWZpZXIgY3JlYXRlQWRkTW9kaWZpZXIoT2JqZWN0IGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0IHZhbHVlKSB7CisKKyAgICAgICAgcmV0dXJuIG5ldyBBdHRyaWJ1dGVBZGRNb2RpZmllcihrZXksIHZhbHVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBTdHlsZU1vZGlmaWVyIHdob3NlIG9wZXJhdGlvbiByZXR1cm5zIDxjb2RlPnM8L2NvZGU+LAorICAgICAqIGlnbm9yaW5nIHRoZSBwYXJhbWV0ZXIgdG8gPGNvZGU+bW9kaWZ5U3R5bGU8L2NvZGU+LgorICAgICAqIEBwYXJhbSBzIHRoZSBBdHRyaWJ1dGVNYXAgd2hpY2ggd2lsbCByZXBsYWNlIGFueSBvdGhlciBBdHRyaWJ1dGVNYXAKKyAgICAgKiBAcmV0dXJuIGEgU3R5bGVNb2RpZmllciBmb3IgdGhpcyBvcGVyYXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0eWxlTW9kaWZpZXIgY3JlYXRlUmVwbGFjZU1vZGlmaWVyKEF0dHJpYnV0ZU1hcCBzKSB7CisKKyAgICAgICAgcmV0dXJuIG5ldyBTdHlsZVJlcGxhY2VNb2RpZmllcihzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBTdHlsZU1vZGlmaWVyIHdob3NlIG9wZXJhdGlvbiBpcworICAgICAqIDxjb2RlPnN0eWxlLnJlbW92ZUF0dHJpYnV0ZXMocyk8L2NvZGU+LAorICAgICAqIHdoZXJlIDxjb2RlPnN0eWxlPC9jb2RlPiBpcyB0aGUgQXR0cmlidXRlTWFwIHBhc3NlZCB0bworICAgICAqIDxjb2RlPm1vZGlmeVN0eWxlPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gcyB0aGUgQXR0cmlidXRlU2V0IG9mIGF0dHJpYnV0ZXMgdG8gcmVtb3ZlCisgICAgICogQHJldHVybiBhIFN0eWxlTW9kaWZpZXIgZm9yIHRoaXMgb3BlcmF0aW9uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHlsZU1vZGlmaWVyIGNyZWF0ZVJlbW92ZU1vZGlmaWVyKEF0dHJpYnV0ZVNldCBzKSB7CisKKyAgICAgICAgcmV0dXJuIG5ldyBTdHlsZVJlbW92ZU1vZGlmaWVyKHMpOworICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBjbGFzcyBBdHRyaWJ1dGVBZGRNb2RpZmllciBleHRlbmRzIFN0eWxlTW9kaWZpZXIgeworCisgICAgICAgIHByaXZhdGUgT2JqZWN0IGZLZXk7CisgICAgICAgIHByaXZhdGUgT2JqZWN0IGZWYWx1ZTsKKworICAgICAgICBwdWJsaWMgQXR0cmlidXRlQWRkTW9kaWZpZXIoT2JqZWN0IGtleSwgT2JqZWN0IHZhbHVlKSB7CisKKyAgICAgICAgICAgIGZLZXkgPSBrZXk7CisgICAgICAgICAgICBmVmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgbW9kaWZ5U3R5bGUoQXR0cmlidXRlTWFwIHN0eWxlKSB7CisKKyAgICAgICAgICAgIHJldHVybiBzdHlsZS5hZGRBdHRyaWJ1dGUoZktleSwgZlZhbHVlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSB0aGlzIHdpdGggdGhlIHN0eWxlcyB0byBhZGQuICBUaGVzZSBzdHlsZXMgd2lsbCBhZGQgdG8gYW5kIG92ZXJyaWRlIGFueSBhbHJlYWR5CisgICAgICogcHJlc2VudCBpbiB0aGUgc3R5bGUgcGFzc2VkIHRvIG1vZGlmeVN0eWxlLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBjbGFzcyBTdHlsZUFkZE1vZGlmaWVyIGV4dGVuZHMgU3R5bGVNb2RpZmllcgorICAgIHsKKyAgICAgICAgcHJpdmF0ZSBBdHRyaWJ1dGVNYXAgZlN0eWxlOworCisgICAgICAgIHB1YmxpYyBTdHlsZUFkZE1vZGlmaWVyKEF0dHJpYnV0ZU1hcCBzdHlsZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHN0eWxlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJzdHlsZSBpcyBudWxsIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmU3R5bGUgPSBzdHlsZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgbW9kaWZ5U3R5bGUoQXR0cmlidXRlTWFwIHN0eWxlKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gc3R5bGUuYWRkQXR0cmlidXRlcyhmU3R5bGUpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIHRoaXMgd2l0aCB0aGUgc3R5bGVzIHRvIHJlcGxhY2UuICBBbGwgc3R5bGUgcnVucyB3aWxsIGhhdmUgb25seSB0aGVzZQorICAgICAqIHN0eWxlcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgY2xhc3MgU3R5bGVSZXBsYWNlTW9kaWZpZXIgZXh0ZW5kcyBTdHlsZU1vZGlmaWVyCisgICAgeworICAgICAgICBwcml2YXRlIEF0dHJpYnV0ZU1hcCBmU3R5bGU7CisKKyAgICAgICAgcHVibGljIFN0eWxlUmVwbGFjZU1vZGlmaWVyKEF0dHJpYnV0ZU1hcCBzdHlsZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHN0eWxlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJzdHlsZSBpcyBudWxsIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmU3R5bGUgPSBzdHlsZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgbW9kaWZ5U3R5bGUoQXR0cmlidXRlTWFwIHN0eWxlKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZlN0eWxlOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIGNsYXNzIFN0eWxlUmVtb3ZlTW9kaWZpZXIgZXh0ZW5kcyBTdHlsZU1vZGlmaWVyIHsKKworICAgICAgICBwcml2YXRlIEF0dHJpYnV0ZVNldCBmUmVtb3ZlU2V0OworCisgICAgICAgIHB1YmxpYyBTdHlsZVJlbW92ZU1vZGlmaWVyKEF0dHJpYnV0ZVNldCByZW1vdmVTZXQpIHsKKworICAgICAgICAgICAgaWYgKHJlbW92ZVNldCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigic2V0IGlzIG51bGwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZSZW1vdmVTZXQgPSByZW1vdmVTZXQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgQXR0cmlidXRlTWFwIG1vZGlmeVN0eWxlKEF0dHJpYnV0ZU1hcCBzdHlsZSkgeworCisgICAgICAgICAgICByZXR1cm4gc3R5bGUucmVtb3ZlQXR0cmlidXRlcyhmUmVtb3ZlU2V0KTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvU3R5bGVkVGV4dC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9TdHlsZWRUZXh0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDcwZjQ2OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvU3R5bGVkVGV4dC5qYXZhCkBAIC0wLDAgKzEsNjg2IEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBTdHlsZWRUZXh0LmphdmEsdiAkICRSZXZpc2lvbjogMS4zICQgJERhdGU6IDIwMDIvMDMvMjAgMDU6MTE6MTcgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCitpbXBvcnQgamF2YS5pby5FeHRlcm5hbGl6YWJsZTsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdElucHV0OworaW1wb3J0IGphdmEuaW8uT2JqZWN0T3V0cHV0OworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yOworCisvKioKKyAqIFRoaXMgY2xhc3MgaXMgYW4gaW1wbGVtZW50YXRpb24gb2YgTVRleHQsIGEgbW9kaWZ5YWJsZSwgc3R5bGVkIHRleHQKKyAqIHN0b3JhZ2UgbW9kZWwuICBBZGRpdGlvbmFsbHksIGl0IHN1cHBvcnRzIHBlcnNpc3RhbmNlIHRocm91Z2ggdGhlCisgKiBFeHRlcm5hbGl6YWJsZSBpbnRlcmZhY2UuCisgKiBAc2VlIE1UZXh0CisgKi8KKworLyoKKyAgICAxMC8yOC85NiB7amZ9IC0gc3BsaXQgdGhlIGNoYXJhY3RlciBhbmQgcGFyYWdyYXBoIHN0eWxlIGFjY2VzcyBhbmQgc2V0dGVyIGZ1bmN0aW9uIGFyb3VuZC4uLgorICAgICAgICAgICAganVzdCB0byBrZWVwIHRoaW5ncyBpbnRlcmVzdGluZy4KKyAgICA4LzcvOTYge2pmfSAtIG1vdmVkIHBhcmFncmFwaCBicmVhayBpbXBsZW1lbnRhdGlvbiBmcm9tIEFic3RyYWN0VGV4dCBpbnRvIFN0eWxlIHRleHQuCisgICAgICAgICAgICAtIGFkZGVkIGNvdW50U3R5bGVzLCBnZXRTdHlsZXMsIGFuZCBSZXBsYWNlU3R5bGVzIGltcGxlbWVudGF0aW9uLgorCisgICAgOC8xNC85NiBzZmIgIGVsaW1pbmF0ZWQgU3R5bGVTaGVldEl0ZXJhdG9yCisKKyAgICA4LzI5Lzk2IHtqYnJ9IGNoYW5nZWQgaXRlci1iYXNlZCByZXBsYWNlIG1ldGhvZCAtIGRvZXNuJ3QgY2FsbCBhdCgpIHVubGVzcyBpdCBpcyBzYWZlIHRvIGRvIHNvCisgICAgICAgICAgICBBbHNvLCBhZGRlZCBjaGVja1N0YXJ0QW5kTGltaXQgZm9yIGRlYnVnZ2luZworCisgICAgNy8zMS85OCBTd2l0Y2hlZCBmcm9tIFN0eWxlIHRvIEF0dHJpYnV0ZU1hcAorCisqLworCitwdWJsaWMgZmluYWwgY2xhc3MgU3R5bGVkVGV4dCBleHRlbmRzIE1UZXh0IGltcGxlbWVudHMgRXh0ZXJuYWxpemFibGUKK3sKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDVVJSRU5UX1ZFUlNJT04gPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDIyMzU2OTM0OworCisgICAgLyogdW5pY29kZSBzdG9yYWdlICovCisgICAgcHJpdmF0ZSBNQ2hhckJ1ZmZlciAgICAgICAgIGZDaGFyQnVmZmVyOworICAgIC8qIGNoYXJhY3RlciBzdHlsZSBzdG9yYWdlICovCisgICAgcHJpdmF0ZSBNU3R5bGVCdWZmZXIgICAgICAgIGZTdHlsZUJ1ZmZlcjsKKyAgICAvKiBwYXJhZ3JhcGggc3R5bGUgc3RvcmFnZSAqLworICAgIHByaXZhdGUgTVBhcmFncmFwaEJ1ZmZlciAgICBmUGFyYWdyYXBoQnVmZmVyOworCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50IGZUaW1lU3RhbXAgPSAwOworICAgIHByaXZhdGUgdHJhbnNpZW50IGludFtdIGZEYW1hZ2VkUmFuZ2UgPSB7IEludGVnZXIuTUFYX1ZBTFVFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIuTUlOX1ZBTFVFIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBGb3JjZU1vZGlmaWVyIGV4dGVuZHMgU3R5bGVNb2RpZmllciB7CisKKyAgICAgICAgcHJpdmF0ZSBBdHRyaWJ1dGVNYXAgZlN0eWxlID0gQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVA7CisKKyAgICAgICAgdm9pZCBzZXRTdHlsZShBdHRyaWJ1dGVNYXAgc3R5bGUpIHsKKworICAgICAgICAgICAgZlN0eWxlID0gc3R5bGU7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgQXR0cmlidXRlTWFwIG1vZGlmeVN0eWxlKEF0dHJpYnV0ZU1hcCBzdHlsZSkgeworCisgICAgICAgICAgICByZXR1cm4gZlN0eWxlOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gS2VlcCB0aGlzIGFyb3VuZCBmb3J1c2UgaW4gcmVwbGFjZUNoYXJTdHlsZXNXaXRoLiAgT0sgc2luY2UKKyAgICAvLyB0aGlzIGNsYXNzIGlzbid0IHRocmVhZHNhZmUgYW55d2F5LgorICAgIHByaXZhdGUgdHJhbnNpZW50IEZvcmNlTW9kaWZpZXIgZm9yY2VNb2RpZmllciA9IG51bGw7CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIENPTlNUUlVDVE9SUworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLyoqCisgICAgICogQ3JlYXRlIGFuIGVtcHR5IHRleHQgb2JqZWN0LgorICAgICAqLworICAgIHB1YmxpYyBTdHlsZWRUZXh0KCkKKyAgICB7CisgICAgICAgIHRoaXMoMCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGFuIGVtcHR5IHRleHQgb2JqZWN0IHJlYWR5IHRvIGhvbGQgYXQgbGVhc3QgY2FwYWNpdHkgY2hhcnMuCisgICAgICogQHBhcmFtIGNhcGFjaXR5IHRoZSBtaW5pbXVtIGNhcGFjaXR5IG9mIHRoZSBpbnRlcm5hbCB0ZXh0IGJ1ZmZlcgorICAgICAqLworICAgIHB1YmxpYyBTdHlsZWRUZXh0KGludCBjYXBhY2l0eSkKKyAgICB7CisgICAgICAgIGZDaGFyQnVmZmVyICAgICAgICAgPSBjYXBhY2l0eT4wPyBuZXcgQ2hhckJ1ZmZlcihjYXBhY2l0eSkgOiBuZXcgQ2hhckJ1ZmZlcigpOworICAgICAgICBmU3R5bGVCdWZmZXIgICAgICAgID0gbmV3IFN0eWxlQnVmZmVyKHRoaXMsIEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQKTsKKyAgICAgICAgZlBhcmFncmFwaEJ1ZmZlciAgICA9IG5ldyBQYXJhZ3JhcGhCdWZmZXIoZkNoYXJCdWZmZXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIHRleHQgb2JqZWN0IHdpdGggdGhlIGNoYXJhY3RlcnMgaW4gdGhlIHN0cmluZywKKyAgICAgKiBpbiB0aGUgZ2l2ZW4gc3R5bGUuCisgICAgICogQHBhcmFtIHN0cmluZyB0aGUgaW5pdGlhbCBjb250ZW50cworICAgICAqIEBwYXJhbSBpbml0aWFsU3R5bGUgdGhlIHN0eWxlIG9mIHRoZSBpbml0aWFsIHRleHQKKyAgICAgKi8KKyAgICBwdWJsaWMgU3R5bGVkVGV4dChTdHJpbmcgc3RyaW5nLCBBdHRyaWJ1dGVNYXAgaW5pdGlhbFN0eWxlKQorICAgIHsKKyAgICAgICAgZkNoYXJCdWZmZXIgPSBuZXcgQ2hhckJ1ZmZlcihzdHJpbmcubGVuZ3RoKCkpOworICAgICAgICBmQ2hhckJ1ZmZlci5yZXBsYWNlKDAsIDAsIHN0cmluZywgMCwgc3RyaW5nLmxlbmd0aCgpKTsKKworICAgICAgICBmU3R5bGVCdWZmZXIgPSBuZXcgU3R5bGVCdWZmZXIodGhpcywgaW5pdGlhbFN0eWxlKTsKKyAgICAgICAgZlBhcmFncmFwaEJ1ZmZlciA9IG5ldyBQYXJhZ3JhcGhCdWZmZXIoZkNoYXJCdWZmZXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIHRleHQgb2JqZWN0IGZyb20gdGhlIGdpdmVuIHNvdXJjZS4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSB0ZXh0IHRvIGNvcHkKKyAgICAgKi8KKyAgICBwdWJsaWMgU3R5bGVkVGV4dChNQ29uc3RUZXh0IHNvdXJjZSkgeworICAgICAgICB0aGlzKCk7CisgICAgICAgIGFwcGVuZChzb3VyY2UpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSB0ZXh0IG9iamVjdCBmcm9tIGEgc3VicmFuZ2Ugb2YgdGhlIGdpdmVuIHNvdXJjZS4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSB0ZXh0IHRvIGNvcHkgZnJvbQorICAgICAqIEBwYXJhbSBzcmNTdGFydCB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNoYXJhY3RlciB0byBjb3B5CisgICAgICogQHBhcmFtIHNyY0xpbWl0IHRoZSBpbmRleCBhZnRlciB0aGUgbGFzdCBjaGFyYWN0ZXIgdG8gY29weQorICAgICAqLworICAgIHB1YmxpYyBTdHlsZWRUZXh0KE1Db25zdFRleHQgc291cmNlLCBpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCkgeworICAgICAgICB0aGlzKCk7CisgICAgICAgIHJlcGxhY2UoMCwgMCwgc291cmNlLCBzcmNTdGFydCwgc3JjTGltaXQpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlRXh0ZXJuYWwoT2JqZWN0T3V0cHV0IG91dCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKworICAgICAgICBvdXQud3JpdGVJbnQoQ1VSUkVOVF9WRVJTSU9OKTsKKyAgICAgICAgb3V0LndyaXRlT2JqZWN0KGZDaGFyQnVmZmVyKTsKKyAgICAgICAgb3V0LndyaXRlT2JqZWN0KGZTdHlsZUJ1ZmZlcik7CisgICAgICAgIG91dC53cml0ZU9iamVjdChmUGFyYWdyYXBoQnVmZmVyKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCByZWFkRXh0ZXJuYWwoT2JqZWN0SW5wdXQgaW4pIHRocm93cyBJT0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiB7CisKKyAgICAgICAgaW50IHZlcnNpb24gPSBpbi5yZWFkSW50KCk7CisgICAgICAgIGlmICh2ZXJzaW9uICE9IENVUlJFTlRfVkVSU0lPTikgeworICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJJbnZhbGlkIHZlcnNpb24gb2YgU3R5bGVkVGV4dDogIiArIHZlcnNpb24pOworICAgICAgICB9CisgICAgICAgIGZDaGFyQnVmZmVyID0gKE1DaGFyQnVmZmVyKSBpbi5yZWFkT2JqZWN0KCk7CisgICAgICAgIGZTdHlsZUJ1ZmZlciA9IChNU3R5bGVCdWZmZXIpIGluLnJlYWRPYmplY3QoKTsKKyAgICAgICAgZlBhcmFncmFwaEJ1ZmZlciA9IChNUGFyYWdyYXBoQnVmZmVyKSBpbi5yZWFkT2JqZWN0KCk7CisKKyAgICAgICAgcmVzZXREYW1hZ2VkUmFuZ2UoKTsKKyAgICB9CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIE1Db25zdFRleHQgSU5URVJGQUNFUworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY2hhcmFjdGVyIGFjY2VzcworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8qKgorKiBSZXR1cm4gdGhlIGNoYXJhY3RlciBhdCBvZmZzZXQgPGNvZGU+cG9zPC9jb2RlPi4KKyogQHBhcmFtIHBvcyBhIHZhbGlkIG9mZnNldCBpbnRvIHRoZSB0ZXh0CisqIEByZXR1cm4gdGhlIGNoYXJhY3RlciBhdCBvZmZzZXQgPGNvZGU+cG9zPC9jb2RlPgorKi8KKyAgICBwdWJsaWMgY2hhciBhdChpbnQgcG9zKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZDaGFyQnVmZmVyLmF0KHBvcyk7CisgICAgfQorCisvKioKKyogQ29weSB0aGUgY2hhcmFjdGVycyBpbiB0aGUgcmFuZ2UgWzxjb2RlPnN0YXJ0PC9jb2RlPiwgPGNvZGU+bGltaXQ8L2NvZGU+KQorKiBpbnRvIHRoZSBhcnJheSA8Y29kZT5kc3Q8L2NvZGU+LCBiZWdpbm5pbmcgYXQgPGNvZGU+ZHN0U3RhcnQ8L2NvZGU+LgorKiBAcGFyYW0gc3RhcnQgb2Zmc2V0IG9mIGZpcnN0IGNoYXJhY3RlciB3aGljaCB3aWxsIGJlIGNvcGllZCBpbnRvIHRoZSBhcnJheQorKiBAcGFyYW0gbGltaXQgb2Zmc2V0IGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBsYXN0IGNoYXJhY3RlciB3aGljaCB3aWxsIGJlIGNvcGllZCBpbnRvIHRoZSBhcnJheQorKiBAcGFyYW0gZHN0IGFycmF5IGluIHdoaWNoIHRvIGNvcHkgY2hhcmFjdGVycy4gIFRoZSBsZW5ndGggb2YgPGNvZGU+ZHN0PC9jb2RlPiBtdXN0IGJlIGF0IGxlYXN0CisqICg8Y29kZT5kc3RTdGFydCArIGxpbWl0IC0gc3RhcnQ8L2NvZGU+KS4KKyovCisgICAgcHVibGljIHZvaWQgZXh0cmFjdENoYXJzKGludCBzdGFydCwgaW50IGxpbWl0LCBjaGFyW10gZHN0LCBpbnQgZHN0U3RhcnQpCisgICAgeworICAgICAgICBmQ2hhckJ1ZmZlci5hdChzdGFydCwgbGltaXQsIGRzdCwgZHN0U3RhcnQpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHRleHQgbW9kZWwgY3JlYXRpb24KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8qKgorKiBDcmVhdGUgYW4gTUNvbnN0VGV4dCBjb250YWluaW5nIHRoZSBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMgaW4gdGhlIHJhbmdlCisqIFs8Y29kZT5zdGFydDwvY29kZT4sIDxjb2RlPmxpbWl0PC9jb2RlPikuCisqIEBwYXJhbSBzdGFydCBvZmZzZXQgb2YgZmlyc3QgY2hhcmFjdGVyIGluIHRoZSBuZXcgdGV4dAorKiBAcGFyYW0gbGltaXQgb2Zmc2V0IGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBsYXN0IGNoYXJhY3RlciBpbiB0aGUgbmV3IHRleHQKKyogQHJldHVybiBhbiBNQ29uc3RUZXh0IG9iamVjdCBjb250YWluaW5nIHRoZSBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMgaW4gdGhlIGdpdmVuIHJhbmdlCisqLworICAgIHB1YmxpYyBNQ29uc3RUZXh0IGV4dHJhY3QoaW50IHN0YXJ0LCBpbnQgbGltaXQpCisgICAgeworICAgICAgICByZXR1cm4gZXh0cmFjdFdyaXRhYmxlKHN0YXJ0LCBsaW1pdCk7CisgICAgfQorCisvKioKKyogQ3JlYXRlIGFuIE1UZXh0IGNvbnRhaW5pbmcgdGhlIGNoYXJhY3RlcnMgYW5kIHN0eWxlcyBpbiB0aGUgcmFuZ2UKKyogWzxjb2RlPnN0YXJ0PC9jb2RlPiwgPGNvZGU+bGltaXQ8L2NvZGU+KS4KKyogQHBhcmFtIHN0YXJ0IG9mZnNldCBvZiBmaXJzdCBjaGFyYWN0ZXIgaW4gdGhlIG5ldyB0ZXh0CisqIEBwYXJhbSBsaW1pdCBvZmZzZXQgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSBuZXcgdGV4dAorKiBAcmV0dXJuIGFuIE1Db25zdFRleHQgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGNoYXJhY3RlcnMgYW5kIHN0eWxlcyBpbiB0aGUgZ2l2ZW4gcmFuZ2UKKyovCisgICAgcHVibGljIE1UZXh0IGV4dHJhY3RXcml0YWJsZShpbnQgc3RhcnQsIGludCBsaW1pdCkKKyAgICB7CisgICAgICAgIE1UZXh0IHRleHQgPSBuZXcgU3R5bGVkVGV4dCgpOworICAgICAgICB0ZXh0LnJlcGxhY2UoMCwgMCwgdGhpcywgc3RhcnQsIGxpbWl0KTsKKyAgICAgICAgdGV4dC5yZXNldERhbWFnZWRSYW5nZSgpOworICAgICAgICByZXR1cm4gdGV4dDsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gc2l6ZS9jYXBhY2l0eQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8qKgorKiBSZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgTUNvbnN0VGV4dCBvYmplY3QuICBUaGUgbGVuZ3RoIGlzIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiB0aGUgdGV4dC4KKyogQHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSBNQ29uc3RUZXh0IG9iamVjdAorKi8KKyAgICBwdWJsaWMgaW50IGxlbmd0aCgpCisgICAgeworICAgICAgICByZXR1cm4gZkNoYXJCdWZmZXIubGVuZ3RoKCk7CisgICAgfQorCisvKioKKyogQ3JlYXRlIGEgPGNvZGU+Q2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+IG92ZXIgdGhlIHJhbmdlIFs8Y29kZT5zdGFydDwvY29kZT4sIDxjb2RlPmxpbWl0PC9jb2RlPikuCisqIEBwYXJhbSBzdGFydCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBpdGVyYXRvcidzIHJhbmdlCisqIEBwYXJhbSBsaW1pdCB0aGUgbGltaXQgb2YgdGhlIGl0ZXJhdG9yJ3MgcmFuZ2UKKyogQHJldHVybiBhIHZhbGlkIDxjb2RlPkNoYXJhY3Rlckl0ZXJhdG9yPC9jb2RlPiBvdmVyIHRoZSBzcGVjaWZpZWQgcmFuZ2UKKyogQHNlZSBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3IKKyovCisgICAgcHVibGljIENoYXJhY3Rlckl0ZXJhdG9yIGNyZWF0ZUNoYXJhY3Rlckl0ZXJhdG9yKGludCBzdGFydCwgaW50IGxpbWl0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZDaGFyQnVmZmVyLmNyZWF0ZUNoYXJhY3Rlckl0ZXJhdG9yKHN0YXJ0LCBsaW1pdCk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNoYXJhY3RlciBzdHlsZXMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8qKgorKiBSZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaW4gdGhlIGNoYXJhY3RlciBzdHlsZSBydW4KKyogY29udGFpbmluZyBwb3MuICBBbGwgY2hhcmFjdGVycyBpbiBhIHN0eWxlIHJ1biBoYXZlIHRoZSBzYW1lIGNoYXJhY3RlcgorKiBzdHlsZS4KKyogQHJldHVybiB0aGUgc3R5bGUgYXQgb2Zmc2V0IDxjb2RlPnBvczwvY29kZT4KKyovCisgICAgcHVibGljIGludCBjaGFyYWN0ZXJTdHlsZVN0YXJ0KGludCBwb3MpIHsKKworICAgICAgICBjaGVja1Bvcyhwb3MsIExFU1NfVEhBTl9MRU5HVEgpOworICAgICAgICByZXR1cm4gZlN0eWxlQnVmZmVyLnN0eWxlU3RhcnQocG9zKTsKKyAgICB9CisKKy8qKgorKiBSZXR1cm4gdGhlIGluZGV4IGFmdGVyIHRoZSBsYXN0IGNoYXJhY3RlciBpbiB0aGUgY2hhcmFjdGVyIHN0eWxlIHJ1bgorKiBjb250YWluaW5nIHBvcy4gIEFsbCBjaGFyYWN0ZXJzIGluIGEgc3R5bGUgcnVuIGhhdmUgdGhlIHNhbWUgY2hhcmFjdGVyCisqIHN0eWxlLgorKiBAcmV0dXJuIHRoZSBzdHlsZSBhdCBvZmZzZXQgPGNvZGU+cG9zPC9jb2RlPgorKi8KKyAgICBwdWJsaWMgaW50IGNoYXJhY3RlclN0eWxlTGltaXQoaW50IHBvcykgeworCisgICAgICAgIGNoZWNrUG9zKHBvcywgTk9UX0dSRUFURVJfVEhBTl9MRU5HVEgpOworICAgICAgICByZXR1cm4gZlN0eWxlQnVmZmVyLnN0eWxlTGltaXQocG9zKTsKKyAgICB9CisKKy8qKgorKiBSZXR1cm4gdGhlIHN0eWxlIGFwcGxpZWQgdG8gdGhlIGNoYXJhY3RlciBhdCBvZmZzZXQgPGNvZGU+cG9zPC9jb2RlPi4KKyogQHBhcmFtIHBvcyBhIHZhbGlkIG9mZnNldCBpbnRvIHRoZSB0ZXh0CisqIEByZXR1cm4gdGhlIHN0eWxlIGF0IG9mZnNldCA8Y29kZT5wb3M8L2NvZGU+CisqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgY2hhcmFjdGVyU3R5bGVBdChpbnQgcG9zKQorICAgIHsKKyAgICAgICAgY2hlY2tQb3MocG9zLCBOT1RfR1JFQVRFUl9USEFOX0xFTkdUSCk7CisgICAgICAgIHJldHVybiBmU3R5bGVCdWZmZXIuc3R5bGVBdChwb3MpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBwYXJhZ3JhcGggYm91bmRhcmllcyBhbmQgc3R5bGVzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLyoqCisqIFJldHVybiB0aGUgc3RhcnQgb2YgdGhlIHBhcmFncmFwaCBjb250YWluaW5nIHRoZSBjaGFyYWN0ZXIgYXQgb2Zmc2V0IDxjb2RlPnBvczwvY29kZT4uCisqIEBwYXJhbSBwb3MgYSB2YWxpZCBvZmZzZXQgaW50byB0aGUgdGV4dAorKiBAcmV0dXJuIHRoZSBzdGFydCBvZiB0aGUgcGFyYWdyYXBoIGNvbnRhaW5pbmcgdGhlIGNoYXJhY3RlciBhdCBvZmZzZXQgPGNvZGU+cG9zPC9jb2RlPgorKi8KKyAgICBwdWJsaWMgaW50IHBhcmFncmFwaFN0YXJ0KGludCBwb3MpCisgICAgeworICAgICAgICBjaGVja1Bvcyhwb3MsIE5PVF9HUkVBVEVSX1RIQU5fTEVOR1RIKTsKKyAgICAgICAgcmV0dXJuIGZQYXJhZ3JhcGhCdWZmZXIucGFyYWdyYXBoU3RhcnQocG9zKTsKKyAgICB9CisKKy8qKgorKiBSZXR1cm4gdGhlIGxpbWl0IG9mIHRoZSBwYXJhZ3JhcGggY29udGFpbmluZyB0aGUgY2hhcmFjdGVyIGF0IG9mZnNldCA8Y29kZT5wb3M8L2NvZGU+LgorKiBAcGFyYW0gcG9zIGEgdmFsaWQgb2Zmc2V0IGludG8gdGhlIHRleHQKKyogQHJldHVybiB0aGUgbGltaXQgb2YgdGhlIHBhcmFncmFwaCBjb250YWluaW5nIHRoZSBjaGFyYWN0ZXIgYXQgb2Zmc2V0IDxjb2RlPnBvczwvY29kZT4KKyovCisgICAgcHVibGljIGludCBwYXJhZ3JhcGhMaW1pdChpbnQgcG9zKQorICAgIHsKKyAgICAgICAgY2hlY2tQb3MocG9zLCBOT1RfR1JFQVRFUl9USEFOX0xFTkdUSCk7CisgICAgICAgIHJldHVybiBmUGFyYWdyYXBoQnVmZmVyLnBhcmFncmFwaExpbWl0KHBvcyk7CisgICAgfQorCisvKioKKyogUmV0dXJuIHRoZSBwYXJhZ3JhcGggc3R5bGUgYXBwbGllZCB0byB0aGUgcGFyYWdyYXBoIGNvbnRhaW5pbmcgb2Zmc2V0IDxjb2RlPnBvczwvY29kZT4uCisqIEBwYXJhbSBwb3MgYSB2YWxpZCBvZmZzZXQgaW50byB0aGUgdGV4dAorKiBAcmV0dXJuIHRoZSBwYXJhZ3JhcGggc3R5bGUgaW4gZWZmZWN0IGF0IDxjb2RlPnBvczwvY29kZT4KKyovCisgICAgcHVibGljIEF0dHJpYnV0ZU1hcCBwYXJhZ3JhcGhTdHlsZUF0KGludCBwb3MpCisgICAgeworICAgICAgICBjaGVja1Bvcyhwb3MsIE5PVF9HUkVBVEVSX1RIQU5fTEVOR1RIKTsKKyAgICAgICAgcmV0dXJuIGZQYXJhZ3JhcGhCdWZmZXIucGFyYWdyYXBoU3R5bGVBdChwb3MpOworICAgIH0KKworLyoqCisqIFJldHVybiB0aGUgY3VycmVudCB0aW1lIHN0YW1wLiAgVGhlIHRpbWUgc3RhbXAgaXMKKyogaW5jcmVtZW50ZWQgd2hlbmV2ZXIgdGhlIGNvbnRlbnRzIG9mIHRoZSBNQ29uc3RUZXh0IGNoYW5nZXMuCisqIEByZXR1cm4gdGhlIGN1cnJlbnQgcGFyYWdyYXBoIHN0eWxlIHRpbWUgc3RhbXAKKyovCisgICAgcHVibGljIGludCBnZXRUaW1lU3RhbXAoKSB7CisKKyAgICAgICAgcmV0dXJuIGZUaW1lU3RhbXA7CisgICAgfQorCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBNVGV4dCBJTlRFUkZBQ0VTCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY2hhcmFjdGVyIG1vZGZpY2F0aW9uIGZ1bmN0aW9ucworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHByaXZhdGUgdm9pZCB1cGRhdGVEYW1hZ2VkUmFuZ2UoaW50IGRlbGV0ZVN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRlbGV0ZUxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGluc2VydExlbmd0aCkgeworCisgICAgICAgIGZEYW1hZ2VkUmFuZ2VbMF0gPSBNYXRoLm1pbihmRGFtYWdlZFJhbmdlWzBdLCBkZWxldGVTdGFydCk7CisKKyAgICAgICAgaWYgKGZEYW1hZ2VkUmFuZ2VbMV0gPj0gZGVsZXRlTGltaXQpIHsKKyAgICAgICAgICAgIGludCBsZW5ndGhDaGFuZ2UgPSBpbnNlcnRMZW5ndGggLSAoZGVsZXRlTGltaXQtZGVsZXRlU3RhcnQpOworICAgICAgICAgICAgZkRhbWFnZWRSYW5nZVsxXSArPSBsZW5ndGhDaGFuZ2U7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmRGFtYWdlZFJhbmdlWzFdID0gZGVsZXRlU3RhcnQgKyBpbnNlcnRMZW5ndGg7CisgICAgICAgIH0KKyAgICB9CisKKy8qKgorKiBSZXBsYWNlIHRoZSBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMgaW4gdGhlIHJhbmdlIFs8Y29kZT5zdGFydDwvY29kZT4sIDxjb2RlPmxpbWl0PC9jb2RlPikgd2l0aCB0aGUgY2hhcmFjdGVycworKiBhbmQgc3R5bGVzIGluIDxjb2RlPnNyY1RleHQ8L2NvZGU+IGluIHRoZSByYW5nZSBbPGNvZGU+c3JjU3RhcnQ8L2NvZGU+LCA8Y29kZT5zcmNMaW1pdDwvY29kZT4pLiAgPGNvZGU+c3JjVGV4dDwvY29kZT4gaXMgbm90CisqIG1vZGlmaWVkLgorKiBAcGFyYW0gc3RhcnQgdGhlIG9mZnNldCBhdCB3aGljaCB0aGUgcmVwbGFjZSBvcGVyYXRpb24gYmVnaW5zCisqIEBwYXJhbSBsaW1pdCB0aGUgb2Zmc2V0IGF0IHdoaWNoIHRoZSByZXBsYWNlIG9wZXJhdGlvbiBlbmRzLiAgVGhlIGNoYXJhY3RlciBhbmQgc3R5bGUgYXQKKyogPGNvZGU+bGltaXQ8L2NvZGU+IGlzIG5vdCBtb2RpZmllZC4KKyogQHBhcmFtIHNyY1RleHQgdGhlIHNvdXJjZSBmb3IgdGhlIG5ldyBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMKKyogQHBhcmFtIHNyY1N0YXJ0IHRoZSBvZmZzZXQgaW50byA8Y29kZT5zcmNUZXh0PC9jb2RlPiB3aGVyZSBuZXcgY2hhcmFjdGVycyBhbmQgc3R5bGVzIHdpbGwgYmUgb2J0YWluZWQKKyogQHBhcmFtIHNyY0xpbWl0IHRoZSBvZmZzZXQgaW50byA8Y29kZT5zcmNUZXh0PC9jb2RlPiB3aGVyZSB0aGUgbmV3IGNoYXJhY3RlcnMgYW5kIHN0eWxlcyBlbmQKKyovCisgICAgcHVibGljIHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgTUNvbnN0VGV4dCB0ZXh0LCBpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCkKKyAgICB7CisgICAgICAgIGlmICh0ZXh0ID09IHRoaXMpIHsKKyAgICAgICAgICAgIHRleHQgPSBuZXcgU3R5bGVkVGV4dCh0ZXh0KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzdGFydCA9PSBsaW1pdCAmJiBzcmNTdGFydCA9PSBzcmNMaW1pdCkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgY2hlY2tTdGFydExpbWl0KHN0YXJ0LCBsaW1pdCk7CisKKyAgICAgICAgdXBkYXRlRGFtYWdlZFJhbmdlKHN0YXJ0LCBsaW1pdCwgc3JjTGltaXQtc3JjU3RhcnQpOworCisgICAgICAgIGZDaGFyQnVmZmVyLnJlcGxhY2Uoc3RhcnQsIGxpbWl0LCB0ZXh0LCBzcmNTdGFydCwgc3JjTGltaXQpOworICAgICAgICBmU3R5bGVCdWZmZXIucmVwbGFjZShzdGFydCwgbGltaXQsIHRleHQsIHNyY1N0YXJ0LCBzcmNMaW1pdCk7CisgICAgICAgIGZQYXJhZ3JhcGhCdWZmZXIucmVwbGFjZShzdGFydCwgbGltaXQsIHRleHQsIHNyY1N0YXJ0LCBzcmNMaW1pdCwgZkRhbWFnZWRSYW5nZSk7CisgICAgICAgIGZUaW1lU3RhbXAgKz0gMTsKKyAgICB9CisKKy8qKgorKiBSZXBsYWNlIHRoZSBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMgaW4gdGhlIHJhbmdlIFs8Y29kZT5zdGFydDwvY29kZT4sIDxjb2RlPmxpbWl0PC9jb2RlPikgd2l0aCB0aGUgY2hhcmFjdGVycworKiBhbmQgc3R5bGVzIGluIDxjb2RlPnNyY1RleHQ8L2NvZGU+LiAgPGNvZGU+c3JjVGV4dDwvY29kZT4gaXMgbm90CisqIG1vZGlmaWVkLgorKiBAcGFyYW0gc3RhcnQgdGhlIG9mZnNldCBhdCB3aGljaCB0aGUgcmVwbGFjZSBvcGVyYXRpb24gYmVnaW5zCisqIEBwYXJhbSBsaW1pdCB0aGUgb2Zmc2V0IGF0IHdoaWNoIHRoZSByZXBsYWNlIG9wZXJhdGlvbiBlbmRzLiAgVGhlIGNoYXJhY3RlciBhbmQgc3R5bGUgYXQKKyogPGNvZGU+bGltaXQ8L2NvZGU+IGlzIG5vdCBtb2RpZmllZC4KKyogQHBhcmFtIHNyY1RleHQgdGhlIHNvdXJjZSBmb3IgdGhlIG5ldyBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMKKyovCisgICAgcHVibGljIHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgTUNvbnN0VGV4dCB0ZXh0KSB7CisKKyAgICAgICAgcmVwbGFjZShzdGFydCwgbGltaXQsIHRleHQsIDAsIHRleHQubGVuZ3RoKCkpOworICAgIH0KKworLyoqCisqIFJlcGxhY2UgdGhlIGNoYXJhY3RlcnMgaW4gdGhlIHJhbmdlIFs8Y29kZT5zdGFydDwvY29kZT4sIDxjb2RlPmxpbWl0PC9jb2RlPikgd2l0aCB0aGUgY2hhcmFjdGVycworKiBpbiA8Y29kZT5zcmNDaGFyczwvY29kZT4gaW4gdGhlIHJhbmdlIFs8Y29kZT5zcmNTdGFydDwvY29kZT4sIDxjb2RlPnNyY0xpbWl0PC9jb2RlPikuICBOZXcgY2hhcmFjdGVycyB0YWtlIG9uIHRoZSBzdHlsZQorKiA8Y29kZT5jaGFyc1N0eWxlPC9jb2RlPi4KKyogPGNvZGU+c3JjQ2hhcnM8L2NvZGU+IGlzIG5vdCBtb2RpZmllZC4KKyogQHBhcmFtIHN0YXJ0IHRoZSBvZmZzZXQgYXQgd2hpY2ggdGhlIHJlcGxhY2Ugb3BlcmF0aW9uIGJlZ2lucworKiBAcGFyYW0gbGltaXQgdGhlIG9mZnNldCBhdCB3aGljaCB0aGUgcmVwbGFjZSBvcGVyYXRpb24gZW5kcy4gIFRoZSBjaGFyYWN0ZXIgYXQKKyogPGNvZGU+bGltaXQ8L2NvZGU+IGlzIG5vdCBtb2RpZmllZC4KKyogQHBhcmFtIHNyY0NoYXJzIHRoZSBzb3VyY2UgZm9yIHRoZSBuZXcgY2hhcmFjdGVycworKiBAcGFyYW0gc3JjU3RhcnQgdGhlIG9mZnNldCBpbnRvIDxjb2RlPnNyY0NoYXJzPC9jb2RlPiB3aGVyZSBuZXcgY2hhcmFjdGVycyB3aWxsIGJlIG9idGFpbmVkCisqIEBwYXJhbSBzcmNMaW1pdCB0aGUgb2Zmc2V0IGludG8gPGNvZGU+c3JjQ2hhcnM8L2NvZGU+IHdoZXJlIHRoZSBuZXcgY2hhcmFjdGVycyBlbmQKKyogQHBhcmFtIGNoYXJzU3R5bGUgdGhlIHN0eWxlIG9mIHRoZSBuZXcgY2hhcmFjdGVycworKi8KKyAgICBwdWJsaWMgdm9pZCByZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBjaGFyW10gc3JjQ2hhcnMsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0LCBBdHRyaWJ1dGVNYXAgY2hhcnNTdHlsZSkKKyAgICB7CisgICAgICAgIGNoZWNrU3RhcnRMaW1pdChzdGFydCwgbGltaXQpOworCisgICAgICAgIGlmIChzdGFydCA9PSBsaW1pdCAmJiBzcmNTdGFydCA9PSBzcmNMaW1pdCkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgdXBkYXRlRGFtYWdlZFJhbmdlKHN0YXJ0LCBsaW1pdCwgc3JjTGltaXQtc3JjU3RhcnQpOworCisgICAgICAgIGZDaGFyQnVmZmVyLnJlcGxhY2Uoc3RhcnQsIGxpbWl0LCBzcmNDaGFycywgc3JjU3RhcnQsIHNyY0xpbWl0KTsKKworICAgICAgICByZXBsYWNlQ2hhclN0eWxlc1dpdGgoc3RhcnQsIGxpbWl0LCBzdGFydCArIChzcmNMaW1pdC1zcmNTdGFydCksIGNoYXJzU3R5bGUpOworCisgICAgICAgIGZQYXJhZ3JhcGhCdWZmZXIuZGVsZXRlVGV4dChzdGFydCwgbGltaXQsIGZEYW1hZ2VkUmFuZ2UpOworICAgICAgICBmUGFyYWdyYXBoQnVmZmVyLmluc2VydFRleHQoc3RhcnQsIHNyY0NoYXJzLCBzcmNTdGFydCwgc3JjTGltaXQpOworCisgICAgICAgIGZUaW1lU3RhbXAgKz0gMTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcmVwbGFjZUNoYXJTdHlsZXNXaXRoKGludCBzdGFydCwgaW50IG9sZExpbWl0LCBpbnQgbmV3TGltaXQsIEF0dHJpYnV0ZU1hcCBzdHlsZSkgeworCisgICAgICAgIGlmIChzdGFydCA8IG9sZExpbWl0KSB7CisgICAgICAgICAgICBmU3R5bGVCdWZmZXIuZGVsZXRlVGV4dChzdGFydCwgb2xkTGltaXQpOworICAgICAgICB9CisgICAgICAgIGlmIChzdGFydCA8IG5ld0xpbWl0KSB7CisgICAgICAgICAgICBpZiAoZm9yY2VNb2RpZmllciA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgZm9yY2VNb2RpZmllciA9IG5ldyBGb3JjZU1vZGlmaWVyKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3JjZU1vZGlmaWVyLnNldFN0eWxlKHN0eWxlKTsKKyAgICAgICAgICAgIGZTdHlsZUJ1ZmZlci5pbnNlcnRUZXh0KHN0YXJ0LCBuZXdMaW1pdCk7CisgICAgICAgICAgICBmU3R5bGVCdWZmZXIubW9kaWZ5U3R5bGVzKHN0YXJ0LCBuZXdMaW1pdCwgZm9yY2VNb2RpZmllciwgbnVsbCk7CisgICAgICAgIH0KKyAgICB9CisKKy8qKgorKiBSZXBsYWNlIHRoZSBjaGFyYWN0ZXJzIGluIHRoZSByYW5nZSBbPGNvZGU+c3RhcnQ8L2NvZGU+LCA8Y29kZT5saW1pdDwvY29kZT4pIHdpdGggdGhlIGNoYXJhY3RlciA8Y29kZT5zcmNDaGFyPC9jb2RlPi4KKyogVGhlIG5ldyBjaGFyYWN0ZXIgdGFrZXMgb24gdGhlIHN0eWxlIDxjb2RlPmNoYXJTdHlsZTwvY29kZT4KKyogQHBhcmFtIHN0YXJ0IHRoZSBvZmZzZXQgYXQgd2hpY2ggdGhlIHJlcGxhY2Ugb3BlcmF0aW9uIGJlZ2lucworKiBAcGFyYW0gbGltaXQgdGhlIG9mZnNldCBhdCB3aGljaCB0aGUgcmVwbGFjZSBvcGVyYXRpb24gZW5kcy4gIFRoZSBjaGFyYWN0ZXIgYXQKKyogPGNvZGU+bGltaXQ8L2NvZGU+IGlzIG5vdCBtb2RpZmllZC4KKyogQHBhcmFtIHNyY0NoYXIgdGhlIG5ldyBjaGFyYWN0ZXIKKyogQHBhcmFtIGNoYXJzU3R5bGUgdGhlIHN0eWxlIG9mIHRoZSBuZXcgY2hhcmFjdGVyCisqLworICAgIHB1YmxpYyB2b2lkIHJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIGNoYXIgc3JjQ2hhciwgQXR0cmlidXRlTWFwIGNoYXJTdHlsZSkKKyAgICB7CisgICAgICAgIGNoZWNrU3RhcnRMaW1pdChzdGFydCwgbGltaXQpOworCisgICAgICAgIHVwZGF0ZURhbWFnZWRSYW5nZShzdGFydCwgbGltaXQsIDEpOworCisgICAgICAgIGZDaGFyQnVmZmVyLnJlcGxhY2Uoc3RhcnQsIGxpbWl0LCBzcmNDaGFyKTsKKworICAgICAgICByZXBsYWNlQ2hhclN0eWxlc1dpdGgoc3RhcnQsIGxpbWl0LCBzdGFydCArIDEsIGNoYXJTdHlsZSk7CisKKyAgICAgICAgaWYgKHN0YXJ0IDwgbGltaXQpIHsKKyAgICAgICAgICAgIGZQYXJhZ3JhcGhCdWZmZXIuZGVsZXRlVGV4dChzdGFydCwgbGltaXQsIGZEYW1hZ2VkUmFuZ2UpOworICAgICAgICB9CisKKyAgICAgICAgZlBhcmFncmFwaEJ1ZmZlci5pbnNlcnRUZXh0KHN0YXJ0LCBzcmNDaGFyKTsKKworICAgICAgICBmVGltZVN0YW1wICs9IDE7CisgICAgfQorCisvKioKKyogUmVwbGFjZSB0aGUgZW50aXJlIGNvbnRlbnRzIG9mIHRoaXMgTVRleHQgKGJvdGggY2hhcmFjdGVycyBhbmQgc3R5bGVzKSB3aXRoCisqIHRoZSBjb250ZW50cyBvZiA8Y29kZT5zcmNUZXh0PC9jb2RlPi4KKyogQHBhcmFtIHNyY1RleHQgdGhlIHNvdXJjZSBmb3IgdGhlIG5ldyBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMKKyovCisgICAgcHVibGljIHZvaWQgcmVwbGFjZUFsbChNQ29uc3RUZXh0IHNyY1RleHQpCisgICAgeworICAgICAgICByZXBsYWNlKDAsIGxlbmd0aCgpLCBzcmNUZXh0LCAwLCBzcmNUZXh0Lmxlbmd0aCgpKTsKKyAgICB9CisKKy8qKgorKiBJbnNlcnQgdGhlIGNvbnRlbnRzIG9mIDxjb2RlPnNyY1RleHQ8L2NvZGU+IChib3RoIGNoYXJhY3RlcnMgYW5kIHN0eWxlcykgaW50byB0aGlzCisqIE1UZXh0IGF0IHRoZSBwb3NpdGlvbiBzcGVjaWZpZWQgYnkgPGNvZGU+cG9zPC9jb2RlPi4KKyogQHBhcmFtIHBvcyBUaGUgY2hhcmFjdGVyIG9mZnNldCB3aGVyZSB0aGUgbmV3IHRleHQgaXMgdG8gYmUgaW5zZXJ0ZWQuCisqIEBwYXJhbSBzcmNUZXh0IFRoZSB0ZXh0IHRvIGluc2VydC4KKyovCisgICAgcHVibGljIHZvaWQgaW5zZXJ0KGludCBwb3MsIE1Db25zdFRleHQgc3JjVGV4dCkKKyAgICB7CisgICAgICAgIHJlcGxhY2UocG9zLCBwb3MsIHNyY1RleHQsIDAsIHNyY1RleHQubGVuZ3RoKCkpOworICAgIH0KKworLyoqCisqIEFwcGVuZCB0aGUgY29udGVudHMgb2YgPGNvZGU+c3JjVGV4dDwvY29kZT4gKGJvdGggY2hhcmFjdGVycyBhbmQgc3R5bGVzKSB0byB0aGUKKyogZW5kIG9mIHRoaXMgTVRleHQuCisqIEBwYXJhbSBzcmNUZXh0IFRoZSB0ZXh0IHRvIGFwcGVuZC4KKyovCisgICAgcHVibGljIHZvaWQgYXBwZW5kKE1Db25zdFRleHQgc3JjVGV4dCkKKyAgICB7CisgICAgICAgIHJlcGxhY2UobGVuZ3RoKCksIGxlbmd0aCgpLCBzcmNUZXh0LCAwLCBzcmNUZXh0Lmxlbmd0aCgpKTsKKyAgICB9CisKKy8qKgorKiBEZWxldGUgdGhlIHNwZWNpZmllZCByYW5nZSBvZiBjaGFyYWN0ZXJzIChhbmQgc3R5bGVzKS4KKyogQHBhcmFtIHN0YXJ0IE9mZnNldCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIHRvIGRlbGV0ZS4KKyogQHBhcmFtIGxpbWl0IE9mZnNldCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGFmdGVyIHRoZSByYW5nZSB0byBkZWxldGUuCisqLworICAgIHB1YmxpYyB2b2lkIHJlbW92ZShpbnQgc3RhcnQsIGludCBsaW1pdCkKKyAgICB7CisgICAgICAgIHJlcGxhY2Uoc3RhcnQsIGxpbWl0LCAoY2hhcltdKW51bGwsIDAsIDAsIEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQKTsKKyAgICB9CisKKy8qKgorKiBEZWxldGUgYWxsIGNoYXJhY3RlcnMgYW5kIHN0eWxlcy4gIEFsd2F5cyBpbmNyZW1lbnRzIHRpbWUgc3RhbXAuCisqLworICAgIHB1YmxpYyB2b2lkIHJlbW92ZSgpCisgICAgeworICAgICAgICAvLyByYXRoZXIgdGhhbiBnb2luZyB0aHJvdWdoIHJlcGxhY2UoKSwganVzdCByZWluaXRpYWxpemUgdGhlIFN0eWxlZFRleHQsCisgICAgICAgIC8vIGxldHRpbmcgdGhlIG9sZCBkYXRhIHN0cnVjdHVyZXMgZmFsbCBvbiB0aGUgZmxvb3IKKyAgICAgICAgZkNoYXJCdWZmZXIgPSBuZXcgQ2hhckJ1ZmZlcigpOworICAgICAgICBmU3R5bGVCdWZmZXIgPSBuZXcgU3R5bGVCdWZmZXIodGhpcywgQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVApOworICAgICAgICBmUGFyYWdyYXBoQnVmZmVyID0gbmV3IFBhcmFncmFwaEJ1ZmZlcihmQ2hhckJ1ZmZlcik7CisgICAgICAgIGZUaW1lU3RhbXAgKz0gMTsKKyAgICAgICAgZkRhbWFnZWRSYW5nZVswXSA9IGZEYW1hZ2VkUmFuZ2VbMV0gPSAwOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBzdG9yYWdlIG1hbmFnZW1lbnQKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8qKgorKiBNaW5pbWl6ZSB0aGUgYW1vdW50IG9mIG1lbW9yeSB1c2VkIGJ5IHRoZSBNVGV4dCBvYmplY3QuCisqLworICAgIHB1YmxpYyB2b2lkIGNvbXByZXNzKCkgeworCisgICAgICAgIGZDaGFyQnVmZmVyLmNvbXByZXNzKCk7CisgICAgICAgIGZTdHlsZUJ1ZmZlci5jb21wcmVzcygpOworICAgICAgICBmUGFyYWdyYXBoQnVmZmVyLmNvbXByZXNzKCk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHN0eWxlIG1vZGlmaWNhdGlvbgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLyoqCisqIFNldCB0aGUgc3R5bGUgb2YgYWxsIGNoYXJhY3RlcnMgaW4gdGhlIE1UZXh0IG9iamVjdCB0bworKiA8Y29kZT5BdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUDwvY29kZT4uCisqLworICAgIHB1YmxpYyB2b2lkIHJlbW92ZUNoYXJhY3RlclN0eWxlcygpIHsKKworICAgICAgICBmU3R5bGVCdWZmZXIgPSBuZXcgU3R5bGVCdWZmZXIodGhpcywgQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVApOworICAgICAgICBmVGltZVN0YW1wICs9IDE7CisgICAgICAgIGZEYW1hZ2VkUmFuZ2VbMF0gPSAwOworICAgICAgICBmRGFtYWdlZFJhbmdlWzFdID0gbGVuZ3RoKCk7CisgICAgfQorCisvKioKKyogSW52b2tlIHRoZSBnaXZlbiBtb2RpZmllciBvbiBhbGwgY2hhcmFjdGVyIHN0eWxlcyBmcm9tIHN0YXJ0IHRvIGxpbWl0LgorKiBAcGFyYW0gbW9kaWZpZXIgdGhlIG1vZGlmaWVyIHRvIGFwcGx5IHRvIHRoZSByYW5nZS4KKyogQHBhcmFtIHN0YXJ0IHRoZSBzdGFydCBvZiB0aGUgcmFuZ2Ugb2YgdGV4dCB0byBtb2RpZnkuCisqIEBwYXJhbSBsaW1pdCB0aGUgbGltaXQgb2YgdGhlIHJhbmdlIG9mIHRleHQgdG8gbW9kaWZ5LgorKi8KKyAgICBwdWJsaWMgdm9pZCBtb2RpZnlDaGFyYWN0ZXJTdHlsZXMoaW50IHN0YXJ0LCBpbnQgbGltaXQsIFN0eWxlTW9kaWZpZXIgbW9kaWZpZXIpIHsKKworICAgICAgICBjaGVja1N0YXJ0TGltaXQoc3RhcnQsIGxpbWl0KTsKKyAgICAgICAgYm9vbGVhbiBtb2RpZmllZCA9IGZTdHlsZUJ1ZmZlci5tb2RpZnlTdHlsZXMoc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkRhbWFnZWRSYW5nZSk7CisgICAgICAgIGlmIChtb2RpZmllZCkgeworICAgICAgICAgICAgZlRpbWVTdGFtcCArPSAxOworICAgICAgICB9CisgICAgfQorCisvKioKKyogSW52b2tlIHRoZSBnaXZlbiBtb2RpZmllciBvbiBhbGwgcGFyYWdyYXBoIHN0eWxlcyBpbiBwYXJhZ3JhcGhzCisqIGNvbnRhaW5pbmcgY2hhcmFjdGVycyBpbiB0aGUgcmFuZ2UgW3N0YXJ0LCBsaW1pdCkuCisqIEBwYXJhbSBtb2RpZmllciB0aGUgbW9kaWZpZXIgdG8gYXBwbHkgdG8gdGhlIHJhbmdlLgorKiBAcGFyYW0gc3RhcnQgdGhlIHN0YXJ0IG9mIHRoZSByYW5nZSBvZiB0ZXh0IHRvIG1vZGlmeS4KKyogQHBhcmFtIGxpbWl0IHRoZSBsaW1pdCBvZiB0aGUgcmFuZ2Ugb2YgdGV4dCB0byBtb2RpZnkuCisqLworICAgIHB1YmxpYyB2b2lkIG1vZGlmeVBhcmFncmFwaFN0eWxlcyhpbnQgc3RhcnQsIGludCBsaW1pdCwgU3R5bGVNb2RpZmllciBtb2RpZmllcikgeworCisgICAgICAgIGNoZWNrU3RhcnRMaW1pdChzdGFydCwgbGltaXQpOworICAgICAgICBib29sZWFuIG1vZGlmaWVkID0gZlBhcmFncmFwaEJ1ZmZlci5tb2RpZnlQYXJhZ3JhcGhTdHlsZXMoc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkRhbWFnZWRSYW5nZSk7CisgICAgICAgIGlmIChtb2RpZmllZCkgeworICAgICAgICAgICAgZlRpbWVTdGFtcCArPSAxOworICAgICAgICB9CisgICAgfQorCisvKioKKyogUmVzZXQgdGhlIGRhbWFnZWQgcmFuZ2UgdG8gYW4gZW1wdHkgaW50ZXJ2YWwsIGFuZCBiZWdpbiBhY2N1bXVsYXRpbmcgdGhlIGRhbWFnZWQKKyogcmFuZ2UuICBUaGUgZGFtYWdlZCByYW5nZSBpbmNsdWRlcyBldmVyeSBpbmRleCB3aGVyZSBhIGNoYXJhY3RlciwgY2hhcmFjdGVyIHN0eWxlLAorKiBvciBwYXJhZ3JhcGggc3R5bGUgaGFzIGNoYW5nZWQuCisqIEBzZWUgI2RhbWFnZWRSYW5nZVN0YXJ0CisqIEBzZWUgI2RhbWFnZWRSYW5nZUxpbWl0CisqLworICAgIHB1YmxpYyB2b2lkIHJlc2V0RGFtYWdlZFJhbmdlKCkgeworCisgICAgICAgIGZEYW1hZ2VkUmFuZ2VbMF0gPSBJbnRlZ2VyLk1BWF9WQUxVRTsKKyAgICAgICAgZkRhbWFnZWRSYW5nZVsxXSA9IEludGVnZXIuTUlOX1ZBTFVFOworICAgIH0KKworLyoqCisqIFJldHVybiB0aGUgc3RhcnQgb2YgdGhlIGRhbWFnZWQgcmFuZ2UuCisqIElmIHRoZSBzdGFydCBpcworKiA8Y29kZT5JbnRlZ2VyLk1BWF9WQUxVRTwvY29kZT4gYW5kIHRoZSBsaW1pdCBpcworKiA8Y29kZT5JbnRlZ2VyLk1JTl9WQUxVRTwvY29kZT4sIHRoZW4gdGhlIGRhbWFnZWQgcmFuZ2UKKyogaXMgZW1wdHkuCisqIEByZXR1cm4gdGhlIHN0YXJ0IG9mIHRoZSBkYW1hZ2VkIHJhbmdlCisqIEBzZWUgI2RhbWFnZWRSYW5nZUxpbWl0CisqIEBzZWUgI3Jlc2V0RGFtYWdlZFJhbmdlCisqLworICAgIHB1YmxpYyBpbnQgZGFtYWdlZFJhbmdlU3RhcnQoKSB7CisKKyAgICAgICAgcmV0dXJuIGZEYW1hZ2VkUmFuZ2VbMF07CisgICAgfQorCisvKioKKyogUmV0dXJuIHRoZSBsaW1pdCBvZiB0aGUgZGFtYWdlZCByYW5nZS4KKyogSWYgdGhlIHN0YXJ0IGlzCisqIDxjb2RlPkludGVnZXIuTUFYX1ZBTFVFPC9jb2RlPiBhbmQgdGhlIGxpbWl0IGlzCisqIDxjb2RlPkludGVnZXIuTUlOX1ZBTFVFPC9jb2RlPiwgdGhlbiB0aGUgZGFtYWdlZCByYW5nZQorKiBpcyBlbXB0eS4KKyogQHJldHVybiB0aGUgbGltaXQgb2YgdGhlIGRhbWFnZWQgcmFuZ2UKKyogQHNlZSAjZGFtYWdlZFJhbmdlU3RhcnQKKyogQHNlZSAjcmVzZXREYW1hZ2VkUmFuZ2UKKyovCisgICAgcHVibGljIGludCBkYW1hZ2VkUmFuZ2VMaW1pdCgpIHsKKworICAgICAgICByZXR1cm4gZkRhbWFnZWRSYW5nZVsxXTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSIiOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgIHJlc3VsdCArPSBhdChpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gSU1QTEVNRU5UQVRJT04KKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyogY2hlY2sgYSByYW5nZSB0byBzZWUgaWYgaXQgaXMgd2VsbCBmb3JtZWQgYW5kIHdpdGhpbiB0aGUgYm91bmRzIG9mIHRoZSB0ZXh0ICovCisgICAgcHJpdmF0ZSB2b2lkIGNoZWNrU3RhcnRMaW1pdChpbnQgc3RhcnQsIGludCBsaW1pdCkKKyAgICB7CisgICAgICAgIGlmIChzdGFydCA+IGxpbWl0KSB7CisgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiU3RhcnQgaXMgbGVzcyB0aGFuIGxpbWl0LiBzdGFydDoiK3N0YXJ0KyI7IGxpbWl0OiIrbGltaXQpOworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiU3RhcnQgaXMgZ3JlYXRlciB0aGFuIGxpbWl0LiBzdGFydDoiK3N0YXJ0KyI7IGxpbWl0OiIrbGltaXQpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHN0YXJ0IDwgMCkgeworICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIlN0YXJ0IGlzIG5lZ2F0aXZlLiBzdGFydDoiK3N0YXJ0KTsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlN0YXJ0IGlzIG5lZ2F0aXZlLiBzdGFydDoiK3N0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChsaW1pdCA+IGxlbmd0aCgpKSB7CisgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiTGltaXQgaXMgZ3JlYXRlciB0aGFuIGxlbmd0aC4gIGxpbWl0OiIrbGltaXQpOworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiTGltaXQgaXMgZ3JlYXRlciB0aGFuIGxlbmd0aC4gIGxpbWl0OiIrbGltaXQpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBMRVNTX1RIQU5fTEVOR1RIID0gZmFsc2U7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBOT1RfR1JFQVRFUl9USEFOX0xFTkdUSCA9IHRydWU7CisKKyAgICBwcml2YXRlIHZvaWQgY2hlY2tQb3MoaW50IHBvcywgYm9vbGVhbiBlbmRBbGxvd2VkKSB7CisKKyAgICAgICAgaW50IGxhc3RWYWxpZFBvcyA9IGxlbmd0aCgpOworICAgICAgICBpZiAoZW5kQWxsb3dlZCA9PSBMRVNTX1RIQU5fTEVOR1RIKSB7CisgICAgICAgICAgICAtLWxhc3RWYWxpZFBvczsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChwb3MgPCAwIHx8IHBvcyA+IGxhc3RWYWxpZFBvcykgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiUG9zaXRpb24gaXMgb3V0IG9mIHJhbmdlLiIpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9UYWJTdG9wLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L1RhYlN0b3AuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iNTc4ODljCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9UYWJTdG9wLmphdmEKQEAgLTAsMCArMSwxODUgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IFRhYlN0b3AuamF2YSx2ICQgJFJldmlzaW9uOiAxLjEgJCAkRGF0ZTogMjAwMC8wNC8yMCAxNzo0NToxMCAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQ7CisKK2ltcG9ydCBqYXZhLmlvLkV4dGVybmFsaXphYmxlOworaW1wb3J0IGphdmEuaW8uT2JqZWN0SW5wdXQ7CitpbXBvcnQgamF2YS5pby5PYmplY3RPdXRwdXQ7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKKworLyoqCisgKiBUYWJTdG9wIHJlcHJlc2VudHMgYSBwb3NpdGlvbiBvbiBhIHRhYiBydWxlci4gIEVhY2ggdGFiIHN0b3AgaGFzIGEKKyAqIHBvc2l0aW9uLCBnaXZpbmcgaXRzIGxvY2F0aW9uIG9uIHRoZSBydWxlciwgYW5kIG9uZSBvZiBzZXZlcmFsCisgKiB0eXBlcy4gIFRoZSB0eXBlIGRldGVybWluZXMgaG93IGEgc2VnbWVudCBjb250cm9sZWQgYnkgdGhpcyBUYWJTdG9wCisgKiBpcyBwb3NpdGlvbmVkIG9uIGEgbGluZToKKyAqIDx1bD4KKyAqIDxsaT48Y29kZT5rTGVhZGluZzwvY29kZT4gLSB0aGUgbGVhZGluZyBlZGdlIG9mIHRoZSBzZWdtZW50IGlzIGFsaWduZWQgdG8KKyAqICAgICB0aGUgVGFiU3RvcCdzIHBvc2l0aW9uPC9saT4KKyAqIDxsaT48Y29kZT5rQ2VudGVyPC9jb2RlPiAtIHRoZSBzZWdtZW50IGlzIGNlbnRlcmVkIG9uIHRoaXMgVGFiU3RvcCdzCisgKiAgICAgcG9zaXRpb248L2xpPgorICogPGxpPjxjb2RlPmtUcmFpbGluZzwvY29kZT4gLSB0aGUgdHJhaWxpbmcgZWRnZSBvZiB0aGUgc2VnbWVudCBpcyBhbGlnbmVkIHRvCisgKiAgICAgdGhlIFRhYlN0b3AncyBwb3NpdGlvbjwvbGk+CisgKiA8bGk+PGNvZGU+a0RlY2ltYWw8L2NvZGU+IC0gdGhlIGZpcnN0IGRlY2ltYWwgaW4gdGhlIHNlZ21lbnQgaXMgYWxpZ25lZCB0bworICogICAgIHRoZSBUYWJTdG9wJ3MgcG9zaXRpb248L2xpPgorICogPGxpPjxjb2RlPmtBdXRvPC9jb2RlPiAtIHNlbWFudGljYWxseSB0aGUgc2FtZSBhcyA8Y29kZT5rTGVhZGluZzwvY29kZT4uCisgKiAgICAgVXNlZCBieSB0YWIgcnVsZXJzIHRvIGluZGljYXRlIHRoYXQgYWxsIHN1YnNlcXVlbnQgdGFiIHN0b3BzCisgKiAgICAgd2lsbCBiZSBhdCBhdXRvc3BhY2VkIGludGVydmFscy48L2xpPgorICogPC91bD4KKyAqIEBzZWUgTVRhYlJ1bGVyCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBUYWJTdG9wIGltcGxlbWVudHMgRXh0ZXJuYWxpemFibGUKK3sKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDVVJSRU5UX1ZFUlNJT04gPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDIyMzU2OTM0OworCisgICAgcHJpdmF0ZSBieXRlIGZUeXBlOyAgICAvLyBsZWZ0LCBjZW50ZXIsIHJpZ2h0LCBkZWNpbWFsCisgICAgcHJpdmF0ZSBpbnQgZlBvc2l0aW9uOyAvLyB0YWIgc3RvcCBwb3NpdGlvbiBmcm9tIGxpbmUgb3JpZ2luLgorCisgICAgLyoqCisgICAgICogQSBUYWJTdG9wIHdpdGggdGhpcyB0eXBlIGFsaWducyBpdHMgc2VnbWVudCdzIGxlYWRpbmcgZWRnZQorICAgICAqIHRvIHRoZSBUYWJTdG9wJ3MgcG9zaXRpb24uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIGtMZWFkaW5nID0gMDsKKworICAgIC8qKgorICAgICAqIEEgVGFiU3RvcCB3aXRoIHRoaXMgdHlwZSBhbGlnbnMgaXRzIHNlZ21lbnQncyBjZW50ZXIKKyAgICAgKiB0byB0aGUgVGFiU3RvcCdzIHBvc2l0aW9uLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBrQ2VudGVyID0gMTsKKworICAgIC8qKgorICAgICAqIEEgVGFiU3RvcCB3aXRoIHRoaXMgdHlwZSBhbGlnbnMgaXRzIHNlZ21lbnQncyB0cmFpbGluZyBlZGdlCisgICAgICogdG8gdGhlIFRhYlN0b3AncyBwb3NpdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUga1RyYWlsaW5nID0gMjsKKworICAgIC8qKgorICAgICAqIEEgVGFiU3RvcCB3aXRoIHRoaXMgdHlwZSBhbGlnbnMgaXRzIHNlZ21lbnQncyBmaXJzdCBkZWNpbWFsCisgICAgICogdG8gdGhlIFRhYlN0b3AncyBwb3NpdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUga0RlY2ltYWwgPSAzOworCisgICAgLyoqCisgICAgICogQSBUYWJTdG9wIHdpdGggdGhpcyB0eXBlIGFsaWducyBpdHMgc2VnbWVudCdzIGxlYWRpbmcgZWRnZQorICAgICAqIHRvIHRoZSBUYWJTdG9wJ3MgcG9zaXRpb24uICBBZnRlciBhIFRhYlN0b3Agb2YgdGhpcyB0eXBlLAorICAgICAqIGFsbCB0YWJzIGFyZSBhdCBhdXRvc3BhY2UgaW50ZXJ2YWxzLiAgVXN1YWxseSwgY2xpZW50cyB3aWxsCisgICAgICogbm90IGNvbnN0cnVjdCBUYWJTdG9wcyB3aXRoIHRoaXMgdHlwZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUga0F1dG8gPSA0OworCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgVGFiU3RvcCB3aXRoIHBvc2l0aW9uIDAgYW5kIHR5cGUgPGNvZGU+a0xlYWRpbmc8L2NvZGU+LgorICAgICAqLworICAgIHB1YmxpYyBUYWJTdG9wKCkgeworCisgICAgICAgdGhpcygwLCBrTGVhZGluZyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgVGFiU3RvcCB3aXRoIHRoZSBnaXZlbiBwb3NpdGlvbiBhbmQgdHlwZS4KKyAgICAgKiBAcGFyYW0gcG9zaXRpb24gdGhlIFRhYlN0b3AncyBwb3NpdGlvbgorICAgICAqIEBwYXJhbSB0eXBlIHRoZSBUYWJTdG9wJ3MgdHlwZS4gIE11c3QgYmUgb25lIG9mIGNvbnN0YW50cworICAgICAqICAgICAgaW4gdGhpcyBjbGFzcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgVGFiU3RvcChpbnQgcG9zaXRpb24sIGJ5dGUgdHlwZSkgeworCisgICAgICAgIGlmICh0eXBlIDwga0xlYWRpbmcgfHwgdHlwZSA+IGtBdXRvKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIHRhYiB0eXBlIik7CisgICAgICAgIH0KKworICAgICAgICBmUG9zaXRpb24gPSBwb3NpdGlvbjsKKyAgICAgICAgZlR5cGUgPSB0eXBlOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlYWRFeHRlcm5hbChPYmplY3RJbnB1dCBpbikgdGhyb3dzIElPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGFzc05vdEZvdW5kRXhjZXB0aW9uIHsKKworICAgICAgICBpbnQgdmVyc2lvbiA9IGluLnJlYWRJbnQoKTsKKyAgICAgICAgaWYgKHZlcnNpb24gIT0gQ1VSUkVOVF9WRVJTSU9OKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oIkludmFsaWQgdmVyc2lvbiBvZiBUYWJTdG9wLiIpOworICAgICAgICB9CisgICAgICAgIGZQb3NpdGlvbiA9IGluLnJlYWRJbnQoKTsKKyAgICAgICAgZlR5cGUgPSBpbi5yZWFkQnl0ZSgpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlRXh0ZXJuYWwoT2JqZWN0T3V0cHV0IG91dCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKworICAgICAgICBvdXQud3JpdGVJbnQoQ1VSUkVOVF9WRVJTSU9OKTsKKyAgICAgICAgb3V0LndyaXRlSW50KGZQb3NpdGlvbik7CisgICAgICAgIG91dC53cml0ZUJ5dGUoZlR5cGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhcmUgdGhpcyB0byBhbm90aGVyIE9iamVjdC4gIFRhYlN0b3BzIGFyZSBlcXVhbCBpZgorICAgICAqIHRoZWlyIHBvc2l0aW9uIGFuZCB0eXBlIGFyZSB0aGUgc2FtZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IHJocykKKyAgICB7CisgICAgICAgIGlmIChyaHMgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgVGFiU3RvcCByaHNUYWI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByaHNUYWIgPSAoVGFiU3RvcCkgcmhzOworICAgICAgICB9CisgICAgICAgIGNhdGNoKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZlR5cGUgPT0gcmhzVGFiLmZUeXBlICYmIGZQb3NpdGlvbiA9PSByaHNUYWIuZlBvc2l0aW9uOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgaGFzaCBjb2RlIGZvciB0aGlzIFRhYlN0b3AuICBUaGUgaGFzaCBjb2RlIGlzCisgICAgICogPGNvZGU+cG9zaXRpb24gPDwgdHlwZTwvY29kZT4uCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKworICAgICAgICByZXR1cm4gZlBvc2l0aW9uIDw8IGZUeXBlOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKQorICAgIHsKKyAgICAgICAgY2hhciB0eXBlQ2hhcjsKKyAgICAgICAgc3dpdGNoIChmVHlwZSkgeworICAgICAgICAgICAgY2FzZSBrTGVhZGluZzogdHlwZUNoYXIgPSAnTCc7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBrQ2VudGVyOiB0eXBlQ2hhciA9ICdDJzsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIGtUcmFpbGluZzogdHlwZUNoYXIgPSAnUic7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBrRGVjaW1hbDogdHlwZUNoYXIgPSAnRCc7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBrQXV0bzogdHlwZUNoYXIgPSAnQSc7IGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDogdHlwZUNoYXIgPSAnPyc7IGJyZWFrOworICAgICAgICB9CisgICAgICAgIHJldHVybiAiVGFiU3RvcFsiICsgSW50ZWdlci50b1N0cmluZyhmUG9zaXRpb24pICsgdHlwZUNoYXIgKyAnXSc7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB0eXBlIG9mIHRoaXMgVGFiU3RvcC4gIFdpbGwgYmUgb25lIG9mIHRoZSBjb25zdGFudHMKKyAgICAgKiBpbiB0aGlzIGNsYXNzLgorICAgICAqLworICAgIHB1YmxpYyBieXRlIGdldFR5cGUoKSB7CisgICAgICAgIHJldHVybiBmVHlwZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHBvc2l0aW9uIG9mIHRoaXMgVGFiU3RvcC4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFBvc2l0aW9uKCkgeworICAgICAgICByZXR1cm4gZlBvc2l0aW9uOworICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9UZXN0RmFzdEludEJpbmFyeVNlYXJjaC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9UZXN0RmFzdEludEJpbmFyeVNlYXJjaC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA0Y2JmMGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L1Rlc3RGYXN0SW50QmluYXJ5U2VhcmNoLmphdmEKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogVGVzdEZhc3RJbnRCaW5hcnlTZWFyY2guamF2YSx2ICQgJFJldmlzaW9uOiAxLjEgJCAkRGF0ZTogMjAwMC8wNC8yMCAxNzo0NToxMCAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQ7CisKK2ZpbmFsIGNsYXNzIFRlc3RGYXN0SW50QmluYXJ5U2VhcmNoIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworCisgICAgICAgIGJvb2xlYW4gcmVzdWx0ID0gbmV3IFRlc3RGYXN0SW50QmluYXJ5U2VhcmNoKCkudGVzdCgpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocmVzdWx0PyAiUEFTU0VEIiA6ICJGQUlMRUQiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiB0ZXN0KCkgeworCisgICAgICAgIGJvb2xlYW4gcmVzdWx0ID0gdHJ1ZTsKKyAgICAgICAgaW50W10gdGVzdCA9IHstNSwgLTMsIDAsIDIsIDV9OworICAgICAgICBGYXN0SW50QmluYXJ5U2VhcmNoIGZpYnMgPSBuZXcgRmFzdEludEJpbmFyeVNlYXJjaCh0ZXN0KTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCAyOyBpKyspIHsKKyAgICAgICAgICAgIGludCBiZWZvcmVBbnkgPSBmaWJzLmZpbmRJbmRleCgtNik7CisgICAgICAgICAgICBpZiAoYmVmb3JlQW55ICE9IC0xKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBhdEVuZCA9IGZpYnMuZmluZEluZGV4KDUpOworICAgICAgICAgICAgaWYgKGF0RW5kICE9IHRlc3QubGVuZ3RoLTEpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IGFmdGVyQW55ID0gZmlicy5maW5kSW5kZXgoNik7CisgICAgICAgICAgICBpZiAoYWZ0ZXJBbnkgIT0gdGVzdC5sZW5ndGgtMSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgZXhhY3RseSA9IGZpYnMuZmluZEluZGV4KC0zKTsKKyAgICAgICAgICAgIGlmIChleGFjdGx5ICE9IDEpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgZmlicyA9IG5ldyBGYXN0SW50QmluYXJ5U2VhcmNoKG5ldyBpbnRbXSB7MjAsIDQwfSk7CisgICAgICAgICAgICBmaWJzLnNldERhdGEodGVzdCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvVmFsaWRhdGlvbi5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9WYWxpZGF0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmVmN2I1NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvVmFsaWRhdGlvbi5qYXZhCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IFZhbGlkYXRpb24uamF2YSx2ICQgJFJldmlzaW9uOiAxLjEgJCAkRGF0ZTogMjAwMC8wNC8yMCAxNzo0NToxMCAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQ7CisKKy8qKgorICogSXRlcmF0b3JzIHVzZSB0aGlzIGNsYXNzIHRvIGtlZXAgZnJvbSBnZXR0aW5nIG91dCBvZiBzeW5jIHdpdGgKKyAqIHRoZWlyIHVuZGVybHlpbmcgZGF0YS4gIFdoZW4gY3JlYXRlZCwgdGhlIGl0ZXJhdG9yIGdldHMgYQorICogVmFsaWRhdGlvbiBpbnN0YW5jZS4gIElmIHRoZSB1bmRlcmx5aW5nIGRhdGEgY2hhbmdlcywgdGhlIFZhbGlkYXRpb24KKyAqIGJlY29tZXMgaW52YWxpZC4gIFVzdWFsbHkgaXRlcmF0b3JzIHdpbGwgdGhyb3cgZXhjZXB0aW9ucyBpZiBhY2Nlc3NlZAorICogYWZ0ZXIgYmVjb21pbmcgaW52YWxpZC4KKyAqLworZmluYWwgY2xhc3MgVmFsaWRhdGlvbiB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgYm9vbGVhbiBmSXNWYWxpZCA9IHRydWU7CisKKyAgICBib29sZWFuIGlzVmFsaWQoKSB7CisKKyAgICAgICAgcmV0dXJuIGZJc1ZhbGlkOworICAgIH0KKworICAgIHZvaWQgaW52YWxpZGF0ZSgpIHsKKworICAgICAgICBmSXNWYWxpZCA9IGZhbHNlOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvcGFja2FnZS5odG1sIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGQ1ODBkMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvcGFja2FnZS5odG1sCkBAIC0wLDAgKzEsNSBAQAorPGh0bWw+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CitQcm92aWRlcyBzdHlsZWQgdGV4dCBzdG9yYWdlIGFuZCByZWxhdGVkIGNsYXNzZXMuCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ2RlbW8vU3dpbmdDb2RlRWRpdC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmdkZW1vL1N3aW5nQ29kZUVkaXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40MmVlNDk1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmdkZW1vL1N3aW5nQ29kZUVkaXQuamF2YQpAQCAtMCwwICsxLDQ4IEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBTd2luZ0NvZGVFZGl0LmphdmEsdiAkICRSZXZpc2lvbjogMS4xICQgJERhdGU6IDIwMDAvMDQvMjAgMTc6NDU6NDIgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zd2luZ2RlbW87CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmRlbW8uQ29kZUVkaXQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5kZW1vLkRvY3VtZW50V2luZG93OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuZGVtby5TeW50YXhDb2xvcmVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuZGVtby5UZXh0RG9jdW1lbnQ7CisKK3B1YmxpYyBjbGFzcyBTd2luZ0NvZGVFZGl0IGV4dGVuZHMgQ29kZUVkaXQgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAKKyAgICAgICAgbmV3IFN3aW5nQ29kZUVkaXQoYXJncywgMCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTd2luZ0NvZGVFZGl0KFN0cmluZ1tdIGFyZ3MsIGludCBzdGFydCkgeworICAgIAorICAgICAgICBzdXBlcihhcmdzLCBzdGFydCk7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBEb2N1bWVudFdpbmRvdyBjcmVhdGVEb2N1bWVudFdpbmRvdyhUZXh0RG9jdW1lbnQgZG9jdW1lbnQpIHsKKworICAgICAgICByZXR1cm4gbmV3IFN3aW5nRG9jdW1lbnRXaW5kb3codGhpcywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZTZXR0aW5ncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN5bnRheENvbG9yZXIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbnVzKTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmdkZW1vL1N3aW5nRG9jdW1lbnRXaW5kb3cuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5nZGVtby9Td2luZ0RvY3VtZW50V2luZG93LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjkzZjZlNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5nZGVtby9Td2luZ0RvY3VtZW50V2luZG93LmphdmEKQEAgLTAsMCArMSwyODAgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IFN3aW5nRG9jdW1lbnRXaW5kb3cuamF2YSx2ICQgJFJldmlzaW9uOiAxLjIgJCAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNjozNyAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN3aW5nZGVtbzsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLkpUZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuVGV4dFBhbmVsTGlzdGVuZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuVGV4dFBhbmVsU2V0dGluZ3M7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVkVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVNb2RpZmllcjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3dpbmd1aS5KVGFiUnVsZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zd2luZ3VpLlN3aW5nTWVudUJ1aWxkZXI7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnByaW50LlByaW50aW5nVXRpbHM7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmRlbW8uQXd0RG9jdW1lbnRXaW5kb3c7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5kZW1vLkRvY3VtZW50V2luZG93OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuZGVtby5FZGl0QXBwbGljYXRpb247CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5kZW1vLkVkaXRvclJlc291cmNlczsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmRlbW8uUmVzb3VyY2VVdGlsczsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmRlbW8uVGV4dERvY3VtZW50OworCitpbXBvcnQgamF2YS5hd3QuQm9yZGVyTGF5b3V0OworaW1wb3J0IGphdmEuYXd0LkZpbGVEaWFsb2c7CitpbXBvcnQgamF2YS5hd3QuRnJhbWU7CisKK2ltcG9ydCBqYXZheC5zd2luZy5KRnJhbWU7CitpbXBvcnQgamF2YXguc3dpbmcuSk1lbnU7CitpbXBvcnQgamF2YXguc3dpbmcuSk1lbnVCYXI7CitpbXBvcnQgamF2YXguc3dpbmcuSk9wdGlvblBhbmU7CitpbXBvcnQgamF2YXguc3dpbmcuV2luZG93Q29uc3RhbnRzOworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93QWRhcHRlcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dFdmVudDsKKworaW1wb3J0IGphdmEuaW8uRmlsZTsKKworaW1wb3J0IGphdmEudGV4dC5NZXNzYWdlRm9ybWF0OworCisvKioKKyAqIEF3dERvY3VtZW50V2luZG93IGlzIGEgRnJhbWUgY29udGFpbmluZyBhIFRleHRQYW5lbCwgd2l0aCBhIGRvY3VtZW50CisgKiBmb3Igc3RvcmluZyB0aGUgdGV4dCBpbiB0aGUgVGV4dFBhbmVsLgorICovCitmaW5hbCBjbGFzcyBTd2luZ0RvY3VtZW50V2luZG93IGV4dGVuZHMgSkZyYW1lIGltcGxlbWVudHMgRG9jdW1lbnRXaW5kb3cgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKworICAgIHByaXZhdGUgSlRleHRQYW5lbCBmVGV4dFBhbmVsOworICAgIHByaXZhdGUgRWRpdEFwcGxpY2F0aW9uIGZBcHBsaWNhdGlvbjsKKyAgICBwcml2YXRlIFRleHREb2N1bWVudCBmRG9jdW1lbnQ7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBuZXcgQXd0RG9jdW1lbnRXaW5kb3cuCisgICAgICogQHBhcmFtIGFwcGxpY2F0aW9uIHRoZSBhcHBsaWNhdGlvbiB0aGF0IG93bnMgdGhpcyBkb2N1bWVudAorICAgICAqIEBwYXJhbSBjbGlwYm9hcmQgdGhlIGNsaXBib2FyZCB0byB1c2UKKyAgICAgKiBAcGFyYW0gZG9jdW1lbnQgdGhlIGRvY3VtZW50IHRvIHNob3cgaW4gdGhpcyBBd3REb2N1bWVudFdpbmRvdworICAgICAqLworICAgIFN3aW5nRG9jdW1lbnRXaW5kb3coRWRpdEFwcGxpY2F0aW9uIGFwcGxpY2F0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgVGV4dERvY3VtZW50IGRvY3VtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgVGV4dFBhbmVsU2V0dGluZ3MgdGV4dFBhbmVsU2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHVzZVRhYlJ1bGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgVGV4dFBhbmVsTGlzdGVuZXIgbGlzdGVuZXIsCisgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHN1cHBvcnRTdHlsZWRUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBzdXBwb3J0UGxhaW5UZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gbWVudXMpIHsKKworICAgICAgICBmQXBwbGljYXRpb24gPSBhcHBsaWNhdGlvbjsKKyAgICAgICAgc2V0RGVmYXVsdENsb3NlT3BlcmF0aW9uKFdpbmRvd0NvbnN0YW50cy5ET19OT1RISU5HX09OX0NMT1NFKTsKKyAgICAgICAgCisgICAgICAgIGZUZXh0UGFuZWwgPSBuZXcgSlRleHRQYW5lbCh0ZXh0UGFuZWxTZXR0aW5ncywgbnVsbCwgYXBwbGljYXRpb24uZ2V0Q2xpcGJvYXJkKCkpOworICAgICAgICBpZiAobGlzdGVuZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgZlRleHRQYW5lbC5hZGRMaXN0ZW5lcihsaXN0ZW5lcik7CisgICAgICAgIH0KKyAgICAgICAgc2V0RG9jdW1lbnQoZG9jdW1lbnQpOworCisgICAgICAgIGFkZE1lbnVCYXIoc3VwcG9ydFN0eWxlZFRleHQsIHN1cHBvcnRQbGFpblRleHQsIG1lbnVzKTsKKworICAgICAgICBnZXRDb250ZW50UGFuZSgpLnNldExheW91dChuZXcgQm9yZGVyTGF5b3V0KCkpOworCisgICAgICAgIGlmICh1c2VUYWJSdWxlcikgeworICAgICAgICAgICAgSlRhYlJ1bGVyIHRhYlJ1bGVyID0gbmV3IEpUYWJSdWxlcigxNCwgMTAsIGZUZXh0UGFuZWwpOworICAgICAgICAgICAgZ2V0Q29udGVudFBhbmUoKS5hZGQodGFiUnVsZXIsICJOb3J0aCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBnZXRDb250ZW50UGFuZSgpLmFkZChmVGV4dFBhbmVsLCAiQ2VudGVyIik7CisKKyAgICAgICAgYWRkV2luZG93TGlzdGVuZXIobmV3IFdpbmRvd0FkYXB0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCB3aW5kb3dDbG9zaW5nKFdpbmRvd0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBkb0Nsb3NlKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBhZGRNZW51QmFyKGJvb2xlYW4gc3VwcG9ydFN0eWxlZFRleHQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gc3VwcG9ydFBsYWluVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBtZW51cykgeworICAgICAgICAKKyAgICAgICAgSk1lbnVCYXIgbWVudUJhciA9IG5ldyBKTWVudUJhcigpOworICAgICAgICBTdHJpbmcgbWVudVRpdGxlID0gUmVzb3VyY2VVdGlscy5nZXRTdHJpbmcoRWRpdG9yUmVzb3VyY2VzLkZJTEUpOworICAgICAgICBKTWVudSBtZW51ID0gbmV3IEpNZW51KG1lbnVUaXRsZSk7CisgICAgICAgIG5ldyBTd2luZ0ZpbGVNZW51TWFuYWdlcihtZW51LCBmQXBwbGljYXRpb24sIHRoaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0U3R5bGVkVGV4dCwgc3VwcG9ydFBsYWluVGV4dCk7CisgICAgICAgIG1lbnVCYXIuYWRkKG1lbnUpOworCisgICAgICAgIFN3aW5nTWVudUJ1aWxkZXIuZ2V0SW5zdGFuY2UoKS5jcmVhdGVNZW51cyhtZW51QmFyLCBmVGV4dFBhbmVsLCB0aGlzLCBtZW51cyk7CisgICAgICAgIHNldEpNZW51QmFyKG1lbnVCYXIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiBpdCBpcyBPSyB0byBzZXQgdGhlIGRvY3VtZW50IHRleHQgYW5kIGZpbGUgdG8KKyAgICAgKiBzb21ldGhpbmcgZGlmZmVyZW50LgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBjYW5DaGFuZ2VEb2N1bWVudHMoKSB7CisKKyAgICAgICAgLy8gSWYgdGhlIHRleHQgaXMgbW9kaWZpZWQsIGdpdmUgdGhlIHVzZXIgYSBjaGFuY2UgdG8KKyAgICAgICAgLy8gc2F2ZSBpdC4gIE90aGVyd2lzZSByZXR1cm4gdHJ1ZS4KKworICAgICAgICBpZiAoZkRvY3VtZW50LmlzTW9kaWZpZWQoKSkgeworICAgICAgICAgICAgaW50IHNhdmUgPSBhc2tTYXZlKCk7CisgICAgICAgICAgICBpZiAoc2F2ZSA9PSBKT3B0aW9uUGFuZS5ZRVNfT1BUSU9OKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGRvU2F2ZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHNhdmUgPT0gSk9wdGlvblBhbmUuTk9fT1BUSU9OOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgc2V0RG9jdW1lbnQoVGV4dERvY3VtZW50IGRvY3VtZW50KSB7CisKKyAgICAgICAgZkRvY3VtZW50ID0gZG9jdW1lbnQ7CisgICAgICAgIGZEb2N1bWVudC5zZXRUZXh0UGFuZWwoZlRleHRQYW5lbCk7CisgICAgICAgIHNldFRpdGxlKGZEb2N1bWVudC5nZXRUaXRsZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGRvY3VtZW50IHRvIGVtcHR5IHRleHQgd2l0aCBubyBhc3NvY2lhdGVkIGZpbGUuICBJZgorICAgICAqIHRoZSBkb2N1bWVudCB0ZXh0IGlzIG5vdCBzYXZlZCwgcHJvbXB0IHRoZSB1c2VyIHRvIHNhdmUgdGhlCisgICAgICogdGhlIHRleHQgZmlyc3QuICBJZiB0aGlzIG9wZXJhdGlvbiBpcyBjYW5jZWxlZCwgdGhlIGRvY3VtZW50CisgICAgICogaXMgdW5jaGFuZ2VkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGRvTmV3KCkgeworCisgICAgICAgIGlmICghY2FuQ2hhbmdlRG9jdW1lbnRzKCkpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc2V0RG9jdW1lbnQoZkFwcGxpY2F0aW9uLmNyZWF0ZU5ld0RvY3VtZW50KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFByb21wdCB0aGUgdXNlciBmb3IgYSBmaWxlIGZyb20gd2hpY2ggdG8gbG9hZCBhIHRleHQgZG9jdW1lbnQuCisgICAgICogSWYgdGhlIGN1cnJlbnQgdGV4dCBpcyBub3Qgc2F2ZWQsIGZpcnN0IHByb21wdCB0aGUgdXNlciB0bworICAgICAqIHNhdmUuICBJZiBlaXRoZXIgb3BlcmF0aW9uIGlzIGNhbmNlbGVkIG9yIGZhaWxzLCB0aGUgZG9jdW1lbnQKKyAgICAgKiBpcyB1bmNoYW5nZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgZG9PcGVuKCkgeworCisgICAgICAgIGlmICghY2FuQ2hhbmdlRG9jdW1lbnRzKCkpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFRleHREb2N1bWVudCBkb2N1bWVudCA9IGZBcHBsaWNhdGlvbi5vcGVuRG9jdW1lbnQodGhpcyk7CisKKyAgICAgICAgaWYgKGRvY3VtZW50ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHNldERvY3VtZW50KGRvY3VtZW50KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFByb21wdCB0aGUgdXNlciBmb3IgYSBmaWxlIGluIHdoaWNoIHRvIHNhdmUgdGhlIGRvY3VtZW50IHRleHQuCisgICAgICogSWYgdGhpcyBvcGVyYXRpb24gaXMgbm90IGNhbmNlbGVkLCBzYXZlIHRoZSB0ZXh0IGluIHRoZSBmaWxlLgorICAgICAqIFRoZSBmaWxlIGJlY29tZXMgdGhpcyBkb2N1bWVudCdzIGZpbGUuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZG9TYXZlQXMoaW50IGZvcm1hdCkgeworCisgICAgICAgIFN0cmluZyB0aXRsZSA9IFJlc291cmNlVXRpbHMuZ2V0U3RyaW5nKEVkaXRvclJlc291cmNlcy5TQVZFX1RJVExFKTsKKyAgICAgICAgRmlsZSBmaWxlID0gQXd0RG9jdW1lbnRXaW5kb3cuZ2V0RmlsZUZyb21EaWFsb2coZkRvY3VtZW50LmdldEZpbGUoKSwgdGl0bGUsIHRoaXMsIEZpbGVEaWFsb2cuU0FWRSk7CisgICAgICAgIAorICAgICAgICBpZiAoZmlsZSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZEb2N1bWVudC5zZXRGaWxlKGZpbGUpOworICAgICAgICBzZXRUaXRsZShmRG9jdW1lbnQuZ2V0VGl0bGUoKSk7CisKKyAgICAgICAgZkRvY3VtZW50LnNldEZvcm1hdChmb3JtYXQpOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZEb2N1bWVudC5zYXZlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2F2ZSB0aGUgdGV4dCBpbiB0aGlzIGRvY3VtZW50LiAgSWYgdGhlcmUgaXMgbm8gZmlsZSBhc3NvY2lhdGVkCisgICAgICogd2l0aCB0aGUgdGV4dCwgdGhpcyBpcyBlcXVpdmFsZW50IHRvIDxjb2RlPmRvU2F2ZUFzPC9jb2RlPi4KKyAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIHRydWUgaWYgdGhlIGRvY3VtZW50IHdhcyBzdWNjZXNzZnVsbHkgc2F2ZWQuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZG9TYXZlKCkgeworCisgICAgICAgIGlmIChmRG9jdW1lbnQuZ2V0RmlsZSgpID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBkb1NhdmVBcyhmRG9jdW1lbnQuZ2V0Rm9ybWF0KCkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkRvY3VtZW50LnNhdmUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcmludCB0aGUgY29udGVudHMgb2YgdGhpcyB3aW5kb3cuCisgICAgICovCisgICAgcHVibGljIHZvaWQgZG9QcmludCgpIHsKKworICAgICAgICBQcmludGluZ1V0aWxzLnVzZXJQcmludFRleHQoZkRvY3VtZW50LmdldFRleHQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZUZXh0UGFuZWwuZ2V0RGVmYXVsdFZhbHVlcygpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0VGl0bGUoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQXR0ZW1wdCB0byBjbG9zZSB0aGlzIHdpbmRvdy4gIElmIHRoZSB0ZXh0IGhhcyBub3QgYmVlbiBzYXZlZCwKKyAgICAgKiBnaXZlIHRoZSB1c2VyIGEgY2hhbmNlIHRvIHNhdmUgdGhlIHRleHQgYmVmb3JlIGNsb3NpbmcgdGhlCisgICAgICogd2luZG93LiAgSWYgdGhlIHVzZXIgY2FuY2VscyB0aGlzIG9wZXJhdGlvbiwgdGhpcyBtZXRob2QgcmV0dXJucworICAgICAqIGZhbHNlIGFuZCB0aGUgd2luZG93IGlzIG5vdCBjbG9zZWQ7ICBvdGhlcndpc2UgdGhpcyBtZXRob2QKKyAgICAgKiByZXR1cm5zIHRydWUgYW5kIHRoZSB3aW5kb3cgaXMgY2xvc2VkLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGRvQ2xvc2UoKSB7CisKKyAgICAgICAgaWYgKGNhbkNoYW5nZURvY3VtZW50cygpKSB7CisgICAgICAgICAgICBzZXRWaXNpYmxlKGZhbHNlKTsKKyAgICAgICAgICAgIGRpc3Bvc2UoKTsKKyAgICAgICAgICAgIGZBcHBsaWNhdGlvbi5yZW1vdmVEb2N1bWVudFdpbmRvdyh0aGlzKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRGlzcGxheSBhIGRpYWxvZyB0aGF0IGFza3Mgd2hldGhlciB0aGUgdXNlciB3YW50cyB0bworICAgICAqIHNhdmUgYSBkb2N1bWVudC4gIFRoZSByZXR1cm5lZCB2YWx1ZSB3aWxsIGJlIFlFU19PUFRJT04sCisgICAgICogTk9fT1BUSU9OLCBvciBDQU5DRUxfT1BUSU9OIGZyb20gSk9wdGlvblBhbmUuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgYXNrU2F2ZSgpIHsKKworICAgICAgICBTdHJpbmcgcGF0dGVybiA9IFJlc291cmNlVXRpbHMuZ2V0U3RyaW5nKEVkaXRvclJlc291cmNlcy5TQVZFX01TRyk7CisgICAgICAgIFN0cmluZyBtZXNzYWdlID0gTWVzc2FnZUZvcm1hdC5mb3JtYXQocGF0dGVybiwgbmV3IE9iamVjdFtdIHtnZXRUaXRsZSgpfSk7CisgICAgICAgIAorICAgICAgICBTdHJpbmcgeWVzID0gUmVzb3VyY2VVdGlscy5nZXRTdHJpbmcoRWRpdG9yUmVzb3VyY2VzLllFUyk7CisgICAgICAgIFN0cmluZyBubyA9IFJlc291cmNlVXRpbHMuZ2V0U3RyaW5nKEVkaXRvclJlc291cmNlcy5OTyk7CisgICAgICAgIFN0cmluZyBjYW5jZWwgPSBSZXNvdXJjZVV0aWxzLmdldFN0cmluZyhFZGl0b3JSZXNvdXJjZXMuQ0FOQ0VMKTsKKworICAgICAgICByZXR1cm4gSk9wdGlvblBhbmUuc2hvd09wdGlvbkRpYWxvZyh0aGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSk9wdGlvblBhbmUuWUVTX05PX0NBTkNFTF9PUFRJT04sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpPcHRpb25QYW5lLlFVRVNUSU9OX01FU1NBR0UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXt5ZXMsbm8sY2FuY2VsfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWVzKTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmdkZW1vL1N3aW5nRWRpdERlbW8uamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5nZGVtby9Td2luZ0VkaXREZW1vLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDU4MTEyNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5nZGVtby9Td2luZ0VkaXREZW1vLmphdmEKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogU3dpbmdFZGl0RGVtby5qYXZhLHYgJCAkUmV2aXNpb246IDEuMSAkICREYXRlOiAyMDAwLzA0LzIwIDE3OjQ1OjQyICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuc3dpbmdkZW1vOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5kZW1vLkVkaXREZW1vOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuZGVtby5Eb2N1bWVudFdpbmRvdzsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmRlbW8uVGV4dERvY3VtZW50OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuSlRleHRQYW5lbDsKKworcHVibGljIGNsYXNzIFN3aW5nRWRpdERlbW8gZXh0ZW5kcyBFZGl0RGVtbyB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgIAorICAgICAgICBuZXcgU3dpbmdDb2RlRWRpdChhcmdzLCAwKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIFN3aW5nRWRpdERlbW8oU3RyaW5nW10gYXJncywgaW50IHN0YXJ0KSB7CisgICAgCisgICAgICAgIHN1cGVyKGFyZ3MsIHN0YXJ0KTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIERvY3VtZW50V2luZG93IGNyZWF0ZURvY3VtZW50V2luZG93KFRleHREb2N1bWVudCBkb2N1bWVudCkgeworCisgICAgICAgIHJldHVybiBuZXcgU3dpbmdEb2N1bWVudFdpbmRvdyh0aGlzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSlRleHRQYW5lbC5nZXREZWZhdWx0U2V0dGluZ3MoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsKTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmdkZW1vL1N3aW5nRmlsZU1lbnVNYW5hZ2VyLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ2RlbW8vU3dpbmdGaWxlTWVudU1hbmFnZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wZjI0ZDJhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmdkZW1vL1N3aW5nRmlsZU1lbnVNYW5hZ2VyLmphdmEKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogU3dpbmdGaWxlTWVudU1hbmFnZXIuamF2YSx2ICQgJFJldmlzaW9uOiAxLjEgJCAkRGF0ZTogMjAwMC8wNC8yMCAxNzo0NTo0MiAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN3aW5nZGVtbzsKKworaW1wb3J0IGphdmEuYXd0LkV2ZW50OworCitpbXBvcnQgamF2YXguc3dpbmcuSk1lbnU7CitpbXBvcnQgamF2YXguc3dpbmcuSk1lbnVJdGVtOworaW1wb3J0IGphdmF4LnN3aW5nLkpTZXBhcmF0b3I7CitpbXBvcnQgamF2YXguc3dpbmcuS2V5U3Ryb2tlOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5kZW1vLkRvY3VtZW50V2luZG93OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuZGVtby5FZGl0QXBwbGljYXRpb247CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5kZW1vLkZpbGVNZW51TWFuYWdlcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmRlbW8uTWVudURhdGE7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5kZW1vLlJlc291cmNlVXRpbHM7CisKK2ZpbmFsIGNsYXNzIFN3aW5nRmlsZU1lbnVNYW5hZ2VyIGV4dGVuZHMgRmlsZU1lbnVNYW5hZ2VyIHsKKworICAgIHByaXZhdGUgSk1lbnUgZk1lbnU7CisgICAgCisgICAgcHVibGljIFN3aW5nRmlsZU1lbnVNYW5hZ2VyKEpNZW51IG1lbnUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVkaXRBcHBsaWNhdGlvbiBhcHBsaWNhdGlvbiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERvY3VtZW50V2luZG93IGRvY3VtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHN1cHBvcnRTdHlsZWRGb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gc3VwcG9ydFBsYWluRm9ybWF0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBzdXBlcihhcHBsaWNhdGlvbiwgZG9jdW1lbnQpOworICAgICAgICAKKyAgICAgICAgZk1lbnUgPSBtZW51OworICAgICAgICBjcmVhdGVJdGVtcyhzdXBwb3J0U3R5bGVkRm9ybWF0LCBzdXBwb3J0UGxhaW5Gb3JtYXQpOworICAgICAgICBmTWVudSA9IG51bGw7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBPYmplY3QgYWRkTWVudUl0ZW0oU3RyaW5nIGtleSkgeworCisgICAgICAgIE1lbnVEYXRhIG1lbnVEYXRhID0gUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShrZXkpOworICAgICAgICBKTWVudUl0ZW0gaXRlbSA9IG5ldyBKTWVudUl0ZW0obWVudURhdGEuZ2V0TmFtZSgpKTsKKyAgICAgICAgaWYgKG1lbnVEYXRhLmhhc1Nob3J0Y3V0KCkpIHsKKyAgICAgICAgICAgIEtleVN0cm9rZSBrcyA9IEtleVN0cm9rZS5nZXRLZXlTdHJva2UobWVudURhdGEuZ2V0U2hvcnRjdXRLZXlDb2RlKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV2ZW50LkNUUkxfTUFTSyk7CisgICAgICAgICAgICBpdGVtLnNldEFjY2VsZXJhdG9yKGtzKTsKKyAgICAgICAgfQorICAgICAgICBpdGVtLmFkZEFjdGlvbkxpc3RlbmVyKHRoaXMpOworICAgICAgICBmTWVudS5hZGQoaXRlbSk7CisgICAgICAgIHJldHVybiBpdGVtOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCBhZGRTZXBhcmF0b3IoKSB7CisgICAgCisgICAgICAgIGZNZW51LmFkZChuZXcgSlNlcGFyYXRvcigpKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ3VpL0pNZXNzYWdlRGlhbG9nLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ3VpL0pNZXNzYWdlRGlhbG9nLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDU1ZmQ2NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5ndWkvSk1lc3NhZ2VEaWFsb2cuamF2YQpAQCAtMCwwICsxLDcwIEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBKTWVzc2FnZURpYWxvZy5qYXZhLHYgJCAkUmV2aXNpb246IDEuMSAkICREYXRlOiAyMDAwLzA0LzIwIDE3OjQ2OjIyICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuc3dpbmd1aTsKKworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworaW1wb3J0IGphdmEuYXd0LkNvbnRhaW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5DYXJkTGF5b3V0OworCitpbXBvcnQgamF2YXguc3dpbmcuSkZyYW1lOworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93QWRhcHRlcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dFdmVudDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuSlRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxTZXR0aW5nczsKKworLyoqCisgKiBNZXNzYWdlRGlhbG9nIGlzIGEgc2ltcGxlIEZyYW1lIHdoaWNoIGRpc3BsYXlzIGEgc3R5bGVkCisgKiB0ZXh0IG1lc3NhZ2UgaW4gYSBUZXh0UGFuZWwuCisgKiBUaGUgdGV4dCBpbiB0aGUgbWVzc2FnZSBpcyBub3Qgc2VsZWN0YWJsZSBvciBlZGl0YWJsZS4KKyAqIEBzZWUgTUNvbnN0VGV4dAorICogQHNlZSBKVGV4dFBhbmVsCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBKTWVzc2FnZURpYWxvZyBleHRlbmRzIEpGcmFtZSB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIC8qKgorICAgICogQ3JlYXRlIGEgbmV3IE1lc3NhZ2VEaWFsb2cuCisgICAgKiBAcGFyYW0gdGl0bGUgdGhlIGRpYWxvZydzIHRpdGxlCisgICAgKiBAcGFyYW0gbWVzc2FnZSB0aGUgdGV4dCB3aGljaCB3aWxsIGFwcGVhciBpbiB0aGUgZGlhbG9nCisgICAgKi8KKyAgICBwdWJsaWMgSk1lc3NhZ2VEaWFsb2coU3RyaW5nIHRpdGxlLCBNQ29uc3RUZXh0IG1lc3NhZ2UpCisgICAgeworICAgICAgICBzdXBlcih0aXRsZSk7CisKKyAgICAgICAgQ29udGFpbmVyIGNvbnRlbnQgPSBnZXRDb250ZW50UGFuZSgpOworICAgICAgICBjb250ZW50LnNldExheW91dChuZXcgQ2FyZExheW91dCgpKTsKKyAgICAgICAgVGV4dFBhbmVsU2V0dGluZ3Mgc2V0dGluZ3MgPSBKVGV4dFBhbmVsLmdldERlZmF1bHRTZXR0aW5ncygpOworICAgICAgICBzZXR0aW5ncy5zZXRTY3JvbGxhYmxlKGZhbHNlKTsKKyAgICAgICAgc2V0dGluZ3Muc2V0U2VsZWN0YWJsZShmYWxzZSk7CisgICAgICAgIEpUZXh0UGFuZWwgcGFuZWwgPSBuZXcgSlRleHRQYW5lbChzZXR0aW5ncywgbWVzc2FnZSwgbnVsbCk7CisKKyAgICAgICAgcGFuZWwuc2V0QmFja2dyb3VuZChDb2xvci5ibGFjayk7CisgICAgICAgIGNvbnRlbnQuYWRkKCJDZW50ZXIiLCBwYW5lbCk7CisKKyAgICAgICAgYWRkV2luZG93TGlzdGVuZXIobmV3IFdpbmRvd0FkYXB0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCB3aW5kb3dDbG9zaW5nKFdpbmRvd0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBzZXRWaXNpYmxlKGZhbHNlKTsKKyAgICAgICAgICAgICAgICBkaXNwb3NlKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworCisgICAgICAgIHNldFNpemUoNDUwLDMyMCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmd1aS9KTnVtYmVyRGlhbG9nLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ3VpL0pOdW1iZXJEaWFsb2cuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44YzIwYWU1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmd1aS9KTnVtYmVyRGlhbG9nLmphdmEKQEAgLTAsMCArMSwxNjIgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IEpOdW1iZXJEaWFsb2cuamF2YSx2ICQgJFJldmlzaW9uOiAxLjEgJCAkRGF0ZTogMjAwMC8wNC8yMCAxNzo0NjoyMiAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN3aW5ndWk7CisKK2ltcG9ydCBqYXZhLmF3dC5Db250YWluZXI7CitpbXBvcnQgamF2YS5hd3QuRmxvd0xheW91dDsKK2ltcG9ydCBqYXZhLmF3dC5GcmFtZTsKKworaW1wb3J0IGphdmEudGV4dC5OdW1iZXJGb3JtYXQ7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworCitpbXBvcnQgamF2YXguc3dpbmcuSkRpYWxvZzsKK2ltcG9ydCBqYXZheC5zd2luZy5KUGFuZWw7CitpbXBvcnQgamF2YXguc3dpbmcuSlRleHRGaWVsZDsKK2ltcG9ydCBqYXZheC5zd2luZy5KQnV0dG9uOworaW1wb3J0IGphdmF4LnN3aW5nLkpMYWJlbDsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkxpc3RlbmVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0FkYXB0ZXI7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuRnJhbWVSZXNvdXJjZXM7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwuTWVudUl0ZW1TZXQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwuUmVzb3VyY2VVdGlsczsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZU1vZGlmaWVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CisKKy8qKgorKiBTaW1wbGUgZGlhbG9nIHdoaWNoIGdldHMgYSBudW1iZXIsIGFuZCBzZW5kcyBhbiBhcHByb3ByaWF0ZSBjb21tYW5kCisqLworZmluYWwgY2xhc3MgSk51bWJlckRpYWxvZyBleHRlbmRzIEpEaWFsb2cgaW1wbGVtZW50cyBBY3Rpb25MaXN0ZW5lcgoreworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBNVGV4dFBhbmVsIGZUZXh0UGFuZWw7CisgICAgcHJpdmF0ZSBKVGV4dEZpZWxkIGZJbnB1dCA9IG51bGw7CisKKyAgICBwcml2YXRlIEpCdXR0b24gZk9LQnV0dG9uID0gbnVsbDsKKyAgICBwcml2YXRlIEpCdXR0b24gZkNhbmNlbEJ1dHRvbiA9IG51bGw7CisgICAgcHJpdmF0ZSBib29sZWFuIGZDaGFyYWN0ZXI7CisgICAgcHJpdmF0ZSBPYmplY3QgZktleTsKKyAgICBwcml2YXRlIGZsb2F0IGZNdWx0aXBsaWVyOyAKKworICAgIC8qKgorICAgICAqIEBwYXJhbSBtdWx0aXBsaWVyIHRoZSBmYWN0b3IgYnkgd2hpY2ggdG8gbXVsdGlwbHkgdGhlIHVzZXIncworICAgICAqICAgICAgICBzZWxlY3Rpb24gYmVmb3JlIGNyZWF0aW5nIHRoZSBhdHRyaWJ1dGUgdmFsdWUuICAgVGhpcworICAgICAqICAgICAgICBpcyB1c2VmdWwgZm9yIHN1YnNjcmlwdGluZy4KKyAgICAgKi8KKyAgICBKTnVtYmVyRGlhbG9nKEZyYW1lIHBhcmVudCwKKyAgICAgICAgICAgICAgICAgIFN0cmluZyB0aXRsZSwKKyAgICAgICAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlLAorICAgICAgICAgICAgICAgICAgTVRleHRQYW5lbCB0ZXh0UGFuZWwsCisgICAgICAgICAgICAgICAgICBPYmplY3Qga2V5LAorICAgICAgICAgICAgICAgICAgYm9vbGVhbiBjaGFyYWN0ZXIsCisgICAgICAgICAgICAgICAgICBmbG9hdCBtdWx0aXBsaWVyKSB7CisKKyAgICAgICAgc3VwZXIocGFyZW50LCB0aXRsZSwgZmFsc2UpOworICAgICAgICBmVGV4dFBhbmVsID0gdGV4dFBhbmVsOworICAgICAgICBmS2V5ID0ga2V5OworICAgICAgICBmQ2hhcmFjdGVyID0gY2hhcmFjdGVyOworICAgICAgICBmTXVsdGlwbGllciA9IG11bHRpcGxpZXI7CisgICAgICAgIAorICAgICAgICBDb250YWluZXIgY29udGVudCA9IGdldENvbnRlbnRQYW5lKCk7CisgICAgICAgIAorICAgICAgICBjb250ZW50LnNldExheW91dChuZXcgamF2YS5hd3QuR3JpZExheW91dCgyLDEpKTsKKworICAgICAgICBKUGFuZWwgcGFuZWwgPSBuZXcgSlBhbmVsKCk7CisgICAgICAgIHBhbmVsLnNldExheW91dChuZXcgRmxvd0xheW91dChGbG93TGF5b3V0LkNFTlRFUiwgMTAsIDE1KSk7CisgICAgICAgIGZJbnB1dCA9IG5ldyBKVGV4dEZpZWxkKDUpOworCisgICAgICAgIHBhbmVsLmFkZChuZXcgSkxhYmVsKG1lc3NhZ2UpKTsKKyAgICAgICAgcGFuZWwuYWRkKGZJbnB1dCk7CisgICAgICAgIGNvbnRlbnQuYWRkKCJDZW50ZXIiLCBwYW5lbCk7CisKKyAgICAgICAgZkNhbmNlbEJ1dHRvbiA9IG5ldyBKQnV0dG9uKFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuQ0FOQ0VMKSk7CisgICAgICAgIGZPS0J1dHRvbiA9IG5ldyBKQnV0dG9uKFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuT0spKTsKKyAgICAgICAgSlBhbmVsIHAgPSBuZXcgSlBhbmVsKCk7CisgICAgICAgIHAuc2V0TGF5b3V0KG5ldyBGbG93TGF5b3V0KEZsb3dMYXlvdXQuQ0VOVEVSLCA1LCA1KSk7CisgICAgICAgIHAuYWRkKGZDYW5jZWxCdXR0b24pOworICAgICAgICBwLmFkZChmT0tCdXR0b24pOworICAgICAgICBjb250ZW50LmFkZCgiU291dGgiLCBwKTsKKworICAgICAgICBwYWNrKCk7CisKKyAgICAgICAgYWRkV2luZG93TGlzdGVuZXIobmV3IFdpbmRvd0FkYXB0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCB3aW5kb3dDbG9zaW5nKFdpbmRvd0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBjbG9zZVdpbmRvdyhmYWxzZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICAKKyAgICAgICAgZk9LQnV0dG9uLmFkZEFjdGlvbkxpc3RlbmVyKHRoaXMpOworICAgICAgICBmQ2FuY2VsQnV0dG9uLmFkZEFjdGlvbkxpc3RlbmVyKHRoaXMpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBjbG9zZVdpbmRvdyhib29sZWFuIHNlbmRBY3Rpb24pIHsKKworICAgICAgICBzZXRWaXNpYmxlKGZhbHNlKTsKKworICAgICAgICBpbnQgbnVtID0gMDsKKyAgICAgICAgaWYgKHNlbmRBY3Rpb24pIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRleHQgPSBmSW5wdXQuZ2V0VGV4dCgpOworICAgICAgICAgICAgICAgIG51bSA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpLnBhcnNlKHRleHQpLmludFZhbHVlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZXhjZXB0aW9uKSB7CisgICAgICAgICAgICAgICAgc2VuZEFjdGlvbiA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHNlbmRBY3Rpb24pIHsKKyAgICAgICAgICAgIHNlbmRBY3Rpb24obnVtKTsKKyAgICAgICAgfQorCisgICAgICAgIGRpc3Bvc2UoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworCisgICAgICAgIE9iamVjdCBzb3VyY2UgPSBlLmdldFNvdXJjZSgpOworCisgICAgICAgIGlmIChzb3VyY2UgPT0gZk9LQnV0dG9uKSB7CisgICAgICAgICAgICBjbG9zZVdpbmRvdyh0cnVlKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChzb3VyY2UgPT0gZkNhbmNlbEJ1dHRvbikgeworICAgICAgICAgICAgY2xvc2VXaW5kb3coZmFsc2UpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBBY3Rpb25FdmVudCEiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogSGFuZGxlIHRoZSB1c2VyIGlucHV0CisgICAgKiBAcGFyYW0gdGhlIG51bWJlciB0aGUgdXNlciB0eXBlZCBpbgorICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHNlbmRBY3Rpb24oaW50IG51bWJlcikgeworICAgICAgICBmbG9hdCBudW0gPSBudW1iZXIgKiBmTXVsdGlwbGllcjsKKyAgICAgICAgU3R5bGVNb2RpZmllciBtb2RpZmllciA9IFN0eWxlTW9kaWZpZXIuY3JlYXRlQWRkTW9kaWZpZXIoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmS2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEZsb2F0KG51bSkpOworICAgICAgICBpZiAoZkNoYXJhY3RlciA9PSBNZW51SXRlbVNldC5DSEFSQUNURVIpIHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwubW9kaWZ5Q2hhcmFjdGVyU3R5bGVPblNlbGVjdGlvbihtb2RpZmllcik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmVGV4dFBhbmVsLm1vZGlmeVBhcmFncmFwaFN0eWxlT25TZWxlY3Rpb24obW9kaWZpZXIpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmd1aS9KT2JqZWN0RGlhbG9nLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ3VpL0pPYmplY3REaWFsb2cuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zZmM1ZmUyNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5ndWkvSk9iamVjdERpYWxvZy5qYXZhCkBAIC0wLDAgKzEsMjgwIEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBKT2JqZWN0RGlhbG9nLmphdmEsdiAkICRSZXZpc2lvbjogMS4yICQgJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6MzcgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zd2luZ3VpOworCitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKKworaW1wb3J0IGphdmF4LnN3aW5nLkJveDsKK2ltcG9ydCBqYXZheC5zd2luZy5Cb3JkZXJGYWN0b3J5OworaW1wb3J0IGphdmF4LnN3aW5nLkJveExheW91dDsKK2ltcG9ydCBqYXZheC5zd2luZy5KRGlhbG9nOworaW1wb3J0IGphdmF4LnN3aW5nLkpQYW5lbDsKK2ltcG9ydCBqYXZheC5zd2luZy5KU2Nyb2xsUGFuZTsKK2ltcG9ydCBqYXZheC5zd2luZy5KQnV0dG9uOworaW1wb3J0IGphdmF4LnN3aW5nLkpMaXN0OworaW1wb3J0IGphdmF4LnN3aW5nLkpMYWJlbDsKK2ltcG9ydCBqYXZheC5zd2luZy5MaXN0U2VsZWN0aW9uTW9kZWw7CisKK2ltcG9ydCBqYXZheC5zd2luZy5ldmVudC5MaXN0U2VsZWN0aW9uRXZlbnQ7CitpbXBvcnQgamF2YXguc3dpbmcuZXZlbnQuTGlzdFNlbGVjdGlvbkxpc3RlbmVyOworCitpbXBvcnQgamF2YS5hd3QuQm9yZGVyTGF5b3V0OworaW1wb3J0IGphdmEuYXd0LkNvbnRhaW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5EaW1lbnNpb247CitpbXBvcnQgamF2YS5hd3QuRnJhbWU7CitpbXBvcnQgamF2YS5hd3QuRmxvd0xheW91dDsKK2ltcG9ydCBqYXZhLmF3dC5HcmlkTGF5b3V0OworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uRXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uTGlzdGVuZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuTW91c2VFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5Nb3VzZUFkYXB0ZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93RXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93QWRhcHRlcjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVTZXQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlTW9kaWZpZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5NZW51SXRlbVNldDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLnJlc291cmNlcy5GcmFtZVJlc291cmNlczsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5SZXNvdXJjZVV0aWxzOworCisvKioKKyogU2ltcGxlIGRpYWxvZyB0aGF0IHNldHMgYW4gYXR0cmlidXRlLgorKi8KK2ZpbmFsIGNsYXNzIEpPYmplY3REaWFsb2cgZXh0ZW5kcyBKRGlhbG9nIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICBwcml2YXRlIGZpbmFsIE1UZXh0UGFuZWwgZlRleHRQYW5lbDsKKyAgICBwcml2YXRlIGZpbmFsIE9iamVjdCBmS2V5OworICAgIHByaXZhdGUgYm9vbGVhbiBmQ2hhcmFjdGVyOworICAgIHByaXZhdGUgSGFzaHRhYmxlIGZOYW1lVG9WYWx1ZU1hcDsKKyAgICAKKyAgICBwcml2YXRlIGZpbmFsIEpCdXR0b24gZk9LQnV0dG9uOworICAgIHByaXZhdGUgZmluYWwgSkJ1dHRvbiBmQ2FuY2VsQnV0dG9uOworICAgIHByaXZhdGUgZmluYWwgSkxpc3QgZkl0ZW1zOworICAgIAorICAgIC8qKgorICAgICogQ29uc3RydWN0IGEgbmV3IEpPYmplY3REaWFsb2cuCisgICAgKiBAcGFyYW0gcGFyZW50IHRoZSBkaWFsb2cncyBwYXJlbnQgZnJhbWUKKyAgICAqIEBwYXJhbSB0aXRsZSB0aGUgZGlhbG9ncyB0aXRsZQorICAgICogQHBhcmFtIG1lc3NhZ2UgdGhlIG1lc3NhZ2UgZGlzcGxheWVkIG5leHQgdG8gdGhlIGlucHV0IGJveAorICAgICovCisgICAgSk9iamVjdERpYWxvZyhGcmFtZSBwYXJlbnQsCisgICAgICAgICAgICAgICAgICBTdHJpbmcgdGl0bGUsIAorICAgICAgICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2UsIAorICAgICAgICAgICAgICAgICAgTVRleHRQYW5lbCB0ZXh0UGFuZWwsCisgICAgICAgICAgICAgICAgICBPYmplY3Qga2V5LAorICAgICAgICAgICAgICAgICAgYm9vbGVhbiBjaGFyYWN0ZXIsCisgICAgICAgICAgICAgICAgICBTdHJpbmdbXSBuYW1lcywKKyAgICAgICAgICAgICAgICAgIE9iamVjdFtdIHZhbHVlcykgeworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgc3VwZXIocGFyZW50LCB0aXRsZSwgZmFsc2UpOworCisgICAgICAgIHNldHVwTWFwKG5hbWVzLCB2YWx1ZXMpOworICAgICAgICAKKyAgICAgICAgRGltZW5zaW9uIHNpemUgPSBuZXcgRGltZW5zaW9uKDI1MCwgMjAwKTsKKyAgICAgICAgCisgICAgICAgIGZUZXh0UGFuZWwgPSB0ZXh0UGFuZWw7CisgICAgICAgIGZLZXkgPSBrZXk7CisgICAgICAgIGZDaGFyYWN0ZXIgPSBjaGFyYWN0ZXI7CisgICAgICAgIAorICAgICAgICBmSXRlbXMgPSBuZXcgSkxpc3QobmFtZXMpOworICAgICAgICBmSXRlbXMuc2V0U2VsZWN0aW9uTW9kZShMaXN0U2VsZWN0aW9uTW9kZWwuTVVMVElQTEVfSU5URVJWQUxfU0VMRUNUSU9OKTsKKyAgICAgICAgCisgICAgICAgIGZJdGVtcy5hZGRNb3VzZUxpc3RlbmVyKG5ldyBNb3VzZUFkYXB0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBtb3VzZUNsaWNrZWQoTW91c2VFdmVudCBlKSB7CisgICAgICAgICAgICAgICAgaWYgKGUuZ2V0Q2xpY2tDb3VudCgpID09IDIpIHsKKyAgICAgICAgICAgICAgICAgICAgY2xvc2VXaW5kb3codHJ1ZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgCisgICAgICAgIEpTY3JvbGxQYW5lIGxpc3RTY3JvbGxlciA9IG5ldyBKU2Nyb2xsUGFuZShmSXRlbXMpOworICAgICAgICBsaXN0U2Nyb2xsZXIuc2V0UHJlZmVycmVkU2l6ZShzaXplKTsKKyAgICAgICAgbGlzdFNjcm9sbGVyLnNldFByZWZlcnJlZFNpemUoc2l6ZSk7CisgICAgICAgIGxpc3RTY3JvbGxlci5zZXRBbGlnbm1lbnRYKExFRlRfQUxJR05NRU5UKTsKKworICAgICAgICBKTGFiZWwgbGFiZWwgPSBuZXcgSkxhYmVsKG1lc3NhZ2UpOworICAgICAgICBsYWJlbC5zZXRMYWJlbEZvcihmSXRlbXMpOworICAgICAgICAKKyAgICAgICAgSlBhbmVsIGl0ZW1QYW5lbCA9IG5ldyBKUGFuZWwoKTsKKyAgICAgICAgaXRlbVBhbmVsLmFkZChsYWJlbCk7CisgICAgICAgIGl0ZW1QYW5lbC5hZGQoQm94LmNyZWF0ZVJpZ2lkQXJlYShuZXcgRGltZW5zaW9uKDAsNSkpKTsKKyAgICAgICAgaXRlbVBhbmVsLmFkZChsaXN0U2Nyb2xsZXIpOworICAgICAgICBpdGVtUGFuZWwuc2V0Qm9yZGVyKEJvcmRlckZhY3RvcnkuY3JlYXRlRW1wdHlCb3JkZXIoMTAsMTAsMTAsMTApKTsKKyAgICAgICAgCisgICAgICAgIGl0ZW1QYW5lbC5zZXRMYXlvdXQobmV3IEJveExheW91dChpdGVtUGFuZWwsIEJveExheW91dC5ZX0FYSVMpKTsKKyAgICAgICAgCisgICAgICAgIGZDYW5jZWxCdXR0b24gPSBuZXcgSkJ1dHRvbihSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLkNBTkNFTCkpOworICAgICAgICBmT0tCdXR0b24gPSBuZXcgSkJ1dHRvbihSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLk9LKSk7CisgICAgICAgIAorICAgICAgICBKUGFuZWwgYnV0dG9uUGFuZWwgPSBuZXcgSlBhbmVsKCk7CisgICAgICAgIGJ1dHRvblBhbmVsLnNldExheW91dChuZXcgRmxvd0xheW91dChGbG93TGF5b3V0LkNFTlRFUiwgNSwgNSkpOworICAgICAgICBidXR0b25QYW5lbC5hZGQoZkNhbmNlbEJ1dHRvbik7CisgICAgICAgIGJ1dHRvblBhbmVsLmFkZChmT0tCdXR0b24pOworICAgICAgICAKKyAgICAgICAgQ29udGFpbmVyIGNvbnRlbnQgPSBnZXRDb250ZW50UGFuZSgpOworICAgICAgICBjb250ZW50LmFkZChpdGVtUGFuZWwsIEJvcmRlckxheW91dC5DRU5URVIpOworICAgICAgICBjb250ZW50LmFkZChidXR0b25QYW5lbCwgQm9yZGVyTGF5b3V0LlNPVVRIKTsKKworICAgICAgICBwYWNrKCk7CisKKyAgICAgICAgYWRkV2luZG93TGlzdGVuZXIobmV3IFdpbmRvd0FkYXB0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCB3aW5kb3dDbG9zaW5nKFdpbmRvd0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBjbG9zZVdpbmRvdyhmYWxzZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICAKKyAgICAgICAgQWN0aW9uTGlzdGVuZXIgbGlzdGVuZXIgPSBuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgT2JqZWN0IHNvdXJjZSA9IGUuZ2V0U291cmNlKCk7CisgICAgICAgICAgICAgICAgaWYgKHNvdXJjZSA9PSBmT0tCdXR0b24pIHsKKyAgICAgICAgICAgICAgICAgICAgY2xvc2VXaW5kb3codHJ1ZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKHNvdXJjZSA9PSBmQ2FuY2VsQnV0dG9uKSB7CisgICAgICAgICAgICAgICAgICAgIGNsb3NlV2luZG93KGZhbHNlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBmT0tCdXR0b24uYWRkQWN0aW9uTGlzdGVuZXIobGlzdGVuZXIpOworICAgICAgICBmQ2FuY2VsQnV0dG9uLmFkZEFjdGlvbkxpc3RlbmVyKGxpc3RlbmVyKTsKKyAgICAgICAgCisgICAgICAgIHNlbGVjdFN0eWxlcyh2YWx1ZXMpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgc2V0dXBNYXAoU3RyaW5nW10gbmFtZXMsIE9iamVjdFtdIHZhbHVlcykgeworICAgIAorICAgICAgICBpZiAobmFtZXMubGVuZ3RoICE9IHZhbHVlcy5sZW5ndGgpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk11c3QgaGF2ZSBzYW1lIG51bWJlciBvZiBuYW1lcyBhbmQgdmFsdWVzLiIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmTmFtZVRvVmFsdWVNYXAgPSBuZXcgSGFzaHRhYmxlKG5hbWVzLmxlbmd0aCk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBuYW1lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKHZhbHVlc1tpXSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgZk5hbWVUb1ZhbHVlTWFwLnB1dChuYW1lc1tpXSwgdmFsdWVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGNsb3NlV2luZG93KGJvb2xlYW4gc2VuZEFjdGlvbikgeworCisgICAgICAgIHNldFZpc2libGUoZmFsc2UpOworICAgICAgICAKKyAgICAgICAgaWYgKHNlbmRBY3Rpb24gJiYgZkl0ZW1zLmdldE1pblNlbGVjdGlvbkluZGV4KCkgIT0gZkl0ZW1zLmdldE1heFNlbGVjdGlvbkluZGV4KCkpIHsKKyAgICAgICAgICAgIHNlbmRBY3Rpb24gPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKHNlbmRBY3Rpb24pIHsKKyAgICAgICAgICAgIE9iamVjdCB2YWx1ZSA9IGZOYW1lVG9WYWx1ZU1hcC5nZXQoZkl0ZW1zLmdldFNlbGVjdGVkVmFsdWUoKSk7CisgICAgICAgICAgICBzZW5kQWN0aW9uKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBkaXNwb3NlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgKiBIYW5kbGUgdGhlIHVzZXIgaW5wdXQKKyAgICAqIEBwYXJhbSBvYmogdGhlIHZhbHVlIG9iamVjdAorICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHNlbmRBY3Rpb24oT2JqZWN0IHZhbHVlKSB7CisKKyAgICAgICAgU3R5bGVNb2RpZmllciBtb2RpZmllcjsKKyAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHsKKyAgICAgICAgICAgIG1vZGlmaWVyID0gU3R5bGVNb2RpZmllci5jcmVhdGVBZGRNb2RpZmllcihmS2V5LCB2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBBdHRyaWJ1dGVTZXQgc2V0ID0gbmV3IEF0dHJpYnV0ZVNldChmS2V5KTsKKyAgICAgICAgICAgIG1vZGlmaWVyID0gU3R5bGVNb2RpZmllci5jcmVhdGVSZW1vdmVNb2RpZmllcihzZXQpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZDaGFyYWN0ZXIgPT0gTWVudUl0ZW1TZXQuQ0hBUkFDVEVSKSB7CisgICAgICAgICAgICBmVGV4dFBhbmVsLm1vZGlmeUNoYXJhY3RlclN0eWxlT25TZWxlY3Rpb24obW9kaWZpZXIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZlRleHRQYW5lbC5tb2RpZnlQYXJhZ3JhcGhTdHlsZU9uU2VsZWN0aW9uKG1vZGlmaWVyKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgc2VsZWN0VmFsdWUoT2JqZWN0IHZhbHVlLCBPYmplY3RbXSB2YWx1ZXMpIHsKKyAgICAKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIAorICAgICAgICAgICAgaWYgKCh2YWx1ZSAhPSBudWxsICYmIHZhbHVlLmVxdWFscyh2YWx1ZXNbaV0pKSB8fCAodmFsdWUgPT0gbnVsbCAmJiB2YWx1ZXNbaV0gPT0gbnVsbCkpIHsKKyAgICAgICAgICAgICAgICBmSXRlbXMuYWRkU2VsZWN0aW9uSW50ZXJ2YWwoaSwgaSk7CisgICAgICAgICAgICAgICAgZkl0ZW1zLmVuc3VyZUluZGV4SXNWaXNpYmxlKGkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgc2VsZWN0U3R5bGVzKE9iamVjdFtdIHZhbHVlcykgeworICAgIAorICAgICAgICBPYmplY3QgdmFsdWU7CisgCisgICAgICAgIGlmIChmQ2hhcmFjdGVyKSB7CisgICAgICAgICAgICB2YWx1ZSA9IGZUZXh0UGFuZWwuZ2V0Q2hhcmFjdGVyU3R5bGVPdmVyU2VsZWN0aW9uKGZLZXkpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdmFsdWUgPSBmVGV4dFBhbmVsLmdldFBhcmFncmFwaFN0eWxlT3ZlclNlbGVjdGlvbihmS2V5KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKHZhbHVlICE9IE1UZXh0UGFuZWwuTVVMVElQTEVfVkFMVUVTKSB7CisgICAgICAgICAgICBzZWxlY3RWYWx1ZSh2YWx1ZSwgdmFsdWVzKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZPS0J1dHRvbi5zZXRFbmFibGVkKGZhbHNlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IHNlbExpbWl0ID0gZlRleHRQYW5lbC5nZXRTZWxlY3Rpb25FbmQoKTsKKyAgICAgICAgICAgIE1Db25zdFRleHQgdGV4dCA9IGZUZXh0UGFuZWwuZ2V0VGV4dCgpOworICAgICAgICAgICAgZm9yIChpbnQgcnVuU3RhcnQgPSBmVGV4dFBhbmVsLmdldFNlbGVjdGlvblN0YXJ0KCk7IHJ1blN0YXJ0IDw9IHNlbExpbWl0OworICAgICAgICAgICAgICAgICAgICBydW5TdGFydCA9IGZDaGFyYWN0ZXI/IHRleHQuY2hhcmFjdGVyU3R5bGVMaW1pdChydW5TdGFydCkgOiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LnBhcmFncmFwaExpbWl0KHJ1blN0YXJ0KSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgT2JqZWN0IHJ1blZhbDsKKyAgICAgICAgICAgICAgICBpZiAoZkNoYXJhY3RlcikgeworICAgICAgICAgICAgICAgICAgICBydW5WYWwgPSB0ZXh0LmNoYXJhY3RlclN0eWxlQXQocnVuU3RhcnQpLmdldChmS2V5KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJ1blZhbCA9IHRleHQucGFyYWdyYXBoU3R5bGVBdChydW5TdGFydCkuZ2V0KGZLZXkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocnVuVmFsID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgcnVuVmFsID0gZlRleHRQYW5lbC5nZXREZWZhdWx0VmFsdWVzKCkuZ2V0KGZLZXkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBzZWxlY3RWYWx1ZShydW5WYWwsIHZhbHVlcyk7CisgICAgICAgICAgICAgICAgaWYgKHJ1blN0YXJ0ID09IHRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmSXRlbXMuYWRkTGlzdFNlbGVjdGlvbkxpc3RlbmVyKG5ldyBMaXN0U2VsZWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCB2YWx1ZUNoYW5nZWQoTGlzdFNlbGVjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBmSXRlbXMuc2V0U2VsZWN0aW9uTW9kZShMaXN0U2VsZWN0aW9uTW9kZWwuU0lOR0xFX1NFTEVDVElPTik7CisgICAgICAgICAgICAgICAgZk9LQnV0dG9uLnNldEVuYWJsZWQodHJ1ZSk7CisgICAgICAgICAgICAgICAgZkl0ZW1zLnJlbW92ZUxpc3RTZWxlY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmd1aS9KVGFiUnVsZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5ndWkvSlRhYlJ1bGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDhiYzUwNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5ndWkvSlRhYlJ1bGVyLmphdmEKQEAgLTAsMCArMSwxMzQgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IEpUYWJSdWxlci5qYXZhLHYgJCAkUmV2aXNpb246IDEuMSAkICREYXRlOiAyMDAwLzA0LzIwIDE3OjQ2OjIyICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuc3dpbmd1aTsKKworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworaW1wb3J0IGphdmEuYXd0LkRpbWVuc2lvbjsKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczsKKworaW1wb3J0IGphdmF4LnN3aW5nLkpDb21wb25lbnQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5NVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NVGFiUnVsZXI7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5UYWJSdWxlckltcGw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5hd3R1aS5NVGFiUnVsZXJDb21wb25lbnQ7CisKKy8qKgorICogSlRhYlJ1bGVyIGlzIGFuIGltcGxlbWVudGF0aW9uIG9mIE1UYWJSdWxlckNvbXBvbmVudCBpbiBhIFN3aW5nIGNvbXBvbmVudC4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIEpUYWJSdWxlciBleHRlbmRzIEpDb21wb25lbnQgaW1wbGVtZW50cyBNVGFiUnVsZXJDb21wb25lbnQgeworICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBUYWJSdWxlckltcGwgZkltcGw7CisgICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgbmV3IFRhYlJ1bGVyLgorICAgICAqIEBwYXJhbSBiYXNlbGluZSB0aGUgeS1jb29yZGluYXRlIG9mIHRoZSBydWxlcidzIGJhc2VsaW5lCisgICAgICogQHBhcmFtIG9yaWdpbiB0aGUgeC1jb29yZGluYXRlIGluIHRoaXMgQ29tcG9uZW50IHdoZXJlCisgICAgICogICAgIHRoZSBsZWZ0IG1hcmdpbiBhcHBlYXJzCisgICAgICogQHBhcmFtIHRleHRQYW5lbCB0aGUgTVRleHRQYW5lbCB0byBsaXN0ZW4gdG8uICBUaGlzIFRhYlJ1bGVyCisgICAgICogICAgIHdpbGwgcmVmbGVjdCB0aGUgTVRleHRQYW5lbCdzIHBhcmFncmFwaCBzdHlsZXMsIGFuZCB1cGRhdGUKKyAgICAgKiAgICAgdGhlIHBhcmFncmFwaCBzdHlsZXMgd2hlbiBtYW5pcHVsYXRlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgSlRhYlJ1bGVyKGludCBiYXNlbGluZSwgaW50IG9yaWdpbiwgTVRleHRQYW5lbCB0ZXh0UGFuZWwpIHsKKyAgICAgICAgCisgICAgICAgIGZJbXBsID0gbmV3IFRhYlJ1bGVySW1wbChiYXNlbGluZSwgb3JpZ2luLCB0ZXh0UGFuZWwsIHRoaXMpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBMaXN0ZW4gdG8gdGhlIGdpdmVuIE1UZXh0UGFuZWwgYW5kIHJlZmxlY3QgaXRzIGNoYW5nZXMsCisgICAgICogYW5kIHVwZGF0ZSBpdHMgcGFyYWdyYXBoIHN0eWxlcyB3aGVuIFRhYlJ1bGVyIGlzCisgICAgICogbWFuaXB1bGF0ZWQuCisgICAgICogQHBhcmFtIHRleHRQYW5lbCB0aGUgTVRleHRQYW5lbCB0byBsaXN0ZW4gdG8KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBsaXN0ZW5Ub1RleHRQYW5lbChNVGV4dFBhbmVsIHRleHRQYW5lbCkgeworCisgICAgICAgIGZJbXBsLmxpc3RlblRvVGV4dFBhbmVsKHRleHRQYW5lbCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgYmFja2dyb3VuZCBjb2xvciBvZiB0aGlzIFRhYlJ1bGVyLgorICAgICAqIEByZXR1cm4gdGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhpcyBUYWJSdWxlcgorICAgICAqLworICAgIHB1YmxpYyBDb2xvciBnZXRCYWNrQ29sb3IoKSB7CisKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldEJhY2tDb2xvcigpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhpcyBUYWJSdWxlci4KKyAgICAgKiBAcGFyYW0gYmFja0NvbG9yIHRoZSBuZXcgYmFja2dyb3VuZCBjb2xvciBvZiB0aGlzIFRhYlJ1bGVyCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0QmFja0NvbG9yKENvbG9yIGJhY2tDb2xvcikgeworCisgICAgICAgIGZJbXBsLnNldEJhY2tDb2xvcihiYWNrQ29sb3IpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIE1UYWJSdWxlciByZXByZXNlbnRlZCBieSB0aGlzIFRhYlJ1bGVyLgorICAgICAqIEByZXR1cm4gdGhlIE1UYWJSdWxlciByZXByZXNlbnRlZCBieSB0aGlzIFRhYlJ1bGVyCisgICAgICovCisgICAgcHVibGljIE1UYWJSdWxlciBnZXRSdWxlcigpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBmSW1wbC5nZXRSdWxlcigpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbGVhZGluZyBtYXJnaW4gb2YgdGhpcyBUYWJSdWxlci4KKyAgICAgKiBAcmV0dXJuIHRoZSBsZWFkaW5nIG1hcmdpbiBvZiB0aGlzIFRhYlJ1bGVyCisgICAgICovCisgICAgcHVibGljIGludCBnZXRMZWFkaW5nTWFyZ2luKCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldExlYWRpbmdNYXJnaW4oKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGZpcnN0IGxpbmUgaW5kZW50IG9mIHRoaXMgVGFiUnVsZXIuCisgICAgICogQHJldHVybiB0aGUgZmlyc3QgbGluZSBpbmRlbnQgb2YgdGhpcyBUYWJSdWxlcgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0Rmlyc3RMaW5lSW5kZW50KCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldEZpcnN0TGluZUluZGVudCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgdHJhaWxpbmcgbWFyZ2luIG9mIHRoaXMgVGFiUnVsZXIuCisgICAgICogQHJldHVybiB0aGUgdHJhaWxpbmcgbWFyZ2luIG9mIHRoaXMgVGFiUnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldFRyYWlsaW5nTWFyZ2luKCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldFRyYWlsaW5nTWFyZ2luKCk7CisgICAgfQorICAgIAorICAgIC8vIFRoZSBmb2xsb3dpbmcgYXJlIENvbXBvbmVudCBtZXRob2RzIHdoaWNoIG5lZWQgdG8gYmUgZGVsZWdhdGVkIHRvCisgICAgLy8gdGhlIGltcGxlbWVudGF0aW9uOgorICAgIAorICAgIHB1YmxpYyB2b2lkIHBhaW50KEdyYXBoaWNzIGcpIHsKKyAgICAgICAgCisgICAgICAgIGZJbXBsLnBhaW50KGcpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgRGltZW5zaW9uIGdldFByZWZlcnJlZFNpemUoKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkltcGwuZ2V0UHJlZmVycmVkU2l6ZSgpOworICAgIH0KKworICAgIHB1YmxpYyBEaW1lbnNpb24gZ2V0TWluaW11bVNpemUoKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkltcGwuZ2V0TWluaW11bVNpemUoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ3VpL0pUZXh0RnJhbWUuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5ndWkvSlRleHRGcmFtZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdkZDQyMDcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ3VpL0pUZXh0RnJhbWUuamF2YQpAQCAtMCwwICsxLDE0NiBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogSlRleHRGcmFtZS5qYXZhLHYgJCAkUmV2aXNpb246IDEuMSAkICREYXRlOiAyMDAwLzA0LzIwIDE3OjQ2OjIyICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuc3dpbmd1aTsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuSlRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLnJlc291cmNlcy5GcmFtZVJlc291cmNlczsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5SZXNvdXJjZVV0aWxzOworCitpbXBvcnQgamF2YS5hd3QuQm9yZGVyTGF5b3V0OworaW1wb3J0IGphdmEuYXd0LlRvb2xraXQ7CitpbXBvcnQgamF2YS5hd3QuZGF0YXRyYW5zZmVyLkNsaXBib2FyZDsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0FkYXB0ZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93RXZlbnQ7CisKK2ltcG9ydCBqYXZheC5zd2luZy5KRnJhbWU7CitpbXBvcnQgamF2YXguc3dpbmcuSk1lbnVCYXI7CitpbXBvcnQgamF2YXguc3dpbmcuVUlNYW5hZ2VyOworCitpbXBvcnQgamF2YS5hd3QuQ29udGFpbmVyOworCisvKioKKyAqIEpUZXh0RnJhbWUgaXMgYSBKRnJhbWUgY29udGFpbmluZyBhbiBlZGl0YWJsZSBKVGV4dFBhbmVsLCBhIHNldCBvZiBzdGFuZGFyZAorICogbWVudXMsIGFuZCBhIEpUYWJSdWxlci4gIFRoaXMgY2xhc3MgY2FuIGJlIHVzZWQgYXMtaXMsIGJ1dCBpcworICogcHJpbWFyaWx5IGludGVuZGVkIHRvIGJlIGEgc2ltcGxlIGV4YW1wbGUgb2YgaG93IHRvIHVzZSB0aGUgb3RoZXIgY2xhc3NlcworICogaW4gdGhpcyBwYWNrYWdlLgorICogQHNlZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5KVGV4dFBhbmVsCisgKiBAc2VlIFN3aW5nTWVudUJ1aWxkZXIKKyAqIEBzZWUgSlRhYlJ1bGVyCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBKVGV4dEZyYW1lIGV4dGVuZHMgSkZyYW1lIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBKVGV4dFBhbmVsIGZUZXh0UGFuZWw7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBuZXcgSlRleHRGcmFtZSB3aXRoIG5vIHRleHQsIG5vIHRpdGxlLCAKKyAgICAgKiBhbmQgYSBwcml2YXRlIGNsaXBib2FyZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgSlRleHRGcmFtZSgpIHsKKyAgICAgICAgCisgICAgICAgIHN1cGVyKCk7CisgICAgICAgIGluaXQobnVsbCwgVG9vbGtpdC5nZXREZWZhdWx0VG9vbGtpdCgpLmdldFN5c3RlbUNsaXBib2FyZCgpKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgbmV3IEpUZXh0RnJhbWUgd2l0aCBubyB0ZXh0IGFuZCB0aGUgZ2l2ZW4gdGl0bGUuCisgICAgICogVGhlIEpUZXh0UGFuZWwgd2lsbCB1c2UgYSBwcml2YXRlIGNsaXBib2FyZC4KKyAgICAgKiBAcGFyYW0gdGl0bGUgdGhlIHRpdGxlIG9mIHRoaXMgRnJhbWUKKyAgICAgKi8KKyAgICBwdWJsaWMgSlRleHRGcmFtZShTdHJpbmcgdGl0bGUpIHsKKyAgICAgICAgCisgICAgICAgIHN1cGVyKHRpdGxlKTsKKyAgICAgICAgaW5pdChudWxsLCBUb29sa2l0LmdldERlZmF1bHRUb29sa2l0KCkuZ2V0U3lzdGVtQ2xpcGJvYXJkKCkpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBuZXcgSlRleHRGcmFtZSB3aXRoIHRoZSBnaXZlbiB0ZXh0IGFuZCB0aXRsZSwgd2hvc2UKKyAgICAgKiBUZXh0UGFuZWwgd2lsbCB1c2UgdGhlIGdpdmVuIGNsaXBib2FyZC4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgaW5pdGlhbCB0ZXh0IGluIHRoZSBUZXh0UGFuZWwuICBJZiBudWxsIHRoZQorICAgICAqICAgICAgVGV4dFBhbmVsIHdpbGwgaW5pdGlhbGx5IGJlIGVtcHR5CisgICAgICogQHBhcmFtIHRpdGxlIHRoZSB0aXRsZSBvZiB0aGlzIEZyYW1lCisgICAgICogQHBhcmFtIGNsaXBib2FyZCB0aGUgQ2xpcGJvYXJkIHdoaWNoIHRoZSBUZXh0UGFuZWwgd2lsbCB1c2UuCisgICAgICogICAgICBJZiBudWxsIHRoZSBUZXh0UGFuZWwgd2lsbCB1c2UgYSBwcml2YXRlIENsaXBib2FyZAorICAgICAqLworICAgIHB1YmxpYyBKVGV4dEZyYW1lKE1Db25zdFRleHQgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0aXRsZSwKKyAgICAgICAgICAgICAgICAgICAgIENsaXBib2FyZCBjbGlwYm9hcmQpIHsKKworICAgICAgICBzdXBlcih0aXRsZSk7CisgICAgICAgIGluaXQodGV4dCwgY2xpcGJvYXJkKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgaW5pdChNQ29uc3RUZXh0IHRleHQsIENsaXBib2FyZCBjbGlwYm9hcmQpIHsKKyAgICAgICAgCisgICAgICAgIGZUZXh0UGFuZWwgPSBuZXcgSlRleHRQYW5lbCh0ZXh0LCBjbGlwYm9hcmQpOworCisgICAgICAgIEpUYWJSdWxlciB0YWJSdWxlciA9IG5ldyBKVGFiUnVsZXIoMTQsIDEwLCBmVGV4dFBhbmVsKTsKKworICAgICAgICBjcmVhdGVNZW51cygpOworCisgICAgICAgIENvbnRhaW5lciBjb250ZW50UGFuZSA9IGdldENvbnRlbnRQYW5lKCk7CisgICAgICAgIGNvbnRlbnRQYW5lLnNldExheW91dChuZXcgQm9yZGVyTGF5b3V0KCkpOworICAgICAgICBjb250ZW50UGFuZS5hZGQoZlRleHRQYW5lbCwgIkNlbnRlciIpOworICAgICAgICBjb250ZW50UGFuZS5hZGQodGFiUnVsZXIsICJOb3J0aCIpOworICAgICAgICBwYWNrKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGNyZWF0ZU1lbnVzKCkgeworCisgICAgICAgIEpNZW51QmFyIG1lbnVCYXIgPSBuZXcgSk1lbnVCYXIoKTsKKworICAgICAgICBTd2luZ01lbnVCdWlsZGVyLmdldEluc3RhbmNlKCkuY3JlYXRlTWVudXMobWVudUJhciwgZlRleHRQYW5lbCwgdGhpcyk7CisgICAgICAgIAorICAgICAgICBzZXRKTWVudUJhcihtZW51QmFyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIE1UZXh0UGFuZWwgaW4gdGhpcyBmcmFtZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgTVRleHRQYW5lbCBnZXRUZXh0UGFuZWwoKSB7CisKKyAgICAgICAgcmV0dXJuIGZUZXh0UGFuZWw7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyBsYWYgPSBVSU1hbmFnZXIuZ2V0U3lzdGVtTG9va0FuZEZlZWxDbGFzc05hbWUoKTsKKyAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID09IDEpIHsKKyAgICAgICAgICAgIGlmIChhcmdzWzBdLmVxdWFscygiY3AiKSkgeworICAgICAgICAgICAgICAgIGxhZiA9IFVJTWFuYWdlci5nZXRDcm9zc1BsYXRmb3JtTG9va0FuZEZlZWxDbGFzc05hbWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgVUlNYW5hZ2VyLnNldExvb2tBbmRGZWVsKGxhZik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goVGhyb3dhYmxlIHRoKSB7CisgICAgICAgICAgICB0aC5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgICAgICBKVGV4dEZyYW1lIGZyYW1lID0gbmV3IEpUZXh0RnJhbWUoKTsKKyAgICAgICAgZnJhbWUuYWRkV2luZG93TGlzdGVuZXIobmV3IFdpbmRvd0FkYXB0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCB3aW5kb3dDbG9zaW5nKFdpbmRvd0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXhpdCgwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIGZyYW1lLnNldFNpemUoNTUwLCA3MDApOworICAgICAgICBmcmFtZS5zaG93KCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmd1aS9Td2luZ01lbnVCdWlsZGVyLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ3VpL1N3aW5nTWVudUJ1aWxkZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42NzRkMGI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmd1aS9Td2luZ01lbnVCdWlsZGVyLmphdmEKQEAgLTAsMCArMSwyMzYgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IFN3aW5nTWVudUJ1aWxkZXIuamF2YSx2ICQgJFJldmlzaW9uOiAxLjIgJCAkRGF0ZTogMjAwMS8xMC8zMCAwMjo0Mjo0OCAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN3aW5ndWk7CisKK2ltcG9ydCBqYXZhLmF3dC5GcmFtZTsKK2ltcG9ydCBqYXZhLmF3dC5XaW5kb3c7CisKK2ltcG9ydCBqYXZheC5zd2luZy5KTWVudTsKK2ltcG9ydCBqYXZheC5zd2luZy5KTWVudUJhcjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuRnJhbWVSZXNvdXJjZXM7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC4qOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLkRpYWxvZ0l0ZW0uRGlhbG9nRmFjdG9yeTsKKworLyoqCisgKiBTd2luZ01lbnVCdWlsZGVyIHByb3ZpZGVzIGEgbWV0aG9kIGZvciBjcmVhdGluZyBhIHNldCBvZiBTd2luZyBtZW51cyBmb3IgaW50ZXJhY3RpbmcKKyAqIHdpdGggYW4gTVRleHRQYW5lbC4gIEZ1dHVyZSB2ZXJzaW9ucyBvZiB0aGlzIGNsYXNzIG1heSBwcm92aWRlIGdyZWF0ZXIgY29udHJvbAorICogb3ZlciB0aGUgbWVudSBjb250ZW50cy4KKyAqIEBzZWUgTVRleHRQYW5lbAorICovCitwdWJsaWMgZmluYWwgY2xhc3MgU3dpbmdNZW51QnVpbGRlciBleHRlbmRzIE1lbnVCdWlsZGVyIHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN3aW5nTWVudUJ1aWxkZXIgSU5TVEFOQ0UgPSBuZXcgU3dpbmdNZW51QnVpbGRlcigpOworICAgIAorICAgIC8qKgorICAgICAqIElkIGZvciBhbiBFZGl0IG1lbnUuICBUaGUgRWRpdCBtZW51IGhhcyB0aGUgZm9sbG93aW5nIGl0ZW1zOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+PGI+VW5kbzwvYj4gLSBpbnZva2UgdW5kbygpIG9uIHRoZSBNVGV4dFBhbmVsPC9saT4KKyAgICAgKiA8bGk+PGI+UmVkbzwvYj4gLSBpbnZva2UgcmVkbygpIG9uIHRoZSBNVGV4dFBhbmVsPC9saT4KKyAgICAgKiA8bGk+PGI+Q3V0PC9iPiAtIGludm9rZSBjdXQoKSBvbiB0aGUgTVRleHRQYW5lbDwvbGk+CisgICAgICogPGxpPjxiPkNvcHk8L2I+IC0gaW52b2tlIGNvcHkoKSBvbiB0aGUgTVRleHRQYW5lbDwvbGk+CisgICAgICogPGxpPjxiPlBhc3RlPC9iPiAtIGludm9rZSBwYXN0ZSgpIG9uIHRoZSBNVGV4dFBhbmVsPC9saT4KKyAgICAgKiA8bGk+PGI+Q2xlYXI8L2I+IC0gaW52b2tlIGNsZWFyKCkgb24gdGhlIE1UZXh0UGFuZWw8L2xpPgorICAgICAqIDxsaT48Yj5TZWxlY3QgQWxsPC9iPiAtIGludm9rZSBzZWxlY3RBbGwoKSBvbiB0aGUgTVRleHRQYW5lbDwvbGk+CisgICAgICogPC91bD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFRElUID0gTWVudUJ1aWxkZXIuRURJVDsKKyAgICAvKioKKyAgICAgKiBJZCBmb3IgdGhlIHBvaW50IHNpemVzIG1lbnUuICBUaGUgbWVudSBoYXMgaXRlbXMgdGhhdCBzZXQgdGhlIHNpemUgb2YgYSBjaGFyYWN0ZXIKKyAgICAgKiBpbiBhIHR5cGVmYWNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNJWkUgPSBNZW51QnVpbGRlci5TSVpFOworICAgIC8qKgorICAgICAqIElkIGZvciBhIFN0eWxlIG1lbnUuICBUaGUgU3R5bGUgbWVudSBoYXMgdGhlIGZvbGxvd2luZyBpdGVtczoKKyAgICAgKiA8dWw+CisgICAgICogPGxpPjxiPlBsYWluPC9iPiAtIHJlbW92ZSA8Y29kZT5XRUlHSFQ8L2NvZGU+LAorICAgICAqICAgICAgICAgICAgICAgICAgICA8Y29kZT5QT1NUVVJFPC9jb2RlPiwKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgPGNvZGU+VU5ERVJMSU5FPC9jb2RlPiBhbmQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgPGNvZGU+U1RSSUtFVEhST1VHSDwvY29kZT4gYXR0cmlidXRlcyBmcm9tIHRoZQorICAgICAqIGN1cnJlbnQgc2VsZWN0aW9uPC9saT4KKyAgICAgKiA8bGk+PGI+Qm9sZDwvYj4gLSBhZGQgPGNvZGU+e1dFSUdIVCxXRUlHSFRfQk9MRH08L2NvZGU+IHRvCisgICAgICogdGhlIGN1cnJlbnQgc2VsZWN0aW9uPC9saT4KKyAgICAgKiA8bGk+PGI+SXRhbGljPC9iPiAtIGFkZCA8Y29kZT57UE9TVFVSRSxQT1NUVVJFX0lUQUxJQ308L2NvZGU+IHRvCisgICAgICogdGhlIGN1cnJlbnQgc2VsZWN0aW9uPC9saT4KKyAgICAgKiA8bGk+PGI+VW5kZXJsaW5lPC9iPiAtIGFkZCA8Y29kZT57VU5ERVJMSU5FLFVOREVSTElORV9PTn08L2NvZGU+IHRvCisgICAgICogdGhlIGN1cnJlbnQgc2VsZWN0aW9uPC9saT4KKyAgICAgKiA8bGk+PGI+U3RyaWtldGhyb3VnaDwvYj4gLSBhZGQgPGNvZGU+e1NUUklLRVRIUk9VR0gsU1RSSUtFVEhST1VHSF9PTn08L2NvZGU+CisgICAgICogdG8gdGhlIGN1cnJlbnQgc2VsZWN0aW9uPC9saT4KKyAgICAgKiA8bGk+PGI+Rm9udC4uLjwvYj4gLSBkaXNwbGF5IGEgZGlhbG9nIGFsbG93aW5nIHRoZSB1c2VyIHRvCisgICAgICogc2VsZWN0IGEgdHlwZWZhY2UgKGZvbnQgZmFtaWx5KSBmb3IgdGhlIGN1cnJlbnQgc2VsZWN0aW9uPC9saT4KKyAgICAgKiA8bGk+PGI+Rm9yZWNvbG9yLi4uPC9iPiAtIGRpc3BsYXkgYSBkaWFsb2cgYWxsb3dpbmcgdGhlIHVzZXIgdG8KKyAgICAgKiBzZWxlY3QgYSBmb3JlZ3JvdW5kIGNvbG9yIGZvciB0aGUgY3VycmVudCBzZWxlY3Rpb248L2xpPgorICAgICAqIDxsaT48Yj5CYWNrY29sb3IuLi48L2I+IC0gZGlzcGxheSBhIGRpYWxvZyBhbGxvd2luZyB0aGUgdXNlciB0bworICAgICAqIHNlbGVjdCBhIGJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBjdXJyZW50IHNlbGVjdGlvbjwvbGk+CisgICAgICogPC91bD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTVFlMRSA9IE1lbnVCdWlsZGVyLlNUWUxFOworICAgIC8qKgorICAgICAqIElkIGZvciBhIHBhcmFncmFwaCBhbGlnbm1lbnQgbWVudS4gIFRoZSBtZW51IGhhcyB0aGUgZm9sbG93aW5nIGl0ZW1zOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+PGI+TGVhZGluZzwvYj4gLSBnaXZlIHNlbGVjdGVkIHBhcmFncmFwaChzKSBMRUFESU5HIGZsdXNoPC9saT4KKyAgICAgKiA8bGk+PGI+Q2VudGVyPC9iPiAtIGdpdmUgc2VsZWN0ZWQgcGFyYWdyYXBoKHMpIENFTlRFUiBmbHVzaDwvbGk+CisgICAgICogPGxpPjxiPlRyYWlsaW5nPC9iPiAtIGdpdmUgc2VsZWN0ZWQgcGFyYWdyYXBoKHMpIFRSQUlMSU5HIGZsdXNoPC9saT4KKyAgICAgKiA8bGk+PGI+SnVzdGlmaWVkPC9iPiAtIGdpdmUgc2VsZWN0ZWQgcGFyYWdyYXBoKHMpIGZ1bGwganVzdGlmaWNhdGlvbjwvbGk+CisgICAgICogPC91bD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGTFVTSCA9IE1lbnVCdWlsZGVyLkZMVVNIOworICAgIC8qKgorICAgICAqIElkIGZvciBhIG1lbnUgdGhhdCBzZXRzIHRoZSBLZXlSZW1hcAorICAgICAqIG9uIGFuIE1UZXh0UGFuZWwuICBUaGUgbWVudSBoYXMgdGhlIGZvbGxvd2luZyBpdGVtczoKKyAgICAgKiA8dWw+CisgICAgICogPGxpPjxiPkRlZmF1bHQ8L2I+IC0gc2V0IEtleVJlbWFwIHRvIGlkZW50aXR5IHJlbWFwPC9saT4KKyAgICAgKiA8bGk+PGI+QXJhYmljPC9iPiAtIHNldCBLZXlSZW1hcCB0byBBcmFiaWMgdHJhbnNsaXRlcmF0aW9uPC9saT4KKyAgICAgKiA8bGk+PGI+SGVicmV3PC9iPiAtIHNldCBLZXlSZW1hcCB0byBIZWJyZXcgdHJhbnNsaXRlcmF0aW9uPC9saT4KKyAgICAgKiA8bGk+PGI+SXNyYWVsIE5pa3VkPC9iPiAtIHNldCBLZXlSZW1hcCB0byBJc3JhZWwgTmlrdWQ8L2xpPgorICAgICAqIDxsaT48Yj5UaGFpIEtldG1hbmVlPC9iPiAtIHNldCBLZXlSZW1hcCB0byBUaGFpIEtldG1hbmVlPC9saT4KKyAgICAgKiA8L3VsPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEtFWU1BUCA9IE1lbnVCdWlsZGVyLktFWU1BUDsKKyAgICAvKioKKyAgICAgKiBJZCBmb3IgYSBtZW51IHRoYXQgc2V0cworICAgICAqIHRoZSBwcmltYXJ5IHJ1biBkaXJlY3Rpb24gZm9yIGEgcGFyYWdyYXBoLiAgUnVuIGRpcmVjdGlvbiBjYW4gYmUgbGVmdC10by1yaWdodCwKKyAgICAgKiByaWdodC10by1sZWZ0LCBvciBjYW4gdXNlIHRoZSBkZWZhdWx0IHJ1biBkaXJlY3Rpb24gZnJvbSB0aGUgVW5pY29kZSBiaWRpIGFsZ29yaXRobS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCSURJID0gTWVudUJ1aWxkZXIuQklESTsKKyAgICAvKioKKyAgICAgKiBJZCBmb3IgYSBtZW51IHdpdGggYW4gPGI+QWJvdXQ8L2I+IGl0ZW0uICBXaGVuIHNlbGVjdGVkLCAKKyAgICAgKiB0aGUgaXRlbSBkaXNwbGF5cyBhIEZyYW1lIGNvbnRhaW5pbmcgc29tZQorICAgICAqIHNlbGYtcHJvbW90aW9uYWwgdGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBQk9VVCA9IE1lbnVCdWlsZGVyLkFCT1VUOworICAgIC8qKgorICAgICAqIFJldHVybiBhbiBpbnN0YW5jZSBvZiBTd2luZ01lbnVCdWlsZGVyLgorICAgICAqLworICAgICAKKyAgICBwdWJsaWMgc3RhdGljIFN3aW5nTWVudUJ1aWxkZXIgZ2V0SW5zdGFuY2UoKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gSU5TVEFOQ0U7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgSk1lbnVCYXIgZk1lbnVCYXI7CisgICAgCisgICAgcHJpdmF0ZSBTd2luZ01lbnVCdWlsZGVyKCkgeworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBBZGQgYSBzdGFuZGFyZCBzZXQgb2YgbWVudXMgdG8gdGhlIGdpdmVuIG1lbnUgYmFyLiAgVGhlIG1lbnVzIAorICAgICAqIHdpbGwgaW50ZXJhY3Qgd2l0aCB0aGUgZ2l2ZW4gTVRleHRQYW5lbC4KKyAgICAgKiBAcGFyYW0gbWVudUJhciB0aGUgTWVudUJhciB0byB3aGljaCBtZW51cyBhcmUgYWRkZWQKKyAgICAgKiBAcGFyYW0gdGV4dFBhbmVsIHRoZSBNVGV4dFBhbmVsIHdpdGggd2hpY2ggdGhlIG1lbnVzIGludGVyYWN0CisgICAgICogQHBhcmFtIGZyYW1lIGEgRnJhbWUgdG8gdXNlIGFzIHRoZSBwYXJlbnQgb2YgYW55IGRpYWxvZ3MgY3JlYXRlZCBieSBhIAorICAgICAqICAgYSBtZW51IGl0ZW0uICBJZiBudWxsLCBtZW51IGl0ZW1zIHdoaWNoIGNyZWF0ZSBkaWFsb2dzIHdpbGwgYmUgb21pdHRlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjcmVhdGVNZW51cyhKTWVudUJhciBtZW51QmFyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBNVGV4dFBhbmVsIHRleHRQYW5lbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcmFtZSBmcmFtZSkgeworCisgICAgICAgIGNyZWF0ZU1lbnVzKG1lbnVCYXIsIHRleHRQYW5lbCwgZnJhbWUsIGRlZmF1bHRNZW51cyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEFkZCBhIHNldCBvZiBtZW51cyB0byB0aGUgZ2l2ZW4gbWVudSBiYXIuICBUaGUgbWVudXMgCisgICAgICogd2lsbCBpbnRlcmFjdCB3aXRoIHRoZSBnaXZlbiBNVGV4dFBhbmVsLgorICAgICAqIEBwYXJhbSBtZW51QmFyIHRoZSBNZW51QmFyIHRvIHdoaWNoIG1lbnVzIGFyZSBhZGRlZAorICAgICAqIEBwYXJhbSB0ZXh0UGFuZWwgdGhlIE1UZXh0UGFuZWwgd2l0aCB3aGljaCB0aGUgbWVudXMgaW50ZXJhY3QKKyAgICAgKiBAcGFyYW0gZnJhbWUgYSBGcmFtZSB0byB1c2UgYXMgdGhlIHBhcmVudCBvZiBhbnkgZGlhbG9ncyBjcmVhdGVkIGJ5IGEgCisgICAgICogICBhIG1lbnUgaXRlbS4gIElmIG51bGwsIG1lbnUgaXRlbXMgd2hpY2ggY3JlYXRlIGRpYWxvZ3Mgd2lsbCBiZSBvbWl0dGVkLgorICAgICAqIEBwYXJhbSBtZW51cyBhbiBhcnJheSBvZiBpbnRlZ2VyIG1lbnUgaWQncy4gIEVhY2ggZWxlbWVudCBvZiB0aGUKKyAgICAgKiAgIGFycmF5IG11c3QgYmUgb25lIG9mIHRoaXMgY2xhc3MncyBtZW51IGlkIGNvbnN0YW50cy4gIElmIG51bGwsCisgICAgICogICB0aGUgZGVmYXVsdCBtZW51cyBhcmUgY3JlYXRlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjcmVhdGVNZW51cyhKTWVudUJhciBtZW51QmFyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1UZXh0UGFuZWwgdGV4dFBhbmVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZyYW1lIGZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludFtdIG1lbnVzKSB7CisgICAgICAgIAorICAgICAgICBpZiAobWVudXMgPT0gbnVsbCkgeworICAgICAgICAgICAgbWVudXMgPSBkZWZhdWx0TWVudXM7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHN5bmNocm9uaXplZCAoTUl0ZW0uTE9DSykgeworICAgICAgICAgICAgCisgICAgICAgICAgICBmTWVudUJhciA9IG1lbnVCYXI7CisgICAgICAgICAgICBkb0NyZWF0ZU1lbnVzKHRleHRQYW5lbCwgZnJhbWUsIG1lbnVzKTsKKyAgICAgICAgICAgIGZNZW51QmFyID0gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVBZGRNZW51KFN0cmluZyBrZXkpIHsKKyAgICAgICAgCisgICAgICAgIEpNZW51IG1lbnUgPSBuZXcgSk1lbnUoUmVzb3VyY2VVdGlscy5nZXRSZXNvdXJjZVN0cmluZyhrZXkpKTsKKyAgICAgICAgZk1lbnVCYXIuYWRkKG1lbnUpOworICAgICAgICBNSXRlbS5zZXRJdGVtRmFjdG9yeShuZXcgU3dpbmdNZW51RmFjdG9yeShtZW51KSk7CisgICAgfQorCisgICAgcHJvdGVjdGVkIERpYWxvZ0ZhY3RvcnkgY3JlYXRlT2JqZWN0RGlhbG9nRmFjdG9yeShmaW5hbCBTdHJpbmcgZGlhbG9nVGl0bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmcgZGlhbG9nTWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIE9iamVjdCBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBib29sZWFuIGNoYXJhY3RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIFN0cmluZ1tdIG5hbWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgT2JqZWN0W10gdmFsdWVzKSB7CisgICAgICAgIAorICAgICAgICBmaW5hbCBGcmFtZSBkaWFsb2dQYXJlbnQgPSBmRGlhbG9nUGFyZW50OworCisgICAgICAgIHJldHVybiBuZXcgRGlhbG9nRmFjdG9yeSgpIHsgICAgCisgICAgICAgICAgICBwdWJsaWMgV2luZG93IGNyZWF0ZURpYWxvZyhNVGV4dFBhbmVsIHRleHRQYW5lbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgSk9iamVjdERpYWxvZyhkaWFsb2dQYXJlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlhbG9nVGl0bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlhbG9nTWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0UGFuZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJhY3RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXMpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgRGlhbG9nRmFjdG9yeSBjcmVhdGVOdW1iZXJEaWFsb2dGYWN0b3J5KGZpbmFsIFN0cmluZyBkaWFsb2dUaXRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIFN0cmluZyBkaWFsb2dNZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgT2JqZWN0IGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIGJvb2xlYW4gY2hhcmFjdGVyKSB7CisgICAgICAgIAorICAgICAgICBmaW5hbCBGcmFtZSBkaWFsb2dQYXJlbnQgPSBmRGlhbG9nUGFyZW50OworICAgICAgICAvLyB2YXJpYWJsZSBub3QgdXNlZCBmaW5hbCBNVGV4dFBhbmVsIHRleHRQYW5lbCA9IGZUZXh0UGFuZWw7CisgICAgICAgICAgICAKKyAgICAgICAgcmV0dXJuIG5ldyBEaWFsb2dGYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFdpbmRvdyBjcmVhdGVEaWFsb2coTVRleHRQYW5lbCBmVGV4dFBhbmVsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBKTnVtYmVyRGlhbG9nKGRpYWxvZ1BhcmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlhbG9nVGl0bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpYWxvZ01lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZUZXh0UGFuZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcmFjdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9ICAgIAorICAgIAorICAgIHByb3RlY3RlZCBEaWFsb2dGYWN0b3J5IGNyZWF0ZUFib3V0RGlhbG9nRmFjdG9yeSgpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBuZXcgRGlhbG9nRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBXaW5kb3cgY3JlYXRlRGlhbG9nKE1UZXh0UGFuZWwgdGV4dFBhbmVsKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRpdGxlID0gUmVzb3VyY2VVdGlscy5nZXRSZXNvdXJjZVN0cmluZyhGcmFtZVJlc291cmNlcy5BQk9VVF9USVRMRSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBKTWVzc2FnZURpYWxvZyh0aXRsZSwgQWJvdXRUZXh0LmdldEFib3V0VGV4dCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmd1aS9Td2luZ01lbnVGYWN0b3J5LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ3VpL1N3aW5nTWVudUZhY3RvcnkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wYzE5YWU0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmd1aS9Td2luZ01lbnVGYWN0b3J5LmphdmEKQEAgLTAsMCArMSwxMDggQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IFN3aW5nTWVudUZhY3RvcnkuamF2YSx2ICQgJFJldmlzaW9uOiAxLjEgJCAkRGF0ZTogMjAwMC8wNC8yMCAxNzo0NjoyMiAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN3aW5ndWk7CisKK2ltcG9ydCBqYXZhLmF3dC5FdmVudDsKKworaW1wb3J0IGphdmF4LnN3aW5nLkpDaGVja0JveE1lbnVJdGVtOworaW1wb3J0IGphdmF4LnN3aW5nLkpNZW51OworaW1wb3J0IGphdmF4LnN3aW5nLkpNZW51SXRlbTsKK2ltcG9ydCBqYXZheC5zd2luZy5KU2VwYXJhdG9yOworaW1wb3J0IGphdmF4LnN3aW5nLktleVN0cm9rZTsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkxpc3RlbmVyOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwucmVzb3VyY2VzLk1lbnVEYXRhOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLkV2ZW50TGlzdGVuZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwuTUl0ZW07CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwuTUl0ZW0uSXRlbUZhY3Rvcnk7CisKK2ZpbmFsIGNsYXNzIFN3aW5nTWVudUZhY3RvcnkgaW1wbGVtZW50cyBJdGVtRmFjdG9yeSB7CisgICAgICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBmaW5hbCBjbGFzcyBTd2luZ01JdGVtIGV4dGVuZHMgTUl0ZW0geworICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBKTWVudUl0ZW0gZkl0ZW07CisgICAgICAgIAorICAgICAgICBTd2luZ01JdGVtKEpNZW51SXRlbSBpdGVtKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZJdGVtID0gaXRlbTsKKyAgICAgICAgICAgIGl0ZW0uYWRkQWN0aW9uTGlzdGVuZXIobmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVNlbGVjdGVkKCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBzdXBlci5oYW5kbGVTZWxlY3RlZCgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgZmluYWwgdm9pZCBzZXRFbmFibGVkKGJvb2xlYW4gZW5hYmxlZCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBmSXRlbS5zZXRFbmFibGVkKGVuYWJsZWQpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgdm9pZCBzZXRTdGF0ZShib29sZWFuIGNoZWNrZWQpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBKQ2hlY2tCb3hNZW51SXRlbSBpdGVtID0gKEpDaGVja0JveE1lbnVJdGVtKSBmSXRlbTsKKyAgICAgICAgICAgICAgICBpdGVtLnNldFN0YXRlKGNoZWNrZWQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2goQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBwZXJmb3JtIHNldENoZWNrZWQgb24gbm9uLWNoZWNrYm94IGl0ZW0iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIEpNZW51IGZNZW51OworICAgICAgICAKKyAgICBTd2luZ01lbnVGYWN0b3J5KEpNZW51IG1lbnUpIHsKKyAgICAgICAgICAgIAorICAgICAgICBmTWVudSA9IG1lbnU7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgTUl0ZW0gaGFuZGxlQ3JlYXRlKEpNZW51SXRlbSBpdGVtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lbnVEYXRhIG1lbnVEYXRhKSB7CisKKyAgICAgICAgaWYgKG1lbnVEYXRhLmhhc1Nob3J0Y3V0KCkpIHsKKyAgICAgICAgICAgIEtleVN0cm9rZSBrcyA9IEtleVN0cm9rZS5nZXRLZXlTdHJva2UobWVudURhdGEuZ2V0U2hvcnRjdXRLZXlDb2RlKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV2ZW50LkNUUkxfTUFTSyk7CisgICAgICAgICAgICBpdGVtLnNldEFjY2VsZXJhdG9yKGtzKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZk1lbnUuYWRkKGl0ZW0pOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIG5ldyBTd2luZ01JdGVtKGl0ZW0pOworICAgIH0KKyAgICAgICAgCisgICAgcHVibGljIE1JdGVtIGNyZWF0ZUl0ZW0oTWVudURhdGEgbWVudURhdGEpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBoYW5kbGVDcmVhdGUobmV3IEpNZW51SXRlbShtZW51RGF0YS5nZXROYW1lKCkpLCBtZW51RGF0YSk7CisgICAgfSAgICAgICAgCisKKyAgICBwdWJsaWMgTUl0ZW0gY3JlYXRlQ2hlY2tib3hJdGVtKE1lbnVEYXRhIG1lbnVEYXRhKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gaGFuZGxlQ3JlYXRlKG5ldyBKQ2hlY2tCb3hNZW51SXRlbShtZW51RGF0YS5nZXROYW1lKCkpLCBtZW51RGF0YSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGNyZWF0ZVNlcGFyYXRvcigpIHsKKyAgICAgICAgCisgICAgICAgIGZNZW51LmFkZChuZXcgSlNlcGFyYXRvcigpKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ3VpL3BhY2thZ2UuaHRtbCBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5ndWkvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQ1MGJhZTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ3VpL3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDUgQEAKKzxodG1sPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiPgorUHJvdmlkZXMgY2xhc3NlcyBmb3IgYnVpbGRpbmcgYSBTd2luZy1iYXNlZCB1c2VyIGludGVyZmFjZSBmb3IgYSBUZXh0UGFuZWwuCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L0RlY2xhcmF0aW9uLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L0RlY2xhcmF0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjliZDJmZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvRGVjbGFyYXRpb24uamF2YQpAQCAtMCwwICsxLDQ0IEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBEZWNsYXJhdGlvbi5qYXZhLHYgJCAkUmV2aXNpb246IDEuMiAkICREYXRlOiAyMDAyLzAyLzE2IDAzOjA2OjM4ICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGVzdDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZWRUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKKworLyoqCisgKiBUaGlzIGNsYXNzIGNvbnRhaW5zIHRoZSBmaXJzdCBmb3VyIHBhcmFncmFwaHMgb2YgdGhlIERlY2xhcmF0aW9uCisgKiBvZiBJbmRlcGVuZGVuY2UsIGFzIGJvdGggc3R5bGVkIGFuZCB1bnN0eWxlZCB0ZXh0LiAgVGhlIHZpZXdzCisgKiBleHByZXNzZWQgdGhlcmVpbiBhcmUgbm90IG5lY2Vzc2FyaWx5IHRob3NlIG9mIHRoZSBwcm9ncmFtbWVyIG9yIG9mCisgKiBoaXMvaGVyIGVtcGxveWVyLiAgTm8gY3JpdGljaXNtIG9mIGFueSBtb25hcmNoeSwgb2xpZ2FyY2h5LCBkaWN0YXRvcnNoaXAsCisgKiBhdXRvY3JhY3ksIHBsdXRvY3JhY3ksIHRoZW9jcmFjeSwgYW5hcmNoaXN0IHRlcnJpdG9yeSwgY29sb25pYWwgcG93ZXIsCisgKiBvciBhbnkgb3RoZXIgbm9uZGVtb2NyYXRpYyBmb3JtIG9mIGdvdmVybm1lbnQgaXMgaW50ZW5kZWQuICBUaGlzIGRvY3VtZW50CisgKiBpcyBwcm92aWRlZCAiYXMtaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3NlZCBvciBpbXBsaWVkLgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgRGVjbGFyYXRpb24geworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBmZ0RlY2xhcmF0aW9uU3RyID0gIkluIENvbmdyZXNzLCBKdWx5IDQsIDE3NzYsIFRIRSBVTkFOSU1PVVMgREVDTEFSQVRJT04gT0YgVEhFIFRISVJURUVOIFVOSVRFRCBTVEFURVMgT0YgQU1FUklDQVxuIiArCisgICAgICAgICJcbiIgKworICAgICAgICAiV2hlbiBpbiB0aGUgQ291cnNlIG9mIGh1bWFuIEV2ZW50cywgaXQgYmVjb21lcyBuZWNlc3NhcnkgZm9yIG9uZSBQZW9wbGUgdG8gZGlzc29sdmUgdGhlIFBvbGl0aWNhbCBCYW5kcyB3aGljaCBoYXZlIGNvbm5lY3RlZCB0aGVtIHdpdGggYW5vdGhlciwgYW5kIHRvIGFzc3VtZSBhbW9uZyB0aGUgUG93ZXJzIG9mIHRoZSBFYXJ0aCwgdGhlIHNlcGFyYXRlIGFuZCBlcXVhbCBTdGF0aW9uIHRvIHdoaWNoIHRoZSBMYXdzIG9mIE5hdHVyZSBhbmQgb2YgTmF0dXJlJ3MgR29kIGVudGl0bGUgdGhlbSwgYSBkZWNlbnQgUmVzcGVjdCB0byB0aGUgT3BpbmlvbnMgb2YgTWFua2luZCByZXF1aXJlcyB0aGF0IHRoZXkgc2hvdWxkIGRlY2xhcmUgdGhlIGNhdXNlcyB3aGljaCBpbXBlbCB0aGVtIHRvIHRoZSBTZXBhcmF0aW9uLlxuIiArCisgICAgICAgICJcbiIgKworICAgICAgICAiV2UgaG9sZCB0aGVzZSBUcnV0aHMgdG8gYmUgc2VsZi1ldmlkZW50LCB0aGF0IGFsbCBNZW4gYXJlIGNyZWF0ZWQgZXF1YWwsIHRoYXQgdGhleSBhcmUgZW5kb3dlZCBieSB0aGVpciBDcmVhdG9yIHdpdGggY2VydGFpbiB1bmFsaWVuYWJsZSBSaWdodHMsIHRoYXQgYW1vbmcgdGhlc2UgYXJlIExpZmUsIExpYmVydHksIGFuZCB0aGUgUHVyc3VpdCBvZiBIYXBwaW5lc3MuXG4iICsKKyAgICAgICAgIlxuIiArCisgICAgICAgICJUaGF0IHRvIHNlY3VyZSB0aGVzZSBSaWdodHMsIEdvdmVybm1lbnRzIGFyZSBpbnN0aXR1dGVkIGFtb25nIE1lbiwgZGVyaXZpbmcgdGhlaXIganVzdCBQb3dlcnMgZnJvbSB0aGUgQ29uc2VudCBvZiB0aGUgR292ZXJuZWQsIHRoYXQgd2hlbmV2ZXIgYW55IEZvcm0gb2YgR292ZXJubWVudCBiZWNvbWVzIGRlc3RydWN0aXZlIG9mIHRoZXNlIEVuZHMsIGl0IGlzIHRoZSBSaWdodCBvZiB0aGUgUGVvcGxlIHRvIGFsdGVyIG9yIHRvIGFib2xpc2ggaXQsIGFuZCB0byBpbnN0aXR1dGUgbmV3IEdvdmVybm1lbnQsIGxheWluZyBpdHMgRm91bmRhdGlvbiBvbiBzdWNoIFByaW5jaXBsZXMsIGFuZCBvcmdhbml6aW5nIGl0cyBQb3dlcnMgaW4gc3VjaCBGb3JtLCBhcyB0byB0aGVtIHNoYWxsIHNlZW0gbW9zdCBsaWtlbHkgdG8gZWZmZWN0IHRoZWlyIFNhZmV0eSBhbmQgSGFwcGluZXNzLiBQcnVkZW5jZSwgaW5kZWVkLCB3aWxsIGRpY3RhdGUgdGhhdCBHb3Zlcm5tZW50cyBsb25nIGVzdGFibGlzaGVkIHNob3VsZCBub3QgYmUgY2hhbmdlZCBmb3IgbGlnaHQgYW5kIHRyYW5zaWVudCBDYXVzZXM7IGFuZCBhY2NvcmRpbmdseSBhbGwgRXhwZXJpZW5jZSBoYXRoIHNoZXduLCB0aGF0IE1hbmtpbmQgYXJlIG1vcmUgZGlzcG9zZWQgdG8gc3VmZmVyLCB3aGlsZSBFdmlscyBhcmUgc3VmZmVyYWJsZSwgdGhhbiB0byByaWdodCB0aGVtc2VsdmVzIGJ5IGFib2xpc2hpbmcgdGhlIEZvcm1zIHRvIHdoaWNoIHRoZXkgYXJlIGFjY3VzdG9tZWQuIEJ1dCB3aGVuIGEgbG9uZyBUcmFpbiBvZiBBYnVzZXMgYW5kIFVzdXJwYXRpb25zLCBwdXJzdWluZyBpbnZhcmlhYmx5IHRoZSBzYW1lIE9iamVjdCwgZXZpbmNlcyBhIERlc2lnbiB0byByZWR1Y2UgdGhlbSB1bmRlciBhYnNvbHV0ZSBEZXNwb3Rpc20sIGl0IGlzIHRoZWlyIFJpZ2h0LCBpdCBpcyB0aGVpciBEdXR5LCB0byB0aHJvdyBvZmYgc3VjaCBHb3Zlcm5tZW50LCBhbmQgdG8gcHJvdmlkZSBuZXcgR3VhcmRzIGZvciB0aGVpciBmdXR1cmUgU2VjdXJpdHkuXG4iICsKKyAgICAgICAgIlxuIjsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTUNvbnN0VGV4dCBmZ0RlY2xhcmF0aW9uID0gbmV3IFN0eWxlZFRleHQoZmdEZWNsYXJhdGlvblN0ciwgQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVApOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC9JVGVzdFRleHRQYW5lbC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC9JVGVzdFRleHRQYW5lbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjZiODBiOTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L0lUZXN0VGV4dFBhbmVsLmphdmEKQEAgLTAsMCArMSwyMTQgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IElUZXN0VGV4dFBhbmVsLmphdmEsdiAkICRSZXZpc2lvbjogMS4zICQgJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6MzggJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXN0OworCitpbXBvcnQgamF2YS5hd3QuQnV0dG9uOworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworaW1wb3J0IGphdmEuYXd0LkdyaWRMYXlvdXQ7CitpbXBvcnQgamF2YS5hd3QuZGF0YXRyYW5zZmVyLkNsaXBib2FyZDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5BY3Rpb25FdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5BY3Rpb25MaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dBZGFwdGVyOworCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS50ZXh0LkRhdGVGb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5NVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmF3dHVpLlRleHRGcmFtZTsKKworcHVibGljIGNsYXNzIElUZXN0VGV4dFBhbmVsIGV4dGVuZHMgRnJhbWUgaW1wbGVtZW50cyBBY3Rpb25MaXN0ZW5lciB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgc3RhdGljIGxvbmcgZmdPcENvdW50ID0gMDsKKworICAgIHByaXZhdGUgVGVzdFRleHRQYW5lbCBmVGVzdDsKKyAgICAKKyAgICBwcml2YXRlIE1UZXh0UGFuZWwgZlRleHRQYW5lbDsKKyAgICBwcml2YXRlIEZyYW1lIGZUZXh0RnJhbWU7CisgICAgcHJpdmF0ZSBDbGlwYm9hcmQgZkNsaXBib2FyZDsKKyAgICBwcml2YXRlIEJ1dHRvbiBmRXhlcnNpemUsIGZTdHJlc3NUZXN0LCBmUmVzaXplOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworCisgICAgICAgIERhdGUgc3RhcnREYXRlID0gbmV3IERhdGUoKTsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgQ2xpcGJvYXJkIGNsaXBib2FyZCA9IG5ldyBDbGlwYm9hcmQoIklUZXh0VGVzdFBhbmVsIik7CisgICAgICAgICAgICBUZXh0RnJhbWUgZnJhbWUgPSBuZXcgVGV4dEZyYW1lKG51bGwsICJJbnRlcmFjdGl2ZSBUZXN0IiwgY2xpcGJvYXJkKTsKKyAgICAgICAgICAgIE1UZXh0UGFuZWwgcGFuZWwgPSBmcmFtZS5nZXRUZXh0UGFuZWwoKTsKKworICAgICAgICAgICAgbmV3IElUZXN0VGV4dFBhbmVsKHBhbmVsLCBmcmFtZSwgY2xpcGJvYXJkKS5zaG93KCk7CisgICAgICAgIH0KKyAgICAgICAgZmluYWxseSB7CisgICAgICAgICAgICBEYXRlRm9ybWF0IGRmID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKCk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlN0YXJ0IHRpbWU6ICIgKyBkZi5mb3JtYXQoc3RhcnREYXRlKSk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkVuZCBUaW1lOiAiICsgZGYuZm9ybWF0KG5ldyBEYXRlKCkpKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiT3AgY291bnQ6ICIgKyBmZ09wQ291bnQpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIElUZXN0VGV4dFBhbmVsKE1UZXh0UGFuZWwgcGFuZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgIEZyYW1lIGZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICBDbGlwYm9hcmQgY2xpcGJvYXJkKSB7CisKKyAgICAgICAgZlRleHRQYW5lbCA9IHBhbmVsOworICAgICAgICBmVGVzdCA9IG5ldyBUZXN0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgICAgICBmQ2xpcGJvYXJkID0gY2xpcGJvYXJkOworCisgICAgICAgIHNldExheW91dChuZXcgR3JpZExheW91dCgwLCAxKSk7CisKKyAgICAgICAgZlRleHRGcmFtZSA9IGZyYW1lOworICAgICAgICBmVGV4dEZyYW1lLnNldFNpemUoMzUwLCA1MDApOworICAgICAgICBmVGV4dEZyYW1lLnNob3coKTsKKworICAgICAgICAvLyBpbml0aWFsaXplIFVJOgorICAgICAgICBmRXhlcnNpemUgPSBuZXcgQnV0dG9uKCJFeGVyY2lzZSIpOworICAgICAgICBmRXhlcnNpemUuYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgIGFkZChmRXhlcnNpemUpOworCisgICAgICAgIGZTdHJlc3NUZXN0ID0gbmV3IEJ1dHRvbigiU3RyZXNzIFRlc3QiKTsKKyAgICAgICAgZlN0cmVzc1Rlc3QuYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgIGFkZChmU3RyZXNzVGVzdCk7CisKKyAgICAgICAgcGFjaygpOworCisgICAgICAgIGFkZFdpbmRvd0xpc3RlbmVyKG5ldyBXaW5kb3dBZGFwdGVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgd2luZG93QWN0aXZhdGVkKFdpbmRvd0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICAvL2FjdGl2YXRlVGV4dEZyYW1lKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwdWJsaWMgdm9pZCB3aW5kb3dDbG9zaW5nKFdpbmRvd0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXhpdCgwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAgICAgICAgc2V0U2l6ZSgyODAsIDE1MCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGFjdGl2YXRlVGV4dEZyYW1lKCkgeworCisgICAgICAgIGZUZXh0RnJhbWUudG9Gcm9udCgpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBldmVudCkgeworCisgICAgICAgIE9iamVjdCBzb3VyY2UgPSBldmVudC5nZXRTb3VyY2UoKTsKKyAgICAgICAgYWN0aXZhdGVUZXh0RnJhbWUoKTsKKyAgICAgICAgRGF0ZSBzdGFydERhdGUgPSBuZXcgRGF0ZSgpOworICAgICAgICBib29sZWFuIGV4aXRlZE5vcm1hbGx5ID0gZmFsc2U7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGlmIChzb3VyY2UgPT0gZkV4ZXJzaXplKSB7CisgICAgICAgICAgICAgICAgZlRlc3QuaW5jUmFuZFNlZWQoKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpPTA7IGkgPCAxMDA7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBzZWxlY3RPcGVyYXRpb24oZlRleHRGcmFtZSwgZkNsaXBib2FyZCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoc291cmNlID09IGZTdHJlc3NUZXN0KSB7CisgICAgICAgICAgICAgICAgZlRlc3QuaW5jUmFuZFNlZWQoKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgICAgICBzZWxlY3RPcGVyYXRpb24oZlRleHRGcmFtZSwgZkNsaXBib2FyZCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZXhpdGVkTm9ybWFsbHkgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGZpbmFsbHkgeworICAgICAgICAgICAgaWYgKCFleGl0ZWROb3JtYWxseSkgeworICAgICAgICAgICAgICAgIERhdGVGb3JtYXQgZGYgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlN0YXJ0IHRpbWU6ICIgKyBkZi5mb3JtYXQoc3RhcnREYXRlKSk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFbmQgVGltZTogIiArIGRmLmZvcm1hdChuZXcgRGF0ZSgpKSk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJSYW5kIHNlZWQ6ICIgKyBmVGVzdC5nZXRSYW5kU2VlZCgpKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk9wIGNvdW50OiAiICsgZmdPcENvdW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm0gYSByYW5kb20gb3BlcmF0aW9uIG9uIHRoZSBNVGV4dFBhbmVsLiAgRnJhbWUgY2FuCisgICAgICogYmUgbnVsbC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgT1BfQ09VTlQgPSAxNTsKKworICAgIHB1YmxpYyB2b2lkIHNlbGVjdE9wZXJhdGlvbihGcmFtZSBmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xpcGJvYXJkIGZDbGlwYm9hcmQpIHsKKworICAgICAgICBpbnQgb3AgPSBmVGVzdC5yYW5kSW50KE9QX0NPVU5UKTsKKworICAgICAgICBzd2l0Y2ggKG9wKSB7CisKKyAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICBmVGVzdC5fdGVzdFNldFNlbGVjdGlvbigpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgZlRlc3QuX3Rlc3RNb2RpZmljYXRpb25zKGZUZXN0Lk1PRF9URVhULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgZlRlc3QuX3Rlc3RFZGl0TWVudU9wZXJhdGlvbnMoZkNsaXBib2FyZCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgICAgICBmVGVzdC5fdGVzdE1vZEZsYWcoZlRleHRQYW5lbC5nZXRDb21tYW5kTG9nU2l6ZSgpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAgICAgIGZUZXN0LmFwcGx5Q2hhcmFjdGVyU3R5bGUoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSA1OgorICAgICAgICAgICAgICAgIGZUZXN0LmFwcGx5UGFyYWdyYXBoU3R5bGUoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSA2OgorICAgICAgICAgICAgY2FzZSA3OgorICAgICAgICAgICAgY2FzZSA4OgorICAgICAgICAgICAgY2FzZSA5OgorICAgICAgICAgICAgICAgIGZUZXN0LnR5cGVLZXlzKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgMTA6CisgICAgICAgICAgICAgICAgZlRlc3Quc2VsZWN0VGV4dCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIDExOgorICAgICAgICAgICAgICAgIGZUZXN0LnVuZG9SZWRvKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgMTI6CisgICAgICAgICAgICAgICAgLy9pZiAoZnJhbWUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIC8vICAgIGZUZXN0LnJlc2l6ZUZyYW1lKGZyYW1lKTsKKyAgICAgICAgICAgICAgICAvLyAgICBicmVhazsKKyAgICAgICAgICAgICAgICAvL30KKworICAgICAgICAgICAgY2FzZSAxMzoKKyAgICAgICAgICAgICAgICBmVGVzdC5hcHBseUtleVJlbWFwKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgMTQ6CisgICAgICAgICAgICAgICAgZlRlc3QuX3Rlc3RDb21tYW5kTG9nQ29udHJvbCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiT1BfQ09VTlQgaXMgaW5jb3JyZWN0Iik7CisgICAgICAgIH0KKyAgICAgICAgZmdPcENvdW50Kys7CisgICAgfQorCisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvVGVzdFRleHRQYW5lbC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC9UZXN0VGV4dFBhbmVsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjdjMjZmNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvVGVzdFRleHRQYW5lbC5qYXZhCkBAIC0wLDAgKzEsODQ2IEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBUZXN0VGV4dFBhbmVsLmphdmEsdiAkICRSZXZpc2lvbjogMS44ICQgJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6MzggJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXN0OworCitpbXBvcnQgamF2YS51dGlsLlJhbmRvbTsKK2ltcG9ydCBqYXZhLmF3dC5Db2xvcjsKK2ltcG9ydCBqYXZhLmF3dC5GcmFtZTsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5LZXlFdmVudDsKKworaW1wb3J0IGphdmEuYXd0LmRhdGF0cmFuc2Zlci5DbGlwYm9hcmQ7CitpbXBvcnQgamF2YS5hd3QuZGF0YXRyYW5zZmVyLkNsaXBib2FyZE93bmVyOworaW1wb3J0IGphdmEuYXd0LmRhdGF0cmFuc2Zlci5TdHJpbmdTZWxlY3Rpb247CitpbXBvcnQgamF2YS5hd3QuZGF0YXRyYW5zZmVyLlRyYW5zZmVyYWJsZTsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLktleVJlbWFwOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLktleUV2ZW50Rm9yd2FyZGVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbEV2ZW50OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbExpc3RlbmVyOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlZFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuVGV4dEF0dHJpYnV0ZTsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVNb2RpZmllcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVTZXQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuVGV4dEF0dHJpYnV0ZTsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CisKKy8vIE5vdGU6ICB0aGlzIHVzZWQgdG8gYmUgYSBUZXN0Rm13ayB0ZXN0LiAgSWYgeW91IGFkZAorLy8gbW9yZSB0ZXN0cyB0byBpdCwgYmUgc3VyZSB0byBhZGQgdGhlbSB0byAKKy8vIGNvbS5pYm0ucmljaHRleHQudGVzdC51bml0LkZtd2tUZXN0VGV4dFBhbmVsLnRlc3QoKSAtCisvLyBvdGhlcndpc2UgdGhleSB3b24ndCBnZXQgcnVuIQorCitwdWJsaWMgY2xhc3MgVGVzdFRleHRQYW5lbCAvKmV4dGVuZHMgVGVzdEZtd2sqLyB7CisKKyAgICBwcml2YXRlIGZpbmFsIGNsYXNzIFRlc3RMaXN0ZW5lciBpbXBsZW1lbnRzIFRleHRQYW5lbExpc3RlbmVyIHsKKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgaW50IE5PX1dBWSA9IDA7CisgICAgICAgIHByaXZhdGUgaW50IERFRklOSVRFTFkgPSAxOworICAgICAgICBwcml2YXRlIGludCBNQVlCRSA9IDI7CisgICAgICAgIAorICAgICAgICBwcml2YXRlIGZpbmFsIGludFtdIHN0YXR1czsKKyAgICAgICAgCisgICAgICAgIFRlc3RMaXN0ZW5lcihNVGV4dFBhbmVsIHRleHRQYW5lbCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgbGVuZ3RoID0gVGV4dFBhbmVsRXZlbnQuVEVYVF9QQU5FTF9MQVNUIC0KKyAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0UGFuZWxFdmVudC5URVhUX1BBTkVMX0ZJUlNUICsgMTsKKyAgICAgICAgICAgIHN0YXR1cyA9IG5ldyBpbnRbbGVuZ3RoXTsKKyAgICAgICAgICAgIHRleHRQYW5lbC5hZGRMaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgICAgIGFsbG93QWxsKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHZvaWQgcmVmdXNlQWxsKCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBzdGF0dXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBzdGF0dXNbaV0gPSBOT19XQVk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHZvaWQgYWxsb3dBbGwoKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IHN0YXR1cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIHN0YXR1c1tpXSA9IE1BWUJFOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICB2b2lkIGV4cGVjdEV2ZW50KGludCB0eXBlKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBpbmRleCA9IHR5cGUgLSBUZXh0UGFuZWxFdmVudC5URVhUX1BBTkVMX0ZJUlNUOworICAgICAgICAgICAgc3RhdHVzW2luZGV4XSA9IERFRklOSVRFTFk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHZvaWQgYWxsb3dFdmVudChpbnQgdHlwZSkgeworICAgICAgICAgICAgaW50IGluZGV4ID0gdHlwZSAtIFRleHRQYW5lbEV2ZW50LlRFWFRfUEFORUxfRklSU1Q7CisgICAgICAgICAgICBzdGF0dXNbaW5kZXhdID0gTUFZQkU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHZvaWQgYXNzZXJ0Tm90RXhwZWN0aW5nRXZlbnRzKCkgeworICAgICAgICAgICAgYXNzZXJ0Tm90RXhwZWN0aW5nRXZlbnRzKGZhbHNlLCAwLCBmYWxzZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHZvaWQgYXNzZXJ0Tm90RXhwZWN0aW5nRXZlbnRzKGludCBpdGVyYXRpb25Db3VudCwgYm9vbGVhbiBleHApIHsKKyAgICAgICAgICAgIGFzc2VydE5vdEV4cGVjdGluZ0V2ZW50cyh0cnVlLCBpdGVyYXRpb25Db3VudCwgZXhwKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSB2b2lkIGFzc2VydE5vdEV4cGVjdGluZ0V2ZW50cyhib29sZWFuIGxvZ0RldGFpbHMsIGludCBpdGVyYXRpb25Db3VudCwgYm9vbGVhbiBleHApIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYm9vbGVhbiBlID0gZmFsc2U7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBzdGF0dXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoc3RhdHVzW2ldID09IERFRklOSVRFTFkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxvZ0RldGFpbHMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ01lc3NhZ2UoIkV4cGVjdGluZyBldmVudCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaStUZXh0UGFuZWxFdmVudC5URVhUX1BBTkVMX0ZJUlNUKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dNZXNzYWdlKCJpdGVyYXRpb25Db3VudD0iK2l0ZXJhdGlvbkNvdW50KyI7ICBleHBleHRpbmc9IitleHApOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGUgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChlKSB7CisgICAgICAgICAgICAgICAgcmVwb3J0RXJyb3IoIlNvbWUgZXZlbnRzIHBlbmRpbmciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgdGV4dEV2ZW50T2NjdXJyZWQoVGV4dFBhbmVsRXZlbnQgZXZlbnQpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IGluZGV4ID0gZXZlbnQuZ2V0SUQoKSAtIFRleHRQYW5lbEV2ZW50LlRFWFRfUEFORUxfRklSU1Q7CisgICAgICAgICAgICBpZiAoc3RhdHVzW2luZGV4XSA9PSBOT19XQVkpIHsKKyAgICAgICAgICAgICAgICByZXBvcnRFcnJvcigiVW5leHBlY3RlZCBldmVudDogIiArIGV2ZW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKHN0YXR1c1tpbmRleF0gPT0gREVGSU5JVEVMWSkgeworICAgICAgICAgICAgICAgIHN0YXR1c1tpbmRleF0gPSBOT19XQVk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBib29sZWFuIHJlc3BvbmRzVG9FdmVudFR5cGUoaW50IHR5cGUpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNUUklOR19DT05URU5UID0gIlNvbWUgY29udGVudCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFRFU1RfSVRFUlMgPSAyOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTUNvbnN0VGV4dCBNT0RfVEVYVCA9CisgICAgICAgICAgICAgICAgbmV3IFN0eWxlZFRleHQoIlN0eWxlZCIsIEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQKTsKKworICAgIHByaXZhdGUgQ2xpcGJvYXJkIGZDbGlwYm9hcmQ7CisgICAgcHJpdmF0ZSBNVGV4dFBhbmVsIGZUZXh0UGFuZWwgPSBudWxsOworICAgIHByaXZhdGUgVGVzdExpc3RlbmVyIGZMaXN0ZW5lciA9IG51bGw7CisgICAgcHJpdmF0ZSBpbnQgZlJhbmRTZWVkID0gMDsKKyAgICBwcml2YXRlIFJhbmRvbSByYW5kOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBCSUdfQ09NTUFORF9MT0dfU0laRSA9IDQwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTTUFMTF9DT01NQU5EX0xPR19TSVpFID0gODsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0eWxlTW9kaWZpZXJbXSBwYXJhTW9kcyA9IHsKKyAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVBZGRNb2RpZmllcigKKyAgICAgICAgICAgICAgICBuZXcgQXR0cmlidXRlTWFwKFRleHRBdHRyaWJ1dGUuTElORV9GTFVTSCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuRkxVU0hfTEVBRElORykpLAorICAgICAgICBTdHlsZU1vZGlmaWVyLmNyZWF0ZUFkZE1vZGlmaWVyKFRleHRBdHRyaWJ1dGUuTElORV9GTFVTSCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuRkxVU0hfQ0VOVEVSKSwKKyAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVBZGRNb2RpZmllcihUZXh0QXR0cmlidXRlLkxJTkVfRkxVU0gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLkZMVVNIX1RSQUlMSU5HKSwKKyAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVBZGRNb2RpZmllcihUZXh0QXR0cmlidXRlLkxJTkVfRkxVU0gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLkZVTExZX0pVU1RJRklFRCksCisgICAgICAgIFN0eWxlTW9kaWZpZXIuY3JlYXRlQWRkTW9kaWZpZXIoVGV4dEF0dHJpYnV0ZS5SVU5fRElSRUNUSU9OLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5SVU5fRElSRUNUSU9OX1JUTCksCisgICAgICAgIFN0eWxlTW9kaWZpZXIuY3JlYXRlQWRkTW9kaWZpZXIoVGV4dEF0dHJpYnV0ZS5SVU5fRElSRUNUSU9OLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5SVU5fRElSRUNUSU9OX0xUUiksCisgICAgICAgIFN0eWxlTW9kaWZpZXIuY3JlYXRlUmVtb3ZlTW9kaWZpZXIoCisgICAgICAgICAgICAgICAgbmV3IEF0dHJpYnV0ZVNldChUZXh0QXR0cmlidXRlLkxJTkVfRkxVU0gpKSwKKyAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVSZW1vdmVNb2RpZmllcigKKyAgICAgICAgICAgICAgICBuZXcgQXR0cmlidXRlU2V0KFRleHRBdHRyaWJ1dGUuUlVOX0RJUkVDVElPTikpCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTRUxFQ1QgPSAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTRVRfQ0FSRVRfUE9TID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0VUX1NUQVJUID0gMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0VUX0VORCA9IDM7CisKKyAgICAvLyB1c2luZyBib3RoIHN0eWxlcyBvZiBhZGQgbW9kaWZpZXI6IEF0dHJpYnV0ZU1hcCBhbmQKKyAgICAvLyBrZXktdmFsdWUsIGp1c3QgZm9yIHZhcmlldHkuLi4KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHlsZU1vZGlmaWVyW10gY2hhck1vZHMgPSB7CisgICAgICAgIFN0eWxlTW9kaWZpZXIuY3JlYXRlQWRkTW9kaWZpZXIoCisgICAgICAgICAgICAgICAgbmV3IEF0dHJpYnV0ZU1hcChUZXh0QXR0cmlidXRlLldFSUdIVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuV0VJR0hUX0JPTEQpKSwKKyAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVBZGRNb2RpZmllcihUZXh0QXR0cmlidXRlLkZPUkVHUk9VTkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvci5ncmVlbiksCisgICAgICAgIFN0eWxlTW9kaWZpZXIuY3JlYXRlQWRkTW9kaWZpZXIoCisgICAgICAgICAgICAgICAgbmV3IEF0dHJpYnV0ZU1hcChUZXh0QXR0cmlidXRlLlVOREVSTElORSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuVU5ERVJMSU5FX09OKS5hZGRBdHRyaWJ1dGVzKAorICAgICAgICAgICAgICAgIG5ldyBBdHRyaWJ1dGVNYXAoVGV4dEF0dHJpYnV0ZS5TSVpFLCBuZXcgRmxvYXQoNikpKSksCisgICAgICAgIFN0eWxlTW9kaWZpZXIuY3JlYXRlUmVwbGFjZU1vZGlmaWVyKAorICAgICAgICAgICAgICAgIG5ldyBBdHRyaWJ1dGVNYXAoVGV4dEF0dHJpYnV0ZS5GQU1JTFksICJEaWFsb2ciKSksCisgICAgICAgIFN0eWxlTW9kaWZpZXIuY3JlYXRlUmVtb3ZlTW9kaWZpZXIoCisgICAgICAgICAgICAgICAgbmV3IEF0dHJpYnV0ZVNldCgKKyAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W10geyBUZXh0QXR0cmlidXRlLldFSUdIVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuUE9TVFVSRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuVU5ERVJMSU5FLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5TVFJJS0VUSFJPVUdILAorICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5TVVBFUlNDUklQVCB9KSksCisgICAgICAgIFN0eWxlTW9kaWZpZXIuSURFTlRJVFkKKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhcltdIFRZUEVEX0NIQVJTID0gbmV3IGNoYXJbMTI4IC0gJyAnICsgM107CisgICAgc3RhdGljIHsKKyAgICAgICAgVFlQRURfQ0hBUlNbMF0gPSA4OyAvLyBiYWNrc3BhY2UKKyAgICAgICAgVFlQRURfQ0hBUlNbMV0gPSAnXHQnOworICAgICAgICBUWVBFRF9DSEFSU1syXSA9ICdcbic7CisgICAgICAgIGZvciAoaW50IGk9MzsgaSA8IFRZUEVEX0NIQVJTLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBUWVBFRF9DSEFSU1tpXSA9IChjaGFyKSAoJyAnICsgaSAtIDMpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIFRlc3RUZXh0UGFuZWwoKSB7CisKKyAgICAgICAgZkNsaXBib2FyZCA9IG5ldyBDbGlwYm9hcmQoIlRlc3RUZXh0UGFuZWwiKTsKKyAgICAgICAgaW5jUmFuZFNlZWQoKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCByZXBvcnRFcnJvcihTdHJpbmcgbWVzc2FnZSkgeworICAgIAorICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4obWVzc2FnZSk7CisgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKG1lc3NhZ2UpOworICAgICAgICAvL3N1cGVyLmVycmxuKG1lc3NhZ2UpOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCBsb2dNZXNzYWdlKFN0cmluZyBtZXNzYWdlKSB7CisgICAgCisgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbihtZXNzYWdlKTsKKyAgICAgICAgLy9zdXBlci5sb2dNZXNzYWdlKG1lc3NhZ2UpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgVGVzdFRleHRQYW5lbChNVGV4dFBhbmVsIHBhbmVsKSB7CisgICAgICAgIAorICAgICAgICB0aGlzKCk7CisgICAgICAgIHNldFRleHRQYW5lbChwYW5lbCk7CisgICAgfQorICAgIAorICAgIHZvaWQgaW5jUmFuZFNlZWQoKSB7CisgICAgICAgIAorICAgICAgICByYW5kID0gbmV3IFJhbmRvbSgrK2ZSYW5kU2VlZCk7CisgICAgfQorICAgIAorICAgIGludCBnZXRSYW5kU2VlZCgpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBmUmFuZFNlZWQ7CisgICAgfQorCisgICAgaW50IHJhbmRJbnQoaW50IGxpbWl0KSB7CisKKyAgICAgICAgcmV0dXJuIHJhbmRJbnQoMCwgbGltaXQpOworICAgIH0KKworICAgIGludCByYW5kSW50KGludCBzdGFydCwgaW50IGxpbWl0KSB7CisKKyAgICAgICAgaWYgKHN0YXJ0ID4gbGltaXQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlJhbmdlIGlzIDAtbGVuZ3RoLiIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHN0YXJ0ID09IGxpbWl0KSB7CisgICAgICAgICAgICByZXR1cm4gc3RhcnQ7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gc3RhcnQgKyAoTWF0aC5hYnMocmFuZC5uZXh0SW50KCkpJShsaW1pdC1zdGFydCkpIDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0KCkgeworCisgICAgICAgIEF0dHJpYnV0ZU1hcCBib2xkID0gbmV3IEF0dHJpYnV0ZU1hcChUZXh0QXR0cmlidXRlLldFSUdIVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuV0VJR0hUX0JPTEQpOworICAgICAgICBNQ29uc3RUZXh0IHRleHQxID0gbmV3IFN0eWxlZFRleHQoIlRlc3QgY29udGVudHMuIDEyMzRcbkhvdyBhYm91dCBpdD8iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQKTsKKyAgICAgICAgTUNvbnN0VGV4dCB0ZXh0MiA9IG5ldyBTdHlsZWRUZXh0KCJBbm90aGVyIHRlc3Qgc3RyaW5nLiIsIGJvbGQpOworCisgICAgICAgIF90ZXN0V2l0aFRleHQodGV4dDEpOworICAgICAgICBfdGVzdFdpdGhUZXh0KHRleHQyKTsKKyAgICAgICAgX3Rlc3RXaXRoVGV4dChuZXcgU3R5bGVkVGV4dCgpKTsKKworICAgICAgICBTdHlsZWRUZXh0IGJpZzEgPSBuZXcgU3R5bGVkVGV4dCgpOworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCA1MDsgaSsrKSB7CisgICAgICAgICAgICBiaWcxLmFwcGVuZCh0ZXh0MSk7CisgICAgICAgIH0KKworICAgICAgICBfdGVzdFdpdGhUZXh0KGJpZzEpOworICAgICAgICBTdHlsZWRUZXh0IGJpZzIgPSBuZXcgU3R5bGVkVGV4dCh0ZXh0MSk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IDgwOyBpKyspIHsKKyAgICAgICAgICAgIGJpZzIuYXBwZW5kKHRleHQyKTsKKyAgICAgICAgfQorCisgICAgICAgIF90ZXN0V2l0aFRleHQoYmlnMik7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBzZXRUZXh0UGFuZWwoTVRleHRQYW5lbCBwYW5lbCkgeworICAgICAgICAKKyAgICAgICAgZlRleHRQYW5lbCA9IHBhbmVsOworICAgICAgICBmTGlzdGVuZXIgPSBuZXcgVGVzdExpc3RlbmVyKHBhbmVsKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIF90ZXN0V2l0aFRleHQoTUNvbnN0VGV4dCB0ZXh0KSB7CisKKyAgICAgICAgc2V0VGV4dFBhbmVsKG5ldyBUZXh0UGFuZWwodGV4dCwgZkNsaXBib2FyZCkpOworCisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IFRFU1RfSVRFUlM7IGkrKykgeworICAgICAgICAgICAgX3Rlc3RTZXRTZWxlY3Rpb24oKTsKKyAgICAgICAgICAgIF90ZXN0TW9kaWZpY2F0aW9ucyhNT0RfVEVYVCwgdHJ1ZSk7CisgICAgICAgICAgICBfdGVzdEVkaXRNZW51T3BlcmF0aW9ucyhmQ2xpcGJvYXJkKTsKKyAgICAgICAgICAgIF90ZXN0TW9kRmxhZyhmVGV4dFBhbmVsLmdldENvbW1hbmRMb2dTaXplKCkpOworICAgICAgICAgICAgX3Rlc3RDb21tYW5kTG9nQ29udHJvbCgpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIF90ZXN0U2VsZWN0aW9uKGludCBmdW5jdGlvbiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgaW50IGFTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBpbnQgYUxpbWl0KSB7CisKKyAgICAgICAgaW50IG9sZFN0YXJ0ID0gZlRleHRQYW5lbC5nZXRTZWxlY3Rpb25TdGFydCgpOworICAgICAgICBpbnQgb2xkTGltaXQgPSBmVGV4dFBhbmVsLmdldFNlbGVjdGlvbkVuZCgpOworCisgICAgICAgIGZpbmFsIGludCBsZW5ndGggPSBmVGV4dFBhbmVsLmdldFRleHRMZW5ndGgoKTsKKyAgICAgICAgCisgICAgICAgIGludCBzdGFydCA9IGFTdGFydDsKKyAgICAgICAgaW50IGxpbWl0ID0gYUxpbWl0OworICAgICAgICAKKyAgICAgICAgaWYgKHN0YXJ0IDwgMCkgeworICAgICAgICAgICAgc3RhcnQgPSAwOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHN0YXJ0ID4gbGVuZ3RoKSB7CisgICAgICAgICAgICBzdGFydCA9IGxlbmd0aDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChsaW1pdCA8IHN0YXJ0KSB7CisgICAgICAgICAgICBsaW1pdCA9IHN0YXJ0OworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGxpbWl0ID4gbGVuZ3RoKSB7CisgICAgICAgICAgICBsaW1pdCA9IGxlbmd0aDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZkxpc3RlbmVyLnJlZnVzZUFsbCgpOworICAgICAgICAKKyAgICAgICAgaWYgKG9sZFN0YXJ0ICE9IHN0YXJ0IHx8IG9sZExpbWl0ICE9IGxpbWl0KSB7CisgICAgICAgICAgICBmTGlzdGVuZXIuZXhwZWN0RXZlbnQoVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX1JBTkdFX0NIQU5HRUQpOworICAgICAgICAgICAgZkxpc3RlbmVyLmFsbG93RXZlbnQoVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX1NUWUxFU19DSEFOR0VEKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoKG9sZFN0YXJ0PT1vbGRMaW1pdCkgIT0gKHN0YXJ0PT1saW1pdCkpIHsKKyAgICAgICAgICAgIGZMaXN0ZW5lci5leHBlY3RFdmVudChUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fRU1QVFlfQ0hBTkdFRCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG9sZFN0YXJ0PT1vbGRMaW1pdCkgeworICAgICAgICAgICAgZkxpc3RlbmVyLmFsbG93RXZlbnQoVGV4dFBhbmVsRXZlbnQuVU5ET19TVEFURV9DSEFOR0VEKTsKKyAgICAgICAgfQorCisgICAgICAgIHN3aXRjaChmdW5jdGlvbikgeworICAgICAgICAgICAgY2FzZSBTRUxFQ1Q6CisgICAgICAgICAgICAgICAgZlRleHRQYW5lbC5zZWxlY3QoYVN0YXJ0LCBhTGltaXQpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBTRVRfQ0FSRVRfUE9TOgorICAgICAgICAgICAgICAgIGZUZXh0UGFuZWwuc2V0Q2FyZXRQb3NpdGlvbihhU3RhcnQpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBTRVRfU1RBUlQ6CisgICAgICAgICAgICAgICAgZlRleHRQYW5lbC5zZXRTZWxlY3Rpb25TdGFydChhU3RhcnQpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBTRVRfRU5EOgorICAgICAgICAgICAgICAgIGZUZXh0UGFuZWwuc2V0U2VsZWN0aW9uRW5kKGFMaW1pdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgZnVuY3Rpb24iKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKGZUZXh0UGFuZWwuZ2V0U2VsZWN0aW9uU3RhcnQoKSAhPSBzdGFydCkgeworICAgICAgICAgICAgcmVwb3J0RXJyb3IoImdldFNlbGVjdGlvblN0YXJ0IGlzIGluY29ycmVjdCBhZnRlciBzZXQiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZlRleHRQYW5lbC5nZXRTZWxlY3Rpb25FbmQoKSAhPSBsaW1pdCkgeworICAgICAgICAgICAgcmVwb3J0RXJyb3IoImdldFNlbGVjdGlvbkVuZCBpcyBpbmNvcnJlY3QgYWZ0ZXIgc2V0Iik7CisgICAgICAgIH0KKyAgICAgICAgZkxpc3RlbmVyLmFzc2VydE5vdEV4cGVjdGluZ0V2ZW50cygpOworICAgICAgICBmTGlzdGVuZXIuYWxsb3dBbGwoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgc2V0QW5kVGVzdFNlbGVjdGlvbihpbnQgc3RhcnQsIGludCBsaW1pdCkgeworICAgICAgICAKKyAgICAgICAgX3Rlc3RTZWxlY3Rpb24oU0VMRUNULCBzdGFydCwgbGltaXQpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBzZXRBbmRUZXN0Q2FyZXQoaW50IGNhcmV0UG9zKSB7CisKKyAgICAgICAgX3Rlc3RTZWxlY3Rpb24oU0VUX0NBUkVUX1BPUywgY2FyZXRQb3MsIGNhcmV0UG9zKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgc2V0QW5kVGVzdFNlbGVjdGlvblN0YXJ0KGludCBzZWxTdGFydCkgeworCisgICAgICAgIGludCBsaW1pdCA9IGZUZXh0UGFuZWwuZ2V0U2VsZWN0aW9uRW5kKCk7CisgICAgICAgIF90ZXN0U2VsZWN0aW9uKFNFVF9TVEFSVCwgc2VsU3RhcnQsIGxpbWl0KTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgc2V0QW5kVGVzdFNlbGVjdGlvbkVuZChpbnQgc2VsRW5kKSB7CisKKyAgICAgICAgaW50IHN0YXJ0ID0gZlRleHRQYW5lbC5nZXRTZWxlY3Rpb25TdGFydCgpOworICAgICAgICBfdGVzdFNlbGVjdGlvbihTRVRfRU5ELCBzdGFydCwgc2VsRW5kKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBfdGVzdFNldFNlbGVjdGlvbigpIHsKKworICAgICAgICBpbnQgdGV4dExlbmd0aCA9IGZUZXh0UGFuZWwuZ2V0VGV4dExlbmd0aCgpOworICAgICAgICBpZiAodGV4dExlbmd0aCAhPSBmVGV4dFBhbmVsLmdldFRleHQoKS5sZW5ndGgoKSkgeworICAgICAgICAgICAgcmVwb3J0RXJyb3IoIlRleHQgcGFuZWwgbGVuZ3RoIGlzIG5vdCBjb3JyZWN0Iik7CisgICAgICAgIH0KKworICAgICAgICBzZXRBbmRUZXN0U2VsZWN0aW9uKDAsIHRleHRMZW5ndGggLyAyKTsKKyAgICAgICAgc2V0QW5kVGVzdFNlbGVjdGlvbih0ZXh0TGVuZ3RoIC8gMiwgdGV4dExlbmd0aCk7CisgICAgICAgIHNldEFuZFRlc3RTZWxlY3Rpb24oMCwgdGV4dExlbmd0aCk7CisgICAgICAgIHNldEFuZFRlc3RTZWxlY3Rpb24oLTEsIHRleHRMZW5ndGgrMSk7CisgICAgICAgIGlmICh0ZXh0TGVuZ3RoID4gMCkgeworICAgICAgICAgICAgc2V0QW5kVGVzdFNlbGVjdGlvbigwLCB0ZXh0TGVuZ3RoIC0gMSk7CisgICAgICAgICAgICBzZXRBbmRUZXN0U2VsZWN0aW9uKDAsIDEpOworICAgICAgICB9CisKKyAgICAgICAgZmluYWwgaW50IGluY0Ftb3VudCA9IE1hdGgubWF4KDEsIHRleHRMZW5ndGgvNSk7CisgICAgICAgIGZvciAoaW50IGluZGV4ID0gMDsgaW5kZXggPD0gdGV4dExlbmd0aDsgaW5kZXggKz0gaW5jQW1vdW50KSB7CisKKyAgICAgICAgICAgIHNldEFuZFRlc3RDYXJldChpbmRleCk7CisgICAgICAgICAgICBzZXRBbmRUZXN0U2VsZWN0aW9uU3RhcnQodGV4dExlbmd0aC1pbmRleCk7CisgICAgICAgICAgICBzZXRBbmRUZXN0U2VsZWN0aW9uRW5kKHRleHRMZW5ndGgpOworICAgICAgICAgICAgc2V0QW5kVGVzdFNlbGVjdGlvblN0YXJ0KDApOworICAgICAgICAgICAgc2V0QW5kVGVzdFNlbGVjdGlvbkVuZCh0ZXh0TGVuZ3RoLWluZGV4KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRleHQgbXVzdCBiZSBlZGl0YWJsZSB0byBwYXNzIHRoaXMgdGVzdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBfdGVzdE1vZGlmaWNhdGlvbnMoTUNvbnN0VGV4dCBpbnNlcnRpb25UZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHJlc3RvcmVPbGRUZXh0KSB7CisKKyAgICAgICAgTUNvbnN0VGV4dCBvbGRUZXh0ID0gbmV3IFN0eWxlZFRleHQoZlRleHRQYW5lbC5nZXRUZXh0KCkpOworICAgICAgICBmaW5hbCBpbnQgaW5zTGVuZ3RoID0gaW5zZXJ0aW9uVGV4dC5sZW5ndGgoKTsKKworICAgICAgICBmTGlzdGVuZXIuYWxsb3dBbGwoKTsKKyAgICAgICAgZkxpc3RlbmVyLmV4cGVjdEV2ZW50KFRleHRQYW5lbEV2ZW50LlRFWFRfQ0hBTkdFRCk7CisgICAgICAgIGZMaXN0ZW5lci5leHBlY3RFdmVudChUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fUkFOR0VfQ0hBTkdFRCk7CisgICAgICAgIGZUZXh0UGFuZWwuYXBwZW5kKGluc2VydGlvblRleHQpOworICAgICAgICBmTGlzdGVuZXIuYXNzZXJ0Tm90RXhwZWN0aW5nRXZlbnRzKCk7CisgICAgICAgIAorICAgICAgICBpZiAoZlRleHRQYW5lbC5nZXRTZWxlY3Rpb25TdGFydCgpICE9IG9sZFRleHQubGVuZ3RoKCkgKyBpbnNMZW5ndGgpIHsKKyAgICAgICAgICAgIHJlcG9ydEVycm9yKCJBcHBlbmQgZGlkbid0IHJlc3VsdCBpbiBjb3JyZWN0IHNlbGVjdGlvbiIpOworICAgICAgICB9CisKKyAgICAgICAgZkxpc3RlbmVyLmV4cGVjdEV2ZW50KFRleHRQYW5lbEV2ZW50LlRFWFRfQ0hBTkdFRCk7CisgICAgICAgIGZMaXN0ZW5lci5leHBlY3RFdmVudChUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fUkFOR0VfQ0hBTkdFRCk7CisgICAgICAgIGZUZXh0UGFuZWwuaW5zZXJ0KGluc2VydGlvblRleHQsIDApOworICAgICAgICBmTGlzdGVuZXIuYXNzZXJ0Tm90RXhwZWN0aW5nRXZlbnRzKCk7CisgICAgICAgIGZMaXN0ZW5lci5hbGxvd0FsbCgpOworICAgICAgICAKKyAgICAgICAgaWYgKGZUZXh0UGFuZWwuZ2V0U2VsZWN0aW9uU3RhcnQoKSAhPSBpbnNMZW5ndGgpIHsKKyAgICAgICAgICAgIHJlcG9ydEVycm9yKCJJbnNlcnQgZGlkbid0IHJlc3VsdCBpbiBjb3JyZWN0IHNlbGVjdGlvbiIpOworICAgICAgICB9CisKKyAgICAgICAgZlRleHRQYW5lbC5yZXBsYWNlUmFuZ2UoaW5zZXJ0aW9uVGV4dCwgaW5zTGVuZ3RoLCBpbnNMZW5ndGgrb2xkVGV4dC5sZW5ndGgoKSk7CisgICAgICAgIGlmIChmVGV4dFBhbmVsLmdldFNlbGVjdGlvblN0YXJ0KCkgIT0gaW5zTGVuZ3RoKjIpIHsKKyAgICAgICAgICAgIHJlcG9ydEVycm9yKCJSZXBsYWNlIGRpZG4ndCByZXN1bHQgaW4gY29ycmVjdCBzZWxlY3Rpb24iKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZlRleHRQYW5lbC5nZXRTZWxlY3Rpb25FbmQoKSAhPSBpbnNMZW5ndGgqMikgeworICAgICAgICAgICAgcmVwb3J0RXJyb3IoIlJlcGxhY2UgZGlkbid0IHJlc3VsdCBpbiBjb3JyZWN0IHNlbGVjdGlvbiIpOworICAgICAgICB9CisgICAgICAgIGlmIChmVGV4dFBhbmVsLmdldFRleHRMZW5ndGgoKSAhPSBpbnNMZW5ndGgqMykgeworICAgICAgICAgICAgcmVwb3J0RXJyb3IoInRleHRMZW5ndGggaXMgaW5jb3JyZWN0Iik7CisgICAgICAgIH0KKworICAgICAgICBpZiAocmVzdG9yZU9sZFRleHQpIHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwuc2V0VGV4dChvbGRUZXh0KTsKKyAgICAgICAgICAgIGlmIChmVGV4dFBhbmVsLmdldFNlbGVjdGlvblN0YXJ0KCkgIT0gb2xkVGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yKCJzZXRUZXh0IGRpZG4ndCByZXN1bHQgaW4gY29ycmVjdCBzZWxlY3Rpb24iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChmVGV4dFBhbmVsLmdldFRleHRMZW5ndGgoKSAhPSBvbGRUZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgcmVwb3J0RXJyb3IoImxlbmd0aCBpbmNvcnJlY3QgYWZ0ZXIgc2V0VGV4dCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmTGlzdGVuZXIuYWxsb3dBbGwoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgaXRlcmF0aW9uQ291bnQgPSAwOworICAgIHB1YmxpYyB2b2lkIF90ZXN0Q29tbWFuZExvZ0NvbnRyb2woKSB7CisKKyAgICAgICAgZkxpc3RlbmVyLnJlZnVzZUFsbCgpOworICAgICAgICBpdGVyYXRpb25Db3VudCsrOworICAgICAgICBib29sZWFuIGV4cCA9IGZhbHNlOworICAgICAgICBpZiAoZlRleHRQYW5lbC5jYW5SZWRvKCkgfHwgQklHX0NPTU1BTkRfTE9HX1NJWkU9PTApIHsKKyAgICAgICAgICAgIGZMaXN0ZW5lci5leHBlY3RFdmVudChUZXh0UGFuZWxFdmVudC5VTkRPX1NUQVRFX0NIQU5HRUQpOworICAgICAgICAgICAgZXhwID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICAvL3RyeSB7CisgICAgICAgICAgICBmVGV4dFBhbmVsLnNldENvbW1hbmRMb2dTaXplKEJJR19DT01NQU5EX0xPR19TSVpFKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGZUZXh0UGFuZWwuY2FuUmVkbygpKSB7CisgICAgICAgICAgICAgICAgcmVwb3J0RXJyb3IoImNhblJlZG8gYWZ0ZXIgc2V0Q29tbWFuZExvZ1NpemUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZMaXN0ZW5lci5hc3NlcnROb3RFeHBlY3RpbmdFdmVudHMoaXRlcmF0aW9uQ291bnQsIGV4cCk7CisgICAgICAgIC8vfQorICAgICAgICAvL2NhdGNoKEVycm9yIGUpIHsKKyAgICAgICAgLy8gICAgbG9nTWVzc2FnZSgiaXRlcmF0aW9uQ291bnQ9IitpdGVyYXRpb25Db3VudCsiOyAgZXhwZXh0aW5nPSIrZXhwKTsKKyAgICAgICAgLy8gICAgdGhyb3cgZTsKKyAgICAgICAgLy99CisKKyAgICAgICAgTUNvbnN0VGV4dCBpbnNUZXh0ID0gbmV3IFN0eWxlZFRleHQoIjciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUCk7CisKKyAgICAgICAgZmluYWwgaW50IG9yaWdMZW5ndGggPSBmVGV4dFBhbmVsLmdldFRleHRMZW5ndGgoKTsKKyAgICAgICAgaW50IHN0YXJ0ID0gb3JpZ0xlbmd0aCAvIDM7CisgICAgICAgIAorICAgICAgICBmTGlzdGVuZXIuYWxsb3dFdmVudChUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fUkFOR0VfQ0hBTkdFRCk7CisgICAgICAgIGZMaXN0ZW5lci5hbGxvd0V2ZW50KFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9TVFlMRVNfQ0hBTkdFRCk7CisKKyAgICAgICAgZm9yIChpbnQgaT1zdGFydDsgaSA8IEJJR19DT01NQU5EX0xPR19TSVpFK3N0YXJ0OyBpKyspIHsKKyAgICAgICAgICAgIGZMaXN0ZW5lci5leHBlY3RFdmVudChUZXh0UGFuZWxFdmVudC5VTkRPX1NUQVRFX0NIQU5HRUQpOworICAgICAgICAgICAgZkxpc3RlbmVyLmV4cGVjdEV2ZW50KFRleHRQYW5lbEV2ZW50LlRFWFRfQ0hBTkdFRCk7CisgICAgICAgICAgICBpZiAoZlRleHRQYW5lbC5nZXRTZWxlY3Rpb25TdGFydCgpICE9IGZUZXh0UGFuZWwuZ2V0U2VsZWN0aW9uRW5kKCkpIHsKKyAgICAgICAgICAgICAgICBmTGlzdGVuZXIuZXhwZWN0RXZlbnQoVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX0VNUFRZX0NIQU5HRUQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZlRleHRQYW5lbC5pbnNlcnQoaW5zVGV4dCwgaSk7CisgICAgICAgICAgICBmTGlzdGVuZXIuYXNzZXJ0Tm90RXhwZWN0aW5nRXZlbnRzKCk7CisgICAgICAgIH0KKworICAgICAgICBmTGlzdGVuZXIuYWxsb3dFdmVudChUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fRU1QVFlfQ0hBTkdFRCk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBCSUdfQ09NTUFORF9MT0dfU0laRS0xOyBpKyspIHsKKyAgICAgICAgICAgIGZMaXN0ZW5lci5leHBlY3RFdmVudChUZXh0UGFuZWxFdmVudC5VTkRPX1NUQVRFX0NIQU5HRUQpOworICAgICAgICAgICAgZkxpc3RlbmVyLmV4cGVjdEV2ZW50KFRleHRQYW5lbEV2ZW50LlRFWFRfQ0hBTkdFRCk7CisgICAgICAgICAgICBmVGV4dFBhbmVsLnVuZG8oKTsKKyAgICAgICAgICAgIGZMaXN0ZW5lci5hc3NlcnROb3RFeHBlY3RpbmdFdmVudHMoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWZUZXh0UGFuZWwuY2FuVW5kbygpKSB7CisgICAgICAgICAgICByZXBvcnRFcnJvcigiQ29tbWFuZCBsb2cgaXMgdG9vIHNtYWxsIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZMaXN0ZW5lci5hbGxvd0FsbCgpOworICAgICAgICBmVGV4dFBhbmVsLnVuZG8oKTsKKyAgICAgICAgaWYgKGZUZXh0UGFuZWwuY2FuVW5kbygpKSB7CisgICAgICAgICAgICByZXBvcnRFcnJvcigiQ29tbWFuZCBsb2cgaXMgdG9vIGxhcmdlIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZlRleHRQYW5lbC5nZXRUZXh0TGVuZ3RoKCkgIT0gb3JpZ0xlbmd0aCAqIGluc1RleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHJlcG9ydEVycm9yKCJUZXh0IGxlbmd0aCB3YXMgbm90IHJlc3RvcmVkIik7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBCSUdfQ09NTUFORF9MT0dfU0laRTsgaSsrKSB7CisgICAgICAgICAgICBmVGV4dFBhbmVsLnJlZG8oKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmVGV4dFBhbmVsLmdldFRleHRMZW5ndGgoKSAhPSBvcmlnTGVuZ3RoK0JJR19DT01NQU5EX0xPR19TSVpFKSB7CisgICAgICAgICAgICByZXBvcnRFcnJvcigiVGV4dCBsZW5ndGggd2FzIG5vdCByZXN0b3JlZCBhZnRlciByZWRvIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZlRleHRQYW5lbC5jYW5SZWRvKCkpIHsKKyAgICAgICAgICAgIHJlcG9ydEVycm9yKCJTaG91bGQgbm90IGJlIGFibGUgdG8gcmVkbyIpOworICAgICAgICB9CisKKyAgICAgICAgZlRleHRQYW5lbC51bmRvKCk7CisKKyAgICAgICAgZlRleHRQYW5lbC5zZXRDb21tYW5kTG9nU2l6ZShTTUFMTF9DT01NQU5EX0xPR19TSVpFKTsKKworICAgICAgICBpZiAoZlRleHRQYW5lbC5jYW5SZWRvKCkpIHsKKyAgICAgICAgICAgIHJlcG9ydEVycm9yKCJjYW5SZWRvIGFmdGVyIHNldENvbW1hbmRMb2dTaXplKHNtYWxsKSIpOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgU01BTExfQ09NTUFORF9MT0dfU0laRTsgaSsrKSB7CisgICAgICAgICAgICBpZiAoIWZUZXh0UGFuZWwuY2FuVW5kbygpKSB7CisgICAgICAgICAgICAgICAgcmVwb3J0RXJyb3IoInNob3VsZCBiZSBhYmxlIHRvIHVuZG8iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZUZXh0UGFuZWwudW5kbygpOworICAgICAgICB9CisgICAgICAgIGlmIChmVGV4dFBhbmVsLmNhblVuZG8oKSkgeworICAgICAgICAgICAgcmVwb3J0RXJyb3IoInNob3VsZCBub3QgYmUgYWJsZSB0byB1bmRvIGFmdGVyIHNldENvbW1hbmRMb2dTaXplKHNtYWxsKSIpOworICAgICAgICB9CisgICAgICAgIGlmICghZlRleHRQYW5lbC5jYW5SZWRvKCkpIHsKKyAgICAgICAgICAgIHJlcG9ydEVycm9yKCJ3aHkgY2FuJ3QgdGhpcyByZWRvPz8/Iik7CisgICAgICAgIH0KKyAgICAgICAgZlRleHRQYW5lbC5yZWRvKCk7CisKKyAgICAgICAgZlRleHRQYW5lbC5jbGVhckNvbW1hbmRMb2coKTsKKworICAgICAgICBpZiAoZlRleHRQYW5lbC5jYW5VbmRvKCkgfHwgZlRleHRQYW5lbC5jYW5SZWRvKCkpIHsKKyAgICAgICAgICAgIHJlcG9ydEVycm9yKCJDb21tYW5kIGxvZyB3YXNuJ3QgY2xlYXJlZCIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBjdXQsIGNvcHksIHBhc3RlLCB1bmRvLCByZWRvLCBjbGVhciwgY2FuVW5kbywgY2FuUmVkby4KKyAgICAgKiBUZXh0IG11c3QgYmUgZWRpdGFibGUgdG8gcGFzcyB0aGlzIHRlc3QuCisgICAgICovCisgICAgcHVibGljIHZvaWQgX3Rlc3RFZGl0TWVudU9wZXJhdGlvbnMoQ2xpcGJvYXJkIGNsaXBib2FyZCkgeworICAgICAgICAKKyAgICAgICAgaWYgKGNsaXBib2FyZCAhPSBudWxsKSB7CisgICAgICAgICAgICAvLyB0ZXN0IHBhc3RlIGFuZCB1bmRvIC8gcmVkbworICAgICAgICAgICAgVHJhbnNmZXJhYmxlIHRyID0gbmV3IFN0cmluZ1NlbGVjdGlvbihTVFJJTkdfQ09OVEVOVCk7CisgICAgICAgICAgICBjbGlwYm9hcmQuc2V0Q29udGVudHModHIsIG5ldyBDbGlwYm9hcmRPd25lcigpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBsb3N0T3duZXJzaGlwKENsaXBib2FyZCBjLCBUcmFuc2ZlcmFibGUgdCkgeworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgaWYgKCFmVGV4dFBhbmVsLmNsaXBib2FyZE5vdEVtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICByZXBvcnRFcnJvcigiTVRleHRQYW5lbCBkb2Vzbid0IHJlY29nbml6ZSBzdHJpbmcgY29udGVudC4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZlRleHRQYW5lbC5zZXRDYXJldFBvc2l0aW9uKGZUZXh0UGFuZWwuZ2V0U2VsZWN0aW9uU3RhcnQoKSk7CisgICAgICAgICAgICBpbnQgb2xkTGVuZ3RoID0gZlRleHRQYW5lbC5nZXRUZXh0TGVuZ3RoKCk7CisgICAgICAgICAgICBmVGV4dFBhbmVsLnBhc3RlKCk7CisgICAgICAgICAgICBpZiAoZlRleHRQYW5lbC5nZXRUZXh0TGVuZ3RoKCkgIT0gb2xkTGVuZ3RoICsgU1RSSU5HX0NPTlRFTlQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICByZXBvcnRFcnJvcigiVGV4dCBsZW5ndGggaXMgd3JvbmcgYWZ0ZXIgcGFzdGUuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghZlRleHRQYW5lbC5jYW5VbmRvKCkpIHsKKyAgICAgICAgICAgICAgICByZXBvcnRFcnJvcigiY2FuVW5kbyBzaG91bGQgYmUgdHJ1ZSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZlRleHRQYW5lbC51bmRvKCk7CisgICAgICAgICAgICBpZiAoZlRleHRQYW5lbC5nZXRUZXh0TGVuZ3RoKCkgIT0gb2xkTGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmVwb3J0RXJyb3IoIkxlbmd0aCBpcyB3cm9uZyBhZnRlciB1bmRvIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWZUZXh0UGFuZWwuY2FuUmVkbygpKSB7CisgICAgICAgICAgICAgICAgcmVwb3J0RXJyb3IoImNhblJlZG8gc2hvdWxkIGJlIHRydWUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZUZXh0UGFuZWwucmVkbygpOworICAgICAgICAgICAgaWYgKGZUZXh0UGFuZWwuZ2V0VGV4dExlbmd0aCgpICE9IG9sZExlbmd0aCArIFNUUklOR19DT05URU5ULmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgcmVwb3J0RXJyb3IoIlRleHQgbGVuZ3RoIGlzIHdyb25nIGFmdGVyIHJlZG8uIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpbnQgb3JpZ0xlbmd0aCA9IGZUZXh0UGFuZWwuZ2V0VGV4dExlbmd0aCgpOworICAgICAgICBmVGV4dFBhbmVsLnNlbGVjdEFsbCgpOworICAgICAgICBmVGV4dFBhbmVsLmNsZWFyKCk7CisgICAgICAgIGlmIChmVGV4dFBhbmVsLmdldFRleHRMZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICByZXBvcnRFcnJvcigiTGVuZ3RoIGlzIG5vbnplcm8gYWZ0ZXIgY2xlYXIiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWZUZXh0UGFuZWwuY2FuVW5kbygpKSB7CisgICAgICAgICAgICByZXBvcnRFcnJvcigiY2FuVW5kbyBzaG91bGQgYmUgdHJ1ZSIpOworICAgICAgICB9CisgICAgICAgIGZUZXh0UGFuZWwudW5kbygpOworICAgICAgICBpZiAoZlRleHRQYW5lbC5nZXRUZXh0TGVuZ3RoKCkgIT0gb3JpZ0xlbmd0aCkgeworICAgICAgICAgICAgcmVwb3J0RXJyb3IoIk9sZCB0ZXh0IG5vdCByZXN0b3JlZCIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG9yaWdMZW5ndGggPiAwKSB7CisKKyAgICAgICAgICAgIGZUZXh0UGFuZWwuc2VsZWN0KDAsIDEpOworICAgICAgICAgICAgZlRleHRQYW5lbC5jdXQoKTsKKyAgICAgICAgICAgIGlmIChmVGV4dFBhbmVsLmdldFRleHRMZW5ndGgoKSAhPSBvcmlnTGVuZ3RoLTEpIHsKKyAgICAgICAgICAgICAgICByZXBvcnRFcnJvcigiTGVuZ3RoIHdyb25nIGFmdGVyIGN1dCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZlRleHRQYW5lbC5wYXN0ZSgpOworICAgICAgICAgICAgaWYgKGZUZXh0UGFuZWwuZ2V0VGV4dExlbmd0aCgpICE9IG9yaWdMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICByZXBvcnRFcnJvcigiTGVuZ3RoIHdyb25nIGFmdGVyIHBhc3RlIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmVGV4dFBhbmVsLnNlbGVjdCgwLCBvcmlnTGVuZ3RoKTsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwuY29weSgpOworICAgICAgICAgICAgZlRleHRQYW5lbC5zZXRDYXJldFBvc2l0aW9uKDApOworICAgICAgICAgICAgZlRleHRQYW5lbC5wYXN0ZSgpOworICAgICAgICAgICAgaWYgKGZUZXh0UGFuZWwuZ2V0VGV4dExlbmd0aCgpICE9IDIqb3JpZ0xlbmd0aCkgeworICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yKCJMZW5ndGggd3JvbmcgYWZ0ZXIgcGFzdGUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZUZXh0UGFuZWwudW5kbygpOworICAgICAgICAgICAgaWYgKGZUZXh0UGFuZWwuZ2V0VGV4dExlbmd0aCgpICE9IG9yaWdMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICByZXBvcnRFcnJvcigiTGVuZ3RoIHdyb25nIGFmdGVyIHVuZG8iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBzZXRBbmRUZXN0TW9kRmxhZyhmaW5hbCBpbnQgZGVwdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gbW9kaWZpZWQpIHsKKworICAgICAgICBmVGV4dFBhbmVsLnNldE1vZGlmaWVkKG1vZGlmaWVkKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgZGVwdGg7IGkrKykgeworICAgICAgICAgICAgaWYgKCFmVGV4dFBhbmVsLmNhblVuZG8oKSkgeworICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yKCJQYW5lbCBjYW5ub3QgdW5kbyBhdCB2YWxpZCBkZXB0aC4gIERlcHRoPSIgKyBpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZUZXh0UGFuZWwudW5kbygpOworICAgICAgICAgICAgZlRleHRQYW5lbC5zZXRNb2RpZmllZChtb2RpZmllZCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBjaGVjayB0aGF0IGFsbCBtb2QgZmxhZ3MgYXJlIGZhbHNlOgorICAgICAgICBpZiAoZlRleHRQYW5lbC5pc01vZGlmaWVkKCkgIT0gbW9kaWZpZWQpIHsKKyAgICAgICAgICAgIHJlcG9ydEVycm9yKCJpc01vZGlmaWVkIGlzIG5vdCBjb3JyZWN0Iik7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBkZXB0aDsgaSsrKSB7CisgICAgICAgICAgICBmVGV4dFBhbmVsLnJlZG8oKTsKKyAgICAgICAgICAgIGlmIChmVGV4dFBhbmVsLmlzTW9kaWZpZWQoKSAhPSBtb2RpZmllZCkgeworICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yKCJpc01vZGlmaWVkIGlzIG5vdCBjb3JyZWN0Iik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNYWtlIDxjb2RlPmRlcHRoPC9jb2RlPiBtb2RpZmljYXRpb25zIHRvIHRoZSB0ZXh0IGluIHRleHRmVGV4dFBhbmVsLgorICAgICAqIFNldCB0aGUgbW9kaWZpZWQgZmxhZyBvbiBlYWNoIG9wZXJhdGlvbiwgYW5kIHRoZW4gcmV0cmlldmUgaXRzCisgICAgICogdmFsdWUuICBGaW5hbGx5LCB1bmRvIHRoZSBtb2RpZmljYXRpb25zLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIF90ZXN0TW9kRmxhZyhmaW5hbCBpbnQgZGVwdGgpIHsKKworICAgICAgICBmaW5hbCBpbnQgb2xkTGVuZ3RoID0gZlRleHRQYW5lbC5nZXRUZXh0TGVuZ3RoKCk7CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgZGVwdGg7IGkrKykgeworICAgICAgICAgICAgZlRleHRQYW5lbC5pbnNlcnQoTU9EX1RFWFQsIDApOworICAgICAgICB9CisKKyAgICAgICAgc2V0QW5kVGVzdE1vZEZsYWcoZGVwdGgsIGZhbHNlKTsKKyAgICAgICAgc2V0QW5kVGVzdE1vZEZsYWcoZGVwdGgsIHRydWUpOworCisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IGRlcHRoOyBpKyspIHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwudW5kbygpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZUZXh0UGFuZWwuZ2V0VGV4dExlbmd0aCgpICE9IG9sZExlbmd0aCkgeworICAgICAgICAgICAgcmVwb3J0RXJyb3IoIlVuZG8gZGlkIG5vdCByZXN0b3JlIG9sZCB0ZXh0LiIpOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBhcHBseUNoYXJhY3RlclN0eWxlKCkgeworCisgICAgICAgIFN0eWxlTW9kaWZpZXIgc3RNb2QgPSBjaGFyTW9kc1tyYW5kSW50KGNoYXJNb2RzLmxlbmd0aCldOworICAgICAgICBmTGlzdGVuZXIucmVmdXNlQWxsKCk7CisgICAgICAgIGZMaXN0ZW5lci5leHBlY3RFdmVudChUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fU1RZTEVTX0NIQU5HRUQpOworICAgICAgICBpZiAoZlRleHRQYW5lbC5nZXRTZWxlY3Rpb25TdGFydCgpICE9IGZUZXh0UGFuZWwuZ2V0U2VsZWN0aW9uRW5kKCkpIHsKKyAgICAgICAgICAgIGZMaXN0ZW5lci5leHBlY3RFdmVudChUZXh0UGFuZWxFdmVudC5URVhUX0NIQU5HRUQpOworICAgICAgICAgICAgZkxpc3RlbmVyLmFsbG93RXZlbnQoVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX1JBTkdFX0NIQU5HRUQpOworICAgICAgICB9CisgICAgICAgIGZMaXN0ZW5lci5hbGxvd0V2ZW50KFRleHRQYW5lbEV2ZW50LlVORE9fU1RBVEVfQ0hBTkdFRCk7CisgICAgICAgIGZUZXh0UGFuZWwubW9kaWZ5Q2hhcmFjdGVyU3R5bGVPblNlbGVjdGlvbihzdE1vZCk7CisgICAgICAgIGZMaXN0ZW5lci5hc3NlcnROb3RFeHBlY3RpbmdFdmVudHMoKTsKKyAgICAgICAgZkxpc3RlbmVyLmFsbG93QWxsKCk7CisgICAgfQorCisKKyAgICB2b2lkIGFwcGx5UGFyYWdyYXBoU3R5bGUoKSB7CisKKyAgICAgICAgZkxpc3RlbmVyLnJlZnVzZUFsbCgpOworICAgICAgICBmTGlzdGVuZXIuZXhwZWN0RXZlbnQoVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX1NUWUxFU19DSEFOR0VEKTsKKyAgICAgICAgZkxpc3RlbmVyLmV4cGVjdEV2ZW50KFRleHRQYW5lbEV2ZW50LlRFWFRfQ0hBTkdFRCk7CisgICAgICAgIGZMaXN0ZW5lci5hbGxvd0V2ZW50KFRleHRQYW5lbEV2ZW50LlVORE9fU1RBVEVfQ0hBTkdFRCk7CisgICAgICAgIGZMaXN0ZW5lci5hbGxvd0V2ZW50KFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9SQU5HRV9DSEFOR0VEKTsKKyAgICAgICAgU3R5bGVNb2RpZmllciBzdE1vZCA9IHBhcmFNb2RzW3JhbmRJbnQocGFyYU1vZHMubGVuZ3RoKV07CisgICAgICAgIGZUZXh0UGFuZWwubW9kaWZ5UGFyYWdyYXBoU3R5bGVPblNlbGVjdGlvbihzdE1vZCk7CisgICAgICAgIGZMaXN0ZW5lci5hc3NlcnROb3RFeHBlY3RpbmdFdmVudHMoKTsKKyAgICAgICAgZkxpc3RlbmVyLmFsbG93QWxsKCk7CisgICAgfQorCisgICAgdm9pZCBhcHBseUtleVJlbWFwKCkgeworCisgICAgICAgIGZMaXN0ZW5lci5yZWZ1c2VBbGwoKTsKKyAgICAgICAgZkxpc3RlbmVyLmV4cGVjdEV2ZW50KFRleHRQYW5lbEV2ZW50LktFWVJFTUFQX0NIQU5HRUQpOworICAgICAgICBpbnQgb3AgPSByYW5kSW50KDUpOworICAgICAgICBzd2l0Y2ggKG9wKSB7CisKKyAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICBmVGV4dFBhbmVsLnNldEtleVJlbWFwKEtleVJlbWFwLmdldElkZW50aXR5UmVtYXAoKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICBmVGV4dFBhbmVsLnNldEtleVJlbWFwKEtleVJlbWFwLmdldEFyYWJpY1RyYW5zbGl0ZXJhdGlvbigpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgIGZUZXh0UGFuZWwuc2V0S2V5UmVtYXAoS2V5UmVtYXAuZ2V0SGVicmV3VHJhbnNsaXRlcmF0aW9uKCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICAgICAgZlRleHRQYW5lbC5zZXRLZXlSZW1hcChLZXlSZW1hcC5nZXRJc3JhZWxOaWt1ZCgpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAgICAgIC8vZlRleHRQYW5lbC5zZXRLZXlSZW1hcChLZXlSZW1hcC5nZXRUaGFpS2V0bWFuZWUoKSk7CisgICAgICAgICAgICAgICAgZlRleHRQYW5lbC5zZXRLZXlSZW1hcChLZXlSZW1hcC5nZXRJc3JhZWxOaWt1ZCgpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXBvcnRFcnJvcigiSW52YWxpZCBvcGVyYXRpb24hIik7CisgICAgICAgIH0KKyAgICAgICAgZkxpc3RlbmVyLmFzc2VydE5vdEV4cGVjdGluZ0V2ZW50cygpOworICAgICAgICBmTGlzdGVuZXIuYWxsb3dBbGwoKTsKKyAgICB9CisKKyAgICB2b2lkIHJlc2l6ZUZyYW1lKEZyYW1lIGZyYW1lKSB7CisKKyAgICAgICAgZkxpc3RlbmVyLnJlZnVzZUFsbCgpOworICAgICAgICBmTGlzdGVuZXIuYWxsb3dFdmVudChUZXh0UGFuZWxFdmVudC5GT1JNQVRfV0lEVEhfQ0hBTkdFRCk7CisgICAgICAgIGludCB3ZCA9IHJhbmRJbnQoNTAsIDEwMDApOworICAgICAgICBpbnQgaHQgPSByYW5kSW50KDIwLCA4MDApOworCisgICAgICAgIGZyYW1lLnNldFNpemUod2QsIGh0KTsKKyAgICAgICAgZkxpc3RlbmVyLmFsbG93QWxsKCk7CisgICAgfQorCisgICAgdm9pZCBzZWxlY3RUZXh0KCkgeworCisgICAgICAgIGludCBzZWxTdGFydCA9IHJhbmRJbnQoLTEwLCBmVGV4dFBhbmVsLmdldFRleHRMZW5ndGgoKSk7CisgICAgICAgIGludCBzZWxMaW1pdCA9IHJhbmRJbnQoMCwgZlRleHRQYW5lbC5nZXRUZXh0TGVuZ3RoKCkgKyAxMCk7CisgICAgICAgIF90ZXN0U2VsZWN0aW9uKFNFTEVDVCwgc2VsU3RhcnQsIHNlbExpbWl0KTsKKyAgICB9CisKKyAgICB2b2lkIHVuZG9SZWRvKCkgeworCisgICAgICAgIGZpbmFsIGludCBvcENvdW50ID0gcmFuZEludCgtMTAsIDE1KTsKKworICAgICAgICBmb3IgKGludCBpPW9wQ291bnQ7IGkgPD0gMDsgaSsrKSB7CisgICAgICAgICAgICBmVGV4dFBhbmVsLnJlZG8oKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBvcENvdW50OyBpKyspIHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwudW5kbygpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHZvaWQgdHlwZUtleXMoKSB7CisKKyAgICAgICAgZmluYWwgaW50IGtleUNvdW50ID0gcmFuZEludCgxLCAxMDApOworICAgICAgICBUZXh0UGFuZWwgdGV4dFBhbmVsID0gKFRleHRQYW5lbCkgZlRleHRQYW5lbDsKKyAgICAgICAgCisgICAgICAgIEtleUV2ZW50Rm9yd2FyZGVyIGZvcndhcmRlciA9IG5ldyBLZXlFdmVudEZvcndhcmRlcih0ZXh0UGFuZWwpOworICAgICAgICAKKyAgICAgICAgZkxpc3RlbmVyLnJlZnVzZUFsbCgpOworICAgICAgICBmTGlzdGVuZXIuYWxsb3dFdmVudChUZXh0UGFuZWxFdmVudC5VTkRPX1NUQVRFX0NIQU5HRUQpOworICAgICAgICAKKyAgICAgICAgaWYgKGZUZXh0UGFuZWwuZ2V0U2VsZWN0aW9uU3RhcnQoKSAhPSBmVGV4dFBhbmVsLmdldFNlbGVjdGlvbkVuZCgpKSB7CisgICAgICAgICAgICBmTGlzdGVuZXIuZXhwZWN0RXZlbnQoVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX0VNUFRZX0NIQU5HRUQpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBrZXlDb3VudDsgaSsrKSB7CisgICAgICAgICAgICBjaGFyIHR5cGVkQ2hhciA9IFRZUEVEX0NIQVJTW3JhbmRJbnQoVFlQRURfQ0hBUlMubGVuZ3RoKV07CisgICAgICAgICAgICBLZXlFdmVudCBldmVudCA9IG5ldyBLZXlFdmVudCh0ZXh0UGFuZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLZXlFdmVudC5LRVlfVFlQRUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtleUV2ZW50LlZLX1VOREVGSU5FRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVkQ2hhcik7CisgICAgICAgICAgICBpZiAodHlwZWRDaGFyID09IDggfHwgdHlwZWRDaGFyID09IDB4N2YpIHsKKyAgICAgICAgICAgICAgICBmTGlzdGVuZXIuYWxsb3dFdmVudChUZXh0UGFuZWxFdmVudC5URVhUX0NIQU5HRUQpOworICAgICAgICAgICAgICAgIGZMaXN0ZW5lci5hbGxvd0V2ZW50KFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9SQU5HRV9DSEFOR0VEKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGZMaXN0ZW5lci5leHBlY3RFdmVudChUZXh0UGFuZWxFdmVudC5URVhUX0NIQU5HRUQpOworICAgICAgICAgICAgICAgIGZMaXN0ZW5lci5leHBlY3RFdmVudChUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fUkFOR0VfQ0hBTkdFRCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3J3YXJkZXIuaGFuZGxlS2V5RXZlbnQoZXZlbnQpOworICAgICAgICAgICAgLy90cnkgeworICAgICAgICAgICAgICAgIGZMaXN0ZW5lci5hc3NlcnROb3RFeHBlY3RpbmdFdmVudHMoaSwgZmFsc2UpOworICAgICAgICAgICAgLy99CisgICAgICAgICAgICAvL2NhdGNoKEVycm9yIGUpIHsKKyAgICAgICAgICAgIC8vICAgIGxvZ01lc3NhZ2UoImk9IitpKyI7IHR5cGVkQ2hhcj0iK0ludGVnZXIudG9IZXhTdHJpbmcodHlwZWRDaGFyKSk7CisgICAgICAgICAgICAvLyAgICB0aHJvdyBlOworICAgICAgICAgICAgLy99CisgICAgICAgIH0KKyAgICAgICAgZkxpc3RlbmVyLmFsbG93QWxsKCk7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvVHlwaW5nUGVyZlRlc3QuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvVHlwaW5nUGVyZlRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wZDdhOTI3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC9UeXBpbmdQZXJmVGVzdC5qYXZhCkBAIC0wLDAgKzEsMjQyIEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBUeXBpbmdQZXJmVGVzdC5qYXZhLHYgJCAkUmV2aXNpb246IDEuNCAkICREYXRlOiAyMDAyLzAyLzE2IDAzOjA2OjM5ICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGVzdDsKKworaW1wb3J0IGphdmEuYXd0LkJ1dHRvbjsKK2ltcG9ydCBqYXZhLmF3dC5HcmlkTGF5b3V0OworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworaW1wb3J0IGphdmEuYXd0LlRvb2xraXQ7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5BY3Rpb25FdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5BY3Rpb25MaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5LZXlFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dBZGFwdGVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50OworCitpbXBvcnQgamF2YS5pby5GaWxlOworaW1wb3J0IGphdmEuaW8uRmlsZU91dHB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLk91dHB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLlByaW50V3JpdGVyOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CisKK2ltcG9ydCBqYXZhLnRleHQuRGF0ZUZvcm1hdDsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLktleUV2ZW50Rm9yd2FyZGVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmF3dHVpLlRleHRGcmFtZTsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuZGVtby5FZGl0RGVtbzsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmRlbW8uVGV4dERvY3VtZW50OworCitwdWJsaWMgY2xhc3MgVHlwaW5nUGVyZlRlc3QgaW1wbGVtZW50cyBBY3Rpb25MaXN0ZW5lciB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgVGV4dEZyYW1lIGZUZXh0RnJhbWU7CisgICAgcHJpdmF0ZSBLZXlFdmVudEZvcndhcmRlciBmS2V5RXZlbnRGb3J3YXJkZXI7CisgICAgcHJpdmF0ZSBQcmludFdyaXRlciBmT3V0OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGZnQXRTdGFydENvbW1hbmQgPSAiSW5zZXJ0IGF0IHN0YXJ0IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgZmdBdEVuZENvbW1hbmQgPSAiSW5zZXJ0IGF0IGVuZCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGZnRndkRGVsZXRlID0gIkZvcndhcmQgZGVsZXRlIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgZmdCYWNrc3BhY2UgPSAiQmFja3NwYWNlIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgZmdBdEN1cnJlbnRQb3NDb21tYW5kID0gIkluc2VydCBhdCBjdXJyZW50IHBvc2l0aW9uIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgZmdMb3RzT2ZUZXh0Q29tbWFuZCA9ICJJbnNlcnQgYSBsb3Qgb2YgdGV4dCI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVVNBR0UgPSAiVXNhZ2U6IGphdmEgY29tLmlibS5yaWNodGV4dC50ZXN0LlR5cGluZ1BlcmZUZXN0IFtmaWxlXSBbLWluc2VydGlvblRleHQgdGV4dF0iOworICAgIHByaXZhdGUgY2hhcltdIGZJbnNUZXh0OworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKworICAgICAgICAvLyBub3QgdXNlZCBPdXRwdXRTdHJlYW0gb3V0U3RyZWFtID0gbnVsbDsKKyAgICAgICAgUHJpbnRXcml0ZXIgd3JpdGVyID0gbmV3IFByaW50V3JpdGVyKFN5c3RlbS5vdXQpOworCisgICAgICAgIE1Db25zdFRleHQgdGV4dCA9IERlY2xhcmF0aW9uLmZnRGVjbGFyYXRpb247CisgICAgICAgIGNoYXJbXSBpbnNUZXh0ID0gIlRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2cuIFRoZSBlbmQuICIudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgCisgICAgICAgIGludCBpbmRleCA9IDA7CisgICAgICAgIHdoaWxlIChpbmRleCA8IGFyZ3MubGVuZ3RoKSB7CisgICAgICAgICAgICBpZiAoYXJnc1tpbmRleF0uZXF1YWxzKCItaW5zZXJ0aW9uVGV4dCIpKSB7CisgICAgICAgICAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID09ICsraW5kZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFVTQUdFKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaW5zVGV4dCA9IGFyZ3NbaW5kZXgrK10udG9DaGFyQXJyYXkoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8vIFRoaXMgd2lsbCB0cnkgTUNvbnN0VGV4dCBmaXJzdCwgdGhlbiBwbGFpbiB0ZXh0LgorICAgICAgICAgICAgICAgIFRleHREb2N1bWVudCBkb2MgPSBFZGl0RGVtby5nZXREb2N1bWVudEZyb21GaWxlKG5ldyBGaWxlKGFyZ3NbaW5kZXgrK10pKTsKKyAgICAgICAgICAgICAgICBpZiAoZG9jID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDb3VsZG4ndCBvcGVuIGZpbGUgIithcmdzW2luZGV4LTFdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGV4dCA9IGRvYy5nZXRUZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChpbmRleCAhPSBhcmdzLmxlbmd0aCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFVTQUdFKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbmV3IFR5cGluZ1BlcmZUZXN0KHdyaXRlciwgdGV4dCwgaW5zVGV4dCk7CisgICAgfQorCisgICAgcHVibGljIFR5cGluZ1BlcmZUZXN0KFByaW50V3JpdGVyIG91dCwgTUNvbnN0VGV4dCB0ZXh0LCBjaGFyW10gaW5zVGV4dCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKworICAgICAgICBmSW5zVGV4dCA9IGluc1RleHQ7CisgICAgICAgIGZUZXh0RnJhbWUgPSBuZXcgVGV4dEZyYW1lKHRleHQsICIiLCBudWxsKTsKKyAgICAgICAgVGV4dFBhbmVsIHRleHRQYW5lbCA9IChUZXh0UGFuZWwpIGZUZXh0RnJhbWUuZ2V0VGV4dFBhbmVsKCk7CisgICAgICAgIGZLZXlFdmVudEZvcndhcmRlciA9IG5ldyBLZXlFdmVudEZvcndhcmRlcih0ZXh0UGFuZWwpOworICAgICAgICBmT3V0ID0gb3V0OworCisgICAgICAgIERhdGVGb3JtYXQgZGYgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoKTsKKyAgICAgICAgb3V0LnByaW50bG4oIlRlc3QgZGF0ZTogIiArIGRmLmZvcm1hdChuZXcgRGF0ZSgpKSk7CisKKyAgICAgICAgZlRleHRGcmFtZS5zZXRTaXplKDUwMCwgNzAwKTsKKyAgICAgICAgZlRleHRGcmFtZS5zaG93KCk7CisKKyAgICAgICAgRnJhbWUgZiA9IG5ldyBGcmFtZSgiVHlwaW5nIFBlcmYgVGVzdCIpOworICAgICAgICBmLnNldExheW91dChuZXcgR3JpZExheW91dCgwLCAxKSk7CisgICAgICAgIEJ1dHRvbiBiOworLyoKKyAgICAgICAgYiA9IG5ldyBCdXR0b24oZmdBdFN0YXJ0Q21kKTsKKyAgICAgICAgYi5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgZi5hZGQoYik7CisKKyAgICAgICAgYiA9IG5ldyBCdXR0b24oZmdBdEVuZENtZCk7CisgICAgICAgIGIuYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgIGYuYWRkKGIpOworKi8KKyAgICAgICAgYiA9IG5ldyBCdXR0b24oZmdBdEN1cnJlbnRQb3NDb21tYW5kKTsKKyAgICAgICAgYi5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgZi5hZGQoYik7CisKKyAgICAgICAgYiA9IG5ldyBCdXR0b24oZmdMb3RzT2ZUZXh0Q29tbWFuZCk7CisgICAgICAgIGIuYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgIGYuYWRkKGIpOworCisgICAgICAgIGIgPSBuZXcgQnV0dG9uKGZnRndkRGVsZXRlKTsKKyAgICAgICAgYi5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgZi5hZGQoYik7CisKKyAgICAgICAgYiA9IG5ldyBCdXR0b24oZmdCYWNrc3BhY2UpOworICAgICAgICBiLmFkZEFjdGlvbkxpc3RlbmVyKHRoaXMpOworICAgICAgICBmLmFkZChiKTsKKworICAgICAgICBmLmRvTGF5b3V0KCk7CisgICAgICAgIFdpbmRvd0FkYXB0ZXIgY2xvc2VyID0gbmV3IFdpbmRvd0FkYXB0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCB3aW5kb3dDbG9zaW5nKFdpbmRvd0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBmT3V0LmNsb3NlKCk7CisgICAgICAgICAgICAgICAgU3lzdGVtLmV4aXQoMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBmLmFkZFdpbmRvd0xpc3RlbmVyKGNsb3Nlcik7CisgICAgICAgIGZUZXh0RnJhbWUuYWRkV2luZG93TGlzdGVuZXIoY2xvc2VyKTsKKyAgICAgICAgCisgICAgICAgIGYuc2V0U2l6ZSgyMDAsIDgwKTsKKyAgICAgICAgZi5zaG93KCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGV2dCkgeworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpZiAoZXZ0LmdldEFjdGlvbkNvbW1hbmQoKS5lcXVhbHMoZmdBdEN1cnJlbnRQb3NDb21tYW5kKSkgeworCisgICAgICAgICAgICAgICAgaW5zZXJ0QXRDdXJyZW50UG9zKDEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoZXZ0LmdldEFjdGlvbkNvbW1hbmQoKS5lcXVhbHMoZmdMb3RzT2ZUZXh0Q29tbWFuZCkpIHsKKworICAgICAgICAgICAgICAgIGluc2VydEF0Q3VycmVudFBvcyg4KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGV2dC5nZXRBY3Rpb25Db21tYW5kKCkuZXF1YWxzKGZnRndkRGVsZXRlKSkgeworCisgICAgICAgICAgICAgICAgZm9yd2FyZERlbGV0ZSgxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGV2dC5nZXRBY3Rpb25Db21tYW5kKCkuZXF1YWxzKGZnQmFja3NwYWNlKSkgeworCisgICAgICAgICAgICAgICAgYmFja3NwYWNlKDEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdGNoKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ2F1Z2h0IGV4Y2VwdGlvbjogIiArIGUpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGluc2VydEF0Q3VycmVudFBvcyhmaW5hbCBpbnQgdGltZXMpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisKKyAgICAgICAgZlRleHRGcmFtZS50b0Zyb250KCk7CisKKyAgICAgICAgU3lzdGVtLmdjKCk7CisKKyAgICAgICAgbG9uZyBzdGFydFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKworICAgICAgICBmb3IgKGludCB0PTA7IHQgPCB0aW1lczsgdCsrKSB7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBmSW5zVGV4dC5sZW5ndGg7IGkrKykgeworCisgICAgICAgICAgICAgICAgS2V5RXZlbnQgZXZlbnQgPSBuZXcgS2V5RXZlbnQoZlRleHRGcmFtZSwgS2V5RXZlbnQuS0VZX1RZUEVELCAwLCAwLCAwLCBmSW5zVGV4dFtpXSk7CisgICAgICAgICAgICAgICAgZktleUV2ZW50Rm9yd2FyZGVyLmhhbmRsZUtleUV2ZW50KGV2ZW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGxvbmcgdGltZSA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpIC0gc3RhcnRUaW1lOworCisgICAgICAgIGZPdXQucHJpbnRsbigiVG90YWwgdGltZTogIiArIHRpbWUpOworICAgICAgICBmT3V0LnByaW50bG4oIk1pbGxpcyBwZXIgY2hhcmFjdGVyOiAiICsgKHRpbWUgLyAoZkluc1RleHQubGVuZ3RoKnRpbWVzKSkpOworICAgICAgICBmT3V0LmZsdXNoKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGZvcndhcmREZWxldGUoZmluYWwgaW50IHRpbWVzKSB0aHJvd3MgSU9FeGNlcHRpb24geworCisgICAgICAgIFN5c3RlbS5nYygpOworCisgICAgICAgIGxvbmcgc3RhcnRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisKKyAgICAgICAgZm9yIChpbnQgdD0wOyB0IDwgdGltZXM7IHQrKykgeworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgZkluc1RleHQubGVuZ3RoOyBpKyspIHsKKworICAgICAgICAgICAgICAgIEtleUV2ZW50IGV2ZW50ID0gbmV3IEtleUV2ZW50KGZUZXh0RnJhbWUsIDAsIDAsIDAsIEtleUV2ZW50LlZLX0RFTEVURSwgJ1x1MDBGRicpOworICAgICAgICAgICAgICAgIGZLZXlFdmVudEZvcndhcmRlci5oYW5kbGVLZXlFdmVudChldmVudCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBsb25nIHRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSAtIHN0YXJ0VGltZTsKKworICAgICAgICBmT3V0LnByaW50bG4oIlRvdGFsIHRpbWU6ICIgKyB0aW1lKTsKKyAgICAgICAgZk91dC5wcmludGxuKCJNaWxsaXMgcGVyIGNoYXJhY3RlcjogIiArICh0aW1lIC8gKGZJbnNUZXh0Lmxlbmd0aCp0aW1lcykpKTsKKyAgICAgICAgZk91dC5mbHVzaCgpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBiYWNrc3BhY2UoZmluYWwgaW50IHRpbWVzKSB0aHJvd3MgSU9FeGNlcHRpb24geworCisgICAgICAgIFN5c3RlbS5nYygpOworCisgICAgICAgIGxvbmcgc3RhcnRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisKKyAgICAgICAgZm9yIChpbnQgdD0wOyB0IDwgdGltZXM7IHQrKykgeworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgZkluc1RleHQubGVuZ3RoOyBpKyspIHsKKworICAgICAgICAgICAgICAgIEtleUV2ZW50IGV2ZW50ID0gbmV3IEtleUV2ZW50KGZUZXh0RnJhbWUsIDAsIDAsIDAsIEtleUV2ZW50LlZLX0JBQ0tfU1BBQ0UsICdcdTAwMTAnKTsKKyAgICAgICAgICAgICAgICBmS2V5RXZlbnRGb3J3YXJkZXIuaGFuZGxlS2V5RXZlbnQoZXZlbnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgbG9uZyB0aW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkgLSBzdGFydFRpbWU7CisKKyAgICAgICAgZk91dC5wcmludGxuKCJUb3RhbCB0aW1lOiAiICsgdGltZSk7CisgICAgICAgIGZPdXQucHJpbnRsbigiTWlsbGlzIHBlciBjaGFyYWN0ZXI6ICIgKyAodGltZSAvIChmSW5zVGV4dC5sZW5ndGgqdGltZXMpKSk7CisgICAgICAgIGZPdXQuZmx1c2goKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvRm13a1Rlc3RUZXh0UGFuZWwuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvdW5pdC9GbXdrVGVzdFRleHRQYW5lbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmUzNzkyYWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvRm13a1Rlc3RUZXh0UGFuZWwuamF2YQpAQCAtMCwwICsxLDUyIEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBGbXdrVGVzdFRleHRQYW5lbC5qYXZhLHYgJCAkUmV2aXNpb246IDEuMyAkICREYXRlOiAyMDAyLzAyLzE2IDAzOjA2OjM5ICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGVzdC51bml0OworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXN0LlRlc3RUZXh0UGFuZWw7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBGbXdrVGVzdFRleHRQYW5lbCBleHRlbmRzIFRlc3RGbXdrIHsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgIAorICAgICAgICBuZXcgRm13a1Rlc3RUZXh0UGFuZWwoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgVFRQIHR0cDsKKyAgICAKKyAgICBwdWJsaWMgRm13a1Rlc3RUZXh0UGFuZWwoKSB7CisgICAgCisgICAgICAgIHR0cCA9IG5ldyBUVFAoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgdGVzdCgpIHsKKyAgICAKKyAgICAgICAgdHRwLnRlc3QoKTsKKyAgICAgICAgLy8gSWYgVGVzdFRleHRQYW5lbCBnZXRzIG1vcmUgdGVzdHMsIGFkZCB0aGVtIGhlcmUKKyAgICB9CisKKyAgICBwcml2YXRlIGZpbmFsIGNsYXNzIFRUUCBleHRlbmRzIFRlc3RUZXh0UGFuZWwgeworICAgIAorICAgICAgICBwcm90ZWN0ZWQgdm9pZCByZXBvcnRFcnJvcihTdHJpbmcgbWVzc2FnZSkgeworICAgICAgICAKKyAgICAgICAgICAgIGVycmxuKG1lc3NhZ2UpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcm90ZWN0ZWQgdm9pZCBsb2dNZXNzYWdlKFN0cmluZyBtZXNzYWdlKSB7CisgICAgICAgIAorICAgICAgICAgICAgbG9nbG4obWVzc2FnZSk7CisgICAgICAgIH0KKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC91bml0L1Rlc3RBbGwuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvdW5pdC9UZXN0QWxsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmRjNDY4MmUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvVGVzdEFsbC5qYXZhCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IFRlc3RBbGwuamF2YSx2ICQgJFJldmlzaW9uOiAxLjMgJCAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNjozOSAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRlc3QudW5pdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworCitwdWJsaWMgY2xhc3MgVGVzdEFsbCBleHRlbmRzIFRlc3RGbXdrIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFRlc3RBbGwoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RBdHRyaWJ1dGVTZXQoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgcnVuKG5ldyBUZXN0QXR0cmlidXRlU2V0KCkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0QXR0cmlidXRlTWFwKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHJ1bihuZXcgVGVzdEF0dHJpYnV0ZU1hcCgpKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEZvcm1hdHRlcigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBydW4obmV3IFRlc3RGb3JtYXR0ZXIoKSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RNVGV4dCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBydW4obmV3IFRlc3RNVGV4dCgpKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFBhcmFncmFwaFN0eWxlcygpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBydW4obmV3IFRlc3RQYXJhZ3JhcGhTdHlsZXMoKSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RNVGV4dFN0cmVhbWluZygpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBydW4obmV3IFRlc3RNVGV4dFN0cmVhbWluZygpKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFRleHRQYW5lbCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBydW4obmV3IEZtd2tUZXN0VGV4dFBhbmVsKCkpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvVGVzdEF0dHJpYnV0ZU1hcC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC91bml0L1Rlc3RBdHRyaWJ1dGVNYXAuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zN2Y3YmZkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC91bml0L1Rlc3RBdHRyaWJ1dGVNYXAuamF2YQpAQCAtMCwwICsxLDQxMyBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogVGVzdEF0dHJpYnV0ZU1hcC5qYXZhLHYgJCAkUmV2aXNpb246IDEuNCAkICREYXRlOiAyMDAyLzAyLzE2IDAzOjA2OjM5ICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGVzdC51bml0OworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVTZXQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuVGV4dEF0dHJpYnV0ZTsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5NYXA7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworaW1wb3J0IGphdmEudXRpbC5FbnVtZXJhdGlvbjsKKworLy8gSmF2YTIgaW1wb3J0cworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uOworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworaW1wb3J0IGphdmEudXRpbC5NYXAuRW50cnk7CisKKworcHVibGljIGNsYXNzIFRlc3RBdHRyaWJ1dGVNYXAgZXh0ZW5kcyBUZXN0Rm13ayAgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKworCisgICAgLy8gVGhlcmUgYXJlIEpESyAxLjEgdmVyc2lvbnMgb2YgQXR0cmlidXRlTWFwIGFuZCBBdHRyaWJ1dGVTZXQuCisgICAgLy8gU29tZSBvZiB0aGUgdGVzdHMgaW4gdGhpcyBjbGFzcyByZXF1aXJlIEphdmEgMiBBUEkncy4gIEkgaGF2ZQorICAgIC8vIHRyaWVkIHRvIGlzb2xhdGUgdGhlc2UgdGVzdHMgYnkgY29uZGl0aW9uYWxpemluZyB0aGVtIG9uCisgICAgLy8gdGhpcyBzdGF0aWMgdmFyaWFibGUuICBJZiB5b3UgYXJlIGJhY2stcG9ydGluZyB0byAxLjEsIHJlbW92ZQorICAgIC8vIHRoZSBKYXZhIDIgdGVzdHMgT05MWS4KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIGdKREsxMSA9IGZhbHNlOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgbmV3IFRlc3RBdHRyaWJ1dGVNYXAoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHJpdmF0ZSBBdHRyaWJ1dGVTZXQgbWFwczsgIC8vIEEgU2V0IG9mIEF0dHJpYnV0ZU1hcHMKKyAgICBwcml2YXRlIEF0dHJpYnV0ZVNldCBzZXRzOyAgLy8gQSBTZXQgb2YgU2V0cworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgVGVzdEF0dHJpYnV0ZSBleHRlbmRzIFRleHRBdHRyaWJ1dGUgeworCisgICAgICAgIFRlc3RBdHRyaWJ1dGUoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgICAgIHN1cGVyKG5hbWUpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVGVzdEF0dHJpYnV0ZVtdIGF0dHJpYnV0ZXMgPSB7CisgICAgICAgIG5ldyBUZXN0QXR0cmlidXRlKCIwIiksIG5ldyBUZXN0QXR0cmlidXRlKCIxIiksIG5ldyBUZXN0QXR0cmlidXRlKCIyIikKKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgT2JqZWN0W10gdmFsdWVzID0geworICAgICAgICAiSGVsbG8gd29ybGQiLCBuZXcgRmxvYXQoLTQyKSwgbmV3IE9iamVjdCgpLCBuZXcgQXR0cmlidXRlTWFwKG5ldyBUZXN0QXR0cmlidXRlKCIzIiksICJISCIpCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgbGhzLmVxdWFscyhyaHMpIC0gYnV0IGFsc28gY2hlY2tzIGZvciBzeW1tZXRyeSwgYW5kCisgICAgICogY29uc2lzdGVuY3kgd2l0aCBoYXNoQ29kZSgpLgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBlcXVhbE1hcHMoQXR0cmlidXRlTWFwIGxocywgT2JqZWN0IHJocykgeworCisgICAgICAgIGJvb2xlYW4gZXF1YWwgPSBsaHMuZXF1YWxzKHJocyk7CisgICAgICAgIGlmIChlcXVhbCAhPSAocmhzLmVxdWFscyhsaHMpKSkgeworICAgICAgICAgICAgZXJybG4oIkF0dHJpYnV0ZU1hcC5lcXVhbHMgaXMgbm90IHN5bWV0cmljIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVxdWFsKSB7CisgICAgICAgICAgICBpZiAobGhzLmhhc2hDb2RlKCkgIT0gcmhzLmhhc2hDb2RlKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiQXR0cmlidXRlTWFwcyBhcmUgZXF1YWwgYnV0IGhhc2hDb2RlcyBkaWZmZXIiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZXF1YWw7CisgICAgfQorCisgICAgcHVibGljIFRlc3RBdHRyaWJ1dGVNYXAoKSB7CisKKyAgICAgICAgbWFwcyA9IEF0dHJpYnV0ZVNldC5FTVBUWV9TRVQ7CisgICAgICAgIG1hcHMgPSBtYXBzLmFkZEVsZW1lbnQoQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVApOworICAgICAgICBtYXBzLmFkZEVsZW1lbnQobmV3IEF0dHJpYnV0ZU1hcChUZXh0QXR0cmlidXRlLlNVUEVSU0NSSVBULCBUZXh0QXR0cmlidXRlLlNVUEVSU0NSSVBUX1NVQikpOworICAgICAgICBtYXBzLmFkZEVsZW1lbnQobmV3IEF0dHJpYnV0ZU1hcChUZXh0QXR0cmlidXRlLlNVUEVSU0NSSVBULCBUZXh0QXR0cmlidXRlLlNVUEVSU0NSSVBUX1NVUEVSKSk7CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgYXR0cmlidXRlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgZm9yIChpbnQgaj0wOyBqIDwgdmFsdWVzLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgbWFwcyA9IG1hcHMuYWRkRWxlbWVudChuZXcgQXR0cmlidXRlTWFwKGF0dHJpYnV0ZXNbaV0sIHZhbHVlc1tqXSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgQXR0cmlidXRlTWFwIGJpZ01hcCA9IG5ldyBBdHRyaWJ1dGVNYXAobmV3IFRlc3RBdHRyaWJ1dGUoIjQiKSwgInZhbHVlIik7CisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IE1hdGgubWluKGF0dHJpYnV0ZXMubGVuZ3RoLCB2YWx1ZXMubGVuZ3RoKTsgaSsrKSB7CisgICAgICAgICAgICBiaWdNYXAgPSBiaWdNYXAuYWRkQXR0cmlidXRlKGF0dHJpYnV0ZXNbaV0sIHZhbHVlc1t2YWx1ZXMubGVuZ3RoLWktMV0pOworICAgICAgICB9CisgICAgICAgIG1hcHMgPSBtYXBzLmFkZEVsZW1lbnQoYmlnTWFwKTsKKworICAgICAgICBzZXRzID0gQXR0cmlidXRlU2V0LkVNUFRZX1NFVDsKKworICAgICAgICBzZXRzID0gbmV3IEF0dHJpYnV0ZVNldChBdHRyaWJ1dGVTZXQuRU1QVFlfU0VUKTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBhdHRyaWJ1dGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBBdHRyaWJ1dGVTZXQgbmV3U2V0ID0gbmV3IEF0dHJpYnV0ZVNldChhdHRyaWJ1dGVzW2ldKTsKKyAgICAgICAgICAgIHNldHMgPSBzZXRzLmFkZEVsZW1lbnQobmV3U2V0KTsKKyAgICAgICAgfQorCisgICAgICAgIEF0dHJpYnV0ZVNldCBhbGxBdHRycyA9IEF0dHJpYnV0ZVNldC5FTVBUWV9TRVQ7CisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IGF0dHJpYnV0ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGFsbEF0dHJzID0gYWxsQXR0cnMuYWRkRWxlbWVudChhdHRyaWJ1dGVzW2ldKTsKKyAgICAgICAgfQorCisgICAgICAgIHNldHMgPSBzZXRzLmFkZEVsZW1lbnQoYWxsQXR0cnMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJ1biB0ZXN0cyBvbiBBdHRyaWJ1dGVNYXAuICBJZiBhIHRlc3QgZmFpbHMgYW4gZXhjZXB0aW9uIHdpbGwgcHJvcG9nYXRlIG91dAorICAgICAqIG9mIHRoaXMgbWV0aG9kLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3QoKSB7CisKKyAgICAgICAgZWFzeVRlc3RzKCk7CisKKyAgICAgICAgRW51bWVyYXRpb24gbWFwSXRlciA9IG1hcHMuZWxlbWVudHMoKTsKKyAgICAgICAgd2hpbGUgKG1hcEl0ZXIuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKworICAgICAgICAgICAgQXR0cmlidXRlTWFwIHRlc3RNYXAgPSAoQXR0cmlidXRlTWFwKSBtYXBJdGVyLm5leHRFbGVtZW50KCk7CisKKyAgICAgICAgICAgIF90ZXN0TW9kaWZpZXJzKHRlc3RNYXApOworICAgICAgICAgICAgX3Rlc3RWaWV3cyh0ZXN0TWFwKTsKKworICAgICAgICAgICAgRW51bWVyYXRpb24gdW5pb25JdGVyID0gbWFwcy5lbGVtZW50cygpOworICAgICAgICAgICAgd2hpbGUgKHVuaW9uSXRlci5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgICAgIF90ZXN0VW5pb25XaXRoKHRlc3RNYXAsIChBdHRyaWJ1dGVNYXApIHVuaW9uSXRlci5uZXh0RWxlbWVudCgpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgRW51bWVyYXRpb24gc2V0SXRlciA9IHNldHMuZWxlbWVudHMoKTsKKyAgICAgICAgICAgIHdoaWxlIChzZXRJdGVyLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICAgICAgQXR0cmlidXRlU2V0IHRlc3RTZXQgPSAoQXR0cmlidXRlU2V0KSBzZXRJdGVyLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgX3Rlc3RJbnRlcnNlY3RXaXRoKHRlc3RNYXAsIHRlc3RTZXQpOworICAgICAgICAgICAgICAgIF90ZXN0UmVtb3ZlQXR0cmlidXRlcyh0ZXN0TWFwLCB0ZXN0U2V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEludm9rZSBtb2RpZmllcnMgb24gbWFwLiAgQWxsIHNob3VsZCB0aHJvdworICAgICAqIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uLCBhbmQgbGVhdmUgbWFwIHVubW9kaWZpZWQuCisgICAgICovCisgICAgdm9pZCBfdGVzdE1vZGlmaWVycyhBdHRyaWJ1dGVNYXAgbWFwKSB7CisKKyAgICAgICAgaWYgKGdKREsxMSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBBdHRyaWJ1dGVNYXAgb3JpZ2luYWxNYXAgPSBuZXcgQXR0cmlidXRlTWFwKG1hcCk7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG1hcC5wdXQoVGV4dEF0dHJpYnV0ZS5XRUlHSFQsIFRleHRBdHRyaWJ1dGUuV0VJR0hUX0JPTEQpOworICAgICAgICAgICAgZXJybG4oIlB1dCBzaG91bGQgdGhyb3cgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24uIik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKworICAgICAgICB0cnkgeworICAgICAgICAgICAgT2JqZWN0IGtleSA9IFRleHRBdHRyaWJ1dGUuV0VJR0hUOworICAgICAgICAgICAgSXRlcmF0b3IgaXRlciA9IG1hcC5rZXlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICAgICAgaWYgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAga2V5ID0gaXRlci5uZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtYXAucmVtb3ZlKGtleSk7CisgICAgICAgICAgICBlcnJsbigiU2V0IHNob3VsZCB0aHJvdyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbi4iKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBtYXAucHV0QWxsKG1hcCk7CisgICAgICAgICAgICBlcnJsbigicHV0QWxsIHNob3VsZCB0aHJvdyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbi4iKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBtYXAuY2xlYXIoKTsKKyAgICAgICAgICAgIGVycmxuKCJjbGVhciBzaG91bGQgdGhyb3cgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24uIik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIW9yaWdpbmFsTWFwLmVxdWFscyhtYXApKSB7CisgICAgICAgICAgICBlcnJsbigiTW9kaWZpZXJzIGNoYW5nZWQgbWFwLiIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRW5zdXJlIHRoYXQgbWFwLmFkZEF0dHJpYnV0ZXMoYWRkTWFwKSBpcyBlcXVpdmFsZW50IHRvIGNhbGxpbmcKKyAgICAgKiBtYXAuYWRkIG9uIGFsbCBvZiBhZGRNYXAncyBlbnRyaWVzLgorICAgICAqLworICAgIHZvaWQgX3Rlc3RVbmlvbldpdGgoQXR0cmlidXRlTWFwIG1hcCwgQXR0cmlidXRlTWFwIGFkZE1hcCkgeworCisgICAgICAgIEF0dHJpYnV0ZU1hcCBsaHMgPSBtYXAuYWRkQXR0cmlidXRlcyhhZGRNYXApOworCisgICAgICAgIEF0dHJpYnV0ZU1hcCByaHMgPSBtYXA7CisKKyAgICAgICAgRW51bWVyYXRpb24gaXRlciA9IGFkZE1hcC5nZXRLZXlTZXQoKS5lbGVtZW50cygpOworICAgICAgICB3aGlsZSAoaXRlci5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgT2JqZWN0IGF0dHIgPSBpdGVyLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICBPYmplY3QgdmFsdWUgPSBhZGRNYXAuZ2V0KGF0dHIpOworICAgICAgICAgICAgcmhzID0gcmhzLmFkZEF0dHJpYnV0ZShhdHRyLCB2YWx1ZSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWVxdWFsTWFwcyhsaHMsIHJocykpIHsKKyAgICAgICAgICAgIGVycmxuKCJNYXBzIGFyZSBub3QgZXF1YWwuIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBFbnN1cmUgdGhhdCBtYXAucmVtb3ZlQXR0cmlidXRlcyhyZW1vdmUpIGlzIGVxdWl2YWxlbnQgdG8gY2FsbGluZworICAgICAqIG1hcC5yZW1vdmVBdHRyaWJ1dGUgb24gcmVtb3ZlJ3MgZWxlbWVudHMuCisgICAgICovCisgICAgdm9pZCBfdGVzdFJlbW92ZUF0dHJpYnV0ZXMoQXR0cmlidXRlTWFwIG1hcCwgQXR0cmlidXRlU2V0IHJlbW92ZSkgeworCisgICAgICAgIEF0dHJpYnV0ZU1hcCBsaHMgPSBtYXAucmVtb3ZlQXR0cmlidXRlcyhyZW1vdmUpOworCisgICAgICAgIEF0dHJpYnV0ZU1hcCByaHMgPSBtYXA7CisKKyAgICAgICAgRW51bWVyYXRpb24gaXRlciA9IHJlbW92ZS5lbGVtZW50cygpOworICAgICAgICB3aGlsZSAoaXRlci5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgT2JqZWN0IGF0dHIgPSBpdGVyLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICByaHMgPSByaHMucmVtb3ZlQXR0cmlidXRlKGF0dHIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFlcXVhbE1hcHMobGhzLCByaHMpKSB7CisgICAgICAgICAgICBlcnJsbigiTWFwcyBhcmUgbm90IGVxdWFsLiIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRW5zdXJlIHRoYXQgbWFwLmludGVyc2VjdFdpdGgoaW50ZXJzZWN0KSBpcyBlcXVpdmFsZW50IHRvCisgICAgICogbWFwLnJlbW92ZUF0dHJpYnV0ZXMobWFwLmtleVNldCgpIC0gaW50ZXJzZWN0KTsKKyAgICAgKi8KKyAgICB2b2lkIF90ZXN0SW50ZXJzZWN0V2l0aChBdHRyaWJ1dGVNYXAgbWFwLCBBdHRyaWJ1dGVTZXQgaW50ZXJzZWN0KSB7CisKKyAgICAgICAgQXR0cmlidXRlTWFwIGxocyA9IG1hcC5pbnRlcnNlY3RXaXRoKGludGVyc2VjdCk7CisKKyAgICAgICAgQXR0cmlidXRlU2V0IGtleVNldCA9IG1hcC5nZXRLZXlTZXQoKTsKKyAgICAgICAgQXR0cmlidXRlU2V0IHJlbW92ZVNldCA9IGtleVNldC5zdWJ0cmFjdChpbnRlcnNlY3QpOworICAgICAgICBBdHRyaWJ1dGVNYXAgcmhzID0gbWFwLnJlbW92ZUF0dHJpYnV0ZXMocmVtb3ZlU2V0KTsKKworICAgICAgICBpZiAoIWVxdWFsTWFwcyhsaHMsIHJocykpIHsKKyAgICAgICAgICAgIG1hcC5pbnRlcnNlY3RXaXRoKGludGVyc2VjdCk7CisgICAgICAgICAgICBsb2dsbigiaW50ZXJzZWN0OiAiICsgaW50ZXJzZWN0KTsKKyAgICAgICAgICAgIGxvZ2xuKCJrZXlTZXQ6ICIgKyBrZXlTZXQpOworICAgICAgICAgICAgbG9nbG4oInJlbW92ZVNldDogIiArIHJlbW92ZVNldCk7CisgICAgICAgICAgICBsb2dsbigibWFwOiAiICsgbWFwKTsKKyAgICAgICAgICAgIGxvZ2xuKCJsaHM6ICIgKyBsaHMpOworICAgICAgICAgICAgbG9nbG4oInJoczogIiArIHJocyk7CisgICAgICAgICAgICBlcnJsbigiTWFwcyBhcmUgbm90IGVxdWFsLiIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRW5zdXJlIHRoYXQ6CisgICAgICogICAgbWFwLCBtYXAua2V5U2V0KCksIGFuZCBtYXAuZW50cnlTZXQoKSBhcmUgdGhlIHNhbWUgc2l6ZTsKKyAgICAgKiAgICBtYXAuY29udGFpbnNLZXkoKSBpcyB0cnVlIGZvciBldmVyeSBrZXkgaW4ga2V5U2V0KCk7CisgICAgICogICAgbWFwLmNvbnRhaW5zVmFsdWUoKSBpcyB0cnVlIGZvciBldmVyeSB2YWx1ZSBpbiB2YWx1ZXM7CisgICAgICogICAgZXZlcnkgZW50cnkga2V5IGlzIGluIGtleVNldCwgZXZlcnkgZW50cnkgdmFsdWUgaXMgaW4gbWFwLnZhbHVlcygpOworICAgICAqICAgIG1hcC5nZXQoKSBpcyBjb25zaXN0ZW50IHdpdGggZW50cnkncyBrZXksIHZhbHVlOworICAgICAqICAgIHN1bSBvZiBoYXNoY29kZXMgb2YgZW50cmllcyBlcXVhbHMgbWFwLmhhc2hDb2RlKCkuCisgICAgICovCisgICAgdm9pZCBfdGVzdFZpZXdzKEF0dHJpYnV0ZU1hcCBtYXApIHsKKworICAgICAgICBBdHRyaWJ1dGVTZXQga2V5U2V0ID0gbWFwLmdldEtleVNldCgpOworCisgICAgICAgIEVudW1lcmF0aW9uIGtleUl0ZXIgPSBrZXlTZXQuZWxlbWVudHMoKTsKKyAgICAgICAgd2hpbGUgKGtleUl0ZXIuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIGlmICghbWFwLmNvbnRhaW5zS2V5KGtleUl0ZXIubmV4dEVsZW1lbnQoKSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigia2V5U2V0IGNvbnRhaW5zIGtleSBub3QgaW4gbWFwIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoZ0pESzExKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIENvbGxlY3Rpb24gdmFsdWVzID0gbWFwLnZhbHVlcygpOworICAgICAgICBTZXQgZW50cnlTZXQgPSBtYXAuZW50cnlTZXQoKTsKKworICAgICAgICBpZiAoa2V5U2V0LnNpemUoKSAhPSBtYXAuc2l6ZSgpIHx8IGVudHJ5U2V0LnNpemUoKSAhPSBtYXAuc2l6ZSgpKSB7CisgICAgICAgICAgICBlcnJsbigiU2V0IHNpemVzIGFyZSBpbmNvbnNpc3RlbnQgd2l0aCBtYXAgc2l6ZS4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBoYXNoQ29kZSA9IDA7CisKKyAgICAgICAgSXRlcmF0b3IgdmFsdWVJdGVyID0gdmFsdWVzLml0ZXJhdG9yKCk7CisgICAgICAgIHdoaWxlICh2YWx1ZUl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBpZiAoIW1hcC5jb250YWluc1ZhbHVlKHZhbHVlSXRlci5uZXh0KCkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInZhbHVlIHNldCBjb250YWlucyB2YWx1ZSBub3QgaW4gbWFwIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBJdGVyYXRvciBlbnRyeUl0ZXIgPSBlbnRyeVNldC5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoZW50cnlJdGVyLmhhc05leHQoKSkgeworCisgICAgICAgICAgICBFbnRyeSBlbnRyeSA9IChFbnRyeSkgZW50cnlJdGVyLm5leHQoKTsKKworICAgICAgICAgICAgT2JqZWN0IGtleSA9IGVudHJ5LmdldEtleSgpOworICAgICAgICAgICAgaWYgKCFrZXlTZXQuY29udGFpbnMoa2V5KSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFbnRyeSBrZXkgaXMgbm90IGluIGtleSBzZXQuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIE9iamVjdCB2YWx1ZSA9IG1hcC5nZXQoZW50cnkuZ2V0S2V5KCkpOworICAgICAgICAgICAgaWYgKCF2YWx1ZXMuY29udGFpbnModmFsdWUpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVudHJ5IHZhbHVlIGlzIG5vdCBpbiB2YWx1ZSBzZXQuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChtYXAuZ2V0KGtleSkgIT0gdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigibWFwLmdldCBkaWQgbm90IHJldHVybiBlbnRyeSB2YWx1ZS4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaGFzaENvZGUgKz0gZW50cnkuaGFzaENvZGUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChoYXNoQ29kZSAhPSBtYXAuaGFzaENvZGUoKSkgeworICAgICAgICAgICAgZXJybG4oIm1hcCBoYXNoY29kZSBpcyBub3Qgc3VtIG9mIGVudHJ5IGhhc2hjb2Rlcy4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIExvb2sgZm9yIGNvcnJlY3QgYmVoYXZpb3IgaW4gb2J2aW91cyBjYXNlcy4KKyAgICAgKi8KKyAgICB2b2lkIGVhc3lUZXN0cygpIHsKKworICAgICAgICBBdHRyaWJ1dGVNYXAgbWFwID0gbmV3IEF0dHJpYnV0ZU1hcCgpOworICAgICAgICBpZiAoIW1hcC5lcXVhbHMoQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVApKSB7CisgICAgICAgICAgICBlcnJsbigiRGVmYXVsdC1jb25zdHJ1Y3RlZCBtYXAgaXMgbm90IGVxdWFsIHRvIGVtcHR5IG1hcC4iKTsKKyAgICAgICAgfQorCisgICAgICAgIG1hcCA9IG1hcC5hZGRBdHRyaWJ1dGUoVGV4dEF0dHJpYnV0ZS5QT1NUVVJFLCBUZXh0QXR0cmlidXRlLlBPU1RVUkVfT0JMSVFVRSk7CisgICAgICAgIE9iamVjdCBvdGhlck1hcCA9IG5ldyBBdHRyaWJ1dGVNYXAoVGV4dEF0dHJpYnV0ZS5QT1NUVVJFLCBUZXh0QXR0cmlidXRlLlBPU1RVUkVfT0JMSVFVRSk7CisgICAgICAgIGlmICghbWFwLmVxdWFscyhvdGhlck1hcCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJNYXBzIGFyZSBpbmNvbnNpc3RlbnQgYWZ0ZXIgbWFwLmFkZCIpOworICAgICAgICB9CisKKyAgICAgICAgb3RoZXJNYXAgPSBtYXAuYWRkQXR0cmlidXRlcyhtYXApOworICAgICAgICBpZiAoIWVxdWFsTWFwcyhtYXAsb3RoZXJNYXApKSB7CisgICAgICAgICAgICBlcnJsbigiTWFwcyBhcmUgaW5jb25zaXN0ZW50IGFmdGVyIGFkZEF0dHJpYnV0ZXMiKTsKKyAgICAgICAgfQorCisgICAgICAgIG1hcCA9IG1hcC5hZGRBdHRyaWJ1dGUoVGV4dEF0dHJpYnV0ZS5VTkRFUkxJTkUsIFRleHRBdHRyaWJ1dGUuVU5ERVJMSU5FX09OKTsKKworICAgICAgICBpZiAobWFwLnNpemUoKSAhPSAyKSB7CisgICAgICAgICAgICBlcnJsbigiTWFwIHNpemUgaXMgd3JvbmcuICBtYXA9IittYXApOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGVxdWFsTWFwcyhtYXAsb3RoZXJNYXApKSB7CisgICAgICAgICAgICBlcnJsbigiTWFwcyBzaG91bGQgbm90IGJlIGVxdWFsIik7CisgICAgICAgIH0KKworICAgICAgICBPYmplY3QgcG9zdHVyZSA9IG5ldyBGbG9hdCgwKTsKKyAgICAgICAgbWFwID0gbWFwLmFkZEF0dHJpYnV0ZShUZXh0QXR0cmlidXRlLlBPU1RVUkUsIHBvc3R1cmUpOworCisgICAgICAgIGlmIChtYXAuc2l6ZSgpICE9IDIpIHsKKyAgICAgICAgICAgIGVycmxuKCJNYXAgc2l6ZSBpcyB3cm9uZyIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFtYXAuZ2V0KFRleHRBdHRyaWJ1dGUuUE9TVFVSRSkuZXF1YWxzKHBvc3R1cmUpKSB7CisgICAgICAgICAgICBlcnJsbigiTWFwIGVsZW1lbnQgaXMgd3JvbmciKTsKKyAgICAgICAgfQorCisgICAgICAgIG1hcCA9IG1hcC5yZW1vdmVBdHRyaWJ1dGUoVGV4dEF0dHJpYnV0ZS5VTkRFUkxJTkUpOworCisgICAgICAgIGlmIChtYXAuc2l6ZSgpICE9IDEpIHsKKyAgICAgICAgICAgIGVycmxuKCJNYXAgc2l6ZSBpcyB3cm9uZyIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1hcC5nZXQoVGV4dEF0dHJpYnV0ZS5VTkRFUkxJTkUpICE9IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJNYXAgc2hvdWxkIG5vdCBoYXZlIGVsZW1lbnQiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIG1hcCBoYXMgUE9TVFVSRV9SRUdVTEFSLiAgSWYgd2UgYWRkQXR0cmlidXRlcyBhIG1hcCB3aXRoCisgICAgICAgIC8vIFBPU1RVUkVfSVRBTElDIHRoZSBuZXcgbWFwIHNob3VsZCBoYXZlIFBPU1RVUkVfSVRBTElDCisKKyAgICAgICAgbWFwID0gbWFwLmFkZEF0dHJpYnV0ZXMobmV3IEF0dHJpYnV0ZU1hcChUZXh0QXR0cmlidXRlLlBPU1RVUkUsIFRleHRBdHRyaWJ1dGUuUE9TVFVSRV9PQkxJUVVFKSk7CisgICAgICAgIGlmIChtYXAuZ2V0KFRleHRBdHRyaWJ1dGUuUE9TVFVSRSkgIT0gVGV4dEF0dHJpYnV0ZS5QT1NUVVJFX09CTElRVUUpIHsKKyAgICAgICAgICAgIGVycmxuKCJNYXAgZWxlbWVudCBpcyB3cm9uZyIpOworICAgICAgICB9CisKKyAgICAgICAgX3Rlc3RNb2RpZmllcnMobWFwKTsKKyAgICAgICAgX3Rlc3RWaWV3cyhtYXApOworCisgICAgICAgIEVudW1lcmF0aW9uIG1hcEl0ZXIgPSBtYXBzLmVsZW1lbnRzKCk7CisgICAgICAgIHdoaWxlIChtYXBJdGVyLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgdGVzdE1hcCA9IChBdHRyaWJ1dGVNYXApIG1hcEl0ZXIubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgIE9iamVjdCBuZXdWYWx1ZSA9IG5ldyBPYmplY3QoKTsKKyAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBuZXdNYXAgPSB0ZXN0TWFwLmFkZEF0dHJpYnV0ZShhdHRyaWJ1dGVzWzBdLCBuZXdWYWx1ZSk7CisgICAgICAgICAgICBpZiAobmV3TWFwLmdldChhdHRyaWJ1dGVzWzBdKSAhPSBuZXdWYWx1ZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCBleHBlY3RlZCB2YWx1ZSBiYWNrLiAgbWFwPSIgKyBtYXApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvdW5pdC9UZXN0QXR0cmlidXRlU2V0LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvVGVzdEF0dHJpYnV0ZVNldC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQwOTVmYjcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvVGVzdEF0dHJpYnV0ZVNldC5qYXZhCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IFRlc3RBdHRyaWJ1dGVTZXQuamF2YSx2ICQgJFJldmlzaW9uOiAxLjMgJCAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNjo0MCAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRlc3QudW5pdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZVNldDsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CisKK3B1YmxpYyBjbGFzcyBUZXN0QXR0cmlidXRlU2V0IGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAgICAgICAgICAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICBuZXcgVGVzdEF0dHJpYnV0ZVNldCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0KCkgeworCisgICAgICAgIGZpbmFsIE9iamVjdCBlbGVtMSA9IG5ldyBPYmplY3QoKTsKKyAgICAgICAgZmluYWwgT2JqZWN0IGVsZW0yID0gbmV3IEZsb2F0KDQpOworICAgICAgICBmaW5hbCBPYmplY3QgZWxlbTMgPSAiU3RyaW5nIjsKKyAgICAgICAgZmluYWwgT2JqZWN0IGVsZW00ID0gQm9vbGVhbi5GQUxTRTsKKworICAgICAgICBBdHRyaWJ1dGVTZXQgc2V0MSA9IG5ldyBBdHRyaWJ1dGVTZXQobmV3IE9iamVjdFtdIHtlbGVtMSwgZWxlbTIsIGVsZW0zfSk7CisgICAgICAgIGlmIChzZXQxLnNpemUoKSAhPSAzKSB7CisgICAgICAgICAgICBlcnJsbigiU2l6ZSBpcyB3cm9uZy4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzZXQxLmNvbnRhaW5zKGVsZW00KSl7CisgICAgICAgICAgICBlcnJsbigiU2V0IGNvbnRlbnRzIGFyZSB3cm9uZy4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghc2V0MS5jb250YWlucyhlbGVtMSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJTZXQgY29udGVudHMgYXJlIHdyb25nLiIpOworICAgICAgICB9CisKKyAgICAgICAgQXR0cmlidXRlU2V0IHNldDIgPSBuZXcgQXR0cmlidXRlU2V0KGVsZW00KTsKKworICAgICAgICBpZiAoc2V0Mi5zaXplKCkgIT0gMSkgeworICAgICAgICAgICAgZXJybG4oIlNpemUgaXMgd3JvbmcuIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIXNldDIuY29udGFpbnMoZWxlbTQpKXsKKyAgICAgICAgICAgIGVycmxuKCJTZXQgY29udGVudHMgYXJlIHdyb25nLiIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHNldDIuY29udGFpbnMoZWxlbTEpKSB7CisgICAgICAgICAgICBlcnJsbigiU2V0IGNvbnRlbnRzIGFyZSB3cm9uZy4iKTsKKyAgICAgICAgfQorCisgICAgICAgIEVudW1lcmF0aW9uIGl0ZXIgPSBzZXQyLmVsZW1lbnRzKCk7CisgICAgICAgIGlmICghaXRlci5uZXh0RWxlbWVudCgpLmVxdWFscyhlbGVtNCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJJbnZhbGlkIG9iamVjdCBpbiBpdGVyYXRvci4iKTsKKyAgICAgICAgfQorCisgICAgICAgIEF0dHJpYnV0ZVNldCB1bmlvbiA9IHNldDIudW5pb25XaXRoKHNldDEpOworICAgICAgICBpZiAoIXNldDEudW5pb25XaXRoKHNldDIpLmVxdWFscyh1bmlvbikpIHsKKyAgICAgICAgICAgIGVycmxuKCJ1bmlvbldpdGggaXMgbm90IGNvbW11dGF0aXZlLiIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCF1bmlvbi5jb250YWlucyhlbGVtMSkgfHwgIXVuaW9uLmNvbnRhaW5zKGVsZW00KSkgeworICAgICAgICAgICAgZXJybG4oIlNldCBjb250ZW50cyBhcmUgd3JvbmcuIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIXNldDEuYWRkRWxlbWVudChlbGVtNCkuZXF1YWxzKHVuaW9uKSkgeworICAgICAgICAgICAgZXJybG4oImFkZEVsZW1lbnQgaXMgd3JvbmcuIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIXVuaW9uLmludGVyc2VjdFdpdGgoc2V0MSkuZXF1YWxzKHNldDEpKSB7CisgICAgICAgICAgICBlcnJsbigiaW50ZXJzZWN0V2l0aCBpcyB3cm9uZy4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghdW5pb24uc3VidHJhY3Qoc2V0MSkuZXF1YWxzKHNldDIpKSB7CisgICAgICAgICAgICBlcnJsbigic3VidHJhY3QgaXMgd3JvbmcuIik7CisgICAgICAgIH0KKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC91bml0L1Rlc3RGb3JtYXR0ZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvdW5pdC9UZXN0Rm9ybWF0dGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjUyMDIxMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvdW5pdC9UZXN0Rm9ybWF0dGVyLmphdmEKQEAgLTAsMCArMSwyNTAgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IFRlc3RGb3JtYXR0ZXIuamF2YSx2ICQgJFJldmlzaW9uOiAxLjMgJCAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNjo0MCAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRlc3QudW5pdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLlRleHRBdHRyaWJ1dGU7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1UZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdGFuZGFyZFRhYlJ1bGVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZWRUZXh0OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0Zm9ybWF0LlRleHRPZmZzZXQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0Zm9ybWF0Lk1Gb3JtYXR0ZXI7CisKK2ltcG9ydCBqYXZhLmF3dC5Db2xvcjsKK2ltcG9ydCBqYXZhLmF3dC5GcmFtZTsKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczsKK2ltcG9ydCBqYXZhLmF3dC5JbWFnZTsKK2ltcG9ydCBqYXZhLmF3dC5Qb2ludDsKK2ltcG9ydCBqYXZhLmF3dC5SZWN0YW5nbGU7CitpbXBvcnQgamF2YS5hd3QuVG9vbGtpdDsKK2ltcG9ydCBqYXZhLmF3dC5pbWFnZS5CdWZmZXJlZEltYWdlOworCitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKKworcHVibGljIGZpbmFsIGNsYXNzIFRlc3RGb3JtYXR0ZXIgZXh0ZW5kcyBUZXN0Rm13ayB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIG5ldyBUZXN0Rm9ybWF0dGVyKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFBvaW50IE9SSUdJTiA9IG5ldyBQb2ludCgwLCAwKTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEF0dHJpYnV0ZU1hcCBERUZBVUxUUzsKKyAgICBzdGF0aWMgeworICAgICAgICBmaW5hbCBGbG9hdCBmbG9hdFplcm8gPSBuZXcgRmxvYXQoMC4wZik7CisKKyAgICAgICAgSGFzaHRhYmxlIGRlZmF1bHRzID0gbmV3IEhhc2h0YWJsZSgpOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5GQU1JTFksICJTZXJpZiIpOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5XRUlHSFQsIG5ldyBGbG9hdCgxLjBmKSk7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLlBPU1RVUkUsIGZsb2F0WmVybyk7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLlNJWkUsIG5ldyBGbG9hdCgxOC4wZikpOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5TVVBFUlNDUklQVCwgbmV3IEludGVnZXIoMCkpOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5GT1JFR1JPVU5ELCBDb2xvci5ibGFjayk7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLlVOREVSTElORSwgbmV3IEludGVnZXIoLTEpKTsKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuU1RSSUtFVEhST1VHSCwgQm9vbGVhbi5GQUxTRSk7CisKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuRVhUUkFfTElORV9TUEFDSU5HLCBmbG9hdFplcm8pOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5GSVJTVF9MSU5FX0lOREVOVCwgZmxvYXRaZXJvKTsKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuTUlOX0xJTkVfU1BBQ0lORywgZmxvYXRaZXJvKTsKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuTElORV9GTFVTSCwgVGV4dEF0dHJpYnV0ZS5GTFVTSF9MRUFESU5HKTsKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuTEVBRElOR19NQVJHSU4sIGZsb2F0WmVybyk7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLlRSQUlMSU5HX01BUkdJTiwgZmxvYXRaZXJvKTsKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuVEFCX1JVTEVSLCBuZXcgU3RhbmRhcmRUYWJSdWxlcigpKTsKKworICAgICAgICBERUZBVUxUUyA9IG5ldyBBdHRyaWJ1dGVNYXAoZGVmYXVsdHMpOworICAgIH0KKyAgICAKKyAgICAvLyBhcmcgdG8gdGVzdExpbmVFeGNlcHRpb25zCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVOS05PV04gPSAtMTsKKworICAgIHByaXZhdGUgR3JhcGhpY3MgZkdyYXBoaWNzOworCisgICAgcHVibGljIFRlc3RGb3JtYXR0ZXIoKSB7CisKKyAgICAgICAgZkdyYXBoaWNzID0gbmV3IEJ1ZmZlcmVkSW1hZ2UoMTAwLCAxMDAsIEJ1ZmZlcmVkSW1hZ2UuVFlQRV8zQllURV9CR1IpLmdldEdyYXBoaWNzKCk7CisgICAgICAgIAorICAgICAgICAvL0pESyAxLjE6CisgICAgICAgIC8vRnJhbWUgZiA9IG5ldyBGcmFtZSgpOworICAgICAgICAvL2Yuc2hvdygpOworICAgICAgICAvL2ZHcmFwaGljcyA9IGYuZ2V0R3JhcGhpY3MoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIFN0cmluZyBmaXZlTGluZXMgPSAiYVxuYlxuY1xuZFxuZSI7CisgICAgcHJpdmF0ZSBTdHJpbmcgdHdlbHZlTGluZXMgPSBmaXZlTGluZXMgKyAiXG4iICsgZml2ZUxpbmVzICsgIlxuZlxuIjsKKyAgICBBdHRyaWJ1dGVNYXAgUExBSU4gPSBBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUDsKKworICAgIHB1YmxpYyB2b2lkIHRlc3QoKSB7CisKKyAgICAgICAgTUNvbnN0VGV4dCB0ZXh0ID0gbmV3IFN0eWxlZFRleHQoZml2ZUxpbmVzLCBQTEFJTik7CisgICAgICAgIF90ZXN0TGluZUV4Y2VwdGlvbnMobWFrZUZvcm1hdHRlcih0ZXh0LCAxMDAsIHRydWUpLCA1KTsKKyAgICAgICAgX3Rlc3RMaW5lQWNjZXNzKG1ha2VGb3JtYXR0ZXIodGV4dCwgMTAwLCB0cnVlKSwgNSk7CisKKyAgICAgICAgdGV4dCA9IG5ldyBTdHlsZWRUZXh0KHR3ZWx2ZUxpbmVzLCBQTEFJTik7CisgICAgICAgIF90ZXN0TGluZUV4Y2VwdGlvbnMobWFrZUZvcm1hdHRlcih0ZXh0LCAzLCBmYWxzZSksIDEyKTsKKyAgICAgICAgX3Rlc3RMaW5lQWNjZXNzKG1ha2VGb3JtYXR0ZXIodGV4dCwgMTAwLCB0cnVlKSwgMTIpOworCisgICAgICAgIF90ZXN0V2l0aE1vZGlmaWNhdGlvbigpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBfdGVzdFdpdGhNb2RpZmljYXRpb24oKSB7CisKKyAgICAgICAgTVRleHQgdGV4dCA9IG5ldyBTdHlsZWRUZXh0KGZpdmVMaW5lcywgUExBSU4pOworICAgICAgICBNRm9ybWF0dGVyIGZvcm1hdHRlciA9IG1ha2VGb3JtYXR0ZXIodGV4dCwgMTAwLCB0cnVlKTsKKyAgICAgICAgUmVjdGFuZ2xlIHZpZXdSZWN0ID0gbmV3IFJlY3RhbmdsZSgwLCAwLCAxMDAsIEludGVnZXIuTUFYX1ZBTFVFKTsKKworICAgICAgICBmb3JtYXR0ZXIuc3RvcEJhY2tncm91bmRGb3JtYXR0aW5nKCk7CisgICAgICAgIHRleHQuYXBwZW5kKG5ldyBTdHlsZWRUZXh0KCJcbiIsIFBMQUlOKSk7CisgICAgICAgIGZvcm1hdHRlci51cGRhdGVGb3JtYXQodGV4dC5sZW5ndGgoKS0xLCAxLCB2aWV3UmVjdCwgT1JJR0lOKTsKKworICAgICAgICBfdGVzdExpbmVBY2Nlc3MoZm9ybWF0dGVyLCA2KTsKKworICAgICAgICBmb3JtYXR0ZXIuc3RvcEJhY2tncm91bmRGb3JtYXR0aW5nKCk7CisgICAgICAgIHRleHQuYXBwZW5kKG5ldyBTdHlsZWRUZXh0KCJhZCIsIFBMQUlOKSk7CisgICAgICAgIGZvcm1hdHRlci51cGRhdGVGb3JtYXQodGV4dC5sZW5ndGgoKS0yLCAyLCB2aWV3UmVjdCwgT1JJR0lOKTsKKyAgICAgICAgX3Rlc3RMaW5lQWNjZXNzKGZvcm1hdHRlciwgNik7CisgICAgICAgIF90ZXN0TGluZUV4Y2VwdGlvbnMoZm9ybWF0dGVyLCA2KTsKKworICAgICAgICBmb3JtYXR0ZXIuc3RvcEJhY2tncm91bmRGb3JtYXR0aW5nKCk7CisgICAgICAgIHRleHQucmVtb3ZlKDAsIDEpOworICAgICAgICBmb3JtYXR0ZXIudXBkYXRlRm9ybWF0KDAsIDAsIHZpZXdSZWN0LCBPUklHSU4pOworICAgICAgICBfdGVzdExpbmVBY2Nlc3MoZm9ybWF0dGVyLCA2KTsKKyAgICAgICAgX3Rlc3RMaW5lRXhjZXB0aW9ucyhmb3JtYXR0ZXIsIDYpOworICAgIH0KKworCisgICAgcHJpdmF0ZSBNRm9ybWF0dGVyIG1ha2VGb3JtYXR0ZXIoTUNvbnN0VGV4dCB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB3cmFwKSB7CisKKyAgICAgICAgcmV0dXJuIE1Gb3JtYXR0ZXIuY3JlYXRlRm9ybWF0dGVyKHRleHQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREVGQVVMVFMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cmFwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkdyYXBoaWNzKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgX3Rlc3RMaW5lRXhjZXB0aW9ucyhNRm9ybWF0dGVyIGZvcm1hdHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBudW1MaW5lcykgeworCisgICAgICAgIGlmIChudW1MaW5lcyA9PSBVTktOT1dOKSB7CisgICAgICAgICAgICBudW1MaW5lcyA9IGZvcm1hdHRlci5nZXRMaW5lQ291bnQoKTsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gY2F1Z2h0ID0gZmFsc2U7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZvcm1hdHRlci5saW5lUmFuZ2VMb3cobnVtTGluZXMpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBjYXVnaHQgPSB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFjYXVnaHQpIHsKKyAgICAgICAgICAgIGVycmxuKCJEaWRuJ3QgZ2V0IGV4Y2VwdGlvbiIpOworICAgICAgICB9CisgICAgICAgIGNhdWdodCA9IGZhbHNlOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmb3JtYXR0ZXIubGluZVJhbmdlTGltaXQobnVtTGluZXMpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBjYXVnaHQgPSB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFjYXVnaHQpIHsKKyAgICAgICAgICAgIGVycmxuKCJEaWRuJ3QgZ2V0IGV4Y2VwdGlvbiIpOworICAgICAgICB9CisgICAgICAgIGNhdWdodCA9IGZhbHNlOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmb3JtYXR0ZXIubGluZUdyYXBoaWNTdGFydChudW1MaW5lcysxKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgY2F1Z2h0ID0gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghY2F1Z2h0KSB7CisgICAgICAgICAgICBlcnJsbigiRGlkbid0IGdldCBleGNlcHRpb24iKTsKKyAgICAgICAgfQorICAgICAgICBjYXVnaHQgPSBmYWxzZTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgX3Rlc3RMaW5lQWNjZXNzKE1Gb3JtYXR0ZXIgZm9ybWF0dGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG51bUxpbmVzKSB7CisKKyAgICAgICAgaWYgKG51bUxpbmVzID09IFVOS05PV04pIHsKKyAgICAgICAgICAgIG51bUxpbmVzID0gZm9ybWF0dGVyLmdldExpbmVDb3VudCgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZvcm1hdHRlci5saW5lR3JhcGhpY1N0YXJ0KDApICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJMaW5lIDAgZG9lc24ndCBzdGFydCBhdCBoZWlnaHQgMCIpOworICAgICAgICB9CisgICAgICAgIGlmIChmb3JtYXR0ZXIubGluZVJhbmdlTG93KDApICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJMaW5lIDAgZG9lc24ndCBzdGFydCBhdCBjaGFyYWN0ZXIgMCIpOworICAgICAgICB9CisKKyAgICAgICAgaW50IGxhc3RMaW1pdCA9IGZvcm1hdHRlci5saW5lUmFuZ2VMaW1pdCgwKTsKKyAgICAgICAgZmluYWwgaW50IGxpbmVCb3VuZCA9IGZvcm1hdHRlci5saW5lQm91bmQoKTsKKyAgICAgICAgaW50W10gaGl0WCA9IG5ldyBpbnRbXSB7IC0xLCAxLCBsaW5lQm91bmQgKyAyIH07CisKKyAgICAgICAgVGV4dE9mZnNldCBvZmZzZXQgPSBuZXcgVGV4dE9mZnNldCgpOworCisgICAgICAgIGZvciAoaW50IGk9MTsgaSA8IG51bUxpbmVzOyBpKyspIHsKKworICAgICAgICAgICAgaW50IGhlaWdodCA9IGZvcm1hdHRlci5saW5lR3JhcGhpY1N0YXJ0KGkpOworICAgICAgICAgICAgaWYgKGxhc3RMaW1pdCAhPSBmb3JtYXR0ZXIubGluZVJhbmdlTG93KGkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImxhc3RMaW5lIGxpbWl0IGlzIG5vdCBjdXJyZW50IGxpbmUgc3RhcnQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBsaW1pdCA9IGZvcm1hdHRlci5saW5lUmFuZ2VMaW1pdChpKTsKKworICAgICAgICAgICAgaWYgKGxpbWl0IDwgbGFzdExpbWl0IHx8IChsaW1pdCA9PSBsYXN0TGltaXQgJiYgaSAhPSBudW1MaW5lcy0xKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJsaW5lIGhhcyBuZWdhdGl2ZSBvciAwIGxlbmd0aCIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbnQgbmV4dEhlaWdodCA9IGZvcm1hdHRlci5saW5lR3JhcGhpY1N0YXJ0KGkrMSk7CisgICAgICAgICAgICBpZiAobmV4dEhlaWdodCA8PSBoZWlnaHQpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiMC1oZWlnaHQgbGluZSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IGluY0Ftb3VudCA9IE1hdGgubWF4KChuZXh0SGVpZ2h0LWhlaWdodCkvNCwgMSk7CisgICAgICAgICAgICBmb3IgKGludCBoaXRZID0gaGVpZ2h0OyBoaXRZIDwgbmV4dEhlaWdodDsgaGl0WSArPSBpbmNBbW91bnQpIHsKKworICAgICAgICAgICAgICAgIGlmIChmb3JtYXR0ZXIubGluZUF0SGVpZ2h0KGhpdFkpICE9IGkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oImxpbmVBdEhlaWdodCBpcyB3cm9uZyIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGZvciAoaW50IGo9MDsgaiA8IGhpdFgubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gZm9ybWF0dGVyLnBvaW50VG9UZXh0T2Zmc2V0KG9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaXRYW2pdLCBoaXRZLCBPUklHSU4sIG51bGwsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG9mZnNldC5mT2Zmc2V0IDwgbGFzdExpbWl0IHx8IG9mZnNldC5mT2Zmc2V0ID4gbGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJJbmNvbnNpc3RlbnQgb2Zmc2V0IGZyb20gcG9pbnRUb1RleHRPZmZzZXQiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvL2lmIChmb3JtYXR0ZXIubGluZUNvbnRhaW5pbmcob2Zmc2V0KSAhPSBpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vICAgIGludCBkZWJ1ZyA9IGZvcm1hdHRlci5saW5lQ29udGFpbmluZyhvZmZzZXQpOworICAgICAgICAgICAgICAgICAgICAvLyAgICBlcnJsbigibGluZUNvbnRhaW5pbmcgaXMgaW5jb3JyZWN0Iik7CisgICAgICAgICAgICAgICAgICAgIC8vfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbGFzdExpbWl0ID0gbGltaXQ7CisgICAgICAgIH0KKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC91bml0L1Rlc3RNVGV4dC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC91bml0L1Rlc3RNVGV4dC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU5MWJmZjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvVGVzdE1UZXh0LmphdmEKQEAgLTAsMCArMSw3MjEgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IFRlc3RNVGV4dC5qYXZhLHYgJCAkUmV2aXNpb246IDEuNCAkICREYXRlOiAyMDAyLzAyLzE2IDAzOjA2OjQwICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGVzdC51bml0OworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuVGV4dEF0dHJpYnV0ZTsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVkVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVNb2RpZmllcjsKKworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuUmFuZG9tOworCitpbXBvcnQgamF2YS5pby4qOworCitwdWJsaWMgY2xhc3MgVGVzdE1UZXh0IGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICBuZXcgVGVzdE1UZXh0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVEVTVF9JVEVSQVRJT05TID0gNTAwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1RZTEVfVEVTVF9JVEVSQVRJT05TID0gNTAwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIFJBTkRfU0VFRCA9IDU5ODQzNjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOT1RfSU5fTU9OS0VZX1RFU1QgPSAtNTAwMDsKKyAgICBwcml2YXRlIGludCB0ZXN0SXRlcmF0aW9uID0gTk9UX0lOX01PTktFWV9URVNUOworICAgIHByaXZhdGUgaW50IHRoZUNhc2UgPSBOT1RfSU5fTU9OS0VZX1RFU1Q7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgU3R5bGVNb2RpZmllciBjcmVhdGVNaW51c01vZGlmaWVyKGZpbmFsIE9iamVjdCBhdHRyKSB7CisgICAgICAgIHJldHVybiBuZXcgU3R5bGVNb2RpZmllcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgbW9kaWZ5U3R5bGUoQXR0cmlidXRlTWFwIHN0eWxlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0eWxlLnJlbW92ZUF0dHJpYnV0ZShhdHRyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0KCkgeworICAgIAorICAgICAgICBzaW1wbGVUZXN0KCk7CisgICAgICAgIHN0eWxlVGVzdCgpOworICAgICAgICBtb25rZXlUZXN0KHRydWUpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBzaW1wbGVUZXN0KCkgeworCisgICAgICAgIEF0dHJpYnV0ZU1hcCBib2xkU3R5bGUgPSBuZXcgQXR0cmlidXRlTWFwKFRleHRBdHRyaWJ1dGUuV0VJR0hULCBUZXh0QXR0cmlidXRlLldFSUdIVF9CT0xEKTsKKyAgICAgICAgQXR0cmlidXRlTWFwIGl0YWxpY1N0eWxlID0gbmV3IEF0dHJpYnV0ZU1hcChUZXh0QXR0cmlidXRlLlBPU1RVUkUsIFRleHRBdHRyaWJ1dGUuUE9TVFVSRV9PQkxJUVVFKTsKKworICAgICAgICBNQ29uc3RUZXh0IGFsbEJvbGQgPSBuZXcgU3R5bGVkVGV4dCgiYmJiYmIiLCBib2xkU3R5bGUpOworICAgICAgICBNQ29uc3RUZXh0IGFsbEl0YWxpYyA9IG5ldyBTdHlsZWRUZXh0KCJpaWkiLCBpdGFsaWNTdHlsZSk7CisgICAgICAgIE1Db25zdFRleHQgcGxhaW4gPSBuZXcgU3R5bGVkVGV4dCgicHBwcHBwIiwgQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVApOworCisgICAgICAgIHsKKyAgICAgICAgICAgIE1UZXh0IGJ1ZiA9IG5ldyBTdHlsZWRUZXh0KCk7CisgICAgICAgICAgICBpbnQgdHMgPSBidWYuZ2V0VGltZVN0YW1wKCk7CisgICAgICAgICAgICBidWYuYXBwZW5kKGFsbEJvbGQpOworICAgICAgICAgICAgYnVmLmFwcGVuZChhbGxJdGFsaWMpOworCisgICAgICAgICAgICBpZiAodHMgPT0gYnVmLmdldFRpbWVTdGFtcCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlRpbWUgc3RhbXAgbm90IGluY3JlbWVudGVkIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIHNob3VsZCBiZSBiYmJiYmlpaSBub3cKKworICAgICAgICAgICAgaWYgKGJ1Zi5sZW5ndGgoKSAhPSBhbGxCb2xkLmxlbmd0aCgpICsgYWxsSXRhbGljLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkxlbmd0aCBpcyB3cm9uZy4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgYnVmLmxlbmd0aCgpOyBpKyspIHsKKworICAgICAgICAgICAgICAgIGNoYXIgcmlnaHRDaGFyOworICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCByaWdodFN0eWxlOworCisgICAgICAgICAgICAgICAgaWYgKGkgPCBhbGxCb2xkLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHJpZ2h0Q2hhciA9IGFsbEJvbGQuYXQoMCk7CisgICAgICAgICAgICAgICAgICAgIHJpZ2h0U3R5bGUgPSBib2xkU3R5bGU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICByaWdodENoYXIgPSBhbGxJdGFsaWMuYXQoMCk7CisgICAgICAgICAgICAgICAgICAgIHJpZ2h0U3R5bGUgPSBpdGFsaWNTdHlsZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoYnVmLmF0KGkpICE9IHJpZ2h0Q2hhcikgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiQ2hhcmFjdGVyIGlzIHdyb25nLiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoIWJ1Zi5jaGFyYWN0ZXJTdHlsZUF0KGkpLmVxdWFscyhyaWdodFN0eWxlKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiU3R5bGUgaXMgd3JvbmcuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbnQgcG9zID0gMDsKKworICAgICAgICAgICAgaWYgKCFidWYuY2hhcmFjdGVyU3R5bGVBdChwb3MpLmVxdWFscyhib2xkU3R5bGUpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZpcnN0IHN0eWxlIGlzIHdyb25nLiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGJ1Zi5jaGFyYWN0ZXJTdHlsZUxpbWl0KHBvcykgIT0gYWxsQm9sZC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJSdW4gbGVuZ3RoIGlzIHdyb25nLiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwb3MgPSBhbGxCb2xkLmxlbmd0aCgpOworCisgICAgICAgICAgICBpZiAoIWJ1Zi5jaGFyYWN0ZXJTdHlsZUF0KHBvcykuZXF1YWxzKGl0YWxpY1N0eWxlKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJTZWNvbmQgc3R5bGUgaXMgd3JvbmcuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYnVmLmNoYXJhY3RlclN0eWxlTGltaXQocG9zKSAhPSBidWYubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiUnVuIGxlbmd0aCBpcyB3cm9uZy4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGJ1Zi5yZXNldERhbWFnZWRSYW5nZSgpOworICAgICAgICAgICAgICAgIGludCBvbGRMZW5ndGggPSBidWYubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgYnVmLnJlcGxhY2UoYnVmLmxlbmd0aCgpLCBidWYubGVuZ3RoKCksIGFsbEJvbGQsIDAsIGFsbEJvbGQubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIC8vIGJiYmJiaWlpYmJiYmIKKworICAgICAgICAgICAgICAgIGlmIChidWYuZGFtYWdlZFJhbmdlU3RhcnQoKSAhPSBvbGRMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkRhbWFnZWQgcmFuZ2Ugc3RhcnQgaXMgaW5jb3JyZWN0Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChidWYuZGFtYWdlZFJhbmdlTGltaXQoKSAhPSBidWYubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkRhbWFnZWQgcmFuZ2UgbGltaXQgaXMgaW5jb3JyZWN0Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbnQgc3RhcnQgPSBhbGxCb2xkLmxlbmd0aCgpOworICAgICAgICAgICAgaW50IGxpbWl0ID0gc3RhcnQgKyBhbGxJdGFsaWMubGVuZ3RoKCk7CisgICAgICAgICAgICBidWYucmVtb3ZlKHN0YXJ0LCBsaW1pdCk7CisgICAgICAgICAgICAvLyBiYmJiYmJiYmJiCisKKyAgICAgICAgICAgIGlmIChidWYubGVuZ3RoKCkgIT0gMiAqIGFsbEJvbGQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiVGV4dCBzaG91bGQgYmUgdHdpY2UgdGhlIGxlbmd0aCBvZiBib2xkIHRleHQuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHBvcyA9IGJ1Zi5sZW5ndGgoKSAvIDI7CisgICAgICAgICAgICBpZiAoYnVmLmNoYXJhY3RlclN0eWxlU3RhcnQocG9zKSAhPSAwIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmNoYXJhY3RlclN0eWxlTGltaXQocG9zKSAhPSBidWYubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiUnVuIHJhbmdlIGlzIHdyb25nLiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFidWYuY2hhcmFjdGVyU3R5bGVBdChwb3MpLmVxdWFscyhib2xkU3R5bGUpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlJ1biBzdHlsZSBpcyB3cm9uZy4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdHMgPSBidWYuZ2V0VGltZVN0YW1wKCk7CisgICAgICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciBjSXRlciA9IGJ1Zi5jcmVhdGVDaGFyYWN0ZXJJdGVyYXRvcigpOworICAgICAgICAgICAgZm9yIChjaGFyIGNoID0gY0l0ZXIuZmlyc3QoKTsgY2ggIT0gY0l0ZXIuRE9ORTsgY2ggPSBjSXRlci5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoY2ggIT0gYWxsQm9sZC5hdCgwKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiQ2hhcmFjdGVyIGlzIHdyb25nLiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHRzICE9IGJ1Zi5nZXRUaW1lU3RhbXAoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJUaW1lIHN0YW1wIHNob3VsZCBub3QgaGF2ZSBjaGFuZ2VkIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJ1Zi5yZXBsYWNlKDAsIDEsIHBsYWluLCAwLCBwbGFpbi5sZW5ndGgoKSk7CisKKyAgICAgICAgICAgIGlmICh0cyA9PSBidWYuZ2V0VGltZVN0YW1wKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiVGltZSBzdGFtcCBub3QgaW5jcmVtZW50ZWQiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gcHBwcHBwYmJiYmJiYmJiCisgICAgICAgICAgICBidWYucmVwbGFjZShwbGFpbi5sZW5ndGgoKSwgYnVmLmxlbmd0aCgpLCBhbGxJdGFsaWMsIDAsIGFsbEl0YWxpYy5sZW5ndGgoKSk7CisgICAgICAgICAgICAvLyBwcHBwcHBpaWkKKworICAgICAgICAgICAgaWYgKGJ1Zi5sZW5ndGgoKSAhPSBhbGxJdGFsaWMubGVuZ3RoKCkrcGxhaW4ubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiTGVuZ3RoIGlzIHdyb25nLiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwb3MgPSAwOworICAgICAgICAgICAgaWYgKGJ1Zi5jaGFyYWN0ZXJTdHlsZUxpbWl0KHBvcykgIT0gcGxhaW4ubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiUnVuIGxpbWl0IGlzIHdyb25nLiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwb3MgPSBwbGFpbi5sZW5ndGgoKTsKKyAgICAgICAgICAgIGlmIChidWYuY2hhcmFjdGVyU3R5bGVMaW1pdChwb3MpICE9IGJ1Zi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJSdW4gbGltaXQgaXMgd3JvbmcuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJ1Zi5yZXBsYWNlKHBsYWluLmxlbmd0aCgpLCBwbGFpbi5sZW5ndGgoKSwgYWxsQm9sZCwgMCwgYWxsQm9sZC5sZW5ndGgoKSk7CisgICAgICAgICAgICAvLyBwcHBwcHBiYmJiYmlpaQorCisgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgc3QgPSBidWYuY2hhcmFjdGVyU3R5bGVBdCgxKTsKKyAgICAgICAgICAgIGlmICghc3QuZXF1YWxzKEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJTdHlsZSBpcyB3cm9uZy4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChidWYuY2hhcmFjdGVyU3R5bGVTdGFydCgxKSAhPSAwIHx8IGJ1Zi5jaGFyYWN0ZXJTdHlsZUxpbWl0KDEpICE9IHBsYWluLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlN0eWxlIHN0YXJ0IGlzIHdyb25nLiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzdCA9IGJ1Zi5jaGFyYWN0ZXJTdHlsZUF0KGJ1Zi5sZW5ndGgoKSAtIDEpOworICAgICAgICAgICAgaWYgKCFzdC5lcXVhbHMoaXRhbGljU3R5bGUpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlN0eWxlIGlzIHdyb25nLiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGJ1Zi5jaGFyYWN0ZXJTdHlsZVN0YXJ0KGJ1Zi5sZW5ndGgoKSAtIDEpICE9IHBsYWluLmxlbmd0aCgpK2FsbEJvbGQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiU3R5bGUgc3RhcnQgaXMgd3JvbmcuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChidWYuY2hhcmFjdGVyU3R5bGVMaW1pdChidWYubGVuZ3RoKCkgLSAxKSAhPSBidWYubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiU3R5bGUgbGltaXQgaXMgd3JvbmcuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgcmFuZEludChSYW5kb20gcmFuZCwgaW50IGxpbWl0KSB7CisKKyAgICAgICAgcmV0dXJuIHJhbmRJbnQocmFuZCwgMCwgbGltaXQpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGludCByYW5kSW50KFJhbmRvbSByYW5kLCBpbnQgc3RhcnQsIGludCBsaW1pdCkgeworCisgICAgICAgIGlmIChzdGFydCA+IGxpbWl0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJSYW5nZSBsZW5ndGggaXMgbmVnYXRpdmUuIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoc3RhcnQgPT0gbGltaXQpIHsKKyAgICAgICAgICAgIHJldHVybiBzdGFydDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBzdGFydCArIChNYXRoLmFicyhyYW5kLm5leHRJbnQoKSklKGxpbWl0LXN0YXJ0KSkgOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHN0eWxlVGVzdCgpIHsKKworICAgICAgICBNVGV4dCB0ZXh0ID0gbmV3IFN0eWxlZFRleHQoIjAxMjM0NTY3ODkiLCBBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUCk7CisKKyAgICAgICAgQXR0cmlidXRlTWFwW10gc3R5bGVzID0gbmV3IEF0dHJpYnV0ZU1hcFt0ZXh0Lmxlbmd0aCgpXTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgc3R5bGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBzdHlsZXNbaV0gPSBBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUDsKKyAgICAgICAgfQorICAgICAgICBBdHRyaWJ1dGVNYXBbXSBvbGRTdHlsZXMgPSBuZXcgQXR0cmlidXRlTWFwW3N0eWxlcy5sZW5ndGhdOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHN0eWxlcywgMCwgb2xkU3R5bGVzLCAwLCBzdHlsZXMubGVuZ3RoKTsKKworICAgICAgICBBdHRyaWJ1dGVNYXAgYmlnU3R5bGUgPSBuZXcgQXR0cmlidXRlTWFwKFRleHRBdHRyaWJ1dGUuVU5ERVJMSU5FLCBUZXh0QXR0cmlidXRlLlVOREVSTElORV9PTikuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkQXR0cmlidXRlKFRleHRBdHRyaWJ1dGUuU0laRSwgbmV3IEZsb2F0KDIzLjBmKSk7CisKKyAgICAgICAgU3R5bGVNb2RpZmllcltdIG1vZGlmaWVycyA9IHsKKyAgICAgICAgICAgIFN0eWxlTW9kaWZpZXIuY3JlYXRlUmVwbGFjZU1vZGlmaWVyKG5ldyBBdHRyaWJ1dGVNYXAoVGV4dEF0dHJpYnV0ZS5XRUlHSFQsIFRleHRBdHRyaWJ1dGUuV0VJR0hUX0JPTEQpKSwKKyAgICAgICAgICAgIFN0eWxlTW9kaWZpZXIuY3JlYXRlQWRkTW9kaWZpZXIobmV3IEF0dHJpYnV0ZU1hcChUZXh0QXR0cmlidXRlLldFSUdIVCwgbmV3IEZsb2F0KDEuMGYpKSksCisgICAgICAgICAgICBjcmVhdGVNaW51c01vZGlmaWVyKFRleHRBdHRyaWJ1dGUuV0VJR0hUKSwKKworICAgICAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVBZGRNb2RpZmllcihuZXcgQXR0cmlidXRlTWFwKFRleHRBdHRyaWJ1dGUuUE9TVFVSRSwgbmV3IEZsb2F0KDAuMGYpKSksCisgICAgICAgICAgICBTdHlsZU1vZGlmaWVyLmNyZWF0ZVJlcGxhY2VNb2RpZmllcihuZXcgQXR0cmlidXRlTWFwKFRleHRBdHRyaWJ1dGUuUE9TVFVSRSwgVGV4dEF0dHJpYnV0ZS5QT1NUVVJFX09CTElRVUUpKSwKKyAgICAgICAgICAgIGNyZWF0ZU1pbnVzTW9kaWZpZXIoVGV4dEF0dHJpYnV0ZS5QT1NUVVJFKSwKKworICAgICAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVBZGRNb2RpZmllcihiaWdTdHlsZSksCisgICAgICAgICAgICBTdHlsZU1vZGlmaWVyLmNyZWF0ZVJlcGxhY2VNb2RpZmllcihiaWdTdHlsZSksCisgICAgICAgICAgICBjcmVhdGVNaW51c01vZGlmaWVyKGJpZ1N0eWxlLmdldEtleVNldCgpKQorICAgICAgICB9OworCisgICAgICAgIFJhbmRvbSByYW5kID0gbmV3IFJhbmRvbShSQU5EX1NFRUQpOworICAgICAgICBmaW5hbCBpbnQgc3RvcEF0ID0gNDsKKworICAgICAgICBmb3IgKGludCB0ZXN0SXRlcmF0aW9uPTA7IHRlc3RJdGVyYXRpb24gPCBTVFlMRV9URVNUX0lURVJBVElPTlMgKyAxOyB0ZXN0SXRlcmF0aW9uKyspIHsKKworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShzdHlsZXMsIDAsIG9sZFN0eWxlcywgMCwgc3R5bGVzLmxlbmd0aCk7CisKKyAgICAgICAgICAgIGludCBzdGFydGluZ0F0ID0gSW50ZWdlci5NQVhfVkFMVUU7CisgICAgICAgICAgICBpbnQgZW5kaW5nQXQgPSBJbnRlZ2VyLk1JTl9WQUxVRTsKKyAgICAgICAgICAgIGludCBvbGRUcyA9IHRleHQuZ2V0VGltZVN0YW1wKCk7CisKKyAgICAgICAgICAgIC8vIGhhY2sgd2F5IHRvIGRvIGFuIGludmFyaWFudCBjaGVjayBiZWZvcmUgc3RhcnRpbmcuLi4KKyAgICAgICAgICAgIGlmICh0ZXN0SXRlcmF0aW9uICE9IDApIHsKKyAgICAgICAgICAgICAgICAvLyBtb2RpZnkgc3R5bGVzCisgICAgICAgICAgICAgICAgdGV4dC5yZXNldERhbWFnZWRSYW5nZSgpOworICAgICAgICAgICAgICAgIHN0YXJ0aW5nQXQgPSByYW5kSW50KHJhbmQsIHN0eWxlcy5sZW5ndGgrMSk7CisgICAgICAgICAgICAgICAgZW5kaW5nQXQgPSByYW5kSW50KHJhbmQsIHN0YXJ0aW5nQXQsIHN0eWxlcy5sZW5ndGgrMSk7CisgICAgICAgICAgICAgICAgU3R5bGVNb2RpZmllciBtb2RpZmllciA9IG1vZGlmaWVyc1tyYW5kSW50KHJhbmQsIG1vZGlmaWVycy5sZW5ndGgpXTsKKworICAgICAgICAgICAgICAgIGlmICh0ZXN0SXRlcmF0aW9uID09IHN0b3BBdCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0SXRlcmF0aW9uID0gc3RvcEF0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0ZXh0Lm1vZGlmeUNoYXJhY3RlclN0eWxlcyhzdGFydGluZ0F0LCBlbmRpbmdBdCwgbW9kaWZpZXIpOworCisgICAgICAgICAgICAgICAgZm9yIChpbnQgaj1zdGFydGluZ0F0OyBqIDwgZW5kaW5nQXQ7IGorKykgeworICAgICAgICAgICAgICAgICAgICBzdHlsZXNbal0gPSBtb2RpZmllci5tb2RpZnlTdHlsZShzdHlsZXNbal0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gY2hlY2sgaW52YXJpYW50cworICAgICAgICAgICAgQXR0cmlidXRlTWFwIG9sZFN0eWxlID0gbnVsbDsKKyAgICAgICAgICAgIGludCB0ZXh0TGVuZ3RoID0gdGV4dC5sZW5ndGgoKTsKKyAgICAgICAgICAgIGZvciAoaW50IHJ1blN0YXJ0ID0gMDsgcnVuU3RhcnQgPCB0ZXh0TGVuZ3RoOykgeworCisgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwIGN1cnJlbnRTdHlsZSA9IHRleHQuY2hhcmFjdGVyU3R5bGVBdChydW5TdGFydCk7CisgICAgICAgICAgICAgICAgaW50IHJ1bkxpbWl0ID0gdGV4dC5jaGFyYWN0ZXJTdHlsZUxpbWl0KHJ1blN0YXJ0KTsKKyAgICAgICAgICAgICAgICBpZiAocnVuU3RhcnQgPj0gcnVuTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlJ1biBsZW5ndGggaXMgbm90IHBvc2l0aXZlIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChjdXJyZW50U3R5bGUuZXF1YWxzKG9sZFN0eWxlKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiU3R5bGVzIGRpZG4ndCBtZXJnZSIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGZvciAoaW50IHBvcz1ydW5TdGFydDsgcG9zIDwgcnVuTGltaXQ7IHBvcysrKSB7CisgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBjaGFyU3R5bGVBdFBvcyA9IHRleHQuY2hhcmFjdGVyU3R5bGVBdChwb3MpOworICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudFN0eWxlICE9IGNoYXJTdHlsZUF0UG9zKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiSXRlcmF0b3Igc3R5bGUgaXMgbm90IGVxdWFsIHRvIHRleHQgc3R5bGUgYXQgIiArIHBvcyArICIuIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwIGV4cGVjdGVkID0gc3R5bGVzW3Bvc107CisgICAgICAgICAgICAgICAgICAgIGlmICghY3VycmVudFN0eWxlLmVxdWFscyhleHBlY3RlZCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJJdGVyYXRvciBzdHlsZSBkb2Vzbid0IG1hdGNoIGV4cGVjdGVkIHN0eWxlIGF0ICIgKyBwb3MgKyAiLiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICghKHRleHQuY2hhcmFjdGVyU3R5bGVTdGFydChwb3MpID09IHJ1blN0YXJ0KSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICEodGV4dC5jaGFyYWN0ZXJTdHlsZUxpbWl0KHBvcykgPT0gcnVuTGltaXQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigic3R5bGUgcnVuIHN0YXJ0IC8gbGltaXQgaXMgbm90IGNvbnNpc3RlbnQiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBydW5TdGFydCA9IHJ1bkxpbWl0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHRleHRMZW5ndGggPiAwKSB7CisgICAgICAgICAgICAgICAgaWYgKHRleHQuY2hhcmFjdGVyU3R5bGVBdCh0ZXh0TGVuZ3RoKSAhPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQuY2hhcmFjdGVyU3R5bGVBdCh0ZXh0TGVuZ3RoLTEpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJDaGFyYWN0ZXIgc3R5bGVzIGF0IGVuZCBhcmVuJ3QgdGhlIHNhbWUiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGNoZWNrIGRhbWFnZWQgcmFuZ2U6CisgICAgICAgICAgICBpbnQgZGFtYWdlU3RhcnQgPSBJbnRlZ2VyLk1BWF9WQUxVRTsKKyAgICAgICAgICAgIGludCBkYW1hZ2VMaW1pdCA9IEludGVnZXIuTUlOX1ZBTFVFOworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgdGV4dExlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKCFzdHlsZXNbaV0uZXF1YWxzKG9sZFN0eWxlc1tpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZGFtYWdlU3RhcnQgPSBNYXRoLm1pbihpLCBkYW1hZ2VTdGFydCk7CisgICAgICAgICAgICAgICAgICAgIGRhbWFnZUxpbWl0ID0gTWF0aC5tYXgoaSsxLCBkYW1hZ2VMaW1pdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGRhbWFnZVN0YXJ0ICE9IHRleHQuZGFtYWdlZFJhbmdlU3RhcnQoKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbWFnZUxpbWl0ICE9IHRleHQuZGFtYWdlZFJhbmdlTGltaXQoKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJUZXN0IGl0ZXJhdGlvbjogIiArIHRlc3RJdGVyYXRpb24pOworICAgICAgICAgICAgICAgIGxvZ2xuKCJzdGFydGluZ0F0OiAiICsgc3RhcnRpbmdBdCArICI7ICBlbmRpbmdBdDogIiArIGVuZGluZ0F0KTsKKyAgICAgICAgICAgICAgICBsb2dsbigiZGFtYWdlU3RhcnQ6ICIgKyBkYW1hZ2VTdGFydCArICI7ICBkYW1hZ2VMaW1pdDogIiArIGRhbWFnZUxpbWl0KTsKKyAgICAgICAgICAgICAgICBsb2dsbigidGV4dC5yYW5nZVN0YXJ0OiAiICsgdGV4dC5kYW1hZ2VkUmFuZ2VTdGFydCgpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRleHQucmFuZ2VMaW1pdDogIiArIHRleHQuZGFtYWdlZFJhbmdlTGltaXQoKSk7CisgICAgICAgICAgICAgICAgZXJybG4oIkRhbWFnZSByYW5nZSBzdGFydCBvciBsaW1pdCBpcyBub3QgZXhwZWN0ZWQgdmFsdWUiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKChkYW1hZ2VMaW1pdCA9PSBJbnRlZ2VyLk1JTl9WQUxVRSkgIT0gKG9sZFRzID09IHRleHQuZ2V0VGltZVN0YW1wKCkpKSB7CisKKyAgICAgICAgICAgICAgICBlcnJsbigidGltZVN0YW1wIGlzIGluY29ycmVjdCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZXJyKFN0cmluZyBtZXNzYWdlKSB7CisgICAgCisgICAgICAgIGlmICh0ZXN0SXRlcmF0aW9uICE9IE5PVF9JTl9NT05LRVlfVEVTVCkgeworICAgICAgICAgICAgbWVzc2FnZSA9ICJ0ZXN0SXRlcmF0aW9uPSIrdGVzdEl0ZXJhdGlvbisiOyB0ZXN0Q2FzZT0iK3RoZUNhc2UrbWVzc2FnZTsKKyAgICAgICAgfQorICAgICAgICBzdXBlci5lcnIobWVzc2FnZSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogUGVyZm9ybSBhIHJhbmRvbSBzZXJpZXMgb2Ygb3BlcmF0aW9ucyBvbiBhbiBNVGV4dCBhbmQKKyAgICAqIGNoZWNrIHRoZSByZXN1bHQgb2YgZWFjaCBvcGVyYXRpb24gYWdhaW5zdCBhIHNldCBvZiBpbnZhcmlhbnRzLgorICAgICovCisgICAgcHVibGljIHZvaWQgbW9ua2V5VGVzdChib29sZWFuIHN0cmVhbWluZykgeworCisgICAgICAgIC8qCisgICAgICAgICAgICBZb3UgY2FuIGFkZCBhbnkgb3BlcmF0aW9uIHRvIHRoZSBzd2l0Y2ggc3RhdGVtZW50IHByb3ZpZGVkIGl0CisgICAgICAgICAgICBwcmVzZXJ2ZXMgdGhlIGZvbGxvd2luZyBpbnZhcmlhbnRzOgorICAgICAgICAgICAgLSBUaGUgU3RyaW5nIHBsYWluVGV4dCBjb250YWlucyB0aGUgc2FtZSB0ZXh0IGFzIHRoZSBTdHlsZWRTdHJpbmdCdWZmZXIuCisgICAgICAgICAgICAgIE9idmlvdXNseSwgZm9yIHRoZSB0ZXN0IHRvIGJlIG1lYW5pbmdmdWwgcGxhaW5UZXh0IG11c3QgYmUgY29tcHV0ZWQKKyAgICAgICAgICAgICAgaW5kZXBlbmRlbnRseSBvZiB0aGUgYnVmZmVyIChpZSBkb24ndCB3cml0ZTogIHBsYWluVGV4dCA9IGJ1Zi5nZXRTdHlsZWRTdHJpbmcoKS50b1N0cmluZygpKS4KKyAgICAgICAgICAgIC0gRXZlcnkgJ2InIGlzIGJvbGQsIGV2ZXJ5ICdpJyBpcyBpdGFsaWMsIGV2ZXJ5ICdwJyBpcyBwbGFpbiwgYW5kCisgICAgICAgICAgICAgIG5vIG90aGVyIGNoYXJhY3RlcnMgYXBwZWFyIGluIHRoZSB0ZXh0LgorICAgICAgICAqLworCisgICAgICAgIEF0dHJpYnV0ZU1hcCBib2xkQXR0cnMgPSBuZXcgQXR0cmlidXRlTWFwKFRleHRBdHRyaWJ1dGUuV0VJR0hULCBUZXh0QXR0cmlidXRlLldFSUdIVF9CT0xEKTsKKyAgICAgICAgQXR0cmlidXRlTWFwIGl0YWxpY0F0dHJzID0gbmV3IEF0dHJpYnV0ZU1hcChUZXh0QXR0cmlidXRlLlBPU1RVUkUsIFRleHRBdHRyaWJ1dGUuUE9TVFVSRV9PQkxJUVVFKTsKKyAgICAgICAgQXR0cmlidXRlTWFwIGVtcHR5QXR0cnMgPSBBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUDsKKworICAgICAgICBmaW5hbCBTdHJpbmcgYm9sZDFTdHJfZ2V0U3RyaW5nID0gImIiOworICAgICAgICBNQ29uc3RUZXh0IGJvbGQxU3RyID0gbmV3IFN0eWxlZFRleHQoYm9sZDFTdHJfZ2V0U3RyaW5nLCBib2xkQXR0cnMpOworCisgICAgICAgIGZpbmFsIFN0cmluZyBpdGFsaWMxU3RyX2dldFN0cmluZyA9ICJpIjsKKyAgICAgICAgTUNvbnN0VGV4dCBpdGFsaWMxU3RyID0gbmV3IFN0eWxlZFRleHQoaXRhbGljMVN0cl9nZXRTdHJpbmcsIGl0YWxpY0F0dHJzKTsKKworICAgICAgICBmaW5hbCBTdHJpbmcgcGxhaW4xU3RyX2dldFN0cmluZyA9ICJwIjsKKyAgICAgICAgTUNvbnN0VGV4dCBwbGFpbjFTdHIgPSBuZXcgU3R5bGVkVGV4dChwbGFpbjFTdHJfZ2V0U3RyaW5nLCBlbXB0eUF0dHJzKTsKKworICAgICAgICBTdHlsZWRUZXh0IHRlbXAgPSBuZXcgU3R5bGVkVGV4dCgpOworICAgICAgICB0ZW1wLmFwcGVuZChib2xkMVN0cik7CisgICAgICAgIHRlbXAuYXBwZW5kKGl0YWxpYzFTdHIpOworICAgICAgICBmaW5hbCBTdHJpbmcgYm9sZEl0YWxpY1N0cl9nZXRTdHJpbmcgPSBib2xkMVN0cl9nZXRTdHJpbmcuY29uY2F0KGl0YWxpYzFTdHJfZ2V0U3RyaW5nKTsKKyAgICAgICAgTUNvbnN0VGV4dCBib2xkSXRhbGljU3RyID0gdGVtcDsKKworICAgICAgICB0ZW1wID0gbmV3IFN0eWxlZFRleHQoKTsKKyAgICAgICAgdGVtcC5hcHBlbmQoYm9sZDFTdHIpOworICAgICAgICB0ZW1wLmFwcGVuZChib2xkMVN0cik7CisgICAgICAgIHRlbXAuYXBwZW5kKGJvbGQxU3RyKTsKKyAgICAgICAgZmluYWwgU3RyaW5nIGJvbGQzU3RyX2dldFN0cmluZyA9ICJiYmIiOworICAgICAgICBNQ29uc3RUZXh0IGJvbGQzU3RyID0gdGVtcDsKKworICAgICAgICBNVGV4dCBidWYgPSBuZXcgU3R5bGVkVGV4dCgpOworICAgICAgICBTdHJpbmcgcGxhaW5UZXh0ID0gbmV3IFN0cmluZygpOworICAgICAgICAvL2ludCB0ZXN0SXRlcmF0aW9uPTA7IC0gbm93IGluc3RhbmNlIHZhcmlhYmxlcyBzbyBlcnJsbiBjYW4gcmVwb3J0IGl0CisgICAgICAgIC8vaW50IHRoZUNhc2U9MDsKKworICAgICAgICBmaW5hbCBpbnQgTlVNX0NBU0VTID0gMTQ7CisgICAgICAgIGJvb2xlYW5bXSBjYXNlc0V4ZWN1dGVkID0gbmV3IGJvb2xlYW5bTlVNX0NBU0VTXTsKKyAgICAgICAgZmluYWwgaW50IHN0b3BBdCA9IC0xOworICAgICAgICBSYW5kb20gcmFuZCA9IG5ldyBSYW5kb20oUkFORF9TRUVEKTsKKworICAgICAgICBmaW5hbCBTdHJpbmcgQUxXQVlTX0RJRkZFUkVOVCA9ICJcdUZFRkYiOworCisgICAgICAgICAgICBmb3IgKHRlc3RJdGVyYXRpb249MDsgdGVzdEl0ZXJhdGlvbiA8IFRFU1RfSVRFUkFUSU9OUzsgdGVzdEl0ZXJhdGlvbisrKSB7CisKKyAgICAgICAgICAgICAgICB0aGVDYXNlID0gcmFuZEludChyYW5kLCBOVU1fQ0FTRVMpOworCisgICAgICAgICAgICAgICAgY2FzZXNFeGVjdXRlZFt0aGVDYXNlXSA9IHRydWU7CisKKyAgICAgICAgICAgICAgICBpZiAodGVzdEl0ZXJhdGlvbiA9PSBzdG9wQXQpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEl0ZXJhdGlvbiA9IHN0b3BBdDsgIC8vIENvbnZlbmllbnQgcGxhY2UgdG8gcHV0IGJyZWFrcG9pbnQKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpbnQgdGltZVN0YW1wID0gYnVmLmdldFRpbWVTdGFtcCgpOworICAgICAgICAgICAgICAgIFN0cmluZyBvbGRQbGFpblRleHQgPSBwbGFpblRleHQ7CisgICAgICAgICAgICAgICAgaWYgKG9sZFBsYWluVGV4dCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJvbGRQbGFpblRleHQgaXMgbnVsbCEiKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoZUNhc2UpIHsKKworICAgICAgICAgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjcmVhdGUgbmV3IHN0cmluZzsgcmVwbGFjZSBjaGFycyBhdCBzdGFydCB3aXRoIGRpZmZlcmVudCBzdHlsZQorICAgICAgICAgICAgICAgICAgICAgICAgYnVmID0gbmV3IFN0eWxlZFRleHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoYm9sZDNTdHIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLnJlcGxhY2UoMCwgMSwgaXRhbGljMVN0ciwgMCwgaXRhbGljMVN0ci5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYucmVwbGFjZSgwLCAwLCBpdGFsaWMxU3RyLCAwLCBpdGFsaWMxU3RyLmxlbmd0aCgpKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgcGxhaW5UZXh0ID0gYm9sZDNTdHJfZ2V0U3RyaW5nLnN1YnN0cmluZygxLCBib2xkM1N0ci5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBwbGFpblRleHQgPSBpdGFsaWMxU3RyX2dldFN0cmluZy5jb25jYXQocGxhaW5UZXh0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBsYWluVGV4dCA9IGl0YWxpYzFTdHJfZ2V0U3RyaW5nLmNvbmNhdChwbGFpblRleHQpOworICAgICAgICAgICAgICAgICAgICAgICAgb2xkUGxhaW5UZXh0ID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRlbGV0ZSB0aGUgbGFzdCBjaGFyYWN0ZXIgZnJvbSB0aGUgc3RyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYnVmLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYucmVwbGFjZSgwLCAwLCBpdGFsaWMxU3RyLCAwLCBpdGFsaWMxU3RyLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFpblRleHQgPSBpdGFsaWMxU3RyX2dldFN0cmluZzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRQbGFpblRleHQgPSBBTFdBWVNfRElGRkVSRU5UOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnVmLnJlbW92ZShidWYubGVuZ3RoKCktMSwgYnVmLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBsYWluVGV4dCA9IHBsYWluVGV4dC5zdWJzdHJpbmcoMCwgcGxhaW5UZXh0Lmxlbmd0aCgpLTEpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVwbGFjZSBzb21lIG9mIHRoZSBidWZmZXIgd2l0aCBib2xkSXRhbGljU3RyCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgclN0YXJ0ID0gcmFuZEludChyYW5kLCBidWYubGVuZ3RoKCkrMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgclN0b3AgPSByYW5kSW50KHJhbmQsIHJTdGFydCwgYnVmLmxlbmd0aCgpKzEpOworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLnJlcGxhY2UoclN0YXJ0LCByU3RvcCwgYm9sZEl0YWxpY1N0cik7CisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG5ld1N0cmluZyA9IChyU3RhcnQ+MCk/IHBsYWluVGV4dC5zdWJzdHJpbmcoMCwgclN0YXJ0KSA6IG5ldyBTdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTdHJpbmcgPSBuZXdTdHJpbmcuY29uY2F0KGJvbGRJdGFsaWNTdHJfZ2V0U3RyaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoclN0b3AgPCBwbGFpblRleHQubGVuZ3RoKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1N0cmluZyA9IG5ld1N0cmluZy5jb25jYXQocGxhaW5UZXh0LnN1YnN0cmluZyhyU3RvcCwgcGxhaW5UZXh0Lmxlbmd0aCgpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkUGxhaW5UZXh0ID0gQUxXQVlTX0RJRkZFUkVOVDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFpblRleHQgPSBuZXdTdHJpbmc7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXBlYXRlZGx5IGluc2VydCBzdHJpbmdzIGludG8gdGhlIGNlbnRlciBvZiB0aGUgYnVmZmVyCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGluc1BvcyA9IGJ1Zi5sZW5ndGgoKSAvIDI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHByZWZpeCA9IHBsYWluVGV4dC5zdWJzdHJpbmcoMCwgaW5zUG9zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgc3VmZml4ID0gcGxhaW5UZXh0LnN1YnN0cmluZyhpbnNQb3MsIHBsYWluVGV4dC5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG1pZGRsZSA9IG5ldyBTdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpaT0wOyBpaTw0OyBpaSsrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1Db25zdFRleHQgd2hpY2ggPSAoaWklMj09MCk/IGJvbGRJdGFsaWNTdHIgOiBib2xkM1N0cjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHdoaWNoU3RyaW5nID0gKGlpJTI9PTApPyBib2xkSXRhbGljU3RyX2dldFN0cmluZyA6IGJvbGQzU3RyX2dldFN0cmluZzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRlbXBQb3MgPSBpbnNQb3MrbWlkZGxlLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYuaW5zZXJ0KHRlbXBQb3MsIHdoaWNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlkZGxlID0gbWlkZGxlLmNvbmNhdCh3aGljaFN0cmluZyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWluVGV4dCA9IHByZWZpeC5jb25jYXQobWlkZGxlKS5jb25jYXQoc3VmZml4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRQbGFpblRleHQgPSBBTFdBWVNfRElGRkVSRU5UOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAgICAgICAgICAvLyBpbnNlcnQgYm9sZDFTdHIgYXQgZW5kCisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGJvbGQxU3RyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBsYWluVGV4dCA9IHBsYWluVGV4dC5jb25jYXQoYm9sZDFTdHJfZ2V0U3RyaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGNhc2UgNToKKyAgICAgICAgICAgICAgICAgICAgLy8gZGVsZXRlIGEgY2hhcmFjdGVyIGZyb20gdGhlIHN0cmluZworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJ1Zi5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVsUG9zID0gcmFuZEludChyYW5kLCBidWYubGVuZ3RoKCktMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLnJlbW92ZShkZWxQb3MsIGRlbFBvcysxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFpblRleHQgPSBwbGFpblRleHQuc3Vic3RyaW5nKDAsIGRlbFBvcykuY29uY2F0KHBsYWluVGV4dC5zdWJzdHJpbmcoZGVsUG9zKzEpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5yZXBsYWNlKDAsIDAsIHBsYWluMVN0ciwgMCwgcGxhaW4xU3RyLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFpblRleHQgPSBwbGFpbjFTdHJfZ2V0U3RyaW5nOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSA2OgorICAgICAgICAgICAgICAgICAgICAvLyByZXBsYWNlIHRoZSBjb250ZW50cyBvZiB0aGUgYnVmZmVyIChleGNlcHQgdGhlIGZpcnN0IGNoYXJhY3Rlcikgd2l0aCBpdHNlbGYKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQgPSBidWYubGVuZ3RoKCkgPiAxPyAxIDogMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYucmVwbGFjZShzdGFydCwgYnVmLmxlbmd0aCgpLCBidWYpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWluVGV4dCA9IHBsYWluVGV4dC5zdWJzdHJpbmcoMCwgc3RhcnQpLmNvbmNhdChwbGFpblRleHQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChidWYubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZFBsYWluVGV4dCA9IEFMV0FZU19ESUZGRVJFTlQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSA3OgorICAgICAgICAgICAgICAgICAgICAvLyBhcHBlbmQgdGhlIGNvbnRlbnRzIG9mIHRoZSBidWZmZXIgdG8gaXRzZWxmCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUNvbnN0VGV4dCBjb250ZW50ID0gYnVmOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5pbnNlcnQoYnVmLmxlbmd0aCgpLCBjb250ZW50KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFpblRleHQgPSBwbGFpblRleHQuY29uY2F0KHBsYWluVGV4dCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBjYXNlIDg6CisgICAgICAgICAgICAgICAgICAgIC8vIHJlcGxhY2UgdGhlIGJ1ZmZlciB3aXRoIGJvbGRJdGFsaWNTdHIrYm9sZDNTdHIKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBNVGV4dCByZXBsYWNlbWVudCA9IG5ldyBTdHlsZWRUZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZW1lbnQuYXBwZW5kKGJvbGRJdGFsaWNTdHIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50LmFwcGVuZChib2xkM1N0cik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLnJlcGxhY2UoMCwgYnVmLmxlbmd0aCgpLCByZXBsYWNlbWVudCwgMCwgcmVwbGFjZW1lbnQubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWluVGV4dCA9IGJvbGRJdGFsaWNTdHJfZ2V0U3RyaW5nLmNvbmNhdChib2xkM1N0cl9nZXRTdHJpbmcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZFBsYWluVGV4dCA9IEFMV0FZU19ESUZGRVJFTlQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBjYXNlIDk6CisgICAgICAgICAgICAgICAgICAgIC8vIGluc2VydCBib2xkMVN0ciBhdCBlbmQgLSBzYW1lIGFzIDQgYnV0IHVzZXMgZGlmZmVyZW50IEFQSQorICAgICAgICAgICAgICAgICAgICAgICAgYnVmLnJlcGxhY2UoYnVmLmxlbmd0aCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmxlbmd0aCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9sZDFTdHJfZ2V0U3RyaW5nLnRvQ2hhckFycmF5KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9sZDFTdHJfZ2V0U3RyaW5nLmxlbmd0aCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9sZEF0dHJzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBsYWluVGV4dCA9IHBsYWluVGV4dC5jb25jYXQoYm9sZDFTdHJfZ2V0U3RyaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGNhc2UgMTA6CisgICAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZSBhbGwKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5yZW1vdmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBsYWluVGV4dCA9ICIiOworICAgICAgICAgICAgICAgICAgICAgICAgb2xkUGxhaW5UZXh0ID0gQUxXQVlTX0RJRkZFUkVOVDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGNhc2UgMTE6CisgICAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZSBhbGwgLSBkaWZmZXJlbnQgd2F5CisgICAgICAgICAgICAgICAgICAgICAgICBidWYucmVtb3ZlKDAsIGJ1Zi5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBwbGFpblRleHQgPSAiIjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGNhc2UgMTI6CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbnNlcnQgJ2knIGF0IDNyZCBjaGFyYWN0ZXIgKG9yIGxhc3QsIGlmIGZld2VyIHRoYW4gMyBjaGFycykKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaW5zUG9zID0gTWF0aC5taW4oYnVmLmxlbmd0aCgpLCAzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYucmVwbGFjZShpbnNQb3MsIGluc1BvcywgJ2knLCBpdGFsaWNBdHRycyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhaW5UZXh0ID0gKHBsYWluVGV4dC5zdWJzdHJpbmcoMCwgaW5zUG9zKSkuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uY2F0KGl0YWxpYzFTdHJfZ2V0U3RyaW5nKS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25jYXQocGxhaW5UZXh0LnN1YnN0cmluZyhpbnNQb3MpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGNhc2UgMTM6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RyZWFtaW5nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhyb3dhYmxlIGVycm9yID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCeXRlQXJyYXlPdXRwdXRTdHJlYW0gYnl0ZXNPdXQgPSBuZXcgQnl0ZUFycmF5T3V0cHV0U3RyZWFtKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdE91dHB1dFN0cmVhbSBvYmpPdXQgPSBuZXcgT2JqZWN0T3V0cHV0U3RyZWFtKGJ5dGVzT3V0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqT3V0LndyaXRlT2JqZWN0KGJ1Zik7CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnl0ZUFycmF5SW5wdXRTdHJlYW0gYnl0ZXNJbiA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0oYnl0ZXNPdXQudG9CeXRlQXJyYXkoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdElucHV0U3RyZWFtIG9iakluID0gbmV3IE9iamVjdElucHV0U3RyZWFtKGJ5dGVzSW4pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYgPSAoTVRleHQpIG9iakluLnJlYWRPYmplY3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkUGxhaW5UZXh0ID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2goSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA9IGU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoKENsYXNzTm90Rm91bmRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA9IGU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnJvciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiU3RyZWFtaW5nIHByb2JsZW06ICIgKyBlcnJvcik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJJbnZhbGlkIGNhc2UuIik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGltZSBzdGFtcCBpZiBvbGRQbGFpblRleHQgIT0gbnVsbC4KKyAgICAgICAgICAgICAgICAvLyBUaW1lIHN0YW1wIHNob3VsZCBiZSBkaWZmZXJlbnQgaWZmCisgICAgICAgICAgICAgICAgLy8gb2xkUGxhaW5UZXh0ID09IHBsYWluVGV4dAorICAgICAgICAgICAgICAgIGlmIChvbGRQbGFpblRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoKHRpbWVTdGFtcD09YnVmLmdldFRpbWVTdGFtcCgpKSAhPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkUGxhaW5UZXh0LmVxdWFscyhwbGFpblRleHQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigicGxhaW5UZXh0IGhhc2hDb2RlOiAiICsgcGxhaW5UZXh0Lmhhc2hDb2RlKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIm9sZFBsYWluVGV4dCBoYXNoQ29kZTogIiArIG9sZFBsYWluVGV4dC5oYXNoQ29kZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJUaW1lIHN0YW1wIGlzIGluY29ycmVjdCIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gbm93IGNoZWNrIGludmFyaWFudHM6CisgICAgICAgICAgICAgICAgaWYgKHBsYWluVGV4dC5sZW5ndGgoKSAhPSBidWYubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkxlbmd0aHMgZG9uJ3QgbWF0Y2giKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqPTA7IGogPCBidWYubGVuZ3RoKCk7IGorKykgeworICAgICAgICAgICAgICAgICAgICBpZiAoYnVmLmF0KGopICE9IHBsYWluVGV4dC5jaGFyQXQoaikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJDaGFyYWN0ZXJzIGRvbid0IG1hdGNoLiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaW50IHN0YXJ0OworICAgICAgICAgICAgICAgIGZvciAoc3RhcnQgPSAwOyBzdGFydCA8IGJ1Zi5sZW5ndGgoKTspIHsKKworICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnQgIT0gYnVmLmNoYXJhY3RlclN0eWxlU3RhcnQoc3RhcnQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigic3R5bGUgc3RhcnQgaXMgd3JvbmciKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQgPSBidWYuY2hhcmFjdGVyU3R5bGVMaW1pdChzdGFydCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdGFydCA+PSBsaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oInN0YXJ0ID49IGxpbWl0Iik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2hhciBjdXJyZW50ID0gcGxhaW5UZXh0LmNoYXJBdChzdGFydCk7CisKKyAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwIGNvbXAgPSBudWxsOworICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudCA9PSAncCcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAgPSBlbXB0eUF0dHJzOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGN1cnJlbnQgPT0gJ2InKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb21wID0gYm9sZEF0dHJzOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGN1cnJlbnQgPT0gJ2knKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb21wID0gaXRhbGljQXR0cnM7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiQW4gaW52YWxpZCBjaGFyYWN0ZXIgc251Y2sgaW4hIik7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgc3RhcnRTdHlsZSA9IGJ1Zi5jaGFyYWN0ZXJTdHlsZUF0KHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjb21wLmVxdWFscyhzdGFydFN0eWxlKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIlN0eWxlIGlzIG5vdCBleHBlY3RlZCBzdHlsZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSBzdGFydDsgaiA8IGxpbWl0OyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwbGFpblRleHQuY2hhckF0KGopICE9IGN1cnJlbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiQ2hhcmFjdGVyIGRvZXNuJ3QgbWF0Y2ggc3R5bGUuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYnVmLmNoYXJhY3RlclN0eWxlQXQoaikgIT0gc3RhcnRTdHlsZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJJbmNvcnJlY3Qgc3R5bGUgaW4gcnVuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBpZiAobGltaXQgPCBidWYubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwbGFpblRleHQuY2hhckF0KGxpbWl0KSA9PSBjdXJyZW50KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIlN0eWxlIHJ1biBlbmRzIHRvbyBzb29uLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gbGltaXQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChzdGFydCAhPSBidWYubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkxhc3QgbGltaXQgaXMgbm90IGJ1ZmZlciBsZW5ndGguIik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gd29uJ3QgdHJ5IHRvIGNvbXB1dGUgYW5kIGNoZWNrIGRhbWFnZWQgcmFuZ2U7ICBob3dldmVyLAorICAgICAgICAgICAgICAgIC8vIGlmIG5vbmVtcHR5IGl0IHNob3VsZCBhbHdheXMgYmUgd2l0aGluIHRleHQKKyAgICAgICAgICAgICAgICBpbnQgZGFtYWdlU3RhcnQgPSBidWYuZGFtYWdlZFJhbmdlU3RhcnQoKTsKKyAgICAgICAgICAgICAgICBpbnQgZGFtYWdlTGltaXQgPSBidWYuZGFtYWdlZFJhbmdlTGltaXQoKTsKKyAgICAgICAgICAgICAgICBpZiAoZGFtYWdlU3RhcnQgPT0gSW50ZWdlci5NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGRhbWFnZUxpbWl0ICE9IEludGVnZXIuTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiSW52YWxpZCBlbXB0eSBpbnRlcnZhbCIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoZGFtYWdlU3RhcnQgPiBkYW1hZ2VMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkRhbWFnZSByYW5nZSBpbnZlcnRlZCIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChkYW1hZ2VTdGFydCA8IDAgfHwgZGFtYWdlTGltaXQgPiBidWYubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEYW1hZ2UgcmFuZ2UgZW5kcG9pbnQgb3V0IG9mIGJvdW5kcyIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgIHRlc3RJdGVyYXRpb24gPSBOT1RfSU5fTU9OS0VZX1RFU1Q7CisgICAgICAgIAorICAgICAgICBib29sZWFuIGFsbENhc2VzRXhlY3V0ZWQgPSB0cnVlOworICAgICAgICBmb3IgKGludCBpbmRleD0wOyBpbmRleCA8IE5VTV9DQVNFUzsgaW5kZXgrKykgeworICAgICAgICAgICAgYWxsQ2FzZXNFeGVjdXRlZCAmPSBjYXNlc0V4ZWN1dGVkW2luZGV4XTsKKyAgICAgICAgICAgIGlmIChjYXNlc0V4ZWN1dGVkW2luZGV4XSA9PSBmYWxzZSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJDYXNlICIgKyBpbmRleCArICIgbm90IGV4ZWN1dGVkLiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vaWYgKGFsbENhc2VzRXhlY3V0ZWQpIHsKKyAgICAgICAgLy8gICAgbG9nbG4oIkFsbCBjYXNlcyBleGVjdXRlZC4iKTsKKyAgICAgICAgLy99CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvdW5pdC9UZXN0TVRleHRTdHJlYW1pbmcuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvdW5pdC9UZXN0TVRleHRTdHJlYW1pbmcuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44OWJkZGJlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC91bml0L1Rlc3RNVGV4dFN0cmVhbWluZy5qYXZhCkBAIC0wLDAgKzEsMTYyIEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBUZXN0TVRleHRTdHJlYW1pbmcuamF2YSx2ICQgJFJldmlzaW9uOiAxLjMgJCAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNjo0MCAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRlc3QudW5pdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworCitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1UZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdGFuZGFyZFRhYlJ1bGVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZWRUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZU1vZGlmaWVyOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLlRleHRBdHRyaWJ1dGU7CisKK3B1YmxpYyBjbGFzcyBUZXN0TVRleHRTdHJlYW1pbmcgZXh0ZW5kcyBUZXN0Rm13ayB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgICAgICAgICAgICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIG5ldyBUZXN0TVRleHRTdHJlYW1pbmcoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIFRlc3RNVGV4dFN0cmVhbWluZygpIHsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0KCkgeworCisgICAgICAgIHNpbXBsZVRlc3QoKTsKKyAgICAgICAgYWxsQXR0cmlidXRlc1Rlc3QoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgc2ltcGxlVGVzdCgpIHsKKworICAgICAgICBBdHRyaWJ1dGVNYXAgc3R5bGUgPSBBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUDsKKyAgICAgICAgTVRleHQgdGV4dCA9IG5ldyBTdHlsZWRUZXh0KCJIZWxsbyB3b3JsZCEiLCBzdHlsZSk7CisKKyAgICAgICAgc3RyZWFtQW5kQ29tcGFyZSh0ZXh0KTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBUZXN0TW9kaWZpZXIgZXh0ZW5kcyBTdHlsZU1vZGlmaWVyIHsKKworICAgICAgICBwcml2YXRlIE9iamVjdCBmS2V5OworICAgICAgICBwcml2YXRlIE9iamVjdCBmVmFsdWU7CisKKyAgICAgICAgcHVibGljIEF0dHJpYnV0ZU1hcCBtb2RpZnlTdHlsZShBdHRyaWJ1dGVNYXAgc3R5bGUpIHsKKworICAgICAgICAgICAgcmV0dXJuIHN0eWxlLmFkZEF0dHJpYnV0ZShmS2V5LCBmVmFsdWUpOworICAgICAgICB9CisKKyAgICAgICAgVGVzdE1vZGlmaWVyKE9iamVjdCBrZXksIE9iamVjdCB2YWx1ZSkgeworCisgICAgICAgICAgICBmS2V5ID0ga2V5OworICAgICAgICAgICAgZlZhbHVlID0gdmFsdWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgYWxsQXR0cmlidXRlc1Rlc3QoKSB7CisKKyAgICAgICAgQXR0cmlidXRlTWFwIHN0eWxlID0gQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVA7CisgICAgICAgIE1UZXh0IHRleHQgPSBuZXcgU3R5bGVkVGV4dCgiSGVsbG8gd29ybGQhIiwgc3R5bGUpOworCisgICAgICAgIGludCBsZW5ndGggPSB0ZXh0Lmxlbmd0aCgpOworCisgICAgICAgIGZpbmFsIGJvb2xlYW4gQ0hBUkFDVEVSID0gdHJ1ZTsKKyAgICAgICAgZmluYWwgYm9vbGVhbiBQQVJBR1JBUEggPSBmYWxzZTsKKworICAgICAgICBhZGRTdHlsZSh0ZXh0LCAwLCBsZW5ndGgvMiwgVGV4dEF0dHJpYnV0ZS5GQU1JTFksICJUaW1lcyIsIENIQVJBQ1RFUik7CisgICAgICAgIGFkZFN0eWxlKHRleHQsIGxlbmd0aC8yLCBsZW5ndGgsIFRleHRBdHRyaWJ1dGUuV0VJR0hULCBUZXh0QXR0cmlidXRlLldFSUdIVF9CT0xELCBDSEFSQUNURVIpOworICAgICAgICBhZGRTdHlsZSh0ZXh0LCAwLCBsZW5ndGgvMiwgVGV4dEF0dHJpYnV0ZS5QT1NUVVJFLCBUZXh0QXR0cmlidXRlLlBPU1RVUkVfT0JMSVFVRSwgQ0hBUkFDVEVSKTsKKyAgICAgICAgYWRkU3R5bGUodGV4dCwgMCwgbGVuZ3RoLzIsIFRleHRBdHRyaWJ1dGUuU0laRSwgbmV3IEZsb2F0KDEzLjdmKSwgQ0hBUkFDVEVSKTsKKyAgICAgICAgYWRkU3R5bGUodGV4dCwgbGVuZ3RoLzIsIGxlbmd0aCwgVGV4dEF0dHJpYnV0ZS5TVVBFUlNDUklQVCwgVGV4dEF0dHJpYnV0ZS5TVVBFUlNDUklQVF9TVUIsIENIQVJBQ1RFUik7CisgICAgICAgIGFkZFN0eWxlKHRleHQsIDAsIGxlbmd0aC8yLCBUZXh0QXR0cmlidXRlLkZPUkVHUk9VTkQsIENvbG9yLmJsdWUsIENIQVJBQ1RFUik7CisgICAgICAgIGFkZFN0eWxlKHRleHQsIDAsIGxlbmd0aC8yLCBUZXh0QXR0cmlidXRlLkJBQ0tHUk9VTkQsIENvbG9yLnJlZCwgQ0hBUkFDVEVSKTsKKyAgICAgICAgYWRkU3R5bGUodGV4dCwgMCwgbGVuZ3RoLTEsIFRleHRBdHRyaWJ1dGUuU1RSSUtFVEhST1VHSCwgQm9vbGVhbi5UUlVFLCBDSEFSQUNURVIpOworCisgICAgICAgIGFkZFN0eWxlKHRleHQsIDAsIGxlbmd0aCwgVGV4dEF0dHJpYnV0ZS5FWFRSQV9MSU5FX1NQQUNJTkcsIG5ldyBGbG9hdCg0KSwgUEFSQUdSQVBIKTsKKyAgICAgICAgYWRkU3R5bGUodGV4dCwgMCwgbGVuZ3RoLCBUZXh0QXR0cmlidXRlLkZJUlNUX0xJTkVfSU5ERU5ULCBuZXcgRmxvYXQoNiksIFBBUkFHUkFQSCk7CisgICAgICAgIGFkZFN0eWxlKHRleHQsIDAsIGxlbmd0aCwgVGV4dEF0dHJpYnV0ZS5NSU5fTElORV9TUEFDSU5HLCBuZXcgRmxvYXQoNyksIFBBUkFHUkFQSCk7CisgICAgICAgIGFkZFN0eWxlKHRleHQsIDAsIGxlbmd0aCwgVGV4dEF0dHJpYnV0ZS5MSU5FX0ZMVVNILCBUZXh0QXR0cmlidXRlLkZMVVNIX1RSQUlMSU5HLCBQQVJBR1JBUEgpOworICAgICAgICBhZGRTdHlsZSh0ZXh0LCAwLCBsZW5ndGgsIFRleHRBdHRyaWJ1dGUuTEVBRElOR19NQVJHSU4sIG5ldyBGbG9hdCg5KSwgUEFSQUdSQVBIKTsKKyAgICAgICAgYWRkU3R5bGUodGV4dCwgMCwgbGVuZ3RoLCBUZXh0QXR0cmlidXRlLlRSQUlMSU5HX01BUkdJTiwgbmV3IEZsb2F0KDkpLCBQQVJBR1JBUEgpOworICAgICAgICBhZGRTdHlsZSh0ZXh0LCAwLCBsZW5ndGgsIFRleHRBdHRyaWJ1dGUuVEFCX1JVTEVSLCBuZXcgU3RhbmRhcmRUYWJSdWxlcigpLCBQQVJBR1JBUEgpOworCisgICAgICAgIHN0cmVhbUFuZENvbXBhcmUodGV4dCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBhZGRTdHlsZShNVGV4dCB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0IGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdCB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gY2hhcmFjdGVyKSB7CisKKyAgICAgICAgU3R5bGVNb2RpZmllciBtb2RpZmllciA9IG5ldyBUZXN0TW9kaWZpZXIoa2V5LCB2YWx1ZSk7CisKKyAgICAgICAgaWYgKGNoYXJhY3RlcikgeworICAgICAgICAgICAgdGV4dC5tb2RpZnlDaGFyYWN0ZXJTdHlsZXMoc3RhcnQsIGxpbWl0LCBtb2RpZmllcik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0ZXh0Lm1vZGlmeVBhcmFncmFwaFN0eWxlcyhzdGFydCwgbGltaXQsIG1vZGlmaWVyKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHN0cmVhbUFuZENvbXBhcmUoTVRleHQgdGV4dCkgeworCisgICAgICAgIFRocm93YWJsZSBlcnJvciA9IG51bGw7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEJ5dGVBcnJheU91dHB1dFN0cmVhbSBieXRlc091dCA9IG5ldyBCeXRlQXJyYXlPdXRwdXRTdHJlYW0oKTsKKyAgICAgICAgICAgIE9iamVjdE91dHB1dFN0cmVhbSBvYmpPdXQgPSBuZXcgT2JqZWN0T3V0cHV0U3RyZWFtKGJ5dGVzT3V0KTsKKyAgICAgICAgICAgIG9iak91dC53cml0ZU9iamVjdCh0ZXh0KTsKKworICAgICAgICAgICAgQnl0ZUFycmF5SW5wdXRTdHJlYW0gYnl0ZXNJbiA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKGJ5dGVzT3V0LnRvQnl0ZUFycmF5KCkpOworICAgICAgICAgICAgT2JqZWN0SW5wdXRTdHJlYW0gb2JqSW4gPSBuZXcgT2JqZWN0SW5wdXRTdHJlYW0oYnl0ZXNJbik7CisgICAgICAgICAgICBNVGV4dCBzdHJlYW1lZFRleHQgPSAoTVRleHQpIG9iakluLnJlYWRPYmplY3QoKTsKKyAgICAgICAgICAgIGlmICghaXNFcXVhbCh0ZXh0LCBzdHJlYW1lZFRleHQpKSB7CisgICAgICAgICAgICAgICAgaXNFcXVhbCh0ZXh0LCBzdHJlYW1lZFRleHQpOworICAgICAgICAgICAgICAgIGVycmxuKCJTdHJlYW1lZCB0ZXh0IGlzIG5vdCBlcXVhbCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisvKiAgICAgICAgY2F0Y2goT3B0aW9uYWxEYXRhRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycm9yID0gZTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChTdHJlYW1Db3JydXB0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJyb3IgPSBlOworICAgICAgICB9Ki8KKyAgICAgICAgY2F0Y2goSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJyb3IgPSBlOworICAgICAgICB9CisgICAgICAgIGNhdGNoKENsYXNzTm90Rm91bmRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJyb3IgPSBlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGVycm9yICE9IG51bGwpIHsKKyAgICAgICAgICAgIGVycm9yLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgZXJybG4oIlNlcmlhbGl6YXRpb24gZmFpbGVkLiIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzRXF1YWwoTVRleHQgbGhzLCBNVGV4dCByaHMpIHsKKworICAgICAgICByZXR1cm4gbGhzLmVxdWFscyhyaHMpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvVGVzdFBhcmFncmFwaFN0eWxlcy5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC91bml0L1Rlc3RQYXJhZ3JhcGhTdHlsZXMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yMzM1YjQxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC91bml0L1Rlc3RQYXJhZ3JhcGhTdHlsZXMuamF2YQpAQCAtMCwwICsxLDMzOSBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogVGVzdFBhcmFncmFwaFN0eWxlcy5qYXZhLHYgJCAkUmV2aXNpb246IDEuMyAkICREYXRlOiAyMDAyLzAyLzE2IDAzOjA2OjQxICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGVzdC51bml0OworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVkVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTVRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZU1vZGlmaWVyOworaW1wb3J0IGphdmEudXRpbC5SYW5kb207CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBUZXN0UGFyYWdyYXBoU3R5bGVzIGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAgICAgICAgICAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICBuZXcgVGVzdFBhcmFncmFwaFN0eWxlcygpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgUkFORF9TRUVEID0gMTIzNDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTlVNX1RFU1RTID0gMjUwMDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gaXNQYXJhZ3JhcGhCcmVhayhjaGFyIGMpIHsKKworICAgICAgICByZXR1cm4gYyA9PSdcdTIwMjknIHx8IGMgPT0gJ1xuJzsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBPYmplY3QgS0VZID0gIktFWSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgQXR0cmlidXRlTWFwIFBMQUlOID0gQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgQXR0cmlidXRlTWFwIEFfU1RZTEUgPSBuZXcgQXR0cmlidXRlTWFwKEtFWSwgbmV3IENoYXJhY3RlcignYScpKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHlsZU1vZGlmaWVyIEFfTU9EID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHlsZU1vZGlmaWVyLmNyZWF0ZVJlcGxhY2VNb2RpZmllcihBX1NUWUxFKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBBdHRyaWJ1dGVNYXAgQl9TVFlMRSA9IG5ldyBBdHRyaWJ1dGVNYXAoS0VZLCBuZXcgQ2hhcmFjdGVyKCdiJykpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0eWxlTW9kaWZpZXIgQl9NT0QgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0eWxlTW9kaWZpZXIuY3JlYXRlUmVwbGFjZU1vZGlmaWVyKEJfU1RZTEUpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEF0dHJpYnV0ZU1hcCBDX1NUWUxFID0gbmV3IEF0dHJpYnV0ZU1hcChLRVksIG5ldyBDaGFyYWN0ZXIoJ2MnKSk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3R5bGVNb2RpZmllciBDX01PRCA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVSZXBsYWNlTW9kaWZpZXIoQ19TVFlMRSk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgQXR0cmlidXRlTWFwIERfU1RZTEUgPSBuZXcgQXR0cmlidXRlTWFwKEtFWSwgbmV3IENoYXJhY3RlcignZCcpKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHlsZU1vZGlmaWVyIERfTU9EID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHlsZU1vZGlmaWVyLmNyZWF0ZVJlcGxhY2VNb2RpZmllcihEX1NUWUxFKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBBdHRyaWJ1dGVNYXAgRV9TVFlMRSA9IG5ldyBBdHRyaWJ1dGVNYXAoS0VZLCBuZXcgQ2hhcmFjdGVyKCdlJykpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0eWxlTW9kaWZpZXIgRV9NT0QgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0eWxlTW9kaWZpZXIuY3JlYXRlUmVwbGFjZU1vZGlmaWVyKEVfU1RZTEUpOworCisgICAgcHVibGljIHZvaWQgdGVzdCgpIHsKKworICAgICAgICBlYXN5VGVzdHMoKTsKKyAgICAgICAgcmFuZG9tVGVzdCgpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBlYXN5VGVzdHMoKSB7CisKKyAgICAgICAgTVRleHQgdGV4dCA9IG5ldyBTdHlsZWRUZXh0KCJhXG5iXG5jXG5kXG4iLCBQTEFJTik7CisgICAgICAgIHRleHQubW9kaWZ5UGFyYWdyYXBoU3R5bGVzKDAsIHRleHQubGVuZ3RoKCksIEFfTU9EKTsKKyAgICAgICAgdmVyaWZ5UGFyYWdyYXBoQ291bnQodGV4dCk7CisKKyAgICAgICAgTVRleHQgc3JjID0gbmV3IFN0eWxlZFRleHQoIlhYWFxuWVlZIiwgUExBSU4pOworICAgICAgICBzcmMubW9kaWZ5UGFyYWdyYXBoU3R5bGVzKDAsIHNyYy5sZW5ndGgoKSwgQl9NT0QpOworICAgICAgICB2ZXJpZnlQYXJhZ3JhcGhDb3VudChzcmMpOworCisgICAgICAgIE1UZXh0IHRlbXAgPSB0ZXh0LmV4dHJhY3RXcml0YWJsZSgwLCB0ZXh0Lmxlbmd0aCgpKTsKKyAgICAgICAgdGVtcC5hcHBlbmQoc3JjKTsKKyAgICAgICAgdmVyaWZ5UGFyYWdyYXBoQ291bnQodGVtcCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IHRleHQubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgaWYgKCF0ZW1wLnBhcmFncmFwaFN0eWxlQXQoaSkuZXF1YWxzKHRleHQucGFyYWdyYXBoU3R5bGVBdChpKSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiUGFyYWdyYXBoIHN0eWxlcyBhcmUgd3JvbmciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBzcmMubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgaWYgKCF0ZW1wLnBhcmFncmFwaFN0eWxlQXQoaSt0ZXh0Lmxlbmd0aCgpKS5lcXVhbHMoc3JjLnBhcmFncmFwaFN0eWxlQXQoaSkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlBhcmFncmFwaCBzdHlsZXMgYXJlIHdyb25nIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB0ZW1wID0gdGV4dC5leHRyYWN0V3JpdGFibGUoMCwgdGV4dC5sZW5ndGgoKSk7CisgICAgICAgIHRlbXAucmVwbGFjZSgwLCAxLCBzcmMsIDAsIHNyYy5sZW5ndGgoKSk7CisgICAgICAgIHZlcmlmeVBhcmFncmFwaENvdW50KHRlbXApOworICAgICAgICBpZiAodGVtcC5wYXJhZ3JhcGhMaW1pdCgwKSAhPSA0KSB7CisgICAgICAgICAgICBlcnJsbigiUGFyYWdyYXBoIGxpbWl0IGlzIHdyb25nIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCF0ZW1wLnBhcmFncmFwaFN0eWxlQXQoMCkuZXF1YWxzKEJfU1RZTEUpKSB7CisgICAgICAgICAgICBlcnJsbigiRmlyc3Qgc3R5bGUgaXMgd3JvbmciKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIXRlbXAucGFyYWdyYXBoU3R5bGVBdCg0KS5lcXVhbHMoQV9TVFlMRSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJTdHlsZSBhZnRlciBpbnNlcnQgaXMgd3JvbmciKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHRlc3QgYXBwZW5kCisgICAgICAgIE1Db25zdFRleHQgbmV3U3JjID0gc3JjLmV4dHJhY3QoNCwgNyk7CisgICAgICAgIE1UZXh0IGluaXRDID0gbmV3IFN0eWxlZFRleHQoImNjY2NjYyIsIFBMQUlOKTsKKyAgICAgICAgaW5pdEMubW9kaWZ5UGFyYWdyYXBoU3R5bGVzKDAsIGluaXRDLmxlbmd0aCgpLCBDX01PRCk7CisgICAgICAgIGluaXRDLmFwcGVuZChuZXdTcmMpOworICAgICAgICAvLyBub3cgaW5pdEMgc2hvdWxkIGJlIG9uZSBwYXJhZ3JhcGggd2l0aCBzdHlsZSBCCisgICAgICAgIGlmIChpbml0Qy5wYXJhZ3JhcGhMaW1pdCgwKSAhPSBpbml0Qy5sZW5ndGgoKSkgeworICAgICAgICAgICAgZXJybG4oIlNob3VsZCBvbmx5IGJlIG9uZSBwYXJhZ3JhcGgiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaW5pdEMucGFyYWdyYXBoU3R5bGVBdCgwKSAhPSBpbml0Qy5wYXJhZ3JhcGhTdHlsZUF0KGluaXRDLmxlbmd0aCgpKSkgeworICAgICAgICAgICAgZXJybG4oIlR3byBkaWZmZXJlbnQgcGFyYWdyYXBoIHN0eWxlcyIpOworICAgICAgICB9CisgICAgICAgIGlmICghaW5pdEMucGFyYWdyYXBoU3R5bGVBdChpbml0Qy5sZW5ndGgoKS8yKS5lcXVhbHMoQl9TVFlMRSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJJbmNvcnJlY3QgcGFyYWdyYXBoIHN0eWxlIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRleHQgPSBuZXcgU3R5bGVkVGV4dCgiYWFhXG4iLCBQTEFJTik7CisgICAgICAgIHRleHQubW9kaWZ5UGFyYWdyYXBoU3R5bGVzKDAsIHRleHQubGVuZ3RoKCksIEFfTU9EKTsKKyAgICAgICAgdGV4dC5tb2RpZnlQYXJhZ3JhcGhTdHlsZXModGV4dC5sZW5ndGgoKSwgdGV4dC5sZW5ndGgoKSwgQl9NT0QpOworICAgICAgICBpZiAodGV4dC5wYXJhZ3JhcGhTdHlsZUF0KHRleHQubGVuZ3RoKCkpICE9IEJfU1RZTEUpIHsKKyAgICAgICAgICAgIGVycmxuKCIwLWxlbmd0aCBwYXJhZ3JhcGggYXQgZW5kIGhhcyBpbmNvcnJlY3Qgc3R5bGUiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGludCByYW5kSW50KFJhbmRvbSByYW5kLCBpbnQgbGltaXQpIHsKKworICAgICAgICByZXR1cm4gcmFuZEludChyYW5kLCAwLCBsaW1pdCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IHJhbmRJbnQoUmFuZG9tIHJhbmQsIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisKKyAgICAgICAgaWYgKHN0YXJ0ID4gbGltaXQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlJhbmdlIGlzIDAtbGVuZ3RoLiIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHN0YXJ0ID09IGxpbWl0KSB7CisgICAgICAgICAgICByZXR1cm4gc3RhcnQ7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gc3RhcnQgKyAoTWF0aC5hYnMocmFuZC5uZXh0SW50KCkpJShsaW1pdC1zdGFydCkpIDsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcmFuZG9tVGVzdCgpIHsKKworICAgICAgICBNVGV4dCBub1BhcmFncmFwaCA9IG5ldyBTdHlsZWRUZXh0KCJ6enp6IiwgUExBSU4pOworICAgICAgICBub1BhcmFncmFwaC5tb2RpZnlQYXJhZ3JhcGhTdHlsZXMoMCwgbm9QYXJhZ3JhcGgubGVuZ3RoKCksIEFfTU9EKTsKKyAgICAgICAgTVRleHQgdHdvUGFyYWdyYXBocyA9IG5ldyBTdHlsZWRUZXh0KCJhYWFcbmJiYiIsIFBMQUlOKTsKKyAgICAgICAgdHdvUGFyYWdyYXBocy5tb2RpZnlQYXJhZ3JhcGhTdHlsZXMoMCwgdHdvUGFyYWdyYXBocy5wYXJhZ3JhcGhMaW1pdCgwKSwgQl9NT0QpOworICAgICAgICBNVGV4dCB0aHJlZVBhcmFncmFwaHMgPSBuZXcgU3R5bGVkVGV4dCgiY2NcbmRkXG5lZSIsIFBMQUlOKTsKKyAgICAgICAgdGhyZWVQYXJhZ3JhcGhzLm1vZGlmeVBhcmFncmFwaFN0eWxlcygwLCAzLCBDX01PRCk7CisgICAgICAgIHRocmVlUGFyYWdyYXBocy5tb2RpZnlQYXJhZ3JhcGhTdHlsZXMoMywgNiwgRF9NT0QpOworICAgICAgICB0aHJlZVBhcmFncmFwaHMubW9kaWZ5UGFyYWdyYXBoU3R5bGVzKDYsIDgsIEVfTU9EKTsKKyAgICAgICAgTVRleHQgdHJhaWxpbmdQMSA9IG5ldyBTdHlsZWRUZXh0KCJoaGhoXG4iLCBQTEFJTik7CisgICAgICAgIHRyYWlsaW5nUDEubW9kaWZ5UGFyYWdyYXBoU3R5bGVzKDAsIHRyYWlsaW5nUDEucGFyYWdyYXBoTGltaXQoMCksIENfTU9EKTsKKyAgICAgICAgTVRleHQgdHJhaWxpbmdQMiA9IG5ldyBTdHlsZWRUZXh0KCJpaWlcbiIsIFBMQUlOKTsKKyAgICAgICAgdHJhaWxpbmdQMi5tb2RpZnlQYXJhZ3JhcGhTdHlsZXMoMCwgMCwgRF9NT0QpOworICAgICAgICB0cmFpbGluZ1AyLm1vZGlmeVBhcmFncmFwaFN0eWxlcyh0cmFpbGluZ1AyLmxlbmd0aCgpLCB0cmFpbGluZ1AyLmxlbmd0aCgpLCBCX01PRCk7CisKKyAgICAgICAgaWYgKCF0cmFpbGluZ1AyLnBhcmFncmFwaFN0eWxlQXQodHJhaWxpbmdQMi5sZW5ndGgoKS0xKS5lcXVhbHMoRF9TVFlMRSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJTdHlsZSBpbmNvcnJlY3QgaW4gdHJhaWxpbmdQMiIpOworICAgICAgICB9CisgICAgICAgIGlmICghdHJhaWxpbmdQMi5wYXJhZ3JhcGhTdHlsZUF0KHRyYWlsaW5nUDIubGVuZ3RoKCkpLmVxdWFscyhCX1NUWUxFKSkgeworICAgICAgICAgICAgZXJybG4oIkVuZGluZyBzdHlsZSBpbmNvcnJlY3QgaW4gdHJhaWxpbmdQMiIpOworICAgICAgICB9CisKKyAgICAgICAgTUNvbnN0VGV4dFtdIHRlc3RzID0geyBub1BhcmFncmFwaCwgdHdvUGFyYWdyYXBocywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocmVlUGFyYWdyYXBocywgdHJhaWxpbmdQMSwgdHJhaWxpbmdQMiB9OworCisgICAgICAgIFJhbmRvbSByYW5kb20gPSBuZXcgUmFuZG9tKFJBTkRfU0VFRCk7CisKKyAgICAgICAgaW50IHN0b3BBdCA9IDQ2NTsKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZm9yIChpPTA7IGkgPCBOVU1fVEVTVFM7IGkrKykgeworCisgICAgICAgICAgICAgICAgaW50IHNyY0luZGV4ID0gcmFuZEludChyYW5kb20sIHRlc3RzLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgaW50IHRhcmdldEluZGV4ID0gcmFuZEludChyYW5kb20sIHRlc3RzLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgTVRleHQgdGFyZ2V0ID0gbmV3IFN0eWxlZFRleHQodGVzdHNbdGFyZ2V0SW5kZXhdKTsKKyAgICAgICAgICAgICAgICBNQ29uc3RUZXh0IHNyYyA9IHRlc3RzW3NyY0luZGV4XTsKKworICAgICAgICAgICAgICAgIGludCBzcmNTdGFydCA9IHJhbmRJbnQocmFuZG9tLCBzcmMubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIGludCBzcmNMaW1pdCA9IHJhbmRJbnQocmFuZG9tLCBzcmNTdGFydCwgc3JjLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICBpbnQgc3RhcnQgPSByYW5kSW50KHJhbmRvbSwgdGFyZ2V0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICBpbnQgbGltaXQgPSByYW5kSW50KHJhbmRvbSwgc3RhcnQsIHRhcmdldC5sZW5ndGgoKSk7CisKKyAgICAgICAgICAgICAgICBpZiAoaSA9PSBzdG9wQXQpIHsKKyAgICAgICAgICAgICAgICAgICAgc3RvcEF0ID0gaTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpbnNlcnRBbmRDaGVjayhzcmMsIHNyY1N0YXJ0LCBzcmNMaW1pdCwgdGFyZ2V0LCBzdGFydCwgbGltaXQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZpbmFsbHkgeworICAgICAgICAgICAgaWYgKGkgPCBOVU1fVEVTVFMpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiaXRlcmF0aW9uPSIgKyBpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBpbnNlcnRBbmRDaGVjayhNQ29uc3RUZXh0IHNyYywgaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1UZXh0IHRhcmdldCwgaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKworICAgICAgICAvLyBwLXN0eWxlIGFmdGVyIGluc2VydGlvbgorICAgICAgICBBdHRyaWJ1dGVNYXAgYWZ0ZXI7CisgICAgICAgIGlmIChsaW1pdCA9PSB0YXJnZXQubGVuZ3RoKCkgJiYgc3JjTGltaXQgPiBzcmNTdGFydCkgeworICAgICAgICAgICAgYWZ0ZXIgPSBzcmMucGFyYWdyYXBoU3R5bGVBdChzcmNMaW1pdCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBhZnRlciA9IHRhcmdldC5wYXJhZ3JhcGhTdHlsZUF0KGxpbWl0KTsKKyAgICAgICAgfQorCisgICAgICAgIEF0dHJpYnV0ZU1hcCBiZWZvcmU7CisgICAgICAgIGJvb2xlYW4gc3JjSGFzUEJyZWFrID0gZmFsc2U7CisgICAgICAgIGZvciAoaW50IGk9c3JjU3RhcnQ7IGkgPCBzcmNMaW1pdDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoaXNQYXJhZ3JhcGhCcmVhayhzcmMuYXQoaSkpKSB7CisgICAgICAgICAgICAgICAgc3JjSGFzUEJyZWFrID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChzdGFydCA+IDAgJiYgaXNQYXJhZ3JhcGhCcmVhayh0YXJnZXQuYXQoc3RhcnQtMSkpKSB7CisgICAgICAgICAgICBiZWZvcmUgPSB0YXJnZXQucGFyYWdyYXBoU3R5bGVBdChzdGFydC0xKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGJlZm9yZSA9IHNyY0hhc1BCcmVhaz8gc3JjLnBhcmFncmFwaFN0eWxlQXQoc3JjU3RhcnQpIDogYWZ0ZXI7CisgICAgICAgIH0KKyAgICAgICAgYm9vbGVhbiBzdHlsZVByb3BvZ2F0ZWQgPSAhYmVmb3JlLmVxdWFscyh0YXJnZXQucGFyYWdyYXBoU3R5bGVBdChNYXRoLm1heCgwLCBzdGFydC0xKSkpOworCisKKyAgICAgICAgdGFyZ2V0LnJlc2V0RGFtYWdlZFJhbmdlKCk7CisgICAgICAgIHRhcmdldC5yZXBsYWNlKHN0YXJ0LCBsaW1pdCwgc3JjLCBzcmNTdGFydCwgc3JjTGltaXQpOworICAgICAgICBmaW5hbCBpbnQgZGFtYWdlTGltaXQgPSAoc3RhcnQ9PWxpbWl0ICYmIHNyY1N0YXJ0PT1zcmNMaW1pdCk/CisgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLk1JTl9WQUxVRSA6IHN0YXJ0ICsgKHNyY0xpbWl0LXNyY1N0YXJ0KTsKKworICAgICAgICBpZiAodGFyZ2V0LmRhbWFnZWRSYW5nZUxpbWl0KCkgIT0gZGFtYWdlTGltaXQpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJsaW1pdDogIiArIGRhbWFnZUxpbWl0ICsgIjsgIHRhcmdldC5saW1pdDogIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5kYW1hZ2VkUmFuZ2VMaW1pdCgpKTsKKyAgICAgICAgICAgIGVycmxuKCJEYW1hZ2VkIHJhbmdlIGxpbWl0IGlzIGluY29ycmVjdCIpOworICAgICAgICB9CisKKyAgICAgICAgZmluYWwgaW50IGRhbWFnZVN0YXJ0ID0gKGRhbWFnZUxpbWl0PT1JbnRlZ2VyLk1JTl9WQUxVRSk/IEludGVnZXIuTUFYX1ZBTFVFIDoKKyAgICAgICAgICAgICAgICAoc3R5bGVQcm9wb2dhdGVkPyB0YXJnZXQucGFyYWdyYXBoU3RhcnQoTWF0aC5tYXgoMCwgc3RhcnQtMSkpIDogc3RhcnQpOworICAgICAgICBpZiAodGFyZ2V0LmRhbWFnZWRSYW5nZVN0YXJ0KCkgPiBkYW1hZ2VTdGFydCkgeworICAgICAgICAgICAgbG9nbG4oInN0YXJ0OiAiICsgZGFtYWdlU3RhcnQgKyAiOyAgdGFyZ2V0LnN0YXJ0OiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LmRhbWFnZWRSYW5nZVN0YXJ0KCkpOworICAgICAgICAgICAgZXJybG4oIkRhbWFnZWQgcmFuZ2Ugc3RhcnQgaXMgaW5jb3JyZWN0Iik7CisgICAgICAgIH0KKworICAgICAgICB2ZXJpZnlQYXJhZ3JhcGhDb3VudCh0YXJnZXQpOworCisgICAgICAgIC8vIGNoZWNrIGVuZHBvaW50cworICAgICAgICBpZiAoIWJlZm9yZS5lcXVhbHModGFyZ2V0LnBhcmFncmFwaFN0eWxlQXQoTWF0aC5tYXgoc3RhcnQtMSwgMCkpKSkgeworICAgICAgICAgICAgZXJybG4oIkluY29ycmVjdCBwYXJhZ3JhcGggc3R5bGUgYmVmb3JlIG1vZGlmaWVkIHJhbmdlIik7CisgICAgICAgIH0KKworICAgICAgICBpbnQgbGVuZ3RoRGVsdGEgPSAoc3JjTGltaXQtc3JjU3RhcnQpIC0gKGxpbWl0LXN0YXJ0KTsKKyAgICAgICAgaW50IGluZGV4QWZ0ZXJJbnNlcnQgPSBNYXRoLm1pbih0YXJnZXQubGVuZ3RoKCksIGxpbWl0ICsgbGVuZ3RoRGVsdGEpOworICAgICAgICBpZiAoIWFmdGVyLmVxdWFscyh0YXJnZXQucGFyYWdyYXBoU3R5bGVBdChpbmRleEFmdGVySW5zZXJ0KSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJJbmNvcnJlY3QgcGFyYWdyYXBoIHN0eWxlIGFmdGVyIG1vZGlmaWVkIHJhbmdlIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoc3JjSGFzUEJyZWFrKSB7CisgICAgICAgICAgICBpbnQgc3RhcnRQID0gdGFyZ2V0LnBhcmFncmFwaExpbWl0KHN0YXJ0KTsKKyAgICAgICAgICAgIGludCBsaW1pdE9mVGVzdCA9IHRhcmdldC5wYXJhZ3JhcGhTdGFydChpbmRleEFmdGVySW5zZXJ0KTsKKworICAgICAgICAgICAgaW50IG9mZnNldCA9IHN0YXJ0IC0gc3JjU3RhcnQ7CisKKyAgICAgICAgICAgIHdoaWxlIChzdGFydFAgPCBsaW1pdE9mVGVzdCkgeworICAgICAgICAgICAgICAgIGludCBsaW1pdFAgPSB0YXJnZXQucGFyYWdyYXBoTGltaXQoc3RhcnRQKTsKKyAgICAgICAgICAgICAgICBpZiAoc3JjLnBhcmFncmFwaExpbWl0KHN0YXJ0UC1vZmZzZXQpICsgb2Zmc2V0ICE9IGxpbWl0UCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigicGFyYWdyYXBoIGxpbWl0cyBhcmUgbm90IGNvbnNpc3RlbnQiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFzcmMucGFyYWdyYXBoU3R5bGVBdChzdGFydFAtb2Zmc2V0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmVxdWFscyh0YXJnZXQucGFyYWdyYXBoU3R5bGVBdChzdGFydFApKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigicGFyYWdyYXBoIHN0eWxlcyBhcmUgbm90IGNvbnNpc3RlbnQiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc3RhcnRQID0gbGltaXRQOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9yIChpbnQgaT1zdGFydDsgaSA8IHN0YXJ0KyhzcmNMaW1pdC1zcmNTdGFydCk7IGkrKykgeworICAgICAgICAgICAgICAgIGlmICghYWZ0ZXIuZXF1YWxzKHRhcmdldC5wYXJhZ3JhcGhTdHlsZUF0KGkpKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigicGFyYWdyYXBoIHN0eWxlIGNoYW5nZWQgdW5leHBlY3RlZGx5Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHZlcmlmeVBhcmFncmFwaENvdW50KE1Db25zdFRleHQgdGV4dCkgeworCisgICAgICAgIGludCBwQ291bnQgPSAwOworICAgICAgICBpbnQgdGV4dExlbmd0aCA9IHRleHQubGVuZ3RoKCk7CisKKyAgICAgICAgaWYgKHRleHRMZW5ndGggPT0gMCkgeworICAgICAgICAgICAgcENvdW50ID0gMTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZvciAoaW50IHM9MDsgcyA8IHRleHRMZW5ndGg7IHMgPSB0ZXh0LnBhcmFncmFwaExpbWl0KHMpKSB7CisgICAgICAgICAgICAgICAgcENvdW50Kys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaXNQYXJhZ3JhcGhCcmVhayh0ZXh0LmF0KHRleHRMZW5ndGgtMSkpKSB7CisgICAgICAgICAgICAgICAgcENvdW50Kys7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpbnQgc2VwQ291bnQgPSAwOworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCB0ZXh0TGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChpc1BhcmFncmFwaEJyZWFrKHRleHQuYXQoaSkpKSB7CisgICAgICAgICAgICAgICAgc2VwQ291bnQrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChzZXBDb3VudCArIDEgIT0gcENvdW50KSB7CisgICAgICAgICAgICBsb2dsbigic2VwQ291bnQ9IiArIHNlcENvdW50ICsgIjsgIHBDb3VudD0iICsgcENvdW50KTsKKyAgICAgICAgICAgIGVycmxuKCJQYXJhZ3JhcGggY291bnQgaXMgbm90IGNvbnNpc3RlbnQgd2l0aCBjaGFyYWN0ZXJzIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgY2hlY2tFbmRwb2ludChNQ29uc3RUZXh0IHRleHQpIHsKKworICAgICAgICBib29sZWFuIGVtcHR5RmluYWxQYXJhZ3JhcGg7CisgICAgICAgIGludCBsZW5ndGggPSB0ZXh0Lmxlbmd0aCgpOworCisgICAgICAgIGlmIChsZW5ndGggIT0gMCkgeworICAgICAgICAgICAgY2hhciBjaCA9IHRleHQuYXQobGVuZ3RoLTEpOworICAgICAgICAgICAgZW1wdHlGaW5hbFBhcmFncmFwaCA9IGlzUGFyYWdyYXBoQnJlYWsoY2gpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZW1wdHlGaW5hbFBhcmFncmFwaCA9IHRydWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAoKHRleHQucGFyYWdyYXBoU3RhcnQobGVuZ3RoKSA9PSBsZW5ndGgpICE9IGVtcHR5RmluYWxQYXJhZ3JhcGgpIHsKKyAgICAgICAgICAgIGVycmxuKCJGaW5hbCBwYXJhZ3JhcGggbGVuZ3RoIGlzIGluY29ycmVjdCIpOworICAgICAgICB9CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL0FwcENsb3Nlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGFwcHMvQXBwQ2xvc2VyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjNkN2E3ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL0FwcENsb3Nlci5qYXZhCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IEFwcENsb3Nlci5qYXZhLHYgJCAkUmV2aXNpb246IDEuMSAkICREYXRlOiAyMDAwLzA0LzIwIDE3OjQ4OjUxICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dGFwcHM7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dBZGFwdGVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50OworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworaW1wb3J0IGphdmEuYXd0LldpbmRvdzsKKworY2xhc3MgQXBwQ2xvc2VyIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBpbnQgZkNvdW50ID0gMDsKKworICAgIHByaXZhdGUgV2luZG93QWRhcHRlciBmQWRhcHRlciA9IG5ldyBXaW5kb3dBZGFwdGVyKCkgeworCisgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgZSkgeworICAgICAgICAgICAgLS1mQ291bnQ7CisgICAgICAgICAgICBpZiAoZkNvdW50ID09IDApIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXhpdCgwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFdpbmRvdyB3ID0gZS5nZXRXaW5kb3coKTsKKyAgICAgICAgICAgIHcuc2V0VmlzaWJsZShmYWxzZSk7CisgICAgICAgICAgICB3LmRpc3Bvc2UoKTsKKyAgICAgICAgfQorICAgIH07CisKKyAgICBwdWJsaWMgdm9pZCBsaXN0ZW5Ub0ZyYW1lKEZyYW1lIGZyYW1lKSB7CisKKyAgICAgICAgKytmQ291bnQ7CisgICAgICAgIGZyYW1lLmFkZFdpbmRvd0xpc3RlbmVyKGZBZGFwdGVyKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9CaWRpRGVtby5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGFwcHMvQmlkaURlbW8uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zOGJiOGVhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGFwcHMvQmlkaURlbW8uamF2YQpAQCAtMCwwICsxLDg4IEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBCaWRpRGVtby5qYXZhLHYgJCAkUmV2aXNpb246IDEuMiAkICREYXRlOiAyMDAyLzAyLzE2IDAzOjA2OjQxICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dGFwcHM7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVkVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5hd3R1aS5UZXh0RnJhbWU7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dBZGFwdGVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50OworaW1wb3J0IGphdmEuYXd0LlRvb2xraXQ7CisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS5uZXQuVVJMOworaW1wb3J0IGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKKworcHVibGljIGNsYXNzIEJpZGlEZW1vIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgQXBwQ2xvc2VyIGZnTGlzdGVuZXIgPSBuZXcgQXBwQ2xvc2VyKCk7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQlVORExFX05BTUUgPSAidGV4dGFwcHMucmVzb3VyY2VzLlNhbXBsZSI7CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworCisgICAgICAgIFN0cmluZyBkb2NOYW1lOworICAgICAgICAKKyAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID09IDApIHsKKyAgICAgICAgICAgIGRvY05hbWUgPSAiZGVmYXVsdCI7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBkb2NOYW1lID0gYXJnc1swXTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgb3BlblRleHQoZG9jTmFtZSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBvcGVuVGV4dChTdHJpbmcgZG9jTmFtZSkgeworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSBSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGUoQlVORExFX05BTUUpOworCisgICAgICAgICAgICBPYmplY3QgZG9jdW1lbnQgPSBidW5kbGUuZ2V0T2JqZWN0KGRvY05hbWUrIi5zYW1wbGUiKTsKKyAgICAgICAgICAgIE1Db25zdFRleHQgdGV4dDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGRvY3VtZW50IGluc3RhbmNlb2YgU3RyaW5nKSB7CisgICAgICAgICAgICAgICAgdGV4dCA9IG5ldyBTdHlsZWRUZXh0KChTdHJpbmcpZG9jdW1lbnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBVUkwgdXJsID0gKFVSTCkgZG9jdW1lbnQ7CisgICAgICAgICAgICAgICAgT2JqZWN0SW5wdXRTdHJlYW0gaW4gPSBuZXcgT2JqZWN0SW5wdXRTdHJlYW0odXJsLm9wZW5TdHJlYW0oKSk7CisgICAgICAgICAgICAgICAgdGV4dCA9IChNQ29uc3RUZXh0KSBpbi5yZWFkT2JqZWN0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBuYW1lID0gYnVuZGxlLmdldFN0cmluZyhkb2NOYW1lKyIubmFtZSIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBtYWtlRnJhbWUodGV4dCwgbmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goVGhyb3dhYmxlIHQpIHsKKyAgICAgICAgICAgIHQucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIG1ha2VGcmFtZShNQ29uc3RUZXh0IHRleHQsIFN0cmluZyB0aXRsZSkgeworCisgICAgICAgIFRleHRGcmFtZSBmcmFtZSA9IG5ldyBUZXh0RnJhbWUodGV4dCwgdGl0bGUsIAorICAgICAgICAgICAgICAgIFRvb2xraXQuZ2V0RGVmYXVsdFRvb2xraXQoKS5nZXRTeXN0ZW1DbGlwYm9hcmQoKSk7CisgICAgICAgIGZyYW1lLnNldFNpemUoNTUwLCA3MDApOworICAgICAgICBmcmFtZS5zaG93KCk7CisgICAgICAgIGZnTGlzdGVuZXIubGlzdGVuVG9GcmFtZShmcmFtZSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGFwcHMvRmlsZVV0aWxzLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9GaWxlVXRpbHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wZjc4YmU4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGFwcHMvRmlsZVV0aWxzLmphdmEKQEAgLTAsMCArMSwxMzAgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IEZpbGVVdGlscy5qYXZhLHYgJCAkUmV2aXNpb246IDEuMSAkICREYXRlOiAyMDAwLzA0LzIwIDE3OjQ4OjUxICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dGFwcHM7CisKK2ltcG9ydCBqYXZhLmF3dC5GaWxlRGlhbG9nOworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworaW1wb3J0IGphdmEuaW8uKjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NVGV4dDsKKworcHVibGljIGNsYXNzIEZpbGVVdGlscyB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIC8qKgorICAgICAqIFByZXNlbnQgdGhlIHVzZXIgd2l0aCBhIGZpbGUgZGlhbG9nLCBhbmQgcmVwbGFjZQorICAgICAqIGRlc3Qgd2l0aCB0aGUgTVRleHQgaW4gdGhlIHNlbGVjdGVkIGZpbGUsIGFuZCByZXR1cm4KKyAgICAgKiB0aGUgZmlsZSBvYmpjdC4gIElmIGFueSBlcnJvcnMgb2NjdXIsIHJldHVybiBudWxsIGFuZAorICAgICAqIGRvIG5vdCBtb2RpZnkgZGVzdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEZpbGUgdXNlckxvYWRNVGV4dChTdHJpbmcgdGl0bGUsIE1UZXh0IGRlc3QsIEZyYW1lIG93bmVyKSB7CisKKyAgICAgICAgRmlsZURpYWxvZyBkaWFsb2cgPSBuZXcgRmlsZURpYWxvZyhvd25lciwgdGl0bGUsIEZpbGVEaWFsb2cuTE9BRCk7CisgICAgICAgIGRpYWxvZy5zaG93KCk7CisgICAgICAgIFN0cmluZyBmaWxlU3RyID0gZGlhbG9nLmdldEZpbGUoKTsKKyAgICAgICAgU3RyaW5nIGRpclN0ciA9IGRpYWxvZy5nZXREaXJlY3RvcnkoKTsKKworICAgICAgICBpZiAoZmlsZVN0ciAhPSBudWxsKSB7CisgICAgICAgICAgICBGaWxlIHJ2YWwgPSBuZXcgRmlsZShkaXJTdHIsIGZpbGVTdHIpOworICAgICAgICAgICAgTUNvbnN0VGV4dCBzcmMgPSBsb2FkTVRleHQocnZhbCk7CisgICAgICAgICAgICBpZiAoc3JjICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBkZXN0LnJlcGxhY2VBbGwoc3JjKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcnZhbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgTVRleHQgc2VyaWFsaXplZCBpbiB0aGUgZ2l2ZW4gZmlsZS4KKyAgICAgKiBJbiBjYXNlIG9mIGFuIGVycm9yIHJldHVybiBudWxsLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTUNvbnN0VGV4dCBsb2FkTVRleHQoRmlsZSBmaWxlKSB7CisKKyAgICAgICAgVGhyb3dhYmxlIGVycm9yOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBGaWxlSW5wdXRTdHJlYW0gaW5TdHJlYW0gPSBuZXcgRmlsZUlucHV0U3RyZWFtKGZpbGUpOworICAgICAgICAgICAgT2JqZWN0SW5wdXRTdHJlYW0gb2JqU3RyZWFtID0gbmV3IE9iamVjdElucHV0U3RyZWFtKGluU3RyZWFtKTsKKworICAgICAgICAgICAgTUNvbnN0VGV4dCB0ZXh0ID0gKE1Db25zdFRleHQpIG9ialN0cmVhbS5yZWFkT2JqZWN0KCk7CisgICAgICAgICAgICBpblN0cmVhbS5jbG9zZSgpOworICAgICAgICAgICAgcmV0dXJuIHRleHQ7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJyb3IgPSBlOworICAgICAgICB9CisgICAgICAgIGNhdGNoKENsYXNzTm90Rm91bmRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJyb3IgPSBlOworICAgICAgICB9CisgICAgICAgIGNhdGNoKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJvciA9IGU7CisgICAgICAgIH0KKworICAgICAgICBlcnJvci5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJvbXB0IHRoZSB1c2VyIGZvciB0aGUgZmlsZSBpZiBmaWxlIGlzIG51bGwuICBUaGVuIHNhdmUgdGhlCisgICAgICogdGV4dCBpbiB0aGUgZmlsZSwgaWYgYW55LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgRmlsZSB1c2VyU2F2ZU1UZXh0KEZpbGUgZmlsZSwgU3RyaW5nIHRpdGxlLCBNQ29uc3RUZXh0IHRleHQsIEZyYW1lIG93bmVyKSB7CisKKyAgICAgICAgaWYgKGZpbGUgPT0gbnVsbCkgeworCisgICAgICAgICAgICBGaWxlRGlhbG9nIGRpYWxvZyA9IG5ldyBGaWxlRGlhbG9nKG93bmVyLCB0aXRsZSwgRmlsZURpYWxvZy5TQVZFKTsKKyAgICAgICAgICAgIGRpYWxvZy5zaG93KCk7CisgICAgICAgICAgICBTdHJpbmcgZmlsZVN0ciA9IGRpYWxvZy5nZXRGaWxlKCk7CisgICAgICAgICAgICBTdHJpbmcgZGlyU3RyID0gZGlhbG9nLmdldERpcmVjdG9yeSgpOworCisgICAgICAgICAgICBpZiAoZmlsZVN0ciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgZmlsZSA9IG5ldyBGaWxlKGRpclN0ciwgZmlsZVN0cik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoZmlsZSAhPSBudWxsKSB7CisKKyAgICAgICAgICAgIHNhdmVNVGV4dChmaWxlLCB0ZXh0KTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmaWxlOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBzYXZlTVRleHQoRmlsZSBmaWxlLCBNQ29uc3RUZXh0IHRleHQpIHsKKworICAgICAgICBUaHJvd2FibGUgZXJyb3I7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIE91dHB1dFN0cmVhbSBvdXRTdHJlYW0gPSBuZXcgRmlsZU91dHB1dFN0cmVhbShmaWxlKTsKKyAgICAgICAgICAgIE9iamVjdE91dHB1dFN0cmVhbSBvYmpTdHJlYW0gPSBuZXcgT2JqZWN0T3V0cHV0U3RyZWFtKG91dFN0cmVhbSk7CisKKyAgICAgICAgICAgIG9ialN0cmVhbS53cml0ZU9iamVjdCh0ZXh0KTsKKyAgICAgICAgICAgIG91dFN0cmVhbS5jbG9zZSgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGNhdGNoKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycm9yID0gZTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJyb3IgPSBlOworICAgICAgICB9CisKKyAgICAgICAgZXJyb3IucHJpbnRTdGFja1RyYWNlKCk7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL01UZXh0VG9TdHJpbmcuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL01UZXh0VG9TdHJpbmcuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41NTJkNzcwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGFwcHMvTVRleHRUb1N0cmluZy5qYXZhCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IE1UZXh0VG9TdHJpbmcuamF2YSx2ICQgJFJldmlzaW9uOiAxLjEgJCAkRGF0ZTogMjAwMC8wNC8yMCAxNzo0ODo1MSAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRhcHBzOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CisKK2ltcG9ydCBqYXZhLmlvLio7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBNVGV4dFRvU3RyaW5nIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworCisKKyAgICAgICAgaWYgKGFyZ3MubGVuZ3RoICE9IDIpIHsKKyAgICAgICAgICAgIHVzYWdlKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB3cml0ZU1UZXh0QXNTdHJpbmcoYXJnc1swXSwgYXJnc1sxXSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHVzYWdlKCkgeworCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVXNhZ2U6IE1UZXh0VG9TdHJpbmcgaW5GaWxlIG91dEZpbGUiKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJpbkZpbGUgbXVzdCBiZSBhIHNlcmlhbGl6ZWQgTUNvbnN0VGV4dCIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk9uIGV4aXQsIG91dEZpbGUgd2lsbCBiZSBhIHNlcmlhbGl6ZWQgU3RyaW5nICIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImNvbnRhaW5pbmcgdGhlIGNoYXJhY3RlcnMgaW4gdGhlIHRleHQuIik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiaW5GaWxlIGFuZCBvdXRGaWxlIG11c3Qgbm90IGJlIHRoZSBzYW1lLiIpOworICAgICAgICBTeXN0ZW0uZXhpdCgxKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgd3JpdGVNVGV4dEFzU3RyaW5nKFN0cmluZyBpbkZpbGUsIFN0cmluZyBvdXRGaWxlKSB7CisKKyAgICAgICAgRmlsZSBmaWxlID0gbmV3IEZpbGUoaW5GaWxlKTsKKyAgICAgICAgTUNvbnN0VGV4dCB0ZXh0ID0gRmlsZVV0aWxzLmxvYWRNVGV4dChmaWxlKTsKKworICAgICAgICBpZiAodGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBjaGFyW10gY2ggPSBuZXcgY2hhclt0ZXh0Lmxlbmd0aCgpXTsKKyAgICAgICAgICAgIHRleHQuZXh0cmFjdENoYXJzKDAsIGNoLmxlbmd0aCwgY2gsIDApOworICAgICAgICAgICAgU3RyaW5nIHN0ciA9IG5ldyBTdHJpbmcoY2gpOworICAgICAgICAgICAgd3JpdGVTdHJpbmcoc3RyLCBvdXRGaWxlKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ2FuJ3QgcmVhZCBpbkZpbGUuIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgd3JpdGVTdHJpbmcoU3RyaW5nIHN0cmluZ1RvV3JpdGUsIFN0cmluZyBvdXRGaWxlKSB7CisKKyAgICAgICAgRmlsZSBmaWxlID0gbmV3IEZpbGUob3V0RmlsZSk7CisgICAgICAgIFRocm93YWJsZSBlcnJvciA9IG51bGw7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIE91dHB1dFN0cmVhbSBvdXRTdHJlYW0gPSBuZXcgRmlsZU91dHB1dFN0cmVhbShmaWxlKTsKKyAgICAgICAgICAgIE9iamVjdE91dHB1dFN0cmVhbSBvYmpTdHJlYW0gPSBuZXcgT2JqZWN0T3V0cHV0U3RyZWFtKG91dFN0cmVhbSk7CisKKyAgICAgICAgICAgIG9ialN0cmVhbS53cml0ZU9iamVjdChzdHJpbmdUb1dyaXRlKTsKKyAgICAgICAgICAgIG91dFN0cmVhbS5jbG9zZSgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGNhdGNoKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycm9yID0gZTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJyb3IgPSBlOworICAgICAgICB9CisKKyAgICAgICAgZXJyb3IucHJpbnRTdGFja1RyYWNlKCk7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL1N0cmluZ1RvTVRleHQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL1N0cmluZ1RvTVRleHQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yMDFkNTJmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGFwcHMvU3RyaW5nVG9NVGV4dC5qYXZhCkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IFN0cmluZ1RvTVRleHQuamF2YSx2ICQgJFJldmlzaW9uOiAxLjIgJCAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNjo0MSAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRhcHBzOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlZFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCitpbXBvcnQgamF2YS5pby4qOworCitwdWJsaWMgZmluYWwgY2xhc3MgU3RyaW5nVG9NVGV4dCB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKworCisgICAgICAgIGlmIChhcmdzLmxlbmd0aCAhPSAyIHx8IGFyZ3NbMF0uZXF1YWxzKGFyZ3NbMV0pKSB7CisgICAgICAgICAgICB1c2FnZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIHN0ciA9IGxvYWRTdHJpbmcobmV3IEZpbGUoYXJnc1swXSkpOworICAgICAgICAgICAgaWYgKHN0ciA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDb3VsZG4ndCBsb2FkIFN0cmluZyBmcm9tIGZpbGUgIiArIGFyZ3NbMF0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgTUNvbnN0VGV4dCB0ZXh0ID0gbmV3IFN0eWxlZFRleHQoc3RyLCBBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUCk7CisgICAgICAgICAgICBGaWxlVXRpbHMuc2F2ZU1UZXh0KG5ldyBGaWxlKGFyZ3NbMV0pLCB0ZXh0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgdXNhZ2UoKSB7CisKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJVc2FnZTogU3RyaW5nVG9NVGV4dCBpbkZpbGUgb3V0RmlsZSIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImluRmlsZSBtdXN0IGJlIGEgc2VyaWFsaXplZCBTdHJpbmciKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJPbiBleGl0LCBvdXRGaWxlIHdpbGwgYmUgYSBzZXJpYWxpemVkIE1UZXh0ICIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImNvbnRhaW5pbmcgdGhlIGNoYXJhY3RlcnMgaW4gdGhlIHN0cmluZy4iKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJpbkZpbGUgYW5kIG91dEZpbGUgbXVzdCBub3QgYmUgdGhlIHNhbWUuIik7CisgICAgICAgIFN5c3RlbS5leGl0KDEpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGxvYWRTdHJpbmcoRmlsZSBmaWxlKSB7CisKKyAgICAgICAgVGhyb3dhYmxlIGVycm9yOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBGaWxlSW5wdXRTdHJlYW0gaW5TdHJlYW0gPSBuZXcgRmlsZUlucHV0U3RyZWFtKGZpbGUpOworICAgICAgICAgICAgT2JqZWN0SW5wdXRTdHJlYW0gb2JqU3RyZWFtID0gbmV3IE9iamVjdElucHV0U3RyZWFtKGluU3RyZWFtKTsKKworICAgICAgICAgICAgU3RyaW5nIHN0ciA9IChTdHJpbmcpIG9ialN0cmVhbS5yZWFkT2JqZWN0KCk7CisgICAgICAgICAgICBpblN0cmVhbS5jbG9zZSgpOworICAgICAgICAgICAgcmV0dXJuIHN0cjsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJvciA9IGU7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJvciA9IGU7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycm9yID0gZTsKKyAgICAgICAgfQorCisgICAgICAgIGVycm9yLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGFwcHMvVGVzdE1UZXh0VG9TdHJpbmcuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL1Rlc3RNVGV4dFRvU3RyaW5nLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjkwNDY4YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL1Rlc3RNVGV4dFRvU3RyaW5nLmphdmEKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogVGVzdE1UZXh0VG9TdHJpbmcuamF2YSx2ICQgJFJldmlzaW9uOiAxLjEgJCAkRGF0ZTogMjAwMC8wNC8yMCAxNzo0ODo1MSAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRhcHBzOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgamF2YS5pby5GaWxlOworCitwdWJsaWMgZmluYWwgY2xhc3MgVGVzdE1UZXh0VG9TdHJpbmcgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisKKyAgICAgICAgaWYgKGFyZ3MubGVuZ3RoICE9IDIgfHwgYXJnc1swXS5lcXVhbHMoYXJnc1sxXSkpIHsKKyAgICAgICAgICAgIHVzYWdlKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBib29sZWFuIHN1Y2Nlc3MgPSB0ZXN0TVRleHRUb1N0cmluZyhhcmdzWzBdLCBhcmdzWzFdKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihzdWNjZXNzPyAiUEFTU0VEIiA6ICJGQUlMRUQiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgdXNhZ2UoKSB7CisKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJVc2FnZTogVGVzdE1UZXh0VG9TdHJpbmcgbXRleHRGaWxlIHN0cmluZ0ZpbGUiKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb21wYXJlcyB0aGUgY2hhcmFjdGVycyBpbiBtdGV4dEZpbGUgdG8gdGhlIik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU3RyaW5nIGluIHN0cmluZ0ZpbGUuIik7CisgICAgICAgIFN5c3RlbS5leGl0KDApOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiB0ZXN0TVRleHRUb1N0cmluZyhTdHJpbmcgbXRleHRGaWxlLCBTdHJpbmcgc3RyaW5nRmlsZSkgeworCisgICAgICAgIGJvb2xlYW4gc3VjY2VzcyA9IGZhbHNlOworCisgICAgICAgIEZpbGUgbXRleHQgPSBuZXcgRmlsZShtdGV4dEZpbGUpOworICAgICAgICBNQ29uc3RUZXh0IHRleHQgPSBGaWxlVXRpbHMubG9hZE1UZXh0KG10ZXh0KTsKKyAgICAgICAgaWYgKHRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgU3RyaW5nIHN0ciA9IFN0cmluZ1RvTVRleHQubG9hZFN0cmluZyhuZXcgRmlsZShzdHJpbmdGaWxlKSk7CisgICAgICAgICAgICBpZiAoc3RyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzdWNjZXNzID0gY29tcGFyZU1UZXh0VG9TdHJpbmcodGV4dCwgc3RyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ291bGRuJ3QgbG9hZCBTdHJpbmcuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvdWxkbid0IGxvYWQgTVRleHQuIik7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gc3VjY2VzczsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gY29tcGFyZU1UZXh0VG9TdHJpbmcoTUNvbnN0VGV4dCB0ZXh0LCBTdHJpbmcgc3RyKSB7CisKKyAgICAgICAgaWYgKHRleHQubGVuZ3RoKCkgIT0gc3RyLmxlbmd0aCgpKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaT1zdHIubGVuZ3RoKCktMTsgaSA+PSAwOyBpLS0pIHsKKyAgICAgICAgICAgIGlmICh0ZXh0LmF0KGkpICE9IHN0ci5jaGFyQXQoaSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL3Jlc291cmNlcy9TYW1wbGUuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL3Jlc291cmNlcy9TYW1wbGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lNDk4NzRmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGFwcHMvcmVzb3VyY2VzL1NhbXBsZS5qYXZhCkBAIC0wLDAgKzEsMjggQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9yZXNvdXJjZXMvU2FtcGxlLmphdmEsdiAkCisgKiAkRGF0ZTogMjAwMi8wOC8xMyAyMzo0NDo0NSAkCisgKiAkUmV2aXNpb246IDEuMiAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRhcHBzLnJlc291cmNlczsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBTYW1wbGUgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIAorICAgIHB1YmxpYyBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgICAgICAgIHsgImRlZmF1bHQuc2FtcGxlIiwgdGhpcy5nZXRDbGFzcygpLmdldFJlc291cmNlKCJoYWdhbiIpIH0sCisgICAgICAgICAgICB7ICJkZWZhdWx0Lm5hbWUiLCAiVGhlIEdhcmRlbiIgfSwKKyAgICAgICAgICAgIHsgImphcGFuZXNlLnNhbXBsZSIsICJcdTZjZTg6IHsxfSBcdTMwNmVcdTMwZTFcdTMwYmRcdTMwYzNcdTMwYzkgezB9IFx1MzA2Zlx1NjNhOFx1NTk2OFx1MzA1NVx1MzA4Y1x1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMiIgfSwKKyAgICAgICAgICAgIHsgImphcGFuZXNlLm5hbWUiLCAiSmFwYW5lc2UgTWVzc2FnZSIgfSwKKyAgICAgICAgfTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L0FzeW5jRm9ybWF0dGVyLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L0FzeW5jRm9ybWF0dGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmY5YzYyZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvQXN5bmNGb3JtYXR0ZXIuamF2YQpAQCAtMCwwICsxLDIwNTMgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IEFzeW5jRm9ybWF0dGVyLmphdmEsdiAkICRSZXZpc2lvbjogMS4zICQgJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6NDIgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8vIFJlcXVpcmVzIEphdmEyCisvLyBSZXZpc2lvbjogNzAgMS4zOCByaWNodGV4dC9Bc3luY0Zvcm1hdHRlci5qYXZhLCByaWNodGV4dCwgcmljaHRleHQKKworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRmb3JtYXQ7CisKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczsKK2ltcG9ydCBqYXZhLmF3dC5SZWN0YW5nbGU7CitpbXBvcnQgamF2YS5hd3QuUG9pbnQ7CitpbXBvcnQgamF2YS5hd3QuQ29sb3I7CisKK2ltcG9ydCBqYXZhLnRleHQuQnJlYWtJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CisKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLlRleHRBdHRyaWJ1dGU7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5HcmFwaGljczJEQ29udmVyc2lvbjsKKworLy8vKkpESzEySU1QT1JUUworaW1wb3J0IGphdmEuYXd0LkdyYXBoaWNzMkQ7CitpbXBvcnQgamF2YS5hd3QuZm9udC5MaW5lQnJlYWtNZWFzdXJlcjsKK2ltcG9ydCBqYXZhLmF3dC5mb250LkZvbnRSZW5kZXJDb250ZXh0OworLy9KREsxMklNUE9SVFMqLworCisvKkpESzExSU1QT1JUUworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5HcmFwaGljczJEOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5MaW5lQnJlYWtNZWFzdXJlcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuRm9udFJlbmRlckNvbnRleHQ7CitKREsxMUlNUE9SVFMqLworCisvKgorICAgIENoYW5nZSBoaXN0b3J5OgorCisgICAgNy8yNS85NiAtCisKKyAgICA4LzE1Lzk2CisgICAgICAgIEZpeGVkIGJ1ZyBpbiB0ZXh0T2Zmc2V0VG9Qb2ludCAoZlBpeEhlaWdodCB3YXNuJ3QgYWRkZWQgdG8gbmVnYXRpdmUgaGVpZ2h0cykuIHtqYnJ9CisKKyAgICA4LzE5Lzk2CisgICAgICAgIFJlbW92ZWQgcmVmZXJlbmNlcyB0byBKdXN0aWZpY2F0aW9uU3R5bGUgY29uc3RhbnRzLCBhbmQgbW92ZWQgdGhlbSBpbnRvIE1Gb3JtYXR0ZXIge3NmYn0KKworICAgIDgvMjMvOTYKKyAgICAgICAgTW9kaWZpZWQgZmluZExpbmVBdCBhbmQgZ2V0TGluZUNvbnRhaW5pbmcgLSBhZGRlZCBvcHRpbWl6YXRpb24gaW4gc2VhcmNoIGxvb3AuICBBbHNvLAorICAgICAgICAgICAgdGhleSB3ZXJlIGZhaWxpbmcgd2hlbiBmTFRQb3NFbmQrMSA9PSBmTFROZWdTdGFydC4gIEZpeGVkLgorCisgICAgOC8yNi85NgorICAgICAgICBNb3ZlZCBGb3JtYXREYWVtb24gc3R1ZmYgaW50byB0aGlzIGNsYXNzLgorCisgICAgOS8xMS85NgorICAgICAgICBTaG9ydGVuZWQgbGluZSByZXR1cm5lZCBmcm9tIHRleHRPZmZzZXRUb1BvaW50IGJ5IDEgcGl4ZWwKKworICAgIDkvMjMvOTYKKyAgICAgICAgdGV4dE9mZnNldFRvUG9pbnQgbGluZSBsZW5ndGggcmVzdG9yZWQgKHNlZSBhYm92ZSkuICBkcmF3VGV4dCgpIG5vdyBkcmF3cyBvbmx5IGxpbmVzCisgICAgICAgIHdoaWNoIGZhbGwgaW4gcmVjdGFuZ2xlIHBhcmFtLgorCisgICAgOS8yNi85NgorICAgICAgICB3aGl0ZXNwYWNlIGF0IGVuZCBvZiBsaW5lIGlzIHVzZWQgZm9yIGNhcmV0IHBvc2l0aW9uaW5nCisKKyAgICAxMC80Lzk2CisgICAgICAgIEFkZGVkIHN0YXRpYyBUZXh0Qm94IG1ldGhvZC4KKworICAgIDEwLzgvOTYKKyAgICAgICAgTGluZSAxMzAwIC0gbGVzcyB0aGFuIGNoYW5nZWQgdG8gbGVzcyB0aGFuIG9yIGVxdWFsIGluIHRleHRPZmZzZXRUb1BvaW50LiAgV2F0Y2ggZm9yCisgICAgICAgICAgICBoYW5ncyBpbiBmb3JtYXRUZXh0LgorCisgICAgMTAvOS85NgorICAgICAgICBDaGFuZ2VkIHN5bmMuIG1vZGVsLiAgZkZvcm1hdEluQmFja2dyb3VuZCBpcyB1c2VkIHRvIHN0YXJ0L3N0b3AgYmcgZm9ybWF0dGluZworCisgICAgMTAvMTcvOTYKKyAgICAgICAgQWRkZWQgbmV3IGZsYWdzOiAgZkxpbmVJbmMsIGZGaWxsSW5jIGZvciBiaWRpIHN1cHBvcnQuICB1cGRhdGVGb3JtYXQsIHBvaW50VG9UZXh0T2Zmc2V0LCBnZXRCb3VuZGluZ1JlY3QsCisgICAgICAgIGFuZCBmaW5kTmV3SW5zZXJ0aW9uT2Zmc2V0IHNob3VsZCBub3cgZnVuY3Rpb24gY29ycmVjdGx5IGZvciBub24tUm9tYW4gZG9jdW1lbnRzLiAgTm90aGluZyBlbHNlIGhhcyBiZWVuCisgICAgICAgIG1vZGlmaWVkIHRvIHN1cHBvcnQgaW50bCB0ZXh0LgorCisgICAgMTAvMjEvOTYKKyAgICAgICAgUHVzaGVkIHBhcmFncmFwaCBmb3JtYXR0aW5nIGFuZCBjYXJldCBwb3NpdGlvbmluZyBpbnRvIExpbmVMYXlvdXQuICBJbiBwcm9jZXNzIG9mIHB1c2hpbmcKKyAgICAgICAgaGlnaGxpZ2h0aW5nIGludG8gTGluZUxheW91dC4KKworICAgIDEwLzI0Lzk2CisgICAgICAgIE5vdyBnZXR0aW5nIHBhcmFncmFwaCBzdHlsZXMgZnJvbSBwYXJhZ3JhcGggYnVmZmVyLgorCisgICAgNy83Lzk3CisgICAgICAgIFVwLWFycm93IGRvZXNuJ3QgbW92ZSB0byBiZWdpbm5pbmcgb2YgdGV4dCBpZiB5b3UncmUgb24gdGhlIGZpcnN0IGxpbmUuCisKKyAgICA3LzEvOTgKKyAgICAgICAgTm8gbG9uZ2VyIGludGVyc2VjdGluZyBkYW1hZ2VkIHJlY3Qgd2l0aCB2aWV3IHJlY3QgaW4gdXBkYXRlRm9ybWF0LgorKi8KKworLyoqCisqIFRoaXMgY2xhc3MgaW1wbGVtZW50cyBNRm9ybWF0dGVyLiAgSXQgbWFpbnRhaW5zIGEgdGFibGUgb2YKKyogPHR0PkxheW91dEluZm88L3R0PiBpbnN0YW5jZXMgd2hpY2ggY29udGFpbiBsYXlvdXQgaW5mb3JtYXRpb24KKyogZm9yIGVhY2ggbGluZSBpbiB0aGUgdGV4dC4gIFRoaXMgY2xhc3MgZm9ybWF0cyBsaW5lcyBvbiBkZW1hbmQsCisqIGFuZCBjcmVhdGVzIGEgbG93LXByaW9yaXR5IHRocmVhZCB0byBmb3JtYXQgdGV4dCBpbiB0aGUgYmFja2dyb3VuZC4KKyogTm90ZSB0aGF0LCBhdCB0aW1lcywgc29tZSB0ZXh0IG1heSBub3QgaGF2ZSBiZWVuIGZvcm1hdHRlZCwgZXNwZWNpYWxseQorKiBpZiB0aGUgdGV4dCBpcyBsYXJnZS4KKyogPHA+CisqIFRoZSBsaW5lIHRhYmxlIGlzIGFuIGFycmF5IG9mIDx0dD5MYXlvdXRJbmZvPC90dD4gb2JqZWN0cywgd2hpY2ggZXhwYW5kcyBhcyBuZWVkZWQgdG8gaG9sZAorKiBhbGwgY29tcHV0ZWQgbGluZXMgaW4gdGhlIHRleHQuICBUaGUgbGluZSB0YWJsZSBjb25zaXN0cyBvZiB0aHJlZQorKiByZWdpb25zOiAgYSAicG9zaXRpdmUiIHJlZ2lvbiwgYSAiZ2FwLCIgYW5kIGEgIm5lZ2F0aXZlIiByZWdpb24uCisqIEluIHRoZSBwb3NpdGl2ZSByZWdpb24sIGNoYXJhY3RlciBhbmQgZ3JhcGhpY3Mgb2Zmc2V0cyBhcmUgcG9zaXRpdmUKKyogaW50ZWdlcnMsIGNvbXB1dGVkIGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dCAvIGRpc3BsYXkuICBJbiB0aGUKKyogZ2FwLCBsaW5lIHRhYmxlIGVudHJpZXMgYXJlIG51bGwuICBOZXcgbGluZXMgbWF5IGJlIGluc2VydGVkIGludG8gdGhlIGdhcC4KKyogSW4gdGhlIG5lZ2F0aXZlIHJlZ2lvbiwgY2hhcmFjdGVyIGFuZCBncmFwaGljcyBvZmZzZXRzIGFyZSBuZWdhdGl2ZTsKKyogdGhlaXIgYWJzb2x1dGUgdmFsdWVzIGluZGljYXRlIGRpc3RhbmNlcyBmcm9tIHRoZSBlbmQgb2YgdGhlIHRleHQgLyBkaXNwbGF5LgorKiBUaGUgPHR0PmZMVFBvc0VuZDwvdHQ+IG1lbWJlciBnaXZlcyB0aGUgaW5kZXggaW4gdGhlIGxpbmUgdGFibGUgb2YgdGhlCisqIGxhc3QgcG9zaXRpdmUgZW50cnkuICBUaGUgPHR0PmZMVE5lZ1N0YXJ0PC90dD4gZ2l2ZXMgdGhlIGluZGV4IG9mIGZpcnN0CisqIG5lZ2F0aXZlIGVudHJ5LiAgSWYgdGhlcmUgYXJlIG5vIG5lZ2F0aXZlIGVudHJpZXMsIDx0dD5mTFROZWdTdGFydDwvdHQ+IGlzCisqIGVxdWFsIHRvIDx0dD5mTFRTaXplPC90dD4sIHRoZSBzaXplIG9mIHRoZSBsaW5lIHRhYmxlLgorKiA8cD4KKyogQ2hhbmdlcyB0byB0aGUgbGluZSB0YWJsZSBvY2N1ciBvbmx5IGluIHRoZSA8dHQ+Zm9ybWF0VGV4dCgpPC90dD4gbWV0aG9kLgorKiBUaGlzIG1ldGhvZCBjYWxscyA8dHQ+TGluZUxheW91dC5sYXlvdXQoKTwvdHQ+IGZvciBlYWNoIGxpbmUgdG8gZm9ybWF0LgorKgorKiBAYXV0aG9yIEpvaG4gUmFsZXkKKyoKKyogQHNlZSBNRm9ybWF0dGVyCisqIEBzZWUgTGluZUxheW91dAorKiBAc2VlIExheW91dENvbnRleHQKKyogQHNlZSBMYXlvdXRJbmZvCisqLworCitmaW5hbCBjbGFzcyBBc3luY0Zvcm1hdHRlciBleHRlbmRzIE1Gb3JtYXR0ZXIgaW1wbGVtZW50cyBSdW5uYWJsZQoreworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgLyoqCisgICAgKiBUZXh0IHRvIGZvcm1hdC4KKyAgICAqLworICAgIHByaXZhdGUgTUNvbnN0VGV4dCBmVGV4dDsKKworICAgIC8qKgorICAgICogRGVmYXVsdCB2YWx1ZXMuCisgICAgKi8KKyAgICBwcml2YXRlIEF0dHJpYnV0ZU1hcCBmRGVmYXVsdFZhbHVlczsKKyAgICAKKyAgICAvKioKKyAgICAqIEZvbnQgcmVzb2x2ZXIuCisgICAgKi8KKyAgICBwcml2YXRlIEZvbnRSZXNvbHZlciBmRm9udFJlc29sdmVyOworICAgIAorICAgIC8qKgorICAgICogRGVmYXVsdCBjaGFyYWN0ZXIgbWV0cmljIC0gdXNlZCB0byBzZXQgaGVpZ2h0IG9mIGVtcHR5IHBhcmFncmFwaHMKKyAgICAqLworICAgIHByaXZhdGUgRGVmYXVsdENoYXJhY3Rlck1ldHJpYyBmRGVmYXVsdENoYXJNZXRyaWM7CisgICAgCisgICAgLyoqCisgICAgKiBMZW5ndGggdG8gd2hpY2ggbGluZXMgYXJlIGZvcm1hdHRlZC4KKyAgICAqLworICAgIHByaXZhdGUgaW50IGZMaW5lRGltOworCisgICAgLyoqCisgICAgKiBUYWJsZSBvZiBmb3JtYXR0ZWQgbGluZXMuCisgICAgKi8KKyAgICBwcml2YXRlIExheW91dEluZm8gZkxpbmVUYWJsZVtdOworCisgICAgLyoqCisgICAgKiBTaXplIG9mIGxpbmUgdGFibGUuCisgICAgKi8KKyAgICBwcml2YXRlIGludCBmTFRTaXplID0gMTA7IC8vIGluaXRpYWwgc2l6ZSBtdXN0IGJlID4gMAorCisgICAgLyoqCisgICAgKiBJbmRleCBvZiBsYXN0IHBvc2l0aXZlIGVudHJ5IGluIGxpbmUgdGFibGUuCisgICAgKi8KKyAgICBwcml2YXRlIGludCBmTFRQb3NFbmQ7CisKKyAgICAvKioKKyAgICAqIEluZGV4IG9mIGZpcnN0IG5lZ2F0aXZlIGVudHJ5IGluIGxpbmUgdGFibGUuCisgICAgKi8KKyAgICBwcml2YXRlIGludCBmTFROZWdTdGFydDsKKworICAgIC8qKgorICAgICogTGVuZ3RoIG9mIHRleHQgb24gd2hpY2ggbmVnYXRpdmUgbGluZSBvZmZzZXRzIGFyZSBiYXNlZC4KKyAgICAqIEBzZWUgI2Zvcm1hdFRleHQKKyAgICAqLworICAgIHByaXZhdGUgaW50IGZMVEN1clRleHRMZW47CisKKyAgICAvKioKKyAgICAqIExlbmd0aCBvZiBmb3JtYXR0ZWQgdGV4dCBpbiBmaWxsIGRpcmVjdGlvbiwgaW4gcGl4ZWxzLgorICAgICovCisgICAgcHJpdmF0ZSBpbnQgZlBpeEhlaWdodDsKKworICAgIC8qKgorICAgICogTGVuZ3RoIG9mIGZvcm1hdHRlZCB0ZXh0IGluY2x1ZGluZyBwc2V1ZG9saW5lLgorICAgICovCisgICAgcHJpdmF0ZSBpbnQgZkZ1bGxQaXhIZWlnaHQ7CisKKyAgICBwcml2YXRlIGludCBmTWluWDsKKyAgICBwcml2YXRlIGludCBmTWF4WDsKKworICAgIC8qKgorICAgICogPHR0PnRydWU8L3R0PiBpZiBsaW5lcyBzaG91bGQgYmUgZm9ybWF0dGVkIHRvIGZpdCBsaW5lIGRpbWVuc2lvbi4KKyAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBmV3JhcDsKKworICAgIC8qKgorICAgICogPHR0PnRydWU8L3R0PiBpZiBjaGFyYWN0ZXJzIHJ1biBob3Jpem9udGFsbHkuCisgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gZkhMaW5lID0gdHJ1ZTsKKworICAgIC8qKgorICAgICAqIDx0dD50cnVlPC90dD4gaWYgY2hhcmFjdGVycyBydW4gZnJvbSBmcm9tIGxvdyB0byBoaWdoIGNvb3JkaW5hdGVzIG9uIGxpbmUuCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGZMaW5lSW5jID0gdHJ1ZTsKKworICAgIC8qKgorICAgICAqIDx0dD50cnVlPC90dD4gaWYgbGluZXMgcnVuIGZyb20gbG93IHRvIGhpZ2ggY29vcmRpbmF0ZXMgd2l0aGluIHBhZ2UuCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGZGaWxsSW5jID0gdHJ1ZTsKKworICAgIC8qKgorICAgICogVmFsdWUgcmV0dXJuZWQgZnJvbSA8dHQ+ZmluZExpbmVBdCgpPC90dD4KKyAgICAqIGlmIHBpeGVsIGhlaWdodCBwcmVjZWRlcyB0b3Btb3N0IGxpbmUuCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQga0JlZm9yZUZpcnN0TGluZSA9IC0yOworCisgICAgLyoqCisgICAgKiBWYWx1ZSByZXR1cm5lZCBmcm9tIDx0dD5maW5kTGluZUF0KCk8L3R0PiBhbmQgPHR0PmdldExpbmVDb250YWluaW5nKCk8L3R0PgorICAgICogaWYgb2Zmc2V0IC8gcGl4ZWwgaGVpZ2h0IGlzIGFmdGVyIGFsbCBleGlzdGluZyBsaW5lcy4KKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBrQWZ0ZXJMYXN0TGluZSA9IC0xOworCisgICAgLyoqCisgICAgKiBUaHJlYWQgd2hpY2ggaW52b2tlcyBmb3JtYXR0ZXIgaW4gdGhlIGJhY2tncm91bmQuCisgICAgKi8KKyAgICBwcml2YXRlIFRocmVhZCBmRGFlbW9uOworCisgICAgLyoqCisgICAgKiBGb250UmVuZGVyQ29udGV4dCB0byBtZWFzdXJlIHdpdGguICBDdXJyZW50bHkgbm90IHNldHRhYmxlIGFmdGVyCisgICAgKiBjb25zdHJ1Y3Rpb24uCisgICAgKi8KKyAgICBwcml2YXRlIEZvbnRSZW5kZXJDb250ZXh0IGZGb250UmVuZGVyQ29udGV4dDsKKworICAgIC8qKgorICAgICogQ29udHJvbHMgd2hldGhlciBiYWNrZ3JvdW5kIGZvcm1hdHRpbmcgY2FuIHJ1bi4KKyAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBmQmdGb3JtYXRBbGxvd2VkID0gZmFsc2U7CisgICAgCisgICAgLyoqCisgICAgKiBDYWNoZWQgbGluZSBicmVhayBvYmplY3QuCisgICAgKi8KKyAgICBwcml2YXRlIEJyZWFrSXRlcmF0b3IgZkxpbmVCcmVhayA9IG51bGw7CisgICAgCisgICAgLyoqCisgICAgKiBDYWNoZWQgTGluZUJyZWFrTWVhc3VyZXIuCisgICAgKi8KKyAgICBwcml2YXRlIExpbmVCcmVha01lYXN1cmVyIGZDYWNoZWRNZWFzdXJlciA9IG51bGw7CisgICAgcHJpdmF0ZSBpbnQgZkNhY2hlZE1lYXN1cmVyU3RhcnQ7CisgICAgcHJpdmF0ZSBpbnQgZkNhY2hlZE1lYXN1cmVyTGltaXQ7CisgICAgCisgICAgLy8gU29tZSBKREsncyAoU3VuJ3MgMS4yLjIpIHRocm93IGV4Y2VwdGlvbnMgZnJvbSAKKyAgICAvLyBMaW5lQnJlYWtNZWFzdXJlci5pbnNlcnRDaGFyIGFuZCBkZWxldGVDaGFyLiAgVGhpcyBjbGFzcworICAgIC8vIGRldGVjdHMgdGhpcyBjb25kaXRpb24gYW5kIGRvZXNuJ3QgdXNlIHRoZXNlIHR3byBtZXRob2RzCisgICAgLy8gaWYgdGhleSB0aHJvdyBleGNlcHRpb25zLgorICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gZmdDYWNoZU1lYXN1cmVycyA9IHRydWU7CisgICAgCisgICAgLyoqCisgICAgKiBDdXJyZW50IHRleHQgdGltZSBzdGFtcC4gIFVzZWQgdG8gbWFpbnRhaW4gbW9kaWZpY2F0aW9uIGludmFyaWFudC4KKyAgICAqLworICAgIHByaXZhdGUgaW50IGZDdXJUaW1lU3RhbXA7CisgICAgCisgICAgLyoqCisgICAgKiBDYWNoZSBvZiBQYXJhZ3JhcGhSZW5kZXJlcnMuCisgICAgKi8KKyAgICBwcml2YXRlIEhhc2h0YWJsZSBmUmVuZGVyZXJDYWNoZSA9IG5ldyBIYXNodGFibGUoKTsKKyAgICAKKyAgICAvKioKKyAgICAqIERyYXcgdGV4dCBpbnNpZGUgYSByZWN0YW5nbGUuIERvZXMgbm90IGNhY2hlIGFueSBmb3JtYXR0aW5nIGluZm9ybWF0aW9uLgorICAgICogVGhpcyBpcyBjb252ZW5pZW50IGZvciBzbWFsbCBhbW91bnRzIG9mIHRleHQ7IGNvbXBhcmFibGUgdG8gVEVUZXh0Qm94IG9uIHRoZSBNYWMuCisgICAgKiA8cD4KKyAgICAqIEBwYXJhbSB0ZXh0IHRoZSB0ZXh0IHRvIGRyYXcKKyAgICAqIEBwYXJhbSBnIEdyYXBoaWNzIG9uIHdoaWNoIHRvIGRyYXcKKyAgICAqIEBwYXJhbSBkcmF3UmVjdCByZWN0YW5nbGUgaW4gd2hpY2ggdGV4dCB3aWxsIGJlIGRyYXduCisgICAgKiBAcGFyYW0gZmlsbEluYyBpZiB0cnVlLCBsaW5lcyBydW4gZnJvbSBsb3cgdG8gaGlnaCBjb29yZGluYXRlcyBpbiBwYWdlLgorICAgICogQHBhcmFtIGhMaW5lIGlmIHRydWUsIGNoYXJhY3RlcnMgcnVuIGhvcml6b250YWxseSB3aXRoaW4gYSBsaW5lLgorICAgICovCisKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzUGFyYWdyYXBoU2VwYXJhdG9yKGNoYXIgY2gpIHsKKworICAgICAgICByZXR1cm4gY2ggPT0gJ1xuJyB8fCBjaCA9PSAnXHUyMDI5JzsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIENyZWF0ZSBhbiA8dHQ+QXN5bmNGb3JtYXR0ZXI8L3R0Pi4KKyAgICAqIEBwYXJhbSB0ZXh0IHRoZSB0ZXh0IHRvIGZvcm1hdAorICAgICogQHBhcmFtIGxpbmVCb3VuZCBsZW5ndGggdG8gd2hpY2ggbGluZXMgYXJlIGZvcmFtdHRlZAorICAgICogQHBhcmFtIHdyYXAgPHR0PnRydWU8L3R0PiBpZiB0ZXh0IHNob3VsZCBiZSAibGluZSB3cmFwcGVkIiAoZm9ybWF0dGVkIHRvIGZpdCBkZXN0aW5hdGlvbiBhcmVhKQorICAgICovCisgICAgQXN5bmNGb3JtYXR0ZXIoTUNvbnN0VGV4dCB0ZXh0LCAKKyAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgZGVmYXVsdFZhbHVlcywKKyAgICAgICAgICAgICAgICAgICBpbnQgbGluZUJvdW5kLAorICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gd3JhcCwKKyAgICAgICAgICAgICAgICAgICBHcmFwaGljcyBnKQorICAgIHsKKyAgICAgICAgZlRleHQgPSB0ZXh0OworICAgICAgICBmRGVmYXVsdFZhbHVlcyA9IGRlZmF1bHRWYWx1ZXM7CisgICAgICAgIGZGb250UmVzb2x2ZXIgPSBuZXcgRm9udFJlc29sdmVyKGZEZWZhdWx0VmFsdWVzKTsKKyAgICAgICAgCisgICAgICAgIGZMaW5lRGltID0gbGluZUJvdW5kOworICAgICAgICBmV3JhcCA9IHdyYXA7CisgICAgICAgIEdyYXBoaWNzMkQgZzJkID0gR3JhcGhpY3MyRENvbnZlcnNpb24uZ2V0R3JhcGhpY3MyRChnKTsKKyAgICAgICAgZkZvbnRSZW5kZXJDb250ZXh0ID0gZzJkLmdldEZvbnRSZW5kZXJDb250ZXh0KCk7CisgICAgICAgIAorICAgICAgICBmRGVmYXVsdENoYXJNZXRyaWMgPSBuZXcgRGVmYXVsdENoYXJhY3Rlck1ldHJpYyhmRm9udFJlc29sdmVyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkZvbnRSZW5kZXJDb250ZXh0KTsKKyAgICAgICAgZkxUQ3VyVGV4dExlbiA9IHRleHQubGVuZ3RoKCk7CisgICAgICAgIHJlbW92ZUFsbExpbmVzKCk7CisKKyAgICAgICAgZkRhZW1vbiA9IG5ldyBUaHJlYWQodGhpcyk7CisgICAgICAgIGZEYWVtb24uc3RhcnQoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIEF0dHJpYnV0ZU1hcCBnZXREZWZhdWx0VmFsdWVzKCkgeworICAgIAorICAgICAgICByZXR1cm4gZkRlZmF1bHRWYWx1ZXM7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGNoZWNrVGltZVN0YW1wKCkgeworICAgICAgICBTdHJpbmcgYWRtb25pdGlvbiA9ICJQcm9iYWJseSwgeW91IG1vZGlmaWVkICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0aGUgdGV4dCBiZWZvcmUgY2FsbGluZyBzdG9wQmFja2dyb3VuZEZvcm1hdHRpbmcoKS4iOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBpZiAoZlRleHQuZ2V0VGltZVN0YW1wKCkgIT0gZkN1clRpbWVTdGFtcCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJUaW1lIHN0YW1wIGlzIG91dCBvZiBzeW5jLiAgIiArIGFkbW9uaXRpb24pOworICAgICAgICB9CisgICAgICAgIGlmIChmVGV4dC5sZW5ndGgoKSAhPSBmTFRDdXJUZXh0TGVuKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkxlbmd0aCBjaGFuZ2VkIHVuZXhwZWN0ZWRseS4gICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmVGV4dC5sZW5ndGgoKT0iK2ZUZXh0Lmxlbmd0aCgpKyI7ICAiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmTFRDdXJUZXh0TGVuPSIrZkxUQ3VyVGV4dExlbisiOyAgIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm9ybWF0dGVyPSIrdGhpcysiOyAgIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGV4dD0iK2ZUZXh0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogU3BlY2lmeSB3aGV0aGVyIHRvIHdyYXAgbGluZXMgdXNpbmcgdGhlIGxpbmUgZGltZW5zaW9uLgorICAgICogQHBhcmFtIHdyYXAgaWYgPHR0PnRydWU8L3R0PiBsaW5lcyB3aWxsIGJlIHdyYXBwZWQ7IG90aGVyd2lzZSBuZXcgbGluZXMgd2lsbCBvbmx5IGJlCisgICAgKiBzdGFydGVkIHdoZW4gYSBuZXdsaW5lIGlzIGVuY291bnRlcmVkLgorICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCB2b2lkIHNldFdyYXAoYm9vbGVhbiB3cmFwKQorICAgIHsKKyAgICAgICAgaWYgKHdyYXAgIT0gZldyYXApIHsKKyAgICAgICAgICAgIGZXcmFwID0gd3JhcDsKKyAgICAgICAgICAgIHJlbW92ZUFsbExpbmVzKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAqIFJldHVybiB0cnVlIGlmIGxpbmVzIGFyZSB3cmFwcGVkIHVzaW5nIHRoZSBsaW5lIGRpbWVuc2lvbi4KKyAgICAqIEBzZWUgI3NldFdyYXAKKyAgICAqLworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgYm9vbGVhbiB3cmFwKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmV3JhcDsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFNwZWNpZnkgdGhlIGxpbmVCb3VuZCBpbiBwaXhlbHMuICBJZiBsaW5lIHdyYXBwaW5nIGlzIG9uLCBsaW5lcworICAgICogd2lsbCBiZSB3cmFwcGVkIHRvIHRoaXMgdmFsdWUuCisgICAgKiA8cD4KKyAgICAqCisgICAgKiBAcGFyYW0gbGluZUJvdW5kIHRoZSBkaXN0YW5jZSwgaW4gcGl4ZWxzLCB1c2VkIHRvIHdyYXAgbGluZXMuCisgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIHZvaWQgc2V0TGluZUJvdW5kKGludCBsaW5lQm91bmQpCisgICAgeworICAgICAgICBpZiAoZkxpbmVEaW0gIT0gbGluZUJvdW5kKSB7CisgICAgICAgICAgICBmTGluZURpbSA9IGxpbmVCb3VuZDsgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoZldyYXApIHsKKyAgICAgICAgICAgICAgICByZW1vdmVBbGxMaW5lcygpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBwaXhlbHMgYWxvbmcgdGhlIGxpbmUgZGltZW5zaW9uLgorICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCBpbnQgbGluZUJvdW5kKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmTGluZURpbTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFJldHVybiA8dHQ+dHJ1ZTwvdHQ+IGlmIGNoYXJhY3RlcnMgcnVuIGZyb20gbG93IHRvIGhpZ2ggY29vcmRpbmF0ZXMgb24gbGluZS4KKyAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBsaW5lSW5jKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmTGluZUluYzsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFJldHVybiA8dHQ+dHJ1ZTwvdHQ+IGlmIGxpbmVzIHJ1biBmcm9tIGxvdyB0byBoaWdoIGNvb3JkaW5hdGVzIG9uIHBhZ2UuCisgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gZmlsbEluYygpCisgICAgeworICAgICAgICByZXR1cm4gZkZpbGxJbmM7CisgICAgfQorCisgICAgLyoqCisgICAgKiBSZW1vdmUgYWxsIGxpbmVzIGluIHRoZSBsaW5lIHRhYmxlLiAgVXNlZCBhZnRlciBhbiBvcGVyYXRpb24gdGhhdAorICAgICogaW52YWxpZGF0ZXMgYWxsIGV4aXN0aW5nIGxpbmVzLCBzdWNoIGFzIGNoYW5naW5nIGxpbmUgd3JhcHBpbmcgb3IgdGhlCisgICAgKiBsaW5lIGRpbS4KKyAgICAqLworICAgIHByaXZhdGUgc3luY2hyb25pemVkIHZvaWQgcmVtb3ZlQWxsTGluZXMoKQorICAgIHsKKyAgICAgICAgZkN1clRpbWVTdGFtcCA9IGZUZXh0LmdldFRpbWVTdGFtcCgpOworICAgICAgICBzdG9wQmFja2dyb3VuZEZvcm1hdHRpbmcoKTsKKworICAgICAgICBmTWluWCA9IDA7CisgICAgICAgIGZNYXhYID0gZkxpbmVEaW07CisgICAgICAgIAorICAgICAgICBmTGluZVRhYmxlID0gbmV3IExheW91dEluZm9bZkxUU2l6ZV07IC8vIGZMVFNpemUgbXVzdCBiZSA+IDAKKyAgICAgICAgZkxUTmVnU3RhcnQgPSBmTFRTaXplOworICAgICAgICBmTFRQb3NFbmQgPSAwOworCisgICAgICAgIGZMaW5lVGFibGVbMF0gPSBwc2V1ZG9MaW5lSW5mbyhudWxsLCAwKTsKKworICAgICAgICBmUGl4SGVpZ2h0ID0gZkxpbmVUYWJsZVswXS5nZXRIZWlnaHQoKTsgLy8gPz8/IG9yIHNob3VsZCBpdCBiZSB6ZXJvPworICAgICAgICBmRnVsbFBpeEhlaWdodCA9IGZQaXhIZWlnaHQ7CisKKyAgICAgICAgLy8gZm9ybWF0IGF0IGxlYXN0IG9uZSBsaW5lOgorICAgICAgICBmb3JtYXRUb0hlaWdodChmUGl4SGVpZ2h0ICsgMSk7CisKKyAgICAgICAgZW5hYmxlQkdGb3JtYXQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGaWxsIHRoZSBsYXlvdXQgaW5mbyB3aXRoIGluZm9ybWF0aW9uIGFwcHJvcHJpYXRlIHRvIHRoZSBwc2V1ZG9saW5lLgorICAgICAqLworICAgIHByaXZhdGUgc3luY2hyb25pemVkIExheW91dEluZm8gcHNldWRvTGluZUluZm8oTGF5b3V0SW5mbyBpbmZvLCBpbnQgb2Zmc2V0KQorICAgIHsKKyAgICAgICAgQXR0cmlidXRlTWFwIHN0ID0gZlRleHQucGFyYWdyYXBoU3R5bGVBdChmTFRDdXJUZXh0TGVuKTsgLy8gPz8/IGlmIHRleHQgaXMgZW1wdHkgb3IgdGhpcyBpcyB0aGUgZW5kIG9mIHRoZSB0ZXh0LCB3aGF0IGhhcHBlbnM/CisgICAgICAgIFBhcmFncmFwaFJlbmRlcmVyIHJlbmRlcmVyID0gZ2V0UmVuZGVyZXJGb3Ioc3QpOworICAgICAgICBpbmZvID0gcmVuZGVyZXIubGF5b3V0KGZUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExpbmVCcmVha01lYXN1cmVyKW51bGwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkZvbnRSZW5kZXJDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkxpbmVEaW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkxpbmVEaW0pOworCisgICAgICAgIHJldHVybiBpbmZvOworICAgIH0KKworICAgIC8qKgorICAgICogUmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgbGFzdCB2YWxpZCBsaW5lIGluIHRoZSBsaW5lIHRhYmxlLgorICAgICovCisgICAgcHJpdmF0ZSBpbnQgbGFzdExpbmUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChmTFROZWdTdGFydCA9PSBmTFRTaXplKSA/IGZMVFBvc0VuZCA6IGZMVFNpemUgLSAxOworICAgIH0KKworICAgIC8qKgorICAgICogU2hpZnQgbGluZSB0YWJsZSBzdWNoIHRoYXQgPHR0Pmxhc3RQb3M8L3R0PiBpcyB0aGUgbGFzdCBwb3NpdGl2ZQorICAgICogZW50cnkgaW4gdGhlIHRhYmxlLiA8Yj5OT1RFOiA8dHQ+bGFzdFBvczwvdHQ+IG11c3QgYmUgYSB2YWxpZCBsaW5lITwvYj4KKyAgICAqIDxwPgorICAgICogQHBhcmFtIGxhc3RQb3MgdGhlIGluZGV4IG9mIHRoZSBsaW5lIHdoaWNoIHdpbGwgYmVjb21lIHRoZSBsYXN0IHBvc2l0aXZlCisgICAgKiBlbnRyeSBpbiB0aGUgbGluZSB0YWJsZQorICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHNoaWZ0VGFibGVUbyhpbnQgbGFzdFBvcykKKyAgICB7CisgICAgICAgIExheW91dEluZm8gbGk7CisKKyAgICAgICAgd2hpbGUgKGxhc3RQb3MgPCBmTFRQb3NFbmQpICAgIHsgLy8gc2hpZnQgKydzIHRvIC0ncworICAgICAgICAgICAgbGkgPSBmTGluZVRhYmxlW2ZMVFBvc0VuZF07CisgICAgICAgICAgICBmTGluZVRhYmxlW2ZMVFBvc0VuZC0tXSA9IG51bGw7CisKKyAgICAgICAgICAgIGxpLm1ha2VSZWxhdGl2ZVRvRW5kKGZMVEN1clRleHRMZW4sIGZQaXhIZWlnaHQpOworCisgICAgICAgICAgICBmTGluZVRhYmxlWy0tZkxUTmVnU3RhcnRdID0gbGk7CisgICAgICAgIH0KKworICAgICAgICB3aGlsZSAobGFzdFBvcyA+PSBmTFROZWdTdGFydCkgeyAvLyBzaGlmdCAtJ3MgdG8gKydzCisgICAgICAgICAgICBsaSA9IGZMaW5lVGFibGVbZkxUTmVnU3RhcnRdOworICAgICAgICAgICAgZkxpbmVUYWJsZVtmTFROZWdTdGFydCsrXSA9ICAgIG51bGw7CisKKyAgICAgICAgICAgIGxpLm1ha2VSZWxhdGl2ZVRvQmVnaW5uaW5nKGZMVEN1clRleHRMZW4sIGZQaXhIZWlnaHQpOworCisgICAgICAgICAgICBmTGluZVRhYmxlWysrZkxUUG9zRW5kXSAgICA9IGxpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgKiBJbmNyZWFzZSB0aGUgc2l6ZSBvZiB0aGUgbGluZSB0YWJsZS4KKyAgICAqLworICAgIHByaXZhdGUgdm9pZCBleHBhbmRMaW5lVGFibGUoKQorICAgIHsKKyAgICAgICAgLy8gVGhpcyBqdXN0IGRvdWJsZXMgdGhlIHNpemUgb2YgdGhlIGxpbmUgdGFibGUuCisKKyAgICAgICAgTGF5b3V0SW5mbyBuZXdMaW5lVGFibGVbXSA9IG5ldyBMYXlvdXRJbmZvW2ZMaW5lVGFibGUubGVuZ3RoICogMl07CisgICAgICAgIGludCBuZXdOZWdTdGFydCA9IG5ld0xpbmVUYWJsZS5sZW5ndGggLSAoZkxpbmVUYWJsZS5sZW5ndGggLSBmTFROZWdTdGFydCk7CisKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShmTGluZVRhYmxlLCAwLCBuZXdMaW5lVGFibGUsIDAsIGZMVFBvc0VuZCArIDEpOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGZMaW5lVGFibGUsIGZMVE5lZ1N0YXJ0LCBuZXdMaW5lVGFibGUsIG5ld05lZ1N0YXJ0LCBmTFRTaXplIC0gZkxUTmVnU3RhcnQpOworCisgICAgICAgIGZMVE5lZ1N0YXJ0ID0gbmV3TmVnU3RhcnQ7CisgICAgICAgIGZMVFNpemUgPSBuZXdMaW5lVGFibGUubGVuZ3RoOworICAgICAgICBmTGluZVRhYmxlID0gbmV3TGluZVRhYmxlOworICAgIH0KKworICAgIC8qKgorICAgICogUmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgbGluZSBjb250YWluaW5nIHRoZSBwaXhlbCBwb3NpdGlvbiA8dHQ+ZmlsbENvb3JkPC90dD4uCisgICAgKiBJZiBmaWxsQ29vcmQgZXhjZWVkcyB0aGUgYm90dG9tIG9mIHRoZSB0ZXh0LCByZXR1cm4ga0FmdGVyTGFzdExpbmUuCisgICAgKiBJZiBmaWxsQ29vcmQgaXMgbGVzcyB0aGFuIHRoZSB0b3Agb2YgdGhlIHRleHQsIHJldHVybiBrQmVmb3JlRmlyc3RMaW5lLgorICAgICogPHA+CisgICAgKiBAcGFyYW0gZmlsbENvb3JkICJoZWlnaHQiIG9mIGxpbmUgdG8gbG9jYXRlLgorICAgICovCisgICAgcHJpdmF0ZSBpbnQgZmluZExpbmVBdChpbnQgZmlsbENvb3JkKQorICAgIHsKKyAgICAgICAgaW50IGxvdywgaGlnaCwgbWlkOworICAgICAgICBpbnQgbG93U3RhcnQsIGhpZ2hTdGFydCwgbWlkU3RhcnQ7CisKKyAgICAgICAgaWYgKGZpbGxDb29yZCA+PSBmUGl4SGVpZ2h0KQorICAgICAgICAgICAgcmV0dXJuIGtBZnRlckxhc3RMaW5lOworICAgICAgICBlbHNlIGlmIChmaWxsQ29vcmQgPCAwKQorICAgICAgICAgICAgcmV0dXJuIGtCZWZvcmVGaXJzdExpbmU7CisKKyAgICAgICAgaWYgKChmTFROZWdTdGFydCA8IGZMVFNpemUpICYmIChmaWxsQ29vcmQgPj0gZkxpbmVUYWJsZVtmTFROZWdTdGFydF0uZ2V0R3JhcGhpY1N0YXJ0KGZQaXhIZWlnaHQpKSkgeworICAgICAgICAgICAgZmlsbENvb3JkIC09IGZQaXhIZWlnaHQ7CisKKyAgICAgICAgICAgIGxvdyA9IGZMVE5lZ1N0YXJ0OworICAgICAgICAgICAgaGlnaCA9IGZMVFNpemU7CisgICAgICAgICAgICBoaWdoU3RhcnQgPSAwOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbG93ID0gMDsKKyAgICAgICAgICAgIGhpZ2ggPSBmTFRQb3NFbmQgKyAxOworICAgICAgICAgICAgaGlnaFN0YXJ0ID0gZkxpbmVUYWJsZVtmTFRQb3NFbmRdLmdldEdyYXBoaWNTdGFydCgwKSArIGZMaW5lVGFibGVbZkxUUG9zRW5kXS5nZXRIZWlnaHQoKTsKKyAgICAgICAgfQorICAgICAgICBsb3dTdGFydCA9IGZMaW5lVGFibGVbbG93XS5nZXRHcmFwaGljU3RhcnQoMCk7CisKKyAgICAgICAgZG8geworICAgICAgICAgICAgaWYgKGxvd1N0YXJ0ID09IGhpZ2hTdGFydCkKKyAgICAgICAgICAgICAgICByZXR1cm4gbG93OworCisgICAgICAgICAgICBtaWQgPSBsb3cgKyAoZmlsbENvb3JkIC0gbG93U3RhcnQpIC8gKGhpZ2hTdGFydCAtIGxvd1N0YXJ0KSAqIChoaWdoIC0gbG93KTsKKyAgICAgICAgICAgIG1pZFN0YXJ0ID0gZkxpbmVUYWJsZVttaWRdLmdldEdyYXBoaWNTdGFydCgwKTsKKworICAgICAgICAgICAgaWYgKG1pZFN0YXJ0ID4gZmlsbENvb3JkKSB7CisgICAgICAgICAgICAgICAgaGlnaCA9IG1pZDsKKyAgICAgICAgICAgICAgICBoaWdoU3RhcnQgPSBmTGluZVRhYmxlW2hpZ2hdLmdldEdyYXBoaWNTdGFydCgwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKG1pZFN0YXJ0ICsgZkxpbmVUYWJsZVttaWRdLmdldEhlaWdodCgpIDw9IGZpbGxDb29yZCkgeworICAgICAgICAgICAgICAgIGxvdyA9IG1pZCArIDE7CisgICAgICAgICAgICAgICAgbG93U3RhcnQgPSBmTGluZVRhYmxlW2xvd10uZ2V0R3JhcGhpY1N0YXJ0KDApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiBtaWQ7CisKKyAgICAgICAgfSB3aGlsZSAobG93IDwgaGlnaCk7CisKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGluIHRoZSBsaW5lLgorICAgICAqIEBwYXJhbSBsaW5lIHRoZSBpbnRlcm5hbCBpbmRleCBvZiB0aGUgbGluZSAoZGlyZWN0IGluZGV4IGludG8gbGluZXRhYmxlKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBsaW5lQ2hhclN0YXJ0SW50ZXJuYWwoaW50IGxpbmUpCisgICAgeworICAgICAgICByZXR1cm4gZkxpbmVUYWJsZVtsaW5lXS5nZXRDaGFyU3RhcnQoZkxUQ3VyVGV4dExlbik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgY2hhcmFjdGVyIGZvbGxvd2luZyB0aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIGxpbmUuCisgICAgICogQHBhcmFtIGxpbmUgdGhlIGludGVybmFsIGluZGV4IG9mIHRoZSBsaW5lIChkaXJlY3QgaW5kZXggaW50byBsaW5ldGFibGUpLgorICAgICAqLworICAgIHByaXZhdGUgaW50IGxpbmVDaGFyTGltaXRJbnRlcm5hbChpbnQgbGluZSkKKyAgICB7CisgICAgICAgIHJldHVybiBsaW5lQ2hhclN0YXJ0SW50ZXJuYWwobGluZSkgKyBmTGluZVRhYmxlW2xpbmVdLmdldENoYXJMZW5ndGgoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGdyYXBoaWMgc3RhcnQgb2YgdGhlIGxpbmUsIHVuYWRqdXN0ZWQgZm9yIGZpbGwgZGlyZWN0aW9uLgorICAgICAqIEBwYXJhbSBsaW5lIHRoZSBpbnRlcm5hbCBpbmRleCBvZiB0aGUgbGluZSAoZGlyZWN0IGluZGV4IGludG8gbGluZXRhYmxlKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBsaW5lR3JhcGhpY1N0YXJ0SW50ZXJuYWwoaW50IGxpbmUpCisgICAgeworICAgICAgICByZXR1cm4gZkxpbmVUYWJsZVtsaW5lXS5nZXRHcmFwaGljU3RhcnQoZlBpeEhlaWdodCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBncmFwaGljIGxpbWl0IG9mIHRoZSBsaW5lLCB1bmFkanVzdGVkIGZvciBmaWxsIGRpcmVjdGlvbi4KKyAgICAgKiBAcGFyYW0gbGluZSB0aGUgaW50ZXJuYWwgaW5kZXggb2YgdGhlIGxpbmUgKGRpcmVjdCBpbmRleCBpbnRvIGxpbmV0YWJsZSkuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbGluZUdyYXBoaWNMaW1pdEludGVybmFsKGludCBsaW5lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGxpbmVHcmFwaGljU3RhcnRJbnRlcm5hbChsaW5lKSArIGZMaW5lVGFibGVbbGluZV0uZ2V0SGVpZ2h0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgKiBSZXR1cm4gdGhlIG9mZnNldCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIHdoaWNoIGhhcyBub3QgYmVlbiBmb3JtYXR0ZWQuCisgICAgKiBJZiBhbGwgdGV4dCBoYXMgYmVlbiBmb3JtYXR0ZWQsIHJldHVybiB0aGUgY3VycmVudCB0ZXh0IGxlbmd0aC4KKyAgICAqLworICAgIHByaXZhdGUgaW50IGxhc3RMaW5lQ2hhclN0b3AoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGxpbmVDaGFyTGltaXRJbnRlcm5hbChsYXN0TGluZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSAndmFsaWQnIGxpbmUgY29udGFpbmluZyBvZmZzZXQuICBUaGlzIGRpZmZlcnMgZnJvbSBnZXRMaW5lQ29udGFpbmluZyBpbgorICAgICAqIHRoaXMgbWFwcyBrQWZ0ZXJMYXN0TGluZSB0byBsYXN0TGluZSgpLCBzbyB0aGF0IHRoZSByZXN1bHQgaXMgYWx3YXlzIGEgdmFsaWQKKyAgICAgKiBsaW5ldGFibGUgaW5kZXguCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZ2V0VmFsaWRMaW5lQ29udGFpbmluZyhUZXh0T2Zmc2V0IG9mZnNldCkgeworCisgICAgICAgIHJldHVybiBnZXRWYWxpZExpbmVDb250YWluaW5nKG9mZnNldC5mT2Zmc2V0LCBvZmZzZXQuZlBsYWNlbWVudCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgJ3ZhbGlkJyBsaW5lIGNvbnRhaW5pbmcgb2Zmc2V0LiAgVGhpcyBkaWZmZXJzIGZyb20gZ2V0TGluZUNvbnRhaW5pbmcgaW4KKyAgICAgKiB0aGlzIG1hcHMga0FmdGVyTGFzdExpbmUgdG8gbGFzdExpbmUoKSwgc28gdGhhdCB0aGUgcmVzdWx0IGlzIGFsd2F5cyBhIHZhbGlkCisgICAgICogbGluZXRhYmxlIGluZGV4LgorICAgICAqLworICAgIHByaXZhdGUgaW50IGdldFZhbGlkTGluZUNvbnRhaW5pbmcoaW50IGluc09mZnNldCwgYm9vbGVhbiBwbGFjZW1lbnQpCisgICAgeworICAgICAgICBpbnQgbGluZSA9IGdldExpbmVDb250YWluaW5nKGluc09mZnNldCwgcGxhY2VtZW50KTsKKyAgICAgICAgaWYgKGxpbmUgPT0ga0FmdGVyTGFzdExpbmUpCisgICAgICAgICAgICBsaW5lID0gbGFzdExpbmUoKTsKKyAgICAgICAgZWxzZSBpZiAobGluZSA9PSBrQmVmb3JlRmlyc3RMaW5lKQorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiRGVidWc6IGdldExpbmVDb250YWluaW5nIHJldHVybmVkIGtCZWZvcmVGaXJzdExpbmUiKTsKKworICAgICAgICByZXR1cm4gbGluZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFJldHVybiBpbmRleCBvZiBsaW5lIGNvbnRhaW5pbmcgPHR0Pm9mZnNldDwvdHQ+LgorICAgICogPz8/IElmIG9mZnNldCBpcyBhZnRlciBsYXN0IGZvcm1hdHRlZCBsaW5lLCByZXR1cm5zIGtBZnRlckxhc3RMaW5lLiAgSXMgdGhhdCBnb29kPworICAgICogPHA+CisgICAgKiBAcGFyYW0gb2Zmc2V0IHRoZSBvZmZzZXQgd2hvc2UgbGluZSBzaG91bGQgYmUgbG9jYXRlZAorICAgICogQHJldHVybnMgbGluZSBjb250YWluaW5nIDx0dD5vZmZzZXQ8L3R0PgorICAgICovCisgICAgcHJpdmF0ZSBpbnQgZ2V0TGluZUNvbnRhaW5pbmcoVGV4dE9mZnNldCBvZmZzZXQpIHsKKworICAgICAgICByZXR1cm4gZ2V0TGluZUNvbnRhaW5pbmcob2Zmc2V0LmZPZmZzZXQsIG9mZnNldC5mUGxhY2VtZW50KTsKKyAgICB9CisKKyAgICBwcml2YXRlIGludCBnZXRMaW5lQ29udGFpbmluZyhpbnQgaW5zT2Zmc2V0LCBib29sZWFuIHBsYWNlbWVudCkKKyAgICB7CisgICAgICAgIGludCBwb3MgPSBpbnNPZmZzZXQ7CisgICAgICAgIGlmIChwbGFjZW1lbnQgPT0gVGV4dE9mZnNldC5CRUZPUkVfT0ZGU0VUICYmIHBvcyA+IDApCisgICAgICAgICAgICAtLXBvczsKKworICAgICAgICBpZiAocG9zIDwgMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiRGVidWc6IGdldExpbmVDb250YWluaW5nIG9mZnNldCA8IDA6ICIgKyBwb3MpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHBvcyA+PSBsYXN0TGluZUNoYXJTdG9wKCkpIHsKKyAgICAgICAgICAgIHJldHVybiBlbXB0eVBhcmFncmFwaEF0RW5kT2ZUZXh0KCk/IGtBZnRlckxhc3RMaW5lIDogbGFzdExpbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBsb3csIGhpZ2gsIG1pZDsKKyAgICAgICAgaW50IGxvd1N0YXJ0LCBoaWdoU3RhcnQsIG1pZFN0YXJ0OworCisgICAgICAgIGlmICgoZkxUTmVnU3RhcnQgPCBmTFRTaXplKSAmJiAocG9zID49IGZMaW5lVGFibGVbZkxUTmVnU3RhcnRdLmdldENoYXJTdGFydChmTFRDdXJUZXh0TGVuKSkpIHsKKyAgICAgICAgICAgIHBvcyAtPSBmTFRDdXJUZXh0TGVuOworCisgICAgICAgICAgICBsb3cgPSBmTFROZWdTdGFydDsKKyAgICAgICAgICAgIGhpZ2ggPSBmTFRTaXplOworICAgICAgICAgICAgaGlnaFN0YXJ0ID0gMDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGxvdyA9IDA7CisgICAgICAgICAgICBoaWdoID0gZkxUUG9zRW5kICsgMTsKKyAgICAgICAgICAgIGhpZ2hTdGFydCA9IGZMaW5lVGFibGVbZkxUUG9zRW5kXS5nZXRDaGFyU3RhcnQoMCkgKyBmTGluZVRhYmxlW2ZMVFBvc0VuZF0uZ2V0Q2hhckxlbmd0aCgpOworICAgICAgICB9CisgICAgICAgIGxvd1N0YXJ0ID0gZkxpbmVUYWJsZVtsb3ddLmdldENoYXJTdGFydCgwKTsKKworICAgICAgICBkbyB7CisgICAgICAgICAgICBpZiAoaGlnaFN0YXJ0ID09IGxvd1N0YXJ0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGxvdzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbWlkID0gbG93ICsgKHBvcyAtIGxvd1N0YXJ0KSAvIChoaWdoU3RhcnQgLSBsb3dTdGFydCkgKiAoaGlnaCAtIGxvdyk7CisgICAgICAgICAgICBtaWRTdGFydCA9IGZMaW5lVGFibGVbbWlkXS5nZXRDaGFyU3RhcnQoMCk7CisKKyAgICAgICAgICAgIGlmIChtaWRTdGFydCA+IHBvcykgeworICAgICAgICAgICAgICAgIGhpZ2ggPSBtaWQ7CisgICAgICAgICAgICAgICAgaGlnaFN0YXJ0ID0gZkxpbmVUYWJsZVtoaWdoXS5nZXRDaGFyU3RhcnQoMCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChtaWRTdGFydCArIGZMaW5lVGFibGVbbWlkXS5nZXRDaGFyTGVuZ3RoKCkgPD0gcG9zKSB7CisgICAgICAgICAgICAgICAgbG93ID0gbWlkICsgMTsKKyAgICAgICAgICAgICAgICBsb3dTdGFydCA9IGZMaW5lVGFibGVbbG93XS5nZXRDaGFyU3RhcnQoMCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbWlkOworICAgICAgICAgICAgfQorCisgICAgICAgIH0gd2hpbGUgKGxvdyA8IGhpZ2gpOworCisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8qKgorICAgICogRGlzcGxheSB0ZXh0IGluIGRyYXdBcmVhLiBEb2VzIG5vdCByZWZvcm1hdCB0ZXh0LgorICAgICogPHA+CisgICAgKiBAcGFyYW0gZyB0aGUgR3JhcGhpY3Mgb2JqZWN0IGluIHdoaWNoIHRvIGRyYXcKKyAgICAqIEBwYXJhbSBkcmF3QXJlYSB0aGUgcmVjdGFuZ2xlLCBpbiBnJ3MgY29vcmRpbmF0ZSBzeXN0ZW0sIGluIHdoaWNoIHRvIGRyYXcKKyAgICAqIEBwYXJhbSBvcmlnaW4gdGhlIHRvcC1sZWZ0IGNvcm5lciBvZiB0aGUgdGV4dCwgaW4gZydzIGNvb3JkaW5hdGUgc3lzdGVtCisgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIHZvaWQgZHJhdyhHcmFwaGljcyBnLCBSZWN0YW5nbGUgZHJhd0FyZWEsIFBvaW50IG9yaWdpbikKKyAgICB7CisgICAgICAgIGRyYXcoZywgZHJhd0FyZWEsIG9yaWdpbiwgbnVsbCwgbnVsbCwgbnVsbCk7CisgICAgfQorCisgICAgcHVibGljIHN5bmNocm9uaXplZCB2b2lkIGRyYXcoR3JhcGhpY3MgZywgUmVjdGFuZ2xlIGRyYXdBcmVhLCBQb2ludCBvcmlnaW4sCisgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxTdGFydCwgVGV4dE9mZnNldCBzZWxTdG9wLCBDb2xvciBoaWdobGlnaHQpIHsKKworICAgICAgICBjaGVja1RpbWVTdGFtcCgpOworICAgICAgICBHcmFwaGljczJEIGcyZCA9IEdyYXBoaWNzMkRDb252ZXJzaW9uLmdldEdyYXBoaWNzMkQoZyk7CisKKyAgICAgICAgLy8gR2V0IHN0YXJ0aW5nIGFuZCBlbmRpbmcgZmlsbCAnaGVpZ2h0cy4nCisKKyAgICAgICAgaW50IHN0YXJ0RmlsbDsKKyAgICAgICAgaW50IGVuZEZpbGw7CisKKyAgICAgICAgaWYgKGZGaWxsSW5jKQorICAgICAgICAgICAgc3RhcnRGaWxsID0gZHJhd0FyZWEueSAtIG9yaWdpbi55OworICAgICAgICBlbHNlCisgICAgICAgICAgICBzdGFydEZpbGwgPSBvcmlnaW4ueSAtIChkcmF3QXJlYS55ICsgZHJhd0FyZWEuaGVpZ2h0KTsKKworICAgICAgICBlbmRGaWxsID0gc3RhcnRGaWxsICsgZHJhd0FyZWEuaGVpZ2h0OworCisgICAgICAgIC8vIFdlJ3JlIGRyYXdpbmcgb25lIG1vcmUgbGluZSB0aGFuIG5lY2Vzc2FyeSB3aGVuIHdlIHVwZGF0ZSBiZWNhdXNlIG9mIGEKKyAgICAgICAgLy8gc2VsZWN0aW9uIGNoYW5nZS4gIEJ1dCB3ZSdyZSBkcmF3aW5nIHRoZSByaWdodCBhbW91bnQgb2YgbGluZXMgd2hlbiB3ZQorICAgICAgICAvLyByZWZyZXNoIHRoZSB3aG9sZSBkaXNwbGF5LiAgVGhpcyBhZmZlY3RzIHJlbmRlcmluZyBzcGVlZCBzaWduaWZpY2FudGx5LAorICAgICAgICAvLyBhbmQgY3JlYXRpbmcgYSBuZXcgcGFyYWdyYXBoIHJlbmRlcmVyIGZvciBlYWNoIGxpbmUgZG9lc24ndCBoZWxwIGVpdGhlci4KKyAgICAgICAgLy8gRm9yIG5vdywgSSdtIGdvaW5nIHRvIHN1YnRyYWN0IG9uZSBmcm9tIHRoZSBmaWxsIGhlaWdodCwgb24gdGhlIHRoZW9yeQorICAgICAgICAvLyB0aGF0IHdlJ3JlIHBpY2tpbmcgdXAgdGhlIGV4dHJhIGxpbmUgYmVjYXVzZSBvZiBhIG9uZS1waXhlbCBzbG9wLgorICAgICAgICAvLyBUaGlzIHNlZW1zIHRvIHdvcmssIGFsdGhvdWdoIHBlcmhhcHMgaWYgb25lIHBpeGVsIG9mIGEgbGluZSBhdCB0aGUKKyAgICAgICAgLy8gYm90dG9tIHNob3VsZCBkcmF3LCBpdCB3b24ndC4KKworICAgICAgICAtLWVuZEZpbGw7CisKKyAgICAgICAgLy8gRm9ybWF0IHRvIGVuZGluZyBmaWxsIGhlaWdodCwgc28gbGluZSB0YWJsZSBpcyB2YWxpZCBmb3IgYWxsIGxpbmVzIHdlIG5lZWQgdG8gZHJhdy4KKworICAgICAgICBmb3JtYXRUb0hlaWdodChlbmRGaWxsKTsKKworICAgICAgICAvLyBHZXQgc3RhcnRpbmcgYW5kIGVuZGluZyBsaW5lcyBmb3IgZmlsbCBoZWlnaHQuICBJZiB0aGUgc3RhcnQgb2YgdGhlIGZpbGwgaXMgYWZ0ZXIgdGhlIGxhc3QgbGluZSwKKyAgICAgICAgLy8gb3IgdGhlIGVuZCBvZiB0aGUgZmlsbCBpcyBiZWZvcmUgdGhlIGZpcnN0IGxpbmUsIHJldHVybi4KKworICAgICAgICBpbnQgY3VyTGluZSA9IGZpbmRMaW5lQXQoc3RhcnRGaWxsKTsKKyAgICAgICAgaWYgKGN1ckxpbmUgPT0ga0FmdGVyTGFzdExpbmUpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGVsc2UgaWYgKGN1ckxpbmUgPT0ga0JlZm9yZUZpcnN0TGluZSkKKyAgICAgICAgICAgIGN1ckxpbmUgPSAwOworCisgICAgICAgIGludCBsYXN0TGluZSA9IGZpbmRMaW5lQXQoZW5kRmlsbCk7CisgICAgICAgIGlmIChsYXN0TGluZSA9PSBrQmVmb3JlRmlyc3RMaW5lKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBlbHNlIGlmIChsYXN0TGluZSA9PSBrQWZ0ZXJMYXN0TGluZSkKKyAgICAgICAgICAgIGxhc3RMaW5lID0gbGFzdExpbmUoKTsKKworICAgICAgICAvLyBHZXQgdGhlIGJhc2UgY29vcmRpbmF0ZXMgKGxpbmVYLCBsaW5lWSkgZm9yIHRoZSBzdGFydGluZyBsaW5lLgorCisgICAgICAgIGludCBsaW5lWCwgbGluZVk7CisKKyAgICAgICAgaW50IGdTdGFydCA9IGxpbmVHcmFwaGljU3RhcnRJbnRlcm5hbChjdXJMaW5lKTsKKworICAgICAgICBpZiAoZkhMaW5lKSB7CisgICAgICAgICAgICBpZiAoZkxpbmVJbmMpCisgICAgICAgICAgICAgICAgbGluZVggPSBvcmlnaW4ueDsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBsaW5lWCA9IG9yaWdpbi54IC0gZkxpbmVEaW07CisgICAgICAgICAgICBpZiAoZkZpbGxJbmMpCisgICAgICAgICAgICAgICAgbGluZVkgPSBvcmlnaW4ueSArIGdTdGFydDsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBsaW5lWSA9IG9yaWdpbi55IC0gKGdTdGFydCArIGZMaW5lVGFibGVbY3VyTGluZV0uZ2V0SGVpZ2h0KCkpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKGZMaW5lSW5jKQorICAgICAgICAgICAgICAgIGxpbmVZID0gb3JpZ2luLnk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbGluZVkgPSBvcmlnaW4ueSAtIGZMaW5lRGltOworICAgICAgICAgICAgaWYgKGZGaWxsSW5jKQorICAgICAgICAgICAgICAgIGxpbmVYID0gb3JpZ2luLnggKyBnU3RhcnQ7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbGluZVggPSBvcmlnaW4ueCAtIChnU3RhcnQgKyBmTGluZVRhYmxlW2N1ckxpbmVdLmdldEhlaWdodCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEl0ZXJhdGUgdGhyb3VnaCBsaW5lcywgZHJhd2luZyBlYWNoIG9uZSBhbmQgaW5jcmVtZW50aW5nIHRoZSBiYXNlIGNvb3JkaW5hdGUgYnkgdGhlIGxpbmUgaGVpZ2h0LgorCisKKyAgICAgICAgZm9yICg7IGN1ckxpbmUgPD0gbGFzdExpbmU7IGN1ckxpbmUrKykgeworICAgICAgICAgICAgLy8gQWRqdXN0IGN1ckxpbmUgYXJvdW5kIGdhcCBpbiBsaW5lIHRhYmxlLgorICAgICAgICAgICAgaWYgKChjdXJMaW5lID4gZkxUUG9zRW5kKSAmJiAoY3VyTGluZSA8IGZMVE5lZ1N0YXJ0KSkKKyAgICAgICAgICAgICAgICBjdXJMaW5lID0gZkxUTmVnU3RhcnQ7CisKKyAgICAgICAgICAgIGZMaW5lVGFibGVbY3VyTGluZV0ucmVuZGVyV2l0aEhpZ2hsaWdodChmTFRDdXJUZXh0TGVuLCBnMmQsIGZMaW5lRGltLCBsaW5lWCwgbGluZVksIHNlbFN0YXJ0LCBzZWxTdG9wLCBoaWdobGlnaHQpOworCisgICAgICAgICAgICAvLyBJbmNyZW1lbnQgbGluZSBiYXNlIGZvciBuZXh0IGl0ZXJhdGlvbi4KKyAgICAgICAgICAgIGludCBsaW5lSW5jID0gZkxpbmVUYWJsZVtjdXJMaW5lXS5nZXRIZWlnaHQoKTsKKyAgICAgICAgICAgIGlmIChmRmlsbEluYykgeworICAgICAgICAgICAgICAgIGlmIChmSExpbmUpCisgICAgICAgICAgICAgICAgICAgIGxpbmVZICs9IGxpbmVJbmM7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBsaW5lWCArPSBsaW5lSW5jOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoZkhMaW5lKQorICAgICAgICAgICAgICAgICAgICBsaW5lWSAtPSBsaW5lSW5jOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbGluZVggLT0gbGluZUluYzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogRm9ybWF0IHRleHQgdG8gZ2l2ZW4gaGVpZ2h0LgorICAgICogQHBhcmFtIGhlaWdodCB0aGUgaGVpZ2h0IHRvIHdoaWNoIHRleHQgd2lsbCBiZSBmb3JtYXR0ZWQuCisgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIHZvaWQgZm9ybWF0VG9IZWlnaHQoaW50IHJlcUhlaWdodCkKKyAgICB7CisgICAgICAgIGNoZWNrVGltZVN0YW1wKCk7CisgICAgICAgIGlmIChyZXFIZWlnaHQgPD0gZlBpeEhlaWdodCkgLy8gYWxyZWFkeSBmb3JtYXR0ZWQgdG8gdGhpcyBoZWlnaHQKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoZlRleHQubGVuZ3RoKCkgPT0gbGFzdExpbmVDaGFyU3RvcCgpKSAvLyBhbHJlYWR5IGZvcm1hdHRlZCBhbGwgdGhlIHRleHQKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAvLyArKysgc2hvdWxkIGRpc2FibGUgdXBkYXRlIHRocmVhZCBoZXJlCisKKyAgICAgICAgaWYgKGZMVE5lZ1N0YXJ0IDwgZkxUU2l6ZSkKKyAgICAgICAgICAgIHNoaWZ0VGFibGVUbyhmTFRTaXplIC0gMSk7CisKKyAgICAgICAgZm9ybWF0VGV4dCgwLCAwLCByZXFIZWlnaHQsIGZhbHNlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGb3JtYXQgdGV4dCB0byBnaXZlbiBvZmZzZXQuCisgICAgICogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IHRvIHdoaWNoIHRleHQgd2lsbCBiZSBmb3JtYXR0ZWQuCisgICAgICovCisgICAgIHByaXZhdGUgdm9pZCBmb3JtYXRUb09mZnNldChUZXh0T2Zmc2V0IG9mZnNldCkKKyAgICAgeworICAgICAgICBmb3JtYXRUb09mZnNldChvZmZzZXQuZk9mZnNldCwgb2Zmc2V0LmZQbGFjZW1lbnQpOworICAgICB9CisgICAgIAorICAgICBwcml2YXRlIHN5bmNocm9uaXplZCB2b2lkIGZvcm1hdFRvT2Zmc2V0KGludCBvZmZzZXQsIGJvb2xlYW4gcGxhY2VtZW50KSB7CisgICAgICAgIAorICAgICAgICBjaGVja1RpbWVTdGFtcCgpOworICAgICAgICBpbnQgbGxjcyA9IGxhc3RMaW5lQ2hhclN0b3AoKTsKKyAgICAgICAgaWYgKGxsY3MgPCBmTFRDdXJUZXh0TGVuKSB7CisgICAgICAgICAgICBpbnQgbGltaXQgPSBvZmZzZXQ7CisgICAgICAgICAgICBpZiAocGxhY2VtZW50ID09IFRleHRPZmZzZXQuQUZURVJfT0ZGU0VUKSAvLyBmb3JtYXQgdG8gcGFzdCBjaGFyYWN0ZXIgb2Zmc2V0IGlzIGFzc29jaWF0ZWQgd2l0aAorICAgICAgICAgICAgICAgIGxpbWl0Kys7CisgICAgICAgICAgICBpZiAobGltaXQgPj0gbGxjcykgeyAvLyA/Pz8gd291bGQgJz4nIGJlIG9rIGluc3RlYWQgb3IgJz49Jz8KKyAgICAgICAgICAgICAgICBpZiAobGltaXQgPiBmTFRDdXJUZXh0TGVuKQorICAgICAgICAgICAgICAgICAgICBsaW1pdCA9IGZMVEN1clRleHRMZW47CisKKyAgICAgICAgICAgICAgICBzaGlmdFRhYmxlVG8obGFzdExpbmUoKSk7CisgICAgICAgICAgICAgICAgZm9ybWF0VGV4dChsbGNzLCBsaW1pdCAtIGxsY3MsIEludGVnZXIuTUFYX1ZBTFVFLCB0cnVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICB9CisKKy8qKgorKiBSZWZvcm1hdCB0ZXh0IGFmdGVyIGEgY2hhbmdlLgorKiBBZnRlciB0aGUgZm9ybWF0dGVyJ3MgdGV4dCBjaGFuZ2VzLCBjYWxsIHRoaXMgbWV0aG9kIHRvIHJlZm9ybWF0LiAgRG9lcworKiBub3QgcmVkcmF3LgorKiBAcGFyYW0gYWZTdGFydCB0aGUgb2Zmc2V0IGludG8gdGhlIHRleHQgd2hlcmUgbW9kaWZpY2F0aW9uIGJlZ2FuOyAgaWUsIHRoZQorKiBmaXJzdCBjaGFyYWN0ZXIgaW4gdGhlIHRleHQgd2hpY2ggaXMgImRpZmZlcmVudCIgaW4gc29tZSB3YXkuICBEb2VzIG5vdAorKiBoYXZlIHRvIGJlIG5vbm5lZ2F0aXZlLgorKiBAcGFyYW0gYWZMZW5ndGggdGhlIG51bWJlciBvZiBuZXcgb3IgY2hhbmdlZCBjaGFyYWN0ZXJzIGluIHRoZSB0ZXh0LiAgU2hvdWxkIG5ldmVyCisqIGJlIGxlc3MgdGhhbiAwLgorKiBAcGFyYW0gdmlld1JlY3QgdGhlIFJlY3RhbmdsZSBpbiB3aGljaCB0aGUgdGV4dCB3aWxsIGJlIGRpc3BsYXllZC4gIFRoaXMgaXMgbmVlZGVkIGZvcgorKiByZXR1cm5pbmcgdGhlICJkYW1hZ2VkIiBhcmVhIC0gdGhlIGFyZWEgb2YgdGhlIHNjcmVlbiBpbiB3aGljaCB0aGUgdGV4dCBtdXN0IGJlIHJlZHJhd24uCisqIEBwYXJhbSBvcmlnaW4gdGhlIHRvcC1sZWZ0IGNvcm5lciBvZiB0aGUgdGV4dCwgaW4gdGhlIGRpc3BsYXkncyBjb29yZGluYXRlIHN5c3RlbQorKiBAcmV0dXJucyBhIDx0dD5SZWN0YW5nbGU8L3R0PiB3aGljaCBzcGVjaWZpZXMgdGhlIGFyZWEgaW4gd2hpY2ggdGV4dCBtdXN0IGJlCisqIHJlZHJhd24gdG8gcmVmbGVjdCB0aGUgY2hhbmdlIHRvIHRoZSB0ZXh0LgorKi8KKyAgICBwdWJsaWMgUmVjdGFuZ2xlIHVwZGF0ZUZvcm1hdChmaW5hbCBpbnQgYWZTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgaW50IGFmTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWN0YW5nbGUgdmlld1JlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvaW50IG9yaWdpbikKKyAgICB7CisgICAgICAgIGlmIChhZlN0YXJ0IDwgMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiRGVidWc6IHVwZGF0ZUZvcm1hdCBhZlN0YXJ0IDwgMDogIiArIGFmU3RhcnQpOworICAgICAgICB9CisgICAgICAgIGlmIChmQmdGb3JtYXRBbGxvd2VkKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJCYWNrZ3JvdW5kIGZvcm1hdHRpbmcgc2hvdWxkIGhhdmUgYmVlbiBkaXNhYmxlZCIpOworICAgICAgICB9CisgICAgICAgIGZDdXJUaW1lU3RhbXAgPSBmVGV4dC5nZXRUaW1lU3RhbXAoKTsKKyAgICAgICAgCisgICAgICAgIGludCBjdXJMaW5lID0gZ2V0VmFsaWRMaW5lQ29udGFpbmluZyhhZlN0YXJ0LCBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVCk7CisgICAgICAgIGludCBsaW5lU3RhcnRQb3MgPSBsaW5lQ2hhclN0YXJ0SW50ZXJuYWwoY3VyTGluZSk7CisKKyAgICAgICAgLy8gb3B0aW1pemUgYnkgZmluZGluZyBvdXQgd2hldGhlciBjaGFuZ2Ugb2NjdXJyZWQKKyAgICAgICAgLy8gYWZ0ZXIgZmlyc3Qgd29yZCBicmVhayBvbiBjdXJsaW5lCisKKyAgICAgICAgaW50IGZpcnN0UG9zc2libGVCcmVhazsKKworICAgICAgICBpZiAobGluZVN0YXJ0UG9zIDwgZlRleHQubGVuZ3RoKCkpIHsKKworICAgICAgICAgICAgaWYgKGZMaW5lQnJlYWsgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGZMaW5lQnJlYWsgPSBCcmVha0l0ZXJhdG9yLmdldExpbmVJbnN0YW5jZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQ2hhcmFjdGVySXRlcmF0b3IgY2hhckl0ZXIgPSBmVGV4dC5jcmVhdGVDaGFyYWN0ZXJJdGVyYXRvcigpOworICAgICAgICAgICAgY2hhckl0ZXIuc2V0SW5kZXgobGluZVN0YXJ0UG9zKTsKKyAgICAgICAgICAgIGZMaW5lQnJlYWsuc2V0VGV4dChjaGFySXRlcik7CisKKyAgICAgICAgICAgIGZpcnN0UG9zc2libGVCcmVhayA9IGZMaW5lQnJlYWsuZm9sbG93aW5nKGxpbmVTdGFydFBvcyk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZmlyc3RQb3NzaWJsZUJyZWFrID0gYWZTdGFydDsKKworICAgICAgICBpZiAoKGN1ckxpbmUgPiAwKSAmJiAoZmlyc3RQb3NzaWJsZUJyZWFrID09IEJyZWFrSXRlcmF0b3IuRE9ORSB8fCBhZlN0YXJ0IDw9IGZpcnN0UG9zc2libGVCcmVhaykpIHsKKyAgICAgICAgICAgIGN1ckxpbmUtLTsKKyAgICAgICAgICAgIGlmIChjdXJMaW5lIDwgZkxUTmVnU3RhcnQgJiYgY3VyTGluZSA+IGZMVFBvc0VuZCkKKyAgICAgICAgICAgICAgICBjdXJMaW5lID0gZkxUUG9zRW5kOworICAgICAgICB9CisKKyAgICAgICAgc2hpZnRUYWJsZVRvKGN1ckxpbmUpOworCisgICAgICAgIGludCBwaXhIZWlnaHQ7IC8vIGFmdGVyIHRoZSBmb3JtYXRUZXh0IGNhbGwsIGF0IGxlYXN0IHBpeEhlaWdodCB0ZXh0IG11c3QgYmUgZm9ybWF0dGVkCisKKyAgICAgICAgaWYgKGZITGluZSkgeworICAgICAgICAgICAgaWYgKGZGaWxsSW5jKQorICAgICAgICAgICAgICAgIHBpeEhlaWdodCA9IHZpZXdSZWN0LnkgKyB2aWV3UmVjdC5oZWlnaHQgLSBvcmlnaW4ueTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBwaXhIZWlnaHQgPSBvcmlnaW4ueSAtIHZpZXdSZWN0Lnk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpZiAoZkZpbGxJbmMpCisgICAgICAgICAgICAgICAgcGl4SGVpZ2h0ID0gdmlld1JlY3QueCArIHZpZXdSZWN0LndpZHRoIC0gb3JpZ2luLng7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcGl4SGVpZ2h0ID0gb3JpZ2luLnggLSB2aWV3UmVjdC54OworICAgICAgICB9CisKKyAgICAgICAgUmVjdGFuZ2xlIHIgPSBmb3JtYXRUZXh0KGFmU3RhcnQsIGFmTGVuZ3RoLCBwaXhIZWlnaHQsIGZhbHNlKTsKKworICAgICAgICAvL2R1bXBMaW5lVGFibGUoKTsKKworICAgICAgICBpZiAoKGZQaXhIZWlnaHQgPCBwaXhIZWlnaHQpICYmIChmTFROZWdTdGFydCA8IGZMVFNpemUpICYmIChmTFRDdXJUZXh0TGVuID4gbGFzdExpbmVDaGFyU3RvcCgpKSkgeworICAgICAgICAgICAgc2hpZnRUYWJsZVRvKGxhc3RMaW5lKCkpOworICAgICAgICAgICAgUmVjdGFuZ2xlIHMgPSBmb3JtYXRUZXh0KDAsIDAsIHBpeEhlaWdodCwgZmFsc2UpOworICAgICAgICAgICAgciA9IHIudW5pb24ocyk7CisgICAgICAgIH0KKworICAgICAgICBpbnRsUmVjdChvcmlnaW4sIHIpOworICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiRGFtYWdlZCByZWN0OiAiK3IrIjsgb3JpZ2luOiAiK29yaWdpbik7CisKKyAgICAgICAgLy8gZG9uJ3QgbmVlZCB0byBzeW5jaHJvbml6ZWQgaGVyZSwgYi9jIHRoZSBkYWVtb24gc2hvdWxkbid0IGJlIHJ1bm5pbmcgd2hlbgorICAgICAgICAvLyB0aGlzIGlzIGV4ZWN1dGluZworCisgICAgICAgIGlmIChmVGV4dC5sZW5ndGgoKSA8IGxhc3RMaW5lQ2hhclN0b3AoKSkKKyAgICAgICAgICAgIGVuYWJsZUJHRm9ybWF0KCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHN0b3BCYWNrZ3JvdW5kRm9ybWF0dGluZygpOworCisgICAgICAgIC8vZHVtcExpbmVUYWJsZSgpOworCisgICAgICAgIHJldHVybiByOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIExpbmVCcmVha01lYXN1cmVyIG1ha2VNZWFzdXJlcihpbnQgcGFyYWdyYXBoU3RhcnQsIGludCBwYXJhZ3JhcGhMaW1pdCkgeworCisgICAgICAgIE1UZXh0SXRlcmF0b3IgaXRlciA9IG5ldyBNVGV4dEl0ZXJhdG9yKGZUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmRm9udFJlc29sdmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhZ3JhcGhTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYWdyYXBoTGltaXQpOworICAgICAgICBMaW5lQnJlYWtNZWFzdXJlciBtZWFzdXJlciA9IG5ldyBMaW5lQnJlYWtNZWFzdXJlcihpdGVyLCBmRm9udFJlbmRlckNvbnRleHQpOworICAgICAgICBpZiAoZmdDYWNoZU1lYXN1cmVycykgeworICAgICAgICAgICAgZkNhY2hlZE1lYXN1cmVyU3RhcnQgPSBwYXJhZ3JhcGhTdGFydDsKKyAgICAgICAgICAgIGZDYWNoZWRNZWFzdXJlckxpbWl0ID0gcGFyYWdyYXBoTGltaXQ7CisgICAgICAgICAgICBmQ2FjaGVkTWVhc3VyZXIgPSBtZWFzdXJlcjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbWVhc3VyZXI7CisgICAgfSAgICAgICAgCisKKy8qKgorKiBDb21wdXRlIHRleHQgZm9ybWF0LiAgVGhpcyBtZXRob2QgY2FsY3VsYXRlcyB0ZXh0IGZvcm1hdDsgIGl0IGNhbiBiZQorKiBjYWxsZWQgZm9yIHZhcmlvdXMgcHVycG9zZXM6ICB0byByZWZvcm1hdCB0ZXh0IGFmdGVyIGFuIGVkaXQsIHRvCisqIGZvcm1hdCB0ZXh0IHRvIGEgcGFydGljdWxhciBoZWlnaHQsIG9yIHRvIGZvcm1hdCB0ZXh0IHVwIHRvIGEKKyogcGFydGljdWxhciBvZmZzZXQuCisqIDxwPgorKiBUaGUgY2FsbGluZyBtZXRob2QgbXVzdCBlbnN1cmUgdGhhdCA8dHQ+ZkxpbmVUYWJsZTwvdHQ+IGhhcyBiZWVuIHNoaWZ0ZWQKKyogc3VjaCB0aGF0IHRoZSBsYXN0IHBvc2l0aXZlIGxpbmUgaXMgd2hlcmUgdGhlIGZvcm1hdHRpbmcgb3BlcmF0aW9uIHdpbGwKKyogYmVnaW4uCisqIDxwPgorKiBDYWxsZWQgYnk6IDx0dD5mb3JtYXRUb0hlaWdodCgpPC90dD4sIDx0dD51cGRhdGVGb3JtYXQoKTwvdHQ+LAorKiA8dHQ+dGV4dE9mZnNldFRvUG9pbnQoKTwvdHQ+LCA8dHQ+Z2V0Qm91bmRpbmdSZWN0KCk8L3R0PgorKiBAcGFyYW0gYWZTdGFydCB0aGUgb2Zmc2V0IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaW4gdGhlIHRleHQgd2hpY2ggaGFzIGNoYW5nZWQKKyogQHBhcmFtIGFmTGVuZ3RoIHRoZSBudW1iZXIgb2YgbmV3IG9yIGNoYW5nZWQgY2hhcmFjdGVycyBpbiB0aGUgdGV4dAorKiBAcGFyYW0gcmVxSGVpZ2h0IHRoZSBwaXhlbCBoZWlnaHQgdG8gd2hpY2ggdGV4dCBtdXN0IGJlIGZvcm1hdHRlZC4gIElnbm9yZWQKKyogaWYgPHR0PmZvcm1hdEFsbE5ld1RleHQ8L3R0PiBpcyA8dHQ+dHJ1ZTwvdHQ+LCBvciBpZiBvbGQgbGluZXMgcmVtYWluIGluIHRoZQorKiBsaW5lIHRhYmxlIGFmdGVyIGFsbCBjaGFuZ2VkIHRleHQgaGFzIGJlZW4gZm9ybWF0dGVkLgorKiBAcGFyYW0gc2Vla09mZnNldEF0RW5kIGlmIDx0dD50cnVlPC90dD4sIGZvcm1hdHRpbmcgY29udGludWVzIHVudGlsIHRoZSBsaW5lCisqIGNvbnRhaW5pbmcgYWZTdGFydCthZkxlbmd0aCBoYXMgYmVlbiBmb3JtYXR0ZWQuICBJZiBmYWxzZSwgZm9ybWF0dGluZyBtYXkgc3RvcAorKiB3aGVuIHJlcUhlaWdodCBoYXMgYmVlbiByZWFjaGVkLiAgVGhpcyBwYXJhbWV0ZXIgc2hvdWxkIGJlIDx0dD50cnVlPC90dD4gPGI+b25seTwvYj4KKyogaWYgdGhlIG9iamVjdCBvZiB0aGUgZm9ybWF0dGluZyBvcGVyYXRpb24gaXMgdG8gZXh0ZW5kIGZvcm1hdHRpbmcgdG8gYSBwYXJ0aWN1bGFyCisqIG9mZnNldCB3aXRoaW4gdGhlIHRleHQ7ICBpdCBzaG91bGQgYmUgPHR0PmZhbHNlPC90dD4gZXZlcnl3aGVyZSBlbHNlLgorKiBAcmV0dXJucyBhIHJlY3RhbmdsZSwgcmVsYXRpdmUgdG8gdGhlIHRvcC1sZWZ0IG9mIHRoZSB0ZXh0LCB3aGljaCBlbmNsb3NlcyB0aGUKKyogc2NyZWVuIGFyZWEgd2hvc2UgYXBwZWFyYW5jZSBoYXMgY2hhbmdlZCBkdWUgdG8gdGhlIHJlZm9ybWF0dGluZy4KKyovCisKKyAgICBwcml2YXRlIFJlY3RhbmdsZSBmb3JtYXRUZXh0KGludCBhZlN0YXJ0LCBmaW5hbCBpbnQgYWZMZW5ndGgsIGludCByZXFIZWlnaHQsIGJvb2xlYW4gc2Vla09mZnNldEF0RW5kKQorICAgIHsKKyAgICAvKiBhc3N1bWVzIGxpbmUgdGFibGUgc2hpZnRlZCBzdWNoIHRoYXQgZmlyc3QgbGluZSB0byBmb3JtYXQgaXMKKyAgICBsYXN0IHBvc2l0aXZlIGxpbmUgKi8KKworICAgICAgICBpZiAoYWZMZW5ndGggPCAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJhZkxlbmd0aCA8IDAuICBhZkxlbmd0aD0iICsgYWZMZW5ndGgpOworICAgICAgICB9CisKKyAgICAgICAgaW50IG5ld1RleHRFbmQgPSBhZlN0YXJ0ICsgYWZMZW5ndGg7CisKKyAgICAgICAgZmluYWwgaW50IG5ld0N1clRleHRMZW4gPSBmVGV4dC5sZW5ndGgoKTsKKworICAgICAgICAvLyB2YXJpYWJsZSBub3QgdXNlZCBpbnQgb2xkUGl4SGVpZ2h0ID0gZlBpeEhlaWdodDsKKyAgICAgICAgaW50IG9sZEZ1bGxQaXhIZWlnaHQgPSBmRnVsbFBpeEhlaWdodDsKKyAgICAgICAgZlBpeEhlaWdodCAtPSBmTGluZVRhYmxlW2ZMVFBvc0VuZF0uZ2V0SGVpZ2h0KCk7CisKKyAgICAgICAgaW50IGN1ckdyYXBoaWNTdGFydCA9IGZMaW5lVGFibGVbZkxUUG9zRW5kXS5nZXRHcmFwaGljU3RhcnQoZlBpeEhlaWdodCk7CisgICAgICAgIGludCBjdXJMaW5lU3RhcnQgPSBmTGluZVRhYmxlW2ZMVFBvc0VuZF0uZ2V0Q2hhclN0YXJ0KG5ld0N1clRleHRMZW4pOworICAgICAgICAKKyAgICAgICAgaW50IGN1clBhcmFncmFwaFN0YXJ0ID0gZlRleHQucGFyYWdyYXBoU3RhcnQoY3VyTGluZVN0YXJ0KTsKKyAgICAgICAgaW50IGN1clBhcmFncmFwaExpbWl0ID0gSW50ZWdlci5NSU5fVkFMVUU7IC8vIGR1bW15IHZhbHVlCisKKyAgICAgICAgaW50IGRhbWFnZVN0YXJ0ID0gY3VyR3JhcGhpY1N0YXJ0OworCisgICAgICAgIFBhcmFncmFwaFJlbmRlcmVyIHJlbmRlcmVyID0gbnVsbDsKKyAgICAgICAgTGluZUJyZWFrTWVhc3VyZXIgbWVhc3VyZXIgPSBudWxsOworICAgICAgICAKKyAgICAgICAgLy8gdHJ5IHRvIHVzZSBjYWNoZWQgTGluZUJyZWFrTWVhc3VyZXIgaWYgcG9zc2libGUKKyAgICAgICAgaWYgKGZDYWNoZWRNZWFzdXJlciAhPSBudWxsICYmIAorICAgICAgICAgICAgY3VyUGFyYWdyYXBoU3RhcnQgPT0gZkNhY2hlZE1lYXN1cmVyU3RhcnQpIHsKKworICAgICAgICAgICAgY3VyUGFyYWdyYXBoTGltaXQgPSBmVGV4dC5wYXJhZ3JhcGhMaW1pdChjdXJQYXJhZ3JhcGhTdGFydCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgaWYgKG5ld0N1clRleHRMZW4gLSBmTFRDdXJUZXh0TGVuID09IDEgJiYgYWZMZW5ndGggPT0gMSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoY3VyUGFyYWdyYXBoTGltaXQgPT0gZkNhY2hlZE1lYXN1cmVyTGltaXQrMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgTVRleHRJdGVyYXRvciBpdGVyID0gbmV3IE1UZXh0SXRlcmF0b3IoZlRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmRm9udFJlc29sdmVyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1clBhcmFncmFwaFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyUGFyYWdyYXBoTGltaXQpOworICAgICAgICAgICAgICAgICAgICAgICAgZkNhY2hlZE1lYXN1cmVyLmluc2VydENoYXIoaXRlciwgYWZTdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICBmQ2FjaGVkTWVhc3VyZXJMaW1pdCArPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgbWVhc3VyZXIgPSBmQ2FjaGVkTWVhc3VyZXI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoZkxUQ3VyVGV4dExlbiAtIG5ld0N1clRleHRMZW4gPT0gMSAmJiBhZkxlbmd0aCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChmQ2FjaGVkTWVhc3VyZXJMaW1pdCA+IGZDYWNoZWRNZWFzdXJlclN0YXJ0ICsgMSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJQYXJhZ3JhcGhMaW1pdCA9PSBmQ2FjaGVkTWVhc3VyZXJMaW1pdC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBNVGV4dEl0ZXJhdG9yIGl0ZXIgPSBuZXcgTVRleHRJdGVyYXRvcihmVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZGb250UmVzb2x2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJQYXJhZ3JhcGhTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1clBhcmFncmFwaExpbWl0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZDYWNoZWRNZWFzdXJlci5kZWxldGVDaGFyKGl0ZXIsIGFmU3RhcnQpOworICAgICAgICAgICAgICAgICAgICAgICAgZkNhY2hlZE1lYXN1cmVyTGltaXQgLT0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1lYXN1cmVyID0gZkNhY2hlZE1lYXN1cmVyOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2goQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBmQ2FjaGVkTWVhc3VyZXIgPSBudWxsOworICAgICAgICAgICAgICAgIGZnQ2FjaGVNZWFzdXJlcnMgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKG1lYXN1cmVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIHNldCB1cCByZW5kZXJlciBzaW5jZSB0aGUgcGFyYWdyYXBoIHVwZGF0ZSBpbiB0aGUKKyAgICAgICAgICAgICAgICAvLyBmb3JtYXR0aW5nIGxvb3Agd2lsbCBub3QgaGFwcGVuCisgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwIHN0eWxlID0gZlRleHQucGFyYWdyYXBoU3R5bGVBdChjdXJQYXJhZ3JhcGhTdGFydCk7CisgICAgICAgICAgICAgICAgcmVuZGVyZXIgPSBnZXRSZW5kZXJlckZvcihzdHlsZSk7CisgICAgICAgICAgICAgICAgbWVhc3VyZXIuc2V0UG9zaXRpb24oY3VyTGluZVN0YXJ0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKG1lYXN1cmVyID09IG51bGwpIHsKKyAgICAgICAgICAgIC8vIHRyaWdnZXIgcGFyYWdyYXBoIHVwZGF0ZSBhdCBzdGFydCBvZiBmb3JtYXR0aW5nIGxvb3AKKyAgICAgICAgICAgIGN1clBhcmFncmFwaExpbWl0ID0gY3VyUGFyYWdyYXBoU3RhcnQ7CisgICAgICAgICAgICBjdXJQYXJhZ3JhcGhTdGFydCA9IDA7CisgICAgICAgIH0KKworICAgICAgICBmTFRDdXJUZXh0TGVuID0gbmV3Q3VyVGV4dExlbjsKKyAgICAgICAgCisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4oImxpbmU6ICIgKyBmTFRQb3NFbmQgKyAiLCBjbHM6ICIgKyBjdXJMaW5lU3RhcnQpOworCisKKyAgICAgICAgICAgIGlmIChjdXJMaW5lU3RhcnQgPj0gY3VyUGFyYWdyYXBoTGltaXQpIHsKKyAgICAgICAgICAgICAgICBjdXJQYXJhZ3JhcGhTdGFydCA9IGN1clBhcmFncmFwaExpbWl0OworICAgICAgICAgICAgICAgIGN1clBhcmFncmFwaExpbWl0ID0gZlRleHQucGFyYWdyYXBoTGltaXQoY3VyUGFyYWdyYXBoU3RhcnQpOworCisgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwIHN0eWxlID0gZlRleHQucGFyYWdyYXBoU3R5bGVBdChjdXJQYXJhZ3JhcGhTdGFydCk7CisgICAgICAgICAgICAgICAgcmVuZGVyZXIgPSBnZXRSZW5kZXJlckZvcihzdHlsZSk7CisKKyAgICAgICAgICAgICAgICBpZiAoY3VyUGFyYWdyYXBoU3RhcnQgPCBjdXJQYXJhZ3JhcGhMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICBtZWFzdXJlciA9IG1ha2VNZWFzdXJlcihjdXJQYXJhZ3JhcGhTdGFydCwgY3VyUGFyYWdyYXBoTGltaXQpOworICAgICAgICAgICAgICAgICAgICBtZWFzdXJlci5zZXRQb3NpdGlvbihjdXJMaW5lU3RhcnQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbWVhc3VyZXIgPSBudWxsOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGJvb2xlYW4gaGF2ZU9sZERpcmVjdGlvbiA9IGZMaW5lVGFibGVbZkxUUG9zRW5kXSAhPSBudWxsOworICAgICAgICAgICAgICAgIGJvb2xlYW4gb2xkRGlyZWN0aW9uID0gZmFsc2U7IC8vICBkdW1teSB2YWx1ZSBmb3IgY29tcGlsZXIKKyAgICAgICAgICAgICAgICBpZiAoaGF2ZU9sZERpcmVjdGlvbikgeworICAgICAgICAgICAgICAgICAgICBvbGREaXJlY3Rpb24gPSBmTGluZVRhYmxlW2ZMVFBvc0VuZF0uaXNMZWZ0VG9SaWdodCgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGZMaW5lVGFibGVbZkxUUG9zRW5kXSA9IHJlbmRlcmVyLmxheW91dChmVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkxpbmVUYWJsZVtmTFRQb3NFbmRdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZWFzdXJlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkZvbnRSZW5kZXJDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJQYXJhZ3JhcGhTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyUGFyYWdyYXBoTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZXcmFwID8gZkxpbmVEaW0gOiBJbnRlZ2VyLk1BWF9WQUxVRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkxpbmVEaW0pOworICAgICAgICAgICAgICAgIGlmIChoYXZlT2xkRGlyZWN0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChmTGluZVRhYmxlW2ZMVFBvc0VuZF0uaXNMZWZ0VG9SaWdodCgpICE9IG9sZERpcmVjdGlvbikgeworICAgICAgICAgICAgICAgICAgICAgICAgbmV3VGV4dEVuZCA9IE1hdGgubWF4KG5ld1RleHRFbmQsIGN1clBhcmFncmFwaExpbWl0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIExheW91dEluZm8gdGhlTGluZSA9IGZMaW5lVGFibGVbZkxUUG9zRW5kXTsKKworICAgICAgICAgICAgICAgIHRoZUxpbmUuc2V0R3JhcGhpY1N0YXJ0KGN1ckdyYXBoaWNTdGFydCk7CisgICAgICAgICAgICAgICAgY3VyR3JhcGhpY1N0YXJ0ICs9IHRoZUxpbmUuZ2V0SGVpZ2h0KCk7CisKKyAgICAgICAgICAgICAgICBmUGl4SGVpZ2h0ICs9IHRoZUxpbmUuZ2V0SGVpZ2h0KCk7CisgICAgICAgICAgICAgICAgY3VyTGluZVN0YXJ0ICs9IHRoZUxpbmUuZ2V0Q2hhckxlbmd0aCgpOworCisgICAgICAgICAgICAgICAgaWYgKCFmV3JhcCkgeworICAgICAgICAgICAgICAgICAgICBpbnQgbGluZVdpZHRoID0gdGhlTGluZS5nZXRUb3RhbEFkdmFuY2UoKSArIHRoZUxpbmUuZ2V0TGVhZGluZ01hcmdpbigpOworICAgICAgICAgICAgICAgICAgICBpZiAodGhlTGluZS5pc0xlZnRUb1JpZ2h0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmTWF4WCA8IGxpbmVXaWR0aCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZNYXhYID0gbGluZVdpZHRoOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZMaW5lRGltLWxpbmVXaWR0aCA8IGZNaW5YKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZk1pblggPSBmTGluZURpbS1saW5lV2lkdGg7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgIE5leHQsIGRpc2NhcmQgb2Jzb2xldGUgbGluZXMuICBBIGxpbmUgaXMgb2Jzb2xldGUgaWYgaXQKKyAgICAgICAgICAgICAgICBjb250YWlucyBuZXcgdGV4dCBvciB0ZXh0IHdoaWNoIGhhcyBiZWVuIGZvcm1hdHRlZC4KKyAgICAgICAgICAgICovCisKKyAgICAgICAgICAgIHdoaWxlIChmTFROZWdTdGFydCA8IGZMVFNpemUpIHsKKyAgICAgICAgICAgICAgICBpbnQgbGluZVBvcyA9IGZMaW5lVGFibGVbZkxUTmVnU3RhcnRdLmdldENoYXJTdGFydChuZXdDdXJUZXh0TGVuKTsKKyAgICAgICAgICAgICAgICBpZiAobGluZVBvcyA+PSBjdXJMaW5lU3RhcnQgJiYgbGluZVBvcyA+PSBuZXdUZXh0RW5kKQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgIC8vIFN5c3RlbS5vdXQucHJpbnRsbigiZGVsZXRlIG5lZyBsaW5lOiAiICsgZkxUTmVnU3RhcnQpOworICAgICAgICAgICAgICAgIGZQaXhIZWlnaHQgLT0gZkxpbmVUYWJsZVtmTFROZWdTdGFydF0uZ2V0SGVpZ2h0KCk7CisgICAgICAgICAgICAgICAgZkxpbmVUYWJsZVtmTFROZWdTdGFydCsrXSA9IG51bGw7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGludCBzdG9wQXQ7CisgICAgICAgICAgICBpZiAoZkxUTmVnU3RhcnQgPCBmTFRTaXplKQorICAgICAgICAgICAgICAgIHN0b3BBdCA9IGZMaW5lVGFibGVbZkxUTmVnU3RhcnRdLmdldENoYXJTdGFydChuZXdDdXJUZXh0TGVuKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBzdG9wQXQgPSBuZXdDdXJUZXh0TGVuOworCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgIE5vdywgaWYgZXhpdCBjb25kaXRpb25zIGFyZW4ndCBtZXQsIGNyZWF0ZSBhIG5ldyBsaW5lLgorICAgICAgICAgICAgKi8KKworICAgICAgICAgICAgaWYgKHNlZWtPZmZzZXRBdEVuZCkgeworICAgICAgICAgICAgICAgIGlmICgoY3VyTGluZVN0YXJ0ID49IG5ld1RleHRFbmQpICYmIChmTFROZWdTdGFydCA9PSBmTFRTaXplKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4oImJyZWFrIDEiKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGN1ckxpbmVTdGFydCA+PSBzdG9wQXQpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKCJjdXJMaW5lU3RhcnQ6ICIgKyBjdXJMaW5lU3RhcnQgKyAiID49IHN0b3BBdDogIiArIHN0b3BBdCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmIChmTFROZWdTdGFydD09ZkxUU2l6ZSAmJiBmUGl4SGVpZ2h0ID49IHJlcUhlaWdodCkgeworICAgICAgICAgICAgICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4oImJyZWFrIDMiKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoZkxUUG9zRW5kICsgMSA9PSBmTFROZWdTdGFydCkKKyAgICAgICAgICAgICAgICBleHBhbmRMaW5lVGFibGUoKTsKKworICAgICAgICAgICAgZkxpbmVUYWJsZVsrK2ZMVFBvc0VuZF0gPSBudWxsOyAvLyB3aWxsIGJlIGNyZWF0ZWQgYnkgUmVuZGVyZXIKKyAgICAgICAgfQorICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnQoIlxuIik7CisKKyAgICAgICAgaWYgKG5ld0N1clRleHRMZW4gPT0gMCkgeworICAgICAgICAgICAgZkxpbmVUYWJsZVswXSA9IHBzZXVkb0xpbmVJbmZvKGZMaW5lVGFibGVbMF0sIDApOworICAgICAgICAgICAgZlBpeEhlaWdodCA9IGZMaW5lVGFibGVbMF0uZ2V0SGVpZ2h0KCk7CisgICAgICAgIH0KKyAgICAgICAgZkZ1bGxQaXhIZWlnaHQgPSBmUGl4SGVpZ2h0OworCisgICAgICAgIGlmIChpc1BhcmFCcmVha0JlZm9yZShuZXdDdXJUZXh0TGVuKSkgeworICAgICAgICAgICAgZkZ1bGxQaXhIZWlnaHQgKz0gbGFzdENoYXJIZWlnaHQoKTsKKyAgICAgICAgfQorLyoKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJjdXJMaW5lU3RhcnQ6ICIgKyBjdXJMaW5lU3RhcnQgKworICAgICAgICAgICAgIiwgZkxUUG9zRW5kOiAiICsgZkxUUG9zRW5kICsKKyAgICAgICAgICAgICIsIGZMVE5lZ1N0YXJ0OiAiICsgZkxUTmVnU3RhcnQgKworICAgICAgICAgICAgIiwgZkxUU2l6ZTogIiArIGZMVFNpemUpOworCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigib2xkRnVsbFBpeEhlaWdodDogIiArIG9sZEZ1bGxQaXhIZWlnaHQgKyAiLCBuZXdGdWxsUGl4SGVpZ2h0OiAiICsgZkZ1bGxQaXhIZWlnaHQpOworKi8KKyAgICAgICAgaW50IGRhbWFnZUxlbmd0aDsKKyAgICAgICAgaWYgKGZGdWxsUGl4SGVpZ2h0ID09IG9sZEZ1bGxQaXhIZWlnaHQpIHsKKyAgICAgICAgICAgIGRhbWFnZUxlbmd0aCA9IGZMaW5lVGFibGVbZkxUUG9zRW5kXS5nZXRHcmFwaGljU3RhcnQoZlBpeEhlaWdodCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGZMaW5lVGFibGVbZkxUUG9zRW5kXS5nZXRIZWlnaHQoKSAtIGRhbWFnZVN0YXJ0OworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZGFtYWdlTGVuZ3RoID0gTWF0aC5tYXgoZkZ1bGxQaXhIZWlnaHQsIG9sZEZ1bGxQaXhIZWlnaHQpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG5ldyBSZWN0YW5nbGUoZk1pblgsIGRhbWFnZVN0YXJ0LCBmTWF4WC1mTWluWCwgZGFtYWdlTGVuZ3RoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZHVtcExpbmVUYWJsZSgpCisgICAgeworICAgICAgICBpbnQgaTsKKworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImZMVEN1clRleHRMZW49IiArIGZMVEN1clRleHRMZW4gKyAiICIgKTsKKyAgICAgICAgZm9yIChpPTA7IGk8PSBmTFRQb3NFbmQ7IGkrKykKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTGluZSAiICsgaSArICIgc3RhcnRzIGF0ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBmTGluZVRhYmxlW2ldLmdldENoYXJTdGFydChmTFRDdXJUZXh0TGVuKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgYW5kIGV4dGVuZHMgIiArIGZMaW5lVGFibGVbaV0uZ2V0Q2hhckxlbmd0aCgpKTsKKworICAgICAgICBmb3IgKGk9ZkxUTmVnU3RhcnQ7IGk8IGZMVFNpemU7IGkrKykKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTGluZSAiICsgKGktZkxUTmVnU3RhcnQrZkxUUG9zRW5kKzEpICsgIiBzdGFydHMgYXQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGZMaW5lVGFibGVbaV0uZ2V0Q2hhclN0YXJ0KGZMVEN1clRleHRMZW4pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBhbmQgZXh0ZW5kcyAiICsgZkxpbmVUYWJsZVtpXS5nZXRDaGFyTGVuZ3RoKCkpOworICAgIH0KKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgaW50IG1pblgoKSB7CisgICAgCisgICAgICAgIHJldHVybiBmTWluWDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBSZXR1cm4gdGhlIGhvcml6b250YWwgZXh0ZW50IG9mIHRoZSB0ZXh0LCBpbiBwaXhlbHMuCisgICAgKiA8cD4KKyAgICAqIFRoaXMgcmV0dXJucyBhbiBhcHByb3hpbWF0aW9uIGJhc2VkIG9uIHRoZSBjdXJyZW50bHkgZm9ybWF0dGVkIHRleHQuCisgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIGludCBtYXhYKCkKKyAgICB7CisgICAgICAgIGNoZWNrVGltZVN0YW1wKCk7CisKKyAgICAgICAgcmV0dXJuIGZNYXhYOworICAgIH0KKworICAgIC8qKgorICAgICogUmV0dXJuIHRoZSBoZWlnaHQgb2YgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0LgorICAgICoKKyAgICAqIFRoaXMgaXMgdXNlZCBmb3IgdGhlICdleHRyYSBoZWlnaHQnIG5lZWRlZCB0byBkaXNwbGF5IGEgY2FyZXQgYXQgdGhlIGVuZCBvZiB0aGUgdGV4dCB3aGVuIHRoZQorICAgICogdGV4dCBpcyBlbXB0eSBvciBlbmRzIHdpdGggYSBuZXdsaW5lLgorICAgICovCisgICAgcHJpdmF0ZSBpbnQgbGFzdENoYXJIZWlnaHQoKQorICAgIHsKKyAgICAgICAgaW50IGNoYXJJbmRleCA9IGxhc3RMaW5lQ2hhclN0b3AoKSAtIDE7CisgICAgICAgIEF0dHJpYnV0ZU1hcCBzdCA9IGZUZXh0LmNoYXJhY3RlclN0eWxlQXQoY2hhckluZGV4KTsKKyAgICAgICAgRGVmYXVsdENoYXJhY3Rlck1ldHJpYy5NZXRyaWMgbWV0cmljID0gZkRlZmF1bHRDaGFyTWV0cmljLmdldE1ldHJpY0ZvclN0eWxlKHN0KTsKKworICAgICAgICBpbnQgaGVpZ2h0ID0gbWV0cmljLmdldEFzY2VudCgpOworICAgICAgICBoZWlnaHQgKz0gbWV0cmljLmdldERlc2NlbnQoKTsKKyAgICAgICAgaGVpZ2h0ICs9IG1ldHJpYy5nZXRMZWFkaW5nKCk7CisKKyAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgY2hhcmFjdGVyIGF0IHBvcyBpcyBhIHBhcmFncmFwaCBzZXBhcmF0b3IuCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGlzUGFyYUJyZWFrQmVmb3JlKGludCBwb3MpCisgICAgeworICAgICAgICByZXR1cm4gcG9zID4gMCAmJiAoZlRleHQuYXQocG9zIC0gMSkgPT0gJ1x1MjAyOScgfHwgZlRleHQuYXQocG9zIC0gMSkgPT0gJ1xuJyk7CisgICAgICAgIC8vIHdlIHJlYWxseSBuZWVkIHRvIHRha2UgbG9vayBhdCB0aGlzIGFuZCBkZXRlcm1pbmUgd2hhdCB0aGlzIGZ1bmN0aW9uCisgICAgICAgIC8vIHNob3VsZCBiZSBkb2luZy4gIFdoYXQgSSd2ZSBnb3QgaGVyZSByaWdodCBub3cgaXMgYSB0ZW1wb3JhcnkgaW1wbGVtZW50YXRpb24uCisgICAgfQorCisgICAgcHVibGljIHN5bmNocm9uaXplZCBpbnQgbWluWSgpIHsKKyAgICAKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogUmV0dXJuIHRoZSB2ZXJ0aWNhbCBleHRlbnQgb2YgdGhlIHRleHQsIGluIHBpeGVscy4KKyAgICAqIDxwPgorICAgICogVGhpcyByZXR1cm5zIGFuIGFwcHJveGltYXRpb24gYmFzZWQgb24gdGhlIGN1cnJlbnRseSBmb3JtYXR0ZWQgdGV4dC4KKyAgICAqLworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgaW50IG1heFkoKQorICAgIHsKKyAgICAgICAgY2hlY2tUaW1lU3RhbXAoKTsKKworICAgICAgICBpbnQgbnVtQ2hhcnMgPSBsYXN0TGluZUNoYXJTdG9wKCk7CisKKyAgICAgICAgaW50IHBpeEhlaWdodCA9IGZQaXhIZWlnaHQ7CisgICAgICAgIGlmIChudW1DaGFycyA9PSBmTFRDdXJUZXh0TGVuICYmIGlzUGFyYUJyZWFrQmVmb3JlKGZMVEN1clRleHRMZW4pKSB7CisgICAgICAgICAgICBwaXhIZWlnaHQgKz0gbGFzdENoYXJIZWlnaHQoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChudW1DaGFycyAhPSAwKQorICAgICAgICAgICAgcmV0dXJuIHBpeEhlaWdodCAqIGZUZXh0Lmxlbmd0aCgpIC8gbnVtQ2hhcnM7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8qKgorICAgICogUmV0dXJuIHRoZSBhY3R1YWwgcGl4ZWwgbGVuZ3RoIG9mIHRoZSB0ZXh0IHdoaWNoIGhhcyBiZWVuIGZvcm1hdHRlZC4KKyAgICAqLworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgaW50IGZvcm1hdHRlZEhlaWdodCgpCisgICAgeworICAgICAgICBjaGVja1RpbWVTdGFtcCgpOworICAgICAgICByZXR1cm4gZlBpeEhlaWdodDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGVyZSBhcmUgdHdvIG1vZGVzIGZvciBkZWFsaW5nIHdpdGggY2FycmlhZ2UgcmV0dXJucyBhdCB0aGUgZW5kIG9mIGEgbGluZS4gIEluIHRoZSAnaW5maW5pdGUgd2lkdGgnCisgICAgICogbW9kZSwgdGhlIGxhc3QgY2hhcmFjdGVyIGlzIGNvbnNpZGVyZWQgdG8gaGF2ZSBpbmZpbml0ZSB3aWR0aC4gIFRodXMgaWYgdGhlIHBvaW50IGlzIHBhc3QgdGhlICdyZWFsJworICAgICAqIGVuZCBvZiB0aGUgbGluZSwgdGhlIG9mZnNldCBpcyB0aGUgcG9zaXRpb24gYmVmb3JlIHRoYXQgbGFzdCBjaGFyYWN0ZXIsIGFuZCB0aGUgb2Zmc2V0IGlzIGFzc29jaWF0ZWQKKyAgICAgKiB3aXRoIHRoYXQgY2hhcmFjdGVyIChwbGFjZW1lbnQgYWZ0ZXIpLiBJbiB0aGUgJ2FjdHVhbCB3aWR0aCcgbW9kZSwgdGhlIG9mZnNldCBpcyBwb3NpdGlvbmVkIGFmdGVyCisgICAgICogdGhhdCBjaGFyYWN0ZXIsIGJ1dCBzdGlsbCBhc3NvY2lhdGVkIHdpdGggaXQgKHBsYWNlbWVudCBiZWZvcmUpLgorICAgICAqLworCisgICAgcHJpdmF0ZSBUZXh0T2Zmc2V0IGxpbmVEaW1Ub09mZnNldChUZXh0T2Zmc2V0IHJlc3VsdCwgaW50IGxpbmUsIGludCBsaW5lWCwgaW50IGxpbmVZLCBUZXh0T2Zmc2V0IGFuY2hvciwgYm9vbGVhbiBpbmZpbml0ZU1vZGUpCisgICAgeworICAgIC8vIHRlbXBvcmFyaWx5IGFkanVzdCBsaW5lIGluZm8gdG8gcmVtb3ZlIHRoZSBuZWdhdGl2ZSBjaGFyIHN0YXJ0cyB1c2VkIGluIHRoZSBsaW5lIHRhYmxlLgorICAgIC8vIHRoZW4gY2FsbCB0aHJvdWdoIHRvIHRoZSBwYXJhZ3JhcGggcmVuZGVyZXIgdG8gZ2V0IHRoZSBvZmZzZXQuICBEb24ndCBwdXQgbGluZSBlbmQKKyAgICAvLyBvcHRpbWl6YXRpb24gaGVyZSwgbGV0IHRoZSByZW5kZXJlciBkbyBpdCAocGVyaGFwcyBpdCBkb2VzIGZhbmN5IHN0dWZmIHdpdGggdGhlIG1hcmdpbnMpLgorCisgICAgICAgIExheW91dEluZm8gbGluZUluZm8gPSBmTGluZVRhYmxlW2xpbmVdOworCisgICAgICAgIHJlc3VsdCA9IGxpbmVJbmZvLnBpeGVsVG9PZmZzZXQoZkxUQ3VyVGV4dExlbiwgcmVzdWx0LCBmTGluZURpbSwgbGluZVgsIGxpbmVZKTsKKworICAgICAgICBpZiAoaW5maW5pdGVNb2RlICYmCisgICAgICAgICAgICAocmVzdWx0LmZPZmZzZXQgPiBsaW5lSW5mby5nZXRDaGFyU3RhcnQoZkxUQ3VyVGV4dExlbikpICYmCisgICAgICAgICAgICBpc1BhcmFCcmVha0JlZm9yZShyZXN1bHQuZk9mZnNldCkgJiYKKyAgICAgICAgICAgIChhbmNob3IgPT0gbnVsbCB8fCBhbmNob3IuZk9mZnNldCA9PSByZXN1bHQuZk9mZnNldCAtIDEpKSB7CisKKyAgICAgICAgICAgIHJlc3VsdC5zZXRPZmZzZXQocmVzdWx0LmZPZmZzZXQgLSAxLCBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICogR2l2ZW4gYSBzY3JlZW4gbG9jYXRpb24gcCwgcmV0dXJuIHRoZSBvZmZzZXQgb2YgdGhlIGNoYXJhY3RlciBpbiB0aGUgdGV4dCBuZWFyZXN0IHRvIHAuCisgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIFRleHRPZmZzZXQgcG9pbnRUb1RleHRPZmZzZXQoVGV4dE9mZnNldCByZXN1bHQsIGludCBweCwgaW50IHB5LCBQb2ludCBvcmlnaW4sIFRleHRPZmZzZXQgYW5jaG9yLCBib29sZWFuIGluZmluaXRlTW9kZSkKKyAgICB7CisgICAgICAgIGNoZWNrVGltZVN0YW1wKCk7CisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBUZXh0T2Zmc2V0KCk7CisKKyAgICAgICAgaW50IGZpbGxEOworCisgICAgICAgIGlmIChmSExpbmUpCisgICAgICAgICAgICBmaWxsRCA9IHB5IC0gb3JpZ2luLnk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGZpbGxEID0gcHggLSBvcmlnaW4ueDsKKworICAgICAgICBpZiAoIWZGaWxsSW5jKQorICAgICAgICAgICAgZmlsbEQgPSAtZmlsbEQ7CisKKyAgICAgICAgaWYgKGZpbGxEIDwgMCkgeworICAgICAgICAgICAgcmVzdWx0LnNldE9mZnNldCgwLCBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVCk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgZm9ybWF0VG9IZWlnaHQoZmlsbEQpOworCisgICAgICAgIGlmIChmaWxsRCA+PSBmUGl4SGVpZ2h0KSB7CisgICAgICAgICAgICBib29sZWFuIGJpYXMgPSBmTFRDdXJUZXh0TGVuPT0wPyBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVCA6IFRleHRPZmZzZXQuQkVGT1JFX09GRlNFVDsKKyAgICAgICAgICAgIHJlc3VsdC5zZXRPZmZzZXQoZkxUQ3VyVGV4dExlbiwgYmlhcyk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgaW50IGxpbmUgPSBmaW5kTGluZUF0KGZpbGxEKTsgLy8gYWx3YXlzIGEgdmFsaWQgbGluZQorICAgICAgICBpbnQgZ1N0YXJ0ID0gbGluZUdyYXBoaWNTdGFydEludGVybmFsKGxpbmUpOworCisgICAgICAgIGludCBsaW5lWCwgbGluZVk7ICAvLyB1cHBlci1sZWZ0IGNvcm5lciBvZiBsaW5lCisgICAgICAgIGlmIChmSExpbmUpIHsKKyAgICAgICAgICAgIGxpbmVYID0gb3JpZ2luLng7CisgICAgICAgICAgICBsaW5lWSA9IGZGaWxsSW5jPyBvcmlnaW4ueSArIGdTdGFydCA6IG9yaWdpbi55IC0gKGdTdGFydCArIGZMaW5lVGFibGVbbGluZV0uZ2V0SGVpZ2h0KCkpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbGluZVkgPSBvcmlnaW4ueTsKKyAgICAgICAgICAgIGxpbmVYID0gZkZpbGxJbmM/IG9yaWdpbi54ICsgZ1N0YXJ0IDogb3JpZ2luLnggLSAoZ1N0YXJ0ICsgZkxpbmVUYWJsZVtsaW5lXS5nZXRIZWlnaHQoKSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbGluZURpbVRvT2Zmc2V0KHJlc3VsdCwgbGluZSwgcHggLSBsaW5lWCwgcHkgLSBsaW5lWSwgYW5jaG9yLCBpbmZpbml0ZU1vZGUpOworICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiBlbXB0eVBhcmFncmFwaEF0RW5kT2ZUZXh0KCkgeworCisgICAgICAgIHJldHVybiBmTFRDdXJUZXh0TGVuID4gMCAmJgorICAgICAgICAgICAgICAgIGlzUGFyYWdyYXBoU2VwYXJhdG9yKGZUZXh0LmF0KGZMVEN1clRleHRMZW4tMSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBvZmZzZXQgZGVzaWduYXRlcyBhIHBvaW50IG9uIHRoZSBwc2V1ZG9saW5lIGZvbGxvd2luZyBhIHBhcmFncmFwaAorICAgICAqIHNlcGFyYXRvciBhdCB0aGUgZW5kIG9mIHRleHQuICBUaGlzIGlzIHRydWUgaWYgdGhlIG9mZnNldCBpcyB0aGUgZW5kIG9mIHRleHQKKyAgICAgKiBhbmQgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0IGlzIGEgcGFyYWdyYXBoIHNlcGFyYXRvci4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gYWZ0ZXJMYXN0UGFyYWdyYXBoKFRleHRPZmZzZXQgb2Zmc2V0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIG9mZnNldC5mT2Zmc2V0ID09IGZMVEN1clRleHRMZW4gJiYKKyAgICAgICAgICAgIGVtcHR5UGFyYWdyYXBoQXRFbmRPZlRleHQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEdpdmVuIGFuIG9mZnNldCwgcmV0dXJuIHRoZSBSZWN0YW5nbGUgYm91bmRpbmcgdGhlIGNhcmV0IGF0IHRoZSBvZmZzZXQuCisgICAgKiBAcGFyYW0gb2Zmc2V0IGFuIG9mZnNldCBpbnRvIHRoZSB0ZXh0CisgICAgKiBAcGFyYW0gb3JpZ2luIHRoZSB0b3AtbGVmdCBjb3JuZXIgb2YgdGhlIHRleHQsIGluIHRoZSBkaXNwbGF5J3MgY29vcmRpbmF0ZSBzeXN0ZW0KKyAgICAqIEByZXR1cm4gYSBSZWN0YW5nbGUgYm91bmRpbmcgdGhlIGNhcmV0LgorICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCBSZWN0YW5nbGUgZ2V0Q2FyZXRSZWN0KFRleHRPZmZzZXQgb2Zmc2V0LCBQb2ludCBvcmlnaW4pIHsKKworICAgICAgICBSZWN0YW5nbGUgciA9IG5ldyBSZWN0YW5nbGUoKTsKKyAgICAgICAgZ2V0Q2FyZXRSZWN0KHIsIG9mZnNldCwgb3JpZ2luKTsKKyAgICAgICAgcmV0dXJuIHI7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBnZXRDYXJldFJlY3QoUmVjdGFuZ2xlIHIsIFRleHRPZmZzZXQgb2Zmc2V0LCBQb2ludCBvcmlnaW4pIHsKKyAgICAgICAgCisgICAgICAgIGNoZWNrVGltZVN0YW1wKCk7CisgICAgICAgIGZvcm1hdFRvT2Zmc2V0KG9mZnNldCk7CisKKyAgICAgICAgaWYgKGFmdGVyTGFzdFBhcmFncmFwaChvZmZzZXQpKSB7CisgICAgICAgICAgICBpbnQgcHNldWRvTGluZUhlaWdodCA9IGxhc3RDaGFySGVpZ2h0KCk7CisgICAgICAgICAgICBpZiAoZkhMaW5lKSB7CisgICAgICAgICAgICAgICAgaW50IGxpbmVZID0gZkZpbGxJbmMgPyBvcmlnaW4ueSArIGZQaXhIZWlnaHQgOiBvcmlnaW4ueSAtIGZQaXhIZWlnaHQgLSBwc2V1ZG9MaW5lSGVpZ2h0OworICAgICAgICAgICAgICAgIHIuc2V0Qm91bmRzKG9yaWdpbi54LCBsaW5lWSwgMCwgcHNldWRvTGluZUhlaWdodCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbnQgbGluZVggPSBmRmlsbEluYz8gb3JpZ2luLnggKyBmUGl4SGVpZ2h0IDogb3JpZ2luLnggLSBmUGl4SGVpZ2h0IC0gcHNldWRvTGluZUhlaWdodDsKKyAgICAgICAgICAgICAgICByLnNldEJvdW5kcyhsaW5lWCwgb3JpZ2luLnksIHBzZXVkb0xpbmVIZWlnaHQsIDApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaW50IGxpbmUgPSBnZXRWYWxpZExpbmVDb250YWluaW5nKG9mZnNldCk7CisKKyAgICAgICAgaW50IGdTdGFydCA9IGxpbmVHcmFwaGljU3RhcnRJbnRlcm5hbChsaW5lKTsKKworICAgICAgICBpbnQgbGluZVgsIGxpbmVZOworCisgICAgICAgIGlmIChmSExpbmUpIHsKKyAgICAgICAgICAgIGxpbmVYID0gb3JpZ2luLng7CisgICAgICAgICAgICBpZiAoZkZpbGxJbmMpCisgICAgICAgICAgICAgICAgbGluZVkgPSBvcmlnaW4ueSArIGdTdGFydDsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBsaW5lWSA9IG9yaWdpbi55IC0gKGdTdGFydCArIGZMaW5lVGFibGVbbGluZV0uZ2V0SGVpZ2h0KCkpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbGluZVkgPSBvcmlnaW4ueTsKKyAgICAgICAgICAgIGlmIChmRmlsbEluYykKKyAgICAgICAgICAgICAgICBsaW5lWCA9IG9yaWdpbi54ICsgZ1N0YXJ0OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGxpbmVYID0gb3JpZ2luLnggLSAoZ1N0YXJ0ICsgZkxpbmVUYWJsZVtsaW5lXS5nZXRIZWlnaHQoKSk7CisgICAgICAgIH0KKworICAgICAgICBSZWN0YW5nbGUgYm91bmRzID0gZkxpbmVUYWJsZVtsaW5lXS5jYXJldEJvdW5kcyhmVGV4dCwgZkxUQ3VyVGV4dExlbiwgZkxpbmVEaW0sIG9mZnNldC5mT2Zmc2V0LCBsaW5lWCwgbGluZVkpOworCisgICAgICAgIHIuc2V0Qm91bmRzKGJvdW5kcyk7CisgICAgfQorCisgICAgLyoqCisgICAgKiBEcmF3IHRoZSBjYXJldChzKSBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIG9mZnNldCBpbnRvIHRoZSBnaXZlbiBHcmFwaGljcy4KKyAgICAqIEBwYXJhbSBnIHRoZSBHcmFwaGljcyB0byBkcmF3IGludG8KKyAgICAqIEBwYXJhbSBvZmZzZXQgdGhlIG9mZnNldCBpbiB0aGUgdGV4dCBmb3Igd2hpY2ggdGhlIGNhcmV0IGlzIGRyYXduCisgICAgKiBAcGFyYW0gb3JpZ2luIHRoZSB0b3AtbGVmdCBjb3JuZXIgb2YgdGhlIHRleHQsIGluIHRoZSBkaXNwbGF5J3MgY29vcmRpbmF0ZSBzeXN0ZW0KKyAgICAqIEBwYXJhbSBzdHJvbmdDYXJldENvbG9yIHRoZSBjb2xvciBvZiB0aGUgc3Ryb25nIGNhcmV0CisgICAgKiBAcGFyYW0gd2Vha0NhcmV0Q29sb3IgdGhlIGNvbG9yIG9mIHRoZSB3ZWFrIGNhcmV0IChpZiBhbnkpCisgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIHZvaWQgZHJhd0NhcmV0KEdyYXBoaWNzIGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IG9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvaW50IG9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yIHN0cm9uZ0NhcmV0Q29sb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvciB3ZWFrQ2FyZXRDb2xvcikgeworCisgICAgICAgIGNoZWNrVGltZVN0YW1wKCk7CisgICAgICAgIEdyYXBoaWNzMkQgZzJkID0gR3JhcGhpY3MyRENvbnZlcnNpb24uZ2V0R3JhcGhpY3MyRChnKTsKKyAgICAgICAgZm9ybWF0VG9PZmZzZXQob2Zmc2V0KTsKKworICAgICAgICBMYXlvdXRJbmZvIGxpbmU7CisgICAgICAgIGludCBnU3RhcnQ7CisgICAgICAgIAorICAgICAgICBpZiAoYWZ0ZXJMYXN0UGFyYWdyYXBoKG9mZnNldCkpIHsKKyAgICAgICAgICAgIGdTdGFydCA9IGZQaXhIZWlnaHQ7CisgICAgICAgICAgICBsaW5lID0gcHNldWRvTGluZUluZm8obnVsbCwgb2Zmc2V0LmZPZmZzZXQpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaW50IGxpbmVJbmRleCA9IGdldFZhbGlkTGluZUNvbnRhaW5pbmcob2Zmc2V0KTsKKyAgICAgICAgICAgIGdTdGFydCA9IGxpbmVHcmFwaGljU3RhcnRJbnRlcm5hbChsaW5lSW5kZXgpOworICAgICAgICAgICAgbGluZSA9IGZMaW5lVGFibGVbbGluZUluZGV4XTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50IGxpbmVYLCBsaW5lWTsKKworICAgICAgICBpZiAoZkhMaW5lKSB7CisgICAgICAgICAgICBsaW5lWCA9IG9yaWdpbi54OworICAgICAgICAgICAgaWYgKGZGaWxsSW5jKQorICAgICAgICAgICAgICAgIGxpbmVZID0gb3JpZ2luLnkgKyBnU3RhcnQ7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbGluZVkgPSBvcmlnaW4ueSAtIChnU3RhcnQgKyBsaW5lLmdldEhlaWdodCgpKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGxpbmVZID0gb3JpZ2luLnk7CisgICAgICAgICAgICBpZiAoZkZpbGxJbmMpCisgICAgICAgICAgICAgICAgbGluZVggPSBvcmlnaW4ueCArIGdTdGFydDsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBsaW5lWCA9IG9yaWdpbi54IC0gKGdTdGFydCArIGxpbmUuZ2V0SGVpZ2h0KCkpOworICAgICAgICB9CisKKyAgICAgICAgbGluZS5yZW5kZXJDYXJldChmVGV4dCwgZkxUQ3VyVGV4dExlbiwgZzJkLCBmTGluZURpbSwgbGluZVgsIGxpbmVZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQuZk9mZnNldCwgc3Ryb25nQ2FyZXRDb2xvciwgd2Vha0NhcmV0Q29sb3IpOworICAgIH0KKworLyoqCisqIEdpdmVuIHR3byBvZmZzZXRzIGluIHRoZSB0ZXh0LCByZXR1cm4gYSByZWN0YW5nbGUgd2hpY2ggZW5jbG9zZXMgdGhlIGxpbmVzIGNvbnRhaW5pbmcgdGhlIG9mZnNldHMuCisqIE9mZnNldHMgZG8gbm90IG5lZWQgdG8gYmUgb3JkZXJlZCBvciBub25uZWdhdGl2ZS4KKyogQHBhcmFtIG9mZnNldDEsb2Zmc2V0MiBvZmZzZXRzIGludG8gdGhlIHRleHQKKyogQHBhcmFtIG9yaWdpbiB0aGUgdG9wLWxlZnQgY29ybmVyIG9mIHRoZSB0ZXh0LCBpbiB0aGUgZGlzcGxheSdzIGNvb3JkaW5hdGUgc3lzdGVtCisqIEByZXR1cm5zIGEgPHR0PlJlY3RhbmdsZTwvdHQ+LCByZWxhdGl2ZSB0byA8dHQ+b3JpZ2luPC90dD4sIHdoaWNoIGVuY2xvc2VzIHRoZSBsaW5lcyBjb250YWluaW5nIHRoZSBvZmZzZXRzCisqLworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgUmVjdGFuZ2xlIGdldEJvdW5kaW5nUmVjdChUZXh0T2Zmc2V0IG9mZnNldDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgb2Zmc2V0MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9pbnQgb3JpZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHRpZ2h0KSB7CisKKyAgICAgICAgUmVjdGFuZ2xlIHIgPSBuZXcgUmVjdGFuZ2xlKCk7CisgICAgICAgIGdldEJvdW5kaW5nUmVjdChyLCBvZmZzZXQxLCBvZmZzZXQyLCBvcmlnaW4sIHRpZ2h0KTsKKyAgICAgICAgcmV0dXJuIHI7CisgICAgfQorCisvKgorICAgIFRyYW5zZm9ybSByIGZyb20gInRleHQiIGNvb3JkaW5hdGVzIHRvICJzY3JlZW4iIGNvb3JkaW5hdGVzLgorKi8KKworICAgIHByaXZhdGUgdm9pZCBpbnRsUmVjdChQb2ludCBvcmlnaW4sIFJlY3RhbmdsZSByKSB7CisKKyAgICAgICAgaW50IGxpbmVPcmlnLCBmaWxsT3JpZzsKKworICAgICAgICBpZiAoZkhMaW5lKSB7CisgICAgICAgICAgICBsaW5lT3JpZyA9IG9yaWdpbi54OworICAgICAgICAgICAgZmlsbE9yaWcgPSBvcmlnaW4ueTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGxpbmVPcmlnID0gb3JpZ2luLnk7CisgICAgICAgICAgICBmaWxsT3JpZyA9IG9yaWdpbi54OworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZMaW5lSW5jKQorICAgICAgICAgICAgci54ICs9IGxpbmVPcmlnOworICAgICAgICBlbHNlCisgICAgICAgICAgICByLnggPSBsaW5lT3JpZyAtIChyLnggKyByLndpZHRoKTsKKworICAgICAgICBpZiAoZkZpbGxJbmMpCisgICAgICAgICAgICByLnkgKz0gZmlsbE9yaWc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHIueSA9IGZpbGxPcmlnIC0gKHIueSArIHIuaGVpZ2h0KTsKKworCisgICAgICAgIGlmICghZkhMaW5lKSB7CisgICAgICAgICAgICBpbnQgdCA9IHIueDsKKyAgICAgICAgICAgIHIueCA9IHIueTsKKyAgICAgICAgICAgIHIueSA9IHQ7CisgICAgICAgICAgICB0ID0gci53aWR0aDsKKyAgICAgICAgICAgIHIud2lkdGggPSByLmhlaWdodDsKKyAgICAgICAgICAgIHIuaGVpZ2h0ID0gdDsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgcHVibGljIHN5bmNocm9uaXplZCB2b2lkIGdldEJvdW5kaW5nUmVjdChSZWN0YW5nbGUgciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IG9mZnNldDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IG9mZnNldDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb2ludCBvcmlnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHRpZ2h0KQorICAgIHsKKyAgICAgICAgY2hlY2tUaW1lU3RhbXAoKTsKKyAgICAgICAgaWYgKG9mZnNldDEuZXF1YWxzKG9mZnNldDIpKSB7CisgICAgICAgICAgICBnZXRDYXJldFJlY3Qociwgb2Zmc2V0MSwgb3JpZ2luKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAob2Zmc2V0MS5ncmVhdGVyVGhhbihvZmZzZXQyKSkgeworICAgICAgICAgICAgVGV4dE9mZnNldCB0OyB0ID0gb2Zmc2V0MTsgb2Zmc2V0MSA9IG9mZnNldDI7IG9mZnNldDIgPSB0OworICAgICAgICB9CisKKyAgICAgICAgZm9ybWF0VG9PZmZzZXQob2Zmc2V0Mik7CisKKyAgICAgICAgaW50IGxpbmUgPSBnZXRWYWxpZExpbmVDb250YWluaW5nKG9mZnNldDEpOworICAgICAgICByLnkgPSBsaW5lR3JhcGhpY1N0YXJ0SW50ZXJuYWwobGluZSk7CisgICAgICAgIAorICAgICAgICBpbnQgZ0xpbWl0OworICAgICAgICBib29sZWFuIHNhbWVMaW5lID0gZmFsc2U7CisgICAgICAgICAgICAgICAgCisgICAgICAgIGlmIChhZnRlckxhc3RQYXJhZ3JhcGgob2Zmc2V0MikpCisgICAgICAgICAgICBnTGltaXQgPSBmUGl4SGVpZ2h0ICsgbGFzdENoYXJIZWlnaHQoKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpbnQgbGluZTIgPSBnZXRWYWxpZExpbmVDb250YWluaW5nKG9mZnNldDIpOworICAgICAgICAgICAgZ0xpbWl0ID0gbGluZUdyYXBoaWNMaW1pdEludGVybmFsKGxpbmUyKTsKKyAgICAgICAgICAgIHNhbWVMaW5lID0gKGxpbmUgPT0gbGluZTIpOworICAgICAgICB9CisKKyAgICAgICAgci5oZWlnaHQgPSBnTGltaXQgLSByLnk7CisKKyAgICAgICAgaWYgKHNhbWVMaW5lICYmIHRpZ2h0PT1USUdIVCkgeworICAgICAgICAgICAgUmVjdGFuZ2xlIHJ0ID0gbmV3IFJlY3RhbmdsZSgpOworICAgICAgICAgICAgZ2V0Q2FyZXRSZWN0KHJ0LCBvZmZzZXQxLCBvcmlnaW4pOworICAgICAgICAgICAgci5zZXRCb3VuZHMocnQpOworICAgICAgICAgICAgaWYgKCFvZmZzZXQxLmVxdWFscyhvZmZzZXQyKSkgeworICAgICAgICAgICAgICAgIGdldENhcmV0UmVjdChydCwgb2Zmc2V0Miwgb3JpZ2luKTsKKyAgICAgICAgICAgICAgICByLmFkZChydCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByLnggPSBmTWluWDsKKyAgICAgICAgICAgIHIud2lkdGggPSBmTWF4WCAtIGZNaW5YOworICAgICAgICAgICAgaW50bFJlY3Qob3JpZ2luLCByKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFN5c3RlbS5vdXQucHJpbnQoImdicjogIiArIHIueCArICIsICIgKyByLnkgKyAiLCAiICsgci53aWR0aCArICIsICIgKyByLmhlaWdodCk7CisKKyAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKCIgLS0+ICIgKyByLnggKyAiLCAiICsgci55ICsgIiwgIiArIHIud2lkdGggKyAiLCAiICsgci5oZWlnaHQpOworICAgIH0KKworICAgIC8qKgorICAgICogQ29tcHV0ZSB0aGUgb2Zmc2V0IHJlc3VsdGluZyBmcm9tIG1vdmluZyBmcm9tIGEgcHJldmlvdXMgb2Zmc2V0IGluIGRpcmVjdGlvbiBkaXIuCisgICAgKiBGb3IgYXJyb3cga2V5cy4KKyAgICAqIEBwYXJhbSByZXN1bHQgdGhlIG9mZnNldCB0byBtb2RpZnkgYW5kIHJldHVybi4gIG1heSBiZSBudWxsLCBpZiBzbyBhIG5ldyBvZmZzZXQgaXMgYWxsb2NhdGVkLCBtb2RpZmllZCwgYW5kIHJldHVybmVkLgorICAgICogQHBhcmFtIHByZXZpb3VzT2Zmc2V0IHRoZSBpbnNlcnRpb24gb2Zmc2V0IHByaW9yIHRvIHRoZSBhcnJvdyBrZXkgcHJlc3MuCisgICAgKiBAcGFyYW0gZGlyZWN0aW9uIHRoZSBkaXJlY3Rpb24gb2YgdGhlIGFycm93IGtleSAoZVVwLCBlRG93biwgZUxlZnQsIG9yIGVSaWdodCkKKyAgICAqIEByZXR1cm5zIG5ldyBvZmZzZXQgYmFzZWQgb24gZGlyZWN0aW9uIGFuZCBwcmV2aW91cyBvZmZzZXQuCisgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIFRleHRPZmZzZXQgZmluZEluc2VydGlvbk9mZnNldChUZXh0T2Zmc2V0IHJlc3VsdCwgVGV4dE9mZnNldCBwcmV2T2Zmc2V0LCBzaG9ydCBkaXIpCisgICAgeworICAgICAgICByZXR1cm4gZmluZE5ld0luc2VydGlvbk9mZnNldChyZXN1bHQsIHByZXZPZmZzZXQsIHByZXZPZmZzZXQsIGRpcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogVHJhbnNmb3JtIGtleSBkaXJlY3Rpb246ICBhZnRlciB0aGlzIHN0ZXAsICJsZWZ0IiBtZWFucyBwcmV2aW91cyBnbHlwaCwgInJpZ2h0IiBtZWFucyBuZXh0IGdseXBoLAorICAgICAqInVwIiBtZWFucyBwcmV2aW91cyBsaW5lLCAiZG93biIgbWVhbnMgbmV4dCBsaW5lCisgICAgICovCisgICAgcHJpdmF0ZSBzaG9ydCByZW1hcEFycm93S2V5KHNob3J0IGRpcikgeworCisgICAgICAgIGlmICghZkxpbmVJbmMpIHsKKyAgICAgICAgICAgIGlmIChkaXIgPT0gZUxlZnQpCisgICAgICAgICAgICAgICAgZGlyID0gZVJpZ2h0OworICAgICAgICAgICAgZWxzZSBpZiAoZGlyID09IGVSaWdodCkKKyAgICAgICAgICAgICAgICBkaXIgPSBlTGVmdDsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghZkZpbGxJbmMpIHsKKyAgICAgICAgICAgIGlmIChkaXIgPT0gZVVwKQorICAgICAgICAgICAgICAgIGRpciA9IGVEb3duOworICAgICAgICAgICAgZWxzZSBpZiAoZGlyID09IGVEb3duKQorICAgICAgICAgICAgICAgIGRpciA9IGVVcDsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghZkhMaW5lKSB7CisgICAgICAgICAgICBpZiAoZGlyID09IGVMZWZ0KQorICAgICAgICAgICAgICAgIGRpciA9IGVVcDsKKyAgICAgICAgICAgIGVsc2UgaWYgKGRpciA9PSBlUmlnaHQpCisgICAgICAgICAgICAgICAgZGlyID0gZURvd247CisgICAgICAgICAgICBlbHNlIGlmIChkaXIgPT0gZVVwKQorICAgICAgICAgICAgICAgIGRpciA9IGVMZWZ0OworICAgICAgICAgICAgZWxzZSBpZiAoZGlyID09IGVEb3duKQorICAgICAgICAgICAgICAgIGRpciA9IGVSaWdodDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBkaXI7CisgICAgfQorCisgICAgLyoqCisgICAgKiBDb21wdXRlIHRoZSBvZmZzZXQgcmVzdWx0aW5nIGZyb20gbW92aW5nIGZyb20gYSBwcmV2aW91cyBvZmZzZXQsIHN0YXJ0aW5nIGF0IGFuIG9yaWdpbmFsIG9mZnNldCwgaW4gZGlyZWN0aW9uIGRpci4KKyAgICAqIEZvciBhcnJvdyBrZXlzLiAgVXNlIHRoaXMgZm9yICJzbWFydCIgdXAvZG93biBrZXlzLgorICAgICogQHBhcmFtIHJlc3VsdCB0aGUgb2Zmc2V0IHRvIG1vZGlmeSBhbmQgcmV0dXJuLiAgTWF5IGJlIG51bGwsIGlmIHNvIGEgbmV3IG9mZnNldCBpcyBhbGxvY2F0ZWQsIG1vZGlmaWVkLCBhbmQgcmV0dXJuZWQuCisgICAgKiBAcGFyYW0gb3JpZ09mZnNldCB0aGUgb2Zmc2V0IGF0IHdoaWNoIGFuIHVwLWRvd24gYXJyb3cga2V5IHNlcXVlbmNlIGJlZ2FuLgorICAgICogQHBhcmFtIHByZXZPZmZzZXQgdGhlIGluc2VydGlvbiBvZmZzZXQgcHJpb3IgdG8gdGhlIGFycm93IGtleSBwcmVzcworICAgICogQHBhcmFtIGRpciB0aGUgZGlyZWN0aW9uIG9mIHRoZSBhcnJvdyBrZXkgKGVVcCwgZURvd24sIGVMZWZ0LCBvciBlUmlnaHQpCisgICAgKiBAcmV0dXJucyBuZXcgb2Zmc2V0IGJhc2VkIG9uIGRpcmVjdGlvbiwgb3JpZ2luYWwgb2Zmc2V0LCBhbmQgcHJldmlvdXMgb2Zmc2V0LgorICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCBUZXh0T2Zmc2V0IGZpbmROZXdJbnNlcnRpb25PZmZzZXQoVGV4dE9mZnNldCByZXN1bHQsIFRleHRPZmZzZXQgb3JpZ09mZnNldCwgVGV4dE9mZnNldCBwcmV2T2Zmc2V0LCBzaG9ydCBkaXIpCisgICAgeworICAgICAgICBjaGVja1RpbWVTdGFtcCgpOworICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpCisgICAgICAgICAgICByZXN1bHQgPSBuZXcgVGV4dE9mZnNldCgpOworCisgICAgICAgIGRpciA9IHJlbWFwQXJyb3dLZXkoZGlyKTsKKworICAgICAgICAvLyBhc3N1bWUgdGhhdCB0ZXh0IGF0IG9yaWdPZmZzZXQgYW5kIHByZXZPZmZzZXQgaGFzIGFscmVhZHkgYmVlbiBmb3JtYXR0ZWQKKworICAgICAgICBpZiAoZGlyID09IGVMZWZ0IHx8IGRpciA9PSBlUmlnaHQpIHsKKyAgICAgICAgICAgIGZvcm1hdFRvT2Zmc2V0KHByZXZPZmZzZXQpOworICAgICAgICAgICAgaW50IGxpbmUgPSBnZXRWYWxpZExpbmVDb250YWluaW5nKHByZXZPZmZzZXQpOworCisgICAgICAgICAgICByZXN1bHQuZlBsYWNlbWVudCA9IFRleHRPZmZzZXQuQUZURVJfT0ZGU0VUOworICAgICAgICAgICAgcmVzdWx0LmZPZmZzZXQgPSBmTGluZVRhYmxlW2xpbmVdLmdldE5leHRPZmZzZXQoZkxUQ3VyVGV4dExlbiwgcHJldk9mZnNldC5mT2Zmc2V0LCBkaXIpOworICAgICAgICAgICAgaWYgKHJlc3VsdC5mT2Zmc2V0IDwgMCkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5mT2Zmc2V0ID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKHJlc3VsdC5mT2Zmc2V0ID49IGZMVEN1clRleHRMZW4pIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuc2V0T2Zmc2V0KGZMVEN1clRleHRMZW4sIFRleHRPZmZzZXQuQkVGT1JFX09GRlNFVCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpbnQgZGlzdE9uTGluZTsKKworICAgICAgICAgICAgaWYgKGFmdGVyTGFzdFBhcmFncmFwaChvcmlnT2Zmc2V0KSkKKyAgICAgICAgICAgICAgICBkaXN0T25MaW5lID0gMDsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGludCBsaW5lID0gZ2V0VmFsaWRMaW5lQ29udGFpbmluZyhvcmlnT2Zmc2V0KTsKKworICAgICAgICAgICAgICAgIGRpc3RPbkxpbmUgPSBmTGluZVRhYmxlW2xpbmVdLnN0cm9uZ0NhcmV0QmFzZWxpbmVQb3NpdGlvbihmTFRDdXJUZXh0TGVuLCBmTGluZURpbSwgb3JpZ09mZnNldC5mT2Zmc2V0KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gZ2V0IHByZXZPZmZzZXQncyBsaW5lCisgICAgICAgICAgICBpbnQgbGluZTsKKyAgICAgICAgICAgIGlmIChhZnRlckxhc3RQYXJhZ3JhcGgocHJldk9mZnNldCkpCisgICAgICAgICAgICAgICAgbGluZSA9IGxhc3RMaW5lKCkgKyAxOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgbGluZSA9IGdldExpbmVDb250YWluaW5nKHByZXZPZmZzZXQpOworCisgICAgICAgICAgICAgICAgaWYgKGRpciA9PSBlRG93biAmJiAobGluZSA9PSBrQWZ0ZXJMYXN0TGluZSB8fCBsaW5lID09IGxhc3RMaW5lKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAmJiAobGFzdExpbmVDaGFyU3RvcCgpIDwgZlRleHQubGVuZ3RoKCkpKSB7CisgICAgICAgICAgICAgICAgICAgIHNoaWZ0VGFibGVUbyhsYXN0TGluZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgZm9ybWF0VGV4dChsYXN0TGluZUNoYXJTdG9wKCksIDEsIEludGVnZXIuTUFYX1ZBTFVFLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgbGluZSA9IGdldExpbmVDb250YWluaW5nKHByZXZPZmZzZXQpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChsaW5lID09IGtCZWZvcmVGaXJzdExpbmUpCisgICAgICAgICAgICAgICAgICAgIGxpbmUgPSAwOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKGxpbmUgPT0ga0FmdGVyTGFzdExpbmUpCisgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBsYXN0TGluZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoZGlyID09IGVVcCkKKyAgICAgICAgICAgICAgICBsaW5lLS07CisgICAgICAgICAgICBlbHNlIGlmIChkaXIgPT0gZURvd24pCisgICAgICAgICAgICAgICAgbGluZSsrOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkRlYnVnOiBJbGxlZ2FsIGRpcmVjdGlvbiBwYXJhbWV0ZXIgaW4gZmluZE5ld0luc2VydGlvbk9mZnNldCIpOworCisgICAgICAgICAgICBpZiAobGluZSA8IDApIHsKKyAgICAgICAgICAgICAgICAvL3Jlc3VsdC5zZXRPZmZzZXQoMCwgVGV4dE9mZnNldC5BRlRFUl9PRkZTRVQpOworICAgICAgICAgICAgICAgIHJlc3VsdC5hc3NpZ24ocHJldk9mZnNldCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChsaW5lID4gbGFzdExpbmUoKSkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5zZXRPZmZzZXQoZkxUQ3VyVGV4dExlbiwgVGV4dE9mZnNldC5CRUZPUkVfT0ZGU0VUKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChmTGluZVRhYmxlW2xpbmVdID09IG51bGwpCisgICAgICAgICAgICAgICAgICAgIGxpbmUgPSAoZGlyID09IGVVcCk/IGZMVFBvc0VuZCA6IGZMVE5lZ1N0YXJ0OworCisgICAgICAgICAgICAgICAgLy8gYW5jaG9yIGlzIG51bGwgc2luY2Ugd2UgbmV2ZXIgd2FudCBhIHBvc2l0aW9uIGFmdGVyIG5ld2xpbmUuICBJZiB3ZSB1c2VkIHRoZSByZWFsIGFuY2hvciwKKyAgICAgICAgICAgICAgICAvLyB3ZSBtaWdodCBub3QgaWdub3JlIHRoZSBuZXdsaW5lIGV2ZW4gdGhvdWdoIGluZmluaXRlTW9kZSBpcyB0cnVlLgorICAgICAgICAgICAgICAgIGxpbmVEaW1Ub09mZnNldChyZXN1bHQsIGxpbmUsIGRpc3RPbkxpbmUsIDAsIG51bGwsIHRydWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKCJmbmlvIHByZXY6ICIgKyBwcmV2T2Zmc2V0ICsgIiwgbmV3OiAiICsgcmVzdWx0KTsKKworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgdm9pZCBzdG9wQmFja2dyb3VuZEZvcm1hdHRpbmcoKQorICAgIHsKKyAgICAgICAgY2hlY2tUaW1lU3RhbXAoKTsKKyAgICAgICAgZkJnRm9ybWF0QWxsb3dlZCA9IGZhbHNlOworICAgIH0KKworICAgIHByaXZhdGUgc3luY2hyb25pemVkIHZvaWQgZW5hYmxlQkdGb3JtYXQoKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZCZ0Zvcm1hdEFsbG93ZWQgPSB0cnVlOworICAgICAgICAgICAgbm90aWZ5KCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKElsbGVnYWxNb25pdG9yU3RhdGVFeGNlcHRpb24gZSkgeworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBpbnQgbGluZUluZGV4VG9OdW1iZXIoaW50IGxpbmVJbmRleCkgeworCisgICAgICAgIGlmIChsaW5lSW5kZXggPD0gZkxUUG9zRW5kKSB7CisgICAgICAgICAgICByZXR1cm4gbGluZUluZGV4OworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGxpbmVJbmRleCAtIChmTFROZWdTdGFydC1mTFRQb3NFbmQtMSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIGludCBsaW5lTnVtYmVyVG9JbmRleChpbnQgbGluZU51bWJlcikgeworCisgICAgICAgIGlmIChsaW5lTnVtYmVyIDw9IGZMVFBvc0VuZCkgeworICAgICAgICAgICAgcmV0dXJuIGxpbmVOdW1iZXI7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gbGluZU51bWJlciArIChmTFROZWdTdGFydC1mTFRQb3NFbmQtMSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZm9ybWF0VG9MaW5lTnVtYmVyKGludCBsaW5lTnVtYmVyKSB7CisKKyAgICAgICAgd2hpbGUgKGxhc3RMaW5lQ2hhclN0b3AoKSA8IGZMVEN1clRleHRMZW4gJiYKKyAgICAgICAgICAgICAgICBsaW5lTnVtYmVyID49IGxpbmVJbmRleFRvTnVtYmVyKGZMVFNpemUpKSB7CisgICAgICAgICAgICAvLyBjb3VsZCBiZSBzbWFydGVyIGFuZCBjaG9vc2UgbGFyZ2VyIGFtb3VudHMgZm9yCisgICAgICAgICAgICAvLyBsYXJnZXIgbGluZXMsIGJ1dCBwcm9iYWJseSBub3Qgd29ydGggdGhlIGVmZm9ydAorICAgICAgICAgICAgZm9ybWF0VG9IZWlnaHQoZlBpeEhlaWdodCArIGtQaXhJbmNyZW1lbnQpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBTVFJJQ1QgPSB0cnVlOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gTEVOSUVOVCA9IGZhbHNlOworCisgICAgLyoqCisgICAgICogSW5zdXJlIHRoYXQgYXQgbGVhc3QgbGluZU51bWJlciBsaW5lcyBleGlzdCwgZG9pbmcKKyAgICAgKiBleHRyYSBmb3JtYXR0aW5nIGlmIG5lY2Vzc2FyeS4KKyAgICAgKiBUaHJvd3MgZXhjZXB0aW9uIGlmIGxpbmVOdW1iZXIgaXMgbm90IHZhbGlkLgorICAgICAqIEBwYXJhbSBzdHJpY3QgaWYgU1RSSUNULCBvbmx5IGxpbmVzIFswLi4ubWF4TGluZU51bWJlcigpXQorICAgICAqICAgICAgICBhcmUgcGVybWl0dGVkLiAgSWYgTEVOSUVOVCwgbWF4TGluZU51bWJlcigpKzEgaXMKKyAgICAgKiAgICAgICAgdGhlIGdyZWF0ZXN0IHZhbGlkIHZhbHVlLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCB2YWxpZGF0ZUxpbmVOdW1iZXIoaW50IGxpbmVOdW1iZXIsIGJvb2xlYW4gc3RyaWN0KSB7CisKKyAgICAgICAgZm9ybWF0VG9MaW5lTnVtYmVyKGxpbmVOdW1iZXIpOworCisgICAgICAgIGludCBtYXhOdW1iZXIgPSBsaW5lSW5kZXhUb051bWJlcihmTFRTaXplKTsKKyAgICAgICAgaWYgKHN0cmljdCA9PSBTVFJJQ1QpIHsKKyAgICAgICAgICAgIG1heE51bWJlciAtPSAxOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGxpbmVOdW1iZXIgPiBtYXhOdW1iZXIrMSB8fAorICAgICAgICAgICAgICAgIChsaW5lTnVtYmVyID09IG1heE51bWJlcisxICYmICFlbXB0eVBhcmFncmFwaEF0RW5kT2ZUZXh0KCkpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGxpbmUgbnVtYmVyOiAiICsgbGluZU51bWJlcik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIGludCBnZXRMaW5lQ291bnQoKSB7CisKKyAgICAgICAgLy8gZm9ybWF0IGFsbCB0ZXh0OgorICAgICAgICBmb3JtYXRUb0hlaWdodChJbnRlZ2VyLk1BWF9WQUxVRSk7CisKKyAgICAgICAgaW50IGxpbmVDb3VudCA9IGxpbmVJbmRleFRvTnVtYmVyKGZMVFNpemUpOworCisgICAgICAgIGlmIChlbXB0eVBhcmFncmFwaEF0RW5kT2ZUZXh0KCkpIHsKKyAgICAgICAgICAgIGxpbmVDb3VudCArPSAxOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGxpbmVDb3VudDsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN5bmNocm9uaXplZCBpbnQgbGluZUNvbnRhaW5pbmcoaW50IGNoYXJJbmRleCkgeworICAgICAgICAKKyAgICAgICAgZm9ybWF0VG9PZmZzZXQoY2hhckluZGV4LCBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVCk7CisgICAgICAgIAorICAgICAgICBib29sZWFuIHBsYWNlbWVudCA9IFRleHRPZmZzZXQuQUZURVJfT0ZGU0VUOworICAgICAgICBpZiAoY2hhckluZGV4ID09IGZMVEN1clRleHRMZW4gJiYgY2hhckluZGV4ID4gMCkgeworICAgICAgICAgICAgcGxhY2VtZW50ID0gZW1wdHlQYXJhZ3JhcGhBdEVuZE9mVGV4dCgpPyBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVCA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQuQkVGT1JFX09GRlNFVDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGxpbmVDb250YWluaW5nKGNoYXJJbmRleCwgcGxhY2VtZW50KTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIGludCBsaW5lQ29udGFpbmluZyhUZXh0T2Zmc2V0IG9mZnNldCkgeworCisgICAgICAgIGZvcm1hdFRvT2Zmc2V0KG9mZnNldCk7CisKKyAgICAgICAgaWYgKGFmdGVyTGFzdFBhcmFncmFwaChvZmZzZXQpKSB7CisgICAgICAgICAgICByZXR1cm4gbGluZUluZGV4VG9OdW1iZXIoZkxUU2l6ZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBsaW5lQ29udGFpbmluZyhvZmZzZXQuZk9mZnNldCwgb2Zmc2V0LmZQbGFjZW1lbnQpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGludCBsaW5lQ29udGFpbmluZyhpbnQgb2ZmLCBib29sZWFuIHBsYWNlbWVudCkgeworICAgICAgICAKKyAgICAgICAgaW50IGxpbmUgPSBvZmY9PTA/IDAgOiBnZXRMaW5lQ29udGFpbmluZyhvZmYsIHBsYWNlbWVudCk7CisgICAgICAgIAorICAgICAgICBpZiAobGluZSA9PSBrQWZ0ZXJMYXN0TGluZSkgeworICAgICAgICAgICAgbGluZSA9IGZMVFNpemU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAobGluZSA9PSBrQmVmb3JlRmlyc3RMaW5lKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImxpbmVDb250YWluaW5nIGdvdCBpbnZhbGlkIHJlc3VsdCBmcm9tIGdldExpbmVDb250YWluaW5nKCkuIik7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbGluZUluZGV4VG9OdW1iZXIobGluZSk7CisgICAgfQorCisgICAgcHVibGljIHN5bmNocm9uaXplZCBpbnQgbGluZVJhbmdlTG93KGludCBsaW5lTnVtYmVyKSB7CisKKyAgICAgICAgdmFsaWRhdGVMaW5lTnVtYmVyKGxpbmVOdW1iZXIsIFNUUklDVCk7CisgICAgICAgIGludCBpbmRleCA9IGxpbmVOdW1iZXJUb0luZGV4KGxpbmVOdW1iZXIpOworCisgICAgICAgIGlmIChpbmRleCA9PSBmTFRTaXplKSB7CisgICAgICAgICAgICBpZiAoZW1wdHlQYXJhZ3JhcGhBdEVuZE9mVGV4dCgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGxhc3RMaW5lQ2hhclN0b3AoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChpbmRleCA+PSBmTFRTaXplKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJsaW5lTnVtYmVyIGlzIGludmFsaWQuIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gbGluZUNoYXJTdGFydEludGVybmFsKGluZGV4KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgaW50IGxpbmVSYW5nZUxpbWl0KGludCBsaW5lTnVtYmVyKSB7CisKKyAgICAgICAgdmFsaWRhdGVMaW5lTnVtYmVyKGxpbmVOdW1iZXIsIFNUUklDVCk7CisgICAgICAgIGludCBpbmRleCA9IGxpbmVOdW1iZXJUb0luZGV4KGxpbmVOdW1iZXIpOworCisgICAgICAgIGlmIChpbmRleCA9PSBmTFRTaXplKSB7CisgICAgICAgICAgICBpZiAoZW1wdHlQYXJhZ3JhcGhBdEVuZE9mVGV4dCgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGxhc3RMaW5lQ2hhclN0b3AoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChpbmRleCA+PSBmTFRTaXplKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJsaW5lTnVtYmVyIGlzIGludmFsaWQuIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gbGluZUNoYXJMaW1pdEludGVybmFsKGluZGV4KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbnVtYmVyIG9mIHRoZSBsaW5lIGF0IHRoZSBnaXZlbiBncmFwaGljIGhlaWdodC4KKyAgICAgKiBJZiBoZWlnaHQgaXMgZ3JlYXRlciB0aGFuIGZ1bGwgaGVpZ2h0LCByZXR1cm4gbGluZSBjb3VudC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIGludCBsaW5lQXRIZWlnaHQoaW50IGhlaWdodCkgeworCisgICAgICAgIGlmIChoZWlnaHQgPj0gZlBpeEhlaWdodCkgeworCisgICAgICAgICAgICBpbnQgbGluZSA9IGdldExpbmVDb3VudCgpOworICAgICAgICAgICAgaWYgKGhlaWdodCA8IGZGdWxsUGl4SGVpZ2h0KSB7CisgICAgICAgICAgICAgICAgbGluZSAtPSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGxpbmU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoaGVpZ2h0IDwgMCkgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGxpbmVJbmRleFRvTnVtYmVyKGZpbmRMaW5lQXQoaGVpZ2h0KSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIGludCBsaW5lR3JhcGhpY1N0YXJ0KGludCBsaW5lTnVtYmVyKSB7CisKKyAgICAgICAgY2hlY2tUaW1lU3RhbXAoKTsKKyAgICAgICAgdmFsaWRhdGVMaW5lTnVtYmVyKGxpbmVOdW1iZXIsIExFTklFTlQpOworCisgICAgICAgIGludCBpbmRleCA9IGxpbmVOdW1iZXJUb0luZGV4KGxpbmVOdW1iZXIpOworCisgICAgICAgIGlmIChpbmRleCA8IGZMVFNpemUpIHsKKyAgICAgICAgICAgIHJldHVybiBsaW5lR3JhcGhpY1N0YXJ0SW50ZXJuYWwoaW5kZXgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKGluZGV4ID09IGZMVFNpemUrMSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmRnVsbFBpeEhlaWdodDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBmUGl4SGVpZ2h0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN5bmNocm9uaXplZCBib29sZWFuIGxpbmVJc0xlZnRUb1JpZ2h0KGludCBsaW5lTnVtYmVyKSB7CisgICAgICAgIAorICAgICAgICB2YWxpZGF0ZUxpbmVOdW1iZXIobGluZU51bWJlciwgU1RSSUNUKTsKKyAgICAgICAgCisgICAgICAgIGludCBpbmRleCA9IGxpbmVOdW1iZXJUb0luZGV4KGxpbmVOdW1iZXIpOworICAgICAgICAKKyAgICAgICAgaWYgKGluZGV4IDwgZkxUU2l6ZSkgeworICAgICAgICAgICAgcmV0dXJuIGZMaW5lVGFibGVbaW5kZXhdLmlzTGVmdFRvUmlnaHQoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBzdCA9IGZUZXh0LnBhcmFncmFwaFN0eWxlQXQoZkxUQ3VyVGV4dExlbik7CisgICAgICAgICAgICByZXR1cm4gIVRleHRBdHRyaWJ1dGUuUlVOX0RJUkVDVElPTl9SVEwuZXF1YWxzKHN0LmdldChUZXh0QXR0cmlidXRlLlJVTl9ESVJFQ1RJT04pKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogTnVtYmVyIG9mIHBpeGVscyBieSB3aGljaCB0byBhZHZhbmNlIGZvcm1hdHRpbmcgaW4gdGhlIGJhY2tncm91bmQuCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQga1BpeEluY3JlbWVudCA9IDEwMDsKKworICAgIC8qKgorICAgICogVGltZSB0byBzbGVlcCBiZXR3ZWVuIGJhY2tncm91bmQgZm9ybWF0dGluZyBvcGVyYXRpb25zLgorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGtJbnRlcnZhbCA9IDEwMDsKKworICAgIC8qKgorICAgICogUGVyZm9ybSBwZXJpb2RpYyBiYWNrZ3JvdW5kIGZvcm1hdHRpbmcuCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBydW4oKQorICAgIHsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIHN5bmNocm9uaXplZCAodGhpcykgeworICAgICAgICAgICAgICAgIHdoaWxlKCFmQmdGb3JtYXRBbGxvd2VkKSB7CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICB3YWl0KCk7CisgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2goSW50ZXJydXB0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgY2hlY2tUaW1lU3RhbXAoKTsgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgZm9ybWF0VG9IZWlnaHQoZlBpeEhlaWdodCArIGtQaXhJbmNyZW1lbnQpOworCisgICAgICAgICAgICAgICAgaWYgKGxhc3RMaW5lQ2hhclN0b3AoKSA9PSBmTFRDdXJUZXh0TGVuKSB7CisgICAgICAgICAgICAgICAgICAgIHN0b3BCYWNrZ3JvdW5kRm9ybWF0dGluZygpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBUaHJlYWQuc2xlZXAoa0ludGVydmFsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgUGFyYWdyYXBoUmVuZGVyZXIgZ2V0UmVuZGVyZXJGb3IoQXR0cmlidXRlTWFwIHMpIHsKKyAgICAKKyAgICAgICAgLy8gTm90ZTogIGV2ZW50dWFsbHkgd2UgY291bGQgbGV0IGNsaWVudHMgcHV0IHRoZWlyIG93biByZW5kZXJlcnMKKyAgICAgICAgLy8gb24gdGhlIHRleHQuCisgICAgICAgIEJpZGlQYXJhZ3JhcGhSZW5kZXJlciByZW5kZXJlciA9IChCaWRpUGFyYWdyYXBoUmVuZGVyZXIpIGZSZW5kZXJlckNhY2hlLmdldChzKTsKKyAgICAgICAgaWYgKHJlbmRlcmVyID09IG51bGwpIHsKKyAgICAgICAgICAgIHJlbmRlcmVyID0gbmV3IEJpZGlQYXJhZ3JhcGhSZW5kZXJlcihmRGVmYXVsdFZhbHVlcy5hZGRBdHRyaWJ1dGVzKHMpLCBmRGVmYXVsdENoYXJNZXRyaWMpOworICAgICAgICAgICAgZlJlbmRlcmVyQ2FjaGUucHV0KHMsIHJlbmRlcmVyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVuZGVyZXI7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L0JpZGlQYXJhZ3JhcGhSZW5kZXJlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9CaWRpUGFyYWdyYXBoUmVuZGVyZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mNmIyNDEzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9CaWRpUGFyYWdyYXBoUmVuZGVyZXIuamF2YQpAQCAtMCwwICsxLDExNTAgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IEJpZGlQYXJhZ3JhcGhSZW5kZXJlci5qYXZhLHYgJCAkUmV2aXNpb246IDEuMyAkICREYXRlOiAyMDAyLzAyLzE2IDAzOjA2OjQyICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvLyBSZXF1aXJlcyBKYXZhMgorcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRmb3JtYXQ7CisKK2ltcG9ydCBqYXZhLmF3dC5Db2xvcjsKK2ltcG9ydCBqYXZhLmF3dC5SZWN0YW5nbGU7CitpbXBvcnQgamF2YS5hd3QuU2hhcGU7CisKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTVRhYlJ1bGVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5UYWJTdG9wOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLlRleHRBdHRyaWJ1dGU7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuR3JhcGhpY3MyRENvbnZlcnNpb247CisKKy8vLypKREsxMklNUE9SVFMKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczJEOworCitpbXBvcnQgamF2YS5hd3QuZm9udC5Gb250UmVuZGVyQ29udGV4dDsKK2ltcG9ydCBqYXZhLmF3dC5mb250LlRleHRMYXlvdXQ7CitpbXBvcnQgamF2YS5hd3QuZm9udC5MaW5lQnJlYWtNZWFzdXJlcjsKK2ltcG9ydCBqYXZhLmF3dC5mb250LlRleHRIaXRJbmZvOworCitpbXBvcnQgamF2YS5hd3QuZ2VvbS5BZmZpbmVUcmFuc2Zvcm07CitpbXBvcnQgamF2YS5hd3QuZ2VvbS5HZW5lcmFsUGF0aDsKK2ltcG9ydCBqYXZhLmF3dC5nZW9tLlJlY3RhbmdsZTJEOworLy9KREsxMklNUE9SVFMqLworLypKREsxMUlNUE9SVFMKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuR3JhcGhpY3MyRDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5Gb250UmVuZGVyQ29udGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuVGV4dExheW91dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuTGluZUJyZWFrTWVhc3VyZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LlRleHRIaXRJbmZvOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LkFmZmluZVRyYW5zZm9ybTsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuR2VuZXJhbFBhdGg7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LlJlY3RhbmdsZTJEOworSkRLMTFJTVBPUlRTKi8KKworZmluYWwgY2xhc3MgQmlkaVBhcmFncmFwaFJlbmRlcmVyIGV4dGVuZHMgUGFyYWdyYXBoUmVuZGVyZXIgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIGZpbmFsIGNsYXNzIEJpZGlTZWdtZW50IHsKKyAgICAgICAgVGV4dExheW91dCBmTGF5b3V0OworICAgICAgICBSZWN0YW5nbGUyRC5GbG9hdCBmQm91bmRzOworICAgICAgICBpbnQgZkRpc3RhbmNlRnJvbUxlYWRpbmdNYXJnaW47CisgICAgfQorCisgICAgcHJpdmF0ZSBmaW5hbCBjbGFzcyBCaWRpTGF5b3V0SW5mbyBleHRlbmRzIExheW91dEluZm8KKyAgICB7ICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgaW50IGZDaGFyTGVuZ3RoOyAgICAgIC8vIG51bWJlciBvZiBjaGFyYWN0ZXJzIG9uIGxpbmUgKHdhcyBmTGVuZ3RoKQorICAgICAgICBpbnQgZkFzY2VudDsKKyAgICAgICAgaW50IGZEZXNjZW50OworICAgICAgICBpbnQgZkxlYWRpbmc7CisgICAgICAgIGludCBmVmlzaWJsZUFkdmFuY2U7ICAvLyBkaXN0YW5jZSBhbG9uZyBsaW5lIGRpcmVjdGlvbiBpZSB3aWR0aAorICAgICAgICBpbnQgZlRvdGFsQWR2YW5jZTsgICAgLy8gZGlzdGFuY2UgYWxvbmcgbGluZSBkaXJlY3Rpb24gaW5jbHVkaW5nIHRyYWlsaW5nIHdoaXRlc3BhY2UKKworICAgICAgICBpbnQgZkxlYWRpbmdNYXJnaW47ICAgLy8gc2NyZWVuIGRpc3RhbmNlIGZyb20gbGVhZGluZyBtYXJnaW4KKworICAgICAgICBib29sZWFuIGZMZWZ0VG9SaWdodDsgLy8gdHJ1ZSBpZmYgdGhlIG9yaWVudGF0aW9uIGlzIGxlZnQtdG8tcmlnaHQKKworICAgICAgICBmaW5hbCBWZWN0b3IgZlNlZ21lbnRzID0gbmV3IFZlY3RvcigpOyAvLyBzZWdtZW50cyB0byByZW5kZXIsIGluIGxvZ2ljYWwgb3JkZXIKKworICAgICAgICBwdWJsaWMgaW50IGdldENoYXJMZW5ndGgoKSB7CisgICAgICAgICAgICByZXR1cm4gZkNoYXJMZW5ndGg7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGdldEFzY2VudCgpIHsKKyAgICAgICAgICAgIHJldHVybiBmQXNjZW50OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBnZXREZXNjZW50KCkgeworICAgICAgICAgICAgcmV0dXJuIGZEZXNjZW50OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBnZXRMZWFkaW5nKCkgeworICAgICAgICAgICAgcmV0dXJuIGZMZWFkaW5nOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBnZXRWaXNpYmxlQWR2YW5jZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBmVmlzaWJsZUFkdmFuY2U7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGdldFRvdGFsQWR2YW5jZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBmVG90YWxBZHZhbmNlOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBnZXRMZWFkaW5nTWFyZ2luKCkgeworICAgICAgICAgICAgcmV0dXJuIGZMZWFkaW5nTWFyZ2luOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXNMZWZ0VG9SaWdodCgpIHsKKyAgICAgICAgICAgIHJldHVybiBmTGVmdFRvUmlnaHQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGdldEhlaWdodCgpIHsKKyAgICAgICAgICAgIHJldHVybiBmQXNjZW50ICsgZkRlc2NlbnQgKyBmTGVhZGluZzsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gIkxheW91dEluZm8oY2hhclN0YXJ0OiAiICsgZ2V0Q2hhclN0YXJ0KDApICsKKyAgICAgICAgICAgICAgICAiLCBmQ2hhckxlbmd0aDogIiArIGZDaGFyTGVuZ3RoICsKKyAgICAgICAgICAgICAgICAiLCBmQXNjZW50OiAiICsgZkFzY2VudCArCisgICAgICAgICAgICAgICAgIiwgZkRlc2NlbnQ6ICIgKyBmRGVzY2VudCArCisgICAgICAgICAgICAgICAgIiwgZlZpc2libGVBZHZhbmNlOiAiICsgZlZpc2libGVBZHZhbmNlICsKKyAgICAgICAgICAgICAgICAiLCBmVG90YWxBZHZhbmNlOiAiICsgZlRvdGFsQWR2YW5jZSArCisgICAgICAgICAgICAgICAgIiwgZkxlYWRpbmdNYXJnaW46ICIgKyBmTGVhZGluZ01hcmdpbiArCisgICAgICAgICAgICAgICAgIikiOworICAgICAgICB9CisKKyAgICAgICAgQmlkaVBhcmFncmFwaFJlbmRlcmVyIGZSZW5kZXJlcjsKKworICAgICAgICAvLyBqdXN0IGRlbGVnYXRlIHRvIHJlbmRlcmVyIGZvciBub3cKKworICAgICAgICBwdWJsaWMgdm9pZCByZW5kZXJXaXRoSGlnaGxpZ2h0KGludCBsZW5ndGhCYXNpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHcmFwaGljczJEIGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVCb3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHNlbFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsU3RvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvciBoaWdobGlnaHRDb2xvcikgeworCisgICAgICAgICAgICBmUmVuZGVyZXIucmVuZGVyV2l0aEhpZ2hsaWdodCh0aGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoQmFzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZUJvdW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbFN0b3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWdobGlnaHRDb2xvcik7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCByZW5kZXIoaW50IGxlbmd0aEJhc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgR3JhcGhpY3MyRCBnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVCb3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHkpIHsKKyAgICAgICAgICAgIGZSZW5kZXJlci5yZW5kZXIodGhpcywgbGVuZ3RoQmFzaXMsIGcsIGxpbmVCb3VuZCwgeCwgeSk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCByZW5kZXJDYXJldChNQ29uc3RUZXh0IHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW5ndGhCYXNpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3JhcGhpY3MyRCBnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGluZUJvdW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjaGFyT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvciBzdHJvbmdDYXJldENvbG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvciB3ZWFrQ2FyZXRDb2xvcikgeworICAgICAgICAgICAgZlJlbmRlcmVyLnJlbmRlckNhcmV0KHRoaXMsIHRleHQsIGxlbmd0aEJhc2lzLCBnLCBsaW5lQm91bmQsIHgsIHksIGNoYXJPZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb25nQ2FyZXRDb2xvciwgd2Vha0NhcmV0Q29sb3IpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFRleHRPZmZzZXQgcGl4ZWxUb09mZnNldChpbnQgbGVuZ3RoQmFzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVCb3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeSkgeworICAgICAgICAgICAgcmV0dXJuIGZSZW5kZXJlci5waXhlbFRvT2Zmc2V0KHRoaXMsIGxlbmd0aEJhc2lzLCByZXN1bHQsIGxpbmVCb3VuZCwgeCwgeSk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgUmVjdGFuZ2xlIGNhcmV0Qm91bmRzKE1Db25zdFRleHQgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoQmFzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVCb3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2hhck9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeSkgeworICAgICAgICAgICAgcmV0dXJuIGZSZW5kZXJlci5jYXJldEJvdW5kcyh0aGlzLCB0ZXh0LCBsZW5ndGhCYXNpcywgbGluZUJvdW5kLCBjaGFyT2Zmc2V0LCB4LCB5KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBzdHJvbmdDYXJldEJhc2VsaW5lUG9zaXRpb24oaW50IGxlbmd0aEJhc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGluZUJvdW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2hhck9mZnNldCkgeworCisgICAgICAgICAgICByZXR1cm4gZlJlbmRlcmVyLnN0cm9uZ0NhcmV0QmFzZWxpbmVQb3NpdGlvbih0aGlzLCBsZW5ndGhCYXNpcywgbGluZUJvdW5kLCBjaGFyT2Zmc2V0KTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0TmV4dE9mZnNldChpbnQgbGVuZ3RoQmFzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2hhck9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0IGRpcikgeworCisgICAgICAgICAgICByZXR1cm4gZlJlbmRlcmVyLmdldE5leHRPZmZzZXQodGhpcywgbGVuZ3RoQmFzaXMsIGNoYXJPZmZzZXQsIGRpcik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRkxVU0hfTEVBRElORyA9IFRleHRBdHRyaWJ1dGUuRkxVU0hfTEVBRElORy5pbnRWYWx1ZSgpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGTFVTSF9DRU5URVIgPSBUZXh0QXR0cmlidXRlLkZMVVNIX0NFTlRFUi5pbnRWYWx1ZSgpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGTFVTSF9UUkFJTElORyA9IFRleHRBdHRyaWJ1dGUuRkxVU0hfVFJBSUxJTkcuaW50VmFsdWUoKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRlVMTFlfSlVTVElGSUVEID0gVGV4dEF0dHJpYnV0ZS5GVUxMWV9KVVNUSUZJRUQuaW50VmFsdWUoKTsKKworICAgIHByaXZhdGUgQXR0cmlidXRlTWFwIGNhY2hlU3R5bGUgPSBudWxsOworCisgICAgcHJpdmF0ZSBmbG9hdCBmTGVhZGluZ01hcmdpbjsKKyAgICBwcml2YXRlIGZsb2F0IGZUcmFpbGluZ01hcmdpbjsKKyAgICBwcml2YXRlIGZsb2F0IGZGaXJzdExpbmVJbmRlbnQ7CisgICAgcHJpdmF0ZSBmbG9hdCBmTWluTGluZVNwYWNpbmc7CisgICAgcHJpdmF0ZSBmbG9hdCBmRXh0cmFMaW5lU3BhY2luZzsKKyAgICAKKyAgICBwcml2YXRlIGludCBmRmx1c2ggPSAtMTsKKyAgICBwcml2YXRlIE1UYWJSdWxlciBmVGFiUnVsZXI7CisgICAgCisgICAgcHJpdmF0ZSBib29sZWFuIGZMdHJEZWZhdWx0OworICAgIHByaXZhdGUgRGVmYXVsdENoYXJhY3Rlck1ldHJpYyBmRGVmYXVsdENoYXJNZXRyaWM7CisgICAgCisgICAgQmlkaVBhcmFncmFwaFJlbmRlcmVyKEF0dHJpYnV0ZU1hcCBwU3R5bGUsIERlZmF1bHRDaGFyYWN0ZXJNZXRyaWMgZGVmYXVsdENoYXJNZXRyaWMpIHsKKworICAgICAgICBmRGVmYXVsdENoYXJNZXRyaWMgPSBkZWZhdWx0Q2hhck1ldHJpYzsKKyAgICAgICAgaW5pdFJlbmRlcmVyKHBTdHlsZSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBmbG9hdCBnZXRGbG9hdFZhbHVlKE9iamVjdCBrZXksIEF0dHJpYnV0ZU1hcCBzdHlsZSkgeworICAgICAgICByZXR1cm4gKChGbG9hdClzdHlsZS5nZXQoa2V5KSkuZmxvYXRWYWx1ZSgpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGludCBnZXRJbnRWYWx1ZShPYmplY3Qga2V5LCBBdHRyaWJ1dGVNYXAgc3R5bGUpIHsKKyAgICAgICAgcmV0dXJuICgoSW50ZWdlcilzdHlsZS5nZXQoa2V5KSkuaW50VmFsdWUoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogTk9URTogIGl0IGlzIGlsbGVnYWwgdG8gaW5pdGlhbGl6ZSBhIFN0YW5kYXJkUGFyYWdyYXBoUmVuZGVyZXIgZm9yIGFueSBzdHlsZQorICAgICAqIG90aGVyIHRoYW4gdGhlIG9uZSBpdCB3YXMgY3JlYXRlZCB3aXRoLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGluaXRSZW5kZXJlcihBdHRyaWJ1dGVNYXAgcFN0eWxlKSB7CisKKyAgICAgICAgaWYgKGNhY2hlU3R5bGUgPT0gbnVsbCkgeworCisgICAgICAgICAgICBmTGVhZGluZ01hcmdpbiA9IGdldEZsb2F0VmFsdWUoVGV4dEF0dHJpYnV0ZS5MRUFESU5HX01BUkdJTiwgcFN0eWxlKTsKKyAgICAgICAgICAgIGZUcmFpbGluZ01hcmdpbiA9IGdldEZsb2F0VmFsdWUoVGV4dEF0dHJpYnV0ZS5UUkFJTElOR19NQVJHSU4sIHBTdHlsZSk7CisgICAgICAgICAgICBmRmlyc3RMaW5lSW5kZW50ID0gZ2V0RmxvYXRWYWx1ZShUZXh0QXR0cmlidXRlLkZJUlNUX0xJTkVfSU5ERU5ULCBwU3R5bGUpOworICAgICAgICAgICAgZk1pbkxpbmVTcGFjaW5nID0gZ2V0RmxvYXRWYWx1ZShUZXh0QXR0cmlidXRlLk1JTl9MSU5FX1NQQUNJTkcsIHBTdHlsZSk7CisgICAgICAgICAgICBmRXh0cmFMaW5lU3BhY2luZyA9IGdldEZsb2F0VmFsdWUoVGV4dEF0dHJpYnV0ZS5FWFRSQV9MSU5FX1NQQUNJTkcsIHBTdHlsZSk7CisKKyAgICAgICAgICAgIGZGbHVzaCA9IGdldEludFZhbHVlKFRleHRBdHRyaWJ1dGUuTElORV9GTFVTSCwgcFN0eWxlKTsKKworICAgICAgICAgICAgZlRhYlJ1bGVyID0gKE1UYWJSdWxlcikgcFN0eWxlLmdldChUZXh0QXR0cmlidXRlLlRBQl9SVUxFUik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIE9iamVjdCBydW5EaXIgPSBwU3R5bGUuZ2V0KFRleHRBdHRyaWJ1dGUuUlVOX0RJUkVDVElPTik7CisgICAgICAgICAgICBmTHRyRGVmYXVsdCA9ICFUZXh0QXR0cmlidXRlLlJVTl9ESVJFQ1RJT05fUlRMLmVxdWFscyhydW5EaXIpOworCisgICAgICAgICAgICBjYWNoZVN0eWxlID0gcFN0eWxlOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHBTdHlsZSAhPSBjYWNoZVN0eWxlKSB7CisgICAgICAgICAgICBpZiAoIXBTdHlsZS5lcXVhbHMoY2FjaGVTdHlsZSkpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkF0dGVtcHQgdG8gc2hhcmUgQmlkaVBhcmFncmFwaFJlbmRlcmVyIGJldHdlZW4gc3R5bGVzISIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgY2FjaGVTdHlsZSA9IHBTdHlsZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNUYWIoY2hhciBjaCkgeworICAgICAgICByZXR1cm4gY2ggPT0gJ1x0JzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGaWxsIGluIGluZm8gd2l0aCB0aGUgbmV4dCBsaW5lLgorICAgICAqIEBwYXJhbSBtZWFzdXJlciB0aGUgTGluZUJyZWFrTWVhc3VyZXIgZm9yIHRoaXMgcGFyYWdyYXBoLgorICAgICAqICBDdXJyZW50IHBvc2l0aW9uIHNob3VsZCBiZSB0aGUgZmlyc3QgY2hhcmFjdGVyIG9uIHRoZSBsaW5lLgorICAgICAqICBJZiBudWxsLCBhIDAtbGVuZ3RoIGxpbmUgaXMgZ2VuZXJhdGVkLiAgSWYgbWVhc3VyZXIgaXMgbnVsbAorICAgICAqICB0aGVuIHBhcmFncmFwaFN0YXJ0IGFuZCBwYXJhZ3JhcGhMaW1pdCBzaG91bGQgYmUgZXF1YWwuCisgICAgICovCisgICAgLy8gVXN1YWxseSB0b3RhbEZvcm1hdFdpZHRoIGFuZCBsaW5lQm91bmQgd2lsbCBiZSB0aGUgc2FtZS4KKyAgICAvLyB0b3RhbEZvcm1hdFdpZHRoIGlzIHVzZWQgZm9yIHdyYXBwaW5nLCBidXQgbGluZUJvdW5kIGlzCisgICAgLy8gZm9yIGZsdXNoaW5nLiAgVGhlc2UgbWF5IGJlIGRpZmZlcmVudCBmb3IgdW53cmFwcGVkIHRleHQsCisgICAgLy8gZm9yIGV4YW1wbGUuCisgICAgcHVibGljIExheW91dEluZm8gbGF5b3V0KE1Db25zdFRleHQgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGF5b3V0SW5mbyBsYXlvdXRUb1JldXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaW5lQnJlYWtNZWFzdXJlciBtZWFzdXJlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9udFJlbmRlckNvbnRleHQgZnJjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcGFyYWdyYXBoU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwYXJhZ3JhcGhMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRvdGFsRm9ybWF0V2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lQm91bmQpIHsKKworICAgICAgICBpZiAoKG1lYXN1cmVyPT1udWxsKSAhPSAocGFyYWdyYXBoU3RhcnQ9PXBhcmFncmFwaExpbWl0KSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgIm1lYXN1cmVyLCBwYXJhZ3JhcGhTdGFydCwgcGFyYWdyYXBoTGltaXQgYXJlIHdyb25nLiIpOworICAgICAgICB9CisgICAgICAgIEJpZGlMYXlvdXRJbmZvIGxpbmUgPSBudWxsOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBsaW5lID0gKEJpZGlMYXlvdXRJbmZvKSBsYXlvdXRUb1JldXNlOworICAgICAgICB9CisgICAgICAgIGNhdGNoKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIH0KKworICAgICAgICBpZiAobGluZSA9PSBudWxsKSB7CisgICAgICAgICAgICBsaW5lID0gbmV3IEJpZGlMYXlvdXRJbmZvKCk7CisgICAgICAgIH0KKworICAgICAgICBsaW5lLmZSZW5kZXJlciA9IHRoaXM7CisKKyAgICAgICAgZmluYWwgaW50IGxpbmVDaGFyU3RhcnQgPSBtZWFzdXJlcj09bnVsbD8gcGFyYWdyYXBoU3RhcnQgOiBtZWFzdXJlci5nZXRQb3NpdGlvbigpOworICAgICAgICBsaW5lLnNldENoYXJTdGFydChsaW5lQ2hhclN0YXJ0KTsKKworICAgICAgICBmaW5hbCBpbnQgbGluZUluZGVudCA9IChsaW5lQ2hhclN0YXJ0PT1wYXJhZ3JhcGhTdGFydCk/IChpbnQpIGZGaXJzdExpbmVJbmRlbnQgOiAwOworCisgICAgICAgIGludCBmb3JtYXRXaWR0aCA9IHRvdGFsRm9ybWF0V2lkdGggLSAoaW50KSAoZkxlYWRpbmdNYXJnaW4gKyBmVHJhaWxpbmdNYXJnaW4pOworICAgICAgICBjb21wdXRlTGluZU1ldHJpY3ModGV4dCwgbGluZSwgbWVhc3VyZXIsIGZyYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhZ3JhcGhTdGFydCwgcGFyYWdyYXBoTGltaXQsIGZvcm1hdFdpZHRoLCBsaW5lSW5kZW50KTsKKworICAgICAgICAvLyBwb3NpdGlvbiB0aGUgbGluZSBhY2NvcmRpbmcgdG8gdGhlIGxpbmUgZmx1c2gKKyAgICAgICAgaWYgKGZGbHVzaCA9PSBGTFVTSF9UUkFJTElORyB8fCBmRmx1c2ggPT0gRkxVU0hfQ0VOVEVSKSB7CisgICAgICAgICAgICBpbnQgbGluZUFyZWEgPSBsaW5lQm91bmQgLSAoaW50KSAoZkxlYWRpbmdNYXJnaW4gKyBmVHJhaWxpbmdNYXJnaW4pOworICAgICAgICAgICAgaW50IGFkdmFuY2VEaWZmZXJlbmNlID0gbGluZUFyZWEgLSBsaW5lLmZWaXNpYmxlQWR2YW5jZTsKKworICAgICAgICAgICAgaWYgKGZGbHVzaCA9PSBGTFVTSF9UUkFJTElORykgeworICAgICAgICAgICAgICAgIGxpbmUuZkxlYWRpbmdNYXJnaW4gPSAoKGludCkgKGZMZWFkaW5nTWFyZ2luKSkgKyBhZHZhbmNlRGlmZmVyZW5jZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGZGbHVzaCA9PSBGTFVTSF9DRU5URVIpIHsKKyAgICAgICAgICAgICAgICBsaW5lLmZMZWFkaW5nTWFyZ2luID0gKGludCkgKGZMZWFkaW5nTWFyZ2luICsgYWR2YW5jZURpZmZlcmVuY2UvMik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBsaW5lLmZMZWFkaW5nTWFyZ2luID0gKGludCkgZkxlYWRpbmdNYXJnaW47CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbGluZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGaWxsIGluIHRoZSBmb2xsb3dpbmcgZmllbGRzIGluIGxpbmU6CisgICAgICogZkNoYXJMZW5ndGgsIGZBc2NlbnQsIGZEZXNjZW50LCBmTGVhZGluZywgZlZpc2libGVBZHZhbmNlLAorICAgICAqIGZUb3RhbEFkdmFuY2UuCisgICAgICogVXNlczogbGluZS5mTGVhZGluZ01hcmdpbgorICAgICAqIEBwYXJhbSBmb3JtYXRXaWR0aCB0aGUgd2lkdGggdG8gZml0IHRoZSBsaW5lIGludG8uCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGNvbXB1dGVMaW5lTWV0cmljcyhNQ29uc3RUZXh0IHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCaWRpTGF5b3V0SW5mbyBsaW5lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGluZUJyZWFrTWVhc3VyZXIgbWVhc3VyZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb250UmVuZGVyQ29udGV4dCBmcmMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBpbnQgcGFyYWdyYXBoU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBpbnQgcGFyYWdyYXBoTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBpbnQgZm9ybWF0V2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBpbnQgbGluZUluZGVudCkgeworCisgICAgICAgIGludCBzZWdtZW50Q291bnQgPSAwOworICAgICAgICAvKiB2YXJpYWJsZSBub3QgdXNlZCBib29sZWFuIGZpcnN0TGluZSA9IG1lYXN1cmVyPT1udWxsIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVhc3VyZXIuZ2V0UG9zaXRpb24oKSA9PSBwYXJhZ3JhcGhTdGFydDsgKi8KKworICAgICAgICBpZiAobWVhc3VyZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgY29tcHV0ZVNlZ21lbnRzKHRleHQsIGxpbmUsIG1lYXN1cmVyLCBwYXJhZ3JhcGhMaW1pdCwgZm9ybWF0V2lkdGgsIGxpbmVJbmRlbnQpOworCisgICAgICAgICAgICAvLyBpdGVyYXRlIHRocm91Z2ggc2VnbWVudHMgYW5kIGFjY3VtdWxhdGUgYXNjZW50LCBkZXNjZW50LAorICAgICAgICAgICAgLy8gbGVhZGluZywgY2hhciBsZW5ndGgKKyAgICAgICAgICAgIGZsb2F0IGFzY2VudCA9IDA7CisgICAgICAgICAgICBmbG9hdCBkZXNjZW50ID0gMDsKKyAgICAgICAgICAgIGZsb2F0IGRlc2NlbnRQbHVzTGVhZGluZyA9IDA7CisKKyAgICAgICAgICAgIHNlZ21lbnRDb3VudCA9IGxpbmUuZlNlZ21lbnRzLnNpemUoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IHNlZ21lbnRDb3VudDsgaSsrKSB7CisgICAgICAgICAgICAgICAgVGV4dExheW91dCBsYXlvdXQgPSAoKEJpZGlTZWdtZW50KWxpbmUuZlNlZ21lbnRzLmVsZW1lbnRBdChpKSkuZkxheW91dDsKKyAgICAgICAgICAgICAgICBhc2NlbnQgPSBNYXRoLm1heChhc2NlbnQsIGxheW91dC5nZXRBc2NlbnQoKSk7CisgICAgICAgICAgICAgICAgZmxvYXQgc2VnRGVzY2VudCA9IGxheW91dC5nZXREZXNjZW50KCk7CisgICAgICAgICAgICAgICAgZGVzY2VudCA9IE1hdGgubWF4KGRlc2NlbnQsIHNlZ0Rlc2NlbnQpOworICAgICAgICAgICAgICAgIGRlc2NlbnRQbHVzTGVhZGluZyA9IE1hdGgubWF4KGRlc2NlbnRQbHVzTGVhZGluZywgc2VnRGVzY2VudCtsYXlvdXQuZ2V0TGVhZGluZygpKTsKKyAgICAgICAgICAgICAgICBsaW5lLmZDaGFyTGVuZ3RoICs9IGxheW91dC5nZXRDaGFyYWN0ZXJDb3VudCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsaW5lLmZBc2NlbnQgPSAoaW50KSBNYXRoLmNlaWwoYXNjZW50KTsKKyAgICAgICAgICAgIGxpbmUuZkRlc2NlbnQgPSAoaW50KSBNYXRoLmNlaWwoZGVzY2VudCk7CisgICAgICAgICAgICBsaW5lLmZMZWFkaW5nID0gKGludCkgTWF0aC5jZWlsKGRlc2NlbnRQbHVzTGVhZGluZykgLSBsaW5lLmZEZXNjZW50OworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbGluZS5mTGVmdFRvUmlnaHQgPSBmTHRyRGVmYXVsdDsKKyAgICAgICAgICAgIGxpbmUuZlNlZ21lbnRzLnJlbW92ZUFsbEVsZW1lbnRzKCk7CisKKyAgICAgICAgICAgIGxpbmUuZkNoYXJMZW5ndGggPSAwOworCisgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgc3R5bGUgPSB0ZXh0LmNoYXJhY3RlclN0eWxlQXQocGFyYWdyYXBoU3RhcnQpOworICAgICAgICAgICAgRGVmYXVsdENoYXJhY3Rlck1ldHJpYy5NZXRyaWMgY20gPSBmRGVmYXVsdENoYXJNZXRyaWMuZ2V0TWV0cmljRm9yU3R5bGUoc3R5bGUpOworICAgICAgICAgICAgbGluZS5mQXNjZW50ID0gY20uZ2V0QXNjZW50KCk7CisgICAgICAgICAgICBsaW5lLmZEZXNjZW50ID0gY20uZ2V0RGVzY2VudCgpOworICAgICAgICAgICAgbGluZS5mTGVhZGluZyA9IGNtLmdldExlYWRpbmcoKTsKKworICAgICAgICAgICAgbGluZS5mVmlzaWJsZUFkdmFuY2UgPSBsaW5lLmZUb3RhbEFkdmFuY2UgPSAwOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZFeHRyYUxpbmVTcGFjaW5nICE9IDApIHsKKyAgICAgICAgICAgIGxpbmUuZkFzY2VudCArPSAoaW50KSBNYXRoLmNlaWwoZkV4dHJhTGluZVNwYWNpbmcpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZNaW5MaW5lU3BhY2luZyAhPSAwKXsKKyAgICAgICAgICAgIGludCBoZWlnaHQgPSBsaW5lLmdldEhlaWdodCgpOworICAgICAgICAgICAgaWYgKGhlaWdodCA8IGZNaW5MaW5lU3BhY2luZykgeworICAgICAgICAgICAgICAgIGxpbmUuZkFzY2VudCArPSBNYXRoLmNlaWwoZk1pbkxpbmVTcGFjaW5nIC0gaGVpZ2h0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIGludCBsaW5lTmF0dXJhbEFkdmFuY2UgPSBsaW5lLmZUb3RhbEFkdmFuY2U7CisKKyAgICAgICAgbGluZS5mVG90YWxBZHZhbmNlICs9IGxpbmVJbmRlbnQ7CisgICAgICAgIGxpbmUuZlZpc2libGVBZHZhbmNlICs9IGxpbmVJbmRlbnQ7CisKKyAgICAgICAgaWYgKG1lYXN1cmVyICE9IG51bGwpIHsKKyAgICAgICAgICAgIC8vIE5vdyBmaWxsIGluIGZCb3VuZHMgZmllbGQgb2YgQmlkaVNlZ21lbnRzLiAgZkJvdW5kcyBzaG91bGQgdGlsZQorICAgICAgICAgICAgLy8gdGhlIGxpbmUuCisgICAgICAgICAgICBmaW5hbCBmbG9hdCBsaW5lSGVpZ2h0ID0gbGluZS5nZXRIZWlnaHQoKTsKKworICAgICAgICAgICAgZm9yIChpbnQgaT0xOyBpIDwgc2VnbWVudENvdW50OyBpKyspIHsKKworICAgICAgICAgICAgICAgIEJpZGlTZWdtZW50IGN1cnJlbnRTZWdtZW50ID0gKEJpZGlTZWdtZW50KSBsaW5lLmZTZWdtZW50cy5lbGVtZW50QXQoaS0xKTsKKyAgICAgICAgICAgICAgICBCaWRpU2VnbWVudCBuZXh0U2VnbWVudCA9IChCaWRpU2VnbWVudCkgbGluZS5mU2VnbWVudHMuZWxlbWVudEF0KGkpOworCisgICAgICAgICAgICAgICAgZmxvYXQgb3JpZ2luOworICAgICAgICAgICAgICAgIGZsb2F0IHdpZHRoOworCisgICAgICAgICAgICAgICAgaWYgKGxpbmUuZkxlZnRUb1JpZ2h0KSB7CisgICAgICAgICAgICAgICAgICAgIG9yaWdpbiA9IDA7CisgICAgICAgICAgICAgICAgICAgIHdpZHRoID0gbmV4dFNlZ21lbnQuZkRpc3RhbmNlRnJvbUxlYWRpbmdNYXJnaW4gLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50U2VnbWVudC5mRGlzdGFuY2VGcm9tTGVhZGluZ01hcmdpbjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG9yaWdpbiA9IGN1cnJlbnRTZWdtZW50LmZEaXN0YW5jZUZyb21MZWFkaW5nTWFyZ2luOworICAgICAgICAgICAgICAgICAgICBvcmlnaW4gLT0gbmV4dFNlZ21lbnQuZkRpc3RhbmNlRnJvbUxlYWRpbmdNYXJnaW47CisgICAgICAgICAgICAgICAgICAgIG9yaWdpbiArPSAoZmxvYXQpIE1hdGguY2VpbChuZXh0U2VnbWVudC5mTGF5b3V0LmdldEFkdmFuY2UoKSk7CisgICAgICAgICAgICAgICAgICAgIHdpZHRoID0gKGZsb2F0KSBNYXRoLmNlaWwoY3VycmVudFNlZ21lbnQuZkxheW91dC5nZXRBZHZhbmNlKCkpIC0gb3JpZ2luOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjdXJyZW50U2VnbWVudC5mQm91bmRzID0gbmV3IFJlY3RhbmdsZTJELkZsb2F0KG9yaWdpbiwgLWxpbmUuZkFzY2VudCwgd2lkdGgsIGxpbmVIZWlnaHQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBzZXQgbGFzdCBzZWdtZW50J3MgYm91bmRzCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgQmlkaVNlZ21lbnQgY3VycmVudFNlZ21lbnQgPSAoQmlkaVNlZ21lbnQpIGxpbmUuZlNlZ21lbnRzLmVsZW1lbnRBdChzZWdtZW50Q291bnQtMSk7CisgICAgICAgICAgICAgICAgZmxvYXQgb3JpZ2luOworICAgICAgICAgICAgICAgIGZsb2F0IHdpZHRoOworCisgICAgICAgICAgICAgICAgaWYgKGxpbmUuZkxlZnRUb1JpZ2h0KSB7CisgICAgICAgICAgICAgICAgICAgIG9yaWdpbiA9IDA7CisgICAgICAgICAgICAgICAgICAgIHdpZHRoID0gbGluZU5hdHVyYWxBZHZhbmNlIC0gY3VycmVudFNlZ21lbnQuZkRpc3RhbmNlRnJvbUxlYWRpbmdNYXJnaW47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBvcmlnaW4gPSBjdXJyZW50U2VnbWVudC5mRGlzdGFuY2VGcm9tTGVhZGluZ01hcmdpbiAtIGxpbmVOYXR1cmFsQWR2YW5jZTsKKyAgICAgICAgICAgICAgICAgICAgd2lkdGggPSAoZmxvYXQpIE1hdGguY2VpbChjdXJyZW50U2VnbWVudC5mTGF5b3V0LmdldEFkdmFuY2UoKSkgLSBvcmlnaW47CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgY3VycmVudFNlZ21lbnQuZkJvdW5kcyA9IG5ldyBSZWN0YW5nbGUyRC5GbG9hdChvcmlnaW4sIC1saW5lLmZBc2NlbnQsIHdpZHRoLCBsaW5lSGVpZ2h0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEZpbGwgaW4gZlNlZ21lbnRzLCBmTGVmdFRvUmlnaHQuICBtZWFzdXJlciBtdXN0IG5vdCBiZSBudWxsCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGNvbXB1dGVTZWdtZW50cyhNQ29uc3RUZXh0IHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCaWRpTGF5b3V0SW5mbyBsaW5lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGluZUJyZWFrTWVhc3VyZXIgbWVhc3VyZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBpbnQgcGFyYWdyYXBoTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBpbnQgZm9ybWF0V2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBpbnQgbGluZUluZGVudCkgeworCisgICAgICAgIC8vIE5vdGUgb24ganVzdGlmaWNhdGlvbjogIG9ubHkgdGhlIGxhc3Qgc2VnbWVudCBvZiBhIGxpbmUgaXMKKyAgICAgICAgLy8ganVzdGlmaWVkLiAgCisgICAgICAgIC8vIEFsc28sIGlmIGEgbGluZSBlbmRzIGluIGEgdGFiIGl0IHdpbGwgbm90IGJlIGp1c3RpZmllZC4KKyAgICAgICAgLy8gVGhpcyBiZWhhdmlvciBpcyBjb25zaXN0ZW50IHdpdGggb3RoZXIgd29yZCBwcm9jZXNzb3JzCisgICAgICAgIC8vIEkgdHJpZWQgKE1TIFdvcmQgYW5kIExvdHVzIFdvcmQgUHJvKS4KKyAgICAgICAgCisgICAgICAgIGxpbmUuZlNlZ21lbnRzLnJlbW92ZUFsbEVsZW1lbnRzKCk7CisgICAgICAgIGxpbmUuZkNoYXJMZW5ndGggPSAwOworCisgICAgICAgIFRhYlN0b3AgY3VycmVudFRhYlN0b3AgPSBuZXcgVGFiU3RvcCgoaW50KWZMZWFkaW5nTWFyZ2luK2xpbmVJbmRlbnQsIFRhYlN0b3Aua0xlYWRpbmcpOworCisgICAgICAgIGludCBzZWdtZW50TGltaXQgPSBtZWFzdXJlci5nZXRQb3NpdGlvbigpOworICAgICAgICBib29sZWFuIGZpcnN0U2VnbWVudCA9IHRydWU7CisKKyAgICAgICAgaW50IGFkdmFuY2VGcm9tTGVhZGluZ01hcmdpbiA9IGxpbmVJbmRlbnQ7CisKKyAgICAgICAgYm9vbGVhbiBjb21wdXRlU2VncyA9IHRydWU7CisgICAgICAgIAorICAgICAgICBjb21wdXRlVGFiYmVkU2VnbWVudHM6IGRvIHsKKworICAgICAgICAgICAgLy8gY29tcHV0ZSBzZW1lbnRMaW1pdDoKKyAgICAgICAgICAgIGlmIChzZWdtZW50TGltaXQgPD0gbWVhc3VyZXIuZ2V0UG9zaXRpb24oKSkgeworICAgICAgICAgICAgICAgIHdoaWxlIChzZWdtZW50TGltaXQgPCBwYXJhZ3JhcGhMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoaXNUYWIodGV4dC5hdChzZWdtZW50TGltaXQrKykpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gTk9URTogIGFkanVzdCBhdmFpbGFibGUgd2lkdGggZm9yIGNlbnRlciB0YWIhISEKKyAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJGb3JtYXQgd2lkdGg6ICIgKyAoZm9ybWF0V2lkdGgtYWR2YW5jZUZyb21MZWFkaW5nTWFyZ2luKSArCisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAiOyAgc2VnbWVudExpbWl0OiAiICsgc2VnbWVudExpbWl0KTsKKworICAgICAgICAgICAgaW50IHdyYXBwaW5nV2lkdGggPSBNYXRoLm1heChmb3JtYXRXaWR0aC1hZHZhbmNlRnJvbUxlYWRpbmdNYXJnaW4sIDApOworICAgICAgICAgICAgVGV4dExheW91dCBsYXlvdXQgPSBudWxsOworICAgICAgICAgICAgaWYgKGZpcnN0U2VnbWVudCB8fCB3cmFwcGluZ1dpZHRoID4gMCB8fCBzZWdtZW50TGltaXQgPiBtZWFzdXJlci5nZXRQb3NpdGlvbigpKzEpIHsKKyAgICAgICAgICAgICAgICBsYXlvdXQgPSBtZWFzdXJlci5uZXh0TGF5b3V0KHdyYXBwaW5nV2lkdGgsIHNlZ21lbnRMaW1pdCwgIWZpcnN0U2VnbWVudCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChsYXlvdXQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGlmIChmaXJzdFNlZ21lbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gSSBkb3VidCB0aGlzIHdvdWxkIGhhcHBlbiwgYnV0IGNoZWNrIGFueXdheQorICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkZpcnN0IGxheW91dCBpcyBudWxsISIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhayBjb21wdXRlVGFiYmVkU2VnbWVudHM7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZpbmFsIGludCBtZWFzdXJlclBvcyA9IG1lYXN1cmVyLmdldFBvc2l0aW9uKCk7CisgICAgICAgICAgICBpZiAobWVhc3VyZXJQb3MgPCBzZWdtZW50TGltaXQpIHsKKyAgICAgICAgICAgICAgICBjb21wdXRlU2VncyA9IGZhbHNlOworICAgICAgICAgICAgICAgIGlmIChmRmx1c2ggPT0gRlVMTFlfSlVTVElGSUVEKSB7CisgICAgICAgICAgICAgICAgICAgIGxheW91dCA9IGxheW91dC5nZXRKdXN0aWZpZWRMYXlvdXQod3JhcHBpbmdXaWR0aCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgY29tcHV0ZVNlZ3MgPSAhKG1lYXN1cmVyUG9zID09IHBhcmFncmFwaExpbWl0KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGZpcnN0U2VnbWVudCkgeworICAgICAgICAgICAgICAgIGZpcnN0U2VnbWVudCA9IGZhbHNlOworICAgICAgICAgICAgICAgIC8vIEhhdmUgdG8gZ2V0IGx0ciBvZmYgb2YgbGF5b3V0LiAgTm90IGF2YWlsYWJsZSBmcm9tIG1lYXN1cmVyLAorICAgICAgICAgICAgICAgIC8vIHVuZm9ydHVuYXRlbHkuCisgICAgICAgICAgICAgICAgbGluZS5mTGVmdFRvUmlnaHQgPSBsYXlvdXQuaXNMZWZ0VG9SaWdodCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBCaWRpU2VnbWVudCBzZWdtZW50ID0gbmV3IEJpZGlTZWdtZW50KCk7CisgICAgICAgICAgICBzZWdtZW50LmZMYXlvdXQgPSBsYXlvdXQ7CisgICAgICAgICAgICBpbnQgbGF5b3V0QWR2YW5jZSA9IChpbnQpIE1hdGguY2VpbChsYXlvdXQuZ2V0QWR2YW5jZSgpKTsKKworICAgICAgICAgICAgLy8gcG9zaXRpb24gbGF5b3V0IHJlbGF0aXZlIHRvIGxlYWRpbmcgbWFyZ2luLCB1cGRhdGUgbG9naWNhbFBvc2l0aW9uT25MaW5lCisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCByZWxhdGl2ZVRhYlBvc2l0aW9uID0gY3VycmVudFRhYlN0b3AuZ2V0UG9zaXRpb24oKS0oaW50KWZMZWFkaW5nTWFyZ2luOworICAgICAgICAgICAgaW50IGxvZ2ljYWxQb3NpdGlvbk9mTGF5b3V0OworICAgICAgICAgICAgc3dpdGNoIChjdXJyZW50VGFiU3RvcC5nZXRUeXBlKCkpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFRhYlN0b3Aua1RyYWlsaW5nOgorICAgICAgICAgICAgICAgICAgICBsb2dpY2FsUG9zaXRpb25PZkxheW91dCA9IE1hdGgubWF4KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRpdmVUYWJQb3NpdGlvbi1sYXlvdXRBZHZhbmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWR2YW5jZUZyb21MZWFkaW5nTWFyZ2luKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBUYWJTdG9wLmtDZW50ZXI6CisgICAgICAgICAgICAgICAgICAgIGxvZ2ljYWxQb3NpdGlvbk9mTGF5b3V0ID0gTWF0aC5tYXgoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxhdGl2ZVRhYlBvc2l0aW9uLShsYXlvdXRBZHZhbmNlLzIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWR2YW5jZUZyb21MZWFkaW5nTWFyZ2luKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDogIC8vIGluY2x1ZGVzIGRlY2ltYWwgdGFiIHJpZ2h0IG5vdworICAgICAgICAgICAgICAgICAgICBsb2dpY2FsUG9zaXRpb25PZkxheW91dCA9IHJlbGF0aXZlVGFiUG9zaXRpb247CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBwb3NpdGlvbiBsYXlvdXQgaW4gc2VnbWVudAorICAgICAgICAgICAgaWYgKGxpbmUuZkxlZnRUb1JpZ2h0KSB7CisgICAgICAgICAgICAgICAgc2VnbWVudC5mRGlzdGFuY2VGcm9tTGVhZGluZ01hcmdpbiA9IGxvZ2ljYWxQb3NpdGlvbk9mTGF5b3V0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgc2VnbWVudC5mRGlzdGFuY2VGcm9tTGVhZGluZ01hcmdpbiA9IGxvZ2ljYWxQb3NpdGlvbk9mTGF5b3V0K2xheW91dEFkdmFuY2U7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIHVwZGF0ZSBhZHZhbmNlRnJvbUxlYWRpbmdNYXJnaW4KKyAgICAgICAgICAgIGFkdmFuY2VGcm9tTGVhZGluZ01hcmdpbiA9IGxvZ2ljYWxQb3NpdGlvbk9mTGF5b3V0ICsgbGF5b3V0QWR2YW5jZTsKKworICAgICAgICAgICAgLy8gYWRkIHNlZ21lbnQgdG8gc2VnbWVudCBWZWN0b3IKKyAgICAgICAgICAgIGxpbmUuZlNlZ21lbnRzLmFkZEVsZW1lbnQoc2VnbWVudCk7CisKKyAgICAgICAgICAgIC8vIGdldCBuZXh0IHRhYgorICAgICAgICAgICAgY3VycmVudFRhYlN0b3AgPSBmVGFiUnVsZXIubmV4dFRhYigoaW50KWZMZWFkaW5nTWFyZ2luK2FkdmFuY2VGcm9tTGVhZGluZ01hcmdpbik7CisgICAgICAgICAgICBpZiAoY3VycmVudFRhYlN0b3AuZ2V0VHlwZSgpID09IFRhYlN0b3Aua0xlYWRpbmcgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFiU3RvcC5nZXRUeXBlKCkgPT0gVGFiU3RvcC5rQXV0bykgIHsKKyAgICAgICAgICAgICAgICBhZHZhbmNlRnJvbUxlYWRpbmdNYXJnaW4gPSBjdXJyZW50VGFiU3RvcC5nZXRQb3NpdGlvbigpOworICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJBZHZhbmNlIGZyb20gbGVhZGluZyBtYXJnaW46IiArIGFkdmFuY2VGcm9tTGVhZGluZ01hcmdpbik7CisKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIk5vbi1sZWFkaW5nIHRhYiwgdHlwZT0iICsgY3VycmVudFRhYlN0b3AuZ2V0VHlwZSgpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICB9IHdoaWxlIChjb21wdXRlU2Vncyk7CisKKyAgICAgICAgLy8gTm93IGNvbXB1dGUgZlRvdGFsQWR2YW5jZSwgZlZpc2libGVBZHZhbmNlLiAgVGhlc2UgbWV0cmljcyBtYXkgYmUgYWZmZWN0ZWQKKyAgICAgICAgLy8gYnkgYSB0cmFpbGluZyB0YWIuCisKKyAgICAgICAgeworICAgICAgICAgICAgQmlkaVNlZ21lbnQgbGFzdFNlZ21lbnQgPSAoQmlkaVNlZ21lbnQpIGxpbmUuZlNlZ21lbnRzLmxhc3RFbGVtZW50KCk7CisgICAgICAgICAgICBUZXh0TGF5b3V0IGxhc3RMYXlvdXQgPSBsYXN0U2VnbWVudC5mTGF5b3V0OworCisgICAgICAgICAgICBpZiAobGluZS5mTGVmdFRvUmlnaHQpIHsKKyAgICAgICAgICAgICAgICBsaW5lLmZUb3RhbEFkdmFuY2UgPSAoaW50KSBNYXRoLmNlaWwobGFzdExheW91dC5nZXRBZHZhbmNlKCkpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0U2VnbWVudC5mRGlzdGFuY2VGcm9tTGVhZGluZ01hcmdpbjsKKyAgICAgICAgICAgICAgICBsaW5lLmZWaXNpYmxlQWR2YW5jZSA9IChpbnQpIE1hdGguY2VpbChsYXN0TGF5b3V0LmdldFZpc2libGVBZHZhbmNlKCkpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0U2VnbWVudC5mRGlzdGFuY2VGcm9tTGVhZGluZ01hcmdpbjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGxpbmUuZlRvdGFsQWR2YW5jZSA9IGxhc3RTZWdtZW50LmZEaXN0YW5jZUZyb21MZWFkaW5nTWFyZ2luOworICAgICAgICAgICAgICAgIGxpbmUuZlZpc2libGVBZHZhbmNlID0gbGFzdFNlZ21lbnQuZkRpc3RhbmNlRnJvbUxlYWRpbmdNYXJnaW4gLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpIE1hdGguY2VpbChsYXN0TGF5b3V0LmdldEFkdmFuY2UoKSAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RMYXlvdXQuZ2V0VmlzaWJsZUFkdmFuY2UoKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChpc1RhYih0ZXh0LmF0KG1lYXN1cmVyLmdldFBvc2l0aW9uKCktMSkpKSB7CisgICAgICAgICAgICAgICAgbGluZS5mVG90YWxBZHZhbmNlID0gTWF0aC5tYXgobGluZS5mVG90YWxBZHZhbmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhYlN0b3AuZ2V0UG9zaXRpb24oKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGhpZ2hsaWdodCBzaGFwZSBmb3IgdGhlIGdpdmVuIGNoYXJhY3RlciBvZmZzZXRzLgorICAgICAqIFRoZSBTaGFwZSByZXR1cm5lZCBpcyByZWxhdGl2ZSB0byB0aGUgbGVmdG1vc3QgcG9pbnQgb24gdGhlCisgICAgICogYmFzZWxpbmUgb2YgbGluZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIFNoYXBlIGdldEhpZ2hsaWdodFNoYXBlKEJpZGlMYXlvdXRJbmZvIGxpbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoQmFzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGluZUJvdW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGhsU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaGxMaW1pdCkgeworCisgICAgICAgIGlmIChobFN0YXJ0ID49IGhsTGltaXQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkhpZ2hsaWdodCByYW5nZSBsZW5ndGggaXMgbm90IHBvc2l0aXZlLiIpOworICAgICAgICB9CisKKyAgICAgICAgZmluYWwgaW50IGxlYWRpbmdNYXJnaW4gPSAobGluZS5mTGVmdFRvUmlnaHQpPworICAgICAgICAgICAgICAgIGxpbmUuZkxlYWRpbmdNYXJnaW4gOiBsaW5lQm91bmQgLSBsaW5lLmZMZWFkaW5nTWFyZ2luOworICAgICAgICBmaW5hbCBpbnQgc2VnbWVudENvdW50ID0gbGluZS5mU2VnbWVudHMuc2l6ZSgpOworCisgICAgICAgIFNoYXBlIHJ2YWwgPSBudWxsOworICAgICAgICBHZW5lcmFsUGF0aCBoaWdobGlnaHRQYXRoID0gbnVsbDsKKworICAgICAgICBpbnQgY3VycmVudExheW91dFN0YXJ0ID0gbGluZS5nZXRDaGFyU3RhcnQobGVuZ3RoQmFzaXMpOworCisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IHNlZ21lbnRDb3VudDsgaSsrKSB7CisKKyAgICAgICAgICAgIEJpZGlTZWdtZW50IHNlZ21lbnQgPSAoQmlkaVNlZ21lbnQpIGxpbmUuZlNlZ21lbnRzLmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgIFRleHRMYXlvdXQgbGF5b3V0ID0gc2VnbWVudC5mTGF5b3V0OworICAgICAgICAgICAgaW50IGNoYXJDb3VudCA9IGxheW91dC5nZXRDaGFyYWN0ZXJDb3VudCgpOworICAgICAgICAgICAgaW50IGN1cnJlbnRMYXlvdXRMaW1pdCA9IGN1cnJlbnRMYXlvdXRTdGFydCArIGNoYXJDb3VudDsKKyAgICAgICAgICAgIGJvb2xlYW4gcmFuZ2VzSW50ZXJzZWN0OworICAgICAgICAgICAgaWYgKGhsU3RhcnQgPD0gY3VycmVudExheW91dFN0YXJ0KSB7CisgICAgICAgICAgICAgICAgcmFuZ2VzSW50ZXJzZWN0ID0gaGxMaW1pdCA+IGN1cnJlbnRMYXlvdXRTdGFydDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHJhbmdlc0ludGVyc2VjdCA9IGhsU3RhcnQgPCBjdXJyZW50TGF5b3V0TGltaXQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChyYW5nZXNJbnRlcnNlY3QpIHsKKworICAgICAgICAgICAgICAgIFNoYXBlIGN1cnJlbnRIbCA9IGxheW91dC5nZXRMb2dpY2FsSGlnaGxpZ2h0U2hhcGUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5tYXgoaGxTdGFydC1jdXJyZW50TGF5b3V0U3RhcnQsIDApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGgubWluKGhsTGltaXQtY3VycmVudExheW91dFN0YXJ0LCBjaGFyQ291bnQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlZ21lbnQuZkJvdW5kcyk7CisKKyAgICAgICAgICAgICAgICBmbG9hdCB4VHJhbnNsYXRlOworICAgICAgICAgICAgICAgIGlmIChsaW5lLmZMZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgICAgICAgICB4VHJhbnNsYXRlID0gbGVhZGluZ01hcmdpbiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWdtZW50LmZEaXN0YW5jZUZyb21MZWFkaW5nTWFyZ2luOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgeFRyYW5zbGF0ZSA9IGxlYWRpbmdNYXJnaW4gLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VnbWVudC5mRGlzdGFuY2VGcm9tTGVhZGluZ01hcmdpbjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoeFRyYW5zbGF0ZSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIEFmZmluZVRyYW5zZm9ybSB4Zm9ybSA9CisgICAgICAgICAgICAgICAgICAgICAgICBBZmZpbmVUcmFuc2Zvcm0uZ2V0VHJhbnNsYXRlSW5zdGFuY2UoeFRyYW5zbGF0ZSwgMCk7CisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRIbCA9IHhmb3JtLmNyZWF0ZVRyYW5zZm9ybWVkU2hhcGUoY3VycmVudEhsKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAocnZhbCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHJ2YWwgPSBjdXJyZW50SGw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoaGlnaGxpZ2h0UGF0aCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBoaWdobGlnaHRQYXRoID0gbmV3IEdlbmVyYWxQYXRoKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBoaWdobGlnaHRQYXRoLmFwcGVuZChydmFsLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBydmFsID0gaGlnaGxpZ2h0UGF0aDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBoaWdobGlnaHRQYXRoLmFwcGVuZChjdXJyZW50SGwsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjdXJyZW50TGF5b3V0U3RhcnQgPSBjdXJyZW50TGF5b3V0TGltaXQ7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gcnZhbDsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcmVuZGVyV2l0aEhpZ2hsaWdodChCaWRpTGF5b3V0SW5mbyBsaW5lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW5ndGhCYXNpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHcmFwaGljczJEIGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVCb3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHNlbFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsU3RvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvciBoaWdobGlnaHRDb2xvcikgeworCisgICAgICAgIGZpbmFsIGludCBsaW5lQ2hhclN0YXJ0ID0gbGluZS5nZXRDaGFyU3RhcnQobGVuZ3RoQmFzaXMpOworCisgICAgICAgIGlmIChzZWxTdGFydCAhPSBudWxsICYmIHNlbFN0b3AgIT0gbnVsbCAmJiAhc2VsU3RhcnQuZXF1YWxzKHNlbFN0b3ApICYmCisgICAgICAgICAgICAgICAgbGluZS5mQ2hhckxlbmd0aCAhPSAwICYmCisgICAgICAgICAgICAgICAgc2VsU3RhcnQuZk9mZnNldCA8IGxpbmVDaGFyU3RhcnQgKyBsaW5lLmZDaGFyTGVuZ3RoICYmCisgICAgICAgICAgICAgICAgc2VsU3RvcC5mT2Zmc2V0ID4gbGluZUNoYXJTdGFydCkgeworCisgICAgICAgICAgICBTaGFwZSBoaWdobGlnaHQgPSBnZXRIaWdobGlnaHRTaGFwZShsaW5lLCBsZW5ndGhCYXNpcywgbGluZUJvdW5kLCBzZWxTdGFydC5mT2Zmc2V0LCBzZWxTdG9wLmZPZmZzZXQpOworICAgICAgICAgICAgaWYgKGhpZ2hsaWdodCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgR3JhcGhpY3MyRCBobCA9IChHcmFwaGljczJEKSBnLmNyZWF0ZSgpOworICAgICAgICAgICAgICAgIGhsLnNldENvbG9yKGhpZ2hsaWdodENvbG9yKTsKKyAgICAgICAgICAgICAgICBobC50cmFuc2xhdGUoeCwgeSArIGxpbmUuZkFzY2VudCk7CisgICAgICAgICAgICAgICAgaGwuZmlsbChoaWdobGlnaHQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmVuZGVyKGxpbmUsIGxlbmd0aEJhc2lzLCBnLCBsaW5lQm91bmQsIHgsIHkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERyYXcgdGhlIGxpbmUgaW50byB0aGUgZ3JhcGhpY3MuICAoeCwgeSkgaXMgdGhlIHVwcGVyLWxlZnQgY29ybmVyCisgICAgICogb2YgdGhlIGxpbmUuICBUaGUgbGVhZGluZyBlZGdlIG9mIGEgcmlnaHQtYWxpZ25lZCBsaW5lIGlzIGFsaWduZWQKKyAgICAgKiB0byAoeCArIGxpbmVCb3VuZCkuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHJlbmRlcihCaWRpTGF5b3V0SW5mbyBsaW5lLAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbmd0aEJhc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgR3JhcGhpY3MyRCBnLAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVCb3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCB4LAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IHkpIHsKKworICAgICAgICBmaW5hbCBpbnQgbGVhZGluZ01hcmdpbiA9IChsaW5lLmZMZWZ0VG9SaWdodCk/CisgICAgICAgICAgICAgICAgeCArIGxpbmUuZkxlYWRpbmdNYXJnaW4gOiB4ICsgbGluZUJvdW5kIC0gbGluZS5mTGVhZGluZ01hcmdpbjsKKyAgICAgICAgZmluYWwgaW50IGJhc2VsaW5lID0geSArIGxpbmUuZkFzY2VudDsKKyAgICAgICAgZmluYWwgaW50IHNlZ21lbnRDb3VudCA9IGxpbmUuZlNlZ21lbnRzLnNpemUoKTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBzZWdtZW50Q291bnQ7IGkrKykgeworCisgICAgICAgICAgICBCaWRpU2VnbWVudCBzZWdtZW50ID0gKEJpZGlTZWdtZW50KSBsaW5lLmZTZWdtZW50cy5lbGVtZW50QXQoaSk7CisKKyAgICAgICAgICAgIGZsb2F0IGRyYXdYOworICAgICAgICAgICAgaWYgKGxpbmUuZkxlZnRUb1JpZ2h0KSB7CisgICAgICAgICAgICAgICAgZHJhd1ggPSBsZWFkaW5nTWFyZ2luICsgc2VnbWVudC5mRGlzdGFuY2VGcm9tTGVhZGluZ01hcmdpbjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGRyYXdYID0gbGVhZGluZ01hcmdpbiAtIHNlZ21lbnQuZkRpc3RhbmNlRnJvbUxlYWRpbmdNYXJnaW47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHNlZ21lbnQuZkxheW91dC5kcmF3KGcsIGRyYXdYLCBiYXNlbGluZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIFRleHRPZmZzZXQgaGl0VGVzdFNlZ21lbnQoVGV4dE9mZnNldCByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzZWdtZW50Q2hhclN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCaWRpU2VnbWVudCBzZWdtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeEluU2VnbWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHlJblNlZ21lbnQpIHsKKworICAgICAgICBmaW5hbCBUZXh0TGF5b3V0IGxheW91dCA9IHNlZ21lbnQuZkxheW91dDsKKyAgICAgICAgZmluYWwgaW50IGNoYXJDb3VudCA9IGxheW91dC5nZXRDaGFyYWN0ZXJDb3VudCgpOworICAgICAgICBmaW5hbCBpbnQgbGF5b3V0QWR2YW5jZSA9IChpbnQpIE1hdGguY2VpbChsYXlvdXQuZ2V0QWR2YW5jZSgpKTsKKyAgICAgICAgUmVjdGFuZ2xlMkQgYm91bmRzID0gc2VnbWVudC5mQm91bmRzOworCisgICAgICAgIGZpbmFsIGJvb2xlYW4gbHRyID0gbGF5b3V0LmlzTGVmdFRvUmlnaHQoKTsKKworICAgICAgICBpZiAobHRyICYmICh4SW5TZWdtZW50ID49IGxheW91dEFkdmFuY2UpIHx8ICFsdHIgJiYgKHhJblNlZ21lbnQgPD0gMCkpIHsKKworICAgICAgICAgICAgLy8gcHJldGVuZCB0aGUgZXh0cmEgc3BhY2UgYXQgdGhlIGVuZCBvZiB0aGUgbGluZSBpcyBhCisgICAgICAgICAgICAvLyB0YWIgYW5kICdoaXQtdGVzdCcgaXQuCisgICAgICAgICAgICBkb3VibGUgdGFiQ2VudGVyOworICAgICAgICAgICAgaWYgKGx0cikgeworICAgICAgICAgICAgICAgIHRhYkNlbnRlciA9IChsYXlvdXRBZHZhbmNlK2JvdW5kcy5nZXRNYXhYKCkpIC8gMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHRhYkNlbnRlciA9IGJvdW5kcy5nZXRYKCkgLyAyOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoKHhJblNlZ21lbnQgPj0gdGFiQ2VudGVyKSA9PSBsdHIpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuZk9mZnNldCA9IGNoYXJDb3VudDsKKyAgICAgICAgICAgICAgICByZXN1bHQuZlBsYWNlbWVudCA9IFRleHRPZmZzZXQuQkVGT1JFX09GRlNFVDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdC5mT2Zmc2V0ID0gY2hhckNvdW50LTE7CisgICAgICAgICAgICAgICAgcmVzdWx0LmZQbGFjZW1lbnQgPSBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIFRleHRIaXRJbmZvIGluZm8gPSBsYXlvdXQuaGl0VGVzdENoYXIoeEluU2VnbWVudCwgeUluU2VnbWVudCwgc2VnbWVudC5mQm91bmRzKTsKKyAgICAgICAgICAgIHJlc3VsdC5mT2Zmc2V0ID0gaW5mby5nZXRJbnNlcnRpb25JbmRleCgpOworICAgICAgICAgICAgaWYgKHJlc3VsdC5mT2Zmc2V0ID09IDApIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuZlBsYWNlbWVudCA9IFRleHRPZmZzZXQuQUZURVJfT0ZGU0VUOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAocmVzdWx0LmZPZmZzZXQgPT0gY2hhckNvdW50KSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmZQbGFjZW1lbnQgPSBUZXh0T2Zmc2V0LkJFRk9SRV9PRkZTRVQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuZlBsYWNlbWVudCA9IGluZm8uaXNMZWFkaW5nRWRnZSgpPworICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldC5BRlRFUl9PRkZTRVQgOiBUZXh0T2Zmc2V0LkJFRk9SRV9PRkZTRVQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXN1bHQuZk9mZnNldCArPSBzZWdtZW50Q2hhclN0YXJ0OworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgb2Zmc2V0IGF0IHRoZSBwb2ludCAoeCwgeSkuICAoeCwgeSkgaXMgcmVsYXRpdmUgdG8gdGhlIHRvcC1sZWZ0CisgICAgICogb2YgdGhlIGxpbmUuICBUaGUgbGVhZGluZyBlZGdlIG9mIGEgcmlnaHQtYWxpZ25lZCBsaW5lIGlzIGFsaWduZWQKKyAgICAgKiB0byBsaW5lQm91bmQuCisgICAgICovCisgICAgcHJpdmF0ZSBUZXh0T2Zmc2V0IHBpeGVsVG9PZmZzZXQoQmlkaUxheW91dEluZm8gbGluZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoQmFzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVCb3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeSkgeworCisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgeworICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFRleHRPZmZzZXQoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIGludCB5SW5TZWdtZW50ID0geSAtIGxpbmUuZkFzY2VudDsKKyAgICAgICAgZmluYWwgaW50IGxlYWRpbmdNYXJnaW4gPSAobGluZS5mTGVmdFRvUmlnaHQpPworICAgICAgICAgICAgICAgIGxpbmUuZkxlYWRpbmdNYXJnaW4gOiBsaW5lQm91bmQgLSBsaW5lLmZMZWFkaW5nTWFyZ2luOworICAgICAgICBmaW5hbCBpbnQgbGluZUNoYXJTdGFydCA9IGxpbmUuZ2V0Q2hhclN0YXJ0KGxlbmd0aEJhc2lzKTsKKworICAgICAgICAvLyBmaXJzdCBzZWUgaWYgcG9pbnQgaXMgYmVmb3JlIGxlYWRpbmcgZWRnZSBvZiBsaW5lCisgICAgICAgIGZpbmFsIGludCBzZWdtZW50Q291bnQgPSBsaW5lLmZTZWdtZW50cy5zaXplKCk7CisgICAgICAgIHsKKyAgICAgICAgICAgIGludCBzZWdMZWFkaW5nTWFyZ2luID0gbGVhZGluZ01hcmdpbjsKKyAgICAgICAgICAgIGlmIChzZWdtZW50Q291bnQgPiAwKSB7CisgICAgICAgICAgICAgICAgQmlkaVNlZ21lbnQgZmlyc3RTZWcgPSAoQmlkaVNlZ21lbnQpIGxpbmUuZlNlZ21lbnRzLmVsZW1lbnRBdCgwKTsKKyAgICAgICAgICAgICAgICBpZiAobGluZS5mTGVmdFRvUmlnaHQpIHsKKyAgICAgICAgICAgICAgICAgICAgc2VnTGVhZGluZ01hcmdpbiArPSBmaXJzdFNlZy5mRGlzdGFuY2VGcm9tTGVhZGluZ01hcmdpbjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHNlZ0xlYWRpbmdNYXJnaW4gLT0gZmlyc3RTZWcuZkRpc3RhbmNlRnJvbUxlYWRpbmdNYXJnaW47CisgICAgICAgICAgICAgICAgICAgIHNlZ0xlYWRpbmdNYXJnaW4gKz0gKGZsb2F0KSBmaXJzdFNlZy5mQm91bmRzLmdldE1heFgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobGluZS5mTGVmdFRvUmlnaHQgPT0gKHggPD0gc2VnTGVhZGluZ01hcmdpbikpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuZk9mZnNldCA9IGxpbmVDaGFyU3RhcnQ7CisgICAgICAgICAgICAgICAgcmVzdWx0LmZQbGFjZW1lbnQgPSBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVDsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaW50IHNlZ21lbnRDaGFyU3RhcnQgPSBsaW5lQ2hhclN0YXJ0OworCisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IHNlZ21lbnRDb3VudDsgaSsrKSB7CisKKyAgICAgICAgICAgIEJpZGlTZWdtZW50IHNlZ21lbnQgPSAoQmlkaVNlZ21lbnQpIGxpbmUuZlNlZ21lbnRzLmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgIGludCBzZWdtZW50T3JpZ2luID0gbGluZS5mTGVmdFRvUmlnaHQ/CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVhZGluZ01hcmdpbitzZWdtZW50LmZEaXN0YW5jZUZyb21MZWFkaW5nTWFyZ2luIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWFkaW5nTWFyZ2luLXNlZ21lbnQuZkRpc3RhbmNlRnJvbUxlYWRpbmdNYXJnaW47CisgICAgICAgICAgICBpbnQgeEluU2VnbWVudCA9IHggLSBzZWdtZW50T3JpZ2luOworICAgICAgICAgICAgaWYgKGxpbmUuZkxlZnRUb1JpZ2h0KSB7CisgICAgICAgICAgICAgICAgaWYgKHNlZ21lbnQuZkJvdW5kcy5nZXRNYXhYKCkgPiB4SW5TZWdtZW50KSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBoaXRUZXN0U2VnbWVudChyZXN1bHQsIHNlZ21lbnRDaGFyU3RhcnQsIHNlZ21lbnQsIHhJblNlZ21lbnQsIHlJblNlZ21lbnQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChzZWdtZW50LmZCb3VuZHMuZ2V0WCgpIDwgeEluU2VnbWVudCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gaGl0VGVzdFNlZ21lbnQocmVzdWx0LCBzZWdtZW50Q2hhclN0YXJ0LCBzZWdtZW50LCB4SW5TZWdtZW50LCB5SW5TZWdtZW50KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzZWdtZW50Q2hhclN0YXJ0ICs9IHNlZ21lbnQuZkxheW91dC5nZXRDaGFyYWN0ZXJDb3VudCgpOworICAgICAgICB9CisKKyAgICAgICAgcmVzdWx0LmZPZmZzZXQgPSBsaW5lQ2hhclN0YXJ0ICsgbGluZS5mQ2hhckxlbmd0aDsKKyAgICAgICAgcmVzdWx0LmZQbGFjZW1lbnQgPSBUZXh0T2Zmc2V0LkJFRk9SRV9PRkZTRVQ7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHJlbmRlckNhcmV0KEJpZGlMYXlvdXRJbmZvIGxpbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1Db25zdFRleHQgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbmd0aEJhc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHcmFwaGljczJEIGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgaW50IGNoYXJPZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yIHN0cm9uZ0NhcmV0Q29sb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yIHdlYWtDYXJldENvbG9yKQorICAgIHsKKyAgICAgICAgZmluYWwgaW50IHNlZ21lbnRDb3VudCA9IGxpbmUuZlNlZ21lbnRzLnNpemUoKTsKKyAgICAgICAgZmluYWwgaW50IGxpbmVTdGFydCA9IGxpbmUuZ2V0Q2hhclN0YXJ0KGxlbmd0aEJhc2lzKTsKKworICAgICAgICBpbnQgY3VycmVudFN0YXJ0ID0gbGluZVN0YXJ0OworICAgICAgICBCaWRpU2VnbWVudCBzZWdtZW50ID0gbnVsbDsKKyAgICAgICAgaW50IHNlZ21lbnRJbmRleDsKKworICAgICAgICBmb3IgKHNlZ21lbnRJbmRleD0wOyBzZWdtZW50SW5kZXggPCBzZWdtZW50Q291bnQ7IHNlZ21lbnRJbmRleCsrKSB7CisgICAgICAgICAgICBzZWdtZW50ID0gKEJpZGlTZWdtZW50KSBsaW5lLmZTZWdtZW50cy5lbGVtZW50QXQoc2VnbWVudEluZGV4KTsKKyAgICAgICAgICAgIGludCBjdXJyZW50RW5kcG9pbnQgPSBjdXJyZW50U3RhcnQgKyBzZWdtZW50LmZMYXlvdXQuZ2V0Q2hhcmFjdGVyQ291bnQoKTsKKyAgICAgICAgICAgIGlmIChjdXJyZW50RW5kcG9pbnQgPiBjaGFyT2Zmc2V0KSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjdXJyZW50U3RhcnQgPSBjdXJyZW50RW5kcG9pbnQ7CisgICAgICAgIH0KKworICAgICAgICAvKgorICAgICAgICAgICAgVGhlcmUgYXJlIHR3byBjaG9pY2VzIGhlcmU6CisgICAgICAgICAgICAxLiBnZXQgY2FyZXRzIGZyb20gYSBUZXh0TGF5b3V0IGFuZCByZW5kZXIgdGhlbSwgb3IKKyAgICAgICAgICAgIDIuIG1ha2UgdXAgYSBjYXJldCBvdXJzZWx2ZXMgYW5kIHJlbmRlciBpdC4KKyAgICAgICAgICAgIFdlIHdhbnQgdG8gZG8gMiB3aGVuOgorICAgICAgICAgICAgICAgICogdGhlcmUgaXMgbm8gdGV4dCBvbiB0aGUgbGluZSwgb3IKKyAgICAgICAgICAgICAgICAqIHRoZSBsaW5lIGVuZHMgd2l0aCBhIHRhYiBhbmQgd2UgYXJlIGRyYXdpbmcgdGhlIGxhc3QgY2FyZXQgb24gdGhlIGxpbmUKKyAgICAgICAgICAgIE90aGVyd2lzZSwgd2Ugd2FudCAxLgorICAgICAgICAqLworCisgICAgICAgIGlmIChzZWdtZW50SW5kZXggPT0gc2VnbWVudENvdW50ICYmIHNlZ21lbnRDb3VudCA+IDApIHsKKyAgICAgICAgICAgIC8vIElmIHdlIGdldCBoZXJlLCBsaW5lIGxlbmd0aCBpcyBub3QgMCwgYW5kIGNoYXJPZmZzZXQgaXMgYXQgZW5kIG9mIGxpbmUKKyAgICAgICAgICAgIGlmICghaXNUYWIodGV4dC5hdChjaGFyT2Zmc2V0LTEpKSkgeworICAgICAgICAgICAgICAgIHNlZ21lbnRJbmRleCA9IHNlZ21lbnRDb3VudC0xOworICAgICAgICAgICAgICAgIHNlZ21lbnQgPSAoQmlkaVNlZ21lbnQpIGxpbmUuZlNlZ21lbnRzLmVsZW1lbnRBdChzZWdtZW50SW5kZXgpOworICAgICAgICAgICAgICAgIGN1cnJlbnRTdGFydCA9IGxpbmVTdGFydCArIGxpbmUuZ2V0Q2hhckxlbmd0aCgpIC0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlZ21lbnQuZkxheW91dC5nZXRDaGFyYWN0ZXJDb3VudCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgT2JqZWN0IHNhdmVkUGFpbnQgPSBHcmFwaGljczJEQ29udmVyc2lvbi5nZXRDb2xvclN0YXRlKGcpOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpZiAoc2VnbWVudEluZGV4IDwgc2VnbWVudENvdW50KSB7CisgICAgICAgICAgICAgICAgVGV4dExheW91dCBsYXlvdXQgPSBzZWdtZW50LmZMYXlvdXQ7CisgICAgICAgICAgICAgICAgaW50IG9mZnNldEluTGF5b3V0ID0gY2hhck9mZnNldCAtIGN1cnJlbnRTdGFydDsKKyAgICAgICAgICAgICAgICBTaGFwZVtdIGNhcmV0cyA9IGxheW91dC5nZXRDYXJldFNoYXBlcyhvZmZzZXRJbkxheW91dCwgc2VnbWVudC5mQm91bmRzKTsKKyAgICAgICAgICAgICAgICBnLnNldENvbG9yKHN0cm9uZ0NhcmV0Q29sb3IpOworICAgICAgICAgICAgICAgIGludCBsYXlvdXRQb3MgPSBsaW5lLmZMZWFkaW5nTWFyZ2luICsgc2VnbWVudC5mRGlzdGFuY2VGcm9tTGVhZGluZ01hcmdpbjsKKyAgICAgICAgICAgICAgICBpbnQgbGF5b3V0WCA9IGxpbmUuZkxlZnRUb1JpZ2h0PworICAgICAgICAgICAgICAgICAgICAgICAgeCArIGxheW91dFBvcyA6IHggKyBsaW5lQm91bmQgLSBsYXlvdXRQb3M7CisgICAgICAgICAgICAgICAgaW50IGxheW91dFkgPSB5ICsgbGluZS5mQXNjZW50OworCisgICAgICAgICAgICAgICAgLy8gVHJhbnNsYXRpbmcgYW5kIHRoZW4gY2xpcHBpbmcgZG9lc24ndCB3b3JrLiAgVHJ5IHRoaXM6CisgICAgICAgICAgICAgICAgUmVjdGFuZ2xlMkQuRmxvYXQgY2xpcFJlY3QgPSBuZXcgUmVjdGFuZ2xlMkQuRmxvYXQoKTsKKyAgICAgICAgICAgICAgICBjbGlwUmVjdC5zZXRSZWN0KHNlZ21lbnQuZkJvdW5kcyk7CisgICAgICAgICAgICAgICAgY2xpcFJlY3QueCArPSBsYXlvdXRYOworICAgICAgICAgICAgICAgIGNsaXBSZWN0LnkgKz0gbGF5b3V0WTsKKyAgICAgICAgICAgICAgICBjbGlwUmVjdC53aWR0aCArPSAxOworICAgICAgICAgICAgICAgIGNsaXBSZWN0LmhlaWdodCAtPSAxOworCisgICAgICAgICAgICAgICAgT2JqZWN0IHNhdmVkQ2xpcCA9IENsaXBXb3JrYXJvdW5kLnNhdmVDbGlwU3RhdGUoZyk7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgQ2xpcFdvcmthcm91bmQudHJhbnNsYXRlQW5kRHJhd1NoYXBlV2l0aENsaXAoZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXRYLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dFksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcFJlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FyZXRzWzBdKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNhcmV0c1sxXSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBnLnNldENvbG9yKHdlYWtDYXJldENvbG9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIENsaXBXb3JrYXJvdW5kLnRyYW5zbGF0ZUFuZERyYXdTaGFwZVdpdGhDbGlwKGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dFgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dFksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXBSZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXJldHNbMV0pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZpbmFsbHkgeworICAgICAgICAgICAgICAgICAgICBDbGlwV29ya2Fyb3VuZC5yZXN0b3JlQ2xpcFN0YXRlKGcsIHNhdmVkQ2xpcCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaW50IGxpbmVFbmQgPSBsaW5lLmZMZWFkaW5nTWFyZ2luICsgbGluZS5mVG90YWxBZHZhbmNlOworICAgICAgICAgICAgICAgIGludCBlbmRYID0gbGluZS5mTGVmdFRvUmlnaHQ/IGxpbmVFbmQgOiBsaW5lQm91bmQtbGluZUVuZDsKKyAgICAgICAgICAgICAgICBlbmRYICs9IHg7CisgICAgICAgICAgICAgICAgZy5kcmF3TGluZShlbmRYLCB5LCBlbmRYLCB5K2xpbmUuZ2V0SGVpZ2h0KCktMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZmluYWxseSB7CisgICAgICAgICAgICBHcmFwaGljczJEQ29udmVyc2lvbi5yZXN0b3JlQ29sb3JTdGF0ZShnLCBzYXZlZFBhaW50KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgUmVjdGFuZ2xlIGNhcmV0Qm91bmRzKEJpZGlMYXlvdXRJbmZvIGxpbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUNvbnN0VGV4dCB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW5ndGhCYXNpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGluZUJvdW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjaGFyT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB5KSB7CisKKyAgICAgICAgZmluYWwgaW50IHNlZ21lbnRDb3VudCA9IGxpbmUuZlNlZ21lbnRzLnNpemUoKTsKKyAgICAgICAgZmluYWwgaW50IGxpbmVTdGFydCA9IGxpbmUuZ2V0Q2hhclN0YXJ0KGxlbmd0aEJhc2lzKTsKKyAgICAgICAgaW50IGN1cnJlbnRTdGFydCA9IGxpbmVTdGFydDsKKyAgICAgICAgQmlkaVNlZ21lbnQgc2VnbWVudCA9IG51bGw7CisgICAgICAgIGludCBzZWdtZW50SW5kZXg7CisKKyAgICAgICAgZm9yIChzZWdtZW50SW5kZXg9MDsgc2VnbWVudEluZGV4IDwgc2VnbWVudENvdW50OyBzZWdtZW50SW5kZXgrKykgeworICAgICAgICAgICAgc2VnbWVudCA9IChCaWRpU2VnbWVudCkgbGluZS5mU2VnbWVudHMuZWxlbWVudEF0KHNlZ21lbnRJbmRleCk7CisgICAgICAgICAgICBpbnQgY3VycmVudEVuZHBvaW50ID0gY3VycmVudFN0YXJ0ICsgc2VnbWVudC5mTGF5b3V0LmdldENoYXJhY3RlckNvdW50KCk7CisgICAgICAgICAgICBpZiAoY3VycmVudEVuZHBvaW50ID4gY2hhck9mZnNldCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY3VycmVudFN0YXJ0ID0gY3VycmVudEVuZHBvaW50OworICAgICAgICB9CisKKyAgICAgICAgaWYgKHNlZ21lbnRJbmRleCA9PSBzZWdtZW50Q291bnQgJiYgc2VnbWVudENvdW50ID4gMCkgeworICAgICAgICAgICAgLy8gSWYgd2UgZ2V0IGhlcmUsIGxpbmUgbGVuZ3RoIGlzIG5vdCAwLCBhbmQgY2hhck9mZnNldCBpcyBhdCBlbmQgb2YgbGluZQorICAgICAgICAgICAgaWYgKCFpc1RhYih0ZXh0LmF0KGNoYXJPZmZzZXQtMSkpKSB7CisgICAgICAgICAgICAgICAgc2VnbWVudEluZGV4ID0gc2VnbWVudENvdW50LTE7CisgICAgICAgICAgICAgICAgc2VnbWVudCA9IChCaWRpU2VnbWVudCkgbGluZS5mU2VnbWVudHMuZWxlbWVudEF0KHNlZ21lbnRJbmRleCk7CisgICAgICAgICAgICAgICAgY3VycmVudFN0YXJ0ID0gbGluZVN0YXJ0ICsgbGluZS5nZXRDaGFyTGVuZ3RoKCkgLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VnbWVudC5mTGF5b3V0LmdldENoYXJhY3RlckNvdW50KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBSZWN0YW5nbGUgcjsKKyAgICAgICAgCisgICAgICAgIGlmIChzZWdtZW50SW5kZXggPCBzZWdtZW50Q291bnQpIHsKKyAgICAgICAgICAgIFRleHRMYXlvdXQgbGF5b3V0ID0gc2VnbWVudC5mTGF5b3V0OworICAgICAgICAgICAgaW50IG9mZnNldEluTGF5b3V0ID0gY2hhck9mZnNldCAtIGN1cnJlbnRTdGFydDsKKyAgICAgICAgICAgIFNoYXBlW10gY2FyZXRzID0gbGF5b3V0LmdldENhcmV0U2hhcGVzKG9mZnNldEluTGF5b3V0LCBzZWdtZW50LmZCb3VuZHMpOworICAgICAgICAgICAgciA9IGNhcmV0c1swXS5nZXRCb3VuZHMoKTsKKyAgICAgICAgICAgIGlmIChjYXJldHNbMV0gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHIuYWRkKGNhcmV0c1sxXS5nZXRCb3VuZHMoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByLndpZHRoICs9IDE7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBsYXlvdXRQb3MgPSBsaW5lLmZMZWFkaW5nTWFyZ2luICsgc2VnbWVudC5mRGlzdGFuY2VGcm9tTGVhZGluZ01hcmdpbjsKKyAgICAgICAgICAgIGlmIChsaW5lLmZMZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgICAgIHIueCArPSBsYXlvdXRQb3M7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByLnggKz0gbGluZUJvdW5kIC0gbGF5b3V0UG9zOworICAgICAgICAgICAgfQorICAgICAgICAgICAgci55ICs9IGxpbmUuZkFzY2VudDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHIgPSBuZXcgUmVjdGFuZ2xlKCk7CisgICAgICAgICAgICByLmhlaWdodCA9IGxpbmUuZ2V0SGVpZ2h0KCk7CisgICAgICAgICAgICByLndpZHRoID0gMTsKKyAgICAgICAgICAgIGludCBsaW5lRW5kID0gbGluZS5mTGVhZGluZ01hcmdpbiArIGxpbmUuZlRvdGFsQWR2YW5jZTsKKyAgICAgICAgICAgIGlmIChsaW5lLmZMZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgICAgIHIueCA9IGxpbmVFbmQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByLnggPSBsaW5lQm91bmQgLSBsaW5lRW5kOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICByLnRyYW5zbGF0ZSh4LCB5KTsKKyAgICAgICAgcmV0dXJuIHI7CisgICAgfQorCisgICAgcHJpdmF0ZSBpbnQgc3Ryb25nQ2FyZXRCYXNlbGluZVBvc2l0aW9uKEJpZGlMYXlvdXRJbmZvIGxpbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW5ndGhCYXNpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVCb3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNoYXJPZmZzZXQpIHsKKworICAgICAgICBmaW5hbCBpbnQgc2VnbWVudENvdW50ID0gbGluZS5mU2VnbWVudHMuc2l6ZSgpOworICAgICAgICBpbnQgY3VycmVudFN0YXJ0ID0gbGluZS5nZXRDaGFyU3RhcnQobGVuZ3RoQmFzaXMpOworICAgICAgICBCaWRpU2VnbWVudCBzZWdtZW50ID0gbnVsbDsKKyAgICAgICAgaW50IHNlZ21lbnRJbmRleDsKKworICAgICAgICBmb3IgKHNlZ21lbnRJbmRleD0wOyBzZWdtZW50SW5kZXggPCBzZWdtZW50Q291bnQ7IHNlZ21lbnRJbmRleCsrKSB7CisgICAgICAgICAgICBzZWdtZW50ID0gKEJpZGlTZWdtZW50KSBsaW5lLmZTZWdtZW50cy5lbGVtZW50QXQoc2VnbWVudEluZGV4KTsKKyAgICAgICAgICAgIGludCBjdXJyZW50RW5kcG9pbnQgPSBjdXJyZW50U3RhcnQgKyBzZWdtZW50LmZMYXlvdXQuZ2V0Q2hhcmFjdGVyQ291bnQoKTsKKyAgICAgICAgICAgIGlmIChjdXJyZW50RW5kcG9pbnQgPiBjaGFyT2Zmc2V0KSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjdXJyZW50U3RhcnQgPSBjdXJyZW50RW5kcG9pbnQ7CisgICAgICAgIH0KKworICAgICAgICBpZiAoc2VnbWVudEluZGV4IDwgc2VnbWVudENvdW50KSB7CisgICAgICAgICAgICBUZXh0TGF5b3V0IGxheW91dCA9IHNlZ21lbnQuZkxheW91dDsKKyAgICAgICAgICAgIGludCBvZmZzZXRJbkxheW91dCA9IGNoYXJPZmZzZXQgLSBjdXJyZW50U3RhcnQ7CisgICAgICAgICAgICBUZXh0SGl0SW5mbyBoaXQgPSBUZXh0SGl0SW5mby5hZnRlck9mZnNldChvZmZzZXRJbkxheW91dCk7CisgICAgICAgICAgICBoaXQgPSBsYXlvdXQuREVGQVVMVF9DQVJFVF9QT0xJQ1kuZ2V0U3Ryb25nQ2FyZXQoaGl0LCBoaXQuZ2V0T3RoZXJIaXQoKSwgbGF5b3V0KTsKKyAgICAgICAgICAgIGZsb2F0W10gaW5mbyA9IGxheW91dC5nZXRDYXJldEluZm8oaGl0KTsKKyAgICAgICAgICAgIGludCBsYXlvdXRQb3MgPSBsaW5lLmZMZWFkaW5nTWFyZ2luICsgc2VnbWVudC5mRGlzdGFuY2VGcm9tTGVhZGluZ01hcmdpbjsKKyAgICAgICAgICAgIGlmIChsaW5lLmZMZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgICAgIHJldHVybiBsYXlvdXRQb3MgKyAoaW50KSBpbmZvWzBdOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGxpbmVCb3VuZCAtIGxheW91dFBvcyArIChpbnQpIGluZm9bMF07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpbnQgbGluZUVuZCA9IGxpbmUuZkxlYWRpbmdNYXJnaW4gKyBsaW5lLmZUb3RhbEFkdmFuY2U7CisgICAgICAgICAgICBpZiAobGluZS5mTGVmdFRvUmlnaHQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbGluZUVuZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBsaW5lQm91bmQgLSBsaW5lRW5kOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBpbnQgZ2V0TmV4dE9mZnNldChCaWRpTGF5b3V0SW5mbyBsaW5lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbmd0aEJhc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNoYXJPZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG9ydCBkaXIpIHsKKworICAgICAgICBpZiAoZGlyICE9IE1Gb3JtYXR0ZXIuZUxlZnQgJiYgZGlyICE9IE1Gb3JtYXR0ZXIuZVJpZ2h0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGRpcmVjdGlvbi4iKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGZpbmQgc2VnbWVudCBjb250YWluaW5nIG9mZnNldDoKKyAgICAgICAgZmluYWwgaW50IHNlZ21lbnRDb3VudCA9IGxpbmUuZlNlZ21lbnRzLnNpemUoKTsKKyAgICAgICAgZmluYWwgaW50IGxpbmVDaGFyU3RhcnQgPSBsaW5lLmdldENoYXJTdGFydChsZW5ndGhCYXNpcyk7CisKKyAgICAgICAgaW50IGN1cnJlbnRTdGFydCA9IGxpbmVDaGFyU3RhcnQ7CisgICAgICAgIEJpZGlTZWdtZW50IHNlZ21lbnQgPSBudWxsOworICAgICAgICBpbnQgc2VnbWVudEluZGV4OworCisgICAgICAgIGZvciAoc2VnbWVudEluZGV4PTA7IHNlZ21lbnRJbmRleCA8IHNlZ21lbnRDb3VudDsgc2VnbWVudEluZGV4KyspIHsKKyAgICAgICAgICAgIHNlZ21lbnQgPSAoQmlkaVNlZ21lbnQpIGxpbmUuZlNlZ21lbnRzLmVsZW1lbnRBdChzZWdtZW50SW5kZXgpOworICAgICAgICAgICAgaW50IGN1cnJlbnRFbmRwb2ludCA9IGN1cnJlbnRTdGFydCArIHNlZ21lbnQuZkxheW91dC5nZXRDaGFyYWN0ZXJDb3VudCgpOworICAgICAgICAgICAgaWYgKGN1cnJlbnRFbmRwb2ludCA+IGNoYXJPZmZzZXQgfHwKKyAgICAgICAgICAgICAgICAgICAgKHNlZ21lbnRJbmRleCA9PSBzZWdtZW50Q291bnQtMSAmJiBjdXJyZW50RW5kcG9pbnQ9PWNoYXJPZmZzZXQpKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjdXJyZW50U3RhcnQgPSBjdXJyZW50RW5kcG9pbnQ7CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBib29sZWFuIGxvZ0FkdmFuY2UgPSAoZGlyPT1NRm9ybWF0dGVyLmVSaWdodCk9PShsaW5lLmZMZWZ0VG9SaWdodCk7CisKKyAgICAgICAgaW50IHJlc3VsdDsKKworICAgICAgICBpZiAoc2VnbWVudEluZGV4IDwgc2VnbWVudENvdW50KSB7CisgICAgICAgICAgICBUZXh0TGF5b3V0IGxheW91dCA9IHNlZ21lbnQuZkxheW91dDsKKyAgICAgICAgICAgIGludCBvZmZzZXRJbkxheW91dCA9IGNoYXJPZmZzZXQgLSBjdXJyZW50U3RhcnQ7CisgICAgICAgICAgICBUZXh0SGl0SW5mbyBoaXQgPSAoZGlyPT1NRm9ybWF0dGVyLmVMZWZ0KT8KKyAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dC5nZXROZXh0TGVmdEhpdChvZmZzZXRJbkxheW91dCkgOgorICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0LmdldE5leHRSaWdodEhpdChvZmZzZXRJbkxheW91dCk7CisgICAgICAgICAgICBpZiAoaGl0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBsb2dBZHZhbmNlPworICAgICAgICAgICAgICAgICAgICBjdXJyZW50U3RhcnQrbGF5b3V0LmdldENoYXJhY3RlckNvdW50KCkrMSA6IGN1cnJlbnRTdGFydC0xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gaGl0LmdldEluc2VydGlvbkluZGV4KCkgKyBjdXJyZW50U3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXN1bHQgPSBsb2dBZHZhbmNlPyBsaW5lQ2hhclN0YXJ0ICsgbGluZS5mQ2hhckxlbmd0aCArIDEgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lQ2hhclN0YXJ0IC0gMTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvQ2xpcFdvcmthcm91bmQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvQ2xpcFdvcmthcm91bmQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45ZDBhMDM5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9DbGlwV29ya2Fyb3VuZC5qYXZhCkBAIC0wLDAgKzEsMTQyIEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBDbGlwV29ya2Fyb3VuZC5qYXZhLHYgJCAkUmV2aXNpb246IDEuMiAkICREYXRlOiAyMDAyLzAyLzE2IDAzOjA2OjQyICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvLyBSZXF1aXJlcyBKYXZhMgorCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdDsKKworaW1wb3J0IGphdmEuYXd0LlNoYXBlOworLy8vKkpESzEySU1QT1JUUworaW1wb3J0IGphdmEuYXd0LkdyYXBoaWNzMkQ7CitpbXBvcnQgamF2YS5hd3QuZ2VvbS5SZWN0YW5nbGUyRDsKK2ltcG9ydCBqYXZhLmF3dC5nZW9tLlBhdGhJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLmF3dC5nZW9tLkxpbmUyRDsKKy8vSkRLMTJJTVBPUlRTKi8KKy8qSkRLMTFJTVBPUlRTCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LkdyYXBoaWNzMkQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LlJlY3RhbmdsZTJEOworSkRLMTFJTVBPUlRTKi8KKworLyoqCisgKiBUaGlzIGNsYXNzIGV4aXN0cyB0byB3b3JrIGFyb3VuZCBhIGNsaXBwaW5nIGJ1ZyBpbiBKREsgMS4yLgorICovCitmaW5hbCBjbGFzcyBDbGlwV29ya2Fyb3VuZCB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworLy8vKkpESzEySU1QT1JUUworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBleGN1c2UgPQorICAgICAgICAiU29ycnksIHRoaXMgbWV0aG9kIGlzIGEgdmVyeSBsaW1pdGVkIHdvcmthcm91bmQgZm9yIGEgSkRLIDEuMiBidWcuIjsKKy8vSkRLMTJJTVBPUlRTKi8KKyAgICAKKyAgICBzdGF0aWMgT2JqZWN0IHNhdmVDbGlwU3RhdGUoR3JhcGhpY3MyRCBnKSB7CisvLy8qSkRLMTJJTVBPUlRTCisgICAgICAgIHJldHVybiBudWxsOworLy9KREsxMklNUE9SVFMqLworLypKREsxMUlNUE9SVFMKKyAgICAgICAgcmV0dXJuIGcuZ2V0Q2xpcCgpOworSkRLMTFJTVBPUlRTKi8KKyAgICB9CisgICAgCisgICAgc3RhdGljIHZvaWQgcmVzdG9yZUNsaXBTdGF0ZShHcmFwaGljczJEIGcsIE9iamVjdCBzdGF0ZSkgeworLy8vKkpESzEySU1QT1JUUworICAgICAgICBpZiAoc3RhdGUgIT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGNsaXAgc3RhdGUgZm9yIHRoaXMgY2xhc3MuIik7CisgICAgICAgIH0KKy8vSkRLMTJJTVBPUlRTKi8KKy8qSkRLMTFJTVBPUlRTCisgICAgICAgIGcuc2V0Q2xpcCgoU2hhcGUpc3RhdGUpOworSkRLMTFJTVBPUlRTKi8KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogRHJhdyB0aGUgZ2l2ZW4gU2hhcGUgaW50byB0aGUgR3JhcGhpY3MsIHRyYW5zbGF0ZWQgYnkgKGR4LCBkeSkKKyAgICAgKiBhbmQgY2xpcHBlZCB0byBjbGlwUmVjdC4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCB0cmFuc2xhdGVBbmREcmF3U2hhcGVXaXRoQ2xpcChHcmFwaGljczJEIGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGR4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWN0YW5nbGUyRCBjbGlwUmVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaGFwZSBzaGFwZSkgeworLy8vKkpESzEySU1QT1JUUworICAgICAgICAvLyByZWFsbHkgYm9ndXMgaW1wbGVtZW50YXRpb24gcmlnaHQgbm93OiAgYmFzaWNhbGx5IG9ubHkKKyAgICAgICAgLy8gZHJhd3MgY2FyZXRzIGZyb20gYSBUZXh0TGF5b3V0LgorICAgICAgICAvLyBPaCB5ZWFoLCBpdCBkb2Vzbid0IHJlYWxseSBjbGlwIGNvcnJlY3RseSBlaXRoZXIuLi4KKworICAgICAgICBQYXRoSXRlcmF0b3IgcGF0aEl0ZXIgPSBzaGFwZS5nZXRQYXRoSXRlcmF0b3IobnVsbCk7CisgICAgICAgIGZsb2F0W10gcG9pbnRzID0gbmV3IGZsb2F0WzZdOworCisgICAgICAgIGludCB0eXBlID0gcGF0aEl0ZXIuY3VycmVudFNlZ21lbnQocG9pbnRzKTsKKyAgICAgICAgaWYgKHR5cGUgIT0gUGF0aEl0ZXJhdG9yLlNFR19NT1ZFVE8pIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihleGN1c2UpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IHgxID0gcG9pbnRzWzBdICsgZHg7CisgICAgICAgIGZsb2F0IHkxID0gcG9pbnRzWzFdICsgZHk7CisKKyAgICAgICAgaWYgKHBhdGhJdGVyLmlzRG9uZSgpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXhjdXNlKTsKKyAgICAgICAgfQorCisgICAgICAgIHBhdGhJdGVyLm5leHQoKTsKKyAgICAgICAgdHlwZSA9IHBhdGhJdGVyLmN1cnJlbnRTZWdtZW50KHBvaW50cyk7CisgICAgICAgIGlmICh0eXBlICE9IFBhdGhJdGVyYXRvci5TRUdfTElORVRPKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXhjdXNlKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCB4MiA9IHBvaW50c1swXSArIGR4OworICAgICAgICBmbG9hdCB5MiA9IHBvaW50c1sxXSArIGR5OworCisgICAgICAgIGZsb2F0IG1pblkgPSAoZmxvYXQpIGNsaXBSZWN0LmdldFkoKTsKKyAgICAgICAgZmxvYXQgbWF4WSA9IChmbG9hdCkgY2xpcFJlY3QuZ2V0TWF4WSgpOworCisgICAgICAgIC8vIE5vdyBjbGlwIHdpdGhpbiB2ZXJ0aWNhbCBsaW1pdHMgaW4gY2xpcFJlY3QKKyAgICAgICAgaWYgKHkxID09IHkyKSB7CisgICAgICAgICAgICBpZiAoeTEgPCBtaW5ZIHx8IHkxID49IG1heFkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpZiAoeTEgPiB5MikgeworICAgICAgICAgICAgICAgIGZsb2F0IHQgPSB4MTsKKyAgICAgICAgICAgICAgICB4MSA9IHgyOworICAgICAgICAgICAgICAgIHgyID0gdDsKKyAgICAgICAgICAgICAgICB0ID0geTE7CisgICAgICAgICAgICAgICAgeTEgPSB5MjsKKyAgICAgICAgICAgICAgICB5MiA9IHQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZsb2F0IGludlNsb3BlID0gKHgyLXgxKSAvICh5Mi15MSk7CisgICAgICAgICAgICBpZiAoeTEgPCBtaW5ZKSB7CisgICAgICAgICAgICAgICAgeDEgLT0gKG1pblkteTEpICogaW52U2xvcGU7CisgICAgICAgICAgICAgICAgeTEgPSBtaW5ZOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHkyID49IG1heFkpIHsKKyAgICAgICAgICAgICAgICB4MSArPSAoeTItbWF4WSkgKiBpbnZTbG9wZTsKKyAgICAgICAgICAgICAgICB5MiA9IG1heFk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBnLmRyYXcobmV3IExpbmUyRC5GbG9hdCh4MSwgeTEsIHgyLCB5MikpOworLy9KREsxMklNUE9SVFMqLworLypKREsxMUlNUE9SVFMKKyAgICAgICAgZy5zZXRDbGlwKGNsaXBSZWN0KTsKKyAgICAgICAgZy50cmFuc2xhdGUoZHgsIGR5KTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGcuZHJhdyhzaGFwZSk7CisgICAgICAgIH0KKyAgICAgICAgZmluYWxseSB7CisgICAgICAgICAgICBnLnRyYW5zbGF0ZSgtZHgsIC1keSk7CisgICAgICAgIH0KK0pESzExSU1QT1JUUyovCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9EZWZhdWx0Q2hhcmFjdGVyTWV0cmljLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L0RlZmF1bHRDaGFyYWN0ZXJNZXRyaWMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41Y2RiMTgxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9EZWZhdWx0Q2hhcmFjdGVyTWV0cmljLmphdmEKQEAgLTAsMCArMSw5NSBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogRGVmYXVsdENoYXJhY3Rlck1ldHJpYy5qYXZhLHYgJCAkUmV2aXNpb246IDEuMiAkICREYXRlOiAyMDAyLzAyLzE2IDAzOjA2OjQzICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvLyBSZXF1aXJlcyBKYXZhMgorcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRmb3JtYXQ7CisKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCisvLy8qSkRLMTJJTVBPUlRTCitpbXBvcnQgamF2YS5hd3QuZm9udC5Gb250UmVuZGVyQ29udGV4dDsKK2ltcG9ydCBqYXZhLmF3dC5mb250LlRleHRMYXlvdXQ7CisvL0pESzEySU1QT1JUUyovCisKKy8qSkRLMTFJTVBPUlRTCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LkZvbnRSZW5kZXJDb250ZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5UZXh0TGF5b3V0OworSkRLMTFJTVBPUlRTKi8KKworLyoqCisgKiBUaGlzIGNsYXNzIGlzIHVzZWQgYnkgdGhlIEZvcm1hdHRlciB0byBlc3RpbWF0ZSB0aGUgaGVpZ2h0CisgKiBvZiBjaGFyYWN0ZXJzIGluIGEgcGFydGljdWxhciBzdHlsZS4KKyAqLworZmluYWwgY2xhc3MgRGVmYXVsdENoYXJhY3Rlck1ldHJpYyB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIAorICAgIGZpbmFsIGNsYXNzIE1ldHJpYyB7CisgICAgCisgICAgICAgIHByaXZhdGUgZmxvYXQgZkFzY2VudDsKKyAgICAgICAgcHJpdmF0ZSBmbG9hdCBmRGVzY2VudDsKKyAgICAgICAgcHJpdmF0ZSBmbG9hdCBmTGVhZGluZzsKKyAgICAKKyAgICAgICAgcHJpdmF0ZSBNZXRyaWMoZmxvYXQgYXNjZW50LCBmbG9hdCBkZXNjZW50LCBmbG9hdCBsZWFkaW5nKSB7CisgICAgCisgICAgICAgICAgICBmQXNjZW50ID0gYXNjZW50OworICAgICAgICAgICAgZkRlc2NlbnQgPSBkZXNjZW50OworICAgICAgICAgICAgZkxlYWRpbmcgPSBsZWFkaW5nOworICAgICAgICB9CisgICAgCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0QXNjZW50KCkgeworICAgICAgICAgICAgcmV0dXJuIChpbnQpIE1hdGguY2VpbChmQXNjZW50KTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBwdWJsaWMgaW50IGdldERlc2NlbnQoKSB7CisgICAgICAgICAgICByZXR1cm4gKGludCkgTWF0aC5jZWlsKGZEZXNjZW50KTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBwdWJsaWMgaW50IGdldExlYWRpbmcoKSB7CisgICAgICAgICAgICByZXR1cm4gKGludCkgTWF0aC5jZWlsKGZMZWFkaW5nKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGZpbmFsIEhhc2h0YWJsZSBmQ2FjaGUgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgcHJpdmF0ZSAvKmZpbmFsKi8gRm9udFJlc29sdmVyIGZSZXNvbHZlcjsKKyAgICBwcml2YXRlIC8qZmluYWwqLyBGb250UmVuZGVyQ29udGV4dCBmRnJjOworICAgIAorICAgIHB1YmxpYyBEZWZhdWx0Q2hhcmFjdGVyTWV0cmljKEZvbnRSZXNvbHZlciByZXNvbHZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb250UmVuZGVyQ29udGV4dCBmcmMpIHsKKyAgICAKKyAgICAgICAgZlJlc29sdmVyID0gcmVzb2x2ZXI7CisgICAgICAgIGZGcmMgPSBmcmM7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldCBhIERlZmF1bHRDaGFyYWN0ZXJNZXRyaWMgaW5zdGFuY2UgZm9yIHRoZSBnaXZlbiBzdHlsZS4gIFRoZQorICAgICAqIHN0eWxlIGlzIGZpcnN0IHJlc29sdmVkIHdpdGggRm9udFJlc29sdmVyLgorICAgICAqLworICAgIHB1YmxpYyBNZXRyaWMgZ2V0TWV0cmljRm9yU3R5bGUoQXR0cmlidXRlTWFwIHN0eWxlKSB7CisKKyAgICAgICAgc3R5bGUgPSBmUmVzb2x2ZXIuYXBwbHlGb250KHN0eWxlKTsKKyAgICAgICAgTWV0cmljIG1ldHJpYyA9IChNZXRyaWMpIGZDYWNoZS5nZXQoc3R5bGUpOworICAgICAgICBpZiAobWV0cmljID09IG51bGwpIHsKKyAgICAgICAgICAgIFRleHRMYXlvdXQgbGF5b3V0ID0gbmV3IFRleHRMYXlvdXQoIiAiLCBzdHlsZSwgZkZyYyk7CisgICAgICAgICAgICBtZXRyaWMgPSBuZXcgTWV0cmljKGxheW91dC5nZXRBc2NlbnQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0LmdldERlc2NlbnQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0LmdldExlYWRpbmcoKSk7CisgICAgICAgICAgICBmQ2FjaGUucHV0KHN0eWxlLCBtZXRyaWMpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBtZXRyaWM7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvRm9udFJlc29sdmVyLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L0ZvbnRSZXNvbHZlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA1YjkzMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L0ZvbnRSZXNvbHZlci5qYXZhCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IEZvbnRSZXNvbHZlci5qYXZhLHYgJCAkUmV2aXNpb246IDEuMiAkICREYXRlOiAyMDAyLzAyLzE2IDAzOjA2OjQzICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvLyBSZXF1aXJlcyBKYXZhMgorcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRmb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuVGV4dEF0dHJpYnV0ZTsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5Gb250VXRpbHM7CisKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworaW1wb3J0IGphdmEuYXd0LkZvbnQ7CisKK2ZpbmFsIGNsYXNzIEZvbnRSZXNvbHZlciB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworCisgICAgc3RhdGljIHsKKy8vIEV2ZW4gdGhvdWdoIGl0IHZpb2xhdGVzIHRoZSBQcmltZSBEaXJlY3RpdmUgSSdsbCBjb25kaXRpb25hbGl6ZQorLy8gdGhpcyBhbnl3YXksIHNpbmNlIGl0IGlzIGp1c3QgYSAxLjIgd29ya2Fyb3VuZCB3aGljaCBJIGdyZWF0bHkKKy8vIHJlc2VudC4KKy8vLypKREsxMklNUE9SVFMKKyAgICAgICAgamF2YS5hd3QuR3JhcGhpY3NFbnZpcm9ubWVudC5nZXRMb2NhbEdyYXBoaWNzRW52aXJvbm1lbnQoKS5nZXRBbGxGb250cygpOworLy9KREsxMklNUE9SVFMqLworICAgIH0KKworICAgIHByaXZhdGUgSGFzaHRhYmxlIHN0eWxlTWFwOworICAgIHByaXZhdGUgZmluYWwgQXR0cmlidXRlTWFwIGZEZWZhdWx0Rm9udE1hcDsKKworICAgIHB1YmxpYyBGb250UmVzb2x2ZXIoQXR0cmlidXRlTWFwIGRlZmF1bHRzKSB7CisKKyAgICAgICAgc3R5bGVNYXAgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgIEhhc2h0YWJsZSB0ZW1wTWFwID0gbmV3IEhhc2h0YWJsZSgpOworICAgICAgICB0ZW1wTWFwLnB1dChUZXh0QXR0cmlidXRlLkZBTUlMWSwgZGVmYXVsdHMuZ2V0KFRleHRBdHRyaWJ1dGUuRkFNSUxZKSk7CisgICAgICAgIHRlbXBNYXAucHV0KFRleHRBdHRyaWJ1dGUuV0VJR0hULCBkZWZhdWx0cy5nZXQoVGV4dEF0dHJpYnV0ZS5XRUlHSFQpKTsKKyAgICAgICAgdGVtcE1hcC5wdXQoVGV4dEF0dHJpYnV0ZS5QT1NUVVJFLCBkZWZhdWx0cy5nZXQoVGV4dEF0dHJpYnV0ZS5QT1NUVVJFKSk7CisgICAgICAgIHRlbXBNYXAucHV0KFRleHRBdHRyaWJ1dGUuU0laRSwgZGVmYXVsdHMuZ2V0KFRleHRBdHRyaWJ1dGUuU0laRSkpOworICAgICAgICBmRGVmYXVsdEZvbnRNYXAgPSBuZXcgQXR0cmlidXRlTWFwKHRlbXBNYXApOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZldGNoIHJlc3VsdCBvZiByZXNvbHZlKHN0eWxlKSBmcm9tIGNhY2hlLCBpZiBwcmVzZW50LgorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgYXBwbHlGb250KEF0dHJpYnV0ZU1hcCBzdHlsZSkgeworCisgICAgICAgIE9iamVjdCBjYWNoZWRNYXAgPSBzdHlsZU1hcC5nZXQoc3R5bGUpOworCisgICAgICAgIGlmIChjYWNoZWRNYXAgPT0gbnVsbCkgeworICAgICAgICAgICAgQXR0cmlidXRlTWFwIHJlc29sdmVkTWFwID0gcmVzb2x2ZShzdHlsZSk7CisgICAgICAgICAgICBzdHlsZU1hcC5wdXQoc3R5bGUsIHJlc29sdmVkTWFwKTsKKyAgICAgICAgICAgIHJldHVybiByZXNvbHZlZE1hcDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAoQXR0cmlidXRlTWFwKSBjYWNoZWRNYXA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gQXR0cmlidXRlTWFwIGNvbnRhaW5pbmcgYSBGb250IGNvbXB1dGVkIGZyb20gdGhlCisgICAgICogYXR0cmlidXRlcyBpbiA8dHQ+c3R5bGU8L3R0Pi4KKyAgICAgKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlTWFwIHJlc29sdmUoQXR0cmlidXRlTWFwIHN0eWxlKSB7CisKKyAgICAgICAgaWYgKHN0eWxlLmdldChUZXh0QXR0cmlidXRlLkZPTlQpICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBzdHlsZTsKKyAgICAgICAgfQorCisgICAgICAgIEZvbnQgZm9udCA9IEZvbnRVdGlscy5nZXRGb250KGZEZWZhdWx0Rm9udE1hcC5hZGRBdHRyaWJ1dGVzKHN0eWxlKSk7CisKKyAgICAgICAgcmV0dXJuIHN0eWxlLmFkZEF0dHJpYnV0ZShUZXh0QXR0cmlidXRlLkZPTlQsIGZvbnQpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvTGF5b3V0SW5mby5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9MYXlvdXRJbmZvLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTg2ODNkMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvTGF5b3V0SW5mby5qYXZhCkBAIC0wLDAgKzEsMTk5IEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBMYXlvdXRJbmZvLmphdmEsdiAkICRSZXZpc2lvbjogMS4yICQgJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6NDMgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8vIFJlcXVpcmVzIEphdmEyCisvKiogTGF5b3V0SW5mbworCisgICAgQSBsaW5lIG9mIHRleHQsIHBvc3NpYmx5IGNvbnRhaW5pbmcgdGFiLXNlZ21lbnRzLgorKi8KKworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRmb3JtYXQ7CisKK2ltcG9ydCBqYXZhLmF3dC5Db2xvcjsKK2ltcG9ydCBqYXZhLmF3dC5SZWN0YW5nbGU7CisKKy8vLypKREsxMklNUE9SVFMKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczJEOworLy9KREsxMklNUE9SVFMqLworCisvKkpESzExSU1QT1JUUworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5HcmFwaGljczJEOworSkRLMTFJTVBPUlRTKi8KKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworCithYnN0cmFjdCBjbGFzcyBMYXlvdXRJbmZvCit7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIGludCBmQ2hhclN0YXJ0OyAgICAgICAvLyBvZmZzZXQgaW4gdGV4dCB0byBzdGFydCBvZiBsaW5lICh3YXMgZlN0YXJ0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5lZy4gdmFsdWVzIGluZGljYXRlIGRpc3RhbmNlIGZyb20gZW5kIG9mIHRleHQKKyAgICBwcml2YXRlIGludCBmR3JhcGhpY1N0YXJ0OyAgICAvLyBtaW4gcGl4ZWwgb2Zmc2V0IGluIGZpbGwgZGlyZWN0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbmVnYXRpdmUgdmFsdWVzIGluZGljYXRlIGRpc3RhbmNlIGZyb20gYm90dG9tIG9mIHRleHQgdmlldworCisgICAgLyoKKyAgICAgICAgVGhlc2UgbWV0aG9kcyBhcmUgZm9yIHN0b3JpbmcgTGF5b3V0cyBpbiBhIGdhcC1zdG9yYWdlLAorICAgICAgICByZWxhdGl2ZSB0byBlaXRoZXIgdGhlIHN0YXJ0IG9mIGVuZCBvZiB0ZXh0LiAgU2VlIEFzeW5jRm9ybWF0dGVyLgorCisgICAgICAgIElmIHlvdSBqdXN0IHdhbnQgYWJzb2x1dGUgKHRoYXQgaXMsIHN0YXJ0LXJlbGF0aXZlKSBjaGFyIGFuZAorICAgICAgICBncmFwaGljIHN0YXJ0cywgZG9uJ3QgbWFrZSB0aGVtIGVuZC1yZWxhdGl2ZS4KKyAgICAqLworCisgICAgcHVibGljIGZpbmFsIGludCBnZXRDaGFyU3RhcnQoaW50IGxlbmd0aEJhc2lzKSB7CisKKyAgICAgICAgaWYgKGZDaGFyU3RhcnQgPj0gMCkgeworICAgICAgICAgICAgcmV0dXJuIGZDaGFyU3RhcnQ7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gbGVuZ3RoQmFzaXMgKyBmQ2hhclN0YXJ0OworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIGludCBnZXRHcmFwaGljU3RhcnQoaW50IGdyYXBoaWNCYXNpcykgeworCisgICAgICAgIGlmIChmR3JhcGhpY1N0YXJ0ID49IDApIHsKKyAgICAgICAgICAgIHJldHVybiBmR3JhcGhpY1N0YXJ0OworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGdyYXBoaWNCYXNpcyArIGZHcmFwaGljU3RhcnQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgdm9pZCBzZXRDaGFyU3RhcnQoaW50IGJlZ2lubmluZ1JlbGF0aXZlU3RhcnQpIHsKKworICAgICAgICBpZiAoYmVnaW5uaW5nUmVsYXRpdmVTdGFydCA8IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImNoYXJTdGFydCBtdXN0IGJlIG5vbm5lZ2F2aXR2ZSIpOworICAgICAgICB9CisgICAgICAgIGZDaGFyU3RhcnQgPSBiZWdpbm5pbmdSZWxhdGl2ZVN0YXJ0OworICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHNldEdyYXBoaWNTdGFydChpbnQgYmVnaW5uaW5nUmVsYXRpdmVTdGFydCkgeworCisgICAgICAgIGlmIChiZWdpbm5pbmdSZWxhdGl2ZVN0YXJ0IDwgMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiY2hhclN0YXJ0IG11c3QgYmUgbm9ubmVnYXZpdHZlIik7CisgICAgICAgIH0KKyAgICAgICAgZkdyYXBoaWNTdGFydCA9IGJlZ2lubmluZ1JlbGF0aXZlU3RhcnQ7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIHZvaWQgbWFrZVJlbGF0aXZlVG9CZWdpbm5pbmcoaW50IGxlbmd0aEJhc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBncmFwaGljQmFzaXMpIHsKKworICAgICAgICBpZiAobGVuZ3RoQmFzaXMgPCAwIHx8IGdyYXBoaWNCYXNpcyA8IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkJhc2VzIG11c3QgYmUgcG9zaXRpdmUuIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZDaGFyU3RhcnQgPj0gMCB8fCBmR3JhcGhpY1N0YXJ0ID49IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQWxyZWFkeSBzdGFydC1yZWxhdGl2ZS4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGZDaGFyU3RhcnQgKz0gbGVuZ3RoQmFzaXM7CisgICAgICAgIGZHcmFwaGljU3RhcnQgKz0gZ3JhcGhpY0Jhc2lzOworICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCB2b2lkIG1ha2VSZWxhdGl2ZVRvRW5kKGludCBsZW5ndGhCYXNpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZ3JhcGhpY0Jhc2lzKSB7CisKKyAgICAgICAgaWYgKGxlbmd0aEJhc2lzIDwgMCB8fCBncmFwaGljQmFzaXMgPCAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJCYXNlcyBtdXN0IGJlIHBvc2l0aXZlLiIpOworICAgICAgICB9CisgICAgICAgIGlmIChmQ2hhclN0YXJ0IDwgMCB8fCBmR3JhcGhpY1N0YXJ0IDwgMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJBbHJlYWR5IGVuZC1yZWxhdGl2ZS4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGZDaGFyU3RhcnQgLT0gbGVuZ3RoQmFzaXM7CisgICAgICAgIGZHcmFwaGljU3RhcnQgLT0gZ3JhcGhpY0Jhc2lzOworICAgIH0KKworCisgICAgcHVibGljIGFic3RyYWN0IGludCBnZXRDaGFyTGVuZ3RoKCk7CisgICAgcHVibGljIGFic3RyYWN0IGludCBnZXRBc2NlbnQoKTsKKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGdldERlc2NlbnQoKTsKKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGdldExlYWRpbmcoKTsKKworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZ2V0VmlzaWJsZUFkdmFuY2UoKTsKKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGdldFRvdGFsQWR2YW5jZSgpOworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZ2V0TGVhZGluZ01hcmdpbigpOworCisgICAgcHVibGljIGFic3RyYWN0IGJvb2xlYW4gaXNMZWZ0VG9SaWdodCgpOworCisgICAgcHVibGljIGludCBnZXRIZWlnaHQoKSB7CisKKyAgICAgICAgcmV0dXJuIGdldEFzY2VudCgpK2dldERlc2NlbnQoKStnZXRMZWFkaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgKiBEcmF3cyB0ZXh0IHdpdGggaGlnaGxpZ2h0aW5nLgorICAgICovCisgICAgcHVibGljIHZvaWQgcmVuZGVyV2l0aEhpZ2hsaWdodChpbnQgbGVuZ3RoQmFzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHcmFwaGljczJEIGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGluZUJvdW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHNlbFN0b3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvciBoaWdobGlnaHRDb2xvcikKKyAgICB7CisgICAgfQorCisgICAgLyoqIFVzZSBsYXlvdXQgaW5mb3JtYXRpb24gdG8gcmVuZGVyIHRoZSBsaW5lIGF0IHgsIHkuKi8KKworICAgIHB1YmxpYyB2b2lkIHJlbmRlcihpbnQgbGVuZ3RoQmFzaXMsCisgICAgICAgICAgICAgICAgICAgICAgIEdyYXBoaWNzMkQgZywKKyAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVCb3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50IHgsCisgICAgICAgICAgICAgICAgICAgICAgIGludCB5KQorICAgIHsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCByZW5kZXJDYXJldChNQ29uc3RUZXh0IHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbmd0aEJhc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdyYXBoaWNzMkQgZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGluZUJvdW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjaGFyT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yIHN0cm9uZ0NhcmV0Q29sb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sb3Igd2Vha0NhcmV0Q29sb3IpCisgICAgeworICAgIH0KKworICAgIC8qKgorICAgICAqIEdpdmVuIGEgcG9pbnQgd2l0aGluIHRoaXMgbGluZSwgcmV0dXJuIHRoZSBjaGFyYWN0ZXIgb2Zmc2V0IGNvcnJlc3BvbmRpbmcgdG8gdGhhdCBwb2ludC4KKyAgICAgKgorICAgICAqIEBwYXJhbSByZXN1bHQuICBUaGlzIG1heSBiZSBudWxsLCBpbiB3aGljaCBjYXNlIGEgbmV3IFRleHRPZmZzZXQgd2lsbCBiZSBhbGxvY2F0ZWQuCisgICAgICogICAgICAgIFRoaXMgb2JqZWN0IGlzIG1vZGlmaWVkIGluIHBsYWNlLCBhbmQgYWxzbyByZXR1cm5lZCBhcyB0aGUgZnVuY3Rpb24gcmVzdWx0LgorICAgICAqIEBwYXJhbSB0ZXh0IFRleHQgdG8gaW5zcGVjdC4KKyAgICAgKiBAcGFyYW0gbGluZVggUG9zaXRpb24gb24gdGhpcyBsaW5lIHJlbGF0aXZlIHRvIHRvcCBsZWZ0IGNvcm5lciBvZiB0aGlzIGxpbmUuCisgICAgICogQHBhcmFtIGxpbmVZIFBvc2l0aW9uIG9uIHRoaXMgbGluZSByZWxhdGl2ZSB0byB0b3AgbGVmdCBjb3JuZXIgb2YgdGhpcyBsaW5lLgorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBUZXh0T2Zmc2V0IHBpeGVsVG9PZmZzZXQoaW50IGxlbmd0aEJhc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGluZUJvdW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeSk7CisKKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IHN0cm9uZ0NhcmV0QmFzZWxpbmVQb3NpdGlvbihpbnQgbGVuZ3RoQmFzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVCb3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2hhck9mZnNldCk7CisKKyAgICBwdWJsaWMgYWJzdHJhY3QgUmVjdGFuZ2xlIGNhcmV0Qm91bmRzKE1Db25zdFRleHQgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW5ndGhCYXNpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2hhck9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHkpOworICAgIAorICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZ2V0TmV4dE9mZnNldChpbnQgbGVuZ3RoQmFzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjaGFyT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG9ydCBkaXIpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9NRm9ybWF0dGVyLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L01Gb3JtYXR0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40YmNlYjY2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9NRm9ybWF0dGVyLmphdmEKQEAgLTAsMCArMSwzNTEgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IE1Gb3JtYXR0ZXIuamF2YSx2ICQgJFJldmlzaW9uOiAxLjQgJCAkRGF0ZTogMjAwMi8wMy8yMCAwNToxMToxNyAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdDsKKworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworaW1wb3J0IGphdmEuYXd0LkdyYXBoaWNzOworaW1wb3J0IGphdmEuYXd0LlBvaW50OworaW1wb3J0IGphdmEuYXd0LlJlY3RhbmdsZTsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKKworLyoqCisqCisqIFRoaXMgY2xhc3MgZm9ybWF0cyBsaW5lcyBvZiB0ZXh0IHRvIGEgZ2l2ZW4gbGVuZ3RoLgorKiBJdCBwcm92aWRlcyBzZXJ2aWNlcyBuZWVkZWQgZm9yIHN0YXRpYyB0ZXh0IGRpc3BsYXksCisqIGFuZCBhbHNvIGVkaXRhYmxlIHRleHQsIGluY2x1ZGluZzogIGRpc3BsYXlpbmcgdGV4dCwKKyogcmVmb3JtYXR0aW5nIHRleHQgYWZ0ZXIgYW4gZWRpdCwgY29udmVydGluZyBiZXR3ZWVuCisqIHNjcmVlbiBsb2NhdGlvbnMgYW5kIG9mZnNldHMgaW50byB0aGUgdGV4dCwgY2FsY3VsYXRpbmcKKyogYXJlYXMgb2YgdGhlIHNjcmVlbiBmb3IgImhpZ2hsaWdodGluZywiICBhbmQgY29tcHV0aW5nCisqIG9mZnNldHMgaW50byB0aGUgdGV4dCByZXN1bHRpbmcgZnJvbSBhcnJvdyBrZXlzLgorKiA8cD4KKyogVGV4dCBjbGllbnRzIGluc3RhbnRpYXRlIHRoaXMgY2xhc3Mgd2l0aCBhbgorKiA8dHQ+TUNvbnN0VGV4dDwvdHQ+IG9iamVjdCBhbmQgYSBmb3JtYXQgd2lkdGguICBUZXh0CisqIGNhbiBiZSBmb3JtYXR0ZWQgc3VjaCB0aGF0IGFsbCBsaW5lcyBmaXQgd2l0aGluIHRoZQorKiBmb3JtYXQgbGVuZ3RoLiAgQWx0ZXJuYXRpdmVseSwgdGV4dCBjYW4gYmUgZm9ybWF0dGVkCisqIHN1Y2ggdGhhdCBsaW5lcyBlbmQgb25seSBhdCB0aGUgZW5kIG9mIHBhcmFncmFwaHMuCisqIDxwPgorKiBUaGUgZm9ybWF0IGxlbmd0aCBpcyBzcGVjaWZpZWQgd2l0aCB0aGUgPHR0PnNldExpbmVCb3VuZCgpPC90dD4KKyogbWV0aG9kLgorKiA8cD4KKyogTWV0aG9kcyBpbiB0aGUgZm9ybWF0dGVyIHdoaWNoIGludGVyYWN0IHdpdGggdGhlIGdyYXBoaWNzCisqIHN5c3RlbSBnZW5lcmFsbHkgdGFrZSBhcyBhIHBhcmFtdGVyIGEgPHR0PlBvaW50PC90dD4gb2JqZWN0CisqIHdoaWNoIHJlcHJlc2VudHMgdGhlICJvcmlnaW4iIG9mIHRoZSB0ZXh0IGRpc3BsYXkuICBUaGUKKyogb3JpZ2luIHJlcHJlc2VudHMgdGhlIGxvY2F0aW9uLCBpbiB0aGUgZ3JhcGhpY3Mgc3lzdGVtIHVzZWQgdG8gZGlzcGxheSB0aGUgdGV4dCwgb2YKKyogdGhlIHRvcC1sZWZ0IGNvcm5lciBvZiB0aGUgdGV4dC4KKyogPHA+CisqIFRvIGRpc3BsYXkgdGhlIHRleHQsIGNhbGwgPHR0PmRyYXcoKTwvdHQ+LCBwYXNzaW5nIHRoZQorKiBhIHJlY3RhbmdsZSBpbiB3aGljaCB0byBkcmF3IGFzIGEgcGFyYW1ldGVyLiAgT25seSBsaW5lcworKiBvZiB0ZXh0IGluIHRoZSBkcmF3IHJlY3RhbmdsZSB3aWxsIGJlIGRyYXduLgorKiA8cD4KKyogV2hlbiB0aGUgZm9ybWF0dGVyJ3MgdGV4dCBjaGFuZ2VzLCBpdCBpcyBpbXBvcnRhbnQgdG8gZmlyc3QgY2FsbAorKiA8dHQ+c3RvcEJhY2tncm91bmRGb3JtYXR0aW5nKCk8L3R0PiB0byBwcmV2ZW50IHRoZSBGb3JtYXR0ZXIgZnJvbQorKiBhY2Nlc3NpbmcgdGhlIHRleHQgZnJvbSBhIGJhY2tncm91bmQgdGhyZWFkLiAgQWZ0ZXIgbW9kaWZpY2F0aW9ucyBhcmUKKyogY29tcGxldGUsCisqIGNhbGwgdGhlIDx0dD51cGRhdGVGb3JtYXQoKTwvdHQ+IG1ldGhvZCBiZWZvcmUgaW52b2tpbmcgYW55IG90aGVyCisqIG1ldGhvZHMgb2YgdGhlIGZvcm1hdHRlci4gIDx0dD51cGRhdGVGb3JtYXQoKTwvdHQ+IHJlZm9ybWF0cyB0aGUKKyogbmV3IHRleHQsIGZvcm1hdHRpbmcgbm8gbW9yZSB0ZXh0IHRoYW4gaXMgbmVjZXNzYXJ5LgorKiA8cD4KKyogVGhlIGZvcm1hdHRlciBwcm92aWRlcyBzZXJ2aWNlcyBmb3IgcmVzcG9uZGluZyB0byB1c2VyIGlucHV0IGZyb20gdGhlCisqIG1vdXNlIGFuZCBrZXlib2FyZC4gIFRoZSBtZXRob2QgPHR0PnBvaW50VG9UZXh0T2Zmc2V0KCk8L3R0PiBjb252ZXJ0cworKiBhIHNjcmVlbiBsb2NhdGlvbiB0byBhbiBvZmZzZXQgaW4gdGhlIHRleHQuICBUaGUgbWV0aG9kIDx0dD50ZXh0T2Zmc2V0VG9Qb2ludDwvdHQ+CisqIGNvbnZlcnRzIGFuIG9mZnNldCBpbiB0aGUgdGV4dCB0byBhbiBhcnJheSBvZiB0d28gPHR0PlBvaW50PC90dD4gb2JqZWN0cywgd2hpY2ggY2FuIGJlCisqIHVzZWQgdG8gZHJhdyBhIHZlcnRpY2xlIGNhcmV0LCBkZW5vdGluZyBhbiBpbnNlcnRpb24gcG9pbnQuICA8dHQ+aGlnaGxpZ2h0QXJlYTwvdHQ+CisqIGFjY2VwdHMgdHdvIG9mZnNldHMgaW50byB0aGUgdGV4dCBhcyBwYXJhbXRlcnMsIGFuZCByZXR1cm5zIGFuIGFycmF5IG9mIDx0dD5Qb2x5Z29uPC90dD4KKyogb2JqZWN0cyByZXByZXNlbnRpbmcgYXJlYXMgd2hlcmUgdmlzdWFsIGhpZ2hsaWdodGluZyBzaG91bGQgYmUgYXBwbGllZC4KKyogPHA+CisqIEZpbmFsbHksIGZvcgorKiBrZXlib2FyZCBoYW5kbGluZywgdGhlIDx0dD5maW5kTmV3SW5zZXJ0aW9uT2Zmc2V0KCk8L3R0PiBtZXRob2QgYWNjZXB0cyBhbiAiaW5pdGlhbCIKKyogb2Zmc2V0LCBhICJwcmV2aW91cyIgb2Zmc2V0LCBhcyB3ZWxsIGFzIGEgZGlyZWN0aW9uLCBhbmQgcmV0dXJucyBhIG5ldyBvZmZzZXQuICBUaGUgZGlyZWN0aW9uCisqIGNhbiBiZSB1cCwgZG93biwgbGVmdCwgb3IgcmlnaHQuICBUaGUgcHJldmlvdXMgb2Zmc2V0IGlzIHRoZSBpbnNlcnRpb24gcG9pbnQgbG9jYXRpb24sIGJlZm9yZQorKiB0aGUgYXJyb3cga2V5IGlzIHByb2Nlc3NlZC4gIFRoZSBpbml0aWFsIG9mZnNldCBpcyB0aGUgb2Zmc2V0IHdoZXJlIGFuIHVwIG9yIGRvd24gYXJyb3cKKyoga2V5IHNlcXVlbmNlIGJlZ2FuLiAgVXNpbmcgdGhlIGluaXRpYWwgb2Zmc2V0IGFsbG93cyBmb3IgImludGVsbGlnZW50IiBoYW5kbGluZyBvZiB1cCBhbmQgZG93bgorKiBhcnJvdyBrZXlzLgorKiA8cD4KKyogRXhhbXBsZXMgb2YgdXNpbmcgdGhlIE1Gb3JtYXR0ZXIgY2xhc3MKKyogYXJlIGdpdmVuIGluIHRoZSA8dHQ+QXN5bmNGb3JtYXR0ZXI8L3R0PiBjbGFzcworKiBkb2N1bWVudGF0aW9uLgorKiA8cD4KKyogQGF1dGhvciBKb2huIFJhbGV5CisqCisqIEBzZWUgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1UZXh0CisqLworCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgTUZvcm1hdHRlciB7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKworICAgIHB1YmxpYyBhYnN0cmFjdCBBdHRyaWJ1dGVNYXAgZ2V0RGVmYXVsdFZhbHVlcygpOworCisvKioKKyogRGlzcGxheSB0ZXh0IGluIGRyYXdBcmVhLCB3aXRoIGhpZ2hsaWdodGluZy4KKyogRG9lcyBub3QgcmVmb3JtYXQgdGV4dAorKiBAcGFyYW0gZyB0aGUgR3JhcGhpY3Mgb2JqZWN0IGluIHdoaWNoIHRvIGRyYXcKKyogQHBhcmFtIGRyYXdBcmVhIHRoZSByZWN0YW5nbGUsIGluIGcncyBjb29yZGluYXRlIHN5c3RlbSwgaW4gd2hpY2ggdG8gZHJhdworKiBAcGFyYW0gb3JpZ2luIHRoZSB0b3AtbGVmdCBjb3JuZXIgb2YgdGhlIHRleHQsIGluIGcncyBjb29yZGluYXRlIHN5c3RlbQorKiBAcGFyYW0gc2VsU3RhcnQgdGhlIG9mZnNldCB3aGVyZSB0aGUgY3VycmVudCBzZWxlY3Rpb24gYmVnaW5zOyAgcGFzcyA8dHQ+bnVsbDwvdHQ+IGlmIG5vIHNlbGVjdGlvbgorKiBAcGFyYW0gc2VsU3RvcCB0aGUgb2Zmc2V0IHdoZXJlIHRoZSBjdXJyZW50IHNlbGVjdGlvbiBlbmRzCisqIEBwYXJhbSBoaWdobGlnaHQgdGhlIGNvbG9yIG9mIHRoZSBoaWdobGlnaHRpbmcKKyovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgZHJhdyhHcmFwaGljcyBnLCBSZWN0YW5nbGUgZHJhd0FyZWEsIFBvaW50IG9yaWdpbiwKKyAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsU3RhcnQsIFRleHRPZmZzZXQgc2VsU3RvcCwgQ29sb3IgaGlnaGxpZ2h0KTsKKworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGRyYXcoR3JhcGhpY3MgZywgUmVjdGFuZ2xlIGRyYXdBcmVhLCBQb2ludCBvcmlnaW4pOworCisvKioKKyogU3BlY2lmeSB3aGV0aGVyIHRvIHdyYXAgbGluZSBhdCB0aGUgZWRnZSBvZiB0aGUgZGVzdGluYXRpb24gYXJlYS4KKyogPHR0PnRydWU8L3R0PiBtZWFucyB3cmFwIGxpbmVzOyAgPHR0PmZhbHNlPC90dD4gbWVhbnMgdG8gYnJlYWsgbGluZXMKKyogb25seSB3aGVuIGFuIGVuZC1vZi1saW5lIGNoYXJhY3RlciBpcyByZWFjaGVkLgorKiBAcGFyYW0gd3JhcCA8dHQ+dHJ1ZTwvdHQ+IHRvIGJyZWFrIGxpbmVzIGF0IHRoZSBlZGdlIG9mIHRoZSBkZXN0aW5hdGlvbgorKiBhcmVhOyAgPHR0PmZhbHNlPC90dD4gb3RoZXJ3aXNlLgorKi8KKworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHNldFdyYXAoYm9vbGVhbiB3cmFwKTsKKworLyoqCisqIFJldHVybiB3aGV0aGVyIHRleHQgaXMgd3JhcHBlZCBhdCB0aGUgZWRnZSBvZiB0aGUgZGVzdGluYXRpb24gYXJlYS4KKyogQHNlZSAjc2V0V3JhcAorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbiB3cmFwKCk7CisKKy8qKgorKiBTcGVjaWZ5IHRoZSBudW1iZXIgb2YgcGl4ZWxzIGFsb25nIHRoZSAibGluZSBkaW1lbnNpb24iLgorKiBMaW5lcyBhcmUgZm9ybWF0dGVkIHRvIGZpdCB3aXRoaW4gdGhlIGxpbmUgZGltZW5zaW9uLiAgVGhlCisqIGxpbmUgZGltZW5zaW9uIGluIFJvbWFuIHNjcmlwdCBpcyBob3Jpem9udGFsLgorKiBAcGFyYW0gbGluZVdpZHRoIHRoZSBsZW5ndGgsIGluIHBpeGVscywgdG8gd2hpY2ggbGluZXMgd2lsbCBiZSBmb3JtYXR0ZWQKKyovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgc2V0TGluZUJvdW5kKGludCBsaW5lQm91bmQpOworCisvKioKKyogUmV0dXJuIHRoZSBudW1iZXIgb2YgcGl4ZWxzIGFsb25nIHRoZSBsaW5lIGRpbWVuc2lvbi4KKyovCisgICAgcHVibGljIGFic3RyYWN0IGludCBsaW5lQm91bmQoKTsKKyAgICAKKy8qKgorKiBGb3JtYXQgdGV4dCBkb3duIHRvIGdpdmVuIGhlaWdodC4KKyogQHBhcmFtIGhlaWdodCB0aGUgaGVpZ2h0IHRvIHdoaWNoIHRleHQgd2lsbCBiZSBmb3JtYXR0ZWQKKyovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgZm9ybWF0VG9IZWlnaHQoaW50IGhlaWdodCk7CisKKy8qKgorKiBSZWZvcm1hdCB0ZXh0IGFmdGVyIGEgY2hhbmdlLgorKiBBZnRlciB0aGUgZm9ybWF0dGVyJ3MgdGV4dCBjaGFuZ2VzLCBjYWxsIHRoaXMgbWV0aG9kIHRvIHJlZm9ybWF0LiAgRG9lcworKiBub3QgcmVkcmF3LgorKiBAcGFyYW0gYWZTdGFydCB0aGUgb2Zmc2V0IGludG8gdGhlIHRleHQgd2hlcmUgbW9kaWZpY2F0aW9uIGJlZ2FuOyAgaWUsIHRoZQorKiBmaXJzdCBjaGFyYWN0ZXIgaW4gdGhlIHRleHQgd2hpY2ggaXMgImRpZmZlcmVudCIgaW4gc29tZSB3YXkuICBEb2VzIG5vdAorKiBoYXZlIHRvIGJlIG5vbm5lZ2F0aXZlLgorKiBAcGFyYW0gYWZMZW5ndGggdGhlIG51bWJlciBvZiBuZXcgb3IgY2hhbmdlZCBjaGFyYWN0ZXJzIGluIHRoZSB0ZXh0LiAgU2hvdWxkIG5ldmVyCisqIGJlIGxlc3MgdGhhbiAwLgorKiBAcGFyYW0gdmlld1JlY3QgdGhlIFJlY3RhbmdsZSBpbiB3aGljaCB0aGUgdGV4dCB3aWxsIGJlIGRpc3BsYXllZC4gIFRoaXMgaXMgbmVlZGVkIGZvcgorKiByZXR1cm5pbmcgdGhlICJkYW1hZ2VkIiBhcmVhIC0gdGhlIGFyZWEgb2YgdGhlIHNjcmVlbiBpbiB3aGljaCB0aGUgdGV4dCBtdXN0IGJlIHJlZHJhd24uCisqIEBwYXJhbSBvcmlnaW4gdGhlIHRvcC1sZWZ0IGNvcm5lciBvZiB0aGUgdGV4dCwgaW4gdGhlIGRpc3BsYXkncyBjb29yZGluYXRlIHN5c3RlbQorKiBAcmV0dXJuIGEgPHR0PlJlY3RhbmdsZTwvdHQ+IHdoaWNoIHNwZWNpZmllcyB0aGUgYXJlYSBpbiB3aGljaCB0ZXh0IG11c3QgYmUKKyogcmVkcmF3biB0byByZWZsZWN0IHRoZSBjaGFuZ2UgdG8gdGhlIHRleHQuCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBSZWN0YW5nbGUgdXBkYXRlRm9ybWF0KGludCBhZlN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBhZkxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWN0YW5nbGUgdmlld1JlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9pbnQgb3JpZ2luKTsKKworCisgICAgcHVibGljIGFic3RyYWN0IGludCBtaW5ZKCk7CisgICAgCisvKioKKyAqIFJldHVybiB0aGUgbWF4aW11bSB2ZXJ0aWNhbCBjb29yZGluYXRlIG9mIHRoZSBkb2N1bWVudCBhcmVhLgorICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBtYXhZKCk7CisKKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IG1pblgoKTsKKworLyoqCisgKiBSZXR1cm4gdGhlIG1heGltdW0gaG9yaXpvbnRhbCBjb29yZGluYXRlIG9mIHRoZSBkb2N1bWVudCBhcmVhLgorICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBtYXhYKCk7CisKKy8qKgorKiBSZXR1cm4gdGhlIGFjdHVhbCBwaXhlbCBsZW5ndGggb2YgdGhlIHRleHQgd2hpY2ggaGFzIGJlZW4gZm9ybWF0dGVkLgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGZvcm1hdHRlZEhlaWdodCgpOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBzaG9ydCBlVXAgPSAtMTAsIGVEb3duID0gMTAsIGVMZWZ0ID0gLTEsIGVSaWdodCA9IDE7CisKKy8qKgorKiBHaXZlbiBhIHNjcmVlbiBsb2NhdGlvbiBwLCByZXR1cm4gdGhlIG9mZnNldCBvZiB0aGUgY2hhcmFjdGVyIGluIHRoZSB0ZXh0IG5lYXJlc3QgdG8gcC4KKyoKKyogVGhlIG9mZnNldCBtYXkgb3IgbWF5IG5vdCBpbmNsdWRlIGEgbmV3bGluZSBhdCB0aGUgZW5kIG9mIGEgbGluZSwgZGV0ZXJtaW5lZCBieSBhbmNob3IgYW5kIGluZmluaXRlTW9kZS4KKyogVGhlIG5ld2xpbmUgaXMgbm90IGluY2x1ZGVkIGlmIGluZmluaXRlTW9kZSBpcyB0cnVlIGFuZCB0aGUgYW5jaG9yIGlzIHRoZSBwb3NpdGlvbiBiZWZvcmUgdGhlIG5ld2xpbmUuCisqCisqIEBwYXJhbSByZXN1bHQgVGV4dE9mZnNldCB0byBtb2RpZnkgYW5kIHJldHVybi4gIElmIG51bGwsIG9uZSB3aWxsIGJlIGFsbG9jYXRlZCwgbW9kaWZpZWQsIGFuZCByZXR1cm5lZC4KKyogQHBhcmFtIHB4IHRoZSB4IGNvbXBvbmVudCBvZiB0aGUgcG9pbnQuCisqIEBwYXJhbSBweSB0aGUgeSBjb21wb25lbnQgb2YgdGhlIHBvaW50LgorKiBAcGFyYW0gb3JpZ2luIHRoZSB0b3AtbGVmdCBjb3JuZXIgb2YgdGhlIHRleHQsIGluIHRoZSBkaXNwbGF5J3MgY29vcmRpbmF0ZSBzeXN0ZW0KKyogQHBhcmFtIGFuY2hvciB0aGUgcHJldmlvdXMgb2Zmc2V0LiAgTWF5IGJlIG51bGwuICBVc2VkIHRvIGRldGVybWluZSB3aGV0aGVyIG5ld2xpbmVzIGFyZSBpbmNsdWRlZC4KKyogQHBhcmFtIGluZmluaXRlTW9kZSBpZiB0cnVlLCB0cmVhdCBuZXdsaW5lcyBhdCBlbmQgb2YgbGluZSBhcyBoYXZpbmcgaW5maW5pdGUgd2lkdGguCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBUZXh0T2Zmc2V0IHBvaW50VG9UZXh0T2Zmc2V0KFRleHRPZmZzZXQgcmVzdWx0LCBpbnQgcHgsIGludCBweSwgUG9pbnQgb3JpZ2luLCBUZXh0T2Zmc2V0IGFuY2hvciwgYm9vbGVhbiBpbmZpbml0ZU1vZGUpOworCisvKioKKyogR2l2ZW4gYW4gb2Zmc2V0LCByZXR1cm4gdGhlIFJlY3RhbmdsZSBib3VuZGluZyB0aGUgY2FyZXQgYXQgdGhlIG9mZnNldC4KKyogQHBhcmFtIG9mZnNldCBhbiBvZmZzZXQgaW50byB0aGUgdGV4dAorKiBAcGFyYW0gb3JpZ2luIHRoZSB0b3AtbGVmdCBjb3JuZXIgb2YgdGhlIHRleHQsIGluIHRoZSBkaXNwbGF5J3MgY29vcmRpbmF0ZSBzeXN0ZW0KKyogQHJldHVybiBhIFJlY3RhbmdsZSBib3VuZGluZyB0aGUgY2FyZXQuCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBSZWN0YW5nbGUgZ2V0Q2FyZXRSZWN0KFRleHRPZmZzZXQgb2Zmc2V0LCBQb2ludCBvcmlnaW4pOworCisvKioKKyogRHJhdyB0aGUgY2FyZXQocykgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBvZmZzZXQgaW50byB0aGUgZ2l2ZW4gR3JhcGhpY3MuCisqIEBwYXJhbSBnIHRoZSBHcmFwaGljcyB0byBkcmF3IGludG8KKyogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IGluIHRoZSB0ZXh0IGZvciB3aGljaCB0aGUgY2FyZXQgaXMgZHJhd24KKyogQHBhcmFtIG9yaWdpbiB0aGUgdG9wLWxlZnQgY29ybmVyIG9mIHRoZSB0ZXh0LCBpbiB0aGUgZGlzcGxheSdzIGNvb3JkaW5hdGUgc3lzdGVtCisqIEBwYXJhbSBzdHJvbmdDYXJldENvbG9yIHRoZSBjb2xvciBvZiB0aGUgc3Ryb25nIGNhcmV0CisqIEBwYXJhbSB3ZWFrQ2FyZXRDb2xvciB0aGUgY29sb3Igb2YgdGhlIHdlYWsgY2FyZXQgKGlmIGFueSkKKyovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgZHJhd0NhcmV0KEdyYXBoaWNzIGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgb2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb2ludCBvcmlnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yIHN0cm9uZ0NhcmV0Q29sb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yIHdlYWtDYXJldENvbG9yKTsKKworICAgIC8qKgorICAgICAqIEBzZWUgI2dldEJvdW5kaW5nUmVjdAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYm9vbGVhbiBMT09TRSA9IGZhbHNlOworICAgIC8qKgorICAgICAqIEBzZWUgI2dldEJvdW5kaW5nUmVjdAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYm9vbGVhbiBUSUdIVCA9IHRydWU7CisKKy8qKgorKiBHaXZlbiB0d28gb2Zmc2V0cyBpbiB0aGUgdGV4dCwgcmV0dXJuIGEgcmVjdGFuZ2xlIHdoaWNoIGVuY2xvc2VzIHRoZSBsaW5lcyBjb250YWluaW5nIHRoZSBvZmZzZXRzLgorKiBPZmZzZXRzIGRvIG5vdCBuZWVkIHRvIGJlIG9yZGVyZWQgb3Igbm9ubmVnYXRpdmUuCisqIEBwYXJhbSBvZmZzZXQxLG9mZnNldDIgb2Zmc2V0cyBpbnRvIHRoZSB0ZXh0CisqIEBwYXJhbSBvcmlnaW4gdGhlIHRvcC1sZWZ0IGNvcm5lciBvZiB0aGUgdGV4dCwgaW4gdGhlIGRpc3BsYXkncyBjb29yZGluYXRlIHN5c3RlbQorKiBAcGFyYW0gdGlnaHQgaWYgZXF1YWwgdG8gVElHSFQsIHRoZSBib3VuZHMgaXMgYXMgc21hbGwgYXMgcG9zc2libGUuICBJZiBMT09TRSwgdGhlIHdpZHRoCisqIG9mIHRoZSBib3VuZHMgaXMgYWxsb3dlZCB0byBiZSB3aWRlciB0aGFuIG5lY2VzYXJ5LiAgTG9vc2UgYm91bmRzIGFyZSBlYXNpZXIgdG8gY29tcHV0ZS4KKyogQHJldHVybiBhIDx0dD5SZWN0YW5nbGU8L3R0PiwgcmVsYXRpdmUgdG8gPHR0Pm9yaWdpbjwvdHQ+LCB3aGljaCBlbmNsb3NlcyB0aGUgbGluZXMgY29udGFpbmluZyB0aGUgb2Zmc2V0cworKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgUmVjdGFuZ2xlIGdldEJvdW5kaW5nUmVjdChUZXh0T2Zmc2V0IG9mZnNldDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBvZmZzZXQyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb2ludCBvcmlnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB0aWdodCk7CisKKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBnZXRCb3VuZGluZ1JlY3QoUmVjdGFuZ2xlIGJvdW5kaW5nUmVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBvZmZzZXQxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IG9mZnNldDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvaW50IG9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB0aWdodCk7CisKKy8qKgorKiBDb21wdXRlIHRoZSBvZmZzZXQgcmVzdWx0aW5nIGZyb20gbW92aW5nIGZyb20gYSBwcmV2aW91cyBvZmZzZXQgaW4gZGlyZWN0aW9uIGRpci4KKyogRm9yIGFycm93IGtleXMuCisqIEBwYXJhbSBwcmV2aW91c09mZnNldCB0aGUgaW5zZXJ0aW9uIG9mZnNldCBwcmlvciB0byB0aGUgYXJyb3cga2V5IHByZXNzCisqIEBwYXJhbSBkaXJlY3Rpb24gdGhlIGRpcmVjdGlvbiBvZiB0aGUgYXJyb3cga2V5IChlVXAsIGVEb3duLCBlTGVmdCwgb3IgZVJpZ2h0KQorKiBAcmV0dXJuIG5ldyBvZmZzZXQgYmFzZWQgb24gZGlyZWN0aW9uIGFuZCBwcmV2aW91cyBvZmZzZXQuCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBUZXh0T2Zmc2V0IGZpbmRJbnNlcnRpb25PZmZzZXQoVGV4dE9mZnNldCByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHByZXZpb3VzT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnQgZGlyZWN0aW9uKTsKKworLyoqCisqIENvbXB1dGUgdGhlIG9mZnNldCByZXN1bHRpbmcgZnJvbSBtb3ZpbmcgZnJvbSBhIHByZXZpb3VzIG9mZnNldCwgc3RhcnRpbmcgYXQgYW4gb3JpZ2luYWwgb2Zmc2V0LCBpbiBkaXJlY3Rpb24gZGlyLgorKiBGb3IgYXJyb3cga2V5cy4gIFVzZSB0aGlzIGZvciAic21hcnQiIHVwL2Rvd24ga2V5cy4KKyogQHBhcmFtIHJlc3VsdCBUZXh0T2Zmc2V0IHRvIG1vZGlmeSBhbmQgcmV0dXJuLiAgSWYgbnVsbCwgYSBuZXcgVGV4dE9mZnNldCBpcyBjcmVhdGVkLCBtb2RpZmllZCwgYW5kIHJldHVybmVkLgorKiBAcGFyYW0gaW5pdGlhbE9mZnNldCBUaGUgb2Zmc2V0IGF0IHdoaWNoIGFuIHVwLWRvd24gYXJyb3cga2V5IHNlcXVlbmNlIGJlZ2FuLgorKiBAcGFyYW0gcHJldmlvdXNPZmZzZXQgVGhlIGluc2VydGlvbiBvZmZzZXQgcHJpb3IgdG8gdGhlIGFycm93IGtleSBwcmVzcy4KKyogQHBhcmFtIGRpcmVjdGlvbiBUaGUgZGlyZWN0aW9uIG9mIHRoZSBhcnJvdyBrZXkgKGVVcCwgZURvd24sIGVMZWZ0LCBvciBlUmlnaHQpCisqIEByZXR1cm4gbmV3IG9mZnNldCBiYXNlZCBvbiBkaXJlY3Rpb24gYW5kIHByZXZpb3VzIG9mZnNldChzKS4KKyovCisgICAgcHVibGljIGFic3RyYWN0IFRleHRPZmZzZXQgZmluZE5ld0luc2VydGlvbk9mZnNldChUZXh0T2Zmc2V0IHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgaW5pdGlhbE9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgcHJldmlvdXNPZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG9ydCBkaXJlY3Rpb24pOworCisvKioKKyogUmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgbGluZSBjb250YWluaW5nIHRoZSBnaXZlbiBjaGFyYWN0ZXIgaW5kZXguCisqIFRoaXMgbWV0aG9kIGhhcyBjb21wbGljYXRlZCBzZW1hbnRpY3MsIGFyaXNpbmcgZnJvbSBub3Qga25vd2luZyAKKyogd2hpY2ggc2lkZSBvZiB0aGUgaW5kZXggdG8gY2hlY2suICBUaGUgaW5kZXggd2lsbCBiZSBnaXZlbiBhbgorKiBpbXBsaWNpdCBBRlRFUiBiaWFzLCB1bmxlc3MgdGhlIGluZGV4IGlzIHRoZSBsYXN0IGluZGV4IGluIHRoZSB0ZXh0LAorKiB0aGUgdGV4dCBsZW5ndGggaXMgbm9uLXplcm8sIGFuZCB0aGVyZSBpcyBub3QgYSBwYXJhZ3JhcGggc2VwYXJhdG9yCisqIGF0IHRoZSBlbmQgb2YgdGhlIHRleHQuCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgbGluZUNvbnRhaW5pbmcoaW50IGluZGV4KTsKKyAgICAKKy8qKgorKiBSZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBsaW5lIGNvbnRhaW5pbmcgdGhlIGdpdmVuIG9mZnNldC4KKyovCisgICAgcHVibGljIGFic3RyYWN0IGludCBsaW5lQ29udGFpbmluZyhUZXh0T2Zmc2V0IG9mZnNldCk7CisKKy8qKgorKiBSZXR1cm4gdGhlIG51bWJlciBvZiBsaW5lcy4KKyovCisgICAgcHVibGljIGFic3RyYWN0IGludCBnZXRMaW5lQ291bnQoKTsKKworLyoqCisqIFJldHVybiB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBvbiB0aGUgZ2l2ZW4gbGluZS4KKyovCisgICAgcHVibGljIGFic3RyYWN0IGludCBsaW5lUmFuZ2VMb3coaW50IGxpbmVOdW1iZXIpOworCisvKioKKyogUmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGZvbGxvd2luZyB0aGUgZ2l2ZW4gbGluZS4KKyovCisgICAgcHVibGljIGFic3RyYWN0IGludCBsaW5lUmFuZ2VMaW1pdChpbnQgbGluZU51bWJlcik7CisKKy8qKgorKiBUZWxscyB0aGUgZm9ybWF0dGVyIHRvIHN0b3AgYWNjZXNzaW5nIHRoZSB0ZXh0IHVudGlsIHVwZGF0ZUZvcm1hdCBpcyBjYWxsZWQuCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHN0b3BCYWNrZ3JvdW5kRm9ybWF0dGluZygpOworCisvKioKKyogUmV0dXJuIHRoZSBsaW5lIG51bWJlciBhdCB0aGUgZ2l2ZW4gZ3JhcGhpYyBoZWlnaHQuICBJZiBoZWlnaHQgaXMgZ3JlYXRlciB0aGFuCisqIHRoZSB0ZXh0IGhlaWdodCwgbWF4TGluZU51bWJlciArIDEgaXMgcmV0dXJuZWQuCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgbGluZUF0SGVpZ2h0KGludCBoZWlnaHQpOworCisvKioKKyogUmV0dXJuIHRoZSBncmFwaGljIGhlaWdodCB3aGVyZSB0aGUgZ2l2ZW4gbGluZSBiZWdpbnMuICBJZiB0aGUgbGluZU51bWJlciBpcworKiBtYXhMaW5lTnVtYmVyIHRoZSBlbnRpcmUgdGV4dCBoZWlnaHQgaXMgcmV0dXJuZWQuCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgbGluZUdyYXBoaWNTdGFydChpbnQgbGluZU51bWJlcik7CisKKy8qKgorKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4gbGluZSBpcyBsZWZ0LXRvLXJpZ2h0LgorKiBAcGFyYW0gbGluZU51bWJlciBhIHZhbGlkIGxpbmUKKyogQHJldHVybiB0cnVlIGlmIGxpbmVOdW1iZXIgaXMgbGVmdC10by1yaWdodAorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbiBsaW5lSXNMZWZ0VG9SaWdodChpbnQgbGluZU51bWJlcik7CisKKy8qKgorKiBSZXR1cm4gYSBuZXcgPHR0Pk1Gb3JtYXR0ZXI8L3R0Pi4KKyogQHBhcmFtIHRleHQgdGhlIHRleHQgdG8gZm9ybWF0CisqIEBwYXJhbSBkZWZhdWx0VmFsdWVzIHZhbHVlcyB0byB1c2Ugd2hlbiBjZXJ0YWluIGF0dHJpYnV0ZXMgYXJlIG5vdCBzcGVjaWZpZWQuIAorKiAgICA8dHQ+ZGVmYXVsdFZhbHVlczwvdHQ+IG11c3QgY29udGFpbiB2YWx1ZXMgZm9yIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczoKKyogICAgPHR0PkZBTUlMWTwvdHQ+LCA8dHQ+V0VJR0hUPC90dD4sIDx0dD5QT1NUVVJFPC90dD4sIDx0dD5TSVpFPC90dD4sIDx0dD5TVVBFUlNDUklQVDwvdHQ+LCAKKyogICAgPHR0PkZPUkVHUk9VTkQ8L3R0PiwgPHR0PlVOREVSTElORTwvdHQ+LCA8dHQ+U1RSSUtFVEhST1VHSDwvdHQ+LAorKiAgICA8dHQ+RVhUUkFfTElORV9TUEFDSU5HPC90dD4sIDx0dD5GSVJTVF9MSU5FX0lOREVOVDwvdHQ+LDx0dD5NSU5fTElORV9TUEFDSU5HPC90dD4sCisqICAgIDx0dD5MSU5FX0ZMVVNIPC90dD4sIDx0dD5MRUFESU5HX01BUkdJTjwvdHQ+LCA8dHQ+VFJBSUxJTkdfTUFSR0lOPC90dD4sIDx0dD5UQUJfUlVMRVI8L3R0PgorKiBAcGFyYW0gbGluZUJvdW5kIGxlbmd0aCB0byB3aGljaCBsaW5lcyBhcmUgZm9ybWF0dGVkCisqIEBwYXJhbSB3cmFwIDx0dD50cnVlPC90dD4gaWYgdGV4dCBzaG91bGQgYmUgImxpbmUgd3JhcHBlZCIgKGZvcm1hdHRlZCB0byBmaXQgZGVzdGluYXRpb24gYXJlYSkKKyovCisgICAgcHVibGljIHN0YXRpYyBNRm9ybWF0dGVyIGNyZWF0ZUZvcm1hdHRlcihNQ29uc3RUZXh0IHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgZGVmYXVsdFZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lQm91bmQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB3cmFwLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdyYXBoaWNzIGcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICByZXR1cm4gbmV3IEFzeW5jRm9ybWF0dGVyKHRleHQsIGRlZmF1bHRWYWx1ZXMsIGxpbmVCb3VuZCwgd3JhcCwgZyk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9NVGV4dEl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L01UZXh0SXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hM2ZiYjljCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9NVGV4dEl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSw0MDIgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IE1UZXh0SXRlcmF0b3IuamF2YSx2ICQgJFJldmlzaW9uOiAxLjQgJCAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNjo0MyAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworLy8gUmVxdWlyZXMgSmF2YTIKK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0Zm9ybWF0OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCisvLy8qSkRLMTJJTVBPUlRTCitpbXBvcnQgamF2YS50ZXh0LkF0dHJpYnV0ZWRDaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnRleHQuQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yLkF0dHJpYnV0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CisvL0pESzEySU1QT1JUUyovCisKKy8qSkRLMTFJTVBPUlRTCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZWRDaGFyYWN0ZXJJdGVyYXRvci5BdHRyaWJ1dGU7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuTWFwOworSkRLMTFJTVBPUlRTKi8KKworcHVibGljIGZpbmFsIGNsYXNzIE1UZXh0SXRlcmF0b3IgaW1wbGVtZW50cyBBdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsb25lYWJsZSB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIC8vIG1lbW9yeSBsZWFrLCBzaW5jZSB0aGlzIGNhY2hlIGlzIG5ldmVyIGZsdXNoZWQKKworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIE1hdGNoZXIgeworICAgICAgICAKKyAgICAgICAgYm9vbGVhbiBtYXRjaGVzKE1hcCBsaHMsIE1hcCByaHMsIE9iamVjdCBxdWVyeSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBPYmplY3QgbGhzVmFsID0gbGhzLmdldChxdWVyeSk7CisgICAgICAgICAgICBPYmplY3QgcmhzVmFsID0gcmhzLmdldChxdWVyeSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChsaHNWYWwgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiByaHNWYWwgPT0gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBsaHNWYWwuZXF1YWxzKHJoc1ZhbCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTWF0Y2hlciBBVFRSX01BVENIRVIgPSBuZXcgTWF0Y2hlcigpOworICAgIAorICAgIC8vIE5vdCBxdWl0ZSBvcHRpbWFsLiAgQ291bGQgaGF2ZSBhIG1hdGNoZXIgdGhhdCB3b3VsZCBkZWNvbXBvc2UKKyAgICAvLyBhIHNldCBvbmNlIGZvciByZXBlYXRlZCBxdWVyaWVzLiAgT2YgY291cnNlIHRoYXQgd291bGQgcmVxdWlyZQorICAgIC8vIGFsbG9jYXRpb24uLi4KKy8vLypKREsxMklNUE9SVFMKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBNYXRjaGVyIFNFVF9NQVRDSEVSID0gbmV3IE1hdGNoZXIoKSB7CisgICAgICAgIAorICAgICAgICBib29sZWFuIG1hdGNoZXMoTWFwIGxocywgTWFwIHJocywgT2JqZWN0IHF1ZXJ5KSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIE5vdCB1c2luZyBJdGVyYXRvciB0byBzaW1wbGlmeSAxLjEgcG9ydC4KKyAgICAgICAgICAgIE9iamVjdFtdIGVsZW1lbnRzID0gKChTZXQpcXVlcnkpLnRvQXJyYXkoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKCFzdXBlci5tYXRjaGVzKGxocywgcmhzLCBlbGVtZW50c1tpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfTsKKy8vSkRLMTJJTVBPUlRTKi8KKyAgICAKKyAgICBwcml2YXRlIGZpbmFsIGNsYXNzIFN0eWxlQ2FjaGUgeworCisgICAgICAgIHByaXZhdGUgaW50IGZSdW5TdGFydCA9IDA7CisgICAgICAgIHByaXZhdGUgaW50IGZSdW5MaW1pdCA9IC0xOworICAgICAgICBwcml2YXRlIGludCBmUmFuZ2VTdGFydDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgZlJhbmdlTGltaXQ7CisgICAgICAgIHByaXZhdGUgQXR0cmlidXRlTWFwIGZTdHlsZTsKKworICAgICAgICBTdHlsZUNhY2hlKE1Db25zdFRleHQgdGV4dCwgaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKyAgICAgICAgICAgIGZUZXh0ID0gdGV4dDsKKyAgICAgICAgICAgIGZSYW5nZVN0YXJ0ID0gc3RhcnQ7CisgICAgICAgICAgICBmUmFuZ2VMaW1pdCA9IGxpbWl0OworICAgICAgICAgICAgdXBkYXRlKHN0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgdm9pZCB1cGRhdGUoaW50IHBvcykgeworICAgICAgICAgICAgaWYgKHBvcyA8IGZSdW5TdGFydCB8fCBwb3MgPj0gZlJ1bkxpbWl0KSB7CisgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwIHN0eWxlID0gQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVA7CisgICAgICAgICAgICAgICAgaWYgKHBvcyA8IGZSYW5nZVN0YXJ0KSB7CisgICAgICAgICAgICAgICAgICAgIGZSdW5MaW1pdCA9IGZSYW5nZVN0YXJ0OworICAgICAgICAgICAgICAgICAgICBmUnVuU3RhcnQgPSBJbnRlZ2VyLk1JTl9WQUxVRTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAocG9zID4gZlJhbmdlTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgZlJ1blN0YXJ0ID0gZlJhbmdlTGltaXQ7CisgICAgICAgICAgICAgICAgICAgIGZSdW5MaW1pdCA9IEludGVnZXIuTUFYX1ZBTFVFOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZlJ1blN0YXJ0ID0gTWF0aC5tYXgoZlJhbmdlU3RhcnQsIGZUZXh0LmNoYXJhY3RlclN0eWxlU3RhcnQocG9zKSk7CisgICAgICAgICAgICAgICAgICAgIGZSdW5TdGFydCA9IE1hdGgubWF4KGZSdW5TdGFydCwgZlRleHQucGFyYWdyYXBoU3RhcnQocG9zKSk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBmUnVuTGltaXQgPSBNYXRoLm1pbihmUmFuZ2VMaW1pdCwgZlRleHQuY2hhcmFjdGVyU3R5bGVMaW1pdChwb3MpKTsKKyAgICAgICAgICAgICAgICAgICAgZlJ1bkxpbWl0ID0gTWF0aC5taW4oZlJ1bkxpbWl0LCBmVGV4dC5wYXJhZ3JhcGhMaW1pdChwb3MpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZSdW5TdGFydCA8IGZSdW5MaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGUgPSBmVGV4dC5wYXJhZ3JhcGhTdHlsZUF0KHBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZSA9IHN0eWxlLmFkZEF0dHJpYnV0ZXMoZlRleHQuY2hhcmFjdGVyU3R5bGVBdChwb3MpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmU3R5bGUgPSBmRm9udFJlc29sdmVyLmFwcGx5Rm9udChzdHlsZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpbnQgZ2V0UnVuU3RhcnQoaW50IHBvcykgeworICAgICAgICAgICAgdXBkYXRlKHBvcyk7CisgICAgICAgICAgICByZXR1cm4gZlJ1blN0YXJ0OworICAgICAgICB9CisKKyAgICAgICAgaW50IGdldFJ1bkxpbWl0KGludCBwb3MpIHsKKyAgICAgICAgICAgIHVwZGF0ZShwb3MpOworICAgICAgICAgICAgcmV0dXJuIGZSdW5MaW1pdDsKKyAgICAgICAgfQorCisgICAgICAgIE1hcCBnZXRTdHlsZShpbnQgcG9zKSB7CisgICAgICAgICAgICB1cGRhdGUocG9zKTsKKyAgICAgICAgICAgIHJldHVybiBmU3R5bGU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIE1Db25zdFRleHQgZlRleHQ7CisgICAgcHJpdmF0ZSBDaGFyYWN0ZXJJdGVyYXRvciBmQ2hhckl0ZXI7CisgICAgcHJpdmF0ZSBGb250UmVzb2x2ZXIgZkZvbnRSZXNvbHZlcjsKKyAgICAKKyAgICBwcml2YXRlIFN0eWxlQ2FjaGUgZlN0eWxlQ2FjaGU7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYW4gTVRleHRJdGVyYXRvciBvdmVyIHRoZSByYW5nZSBbc3RhcnQsIGxpbWl0KS4KKyAgICAgKi8KKyAgICBwdWJsaWMgTVRleHRJdGVyYXRvcihNQ29uc3RUZXh0IHRleHQsIAorICAgICAgICAgICAgICAgICAgICAgICAgIEZvbnRSZXNvbHZlciByZXNvbHZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCkgeworCisgICAgICAgIGZUZXh0ID0gdGV4dDsKKyAgICAgICAgZkZvbnRSZXNvbHZlciA9IHJlc29sdmVyOworICAgICAgICBmQ2hhckl0ZXIgPSB0ZXh0LmNyZWF0ZUNoYXJhY3Rlckl0ZXJhdG9yKHN0YXJ0LCBsaW1pdCk7CisKKyAgICAgICAgZlN0eWxlQ2FjaGUgPSBuZXcgU3R5bGVDYWNoZSh0ZXh0LCBzdGFydCwgbGltaXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHBvc2l0aW9uIHRvIGdldEJlZ2luSW5kZXgoKSBhbmQgcmV0dXJucyB0aGUgY2hhcmFjdGVyIGF0IHRoYXQKKyAgICAgKiBwb3NpdGlvbi4KKyAgICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaW4gdGhlIHRleHQsIG9yIERPTkUgaWYgdGhlIHRleHQgaXMgZW1wdHkKKyAgICAgKiBAc2VlICNnZXRCZWdpbkluZGV4CisgICAgICovCisgICAgcHVibGljIGNoYXIgZmlyc3QoKSB7CisgICAgICAgIHJldHVybiBmQ2hhckl0ZXIuZmlyc3QoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBwb3NpdGlvbiB0byBnZXRFbmRJbmRleCgpLTEgKGdldEVuZEluZGV4KCkgaWYgdGhlIHRleHQgaXMgZW1wdHkpCisgICAgICogYW5kIHJldHVybnMgdGhlIGNoYXJhY3RlciBhdCB0aGF0IHBvc2l0aW9uLgorICAgICAqIEByZXR1cm4gdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0LCBvciBET05FIGlmIHRoZSB0ZXh0IGlzIGVtcHR5CisgICAgICogQHNlZSAjZ2V0RW5kSW5kZXgKKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBsYXN0KCkgeworICAgICAgICByZXR1cm4gZkNoYXJJdGVyLmxhc3QoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBjaGFyYWN0ZXIgYXQgdGhlIGN1cnJlbnQgcG9zaXRpb24gKGFzIHJldHVybmVkIGJ5IGdldEluZGV4KCkpLgorICAgICAqIEByZXR1cm4gdGhlIGNoYXJhY3RlciBhdCB0aGUgY3VycmVudCBwb3NpdGlvbiBvciBET05FIGlmIHRoZSBjdXJyZW50CisgICAgICogcG9zaXRpb24gaXMgb2ZmIHRoZSBlbmQgb2YgdGhlIHRleHQuCisgICAgICogQHNlZSAjZ2V0SW5kZXgKKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBjdXJyZW50KCkgeworICAgICAgICByZXR1cm4gZkNoYXJJdGVyLmN1cnJlbnQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbmNyZW1lbnRzIHRoZSBpdGVyYXRvcidzIGluZGV4IGJ5IG9uZSBhbmQgcmV0dXJucyB0aGUgY2hhcmFjdGVyCisgICAgICogYXQgdGhlIG5ldyBpbmRleC4gIElmIHRoZSByZXN1bHRpbmcgaW5kZXggaXMgZ3JlYXRlciBvciBlcXVhbAorICAgICAqIHRvIGdldEVuZEluZGV4KCksIHRoZSBjdXJyZW50IGluZGV4IGlzIHJlc2V0IHRvIGdldEVuZEluZGV4KCkgYW5kCisgICAgICogYSB2YWx1ZSBvZiBET05FIGlzIHJldHVybmVkLgorICAgICAqIEByZXR1cm4gdGhlIGNoYXJhY3RlciBhdCB0aGUgbmV3IHBvc2l0aW9uIG9yIERPTkUgaWYgdGhlIG5ldworICAgICAqIHBvc2l0aW9uIGlzIG9mZiB0aGUgZW5kIG9mIHRoZSB0ZXh0IHJhbmdlLgorICAgICAqLworICAgIHB1YmxpYyBjaGFyIG5leHQoKSB7CisgICAgICAgIHJldHVybiBmQ2hhckl0ZXIubmV4dCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERlY3JlbWVudHMgdGhlIGl0ZXJhdG9yJ3MgaW5kZXggYnkgb25lIGFuZCByZXR1cm5zIHRoZSBjaGFyYWN0ZXIKKyAgICAgKiBhdCB0aGUgbmV3IGluZGV4LiBJZiB0aGUgY3VycmVudCBpbmRleCBpcyBnZXRCZWdpbkluZGV4KCksIHRoZSBpbmRleAorICAgICAqIHJlbWFpbnMgYXQgZ2V0QmVnaW5JbmRleCgpIGFuZCBhIHZhbHVlIG9mIERPTkUgaXMgcmV0dXJuZWQuCisgICAgICogQHJldHVybiB0aGUgY2hhcmFjdGVyIGF0IHRoZSBuZXcgcG9zaXRpb24gb3IgRE9ORSBpZiB0aGUgY3VycmVudAorICAgICAqIHBvc2l0aW9uIGlzIGVxdWFsIHRvIGdldEJlZ2luSW5kZXgoKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBwcmV2aW91cygpIHsKKyAgICAgICAgcmV0dXJuIGZDaGFySXRlci5wcmV2aW91cygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHBvc2l0aW9uIHRvIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gaW4gdGhlIHRleHQgYW5kIHJldHVybnMgdGhhdAorICAgICAqIGNoYXJhY3Rlci4KKyAgICAgKiBAcGFyYW0gcG9zaXRpb24gdGhlIHBvc2l0aW9uIHdpdGhpbiB0aGUgdGV4dC4gIFZhbGlkIHZhbHVlcyByYW5nZSBmcm9tCisgICAgICogZ2V0QmVnaW5JbmRleCgpIHRvIGdldEVuZEluZGV4KCkuICBBbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaXMgdGhyb3duCisgICAgICogaWYgYW4gaW52YWxpZCB2YWx1ZSBpcyBzdXBwbGllZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBjaGFyYWN0ZXIgYXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvbiBvciBET05FIGlmIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gaXMgZXF1YWwgdG8gZ2V0RW5kSW5kZXgoKQorICAgICAqLworICAgIHB1YmxpYyBjaGFyIHNldEluZGV4KGludCBwb3NpdGlvbikgeworICAgICAgICByZXR1cm4gZkNoYXJJdGVyLnNldEluZGV4KHBvc2l0aW9uKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBzdGFydCBpbmRleCBvZiB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIHRoZSBpbmRleCBhdCB3aGljaCB0aGUgdGV4dCBiZWdpbnMuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRCZWdpbkluZGV4KCkgeworICAgICAgICByZXR1cm4gZkNoYXJJdGVyLmdldEJlZ2luSW5kZXgoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBlbmQgaW5kZXggb2YgdGhlIHRleHQuICBUaGlzIGluZGV4IGlzIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QKKyAgICAgKiBjaGFyYWN0ZXIgZm9sbG93aW5nIHRoZSBlbmQgb2YgdGhlIHRleHQuCisgICAgICogQHJldHVybiB0aGUgaW5kZXggYWZ0ZXIgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0CisgICAgICovCisgICAgcHVibGljIGludCBnZXRFbmRJbmRleCgpIHsKKyAgICAgICAgcmV0dXJuIGZDaGFySXRlci5nZXRFbmRJbmRleCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgaW5kZXguCisgICAgICogQHJldHVybiB0aGUgY3VycmVudCBpbmRleC4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEluZGV4KCkgeworICAgICAgICByZXR1cm4gZkNoYXJJdGVyLmdldEluZGV4KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUgcnVuCisgICAgICogd2l0aCByZXNwZWN0IHRvIGFsbCBhdHRyaWJ1dGVzIGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgY2hhcmFjdGVyLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0UnVuU3RhcnQoKSB7CisgICAgICAgIHJldHVybiBmU3R5bGVDYWNoZS5nZXRSdW5TdGFydChmQ2hhckl0ZXIuZ2V0SW5kZXgoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUgcnVuCisgICAgICogd2l0aCByZXNwZWN0IHRvIHRoZSBnaXZlbiBhdHRyaWJ1dGUgY29udGFpbmluZyB0aGUgY3VycmVudCBjaGFyYWN0ZXIuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRSdW5TdGFydChPYmplY3QgYXR0cmlidXRlKSB7CisKKyAgICAgICAgcmV0dXJuIGdldFJ1blN0YXJ0KGF0dHJpYnV0ZSwgQVRUUl9NQVRDSEVSKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIHRoZSBydW4KKyAgICAgKiB3aXRoIHJlc3BlY3QgdG8gdGhlIGdpdmVuIGF0dHJpYnV0ZSBjb250YWluaW5nIHRoZSBjdXJyZW50IGNoYXJhY3Rlci4KKyAgICAgKi8KKy8vLypKREsxMklNUE9SVFMKKyAgICBwdWJsaWMgaW50IGdldFJ1blN0YXJ0KEF0dHJpYnV0ZSBhdHRyaWJ1dGUpIHsKKworICAgICAgICByZXR1cm4gZ2V0UnVuU3RhcnQoYXR0cmlidXRlLCBBVFRSX01BVENIRVIpOworICAgIH0KKy8vSkRLMTJJTVBPUlRTKi8KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIHJ1bgorICAgICAqIHdpdGggcmVzcGVjdCB0byB0aGUgZ2l2ZW4gYXR0cmlidXRlcyBjb250YWluaW5nIHRoZSBjdXJyZW50IGNoYXJhY3Rlci4KKyAgICAgKi8KKy8vLypKREsxMklNUE9SVFMKKyAgICBwdWJsaWMgaW50IGdldFJ1blN0YXJ0KFNldCBhdHRyaWJ1dGVzKSB7CisKKyAgICAgICAgcmV0dXJuIGdldFJ1blN0YXJ0KGF0dHJpYnV0ZXMsIFNFVF9NQVRDSEVSKTsKKyAgICB9CisvL0pESzEySU1QT1JUUyovCisgICAgCisgICAgcHJpdmF0ZSBpbnQgZ2V0UnVuU3RhcnQoT2JqZWN0IHF1ZXJ5LCBNYXRjaGVyIG1hdGNoZXIpIHsKKworICAgICAgICBpbnQgcnVuU3RhcnQgPSBnZXRSdW5TdGFydCgpOworICAgICAgICBpbnQgcmFuZ2VTdGFydCA9IGdldEJlZ2luSW5kZXgoKTsKKyAgICAgICAgTWFwIGluaXRpYWxTdHlsZSA9IGdldEF0dHJpYnV0ZXMoKTsKKyAgICAgICAgCisgICAgICAgIHdoaWxlIChydW5TdGFydCA+IHJhbmdlU3RhcnQpIHsKKyAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBzdHlsZSA9IGZUZXh0LmNoYXJhY3RlclN0eWxlQXQocnVuU3RhcnQtMSk7CisgICAgICAgICAgICBpZiAoIW1hdGNoZXIubWF0Y2hlcyhpbml0aWFsU3R5bGUsIHN0eWxlLCBxdWVyeSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcnVuU3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBydW5TdGFydCA9IGZUZXh0LmNoYXJhY3RlclN0eWxlU3RhcnQocnVuU3RhcnQtMSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJhbmdlU3RhcnQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgZm9sbG93aW5nIHRoZSBydW4KKyAgICAgKiB3aXRoIHJlc3BlY3QgdG8gYWxsIGF0dHJpYnV0ZXMgY29udGFpbmluZyB0aGUgY3VycmVudCBjaGFyYWN0ZXIuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRSdW5MaW1pdCgpIHsKKyAgICAgICAgcmV0dXJuIGZTdHlsZUNhY2hlLmdldFJ1bkxpbWl0KGZDaGFySXRlci5nZXRJbmRleCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGZvbGxvd2luZyB0aGUgcnVuCisgICAgICogd2l0aCByZXNwZWN0IHRvIHRoZSBnaXZlbiBhdHRyaWJ1dGUgY29udGFpbmluZyB0aGUgY3VycmVudCBjaGFyYWN0ZXIuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRSdW5MaW1pdChPYmplY3QgYXR0cmlidXRlKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZ2V0UnVuTGltaXQoYXR0cmlidXRlLCBBVFRSX01BVENIRVIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgZm9sbG93aW5nIHRoZSBydW4KKyAgICAgKiB3aXRoIHJlc3BlY3QgdG8gdGhlIGdpdmVuIGF0dHJpYnV0ZSBjb250YWluaW5nIHRoZSBjdXJyZW50IGNoYXJhY3Rlci4KKyAgICAgKi8KKy8vLypKREsxMklNUE9SVFMKKyAgICBwdWJsaWMgaW50IGdldFJ1bkxpbWl0KEF0dHJpYnV0ZSBhdHRyaWJ1dGUpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBnZXRSdW5MaW1pdChhdHRyaWJ1dGUsIEFUVFJfTUFUQ0hFUik7CisgICAgfQorLy9KREsxMklNUE9SVFMqLworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBmb2xsb3dpbmcgdGhlIHJ1bgorICAgICAqIHdpdGggcmVzcGVjdCB0byB0aGUgZ2l2ZW4gYXR0cmlidXRlcyBjb250YWluaW5nIHRoZSBjdXJyZW50IGNoYXJhY3Rlci4KKyAgICAgKi8KKy8vLypKREsxMklNUE9SVFMKKyAgICBwdWJsaWMgaW50IGdldFJ1bkxpbWl0KFNldCBhdHRyaWJ1dGVzKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZ2V0UnVuTGltaXQoYXR0cmlidXRlcywgU0VUX01BVENIRVIpOworICAgIH0KKy8vSkRLMTJJTVBPUlRTKi8KKworICAgIHByaXZhdGUgaW50IGdldFJ1bkxpbWl0KE9iamVjdCBxdWVyeSwgTWF0Y2hlciBtYXRjaGVyKSB7CisKKyAgICAgICAgaW50IHJ1bkxpbWl0ID0gZ2V0UnVuTGltaXQoKTsKKyAgICAgICAgaW50IHJhbmdlTGltaXQgPSBnZXRFbmRJbmRleCgpOworICAgICAgICBNYXAgaW5pdGlhbFN0eWxlID0gZ2V0QXR0cmlidXRlcygpOworICAgICAgICAKKyAgICAgICAgd2hpbGUgKHJ1bkxpbWl0IDwgcmFuZ2VMaW1pdCkgeworICAgICAgICAgICAgQXR0cmlidXRlTWFwIHN0eWxlID0gZlRleHQuY2hhcmFjdGVyU3R5bGVBdChydW5MaW1pdCk7CisgICAgICAgICAgICBpZiAoIW1hdGNoZXIubWF0Y2hlcyhpbml0aWFsU3R5bGUsIHN0eWxlLCBxdWVyeSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcnVuTGltaXQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBydW5MaW1pdCA9IGZUZXh0LmNoYXJhY3RlclN0eWxlTGltaXQocnVuTGltaXQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByYW5nZUxpbWl0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbWFwIHdpdGggdGhlIGF0dHJpYnV0ZXMgZGVmaW5lZCBvbiB0aGUgY3VycmVudAorICAgICAqIGNoYXJhY3Rlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgTWFwIGdldEF0dHJpYnV0ZXMoKSB7CisgICAgICAgIHJldHVybiBmU3R5bGVDYWNoZS5nZXRTdHlsZShmQ2hhckl0ZXIuZ2V0SW5kZXgoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIG5hbWVkIGF0dHJpYnV0ZSBmb3IgdGhlIGN1cnJlbnQgY2hhcmFjdGVyLgorICAgICAqIFJldHVybnMgbnVsbCBpZiB0aGUgYXR0cmlidXRlIGlzIG5vdCBkZWZpbmVkLgorICAgICAqIEBwYXJhbSBhdHRyaWJ1dGUgdGhlIGtleSBvZiB0aGUgYXR0cmlidXRlIHdob3NlIHZhbHVlIGlzIHJlcXVlc3RlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGdldEF0dHJpYnV0ZShPYmplY3QgYXR0cmlidXRlKSB7CisgICAgICAgIHJldHVybiBnZXRBdHRyaWJ1dGVzKCkuZ2V0KGF0dHJpYnV0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIG5hbWVkIGF0dHJpYnV0ZSBmb3IgdGhlIGN1cnJlbnQgY2hhcmFjdGVyLgorICAgICAqIFJldHVybnMgbnVsbCBpZiB0aGUgYXR0cmlidXRlIGlzIG5vdCBkZWZpbmVkLgorICAgICAqIEBwYXJhbSBhdHRyaWJ1dGUgdGhlIGtleSBvZiB0aGUgYXR0cmlidXRlIHdob3NlIHZhbHVlIGlzIHJlcXVlc3RlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGdldEF0dHJpYnV0ZShBdHRyaWJ1dGUgYXR0cmlidXRlKSB7CisgICAgICAgIHJldHVybiBnZXRBdHRyaWJ1dGVzKCkuZ2V0KGF0dHJpYnV0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUga2V5cyBvZiBhbGwgYXR0cmlidXRlcyBkZWZpbmVkIG9uIHRoZQorICAgICAqIGl0ZXJhdG9yJ3MgdGV4dCByYW5nZS4gVGhlIHNldCBpcyBlbXB0eSBpZiBubworICAgICAqIGF0dHJpYnV0ZXMgYXJlIGRlZmluZWQuCisgICAgICovCisvLy8qSkRLMTJJTVBPUlRTCisgICAgcHVibGljIFNldCBnZXRBbGxBdHRyaWJ1dGVLZXlzKCkgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkltcGxlbWVudCB0aGlzIG1ldGhvZCEiKTsKKyAgICB9CisvL0pESzEySU1QT1JUUyovCisKKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgICAgICByZXR1cm4gbmV3IE1UZXh0SXRlcmF0b3IoZlRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmRm9udFJlc29sdmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0QmVnaW5JbmRleCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0RW5kSW5kZXgoKSk7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvUGFyYWdyYXBoUmVuZGVyZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvUGFyYWdyYXBoUmVuZGVyZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42ZWJiMDU2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9QYXJhZ3JhcGhSZW5kZXJlci5qYXZhCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IFBhcmFncmFwaFJlbmRlcmVyLmphdmEsdiAkICRSZXZpc2lvbjogMS4yICQgJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6NDQgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8vIFJlcXVpcmVzIEphdmEyCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5UZXh0QXR0cmlidXRlOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CisKK2ltcG9ydCBqYXZhLmF3dC5Db2xvcjsKKworLy8vKkpESzEySU1QT1JUUworaW1wb3J0IGphdmEuYXd0LmZvbnQuRm9udFJlbmRlckNvbnRleHQ7CitpbXBvcnQgamF2YS5hd3QuZm9udC5MaW5lQnJlYWtNZWFzdXJlcjsKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczJEOworLy9KREsxMklNUE9SVFMqLworCisvKkpESzExSU1QT1JUUworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5Gb250UmVuZGVyQ29udGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuTGluZUJyZWFrTWVhc3VyZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LkdyYXBoaWNzMkQ7CitKREsxMUlNUE9SVFMqLworCisvKioKKyAqIFBhcmFncmFwaFJlbmRlcmVyIGlzIGEgZmFjdG9yeSBmb3IgTGF5b3V0SW5mbyBvYmplY3RzLgorICovCithYnN0cmFjdCBjbGFzcyBQYXJhZ3JhcGhSZW5kZXJlciB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIC8vIElmIHJlbmRlcmVycyBjYW4gZXZlciB0cmF2ZWwgd2l0aCB0aGVpciBzdHlsZXMsIHRoZW4gdGhpcyBhdHRyaWJ1dGUgd2lsbCBkZW5vdGUgYQorICAgIC8vIHJlbmRlcmVyLiAgRm9yIG5vdywgcmVuZGVyZXJzIGFyZSBub3QgYWRkZWQgYXMgc3R5bGVzIHNvIHRoaXMgaXNuJ3QgbmVlZGVkLgorICAgIC8vc3RhdGljIGZpbmFsIFRleHRBdHRyaWJ1dGUgUEFSQUdSQVBIX1JFTkRFUkVSID0gbmV3IFRleHRBdHRyaWJ1dGUoIlBhcmFncmFwaF9SZW5kZXJlciIpIHt9OworCisgICAgLyoqCisgICAgICogUmVzZXQgdGhlIHJlbmRlcmVyIHRvIHVzZSBpbmZvcm1hdGlvbiBmcm9tIHRoaXMgc3R5bGUuIFNpbmNlIHJlbmRlcmVycyBtYXkgYmUgc2hhcmVkLCB5b3Ugc2hvdWxkCisgICAgICogbWFrZSBzdXJlIHRoZSByZW5kZXJlciBpcyBpbml0aWFsaXplZCBmb3IgdGhlIHN0eWxlIHlvdSB3aXNoIHRvIHJlbmRlciBiZWZvcmUgeW91IHVzZSBpdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBpbml0UmVuZGVyZXIoQXR0cmlidXRlTWFwIHBTdHlsZSkgeworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIExheW91dEluZm8gZm9yIHRoZSBwYXJhZ3JhcGggcmVwcmVzZW50ZWQgYnkKKyAgICAgKiBtZWFzdXJlci4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgdGV4dCBjb250YWluaW5nIHRoZSBwYXJhZ3JhcGgKKyAgICAgKiBAcGFyYW0gbGF5b3V0VG9SZXVzZSBjbGllbnRzIGNhbiBwYXNzIGluIGEgTGF5b3V0SW5mbworICAgICAqIHdoaWNoIHRoZSBQYXJhZ3JhcGhSZW5kZXJlciBtYXkgY2hvb3NlIHRvIHJldXNlCisgICAgICogYW5kIHJldHVybi4gIElmIG51bGwsIGEgbmV3IExheW91dEluZm8gd2lsbCBiZQorICAgICAqIGNyZWF0ZWQgYW5kIHJldHVybmVkLgorICAgICAqIEBwYXJhbSBtZWFzdXJlciB0aGUgTGluZUJyZWFrTWVhc3VyZXIgZm9yIHRoaXMgcGFyYWdyYXBoLgorICAgICAqICBDdXJyZW50IHBvc2l0aW9uIHNob3VsZCBiZSB0aGUgZmlyc3QgY2hhcmFjdGVyIG9uIHRoZSBsaW5lLgorICAgICAqICBJZiBudWxsLCBhIDAtbGVuZ3RoIGxpbmUgaXMgZ2VuZXJhdGVkLiAgSWYgbWVhc3VyZXIgaXMgbnVsbAorICAgICAqICB0aGVuIHBhcmFncmFwaFN0YXJ0IGFuZCBwYXJhZ3JhcGhMaW1pdCBzaG91bGQgYmUgZXF1YWwuCisgICAgICogQHBhcmFtIGZyYyB0aGUgRm9udFJlbmRlckNvbnRleHQgdXNlZCBmb3IgbWVhc3VyZXJtZW50CisgICAgICogQHBhcmFtIHBhcmFncmFwaFN0YXJ0IHRoZSBpbmRleCBpbiB0aGUgdGV4dCB3aGVyZSB0aGUKKyAgICAgKiBjdXJyZW50IHBhcmFncmFwaCBiZWdpbnMKKyAgICAgKiBAcGFyYW0gcGFyYWdyYXBoTGltaXQgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIKKyAgICAgKiBhZnRlciB0aGUgY3VycmVudCBwYXJhZ3JhcGgKKyAgICAgKiBAcGFyYW0gdG90YWxGb3JtYXRXaWR0aCB0aGUgd2lkdGggaW4gd2hpY2ggdGhlIGxpbmUgc2hvdWxkIGZpdAorICAgICAqIEBwYXJhbSBsaW5lQm91bmQgd2hlcmUgcmlnaHQtYWxpZ25lZCBsaW5lcyBhcmUgYWxpZ25lZAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBMYXlvdXRJbmZvIGxheW91dChNQ29uc3RUZXh0IHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExheW91dEluZm8gbGF5b3V0VG9SZXVzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGluZUJyZWFrTWVhc3VyZXIgbWVhc3VyZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvbnRSZW5kZXJDb250ZXh0IGZyYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBhcmFncmFwaFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcGFyYWdyYXBoTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0b3RhbEZvcm1hdFdpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGluZUJvdW5kKTsKKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9UZXN0TVRleHRJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9UZXN0TVRleHRJdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmYxYThhOGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L1Rlc3RNVGV4dEl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwxMTcgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IFRlc3RNVGV4dEl0ZXJhdG9yLmphdmEsdiAkICRSZXZpc2lvbjogMS4yICQgJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6NDQgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8vIFJlcXVpcmVzIEphdmEyCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZWRUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NVGV4dDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLlRleHRBdHRyaWJ1dGU7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuVGV4dFBhbmVsOworCitwdWJsaWMgY2xhc3MgVGVzdE1UZXh0SXRlcmF0b3IgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBGb250UmVzb2x2ZXIgRk9OVF9NQVBQRVI7CisgICAgc3RhdGljIHsKKyAgICAgICAgQXR0cmlidXRlTWFwIGF0dHJzID0gVGV4dFBhbmVsLmdldERlZmF1bHRTZXR0aW5ncygpLmdldERlZmF1bHRWYWx1ZXMoKTsKKyAgICAgICAgRk9OVF9NQVBQRVIgPSBuZXcgRm9udFJlc29sdmVyKGF0dHJzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgY29tcGFyZUl0ZXJUb1RleHQoTVRleHRJdGVyYXRvciBpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQ29uc3RUZXh0IHRleHQpIHsKKworICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiVGV4dDogIiArIHRleHQpOworICAgICAgICBmaW5hbCBpbnQgYmVnaW5JbmRleCA9IGl0ZXIuZ2V0QmVnaW5JbmRleCgpOworICAgICAgICBmaW5hbCBpbnQgZW5kSW5kZXggPSBpdGVyLmdldEVuZEluZGV4KCk7CisKKyAgICAgICAgY2hhciBjaCA9IGl0ZXIuc2V0SW5kZXgoYmVnaW5JbmRleCk7CisKKyAgICAgICAgZm9yIChpbnQgaT1iZWdpbkluZGV4OyBpIDwgZW5kSW5kZXg7IGkrKykgeworICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50KGNoKyAiICIpOworICAgICAgICAgICAgaWYgKGNoICE9IHRleHQuYXQoaSkpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNoYXJhY3RlcnMgYXJlIG5vdCB0aGUgc2FtZS4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNoID0gaXRlci5uZXh0KCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoY2ggIT0gaXRlci5ET05FKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkl0ZXJhdG9yIGlzIG5vdCBkb25lLiIpOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChpbnQgaT1lbmRJbmRleC0xOyBpID49IGJlZ2luSW5kZXg7IGktLSkgeworICAgICAgICAgICAgY2ggPSBpdGVyLnByZXZpb3VzKCk7CisgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnQoY2grICIgIik7CisgICAgICAgICAgICBpZiAoY2ggIT0gdGV4dC5hdChpKSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFja3dhcmQgaXRlcmF0aW9uIGZhaWxlZC4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGl0ZXIuc2V0SW5kZXgoYmVnaW5JbmRleCk7CisKKyAgICAgICAgaW50IHJ1bkxpbWl0OworICAgICAgICBmb3IgKGludCBydW5TdGFydCA9IGJlZ2luSW5kZXg7IHJ1blN0YXJ0IDwgZW5kSW5kZXg7IHJ1blN0YXJ0ID0gcnVuTGltaXQpIHsKKworICAgICAgICAgICAgcnVuTGltaXQgPSBNYXRoLm1pbihlbmRJbmRleCwgdGV4dC5jaGFyYWN0ZXJTdHlsZUxpbWl0KHJ1blN0YXJ0KSk7CisKKyAgICAgICAgICAgIGlmIChpdGVyLmdldFJ1blN0YXJ0KCkgIT0gcnVuU3RhcnQpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oaXRlci5nZXRSdW5TdGFydCgpICsgIjsgIiArIHJ1blN0YXJ0KTsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImdldFJ1blN0YXJ0IGlzIHdyb25nLiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGl0ZXIuZ2V0UnVuTGltaXQoKSAhPSBydW5MaW1pdCkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihpdGVyLmdldFJ1bkxpbWl0KCkgKyAiOyAiICsgcnVuTGltaXQpOworICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiZ2V0UnVuTGltaXQgaXMgd3JvbmcuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBzdHlsZSA9IHRleHQuY2hhcmFjdGVyU3R5bGVBdChydW5TdGFydCk7CisKKyAgICAgICAgICAgIHdoaWxlIChpdGVyLmdldEluZGV4KCkgPCBydW5MaW1pdCkgeworICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCByZXNvbHZlZCA9IEZPTlRfTUFQUEVSLmFwcGx5Rm9udChzdHlsZSk7CisgICAgICAgICAgICAgICAgaWYgKCFpdGVyLmdldEF0dHJpYnV0ZXMoKS5lcXVhbHMocmVzb2x2ZWQpKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiU3R5bGUgaXMgd3JvbmcuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGl0ZXIubmV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdCgpIHsKKworICAgICAgICBBdHRyaWJ1dGVNYXAgYm9sZCA9IG5ldyBBdHRyaWJ1dGVNYXAoVGV4dEF0dHJpYnV0ZS5XRUlHSFQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLldFSUdIVF9CT0xEKTsKKyAgICAgICAgTVRleHQgdGV4dCA9IG5ldyBTdHlsZWRUZXh0KCJIZWxsbyB0aGVyZSEiLCBBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUCk7CisgICAgICAgIHRleHQucmVwbGFjZSgyLCAyLCAnVicsIGJvbGQpOworCisgICAgICAgIE1UZXh0SXRlcmF0b3IgaXRlciA9IG5ldyBNVGV4dEl0ZXJhdG9yKHRleHQsIEZPTlRfTUFQUEVSLCAwLCB0ZXh0Lmxlbmd0aCgpKTsKKyAgICAgICAgY29tcGFyZUl0ZXJUb1RleHQoaXRlciwgdGV4dCk7CisKKyAgICAgICAgdGV4dC5yZXBsYWNlKDYsIDgsIG5ldyBTdHlsZWRUZXh0KCJBTExfQk9MRCIsIGJvbGQpLCAwLCA4KTsKKyAgICAgICAgaXRlciA9IG5ldyBNVGV4dEl0ZXJhdG9yKHRleHQsIEZPTlRfTUFQUEVSLCAxLCB0ZXh0Lmxlbmd0aCgpLTMpOworICAgICAgICBjb21wYXJlSXRlclRvVGV4dChpdGVyLCB0ZXh0KTsKKworICAgICAgICBpdGVyID0gbmV3IE1UZXh0SXRlcmF0b3IodGV4dCwgRk9OVF9NQVBQRVIsIDAsIHRleHQubGVuZ3RoKCkpOworICAgICAgICBjb21wYXJlSXRlclRvVGV4dChpdGVyLCB0ZXh0KTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisKKyAgICAgICAgbmV3IFRlc3RNVGV4dEl0ZXJhdG9yKCkudGVzdCgpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlBBU1NFRCIpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L1RleHRPZmZzZXQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvVGV4dE9mZnNldC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjlkMWMzZWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L1RleHRPZmZzZXQuamF2YQpAQCAtMCwwICsxLDE5OCBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogVGV4dE9mZnNldC5qYXZhLHYgJCAkUmV2aXNpb246IDEuMSAkICREYXRlOiAyMDAwLzA0LzIwIDE3OjUwOjAzICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvLyBSZXZpc2lvbjogMDMgMS4xNiByaWNodGV4dC9UZXh0T2Zmc2V0LmphdmEsIHJpY2h0ZXh0LCByaWNodGV4dAorCisvKgorICAgIDkvNS85NiB7amJyfSBhZGRlZCBzZXQgYW5kIGVxdWFscyBtZXRob2RzCisqLworCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdDsKKworLyoqCisgKiBBIFRleHRPZmZzZXQgaW5kaWNhdGVzIGJvdGggYW4gaW50ZWdlciBvZmZzZXQgaW50byB0ZXh0IGFuZCBhIHBsYWNlbWVudAorICogb24gb25lIG9mIHRoZSBjaGFyYWN0ZXJzIGFkamFjZW50IHRvIHRoZSBvZmZzZXQuICBBbiBvZmZzZXQgaXMgYQorICogcG9zaXRpb24gYmV0d2VlbiB0d28gY2hhcmFjdGVyczsgIG9mZnNldCBuCisgKiBpcyBiZXR3ZWVuIGNoYXJhY3RlciBuLTEgYW5kIGNoYXJhY3RlciBuLiAgVGhlIHBsYWNlbWVudCBzcGVjaWZpZXMgd2hldGhlcgorICogaXQgaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBjaGFyYWN0ZXIKKyAqIGFmdGVyIHRoZSBvZmZzZXQKKyAqIChjaGFyYWN0ZXIgbikgb3IgdGhlIGNoYXJhY3RlciBiZWZvcmUgdGhlIG9mZnNldCAoY2hhcmFjdGVyIG4tMSkuCisgKiA8cD4KKyAqIEtub3dpbmcgd2hpY2ggY2hhcmFjdGVyIHRoZSBUZXh0T2Zmc2V0IGlzIGFzc29jaWF0ZWQgd2l0aCBpcyBuZWNlc3NhcnkKKyAqIHdoZW4gZGlzcGxheWluZyBjYXJldHMuICBJbiBiaWRpcmVjdGlvbmFsIHRleHQsIGEgc2luZ2xlIG9mZnNldCBtYXkKKyAqIGhhdmUgdHdvIGRpc3RpbmN0IGNhcmV0cy4gIEFsc28sIGluIG11bHRpbGluZSB0ZXh0LCBhbiBvZmZzZXQgYXQgYSBsaW5lCisgKiBicmVhayBoYXMgYSBwb3NzaWJsZSBjYXJldCBvbiBlYWNoIGxpbmUuCisgKiA8cD4KKyAqIE1vc3QgY2xpZW50cyB3aWxsIG5vdCBiZSBpbnRlcmVzdGVkIGluIHRoZSBwbGFjZW1lbnQsIGFuZCB3aWxsIGp1c3QgdXNlCisgKiB0aGUgb2Zmc2V0LgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgVGV4dE9mZnNldAoreworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgLyoqCisgICAgICogSW5kaWNhdGVzIHRoYXQgdGhlIFRleHRPZmZzZXQgaXMgYXNzb2NpYXRlZCB3aXRoIGNoYXJhY3RlcgorICAgICAqIDxjb2RlPmZPZmZzZXQgLSAxPC9jb2RlPiAtIGllIHRoZSBjaGFyYWN0ZXIgYmVmb3JlIGl0cyBvZmZzZXQuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBib29sZWFuIEJFRk9SRV9PRkZTRVQgPSB0cnVlOworCisgICAgLyoqCisgICAgICogSW5kaWNhdGVzIHRoYXQgdGhlIFRleHRPZmZzZXQgaXMgYXNzb2NpYXRlZCB3aXRoIGNoYXJhY3RlcgorICAgICAqIDxjb2RlPmZPZmZzZXQ8L2NvZGU+IC0gaWUgdGhlIGNoYXJhY3RlciBhZnRlciBpdHMgb2Zmc2V0LgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgYm9vbGVhbiBBRlRFUl9PRkZTRVQgPSBmYWxzZTsKKworICAgIC8qKgorICAgICAqIFRoZSBvZmZzZXQgaW50byB0aGUgdGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGZPZmZzZXQgPSAwOworCisgICAgLyoqCisgICAgICogVGhlIHBsYWNlbWVudCAtIGJlZm9yZSBvciBhZnRlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBmUGxhY2VtZW50ID0gQUZURVJfT0ZGU0VUOworCisgICAgLyoqCisgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IFRleHRPZmZzZXQKKyAgICAqIEBwYXJhbSBvZmZzZXQgdGhlIG9mZnNldCBpbnRvIHRoZSB0ZXh0IHRvIHJlcHJlc2VudC4gIFBsYWNlbWVudCBpcyBpbXBsaWNpdGx5IEFGVEVSX09GRlNFVC4KKyAgICAqLworICAgIHB1YmxpYyBUZXh0T2Zmc2V0KGludCBvZmZzZXQpCisgICAgeworICAgICAgICBpZiAob2Zmc2V0IDwgMCkKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk9mZnNldCBpcyBuZWdhdGl2ZSBpbiBUZXh0T2Zmc2V0IGNvbnN0cnVjdG9yLiIpOworCisgICAgICAgIGZPZmZzZXQgPSBvZmZzZXQ7CisKKyAgICAgICAgZlBsYWNlbWVudCA9IEFGVEVSX09GRlNFVDsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIENvbnN0cnVjdHMgYSBuZXcgVGV4dE9mZnNldCBhdCAwLCB3aXRoIHBsYWNlbWVudCBBRlRFUl9PRkZTRVQuCisgICAgKi8KKyAgICBwdWJsaWMgVGV4dE9mZnNldCgpIHsKKyAgICAgICAgdGhpcygwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIENvbnN0cnVjdHMgYSBuZXcgVGV4dE9mZnNldCB3aXRoIHRoZSBnaXZlbiBvZmZzZXQgYW5kIHBsYWNlbWVudC4KKyAgICAqIEBwYXJhbSBvZmZzZXQgdGhlIG9mZnNldCBpbnRvIHRoZSB0ZXh0CisgICAgKiBAcGFyYW0gcGxhY2VtZW50IGluZGljYXRlcyB0aGUgcG9zaXRpb24gb2YgdGhlIGNhcmV0OyBvbmUgb2YgQkVGT1JFX09GRlNFVCBvciBBRlRFUl9PRkZTRVQKKyAgICAqLworICAgIHB1YmxpYyBUZXh0T2Zmc2V0KGludCBvZmZzZXQsIGJvb2xlYW4gcGxhY2VtZW50KQorICAgIHsKKyAgICAgICAgaWYgKG9mZnNldCA8IDApCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJUZXh0T2Zmc2V0IGNvbnN0cnVjdG9yIG9mZnNldCA8IDA6ICIgKyBvZmZzZXQpOworCisgICAgICAgIGZPZmZzZXQgPSBvZmZzZXQ7CisgICAgICAgIGZQbGFjZW1lbnQgPSBwbGFjZW1lbnQ7CisgICAgfQorCisgICAgLyoqCisgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IFRleHRPZmZzZXQgZnJvbSBhbiBleGlzdGluZyBvbmUuCisgICAgKiBAcGFyYW0gdGhzIHRoZSBUZXh0T2Zmc2V0IHRvIGNvcHkKKyAgICAqLworICAgIHB1YmxpYyBUZXh0T2Zmc2V0KFRleHRPZmZzZXQgcmhzKSB7CisKKyAgICAgICAgdGhpcyhyaHMuZk9mZnNldCwgcmhzLmZQbGFjZW1lbnQpOworICAgIH0KKworICAgIC8qKgorICAgICogU2V0IHRoZSB2YWx1ZSBvZiB0aGUgVGV4dE9mZnNldAorICAgICogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IGludG8gdGhlIHRleHQKKyAgICAqIEBwYXJhbSBwbGFjZW1lbnQgaW5kaWNhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgY2FyZXQ7IG9uZSBvZiBCRUZPUkVfT0ZGU0VUIG9yIEFGVEVSX09GRlNFVAorICAgICovCisgICAgcHVibGljIHZvaWQgc2V0T2Zmc2V0KGludCBvZmZzZXQsIGJvb2xlYW4gcGxhY2VtZW50KQorICAgIHsKKyAgICAgICAgaWYgKG9mZnNldCA8IDApCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJUZXh0T2Zmc2V0IHNldE9mZnNldCBvZmZzZXQgPCAwOiAiICsgb2Zmc2V0KTsKKworICAgICAgICBmT2Zmc2V0ID0gb2Zmc2V0OworICAgICAgICBmUGxhY2VtZW50ID0gcGxhY2VtZW50OworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhcmUgdGhpcyB0byBhbm90aGVyIE9iamVjdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG90aGVyKSB7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiBlcXVhbHMoKFRleHRPZmZzZXQpb3RoZXIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAqIFJldHVybiB0cnVlIGlmIG9mZnNldCBhbmQgcGxhY2VtZW50IGFyZSB0aGUgc2FtZS4KKyAgICAqCisgICAgKiBAcGFyYW0gb3RoZXIgb2Zmc2V0IHRvIGNvbXBhcmUgYWdhaW5zdAorICAgICogQHJldHVybiB0cnVlIGlmIGJvdGggb2Zmc2V0cyBhcmUgZXF1YWwKKyAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhUZXh0T2Zmc2V0IG90aGVyKSB7CisKKyAgICAgICAgcmV0dXJuIGZPZmZzZXQgPT0gb3RoZXIuZk9mZnNldCAmJiBmUGxhY2VtZW50ID09IG90aGVyLmZQbGFjZW1lbnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBoYXNoQ29kZSBmb3IgdGhpcyBvYmplY3QuCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKworICAgICAgICByZXR1cm4gZlBsYWNlbWVudD09QUZURVJfT0ZGU0VUPyBmT2Zmc2V0IDogLWZPZmZzZXQ7CisgICAgfQorCisgICAgLyoqCisgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGlzIG9mZnNldCBpcyAnZ3JlYXRlclRoYW4nIG90aGVyLiAgSWYgdGhlIGZPZmZzZXQgZmllbGRzIGFyZSBlcXVhbCwgdGhlCisgICAgKiBwbGFjZW1lbnQgZmllbGQgaXMgY29uc2lkZXJlZCwgYW5kIEFGVEVSX09GRlNFVCBpcyBjb25zaWRlcmVkICdncmVhdGVyVGhhbicgQkVGT1JFX09GRlNFVC4KKyAgICAqCisgICAgKiBAcGFyYW0gb3RoZXIgdGhlIG90aGVyIG9mZnNldAorICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgb2Zmc2V0IGFwcGVhcnMgYWZ0ZXIgb3RoZXIKKyAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGdyZWF0ZXJUaGFuKFRleHRPZmZzZXQgb3RoZXIpCisgICAgeworICAgICAgICByZXR1cm4gZk9mZnNldCA+IG90aGVyLmZPZmZzZXQgfHwKKyAgICAgICAgICAgIChmT2Zmc2V0ID09IG90aGVyLmZPZmZzZXQgJiYgZlBsYWNlbWVudCA9PSBBRlRFUl9PRkZTRVQgJiYgb3RoZXIuZlBsYWNlbWVudCA9PSBCRUZPUkVfT0ZGU0VUKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFJldHVybiB0cnVlIGlmIHRoaXMgb2Zmc2V0IGlzICdsZXNzVGhhbicgb3RoZXIuICBJZiB0aGUgZk9mZnNldCBmaWVsZHMgYXJlIGVxdWFsLCB0aGUKKyAgICAqIHBsYWNlbWVudCBmaWVsZCBpcyBjb25zaWRlcmVkLCBhbmQgQkVGT1JFX09GRlNFVCBpcyBjb25zaWRlcmVkICdsZXNzVGhhbicgQUZURVJfT0ZGU0VULgorICAgICoKKyAgICAqIEBwYXJhbSBvdGhlciB0aGUgb3RoZXIgb2Zmc2V0CisgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBvZmZzZXQgYXBwZWFycyBiZWZvcmUgb3RoZXIKKyAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGxlc3NUaGFuKFRleHRPZmZzZXQgb3RoZXIpIHsKKworICAgICAgICByZXR1cm4gZk9mZnNldCA8IG90aGVyLmZPZmZzZXQgfHwKKyAgICAgICAgICAgIChmT2Zmc2V0ID09IG90aGVyLmZPZmZzZXQgJiYgZlBsYWNlbWVudCA9PSBCRUZPUkVfT0ZGU0VUICYmIG90aGVyLmZQbGFjZW1lbnQgPT0gQUZURVJfT0ZGU0VUKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIENvcHkgdGhlIHZhbHVlIG9mIGFub3RoZXIgVGV4dE9mZnNldCBpbnRvIHRoaXMKKyAgICAqIEBwYXJhbSBvdGhlciB0aGUgVGV4dE9mZnNldCB0byBjb3B5CisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhc3NpZ24oVGV4dE9mZnNldCBvdGhlcikgeworICAgICAgICBmT2Zmc2V0ID0gb3RoZXIuZk9mZnNldDsKKyAgICAgICAgZlBsYWNlbWVudCA9IG90aGVyLmZQbGFjZW1lbnQ7CisgICAgfQorCisgICAgLyoqCisgICAgKiBSZXR1cm4gYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBvYmplY3QuCisgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworCisgICAgICAgIHJldHVybiAiWyIgKyAoZlBsYWNlbWVudCA/ICJiZWZvcmUgIiA6ICJhZnRlciAiKSArIGZPZmZzZXQgKyAiXSI7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGxheW91dC9Gb250VXRpbHMuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRsYXlvdXQvRm9udFV0aWxzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmIwOWJhYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRsYXlvdXQvRm9udFV0aWxzLmphdmEKQEAgLTAsMCArMSwyOSBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogRm9udFV0aWxzLmphdmEsdiAkICRSZXZpc2lvbjogMS4yICQgJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6NDQgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8vIFJlcXVpcmVzIEphdmEyCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dDsKKworaW1wb3J0IGphdmEuYXd0LkZvbnQ7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBGb250VXRpbHMgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAgICAgICAgICAgICAKKyAgICBwdWJsaWMgc3RhdGljIEZvbnQgZ2V0Rm9udChqYXZhLnV0aWwuTWFwIGF0dHJpYnV0ZXMpIHsKKworICAgICAgICByZXR1cm4gRm9udC5nZXRGb250KGF0dHJpYnV0ZXMpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0bGF5b3V0L0dyYXBoaWNzMkRDb252ZXJzaW9uLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0bGF5b3V0L0dyYXBoaWNzMkRDb252ZXJzaW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWIxYmZiZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRsYXlvdXQvR3JhcGhpY3MyRENvbnZlcnNpb24uamF2YQpAQCAtMCwwICsxLDU2IEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBHcmFwaGljczJEQ29udmVyc2lvbi5qYXZhLHYgJCAkUmV2aXNpb246IDEuMiAkICREYXRlOiAyMDAyLzAyLzE2IDAzOjA2OjQ0ICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvLyBSZXF1aXJlcyBKYXZhMgorcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQ7CisKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczsKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczJEOworaW1wb3J0IGphdmEuYXd0LlBhaW50OworCisvKioKKyAqIFRoaXMgY2xhc3MgYWxsb3dzIEpESyAxLjEgY29kZSB0byB1c2UgYSAiZmFrZSIgR3JhcGhpY3MyRAorICogZm9yIHNvdXJjZS1jb2RlIGNvbXBhdGliaWxpdHkgd2l0aCBKYXZhMiBjb2RlLiAgT24gSmF2YTIgaXQncworICogYSB0cml2aWFsIGNsYXNzLiAgVGhlIEpESyAxLjEgdmVyc2lvbiBvZiB0aGlzIGNsYXNzIGRvZXMgaW50ZXJlc3RpbmcKKyAqIHdvcmsuCisgKi8gCitwdWJsaWMgZmluYWwgY2xhc3MgR3JhcGhpY3MyRENvbnZlcnNpb24geworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAgICAgICAgICAgICAKKyAgICBwdWJsaWMgc3RhdGljIEdyYXBoaWNzMkQgZ2V0R3JhcGhpY3MyRChHcmFwaGljcyBnKSB7CisgICAgICAgIHJldHVybiAoR3JhcGhpY3MyRCkgZzsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIEdyYXBoaWNzIGdldEdyYXBoaWNzKEdyYXBoaWNzMkQgZykgeworICAgICAgICByZXR1cm4gZzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBXaWxsIHJldHVybiBhbiBpbnN0YW5jZSBvZiBQYWludC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIE9iamVjdCBnZXRDb2xvclN0YXRlKEdyYXBoaWNzMkQgZykgeworCisgICAgICAgIHJldHVybiBnLmdldFBhaW50KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU3RhdGUgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBQYWludC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgcmVzdG9yZUNvbG9yU3RhdGUoR3JhcGhpY3MyRCBnLCBPYmplY3Qgc3RhdGUpIHsKKworICAgICAgICBnLnNldFBhaW50KChQYWludCkgc3RhdGUpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0bGF5b3V0L2F0dHJpYnV0ZXMvQXR0cmlidXRlS2V5LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0bGF5b3V0L2F0dHJpYnV0ZXMvQXR0cmlidXRlS2V5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzg4NDU5NAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRsYXlvdXQvYXR0cmlidXRlcy9BdHRyaWJ1dGVLZXkuamF2YQpAQCAtMCwwICsxLDE2NSBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogQXR0cmlidXRlS2V5LmphdmEsdiAkICRSZXZpc2lvbjogMS4yICQgJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6NDUgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXM7CisKK2ltcG9ydCBqYXZhLmlvLlNlcmlhbGl6YWJsZTsKKworLyoqCisgKiBUaGlzIGNsYXNzIHByb3ZpZGVzIGEgY2Fubm9uaWNhbCBtYXBwaW5nIGJldHdlZW4gZmllbGRzIGluIFRleHRBdHRyaWJ1dGUKKyAqIGFuZCBpbnN0YW5jZXMgb2YgaXRzZWxmLiAgSXQgaXMgdXNlZCBieSBBdHRyaWJ1dGVNYXAgdG8gc2VyaWFsaXplCisgKiBhbmQgZGVzZXJpYWxpemUgVGV4dEF0dHJpYnV0ZSB0byBwcmVzZXJ2ZSB1bmlxdWVuZXNzIG9mIFRleHRBdHRyaWJ1dGUKKyAqIGluc3RhbmNlcyAoaWUgc28gdGhhdCBUZXh0QXR0cmlidXRlIGluc3RhbmNlcyByZW1haW4gc2luZ2xldG9ucyksCisgKiBhbmQgdG8gcHJvdmlkZSBjb21wYXRhYmlsaXR5IGJldHdlZW4gMS4xIGFuZCAxLjIgdmVyc2lvbnMgb2YKKyAqIFRleHRBdHRyaWJ1dGUuCisgKiA8cD4KKyAqIEV4YW1wbGUgdXNlIC0gaW5zdGVhZCBvZiBkb2luZyB0aGlzOgorICogPGJsb2NrcXVvdGU+PHByZT4KKyAqICAgICBvdXQud3JpdGVPYmplY3QoYW5BdHRyaWJ1dGUpOworICogPC9wcmU+PC9ibG9ja3F1b3RlPgorICogZG8gdGhpczoKKyAqIDxibG9ja3F1b3RlPjxwcmU+CisgKiAgICAgb3V0LndyaXRlT2JqZWN0KEF0dHJpYnV0ZUtleS5tYXBBdHRyaWJ1dGVUb0tleShhbkF0dHJpYnV0ZSkpOworICogPC9wcmU+PC9ibG9ja3F1b3RlPgorICogU2ltaWxhcmx5LCBpbnN0ZWFkIG9mIHRoaXM6CisgKiA8YmxvY2txdW90ZT48cHJlPgorICogICAgIGFuQXR0cmlidXRlID0gaW4ucmVhZE9iamVjdCgpOworICogPC9wcmU+PC9ibG9ja3F1b3RlPgorICogZG8gdGhpczoKKyAqIDxibG9ja3F1b3RlPjxwcmU+CisgKiAgICAgYW5BdHRyaWJ1dGUgPSBBdHRyaWJ1dGVLZXkubWFwS2V5VG9BdHRyaWJ1dGUoaW4ucmVhZE9iamVjdCgpKTsKKyAqIDwvcHJlPjwvYmxvY2txdW90ZT4KKyAqIDxwPgorICogSWYgYW5BdHRyaWJ1dGUgaXMgbm90IGEga25vd24gVGV4dEF0dHJpYnV0ZSwgdGhlbiA8Y29kZT5tYXBBdHRyaWJ1dGVUb0tleTwvY29kZT4KKyAqIHdpbGwganVzdCByZXR1cm4gaXRzIGFyZ3VtZW50LiAgU2ltaWxhcmx5LCA8Y29kZT5tYXBLZXlUb0F0dHJpYnV0ZTwvY29kZT4gd2lsbAorICogcmV0dXJuIGl0cyBhcmd1bWVudCBpZiB0aGUgYXJndW1lbnQgaXMgbm90IGEga25vd24gQXR0cmlidXRlS2V5LgorICovCisKKy8qcHVibGljKi8gZmluYWwgY2xhc3MgQXR0cmlidXRlS2V5IGltcGxlbWVudHMgU2VyaWFsaXphYmxlIHsKKworLyoKKyAgICBJbiB0aGlzIGltcGxlbWVudGF0aW9uLCB0d28gcGFyYWxsZWwgVmVjdG9ycyBhcmUKKyAgICBtYWludGFpbmVkLiAgVGV4dEF0dHJpYnV0ZShpKSBtYXBzIHRvIEF0dHJpYnV0ZUtleShpKS4KKyAgICBGb3IgY29tcGF0YWJpbGl0eSB3aXRoIGV4aXN0aW5nIGRhdGEsIHRoaXMgbWFwcGluZyBtdXN0CisgICAgYmUgbWFpbnRhaW5lZCBpbiB0aGUgZnV0dXJlISAgU28sIHdoZW4gbmV3IGF0dHJpYnV0ZXMKKyAgICBhcmUgYWRkZWQsIGFkZCB0aGVtIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QuCisqLworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gMzc3MjM3MTI1MzI3NzEwNzI5NEw7CisKKyAgICBwcml2YXRlIHN0YXRpYyBPYmplY3RbXSBmZ1RleHRBdHRyaWJ1dGVzOworICAgIHByaXZhdGUgc3RhdGljIE9iamVjdFtdIGZnQXR0cmlidXRlS2V5czsKKworICAgIHN0YXRpYyB7CisgICAgICAgIGZnVGV4dEF0dHJpYnV0ZXMgPSBuZXcgT2JqZWN0W10geworICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5GT05ULAorICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5GQU1JTFksCisgICAgICAgICAgICBUZXh0QXR0cmlidXRlLldFSUdIVCwKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuUE9TVFVSRSwKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuU0laRSwKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuU1VQRVJTQ1JJUFQsCisgICAgICAgICAgICBUZXh0QXR0cmlidXRlLkZPUkVHUk9VTkQsCisgICAgICAgICAgICBUZXh0QXR0cmlidXRlLkJBQ0tHUk9VTkQsCisgICAgICAgICAgICBUZXh0QXR0cmlidXRlLlVOREVSTElORSwKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuU1RSSUtFVEhST1VHSCwKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuQ0hBUl9SRVBMQUNFTUVOVCwKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuRVhUUkFfTElORV9TUEFDSU5HLAorICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5GSVJTVF9MSU5FX0lOREVOVCwKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuTUlOX0xJTkVfU1BBQ0lORywKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuTElORV9GTFVTSCwKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuTEVBRElOR19NQVJHSU4sCisgICAgICAgICAgICBUZXh0QXR0cmlidXRlLlRSQUlMSU5HX01BUkdJTiwKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuVEFCX1JVTEVSLAorICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5SVU5fRElSRUNUSU9OLAorICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5CSURJX0VNQkVERElORywKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuSlVTVElGSUNBVElPTiwKKyAgICAgICAgfTsKKworICAgICAgICBmaW5hbCBpbnQgYXR0ckNvdW50ID0gZmdUZXh0QXR0cmlidXRlcy5sZW5ndGg7CisgICAgICAgIGZnQXR0cmlidXRlS2V5cyA9IG5ldyBPYmplY3RbYXR0ckNvdW50XTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBhdHRyQ291bnQ7IGkgKz0gMSkgeworICAgICAgICAgICAgZmdBdHRyaWJ1dGVLZXlzW2ldID0gbmV3IEF0dHJpYnV0ZUtleShpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgVGV4dEF0dHJpYnV0ZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBrZXkuCisgICAgICogSWYga2V5IGlzIGFuIGluc3RhbmNlIG9mIEF0dHJpYnV0ZUtleSBpdCB3aWxsIGJlIG1hcHBlZCB0bworICAgICAqIGEgVGV4dEF0dHJpYnV0ZS4gIE90aGVyd2lzZSwgdGhlIGtleSBpcyByZXR1cm5lZC4KKyAgICAgKiBAcGFyYW0ga2V5IHRoZSBrZXkgdG8gbWFwIHRvIGEgVGV4dEF0dHJpYnV0ZSBmaWVsZAorICAgICAqIEByZXR1cm4gdGhlIFRleHRBdHRyaWJ1dGUgZm9yIDxjb2RlPmtleTwvY29kZT4gaWYgPGNvZGU+a2V5PC9jb2RlPgorICAgICAqICAgIGlzIGFuIEF0dHJpYnV0ZUtleTsgb3RoZXJ3aXNlIDxjb2RlPmtleTwvY29kZT4gaXMgcmV0dXJuZWQKKyAgICAgKi8KKyAgICAvKnB1YmxpYyovIHN0YXRpYyBPYmplY3QgbWFwS2V5VG9BdHRyaWJ1dGUoT2JqZWN0IGtleSkgeworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBBdHRyaWJ1dGVLZXkgYUtleSA9IChBdHRyaWJ1dGVLZXkpIGtleTsKKyAgICAgICAgICAgIGlmIChhS2V5LmZJZCA8IGZnVGV4dEF0dHJpYnV0ZXMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZnVGV4dEF0dHJpYnV0ZXNbYUtleS5mSWRdOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGtleTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIGtleTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIElmIGF0dHJpYnV0ZSBpcyBhIGtub3duIFRleHRBdHRyaWJ1dGUsIHJldHVybiBhbiBBdHRyaWJ1dGVLZXkKKyAgICAgKiBmb3IgaXQuICBPdGhlcndpc2UgdGhlIG9iamVjdCBpcyByZXR1cm5lZC4KKyAgICAgKiBAcGFyYW0gYXR0cmlidXRlIHRoZSBhdHRyaWJ1dGUgdG8gbWFwIHRvIGFuIEF0dHJpYnV0ZUtleQorICAgICAqIEByZXR1cm4gYW4gQXR0cmlidXRlS2V5IGZvciA8Y29kZT5hdHRyaWJ1dGU8L2NvZGU+CisgICAgICogICAgIGlmIDxjb2RlPmF0dHJpYnV0ZTwvY29kZT4gaXMgYSBrbm93biBhdHRyaWJ1dGU7IG90aGVyd2lzZQorICAgICAqICAgICA8Y29kZT5hdHRyaWJ1dGU8L2NvZGU+IGlzIHJldHVybmVkCisgICAgICovCisgICAgLypwdWJsaWMqLyBzdGF0aWMgT2JqZWN0IG1hcEF0dHJpYnV0ZVRvS2V5KE9iamVjdCBhdHRyaWJ1dGUpIHsKKworICAgICAgICBmaW5hbCBpbnQgYXR0ckNvdW50ID0gZmdUZXh0QXR0cmlidXRlcy5sZW5ndGg7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpbmRleCA9IDA7IGluZGV4IDwgYXR0ckNvdW50OyBpbmRleCArPSAxKSB7CisgICAgICAgICAgICBpZiAoZmdUZXh0QXR0cmlidXRlc1tpbmRleF0uZXF1YWxzKGF0dHJpYnV0ZSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmdBdHRyaWJ1dGVLZXlzW2luZGV4XTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZTsKKyAgICB9CisKKworICAgIHByaXZhdGUgaW50IGZJZDsKKworICAgIHByaXZhdGUgQXR0cmlidXRlS2V5KGludCBpZCkgeworCisgICAgICAgIGZJZCA9IGlkOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgcmhzKSB7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiAoKEF0dHJpYnV0ZUtleSlyaHMpLmZJZCA9PSBmSWQ7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisKKyAgICAgICAgcmV0dXJuIGZJZDsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGxheW91dC9hdHRyaWJ1dGVzL0F0dHJpYnV0ZU1hcC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGxheW91dC9hdHRyaWJ1dGVzL0F0dHJpYnV0ZU1hcC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBhMWI0Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0bGF5b3V0L2F0dHJpYnV0ZXMvQXR0cmlidXRlTWFwLmphdmEKQEAgLTAsMCArMSw1MjkgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IEF0dHJpYnV0ZU1hcC5qYXZhLHYgJCAkUmV2aXNpb246IDEuMiAkICREYXRlOiAyMDAyLzAyLzE2IDAzOjA2OjQ1ICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvLyBSZXF1aXJlcyBKYXZhMgorcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlczsKKworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uOworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uczsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLlNldDsKKworaW1wb3J0IGphdmEuaW8uRXh0ZXJuYWxpemFibGU7CitpbXBvcnQgamF2YS5pby5PYmplY3RJbnB1dDsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdE91dHB1dDsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworCisKKy8qKgorICogQXR0cmlidXRlTWFwIGlzIGFuIGltbXV0YWJsZSBNYXAuICBBZGRpdGlvbmFsbHksIHRoZXJlIGFyZQorICogc2V2ZXJhbCBtZXRob2RzIGZvciBjb21tb24gb3BlcmF0aW9ucyAodW5pb24sCisgKiByZW1vdmUsIGludGVyc2VjdCk7ICB0aGVzZSBtZXRob2RzIHJldHVybiBuZXcgQXR0cmlidXRlTWFwCisgKiBpbnN0YW5jZXMuCisgKiA8cD4KKyAqIEFsdGhvdWdoIGFueSBub24tbnVsbCBPYmplY3QgY2FuIGJlIGEga2V5IG9yIHZhbHVlIGluIGFuCisgKiBBdHRyaWJ1dGVNYXAsIHR5cGljYWxseSB0aGUga2V5cyBhcmUgZmllbGRzIG9mIFRleHRBdHRyaWJ1dGUuCisgKiBAc2VlIFRleHRBdHRyaWJ1dGUKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIEF0dHJpYnV0ZU1hcCBpbXBsZW1lbnRzIGphdmEudXRpbC5NYXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLk1hcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXh0ZXJuYWxpemFibGUgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ1VSUkVOVF9WRVJTSU9OID0gMTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDk1MTA4MDM7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgZXJyU3RyaW5nID0gIlN0eWxlU2V0cyBhcmUgaW1tdXRhYmxlLiI7CisKKyAgICAvLyBUaGlzIGlzIHBhc3NlZCB0byB0aGUgSGFzaHRhYmxlIGNvbnN0cnVjdG9yIGFzIHRoZQorICAgIC8vIGxvYWQgZmFjdG9yIGFyZ3VtZW50LiAgSXQgaXMgY2hvc2VuIHRvIGF2b2lkIHJlc2l6aW5nCisgICAgLy8gdGhlIEhhc2h0YWJsZSB3aGVuZXZlciBwb3NzaWJsZS4gIEkgdGhpbmsgdGhhdCAxCisgICAgLy8gZG9lcyB0aGlzLgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMT0FEX0ZBQ1RPUiA9IDE7CisKKyAgICBwcml2YXRlIEhhc2h0YWJsZSBzdHlsZVRhYmxlOworICAgIHByaXZhdGUgdHJhbnNpZW50IEF0dHJpYnV0ZVNldCBjYWNoZWRLZXlTZXQgPSBudWxsOworICAgIHByaXZhdGUgdHJhbnNpZW50IENvbGxlY3Rpb24gY2FjaGVkVmFsdWVDb2xsZWN0aW9uID0gbnVsbDsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBTZXQgY2FjaGVkRW50cnlTZXQgPSBudWxsOworCisgICAgLyoqCisgICAgICogQW4gZW1wdHkgQXR0cmlidXRlTWFwLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgQXR0cmlidXRlTWFwIEVNUFRZX0FUVFJJQlVURV9NQVAgPSBuZXcgQXR0cmlidXRlTWFwKCk7CisKKy8vID09PT09PT09PT09PT09CisvLyBDb25zdHJ1Y3RvcnMKKy8vID09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBuZXcsIGVtcHR5IEF0dHJpYnV0ZU1hcC4gIEVNUFRZX1NUWUxFX1NFVCBjYW4gYmUgdXNlZAorICAgICAqIGluIHBsYWNlIG9mIGFuIEF0dHJpYnV0ZU1hcCBwcm9kdWNlZCBieSB0aGlzIGNvbnN0cnVjdG9yLgorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAoKSB7CisKKyAgICAgICAgc3R5bGVUYWJsZSA9IG5ldyBIYXNodGFibGUoMSwgTE9BRF9GQUNUT1IpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhbiBBdHRyaWJ1dGVNYXAgd2l0aCB0aGUgc2FtZSBrZXktdmFsdWUKKyAgICAgKiBlbnRyaWVzIGFzIHRoZSBnaXZlbiBNYXAuCisgICAgICogQHBhcmFtIG1hcCBhIE1hcCB3aG9zZSBrZXktdmFsdWUgZW50cmllcyB3aWxsCisgICAgICogICAgICBiZWNvbWUgdGhlIGVudHJpZXMgZm9yIHRoaXMgQXR0cmlidXRlTWFwLiA8Y29kZT5tYXA8L2NvZGU+CisgICAgICogICAgICBpcyBub3QgbW9kaWZpZWQsIGFuZCBtdXN0IG5vdCBjb250YWluIG51bGwga2V5cyBvciB2YWx1ZXMuCisgICAgICovCisgICAgcHVibGljIEF0dHJpYnV0ZU1hcChqYXZhLnV0aWwuTWFwIG1hcCkgeworCisgICAgICAgIHN0eWxlVGFibGUgPSBuZXcgSGFzaHRhYmxlKG1hcC5zaXplKCksIExPQURfRkFDVE9SKTsKKyAgICAgICAgc3R5bGVUYWJsZS5wdXRBbGwobWFwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYW4gQXR0cmlidXRlTWFwIHdpdGggdGhlIHNhbWUga2V5LXZhbHVlCisgICAgICogZW50cmllcyBhcyB0aGUgZ2l2ZW4gSGFzaHRhYmxlLgorICAgICAqIEBwYXJhbSB0YWJsZSBhIEhhc2h0YWJsZSB3aG9zZSBrZXktdmFsdWUgZW50cmllcyB3aWxsCisgICAgICogICAgICBiZWNvbWUgdGhlIGVudHJpZXMgZm9yIHRoaXMgQXR0cmlidXRlTWFwLiA8Y29kZT50YWJsZTwvY29kZT4KKyAgICAgKiAgICAgIGlzIG5vdCBtb2RpZmllZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlTWFwKEhhc2h0YWJsZSBoYXNodGFibGUpIHsKKworICAgICAgICB0aGlzKChqYXZhLnV0aWwuTWFwKSBoYXNodGFibGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhbiBBdHRyaWJ1dGVNYXAgd2l0aCBhIHNpbmdsZSBlbnRyeSBvZgorICAgICAqIDxjb2RlPnthdHRyaWJ1dGUsIHZhbHVlfTwvY29kZT4uCisgICAgICogQHBhcmFtIGF0dHJpYnV0ZSB0aGUga2V5IGluIHRoaXMgQXR0cmlidXRlTWFwJ3Mgc2luZ2xlIGVudHJ5CisgICAgICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZSBpbiB0aGlzIEF0dHJpYnV0ZU1hcCdzIHNpbmdsZSBlbnRyeQorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAoT2JqZWN0IGtleSwgT2JqZWN0IHZhbHVlKSB7CisKKyAgICAgICAgc3R5bGVUYWJsZSA9IG5ldyBIYXNodGFibGUoMSwgTE9BRF9GQUNUT1IpOworCisgICAgICAgIC8vIGhhc2h0YWJsZSBjaGVja3MgdmFsdWUgZm9yIG51bGwKKyAgICAgICAgc3R5bGVUYWJsZS5wdXQoa2V5LCB2YWx1ZSk7CisgICAgfQorCisgICAgLy8gRm9yIGludGVybmFsIHVzZSBvbmx5LgorICAgIHByaXZhdGUgQXR0cmlidXRlTWFwKEhhc2h0YWJsZSB0YWJsZSwgYm9vbGVhbiBjbG9uZSkgeworCisgICAgICAgIGlmIChjbG9uZSkgeworICAgICAgICAgICAgc3R5bGVUYWJsZSA9IChIYXNodGFibGUpIHRhYmxlLmNsb25lKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0aGlzLnN0eWxlVGFibGUgPSB0YWJsZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlRXh0ZXJuYWwoT2JqZWN0T3V0cHV0IG91dCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKworICAgICAgICBvdXQud3JpdGVJbnQoQ1VSUkVOVF9WRVJTSU9OKTsKKyAgICAgICAgb3V0LndyaXRlSW50KHN0eWxlVGFibGUuc2l6ZSgpKTsKKyAgICAgICAgRW51bWVyYXRpb24gZSA9IHN0eWxlVGFibGUua2V5cygpOworICAgICAgICB3aGlsZSAoZS5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgT2JqZWN0IGtleSA9IGUubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgIG91dC53cml0ZU9iamVjdChBdHRyaWJ1dGVLZXkubWFwQXR0cmlidXRlVG9LZXkoa2V5KSk7CisgICAgICAgICAgICBvdXQud3JpdGVPYmplY3Qoc3R5bGVUYWJsZS5nZXQoa2V5KSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCByZWFkRXh0ZXJuYWwoT2JqZWN0SW5wdXQgaW4pIHRocm93cyBJT0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiB7CisKKyAgICAgICAgaWYgKGluLnJlYWRJbnQoKSAhPSBDVVJSRU5UX1ZFUlNJT04pIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbigiSW52YWxpZCB2ZXJzaW9uIG9mIFN0eWxlQnVmZmVyIik7CisgICAgICAgIH0KKworICAgICAgICBpbnQgY291bnQgPSBpbi5yZWFkSW50KCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IGNvdW50OyBpICs9IDEpIHsKKyAgICAgICAgICAgIE9iamVjdCBrZXkgPSBBdHRyaWJ1dGVLZXkubWFwS2V5VG9BdHRyaWJ1dGUoaW4ucmVhZE9iamVjdCgpKTsKKyAgICAgICAgICAgIE9iamVjdCB2YWx1ZSA9IGluLnJlYWRPYmplY3QoKTsKKyAgICAgICAgICAgIHN0eWxlVGFibGUucHV0KGtleSwgdmFsdWUpOworICAgICAgICB9CisgICAgfQorCisvLyA9PT09PT09PT09PT09PQorLy8gTWFwIGludGVyZmFjZQorLy8gPT09PT09PT09PT09PT0KKworLy8gcXVlcmllcworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIEF0dHJpYnV0ZU1hcC4KKyAgICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgZW50cmllcyBpbiB0aGUgQXR0cmlidXRlTWFwCisgICAgICovCisgICAgcHVibGljIGludCBzaXplKCkgeworCisgICAgICAgIHJldHVybiBzdHlsZVRhYmxlLnNpemUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgbnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIEF0dHJpYnV0ZU1hcAorICAgICAqIGlzIDAuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBudW1iZXIgb2YgZW50cmllcyBpbiB0aGUgQXR0cmlidXRlTWFwCisgICAgICogaXMgMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzRW1wdHkoKSB7CisKKyAgICAgICAgcmV0dXJuIHN0eWxlVGFibGUuaXNFbXB0eSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBrZXkgaXMgaW4gdGhpcyBBdHRyaWJ1dGVNYXAuCisgICAgICogQHBhcmFtIGtleSB0aGUga2V5IHRvIHRlc3QKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgPGNvZGU+a2V5PC9jb2RlPiBpcyBpbiB0aGlzIEF0dHJpYnV0ZU1hcAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zS2V5KE9iamVjdCBrZXkpIHsKKworICAgICAgICByZXR1cm4gc3R5bGVUYWJsZS5jb250YWluc0tleShrZXkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiB2YWx1ZSBpcyBpbiB0aGlzIEF0dHJpYnV0ZU1hcC4KKyAgICAgKiBAcGFyYW0ga2V5IHRoZSB2YWx1ZSB0byB0ZXN0CisgICAgICogQHJldHVybiB0cnVlIGlmIDxjb2RlPnZhbHVlPC9jb2RlPiBpcyBpbiB0aGlzIEF0dHJpYnV0ZU1hcAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zVmFsdWUoT2JqZWN0IHZhbHVlKSB7CisKKyAgICAgICAgcmV0dXJuIHN0eWxlVGFibGUuY29udGFpbnNWYWx1ZSh2YWx1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIGtleS4gIElmIHRoZQorICAgICAqIGtleSBpcyBub3QgaW4gdGhpcyBBdHRyaWJ1dGVNYXAgbnVsbCBpcyByZXR1cm5lZC4KKyAgICAgKiBAcGFyYW0ga2V5IHRoZSBrZXkgdG8gbG9vayB1cAorICAgICAqIEByZXR1cm4gdGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCA8Y29kZT5rZXk8L2NvZGU+LCBvcgorICAgICAqICAgICBudWxsIGlmIDxjb2RlPmtleTwvY29kZT4gaXMgbm90IGluIHRoaXMgQXR0cmlidXRlTWFwCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXQoT2JqZWN0IGtleSkgeworCisgICAgICAgIHJldHVybiBzdHlsZVRhYmxlLmdldChrZXkpOworICAgIH0KKworLy8gbW9kaWZpZXJzIC0gYWxsIHRocm93IGV4Y2VwdGlvbnMKKworICAgIC8qKgorICAgICAqIFRocm93cyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbi4KKyAgICAgKiBAc2VlICNhZGRBdHRyaWJ1dGUKKyAgICAgKiBAdGhyb3dzIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBwdXQoT2JqZWN0IGtleSwgT2JqZWN0IHZhbHVlKSB7CisKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKGVyclN0cmluZyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhyb3dzIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uLgorICAgICAqIEBzZWUgI3JlbW92ZUF0dHJpYnV0ZXMKKyAgICAgKiBAdGhyb3dzIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIE9iamVjdCByZW1vdmUoT2JqZWN0IGtleSkgeworCisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbihlcnJTdHJpbmcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRocm93cyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbi4KKyAgICAgKiBAc2VlICNhZGRBdHRyaWJ1dGVzCisgICAgICogQHRocm93cyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHB1dEFsbChqYXZhLnV0aWwuTWFwIHQpIHsKKworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oZXJyU3RyaW5nKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaHJvd3MgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24uCisgICAgICogQHNlZSAjRU1QVFlfQVRUUklCVVRFX01BUAorICAgICAqIEB0aHJvd3MgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjbGVhcigpIHsKKworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oZXJyU3RyaW5nKTsKKyAgICB9CisKKy8vIHZpZXdzCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gQXR0cmlidXRlU2V0IGNvbnRhaW5pbmcgZXZlcnkga2V5IGluIHRoaXMgQXR0cmlidXRlTWFwLgorICAgICAqIEByZXR1cm4gYW4gQXR0cmlidXRlU2V0IGNvbnRhaW5pbmcgZXZlcnkga2V5IGluIHRoaXMgQXR0cmlidXRlTWFwCisgICAgICovCisgICAgcHVibGljIFNldCBrZXlTZXQoKSB7CisKKyAgICAgICAgcmV0dXJuIGdldEtleVNldCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhbiBBdHRyaWJ1dGVTZXQgY29udGFpbmluZyBldmVyeSBrZXkgaW4gdGhpcyBBdHRyaWJ1dGVNYXAuCisgICAgICogQHJldHVybiBhbiBBdHRyaWJ1dGVTZXQgY29udGFpbmluZyBldmVyeSBrZXkgaW4gdGhpcyBBdHRyaWJ1dGVNYXAKKyAgICAgKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlU2V0IGdldEtleVNldCgpIHsKKworICAgICAgICBBdHRyaWJ1dGVTZXQgcmVzdWx0ID0gY2FjaGVkS2V5U2V0OworCisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgeworICAgICAgICAgICAgcmVzdWx0ID0gQXR0cmlidXRlU2V0LmNyZWF0ZUtleVNldChzdHlsZVRhYmxlKTsKKyAgICAgICAgICAgIGNhY2hlZEtleVNldCA9IHJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgQ29sbGVjdGlvbiBjb250YWluaW5nIGV2ZXJ5IHZhbHVlIGluIHRoaXMgQXR0cmlidXRlTWFwLgorICAgICAqIEByZXR1cm4gYSBDb2xsZWN0aW9uIGNvbnRhaW5pbmcgZXZlcnkgdmFsdWUgaW4gdGhpcyBBdHRyaWJ1dGVNYXAKKyAgICAgKi8KKyAgICBwdWJsaWMgQ29sbGVjdGlvbiB2YWx1ZXMoKSB7CisKKyAgICAgICAgQ29sbGVjdGlvbiByZXN1bHQgPSBjYWNoZWRWYWx1ZUNvbGxlY3Rpb247CisKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSB7CisgICAgICAgICAgICByZXN1bHQgPSBDb2xsZWN0aW9ucy51bm1vZGlmaWFibGVDb2xsZWN0aW9uKHN0eWxlVGFibGUudmFsdWVzKCkpOworICAgICAgICAgICAgY2FjaGVkVmFsdWVDb2xsZWN0aW9uID0gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBTZXQgY29udGFpbmluZyBhbGwgZW50cmllcyBpbiB0aGlzIEF0dHJpYnV0ZU1hcC4KKyAgICAgKi8KKyAgICBwdWJsaWMgU2V0IGVudHJ5U2V0KCkgeworCisgICAgICAgIFNldCByZXN1bHQgPSBjYWNoZWRFbnRyeVNldDsKKworICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IENvbGxlY3Rpb25zLnVubW9kaWZpYWJsZVNldChzdHlsZVRhYmxlLmVudHJ5U2V0KCkpOworICAgICAgICAgICAgY2FjaGVkRW50cnlTZXQgPSByZXN1bHQ7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgcmhzKSB7CisKKyAgICAgICAgaWYgKHJocyA9PSB0aGlzKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChyaHMgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgQXR0cmlidXRlTWFwIHJoc1N0eWxlU2V0ID0gbnVsbDsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmhzU3R5bGVTZXQgPSAoQXR0cmlidXRlTWFwKSByaHM7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBzdHlsZVRhYmxlLmVxdWFscyhyaHNTdHlsZVNldC5zdHlsZVRhYmxlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworCisgICAgICAgIHJldHVybiBzdHlsZVRhYmxlLmhhc2hDb2RlKCk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKworICAgICAgICByZXR1cm4gc3R5bGVUYWJsZS50b1N0cmluZygpOworICAgIH0KKworLy8gPT09PT09PT09PT09PT0KKy8vIE9wZXJhdGlvbnMKKy8vID09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBBdHRyaWJ1dGVNYXAgd2hpY2ggY29udGFpbnMgZW50cmllcyBpbiB0aGlzIEF0dHJpYnV0ZU1hcCwKKyAgICAgKiBhbG9uZyB3aXRoIGFuIGVudHJ5IGZvciA8YXR0cmlidXRlLCB2YWx1ZT4uICBJZiBhdHRyaWJ1dGUKKyAgICAgKiBpcyBhbHJlYWR5IHByZXNlbnQgaW4gdGhpcyBBdHRyaWJ1dGVNYXAgaXRzIHZhbHVlIGJlY29tZXMgdmFsdWUuCisgICAgICovCisgICAgcHVibGljIEF0dHJpYnV0ZU1hcCBhZGRBdHRyaWJ1dGUoT2JqZWN0IGtleSwgT2JqZWN0IHZhbHVlKSB7CisKKyAgICAgICAgLy8gdHJ5IHRvIG9wdGltaXplIGZvciBjYXNlIHdoZXJlIDxrZXksIHZhbHVlPiBpcyBhbHJlYWR5IHRoZXJlPworICAgICAgICBIYXNodGFibGUgbmV3VGFibGUgPSBuZXcgSGFzaHRhYmxlKHN0eWxlVGFibGUuc2l6ZSgpICsgMSwgTE9BRF9GQUNUT1IpOworICAgICAgICBuZXdUYWJsZS5wdXRBbGwoc3R5bGVUYWJsZSk7CisgICAgICAgIG5ld1RhYmxlLnB1dChrZXksIHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIG5ldyBBdHRyaWJ1dGVNYXAobmV3VGFibGUsIGZhbHNlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBBdHRyaWJ1dGVNYXAgd2hpY2ggY29udGFpbnMgZW50cmllcyBpbiB0aGlzIEF0dHJpYnV0ZU1hcAorICAgICAqIGFuZCBpbiByaHMuICBJZiBhbiBhdHRyaWJ1dGUgYXBwZWFycyBpbiBib3RoIFN0eWxlU2V0cyB0aGUKKyAgICAgKiB2YWx1ZSBmcm9tIHJocyBpcyB1c2VkLgorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgYWRkQXR0cmlidXRlcyhBdHRyaWJ1dGVNYXAgcmhzKSB7CisKKyAgICAgICAgaW50IHRoaXNTaXplID0gc2l6ZSgpOworCisgICAgICAgIGlmICh0aGlzU2l6ZSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gcmhzOworICAgICAgICB9CisKKyAgICAgICAgaW50IG90aGVyU2l6ZSA9IHJocy5zaXplKCk7CisKKyAgICAgICAgaWYgKG90aGVyU2l6ZSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorCisgICAgICAgIEhhc2h0YWJsZSBuZXdUYWJsZSA9IG5ldyBIYXNodGFibGUodGhpc1NpemUgKyBvdGhlclNpemUsIExPQURfRkFDVE9SKTsKKworICAgICAgICBuZXdUYWJsZS5wdXRBbGwoc3R5bGVUYWJsZSk7CisgICAgICAgIG5ld1RhYmxlLnB1dEFsbChyaHMpOworCisgICAgICAgIHJldHVybiBuZXcgQXR0cmlidXRlTWFwKG5ld1RhYmxlLCBmYWxzZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgQXR0cmlidXRlTWFwIHdoaWNoIGNvbnRhaW5zIGVudHJpZXMgaW4gdGhpcyBBdHRyaWJ1dGVNYXAKKyAgICAgKiBhbmQgaW4gcmhzLiAgSWYgYW4gYXR0cmlidXRlIGFwcGVhcnMgaW4gYm90aCBTdHlsZVNldHMgdGhlCisgICAgICogdmFsdWUgZnJvbSByaHMgaXMgdXNlZC4KKyAgICAgKiBUaGUgTWFwJ3Mga2V5cyBhbmQgdmFsdWVzIG11c3QgYmUgbm9uLW51bGwuCisgICAgICovCisgICAgcHVibGljIEF0dHJpYnV0ZU1hcCBhZGRBdHRyaWJ1dGVzKGphdmEudXRpbC5NYXAgcmhzKSB7CisKKyAgICAgICAgaWYgKHJocyBpbnN0YW5jZW9mIEF0dHJpYnV0ZU1hcCkgeworICAgICAgICAgICAgcmV0dXJuIGFkZEF0dHJpYnV0ZXMoKEF0dHJpYnV0ZU1hcClyaHMpOworICAgICAgICB9CisKKyAgICAgICAgSGFzaHRhYmxlIG5ld1RhYmxlID0gbmV3IEhhc2h0YWJsZShzaXplKCkgKyByaHMuc2l6ZSgpLCBMT0FEX0ZBQ1RPUik7CisKKyAgICAgICAgbmV3VGFibGUucHV0QWxsKHN0eWxlVGFibGUpOworICAgICAgICBuZXdUYWJsZS5wdXRBbGwocmhzKTsKKworICAgICAgICByZXR1cm4gbmV3IEF0dHJpYnV0ZU1hcChuZXdUYWJsZSwgZmFsc2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIEF0dHJpYnV0ZU1hcCB3aXRoIHRoZSBlbnRyaWVzIGluIHRoaXMgQXR0cmlidXRlTWFwLCBidXQKKyAgICAgKiB3aXRob3V0IGF0dHJpYnV0ZSBhcyBhIGtleS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlTWFwIHJlbW92ZUF0dHJpYnV0ZShPYmplY3QgYXR0cmlidXRlKSB7CisKKyAgICAgICAgaWYgKCFjb250YWluc0tleShhdHRyaWJ1dGUpKSB7CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorCisgICAgICAgIEhhc2h0YWJsZSBuZXdUYWJsZSA9IG5ldyBIYXNodGFibGUoc3R5bGVUYWJsZS5zaXplKCksIExPQURfRkFDVE9SKTsKKyAgICAgICAgbmV3VGFibGUucHV0QWxsKHN0eWxlVGFibGUpOworICAgICAgICBuZXdUYWJsZS5yZW1vdmUoYXR0cmlidXRlKTsKKworICAgICAgICByZXR1cm4gbmV3IEF0dHJpYnV0ZU1hcChuZXdUYWJsZSwgZmFsc2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIEF0dHJpYnV0ZU1hcCB3aXRoIHRoZSBlbnRyaWVzIG9mIHRoaXMgQXR0cmlidXRlTWFwIHdob3NlCisgICAgICogYXR0cmlidXRlcyBhcmUgPGI+bm90PC9iPiBpbiB0aGUgU2V0LgorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgcmVtb3ZlQXR0cmlidXRlcyhBdHRyaWJ1dGVTZXQgYXR0cmlidXRlcykgeworCisgICAgICAgIFNldCBzZXQgPSBhdHRyaWJ1dGVzOworICAgICAgICByZXR1cm4gcmVtb3ZlQXR0cmlidXRlcyhzZXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIEF0dHJpYnV0ZU1hcCB3aXRoIHRoZSBlbnRyaWVzIG9mIHRoaXMgQXR0cmlidXRlTWFwIHdob3NlCisgICAgICogYXR0cmlidXRlcyBhcmUgPGI+bm90PC9iPiBpbiB0aGUgU2V0LgorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgcmVtb3ZlQXR0cmlidXRlcyhTZXQgYXR0cmlidXRlcykgeworCisgICAgICAgIC8vIENyZWF0ZSBuZXdUYWJsZSBvbiBkZW1hbmQ7ICBpZiBudWxsIGF0CisgICAgICAgIC8vIGVuZCBvZiBpdGVyYXRpb24gdGhlbiByZXR1cm4gdGhpcyBzZXQuCisgICAgICAgIC8vIFNob3VsZCB3ZSBpbnRlcnNlY3Qgc3R5bGVUYWJsZS5rZXlTZXQgd2l0aAorICAgICAgICAvLyBhdHRyaWJ1dGVzIGluc3RlYWQ/CisKKyAgICAgICAgSGFzaHRhYmxlIG5ld1RhYmxlID0gbnVsbDsKKyAgICAgICAgSXRlcmF0b3IgYXR0ckl0ZXIgPSBhdHRyaWJ1dGVzLml0ZXJhdG9yKCk7CisgICAgICAgIHdoaWxlIChhdHRySXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIE9iamVjdCBjdXJyZW50ID0gYXR0ckl0ZXIubmV4dCgpOworICAgICAgICAgICAgaWYgKGN1cnJlbnQgIT0gbnVsbCAmJiBzdHlsZVRhYmxlLmNvbnRhaW5zS2V5KGN1cnJlbnQpKSB7CisgICAgICAgICAgICAgICAgaWYgKG5ld1RhYmxlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgbmV3VGFibGUgPSBuZXcgSGFzaHRhYmxlKHN0eWxlVGFibGUuc2l6ZSgpLCBMT0FEX0ZBQ1RPUik7CisgICAgICAgICAgICAgICAgICAgIG5ld1RhYmxlLnB1dEFsbChzdHlsZVRhYmxlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbmV3VGFibGUucmVtb3ZlKGN1cnJlbnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKG5ld1RhYmxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgQXR0cmlidXRlTWFwKG5ld1RhYmxlLCBmYWxzZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIEF0dHJpYnV0ZU1hcCB3aXRoIHRoZSBrZXlzIG9mIHRoaXMgQXR0cmlidXRlTWFwIHdoaWNoCisgICAgICogYXJlIGFsc28gaW4gdGhlIFNldC4gIFRoZSBzZXQgbXVzdCBub3QgY29udGFpbiBudWxsLgorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgaW50ZXJzZWN0V2l0aChBdHRyaWJ1dGVTZXQgYXR0cmlidXRlcykgeworCisgICAgICAgIFNldCBzZXQgPSBhdHRyaWJ1dGVzOworICAgICAgICByZXR1cm4gaW50ZXJzZWN0V2l0aChzZXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIEF0dHJpYnV0ZU1hcCB3aXRoIHRoZSBrZXlzIG9mIHRoaXMgQXR0cmlidXRlTWFwIHdoaWNoCisgICAgICogYXJlIGFsc28gaW4gdGhlIFNldC4gIFRoZSBzZXQgbXVzdCBub3QgY29udGFpbiBudWxsLgorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgaW50ZXJzZWN0V2l0aChTZXQgYXR0cmlidXRlcykgeworCisgICAgICAgIC8vIEZvciBub3csIGZvcmdldCBhYm91dCBvcHRpbWl6aW5nIGZvciB0aGUgY2FzZSB3aGVuCisgICAgICAgIC8vIHRoZSByZXR1cm4gdmFsdWUgaXMgZXF1aXZhbGVudCB0byB0aGlzIHNldC4KKworICAgICAgICBpbnQgYXR0clNpemUgPSBhdHRyaWJ1dGVzLnNpemUoKTsKKyAgICAgICAgaW50IHN0eWxlVGFibGVTaXplID0gc3R5bGVUYWJsZS5zaXplKCk7CisgICAgICAgIGludCBzaXplID0gTWF0aC5taW4oYXR0clNpemUsIHN0eWxlVGFibGVTaXplKTsKKyAgICAgICAgSGFzaHRhYmxlIG5ld1RhYmxlID0gbmV3IEhhc2h0YWJsZShzaXplLCBMT0FEX0ZBQ1RPUik7CisKKyAgICAgICAgaWYgKGF0dHJTaXplIDwgc3R5bGVUYWJsZVNpemUpIHsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGF0dHJJdGVyID0gYXR0cmlidXRlcy5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGF0dHJJdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIE9iamVjdCBjdXJyZW50ID0gYXR0ckl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIGlmIChjdXJyZW50ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgT2JqZWN0IHZhbHVlID0gc3R5bGVUYWJsZS5nZXQoY3VycmVudCk7CisgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdUYWJsZS5wdXQoY3VycmVudCwgdmFsdWUpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgSXRlcmF0b3IgYXR0ckl0ZXIgPSBrZXlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGF0dHJJdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIE9iamVjdCBjdXJyZW50ID0gYXR0ckl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVzLmNvbnRhaW5zKGN1cnJlbnQpKSB7CisgICAgICAgICAgICAgICAgICAgIG5ld1RhYmxlLnB1dChjdXJyZW50LCBzdHlsZVRhYmxlLmdldChjdXJyZW50KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG5ldyBBdHRyaWJ1dGVNYXAobmV3VGFibGUsIGZhbHNlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQdXQgYWxsIGVudHJpZXMgaW4gdGhpcyBBdHRyaWJ1dGVNYXAgaW50byB0aGUgZ2l2ZW4gTWFwLgorICAgICAqIEBwYXJhbSByaHMgdGhlIE1hcCBpbnRvIHdoaWNoIGVudHJpZXMgYXJlIHBsYWNlZAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHB1dEFsbEludG8oamF2YS51dGlsLk1hcCByaHMpIHsKKworICAgICAgICByaHMucHV0QWxsKHRoaXMpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0bGF5b3V0L2F0dHJpYnV0ZXMvQXR0cmlidXRlU2V0LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0bGF5b3V0L2F0dHJpYnV0ZXMvQXR0cmlidXRlU2V0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzc3NzFjYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRsYXlvdXQvYXR0cmlidXRlcy9BdHRyaWJ1dGVTZXQuamF2YQpAQCAtMCwwICsxLDM0NSBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogQXR0cmlidXRlU2V0LmphdmEsdiAkICRSZXZpc2lvbjogMS4yICQgJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6NDUgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8vIFJlcXVpcmVzIEphdmEyCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzOworCitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb247CisKKy8qKgorICogQW4gQXR0cmlidXRlU2V0IGlzIGFuIGltbXV0YWJsZSBjb2xsZWN0aW9uIG9mIHVuaXF1ZSBPYmplY3RzLgorICogSXQgaGFzIHNldmVyYWwgb3BlcmF0aW9ucworICogd2hpY2ggcmV0dXJuIG5ldyBBdHRyaWJ1dGVTZXQgaW5zdGFuY2VzLgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgQXR0cmlidXRlU2V0IGltcGxlbWVudHMgU2V0IHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICAvKioKKyAgICAgKiBBbiBBdHRyaWJ1dGVTZXQgd2l0aCBubyBtZW1iZXJzLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgQXR0cmlidXRlU2V0IEVNUFRZX1NFVCA9IG5ldyBBdHRyaWJ1dGVTZXQoKTsKKworICAgIHByaXZhdGUgSGFzaHRhYmxlIGVsZW1lbnRzOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGVyclN0cmluZyA9ICJBdHRyaWJ1dGVTZXQgaXMgaW1tdXRhYmxlLiI7CisKKyAgICBwcml2YXRlIEF0dHJpYnV0ZVNldChIYXNodGFibGUgZWxlbWVudHMpIHsKKworICAgICAgICB0aGlzLmVsZW1lbnRzID0gZWxlbWVudHM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFja2FnZSBvbmx5LiAgRm9yIEF0dHJpYnV0ZU1hcCB1c2UuCisgICAgICovCisgICAgc3RhdGljIEF0dHJpYnV0ZVNldCBjcmVhdGVLZXlTZXQoSGFzaHRhYmxlIGhhc2h0YWJsZSkgeworCisgICAgICAgIEhhc2h0YWJsZSBuZXdFbGVtZW50cyA9IG5ldyBIYXNodGFibGUoKTsKKworICAgICAgICBFbnVtZXJhdGlvbiBlID0gaGFzaHRhYmxlLmtleXMoKTsKKyAgICAgICAgd2hpbGUgKGUuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIE9iamVjdCBuZXh0ID0gZS5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgbmV3RWxlbWVudHMucHV0KG5leHQsIG5leHQpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG5ldyBBdHRyaWJ1dGVTZXQobmV3RWxlbWVudHMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIG5ldywgZW1wdHkgQXR0cmlidXRlU2V0LiAgVGhlIHNldCBpcyBzZW1hbnRpY2FsbHkKKyAgICAgKiBlcXVpdmFsZW50IHRvIEVNUFRZX1NFVC4KKyAgICAgKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlU2V0KCkgeworCisgICAgICAgIGVsZW1lbnRzID0gbmV3IEhhc2h0YWJsZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIG5ldyBBdHRyaWJ1dGVTZXQgd2l0aCB0aGUgc2luZ2xlIGVsZW1lbnQgZWxlbS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlU2V0KE9iamVjdCBlbGVtKSB7CisKKyAgICAgICAgZWxlbWVudHMgPSBuZXcgSGFzaHRhYmxlKDEsIDEpOworICAgICAgICBlbGVtZW50cy5wdXQoZWxlbSwgZWxlbSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgbmV3IEF0dHJpYnV0ZVNldCBjb250YWluaW5nIHRoZSBpdGVtcyBpbiB0aGUgYXJyYXkgZWxlbXMuCisgICAgICovCisgICAgcHVibGljIEF0dHJpYnV0ZVNldChPYmplY3RbXSBlbGVtcykgeworCisgICAgICAgIGVsZW1lbnRzID0gbmV3IEhhc2h0YWJsZShlbGVtcy5sZW5ndGgsIDEpOworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBlbGVtcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgT2JqZWN0IG5leHQgPSBlbGVtc1tpXTsKKyAgICAgICAgICAgIGVsZW1lbnRzLnB1dChuZXh0LCBuZXh0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhpcyBzZXQgaXMgMC4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGlzIHNldCBpcyAwCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNFbXB0eSgpIHsKKworICAgICAgICByZXR1cm4gZWxlbWVudHMuaXNFbXB0eSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoaXMgc2V0LgorICAgICAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGlzIHNldAorICAgICAqLworICAgIHB1YmxpYyBpbnQgc2l6ZSgpIHsKKworICAgICAgICByZXR1cm4gZWxlbWVudHMuc2l6ZSgpOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgcmhzKSB7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiBlcXVhbHMoKEF0dHJpYnV0ZVNldCkgcmhzKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKEF0dHJpYnV0ZVNldCByaHMpIHsKKworICAgICAgICBpZiAocmhzID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBlbGVtZW50cy5lcXVhbHMocmhzLmVsZW1lbnRzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGlzIHNldCBjb250YWlucyB0aGUgZ2l2ZW4gT2JqZWN0CisgICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgc2V0IGNvbnRhaW5zIDxjb2RlPm88L2NvZGU+CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gY29udGFpbnMoT2JqZWN0IG8pIHsKKworICAgICAgICBPYmplY3QgdmFsdWUgPSBlbGVtZW50cy5nZXQobyk7CisgICAgICAgIHJldHVybiB2YWx1ZSAhPSBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoaXMgc2V0IGNvbnRhaW5zIGFsbCBlbGVtZW50cyBpbiB0aGUgZ2l2ZW4KKyAgICAgKiBDb2xsZWN0aW9uCisgICAgICogQHBhcmFtIGNvbGwgdGhlIGNvbGxlY3Rpb24gdG8gY29tcGFyZSB3aXRoCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgc2V0IGNvbnRhaW5zIGFsbCBlbGVtZW50cyBpbiB0aGUgZ2l2ZW4KKyAgICAgKiBDb2xsZWN0aW9uCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gY29udGFpbnNBbGwoQ29sbGVjdGlvbiBjb2xsKSB7CisKKyAgICAgICAgcmV0dXJuIGVsZW1lbnRzLmtleVNldCgpLmNvbnRhaW5zQWxsKGNvbGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhbiBFbnVtZXJhdGlvbiBvZiB0aGUgZWxlbWVudHMgaW4gdGhpcyBzZXQuCisgICAgICogQHJldHVybiBhbiBFbnVtZXJhdGlvbiBvZiB0aGUgZWxlbWVudHMgaW4gdGhpcyBzZXQKKyAgICAgKi8KKyAgICBwdWJsaWMgRW51bWVyYXRpb24gZWxlbWVudHMoKSB7CisKKyAgICAgICAgcmV0dXJuIGVsZW1lbnRzLmtleXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gSXRlcmF0b3Igd2l0aCB0aGUgZWxlbWVudHMgaW4gdGhpcyBzZXQuCisgICAgICogQHJldHVybiBhbiBJdGVyYXRvciB3aXRoIHRoZSBlbGVtZW50cyBpbiB0aGlzIHNldC4KKyAgICAgKiBUaGUgSXRlcmF0b3IgY2Fubm90IGJlIHVzZWQgdG8gbW9kaWZ5IHRoaXMgQXR0cmlidXRlU2V0LgorICAgICAqLworICAgIHB1YmxpYyBJdGVyYXRvciBpdGVyYXRvcigpIHsKKworICAgICAgICByZXR1cm4gbmV3IEVudW1lcmF0aW9uSXRlcmF0b3IoZWxlbWVudHMua2V5cygpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGaWxsIGluIHRoZSBnaXZlbiBhcnJheSB3aXRoIHRoZSBlbGVtZW50cyBpbiB0aGlzIHNldC4KKyAgICAgKiBAcGFyYW0gc3RvcmFnZSBhbiBhcnJheSB0byBmaWxsIHdpdGggdGhpcyBzZXQncyBlbGVtZW50cy4KKyAgICAgKiBUaGUgYXJyYXkgY2Fubm90IGJlIG51bGwuCisgICAgICogQHJldHVybiB0aGUgPHR0PnN0b3JhZ2U8L3R0PiBhcnJheS4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0W10gdG9BcnJheShPYmplY3RbXSBzdG9yYWdlKSB7CisKKyAgICAgICAgRW51bWVyYXRpb24ga2V5cyA9IGVsZW1lbnRzLmtleXMoKTsKKyAgICAgICAgaW50IG49MDsKKyAgICAgICAgd2hpbGUgKGtleXMuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIHN0b3JhZ2VbbisrXSA9IGtleXMubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc3RvcmFnZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gYXJyYXkgd2l0aCB0aGUgZWxlbWVudHMgaW4gdGhpcyBzZXQuCisgICAgICogQHJldHVybiBhbiBhcnJheSB3aXRoIHRoZSBlbGVtZW50cyBpbiB0aGlzIHNldAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3RbXSB0b0FycmF5KCkgeworCisgICAgICAgIHJldHVybiB0b0FycmF5KG5ldyBPYmplY3Rbc2l6ZSgpXSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRocm93cyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbi4KKyAgICAgKiBAc2VlICNhZGRFbGVtZW50CisgICAgICogQHRocm93cyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGFkZChPYmplY3Qgbyl7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbihlcnJTdHJpbmcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRocm93cyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbi4KKyAgICAgKiBAdGhyb3dzIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gcmVtb3ZlKE9iamVjdCBvKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbihlcnJTdHJpbmcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRocm93cyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbi4KKyAgICAgKiBAc2VlICN1bmlvbldpdGgKKyAgICAgKiBAdGhyb3dzIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gYWRkQWxsKENvbGxlY3Rpb24gY29sbCkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oZXJyU3RyaW5nKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaHJvd3MgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24uCisgICAgICogQHNlZSAjc3VidHJhY3QKKyAgICAgKiBAdGhyb3dzIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gcmVtb3ZlQWxsKENvbGxlY3Rpb24gY29sbCkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oZXJyU3RyaW5nKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaHJvd3MgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24uCisgICAgICogQHNlZSAjaW50ZXJzZWN0V2l0aAorICAgICAqIEB0aHJvd3MgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiByZXRhaW5BbGwoQ29sbGVjdGlvbiBjb2xsKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbihlcnJTdHJpbmcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRocm93cyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbi4KKyAgICAgKiBAc2VlICNFTVBUWV9TRVQKKyAgICAgKiBAdGhyb3dzIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIHZvaWQgY2xlYXIoKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbihlcnJTdHJpbmcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhbiBBdHRyaWJ1dGVTZXQgY29udGFpbmluZyB0aGUgZWxlbWVudHMgb2YgdGhpcyBzZXQKKyAgICAgKiBhbmQgdGhlIGdpdmVuIGVsZW1lbnQKKyAgICAgKiBAcGFyYW0gZWxlbWVudCB0aGUgZWxlbWVudCB0byBhZGQKKyAgICAgKiBAcmV0dXJuIGFuIEF0dHJpYnV0ZVNldCBsaWtlIHRoaXMgb25lLCB3aXRoIDxjb2RlPmVsZW1lbnQ8L2NvZGU+CisgICAgICogYWRkZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlU2V0IGFkZEVsZW1lbnQoT2JqZWN0IGVsZW1lbnQpIHsKKworICAgICAgICBIYXNodGFibGUgbmV3RWxlbWVudHMgPSAoSGFzaHRhYmxlKSBlbGVtZW50cy5jbG9uZSgpOworICAgICAgICBuZXdFbGVtZW50cy5wdXQoZWxlbWVudCwgZWxlbWVudCk7CisgICAgICAgIHJldHVybiBuZXcgQXR0cmlidXRlU2V0KG5ld0VsZW1lbnRzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gQXR0cmlidXRlU2V0IHdoaWNoIGlzIHRoZSB1bmlvbiBvZgorICAgICAqIHRoaXMgc2V0IHdpdGggdGhlIGdpdmVuIHNldC4KKyAgICAgKiBAcGFyYW0gcyB0aGUgc2V0IHRvIHVuaW9uIHdpdGgKKyAgICAgKiBAcmV0dXJuIGFuIEF0dHJpYnV0ZVNldCBvZiB0aGUgZWxlbWVudHMgaW4gdGhpcyBzZXQgb3IKKyAgICAgKiBpbiA8Y29kZT5zPC9jb2RlPgorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVTZXQgdW5pb25XaXRoKEF0dHJpYnV0ZVNldCBzKSB7CisKKyAgICAgICAgSGFzaHRhYmxlIG5ld0VsZW1lbnRzID0gKEhhc2h0YWJsZSkgZWxlbWVudHMuY2xvbmUoKTsKKworICAgICAgICBJdGVyYXRvciBpdGVyID0gcy5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIE9iamVjdCBuZXh0ID0gaXRlci5uZXh0KCk7CisgICAgICAgICAgICBuZXdFbGVtZW50cy5wdXQobmV4dCwgbmV4dCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbmV3IEF0dHJpYnV0ZVNldChuZXdFbGVtZW50cyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGFuIEF0dHJpYnV0ZVNldCB3aGljaCBpcyB0aGUgaW50ZXJzZWN0aW9uIG9mCisgICAgICogdGhpcyBzZXQgd2l0aCB0aGUgZ2l2ZW4gc2V0LgorICAgICAqIEBwYXJhbSBzIHRoZSBzZXQgdG8gaW50ZXJzZWN0IHdpdGgKKyAgICAgKiBAcmV0dXJuIGFuIEF0dHJpYnV0ZVNldCBvZiB0aGUgZWxlbWVudHMgaW4gdGhpcyBzZXQgd2hpY2gKKyAgICAgKiBhcmUgaW4gPGNvZGU+czwvY29kZT4KKyAgICAgKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlU2V0IGludGVyc2VjdFdpdGgoQXR0cmlidXRlU2V0IHMpIHsKKworICAgICAgICBIYXNodGFibGUgbmV3RWxlbWVudHMgPSBuZXcgSGFzaHRhYmxlKCk7CisKKyAgICAgICAgSXRlcmF0b3IgaXRlciA9IHMuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBPYmplY3QgbmV4dCA9IGl0ZXIubmV4dCgpOworICAgICAgICAgICAgaWYgKGVsZW1lbnRzLmdldChuZXh0KSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgbmV3RWxlbWVudHMucHV0KG5leHQsIG5leHQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG5ldyBBdHRyaWJ1dGVTZXQobmV3RWxlbWVudHMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhbiBBdHRyaWJ1dGVTZXQgd2l0aCB0aGUgZWxlbWVudHMgaW4gdGhpcyBzZXQgd2hpY2gKKyAgICAgKiBhcmUgbm90IGluIHRoZSBnaXZlbiBzZXQuCisgICAgICogQHBhcmFtIHMgdGhlIHNldCBvZiBlbGVtZW50cyB0byBleGNsdWRlCisgICAgICogQHJldHVybiBhbiBBdHRyaWJ1dGVTZXQgb2YgdGhlIGVsZW1lbnRzIGluIHRoaXMgc2V0IHdoaWNoCisgICAgICogYXJlIG5vdCBpbiA8Y29kZT5zPC9jb2RlPgorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVTZXQgc3VidHJhY3QoQXR0cmlidXRlU2V0IHMpIHsKKworICAgICAgICBIYXNodGFibGUgbmV3RWxlbWVudHMgPSAoSGFzaHRhYmxlKSBlbGVtZW50cy5jbG9uZSgpOworCisgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSBzLml0ZXJhdG9yKCk7CisgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgbmV3RWxlbWVudHMucmVtb3ZlKGl0ZXIubmV4dCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBuZXcgQXR0cmlidXRlU2V0KG5ld0VsZW1lbnRzKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBFbnVtZXJhdGlvbkl0ZXJhdG9yIGltcGxlbWVudHMgSXRlcmF0b3IgeworCisgICAgICAgIHByaXZhdGUgRW51bWVyYXRpb24gZTsKKworICAgICAgICBFbnVtZXJhdGlvbkl0ZXJhdG9yKEVudW1lcmF0aW9uIGUpIHsKKyAgICAgICAgICAgIHRoaXMuZSA9IGU7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgYm9vbGVhbiBoYXNOZXh0KCkgeworICAgICAgICAgICAgcmV0dXJuIGUuaGFzTW9yZUVsZW1lbnRzKCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgT2JqZWN0IG5leHQoKSB7CisgICAgICAgICAgICByZXR1cm4gZS5uZXh0RWxlbWVudCgpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgcmVtb3ZlKCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKGVyclN0cmluZyk7CisgICAgICAgIH0KKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGxheW91dC9hdHRyaWJ1dGVzL01hcC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGxheW91dC9hdHRyaWJ1dGVzL01hcC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFhNWQyYTQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0bGF5b3V0L2F0dHJpYnV0ZXMvTWFwLmphdmEKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogTWFwLmphdmEsdiAkICRSZXZpc2lvbjogMS4yICQgJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6NDYgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8vIFJlcXVpcmVzIEphdmEyCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzOworCisvKioKKyAqIEEgTWFwIGlzIGEgY29sbGVjdGlvbiBvZiBrZXktdmFsdWUgcGFpcnMgKG9yIGVudHJpZXMpLCB3aGVyZSBlYWNoCisgKiBrZXkgaW4gdGhlIE1hcCBpcyB1bmlxdWUuICBUaGlzIGludGVyZmFjZSBpcyBhIHN1YnNldCBvZiB0aGUKKyAqIEpESyAxLjIgTWFwIGludGVyZmFjZS4gIEl0IGlzIHVzZWQgYnkgSkRLIDEuMS1jb21wYXRpYmxlIGNvZGUuCisgKi8KK3B1YmxpYyBpbnRlcmZhY2UgTWFwIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBudW1iZXIgb2YgZW50cmllcyBpbiB0aGlzIE1hcC4KKyAgICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgZW50cmllcyBpbiB0aGlzIE1hcAorICAgICAqLworICAgIHB1YmxpYyBpbnQgc2l6ZSgpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhpcyBNYXAgaGFzIG5vIGVudHJpZXMuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgTWFwIGhhcyBubyBlbnRyaWVzCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNFbXB0eSgpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgZ2l2ZW4ga2V5LgorICAgICAqIEByZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBnaXZlbiBrZXkuICBJZiB0aGUga2V5IGRvZXMgbm90IGhhdmUKKyAgICAgKiBhIHZhbHVlIGluIHRoaXMgTWFwLCBudWxsIGlzIHJldHVybmVkLgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgZ2V0KE9iamVjdCBrZXkpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhpcyBNYXAgY29udGFpbnMgdGhlIGdpdmVuIGtleS4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBNYXAgY29udGFpbnMgdGhlIGdpdmVuIGtleQorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zS2V5KE9iamVjdCBrZXkpOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRsYXlvdXQvYXR0cmlidXRlcy9UZXh0QXR0cmlidXRlLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0bGF5b3V0L2F0dHJpYnV0ZXMvVGV4dEF0dHJpYnV0ZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQ2ZDcyNmUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0bGF5b3V0L2F0dHJpYnV0ZXMvVGV4dEF0dHJpYnV0ZS5qYXZhCkBAIC0wLDAgKzEsMjQ4IEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBUZXh0QXR0cmlidXRlLmphdmEsdiAkICRSZXZpc2lvbjogMS4zICQgJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6NDYgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8vIFJlcXVpcmVzIEphdmEyCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzOworCitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKK2ltcG9ydCBqYXZhLnRleHQuQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yLkF0dHJpYnV0ZTsKK2ltcG9ydCBqYXZhLmlvLkludmFsaWRPYmplY3RFeGNlcHRpb247CisKKy8qKgorICogVGhpcyBjbGFzcyBjb250YWlucyBhIG51bWJlciBvZiBrZXlzIChvciBhdHRyaWJ1dGVzKSBmb3Igc3BlY2lmeWluZyB0ZXh0IHN0eWxlcworICogaW4gYSBNYXAuICBBIHRleHQgc3R5bGUgaXMgYSBjb2xsZWN0aW9uIG9mIGtleS12YWx1ZSBwYWlycywgd2hlcmUKKyAqIHRoZSBrZXkgcmVwcmVzZW50cyBhIGNlcnRhaW4gY2hhcmFjdGVyaXN0aWMgKHN1Y2ggYXMgc2l6ZSkgYW5kCisgKiB0aGUgdmFsdWUgdGVsbHMgaG93IHRoYXQgY2hhcmFjdGVyaXN0aWMgaXMgcmVhbGl6ZWQgKGllIHdoYXQgdGhlCisgKiBzaXplIGlzKS4KKyAqIDxwPgorICogQWxsIG9mIHRoZSBhdHRyaWJ1dGVzIGluIFRleHRBdHRyaWJ1dGUgc3BlY2lmeSBhIGNsYXNzIGZvciB0aGVpciB2YWx1ZS4KKyAqIE1hcCBkb2VzIG5vdCBlbmZvcmNlIHRoZXNlIGNsYXNzIHNwZWNpZmljYXRpb25zOyAgaG93ZXZlciwgdGV4dCByZW5kZXJpbmcgY29kZQorICogd2lsbCB0ZW5kIHRvIGZhaWwgd2l0aCBhIENsYXNzQ2FzdEV4Y2VwdGlvbiBpZiBhIGtleSdzIHZhbHVlCisgKiBoYXMgYW4gdW5leHBlY3RlZCBjbGFzcy4KKyAqIDxwPgorICogU29tZSBhdHRyaWJ1dGVzIGFyZSBtZWFuaW5nZnVsIGZvciBlbnRpcmUgcGFyYWdyYXBocywgbm90IGluZGl2aWR1YWwKKyAqIGNoYXJhY3RlcnMuICBUaGVzZSBhdHRyaWJ1dGVzIGFyZSBkb2N1bWVudGVkIGFzIGFwcGx5aW5nIHRvIHBhcmFncmFwaHMuCisgKiBBbGwgb3RoZXIgYXR0cmlidXRlcyBhcHBseSB0byBjaGFyYWN0ZXJzLgorICogPHA+CisgKiBNYW55IG9mIHRoZSBmaWVsZCBuYW1lcyBhbmQgdmFsdWVzIGluIHRoaXMgY2xhc3MKKyAqIGFyZSB0YWtlbiBmcm9tIHRoZSBKREsgMS4yCisgKiA8Y29kZT5qYXZhLmF3dC5mb250LlRleHRBdHRyaWJ1dGUgY2xhc3M8L2NvZGU+LgorICogQHNlZSBNYXAKKyAqLworcHVibGljIGNsYXNzIFRleHRBdHRyaWJ1dGUgZXh0ZW5kcyBBdHRyaWJ1dGUgeworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgSGFzaHRhYmxlIGluc3RhbmNlTWFwID0gbmV3IEhhc2h0YWJsZSg5KTsKKworICAgIHByb3RlY3RlZCBUZXh0QXR0cmlidXRlKFN0cmluZyBuYW1lKSB7CisgICAgICAgIHN1cGVyKG5hbWUpOworICAgICAgICBpZiAodGhpcy5nZXRDbGFzcygpID09IFRleHRBdHRyaWJ1dGUuY2xhc3MpIHsKKyAgICAgICAgICAgIGluc3RhbmNlTWFwLnB1dChuYW1lLCB0aGlzKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByb3RlY3RlZCBPYmplY3QgcmVhZFJlc29sdmUoKSB0aHJvd3MgSW52YWxpZE9iamVjdEV4Y2VwdGlvbiB7CisgICAgICAgIGlmICh0aGlzLmdldENsYXNzKCkgIT0gVGV4dEF0dHJpYnV0ZS5jbGFzcykgeworICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPYmplY3RFeGNlcHRpb24oInN1YmNsYXNzIGRpZG4ndCBjb3JyZWN0bHkgaW1wbGVtZW50IHJlYWRSZXNvbHZlIik7CisgICAgICAgIH0KKworICAgICAgICBUZXh0QXR0cmlidXRlIGluc3RhbmNlID0gKFRleHRBdHRyaWJ1dGUpIGluc3RhbmNlTWFwLmdldChnZXROYW1lKCkpOworICAgICAgICBpZiAoaW5zdGFuY2UgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPYmplY3RFeGNlcHRpb24oInVua25vd24gYXR0cmlidXRlIG5hbWUiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IEZPTlQgPSBqYXZhLmF3dC5mb250LlRleHRBdHRyaWJ1dGUuRk9OVDsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IEZBTUlMWSA9IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZS5GQU1JTFk7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE9iamVjdCBXRUlHSFQgPSBqYXZhLmF3dC5mb250LlRleHRBdHRyaWJ1dGUuV0VJR0hUOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRmxvYXQgV0VJR0hUX0JPTEQgPSBqYXZhLmF3dC5mb250LlRleHRBdHRyaWJ1dGUuV0VJR0hUX0JPTEQ7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE9iamVjdCBQT1NUVVJFID0gamF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlLlBPU1RVUkU7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBGbG9hdCBQT1NUVVJFX09CTElRVUUgPSBqYXZhLmF3dC5mb250LlRleHRBdHRyaWJ1dGUuUE9TVFVSRV9PQkxJUVVFOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgU0laRSA9IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZS5TSVpFOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgU1VQRVJTQ1JJUFQgPSBqYXZhLmF3dC5mb250LlRleHRBdHRyaWJ1dGUuU1VQRVJTQ1JJUFQ7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBJbnRlZ2VyIFNVUEVSU0NSSVBUX1NVUEVSID0gamF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlLlNVUEVSU0NSSVBUX1NVUEVSOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgSW50ZWdlciBTVVBFUlNDUklQVF9TVUIgPSBqYXZhLmF3dC5mb250LlRleHRBdHRyaWJ1dGUuU1VQRVJTQ1JJUFRfU1VCOworCisgICAgLyoqCisgICAgICogQXR0cmlidXRlIGtleSBmb3IgdGhlIGZvcmVncm91bmQgYW5kIGJhY2tncm91bmQgY29sb3IgYWRvcm5tZW50LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IEZPUkVHUk9VTkQgPSBqYXZhLmF3dC5mb250LlRleHRBdHRyaWJ1dGUuRk9SRUdST1VORDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE9iamVjdCBCQUNLR1JPVU5EID0gamF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlLkJBQ0tHUk9VTkQ7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE9iamVjdCBVTkRFUkxJTkUgPSBqYXZhLmF3dC5mb250LlRleHRBdHRyaWJ1dGUuVU5ERVJMSU5FOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgSW50ZWdlciBVTkRFUkxJTkVfT04gPSBqYXZhLmF3dC5mb250LlRleHRBdHRyaWJ1dGUuVU5ERVJMSU5FX09OOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgU1RSSUtFVEhST1VHSCA9IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZS5TVFJJS0VUSFJPVUdIOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgQm9vbGVhbiBTVFJJS0VUSFJPVUdIX09OID0gamF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlLlNUUklLRVRIUk9VR0hfT047CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE9iamVjdCBPRkZTRVQgPSBuZXcgVGV4dEF0dHJpYnV0ZSgib2Zmc2V0Iik7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE9iamVjdCBDSEFSX1JFUExBQ0VNRU5UID0gamF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlLkNIQVJfUkVQTEFDRU1FTlQ7CisvLyBQYXJhZ3JhcGggU3R5bGVzCisKKy8vIHZhbHVlcyBhcmUgRmxvYXRzOgorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IEVYVFJBX0xJTkVfU1BBQ0lORyA9IG5ldyBUZXh0QXR0cmlidXRlKCJleHRyYV9saW5lX3NwYWNpbmciKTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE9iamVjdCBFWFRSQV9GSVJTVF9MSU5FX1NQQUNJTkcgPSBuZXcgVGV4dEF0dHJpYnV0ZSgiZXh0cmFfZmlyc3RfbGluZV9zcGFjaW5nIik7CisKKyAgICAvKioKKyAgICAgKiBBbW91bnQgYmV5b25kIGxlYWRpbmcgbWFyZ2luIHRvIGluZGVudCB0aGUgZmlyc3QgbGluZSBvZiBhIHBhcmFncmFwaC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE9iamVjdCBGSVJTVF9MSU5FX0lOREVOVCA9IG5ldyBUZXh0QXR0cmlidXRlKCJmaXJzdF9saW5lX2luZGVudCIpOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgTUlOX0xJTkVfU1BBQ0lORyA9IG5ldyBUZXh0QXR0cmlidXRlKCJtaW5fbGluZV9zcGFjaW5nIik7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgTUlOX0ZJUlNUX0xJTkVfU1BBQ0lORyA9IG5ldyBUZXh0QXR0cmlidXRlKCJtaW5fZmlyc3RfbGluZV9zcGFjaW5nIik7CisKKyAgICAvKioKKyAgICAgKiBGbHVzaCBsaW5lcyBsZWZ0LCByaWdodCwgb3IgY2VudGVyLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IExJTkVfRkxVU0ggPSBuZXcgVGV4dEF0dHJpYnV0ZSgibGluZV9mbHVzaCIpOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBJbnRlZ2VyIEZMVVNIX0xFQURJTkcgPSBuZXcgSW50ZWdlcigwKTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEludGVnZXIgRkxVU0hfQ0VOVEVSID0gbmV3IEludGVnZXIoMSk7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBJbnRlZ2VyIEZMVVNIX1RSQUlMSU5HID0gbmV3IEludGVnZXIoMik7CisgICAgLyoqCisgICAgICogVmFsdWUgb2YgPGNvZGU+TElORV9GTFVTSDwvY29kZT4gZm9yIGZ1bGwganVzdGlmaWNhdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEludGVnZXIgRlVMTFlfSlVTVElGSUVEID0gbmV3IEludGVnZXIoMyk7CisKKyAgICAvKioKKyAgICAgKiBMZWFkaW5nIGFuZCB0cmFpbGluZyBtYXJnaW4gaW4gcGFyYWdyYXBoLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IExFQURJTkdfTUFSR0lOID0gbmV3IFRleHRBdHRyaWJ1dGUoImxlYWRpbmdfbWFyZ2luIik7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgVFJBSUxJTkdfTUFSR0lOID0gbmV3IFRleHRBdHRyaWJ1dGUoInRyYWlsaW5nX21hcmdpbiIpOworCisgICAgLyoqCisgICAgICogVGFiIHJ1bGVyLiAgVmFsdWVzIGFyZSBNVGFiUnVsZXIgaW5zdGFuY2VzLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IFRBQl9SVUxFUiA9IG5ldyBUZXh0QXR0cmlidXRlKCJ0YWJfcnVsZXIiKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBBdHRyaWJ1dGUga2V5IGZvciB0aGUgcnVuIGRpcmVjdGlvbiBvZiB0aGUgbGluZS4KKyAgICAgKgorICAgICAqIDxQPjxUQUJMRSBCT1JERVI9IjAiIENFTExTUEFDSU5HPSIwIiBDRUxMUEFERElORz0iMSI+CisgICAgICogPFRSPgorICAgICAqIDxUSCBWQUxJR049IlRPUCIgQUxJR049IlJJR0hUIj48UCBBTElHTj1SSUdIVD5LZXk8L1RIPgorICAgICAqIDxURCBWQUxJR049IlRPUCI+UlVOX0RJUkVDVElPTjwvVEQ+PC9UUj4KKyAgICAgKiA8VFI+CisgICAgICogPFRIIFZBTElHTj0iVE9QIiBBTElHTj0iUklHSFQiPjxQIEFMSUdOPVJJR0hUPlZhbHVlPC9USD4KKyAgICAgKiA8VEQgVkFMSUdOPSJUT1AiPkJvb2xlYW48L1REPjwvVFI+CisgICAgICogPFRSPgorICAgICAqIDxUSCBWQUxJR049IlRPUCIgQUxJR049IlJJR0hUIj48UCBBTElHTj1SSUdIVD5Db25zdGFudHM8L1RIPgorICAgICAqIDxURCBWQUxJR049IlRPUCI+UlVOX0RJUkVDVElPTl9MVFIgPSB0cnVlLCBSVU5fRElSRUNUSU9OX1JUTCA9IGZhbHNlCisgICAgICogPC9URD48L1RSPgorICAgICAqIDxUUj4KKyAgICAgKiA8VEggVkFMSUdOPSJUT1AiIEFMSUdOPSJSSUdIVCI+PFAgQUxJR049UklHSFQ+RGVmYXVsdDwvVEg+CisgICAgICogPFREIFZBTElHTj0iVE9QIj5Vc2UgdGhlIGRlZmF1bHQgVW5pY29kZSBiYXNlIGRpcmVjdGlvbiBmcm9tIHRoZSBCSURJIAorICAgICAqIGFsZ29yaXRobS48L1REPjwvVFI+CisgICAgICogPFRSPgorICAgICAqIDxUSCBWQUxJR049IlRPUCIgQUxJR049IlJJR0hUIj48UCBBTElHTj1SSUdIVD5EZXNjcmlwdGlvbjwvVEg+CisgICAgICogPFREIFZBTElHTj0iVE9QIj48UD5TcGVjaWZpZXMgd2hpY2ggYmFzZSBydW4gZGlyZWN0aW9uIHRvIHVzZSB3aGVuIAorICAgICAqIHBvc2l0aW9uaW5nIG1peGVkIGRpcmVjdGlvbmFsIHJ1bnMgd2l0aGluIGEgcGFyYWdyYXBoLiBJZiB0aGlzIHZhbHVlIGlzCisgICAgICogUlVOX0RJUkVDVElPTl9ERUZBVUxULCA8Y29kZT5UZXh0TGF5b3V0PC9jb2RlPiB1c2VzIHRoZSBkZWZhdWx0IFVuaWNvZGUKKyAgICAgKiBiYXNlIGRpcmVjdGlvbiBmcm9tIHRoZSBCSURJIGFsZ29yaXRobS48L1A+CisgICAgICogPFA+PEk+VGhpcyBhdHRyaWJ1dGUgc2hvdWxkIGhhdmUgdGhlIHNhbWUgdmFsdWUgb3ZlciB0aGUgd2hvbGUgCisgICAgICogcGFyYWdyYXBoLjwvST48L1REPjwvVFI+CisgICAgICogPC9UQUJMRT4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE9iamVjdCBSVU5fRElSRUNUSU9OID0gamF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlLlJVTl9ESVJFQ1RJT047CisKKyAgICAvKioKKyAgICAgKiBMZWZ0LXRvLXJpZ2h0IHJ1biBkaXJlY3Rpb24uCisgICAgICogQHNlZSAjUlVOX0RJUkVDVElPTgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgQm9vbGVhbiBSVU5fRElSRUNUSU9OX0xUUiA9IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZS5SVU5fRElSRUNUSU9OX0xUUjsKKworICAgIC8qKgorICAgICAqIFJpZ2h0LXRvLWxlZnQgcnVuIGRpcmVjdGlvbi4KKyAgICAgKiBAc2VlICNSVU5fRElSRUNUSU9OCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBCb29sZWFuIFJVTl9ESVJFQ1RJT05fUlRMID0gamF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlLlJVTl9ESVJFQ1RJT05fUlRMOworCisgICAgLyoqCisgICAgICogQXR0cmlidXRlIGtleSBmb3IgdGhlIGVtYmVkZGluZyBsZXZlbCBmb3IgbmVzdGVkIGJpZGlyZWN0aW9uYWwgcnVucy4KKyAgICAgKgorICAgICAqIDxQPjxUQUJMRSBCT1JERVI9IjAiIENFTExTUEFDSU5HPSIwIiBDRUxMUEFERElORz0iMSI+CisgICAgICogPFRSPgorICAgICAqIDxUSCBWQUxJR049IlRPUCIgQUxJR049IlJJR0hUIj48UCBBTElHTj1SSUdIVD5LZXk8L1RIPgorICAgICAqIDxURCBWQUxJR049IlRPUCI+QklESV9FTUJFRERJTkc8L1REPjwvVFI+CisgICAgICogPFRSPgorICAgICAqIDxUSCBWQUxJR049IlRPUCIgQUxJR049IlJJR0hUIj48UCBBTElHTj1SSUdIVD5WYWx1ZTwvVEg+CisgICAgICogPFREIFZBTElHTj0iVE9QIj5JbnRlZ2VyPC9URD48L1RSPgorICAgICAqIDxUUj4KKyAgICAgKiA8VEggVkFMSUdOPSJUT1AiIEFMSUdOPSJSSUdIVCI+PFAgQUxJR049UklHSFQ+TGltaXRzPC9USD4KKyAgICAgKiA8VEQgVkFMSUdOPSJUT1AiPlBvc2l0aXZlIHZhbHVlcyAxIHRocm91Z2ggMTUgYXJlIDxJPmVtYmVkZGluZzwvST4KKyAgICAgKiBsZXZlbHMsIG5lZ2F0aXZlIHZhbHVlczxCUj4gdGhyb3VnaCAtMTUgYXJlIDxJPm92ZXJyaWRlPC9JPiBsZXZlbHMKKyAgICAgKiA8L1REPjwvVFI+CisgICAgICogPFRSPgorICAgICAqIDxUSCBWQUxJR049IlRPUCIgQUxJR049IlJJR0hUIj48UCBBTElHTj1SSUdIVD5EZWZhdWx0PC9USD4KKyAgICAgKiA8VEQgVkFMSUdOPSJUT1AiPlVzZSBzdGFuZGFyZCBCSURJIHRvIGNvbXB1dGUgbGV2ZWxzIGZyb20gZm9ybWF0dGluZworICAgICAqIGNoYXJhY3RlcnMgaW4gdGhlIHRleHQuPC9URD48L1RSPgorICAgICAqIDxUUj4KKyAgICAgKiA8VEggVkFMSUdOPSJUT1AiIEFMSUdOPSJSSUdIVCI+PFAgQUxJR049UklHSFQ+RGVzY3JpcHRpb248L1RIPgorICAgICAqIDxURCBWQUxJR049IlRPUCI+U3BlY2lmaWVzIHRoZSBiaWRpIGVtYmVkZGluZyBsZXZlbCBvZiB0aGUgY2hhcmFjdGVyLgorICAgICAqIFdoZW4gdGhpcyBhdHRyaWJ1dGUgaXMgcHJlc2VudCBhbnl3aGVyZSBpbiBhIHBhcmFncmFwaCwgdGhlbiB0aGUgCisgICAgICogVW5pY29kZSBjaGFyYWN0ZXJzIFJMTywgTFJPLCBSTEUsIExSRSwgUERGIGFyZSBkaXNyZWdhcmRlZCBpbiB0aGUgQklESSAKKyAgICAgKiBhbmFseXNpcyBvZiB0aGF0IHBhcmFncmFwaC4gCisgICAgICogU2VlIHRoZSBVbmljb2RlIFN0YW5kYXJkIHYuIDIuMCwgc2VjdGlvbiAzLTExLgorICAgICAqIDwvVEQ+PC9UUj4KKyAgICAgKiA8L1RBQkxFPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IEJJRElfRU1CRURESU5HID0gamF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlLkJJRElfRU1CRURESU5HOworCisgICAgLyoqCisgICAgICogQXR0cmlidXRlIGtleSBmb3IgdGhlIGp1c3RpZmljYXRpb24gb2YgYSBwYXJhZ3JhcGguCisgICAgICoKKyAgICAgKiA8UD48VEFCTEUgQk9SREVSPSIwIiBDRUxMU1BBQ0lORz0iMCIgQ0VMTFBBRERJTkc9IjEiPgorICAgICAqIDxUUj4KKyAgICAgKiA8VEggVkFMSUdOPSJUT1AiIEFMSUdOPSJSSUdIVCI+PFAgQUxJR049UklHSFQ+S2V5PC9USD4KKyAgICAgKiA8VEQgVkFMSUdOPSJUT1AiPkpVU1RJRklDQVRJT048L1REPjwvVFI+CisgICAgICogPFRSPgorICAgICAqIDxUSCBWQUxJR049IlRPUCIgQUxJR049IlJJR0hUIj48UCBBTElHTj1SSUdIVD5WYWx1ZTwvVEg+CisgICAgICogPFREIFZBTElHTj0iVE9QIj5GbG9hdDwvVEQ+PC9UUj4KKyAgICAgKiA8VFI+CisgICAgICogPFRIIFZBTElHTj0iVE9QIiBBTElHTj0iUklHSFQiPjxQIEFMSUdOPVJJR0hUPkxpbWl0czwvVEg+CisgICAgICogPFREIFZBTElHTj0iVE9QIj4wLjAgdGhyb3VnaDEuMDwvVEQ+PC9UUj4KKyAgICAgKiA8VFI+CisgICAgICogPFRIIFZBTElHTj0iVE9QIiBBTElHTj0iUklHSFQiPjxQIEFMSUdOPVJJR0hUPkRlZmF1bHQ8L1RIPgorICAgICAqIDxURCBWQUxJR049IlRPUCI+MS4wPC9URD48L1RSPgorICAgICAqIDxUUj4KKyAgICAgKiA8VEggVkFMSUdOPSJUT1AiIEFMSUdOPSJSSUdIVCI+PFAgQUxJR049UklHSFQ+RGVzY3JpcHRpb248L1RIPgorICAgICAqIDxURCBWQUxJR049IlRPUCI+PFA+U3BlY2lmaWVzIHdoaWNoIGZyYWN0aW9uIG9mIHRoZSBleHRyYSBzcGFjZSB0byB1c2UgCisgICAgICogd2hlbiBqdXN0aWZpY2F0aW9uIGlzIHJlcXVlc3RlZC4gRm9yIGV4YW1wbGUsIGlmIHRoZSBsaW5lIGlzIDUwIHBvaW50cworICAgICAqIHdpZGUgYW5kIHRoZSBtYXJnaW5zIGFyZSA3MCBwb2ludHMgYXBhcnQsIGEgdmFsdWUgb2YgMC41IG1lYW5zIHRoYXQgdGhlCisgICAgICogbGluZSBpcyBwYWRkZWQgdG8gcmVhY2ggYSB3aWR0aCBvZiA2MCBwb2ludHMuPC9QPgorICAgICAqIDxQPjxJPlRoaXMgYXR0cmlidXRlIHNob3VsZCBoYXZlIHRoZSBzYW1lIHZhbHVlIG92ZXIgdGhlIHdob2xlCisgICAgICogcGFyYWdyYXBoLjwvST48L1REPjwvVFI+CisgICAgICogPC9UQUJMRT4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE9iamVjdCBKVVNUSUZJQ0FUSU9OID0gamF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlLkpVU1RJRklDQVRJT047CisKKyAgICAvKioKKyAgICAgKiBKdXN0aWZ5IHRoZSBsaW5lIHRvIHRoZSBmdWxsIHJlcXVlc3RlZCB3aWR0aC4KKyAgICAgKiBAc2VlICNKVVNUSUZJQ0FUSU9OCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBGbG9hdCBKVVNUSUZJQ0FUSU9OX0ZVTEwgPSBqYXZhLmF3dC5mb250LlRleHRBdHRyaWJ1dGUuSlVTVElGSUNBVElPTl9GVUxMOworCisgICAgLyoqCisgICAgICogRG8gbm90IGFsbG93IHRoZSBsaW5lIHRvIGJlIGp1c3RpZmllZC4KKyAgICAgKiBAc2VlICNKVVNUSUZJQ0FUSU9OCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBGbG9hdCBKVVNUSUZJQ0FUSU9OX05PTkUgPSBqYXZhLmF3dC5mb250LlRleHRBdHRyaWJ1dGUuSlVTVElGSUNBVElPTl9OT05FOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0FUZXh0UGFuZWxJbXBsLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvQVRleHRQYW5lbEltcGwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mZTJmZWRlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0FUZXh0UGFuZWxJbXBsLmphdmEKQEAgLTAsMCArMSw3NTUgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IEFUZXh0UGFuZWxJbXBsLmphdmEsdiAkICRSZXZpc2lvbjogMS4zICQgJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6NDYgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2ltcG9ydCBqYXZhLmF3dC5BZGp1c3RhYmxlOworaW1wb3J0IGphdmEuYXd0LkNvbXBvbmVudDsKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczsKK2ltcG9ydCBqYXZhLmF3dC5kYXRhdHJhbnNmZXIuQ2xpcGJvYXJkOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZVNldDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZU1vZGlmaWVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVkVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRmb3JtYXQuVGV4dE9mZnNldDsKKworLyoqCisgKiBJbXBsZW1lbnRhdGlvbiBjbGFzcyBmb3IgVGV4dFBhbmVsIGFuZCBKVGV4dFBhbmVsLgorICovCitmaW5hbCBjbGFzcyBBVGV4dFBhbmVsSW1wbCB7CisgICAgCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAgICAgICAgICAgICAKKyAgICBwcml2YXRlIFJ1blN0cmF0ZWd5IGZSdW5TdHJhdGVneSA9IG51bGw7CisgICAgcHJpdmF0ZSBUZXh0Q29tcG9uZW50IGZUZXh0Q29tcG9uZW50ID0gbnVsbDsKKyAgICBwcml2YXRlIFRleHRTZWxlY3Rpb24gZlNlbGVjdGlvbiA9IG51bGw7CisgICAgcHJpdmF0ZSBUZXh0RWRpdEJlaGF2aW9yIGZFZGl0QmVoYXZpb3IgPSBudWxsOworICAgIHByaXZhdGUgTVRleHQgZlRleHQgPSBudWxsOworCisgICAgcHJpdmF0ZSBQYW5lbEV2ZW50QnJvYWRjYXN0ZXIgZkJyb2FkY2FzdGVyOworICAgIHByaXZhdGUgS2V5UmVtYXAgZlJlbWFwID0gS2V5UmVtYXAuZ2V0SWRlbnRpdHlSZW1hcCgpOworCisgICAgLy8gVGhpcyBpcyBhIGxpdHRsZSB1Z2x5LiAgVGV4dFBhbmVsIHN1cHBvcnRzIGl0cyBtb2RpZmllZAorICAgIC8vIGZsYWcgd2hldGhlciBvciBub3QgaXQgaXMgZWRpdGFibGUsIG9yIGV2ZW4gc2VsZWN0YWJsZS4KKyAgICAvLyBTbyBpZiB0aGVyZSdzIG5vIGNvbW1hbmQgbG9nIHRvIGtlZXAgdHJhY2sgb2YgdGhlIGZsYWcKKyAgICAvLyBzdGF0ZSB0aGVuIGl0cyBkb25lIHJpZ2h0IGhlcmUgaW4gVGV4dFBhbmVsLiAgSWYgdGhlCisgICAgLy8gcGFuZWwgaXMgZWRpdGFibGUgdGhpcyBmbGFnIGlzIGlnbm9yZWQuCisgICAgcHJpdmF0ZSBib29sZWFuIGZNb2RpZmllZCA9IGZhbHNlOworCisgICAgc3RhdGljIGZpbmFsIFRleHRQYW5lbFNldHRpbmdzIGZnRGVmYXVsdFNldHRpbmdzID0gbmV3IFRleHRQYW5lbFNldHRpbmdzKCk7CisKKyAgICBzdGF0aWMgVGV4dFBhbmVsU2V0dGluZ3MgZ2V0RGVmYXVsdFNldHRpbmdzKCkgeworCisgICAgICAgIHJldHVybiAoVGV4dFBhbmVsU2V0dGluZ3MpIGZnRGVmYXVsdFNldHRpbmdzLmNsb25lKCk7CisgICAgfQorICAgIAorICAgIEFUZXh0UGFuZWxJbXBsKFJ1blN0cmF0ZWd5IHJ1blN0cmF0ZWd5LAorICAgICAgICAgICAgICAgICAgIFRleHRQYW5lbFNldHRpbmdzIHNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgIE1Db25zdFRleHQgaW5pdGlhbFRleHQsCisgICAgICAgICAgICAgICAgICAgQ2xpcGJvYXJkIGNsaXBib2FyZCwKKyAgICAgICAgICAgICAgICAgICBNVGV4dFBhbmVsIGNsaWVudCwKKyAgICAgICAgICAgICAgICAgICBBZGp1c3RhYmxlIGhvcnpTYiwKKyAgICAgICAgICAgICAgICAgICBBZGp1c3RhYmxlIHZlcnRTYikgeworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgZlJ1blN0cmF0ZWd5ID0gcnVuU3RyYXRlZ3k7CisgICAgICAgIGZCcm9hZGNhc3RlciA9IG5ldyBQYW5lbEV2ZW50QnJvYWRjYXN0ZXIoY2xpZW50KTsKKworICAgICAgICBTY3JvbGxlciBzY3JvbGxlciA9IG51bGw7CisgICAgICAgIGlmIChzZXR0aW5ncy5nZXRTY3JvbGxhYmxlKCkpIHsKKyAgICAgICAgICAgIHNjcm9sbGVyID0gbmV3IFNjcm9sbGVyKGhvcnpTYiwgdmVydFNiKTsKKyAgICAgICAgfQorCisgICAgICAgIFN0eWxlZFRleHRDbGlwYm9hcmQgdGV4dENsaXBib2FyZCA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3R5bGVkVGV4dENsaXBib2FyZC5nZXRDbGlwYm9hcmRGb3IoY2xpcGJvYXJkKTsKKworICAgICAgICBmVGV4dCA9IG5ldyBTdHlsZWRUZXh0KCk7CisgICAgICAgIGlmIChpbml0aWFsVGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBmVGV4dC5hcHBlbmQoaW5pdGlhbFRleHQpOworICAgICAgICB9CisKKyAgICAgICAgZlRleHRDb21wb25lbnQgPSBuZXcgVGV4dENvbXBvbmVudChmVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5ncy5nZXREZWZhdWx0VmFsdWVzKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3MuZ2V0V3JhcHMoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0Q29tcG9uZW50LldJTkRPV19XSURUSCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0Q29tcG9uZW50LkRFRkFVTFRfSU5TRVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dENsaXBib2FyZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5ncy5nZXRTY3JvbGxhYmxlKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkJyb2FkY2FzdGVyKTsKKworICAgICAgICBpZiAoc2Nyb2xsZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgc2Nyb2xsZXIuc2V0Q2xpZW50KGZUZXh0Q29tcG9uZW50KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gTWF5IGhhdmUgdG8gd2FpdCB1bnRpbCBjb21wb25lbnQgaGFzIGhvc3QgdG8gZG8gdGhpczoKKyAgICAgICAgaWYgKHNldHRpbmdzLmdldFNlbGVjdGFibGUoKSkgeworICAgICAgICAgICAgZlNlbGVjdGlvbiA9IG5ldyBUZXh0U2VsZWN0aW9uKGZUZXh0Q29tcG9uZW50LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmQnJvYWRjYXN0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlJ1blN0cmF0ZWd5KTsKKyAgICAgICAgICAgIGZTZWxlY3Rpb24uYWRkVG9Pd25lcihmVGV4dENvbXBvbmVudCk7CisgICAgICAgICAgICBpZiAoc2V0dGluZ3MuZ2V0RWRpdGFibGUoKSkgeworICAgICAgICAgICAgICAgIGZFZGl0QmVoYXZpb3IgPSBuZXcgVGV4dEVkaXRCZWhhdmlvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmVGV4dENvbXBvbmVudCwgZlNlbGVjdGlvbiwgZkJyb2FkY2FzdGVyLCBmUmVtYXApOworICAgICAgICAgICAgICAgIGZFZGl0QmVoYXZpb3IuYWRkVG9Pd25lcihmVGV4dENvbXBvbmVudCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgRmFrZUNvbXBvbmVudCBnZXRUZXh0Q29tcG9uZW50KCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZUZXh0Q29tcG9uZW50OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBBZGQgdGhlIGdpdmVuIFRleHRQYW5lbExpc3RlbmVyIHRvIHRoZSBsaXN0ZW5lcnMgd2hpY2ggd2lsbAorICAgICAqIHJlY2VpdmUgdXBkYXRlIG5vdGlmaWNhdGlvbnMgZnJvbSB0aGlzIFRleHRQYW5lbC4KKyAgICAgKiBAcGFyYW0gbGlzdGVuZXIgdGhlIGxpc3RlbmVyIHRvIGFkZAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFkZExpc3RlbmVyKFRleHRQYW5lbExpc3RlbmVyIGxpc3RlbmVyKSB7CisKKyAgICAgICAgZkJyb2FkY2FzdGVyLmFkZExpc3RlbmVyKGxpc3RlbmVyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgdGhlIGdpdmVuIFRleHRQYW5lbExpc3RlbmVyIGZyb20gdGhlIGxpc3RlbmVycyB3aGljaCB3aWxsCisgICAgICogcmVjZWl2ZSB1cGRhdGUgbm90aWZpY2F0aW9ucyBmcm9tIHRoaXMgVGV4dFBhbmVsLgorICAgICAqIEBwYXJhbSBsaXN0ZW5lciB0aGUgbGlzdGVuZXIgdG8gcmVtb3ZlCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVtb3ZlTGlzdGVuZXIoVGV4dFBhbmVsTGlzdGVuZXIgbGlzdGVuZXIpIHsKKworICAgICAgICBmQnJvYWRjYXN0ZXIucmVtb3ZlTGlzdGVuZXIobGlzdGVuZXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFlvdSBrbm93IHdoYXQgdGhpcyBkb2VzLi4uCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IHBpbihpbnQgdmFsdWUsIGludCBtaW4sIGludCBtYXgpIHsKKworICAgICAgICBpZiAobWluID4gbWF4KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIHJhbmdlIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAodmFsdWUgPCBtaW4pIHsKKyAgICAgICAgICAgIHZhbHVlID0gbWluOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHZhbHVlID4gbWF4KSB7CisgICAgICAgICAgICB2YWx1ZSA9IG1heDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgfQorCisvLz09PT09PT09PT09PQorLy8gVGV4dCBBY2Nlc3MKKy8vPT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGRvY3VtZW50IHRvIDx0dD5uZXdUZXh0PC90dD4uICBUaGlzIG9wZXJhdGlvbgorICAgICAqIG1vZGlmaWVzIHRoZSB0ZXh0IGluIHRoZSBUZXh0UGFuZWwuICBJdCBkb2VzIG5vdCBtb2RpZnkgb3IgYWRvcHQKKyAgICAgKiA8dHQ+bmV3VGV4dDwvdHQ+LiAgVGhpcyBtZXRob2Qgc2V0cyB0aGUgc2VsZWN0aW9uIGFuIGluc2VydGlvbiBwb2ludCBhdAorICAgICAqIHRoZSBlbmQgb2YgdGhlIHRleHQuCisgICAgICogQHBhcmFtIG5ld1RleHQgdGhlIHRleHQgd2hpY2ggd2lsbCByZXBsYWNlIHRoZSBjdXJyZW50IHRleHQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGV4dChNQ29uc3RUZXh0IG5ld1RleHQpIHsKKworICAgICAgICByZXBsYWNlUmFuZ2UobmV3VGV4dCwgMCwgZ2V0VGV4dExlbmd0aCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBcHBlbmQgdGhlIGdpdmVuIHRleHQgdG8gdGhlIGVuZCBvZiB0aGUgZG9jdW1lbnQuICBFcXVpdmFsZW50IHRvCisgICAgICogPHR0Pmluc2VydChuZXdUZXh0LCBnZXRUZXh0TGVuZ3RoKCkpPC90dD4uCisgICAgICogQHBhcmFtIG5ld1RleHQgdGhlIHRleHQgdG8gYXBwZW5kIHRvIHRoZSBkb2N1bWVudAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFwcGVuZChNQ29uc3RUZXh0IG5ld1RleHQpIHsKKworICAgICAgICBpbnQgbGVuZ3RoID0gZ2V0VGV4dExlbmd0aCgpOworICAgICAgICByZXBsYWNlUmFuZ2UobmV3VGV4dCwgbGVuZ3RoLCBsZW5ndGgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEluc2VydCB0aGUgZ2l2ZW4gdGV4dCBpbnRvIHRoZSBkb2N1bWVudCBhdCB0aGUgZ2l2ZW4gcG9zaXRpb24uCisgICAgICogRXF1aXZhbGVudCB0bworICAgICAqIDx0dD5yZXBsYWNlUmFuZ2UobmV3VGV4dCwgcG9zaXRpb24sIHBvc2l0aW9uKTwvdHQ+LgorICAgICAqIEBwYXJhbSBuZXdUZXh0IHRoZSB0ZXh0IHRvIGluc2VydCBpbnRvIHRoZSBkb2N1bWVudC4KKyAgICAgKiBAcGFyYW0gcG9zaXRpb24gdGhlIHBvc2l0aW9uIGluIHRoZSBkb2N1bWVudCB3aGVyZSB0aGUKKyAgICAgKiAgICAgdGV4dCB3aWxsIGJlIGluc2VydGVkCisgICAgICovCisgICAgcHVibGljIHZvaWQgaW5zZXJ0KE1Db25zdFRleHQgbmV3VGV4dCwgaW50IHBvc2l0aW9uKSB7CisKKyAgICAgICAgcmVwbGFjZVJhbmdlKG5ld1RleHQsIHBvc2l0aW9uLCBwb3NpdGlvbik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVwbGFjZSB0aGUgZ2l2ZW4gcmFuZ2Ugd2l0aCA8dHQ+bmV3VGV4dDwvdHQ+LiAgQWZ0ZXIgdGhpcworICAgICAqIG9wZXJhdGlvbiB0aGUgc2VsZWN0aW9uIHJhbmdlIGlzIGFuIGluc2VydGlvbiBwb2ludCBhdCB0aGUKKyAgICAgKiBlbmQgb2YgdGhlIG5ldyB0ZXh0LgorICAgICAqIEBwYXJhbSBuZXdUZXh0IHRoZSB0ZXh0IHdpdGggd2hpY2ggdG8gcmVwbGFjZSB0aGUgcmFuZ2UKKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIGJlZ2lubmluZyBvZiB0aGUgcmFuZ2UgdG8gcmVwbGFjZQorICAgICAqIEBwYXJhbSBlbmQgdGhlIGVuZCBvZiB0aGUgcmFuZ2UgdG8gcmVwbGFjZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlcGxhY2VSYW5nZShNQ29uc3RUZXh0IG5ld1RleHQsIGludCBzdGFydCwgaW50IGVuZCkgeworCisgICAgICAgIGludCBsZW5ndGggPSBnZXRUZXh0TGVuZ3RoKCk7CisKKyAgICAgICAgc3RhcnQgPSBwaW4oc3RhcnQsIDAsIGxlbmd0aCk7CisgICAgICAgIGVuZCA9IHBpbihlbmQsIHN0YXJ0LCBsZW5ndGgpOworCisgICAgICAgIGlmIChmU2VsZWN0aW9uICE9IG51bGwpIHsKKworICAgICAgICAgICAgLy8gSWYgd2UncmUgc2VsZWN0YWJsZSwgYnV0IG5vdCBlZGl0YWJsZSwgd2UnbGwgdGVtcG9yYXJpbHkKKyAgICAgICAgICAgIC8vIG1ha2Ugb3Vyc2VsdmVzIGVkaXRhYmxlIHRvIGNoYW5nZSB0aGUgdGV4dC4gIEEgbGl0dGxlIGZ1bm55CisgICAgICAgICAgICAvLyBidXQgdGhlcmUncyBhIGxvdCBvZiBjb2RlIGZvciBnZXR0aW5nIGNhcmV0IHN0dWZmIHJpZ2h0LAorICAgICAgICAgICAgLy8gYW5kIHRoaXMgaXMgbm90IGEgY29tbW9uIG9wZXJhdGlvbiBhbnl3YXkuCisKKyAgICAgICAgICAgIFRleHRFZGl0QmVoYXZpb3IgYmVoYXZpb3I7CisKKyAgICAgICAgICAgIGlmIChmRWRpdEJlaGF2aW9yID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBiZWhhdmlvciA9IG5ldyBUZXh0RWRpdEJlaGF2aW9yKGZUZXh0Q29tcG9uZW50LCBmU2VsZWN0aW9uLCBmQnJvYWRjYXN0ZXIsIGZSZW1hcCk7CisgICAgICAgICAgICAgICAgYmVoYXZpb3IuYWRkVG9Pd25lcihmVGV4dENvbXBvbmVudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBiZWhhdmlvciA9IGZFZGl0QmVoYXZpb3I7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFRleHRPZmZzZXQgbmV3U2VsZWN0aW9uID0gbmV3IFRleHRPZmZzZXQoc3RhcnQgKyBuZXdUZXh0Lmxlbmd0aCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVCk7CisKKyAgICAgICAgICAgIFRleHRSZXBsYWNlbWVudCByZXBsYWNlbWVudCA9IG5ldyBUZXh0UmVwbGFjZW1lbnQoc3RhcnQsIGVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTZWxlY3Rpb24pOworCisgICAgICAgICAgICBmVGV4dENvbXBvbmVudC50ZXh0Q29udHJvbEV2ZW50T2NjdXJyZWQoQmVoYXZpb3IuUkVQTEFDRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlbWVudCk7CisgICAgICAgICAgICBpZiAoZkVkaXRCZWhhdmlvciA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgYmVoYXZpb3IucmVtb3ZlRnJvbU93bmVyKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisKKyAgICAgICAgICAgIE1UZXh0IG9sZFRleHQgPSBmVGV4dENvbXBvbmVudC5nZXRNb2RpZmlhYmxlVGV4dCgpOworICAgICAgICAgICAgZlRleHRDb21wb25lbnQuc3RvcEJhY2tncm91bmRGb3JtYXR0aW5nKCk7CisgICAgICAgICAgICBvbGRUZXh0LnJlcGxhY2VBbGwobmV3VGV4dCk7CisgICAgICAgICAgICBmVGV4dENvbXBvbmVudC5yZWZvcm1hdEFuZERyYXdUZXh0KDAsIG5ld1RleHQubGVuZ3RoKCksIG51bGwsIG51bGwsIG51bGwsIG51bGwpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIHRleHQgZG9jdW1lbnQgaW4gdGhlIFRleHRQYW5lbC4KKyAgICAgKiBAcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIHRleHQgZG9jdW1lbnQgaW4gdGhlIFRleHRQYW5lbAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0VGV4dExlbmd0aCgpIHsKKworICAgICAgICByZXR1cm4gZlRleHRDb21wb25lbnQuZ2V0VGV4dCgpLmxlbmd0aCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgdGV4dCBkb2N1bWVudCBpbiB0aGUgVGV4dFBhbmVsLgorICAgICAqIEByZXR1cm4gdGhlIHRleHQgZG9jdW1lbnQgaW4gdGhlIFRleHRQYW5lbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgTUNvbnN0VGV4dCBnZXRUZXh0KCkgeworCisgICAgICAgIHJldHVybiBmVGV4dENvbXBvbmVudC5nZXRUZXh0KCk7CisgICAgfQorCisvLz09PT09PT09PT09PQorLy8gU2VsZWN0aW9uIEFjY2VzcworLy89PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgb2Zmc2V0IG9mIHRoZSBzdGFydCBvZiB0aGUgc2VsZWN0aW9uLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0U2VsZWN0aW9uU3RhcnQoKSB7CisKKyAgICAgICAgaWYgKGZTZWxlY3Rpb24gIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZTZWxlY3Rpb24uZ2V0U3RhcnQoKS5mT2Zmc2V0OworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG9mZnNldCBvZiB0aGUgZW5kIG9mIHRoZSBzZWxlY3Rpb24uCisgICAgICovCisgICAgcHVibGljIGludCBnZXRTZWxlY3Rpb25FbmQoKSB7CisKKyAgICAgICAgaWYgKGZTZWxlY3Rpb24gIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZTZWxlY3Rpb24uZ2V0RW5kKCkuZk9mZnNldDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHNlbGVjdGlvbiByYW5nZS4gIFRoaXMgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIDx0dD5zZWxlY3Qoc2VsZWN0aW9uU3RhcnQsIGdldFNlbGVjdGlvbkVuZCgpKTwvdHQ+LgorICAgICAqIEBwYXJhbSBzZWxlY3Rpb25TdGFydCB0aGUgc3RhcnQgb2YgdGhlIG5ldyBzZWxlY3Rpb24gcmFuZ2UKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTZWxlY3Rpb25TdGFydChpbnQgc2VsZWN0aW9uU3RhcnQpIHsKKworICAgICAgICBzZWxlY3Qoc2VsZWN0aW9uU3RhcnQsIGdldFNlbGVjdGlvbkVuZCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGVuZCBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlLiAgVGhpcyBpcworICAgICAqIGVxdWl2YWxlbnQgdG8gPHR0PnNlbGVjdChnZXRTZWxlY3Rpb25TdGFydCgpLCBzZWxlY3Rpb25FbmQpPC90dD4uCisgICAgICogQHBhcmFtIHNlbGVjdGlvblN0YXJ0IHRoZSBzdGFydCBvZiB0aGUgbmV3IHNlbGVjdGlvbiByYW5nZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNlbGVjdGlvbkVuZChpbnQgc2VsZWN0aW9uRW5kKSB7CisKKyAgICAgICAgc2VsZWN0KGdldFNlbGVjdGlvblN0YXJ0KCksIHNlbGVjdGlvbkVuZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBzZWxlY3Rpb24gcmFuZ2UgdG8gYW4gaW5zZXJ0aW9uIHBvaW50IGF0IHRoZSBnaXZlbgorICAgICAqIG9mZnNldC4gIFRoaXMgaXMgZXF1aXZhbGVudCB0bworICAgICAqIDx0dD5zZWxlY3QocG9zaXRpb24sIHBvc2l0aW9uKTwvdHQ+LgorICAgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgb2Zmc2V0IG9mIHRoZSBuZXcgaW5zZXJ0aW9uIHBvaW50CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Q2FyZXRQb3NpdGlvbihpbnQgcG9zaXRpb24pIHsKKworICAgICAgICBzZWxlY3QocG9zaXRpb24sIHBvc2l0aW9uKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHNlbGVjdGlvbiByYW5nZSB0byB0aGUgZ2l2ZW4gcmFuZ2UuICBUaGUgcmFuZ2Ugc3RhcnQKKyAgICAgKiBpcyBwaW5uZWQgYmV0d2VlbiAwIGFuZCB0aGUgdGV4dCBsZW5ndGg7ICB0aGUgcmFuZ2UgZW5kIGlzIHBpbm5lZAorICAgICAqIGJldHdlZW4gdGhlIHJhbmdlIHN0YXJ0IGFuZCB0aGUgZW5kIG9mIHRoZSB0ZXh0LiAgVGhlc2Ugc2VtYW50aWNzCisgICAgICogYXJlIGlkZW50aWNhbCB0byB0aG9zZSBvZiA8dHQ+amF2YS5hd3QuVGV4dENvbXBvbmVudDwvdHQ+LgorICAgICAqIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYgdGhlIHRleHQgaXMgbm90IHNlbGVjdGFibGUuCisgICAgICogQHBhcmFtIHNlbGVjdGlvblN0YXJ0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHNlbGVjdGlvbiByYW5nZQorICAgICAqIEBwYXJhbSBzZWxlY3Rpb25FbmQgdGhlIGVuZCBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2VsZWN0KGludCBzZWxlY3Rpb25TdGFydCwgaW50IHNlbGVjdGlvbkVuZCkgeworCisgICAgICAgIGludCBsZW5ndGggPSBnZXRUZXh0TGVuZ3RoKCk7CisKKyAgICAgICAgc2VsZWN0aW9uU3RhcnQgPSBwaW4oc2VsZWN0aW9uU3RhcnQsIDAsIGxlbmd0aCk7CisgICAgICAgIHNlbGVjdGlvbkVuZCA9IHBpbihzZWxlY3Rpb25FbmQsIHNlbGVjdGlvblN0YXJ0LCBsZW5ndGgpOworCisgICAgICAgIFRleHRSYW5nZSByYW5nZSA9IG5ldyBUZXh0UmFuZ2Uoc2VsZWN0aW9uU3RhcnQsIHNlbGVjdGlvbkVuZCk7CisgICAgICAgIGZUZXh0Q29tcG9uZW50LnRleHRDb250cm9sRXZlbnRPY2N1cnJlZChCZWhhdmlvci5TRUxFQ1QsIHJhbmdlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZWxlY3QgYWxsIG9mIHRoZSB0ZXh0IGluIHRoZSBkb2N1bWVudC4gIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYKKyAgICAgKiB0aGUgdGV4dCBpcyBub3Qgc2VsZWN0YWJsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZWxlY3RBbGwoKSB7CisKKyAgICAgICAgc2VsZWN0KDAsIGdldFRleHRMZW5ndGgoKSk7CisgICAgfQorCisKKy8vPT09PT09PT09PT09CisvLyBGb3JtYXQgV2lkdGgKKy8vPT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHRvdGFsIGZvcm1hdCB3aWR0aCwgaW4gcGl4ZWxzLiAgVGhlIGZvcm1hdCB3aWR0aCBpcyB0aGUKKyAgICAgKiB3aWR0aCB0byB3aGljaCB0ZXh0IGlzIHdyYXBwZWQuCisgICAgICogQHJldHVybiB0aGUgZm9ybWF0IHdpZHRoCisgICAgICovCisgICAgcHVibGljIGludCBnZXRGb3JtYXRXaWR0aCgpIHsKKworICAgICAgICByZXR1cm4gZlRleHRDb21wb25lbnQuZ2V0Rm9ybWF0V2lkdGgoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgcGFyYWdyYXBoIGF0IHRoZSBnaXZlbiBvZmZzZXQgaXMgbGVmdC10by1yaWdodC4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IGFuIG9mZnNldCBpbiB0aGUgdGV4dAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgcGFyYWdyYXBoIGF0IHRoZSBnaXZlbiBvZmZzZXQgaXMgbGVmdC10by1yaWdodAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIHBhcmFncmFwaElzTGVmdFRvUmlnaHQoaW50IG9mZnNldCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZUZXh0Q29tcG9uZW50LnBhcmFncmFwaElzTGVmdFRvUmlnaHQob2Zmc2V0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGVyZSBpcyBhIGNoYW5nZSB3aGljaCBjYW4gYmUgdW5kb25lLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGVyZSBpcyBhIGNoYW5nZSB3aGljaCBjYW4gYmUgdW5kb25lLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNhblVuZG8oKSB7CisKKyAgICAgICAgaWYgKGZFZGl0QmVoYXZpb3IgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZFZGl0QmVoYXZpb3IuY2FuVW5kbygpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlcmUgaXMgYSBjaGFuZ2Ugd2hpY2ggY2FuIGJlIHJlZG9uZS4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlcmUgaXMgYSBjaGFuZ2Ugd2hpY2ggY2FuIGJlIHJlZG9uZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBjYW5SZWRvKCkgeworCisgICAgICAgIGlmIChmRWRpdEJlaGF2aW9yICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmRWRpdEJlaGF2aW9yLmNhblJlZG8oKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBjbGlwYm9hcmQgY29udGFpbnMgY29udGVudHMgd2hpY2ggY291bGQgYmUKKyAgICAgKiB0cmFuc2ZlcmVkIGludG8gdGhlIHRleHQuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjbGlwYm9hcmQgaGFzIHRleHQgY29udGVudC4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBjbGlwYm9hcmROb3RFbXB0eSgpIHsKKworICAgICAgICByZXR1cm4gZlRleHRDb21wb25lbnQuZ2V0Q2xpcGJvYXJkKCkuaGFzQ29udGVudHMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gQXR0cmlidXRlTWFwIG9mIGtleXMgd2l0aCBkZWZhdWx0IHZhbHVlcy4gIFRoZSBkZWZhdWx0CisgICAgICogdmFsdWVzIGFyZSB1c2VkIHdoZW4gZGlzcGxheWluZyB0ZXh0IGZvciB2YWx1ZXMgd2hpY2ggYXJlIG5vdAorICAgICAqIHNwZWNpZmllZCBpbiB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIGFuIEF0dHJpYnV0ZU1hcCBvZiBkZWZhdWx0IGtleS12YWx1ZSBwYWlycworICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgZ2V0RGVmYXVsdFZhbHVlcygpIHsKKworICAgICAgICByZXR1cm4gZlRleHRDb21wb25lbnQuZ2V0RGVmYXVsdFZhbHVlcygpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIG9iamVjdHNBcmVFcXVhbChPYmplY3QgbGhzLCBPYmplY3QgcmhzKSB7CisgICAgCisgICAgICAgIGlmIChsaHMgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIHJocyA9PSBudWxsOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGxocy5lcXVhbHMocmhzKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIE9iamVjdCBjb25zaXN0ZW50Q2hhclN0eWxlKE1Db25zdFRleHQgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdCBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0IGRlZmF1bHRWYWx1ZSkgeworCisgICAgICAgIGlmIChzdGFydCA+PSBsaW1pdCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCByYW5nZS4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBydW5TdGFydCA9IHN0YXJ0OworICAgICAgICBPYmplY3QgaW5pdGlhbFZhbHVlID0gdGV4dC5jaGFyYWN0ZXJTdHlsZUF0KHJ1blN0YXJ0KS5nZXQoa2V5KTsKKworICAgICAgICBpZiAoaW5pdGlhbFZhbHVlID09IG51bGwpIHsKKyAgICAgICAgICAgIGluaXRpYWxWYWx1ZSA9IGRlZmF1bHRWYWx1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAocnVuU3RhcnQgPSB0ZXh0LmNoYXJhY3RlclN0eWxlTGltaXQocnVuU3RhcnQpOworICAgICAgICAgICAgIHJ1blN0YXJ0IDwgbGltaXQ7CisgICAgICAgICAgICAgcnVuU3RhcnQgPSB0ZXh0LmNoYXJhY3RlclN0eWxlTGltaXQocnVuU3RhcnQpKSB7CisKKyAgICAgICAgICAgIE9iamVjdCBuZXh0VmFsdWUgPSB0ZXh0LmNoYXJhY3RlclN0eWxlQXQocnVuU3RhcnQpLmdldChrZXkpOworCisgICAgICAgICAgICBpZiAobmV4dFZhbHVlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBuZXh0VmFsdWUgPSBkZWZhdWx0VmFsdWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghb2JqZWN0c0FyZUVxdWFsKGluaXRpYWxWYWx1ZSwgbmV4dFZhbHVlKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBNVGV4dFBhbmVsLk1VTFRJUExFX1ZBTFVFUzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBpbml0aWFsVmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgaW5zcGVjdHMgdGhlIGNoYXJhY3RlciBzdHlsZSBydW5zIGluIHRoZSBzZWxlY3Rpb24KKyAgICAgKiByYW5nZSAob3IgdGhlIHR5cGluZyBzdHlsZSBhdCB0aGUgaW5zZXJ0aW9uIHBvaW50KSBhbmQgcmV0dXJuczoKKyAgICAgKiA8dWw+CisgICAgICogPGxpPlRoZSB2YWx1ZSBvZiA8dHQ+a2V5PC90dD4sIGlmIHRoZSB2YWx1ZSBvZiA8dHQ+a2V5PC90dD4KKyAgICAgKiBpcyB0aGUgc2FtZSBpbiBhbGwgb2YgdGhlIHN0eWxlIHJ1bnMgaW4gdGhlIHNlbGVjdGlvbiwgb3I8L2xpPgorICAgICAqIDxsaT5udWxsLCBpZiB0d28gb3IgbW9yZSBzdHlsZSBydW5zIGhhdmUgZGlmZmVyZW50IHZhbHVlcyBmb3IgPHR0PmtleTwvdHQ+LjwvbGk+CisgICAgICogPC91bD4KKyAgICAgKiBJZiBhIHN0eWxlIHJ1biBkb2VzIG5vdCBjb250YWluIDx0dD5rZXk8L3R0PiwKKyAgICAgKiBpdHMgdmFsdWUgaXMgY29uc2lkZXJlZCB0byBiZSA8dHQ+ZGVmYXVsdFN0eWxlPC90dD4uCisgICAgICogVGhpcyBtZXRob2QgaXMgdXNlZnVsIGZvciBjb25maWd1cmluZyBzdHlsZSBtZW51cy4KKyAgICAgKiBAcGFyYW0ga2V5IHRoZSBrZXkgdXNlZCB0byByZXRyaWV2ZSB2YWx1ZXMgZm9yIGNvbXBhcmlzb24KKyAgICAgKiBAcGFyYW0gZGVmYXVsdFZhbHVlIHRoZSBpbXBsaWNpdCB2YWx1ZSBvZiA8dHQ+a2V5PC90dD4gaW4KKyAgICAgKiAgICAgc3R5bGUgcnVucyB3aGVyZSA8dHQ+a2V5PC90dD4gaXMgbm90IGRlZmluZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGdldENoYXJhY3RlclN0eWxlT3ZlclNlbGVjdGlvbihPYmplY3Qga2V5KSB7CisKKyAgICAgICAgVGV4dFJhbmdlIHNlbFJhbmdlOworICAgICAgICBpZiAoZlNlbGVjdGlvbiAhPSBudWxsKQorICAgICAgICAgICAgc2VsUmFuZ2UgPSBmU2VsZWN0aW9uLmdldFNlbGVjdGlvblJhbmdlKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNlbFJhbmdlID0gbmV3IFRleHRSYW5nZSgwLCAwKTsKKworICAgICAgICBpZiAoc2VsUmFuZ2Uuc3RhcnQgPT0gc2VsUmFuZ2UubGltaXQpIHsKKworICAgICAgICAgICAgQXR0cmlidXRlTWFwIGNvbXBTdHlsZTsKKworICAgICAgICAgICAgaWYgKGZFZGl0QmVoYXZpb3IgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGNvbXBTdHlsZSA9IGZFZGl0QmVoYXZpb3IuZ2V0SW5zZXJ0aW9uUG9pbnRTdHlsZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgY29tcFN0eWxlID0gVGV4dEVkaXRCZWhhdmlvci50eXBpbmdTdHlsZUF0KGZUZXh0LCBzZWxSYW5nZS5zdGFydCwgc2VsUmFuZ2UubGltaXQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBPYmplY3QgdmFsdWUgPSBjb21wU3R5bGUuZ2V0KGtleSk7CisgICAgICAgICAgICByZXR1cm4gdmFsdWU9PW51bGw/IGdldERlZmF1bHRWYWx1ZXMoKS5nZXQoa2V5KSA6IHZhbHVlOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGNvbnNpc3RlbnRDaGFyU3R5bGUoZlRleHQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsUmFuZ2Uuc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxSYW5nZS5saW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldERlZmF1bHRWYWx1ZXMoKS5nZXQoa2V5KSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBpbnNwZWN0cyB0aGUgcGFyYWdyYXBoIHN0eWxlIHJ1bnMgaW4gdGhlIHNlbGVjdGlvbgorICAgICAqIHJhbmdlIChvciB0aGUgdHlwaW5nIHN0eWxlIGF0IHRoZSBpbnNlcnRpb24gcG9pbnQpIGFuZCByZXR1cm5zOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+VGhlIHZhbHVlIG9mIDx0dD5rZXk8L3R0PiwgaWYgdGhlIHZhbHVlIG9mIDx0dD5rZXk8L3R0PgorICAgICAqIGlzIHRoZSBzYW1lIGluIGFsbCBvZiB0aGUgc3R5bGUgcnVucyBpbiB0aGUgc2VsZWN0aW9uLCBvcjwvbGk+CisgICAgICogPGxpPm51bGwsIGlmIHR3byBvciBtb3JlIHN0eWxlIHJ1bnMgaGF2ZSBkaWZmZXJlbnQgdmFsdWVzIGZvciA8dHQ+a2V5PC90dD4uPC9saT4KKyAgICAgKiA8L3VsPgorICAgICAqIElmIGEgc3R5bGUgcnVuIGRvZXMgbm90IGNvbnRhaW4gPHR0PmtleTwvdHQ+LAorICAgICAqIGl0cyB2YWx1ZSBpcyBjb25zaWRlcmVkIHRvIGJlIDx0dD5kZWZhdWx0U3R5bGU8L3R0Pi4KKyAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VmdWwgZm9yIGNvbmZpZ3VyaW5nIHN0eWxlIG1lbnVzLgorICAgICAqIEBwYXJhbSBrZXkgdGhlIGtleSB1c2VkIHRvIHJldHJpZXZlIHZhbHVlcyBmb3IgY29tcGFyaXNvbgorICAgICAqIEBwYXJhbSBkZWZhdWx0VmFsdWUgdGhlIGltcGxpY2l0IHZhbHVlIG9mIDx0dD5rZXk8L3R0PiBpbgorICAgICAqICAgICBzdHlsZSBydW5zIHdoZXJlIDx0dD5rZXk8L3R0PiBpcyBub3QgZGVmaW5lZAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgZ2V0UGFyYWdyYXBoU3R5bGVPdmVyU2VsZWN0aW9uKE9iamVjdCBrZXkpIHsKKworICAgICAgICBUZXh0UmFuZ2Ugc2VsUmFuZ2U7CisgICAgICAgIGlmIChmU2VsZWN0aW9uICE9IG51bGwpIHsKKyAgICAgICAgICAgIHNlbFJhbmdlID0gZlNlbGVjdGlvbi5nZXRTZWxlY3Rpb25SYW5nZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgc2VsUmFuZ2UgPSBuZXcgVGV4dFJhbmdlKDAsIDApOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHNlbFJhbmdlLnN0YXJ0ID09IHNlbFJhbmdlLmxpbWl0KSB7CisgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgcFN0eWxlID0gZlRleHQucGFyYWdyYXBoU3R5bGVBdChzZWxSYW5nZS5zdGFydCk7CisgICAgICAgICAgICBPYmplY3QgdmFsdWUgPSBwU3R5bGUuZ2V0KGtleSk7CisgICAgICAgICAgICByZXR1cm4gdmFsdWU9PW51bGw/IGdldERlZmF1bHRWYWx1ZXMoKS5nZXQoa2V5KSA6IHZhbHVlOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaW50IHBhcmFncmFwaFN0YXJ0ID0gc2VsUmFuZ2Uuc3RhcnQ7CisgICAgICAgICAgICBPYmplY3QgZGVmYXVsdFZhbHVlID0gZ2V0RGVmYXVsdFZhbHVlcygpLmdldChrZXkpOworICAgICAgICAgICAgT2JqZWN0IGluaXRpYWxWYWx1ZSA9IGZUZXh0LnBhcmFncmFwaFN0eWxlQXQocGFyYWdyYXBoU3RhcnQpLmdldChrZXkpOworICAgICAgICAgICAgaWYgKGluaXRpYWxWYWx1ZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgaW5pdGlhbFZhbHVlID0gZGVmYXVsdFZhbHVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmb3IgKHBhcmFncmFwaFN0YXJ0ID0gZlRleHQucGFyYWdyYXBoTGltaXQocGFyYWdyYXBoU3RhcnQpOworICAgICAgICAgICAgICAgICBwYXJhZ3JhcGhTdGFydCA8IHNlbFJhbmdlLmxpbWl0OworICAgICAgICAgICAgICAgICBwYXJhZ3JhcGhTdGFydCA9IGZUZXh0LnBhcmFncmFwaExpbWl0KHBhcmFncmFwaFN0YXJ0KSkgeworCisgICAgICAgICAgICAgICAgT2JqZWN0IG5leHRWYWx1ZSA9IGZUZXh0LnBhcmFncmFwaFN0eWxlQXQocGFyYWdyYXBoU3RhcnQpLmdldChrZXkpOworICAgICAgICAgICAgICAgIGlmIChuZXh0VmFsdWUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBuZXh0VmFsdWUgPSBkZWZhdWx0VmFsdWU7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKCFvYmplY3RzQXJlRXF1YWwoaW5pdGlhbFZhbHVlLCBuZXh0VmFsdWUpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBNVGV4dFBhbmVsLk1VTFRJUExFX1ZBTFVFUzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBpbml0aWFsVmFsdWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgdGhlIHNlbGVjdGVkIHRleHQgZnJvbSB0aGUgZG9jdW1lbnQgYW5kIHBsYWNlIGl0CisgICAgICogb24gdGhlIGNsaXBib2FyZC4gIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYgdGhlIHRleHQKKyAgICAgKiBpcyBub3QgZWRpdGFibGUsIG9yIGlmIG5vIHRleHQgaXMgc2VsZWN0ZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgY3V0KCkgeworICAgICAgICBmVGV4dENvbXBvbmVudC50ZXh0Q29udHJvbEV2ZW50T2NjdXJyZWQoQmVoYXZpb3IuQ1VULCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQbGFjZSB0aGUgc2VsZWN0ZWQgdGV4dCBvbiB0aGUgY2xpcGJvYXJkLiAgVGhpcyBtZXRob2QgaGFzCisgICAgICogbm8gZWZmZWN0IGlmIG5vIHRleHQgaXMgc2VsZWN0ZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgY29weSgpIHsKKyAgICAgICAgZlRleHRDb21wb25lbnQudGV4dENvbnRyb2xFdmVudE9jY3VycmVkKEJlaGF2aW9yLkNPUFksIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlcGxhY2UgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCB0ZXh0IHdpdGggdGhlIHRleHQgb24gdGhlIGNsaXBib2FyZC4KKyAgICAgKiBUaGlzIG1ldGhvZCBoYXMgbm8gZWZmZWN0IGlmIHRoZSB0ZXh0IGlzIG5vdCBlZGl0YWJsZSwgb3IgaWYgbm8KKyAgICAgKiB0ZXh0IGlzIG9uIHRoZSBjbGlwYm9hcmQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgcGFzdGUoKSB7CisgICAgICAgIGZUZXh0Q29tcG9uZW50LnRleHRDb250cm9sRXZlbnRPY2N1cnJlZChCZWhhdmlvci5QQVNURSwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVtb3ZlIHNlbGVjdGVkIHRleHQgZnJvbSB0aGUgZG9jdW1lbnQsIHdpdGhvdXQgYWx0ZXJpbmcgdGhlIGNsaXBib2FyZC4KKyAgICAgKiBUaGlzIG1ldGhvZCBoYXMgbm8gZWZmZWN0IGlmIHRoZQorICAgICAqIHRleHQgaXMgbm90IGVkaXRhYmxlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNsZWFyKCkgeworICAgICAgICBmVGV4dENvbXBvbmVudC50ZXh0Q29udHJvbEV2ZW50T2NjdXJyZWQoQmVoYXZpb3IuQ0xFQVIsIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFVuZG8gdGhlIG1vc3QgcmVjZW50IHRleHQgY2hhbmdlLiAgVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZgorICAgICAqIHRoZXJlIGlzIG5vIGNoYW5nZSB0byB1bmRvLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHVuZG8oKSB7CisgICAgICAgIGZUZXh0Q29tcG9uZW50LnRleHRDb250cm9sRXZlbnRPY2N1cnJlZChCZWhhdmlvci5VTkRPLCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWRvIHRoZSBtb3N0IHJlY2VudCB0ZXh0IGNoYW5nZS4gIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYKKyAgICAgKiB0aGVyZSBpcyBubyBjaGFuZ2UgdG8gcmVkby4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZWRvKCkgeworICAgICAgICBmVGV4dENvbXBvbmVudC50ZXh0Q29udHJvbEV2ZW50T2NjdXJyZWQoQmVoYXZpb3IuUkVETywgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBudW1iZXIgb2YgY29tbWFuZHMgdGhlIGNvbW1hbmQgbG9nIGNhbiBob2xkLgorICAgICAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBjb21tYW5kcyB0aGUgY29tbWFuZCBsb2cgY2FuIGhvbGQKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldENvbW1hbmRMb2dTaXplKCkgeworCisgICAgICAgIGlmIChmRWRpdEJlaGF2aW9yICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmRWRpdEJlaGF2aW9yLmdldENvbW1hbmRMb2dTaXplKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgbnVtYmVyIG9mIGNvbW1hbmRzIHRoZSBjb21tYW5kIGxvZyBjYW4gaG9sZC4gIEFsbAorICAgICAqIHJlZG9hYmxlIGNvbW1hbmRzIGFyZSByZW1vdmVkIHdoZW4gdGhpcyBtZXRob2QgaXMgY2FsbGVkLgorICAgICAqIEBwYXJhbSBzaXplIHRoZSBudW1iZXIgb2YgY29tbWFuZHMga2VwdCBpbiB0aGUgY29tbWFuZCBsb2cKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDb21tYW5kTG9nU2l6ZShpbnQgc2l6ZSkgeworICAgICAgICBmVGV4dENvbXBvbmVudC50ZXh0Q29udHJvbEV2ZW50T2NjdXJyZWQoQmVoYXZpb3IuU0VUX0NPTU1BTkRfTE9HX1NJWkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSW50ZWdlcihzaXplKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVtb3ZlIGFsbCBjb21tYW5kcyBmcm9tIHRoZSBjb21tYW5kIGxvZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjbGVhckNvbW1hbmRMb2coKSB7CisgICAgICAgIGZUZXh0Q29tcG9uZW50LnRleHRDb250cm9sRXZlbnRPY2N1cnJlZChCZWhhdmlvci5DTEVBUl9DT01NQU5EX0xPRywgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogTW9kaWZ5IHRoZSBjaGFyYWN0ZXIgc3R5bGVzIG9uIHRoZSBzZWxlY3RlZCBjaGFyYWN0ZXJzLiAgSWYgbm8gY2hhcmFjdGVycworICAgICAqIGFyZSBzZWxlY3RlZCwgbW9kaWZ5IHRoZSB0eXBpbmcgc3R5bGUuCisgICAgICogQHBhcmFtIG1vZGlmaWVyIHRoZSBTdHlsZU1vZGlmaWVyIHdpdGggd2hpY2ggdG8gbW9kaWZ5IHRoZSBzdHlsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBtb2RpZnlDaGFyYWN0ZXJTdHlsZU9uU2VsZWN0aW9uKFN0eWxlTW9kaWZpZXIgbW9kaWZpZXIpIHsKKyAgICAgICAgZlRleHRDb21wb25lbnQudGV4dENvbnRyb2xFdmVudE9jY3VycmVkKEJlaGF2aW9yLkNIQVJBQ1RFUl9TVFlMRV9NT0QsIG1vZGlmaWVyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNb2RpZnkgdGhlIHBhcmFncmFwaCBzdHlsZXMgaW4gcGFyYWdyYXBocyBjb250YWluaW5nIHNlbGVjdGVkIGNoYXJhY3RlcnMsIG9yCisgICAgICogdGhlIHBhcmFncmFwaCBjb250YWluaW5nIHRoZSBpbnNlcnRpb24gcG9pbnQuCisgICAgICogQHBhcmFtIG1vZGlmaWVyIHRoZSBTdHlsZU1vZGlmaWVyIHdpdGggd2hpY2ggdG8gbW9kaWZ5IHRoZSBzdHlsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBtb2RpZnlQYXJhZ3JhcGhTdHlsZU9uU2VsZWN0aW9uKFN0eWxlTW9kaWZpZXIgbW9kaWZpZXIpIHsKKyAgICAgICAgZlRleHRDb21wb25lbnQudGV4dENvbnRyb2xFdmVudE9jY3VycmVkKEJlaGF2aW9yLlBBUkFHUkFQSF9TVFlMRV9NT0QsIG1vZGlmaWVyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIEtleVJlbWFwIHVzZWQgdG8gcHJvY2VzcyBrZXkgZXZlbnRzLgorICAgICAqIEByZXR1cm4gdGhlIGtleSByZW1hcCB1c2VkIHRvIHByb2Nlc3Mga2V5IGV2ZW50cworICAgICAqIEBzZWUgI3NldEtleVJlbWFwCisgICAgICovCisgICAgcHVibGljIEtleVJlbWFwIGdldEtleVJlbWFwKCkgeworCisgICAgICAgIHJldHVybiBmUmVtYXA7CisgICAgfQorCisgICAgLyoqCisgICAgICogVXNlIHRoZSBnaXZlbiBLZXlSZW1hcCB0byBtYXAga2V5IGV2ZW50cyB0byBjaGFyYWN0ZXJzLgorICAgICAqIE9ubHkga2V5CisgICAgICogZXZlbnRzIGFyZSBhZmZlY3RlZCBieSB0aGUgcmVtYXA7ICBvdGhlciB0ZXh0IGVudGVyaW5nIHRoZQorICAgICAqIGNvbnRyb2wgKHZpYSB0aGUgY2xpcGJvYXJkLCBmb3IgZXhhbXBsZSkgaXMgbm90IGFmZmVjdGVkCisgICAgICogYnkgdGhlIEtleVJlbWFwLgorICAgICAqIDxwPgorICAgICAqIERvIG5vdCBwYXNzIDx0dD5udWxsPC90dD4gdG8gdGhpcyBtZXRob2QgdG8gbGVhdmUga2V5CisgICAgICogZXZlbnRzIHVubWFwcGVkLiAgSW5zdGVhZCwgdXNlIDx0dD5LZXlSZW1hcC5nZXRJZGVudGl0eVJlbWFwKCk8L3R0PgorICAgICAqIEBwYXJhbSByZW1hcCB0aGUgS2V5UmVtYXAgdG8gdXNlIGZvciBtYXBwaW5nIGtleSBldmVudHMgdG8gY2hhcmFjdGVycworICAgICAqIEBleGNlcHRpb24gamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uIGlmIHBhcmFtZXRlciBpcyBudWxsCisgICAgICogQHNlZSBLZXlSZW1hcAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEtleVJlbWFwKEtleVJlbWFwIHJlbWFwKSB7CisKKyAgICAgICAgaWYgKHJlbWFwID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigicmVtYXAgY2FuJ3QgYmUgbnVsbCIpOworICAgICAgICB9CisKKyAgICAgICAgZlJlbWFwID0gcmVtYXA7CisgICAgICAgIGlmIChmRWRpdEJlaGF2aW9yICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZFZGl0QmVoYXZpb3Iuc2V0S2V5UmVtYXAocmVtYXApOworICAgICAgICB9CisKKyAgICAgICAgZkJyb2FkY2FzdGVyLnRleHRTdGF0ZUNoYW5nZWQoVGV4dFBhbmVsRXZlbnQuS0VZUkVNQVBfQ0hBTkdFRCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBtb2RpZmljYXRpb24gZmxhZyBvZiB0aGUgY3VycmVudCB0ZXh0IGNoYW5nZS4KKyAgICAgKiBAc2VlICNzZXRNb2RpZmllZAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzTW9kaWZpZWQoKSB7CisKKyAgICAgICAgaWYgKGZFZGl0QmVoYXZpb3IgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZFZGl0QmVoYXZpb3IuaXNNb2RpZmllZCgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZNb2RpZmllZDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgbW9kaWZpY2F0aW9uIGZsYWcgb2YgdGhlIGN1cnJlbnQgdGV4dCBjaGFuZ2UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TW9kaWZpZWQoYm9vbGVhbiBtb2RpZmllZCkgeworCisgICAgICAgIGJvb2xlYW4gaGFuZGxlZCA9IGZUZXh0Q29tcG9uZW50LnRleHRDb250cm9sRXZlbnRPY2N1cnJlZCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJlaGF2aW9yLlNFVF9NT0RJRklFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkPyBCb29sZWFuLlRSVUUgOiBCb29sZWFuLkZBTFNFKTsKKyAgICAgICAgaWYgKCFoYW5kbGVkKSB7CisgICAgICAgICAgICBmTW9kaWZpZWQgPSBtb2RpZmllZDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIGlzIGZvciBwZXJmLXRlc3Rpbmcgb25seSEKKyAgICAgKi8KKyAgICB2b2lkIGhhbmRsZUtleUV2ZW50KGphdmEuYXd0LmV2ZW50LktleUV2ZW50IGtleUV2ZW50KSB7CisgICAgCisgICAgICAgIENvbXBvbmVudCBob3N0ID0gZlRleHRDb21wb25lbnQuZ2V0SG9zdCgpOworICAgICAgICBpZiAoaG9zdCAhPSBudWxsKSB7CisgICAgICAgICAgICBob3N0LmRpc3BhdGNoRXZlbnQoa2V5RXZlbnQpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0FyYWJpY1RyYW5zbGl0ZXJhdGlvbi5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0FyYWJpY1RyYW5zbGl0ZXJhdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNlMjgzMWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvQXJhYmljVHJhbnNsaXRlcmF0aW9uLmphdmEKQEAgLTAsMCArMSwxODAgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IEFyYWJpY1RyYW5zbGl0ZXJhdGlvbi5qYXZhLHYgJCAkUmV2aXNpb246IDEuMSAkICREYXRlOiAyMDAwLzA0LzIwIDE3OjUxOjIzICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvKgorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgsIEFsbCBSaWdodHMgUmVzZXJ2ZWQKKyAqLworCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCisvKgorRm9yIGFueSBpbmNvbWluZyBjaGFyYWN0ZXIgQworaWYgeW91IGNhbiBtYXAgQyB1c2luZyB0aGUgZm9sbG93aW5nIEZha2VBcmFiaWNUYWJsZSwgcmV0dXJuCitGYWtlQXJhYmljVGFibGUoQykKK2Vsc2UgaWYgQyBpcyBmcm9tIEEgdGhyb3VnaCBaLCByZXR1cm4gRmFrZUFyYWJpY1RhYmxlKGxvd2VyY2FzZShDKSkKK2Vsc2UganVzdCByZXR1cm4gQworCisKK0Zha2VBcmFiaWNUYWJsZSBpcyBkZWZpbmVkIGJ5IHRoZSBmb2xsb3dpbmcgbWFwcGluZworCiswICAgMDY2MDtBUkFCSUMtSU5ESUMgRElHSVQgWkVSTztOZDswO0FOOzswOzA7MDtOOzs7OzsKKzEgICAwNjYxO0FSQUJJQy1JTkRJQyBESUdJVCBPTkU7TmQ7MDtBTjs7MTsxOzE7Tjs7Ozs7CisyICAgMDY2MjtBUkFCSUMtSU5ESUMgRElHSVQgVFdPO05kOzA7QU47OzI7MjsyO047Ozs7OworMyAgIDA2NjM7QVJBQklDLUlORElDIERJR0lUIFRIUkVFO05kOzA7QU47OzM7MzszO047Ozs7OworNCAgIDA2NjQ7QVJBQklDLUlORElDIERJR0lUIEZPVVI7TmQ7MDtBTjs7NDs0OzQ7Tjs7Ozs7Cis1ICAgMDY2NTtBUkFCSUMtSU5ESUMgRElHSVQgRklWRTtOZDswO0FOOzs1OzU7NTtOOzs7OzsKKzYgICAwNjY2O0FSQUJJQy1JTkRJQyBESUdJVCBTSVg7TmQ7MDtBTjs7Njs2OzY7Tjs7Ozs7Cis3ICAgMDY2NztBUkFCSUMtSU5ESUMgRElHSVQgU0VWRU47TmQ7MDtBTjs7Nzs3Ozc7Tjs7Ozs7Cis4ICAgMDY2ODtBUkFCSUMtSU5ESUMgRElHSVQgRUlHSFQ7TmQ7MDtBTjs7ODs4Ozg7Tjs7Ozs7Cis5ICAgMDY2OTtBUkFCSUMtSU5ESUMgRElHSVQgTklORTtOZDswO0FOOzs5Ozk7OTtOOzs7OzsKKworJSAgIDA2NkE7QVJBQklDIFBFUkNFTlQgU0lHTjtQbzswO0VUOzs7OztOOzs7OzsKKy4gICAwNjZCO0FSQUJJQyBERUNJTUFMIFNFUEFSQVRPUjtQbzswO0FOOzs7OztOOzs7OzsKKywgICAwNjBDO0FSQUJJQyBDT01NQTtQbzswO1I7Ozs7O047Ozs7OworLSAgIDA2NDA7QVJBQklDIFRBVFdFRUw7TG07MDtSOzs7OztOOzs7OzsKKycgICAwNjUyO0FSQUJJQyBTVUtVTjtNbjszNDtSOzs7OztOOzs7OzsKKyIgICAwNjUxO0FSQUJJQyBTSEFEREE7TW47MzM7Ujs7Ozs7TjtBUkFCSUMgU0hBRERBSDs7OzsKKzsgICAwNjFCO0FSQUJJQyBTRU1JQ09MT047UG87MDtSOzs7OztOOzs7OzsKKz8gICAwNjFGO0FSQUJJQyBRVUVTVElPTiBNQVJLO1BvOzA7Ujs7Ozs7Tjs7Ozs7CisKK2EgICAwNjI3O0FSQUJJQyBMRVRURVIgQUxFRjtMbzswO1I7Ozs7O047Ozs7OworQSAgIDA2Mzk7QVJBQklDIExFVFRFUiBBSU47TG87MDtSOzs7OztOOzs7OzsKK2IgICAwNjI4O0FSQUJJQyBMRVRURVIgQkVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEJBQTs7OzsKK2MgICAwNjM1O0FSQUJJQyBMRVRURVIgU0FEO0xvOzA7Ujs7Ozs7Tjs7Ozs7CitkICAgMDYyRjtBUkFCSUMgTEVUVEVSIERBTDtMbzswO1I7Ozs7O047Ozs7OworRCAgIDA2MzA7QVJBQklDIExFVFRFUiBUSEFMO0xvOzA7Ujs7Ozs7Tjs7Ozs7CitFICAgMDY0QjtBUkFCSUMgRkFUSEFUQU47TW47Mjc7Ujs7Ozs7Tjs7Ozs7CitlICAgMDY0RTtBUkFCSUMgRkFUSEE7TW47MzA7Ujs7Ozs7TjtBUkFCSUMgRkFUSEFIOzs7OworZiAgIDA2NDE7QVJBQklDIExFVFRFUiBGRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgRkE7Ozs7CitnICAgMDYzQTtBUkFCSUMgTEVUVEVSIEdIQUlOO0xvOzA7Ujs7Ozs7Tjs7Ozs7CitoICAgMDYyRDtBUkFCSUMgTEVUVEVSIEhBSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBIQUE7Ozs7CitIICAgMDY0NztBUkFCSUMgTEVUVEVSIEhFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBIQTs7OzsKK0kgICAwNjREO0FSQUJJQyBLQVNSQVRBTjtNbjsyOTtSOzs7OztOOzs7OzsKK2kgICAwNjUwO0FSQUJJQyBLQVNSQTtNbjszMjtSOzs7OztOO0FSQUJJQyBLQVNSQUg7Ozs7CitqICAgMDYyQztBUkFCSUMgTEVUVEVSIEpFRU07TG87MDtSOzs7OztOOzs7OzsKK0sgICAwNjJFO0FSQUJJQyBMRVRURVIgS0hBSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBLSEFBOzs7OworayAgIDA2NDM7QVJBQklDIExFVFRFUiBLQUY7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgQ0FGOzs7OworbCAgIDA2NDQ7QVJBQklDIExFVFRFUiBMQU07TG87MDtSOzs7OztOOzs7OzsKK20gICAwNjQ1O0FSQUJJQyBMRVRURVIgTUVFTTtMbzswO1I7Ozs7O047Ozs7OworbiAgIDA2NDY7QVJBQklDIExFVFRFUiBOT09OO0xvOzA7Ujs7Ozs7Tjs7Ozs7CitvICAgMDY0RjtBUkFCSUMgREFNTUE7TW47MzE7Ujs7Ozs7TjtBUkFCSUMgREFNTUFIOzs7OworcCAgIDA2Mjg7QVJBQklDIExFVFRFUiBCRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgQkFBOzs7OworcSAgIDA2NDI7QVJBQklDIExFVFRFUiBRQUY7TG87MDtSOzs7OztOOzs7OzsKK3IgICAwNjMxO0FSQUJJQyBMRVRURVIgUkVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFJBOzs7OworcyAgIDA2MzM7QVJBQklDIExFVFRFUiBTRUVOO0xvOzA7Ujs7Ozs7Tjs7Ozs7CitTICAgMDYzNDtBUkFCSUMgTEVUVEVSIFNIRUVOO0xvOzA7Ujs7Ozs7Tjs7Ozs7Cit0ICAgMDYyQTtBUkFCSUMgTEVUVEVSIFRFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBUQUE7Ozs7CitUICAgMDYyQjtBUkFCSUMgTEVUVEVSIFRIRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgVEhBQTs7OzsKK1UgICAwNjRDO0FSQUJJQyBEQU1NQVRBTjtNbjsyODtSOzs7OztOOzs7OzsKK3UgICAwNjRGO0FSQUJJQyBEQU1NQTtNbjszMTtSOzs7OztOO0FSQUJJQyBEQU1NQUg7Ozs7Cit2ICAgMDY0MTtBUkFCSUMgTEVUVEVSIEZFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBGQTs7OzsKK3cgICAwNjQ4O0FSQUJJQyBMRVRURVIgV0FXO0xvOzA7Ujs7Ozs7Tjs7Ozs7Cit4ICAgMDYzMztBUkFCSUMgTEVUVEVSIFNFRU47TG87MDtSOzs7OztOOzs7OzsKK3kgICAwNjRBO0FSQUJJQyBMRVRURVIgWUVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFlBOzs7OworeiAgIDA2MzI7QVJBQklDIExFVFRFUiBaQUlOO0xvOzA7Ujs7Ozs7Tjs7Ozs7CitaICAgMDYzODtBUkFCSUMgTEVUVEVSIFpBSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBESEFIOzs7OworCisqLworCisvKioKKyAqIFRoaXMgY2xhc3MgaW1wbGVtZW50cyBLZXlSZW1hcCB0byBwcm9kdWNlIHRyYW5zbGl0ZXJhdGVkIEFyYWJpYworICogY2hhcmFjdGVycyBmcm9tIExhdGluLTEgY2hhcmFjdGVycy4KKyAqLworCitmaW5hbCBjbGFzcyBBcmFiaWNUcmFuc2xpdGVyYXRpb24gZXh0ZW5kcyBLZXlSZW1hcCB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHB1YmxpYyBjaGFyIHJlbWFwKGNoYXIgYykgeworCisgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgY2FzZSAnMCc6IHJldHVybiAnXHUwNjYwJzsgLy8gQVJBQklDLUlORElDIERJR0lUIFpFUk8KKyAgICAgICAgICAgIGNhc2UgJzEnOiByZXR1cm4gJ1x1MDY2MSc7IC8vIEFSQUJJQy1JTkRJQyBESUdJVCBPTkUKKyAgICAgICAgICAgIGNhc2UgJzInOiByZXR1cm4gJ1x1MDY2Mic7IC8vIEFSQUJJQy1JTkRJQyBESUdJVCBUV08KKyAgICAgICAgICAgIGNhc2UgJzMnOiByZXR1cm4gJ1x1MDY2Myc7IC8vIEFSQUJJQy1JTkRJQyBESUdJVCBUSFJFRQorICAgICAgICAgICAgY2FzZSAnNCc6IHJldHVybiAnXHUwNjY0JzsgLy8gQVJBQklDLUlORElDIERJR0lUIEZPVVIKKyAgICAgICAgICAgIGNhc2UgJzUnOiByZXR1cm4gJ1x1MDY2NSc7IC8vIEFSQUJJQy1JTkRJQyBESUdJVCBGSVZFCisgICAgICAgICAgICBjYXNlICc2JzogcmV0dXJuICdcdTA2NjYnOyAvLyBBUkFCSUMtSU5ESUMgRElHSVQgU0lYCisgICAgICAgICAgICBjYXNlICc3JzogcmV0dXJuICdcdTA2NjcnOyAvLyBBUkFCSUMtSU5ESUMgRElHSVQgU0VWRU4KKyAgICAgICAgICAgIGNhc2UgJzgnOiByZXR1cm4gJ1x1MDY2OCc7IC8vIEFSQUJJQy1JTkRJQyBESUdJVCBFSUdIVAorICAgICAgICAgICAgY2FzZSAnOSc6IHJldHVybiAnXHUwNjY5JzsgLy8gQVJBQklDLUlORElDIERJR0lUIE5JTkUKKworICAgICAgICAgICAgY2FzZSAnJSc6IHJldHVybiAnXHUwNjZBJzsgLy8gQVJBQklDIFBFUkNFTlQgU0lHTgorICAgICAgICAgICAgLy8gdGhlIFRyYWRpdGlvbmFsIEFyYWJpYyBmb250IGRvZXMgbm90IGNvbnRhaW4gdGhpcyBjaGFyYWN0ZXIKKyAgICAgICAgICAgIC8vIGNhc2UgJy4nOiByZXR1cm4gJ1x1MDY2Qic7IC8vIEFSQUJJQyBERUNJTUFMIFNFUEFSQVRPUgorICAgICAgICAgICAgY2FzZSAnLCc6IHJldHVybiAnXHUwNjBDJzsgLy8gQVJBQklDIENPTU1BCisgICAgICAgICAgICBjYXNlICctJzogcmV0dXJuICdcdTA2NDAnOyAvLyBBUkFCSUMgVEFUV0VFTAorICAgICAgICAgICAgY2FzZSAnXCcnOiByZXR1cm4gJ1x1MDY1Mic7IC8vIEFSQUJJQyBTVUtVTgorICAgICAgICAgICAgY2FzZSAnIic6IHJldHVybiAnXHUwNjUxJzsgLy8gQVJBQklDIFNIQUREQQorICAgICAgICAgICAgY2FzZSAnOyc6IHJldHVybiAnXHUwNjFCJzsgLy8gQVJBQklDIFNFTUlDT0xPTgorICAgICAgICAgICAgY2FzZSAnPyc6IHJldHVybiAnXHUwNjFGJzsgLy8gQVJBQklDIFFVRVNUSU9OIE1BUksKKworICAgICAgICAgICAgY2FzZSAnYSc6IHJldHVybiAnXHUwNjI3JzsgLy8gQVJBQklDIExFVFRFUiBBTEVGCisgICAgICAgICAgICBjYXNlICdBJzogcmV0dXJuICdcdTA2MzknOyAvLyBBUkFCSUMgTEVUVEVSIEFJTgorICAgICAgICAgICAgY2FzZSAnYic6IHJldHVybiAnXHUwNjI4JzsgLy8gQVJBQklDIExFVFRFUiBCRUgKKyAgICAgICAgICAgIGNhc2UgJ0InOiByZXR1cm4gJ1x1MDYyOCc7IC8vIEFSQUJJQyBMRVRURVIgQkVICisgICAgICAgICAgICBjYXNlICdjJzogcmV0dXJuICdcdTA2MzUnOyAvLyBBUkFCSUMgTEVUVEVSIFNBRAorICAgICAgICAgICAgY2FzZSAnQyc6IHJldHVybiAnXHUwNjM1JzsgLy8gQVJBQklDIExFVFRFUiBTQUQKKyAgICAgICAgICAgIGNhc2UgJ2QnOiByZXR1cm4gJ1x1MDYyRic7IC8vIEFSQUJJQyBMRVRURVIgREFMCisgICAgICAgICAgICBjYXNlICdEJzogcmV0dXJuICdcdTA2MzAnOyAvLyBBUkFCSUMgTEVUVEVSIFRIQUwKKyAgICAgICAgICAgIGNhc2UgJ2UnOiByZXR1cm4gJ1x1MDY0RSc7IC8vIEFSQUJJQyBGQVRIQQorICAgICAgICAgICAgY2FzZSAnRSc6IHJldHVybiAnXHUwNjRCJzsgLy8gQVJBQklDIEZBVEhBVEFOCisgICAgICAgICAgICBjYXNlICdmJzogcmV0dXJuICdcdTA2NDEnOyAvLyBBUkFCSUMgTEVUVEVSIEZFSAorICAgICAgICAgICAgY2FzZSAnRic6IHJldHVybiAnXHUwNjQxJzsgLy8gQVJBQklDIExFVFRFUiBGRUgKKyAgICAgICAgICAgIGNhc2UgJ2cnOiByZXR1cm4gJ1x1MDYzQSc7IC8vIEFSQUJJQyBMRVRURVIgR0hBSU4KKyAgICAgICAgICAgIGNhc2UgJ0cnOiByZXR1cm4gJ1x1MDYzQSc7IC8vIEFSQUJJQyBMRVRURVIgR0hBSU4KKyAgICAgICAgICAgIGNhc2UgJ2gnOiByZXR1cm4gJ1x1MDYyRCc7IC8vIEFSQUJJQyBMRVRURVIgSEFICisgICAgICAgICAgICBjYXNlICdIJzogcmV0dXJuICdcdTA2NDcnOyAvLyBBUkFCSUMgTEVUVEVSIEhFSAorICAgICAgICAgICAgY2FzZSAnaSc6IHJldHVybiAnXHUwNjUwJzsgLy8gQVJBQklDIEtBU1JBCisgICAgICAgICAgICBjYXNlICdJJzogcmV0dXJuICdcdTA2NEQnOyAvLyBBUkFCSUMgS0FTUkFUQU4KKyAgICAgICAgICAgIGNhc2UgJ2onOiByZXR1cm4gJ1x1MDYyQyc7IC8vIEFSQUJJQyBMRVRURVIgSkVFTQorICAgICAgICAgICAgY2FzZSAnSic6IHJldHVybiAnXHUwNjJDJzsgLy8gQVJBQklDIExFVFRFUiBKRUVNCisgICAgICAgICAgICBjYXNlICdrJzogcmV0dXJuICdcdTA2NDMnOyAvLyBBUkFCSUMgTEVUVEVSIEtBRgorICAgICAgICAgICAgY2FzZSAnSyc6IHJldHVybiAnXHUwNjJFJzsgLy8gQVJBQklDIExFVFRFUiBLSEFICisgICAgICAgICAgICBjYXNlICdsJzogcmV0dXJuICdcdTA2NDQnOyAvLyBBUkFCSUMgTEVUVEVSIExBTQorICAgICAgICAgICAgY2FzZSAnTCc6IHJldHVybiAnXHUwNjQ0JzsgLy8gQVJBQklDIExFVFRFUiBMQU0KKyAgICAgICAgICAgIGNhc2UgJ20nOiByZXR1cm4gJ1x1MDY0NSc7IC8vIEFSQUJJQyBMRVRURVIgTUVFTQorICAgICAgICAgICAgY2FzZSAnTSc6IHJldHVybiAnXHUwNjQ1JzsgLy8gQVJBQklDIExFVFRFUiBNRUVNCisgICAgICAgICAgICBjYXNlICduJzogcmV0dXJuICdcdTA2NDYnOyAvLyBBUkFCSUMgTEVUVEVSIE5PT04KKyAgICAgICAgICAgIGNhc2UgJ04nOiByZXR1cm4gJ1x1MDY0Nic7IC8vIEFSQUJJQyBMRVRURVIgTk9PTgorICAgICAgICAgICAgY2FzZSAnbyc6IHJldHVybiAnXHUwNjRGJzsgLy8gQVJBQklDIERBTU1BCisgICAgICAgICAgICBjYXNlICdPJzogcmV0dXJuICdcdTA2NEYnOyAvLyBBUkFCSUMgREFNTUEKKyAgICAgICAgICAgIGNhc2UgJ3AnOiByZXR1cm4gJ1x1MDYyOCc7IC8vIEFSQUJJQyBMRVRURVIgQkVICisgICAgICAgICAgICBjYXNlICdQJzogcmV0dXJuICdcdTA2MjgnOyAvLyBBUkFCSUMgTEVUVEVSIEJFSAorICAgICAgICAgICAgY2FzZSAncSc6IHJldHVybiAnXHUwNjQyJzsgLy8gQVJBQklDIExFVFRFUiBRQUYKKyAgICAgICAgICAgIGNhc2UgJ1EnOiByZXR1cm4gJ1x1MDY0Mic7IC8vIEFSQUJJQyBMRVRURVIgUUFGCisgICAgICAgICAgICBjYXNlICdyJzogcmV0dXJuICdcdTA2MzEnOyAvLyBBUkFCSUMgTEVUVEVSIFJFSAorICAgICAgICAgICAgY2FzZSAnUic6IHJldHVybiAnXHUwNjMxJzsgLy8gQVJBQklDIExFVFRFUiBSRUgKKyAgICAgICAgICAgIGNhc2UgJ3MnOiByZXR1cm4gJ1x1MDYzMyc7IC8vIEFSQUJJQyBMRVRURVIgU0VFTgorICAgICAgICAgICAgY2FzZSAnUyc6IHJldHVybiAnXHUwNjM0JzsgLy8gQVJBQklDIExFVFRFUiBTSEVFTgorICAgICAgICAgICAgY2FzZSAndCc6IHJldHVybiAnXHUwNjJBJzsgLy8gQVJBQklDIExFVFRFUiBURUgKKyAgICAgICAgICAgIGNhc2UgJ1QnOiByZXR1cm4gJ1x1MDYyQic7IC8vIEFSQUJJQyBMRVRURVIgVEhFSAorICAgICAgICAgICAgY2FzZSAnVSc6IHJldHVybiAnXHUwNjRDJzsgLy8gQVJBQklDIERBTU1BVEFOCisgICAgICAgICAgICBjYXNlICd1JzogcmV0dXJuICdcdTA2NEYnOyAvLyBBUkFCSUMgREFNTUEKKyAgICAgICAgICAgIGNhc2UgJ3YnOiByZXR1cm4gJ1x1MDY0MSc7IC8vIEFSQUJJQyBMRVRURVIgRkVICisgICAgICAgICAgICBjYXNlICdWJzogcmV0dXJuICdcdTA2NDEnOyAvLyBBUkFCSUMgTEVUVEVSIEZFSAorICAgICAgICAgICAgY2FzZSAndyc6IHJldHVybiAnXHUwNjQ4JzsgLy8gQVJBQklDIExFVFRFUiBXQVcKKyAgICAgICAgICAgIGNhc2UgJ1cnOiByZXR1cm4gJ1x1MDY0OCc7IC8vIEFSQUJJQyBMRVRURVIgV0FXCisgICAgICAgICAgICBjYXNlICd4JzogcmV0dXJuICdcdTA2MzMnOyAvLyBBUkFCSUMgTEVUVEVSIFNFRU4KKyAgICAgICAgICAgIGNhc2UgJ1gnOiByZXR1cm4gJ1x1MDYzMyc7IC8vIEFSQUJJQyBMRVRURVIgU0VFTgorICAgICAgICAgICAgY2FzZSAneSc6IHJldHVybiAnXHUwNjRBJzsgLy8gQVJBQklDIExFVFRFUiBZRUgKKyAgICAgICAgICAgIGNhc2UgJ1knOiByZXR1cm4gJ1x1MDY0QSc7IC8vIEFSQUJJQyBMRVRURVIgWUVICisgICAgICAgICAgICBjYXNlICd6JzogcmV0dXJuICdcdTA2MzInOyAvLyBBUkFCSUMgTEVUVEVSIFpBSU4KKyAgICAgICAgICAgIGNhc2UgJ1onOiByZXR1cm4gJ1x1MDYzOCc7IC8vIEFSQUJJQyBMRVRURVIgWkFICisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gYzsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvQmVoYXZpb3IuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9CZWhhdmlvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIzYzc4ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvQmVoYXZpb3IuamF2YQpAQCAtMCwwICsxLDIwMyBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogQmVoYXZpb3IuamF2YSx2ICQgJFJldmlzaW9uOiAxLjEgJCAkRGF0ZTogMjAwMC8wNC8yMCAxNzo1MToyMyAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworaW1wb3J0IGphdmEuYXd0LkdyYXBoaWNzOworaW1wb3J0IGphdmEuYXd0LlJlY3RhbmdsZTsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkZvY3VzRXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuS2V5RXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuTW91c2VFdmVudDsKKworLyoqIEEgY2xhc3MgdGhhdCBoYW5kbGVzIGV2ZW50cyBmb3IgYSBCZWhhdmlvck93bmVyLgorKiBBIGJlaGF2aW9yIGVuYWNwc3VsYXRlcyBzb21lIHBpZWNlIG9mIHRoZSBldmVudC1oYW5kbGluZyBsb2dpYyBmb3IgYSBjb21wb25lbnQuCisqIFRoaXMgYWxsb3dzIHRoZSBjbGllbnQgdG8gc2VwYXJhdGUgZXZlbnQtaGFuZGxpbmcgbG9naWMgb3V0IGludG8gc2VwYXJhdGUgY2xhc3NlcworKiBhY2NvcmRpbmcgdG8gZnVuY3Rpb24sIG9yIHRvIGR5bmFtaWNhbGx5IGNoYW5nZSB0aGUgd2F5IGEgY29tcG9uZW50IGhhbmRsZXMKKyogZXZlbnRzIHdpdGhvdXQgYWRkaW5nIGEgbG90IG9mIHNwZWNpYWwtY2FzZSBjb2RlIHRvIHRoZSBwYW5lbCBpdHNlbGYuCisqIEJlaGF2aW9ycyBhcmUgc3RvcmVkIGluIGEgbGlua2VkIGxpc3QsIGFuZCBhbGwgYmVoYXZpb3JzIGdldCBhIGNyYWNrIGF0IGFuIGV2ZW50IGJlZm9yZQorKiB0aGUgb3duZXIgZ2V0cyBhIGNyYWNrIGF0IHRoZW0gKHJpZ2h0IG5vdywgd2UgcmVseSBvbiBvYmplY3RzIHRoYXQgaW1wbGVtZW50CisqIEJlaGF2aW9yT3duZXIgdG8gc3VwcG9ydCB0aGVzZSBzZW1hbnRpY3MpLgorKiBCZWhhdmlvciBwcm92aWRlcyBhbGwgdGhlIHNhbWUgZXZlbnQtaGFuZGxpbmcgZnVuY3Rpb25zIHRoYXQgQ29tcG9uZW50IHByb3ZpZGVzLCBhbmQKKyogdGhleSBhbGwgaGF2ZSBleGFjdGx5IHRoZSBzYW1lIHN5bnRheCBhbmQgc2VtYW50aWNzLiAqLworYWJzdHJhY3QgY2xhc3MgQmVoYXZpb3IgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIEJlaGF2aW9yIGZOZXh0QmVoYXZpb3IgPSBudWxsOworICAgIHByaXZhdGUgQmVoYXZpb3JPd25lciBmT3duZXIgPSBudWxsOworCisgICAgc3RhdGljIGNsYXNzIEV2ZW50VHlwZSB7CisKKyAgICAgICAgRXZlbnRUeXBlKCkgeworICAgICAgICB9CisgICAgfQorCisgICAgLy8gZXZlbnRzIC0gc2hvdWxkIHRoZXNlIGJlIGluIFRleHRQYW5lbCAob3IgZWxzZXdoZXJlKT8KKworICAgIC8vIFRoaXMgZXZlbnQncyBXSEFUIHBhcmFtZXRlciBpcyBhIFRleHRSYW5nZSBpbnN0YW5jZQorICAgIHN0YXRpYyBmaW5hbCBFdmVudFR5cGUgU0VMRUNUID0gbmV3IEV2ZW50VHlwZSgpOworCisgICAgLy8gTm8gV0hBVCBwYXJhbSBmb3IgdGhlc2U6CisgICAgc3RhdGljIGZpbmFsIEV2ZW50VHlwZSBDVVQgPSBuZXcgRXZlbnRUeXBlKCk7CisgICAgc3RhdGljIGZpbmFsIEV2ZW50VHlwZSBDT1BZID0gbmV3IEV2ZW50VHlwZSgpOworICAgIHN0YXRpYyBmaW5hbCBFdmVudFR5cGUgUEFTVEUgPSBuZXcgRXZlbnRUeXBlKCk7CisgICAgc3RhdGljIGZpbmFsIEV2ZW50VHlwZSBDTEVBUiA9IG5ldyBFdmVudFR5cGUoKTsKKyAgICBzdGF0aWMgZmluYWwgRXZlbnRUeXBlIFVORE8gPSBuZXcgRXZlbnRUeXBlKCk7CisgICAgc3RhdGljIGZpbmFsIEV2ZW50VHlwZSBSRURPID0gbmV3IEV2ZW50VHlwZSgpOworICAgIHN0YXRpYyBmaW5hbCBFdmVudFR5cGUgQ0xFQVJfQ09NTUFORF9MT0cgPSBuZXcgRXZlbnRUeXBlKCk7CisKKyAgICAvLyBXSEFUIHBhcmFtIGlzIGEgU3R5bGVNb2RpZmllcgorICAgIHN0YXRpYyBmaW5hbCBFdmVudFR5cGUgQ0hBUkFDVEVSX1NUWUxFX01PRCA9IG5ldyBFdmVudFR5cGUoKTsKKyAgICBzdGF0aWMgZmluYWwgRXZlbnRUeXBlIFBBUkFHUkFQSF9TVFlMRV9NT0QgPSBuZXcgRXZlbnRUeXBlKCk7CisKKyAgICAvLyBXaXRoIHRoaXMgZXZlbnQsIHZhbHVlcyBvZiB0aGUgV0hBVCBwYXJhbWV0ZXIgYXJlCisgICAgLy8gZWl0aGVyIEJvb2xlYW4uVFJVRSBvciBCb29sZWFuLkZBTFNFCisgICAgc3RhdGljIGZpbmFsIEV2ZW50VHlwZSBTRVRfTU9ESUZJRUQgPSBuZXcgRXZlbnRUeXBlKCk7CisKKyAgICAvLyBXSEFUIHBhcmFtIGlzIGEgVGV4dFJlcGxhY2VtZW50CisgICAgc3RhdGljIGZpbmFsIEV2ZW50VHlwZSBSRVBMQUNFID0gbmV3IEV2ZW50VHlwZSgpOworCisgICAgLy8gV0hBVCBwYXJhbSBpcyBhbiBJbnRlZ2VyCisgICAgc3RhdGljIGZpbmFsIEV2ZW50VHlwZSBTRVRfQ09NTUFORF9MT0dfU0laRSA9IG5ldyBFdmVudFR5cGUoKTsKKworICAgIHB1YmxpYyBCZWhhdmlvcigpIHsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBhZGRUb093bmVyKEJlaGF2aW9yT3duZXIgb3duZXIpIHsKKyAgICAgICAgcmVtb3ZlRnJvbU93bmVyKCk7CisgICAgICAgIGZPd25lciA9IG93bmVyOworICAgICAgICBzZXROZXh0QmVoYXZpb3Iob3duZXIuZ2V0QmVoYXZpb3IoKSk7CisgICAgICAgIG93bmVyLnNldEJlaGF2aW9yKHRoaXMpOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGZvY3VzR2FpbmVkKEZvY3VzRXZlbnQgZSkgeworICAgICAgICBpZiAoZk5leHRCZWhhdmlvciAhPSBudWxsKQorICAgICAgICAgICAgcmV0dXJuIGZOZXh0QmVoYXZpb3IuZm9jdXNHYWluZWQoZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBmb2N1c0xvc3QoRm9jdXNFdmVudCBlKSB7CisgICAgICAgIGlmIChmTmV4dEJlaGF2aW9yICE9IG51bGwpCisgICAgICAgICAgICByZXR1cm4gZk5leHRCZWhhdmlvci5mb2N1c0xvc3QoZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBrZXlQcmVzc2VkKEtleUV2ZW50IGUpIHsKKyAgICAgICAgaWYgKGZOZXh0QmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIHJldHVybiBmTmV4dEJlaGF2aW9yLmtleVByZXNzZWQoZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBrZXlUeXBlZChLZXlFdmVudCBlKSB7CisKKyAgICAgICAgaWYgKGZOZXh0QmVoYXZpb3IgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZOZXh0QmVoYXZpb3Iua2V5VHlwZWQoZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBrZXlSZWxlYXNlZChLZXlFdmVudCBlKSB7CisgICAgICAgIGlmIChmTmV4dEJlaGF2aW9yICE9IG51bGwpCisgICAgICAgICAgICByZXR1cm4gZk5leHRCZWhhdmlvci5rZXlSZWxlYXNlZChlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIG1vdXNlRHJhZ2dlZChNb3VzZUV2ZW50IGUpIHsKKyAgICAgICAgaWYgKGZOZXh0QmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIHJldHVybiBmTmV4dEJlaGF2aW9yLm1vdXNlRHJhZ2dlZChlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIG1vdXNlRW50ZXJlZChNb3VzZUV2ZW50IGUpIHsKKyAgICAgICAgaWYgKGZOZXh0QmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIHJldHVybiBmTmV4dEJlaGF2aW9yLm1vdXNlRW50ZXJlZChlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIG1vdXNlRXhpdGVkKE1vdXNlRXZlbnQgZSkgeworICAgICAgICBpZiAoZk5leHRCZWhhdmlvciAhPSBudWxsKQorICAgICAgICAgICAgcmV0dXJuIGZOZXh0QmVoYXZpb3IubW91c2VFeGl0ZWQoZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBtb3VzZU1vdmVkKE1vdXNlRXZlbnQgZSkgeworICAgICAgICBpZiAoZk5leHRCZWhhdmlvciAhPSBudWxsKQorICAgICAgICAgICAgcmV0dXJuIGZOZXh0QmVoYXZpb3IubW91c2VNb3ZlZChlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIG1vdXNlUHJlc3NlZChNb3VzZUV2ZW50IGUpIHsKKyAgICAgICAgaWYgKGZOZXh0QmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIHJldHVybiBmTmV4dEJlaGF2aW9yLm1vdXNlUHJlc3NlZChlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIG1vdXNlUmVsZWFzZWQoTW91c2VFdmVudCBlKSB7CisgICAgICAgIGlmIChmTmV4dEJlaGF2aW9yICE9IG51bGwpCisgICAgICAgICAgICByZXR1cm4gZk5leHRCZWhhdmlvci5tb3VzZVJlbGVhc2VkKGUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIEJlaGF2aW9yIG5leHRCZWhhdmlvcigpIHsKKyAgICAgICAgcmV0dXJuIGZOZXh0QmVoYXZpb3I7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gcGFpbnQoR3JhcGhpY3MgZywgUmVjdGFuZ2xlIGRyYXdSZWN0KSB7CisgICAgICAgIGlmIChmTmV4dEJlaGF2aW9yICE9IG51bGwpCisgICAgICAgICAgICByZXR1cm4gZk5leHRCZWhhdmlvci5wYWludChnLCBkcmF3UmVjdCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCByZW1vdmVGcm9tT3duZXIoKSB7CisgICAgICAgIGlmIChmT3duZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKGZPd25lci5nZXRCZWhhdmlvcigpID09IHRoaXMpCisgICAgICAgICAgICAgICAgZk93bmVyLnNldEJlaGF2aW9yKG5leHRCZWhhdmlvcigpKTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIEJlaGF2aW9yICAgIGN1cnJlbnQgPSBmT3duZXIuZ2V0QmVoYXZpb3IoKTsKKworICAgICAgICAgICAgICAgIHdoaWxlIChjdXJyZW50ICE9IG51bGwgJiYgY3VycmVudC5uZXh0QmVoYXZpb3IoKSAhPSB0aGlzKQorICAgICAgICAgICAgICAgICAgICBjdXJyZW50ID0gY3VycmVudC5uZXh0QmVoYXZpb3IoKTsKKyAgICAgICAgICAgICAgICBpZiAoY3VycmVudCAhPSBudWxsKQorICAgICAgICAgICAgICAgICAgICBjdXJyZW50LnNldE5leHRCZWhhdmlvcihuZXh0QmVoYXZpb3IoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzZXROZXh0QmVoYXZpb3IobnVsbCk7CisgICAgICAgICAgICBmT3duZXIgPSBudWxsOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIHZvaWQgc2V0TmV4dEJlaGF2aW9yKEJlaGF2aW9yIG5leHQpIHsKKyAgICAgICAgZk5leHRCZWhhdmlvciA9IG5leHQ7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gdGV4dENvbnRyb2xFdmVudE9jY3VycmVkKEV2ZW50VHlwZSBldmVudCwgT2JqZWN0IGRhdGEpIHsKKyAgICAgICAgaWYgKGZOZXh0QmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIHJldHVybiBmTmV4dEJlaGF2aW9yLnRleHRDb250cm9sRXZlbnRPY2N1cnJlZChldmVudCwgZGF0YSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvQmVoYXZpb3JPd25lci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0JlaGF2aW9yT3duZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40MTY2NWEwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0JlaGF2aW9yT3duZXIuamF2YQpAQCAtMCwwICsxLDIyIEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBCZWhhdmlvck93bmVyLmphdmEsdiAkICRSZXZpc2lvbjogMS4xICQgJERhdGU6IDIwMDAvMDQvMjAgMTc6NTE6MjMgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2ludGVyZmFjZSBCZWhhdmlvck93bmVyIHsKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHB1YmxpYyBCZWhhdmlvciBnZXRCZWhhdmlvcigpOworICAgIHB1YmxpYyB2b2lkIHNldEJlaGF2aW9yKEJlaGF2aW9yIGIpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0NvbW1hbmQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9Db21tYW5kLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmY3NmJmYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9Db21tYW5kLmphdmEKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogQ29tbWFuZC5qYXZhLHYgJCAkUmV2aXNpb246IDEuMSAkICREYXRlOiAyMDAwLzA0LzIwIDE3OjUxOjIzICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCithYnN0cmFjdCBjbGFzcyBDb21tYW5kIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBDb21tYW5kIGZQcmV2aW91c0NvbW1hbmQgPSBudWxsOworCisgICAgLy8gZk1vZGlmaWVkIGlzIHVzZWQgdG8ga2VlcCBhIHRleHRNb2RpZmllZCBmbGFnIGZvcgorICAgIC8vIGNsaWVudHMKKyAgICBwcml2YXRlIGJvb2xlYW4gZk1vZGlmaWVkOworCisgICAgcHVibGljIENvbW1hbmQoKSB7CisgICAgICAgIGZNb2RpZmllZCA9IHRydWU7CisgICAgfQorCisgICAgcHVibGljIENvbW1hbmQgcHJldmlvdXNDb21tYW5kKCkgeworICAgICAgICByZXR1cm4gZlByZXZpb3VzQ29tbWFuZDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRQcmV2aW91c0NvbW1hbmQoQ29tbWFuZCAgcHJldmlvdXNDb21tYW5kKSB7CisgICAgICAgIGZQcmV2aW91c0NvbW1hbmQgPSBwcmV2aW91c0NvbW1hbmQ7CisgICAgfQorCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgZXhlY3V0ZSgpOworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHVuZG8oKTsKKworICAgIHB1YmxpYyB2b2lkIHJlZG8oKSB7CisgICAgICAgIGV4ZWN1dGUoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiBpc01vZGlmaWVkKCkgeworCisgICAgICAgIHJldHVybiBmTW9kaWZpZWQ7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIHZvaWQgc2V0TW9kaWZpZWQoYm9vbGVhbiBtb2RpZmllZCkgeworCisgICAgICAgIGZNb2RpZmllZCA9IG1vZGlmaWVkOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9GYWtlQ29tcG9uZW50LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvRmFrZUNvbXBvbmVudC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRhZDU3NWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvRmFrZUNvbXBvbmVudC5qYXZhCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IEZha2VDb21wb25lbnQuamF2YSx2ICQgJFJldmlzaW9uOiAxLjEgJCAkRGF0ZTogMjAwMC8wNC8yMCAxNzo1MToyMyAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworaW1wb3J0IGphdmEuYXd0LkNvbXBvbmVudDsKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczsKKworYWJzdHJhY3QgY2xhc3MgRmFrZUNvbXBvbmVudCB7CisgICAgCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcm90ZWN0ZWQgQ29tcG9uZW50IGZIb3N0OworICAgIAorICAgIGFic3RyYWN0IHZvaWQgYWRkTm90aWZ5KCk7CisgICAgYWJzdHJhY3Qgdm9pZCBwYWludChHcmFwaGljcyBnKTsKKyAgICB2b2lkIHNldEhvc3QoQ29tcG9uZW50IGhvc3QpIHsgICAKKyAgICAgICAgZkhvc3QgPSBob3N0OworICAgIH0KKyAgICBhYnN0cmFjdCB2b2lkIHJlcXVlc3RGb2N1cygpOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9IYWNrQXJhYmljVHJhbnNsaXRlcmF0aW9uLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvSGFja0FyYWJpY1RyYW5zbGl0ZXJhdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNjMDMxZTQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvSGFja0FyYWJpY1RyYW5zbGl0ZXJhdGlvbi5qYXZhCkBAIC0wLDAgKzEsMTgzIEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBIYWNrQXJhYmljVHJhbnNsaXRlcmF0aW9uLmphdmEsdiAkICRSZXZpc2lvbjogMS4xICQgJERhdGU6IDIwMDAvMDQvMjAgMTc6NTE6MjMgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8qCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OCwgQWxsIFJpZ2h0cyBSZXNlcnZlZAorICovCisKK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKKy8qCitGb3IgYW55IGluY29taW5nIGNoYXJhY3RlciBDCitpZiB5b3UgY2FuIG1hcCBDIHVzaW5nIHRoZSBmb2xsb3dpbmcgRmFrZUFyYWJpY1RhYmxlLCByZXR1cm4KK0Zha2VBcmFiaWNUYWJsZShDKQorZWxzZSBpZiBDIGlzIGZyb20gQSB0aHJvdWdoIFosIHJldHVybiBGYWtlQXJhYmljVGFibGUobG93ZXJjYXNlKEMpKQorZWxzZSBqdXN0IHJldHVybiBDCisKKworRmFrZUFyYWJpY1RhYmxlIGlzIGRlZmluZWQgYnkgdGhlIGZvbGxvd2luZyBtYXBwaW5nCisKKzAgICAwNjYwO0FSQUJJQy1JTkRJQyBESUdJVCBaRVJPO05kOzA7QU47OzA7MDswO047Ozs7OworMSAgIDA2NjE7QVJBQklDLUlORElDIERJR0lUIE9ORTtOZDswO0FOOzsxOzE7MTtOOzs7OzsKKzIgICAwNjYyO0FSQUJJQy1JTkRJQyBESUdJVCBUV087TmQ7MDtBTjs7MjsyOzI7Tjs7Ozs7CiszICAgMDY2MztBUkFCSUMtSU5ESUMgRElHSVQgVEhSRUU7TmQ7MDtBTjs7MzszOzM7Tjs7Ozs7Cis0ICAgMDY2NDtBUkFCSUMtSU5ESUMgRElHSVQgRk9VUjtOZDswO0FOOzs0OzQ7NDtOOzs7OzsKKzUgICAwNjY1O0FSQUJJQy1JTkRJQyBESUdJVCBGSVZFO05kOzA7QU47OzU7NTs1O047Ozs7OworNiAgIDA2NjY7QVJBQklDLUlORElDIERJR0lUIFNJWDtOZDswO0FOOzs2OzY7NjtOOzs7OzsKKzcgICAwNjY3O0FSQUJJQy1JTkRJQyBESUdJVCBTRVZFTjtOZDswO0FOOzs3Ozc7NztOOzs7OzsKKzggICAwNjY4O0FSQUJJQy1JTkRJQyBESUdJVCBFSUdIVDtOZDswO0FOOzs4Ozg7ODtOOzs7OzsKKzkgICAwNjY5O0FSQUJJQy1JTkRJQyBESUdJVCBOSU5FO05kOzA7QU47Ozk7OTs5O047Ozs7OworCislICAgMDY2QTtBUkFCSUMgUEVSQ0VOVCBTSUdOO1BvOzA7RVQ7Ozs7O047Ozs7OworLiAgIDA2NkI7QVJBQklDIERFQ0lNQUwgU0VQQVJBVE9SO1BvOzA7QU47Ozs7O047Ozs7OworLCAgIDA2MEM7QVJBQklDIENPTU1BO1BvOzA7Ujs7Ozs7Tjs7Ozs7CistICAgMDY0MDtBUkFCSUMgVEFUV0VFTDtMbTswO1I7Ozs7O047Ozs7OworJyAgIDA2NTI7QVJBQklDIFNVS1VOO01uOzM0O1I7Ozs7O047Ozs7OworIiAgIDA2NTE7QVJBQklDIFNIQUREQTtNbjszMztSOzs7OztOO0FSQUJJQyBTSEFEREFIOzs7OworOyAgIDA2MUI7QVJBQklDIFNFTUlDT0xPTjtQbzswO1I7Ozs7O047Ozs7OworPyAgIDA2MUY7QVJBQklDIFFVRVNUSU9OIE1BUks7UG87MDtSOzs7OztOOzs7OzsKKworYSAgIDA2Mjc7QVJBQklDIExFVFRFUiBBTEVGO0xvOzA7Ujs7Ozs7Tjs7Ozs7CitBICAgMDYzOTtBUkFCSUMgTEVUVEVSIEFJTjtMbzswO1I7Ozs7O047Ozs7OworYiAgIDA2Mjg7QVJBQklDIExFVFRFUiBCRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgQkFBOzs7OworYyAgIDA2MzU7QVJBQklDIExFVFRFUiBTQUQ7TG87MDtSOzs7OztOOzs7OzsKK2QgICAwNjJGO0FSQUJJQyBMRVRURVIgREFMO0xvOzA7Ujs7Ozs7Tjs7Ozs7CitEICAgMDYzMDtBUkFCSUMgTEVUVEVSIFRIQUw7TG87MDtSOzs7OztOOzs7OzsKK0UgICAwNjRCO0FSQUJJQyBGQVRIQVRBTjtNbjsyNztSOzs7OztOOzs7OzsKK2UgICAwNjRFO0FSQUJJQyBGQVRIQTtNbjszMDtSOzs7OztOO0FSQUJJQyBGQVRIQUg7Ozs7CitmICAgMDY0MTtBUkFCSUMgTEVUVEVSIEZFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBGQTs7OzsKK2cgICAwNjNBO0FSQUJJQyBMRVRURVIgR0hBSU47TG87MDtSOzs7OztOOzs7OzsKK2ggICAwNjJEO0FSQUJJQyBMRVRURVIgSEFIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBQTs7OzsKK0ggICAwNjQ3O0FSQUJJQyBMRVRURVIgSEVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBOzs7OworSSAgIDA2NEQ7QVJBQklDIEtBU1JBVEFOO01uOzI5O1I7Ozs7O047Ozs7OworaSAgIDA2NTA7QVJBQklDIEtBU1JBO01uOzMyO1I7Ozs7O047QVJBQklDIEtBU1JBSDs7OzsKK2ogICAwNjJDO0FSQUJJQyBMRVRURVIgSkVFTTtMbzswO1I7Ozs7O047Ozs7OworSyAgIDA2MkU7QVJBQklDIExFVFRFUiBLSEFIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEtIQUE7Ozs7CitrICAgMDY0MztBUkFCSUMgTEVUVEVSIEtBRjtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBDQUY7Ozs7CitsICAgMDY0NDtBUkFCSUMgTEVUVEVSIExBTTtMbzswO1I7Ozs7O047Ozs7OworbSAgIDA2NDU7QVJBQklDIExFVFRFUiBNRUVNO0xvOzA7Ujs7Ozs7Tjs7Ozs7CituICAgMDY0NjtBUkFCSUMgTEVUVEVSIE5PT047TG87MDtSOzs7OztOOzs7OzsKK28gICAwNjRGO0FSQUJJQyBEQU1NQTtNbjszMTtSOzs7OztOO0FSQUJJQyBEQU1NQUg7Ozs7CitwICAgMDYyODtBUkFCSUMgTEVUVEVSIEJFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBCQUE7Ozs7CitxICAgMDY0MjtBUkFCSUMgTEVUVEVSIFFBRjtMbzswO1I7Ozs7O047Ozs7OworciAgIDA2MzE7QVJBQklDIExFVFRFUiBSRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgUkE7Ozs7CitzICAgMDYzMztBUkFCSUMgTEVUVEVSIFNFRU47TG87MDtSOzs7OztOOzs7OzsKK1MgICAwNjM0O0FSQUJJQyBMRVRURVIgU0hFRU47TG87MDtSOzs7OztOOzs7OzsKK3QgICAwNjJBO0FSQUJJQyBMRVRURVIgVEVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRBQTs7OzsKK1QgICAwNjJCO0FSQUJJQyBMRVRURVIgVEhFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBUSEFBOzs7OworVSAgIDA2NEM7QVJBQklDIERBTU1BVEFOO01uOzI4O1I7Ozs7O047Ozs7OwordSAgIDA2NEY7QVJBQklDIERBTU1BO01uOzMxO1I7Ozs7O047QVJBQklDIERBTU1BSDs7OzsKK3YgICAwNjQxO0FSQUJJQyBMRVRURVIgRkVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEZBOzs7OwordyAgIDA2NDg7QVJBQklDIExFVFRFUiBXQVc7TG87MDtSOzs7OztOOzs7OzsKK3ggICAwNjMzO0FSQUJJQyBMRVRURVIgU0VFTjtMbzswO1I7Ozs7O047Ozs7OworeSAgIDA2NEE7QVJBQklDIExFVFRFUiBZRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgWUE7Ozs7Cit6ICAgMDYzMjtBUkFCSUMgTEVUVEVSIFpBSU47TG87MDtSOzs7OztOOzs7OzsKK1ogICAwNjM4O0FSQUJJQyBMRVRURVIgWkFIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIERIQUg7Ozs7CisKKyovCisKKy8qKgorICogVGhpcyBjbGFzcyBpbXBsZW1lbnRzIEtleVJlbWFwIHRvIHByb2R1Y2UgdHJhbnNsaXRlcmF0ZWQgQXJhYmljCisgKiBjaGFyYWN0ZXJzIGZyb20gTGF0aW4tMSBjaGFyYWN0ZXJzLgorICovCisKKy8vIE5PVEU6IHRoaXMgY2xhc3MgZWxpbWluYXRlcyBBcmFiaWMgdm93ZWxzIHdoaWNoIGxvb2sgdWdseQorLy8gaW4gdGhlIGZvbnQgaW4gd2hpY2ggd2UgaGFwcGVuIHRvIGJlIGRlbW8naW5nLiAgSXQncyB0b3RhbGx5CisvLyBib2d1cyBvdGhlcndpc2UuCitmaW5hbCBjbGFzcyBIYWNrQXJhYmljVHJhbnNsaXRlcmF0aW9uIGV4dGVuZHMgS2V5UmVtYXAgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwdWJsaWMgY2hhciByZW1hcChjaGFyIGMpIHsKKworICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgICAgIGNhc2UgJzAnOiByZXR1cm4gJ1x1MDY2MCc7IC8vIEFSQUJJQy1JTkRJQyBESUdJVCBaRVJPCisgICAgICAgICAgICBjYXNlICcxJzogcmV0dXJuICdcdTA2NjEnOyAvLyBBUkFCSUMtSU5ESUMgRElHSVQgT05FCisgICAgICAgICAgICBjYXNlICcyJzogcmV0dXJuICdcdTA2NjInOyAvLyBBUkFCSUMtSU5ESUMgRElHSVQgVFdPCisgICAgICAgICAgICBjYXNlICczJzogcmV0dXJuICdcdTA2NjMnOyAvLyBBUkFCSUMtSU5ESUMgRElHSVQgVEhSRUUKKyAgICAgICAgICAgIGNhc2UgJzQnOiByZXR1cm4gJ1x1MDY2NCc7IC8vIEFSQUJJQy1JTkRJQyBESUdJVCBGT1VSCisgICAgICAgICAgICBjYXNlICc1JzogcmV0dXJuICdcdTA2NjUnOyAvLyBBUkFCSUMtSU5ESUMgRElHSVQgRklWRQorICAgICAgICAgICAgY2FzZSAnNic6IHJldHVybiAnXHUwNjY2JzsgLy8gQVJBQklDLUlORElDIERJR0lUIFNJWAorICAgICAgICAgICAgY2FzZSAnNyc6IHJldHVybiAnXHUwNjY3JzsgLy8gQVJBQklDLUlORElDIERJR0lUIFNFVkVOCisgICAgICAgICAgICBjYXNlICc4JzogcmV0dXJuICdcdTA2NjgnOyAvLyBBUkFCSUMtSU5ESUMgRElHSVQgRUlHSFQKKyAgICAgICAgICAgIGNhc2UgJzknOiByZXR1cm4gJ1x1MDY2OSc7IC8vIEFSQUJJQy1JTkRJQyBESUdJVCBOSU5FCisKKyAgICAgICAgICAgIGNhc2UgJyUnOiByZXR1cm4gJ1x1MDY2QSc7IC8vIEFSQUJJQyBQRVJDRU5UIFNJR04KKyAgICAgICAgICAgIC8vIHRoZSBUcmFkaXRpb25hbCBBcmFiaWMgZm9udCBkb2VzIG5vdCBjb250YWluIHRoaXMgY2hhcmFjdGVyCisgICAgICAgICAgICAvLyBjYXNlICcuJzogcmV0dXJuICdcdTA2NkInOyAvLyBBUkFCSUMgREVDSU1BTCBTRVBBUkFUT1IKKyAgICAgICAgICAgIGNhc2UgJywnOiByZXR1cm4gJ1x1MDYwQyc7IC8vIEFSQUJJQyBDT01NQQorICAgICAgICAgICAgY2FzZSAnLSc6IHJldHVybiAnXHUwNjQwJzsgLy8gQVJBQklDIFRBVFdFRUwKKyAgICAgICAgICAgIGNhc2UgJ1wnJzogcmV0dXJuICdcdTA2NTInOyAvLyBBUkFCSUMgU1VLVU4KKyAgICAgICAgICAgIGNhc2UgJyInOiByZXR1cm4gJ1x1MDY1MSc7IC8vIEFSQUJJQyBTSEFEREEKKyAgICAgICAgICAgIGNhc2UgJzsnOiByZXR1cm4gJ1x1MDYxQic7IC8vIEFSQUJJQyBTRU1JQ09MT04KKyAgICAgICAgICAgIGNhc2UgJz8nOiByZXR1cm4gJ1x1MDYxRic7IC8vIEFSQUJJQyBRVUVTVElPTiBNQVJLCisKKyAgICAgICAgICAgIGNhc2UgJ2EnOiByZXR1cm4gJ1x1MDYyNyc7IC8vIEFSQUJJQyBMRVRURVIgQUxFRgorICAgICAgICAgICAgY2FzZSAnQSc6IHJldHVybiAnXHUwNjM5JzsgLy8gQVJBQklDIExFVFRFUiBBSU4KKyAgICAgICAgICAgIGNhc2UgJ2InOiByZXR1cm4gJ1x1MDYyOCc7IC8vIEFSQUJJQyBMRVRURVIgQkVICisgICAgICAgICAgICBjYXNlICdCJzogcmV0dXJuICdcdTA2MjgnOyAvLyBBUkFCSUMgTEVUVEVSIEJFSAorICAgICAgICAgICAgY2FzZSAnYyc6IHJldHVybiAnXHUwNjM1JzsgLy8gQVJBQklDIExFVFRFUiBTQUQKKyAgICAgICAgICAgIGNhc2UgJ0MnOiByZXR1cm4gJ1x1MDYzNSc7IC8vIEFSQUJJQyBMRVRURVIgU0FECisgICAgICAgICAgICBjYXNlICdkJzogcmV0dXJuICdcdTA2MkYnOyAvLyBBUkFCSUMgTEVUVEVSIERBTAorICAgICAgICAgICAgY2FzZSAnRCc6IHJldHVybiAnXHUwNjMwJzsgLy8gQVJBQklDIExFVFRFUiBUSEFMCisgICAgICAgICAgICBjYXNlICdlJzogLy9yZXR1cm4gJ1x1MDY0RSc7IC8vIEFSQUJJQyBGQVRIQQorICAgICAgICAgICAgY2FzZSAnRSc6IC8vcmV0dXJuICdcdTA2NEInOyAvLyBBUkFCSUMgRkFUSEFUQU4KKyAgICAgICAgICAgIGNhc2UgJ2YnOiByZXR1cm4gJ1x1MDY0MSc7IC8vIEFSQUJJQyBMRVRURVIgRkVICisgICAgICAgICAgICBjYXNlICdGJzogcmV0dXJuICdcdTA2NDEnOyAvLyBBUkFCSUMgTEVUVEVSIEZFSAorICAgICAgICAgICAgY2FzZSAnZyc6IHJldHVybiAnXHUwNjNBJzsgLy8gQVJBQklDIExFVFRFUiBHSEFJTgorICAgICAgICAgICAgY2FzZSAnRyc6IHJldHVybiAnXHUwNjNBJzsgLy8gQVJBQklDIExFVFRFUiBHSEFJTgorICAgICAgICAgICAgY2FzZSAnaCc6IHJldHVybiAnXHUwNjJEJzsgLy8gQVJBQklDIExFVFRFUiBIQUgKKyAgICAgICAgICAgIGNhc2UgJ0gnOiByZXR1cm4gJ1x1MDY0Nyc7IC8vIEFSQUJJQyBMRVRURVIgSEVICisgICAgICAgICAgICBjYXNlICdpJzogLy9yZXR1cm4gJ1x1MDY1MCc7IC8vIEFSQUJJQyBLQVNSQQorICAgICAgICAgICAgY2FzZSAnSSc6IC8vcmV0dXJuICdcdTA2NEQnOyAvLyBBUkFCSUMgS0FTUkFUQU4KKyAgICAgICAgICAgIGNhc2UgJ2onOiByZXR1cm4gJ1x1MDYyQyc7IC8vIEFSQUJJQyBMRVRURVIgSkVFTQorICAgICAgICAgICAgY2FzZSAnSic6IHJldHVybiAnXHUwNjJDJzsgLy8gQVJBQklDIExFVFRFUiBKRUVNCisgICAgICAgICAgICBjYXNlICdrJzogcmV0dXJuICdcdTA2NDMnOyAvLyBBUkFCSUMgTEVUVEVSIEtBRgorICAgICAgICAgICAgY2FzZSAnSyc6IHJldHVybiAnXHUwNjJFJzsgLy8gQVJBQklDIExFVFRFUiBLSEFICisgICAgICAgICAgICBjYXNlICdsJzogcmV0dXJuICdcdTA2NDQnOyAvLyBBUkFCSUMgTEVUVEVSIExBTQorICAgICAgICAgICAgY2FzZSAnTCc6IHJldHVybiAnXHUwNjQ0JzsgLy8gQVJBQklDIExFVFRFUiBMQU0KKyAgICAgICAgICAgIGNhc2UgJ20nOiByZXR1cm4gJ1x1MDY0NSc7IC8vIEFSQUJJQyBMRVRURVIgTUVFTQorICAgICAgICAgICAgY2FzZSAnTSc6IHJldHVybiAnXHUwNjQ1JzsgLy8gQVJBQklDIExFVFRFUiBNRUVNCisgICAgICAgICAgICBjYXNlICduJzogcmV0dXJuICdcdTA2NDYnOyAvLyBBUkFCSUMgTEVUVEVSIE5PT04KKyAgICAgICAgICAgIGNhc2UgJ04nOiByZXR1cm4gJ1x1MDY0Nic7IC8vIEFSQUJJQyBMRVRURVIgTk9PTgorICAgICAgICAgICAgY2FzZSAnbyc6IC8vcmV0dXJuICdcdTA2NEYnOyAvLyBBUkFCSUMgREFNTUEKKyAgICAgICAgICAgIGNhc2UgJ08nOiAvL3JldHVybiAnXHUwNjRGJzsgLy8gQVJBQklDIERBTU1BCisgICAgICAgICAgICBjYXNlICdwJzogcmV0dXJuICdcdTA2MjgnOyAvLyBBUkFCSUMgTEVUVEVSIEJFSAorICAgICAgICAgICAgY2FzZSAnUCc6IHJldHVybiAnXHUwNjI4JzsgLy8gQVJBQklDIExFVFRFUiBCRUgKKyAgICAgICAgICAgIGNhc2UgJ3EnOiByZXR1cm4gJ1x1MDY0Mic7IC8vIEFSQUJJQyBMRVRURVIgUUFGCisgICAgICAgICAgICBjYXNlICdRJzogcmV0dXJuICdcdTA2NDInOyAvLyBBUkFCSUMgTEVUVEVSIFFBRgorICAgICAgICAgICAgY2FzZSAncic6IHJldHVybiAnXHUwNjMxJzsgLy8gQVJBQklDIExFVFRFUiBSRUgKKyAgICAgICAgICAgIGNhc2UgJ1InOiByZXR1cm4gJ1x1MDYzMSc7IC8vIEFSQUJJQyBMRVRURVIgUkVICisgICAgICAgICAgICBjYXNlICdzJzogcmV0dXJuICdcdTA2MzMnOyAvLyBBUkFCSUMgTEVUVEVSIFNFRU4KKyAgICAgICAgICAgIGNhc2UgJ1MnOiByZXR1cm4gJ1x1MDYzNCc7IC8vIEFSQUJJQyBMRVRURVIgU0hFRU4KKyAgICAgICAgICAgIGNhc2UgJ3QnOiByZXR1cm4gJ1x1MDYyQSc7IC8vIEFSQUJJQyBMRVRURVIgVEVICisgICAgICAgICAgICBjYXNlICdUJzogcmV0dXJuICdcdTA2MkInOyAvLyBBUkFCSUMgTEVUVEVSIFRIRUgKKyAgICAgICAgICAgIGNhc2UgJ1UnOiAvL3JldHVybiAnXHUwNjRDJzsgLy8gQVJBQklDIERBTU1BVEFOCisgICAgICAgICAgICBjYXNlICd1JzogLy9yZXR1cm4gJ1x1MDY0Ric7IC8vIEFSQUJJQyBEQU1NQQorICAgICAgICAgICAgY2FzZSAndic6IHJldHVybiAnXHUwNjQxJzsgLy8gQVJBQklDIExFVFRFUiBGRUgKKyAgICAgICAgICAgIGNhc2UgJ1YnOiByZXR1cm4gJ1x1MDY0MSc7IC8vIEFSQUJJQyBMRVRURVIgRkVICisgICAgICAgICAgICBjYXNlICd3JzogcmV0dXJuICdcdTA2NDgnOyAvLyBBUkFCSUMgTEVUVEVSIFdBVworICAgICAgICAgICAgY2FzZSAnVyc6IHJldHVybiAnXHUwNjQ4JzsgLy8gQVJBQklDIExFVFRFUiBXQVcKKyAgICAgICAgICAgIGNhc2UgJ3gnOiByZXR1cm4gJ1x1MDYzMyc7IC8vIEFSQUJJQyBMRVRURVIgU0VFTgorICAgICAgICAgICAgY2FzZSAnWCc6IHJldHVybiAnXHUwNjMzJzsgLy8gQVJBQklDIExFVFRFUiBTRUVOCisgICAgICAgICAgICBjYXNlICd5JzogcmV0dXJuICdcdTA2NEEnOyAvLyBBUkFCSUMgTEVUVEVSIFlFSAorICAgICAgICAgICAgY2FzZSAnWSc6IHJldHVybiAnXHUwNjRBJzsgLy8gQVJBQklDIExFVFRFUiBZRUgKKyAgICAgICAgICAgIGNhc2UgJ3onOiByZXR1cm4gJ1x1MDYzMic7IC8vIEFSQUJJQyBMRVRURVIgWkFJTgorICAgICAgICAgICAgY2FzZSAnWic6IHJldHVybiAnXHUwNjM4JzsgLy8gQVJBQklDIExFVFRFUiBaQUgKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBjOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9IZWJyZXdUcmFuc2xpdGVyYXRpb24uamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9IZWJyZXdUcmFuc2xpdGVyYXRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jYTY3YmVhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0hlYnJld1RyYW5zbGl0ZXJhdGlvbi5qYXZhCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IEhlYnJld1RyYW5zbGl0ZXJhdGlvbi5qYXZhLHYgJCAkUmV2aXNpb246IDEuMSAkICREYXRlOiAyMDAwLzA0LzIwIDE3OjUxOjIzICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvKgorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgsIEFsbCBSaWdodHMgUmVzZXJ2ZWQKKyAqLworCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCisvKioKKyAqIFRoaXMgY2xhc3MgaW1wbGVtZW50cyBLZXlSZW1hcCB0byBwcm9kdWNlIHRyYW5zbGl0ZXJhdGVkIEhlYnJldworICogY2hhcmFjdGVycyBmcm9tIExhdGluLTEgY2hhcmFjdGVycy4KKyAqLworCitmaW5hbCBjbGFzcyBIZWJyZXdUcmFuc2xpdGVyYXRpb24gZXh0ZW5kcyBLZXlSZW1hcCB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHB1YmxpYyBjaGFyIHJlbWFwKGNoYXIgYykgeworCisgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgY2FzZSAnYSc6IHJldHVybiAnXHUwNUQwJzsgLy8gSEVCUkVXIExFVFRFUiBBTEVGCisgICAgICAgICAgICBjYXNlICdBJzogcmV0dXJuICdcdTA1RTInOyAvLyBIRUJSRVcgTEVUVEVSIEFZSU4KKyAgICAgICAgICAgIGNhc2UgJ2InOiByZXR1cm4gJ1x1MDVEMSc7IC8vIEhFQlJFVyBMRVRURVIgQkVUCisgICAgICAgICAgICBjYXNlICdCJzogcmV0dXJuICdcdTA1RDEnOyAvLyBIRUJSRVcgTEVUVEVSIEJFVAorICAgICAgICAgICAgY2FzZSAnYyc6IHJldHVybiAnXHUwNUU2JzsgLy8gSEVCUkVXIExFVFRFUiBUU0FESQorICAgICAgICAgICAgY2FzZSAnQyc6IHJldHVybiAnXHUwNUU1JzsgLy8gSEVCUkVXIExFVFRFUiBGSU5BTCBUU0FESQorICAgICAgICAgICAgY2FzZSAnZCc6IHJldHVybiAnXHUwNUQzJzsgLy8gSEVCUkVXIExFVFRFUiBEQUxFVAorICAgICAgICAgICAgY2FzZSAnRCc6IHJldHVybiAnXHUwNUJDJzsgLy8gSEVCUkVXIFBPSU5UIERBR0VTSAorICAgICAgICAgICAgY2FzZSAnZSc6IHJldHVybiAnXHUwNUI1JzsgLy8gSEVCUkVXIFBPSU5UIFRTRVJFCisgICAgICAgICAgICBjYXNlICdFJzogcmV0dXJuICdcdTA1QjYnOyAvLyBIRUJSRVcgUE9JTlQgU0VHT0wKKyAgICAgICAgICAgIGNhc2UgJ2YnOiByZXR1cm4gJ1x1MDVFNCc7IC8vIEhFQlJFVyBMRVRURVIgUEUKKyAgICAgICAgICAgIGNhc2UgJ0YnOiByZXR1cm4gJ1x1MDVFNCc7IC8vIEhFQlJFVyBMRVRURVIgUEUKKyAgICAgICAgICAgIGNhc2UgJ2cnOiByZXR1cm4gJ1x1MDVEMic7IC8vIEhFQlJFVyBMRVRURVIgR0lNRUwKKyAgICAgICAgICAgIGNhc2UgJ0cnOiByZXR1cm4gJ1x1MDVEMic7IC8vIEhFQlJFVyBMRVRURVIgR0lNRUwKKyAgICAgICAgICAgIGNhc2UgJ2gnOiByZXR1cm4gJ1x1MDVENCc7IC8vIEhFQlJFVyBMRVRURVIgSEUKKyAgICAgICAgICAgIGNhc2UgJ0gnOiByZXR1cm4gJ1x1MDVENyc7IC8vIEhFQlJFVyBMRVRURVIgSEVUCisgICAgICAgICAgICBjYXNlICdpJzogcmV0dXJuICdcdTA1RDknOyAvLyBIRUJSRVcgTEVUVEVSIFlPRAorICAgICAgICAgICAgY2FzZSAnSSc6IHJldHVybiAnXHUwNUI0JzsgLy8gSEVCUkVXIFBPSU5UIEhJUklRCisgICAgICAgICAgICBjYXNlICdqJzogcmV0dXJuICdcdTA1RDknOyAvLyBIRUJSRVcgTEVUVEVSIFlPRAorICAgICAgICAgICAgY2FzZSAnSic6IHJldHVybiAnXHUwNUMxJzsgLy8gSEVCUkVXIFBPSU5UIFNISU4gRE9UCisgICAgICAgICAgICBjYXNlICdrJzogcmV0dXJuICdcdTA1REInOyAvLyBIRUJSRVcgTEVUVEVSIEtBRgorICAgICAgICAgICAgY2FzZSAnSyc6IHJldHVybiAnXHUwNURBJzsgLy8gSEVCUkVXIExFVFRFUiBGSU5BTCBLQUYKKyAgICAgICAgICAgIGNhc2UgJ2wnOiByZXR1cm4gJ1x1MDVEQyc7IC8vIEhFQlJFVyBMRVRURVIgTEFNRUQKKyAgICAgICAgICAgIGNhc2UgJ0wnOiByZXR1cm4gJ1x1MDVEQyc7IC8vIEhFQlJFVyBMRVRURVIgTEFNRUQKKyAgICAgICAgICAgIGNhc2UgJ20nOiByZXR1cm4gJ1x1MDVERSc7IC8vIEhFQlJFVyBMRVRURVIgTUVNCisgICAgICAgICAgICBjYXNlICdNJzogcmV0dXJuICdcdTA1REQnOyAvLyBIRUJSRVcgTEVUVEVSIEZJTkFMIE1FTQorICAgICAgICAgICAgY2FzZSAnbic6IHJldHVybiAnXHUwNUUwJzsgLy8gSEVCUkVXIExFVFRFUiBOVU4KKyAgICAgICAgICAgIGNhc2UgJ04nOiByZXR1cm4gJ1x1MDVERic7IC8vIEhFQlJFVyBMRVRURVIgRklOQUwgTlVOCisgICAgICAgICAgICBjYXNlICdvJzogcmV0dXJuICdcdTA1RDUnOyAvLyBIRUJSRVcgTEVUVEVSIFZBVgorICAgICAgICAgICAgY2FzZSAnTyc6IHJldHVybiAnXHUwNUI5JzsgLy8gSEVCUkVXIFBPSU5UIEhPTEFNCisgICAgICAgICAgICBjYXNlICdwJzogcmV0dXJuICdcdTA1RTQnOyAvLyBIRUJSRVcgTEVUVEVSIFBFCisgICAgICAgICAgICBjYXNlICdQJzogcmV0dXJuICdcdTA1RTMnOyAvLyBIRUJSRVcgTEVUVEVSIEZJTkFMIFBFCisgICAgICAgICAgICBjYXNlICdxJzogcmV0dXJuICdcdTA1RTcnOyAvLyBIRUJSRVcgTEVUVEVSIFFPRgorICAgICAgICAgICAgY2FzZSAnUSc6IHJldHVybiAnXHUwNUU3JzsgLy8gSEVCUkVXIExFVFRFUiBRT0YKKyAgICAgICAgICAgIGNhc2UgJ3InOiByZXR1cm4gJ1x1MDVFOCc7IC8vIEhFQlJFVyBMRVRURVIgUkVTSAorICAgICAgICAgICAgY2FzZSAnUic6IHJldHVybiAnXHUwNUJGJzsgLy8gSEVCUkVXIFBPSU5UIFJBRkUKKyAgICAgICAgICAgIGNhc2UgJ3MnOiByZXR1cm4gJ1x1MDVFOSc7IC8vIEhFQlJFVyBMRVRURVIgU0hJTgorICAgICAgICAgICAgY2FzZSAnUyc6IHJldHVybiAnXHUwNUUxJzsgLy8gSEVCUkVXIExFVFRFUiBTQU1FS0gKKyAgICAgICAgICAgIGNhc2UgJ3QnOiByZXR1cm4gJ1x1MDVFQSc7IC8vIEhFQlJFVyBMRVRURVIgVEFWCisgICAgICAgICAgICBjYXNlICdUJzogcmV0dXJuICdcdTA1RDgnOyAvLyBIRUJSRVcgTEVUVEVSIFRFVAorICAgICAgICAgICAgY2FzZSAndSc6IHJldHVybiAnXHUwNUQ1JzsgLy8gSEVCUkVXIExFVFRFUiBWQVYKKyAgICAgICAgICAgIGNhc2UgJ1UnOiByZXR1cm4gJ1x1MDVCQic7IC8vIEhFQlJFVyBQT0lOVCBRVUJVVFMKKyAgICAgICAgICAgIGNhc2UgJ3YnOiByZXR1cm4gJ1x1MDVENSc7IC8vIEhFQlJFVyBMRVRURVIgVkFWCisgICAgICAgICAgICBjYXNlICdWJzogcmV0dXJuICdcdTA1QjcnOyAvLyBIRUJSRVcgUE9JTlQgUEFUQUgKKyAgICAgICAgICAgIGNhc2UgJ3cnOiByZXR1cm4gJ1x1MDVENSc7IC8vIEhFQlJFVyBMRVRURVIgVkFWCisgICAgICAgICAgICBjYXNlICdXJzogcmV0dXJuICdcdTA1QjgnOyAvLyBIRUJSRVcgUE9JTlQgUUFNQVRTCisgICAgICAgICAgICBjYXNlICd4JzogcmV0dXJuICdcdTA1RTYnOyAvLyBIRUJSRVcgTEVUVEVSIFRTQURJCisgICAgICAgICAgICBjYXNlICdYJzogcmV0dXJuICdcdTA1RTUnOyAvLyBIRUJSRVcgTEVUVEVSIEZJTkFMIFRTQURJCisgICAgICAgICAgICBjYXNlICd5JzogcmV0dXJuICdcdTA1RDknOyAvLyBIRUJSRVcgTEVUVEVSIFlPRAorICAgICAgICAgICAgY2FzZSAnWSc6IHJldHVybiAnXHUwNUQ5JzsgLy8gSEVCUkVXIExFVFRFUiBZT0QKKyAgICAgICAgICAgIGNhc2UgJ3onOiByZXR1cm4gJ1x1MDVENic7IC8vIEhFQlJFVyBMRVRURVIgWkFZSU4KKyAgICAgICAgICAgIGNhc2UgJ1onOiByZXR1cm4gJ1x1MDVDMic7IC8vIEhFQlJFVyBQT0lOVCBTSU4gRE9UCisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gYzsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvSXNyYWVsTmlrdWRLZXlib2FyZC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0lzcmFlbE5pa3VkS2V5Ym9hcmQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43ZTBiMWE1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0lzcmFlbE5pa3VkS2V5Ym9hcmQuamF2YQpAQCAtMCwwICsxLDg0IEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBJc3JhZWxOaWt1ZEtleWJvYXJkLmphdmEsdiAkICRSZXZpc2lvbjogMS4xICQgJERhdGU6IDIwMDAvMDQvMjAgMTc6NTE6MjMgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8qCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OCwgQWxsIFJpZ2h0cyBSZXNlcnZlZAorICovCisKK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5LZXlFdmVudDsKKworLyoqCisgKiBUaGlzIGNsYXNzIHNpbXVsYXRlcyBhIE5pa3VkIGtleWJvYXJkIG9uIGEgVVMtRW5nbGlzaAorICoga2V5Ym9hcmQuICBJdCBpcyB2ZXJ5IG11Y2ggYSB3b3JrIGluIHByb2dyZXNzLgorICovCisKK2ZpbmFsIGNsYXNzIElzcmFlbE5pa3VkS2V5Ym9hcmQgZXh0ZW5kcyBLZXlSZW1hcCB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHB1YmxpYyBjaGFyIHJlbWFwKGNoYXIgYykgeworCisgICAgICAgIHN3aXRjaChjKSB7CisgICAgICAgICAgICBjYXNlICd0JzogcmV0dXJuICdcdTA1RDAnOyAvLyBhbGVmCisgICAgICAgICAgICBjYXNlICdjJzogcmV0dXJuICdcdTA1RDEnOyAvLyBiZXQKKyAgICAgICAgICAgIGNhc2UgJ2QnOiByZXR1cm4gJ1x1MDVEMic7IC8vIGdpbWVsCisgICAgICAgICAgICBjYXNlICdzJzogcmV0dXJuICdcdTA1RDMnOyAvLyBkYWxldAorICAgICAgICAgICAgY2FzZSAndic6IHJldHVybiAnXHUwNUQ0JzsgLy8gaGUKKyAgICAgICAgICAgIGNhc2UgJ3UnOiByZXR1cm4gJ1x1MDVENSc7IC8vIHZhdgorICAgICAgICAgICAgY2FzZSAneic6IHJldHVybiAnXHUwNUQ2JzsgLy8gemF5aW4KKyAgICAgICAgICAgIGNhc2UgJ2onOiByZXR1cm4gJ1x1MDVENyc7IC8vIGhldAorICAgICAgICAgICAgY2FzZSAneSc6IHJldHVybiAnXHUwNUQ4JzsgLy8gdGV0CisgICAgICAgICAgICBjYXNlICdoJzogcmV0dXJuICdcdTA1RDknOyAvLyB5b2QKKyAgICAgICAgICAgIGNhc2UgJ2wnOiByZXR1cm4gJ1x1MDVEQSc7IC8vIGZpbmFsIGthZgorICAgICAgICAgICAgY2FzZSAnZic6IHJldHVybiAnXHUwNURCJzsgLy8ga2FmCisgICAgICAgICAgICBjYXNlICdrJzogcmV0dXJuICdcdTA1REMnOyAvLyBsYW1lZAorICAgICAgICAgICAgY2FzZSAnbyc6IHJldHVybiAnXHUwNUREJzsgLy8gZmluYWwgbWVtCisgICAgICAgICAgICBjYXNlICduJzogcmV0dXJuICdcdTA1REUnOyAvLyBtZW0KKyAgICAgICAgICAgIGNhc2UgJ2knOiByZXR1cm4gJ1x1MDVERic7IC8vIGZpbmFsIG51bgorICAgICAgICAgICAgY2FzZSAnYic6IHJldHVybiAnXHUwNUUwJzsgLy8gbnVuCisgICAgICAgICAgICBjYXNlICd4JzogcmV0dXJuICdcdTA1RTEnOyAvLyBzYW1lY2gKKyAgICAgICAgICAgIGNhc2UgJ2cnOiByZXR1cm4gJ1x1MDVFMic7IC8vIGF5aW4KKyAgICAgICAgICAgIGNhc2UgJzsnOiByZXR1cm4gJ1x1MDVFMyc7IC8vIGZpbmFsIHBlCisgICAgICAgICAgICBjYXNlICdwJzogcmV0dXJuICdcdTA1RTQnOyAvLyBwZQorICAgICAgICAgICAgY2FzZSAnLic6IHJldHVybiAnXHUwNUU1JzsgLy8gZmluYWwgdHNhZGkKKyAgICAgICAgICAgIGNhc2UgJ20nOiByZXR1cm4gJ1x1MDVFNic7IC8vIHRzYWRpCisgICAgICAgICAgICBjYXNlICdlJzogcmV0dXJuICdcdTA1RTcnOyAvLyBxb2YKKyAgICAgICAgICAgIGNhc2UgJ3InOiByZXR1cm4gJ1x1MDVFOCc7IC8vIHJlc2gKKyAgICAgICAgICAgIGNhc2UgJ2EnOiByZXR1cm4gJ1x1MDVFOSc7IC8vIHNoaW4KKyAgICAgICAgICAgIGNhc2UgJywnOiByZXR1cm4gJ1x1MDVFQSc7IC8vIHRhdgorICAgICAgICAgICAgY2FzZSAndyc6IHJldHVybiAnLCc7CisgICAgICAgICAgICBjYXNlICdxJzogcmV0dXJuICcvJzsKKyAgICAgICAgICAgIGNhc2UgJy8nOiByZXR1cm4gJy4nOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGM7CisgICAgfQorCisgICAgcHVibGljIGNoYXIgcmVtYXAoS2V5RXZlbnQga2V5RXZlbnQpIHsKKworICAgICAgICAvLyAgTm90ZTogIG9ubHkgb25lIGN0cmwgY2FzZSBub3cgKGN0cmwtLyAtPiBkYWdlc2gpLgorICAgICAgICAvLyAgQmV0dGVyIGltcGxlbWVudGF0aW9uIHdpbGwgYmUgbmVlZGVkIGZvciBtb3JlIGNhc2VzLgorCisgICAgICAgIGlmIChrZXlFdmVudC5pc0NvbnRyb2xEb3duKCkpIHsKKyAgICAgICAgICAgIGlmIChrZXlFdmVudC5nZXRLZXlDb2RlKCkgPT0gS2V5RXZlbnQuVktfU0xBU0gpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gJ1x1MDVCQyc7IC8vIGRhZ2VzaAorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHJlbWFwKGtleUV2ZW50LmdldEtleUNoYXIoKSk7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9KVGV4dFBhbmVsLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvSlRleHRQYW5lbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE3NzgzN2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvSlRleHRQYW5lbC5qYXZhCkBAIC0wLDAgKzEsNTgyIEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBKVGV4dFBhbmVsLmphdmEsdiAkICRSZXZpc2lvbjogMS40ICQgJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6NDcgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2ltcG9ydCBqYXZhLmF3dC5Cb3JkZXJMYXlvdXQ7CitpbXBvcnQgamF2YS5hd3QuQ29sb3I7CitpbXBvcnQgamF2YS5hd3QuR3JhcGhpY3M7CitpbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbjsKKworaW1wb3J0IGphdmF4LnN3aW5nLkpQYW5lbDsKK2ltcG9ydCBqYXZheC5zd2luZy5KQ29tcG9uZW50OworaW1wb3J0IGphdmF4LnN3aW5nLkpTY3JvbGxCYXI7CitpbXBvcnQgamF2YXguc3dpbmcuU3dpbmdVdGlsaXRpZXM7CisKK2ltcG9ydCBqYXZhLmF3dC5kYXRhdHJhbnNmZXIuQ2xpcGJvYXJkOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlTW9kaWZpZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlZFRleHQ7CisKKy8qKgorICogSlRleHRQYW5lbCBpcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBNVGV4dFBhbmVsIGluIGEgU3dpbmcgSlBhbmVsLgorICogQHNlZSBNVGV4dFBhbmVsCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBKVGV4dFBhbmVsIGV4dGVuZHMgSlBhbmVsIGltcGxlbWVudHMgTVRleHRQYW5lbCB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgQVRleHRQYW5lbEltcGwgZkltcGw7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgVGV4dFBhbmVsU2V0dGluZ3MgaW5zdGFuY2Ugd2l0aCBhbGwgc2V0dGluZ3Mgc2V0CisgICAgICogdG8gdGhlIGRlZmF1bHQgdmFsdWVzLiAgQ2xpZW50cyBjYW4gbW9kaWZ5IHRoaXMgb2JqZWN0OworICAgICAqIG1vZGlmaWNhdGlvbnMgd2lsbCBub3QgYWZmZWN0IHRoZSBkZWZhdWx0IHZhbHVlcy4KKyAgICAgKiBAcmV0dXJuIGEgVGV4dFBhbmVsU2V0dGluZ3MgaW5zdGFuY2Ugc2V0IHRvIGRlZmF1bHQgdmFsdWVzCisgICAgICogQHNlZSBUZXh0UGFuZWxTZXR0aW5ncworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVGV4dFBhbmVsU2V0dGluZ3MgZ2V0RGVmYXVsdFNldHRpbmdzKCkgeworCisgICAgICAgIHJldHVybiBBVGV4dFBhbmVsSW1wbC5nZXREZWZhdWx0U2V0dGluZ3MoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBuZXcgSlRleHRQYW5lbCB3aXRoIHRoZSBkZWZhdWx0IHNldHRpbmdzLgorICAgICAqIEBwYXJhbSBpbml0aWFsVGV4dCB0aGUgdGV4dCBkb2N1bWVudC4gIElmIG51bGwgZG9jdW1lbnQgdGV4dCBpcyBlbXB0eS4KKyAgICAgKiBAcGFyYW0gY2xpcGJvYXJkIHRoZSBjbGlwYm9hcmQgdG8gdXNlIGZvciBjdXQsIGNvcHksIGFuZCBwYXN0ZQorICAgICAqICBvcGVyYXRpb25zLiAgSWYgbnVsbCB0aGlzIHBhbmVsIHdpbGwgdXNlIGEgcHJpdmF0ZSBjbGlwYm9hcmQuCisgICAgICovCisgICAgcHVibGljIEpUZXh0UGFuZWwoTUNvbnN0VGV4dCBpbml0aWFsVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICBqYXZhLmF3dC5kYXRhdHJhbnNmZXIuQ2xpcGJvYXJkIGNsaXBib2FyZCkgeworCisgICAgICAgIHRoaXMoQVRleHRQYW5lbEltcGwuZmdEZWZhdWx0U2V0dGluZ3MsIGluaXRpYWxUZXh0LCBjbGlwYm9hcmQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIG5ldyBKVGV4dFBhbmVsLgorICAgICAqIEBwYXJhbSBzZXR0aW5ncyB0aGUgc2V0dGluZ3MgZm9yIHRoaXMgSlRleHRQYW5lbAorICAgICAqIEBwYXJhbSBpbml0aWFsVGV4dCB0aGUgdGV4dCBkb2N1bWVudC4gIElmIG51bGwgZG9jdW1lbnQgdGV4dCBpcyBlbXB0eS4KKyAgICAgKiBAcGFyYW0gY2xpcGJvYXJkIHRoZSBjbGlwYm9hcmQgdG8gdXNlIGZvciBjdXQsIGNvcHksIGFuZCBwYXN0ZQorICAgICAqICBvcGVyYXRpb25zLiAgSWYgbnVsbCB0aGlzIHBhbmVsIHdpbGwgdXNlIGEgcHJpdmF0ZSBjbGlwYm9hcmQuCisgICAgICogQHNlZSBUZXh0UGFuZWxTZXR0aW5ncworICAgICAqLworICAgIHB1YmxpYyBKVGV4dFBhbmVsKFRleHRQYW5lbFNldHRpbmdzIHNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICAgIE1Db25zdFRleHQgaW5pdGlhbFRleHQsCisgICAgICAgICAgICAgICAgICAgICAgQ2xpcGJvYXJkIGNsaXBib2FyZCkgeworICAgICAgICAKKyAgICAgICAgc3VwZXIoZmFsc2UpOworICAgICAgICAKKyAgICAgICAgSlNjcm9sbEJhciBob3J6U2IgPSBudWxsOworICAgICAgICBKU2Nyb2xsQmFyIHZlcnRTYiA9IG51bGw7CisgICAgICAgIAorICAgICAgICBpZiAoc2V0dGluZ3MuZ2V0U2Nyb2xsYWJsZSgpKSB7CisKKyAgICAgICAgICAgIHNldExheW91dChuZXcgU2Nyb2xsQmFyTGF5b3V0KCkpOworCisgICAgICAgICAgICBib29sZWFuIHNjcm9sbEJhcnNWaXNpYmxlID0gc2V0dGluZ3MuZ2V0U2Nyb2xsQmFyc1Zpc2libGUoKTsKKworICAgICAgICAgICAgaWYgKHNjcm9sbEJhcnNWaXNpYmxlKSB7CisgICAgICAgICAgICAgICAgaG9yelNiID0gbmV3IEpTY3JvbGxCYXIoSlNjcm9sbEJhci5IT1JJWk9OVEFMKTsKKyAgICAgICAgICAgICAgICB2ZXJ0U2IgPSBuZXcgSlNjcm9sbEJhcihKU2Nyb2xsQmFyLlZFUlRJQ0FMKTsKKyAgICAgICAgICAgICAgICBhZGQoIlNvdXRoIiwgaG9yelNiKTsKKyAgICAgICAgICAgICAgICBhZGQoIkVhc3QiLCB2ZXJ0U2IpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgc2V0TGF5b3V0KG5ldyBCb3JkZXJMYXlvdXQoKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFJ1blN0cmF0ZWd5IHJ1blN0cmF0ZWd5ID0gbmV3IFJ1blN0cmF0ZWd5KCkgeworICAgICAgICAgICAgdm9pZCBkb0l0KFJ1bm5hYmxlIHIpIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBTd2luZ1V0aWxpdGllcy5pbnZva2VBbmRXYWl0KHIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIElmIG9wZXJhdGlvbiB3YXMgaW50ZXJydXB0ZWQsIHRoZW4gY2xpZW50CisgICAgICAgICAgICAgICAgICAgIC8vIGNhbGxlZCB3YWl0IG9yIHNsZWVwIChvciBzb21ldGhpbmcgc2ltaWxhcikKKyAgICAgICAgICAgICAgICAgICAgLy8gd2hpY2ggaXMgaW5hcHByb3ByaWF0ZSBmb3IgYSBjbGllbnQgb2YgdGhpcworICAgICAgICAgICAgICAgICAgICAvLyBjbGFzcy4gIFJldGhyb3cgZXJyb3IgYW5kIGxldCBjbGllbnQgaGFuZGxlIGl0LgorICAgICAgICAgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkludGVycnVwdGVkIGluIFJ1blN0cmF0ZWd5OiAiICsgZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoKEludm9jYXRpb25UYXJnZXRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAvLyBXaG8ga25vd3MgaG93IHRoaXMgb25lIGhhcHBlbnMuLi4KKyAgICAgICAgICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJJbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uIGluIFJ1blN0cmF0ZWd5OiAiICsgZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgZkltcGwgPSBuZXcgQVRleHRQYW5lbEltcGwocnVuU3RyYXRlZ3ksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcGJvYXJkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3J6U2IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRTYik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBmaW5hbCBGYWtlQ29tcG9uZW50IHRleHRDb21wb25lbnQgPSBmSW1wbC5nZXRUZXh0Q29tcG9uZW50KCk7CisgICAgICAgIAorICAgICAgICBKQ29tcG9uZW50IHRleHRIb3N0ID0gbmV3IEpDb21wb25lbnQoKSB7CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGV4dENvbXBvbmVudC5zZXRIb3N0KHRoaXMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHVibGljIHZvaWQgYWRkTm90aWZ5KCkgeworICAgICAgICAgICAgICAgIHN1cGVyLmFkZE5vdGlmeSgpOworICAgICAgICAgICAgICAgIHRleHRDb21wb25lbnQuYWRkTm90aWZ5KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBwYWludChHcmFwaGljcyBnKSB7CisgICAgICAgICAgICAgICAgdGV4dENvbXBvbmVudC5wYWludChnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIGFkZCgiQ2VudGVyIiwgdGV4dEhvc3QpOworCisgICAgICAgIHRleHRIb3N0LnJlcXVlc3RGb2N1cygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZCB0aGUgZ2l2ZW4gVGV4dFBhbmVsTGlzdGVuZXIgdG8gdGhlIGxpc3RlbmVycyB3aGljaCB3aWxsCisgICAgICogcmVjZWl2ZSB1cGRhdGUgbm90aWZpY2F0aW9ucyBmcm9tIHRoaXMgSlRleHRQYW5lbC4KKyAgICAgKiBAcGFyYW0gbGlzdGVuZXIgdGhlIGxpc3RlbmVyIHRvIGFkZAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFkZExpc3RlbmVyKFRleHRQYW5lbExpc3RlbmVyIGxpc3RlbmVyKSB7CisKKyAgICAgICAgZkltcGwuYWRkTGlzdGVuZXIobGlzdGVuZXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZSB0aGUgZ2l2ZW4gVGV4dFBhbmVsTGlzdGVuZXIgZnJvbSB0aGUgbGlzdGVuZXJzIHdoaWNoIHdpbGwKKyAgICAgKiByZWNlaXZlIHVwZGF0ZSBub3RpZmljYXRpb25zIGZyb20gdGhpcyBKVGV4dFBhbmVsLgorICAgICAqIEBwYXJhbSBsaXN0ZW5lciB0aGUgbGlzdGVuZXIgdG8gcmVtb3ZlCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVtb3ZlTGlzdGVuZXIoVGV4dFBhbmVsTGlzdGVuZXIgbGlzdGVuZXIpIHsKKworICAgICAgICBmSW1wbC5yZW1vdmVMaXN0ZW5lcihsaXN0ZW5lcik7CisgICAgfQorCisvLz09PT09PT09PT09PQorLy8gVGV4dCBBY2Nlc3MKKy8vPT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGRvY3VtZW50IHRvIDx0dD5uZXdUZXh0PC90dD4uICBUaGlzIG9wZXJhdGlvbgorICAgICAqIG1vZGlmaWVzIHRoZSB0ZXh0IGluIHRoZSBKVGV4dFBhbmVsLiAgSXQgZG9lcyBub3QgbW9kaWZ5IG9yIGFkb3B0CisgICAgICogPHR0Pm5ld1RleHQ8L3R0Pi4gIFRoaXMgbWV0aG9kIHNldHMgdGhlIHNlbGVjdGlvbiBhbiBpbnNlcnRpb24gcG9pbnQgYXQKKyAgICAgKiB0aGUgZW5kIG9mIHRoZSB0ZXh0LgorICAgICAqIEBwYXJhbSBuZXdUZXh0IHRoZSB0ZXh0IHdoaWNoIHdpbGwgcmVwbGFjZSB0aGUgY3VycmVudCB0ZXh0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRleHQoTUNvbnN0VGV4dCBuZXdUZXh0KSB7CisKKyAgICAgICAgZkltcGwuc2V0VGV4dChuZXdUZXh0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBcHBlbmQgdGhlIGdpdmVuIHRleHQgdG8gdGhlIGVuZCBvZiB0aGUgZG9jdW1lbnQuICBFcXVpdmFsZW50IHRvCisgICAgICogPHR0Pmluc2VydChuZXdUZXh0LCBnZXRUZXh0TGVuZ3RoKCkpPC90dD4uCisgICAgICogQHBhcmFtIG5ld1RleHQgdGhlIHRleHQgdG8gYXBwZW5kIHRvIHRoZSBkb2N1bWVudAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFwcGVuZChNQ29uc3RUZXh0IG5ld1RleHQpIHsKKworICAgICAgICBmSW1wbC5hcHBlbmQobmV3VGV4dCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW5zZXJ0IHRoZSBnaXZlbiB0ZXh0IGludG8gdGhlIGRvY3VtZW50IGF0IHRoZSBnaXZlbiBwb3NpdGlvbi4KKyAgICAgKiBFcXVpdmFsZW50IHRvCisgICAgICogPHR0PnJlcGxhY2VSYW5nZShuZXdUZXh0LCBwb3NpdGlvbiwgcG9zaXRpb24pPC90dD4uCisgICAgICogQHBhcmFtIG5ld1RleHQgdGhlIHRleHQgdG8gaW5zZXJ0IGludG8gdGhlIGRvY3VtZW50LgorICAgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgcG9zaXRpb24gaW4gdGhlIGRvY3VtZW50IHdoZXJlIHRoZQorICAgICAqICAgICB0ZXh0IHdpbGwgYmUgaW5zZXJ0ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBpbnNlcnQoTUNvbnN0VGV4dCBuZXdUZXh0LCBpbnQgcG9zaXRpb24pIHsKKworICAgICAgICBmSW1wbC5pbnNlcnQobmV3VGV4dCwgcG9zaXRpb24pOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlcGxhY2UgdGhlIGdpdmVuIHJhbmdlIHdpdGggPHR0Pm5ld1RleHQ8L3R0Pi4gIEFmdGVyIHRoaXMKKyAgICAgKiBvcGVyYXRpb24gdGhlIHNlbGVjdGlvbiByYW5nZSBpcyBhbiBpbnNlcnRpb24gcG9pbnQgYXQgdGhlCisgICAgICogZW5kIG9mIHRoZSBuZXcgdGV4dC4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCB0aGUgdGV4dCB3aXRoIHdoaWNoIHRvIHJlcGxhY2UgdGhlIHJhbmdlCisgICAgICogQHBhcmFtIHN0YXJ0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHJhbmdlIHRvIHJlcGxhY2UKKyAgICAgKiBAcGFyYW0gZW5kIHRoZSBlbmQgb2YgdGhlIHJhbmdlIHRvIHJlcGxhY2UKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZXBsYWNlUmFuZ2UoTUNvbnN0VGV4dCBuZXdUZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpIHsKKworICAgICAgICBmSW1wbC5yZXBsYWNlUmFuZ2UobmV3VGV4dCwgc3RhcnQsIGVuZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIHRleHQgZG9jdW1lbnQgaW4gdGhlIEpUZXh0UGFuZWwuCisgICAgICogQHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSB0ZXh0IGRvY3VtZW50IGluIHRoZSBKVGV4dFBhbmVsCisgICAgICovCisgICAgcHVibGljIGludCBnZXRUZXh0TGVuZ3RoKCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5nZXRUZXh0TGVuZ3RoKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB0ZXh0IGRvY3VtZW50IGluIHRoZSBKVGV4dFBhbmVsLgorICAgICAqIEByZXR1cm4gdGhlIHRleHQgZG9jdW1lbnQgaW4gdGhlIEpUZXh0UGFuZWwuCisgICAgICovCisgICAgcHVibGljIE1Db25zdFRleHQgZ2V0VGV4dCgpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuZ2V0VGV4dCgpOworICAgIH0KKworLy89PT09PT09PT09PT0KKy8vIFNlbGVjdGlvbiBBY2Nlc3MKKy8vPT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG9mZnNldCBvZiB0aGUgc3RhcnQgb2YgdGhlIHNlbGVjdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFNlbGVjdGlvblN0YXJ0KCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5nZXRTZWxlY3Rpb25TdGFydCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgb2Zmc2V0IG9mIHRoZSBlbmQgb2YgdGhlIHNlbGVjdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFNlbGVjdGlvbkVuZCgpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuZ2V0U2VsZWN0aW9uRW5kKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHNlbGVjdGlvbiByYW5nZS4gIFRoaXMgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIDx0dD5zZWxlY3Qoc2VsZWN0aW9uU3RhcnQsIGdldFNlbGVjdGlvbkVuZCgpKTwvdHQ+LgorICAgICAqIEBwYXJhbSBzZWxlY3Rpb25TdGFydCB0aGUgc3RhcnQgb2YgdGhlIG5ldyBzZWxlY3Rpb24gcmFuZ2UKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTZWxlY3Rpb25TdGFydChpbnQgc2VsZWN0aW9uU3RhcnQpIHsKKworICAgICAgICBmSW1wbC5zZXRTZWxlY3Rpb25TdGFydChzZWxlY3Rpb25TdGFydCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBlbmQgb2YgdGhlIHNlbGVjdGlvbiByYW5nZS4gIFRoaXMgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIDx0dD5zZWxlY3QoZ2V0U2VsZWN0aW9uU3RhcnQoKSwgc2VsZWN0aW9uRW5kKTwvdHQ+LgorICAgICAqIEBwYXJhbSBzZWxlY3Rpb25TdGFydCB0aGUgc3RhcnQgb2YgdGhlIG5ldyBzZWxlY3Rpb24gcmFuZ2UKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTZWxlY3Rpb25FbmQoaW50IHNlbGVjdGlvbkVuZCkgeworCisgICAgICAgIGZJbXBsLnNldFNlbGVjdGlvbkVuZChzZWxlY3Rpb25FbmQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgc2VsZWN0aW9uIHJhbmdlIHRvIGFuIGluc2VydGlvbiBwb2ludCBhdCB0aGUgZ2l2ZW4KKyAgICAgKiBvZmZzZXQuICBUaGlzIGlzIGVxdWl2YWxlbnQgdG8KKyAgICAgKiA8dHQ+c2VsZWN0KHBvc2l0aW9uLCBwb3NpdGlvbik8L3R0Pi4KKyAgICAgKiBAcGFyYW0gcG9zaXRpb24gdGhlIG9mZnNldCBvZiB0aGUgbmV3IGluc2VydGlvbiBwb2ludAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldENhcmV0UG9zaXRpb24oaW50IHBvc2l0aW9uKSB7CisKKyAgICAgICAgZkltcGwuc2V0Q2FyZXRQb3NpdGlvbihwb3NpdGlvbik7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBzZWxlY3Rpb24gcmFuZ2UgdG8gdGhlIGdpdmVuIHJhbmdlLiAgVGhlIHJhbmdlIHN0YXJ0CisgICAgICogaXMgcGlubmVkIGJldHdlZW4gMCBhbmQgdGhlIHRleHQgbGVuZ3RoOyAgdGhlIHJhbmdlIGVuZCBpcyBwaW5uZWQKKyAgICAgKiBiZXR3ZWVuIHRoZSByYW5nZSBzdGFydCBhbmQgdGhlIGVuZCBvZiB0aGUgdGV4dC4gIFRoZXNlIHNlbWFudGljcworICAgICAqIGFyZSBpZGVudGljYWwgdG8gdGhvc2Ugb2YgPHR0PmphdmEuYXd0LlRleHRDb21wb25lbnQ8L3R0Pi4KKyAgICAgKiBUaGlzIG1ldGhvZCBoYXMgbm8gZWZmZWN0IGlmIHRoZSB0ZXh0IGlzIG5vdCBzZWxlY3RhYmxlLgorICAgICAqIEBwYXJhbSBzZWxlY3Rpb25TdGFydCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzZWxlY3Rpb24gcmFuZ2UKKyAgICAgKiBAcGFyYW0gc2VsZWN0aW9uRW5kIHRoZSBlbmQgb2YgdGhlIHNlbGVjdGlvbiByYW5nZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNlbGVjdChpbnQgc2VsZWN0aW9uU3RhcnQsIGludCBzZWxlY3Rpb25FbmQpIHsKKworICAgICAgICBmSW1wbC5zZWxlY3Qoc2VsZWN0aW9uU3RhcnQsIHNlbGVjdGlvbkVuZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2VsZWN0IGFsbCBvZiB0aGUgdGV4dCBpbiB0aGUgZG9jdW1lbnQuICBUaGlzIG1ldGhvZCBoYXMgbm8gZWZmZWN0IGlmCisgICAgICogdGhlIHRleHQgaXMgbm90IHNlbGVjdGFibGUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2VsZWN0QWxsKCkgeworCisgICAgICAgIGZJbXBsLnNlbGVjdEFsbCgpOworICAgIH0KKworCisvLz09PT09PT09PT09PQorLy8gRm9ybWF0IFdpZHRoCisvLz09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB0b3RhbCBmb3JtYXQgd2lkdGgsIGluIHBpeGVscy4gIFRoZSBmb3JtYXQgd2lkdGggaXMgdGhlCisgICAgICogd2lkdGggdG8gd2hpY2ggdGV4dCBpcyB3cmFwcGVkLgorICAgICAqIEByZXR1cm4gdGhlIGZvcm1hdCB3aWR0aAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0Rm9ybWF0V2lkdGgoKSB7CisKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldEZvcm1hdFdpZHRoKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIHBhcmFncmFwaCBhdCB0aGUgZ2l2ZW4gb2Zmc2V0IGlzIGxlZnQtdG8tcmlnaHQuCisgICAgICogQHBhcmFtIG9mZnNldCBhbiBvZmZzZXQgaW4gdGhlIHRleHQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHBhcmFncmFwaCBhdCB0aGUgZ2l2ZW4gb2Zmc2V0IGlzIGxlZnQtdG8tcmlnaHQKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBwYXJhZ3JhcGhJc0xlZnRUb1JpZ2h0KGludCBvZmZzZXQpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBmSW1wbC5wYXJhZ3JhcGhJc0xlZnRUb1JpZ2h0KG9mZnNldCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlcmUgaXMgYSBjaGFuZ2Ugd2hpY2ggY2FuIGJlIHVuZG9uZS4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlcmUgaXMgYSBjaGFuZ2Ugd2hpY2ggY2FuIGJlIHVuZG9uZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBjYW5VbmRvKCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5jYW5VbmRvKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlcmUgaXMgYSBjaGFuZ2Ugd2hpY2ggY2FuIGJlIHJlZG9uZS4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlcmUgaXMgYSBjaGFuZ2Ugd2hpY2ggY2FuIGJlIHJlZG9uZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBjYW5SZWRvKCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5jYW5SZWRvKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGNsaXBib2FyZCBjb250YWlucyBjb250ZW50cyB3aGljaCBjb3VsZCBiZQorICAgICAqIHRyYW5zZmVyZWQgaW50byB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNsaXBib2FyZCBoYXMgdGV4dCBjb250ZW50LgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNsaXBib2FyZE5vdEVtcHR5KCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5jbGlwYm9hcmROb3RFbXB0eSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhbiBBdHRyaWJ1dGVNYXAgb2Yga2V5cyB3aXRoIGRlZmF1bHQgdmFsdWVzLiAgVGhlIGRlZmF1bHQKKyAgICAgKiB2YWx1ZXMgYXJlIHVzZWQgd2hlbiBkaXNwbGF5aW5nIHRleHQgZm9yIHZhbHVlcyB3aGljaCBhcmUgbm90CisgICAgICogc3BlY2lmaWVkIGluIHRoZSB0ZXh0LgorICAgICAqIEByZXR1cm4gYW4gQXR0cmlidXRlTWFwIG9mIGRlZmF1bHQga2V5LXZhbHVlIHBhaXJzCisgICAgICovCisgICAgcHVibGljIEF0dHJpYnV0ZU1hcCBnZXREZWZhdWx0VmFsdWVzKCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5nZXREZWZhdWx0VmFsdWVzKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgaW5zcGVjdHMgdGhlIGNoYXJhY3RlciBzdHlsZSBydW5zIGluIHRoZSBzZWxlY3Rpb24KKyAgICAgKiByYW5nZSAob3IgdGhlIHR5cGluZyBzdHlsZSBhdCB0aGUgaW5zZXJ0aW9uIHBvaW50KS4gIEl0IHJldHVybnM6CisgICAgICogPHVsPgorICAgICAqIDxsaT5UaGUgdmFsdWUgb2YgPHR0PmtleTwvdHQ+LCBpZiB0aGUgdmFsdWUgb2YgPHR0PmtleTwvdHQ+CisgICAgICogaXMgdGhlIHNhbWUgaW4gYWxsIG9mIHRoZSBzdHlsZSBydW5zIGluIHRoZSBzZWxlY3Rpb24sIG9yPC9saT4KKyAgICAgKiA8bGk+PHR0Pk1VTFRJUExFX1ZBTFVFUzwvdHQ+LCBpZiB0d28gb3IgbW9yZSBzdHlsZSBydW5zIGhhdmUgZGlmZmVyZW50IAorICAgICAqIHZhbHVlcyBmb3IgPHR0PmtleTwvdHQ+LjwvbGk+CisgICAgICogPC91bD4KKyAgICAgKiBJZiBhIHN0eWxlIHJ1biBkb2VzIG5vdCBjb250YWluIDx0dD5rZXk8L3R0PiwKKyAgICAgKiBpdHMgdmFsdWUgaXMgY29uc2lkZXJlZCB0byBiZSB0aGUgZGVmYXVsdCBzdHlsZSBmb3IgPHR0PmtleTwvdHQ+LAorICAgICAqIGFzIGRlZmluZWQgYnkgdGhlIGRlZmF1bHQgdmFsdWVzIEF0dHJpYnV0ZU1hcC4gIE5vdGUgdGhhdCBpZgorICAgICAqIDx0dD5rZXk8L3R0PiBkb2VzIG5vdCBoYXZlIGEgZGVmYXVsdCB2YWx1ZSB0aGlzIG1ldGhvZCBtYXkgcmV0dXJuCisgICAgICogbnVsbC4KKyAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VmdWwgZm9yIGNvbmZpZ3VyaW5nIHN0eWxlIG1lbnVzLgorICAgICAqIEBwYXJhbSBrZXkgdGhlIGtleSB1c2VkIHRvIHJldHJpZXZlIHZhbHVlcyBmb3IgY29tcGFyaXNvbgorICAgICAqIEBzZWUgTVRleHRQYW5lbCNNVUxUSVBMRV9WQUxVRVMKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGdldENoYXJhY3RlclN0eWxlT3ZlclNlbGVjdGlvbihPYmplY3Qga2V5KSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkltcGwuZ2V0Q2hhcmFjdGVyU3R5bGVPdmVyU2VsZWN0aW9uKGtleSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgaW5zcGVjdHMgdGhlIHBhcmFncmFwaCBzdHlsZSBydW5zIGluIHRoZSBzZWxlY3Rpb24KKyAgICAgKiByYW5nZSAob3IgdGhlIHR5cGluZyBzdHlsZSBhdCB0aGUgaW5zZXJ0aW9uIHBvaW50KS4gIEl0IHJldHVybnM6CisgICAgICogPHVsPgorICAgICAqIDxsaT5UaGUgdmFsdWUgb2YgPHR0PmtleTwvdHQ+LCBpZiB0aGUgdmFsdWUgb2YgPHR0PmtleTwvdHQ+CisgICAgICogaXMgdGhlIHNhbWUgaW4gYWxsIG9mIHRoZSBzdHlsZSBydW5zIGluIHRoZSBzZWxlY3Rpb24sIG9yPC9saT4KKyAgICAgKiA8bGk+PHR0Pk1VTFRJUExFX1ZBTFVFUzwvdHQ+LCBpZiB0d28gb3IgbW9yZSBzdHlsZSBydW5zIGhhdmUgCisgICAgICogZGlmZmVyZW50IHZhbHVlcyBmb3IgPHR0PmtleTwvdHQ+LjwvbGk+CisgICAgICogPC91bD4KKyAgICAgKiBJZiBhIHN0eWxlIHJ1biBkb2VzIG5vdCBjb250YWluIDx0dD5rZXk8L3R0PiwKKyAgICAgKiBpdHMgdmFsdWUgaXMgY29uc2lkZXJlZCB0byBiZSB0aGUgZGVmYXVsdCBzdHlsZSBmb3IgPHR0PmtleTwvdHQ+LAorICAgICAqIGFzIGRlZmluZWQgYnkgdGhlIGRlZmF1bHQgdmFsdWVzIEF0dHJpYnV0ZU1hcC4gIE5vdGUgdGhhdCBpZgorICAgICAqIDx0dD5rZXk8L3R0PiBkb2VzIG5vdCBoYXZlIGEgZGVmYXVsdCB2YWx1ZSB0aGlzIG1ldGhvZCBtYXkgcmV0dXJuCisgICAgICogbnVsbC4KKyAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VmdWwgZm9yIGNvbmZpZ3VyaW5nIHN0eWxlIG1lbnVzLgorICAgICAqIEBwYXJhbSBrZXkgdGhlIGtleSB1c2VkIHRvIHJldHJpZXZlIHZhbHVlcyBmb3IgY29tcGFyaXNvbgorICAgICAqIEBzZWUgTVRleHRQYW5lbCNNVUxUSVBMRV9WQUxVRVMKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGdldFBhcmFncmFwaFN0eWxlT3ZlclNlbGVjdGlvbihPYmplY3Qga2V5KSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkltcGwuZ2V0UGFyYWdyYXBoU3R5bGVPdmVyU2VsZWN0aW9uKGtleSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVtb3ZlIHRoZSBzZWxlY3RlZCB0ZXh0IGZyb20gdGhlIGRvY3VtZW50IGFuZCBwbGFjZSBpdAorICAgICAqIG9uIHRoZSBjbGlwYm9hcmQuICBUaGlzIG1ldGhvZCBoYXMgbm8gZWZmZWN0IGlmIHRoZSB0ZXh0CisgICAgICogaXMgbm90IGVkaXRhYmxlLCBvciBpZiBubyB0ZXh0IGlzIHNlbGVjdGVkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGN1dCgpIHsKKyAgICAgICAgZkltcGwuY3V0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGxhY2UgdGhlIHNlbGVjdGVkIHRleHQgb24gdGhlIGNsaXBib2FyZC4gIFRoaXMgbWV0aG9kIGhhcworICAgICAqIG5vIGVmZmVjdCBpZiBubyB0ZXh0IGlzIHNlbGVjdGVkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNvcHkoKSB7CisgICAgICAgIGZJbXBsLmNvcHkoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXBsYWNlIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgdGV4dCB3aXRoIHRoZSB0ZXh0IG9uIHRoZSBjbGlwYm9hcmQuCisgICAgICogVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZiB0aGUgdGV4dCBpcyBub3QgZWRpdGFibGUsIG9yIGlmIG5vCisgICAgICogdGV4dCBpcyBvbiB0aGUgY2xpcGJvYXJkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHBhc3RlKCkgeworICAgICAgICBmSW1wbC5wYXN0ZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZSBzZWxlY3RlZCB0ZXh0IGZyb20gdGhlIGRvY3VtZW50LCB3aXRob3V0IGFsdGVyaW5nIHRoZSBjbGlwYm9hcmQuCisgICAgICogVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZiB0aGUKKyAgICAgKiB0ZXh0IGlzIG5vdCBlZGl0YWJsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjbGVhcigpIHsKKyAgICAgICAgZkltcGwuY2xlYXIoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVbmRvIHRoZSBtb3N0IHJlY2VudCB0ZXh0IGNoYW5nZS4gIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYKKyAgICAgKiB0aGVyZSBpcyBubyBjaGFuZ2UgdG8gdW5kby4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB1bmRvKCkgeworICAgICAgICBmSW1wbC51bmRvKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVkbyB0aGUgbW9zdCByZWNlbnQgdGV4dCBjaGFuZ2UuICBUaGlzIG1ldGhvZCBoYXMgbm8gZWZmZWN0IGlmCisgICAgICogdGhlcmUgaXMgbm8gY2hhbmdlIHRvIHJlZG8uCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVkbygpIHsKKyAgICAgICAgZkltcGwucmVkbygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbnVtYmVyIG9mIGNvbW1hbmRzIHRoZSBjb21tYW5kIGxvZyBjYW4gaG9sZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgY29tbWFuZHMgdGhlIGNvbW1hbmQgbG9nIGNhbiBob2xkCisgICAgICovCisgICAgcHVibGljIGludCBnZXRDb21tYW5kTG9nU2l6ZSgpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuZ2V0Q29tbWFuZExvZ1NpemUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIG51bWJlciBvZiBjb21tYW5kcyB0aGUgY29tbWFuZCBsb2cgY2FuIGhvbGQuICBBbGwKKyAgICAgKiByZWRvYWJsZSBjb21tYW5kcyBhcmUgcmVtb3ZlZCB3aGVuIHRoaXMgbWV0aG9kIGlzIGNhbGxlZC4KKyAgICAgKiBAcGFyYW0gc2l6ZSB0aGUgbnVtYmVyIG9mIGNvbW1hbmRzIGtlcHQgaW4gdGhlIGNvbW1hbmQgbG9nCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Q29tbWFuZExvZ1NpemUoaW50IHNpemUpIHsKKyAgICAgICAgZkltcGwuc2V0Q29tbWFuZExvZ1NpemUoc2l6ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVtb3ZlIGFsbCBjb21tYW5kcyBmcm9tIHRoZSBjb21tYW5kIGxvZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjbGVhckNvbW1hbmRMb2coKSB7CisgICAgICAgIGZJbXBsLmNsZWFyQ29tbWFuZExvZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1vZGlmeSB0aGUgY2hhcmFjdGVyIHN0eWxlcyBvbiB0aGUgc2VsZWN0ZWQgY2hhcmFjdGVycy4gIElmIG5vIGNoYXJhY3RlcnMKKyAgICAgKiBhcmUgc2VsZWN0ZWQsIG1vZGlmeSB0aGUgdHlwaW5nIHN0eWxlLgorICAgICAqIEBwYXJhbSBtb2RpZmllciB0aGUgU3R5bGVNb2RpZmllciB3aXRoIHdoaWNoIHRvIG1vZGlmeSB0aGUgc3R5bGVzCisgICAgICovCisgICAgcHVibGljIHZvaWQgbW9kaWZ5Q2hhcmFjdGVyU3R5bGVPblNlbGVjdGlvbihTdHlsZU1vZGlmaWVyIG1vZGlmaWVyKSB7CisgICAgICAgIGZJbXBsLm1vZGlmeUNoYXJhY3RlclN0eWxlT25TZWxlY3Rpb24obW9kaWZpZXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1vZGlmeSB0aGUgcGFyYWdyYXBoIHN0eWxlcyBpbiBwYXJhZ3JhcGhzIGNvbnRhaW5pbmcgc2VsZWN0ZWQgY2hhcmFjdGVycywgb3IKKyAgICAgKiB0aGUgcGFyYWdyYXBoIGNvbnRhaW5pbmcgdGhlIGluc2VydGlvbiBwb2ludC4KKyAgICAgKiBAcGFyYW0gbW9kaWZpZXIgdGhlIFN0eWxlTW9kaWZpZXIgd2l0aCB3aGljaCB0byBtb2RpZnkgdGhlIHN0eWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIG1vZGlmeVBhcmFncmFwaFN0eWxlT25TZWxlY3Rpb24oU3R5bGVNb2RpZmllciBtb2RpZmllcikgeworICAgICAgICBmSW1wbC5tb2RpZnlQYXJhZ3JhcGhTdHlsZU9uU2VsZWN0aW9uKG1vZGlmaWVyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIEtleVJlbWFwIHVzZWQgdG8gcHJvY2VzcyBrZXkgZXZlbnRzLgorICAgICAqIEByZXR1cm4gdGhlIGtleSByZW1hcCB1c2VkIHRvIHByb2Nlc3Mga2V5IGV2ZW50cworICAgICAqIEBzZWUgI3NldEtleVJlbWFwCisgICAgICovCisgICAgcHVibGljIEtleVJlbWFwIGdldEtleVJlbWFwKCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5nZXRLZXlSZW1hcCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFVzZSB0aGUgZ2l2ZW4gS2V5UmVtYXAgdG8gbWFwIGtleSBldmVudHMgdG8gY2hhcmFjdGVycy4KKyAgICAgKiBPbmx5IGtleQorICAgICAqIGV2ZW50cyBhcmUgYWZmZWN0ZWQgYnkgdGhlIHJlbWFwOyAgb3RoZXIgdGV4dCBlbnRlcmluZyB0aGUKKyAgICAgKiBjb250cm9sICh2aWEgdGhlIGNsaXBib2FyZCwgZm9yIGV4YW1wbGUpIGlzIG5vdCBhZmZlY3RlZAorICAgICAqIGJ5IHRoZSBLZXlSZW1hcC4KKyAgICAgKiA8cD4KKyAgICAgKiBEbyBub3QgcGFzcyA8dHQ+bnVsbDwvdHQ+IHRvIHRoaXMgbWV0aG9kIHRvIGxlYXZlIGtleQorICAgICAqIGV2ZW50cyB1bm1hcHBlZC4gIEluc3RlYWQsIHVzZSA8dHQ+S2V5UmVtYXAuZ2V0SWRlbnRpdHlSZW1hcCgpPC90dD4KKyAgICAgKiBAcGFyYW0gcmVtYXAgdGhlIEtleVJlbWFwIHRvIHVzZSBmb3IgbWFwcGluZyBrZXkgZXZlbnRzIHRvIGNoYXJhY3RlcnMKKyAgICAgKiBAZXhjZXB0aW9uIGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiBpZiBwYXJhbWV0ZXIgaXMgbnVsbAorICAgICAqIEBzZWUgS2V5UmVtYXAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRLZXlSZW1hcChLZXlSZW1hcCByZW1hcCkgeworCisgICAgICAgIGZJbXBsLnNldEtleVJlbWFwKHJlbWFwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG1vZGlmaWNhdGlvbiBmbGFnIG9mIHRoZSBjdXJyZW50IHRleHQgY2hhbmdlLgorICAgICAqIEBzZWUgI3NldE1vZGlmaWVkCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNNb2RpZmllZCgpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuaXNNb2RpZmllZCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgbW9kaWZpY2F0aW9uIGZsYWcgb2YgdGhlIGN1cnJlbnQgdGV4dCBjaGFuZ2UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TW9kaWZpZWQoYm9vbGVhbiBtb2RpZmllZCkgeworICAgICAgICAKKyAgICAgICAgZkltcGwuc2V0TW9kaWZpZWQobW9kaWZpZWQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIGlzIGZvciBLZXlFdmVudEZvcndhcmRlcidzIHVzZSBvbmx5IQorICAgICAqLworICAgIEFUZXh0UGFuZWxJbXBsIGdldEltcGwoKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkltcGw7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0QmFja2dyb3VuZChDb2xvciBjb2xvcikgeworICAgICAgICBzdXBlci5zZXRCYWNrZ3JvdW5kIChjb2xvcik7CisgICAgICAgIGphdmEuYXd0LkNvbXBvbmVudFtdIGNvbXBMaXN0ID0gZ2V0Q29tcG9uZW50cygpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvbXBMaXN0Lmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoIShjb21wTGlzdFtpXSBpbnN0YW5jZW9mIEpTY3JvbGxCYXIpKSB7CisgICAgICAgICAgICAgICAgY29tcExpc3RbaV0uc2V0QmFja2dyb3VuZCAoY29sb3IpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0tleUV2ZW50Rm9yd2FyZGVyLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvS2V5RXZlbnRGb3J3YXJkZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jNGQxZDYzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0tleUV2ZW50Rm9yd2FyZGVyLmphdmEKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogS2V5RXZlbnRGb3J3YXJkZXIuamF2YSx2ICQgJFJldmlzaW9uOiAxLjIgJCAkRGF0ZTogMjAwMC8wNC8yMiAxNzoxMDoxMCAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50LktleUV2ZW50OworCisvKioKKyAqIFRoaXMgY2xhc3MgZm9yd2FyZHMga2V5IGV2ZW50cyB0byBhIFRleHRQYW5lbCBjb21wb25lbnQgZm9yCisgKiB0ZXN0aW5nIHB1cnBvc2VzLgorICogSXRzIHNvbGUgcmVhc29uIGZvciBleGlzdGVuY2UgaXMgdG8gcHJldmVudCB0aGUga2V5LWV2ZW50CisgKiBBUEkgZnJvbSBiZWluZyBwdWJsaWMgb24gTVRleHRQYW5lbCwgYW5kIGJlaW5nIG1pc3Rha2VuIGZvcgorICogc3RhbmRhcmQgQVBJLiAgVGhpcyBjbGFzcyBpcyBvbmx5IGZvciB0ZXN0aW5nISAgSXQgbWF5IGJlCisgKiByZW1vdmVkIGZyb20gcHVibGljIEFQSSBhdCBhbnkgdGltZS4gIERvIG5vdCBkZXBlbmQgb24gdGhpcworICogY2xhc3MuCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBLZXlFdmVudEZvcndhcmRlciB7CisKKyAgICBwcml2YXRlIEFUZXh0UGFuZWxJbXBsIGZQYW5lbEltcGw7CisKKyAgICBwdWJsaWMgS2V5RXZlbnRGb3J3YXJkZXIoVGV4dFBhbmVsIHRleHRQYW5lbCkgeworCisgICAgICAgIGZQYW5lbEltcGwgPSB0ZXh0UGFuZWwuZ2V0SW1wbCgpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgS2V5RXZlbnRGb3J3YXJkZXIoSlRleHRQYW5lbCB0ZXh0UGFuZWwpIHsKKyAgICAKKyAgICAgICAgZlBhbmVsSW1wbCA9IHRleHRQYW5lbC5nZXRJbXBsKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgaGFuZGxlS2V5RXZlbnQoS2V5RXZlbnQga2V5RXZlbnQpIHsKKworICAgICAgICBmUGFuZWxJbXBsLmhhbmRsZUtleUV2ZW50KGtleUV2ZW50KTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0tleVJlbWFwLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvS2V5UmVtYXAuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hYjZmZjhhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0tleVJlbWFwLmphdmEKQEAgLTAsMCArMSwxMTggQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IEtleVJlbWFwLmphdmEsdiAkICRSZXZpc2lvbjogMS4xICQgJERhdGU6IDIwMDAvMDQvMjAgMTc6NTE6MjMgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8qCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OCwgQWxsIFJpZ2h0cyBSZXNlcnZlZAorICovCisKK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5LZXlFdmVudDsKKworLyoqCisgKiBLZXlSZW1hcCBtYXBzIGtleXMgb24gYSBzdGFuZGFyZCBVUyBrZXlib2FyZCB0byBjaGFyYWN0ZXJzCisgKiBpbiBvdGhlciBhbHBoYWJldHMuICBDdXJyZW50bHksIG1hcHBpbmdzIHRvIEFyYWJpYywgSGVicmV3CisgKiBhbmQgVGhhaSBhcmUgc3VwcG9ydGVkLiAgSW4gdGhlIGZ1dHVyZSwgY2xpZW50cyBtYXkgYmUKKyAqIHRvIGRlZmluZSB0aGVpciBvd24gbWFwcGluZ3MgYnkgc3ViY2xhc3NpbmcgdGhpcyBjbGFzcy4KKyAqIDxQPgorICogQHNlZSBUZXh0UGFuZWwjc2V0S2V5UmVtYXAKKyAqLworCitwdWJsaWMgY2xhc3MgS2V5UmVtYXAgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBuZXcgS2V5UmVtYXAuCisgICAgICovCisgICAgcHJvdGVjdGVkIEtleVJlbWFwKCkgeworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGNoYXJhY3RlciBvbiB0aGUgc2ltdWxhdGVkIGtleWJvYXJkCisgICAgICogd2hpY2ggaXMgKG1vc3QgbGlrZWx5KSBnZW5lcmF0ZWQgYnkgdHlwaW5nIHRoZSBjaGFyYWN0ZXIgYworICAgICAqIG9uIHRoZSBhY3R1YWwga2V5Ym9hcmQuICBGb3IgZ3JlYXRlciBhY2N1cmFjeSwgdXNlIHRoZSByZW1hcAorICAgICAqIG1ldGhvZCB3aGljaCB0YWtlcyBhIEtleUV2ZW50LCBzaW5jZSBpdCBjYW4gdGFrZSBtb2RpZmllcgorICAgICAqIGtleXMgaW50byBhY2NvdW50LgorICAgICAqIEBhcmcgYyBhIGNoYXJhY3RlciBvbiB0aGUgYWN0dWFsIGtleWJvYXJkCisgICAgICogQHJldHVybiB0aGUgY2hhcmFjdGVyIG9uIHRoZSBzaW11bGF0ZWQga2V5Ym9hcmQgd2hpY2ggd291bGQKKyAgICAgKiAgICAgICAgIHJlc3VsdCBmcm9tIHRoZSBrZXkgY29tYmluYXRpb24gd2hpY2ggcHJvZHVjZWQgdGhlCisgICAgICogICAgICAgICBnaXZlbiBjaGFyYWN0ZXIgb24gdGhlIGFjdHVhbCBrZXlib2FyZAorICAgICAqLworICAgIC8qcHVibGljKi8gY2hhciByZW1hcChjaGFyIGMpIHsKKworICAgICAgICByZXR1cm4gYzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGNoYXJhY3RlciBvbiB0aGUgc2ltdWxhdGVkIGtleWJvYXJkCisgICAgICogd2hpY2gga2V5RXZlbnQgZ2VuZXJhdGVzLgorICAgICAqIEBhcmcga2V5RXZlbnQgYSBrZXkgZXZlbnQgZnJvbSB0aGUgYWN0dWFsIGtleWJvYXJkCisgICAgICogQHJldHVybiB0aGUgY2hhcmFjdGVyIG9uIHRoZSBzaW11bGF0ZWQga2V5Ym9hcmQgZ2VuZXJhdGVkIGJ5CisgICAgICogICAgICAgICBrZXlFdmVudAorICAgICAqLworICAgIC8qcHVibGljKi8gY2hhciByZW1hcChLZXlFdmVudCBrZXlFdmVudCkgeworCisgICAgICAgIHJldHVybiByZW1hcChrZXlFdmVudC5nZXRLZXlDaGFyKCkpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEtleVJlbWFwIElERU5USVRZID0gbmV3IEtleVJlbWFwKCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgS2V5UmVtYXAgQVJBQklDX1RSQU5TTElURVJBVElPTiA9IG5ldyBBcmFiaWNUcmFuc2xpdGVyYXRpb24oKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBLZXlSZW1hcCBIRUJSRVdfVFJBTlNMSVRFUkFUSU9OID0gbmV3IEhlYnJld1RyYW5zbGl0ZXJhdGlvbigpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEtleVJlbWFwIElTUkFFTF9OSUtVRCA9IG5ldyBJc3JhZWxOaWt1ZEtleWJvYXJkKCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgS2V5UmVtYXAgVEhBSSA9IG5ldyBUaGFpS2V5UmVtYXAoKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiBhIEtleVJlbWFwIHdoaWNoIG1hcHMgZXZlcnkgY2hhcmFjdGVyIHRvIGl0c2VsZi4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEtleVJlbWFwIGdldElkZW50aXR5UmVtYXAoKSB7CisKKyAgICAgICAgcmV0dXJuIElERU5USVRZOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIEtleVJlbWFwIHdoaWNoIG1hcHMga2V5cyB0bworICAgICAqIGNoYXJhY3RlcnMgaW4gdGhlIEFyYWJpYyBhbHBoYWJldCwgdXNpbmcgYSBzaW1wbGUgdHJhbnNsaXRlcmF0aW9uLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgS2V5UmVtYXAgZ2V0QXJhYmljVHJhbnNsaXRlcmF0aW9uKCkgeworCisgICAgICAgIHJldHVybiBBUkFCSUNfVFJBTlNMSVRFUkFUSU9OOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIEtleVJlbWFwIHdoaWNoIG1hcHMga2V5cyB0bworICAgICAqIGNoYXJhY3RlcnMgaW4gdGhlIEhlYnJldyBhbHBoYWJldCwgdXNpbmcgYSBzaW1wbGUgdHJhbnNsaXRlcmF0aW9uLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgS2V5UmVtYXAgZ2V0SGVicmV3VHJhbnNsaXRlcmF0aW9uKCkgeworCisgICAgICAgIHJldHVybiBIRUJSRVdfVFJBTlNMSVRFUkFUSU9OOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIEtleVJlbWFwIHdoaWNoIGVtdWxhdGVzIGEgc3RhbmRhcmQgSGVicmV3IGtleWJvYXJkLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgS2V5UmVtYXAgZ2V0SXNyYWVsTmlrdWQoKSB7CisKKyAgICAgICAgcmV0dXJuIElTUkFFTF9OSUtVRDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgS2V5UmVtYXAgd2hpY2ggZW11bGF0ZXMgYSBUaGFpIEtldG1hbmVlIGtleWJvYXJkLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgS2V5UmVtYXAgZ2V0VGhhaUtldG1hbmVlKCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIFRIQUk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL01UZXh0UGFuZWwuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9NVGV4dFBhbmVsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjMxMWExMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9NVGV4dFBhbmVsLmphdmEKQEAgLTAsMCArMSwzNzUgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IE1UZXh0UGFuZWwuamF2YSx2ICQgJFJldmlzaW9uOiAxLjIgJCAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNjo0NyAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZU1vZGlmaWVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworCisvKioKKyAqIE1UZXh0UGFuZWwgaXMgaW1wbGVtZW50ZWQgYnkgQ29tcG9uZW50cyB3aGljaCBwcm92aWRlIHNlbGVjdGFibGUKKyAqIGVkaXRhYmxlIHN0eWxlZCB0ZXh0LgorICogPHA+CisgKiBJbXBsZW1lbnRhdGlvbnMgb2YgTVRleHRQYW5lbCBwcm92aWRlIGEgc2ltcGxlLCBzdGFuZGFyZCB1c2VyIGludGVyZmFjZQorICogZm9yIHRleHQgZWRpdGluZy4gIE1UZXh0UGFuZWwgc3VwcGxpZXMgc2Nyb2xsYWJsZSBkaXNwbGF5LCB0eXBpbmcsIAorICogYXJyb3cta2V5IHN1cHBvcnQsIGNoYXJhY3RlciBzZWxlY3Rpb24sIHdvcmQtCisgKiBhbmQgc2VudGVuY2Utc2VsZWN0aW9uIChieSBkb3VibGUtY2xpY2tpbmcgYW5kIHRyaXBsZS1jbGlja2luZywgCisgKiByZXNwZWN0aXZlbHkpLCB0ZXh0IHN0eWxlcywgY2xpcGJvYXJkIG9wZXJhdGlvbnMgKGN1dCwgY29weSBhbmQgcGFzdGUpCisgKiBhbmQgYSBsb2cgb2YgY2hhbmdlcyBmb3IgdW5kby1yZWRvLgorICogPHA+CisgKiBNVGV4dFBhbmVsIGltcGxlbWVudGF0aW9ucyBkbyBub3QgcHJvdmlkZSB1c2VyIGludGVyZmFjZSBlbGVtZW50cworICogc3VjaCBhcyBhbiBlZGl0IG1lbnUgb3Igc3R5bGUgbWVudS4gIFRoaXMgc3VwcG9ydCBpcyBwcm92aWRlZCBpbgorICogZGlmZmVyZW50IHBhY2thZ2VzLCBhbmQgaXMgaW1wbGVtZW50ZWQgd2l0aCBNVGV4dFBhbmVsJ3MgQVBJLgorICogTVRleHRQYW5lbCBpbmNsdWRlcyBtZXRob2RzIGZvciBzZXR0aW5nIHNlbGVjdGlvbnMgYW5kIHN0eWxlcyBvbiB0ZXh0LAorICogYW5kIHVzaW5nIHRoZSBjbGlwYm9hcmQgYW5kIGNvbW1hbmQtbG9nIGZ1bmN0aW9uYWxpdHkuCisgKiBNVGV4dFBhbmVsJ3MgQVBJIGZvciBzZWxlY3Rpb24gYW5kIHRleHQgaGFuZGxpbmcgaXMgc2ltaWxhciB0byB0aGF0CisgKiBvZiA8dHQ+amF2YS5hd3QuVGV4dEFyZWE8L3R0PiBhbmQKKyAqIDx0dD5qYXZhLmF3dC5UZXh0Q29tcG9uZW50PC90dD4uCisgKiA8cD4KKyAqIE1UZXh0UGFuZWwgc3VwcG9ydHMgYmlkaXJlY3Rpb25hbCBhbmQgY29tcGxleCB0ZXh0LiAgSW4gYmlkaXJlY3Rpb25hbAorICogdGV4dCwgb2Zmc2V0cyBhdCBkaXJlY3Rpb24gYm91bmRhcmllcyBoYXZlIGR1YWwgY2FyZXRzLiAgTG9naWNhbCBzZWxlY3Rpb24KKyAqIGlzIHVzZWQsIHNvIHNlbGVjdGlvbnMgYWNyb3NzIHJ1biBkaXJlY3Rpb25zIG1heSBub3QgYmUgY29udGlndW91cyBpbgorICogZGlzcGxheS4KKyAqLworcHVibGljIGludGVyZmFjZSBNVGV4dFBhbmVsIHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworCisgICAgLyoqCisgICAgICogVGhpcyB2YWx1ZSBpcyByZXR1cm5lZCBmcm9tIDx0dD5nZXRDaGFyYWN0ZXJTdHlsZU92ZXJTZWxlY3Rpb248L3R0PgorICAgICAqIGFuZCA8dHQ+Z2V0UGFyYWdyYXBoU3R5bGVPdmVyU2VsZWN0aW9uPC90dD4gdG8gaW5kaWNhdGUgdGhhdCB0aGUKKyAgICAgKiBzZWxlY3Rpb24gcmFuZ2UgY29udGFpbnMgbXVsdGlwbGUgdmFsdWVzIGZvciBhIGtleS4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGVyZSBpcyBubyByZWFzb24gZm9yIHRoaXMgT2JqZWN0IGV2ZXIgdG8gYXBwZWFyIGluIGFuIEF0dHJpYnV0ZU1hcAorICAgICAqIGFzIGEgdmFsdWUuICBPYnZpb3VzbHksIGlmIGl0IGRvZXMgdGhlcmUgd2lsbCBiZSBubyB3YXkgdG8gZGlzdGluZ3Vpc2gKKyAgICAgKiBiZXR3ZWVuIG11bHRpcGxlIHZhbHVlcyBhY3Jvc3MgdGhlIHNlbGVjdGlvbiBhbmQgYSBjb25zaXN0ZW50IHZhbHVlIG9mCisgICAgICogPHR0Pk1VTFRJUExFX1ZBTFVFUzwvdHQ+IGZvciB0aGUga2V5LgorICAgICAqIEBzZWUgI2dldENoYXJhY3RlclN0eWxlT3ZlclNlbGVjdGlvbgorICAgICAqIEBzZWUgI2dldFBhcmFncmFwaFN0eWxlT3ZlclNlbGVjdGlvbgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IE1VTFRJUExFX1ZBTFVFUyA9IG5ldyBPYmplY3QoKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBBZGQgdGhlIGdpdmVuIFRleHRQYW5lbExpc3RlbmVyIHRvIHRoZSBsaXN0ZW5lcnMgd2hpY2ggd2lsbAorICAgICAqIHJlY2VpdmUgdXBkYXRlIG5vdGlmaWNhdGlvbnMgZnJvbSB0aGlzIE1UZXh0UGFuZWwuCisgICAgICogQHBhcmFtIGxpc3RlbmVyIHRoZSBsaXN0ZW5lciB0byBhZGQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhZGRMaXN0ZW5lcihUZXh0UGFuZWxMaXN0ZW5lciBsaXN0ZW5lcik7CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgdGhlIGdpdmVuIFRleHRQYW5lbExpc3RlbmVyIGZyb20gdGhlIGxpc3RlbmVycyB3aGljaCB3aWxsCisgICAgICogcmVjZWl2ZSB1cGRhdGUgbm90aWZpY2F0aW9ucyBmcm9tIHRoaXMgTVRleHRQYW5lbC4KKyAgICAgKiBAcGFyYW0gbGlzdGVuZXIgdGhlIGxpc3RlbmVyIHRvIHJlbW92ZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlbW92ZUxpc3RlbmVyKFRleHRQYW5lbExpc3RlbmVyIGxpc3RlbmVyKTsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgZG9jdW1lbnQgdG8gPHR0Pm5ld1RleHQ8L3R0Pi4gIFRoaXMgb3BlcmF0aW9uCisgICAgICogbW9kaWZpZXMgdGhlIHRleHQgaW4gdGhlIE1UZXh0UGFuZWwuICBJdCBkb2VzIG5vdCBtb2RpZnkgb3IgYWRvcHQKKyAgICAgKiA8dHQ+bmV3VGV4dDwvdHQ+LiAgVGhpcyBtZXRob2Qgc2V0cyB0aGUgc2VsZWN0aW9uIGFuIGluc2VydGlvbiBwb2ludCBhdAorICAgICAqIHRoZSBlbmQgb2YgdGhlIHRleHQuCisgICAgICogQHBhcmFtIG5ld1RleHQgdGhlIHRleHQgd2hpY2ggd2lsbCByZXBsYWNlIHRoZSBjdXJyZW50IHRleHQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGV4dChNQ29uc3RUZXh0IG5ld1RleHQpOworICAgIAorICAgIC8qKgorICAgICAqIEFwcGVuZCB0aGUgZ2l2ZW4gdGV4dCB0byB0aGUgZW5kIG9mIHRoZSBkb2N1bWVudC4gIEVxdWl2YWxlbnQgdG8KKyAgICAgKiA8dHQ+aW5zZXJ0KG5ld1RleHQsIGdldFRleHRMZW5ndGgoKSk8L3R0Pi4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCB0aGUgdGV4dCB0byBhcHBlbmQgdG8gdGhlIGRvY3VtZW50CisgICAgICovCisgICAgcHVibGljIHZvaWQgYXBwZW5kKE1Db25zdFRleHQgbmV3VGV4dCk7CisgICAgCisgICAgLyoqCisgICAgICogSW5zZXJ0IHRoZSBnaXZlbiB0ZXh0IGludG8gdGhlIGRvY3VtZW50IGF0IHRoZSBnaXZlbiBwb3NpdGlvbi4KKyAgICAgKiBFcXVpdmFsZW50IHRvCisgICAgICogPHR0PnJlcGxhY2VSYW5nZShuZXdUZXh0LCBwb3NpdGlvbiwgcG9zaXRpb24pPC90dD4uCisgICAgICogQHBhcmFtIG5ld1RleHQgdGhlIHRleHQgdG8gaW5zZXJ0IGludG8gdGhlIGRvY3VtZW50LgorICAgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgcG9zaXRpb24gaW4gdGhlIGRvY3VtZW50IHdoZXJlIHRoZQorICAgICAqICAgICB0ZXh0IHdpbGwgYmUgaW5zZXJ0ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBpbnNlcnQoTUNvbnN0VGV4dCBuZXdUZXh0LCBpbnQgcG9zaXRpb24pOworCisgICAgLyoqCisgICAgICogUmVwbGFjZSB0aGUgZ2l2ZW4gcmFuZ2Ugd2l0aCA8dHQ+bmV3VGV4dDwvdHQ+LiAgQWZ0ZXIgdGhpcworICAgICAqIG9wZXJhdGlvbiB0aGUgc2VsZWN0aW9uIHJhbmdlIGlzIGFuIGluc2VydGlvbiBwb2ludCBhdCB0aGUKKyAgICAgKiBlbmQgb2YgdGhlIG5ldyB0ZXh0LgorICAgICAqIEBwYXJhbSBuZXdUZXh0IHRoZSB0ZXh0IHdpdGggd2hpY2ggdG8gcmVwbGFjZSB0aGUgcmFuZ2UKKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIGJlZ2lubmluZyBvZiB0aGUgcmFuZ2UgdG8gcmVwbGFjZQorICAgICAqIEBwYXJhbSBlbmQgdGhlIGVuZCBvZiB0aGUgcmFuZ2UgdG8gcmVwbGFjZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlcGxhY2VSYW5nZShNQ29uc3RUZXh0IG5ld1RleHQsIGludCBzdGFydCwgaW50IGVuZCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgdGV4dCBkb2N1bWVudCBpbiB0aGUgTVRleHRQYW5lbC4KKyAgICAgKiBAcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIHRleHQgZG9jdW1lbnQgaW4gdGhlIE1UZXh0UGFuZWwKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFRleHRMZW5ndGgoKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgdGV4dCBkb2N1bWVudCBpbiB0aGUgTVRleHRQYW5lbC4KKyAgICAgKiBAcmV0dXJuIHRoZSB0ZXh0IGRvY3VtZW50IGluIHRoZSBNVGV4dFBhbmVsLgorICAgICAqLworICAgIHB1YmxpYyBNQ29uc3RUZXh0IGdldFRleHQoKTsKKyAgICAKKy8vPT09PT09PT09PT09CisvLyBTZWxlY3Rpb24gQWNjZXNzCisvLz09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBvZmZzZXQgb2YgdGhlIHN0YXJ0IG9mIHRoZSBzZWxlY3Rpb24uCisgICAgICovCisgICAgcHVibGljIGludCBnZXRTZWxlY3Rpb25TdGFydCgpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBvZmZzZXQgb2YgdGhlIGVuZCBvZiB0aGUgc2VsZWN0aW9uLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0U2VsZWN0aW9uRW5kKCk7CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHNlbGVjdGlvbiByYW5nZS4gIFRoaXMgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIDx0dD5zZWxlY3Qoc2VsZWN0aW9uU3RhcnQsIGdldFNlbGVjdGlvbkVuZCgpKTwvdHQ+LgorICAgICAqIEBwYXJhbSBzZWxlY3Rpb25TdGFydCB0aGUgc3RhcnQgb2YgdGhlIG5ldyBzZWxlY3Rpb24gcmFuZ2UKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTZWxlY3Rpb25TdGFydChpbnQgc2VsZWN0aW9uU3RhcnQpOworICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgZW5kIG9mIHRoZSBzZWxlY3Rpb24gcmFuZ2UuICBUaGlzIGlzCisgICAgICogZXF1aXZhbGVudCB0byA8dHQ+c2VsZWN0KGdldFNlbGVjdGlvblN0YXJ0KCksIHNlbGVjdGlvbkVuZCk8L3R0Pi4KKyAgICAgKiBAcGFyYW0gc2VsZWN0aW9uU3RhcnQgdGhlIHN0YXJ0IG9mIHRoZSBuZXcgc2VsZWN0aW9uIHJhbmdlCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0U2VsZWN0aW9uRW5kKGludCBzZWxlY3Rpb25FbmQpOworICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgc2VsZWN0aW9uIHJhbmdlIHRvIGFuIGluc2VydGlvbiBwb2ludCBhdCB0aGUgZ2l2ZW4KKyAgICAgKiBvZmZzZXQuICBUaGlzIGlzIGVxdWl2YWxlbnQgdG8KKyAgICAgKiA8dHQ+c2VsZWN0KHBvc2l0aW9uLCBwb3NpdGlvbik8L3R0Pi4KKyAgICAgKiBAcGFyYW0gcG9zaXRpb24gdGhlIG9mZnNldCBvZiB0aGUgbmV3IGluc2VydGlvbiBwb2ludAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldENhcmV0UG9zaXRpb24oaW50IHBvc2l0aW9uKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHNlbGVjdGlvbiByYW5nZSB0byB0aGUgZ2l2ZW4gcmFuZ2UuICBUaGUgcmFuZ2Ugc3RhcnQKKyAgICAgKiBpcyBwaW5uZWQgYmV0d2VlbiAwIGFuZCB0aGUgdGV4dCBsZW5ndGg7ICB0aGUgcmFuZ2UgZW5kIGlzIHBpbm5lZAorICAgICAqIGJldHdlZW4gdGhlIHJhbmdlIHN0YXJ0IGFuZCB0aGUgZW5kIG9mIHRoZSB0ZXh0LiAgVGhlc2Ugc2VtYW50aWNzCisgICAgICogYXJlIGlkZW50aWNhbCB0byB0aG9zZSBvZiA8dHQ+amF2YS5hd3QuVGV4dENvbXBvbmVudDwvdHQ+LgorICAgICAqIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYgdGhlIHRleHQgaXMgbm90IHNlbGVjdGFibGUuCisgICAgICogQHBhcmFtIHNlbGVjdGlvblN0YXJ0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHNlbGVjdGlvbiByYW5nZQorICAgICAqIEBwYXJhbSBzZWxlY3Rpb25FbmQgdGhlIGVuZCBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2VsZWN0KGludCBzZWxlY3Rpb25TdGFydCwgaW50IHNlbGVjdGlvbkVuZCk7CisgICAgCisgICAgLyoqCisgICAgICogU2VsZWN0IGFsbCBvZiB0aGUgdGV4dCBpbiB0aGUgZG9jdW1lbnQuICBUaGlzIG1ldGhvZCBoYXMgbm8gZWZmZWN0IGlmCisgICAgICogdGhlIHRleHQgaXMgbm90IHNlbGVjdGFibGUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2VsZWN0QWxsKCk7CisgICAgCisKKy8vPT09PT09PT09PT09CisvLyBGb3JtYXQgV2lkdGgKKy8vPT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHRvdGFsIGZvcm1hdCB3aWR0aCwgaW4gcGl4ZWxzLiAgVGhlIGZvcm1hdCB3aWR0aCBpcyB0aGUKKyAgICAgKiB3aWR0aCB0byB3aGljaCB0ZXh0IGlzIHdyYXBwZWQuCisgICAgICogQHJldHVybiB0aGUgZm9ybWF0IHdpZHRoCisgICAgICovCisgICAgcHVibGljIGludCBnZXRGb3JtYXRXaWR0aCgpOworICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBwYXJhZ3JhcGggYXQgdGhlIGdpdmVuIG9mZnNldCBpcyBsZWZ0LXRvLXJpZ2h0LgorICAgICAqIEBwYXJhbSBvZmZzZXQgYW4gb2Zmc2V0IGluIHRoZSB0ZXh0CisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBwYXJhZ3JhcGggYXQgdGhlIGdpdmVuIG9mZnNldCBpcyBsZWZ0LXRvLXJpZ2h0CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gcGFyYWdyYXBoSXNMZWZ0VG9SaWdodChpbnQgb2Zmc2V0KTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZXJlIGlzIGEgY2hhbmdlIHdoaWNoIGNhbiBiZSB1bmRvbmUuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZXJlIGlzIGEgY2hhbmdlIHdoaWNoIGNhbiBiZSB1bmRvbmUuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gY2FuVW5kbygpOworICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZXJlIGlzIGEgY2hhbmdlIHdoaWNoIGNhbiBiZSByZWRvbmUuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZXJlIGlzIGEgY2hhbmdlIHdoaWNoIGNhbiBiZSByZWRvbmUuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gY2FuUmVkbygpOworICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBjbGlwYm9hcmQgY29udGFpbnMgY29udGVudHMgd2hpY2ggY291bGQgYmUKKyAgICAgKiB0cmFuc2ZlcmVkIGludG8gdGhlIHRleHQuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjbGlwYm9hcmQgaGFzIHRleHQgY29udGVudC4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBjbGlwYm9hcmROb3RFbXB0eSgpOworICAgIAorCisvLz09PT09PT09PT09PQorLy8gU3R5bGVzCisvLz09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGFuIEF0dHJpYnV0ZU1hcCBvZiBrZXlzIHdpdGggZGVmYXVsdCB2YWx1ZXMuICBUaGUgZGVmYXVsdAorICAgICAqIHZhbHVlcyBhcmUgdXNlZCB3aGVuIGRpc3BsYXlpbmcgdGV4dCBmb3IgdmFsdWVzIHdoaWNoIGFyZSBub3QKKyAgICAgKiBzcGVjaWZpZWQgaW4gdGhlIHRleHQuCisgICAgICogQHJldHVybiBhbiBBdHRyaWJ1dGVNYXAgb2YgZGVmYXVsdCBrZXktdmFsdWUgcGFpcnMKKyAgICAgKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlTWFwIGdldERlZmF1bHRWYWx1ZXMoKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBpbnNwZWN0cyB0aGUgY2hhcmFjdGVyIHN0eWxlIHJ1bnMgaW4gdGhlIHNlbGVjdGlvbgorICAgICAqIHJhbmdlIChvciB0aGUgdHlwaW5nIHN0eWxlIGF0IHRoZSBpbnNlcnRpb24gcG9pbnQpLiAgSXQgcmV0dXJuczoKKyAgICAgKiA8dWw+CisgICAgICogPGxpPlRoZSB2YWx1ZSBvZiA8dHQ+a2V5PC90dD4sIGlmIHRoZSB2YWx1ZSBvZiA8dHQ+a2V5PC90dD4KKyAgICAgKiBpcyB0aGUgc2FtZSBpbiBhbGwgb2YgdGhlIHN0eWxlIHJ1bnMgaW4gdGhlIHNlbGVjdGlvbiwgb3I8L2xpPgorICAgICAqIDxsaT48dHQ+TVVMVElQTEVfVkFMVUVTPC90dD4sIGlmIHR3byBvciBtb3JlIHN0eWxlIHJ1bnMgaGF2ZSBkaWZmZXJlbnQgCisgICAgICogdmFsdWVzIGZvciA8dHQ+a2V5PC90dD4uPC9saT4KKyAgICAgKiA8L3VsPgorICAgICAqIElmIGEgc3R5bGUgcnVuIGRvZXMgbm90IGNvbnRhaW4gPHR0PmtleTwvdHQ+LAorICAgICAqIGl0cyB2YWx1ZSBpcyBjb25zaWRlcmVkIHRvIGJlIHRoZSBkZWZhdWx0IHN0eWxlIGZvciA8dHQ+a2V5PC90dD4sCisgICAgICogYXMgZGVmaW5lZCBieSB0aGUgZGVmYXVsdCB2YWx1ZXMgQXR0cmlidXRlTWFwLiAgTm90ZSB0aGF0IGlmCisgICAgICogPHR0PmtleTwvdHQ+IGRvZXMgbm90IGhhdmUgYSBkZWZhdWx0IHZhbHVlIHRoaXMgbWV0aG9kIG1heSByZXR1cm4KKyAgICAgKiBudWxsLgorICAgICAqIFRoaXMgbWV0aG9kIGlzIHVzZWZ1bCBmb3IgY29uZmlndXJpbmcgc3R5bGUgbWVudXMuCisgICAgICogQHBhcmFtIGtleSB0aGUga2V5IHVzZWQgdG8gcmV0cmlldmUgdmFsdWVzIGZvciBjb21wYXJpc29uCisgICAgICogQHNlZSAjTVVMVElQTEVfVkFMVUVTCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXRDaGFyYWN0ZXJTdHlsZU92ZXJTZWxlY3Rpb24oT2JqZWN0IGtleSk7CisgICAgCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgaW5zcGVjdHMgdGhlIHBhcmFncmFwaCBzdHlsZSBydW5zIGluIHRoZSBzZWxlY3Rpb24KKyAgICAgKiByYW5nZSAob3IgdGhlIHR5cGluZyBzdHlsZSBhdCB0aGUgaW5zZXJ0aW9uIHBvaW50KS4gIEl0IHJldHVybnM6CisgICAgICogPHVsPgorICAgICAqIDxsaT5UaGUgdmFsdWUgb2YgPHR0PmtleTwvdHQ+LCBpZiB0aGUgdmFsdWUgb2YgPHR0PmtleTwvdHQ+CisgICAgICogaXMgdGhlIHNhbWUgaW4gYWxsIG9mIHRoZSBzdHlsZSBydW5zIGluIHRoZSBzZWxlY3Rpb24sIG9yPC9saT4KKyAgICAgKiA8bGk+PHR0Pk1VTFRJUExFX1ZBTFVFUzwvdHQ+LCBpZiB0d28gb3IgbW9yZSBzdHlsZSBydW5zIGhhdmUgCisgICAgICogZGlmZmVyZW50IHZhbHVlcyBmb3IgPHR0PmtleTwvdHQ+LjwvbGk+CisgICAgICogPC91bD4KKyAgICAgKiBJZiBhIHN0eWxlIHJ1biBkb2VzIG5vdCBjb250YWluIDx0dD5rZXk8L3R0PiwKKyAgICAgKiBpdHMgdmFsdWUgaXMgY29uc2lkZXJlZCB0byBiZSB0aGUgZGVmYXVsdCBzdHlsZSBmb3IgPHR0PmtleTwvdHQ+LAorICAgICAqIGFzIGRlZmluZWQgYnkgdGhlIGRlZmF1bHQgdmFsdWVzIEF0dHJpYnV0ZU1hcC4gIE5vdGUgdGhhdCBpZgorICAgICAqIDx0dD5rZXk8L3R0PiBkb2VzIG5vdCBoYXZlIGEgZGVmYXVsdCB2YWx1ZSB0aGlzIG1ldGhvZCBtYXkgcmV0dXJuCisgICAgICogbnVsbC4KKyAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VmdWwgZm9yIGNvbmZpZ3VyaW5nIHN0eWxlIG1lbnVzLgorICAgICAqIEBwYXJhbSBrZXkgdGhlIGtleSB1c2VkIHRvIHJldHJpZXZlIHZhbHVlcyBmb3IgY29tcGFyaXNvbgorICAgICAqIEBzZWUgI01VTFRJUExFX1ZBTFVFUworICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgZ2V0UGFyYWdyYXBoU3R5bGVPdmVyU2VsZWN0aW9uKE9iamVjdCBrZXkpOworICAgIAorICAgIC8qKgorICAgICAqIFJlbW92ZSB0aGUgc2VsZWN0ZWQgdGV4dCBmcm9tIHRoZSBkb2N1bWVudCBhbmQgcGxhY2UgaXQKKyAgICAgKiBvbiB0aGUgY2xpcGJvYXJkLiAgVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZiB0aGUgdGV4dAorICAgICAqIGlzIG5vdCBlZGl0YWJsZSwgb3IgaWYgbm8gdGV4dCBpcyBzZWxlY3RlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjdXQoKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBQbGFjZSB0aGUgc2VsZWN0ZWQgdGV4dCBvbiB0aGUgY2xpcGJvYXJkLiAgVGhpcyBtZXRob2QgaGFzCisgICAgICogbm8gZWZmZWN0IGlmIG5vIHRleHQgaXMgc2VsZWN0ZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgY29weSgpOworICAgIAorICAgIC8qKgorICAgICAqIFJlcGxhY2UgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCB0ZXh0IHdpdGggdGhlIHRleHQgb24gdGhlIGNsaXBib2FyZC4KKyAgICAgKiBUaGlzIG1ldGhvZCBoYXMgbm8gZWZmZWN0IGlmIHRoZSB0ZXh0IGlzIG5vdCBlZGl0YWJsZSwgb3IgaWYgbm8KKyAgICAgKiB0ZXh0IGlzIG9uIHRoZSBjbGlwYm9hcmQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgcGFzdGUoKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgc2VsZWN0ZWQgdGV4dCBmcm9tIHRoZSBkb2N1bWVudCwgd2l0aG91dCBhbHRlcmluZyB0aGUgY2xpcGJvYXJkLgorICAgICAqIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYgdGhlCisgICAgICogdGV4dCBpcyBub3QgZWRpdGFibGUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgY2xlYXIoKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBVbmRvIHRoZSBtb3N0IHJlY2VudCB0ZXh0IGNoYW5nZS4gIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYKKyAgICAgKiB0aGVyZSBpcyBubyBjaGFuZ2UgdG8gdW5kby4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB1bmRvKCk7CisgICAgCisgICAgLyoqCisgICAgICogUmVkbyB0aGUgbW9zdCByZWNlbnQgdGV4dCBjaGFuZ2UuICBUaGlzIG1ldGhvZCBoYXMgbm8gZWZmZWN0IGlmCisgICAgICogdGhlcmUgaXMgbm8gY2hhbmdlIHRvIHJlZG8uCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVkbygpOworICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbnVtYmVyIG9mIGNvbW1hbmRzIHRoZSBjb21tYW5kIGxvZyBjYW4gaG9sZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgY29tbWFuZHMgdGhlIGNvbW1hbmQgbG9nIGNhbiBob2xkCisgICAgICovCisgICAgcHVibGljIGludCBnZXRDb21tYW5kTG9nU2l6ZSgpOworICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgbnVtYmVyIG9mIGNvbW1hbmRzIHRoZSBjb21tYW5kIGxvZyBjYW4gaG9sZC4gIEFsbAorICAgICAqIHJlZG9hYmxlIGNvbW1hbmRzIGFyZSByZW1vdmVkIHdoZW4gdGhpcyBtZXRob2QgaXMgY2FsbGVkLgorICAgICAqIEBwYXJhbSBzaXplIHRoZSBudW1iZXIgb2YgY29tbWFuZHMga2VwdCBpbiB0aGUgY29tbWFuZCBsb2cKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDb21tYW5kTG9nU2l6ZShpbnQgc2l6ZSk7CisgICAgCisgICAgLyoqCisgICAgICogUmVtb3ZlIGFsbCBjb21tYW5kcyBmcm9tIHRoZSBjb21tYW5kIGxvZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjbGVhckNvbW1hbmRMb2coKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBNb2RpZnkgdGhlIGNoYXJhY3RlciBzdHlsZXMgb24gdGhlIHNlbGVjdGVkIGNoYXJhY3RlcnMuICBJZiBubyBjaGFyYWN0ZXJzCisgICAgICogYXJlIHNlbGVjdGVkLCBtb2RpZnkgdGhlIHR5cGluZyBzdHlsZS4KKyAgICAgKiBAcGFyYW0gbW9kaWZpZXIgdGhlIFN0eWxlTW9kaWZpZXIgd2l0aCB3aGljaCB0byBtb2RpZnkgdGhlIHN0eWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIG1vZGlmeUNoYXJhY3RlclN0eWxlT25TZWxlY3Rpb24oU3R5bGVNb2RpZmllciBtb2RpZmllcik7CisgICAgCisgICAgLyoqCisgICAgICogTW9kaWZ5IHRoZSBwYXJhZ3JhcGggc3R5bGVzIGluIHBhcmFncmFwaHMgY29udGFpbmluZyBzZWxlY3RlZCBjaGFyYWN0ZXJzLCBvcgorICAgICAqIHRoZSBwYXJhZ3JhcGggY29udGFpbmluZyB0aGUgaW5zZXJ0aW9uIHBvaW50LgorICAgICAqIEBwYXJhbSBtb2RpZmllciB0aGUgU3R5bGVNb2RpZmllciB3aXRoIHdoaWNoIHRvIG1vZGlmeSB0aGUgc3R5bGVzCisgICAgICovCisgICAgcHVibGljIHZvaWQgbW9kaWZ5UGFyYWdyYXBoU3R5bGVPblNlbGVjdGlvbihTdHlsZU1vZGlmaWVyIG1vZGlmaWVyKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIEtleVJlbWFwIHVzZWQgdG8gcHJvY2VzcyBrZXkgZXZlbnRzLgorICAgICAqIEByZXR1cm4gdGhlIGtleSByZW1hcCB1c2VkIHRvIHByb2Nlc3Mga2V5IGV2ZW50cworICAgICAqIEBzZWUgI3NldEtleVJlbWFwCisgICAgICovCisgICAgcHVibGljIEtleVJlbWFwIGdldEtleVJlbWFwKCk7CisgICAgCisgICAgLyoqCisgICAgICogVXNlIHRoZSBnaXZlbiBLZXlSZW1hcCB0byBtYXAga2V5IGV2ZW50cyB0byBjaGFyYWN0ZXJzLgorICAgICAqIE9ubHkga2V5CisgICAgICogZXZlbnRzIGFyZSBhZmZlY3RlZCBieSB0aGUgcmVtYXA7ICBvdGhlciB0ZXh0IGVudGVyaW5nIHRoZQorICAgICAqIGNvbnRyb2wgKHZpYSB0aGUgY2xpcGJvYXJkLCBmb3IgZXhhbXBsZSkgaXMgbm90IGFmZmVjdGVkCisgICAgICogYnkgdGhlIEtleVJlbWFwLgorICAgICAqIDxwPgorICAgICAqIERvIG5vdCBwYXNzIDx0dD5udWxsPC90dD4gdG8gdGhpcyBtZXRob2QgdG8gbGVhdmUga2V5CisgICAgICogZXZlbnRzIHVubWFwcGVkLiAgSW5zdGVhZCwgdXNlIDx0dD5LZXlSZW1hcC5nZXRJZGVudGl0eVJlbWFwKCk8L3R0PgorICAgICAqIEBwYXJhbSByZW1hcCB0aGUgS2V5UmVtYXAgdG8gdXNlIGZvciBtYXBwaW5nIGtleSBldmVudHMgdG8gY2hhcmFjdGVycworICAgICAqIEBleGNlcHRpb24gamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uIGlmIHBhcmFtZXRlciBpcyBudWxsCisgICAgICogQHNlZSBLZXlSZW1hcAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEtleVJlbWFwKEtleVJlbWFwIHJlbWFwKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG1vZGlmaWNhdGlvbiBmbGFnIG9mIHRoZSBjdXJyZW50IHRleHQgY2hhbmdlLgorICAgICAqIEBzZWUgI3NldE1vZGlmaWVkCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNNb2RpZmllZCgpOworICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgbW9kaWZpY2F0aW9uIGZsYWcgb2YgdGhlIGN1cnJlbnQgdGV4dCBjaGFuZ2UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TW9kaWZpZWQoYm9vbGVhbiBtb2RpZmllZCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvT2Zmc2NyZWVuQnVmZmVyQ2FjaGUuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9PZmZzY3JlZW5CdWZmZXJDYWNoZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjczNDRiZWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvT2Zmc2NyZWVuQnVmZmVyQ2FjaGUuamF2YQpAQCAtMCwwICsxLDUyIEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBPZmZzY3JlZW5CdWZmZXJDYWNoZS5qYXZhLHYgJCAkUmV2aXNpb246IDEuMSAkICREYXRlOiAyMDAwLzA0LzIwIDE3OjUxOjIzICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitpbXBvcnQgamF2YS5hd3QuSW1hZ2U7CitpbXBvcnQgamF2YS5hd3QuQ29tcG9uZW50OworCitjbGFzcyBPZmZzY3JlZW5CdWZmZXJDYWNoZSB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgSW1hZ2UgZk9mZnNjcmVlbkJ1ZmZlciA9IG51bGw7CisgICAgcHJpdmF0ZSBDb21wb25lbnQgZkhvc3Q7CisKKyAgICBPZmZzY3JlZW5CdWZmZXJDYWNoZShDb21wb25lbnQgaG9zdCkgeworCisgICAgICAgIGZIb3N0ID0gaG9zdDsKKyAgICB9CisKKyAgICBwcml2YXRlIEltYWdlIG1ha2VCdWZmZXIoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KSB7CisKKyAgICAgICAgcmV0dXJuIGZIb3N0LmNyZWF0ZUltYWdlKE1hdGgubWF4KHdpZHRoLCAxKSwgTWF0aC5tYXgoaGVpZ2h0LCAxKSk7CisgICAgfQorCisgICAgSW1hZ2UgZ2V0QnVmZmVyKGludCB3aWR0aCwgaW50IGhlaWdodCkgeworCisgICAgICAgIEltYWdlIGJ1ZmZlciA9IGZPZmZzY3JlZW5CdWZmZXI7CisKKyAgICAgICAgaWYgKGJ1ZmZlciAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoYnVmZmVyLmdldFdpZHRoKGZIb3N0KSA+PSB3aWR0aCAmJgorICAgICAgICAgICAgICAgICAgICBidWZmZXIuZ2V0SGVpZ2h0KGZIb3N0KSA+PSBoZWlnaHQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gYnVmZmVyOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgYnVmZmVyID0gbWFrZUJ1ZmZlcih3aWR0aCwgaGVpZ2h0KTsKKyAgICAgICAgZk9mZnNjcmVlbkJ1ZmZlciA9IGJ1ZmZlcjsKKyAgICAgICAgcmV0dXJuIGJ1ZmZlcjsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1BhbmVsRXZlbnRCcm9hZGNhc3Rlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1BhbmVsRXZlbnRCcm9hZGNhc3Rlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhmMjUyNTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvUGFuZWxFdmVudEJyb2FkY2FzdGVyLmphdmEKQEAgLTAsMCArMSwxMDAgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IFBhbmVsRXZlbnRCcm9hZGNhc3Rlci5qYXZhLHYgJCAkUmV2aXNpb246IDEuMSAkICREYXRlOiAyMDAwLzA0LzIwIDE3OjUxOjIzICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKKworLyoqCisgKiBUaGlzIGNsYXNzIGxpc3RlbnMgZm9yIHRleHQgc3RhdGUgY2hhbmdlIG5vdGlmaWNhdGlvbnMKKyAqIGFuZCBicm9hZGNhc3RzIHRoZW0gdG8gYWxsIG9mIGl0cyBsaXN0ZW5lcnMuCisgKi8KK2ZpbmFsIGNsYXNzIFBhbmVsRXZlbnRCcm9hZGNhc3RlciB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGSVJTVCA9IFRleHRQYW5lbEV2ZW50LlRFWFRfUEFORUxfRklSU1Q7CisKKyAgICBwcml2YXRlIGZpbmFsIFZlY3RvcltdIGZMaXN0ZW5lcnM7CisgICAgcHJpdmF0ZSBmaW5hbCBUZXh0UGFuZWxFdmVudFtdIGZFdmVudHM7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBuZXcgUGFuZWxFdmVudEJyb2FkY2FzdGVyLgorICAgICAqIEBwYXJhbSBwYW5lbCB0aGUgVGV4dFBhbmVsIGZvciB3aGljaCBldmVudHMgYXJlIGJyb2FkY2FzdGVkCisgICAgICovCisgICAgcHVibGljIFBhbmVsRXZlbnRCcm9hZGNhc3RlcihNVGV4dFBhbmVsIHBhbmVsKSB7CisKKyAgICAgICAgaW50IGNvdW50ID0gVGV4dFBhbmVsRXZlbnQuVEVYVF9QQU5FTF9MQVNUIC0gRklSU1QgKyAxOworCisgICAgICAgIGZFdmVudHMgPSBuZXcgVGV4dFBhbmVsRXZlbnRbY291bnRdOworICAgICAgICBmTGlzdGVuZXJzID0gbmV3IFZlY3Rvcltjb3VudF07CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBmTGlzdGVuZXJzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBmRXZlbnRzW2ldID0gbmV3IFRleHRQYW5lbEV2ZW50KHBhbmVsLCBpK0ZJUlNUKTsKKyAgICAgICAgICAgIGZMaXN0ZW5lcnNbaV0gPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGQgdGhlIGdpdmVuIFRleHRQYW5lbExpc3RlbmVyIHRvIHRoZSBUZXh0UGFuZWxMaXN0ZW5lcnMgdG8KKyAgICAgKiB3aGljaCBub3RpZmljYXRpb25zIGFyZSBmb3J3YXJkZWQuCisgICAgICogQHBhcmFtIGxpc3RlbmVyIHRoZSBsaXN0ZW5lciB0byBhZGQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIHZvaWQgYWRkTGlzdGVuZXIoVGV4dFBhbmVsTGlzdGVuZXIgbGlzdGVuZXIpIHsKKworICAgICAgICBmb3IgKGludCBpPUZJUlNUOyBpIDw9IFRleHRQYW5lbEV2ZW50LlRFWFRfUEFORUxfTEFTVDsgaSsrKSB7CisgICAgICAgICAgICBWZWN0b3IgbGlzdGVuZXJzID0gZkxpc3RlbmVyc1tpLUZJUlNUXTsKKyAgICAgICAgICAgIGlmIChsaXN0ZW5lci5yZXNwb25kc1RvRXZlbnRUeXBlKGkpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFsaXN0ZW5lcnMuY29udGFpbnMobGlzdGVuZXIpKSB7CisgICAgICAgICAgICAgICAgICAgIGxpc3RlbmVycy5hZGRFbGVtZW50KGxpc3RlbmVyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgdGhlIGdpdmVuIFRleHRQYW5lbExpc3RlbmVyIGZyb20gdGhlIFRleHRQYW5lbExpc3RlbmVycyB0bworICAgICAqIHdoaWNoIG5vdGlmaWNhdGlvbnMgYXJlIGZvcndhcmRlZC4KKyAgICAgKiBAcGFyYW0gbGlzdGVuZXIgdGhlIGxpc3RlbmVyIHRvIHJlbW92ZQorICAgICAqLworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgdm9pZCByZW1vdmVMaXN0ZW5lcihUZXh0UGFuZWxMaXN0ZW5lciBsaXN0ZW5lcikgeworCisgICAgICAgIGZvciAoaW50IGk9RklSU1Q7IGkgPD0gVGV4dFBhbmVsRXZlbnQuVEVYVF9QQU5FTF9MQVNUOyBpKyspIHsKKyAgICAgICAgICAgIFZlY3RvciBsaXN0ZW5lcnMgPSBmTGlzdGVuZXJzW2ktRklSU1RdOworICAgICAgICAgICAgaWYgKGxpc3RlbmVyLnJlc3BvbmRzVG9FdmVudFR5cGUoaSkpIHsKKyAgICAgICAgICAgICAgICBsaXN0ZW5lcnMucmVtb3ZlRWxlbWVudChsaXN0ZW5lcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWNlaXZlIGEgbm90aWZpY2F0aW9uIGFuZCBmb3J3YXJkIGl0IHRvIGFsbCBsaXN0ZW5lcnMuCisgICAgICogQGNoYW5nZUNvZGUgb25lIG9mIHRoZSBjb25zdGFudHMgaW4gdGhlIFRleHRQYW5lbExpc3RlbmVyIGNsYXNzCisgICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCB2b2lkIHRleHRTdGF0ZUNoYW5nZWQoaW50IGlkKSB7CisKKyAgICAgICAgaW50IGluZGV4ID0gaWQtRklSU1Q7CisgICAgICAgIFRleHRQYW5lbEV2ZW50IGV2ZW50ID0gZkV2ZW50c1tpbmRleF07CisgICAgICAgIFZlY3RvciBsaXN0ZW5lcnMgPSBmTGlzdGVuZXJzW2luZGV4XTsKKyAgICAgICAgCisgICAgICAgIGludCBzaXplID0gbGlzdGVuZXJzLnNpemUoKTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBzaXplOyBpKyspIHsKKworICAgICAgICAgICAgVGV4dFBhbmVsTGlzdGVuZXIgbGlzdGVuZXIgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChUZXh0UGFuZWxMaXN0ZW5lcikgbGlzdGVuZXJzLmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgIGxpc3RlbmVyLnRleHRFdmVudE9jY3VycmVkKGV2ZW50KTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9SdW5TdHJhdGVneS5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1J1blN0cmF0ZWd5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTdiMTI5MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9SdW5TdHJhdGVneS5qYXZhCkBAIC0wLDAgKzEsMjIgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IFJ1blN0cmF0ZWd5LmphdmEsdiAkICRSZXZpc2lvbjogMS4xICQgJERhdGU6IDIwMDAvMDQvMjAgMTc6NTE6MjMgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2NsYXNzIFJ1blN0cmF0ZWd5IHsKKyAgICAKKyAgICB2b2lkIGRvSXQoUnVubmFibGUgcikgeworICAgICAgICByLnJ1bigpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvU2Nyb2xsQmFyTGF5b3V0LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvU2Nyb2xsQmFyTGF5b3V0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzA2ZmY2YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9TY3JvbGxCYXJMYXlvdXQuamF2YQpAQCAtMCwwICsxLDE1MyBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogU2Nyb2xsQmFyTGF5b3V0LmphdmEsdiAkICRSZXZpc2lvbjogMS4xICQgJERhdGU6IDIwMDAvMDQvMjAgMTc6NTE6MjMgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2ltcG9ydCBqYXZhLmF3dC5Db21wb25lbnQ7CitpbXBvcnQgamF2YS5hd3QuQ29udGFpbmVyOworaW1wb3J0IGphdmEuYXd0LkRpbWVuc2lvbjsKK2ltcG9ydCBqYXZhLmF3dC5JbnNldHM7CitpbXBvcnQgamF2YS5hd3QuTGF5b3V0TWFuYWdlcjsKKworY2xhc3MgU2Nyb2xsQmFyTGF5b3V0IGltcGxlbWVudHMgTGF5b3V0TWFuYWdlciB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIENvbXBvbmVudCAgIGZIb3JpelNjcm9sbEJhciA9IG51bGw7CisgICAgQ29tcG9uZW50ICAgZlZlcnRTY3JvbGxCYXIgPSBudWxsOworICAgIENvbXBvbmVudCAgIGZDaGlsZCA9IG51bGw7CisKKyAgICBwdWJsaWMgU2Nyb2xsQmFyTGF5b3V0KCkgeworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFkZExheW91dENvbXBvbmVudChTdHJpbmcgbmFtZSwgQ29tcG9uZW50IGNvbXApIHsKKworICAgICAgICBpZiAoIkNlbnRlciIuZXF1YWxzKG5hbWUpKQorICAgICAgICAgICAgZkNoaWxkID0gY29tcDsKKyAgICAgICAgZWxzZSBpZiAoIlNvdXRoIi5lcXVhbHMobmFtZSkpCisgICAgICAgICAgICBmSG9yaXpTY3JvbGxCYXIgPSBjb21wOworICAgICAgICBlbHNlIGlmICgiRWFzdCIuZXF1YWxzKG5hbWUpKQorICAgICAgICAgICAgZlZlcnRTY3JvbGxCYXIgPSBjb21wOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGxheW91dENvbnRhaW5lcihDb250YWluZXIgdGFyZ2V0KSB7CisKKyAgICAgICAgSW5zZXRzICAgICAgaW5zZXRzID0gdGFyZ2V0LmdldEluc2V0cygpOworICAgICAgICBEaW1lbnNpb24gICB0YXJnZXRTaXplID0gdGFyZ2V0LmdldFNpemUoKTsKKyAgICAgICAgaW50ICAgICAgICAgaHNiSGVpZ2h0ID0gKGZIb3JpelNjcm9sbEJhciAhPSBudWxsKSA/IGZIb3JpelNjcm9sbEJhci5nZXRQcmVmZXJyZWRTaXplKCkuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0IDogMDsKKyAgICAgICAgaW50ICAgICAgICAgdnNiV2lkdGggPSAoZlZlcnRTY3JvbGxCYXIgIT0gbnVsbCkgPyBmVmVydFNjcm9sbEJhci5nZXRQcmVmZXJyZWRTaXplKCkuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGggOiAwOworCisgICAgICAgIGlmIChmSG9yaXpTY3JvbGxCYXIgIT0gbnVsbCkKKyAgICAgICAgICAgIGZIb3JpelNjcm9sbEJhci5zZXRCb3VuZHMoaW5zZXRzLmxlZnQsIHRhcmdldFNpemUuaGVpZ2h0IC0gaW5zZXRzLmJvdHRvbSAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhzYkhlaWdodCwgdGFyZ2V0U2l6ZS53aWR0aCAtIHZzYldpZHRoLCBoc2JIZWlnaHQpOworCisgICAgICAgIGlmIChmVmVydFNjcm9sbEJhciAhPSBudWxsKQorICAgICAgICAgICAgZlZlcnRTY3JvbGxCYXIuc2V0Qm91bmRzKHRhcmdldFNpemUud2lkdGggLSBpbnNldHMucmlnaHQgLSB2c2JXaWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXRzLnRvcCwgdnNiV2lkdGgsIHRhcmdldFNpemUuaGVpZ2h0IC0gaHNiSGVpZ2h0KTsKKworICAgICAgICBpZiAoZkNoaWxkICE9IG51bGwpCisgICAgICAgICAgICBmQ2hpbGQuc2V0Qm91bmRzKGluc2V0cy5sZWZ0LCBpbnNldHMudG9wLCB0YXJnZXRTaXplLndpZHRoIC0gaW5zZXRzLnJpZ2h0IC0gdnNiV2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFNpemUuaGVpZ2h0IC0gaW5zZXRzLmJvdHRvbSAtIGhzYkhlaWdodCk7CisgICAgfQorCisgICAgcHVibGljIERpbWVuc2lvbiBtaW5pbXVtTGF5b3V0U2l6ZShDb250YWluZXIgdGFyZ2V0KSB7CisKKyAgICAgICAgRGltZW5zaW9uICAgcmV0dXJuVmFsID0gbmV3IERpbWVuc2lvbigwLCAwKTsKKyAgICAgICAgRGltZW5zaW9uICAgaHNiU2l6ZTsKKyAgICAgICAgRGltZW5zaW9uICAgdnNiU2l6ZTsKKyAgICAgICAgRGltZW5zaW9uICAgY2hpbGRTaXplOworCisgICAgICAgIGlmIChmSG9yaXpTY3JvbGxCYXIgIT0gbnVsbCAmJiBmSG9yaXpTY3JvbGxCYXIuaXNWaXNpYmxlKCkpIHsKKyAgICAgICAgICAgIGhzYlNpemUgPSBmSG9yaXpTY3JvbGxCYXIuZ2V0TWluaW11bVNpemUoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGhzYlNpemUgPSBuZXcgRGltZW5zaW9uKDAsIDApOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZWZXJ0U2Nyb2xsQmFyICE9IG51bGwgJiYgZlZlcnRTY3JvbGxCYXIuaXNWaXNpYmxlKCkpIHsKKyAgICAgICAgICAgIHZzYlNpemUgPSBmVmVydFNjcm9sbEJhci5nZXRNaW5pbXVtU2l6ZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdnNiU2l6ZSA9IG5ldyBEaW1lbnNpb24oMCwgMCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZkNoaWxkICE9IG51bGwgJiYgZkNoaWxkLmlzVmlzaWJsZSgpKSB7CisgICAgICAgICAgICBjaGlsZFNpemUgPSBmQ2hpbGQuZ2V0TWluaW11bVNpemUoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGNoaWxkU2l6ZSA9IG5ldyBEaW1lbnNpb24oMCwgMCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm5WYWwud2lkdGggPSBNYXRoLm1heChjaGlsZFNpemUud2lkdGgsIGhzYlNpemUud2lkdGgpICsgdnNiU2l6ZS53aWR0aDsKKyAgICAgICAgcmV0dXJuVmFsLmhlaWdodCA9IE1hdGgubWF4KGNoaWxkU2l6ZS5oZWlnaHQsIHZzYlNpemUuaGVpZ2h0KSArIGhzYlNpemUuaGVpZ2h0OworCisgICAgICAgIEluc2V0cyAgaW5zZXRzID0gdGFyZ2V0LmdldEluc2V0cygpOworCisgICAgICAgIHJldHVyblZhbC53aWR0aCArPSBpbnNldHMubGVmdCArIGluc2V0cy5yaWdodDsKKyAgICAgICAgcmV0dXJuVmFsLmhlaWdodCArPSBpbnNldHMudG9wICsgaW5zZXRzLmJvdHRvbTsKKworICAgICAgICByZXR1cm4gcmV0dXJuVmFsOworICAgIH0KKworICAgIHB1YmxpYyBEaW1lbnNpb24gcHJlZmVycmVkTGF5b3V0U2l6ZShDb250YWluZXIgdGFyZ2V0KSB7CisKKyAgICAgICAgRGltZW5zaW9uICAgcmV0dXJuVmFsID0gbmV3IERpbWVuc2lvbigwLCAwKTsKKyAgICAgICAgRGltZW5zaW9uICAgaHNiU2l6ZTsKKyAgICAgICAgRGltZW5zaW9uICAgdnNiU2l6ZTsKKyAgICAgICAgRGltZW5zaW9uICAgY2hpbGRTaXplOworCisgICAgICAgIGlmIChmSG9yaXpTY3JvbGxCYXIgIT0gbnVsbCAmJiBmSG9yaXpTY3JvbGxCYXIuaXNWaXNpYmxlKCkpIHsKKyAgICAgICAgICAgIGhzYlNpemUgPSBmSG9yaXpTY3JvbGxCYXIuZ2V0UHJlZmVycmVkU2l6ZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaHNiU2l6ZSA9IG5ldyBEaW1lbnNpb24oMCwgMCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZlZlcnRTY3JvbGxCYXIgIT0gbnVsbCAmJiBmVmVydFNjcm9sbEJhci5pc1Zpc2libGUoKSkgeworICAgICAgICAgICAgdnNiU2l6ZSA9IGZWZXJ0U2Nyb2xsQmFyLmdldFByZWZlcnJlZFNpemUoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHZzYlNpemUgPSBuZXcgRGltZW5zaW9uKDAsIDApOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZDaGlsZCAhPSBudWxsICYmIGZDaGlsZC5pc1Zpc2libGUoKSkgeworICAgICAgICAgICAgY2hpbGRTaXplID0gZkNoaWxkLmdldFByZWZlcnJlZFNpemUoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGNoaWxkU2l6ZSA9IG5ldyBEaW1lbnNpb24oMCwgMCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm5WYWwud2lkdGggPSBNYXRoLm1heChjaGlsZFNpemUud2lkdGgsIGhzYlNpemUud2lkdGgpICsgdnNiU2l6ZS53aWR0aDsKKyAgICAgICAgcmV0dXJuVmFsLmhlaWdodCA9IE1hdGgubWF4KGNoaWxkU2l6ZS5oZWlnaHQsIHZzYlNpemUuaGVpZ2h0KSArIGhzYlNpemUuaGVpZ2h0OworCisgICAgICAgIEluc2V0cyAgaW5zZXRzID0gdGFyZ2V0LmdldEluc2V0cygpOworCisgICAgICAgIHJldHVyblZhbC53aWR0aCArPSBpbnNldHMubGVmdCArIGluc2V0cy5yaWdodDsKKyAgICAgICAgcmV0dXJuVmFsLmhlaWdodCArPSBpbnNldHMudG9wICsgaW5zZXRzLmJvdHRvbTsKKworICAgICAgICByZXR1cm4gcmV0dXJuVmFsOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlbW92ZUxheW91dENvbXBvbmVudChDb21wb25lbnQgY29tcCkgeworCisgICAgICAgIGlmIChjb21wID09IGZDaGlsZCkKKyAgICAgICAgICAgIGZDaGlsZCA9IG51bGw7CisgICAgICAgIGVsc2UgaWYgKGNvbXAgPT0gZkhvcml6U2Nyb2xsQmFyKQorICAgICAgICAgICAgZkhvcml6U2Nyb2xsQmFyID0gbnVsbDsKKyAgICAgICAgZWxzZSBpZiAoY29tcCA9PSBmVmVydFNjcm9sbEJhcikKKyAgICAgICAgICAgIGZWZXJ0U2Nyb2xsQmFyID0gbnVsbDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvU2Nyb2xsZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9TY3JvbGxlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjZiYjQwNGQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvU2Nyb2xsZXIuamF2YQpAQCAtMCwwICsxLDIwOCBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogU2Nyb2xsZXIuamF2YSx2ICQgJFJldmlzaW9uOiAxLjQgJCAkRGF0ZTogMjAwMS8xMC8zMCAwMjo0Mjo0OCAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworLyoKKyAgICA3LzkvOTcgLSBjaGFuZ2VkIHNvbWUgZGVwcmVjYXRlZCBtZXRob2RzIGluIFNjcm9sbGJhcgorICAgICAgICAgICAgQWxzbyBzZXR0aW5nIFVuaXQgYW5kIEJsb2NrIGluY3JlbWVudCB2YWx1ZXMuICBNYXliZQorICAgICAgICAgICAgaXQgbWF0dGVycy4uLgorICAgIDYvMjkvOTggLSByZWltcGxlbWVudGVkIHRoaXMgY2xhc3MuICBOb3cgdGhpcyBjbGFzcyB0YWxrcyB0bworICAgICAgICAgICAgICBhbnkgY29tcG9uZW50IHdoaWNoIGltcGxlbWVudHMgU2Nyb2xsZXIuQ2xpZW50LgorICAgICAgICAgICAgICBTY3JvbGxIb2xkZXIgaXMgZ29uZSwgdG9vLgorICAgIDIvNC85OSAtIE5vIGxvbmdlciBhIFBhbmVsLiAgQWxzbywgZG9lc24ndCBjcmVhdGUgU2Nyb2xsYmFycywKKyAgICAgICAgICAgICBhbmQgaW4gZmFjdCBkb2Vzbid0IGV2ZW4gdXNlIHRoZSBTY3JvbGxiYXIgY2xhc3MKKyAgICAgICAgICAgICBkaXJlY3RseS4KKyovCisKK2ltcG9ydCBqYXZhLmF3dC5Db21wb25lbnQ7CitpbXBvcnQgamF2YS5hd3QuUmVjdGFuZ2xlOworaW1wb3J0IGphdmEuYXd0LkRpbWVuc2lvbjsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFkanVzdG1lbnRMaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5BZGp1c3RtZW50RXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuQWRqdXN0YWJsZTsKKworLyoqCisqIFRoaXMgY2xhc3MgbWFuYWdlcyB0aGUgaW50ZXJhY3Rpb24gYmV0d2VlbiBhIHNjcm9sbGFibGUgY2xpZW50CisqIGFuZCB2ZXJ0aWNhbCBhbmQgaG9yaXpvbnRhbCBzY3JvbGxiYXJzLiAgSXQgY2FsbHMgdGhlIGNsaWVudCdzCisqIHNjcm9sbFRvIG1ldGhvZCBpbiByZXNwb25zZSB0byBtYW5pcHVsYXRpb24gb2YgdGhlIHNjcm9sbCBiYXJzLgorKgorKiBUaGlzIGNsYXNzIHVzZWQgdG8gYmUgYSBQYW5lbCBjb250YWluaW5nIHRoZSBzY3JvbGxiYXJzIGFuZAorKiB0aGUgY2xpZW50IHBhbmVsLiAgQXMgcGFydCBvZiB0aGUgbWlncmF0aW9uIGF3YXkgZnJvbSBkaXJlY3QKKyogQVdUIGRlcGVuZGVuY2llcywgdGhpcyBjbGFzcyBpcyBubyBsb25nZXIgcGFydCBvZiB0aGUgdmlldworKiBoaWVyYXJjaHkuICBJbnN0ZWFkIGl0IHNpbXBseSBrZWVwcyBhIHJlZmVyZW5jZSB0byBpdHMKKyogY2xpZW50IGFuZCBzY3JvbGwgYmFycy4gIEl0IGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZiBoaWdoZXItCisqIGxldmVsIGNsYXNzZXMgdG8gc2V0IHVwIHRoZSB2aWV3IGhpZXJhcmNoeS4KKyovCitmaW5hbCBjbGFzcyBTY3JvbGxlciBpbXBsZW1lbnRzIEFkanVzdG1lbnRMaXN0ZW5lcgoreworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICBzdGF0aWMgaW50ZXJmYWNlIENsaWVudCB7CisgICAgICAgIHZvaWQgc2Nyb2xsVG8oaW50IHgsIGludCB5KTsKKyAgICAgICAgUmVjdGFuZ2xlIGdldFNjcm9sbFNpemUoKTsKKyAgICAgICAgUmVjdGFuZ2xlIGdldEJvdW5kcygpOworICAgIH0KKworICAgIHByaXZhdGUgQWRqdXN0YWJsZSBmSG9yaXpTY3JvbGxCYXIgPSBudWxsOworICAgIHByaXZhdGUgQWRqdXN0YWJsZSBmVmVydFNjcm9sbEJhciA9IG51bGw7CisgICAgcHJpdmF0ZSBDbGllbnQgZkNsaWVudCA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBUaGVzZSBhcmUgdXNlZCBpZiB0aGUgcmVzcGVjdGl2ZSBTY3JvbGxiYXIgaXMgbm90IHByZXNlbnQuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZkhvcml6VmFsdWUsIGZWZXJ0VmFsdWU7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVGQVVMVF9VTklUX0lOQyA9IDEwOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgbmV3IFNjcm9sbGVyIHdpdGggdGhlIGdpdmVuIEFkanVzdGFibGVzLAorICAgICAqIHdoaWNoIHJlYWxseSBzaG91bGQgYmUgc2Nyb2xsYmFycyBvZiBzb21lIGlsay4KKyAgICAgKiBBbHNvLCB0aGUgQWRqdXN0YWJsZXMgYXJlIHJlcXVpcmVkIHRvIGJlIEFXVCBDb21wb25lbnRzLAorICAgICAqIHNvIHRoZSBTY3JvbGxlciBjYW4gZW5hYmxlIGFuZCBkaXNhYmxlIHRoZW0uCisgICAgICogSG93ZXZlciwgYSBTY3JvbGxlciBjYW4gd29yayB3aXRoIGVpdGhlciBBV1QgU2Nyb2xsYmFycworICAgICAqIG9yIEpGQyBKU2Nyb2xsYmFycy4KKyAgICAgKiBAcGFyYW0gaG9yaXpTY3JvbGxiYXIgdGhlIGhvcml6b250YWwgc2Nyb2xsYmFyLiAgbnVsbCBpZgorICAgICAqIHRoZXJlIGlzIG5vIGhvcml6b250YWwgc2Nyb2xsYmFyLgorICAgICAqIEBwYXJhbSB2ZXJ0U2Nyb2xsYmFyIHRoZSB2ZXJ0aWNhbCBzY3JvbGxiYXIuICBudWxsIGlmCisgICAgICogdGhlcmUgaXMgbm8gdmVydGljYWwgc2Nyb2xsYmFyLgorICAgICAqLworICAgIHB1YmxpYyBTY3JvbGxlcihBZGp1c3RhYmxlIGhvcml6U2Nyb2xsQmFyLAorICAgICAgICAgICAgICAgICAgICBBZGp1c3RhYmxlIHZlcnRTY3JvbGxCYXIpIHsKKworICAgICAgICAvL3NldExheW91dChuZXcgU2Nyb2xsQmFyTGF5b3V0KCkpOworCisgICAgICAgIGZIb3JpelNjcm9sbEJhciA9IGhvcml6U2Nyb2xsQmFyOworICAgICAgICBmVmVydFNjcm9sbEJhciA9IHZlcnRTY3JvbGxCYXI7CisKKyAgICAgICAgaWYgKGZWZXJ0U2Nyb2xsQmFyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZWZXJ0U2Nyb2xsQmFyLnNldFVuaXRJbmNyZW1lbnQoREVGQVVMVF9VTklUX0lOQyk7CisgICAgICAgICAgICBmVmVydFNjcm9sbEJhci5hZGRBZGp1c3RtZW50TGlzdGVuZXIodGhpcyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZIb3JpelNjcm9sbEJhciAhPSBudWxsKSB7CisgICAgICAgICAgICBmSG9yaXpTY3JvbGxCYXIuc2V0VW5pdEluY3JlbWVudChERUZBVUxUX1VOSVRfSU5DKTsKKyAgICAgICAgICAgIGZIb3JpelNjcm9sbEJhci5hZGRBZGp1c3RtZW50TGlzdGVuZXIodGhpcyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRDbGllbnQoQ2xpZW50IGNsaWVudCkgeworCisgICAgICAgIGZDbGllbnQgPSBjbGllbnQ7CisgICAgICAgIGNsaWVudFNjcm9sbFNpemVDaGFuZ2VkKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYWRqdXN0bWVudFZhbHVlQ2hhbmdlZChBZGp1c3RtZW50RXZlbnQgZXZlbnQpIHsKKworICAgICAgICAvLyB2YXJpYWJsZSBub3QgdXNlZCBib29sZWFuIGhvcml6b250YWw7CisgICAgICAgIGlmIChldmVudC5nZXRBZGp1c3RhYmxlKCkgPT0gZkhvcml6U2Nyb2xsQmFyKSB7CisgICAgICAgICAgICBpbnQgdmVydFZhbCA9IGZWZXJ0U2Nyb2xsQmFyID09IG51bGw/IGZWZXJ0VmFsdWUgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZWZXJ0U2Nyb2xsQmFyLmdldFZhbHVlKCk7CisgICAgICAgICAgICBzY3JvbGxUbyhldmVudC5nZXRWYWx1ZSgpLCB2ZXJ0VmFsKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGludCBob3JpelZhbCA9IGZIb3JpelNjcm9sbEJhciA9PSBudWxsPyBmSG9yaXpWYWx1ZSA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkhvcml6U2Nyb2xsQmFyLmdldFZhbHVlKCk7CisgICAgICAgICAgICBzY3JvbGxUbyhob3JpelZhbCwgZXZlbnQuZ2V0VmFsdWUoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgc2V0VmFsdWVzKEFkanVzdGFibGUgc2Nyb2xsYmFyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHZpc2libGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWluaW11bSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBoZWlnaHQpIHsKKworICAgICAgICBpbnQgbWF4aW11bSA9IG1pbmltdW0raGVpZ2h0OworICAgICAgICAKKyAgICAgICAgaWYgKHNjcm9sbGJhciAhPSBudWxsKSB7CisKKyAgICAgICAgICAgIENvbXBvbmVudCBzY3JvbGxiYXJUb28gPSAoQ29tcG9uZW50KSBzY3JvbGxiYXI7CisKKyAgICAgICAgICAgIGlmIChtYXhpbXVtIDw9IHZpc2libGUpIHsKKyAgICAgICAgICAgICAgICBzY3JvbGxiYXJUb28uc2V0RW5hYmxlZChmYWxzZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBzY3JvbGxiYXJUb28uc2V0RW5hYmxlZCh0cnVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgc2Nyb2xsYmFyLnNldE1pbmltdW0obWluaW11bSk7CisgICAgICAgICAgICBzY3JvbGxiYXIuc2V0TWF4aW11bShtYXhpbXVtKTsKKyAgICAgICAgICAgIHNjcm9sbGJhci5zZXRWaXNpYmxlQW1vdW50KHZpc2libGUpOworCSAgICAvLyB3b3JrYXJvdW5kIHNldEJsb2NrSW5jcmVtZW50IHdhcm5pbmdzIGZvciBpbmNyZW1lbnRzIDwgMQorCSAgICBzY3JvbGxiYXIuc2V0QmxvY2tJbmNyZW1lbnQoTWF0aC5tYXgoMSwgdmlzaWJsZSAtIERFRkFVTFRfVU5JVF9JTkMpKTsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgcHVibGljIHZvaWQgY2xpZW50U2Nyb2xsU2l6ZUNoYW5nZWQoKQorICAgIHsKKyAgICAgICAgUmVjdGFuZ2xlIGJvdW5kcyA9IGZDbGllbnQuZ2V0Qm91bmRzKCk7CisgICAgICAgIFJlY3RhbmdsZSBwcmVmZXJyZWRTaXplID0gZkNsaWVudC5nZXRTY3JvbGxTaXplKCk7CisKKyAgICAgICAgc2V0VmFsdWVzKGZIb3JpelNjcm9sbEJhciwgYm91bmRzLndpZHRoLCBwcmVmZXJyZWRTaXplLngsIHByZWZlcnJlZFNpemUud2lkdGgpOworICAgICAgICBzZXRWYWx1ZXMoZlZlcnRTY3JvbGxCYXIsIGJvdW5kcy5oZWlnaHQsIHByZWZlcnJlZFNpemUueSwgcHJlZmVycmVkU2l6ZS5oZWlnaHQpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFBvc2l0aW9uKGludCB4LCBpbnQgeSkgeworCisgICAgICAgIGlmIChmSG9yaXpTY3JvbGxCYXIgIT0gbnVsbCkgeworICAgICAgICAgICAgZkhvcml6U2Nyb2xsQmFyLnNldFZhbHVlKHgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZkhvcml6VmFsdWUgPSB4OworICAgICAgICB9CisgICAgICAgIGlmIChmVmVydFNjcm9sbEJhciAhPSBudWxsKSB7CisgICAgICAgICAgICBmVmVydFNjcm9sbEJhci5zZXRWYWx1ZSh5KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZWZXJ0VmFsdWUgPSB5OworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHNjcm9sbFRvKGludCB4LCBpbnQgeSkKKyAgICB7CisgICAgICAgIGZDbGllbnQuc2Nyb2xsVG8oeCwgeSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0SG9yaXpMaW5lRGlzdGFuY2UoaW50IG5ld0Rpc3RhbmNlKQorICAgIHsKKyAgICAgICAgaWYgKGZIb3JpelNjcm9sbEJhciAhPSBudWxsKSB7CisgICAgICAgICAgICBmSG9yaXpTY3JvbGxCYXIuc2V0VW5pdEluY3JlbWVudChuZXdEaXN0YW5jZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRIb3JpelBhZ2VPdmVybGFwKGludCBuZXdPdmVybGFwKQorICAgIHsKKyAgICAgICAgaWYgKGZIb3JpelNjcm9sbEJhciAhPSBudWxsKSB7CisgICAgICAgICAgICBmSG9yaXpTY3JvbGxCYXIuc2V0QmxvY2tJbmNyZW1lbnQoIC8vIHdvcmthcm91bmQgd2FybmluZ3MgZm9yIHZhbHVlcyA8IDEgb24gdW5peAorICAgICAgICAgICAgICAgICAgICBNYXRoLm1heCgxLCBmSG9yaXpTY3JvbGxCYXIuZ2V0VmlzaWJsZUFtb3VudCgpLW5ld092ZXJsYXApKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFZlcnRMaW5lRGlzdGFuY2UoaW50IG5ld0Rpc3RhbmNlKQorICAgIHsKKyAgICAgICAgaWYgKGZWZXJ0U2Nyb2xsQmFyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZWZXJ0U2Nyb2xsQmFyLnNldFVuaXRJbmNyZW1lbnQobmV3RGlzdGFuY2UpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0VmVydFBhZ2VPdmVybGFwKGludCBuZXdPdmVybGFwKQorICAgIHsKKyAgICAgICAgaWYgKGZWZXJ0U2Nyb2xsQmFyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZWZXJ0U2Nyb2xsQmFyLnNldEJsb2NrSW5jcmVtZW50KCAvLyB3b3JrYXJvdW5kIHdhcm5pbmdzIGZvciB2YWx1ZXMgPCAxIG9uIHVuaXgKKyAgICAgICAgICAgICAgICAgICAgTWF0aC5tYXgoMSwgZlZlcnRTY3JvbGxCYXIuZ2V0VmlzaWJsZUFtb3VudCgpLW5ld092ZXJsYXApKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9TZWxlY3Rpb25EcmFnSW50ZXJhY3Rvci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1NlbGVjdGlvbkRyYWdJbnRlcmFjdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2Y5ZWQxZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9TZWxlY3Rpb25EcmFnSW50ZXJhY3Rvci5qYXZhCkBAIC0wLDAgKzEsMjA2IEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBTZWxlY3Rpb25EcmFnSW50ZXJhY3Rvci5qYXZhLHYgJCAkUmV2aXNpb246IDEuMSAkICREYXRlOiAyMDAwLzA0LzIwIDE3OjUxOjIzICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitpbXBvcnQgamF2YS50ZXh0LkJyZWFrSXRlcmF0b3I7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5BY3Rpb25FdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5Gb2N1c0V2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LktleUV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lk1vdXNlRXZlbnQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRmb3JtYXQuVGV4dE9mZnNldDsKKworZmluYWwgY2xhc3MgU2VsZWN0aW9uRHJhZ0ludGVyYWN0b3IgZXh0ZW5kcyBCZWhhdmlvciBpbXBsZW1lbnRzIFJ1bm5hYmxlIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBUZXh0Q29tcG9uZW50IGZUZXh0Q29tcG9uZW50OworICAgIHByaXZhdGUgVGV4dFNlbGVjdGlvbiBmU2VsZWN0aW9uOworICAgIHByaXZhdGUgUnVuU3RyYXRlZ3kgZlJ1blN0cmF0ZWd5OworICAgIAorICAgIHByaXZhdGUgVGV4dE9mZnNldCBmQW5jaG9yU3RhcnQ7IC8vIGFsaWFzZXMgdGV4dCBvZmZzZXRzIC0gY2xpZW50IGJld2FyZQorICAgIHByaXZhdGUgVGV4dE9mZnNldCBmQW5jaG9yRW5kOworICAgIHByaXZhdGUgVGV4dE9mZnNldCBmQ3VycmVudDsKKworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBmV2FzWmVyb0xlbmd0aDsKKworICAgIHByaXZhdGUgaW50IGZDdXJyZW50WDsKKyAgICBwcml2YXRlIGludCBmQ3VycmVudFk7CisgICAgcHJpdmF0ZSBib29sZWFuIGZNb3VzZU91dHNpZGU7CisKKyAgICBwcml2YXRlIFRocmVhZCBmQXV0b3Njcm9sbFRocmVhZCA9IG51bGw7CisgICAgcHJpdmF0ZSBib29sZWFuIGZUaHJlYWRSdW4gPSB0cnVlOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGtTY3JvbGxTbGVlcCA9IDMwMDsKKworICAgIHB1YmxpYyBTZWxlY3Rpb25EcmFnSW50ZXJhY3RvcihUZXh0U2VsZWN0aW9uIHNlbGVjdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dENvbXBvbmVudCB0ZXh0Q29tcG9uZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdW5TdHJhdGVneSBydW5TdHJhdGVneSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBhbmNob3JTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBhbmNob3JFbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgY3VycmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGluaXRpYWxYLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaW5pdGlhbFksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gd2FzWmVyb0xlbmd0aCkgeworCisgICAgICAgIGZUZXh0Q29tcG9uZW50ID0gdGV4dENvbXBvbmVudDsKKyAgICAgICAgZlNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKKyAgICAgICAgZlJ1blN0cmF0ZWd5ID0gcnVuU3RyYXRlZ3k7CisgICAgICAgIGZBbmNob3JTdGFydCA9IGFuY2hvclN0YXJ0OworICAgICAgICBmQW5jaG9yRW5kID0gYW5jaG9yRW5kOworICAgICAgICBmQ3VycmVudCA9IGN1cnJlbnQ7CisKKyAgICAgICAgZkN1cnJlbnRYID0gaW5pdGlhbFg7CisgICAgICAgIGZDdXJyZW50WSA9IGluaXRpYWxZOworICAgICAgICBmTW91c2VPdXRzaWRlID0gZmFsc2U7CisKKyAgICAgICAgZldhc1plcm9MZW5ndGggPSB3YXNaZXJvTGVuZ3RoOworICAgICAgICAKKyAgICAgICAgc2V0U2VsZWN0aW9uKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBib29sZWFuIHRleHRDb250cm9sRXZlbnRPY2N1cnJlZChCZWhhdmlvci5FdmVudFR5cGUgZXZlbnQsIE9iamVjdCB3aGF0KSB7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gZm9jdXNHYWluZWQoRm9jdXNFdmVudCBldmVudCkgeworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGZvY3VzTG9zdChGb2N1c0V2ZW50IGV2ZW50KSB7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4ga2V5UHJlc3NlZChLZXlFdmVudCBldmVudCkgeworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGtleVR5cGVkKEtleUV2ZW50IGV2ZW50KSB7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4ga2V5UmVsZWFzZWQoS2V5RXZlbnQgZXZlbnQpIHsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIGJvb2xlYW4gbW91c2VEcmFnZ2VkKE1vdXNlRXZlbnQgZSkgeworCisgICAgICAgIGludCB4ID0gZS5nZXRYKCksIHkgPSBlLmdldFkoKTsKKyAgICAgICAgaWYgKGZDdXJyZW50WCAhPSB4IHx8IGZDdXJyZW50WSAhPSB5KSB7CisgICAgICAgICAgICBmQ3VycmVudFggPSB4OworICAgICAgICAgICAgZkN1cnJlbnRZID0geTsKKyAgICAgICAgICAgIHByb2Nlc3NNb3VzZUxvY2F0aW9uKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIHN5bmNocm9uaXplZCBib29sZWFuIG1vdXNlRW50ZXIoTW91c2VFdmVudCBlKSB7CisKKyAgICAgICAgZk1vdXNlT3V0c2lkZSA9IGZhbHNlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIGJvb2xlYW4gbW91c2VFeGl0ZWQoTW91c2VFdmVudCBlKSB7CisKKyAgICAgICAgaWYgKGZBdXRvc2Nyb2xsVGhyZWFkID09IG51bGwpIHsKKyAgICAgICAgICAgIGZBdXRvc2Nyb2xsVGhyZWFkID0gbmV3IFRocmVhZCh0aGlzKTsKKyAgICAgICAgICAgIGZBdXRvc2Nyb2xsVGhyZWFkLnN0YXJ0KCk7CisgICAgICAgIH0KKyAgICAgICAgZk1vdXNlT3V0c2lkZSA9IHRydWU7CisgICAgICAgIG5vdGlmeSgpOworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgYm9vbGVhbiBtb3VzZVJlbGVhc2VkKE1vdXNlRXZlbnQgZSkgeworCisgICAgICAgIGZNb3VzZU91dHNpZGUgPSBmYWxzZTsKKyAgICAgICAgZlRocmVhZFJ1biA9IGZhbHNlOworICAgICAgICBpZiAoZkF1dG9zY3JvbGxUaHJlYWQgIT0gbnVsbCkgeworICAgICAgICAgICAgZkF1dG9zY3JvbGxUaHJlYWQuaW50ZXJydXB0KCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJlbW92ZUZyb21Pd25lcigpOworICAgICAgICBib29sZWFuIGlzWmVyb0xlbmd0aCA9IFRleHRTZWxlY3Rpb24ucmFuZ2VJc1plcm9MZW5ndGgoZkFuY2hvclN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkFuY2hvckVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZDdXJyZW50KTsKKyAgICAgICAgZlNlbGVjdGlvbi5tb3VzZVJlbGVhc2VkKGlzWmVyb0xlbmd0aCAhPSBmV2FzWmVyb0xlbmd0aCk7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHByb2Nlc3NNb3VzZUxvY2F0aW9uKCkgeworCisgICAgICAgIGZUZXh0Q29tcG9uZW50LnNjcm9sbFRvU2hvdyhmQ3VycmVudFgsIGZDdXJyZW50WSk7CisgICAgICAgIGZUZXh0Q29tcG9uZW50LnBvaW50VG9UZXh0T2Zmc2V0KGZDdXJyZW50LCBmQ3VycmVudFgsIGZDdXJyZW50WSwgbnVsbCwgdHJ1ZSk7CisgICAgICAgIHNldFNlbGVjdGlvbigpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBzZXRTZWxlY3Rpb24oKSB7CisKKyAgICAgICAgaWYgKGZDdXJyZW50LmdyZWF0ZXJUaGFuKGZBbmNob3JFbmQpKSB7CisgICAgICAgICAgICBmU2VsZWN0aW9uLmFkdmFuY2VUb05leHRCb3VuZGFyeShmQ3VycmVudCk7CisgICAgICAgICAgICBmU2VsZWN0aW9uLnNldFNlbFJhbmdlQW5kRHJhdyhmQW5jaG9yU3RhcnQsIGZDdXJyZW50LCBmQW5jaG9yU3RhcnQpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGZDdXJyZW50Lmxlc3NUaGFuKGZBbmNob3JTdGFydCkpIHsKKyAgICAgICAgICAgIGZTZWxlY3Rpb24uYWR2YW5jZVRvUHJldmlvdXNCb3VuZGFyeShmQ3VycmVudCk7CisgICAgICAgICAgICBmU2VsZWN0aW9uLnNldFNlbFJhbmdlQW5kRHJhdyhmQ3VycmVudCwgZkFuY2hvckVuZCwgZkFuY2hvclN0YXJ0KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZDdXJyZW50LmFzc2lnbihmQW5jaG9yRW5kKTsKKyAgICAgICAgICAgIGZTZWxlY3Rpb24uc2V0U2VsUmFuZ2VBbmREcmF3KGZBbmNob3JTdGFydCwgZkFuY2hvckVuZCwgZkFuY2hvclN0YXJ0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJ1bigpIHsKKworICAgICAgICBSdW5uYWJsZSBkb01vdXNlTG9jID0gbmV3IFJ1bm5hYmxlKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgcnVuKCkgeworICAgICAgICAgICAgICAgIHByb2Nlc3NNb3VzZUxvY2F0aW9uKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICB3aGlsZSAoZlRocmVhZFJ1bikgeworCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIFRocmVhZC5zbGVlcChrU2Nyb2xsU2xlZXApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2goSW50ZXJydXB0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHJldHVybjsgLy8ganVzdCBxdWl0IHNjcm9sbGluZworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzeW5jaHJvbml6ZWQodGhpcykgeworCisgICAgICAgICAgICAgICAgd2hpbGUgKCFmTW91c2VPdXRzaWRlKSB7CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICB3YWl0KCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2F0Y2goSW50ZXJydXB0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOyAvLyBqdXN0IHF1aXQgc2Nyb2xsaW5nCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBmUnVuU3RyYXRlZ3kuZG9JdChkb01vdXNlTG9jKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9TaW1wbGVDb21tYW5kTG9nLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvU2ltcGxlQ29tbWFuZExvZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE4NDhkMTdlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1NpbXBsZUNvbW1hbmRMb2cuamF2YQpAQCAtMCwwICsxLDE3NyBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogU2ltcGxlQ29tbWFuZExvZy5qYXZhLHYgJCAkUmV2aXNpb246IDEuMiAkICREYXRlOiAyMDAxLzEwLzMwIDAyOjQyOjQ4ICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitmaW5hbCBjbGFzcyBTaW1wbGVDb21tYW5kTG9nIHsKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgQ29tbWFuZCBmTGFzdENvbW1hbmQgPSBudWxsOworICAgIHByaXZhdGUgQ29tbWFuZCBmQ3VycmVudENvbW1hbmQgPSBudWxsOworICAgIHByaXZhdGUgUGFuZWxFdmVudEJyb2FkY2FzdGVyIGZMaXN0ZW5lcjsKKworICAgIHByaXZhdGUgYm9vbGVhbiBmQmFzZUlzTW9kaWZpZWQ7CisKKyAgICBwcml2YXRlIGludCBmTG9nU2l6ZSA9IDE0OworCisgICAgcHVibGljIFNpbXBsZUNvbW1hbmRMb2coUGFuZWxFdmVudEJyb2FkY2FzdGVyIGxpc3RlbmVyKSB7CisgICAgICAgIGZMaXN0ZW5lciA9IGxpc3RlbmVyOworICAgICAgICBmQmFzZUlzTW9kaWZpZWQgPSBmYWxzZTsKKyAgICB9CisKKyAgICAvKiogYWRkcyB0aGUgc3BlY2ZpZWQgY29tbWFuZCB0byB0aGUgdG9wIG9mIHRoZSBjb21tYW5kIHN0YWNrCisgICAgKiAoYW55IHVuZG9uZSBjb21tYW5kcyBvbiB0aGUgc3RhY2sgYXJlIHJlbW92ZWQpCisgICAgKiBUaGlzIGZ1bmN0aW9uIGFzc3VtZXMgdGhlIGNvbW1hbmQgaGFzIGFscmVhZHkgYmVlbiBleGVjdXRlZCAoaS5lLiwgaXRzIGV4ZWN1dGUoKSBtZXRob2QKKyAgICAqIGhhcyBiZWVuIGNhbGxlZCwgb3IgYW4gZXF1aXZhbGVudCBhY3Rpb24gaGFzIGJlZW4gdGFrZW4pICovCisgICAgdm9pZCBhZGQoQ29tbWFuZCBuZXdDb21tYW5kKSB7CisgICAgICAgIC8vIGlmIHRoZXJlIGFyZSBjb21tYW5kcyBvbiB0aGUgc3RhY2sgdGhhdCBoYXZlIGJlZW4gdW5kb25lLCB0aGV5IGFyZQorICAgICAgICAvLyBkcm9wcGVkIG9uIHRoZSBmbG9vciBoZXJlCisgICAgICAgIG5ld0NvbW1hbmQuc2V0UHJldmlvdXNDb21tYW5kKGZDdXJyZW50Q29tbWFuZCk7CisgICAgICAgIAorICAgICAgICBmaW5hbCBDb21tYW5kIG9sZExhc3RDb21tYW5kID0gZkxhc3RDb21tYW5kOworICAgICAgICBmTGFzdENvbW1hbmQgPSBudWxsOworICAgICAgICAKKyAgICAgICAgZkN1cnJlbnRDb21tYW5kID0gbmV3Q29tbWFuZDsKKyAgICAgICAgbGltaXRDb21tYW5kcyhmTG9nU2l6ZSk7CisgICAgICAgIAorICAgICAgICBpZiAob2xkTGFzdENvbW1hbmQgIT0gbnVsbCkgeworICAgICAgICAgICAgZkxpc3RlbmVyLnRleHRTdGF0ZUNoYW5nZWQoVGV4dFBhbmVsRXZlbnQuVU5ET19TVEFURV9DSEFOR0VEKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIElmIHRoZSBjb21tYW5kIGxpc3QgaXMgbG9uZ2VyIHRoYW4gbG9nU2l6ZSwgdHJ1bmNhdGUgaXQuCisgICAgICogVGhpcyBtZXRob2QgdHJhdmVyc2VzIHRoZSBsaXN0IGVhY2ggdGltZSwgYW5kIGlzIG5vdCBhIG1vZGVsCisgICAgICogb2YgZWZmaWNpZW5jeS4gIEl0J3MgYSB0ZW1wb3Jhcnkgd2F5IHRvIHBsdWcgdGhpcyBtZW1vcnkgbGVhaworICAgICAqIHVudGlsIEkgY2FuIGltcGxlbWVudCBhIGJvdW5kZWQgY29tbWFuZCBsb2cuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGxpbWl0Q29tbWFuZHMoaW50IGxvZ1NpemUpIHsKKworICAgICAgICBpZiAobG9nU2l6ZSA9PSAwKSB7CisgICAgICAgICAgICBmQ3VycmVudENvbW1hbmQgPSBudWxsOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgQ29tbWFuZCBjdXJyZW50Q29tbWFuZCA9IGZDdXJyZW50Q29tbWFuZDsKKyAgICAgICAgICAgIGludCByZW1haW5pbmcgPSBsb2dTaXplLTE7CisgICAgICAgICAgICB3aGlsZSAoY3VycmVudENvbW1hbmQgIT0gbnVsbCAmJiByZW1haW5pbmcgPiAwKSB7CisgICAgICAgICAgICAgICAgY3VycmVudENvbW1hbmQgPSBjdXJyZW50Q29tbWFuZC5wcmV2aW91c0NvbW1hbmQoKTsKKyAgICAgICAgICAgICAgICByZW1haW5pbmcgLT0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjdXJyZW50Q29tbWFuZCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgY3VycmVudENvbW1hbmQuc2V0UHJldmlvdXNDb21tYW5kKG51bGwpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqIGFkZHMgdGhlIHNwZWNmaWVkIGNvbW1hbmQgdG8gdGhlIHRvcCBvZiB0aGUgY29tbWFuZCBzdGFjayBhbmQgZXhlY3V0ZXMgaXQgKi8KKyAgICB2b2lkIGFkZEFuZERvKENvbW1hbmQgbmV3Q29tbWFuZCkgeworICAgICAgICBhZGQobmV3Q29tbWFuZCk7CisgICAgICAgIG5ld0NvbW1hbmQuZXhlY3V0ZSgpOworCisgICAgICAgIGZMaXN0ZW5lci50ZXh0U3RhdGVDaGFuZ2VkKFRleHRQYW5lbEV2ZW50LlVORE9fU1RBVEVfQ0hBTkdFRCk7CisgICAgfQorCisgICAgLyoqIHVuZG9lcyB0aGUgY29tbWFuZCBvbiB0aGUgdG9wIG9mIHRoZSBjb21tYW5kIHN0YWNrLCBpZiB0aGVyZSBpcyBvbmUgKi8KKyAgICB2b2lkIHVuZG8oKSB7CisgICAgICAgIGlmIChmQ3VycmVudENvbW1hbmQgIT0gbnVsbCkgeworICAgICAgICAgICAgQ29tbWFuZCBjdXJyZW50ID0gZkN1cnJlbnRDb21tYW5kOworICAgICAgICAgICAgY3VycmVudC51bmRvKCk7CisKKyAgICAgICAgICAgIGZDdXJyZW50Q29tbWFuZCA9IGN1cnJlbnQucHJldmlvdXNDb21tYW5kKCk7CisKKyAgICAgICAgICAgIGN1cnJlbnQuc2V0UHJldmlvdXNDb21tYW5kKGZMYXN0Q29tbWFuZCk7CisgICAgICAgICAgICBmTGFzdENvbW1hbmQgPSBjdXJyZW50OworCisgICAgICAgICAgICBmTGlzdGVuZXIudGV4dFN0YXRlQ2hhbmdlZChUZXh0UGFuZWxFdmVudC5VTkRPX1NUQVRFX0NIQU5HRUQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqIHJlZG9lcyB0aGUgbGFzdCB1bmRvbmUgY29tbWFuZCBvbiB0aGUgY29tbWFuZCBzdGFjaywgaWYgdGhlcmUgYXJlIGFueSAqLworICAgIHZvaWQgcmVkbygpIHsKKyAgICAgICAgaWYgKGZMYXN0Q29tbWFuZCAhPSBudWxsKSB7CisgICAgICAgICAgICBDb21tYW5kIGxhc3QgPSBmTGFzdENvbW1hbmQ7CisgICAgICAgICAgICBsYXN0LnJlZG8oKTsKKworICAgICAgICAgICAgZkxhc3RDb21tYW5kID0gbGFzdC5wcmV2aW91c0NvbW1hbmQoKTsKKworICAgICAgICAgICAgbGFzdC5zZXRQcmV2aW91c0NvbW1hbmQoZkN1cnJlbnRDb21tYW5kKTsKKyAgICAgICAgICAgIGZDdXJyZW50Q29tbWFuZCA9IGxhc3Q7CisKKyAgICAgICAgICAgIGZMaXN0ZW5lci50ZXh0U3RhdGVDaGFuZ2VkKFRleHRQYW5lbEV2ZW50LlVORE9fU1RBVEVfQ0hBTkdFRCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBjYW5VbmRvKCkgeworICAgICAgICByZXR1cm4gZkN1cnJlbnRDb21tYW5kICE9IG51bGw7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gY2FuUmVkbygpIHsKKyAgICAgICAgcmV0dXJuIGZMYXN0Q29tbWFuZCAhPSBudWxsOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGlzTW9kaWZpZWQoKSB7CisKKyAgICAgICAgaWYgKGZDdXJyZW50Q29tbWFuZCA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZkJhc2VJc01vZGlmaWVkOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZDdXJyZW50Q29tbWFuZC5pc01vZGlmaWVkKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRNb2RpZmllZChib29sZWFuIG1vZGlmaWVkKSB7CisKKyAgICAgICAgaWYgKGZDdXJyZW50Q29tbWFuZCA9PSBudWxsKSB7CisgICAgICAgICAgICBmQmFzZUlzTW9kaWZpZWQgPSBtb2RpZmllZDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZDdXJyZW50Q29tbWFuZC5zZXRNb2RpZmllZChtb2RpZmllZCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBjbGVhckxvZygpIHsKKworICAgICAgICBpZiAoZkN1cnJlbnRDb21tYW5kICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZCYXNlSXNNb2RpZmllZCA9IGZDdXJyZW50Q29tbWFuZC5pc01vZGlmaWVkKCk7CisgICAgICAgIH0KKyAgICAgICAgLy8gdmFyaWFibGUgbm90IHVzZWQgYm9vbGVhbiBjaGFuZ2VkID0gZkN1cnJlbnRDb21tYW5kICE9IG51bGwgfHwgZkxhc3RDb21tYW5kICE9IG51bGw7CisgICAgICAgIGZDdXJyZW50Q29tbWFuZCA9IG51bGw7CisgICAgICAgIGZMYXN0Q29tbWFuZCA9IG51bGw7CisgICAgICAgIAorICAgICAgICBmTGlzdGVuZXIudGV4dFN0YXRlQ2hhbmdlZChUZXh0UGFuZWxFdmVudC5VTkRPX1NUQVRFX0NIQU5HRUQpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldExvZ1NpemUoaW50IHNpemUpIHsKKworICAgICAgICBpZiAoc2l6ZSA8IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImxvZyBzaXplIGNhbm5vdCBiZSBuZWdhdGl2ZSIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoc2l6ZSA8IGZMb2dTaXplKSB7CisgICAgICAgICAgICBsaW1pdENvbW1hbmRzKHNpemUpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmTG9nU2l6ZSA9IHNpemU7CisgICAgICAgIAorICAgICAgICBpZiAoZkxhc3RDb21tYW5kICE9IG51bGwgfHwgc2l6ZSA9PSAwKSB7CisgICAgICAgICAgICBmTGFzdENvbW1hbmQgPSBudWxsOworICAgICAgICAgICAgZkxpc3RlbmVyLnRleHRTdGF0ZUNoYW5nZWQoVGV4dFBhbmVsRXZlbnQuVU5ET19TVEFURV9DSEFOR0VEKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0TG9nU2l6ZSgpIHsKKworICAgICAgICByZXR1cm4gZkxvZ1NpemU7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1N0eWxlQ2hhbmdlQ29tbWFuZC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1N0eWxlQ2hhbmdlQ29tbWFuZC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg0NzcxYWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvU3R5bGVDaGFuZ2VDb21tYW5kLmphdmEKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogU3R5bGVDaGFuZ2VDb21tYW5kLmphdmEsdiAkICRSZXZpc2lvbjogMS4xICQgJERhdGU6IDIwMDAvMDQvMjAgMTc6NTE6MjMgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVNb2RpZmllcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTVRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0Zm9ybWF0LlRleHRPZmZzZXQ7CisKK2NsYXNzIFN0eWxlQ2hhbmdlQ29tbWFuZCBleHRlbmRzIFRleHRDb21tYW5kIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBib29sZWFuIGZDaGFyYWN0ZXI7CisgICAgcHJpdmF0ZSBTdHlsZU1vZGlmaWVyIGZNb2RpZmllcjsKKworICAgIHB1YmxpYyBTdHlsZUNoYW5nZUNvbW1hbmQoVGV4dEVkaXRCZWhhdmlvciBiZWhhdmlvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1UZXh0IG9yaWdpbmFsVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsU3RhcnRCZWZvcmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHNlbEVuZEJlZm9yZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0eWxlTW9kaWZpZXIgbW9kaWZpZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGNoYXJhY3RlcikgeworCisgICAgICAgIHN1cGVyKGJlaGF2aW9yLCBvcmlnaW5hbFRleHQsIHNlbFN0YXJ0QmVmb3JlLmZPZmZzZXQsIHNlbFN0YXJ0QmVmb3JlLCBzZWxFbmRCZWZvcmUpOworICAgICAgICBmTW9kaWZpZXIgPSBtb2RpZmllcjsKKyAgICAgICAgZkNoYXJhY3RlciA9IGNoYXJhY3RlcjsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGFmZmVjdGVkUmFuZ2VFbmQoKSB7CisgICAgICAgIHJldHVybiBmU2VsRW5kQmVmb3JlLmZPZmZzZXQ7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZXhlY3V0ZSgpIHsKKyAgICAgICAgZkJlaGF2aW9yLmRvTW9kaWZ5U3R5bGVzKGZBZmZlY3RlZFJhbmdlU3RhcnQsIGZTZWxFbmRCZWZvcmUuZk9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZNb2RpZmllciwgZkNoYXJhY3RlciwgZlNlbFN0YXJ0QmVmb3JlLCBmU2VsRW5kQmVmb3JlKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvU3R5bGVkVGV4dENsaXBib2FyZC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1N0eWxlZFRleHRDbGlwYm9hcmQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zYTU1ZmI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1N0eWxlZFRleHRDbGlwYm9hcmQuamF2YQpAQCAtMCwwICsxLDIxOSBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogU3R5bGVkVGV4dENsaXBib2FyZC5qYXZhLHYgJCAkUmV2aXNpb246IDEuMiAkICREYXRlOiAyMDAyLzAyLzE2IDAzOjA2OjQ3ICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitpbXBvcnQgamF2YS5hd3QuZGF0YXRyYW5zZmVyLkNsaXBib2FyZDsKK2ltcG9ydCBqYXZhLmF3dC5kYXRhdHJhbnNmZXIuQ2xpcGJvYXJkT3duZXI7CitpbXBvcnQgamF2YS5hd3QuZGF0YXRyYW5zZmVyLlRyYW5zZmVyYWJsZTsKK2ltcG9ydCBqYXZhLmF3dC5kYXRhdHJhbnNmZXIuRGF0YUZsYXZvcjsKK2ltcG9ydCBqYXZhLmF3dC5kYXRhdHJhbnNmZXIuVW5zdXBwb3J0ZWRGbGF2b3JFeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworCitpbXBvcnQgamF2YS5hd3QuVG9vbGtpdDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZWRUZXh0OworCisvKioKKyogV3JhcHBlciBmb3IgamF2YS5hd3QuZGF0YXRyYW5zZmVyLkNsaXBib2FyZAorKiBQYWNrYWdlcyBhbiBNQ29uc3RUZXh0IGluIGEgdHJhbnNmZXJhYmxlLCBhbmQgcHV0cyBpdCBvbiB0aGUgY2xpcGJvYXJkLgorKi8KKworY2xhc3MgU3R5bGVkVGV4dENsaXBib2FyZCBpbXBsZW1lbnRzIENsaXBib2FyZE93bmVyIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgLy8gVGhpcyBjbGFzcyBoYXMgYSB3b3JrYXJvdW5kIGZvciBhIGJ1ZyBpbiB0aGUgV2luZG93cyBzeXN0ZW0gY2xpcGJvYXJkLgorICAgIC8vIFRoZSBzeXN0ZW0gY2xpcGJvYXJkIHdpbGwgb25seSByZXR1cm4gU3RyaW5nIGNvbnRlbnQsIGV2ZW4KKyAgICAvLyB0aG91Z2ggaXQgaGFzIGEgcmVmZXJlbmNlIHRvIHRoZSBjb250ZW50cy4gIFNvIGlmIG91cgorICAgIC8vIGNsaXBib2FyZCBpcyB0aGUgc3lzdGVtIGNsaXBib2FyZCwgd2UnbGwga2VlcCBhIHJlZmVyZW5jZQorICAgIC8vIHRvIHRoZSBjb250ZW50IGFuZCB1c2UgdGhhdCBpbnN0ZWFkIG9mIHdoYXQgdGhlIENsaXBib2FyZCByZXR1cm5zLgorCisgICAgcHJpdmF0ZSBzdGF0aWMgQ2xpcGJvYXJkIFNZU1RFTSA9IG51bGw7CisgICAgc3RhdGljIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFNZU1RFTSA9IFRvb2xraXQuZ2V0RGVmYXVsdFRvb2xraXQoKS5nZXRTeXN0ZW1DbGlwYm9hcmQoKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChUaHJvd2FibGUgdGgpIHsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFN0eWxlZFRleHRDbGlwYm9hcmQgZmdTeXN0ZW1DbGlwYm9hcmQgPSBudWxsOworCisgICAgcHVibGljIHN0YXRpYyBTdHlsZWRUZXh0Q2xpcGJvYXJkIGdldENsaXBib2FyZEZvcihDbGlwYm9hcmQgY2xpcGJvYXJkKSB7CisKKyAgICAgICAgaWYgKGNsaXBib2FyZCA9PSBTWVNURU0gJiYgU1lTVEVNICE9IG51bGwpIHsKKyAgICAgICAgICAgIHN5bmNocm9uaXplZChTWVNURU0pIHsKKyAgICAgICAgICAgICAgICBpZiAoZmdTeXN0ZW1DbGlwYm9hcmQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBmZ1N5c3RlbUNsaXBib2FyZCA9IG5ldyBTdHlsZWRUZXh0Q2xpcGJvYXJkKFNZU1RFTSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZnU3lzdGVtQ2xpcGJvYXJkOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBTdHlsZWRUZXh0Q2xpcGJvYXJkKGNsaXBib2FyZCwgZmFsc2UpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBDbGlwYm9hcmQgZkNsaXBib2FyZDsKKyAgICBwcml2YXRlIGJvb2xlYW4gZlVzZUxvY2FsQ29udGVudHM7CisgICAgcHJpdmF0ZSBUcmFuc2ZlcmFibGUgZkNvbnRlbnRzID0gbnVsbDsKKworICAgIHByaXZhdGUgU3R5bGVkVGV4dENsaXBib2FyZChDbGlwYm9hcmQgY2xpcGJvYXJkLCBib29sZWFuIHVzZUxvY2FsQ29udGVudHMpIHsKKworICAgICAgICBpZiAoY2xpcGJvYXJkID09IG51bGwpIHsKKyAgICAgICAgICAgIGZDbGlwYm9hcmQgPSBuZXcgQ2xpcGJvYXJkKCJUZXh0UGFuZWwgY2xpcGJvYXJkIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmQ2xpcGJvYXJkID0gY2xpcGJvYXJkOworICAgICAgICB9CisKKyAgICAgICAgZlVzZUxvY2FsQ29udGVudHMgPSB1c2VMb2NhbENvbnRlbnRzOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGxvc3RPd25lcnNoaXAoQ2xpcGJvYXJkIGNsaXBib2FyZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zZmVyYWJsZSBjb250ZW50cykgeworICAgICAgICBpZiAoY29udGVudHMgPT0gZkNvbnRlbnRzKSB7CisgICAgICAgICAgICB0aGlzLmZDb250ZW50cyA9IG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRDb250ZW50cyhNQ29uc3RUZXh0IG5ld0NvbnRlbnRzKSB7CisKKyAgICAgICAgVHJhbnNmZXJhYmxlVGV4dCBjb250ZW50cyA9IG5ldyBUcmFuc2ZlcmFibGVUZXh0KG5ld0NvbnRlbnRzKTsKKyAgICAgICAgaWYgKGZDbGlwYm9hcmQgPT0gU1lTVEVNKSB7CisgICAgICAgICAgICBmQ29udGVudHMgPSBjb250ZW50czsKKyAgICAgICAgfQorICAgICAgICBmQ2xpcGJvYXJkLnNldENvbnRlbnRzKGNvbnRlbnRzLCB0aGlzKTsKKyAgICB9CisKKyAgICBwcml2YXRlIFRyYW5zZmVyYWJsZSBnZXRDbGlwYm9hcmRDb250ZW50cygpIHsKKworICAgICAgICBpZiAoZlVzZUxvY2FsQ29udGVudHMgJiYgZkNvbnRlbnRzICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmQ29udGVudHM7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZkNsaXBib2FyZC5nZXRDb250ZW50cyh0aGlzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBIYXMgY29udGVudHMgLSBmYXN0ZXIgdGhhbiBnZXRDb250ZW50cyBmb3IgZmluZGluZyBvdXQgd2hldGhlciB0aGUKKyAgICAgKiBjbGlwYm9hcmQgaGFzIHRleHQuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaGFzQ29udGVudHMoKSB7CisKKyAgICAgICAgVHJhbnNmZXJhYmxlIGNvbnRlbnRzID0gZ2V0Q2xpcGJvYXJkQ29udGVudHMoKTsKKworICAgICAgICBpZiAoY29udGVudHMgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGNvbnRlbnRzLmlzRGF0YUZsYXZvclN1cHBvcnRlZChNQ29uc3RUZXh0LnN0eWxlZFRleHRGbGF2b3IpIHx8CisgICAgICAgICAgICAgICBjb250ZW50cy5pc0RhdGFGbGF2b3JTdXBwb3J0ZWQoRGF0YUZsYXZvci5zdHJpbmdGbGF2b3IpIHx8CisgICAgICAgICAgICAgICBjb250ZW50cy5pc0RhdGFGbGF2b3JTdXBwb3J0ZWQoRGF0YUZsYXZvci5wbGFpblRleHRGbGF2b3IpOworICAgIH0KKworICAgIHByaXZhdGUgU3RyaW5nIGdldFN0cmluZyhJbnB1dFN0cmVhbSBpblN0cmVhbSkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKworICAgICAgICBTdHJpbmcgdmFsdWUgPSBuZXcgU3RyaW5nKCk7CisgICAgICAgIGludCBieXRlc1JlYWQ7CisKKyAgICAgICAgZG8geworICAgICAgICAgICAgYnl0ZSBpbkJ5dGVzW10gPSBuZXcgYnl0ZVtpblN0cmVhbS5hdmFpbGFibGUoKV07CisgICAgICAgICAgICBieXRlc1JlYWQgPSBpblN0cmVhbS5yZWFkKGluQnl0ZXMpOworCisgICAgICAgICAgICBpZiAoYnl0ZXNSZWFkICE9IC0xKQorICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUgKyBuZXcgU3RyaW5nKGluQnl0ZXMpOworCisgICAgICAgIH0gd2hpbGUgKGJ5dGVzUmVhZCAhPSAtMSk7CisKKyAgICAgICAgcmV0dXJuIHZhbHVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIElmIHRoZSBDbGlwYm9hcmQgaGFzIHRleHQgY29udGVudCwgcmV0dXJuIGl0IGFzIGFuCisgICAgICogTUNvbnN0VGV4dC4gIE90aGVyd2lzZSByZXR1cm4gbnVsbC4KKyAgICAgKiBAcGFyYW0gZGVmYXVsdFN0eWxlIHRoZSBzdHlsZSB0byBhcHBseSB0byB1bnN0eWxlZAorICAgICAqICAgICAgdGV4dCAoc3VjaCBhcyBhIFN0cmluZykuICBJZiB0aGUgY2xpcGJvYXJkCisgICAgICogICAgICBoYXMgc3R5bGVkIHRleHQgdGhpcyBwYXJhbWV0ZXIgaXMgbm90IHVzZWQuCisgICAgICovCisgICAgcHVibGljIE1Db25zdFRleHQgZ2V0Q29udGVudHMoQXR0cmlidXRlTWFwIGRlZmF1bHRTdHlsZSkgeworCisgICAgICAgIFRyYW5zZmVyYWJsZSBjb250ZW50cyA9IGdldENsaXBib2FyZENvbnRlbnRzKCk7CisKKyAgICAgICAgaWYgKGNvbnRlbnRzID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgRGF0YUZsYXZvciBmbGF2b3JzW10gPSBjb250ZW50cy5nZXRUcmFuc2ZlckRhdGFGbGF2b3JzKCk7CisKKyAgICAgICAgLy8gc2VhcmNoIGZsYXZvcnMgZm9yIG91ciBmbGF2b3IsIFN0cmluZyBmbGF2b3IgYW5kIHJhdyB0ZXh0IGZsYXZvcgorCisgICAgICAgIEV4Y2VwdGlvbiBleCA9IG51bGw7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgaW50IGk7CisKKyAgICAgICAgICAgIGZvciAoaT0wOyBpIDwgZmxhdm9ycy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChmbGF2b3JzW2ldLmVxdWFscyhNQ29uc3RUZXh0LnN0eWxlZFRleHRGbGF2b3IpKQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGkgPCBmbGF2b3JzLmxlbmd0aCkgeworCisgICAgICAgICAgICAgICAgT2JqZWN0IGRhdGEgPSBjb250ZW50cy5nZXRUcmFuc2ZlckRhdGEoTUNvbnN0VGV4dC5zdHlsZWRUZXh0Rmxhdm9yKTsKKyAgICAgICAgICAgICAgICBpZiAoZGF0YSA9PSBudWxsKQorICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkRhdGEgaXMgbnVsbC4iKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gKE1Db25zdFRleHQpIGRhdGE7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZvciAoaT0wOyBpIDwgZmxhdm9ycy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChmbGF2b3JzW2ldLmVxdWFscyhEYXRhRmxhdm9yLnN0cmluZ0ZsYXZvcikpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoaSA8IGZsYXZvcnMubGVuZ3RoKSB7CisKKyAgICAgICAgICAgICAgICBPYmplY3QgZGF0YSA9IGNvbnRlbnRzLmdldFRyYW5zZmVyRGF0YShEYXRhRmxhdm9yLnN0cmluZ0ZsYXZvcik7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTdHlsZWRUZXh0KChTdHJpbmcpIGRhdGEsIGRlZmF1bHRTdHlsZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZvciAoaT0wOyBpIDwgZmxhdm9ycy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChmbGF2b3JzW2ldLmVxdWFscyhEYXRhRmxhdm9yLnBsYWluVGV4dEZsYXZvcikpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoaSA8IGZsYXZvcnMubGVuZ3RoKSB7CisKKyAgICAgICAgICAgICAgICBPYmplY3QgZGF0YSA9IGNvbnRlbnRzLmdldFRyYW5zZmVyRGF0YShEYXRhRmxhdm9yLnBsYWluVGV4dEZsYXZvcik7CisKKyAgICAgICAgICAgICAgICBTdHJpbmcgdGV4dFN0cmluZyA9IGdldFN0cmluZygoSW5wdXRTdHJlYW0pIGRhdGEpOworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU3R5bGVkVGV4dCh0ZXh0U3RyaW5nLCBkZWZhdWx0U3R5bGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdGNoKFVuc3VwcG9ydGVkRmxhdm9yRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGV4ID0gZTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBleCA9IGU7CisgICAgICAgIH0KKworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkV4Y2VwdGlvbiB3aGVuIHJldHJpZXZpbmcgZGF0YS4gIEV4Y2VwdGlvbjoiICsgZXgpOworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dENoYW5nZUNvbW1hbmQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0Q2hhbmdlQ29tbWFuZC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRmOGJhYjcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dENoYW5nZUNvbW1hbmQuamF2YQpAQCAtMCwwICsxLDgxIEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBUZXh0Q2hhbmdlQ29tbWFuZC5qYXZhLHYgJCAkUmV2aXNpb246IDEuMSAkICREYXRlOiAyMDAwLzA0LzIwIDE3OjUxOjIzICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1UZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdC5UZXh0T2Zmc2V0OworCitjbGFzcyBUZXh0Q2hhbmdlQ29tbWFuZCBleHRlbmRzIFRleHRDb21tYW5kIHsKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgTUNvbnN0VGV4dCBmTmV3VGV4dDsKKyAgICBwcml2YXRlIFRleHRPZmZzZXQgZlNlbFN0YXJ0QWZ0ZXI7CisgICAgcHJpdmF0ZSBUZXh0T2Zmc2V0IGZTZWxFbmRBZnRlcjsKKworICAgIHB1YmxpYyBUZXh0Q2hhbmdlQ29tbWFuZChUZXh0RWRpdEJlaGF2aW9yIGJlaGF2aW9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNVGV4dCBvcmlnaW5hbFRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1Db25zdFRleHQgbmV3VGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGFmZmVjdGVkUmFuZ2VTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxTdGFydEJlZm9yZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxFbmRCZWZvcmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsU3RhcnRBZnRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxFbmRBZnRlcikgeworICAgICAgICBzdXBlcihiZWhhdmlvciwgb3JpZ2luYWxUZXh0LCBhZmZlY3RlZFJhbmdlU3RhcnQsIHNlbFN0YXJ0QmVmb3JlLCBzZWxFbmRCZWZvcmUpOworICAgICAgICBmTmV3VGV4dCA9IG5ld1RleHQ7CisgICAgICAgIGZTZWxTdGFydEFmdGVyID0gbmV3IFRleHRPZmZzZXQoKTsKKyAgICAgICAgZlNlbFN0YXJ0QWZ0ZXIuYXNzaWduKHNlbFN0YXJ0QWZ0ZXIpOworICAgICAgICBmU2VsRW5kQWZ0ZXIgPSBuZXcgVGV4dE9mZnNldCgpOworICAgICAgICBmU2VsRW5kQWZ0ZXIuYXNzaWduKHNlbEVuZEFmdGVyKTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGFmZmVjdGVkUmFuZ2VFbmQoKSB7CisgICAgICAgIGlmIChmTmV3VGV4dCA9PSBudWxsKQorICAgICAgICAgICAgcmV0dXJuIGZBZmZlY3RlZFJhbmdlU3RhcnQ7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBmQWZmZWN0ZWRSYW5nZVN0YXJ0ICsgZk5ld1RleHQubGVuZ3RoKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZXhlY3V0ZSgpIHsKKyAgICAgICAgZkJlaGF2aW9yLmRvUmVwbGFjZVRleHQoZkFmZmVjdGVkUmFuZ2VTdGFydCwgZkFmZmVjdGVkUmFuZ2VTdGFydCArIGZPcmlnaW5hbFRleHQubGVuZ3RoKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZk5ld1RleHQsIGZTZWxTdGFydEFmdGVyLCBmU2VsRW5kQWZ0ZXIpOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgYWZmZWN0ZWRSYW5nZVN0YXJ0KCkgeworICAgICAgICByZXR1cm4gZkFmZmVjdGVkUmFuZ2VTdGFydDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXROZXdUZXh0KE1Db25zdFRleHQgbmV3VGV4dCkgeworICAgICAgICBmTmV3VGV4dCA9IG5ld1RleHQ7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0U2VsUmFuZ2VBZnRlcihUZXh0T2Zmc2V0IHN0YXJ0LCBUZXh0T2Zmc2V0IGVuZCkgeworICAgICAgICBpZiAoZlNlbFN0YXJ0QWZ0ZXIgPT0gbnVsbCkKKyAgICAgICAgICAgIGZTZWxTdGFydEFmdGVyID0gbmV3IFRleHRPZmZzZXQoKTsKKyAgICAgICAgaWYgKGZTZWxFbmRBZnRlciA9PSBudWxsKQorICAgICAgICAgICAgZlNlbEVuZEFmdGVyID0gbmV3IFRleHRPZmZzZXQoKTsKKyAgICAgICAgZlNlbFN0YXJ0QWZ0ZXIuYXNzaWduKHN0YXJ0KTsKKyAgICAgICAgZlNlbEVuZEFmdGVyLmFzc2lnbihlbmQpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHByZXBlbmRUb09sZFRleHQoTUNvbnN0VGV4dCBuZXdUZXh0KSB7CisgICAgICAgIGZPcmlnaW5hbFRleHQuaW5zZXJ0KDAsIG5ld1RleHQpOworICAgICAgICBmQWZmZWN0ZWRSYW5nZVN0YXJ0IC09IG5ld1RleHQubGVuZ3RoKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYXBwZW5kVG9PbGRUZXh0KE1Db25zdFRleHQgbmV3VGV4dCkgeworICAgICAgICBmT3JpZ2luYWxUZXh0LmFwcGVuZChuZXdUZXh0KTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dENvbW1hbmQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0Q29tbWFuZC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRhNWM1NzMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dENvbW1hbmQuamF2YQpAQCAtMCwwICsxLDUxIEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBUZXh0Q29tbWFuZC5qYXZhLHYgJCAkUmV2aXNpb246IDEuMSAkICREYXRlOiAyMDAwLzA0LzIwIDE3OjUxOjIzICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1UZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdC5UZXh0T2Zmc2V0OworCithYnN0cmFjdCBjbGFzcyBUZXh0Q29tbWFuZCBleHRlbmRzIENvbW1hbmQgeworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJvdGVjdGVkIFRleHRFZGl0QmVoYXZpb3IgZkJlaGF2aW9yOworICAgIHByb3RlY3RlZCBNVGV4dCBmT3JpZ2luYWxUZXh0OworICAgIHByb3RlY3RlZCBpbnQgZkFmZmVjdGVkUmFuZ2VTdGFydDsKKyAgICBwcm90ZWN0ZWQgVGV4dE9mZnNldCBmU2VsU3RhcnRCZWZvcmU7CisgICAgcHJvdGVjdGVkIFRleHRPZmZzZXQgZlNlbEVuZEJlZm9yZTsKKworICAgIHB1YmxpYyBUZXh0Q29tbWFuZChUZXh0RWRpdEJlaGF2aW9yIGJlaGF2aW9yLAorICAgICAgICAgICAgICAgICAgICAgICBNVGV4dCBvcmlnaW5hbFRleHQsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBhZmZlY3RlZFJhbmdlU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsU3RhcnRCZWZvcmUsCisgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsRW5kQmVmb3JlKSB7CisKKyAgICAgICAgZkJlaGF2aW9yID0gYmVoYXZpb3I7CisgICAgICAgIGZPcmlnaW5hbFRleHQgPSBvcmlnaW5hbFRleHQ7CisgICAgICAgIGZBZmZlY3RlZFJhbmdlU3RhcnQgPSBhZmZlY3RlZFJhbmdlU3RhcnQ7CisgICAgICAgIGZTZWxTdGFydEJlZm9yZSA9IG5ldyBUZXh0T2Zmc2V0KCk7CisgICAgICAgIGZTZWxTdGFydEJlZm9yZS5hc3NpZ24oc2VsU3RhcnRCZWZvcmUpOworICAgICAgICBmU2VsRW5kQmVmb3JlID0gbmV3IFRleHRPZmZzZXQoKTsKKyAgICAgICAgZlNlbEVuZEJlZm9yZS5hc3NpZ24oc2VsRW5kQmVmb3JlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGFmZmVjdGVkUmFuZ2VFbmQoKTsKKworICAgIHB1YmxpYyB2b2lkIHVuZG8oKSB7CisgICAgICAgIGZCZWhhdmlvci5kb1JlcGxhY2VUZXh0KGZBZmZlY3RlZFJhbmdlU3RhcnQsIGFmZmVjdGVkUmFuZ2VFbmQoKSwgZk9yaWdpbmFsVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmU2VsU3RhcnRCZWZvcmUsIGZTZWxFbmRCZWZvcmUpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0Q29tcG9uZW50LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dENvbXBvbmVudC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJiYzNiOTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dENvbXBvbmVudC5qYXZhCkBAIC0wLDAgKzEsOTgyIEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBUZXh0Q29tcG9uZW50LmphdmEsdiAkICRSZXZpc2lvbjogMS41ICQgJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6NDcgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2ltcG9ydCBqYXZhLmF3dC5Db2xvcjsKK2ltcG9ydCBqYXZhLmF3dC5Db21wb25lbnQ7CitpbXBvcnQgamF2YS5hd3QuRGltZW5zaW9uOworaW1wb3J0IGphdmEuYXd0LkdyYXBoaWNzOworaW1wb3J0IGphdmEuYXd0LkltYWdlOworaW1wb3J0IGphdmEuYXd0LlBvaW50OworaW1wb3J0IGphdmEuYXd0LlJlY3RhbmdsZTsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkNvbXBvbmVudEFkYXB0ZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuRm9jdXNMaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5LZXlMaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5Nb3VzZUxpc3RlbmVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lk1vdXNlTW90aW9uTGlzdGVuZXI7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5Db21wb25lbnRFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5Gb2N1c0V2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LktleUV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lk1vdXNlRXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93RXZlbnQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTVRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0Zm9ybWF0LlRleHRPZmZzZXQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRmb3JtYXQuTUZvcm1hdHRlcjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKKworY2xhc3MgVGV4dENvbXBvbmVudCBleHRlbmRzIEZha2VDb21wb25lbnQKKyAgICAgICAgICAgICAgICAgICAgaW1wbGVtZW50cyBCZWhhdmlvck93bmVyLAorICAgICAgICAgICAgICAgICAgICBGb2N1c0xpc3RlbmVyLAorICAgICAgICAgICAgICAgICAgICBLZXlMaXN0ZW5lciwKKyAgICAgICAgICAgICAgICAgICAgTW91c2VMaXN0ZW5lciwKKyAgICAgICAgICAgICAgICAgICAgTW91c2VNb3Rpb25MaXN0ZW5lciwKKyAgICAgICAgICAgICAgICAgICAgU2Nyb2xsZXIuQ2xpZW50IHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXSU5ET1dfV0lEVEggPSAtMTA7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgREVGQVVMVF9JTlNFVCA9IDEwOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgQ29sb3IgU1RST05HX0NBUkVUX0NPTE9SID0gQ29sb3IuYmxhY2s7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgQ29sb3IgV0VBS19DQVJFVF9DT0xPUiA9IENvbG9yLmRhcmtHcmF5OworCisgICAgcHJpdmF0ZSBCZWhhdmlvciBmQmVoYXZpb3I7CisgICAgcHJpdmF0ZSBNVGV4dCBmVGV4dDsKKyAgICBwcml2YXRlIFN0eWxlZFRleHRDbGlwYm9hcmQgZkNsaXBib2FyZDsKKyAgICBwcml2YXRlIGJvb2xlYW4gZlNjcm9sbHM7CisgICAgcHJpdmF0ZSBTY3JvbGxlciBmU2Nyb2xsZXI7CisKKyAgICBwcml2YXRlIERvY3VtZW50VmlldyBmRG9jdW1lbnRWaWV3ID0gbnVsbDsKKworICAgIC8vIHNpZ2ggLSBjYW4ndCBjcmVhdGUgRG9jdW1lbnRWaWV3IHVudGlsIGFkZE5vdGlmeSgpIGlzIGNhbGxlZC4KKyAgICAvLyBUaGVzZSB2YWx1ZXMgaG9sZCBEb2N1bWVudFZpZXcgY3RvciBhcmdzCisgICAgcHJpdmF0ZSBBdHRyaWJ1dGVNYXAgZkRlZmF1bHRWYWx1ZXM7CisgICAgcHJpdmF0ZSBib29sZWFuIGZWaWV3V3JhcHM7CisgICAgcHJpdmF0ZSBpbnQgZlZpZXdXcmFwV2lkdGg7CisgICAgcHJpdmF0ZSBpbnQgZlZpZXdJbnNldEFtb3VudDsKKyAgICAKKyAgICBwcml2YXRlIFBhbmVsRXZlbnRCcm9hZGNhc3RlciBmTGlzdGVuZXI7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBuZXcgVGV4dENvbXBvbmVudC4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgdGV4dCBtb2RlbC4gIFRoaXMgbW9kZWwgd2lsbCBiZSB1c2VkIGZvcgorICAgICAqIHRoZSBsaWZlIG9mIHRoZSBjb21wb25lbnQsIGV2ZW4gaWYgc2V0VGV4dCBpcyBjYWxsZWQKKyAgICAgKiBAcGFyYW0gd3JhcHMgaWYgdHJ1ZSwgdGhlIHRleHQgaXMgd3JhcHBlZCB0byB0aGUgc3BlY2lmaWVkCisgICAgICogd3JhcHBpbmcgd2lkdGguICBJZiBmYWxzZSwgdGhlIHRleHQgd3JhcHMgb25seSBhdCBwYXJhZ3JhcGggYnJlYWtzLgorICAgICAqIEBwYXJhbSB3cmFwV2lkdGggaWdub3JlZCBpZiB3cmFwcyBpcyBmYWxzZS4gIFRleHQgd3JhcHMgdG8gdGhpcyB3aWR0aAorICAgICAqIHVubGVzcyB0aGUgd2lkdGggaXMgV0lORE9XX1dJRFRILCBpbiB3aGljaCBjYXNlIHRleHQgd3JhcHMgdG8gd2lkdGgKKyAgICAgKiBvZiB0aGlzIGNvbXBvbmVudC4gU2hvdWxkIG5vdCBiZSBuZWdhdGl2ZSAodW5sZXNzIGl0IGlzIFdJTkRPV19XSURUSCkuCisgICAgICogQHBhcmFtIGluc2V0QW1vdW50IHRoZSBzaXplIG9mIHRoZSBtYXJnaW5zIGFyb3VuZCB0aGUgdGV4dAorICAgICAqIEBwYXJhbSBjbGlwYm9hcmQgdGhlIGNsaXBib2FyZCB0byB1c2UgZm9yIGN1dC9jb3B5L3Bhc3RlIG9wZXJhdGlvbnMuCisgICAgICogSWYgbnVsbCwgdGhlIGNvbXBvbmVudCB3aWxsIHVzZSBpdHMgb3duIGNsaXBib2FyZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgVGV4dENvbXBvbmVudChNVGV4dCB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBkZWZhdWx0VmFsdWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gd3JhcHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHdyYXBXaWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaW5zZXRBbW91bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgU3R5bGVkVGV4dENsaXBib2FyZCBjbGlwYm9hcmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBzY3JvbGxzLAorICAgICAgICAgICAgICAgICAgICAgICAgIFNjcm9sbGVyIHNjcm9sbGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgIFBhbmVsRXZlbnRCcm9hZGNhc3RlciBsaXN0ZW5lcikgeworCisgICAgICAgIGZCZWhhdmlvciA9IG51bGw7CisKKyAgICAgICAgaWYgKHRleHQgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiVGV4dCBpcyBudWxsLiIpOworICAgICAgICB9CisKKyAgICAgICAgZlRleHQgPSB0ZXh0OworICAgICAgICBmRGVmYXVsdFZhbHVlcyA9IGRlZmF1bHRWYWx1ZXM7CisgICAgICAgIAorICAgICAgICBpZiAoY2xpcGJvYXJkID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNsaXBib2FyZCBpcyBudWxsLiIpOworICAgICAgICB9CisgICAgICAgIGZDbGlwYm9hcmQgPSBjbGlwYm9hcmQ7CisKKyAgICAgICAgZlNjcm9sbHMgPSBzY3JvbGxzOworCisgICAgICAgIGZTY3JvbGxlciA9IHNjcm9sbGVyOworCisgICAgICAgIGZEb2N1bWVudFZpZXcgPSBudWxsOworCisgICAgICAgIGZWaWV3V3JhcFdpZHRoID0gd3JhcFdpZHRoOworICAgICAgICBmVmlld1dyYXBzID0gd3JhcHM7CisgICAgICAgIGZWaWV3SW5zZXRBbW91bnQgPSBpbnNldEFtb3VudDsKKyAgICAgICAgZkxpc3RlbmVyID0gbGlzdGVuZXI7CisgICAgfQorICAgIAorICAgIEF0dHJpYnV0ZU1hcCBnZXREZWZhdWx0VmFsdWVzKCkgeworICAgIAorICAgICAgICByZXR1cm4gZkRlZmF1bHRWYWx1ZXM7CisgICAgfQorICAgIAorICAgIHZvaWQgc2V0SG9zdChDb21wb25lbnQgY29tcG9uZW50KSB7CisgICAgICAgIAorICAgICAgICBzdXBlci5zZXRIb3N0KGNvbXBvbmVudCk7CisgICAgICAgIAorICAgICAgICBjb21wb25lbnQuYWRkRm9jdXNMaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgY29tcG9uZW50LmFkZEtleUxpc3RlbmVyKHRoaXMpOworICAgICAgICBjb21wb25lbnQuYWRkTW91c2VMaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgY29tcG9uZW50LmFkZE1vdXNlTW90aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgIAorICAgICAgICBjb21wb25lbnQuYWRkQ29tcG9uZW50TGlzdGVuZXIobmV3IENvbXBvbmVudEFkYXB0ZXIoKSB7ICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNvbXBvbmVudFJlc2l6ZWQoQ29tcG9uZW50RXZlbnQgZSkgeworICAgICAgICAgICAgICAgIGlmIChmRG9jdW1lbnRWaWV3ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgZkRvY3VtZW50Vmlldy5ob3N0U2l6ZUNoYW5nZWQoKTsKKyAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG9TaG93KGZEb2N1bWVudFZpZXcuZ2V0RG9jdW1lbnRCb3VuZHMoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQVRleHRQYW5lbEltcGwncyB1c2Ugb25seSEKKyAgICAgKi8KKyAgICBDb21wb25lbnQgZ2V0SG9zdCgpIHsKKyAgICAKKyAgICAgICAgcmV0dXJuIGZIb3N0OworICAgIH0KKyAgICAKKyAgICAvLyBDcmVhdGUgZG9jdW1lbnQgdmlldyBoZXJlLiAgVGV4dENvbXBvbmVudCBpc24ndCBmdWxseSBjb25zdHJ1Y3RlZAorICAgIC8vIHVudGlsIHRoaXMgaXMgY2FsbGVkLgorICAgIC8vIFRoaXMgbXVzdCBiZSBjYWxsZWQgYnkgaG9zdCBjb21wb25lbnQhCisgICAgdm9pZCBhZGROb3RpZnkoKSB7CisKKyAgICAgICAgR3JhcGhpY3MgZyA9IGdldEdyYXBoaWNzKCk7CisgICAgICAgIGlmIChnID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiR3JhcGhpY3Mgc2hvdWxkIGJlIHZhbGlkIGhlcmUgYnV0IGlzbid0LiIpOworICAgICAgICB9CisKKyAgICAgICAgZkRvY3VtZW50VmlldyA9IG5ldyBEb2N1bWVudFZpZXcodGhpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZEZWZhdWx0VmFsdWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmVmlld1dyYXBzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmVmlld1dyYXBXaWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlZpZXdJbnNldEFtb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkxpc3RlbmVyKTsKKyAgICAgICAgZG9jdW1lbnRTaXplQ2hhbmdlZCgpOworICAgICAgICBmTGlzdGVuZXIudGV4dFN0YXRlQ2hhbmdlZChUZXh0UGFuZWxFdmVudC5GT1JNQVRfV0lEVEhfQ0hBTkdFRCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBSZWN0YW5nbGUgZ2V0Qm91bmRzKCkgeworICAgICAgICAKKyAgICAgICAgaWYgKGZIb3N0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmSG9zdC5nZXRCb3VuZHMoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgUmVjdGFuZ2xlKDAsIDAsIDAsIDApOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIEdyYXBoaWNzIGdldEdyYXBoaWNzKCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIChmSG9zdD09bnVsbCk/IG51bGwgOiBmSG9zdC5nZXRHcmFwaGljcygpOworICAgIH0KKyAgICAKKyAgICB2b2lkIHJlcXVlc3RGb2N1cygpIHsKKyAgICAgICAgCisgICAgICAgIGlmIChmSG9zdCAhPSBudWxsKSB7CisgICAgICAgICAgICBmSG9zdC5yZXF1ZXN0Rm9jdXMoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vICoqKiBCZWhhdmlvciBtYW5hZ2VtZW50ICoqKgorICAgIHB1YmxpYyBCZWhhdmlvciBnZXRCZWhhdmlvcigpIHsKKyAgICAgICAgcmV0dXJuIGZCZWhhdmlvcjsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRCZWhhdmlvcihCZWhhdmlvciBiKSB7CisgICAgICAgIGZCZWhhdmlvciA9IGI7CisgICAgfQorCisKKyAgICAvLyAqKiogRXZlbnRzIC0ganVzdCBmb3J3YXJkIHRvIGJlaGF2aW9yICoqKgorICAgIHB1YmxpYyB2b2lkIGZvY3VzR2FpbmVkKEZvY3VzRXZlbnQgZXZlbnQpIHsKKyAgICAgICAgaWYgKGZCZWhhdmlvciAhPSBudWxsKQorICAgICAgICAgICAgZkJlaGF2aW9yLmZvY3VzR2FpbmVkKGV2ZW50KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBmb2N1c0xvc3QoRm9jdXNFdmVudCBldmVudCkgeworICAgICAgICBpZiAoZkJlaGF2aW9yICE9IG51bGwpCisgICAgICAgICAgICBmQmVoYXZpb3IuZm9jdXNMb3N0KGV2ZW50KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBrZXlQcmVzc2VkKEtleUV2ZW50IGV2ZW50KSB7CisgICAgICAgIGlmIChmQmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIGZCZWhhdmlvci5rZXlQcmVzc2VkKGV2ZW50KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBrZXlUeXBlZChLZXlFdmVudCBldmVudCkgeworCisgICAgICAgIGlmIChmQmVoYXZpb3IgIT0gbnVsbCkgeworICAgICAgICAgICAgZkJlaGF2aW9yLmtleVR5cGVkKGV2ZW50KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGtleVJlbGVhc2VkKEtleUV2ZW50IGV2ZW50KSB7CisgICAgICAgIGlmIChmQmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIGZCZWhhdmlvci5rZXlSZWxlYXNlZChldmVudCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgbW91c2VDbGlja2VkKE1vdXNlRXZlbnQgZXZlbnQpIHsKKyAgICAgICAgcmV0dXJuOyAgLy8gbm8gYmVoYXZpb3IgbWV0aG9kIGZvciB0aGlzCisgICAgfQorCisgICAgcHVibGljIHZvaWQgbW91c2VEcmFnZ2VkKE1vdXNlRXZlbnQgZXZlbnQpIHsKKyAgICAgICAgaWYgKGZCZWhhdmlvciAhPSBudWxsKQorICAgICAgICAgICAgZkJlaGF2aW9yLm1vdXNlRHJhZ2dlZChldmVudCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgbW91c2VFbnRlcmVkKE1vdXNlRXZlbnQgZXZlbnQpICB7CisgICAgICAgIGlmIChmQmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIGZCZWhhdmlvci5tb3VzZUVudGVyZWQoZXZlbnQpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIG1vdXNlRXhpdGVkKE1vdXNlRXZlbnQgZXZlbnQpICB7CisgICAgICAgIGlmIChmQmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIGZCZWhhdmlvci5tb3VzZUV4aXRlZChldmVudCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgbW91c2VNb3ZlZChNb3VzZUV2ZW50IGV2ZW50KSB7CisgICAgICAgIGlmIChmQmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIGZCZWhhdmlvci5tb3VzZU1vdmVkKGV2ZW50KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBtb3VzZVByZXNzZWQoTW91c2VFdmVudCBldmVudCkgeworICAgICAgICBpZiAoZkJlaGF2aW9yICE9IG51bGwpCisgICAgICAgICAgICBmQmVoYXZpb3IubW91c2VQcmVzc2VkKGV2ZW50KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBtb3VzZVJlbGVhc2VkKE1vdXNlRXZlbnQgZXZlbnQpICB7CisgICAgICAgIGlmIChmQmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIGZCZWhhdmlvci5tb3VzZVJlbGVhc2VkKGV2ZW50KTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiB0ZXh0Q29udHJvbEV2ZW50T2NjdXJyZWQoQmVoYXZpb3IuRXZlbnRUeXBlIGV2ZW50LCBPYmplY3Qgd2hhdCkgeworCisgICAgICAgIGJvb2xlYW4gaGFuZGxlZCA9IGZhbHNlOworCisgICAgICAgIGlmIChmQmVoYXZpb3IgIT0gbnVsbCkgeworICAgICAgICAgICAgaGFuZGxlZCA9IGZCZWhhdmlvci50ZXh0Q29udHJvbEV2ZW50T2NjdXJyZWQoZXZlbnQsIHdoYXQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBoYW5kbGVkOworICAgIH0KKworCisgICAgLy8gKioqIFNjcm9sbCBtZXRob2RzIC0gY2FsbGVkIGJ5IEJlaGF2aW9ycworCisgICAgLy8gdmlld1N0YXJ0LCB2aWV3TGltaXQgaXMgdmlzaWJsZSBib3VuZHMgb2Ygd2luZG93CisgICAgLy8gdGFyZ2V0U3RhcnQsIHRhcmdldExpbWl0IGlzIHRoZSByZWdpb24gdG8gc2Nyb2xsIGludG8gdmlldworICAgIHByaXZhdGUgc3RhdGljIGludCBnZXRTY3JvbGxEaWZmZXJlbmNlKGludCB2aWV3U3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHZpZXdMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdGFyZ2V0U3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRhcmdldExpbWl0KSB7CisKKyAgICAgICAgaWYgKHZpZXdTdGFydCA8PSB0YXJnZXRTdGFydCkgeworICAgICAgICAgICAgaWYgKHZpZXdMaW1pdCA+PSB0YXJnZXRMaW1pdCkgeworICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1hdGgubWF4KHZpZXdTdGFydC10YXJnZXRTdGFydCwgdmlld0xpbWl0LXRhcmdldExpbWl0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmICh2aWV3TGltaXQgPiB0YXJnZXRMaW1pdCkgeworCisgICAgICAgICAgICByZXR1cm4gdmlld0xpbWl0IC0gdGFyZ2V0TGltaXQ7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgc2Nyb2xsVG9TaG93KFJlY3RhbmdsZSBzaG93UmVjdCkgeworCisgICAgICAgIGlmIChmRG9jdW1lbnRWaWV3ICE9IG51bGwpIHsKKyAgICAgICAgICAgIFJlY3RhbmdsZSBib3VuZHMgPSBnZXRCb3VuZHMoKTsKKworICAgICAgICAgICAgaW50IGR4ID0gZ2V0U2Nyb2xsRGlmZmVyZW5jZShzaG93UmVjdC54LCBzaG93UmVjdC54ICsgc2hvd1JlY3Qud2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdW5kcy54LCBib3VuZHMueCArIGJvdW5kcy53aWR0aCk7CisgICAgICAgICAgICBpbnQgZHkgPSBnZXRTY3JvbGxEaWZmZXJlbmNlKHNob3dSZWN0LnksIHNob3dSZWN0LnkgKyBzaG93UmVjdC5oZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdW5kcy55LCBib3VuZHMueSArIGJvdW5kcy5oZWlnaHQpOworCisgICAgICAgICAgICBzY3JvbGxTZWxmKGR4LCBkeSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIHNjcm9sbFRvU2hvdyhpbnQgc2hvd1gsIGludCBzaG93WSkgeworCisgICAgICAgIGlmIChmRG9jdW1lbnRWaWV3ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGludCBkeCA9IDAsIGR5ID0gMDsKKworICAgICAgICAgICAgUmVjdGFuZ2xlIGJvdW5kcyA9IGdldEJvdW5kcygpOworICAgICAgICAgICAgaWYgKHNob3dYIDwgYm91bmRzLngpIHsKKyAgICAgICAgICAgICAgICBkeCA9IHNob3dYIC0gYm91bmRzLng7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChzaG93WCA+IGJvdW5kcy54ICsgYm91bmRzLndpZHRoKSB7CisgICAgICAgICAgICAgICAgZHggPSBzaG93WCAtIChib3VuZHMueCArIGJvdW5kcy53aWR0aCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChzaG93WSA8IGJvdW5kcy55KSB7CisgICAgICAgICAgICAgICAgZHkgPSBzaG93WSAtIGJvdW5kcy55OworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoc2hvd1kgPiBib3VuZHMueSArIGJvdW5kcy5oZWlnaHQpIHsKKyAgICAgICAgICAgICAgICBkeSA9IHNob3dZIC0gKGJvdW5kcy55ICsgYm91bmRzLmhlaWdodCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHNjcm9sbFNlbGYoZHgsIGR5KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgaW50IHBpblNjcm9sbE9mZnNldChpbnQgZGVsdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb250ZW50U3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb250ZW50TGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdmlld1N0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdmlld0xlbmd0aCkgeworCisgICAgICAgIGlmIChkZWx0YSA+IDApIHsKKyAgICAgICAgICAgIGludCB2aWV3TGltaXQgPSB2aWV3U3RhcnQgKyB2aWV3TGVuZ3RoOworICAgICAgICAgICAgaW50IGNvbnRlbnRMaW1pdCA9IGNvbnRlbnRTdGFydCArIGNvbnRlbnRMZW5ndGg7CisKKyAgICAgICAgICAgIGlmICh2aWV3TGltaXQgKyBkZWx0YSA+IGNvbnRlbnRMaW1pdCkgeworICAgICAgICAgICAgICAgIGRlbHRhID0gTWF0aC5tYXgoMCwgY29udGVudExpbWl0LXZpZXdMaW1pdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpZiAodmlld1N0YXJ0ICsgZGVsdGEgPCBjb250ZW50U3RhcnQpIHsKKyAgICAgICAgICAgICAgICBkZWx0YSA9IE1hdGgubWluKDAsIGNvbnRlbnRTdGFydC12aWV3U3RhcnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGRlbHRhOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBzY3JvbGxTZWxmKGludCBkeCwgaW50IGR5KSB7CisKKyAgICAgICAgYm9vbGVhbiBzY3JvbGxlZCA9IHNjcm9sbEJ5KGR4LCBkeSk7CisKKyAgICAgICAgaWYgKHNjcm9sbGVkICYmIGZTY3JvbGxlciAhPSBudWxsKSB7CisgICAgICAgICAgICBSZWN0YW5nbGUgZG9jdW1lbnRCb3VuZHMgPSBmRG9jdW1lbnRWaWV3LmdldERvY3VtZW50Qm91bmRzKCk7CisgICAgICAgICAgICBmU2Nyb2xsZXIuc2V0UG9zaXRpb24oLWRvY3VtZW50Qm91bmRzLngsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLWRvY3VtZW50Qm91bmRzLnkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzeW5jaHJvbml6ZWQgYm9vbGVhbiBzY3JvbGxCeShpbnQgZHgsIGludCBkeSkgeworCisgICAgICAgIGJvb2xlYW4gc2Nyb2xsZWQgPSBmYWxzZTsKKworICAgICAgICBpZiAoZlNjcm9sbHMpIHsKKyAgICAgICAgICAgIFJlY3RhbmdsZSBkb2N1bWVudEJvdW5kcyA9IGZEb2N1bWVudFZpZXcuZ2V0RG9jdW1lbnRCb3VuZHMoKTsKKyAgICAgICAgICAgIFJlY3RhbmdsZSB2aWV3Qm91bmRzID0gZ2V0Qm91bmRzKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIHZhcmlhYmxlIG5vdCB1c2VkIGludCBvbGREeCA9IGR4OworICAgICAgICAgICAgZHggPSBwaW5TY3JvbGxPZmZzZXQoZHgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRCb3VuZHMueCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50Qm91bmRzLndpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JvdW5kcy54LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JvdW5kcy53aWR0aCk7CisgICAgICAgICAgICBkeSA9IHBpblNjcm9sbE9mZnNldChkeSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudEJvdW5kcy55LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRCb3VuZHMuaGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JvdW5kcy55LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JvdW5kcy5oZWlnaHQpOworCisgICAgICAgICAgICBpZiAoZHggIT0gMCB8fCBkeSAhPSAwKSB7CisgICAgICAgICAgICAgICAgc2Nyb2xsZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIGZEb2N1bWVudFZpZXcubW92ZUJ5KC1keCwgLWR5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBzY3JvbGxlZDsKKyAgICB9CisKKyAgICAvLyBpbXBsZW1lbnRhdGlvbiBvZiBTY3JvbGxlci5DbGllbnQgLSBjYWxsZWQgYnkgU2Nyb2xsZXIKKyAgICAvLyB0aGV5IGhhdmUgdG8gYmUgcHVibGljIHNpbmNlIHRoZXkncmUgaW4gYW4gaW50ZXJmYWNlCisgICAgLy8gbm8gb25lIGVsc2Ugc2hvdWxkIGNhbGwgdGhlc2UgbWV0aG9kcworICAgIHB1YmxpYyBSZWN0YW5nbGUgZ2V0U2Nyb2xsU2l6ZSgpIHsKKworICAgICAgICBpZiAoZkRvY3VtZW50VmlldyAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZkRvY3VtZW50Vmlldy5nZXRTY3JvbGxhYmxlQXJlYSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBSZWN0YW5nbGUoMCwgMCwgMCwgMCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzY3JvbGxUbyhpbnQgeCwgaW50IHkpIHsKKworICAgICAgICBpZiAoZkRvY3VtZW50VmlldyAhPSBudWxsKSB7CisgICAgICAgICAgICBzY3JvbGxCeSh4ICsgZkRvY3VtZW50Vmlldy5nZXREb2NYKCksIHkgKyBmRG9jdW1lbnRWaWV3LmdldERvY1koKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyAqKiogVGV4dCBhY2Nlc3MgKioqCisgICAgTUNvbnN0VGV4dCBnZXRUZXh0KCkgeworICAgICAgICByZXR1cm4gZlRleHQ7CisgICAgfQorCisgICAgTVRleHQgZ2V0TW9kaWZpYWJsZVRleHQoKSB7CisgICAgICAgIHJldHVybiBmVGV4dDsKKyAgICB9CisKKyAgICBTdHlsZWRUZXh0Q2xpcGJvYXJkIGdldENsaXBib2FyZCgpIHsKKyAgICAgICAgcmV0dXJuIGZDbGlwYm9hcmQ7CisgICAgfQorCisgICAgcHVibGljIHN5bmNocm9uaXplZCB2b2lkIHBhaW50KEdyYXBoaWNzIGcpIHsKKworICAgICAgICBpZiAoZkRvY3VtZW50VmlldyAhPSBudWxsKSB7CisgICAgICAgICAgICBmRG9jdW1lbnRWaWV3LnBhaW50KGcpOworICAgICAgICB9CisgICAgfQorCisKKyAgICAvLyAqKiogTWV0cmljIGluZm8gLSB1c2VkIGJ5IEJlaGF2aW9ycworICAgIFJlY3RhbmdsZSBnZXRDYXJldFJlY3QoVGV4dE9mZnNldCBvZmZzZXQpIHsKKworICAgICAgICBpZiAoZkRvY3VtZW50VmlldyAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZkRvY3VtZW50Vmlldy5nZXRDYXJldFJlY3Qob2Zmc2V0KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgUmVjdGFuZ2xlKDAsIDApOworICAgICAgICB9CisgICAgfQorCisgICAgVGV4dE9mZnNldCBwb2ludFRvVGV4dE9mZnNldChUZXh0T2Zmc2V0IHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IGFuY2hvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gaW5maW5pdGVNb2RlKSB7CisKKyAgICAgICAgaWYgKGZEb2N1bWVudFZpZXcgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZEb2N1bWVudFZpZXcucG9pbnRUb1RleHRPZmZzZXQocmVzdWx0LCB4LCB5LCBhbmNob3IsIGluZmluaXRlTW9kZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFRleHRPZmZzZXQoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vICoqKiBPdGhlciBzdHVmZiB1c2VkIGJ5IEJlaGF2aW9ycyAtIG1vc3RseSBmb3JtYXR0ZXIgZXhwb3J0cworICAgIGludCBsaW5lQ29udGFpbmluZyhUZXh0T2Zmc2V0IG9mZnNldCkgeworCisgICAgICAgIGlmIChmRG9jdW1lbnRWaWV3ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmRG9jdW1lbnRWaWV3LmxpbmVDb250YWluaW5nKG9mZnNldCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKworICAgIGludCBsaW5lUmFuZ2VMb3coaW50IGxpbmVOdW1iZXIpIHsKKworICAgICAgICBpZiAoZkRvY3VtZW50VmlldyAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZkRvY3VtZW50Vmlldy5saW5lUmFuZ2VMb3cobGluZU51bWJlcik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKworICAgIGludCBsaW5lUmFuZ2VMaW1pdChpbnQgbGluZU51bWJlcikgeworCisgICAgICAgIGlmIChmRG9jdW1lbnRWaWV3ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmRG9jdW1lbnRWaWV3LmxpbmVSYW5nZUxpbWl0KGxpbmVOdW1iZXIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIHN0b3BCYWNrZ3JvdW5kRm9ybWF0dGluZygpIHsKKworICAgICAgICBpZiAoZkRvY3VtZW50VmlldyAhPSBudWxsKSB7CisgICAgICAgICAgICBmRG9jdW1lbnRWaWV3LnN0b3BCYWNrZ3JvdW5kRm9ybWF0dGluZygpOworICAgICAgICB9CisgICAgfQorCisgICAgUmVjdGFuZ2xlIGdldEJvdW5kaW5nUmVjdChUZXh0T2Zmc2V0IG9mZnNldDEsIFRleHRPZmZzZXQgb2Zmc2V0MikgeworCisgICAgICAgIGlmIChmRG9jdW1lbnRWaWV3ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmRG9jdW1lbnRWaWV3LmdldEJvdW5kaW5nUmVjdChvZmZzZXQxLCBvZmZzZXQyKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgUmVjdGFuZ2xlKDAsIDAsIDAsIDApOworICAgICAgICB9CisgICAgfQorCisgICAgc3luY2hyb25pemVkIHZvaWQgcmVmb3JtYXRBbmREcmF3VGV4dChpbnQgcmVmb3JtYXRTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlZm9ybWF0TGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHNlbFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHNlbEVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVjdGFuZ2xlIGFkZGl0aW9uYWxVcGRhdGVSZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvciBoaWxpdGVDb2xvcikgeworCisgICAgICAgIGlmIChmRG9jdW1lbnRWaWV3ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZEb2N1bWVudFZpZXcucmVmb3JtYXRBbmREcmF3VGV4dChyZWZvcm1hdFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZm9ybWF0TGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbEVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsVXBkYXRlUmVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWxpdGVDb2xvcik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBUZXh0T2Zmc2V0IGZpbmROZXdJbnNlcnRpb25PZmZzZXQoVGV4dE9mZnNldCByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgaW5pdGlhbE9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBwcmV2aW91c09mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnQgZGlyZWN0aW9uKSB7CisKKyAgICAgICAgaWYgKGZEb2N1bWVudFZpZXcgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZEb2N1bWVudFZpZXcuZmluZE5ld0luc2VydGlvbk9mZnNldChyZXN1bHQsIGluaXRpYWxPZmZzZXQsIHByZXZpb3VzT2Zmc2V0LCBkaXJlY3Rpb24pOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBUZXh0T2Zmc2V0KGluaXRpYWxPZmZzZXQpOworICAgICAgICB9CisgICAgfQorCisgICAgc3luY2hyb25pemVkIHZvaWQgZHJhd1RleHQoR3JhcGhpY3MgZywKKyAgICAgICAgICAgICAgICAgIFJlY3RhbmdsZSBkYW1hZ2VkUmVjdCwKKyAgICAgICAgICAgICAgICAgIGJvb2xlYW4gc2VsZWN0aW9uVmlzaWJsZSwKKyAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsU3RhcnQsCisgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHNlbEVuZCwKKyAgICAgICAgICAgICAgICAgIENvbG9yIGhpbGl0ZUNvbG9yKSB7CisKKyAgICAgICAgaWYgKGZEb2N1bWVudFZpZXcgIT0gbnVsbCkgeworICAgICAgICAgICAgZkRvY3VtZW50Vmlldy5kcmF3VGV4dChnLCBkYW1hZ2VkUmVjdCwgc2VsZWN0aW9uVmlzaWJsZSwgc2VsU3RhcnQsIHNlbEVuZCwgaGlsaXRlQ29sb3IpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGRvY3VtZW50U2l6ZUNoYW5nZWQoKSB7CisKKyAgICAgICAgaWYgKGZTY3JvbGxlciAhPSBudWxsKSB7CisgICAgICAgICAgICBmU2Nyb2xsZXIuY2xpZW50U2Nyb2xsU2l6ZUNoYW5nZWQoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGludCBnZXRGb3JtYXRXaWR0aCgpIHsKKworICAgICAgICBpZiAoZkRvY3VtZW50VmlldyAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZkRvY3VtZW50Vmlldy5nZXRGb3JtYXRXaWR0aCgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgcGFyYWdyYXBoIGF0IHRoZSBnaXZlbiBvZmZzZXQgaXMgbGVmdC10by1yaWdodC4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IGFuIG9mZnNldCBpbiB0aGUgdGV4dAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgcGFyYWdyYXBoIGF0IHRoZSBnaXZlbiBvZmZzZXQgaXMgbGVmdC10by1yaWdodAorICAgICAqLworICAgIGJvb2xlYW4gcGFyYWdyYXBoSXNMZWZ0VG9SaWdodChpbnQgb2Zmc2V0KSB7CisgICAgICAgIAorICAgICAgICBpZiAoZkRvY3VtZW50VmlldyAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZkRvY3VtZW50Vmlldy5wYXJhZ3JhcGhJc0xlZnRUb1JpZ2h0KG9mZnNldCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBEb2N1bWVudFZpZXcgeworCisgICAgICAgIHByaXZhdGUgVGV4dENvbXBvbmVudCBmSG9zdDsKKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIGZXcmFwczsKKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIGZXcmFwVG9XaW5kb3dXaWR0aDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgZkluc2V0QW1vdW50OworICAgICAgICBwcml2YXRlIFBhbmVsRXZlbnRCcm9hZGNhc3RlciBmTGlzdGVuZXI7CisKKyAgICAgICAgLy8gZkJvdW5kcyBpcyB0aGUgdG90YWwgc2Nyb2xsYWJsZSBhcmVhIG9mIHRoZSBkb2N1bWVudCAoaW5jbHVkaW5nIGluc2V0cykKKyAgICAgICAgcHJpdmF0ZSBSZWN0YW5nbGUgZkJvdW5kcyA9IG5ldyBSZWN0YW5nbGUoKTsKKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgUG9pbnQgZk9yaWdpbjsKKworICAgICAgICBwcml2YXRlIE1Gb3JtYXR0ZXIgZkZvcm1hdHRlcjsKKworICAgICAgICBwcml2YXRlIE9mZnNjcmVlbkJ1ZmZlckNhY2hlIGZCdWZmZXJDYWNoZTsKKworICAgICAgICAvLyBOb3RlLCB3aGVuIHRoaXMgaXMgdHJ1ZSB0aGUgY2FyZXQgd29uJ3QgYmxpbmsgaW4gMS4xLiAgTG9va3MgbGlrZSBhbiBBV1QgYnVnLgorICAgICAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGZOb09mZnNjcmVlbkJ1ZmZlciA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQm9vbGVhbi5nZXRCb29sZWFuKCJUZXh0Q29tcG9uZW50Lk5vT2Zmc2NyZWVuQnVmZmVyIik7CisKKyAgICAgICAgLy8gQW1vdW50IGJ5IHdoaWNoIHRvIHJlZHVjZSB0aGUgZm9ybWF0IHdpZHRoIHRvIGFsbG93IGZvciByaWdodC1hbGlnbmVkIGNhcmV0cy4KKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBpbnQgQ0FSRVRfU0xPUCA9IDE7CisKKyAgICAgICAgRG9jdW1lbnRWaWV3KFRleHRDb21wb25lbnQgaG9zdCwKKyAgICAgICAgICAgICAgICAgICAgIE1Db25zdFRleHQgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBkZWZhdWx0VmFsdWVzLAorICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB3cmFwcywKKyAgICAgICAgICAgICAgICAgICAgIGludCB3cmFwV2lkdGgsCisgICAgICAgICAgICAgICAgICAgICBpbnQgaW5zZXRBbW91bnQsCisgICAgICAgICAgICAgICAgICAgICBQYW5lbEV2ZW50QnJvYWRjYXN0ZXIgbGlzdGVuZXIpIHsKKworICAgICAgICAgICAgZkhvc3QgPSBob3N0OworICAgICAgICAgICAgZldyYXBUb1dpbmRvd1dpZHRoID0gd3JhcFdpZHRoID09IFdJTkRPV19XSURUSDsKKyAgICAgICAgICAgIGZJbnNldEFtb3VudCA9IGluc2V0QW1vdW50OworICAgICAgICAgICAgZkxpc3RlbmVyID0gbGlzdGVuZXI7CisKKyAgICAgICAgICAgIGluaXRGb3JtYXR0ZXJBbmRTaXplKHRleHQsIGRlZmF1bHRWYWx1ZXMsIHdyYXBzLCB3cmFwV2lkdGgpOworCisgICAgICAgICAgICBmQnVmZmVyQ2FjaGUgPSBuZXcgT2Zmc2NyZWVuQnVmZmVyQ2FjaGUoaG9zdC5mSG9zdCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBOb3RlOiB0aGlzIGNvbXB1dGVzIHRoZSBib3VuZHMgcmVjdGFuZ2xlIHJlbGF0aXZlIHRvIGZPcmlnaW4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgdm9pZCBjYWxjQm91bmRzUmVjdCgpIHsKKyAgICAgICAgCisgICAgICAgICAgICBmaW5hbCBpbnQgaW5zZXREaW0gPSAyICogZkluc2V0QW1vdW50OworCisgICAgICAgICAgICBmaW5hbCBpbnQgbWluWCA9IGZGb3JtYXR0ZXIubWluWCgpOworICAgICAgICAgICAgZmluYWwgaW50IG1pblkgPSBmRm9ybWF0dGVyLm1pblkoKTsKKworICAgICAgICAgICAgZkJvdW5kcy5zZXRCb3VuZHMoZk9yaWdpbi54ICsgbWluWCAtIGZJbnNldEFtb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZPcmlnaW4ueSArIG1pblkgLSBmSW5zZXRBbW91bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmRm9ybWF0dGVyLm1heFgoKSAtIG1pblggKyBpbnNldERpbSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmRm9ybWF0dGVyLm1heFkoKSAtIG1pblkgKyBpbnNldERpbSk7CisgICAgICAgICAgICAvL2lmIChtaW5YIDw9IDApIHsKKyAgICAgICAgICAgIC8vICAgIFN5c3RlbS5vdXQucHJpbnRsbigiY2FsY0JvdW5kc1JlY3Q6IG1pblg9IittaW5YKworICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICI7IGJvdW5kcy54PSIrZkJvdW5kcy54KyI7IHdpZHRoPSIrZkJvdW5kcy53aWR0aCk7CisgICAgICAgICAgICAvL30KKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgdm9pZCBpbml0Rm9ybWF0dGVyQW5kU2l6ZShNQ29uc3RUZXh0IHRleHQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwIGRlZmF1bHRWYWx1ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHdyYXBzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHdyYXBXaWR0aCkgeworCisgICAgICAgICAgICBSZWN0YW5nbGUgaG9zdEJvdW5kcyA9IGZIb3N0LmdldEJvdW5kcygpOworICAgICAgICAgICAgaW50IGZvcm1hdFdpZHRoOworCisgICAgICAgICAgICBpZiAoIXdyYXBzIHx8IGZXcmFwVG9XaW5kb3dXaWR0aCkgeworICAgICAgICAgICAgICAgIGZvcm1hdFdpZHRoID0gaG9zdEJvdW5kcy53aWR0aCAtIDIgKiBmSW5zZXRBbW91bnQ7CisgICAgICAgICAgICAgICAgaWYgKGZvcm1hdFdpZHRoIDw9IENBUkVUX1NMT1ApIHsKKyAgICAgICAgICAgICAgICAgICAgZm9ybWF0V2lkdGggPSBDQVJFVF9TTE9QKzE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgZm9ybWF0V2lkdGggPSB3cmFwV2lkdGg7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZGb3JtYXR0ZXIgPSBNRm9ybWF0dGVyLmNyZWF0ZUZvcm1hdHRlcih0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0V2lkdGgtQ0FSRVRfU0xPUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cmFwcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmSG9zdC5nZXRHcmFwaGljcygpKTsKKworICAgICAgICAgICAgZkZvcm1hdHRlci5mb3JtYXRUb0hlaWdodChob3N0Qm91bmRzLmhlaWdodCAqIDIpOworICAgICAgICAgICAgZk9yaWdpbiA9IG5ldyBQb2ludChmSW5zZXRBbW91bnQsIGZJbnNldEFtb3VudCk7CisgICAgICAgICAgICBjYWxjQm91bmRzUmVjdCgpOworICAgICAgICB9CisKKyAgICAgICAgLy8gbm90aWZpY2F0aW9uIG1ldGhvZCBjYWxsZWQgYnkgVGV4dENvbXBvbmVudAorICAgICAgICB2b2lkIGhvc3RTaXplQ2hhbmdlZCgpIHsKKworICAgICAgICAgICAgZmluYWwgYm9vbGVhbiB3cmFwID0gZkZvcm1hdHRlci53cmFwKCk7CisgICAgICAgICAgICBpZiAoZldyYXBUb1dpbmRvd1dpZHRoIHx8ICF3cmFwKSB7CisKKyAgICAgICAgICAgICAgICBSZWN0YW5nbGUgaG9zdEJvdW5kcyA9IGZIb3N0LmdldEJvdW5kcygpOworICAgICAgICAgICAgICAgIC8vIHZhcmlhYmxlIG5vdCB1c2VkIGZpbmFsIGludCBpbnNldERpbSA9IDIgKiBmSW5zZXRBbW91bnQ7CisKKyAgICAgICAgICAgICAgICBpbnQgZm9ybWF0V2lkdGggPSBob3N0Qm91bmRzLndpZHRoIC0gMipmSW5zZXRBbW91bnQ7CisgICAgICAgICAgICAgICAgaWYgKGZvcm1hdFdpZHRoIDw9IENBUkVUX1NMT1ApIHsKKyAgICAgICAgICAgICAgICAgICAgZm9ybWF0V2lkdGggPSBDQVJFVF9TTE9QKzE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZGb3JtYXR0ZXIuc2V0TGluZUJvdW5kKGZvcm1hdFdpZHRoLUNBUkVUX1NMT1ApOworCisgICAgICAgICAgICAgICAgZkZvcm1hdHRlci5mb3JtYXRUb0hlaWdodChob3N0Qm91bmRzLnkgKyAoaG9zdEJvdW5kcy5oZWlnaHQqMikgLSBmT3JpZ2luLnkpOworCisgICAgICAgICAgICAgICAgY2FsY0JvdW5kc1JlY3QoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiV2luZG93IGJvdW5kcz0iK2hvc3RCb3VuZHMrIjsgZG9jdW1lbnQgYm91bmRzPSIrZkJvdW5kcyk7CisKKyAgICAgICAgICAgICAgICBmSG9zdC5kb2N1bWVudFNpemVDaGFuZ2VkKCk7CisgICAgICAgICAgICAgICAgZkxpc3RlbmVyLnRleHRTdGF0ZUNoYW5nZWQoVGV4dFBhbmVsRXZlbnQuRk9STUFUX1dJRFRIX0NIQU5HRUQpOworICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJmb3JtYXRXaWR0aD0iK2Zvcm1hdFdpZHRoKTsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiZG9jdW1lbnQgYm91bmRzPSIrZkJvdW5kcyk7CisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vZHVtcFdpZHRoSW5mbygpOworICAgICAgICB9CisKKyAgICAgICAgaW50IGdldEZvcm1hdFdpZHRoKCkgeworCisgICAgICAgICAgICByZXR1cm4gZkZvcm1hdHRlci5saW5lQm91bmQoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgYm9vbGVhbiBwYXJhZ3JhcGhJc0xlZnRUb1JpZ2h0KGludCBvZmZzZXQpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IGxpbmVOdW1iZXIgPSBmRm9ybWF0dGVyLmxpbmVDb250YWluaW5nKG9mZnNldCk7CisgICAgICAgICAgICByZXR1cm4gZkZvcm1hdHRlci5saW5lSXNMZWZ0VG9SaWdodChsaW5lTnVtYmVyKTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgdm9pZCB0ZXh0U2l6ZU1pZ2h0SGF2ZUNoYW5nZWQoKSB7CisKKyAgICAgICAgICAgIGJvb2xlYW4gY2hhbmdlZCA9IGZhbHNlOworICAgICAgICAgICAgZmluYWwgaW50IGluc2V0RGltID0gMiAqIGZJbnNldEFtb3VudDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IHRleHRIZWlnaHQgPSBmRm9ybWF0dGVyLm1heFkoKSAtIGZGb3JtYXR0ZXIubWluWSgpICsgaW5zZXREaW07CisgICAgICAgICAgICBpZiAodGV4dEhlaWdodCAhPSBmQm91bmRzLmhlaWdodCkgeworICAgICAgICAgICAgICAgIGZCb3VuZHMuaGVpZ2h0ID0gdGV4dEhlaWdodDsKKyAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCFmRm9ybWF0dGVyLndyYXAoKSkgeworICAgICAgICAgICAgICAgIGludCB0ZXh0V2lkdGggPSBmRm9ybWF0dGVyLm1heFgoKSAtIGZGb3JtYXR0ZXIubWluWCgpICsgaW5zZXREaW07CisgICAgICAgICAgICAgICAgaWYgKHRleHRXaWR0aCAhPSBmQm91bmRzLndpZHRoKSB7CisgICAgICAgICAgICAgICAgICAgIGZCb3VuZHMud2lkdGggPSB0ZXh0V2lkdGg7CisgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGNoYW5nZWQpIHsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiVGV4dCBzaXplIGNoYW5nZWQuICBmQm91bmRzOiAiICsgZkJvdW5kcyk7CisgICAgICAgICAgICAgICAgY2FsY0JvdW5kc1JlY3QoKTsKKyAgICAgICAgICAgICAgICBmSG9zdC5kb2N1bWVudFNpemVDaGFuZ2VkKCk7CisgICAgICAgICAgICAgICAgZkhvc3Quc2Nyb2xsVG9TaG93KGdldERvY3VtZW50Qm91bmRzKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSB2b2lkIGRvRHJhd1RleHQoR3JhcGhpY3MgZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVjdGFuZ2xlIGRyYXdSZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHNlbGVjdGlvblZpc2libGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsRW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvciBoaWxpdGVDb2xvcikgeworCisgICAgICAgICAgICBDb2xvciBvbGRDb2xvciA9IGcuZ2V0Q29sb3IoKTsKKyAgICAgICAgICAgIGcuc2V0Q29sb3IoZkhvc3QuZ2V0SG9zdCgpLmdldEJhY2tncm91bmQoKSk7CisgICAgICAgICAgICBnLmZpbGxSZWN0KGRyYXdSZWN0LngsIGRyYXdSZWN0LnksIGRyYXdSZWN0LndpZHRoLCBkcmF3UmVjdC5oZWlnaHQpOworICAgICAgICAgICAgZy5zZXRDb2xvcihvbGRDb2xvcik7CisKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgZy5jbGVhclJlY3QoZHJhd1JlY3QueCwgZHJhd1JlY3QueSwgZHJhd1JlY3Qud2lkdGgsIGRyYXdSZWN0LmhlaWdodCk7CisKKyAgICAgICAgICAgIGlmIChzZWxlY3Rpb25WaXNpYmxlKSB7CisgICAgICAgICAgICAgICAgZkZvcm1hdHRlci5kcmF3KGcsIGRyYXdSZWN0LCBmT3JpZ2luLCBzZWxTdGFydCwgc2VsRW5kLCBoaWxpdGVDb2xvcik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBmRm9ybWF0dGVyLmRyYXcoZywgZHJhd1JlY3QsIGZPcmlnaW4sIG51bGwsIG51bGwsIG51bGwpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoc2VsU3RhcnQgIT0gbnVsbCAmJiBzZWxTdGFydC5lcXVhbHMoc2VsRW5kKSAmJiBzZWxlY3Rpb25WaXNpYmxlKSB7CisKKyAgICAgICAgICAgICAgICBmRm9ybWF0dGVyLmRyYXdDYXJldChnLCBzZWxTdGFydCwgZk9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNUUk9OR19DQVJFVF9DT0xPUiwgV0VBS19DQVJFVF9DT0xPUik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB2b2lkIGRyYXdUZXh0KEdyYXBoaWNzIGcsCisgICAgICAgICAgICAgICAgICAgICAgUmVjdGFuZ2xlIGRyYXdSZWN0LAorICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gc2VsZWN0aW9uVmlzaWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHNlbFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsRW5kLAorICAgICAgICAgICAgICAgICAgICAgIENvbG9yIGhpbGl0ZUNvbG9yKSB7CisKKyAgICAgICAgICAgIGlmIChnICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBkcmF3UmVjdCA9IGRyYXdSZWN0LmludGVyc2VjdGlvbihmSG9zdC5nZXRCb3VuZHMoKSk7CisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oImRyYXdUZXh0OmRyYXdSZWN0OiAiICsgZHJhd1JlY3QpOworICAgICAgICAgICAgICAgIGcuY2xpcFJlY3QoZHJhd1JlY3QueCwgZHJhd1JlY3QueSwgZHJhd1JlY3Qud2lkdGgsIGRyYXdSZWN0LmhlaWdodCk7CisgICAgICAgICAgICAgICAgaWYgKGZOb09mZnNjcmVlbkJ1ZmZlcikgeworICAgICAgICAgICAgICAgICAgICBkb0RyYXdUZXh0KGcsIGRyYXdSZWN0LCBzZWxlY3Rpb25WaXNpYmxlLCBzZWxTdGFydCwgc2VsRW5kLCBoaWxpdGVDb2xvcik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBJbWFnZSBvZmZzY3JlZW5CdWZmZXIgPSBmQnVmZmVyQ2FjaGUuZ2V0QnVmZmVyKGRyYXdSZWN0LndpZHRoLCBkcmF3UmVjdC5oZWlnaHQpOworICAgICAgICAgICAgICAgICAgICBHcmFwaGljcyBvZmZzY3JlZW5HcmFwaGljcyA9IG9mZnNjcmVlbkJ1ZmZlci5nZXRHcmFwaGljcygpOworICAgICAgICAgICAgICAgICAgICBvZmZzY3JlZW5HcmFwaGljcy50cmFuc2xhdGUoLWRyYXdSZWN0LngsIC1kcmF3UmVjdC55KTsKKyAgICAKKyAgICAgICAgICAgICAgICAgICAgZG9EcmF3VGV4dChvZmZzY3JlZW5HcmFwaGljcywgZHJhd1JlY3QsIHNlbGVjdGlvblZpc2libGUsIHNlbFN0YXJ0LCBzZWxFbmQsIGhpbGl0ZUNvbG9yKTsKKyAgICAKKyAgICAgICAgICAgICAgICAgICAgZy5kcmF3SW1hZ2Uob2Zmc2NyZWVuQnVmZmVyLCBkcmF3UmVjdC54LCBkcmF3UmVjdC55LCBmSG9zdC5mSG9zdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgdGV4dFNpemVNaWdodEhhdmVDaGFuZ2VkKCk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIHJlZm9ybWF0QW5kRHJhd1RleHQoaW50IHJlZm9ybWF0U3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVmb3JtYXRMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHNlbFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxFbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWN0YW5nbGUgYWRkaXRpb25hbFVwZGF0ZVJlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvciBoaWxpdGVDb2xvcikgeworCisgICAgICAgICAgICBSZWN0YW5nbGUgdmlzaWJsZUJvdW5kcyA9IGZIb3N0LmdldEJvdW5kcygpOworICAgICAgICAgICAgUmVjdGFuZ2xlIHJlZHJhd1JlY3QgPSBmRm9ybWF0dGVyLnVwZGF0ZUZvcm1hdChyZWZvcm1hdFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZvcm1hdExlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlzaWJsZUJvdW5kcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZk9yaWdpbik7CisgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiWzFdIHJlZHJhd1JlY3Q6ICIgKyByZWRyYXdSZWN0KTsKKworICAgICAgICAgICAgaWYgKGFkZGl0aW9uYWxVcGRhdGVSZWN0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZWRyYXdSZWN0LmFkZChhZGRpdGlvbmFsVXBkYXRlUmVjdCk7CisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIlsyXSByZWRyYXdSZWN0OiAiICsgcmVkcmF3UmVjdCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJvb2xlYW4gaGF2ZVNlbGVjdGlvbjsKKworICAgICAgICAgICAgaWYgKHNlbFN0YXJ0ICE9IG51bGwgJiYgc2VsRW5kICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBoYXZlU2VsZWN0aW9uID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICByZWRyYXdSZWN0LmFkZChmRm9ybWF0dGVyLmdldEJvdW5kaW5nUmVjdChzZWxTdGFydCwgc2VsRW5kLCBmT3JpZ2luLCBmRm9ybWF0dGVyLkxPT1NFKSk7CisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIlszXSByZWRyYXdSZWN0OiAiICsgcmVkcmF3UmVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBoYXZlU2VsZWN0aW9uID0gZmFsc2U7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGRyYXdUZXh0KGZIb3N0LmdldEdyYXBoaWNzKCksIHJlZHJhd1JlY3QsIGhhdmVTZWxlY3Rpb24sIHNlbFN0YXJ0LCBzZWxFbmQsIGhpbGl0ZUNvbG9yKTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgdm9pZCBsZXRCZWhhdmlvckRyYXcoR3JhcGhpY3MgZywgUmVjdGFuZ2xlIGRyYXdSZWN0KSB7CisKKyAgICAgICAgICAgIGJvb2xlYW4gcmVzdWx0ID0gZmFsc2U7CisKKyAgICAgICAgICAgIGlmIChmSG9zdC5mQmVoYXZpb3IgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZIb3N0LmZCZWhhdmlvci5wYWludChnLCBkcmF3UmVjdCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgICAgICAgICAgZHJhd1RleHQoZywgZHJhd1JlY3QsIGZhbHNlLCBudWxsLCBudWxsLCBudWxsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgbW92ZUJ5KGludCBkeCwgaW50IGR5KSB7CisKKyAgICAgICAgICAgIFJlY3RhbmdsZSB2aXNpYmxlQm91bmRzID0gZkhvc3QuZ2V0Qm91bmRzKCk7CisgICAgICAgICAgICBHcmFwaGljcyBnID0gZkhvc3QuZ2V0R3JhcGhpY3MoKTsKKworICAgICAgICAgICAgZkJvdW5kcy54ICs9IGR4OworICAgICAgICAgICAgZkJvdW5kcy55ICs9IGR5OworICAgICAgICAgICAgZk9yaWdpbi54ICs9IGR4OworICAgICAgICAgICAgZk9yaWdpbi55ICs9IGR5OworCisgICAgICAgICAgICBSZWN0YW5nbGUgcmVmcmVzaFJlY3QgPSBuZXcgUmVjdGFuZ2xlKHZpc2libGVCb3VuZHMpOworCisgICAgICAgICAgICBpZiAoZHggPT0gMCkgeworICAgICAgICAgICAgICAgIGlmIChnICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgZy5jb3B5QXJlYSh2aXNpYmxlQm91bmRzLngsIHZpc2libGVCb3VuZHMueSwgdmlzaWJsZUJvdW5kcy53aWR0aCwgdmlzaWJsZUJvdW5kcy5oZWlnaHQsIGR4LCBkeSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChkeSA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFJlY3QueSA9IHZpc2libGVCb3VuZHMueSArIHZpc2libGVCb3VuZHMuaGVpZ2h0ICsgZHk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJlZnJlc2hSZWN0LmhlaWdodCA9IE1hdGguYWJzKGR5KTsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigicmVmcmVzaFJlY3Q9IiArIHJlZnJlc2hSZWN0KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbGV0QmVoYXZpb3JEcmF3KGcsIHJlZnJlc2hSZWN0KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBSZWN0YW5nbGUgZ2V0SW5zZXRCb3VuZHMoKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBpbnNldERpbSA9IDIgKiBmSW5zZXRBbW91bnQ7CisgICAgICAgICAgICByZXR1cm4gbmV3IFJlY3RhbmdsZShmQm91bmRzLngtZkluc2V0QW1vdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkJvdW5kcy55LWZJbnNldEFtb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZCb3VuZHMud2lkdGgraW5zZXREaW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmQm91bmRzLmhlaWdodCtpbnNldERpbSk7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIHBhaW50KEdyYXBoaWNzIGcpIHsKKworICAgICAgICAgICAgUmVjdGFuZ2xlIGhvc3RCb3VuZHMgPSBmSG9zdC5nZXRCb3VuZHMoKTsKKyAgICAgICAgICAgIFJlY3RhbmdsZSB0ZXh0UmVmcmVzaFJlY3QgPSBob3N0Qm91bmRzLmludGVyc2VjdGlvbihnZXRJbnNldEJvdW5kcygpKTsKKyAgICAgICAgICAgIGxldEJlaGF2aW9yRHJhdyhnLCB0ZXh0UmVmcmVzaFJlY3QpOworICAgICAgICB9CisKKyAgICAgICAgUmVjdGFuZ2xlIGdldENhcmV0UmVjdChUZXh0T2Zmc2V0IG9mZnNldCkgeworCisgICAgICAgICAgICByZXR1cm4gZkZvcm1hdHRlci5nZXRDYXJldFJlY3Qob2Zmc2V0LCBmT3JpZ2luKTsKKyAgICAgICAgfQorCisgICAgICAgIFRleHRPZmZzZXQgcG9pbnRUb1RleHRPZmZzZXQoVGV4dE9mZnNldCByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBhbmNob3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpbmZpbml0ZU1vZGUpIHsKKworICAgICAgICAgICAgcmV0dXJuIGZGb3JtYXR0ZXIucG9pbnRUb1RleHRPZmZzZXQocmVzdWx0LCB4LCB5LCBmT3JpZ2luLCBhbmNob3IsIGluZmluaXRlTW9kZSk7CisgICAgICAgIH0KKworICAgICAgICBSZWN0YW5nbGUgZ2V0U2Nyb2xsYWJsZUFyZWEoKSB7CisKKyAgICAgICAgICAgIFJlY3RhbmdsZSBhcmVhID0gbmV3IFJlY3RhbmdsZShmQm91bmRzKTsKKyAgICAgICAgICAgIGFyZWEueCArPSBmSW5zZXRBbW91bnQgLSBmT3JpZ2luLng7CisgICAgICAgICAgICBhcmVhLnkgKz0gZkluc2V0QW1vdW50IC0gZk9yaWdpbi55OworICAgICAgICAgICAgcmV0dXJuIGFyZWE7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogRG9lc24ndCBjbG9uZSBzbyBUZXh0Q29tcG9uZW50IG5lZWRzIHRvIGJlIG5pY2UuICBUZXh0Q29tcG9uZW50CisgICAgICAgICAqIGlzIHRoZSBvbmx5IGNsYXNzIHdoaWNoIGNhbiBhY2Nlc3MgdGhpcyBhbnl3YXkuCisgICAgICAgICAqLworICAgICAgICBSZWN0YW5nbGUgZ2V0RG9jdW1lbnRCb3VuZHMoKSB7CisKKyAgICAgICAgICAgIHJldHVybiBmQm91bmRzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgZ2V0RG9jWCgpIHsKKyAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gZk9yaWdpbi54IC0gZkluc2V0QW1vdW50OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgZ2V0RG9jWSgpIHsKKyAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gZk9yaWdpbi55IC0gZkluc2V0QW1vdW50OworICAgICAgICB9CisKKyAgICAgICAgaW50IGxpbmVDb250YWluaW5nKFRleHRPZmZzZXQgb2Zmc2V0KSB7CisKKyAgICAgICAgICAgIHJldHVybiBmRm9ybWF0dGVyLmxpbmVDb250YWluaW5nKG9mZnNldCk7CisgICAgICAgIH0KKworICAgICAgICBpbnQgbGluZVJhbmdlTG93KGludCBsaW5lTnVtYmVyKSB7CisKKyAgICAgICAgICAgIHJldHVybiBmRm9ybWF0dGVyLmxpbmVSYW5nZUxvdyhsaW5lTnVtYmVyKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBsaW5lUmFuZ2VMaW1pdChpbnQgbGluZU51bWJlcikgeworCisgICAgICAgICAgICByZXR1cm4gZkZvcm1hdHRlci5saW5lUmFuZ2VMaW1pdChsaW5lTnVtYmVyKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgc3RvcEJhY2tncm91bmRGb3JtYXR0aW5nKCkgeworCisgICAgICAgICAgICBmRm9ybWF0dGVyLnN0b3BCYWNrZ3JvdW5kRm9ybWF0dGluZygpOworICAgICAgICB9CisKKyAgICAgICAgUmVjdGFuZ2xlIGdldEJvdW5kaW5nUmVjdChUZXh0T2Zmc2V0IG9mZnNldDEsIFRleHRPZmZzZXQgb2Zmc2V0MikgeworCisgICAgICAgICAgICBSZWN0YW5nbGUgciA9IGZGb3JtYXR0ZXIuZ2V0Qm91bmRpbmdSZWN0KG9mZnNldDEsIG9mZnNldDIsIGZPcmlnaW4sIGZGb3JtYXR0ZXIuVElHSFQpOworICAgICAgICAgICAgLy9yLndpZHRoICs9IENBUkVUX1NMT1A7CisgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigib2Zmc2V0MT0iK29mZnNldDErIjsgb2Zmc2V0Mj0iK29mZnNldDIpOworICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oImJvdW5kcyB3aWR0aD0iK3Iud2lkdGgrIjsgaG9zdCB3aWR0aD0iKyhmSG9zdC5nZXRCb3VuZHMoKS53aWR0aCkpOworICAgICAgICAgICAgcmV0dXJuIHI7CisgICAgICAgIH0KKworICAgICAgICBUZXh0T2Zmc2V0IGZpbmROZXdJbnNlcnRpb25PZmZzZXQoVGV4dE9mZnNldCByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IGluaXRpYWxPZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHByZXZpb3VzT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnQgZGlyZWN0aW9uKSB7CisKKyAgICAgICAgICAgIHJldHVybiBmRm9ybWF0dGVyLmZpbmROZXdJbnNlcnRpb25PZmZzZXQoCisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQsIGluaXRpYWxPZmZzZXQsIHByZXZpb3VzT2Zmc2V0LCBkaXJlY3Rpb24pOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRFZGl0QmVoYXZpb3IuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0RWRpdEJlaGF2aW9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjRhYTAyZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0RWRpdEJlaGF2aW9yLmphdmEKQEAgLTAsMCArMSw0ODQgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IFRleHRFZGl0QmVoYXZpb3IuamF2YSx2ICQgJFJldmlzaW9uOiAxLjIgJCAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNjo0OCAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworaW1wb3J0IGphdmEuYXd0LlJlY3RhbmdsZTsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LktleUV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lk1vdXNlRXZlbnQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTVRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0Zm9ybWF0LlRleHRPZmZzZXQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlTW9kaWZpZXI7CisKKy8vIEFsbCBjaGFuZ2VzIHRvIHRoZSB0ZXh0IHNob3VsZCBoYXBwZW4gaW4gdGhpcyBjbGFzcywgb3IgaW4KKy8vIGl0cyBUeXBpbmdJbnRlcmFjdG9yLgorCitjbGFzcyBUZXh0RWRpdEJlaGF2aW9yIGV4dGVuZHMgQmVoYXZpb3IgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIFRleHRDb21wb25lbnQgZlRleHRDb21wb25lbnQ7CisgICAgcHJpdmF0ZSBUZXh0U2VsZWN0aW9uIGZTZWxlY3Rpb247CisgICAgcHJpdmF0ZSBNVGV4dCBmVGV4dDsKKyAgICBwcml2YXRlIFNpbXBsZUNvbW1hbmRMb2cgZkNvbW1hbmRMb2c7CisgICAgcHJpdmF0ZSBQYW5lbEV2ZW50QnJvYWRjYXN0ZXIgZkxpc3RlbmVyOworICAgIHByaXZhdGUgVHlwaW5nSW50ZXJhY3RvciBmVHlwaW5nSW50ZXJhY3RvciA9IG51bGw7CisgICAgcHJpdmF0ZSBLZXlSZW1hcCBmUmVtYXA7CisgICAgCisgICAgcHJpdmF0ZSBBdHRyaWJ1dGVNYXAgZlNhdmVkVHlwaW5nU3R5bGUgPSBudWxsOworICAgIHByaXZhdGUgaW50IGZTYXZlZEluc1B0ID0gMDsKKyAgICAKKyAgICBwdWJsaWMgVGV4dEVkaXRCZWhhdmlvcihUZXh0Q29tcG9uZW50IHRleHRDb21wb25lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dFNlbGVjdGlvbiBzZWxlY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFuZWxFdmVudEJyb2FkY2FzdGVyIGxpc3RlbmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtleVJlbWFwIHJlbWFwKSB7CisKKyAgICAgICAgZlRleHRDb21wb25lbnQgPSB0ZXh0Q29tcG9uZW50OworICAgICAgICBmU2VsZWN0aW9uID0gc2VsZWN0aW9uOworICAgICAgICBmVGV4dCA9IHRleHRDb21wb25lbnQuZ2V0TW9kaWZpYWJsZVRleHQoKTsKKyAgICAgICAgZkNvbW1hbmRMb2cgPSBuZXcgU2ltcGxlQ29tbWFuZExvZyhsaXN0ZW5lcik7CisgICAgICAgIGZMaXN0ZW5lciA9IGxpc3RlbmVyOworICAgICAgICBmUmVtYXAgPSByZW1hcDsKKyAgICB9CisKKyAgICBwdWJsaWMgS2V5UmVtYXAgZ2V0S2V5UmVtYXAoKSB7CisKKyAgICAgICAgcmV0dXJuIGZSZW1hcDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRLZXlSZW1hcChLZXlSZW1hcCByZW1hcCkgeworCisgICAgICAgIGZSZW1hcCA9IHJlbWFwOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIHRleHRDb250cm9sRXZlbnRPY2N1cnJlZChCZWhhdmlvci5FdmVudFR5cGUgZXZlbnQsIE9iamVjdCB3aGF0KSB7CisKKyAgICAgICAgYm9vbGVhbiBoYW5kbGVkID0gdHJ1ZTsKKyAgICAgICAgCisgICAgICAgIGlmIChldmVudCA9PSBCZWhhdmlvci5DSEFSQUNURVJfU1RZTEVfTU9EIHx8CisgICAgICAgICAgICBldmVudCA9PSBCZWhhdmlvci5QQVJBR1JBUEhfU1RZTEVfTU9EKSB7CisgICAgICAgICAgICBkb1N0eWxlQ2hhbmdlKGV2ZW50LCB3aGF0KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChldmVudCA9PSBCZWhhdmlvci5DVVQpIHsKKyAgICAgICAgICAgIGRvQ3V0KCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoZXZlbnQgPT0gQmVoYXZpb3IuUEFTVEUpIHsKKyAgICAgICAgICAgIGRvUGFzdGUoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChldmVudCA9PSBCZWhhdmlvci5DTEVBUikgeworICAgICAgICAgICAgZG9DbGVhcigpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGV2ZW50ID09IEJlaGF2aW9yLlJFUExBQ0UpIHsKKyAgICAgICAgICAgIGRvVW5kb2FibGVSZXBsYWNlKChUZXh0UmVwbGFjZW1lbnQpIHdoYXQpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGV2ZW50ID09IEJlaGF2aW9yLlVORE8pIHsKKyAgICAgICAgICAgIGZDb21tYW5kTG9nLnVuZG8oKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChldmVudCA9PSBCZWhhdmlvci5SRURPKSB7CisgICAgICAgICAgICBmQ29tbWFuZExvZy5yZWRvKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoZXZlbnQgPT0gQmVoYXZpb3IuU0VUX01PRElGSUVEKSB7CisgICAgICAgICAgICBmQ29tbWFuZExvZy5zZXRNb2RpZmllZCh3aGF0ID09IEJvb2xlYW4uVFJVRSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoZXZlbnQgPT0gQmVoYXZpb3IuQ0xFQVJfQ09NTUFORF9MT0cpIHsKKyAgICAgICAgICAgIGZDb21tYW5kTG9nLmNsZWFyTG9nKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoZXZlbnQgPT0gQmVoYXZpb3IuU0VUX0NPTU1BTkRfTE9HX1NJWkUpIHsKKyAgICAgICAgICAgIGZDb21tYW5kTG9nLnNldExvZ1NpemUoKChJbnRlZ2VyKXdoYXQpLmludFZhbHVlKCkpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaGFuZGxlZCA9IHN1cGVyLnRleHRDb250cm9sRXZlbnRPY2N1cnJlZChldmVudCwgd2hhdCk7CisgICAgICAgIH0KKworICAgICAgICBjaGVja1NhdmVkVHlwaW5nU3R5bGUoKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBoYW5kbGVkOworICAgIH0KKworICAgIC8qKgorICAgICAqIEl0J3MgdW5mb3J0dW5hdGUgdGhhdCB0aGUgdGV4dCBpcyBtb2RpZmllZCBhbmQgcmVmb3JtYXR0ZWQgaW4KKyAgICAgKiB0aHJlZSBkaWZmZXJlbnQgbWV0aG9kcy4gIFRoaXMgbWV0aG9kIGlzIHRoZSAiY29tbW9uIHByb2xvZ3VlIgorICAgICAqIGZvciBhbGwgdGV4dCBtb2RpZmljYXRpb25zLgorICAgICAqCisgICAgICogVGhpcyBtZXRob2Qgc2hvdWxkIGJlIGNhbGxlZCBiZWZvcmUgbW9kaWZ5aW5nIGFuZCByZWZvcm1hdHRpbmcKKyAgICAgKiB0aGUgdGV4dC4gIEl0IGRvZXMgdGhyZWUgdGhpbmdzOiAgc3RvcHMgY2FyZXQgYmxpbmtpbmcsIHN0b3BzCisgICAgICogYmFja2dyb3VuZCBmb3JtYXR0aW5nLCBhbmQgcmV0dXJucyB0aGUgUmVjdGFuZ2xlIGNvbnRhaW5pbmcgdGhlCisgICAgICogY3VycmVudCAoc29vbi10by1iZSBvYnNvbGV0ZSkgc2VsZWN0aW9uLgorICAgICAqLworICAgIHByaXZhdGUgUmVjdGFuZ2xlIHByZXBhcmVGb3JUZXh0RWRpdCgpIHsKKworICAgICAgICBmU2VsZWN0aW9uLnN0b3BDYXJldEJsaW5raW5nKCk7CisgICAgICAgIGZUZXh0Q29tcG9uZW50LnN0b3BCYWNrZ3JvdW5kRm9ybWF0dGluZygpOworICAgICAgICByZXR1cm4gZlRleHRDb21wb25lbnQuZ2V0Qm91bmRpbmdSZWN0KGZTZWxlY3Rpb24uZ2V0U3RhcnQoKSwgZlNlbGVjdGlvbi5nZXRFbmQoKSk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGRvQ2xlYXIoKSB7CisgICAgICAgIFRleHRSYW5nZSBzZWxSYW5nZSA9IGZTZWxlY3Rpb24uZ2V0U2VsZWN0aW9uUmFuZ2UoKTsKKworICAgICAgICBpZiAoc2VsUmFuZ2Uuc3RhcnQgPT0gc2VsUmFuZ2UubGltaXQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgZG9VbmRvYWJsZVRleHRDaGFuZ2Uoc2VsUmFuZ2Uuc3RhcnQsIHNlbFJhbmdlLmxpbWl0LCBudWxsLCBuZXcgVGV4dE9mZnNldChzZWxSYW5nZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCksIG5ldyBUZXh0T2Zmc2V0KHNlbFJhbmdlLnN0YXJ0KSk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGRvQ3V0KCkgeworICAgICAgICBUZXh0UmFuZ2Ugc2VsUmFuZ2UgPSBmU2VsZWN0aW9uLmdldFNlbGVjdGlvblJhbmdlKCk7CisKKyAgICAgICAgaWYgKHNlbFJhbmdlLnN0YXJ0ID09IHNlbFJhbmdlLmxpbWl0KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGZUZXh0Q29tcG9uZW50LmdldENsaXBib2FyZCgpLnNldENvbnRlbnRzKGZUZXh0LmV4dHJhY3Qoc2VsUmFuZ2Uuc3RhcnQsIHNlbFJhbmdlLmxpbWl0KSk7CisgICAgICAgIGRvVW5kb2FibGVUZXh0Q2hhbmdlKHNlbFJhbmdlLnN0YXJ0LCBzZWxSYW5nZS5saW1pdCwgbnVsbCwgbmV3IFRleHRPZmZzZXQoc2VsUmFuZ2Uuc3RhcnQpLCBuZXcgVGV4dE9mZnNldChzZWxSYW5nZS5zdGFydCkpOworCisgICAgICAgIGZMaXN0ZW5lci50ZXh0U3RhdGVDaGFuZ2VkKFRleHRQYW5lbEV2ZW50LkNMSVBCT0FSRF9DSEFOR0VEKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZG9QYXN0ZSgpIHsKKyAgICAgICAgVGV4dFJhbmdlIHNlbFJhbmdlID0gZlNlbGVjdGlvbi5nZXRTZWxlY3Rpb25SYW5nZSgpOworICAgICAgICBNQ29uc3RUZXh0IGNsaXBUZXh0ID0gZlRleHRDb21wb25lbnQuZ2V0Q2xpcGJvYXJkKCkuZ2V0Q29udGVudHMoQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVApOworCisgICAgICAgIGlmIChjbGlwVGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBkb1VuZG9hYmxlVGV4dENoYW5nZShzZWxSYW5nZS5zdGFydCwgc2VsUmFuZ2UubGltaXQsIGNsaXBUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVGV4dE9mZnNldChzZWxSYW5nZS5zdGFydCArIGNsaXBUZXh0Lmxlbmd0aCgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFRleHRPZmZzZXQoc2VsUmFuZ2Uuc3RhcnQgKyBjbGlwVGV4dC5sZW5ndGgoKSkpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZkxpc3RlbmVyLnRleHRTdGF0ZUNoYW5nZWQoVGV4dFBhbmVsRXZlbnQuQ0xJUEJPQVJEX0NIQU5HRUQpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGRvVW5kb2FibGVSZXBsYWNlKFRleHRSZXBsYWNlbWVudCByZXBsYWNlbWVudCkgeworCisgICAgICAgIGRvVW5kb2FibGVUZXh0Q2hhbmdlKHJlcGxhY2VtZW50LmdldFN0YXJ0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50LmdldExpbWl0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50LmdldFRleHQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZW1lbnQuZ2V0U2VsZWN0aW9uU3RhcnQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZW1lbnQuZ2V0U2VsZWN0aW9uTGltaXQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogT25seSBUeXBpbmdJbnRlcmFjdG9yIGFuZCBUZXh0Q29tbWFuZCBzaG91bGQgY2FsbCB0aGlzIQorICAgICAqLworICAgIHZvaWQgZG9SZXBsYWNlVGV4dChpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgTUNvbnN0VGV4dCBuZXdUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IG5ld1NlbFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IG5ld1NlbEVuZCkgeworCisgICAgICAgIGludCB0ZXh0TGVuZ3RoOworCisgICAgICAgIGZUZXh0LnJlc2V0RGFtYWdlZFJhbmdlKCk7CisKKyAgICAgICAgUmVjdGFuZ2xlIG9sZFNlbFJlY3QgPSBwcmVwYXJlRm9yVGV4dEVkaXQoKTsKKworICAgICAgICBpZiAobmV3VGV4dCA9PSBudWxsKSB7CisgICAgICAgICAgICB0ZXh0TGVuZ3RoID0gMDsKKyAgICAgICAgICAgIGZUZXh0LnJlbW92ZShzdGFydCwgbGltaXQpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdGV4dExlbmd0aCA9IG5ld1RleHQubGVuZ3RoKCk7CisgICAgICAgICAgICBmVGV4dC5yZXBsYWNlKHN0YXJ0LCBsaW1pdCwgbmV3VGV4dCwgMCwgdGV4dExlbmd0aCk7CisgICAgICAgIH0KKyAgICAgICAgZlNlbGVjdGlvbi5zZXRTZWxlY3Rpb25SYW5nZShuZXdTZWxTdGFydCwgbmV3U2VsRW5kLCBuZXdTZWxTdGFydCk7CisgICAgICAgIHJlZm9ybWF0QW5kRHJhd1RleHQoZlNlbGVjdGlvbi5nZXRTdGFydCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZTZWxlY3Rpb24uZ2V0RW5kKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkU2VsUmVjdCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogT25seSB0aGUgdHlwaW5nIGludGVyYWN0b3Igc2hvdWxkIGNhbGwgdGhpcyEKKyAgICAgKi8KKyAgICB2b2lkIGRvUmVwbGFjZVNlbGVjdGVkVGV4dChjaGFyIGNoLCBBdHRyaWJ1dGVNYXAgY2hhclN0eWxlKSB7CisKKyAgICAgICAgaW50IHN0YXJ0ID0gZlNlbGVjdGlvbi5nZXRTdGFydCgpLmZPZmZzZXQ7CisgICAgICAgIGludCBsaW1pdCA9IGZTZWxlY3Rpb24uZ2V0RW5kKCkuZk9mZnNldDsKKyAgICAgICAgVGV4dE9mZnNldCBuZXdPZmZzZXQgPSBuZXcgVGV4dE9mZnNldChzdGFydCArIDEpOworICAgICAgICBkb1JlcGxhY2VUZXh0KHN0YXJ0LCBsaW1pdCwgY2gsIGNoYXJTdHlsZSwgbmV3T2Zmc2V0LCBuZXdPZmZzZXQpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkb1JlcGxhY2VUZXh0KGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBjaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgY2hhclN0eWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgbmV3U2VsU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBuZXdTZWxFbmQpIHsKKworICAgICAgICBmVGV4dC5yZXNldERhbWFnZWRSYW5nZSgpOworCisgICAgICAgIFJlY3RhbmdsZSBvbGRTZWxSZWN0ID0gcHJlcGFyZUZvclRleHRFZGl0KCk7CisKKyAgICAgICAgZlRleHQucmVwbGFjZShzdGFydCwgbGltaXQsIGNoLCBjaGFyU3R5bGUpOworCisgICAgICAgIGZTZWxlY3Rpb24uc2V0U2VsZWN0aW9uUmFuZ2UobmV3U2VsU3RhcnQsIG5ld1NlbEVuZCwgbmV3U2VsU3RhcnQpOworICAgICAgICByZWZvcm1hdEFuZERyYXdUZXh0KGZTZWxlY3Rpb24uZ2V0U3RhcnQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmU2VsZWN0aW9uLmdldEVuZCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZFNlbFJlY3QpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkb1N0eWxlQ2hhbmdlKEJlaGF2aW9yLkV2ZW50VHlwZSBldmVudCwgT2JqZWN0IHdoYXQpIHsKKworICAgICAgICBUZXh0UmFuZ2Ugc2VsUmFuZ2UgPSBmU2VsZWN0aW9uLmdldFNlbGVjdGlvblJhbmdlKCk7CisgICAgICAgIGJvb2xlYW4gY2hhcmFjdGVyID0gKGV2ZW50ID09IEJlaGF2aW9yLkNIQVJBQ1RFUl9TVFlMRV9NT0QpOworCisgICAgICAgIGlmIChzZWxSYW5nZS5zdGFydCAhPSBzZWxSYW5nZS5saW1pdCB8fCAhY2hhcmFjdGVyKSB7CisgICAgICAgICAgICBkb1VuZG9hYmxlU3R5bGVDaGFuZ2Uod2hhdCwgY2hhcmFjdGVyKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIFR5cGluZ0ludGVyYWN0b3IgaW50ZXJhY3RvciA9CisgICAgICAgICAgICAgICAgbmV3IFR5cGluZ0ludGVyYWN0b3IoZlRleHRDb21wb25lbnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZTZWxlY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlNhdmVkVHlwaW5nU3R5bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmQ29tbWFuZExvZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmTGlzdGVuZXIpOworCisgICAgICAgICAgICBpbnRlcmFjdG9yLmFkZFRvT3duZXIoZlRleHRDb21wb25lbnQpOworICAgICAgICAgICAgaW50ZXJhY3Rvci50ZXh0Q29udHJvbEV2ZW50T2NjdXJyZWQoZXZlbnQsIHdoYXQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogT25seSB0ZXh0IGNvbW1hbmRzIHNob3VsZCBjYWxsIHRoaXMgbWV0aG9kIQorICAgICAqLworICAgIHZvaWQgZG9Nb2RpZnlTdHlsZXMoaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgU3R5bGVNb2RpZmllciBtb2RpZmllciwKKyAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gY2hhcmFjdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBuZXdTZWxTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgbmV3U2VsRW5kKSB7CisKKyAgICAgICAgZlRleHQucmVzZXREYW1hZ2VkUmFuZ2UoKTsKKworICAgICAgICBSZWN0YW5nbGUgb2xkU2VsUmVjdCA9IHByZXBhcmVGb3JUZXh0RWRpdCgpOworCisgICAgICAgIGlmIChjaGFyYWN0ZXIpIHsKKyAgICAgICAgICAgIGZUZXh0Lm1vZGlmeUNoYXJhY3RlclN0eWxlcyhzdGFydCwgbGltaXQsIG1vZGlmaWVyKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZUZXh0Lm1vZGlmeVBhcmFncmFwaFN0eWxlcyhzdGFydCwgbGltaXQsIG1vZGlmaWVyKTsKKyAgICAgICAgfQorCisgICAgICAgIGZTZWxlY3Rpb24uc2V0U2VsZWN0aW9uUmFuZ2UobmV3U2VsU3RhcnQsIG5ld1NlbEVuZCwgbmV3U2VsU3RhcnQpOworICAgICAgICByZWZvcm1hdEFuZERyYXdUZXh0KG5ld1NlbFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NlbEVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRTZWxSZWN0KTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZG9VbmRvYWJsZVN0eWxlQ2hhbmdlKE9iamVjdCB3aGF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBjaGFyYWN0ZXIpIHsKKworICAgICAgICBUZXh0T2Zmc2V0IHNlbFN0YXJ0ID0gZlNlbGVjdGlvbi5nZXRTdGFydCgpOworICAgICAgICBUZXh0T2Zmc2V0IHNlbEVuZCA9IGZTZWxlY3Rpb24uZ2V0RW5kKCk7CisKKyAgICAgICAgTVRleHQgb2xkVGV4dCA9IGZUZXh0LmV4dHJhY3RXcml0YWJsZShzZWxTdGFydC5mT2Zmc2V0LCBzZWxFbmQuZk9mZnNldCk7CisgICAgICAgIFN0eWxlQ2hhbmdlQ29tbWFuZCBjb21tYW5kID0gbmV3IFN0eWxlQ2hhbmdlQ29tbWFuZCgKKyAgICAgICAgICAgICAgICB0aGlzLCBvbGRUZXh0LCBzZWxTdGFydCwgc2VsRW5kLCAoU3R5bGVNb2RpZmllcikgd2hhdCwgY2hhcmFjdGVyKTsKKworICAgICAgICBmQ29tbWFuZExvZy5hZGRBbmREbyhjb21tYW5kKTsKKworICAgICAgICBmTGlzdGVuZXIudGV4dFN0YXRlQ2hhbmdlZChUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fU1RZTEVTX0NIQU5HRUQpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkb1VuZG9hYmxlVGV4dENoYW5nZShpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUNvbnN0VGV4dCBuZXdUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IG5ld1NlbFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IG5ld1NlbEVuZCkgeworCisgICAgICAgIFRleHRDaGFuZ2VDb21tYW5kIGNvbW1hbmQgPSBuZXcgVGV4dENoYW5nZUNvbW1hbmQodGhpcywgZlRleHQuZXh0cmFjdFdyaXRhYmxlKHN0YXJ0LCBsaW1pdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1RleHQsIHN0YXJ0LCBmU2VsZWN0aW9uLmdldFN0YXJ0KCksIGZTZWxlY3Rpb24uZ2V0RW5kKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NlbFN0YXJ0LCBuZXdTZWxFbmQpOworCisgICAgICAgIGZDb21tYW5kTG9nLmFkZEFuZERvKGNvbW1hbmQpOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGNhblVuZG8oKSB7CisKKyAgICAgICAgYm9vbGVhbiBjYW5VbmRvID0gZmFsc2U7CisKKyAgICAgICAgaWYgKGZUeXBpbmdJbnRlcmFjdG9yICE9IG51bGwpIHsKKyAgICAgICAgICAgIGNhblVuZG8gPSBmVHlwaW5nSW50ZXJhY3Rvci5oYXNQZW5kaW5nQ29tbWFuZCgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFjYW5VbmRvKSB7CisgICAgICAgICAgICBjYW5VbmRvID0gZkNvbW1hbmRMb2cuY2FuVW5kbygpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGNhblVuZG87CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gY2FuUmVkbygpIHsKKworICAgICAgICByZXR1cm4gZkNvbW1hbmRMb2cuY2FuUmVkbygpOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGlzTW9kaWZpZWQoKSB7CisKKyAgICAgICAgaWYgKGZUeXBpbmdJbnRlcmFjdG9yICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmIChmVHlwaW5nSW50ZXJhY3Rvci5oYXNQZW5kaW5nQ29tbWFuZCgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZDb21tYW5kTG9nLmlzTW9kaWZpZWQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldENvbW1hbmRMb2dTaXplKCkgeworCisgICAgICAgIHJldHVybiBmQ29tbWFuZExvZy5nZXRMb2dTaXplKCk7CisgICAgfQorCisgICAgcHVibGljIEF0dHJpYnV0ZU1hcCBnZXRJbnNlcnRpb25Qb2ludFN0eWxlKCkgeworCisgICAgICAgIGlmIChmVHlwaW5nSW50ZXJhY3RvciAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZlR5cGluZ0ludGVyYWN0b3IuZ2V0VHlwaW5nU3R5bGUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmU2F2ZWRUeXBpbmdTdHlsZSAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZlNhdmVkVHlwaW5nU3R5bGU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFRleHRSYW5nZSByYW5nZSA9IGZTZWxlY3Rpb24uZ2V0U2VsZWN0aW9uUmFuZ2UoKTsKKyAgICAgICAgcmV0dXJuIHR5cGluZ1N0eWxlQXQoZlRleHQsIHJhbmdlLnN0YXJ0LCByYW5nZS5saW1pdCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBib29sZWFuIGtleVByZXNzZWQoS2V5RXZlbnQgZSkgeworCisgICAgICAgIGJvb2xlYW4gaGFuZGxlZCA9IHRydWU7CisgICAgICAgIGlmIChUeXBpbmdJbnRlcmFjdG9yLmhhbmRsZWRCeVR5cGluZ0ludGVyYWN0b3IoZSkpIHsKKyAgICAgICAgICAgIFR5cGluZ0ludGVyYWN0b3IgaW50ZXJhY3RvciA9IG5ldyBUeXBpbmdJbnRlcmFjdG9yKGZUZXh0Q29tcG9uZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlNlbGVjdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZTYXZlZFR5cGluZ1N0eWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZDb21tYW5kTG9nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkxpc3RlbmVyKTsKKworICAgICAgICAgICAgaW50ZXJhY3Rvci5hZGRUb093bmVyKGZUZXh0Q29tcG9uZW50KTsKKyAgICAgICAgICAgIGludGVyYWN0b3Iua2V5UHJlc3NlZChlKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGhhbmRsZWQgPSBzdXBlci5rZXlQcmVzc2VkKGUpOworICAgICAgICAgICAgY2hlY2tTYXZlZFR5cGluZ1N0eWxlKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBoYW5kbGVkOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGtleVR5cGVkKEtleUV2ZW50IGUpIHsKKyAgICAgICAgCisgICAgICAgIGJvb2xlYW4gaGFuZGxlZCA9IHRydWU7CisgICAgICAgIGlmIChUeXBpbmdJbnRlcmFjdG9yLmhhbmRsZWRCeVR5cGluZ0ludGVyYWN0b3IoZSkpIHsKKyAgICAgICAgICAgIFR5cGluZ0ludGVyYWN0b3IgaW50ZXJhY3RvciA9IG5ldyBUeXBpbmdJbnRlcmFjdG9yKGZUZXh0Q29tcG9uZW50LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZTZWxlY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmU2F2ZWRUeXBpbmdTdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmQ29tbWFuZExvZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZMaXN0ZW5lcik7CisKKyAgICAgICAgICAgIGludGVyYWN0b3IuYWRkVG9Pd25lcihmVGV4dENvbXBvbmVudCk7CisgICAgICAgICAgICBpbnRlcmFjdG9yLmtleVR5cGVkKGUpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaGFuZGxlZCA9IHN1cGVyLmtleVR5cGVkKGUpOworICAgICAgICAgICAgY2hlY2tTYXZlZFR5cGluZ1N0eWxlKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBoYW5kbGVkOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIG1vdXNlUmVsZWFzZWQoTW91c2VFdmVudCBlKSB7CisgICAgICAgIAorICAgICAgICBib29sZWFuIHJlc3VsdCA9IHN1cGVyLm1vdXNlUmVsZWFzZWQoZSk7CisgICAgICAgIGNoZWNrU2F2ZWRUeXBpbmdTdHlsZSgpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcmVmb3JtYXRBbmREcmF3VGV4dChUZXh0T2Zmc2V0IHNlbFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVjdGFuZ2xlIG9sZFNlbFJlY3QpCisgICAgeworICAgICAgICBpZiAoIWZTZWxlY3Rpb24uZW5hYmxlZCgpKSB7CisgICAgICAgICAgICBzZWxTdGFydCA9IHNlbExpbWl0ID0gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIGludCByZWZvcm1hdFN0YXJ0ID0gZlRleHQuZGFtYWdlZFJhbmdlU3RhcnQoKTsKKyAgICAgICAgaW50IHJlZm9ybWF0TGVuZ3RoID0gZlRleHQuZGFtYWdlZFJhbmdlTGltaXQoKSAtIHJlZm9ybWF0U3RhcnQ7CisKKyAgICAgICAgaWYgKHJlZm9ybWF0U3RhcnQgIT0gSW50ZWdlci5NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIGZUZXh0Q29tcG9uZW50LnJlZm9ybWF0QW5kRHJhd1RleHQocmVmb3JtYXRTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmb3JtYXRMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkU2VsUmVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlNlbGVjdGlvbi5nZXRIaWdobGlnaHRDb2xvcigpKTsKKyAgICAgICAgfQorCisgICAgICAgIGZTZWxlY3Rpb24uc2Nyb2xsVG9TaG93U2VsZWN0aW9uKCk7CisgICAgICAgIAorICAgICAgICAvLyBzb21ldGltZXMgdGhpcyBzaG91bGQgc2VuZCBTRUxFQ1RJT05fU1RZTEVTX0NIQU5HRUQKKyAgICAgICAgZkxpc3RlbmVyLnRleHRTdGF0ZUNoYW5nZWQoVGV4dFBhbmVsRXZlbnQuVEVYVF9DSEFOR0VEKTsKKworICAgICAgICBmU2VsZWN0aW9uLnJlc3RhcnRDYXJldEJsaW5raW5nKHRydWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE9ubHkgVHlwaW5nSW50ZXJhY3RvciBzaG91bGQgY2FsbCB0aGlzLgorICAgICAqLworICAgIHZvaWQgc2V0VHlwaW5nSW50ZXJhY3RvcihUeXBpbmdJbnRlcmFjdG9yIGludGVyYWN0b3IpIHsKKyAgICAgICAgZlR5cGluZ0ludGVyYWN0b3IgPSBpbnRlcmFjdG9yOworICAgIH0KKworICAgIC8qKgorICAgICAqIE9ubHkgVHlwaW5nSW50ZXJhY3RvciBzaG91bGQgY2FsbCB0aGlzLgorICAgICAqLworICAgIHZvaWQgc2V0U2F2ZWRUeXBpbmdTdHlsZShBdHRyaWJ1dGVNYXAgc3R5bGUsIGludCBpbnNQdCkgeworICAgIAorICAgICAgICBmU2F2ZWRUeXBpbmdTdHlsZSA9IHN0eWxlOworICAgICAgICBmU2F2ZWRJbnNQdCA9IGluc1B0OworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgY2hlY2tTYXZlZFR5cGluZ1N0eWxlKCkgeworICAgIAorICAgICAgICBpZiAoZlNhdmVkVHlwaW5nU3R5bGUgIT0gbnVsbCkgeworICAgICAgICAgICAgaW50IHNlbFN0YXJ0ID0gZlNlbGVjdGlvbi5nZXRTdGFydCgpLmZPZmZzZXQ7CisgICAgICAgICAgICBpbnQgc2VsTGltaXQgPSBmU2VsZWN0aW9uLmdldEVuZCgpLmZPZmZzZXQ7CisgICAgICAgICAgICBpZiAoc2VsU3RhcnQgIT0gZlNhdmVkSW5zUHQgfHwgc2VsU3RhcnQgIT0gc2VsTGltaXQpIHsKKyAgICAgICAgICAgICAgICBmU2F2ZWRUeXBpbmdTdHlsZSA9IG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgIH0gICAgICAgICAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzdHlsZSBhcHByb3ByaWF0ZSBmb3IgdHlwaW5nIG9uIHRoZSBnaXZlbiBzZWxlY3Rpb24KKyAgICAgKiByYW5nZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEF0dHJpYnV0ZU1hcCB0eXBpbmdTdHlsZUF0KE1Db25zdFRleHQgdGV4dCwgaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKworICAgICAgICBpZiAoc3RhcnQgPCBsaW1pdCkgeworICAgICAgICAgICAgcmV0dXJuIHRleHQuY2hhcmFjdGVyU3R5bGVBdChzdGFydCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoc3RhcnQgPiAwKSB7CisgICAgICAgICAgICByZXR1cm4gdGV4dC5jaGFyYWN0ZXJTdHlsZUF0KHN0YXJ0IC0gMSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gdGV4dC5jaGFyYWN0ZXJTdHlsZUF0KDApOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRQYW5lbC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRQYW5lbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjczZjE0YmUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dFBhbmVsLmphdmEKQEAgLTAsMCArMSw1NDMgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IFRleHRQYW5lbC5qYXZhLHYgJCAkUmV2aXNpb246IDEuMyAkICREYXRlOiAyMDAyLzAyLzE2IDAzOjA2OjQ4ICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitpbXBvcnQgamF2YS5hd3QuQm9yZGVyTGF5b3V0OworaW1wb3J0IGphdmEuYXd0LkNvbXBvbmVudDsKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczsKK2ltcG9ydCBqYXZhLmF3dC5QYW5lbDsKK2ltcG9ydCBqYXZhLmF3dC5TY3JvbGxiYXI7CisKK2ltcG9ydCBqYXZhLmF3dC5kYXRhdHJhbnNmZXIuQ2xpcGJvYXJkOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlTW9kaWZpZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlZFRleHQ7CisKKy8qKgorICogVGV4dFBhbmVsIGlzIGFuIGltcGxlbWVudGF0aW9uIG9mIE1UZXh0UGFuZWwgaW4gYW4gQVdUIFBhbmVsLgorICogQHNlZSBNVGV4dFBhbmVsCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBUZXh0UGFuZWwgZXh0ZW5kcyBQYW5lbCBpbXBsZW1lbnRzIE1UZXh0UGFuZWwgeworCisgICAgcHJpdmF0ZSBBVGV4dFBhbmVsSW1wbCBmSW1wbDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBUZXh0UGFuZWxTZXR0aW5ncyBpbnN0YW5jZSB3aXRoIGFsbCBzZXR0aW5ncyBzZXQKKyAgICAgKiB0byB0aGUgZGVmYXVsdCB2YWx1ZXMuICBDbGllbnRzIGNhbiBtb2RpZnkgdGhpcyBvYmplY3Q7CisgICAgICogbW9kaWZpY2F0aW9ucyB3aWxsIG5vdCBhZmZlY3QgdGhlIGRlZmF1bHQgdmFsdWVzLgorICAgICAqIEByZXR1cm4gYSBUZXh0UGFuZWxTZXR0aW5ncyBpbnN0YW5jZSBzZXQgdG8gZGVmYXVsdCB2YWx1ZXMKKyAgICAgKiBAc2VlIFRleHRQYW5lbFNldHRpbmdzCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBUZXh0UGFuZWxTZXR0aW5ncyBnZXREZWZhdWx0U2V0dGluZ3MoKSB7CisKKyAgICAgICAgcmV0dXJuIEFUZXh0UGFuZWxJbXBsLmdldERlZmF1bHRTZXR0aW5ncygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIG5ldyBUZXh0UGFuZWwgd2l0aCB0aGUgZGVmYXVsdCBzZXR0aW5ncy4KKyAgICAgKiBAcGFyYW0gaW5pdGlhbFRleHQgdGhlIHRleHQgZG9jdW1lbnQuICBJZiBudWxsIGRvY3VtZW50IHRleHQgaXMgZW1wdHkuCisgICAgICogQHBhcmFtIGNsaXBib2FyZCB0aGUgY2xpcGJvYXJkIHRvIHVzZSBmb3IgY3V0LCBjb3B5LCBhbmQgcGFzdGUKKyAgICAgKiAgb3BlcmF0aW9ucy4gIElmIG51bGwgdGhpcyBwYW5lbCB3aWxsIHVzZSBhIHByaXZhdGUgY2xpcGJvYXJkLgorICAgICAqLworICAgIHB1YmxpYyBUZXh0UGFuZWwoTUNvbnN0VGV4dCBpbml0aWFsVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgIENsaXBib2FyZCBjbGlwYm9hcmQpIHsKKworICAgICAgICB0aGlzKEFUZXh0UGFuZWxJbXBsLmZnRGVmYXVsdFNldHRpbmdzLCBpbml0aWFsVGV4dCwgY2xpcGJvYXJkKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBuZXcgVGV4dFBhbmVsLgorICAgICAqIEBwYXJhbSBzZXR0aW5ncyB0aGUgc2V0dGluZ3MgZm9yIHRoaXMgVGV4dFBhbmVsCisgICAgICogQHBhcmFtIGluaXRpYWxUZXh0IHRoZSB0ZXh0IGRvY3VtZW50LiAgSWYgbnVsbCBkb2N1bWVudCB0ZXh0IGlzIGVtcHR5LgorICAgICAqIEBwYXJhbSBjbGlwYm9hcmQgdGhlIGNsaXBib2FyZCB0byB1c2UgZm9yIGN1dCwgY29weSwgYW5kIHBhc3RlCisgICAgICogIG9wZXJhdGlvbnMuICBJZiBudWxsIHRoaXMgcGFuZWwgd2lsbCB1c2UgYSBwcml2YXRlIGNsaXBib2FyZC4KKyAgICAgKiBAc2VlIFRleHRQYW5lbFNldHRpbmdzCisgICAgICovCisgICAgcHVibGljIFRleHRQYW5lbChUZXh0UGFuZWxTZXR0aW5ncyBzZXR0aW5ncywKKyAgICAgICAgICAgICAgICAgICAgIE1Db25zdFRleHQgaW5pdGlhbFRleHQsCisgICAgICAgICAgICAgICAgICAgICBDbGlwYm9hcmQgY2xpcGJvYXJkKSB7CisKKyAgICAgICAgU2Nyb2xsYmFyIGhvcnpTYiA9IG51bGw7CisgICAgICAgIFNjcm9sbGJhciB2ZXJ0U2IgPSBudWxsOworICAgICAgICAKKyAgICAgICAgaWYgKHNldHRpbmdzLmdldFNjcm9sbGFibGUoKSkgeworCisgICAgICAgICAgICBzZXRMYXlvdXQobmV3IFNjcm9sbEJhckxheW91dCgpKTsKKworICAgICAgICAgICAgYm9vbGVhbiBzY3JvbGxCYXJzVmlzaWJsZSA9IHNldHRpbmdzLmdldFNjcm9sbEJhcnNWaXNpYmxlKCk7CisKKyAgICAgICAgICAgIGlmIChzY3JvbGxCYXJzVmlzaWJsZSkgeworICAgICAgICAgICAgICAgIGhvcnpTYiA9IG5ldyBTY3JvbGxiYXIoU2Nyb2xsYmFyLkhPUklaT05UQUwpOworICAgICAgICAgICAgICAgIHZlcnRTYiA9IG5ldyBTY3JvbGxiYXIoU2Nyb2xsYmFyLlZFUlRJQ0FMKTsKKyAgICAgICAgICAgICAgICBhZGQoIlNvdXRoIiwgaG9yelNiKTsKKyAgICAgICAgICAgICAgICBhZGQoIkVhc3QiLCB2ZXJ0U2IpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgc2V0TGF5b3V0KG5ldyBCb3JkZXJMYXlvdXQoKSk7CisgICAgICAgIH0KKworICAgICAgICBmSW1wbCA9IG5ldyBBVGV4dFBhbmVsSW1wbChuZXcgUnVuU3RyYXRlZ3koKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwYm9hcmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvcnpTYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVydFNiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGZpbmFsIEZha2VDb21wb25lbnQgdGV4dENvbXBvbmVudCA9IGZJbXBsLmdldFRleHRDb21wb25lbnQoKTsKKyAgICAgICAgCisgICAgICAgIENvbXBvbmVudCB0ZXh0SG9zdCA9IG5ldyBDb21wb25lbnQoKSB7CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGV4dENvbXBvbmVudC5zZXRIb3N0KHRoaXMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHVibGljIHZvaWQgYWRkTm90aWZ5KCkgeworICAgICAgICAgICAgICAgIHN1cGVyLmFkZE5vdGlmeSgpOworICAgICAgICAgICAgICAgIHRleHRDb21wb25lbnQuYWRkTm90aWZ5KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBwYWludChHcmFwaGljcyBnKSB7CisgICAgICAgICAgICAgICAgdGV4dENvbXBvbmVudC5wYWludChnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIGFkZCgiQ2VudGVyIiwgdGV4dEhvc3QpOworCisgICAgICAgIHRleHRIb3N0LnJlcXVlc3RGb2N1cygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZCB0aGUgZ2l2ZW4gVGV4dFBhbmVsTGlzdGVuZXIgdG8gdGhlIGxpc3RlbmVycyB3aGljaCB3aWxsCisgICAgICogcmVjZWl2ZSB1cGRhdGUgbm90aWZpY2F0aW9ucyBmcm9tIHRoaXMgVGV4dFBhbmVsLgorICAgICAqIEBwYXJhbSBsaXN0ZW5lciB0aGUgbGlzdGVuZXIgdG8gYWRkCisgICAgICovCisgICAgcHVibGljIHZvaWQgYWRkTGlzdGVuZXIoVGV4dFBhbmVsTGlzdGVuZXIgbGlzdGVuZXIpIHsKKworICAgICAgICBmSW1wbC5hZGRMaXN0ZW5lcihsaXN0ZW5lcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVtb3ZlIHRoZSBnaXZlbiBUZXh0UGFuZWxMaXN0ZW5lciBmcm9tIHRoZSBsaXN0ZW5lcnMgd2hpY2ggd2lsbAorICAgICAqIHJlY2VpdmUgdXBkYXRlIG5vdGlmaWNhdGlvbnMgZnJvbSB0aGlzIFRleHRQYW5lbC4KKyAgICAgKiBAcGFyYW0gbGlzdGVuZXIgdGhlIGxpc3RlbmVyIHRvIHJlbW92ZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlbW92ZUxpc3RlbmVyKFRleHRQYW5lbExpc3RlbmVyIGxpc3RlbmVyKSB7CisKKyAgICAgICAgZkltcGwucmVtb3ZlTGlzdGVuZXIobGlzdGVuZXIpOworICAgIH0KKworLy89PT09PT09PT09PT0KKy8vIFRleHQgQWNjZXNzCisvLz09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBkb2N1bWVudCB0byA8dHQ+bmV3VGV4dDwvdHQ+LiAgVGhpcyBvcGVyYXRpb24KKyAgICAgKiBtb2RpZmllcyB0aGUgdGV4dCBpbiB0aGUgVGV4dFBhbmVsLiAgSXQgZG9lcyBub3QgbW9kaWZ5IG9yIGFkb3B0CisgICAgICogPHR0Pm5ld1RleHQ8L3R0Pi4gIFRoaXMgbWV0aG9kIHNldHMgdGhlIHNlbGVjdGlvbiBhbiBpbnNlcnRpb24gcG9pbnQgYXQKKyAgICAgKiB0aGUgZW5kIG9mIHRoZSB0ZXh0LgorICAgICAqIEBwYXJhbSBuZXdUZXh0IHRoZSB0ZXh0IHdoaWNoIHdpbGwgcmVwbGFjZSB0aGUgY3VycmVudCB0ZXh0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRleHQoTUNvbnN0VGV4dCBuZXdUZXh0KSB7CisKKyAgICAgICAgZkltcGwuc2V0VGV4dChuZXdUZXh0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBcHBlbmQgdGhlIGdpdmVuIHRleHQgdG8gdGhlIGVuZCBvZiB0aGUgZG9jdW1lbnQuICBFcXVpdmFsZW50IHRvCisgICAgICogPHR0Pmluc2VydChuZXdUZXh0LCBnZXRUZXh0TGVuZ3RoKCkpPC90dD4uCisgICAgICogQHBhcmFtIG5ld1RleHQgdGhlIHRleHQgdG8gYXBwZW5kIHRvIHRoZSBkb2N1bWVudAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFwcGVuZChNQ29uc3RUZXh0IG5ld1RleHQpIHsKKworICAgICAgICBmSW1wbC5hcHBlbmQobmV3VGV4dCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW5zZXJ0IHRoZSBnaXZlbiB0ZXh0IGludG8gdGhlIGRvY3VtZW50IGF0IHRoZSBnaXZlbiBwb3NpdGlvbi4KKyAgICAgKiBFcXVpdmFsZW50IHRvCisgICAgICogPHR0PnJlcGxhY2VSYW5nZShuZXdUZXh0LCBwb3NpdGlvbiwgcG9zaXRpb24pPC90dD4uCisgICAgICogQHBhcmFtIG5ld1RleHQgdGhlIHRleHQgdG8gaW5zZXJ0IGludG8gdGhlIGRvY3VtZW50LgorICAgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgcG9zaXRpb24gaW4gdGhlIGRvY3VtZW50IHdoZXJlIHRoZQorICAgICAqICAgICB0ZXh0IHdpbGwgYmUgaW5zZXJ0ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBpbnNlcnQoTUNvbnN0VGV4dCBuZXdUZXh0LCBpbnQgcG9zaXRpb24pIHsKKworICAgICAgICBmSW1wbC5pbnNlcnQobmV3VGV4dCwgcG9zaXRpb24pOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlcGxhY2UgdGhlIGdpdmVuIHJhbmdlIHdpdGggPHR0Pm5ld1RleHQ8L3R0Pi4gIEFmdGVyIHRoaXMKKyAgICAgKiBvcGVyYXRpb24gdGhlIHNlbGVjdGlvbiByYW5nZSBpcyBhbiBpbnNlcnRpb24gcG9pbnQgYXQgdGhlCisgICAgICogZW5kIG9mIHRoZSBuZXcgdGV4dC4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCB0aGUgdGV4dCB3aXRoIHdoaWNoIHRvIHJlcGxhY2UgdGhlIHJhbmdlCisgICAgICogQHBhcmFtIHN0YXJ0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHJhbmdlIHRvIHJlcGxhY2UKKyAgICAgKiBAcGFyYW0gZW5kIHRoZSBlbmQgb2YgdGhlIHJhbmdlIHRvIHJlcGxhY2UKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZXBsYWNlUmFuZ2UoTUNvbnN0VGV4dCBuZXdUZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpIHsKKworICAgICAgICBmSW1wbC5yZXBsYWNlUmFuZ2UobmV3VGV4dCwgc3RhcnQsIGVuZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIHRleHQgZG9jdW1lbnQgaW4gdGhlIFRleHRQYW5lbC4KKyAgICAgKiBAcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIHRleHQgZG9jdW1lbnQgaW4gdGhlIFRleHRQYW5lbAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0VGV4dExlbmd0aCgpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuZ2V0VGV4dExlbmd0aCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgdGV4dCBkb2N1bWVudCBpbiB0aGUgVGV4dFBhbmVsLgorICAgICAqIEByZXR1cm4gdGhlIHRleHQgZG9jdW1lbnQgaW4gdGhlIFRleHRQYW5lbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgTUNvbnN0VGV4dCBnZXRUZXh0KCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5nZXRUZXh0KCk7CisgICAgfQorCisvLz09PT09PT09PT09PQorLy8gU2VsZWN0aW9uIEFjY2VzcworLy89PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgb2Zmc2V0IG9mIHRoZSBzdGFydCBvZiB0aGUgc2VsZWN0aW9uLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0U2VsZWN0aW9uU3RhcnQoKSB7CisKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldFNlbGVjdGlvblN0YXJ0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBvZmZzZXQgb2YgdGhlIGVuZCBvZiB0aGUgc2VsZWN0aW9uLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0U2VsZWN0aW9uRW5kKCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5nZXRTZWxlY3Rpb25FbmQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlLiAgVGhpcyBpcworICAgICAqIGVxdWl2YWxlbnQgdG8gPHR0PnNlbGVjdChzZWxlY3Rpb25TdGFydCwgZ2V0U2VsZWN0aW9uRW5kKCkpPC90dD4uCisgICAgICogQHBhcmFtIHNlbGVjdGlvblN0YXJ0IHRoZSBzdGFydCBvZiB0aGUgbmV3IHNlbGVjdGlvbiByYW5nZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNlbGVjdGlvblN0YXJ0KGludCBzZWxlY3Rpb25TdGFydCkgeworCisgICAgICAgIGZJbXBsLnNldFNlbGVjdGlvblN0YXJ0KHNlbGVjdGlvblN0YXJ0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGVuZCBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlLiAgVGhpcyBpcworICAgICAqIGVxdWl2YWxlbnQgdG8gPHR0PnNlbGVjdChnZXRTZWxlY3Rpb25TdGFydCgpLCBzZWxlY3Rpb25FbmQpPC90dD4uCisgICAgICogQHBhcmFtIHNlbGVjdGlvblN0YXJ0IHRoZSBzdGFydCBvZiB0aGUgbmV3IHNlbGVjdGlvbiByYW5nZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNlbGVjdGlvbkVuZChpbnQgc2VsZWN0aW9uRW5kKSB7CisKKyAgICAgICAgZkltcGwuc2V0U2VsZWN0aW9uRW5kKHNlbGVjdGlvbkVuZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBzZWxlY3Rpb24gcmFuZ2UgdG8gYW4gaW5zZXJ0aW9uIHBvaW50IGF0IHRoZSBnaXZlbgorICAgICAqIG9mZnNldC4gIFRoaXMgaXMgZXF1aXZhbGVudCB0bworICAgICAqIDx0dD5zZWxlY3QocG9zaXRpb24sIHBvc2l0aW9uKTwvdHQ+LgorICAgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgb2Zmc2V0IG9mIHRoZSBuZXcgaW5zZXJ0aW9uIHBvaW50CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Q2FyZXRQb3NpdGlvbihpbnQgcG9zaXRpb24pIHsKKworICAgICAgICBmSW1wbC5zZXRDYXJldFBvc2l0aW9uKHBvc2l0aW9uKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHNlbGVjdGlvbiByYW5nZSB0byB0aGUgZ2l2ZW4gcmFuZ2UuICBUaGUgcmFuZ2Ugc3RhcnQKKyAgICAgKiBpcyBwaW5uZWQgYmV0d2VlbiAwIGFuZCB0aGUgdGV4dCBsZW5ndGg7ICB0aGUgcmFuZ2UgZW5kIGlzIHBpbm5lZAorICAgICAqIGJldHdlZW4gdGhlIHJhbmdlIHN0YXJ0IGFuZCB0aGUgZW5kIG9mIHRoZSB0ZXh0LiAgVGhlc2Ugc2VtYW50aWNzCisgICAgICogYXJlIGlkZW50aWNhbCB0byB0aG9zZSBvZiA8dHQ+amF2YS5hd3QuVGV4dENvbXBvbmVudDwvdHQ+LgorICAgICAqIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYgdGhlIHRleHQgaXMgbm90IHNlbGVjdGFibGUuCisgICAgICogQHBhcmFtIHNlbGVjdGlvblN0YXJ0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHNlbGVjdGlvbiByYW5nZQorICAgICAqIEBwYXJhbSBzZWxlY3Rpb25FbmQgdGhlIGVuZCBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2VsZWN0KGludCBzZWxlY3Rpb25TdGFydCwgaW50IHNlbGVjdGlvbkVuZCkgeworCisgICAgICAgIGZJbXBsLnNlbGVjdChzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZWxlY3QgYWxsIG9mIHRoZSB0ZXh0IGluIHRoZSBkb2N1bWVudC4gIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYKKyAgICAgKiB0aGUgdGV4dCBpcyBub3Qgc2VsZWN0YWJsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZWxlY3RBbGwoKSB7CisKKyAgICAgICAgZkltcGwuc2VsZWN0QWxsKCk7CisgICAgfQorCisKKy8vPT09PT09PT09PT09CisvLyBGb3JtYXQgV2lkdGgKKy8vPT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHRvdGFsIGZvcm1hdCB3aWR0aCwgaW4gcGl4ZWxzLiAgVGhlIGZvcm1hdCB3aWR0aCBpcyB0aGUKKyAgICAgKiB3aWR0aCB0byB3aGljaCB0ZXh0IGlzIHdyYXBwZWQuCisgICAgICogQHJldHVybiB0aGUgZm9ybWF0IHdpZHRoCisgICAgICovCisgICAgcHVibGljIGludCBnZXRGb3JtYXRXaWR0aCgpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuZ2V0Rm9ybWF0V2lkdGgoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIHBhcmFncmFwaCBhdCB0aGUgZ2l2ZW4gb2Zmc2V0IGlzIGxlZnQtdG8tcmlnaHQuCisgICAgICogQHBhcmFtIG9mZnNldCBhbiBvZmZzZXQgaW4gdGhlIHRleHQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHBhcmFncmFwaCBhdCB0aGUgZ2l2ZW4gb2Zmc2V0IGlzIGxlZnQtdG8tcmlnaHQKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBwYXJhZ3JhcGhJc0xlZnRUb1JpZ2h0KGludCBvZmZzZXQpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBmSW1wbC5wYXJhZ3JhcGhJc0xlZnRUb1JpZ2h0KG9mZnNldCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlcmUgaXMgYSBjaGFuZ2Ugd2hpY2ggY2FuIGJlIHVuZG9uZS4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlcmUgaXMgYSBjaGFuZ2Ugd2hpY2ggY2FuIGJlIHVuZG9uZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBjYW5VbmRvKCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5jYW5VbmRvKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlcmUgaXMgYSBjaGFuZ2Ugd2hpY2ggY2FuIGJlIHJlZG9uZS4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlcmUgaXMgYSBjaGFuZ2Ugd2hpY2ggY2FuIGJlIHJlZG9uZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBjYW5SZWRvKCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5jYW5SZWRvKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGNsaXBib2FyZCBjb250YWlucyBjb250ZW50cyB3aGljaCBjb3VsZCBiZQorICAgICAqIHRyYW5zZmVyZWQgaW50byB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNsaXBib2FyZCBoYXMgdGV4dCBjb250ZW50LgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNsaXBib2FyZE5vdEVtcHR5KCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5jbGlwYm9hcmROb3RFbXB0eSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhbiBBdHRyaWJ1dGVNYXAgb2Yga2V5cyB3aXRoIGRlZmF1bHQgdmFsdWVzLiAgVGhlIGRlZmF1bHQKKyAgICAgKiB2YWx1ZXMgYXJlIHVzZWQgd2hlbiBkaXNwbGF5aW5nIHRleHQgZm9yIHZhbHVlcyB3aGljaCBhcmUgbm90CisgICAgICogc3BlY2lmaWVkIGluIHRoZSB0ZXh0LgorICAgICAqIEByZXR1cm4gYW4gQXR0cmlidXRlTWFwIG9mIGRlZmF1bHQga2V5LXZhbHVlIHBhaXJzCisgICAgICovCisgICAgcHVibGljIEF0dHJpYnV0ZU1hcCBnZXREZWZhdWx0VmFsdWVzKCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5nZXREZWZhdWx0VmFsdWVzKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgaW5zcGVjdHMgdGhlIGNoYXJhY3RlciBzdHlsZSBydW5zIGluIHRoZSBzZWxlY3Rpb24KKyAgICAgKiByYW5nZSAob3IgdGhlIHR5cGluZyBzdHlsZSBhdCB0aGUgaW5zZXJ0aW9uIHBvaW50KS4gIEl0IHJldHVybnM6CisgICAgICogPHVsPgorICAgICAqIDxsaT5UaGUgdmFsdWUgb2YgPHR0PmtleTwvdHQ+LCBpZiB0aGUgdmFsdWUgb2YgPHR0PmtleTwvdHQ+CisgICAgICogaXMgdGhlIHNhbWUgaW4gYWxsIG9mIHRoZSBzdHlsZSBydW5zIGluIHRoZSBzZWxlY3Rpb24sIG9yPC9saT4KKyAgICAgKiA8bGk+PHR0Pk1VTFRJUExFX1ZBTFVFUzwvdHQ+LCBpZiB0d28gb3IgbW9yZSBzdHlsZSBydW5zIGhhdmUgZGlmZmVyZW50IAorICAgICAqIHZhbHVlcyBmb3IgPHR0PmtleTwvdHQ+LjwvbGk+CisgICAgICogPC91bD4KKyAgICAgKiBJZiBhIHN0eWxlIHJ1biBkb2VzIG5vdCBjb250YWluIDx0dD5rZXk8L3R0PiwKKyAgICAgKiBpdHMgdmFsdWUgaXMgY29uc2lkZXJlZCB0byBiZSB0aGUgZGVmYXVsdCBzdHlsZSBmb3IgPHR0PmtleTwvdHQ+LAorICAgICAqIGFzIGRlZmluZWQgYnkgdGhlIGRlZmF1bHQgdmFsdWVzIEF0dHJpYnV0ZU1hcC4gIE5vdGUgdGhhdCBpZgorICAgICAqIDx0dD5rZXk8L3R0PiBkb2VzIG5vdCBoYXZlIGEgZGVmYXVsdCB2YWx1ZSB0aGlzIG1ldGhvZCBtYXkgcmV0dXJuCisgICAgICogbnVsbC4KKyAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VmdWwgZm9yIGNvbmZpZ3VyaW5nIHN0eWxlIG1lbnVzLgorICAgICAqIEBwYXJhbSBrZXkgdGhlIGtleSB1c2VkIHRvIHJldHJpZXZlIHZhbHVlcyBmb3IgY29tcGFyaXNvbgorICAgICAqIEBzZWUgTVRleHRQYW5lbCNNVUxUSVBMRV9WQUxVRVMKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGdldENoYXJhY3RlclN0eWxlT3ZlclNlbGVjdGlvbihPYmplY3Qga2V5KSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkltcGwuZ2V0Q2hhcmFjdGVyU3R5bGVPdmVyU2VsZWN0aW9uKGtleSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgaW5zcGVjdHMgdGhlIHBhcmFncmFwaCBzdHlsZSBydW5zIGluIHRoZSBzZWxlY3Rpb24KKyAgICAgKiByYW5nZSAob3IgdGhlIHR5cGluZyBzdHlsZSBhdCB0aGUgaW5zZXJ0aW9uIHBvaW50KS4gIEl0IHJldHVybnM6CisgICAgICogPHVsPgorICAgICAqIDxsaT5UaGUgdmFsdWUgb2YgPHR0PmtleTwvdHQ+LCBpZiB0aGUgdmFsdWUgb2YgPHR0PmtleTwvdHQ+CisgICAgICogaXMgdGhlIHNhbWUgaW4gYWxsIG9mIHRoZSBzdHlsZSBydW5zIGluIHRoZSBzZWxlY3Rpb24sIG9yPC9saT4KKyAgICAgKiA8bGk+PHR0Pk1VTFRJUExFX1ZBTFVFUzwvdHQ+LCBpZiB0d28gb3IgbW9yZSBzdHlsZSBydW5zIGhhdmUgCisgICAgICogZGlmZmVyZW50IHZhbHVlcyBmb3IgPHR0PmtleTwvdHQ+LjwvbGk+CisgICAgICogPC91bD4KKyAgICAgKiBJZiBhIHN0eWxlIHJ1biBkb2VzIG5vdCBjb250YWluIDx0dD5rZXk8L3R0PiwKKyAgICAgKiBpdHMgdmFsdWUgaXMgY29uc2lkZXJlZCB0byBiZSB0aGUgZGVmYXVsdCBzdHlsZSBmb3IgPHR0PmtleTwvdHQ+LAorICAgICAqIGFzIGRlZmluZWQgYnkgdGhlIGRlZmF1bHQgdmFsdWVzIEF0dHJpYnV0ZU1hcC4gIE5vdGUgdGhhdCBpZgorICAgICAqIDx0dD5rZXk8L3R0PiBkb2VzIG5vdCBoYXZlIGEgZGVmYXVsdCB2YWx1ZSB0aGlzIG1ldGhvZCBtYXkgcmV0dXJuCisgICAgICogbnVsbC4KKyAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VmdWwgZm9yIGNvbmZpZ3VyaW5nIHN0eWxlIG1lbnVzLgorICAgICAqIEBwYXJhbSBrZXkgdGhlIGtleSB1c2VkIHRvIHJldHJpZXZlIHZhbHVlcyBmb3IgY29tcGFyaXNvbgorICAgICAqIEBzZWUgTVRleHRQYW5lbCNNVUxUSVBMRV9WQUxVRVMKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGdldFBhcmFncmFwaFN0eWxlT3ZlclNlbGVjdGlvbihPYmplY3Qga2V5KSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkltcGwuZ2V0UGFyYWdyYXBoU3R5bGVPdmVyU2VsZWN0aW9uKGtleSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVtb3ZlIHRoZSBzZWxlY3RlZCB0ZXh0IGZyb20gdGhlIGRvY3VtZW50IGFuZCBwbGFjZSBpdAorICAgICAqIG9uIHRoZSBjbGlwYm9hcmQuICBUaGlzIG1ldGhvZCBoYXMgbm8gZWZmZWN0IGlmIHRoZSB0ZXh0CisgICAgICogaXMgbm90IGVkaXRhYmxlLCBvciBpZiBubyB0ZXh0IGlzIHNlbGVjdGVkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGN1dCgpIHsKKyAgICAgICAgZkltcGwuY3V0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGxhY2UgdGhlIHNlbGVjdGVkIHRleHQgb24gdGhlIGNsaXBib2FyZC4gIFRoaXMgbWV0aG9kIGhhcworICAgICAqIG5vIGVmZmVjdCBpZiBubyB0ZXh0IGlzIHNlbGVjdGVkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNvcHkoKSB7CisgICAgICAgIGZJbXBsLmNvcHkoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXBsYWNlIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgdGV4dCB3aXRoIHRoZSB0ZXh0IG9uIHRoZSBjbGlwYm9hcmQuCisgICAgICogVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZiB0aGUgdGV4dCBpcyBub3QgZWRpdGFibGUsIG9yIGlmIG5vCisgICAgICogdGV4dCBpcyBvbiB0aGUgY2xpcGJvYXJkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHBhc3RlKCkgeworICAgICAgICBmSW1wbC5wYXN0ZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZSBzZWxlY3RlZCB0ZXh0IGZyb20gdGhlIGRvY3VtZW50LCB3aXRob3V0IGFsdGVyaW5nIHRoZSBjbGlwYm9hcmQuCisgICAgICogVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZiB0aGUKKyAgICAgKiB0ZXh0IGlzIG5vdCBlZGl0YWJsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjbGVhcigpIHsKKyAgICAgICAgZkltcGwuY2xlYXIoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVbmRvIHRoZSBtb3N0IHJlY2VudCB0ZXh0IGNoYW5nZS4gIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYKKyAgICAgKiB0aGVyZSBpcyBubyBjaGFuZ2UgdG8gdW5kby4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB1bmRvKCkgeworICAgICAgICBmSW1wbC51bmRvKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVkbyB0aGUgbW9zdCByZWNlbnQgdGV4dCBjaGFuZ2UuICBUaGlzIG1ldGhvZCBoYXMgbm8gZWZmZWN0IGlmCisgICAgICogdGhlcmUgaXMgbm8gY2hhbmdlIHRvIHJlZG8uCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVkbygpIHsKKyAgICAgICAgZkltcGwucmVkbygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbnVtYmVyIG9mIGNvbW1hbmRzIHRoZSBjb21tYW5kIGxvZyBjYW4gaG9sZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgY29tbWFuZHMgdGhlIGNvbW1hbmQgbG9nIGNhbiBob2xkCisgICAgICovCisgICAgcHVibGljIGludCBnZXRDb21tYW5kTG9nU2l6ZSgpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuZ2V0Q29tbWFuZExvZ1NpemUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIG51bWJlciBvZiBjb21tYW5kcyB0aGUgY29tbWFuZCBsb2cgY2FuIGhvbGQuICBBbGwKKyAgICAgKiByZWRvYWJsZSBjb21tYW5kcyBhcmUgcmVtb3ZlZCB3aGVuIHRoaXMgbWV0aG9kIGlzIGNhbGxlZC4KKyAgICAgKiBAcGFyYW0gc2l6ZSB0aGUgbnVtYmVyIG9mIGNvbW1hbmRzIGtlcHQgaW4gdGhlIGNvbW1hbmQgbG9nCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Q29tbWFuZExvZ1NpemUoaW50IHNpemUpIHsKKyAgICAgICAgZkltcGwuc2V0Q29tbWFuZExvZ1NpemUoc2l6ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVtb3ZlIGFsbCBjb21tYW5kcyBmcm9tIHRoZSBjb21tYW5kIGxvZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjbGVhckNvbW1hbmRMb2coKSB7CisgICAgICAgIGZJbXBsLmNsZWFyQ29tbWFuZExvZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1vZGlmeSB0aGUgY2hhcmFjdGVyIHN0eWxlcyBvbiB0aGUgc2VsZWN0ZWQgY2hhcmFjdGVycy4gIElmIG5vIGNoYXJhY3RlcnMKKyAgICAgKiBhcmUgc2VsZWN0ZWQsIG1vZGlmeSB0aGUgdHlwaW5nIHN0eWxlLgorICAgICAqIEBwYXJhbSBtb2RpZmllciB0aGUgU3R5bGVNb2RpZmllciB3aXRoIHdoaWNoIHRvIG1vZGlmeSB0aGUgc3R5bGVzCisgICAgICovCisgICAgcHVibGljIHZvaWQgbW9kaWZ5Q2hhcmFjdGVyU3R5bGVPblNlbGVjdGlvbihTdHlsZU1vZGlmaWVyIG1vZGlmaWVyKSB7CisgICAgICAgIGZJbXBsLm1vZGlmeUNoYXJhY3RlclN0eWxlT25TZWxlY3Rpb24obW9kaWZpZXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1vZGlmeSB0aGUgcGFyYWdyYXBoIHN0eWxlcyBpbiBwYXJhZ3JhcGhzIGNvbnRhaW5pbmcgc2VsZWN0ZWQgY2hhcmFjdGVycywgb3IKKyAgICAgKiB0aGUgcGFyYWdyYXBoIGNvbnRhaW5pbmcgdGhlIGluc2VydGlvbiBwb2ludC4KKyAgICAgKiBAcGFyYW0gbW9kaWZpZXIgdGhlIFN0eWxlTW9kaWZpZXIgd2l0aCB3aGljaCB0byBtb2RpZnkgdGhlIHN0eWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIG1vZGlmeVBhcmFncmFwaFN0eWxlT25TZWxlY3Rpb24oU3R5bGVNb2RpZmllciBtb2RpZmllcikgeworICAgICAgICBmSW1wbC5tb2RpZnlQYXJhZ3JhcGhTdHlsZU9uU2VsZWN0aW9uKG1vZGlmaWVyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIEtleVJlbWFwIHVzZWQgdG8gcHJvY2VzcyBrZXkgZXZlbnRzLgorICAgICAqIEByZXR1cm4gdGhlIGtleSByZW1hcCB1c2VkIHRvIHByb2Nlc3Mga2V5IGV2ZW50cworICAgICAqIEBzZWUgI3NldEtleVJlbWFwCisgICAgICovCisgICAgcHVibGljIEtleVJlbWFwIGdldEtleVJlbWFwKCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5nZXRLZXlSZW1hcCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFVzZSB0aGUgZ2l2ZW4gS2V5UmVtYXAgdG8gbWFwIGtleSBldmVudHMgdG8gY2hhcmFjdGVycy4KKyAgICAgKiBPbmx5IGtleQorICAgICAqIGV2ZW50cyBhcmUgYWZmZWN0ZWQgYnkgdGhlIHJlbWFwOyAgb3RoZXIgdGV4dCBlbnRlcmluZyB0aGUKKyAgICAgKiBjb250cm9sICh2aWEgdGhlIGNsaXBib2FyZCwgZm9yIGV4YW1wbGUpIGlzIG5vdCBhZmZlY3RlZAorICAgICAqIGJ5IHRoZSBLZXlSZW1hcC4KKyAgICAgKiA8cD4KKyAgICAgKiBEbyBub3QgcGFzcyA8dHQ+bnVsbDwvdHQ+IHRvIHRoaXMgbWV0aG9kIHRvIGxlYXZlIGtleQorICAgICAqIGV2ZW50cyB1bm1hcHBlZC4gIEluc3RlYWQsIHVzZSA8dHQ+S2V5UmVtYXAuZ2V0SWRlbnRpdHlSZW1hcCgpPC90dD4KKyAgICAgKiBAcGFyYW0gcmVtYXAgdGhlIEtleVJlbWFwIHRvIHVzZSBmb3IgbWFwcGluZyBrZXkgZXZlbnRzIHRvIGNoYXJhY3RlcnMKKyAgICAgKiBAZXhjZXB0aW9uIGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiBpZiBwYXJhbWV0ZXIgaXMgbnVsbAorICAgICAqIEBzZWUgS2V5UmVtYXAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRLZXlSZW1hcChLZXlSZW1hcCByZW1hcCkgeworCisgICAgICAgIGZJbXBsLnNldEtleVJlbWFwKHJlbWFwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG1vZGlmaWNhdGlvbiBmbGFnIG9mIHRoZSBjdXJyZW50IHRleHQgY2hhbmdlLgorICAgICAqIEBzZWUgI3NldE1vZGlmaWVkCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNNb2RpZmllZCgpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuaXNNb2RpZmllZCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgbW9kaWZpY2F0aW9uIGZsYWcgb2YgdGhlIGN1cnJlbnQgdGV4dCBjaGFuZ2UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TW9kaWZpZWQoYm9vbGVhbiBtb2RpZmllZCkgeworICAgICAgICAKKyAgICAgICAgZkltcGwuc2V0TW9kaWZpZWQobW9kaWZpZWQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIGlzIGZvciBLZXlFdmVudEZvcndhcmRlcidzIHVzZSBvbmx5IQorICAgICAqLworICAgIEFUZXh0UGFuZWxJbXBsIGdldEltcGwoKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkltcGw7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRQYW5lbEV2ZW50LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dFBhbmVsRXZlbnQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lY2Q2NjE4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRQYW5lbEV2ZW50LmphdmEKQEAgLTAsMCArMSwxNTcgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IFRleHRQYW5lbEV2ZW50LmphdmEsdiAkICRSZXZpc2lvbjogMS4xICQgJERhdGU6IDIwMDAvMDQvMjAgMTc6NTE6MjMgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuRXZlbnRPYmplY3Q7CisKKy8qKgorICogVGV4dFBhbmVsRXZlbnQgaXMgZ2VuZXJhdGVkIGJ5IGFuIE1UZXh0UGFuZWwgdG8gbm90aWZ5IGxpc3RlbmVycworICogb2YgY2hhbmdlcy4gIFRvIHJlY2VpdmUgVGV4dFBhbmVsRXZlbnRzIGZyb20gYW4gTVRleHRQYW5lbCwgY2xpZW50cworICogbXVzdCBpbXBsZW1lbnQgVGV4dFBhbmVsTGlzdGVuZXIgYW5kIGFkZCB0aGVtc2VsdmVzIHRvIHRoZSBNVGV4dFBhbmVsJ3MKKyAqIGxpc3Qgb2YgbGlzdGVuZXJzLgorICogPHA+CisgKiBTb21lIGV2ZW50IHR5cGVzIGFyZSBzcGVjaWFsIGNhc2VzIG9mIG90aGVycy4gIFRoaXMgaXMgaW50ZW50aW9uYWwgLSBpdAorICogYWxsb3dzIG5vdGlmaWNhdGlvbnMgdG8gYmUgc2VudCBsZXNzIG9mdGVuIGluIGNlcnRhaW4gY29tbW9uIGNhc2VzLiAgRm9yCisgKiBleGFtcGxlLCBhIGNoYW5nZSBpbiB0aGUgc2VsZWN0aW9uIHJhbmdlIGdlbmVyYXRlcyBhIFNFTEVDVElPTl9SQU5HRV9DSEFOR0VEIAorICogZXZlbnQuICBUaGlzIGlzIGEgdmVyeSBjb21tb24gb2NjdXJyYW5jZSwgYW5kIGlmIG1hbnkgY2xpZW50cyBsaXN0ZW4gZm9yIHRoaXMKKyAqIGV2ZW50LCB0aGVyZSBtYXkgYmUgYSBzaWduaWZpY2FudCBwZXJmb3JtYW5jZSBwZW5hbHR5LiAgQnkKKyAqIGxpc3RlbmluZyBmb3IgYSBtb3JlIHNwZWNpYWxpemVkIGV2ZW50IChzdWNoIGFzIFNFTEVDVElPTl9FTVBUWV9DSEFOR0VEKSwgY2xpZW50cworICogY2FuIHJlZHVjZSB0aGUgbnVtYmVyIG9mIG5vdGlmaWNhdGlvbnMgc2VudC4KKyAqIAorICogQHNlZSBNVGV4dFBhbmVsCisgKiBAc2VlIFRleHRQYW5lbExpc3RlbmVyCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBUZXh0UGFuZWxFdmVudCBleHRlbmRzIEV2ZW50T2JqZWN0IHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgCisgICAgLyoqCisgICAgICogVGhlIGxvd2VyIGJvdW5kIG9mIFRleHRQYW5lbEV2ZW50IElEJ3MuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEVYVF9QQU5FTF9GSVJTVCA9IDExOworCisgICAgLyoqCisgICAgICogRXZlbnRzIG9mIHRoaXMgdHlwZSBpbmRpY2F0ZSBhIGNoYW5nZSBpbiB0aGUgc2VsZWN0aW9uIHJhbmdlLgorICAgICAqIFRoaXMgb2NjdXJzIHF1aXRlIG9mdGVuLiAgTW9zdCBjbGllbnRzIGRvIG5vdCBuZWVkIHRvIGJlIAorICAgICAqIG5vdGlmaWVkIGV2ZXJ5IHRpbWUgdGhlIHNlbGVjdGlvbiByYW5nZSBjaGFuZ2VzLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNFTEVDVElPTl9SQU5HRV9DSEFOR0VEID0gMTE7CisgICAgCisgICAgLyoqCisgICAgICogRXZlbnRzIG9mIHRoaXMgdHlwZSBhcmUgc2VudCB3aGVuIHRoZSBzZWxlY3Rpb24gcmFuZ2UgYmVjb21lcworICAgICAqIDAtbGVuZ3RoIGFmdGVyIG5vdCBiZWluZyAwLWxlbmd0aCwgb3IgdmljZSB2ZXJzYS4gIFRoaXMgZXZlbnQKKyAgICAgKiBpcyBhIHNwZWNpYWwgY2FzZSBvZiBTRUxFQ1RJT05fUkFOR0VfQ0hBTkdFRC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTRUxFQ1RJT05fRU1QVFlfQ0hBTkdFRCA9IDEyOworICAgIAorICAgIC8qKgorICAgICAqIEV2ZW50cyBvZiB0aGlzIHR5cGUgaW5kaWNhdGUgdGhhdCB0aGUgdGV4dCBpbiB0aGUgVGV4dFBhbmVsIGNoYW5nZWQuCisgICAgICogVGhpcyB0eXBlIG9mIGV2ZW50IG9jY3VycyBvZnRlbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBURVhUX0NIQU5HRUQgPSAxMzsKKyAgICAKKyAgICAvKioKKyAgICAgKiBFdmVudHMgb2YgdGhpcyB0eXBlIGFyZSBzZW50IHdoZW4gdGhlIHN0eWxlcyBpbiB0aGUgY3VycmVudAorICAgICAqIHNlbGVjdGlvbiBjaGFuZ2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0VMRUNUSU9OX1NUWUxFU19DSEFOR0VEID0gMTQ7CisgICAgIAorICAgIC8qKgorICAgICAqIEV2ZW50cyBvZiB0aGlzIHR5cGUgYXJlIHNlbnQgd2hlbiB0aGUgdW5kby9yZWRvIHN0YXRlIGNoYW5nZXMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVU5ET19TVEFURV9DSEFOR0VEID0gMTU7CisgICAgCisgICAgLyoqCisgICAgICogRXZlbnRzIG9mIHRoaXMgdHlwZSBhcmUgc2VudCB3aGVuIHRoZSBjbGlwYm9hcmQgc3RhdGUgY2hhbmdlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDTElQQk9BUkRfQ0hBTkdFRCA9IDE2OworICAgIAorICAgIC8qKgorICAgICAqIEV2ZW50cyBvZiB0aGlzIHR5cGUgYXJlIHNlbnQgd2hlbiAKKyAgICAgKiB0aGUgd3JhcCB3aWR0aCBvZiB0aGUgdGV4dCBjaGFuZ2VzLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZPUk1BVF9XSURUSF9DSEFOR0VEID0gMTc7CisKKyAgICAvKioKKyAgICAgKiBFdmVudHMgb2YgdGhpcyB0eXBlIGFyZSBzZW50IHdoZW4gdGhlIGtleSByZW1hcCBjaGFuZ2VzLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEtFWVJFTUFQX0NIQU5HRUQgPSAxODsKKworICAgIC8qKgorICAgICAqIFRoZSB1cHBlciBib3VuZCBvZiBUZXh0UGFuZWxFdmVudCBJRCdzLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFWFRfUEFORUxfTEFTVCA9IDE4OworCisgICAgcHJpdmF0ZSBpbnQgZklkOworCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgbmV3IFRleHRQYW5lbEV2ZW50LgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIE1UZXh0UGFuZWwgd2hpY2ggZ2VuZXJhdGVkIHRoZSBldmVudAorICAgICAqIEBwYXJhbSBpZCB0aGUgSUQgZm9yIHRoaXMgZXZlbnQuICBNdXN0IGJlIHdpdGhpbgorICAgICAqIFtURVhUX1BBTkVMX0ZJUlNULCBURVhUX1BBTkVMX0xBU1RdLgorICAgICAqLworICAgIFRleHRQYW5lbEV2ZW50KE1UZXh0UGFuZWwgc291cmNlLCBpbnQgaWQpIHsKKworICAgICAgICBzdXBlcihzb3VyY2UpOworICAgICAgICBpZiAoaWQgPCBURVhUX1BBTkVMX0ZJUlNUIHx8IGlkID4gVEVYVF9QQU5FTF9MQVNUKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJpZCBvdXQgb2YgcmFuZ2UiKTsKKyAgICAgICAgfQorICAgICAgICBmSWQgPSBpZDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGV2ZW50IElEIGZvciB0aGlzIGV2ZW50LiAgRXZlbnQgSUQncyBhcmUKKyAgICAgKiBvbmUgb2YgdGhlIGNsYXNzIGNvbnN0YW50cy4KKyAgICAgKiBAcmV0dXJuIHRoZSBldmVudCBJRCBmb3IgdGhpcyBldmVudAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0SUQoKSB7CisKKyAgICAgICAgcmV0dXJuIGZJZDsKKyAgICB9CisgICAgCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyBkZXNjID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIHN3aXRjaChmSWQpIHsKKyAgICAgICAgICAgIGNhc2UgU0VMRUNUSU9OX1JBTkdFX0NIQU5HRUQ6CisgICAgICAgICAgICAgICAgZGVzYyA9ICJTRUxFQ1RJT05fUkFOR0VfQ0hBTkdFRCI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFNFTEVDVElPTl9FTVBUWV9DSEFOR0VEOgorICAgICAgICAgICAgICAgIGRlc2MgPSAiU0VMRUNUSU9OX0VNUFRZX0NIQU5HRUQiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBURVhUX0NIQU5HRUQ6CisgICAgICAgICAgICAgICAgZGVzYyA9ICJURVhUX0NIQU5HRUQiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBTRUxFQ1RJT05fU1RZTEVTX0NIQU5HRUQ6CisgICAgICAgICAgICAgICAgZGVzYyA9ICJTRUxFQ1RJT05fU1RZTEVTX0NIQU5HRUQiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBVTkRPX1NUQVRFX0NIQU5HRUQ6CisgICAgICAgICAgICAgICAgZGVzYyA9ICJVTkRPX1NUQVRFX0NIQU5HRUQiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDTElQQk9BUkRfQ0hBTkdFRDoKKyAgICAgICAgICAgICAgICBkZXNjID0gIkNMSVBCT0FSRF9DSEFOR0VEIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgRk9STUFUX1dJRFRIX0NIQU5HRUQ6CisgICAgICAgICAgICAgICAgZGVzYyA9ICJGT1JNQVRfV0lEVEhfQ0hBTkdFRCI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEtFWVJFTUFQX0NIQU5HRUQ6CisgICAgICAgICAgICAgICAgZGVzYyA9ICJLRVlSRU1BUF9DSEFOR0VEIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gIltUZXh0UGFuZWxFdmVudDoiK2Rlc2MrIl0iOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0UGFuZWxMaXN0ZW5lci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRQYW5lbExpc3RlbmVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjNlMDcwMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0UGFuZWxMaXN0ZW5lci5qYXZhCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IFRleHRQYW5lbExpc3RlbmVyLmphdmEsdiAkICRSZXZpc2lvbjogMS4xICQgJERhdGU6IDIwMDAvMDQvMjAgMTc6NTE6MjMgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKKy8qKgorICogVGhpcyBpbnRlcmZhY2UgaXMgaW1wbGVtZW50ZWQgYnkgY2xhc3NlcyB3aGljaAorICogcmVjZWl2ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyBmcm9tIGFuIE1UZXh0UGFuZWwuCisgKiBAc2VlIE1UZXh0UGFuZWwKKyAqIEBzZWUgVGV4dFBhbmVsRXZlbnQKKyAqLworcHVibGljIGludGVyZmFjZSBUZXh0UGFuZWxMaXN0ZW5lciB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIC8qKgorICAgICAqIE5vdGlmeSBsaXN0ZW5lciBvZiBhbiBNVGV4dFBhbmVsIGNoYW5nZS4KKyAgICAgKiBAcGFyYW0gZXZlbnQgYSBUZXh0UGFuZWxFdmVudCBpbmRpY2F0aW5nIHdoYXQgaGFwcGVuZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXh0RXZlbnRPY2N1cnJlZChUZXh0UGFuZWxFdmVudCBldmVudCk7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgbGlzdGVuZXIgbmVlZHMgdG8gYmUgbm90aWZpZWQgb2YgCisgICAgICogdGhlIGdpdmVuIGV2ZW50IHR5cGUuICBUaGlzIGFsbG93cyBhIHRleHQgcGFuZWwgdG8gYXZvaWQKKyAgICAgKiBzZW5kaW5nIGV2ZW50cyB0byB1bmludGVyZXN0ZWQgcGFydGllcy4KKyAgICAgKiBAcGFyYW0gdHlwZSBhbiBldmVudCBJRCBmcm9tIFRleHRQYW5lbEV2ZW50CisgICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgbGlzdGVuZXIgbmVlZHMgdG8gYmUgbm90aWZpZWQgb2YKKyAgICAgKiBldmVudHMgb2YgdGhlIGdpdmVuIHR5cGUKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiByZXNwb25kc1RvRXZlbnRUeXBlKGludCB0eXBlKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0UGFuZWxTZXR0aW5ncy5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRQYW5lbFNldHRpbmdzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWJkNjk0NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0UGFuZWxTZXR0aW5ncy5qYXZhCkBAIC0wLDAgKzEsMjgzIEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBUZXh0UGFuZWxTZXR0aW5ncy5qYXZhLHYgJCAkUmV2aXNpb246IDEuMiAkICREYXRlOiAyMDAyLzAyLzE2IDAzOjA2OjQ4ICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitpbXBvcnQgamF2YS5hd3QuQ29sb3I7CitpbXBvcnQgamF2YS5pby5TZXJpYWxpemFibGU7CitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5UZXh0QXR0cmlidXRlOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdGFuZGFyZFRhYlJ1bGVyOworCisvKioKKyAqIFRoaXMgY2xhc3MgY29udGFpbnMgc2V0dGluZ3MgdXNlZCB3aGVuIGNvbnN0cnVjdGluZyBhbiBNVGV4dFBhbmVsLgorICogVGhlIHNldHRpbmdzIGNvbnRyb2xlZCBieSB0aGlzIGNsYXNzIGluY2x1ZGU6CisgKiA8dWw+CisgKiA8bGk+d2hldGhlciB0aGUgdGV4dCBpbiB0aGUgTVRleHRQYW5lbCBjYW4gYmUgc2Nyb2xsZWQ8L2xpPgorICogPGxpPndoZXRoZXIgc2Nyb2xsIGJhcnMgaW4gdGhlIE1UZXh0UGFuZWwgYXJlIHZpc2libGU8L2xpPgorICogPGxpPndoZXRoZXIgdGhlIHRleHQgaW4gdGhlIE1UZXh0UGFuZWwgY2FuIGJlIHNlbGVjdGVkPC9saT4KKyAqIDxsaT53aGV0aGVyIHRoZSB0ZXh0IGluIHRoZSBNVGV4dFBhbmVsIGNhbiBiZSBlZGl0ZWQ8L2xpPgorICogPGxpPndoZXRoZXIgbGluZXMgb2YgdGV4dCB3cmFwIHRvIHRoZSBNVGV4dFBhbmVsJ3Mgd2lkdGgsIG9yCisgKiBvbmx5IGVuZCBhdCBwYXJhZ3JhcGggc2VwYXJhdG9yczwvbGk+CisgKiA8bGk+dGhlIGRlZmF1bHQgdmFsdWVzIGZvciB1bnNwZWNpZmllZCBzdHlsZXM8L2xpPgorICogPC91bD4KKyAqIFNvbWUgc2V0dGluZ3MgYXJlIGRlcGVuZGVudCBvbiBvdGhlcnMuICBTY3JvbGwgYmFycyBhcmUgdmlzaWJsZQorICogb25seSBpZiB0aGUgdGV4dCBpcyBzY3JvbGxhYmxlLiAgQWxzbywgdGV4dCB3aGljaCBpcyBub3QgZWRpdGFibGUKKyAqIGlmIGl0IGlzIG5vdCBzZWxlY3RhYmxlLgorICogPHA+CisgKgorICogQHNlZSBNVGV4dFBhbmVsCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBUZXh0UGFuZWxTZXR0aW5ncyBpbXBsZW1lbnRzIENsb25lYWJsZSwgU2VyaWFsaXphYmxlIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgQXR0cmlidXRlTWFwIERFRkFVTFRTOworICAgIHN0YXRpYyB7CisgICAgICAgIGZpbmFsIEZsb2F0IGZsb2F0WmVybyA9IG5ldyBGbG9hdCgwLjBmKTsKKworICAgICAgICBIYXNodGFibGUgZGVmYXVsdHMgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLkZBTUlMWSwgIlNlcmlmIik7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLldFSUdIVCwgbmV3IEZsb2F0KDEuMGYpKTsKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuUE9TVFVSRSwgZmxvYXRaZXJvKTsKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuU0laRSwgbmV3IEZsb2F0KDE4LjBmKSk7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLlNVUEVSU0NSSVBULCBuZXcgSW50ZWdlcigwKSk7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLkZPUkVHUk9VTkQsIENvbG9yLmJsYWNrKTsKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuVU5ERVJMSU5FLCBuZXcgSW50ZWdlcigtMSkpOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5TVFJJS0VUSFJPVUdILCBCb29sZWFuLkZBTFNFKTsKKworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5FWFRSQV9MSU5FX1NQQUNJTkcsIGZsb2F0WmVybyk7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLkZJUlNUX0xJTkVfSU5ERU5ULCBmbG9hdFplcm8pOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5NSU5fTElORV9TUEFDSU5HLCBmbG9hdFplcm8pOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5MSU5FX0ZMVVNILCBUZXh0QXR0cmlidXRlLkZMVVNIX0xFQURJTkcpOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5MRUFESU5HX01BUkdJTiwgZmxvYXRaZXJvKTsKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuVFJBSUxJTkdfTUFSR0lOLCBmbG9hdFplcm8pOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5UQUJfUlVMRVIsIG5ldyBTdGFuZGFyZFRhYlJ1bGVyKCkpOworCisgICAgICAgIERFRkFVTFRTID0gbmV3IEF0dHJpYnV0ZU1hcChkZWZhdWx0cyk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgYm9vbGVhbiBmU2Nyb2xsYWJsZSA9IHRydWU7CisgICAgcHJpdmF0ZSBib29sZWFuIGZTY3JvbGxCYXJzVmlzaWJsZSA9IHRydWU7CisgICAgcHJpdmF0ZSBib29sZWFuIGZTZWxlY3RhYmxlID0gdHJ1ZTsKKyAgICBwcml2YXRlIGJvb2xlYW4gZkVkaXRhYmxlID0gdHJ1ZTsKKyAgICBwcml2YXRlIGJvb2xlYW4gZldyYXBzID0gdHJ1ZTsKKyAgICBwcml2YXRlIEF0dHJpYnV0ZU1hcCBmRGVmYXVsdFZhbHVlcyA9IERFRkFVTFRTOworICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZSBhIFRleHRQYW5lbFNldHRpbmdzIGluc3RhbmNlIHdpdGggYWxsIHNldHRpbmdzCisgICAgICogc2V0IHRvIHRydWUuCisgICAgICovCisgICAgcHVibGljIFRleHRQYW5lbFNldHRpbmdzKCkgeworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIG5ldyBUZXh0UGFuZWxTZXR0aW5ncyBpbnN0YW5jZSB3aXRoIHRoZQorICAgICAqIHNhbWUgc2V0dGluZ3MgYXMgdGhpcy4KKyAgICAgKiBAcmV0dXJuIGEgbmV3IFRleHRQYW5lbFNldHRpbmdzIGluc3RhbmNlCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHsKKworICAgICAgICBUZXh0UGFuZWxTZXR0aW5ncyByaHMgPSBuZXcgVGV4dFBhbmVsU2V0dGluZ3MoKTsKKworICAgICAgICByaHMuZlNjcm9sbGFibGUgPSBmU2Nyb2xsYWJsZTsKKyAgICAgICAgcmhzLmZTY3JvbGxCYXJzVmlzaWJsZSA9IGZTY3JvbGxCYXJzVmlzaWJsZTsKKyAgICAgICAgcmhzLmZTZWxlY3RhYmxlID0gZlNlbGVjdGFibGU7CisgICAgICAgIHJocy5mRWRpdGFibGUgPSBmRWRpdGFibGU7CisgICAgICAgIHJocy5mV3JhcHMgPSBmV3JhcHM7CisgICAgICAgIHJocy5mRGVmYXVsdFZhbHVlcyA9IGZEZWZhdWx0VmFsdWVzOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHJoczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHNjcm9sbGFibGUgc2V0dGluZywgd2hpY2ggZGV0ZXJtaW5lcyB3aGV0aGVyIHRleHQKKyAgICAgKiBpbiBhbiBNVGV4dFBhbmVsIGNhbiBiZSBzY3JvbGxlZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBzY3JvbGxhYmxlIHNldHRpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBnZXRTY3JvbGxhYmxlKCkgeworCisgICAgICAgIHJldHVybiBmU2Nyb2xsYWJsZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHNjcm9sbGFibGUgc2V0dGluZy4KKyAgICAgKiBAcGFyYW0gc2Nyb2xsYWJsZSB0aGUgc2Nyb2xsYWJsZSBzZXR0aW5nLiAgSWYgZmFsc2UsCisgICAgICogdGhlIHNjcm9sbEJhcnNWaXNpYmxlIHNldHRpbmcgaXMgYWxzbyBzZXQgdG8gZmFsc2UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0U2Nyb2xsYWJsZShib29sZWFuIHNjcm9sbGFibGUpIHsKKworICAgICAgICBmU2Nyb2xsYWJsZSA9IHNjcm9sbGFibGU7CisgICAgICAgIGZTY3JvbGxCYXJzVmlzaWJsZSAmPSBzY3JvbGxhYmxlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgc2Nyb2xsQmFyc1Zpc2libGUgc2V0dGluZywgd2hpY2ggZGV0ZXJtaW5lcyB3aGV0aGVyCisgICAgICogc2Nyb2xsIGJhcnMgaW4gYW4gTVRleHRQYW5lbCBhcmUgdmlzaWJsZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBzY3JvbGxCYXJzVmlzaWJsZSBzZXR0aW5nCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZ2V0U2Nyb2xsQmFyc1Zpc2libGUoKSB7CisKKyAgICAgICAgcmV0dXJuIGZTY3JvbGxCYXJzVmlzaWJsZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHNjcm9sbEJhcnNWaXNpYmxlIHNldHRpbmcuCisgICAgICogQHBhcmFtIHZpcyB0aGUgc2Nyb2xsQmFyc1Zpc2libGUgc2V0dGluZy4gIElmIHRydWUsCisgICAgICogdGhlIHNjcm9sbGFibGUgc2V0dGluZyBpcyBhbHNvIHNldCB0byB0cnVlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNjcm9sbEJhcnNWaXNpYmxlKGJvb2xlYW4gdmlzKSB7CisKKyAgICAgICAgZlNjcm9sbEJhcnNWaXNpYmxlID0gdmlzOworICAgICAgICBmU2Nyb2xsYWJsZSB8PSB2aXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzZWxlY3RhYmxlIHNldHRpbmcsIHdoaWNoIGRldGVybWluZXMgd2hldGhlcgorICAgICAqIHRleHQgaW4gYW4gTVRleHRQYW5lbCBjYW4gYmUgc2VsZWN0ZWQuCisgICAgICogQHJldHVybiB0aGUgc2VsZWN0YWJsZSBzZXR0aW5nCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZ2V0U2VsZWN0YWJsZSgpIHsKKworICAgICAgICByZXR1cm4gZlNlbGVjdGFibGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBzZWxlY3RhYmxlIHNldHRpbmcuCisgICAgICogQHBhcmFtIHNlbGVjdGFibGUgdGhlIHNlbGVjdGFibGUgc2V0dGluZy4gIElmIGZhbHNlLAorICAgICAqIHRoZSBlZGl0YWJsZSBzZXR0aW5nIGlzIGFsc28gc2V0IHRvIGZhbHNlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNlbGVjdGFibGUoYm9vbGVhbiBzZWxlY3RhYmxlKSB7CisKKyAgICAgICAgZlNlbGVjdGFibGUgPSBzZWxlY3RhYmxlOworICAgICAgICBmRWRpdGFibGUgJj0gc2VsZWN0YWJsZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGVkaXRhYmxlIHNldHRpbmcsIHdoaWNoIGRldGVybWluZXMgd2hldGhlcgorICAgICAqIHRleHQgaW4gYW4gTVRleHRQYW5lbCBjYW4gYmUgZWRpdGVkLgorICAgICAqIEByZXR1cm4gdGhlIGVkaXRhYmxlIHNldHRpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBnZXRFZGl0YWJsZSgpIHsKKworICAgICAgICByZXR1cm4gZkVkaXRhYmxlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgZWRpdGFibGUgc2V0dGluZy4KKyAgICAgKiBAcGFyYW0gc2VsZWN0YWJsZSB0aGUgc2VsZWN0YWJsZSBzZXR0aW5nLiAgSWYgdHJ1ZSwKKyAgICAgKiB0aGUgc2VsZWN0YWJsZSBzZXR0aW5nIGlzIGFsc28gc2V0IHRvIHRydWUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RWRpdGFibGUoYm9vbGVhbiBlZGl0YWJsZSkgeworCisgICAgICAgIGZFZGl0YWJsZSA9IGVkaXRhYmxlOworICAgICAgICBmU2VsZWN0YWJsZSB8PSBlZGl0YWJsZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHdyYXBzIHNldHRpbmcsIHdoaWNoIGRldGVybWluZXMgd2hldGhlcgorICAgICAqIGxpbmVzIG9mIHRleHQgd3JhcCB0byB0aGUgbGVuZ3RoIG9mIHRoZSBNVGV4dFBhbmVsLAorICAgICAqIG9yIG9ubHkgYXQgcGFyYWdyYXBoIHNlcGFyYXRvcnMuCisgICAgICogQHJldHVybiB0aGUgd3JhcHMgc2V0dGluZworICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGdldFdyYXBzKCkgeworCisgICAgICAgIHJldHVybiBmV3JhcHM7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSB3cmFwcyBzZXR0aW5nLgorICAgICAqIEBwYXJhbSB3cmFwcyB0aGUgd3JhcHMgc2V0dGluZworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFdyYXBzKGJvb2xlYW4gd3JhcHMpIHsKKworICAgICAgICBmV3JhcHMgPSB3cmFwczsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBBdHRyaWJ1dGVNYXAgb2YgZGVmYXVsdCB2YWx1ZXMgZm9yIGNlcnRhaW4ga2V5cy4KKyAgICAgKiBXaGVuIGEga2V5IGluIHRoaXMgQXR0cmlidXRlTWFwIGlzIG5vdCBzcGVjaWZpZWQsIGl0cyB2YWx1ZQorICAgICAqIGlzIHRha2VuIGZyb20gdGhpcyBBdHRyaWJ1dGVNYXAuCisgICAgICogQHJldHVybiB0aGUgQXR0cmlidXRlTWFwIG9mIGRlZmF1bHQgdmFsdWVzCisgICAgICogQHNlZSBNVGV4dFBhbmVsI2dldERlZmF1bHRWYWx1ZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlTWFwIGdldERlZmF1bHRWYWx1ZXMoKSB7CisgICAgCisgICAgICAgIHJldHVybiBmRGVmYXVsdFZhbHVlczsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQWRkIHRoZSBrZXktdmFsdWUgcGFpcnMgaW4gdGhlIGdpdmVuIEF0dHJpYnV0ZU1hcCB0byB0aGUKKyAgICAgKiBkZWZhdWx0IHZhbHVlcy4gIElmIGEga2V5IGRvZXMgbm90IGFwcGVhciBpbiB0aGUgZ2l2ZW4KKyAgICAgKiBBdHRyaWJ1dGVNYXAsIGl0cyB2YWx1ZSBpbiB0aGUgZGVmYXVsdCB2YWx1ZSBtYXAgaXMKKyAgICAgKiB1bmNoYW5nZWQuCisgICAgICogQHBhcmFtIG1hcCBhbiBBdHRyaWJ1dGVNYXAgY29udGFpbmluZyBuZXcgZGVmYXVsdCB2YWx1ZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhZGREZWZhdWx0VmFsdWVzKEF0dHJpYnV0ZU1hcCBtYXApIHsKKyAgICAKKyAgICAgICAgZkRlZmF1bHRWYWx1ZXMgPSBmRGVmYXVsdFZhbHVlcy5hZGRBdHRyaWJ1dGVzKG1hcCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbXBhcmUgdGhpcyB0byBhbm90aGVyIE9iamVjdC4gIFRoaXMgaXMgZXF1YWwKKyAgICAgKiB0byBhbm90aGVyIE9iamVjdCBpZiB0aGUgb3RoZXIgT2JqZWN0IGlzIGEKKyAgICAgKiBUZXh0UGFuZWxTZXR0aW5ncyBpbnN0YW5jZSB3aXRoIHRoZSBzYW1lCisgICAgICogc2V0dGluZ3MgYXMgdGhpcyBvbmUuCisgICAgICogQHBhcmFtIHJocyB0aGUgT2JqZWN0IHRvIGNvbXBhcmUgdG8KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IHJocykgeworCisgICAgICAgIGlmIChyaHMgPT0gdGhpcykgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAocmhzID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIFRleHRQYW5lbFNldHRpbmdzIG90aGVyOworICAgICAgICB0cnkgeworICAgICAgICAgICAgb3RoZXIgPSAoVGV4dFBhbmVsU2V0dGluZ3MpIHJoczsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gb3RoZXIuZlNjcm9sbGFibGUgPT0gdGhpcy5mU2Nyb2xsYWJsZSAmJgorICAgICAgICAgICAgICAgb3RoZXIuZlNjcm9sbEJhcnNWaXNpYmxlID09IHRoaXMuZlNjcm9sbEJhcnNWaXNpYmxlICYmCisgICAgICAgICAgICAgICBvdGhlci5mU2VsZWN0YWJsZSA9PSB0aGlzLmZTZWxlY3RhYmxlICYmCisgICAgICAgICAgICAgICBvdGhlci5mRWRpdGFibGUgPT0gdGhpcy5mRWRpdGFibGUgJiYKKyAgICAgICAgICAgICAgIG90aGVyLmZXcmFwcyA9PSB0aGlzLmZXcmFwcyAmJgorICAgICAgICAgICAgICAgb3RoZXIuZkRlZmF1bHRWYWx1ZXMuZXF1YWxzKHRoaXMuZkRlZmF1bHRWYWx1ZXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgaGFzaCBjb2RlIGZvciB0aGlzIE9iamVjdC4KKyAgICAgKiBAcmV0dXJuIHRoZSBoYXNoIGNvZGUgZm9yIHRoaXMgT2JqZWN0CisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKworICAgICAgICBpbnQgY29kZSA9IGZEZWZhdWx0VmFsdWVzLmhhc2hDb2RlKCk7CisgICAgICAgIGNvZGUgPSBjb2RlKjIgKyAoZlNjcm9sbGFibGU/IDE6MCk7CisgICAgICAgIGNvZGUgPSBjb2RlKjIgKyAoZlNjcm9sbEJhcnNWaXNpYmxlPyAxOjApOworICAgICAgICBjb2RlID0gY29kZSoyICsgKGZTZWxlY3RhYmxlPyAxOjApOworICAgICAgICBjb2RlID0gY29kZSoyICsgKGZFZGl0YWJsZT8gMTowKTsKKyAgICAgICAgY29kZSA9IGNvZGUqMiArIChmV3JhcHM/IDE6MCk7CisKKyAgICAgICAgcmV0dXJuIGNvZGU7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0UmFuZ2UuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0UmFuZ2UuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mMWM3MTY4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRSYW5nZS5qYXZhCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IFRleHRSYW5nZS5qYXZhLHYgJCAkUmV2aXNpb246IDEuMSAkICREYXRlOiAyMDAwLzA0LzIwIDE3OjUxOjIzICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCisvKioKKyogQSA8VFQ+VGV4dFJhbmdlPC9UVD4gcmVwcmVzZW50cyBhIHJhbmdlIG9mIHRleHQgYm91bmRlZCBieSBhCisqIHN0YXJ0IChpbmNsdXNpdmUpLCBhbmQgYSBsaW1pdCAoZXhjbHVzaXZlKS4gIFtzdGFydCxsaW1pdCkKKyovCitmaW5hbCBjbGFzcyBUZXh0UmFuZ2UKK3sKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIC8qKiB0aGUgc3RhcnQgb2YgdGhlIHJhbmdlICovCisgICAgcHVibGljIGludCBzdGFydCA9IDA7CisgICAgLyoqIHRoZSBlbmQgb2YgdGhlIHJhbmdlICovCisgICAgcHVibGljIGludCBsaW1pdCA9IDA7CisKKyAgICAvKioKKyAgICAqIENyZWF0ZSBhIHRleHQgcmFuZ2UgZnJvbSB0d28gaW50cy4KKyAgICAqIEBwYXJhbSBzdGFydCB0aGUgc3RhcnQgb2YgdGhlIHJ1bgorICAgICogQHBhcmFtIGxpbWl0IHRoZSBlbmQgb2YgdGhlIHJ1bgorICAgICovCisgICAgcHVibGljIFRleHRSYW5nZShpbnQgc3RhcnQsIGludCBsaW1pdCkKKyAgICB7CisgICAgICAgIHRoaXMuc3RhcnQgPSBzdGFydDsKKyAgICAgICAgdGhpcy5saW1pdCA9IGxpbWl0OworICAgIH0KKworICAgIC8qKgorICAgICogQ3JlYXRlIGEgdGV4dCByYW5nZSBvZiAwLCAwLgorICAgICovCisgICAgcHVibGljIFRleHRSYW5nZSgpIHsKKyAgICAgICAgdGhpcy5zdGFydCA9IHRoaXMubGltaXQgPSAwOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0UmVwbGFjZW1lbnQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0UmVwbGFjZW1lbnQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44ZWQzYmJiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRSZXBsYWNlbWVudC5qYXZhCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IFRleHRSZXBsYWNlbWVudC5qYXZhLHYgJCAkUmV2aXNpb246IDEuMSAkICREYXRlOiAyMDAwLzA0LzIwIDE3OjUxOjIzICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0Zm9ybWF0LlRleHRPZmZzZXQ7CisKKy8qKgorICogVGhpcyBjbGFzcyBpcyB1c2VkIHRvIHBhc3MgYSBSRVBMQUNFIGNvbW1hbmQgdG8gQmVoYXZpb3JzLgorICovCitmaW5hbCBjbGFzcyBUZXh0UmVwbGFjZW1lbnQgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIGludCBmU3RhcnQ7CisgICAgcHJpdmF0ZSBpbnQgZkxpbWl0OworICAgIHByaXZhdGUgTUNvbnN0VGV4dCBmVGV4dDsKKyAgICBwcml2YXRlIFRleHRPZmZzZXQgZlNlbFN0YXJ0OworICAgIHByaXZhdGUgVGV4dE9mZnNldCBmU2VsTGltaXQ7CisKKyAgICBUZXh0UmVwbGFjZW1lbnQoaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgIE1Db25zdFRleHQgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxMaW1pdCkgeworCisgICAgICAgIGZTdGFydCA9IHN0YXJ0OworICAgICAgICBmTGltaXQgPSBsaW1pdDsKKyAgICAgICAgZlRleHQgPSB0ZXh0OworICAgICAgICBmU2VsU3RhcnQgPSBzZWxTdGFydDsKKyAgICAgICAgZlNlbExpbWl0ID0gc2VsTGltaXQ7CisgICAgfQorCisgICAgaW50IGdldFN0YXJ0KCkgeworCisgICAgICAgIHJldHVybiBmU3RhcnQ7CisgICAgfQorCisgICAgaW50IGdldExpbWl0KCkgeworCisgICAgICAgIHJldHVybiBmTGltaXQ7CisgICAgfQorCisgICAgTUNvbnN0VGV4dCBnZXRUZXh0KCkgeworCisgICAgICAgIHJldHVybiBmVGV4dDsKKyAgICB9CisKKyAgICBUZXh0T2Zmc2V0IGdldFNlbGVjdGlvblN0YXJ0KCkgeworCisgICAgICAgIHJldHVybiBmU2VsU3RhcnQ7CisgICAgfQorCisgICAgVGV4dE9mZnNldCBnZXRTZWxlY3Rpb25MaW1pdCgpIHsKKworICAgICAgICByZXR1cm4gZlNlbExpbWl0OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0U2VsZWN0aW9uLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dFNlbGVjdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQ0YTdhMzgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dFNlbGVjdGlvbi5qYXZhCkBAIC0wLDAgKzEsOTI2IEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBUZXh0U2VsZWN0aW9uLmphdmEsdiAkICRSZXZpc2lvbjogMS4yICQgJERhdGU6IDIwMDEvMTAvMzAgMDI6NDI6NDggJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8qCisgICAgNy8xLzk3IC0gY2FyZXQgYmxpbmtzCisKKyAgICA3LzMvOTcgLSBmQW5jaG9yIGlzIG5vIGxvbmdlciByZXN0cmljdGVkIHRvIHRoZSBzdGFydCBvciBlbmQgb2YgdGhlIHNlbGVjdGlvbi4ge2picn0KKyAgICAgICAgICAgIEFsc28sIHJlbW92ZWQgZlZpc2libGUgLSBpdCB3YXMgaWRlbnRpY2FsIHRvIGVuYWJsZWQoKS4KKyovCisKK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczsKK2ltcG9ydCBqYXZhLmF3dC5Db2xvcjsKK2ltcG9ydCBqYXZhLmF3dC5SZWN0YW5nbGU7CitpbXBvcnQgamF2YS5hd3QuUG9pbnQ7CisKK2ltcG9ydCBqYXZhLnRleHQuQnJlYWtJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5Nb3VzZUV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LktleUV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkZvY3VzRXZlbnQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRmb3JtYXQuVGV4dE9mZnNldDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdC5NRm9ybWF0dGVyOworCitjbGFzcyBUZXh0U2VsZWN0aW9uIGV4dGVuZHMgQmVoYXZpb3IgaW1wbGVtZW50cyBSdW5uYWJsZSB7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBzdGF0aWMgZmluYWwgQ29sb3IgICAgICAgICAgSElHSExJR0hUQ09MT1IgPSBDb2xvci5waW5rOworCisgICAgcHJpdmF0ZSBUZXh0Q29tcG9uZW50ICAgICAgIGZUZXh0Q29tcG9uZW50OworICAgIHByaXZhdGUgTUNvbnN0VGV4dCAgICAgICAgICBmVGV4dDsKKyAgICBwcml2YXRlIFRleHRPZmZzZXQgICAgICAgICAgZlN0YXJ0OworICAgIHByaXZhdGUgVGV4dE9mZnNldCAgICAgICAgICBmTGltaXQ7CisgICAgcHJpdmF0ZSBUZXh0T2Zmc2V0ICAgICAgICAgIGZBbmNob3I7CisgICAgcHJpdmF0ZSBUZXh0T2Zmc2V0ICAgICAgICAgIGZVcERvd25BbmNob3IgPSBudWxsOworICAgIHByaXZhdGUgQnJlYWtJdGVyYXRvciAgICAgICBmQm91bmRhcmllcyA9IG51bGw7CisgICAgcHJpdmF0ZSBDb2xvciAgICAgICAgICAgICAgIGZIaWdobGlnaHRDb2xvciA9IEhJR0hMSUdIVENPTE9SOworICAgIHByaXZhdGUgUGFuZWxFdmVudEJyb2FkY2FzdGVyICAgZkxpc3RlbmVyOworICAgIHByaXZhdGUgUnVuU3RyYXRlZ3kgICAgICAgICBmUnVuU3RyYXRlZ3k7CisgICAgcHJpdmF0ZSBib29sZWFuICAgICAgICAgICAgIGZNb3VzZURvd24gPSBmYWxzZTsKKyAgICBwcml2YXRlIGJvb2xlYW4gICAgICAgICAgICAgZkhhbmRsaW5nS2V5T3JDb21tYW5kID0gZmFsc2U7CisgICAgCisgICAgcHJpdmF0ZSBib29sZWFuIGZDYXJldFNob3VsZEJsaW5rOworICAgIHByaXZhdGUgYm9vbGVhbiBmQ2FyZXRJc1Zpc2libGU7CisgICAgcHJpdmF0ZSBpbnQgZkNhcmV0Q291bnQ7CisKKyAgICAvLyBmb3JtZXJseSBpbiBiYXNlIGNsYXNzCisgICAgcHJpdmF0ZSBib29sZWFuIGZFbmFibGVkOworCisgICAgcHJpdmF0ZSBNb3VzZUV2ZW50IGZQZW5kaW5nTW91c2VFdmVudCA9IG51bGw7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQga0NhcmV0SW50ZXJ2YWwgPSA1MDA7CisKKyAgICBwdWJsaWMgdm9pZCBydW4oKSB7CisKKyAgICAgICAgZmluYWwgUnVubmFibGUgYmxpbmtDYXJldCA9IG5ldyBSdW5uYWJsZSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHJ1bigpIHsKKyAgICAgICAgICAgICAgICBmQ2FyZXRJc1Zpc2libGUgPSAhZkNhcmV0SXNWaXNpYmxlOworICAgICAgICAgICAgICAgIEdyYXBoaWNzIGcgPSBmVGV4dENvbXBvbmVudC5nZXRHcmFwaGljcygpOworICAgICAgICAgICAgICAgIGlmIChnICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oImNhcmV0SXNWaXNpYmxlOiAiICsgZkNhcmV0SXNWaXNpYmxlKTsKKyAgICAgICAgICAgICAgICAgICAgZHJhd1NlbGVjdGlvbihnLCBmQ2FyZXRJc1Zpc2libGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gTm90IHN1cmUgd2hhdCBlbHNlIHRvIGRvOgorICAgICAgICAgICAgICAgICAgICBmQ2FyZXRTaG91bGRCbGluayA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIC8vIGJsaW5rIGNhcmV0CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisKKyAgICAgICAgICAgIHN5bmNocm9uaXplZCh0aGlzKSB7CisKKyAgICAgICAgICAgICAgICB3aGlsZSAoIWZDYXJldFNob3VsZEJsaW5rKSB7CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICB3YWl0KCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2F0Y2goSW50ZXJydXB0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDYXVnaHQgSW50ZXJydXB0ZWRFeGNlcHRpb24gaW4gY2FyZXQgdGhyZWFkLiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgKytmQ2FyZXRDb3VudDsKKworICAgICAgICAgICAgICAgIGlmIChmQ2FyZXRDb3VudCAlIDIgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBmUnVuU3RyYXRlZ3kuZG9JdChibGlua0NhcmV0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgVGhyZWFkLnNsZWVwKGtDYXJldEludGVydmFsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworCisKKyAgICBwdWJsaWMgVGV4dFNlbGVjdGlvbihUZXh0Q29tcG9uZW50IHRleHRDb21wb25lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgUGFuZWxFdmVudEJyb2FkY2FzdGVyIGxpc3RlbmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgIFJ1blN0cmF0ZWd5IHJ1blN0cmF0ZWd5KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGZUZXh0Q29tcG9uZW50ID0gdGV4dENvbXBvbmVudDsKKyAgICAgICAgZlRleHQgPSB0ZXh0Q29tcG9uZW50LmdldFRleHQoKTsKKyAgICAgICAgZkxpc3RlbmVyID0gbGlzdGVuZXI7CisgICAgICAgIGZSdW5TdHJhdGVneSA9IHJ1blN0cmF0ZWd5OworICAgICAgICAKKyAgICAgICAgZlN0YXJ0ID0gbmV3IFRleHRPZmZzZXQoKTsKKyAgICAgICAgZkxpbWl0ID0gbmV3IFRleHRPZmZzZXQoKTsKKyAgICAgICAgZkFuY2hvciA9IG5ldyBUZXh0T2Zmc2V0KCk7CisgICAgICAgIGZNb3VzZURvd24gPSBmYWxzZTsKKworICAgICAgICBmQ2FyZXRDb3VudCA9IDA7CisgICAgICAgIGZDYXJldElzVmlzaWJsZSA9IHRydWU7CisgICAgICAgIGZDYXJldFNob3VsZEJsaW5rID0gZmFsc2U7CisgICAgICAgIHNldEVuYWJsZWQoZmFsc2UpOworCisgICAgICAgIFRocmVhZCBjYXJldFRocmVhZCA9IG5ldyBUaHJlYWQodGhpcyk7CisgICAgICAgIGNhcmV0VGhyZWFkLnNldERhZW1vbih0cnVlKTsKKyAgICAgICAgY2FyZXRUaHJlYWQuc3RhcnQoKTsKKyAgICB9CisKKyAgICBib29sZWFuIGVuYWJsZWQoKSB7CisKKyAgICAgICAgcmV0dXJuIGZFbmFibGVkOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBzZXRFbmFibGVkKGJvb2xlYW4gZW5hYmxlZCkgeworCisgICAgICAgIGZFbmFibGVkID0gZW5hYmxlZDsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiB0ZXh0Q29udHJvbEV2ZW50T2NjdXJyZWQoQmVoYXZpb3IuRXZlbnRUeXBlIGV2ZW50LCBPYmplY3Qgd2hhdCkgeworCisgICAgICAgIGJvb2xlYW4gcmVzdWx0OworICAgICAgICBmSGFuZGxpbmdLZXlPckNvbW1hbmQgPSB0cnVlOworICAgICAgICAKKyAgICAgICAgaWYgKGV2ZW50ID09IEJlaGF2aW9yLlNFTEVDVCkgeworICAgICAgICAgICAgc2VsZWN0KChUZXh0UmFuZ2UpIHdoYXQpOworICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChldmVudCA9PSBCZWhhdmlvci5DT1BZKSB7CisgICAgICAgICAgICBmVGV4dENvbXBvbmVudC5nZXRDbGlwYm9hcmQoKS5zZXRDb250ZW50cyhmVGV4dC5leHRyYWN0KGZTdGFydC5mT2Zmc2V0LCBmTGltaXQuZk9mZnNldCkpOworICAgICAgICAgICAgZkxpc3RlbmVyLnRleHRTdGF0ZUNoYW5nZWQoVGV4dFBhbmVsRXZlbnQuQ0xJUEJPQVJEX0NIQU5HRUQpOworICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmSGFuZGxpbmdLZXlPckNvbW1hbmQgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBhZHZhbmNlVG9OZXh0Qm91bmRhcnkoVGV4dE9mZnNldCBvZmZzZXQpIHsKKyAgICAKKyAgICAgICAgLy8gSWYgdGhlcmUncyBubyBib3VuZGFyaWVzIG9iamVjdCwgb3IgaWYgcG9zaXRpb24gYXQgdGhlIGVuZCBvZiB0aGUKKyAgICAgICAgLy8gZG9jdW1lbnQsIHJldHVybiB0aGUgb2Zmc2V0IHVuY2hhbmdlZAorICAgICAgICBpZiAoZkJvdW5kYXJpZXMgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgcG9zaXRpb24gPSBvZmZzZXQuZk9mZnNldDsKKyAgICAgICAgCisgICAgICAgIGlmIChwb3NpdGlvbiA+PSBmVGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8gSWYgcG9zaXRpb24gaXMgYXQgYSBib3VuZGFyeSBhbmQgb2Zmc2V0IGlzIGJlZm9yZSBwb3NpdGlvbiwKKyAgICAgICAgLy8gbGVhdmUgaXQgdW5jaGFuZ2VkLiAgT3RoZXJ3aXNlIG1vdmUgdG8gbmV4dCBib3VuZGFyeS4KKyAgICAgICAgaW50IG5leHRQb3MgPSBmQm91bmRhcmllcy5mb2xsb3dpbmcocG9zaXRpb24pOworICAgICAgICBpZiAoZkJvdW5kYXJpZXMucHJldmlvdXMoKSA9PSBwb3NpdGlvbiAmJiAKKyAgICAgICAgICAgICAgICBvZmZzZXQuZlBsYWNlbWVudD09b2Zmc2V0LkJFRk9SRV9PRkZTRVQpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgb2Zmc2V0LnNldE9mZnNldChuZXh0UG9zLCBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVCk7CisgICAgfQorCisgICAgcHJvdGVjdGVkIHZvaWQgYWR2YW5jZVRvUHJldmlvdXNCb3VuZGFyeShUZXh0T2Zmc2V0IG9mZnNldCkgeworICAgIAorICAgICAgICBhZHZhbmNlVG9QcmV2aW91c0JvdW5kYXJ5KG9mZnNldCwgZmFsc2UpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgYWR2YW5jZVRvUHJldmlvdXNCb3VuZGFyeShUZXh0T2Zmc2V0IG9mZnNldCwgYm9vbGVhbiBhbHdheXNNb3ZlKSB7CisgICAgICAgIC8vIGlmIHRoZXJlJ3Mgbm8gYm91bmRhcmllcyBvYmplY3QsIG9yIGlmIHdlJ3JlIHNpdHRpbmcgYXQgdGhlIGJlZ2lubmluZworICAgICAgICAvLyBvZiB0aGUgZG9jdW1lbnQsIHJldHVybiB0aGUgb2Zmc2V0IHVuY2hhbmdlZAorICAgICAgICBpZiAoZkJvdW5kYXJpZXMgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgcG9zaXRpb24gPSBvZmZzZXQuZk9mZnNldDsKKworICAgICAgICBpZiAocG9zaXRpb24gPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBJZiBwb3NpdGlvbiBpcyBhdCBhIGJvdW5kYXJ5LCBsZWF2ZSBpdCB1bmNoYW5nZWQuICBPdGhlcndpc2UKKyAgICAgICAgLy8gbW92ZSB0byBwcmV2aW91cyBib3VuZGFyeS4KKyAgICAgICAgaWYgKHBvc2l0aW9uID09IGZUZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICBmQm91bmRhcmllcy5sYXN0KCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmQm91bmRhcmllcy5mb2xsb3dpbmcocG9zaXRpb24pOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgcHJldlBvcyA9IGZCb3VuZGFyaWVzLnByZXZpb3VzKCk7CisgICAgICAgIAorICAgICAgICBpZiAocHJldlBvcyA9PSBwb3NpdGlvbikgeworICAgICAgICAgICAgaWYgKCFhbHdheXNNb3ZlICYmIG9mZnNldC5mUGxhY2VtZW50PT1vZmZzZXQuQUZURVJfT0ZGU0VUKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwcmV2UG9zID0gZkJvdW5kYXJpZXMucHJldmlvdXMoKTsKKyAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAvLyBhbmQgZmluYWxseSB1cGRhdGUgdGhlIHJlYWwgb2Zmc2V0IHdpdGggdGhpcyBuZXcgcG9zaXRpb24gd2UndmUgZm91bmQKKyAgICAgICAgb2Zmc2V0LnNldE9mZnNldChwcmV2UG9zLCBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGRvQXJyb3dLZXkoS2V5RXZlbnQgZSwgaW50IGtleSkgeworCisgICAgICAgIC8vIHdoZW4gdGhlcmUncyBhIHNlbGVjdGlvbiByYW5nZSwgdGhlIGxlZnQgYW5kIHVwIGFycm93IGtleXMgcGxhY2UgYW4KKyAgICAgICAgLy8gaW5zZXJ0aW9uIHBvaW50IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHJhbmdlLCBhbmQgdGhlIHJpZ2h0IGFuZCBkb3duCisgICAgICAgIC8vIGtleXMgcGxhY2UgYW4gaW5zZXJ0aW9uIHBvaW50IGF0IHRoZSBlbmQgb2YgdGhlIHJhbmdlICh1bmxlc3MgdGhlIHNoaWZ0CisgICAgICAgIC8vIGtleSBpcyBkb3duLCBvZiBjb3Vyc2UpCisKKyAgICAgICAgaWYgKCFmU3RhcnQuZXF1YWxzKGZMaW1pdCkgJiYgIWUuaXNTaGlmdERvd24oKSkgeworICAgICAgICAgICAgaWYgKGtleSA9PSBLZXlFdmVudC5WS19MRUZUIHx8IGtleSA9PSBLZXlFdmVudC5WS19VUCkKKyAgICAgICAgICAgICAgICBzZXRTZWxSYW5nZUFuZERyYXcoZlN0YXJ0LCBmU3RhcnQsIGZTdGFydCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgc2V0U2VsUmFuZ2VBbmREcmF3KGZMaW1pdCwgZkxpbWl0LCBmTGltaXQpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKCFmQW5jaG9yLmVxdWFscyhmU3RhcnQpKQorICAgICAgICAgICAgICAgIGZBbmNob3IuYXNzaWduKGZMaW1pdCk7CisKKyAgICAgICAgICAgIFRleHRPZmZzZXQgIGxpdmVFbmQgPSAoZlN0YXJ0LmVxdWFscyhmQW5jaG9yKSkgPyBmTGltaXQgOiBmU3RhcnQ7CisgICAgICAgICAgICBUZXh0T2Zmc2V0ICBuZXdQb3MgPSBuZXcgVGV4dE9mZnNldCgpOworCisgICAgICAgICAgICAvLyBpZiB0aGUgY29udHJvbCBrZXkgaXMgZG93biwgdGhlIGxlZnQgYW5kIHJpZ2h0IGFycm93IGtleXMgbW92ZSBieSB3aG9sZQorICAgICAgICAgICAgLy8gd29yZCBpbiB0aGUgYXBwcm9wcmlhdGUgZGlyZWN0aW9uICh3ZSB1c2UgYSBsaW5lIGJyZWFrIG9iamVjdCBzbyB0aGF0IHdlJ3JlCisgICAgICAgICAgICAvLyBub3QgdHJlYXRpbmcgc3BhY2VzIGFuZCBwdW5jdHVhdGlvbiBhcyB3b3JkcykKKyAgICAgICAgICAgIGlmIChlLmlzQ29udHJvbERvd24oKSAmJiAoa2V5ID09IEtleUV2ZW50LlZLX0xFRlQgfHwga2V5ID09IEtleUV2ZW50LlZLX1JJR0hUKSkgeworICAgICAgICAgICAgICAgIGZVcERvd25BbmNob3IgPSBudWxsOworICAgICAgICAgICAgICAgIGZCb3VuZGFyaWVzID0gQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UoKTsKKyAgICAgICAgICAgICAgICBmQm91bmRhcmllcy5zZXRUZXh0KGZUZXh0LmNyZWF0ZUNoYXJhY3Rlckl0ZXJhdG9yKCkpOworCisgICAgICAgICAgICAgICAgbmV3UG9zLmFzc2lnbihsaXZlRW5kKTsKKyAgICAgICAgICAgICAgICBpZiAoa2V5ID09IEtleUV2ZW50LlZLX1JJR0hUKQorICAgICAgICAgICAgICAgICAgICBhZHZhbmNlVG9OZXh0Qm91bmRhcnkobmV3UG9zKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGFkdmFuY2VUb1ByZXZpb3VzQm91bmRhcnkobmV3UG9zLCB0cnVlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gaWYgd2UgZ2V0IGRvd24gdG8gaGVyZSwgdGhpcyBpcyBhIHBsYWluLXZhbmlsbGEgaW5zZXJ0aW9uLXBvaW50IG1vdmUsCisgICAgICAgICAgICAvLyBvciB0aGUgc2hpZnQga2V5IGlzIGRvd24gYW5kIHdlJ3JlIGV4dGVuZGluZyBvciBzaG9ydGVuaW5nIHRoZSBzZWxlY3Rpb24KKyAgICAgICAgICAgIGVsc2UgeworCisgICAgICAgICAgICAgICAgLy8gZlVwRG93bkFuY2hvciBpcyB1c2VkIHRvIGtlZXAgdHJhY2sgb2YgdGhlIGhvcml6b250YWwgcG9zaXRpb24KKyAgICAgICAgICAgICAgICAvLyBhY3Jvc3MgYSBydW4gb2YgdXAgb3IgZG93biBhcnJvdyBrZXlzICh0aGlzIHByZXZlbnRzIGFjY3VtdWxhdGVkCisgICAgICAgICAgICAgICAgLy8gZXJyb3IgZnJvbSBkZXN0cm95aW5nIG91ciBob3Jpem9udGFsIHBvc2l0aW9uKQorICAgICAgICAgICAgICAgIGlmIChrZXkgPT0gS2V5RXZlbnQuVktfTEVGVCB8fCBrZXkgPT0gS2V5RXZlbnQuVktfUklHSFQpCisgICAgICAgICAgICAgICAgICAgIGZVcERvd25BbmNob3IgPSBudWxsOworICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoZlVwRG93bkFuY2hvciA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmVXBEb3duQW5jaG9yID0gbmV3IFRleHRPZmZzZXQobGl2ZUVuZCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBzaG9ydCAgIGRpcmVjdGlvbiA9IE1Gb3JtYXR0ZXIuZVJpZ2h0OyAgLy8ganVzdCB0byBoYXZlIGEgZGVmYXVsdC4uLgorCisgICAgICAgICAgICAgICAgc3dpdGNoIChrZXkpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5WS19VUDogZGlyZWN0aW9uID0gTUZvcm1hdHRlci5lVXA7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0RPV046IGRpcmVjdGlvbiA9IE1Gb3JtYXR0ZXIuZURvd247IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0xFRlQ6IGRpcmVjdGlvbiA9IE1Gb3JtYXR0ZXIuZUxlZnQ7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX1JJR0hUOiBkaXJlY3Rpb24gPSBNRm9ybWF0dGVyLmVSaWdodDsgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gdXNlIHRoZSBmb3JtYXR0ZXIgdG8gZGV0ZXJtaW5lIHRoZSBhY3R1YWwgZWZmZWN0IG9mIHRoZSBhcnJvdyBrZXkKKyAgICAgICAgICAgICAgICBmVGV4dENvbXBvbmVudC5maW5kTmV3SW5zZXJ0aW9uT2Zmc2V0KG5ld1BvcywgZlVwRG93bkFuY2hvciwgbGl2ZUVuZCwgZGlyZWN0aW9uKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gaWYgdGhlIHNoaWZ0IGtleSBpcyBkb3duLCB0aGUgc2VsZWN0aW9uIHJhbmdlIGlzIGZyb20gdGhlIGFuY2hvciBwb2ludAorICAgICAgICAgICAgLy8gdGhlIHNpdGUgb2YgdGhlIGxhc3QgaW5zZXJ0aW9uIHBvaW50IG9yIHRoZSBiZWdpbm5pbmcgcG9pbnQgb2YgdGhlIGxhc3QKKyAgICAgICAgICAgIC8vIHNlbGVjdGlvbiBkcmFnIG9wZXJhdGlvbikgdG8gdGhlIG5ld2x5LWNhbGN1bGF0ZWQgcG9zaXRpb247IGlmIHRoZQorICAgICAgICAgICAgLy8gc2hpZnQga2V5IGlzIGRvd24sIHRoZSBuZXdseS1jYWxjdWxhdGVkIHBvc2l0aW9uIGlzIHRoZSBpbnNlcnRpb24gcG9pbnQgcG9zaXRpb24KKyAgICAgICAgICAgIGlmICghZS5pc1NoaWZ0RG93bigpKQorICAgICAgICAgICAgICAgIHNldFNlbFJhbmdlQW5kRHJhdyhuZXdQb3MsIG5ld1BvcywgbmV3UG9zKTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChuZXdQb3MubGVzc1RoYW4oZkFuY2hvcikpCisgICAgICAgICAgICAgICAgICAgIHNldFNlbFJhbmdlQW5kRHJhdyhuZXdQb3MsIGZBbmNob3IsIGZBbmNob3IpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgc2V0U2VsUmFuZ2VBbmREcmF3KGZBbmNob3IsIG5ld1BvcywgZkFuY2hvcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBzY3JvbGxUb1Nob3dTZWxlY3Rpb25FbmQoKTsKKyAgICAgICAgZkJvdW5kYXJpZXMgPSBudWxsOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkb0VuZEtleShLZXlFdmVudCBlKSB7CisgICAgICAgIC8vIGN0cmwtZW5kIG1vdmVzIHRoZSBpbnNlcnRzaW9uIHBvaW50IHRvIHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50LAorICAgICAgICAvLyBjdHJsLXNoaWZ0LWVuZCBleHRlbmRzIHRoZSBzZWxlY3Rpb24gc28gdGhhdCBpdCBlbmRzIGF0IHRoZSBlbmQKKyAgICAgICAgLy8gb2YgdGhlIGRvY3VtZW50CisKKyAgICAgICAgVGV4dE9mZnNldCBhY3RpdmVFbmQsIGFuY2hvcjsKKworICAgICAgICBpZiAoZkFuY2hvci5lcXVhbHMoZlN0YXJ0KSkgeworICAgICAgICAgICAgYWN0aXZlRW5kID0gbmV3IFRleHRPZmZzZXQoZlN0YXJ0KTsKKyAgICAgICAgICAgIGFuY2hvciA9IG5ldyBUZXh0T2Zmc2V0KGZMaW1pdCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBhY3RpdmVFbmQgPSBuZXcgVGV4dE9mZnNldChmTGltaXQpOworICAgICAgICAgICAgYW5jaG9yID0gbmV3IFRleHRPZmZzZXQoZlN0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChlLmlzQ29udHJvbERvd24oKSkgeworICAgICAgICAgICAgVGV4dE9mZnNldCBlbmQgPSBuZXcgVGV4dE9mZnNldChmVGV4dC5sZW5ndGgoKSwgVGV4dE9mZnNldC5CRUZPUkVfT0ZGU0VUKTsKKworICAgICAgICAgICAgaWYgKGUuaXNTaGlmdERvd24oKSkKKyAgICAgICAgICAgICAgICBzZXRTZWxSYW5nZUFuZERyYXcoYW5jaG9yLCBlbmQsIGFuY2hvcik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgc2V0U2VsUmFuZ2VBbmREcmF3KGVuZCwgZW5kLCBlbmQpOworICAgICAgICB9CisKKyAgICAgICAgLy8gZW5kIG1vdmVzIHRoZSBpbnNlcnRpb24gcG9pbnQgdG8gdGhlIGVuZCBvZiB0aGUgbGluZSBjb250YWluaW5nCisgICAgICAgIC8vIHRoZSBlbmQgb2YgdGhlIGN1cnJlbnQgc2VsZWN0aW9uCisgICAgICAgIC8vIHNoaWZ0LWVuZCBleHRlbmRzIHRoZSBzZWxlY3Rpb24gdG8gdGhlIGVuZCBvZiB0aGUgbGluZSBjb250YWluaW5nCisgICAgICAgIC8vIHRoZSBlbmQgb2YgdGhlIGN1cnJlbnQgc2VsZWN0aW9uCisKKyAgICAgICAgZWxzZSB7CisKKyAgICAgICAgICAgIGludCBvbGRPZmZzZXQgPSBhY3RpdmVFbmQuZk9mZnNldDsKKworICAgICAgICAgICAgYWN0aXZlRW5kLmZPZmZzZXQgPSBmVGV4dENvbXBvbmVudC5saW5lUmFuZ2VMaW1pdChmVGV4dENvbXBvbmVudC5saW5lQ29udGFpbmluZyhhY3RpdmVFbmQpKTsKKyAgICAgICAgICAgIGFjdGl2ZUVuZC5mUGxhY2VtZW50ID0gVGV4dE9mZnNldC5CRUZPUkVfT0ZGU0VUOworCisgICAgICAgICAgICBpZiAoZlRleHQucGFyYWdyYXBoTGltaXQob2xkT2Zmc2V0KSA9PSBhY3RpdmVFbmQuZk9mZnNldCAmJgorICAgICAgICAgICAgICAgICAgICBhY3RpdmVFbmQuZk9mZnNldCAhPSBmVGV4dC5sZW5ndGgoKSAmJiBhY3RpdmVFbmQuZk9mZnNldCA+IG9sZE9mZnNldCkgeworICAgICAgICAgICAgICAgIGFjdGl2ZUVuZC5mT2Zmc2V0LS07CisgICAgICAgICAgICAgICAgYWN0aXZlRW5kLmZQbGFjZW1lbnQgPSBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCFlLmlzU2hpZnREb3duKCkpCisgICAgICAgICAgICAgICAgc2V0U2VsUmFuZ2VBbmREcmF3KGFjdGl2ZUVuZCwgYWN0aXZlRW5kLCBhY3RpdmVFbmQpOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGFjdGl2ZUVuZC5sZXNzVGhhbihhbmNob3IpKQorICAgICAgICAgICAgICAgICAgICBzZXRTZWxSYW5nZUFuZERyYXcoYWN0aXZlRW5kLCBhbmNob3IsIGFuY2hvcik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBzZXRTZWxSYW5nZUFuZERyYXcoYW5jaG9yLCBhY3RpdmVFbmQsIGFuY2hvcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBzY3JvbGxUb1Nob3dTZWxlY3Rpb25FbmQoKTsKKyAgICAgICAgZkJvdW5kYXJpZXMgPSBudWxsOworICAgICAgICBmVXBEb3duQW5jaG9yID0gbnVsbDsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZG9Ib21lS2V5KEtleUV2ZW50IGUpIHsKKyAgICAgICAgLy8gY3RybC1ob21lIG1vdmVzIHRoZSBpbnNlcnRpb24gcG9pbnQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgZG9jdW1lbnQsCisgICAgICAgIC8vIGN0cmwtc2hpZnQtaG9tZSBleHRlbmRzIHRoZSBzZWxlY3Rpb24gc28gdGhhdCBpdCBiZWdpbnMgYXQgdGhlIGJlZ2lubmluZworICAgICAgICAvLyBvZiB0aGUgZG9jdW1lbnQKKworICAgICAgICBUZXh0T2Zmc2V0IGFjdGl2ZUVuZCwgYW5jaG9yOworCisgICAgICAgIGlmIChmQW5jaG9yLmVxdWFscyhmU3RhcnQpKSB7CisgICAgICAgICAgICBhY3RpdmVFbmQgPSBuZXcgVGV4dE9mZnNldChmU3RhcnQpOworICAgICAgICAgICAgYW5jaG9yID0gbmV3IFRleHRPZmZzZXQoZkxpbWl0KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGFjdGl2ZUVuZCA9IG5ldyBUZXh0T2Zmc2V0KGZMaW1pdCk7CisgICAgICAgICAgICBhbmNob3IgPSBuZXcgVGV4dE9mZnNldChmU3RhcnQpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGUuaXNDb250cm9sRG93bigpKSB7CisKKyAgICAgICAgICAgIFRleHRPZmZzZXQgc3RhcnQgPSBuZXcgVGV4dE9mZnNldCgwLCBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVCk7CisgICAgICAgICAgICBpZiAoZS5pc1NoaWZ0RG93bigpKQorICAgICAgICAgICAgICAgIHNldFNlbFJhbmdlQW5kRHJhdyhzdGFydCwgYW5jaG9yLCBhbmNob3IpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHNldFNlbFJhbmdlQW5kRHJhdyhzdGFydCwgc3RhcnQsIHN0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGhvbWUgbW92ZXMgdGhlIGluc2VydGlvbiBwb2ludCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaW5lIGNvbnRhaW5pbmcKKyAgICAgICAgLy8gdGhlIGJlZ2lubmluZyBvZiB0aGUgY3VycmVudCBzZWxlY3Rpb24KKyAgICAgICAgLy8gc2hpZnQtaG9tZSBleHRlbmRzIHRoZSBzZWxlY3Rpb24gdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgbGluZSBjb250YWluaW5nCisgICAgICAgIC8vIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGN1cnJlbnQgc2VsZWN0aW9uCisKKyAgICAgICAgZWxzZSB7CisKKyAgICAgICAgICAgIGFjdGl2ZUVuZC5mT2Zmc2V0ID0gZlRleHRDb21wb25lbnQubGluZVJhbmdlTG93KGZUZXh0Q29tcG9uZW50LmxpbmVDb250YWluaW5nKGFjdGl2ZUVuZCkpOworICAgICAgICAgICAgYWN0aXZlRW5kLmZQbGFjZW1lbnQgPSBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVDsKKworICAgICAgICAgICAgaWYgKCFlLmlzU2hpZnREb3duKCkpCisgICAgICAgICAgICAgICAgc2V0U2VsUmFuZ2VBbmREcmF3KGFjdGl2ZUVuZCwgYWN0aXZlRW5kLCBhY3RpdmVFbmQpOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGFjdGl2ZUVuZC5sZXNzVGhhbihhbmNob3IpKQorICAgICAgICAgICAgICAgICAgICBzZXRTZWxSYW5nZUFuZERyYXcoYWN0aXZlRW5kLCBhbmNob3IsIGFuY2hvcik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBzZXRTZWxSYW5nZUFuZERyYXcoYW5jaG9yLCBhY3RpdmVFbmQsIGFuY2hvcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBzY3JvbGxUb1Nob3dTZWxlY3Rpb25FbmQoKTsKKyAgICAgICAgZkJvdW5kYXJpZXMgPSBudWxsOworICAgICAgICBmVXBEb3duQW5jaG9yID0gbnVsbDsKKyAgICB9CisKKyAgICAvKiogZHJhd3Mgb3IgZXJhc2VzIHRoZSBjdXJyZW50IHNlbGVjdGlvbgorICAgICogRHJhd3Mgb3IgZXJhc2VzIHRoZSBoaWdobGlnaHQgcmVnaW9uIG9yIGluc2VydGlvbiBjYXJldCBmb3IgdGhlIGN1cnJlbnQgc2VsZWN0aW9uCisgICAgKiByYW5nZS4KKyAgICAqIEBwYXJhbSBnIFRoZSBncmFwaGljcyBlbnZpcm9ubWVudCB0byBkcmF3IGludG8KKyAgICAqIEBwYXJhbSB2aXNpYmxlIElmIHRydWUsIGRyYXcgdGhlIHNlbGVjdGlvbjsgaWYgZmFsc2UsIGVyYXNlIGl0CisgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBkcmF3U2VsZWN0aW9uKEdyYXBoaWNzIGcsIGJvb2xlYW4gdmlzaWJsZSkgeworICAgICAgICBkcmF3U2VsZWN0aW9uUmFuZ2UoZywgZlN0YXJ0LCBmTGltaXQsIHZpc2libGUpOworICAgIH0KKworICAgIC8qKiBkcmF3cyBvciBlcmFzZXMgYSBzZWxlY3Rpb24gaGlnaGxpZ2h0IGF0IHRoZSBzcGVjZmllZCBwb3NpdGlvbnMKKyAgICAqIERyYXdzIG9yIGVyYXNlcyBhIHNlbGVjdGlvbiBoaWdobGlnaHQgb3IgaW5zZXJ0aW9uIGNhcmV0IGNvcnJlc3BvbmRpbmcgdG8KKyAgICAqIHRoZSBzcGVjaWZpZWQgc2VsZWNpb24gcmFuZ2UKKyAgICAqIEBwYXJhbSBnIFRoZSBncmFwaGljcyBlbnZpcm9ubWVudCB0byBkcmF3IGludG8uICBJZiBudWxsLCB0aGlzIG1ldGhvZCBkb2VzIG5vdGhpbmcuCisgICAgKiBAcGFyYW0gc3RhcnQgVGhlIGJlZ2lubmluZyBvZiB0aGUgcmFuZ2UgdG8gaGlnaGxpZ2h0CisgICAgKiBAcGFyYW0gbGltaXQgVGhlIGVuZCBvZiB0aGUgcmFuZ2UgdG8gaGlnaGxpZ2h0CisgICAgKiBAcGFyYW0gdnNpYmxlIElmIHRydWUsIGRyYXc7IGlmIGZhbHNlLCBlcmFzZQorICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgZHJhd1NlbGVjdGlvblJhbmdlKCAgR3JhcGhpY3MgICAgZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0ICBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0ICBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuICAgICB2aXNpYmxlKSB7CisgICAgICAgIGlmIChnID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBSZWN0YW5nbGUgICBzZWxCb3VuZHMgPSBmVGV4dENvbXBvbmVudC5nZXRCb3VuZGluZ1JlY3Qoc3RhcnQsIGxpbWl0KTsKKworICAgICAgICBzZWxCb3VuZHMud2lkdGggPSBNYXRoLm1heCgxLCBzZWxCb3VuZHMud2lkdGgpOworICAgICAgICBzZWxCb3VuZHMuaGVpZ2h0ID0gTWF0aC5tYXgoMSwgc2VsQm91bmRzLmhlaWdodCk7CisKKyAgICAgICAgZlRleHRDb21wb25lbnQuZHJhd1RleHQoZywgc2VsQm91bmRzLCB2aXNpYmxlLCBzdGFydCwgbGltaXQsIGZIaWdobGlnaHRDb2xvcik7CisgICAgfQorCisgICAgcHJvdGVjdGVkIFRleHRPZmZzZXQgZ2V0QW5jaG9yKCkgeworICAgICAgICByZXR1cm4gZkFuY2hvcjsKKyAgICB9CisKKyAgICBwdWJsaWMgVGV4dE9mZnNldCBnZXRFbmQoKSB7CisgICAgICAgIHJldHVybiBmTGltaXQ7CisgICAgfQorCisgICAgcHVibGljIENvbG9yIGdldEhpZ2hsaWdodENvbG9yKCkgeworICAgICAgICByZXR1cm4gZkhpZ2hsaWdodENvbG9yOworICAgIH0KKworICAgIHB1YmxpYyBUZXh0T2Zmc2V0IGdldFN0YXJ0KCkgeworICAgICAgICByZXR1cm4gZlN0YXJ0OworICAgIH0KKworICAgIHB1YmxpYyBUZXh0UmFuZ2UgZ2V0U2VsZWN0aW9uUmFuZ2UoKSB7CisKKyAgICAgICAgcmV0dXJuIG5ldyBUZXh0UmFuZ2UoZlN0YXJ0LmZPZmZzZXQsIGZMaW1pdC5mT2Zmc2V0KTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBmb2N1c0dhaW5lZChGb2N1c0V2ZW50IGUpIHsKKworICAgICAgICBzZXRFbmFibGVkKHRydWUpOworICAgICAgICBkcmF3U2VsZWN0aW9uKGZUZXh0Q29tcG9uZW50LmdldEdyYXBoaWNzKCksIHRydWUpOworCisgICAgICAgIHJlc3RhcnRDYXJldEJsaW5raW5nKHRydWUpOworICAgICAgICBpZiAoZlBlbmRpbmdNb3VzZUV2ZW50ICE9IG51bGwpIHsKKyAgICAgICAgICAgIG1vdXNlUHJlc3NlZChmUGVuZGluZ01vdXNlRXZlbnQpOworICAgICAgICAgICAgZlBlbmRpbmdNb3VzZUV2ZW50ID0gbnVsbDsKKyAgICAgICAgfQorICAgICAgICBmTGlzdGVuZXIudGV4dFN0YXRlQ2hhbmdlZChUZXh0UGFuZWxFdmVudC5DTElQQk9BUkRfQ0hBTkdFRCk7CisgCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGZvY3VzTG9zdChGb2N1c0V2ZW50IGUpIHsKKyAgICAgICAgc3RvcENhcmV0QmxpbmtpbmcoKTsKKyAgICAgICAgc2V0RW5hYmxlZChmYWxzZSk7CisgICAgICAgIGRyYXdTZWxlY3Rpb24oZlRleHRDb21wb25lbnQuZ2V0R3JhcGhpY3MoKSwgZmFsc2UpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4ga2V5IGV2ZW50IGNhbiBhZmZlY3QgdGhlIHNlbGVjdGlvbgorICAgICAqIHJhbmdlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBrZXlBZmZlY3RzU2VsZWN0aW9uKEtleUV2ZW50IGUpIHsKKworICAgICAgICBpZiAoZS5nZXRJRCgpICE9IGUuS0VZX1BSRVNTRUQpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBrZXkgPSBlLmdldEtleUNvZGUoKTsKKworICAgICAgICBzd2l0Y2ggKGtleSkgeworICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5WS19IT01FOgorICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5WS19FTkQ6CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0xFRlQ6CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX1JJR0hUOgorICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5WS19VUDoKKyAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfRE9XTjoKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBrZXlQcmVzc2VkKEtleUV2ZW50IGUpIHsKKworICAgICAgICBmSGFuZGxpbmdLZXlPckNvbW1hbmQgPSB0cnVlOworICAgICAgICBpbnQga2V5ID0gZS5nZXRLZXlDb2RlKCk7CisgICAgICAgIGJvb2xlYW4gcmVzdWx0ID0gdHJ1ZTsKKyAgICAgICAgCisgICAgICAgIHN3aXRjaCAoa2V5KSB7CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0hPTUU6CisgICAgICAgICAgICAgICAgZG9Ib21lS2V5KGUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5WS19FTkQ6CisgICAgICAgICAgICAgICAgZG9FbmRLZXkoZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfTEVGVDoKKyAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfUklHSFQ6CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX1VQOgorICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5WS19ET1dOOgorICAgICAgICAgICAgICAgIGRvQXJyb3dLZXkoZSwga2V5KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgZlVwRG93bkFuY2hvciA9IG51bGw7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZIYW5kbGluZ0tleU9yQ29tbWFuZCA9IGZhbHNlOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIG1vdXNlUHJlc3NlZChNb3VzZUV2ZW50IGUpIHsKKworICAgICAgICBpZiAoIWVuYWJsZWQoKSkgeworICAgICAgICAgICAgZlBlbmRpbmdNb3VzZUV2ZW50ID0gZTsKKyAgICAgICAgICAgIGZUZXh0Q29tcG9uZW50LnJlcXVlc3RGb2N1cygpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZNb3VzZURvd24pCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImZNb3VzZURvd24gaXMgb3V0IG9mIHN5bmMgd2l0aCBtb3VzZSBpbiBUZXh0U2VsZWN0aW9uLiIpOworCisgICAgICAgIGZNb3VzZURvd24gPSB0cnVlOworICAgICAgICBzdG9wQ2FyZXRCbGlua2luZygpOworCisgICAgICAgIGludCB4ID0gZS5nZXRYKCksIHkgPSBlLmdldFkoKTsKKyAgICAgICAgYm9vbGVhbiB3YXNaZXJvTGVuZ3RoID0gcmFuZ2VJc1plcm9MZW5ndGgoZlN0YXJ0LCBmTGltaXQsIGZBbmNob3IpOworICAgICAgICAKKyAgICAgICAgVGV4dE9mZnNldCBjdXJyZW50ID0gZlRleHRDb21wb25lbnQucG9pbnRUb1RleHRPZmZzZXQobnVsbCwgeCwgeSwgbnVsbCwgdHJ1ZSk7CisgICAgICAgIFRleHRPZmZzZXQgYW5jaG9yU3RhcnQgPSBuZXcgVGV4dE9mZnNldCgpOworICAgICAgICBUZXh0T2Zmc2V0IGFuY2hvckVuZCA9IG5ldyBUZXh0T2Zmc2V0KCk7CisKKyAgICAgICAgZlVwRG93bkFuY2hvciA9IG51bGw7CisKKyAgICAgICAgLy8gaWYgd2UncmUgbm90IGV4dGVuZGluZyB0aGUgc2VsZWN0aW9uLi4uCisgICAgICAgIGlmICghZS5pc1NoaWZ0RG93bigpKSB7CisKKyAgICAgICAgICAgIC8vIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBjbGlja3MsIGNyZWF0ZSB0aGUgYXBwb3ByaWF0ZSB0eXBlIG9mIEJyZWFrSXRlcmF0b3IKKyAgICAgICAgICAgIC8vIG9iamVjdCBmb3IgZmluZGluZyB0ZXh0IGJvdW5kYXJpZXMgKHNpbmdsZSBjbGlja3MgZG9uJ3QgdXNlIGEgQnJlYWtJdGVyYXRvcgorICAgICAgICAgICAgLy8gb2JqZWN0KQorICAgICAgICAgICAgaWYgKGUuZ2V0Q2xpY2tDb3VudCgpID09IDIpCisgICAgICAgICAgICAgICAgZkJvdW5kYXJpZXMgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSgpOworICAgICAgICAgICAgZWxzZSBpZiAoZS5nZXRDbGlja0NvdW50KCkgPT0gMykKKyAgICAgICAgICAgICAgICBmQm91bmRhcmllcyA9IEJyZWFrSXRlcmF0b3IuZ2V0U2VudGVuY2VJbnN0YW5jZSgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGZCb3VuZGFyaWVzID0gbnVsbDsKKworICAgICAgICAgICAgLy8gaWYgd2UncmUgdXNpbmcgYSBCcmVha0l0ZXJhdG9yIG9iamVjdCwgdXNlIGl0IHRvIGZpbmQgdGhlIG5lYXJlc3QgYm91bmRhcmllcworICAgICAgICAgICAgLy8gb24gZWl0aGVyIHNpZGUgb2YgdGhlIG1vdXNlLWNsaWNrIHBvc2l0aW9uIGFuZCBtYWtlIHRoZW0gb3VyIGFuY2hvciByYW5nZQorICAgICAgICAgICAgaWYgKGZCb3VuZGFyaWVzICE9IG51bGwpCisgICAgICAgICAgICAgICAgZkJvdW5kYXJpZXMuc2V0VGV4dChmVGV4dC5jcmVhdGVDaGFyYWN0ZXJJdGVyYXRvcigpKTsKKworICAgICAgICAgICAgYW5jaG9yU3RhcnQuYXNzaWduKGN1cnJlbnQpOworICAgICAgICAgICAgYWR2YW5jZVRvUHJldmlvdXNCb3VuZGFyeShhbmNob3JTdGFydCk7CisgICAgICAgICAgICBhbmNob3JFbmQuYXNzaWduKGN1cnJlbnQpOworICAgICAgICAgICAgYWR2YW5jZVRvTmV4dEJvdW5kYXJ5KGFuY2hvckVuZCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBpZiB3ZSBfYXJlXyBleHRlbmRpbmcgdGhlIHNlbGVjdGlvbiwgZGV0ZXJtaW5lIG91ciBhbmNob3IgcmFuZ2UgYXMgZm9sbG93czoKKyAgICAgICAgLy8gZkFuY2hvciBpcyB0aGUgc3RhcnQgb2YgdGhlIGFuY2hvciByYW5nZTsKKyAgICAgICAgLy8gdGhlIG5leHQgYm91bmRhcnkgKGFmdGVyIGZBbmNob3IpIGlzIHRoZSBsaW1pdCBvZiB0aGUgYW5jaG9yIHJhbmdlLgorCisgICAgICAgIGVsc2UgeworCisgICAgICAgICAgICBpZiAoZkJvdW5kYXJpZXMgIT0gbnVsbCkKKyAgICAgICAgICAgICAgICBmQm91bmRhcmllcy5zZXRUZXh0KGZUZXh0LmNyZWF0ZUNoYXJhY3Rlckl0ZXJhdG9yKCkpOworCisgICAgICAgICAgICBhbmNob3JTdGFydC5hc3NpZ24oZkFuY2hvcik7CisgICAgICAgICAgICBhbmNob3JFbmQuYXNzaWduKGFuY2hvclN0YXJ0KTsKKworICAgICAgICAgICAgYWR2YW5jZVRvTmV4dEJvdW5kYXJ5KGFuY2hvckVuZCk7CisgICAgICAgIH0KKworICAgICAgICBTZWxlY3Rpb25EcmFnSW50ZXJhY3RvciBpbnRlcmFjdG9yID0gbmV3IFNlbGVjdGlvbkRyYWdJbnRlcmFjdG9yKHRoaXMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZUZXh0Q29tcG9uZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZSdW5TdHJhdGVneSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNob3JTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNob3JFbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FzWmVyb0xlbmd0aCk7CisKKyAgICAgICAgaW50ZXJhY3Rvci5hZGRUb093bmVyKGZUZXh0Q29tcG9uZW50KTsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBtb3VzZVJlbGVhc2VkKE1vdXNlRXZlbnQgZSkgeworCisgICAgICAgIGZQZW5kaW5nTW91c2VFdmVudCA9IG51bGw7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvLyBkcmFnIGludGVyYWN0b3IgY2FsbHMgdGhpcworICAgIHZvaWQgbW91c2VSZWxlYXNlZChib29sZWFuIHplcm9MZW5ndGhDaGFuZ2UpIHsKKworICAgICAgICBmTW91c2VEb3duID0gZmFsc2U7CisKKyAgICAgICAgaWYgKHplcm9MZW5ndGhDaGFuZ2UpIHsKKyAgICAgICAgICAgIGZMaXN0ZW5lci50ZXh0U3RhdGVDaGFuZ2VkKFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9FTVBUWV9DSEFOR0VEKTsKKyAgICAgICAgfQorICAgICAgICBmTGlzdGVuZXIudGV4dFN0YXRlQ2hhbmdlZChUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fUkFOR0VfQ0hBTkdFRCk7CisgICAgICAgIGZMaXN0ZW5lci50ZXh0U3RhdGVDaGFuZ2VkKFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9TVFlMRVNfQ0hBTkdFRCk7CisKKyAgICAgICAgLy8gaWYgY2FyZXQgZHJhd2luZyBkdXJpbmcgbW91c2UgZHJhZ3MgaXMgc3VwcmVzc2VkLCBkcmF3IGNhcmV0IG5vdy4KKworICAgICAgICByZXN0YXJ0Q2FyZXRCbGlua2luZyh0cnVlKTsKKyAgICB9CisKKworICAgIC8qKiBkcmF3cyB0aGUgc2VsZWN0aW9uCisgICAgKiBQcm92aWRlZCwgb2YgY291cnNlLCB0aGF0IHRoZSBzZWxlY3Rpb24gaXMgdmlzaWJsZSwgdGhlIGFkb3JuZXIgaXMgZW5hYmxlZCwKKyAgICAqIGFuZCB3ZSdyZSBjYWxsaW5nIGl0IHRvIGFkb3JuIHRoZSB2aWV3IGl0IGFjdHVhbGx5IGJlbG9uZ3MgdG8KKyAgICAqIEBwYXJhbSBnIFRoZSBncmFwaGljcyBlbnZpcm9ubWVudCB0byBkcmF3IGludG8KKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiB3ZSBhY3R1YWxseSBkcmV3CisgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBwYWludChHcmFwaGljcyBnLCBSZWN0YW5nbGUgZHJhd1JlY3QpIHsKKyAgICAgICAgLy8gZG9uJ3QgZHJhdyBhbnl0aGluZyB1bmxlc3Mgd2UncmUgZW5hYmxlZCBhbmQgdGhlIHNlbGVjdGlvbiBpcyB2aXNpYmxlCisgICAgICAgIGlmICghZW5hYmxlZCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGZUZXh0Q29tcG9uZW50LmRyYXdUZXh0KGcsIGRyYXdSZWN0LCB0cnVlLCBmU3RhcnQsIGZMaW1pdCwgZkhpZ2hsaWdodENvbG9yKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqIHNjcm9sbHMgdGhlIHZpZXcgdG8gcmV2ZWFsIHRoZSBsaXZlIGVuZCBvZiB0aGUgc2VsZWN0aW9uCisgICAgKiAoaS5lLiwgdGhlIGVuZCB0aGF0IG1vdmVzIGlmIHlvdSB1c2UgdGhlIGFycm93IGtleXMgd2l0aCB0aGUgc2hpZnQga2V5IGRvd24pCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzY3JvbGxUb1Nob3dTZWxlY3Rpb24oKSB7CisgICAgICAgIFJlY3RhbmdsZSAgIHNlbFJlY3QgPSBmVGV4dENvbXBvbmVudC5nZXRCb3VuZGluZ1JlY3QoZlN0YXJ0LCBmTGltaXQpOworCisgICAgICAgIGZUZXh0Q29tcG9uZW50LnNjcm9sbFRvU2hvdyhzZWxSZWN0KTsKKyAgICB9CisKKyAgICAvKiogc2Nyb2xscyB0aGUgdmlldyB0byByZXZlYWwgdGhlIGxpdmUgZW5kIG9mIHRoZSBzZWxlY3Rpb24KKyAgICAqIChpLmUuLCB0aGUgZW5kIHRoYXQgbW92ZXMgaWYgeW91IHVzZSB0aGUgYXJyb3cga2V5cyB3aXRoIHRoZSBzaGlmdCBrZXkgZG93bikKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIHNjcm9sbFRvU2hvd1NlbGVjdGlvbkVuZCgpIHsKKyAgICAgICAgVGV4dE9mZnNldCAgbGl2ZUVuZDsKKyAgICAgICAgLy8gdmFyaWFibGUgbm90IHVzZWQgUG9pbnRbXSAgICAgcG9pbnRzOworICAgICAgICBSZWN0YW5nbGUgICBjYXJldDsKKworICAgICAgICBpZiAoZkFuY2hvci5lcXVhbHMoZlN0YXJ0KSkKKyAgICAgICAgICAgIGxpdmVFbmQgPSBmTGltaXQ7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGxpdmVFbmQgPSBmU3RhcnQ7CisKKyAgICAgICAgLy9wb2ludHMgPSBmVGV4dENvbXBvbmVudC50ZXh0T2Zmc2V0VG9Qb2ludChsaXZlRW5kKTsKKyAgICAgICAgLy9jYXJldCA9IG5ldyBSZWN0YW5nbGUocG9pbnRzWzBdKTsKKyAgICAgICAgLy9jYXJldCA9IGNhcmV0LnVuaW9uKG5ldyBSZWN0YW5nbGUocG9pbnRzWzFdKSk7CisgICAgICAgIGNhcmV0ID0gZlRleHRDb21wb25lbnQuZ2V0Q2FyZXRSZWN0KGxpdmVFbmQpOworICAgICAgICBmVGV4dENvbXBvbmVudC5zY3JvbGxUb1Nob3coY2FyZXQpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBzZWxlY3QoVGV4dFJhbmdlIHJhbmdlKSB7CisgICAgICAgIC8vIHZhcmlhYmxlIG5vdCB1c2VkIGludCB0ZXh0TGVuZ3RoID0gZlRleHRDb21wb25lbnQuZ2V0VGV4dCgpLmxlbmd0aCgpOworCisgICAgICAgIFRleHRPZmZzZXQgc3RhcnQgPSBuZXcgVGV4dE9mZnNldChyYW5nZS5zdGFydCk7CisKKyAgICAgICAgc3RvcENhcmV0QmxpbmtpbmcoKTsKKyAgICAgICAgc2V0U2VsUmFuZ2VBbmREcmF3KHN0YXJ0LCBuZXcgVGV4dE9mZnNldChyYW5nZS5saW1pdCksIHN0YXJ0KTsKKyAgICAgICAgcmVzdGFydENhcmV0QmxpbmtpbmcodHJ1ZSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0SGlnaGxpZ2h0Q29sb3IoQ29sb3IgbmV3Q29sb3IpIHsKKyAgICAgICAgZkhpZ2hsaWdodENvbG9yID0gbmV3Q29sb3I7CisgICAgICAgIGlmIChlbmFibGVkKCkpCisgICAgICAgICAgICBkcmF3U2VsZWN0aW9uKGZUZXh0Q29tcG9uZW50LmdldEdyYXBoaWNzKCksIHRydWUpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgYm9vbGVhbiByYW5nZUlzWmVyb0xlbmd0aChUZXh0T2Zmc2V0IHN0YXJ0LCBUZXh0T2Zmc2V0IGxpbWl0LCBUZXh0T2Zmc2V0IGFuY2hvcikgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHN0YXJ0LmZPZmZzZXQgPT0gbGltaXQuZk9mZnNldCAmJiBhbmNob3IuZk9mZnNldCA9PSBsaW1pdC5mT2Zmc2V0OworICAgIH0KKworICAgIC8vIHNpZ2guLi4gbG9vayBvdXQgZm9yIGFsaWFzaW5nCisgICAgcHVibGljIHZvaWQgc2V0U2VsZWN0aW9uUmFuZ2UoVGV4dE9mZnNldCBuZXdTdGFydCwgVGV4dE9mZnNldCBuZXdMaW1pdCwgVGV4dE9mZnNldCBuZXdBbmNob3IpIHsKKworICAgICAgICBib29sZWFuIHplcm9MZW5ndGhDaGFuZ2UgPSByYW5nZUlzWmVyb0xlbmd0aChuZXdTdGFydCwgbmV3TGltaXQsIG5ld0FuY2hvcikgIT0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5nZUlzWmVyb0xlbmd0aChmU3RhcnQsIGZMaW1pdCwgZkFuY2hvcik7CisgICAgICAgIFRleHRPZmZzZXQgdGVtcE5ld0FuY2hvcjsKKyAgICAgICAgaWYgKG5ld0FuY2hvciA9PSBmU3RhcnQgfHwgbmV3QW5jaG9yID09IGZMaW1pdCkgeworICAgICAgICAgICAgdGVtcE5ld0FuY2hvciA9IG5ldyBUZXh0T2Zmc2V0KG5ld0FuY2hvcik7IC8vIGNsb25lIGluIGNhc2Ugb2YgYWxpYXNpbmcKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRlbXBOZXdBbmNob3IgPSBuZXdBbmNob3I7CisgICAgICAgIH0KKworICAgICAgICAvLyBERUJVRyB7amJyfQorCisgICAgICAgIGlmIChuZXdTdGFydC5ncmVhdGVyVGhhbihuZXdMaW1pdCkpCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJTZWxlY3Rpb24gbGltaXQgaXMgYmVmb3JlIHNlbGVjdGlvbiBzdGFydC4iKTsKKworICAgICAgICBpZiAobmV3TGltaXQgIT0gZlN0YXJ0KSB7CisgICAgICAgICAgICBmU3RhcnQuYXNzaWduKG5ld1N0YXJ0KTsKKyAgICAgICAgICAgIGZMaW1pdC5hc3NpZ24obmV3TGltaXQpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZkxpbWl0LmFzc2lnbihuZXdMaW1pdCk7CisgICAgICAgICAgICBmU3RhcnQuYXNzaWduKG5ld1N0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIGZBbmNob3IuYXNzaWduKHRlbXBOZXdBbmNob3IpOworCisgICAgICAgIGlmIChmU3RhcnQuZk9mZnNldCA9PSBmTGltaXQuZk9mZnNldCkgeworICAgICAgICAgICAgZlN0YXJ0LmZQbGFjZW1lbnQgPSBmQW5jaG9yLmZQbGFjZW1lbnQ7CisgICAgICAgICAgICBmTGltaXQuZlBsYWNlbWVudCA9IGZBbmNob3IuZlBsYWNlbWVudDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKCFmTW91c2VEb3duKSB7CisgICAgICAgICAgICBpZiAoemVyb0xlbmd0aENoYW5nZSkgeworICAgICAgICAgICAgICAgIGZMaXN0ZW5lci50ZXh0U3RhdGVDaGFuZ2VkKFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9FTVBUWV9DSEFOR0VEKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZMaXN0ZW5lci50ZXh0U3RhdGVDaGFuZ2VkKFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9SQU5HRV9DSEFOR0VEKTsKKyAgICAgICAgICAgIGlmIChmSGFuZGxpbmdLZXlPckNvbW1hbmQpIHsKKyAgICAgICAgICAgICAgICBmTGlzdGVuZXIudGV4dFN0YXRlQ2hhbmdlZChUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fU1RZTEVTX0NIQU5HRUQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHNvcnRPZmZzZXRzKFRleHRPZmZzZXQgb2Zmc2V0c1tdKSB7CisKKyAgICAgICAgaW50IGksIGo7CisKKyAgICAgICAgZm9yIChpPTA7IGkgPCBvZmZzZXRzLmxlbmd0aC0xOyBpKyspIHsKKyAgICAgICAgICAgIGZvciAoaj1pKzE7IGogPCBvZmZzZXRzLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgaWYgKG9mZnNldHNbal0ubGVzc1RoYW4ob2Zmc2V0c1tpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCB0ZW1wID0gb2Zmc2V0c1tqXTsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0c1tqXSA9IG9mZnNldHNbaV07CisgICAgICAgICAgICAgICAgICAgIG9mZnNldHNbaV0gPSB0ZW1wOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIERFQlVHIHtqYnJ9CisgICAgICAgIGZvciAoaT0wOyBpIDwgb2Zmc2V0cy5sZW5ndGgtMTsgaSsrKQorICAgICAgICAgICAgaWYgKG9mZnNldHNbaV0uZ3JlYXRlclRoYW4ob2Zmc2V0c1tpKzFdKSkKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoInNvcnRPZmZzZXRzIGZhaWxlZCEiKTsKKyAgICB9CisKKyAgICBwcml2YXRlIFJlY3RhbmdsZSBnZXRTZWxlY3Rpb25DaGFuZ2VSZWN0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCByYW5nZVN0YXJ0LCBUZXh0T2Zmc2V0IHJhbmdlTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IG9sZFN0YXJ0LCBUZXh0T2Zmc2V0IG9sZExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBuZXdTdGFydCwgVGV4dE9mZnNldCBuZXdMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZHJhd0lmSW5zUG9pbnQpIHsKKworICAgICAgICBpZiAoIXJhbmdlU3RhcnQuZXF1YWxzKHJhbmdlTGltaXQpKQorICAgICAgICAgICAgcmV0dXJuIGZUZXh0Q29tcG9uZW50LmdldEJvdW5kaW5nUmVjdChyYW5nZVN0YXJ0LCByYW5nZUxpbWl0KTsKKworICAgICAgICAvLyBoZXJlLCByYW5nZVN0YXJ0IGFuZCByYW5nZUxpbWl0IGFyZSBlcXVhbAorCisgICAgICAgIGlmIChyYW5nZVN0YXJ0LmVxdWFscyhvbGRMaW1pdCkpIHsKKworICAgICAgICAgICAgLy8gcmFuZ2Ugc3RhcnQgaXMgT0xEIGluc2VydGlvbiBwb2ludC4gIFJlZHJhdyBpZiBjYXJldCBpcyBjdXJyZW50bHkgdmlzaWJsZS4KKworICAgICAgICAgICAgaWYgKGZDYXJldElzVmlzaWJsZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZlRleHRDb21wb25lbnQuZ2V0Qm91bmRpbmdSZWN0KHJhbmdlU3RhcnQsIHJhbmdlU3RhcnQpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHJhbmdlU3RhcnQuZXF1YWxzKG5ld0xpbWl0KSkgeworCisgICAgICAgICAgICAvLyByYW5nZSBzdGFydCBpcyBORVcgaW5zZXJ0aW9uIHBvaW50LgorCisgICAgICAgICAgICBpZiAoZHJhd0lmSW5zUG9pbnQpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZUZXh0Q29tcG9uZW50LmdldEJvdW5kaW5nUmVjdChyYW5nZVN0YXJ0LCByYW5nZVN0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gcmVjdGFuZ2xlc092ZXJsYXBWZXJ0aWNhbGx5KFJlY3RhbmdsZSByMSwgUmVjdGFuZ2xlIHIyKSB7CisgICAgICAgIAorICAgICAgICBpZiAocjEgPT0gbnVsbCB8fCByMiA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiByMS55IDw9IHIyLnkgKyByMi5oZWlnaHQgfHwgcjIueSA8PSByMS55ICsgcjEuaGVpZ2h0OworICAgIH0KKyAgICAKKyAgICAvLyBVcGRhdGUgdG8gc2hvdyBuZXcgc2VsZWN0aW9uLCByZWRyYXdpbmcgYXMgbGl0dGxlIGFzIHBvc3NpYmxlCisKKyAgICBwcml2YXRlIHZvaWQgdXBkYXRlU2VsZWN0aW9uRGlzcGxheSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IG9sZFN0YXJ0LCBUZXh0T2Zmc2V0IG9sZExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgbmV3U3RhcnQsIFRleHRPZmZzZXQgbmV3TGltaXQsIGJvb2xlYW4gZHJhd0lmSW5zUG9pbnQpIHsKKworICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigibmV3U3RhcnQ6IiArIG5ld1N0YXJ0ICsgIjsgbmV3TGltaXQ6IiArIG5ld0xpbWl0KTsKKworICAgICAgICBUZXh0T2Zmc2V0IG9mZltdID0gbmV3IFRleHRPZmZzZXRbNF07CisKKyAgICAgICAgb2ZmWzBdID0gb2xkU3RhcnQ7CisgICAgICAgIG9mZlsxXSA9IG9sZExpbWl0OworICAgICAgICBvZmZbMl0gPSBuZXdTdGFydDsKKyAgICAgICAgb2ZmWzNdID0gbmV3TGltaXQ7CisKKyAgICAgICAgc29ydE9mZnNldHMob2ZmKTsKKworICAgICAgICBSZWN0YW5nbGUgcjEgPSBnZXRTZWxlY3Rpb25DaGFuZ2VSZWN0KG9mZlswXSwgb2ZmWzFdLCBvbGRTdGFydCwgb2xkTGltaXQsIG5ld1N0YXJ0LCBuZXdMaW1pdCwgZHJhd0lmSW5zUG9pbnQpOworICAgICAgICBSZWN0YW5nbGUgcjIgPSBnZXRTZWxlY3Rpb25DaGFuZ2VSZWN0KG9mZlsyXSwgb2ZmWzNdLCBvbGRTdGFydCwgb2xkTGltaXQsIG5ld1N0YXJ0LCBuZXdMaW1pdCwgZHJhd0lmSW5zUG9pbnQpOworCisgICAgICAgIGJvb2xlYW4gZHJhd1NlbGVjdGlvbiA9IGRyYXdJZkluc1BvaW50IHx8ICFuZXdTdGFydC5lcXVhbHMobmV3TGltaXQpOworCisgICAgICAgIGlmIChyZWN0YW5nbGVzT3ZlcmxhcFZlcnRpY2FsbHkocjEsIHIyKSkgeworCisgICAgICAgICAgICBmVGV4dENvbXBvbmVudC5kcmF3VGV4dChmVGV4dENvbXBvbmVudC5nZXRHcmFwaGljcygpLCByMS51bmlvbihyMiksIGRyYXdTZWxlY3Rpb24sIG5ld1N0YXJ0LCBuZXdMaW1pdCwgZkhpZ2hsaWdodENvbG9yKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmIChyMSAhPSBudWxsKQorICAgICAgICAgICAgICAgIGZUZXh0Q29tcG9uZW50LmRyYXdUZXh0KGZUZXh0Q29tcG9uZW50LmdldEdyYXBoaWNzKCksIHIxLCBkcmF3U2VsZWN0aW9uLCBuZXdTdGFydCwgbmV3TGltaXQsIGZIaWdobGlnaHRDb2xvcik7CisgICAgICAgICAgICBpZiAocjIgIT0gbnVsbCkKKyAgICAgICAgICAgICAgICBmVGV4dENvbXBvbmVudC5kcmF3VGV4dChmVGV4dENvbXBvbmVudC5nZXRHcmFwaGljcygpLCByMiwgZHJhd1NlbGVjdGlvbiwgbmV3U3RhcnQsIG5ld0xpbWl0LCBmSGlnaGxpZ2h0Q29sb3IpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0U2VsUmFuZ2VBbmREcmF3KFRleHRPZmZzZXQgbmV3U3RhcnQsIFRleHRPZmZzZXQgbmV3TGltaXQsIFRleHRPZmZzZXQgbmV3QW5jaG9yKSB7CisKKyAgICAgICAgLy8gaWYgdGhlIG9sZCBhbmQgbmV3IHNlbGVjdGlvbiByYW5nZXMgYXJlIHRoZSBzYW1lLCBkb24ndCBkbyBhbnl0aGluZworICAgICAgICBpZiAoZlN0YXJ0LmVxdWFscyhuZXdTdGFydCkgJiYgZkxpbWl0LmVxdWFscyhuZXdMaW1pdCkgJiYgZkFuY2hvci5lcXVhbHMobmV3QW5jaG9yKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoZW5hYmxlZCgpKQorICAgICAgICAgICAgc3RvcENhcmV0QmxpbmtpbmcoKTsKKworICAgICAgICAvLyB1cGRhdGUgdGhlIHNlbGVjdGlvbiBvbiBzY3JlZW4gaWYgd2UncmUgZW5hYmxlZCBhbmQgdmlzaWJsZQorCisgICAgICAgIFRleHRPZmZzZXQgb2xkU3RhcnQgPSBuZXcgVGV4dE9mZnNldChmU3RhcnQpLCBvbGRMaW1pdCA9IG5ldyBUZXh0T2Zmc2V0KGZMaW1pdCk7CisKKyAgICAgICAgc2V0U2VsZWN0aW9uUmFuZ2UobmV3U3RhcnQsIG5ld0xpbWl0LCBuZXdBbmNob3IpOworCisgICAgICAgIGlmIChlbmFibGVkKCkpIHsKKworICAgICAgICAgICAgICAgIC8vIFRvIHN1cHJlc3MgZHJhd2luZyBhIGNhcmV0IGR1cmluZyBhIG1vdXNlIGRyYWcsIHBhc3MgIWZNb3VzZURvd24gaW5zdGVhZCBvZiB0cnVlOgorICAgICAgICAgICAgICAgIHVwZGF0ZVNlbGVjdGlvbkRpc3BsYXkob2xkU3RhcnQsIG9sZExpbWl0LCBmU3RhcnQsIGZMaW1pdCwgdHJ1ZSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWZNb3VzZURvd24gJiYgZW5hYmxlZCgpKQorICAgICAgICAgICAgcmVzdGFydENhcmV0QmxpbmtpbmcodHJ1ZSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc3RvcENhcmV0QmxpbmtpbmcoKSB7CisKKyAgICAgICAgc3luY2hyb25pemVkKHRoaXMpIHsKKyAgICAgICAgICAgIGZDYXJldFNob3VsZEJsaW5rID0gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKy8qKgorKiBSZXN1bWUgYmxpbmtpbmcgdGhlIGNhcmV0LCBpZiB0aGUgc2VsZWN0aW9uIGlzIGFuIGluc2VydGlvbiBwb2ludC4KKyogQHBhcmFtIGNhcmV0SXNWaXNpYmxlIHRydWUgaWYgdGhlIGNhcmV0IGlzIGRpc3BsYXllZCB3aGVuIHRoaXMgaXMgY2FsbGVkLgorKiBUaGlzIG1ldGhvZCByZWxpZXMgb24gdGhlIGNsaWVudCB0byBkaXNwbGF5IChvciBub3QgZGlzcGxheSkgdGhlIGNhcmV0LgorKi8KKyAgICBwdWJsaWMgdm9pZCByZXN0YXJ0Q2FyZXRCbGlua2luZyhib29sZWFuIGNhcmV0SXNWaXNpYmxlKSB7CisKKyAgICAgICAgc3luY2hyb25pemVkKHRoaXMpIHsKKyAgICAgICAgICAgIGZDYXJldFNob3VsZEJsaW5rID0gZlN0YXJ0LmVxdWFscyhmTGltaXQpOworICAgICAgICAgICAgZkNhcmV0Q291bnQgPSAwOworICAgICAgICAgICAgZkNhcmV0SXNWaXNpYmxlID0gY2FyZXRJc1Zpc2libGU7CisKKyAgICAgICAgICAgIGlmIChmQ2FyZXRTaG91bGRCbGluaykgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIG5vdGlmeSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaCAoSWxsZWdhbE1vbml0b3JTdGF0ZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ2F1Z2h0IElsbGVnYWxNb25pdG9yU3RhdGVFeGNlcHRpb246ICIrZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVtb3ZlRnJvbU93bmVyKCkgeworCisgICAgICAgIHN0b3BDYXJldEJsaW5raW5nKCk7CisgICAgICAgIHN1cGVyLnJlbW92ZUZyb21Pd25lcigpOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RoYWlLZXlSZW1hcC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RoYWlLZXlSZW1hcC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjVmYzRiZTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGhhaUtleVJlbWFwLmphdmEKQEAgLTAsMCArMSwxMTggQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAkU291cmNlOiAveHNybC9Oc3ZuL2ljdS9pY3U0ai9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGhhaUtleVJlbWFwLmphdmEsdiAkCisgKiAkRGF0ZTogMjAwMi8wOC8xMyAyMzo0NDo0NSAkCisgKiAkUmV2aXNpb246IDEuMiAkCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworZmluYWwgY2xhc3MgVGhhaUtleVJlbWFwIGV4dGVuZHMgS2V5UmVtYXAgeworCisgICAgcHVibGljIGNoYXIgcmVtYXAoY2hhciBjKSB7CisKKyAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgICAgICBjYXNlICdgJzogcmV0dXJuICdcdTAwNWYnOworICAgICAgICAgICAgY2FzZSAnfic6IHJldHVybiAnXHUwMDI1JzsKKyAgICAgICAgICAgIGNhc2UgJzEnOiByZXR1cm4gJ1x1MGU0NSc7CisgICAgICAgICAgICBjYXNlICchJzogcmV0dXJuICdcdTAwMmInOworICAgICAgICAgICAgY2FzZSAnMic6IHJldHVybiAnXHUwMDJmJzsKKyAgICAgICAgICAgIGNhc2UgJ0AnOiByZXR1cm4gJ1x1MGU1MSc7CisgICAgICAgICAgICBjYXNlICczJzogcmV0dXJuICdcdTAwMmQnOworICAgICAgICAgICAgY2FzZSAnIyc6IHJldHVybiAnXHUwZTUyJzsKKyAgICAgICAgICAgIGNhc2UgJzQnOiByZXR1cm4gJ1x1MGUyMCc7CisgICAgICAgICAgICBjYXNlICckJzogcmV0dXJuICdcdTBlNTMnOworICAgICAgICAgICAgY2FzZSAnNSc6IHJldHVybiAnXHUwZTE2JzsKKyAgICAgICAgICAgIGNhc2UgJyUnOiByZXR1cm4gJ1x1MGU1NCc7CisgICAgICAgICAgICBjYXNlICc2JzogcmV0dXJuICdcdTBlMzgnOworICAgICAgICAgICAgY2FzZSAnXic6IHJldHVybiAnXHUwZTM5JzsKKyAgICAgICAgICAgIGNhc2UgJzcnOiByZXR1cm4gJ1x1MGUzNic7CisgICAgICAgICAgICBjYXNlICcmJzogcmV0dXJuICdcdTBlM2YnOworICAgICAgICAgICAgY2FzZSAnOCc6IHJldHVybiAnXHUwZTA0JzsKKyAgICAgICAgICAgIGNhc2UgJyonOiByZXR1cm4gJ1x1MGU1NSc7CisgICAgICAgICAgICBjYXNlICc5JzogcmV0dXJuICdcdTBlMTUnOworICAgICAgICAgICAgY2FzZSAnKCc6IHJldHVybiAnXHUwZTU2JzsKKyAgICAgICAgICAgIGNhc2UgJzAnOiByZXR1cm4gJ1x1MGUwOCc7CisgICAgICAgICAgICBjYXNlICcpJzogcmV0dXJuICdcdTBlNTcnOworICAgICAgICAgICAgY2FzZSAnLSc6IHJldHVybiAnXHUwZTAyJzsKKyAgICAgICAgICAgIGNhc2UgJ18nOiByZXR1cm4gJ1x1MGU1OCc7CisgICAgICAgICAgICBjYXNlICc9JzogcmV0dXJuICdcdTBlMDgnOworICAgICAgICAgICAgY2FzZSAnKyc6IHJldHVybiAnXHUwZTU5JzsKKyAgICAgICAgICAgIGNhc2UgJ3EnOiByZXR1cm4gJ1x1MGU0Nic7CisgICAgICAgICAgICBjYXNlICdRJzogcmV0dXJuICdcdTBlNTAnOworICAgICAgICAgICAgY2FzZSAndyc6IHJldHVybiAnXHUwZTQ0JzsKKyAgICAgICAgICAgIGNhc2UgJ1cnOiByZXR1cm4gJ1x1MDAyMic7CisgICAgICAgICAgICBjYXNlICdlJzogcmV0dXJuICdcdTBlMzMnOworICAgICAgICAgICAgY2FzZSAnRSc6IHJldHVybiAnXHUwZTBlJzsKKyAgICAgICAgICAgIGNhc2UgJ3InOiByZXR1cm4gJ1x1MGUxZSc7CisgICAgICAgICAgICBjYXNlICdSJzogcmV0dXJuICdcdTBlMTEnOworICAgICAgICAgICAgY2FzZSAndCc6IHJldHVybiAnXHUwZTMwJzsKKyAgICAgICAgICAgIGNhc2UgJ1QnOiByZXR1cm4gJ1x1MGUxOCc7CisgICAgICAgICAgICBjYXNlICd5JzogcmV0dXJuICdcdTBlMzEnOworICAgICAgICAgICAgY2FzZSAnWSc6IHJldHVybiAnXHUwZTRkJzsKKyAgICAgICAgICAgIGNhc2UgJ3UnOiByZXR1cm4gJ1x1MGUzNSc7CisgICAgICAgICAgICBjYXNlICdVJzogcmV0dXJuICdcdTBlNGEnOworICAgICAgICAgICAgY2FzZSAnaSc6IHJldHVybiAnXHUwZTIzJzsKKyAgICAgICAgICAgIGNhc2UgJ0knOiByZXR1cm4gJ1x1MGUxMyc7CisgICAgICAgICAgICBjYXNlICdvJzogcmV0dXJuICdcdTBlMTknOworICAgICAgICAgICAgY2FzZSAnTyc6IHJldHVybiAnXHUwZTJmJzsKKyAgICAgICAgICAgIGNhc2UgJ3AnOiByZXR1cm4gJ1x1MGUyMic7CisgICAgICAgICAgICBjYXNlICdQJzogcmV0dXJuICdcdTBlMGQnOworICAgICAgICAgICAgY2FzZSAnWyc6IHJldHVybiAnXHUwZTFhJzsKKyAgICAgICAgICAgIGNhc2UgJ3snOiByZXR1cm4gJ1x1MGUxMCc7CisgICAgICAgICAgICBjYXNlICddJzogcmV0dXJuICdcdTBlMjUnOworICAgICAgICAgICAgY2FzZSAnfSc6IHJldHVybiAnXHUwMDJjJzsKKyAgICAgICAgICAgIGNhc2UgJ1xcJzogcmV0dXJuICdcdTBlMDMnOworICAgICAgICAgICAgY2FzZSAnfCc6IHJldHVybiAnXHUwZTA1JzsKKyAgICAgICAgICAgIGNhc2UgJ2EnOiByZXR1cm4gJ1x1MGUxZic7CisgICAgICAgICAgICBjYXNlICdBJzogcmV0dXJuICdcdTBlMjQnOworICAgICAgICAgICAgY2FzZSAncyc6IHJldHVybiAnXHUwZTJiJzsKKyAgICAgICAgICAgIGNhc2UgJ1MnOiByZXR1cm4gJ1x1MGUwNic7CisgICAgICAgICAgICBjYXNlICdkJzogcmV0dXJuICdcdTBlMDEnOworICAgICAgICAgICAgY2FzZSAnRCc6IHJldHVybiAnXHUwZTBmJzsKKyAgICAgICAgICAgIGNhc2UgJ2YnOiByZXR1cm4gJ1x1MGUxNCc7CisgICAgICAgICAgICBjYXNlICdGJzogcmV0dXJuICdcdTBlNDInOworICAgICAgICAgICAgY2FzZSAnZyc6IHJldHVybiAnXHUwZTQwJzsKKyAgICAgICAgICAgIGNhc2UgJ0cnOiByZXR1cm4gJ1x1MGUwYyc7CisgICAgICAgICAgICBjYXNlICdoJzogcmV0dXJuICdcdTBlNDknOworICAgICAgICAgICAgY2FzZSAnSCc6IHJldHVybiAnXHUwZTQ3JzsKKyAgICAgICAgICAgIGNhc2UgJ2onOiByZXR1cm4gJ1x1MGU0OCc7CisgICAgICAgICAgICBjYXNlICdKJzogcmV0dXJuICdcdTBlNGInOworICAgICAgICAgICAgY2FzZSAnayc6IHJldHVybiAnXHUwZTMyJzsKKyAgICAgICAgICAgIGNhc2UgJ0snOiByZXR1cm4gJ1x1MGUyOSc7CisgICAgICAgICAgICBjYXNlICdsJzogcmV0dXJuICdcdTBlMmEnOworICAgICAgICAgICAgY2FzZSAnTCc6IHJldHVybiAnXHUwZTI4JzsKKyAgICAgICAgICAgIGNhc2UgJzsnOiByZXR1cm4gJ1x1MGUyNyc7CisgICAgICAgICAgICBjYXNlICc6JzogcmV0dXJuICdcdTBlMGInOworICAgICAgICAgICAgY2FzZSAnXCcnOiByZXR1cm4gJ1x1MGUwNyc7CisgICAgICAgICAgICBjYXNlICdcIic6IHJldHVybiAnXHUwMDJlJzsKKyAgICAgICAgICAgIGNhc2UgJ3onOiByZXR1cm4gJ1x1MGUxYyc7CisgICAgICAgICAgICBjYXNlICdaJzogcmV0dXJuICdcdTAwMjgnOworICAgICAgICAgICAgY2FzZSAneCc6IHJldHVybiAnXHUwZTFiJzsKKyAgICAgICAgICAgIGNhc2UgJ1gnOiByZXR1cm4gJ1x1MDAyOSc7CisgICAgICAgICAgICBjYXNlICdjJzogcmV0dXJuICdcdTBlNDEnOworICAgICAgICAgICAgY2FzZSAnQyc6IHJldHVybiAnXHUwZTA5JzsKKyAgICAgICAgICAgIGNhc2UgJ3YnOiByZXR1cm4gJ1x1MGUyZCc7CisgICAgICAgICAgICBjYXNlICdWJzogcmV0dXJuICdcdTBlMmUnOworICAgICAgICAgICAgY2FzZSAnYic6IHJldHVybiAnXHUwZTM0JzsKKyAgICAgICAgICAgIGNhc2UgJ0InOiByZXR1cm4gJ1x1MGUzYSc7CisgICAgICAgICAgICBjYXNlICduJzogcmV0dXJuICdcdTBlMzcnOworICAgICAgICAgICAgY2FzZSAnTic6IHJldHVybiAnXHUwZTRjJzsKKyAgICAgICAgICAgIGNhc2UgJ20nOiByZXR1cm4gJ1x1MGUxNyc7CisgICAgICAgICAgICBjYXNlICdNJzogcmV0dXJuICdcdTAwM2YnOworICAgICAgICAgICAgY2FzZSAnLCc6IHJldHVybiAnXHUwZTIxJzsKKyAgICAgICAgICAgIGNhc2UgJzwnOiByZXR1cm4gJ1x1MGUxMic7CisgICAgICAgICAgICBjYXNlICcuJzogcmV0dXJuICdcdTBlNDMnOworICAgICAgICAgICAgY2FzZSAnPic6IHJldHVybiAnXHUwZTJjJzsKKyAgICAgICAgICAgIGNhc2UgJy8nOiByZXR1cm4gJ1x1MGUxZCc7CisgICAgICAgICAgICBjYXNlICc/JzogcmV0dXJuICdcdTBlMjYnOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGM7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RyYW5zZmVyYWJsZVRleHQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UcmFuc2ZlcmFibGVUZXh0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDA4MWFjNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UcmFuc2ZlcmFibGVUZXh0LmphdmEKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogVHJhbnNmZXJhYmxlVGV4dC5qYXZhLHYgJCAkUmV2aXNpb246IDEuMSAkICREYXRlOiAyMDAwLzA0LzIwIDE3OjUxOjIzICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitpbXBvcnQgamF2YS5hd3QuZGF0YXRyYW5zZmVyLlN0cmluZ1NlbGVjdGlvbjsKK2ltcG9ydCBqYXZhLmF3dC5kYXRhdHJhbnNmZXIuRGF0YUZsYXZvcjsKK2ltcG9ydCBqYXZhLmF3dC5kYXRhdHJhbnNmZXIuVW5zdXBwb3J0ZWRGbGF2b3JFeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLkJ5dGVBcnJheUlucHV0U3RyZWFtOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CisKKy8qKgorICogVGhpcyBjbGFzcyBhbGxvd3MgTUNvbnN0VGV4dCBpbnN0YW5jZXMgdG8gYmUgdGhlIGNvbnRlbnRzCisgKiBvZiBhIENsaXBib2FyZC4gIFRvIHN0b3JlIGFuIE1Db25zdFRleHQgb24gdGhlIGNsaXBib2FyZCwKKyAqIGNvbnN0cnVjdCBhIFRyYW5zZmVyYWJsZVRleHQgZnJvbSB0aGUgTUNvbnN0VGV4dCwgYW5kIG1ha2UKKyAqIHRoZSBUcmFuc2ZlcmFibGVUZXh0IHRoZSBjbGlwYm9hcmQgY29udGVudHMuCisgKgorICovCisvKgorICogTm90ZTogIHRoaXMgY2xhc3MgaW5oZXJpdHMgZnJvbSBTdHJpbmdTZWxlY3Rpb24gYmVjYXVzZSBvZgorICogYSBidWcgaW4gdGhlIDEuMS43IHN5c3RlbSBjbGlwYm9hcmQgaW1wbGVtZW50YXRpb24uICBUaGUKKyAqIHN5c3RlbSBjbGlwYm9hcmQgd29uJ3QgcHV0IHRleHQgb24gdGhlIE9TIGNsaXBib2FyZCB1bmxlc3MKKyAqIHRoZSBjb250ZW50IGlzIGEgU3RyaW5nU2VsZWN0aW9uLgorICovCitmaW5hbCBjbGFzcyBUcmFuc2ZlcmFibGVUZXh0IGV4dGVuZHMgU3RyaW5nU2VsZWN0aW9uCit7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIE1Db25zdFRleHQgZlRleHQ7CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgdGV4dFRvU3RyaW5nKE1Db25zdFRleHQgdGV4dCkgeworICAgICAgICBjaGFyW10gY2hhcnMgPSBuZXcgY2hhclt0ZXh0Lmxlbmd0aCgpXTsKKyAgICAgICAgdGV4dC5leHRyYWN0Q2hhcnMoMCwgY2hhcnMubGVuZ3RoLCBjaGFycywgMCk7CisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGNoYXJzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBUcmFuc2ZlcmFibGVUZXh0IGZvciB0aGUgZ2l2ZW4gdGV4dC4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgdGV4dCB0byBnbyBvbiB0aGUgQ2xpcGJvYXJkLiAgVGhlIHRleHQgaXMKKyAgICAgKiAgICAgYWRvcHRlZCBieSB0aGlzIG9iamVjdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgVHJhbnNmZXJhYmxlVGV4dChNQ29uc3RUZXh0IHRleHQpIHsKKworICAgICAgICBzdXBlcih0ZXh0VG9TdHJpbmcodGV4dCkpOworCisgICAgICAgIGZUZXh0ID0gdGV4dDsKKyAgICB9CisKKyAgICBwdWJsaWMgRGF0YUZsYXZvcltdIGdldFRyYW5zZmVyRGF0YUZsYXZvcnMoKSB7CisKKyAgICAgICAgRGF0YUZsYXZvcltdIGZsYXZvcnMgPSBzdXBlci5nZXRUcmFuc2ZlckRhdGFGbGF2b3JzKCk7CisgICAgICAgIERhdGFGbGF2b3JbXSByZXN1bHQgPSBuZXcgRGF0YUZsYXZvcltmbGF2b3JzLmxlbmd0aCsxXTsKKyAgICAgICAgcmVzdWx0WzBdID0gTUNvbnN0VGV4dC5zdHlsZWRUZXh0Rmxhdm9yOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGZsYXZvcnMsIDAsIHJlc3VsdCwgMSwgZmxhdm9ycy5sZW5ndGgpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGlzRGF0YUZsYXZvclN1cHBvcnRlZChEYXRhRmxhdm9yIGZsYXZvcikgeworCisgICAgICAgIGlmIChmbGF2b3IuZXF1YWxzKE1Db25zdFRleHQuc3R5bGVkVGV4dEZsYXZvcikpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmlzRGF0YUZsYXZvclN1cHBvcnRlZChmbGF2b3IpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIE9iamVjdCBnZXRUcmFuc2ZlckRhdGEoRGF0YUZsYXZvciBmbGF2b3IpIHRocm93cyBVbnN1cHBvcnRlZEZsYXZvckV4Y2VwdGlvbiwgSU9FeGNlcHRpb24geworCisgICAgICAgIGlmIChmbGF2b3IuZXF1YWxzKE1Db25zdFRleHQuc3R5bGVkVGV4dEZsYXZvcikpIHsKKyAgICAgICAgICAgIHJldHVybiBmVGV4dDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBzdXBlci5nZXRUcmFuc2ZlckRhdGEoZmxhdm9yKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UeXBpbmdJbnRlcmFjdG9yLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVHlwaW5nSW50ZXJhY3Rvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFhMDdmZTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVHlwaW5nSW50ZXJhY3Rvci5qYXZhCkBAIC0wLDAgKzEsMzU2IEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBUeXBpbmdJbnRlcmFjdG9yLmphdmEsdiAkICRSZXZpc2lvbjogMS4yICQgJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6NDggJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8qCisgICAgMi8yNS85OSAtIE5vdyBwcm9jZXNzaW5nIGNoYXJhY3RlcnMgZnJvbSBrZXlUeXBlZCBtZXRob2QgKG5vdCBrZXlQcmVzc2VkKS4KKyAgICAgICAgICAgICAgVGhpcyBuZXcgd2F5IGlzIGlucHV0LW1ldGhvZCBmcmllbmRseSBvbiAxLjIsIGFuZCBpcyBnZW5lcmFsbHkKKyAgICAgICAgICAgICAgbW9yZSBjb3JyZWN0LgorCisgICAgNy83Lzk3IC0gdGhlIG1vdXNlRGlkU29tZXRoaW5nIG1ldGhvZHMgdXNlZCB0byByZW1vdmUgdGhlIHR5cGluZyBpbnRlcmFjdG9yLgorICAgICAgICAgICAgVGhpcyBpcyBkZWZpbml0ZWx5IHdyb25nLCBidXQgbWF5YmUgdGhhdCBtYWRlIHNlbnNlIGF0IG9uZSB0aW1lLiAgQW55d2F5LAorICAgICAgICAgICAgbm93IHRoZSBtb3VzZVByZXNzZWQgLyBtb3VzZVJlbGVhc2VkIG1ldGhvZHMgcmVtb3ZlIHRoZSBpbnRlcmFjdG9yOyAgdGhlCisgICAgICAgICAgICBvdGhlcnMgZG8gbm90aGluZy4KKyovCisKK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5LZXlFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5Nb3VzZUV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkZvY3VzRXZlbnQ7CisKK2ltcG9ydCBqYXZhLnRleHQuQnJlYWtJdGVyYXRvcjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZU1vZGlmaWVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVkVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRmb3JtYXQuVGV4dE9mZnNldDsKKworZmluYWwgY2xhc3MgVHlwaW5nSW50ZXJhY3RvciBleHRlbmRzIEJlaGF2aW9yIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEJBQ0tTUEFDRSA9IDg7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBUQUIgPSAnXHQnOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgUkVUVVJOID0gJ1xyJzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIExJTkVfRkVFRCA9ICdcbic7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBQQVJBR1JBUEhfU0VQID0gJ1x1MjAyOSc7CisgICAgCisgICAgcHJpdmF0ZSBUZXh0Q29tcG9uZW50IGZUZXh0Q29tcG9uZW50OworICAgIHByaXZhdGUgVGV4dFNlbGVjdGlvbiBmU2VsZWN0aW9uOworICAgIHByaXZhdGUgQXR0cmlidXRlTWFwIGZUeXBpbmdTdHlsZTsKKyAgICBwcml2YXRlIE1Db25zdFRleHQgZlRleHQ7CisgICAgcHJpdmF0ZSBUZXh0RWRpdEJlaGF2aW9yIGZQYXJlbnQ7CisgICAgcHJpdmF0ZSBUZXh0Q2hhbmdlQ29tbWFuZCBmQ29tbWFuZCA9IG51bGw7CisgICAgcHJpdmF0ZSBTaW1wbGVDb21tYW5kTG9nIGZDb21tYW5kTG9nOworICAgIHByaXZhdGUgUGFuZWxFdmVudEJyb2FkY2FzdGVyIGZMaXN0ZW5lcjsKKyAgICBwcml2YXRlIEJyZWFrSXRlcmF0b3IgZkNoYXJCcmVhayA9IG51bGw7CisgICAgCisgICAgLyoqCisgICAgICogTm90IGFsbCBjaGFyYWN0ZXJzIHRoYXQgY29tZSBmcm9tIHRoZSBrZXlib2FyZCBhcmUgaGFuZGxlZAorICAgICAqIGFzIGlucHV0LiAgRm9yIGV4YW1wbGUsIGN0cmwtYyBpcyBub3QgYSB0eXBhYmxlIGNoYXJhY3Rlci4KKyAgICAgKiBUaGlzIG1ldGhvZCBkZXRlcm1pbmVzIHdoZXRoZXIgYSBwYXJ0aWN1bGFyIGNoYXJhY3RlciBmcm9tCisgICAgICogdGhlIGtleWJvYXJkIHdpbGwgYWZmZWN0IHRoZSB0ZXh0LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNUeXBpbmdJbnRlcmFjdG9yQ2hhcihjaGFyIGNoKSB7CisKKyAgICAgICAgcmV0dXJuIGNoID49ICcgJyB8fCAKKyAgICAgICAgICAgICAgIGNoID09IExJTkVfRkVFRCB8fCAKKyAgICAgICAgICAgICAgIGNoID09IFJFVFVSTiB8fAorICAgICAgICAgICAgICAgY2ggPT0gVEFCIHx8IAorICAgICAgICAgICAgICAgY2ggPT0gQkFDS1NQQUNFOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBkZXRlcm1pbmVzIHdoZXRoZXIgYSBUeXBpbmdJbnRlcmFjdG9yIHNob3VsZAorICAgICAqIGhhbmRsZSB0aGUgZ2l2ZW4gS2V5RXZlbnQuCisgICAgICovCisgICAgc3RhdGljIGJvb2xlYW4gaGFuZGxlZEJ5VHlwaW5nSW50ZXJhY3RvcihLZXlFdmVudCBldmVudCkgeworCisgICAgICAgIGZpbmFsIGludCBpZCA9IGV2ZW50LmdldElEKCk7CisgICAgICAgIAorICAgICAgICBpZiAoaWQgPT0gZXZlbnQuS0VZX1RZUEVEKSB7CisgICAgICAgICAgICByZXR1cm4gaXNUeXBpbmdJbnRlcmFjdG9yQ2hhcihldmVudC5nZXRLZXlDaGFyKCkpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIChpZCA9PSBLZXlFdmVudC5LRVlfUFJFU1NFRCAmJiAKKyAgICAgICAgICAgICAgICAgICAgZXZlbnQuZ2V0S2V5Q29kZSgpID09IEtleUV2ZW50LlZLX0RFTEVURSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgVHlwaW5nSW50ZXJhY3RvcihUZXh0Q29tcG9uZW50IHRleHRDb21wb25lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dFNlbGVjdGlvbiBzZWxlY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwIHR5cGluZ1N0eWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRFZGl0QmVoYXZpb3IgcGFyZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpbXBsZUNvbW1hbmRMb2cgY29tbWFuZExvZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYW5lbEV2ZW50QnJvYWRjYXN0ZXIgbGlzdGVuZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgZlRleHRDb21wb25lbnQgPSB0ZXh0Q29tcG9uZW50OworICAgICAgICBmVGV4dCA9IHRleHRDb21wb25lbnQuZ2V0VGV4dCgpOworICAgICAgICBmU2VsZWN0aW9uID0gc2VsZWN0aW9uOworICAgICAgICBmVHlwaW5nU3R5bGUgPSB0eXBpbmdTdHlsZTsKKyAgICAgICAgZlBhcmVudCA9IHBhcmVudDsKKyAgICAgICAgZkNvbW1hbmRMb2cgPSBjb21tYW5kTG9nOworICAgICAgICBmTGlzdGVuZXIgPSBsaXN0ZW5lcjsKKworICAgICAgICBmUGFyZW50LnNldFR5cGluZ0ludGVyYWN0b3IodGhpcyk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGVuZEludGVyYWN0aW9uKCkgeworCisgICAgICAgIHJlbW92ZUZyb21Pd25lcigpOworICAgICAgICBwb3N0VGV4dENoYW5nZUNvbW1hbmQoKTsKKworICAgICAgICBpbnQgc2VsU3RhcnQgPSBmU2VsZWN0aW9uLmdldFN0YXJ0KCkuZk9mZnNldDsKKyAgICAgICAgaW50IHNlbExpbWl0ID0gZlNlbGVjdGlvbi5nZXRFbmQoKS5mT2Zmc2V0OworICAgICAgICBmUGFyZW50LnNldFNhdmVkVHlwaW5nU3R5bGUoc2VsU3RhcnQ9PXNlbExpbWl0PyBmVHlwaW5nU3R5bGUgOiBudWxsLCBzZWxTdGFydCk7CisgICAgICAgIAorICAgICAgICBmUGFyZW50LnNldFR5cGluZ0ludGVyYWN0b3IobnVsbCk7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gdGV4dENvbnRyb2xFdmVudE9jY3VycmVkKEJlaGF2aW9yLkV2ZW50VHlwZSBldmVudCwgT2JqZWN0IHdoYXQpIHsKKworICAgICAgICBpZiAoZkNvbW1hbmQgPT0gbnVsbCAmJiBldmVudCA9PSBCZWhhdmlvci5DSEFSQUNURVJfU1RZTEVfTU9EKSB7CisKKyAgICAgICAgICAgIHBpY2tVcFR5cGluZ1N0eWxlKCk7CisgICAgICAgICAgICBmVHlwaW5nU3R5bGUgPSAoKFN0eWxlTW9kaWZpZXIpd2hhdCkubW9kaWZ5U3R5bGUoZlR5cGluZ1N0eWxlKTsKKworICAgICAgICAgICAgZkxpc3RlbmVyLnRleHRTdGF0ZUNoYW5nZWQoVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX1NUWUxFU19DSEFOR0VEKTsKKworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBCZWhhdmlvciBuZXh0ID0gbmV4dEJlaGF2aW9yKCk7IC8vIHNhdmUgYmVjYXVzZSByZW1vdmVGcm9tT3duZXIoKSB3aWxsIHRyYXNoIHRoaXMKKworICAgICAgICAgICAgZW5kSW50ZXJhY3Rpb24oKTsKKworICAgICAgICAgICAgaWYgKG5leHQgIT0gbnVsbCkKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV4dC50ZXh0Q29udHJvbEV2ZW50T2NjdXJyZWQoZXZlbnQsIHdoYXQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkb0JhY2tzcGFjZSgpIHsKKworICAgICAgICBpbnQgc2VsU3RhcnQgPSBmU2VsZWN0aW9uLmdldFN0YXJ0KCkuZk9mZnNldDsKKyAgICAgICAgaW50IHNlbExpbWl0ID0gZlNlbGVjdGlvbi5nZXRFbmQoKS5mT2Zmc2V0OworCisgICAgICAgIGlmIChzZWxTdGFydCA9PSBzZWxMaW1pdCkgeworICAgICAgICAgICAgaWYgKHNlbFN0YXJ0ICE9IDApIHsKKyAgICAgICAgICAgICAgICBmVHlwaW5nU3R5bGUgPSBudWxsOworICAgICAgICAgICAgICAgIHBpY2tVcFR5cGluZ1N0eWxlKCk7CisgICAgICAgICAgICAgICAgbWFrZVRleHRDaGFuZ2VDb21tYW5kKCk7CisgICAgICAgICAgICAgICAgaWYgKHNlbFN0YXJ0IDw9IGZDb21tYW5kLmFmZmVjdGVkUmFuZ2VTdGFydCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGZDb21tYW5kLnByZXBlbmRUb09sZFRleHQoZlRleHQuZXh0cmFjdChzZWxTdGFydCAtIDEsIHNlbFN0YXJ0KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgaW5zUHQgPSBuZXcgVGV4dE9mZnNldChzZWxTdGFydCAtIDEpOworICAgICAgICAgICAgICAgIGZQYXJlbnQuZG9SZXBsYWNlVGV4dChzZWxTdGFydCAtIDEsIHNlbFN0YXJ0LCBudWxsLCBpbnNQdCwgaW5zUHQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZlR5cGluZ1N0eWxlID0gbnVsbDsKKyAgICAgICAgICAgIG1ha2VUZXh0Q2hhbmdlQ29tbWFuZCgpOworICAgICAgICAgICAgVGV4dE9mZnNldCBpbnNQdCA9IG5ldyBUZXh0T2Zmc2V0KHNlbFN0YXJ0KTsKKyAgICAgICAgICAgIGZQYXJlbnQuZG9SZXBsYWNlVGV4dChzZWxTdGFydCwgc2VsTGltaXQsIG51bGwsIGluc1B0LCBpbnNQdCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZG9Gd2REZWxldGUoYm9vbGVhbiBpZ25vcmVDaGFyQnJlYWspIHsKKworICAgICAgICBpbnQgc2VsU3RhcnQgPSBmU2VsZWN0aW9uLmdldFN0YXJ0KCkuZk9mZnNldDsKKyAgICAgICAgaW50IHNlbExpbWl0ID0gZlNlbGVjdGlvbi5nZXRFbmQoKS5mT2Zmc2V0OworCisgICAgICAgIFRleHRPZmZzZXQgaW5zUHQgPSBuZXcgVGV4dE9mZnNldChzZWxTdGFydCk7CisKKyAgICAgICAgaWYgKHNlbFN0YXJ0ID09IHNlbExpbWl0KSB7CisgICAgICAgICAgICBpZiAoc2VsU3RhcnQgIT0gZlRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBmVHlwaW5nU3R5bGUgPSBudWxsOworICAgICAgICAgICAgICAgIG1ha2VUZXh0Q2hhbmdlQ29tbWFuZCgpOworICAgICAgICAgICAgICAgIGludCBudW1DaGFyczsKKyAgICAgICAgICAgICAgICBpZiAoaWdub3JlQ2hhckJyZWFrKSB7CisgICAgICAgICAgICAgICAgICAgIG51bUNoYXJzID0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChmQ2hhckJyZWFrID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZDaGFyQnJlYWsgPSBCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZkNoYXJCcmVhay5zZXRUZXh0KGZUZXh0LmNyZWF0ZUNoYXJhY3Rlckl0ZXJhdG9yKCkpOworICAgICAgICAgICAgICAgICAgICBudW1DaGFycyA9IGZDaGFyQnJlYWsuZm9sbG93aW5nKHNlbFN0YXJ0KSAtIHNlbFN0YXJ0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmQ29tbWFuZC5hcHBlbmRUb09sZFRleHQoZlRleHQuZXh0cmFjdChzZWxTdGFydCwgc2VsU3RhcnQgKyBudW1DaGFycykpOworICAgICAgICAgICAgICAgIGZQYXJlbnQuZG9SZXBsYWNlVGV4dChzZWxTdGFydCwgc2VsU3RhcnQgKyBudW1DaGFycywgbnVsbCwgaW5zUHQsIGluc1B0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZUeXBpbmdTdHlsZSA9IG51bGw7CisgICAgICAgICAgICBtYWtlVGV4dENoYW5nZUNvbW1hbmQoKTsKKyAgICAgICAgICAgIGZQYXJlbnQuZG9SZXBsYWNlVGV4dChzZWxTdGFydCwgc2VsTGltaXQsIG51bGwsIGluc1B0LCBpbnNQdCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZG9Ob3JtYWxLZXkoY2hhciBjaCkgeworCisgICAgICAgIC8vIFNpZ2ggLSAxLjEgcmVwb3J0cyBlbnRlciBrZXkgZXZlbnRzIGFzIHJldHVybiBjaGFycywgYnV0CisgICAgICAgIC8vIDEuMiByZXBvcnRzIHRoZW0gYXMgbGluZWZlZWRzLgorICAgICAgICBpZiAoY2ggPT0gUkVUVVJOKSB7CisgICAgICAgICAgICBjaCA9IExJTkVfRkVFRDsKKyAgICAgICAgfQorICAgICAgICBwaWNrVXBUeXBpbmdTdHlsZSgpOworICAgICAgICBtYWtlVGV4dENoYW5nZUNvbW1hbmQoKTsKKyAgICAgICAgZlBhcmVudC5kb1JlcGxhY2VTZWxlY3RlZFRleHQoY2gsIGZUeXBpbmdTdHlsZSk7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gZm9jdXNHYWluZWQoRm9jdXNFdmVudCBlKSB7CisKKyAgICAgICAgLy8gcGFzcyB0aHJvdWdoLCBidXQgc3RpY2sgYXJvdW5kLi4uCisgICAgICAgIHJldHVybiBzdXBlci5mb2N1c0dhaW5lZChlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBmb2N1c0xvc3QoRm9jdXNFdmVudCBlKSB7CisKKyAgICAgICAgLy8gcGFzcyB0aHJvdWdoLCBidXQgc3RpY2sgYXJvdW5kLi4uCisgICAgICAgIHJldHVybiBzdXBlci5mb2N1c0xvc3QoZSk7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4ga2V5VHlwZWQoS2V5RXZlbnQgZSkgeworCisgICAgICAgIGlmIChlLmdldEtleUNoYXIoKSA9PSBCQUNLU1BBQ0UpIHsKKyAgICAgICAgICAgIGRvQmFja3NwYWNlKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpZiAoaXNUeXBpbmdJbnRlcmFjdG9yQ2hhcihlLmdldEtleUNoYXIoKSkpIHsKKyAgICAgICAgICAgICAgICBLZXlSZW1hcCByZW1hcCA9IGZQYXJlbnQuZ2V0S2V5UmVtYXAoKTsKKyAgICAgICAgICAgICAgICBkb05vcm1hbEtleShyZW1hcC5yZW1hcChlKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBrZXlQcmVzc2VkKEtleUV2ZW50IGUpIHsKKworICAgICAgICBpbnQga2V5ID0gZS5nZXRLZXlDb2RlKCk7CisgICAgICAgIGlmIChrZXkgPT0gS2V5RXZlbnQuVktfREVMRVRFKSB7CisgICAgICAgICAgICBkb0Z3ZERlbGV0ZShlLmlzU2hpZnREb3duKCkpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICBCZWhhdmlvciBuZXh0ID0gbmV4dEJlaGF2aW9yKCk7CisKKyAgICAgICAgaWYgKFRleHRTZWxlY3Rpb24ua2V5QWZmZWN0c1NlbGVjdGlvbihlKSkgeworCisgICAgICAgICAgICBlbmRJbnRlcmFjdGlvbigpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG5leHQua2V5UHJlc3NlZChlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBrZXlSZWxlYXNlZChLZXlFdmVudCBlKSB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBtYWtlVGV4dENoYW5nZUNvbW1hbmQoKSB7CisgICAgICAgIGlmIChmQ29tbWFuZCA9PSBudWxsKSB7CisgICAgICAgICAgICBUZXh0T2Zmc2V0ICBzZWxTdGFydCA9IGZTZWxlY3Rpb24uZ2V0U3RhcnQoKTsKKyAgICAgICAgICAgIFRleHRPZmZzZXQgIHNlbEVuZCA9IGZTZWxlY3Rpb24uZ2V0RW5kKCk7CisKKyAgICAgICAgICAgIE1UZXh0IHdyaXRhYmxlVGV4dCA9IG5ldyBTdHlsZWRUZXh0KCk7CisgICAgICAgICAgICB3cml0YWJsZVRleHQucmVwbGFjZSgwLCAwLCBmVGV4dCwgc2VsU3RhcnQuZk9mZnNldCwgc2VsRW5kLmZPZmZzZXQpOworICAgICAgICAgICAgZkNvbW1hbmQgPSBuZXcgVGV4dENoYW5nZUNvbW1hbmQoZlBhcmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGFibGVUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBzZWxTdGFydC5mT2Zmc2V0LCBzZWxTdGFydCwgc2VsRW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVGV4dE9mZnNldCgpLCBuZXcgVGV4dE9mZnNldCgpKTsKKworICAgICAgICAgICAgZkxpc3RlbmVyLnRleHRTdGF0ZUNoYW5nZWQoVGV4dFBhbmVsRXZlbnQuVU5ET19TVEFURV9DSEFOR0VEKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIG1vdXNlRHJhZ2dlZChNb3VzZUV2ZW50IGUpIHsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBtb3VzZUVudGVyZWQoTW91c2VFdmVudCBlKSB7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gbW91c2VFeGl0ZWQoTW91c2VFdmVudCBlKSB7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gbW91c2VNb3ZlZChNb3VzZUV2ZW50IGUpIHsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBtb3VzZVByZXNzZWQoTW91c2VFdmVudCBlKSB7CisKKyAgICAgICAgQmVoYXZpb3IgbmV4dCA9IG5leHRCZWhhdmlvcigpOyAvLyBzYXZlIGJlY2F1c2UgcmVtb3ZlRnJvbU93bmVyKCkgd2lsbCB0cmFzaCB0aGlzCisKKyAgICAgICAgZW5kSW50ZXJhY3Rpb24oKTsKKworICAgICAgICBpZiAobmV4dCAhPSBudWxsKQorICAgICAgICAgICAgcmV0dXJuIG5leHQubW91c2VQcmVzc2VkKGUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gbW91c2VSZWxlYXNlZChNb3VzZUV2ZW50IGUpIHsKKworICAgICAgICBCZWhhdmlvciBuZXh0ID0gbmV4dEJlaGF2aW9yKCk7IC8vIHNhdmUgYmVjYXVzZSByZW1vdmVGcm9tT3duZXIoKSB3aWxsIHRyYXNoIHRoaXMKKworICAgICAgICBlbmRJbnRlcmFjdGlvbigpOworCisgICAgICAgIGlmIChuZXh0ICE9IG51bGwpCisgICAgICAgICAgICByZXR1cm4gbmV4dC5tb3VzZVJlbGVhc2VkKGUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHBpY2tVcFR5cGluZ1N0eWxlKCkgeworICAgICAgICBpZiAoZlR5cGluZ1N0eWxlID09IG51bGwpIHsKKyAgICAgICAgICAgIGludCBzZWxTdGFydCA9IGZTZWxlY3Rpb24uZ2V0U3RhcnQoKS5mT2Zmc2V0OworICAgICAgICAgICAgaW50IHNlbExpbWl0ID0gZlNlbGVjdGlvbi5nZXRFbmQoKS5mT2Zmc2V0OworICAgICAgICAgICAgZlR5cGluZ1N0eWxlID0gVGV4dEVkaXRCZWhhdmlvci50eXBpbmdTdHlsZUF0KGZUZXh0LCBzZWxTdGFydCwgc2VsTGltaXQpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHBvc3RUZXh0Q2hhbmdlQ29tbWFuZCgpIHsKKyAgICAgICAgaWYgKGZDb21tYW5kICE9IG51bGwpIHsKKyAgICAgICAgICAgIFRleHRPZmZzZXQgIHNlbFN0YXJ0ID0gZlNlbGVjdGlvbi5nZXRTdGFydCgpOworICAgICAgICAgICAgVGV4dE9mZnNldCAgc2VsRW5kID0gZlNlbGVjdGlvbi5nZXRFbmQoKTsKKworICAgICAgICAgICAgZkNvbW1hbmQuc2V0TmV3VGV4dChmVGV4dC5leHRyYWN0KGZDb21tYW5kLmFmZmVjdGVkUmFuZ2VTdGFydCgpLCBzZWxTdGFydC5mT2Zmc2V0KSk7CisgICAgICAgICAgICBmQ29tbWFuZC5zZXRTZWxSYW5nZUFmdGVyKHNlbFN0YXJ0LCBzZWxFbmQpOworICAgICAgICAgICAgZkNvbW1hbmRMb2cuYWRkKGZDb21tYW5kKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGJvb2xlYW4gaGFzUGVuZGluZ0NvbW1hbmQoKSB7CisKKyAgICAgICAgcmV0dXJuIGZDb21tYW5kICE9IG51bGw7CisgICAgfQorCisgICAgQXR0cmlidXRlTWFwIGdldFR5cGluZ1N0eWxlKCkgeworCisgICAgICAgIHBpY2tVcFR5cGluZ1N0eWxlKCk7CisgICAgICAgIHJldHVybiBmVHlwaW5nU3R5bGU7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL3BhY2thZ2UuaHRtbCBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTZhMTg3OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9wYWNrYWdlLmh0bWwKQEAgLTAsMCArMSw3IEBACis8aHRtbD4KKzxib2R5IGJnY29sb3I9IndoaXRlIj4KK1Byb3ZpZGVzIGNvbXBvbmVudHMgKGZvciBib3RoIEFXVCBhbmQgU3dpbmcpCitpbiB3aGljaCBzdHlsZWQgdGV4dCBpcyBkaXNwbGF5ZWQgYW5kIGVkaXRlZCwgYW5kCityZWxhdGVkIGNsYXNzZXMuCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvQWJvdXRUZXh0LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvQWJvdXRUZXh0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2ZiNGQwNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9BYm91dFRleHQuamF2YQpAQCAtMCwwICsxLDY1IEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBBYm91dFRleHQuamF2YSx2ICQgJFJldmlzaW9uOiAxLjIgJCAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNjo0OSAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbDsKKworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwucmVzb3VyY2VzLkZyYW1lUmVzb3VyY2VzOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlZFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlTW9kaWZpZXI7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuVGV4dEF0dHJpYnV0ZTsKKworcHVibGljIGZpbmFsIGNsYXNzIEFib3V0VGV4dCB7CisgICAgCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBDb2xvcltdIENPTE9SUyA9IHsKKyAgICAgICAgQ29sb3IucmVkLCBDb2xvci5ibHVlLCBDb2xvci53aGl0ZSwgQ29sb3IuZ3JlZW4KKyAgICB9OworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgTUNvbnN0VGV4dCBnZXRBYm91dFRleHQoKSB7CisKKyAgICAgICAgU3RyaW5nIHRleHQgPSBSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLkFCT1VUX1RFWFQpOworICAgICAgICBTdHlsZWRUZXh0IHN0eWxlZFRleHQgPSBuZXcgU3R5bGVkVGV4dCh0ZXh0LCBBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUCk7CisKKyAgICAgICAgaW50IGxlbmd0aCA9IHN0eWxlZFRleHQubGVuZ3RoKCk7CisgICAgICAgIGludCBpPTA7CisKKyAgICAgICAgZm9yIChpbnQgcGFyYWdyYXBoU3RhcnQgPSAwLCBwYXJhZ3JhcGhMaW1pdDsKKyAgICAgICAgICAgICAgICAgICAgcGFyYWdyYXBoU3RhcnQgPCBsZW5ndGg7CisgICAgICAgICAgICAgICAgICAgIHBhcmFncmFwaFN0YXJ0ID0gcGFyYWdyYXBoTGltaXQpIHsKKworICAgICAgICAgICAgcGFyYWdyYXBoTGltaXQgPSBzdHlsZWRUZXh0LnBhcmFncmFwaExpbWl0KHBhcmFncmFwaFN0YXJ0KTsKKyAgICAgICAgICAgIFN0eWxlTW9kaWZpZXIgbW9kaWZpZXIgPSBTdHlsZU1vZGlmaWVyLmNyZWF0ZUFkZE1vZGlmaWVyKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5GT1JFR1JPVU5ELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09MT1JTWyhpKyspJUNPTE9SUy5sZW5ndGhdKTsKKyAgICAgICAgICAgIHN0eWxlZFRleHQubW9kaWZ5Q2hhcmFjdGVyU3R5bGVzKHBhcmFncmFwaFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYWdyYXBoTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllcik7CisgICAgICAgIH0KKworICAgICAgICBTdHlsZU1vZGlmaWVyIG1vZGlmaWVyID0gU3R5bGVNb2RpZmllci5jcmVhdGVBZGRNb2RpZmllcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5MSU5FX0ZMVVNILAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLkZMVVNIX0NFTlRFUik7CisKKyAgICAgICAgc3R5bGVkVGV4dC5tb2RpZnlQYXJhZ3JhcGhTdHlsZXMoMCwgdGV4dC5sZW5ndGgoKSwgbW9kaWZpZXIpOworCisgICAgICAgIHJldHVybiBzdHlsZWRUZXh0OworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvQm9vbGVhblN0eWxlTWVudUl0ZW0uamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9Cb29sZWFuU3R5bGVNZW51SXRlbS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmMyNDZjZGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvQm9vbGVhblN0eWxlTWVudUl0ZW0uamF2YQpAQCAtMCwwICsxLDk5IEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBCb29sZWFuU3R5bGVNZW51SXRlbS5qYXZhLHYgJCAkUmV2aXNpb246IDEuMiAkICREYXRlOiAyMDAyLzAyLzE2IDAzOjA2OjQ5ICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudWlpbXBsOworCitpbXBvcnQgamF2YS51dGlsLkV2ZW50T2JqZWN0OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlU2V0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZU1vZGlmaWVyOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxFdmVudDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuTWVudURhdGE7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBCb29sZWFuU3R5bGVNZW51SXRlbSBleHRlbmRzIFNpbmdsZUNoZWNrTWVudUl0ZW0geworICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICBwcml2YXRlIGZpbmFsIE9iamVjdCBmS2V5OworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBmQ2hhcmFjdGVyOworCisgICAgcHJpdmF0ZSBmaW5hbCBPYmplY3QgZk9uVmFsdWU7CisgICAgCisgICAgcHVibGljIEJvb2xlYW5TdHlsZU1lbnVJdGVtKE9iamVjdCBzdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0IG9uVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lbnVEYXRhIG1lbnVEYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGNoYXJhY3RlcikgeworICAgICAgICAKKyAgICAgICAgc3VwZXIobWVudURhdGEpOworICAgICAgICBpZiAob25WYWx1ZSA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJPbiB2YWx1ZSBjYW5ub3QgYmUgbnVsbCIpOworICAgICAgICB9CisKKyAgICAgICAgZktleSA9IHN0eWxlOworICAgICAgICBmQ2hhcmFjdGVyID0gY2hhcmFjdGVyOworICAgICAgICAKKyAgICAgICAgZk9uVmFsdWUgPSBvblZhbHVlOworICAgICAgICBmSXRlbS5hZGRMaXN0ZW5lcihuZXcgRXZlbnRMaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGV2ZW50T2NjdXJyZWQoRXZlbnRPYmplY3QgZXZlbnQpIHsKKyAgICAgICAgICAgICAgICBTdHlsZU1vZGlmaWVyIG1vZGlmaWVyOworICAgICAgICAgICAgICAgIE1UZXh0UGFuZWwgcGFuZWwgPSBnZXRUZXh0UGFuZWwoKTsKKyAgICAgICAgICAgICAgICBpZiAocGFuZWwgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk1lbnUgaXRlbSBpcyBlbmFibGVkIHdoZW4gcGFuZWwgaXMgbnVsbCEiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGNvbnRpbnVvdXNBbmRDb21tYW5kKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlU2V0IHNldCA9IG5ldyBBdHRyaWJ1dGVTZXQoZktleSk7CisgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyID0gU3R5bGVNb2RpZmllci5jcmVhdGVSZW1vdmVNb2RpZmllcihzZXQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXIgPSBTdHlsZU1vZGlmaWVyLmNyZWF0ZUFkZE1vZGlmaWVyKGZLZXksIGZPblZhbHVlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGZDaGFyYWN0ZXIgPT0gQ0hBUkFDVEVSKSB7CisgICAgICAgICAgICAgICAgICAgIHBhbmVsLm1vZGlmeUNoYXJhY3RlclN0eWxlT25TZWxlY3Rpb24obW9kaWZpZXIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcGFuZWwubW9kaWZ5UGFyYWdyYXBoU3R5bGVPblNlbGVjdGlvbihtb2RpZmllcik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBib29sZWFuIGNvbnRpbnVvdXNBbmRDb21tYW5kKCkgeworICAgICAgICAKKyAgICAgICAgTVRleHRQYW5lbCBwYW5lbCA9IGdldFRleHRQYW5lbCgpOworCisgICAgICAgIE9iamVjdCB2YWx1ZSA9IChmQ2hhcmFjdGVyID09IENIQVJBQ1RFUik/IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhbmVsLmdldENoYXJhY3RlclN0eWxlT3ZlclNlbGVjdGlvbihmS2V5KSA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFuZWwuZ2V0UGFyYWdyYXBoU3R5bGVPdmVyU2VsZWN0aW9uKGZLZXkpOworICAgICAgICByZXR1cm4gZk9uVmFsdWUuZXF1YWxzKHZhbHVlKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgc2V0Q2hlY2tlZCgpIHsKKyAgICAgICAgCisgICAgICAgIGZJdGVtLnNldFN0YXRlKGNvbnRpbnVvdXNBbmRDb21tYW5kKCkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgYm9vbGVhbiByZXNwb25kc1RvRXZlbnRUeXBlKGludCB0eXBlKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gdHlwZSA9PSBUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fU1RZTEVTX0NIQU5HRUQ7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRleHRFdmVudE9jY3VycmVkKFRleHRQYW5lbEV2ZW50IGV2ZW50KSB7CisgICAgICAgIAorICAgICAgICBzZXRDaGVja2VkKCk7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9DaG9pY2VNZW51SXRlbVNldC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL0Nob2ljZU1lbnVJdGVtU2V0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWMzNmEwZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9DaG9pY2VNZW51SXRlbVNldC5qYXZhCkBAIC0wLDAgKzEsOTYgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IENob2ljZU1lbnVJdGVtU2V0LmphdmEsdiAkICRSZXZpc2lvbjogMS4yICQgJERhdGU6IDIwMDIvMDIvMTYgMDM6MDY6NDkgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC51aWltcGw7CisKK2ltcG9ydCBqYXZhLnV0aWwuRXZlbnRPYmplY3Q7CisKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlU2V0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZU1vZGlmaWVyOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxFdmVudDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuTWVudURhdGE7CisKK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBDaG9pY2VNZW51SXRlbVNldCBleHRlbmRzIE1lbnVJdGVtU2V0IHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgTUl0ZW1bXSBmSXRlbXM7CisgICAgcHJpdmF0ZSBIYXNodGFibGUgZkl0ZW1Ub1N0eWxlTWFwOworICAgIAorICAgIENob2ljZU1lbnVJdGVtU2V0KE9iamVjdFtdIHZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgICBNZW51RGF0YVtdIG1lbnVEYXRhKSB7CisgICAgICAgIAorICAgICAgICBpZiAodmFsdWVzLmxlbmd0aCAhPSBtZW51RGF0YS5sZW5ndGgpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJWYWx1ZXMgYW5kIG5hbWVzIG11c3QgaGF2ZSBlcXVhbCBsZW5ndGgiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZkl0ZW1zID0gbmV3IE1JdGVtW21lbnVEYXRhLmxlbmd0aF07CisgICAgICAgIGZJdGVtVG9TdHlsZU1hcCA9IG5ldyBIYXNodGFibGUobWVudURhdGEubGVuZ3RoKTsKKyAgICAgICAgCisgICAgICAgIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIgPSBuZXcgRXZlbnRMaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGV2ZW50T2NjdXJyZWQoRXZlbnRPYmplY3QgZXZlbnQpIHsKKyAgICAgICAgICAgICAgICBoYW5kbGVWYWx1ZVNlbGVjdGVkKGZJdGVtVG9TdHlsZU1hcC5nZXQoZXZlbnQuZ2V0U291cmNlKCkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IG1lbnVEYXRhLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBmSXRlbXNbaV0gPSBNSXRlbS5jcmVhdGVDaGVja2JveEl0ZW0obWVudURhdGFbaV0pOworICAgICAgICAgICAgaWYgKHZhbHVlc1tpXSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgZkl0ZW1Ub1N0eWxlTWFwLnB1dChmSXRlbXNbaV0sIHZhbHVlc1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmSXRlbXNbaV0uYWRkTGlzdGVuZXIobGlzdGVuZXIpOworICAgICAgICAgICAgZkl0ZW1zW2ldLnNldEVuYWJsZWQoZmFsc2UpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBhYnN0cmFjdCB2b2lkIGhhbmRsZVZhbHVlU2VsZWN0ZWQoT2JqZWN0IGl0ZW0pOworICAgIHByb3RlY3RlZCBhYnN0cmFjdCBPYmplY3QgZ2V0Q3VycmVudFZhbHVlKCk7CisgICAgCisgICAgcHJvdGVjdGVkIGZpbmFsIHZvaWQgc2V0Q2hlY2tlZCgpIHsKKyAgICAgICAgCisgICAgICAgIE9iamVjdCB2YWx1ZSA9IGdldEN1cnJlbnRWYWx1ZSgpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgZkl0ZW1zLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBPYmplY3QgaXRlbVZhbCA9IGZJdGVtVG9TdHlsZU1hcC5nZXQoZkl0ZW1zW2ldKTsKKyAgICAgICAgICAgIGlmIChpdGVtVmFsID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBmSXRlbXNbaV0uc2V0U3RhdGUodmFsdWUgPT0gbnVsbCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBmSXRlbXNbaV0uc2V0U3RhdGUoaXRlbVZhbC5lcXVhbHModmFsdWUpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByb3RlY3RlZCBmaW5hbCB2b2lkIHRleHRQYW5lbENoYW5nZWQoKSB7CisgICAgICAgIAorICAgICAgICBNVGV4dFBhbmVsIHRleHRQYW5lbCA9IGdldFRleHRQYW5lbCgpOworICAgICAgICBpZiAodGV4dFBhbmVsID09IG51bGwpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IGZJdGVtcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGZJdGVtc1tpXS5zZXRFbmFibGVkKGZhbHNlKTsKKyAgICAgICAgICAgICAgICBmSXRlbXNbaV0uc2V0U3RhdGUoZmFsc2UpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgZkl0ZW1zLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgZkl0ZW1zW2ldLnNldEVuYWJsZWQodHJ1ZSk7CisgICAgICAgICAgICAgICAgc2V0Q2hlY2tlZCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL0NvbW1hbmRNZW51SXRlbS5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL0NvbW1hbmRNZW51SXRlbS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRjODliODUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvQ29tbWFuZE1lbnVJdGVtLmphdmEKQEAgLTAsMCArMSwxOTUgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IENvbW1hbmRNZW51SXRlbS5qYXZhLHYgJCAkUmV2aXNpb246IDEuMSAkICREYXRlOiAyMDAwLzA0LzIwIDE3OjUyOjMyICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudWlpbXBsOworCitpbXBvcnQgamF2YS51dGlsLkV2ZW50T2JqZWN0OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxFdmVudDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuTWVudURhdGE7CisKK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBDb21tYW5kTWVudUl0ZW0gZXh0ZW5kcyBNZW51SXRlbVNldCB7CisgICAgCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIC8qZmluYWwqLyBNSXRlbSBmSXRlbTsKKyAgICAKKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgYm9vbGVhbiBpc0VuYWJsZWQoKTsKKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3Qgdm9pZCBwZXJmb3JtQWN0aW9uKCk7CisKKyAgICBwcm90ZWN0ZWQgQ29tbWFuZE1lbnVJdGVtKE1lbnVEYXRhIGRhdGEpIHsKKyAgICAgICAgCisgICAgICAgIHRoaXMoZGF0YSwgZmFsc2UpOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgQ29tbWFuZE1lbnVJdGVtKE1lbnVEYXRhIGRhdGEsIGJvb2xlYW4gZW5hYmxlQnlEZWZhdWx0KSB7CisgICAgICAgIAorICAgICAgICBmSXRlbSA9IE1JdGVtLmNyZWF0ZUl0ZW0oZGF0YSk7CisgICAgICAgIGZJdGVtLmFkZExpc3RlbmVyKG5ldyBFdmVudExpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgZXZlbnRPY2N1cnJlZChFdmVudE9iamVjdCBldmVudCkgeworICAgICAgICAgICAgICAgIHBlcmZvcm1BY3Rpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIGZJdGVtLnNldEVuYWJsZWQoZW5hYmxlQnlEZWZhdWx0KTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgdGV4dFBhbmVsQ2hhbmdlZCgpIHsKKyAgICAgICAgCisgICAgICAgIE1UZXh0UGFuZWwgdGV4dFBhbmVsID0gZ2V0VGV4dFBhbmVsKCk7CisgICAgICAgIGlmICh0ZXh0UGFuZWwgPT0gbnVsbCkgeworICAgICAgICAgICAgZkl0ZW0uc2V0RW5hYmxlZChmYWxzZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmSXRlbS5zZXRFbmFibGVkKGlzRW5hYmxlZCgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXh0RXZlbnRPY2N1cnJlZChUZXh0UGFuZWxFdmVudCBldmVudCkgeworICAgICAgICAKKyAgICAgICAgZkl0ZW0uc2V0RW5hYmxlZChpc0VuYWJsZWQoKSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgQ3V0Q29weUNsZWFyIGV4dGVuZHMgQ29tbWFuZE1lbnVJdGVtIHsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENVVCA9IDA7CisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPUFkgPSAxOworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDTEVBUiA9IDI7CisKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBpbnQgZktpbmQ7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgQ3V0Q29weUNsZWFyKE1lbnVEYXRhIG1lbnVEYXRhLCBpbnQga2luZCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBzdXBlcihtZW51RGF0YSk7CisgICAgICAgICAgICBpZiAoa2luZCAhPSBDVVQgJiYga2luZCAhPSBDT1BZICYmIGtpbmQgIT0gQ0xFQVIpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIG1lbnUga2luZCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZktpbmQgPSBraW5kOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiBpc0VuYWJsZWQoKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIE1UZXh0UGFuZWwgcGFuZWwgPSBnZXRUZXh0UGFuZWwoKTsKKyAgICAgICAgICAgIHJldHVybiBwYW5lbC5nZXRTZWxlY3Rpb25TdGFydCgpICE9IHBhbmVsLmdldFNlbGVjdGlvbkVuZCgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgYm9vbGVhbiByZXNwb25kc1RvRXZlbnRUeXBlKGludCB0eXBlKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiB0eXBlID09IFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9FTVBUWV9DSEFOR0VEOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcm90ZWN0ZWQgdm9pZCBwZXJmb3JtQWN0aW9uKCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBNVGV4dFBhbmVsIHBhbmVsID0gZ2V0VGV4dFBhbmVsKCk7CisgICAgICAgICAgICBzd2l0Y2ggKGZLaW5kKSB7CisgICAgICAgICAgICAgICAgY2FzZSBDVVQ6CisgICAgICAgICAgICAgICAgICAgIHBhbmVsLmN1dCgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIENPUFk6CisgICAgICAgICAgICAgICAgICAgIHBhbmVsLmNvcHkoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBDTEVBUjoKKyAgICAgICAgICAgICAgICAgICAgcGFuZWwuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBVbmRvUmVkbyBleHRlbmRzIENvbW1hbmRNZW51SXRlbSB7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJvb2xlYW4gVU5ETyA9IHRydWU7CisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYm9vbGVhbiBSRURPID0gZmFsc2U7CisgICAgICAgIAorICAgICAgICBwcml2YXRlIGJvb2xlYW4gZktpbmQ7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgVW5kb1JlZG8oTWVudURhdGEgbWVudURhdGEsIGJvb2xlYW4ga2luZCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBzdXBlcihtZW51RGF0YSk7CisgICAgICAgICAgICBmS2luZCA9IGtpbmQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIGlzRW5hYmxlZCgpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTVRleHRQYW5lbCBwYW5lbCA9IGdldFRleHRQYW5lbCgpOworICAgICAgICAgICAgaWYgKGZLaW5kID09IFVORE8pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcGFuZWwuY2FuVW5kbygpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHBhbmVsLmNhblJlZG8oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBib29sZWFuIHJlc3BvbmRzVG9FdmVudFR5cGUoaW50IHR5cGUpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIHR5cGUgPT0gVGV4dFBhbmVsRXZlbnQuVU5ET19TVEFURV9DSEFOR0VEOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgcGVyZm9ybUFjdGlvbigpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTVRleHRQYW5lbCBwYW5lbCA9IGdldFRleHRQYW5lbCgpOworICAgICAgICAgICAgaWYgKGZLaW5kID09IFVORE8pIHsKKyAgICAgICAgICAgICAgICBwYW5lbC51bmRvKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBwYW5lbC5yZWRvKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIFBhc3RlIGV4dGVuZHMgQ29tbWFuZE1lbnVJdGVtIHsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBQYXN0ZShNZW51RGF0YSBtZW51RGF0YSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBzdXBlcihtZW51RGF0YSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIGlzRW5hYmxlZCgpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGdldFRleHRQYW5lbCgpLmNsaXBib2FyZE5vdEVtcHR5KCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgYm9vbGVhbiByZXNwb25kc1RvRXZlbnRUeXBlKGludCB0eXBlKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiB0eXBlID09IFRleHRQYW5lbEV2ZW50LkNMSVBCT0FSRF9DSEFOR0VEOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgcGVyZm9ybUFjdGlvbigpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZ2V0VGV4dFBhbmVsKCkucGFzdGUoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgU2VsZWN0QWxsIGV4dGVuZHMgQ29tbWFuZE1lbnVJdGVtIHsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBTZWxlY3RBbGwoTWVudURhdGEgbWVudURhdGEpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc3VwZXIobWVudURhdGEpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiBpc0VuYWJsZWQoKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGJvb2xlYW4gcmVzcG9uZHNUb0V2ZW50VHlwZShpbnQgdHlwZSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgdm9pZCBwZXJmb3JtQWN0aW9uKCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBnZXRUZXh0UGFuZWwoKS5zZWxlY3RBbGwoKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9EaWFsb2dJdGVtLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvRGlhbG9nSXRlbS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA3M2FlMmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvRGlhbG9nSXRlbS5qYXZhCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IERpYWxvZ0l0ZW0uamF2YSx2ICQgJFJldmlzaW9uOiAxLjEgJCAkRGF0ZTogMjAwMC8wNC8yMCAxNzo1MjozMiAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbDsKKworaW1wb3J0IGphdmEuYXd0LldpbmRvdzsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dBZGFwdGVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxFdmVudDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuTWVudURhdGE7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBEaWFsb2dJdGVtIGV4dGVuZHMgQ29tbWFuZE1lbnVJdGVtIHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHB1YmxpYyBzdGF0aWMgYWJzdHJhY3QgY2xhc3MgRGlhbG9nRmFjdG9yeSB7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgYWJzdHJhY3QgV2luZG93IGNyZWF0ZURpYWxvZyhNVGV4dFBhbmVsIHRleHRQYW5lbCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgRGlhbG9nRmFjdG9yeSBmRGlhbG9nRmFjdG9yeTsKKyAgICBwcml2YXRlIFdpbmRvdyBmRGlhbG9nID0gbnVsbDsKKyAgICAKKyAgICBwdWJsaWMgRGlhbG9nSXRlbShNZW51RGF0YSBtZW51RGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICBEaWFsb2dGYWN0b3J5IGRpYWxvZ0ZhY3RvcnkpIHsKKyAgICAgICAgCisgICAgICAgIHN1cGVyKG1lbnVEYXRhLCB0cnVlKTsKKyAgICAgICAgZkRpYWxvZ0ZhY3RvcnkgPSBkaWFsb2dGYWN0b3J5OworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCB0ZXh0UGFuZWxDaGFuZ2VkKCkgeworICAgICAgICAvLyBkbyBub3RoaW5nCisgICAgfQorICAgICAgICAKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBpc0VuYWJsZWQoKSB7CisgICAgICAgICAgICAKKyAgICAgICAgLy8gc2hvdWxkIG5ldmVyIGdldCBjYWxsZWQuLi4KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gcmVzcG9uZHNUb0V2ZW50VHlwZShpbnQgdHlwZSkgeworICAgICAgICAgICAgCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBwZXJmb3JtQWN0aW9uKCkgeworCisgICAgICAgIGlmIChmRGlhbG9nID09IG51bGwpIHsKKyAgICAgICAgICAgIE1UZXh0UGFuZWwgcGFuZWwgPSBnZXRUZXh0UGFuZWwoKTsKKyAgICAgICAgICAgIGlmIChwYW5lbCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgZkRpYWxvZyA9IGZEaWFsb2dGYWN0b3J5LmNyZWF0ZURpYWxvZyhwYW5lbCk7CisgICAgICAgICAgICAgICAgZkRpYWxvZy5hZGRXaW5kb3dMaXN0ZW5lcihuZXcgV2luZG93QWRhcHRlcigpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgd2luZG93Q2xvc2VkKFdpbmRvd0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZEaWFsb2cgPSBudWxsOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZkRpYWxvZy5zaG93KCk7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9FdmVudExpc3RlbmVyLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvRXZlbnRMaXN0ZW5lci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgwNWJjZTkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvRXZlbnRMaXN0ZW5lci5qYXZhCkBAIC0wLDAgKzEsMjQgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IEV2ZW50TGlzdGVuZXIuamF2YSx2ICQgJFJldmlzaW9uOiAxLjEgJCAkRGF0ZTogMjAwMC8wNC8yMCAxNzo1MjozMiAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbDsKKworaW1wb3J0IGphdmEudXRpbC5FdmVudE9iamVjdDsKKworcHVibGljIGludGVyZmFjZSBFdmVudExpc3RlbmVyIHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHB1YmxpYyB2b2lkIGV2ZW50T2NjdXJyZWQoRXZlbnRPYmplY3QgZXZlbnQpOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9Gb250TGlzdC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL0ZvbnRMaXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWIwNzU2MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9Gb250TGlzdC5qYXZhCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IEZvbnRMaXN0LmphdmEsdiAkICRSZXZpc2lvbjogMS4xICQgJERhdGU6IDIwMDAvMDQvMjAgMTc6NTI6MzIgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8vIFJlcXVpcmVzIEphdmEyCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudWlpbXBsOworCitpbXBvcnQgamF2YS5hd3QuR3JhcGhpY3NFbnZpcm9ubWVudDsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbnM7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CisKK2ZpbmFsIGNsYXNzIEZvbnRMaXN0IHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBzdHJpcFRoZXNlID0geworICAgICAgICAiLmJvbGQiLCAiLmJvbGRpdGFsaWMiLCAiLml0YWxpYyIKKyAgICB9OworCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdbXSBnZXRGb250TGlzdCgpIHsKKworICAgICAgICBTdHJpbmdbXSBuYW1lcyA9IEdyYXBoaWNzRW52aXJvbm1lbnQuZ2V0TG9jYWxHcmFwaGljc0Vudmlyb25tZW50KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldEF2YWlsYWJsZUZvbnRGYW1pbHlOYW1lcygpOworICAgICAgICBWZWN0b3IgdiA9IG5ldyBWZWN0b3IobmFtZXMubGVuZ3RoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgbmFtZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHYuYWRkRWxlbWVudChuYW1lc1tpXSk7CisgICAgICAgIH0KKworICAgICAgICBDb2xsZWN0aW9ucy5zb3J0KHYpOworICAgICAgICAgICAgICAgIAorICAgICAgICBTdHJpbmcgbGFzdCA9ICIiOworICAgICAgICAKKyAgICAgICAgSXRlcmF0b3IgaXRlciA9IHYubGlzdEl0ZXJhdG9yKCk7CisgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgU3RyaW5nIGN1cnJlbnQgPSAoU3RyaW5nKSBpdGVyLm5leHQoKTsKKyAgICAgICAgICAgIHRlc3RTdWZmaXhlczogZm9yIChpbnQgaT0wOyBpIDwgc3RyaXBUaGVzZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChjdXJyZW50LmVuZHNXaXRoKHN0cmlwVGhlc2VbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBiYXNlTGVuID0gY3VycmVudC5sZW5ndGgoKS1zdHJpcFRoZXNlW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgYmFzZSA9IGN1cnJlbnQuc3Vic3RyaW5nKDAsIGJhc2VMZW4pOworICAgICAgICAgICAgICAgICAgICBpZiAoYmFzZS5lcXVhbHNJZ25vcmVDYXNlKGxhc3QpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpdGVyLnJlbW92ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudCA9IGxhc3Q7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhayB0ZXN0U3VmZml4ZXM7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsYXN0ID0gY3VycmVudDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgU3RyaW5nW10gcmVzdWx0ID0gbmV3IFN0cmluZ1t2LnNpemUoKV07CisgICAgICAgIHYuY29weUludG8ocmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvS2V5bWFwTWVudUl0ZW1TZXQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9LZXltYXBNZW51SXRlbVNldC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU3NGZhYTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvS2V5bWFwTWVudUl0ZW1TZXQuamF2YQpAQCAtMCwwICsxLDYxIEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBLZXltYXBNZW51SXRlbVNldC5qYXZhLHYgJCAkUmV2aXNpb246IDEuMSAkICREYXRlOiAyMDAwLzA0LzIwIDE3OjUyOjMyICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudWlpbXBsOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuS2V5UmVtYXA7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuVGV4dFBhbmVsRXZlbnQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuTWVudURhdGE7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBLZXltYXBNZW51SXRlbVNldCBleHRlbmRzIENob2ljZU1lbnVJdGVtU2V0IHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHVibGljIEtleW1hcE1lbnVJdGVtU2V0KEtleVJlbWFwW10gdmFsdWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZW51RGF0YVtdIG1lbnVEYXRhKSB7CisgICAgICAgIAorICAgICAgICBzdXBlcih2YWx1ZXMsIG1lbnVEYXRhKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlVmFsdWVTZWxlY3RlZChPYmplY3QgdmFsdWUpIHsKKyAgICAgICAgCisgICAgICAgIE1UZXh0UGFuZWwgdGV4dFBhbmVsID0gZ2V0VGV4dFBhbmVsKCk7CisgICAgICAgIGlmICh0ZXh0UGFuZWwgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJNZW51IGl0ZW0gaXMgZW5hYmxlZCB3aGVuIHBhbmVsIGlzIG51bGwhIik7CisgICAgICAgIH0KKworICAgICAgICB0ZXh0UGFuZWwuc2V0S2V5UmVtYXAoKEtleVJlbWFwKSB2YWx1ZSk7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBPYmplY3QgZ2V0Q3VycmVudFZhbHVlKCkgeworICAgICAgICAKKyAgICAgICAgTVRleHRQYW5lbCB0ZXh0UGFuZWwgPSBnZXRUZXh0UGFuZWwoKTsKKyAgICAgICAgaWYgKHRleHRQYW5lbCA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlNob3VsZG4ndCBjYWxsIHRoaXMgd2l0aG91dCBhIHRleHQgcGFuZWwhIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRleHRQYW5lbC5nZXRLZXlSZW1hcCgpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCB0ZXh0RXZlbnRPY2N1cnJlZChUZXh0UGFuZWxFdmVudCBldmVudCkgeworICAgICAgICAKKyAgICAgICAgc2V0Q2hlY2tlZCgpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgYm9vbGVhbiByZXNwb25kc1RvRXZlbnRUeXBlKGludCB0eXBlKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gdHlwZSA9PSBUZXh0UGFuZWxFdmVudC5LRVlSRU1BUF9DSEFOR0VEOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL01JdGVtLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvTUl0ZW0uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mZGYxZDY4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL01JdGVtLmphdmEKQEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogTUl0ZW0uamF2YSx2ICQgJFJldmlzaW9uOiAxLjEgJCAkRGF0ZTogMjAwMC8wNC8yMCAxNzo1MjozMiAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbDsKKworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CitpbXBvcnQgamF2YS51dGlsLkV2ZW50T2JqZWN0OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwucmVzb3VyY2VzLk1lbnVEYXRhOworCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgTUl0ZW0geworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIFZlY3RvciBmTGlzdGVuZXJzID0gbmV3IFZlY3RvcigyKTsKKyAgICBwcml2YXRlIEV2ZW50T2JqZWN0IGZFdmVudCA9IG5ldyBFdmVudE9iamVjdCh0aGlzKTsKKyAgICAKKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRFbmFibGVkKGJvb2xlYW4gZW5hYmxlZCk7CisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgc2V0U3RhdGUoYm9vbGVhbiBjaGVja2VkKTsKKyAgICAKKyAgICBwdWJsaWMgZmluYWwgdm9pZCBhZGRMaXN0ZW5lcihFdmVudExpc3RlbmVyIGxpc3RlbmVyKSB7CisgICAgICAgIAorICAgICAgICBmTGlzdGVuZXJzLmFkZEVsZW1lbnQobGlzdGVuZXIpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgZmluYWwgdm9pZCByZW1vdmVMaXN0ZW5lcihFdmVudExpc3RlbmVyIGxpc3RlbmVyKSB7CisgICAgICAgIAorICAgICAgICBmTGlzdGVuZXJzLnJlbW92ZUVsZW1lbnQobGlzdGVuZXIpOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVTZWxlY3RlZCgpIHsKKyAgICAgICAgICAgIAorICAgICAgICBpbnQgbGVuZ3RoID0gZkxpc3RlbmVycy5zaXplKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IGxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBFdmVudExpc3RlbmVyIGwgPSAoRXZlbnRMaXN0ZW5lcikgZkxpc3RlbmVycy5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICBsLmV2ZW50T2NjdXJyZWQoZkV2ZW50KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBmYWN0b3J5IHN0dWZmCisgICAgCisgICAgLyoqCisgICAgICogQ2xpZW50cyBzaG91bGQgc3luY2hyb25pemUgb24gTE9DSyB3aGlsZSBzZXR0aW5nIGFuZCB1c2luZworICAgICAqIGdsb2JhbCBmYWN0b3J5LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IExPQ0sgPSBuZXcgT2JqZWN0KCk7CisgICAgCisgICAgcHVibGljIHN0YXRpYyBpbnRlcmZhY2UgSXRlbUZhY3RvcnkgeworICAgICAgICAKKyAgICAgICAgcHVibGljIE1JdGVtIGNyZWF0ZUl0ZW0oTWVudURhdGEgbWVudURhdGEpOworICAgICAgICBwdWJsaWMgTUl0ZW0gY3JlYXRlQ2hlY2tib3hJdGVtKE1lbnVEYXRhIG1lbnVEYXRhKTsKKyAgICAgICAgcHVibGljIHZvaWQgY3JlYXRlU2VwYXJhdG9yKCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIEl0ZW1GYWN0b3J5IGZnRmFjdG9yeTsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIE1JdGVtIGNyZWF0ZUl0ZW0oTWVudURhdGEgbWVudURhdGEpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBmZ0ZhY3RvcnkuY3JlYXRlSXRlbShtZW51RGF0YSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgTUl0ZW0gY3JlYXRlQ2hlY2tib3hJdGVtKE1lbnVEYXRhIG1lbnVEYXRhKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZmdGYWN0b3J5LmNyZWF0ZUNoZWNrYm94SXRlbShtZW51RGF0YSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBzZXRJdGVtRmFjdG9yeShJdGVtRmFjdG9yeSBmYWN0b3J5KSB7CisgICAgICAgIAorICAgICAgICBmZ0ZhY3RvcnkgPSBmYWN0b3J5OworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIEl0ZW1GYWN0b3J5IGdldEl0ZW1GYWN0b3J5KCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZnRmFjdG9yeTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvTWVudUJ1aWxkZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9NZW51QnVpbGRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRiMWU3OWEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvTWVudUJ1aWxkZXIuamF2YQpAQCAtMCwwICsxLDM2OCBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogTWVudUJ1aWxkZXIuamF2YSx2ICQgJFJldmlzaW9uOiAxLjMgJCAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNjo1MCAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbDsKKworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworCitpbXBvcnQgamF2YS5hd3QuV2luZG93OworaW1wb3J0IGphdmEudGV4dC5OdW1iZXJGb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5UZXh0QXR0cmlidXRlOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuS2V5UmVtYXA7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuRnJhbWVSZXNvdXJjZXM7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwucmVzb3VyY2VzLk1lbnVEYXRhOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwuRGlhbG9nSXRlbS5EaWFsb2dGYWN0b3J5OworCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgTWVudUJ1aWxkZXIgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFRElUID0gMDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTSVpFID0gMTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTVFlMRSA9IDI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRkxVU0ggPSAzOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEtFWU1BUCA9IDQ7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQklESSA9IDU7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQUJPVVQgPSA2OworICAgIAorICAgIHByaXZhdGUgQ29sb3JbXSBjb2xvcnMgPSB7IENvbG9yLmJsYWNrLCBDb2xvci53aGl0ZSwgQ29sb3IuZ3JlZW4sIENvbG9yLmJsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yLmN5YW4sIENvbG9yLmdyYXksIENvbG9yLmRhcmtHcmF5LCBDb2xvci5saWdodEdyYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yLm1hZ2VudGEsIENvbG9yLm9yYW5nZSwgQ29sb3IucGluaywgQ29sb3IucmVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvci55ZWxsb3csIG51bGwgfTsKKyAgICBwcml2YXRlIFN0cmluZ1tdIGNvbG9yTmFtZXMgPSB7CisgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLkJMQUNLKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuV0hJVEUpLAorICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRSZXNvdXJjZVN0cmluZyhGcmFtZVJlc291cmNlcy5HUkVFTiksCisgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLkJMVUUpLAorICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRSZXNvdXJjZVN0cmluZyhGcmFtZVJlc291cmNlcy5DWUFOKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuR1JBWSksCisgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLkRBUktfR1JBWSksCisgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLkxJR0hUX0dSQVkpLAorICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRSZXNvdXJjZVN0cmluZyhGcmFtZVJlc291cmNlcy5NQUdFTlRBKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuT1JBTkdFKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuUElOSyksCisgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLlJFRCksCisgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLllFTExPVyksCisgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLk5PTkUpCisgICAgfTsKKyAgICAKKyAgICBwcm90ZWN0ZWQgaW50W10gZGVmYXVsdE1lbnVzID0geyBFRElULCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSVpFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNUWUxFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZMVVNILCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLRVlNQVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQklESSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBQk9VVCB9OworCisgICAgcHJvdGVjdGVkIE1UZXh0UGFuZWwgZlRleHRQYW5lbDsKKyAgICBwcm90ZWN0ZWQgRnJhbWUgZkRpYWxvZ1BhcmVudDsKKworICAgIHByb3RlY3RlZCBNZW51QnVpbGRlcigpIHsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIGZpbmFsIHZvaWQgZG9DcmVhdGVNZW51cyhNVGV4dFBhbmVsIHRleHRQYW5lbCwgRnJhbWUgZnJhbWUsIGludFtdIG1lbnVzKSB7CisgICAgCisgICAgICAgIGZUZXh0UGFuZWwgPSB0ZXh0UGFuZWw7CisgICAgICAgIGZEaWFsb2dQYXJlbnQgPSBmcmFtZTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IG1lbnVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBzd2l0Y2gobWVudXNbaV0pIHsKKyAgICAgICAgICAgICAgICBjYXNlIEVESVQ6CisgICAgICAgICAgICAgICAgICAgIGNyZWF0ZUVkaXRNZW51KCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgU0laRToKKyAgICAgICAgICAgICAgICAgICAgY3JlYXRlU2l6ZU1lbnUoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBTVFlMRToKKyAgICAgICAgICAgICAgICAgICAgY3JlYXRlU3R5bGVNZW51KCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgRkxVU0g6CisgICAgICAgICAgICAgICAgICAgIGNyZWF0ZUZsdXNoTWVudSgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIEtFWU1BUDoKKyAgICAgICAgICAgICAgICAgICAgY3JlYXRlS2V5bWFwTWVudSgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIEJJREk6CisgICAgICAgICAgICAgICAgICAgIGNyZWF0ZUJpZGlNZW51KCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQUJPVVQ6CisgICAgICAgICAgICAgICAgICAgIGNyZWF0ZUFib3V0TWVudSgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIG1lbnU6ICIgKyBtZW51c1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGZUZXh0UGFuZWwgPSBudWxsOworICAgICAgICBmRGlhbG9nUGFyZW50ID0gbnVsbDsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIGFic3RyYWN0IHZvaWQgaGFuZGxlQWRkTWVudShTdHJpbmcga2V5KTsKKyAgICAKKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgRGlhbG9nRmFjdG9yeSBjcmVhdGVPYmplY3REaWFsb2dGYWN0b3J5KFN0cmluZyBkaWFsb2dUaXRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkaWFsb2dUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0IGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gY2hhcmFjdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nW10gbmFtZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3RbXSB2YWx1ZXMpOworCisgICAgcHJvdGVjdGVkIGFic3RyYWN0IERpYWxvZ0ZhY3RvcnkgY3JlYXRlTnVtYmVyRGlhbG9nRmFjdG9yeShTdHJpbmcgZGlhbG9nVGl0bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZGlhbG9nVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdCBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGNoYXJhY3Rlcik7CisKKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgRGlhbG9nRmFjdG9yeSBjcmVhdGVBYm91dERpYWxvZ0ZhY3RvcnkoKTsKKworICAgIHByaXZhdGUgdm9pZCBjcmVhdGVFZGl0TWVudSgpIHsKKyAgICAgICAgCisgICAgICAgIGhhbmRsZUFkZE1lbnUoRnJhbWVSZXNvdXJjZXMuRURJVCk7CisgICAgICAgIAorICAgICAgICBuZXcgQ29tbWFuZE1lbnVJdGVtLlVuZG9SZWRvKFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuVU5ETyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21tYW5kTWVudUl0ZW0uVW5kb1JlZG8uVU5ETykuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgICAgICBuZXcgQ29tbWFuZE1lbnVJdGVtLlVuZG9SZWRvKFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuUkVETyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21tYW5kTWVudUl0ZW0uVW5kb1JlZG8uUkVETykuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgICAgICBNSXRlbS5nZXRJdGVtRmFjdG9yeSgpLmNyZWF0ZVNlcGFyYXRvcigpOworICAgICAgICBuZXcgQ29tbWFuZE1lbnVJdGVtLkN1dENvcHlDbGVhcihSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLkNVVCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tbWFuZE1lbnVJdGVtLkN1dENvcHlDbGVhci5DVVQpLnNldFRleHRQYW5lbChmVGV4dFBhbmVsKTsKKyAgICAgICAgbmV3IENvbW1hbmRNZW51SXRlbS5DdXRDb3B5Q2xlYXIoUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5DT1BZKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21tYW5kTWVudUl0ZW0uQ3V0Q29weUNsZWFyLkNPUFkpLnNldFRleHRQYW5lbChmVGV4dFBhbmVsKTsKKyAgICAgICAgbmV3IENvbW1hbmRNZW51SXRlbS5QYXN0ZShSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLlBBU1RFKSkuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgICAgICBuZXcgQ29tbWFuZE1lbnVJdGVtLkN1dENvcHlDbGVhcihSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLkNMRUFSKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21tYW5kTWVudUl0ZW0uQ3V0Q29weUNsZWFyLkNMRUFSKS5zZXRUZXh0UGFuZWwoZlRleHRQYW5lbCk7CisgICAgICAgIE1JdGVtLmdldEl0ZW1GYWN0b3J5KCkuY3JlYXRlU2VwYXJhdG9yKCk7CisgICAgICAgIG5ldyBDb21tYW5kTWVudUl0ZW0uU2VsZWN0QWxsKFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuU0VMRUNUX0FMTCkpLnNldFRleHRQYW5lbChmVGV4dFBhbmVsKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgZmxvYXRbXSBERUZBVUxUX1NJWkVTID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHs5LCAxMCwgMTIsIDE0LCAxOCwgMjQsIDM2LCA0OCwgNzJ9OworCisgICAgcHJpdmF0ZSB2b2lkIGNyZWF0ZVNpemVNZW51KCkgeworICAgICAgICAKKyAgICAgICAgY3JlYXRlU2l6ZU1lbnUoREVGQVVMVF9TSVpFUyk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBjcmVhdGVTaXplTWVudShmbG9hdFtdIHNpemVzKSB7CisgICAgICAgICAgICAgICAgCisgICAgICAgIGhhbmRsZUFkZE1lbnUoRnJhbWVSZXNvdXJjZXMuU0laRSk7CisKKyAgICAgICAgaWYgKHNpemVzICE9IERFRkFVTFRfU0laRVMpIHsKKworICAgICAgICAgICAgc2l6ZXMgPSAoZmxvYXRbXSkgc2l6ZXMuY2xvbmUoKTsKKyAgICAgICAgICAgIGlmIChzaXplcy5sZW5ndGggPT0gMCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oInNpemVzIGFycmF5IGhhcyB6ZXJvIGxlbmd0aCIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmbG9hdCBsYXN0VmFsdWUgPSBzaXplc1swXTsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MTsgaSA8IHNpemVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKHNpemVzW2ldID49IGxhc3RWYWx1ZSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNpemVzIGFycmF5IG11c3QgYmUgaW5jcmVhc2luZyIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsYXN0VmFsdWUgPSBzaXplc1tpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgRmxvYXRbXSB2YWx1ZXMgPSBuZXcgRmxvYXRbc2l6ZXMubGVuZ3RoXTsKKyAgICAgICAgTWVudURhdGFbXSBtRGF0YSA9IG5ldyBNZW51RGF0YVtzaXplcy5sZW5ndGhdOworICAgICAgICBOdW1iZXJGb3JtYXQgZm10ID0gTnVtYmVyRm9ybWF0LmdldE51bWJlckluc3RhbmNlKCk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBzaXplcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdmFsdWVzW2ldID0gbmV3IEZsb2F0KHNpemVzW2ldKTsKKyAgICAgICAgICAgIG1EYXRhW2ldID0gbmV3IE1lbnVEYXRhKGZtdC5mb3JtYXQoc2l6ZXNbaV0pKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbmV3IFN0eWxlTWVudUl0ZW1TZXQoVGV4dEF0dHJpYnV0ZS5TSVpFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1EYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZW51SXRlbVNldC5DSEFSQUNURVIpLnNldFRleHRQYW5lbChmVGV4dFBhbmVsKTsKKyAgICAgICAgICAgIAorICAgICAgICBpZiAoZkRpYWxvZ1BhcmVudCAhPSBudWxsKSB7CisgICAgICAgICAgICBTdHJpbmcgZGlhbG9nVGl0bGUgPSBSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLlNFVF9TSVpFX1RJVExFKTsKKyAgICAgICAgICAgIFN0cmluZyBkaWFsb2dUZXh0ID0gUmVzb3VyY2VVdGlscy5nZXRSZXNvdXJjZVN0cmluZyhGcmFtZVJlc291cmNlcy5TRVRfU0laRV9MQUJFTCk7CisgICAgICAgICAgICBEaWFsb2dGYWN0b3J5IGZhY3RvcnkgPSBjcmVhdGVOdW1iZXJEaWFsb2dGYWN0b3J5KGRpYWxvZ1RpdGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWFsb2dUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLlNJWkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lbnVJdGVtU2V0LkNIQVJBQ1RFUik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgbmV3IERpYWxvZ0l0ZW0oUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5PVEhFUl9ESUFMT0cpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWN0b3J5KS5zZXRUZXh0UGFuZWwoZlRleHRQYW5lbCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGNyZWF0ZVN0eWxlTWVudSgpIHsKKyAgICAgICAgCisgICAgICAgIGhhbmRsZUFkZE1lbnUoRnJhbWVSZXNvdXJjZXMuU1RZTEUpOworCisgICAgICAgIE9iamVjdFtdIGtleXMgPSAgICB7IFRleHRBdHRyaWJ1dGUuV0VJR0hULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuUE9TVFVSRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLlVOREVSTElORSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLlNUUklLRVRIUk9VR0ggfTsKKyAgICAgICAgT2JqZWN0W10gdmFsdWVzID0gIHsgVGV4dEF0dHJpYnV0ZS5XRUlHSFRfQk9MRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLlBPU1RVUkVfT0JMSVFVRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLlVOREVSTElORV9PTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLlNUUklLRVRIUk9VR0hfT04gfTsKKyAgICAgICAgTWVudURhdGFbXSBtRGF0YSA9IHsgUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5CT0xEKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLklUQUxJQyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5VTkRFUkxJTkUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuU1RSSUtFVEhST1VHSCkgfTsKKworICAgICAgICBuZXcgU3VidHJhY3RTdHlsZU1lbnVJdGVtKGtleXMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5QTEFJTiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZW51SXRlbVNldC5DSEFSQUNURVIpLnNldFRleHRQYW5lbChmVGV4dFBhbmVsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgbmV3IEJvb2xlYW5TdHlsZU1lbnVJdGVtKGtleXNbaV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzW2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1EYXRhW2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lbnVJdGVtU2V0LkNIQVJBQ1RFUikuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgaWYgKGZEaWFsb2dQYXJlbnQgIT0gbnVsbCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBNSXRlbS5nZXRJdGVtRmFjdG9yeSgpLmNyZWF0ZVNlcGFyYXRvcigpOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmdbXSBmb250cyA9IEZvbnRMaXN0LmdldEZvbnRMaXN0KCk7CisgICAgICAgICAgICBTdHJpbmcgdGl0bGUgPSBSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLlNFVF9GT05UX1RJVExFKTsKKyAgICAgICAgICAgIFN0cmluZyBsYWJlbCA9IFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuU0VUX0ZPTlRfTEFCRUwpOworICAgICAgICAgICAgCisgICAgICAgICAgICBEaWFsb2dGYWN0b3J5IGZvbnRGID0gY3JlYXRlT2JqZWN0RGlhbG9nRmFjdG9yeSh0aXRsZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuRkFNSUxZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3R5bGVNZW51SXRlbVNldC5DSEFSQUNURVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRzKTsKKyAgICAgICAgICAgIG5ldyBEaWFsb2dJdGVtKFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuRk9OVF9ESUFMT0cpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udEYpLnNldFRleHRQYW5lbChmVGV4dFBhbmVsKTsKKworICAgICAgICAgICAgRGlhbG9nRmFjdG9yeSBmb3JlZ3JvdW5kRiA9IGNyZWF0ZUNvbG9yRGlhbG9nRmFjdG9yeSh0cnVlKTsKKyAgICAgICAgICAgIERpYWxvZ0ZhY3RvcnkgYmFja2dyb3VuZEYgPSBjcmVhdGVDb2xvckRpYWxvZ0ZhY3RvcnkoZmFsc2UpOworICAgICAgICAgICAgCisgICAgICAgICAgICBuZXcgRGlhbG9nSXRlbShSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLkZPUkVDT0xPUl9ESUFMT0cpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWdyb3VuZEYpLnNldFRleHRQYW5lbChmVGV4dFBhbmVsKTsKKyAgICAgICAgICAgIG5ldyBEaWFsb2dJdGVtKFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuQkFDS0NPTE9SX0RJQUxPRyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kRikuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgICAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgRGlhbG9nRmFjdG9yeSBjcmVhdGVDb2xvckRpYWxvZ0ZhY3RvcnkoYm9vbGVhbiBmb3JlZ3JvdW5kKSB7CisgICAgICAgIAorICAgICAgICBTdHJpbmcgdGl0bGU7CisgICAgICAgIFN0cmluZyBtZXNzYWdlOworICAgICAgICBPYmplY3Qga2V5OworICAgICAgICAKKyAgICAgICAgaWYgKGZvcmVncm91bmQpIHsKKyAgICAgICAgICAgIHRpdGxlID0gUmVzb3VyY2VVdGlscy5nZXRSZXNvdXJjZVN0cmluZyhGcmFtZVJlc291cmNlcy5TRVRfRk9SRUdST1VORF9USVRMRSk7CisgICAgICAgICAgICBtZXNzYWdlID0gUmVzb3VyY2VVdGlscy5nZXRSZXNvdXJjZVN0cmluZyhGcmFtZVJlc291cmNlcy5TRVRfRk9SRUdST1VORF9MQUJFTCk7CisgICAgICAgICAgICBrZXkgPSBUZXh0QXR0cmlidXRlLkZPUkVHUk9VTkQ7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0aXRsZSA9IFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuU0VUX0JBQ0tHUk9VTkRfVElUTEUpOworICAgICAgICAgICAgbWVzc2FnZSA9IFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuU0VUX0JBQ0tHUk9VTkRfTEFCRUwpOworICAgICAgICAgICAga2V5ID0gVGV4dEF0dHJpYnV0ZS5CQUNLR1JPVU5EOworICAgICAgICB9CisgICAgICAgIHJldHVybiBjcmVhdGVPYmplY3REaWFsb2dGYWN0b3J5KHRpdGxlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHlsZU1lbnVJdGVtU2V0LkNIQVJBQ1RFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3JOYW1lcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3JzKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGNyZWF0ZUZvbnRNZW51KCkgeworICAgICAgICAKKyAgICAgICAgaGFuZGxlQWRkTWVudShGcmFtZVJlc291cmNlcy5GT05UKTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZ1tdIGZvbnRzID0gRm9udExpc3QuZ2V0Rm9udExpc3QoKTsKKyAgICAgICAgTWVudURhdGFbXSBtRGF0YSA9IG5ldyBNZW51RGF0YVtmb250cy5sZW5ndGhdOworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBtRGF0YS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgbURhdGFbaV0gPSBuZXcgTWVudURhdGEoZm9udHNbaV0pOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBuZXcgU3R5bGVNZW51SXRlbVNldChUZXh0QXR0cmlidXRlLkZBTUlMWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1EYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHlsZU1lbnVJdGVtU2V0LkNIQVJBQ1RFUikuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgY3JlYXRlRmx1c2hNZW51KCkgeworICAgICAgICAKKyAgICAgICAgaGFuZGxlQWRkTWVudShGcmFtZVJlc291cmNlcy5GTFVTSCk7CisgICAgICAgIAorICAgICAgICBPYmplY3RbXSB2YWx1ZXMgPSB7ICBUZXh0QXR0cmlidXRlLkZMVVNIX0xFQURJTkcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuRkxVU0hfQ0VOVEVSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLkZMVVNIX1RSQUlMSU5HLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLkZVTExZX0pVU1RJRklFRCB9OworICAgICAgICBNZW51RGF0YVtdIG1EYXRhID0geyBSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLkxFQURJTkcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLkNFTlRFUiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuVFJBSUxJTkcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLkpVU1RJRklFRCkgfTsKKyAgICAgICAgCisgICAgICAgIG5ldyBTdHlsZU1lbnVJdGVtU2V0KFRleHRBdHRyaWJ1dGUuTElORV9GTFVTSCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtRGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVudUl0ZW1TZXQuUEFSQUdSQVBIKS5zZXRUZXh0UGFuZWwoZlRleHRQYW5lbCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBjcmVhdGVLZXltYXBNZW51KCkgeworICAgICAgICAKKyAgICAgICAgaGFuZGxlQWRkTWVudShGcmFtZVJlc291cmNlcy5LRVlNQVApOworICAgICAgICAKKyAgICAgICAgS2V5UmVtYXBbXSB2YWx1ZXMgPSB7IEtleVJlbWFwLmdldElkZW50aXR5UmVtYXAoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5UmVtYXAuZ2V0QXJhYmljVHJhbnNsaXRlcmF0aW9uKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtleVJlbWFwLmdldEhlYnJld1RyYW5zbGl0ZXJhdGlvbigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLZXlSZW1hcC5nZXRJc3JhZWxOaWt1ZCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLZXlSZW1hcC5nZXRUaGFpS2V0bWFuZWUoKSB9OworICAgICAgICBNZW51RGF0YVtdIG1EYXRhID0geyBSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLkRFRkFVTFQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLkFSQUJJQyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuSEVCUkVXKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5JU1JBRUxfTklLVUQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLlRIQUlfS0VUTUFORUUpIH07CisgICAgICAgIAorICAgICAgICBuZXcgS2V5bWFwTWVudUl0ZW1TZXQodmFsdWVzLCBtRGF0YSkuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgY3JlYXRlQmlkaU1lbnUoKSB7CisgICAgICAgIAorICAgICAgICBoYW5kbGVBZGRNZW51KEZyYW1lUmVzb3VyY2VzLkJJREkpOworICAgICAgICAKKyAgICAgICAgT2JqZWN0W10gdmFsdWVzID0geyAgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5SVU5fRElSRUNUSU9OX0xUUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5SVU5fRElSRUNUSU9OX1JUTCB9OworICAgICAgICBNZW51RGF0YVtdIG1EYXRhID0geyBSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLkRFRkFVTFRfRElSRUNUSU9OKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5MVFJfRElSRUNUSU9OKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5SVExfRElSRUNUSU9OKSwgfTsKKworICAgICAgICBuZXcgU3R5bGVNZW51SXRlbVNldChUZXh0QXR0cmlidXRlLlJVTl9ESVJFQ1RJT04sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbURhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lbnVJdGVtU2V0LlBBUkFHUkFQSCkuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgY3JlYXRlQWJvdXRNZW51KCkgeworICAgICAgICAKKyAgICAgICAgaGFuZGxlQWRkTWVudShGcmFtZVJlc291cmNlcy5BQk9VVF9NRU5VKTsKKyAgICAgICAgCisgICAgICAgIG5ldyBEaWFsb2dJdGVtKFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuQUJPVVRfSVRFTSksIAorICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVBYm91dERpYWxvZ0ZhY3RvcnkoKSkuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9NZW51SXRlbVNldC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL01lbnVJdGVtU2V0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGNkOTZkNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9NZW51SXRlbVNldC5qYXZhCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBAKCMpJFJDU2ZpbGU6IE1lbnVJdGVtU2V0LmphdmEsdiAkICRSZXZpc2lvbjogMS4xICQgJERhdGU6IDIwMDAvMDQvMjAgMTc6NTI6MzIgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC51aWltcGw7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5NVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbEV2ZW50OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbExpc3RlbmVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLnJlc291cmNlcy5NZW51RGF0YTsKKworcHVibGljIGFic3RyYWN0IGNsYXNzIE1lbnVJdGVtU2V0IGltcGxlbWVudHMgVGV4dFBhbmVsTGlzdGVuZXIgeworICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBib29sZWFuIENIQVJBQ1RFUiA9IHRydWU7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBib29sZWFuIFBBUkFHUkFQSCA9IGZhbHNlOworCisgICAgcHJpdmF0ZSBNVGV4dFBhbmVsIGZUZXh0UGFuZWwgPSBudWxsOworICAgIAorICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHRleHRFdmVudE9jY3VycmVkKFRleHRQYW5lbEV2ZW50IGV2ZW50KTsKKyAgICBwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbiByZXNwb25kc1RvRXZlbnRUeXBlKGludCB0eXBlKTsKKyAgICAKKyAgICBwdWJsaWMgZmluYWwgdm9pZCBzZXRUZXh0UGFuZWwoTVRleHRQYW5lbCB0ZXh0UGFuZWwpIHsKKyAgICAgICAgCisgICAgICAgIGlmIChmVGV4dFBhbmVsICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwucmVtb3ZlTGlzdGVuZXIodGhpcyk7CisgICAgICAgIH0KKyAgICAgICAgZlRleHRQYW5lbCA9IHRleHRQYW5lbDsKKyAgICAgICAgaWYgKGZUZXh0UGFuZWwgIT0gbnVsbCkgeworICAgICAgICAgICAgZlRleHRQYW5lbC5hZGRMaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdGV4dFBhbmVsQ2hhbmdlZCgpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgZmluYWwgTVRleHRQYW5lbCBnZXRUZXh0UGFuZWwoKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZlRleHRQYW5lbDsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgdGV4dFBhbmVsQ2hhbmdlZCgpIHsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvUmVzb3VyY2VVdGlscy5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL1Jlc291cmNlVXRpbHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42MTU3ZWJmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL1Jlc291cmNlVXRpbHMuamF2YQpAQCAtMCwwICsxLDQ4IEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBSZXNvdXJjZVV0aWxzLmphdmEsdiAkICRSZXZpc2lvbjogMS4xICQgJERhdGU6IDIwMDAvMDQvMjAgMTc6NTI6MzIgJAorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC51aWltcGw7CisKK2ltcG9ydCBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLnJlc291cmNlcy5GcmFtZVJlc291cmNlczsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuTWVudURhdGE7CisKK3B1YmxpYyBjbGFzcyBSZXNvdXJjZVV0aWxzIHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgc3RhdGljIFJlc291cmNlQnVuZGxlIEJVTkRMRTsKKyAgICBzdGF0aWMgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgQlVORExFID0gUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlKCJjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuRnJhbWVSZXNvdXJjZXMiKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb3VsZG4ndCBsb2FkIHJlc291cmNlWFhYLiAgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV4Y2VwdGlvbjogIiArIGUpOworICAgICAgICAgICAgQlVORExFID0gbmV3IEZyYW1lUmVzb3VyY2VzKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIE1lbnVEYXRhIGdldE1lbnVEYXRhKFN0cmluZyBrZXkpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiAoTWVudURhdGEpIEJVTkRMRS5nZXRPYmplY3Qoa2V5KTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0UmVzb3VyY2VTdHJpbmcoU3RyaW5nIGtleSkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIEJVTkRMRS5nZXRTdHJpbmcoa2V5KTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL1NpbmdsZUNoZWNrTWVudUl0ZW0uamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9TaW5nbGVDaGVja01lbnVJdGVtLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmU1YWM4NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9TaW5nbGVDaGVja01lbnVJdGVtLmphdmEKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogU2luZ2xlQ2hlY2tNZW51SXRlbS5qYXZhLHYgJCAkUmV2aXNpb246IDEuMSAkICREYXRlOiAyMDAwLzA0LzIwIDE3OjUyOjMyICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudWlpbXBsOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxFdmVudDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuTWVudURhdGE7CisKK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBTaW5nbGVDaGVja01lbnVJdGVtIGV4dGVuZHMgTWVudUl0ZW1TZXQgeworICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJvdGVjdGVkIE1JdGVtIGZJdGVtOworICAgIAorICAgIFNpbmdsZUNoZWNrTWVudUl0ZW0oTWVudURhdGEgbWVudURhdGEpIHsKKyAgICAgICAgCisgICAgICAgIGZJdGVtID0gTUl0ZW0uY3JlYXRlQ2hlY2tib3hJdGVtKG1lbnVEYXRhKTsKKyAgICB9CisgICAgCisgICAgYWJzdHJhY3Qgdm9pZCBzZXRDaGVja2VkKCk7CisgICAgCisgICAgcHJvdGVjdGVkIGZpbmFsIHZvaWQgdGV4dFBhbmVsQ2hhbmdlZCgpIHsKKyAgICAgICAgCisgICAgICAgIE1UZXh0UGFuZWwgdGV4dFBhbmVsID0gZ2V0VGV4dFBhbmVsKCk7CisgICAgICAgIGlmICh0ZXh0UGFuZWwgPT0gbnVsbCkgeworICAgICAgICAgICAgZkl0ZW0uc2V0RW5hYmxlZChmYWxzZSk7CisgICAgICAgICAgICBmSXRlbS5zZXRTdGF0ZShmYWxzZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmSXRlbS5zZXRFbmFibGVkKHRydWUpOworICAgICAgICAgICAgc2V0Q2hlY2tlZCgpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL1N0eWxlTWVudUl0ZW1TZXQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9TdHlsZU1lbnVJdGVtU2V0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWM1NWJmZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9TdHlsZU1lbnVJdGVtU2V0LmphdmEKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIEAoIykkUkNTZmlsZTogU3R5bGVNZW51SXRlbVNldC5qYXZhLHYgJCAkUmV2aXNpb246IDEuMiAkICREYXRlOiAyMDAyLzAyLzE2IDAzOjA2OjUwICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudWlpbXBsOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlU2V0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZU1vZGlmaWVyOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxFdmVudDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuTWVudURhdGE7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBTdHlsZU1lbnVJdGVtU2V0IGV4dGVuZHMgQ2hvaWNlTWVudUl0ZW1TZXQgeworICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICBwcml2YXRlIE9iamVjdCBmS2V5OworICAgIHByaXZhdGUgYm9vbGVhbiBmQ2hhcmFjdGVyOworCisgICAgcHVibGljIFN0eWxlTWVudUl0ZW1TZXQoT2JqZWN0IHN0eWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdFtdIHZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZW51RGF0YVtdIG1lbnVEYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gY2hhcmFjdGVyKSB7CisgICAgICAgIAorICAgICAgICBzdXBlcih2YWx1ZXMsIG1lbnVEYXRhKTsKKyAgICAgICAgZktleSA9IHN0eWxlOworICAgICAgICBmQ2hhcmFjdGVyID0gY2hhcmFjdGVyOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVWYWx1ZVNlbGVjdGVkKE9iamVjdCB2YWx1ZSkgeworICAgICAgICAKKyAgICAgICAgTVRleHRQYW5lbCB0ZXh0UGFuZWwgPSBnZXRUZXh0UGFuZWwoKTsKKyAgICAgICAgaWYgKHRleHRQYW5lbCA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk1lbnUgaXRlbSBpcyBlbmFibGVkIHdoZW4gcGFuZWwgaXMgbnVsbCEiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgU3R5bGVNb2RpZmllciBtb2RpZmllcjsKKyAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHsKKyAgICAgICAgICAgIEF0dHJpYnV0ZVNldCBzZXQgPSBuZXcgQXR0cmlidXRlU2V0KGZLZXkpOworICAgICAgICAgICAgbW9kaWZpZXIgPSBTdHlsZU1vZGlmaWVyLmNyZWF0ZVJlbW92ZU1vZGlmaWVyKHNldCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtb2RpZmllciA9IFN0eWxlTW9kaWZpZXIuY3JlYXRlQWRkTW9kaWZpZXIoZktleSwgdmFsdWUpOworICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBpZiAoZkNoYXJhY3RlciA9PSBDSEFSQUNURVIpIHsKKyAgICAgICAgICAgIHRleHRQYW5lbC5tb2RpZnlDaGFyYWN0ZXJTdHlsZU9uU2VsZWN0aW9uKG1vZGlmaWVyKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRleHRQYW5lbC5tb2RpZnlQYXJhZ3JhcGhTdHlsZU9uU2VsZWN0aW9uKG1vZGlmaWVyKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgT2JqZWN0IGdldEN1cnJlbnRWYWx1ZSgpIHsKKyAgICAgICAgCisgICAgICAgIE1UZXh0UGFuZWwgdGV4dFBhbmVsID0gZ2V0VGV4dFBhbmVsKCk7CisgICAgICAgIGlmICh0ZXh0UGFuZWwgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTaG91bGRuJ3QgY2FsbCB0aGlzIHdpdGhvdXQgYSB0ZXh0IHBhbmVsISIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoZkNoYXJhY3RlciA9PSBDSEFSQUNURVIpIHsKKyAgICAgICAgICAgIHJldHVybiB0ZXh0UGFuZWwuZ2V0Q2hhcmFjdGVyU3R5bGVPdmVyU2VsZWN0aW9uKGZLZXkpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIHRleHRQYW5lbC5nZXRQYXJhZ3JhcGhTdHlsZU92ZXJTZWxlY3Rpb24oZktleSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXh0RXZlbnRPY2N1cnJlZChUZXh0UGFuZWxFdmVudCBldmVudCkgeworICAgICAgICAKKyAgICAgICAgc2V0Q2hlY2tlZCgpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgYm9vbGVhbiByZXNwb25kc1RvRXZlbnRUeXBlKGludCB0eXBlKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gdHlwZSA9PSBUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fU1RZTEVTX0NIQU5HRUQ7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9TdWJ0cmFjdFN0eWxlTWVudUl0ZW0uamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9TdWJ0cmFjdFN0eWxlTWVudUl0ZW0uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44YjBmNTVkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL1N1YnRyYWN0U3R5bGVNZW51SXRlbS5qYXZhCkBAIC0wLDAgKzEsMTA0IEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBTdWJ0cmFjdFN0eWxlTWVudUl0ZW0uamF2YSx2ICQgJFJldmlzaW9uOiAxLjIgJCAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNjo1MCAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbDsKKworaW1wb3J0IGphdmEudXRpbC5FdmVudE9iamVjdDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVTZXQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlTW9kaWZpZXI7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5NVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbEV2ZW50OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLnJlc291cmNlcy5NZW51RGF0YTsKKworcHVibGljIGZpbmFsIGNsYXNzIFN1YnRyYWN0U3R5bGVNZW51SXRlbSBleHRlbmRzIFNpbmdsZUNoZWNrTWVudUl0ZW0geworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIGZpbmFsIE9iamVjdFtdIGZLZXlzOworICAgIAorICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBmQ2hhcmFjdGVyOworICAgIAorICAgIHB1YmxpYyBTdWJ0cmFjdFN0eWxlTWVudUl0ZW0oT2JqZWN0W10ga2V5cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lbnVEYXRhIG1lbnVEYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBjaGFyYWN0ZXIpIHsKKyAgICAgICAgCisgICAgICAgIHN1cGVyKG1lbnVEYXRhKTsKKyAgICAgICAgCisgICAgICAgIGZLZXlzID0gKE9iamVjdFtdKSBrZXlzLmNsb25lKCk7CisgICAgICAgIGZDaGFyYWN0ZXIgPSBjaGFyYWN0ZXI7CisgICAgICAgIAorICAgICAgICBBdHRyaWJ1dGVTZXQga2V5U2V0ID0gbmV3IEF0dHJpYnV0ZVNldChrZXlzKTsKKyAgICAgICAgZmluYWwgU3R5bGVNb2RpZmllciBtb2RpZmllciA9IFN0eWxlTW9kaWZpZXIuY3JlYXRlUmVtb3ZlTW9kaWZpZXIoa2V5U2V0KTsKKyAgICAgICAgCisgICAgICAgIGZJdGVtLmFkZExpc3RlbmVyKG5ldyBFdmVudExpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgZXZlbnRPY2N1cnJlZChFdmVudE9iamVjdCBldmVudCkgeworICAgICAgICAgICAgICAgIE1UZXh0UGFuZWwgcGFuZWwgPSBnZXRUZXh0UGFuZWwoKTsKKyAgICAgICAgICAgICAgICBpZiAocGFuZWwgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk1lbnUgaXRlbSBpcyBlbmFibGVkIHdoZW4gcGFuZWwgaXMgbnVsbCEiKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoZkNoYXJhY3RlciA9PSBDSEFSQUNURVIpIHsKKyAgICAgICAgICAgICAgICAgICAgcGFuZWwubW9kaWZ5Q2hhcmFjdGVyU3R5bGVPblNlbGVjdGlvbihtb2RpZmllcik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBwYW5lbC5tb2RpZnlQYXJhZ3JhcGhTdHlsZU9uU2VsZWN0aW9uKG1vZGlmaWVyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIG9iamVjdHNBcmVFcXVhbChPYmplY3QgbGhzLCBPYmplY3QgcmhzKSB7CisgICAgCisgICAgICAgIGlmIChsaHMgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIHJocyA9PSBudWxsOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGxocy5lcXVhbHMocmhzKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByb3RlY3RlZCB2b2lkIHNldENoZWNrZWQoKSB7CisKKyAgICAgICAgTVRleHRQYW5lbCBwYW5lbCA9IGdldFRleHRQYW5lbCgpOworICAgICAgICBBdHRyaWJ1dGVNYXAgZGVmYXVsdHMgPSBwYW5lbC5nZXREZWZhdWx0VmFsdWVzKCk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBmS2V5cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgT2JqZWN0IGRlZmF1bHRWID0gZGVmYXVsdHMuZ2V0KGZLZXlzW2ldKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgT2JqZWN0IHZhbHVlID0gKGZDaGFyYWN0ZXIgPT0gQ0hBUkFDVEVSKT8gCisgICAgICAgICAgICAgICAgICAgIHBhbmVsLmdldENoYXJhY3RlclN0eWxlT3ZlclNlbGVjdGlvbihmS2V5c1tpXSkgOgorICAgICAgICAgICAgICAgICAgICBwYW5lbC5nZXRQYXJhZ3JhcGhTdHlsZU92ZXJTZWxlY3Rpb24oZktleXNbaV0pOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICghb2JqZWN0c0FyZUVxdWFsKGRlZmF1bHRWLCB2YWx1ZSkpIHsKKyAgICAgICAgICAgICAgICBmSXRlbS5zZXRTdGF0ZShmYWxzZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZkl0ZW0uc2V0U3RhdGUodHJ1ZSk7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gcmVzcG9uZHNUb0V2ZW50VHlwZShpbnQgdHlwZSkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHR5cGUgPT0gVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX1NUWUxFU19DSEFOR0VEOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXh0RXZlbnRPY2N1cnJlZChUZXh0UGFuZWxFdmVudCBldmVudCkgeworICAgICAgICAKKyAgICAgICAgc2V0Q2hlY2tlZCgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9UYWJSdWxlckltcGwuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9UYWJSdWxlckltcGwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xNzI5MzI3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL1RhYlJ1bGVySW1wbC5qYXZhCkBAIC0wLDAgKzEsOTA5IEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBUYWJSdWxlckltcGwuamF2YSx2ICQgJFJldmlzaW9uOiAxLjMgJCAkRGF0ZTogMjAwMi8wMi8xNiAwMzowNjo1MCAkCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbDsKKworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworaW1wb3J0IGphdmEuYXd0LkNvbXBvbmVudDsKK2ltcG9ydCBqYXZhLmF3dC5EaW1lbnNpb247CitpbXBvcnQgamF2YS5hd3QuRm9udE1ldHJpY3M7CitpbXBvcnQgamF2YS5hd3QuRnJhbWU7CitpbXBvcnQgamF2YS5hd3QuR3JhcGhpY3M7CitpbXBvcnQgamF2YS5hd3QuSW1hZ2U7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dBZGFwdGVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lk1vdXNlTW90aW9uTGlzdGVuZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuTW91c2VMaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5Nb3VzZUV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LklucHV0RXZlbnQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuVGV4dEF0dHJpYnV0ZTsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NVGFiUnVsZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0YW5kYXJkVGFiUnVsZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlRhYlN0b3A7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlTW9kaWZpZXI7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxMaXN0ZW5lcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5NVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxFdmVudDsKKworLyoqCisgKiBUYWJSdWxlciBpcyBhIENvbXBvbmVudCB3aGljaCBwcmVzZW50cyBhIHVzZXIgaW50ZXJmYWNlIGZvcgorICogc2V0dGluZyB0aGUgbGVhZGluZyBtYXJnaW4sIHRyYWlsaW5nIG1hcmdpbiwgZmlyc3QgbGluZSBpbmRlbnQsCisgKiBhbmQgdGFiIHR5cGVzIGFuZCBwb3NpdGlvbnMuCisgKiA8cD4KKyAqIFRhYlJ1bGVyIGRvZXMgbm90IGltcGxlbWVudCBUZXh0UGFuZWxMaXN0ZW5lciBkaXJlY3RseTsgIGhvd2V2ZXIsCisgKiBpdCBjYW4gcmVjZWl2ZSB1cGRhdGVzIGZyb20gYSBNVGV4dFBhbmVsLiAgVG8gaGF2ZSBhIFRhYlJ1bGVyIGxpc3RlbgorICogdG8gYSBwYW5lbCwgY2FsbCA8Y29kZT5saXN0ZW5Ub1BhbmVsPC9jb2RlPi4gIFRhYlJ1bGVyIHJlc3BvbmRzIHRvCisgKiB1c2VyIG1hbmlwdWxhdGlvbiBieSBtb2RpZnlpbmcgdGhlIHBhcmFncmFwaCBzdHlsZXMgb24gaXRzIE1UZXh0UGFuZWwKKyAqIChpZiBhbnkpLgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgVGFiUnVsZXJJbXBsIGltcGxlbWVudHMgTW91c2VMaXN0ZW5lciwgTW91c2VNb3Rpb25MaXN0ZW5lcgoreworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgVGFiU3RvcEJ1ZmZlciB7CisgICAgICAgIHB1YmxpYyBpbnQgZlBvc2l0aW9uOworICAgICAgICBwdWJsaWMgYnl0ZSBmVHlwZTsKKworICAgICAgICBUYWJTdG9wQnVmZmVyKGludCBwb3NpdGlvbiwgYnl0ZSB0eXBlKSB7CisgICAgICAgICAgICBmUG9zaXRpb24gPSBwb3NpdGlvbjsKKyAgICAgICAgICAgIGZUeXBlID0gdHlwZTsKKyAgICAgICAgfQorCisgICAgICAgIFRhYlN0b3BCdWZmZXIoVGFiU3RvcCB0YWIpIHsKKyAgICAgICAgICAgIHRoaXModGFiLmdldFBvc2l0aW9uKCksIHRhYi5nZXRUeXBlKCkpOworICAgICAgICB9CisKKyAgICAgICAgVGFiU3RvcCBnZXRUYWJTdG9wKCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBUYWJTdG9wKGZQb3NpdGlvbiwgZlR5cGUpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgVGFiUnVsZXJNb2RpZmllciBleHRlbmRzIFN0eWxlTW9kaWZpZXIgeworCisgICAgICAgIHByaXZhdGUgVGFiU3RvcCBmT2xkVGFiOyAvLyB0YWIgdG8gcmVtb3ZlCisgICAgICAgIHByaXZhdGUgVGFiU3RvcCBmTmV3VGFiOyAvLyB0YWIgdG8gYWRkCisgICAgICAgIHByaXZhdGUgQXR0cmlidXRlTWFwIGZQYW5lbERlZmF1bHRzOworICAgICAgICAKKyAgICAgICAgVGFiUnVsZXJNb2RpZmllcihUYWJTdG9wIG9sZFRhYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBUYWJTdG9wIG5ld1RhYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgcGFuZWxEZWZhdWx0cykgeworICAgICAgICAgICAgZk9sZFRhYiA9IG9sZFRhYjsKKyAgICAgICAgICAgIGZOZXdUYWIgPSBuZXdUYWI7CisgICAgICAgICAgICBmUGFuZWxEZWZhdWx0cyA9IHBhbmVsRGVmYXVsdHM7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgQXR0cmlidXRlTWFwIG1vZGlmeVN0eWxlKEF0dHJpYnV0ZU1hcCBvbGRTdHlsZSkgeworCisgICAgICAgICAgICBNVGFiUnVsZXIgb2xkUnVsZXIgPSAoTVRhYlJ1bGVyKSBnZXRXaXRoRGVmYXVsdChUZXh0QXR0cmlidXRlLlRBQl9SVUxFUiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRTdHlsZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmUGFuZWxEZWZhdWx0cyk7CisgICAgICAgICAgICBNVGFiUnVsZXIgcnVsZXIgPSBvbGRSdWxlcjsKKworICAgICAgICAgICAgaWYgKGZPbGRUYWIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGlmIChydWxlci5jb250YWluc1RhYihmT2xkVGFiKSkgeworICAgICAgICAgICAgICAgICAgICBydWxlciA9IHJ1bGVyLnJlbW92ZVRhYihmT2xkVGFiLmdldFBvc2l0aW9uKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChmTmV3VGFiICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBydWxlciA9IHJ1bGVyLmFkZFRhYihmTmV3VGFiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHJ1bGVyICE9IG9sZFJ1bGVyKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG9sZFN0eWxlLmFkZEF0dHJpYnV0ZShUZXh0QXR0cmlidXRlLlRBQl9SVUxFUiwgcnVsZXIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG9sZFN0eWxlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgSW1hZ2VDYWNoZSB7CisKKyAgICAgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgICAgIHByaXZhdGUgSW1hZ2UgZkltYWdlID0gbnVsbDsKKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIGZJc1ZhbGlkID0gZmFsc2U7CisgICAgICAgIHByaXZhdGUgQ29tcG9uZW50IGZDb21wb25lbnQ7ICAgLy8gd29ya2Fyb3VuZCBmb3IgY29tcGlsZXIgYnVnLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzaG91bGQganVzdCBiZSBhYmxlIHRvIHNheSBDb21wb25lbnQudGhpcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoaXMgd2VyZSBub3QgYSBzdGF0aWMgY2xhc3MKKyAgICAgICAgCisgICAgICAgIEltYWdlQ2FjaGUoQ29tcG9uZW50IGNvbXBvbmVudCkgeworICAgICAgICAKKyAgICAgICAgICAgIGZDb21wb25lbnQgPSBjb21wb25lbnQ7CisgICAgICAgIH0KKworICAgICAgICBHcmFwaGljcyBnZXRHcmFwaGljcyhpbnQgd2lkdGgsIGludCBoZWlnaHQpIHsKKworICAgICAgICAgICAgaWYgKHdpZHRoIDw9IDAgfHwgaGVpZ2h0IDw9IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgSW1hZ2UgaW1hZ2UgPSBmSW1hZ2U7CisgICAgICAgICAgICBpZiAoaW1hZ2UgPT0gbnVsbCB8fCBpbWFnZS5nZXRXaWR0aChmQ29tcG9uZW50KSA8IHdpZHRoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBpbWFnZS5nZXRIZWlnaHQoZkNvbXBvbmVudCkgPCBoZWlnaHQpIHsKKwkJaWYgKCFmQ29tcG9uZW50LmlzVmlzaWJsZSgpKSB7IC8vIGZpeCByYWNlIGNvbmRpdGlvbiBpZiBjb21wb25lbnQgbm90IGZ1bGx5IGluaXRpYWxpemVkCisJCSAgICByZXR1cm4gbnVsbDsKKwkJfQorICAgICAgICAgICAgICAgIGltYWdlID0gZkNvbXBvbmVudC5jcmVhdGVJbWFnZSh3aWR0aCwgaGVpZ2h0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEdyYXBoaWNzIGcgPSBpbWFnZS5nZXRHcmFwaGljcygpOworICAgICAgICAgICAgZkltYWdlID0gaW1hZ2U7CisgICAgICAgICAgICByZXR1cm4gZzsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgZHJhd0ltYWdlKEdyYXBoaWNzIGcsIGludCB4LCBpbnQgeSwgQ29sb3IgY29sb3IpIHsKKworICAgICAgICAgICAgaWYgKCFmSXNWYWxpZCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRHJhd2luZyBpbWFnZSB3aGVuIG5vdCB2YWxpZCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZy5kcmF3SW1hZ2UoZkltYWdlLCB4LCB5LCBjb2xvciwgZkNvbXBvbmVudCk7CisgICAgICAgIH0KKworICAgICAgICBib29sZWFuIGlzVmFsaWQoKSB7CisKKyAgICAgICAgICAgIHJldHVybiBmSXNWYWxpZDsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgc2V0VmFsaWQoYm9vbGVhbiBpc1ZhbGlkKSB7CisKKyAgICAgICAgICAgIGZJc1ZhbGlkID0gaXNWYWxpZDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogVGhpcyBjbGFzcyBsaXN0ZW5zIHRvIGEgTVRleHRQYW5lbCBmb3IgY2hhbmdlcyB3aGljaAorICAgICogYWZmZWN0IGEgVGFiUnVsZXIncyBhcHBlYXJhbmNlLCBhbmQgdXBkYXRlcyB0aGUgVGFiUnVsZXIKKyAgICAqIGFzIG5lY2Vzc2FyeS4KKyAgICAqIEBzZWUgVGFiUnVsZXIKKyAgICAqIEBzZWUgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbAorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgVXBkYXRlciBpbXBsZW1lbnRzIFRleHRQYW5lbExpc3RlbmVyIHsKKworICAgICAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAgICAgcHJpdmF0ZSBUYWJSdWxlckltcGwgZlRhYlJ1bGVyOworICAgICAgICBwcml2YXRlIE1UZXh0UGFuZWwgZlRleHRQYW5lbDsKKworICAgICAgICAvKioKKyAgICAgICAgKiBDcmVhdGUgYSBuZXcgVGFiUnVsZXJVcGRhdGVyLgorICAgICAgICAqIEBwYXJhbSB0YWJSdWxlciB0aGUgVGFiUnVsZXIgdG8gdXBkYXRlIHdoZW4gYSBjaGFuZ2Ugb2NjdXJzCisgICAgICAgICogICAgIGluIHRoZSBNVGV4dFBhbmVsCisgICAgICAgICovCisgICAgICAgIFVwZGF0ZXIoVGFiUnVsZXJJbXBsIHRhYlJ1bGVyKSB7CisKKyAgICAgICAgICAgIGZUYWJSdWxlciA9IHRhYlJ1bGVyOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICogUmVtb3ZlIHNlbGYgYXMgbGlzdGVuZXIgZnJvbSBwcmV2aW91cyBNVGV4dFBhbmVsLAorICAgICAgICAqIHNldCBjdXJyZW50IE1UZXh0UGFuZWwgYW5kIGxpc3RlbiB0byBpdCAoaWYgbm90IG51bGwpLgorICAgICAgICAqLworICAgICAgICB2b2lkIHNldFRleHRQYW5lbChNVGV4dFBhbmVsIHRleHRQYW5lbCkgeworCisgICAgICAgICAgICBpZiAoZlRleHRQYW5lbCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgZlRleHRQYW5lbC5yZW1vdmVMaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZlRleHRQYW5lbCA9IHRleHRQYW5lbDsKKworICAgICAgICAgICAgaWYgKGZUZXh0UGFuZWwgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGZUZXh0UGFuZWwuYWRkTGlzdGVuZXIodGhpcyk7CisgICAgICAgICAgICAgICAgc2V0QWxsKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHZvaWQgc2V0QWxsKCkgeworCisgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gZlRleHRQYW5lbC5nZXRTZWxlY3Rpb25TdGFydCgpOworICAgICAgICAgICAgYm9vbGVhbiBsZWZ0VG9SaWdodCA9IGZUZXh0UGFuZWwucGFyYWdyYXBoSXNMZWZ0VG9SaWdodChvZmZzZXQpOworICAgICAgICAgICAgQXR0cmlidXRlTWFwIHN0eWxlID0gZlRleHRQYW5lbC5nZXRUZXh0KCkucGFyYWdyYXBoU3R5bGVBdChvZmZzZXQpOworICAgICAgICAgICAgZlRhYlJ1bGVyLnNldChzdHlsZSwgZmFsc2UpOworICAgICAgICAgICAgZlRhYlJ1bGVyLnNldEZvcm1hdFdpZHRoKGZUZXh0UGFuZWwuZ2V0Rm9ybWF0V2lkdGgoKSwgZmFsc2UpOworICAgICAgICAgICAgZlRhYlJ1bGVyLnNldExlZnRUb1JpZ2h0KGxlZnRUb1JpZ2h0LCB0cnVlKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAqIFRleHRQYW5lbExpc3RlbmVyIG1ldGhvZC4gIFRoaXMgY2xhc3MgcmVzcG9uZHMgdG8gdGV4dAorICAgICAgICAqIGNoYW5nZXMgYnkgdXBkYXRpbmcgaXRzIFRhYlJ1bGVyLgorICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCB0ZXh0RXZlbnRPY2N1cnJlZChUZXh0UGFuZWxFdmVudCBldmVudCkgeworCisgICAgICAgICAgICBpbnQgY2hhbmdlQ29kZSA9IGV2ZW50LmdldElEKCk7CisKKyAgICAgICAgICAgIGlmIChjaGFuZ2VDb2RlID09IGV2ZW50LlNFTEVDVElPTl9TVFlMRVNfQ0hBTkdFRCB8fAorICAgICAgICAgICAgICAgICAgICBjaGFuZ2VDb2RlID09IGV2ZW50LlRFWFRfQ0hBTkdFRCkgeworCisgICAgICAgICAgICAgICAgaW50IG9mZnNldCA9IGZUZXh0UGFuZWwuZ2V0U2VsZWN0aW9uU3RhcnQoKTsKKyAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgc3R5bGUgPSBmVGV4dFBhbmVsLmdldFRleHQoKS5wYXJhZ3JhcGhTdHlsZUF0KG9mZnNldCk7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBsZWZ0VG9SaWdodCA9IGZUZXh0UGFuZWwucGFyYWdyYXBoSXNMZWZ0VG9SaWdodChvZmZzZXQpOworICAgICAgICAgICAgICAgIGZUYWJSdWxlci5zZXQoc3R5bGUsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICBmVGFiUnVsZXIuc2V0TGVmdFRvUmlnaHQobGVmdFRvUmlnaHQsIHRydWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoY2hhbmdlQ29kZSA9PSBldmVudC5GT1JNQVRfV0lEVEhfQ0hBTkdFRCkgeworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGZUYWJSdWxlci5zZXRGb3JtYXRXaWR0aChmVGV4dFBhbmVsLmdldEZvcm1hdFdpZHRoKCksIHRydWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgKiBUZXh0UGFuZWxMaXN0ZW5lciBtZXRob2QuCisgICAgICAgICovCisgICAgICAgIHB1YmxpYyBib29sZWFuIHJlc3BvbmRzVG9FdmVudFR5cGUoaW50IHR5cGUpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIHR5cGUgPT0gVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX1NUWUxFU19DSEFOR0VEIHx8CisgICAgICAgICAgICAgICAgICAgIHR5cGUgPT0gVGV4dFBhbmVsRXZlbnQuVEVYVF9DSEFOR0VEIHx8CisgICAgICAgICAgICAgICAgICAgIHR5cGUgPT0gVGV4dFBhbmVsRXZlbnQuRk9STUFUX1dJRFRIX0NIQU5HRUQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGUgZGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBUYWJSdWxlcnMuCisgICAgICogQHNlZSAjc2V0QmFja0NvbG9yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBDb2xvciBERUZBVUxUX0JBQ0tfQ09MT1IgPSBDb2xvci5saWdodEdyYXk7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQga1RyYWNrTm9uZSA9IDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGtUcmFja1RhYiA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGtUcmFja0xNID0gMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQga1RyYWNrRkxJID0gMzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQga1RyYWNrVE0gPSA0OworCisgICAgcHJpdmF0ZSBDb21wb25lbnQgZkhvc3Q7CisgICAgcHJpdmF0ZSBNVGFiUnVsZXIgZlJ1bGVyOworICAgIHByaXZhdGUgaW50IGZMZWFkaW5nTWFyZ2luOworICAgIHByaXZhdGUgaW50IGZGaXJzdExpbmVJbmRlbnQ7CisgICAgcHJpdmF0ZSBpbnQgZkZvcm1hdFdpZHRoOworICAgIHByaXZhdGUgaW50IGZUcmFpbGluZ01hcmdpblBvc2l0aW9uOyAvLyBvcHBvc2l0ZSBvZiBhY3R1YWwgdHJhaWxpbmcgbWFyZ2luCisgICAgcHJpdmF0ZSBib29sZWFuIGZMZWZ0VG9SaWdodDsKKyAgICBwcml2YXRlIGludCBmQmFzZWxpbmU7CisgICAgcHJpdmF0ZSBpbnQgZk9yaWdpbjsKKyAgICBwcml2YXRlIENvbG9yIGZCYWNrQ29sb3IgPSBERUZBVUxUX0JBQ0tfQ09MT1I7CisKKyAgICBwcml2YXRlIGludCBmVHJhY2tJdGVtOyAvLyAwIC0gbm9uZSwgMSAtIHRhYiwgMiAtIGxtLCAzIC0gZmxpLCA0IC0gdG0KKyAgICBwcml2YXRlIFRhYlN0b3BCdWZmZXIgZlRyYWNrVGFiOworICAgIHByaXZhdGUgVGFiU3RvcCBmT2xkVGFiOworICAgIHByaXZhdGUgaW50IGZUcmFja0RlbHRhOworICAgIHByaXZhdGUgYm9vbGVhbiBmVHJhY2tWaXNpYmxlOworICAgIHByaXZhdGUgVXBkYXRlciBmVXBkYXRlcjsKKyAgICBwcml2YXRlIE1UZXh0UGFuZWwgZlRleHRQYW5lbCA9IG51bGw7CisKKyAgICBwcml2YXRlIEltYWdlQ2FjaGUgZkltYWdlQ2FjaGU7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBuZXcgVGFiUnVsZXIuCisgICAgICogQHBhcmFtIGJhc2VsaW5lIHRoZSB5LWNvb3JkaW5hdGUgb2YgdGhlIHJ1bGVyJ3MgYmFzZWxpbmUKKyAgICAgKiBAcGFyYW0gb3JpZ2luIHRoZSB4LWNvb3JkaW5hdGUgaW4gdGhpcyBDb21wb25lbnQgd2hlcmUKKyAgICAgKiAgICAgdGhlIGxlZnQgbWFyZ2luIGFwcGVhcnMKKyAgICAgKiBAcGFyYW0gdGV4dFBhbmVsIHRoZSBNVGV4dFBhbmVsIHRvIGxpc3RlbiB0by4gIFRoaXMgVGFiUnVsZXIKKyAgICAgKiAgICAgd2lsbCByZWZsZWN0IHRoZSBNVGV4dFBhbmVsJ3MgcGFyYWdyYXBoIHN0eWxlcywgYW5kIHVwZGF0ZQorICAgICAqICAgICB0aGUgcGFyYWdyYXBoIHN0eWxlcyB3aGVuIG1hbmlwdWxhdGVkLgorICAgICAqLworICAgIHB1YmxpYyBUYWJSdWxlckltcGwoaW50IGJhc2VsaW5lLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBvcmlnaW4sIAorICAgICAgICAgICAgICAgICAgICAgICAgTVRleHRQYW5lbCB0ZXh0UGFuZWwsCisgICAgICAgICAgICAgICAgICAgICAgICBDb21wb25lbnQgaG9zdCkgeworCisgICAgICAgIGZIb3N0ID0gaG9zdDsKKyAgICAgICAgZkltYWdlQ2FjaGUgPSBuZXcgSW1hZ2VDYWNoZShob3N0KTsKKyAgICAgICAgZlVwZGF0ZXIgPSBuZXcgVXBkYXRlcih0aGlzKTsKKyAgICAgICAgZkJhc2VsaW5lID0gYmFzZWxpbmU7CisgICAgICAgIGZPcmlnaW4gPSBvcmlnaW47CisgICAgICAgIGhvc3QuYWRkTW91c2VMaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgaG9zdC5hZGRNb3VzZU1vdGlvbkxpc3RlbmVyKHRoaXMpOworICAgICAgICBpZiAodGV4dFBhbmVsICE9IG51bGwpIHsKKyAgICAgICAgICAgIGxpc3RlblRvVGV4dFBhbmVsKHRleHRQYW5lbCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmUnVsZXIgPSBuZXcgU3RhbmRhcmRUYWJSdWxlcigpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTGlzdGVuIHRvIHRoZSBnaXZlbiBNVGV4dFBhbmVsIGFuZCByZWZsZWN0IGl0cyBjaGFuZ2VzLAorICAgICAqIGFuZCB1cGRhdGUgaXRzIHBhcmFncmFwaCBzdHlsZXMgd2hlbiBUYWJSdWxlciBpcworICAgICAqIG1hbmlwdWxhdGVkLgorICAgICAqIEBwYXJhbSB0ZXh0UGFuZWwgdGhlIE1UZXh0UGFuZWwgdG8gbGlzdGVuIHRvCisgICAgICovCisgICAgcHVibGljIHZvaWQgbGlzdGVuVG9UZXh0UGFuZWwoTVRleHRQYW5lbCB0ZXh0UGFuZWwpIHsKKworICAgICAgICBmVGV4dFBhbmVsID0gdGV4dFBhbmVsOworICAgICAgICBmVXBkYXRlci5zZXRUZXh0UGFuZWwodGV4dFBhbmVsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhpcyBUYWJSdWxlci4KKyAgICAgKiBAcmV0dXJuIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoaXMgVGFiUnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgQ29sb3IgZ2V0QmFja0NvbG9yKCkgeworCisgICAgICAgIHJldHVybiBmQmFja0NvbG9yOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgYmFja2dyb3VuZCBjb2xvciBvZiB0aGlzIFRhYlJ1bGVyLgorICAgICAqIEBwYXJhbSBiYWNrQ29sb3IgdGhlIG5ldyBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoaXMgVGFiUnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRCYWNrQ29sb3IoQ29sb3IgYmFja0NvbG9yKSB7CisKKyAgICAgICAgaWYgKCFiYWNrQ29sb3IuZXF1YWxzKGZCYWNrQ29sb3IpKSB7CisgICAgICAgICAgICBmQmFja0NvbG9yID0gYmFja0NvbG9yOworICAgICAgICAgICAgR3JhcGhpY3MgZyA9IGZIb3N0LmdldEdyYXBoaWNzKCk7CisgICAgICAgICAgICBpZiAoZyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcGFpbnQoZyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBPYmplY3QgZ2V0V2l0aERlZmF1bHQoT2JqZWN0IGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwIHN0eWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgZGVmYXVsdHMpIHsKKyAgICAgICAgT2JqZWN0IHZhbHVlID0gc3R5bGUuZ2V0KGtleSk7CisgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7CisgICAgICAgICAgICB2YWx1ZSA9IGRlZmF1bHRzLmdldChrZXkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmbG9hdCBnZXRGbG9hdFdpdGhEZWZhdWx0KE9iamVjdCBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgc3R5bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgZGVmYXVsdHMpIHsKKyAgICAgICAgT2JqZWN0IHZhbHVlID0gZ2V0V2l0aERlZmF1bHQoa2V5LCBzdHlsZSwgZGVmYXVsdHMpOworICAgICAgICByZXR1cm4gKChGbG9hdCl2YWx1ZSkuZmxvYXRWYWx1ZSgpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgc2V0TGVmdFRvUmlnaHQoYm9vbGVhbiBsZWZ0VG9SaWdodCwgYm9vbGVhbiB1cGRhdGUpIHsKKyAgICAgICAgCisgICAgICAgIGlmIChmTGVmdFRvUmlnaHQgIT0gbGVmdFRvUmlnaHQpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZkxlZnRUb1JpZ2h0ID0gbGVmdFRvUmlnaHQ7CisgICAgICAgICAgICByZWRyYXdTZWxmKHVwZGF0ZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgc2V0Rm9ybWF0V2lkdGgoaW50IGZvcm1hdFdpZHRoLCBib29sZWFuIHVwZGF0ZSkgeworICAgICAgICAKKyAgICAgICAgaWYgKGZGb3JtYXRXaWR0aCAhPSBmb3JtYXRXaWR0aCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBmVHJhaWxpbmdNYXJnaW5Qb3NpdGlvbiArPSAoZm9ybWF0V2lkdGggLSBmRm9ybWF0V2lkdGgpOworICAgICAgICAgICAgZkZvcm1hdFdpZHRoID0gZm9ybWF0V2lkdGg7CisgICAgICAgICAgICByZWRyYXdTZWxmKHVwZGF0ZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0IFRhYlJ1bGVyIGZyb20gdmFsdWVzIGluIHBhcmFncmFwaFN0eWxlLiAgT25seSBUYWJSdWxlclVwZGF0ZXIKKyAgICAgKiBzaG91bGQgY2FsbCB0aGlzIG1ldGhvZC4KKyAgICAgKiBAcGFyYW0gcGFyYWdyYXBoU3R5bGUgdGhlIHBhcmFncmFwaCBzdHlsZSB3aGljaCB0aGUgVGFiUnVsZXIgd2lsbAorICAgICAqICAgICByZWZsZWN0CisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHNldChBdHRyaWJ1dGVNYXAgcGFyYWdyYXBoU3R5bGUsIGJvb2xlYW4gdXBkYXRlKSB7CisKKyAgICAgICAgQXR0cmlidXRlTWFwIHBhbmVsRGVmYXVsdHM7CisgICAgICAgIAorICAgICAgICBpZiAoZlRleHRQYW5lbD09bnVsbCkgeworICAgICAgICAgICAgcGFuZWxEZWZhdWx0cyA9IFRleHRQYW5lbC5nZXREZWZhdWx0U2V0dGluZ3MoKS5nZXREZWZhdWx0VmFsdWVzKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgcGFuZWxEZWZhdWx0cyA9IGZUZXh0UGFuZWwuZ2V0RGVmYXVsdFZhbHVlcygpOworICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgaW50IGxlYWRpbmdNYXJnaW4gPSAgKGludCkgZ2V0RmxvYXRXaXRoRGVmYXVsdChUZXh0QXR0cmlidXRlLkxFQURJTkdfTUFSR0lOLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFncmFwaFN0eWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhbmVsRGVmYXVsdHMpOworICAgICAgICBpbnQgZmlyc3RMaW5lSW5kZW50ID0gKGludCkgZ2V0RmxvYXRXaXRoRGVmYXVsdChUZXh0QXR0cmlidXRlLkZJUlNUX0xJTkVfSU5ERU5ULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhZ3JhcGhTdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFuZWxEZWZhdWx0cyk7CisgICAgICAgIGludCB0cmFpbGluZ01hcmdpbiA9IChpbnQpIGdldEZsb2F0V2l0aERlZmF1bHQoVGV4dEF0dHJpYnV0ZS5UUkFJTElOR19NQVJHSU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYWdyYXBoU3R5bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFuZWxEZWZhdWx0cyk7CisKKyAgICAgICAgTVRhYlJ1bGVyIHJ1bGVyID0gKE1UYWJSdWxlcikgZ2V0V2l0aERlZmF1bHQoVGV4dEF0dHJpYnV0ZS5UQUJfUlVMRVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFncmFwaFN0eWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYW5lbERlZmF1bHRzKTsKKworICAgICAgICBpbnQgb3VyRmxpID0gbGVhZGluZ01hcmdpbiArIGZpcnN0TGluZUluZGVudDsKKyAgICAgICAgaW50IG91clRtcCA9IGZGb3JtYXRXaWR0aCAtIHRyYWlsaW5nTWFyZ2luOworICAgICAgICAKKyAgICAgICAgaWYgKGxlYWRpbmdNYXJnaW4gPT0gZkxlYWRpbmdNYXJnaW4gJiYKKyAgICAgICAgICAgICAgICBmRmlyc3RMaW5lSW5kZW50ID09IG91ckZsaSAmJgorICAgICAgICAgICAgICAgIGZUcmFpbGluZ01hcmdpblBvc2l0aW9uID09IG91clRtcCAmJgorICAgICAgICAgICAgICAgIHJ1bGVyLmVxdWFscyhmUnVsZXIpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZMZWFkaW5nTWFyZ2luID0gbGVhZGluZ01hcmdpbjsKKyAgICAgICAgZkZpcnN0TGluZUluZGVudCA9IG91ckZsaTsKKyAgICAgICAgZlRyYWlsaW5nTWFyZ2luUG9zaXRpb24gPSBvdXJUbXA7CisgICAgICAgIGZSdWxlciA9IHJ1bGVyOworICAgIAorICAgICAgICByZWRyYXdTZWxmKHVwZGF0ZSk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCByZWRyYXdTZWxmKGJvb2xlYW4gZHJhd05vdykgeworCisgICAgICAgIGZJbWFnZUNhY2hlLnNldFZhbGlkKGZhbHNlKTsKKworICAgICAgICBHcmFwaGljcyBnID0gZkhvc3QuZ2V0R3JhcGhpY3MoKTsKKyAgICAgICAgaWYgKGcgIT0gbnVsbCkKKyAgICAgICAgICAgIHBhaW50KGcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBkZWJ1Z2dpbmcgaW5mby4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworCisgICAgICAgIHJldHVybiAiVGFiUnVsZXJ7ZkxlYWRpbmdNYXJnaW49IitmTGVhZGluZ01hcmdpbisKKyAgICAgICAgICAgICAgICAifXtmRmlyc3RMaW5lSW5kZW50PSIrZkZpcnN0TGluZUluZGVudCsKKyAgICAgICAgICAgICAgICAifXtmRm9ybWF0V2lkdGg9IitmRm9ybWF0V2lkdGgrCisgICAgICAgICAgICAgICAgIn17ZlRyYWlsaW5nTWFyZ2luUG9zaXRpb249IitmVHJhaWxpbmdNYXJnaW5Qb3NpdGlvbisKKyAgICAgICAgICAgICAgICAifXtmUnVsZXI9IitmUnVsZXIrCisgICAgICAgICAgICAgICAgIn0iOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgTVRhYlJ1bGVyIHJlcHJlc2VudGVkIGJ5IHRoaXMgVGFiUnVsZXIuCisgICAgICogQHJldHVybiB0aGUgTVRhYlJ1bGVyIHJlcHJlc2VudGVkIGJ5IHRoaXMgVGFiUnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgTVRhYlJ1bGVyIGdldFJ1bGVyKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmUnVsZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsZWFkaW5nIG1hcmdpbiBvZiB0aGlzIFRhYlJ1bGVyLgorICAgICAqIEByZXR1cm4gdGhlIGxlYWRpbmcgbWFyZ2luIG9mIHRoaXMgVGFiUnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldExlYWRpbmdNYXJnaW4oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZMZWFkaW5nTWFyZ2luOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZmlyc3QgbGluZSBpbmRlbnQgb2YgdGhpcyBUYWJSdWxlci4KKyAgICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBsaW5lIGluZGVudCBvZiB0aGlzIFRhYlJ1bGVyCisgICAgICovCisgICAgcHVibGljIGludCBnZXRGaXJzdExpbmVJbmRlbnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZGaXJzdExpbmVJbmRlbnQgLSBmTGVhZGluZ01hcmdpbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHRyYWlsaW5nIG1hcmdpbiBvZiB0aGlzIFRhYlJ1bGVyLgorICAgICAqIEByZXR1cm4gdGhlIHRyYWlsaW5nIG1hcmdpbiBvZiB0aGlzIFRhYlJ1bGVyCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBnZXRUcmFpbGluZ01hcmdpbigpCisgICAgeworICAgICAgICByZXR1cm4gZkZvcm1hdFdpZHRoIC0gZlRyYWlsaW5nTWFyZ2luUG9zaXRpb247CisgICAgfQorICAgIAorICAgIHByaXZhdGUgaW50IHZpc3VhbFRvUnVsZXJQb3MoaW50IHZpc1BvcykgeworICAgICAgICAKKyAgICAgICAgaWYgKGZMZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgcmV0dXJuIHZpc1BvcyAtIGZPcmlnaW47CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZk9yaWdpbiArIGZGb3JtYXRXaWR0aCAtIHZpc1BvczsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGludCBydWxlclRvVmlzdWFsUG9zKGludCBydWxlclBvcykgeworICAgICAgICAKKyAgICAgICAgaWYgKGZMZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgcmV0dXJuIGZPcmlnaW4gKyBydWxlclBvczsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBmT3JpZ2luICsgZkZvcm1hdFdpZHRoIC0gcnVsZXJQb3M7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBpbnQgZGlyTXVsdCgpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBmTGVmdFRvUmlnaHQ/IDEgOiAtMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gdGFiUG9zaXRpb24gdGhlIGxvZ2ljYWwgKHJ1bGVyKSBwb3NpdGlvbiBvZiB0aGUgdGFiCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGRyYXdUYWIoR3JhcGhpY3MgZywgaW50IHRhYlBvc2l0aW9uLCBieXRlIHRhYlR5cGUsIGludCB0YWJUb3AsIGludCB0YWJCb3R0b20pCisgICAgeworICAgICAgICBpbnQgcG9zID0gcnVsZXJUb1Zpc3VhbFBvcyh0YWJQb3NpdGlvbik7CisgICAgICAgIGludCB3aWQgPSAwOworICAgICAgICBzd2l0Y2ggKHRhYlR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgVGFiU3RvcC5rTGVhZGluZzogd2lkID0gMzsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFRhYlN0b3Aua0NlbnRlcjogd2lkID0gMDsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFRhYlN0b3Aua1RyYWlsaW5nOiB3aWQgPSAtMzsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFRhYlN0b3Aua0RlY2ltYWw6IHdpZCA9IDA7IGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDogYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgd2lkICo9IGRpck11bHQoKTsKKyAgICAgICAgCisgICAgICAgIGlmICh0YWJUeXBlICE9IFRhYlN0b3Aua0F1dG8pIHsKKyAgICAgICAgICAgIGcuZHJhd0xpbmUocG9zLCB0YWJUb3AsIHBvcywgdGFiQm90dG9tKTsKKyAgICAgICAgICAgIGlmICh3aWQgIT0gMCkKKyAgICAgICAgICAgICAgICBnLmRyYXdMaW5lKHBvcywgdGFiQm90dG9tLCBwb3MgKyB3aWQsIHRhYkJvdHRvbSk7CisgICAgICAgIH0KKyAgICAgICAgZy5kcmF3TGluZShwb3MtMiwgdGFiVG9wKzIsIHBvcywgdGFiVG9wKTsKKyAgICAgICAgZy5kcmF3TGluZShwb3MsIHRhYlRvcCwgcG9zKzIsIHRhYlRvcCsyKTsKKyAgICAgICAgaWYgKHRhYlR5cGUgPT0gVGFiU3RvcC5rRGVjaW1hbCkgeworICAgICAgICAgICAgZy5kcmF3TGluZShwb3MgKyAzLCB0YWJCb3R0b20sIHBvcyArIDQsIHRhYkJvdHRvbSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZHJhd0xNKEdyYXBoaWNzIGcpCisgICAgeworICAgICAgICBpbnQgcG9zID0gcnVsZXJUb1Zpc3VhbFBvcyhmTGVhZGluZ01hcmdpbik7CisgICAgICAgIGludFtdIHhwdHMgPSB7IHBvcywgcG9zLCBwb3MgKyAoNCpkaXJNdWx0KCkpLCBwb3MgfTsKKyAgICAgICAgaW50W10geXB0cyA9IHsgZkJhc2VsaW5lICsgMTIsIGZCYXNlbGluZSArIDcsIGZCYXNlbGluZSArIDcsIGZCYXNlbGluZSArIDEyIH07CisgICAgICAgIGcuZmlsbFBvbHlnb24oeHB0cywgeXB0cywgMyk7CisgICAgICAgIGcuZHJhd1BvbHlnb24oeHB0cywgeXB0cywgNCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGRyYXdGTEkoR3JhcGhpY3MgZykKKyAgICB7CisgICAgICAgIGludCBwb3MgPSBydWxlclRvVmlzdWFsUG9zKGZGaXJzdExpbmVJbmRlbnQpOworICAgICAgICBpbnRbXSB4cHRzID0geyBwb3MsIHBvcywgcG9zICsgKDQqZGlyTXVsdCgpKSwgcG9zIH07CisgICAgICAgIGludFtdIHlwdHMgPSB7IGZCYXNlbGluZSwgZkJhc2VsaW5lICsgNSwgZkJhc2VsaW5lICsgNSwgZkJhc2VsaW5lIH07CisgICAgICAgIGcuZmlsbFBvbHlnb24oeHB0cywgeXB0cywgMyk7CisgICAgICAgIGcuZHJhd1BvbHlnb24oeHB0cywgeXB0cywgNCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGRyYXdSTShHcmFwaGljcyBnKQorICAgIHsKKyAgICAgICAgaW50IHBvcyA9IHJ1bGVyVG9WaXN1YWxQb3MoZlRyYWlsaW5nTWFyZ2luUG9zaXRpb24pOworICAgICAgICBpbnRbXSB4cHRzID0geyBwb3MsIHBvcywgcG9zIC0gKDYqZGlyTXVsdCgpKSwgcG9zIH07CisgICAgICAgIGludFtdIHlwdHMgPSB7IGZCYXNlbGluZSwgZkJhc2VsaW5lICsgMTIsIGZCYXNlbGluZSArIDYsIGZCYXNlbGluZSB9OworICAgICAgICBnLmZpbGxQb2x5Z29uKHhwdHMsIHlwdHMsIDMpOworICAgICAgICBnLmRyYXdQb2x5Z29uKHhwdHMsIHlwdHMsIDQpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGludCBhbGlnbkludChpbnQgdmFsdWUpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiAoaW50KSgoaW50KSh2YWx1ZSAvIDQuNSkgKiA0LjUpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludFtdIGZnTGVuZ3RocyA9IHsgMTAsIDIsIDQsIDIsIDYsIDIsIDQsIDIgfTsKKworICAgIC8qKgorICAgICAqIENvbXBvbmVudCBtZXRob2Qgb3ZlcnJpZGUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgcGFpbnQoR3JhcGhpY3MgZykKKyAgICB7CisgICAgICAgIERpbWVuc2lvbiBzaXplID0gZkhvc3QuZ2V0U2l6ZSgpOworCisgICAgICAgIGludCB3aWR0aCA9IHNpemUud2lkdGg7CisgICAgICAgIGludCBiYXNlbGluZSA9IGZCYXNlbGluZTsKKyAgICAgICAgaW50IGJhc2VsaW5lMiA9IGJhc2VsaW5lICsgMjsKKyAgICAgICAgaW50IGJhc2VsaW5lMTAgPSBiYXNlbGluZSArIDEwOworICAgICAgICBpbnQgYmFzZWxpbmUxMiA9IGJhc2VsaW5lICsgMTI7CisKKyAgICAgICAgaWYgKCFmSW1hZ2VDYWNoZS5pc1ZhbGlkKCkpIHsKKworICAgICAgICAgICAgR3JhcGhpY3MgZ0NhY2hlID0gZkltYWdlQ2FjaGUuZ2V0R3JhcGhpY3Mod2lkdGgsIGJhc2VsaW5lMTIgKyAxKTsKKyAgICAgICAgICAgIGlmIChnQ2FjaGUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gc2V0IGJhY2tncm91bmQgY29sb3IKKworICAgICAgICAgICAgZ0NhY2hlLnNldENvbG9yKGZCYWNrQ29sb3IpOworICAgICAgICAgICAgZ0NhY2hlLnNldFBhaW50TW9kZSgpOworICAgICAgICAgICAgZ0NhY2hlLmZpbGxSZWN0KDAsIDAsIHdpZHRoLCBiYXNlbGluZTEyICsgMSk7CisKKyAgICAgICAgICAgIC8vIHBhaW50IHRpY2tzCisKKyAgICAgICAgICAgIGdDYWNoZS5zZXRDb2xvcihDb2xvci5ibGFjayk7CisgICAgICAgICAgICBnQ2FjaGUuZHJhd0xpbmUoMCwgMCwgd2lkdGgsIDApOworICAgICAgICAgICAgZ0NhY2hlLmRyYXdMaW5lKDAsIGJhc2VsaW5lLCB3aWR0aCwgYmFzZWxpbmUpOworCisgICAgICAgICAgICBpbnRbXSBsZW5ndGhzID0gZmdMZW5ndGhzOworCisgICAgICAgICAgICBpbnQgaW5kZXggPSAwOworICAgICAgICAgICAgaW50IGluY2hudW0gPSAwOworICAgICAgICAgICAgRm9udE1ldHJpY3MgZm0gPSBudWxsOworICAgICAgICAgICAgaWYgKCFmTGVmdFRvUmlnaHQpIHsKKyAgICAgICAgICAgICAgICBmbSA9IGdDYWNoZS5nZXRGb250TWV0cmljcygpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZGb3JtYXRXaWR0aDsgaSArPSA5KSB7CisgICAgICAgICAgICAgICAgaW50IGxlbiA9IGxlbmd0aHNbaW5kZXhdOworICAgICAgICAgICAgICAgIGludCBwb3MgPSBydWxlclRvVmlzdWFsUG9zKGkpOworICAgICAgICAgICAgICAgIGdDYWNoZS5kcmF3TGluZShwb3MsIGJhc2VsaW5lLCBwb3MsIGJhc2VsaW5lIC0gbGVuKTsKKworICAgICAgICAgICAgICAgIGlmIChpbmRleCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzdHIgPSBJbnRlZ2VyLnRvU3RyaW5nKGluY2hudW0rKyk7CisgICAgICAgICAgICAgICAgICAgIGludCBkcmF3WDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZMZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZHJhd1ggPSBwb3MgKyAyOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgZHJhd1ggPSBwb3MgLSBmbS5zdHJpbmdXaWR0aChzdHIpIC0gMjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGdDYWNoZS5kcmF3U3RyaW5nKHN0ciwgZHJhd1gsIGJhc2VsaW5lIC0gMik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKCsraW5kZXggPT0gbGVuZ3Rocy5sZW5ndGgpCisgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gMDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gcGFpbnQgdGFicworICAgICAgICAgICAgVGFiU3RvcCB0YWIgPSBmUnVsZXIuZmlyc3RUYWIoKTsKKyAgICAgICAgICAgIHdoaWxlICh0YWIgIT0gbnVsbCAmJiB0YWIuZ2V0UG9zaXRpb24oKSA8IGZUcmFpbGluZ01hcmdpblBvc2l0aW9uKSB7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBkb2RyYXcgPSB0cnVlOworICAgICAgICAgICAgICAgIGlmICh0YWIuZ2V0VHlwZSgpID09IFRhYlN0b3Aua0F1dG8pIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRhYi5nZXRQb3NpdGlvbigpIDw9IE1hdGgubWF4KGZMZWFkaW5nTWFyZ2luLCBmRmlyc3RMaW5lSW5kZW50KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvZHJhdyA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0YWIuZ2V0UG9zaXRpb24oKSA+PSBmVHJhaWxpbmdNYXJnaW5Qb3NpdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvZHJhdyA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChkb2RyYXcpCisgICAgICAgICAgICAgICAgICAgIGRyYXdUYWIoZ0NhY2hlLCB0YWIuZ2V0UG9zaXRpb24oKSwgdGFiLmdldFR5cGUoKSwgYmFzZWxpbmUyLCBiYXNlbGluZTEwKTsKKworICAgICAgICAgICAgICAgIHRhYiA9IGZSdWxlci5uZXh0VGFiKHRhYi5nZXRQb3NpdGlvbigpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZ0NhY2hlLmRyYXdMaW5lKDAsIGJhc2VsaW5lMTIsIHdpZHRoLCBiYXNlbGluZTEyKTsKKworICAgICAgICAgICAgLy8gcGFpbnQgb3RoZXJzIGV4Y2VwdCBmb3IgdHJhY2tlZCBpdGVtCisgICAgICAgICAgICBpZiAoZlRyYWNrSXRlbSAhPSBrVHJhY2tMTSkgZHJhd0xNKGdDYWNoZSk7CisgICAgICAgICAgICBpZiAoZlRyYWNrSXRlbSAhPSBrVHJhY2tUTSkgZHJhd1JNKGdDYWNoZSk7CisgICAgICAgICAgICBpZiAoZlRyYWNrSXRlbSAhPSBrVHJhY2tGTEkgJiYgZlRyYWNrSXRlbSAhPSBrVHJhY2tMTSkgZHJhd0ZMSShnQ2FjaGUpOworICAgICAgICAgICAgZkltYWdlQ2FjaGUuc2V0VmFsaWQodHJ1ZSk7CisgICAgICAgIH0KKworICAgICAgICBmSW1hZ2VDYWNoZS5kcmF3SW1hZ2UoZywgMCwgMCwgQ29sb3IubGlnaHRHcmF5KTsKKworICAgICAgICBzd2l0Y2ggKGZUcmFja0l0ZW0pIHsKKyAgICAgICAgICAgIGNhc2Uga1RyYWNrVGFiOiBpZiAoZlRyYWNrVmlzaWJsZSkgZHJhd1RhYihnLCBmVHJhY2tUYWIuZlBvc2l0aW9uLCBmVHJhY2tUYWIuZlR5cGUsIGJhc2VsaW5lMiwgYmFzZWxpbmUxMCk7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBrVHJhY2tMTTogZHJhd0xNKGcpOyBkcmF3RkxJKGcpOyBicmVhazsKKyAgICAgICAgICAgIGNhc2Uga1RyYWNrVE06IGRyYXdSTShnKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIGtUcmFja0ZMSTogZHJhd0ZMSShnKTsgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OiBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE1vdXNlTGlzdGVuZXIgbWV0aG9kLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIG1vdXNlQ2xpY2tlZChNb3VzZUV2ZW50IGUpIHt9CisgICAgLyoqCisgICAgICogTW91c2VMaXN0ZW5lciBtZXRob2QuCisgICAgICovCisgICAgcHVibGljIHZvaWQgbW91c2VFbnRlcmVkKE1vdXNlRXZlbnQgZSkge30KKyAgICAvKioKKyAgICAgKiBNb3VzZUxpc3RlbmVyIG1ldGhvZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBtb3VzZUV4aXRlZChNb3VzZUV2ZW50IGUpIHt9CisKKyAgICAvKioKKyAgICAgKiBNb3VzZUxpc3RlbmVyIG1ldGhvZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBtb3VzZVByZXNzZWQoTW91c2VFdmVudCBlKQorICAgIHsKKyAgICAgICAgLy8gZmluZCBvdXQgaWYgd2UgaGl0IGEgdGFic3RvcAorICAgICAgICBpbnQgeCA9IHZpc3VhbFRvUnVsZXJQb3MoZS5nZXRYKCkpOworICAgICAgICBpbnQgeSA9IGUuZ2V0WSgpOworCisgICAgICAgIGlmICh5ID4gZkJhc2VsaW5lICYmIHkgPCBmQmFzZWxpbmUgKyAxMikgeworICAgICAgICAgICAgaWYgKHkgPj0gZkJhc2VsaW5lICsgNyAmJiB4ID49IGZMZWFkaW5nTWFyZ2luIC0gMyAmJiB4IDw9IGZMZWFkaW5nTWFyZ2luICsgMykgeworICAgICAgICAgICAgICAgIGZUcmFja0l0ZW0gPSBrVHJhY2tMTTsKKyAgICAgICAgICAgICAgICBmVHJhY2tEZWx0YSA9IGZMZWFkaW5nTWFyZ2luIC0geDsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoeSA8IGZCYXNlbGluZSArIDcgJiYgeCA+PSBmRmlyc3RMaW5lSW5kZW50IC0gMyAmJiB4IDw9IGZGaXJzdExpbmVJbmRlbnQgKyAzKSB7CisgICAgICAgICAgICAgICAgZlRyYWNrSXRlbSA9IGtUcmFja0ZMSTsKKyAgICAgICAgICAgICAgICBmVHJhY2tEZWx0YSA9IGZGaXJzdExpbmVJbmRlbnQgLSB4OworICAgICAgICAgICAgfSBlbHNlIGlmICh4ID49IGZUcmFpbGluZ01hcmdpblBvc2l0aW9uIC0gMyAmJiB4IDw9IGZUcmFpbGluZ01hcmdpblBvc2l0aW9uICsgMykgeworICAgICAgICAgICAgICAgIGZUcmFja0l0ZW0gPSBrVHJhY2tUTTsKKyAgICAgICAgICAgICAgICBmVHJhY2tEZWx0YSA9IGZUcmFpbGluZ01hcmdpblBvc2l0aW9uIC0geDsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZS5pc0NvbnRyb2xEb3duKCkpIHsKKyAgICAgICAgICAgICAgICBmVHJhY2tJdGVtID0ga1RyYWNrVGFiOworICAgICAgICAgICAgICAgIGZUcmFja1RhYiA9IG5ldyBUYWJTdG9wQnVmZmVyKGFsaWduSW50KHgpLCBUYWJTdG9wLmtMZWFkaW5nKTsKKyAgICAgICAgICAgICAgICBmVHJhY2tEZWx0YSA9IGZUcmFja1RhYi5mUG9zaXRpb24gLSB4OworICAgICAgICAgICAgICAgIGZUcmFja1Zpc2libGUgPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBUYWJTdG9wIHRhYiA9IGZSdWxlci5maXJzdFRhYigpOworICAgICAgICAgICAgICAgIHdoaWxlICh0YWIuZ2V0VHlwZSgpICE9IFRhYlN0b3Aua0F1dG8pIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHggPCB0YWIuZ2V0UG9zaXRpb24oKSAtIDMpCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHggPCB0YWIuZ2V0UG9zaXRpb24oKSArIDMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZPbGRUYWIgPSB0YWI7CisgICAgICAgICAgICAgICAgICAgICAgICBmVHJhY2tUYWIgPSBuZXcgVGFiU3RvcEJ1ZmZlcih0YWIpOworICAgICAgICAgICAgICAgICAgICAgICAgZlJ1bGVyID0gZlJ1bGVyLnJlbW92ZVRhYihmT2xkVGFiLmdldFBvc2l0aW9uKCkpOworCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZS5nZXRDbGlja0NvdW50KCkgPiAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChmVHJhY2tUYWIuZlR5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBUYWJTdG9wLmtMZWFkaW5nOiBmVHJhY2tUYWIuZlR5cGUgPSBUYWJTdG9wLmtDZW50ZXI7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFRhYlN0b3Aua0NlbnRlcjogZlRyYWNrVGFiLmZUeXBlID0gVGFiU3RvcC5rVHJhaWxpbmc7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFRhYlN0b3Aua1RyYWlsaW5nOiBmVHJhY2tUYWIuZlR5cGUgPSBUYWJTdG9wLmtEZWNpbWFsOyBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBUYWJTdG9wLmtEZWNpbWFsOiBmVHJhY2tUYWIuZlR5cGUgPSBUYWJTdG9wLmtMZWFkaW5nOyBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZlRyYWNrSXRlbSA9IGtUcmFja1RhYjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZUcmFja0RlbHRhID0gdGFiLmdldFBvc2l0aW9uKCkgLSB4OworICAgICAgICAgICAgICAgICAgICAgICAgZlRyYWNrVmlzaWJsZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIHRhYiA9IGZSdWxlci5uZXh0VGFiKHRhYi5nZXRQb3NpdGlvbigpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChmVHJhY2tJdGVtICE9IGtUcmFja05vbmUpIHsKKyAgICAgICAgICAgICAgICBmSW1hZ2VDYWNoZS5zZXRWYWxpZChmYWxzZSk7CisgICAgICAgICAgICAgICAgcGFpbnQoZkhvc3QuZ2V0R3JhcGhpY3MoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTW91c2VMaXN0ZW5lciBtZXRob2QuCisgICAgICovCisgICAgcHVibGljIHZvaWQgbW91c2VEcmFnZ2VkKE1vdXNlRXZlbnQgZSkKKyAgICB7CisgICAgICAgIGludCB4ID0gdmlzdWFsVG9SdWxlclBvcyhlLmdldFgoKSk7CisgICAgICAgIGludCB5ID0gZS5nZXRZKCk7CisKKyAgICAgICAgaWYgKGZUcmFja0l0ZW0gIT0ga1RyYWNrTm9uZSkgeworICAgICAgICAgICAgYm9vbGVhbiByZXBhaW50ID0gZmFsc2U7CisgICAgICAgICAgICBib29sZWFuIGlucmFuZ2UgPSB5ID4gZkJhc2VsaW5lICYmIHkgPCBmQmFzZWxpbmUgKyAxMjsKKyAgICAgICAgICAgIGJvb2xlYW4gaW5iaWdyYW5nZSA9IHkgPiAwICYmIHkgPCBmSG9zdC5nZXRTaXplKCkuaGVpZ2h0ICsgMjA7CisgICAgICAgICAgICBpbnQgbmV3cG9zID0gYWxpZ25JbnQoeCArIGZUcmFja0RlbHRhKTsKKyAgICAgICAgICAgIGlmIChuZXdwb3MgPCAwKQorICAgICAgICAgICAgICAgIG5ld3BvcyA9IDA7CisKKyAgICAgICAgICAgIHN3aXRjaCAoZlRyYWNrSXRlbSkgeworICAgICAgICAgICAgICAgIGNhc2Uga1RyYWNrVGFiOiB7CisgICAgICAgICAgICAgICAgICAgIGlmIChpbnJhbmdlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXBhaW50ID0gIWZUcmFja1Zpc2libGU7CisgICAgICAgICAgICAgICAgICAgICAgICBmVHJhY2tWaXNpYmxlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdwb3MgIT0gZlRyYWNrVGFiLmZQb3NpdGlvbikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZUcmFja1RhYi5mUG9zaXRpb24gPSBuZXdwb3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwYWludCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZlRyYWNrVmlzaWJsZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZlRyYWNrVmlzaWJsZSA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgcmVwYWludCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGJyZWFrOworCisvKiBJdCB3b3VsZCBiZSBuaWNlIHRvIG9wdGlvbmFsbHkgdHJhY2sgdGhlIG1hcmdpbiAnaW5kZXBlbmRlbnRseScgb2YgdGhlIGZpcnN0IGxpbmUgaW5kZW50LgorIFVuZm9ydHVuYXRlbHkgdGhpcyBtYWtlcyBmb3IgbW9yZSB3b3JrIHdoZW4gd2UgaGF2ZSBtdWx0aXBsZSBwYXJhZ3JhcGggc3R5bGVzIHNlbGVjdGVkLgorIFNpbmNlIGludGVybmFsbHkgdGhlIGZpcnN0IGxpbmUgaW5kZW50IGlzIHJlbGF0aXZlIHRvIHRoZSBtYXJnaW4sIG1vdmluZyB0aGUgbWFyZ2luCisgaW5kZXBlbmRlbnRseSBzbyB0aGF0IGFsbCBhZmZlY3RlZCBwYXJhZ3JhcGhzIHNoYXJlIHRoZSBzYW1lIG1hcmdpbiBidXQgcmV0YWluIGZpcnN0CisgbGluZSBpbmRlbnRzIGluIHRoZSAnc2FtZScgcG9zaXRpb25zIG1lYW5zIHRoYXQgSSBuZWVkIHRvIGFsc28gYWRqdXN0IHRoZSBmaXJzdCBsaW5lCisgaW5kZW50cyBpbiBlYWNoIHBhcmFncmFwaCBieSBzb21lIGRlbHRhLiBJJ20gbm90IHJlYWR5IHRvIGRvIHRoYXQgeWV0LiAqLworCisgICAgICAgICAgICAgICAgY2FzZSBrVHJhY2tMTTogeworICAgICAgICAgICAgICAgICAgICBpZiAoaW5iaWdyYW5nZSAmJiBuZXdwb3MgIT0gZkxlYWRpbmdNYXJnaW4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZGaXJzdExpbmVJbmRlbnQgKz0gbmV3cG9zIC0gZkxlYWRpbmdNYXJnaW47CisgICAgICAgICAgICAgICAgICAgICAgICBmTGVhZGluZ01hcmdpbiA9IG5ld3BvczsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlcGFpbnQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBicmVhazsKKworICAgICAgICAgICAgICAgIGNhc2Uga1RyYWNrRkxJOiB7CisgICAgICAgICAgICAgICAgICAgIGlmIChpbmJpZ3JhbmdlICYmIG5ld3BvcyAhPSBmRmlyc3RMaW5lSW5kZW50KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmRmlyc3RMaW5lSW5kZW50ID0gbmV3cG9zOworICAgICAgICAgICAgICAgICAgICAgICAgcmVwYWludCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGJyZWFrOworCisgICAgICAgICAgICAgICAgY2FzZSBrVHJhY2tUTTogeworICAgICAgICAgICAgICAgICAgICBpZiAoaW5iaWdyYW5nZSAmJiBuZXdwb3MgIT0gZlRyYWlsaW5nTWFyZ2luUG9zaXRpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZUcmFpbGluZ01hcmdpblBvc2l0aW9uID0gbmV3cG9zOworICAgICAgICAgICAgICAgICAgICAgICAgcmVwYWludCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGJyZWFrOworICAgICAgICAgICAgfQorCisKKyAgICAgICAgICAgIGlmIChyZXBhaW50KQorICAgICAgICAgICAgICAgIHBhaW50KGZIb3N0LmdldEdyYXBoaWNzKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTW91c2VMaXN0ZW5lciBtZXRob2QuCisgICAgICovCisgICAgcHVibGljIHZvaWQgbW91c2VSZWxlYXNlZChNb3VzZUV2ZW50IGUpCisgICAgeworICAgICAgICBpZiAoZlRyYWNrSXRlbSAhPSBrVHJhY2tOb25lKSB7CisgICAgICAgICAgICBpZiAoZlRyYWNrSXRlbSA9PSBrVHJhY2tUYWIgJiYgZlRyYWNrVmlzaWJsZSkgeworICAgICAgICAgICAgICAgIGZSdWxlciA9IGZSdWxlci5hZGRUYWIoZlRyYWNrVGFiLmdldFRhYlN0b3AoKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGZUcmFja1RhYiA9IG51bGw7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG5vdGlmeShmVHJhY2tJdGVtKTsKKworICAgICAgICAgICAgZlRyYWNrSXRlbSA9IGtUcmFja05vbmU7CisgICAgICAgICAgICBmVHJhY2tUYWIgPSBudWxsOworICAgICAgICAgICAgZk9sZFRhYiA9IG51bGw7CisKKyAgICAgICAgICAgIGZJbWFnZUNhY2hlLnNldFZhbGlkKGZhbHNlKTsKKyAgICAgICAgICAgIHBhaW50KGZIb3N0LmdldEdyYXBoaWNzKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTW91c2VMaXN0ZW5lciBtZXRob2QuCisgICAgICovCisgICAgcHVibGljIHZvaWQgbW91c2VNb3ZlZChNb3VzZUV2ZW50IGUpIHt9CisKKyAgICBwcml2YXRlIHZvaWQgbm90aWZ5KGludCBjaGFuZ2UpCisgICAgeworICAgICAgICBpZiAoZlRleHRQYW5lbCAhPSBudWxsKSB7CisKKyAgICAgICAgICAgIFN0eWxlTW9kaWZpZXIgbW9kaWZpZXI7CisKKyAgICAgICAgICAgIGlmIChjaGFuZ2UgPT0ga1RyYWNrVGFiKSB7CisgICAgICAgICAgICAgICAgVGFiU3RvcCBuZXdUYWIgPSBmVHJhY2tUYWI9PW51bGw/IG51bGwgOiBmVHJhY2tUYWIuZ2V0VGFiU3RvcCgpOworICAgICAgICAgICAgICAgIG1vZGlmaWVyID0gbmV3IFRhYlJ1bGVyTW9kaWZpZXIoZk9sZFRhYiwgbmV3VGFiLCBmVGV4dFBhbmVsLmdldERlZmF1bHRWYWx1ZXMoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBPYmplY3Qga2V5OworICAgICAgICAgICAgICAgIE9iamVjdCB2YWx1ZTsKKworICAgICAgICAgICAgICAgIHN3aXRjaChjaGFuZ2UpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBrVHJhY2tMTToKKyAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9IFRleHRBdHRyaWJ1dGUuTEVBRElOR19NQVJHSU47CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IG5ldyBGbG9hdChnZXRMZWFkaW5nTWFyZ2luKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBrVHJhY2tUTToKKyAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9IFRleHRBdHRyaWJ1dGUuVFJBSUxJTkdfTUFSR0lOOworICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBuZXcgRmxvYXQoZ2V0VHJhaWxpbmdNYXJnaW4oKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBjYXNlIGtUcmFja0ZMSToKKyAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9IFRleHRBdHRyaWJ1dGUuRklSU1RfTElORV9JTkRFTlQ7CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IG5ldyBGbG9hdChnZXRGaXJzdExpbmVJbmRlbnQoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGNoYW5nZSBjb2RlLiIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIG1vZGlmaWVyID0gU3R5bGVNb2RpZmllci5jcmVhdGVBZGRNb2RpZmllcihrZXksIHZhbHVlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZlRleHRQYW5lbC5tb2RpZnlQYXJhZ3JhcGhTdHlsZU9uU2VsZWN0aW9uKG1vZGlmaWVyKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBvbmVudCBvdmVycmlkZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRGltZW5zaW9uIGdldE1pbmltdW1TaXplKCkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgRGltZW5zaW9uKDEwMCwgZkJhc2VsaW5lICsgMTMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBvbmVudCBvdmVycmlkZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRGltZW5zaW9uIGdldFByZWZlcnJlZFNpemUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldE1pbmltdW1TaXplKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL3Jlc291cmNlcy9GcmFtZVJlc291cmNlcy5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL3Jlc291cmNlcy9GcmFtZVJlc291cmNlcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU3YzFlOTQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvcmVzb3VyY2VzL0ZyYW1lUmVzb3VyY2VzLmphdmEKQEAgLTAsMCArMSwyMjAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC51aWltcGwucmVzb3VyY2VzOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5LZXlFdmVudDsKKworcHVibGljIGZpbmFsIGNsYXNzIEZyYW1lUmVzb3VyY2VzIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisvKgorICogVGhlc2UgU3RyaW5ncyBhcmUga2V5cyB0byBvdGhlciBTdHJpbmcgcmVzb3VyY2VzLgorICovCisgICAgLy8gTWVudSBuYW1lcworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEVESVQgPSAiRWRpdCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0laRSA9ICJTaXplIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBGT05UID0gIkZvbnQiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNUWUxFID0gIlN0eWxlIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBGTFVTSCA9ICJGbHVzaCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgS0VZTUFQID0gIktleW1hcCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQUJPVVRfTUVOVSA9ICJBYm91dCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQklESSA9ICJCaWRpIjsKKyAgICAKKyAgICAvLyBCdXR0b25zCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgT0sgPSAiT0siOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIENBTkNFTCA9ICJDYW5jZWwiOworCisgICAgLy8gQ29sb3JzCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQkxBQ0sgPSAiQmxhY2siOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFdISVRFID0gIldoaXRlIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBHUkVFTiA9ICJHcmVlbiI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQkxVRSA9ICJCbHVlIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDWUFOID0gIkN5YW4iOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEdSQVkgPSAiR3JheSI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgREFSS19HUkFZID0gIkRhcmsgR3JheSI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgTElHSFRfR1JBWSA9ICJMaWdodCBHcmF5IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBNQUdFTlRBID0gIk1hZ2VudGEiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIE9SQU5HRSA9ICJPcmFuZ2UiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFBJTksgPSAiUGluayI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgUkVEID0gIlJlZCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgWUVMTE9XID0gIlllbGxvdyI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgTk9ORSA9ICJOb25lIjsKKworICAgIC8vIERpYWxvZyB0aXRsZXMgYW5kIG1lc3NhZ2VzCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0VUX1NJWkVfVElUTEUgPSAiU2V0IEZvbnQgU2l6ZSI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0VUX1NJWkVfTEFCRUwgPSAiRm9udCBTaXplOiI7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTRVRfU1VQRVJTQ1JJUFRfVElUTEUgPSAiU2V0IFN1cGVyc2NyaXB0IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTRVRfU1VQRVJTQ1JJUFRfTEFCRUwgPSAiU3VwZXJzY3JpcHQ6IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTRVRfU1VCU0NSSVBUX1RJVExFID0gIlNldCBTdWJzY3JpcHQiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNFVF9TVUJTQ1JJUFRfTEFCRUwgPSAiU3Vic2NyaXB0OiI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0VUX0ZPUkVHUk9VTkRfVElUTEUgPSAiU2V0IEZvcmVncm91bmQiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNFVF9GT1JFR1JPVU5EX0xBQkVMID0gIkZvcmVncm91bmQ6IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTRVRfQkFDS0dST1VORF9USVRMRSA9ICJTZXQgQmFja2dyb3VuZCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0VUX0JBQ0tHUk9VTkRfTEFCRUwgPSAiQmFja2dyb3VuZDoiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNFVF9GT05UX1RJVExFID0gIlNldCBGb250IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTRVRfRk9OVF9MQUJFTCA9ICJGb250OiI7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBBQk9VVF9USVRMRSA9ICJBYm91dCB0aGUgUmljaEVkaXQgQ29udHJvbCI7CisKKyAgICAvLyBUaGlzIGlzIHRoZSBvbmx5IFN0cmluZyB3aGljaCBpcyBub3QgaXRzIG93biB2YWx1ZToKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBBQk9VVF9URVhUID0gIkFib3V0IHRleHQiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBBQ1RVQUxfQUJPVVRfVEVYVCA9CisgICAgICAgICJDb3B5cmlnaHQgKEMpIElCTSBDb3JwLiAxOTk2LTIwMDIgQWxsIHJpZ2h0cyByZXNlcnZlZC5cblxuIiArCisgICAgICAgICJKb2huIFJhbGV5XG4iICsKKyAgICAgICAgIlN0ZXBoZW4gRi4gQm9vdGhcbiIgKworICAgICAgICAiRG91ZyBGZWx0XG4iICsKKyAgICAgICAgIkpvaG4gRml0enBhdHJpY2tcbiIgKworICAgICAgICAiUmljaCBHaWxsYW0iOworLyoKKyAqIFRoZSBmb2xsb3dpbmcgU3RyaW5ncyBhcmUga2V5cyB0byBNZW51RGF0YSByZXNvdXJjZXMuICBUaGV5CisgKiBhbHNvIGRvdWJsZSBhcyB0aGUgZGVmYXVsdCBtZW51IGxhYmVsIHRleHQuCisgKi8KKyAgICAvLyBFZGl0IG1lbnUKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBVTkRPID0gIlVuZG8iOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFJFRE8gPSAiUmVkbyI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ1VUID0gIkN1dCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWSA9ICJDb3B5IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBQQVNURSA9ICJQYXN0ZSI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0xFQVIgPSAiQ2xlYXIiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNFTEVDVF9BTEwgPSAiU2VsZWN0IEFsbCI7CisKKyAgICAvLyBGbHVzaCBtZW51CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgTEVBRElORyA9ICJMZWFkaW5nIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBUUkFJTElORyA9ICJUcmFpbGluZyI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0VOVEVSID0gIkNlbnRlciI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgSlVTVElGSUVEID0gIkp1c3RpZmllZCI7CisKKyAgICAvLyBBYm91dCBtZW51CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQUJPVVRfSVRFTSA9ICJBYm91dC4uLiI7CisKKyAgICAvLyBLZXltYXAgbWVudQorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIERFRkFVTFQgPSAiRGVmYXVsdCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQVJBQklDID0gIkFyYWJpYyI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgSEVCUkVXID0gIkhlYnJldyI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgSVNSQUVMX05JS1VEID0gIklzcmFlbCBOaWt1ZCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgVEhBSV9LRVRNQU5FRSA9ICJUaGFpIEtldG1hbmVlIjsKKworICAgIC8vIFN0eWxlIG1lbnUKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBQTEFJTiA9ICJQbGFpbiI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQk9MRCA9ICJCb2xkIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBJVEFMSUMgPSAiSXRhbGljIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBVTkRFUkxJTkUgPSAiVW5kZXJsaW5lIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTVFJJS0VUSFJPVUdIID0gIlN0cmlrZXRocm91Z2giOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNVUEVSU0NSSVBUID0gIlN1cGVyc2NyaXB0IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTVUJTQ1JJUFQgPSAiU3Vic2NyaXB0IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTVVBFUlNDUklQVF9ESUFMT0cgPSAiU3VwZXJzY3JpcHQuLi4iOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNVQlNDUklQVF9ESUFMT0cgPSAiU3Vic2NyaXB0Li4uIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBGT1JFQ09MT1JfRElBTE9HID0gIkZvcmVjb2xvci4uLiI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQkFDS0NPTE9SX0RJQUxPRyA9ICJCYWNrY29sb3IuLi4iOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEZPTlRfRElBTE9HID0gIkZvbnQuLi4iOworICAgIAorCisgICAgLy8gU2l6ZSBtZW51CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgT1RIRVJfRElBTE9HID0gIk90aGVyLi4uIjsKKyAgICAKKyAgICAvLyBCaWRpIG1lbnUKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBERUZBVUxUX0RJUkVDVElPTiA9ICJEZWZhdWx0IFBhcmFncmFwaCBEaXJlY3Rpb24iOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIExUUl9ESVJFQ1RJT04gPSAiTGVmdC10by1yaWdodCBQYXJhZ3JhcGggRGlyZWN0aW9uIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBSVExfRElSRUNUSU9OID0gIlJpZ2h0LXRvLWxlZnQgUGFyYWdyYXBoIERpcmVjdGlvbiI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBPYmplY3RbXSBtYWtlTWVudURhdGEoU3RyaW5nIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgc2hvcnRDdXRDaGFyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2hvcnRDdXRLZXkpIHsKKworICAgICAgICByZXR1cm4gbmV3IE9iamVjdFtdIHsgbmFtZSwgbmV3IE1lbnVEYXRhKG5hbWUsIHNob3J0Q3V0Q2hhciwgc2hvcnRDdXRLZXkpIH07CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgT2JqZWN0W10gbWFrZU1lbnVEYXRhKFN0cmluZyBuYW1lKSB7CisKKyAgICAgICAgcmV0dXJuIG5ldyBPYmplY3RbXSB7IG5hbWUsIG5ldyBNZW51RGF0YShuYW1lKSB9OworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIE9iamVjdFtdIGR1cGxpY2F0ZShPYmplY3Qgb2JqKSB7CisKKyAgICAgICAgcmV0dXJuIG5ldyBPYmplY3RbXSB7IG9iaiwgb2JqIH07CisgICAgfQorCisgICAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisKKyAgICAgICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShVTkRPLCAneicsIEtleUV2ZW50LlZLX1opLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKFJFRE8sICdyJywgS2V5RXZlbnQuVktfUiksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoQ1VULCAneCcsIEtleUV2ZW50LlZLX1gpLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKENPUFksICdjJywgS2V5RXZlbnQuVktfQyksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoUEFTVEUsICd2JywgS2V5RXZlbnQuVktfViksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoQ0xFQVIpLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKFNFTEVDVF9BTEwpLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKExFQURJTkcpLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKENFTlRFUiksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoVFJBSUxJTkcpLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKEpVU1RJRklFRCksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoQUJPVVRfSVRFTSksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoREVGQVVMVCksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoSEVCUkVXKSwKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShBUkFCSUMpLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKElTUkFFTF9OSUtVRCksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoVEhBSV9LRVRNQU5FRSksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoUExBSU4pLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKEJPTEQsICdiJywgS2V5RXZlbnQuVktfQiksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoSVRBTElDLCAnaScsIEtleUV2ZW50LlZLX0kpLCAvLyB3aHkgZG9lc24ndCB0aGlzIHdvcmsgaW4gU3dpbmc/CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIGEgVGFiIGluIEFXVCEhIQorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKFVOREVSTElORSwgJ3UnLCBLZXlFdmVudC5WS19VKSwKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShTVFJJS0VUSFJPVUdIKSwKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShTVVBFUlNDUklQVCksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoU1VCU0NSSVBUKSwKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShTVVBFUlNDUklQVF9ESUFMT0cpLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKFNVQlNDUklQVF9ESUFMT0cpLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKEZPUkVDT0xPUl9ESUFMT0cpLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKEJBQ0tDT0xPUl9ESUFMT0cpLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKEZPTlRfRElBTE9HKSwKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShPVEhFUl9ESUFMT0cpLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKERFRkFVTFRfRElSRUNUSU9OKSwKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShMVFJfRElSRUNUSU9OKSwKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShSVExfRElSRUNUSU9OKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShPSyksCisgICAgICAgICAgICBkdXBsaWNhdGUoQ0FOQ0VMKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShCTEFDSyksCisgICAgICAgICAgICBkdXBsaWNhdGUoV0hJVEUpLAorICAgICAgICAgICAgZHVwbGljYXRlKEdSRUVOKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShCTFVFKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShDWUFOKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShHUkFZKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShEQVJLX0dSQVkpLAorICAgICAgICAgICAgZHVwbGljYXRlKExJR0hUX0dSQVkpLAorICAgICAgICAgICAgZHVwbGljYXRlKE1BR0VOVEEpLAorICAgICAgICAgICAgZHVwbGljYXRlKE9SQU5HRSksCisgICAgICAgICAgICBkdXBsaWNhdGUoUElOSyksCisgICAgICAgICAgICBkdXBsaWNhdGUoUkVEKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShZRUxMT1cpLAorICAgICAgICAgICAgZHVwbGljYXRlKE5PTkUpLAorICAgICAgICAgICAgZHVwbGljYXRlKFNFVF9TSVpFX1RJVExFKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShTRVRfU0laRV9MQUJFTCksCisgICAgICAgICAgICBkdXBsaWNhdGUoU0VUX1NVUEVSU0NSSVBUX1RJVExFKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShTRVRfU1VQRVJTQ1JJUFRfTEFCRUwpLAorICAgICAgICAgICAgZHVwbGljYXRlKFNFVF9TVUJTQ1JJUFRfVElUTEUpLAorICAgICAgICAgICAgZHVwbGljYXRlKFNFVF9TVUJTQ1JJUFRfTEFCRUwpLAorICAgICAgICAgICAgZHVwbGljYXRlKFNFVF9GT1JFR1JPVU5EX1RJVExFKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShTRVRfRk9SRUdST1VORF9MQUJFTCksCisgICAgICAgICAgICBkdXBsaWNhdGUoU0VUX0JBQ0tHUk9VTkRfVElUTEUpLAorICAgICAgICAgICAgZHVwbGljYXRlKFNFVF9CQUNLR1JPVU5EX0xBQkVMKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShTRVRfRk9OVF9USVRMRSksCisgICAgICAgICAgICBkdXBsaWNhdGUoU0VUX0ZPTlRfTEFCRUwpLAorICAgICAgICAgICAgZHVwbGljYXRlKEVESVQpLAorICAgICAgICAgICAgZHVwbGljYXRlKFNJWkUpLAorICAgICAgICAgICAgZHVwbGljYXRlKEZPTlQpLAorICAgICAgICAgICAgZHVwbGljYXRlKFNUWUxFKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShGTFVTSCksCisgICAgICAgICAgICBkdXBsaWNhdGUoS0VZTUFQKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShCSURJKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShBQk9VVF9NRU5VKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShBQk9VVF9USVRMRSksCisgICAgICAgICAgICB7IEFCT1VUX1RFWFQsIEFDVFVBTF9BQk9VVF9URVhUIH0KKyAgICAgICAgfTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvcmVzb3VyY2VzL01lbnVEYXRhLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvcmVzb3VyY2VzL01lbnVEYXRhLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGRiNGI0OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9yZXNvdXJjZXMvTWVudURhdGEuamF2YQpAQCAtMCwwICsxLDY4IEBACisvKgorICogQCgjKSRSQ1NmaWxlOiBNZW51RGF0YS5qYXZhLHYgJCAkUmV2aXNpb246IDEuMSAkICREYXRlOiAyMDAwLzA0LzIwIDE3OjUyOjQ2ICQKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudWlpbXBsLnJlc291cmNlczsKKworLyoqCisgKiBUaGlzIGNsYXNzIGlzIHVzZWQgaW4gcmVzb3VyY2VzIHRvIHJlcHJlc2VudCBhIE1lbnUuICBJdCBpcworICoganVzdCBhIG5hbWUgYW5kIGFuIG9wdGlvbmFsIHNob3J0Y3V0IGtleS4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIE1lbnVEYXRhIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBTdHJpbmcgZk5hbWU7CisgICAgcHJpdmF0ZSBib29sZWFuIGZIYXNTaG9ydGN1dDsKKyAgICBwcml2YXRlIGNoYXIgZlNob3J0Y3V0OworICAgIHByaXZhdGUgaW50IGZLZXlDb2RlOworCisgICAgcHVibGljIE1lbnVEYXRhKFN0cmluZyBuYW1lKSB7CisKKyAgICAgICAgZk5hbWUgPSBuYW1lOworICAgICAgICBmSGFzU2hvcnRjdXQgPSBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgTWVudURhdGEoU3RyaW5nIG5hbWUsIGNoYXIgY2gsIGludCBrZXlDb2RlKSB7CisKKyAgICAgICAgZk5hbWUgPSBuYW1lOworICAgICAgICBmSGFzU2hvcnRjdXQgPSB0cnVlOworICAgICAgICBmU2hvcnRjdXQgPSBjaDsKKyAgICAgICAgZktleUNvZGUgPSBrZXlDb2RlOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpIHsKKworICAgICAgICByZXR1cm4gZk5hbWU7CisgICAgfQorCisgICAgcHVibGljIGNoYXIgZ2V0U2hvcnRjdXRDaGFyKCkgeworCisgICAgICAgIGlmICghZkhhc1Nob3J0Y3V0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk1lbnUgZG9lc24ndCBoYXZlIHNob3J0Y3V0Iik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZTaG9ydGN1dDsKKyAgICB9CisgICAgCisgICAgcHVibGljIGludCBnZXRTaG9ydGN1dEtleUNvZGUoKSB7CisgICAgICAgIGlmICghZkhhc1Nob3J0Y3V0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk1lbnUgZG9lc24ndCBoYXZlIHNob3J0Y3V0Iik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZLZXlDb2RlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGhhc1Nob3J0Y3V0KCkgeworCisgICAgICAgIHJldHVybiBmSGFzU2hvcnRjdXQ7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK